diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/.gitignore diff --git a/.qsys_edit/filters.xml b/.qsys_edit/filters.xml new file mode 100644 index 0000000..519c8a6 --- /dev/null +++ b/.qsys_edit/filters.xml @@ -0,0 +1,2 @@ + + diff --git a/.qsys_edit/preferences.xml b/.qsys_edit/preferences.xml new file mode 100644 index 0000000..623aacc --- /dev/null +++ b/.qsys_edit/preferences.xml @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/app_software/.cproject b/app_software/.cproject new file mode 100644 index 0000000..f967ae2 --- /dev/null +++ b/app_software/.cproject @@ -0,0 +1,481 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app_software/.project b/app_software/.project new file mode 100644 index 0000000..ece6158 --- /dev/null +++ b/app_software/.project @@ -0,0 +1,90 @@ + + + qsys_turorial_green + + + + + + com.altera.sbtgui.project.makefileBuilder + + + + + org.eclipse.cdt.managedbuilder.core.genmakebuilder + clean,full,incremental, + + + ?name? + + + + org.eclipse.cdt.make.core.append_environment + true + + + org.eclipse.cdt.make.core.autoBuildTarget + all + + + org.eclipse.cdt.make.core.buildArguments + + + + org.eclipse.cdt.make.core.buildCommand + make + + + org.eclipse.cdt.make.core.buildLocation + ${workspace_loc://qsys_turorial_green} + + + org.eclipse.cdt.make.core.cleanBuildTarget + clean + + + org.eclipse.cdt.make.core.contents + org.eclipse.cdt.make.core.activeConfigSettings + + + org.eclipse.cdt.make.core.enableAutoBuild + false + + + org.eclipse.cdt.make.core.enableCleanBuild + true + + + org.eclipse.cdt.make.core.enableFullBuild + true + + + org.eclipse.cdt.make.core.fullBuildTarget + all + + + org.eclipse.cdt.make.core.stopOnError + true + + + org.eclipse.cdt.make.core.useDefaultBuildCmd + true + + + + + org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder + full,incremental, + + + + + + org.eclipse.cdt.core.cnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.managedbuilder.core.ScannerConfigNature + org.eclipse.cdt.core.ccnature + com.altera.sbtgui.project.SBTGUINature + com.altera.sbtgui.project.SBTGUICustomAppNature + + diff --git a/app_software/lights.c b/app_software/lights.c new file mode 100644 index 0000000..708bb00 --- /dev/null +++ b/app_software/lights.c @@ -0,0 +1,7 @@ +#define switches (volatile char *) 0x0002000 +#define leds (char *) 0x0002010 + +void main() +{ + while(1) *leds = *switches; +} \ No newline at end of file diff --git a/db/a_dpfifo_q131.tdf b/db/a_dpfifo_q131.tdf new file mode 100644 index 0000000..3ab4865 --- /dev/null +++ b/db/a_dpfifo_q131.tdf @@ -0,0 +1,79 @@ +--a_dpfifo ALLOW_RWCYCLE_WHEN_FULL="OFF" DEVICE_FAMILY="Cyclone IV E" LPM_NUMWORDS=64 LPM_SHOWAHEAD="OFF" lpm_width=8 lpm_widthu=6 OVERFLOW_CHECKING="OFF" UNDERFLOW_CHECKING="OFF" aclr clock data empty full q rreq sclr usedw wreq CARRY_CHAIN="MANUAL" CARRY_CHAIN_LENGTH=48 CYCLONEII_M4K_COMPATIBILITY="ON" LOW_POWER_MODE="AUTO" lpm_hint="RAM_BLOCK_TYPE=AUTO" RAM_BLOCK_TYPE="AUTO" +--VERSION_BEGIN 13.0 cbx_altdpram 2013:06:12:18:03:43:SJ cbx_altsyncram 2013:06:12:18:03:43:SJ cbx_cycloneii 2013:06:12:18:03:43:SJ cbx_fifo_common 2013:06:12:18:03:43:SJ cbx_lpm_add_sub 2013:06:12:18:03:43:SJ cbx_lpm_compare 2013:06:12:18:03:43:SJ cbx_lpm_counter 2013:06:12:18:03:43:SJ cbx_lpm_decode 2013:06:12:18:03:43:SJ cbx_lpm_mux 2013:06:12:18:03:43:SJ cbx_mgl 2013:06:12:18:05:10:SJ cbx_scfifo 2013:06:12:18:03:43:SJ cbx_stratix 2013:06:12:18:03:43:SJ cbx_stratixii 2013:06:12:18:03:43:SJ cbx_stratixiii 2013:06:12:18:03:43:SJ cbx_stratixv 2013:06:12:18:03:43:SJ cbx_util_mgl 2013:06:12:18:03:43:SJ VERSION_END + + +-- Copyright (C) 1991-2013 Altera Corporation +-- Your use of Altera Corporation's design tools, logic functions +-- and other software and tools, and its AMPP partner logic +-- functions, and any output files from any of the foregoing +-- (including device programming or simulation files), and any +-- associated documentation or information are expressly subject +-- to the terms and conditions of the Altera Program License +-- Subscription Agreement, Altera MegaCore Function License +-- Agreement, or other applicable license agreement, including, +-- without limitation, that your use is for the sole purpose of +-- programming logic devices manufactured by Altera and sold by +-- Altera or its authorized distributors. Please refer to the +-- applicable agreement for further details. + + +FUNCTION a_fefifo_7cf (aclr, clock, rreq, sclr, wreq) +RETURNS ( empty, full, usedw_out[5..0]); +FUNCTION dpram_nl21 (data[7..0], inclock, outclock, outclocken, rdaddress[5..0], wraddress[5..0], wren) +RETURNS ( q[7..0]); +FUNCTION cntr_1ob (aclr, clock, cnt_en, sclr) +RETURNS ( q[5..0]); + +--synthesis_resources = lut 18 M9K 1 reg 20 +SUBDESIGN a_dpfifo_q131 +( + aclr : input; + clock : input; + data[7..0] : input; + empty : output; + full : output; + q[7..0] : output; + rreq : input; + sclr : input; + usedw[5..0] : output; + wreq : input; +) +VARIABLE + fifo_state : a_fefifo_7cf; + FIFOram : dpram_nl21; + rd_ptr_count : cntr_1ob; + wr_ptr : cntr_1ob; + rd_ptr[5..0] : WIRE; + valid_rreq : WIRE; + valid_wreq : WIRE; + +BEGIN + fifo_state.aclr = aclr; + fifo_state.clock = clock; + fifo_state.rreq = rreq; + fifo_state.sclr = sclr; + fifo_state.wreq = wreq; + FIFOram.data[] = data[]; + FIFOram.inclock = clock; + FIFOram.outclock = clock; + FIFOram.outclocken = (valid_rreq # sclr); + FIFOram.rdaddress[] = ((! sclr) & rd_ptr[]); + FIFOram.wraddress[] = wr_ptr.q[]; + FIFOram.wren = valid_wreq; + rd_ptr_count.aclr = aclr; + rd_ptr_count.clock = clock; + rd_ptr_count.cnt_en = valid_rreq; + rd_ptr_count.sclr = sclr; + wr_ptr.aclr = aclr; + wr_ptr.clock = clock; + wr_ptr.cnt_en = valid_wreq; + wr_ptr.sclr = sclr; + empty = fifo_state.empty; + full = fifo_state.full; + q[] = FIFOram.q[]; + rd_ptr[] = rd_ptr_count.q[]; + usedw[] = fifo_state.usedw_out[]; + valid_rreq = rreq; + valid_wreq = wreq; +END; +--VALID FILE diff --git a/db/a_fefifo_7cf.tdf b/db/a_fefifo_7cf.tdf new file mode 100644 index 0000000..77853fd --- /dev/null +++ b/db/a_fefifo_7cf.tdf @@ -0,0 +1,90 @@ +--a_fefifo ALLOW_RWCYCLE_WHEN_FULL="OFF" LPM_NUMWORDS=64 lpm_widthad=6 OVERFLOW_CHECKING="OFF" UNDERFLOW_CHECKING="OFF" aclr clock empty full rreq sclr usedw_out wreq +--VERSION_BEGIN 13.0 cbx_cycloneii 2013:06:12:18:03:43:SJ cbx_fifo_common 2013:06:12:18:03:43:SJ cbx_lpm_add_sub 2013:06:12:18:03:43:SJ cbx_lpm_compare 2013:06:12:18:03:43:SJ cbx_lpm_counter 2013:06:12:18:03:43:SJ cbx_lpm_decode 2013:06:12:18:03:43:SJ cbx_mgl 2013:06:12:18:05:10:SJ cbx_stratix 2013:06:12:18:03:43:SJ cbx_stratixii 2013:06:12:18:03:43:SJ VERSION_END + + +-- Copyright (C) 1991-2013 Altera Corporation +-- Your use of Altera Corporation's design tools, logic functions +-- and other software and tools, and its AMPP partner logic +-- functions, and any output files from any of the foregoing +-- (including device programming or simulation files), and any +-- associated documentation or information are expressly subject +-- to the terms and conditions of the Altera Program License +-- Subscription Agreement, Altera MegaCore Function License +-- Agreement, or other applicable license agreement, including, +-- without limitation, that your use is for the sole purpose of +-- programming logic devices manufactured by Altera and sold by +-- Altera or its authorized distributors. Please refer to the +-- applicable agreement for further details. + + +FUNCTION cntr_do7 (aclr, clock, cnt_en, sclr, updown) +RETURNS ( q[5..0]); + +--synthesis_resources = lut 6 reg 8 +SUBDESIGN a_fefifo_7cf +( + aclr : input; + clock : input; + empty : output; + full : output; + rreq : input; + sclr : input; + usedw_out[5..0] : output; + wreq : input; +) +VARIABLE + b_full : dffe; + b_non_empty : dffe; + count_usedw : cntr_do7; + equal_af1w[5..0] : WIRE; + equal_one[5..0] : WIRE; + is_almost_empty0 : WIRE; + is_almost_empty1 : WIRE; + is_almost_empty2 : WIRE; + is_almost_empty3 : WIRE; + is_almost_empty4 : WIRE; + is_almost_empty5 : WIRE; + is_almost_full0 : WIRE; + is_almost_full1 : WIRE; + is_almost_full2 : WIRE; + is_almost_full3 : WIRE; + is_almost_full4 : WIRE; + is_almost_full5 : WIRE; + usedw[5..0] : WIRE; + valid_rreq : WIRE; + valid_wreq : WIRE; + +BEGIN + b_full.clk = clock; + b_full.clrn = (! aclr); + b_full.d = ((b_full.q & (b_full.q $ (sclr # rreq))) # (((! b_full.q) & b_non_empty.q) & ((! sclr) & ((is_almost_full5 & wreq) & (! rreq))))); + b_non_empty.clk = clock; + b_non_empty.clrn = (! aclr); + b_non_empty.d = (((b_full.q & (b_full.q $ sclr)) # (((! b_non_empty.q) & wreq) & (! sclr))) # (((! b_full.q) & b_non_empty.q) & (((! b_full.q) & b_non_empty.q) $ (sclr # ((is_almost_empty5 & rreq) & (! wreq)))))); + count_usedw.aclr = aclr; + count_usedw.clock = clock; + count_usedw.cnt_en = (valid_wreq $ valid_rreq); + count_usedw.sclr = sclr; + count_usedw.updown = valid_wreq; + empty = (! b_non_empty.q); + equal_af1w[] = ( B"0", B"0", B"0", B"0", B"0", B"0"); + equal_one[] = ( B"1", B"1", B"1", B"1", B"1", B"0"); + full = b_full.q; + is_almost_empty0 = (usedw[0..0] $ equal_one[0..0]); + is_almost_empty1 = ((usedw[1..1] $ equal_one[1..1]) & is_almost_empty0); + is_almost_empty2 = ((usedw[2..2] $ equal_one[2..2]) & is_almost_empty1); + is_almost_empty3 = ((usedw[3..3] $ equal_one[3..3]) & is_almost_empty2); + is_almost_empty4 = ((usedw[4..4] $ equal_one[4..4]) & is_almost_empty3); + is_almost_empty5 = ((usedw[5..5] $ equal_one[5..5]) & is_almost_empty4); + is_almost_full0 = (usedw[0..0] $ equal_af1w[0..0]); + is_almost_full1 = ((usedw[1..1] $ equal_af1w[1..1]) & is_almost_full0); + is_almost_full2 = ((usedw[2..2] $ equal_af1w[2..2]) & is_almost_full1); + is_almost_full3 = ((usedw[3..3] $ equal_af1w[3..3]) & is_almost_full2); + is_almost_full4 = ((usedw[4..4] $ equal_af1w[4..4]) & is_almost_full3); + is_almost_full5 = ((usedw[5..5] $ equal_af1w[5..5]) & is_almost_full4); + usedw[] = count_usedw.q[]; + usedw_out[] = usedw[]; + valid_rreq = rreq; + valid_wreq = wreq; +END; +--VALID FILE diff --git a/db/altsyncram_0rh1.tdf b/db/altsyncram_0rh1.tdf new file mode 100644 index 0000000..44a0205 --- /dev/null +++ b/db/altsyncram_0rh1.tdf @@ -0,0 +1,1042 @@ +--altsyncram ADDRESS_REG_B="CLOCK0" CBX_DECLARE_ALL_CONNECTED_PORTS="OFF" CYCLONEII_M4K_COMPATIBILITY="ON" DEVICE_FAMILY="Cyclone IV E" INIT_FILE="nios_system_nios2_processor_rf_ram_a.mif" LOW_POWER_MODE="AUTO" MAXIMUM_DEPTH=0 NUMWORDS_A=32 NUMWORDS_B=32 OPERATION_MODE="DUAL_PORT" OUTDATA_REG_B="UNREGISTERED" RAM_BLOCK_TYPE="AUTO" RDCONTROL_REG_B="CLOCK0" READ_DURING_WRITE_MODE_MIXED_PORTS="DONT_CARE" WIDTH_A=32 WIDTH_B=32 WIDTHAD_A=5 WIDTHAD_B=5 address_a address_b clock0 data_a q_b wren_a CARRY_CHAIN="MANUAL" CARRY_CHAIN_LENGTH=48 +--VERSION_BEGIN 13.0 cbx_altsyncram 2013:06:12:18:03:43:SJ cbx_cycloneii 2013:06:12:18:03:43:SJ cbx_lpm_add_sub 2013:06:12:18:03:43:SJ cbx_lpm_compare 2013:06:12:18:03:43:SJ cbx_lpm_decode 2013:06:12:18:03:43:SJ cbx_lpm_mux 2013:06:12:18:03:43:SJ cbx_mgl 2013:06:12:18:05:10:SJ cbx_stratix 2013:06:12:18:03:43:SJ cbx_stratixii 2013:06:12:18:03:43:SJ cbx_stratixiii 2013:06:12:18:03:43:SJ cbx_stratixv 2013:06:12:18:03:43:SJ cbx_util_mgl 2013:06:12:18:03:43:SJ VERSION_END + + +-- Copyright (C) 1991-2013 Altera Corporation +-- Your use of Altera Corporation's design tools, logic functions +-- and other software and tools, and its AMPP partner logic +-- functions, and any output files from any of the foregoing +-- (including device programming or simulation files), and any +-- associated documentation or information are expressly subject +-- to the terms and conditions of the Altera Program License +-- Subscription Agreement, Altera MegaCore Function License +-- Agreement, or other applicable license agreement, including, +-- without limitation, that your use is for the sole purpose of +-- programming logic devices manufactured by Altera and sold by +-- Altera or its authorized distributors. Please refer to the +-- applicable agreement for further details. + + +FUNCTION cycloneive_ram_block (clk0, clk1, clr0, clr1, ena0, ena1, ena2, ena3, portaaddr[PORT_A_ADDRESS_WIDTH-1..0], portaaddrstall, portabyteenamasks[PORT_A_BYTE_ENABLE_MASK_WIDTH-1..0], portadatain[PORT_A_DATA_WIDTH-1..0], portare, portawe, portbaddr[PORT_B_ADDRESS_WIDTH-1..0], portbaddrstall, portbbyteenamasks[PORT_B_BYTE_ENABLE_MASK_WIDTH-1..0], portbdatain[PORT_B_DATA_WIDTH-1..0], portbre, portbwe) +WITH ( CLK0_CORE_CLOCK_ENABLE, CLK0_INPUT_CLOCK_ENABLE, CLK0_OUTPUT_CLOCK_ENABLE, CLK1_CORE_CLOCK_ENABLE, CLK1_INPUT_CLOCK_ENABLE, CLK1_OUTPUT_CLOCK_ENABLE, CONNECTIVITY_CHECKING, DATA_INTERLEAVE_OFFSET_IN_BITS, DATA_INTERLEAVE_WIDTH_IN_BITS, DONT_POWER_OPTIMIZE, INIT_FILE, INIT_FILE_LAYOUT, init_file_restructured, LOGICAL_RAM_NAME, mem_init0, mem_init1, mem_init2, mem_init3, mem_init4, MIXED_PORT_FEED_THROUGH_MODE, OPERATION_MODE, PORT_A_ADDRESS_CLEAR, PORT_A_ADDRESS_WIDTH = 1, PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, PORT_A_BYTE_SIZE, PORT_A_DATA_OUT_CLEAR, PORT_A_DATA_OUT_CLOCK, PORT_A_DATA_WIDTH = 1, PORT_A_FIRST_ADDRESS, PORT_A_FIRST_BIT_NUMBER, PORT_A_LAST_ADDRESS, PORT_A_LOGICAL_RAM_DEPTH, PORT_A_LOGICAL_RAM_WIDTH, PORT_A_READ_DURING_WRITE_MODE, PORT_B_ADDRESS_CLEAR, PORT_B_ADDRESS_CLOCK, PORT_B_ADDRESS_WIDTH = 1, PORT_B_BYTE_ENABLE_CLOCK, PORT_B_BYTE_ENABLE_MASK_WIDTH = 1, PORT_B_BYTE_SIZE, PORT_B_DATA_IN_CLOCK, PORT_B_DATA_OUT_CLEAR, PORT_B_DATA_OUT_CLOCK, PORT_B_DATA_WIDTH = 1, PORT_B_FIRST_ADDRESS, PORT_B_FIRST_BIT_NUMBER, PORT_B_LAST_ADDRESS, PORT_B_LOGICAL_RAM_DEPTH, PORT_B_LOGICAL_RAM_WIDTH, PORT_B_READ_DURING_WRITE_MODE, PORT_B_READ_ENABLE_CLOCK, PORT_B_WRITE_ENABLE_CLOCK, POWER_UP_UNINITIALIZED, RAM_BLOCK_TYPE, SAFE_WRITE, WIDTH_ECCSTATUS) +RETURNS ( portadataout[PORT_A_DATA_WIDTH-1..0], portbdataout[PORT_B_DATA_WIDTH-1..0]); + +--synthesis_resources = M9K 1 +OPTIONS ALTERA_INTERNAL_OPTION = "OPTIMIZE_POWER_DURING_SYNTHESIS=NORMAL_COMPILATION"; + +SUBDESIGN altsyncram_0rh1 +( + address_a[4..0] : input; + address_b[4..0] : input; + clock0 : input; + data_a[31..0] : input; + q_b[31..0] : output; + wren_a : input; +) +VARIABLE + ram_block1a0 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "none", + CLK0_INPUT_CLOCK_ENABLE = "none", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_nios2_processor_rf_ram_a.mif", + INIT_FILE_LAYOUT = "port_b", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + MIXED_PORT_FEED_THROUGH_MODE = "dont_care", + OPERATION_MODE = "dual_port", + PORT_A_ADDRESS_WIDTH = 5, + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 0, + PORT_A_LAST_ADDRESS = 31, + PORT_A_LOGICAL_RAM_DEPTH = 32, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_B_ADDRESS_CLEAR = "none", + PORT_B_ADDRESS_CLOCK = "clock0", + PORT_B_ADDRESS_WIDTH = 5, + PORT_B_DATA_OUT_CLEAR = "none", + PORT_B_DATA_WIDTH = 1, + PORT_B_FIRST_ADDRESS = 0, + PORT_B_FIRST_BIT_NUMBER = 0, + PORT_B_LAST_ADDRESS = 31, + PORT_B_LOGICAL_RAM_DEPTH = 32, + PORT_B_LOGICAL_RAM_WIDTH = 32, + PORT_B_READ_ENABLE_CLOCK = "clock0", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a1 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "none", + CLK0_INPUT_CLOCK_ENABLE = "none", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_nios2_processor_rf_ram_a.mif", + INIT_FILE_LAYOUT = "port_b", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + MIXED_PORT_FEED_THROUGH_MODE = "dont_care", + OPERATION_MODE = "dual_port", + PORT_A_ADDRESS_WIDTH = 5, + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 1, + PORT_A_LAST_ADDRESS = 31, + PORT_A_LOGICAL_RAM_DEPTH = 32, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_B_ADDRESS_CLEAR = "none", + PORT_B_ADDRESS_CLOCK = "clock0", + PORT_B_ADDRESS_WIDTH = 5, + PORT_B_DATA_OUT_CLEAR = "none", + PORT_B_DATA_WIDTH = 1, + PORT_B_FIRST_ADDRESS = 0, + PORT_B_FIRST_BIT_NUMBER = 1, + PORT_B_LAST_ADDRESS = 31, + PORT_B_LOGICAL_RAM_DEPTH = 32, + PORT_B_LOGICAL_RAM_WIDTH = 32, + PORT_B_READ_ENABLE_CLOCK = "clock0", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a2 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "none", + CLK0_INPUT_CLOCK_ENABLE = "none", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_nios2_processor_rf_ram_a.mif", + INIT_FILE_LAYOUT = "port_b", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + MIXED_PORT_FEED_THROUGH_MODE = "dont_care", + OPERATION_MODE = "dual_port", + PORT_A_ADDRESS_WIDTH = 5, + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 2, + PORT_A_LAST_ADDRESS = 31, + PORT_A_LOGICAL_RAM_DEPTH = 32, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_B_ADDRESS_CLEAR = "none", + PORT_B_ADDRESS_CLOCK = "clock0", + PORT_B_ADDRESS_WIDTH = 5, + PORT_B_DATA_OUT_CLEAR = "none", + PORT_B_DATA_WIDTH = 1, + PORT_B_FIRST_ADDRESS = 0, + PORT_B_FIRST_BIT_NUMBER = 2, + PORT_B_LAST_ADDRESS = 31, + PORT_B_LOGICAL_RAM_DEPTH = 32, + PORT_B_LOGICAL_RAM_WIDTH = 32, + PORT_B_READ_ENABLE_CLOCK = "clock0", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a3 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "none", + CLK0_INPUT_CLOCK_ENABLE = "none", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_nios2_processor_rf_ram_a.mif", + INIT_FILE_LAYOUT = "port_b", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + MIXED_PORT_FEED_THROUGH_MODE = "dont_care", + OPERATION_MODE = "dual_port", + PORT_A_ADDRESS_WIDTH = 5, + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 3, + PORT_A_LAST_ADDRESS = 31, + PORT_A_LOGICAL_RAM_DEPTH = 32, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_B_ADDRESS_CLEAR = "none", + PORT_B_ADDRESS_CLOCK = "clock0", + PORT_B_ADDRESS_WIDTH = 5, + PORT_B_DATA_OUT_CLEAR = "none", + PORT_B_DATA_WIDTH = 1, + PORT_B_FIRST_ADDRESS = 0, + PORT_B_FIRST_BIT_NUMBER = 3, + PORT_B_LAST_ADDRESS = 31, + PORT_B_LOGICAL_RAM_DEPTH = 32, + PORT_B_LOGICAL_RAM_WIDTH = 32, + PORT_B_READ_ENABLE_CLOCK = "clock0", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a4 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "none", + CLK0_INPUT_CLOCK_ENABLE = "none", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_nios2_processor_rf_ram_a.mif", + INIT_FILE_LAYOUT = "port_b", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + MIXED_PORT_FEED_THROUGH_MODE = "dont_care", + OPERATION_MODE = "dual_port", + PORT_A_ADDRESS_WIDTH = 5, + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 4, + PORT_A_LAST_ADDRESS = 31, + PORT_A_LOGICAL_RAM_DEPTH = 32, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_B_ADDRESS_CLEAR = "none", + PORT_B_ADDRESS_CLOCK = "clock0", + PORT_B_ADDRESS_WIDTH = 5, + PORT_B_DATA_OUT_CLEAR = "none", + PORT_B_DATA_WIDTH = 1, + PORT_B_FIRST_ADDRESS = 0, + PORT_B_FIRST_BIT_NUMBER = 4, + PORT_B_LAST_ADDRESS = 31, + PORT_B_LOGICAL_RAM_DEPTH = 32, + PORT_B_LOGICAL_RAM_WIDTH = 32, + PORT_B_READ_ENABLE_CLOCK = "clock0", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a5 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "none", + CLK0_INPUT_CLOCK_ENABLE = "none", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_nios2_processor_rf_ram_a.mif", + INIT_FILE_LAYOUT = "port_b", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + MIXED_PORT_FEED_THROUGH_MODE = "dont_care", + OPERATION_MODE = "dual_port", + PORT_A_ADDRESS_WIDTH = 5, + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 5, + PORT_A_LAST_ADDRESS = 31, + PORT_A_LOGICAL_RAM_DEPTH = 32, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_B_ADDRESS_CLEAR = "none", + PORT_B_ADDRESS_CLOCK = "clock0", + PORT_B_ADDRESS_WIDTH = 5, + PORT_B_DATA_OUT_CLEAR = "none", + PORT_B_DATA_WIDTH = 1, + PORT_B_FIRST_ADDRESS = 0, + PORT_B_FIRST_BIT_NUMBER = 5, + PORT_B_LAST_ADDRESS = 31, + PORT_B_LOGICAL_RAM_DEPTH = 32, + PORT_B_LOGICAL_RAM_WIDTH = 32, + PORT_B_READ_ENABLE_CLOCK = "clock0", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a6 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "none", + CLK0_INPUT_CLOCK_ENABLE = "none", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_nios2_processor_rf_ram_a.mif", + INIT_FILE_LAYOUT = "port_b", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + MIXED_PORT_FEED_THROUGH_MODE = "dont_care", + OPERATION_MODE = "dual_port", + PORT_A_ADDRESS_WIDTH = 5, + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 6, + PORT_A_LAST_ADDRESS = 31, + PORT_A_LOGICAL_RAM_DEPTH = 32, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_B_ADDRESS_CLEAR = "none", + PORT_B_ADDRESS_CLOCK = "clock0", + PORT_B_ADDRESS_WIDTH = 5, + PORT_B_DATA_OUT_CLEAR = "none", + PORT_B_DATA_WIDTH = 1, + PORT_B_FIRST_ADDRESS = 0, + PORT_B_FIRST_BIT_NUMBER = 6, + PORT_B_LAST_ADDRESS = 31, + PORT_B_LOGICAL_RAM_DEPTH = 32, + PORT_B_LOGICAL_RAM_WIDTH = 32, + PORT_B_READ_ENABLE_CLOCK = "clock0", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a7 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "none", + CLK0_INPUT_CLOCK_ENABLE = "none", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_nios2_processor_rf_ram_a.mif", + INIT_FILE_LAYOUT = "port_b", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + MIXED_PORT_FEED_THROUGH_MODE = "dont_care", + OPERATION_MODE = "dual_port", + PORT_A_ADDRESS_WIDTH = 5, + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 7, + PORT_A_LAST_ADDRESS = 31, + PORT_A_LOGICAL_RAM_DEPTH = 32, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_B_ADDRESS_CLEAR = "none", + PORT_B_ADDRESS_CLOCK = "clock0", + PORT_B_ADDRESS_WIDTH = 5, + PORT_B_DATA_OUT_CLEAR = "none", + PORT_B_DATA_WIDTH = 1, + PORT_B_FIRST_ADDRESS = 0, + PORT_B_FIRST_BIT_NUMBER = 7, + PORT_B_LAST_ADDRESS = 31, + PORT_B_LOGICAL_RAM_DEPTH = 32, + PORT_B_LOGICAL_RAM_WIDTH = 32, + PORT_B_READ_ENABLE_CLOCK = "clock0", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a8 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "none", + CLK0_INPUT_CLOCK_ENABLE = "none", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_nios2_processor_rf_ram_a.mif", + INIT_FILE_LAYOUT = "port_b", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + MIXED_PORT_FEED_THROUGH_MODE = "dont_care", + OPERATION_MODE = "dual_port", + PORT_A_ADDRESS_WIDTH = 5, + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 8, + PORT_A_LAST_ADDRESS = 31, + PORT_A_LOGICAL_RAM_DEPTH = 32, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_B_ADDRESS_CLEAR = "none", + PORT_B_ADDRESS_CLOCK = "clock0", + PORT_B_ADDRESS_WIDTH = 5, + PORT_B_DATA_OUT_CLEAR = "none", + PORT_B_DATA_WIDTH = 1, + PORT_B_FIRST_ADDRESS = 0, + PORT_B_FIRST_BIT_NUMBER = 8, + PORT_B_LAST_ADDRESS = 31, + PORT_B_LOGICAL_RAM_DEPTH = 32, + PORT_B_LOGICAL_RAM_WIDTH = 32, + PORT_B_READ_ENABLE_CLOCK = "clock0", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a9 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "none", + CLK0_INPUT_CLOCK_ENABLE = "none", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_nios2_processor_rf_ram_a.mif", + INIT_FILE_LAYOUT = "port_b", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + MIXED_PORT_FEED_THROUGH_MODE = "dont_care", + OPERATION_MODE = "dual_port", + PORT_A_ADDRESS_WIDTH = 5, + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 9, + PORT_A_LAST_ADDRESS = 31, + PORT_A_LOGICAL_RAM_DEPTH = 32, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_B_ADDRESS_CLEAR = "none", + PORT_B_ADDRESS_CLOCK = "clock0", + PORT_B_ADDRESS_WIDTH = 5, + PORT_B_DATA_OUT_CLEAR = "none", + PORT_B_DATA_WIDTH = 1, + PORT_B_FIRST_ADDRESS = 0, + PORT_B_FIRST_BIT_NUMBER = 9, + PORT_B_LAST_ADDRESS = 31, + PORT_B_LOGICAL_RAM_DEPTH = 32, + PORT_B_LOGICAL_RAM_WIDTH = 32, + PORT_B_READ_ENABLE_CLOCK = "clock0", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a10 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "none", + CLK0_INPUT_CLOCK_ENABLE = "none", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_nios2_processor_rf_ram_a.mif", + INIT_FILE_LAYOUT = "port_b", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + MIXED_PORT_FEED_THROUGH_MODE = "dont_care", + OPERATION_MODE = "dual_port", + PORT_A_ADDRESS_WIDTH = 5, + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 10, + PORT_A_LAST_ADDRESS = 31, + PORT_A_LOGICAL_RAM_DEPTH = 32, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_B_ADDRESS_CLEAR = "none", + PORT_B_ADDRESS_CLOCK = "clock0", + PORT_B_ADDRESS_WIDTH = 5, + PORT_B_DATA_OUT_CLEAR = "none", + PORT_B_DATA_WIDTH = 1, + PORT_B_FIRST_ADDRESS = 0, + PORT_B_FIRST_BIT_NUMBER = 10, + PORT_B_LAST_ADDRESS = 31, + PORT_B_LOGICAL_RAM_DEPTH = 32, + PORT_B_LOGICAL_RAM_WIDTH = 32, + PORT_B_READ_ENABLE_CLOCK = "clock0", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a11 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "none", + CLK0_INPUT_CLOCK_ENABLE = "none", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_nios2_processor_rf_ram_a.mif", + INIT_FILE_LAYOUT = "port_b", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + MIXED_PORT_FEED_THROUGH_MODE = "dont_care", + OPERATION_MODE = "dual_port", + PORT_A_ADDRESS_WIDTH = 5, + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 11, + PORT_A_LAST_ADDRESS = 31, + PORT_A_LOGICAL_RAM_DEPTH = 32, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_B_ADDRESS_CLEAR = "none", + PORT_B_ADDRESS_CLOCK = "clock0", + PORT_B_ADDRESS_WIDTH = 5, + PORT_B_DATA_OUT_CLEAR = "none", + PORT_B_DATA_WIDTH = 1, + PORT_B_FIRST_ADDRESS = 0, + PORT_B_FIRST_BIT_NUMBER = 11, + PORT_B_LAST_ADDRESS = 31, + PORT_B_LOGICAL_RAM_DEPTH = 32, + PORT_B_LOGICAL_RAM_WIDTH = 32, + PORT_B_READ_ENABLE_CLOCK = "clock0", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a12 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "none", + CLK0_INPUT_CLOCK_ENABLE = "none", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_nios2_processor_rf_ram_a.mif", + INIT_FILE_LAYOUT = "port_b", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + MIXED_PORT_FEED_THROUGH_MODE = "dont_care", + OPERATION_MODE = "dual_port", + PORT_A_ADDRESS_WIDTH = 5, + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 12, + PORT_A_LAST_ADDRESS = 31, + PORT_A_LOGICAL_RAM_DEPTH = 32, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_B_ADDRESS_CLEAR = "none", + PORT_B_ADDRESS_CLOCK = "clock0", + PORT_B_ADDRESS_WIDTH = 5, + PORT_B_DATA_OUT_CLEAR = "none", + PORT_B_DATA_WIDTH = 1, + PORT_B_FIRST_ADDRESS = 0, + PORT_B_FIRST_BIT_NUMBER = 12, + PORT_B_LAST_ADDRESS = 31, + PORT_B_LOGICAL_RAM_DEPTH = 32, + PORT_B_LOGICAL_RAM_WIDTH = 32, + PORT_B_READ_ENABLE_CLOCK = "clock0", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a13 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "none", + CLK0_INPUT_CLOCK_ENABLE = "none", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_nios2_processor_rf_ram_a.mif", + INIT_FILE_LAYOUT = "port_b", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + MIXED_PORT_FEED_THROUGH_MODE = "dont_care", + OPERATION_MODE = "dual_port", + PORT_A_ADDRESS_WIDTH = 5, + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 13, + PORT_A_LAST_ADDRESS = 31, + PORT_A_LOGICAL_RAM_DEPTH = 32, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_B_ADDRESS_CLEAR = "none", + PORT_B_ADDRESS_CLOCK = "clock0", + PORT_B_ADDRESS_WIDTH = 5, + PORT_B_DATA_OUT_CLEAR = "none", + PORT_B_DATA_WIDTH = 1, + PORT_B_FIRST_ADDRESS = 0, + PORT_B_FIRST_BIT_NUMBER = 13, + PORT_B_LAST_ADDRESS = 31, + PORT_B_LOGICAL_RAM_DEPTH = 32, + PORT_B_LOGICAL_RAM_WIDTH = 32, + PORT_B_READ_ENABLE_CLOCK = "clock0", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a14 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "none", + CLK0_INPUT_CLOCK_ENABLE = "none", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_nios2_processor_rf_ram_a.mif", + INIT_FILE_LAYOUT = "port_b", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + MIXED_PORT_FEED_THROUGH_MODE = "dont_care", + OPERATION_MODE = "dual_port", + PORT_A_ADDRESS_WIDTH = 5, + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 14, + PORT_A_LAST_ADDRESS = 31, + PORT_A_LOGICAL_RAM_DEPTH = 32, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_B_ADDRESS_CLEAR = "none", + PORT_B_ADDRESS_CLOCK = "clock0", + PORT_B_ADDRESS_WIDTH = 5, + PORT_B_DATA_OUT_CLEAR = "none", + PORT_B_DATA_WIDTH = 1, + PORT_B_FIRST_ADDRESS = 0, + PORT_B_FIRST_BIT_NUMBER = 14, + PORT_B_LAST_ADDRESS = 31, + PORT_B_LOGICAL_RAM_DEPTH = 32, + PORT_B_LOGICAL_RAM_WIDTH = 32, + PORT_B_READ_ENABLE_CLOCK = "clock0", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a15 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "none", + CLK0_INPUT_CLOCK_ENABLE = "none", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_nios2_processor_rf_ram_a.mif", + INIT_FILE_LAYOUT = "port_b", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + MIXED_PORT_FEED_THROUGH_MODE = "dont_care", + OPERATION_MODE = "dual_port", + PORT_A_ADDRESS_WIDTH = 5, + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 15, + PORT_A_LAST_ADDRESS = 31, + PORT_A_LOGICAL_RAM_DEPTH = 32, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_B_ADDRESS_CLEAR = "none", + PORT_B_ADDRESS_CLOCK = "clock0", + PORT_B_ADDRESS_WIDTH = 5, + PORT_B_DATA_OUT_CLEAR = "none", + PORT_B_DATA_WIDTH = 1, + PORT_B_FIRST_ADDRESS = 0, + PORT_B_FIRST_BIT_NUMBER = 15, + PORT_B_LAST_ADDRESS = 31, + PORT_B_LOGICAL_RAM_DEPTH = 32, + PORT_B_LOGICAL_RAM_WIDTH = 32, + PORT_B_READ_ENABLE_CLOCK = "clock0", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a16 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "none", + CLK0_INPUT_CLOCK_ENABLE = "none", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_nios2_processor_rf_ram_a.mif", + INIT_FILE_LAYOUT = "port_b", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + MIXED_PORT_FEED_THROUGH_MODE = "dont_care", + OPERATION_MODE = "dual_port", + PORT_A_ADDRESS_WIDTH = 5, + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 16, + PORT_A_LAST_ADDRESS = 31, + PORT_A_LOGICAL_RAM_DEPTH = 32, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_B_ADDRESS_CLEAR = "none", + PORT_B_ADDRESS_CLOCK = "clock0", + PORT_B_ADDRESS_WIDTH = 5, + PORT_B_DATA_OUT_CLEAR = "none", + PORT_B_DATA_WIDTH = 1, + PORT_B_FIRST_ADDRESS = 0, + PORT_B_FIRST_BIT_NUMBER = 16, + PORT_B_LAST_ADDRESS = 31, + PORT_B_LOGICAL_RAM_DEPTH = 32, + PORT_B_LOGICAL_RAM_WIDTH = 32, + PORT_B_READ_ENABLE_CLOCK = "clock0", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a17 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "none", + CLK0_INPUT_CLOCK_ENABLE = "none", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_nios2_processor_rf_ram_a.mif", + INIT_FILE_LAYOUT = "port_b", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + MIXED_PORT_FEED_THROUGH_MODE = "dont_care", + OPERATION_MODE = "dual_port", + PORT_A_ADDRESS_WIDTH = 5, + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 17, + PORT_A_LAST_ADDRESS = 31, + PORT_A_LOGICAL_RAM_DEPTH = 32, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_B_ADDRESS_CLEAR = "none", + PORT_B_ADDRESS_CLOCK = "clock0", + PORT_B_ADDRESS_WIDTH = 5, + PORT_B_DATA_OUT_CLEAR = "none", + PORT_B_DATA_WIDTH = 1, + PORT_B_FIRST_ADDRESS = 0, + PORT_B_FIRST_BIT_NUMBER = 17, + PORT_B_LAST_ADDRESS = 31, + PORT_B_LOGICAL_RAM_DEPTH = 32, + PORT_B_LOGICAL_RAM_WIDTH = 32, + PORT_B_READ_ENABLE_CLOCK = "clock0", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a18 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "none", + CLK0_INPUT_CLOCK_ENABLE = "none", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_nios2_processor_rf_ram_a.mif", + INIT_FILE_LAYOUT = "port_b", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + MIXED_PORT_FEED_THROUGH_MODE = "dont_care", + OPERATION_MODE = "dual_port", + PORT_A_ADDRESS_WIDTH = 5, + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 18, + PORT_A_LAST_ADDRESS = 31, + PORT_A_LOGICAL_RAM_DEPTH = 32, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_B_ADDRESS_CLEAR = "none", + PORT_B_ADDRESS_CLOCK = "clock0", + PORT_B_ADDRESS_WIDTH = 5, + PORT_B_DATA_OUT_CLEAR = "none", + PORT_B_DATA_WIDTH = 1, + PORT_B_FIRST_ADDRESS = 0, + PORT_B_FIRST_BIT_NUMBER = 18, + PORT_B_LAST_ADDRESS = 31, + PORT_B_LOGICAL_RAM_DEPTH = 32, + PORT_B_LOGICAL_RAM_WIDTH = 32, + PORT_B_READ_ENABLE_CLOCK = "clock0", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a19 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "none", + CLK0_INPUT_CLOCK_ENABLE = "none", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_nios2_processor_rf_ram_a.mif", + INIT_FILE_LAYOUT = "port_b", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + MIXED_PORT_FEED_THROUGH_MODE = "dont_care", + OPERATION_MODE = "dual_port", + PORT_A_ADDRESS_WIDTH = 5, + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 19, + PORT_A_LAST_ADDRESS = 31, + PORT_A_LOGICAL_RAM_DEPTH = 32, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_B_ADDRESS_CLEAR = "none", + PORT_B_ADDRESS_CLOCK = "clock0", + PORT_B_ADDRESS_WIDTH = 5, + PORT_B_DATA_OUT_CLEAR = "none", + PORT_B_DATA_WIDTH = 1, + PORT_B_FIRST_ADDRESS = 0, + PORT_B_FIRST_BIT_NUMBER = 19, + PORT_B_LAST_ADDRESS = 31, + PORT_B_LOGICAL_RAM_DEPTH = 32, + PORT_B_LOGICAL_RAM_WIDTH = 32, + PORT_B_READ_ENABLE_CLOCK = "clock0", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a20 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "none", + CLK0_INPUT_CLOCK_ENABLE = "none", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_nios2_processor_rf_ram_a.mif", + INIT_FILE_LAYOUT = "port_b", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + MIXED_PORT_FEED_THROUGH_MODE = "dont_care", + OPERATION_MODE = "dual_port", + PORT_A_ADDRESS_WIDTH = 5, + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 20, + PORT_A_LAST_ADDRESS = 31, + PORT_A_LOGICAL_RAM_DEPTH = 32, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_B_ADDRESS_CLEAR = "none", + PORT_B_ADDRESS_CLOCK = "clock0", + PORT_B_ADDRESS_WIDTH = 5, + PORT_B_DATA_OUT_CLEAR = "none", + PORT_B_DATA_WIDTH = 1, + PORT_B_FIRST_ADDRESS = 0, + PORT_B_FIRST_BIT_NUMBER = 20, + PORT_B_LAST_ADDRESS = 31, + PORT_B_LOGICAL_RAM_DEPTH = 32, + PORT_B_LOGICAL_RAM_WIDTH = 32, + PORT_B_READ_ENABLE_CLOCK = "clock0", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a21 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "none", + CLK0_INPUT_CLOCK_ENABLE = "none", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_nios2_processor_rf_ram_a.mif", + INIT_FILE_LAYOUT = "port_b", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + MIXED_PORT_FEED_THROUGH_MODE = "dont_care", + OPERATION_MODE = "dual_port", + PORT_A_ADDRESS_WIDTH = 5, + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 21, + PORT_A_LAST_ADDRESS = 31, + PORT_A_LOGICAL_RAM_DEPTH = 32, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_B_ADDRESS_CLEAR = "none", + PORT_B_ADDRESS_CLOCK = "clock0", + PORT_B_ADDRESS_WIDTH = 5, + PORT_B_DATA_OUT_CLEAR = "none", + PORT_B_DATA_WIDTH = 1, + PORT_B_FIRST_ADDRESS = 0, + PORT_B_FIRST_BIT_NUMBER = 21, + PORT_B_LAST_ADDRESS = 31, + PORT_B_LOGICAL_RAM_DEPTH = 32, + PORT_B_LOGICAL_RAM_WIDTH = 32, + PORT_B_READ_ENABLE_CLOCK = "clock0", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a22 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "none", + CLK0_INPUT_CLOCK_ENABLE = "none", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_nios2_processor_rf_ram_a.mif", + INIT_FILE_LAYOUT = "port_b", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + MIXED_PORT_FEED_THROUGH_MODE = "dont_care", + OPERATION_MODE = "dual_port", + PORT_A_ADDRESS_WIDTH = 5, + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 22, + PORT_A_LAST_ADDRESS = 31, + PORT_A_LOGICAL_RAM_DEPTH = 32, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_B_ADDRESS_CLEAR = "none", + PORT_B_ADDRESS_CLOCK = "clock0", + PORT_B_ADDRESS_WIDTH = 5, + PORT_B_DATA_OUT_CLEAR = "none", + PORT_B_DATA_WIDTH = 1, + PORT_B_FIRST_ADDRESS = 0, + PORT_B_FIRST_BIT_NUMBER = 22, + PORT_B_LAST_ADDRESS = 31, + PORT_B_LOGICAL_RAM_DEPTH = 32, + PORT_B_LOGICAL_RAM_WIDTH = 32, + PORT_B_READ_ENABLE_CLOCK = "clock0", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a23 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "none", + CLK0_INPUT_CLOCK_ENABLE = "none", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_nios2_processor_rf_ram_a.mif", + INIT_FILE_LAYOUT = "port_b", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + MIXED_PORT_FEED_THROUGH_MODE = "dont_care", + OPERATION_MODE = "dual_port", + PORT_A_ADDRESS_WIDTH = 5, + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 23, + PORT_A_LAST_ADDRESS = 31, + PORT_A_LOGICAL_RAM_DEPTH = 32, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_B_ADDRESS_CLEAR = "none", + PORT_B_ADDRESS_CLOCK = "clock0", + PORT_B_ADDRESS_WIDTH = 5, + PORT_B_DATA_OUT_CLEAR = "none", + PORT_B_DATA_WIDTH = 1, + PORT_B_FIRST_ADDRESS = 0, + PORT_B_FIRST_BIT_NUMBER = 23, + PORT_B_LAST_ADDRESS = 31, + PORT_B_LOGICAL_RAM_DEPTH = 32, + PORT_B_LOGICAL_RAM_WIDTH = 32, + PORT_B_READ_ENABLE_CLOCK = "clock0", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a24 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "none", + CLK0_INPUT_CLOCK_ENABLE = "none", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_nios2_processor_rf_ram_a.mif", + INIT_FILE_LAYOUT = "port_b", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + MIXED_PORT_FEED_THROUGH_MODE = "dont_care", + OPERATION_MODE = "dual_port", + PORT_A_ADDRESS_WIDTH = 5, + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 24, + PORT_A_LAST_ADDRESS = 31, + PORT_A_LOGICAL_RAM_DEPTH = 32, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_B_ADDRESS_CLEAR = "none", + PORT_B_ADDRESS_CLOCK = "clock0", + PORT_B_ADDRESS_WIDTH = 5, + PORT_B_DATA_OUT_CLEAR = "none", + PORT_B_DATA_WIDTH = 1, + PORT_B_FIRST_ADDRESS = 0, + PORT_B_FIRST_BIT_NUMBER = 24, + PORT_B_LAST_ADDRESS = 31, + PORT_B_LOGICAL_RAM_DEPTH = 32, + PORT_B_LOGICAL_RAM_WIDTH = 32, + PORT_B_READ_ENABLE_CLOCK = "clock0", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a25 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "none", + CLK0_INPUT_CLOCK_ENABLE = "none", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_nios2_processor_rf_ram_a.mif", + INIT_FILE_LAYOUT = "port_b", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + MIXED_PORT_FEED_THROUGH_MODE = "dont_care", + OPERATION_MODE = "dual_port", + PORT_A_ADDRESS_WIDTH = 5, + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 25, + PORT_A_LAST_ADDRESS = 31, + PORT_A_LOGICAL_RAM_DEPTH = 32, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_B_ADDRESS_CLEAR = "none", + PORT_B_ADDRESS_CLOCK = "clock0", + PORT_B_ADDRESS_WIDTH = 5, + PORT_B_DATA_OUT_CLEAR = "none", + PORT_B_DATA_WIDTH = 1, + PORT_B_FIRST_ADDRESS = 0, + PORT_B_FIRST_BIT_NUMBER = 25, + PORT_B_LAST_ADDRESS = 31, + PORT_B_LOGICAL_RAM_DEPTH = 32, + PORT_B_LOGICAL_RAM_WIDTH = 32, + PORT_B_READ_ENABLE_CLOCK = "clock0", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a26 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "none", + CLK0_INPUT_CLOCK_ENABLE = "none", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_nios2_processor_rf_ram_a.mif", + INIT_FILE_LAYOUT = "port_b", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + MIXED_PORT_FEED_THROUGH_MODE = "dont_care", + OPERATION_MODE = "dual_port", + PORT_A_ADDRESS_WIDTH = 5, + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 26, + PORT_A_LAST_ADDRESS = 31, + PORT_A_LOGICAL_RAM_DEPTH = 32, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_B_ADDRESS_CLEAR = "none", + PORT_B_ADDRESS_CLOCK = "clock0", + PORT_B_ADDRESS_WIDTH = 5, + PORT_B_DATA_OUT_CLEAR = "none", + PORT_B_DATA_WIDTH = 1, + PORT_B_FIRST_ADDRESS = 0, + PORT_B_FIRST_BIT_NUMBER = 26, + PORT_B_LAST_ADDRESS = 31, + PORT_B_LOGICAL_RAM_DEPTH = 32, + PORT_B_LOGICAL_RAM_WIDTH = 32, + PORT_B_READ_ENABLE_CLOCK = "clock0", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a27 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "none", + CLK0_INPUT_CLOCK_ENABLE = "none", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_nios2_processor_rf_ram_a.mif", + INIT_FILE_LAYOUT = "port_b", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + MIXED_PORT_FEED_THROUGH_MODE = "dont_care", + OPERATION_MODE = "dual_port", + PORT_A_ADDRESS_WIDTH = 5, + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 27, + PORT_A_LAST_ADDRESS = 31, + PORT_A_LOGICAL_RAM_DEPTH = 32, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_B_ADDRESS_CLEAR = "none", + PORT_B_ADDRESS_CLOCK = "clock0", + PORT_B_ADDRESS_WIDTH = 5, + PORT_B_DATA_OUT_CLEAR = "none", + PORT_B_DATA_WIDTH = 1, + PORT_B_FIRST_ADDRESS = 0, + PORT_B_FIRST_BIT_NUMBER = 27, + PORT_B_LAST_ADDRESS = 31, + PORT_B_LOGICAL_RAM_DEPTH = 32, + PORT_B_LOGICAL_RAM_WIDTH = 32, + PORT_B_READ_ENABLE_CLOCK = "clock0", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a28 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "none", + CLK0_INPUT_CLOCK_ENABLE = "none", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_nios2_processor_rf_ram_a.mif", + INIT_FILE_LAYOUT = "port_b", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + MIXED_PORT_FEED_THROUGH_MODE = "dont_care", + OPERATION_MODE = "dual_port", + PORT_A_ADDRESS_WIDTH = 5, + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 28, + PORT_A_LAST_ADDRESS = 31, + PORT_A_LOGICAL_RAM_DEPTH = 32, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_B_ADDRESS_CLEAR = "none", + PORT_B_ADDRESS_CLOCK = "clock0", + PORT_B_ADDRESS_WIDTH = 5, + PORT_B_DATA_OUT_CLEAR = "none", + PORT_B_DATA_WIDTH = 1, + PORT_B_FIRST_ADDRESS = 0, + PORT_B_FIRST_BIT_NUMBER = 28, + PORT_B_LAST_ADDRESS = 31, + PORT_B_LOGICAL_RAM_DEPTH = 32, + PORT_B_LOGICAL_RAM_WIDTH = 32, + PORT_B_READ_ENABLE_CLOCK = "clock0", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a29 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "none", + CLK0_INPUT_CLOCK_ENABLE = "none", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_nios2_processor_rf_ram_a.mif", + INIT_FILE_LAYOUT = "port_b", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + MIXED_PORT_FEED_THROUGH_MODE = "dont_care", + OPERATION_MODE = "dual_port", + PORT_A_ADDRESS_WIDTH = 5, + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 29, + PORT_A_LAST_ADDRESS = 31, + PORT_A_LOGICAL_RAM_DEPTH = 32, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_B_ADDRESS_CLEAR = "none", + PORT_B_ADDRESS_CLOCK = "clock0", + PORT_B_ADDRESS_WIDTH = 5, + PORT_B_DATA_OUT_CLEAR = "none", + PORT_B_DATA_WIDTH = 1, + PORT_B_FIRST_ADDRESS = 0, + PORT_B_FIRST_BIT_NUMBER = 29, + PORT_B_LAST_ADDRESS = 31, + PORT_B_LOGICAL_RAM_DEPTH = 32, + PORT_B_LOGICAL_RAM_WIDTH = 32, + PORT_B_READ_ENABLE_CLOCK = "clock0", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a30 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "none", + CLK0_INPUT_CLOCK_ENABLE = "none", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_nios2_processor_rf_ram_a.mif", + INIT_FILE_LAYOUT = "port_b", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + MIXED_PORT_FEED_THROUGH_MODE = "dont_care", + OPERATION_MODE = "dual_port", + PORT_A_ADDRESS_WIDTH = 5, + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 30, + PORT_A_LAST_ADDRESS = 31, + PORT_A_LOGICAL_RAM_DEPTH = 32, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_B_ADDRESS_CLEAR = "none", + PORT_B_ADDRESS_CLOCK = "clock0", + PORT_B_ADDRESS_WIDTH = 5, + PORT_B_DATA_OUT_CLEAR = "none", + PORT_B_DATA_WIDTH = 1, + PORT_B_FIRST_ADDRESS = 0, + PORT_B_FIRST_BIT_NUMBER = 30, + PORT_B_LAST_ADDRESS = 31, + PORT_B_LOGICAL_RAM_DEPTH = 32, + PORT_B_LOGICAL_RAM_WIDTH = 32, + PORT_B_READ_ENABLE_CLOCK = "clock0", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a31 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "none", + CLK0_INPUT_CLOCK_ENABLE = "none", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_nios2_processor_rf_ram_a.mif", + INIT_FILE_LAYOUT = "port_b", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + MIXED_PORT_FEED_THROUGH_MODE = "dont_care", + OPERATION_MODE = "dual_port", + PORT_A_ADDRESS_WIDTH = 5, + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 31, + PORT_A_LAST_ADDRESS = 31, + PORT_A_LOGICAL_RAM_DEPTH = 32, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_B_ADDRESS_CLEAR = "none", + PORT_B_ADDRESS_CLOCK = "clock0", + PORT_B_ADDRESS_WIDTH = 5, + PORT_B_DATA_OUT_CLEAR = "none", + PORT_B_DATA_WIDTH = 1, + PORT_B_FIRST_ADDRESS = 0, + PORT_B_FIRST_BIT_NUMBER = 31, + PORT_B_LAST_ADDRESS = 31, + PORT_B_LOGICAL_RAM_DEPTH = 32, + PORT_B_LOGICAL_RAM_WIDTH = 32, + PORT_B_READ_ENABLE_CLOCK = "clock0", + RAM_BLOCK_TYPE = "AUTO" + ); + address_a_wire[4..0] : WIRE; + address_b_wire[4..0] : WIRE; + +BEGIN + ram_block1a[31..0].clk0 = clock0; + ram_block1a[31..0].portaaddr[] = ( address_a_wire[4..0]); + ram_block1a[0].portadatain[] = ( data_a[0..0]); + ram_block1a[1].portadatain[] = ( data_a[1..1]); + ram_block1a[2].portadatain[] = ( data_a[2..2]); + ram_block1a[3].portadatain[] = ( data_a[3..3]); + ram_block1a[4].portadatain[] = ( data_a[4..4]); + ram_block1a[5].portadatain[] = ( data_a[5..5]); + ram_block1a[6].portadatain[] = ( data_a[6..6]); + ram_block1a[7].portadatain[] = ( data_a[7..7]); + ram_block1a[8].portadatain[] = ( data_a[8..8]); + ram_block1a[9].portadatain[] = ( data_a[9..9]); + ram_block1a[10].portadatain[] = ( data_a[10..10]); + ram_block1a[11].portadatain[] = ( data_a[11..11]); + ram_block1a[12].portadatain[] = ( data_a[12..12]); + ram_block1a[13].portadatain[] = ( data_a[13..13]); + ram_block1a[14].portadatain[] = ( data_a[14..14]); + ram_block1a[15].portadatain[] = ( data_a[15..15]); + ram_block1a[16].portadatain[] = ( data_a[16..16]); + ram_block1a[17].portadatain[] = ( data_a[17..17]); + ram_block1a[18].portadatain[] = ( data_a[18..18]); + ram_block1a[19].portadatain[] = ( data_a[19..19]); + ram_block1a[20].portadatain[] = ( data_a[20..20]); + ram_block1a[21].portadatain[] = ( data_a[21..21]); + ram_block1a[22].portadatain[] = ( data_a[22..22]); + ram_block1a[23].portadatain[] = ( data_a[23..23]); + ram_block1a[24].portadatain[] = ( data_a[24..24]); + ram_block1a[25].portadatain[] = ( data_a[25..25]); + ram_block1a[26].portadatain[] = ( data_a[26..26]); + ram_block1a[27].portadatain[] = ( data_a[27..27]); + ram_block1a[28].portadatain[] = ( data_a[28..28]); + ram_block1a[29].portadatain[] = ( data_a[29..29]); + ram_block1a[30].portadatain[] = ( data_a[30..30]); + ram_block1a[31].portadatain[] = ( data_a[31..31]); + ram_block1a[31..0].portawe = wren_a; + ram_block1a[31..0].portbaddr[] = ( address_b_wire[4..0]); + ram_block1a[31..0].portbre = B"11111111111111111111111111111111"; + address_a_wire[] = address_a[]; + address_b_wire[] = address_b[]; + q_b[] = ( ram_block1a[31..0].portbdataout[0..0]); +END; +--VALID FILE diff --git a/db/altsyncram_1rh1.tdf b/db/altsyncram_1rh1.tdf new file mode 100644 index 0000000..c0c64f2 --- /dev/null +++ b/db/altsyncram_1rh1.tdf @@ -0,0 +1,1042 @@ +--altsyncram ADDRESS_REG_B="CLOCK0" CBX_DECLARE_ALL_CONNECTED_PORTS="OFF" CYCLONEII_M4K_COMPATIBILITY="ON" DEVICE_FAMILY="Cyclone IV E" INIT_FILE="nios_system_nios2_processor_rf_ram_b.mif" LOW_POWER_MODE="AUTO" MAXIMUM_DEPTH=0 NUMWORDS_A=32 NUMWORDS_B=32 OPERATION_MODE="DUAL_PORT" OUTDATA_REG_B="UNREGISTERED" RAM_BLOCK_TYPE="AUTO" RDCONTROL_REG_B="CLOCK0" READ_DURING_WRITE_MODE_MIXED_PORTS="DONT_CARE" WIDTH_A=32 WIDTH_B=32 WIDTHAD_A=5 WIDTHAD_B=5 address_a address_b clock0 data_a q_b wren_a CARRY_CHAIN="MANUAL" CARRY_CHAIN_LENGTH=48 +--VERSION_BEGIN 13.0 cbx_altsyncram 2013:06:12:18:03:43:SJ cbx_cycloneii 2013:06:12:18:03:43:SJ cbx_lpm_add_sub 2013:06:12:18:03:43:SJ cbx_lpm_compare 2013:06:12:18:03:43:SJ cbx_lpm_decode 2013:06:12:18:03:43:SJ cbx_lpm_mux 2013:06:12:18:03:43:SJ cbx_mgl 2013:06:12:18:05:10:SJ cbx_stratix 2013:06:12:18:03:43:SJ cbx_stratixii 2013:06:12:18:03:43:SJ cbx_stratixiii 2013:06:12:18:03:43:SJ cbx_stratixv 2013:06:12:18:03:43:SJ cbx_util_mgl 2013:06:12:18:03:43:SJ VERSION_END + + +-- Copyright (C) 1991-2013 Altera Corporation +-- Your use of Altera Corporation's design tools, logic functions +-- and other software and tools, and its AMPP partner logic +-- functions, and any output files from any of the foregoing +-- (including device programming or simulation files), and any +-- associated documentation or information are expressly subject +-- to the terms and conditions of the Altera Program License +-- Subscription Agreement, Altera MegaCore Function License +-- Agreement, or other applicable license agreement, including, +-- without limitation, that your use is for the sole purpose of +-- programming logic devices manufactured by Altera and sold by +-- Altera or its authorized distributors. Please refer to the +-- applicable agreement for further details. + + +FUNCTION cycloneive_ram_block (clk0, clk1, clr0, clr1, ena0, ena1, ena2, ena3, portaaddr[PORT_A_ADDRESS_WIDTH-1..0], portaaddrstall, portabyteenamasks[PORT_A_BYTE_ENABLE_MASK_WIDTH-1..0], portadatain[PORT_A_DATA_WIDTH-1..0], portare, portawe, portbaddr[PORT_B_ADDRESS_WIDTH-1..0], portbaddrstall, portbbyteenamasks[PORT_B_BYTE_ENABLE_MASK_WIDTH-1..0], portbdatain[PORT_B_DATA_WIDTH-1..0], portbre, portbwe) +WITH ( CLK0_CORE_CLOCK_ENABLE, CLK0_INPUT_CLOCK_ENABLE, CLK0_OUTPUT_CLOCK_ENABLE, CLK1_CORE_CLOCK_ENABLE, CLK1_INPUT_CLOCK_ENABLE, CLK1_OUTPUT_CLOCK_ENABLE, CONNECTIVITY_CHECKING, DATA_INTERLEAVE_OFFSET_IN_BITS, DATA_INTERLEAVE_WIDTH_IN_BITS, DONT_POWER_OPTIMIZE, INIT_FILE, INIT_FILE_LAYOUT, init_file_restructured, LOGICAL_RAM_NAME, mem_init0, mem_init1, mem_init2, mem_init3, mem_init4, MIXED_PORT_FEED_THROUGH_MODE, OPERATION_MODE, PORT_A_ADDRESS_CLEAR, PORT_A_ADDRESS_WIDTH = 1, PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, PORT_A_BYTE_SIZE, PORT_A_DATA_OUT_CLEAR, PORT_A_DATA_OUT_CLOCK, PORT_A_DATA_WIDTH = 1, PORT_A_FIRST_ADDRESS, PORT_A_FIRST_BIT_NUMBER, PORT_A_LAST_ADDRESS, PORT_A_LOGICAL_RAM_DEPTH, PORT_A_LOGICAL_RAM_WIDTH, PORT_A_READ_DURING_WRITE_MODE, PORT_B_ADDRESS_CLEAR, PORT_B_ADDRESS_CLOCK, PORT_B_ADDRESS_WIDTH = 1, PORT_B_BYTE_ENABLE_CLOCK, PORT_B_BYTE_ENABLE_MASK_WIDTH = 1, PORT_B_BYTE_SIZE, PORT_B_DATA_IN_CLOCK, PORT_B_DATA_OUT_CLEAR, PORT_B_DATA_OUT_CLOCK, PORT_B_DATA_WIDTH = 1, PORT_B_FIRST_ADDRESS, PORT_B_FIRST_BIT_NUMBER, PORT_B_LAST_ADDRESS, PORT_B_LOGICAL_RAM_DEPTH, PORT_B_LOGICAL_RAM_WIDTH, PORT_B_READ_DURING_WRITE_MODE, PORT_B_READ_ENABLE_CLOCK, PORT_B_WRITE_ENABLE_CLOCK, POWER_UP_UNINITIALIZED, RAM_BLOCK_TYPE, SAFE_WRITE, WIDTH_ECCSTATUS) +RETURNS ( portadataout[PORT_A_DATA_WIDTH-1..0], portbdataout[PORT_B_DATA_WIDTH-1..0]); + +--synthesis_resources = M9K 1 +OPTIONS ALTERA_INTERNAL_OPTION = "OPTIMIZE_POWER_DURING_SYNTHESIS=NORMAL_COMPILATION"; + +SUBDESIGN altsyncram_1rh1 +( + address_a[4..0] : input; + address_b[4..0] : input; + clock0 : input; + data_a[31..0] : input; + q_b[31..0] : output; + wren_a : input; +) +VARIABLE + ram_block1a0 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "none", + CLK0_INPUT_CLOCK_ENABLE = "none", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_nios2_processor_rf_ram_b.mif", + INIT_FILE_LAYOUT = "port_b", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + MIXED_PORT_FEED_THROUGH_MODE = "dont_care", + OPERATION_MODE = "dual_port", + PORT_A_ADDRESS_WIDTH = 5, + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 0, + PORT_A_LAST_ADDRESS = 31, + PORT_A_LOGICAL_RAM_DEPTH = 32, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_B_ADDRESS_CLEAR = "none", + PORT_B_ADDRESS_CLOCK = "clock0", + PORT_B_ADDRESS_WIDTH = 5, + PORT_B_DATA_OUT_CLEAR = "none", + PORT_B_DATA_WIDTH = 1, + PORT_B_FIRST_ADDRESS = 0, + PORT_B_FIRST_BIT_NUMBER = 0, + PORT_B_LAST_ADDRESS = 31, + PORT_B_LOGICAL_RAM_DEPTH = 32, + PORT_B_LOGICAL_RAM_WIDTH = 32, + PORT_B_READ_ENABLE_CLOCK = "clock0", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a1 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "none", + CLK0_INPUT_CLOCK_ENABLE = "none", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_nios2_processor_rf_ram_b.mif", + INIT_FILE_LAYOUT = "port_b", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + MIXED_PORT_FEED_THROUGH_MODE = "dont_care", + OPERATION_MODE = "dual_port", + PORT_A_ADDRESS_WIDTH = 5, + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 1, + PORT_A_LAST_ADDRESS = 31, + PORT_A_LOGICAL_RAM_DEPTH = 32, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_B_ADDRESS_CLEAR = "none", + PORT_B_ADDRESS_CLOCK = "clock0", + PORT_B_ADDRESS_WIDTH = 5, + PORT_B_DATA_OUT_CLEAR = "none", + PORT_B_DATA_WIDTH = 1, + PORT_B_FIRST_ADDRESS = 0, + PORT_B_FIRST_BIT_NUMBER = 1, + PORT_B_LAST_ADDRESS = 31, + PORT_B_LOGICAL_RAM_DEPTH = 32, + PORT_B_LOGICAL_RAM_WIDTH = 32, + PORT_B_READ_ENABLE_CLOCK = "clock0", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a2 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "none", + CLK0_INPUT_CLOCK_ENABLE = "none", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_nios2_processor_rf_ram_b.mif", + INIT_FILE_LAYOUT = "port_b", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + MIXED_PORT_FEED_THROUGH_MODE = "dont_care", + OPERATION_MODE = "dual_port", + PORT_A_ADDRESS_WIDTH = 5, + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 2, + PORT_A_LAST_ADDRESS = 31, + PORT_A_LOGICAL_RAM_DEPTH = 32, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_B_ADDRESS_CLEAR = "none", + PORT_B_ADDRESS_CLOCK = "clock0", + PORT_B_ADDRESS_WIDTH = 5, + PORT_B_DATA_OUT_CLEAR = "none", + PORT_B_DATA_WIDTH = 1, + PORT_B_FIRST_ADDRESS = 0, + PORT_B_FIRST_BIT_NUMBER = 2, + PORT_B_LAST_ADDRESS = 31, + PORT_B_LOGICAL_RAM_DEPTH = 32, + PORT_B_LOGICAL_RAM_WIDTH = 32, + PORT_B_READ_ENABLE_CLOCK = "clock0", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a3 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "none", + CLK0_INPUT_CLOCK_ENABLE = "none", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_nios2_processor_rf_ram_b.mif", + INIT_FILE_LAYOUT = "port_b", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + MIXED_PORT_FEED_THROUGH_MODE = "dont_care", + OPERATION_MODE = "dual_port", + PORT_A_ADDRESS_WIDTH = 5, + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 3, + PORT_A_LAST_ADDRESS = 31, + PORT_A_LOGICAL_RAM_DEPTH = 32, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_B_ADDRESS_CLEAR = "none", + PORT_B_ADDRESS_CLOCK = "clock0", + PORT_B_ADDRESS_WIDTH = 5, + PORT_B_DATA_OUT_CLEAR = "none", + PORT_B_DATA_WIDTH = 1, + PORT_B_FIRST_ADDRESS = 0, + PORT_B_FIRST_BIT_NUMBER = 3, + PORT_B_LAST_ADDRESS = 31, + PORT_B_LOGICAL_RAM_DEPTH = 32, + PORT_B_LOGICAL_RAM_WIDTH = 32, + PORT_B_READ_ENABLE_CLOCK = "clock0", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a4 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "none", + CLK0_INPUT_CLOCK_ENABLE = "none", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_nios2_processor_rf_ram_b.mif", + INIT_FILE_LAYOUT = "port_b", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + MIXED_PORT_FEED_THROUGH_MODE = "dont_care", + OPERATION_MODE = "dual_port", + PORT_A_ADDRESS_WIDTH = 5, + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 4, + PORT_A_LAST_ADDRESS = 31, + PORT_A_LOGICAL_RAM_DEPTH = 32, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_B_ADDRESS_CLEAR = "none", + PORT_B_ADDRESS_CLOCK = "clock0", + PORT_B_ADDRESS_WIDTH = 5, + PORT_B_DATA_OUT_CLEAR = "none", + PORT_B_DATA_WIDTH = 1, + PORT_B_FIRST_ADDRESS = 0, + PORT_B_FIRST_BIT_NUMBER = 4, + PORT_B_LAST_ADDRESS = 31, + PORT_B_LOGICAL_RAM_DEPTH = 32, + PORT_B_LOGICAL_RAM_WIDTH = 32, + PORT_B_READ_ENABLE_CLOCK = "clock0", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a5 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "none", + CLK0_INPUT_CLOCK_ENABLE = "none", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_nios2_processor_rf_ram_b.mif", + INIT_FILE_LAYOUT = "port_b", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + MIXED_PORT_FEED_THROUGH_MODE = "dont_care", + OPERATION_MODE = "dual_port", + PORT_A_ADDRESS_WIDTH = 5, + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 5, + PORT_A_LAST_ADDRESS = 31, + PORT_A_LOGICAL_RAM_DEPTH = 32, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_B_ADDRESS_CLEAR = "none", + PORT_B_ADDRESS_CLOCK = "clock0", + PORT_B_ADDRESS_WIDTH = 5, + PORT_B_DATA_OUT_CLEAR = "none", + PORT_B_DATA_WIDTH = 1, + PORT_B_FIRST_ADDRESS = 0, + PORT_B_FIRST_BIT_NUMBER = 5, + PORT_B_LAST_ADDRESS = 31, + PORT_B_LOGICAL_RAM_DEPTH = 32, + PORT_B_LOGICAL_RAM_WIDTH = 32, + PORT_B_READ_ENABLE_CLOCK = "clock0", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a6 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "none", + CLK0_INPUT_CLOCK_ENABLE = "none", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_nios2_processor_rf_ram_b.mif", + INIT_FILE_LAYOUT = "port_b", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + MIXED_PORT_FEED_THROUGH_MODE = "dont_care", + OPERATION_MODE = "dual_port", + PORT_A_ADDRESS_WIDTH = 5, + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 6, + PORT_A_LAST_ADDRESS = 31, + PORT_A_LOGICAL_RAM_DEPTH = 32, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_B_ADDRESS_CLEAR = "none", + PORT_B_ADDRESS_CLOCK = "clock0", + PORT_B_ADDRESS_WIDTH = 5, + PORT_B_DATA_OUT_CLEAR = "none", + PORT_B_DATA_WIDTH = 1, + PORT_B_FIRST_ADDRESS = 0, + PORT_B_FIRST_BIT_NUMBER = 6, + PORT_B_LAST_ADDRESS = 31, + PORT_B_LOGICAL_RAM_DEPTH = 32, + PORT_B_LOGICAL_RAM_WIDTH = 32, + PORT_B_READ_ENABLE_CLOCK = "clock0", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a7 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "none", + CLK0_INPUT_CLOCK_ENABLE = "none", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_nios2_processor_rf_ram_b.mif", + INIT_FILE_LAYOUT = "port_b", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + MIXED_PORT_FEED_THROUGH_MODE = "dont_care", + OPERATION_MODE = "dual_port", + PORT_A_ADDRESS_WIDTH = 5, + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 7, + PORT_A_LAST_ADDRESS = 31, + PORT_A_LOGICAL_RAM_DEPTH = 32, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_B_ADDRESS_CLEAR = "none", + PORT_B_ADDRESS_CLOCK = "clock0", + PORT_B_ADDRESS_WIDTH = 5, + PORT_B_DATA_OUT_CLEAR = "none", + PORT_B_DATA_WIDTH = 1, + PORT_B_FIRST_ADDRESS = 0, + PORT_B_FIRST_BIT_NUMBER = 7, + PORT_B_LAST_ADDRESS = 31, + PORT_B_LOGICAL_RAM_DEPTH = 32, + PORT_B_LOGICAL_RAM_WIDTH = 32, + PORT_B_READ_ENABLE_CLOCK = "clock0", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a8 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "none", + CLK0_INPUT_CLOCK_ENABLE = "none", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_nios2_processor_rf_ram_b.mif", + INIT_FILE_LAYOUT = "port_b", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + MIXED_PORT_FEED_THROUGH_MODE = "dont_care", + OPERATION_MODE = "dual_port", + PORT_A_ADDRESS_WIDTH = 5, + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 8, + PORT_A_LAST_ADDRESS = 31, + PORT_A_LOGICAL_RAM_DEPTH = 32, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_B_ADDRESS_CLEAR = "none", + PORT_B_ADDRESS_CLOCK = "clock0", + PORT_B_ADDRESS_WIDTH = 5, + PORT_B_DATA_OUT_CLEAR = "none", + PORT_B_DATA_WIDTH = 1, + PORT_B_FIRST_ADDRESS = 0, + PORT_B_FIRST_BIT_NUMBER = 8, + PORT_B_LAST_ADDRESS = 31, + PORT_B_LOGICAL_RAM_DEPTH = 32, + PORT_B_LOGICAL_RAM_WIDTH = 32, + PORT_B_READ_ENABLE_CLOCK = "clock0", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a9 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "none", + CLK0_INPUT_CLOCK_ENABLE = "none", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_nios2_processor_rf_ram_b.mif", + INIT_FILE_LAYOUT = "port_b", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + MIXED_PORT_FEED_THROUGH_MODE = "dont_care", + OPERATION_MODE = "dual_port", + PORT_A_ADDRESS_WIDTH = 5, + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 9, + PORT_A_LAST_ADDRESS = 31, + PORT_A_LOGICAL_RAM_DEPTH = 32, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_B_ADDRESS_CLEAR = "none", + PORT_B_ADDRESS_CLOCK = "clock0", + PORT_B_ADDRESS_WIDTH = 5, + PORT_B_DATA_OUT_CLEAR = "none", + PORT_B_DATA_WIDTH = 1, + PORT_B_FIRST_ADDRESS = 0, + PORT_B_FIRST_BIT_NUMBER = 9, + PORT_B_LAST_ADDRESS = 31, + PORT_B_LOGICAL_RAM_DEPTH = 32, + PORT_B_LOGICAL_RAM_WIDTH = 32, + PORT_B_READ_ENABLE_CLOCK = "clock0", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a10 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "none", + CLK0_INPUT_CLOCK_ENABLE = "none", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_nios2_processor_rf_ram_b.mif", + INIT_FILE_LAYOUT = "port_b", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + MIXED_PORT_FEED_THROUGH_MODE = "dont_care", + OPERATION_MODE = "dual_port", + PORT_A_ADDRESS_WIDTH = 5, + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 10, + PORT_A_LAST_ADDRESS = 31, + PORT_A_LOGICAL_RAM_DEPTH = 32, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_B_ADDRESS_CLEAR = "none", + PORT_B_ADDRESS_CLOCK = "clock0", + PORT_B_ADDRESS_WIDTH = 5, + PORT_B_DATA_OUT_CLEAR = "none", + PORT_B_DATA_WIDTH = 1, + PORT_B_FIRST_ADDRESS = 0, + PORT_B_FIRST_BIT_NUMBER = 10, + PORT_B_LAST_ADDRESS = 31, + PORT_B_LOGICAL_RAM_DEPTH = 32, + PORT_B_LOGICAL_RAM_WIDTH = 32, + PORT_B_READ_ENABLE_CLOCK = "clock0", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a11 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "none", + CLK0_INPUT_CLOCK_ENABLE = "none", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_nios2_processor_rf_ram_b.mif", + INIT_FILE_LAYOUT = "port_b", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + MIXED_PORT_FEED_THROUGH_MODE = "dont_care", + OPERATION_MODE = "dual_port", + PORT_A_ADDRESS_WIDTH = 5, + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 11, + PORT_A_LAST_ADDRESS = 31, + PORT_A_LOGICAL_RAM_DEPTH = 32, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_B_ADDRESS_CLEAR = "none", + PORT_B_ADDRESS_CLOCK = "clock0", + PORT_B_ADDRESS_WIDTH = 5, + PORT_B_DATA_OUT_CLEAR = "none", + PORT_B_DATA_WIDTH = 1, + PORT_B_FIRST_ADDRESS = 0, + PORT_B_FIRST_BIT_NUMBER = 11, + PORT_B_LAST_ADDRESS = 31, + PORT_B_LOGICAL_RAM_DEPTH = 32, + PORT_B_LOGICAL_RAM_WIDTH = 32, + PORT_B_READ_ENABLE_CLOCK = "clock0", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a12 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "none", + CLK0_INPUT_CLOCK_ENABLE = "none", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_nios2_processor_rf_ram_b.mif", + INIT_FILE_LAYOUT = "port_b", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + MIXED_PORT_FEED_THROUGH_MODE = "dont_care", + OPERATION_MODE = "dual_port", + PORT_A_ADDRESS_WIDTH = 5, + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 12, + PORT_A_LAST_ADDRESS = 31, + PORT_A_LOGICAL_RAM_DEPTH = 32, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_B_ADDRESS_CLEAR = "none", + PORT_B_ADDRESS_CLOCK = "clock0", + PORT_B_ADDRESS_WIDTH = 5, + PORT_B_DATA_OUT_CLEAR = "none", + PORT_B_DATA_WIDTH = 1, + PORT_B_FIRST_ADDRESS = 0, + PORT_B_FIRST_BIT_NUMBER = 12, + PORT_B_LAST_ADDRESS = 31, + PORT_B_LOGICAL_RAM_DEPTH = 32, + PORT_B_LOGICAL_RAM_WIDTH = 32, + PORT_B_READ_ENABLE_CLOCK = "clock0", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a13 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "none", + CLK0_INPUT_CLOCK_ENABLE = "none", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_nios2_processor_rf_ram_b.mif", + INIT_FILE_LAYOUT = "port_b", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + MIXED_PORT_FEED_THROUGH_MODE = "dont_care", + OPERATION_MODE = "dual_port", + PORT_A_ADDRESS_WIDTH = 5, + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 13, + PORT_A_LAST_ADDRESS = 31, + PORT_A_LOGICAL_RAM_DEPTH = 32, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_B_ADDRESS_CLEAR = "none", + PORT_B_ADDRESS_CLOCK = "clock0", + PORT_B_ADDRESS_WIDTH = 5, + PORT_B_DATA_OUT_CLEAR = "none", + PORT_B_DATA_WIDTH = 1, + PORT_B_FIRST_ADDRESS = 0, + PORT_B_FIRST_BIT_NUMBER = 13, + PORT_B_LAST_ADDRESS = 31, + PORT_B_LOGICAL_RAM_DEPTH = 32, + PORT_B_LOGICAL_RAM_WIDTH = 32, + PORT_B_READ_ENABLE_CLOCK = "clock0", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a14 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "none", + CLK0_INPUT_CLOCK_ENABLE = "none", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_nios2_processor_rf_ram_b.mif", + INIT_FILE_LAYOUT = "port_b", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + MIXED_PORT_FEED_THROUGH_MODE = "dont_care", + OPERATION_MODE = "dual_port", + PORT_A_ADDRESS_WIDTH = 5, + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 14, + PORT_A_LAST_ADDRESS = 31, + PORT_A_LOGICAL_RAM_DEPTH = 32, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_B_ADDRESS_CLEAR = "none", + PORT_B_ADDRESS_CLOCK = "clock0", + PORT_B_ADDRESS_WIDTH = 5, + PORT_B_DATA_OUT_CLEAR = "none", + PORT_B_DATA_WIDTH = 1, + PORT_B_FIRST_ADDRESS = 0, + PORT_B_FIRST_BIT_NUMBER = 14, + PORT_B_LAST_ADDRESS = 31, + PORT_B_LOGICAL_RAM_DEPTH = 32, + PORT_B_LOGICAL_RAM_WIDTH = 32, + PORT_B_READ_ENABLE_CLOCK = "clock0", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a15 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "none", + CLK0_INPUT_CLOCK_ENABLE = "none", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_nios2_processor_rf_ram_b.mif", + INIT_FILE_LAYOUT = "port_b", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + MIXED_PORT_FEED_THROUGH_MODE = "dont_care", + OPERATION_MODE = "dual_port", + PORT_A_ADDRESS_WIDTH = 5, + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 15, + PORT_A_LAST_ADDRESS = 31, + PORT_A_LOGICAL_RAM_DEPTH = 32, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_B_ADDRESS_CLEAR = "none", + PORT_B_ADDRESS_CLOCK = "clock0", + PORT_B_ADDRESS_WIDTH = 5, + PORT_B_DATA_OUT_CLEAR = "none", + PORT_B_DATA_WIDTH = 1, + PORT_B_FIRST_ADDRESS = 0, + PORT_B_FIRST_BIT_NUMBER = 15, + PORT_B_LAST_ADDRESS = 31, + PORT_B_LOGICAL_RAM_DEPTH = 32, + PORT_B_LOGICAL_RAM_WIDTH = 32, + PORT_B_READ_ENABLE_CLOCK = "clock0", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a16 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "none", + CLK0_INPUT_CLOCK_ENABLE = "none", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_nios2_processor_rf_ram_b.mif", + INIT_FILE_LAYOUT = "port_b", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + MIXED_PORT_FEED_THROUGH_MODE = "dont_care", + OPERATION_MODE = "dual_port", + PORT_A_ADDRESS_WIDTH = 5, + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 16, + PORT_A_LAST_ADDRESS = 31, + PORT_A_LOGICAL_RAM_DEPTH = 32, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_B_ADDRESS_CLEAR = "none", + PORT_B_ADDRESS_CLOCK = "clock0", + PORT_B_ADDRESS_WIDTH = 5, + PORT_B_DATA_OUT_CLEAR = "none", + PORT_B_DATA_WIDTH = 1, + PORT_B_FIRST_ADDRESS = 0, + PORT_B_FIRST_BIT_NUMBER = 16, + PORT_B_LAST_ADDRESS = 31, + PORT_B_LOGICAL_RAM_DEPTH = 32, + PORT_B_LOGICAL_RAM_WIDTH = 32, + PORT_B_READ_ENABLE_CLOCK = "clock0", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a17 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "none", + CLK0_INPUT_CLOCK_ENABLE = "none", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_nios2_processor_rf_ram_b.mif", + INIT_FILE_LAYOUT = "port_b", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + MIXED_PORT_FEED_THROUGH_MODE = "dont_care", + OPERATION_MODE = "dual_port", + PORT_A_ADDRESS_WIDTH = 5, + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 17, + PORT_A_LAST_ADDRESS = 31, + PORT_A_LOGICAL_RAM_DEPTH = 32, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_B_ADDRESS_CLEAR = "none", + PORT_B_ADDRESS_CLOCK = "clock0", + PORT_B_ADDRESS_WIDTH = 5, + PORT_B_DATA_OUT_CLEAR = "none", + PORT_B_DATA_WIDTH = 1, + PORT_B_FIRST_ADDRESS = 0, + PORT_B_FIRST_BIT_NUMBER = 17, + PORT_B_LAST_ADDRESS = 31, + PORT_B_LOGICAL_RAM_DEPTH = 32, + PORT_B_LOGICAL_RAM_WIDTH = 32, + PORT_B_READ_ENABLE_CLOCK = "clock0", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a18 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "none", + CLK0_INPUT_CLOCK_ENABLE = "none", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_nios2_processor_rf_ram_b.mif", + INIT_FILE_LAYOUT = "port_b", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + MIXED_PORT_FEED_THROUGH_MODE = "dont_care", + OPERATION_MODE = "dual_port", + PORT_A_ADDRESS_WIDTH = 5, + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 18, + PORT_A_LAST_ADDRESS = 31, + PORT_A_LOGICAL_RAM_DEPTH = 32, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_B_ADDRESS_CLEAR = "none", + PORT_B_ADDRESS_CLOCK = "clock0", + PORT_B_ADDRESS_WIDTH = 5, + PORT_B_DATA_OUT_CLEAR = "none", + PORT_B_DATA_WIDTH = 1, + PORT_B_FIRST_ADDRESS = 0, + PORT_B_FIRST_BIT_NUMBER = 18, + PORT_B_LAST_ADDRESS = 31, + PORT_B_LOGICAL_RAM_DEPTH = 32, + PORT_B_LOGICAL_RAM_WIDTH = 32, + PORT_B_READ_ENABLE_CLOCK = "clock0", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a19 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "none", + CLK0_INPUT_CLOCK_ENABLE = "none", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_nios2_processor_rf_ram_b.mif", + INIT_FILE_LAYOUT = "port_b", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + MIXED_PORT_FEED_THROUGH_MODE = "dont_care", + OPERATION_MODE = "dual_port", + PORT_A_ADDRESS_WIDTH = 5, + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 19, + PORT_A_LAST_ADDRESS = 31, + PORT_A_LOGICAL_RAM_DEPTH = 32, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_B_ADDRESS_CLEAR = "none", + PORT_B_ADDRESS_CLOCK = "clock0", + PORT_B_ADDRESS_WIDTH = 5, + PORT_B_DATA_OUT_CLEAR = "none", + PORT_B_DATA_WIDTH = 1, + PORT_B_FIRST_ADDRESS = 0, + PORT_B_FIRST_BIT_NUMBER = 19, + PORT_B_LAST_ADDRESS = 31, + PORT_B_LOGICAL_RAM_DEPTH = 32, + PORT_B_LOGICAL_RAM_WIDTH = 32, + PORT_B_READ_ENABLE_CLOCK = "clock0", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a20 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "none", + CLK0_INPUT_CLOCK_ENABLE = "none", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_nios2_processor_rf_ram_b.mif", + INIT_FILE_LAYOUT = "port_b", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + MIXED_PORT_FEED_THROUGH_MODE = "dont_care", + OPERATION_MODE = "dual_port", + PORT_A_ADDRESS_WIDTH = 5, + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 20, + PORT_A_LAST_ADDRESS = 31, + PORT_A_LOGICAL_RAM_DEPTH = 32, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_B_ADDRESS_CLEAR = "none", + PORT_B_ADDRESS_CLOCK = "clock0", + PORT_B_ADDRESS_WIDTH = 5, + PORT_B_DATA_OUT_CLEAR = "none", + PORT_B_DATA_WIDTH = 1, + PORT_B_FIRST_ADDRESS = 0, + PORT_B_FIRST_BIT_NUMBER = 20, + PORT_B_LAST_ADDRESS = 31, + PORT_B_LOGICAL_RAM_DEPTH = 32, + PORT_B_LOGICAL_RAM_WIDTH = 32, + PORT_B_READ_ENABLE_CLOCK = "clock0", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a21 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "none", + CLK0_INPUT_CLOCK_ENABLE = "none", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_nios2_processor_rf_ram_b.mif", + INIT_FILE_LAYOUT = "port_b", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + MIXED_PORT_FEED_THROUGH_MODE = "dont_care", + OPERATION_MODE = "dual_port", + PORT_A_ADDRESS_WIDTH = 5, + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 21, + PORT_A_LAST_ADDRESS = 31, + PORT_A_LOGICAL_RAM_DEPTH = 32, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_B_ADDRESS_CLEAR = "none", + PORT_B_ADDRESS_CLOCK = "clock0", + PORT_B_ADDRESS_WIDTH = 5, + PORT_B_DATA_OUT_CLEAR = "none", + PORT_B_DATA_WIDTH = 1, + PORT_B_FIRST_ADDRESS = 0, + PORT_B_FIRST_BIT_NUMBER = 21, + PORT_B_LAST_ADDRESS = 31, + PORT_B_LOGICAL_RAM_DEPTH = 32, + PORT_B_LOGICAL_RAM_WIDTH = 32, + PORT_B_READ_ENABLE_CLOCK = "clock0", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a22 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "none", + CLK0_INPUT_CLOCK_ENABLE = "none", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_nios2_processor_rf_ram_b.mif", + INIT_FILE_LAYOUT = "port_b", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + MIXED_PORT_FEED_THROUGH_MODE = "dont_care", + OPERATION_MODE = "dual_port", + PORT_A_ADDRESS_WIDTH = 5, + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 22, + PORT_A_LAST_ADDRESS = 31, + PORT_A_LOGICAL_RAM_DEPTH = 32, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_B_ADDRESS_CLEAR = "none", + PORT_B_ADDRESS_CLOCK = "clock0", + PORT_B_ADDRESS_WIDTH = 5, + PORT_B_DATA_OUT_CLEAR = "none", + PORT_B_DATA_WIDTH = 1, + PORT_B_FIRST_ADDRESS = 0, + PORT_B_FIRST_BIT_NUMBER = 22, + PORT_B_LAST_ADDRESS = 31, + PORT_B_LOGICAL_RAM_DEPTH = 32, + PORT_B_LOGICAL_RAM_WIDTH = 32, + PORT_B_READ_ENABLE_CLOCK = "clock0", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a23 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "none", + CLK0_INPUT_CLOCK_ENABLE = "none", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_nios2_processor_rf_ram_b.mif", + INIT_FILE_LAYOUT = "port_b", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + MIXED_PORT_FEED_THROUGH_MODE = "dont_care", + OPERATION_MODE = "dual_port", + PORT_A_ADDRESS_WIDTH = 5, + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 23, + PORT_A_LAST_ADDRESS = 31, + PORT_A_LOGICAL_RAM_DEPTH = 32, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_B_ADDRESS_CLEAR = "none", + PORT_B_ADDRESS_CLOCK = "clock0", + PORT_B_ADDRESS_WIDTH = 5, + PORT_B_DATA_OUT_CLEAR = "none", + PORT_B_DATA_WIDTH = 1, + PORT_B_FIRST_ADDRESS = 0, + PORT_B_FIRST_BIT_NUMBER = 23, + PORT_B_LAST_ADDRESS = 31, + PORT_B_LOGICAL_RAM_DEPTH = 32, + PORT_B_LOGICAL_RAM_WIDTH = 32, + PORT_B_READ_ENABLE_CLOCK = "clock0", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a24 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "none", + CLK0_INPUT_CLOCK_ENABLE = "none", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_nios2_processor_rf_ram_b.mif", + INIT_FILE_LAYOUT = "port_b", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + MIXED_PORT_FEED_THROUGH_MODE = "dont_care", + OPERATION_MODE = "dual_port", + PORT_A_ADDRESS_WIDTH = 5, + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 24, + PORT_A_LAST_ADDRESS = 31, + PORT_A_LOGICAL_RAM_DEPTH = 32, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_B_ADDRESS_CLEAR = "none", + PORT_B_ADDRESS_CLOCK = "clock0", + PORT_B_ADDRESS_WIDTH = 5, + PORT_B_DATA_OUT_CLEAR = "none", + PORT_B_DATA_WIDTH = 1, + PORT_B_FIRST_ADDRESS = 0, + PORT_B_FIRST_BIT_NUMBER = 24, + PORT_B_LAST_ADDRESS = 31, + PORT_B_LOGICAL_RAM_DEPTH = 32, + PORT_B_LOGICAL_RAM_WIDTH = 32, + PORT_B_READ_ENABLE_CLOCK = "clock0", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a25 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "none", + CLK0_INPUT_CLOCK_ENABLE = "none", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_nios2_processor_rf_ram_b.mif", + INIT_FILE_LAYOUT = "port_b", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + MIXED_PORT_FEED_THROUGH_MODE = "dont_care", + OPERATION_MODE = "dual_port", + PORT_A_ADDRESS_WIDTH = 5, + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 25, + PORT_A_LAST_ADDRESS = 31, + PORT_A_LOGICAL_RAM_DEPTH = 32, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_B_ADDRESS_CLEAR = "none", + PORT_B_ADDRESS_CLOCK = "clock0", + PORT_B_ADDRESS_WIDTH = 5, + PORT_B_DATA_OUT_CLEAR = "none", + PORT_B_DATA_WIDTH = 1, + PORT_B_FIRST_ADDRESS = 0, + PORT_B_FIRST_BIT_NUMBER = 25, + PORT_B_LAST_ADDRESS = 31, + PORT_B_LOGICAL_RAM_DEPTH = 32, + PORT_B_LOGICAL_RAM_WIDTH = 32, + PORT_B_READ_ENABLE_CLOCK = "clock0", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a26 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "none", + CLK0_INPUT_CLOCK_ENABLE = "none", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_nios2_processor_rf_ram_b.mif", + INIT_FILE_LAYOUT = "port_b", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + MIXED_PORT_FEED_THROUGH_MODE = "dont_care", + OPERATION_MODE = "dual_port", + PORT_A_ADDRESS_WIDTH = 5, + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 26, + PORT_A_LAST_ADDRESS = 31, + PORT_A_LOGICAL_RAM_DEPTH = 32, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_B_ADDRESS_CLEAR = "none", + PORT_B_ADDRESS_CLOCK = "clock0", + PORT_B_ADDRESS_WIDTH = 5, + PORT_B_DATA_OUT_CLEAR = "none", + PORT_B_DATA_WIDTH = 1, + PORT_B_FIRST_ADDRESS = 0, + PORT_B_FIRST_BIT_NUMBER = 26, + PORT_B_LAST_ADDRESS = 31, + PORT_B_LOGICAL_RAM_DEPTH = 32, + PORT_B_LOGICAL_RAM_WIDTH = 32, + PORT_B_READ_ENABLE_CLOCK = "clock0", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a27 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "none", + CLK0_INPUT_CLOCK_ENABLE = "none", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_nios2_processor_rf_ram_b.mif", + INIT_FILE_LAYOUT = "port_b", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + MIXED_PORT_FEED_THROUGH_MODE = "dont_care", + OPERATION_MODE = "dual_port", + PORT_A_ADDRESS_WIDTH = 5, + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 27, + PORT_A_LAST_ADDRESS = 31, + PORT_A_LOGICAL_RAM_DEPTH = 32, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_B_ADDRESS_CLEAR = "none", + PORT_B_ADDRESS_CLOCK = "clock0", + PORT_B_ADDRESS_WIDTH = 5, + PORT_B_DATA_OUT_CLEAR = "none", + PORT_B_DATA_WIDTH = 1, + PORT_B_FIRST_ADDRESS = 0, + PORT_B_FIRST_BIT_NUMBER = 27, + PORT_B_LAST_ADDRESS = 31, + PORT_B_LOGICAL_RAM_DEPTH = 32, + PORT_B_LOGICAL_RAM_WIDTH = 32, + PORT_B_READ_ENABLE_CLOCK = "clock0", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a28 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "none", + CLK0_INPUT_CLOCK_ENABLE = "none", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_nios2_processor_rf_ram_b.mif", + INIT_FILE_LAYOUT = "port_b", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + MIXED_PORT_FEED_THROUGH_MODE = "dont_care", + OPERATION_MODE = "dual_port", + PORT_A_ADDRESS_WIDTH = 5, + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 28, + PORT_A_LAST_ADDRESS = 31, + PORT_A_LOGICAL_RAM_DEPTH = 32, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_B_ADDRESS_CLEAR = "none", + PORT_B_ADDRESS_CLOCK = "clock0", + PORT_B_ADDRESS_WIDTH = 5, + PORT_B_DATA_OUT_CLEAR = "none", + PORT_B_DATA_WIDTH = 1, + PORT_B_FIRST_ADDRESS = 0, + PORT_B_FIRST_BIT_NUMBER = 28, + PORT_B_LAST_ADDRESS = 31, + PORT_B_LOGICAL_RAM_DEPTH = 32, + PORT_B_LOGICAL_RAM_WIDTH = 32, + PORT_B_READ_ENABLE_CLOCK = "clock0", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a29 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "none", + CLK0_INPUT_CLOCK_ENABLE = "none", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_nios2_processor_rf_ram_b.mif", + INIT_FILE_LAYOUT = "port_b", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + MIXED_PORT_FEED_THROUGH_MODE = "dont_care", + OPERATION_MODE = "dual_port", + PORT_A_ADDRESS_WIDTH = 5, + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 29, + PORT_A_LAST_ADDRESS = 31, + PORT_A_LOGICAL_RAM_DEPTH = 32, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_B_ADDRESS_CLEAR = "none", + PORT_B_ADDRESS_CLOCK = "clock0", + PORT_B_ADDRESS_WIDTH = 5, + PORT_B_DATA_OUT_CLEAR = "none", + PORT_B_DATA_WIDTH = 1, + PORT_B_FIRST_ADDRESS = 0, + PORT_B_FIRST_BIT_NUMBER = 29, + PORT_B_LAST_ADDRESS = 31, + PORT_B_LOGICAL_RAM_DEPTH = 32, + PORT_B_LOGICAL_RAM_WIDTH = 32, + PORT_B_READ_ENABLE_CLOCK = "clock0", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a30 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "none", + CLK0_INPUT_CLOCK_ENABLE = "none", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_nios2_processor_rf_ram_b.mif", + INIT_FILE_LAYOUT = "port_b", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + MIXED_PORT_FEED_THROUGH_MODE = "dont_care", + OPERATION_MODE = "dual_port", + PORT_A_ADDRESS_WIDTH = 5, + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 30, + PORT_A_LAST_ADDRESS = 31, + PORT_A_LOGICAL_RAM_DEPTH = 32, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_B_ADDRESS_CLEAR = "none", + PORT_B_ADDRESS_CLOCK = "clock0", + PORT_B_ADDRESS_WIDTH = 5, + PORT_B_DATA_OUT_CLEAR = "none", + PORT_B_DATA_WIDTH = 1, + PORT_B_FIRST_ADDRESS = 0, + PORT_B_FIRST_BIT_NUMBER = 30, + PORT_B_LAST_ADDRESS = 31, + PORT_B_LOGICAL_RAM_DEPTH = 32, + PORT_B_LOGICAL_RAM_WIDTH = 32, + PORT_B_READ_ENABLE_CLOCK = "clock0", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a31 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "none", + CLK0_INPUT_CLOCK_ENABLE = "none", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_nios2_processor_rf_ram_b.mif", + INIT_FILE_LAYOUT = "port_b", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + MIXED_PORT_FEED_THROUGH_MODE = "dont_care", + OPERATION_MODE = "dual_port", + PORT_A_ADDRESS_WIDTH = 5, + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 31, + PORT_A_LAST_ADDRESS = 31, + PORT_A_LOGICAL_RAM_DEPTH = 32, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_B_ADDRESS_CLEAR = "none", + PORT_B_ADDRESS_CLOCK = "clock0", + PORT_B_ADDRESS_WIDTH = 5, + PORT_B_DATA_OUT_CLEAR = "none", + PORT_B_DATA_WIDTH = 1, + PORT_B_FIRST_ADDRESS = 0, + PORT_B_FIRST_BIT_NUMBER = 31, + PORT_B_LAST_ADDRESS = 31, + PORT_B_LOGICAL_RAM_DEPTH = 32, + PORT_B_LOGICAL_RAM_WIDTH = 32, + PORT_B_READ_ENABLE_CLOCK = "clock0", + RAM_BLOCK_TYPE = "AUTO" + ); + address_a_wire[4..0] : WIRE; + address_b_wire[4..0] : WIRE; + +BEGIN + ram_block1a[31..0].clk0 = clock0; + ram_block1a[31..0].portaaddr[] = ( address_a_wire[4..0]); + ram_block1a[0].portadatain[] = ( data_a[0..0]); + ram_block1a[1].portadatain[] = ( data_a[1..1]); + ram_block1a[2].portadatain[] = ( data_a[2..2]); + ram_block1a[3].portadatain[] = ( data_a[3..3]); + ram_block1a[4].portadatain[] = ( data_a[4..4]); + ram_block1a[5].portadatain[] = ( data_a[5..5]); + ram_block1a[6].portadatain[] = ( data_a[6..6]); + ram_block1a[7].portadatain[] = ( data_a[7..7]); + ram_block1a[8].portadatain[] = ( data_a[8..8]); + ram_block1a[9].portadatain[] = ( data_a[9..9]); + ram_block1a[10].portadatain[] = ( data_a[10..10]); + ram_block1a[11].portadatain[] = ( data_a[11..11]); + ram_block1a[12].portadatain[] = ( data_a[12..12]); + ram_block1a[13].portadatain[] = ( data_a[13..13]); + ram_block1a[14].portadatain[] = ( data_a[14..14]); + ram_block1a[15].portadatain[] = ( data_a[15..15]); + ram_block1a[16].portadatain[] = ( data_a[16..16]); + ram_block1a[17].portadatain[] = ( data_a[17..17]); + ram_block1a[18].portadatain[] = ( data_a[18..18]); + ram_block1a[19].portadatain[] = ( data_a[19..19]); + ram_block1a[20].portadatain[] = ( data_a[20..20]); + ram_block1a[21].portadatain[] = ( data_a[21..21]); + ram_block1a[22].portadatain[] = ( data_a[22..22]); + ram_block1a[23].portadatain[] = ( data_a[23..23]); + ram_block1a[24].portadatain[] = ( data_a[24..24]); + ram_block1a[25].portadatain[] = ( data_a[25..25]); + ram_block1a[26].portadatain[] = ( data_a[26..26]); + ram_block1a[27].portadatain[] = ( data_a[27..27]); + ram_block1a[28].portadatain[] = ( data_a[28..28]); + ram_block1a[29].portadatain[] = ( data_a[29..29]); + ram_block1a[30].portadatain[] = ( data_a[30..30]); + ram_block1a[31].portadatain[] = ( data_a[31..31]); + ram_block1a[31..0].portawe = wren_a; + ram_block1a[31..0].portbaddr[] = ( address_b_wire[4..0]); + ram_block1a[31..0].portbre = B"11111111111111111111111111111111"; + address_a_wire[] = address_a[]; + address_b_wire[] = address_b[]; + q_b[] = ( ram_block1a[31..0].portbdataout[0..0]); +END; +--VALID FILE diff --git a/db/altsyncram_4891.tdf b/db/altsyncram_4891.tdf new file mode 100644 index 0000000..f3f162b --- /dev/null +++ b/db/altsyncram_4891.tdf @@ -0,0 +1,819 @@ +--altsyncram CBX_DECLARE_ALL_CONNECTED_PORTS="OFF" CYCLONEII_M4K_COMPATIBILITY="ON" DEVICE_FAMILY="Cyclone IV E" INIT_FILE="nios_system_nios2_processor_ociram_default_contents.mif" LOW_POWER_MODE="AUTO" MAXIMUM_DEPTH=0 NUMWORDS_A=256 OPERATION_MODE="SINGLE_PORT" OUTDATA_REG_A="UNREGISTERED" RAM_BLOCK_TYPE="AUTO" WIDTH_A=32 WIDTH_BYTEENA_A=4 WIDTHAD_A=8 address_a byteena_a clock0 data_a q_a wren_a CARRY_CHAIN="MANUAL" CARRY_CHAIN_LENGTH=48 +--VERSION_BEGIN 13.0 cbx_altsyncram 2013:06:12:18:03:43:SJ cbx_cycloneii 2013:06:12:18:03:43:SJ cbx_lpm_add_sub 2013:06:12:18:03:43:SJ cbx_lpm_compare 2013:06:12:18:03:43:SJ cbx_lpm_decode 2013:06:12:18:03:43:SJ cbx_lpm_mux 2013:06:12:18:03:43:SJ cbx_mgl 2013:06:12:18:05:10:SJ cbx_stratix 2013:06:12:18:03:43:SJ cbx_stratixii 2013:06:12:18:03:43:SJ cbx_stratixiii 2013:06:12:18:03:43:SJ cbx_stratixv 2013:06:12:18:03:43:SJ cbx_util_mgl 2013:06:12:18:03:43:SJ VERSION_END + + +-- Copyright (C) 1991-2013 Altera Corporation +-- Your use of Altera Corporation's design tools, logic functions +-- and other software and tools, and its AMPP partner logic +-- functions, and any output files from any of the foregoing +-- (including device programming or simulation files), and any +-- associated documentation or information are expressly subject +-- to the terms and conditions of the Altera Program License +-- Subscription Agreement, Altera MegaCore Function License +-- Agreement, or other applicable license agreement, including, +-- without limitation, that your use is for the sole purpose of +-- programming logic devices manufactured by Altera and sold by +-- Altera or its authorized distributors. Please refer to the +-- applicable agreement for further details. + + +FUNCTION cycloneive_ram_block (clk0, clk1, clr0, clr1, ena0, ena1, ena2, ena3, portaaddr[PORT_A_ADDRESS_WIDTH-1..0], portaaddrstall, portabyteenamasks[PORT_A_BYTE_ENABLE_MASK_WIDTH-1..0], portadatain[PORT_A_DATA_WIDTH-1..0], portare, portawe, portbaddr[PORT_B_ADDRESS_WIDTH-1..0], portbaddrstall, portbbyteenamasks[PORT_B_BYTE_ENABLE_MASK_WIDTH-1..0], portbdatain[PORT_B_DATA_WIDTH-1..0], portbre, portbwe) +WITH ( CLK0_CORE_CLOCK_ENABLE, CLK0_INPUT_CLOCK_ENABLE, CLK0_OUTPUT_CLOCK_ENABLE, CLK1_CORE_CLOCK_ENABLE, CLK1_INPUT_CLOCK_ENABLE, CLK1_OUTPUT_CLOCK_ENABLE, CONNECTIVITY_CHECKING, DATA_INTERLEAVE_OFFSET_IN_BITS, DATA_INTERLEAVE_WIDTH_IN_BITS, DONT_POWER_OPTIMIZE, INIT_FILE, INIT_FILE_LAYOUT, init_file_restructured, LOGICAL_RAM_NAME, mem_init0, mem_init1, mem_init2, mem_init3, mem_init4, MIXED_PORT_FEED_THROUGH_MODE, OPERATION_MODE, PORT_A_ADDRESS_CLEAR, PORT_A_ADDRESS_WIDTH = 1, PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, PORT_A_BYTE_SIZE, PORT_A_DATA_OUT_CLEAR, PORT_A_DATA_OUT_CLOCK, PORT_A_DATA_WIDTH = 1, PORT_A_FIRST_ADDRESS, PORT_A_FIRST_BIT_NUMBER, PORT_A_LAST_ADDRESS, PORT_A_LOGICAL_RAM_DEPTH, PORT_A_LOGICAL_RAM_WIDTH, PORT_A_READ_DURING_WRITE_MODE, PORT_B_ADDRESS_CLEAR, PORT_B_ADDRESS_CLOCK, PORT_B_ADDRESS_WIDTH = 1, PORT_B_BYTE_ENABLE_CLOCK, PORT_B_BYTE_ENABLE_MASK_WIDTH = 1, PORT_B_BYTE_SIZE, PORT_B_DATA_IN_CLOCK, PORT_B_DATA_OUT_CLEAR, PORT_B_DATA_OUT_CLOCK, PORT_B_DATA_WIDTH = 1, PORT_B_FIRST_ADDRESS, PORT_B_FIRST_BIT_NUMBER, PORT_B_LAST_ADDRESS, PORT_B_LOGICAL_RAM_DEPTH, PORT_B_LOGICAL_RAM_WIDTH, PORT_B_READ_DURING_WRITE_MODE, PORT_B_READ_ENABLE_CLOCK, PORT_B_WRITE_ENABLE_CLOCK, POWER_UP_UNINITIALIZED, RAM_BLOCK_TYPE, SAFE_WRITE, WIDTH_ECCSTATUS) +RETURNS ( portadataout[PORT_A_DATA_WIDTH-1..0], portbdataout[PORT_B_DATA_WIDTH-1..0]); + +--synthesis_resources = M9K 1 +OPTIONS ALTERA_INTERNAL_OPTION = "OPTIMIZE_POWER_DURING_SYNTHESIS=NORMAL_COMPILATION"; + +SUBDESIGN altsyncram_4891 +( + address_a[7..0] : input; + byteena_a[3..0] : input; + clock0 : input; + data_a[31..0] : input; + q_a[31..0] : output; + wren_a : input; +) +VARIABLE + ram_block1a0 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "none", + CLK0_INPUT_CLOCK_ENABLE = "none", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_nios2_processor_ociram_default_contents.mif", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 8, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 0, + PORT_A_LAST_ADDRESS = 255, + PORT_A_LOGICAL_RAM_DEPTH = 256, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a1 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "none", + CLK0_INPUT_CLOCK_ENABLE = "none", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_nios2_processor_ociram_default_contents.mif", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 8, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 1, + PORT_A_LAST_ADDRESS = 255, + PORT_A_LOGICAL_RAM_DEPTH = 256, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a2 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "none", + CLK0_INPUT_CLOCK_ENABLE = "none", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_nios2_processor_ociram_default_contents.mif", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 8, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 2, + PORT_A_LAST_ADDRESS = 255, + PORT_A_LOGICAL_RAM_DEPTH = 256, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a3 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "none", + CLK0_INPUT_CLOCK_ENABLE = "none", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_nios2_processor_ociram_default_contents.mif", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 8, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 3, + PORT_A_LAST_ADDRESS = 255, + PORT_A_LOGICAL_RAM_DEPTH = 256, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a4 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "none", + CLK0_INPUT_CLOCK_ENABLE = "none", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_nios2_processor_ociram_default_contents.mif", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 8, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 4, + PORT_A_LAST_ADDRESS = 255, + PORT_A_LOGICAL_RAM_DEPTH = 256, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a5 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "none", + CLK0_INPUT_CLOCK_ENABLE = "none", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_nios2_processor_ociram_default_contents.mif", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 8, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 5, + PORT_A_LAST_ADDRESS = 255, + PORT_A_LOGICAL_RAM_DEPTH = 256, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a6 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "none", + CLK0_INPUT_CLOCK_ENABLE = "none", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_nios2_processor_ociram_default_contents.mif", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 8, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 6, + PORT_A_LAST_ADDRESS = 255, + PORT_A_LOGICAL_RAM_DEPTH = 256, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a7 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "none", + CLK0_INPUT_CLOCK_ENABLE = "none", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_nios2_processor_ociram_default_contents.mif", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 8, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 7, + PORT_A_LAST_ADDRESS = 255, + PORT_A_LOGICAL_RAM_DEPTH = 256, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a8 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "none", + CLK0_INPUT_CLOCK_ENABLE = "none", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_nios2_processor_ociram_default_contents.mif", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 8, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 8, + PORT_A_LAST_ADDRESS = 255, + PORT_A_LOGICAL_RAM_DEPTH = 256, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a9 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "none", + CLK0_INPUT_CLOCK_ENABLE = "none", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_nios2_processor_ociram_default_contents.mif", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 8, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 9, + PORT_A_LAST_ADDRESS = 255, + PORT_A_LOGICAL_RAM_DEPTH = 256, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a10 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "none", + CLK0_INPUT_CLOCK_ENABLE = "none", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_nios2_processor_ociram_default_contents.mif", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 8, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 10, + PORT_A_LAST_ADDRESS = 255, + PORT_A_LOGICAL_RAM_DEPTH = 256, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a11 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "none", + CLK0_INPUT_CLOCK_ENABLE = "none", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_nios2_processor_ociram_default_contents.mif", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 8, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 11, + PORT_A_LAST_ADDRESS = 255, + PORT_A_LOGICAL_RAM_DEPTH = 256, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a12 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "none", + CLK0_INPUT_CLOCK_ENABLE = "none", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_nios2_processor_ociram_default_contents.mif", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 8, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 12, + PORT_A_LAST_ADDRESS = 255, + PORT_A_LOGICAL_RAM_DEPTH = 256, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a13 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "none", + CLK0_INPUT_CLOCK_ENABLE = "none", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_nios2_processor_ociram_default_contents.mif", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 8, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 13, + PORT_A_LAST_ADDRESS = 255, + PORT_A_LOGICAL_RAM_DEPTH = 256, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a14 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "none", + CLK0_INPUT_CLOCK_ENABLE = "none", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_nios2_processor_ociram_default_contents.mif", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 8, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 14, + PORT_A_LAST_ADDRESS = 255, + PORT_A_LOGICAL_RAM_DEPTH = 256, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a15 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "none", + CLK0_INPUT_CLOCK_ENABLE = "none", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_nios2_processor_ociram_default_contents.mif", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 8, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 15, + PORT_A_LAST_ADDRESS = 255, + PORT_A_LOGICAL_RAM_DEPTH = 256, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a16 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "none", + CLK0_INPUT_CLOCK_ENABLE = "none", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_nios2_processor_ociram_default_contents.mif", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 8, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 16, + PORT_A_LAST_ADDRESS = 255, + PORT_A_LOGICAL_RAM_DEPTH = 256, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a17 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "none", + CLK0_INPUT_CLOCK_ENABLE = "none", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_nios2_processor_ociram_default_contents.mif", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 8, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 17, + PORT_A_LAST_ADDRESS = 255, + PORT_A_LOGICAL_RAM_DEPTH = 256, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a18 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "none", + CLK0_INPUT_CLOCK_ENABLE = "none", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_nios2_processor_ociram_default_contents.mif", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 8, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 18, + PORT_A_LAST_ADDRESS = 255, + PORT_A_LOGICAL_RAM_DEPTH = 256, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a19 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "none", + CLK0_INPUT_CLOCK_ENABLE = "none", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_nios2_processor_ociram_default_contents.mif", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 8, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 19, + PORT_A_LAST_ADDRESS = 255, + PORT_A_LOGICAL_RAM_DEPTH = 256, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a20 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "none", + CLK0_INPUT_CLOCK_ENABLE = "none", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_nios2_processor_ociram_default_contents.mif", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 8, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 20, + PORT_A_LAST_ADDRESS = 255, + PORT_A_LOGICAL_RAM_DEPTH = 256, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a21 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "none", + CLK0_INPUT_CLOCK_ENABLE = "none", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_nios2_processor_ociram_default_contents.mif", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 8, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 21, + PORT_A_LAST_ADDRESS = 255, + PORT_A_LOGICAL_RAM_DEPTH = 256, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a22 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "none", + CLK0_INPUT_CLOCK_ENABLE = "none", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_nios2_processor_ociram_default_contents.mif", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 8, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 22, + PORT_A_LAST_ADDRESS = 255, + PORT_A_LOGICAL_RAM_DEPTH = 256, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a23 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "none", + CLK0_INPUT_CLOCK_ENABLE = "none", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_nios2_processor_ociram_default_contents.mif", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 8, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 23, + PORT_A_LAST_ADDRESS = 255, + PORT_A_LOGICAL_RAM_DEPTH = 256, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a24 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "none", + CLK0_INPUT_CLOCK_ENABLE = "none", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_nios2_processor_ociram_default_contents.mif", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 8, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 24, + PORT_A_LAST_ADDRESS = 255, + PORT_A_LOGICAL_RAM_DEPTH = 256, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a25 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "none", + CLK0_INPUT_CLOCK_ENABLE = "none", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_nios2_processor_ociram_default_contents.mif", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 8, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 25, + PORT_A_LAST_ADDRESS = 255, + PORT_A_LOGICAL_RAM_DEPTH = 256, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a26 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "none", + CLK0_INPUT_CLOCK_ENABLE = "none", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_nios2_processor_ociram_default_contents.mif", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 8, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 26, + PORT_A_LAST_ADDRESS = 255, + PORT_A_LOGICAL_RAM_DEPTH = 256, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a27 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "none", + CLK0_INPUT_CLOCK_ENABLE = "none", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_nios2_processor_ociram_default_contents.mif", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 8, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 27, + PORT_A_LAST_ADDRESS = 255, + PORT_A_LOGICAL_RAM_DEPTH = 256, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a28 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "none", + CLK0_INPUT_CLOCK_ENABLE = "none", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_nios2_processor_ociram_default_contents.mif", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 8, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 28, + PORT_A_LAST_ADDRESS = 255, + PORT_A_LOGICAL_RAM_DEPTH = 256, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a29 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "none", + CLK0_INPUT_CLOCK_ENABLE = "none", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_nios2_processor_ociram_default_contents.mif", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 8, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 29, + PORT_A_LAST_ADDRESS = 255, + PORT_A_LOGICAL_RAM_DEPTH = 256, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a30 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "none", + CLK0_INPUT_CLOCK_ENABLE = "none", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_nios2_processor_ociram_default_contents.mif", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 8, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 30, + PORT_A_LAST_ADDRESS = 255, + PORT_A_LOGICAL_RAM_DEPTH = 256, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a31 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "none", + CLK0_INPUT_CLOCK_ENABLE = "none", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_nios2_processor_ociram_default_contents.mif", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 8, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 31, + PORT_A_LAST_ADDRESS = 255, + PORT_A_LOGICAL_RAM_DEPTH = 256, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + address_a_wire[7..0] : WIRE; + +BEGIN + ram_block1a[31..0].clk0 = clock0; + ram_block1a[31..0].portaaddr[] = ( address_a_wire[7..0]); + ram_block1a[7..0].portabyteenamasks[] = ( byteena_a[0..0]); + ram_block1a[15..8].portabyteenamasks[] = ( byteena_a[1..1]); + ram_block1a[23..16].portabyteenamasks[] = ( byteena_a[2..2]); + ram_block1a[31..24].portabyteenamasks[] = ( byteena_a[3..3]); + ram_block1a[0].portadatain[] = ( data_a[0..0]); + ram_block1a[1].portadatain[] = ( data_a[1..1]); + ram_block1a[2].portadatain[] = ( data_a[2..2]); + ram_block1a[3].portadatain[] = ( data_a[3..3]); + ram_block1a[4].portadatain[] = ( data_a[4..4]); + ram_block1a[5].portadatain[] = ( data_a[5..5]); + ram_block1a[6].portadatain[] = ( data_a[6..6]); + ram_block1a[7].portadatain[] = ( data_a[7..7]); + ram_block1a[8].portadatain[] = ( data_a[8..8]); + ram_block1a[9].portadatain[] = ( data_a[9..9]); + ram_block1a[10].portadatain[] = ( data_a[10..10]); + ram_block1a[11].portadatain[] = ( data_a[11..11]); + ram_block1a[12].portadatain[] = ( data_a[12..12]); + ram_block1a[13].portadatain[] = ( data_a[13..13]); + ram_block1a[14].portadatain[] = ( data_a[14..14]); + ram_block1a[15].portadatain[] = ( data_a[15..15]); + ram_block1a[16].portadatain[] = ( data_a[16..16]); + ram_block1a[17].portadatain[] = ( data_a[17..17]); + ram_block1a[18].portadatain[] = ( data_a[18..18]); + ram_block1a[19].portadatain[] = ( data_a[19..19]); + ram_block1a[20].portadatain[] = ( data_a[20..20]); + ram_block1a[21].portadatain[] = ( data_a[21..21]); + ram_block1a[22].portadatain[] = ( data_a[22..22]); + ram_block1a[23].portadatain[] = ( data_a[23..23]); + ram_block1a[24].portadatain[] = ( data_a[24..24]); + ram_block1a[25].portadatain[] = ( data_a[25..25]); + ram_block1a[26].portadatain[] = ( data_a[26..26]); + ram_block1a[27].portadatain[] = ( data_a[27..27]); + ram_block1a[28].portadatain[] = ( data_a[28..28]); + ram_block1a[29].portadatain[] = ( data_a[29..29]); + ram_block1a[30].portadatain[] = ( data_a[30..30]); + ram_block1a[31].portadatain[] = ( data_a[31..31]); + ram_block1a[31..0].portare = B"11111111111111111111111111111111"; + ram_block1a[31..0].portawe = wren_a; + address_a_wire[] = address_a[]; + q_a[] = ( ram_block1a[31..0].portadataout[0..0]); +END; +--VALID FILE diff --git a/db/altsyncram_4ed1.tdf b/db/altsyncram_4ed1.tdf new file mode 100644 index 0000000..cc1ada5 --- /dev/null +++ b/db/altsyncram_4ed1.tdf @@ -0,0 +1,5470 @@ +--altsyncram BYTE_SIZE=8 CBX_DECLARE_ALL_CONNECTED_PORTS="OFF" CYCLONEII_M4K_COMPATIBILITY="ON" DEVICE_FAMILY="Cyclone IV E" INIT_FILE="nios_system_onchip_memory.hex" LOW_POWER_MODE="AUTO" MAXIMUM_DEPTH=51200 NUMWORDS_A=51200 OPERATION_MODE="SINGLE_PORT" OUTDATA_REG_A="UNREGISTERED" RAM_BLOCK_TYPE="AUTO" READ_DURING_WRITE_MODE_MIXED_PORTS="DONT_CARE" WIDTH_A=32 WIDTH_BYTEENA_A=4 WIDTHAD_A=16 address_a byteena_a clock0 clocken0 data_a q_a wren_a CARRY_CHAIN="MANUAL" CARRY_CHAIN_LENGTH=48 +--VERSION_BEGIN 13.0 cbx_altsyncram 2013:06:12:18:03:43:SJ cbx_cycloneii 2013:06:12:18:03:43:SJ cbx_lpm_add_sub 2013:06:12:18:03:43:SJ cbx_lpm_compare 2013:06:12:18:03:43:SJ cbx_lpm_decode 2013:06:12:18:03:43:SJ cbx_lpm_mux 2013:06:12:18:03:43:SJ cbx_mgl 2013:06:12:18:05:10:SJ cbx_stratix 2013:06:12:18:03:43:SJ cbx_stratixii 2013:06:12:18:03:43:SJ cbx_stratixiii 2013:06:12:18:03:43:SJ cbx_stratixv 2013:06:12:18:03:43:SJ cbx_util_mgl 2013:06:12:18:03:43:SJ VERSION_END + + +-- Copyright (C) 1991-2013 Altera Corporation +-- Your use of Altera Corporation's design tools, logic functions +-- and other software and tools, and its AMPP partner logic +-- functions, and any output files from any of the foregoing +-- (including device programming or simulation files), and any +-- associated documentation or information are expressly subject +-- to the terms and conditions of the Altera Program License +-- Subscription Agreement, Altera MegaCore Function License +-- Agreement, or other applicable license agreement, including, +-- without limitation, that your use is for the sole purpose of +-- programming logic devices manufactured by Altera and sold by +-- Altera or its authorized distributors. Please refer to the +-- applicable agreement for further details. + + +FUNCTION decode_qsa (data[2..0], enable) +RETURNS ( eq[6..0]); +FUNCTION mux_nob (data[223..0], sel[2..0]) +RETURNS ( result[31..0]); +FUNCTION cycloneive_ram_block (clk0, clk1, clr0, clr1, ena0, ena1, ena2, ena3, portaaddr[PORT_A_ADDRESS_WIDTH-1..0], portaaddrstall, portabyteenamasks[PORT_A_BYTE_ENABLE_MASK_WIDTH-1..0], portadatain[PORT_A_DATA_WIDTH-1..0], portare, portawe, portbaddr[PORT_B_ADDRESS_WIDTH-1..0], portbaddrstall, portbbyteenamasks[PORT_B_BYTE_ENABLE_MASK_WIDTH-1..0], portbdatain[PORT_B_DATA_WIDTH-1..0], portbre, portbwe) +WITH ( CLK0_CORE_CLOCK_ENABLE, CLK0_INPUT_CLOCK_ENABLE, CLK0_OUTPUT_CLOCK_ENABLE, CLK1_CORE_CLOCK_ENABLE, CLK1_INPUT_CLOCK_ENABLE, CLK1_OUTPUT_CLOCK_ENABLE, CONNECTIVITY_CHECKING, DATA_INTERLEAVE_OFFSET_IN_BITS, DATA_INTERLEAVE_WIDTH_IN_BITS, DONT_POWER_OPTIMIZE, INIT_FILE, INIT_FILE_LAYOUT, init_file_restructured, LOGICAL_RAM_NAME, mem_init0, mem_init1, mem_init2, mem_init3, mem_init4, MIXED_PORT_FEED_THROUGH_MODE, OPERATION_MODE, PORT_A_ADDRESS_CLEAR, PORT_A_ADDRESS_WIDTH = 1, PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, PORT_A_BYTE_SIZE, PORT_A_DATA_OUT_CLEAR, PORT_A_DATA_OUT_CLOCK, PORT_A_DATA_WIDTH = 1, PORT_A_FIRST_ADDRESS, PORT_A_FIRST_BIT_NUMBER, PORT_A_LAST_ADDRESS, PORT_A_LOGICAL_RAM_DEPTH, PORT_A_LOGICAL_RAM_WIDTH, PORT_A_READ_DURING_WRITE_MODE, PORT_B_ADDRESS_CLEAR, PORT_B_ADDRESS_CLOCK, PORT_B_ADDRESS_WIDTH = 1, PORT_B_BYTE_ENABLE_CLOCK, PORT_B_BYTE_ENABLE_MASK_WIDTH = 1, PORT_B_BYTE_SIZE, PORT_B_DATA_IN_CLOCK, PORT_B_DATA_OUT_CLEAR, PORT_B_DATA_OUT_CLOCK, PORT_B_DATA_WIDTH = 1, PORT_B_FIRST_ADDRESS, PORT_B_FIRST_BIT_NUMBER, PORT_B_LAST_ADDRESS, PORT_B_LOGICAL_RAM_DEPTH, PORT_B_LOGICAL_RAM_WIDTH, PORT_B_READ_DURING_WRITE_MODE, PORT_B_READ_ENABLE_CLOCK, PORT_B_WRITE_ENABLE_CLOCK, POWER_UP_UNINITIALIZED, RAM_BLOCK_TYPE, SAFE_WRITE, WIDTH_ECCSTATUS) +RETURNS ( portadataout[PORT_A_DATA_WIDTH-1..0], portbdataout[PORT_B_DATA_WIDTH-1..0]); + +--synthesis_resources = lut 168 M9K 200 reg 3 +OPTIONS ALTERA_INTERNAL_OPTION = "OPTIMIZE_POWER_DURING_SYNTHESIS=NORMAL_COMPILATION"; + +SUBDESIGN altsyncram_4ed1 +( + address_a[15..0] : input; + byteena_a[3..0] : input; + clock0 : input; + clocken0 : input; + data_a[31..0] : input; + q_a[31..0] : output; + wren_a : input; +) +VARIABLE + address_reg_a[2..0] : dffe; + decode3 : decode_qsa; + mux2 : mux_nob; + ram_block1a0 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 0, + PORT_A_LAST_ADDRESS = 8191, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a1 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 1, + PORT_A_LAST_ADDRESS = 8191, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a2 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 2, + PORT_A_LAST_ADDRESS = 8191, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a3 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 3, + PORT_A_LAST_ADDRESS = 8191, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a4 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 4, + PORT_A_LAST_ADDRESS = 8191, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a5 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 5, + PORT_A_LAST_ADDRESS = 8191, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a6 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 6, + PORT_A_LAST_ADDRESS = 8191, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a7 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 7, + PORT_A_LAST_ADDRESS = 8191, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a8 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 8, + PORT_A_LAST_ADDRESS = 8191, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a9 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 9, + PORT_A_LAST_ADDRESS = 8191, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a10 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 10, + PORT_A_LAST_ADDRESS = 8191, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a11 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 11, + PORT_A_LAST_ADDRESS = 8191, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a12 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 12, + PORT_A_LAST_ADDRESS = 8191, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a13 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 13, + PORT_A_LAST_ADDRESS = 8191, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a14 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 14, + PORT_A_LAST_ADDRESS = 8191, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a15 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 15, + PORT_A_LAST_ADDRESS = 8191, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a16 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 16, + PORT_A_LAST_ADDRESS = 8191, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a17 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 17, + PORT_A_LAST_ADDRESS = 8191, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a18 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 18, + PORT_A_LAST_ADDRESS = 8191, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a19 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 19, + PORT_A_LAST_ADDRESS = 8191, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a20 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 20, + PORT_A_LAST_ADDRESS = 8191, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a21 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 21, + PORT_A_LAST_ADDRESS = 8191, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a22 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 22, + PORT_A_LAST_ADDRESS = 8191, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a23 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 23, + PORT_A_LAST_ADDRESS = 8191, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a24 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 24, + PORT_A_LAST_ADDRESS = 8191, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a25 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 25, + PORT_A_LAST_ADDRESS = 8191, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a26 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 26, + PORT_A_LAST_ADDRESS = 8191, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a27 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 27, + PORT_A_LAST_ADDRESS = 8191, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a28 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 28, + PORT_A_LAST_ADDRESS = 8191, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a29 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 29, + PORT_A_LAST_ADDRESS = 8191, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a30 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 30, + PORT_A_LAST_ADDRESS = 8191, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a31 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 31, + PORT_A_LAST_ADDRESS = 8191, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a32 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 8192, + PORT_A_FIRST_BIT_NUMBER = 0, + PORT_A_LAST_ADDRESS = 16383, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a33 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 8192, + PORT_A_FIRST_BIT_NUMBER = 1, + PORT_A_LAST_ADDRESS = 16383, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a34 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 8192, + PORT_A_FIRST_BIT_NUMBER = 2, + PORT_A_LAST_ADDRESS = 16383, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a35 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 8192, + PORT_A_FIRST_BIT_NUMBER = 3, + PORT_A_LAST_ADDRESS = 16383, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a36 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 8192, + PORT_A_FIRST_BIT_NUMBER = 4, + PORT_A_LAST_ADDRESS = 16383, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a37 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 8192, + PORT_A_FIRST_BIT_NUMBER = 5, + PORT_A_LAST_ADDRESS = 16383, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a38 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 8192, + PORT_A_FIRST_BIT_NUMBER = 6, + PORT_A_LAST_ADDRESS = 16383, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a39 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 8192, + PORT_A_FIRST_BIT_NUMBER = 7, + PORT_A_LAST_ADDRESS = 16383, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a40 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 8192, + PORT_A_FIRST_BIT_NUMBER = 8, + PORT_A_LAST_ADDRESS = 16383, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a41 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 8192, + PORT_A_FIRST_BIT_NUMBER = 9, + PORT_A_LAST_ADDRESS = 16383, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a42 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 8192, + PORT_A_FIRST_BIT_NUMBER = 10, + PORT_A_LAST_ADDRESS = 16383, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a43 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 8192, + PORT_A_FIRST_BIT_NUMBER = 11, + PORT_A_LAST_ADDRESS = 16383, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a44 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 8192, + PORT_A_FIRST_BIT_NUMBER = 12, + PORT_A_LAST_ADDRESS = 16383, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a45 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 8192, + PORT_A_FIRST_BIT_NUMBER = 13, + PORT_A_LAST_ADDRESS = 16383, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a46 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 8192, + PORT_A_FIRST_BIT_NUMBER = 14, + PORT_A_LAST_ADDRESS = 16383, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a47 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 8192, + PORT_A_FIRST_BIT_NUMBER = 15, + PORT_A_LAST_ADDRESS = 16383, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a48 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 8192, + PORT_A_FIRST_BIT_NUMBER = 16, + PORT_A_LAST_ADDRESS = 16383, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a49 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 8192, + PORT_A_FIRST_BIT_NUMBER = 17, + PORT_A_LAST_ADDRESS = 16383, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a50 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 8192, + PORT_A_FIRST_BIT_NUMBER = 18, + PORT_A_LAST_ADDRESS = 16383, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a51 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 8192, + PORT_A_FIRST_BIT_NUMBER = 19, + PORT_A_LAST_ADDRESS = 16383, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a52 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 8192, + PORT_A_FIRST_BIT_NUMBER = 20, + PORT_A_LAST_ADDRESS = 16383, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a53 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 8192, + PORT_A_FIRST_BIT_NUMBER = 21, + PORT_A_LAST_ADDRESS = 16383, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a54 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 8192, + PORT_A_FIRST_BIT_NUMBER = 22, + PORT_A_LAST_ADDRESS = 16383, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a55 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 8192, + PORT_A_FIRST_BIT_NUMBER = 23, + PORT_A_LAST_ADDRESS = 16383, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a56 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 8192, + PORT_A_FIRST_BIT_NUMBER = 24, + PORT_A_LAST_ADDRESS = 16383, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a57 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 8192, + PORT_A_FIRST_BIT_NUMBER = 25, + PORT_A_LAST_ADDRESS = 16383, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a58 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 8192, + PORT_A_FIRST_BIT_NUMBER = 26, + PORT_A_LAST_ADDRESS = 16383, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a59 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 8192, + PORT_A_FIRST_BIT_NUMBER = 27, + PORT_A_LAST_ADDRESS = 16383, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a60 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 8192, + PORT_A_FIRST_BIT_NUMBER = 28, + PORT_A_LAST_ADDRESS = 16383, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a61 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 8192, + PORT_A_FIRST_BIT_NUMBER = 29, + PORT_A_LAST_ADDRESS = 16383, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a62 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 8192, + PORT_A_FIRST_BIT_NUMBER = 30, + PORT_A_LAST_ADDRESS = 16383, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a63 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 8192, + PORT_A_FIRST_BIT_NUMBER = 31, + PORT_A_LAST_ADDRESS = 16383, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a64 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 16384, + PORT_A_FIRST_BIT_NUMBER = 0, + PORT_A_LAST_ADDRESS = 24575, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a65 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 16384, + PORT_A_FIRST_BIT_NUMBER = 1, + PORT_A_LAST_ADDRESS = 24575, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a66 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 16384, + PORT_A_FIRST_BIT_NUMBER = 2, + PORT_A_LAST_ADDRESS = 24575, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a67 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 16384, + PORT_A_FIRST_BIT_NUMBER = 3, + PORT_A_LAST_ADDRESS = 24575, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a68 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 16384, + PORT_A_FIRST_BIT_NUMBER = 4, + PORT_A_LAST_ADDRESS = 24575, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a69 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 16384, + PORT_A_FIRST_BIT_NUMBER = 5, + PORT_A_LAST_ADDRESS = 24575, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a70 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 16384, + PORT_A_FIRST_BIT_NUMBER = 6, + PORT_A_LAST_ADDRESS = 24575, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a71 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 16384, + PORT_A_FIRST_BIT_NUMBER = 7, + PORT_A_LAST_ADDRESS = 24575, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a72 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 16384, + PORT_A_FIRST_BIT_NUMBER = 8, + PORT_A_LAST_ADDRESS = 24575, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a73 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 16384, + PORT_A_FIRST_BIT_NUMBER = 9, + PORT_A_LAST_ADDRESS = 24575, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a74 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 16384, + PORT_A_FIRST_BIT_NUMBER = 10, + PORT_A_LAST_ADDRESS = 24575, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a75 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 16384, + PORT_A_FIRST_BIT_NUMBER = 11, + PORT_A_LAST_ADDRESS = 24575, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a76 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 16384, + PORT_A_FIRST_BIT_NUMBER = 12, + PORT_A_LAST_ADDRESS = 24575, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a77 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 16384, + PORT_A_FIRST_BIT_NUMBER = 13, + PORT_A_LAST_ADDRESS = 24575, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a78 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 16384, + PORT_A_FIRST_BIT_NUMBER = 14, + PORT_A_LAST_ADDRESS = 24575, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a79 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 16384, + PORT_A_FIRST_BIT_NUMBER = 15, + PORT_A_LAST_ADDRESS = 24575, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a80 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 16384, + PORT_A_FIRST_BIT_NUMBER = 16, + PORT_A_LAST_ADDRESS = 24575, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a81 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 16384, + PORT_A_FIRST_BIT_NUMBER = 17, + PORT_A_LAST_ADDRESS = 24575, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a82 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 16384, + PORT_A_FIRST_BIT_NUMBER = 18, + PORT_A_LAST_ADDRESS = 24575, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a83 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 16384, + PORT_A_FIRST_BIT_NUMBER = 19, + PORT_A_LAST_ADDRESS = 24575, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a84 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 16384, + PORT_A_FIRST_BIT_NUMBER = 20, + PORT_A_LAST_ADDRESS = 24575, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a85 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 16384, + PORT_A_FIRST_BIT_NUMBER = 21, + PORT_A_LAST_ADDRESS = 24575, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a86 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 16384, + PORT_A_FIRST_BIT_NUMBER = 22, + PORT_A_LAST_ADDRESS = 24575, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a87 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 16384, + PORT_A_FIRST_BIT_NUMBER = 23, + PORT_A_LAST_ADDRESS = 24575, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a88 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 16384, + PORT_A_FIRST_BIT_NUMBER = 24, + PORT_A_LAST_ADDRESS = 24575, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a89 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 16384, + PORT_A_FIRST_BIT_NUMBER = 25, + PORT_A_LAST_ADDRESS = 24575, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a90 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 16384, + PORT_A_FIRST_BIT_NUMBER = 26, + PORT_A_LAST_ADDRESS = 24575, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a91 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 16384, + PORT_A_FIRST_BIT_NUMBER = 27, + PORT_A_LAST_ADDRESS = 24575, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a92 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 16384, + PORT_A_FIRST_BIT_NUMBER = 28, + PORT_A_LAST_ADDRESS = 24575, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a93 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 16384, + PORT_A_FIRST_BIT_NUMBER = 29, + PORT_A_LAST_ADDRESS = 24575, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a94 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 16384, + PORT_A_FIRST_BIT_NUMBER = 30, + PORT_A_LAST_ADDRESS = 24575, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a95 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 16384, + PORT_A_FIRST_BIT_NUMBER = 31, + PORT_A_LAST_ADDRESS = 24575, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a96 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 24576, + PORT_A_FIRST_BIT_NUMBER = 0, + PORT_A_LAST_ADDRESS = 32767, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a97 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 24576, + PORT_A_FIRST_BIT_NUMBER = 1, + PORT_A_LAST_ADDRESS = 32767, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a98 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 24576, + PORT_A_FIRST_BIT_NUMBER = 2, + PORT_A_LAST_ADDRESS = 32767, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a99 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 24576, + PORT_A_FIRST_BIT_NUMBER = 3, + PORT_A_LAST_ADDRESS = 32767, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a100 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 24576, + PORT_A_FIRST_BIT_NUMBER = 4, + PORT_A_LAST_ADDRESS = 32767, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a101 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 24576, + PORT_A_FIRST_BIT_NUMBER = 5, + PORT_A_LAST_ADDRESS = 32767, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a102 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 24576, + PORT_A_FIRST_BIT_NUMBER = 6, + PORT_A_LAST_ADDRESS = 32767, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a103 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 24576, + PORT_A_FIRST_BIT_NUMBER = 7, + PORT_A_LAST_ADDRESS = 32767, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a104 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 24576, + PORT_A_FIRST_BIT_NUMBER = 8, + PORT_A_LAST_ADDRESS = 32767, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a105 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 24576, + PORT_A_FIRST_BIT_NUMBER = 9, + PORT_A_LAST_ADDRESS = 32767, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a106 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 24576, + PORT_A_FIRST_BIT_NUMBER = 10, + PORT_A_LAST_ADDRESS = 32767, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a107 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 24576, + PORT_A_FIRST_BIT_NUMBER = 11, + PORT_A_LAST_ADDRESS = 32767, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a108 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 24576, + PORT_A_FIRST_BIT_NUMBER = 12, + PORT_A_LAST_ADDRESS = 32767, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a109 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 24576, + PORT_A_FIRST_BIT_NUMBER = 13, + PORT_A_LAST_ADDRESS = 32767, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a110 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 24576, + PORT_A_FIRST_BIT_NUMBER = 14, + PORT_A_LAST_ADDRESS = 32767, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a111 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 24576, + PORT_A_FIRST_BIT_NUMBER = 15, + PORT_A_LAST_ADDRESS = 32767, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a112 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 24576, + PORT_A_FIRST_BIT_NUMBER = 16, + PORT_A_LAST_ADDRESS = 32767, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a113 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 24576, + PORT_A_FIRST_BIT_NUMBER = 17, + PORT_A_LAST_ADDRESS = 32767, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a114 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 24576, + PORT_A_FIRST_BIT_NUMBER = 18, + PORT_A_LAST_ADDRESS = 32767, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a115 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 24576, + PORT_A_FIRST_BIT_NUMBER = 19, + PORT_A_LAST_ADDRESS = 32767, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a116 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 24576, + PORT_A_FIRST_BIT_NUMBER = 20, + PORT_A_LAST_ADDRESS = 32767, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a117 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 24576, + PORT_A_FIRST_BIT_NUMBER = 21, + PORT_A_LAST_ADDRESS = 32767, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a118 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 24576, + PORT_A_FIRST_BIT_NUMBER = 22, + PORT_A_LAST_ADDRESS = 32767, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a119 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 24576, + PORT_A_FIRST_BIT_NUMBER = 23, + PORT_A_LAST_ADDRESS = 32767, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a120 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 24576, + PORT_A_FIRST_BIT_NUMBER = 24, + PORT_A_LAST_ADDRESS = 32767, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a121 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 24576, + PORT_A_FIRST_BIT_NUMBER = 25, + PORT_A_LAST_ADDRESS = 32767, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a122 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 24576, + PORT_A_FIRST_BIT_NUMBER = 26, + PORT_A_LAST_ADDRESS = 32767, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a123 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 24576, + PORT_A_FIRST_BIT_NUMBER = 27, + PORT_A_LAST_ADDRESS = 32767, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a124 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 24576, + PORT_A_FIRST_BIT_NUMBER = 28, + PORT_A_LAST_ADDRESS = 32767, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a125 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 24576, + PORT_A_FIRST_BIT_NUMBER = 29, + PORT_A_LAST_ADDRESS = 32767, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a126 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 24576, + PORT_A_FIRST_BIT_NUMBER = 30, + PORT_A_LAST_ADDRESS = 32767, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a127 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 24576, + PORT_A_FIRST_BIT_NUMBER = 31, + PORT_A_LAST_ADDRESS = 32767, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a128 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 32768, + PORT_A_FIRST_BIT_NUMBER = 0, + PORT_A_LAST_ADDRESS = 40959, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a129 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 32768, + PORT_A_FIRST_BIT_NUMBER = 1, + PORT_A_LAST_ADDRESS = 40959, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a130 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 32768, + PORT_A_FIRST_BIT_NUMBER = 2, + PORT_A_LAST_ADDRESS = 40959, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a131 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 32768, + PORT_A_FIRST_BIT_NUMBER = 3, + PORT_A_LAST_ADDRESS = 40959, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a132 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 32768, + PORT_A_FIRST_BIT_NUMBER = 4, + PORT_A_LAST_ADDRESS = 40959, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a133 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 32768, + PORT_A_FIRST_BIT_NUMBER = 5, + PORT_A_LAST_ADDRESS = 40959, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a134 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 32768, + PORT_A_FIRST_BIT_NUMBER = 6, + PORT_A_LAST_ADDRESS = 40959, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a135 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 32768, + PORT_A_FIRST_BIT_NUMBER = 7, + PORT_A_LAST_ADDRESS = 40959, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a136 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 32768, + PORT_A_FIRST_BIT_NUMBER = 8, + PORT_A_LAST_ADDRESS = 40959, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a137 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 32768, + PORT_A_FIRST_BIT_NUMBER = 9, + PORT_A_LAST_ADDRESS = 40959, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a138 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 32768, + PORT_A_FIRST_BIT_NUMBER = 10, + PORT_A_LAST_ADDRESS = 40959, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a139 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 32768, + PORT_A_FIRST_BIT_NUMBER = 11, + PORT_A_LAST_ADDRESS = 40959, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a140 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 32768, + PORT_A_FIRST_BIT_NUMBER = 12, + PORT_A_LAST_ADDRESS = 40959, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a141 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 32768, + PORT_A_FIRST_BIT_NUMBER = 13, + PORT_A_LAST_ADDRESS = 40959, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a142 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 32768, + PORT_A_FIRST_BIT_NUMBER = 14, + PORT_A_LAST_ADDRESS = 40959, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a143 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 32768, + PORT_A_FIRST_BIT_NUMBER = 15, + PORT_A_LAST_ADDRESS = 40959, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a144 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 32768, + PORT_A_FIRST_BIT_NUMBER = 16, + PORT_A_LAST_ADDRESS = 40959, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a145 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 32768, + PORT_A_FIRST_BIT_NUMBER = 17, + PORT_A_LAST_ADDRESS = 40959, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a146 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 32768, + PORT_A_FIRST_BIT_NUMBER = 18, + PORT_A_LAST_ADDRESS = 40959, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a147 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 32768, + PORT_A_FIRST_BIT_NUMBER = 19, + PORT_A_LAST_ADDRESS = 40959, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a148 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 32768, + PORT_A_FIRST_BIT_NUMBER = 20, + PORT_A_LAST_ADDRESS = 40959, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a149 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 32768, + PORT_A_FIRST_BIT_NUMBER = 21, + PORT_A_LAST_ADDRESS = 40959, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a150 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 32768, + PORT_A_FIRST_BIT_NUMBER = 22, + PORT_A_LAST_ADDRESS = 40959, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a151 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 32768, + PORT_A_FIRST_BIT_NUMBER = 23, + PORT_A_LAST_ADDRESS = 40959, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a152 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 32768, + PORT_A_FIRST_BIT_NUMBER = 24, + PORT_A_LAST_ADDRESS = 40959, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a153 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 32768, + PORT_A_FIRST_BIT_NUMBER = 25, + PORT_A_LAST_ADDRESS = 40959, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a154 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 32768, + PORT_A_FIRST_BIT_NUMBER = 26, + PORT_A_LAST_ADDRESS = 40959, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a155 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 32768, + PORT_A_FIRST_BIT_NUMBER = 27, + PORT_A_LAST_ADDRESS = 40959, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a156 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 32768, + PORT_A_FIRST_BIT_NUMBER = 28, + PORT_A_LAST_ADDRESS = 40959, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a157 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 32768, + PORT_A_FIRST_BIT_NUMBER = 29, + PORT_A_LAST_ADDRESS = 40959, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a158 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 32768, + PORT_A_FIRST_BIT_NUMBER = 30, + PORT_A_LAST_ADDRESS = 40959, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a159 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 32768, + PORT_A_FIRST_BIT_NUMBER = 31, + PORT_A_LAST_ADDRESS = 40959, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a160 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 40960, + PORT_A_FIRST_BIT_NUMBER = 0, + PORT_A_LAST_ADDRESS = 49151, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a161 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 40960, + PORT_A_FIRST_BIT_NUMBER = 1, + PORT_A_LAST_ADDRESS = 49151, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a162 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 40960, + PORT_A_FIRST_BIT_NUMBER = 2, + PORT_A_LAST_ADDRESS = 49151, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a163 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 40960, + PORT_A_FIRST_BIT_NUMBER = 3, + PORT_A_LAST_ADDRESS = 49151, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a164 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 40960, + PORT_A_FIRST_BIT_NUMBER = 4, + PORT_A_LAST_ADDRESS = 49151, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a165 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 40960, + PORT_A_FIRST_BIT_NUMBER = 5, + PORT_A_LAST_ADDRESS = 49151, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a166 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 40960, + PORT_A_FIRST_BIT_NUMBER = 6, + PORT_A_LAST_ADDRESS = 49151, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a167 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 40960, + PORT_A_FIRST_BIT_NUMBER = 7, + PORT_A_LAST_ADDRESS = 49151, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a168 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 40960, + PORT_A_FIRST_BIT_NUMBER = 8, + PORT_A_LAST_ADDRESS = 49151, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a169 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 40960, + PORT_A_FIRST_BIT_NUMBER = 9, + PORT_A_LAST_ADDRESS = 49151, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a170 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 40960, + PORT_A_FIRST_BIT_NUMBER = 10, + PORT_A_LAST_ADDRESS = 49151, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a171 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 40960, + PORT_A_FIRST_BIT_NUMBER = 11, + PORT_A_LAST_ADDRESS = 49151, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a172 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 40960, + PORT_A_FIRST_BIT_NUMBER = 12, + PORT_A_LAST_ADDRESS = 49151, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a173 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 40960, + PORT_A_FIRST_BIT_NUMBER = 13, + PORT_A_LAST_ADDRESS = 49151, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a174 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 40960, + PORT_A_FIRST_BIT_NUMBER = 14, + PORT_A_LAST_ADDRESS = 49151, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a175 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 40960, + PORT_A_FIRST_BIT_NUMBER = 15, + PORT_A_LAST_ADDRESS = 49151, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a176 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 40960, + PORT_A_FIRST_BIT_NUMBER = 16, + PORT_A_LAST_ADDRESS = 49151, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a177 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 40960, + PORT_A_FIRST_BIT_NUMBER = 17, + PORT_A_LAST_ADDRESS = 49151, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a178 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 40960, + PORT_A_FIRST_BIT_NUMBER = 18, + PORT_A_LAST_ADDRESS = 49151, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a179 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 40960, + PORT_A_FIRST_BIT_NUMBER = 19, + PORT_A_LAST_ADDRESS = 49151, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a180 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 40960, + PORT_A_FIRST_BIT_NUMBER = 20, + PORT_A_LAST_ADDRESS = 49151, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a181 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 40960, + PORT_A_FIRST_BIT_NUMBER = 21, + PORT_A_LAST_ADDRESS = 49151, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a182 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 40960, + PORT_A_FIRST_BIT_NUMBER = 22, + PORT_A_LAST_ADDRESS = 49151, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a183 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 40960, + PORT_A_FIRST_BIT_NUMBER = 23, + PORT_A_LAST_ADDRESS = 49151, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a184 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 40960, + PORT_A_FIRST_BIT_NUMBER = 24, + PORT_A_LAST_ADDRESS = 49151, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a185 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 40960, + PORT_A_FIRST_BIT_NUMBER = 25, + PORT_A_LAST_ADDRESS = 49151, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a186 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 40960, + PORT_A_FIRST_BIT_NUMBER = 26, + PORT_A_LAST_ADDRESS = 49151, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a187 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 40960, + PORT_A_FIRST_BIT_NUMBER = 27, + PORT_A_LAST_ADDRESS = 49151, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a188 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 40960, + PORT_A_FIRST_BIT_NUMBER = 28, + PORT_A_LAST_ADDRESS = 49151, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a189 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 40960, + PORT_A_FIRST_BIT_NUMBER = 29, + PORT_A_LAST_ADDRESS = 49151, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a190 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 40960, + PORT_A_FIRST_BIT_NUMBER = 30, + PORT_A_LAST_ADDRESS = 49151, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a191 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 13, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 40960, + PORT_A_FIRST_BIT_NUMBER = 31, + PORT_A_LAST_ADDRESS = 49151, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a192 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 11, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 49152, + PORT_A_FIRST_BIT_NUMBER = 0, + PORT_A_LAST_ADDRESS = 51199, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a193 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 11, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 49152, + PORT_A_FIRST_BIT_NUMBER = 1, + PORT_A_LAST_ADDRESS = 51199, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a194 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 11, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 49152, + PORT_A_FIRST_BIT_NUMBER = 2, + PORT_A_LAST_ADDRESS = 51199, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a195 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 11, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 49152, + PORT_A_FIRST_BIT_NUMBER = 3, + PORT_A_LAST_ADDRESS = 51199, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a196 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 11, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 49152, + PORT_A_FIRST_BIT_NUMBER = 4, + PORT_A_LAST_ADDRESS = 51199, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a197 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 11, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 49152, + PORT_A_FIRST_BIT_NUMBER = 5, + PORT_A_LAST_ADDRESS = 51199, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a198 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 11, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 49152, + PORT_A_FIRST_BIT_NUMBER = 6, + PORT_A_LAST_ADDRESS = 51199, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a199 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 11, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 49152, + PORT_A_FIRST_BIT_NUMBER = 7, + PORT_A_LAST_ADDRESS = 51199, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a200 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 11, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 49152, + PORT_A_FIRST_BIT_NUMBER = 8, + PORT_A_LAST_ADDRESS = 51199, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a201 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 11, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 49152, + PORT_A_FIRST_BIT_NUMBER = 9, + PORT_A_LAST_ADDRESS = 51199, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a202 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 11, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 49152, + PORT_A_FIRST_BIT_NUMBER = 10, + PORT_A_LAST_ADDRESS = 51199, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a203 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 11, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 49152, + PORT_A_FIRST_BIT_NUMBER = 11, + PORT_A_LAST_ADDRESS = 51199, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a204 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 11, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 49152, + PORT_A_FIRST_BIT_NUMBER = 12, + PORT_A_LAST_ADDRESS = 51199, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a205 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 11, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 49152, + PORT_A_FIRST_BIT_NUMBER = 13, + PORT_A_LAST_ADDRESS = 51199, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a206 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 11, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 49152, + PORT_A_FIRST_BIT_NUMBER = 14, + PORT_A_LAST_ADDRESS = 51199, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a207 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 11, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 49152, + PORT_A_FIRST_BIT_NUMBER = 15, + PORT_A_LAST_ADDRESS = 51199, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a208 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 11, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 49152, + PORT_A_FIRST_BIT_NUMBER = 16, + PORT_A_LAST_ADDRESS = 51199, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a209 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 11, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 49152, + PORT_A_FIRST_BIT_NUMBER = 17, + PORT_A_LAST_ADDRESS = 51199, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a210 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 11, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 49152, + PORT_A_FIRST_BIT_NUMBER = 18, + PORT_A_LAST_ADDRESS = 51199, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a211 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 11, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 49152, + PORT_A_FIRST_BIT_NUMBER = 19, + PORT_A_LAST_ADDRESS = 51199, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a212 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 11, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 49152, + PORT_A_FIRST_BIT_NUMBER = 20, + PORT_A_LAST_ADDRESS = 51199, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a213 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 11, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 49152, + PORT_A_FIRST_BIT_NUMBER = 21, + PORT_A_LAST_ADDRESS = 51199, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a214 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 11, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 49152, + PORT_A_FIRST_BIT_NUMBER = 22, + PORT_A_LAST_ADDRESS = 51199, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a215 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 11, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 49152, + PORT_A_FIRST_BIT_NUMBER = 23, + PORT_A_LAST_ADDRESS = 51199, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a216 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 11, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 49152, + PORT_A_FIRST_BIT_NUMBER = 24, + PORT_A_LAST_ADDRESS = 51199, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a217 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 11, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 49152, + PORT_A_FIRST_BIT_NUMBER = 25, + PORT_A_LAST_ADDRESS = 51199, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a218 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 11, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 49152, + PORT_A_FIRST_BIT_NUMBER = 26, + PORT_A_LAST_ADDRESS = 51199, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a219 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 11, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 49152, + PORT_A_FIRST_BIT_NUMBER = 27, + PORT_A_LAST_ADDRESS = 51199, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a220 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 11, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 49152, + PORT_A_FIRST_BIT_NUMBER = 28, + PORT_A_LAST_ADDRESS = 51199, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a221 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 11, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 49152, + PORT_A_FIRST_BIT_NUMBER = 29, + PORT_A_LAST_ADDRESS = 51199, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a222 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 11, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 49152, + PORT_A_FIRST_BIT_NUMBER = 30, + PORT_A_LAST_ADDRESS = 51199, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a223 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 11, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 49152, + PORT_A_FIRST_BIT_NUMBER = 31, + PORT_A_LAST_ADDRESS = 51199, + PORT_A_LOGICAL_RAM_DEPTH = 51200, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + address_a_sel[2..0] : WIRE; + address_a_wire[15..0] : WIRE; + +BEGIN + address_reg_a[].clk = clock0; + address_reg_a[].d = address_a_sel[]; + address_reg_a[].ena = clocken0; + decode3.data[2..0] = address_a_wire[15..13]; + decode3.enable = wren_a; + mux2.data[] = ( ram_block1a[223..0].portadataout[0..0]); + mux2.sel[] = address_reg_a[].q; + ram_block1a[223..0].clk0 = clock0; + ram_block1a[223..0].ena0 = clocken0; + ram_block1a[191..0].portaaddr[] = ( address_a_wire[12..0]); + ram_block1a[223..192].portaaddr[] = ( address_a_wire[10..0]); + ram_block1a[7..0].portabyteenamasks[] = ( byteena_a[0..0]); + ram_block1a[15..8].portabyteenamasks[] = ( byteena_a[1..1]); + ram_block1a[23..16].portabyteenamasks[] = ( byteena_a[2..2]); + ram_block1a[31..24].portabyteenamasks[] = ( byteena_a[3..3]); + ram_block1a[39..32].portabyteenamasks[] = ( byteena_a[0..0]); + ram_block1a[47..40].portabyteenamasks[] = ( byteena_a[1..1]); + ram_block1a[55..48].portabyteenamasks[] = ( byteena_a[2..2]); + ram_block1a[63..56].portabyteenamasks[] = ( byteena_a[3..3]); + ram_block1a[71..64].portabyteenamasks[] = ( byteena_a[0..0]); + ram_block1a[79..72].portabyteenamasks[] = ( byteena_a[1..1]); + ram_block1a[87..80].portabyteenamasks[] = ( byteena_a[2..2]); + ram_block1a[95..88].portabyteenamasks[] = ( byteena_a[3..3]); + ram_block1a[103..96].portabyteenamasks[] = ( byteena_a[0..0]); + ram_block1a[111..104].portabyteenamasks[] = ( byteena_a[1..1]); + ram_block1a[119..112].portabyteenamasks[] = ( byteena_a[2..2]); + ram_block1a[127..120].portabyteenamasks[] = ( byteena_a[3..3]); + ram_block1a[135..128].portabyteenamasks[] = ( byteena_a[0..0]); + ram_block1a[143..136].portabyteenamasks[] = ( byteena_a[1..1]); + ram_block1a[151..144].portabyteenamasks[] = ( byteena_a[2..2]); + ram_block1a[159..152].portabyteenamasks[] = ( byteena_a[3..3]); + ram_block1a[167..160].portabyteenamasks[] = ( byteena_a[0..0]); + ram_block1a[175..168].portabyteenamasks[] = ( byteena_a[1..1]); + ram_block1a[183..176].portabyteenamasks[] = ( byteena_a[2..2]); + ram_block1a[191..184].portabyteenamasks[] = ( byteena_a[3..3]); + ram_block1a[199..192].portabyteenamasks[] = ( byteena_a[0..0]); + ram_block1a[207..200].portabyteenamasks[] = ( byteena_a[1..1]); + ram_block1a[215..208].portabyteenamasks[] = ( byteena_a[2..2]); + ram_block1a[223..216].portabyteenamasks[] = ( byteena_a[3..3]); + ram_block1a[0].portadatain[] = ( data_a[0..0]); + ram_block1a[1].portadatain[] = ( data_a[1..1]); + ram_block1a[2].portadatain[] = ( data_a[2..2]); + ram_block1a[3].portadatain[] = ( data_a[3..3]); + ram_block1a[4].portadatain[] = ( data_a[4..4]); + ram_block1a[5].portadatain[] = ( data_a[5..5]); + ram_block1a[6].portadatain[] = ( data_a[6..6]); + ram_block1a[7].portadatain[] = ( data_a[7..7]); + ram_block1a[8].portadatain[] = ( data_a[8..8]); + ram_block1a[9].portadatain[] = ( data_a[9..9]); + ram_block1a[10].portadatain[] = ( data_a[10..10]); + ram_block1a[11].portadatain[] = ( data_a[11..11]); + ram_block1a[12].portadatain[] = ( data_a[12..12]); + ram_block1a[13].portadatain[] = ( data_a[13..13]); + ram_block1a[14].portadatain[] = ( data_a[14..14]); + ram_block1a[15].portadatain[] = ( data_a[15..15]); + ram_block1a[16].portadatain[] = ( data_a[16..16]); + ram_block1a[17].portadatain[] = ( data_a[17..17]); + ram_block1a[18].portadatain[] = ( data_a[18..18]); + ram_block1a[19].portadatain[] = ( data_a[19..19]); + ram_block1a[20].portadatain[] = ( data_a[20..20]); + ram_block1a[21].portadatain[] = ( data_a[21..21]); + ram_block1a[22].portadatain[] = ( data_a[22..22]); + ram_block1a[23].portadatain[] = ( data_a[23..23]); + ram_block1a[24].portadatain[] = ( data_a[24..24]); + ram_block1a[25].portadatain[] = ( data_a[25..25]); + ram_block1a[26].portadatain[] = ( data_a[26..26]); + ram_block1a[27].portadatain[] = ( data_a[27..27]); + ram_block1a[28].portadatain[] = ( data_a[28..28]); + ram_block1a[29].portadatain[] = ( data_a[29..29]); + ram_block1a[30].portadatain[] = ( data_a[30..30]); + ram_block1a[31].portadatain[] = ( data_a[31..31]); + ram_block1a[32].portadatain[] = ( data_a[0..0]); + ram_block1a[33].portadatain[] = ( data_a[1..1]); + ram_block1a[34].portadatain[] = ( data_a[2..2]); + ram_block1a[35].portadatain[] = ( data_a[3..3]); + ram_block1a[36].portadatain[] = ( data_a[4..4]); + ram_block1a[37].portadatain[] = ( data_a[5..5]); + ram_block1a[38].portadatain[] = ( data_a[6..6]); + ram_block1a[39].portadatain[] = ( data_a[7..7]); + ram_block1a[40].portadatain[] = ( data_a[8..8]); + ram_block1a[41].portadatain[] = ( data_a[9..9]); + ram_block1a[42].portadatain[] = ( data_a[10..10]); + ram_block1a[43].portadatain[] = ( data_a[11..11]); + ram_block1a[44].portadatain[] = ( data_a[12..12]); + ram_block1a[45].portadatain[] = ( data_a[13..13]); + ram_block1a[46].portadatain[] = ( data_a[14..14]); + ram_block1a[47].portadatain[] = ( data_a[15..15]); + ram_block1a[48].portadatain[] = ( data_a[16..16]); + ram_block1a[49].portadatain[] = ( data_a[17..17]); + ram_block1a[50].portadatain[] = ( data_a[18..18]); + ram_block1a[51].portadatain[] = ( data_a[19..19]); + ram_block1a[52].portadatain[] = ( data_a[20..20]); + ram_block1a[53].portadatain[] = ( data_a[21..21]); + ram_block1a[54].portadatain[] = ( data_a[22..22]); + ram_block1a[55].portadatain[] = ( data_a[23..23]); + ram_block1a[56].portadatain[] = ( data_a[24..24]); + ram_block1a[57].portadatain[] = ( data_a[25..25]); + ram_block1a[58].portadatain[] = ( data_a[26..26]); + ram_block1a[59].portadatain[] = ( data_a[27..27]); + ram_block1a[60].portadatain[] = ( data_a[28..28]); + ram_block1a[61].portadatain[] = ( data_a[29..29]); + ram_block1a[62].portadatain[] = ( data_a[30..30]); + ram_block1a[63].portadatain[] = ( data_a[31..31]); + ram_block1a[64].portadatain[] = ( data_a[0..0]); + ram_block1a[65].portadatain[] = ( data_a[1..1]); + ram_block1a[66].portadatain[] = ( data_a[2..2]); + ram_block1a[67].portadatain[] = ( data_a[3..3]); + ram_block1a[68].portadatain[] = ( data_a[4..4]); + ram_block1a[69].portadatain[] = ( data_a[5..5]); + ram_block1a[70].portadatain[] = ( data_a[6..6]); + ram_block1a[71].portadatain[] = ( data_a[7..7]); + ram_block1a[72].portadatain[] = ( data_a[8..8]); + ram_block1a[73].portadatain[] = ( data_a[9..9]); + ram_block1a[74].portadatain[] = ( data_a[10..10]); + ram_block1a[75].portadatain[] = ( data_a[11..11]); + ram_block1a[76].portadatain[] = ( data_a[12..12]); + ram_block1a[77].portadatain[] = ( data_a[13..13]); + ram_block1a[78].portadatain[] = ( data_a[14..14]); + ram_block1a[79].portadatain[] = ( data_a[15..15]); + ram_block1a[80].portadatain[] = ( data_a[16..16]); + ram_block1a[81].portadatain[] = ( data_a[17..17]); + ram_block1a[82].portadatain[] = ( data_a[18..18]); + ram_block1a[83].portadatain[] = ( data_a[19..19]); + ram_block1a[84].portadatain[] = ( data_a[20..20]); + ram_block1a[85].portadatain[] = ( data_a[21..21]); + ram_block1a[86].portadatain[] = ( data_a[22..22]); + ram_block1a[87].portadatain[] = ( data_a[23..23]); + ram_block1a[88].portadatain[] = ( data_a[24..24]); + ram_block1a[89].portadatain[] = ( data_a[25..25]); + ram_block1a[90].portadatain[] = ( data_a[26..26]); + ram_block1a[91].portadatain[] = ( data_a[27..27]); + ram_block1a[92].portadatain[] = ( data_a[28..28]); + ram_block1a[93].portadatain[] = ( data_a[29..29]); + ram_block1a[94].portadatain[] = ( data_a[30..30]); + ram_block1a[95].portadatain[] = ( data_a[31..31]); + ram_block1a[96].portadatain[] = ( data_a[0..0]); + ram_block1a[97].portadatain[] = ( data_a[1..1]); + ram_block1a[98].portadatain[] = ( data_a[2..2]); + ram_block1a[99].portadatain[] = ( data_a[3..3]); + ram_block1a[100].portadatain[] = ( data_a[4..4]); + ram_block1a[101].portadatain[] = ( data_a[5..5]); + ram_block1a[102].portadatain[] = ( data_a[6..6]); + ram_block1a[103].portadatain[] = ( data_a[7..7]); + ram_block1a[104].portadatain[] = ( data_a[8..8]); + ram_block1a[105].portadatain[] = ( data_a[9..9]); + ram_block1a[106].portadatain[] = ( data_a[10..10]); + ram_block1a[107].portadatain[] = ( data_a[11..11]); + ram_block1a[108].portadatain[] = ( data_a[12..12]); + ram_block1a[109].portadatain[] = ( data_a[13..13]); + ram_block1a[110].portadatain[] = ( data_a[14..14]); + ram_block1a[111].portadatain[] = ( data_a[15..15]); + ram_block1a[112].portadatain[] = ( data_a[16..16]); + ram_block1a[113].portadatain[] = ( data_a[17..17]); + ram_block1a[114].portadatain[] = ( data_a[18..18]); + ram_block1a[115].portadatain[] = ( data_a[19..19]); + ram_block1a[116].portadatain[] = ( data_a[20..20]); + ram_block1a[117].portadatain[] = ( data_a[21..21]); + ram_block1a[118].portadatain[] = ( data_a[22..22]); + ram_block1a[119].portadatain[] = ( data_a[23..23]); + ram_block1a[120].portadatain[] = ( data_a[24..24]); + ram_block1a[121].portadatain[] = ( data_a[25..25]); + ram_block1a[122].portadatain[] = ( data_a[26..26]); + ram_block1a[123].portadatain[] = ( data_a[27..27]); + ram_block1a[124].portadatain[] = ( data_a[28..28]); + ram_block1a[125].portadatain[] = ( data_a[29..29]); + ram_block1a[126].portadatain[] = ( data_a[30..30]); + ram_block1a[127].portadatain[] = ( data_a[31..31]); + ram_block1a[128].portadatain[] = ( data_a[0..0]); + ram_block1a[129].portadatain[] = ( data_a[1..1]); + ram_block1a[130].portadatain[] = ( data_a[2..2]); + ram_block1a[131].portadatain[] = ( data_a[3..3]); + ram_block1a[132].portadatain[] = ( data_a[4..4]); + ram_block1a[133].portadatain[] = ( data_a[5..5]); + ram_block1a[134].portadatain[] = ( data_a[6..6]); + ram_block1a[135].portadatain[] = ( data_a[7..7]); + ram_block1a[136].portadatain[] = ( data_a[8..8]); + ram_block1a[137].portadatain[] = ( data_a[9..9]); + ram_block1a[138].portadatain[] = ( data_a[10..10]); + ram_block1a[139].portadatain[] = ( data_a[11..11]); + ram_block1a[140].portadatain[] = ( data_a[12..12]); + ram_block1a[141].portadatain[] = ( data_a[13..13]); + ram_block1a[142].portadatain[] = ( data_a[14..14]); + ram_block1a[143].portadatain[] = ( data_a[15..15]); + ram_block1a[144].portadatain[] = ( data_a[16..16]); + ram_block1a[145].portadatain[] = ( data_a[17..17]); + ram_block1a[146].portadatain[] = ( data_a[18..18]); + ram_block1a[147].portadatain[] = ( data_a[19..19]); + ram_block1a[148].portadatain[] = ( data_a[20..20]); + ram_block1a[149].portadatain[] = ( data_a[21..21]); + ram_block1a[150].portadatain[] = ( data_a[22..22]); + ram_block1a[151].portadatain[] = ( data_a[23..23]); + ram_block1a[152].portadatain[] = ( data_a[24..24]); + ram_block1a[153].portadatain[] = ( data_a[25..25]); + ram_block1a[154].portadatain[] = ( data_a[26..26]); + ram_block1a[155].portadatain[] = ( data_a[27..27]); + ram_block1a[156].portadatain[] = ( data_a[28..28]); + ram_block1a[157].portadatain[] = ( data_a[29..29]); + ram_block1a[158].portadatain[] = ( data_a[30..30]); + ram_block1a[159].portadatain[] = ( data_a[31..31]); + ram_block1a[160].portadatain[] = ( data_a[0..0]); + ram_block1a[161].portadatain[] = ( data_a[1..1]); + ram_block1a[162].portadatain[] = ( data_a[2..2]); + ram_block1a[163].portadatain[] = ( data_a[3..3]); + ram_block1a[164].portadatain[] = ( data_a[4..4]); + ram_block1a[165].portadatain[] = ( data_a[5..5]); + ram_block1a[166].portadatain[] = ( data_a[6..6]); + ram_block1a[167].portadatain[] = ( data_a[7..7]); + ram_block1a[168].portadatain[] = ( data_a[8..8]); + ram_block1a[169].portadatain[] = ( data_a[9..9]); + ram_block1a[170].portadatain[] = ( data_a[10..10]); + ram_block1a[171].portadatain[] = ( data_a[11..11]); + ram_block1a[172].portadatain[] = ( data_a[12..12]); + ram_block1a[173].portadatain[] = ( data_a[13..13]); + ram_block1a[174].portadatain[] = ( data_a[14..14]); + ram_block1a[175].portadatain[] = ( data_a[15..15]); + ram_block1a[176].portadatain[] = ( data_a[16..16]); + ram_block1a[177].portadatain[] = ( data_a[17..17]); + ram_block1a[178].portadatain[] = ( data_a[18..18]); + ram_block1a[179].portadatain[] = ( data_a[19..19]); + ram_block1a[180].portadatain[] = ( data_a[20..20]); + ram_block1a[181].portadatain[] = ( data_a[21..21]); + ram_block1a[182].portadatain[] = ( data_a[22..22]); + ram_block1a[183].portadatain[] = ( data_a[23..23]); + ram_block1a[184].portadatain[] = ( data_a[24..24]); + ram_block1a[185].portadatain[] = ( data_a[25..25]); + ram_block1a[186].portadatain[] = ( data_a[26..26]); + ram_block1a[187].portadatain[] = ( data_a[27..27]); + ram_block1a[188].portadatain[] = ( data_a[28..28]); + ram_block1a[189].portadatain[] = ( data_a[29..29]); + ram_block1a[190].portadatain[] = ( data_a[30..30]); + ram_block1a[191].portadatain[] = ( data_a[31..31]); + ram_block1a[192].portadatain[] = ( data_a[0..0]); + ram_block1a[193].portadatain[] = ( data_a[1..1]); + ram_block1a[194].portadatain[] = ( data_a[2..2]); + ram_block1a[195].portadatain[] = ( data_a[3..3]); + ram_block1a[196].portadatain[] = ( data_a[4..4]); + ram_block1a[197].portadatain[] = ( data_a[5..5]); + ram_block1a[198].portadatain[] = ( data_a[6..6]); + ram_block1a[199].portadatain[] = ( data_a[7..7]); + ram_block1a[200].portadatain[] = ( data_a[8..8]); + ram_block1a[201].portadatain[] = ( data_a[9..9]); + ram_block1a[202].portadatain[] = ( data_a[10..10]); + ram_block1a[203].portadatain[] = ( data_a[11..11]); + ram_block1a[204].portadatain[] = ( data_a[12..12]); + ram_block1a[205].portadatain[] = ( data_a[13..13]); + ram_block1a[206].portadatain[] = ( data_a[14..14]); + ram_block1a[207].portadatain[] = ( data_a[15..15]); + ram_block1a[208].portadatain[] = ( data_a[16..16]); + ram_block1a[209].portadatain[] = ( data_a[17..17]); + ram_block1a[210].portadatain[] = ( data_a[18..18]); + ram_block1a[211].portadatain[] = ( data_a[19..19]); + ram_block1a[212].portadatain[] = ( data_a[20..20]); + ram_block1a[213].portadatain[] = ( data_a[21..21]); + ram_block1a[214].portadatain[] = ( data_a[22..22]); + ram_block1a[215].portadatain[] = ( data_a[23..23]); + ram_block1a[216].portadatain[] = ( data_a[24..24]); + ram_block1a[217].portadatain[] = ( data_a[25..25]); + ram_block1a[218].portadatain[] = ( data_a[26..26]); + ram_block1a[219].portadatain[] = ( data_a[27..27]); + ram_block1a[220].portadatain[] = ( data_a[28..28]); + ram_block1a[221].portadatain[] = ( data_a[29..29]); + ram_block1a[222].portadatain[] = ( data_a[30..30]); + ram_block1a[223].portadatain[] = ( data_a[31..31]); + ram_block1a[223..0].portare = B"11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111"; + ram_block1a[223..0].portawe = ( decode3.eq[6..6], decode3.eq[6..6], decode3.eq[6..6], decode3.eq[6..6], decode3.eq[6..6], decode3.eq[6..6], decode3.eq[6..6], decode3.eq[6..6], decode3.eq[6..6], decode3.eq[6..6], decode3.eq[6..6], decode3.eq[6..6], decode3.eq[6..6], decode3.eq[6..6], decode3.eq[6..6], decode3.eq[6..6], decode3.eq[6..6], decode3.eq[6..6], decode3.eq[6..6], decode3.eq[6..6], decode3.eq[6..6], decode3.eq[6..6], decode3.eq[6..6], decode3.eq[6..6], decode3.eq[6..6], decode3.eq[6..6], decode3.eq[6..6], decode3.eq[6..6], decode3.eq[6..6], decode3.eq[6..6], decode3.eq[6..6], decode3.eq[6..5], decode3.eq[5..5], decode3.eq[5..5], decode3.eq[5..5], decode3.eq[5..5], decode3.eq[5..5], decode3.eq[5..5], decode3.eq[5..5], decode3.eq[5..5], decode3.eq[5..5], decode3.eq[5..5], decode3.eq[5..5], decode3.eq[5..5], decode3.eq[5..5], decode3.eq[5..5], decode3.eq[5..5], decode3.eq[5..5], decode3.eq[5..5], decode3.eq[5..5], decode3.eq[5..5], decode3.eq[5..5], decode3.eq[5..5], decode3.eq[5..5], decode3.eq[5..5], decode3.eq[5..5], decode3.eq[5..5], decode3.eq[5..5], decode3.eq[5..5], decode3.eq[5..5], decode3.eq[5..5], decode3.eq[5..5], decode3.eq[5..4], decode3.eq[4..4], decode3.eq[4..4], decode3.eq[4..4], decode3.eq[4..4], decode3.eq[4..4], decode3.eq[4..4], decode3.eq[4..4], decode3.eq[4..4], decode3.eq[4..4], decode3.eq[4..4], decode3.eq[4..4], decode3.eq[4..4], decode3.eq[4..4], decode3.eq[4..4], decode3.eq[4..4], decode3.eq[4..4], decode3.eq[4..4], decode3.eq[4..4], decode3.eq[4..4], decode3.eq[4..4], decode3.eq[4..4], decode3.eq[4..4], decode3.eq[4..4], decode3.eq[4..4], decode3.eq[4..4], decode3.eq[4..4], decode3.eq[4..4], decode3.eq[4..4], decode3.eq[4..4], decode3.eq[4..4], decode3.eq[4..3], decode3.eq[3..3], decode3.eq[3..3], decode3.eq[3..3], decode3.eq[3..3], decode3.eq[3..3], decode3.eq[3..3], decode3.eq[3..3], decode3.eq[3..3], decode3.eq[3..3], decode3.eq[3..3], decode3.eq[3..3], decode3.eq[3..3], decode3.eq[3..3], decode3.eq[3..3], decode3.eq[3..3], decode3.eq[3..3], decode3.eq[3..3], decode3.eq[3..3], decode3.eq[3..3], decode3.eq[3..3], decode3.eq[3..3], decode3.eq[3..3], decode3.eq[3..3], decode3.eq[3..3], decode3.eq[3..3], decode3.eq[3..3], decode3.eq[3..3], decode3.eq[3..3], decode3.eq[3..3], decode3.eq[3..3], decode3.eq[3..2], decode3.eq[2..2], decode3.eq[2..2], decode3.eq[2..2], decode3.eq[2..2], decode3.eq[2..2], decode3.eq[2..2], decode3.eq[2..2], decode3.eq[2..2], decode3.eq[2..2], decode3.eq[2..2], decode3.eq[2..2], decode3.eq[2..2], decode3.eq[2..2], decode3.eq[2..2], decode3.eq[2..2], decode3.eq[2..2], decode3.eq[2..2], decode3.eq[2..2], decode3.eq[2..2], decode3.eq[2..2], decode3.eq[2..2], decode3.eq[2..2], decode3.eq[2..2], decode3.eq[2..2], decode3.eq[2..2], decode3.eq[2..2], decode3.eq[2..2], decode3.eq[2..2], decode3.eq[2..2], decode3.eq[2..2], decode3.eq[2..1], decode3.eq[1..1], decode3.eq[1..1], decode3.eq[1..1], decode3.eq[1..1], decode3.eq[1..1], decode3.eq[1..1], decode3.eq[1..1], decode3.eq[1..1], decode3.eq[1..1], decode3.eq[1..1], decode3.eq[1..1], decode3.eq[1..1], decode3.eq[1..1], decode3.eq[1..1], decode3.eq[1..1], decode3.eq[1..1], decode3.eq[1..1], decode3.eq[1..1], decode3.eq[1..1], decode3.eq[1..1], decode3.eq[1..1], decode3.eq[1..1], decode3.eq[1..1], decode3.eq[1..1], decode3.eq[1..1], decode3.eq[1..1], decode3.eq[1..1], decode3.eq[1..1], decode3.eq[1..1], decode3.eq[1..1], decode3.eq[1..0], decode3.eq[0..0], decode3.eq[0..0], decode3.eq[0..0], decode3.eq[0..0], decode3.eq[0..0], decode3.eq[0..0], decode3.eq[0..0], decode3.eq[0..0], decode3.eq[0..0], decode3.eq[0..0], decode3.eq[0..0], decode3.eq[0..0], decode3.eq[0..0], decode3.eq[0..0], decode3.eq[0..0], decode3.eq[0..0], decode3.eq[0..0], decode3.eq[0..0], decode3.eq[0..0], decode3.eq[0..0], decode3.eq[0..0], decode3.eq[0..0], decode3.eq[0..0], decode3.eq[0..0], decode3.eq[0..0], decode3.eq[0..0], decode3.eq[0..0], decode3.eq[0..0], decode3.eq[0..0], decode3.eq[0..0], decode3.eq[0..0]); + address_a_sel[2..0] = address_a[15..13]; + address_a_wire[] = address_a[]; + q_a[] = mux2.result[]; +END; +--VALID FILE diff --git a/db/altsyncram_mbd1.tdf b/db/altsyncram_mbd1.tdf new file mode 100644 index 0000000..4e2ebe5 --- /dev/null +++ b/db/altsyncram_mbd1.tdf @@ -0,0 +1,821 @@ +--altsyncram BYTE_SIZE=8 CBX_DECLARE_ALL_CONNECTED_PORTS="OFF" CYCLONEII_M4K_COMPATIBILITY="ON" DEVICE_FAMILY="Cyclone IV E" INIT_FILE="nios_system_onchip_memory.hex" LOW_POWER_MODE="AUTO" MAXIMUM_DEPTH=4096 NUMWORDS_A=4096 OPERATION_MODE="SINGLE_PORT" OUTDATA_REG_A="UNREGISTERED" RAM_BLOCK_TYPE="AUTO" READ_DURING_WRITE_MODE_MIXED_PORTS="DONT_CARE" WIDTH_A=32 WIDTH_BYTEENA_A=4 WIDTHAD_A=12 address_a byteena_a clock0 clocken0 data_a q_a wren_a CARRY_CHAIN="MANUAL" CARRY_CHAIN_LENGTH=48 +--VERSION_BEGIN 13.0 cbx_altsyncram 2013:06:12:18:03:43:SJ cbx_cycloneii 2013:06:12:18:03:43:SJ cbx_lpm_add_sub 2013:06:12:18:03:43:SJ cbx_lpm_compare 2013:06:12:18:03:43:SJ cbx_lpm_decode 2013:06:12:18:03:43:SJ cbx_lpm_mux 2013:06:12:18:03:43:SJ cbx_mgl 2013:06:12:18:05:10:SJ cbx_stratix 2013:06:12:18:03:43:SJ cbx_stratixii 2013:06:12:18:03:43:SJ cbx_stratixiii 2013:06:12:18:03:43:SJ cbx_stratixv 2013:06:12:18:03:43:SJ cbx_util_mgl 2013:06:12:18:03:43:SJ VERSION_END + + +-- Copyright (C) 1991-2013 Altera Corporation +-- Your use of Altera Corporation's design tools, logic functions +-- and other software and tools, and its AMPP partner logic +-- functions, and any output files from any of the foregoing +-- (including device programming or simulation files), and any +-- associated documentation or information are expressly subject +-- to the terms and conditions of the Altera Program License +-- Subscription Agreement, Altera MegaCore Function License +-- Agreement, or other applicable license agreement, including, +-- without limitation, that your use is for the sole purpose of +-- programming logic devices manufactured by Altera and sold by +-- Altera or its authorized distributors. Please refer to the +-- applicable agreement for further details. + + +FUNCTION cycloneive_ram_block (clk0, clk1, clr0, clr1, ena0, ena1, ena2, ena3, portaaddr[PORT_A_ADDRESS_WIDTH-1..0], portaaddrstall, portabyteenamasks[PORT_A_BYTE_ENABLE_MASK_WIDTH-1..0], portadatain[PORT_A_DATA_WIDTH-1..0], portare, portawe, portbaddr[PORT_B_ADDRESS_WIDTH-1..0], portbaddrstall, portbbyteenamasks[PORT_B_BYTE_ENABLE_MASK_WIDTH-1..0], portbdatain[PORT_B_DATA_WIDTH-1..0], portbre, portbwe) +WITH ( CLK0_CORE_CLOCK_ENABLE, CLK0_INPUT_CLOCK_ENABLE, CLK0_OUTPUT_CLOCK_ENABLE, CLK1_CORE_CLOCK_ENABLE, CLK1_INPUT_CLOCK_ENABLE, CLK1_OUTPUT_CLOCK_ENABLE, CONNECTIVITY_CHECKING, DATA_INTERLEAVE_OFFSET_IN_BITS, DATA_INTERLEAVE_WIDTH_IN_BITS, DONT_POWER_OPTIMIZE, INIT_FILE, INIT_FILE_LAYOUT, init_file_restructured, LOGICAL_RAM_NAME, mem_init0, mem_init1, mem_init2, mem_init3, mem_init4, MIXED_PORT_FEED_THROUGH_MODE, OPERATION_MODE, PORT_A_ADDRESS_CLEAR, PORT_A_ADDRESS_WIDTH = 1, PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, PORT_A_BYTE_SIZE, PORT_A_DATA_OUT_CLEAR, PORT_A_DATA_OUT_CLOCK, PORT_A_DATA_WIDTH = 1, PORT_A_FIRST_ADDRESS, PORT_A_FIRST_BIT_NUMBER, PORT_A_LAST_ADDRESS, PORT_A_LOGICAL_RAM_DEPTH, PORT_A_LOGICAL_RAM_WIDTH, PORT_A_READ_DURING_WRITE_MODE, PORT_B_ADDRESS_CLEAR, PORT_B_ADDRESS_CLOCK, PORT_B_ADDRESS_WIDTH = 1, PORT_B_BYTE_ENABLE_CLOCK, PORT_B_BYTE_ENABLE_MASK_WIDTH = 1, PORT_B_BYTE_SIZE, PORT_B_DATA_IN_CLOCK, PORT_B_DATA_OUT_CLEAR, PORT_B_DATA_OUT_CLOCK, PORT_B_DATA_WIDTH = 1, PORT_B_FIRST_ADDRESS, PORT_B_FIRST_BIT_NUMBER, PORT_B_LAST_ADDRESS, PORT_B_LOGICAL_RAM_DEPTH, PORT_B_LOGICAL_RAM_WIDTH, PORT_B_READ_DURING_WRITE_MODE, PORT_B_READ_ENABLE_CLOCK, PORT_B_WRITE_ENABLE_CLOCK, POWER_UP_UNINITIALIZED, RAM_BLOCK_TYPE, SAFE_WRITE, WIDTH_ECCSTATUS) +RETURNS ( portadataout[PORT_A_DATA_WIDTH-1..0], portbdataout[PORT_B_DATA_WIDTH-1..0]); + +--synthesis_resources = M9K 16 +OPTIONS ALTERA_INTERNAL_OPTION = "OPTIMIZE_POWER_DURING_SYNTHESIS=NORMAL_COMPILATION"; + +SUBDESIGN altsyncram_mbd1 +( + address_a[11..0] : input; + byteena_a[3..0] : input; + clock0 : input; + clocken0 : input; + data_a[31..0] : input; + q_a[31..0] : output; + wren_a : input; +) +VARIABLE + ram_block1a0 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 12, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 0, + PORT_A_LAST_ADDRESS = 4095, + PORT_A_LOGICAL_RAM_DEPTH = 4096, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a1 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 12, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 1, + PORT_A_LAST_ADDRESS = 4095, + PORT_A_LOGICAL_RAM_DEPTH = 4096, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a2 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 12, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 2, + PORT_A_LAST_ADDRESS = 4095, + PORT_A_LOGICAL_RAM_DEPTH = 4096, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a3 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 12, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 3, + PORT_A_LAST_ADDRESS = 4095, + PORT_A_LOGICAL_RAM_DEPTH = 4096, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a4 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 12, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 4, + PORT_A_LAST_ADDRESS = 4095, + PORT_A_LOGICAL_RAM_DEPTH = 4096, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a5 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 12, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 5, + PORT_A_LAST_ADDRESS = 4095, + PORT_A_LOGICAL_RAM_DEPTH = 4096, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a6 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 12, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 6, + PORT_A_LAST_ADDRESS = 4095, + PORT_A_LOGICAL_RAM_DEPTH = 4096, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a7 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 12, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 7, + PORT_A_LAST_ADDRESS = 4095, + PORT_A_LOGICAL_RAM_DEPTH = 4096, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a8 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 12, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 8, + PORT_A_LAST_ADDRESS = 4095, + PORT_A_LOGICAL_RAM_DEPTH = 4096, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a9 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 12, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 9, + PORT_A_LAST_ADDRESS = 4095, + PORT_A_LOGICAL_RAM_DEPTH = 4096, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a10 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 12, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 10, + PORT_A_LAST_ADDRESS = 4095, + PORT_A_LOGICAL_RAM_DEPTH = 4096, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a11 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 12, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 11, + PORT_A_LAST_ADDRESS = 4095, + PORT_A_LOGICAL_RAM_DEPTH = 4096, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a12 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 12, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 12, + PORT_A_LAST_ADDRESS = 4095, + PORT_A_LOGICAL_RAM_DEPTH = 4096, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a13 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 12, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 13, + PORT_A_LAST_ADDRESS = 4095, + PORT_A_LOGICAL_RAM_DEPTH = 4096, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a14 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 12, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 14, + PORT_A_LAST_ADDRESS = 4095, + PORT_A_LOGICAL_RAM_DEPTH = 4096, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a15 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 12, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 15, + PORT_A_LAST_ADDRESS = 4095, + PORT_A_LOGICAL_RAM_DEPTH = 4096, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a16 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 12, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 16, + PORT_A_LAST_ADDRESS = 4095, + PORT_A_LOGICAL_RAM_DEPTH = 4096, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a17 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 12, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 17, + PORT_A_LAST_ADDRESS = 4095, + PORT_A_LOGICAL_RAM_DEPTH = 4096, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a18 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 12, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 18, + PORT_A_LAST_ADDRESS = 4095, + PORT_A_LOGICAL_RAM_DEPTH = 4096, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a19 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 12, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 19, + PORT_A_LAST_ADDRESS = 4095, + PORT_A_LOGICAL_RAM_DEPTH = 4096, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a20 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 12, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 20, + PORT_A_LAST_ADDRESS = 4095, + PORT_A_LOGICAL_RAM_DEPTH = 4096, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a21 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 12, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 21, + PORT_A_LAST_ADDRESS = 4095, + PORT_A_LOGICAL_RAM_DEPTH = 4096, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a22 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 12, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 22, + PORT_A_LAST_ADDRESS = 4095, + PORT_A_LOGICAL_RAM_DEPTH = 4096, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a23 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 12, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 23, + PORT_A_LAST_ADDRESS = 4095, + PORT_A_LOGICAL_RAM_DEPTH = 4096, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a24 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 12, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 24, + PORT_A_LAST_ADDRESS = 4095, + PORT_A_LOGICAL_RAM_DEPTH = 4096, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a25 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 12, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 25, + PORT_A_LAST_ADDRESS = 4095, + PORT_A_LOGICAL_RAM_DEPTH = 4096, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a26 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 12, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 26, + PORT_A_LAST_ADDRESS = 4095, + PORT_A_LOGICAL_RAM_DEPTH = 4096, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a27 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 12, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 27, + PORT_A_LAST_ADDRESS = 4095, + PORT_A_LOGICAL_RAM_DEPTH = 4096, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a28 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 12, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 28, + PORT_A_LAST_ADDRESS = 4095, + PORT_A_LOGICAL_RAM_DEPTH = 4096, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a29 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 12, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 29, + PORT_A_LAST_ADDRESS = 4095, + PORT_A_LOGICAL_RAM_DEPTH = 4096, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a30 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 12, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 30, + PORT_A_LAST_ADDRESS = 4095, + PORT_A_LOGICAL_RAM_DEPTH = 4096, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a31 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 12, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 31, + PORT_A_LAST_ADDRESS = 4095, + PORT_A_LOGICAL_RAM_DEPTH = 4096, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + address_a_wire[11..0] : WIRE; + +BEGIN + ram_block1a[31..0].clk0 = clock0; + ram_block1a[31..0].ena0 = clocken0; + ram_block1a[31..0].portaaddr[] = ( address_a_wire[11..0]); + ram_block1a[7..0].portabyteenamasks[] = ( byteena_a[0..0]); + ram_block1a[15..8].portabyteenamasks[] = ( byteena_a[1..1]); + ram_block1a[23..16].portabyteenamasks[] = ( byteena_a[2..2]); + ram_block1a[31..24].portabyteenamasks[] = ( byteena_a[3..3]); + ram_block1a[0].portadatain[] = ( data_a[0..0]); + ram_block1a[1].portadatain[] = ( data_a[1..1]); + ram_block1a[2].portadatain[] = ( data_a[2..2]); + ram_block1a[3].portadatain[] = ( data_a[3..3]); + ram_block1a[4].portadatain[] = ( data_a[4..4]); + ram_block1a[5].portadatain[] = ( data_a[5..5]); + ram_block1a[6].portadatain[] = ( data_a[6..6]); + ram_block1a[7].portadatain[] = ( data_a[7..7]); + ram_block1a[8].portadatain[] = ( data_a[8..8]); + ram_block1a[9].portadatain[] = ( data_a[9..9]); + ram_block1a[10].portadatain[] = ( data_a[10..10]); + ram_block1a[11].portadatain[] = ( data_a[11..11]); + ram_block1a[12].portadatain[] = ( data_a[12..12]); + ram_block1a[13].portadatain[] = ( data_a[13..13]); + ram_block1a[14].portadatain[] = ( data_a[14..14]); + ram_block1a[15].portadatain[] = ( data_a[15..15]); + ram_block1a[16].portadatain[] = ( data_a[16..16]); + ram_block1a[17].portadatain[] = ( data_a[17..17]); + ram_block1a[18].portadatain[] = ( data_a[18..18]); + ram_block1a[19].portadatain[] = ( data_a[19..19]); + ram_block1a[20].portadatain[] = ( data_a[20..20]); + ram_block1a[21].portadatain[] = ( data_a[21..21]); + ram_block1a[22].portadatain[] = ( data_a[22..22]); + ram_block1a[23].portadatain[] = ( data_a[23..23]); + ram_block1a[24].portadatain[] = ( data_a[24..24]); + ram_block1a[25].portadatain[] = ( data_a[25..25]); + ram_block1a[26].portadatain[] = ( data_a[26..26]); + ram_block1a[27].portadatain[] = ( data_a[27..27]); + ram_block1a[28].portadatain[] = ( data_a[28..28]); + ram_block1a[29].portadatain[] = ( data_a[29..29]); + ram_block1a[30].portadatain[] = ( data_a[30..30]); + ram_block1a[31].portadatain[] = ( data_a[31..31]); + ram_block1a[31..0].portare = B"11111111111111111111111111111111"; + ram_block1a[31..0].portawe = wren_a; + address_a_wire[] = address_a[]; + q_a[] = ( ram_block1a[31..0].portadataout[0..0]); +END; +--VALID FILE diff --git a/db/altsyncram_r1m1.tdf b/db/altsyncram_r1m1.tdf new file mode 100644 index 0000000..7a0fc2e --- /dev/null +++ b/db/altsyncram_r1m1.tdf @@ -0,0 +1,303 @@ +--altsyncram ADDRESS_ACLR_A="NONE" ADDRESS_ACLR_B="NONE" ADDRESS_REG_B="CLOCK1" CYCLONEII_M4K_COMPATIBILITY="ON" DEVICE_FAMILY="Cyclone IV E" INDATA_ACLR_A="NONE" LOW_POWER_MODE="AUTO" OPERATION_MODE="DUAL_PORT" OUTDATA_ACLR_B="NONE" OUTDATA_REG_B="UNREGISTERED" RAM_BLOCK_TYPE="AUTO" RDCONTROL_ACLR_B="NONE" RDCONTROL_REG_B="CLOCK0" READ_DURING_WRITE_MODE_MIXED_PORTS="DONT_CARE" WIDTH_A=8 WIDTH_B=8 WIDTH_BYTEENA_A=1 WIDTH_BYTEENA_B=1 WIDTHAD_A=6 WIDTHAD_B=6 WRCONTROL_ACLR_A="NONE" address_a address_b clock0 clock1 clocken1 data_a q_b wren_a CARRY_CHAIN="MANUAL" CARRY_CHAIN_LENGTH=48 +--VERSION_BEGIN 13.0 cbx_altsyncram 2013:06:12:18:03:43:SJ cbx_cycloneii 2013:06:12:18:03:43:SJ cbx_lpm_add_sub 2013:06:12:18:03:43:SJ cbx_lpm_compare 2013:06:12:18:03:43:SJ cbx_lpm_decode 2013:06:12:18:03:43:SJ cbx_lpm_mux 2013:06:12:18:03:43:SJ cbx_mgl 2013:06:12:18:05:10:SJ cbx_stratix 2013:06:12:18:03:43:SJ cbx_stratixii 2013:06:12:18:03:43:SJ cbx_stratixiii 2013:06:12:18:03:43:SJ cbx_stratixv 2013:06:12:18:03:43:SJ cbx_util_mgl 2013:06:12:18:03:43:SJ VERSION_END + + +-- Copyright (C) 1991-2013 Altera Corporation +-- Your use of Altera Corporation's design tools, logic functions +-- and other software and tools, and its AMPP partner logic +-- functions, and any output files from any of the foregoing +-- (including device programming or simulation files), and any +-- associated documentation or information are expressly subject +-- to the terms and conditions of the Altera Program License +-- Subscription Agreement, Altera MegaCore Function License +-- Agreement, or other applicable license agreement, including, +-- without limitation, that your use is for the sole purpose of +-- programming logic devices manufactured by Altera and sold by +-- Altera or its authorized distributors. Please refer to the +-- applicable agreement for further details. + + +FUNCTION cycloneive_ram_block (clk0, clk1, clr0, clr1, ena0, ena1, ena2, ena3, portaaddr[PORT_A_ADDRESS_WIDTH-1..0], portaaddrstall, portabyteenamasks[PORT_A_BYTE_ENABLE_MASK_WIDTH-1..0], portadatain[PORT_A_DATA_WIDTH-1..0], portare, portawe, portbaddr[PORT_B_ADDRESS_WIDTH-1..0], portbaddrstall, portbbyteenamasks[PORT_B_BYTE_ENABLE_MASK_WIDTH-1..0], portbdatain[PORT_B_DATA_WIDTH-1..0], portbre, portbwe) +WITH ( CLK0_CORE_CLOCK_ENABLE, CLK0_INPUT_CLOCK_ENABLE, CLK0_OUTPUT_CLOCK_ENABLE, CLK1_CORE_CLOCK_ENABLE, CLK1_INPUT_CLOCK_ENABLE, CLK1_OUTPUT_CLOCK_ENABLE, CONNECTIVITY_CHECKING, DATA_INTERLEAVE_OFFSET_IN_BITS, DATA_INTERLEAVE_WIDTH_IN_BITS, DONT_POWER_OPTIMIZE, INIT_FILE, INIT_FILE_LAYOUT, init_file_restructured, LOGICAL_RAM_NAME, mem_init0, mem_init1, mem_init2, mem_init3, mem_init4, MIXED_PORT_FEED_THROUGH_MODE, OPERATION_MODE, PORT_A_ADDRESS_CLEAR, PORT_A_ADDRESS_WIDTH = 1, PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, PORT_A_BYTE_SIZE, PORT_A_DATA_OUT_CLEAR, PORT_A_DATA_OUT_CLOCK, PORT_A_DATA_WIDTH = 1, PORT_A_FIRST_ADDRESS, PORT_A_FIRST_BIT_NUMBER, PORT_A_LAST_ADDRESS, PORT_A_LOGICAL_RAM_DEPTH, PORT_A_LOGICAL_RAM_WIDTH, PORT_A_READ_DURING_WRITE_MODE, PORT_B_ADDRESS_CLEAR, PORT_B_ADDRESS_CLOCK, PORT_B_ADDRESS_WIDTH = 1, PORT_B_BYTE_ENABLE_CLOCK, PORT_B_BYTE_ENABLE_MASK_WIDTH = 1, PORT_B_BYTE_SIZE, PORT_B_DATA_IN_CLOCK, PORT_B_DATA_OUT_CLEAR, PORT_B_DATA_OUT_CLOCK, PORT_B_DATA_WIDTH = 1, PORT_B_FIRST_ADDRESS, PORT_B_FIRST_BIT_NUMBER, PORT_B_LAST_ADDRESS, PORT_B_LOGICAL_RAM_DEPTH, PORT_B_LOGICAL_RAM_WIDTH, PORT_B_READ_DURING_WRITE_MODE, PORT_B_READ_ENABLE_CLOCK, PORT_B_WRITE_ENABLE_CLOCK, POWER_UP_UNINITIALIZED, RAM_BLOCK_TYPE, SAFE_WRITE, WIDTH_ECCSTATUS) +RETURNS ( portadataout[PORT_A_DATA_WIDTH-1..0], portbdataout[PORT_B_DATA_WIDTH-1..0]); + +--synthesis_resources = M9K 1 +OPTIONS ALTERA_INTERNAL_OPTION = "OPTIMIZE_POWER_DURING_SYNTHESIS=NORMAL_COMPILATION"; + +SUBDESIGN altsyncram_r1m1 +( + address_a[5..0] : input; + address_b[5..0] : input; + clock0 : input; + clock1 : input; + clocken1 : input; + data_a[7..0] : input; + q_b[7..0] : output; + wren_a : input; +) +VARIABLE + ram_block2a0 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "none", + CLK1_CORE_CLOCK_ENABLE = "ena1", + CLK1_INPUT_CLOCK_ENABLE = "ena1", + CONNECTIVITY_CHECKING = "OFF", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + MIXED_PORT_FEED_THROUGH_MODE = "dont_care", + OPERATION_MODE = "dual_port", + PORT_A_ADDRESS_WIDTH = 6, + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 0, + PORT_A_LAST_ADDRESS = 63, + PORT_A_LOGICAL_RAM_DEPTH = 64, + PORT_A_LOGICAL_RAM_WIDTH = 8, + PORT_B_ADDRESS_CLEAR = "none", + PORT_B_ADDRESS_CLOCK = "clock1", + PORT_B_ADDRESS_WIDTH = 6, + PORT_B_DATA_OUT_CLEAR = "none", + PORT_B_DATA_WIDTH = 1, + PORT_B_FIRST_ADDRESS = 0, + PORT_B_FIRST_BIT_NUMBER = 0, + PORT_B_LAST_ADDRESS = 63, + PORT_B_LOGICAL_RAM_DEPTH = 64, + PORT_B_LOGICAL_RAM_WIDTH = 8, + PORT_B_READ_ENABLE_CLOCK = "clock1", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block2a1 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "none", + CLK1_CORE_CLOCK_ENABLE = "ena1", + CLK1_INPUT_CLOCK_ENABLE = "ena1", + CONNECTIVITY_CHECKING = "OFF", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + MIXED_PORT_FEED_THROUGH_MODE = "dont_care", + OPERATION_MODE = "dual_port", + PORT_A_ADDRESS_WIDTH = 6, + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 1, + PORT_A_LAST_ADDRESS = 63, + PORT_A_LOGICAL_RAM_DEPTH = 64, + PORT_A_LOGICAL_RAM_WIDTH = 8, + PORT_B_ADDRESS_CLEAR = "none", + PORT_B_ADDRESS_CLOCK = "clock1", + PORT_B_ADDRESS_WIDTH = 6, + PORT_B_DATA_OUT_CLEAR = "none", + PORT_B_DATA_WIDTH = 1, + PORT_B_FIRST_ADDRESS = 0, + PORT_B_FIRST_BIT_NUMBER = 1, + PORT_B_LAST_ADDRESS = 63, + PORT_B_LOGICAL_RAM_DEPTH = 64, + PORT_B_LOGICAL_RAM_WIDTH = 8, + PORT_B_READ_ENABLE_CLOCK = "clock1", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block2a2 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "none", + CLK1_CORE_CLOCK_ENABLE = "ena1", + CLK1_INPUT_CLOCK_ENABLE = "ena1", + CONNECTIVITY_CHECKING = "OFF", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + MIXED_PORT_FEED_THROUGH_MODE = "dont_care", + OPERATION_MODE = "dual_port", + PORT_A_ADDRESS_WIDTH = 6, + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 2, + PORT_A_LAST_ADDRESS = 63, + PORT_A_LOGICAL_RAM_DEPTH = 64, + PORT_A_LOGICAL_RAM_WIDTH = 8, + PORT_B_ADDRESS_CLEAR = "none", + PORT_B_ADDRESS_CLOCK = "clock1", + PORT_B_ADDRESS_WIDTH = 6, + PORT_B_DATA_OUT_CLEAR = "none", + PORT_B_DATA_WIDTH = 1, + PORT_B_FIRST_ADDRESS = 0, + PORT_B_FIRST_BIT_NUMBER = 2, + PORT_B_LAST_ADDRESS = 63, + PORT_B_LOGICAL_RAM_DEPTH = 64, + PORT_B_LOGICAL_RAM_WIDTH = 8, + PORT_B_READ_ENABLE_CLOCK = "clock1", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block2a3 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "none", + CLK1_CORE_CLOCK_ENABLE = "ena1", + CLK1_INPUT_CLOCK_ENABLE = "ena1", + CONNECTIVITY_CHECKING = "OFF", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + MIXED_PORT_FEED_THROUGH_MODE = "dont_care", + OPERATION_MODE = "dual_port", + PORT_A_ADDRESS_WIDTH = 6, + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 3, + PORT_A_LAST_ADDRESS = 63, + PORT_A_LOGICAL_RAM_DEPTH = 64, + PORT_A_LOGICAL_RAM_WIDTH = 8, + PORT_B_ADDRESS_CLEAR = "none", + PORT_B_ADDRESS_CLOCK = "clock1", + PORT_B_ADDRESS_WIDTH = 6, + PORT_B_DATA_OUT_CLEAR = "none", + PORT_B_DATA_WIDTH = 1, + PORT_B_FIRST_ADDRESS = 0, + PORT_B_FIRST_BIT_NUMBER = 3, + PORT_B_LAST_ADDRESS = 63, + PORT_B_LOGICAL_RAM_DEPTH = 64, + PORT_B_LOGICAL_RAM_WIDTH = 8, + PORT_B_READ_ENABLE_CLOCK = "clock1", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block2a4 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "none", + CLK1_CORE_CLOCK_ENABLE = "ena1", + CLK1_INPUT_CLOCK_ENABLE = "ena1", + CONNECTIVITY_CHECKING = "OFF", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + MIXED_PORT_FEED_THROUGH_MODE = "dont_care", + OPERATION_MODE = "dual_port", + PORT_A_ADDRESS_WIDTH = 6, + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 4, + PORT_A_LAST_ADDRESS = 63, + PORT_A_LOGICAL_RAM_DEPTH = 64, + PORT_A_LOGICAL_RAM_WIDTH = 8, + PORT_B_ADDRESS_CLEAR = "none", + PORT_B_ADDRESS_CLOCK = "clock1", + PORT_B_ADDRESS_WIDTH = 6, + PORT_B_DATA_OUT_CLEAR = "none", + PORT_B_DATA_WIDTH = 1, + PORT_B_FIRST_ADDRESS = 0, + PORT_B_FIRST_BIT_NUMBER = 4, + PORT_B_LAST_ADDRESS = 63, + PORT_B_LOGICAL_RAM_DEPTH = 64, + PORT_B_LOGICAL_RAM_WIDTH = 8, + PORT_B_READ_ENABLE_CLOCK = "clock1", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block2a5 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "none", + CLK1_CORE_CLOCK_ENABLE = "ena1", + CLK1_INPUT_CLOCK_ENABLE = "ena1", + CONNECTIVITY_CHECKING = "OFF", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + MIXED_PORT_FEED_THROUGH_MODE = "dont_care", + OPERATION_MODE = "dual_port", + PORT_A_ADDRESS_WIDTH = 6, + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 5, + PORT_A_LAST_ADDRESS = 63, + PORT_A_LOGICAL_RAM_DEPTH = 64, + PORT_A_LOGICAL_RAM_WIDTH = 8, + PORT_B_ADDRESS_CLEAR = "none", + PORT_B_ADDRESS_CLOCK = "clock1", + PORT_B_ADDRESS_WIDTH = 6, + PORT_B_DATA_OUT_CLEAR = "none", + PORT_B_DATA_WIDTH = 1, + PORT_B_FIRST_ADDRESS = 0, + PORT_B_FIRST_BIT_NUMBER = 5, + PORT_B_LAST_ADDRESS = 63, + PORT_B_LOGICAL_RAM_DEPTH = 64, + PORT_B_LOGICAL_RAM_WIDTH = 8, + PORT_B_READ_ENABLE_CLOCK = "clock1", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block2a6 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "none", + CLK1_CORE_CLOCK_ENABLE = "ena1", + CLK1_INPUT_CLOCK_ENABLE = "ena1", + CONNECTIVITY_CHECKING = "OFF", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + MIXED_PORT_FEED_THROUGH_MODE = "dont_care", + OPERATION_MODE = "dual_port", + PORT_A_ADDRESS_WIDTH = 6, + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 6, + PORT_A_LAST_ADDRESS = 63, + PORT_A_LOGICAL_RAM_DEPTH = 64, + PORT_A_LOGICAL_RAM_WIDTH = 8, + PORT_B_ADDRESS_CLEAR = "none", + PORT_B_ADDRESS_CLOCK = "clock1", + PORT_B_ADDRESS_WIDTH = 6, + PORT_B_DATA_OUT_CLEAR = "none", + PORT_B_DATA_WIDTH = 1, + PORT_B_FIRST_ADDRESS = 0, + PORT_B_FIRST_BIT_NUMBER = 6, + PORT_B_LAST_ADDRESS = 63, + PORT_B_LOGICAL_RAM_DEPTH = 64, + PORT_B_LOGICAL_RAM_WIDTH = 8, + PORT_B_READ_ENABLE_CLOCK = "clock1", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block2a7 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "none", + CLK1_CORE_CLOCK_ENABLE = "ena1", + CLK1_INPUT_CLOCK_ENABLE = "ena1", + CONNECTIVITY_CHECKING = "OFF", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + MIXED_PORT_FEED_THROUGH_MODE = "dont_care", + OPERATION_MODE = "dual_port", + PORT_A_ADDRESS_WIDTH = 6, + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 7, + PORT_A_LAST_ADDRESS = 63, + PORT_A_LOGICAL_RAM_DEPTH = 64, + PORT_A_LOGICAL_RAM_WIDTH = 8, + PORT_B_ADDRESS_CLEAR = "none", + PORT_B_ADDRESS_CLOCK = "clock1", + PORT_B_ADDRESS_WIDTH = 6, + PORT_B_DATA_OUT_CLEAR = "none", + PORT_B_DATA_WIDTH = 1, + PORT_B_FIRST_ADDRESS = 0, + PORT_B_FIRST_BIT_NUMBER = 7, + PORT_B_LAST_ADDRESS = 63, + PORT_B_LOGICAL_RAM_DEPTH = 64, + PORT_B_LOGICAL_RAM_WIDTH = 8, + PORT_B_READ_ENABLE_CLOCK = "clock1", + RAM_BLOCK_TYPE = "AUTO" + ); + address_a_wire[5..0] : WIRE; + address_b_wire[5..0] : WIRE; + +BEGIN + ram_block2a[7..0].clk0 = clock0; + ram_block2a[7..0].clk1 = clock1; + ram_block2a[7..0].ena0 = wren_a; + ram_block2a[7..0].ena1 = clocken1; + ram_block2a[7..0].portaaddr[] = ( address_a_wire[5..0]); + ram_block2a[0].portadatain[] = ( data_a[0..0]); + ram_block2a[1].portadatain[] = ( data_a[1..1]); + ram_block2a[2].portadatain[] = ( data_a[2..2]); + ram_block2a[3].portadatain[] = ( data_a[3..3]); + ram_block2a[4].portadatain[] = ( data_a[4..4]); + ram_block2a[5].portadatain[] = ( data_a[5..5]); + ram_block2a[6].portadatain[] = ( data_a[6..6]); + ram_block2a[7].portadatain[] = ( data_a[7..7]); + ram_block2a[7..0].portawe = wren_a; + ram_block2a[7..0].portbaddr[] = ( address_b_wire[5..0]); + ram_block2a[7..0].portbre = B"11111111"; + address_a_wire[] = address_a[]; + address_b_wire[] = address_b[]; + q_b[] = ( ram_block2a[7..0].portbdataout[0..0]); +END; +--VALID FILE diff --git a/db/altsyncram_sad1.tdf b/db/altsyncram_sad1.tdf new file mode 100644 index 0000000..a692a4f --- /dev/null +++ b/db/altsyncram_sad1.tdf @@ -0,0 +1,821 @@ +--altsyncram BYTE_SIZE=8 CBX_DECLARE_ALL_CONNECTED_PORTS="OFF" CYCLONEII_M4K_COMPATIBILITY="ON" DEVICE_FAMILY="Cyclone IV E" INIT_FILE="nios_system_onchip_memory.hex" LOW_POWER_MODE="AUTO" MAXIMUM_DEPTH=1024 NUMWORDS_A=1024 OPERATION_MODE="SINGLE_PORT" OUTDATA_REG_A="UNREGISTERED" RAM_BLOCK_TYPE="AUTO" READ_DURING_WRITE_MODE_MIXED_PORTS="DONT_CARE" WIDTH_A=32 WIDTH_BYTEENA_A=4 WIDTHAD_A=10 address_a byteena_a clock0 clocken0 data_a q_a wren_a CARRY_CHAIN="MANUAL" CARRY_CHAIN_LENGTH=48 +--VERSION_BEGIN 13.0 cbx_altsyncram 2013:06:12:18:03:43:SJ cbx_cycloneii 2013:06:12:18:03:43:SJ cbx_lpm_add_sub 2013:06:12:18:03:43:SJ cbx_lpm_compare 2013:06:12:18:03:43:SJ cbx_lpm_decode 2013:06:12:18:03:43:SJ cbx_lpm_mux 2013:06:12:18:03:43:SJ cbx_mgl 2013:06:12:18:05:10:SJ cbx_stratix 2013:06:12:18:03:43:SJ cbx_stratixii 2013:06:12:18:03:43:SJ cbx_stratixiii 2013:06:12:18:03:43:SJ cbx_stratixv 2013:06:12:18:03:43:SJ cbx_util_mgl 2013:06:12:18:03:43:SJ VERSION_END + + +-- Copyright (C) 1991-2013 Altera Corporation +-- Your use of Altera Corporation's design tools, logic functions +-- and other software and tools, and its AMPP partner logic +-- functions, and any output files from any of the foregoing +-- (including device programming or simulation files), and any +-- associated documentation or information are expressly subject +-- to the terms and conditions of the Altera Program License +-- Subscription Agreement, Altera MegaCore Function License +-- Agreement, or other applicable license agreement, including, +-- without limitation, that your use is for the sole purpose of +-- programming logic devices manufactured by Altera and sold by +-- Altera or its authorized distributors. Please refer to the +-- applicable agreement for further details. + + +FUNCTION cycloneive_ram_block (clk0, clk1, clr0, clr1, ena0, ena1, ena2, ena3, portaaddr[PORT_A_ADDRESS_WIDTH-1..0], portaaddrstall, portabyteenamasks[PORT_A_BYTE_ENABLE_MASK_WIDTH-1..0], portadatain[PORT_A_DATA_WIDTH-1..0], portare, portawe, portbaddr[PORT_B_ADDRESS_WIDTH-1..0], portbaddrstall, portbbyteenamasks[PORT_B_BYTE_ENABLE_MASK_WIDTH-1..0], portbdatain[PORT_B_DATA_WIDTH-1..0], portbre, portbwe) +WITH ( CLK0_CORE_CLOCK_ENABLE, CLK0_INPUT_CLOCK_ENABLE, CLK0_OUTPUT_CLOCK_ENABLE, CLK1_CORE_CLOCK_ENABLE, CLK1_INPUT_CLOCK_ENABLE, CLK1_OUTPUT_CLOCK_ENABLE, CONNECTIVITY_CHECKING, DATA_INTERLEAVE_OFFSET_IN_BITS, DATA_INTERLEAVE_WIDTH_IN_BITS, DONT_POWER_OPTIMIZE, INIT_FILE, INIT_FILE_LAYOUT, init_file_restructured, LOGICAL_RAM_NAME, mem_init0, mem_init1, mem_init2, mem_init3, mem_init4, MIXED_PORT_FEED_THROUGH_MODE, OPERATION_MODE, PORT_A_ADDRESS_CLEAR, PORT_A_ADDRESS_WIDTH = 1, PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, PORT_A_BYTE_SIZE, PORT_A_DATA_OUT_CLEAR, PORT_A_DATA_OUT_CLOCK, PORT_A_DATA_WIDTH = 1, PORT_A_FIRST_ADDRESS, PORT_A_FIRST_BIT_NUMBER, PORT_A_LAST_ADDRESS, PORT_A_LOGICAL_RAM_DEPTH, PORT_A_LOGICAL_RAM_WIDTH, PORT_A_READ_DURING_WRITE_MODE, PORT_B_ADDRESS_CLEAR, PORT_B_ADDRESS_CLOCK, PORT_B_ADDRESS_WIDTH = 1, PORT_B_BYTE_ENABLE_CLOCK, PORT_B_BYTE_ENABLE_MASK_WIDTH = 1, PORT_B_BYTE_SIZE, PORT_B_DATA_IN_CLOCK, PORT_B_DATA_OUT_CLEAR, PORT_B_DATA_OUT_CLOCK, PORT_B_DATA_WIDTH = 1, PORT_B_FIRST_ADDRESS, PORT_B_FIRST_BIT_NUMBER, PORT_B_LAST_ADDRESS, PORT_B_LOGICAL_RAM_DEPTH, PORT_B_LOGICAL_RAM_WIDTH, PORT_B_READ_DURING_WRITE_MODE, PORT_B_READ_ENABLE_CLOCK, PORT_B_WRITE_ENABLE_CLOCK, POWER_UP_UNINITIALIZED, RAM_BLOCK_TYPE, SAFE_WRITE, WIDTH_ECCSTATUS) +RETURNS ( portadataout[PORT_A_DATA_WIDTH-1..0], portbdataout[PORT_B_DATA_WIDTH-1..0]); + +--synthesis_resources = M9K 4 +OPTIONS ALTERA_INTERNAL_OPTION = "OPTIMIZE_POWER_DURING_SYNTHESIS=NORMAL_COMPILATION"; + +SUBDESIGN altsyncram_sad1 +( + address_a[9..0] : input; + byteena_a[3..0] : input; + clock0 : input; + clocken0 : input; + data_a[31..0] : input; + q_a[31..0] : output; + wren_a : input; +) +VARIABLE + ram_block1a0 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 10, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 0, + PORT_A_LAST_ADDRESS = 1023, + PORT_A_LOGICAL_RAM_DEPTH = 1024, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a1 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 10, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 1, + PORT_A_LAST_ADDRESS = 1023, + PORT_A_LOGICAL_RAM_DEPTH = 1024, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a2 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 10, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 2, + PORT_A_LAST_ADDRESS = 1023, + PORT_A_LOGICAL_RAM_DEPTH = 1024, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a3 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 10, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 3, + PORT_A_LAST_ADDRESS = 1023, + PORT_A_LOGICAL_RAM_DEPTH = 1024, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a4 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 10, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 4, + PORT_A_LAST_ADDRESS = 1023, + PORT_A_LOGICAL_RAM_DEPTH = 1024, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a5 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 10, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 5, + PORT_A_LAST_ADDRESS = 1023, + PORT_A_LOGICAL_RAM_DEPTH = 1024, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a6 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 10, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 6, + PORT_A_LAST_ADDRESS = 1023, + PORT_A_LOGICAL_RAM_DEPTH = 1024, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a7 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 10, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 7, + PORT_A_LAST_ADDRESS = 1023, + PORT_A_LOGICAL_RAM_DEPTH = 1024, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a8 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 10, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 8, + PORT_A_LAST_ADDRESS = 1023, + PORT_A_LOGICAL_RAM_DEPTH = 1024, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a9 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 10, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 9, + PORT_A_LAST_ADDRESS = 1023, + PORT_A_LOGICAL_RAM_DEPTH = 1024, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a10 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 10, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 10, + PORT_A_LAST_ADDRESS = 1023, + PORT_A_LOGICAL_RAM_DEPTH = 1024, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a11 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 10, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 11, + PORT_A_LAST_ADDRESS = 1023, + PORT_A_LOGICAL_RAM_DEPTH = 1024, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a12 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 10, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 12, + PORT_A_LAST_ADDRESS = 1023, + PORT_A_LOGICAL_RAM_DEPTH = 1024, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a13 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 10, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 13, + PORT_A_LAST_ADDRESS = 1023, + PORT_A_LOGICAL_RAM_DEPTH = 1024, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a14 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 10, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 14, + PORT_A_LAST_ADDRESS = 1023, + PORT_A_LOGICAL_RAM_DEPTH = 1024, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a15 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 10, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 15, + PORT_A_LAST_ADDRESS = 1023, + PORT_A_LOGICAL_RAM_DEPTH = 1024, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a16 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 10, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 16, + PORT_A_LAST_ADDRESS = 1023, + PORT_A_LOGICAL_RAM_DEPTH = 1024, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a17 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 10, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 17, + PORT_A_LAST_ADDRESS = 1023, + PORT_A_LOGICAL_RAM_DEPTH = 1024, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a18 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 10, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 18, + PORT_A_LAST_ADDRESS = 1023, + PORT_A_LOGICAL_RAM_DEPTH = 1024, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a19 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 10, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 19, + PORT_A_LAST_ADDRESS = 1023, + PORT_A_LOGICAL_RAM_DEPTH = 1024, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a20 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 10, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 20, + PORT_A_LAST_ADDRESS = 1023, + PORT_A_LOGICAL_RAM_DEPTH = 1024, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a21 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 10, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 21, + PORT_A_LAST_ADDRESS = 1023, + PORT_A_LOGICAL_RAM_DEPTH = 1024, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a22 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 10, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 22, + PORT_A_LAST_ADDRESS = 1023, + PORT_A_LOGICAL_RAM_DEPTH = 1024, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a23 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 10, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 23, + PORT_A_LAST_ADDRESS = 1023, + PORT_A_LOGICAL_RAM_DEPTH = 1024, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a24 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 10, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 24, + PORT_A_LAST_ADDRESS = 1023, + PORT_A_LOGICAL_RAM_DEPTH = 1024, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a25 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 10, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 25, + PORT_A_LAST_ADDRESS = 1023, + PORT_A_LOGICAL_RAM_DEPTH = 1024, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a26 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 10, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 26, + PORT_A_LAST_ADDRESS = 1023, + PORT_A_LOGICAL_RAM_DEPTH = 1024, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a27 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 10, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 27, + PORT_A_LAST_ADDRESS = 1023, + PORT_A_LOGICAL_RAM_DEPTH = 1024, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a28 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 10, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 28, + PORT_A_LAST_ADDRESS = 1023, + PORT_A_LOGICAL_RAM_DEPTH = 1024, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a29 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 10, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 29, + PORT_A_LAST_ADDRESS = 1023, + PORT_A_LOGICAL_RAM_DEPTH = 1024, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a30 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 10, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 30, + PORT_A_LAST_ADDRESS = 1023, + PORT_A_LOGICAL_RAM_DEPTH = 1024, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + ram_block1a31 : cycloneive_ram_block + WITH ( + CLK0_CORE_CLOCK_ENABLE = "ena0", + CLK0_INPUT_CLOCK_ENABLE = "ena0", + CONNECTIVITY_CHECKING = "OFF", + INIT_FILE = "nios_system_onchip_memory.hex", + INIT_FILE_LAYOUT = "port_a", + LOGICAL_RAM_NAME = "ALTSYNCRAM", + OPERATION_MODE = "single_port", + PORT_A_ADDRESS_WIDTH = 10, + PORT_A_BYTE_ENABLE_MASK_WIDTH = 1, + PORT_A_BYTE_SIZE = 1, + PORT_A_DATA_OUT_CLEAR = "none", + PORT_A_DATA_OUT_CLOCK = "none", + PORT_A_DATA_WIDTH = 1, + PORT_A_FIRST_ADDRESS = 0, + PORT_A_FIRST_BIT_NUMBER = 31, + PORT_A_LAST_ADDRESS = 1023, + PORT_A_LOGICAL_RAM_DEPTH = 1024, + PORT_A_LOGICAL_RAM_WIDTH = 32, + PORT_A_READ_DURING_WRITE_MODE = "new_data_no_nbe_read", + RAM_BLOCK_TYPE = "AUTO" + ); + address_a_wire[9..0] : WIRE; + +BEGIN + ram_block1a[31..0].clk0 = clock0; + ram_block1a[31..0].ena0 = clocken0; + ram_block1a[31..0].portaaddr[] = ( address_a_wire[9..0]); + ram_block1a[7..0].portabyteenamasks[] = ( byteena_a[0..0]); + ram_block1a[15..8].portabyteenamasks[] = ( byteena_a[1..1]); + ram_block1a[23..16].portabyteenamasks[] = ( byteena_a[2..2]); + ram_block1a[31..24].portabyteenamasks[] = ( byteena_a[3..3]); + ram_block1a[0].portadatain[] = ( data_a[0..0]); + ram_block1a[1].portadatain[] = ( data_a[1..1]); + ram_block1a[2].portadatain[] = ( data_a[2..2]); + ram_block1a[3].portadatain[] = ( data_a[3..3]); + ram_block1a[4].portadatain[] = ( data_a[4..4]); + ram_block1a[5].portadatain[] = ( data_a[5..5]); + ram_block1a[6].portadatain[] = ( data_a[6..6]); + ram_block1a[7].portadatain[] = ( data_a[7..7]); + ram_block1a[8].portadatain[] = ( data_a[8..8]); + ram_block1a[9].portadatain[] = ( data_a[9..9]); + ram_block1a[10].portadatain[] = ( data_a[10..10]); + ram_block1a[11].portadatain[] = ( data_a[11..11]); + ram_block1a[12].portadatain[] = ( data_a[12..12]); + ram_block1a[13].portadatain[] = ( data_a[13..13]); + ram_block1a[14].portadatain[] = ( data_a[14..14]); + ram_block1a[15].portadatain[] = ( data_a[15..15]); + ram_block1a[16].portadatain[] = ( data_a[16..16]); + ram_block1a[17].portadatain[] = ( data_a[17..17]); + ram_block1a[18].portadatain[] = ( data_a[18..18]); + ram_block1a[19].portadatain[] = ( data_a[19..19]); + ram_block1a[20].portadatain[] = ( data_a[20..20]); + ram_block1a[21].portadatain[] = ( data_a[21..21]); + ram_block1a[22].portadatain[] = ( data_a[22..22]); + ram_block1a[23].portadatain[] = ( data_a[23..23]); + ram_block1a[24].portadatain[] = ( data_a[24..24]); + ram_block1a[25].portadatain[] = ( data_a[25..25]); + ram_block1a[26].portadatain[] = ( data_a[26..26]); + ram_block1a[27].portadatain[] = ( data_a[27..27]); + ram_block1a[28].portadatain[] = ( data_a[28..28]); + ram_block1a[29].portadatain[] = ( data_a[29..29]); + ram_block1a[30].portadatain[] = ( data_a[30..30]); + ram_block1a[31].portadatain[] = ( data_a[31..31]); + ram_block1a[31..0].portare = B"11111111111111111111111111111111"; + ram_block1a[31..0].portawe = wren_a; + address_a_wire[] = address_a[]; + q_a[] = ( ram_block1a[31..0].portadataout[0..0]); +END; +--VALID FILE diff --git a/db/cntr_1ob.tdf b/db/cntr_1ob.tdf new file mode 100644 index 0000000..48889a0 --- /dev/null +++ b/db/cntr_1ob.tdf @@ -0,0 +1,97 @@ +--lpm_counter DEVICE_FAMILY="Cyclone IV E" lpm_direction="UP" lpm_port_updown="PORT_UNUSED" lpm_width=6 aclr clock cnt_en q sclr +--VERSION_BEGIN 13.0 cbx_cycloneii 2013:06:12:18:03:43:SJ cbx_lpm_add_sub 2013:06:12:18:03:43:SJ cbx_lpm_compare 2013:06:12:18:03:43:SJ cbx_lpm_counter 2013:06:12:18:03:43:SJ cbx_lpm_decode 2013:06:12:18:03:43:SJ cbx_mgl 2013:06:12:18:05:10:SJ cbx_stratix 2013:06:12:18:03:43:SJ cbx_stratixii 2013:06:12:18:03:43:SJ VERSION_END + + +-- Copyright (C) 1991-2013 Altera Corporation +-- Your use of Altera Corporation's design tools, logic functions +-- and other software and tools, and its AMPP partner logic +-- functions, and any output files from any of the foregoing +-- (including device programming or simulation files), and any +-- associated documentation or information are expressly subject +-- to the terms and conditions of the Altera Program License +-- Subscription Agreement, Altera MegaCore Function License +-- Agreement, or other applicable license agreement, including, +-- without limitation, that your use is for the sole purpose of +-- programming logic devices manufactured by Altera and sold by +-- Altera or its authorized distributors. Please refer to the +-- applicable agreement for further details. + + +FUNCTION cycloneive_lcell_comb (cin, dataa, datab, datac, datad) +WITH ( DONT_TOUCH, LUT_MASK, SUM_LUTC_INPUT) +RETURNS ( combout, cout); + +--synthesis_resources = lut 6 reg 6 +SUBDESIGN cntr_1ob +( + aclr : input; + clock : input; + cnt_en : input; + q[5..0] : output; + sclr : input; +) +VARIABLE + counter_comb_bita0 : cycloneive_lcell_comb + WITH ( + LUT_MASK = "5A90", + SUM_LUTC_INPUT = "cin" + ); + counter_comb_bita1 : cycloneive_lcell_comb + WITH ( + LUT_MASK = "5A90", + SUM_LUTC_INPUT = "cin" + ); + counter_comb_bita2 : cycloneive_lcell_comb + WITH ( + LUT_MASK = "5A90", + SUM_LUTC_INPUT = "cin" + ); + counter_comb_bita3 : cycloneive_lcell_comb + WITH ( + LUT_MASK = "5A90", + SUM_LUTC_INPUT = "cin" + ); + counter_comb_bita4 : cycloneive_lcell_comb + WITH ( + LUT_MASK = "5A90", + SUM_LUTC_INPUT = "cin" + ); + counter_comb_bita5 : cycloneive_lcell_comb + WITH ( + LUT_MASK = "5A90", + SUM_LUTC_INPUT = "cin" + ); + counter_reg_bit[5..0] : dffeas; + aclr_actual : WIRE; + clk_en : NODE; + data[5..0] : NODE; + external_cin : WIRE; + s_val[5..0] : WIRE; + safe_q[5..0] : WIRE; + sload : NODE; + sset : NODE; + updown_dir : WIRE; + +BEGIN + counter_comb_bita[5..0].cin = ( counter_comb_bita[4..0].cout, external_cin); + counter_comb_bita[5..0].dataa = ( counter_reg_bit[5..0].q); + counter_comb_bita[5..0].datab = ( updown_dir, updown_dir, updown_dir, updown_dir, updown_dir, updown_dir); + counter_comb_bita[5..0].datad = ( B"1", B"1", B"1", B"1", B"1", B"1"); + counter_reg_bit[].asdata = ((! sclr) & ((sset & s_val[]) # ((! sset) & data[]))); + counter_reg_bit[].clk = clock; + counter_reg_bit[].clrn = (! aclr_actual); + counter_reg_bit[].d = ( counter_comb_bita[5..0].combout); + counter_reg_bit[].ena = (clk_en & (((sclr # sset) # sload) # cnt_en)); + counter_reg_bit[].sload = ((sclr # sset) # sload); + aclr_actual = aclr; + clk_en = VCC; + data[] = GND; + external_cin = B"1"; + q[] = safe_q[]; + s_val[] = B"111111"; + safe_q[] = counter_reg_bit[].q; + sload = GND; + sset = GND; + updown_dir = B"1"; +END; +--VALID FILE diff --git a/db/cntr_do7.tdf b/db/cntr_do7.tdf new file mode 100644 index 0000000..f49ff1c --- /dev/null +++ b/db/cntr_do7.tdf @@ -0,0 +1,98 @@ +--lpm_counter DEVICE_FAMILY="Cyclone IV E" lpm_width=6 aclr clock cnt_en q sclr updown +--VERSION_BEGIN 13.0 cbx_cycloneii 2013:06:12:18:03:43:SJ cbx_lpm_add_sub 2013:06:12:18:03:43:SJ cbx_lpm_compare 2013:06:12:18:03:43:SJ cbx_lpm_counter 2013:06:12:18:03:43:SJ cbx_lpm_decode 2013:06:12:18:03:43:SJ cbx_mgl 2013:06:12:18:05:10:SJ cbx_stratix 2013:06:12:18:03:43:SJ cbx_stratixii 2013:06:12:18:03:43:SJ VERSION_END + + +-- Copyright (C) 1991-2013 Altera Corporation +-- Your use of Altera Corporation's design tools, logic functions +-- and other software and tools, and its AMPP partner logic +-- functions, and any output files from any of the foregoing +-- (including device programming or simulation files), and any +-- associated documentation or information are expressly subject +-- to the terms and conditions of the Altera Program License +-- Subscription Agreement, Altera MegaCore Function License +-- Agreement, or other applicable license agreement, including, +-- without limitation, that your use is for the sole purpose of +-- programming logic devices manufactured by Altera and sold by +-- Altera or its authorized distributors. Please refer to the +-- applicable agreement for further details. + + +FUNCTION cycloneive_lcell_comb (cin, dataa, datab, datac, datad) +WITH ( DONT_TOUCH, LUT_MASK, SUM_LUTC_INPUT) +RETURNS ( combout, cout); + +--synthesis_resources = lut 6 reg 6 +SUBDESIGN cntr_do7 +( + aclr : input; + clock : input; + cnt_en : input; + q[5..0] : output; + sclr : input; + updown : input; +) +VARIABLE + counter_comb_bita0 : cycloneive_lcell_comb + WITH ( + LUT_MASK = "5A90", + SUM_LUTC_INPUT = "cin" + ); + counter_comb_bita1 : cycloneive_lcell_comb + WITH ( + LUT_MASK = "5A90", + SUM_LUTC_INPUT = "cin" + ); + counter_comb_bita2 : cycloneive_lcell_comb + WITH ( + LUT_MASK = "5A90", + SUM_LUTC_INPUT = "cin" + ); + counter_comb_bita3 : cycloneive_lcell_comb + WITH ( + LUT_MASK = "5A90", + SUM_LUTC_INPUT = "cin" + ); + counter_comb_bita4 : cycloneive_lcell_comb + WITH ( + LUT_MASK = "5A90", + SUM_LUTC_INPUT = "cin" + ); + counter_comb_bita5 : cycloneive_lcell_comb + WITH ( + LUT_MASK = "5A90", + SUM_LUTC_INPUT = "cin" + ); + counter_reg_bit[5..0] : dffeas; + aclr_actual : WIRE; + clk_en : NODE; + data[5..0] : NODE; + external_cin : WIRE; + s_val[5..0] : WIRE; + safe_q[5..0] : WIRE; + sload : NODE; + sset : NODE; + updown_dir : WIRE; + +BEGIN + counter_comb_bita[5..0].cin = ( counter_comb_bita[4..0].cout, external_cin); + counter_comb_bita[5..0].dataa = ( counter_reg_bit[5..0].q); + counter_comb_bita[5..0].datab = ( updown_dir, updown_dir, updown_dir, updown_dir, updown_dir, updown_dir); + counter_comb_bita[5..0].datad = ( B"1", B"1", B"1", B"1", B"1", B"1"); + counter_reg_bit[].asdata = ((! sclr) & ((sset & s_val[]) # ((! sset) & data[]))); + counter_reg_bit[].clk = clock; + counter_reg_bit[].clrn = (! aclr_actual); + counter_reg_bit[].d = ( counter_comb_bita[5..0].combout); + counter_reg_bit[].ena = (clk_en & (((sclr # sset) # sload) # cnt_en)); + counter_reg_bit[].sload = ((sclr # sset) # sload); + aclr_actual = aclr; + clk_en = VCC; + data[] = GND; + external_cin = B"1"; + q[] = safe_q[]; + s_val[] = B"111111"; + safe_q[] = counter_reg_bit[].q; + sload = GND; + sset = GND; + updown_dir = updown; +END; +--VALID FILE diff --git a/db/decode_qsa.tdf b/db/decode_qsa.tdf new file mode 100644 index 0000000..01e442e --- /dev/null +++ b/db/decode_qsa.tdf @@ -0,0 +1,57 @@ +--lpm_decode CBX_DECLARE_ALL_CONNECTED_PORTS="OFF" DEVICE_FAMILY="Cyclone IV E" LPM_DECODES=7 LPM_WIDTH=3 data enable eq +--VERSION_BEGIN 13.0 cbx_cycloneii 2013:06:12:18:03:43:SJ cbx_lpm_add_sub 2013:06:12:18:03:43:SJ cbx_lpm_compare 2013:06:12:18:03:43:SJ cbx_lpm_decode 2013:06:12:18:03:43:SJ cbx_mgl 2013:06:12:18:05:10:SJ cbx_stratix 2013:06:12:18:03:43:SJ cbx_stratixii 2013:06:12:18:03:43:SJ VERSION_END + + +-- Copyright (C) 1991-2013 Altera Corporation +-- Your use of Altera Corporation's design tools, logic functions +-- and other software and tools, and its AMPP partner logic +-- functions, and any output files from any of the foregoing +-- (including device programming or simulation files), and any +-- associated documentation or information are expressly subject +-- to the terms and conditions of the Altera Program License +-- Subscription Agreement, Altera MegaCore Function License +-- Agreement, or other applicable license agreement, including, +-- without limitation, that your use is for the sole purpose of +-- programming logic devices manufactured by Altera and sold by +-- Altera or its authorized distributors. Please refer to the +-- applicable agreement for further details. + + + +--synthesis_resources = lut 8 +SUBDESIGN decode_qsa +( + data[2..0] : input; + enable : input; + eq[6..0] : output; +) +VARIABLE + data_wire[2..0] : WIRE; + enable_wire : WIRE; + eq_node[6..0] : WIRE; + eq_wire[7..0] : WIRE; + w_anode1849w[3..0] : WIRE; + w_anode1866w[3..0] : WIRE; + w_anode1876w[3..0] : WIRE; + w_anode1886w[3..0] : WIRE; + w_anode1896w[3..0] : WIRE; + w_anode1906w[3..0] : WIRE; + w_anode1916w[3..0] : WIRE; + w_anode1926w[3..0] : WIRE; + +BEGIN + data_wire[] = data[]; + enable_wire = enable; + eq[] = eq_node[]; + eq_node[6..0] = eq_wire[6..0]; + eq_wire[] = ( w_anode1926w[3..3], w_anode1916w[3..3], w_anode1906w[3..3], w_anode1896w[3..3], w_anode1886w[3..3], w_anode1876w[3..3], w_anode1866w[3..3], w_anode1849w[3..3]); + w_anode1849w[] = ( (w_anode1849w[2..2] & (! data_wire[2..2])), (w_anode1849w[1..1] & (! data_wire[1..1])), (w_anode1849w[0..0] & (! data_wire[0..0])), enable_wire); + w_anode1866w[] = ( (w_anode1866w[2..2] & (! data_wire[2..2])), (w_anode1866w[1..1] & (! data_wire[1..1])), (w_anode1866w[0..0] & data_wire[0..0]), enable_wire); + w_anode1876w[] = ( (w_anode1876w[2..2] & (! data_wire[2..2])), (w_anode1876w[1..1] & data_wire[1..1]), (w_anode1876w[0..0] & (! data_wire[0..0])), enable_wire); + w_anode1886w[] = ( (w_anode1886w[2..2] & (! data_wire[2..2])), (w_anode1886w[1..1] & data_wire[1..1]), (w_anode1886w[0..0] & data_wire[0..0]), enable_wire); + w_anode1896w[] = ( (w_anode1896w[2..2] & data_wire[2..2]), (w_anode1896w[1..1] & (! data_wire[1..1])), (w_anode1896w[0..0] & (! data_wire[0..0])), enable_wire); + w_anode1906w[] = ( (w_anode1906w[2..2] & data_wire[2..2]), (w_anode1906w[1..1] & (! data_wire[1..1])), (w_anode1906w[0..0] & data_wire[0..0]), enable_wire); + w_anode1916w[] = ( (w_anode1916w[2..2] & data_wire[2..2]), (w_anode1916w[1..1] & data_wire[1..1]), (w_anode1916w[0..0] & (! data_wire[0..0])), enable_wire); + w_anode1926w[] = ( (w_anode1926w[2..2] & data_wire[2..2]), (w_anode1926w[1..1] & data_wire[1..1]), (w_anode1926w[0..0] & data_wire[0..0]), enable_wire); +END; +--VALID FILE diff --git a/db/dpram_nl21.tdf b/db/dpram_nl21.tdf new file mode 100644 index 0000000..b9d037d --- /dev/null +++ b/db/dpram_nl21.tdf @@ -0,0 +1,48 @@ +--altdpram DEVICE_FAMILY="Cyclone IV E" lpm_hint="RAM_BLOCK_TYPE=AUTO" RAM_BLOCK_TYPE="AUTO" RDCONTROL_ACLR="OFF" RDCONTROL_REG="UNREGISTERED" SUPPRESS_MEMORY_CONVERSION_WARNINGS="ON" USE_EAB="ON" WIDTH=8 WIDTHAD=6 data inclock outclock outclocken q rdaddress wraddress wren CARRY_CHAIN="MANUAL" CARRY_CHAIN_LENGTH=48 CYCLONEII_M4K_COMPATIBILITY="ON" LOW_POWER_MODE="AUTO" +--VERSION_BEGIN 13.0 cbx_altdpram 2013:06:12:18:03:43:SJ cbx_altsyncram 2013:06:12:18:03:43:SJ cbx_cycloneii 2013:06:12:18:03:43:SJ cbx_lpm_add_sub 2013:06:12:18:03:43:SJ cbx_lpm_compare 2013:06:12:18:03:43:SJ cbx_lpm_decode 2013:06:12:18:03:43:SJ cbx_lpm_mux 2013:06:12:18:03:43:SJ cbx_mgl 2013:06:12:18:05:10:SJ cbx_stratix 2013:06:12:18:03:43:SJ cbx_stratixii 2013:06:12:18:03:43:SJ cbx_stratixiii 2013:06:12:18:03:43:SJ cbx_stratixv 2013:06:12:18:03:43:SJ cbx_util_mgl 2013:06:12:18:03:43:SJ VERSION_END + + +-- Copyright (C) 1991-2013 Altera Corporation +-- Your use of Altera Corporation's design tools, logic functions +-- and other software and tools, and its AMPP partner logic +-- functions, and any output files from any of the foregoing +-- (including device programming or simulation files), and any +-- associated documentation or information are expressly subject +-- to the terms and conditions of the Altera Program License +-- Subscription Agreement, Altera MegaCore Function License +-- Agreement, or other applicable license agreement, including, +-- without limitation, that your use is for the sole purpose of +-- programming logic devices manufactured by Altera and sold by +-- Altera or its authorized distributors. Please refer to the +-- applicable agreement for further details. + + +FUNCTION altsyncram_r1m1 (address_a[5..0], address_b[5..0], clock0, clock1, clocken1, data_a[7..0], wren_a) +RETURNS ( q_b[7..0]); + +--synthesis_resources = M9K 1 +SUBDESIGN dpram_nl21 +( + data[7..0] : input; + inclock : input; + outclock : input; + outclocken : input; + q[7..0] : output; + rdaddress[5..0] : input; + wraddress[5..0] : input; + wren : input; +) +VARIABLE + altsyncram1 : altsyncram_r1m1; + +BEGIN + altsyncram1.address_a[] = wraddress[]; + altsyncram1.address_b[] = rdaddress[]; + altsyncram1.clock0 = inclock; + altsyncram1.clock1 = outclock; + altsyncram1.clocken1 = outclocken; + altsyncram1.data_a[] = data[]; + altsyncram1.wren_a = wren; + q[] = altsyncram1.q_b[]; +END; +--VALID FILE diff --git a/db/ip/nios_system/nios_system.bsf b/db/ip/nios_system/nios_system.bsf new file mode 100644 index 0000000..b495623 --- /dev/null +++ b/db/ip/nios_system/nios_system.bsf @@ -0,0 +1,248 @@ +/* +WARNING: Do NOT edit the input and output ports in this file in a text +editor if you plan to continue editing the block that represents it in +the Block Editor! File corruption is VERY likely to occur. +*/ +/* +Copyright (C) 1991-2013 Altera Corporation +Your use of Altera Corporation's design tools, logic functions +and other software and tools, and its AMPP partner logic +functions, and any output files from any of the foregoing +(including device programming or simulation files), and any +associated documentation or information are expressly subject +to the terms and conditions of the Altera Program License +Subscription Agreement, Altera MegaCore Function License +Agreement, or other applicable license agreement, including, +without limitation, that your use is for the sole purpose of +programming logic devices manufactured by Altera and sold by +Altera or its authorized distributors. Please refer to the +applicable agreement for further details. +*/ +(header "symbol" (version "1.1")) +(symbol + (rect 0 0 384 792) + (text "nios_system" (rect 155 -1 206 11)(font "Arial" (font_size 10))) + (text "inst" (rect 8 776 20 788)(font "Arial" )) + (port + (pt 0 72) + (input) + (text "clk_clk" (rect 0 0 27 12)(font "Arial" (font_size 8))) + (text "clk_clk" (rect 4 61 46 72)(font "Arial" (font_size 8))) + (line (pt 0 72)(pt 160 72)(line_width 1)) + ) + (port + (pt 0 152) + (input) + (text "reset_reset_n" (rect 0 0 56 12)(font "Arial" (font_size 8))) + (text "reset_reset_n" (rect 4 141 82 152)(font "Arial" (font_size 8))) + (line (pt 0 152)(pt 160 152)(line_width 1)) + ) + (port + (pt 0 232) + (input) + (text "switches_export[17..0]" (rect 0 0 87 12)(font "Arial" (font_size 8))) + (text "switches_export[17..0]" (rect 4 221 136 232)(font "Arial" (font_size 8))) + (line (pt 0 232)(pt 160 232)(line_width 3)) + ) + (port + (pt 0 272) + (input) + (text "push_switches_export[2..0]" (rect 0 0 108 12)(font "Arial" (font_size 8))) + (text "push_switches_export[2..0]" (rect 4 261 160 272)(font "Arial" (font_size 8))) + (line (pt 0 272)(pt 160 272)(line_width 3)) + ) + (port + (pt 0 112) + (output) + (text "leds_export[7..0]" (rect 0 0 66 12)(font "Arial" (font_size 8))) + (text "leds_export[7..0]" (rect 4 101 106 112)(font "Arial" (font_size 8))) + (line (pt 0 112)(pt 160 112)(line_width 3)) + ) + (port + (pt 0 192) + (output) + (text "ledrs_export[17..0]" (rect 0 0 73 12)(font "Arial" (font_size 8))) + (text "ledrs_export[17..0]" (rect 4 181 118 192)(font "Arial" (font_size 8))) + (line (pt 0 192)(pt 160 192)(line_width 3)) + ) + (port + (pt 0 312) + (output) + (text "hex0_export[6..0]" (rect 0 0 69 12)(font "Arial" (font_size 8))) + (text "hex0_export[6..0]" (rect 4 301 106 312)(font "Arial" (font_size 8))) + (line (pt 0 312)(pt 160 312)(line_width 3)) + ) + (port + (pt 0 352) + (output) + (text "hex1_export[6..0]" (rect 0 0 68 12)(font "Arial" (font_size 8))) + (text "hex1_export[6..0]" (rect 4 341 106 352)(font "Arial" (font_size 8))) + (line (pt 0 352)(pt 160 352)(line_width 3)) + ) + (port + (pt 0 392) + (output) + (text "hex2_export[6..0]" (rect 0 0 69 12)(font "Arial" (font_size 8))) + (text "hex2_export[6..0]" (rect 4 381 106 392)(font "Arial" (font_size 8))) + (line (pt 0 392)(pt 160 392)(line_width 3)) + ) + (port + (pt 0 432) + (output) + (text "hex3_export[6..0]" (rect 0 0 69 12)(font "Arial" (font_size 8))) + (text "hex3_export[6..0]" (rect 4 421 106 432)(font "Arial" (font_size 8))) + (line (pt 0 432)(pt 160 432)(line_width 3)) + ) + (port + (pt 0 472) + (output) + (text "hex4_export[6..0]" (rect 0 0 70 12)(font "Arial" (font_size 8))) + (text "hex4_export[6..0]" (rect 4 461 106 472)(font "Arial" (font_size 8))) + (line (pt 0 472)(pt 160 472)(line_width 3)) + ) + (port + (pt 0 512) + (output) + (text "hex5_export[6..0]" (rect 0 0 69 12)(font "Arial" (font_size 8))) + (text "hex5_export[6..0]" (rect 4 501 106 512)(font "Arial" (font_size 8))) + (line (pt 0 512)(pt 160 512)(line_width 3)) + ) + (port + (pt 0 552) + (output) + (text "hex6_export[6..0]" (rect 0 0 69 12)(font "Arial" (font_size 8))) + (text "hex6_export[6..0]" (rect 4 541 106 552)(font "Arial" (font_size 8))) + (line (pt 0 552)(pt 160 552)(line_width 3)) + ) + (port + (pt 0 592) + (output) + (text "hex7_export[6..0]" (rect 0 0 69 12)(font "Arial" (font_size 8))) + (text "hex7_export[6..0]" (rect 4 581 106 592)(font "Arial" (font_size 8))) + (line (pt 0 592)(pt 160 592)(line_width 3)) + ) + (port + (pt 0 632) + (output) + (text "lcd_16207_0_RS" (rect 0 0 69 12)(font "Arial" (font_size 8))) + (text "lcd_16207_0_RS" (rect 4 621 88 632)(font "Arial" (font_size 8))) + (line (pt 0 632)(pt 160 632)(line_width 1)) + ) + (port + (pt 0 648) + (output) + (text "lcd_16207_0_RW" (rect 0 0 74 12)(font "Arial" (font_size 8))) + (text "lcd_16207_0_RW" (rect 4 637 88 648)(font "Arial" (font_size 8))) + (line (pt 0 648)(pt 160 648)(line_width 1)) + ) + (port + (pt 0 680) + (output) + (text "lcd_16207_0_E" (rect 0 0 62 12)(font "Arial" (font_size 8))) + (text "lcd_16207_0_E" (rect 4 669 82 680)(font "Arial" (font_size 8))) + (line (pt 0 680)(pt 160 680)(line_width 1)) + ) + (port + (pt 0 720) + (output) + (text "lcd_on_export" (rect 0 0 56 12)(font "Arial" (font_size 8))) + (text "lcd_on_export" (rect 4 709 82 720)(font "Arial" (font_size 8))) + (line (pt 0 720)(pt 160 720)(line_width 1)) + ) + (port + (pt 0 760) + (output) + (text "lcd_blon_export" (rect 0 0 62 12)(font "Arial" (font_size 8))) + (text "lcd_blon_export" (rect 4 749 94 760)(font "Arial" (font_size 8))) + (line (pt 0 760)(pt 160 760)(line_width 1)) + ) + (port + (pt 0 664) + (bidir) + (text "lcd_16207_0_data[7..0]" (rect 0 0 92 12)(font "Arial" (font_size 8))) + (text "lcd_16207_0_data[7..0]" (rect 4 653 136 664)(font "Arial" (font_size 8))) + (line (pt 0 664)(pt 160 664)(line_width 3)) + ) + (drawing + (text "clk" (rect 145 43 308 99)(font "Arial" (color 128 0 0)(font_size 9))) + (text "clk" (rect 165 67 348 144)(font "Arial" (color 0 0 0))) + (text "leds" (rect 137 83 298 179)(font "Arial" (color 128 0 0)(font_size 9))) + (text "export" (rect 165 107 366 224)(font "Arial" (color 0 0 0))) + (text "reset" (rect 131 123 292 259)(font "Arial" (color 128 0 0)(font_size 9))) + (text "reset_n" (rect 165 147 372 304)(font "Arial" (color 0 0 0))) + (text "ledrs" (rect 132 163 294 339)(font "Arial" (color 128 0 0)(font_size 9))) + (text "export" (rect 165 187 366 384)(font "Arial" (color 0 0 0))) + (text "switches" (rect 110 203 268 419)(font "Arial" (color 128 0 0)(font_size 9))) + (text "export" (rect 165 227 366 464)(font "Arial" (color 0 0 0))) + (text "push_switches" (rect 74 243 226 499)(font "Arial" (color 128 0 0)(font_size 9))) + (text "export" (rect 165 267 366 544)(font "Arial" (color 0 0 0))) + (text "hex0" (rect 134 283 292 579)(font "Arial" (color 128 0 0)(font_size 9))) + (text "export" (rect 165 307 366 624)(font "Arial" (color 0 0 0))) + (text "hex1" (rect 136 323 296 659)(font "Arial" (color 128 0 0)(font_size 9))) + (text "export" (rect 165 347 366 704)(font "Arial" (color 0 0 0))) + (text "hex2" (rect 134 363 292 739)(font "Arial" (color 128 0 0)(font_size 9))) + (text "export" (rect 165 387 366 784)(font "Arial" (color 0 0 0))) + (text "hex3" (rect 134 403 292 819)(font "Arial" (color 128 0 0)(font_size 9))) + (text "export" (rect 165 427 366 864)(font "Arial" (color 0 0 0))) + (text "hex4" (rect 134 443 292 899)(font "Arial" (color 128 0 0)(font_size 9))) + (text "export" (rect 165 467 366 944)(font "Arial" (color 0 0 0))) + (text "hex5" (rect 134 483 292 979)(font "Arial" (color 128 0 0)(font_size 9))) + (text "export" (rect 165 507 366 1024)(font "Arial" (color 0 0 0))) + (text "hex6" (rect 134 523 292 1059)(font "Arial" (color 128 0 0)(font_size 9))) + (text "export" (rect 165 547 366 1104)(font "Arial" (color 0 0 0))) + (text "hex7" (rect 134 563 292 1139)(font "Arial" (color 128 0 0)(font_size 9))) + (text "export" (rect 165 587 366 1184)(font "Arial" (color 0 0 0))) + (text "lcd_16207_0" (rect 89 603 244 1219)(font "Arial" (color 128 0 0)(font_size 9))) + (text "RS" (rect 165 627 342 1264)(font "Arial" (color 0 0 0))) + (text "RW" (rect 165 643 342 1296)(font "Arial" (color 0 0 0))) + (text "data" (rect 165 659 354 1328)(font "Arial" (color 0 0 0))) + (text "E" (rect 165 675 336 1360)(font "Arial" (color 0 0 0))) + (text "lcd_on" (rect 123 691 282 1395)(font "Arial" (color 128 0 0)(font_size 9))) + (text "export" (rect 165 715 366 1440)(font "Arial" (color 0 0 0))) + (text "lcd_blon" (rect 113 731 274 1475)(font "Arial" (color 128 0 0)(font_size 9))) + (text "export" (rect 165 755 366 1520)(font "Arial" (color 0 0 0))) + (text " nios_system " (rect 326 776 730 1562)(font "Arial" )) + (line (pt 161 52)(pt 161 76)(line_width 1)) + (line (pt 162 52)(pt 162 76)(line_width 1)) + (line (pt 161 92)(pt 161 116)(line_width 1)) + (line (pt 162 92)(pt 162 116)(line_width 1)) + (line (pt 161 132)(pt 161 156)(line_width 1)) + (line (pt 162 132)(pt 162 156)(line_width 1)) + (line (pt 161 172)(pt 161 196)(line_width 1)) + (line (pt 162 172)(pt 162 196)(line_width 1)) + (line (pt 161 212)(pt 161 236)(line_width 1)) + (line (pt 162 212)(pt 162 236)(line_width 1)) + (line (pt 161 252)(pt 161 276)(line_width 1)) + (line (pt 162 252)(pt 162 276)(line_width 1)) + (line (pt 161 292)(pt 161 316)(line_width 1)) + (line (pt 162 292)(pt 162 316)(line_width 1)) + (line (pt 161 332)(pt 161 356)(line_width 1)) + (line (pt 162 332)(pt 162 356)(line_width 1)) + (line (pt 161 372)(pt 161 396)(line_width 1)) + (line (pt 162 372)(pt 162 396)(line_width 1)) + (line (pt 161 412)(pt 161 436)(line_width 1)) + (line (pt 162 412)(pt 162 436)(line_width 1)) + (line (pt 161 452)(pt 161 476)(line_width 1)) + (line (pt 162 452)(pt 162 476)(line_width 1)) + (line (pt 161 492)(pt 161 516)(line_width 1)) + (line (pt 162 492)(pt 162 516)(line_width 1)) + (line (pt 161 532)(pt 161 556)(line_width 1)) + (line (pt 162 532)(pt 162 556)(line_width 1)) + (line (pt 161 572)(pt 161 596)(line_width 1)) + (line (pt 162 572)(pt 162 596)(line_width 1)) + (line (pt 161 612)(pt 161 684)(line_width 1)) + (line (pt 162 612)(pt 162 684)(line_width 1)) + (line (pt 161 700)(pt 161 724)(line_width 1)) + (line (pt 162 700)(pt 162 724)(line_width 1)) + (line (pt 161 740)(pt 161 764)(line_width 1)) + (line (pt 162 740)(pt 162 764)(line_width 1)) + (line (pt 160 32)(pt 224 32)(line_width 1)) + (line (pt 224 32)(pt 224 776)(line_width 1)) + (line (pt 160 776)(pt 224 776)(line_width 1)) + (line (pt 160 32)(pt 160 776)(line_width 1)) + (line (pt 0 0)(pt 384 0)(line_width 1)) + (line (pt 384 0)(pt 384 792)(line_width 1)) + (line (pt 0 792)(pt 384 792)(line_width 1)) + (line (pt 0 0)(pt 0 792)(line_width 1)) + ) +) diff --git a/db/ip/nios_system/nios_system.v b/db/ip/nios_system/nios_system.v new file mode 100644 index 0000000..0b211ba --- /dev/null +++ b/db/ip/nios_system/nios_system.v @@ -0,0 +1,5964 @@ +// nios_system.v + +// Generated using ACDS version 13.0sp1 232 at 2016.12.02.01:32:16 + +`timescale 1 ps / 1 ps +module nios_system ( + input wire clk_clk, // clk.clk + output wire [7:0] leds_export, // leds.export + input wire reset_reset_n, // reset.reset_n + output wire [17:0] ledrs_export, // ledrs.export + input wire [17:0] switches_export, // switches.export + input wire [2:0] push_switches_export, // push_switches.export + output wire [6:0] hex0_export, // hex0.export + output wire [6:0] hex1_export, // hex1.export + output wire [6:0] hex2_export, // hex2.export + output wire [6:0] hex3_export, // hex3.export + output wire [6:0] hex4_export, // hex4.export + output wire [6:0] hex5_export, // hex5.export + output wire [6:0] hex6_export, // hex6.export + output wire [6:0] hex7_export, // hex7.export + output wire lcd_16207_0_RS, // lcd_16207_0.RS + output wire lcd_16207_0_RW, // .RW + inout wire [7:0] lcd_16207_0_data, // .data + output wire lcd_16207_0_E, // .E + output wire lcd_on_export, // lcd_on.export + output wire lcd_blon_export // lcd_blon.export + ); + + wire nios2_processor_instruction_master_waitrequest; // nios2_processor_instruction_master_translator:av_waitrequest -> nios2_processor:i_waitrequest + wire [18:0] nios2_processor_instruction_master_address; // nios2_processor:i_address -> nios2_processor_instruction_master_translator:av_address + wire nios2_processor_instruction_master_read; // nios2_processor:i_read -> nios2_processor_instruction_master_translator:av_read + wire [31:0] nios2_processor_instruction_master_readdata; // nios2_processor_instruction_master_translator:av_readdata -> nios2_processor:i_readdata + wire nios2_processor_data_master_waitrequest; // nios2_processor_data_master_translator:av_waitrequest -> nios2_processor:d_waitrequest + wire [31:0] nios2_processor_data_master_writedata; // nios2_processor:d_writedata -> nios2_processor_data_master_translator:av_writedata + wire [18:0] nios2_processor_data_master_address; // nios2_processor:d_address -> nios2_processor_data_master_translator:av_address + wire nios2_processor_data_master_write; // nios2_processor:d_write -> nios2_processor_data_master_translator:av_write + wire nios2_processor_data_master_read; // nios2_processor:d_read -> nios2_processor_data_master_translator:av_read + wire [31:0] nios2_processor_data_master_readdata; // nios2_processor_data_master_translator:av_readdata -> nios2_processor:d_readdata + wire nios2_processor_data_master_debugaccess; // nios2_processor:jtag_debug_module_debugaccess_to_roms -> nios2_processor_data_master_translator:av_debugaccess + wire [3:0] nios2_processor_data_master_byteenable; // nios2_processor:d_byteenable -> nios2_processor_data_master_translator:av_byteenable + wire nios2_processor_jtag_debug_module_translator_avalon_anti_slave_0_waitrequest; // nios2_processor:jtag_debug_module_waitrequest -> nios2_processor_jtag_debug_module_translator:av_waitrequest + wire [31:0] nios2_processor_jtag_debug_module_translator_avalon_anti_slave_0_writedata; // nios2_processor_jtag_debug_module_translator:av_writedata -> nios2_processor:jtag_debug_module_writedata + wire [8:0] nios2_processor_jtag_debug_module_translator_avalon_anti_slave_0_address; // nios2_processor_jtag_debug_module_translator:av_address -> nios2_processor:jtag_debug_module_address + wire nios2_processor_jtag_debug_module_translator_avalon_anti_slave_0_write; // nios2_processor_jtag_debug_module_translator:av_write -> nios2_processor:jtag_debug_module_write + wire nios2_processor_jtag_debug_module_translator_avalon_anti_slave_0_read; // nios2_processor_jtag_debug_module_translator:av_read -> nios2_processor:jtag_debug_module_read + wire [31:0] nios2_processor_jtag_debug_module_translator_avalon_anti_slave_0_readdata; // nios2_processor:jtag_debug_module_readdata -> nios2_processor_jtag_debug_module_translator:av_readdata + wire nios2_processor_jtag_debug_module_translator_avalon_anti_slave_0_debugaccess; // nios2_processor_jtag_debug_module_translator:av_debugaccess -> nios2_processor:jtag_debug_module_debugaccess + wire [3:0] nios2_processor_jtag_debug_module_translator_avalon_anti_slave_0_byteenable; // nios2_processor_jtag_debug_module_translator:av_byteenable -> nios2_processor:jtag_debug_module_byteenable + wire [31:0] onchip_memory_s1_translator_avalon_anti_slave_0_writedata; // onchip_memory_s1_translator:av_writedata -> onchip_memory:writedata + wire [15:0] onchip_memory_s1_translator_avalon_anti_slave_0_address; // onchip_memory_s1_translator:av_address -> onchip_memory:address + wire onchip_memory_s1_translator_avalon_anti_slave_0_chipselect; // onchip_memory_s1_translator:av_chipselect -> onchip_memory:chipselect + wire onchip_memory_s1_translator_avalon_anti_slave_0_clken; // onchip_memory_s1_translator:av_clken -> onchip_memory:clken + wire onchip_memory_s1_translator_avalon_anti_slave_0_write; // onchip_memory_s1_translator:av_write -> onchip_memory:write + wire [31:0] onchip_memory_s1_translator_avalon_anti_slave_0_readdata; // onchip_memory:readdata -> onchip_memory_s1_translator:av_readdata + wire [3:0] onchip_memory_s1_translator_avalon_anti_slave_0_byteenable; // onchip_memory_s1_translator:av_byteenable -> onchip_memory:byteenable + wire [31:0] leds_s1_translator_avalon_anti_slave_0_writedata; // LEDs_s1_translator:av_writedata -> LEDs:writedata + wire [1:0] leds_s1_translator_avalon_anti_slave_0_address; // LEDs_s1_translator:av_address -> LEDs:address + wire leds_s1_translator_avalon_anti_slave_0_chipselect; // LEDs_s1_translator:av_chipselect -> LEDs:chipselect + wire leds_s1_translator_avalon_anti_slave_0_write; // LEDs_s1_translator:av_write -> LEDs:write_n + wire [31:0] leds_s1_translator_avalon_anti_slave_0_readdata; // LEDs:readdata -> LEDs_s1_translator:av_readdata + wire jtag_uart_avalon_jtag_slave_translator_avalon_anti_slave_0_waitrequest; // jtag_uart:av_waitrequest -> jtag_uart_avalon_jtag_slave_translator:av_waitrequest + wire [31:0] jtag_uart_avalon_jtag_slave_translator_avalon_anti_slave_0_writedata; // jtag_uart_avalon_jtag_slave_translator:av_writedata -> jtag_uart:av_writedata + wire [0:0] jtag_uart_avalon_jtag_slave_translator_avalon_anti_slave_0_address; // jtag_uart_avalon_jtag_slave_translator:av_address -> jtag_uart:av_address + wire jtag_uart_avalon_jtag_slave_translator_avalon_anti_slave_0_chipselect; // jtag_uart_avalon_jtag_slave_translator:av_chipselect -> jtag_uart:av_chipselect + wire jtag_uart_avalon_jtag_slave_translator_avalon_anti_slave_0_write; // jtag_uart_avalon_jtag_slave_translator:av_write -> jtag_uart:av_write_n + wire jtag_uart_avalon_jtag_slave_translator_avalon_anti_slave_0_read; // jtag_uart_avalon_jtag_slave_translator:av_read -> jtag_uart:av_read_n + wire [31:0] jtag_uart_avalon_jtag_slave_translator_avalon_anti_slave_0_readdata; // jtag_uart:av_readdata -> jtag_uart_avalon_jtag_slave_translator:av_readdata + wire [31:0] ledrs_s1_translator_avalon_anti_slave_0_writedata; // LEDRs_s1_translator:av_writedata -> LEDRs:writedata + wire [1:0] ledrs_s1_translator_avalon_anti_slave_0_address; // LEDRs_s1_translator:av_address -> LEDRs:address + wire ledrs_s1_translator_avalon_anti_slave_0_chipselect; // LEDRs_s1_translator:av_chipselect -> LEDRs:chipselect + wire ledrs_s1_translator_avalon_anti_slave_0_write; // LEDRs_s1_translator:av_write -> LEDRs:write_n + wire [31:0] ledrs_s1_translator_avalon_anti_slave_0_readdata; // LEDRs:readdata -> LEDRs_s1_translator:av_readdata + wire [1:0] switches_s1_translator_avalon_anti_slave_0_address; // switches_s1_translator:av_address -> switches:address + wire [31:0] switches_s1_translator_avalon_anti_slave_0_readdata; // switches:readdata -> switches_s1_translator:av_readdata + wire [1:0] push_switches_s1_translator_avalon_anti_slave_0_address; // push_switches_s1_translator:av_address -> push_switches:address + wire [31:0] push_switches_s1_translator_avalon_anti_slave_0_readdata; // push_switches:readdata -> push_switches_s1_translator:av_readdata + wire [31:0] hex0_s1_translator_avalon_anti_slave_0_writedata; // hex0_s1_translator:av_writedata -> hex0:writedata + wire [1:0] hex0_s1_translator_avalon_anti_slave_0_address; // hex0_s1_translator:av_address -> hex0:address + wire hex0_s1_translator_avalon_anti_slave_0_chipselect; // hex0_s1_translator:av_chipselect -> hex0:chipselect + wire hex0_s1_translator_avalon_anti_slave_0_write; // hex0_s1_translator:av_write -> hex0:write_n + wire [31:0] hex0_s1_translator_avalon_anti_slave_0_readdata; // hex0:readdata -> hex0_s1_translator:av_readdata + wire [31:0] hex1_s1_translator_avalon_anti_slave_0_writedata; // hex1_s1_translator:av_writedata -> hex1:writedata + wire [1:0] hex1_s1_translator_avalon_anti_slave_0_address; // hex1_s1_translator:av_address -> hex1:address + wire hex1_s1_translator_avalon_anti_slave_0_chipselect; // hex1_s1_translator:av_chipselect -> hex1:chipselect + wire hex1_s1_translator_avalon_anti_slave_0_write; // hex1_s1_translator:av_write -> hex1:write_n + wire [31:0] hex1_s1_translator_avalon_anti_slave_0_readdata; // hex1:readdata -> hex1_s1_translator:av_readdata + wire [31:0] hex2_s1_translator_avalon_anti_slave_0_writedata; // hex2_s1_translator:av_writedata -> hex2:writedata + wire [1:0] hex2_s1_translator_avalon_anti_slave_0_address; // hex2_s1_translator:av_address -> hex2:address + wire hex2_s1_translator_avalon_anti_slave_0_chipselect; // hex2_s1_translator:av_chipselect -> hex2:chipselect + wire hex2_s1_translator_avalon_anti_slave_0_write; // hex2_s1_translator:av_write -> hex2:write_n + wire [31:0] hex2_s1_translator_avalon_anti_slave_0_readdata; // hex2:readdata -> hex2_s1_translator:av_readdata + wire [31:0] hex3_s1_translator_avalon_anti_slave_0_writedata; // hex3_s1_translator:av_writedata -> hex3:writedata + wire [1:0] hex3_s1_translator_avalon_anti_slave_0_address; // hex3_s1_translator:av_address -> hex3:address + wire hex3_s1_translator_avalon_anti_slave_0_chipselect; // hex3_s1_translator:av_chipselect -> hex3:chipselect + wire hex3_s1_translator_avalon_anti_slave_0_write; // hex3_s1_translator:av_write -> hex3:write_n + wire [31:0] hex3_s1_translator_avalon_anti_slave_0_readdata; // hex3:readdata -> hex3_s1_translator:av_readdata + wire [31:0] hex4_s1_translator_avalon_anti_slave_0_writedata; // hex4_s1_translator:av_writedata -> hex4:writedata + wire [1:0] hex4_s1_translator_avalon_anti_slave_0_address; // hex4_s1_translator:av_address -> hex4:address + wire hex4_s1_translator_avalon_anti_slave_0_chipselect; // hex4_s1_translator:av_chipselect -> hex4:chipselect + wire hex4_s1_translator_avalon_anti_slave_0_write; // hex4_s1_translator:av_write -> hex4:write_n + wire [31:0] hex4_s1_translator_avalon_anti_slave_0_readdata; // hex4:readdata -> hex4_s1_translator:av_readdata + wire [31:0] hex5_s1_translator_avalon_anti_slave_0_writedata; // hex5_s1_translator:av_writedata -> hex5:writedata + wire [1:0] hex5_s1_translator_avalon_anti_slave_0_address; // hex5_s1_translator:av_address -> hex5:address + wire hex5_s1_translator_avalon_anti_slave_0_chipselect; // hex5_s1_translator:av_chipselect -> hex5:chipselect + wire hex5_s1_translator_avalon_anti_slave_0_write; // hex5_s1_translator:av_write -> hex5:write_n + wire [31:0] hex5_s1_translator_avalon_anti_slave_0_readdata; // hex5:readdata -> hex5_s1_translator:av_readdata + wire [31:0] hex6_s1_translator_avalon_anti_slave_0_writedata; // hex6_s1_translator:av_writedata -> hex6:writedata + wire [1:0] hex6_s1_translator_avalon_anti_slave_0_address; // hex6_s1_translator:av_address -> hex6:address + wire hex6_s1_translator_avalon_anti_slave_0_chipselect; // hex6_s1_translator:av_chipselect -> hex6:chipselect + wire hex6_s1_translator_avalon_anti_slave_0_write; // hex6_s1_translator:av_write -> hex6:write_n + wire [31:0] hex6_s1_translator_avalon_anti_slave_0_readdata; // hex6:readdata -> hex6_s1_translator:av_readdata + wire [31:0] hex7_s1_translator_avalon_anti_slave_0_writedata; // hex7_s1_translator:av_writedata -> hex7:writedata + wire [1:0] hex7_s1_translator_avalon_anti_slave_0_address; // hex7_s1_translator:av_address -> hex7:address + wire hex7_s1_translator_avalon_anti_slave_0_chipselect; // hex7_s1_translator:av_chipselect -> hex7:chipselect + wire hex7_s1_translator_avalon_anti_slave_0_write; // hex7_s1_translator:av_write -> hex7:write_n + wire [31:0] hex7_s1_translator_avalon_anti_slave_0_readdata; // hex7:readdata -> hex7_s1_translator:av_readdata + wire [7:0] lcd_16207_0_control_slave_translator_avalon_anti_slave_0_writedata; // lcd_16207_0_control_slave_translator:av_writedata -> lcd_16207_0:writedata + wire [1:0] lcd_16207_0_control_slave_translator_avalon_anti_slave_0_address; // lcd_16207_0_control_slave_translator:av_address -> lcd_16207_0:address + wire lcd_16207_0_control_slave_translator_avalon_anti_slave_0_write; // lcd_16207_0_control_slave_translator:av_write -> lcd_16207_0:write + wire lcd_16207_0_control_slave_translator_avalon_anti_slave_0_read; // lcd_16207_0_control_slave_translator:av_read -> lcd_16207_0:read + wire [7:0] lcd_16207_0_control_slave_translator_avalon_anti_slave_0_readdata; // lcd_16207_0:readdata -> lcd_16207_0_control_slave_translator:av_readdata + wire lcd_16207_0_control_slave_translator_avalon_anti_slave_0_begintransfer; // lcd_16207_0_control_slave_translator:av_begintransfer -> lcd_16207_0:begintransfer + wire [31:0] lcd_on_s1_translator_avalon_anti_slave_0_writedata; // lcd_on_s1_translator:av_writedata -> lcd_on:writedata + wire [1:0] lcd_on_s1_translator_avalon_anti_slave_0_address; // lcd_on_s1_translator:av_address -> lcd_on:address + wire lcd_on_s1_translator_avalon_anti_slave_0_chipselect; // lcd_on_s1_translator:av_chipselect -> lcd_on:chipselect + wire lcd_on_s1_translator_avalon_anti_slave_0_write; // lcd_on_s1_translator:av_write -> lcd_on:write_n + wire [31:0] lcd_on_s1_translator_avalon_anti_slave_0_readdata; // lcd_on:readdata -> lcd_on_s1_translator:av_readdata + wire [31:0] lcd_blon_s1_translator_avalon_anti_slave_0_writedata; // lcd_blon_s1_translator:av_writedata -> lcd_blon:writedata + wire [1:0] lcd_blon_s1_translator_avalon_anti_slave_0_address; // lcd_blon_s1_translator:av_address -> lcd_blon:address + wire lcd_blon_s1_translator_avalon_anti_slave_0_chipselect; // lcd_blon_s1_translator:av_chipselect -> lcd_blon:chipselect + wire lcd_blon_s1_translator_avalon_anti_slave_0_write; // lcd_blon_s1_translator:av_write -> lcd_blon:write_n + wire [31:0] lcd_blon_s1_translator_avalon_anti_slave_0_readdata; // lcd_blon:readdata -> lcd_blon_s1_translator:av_readdata + wire nios2_processor_instruction_master_translator_avalon_universal_master_0_waitrequest; // nios2_processor_instruction_master_translator_avalon_universal_master_0_agent:av_waitrequest -> nios2_processor_instruction_master_translator:uav_waitrequest + wire [2:0] nios2_processor_instruction_master_translator_avalon_universal_master_0_burstcount; // nios2_processor_instruction_master_translator:uav_burstcount -> nios2_processor_instruction_master_translator_avalon_universal_master_0_agent:av_burstcount + wire [31:0] nios2_processor_instruction_master_translator_avalon_universal_master_0_writedata; // nios2_processor_instruction_master_translator:uav_writedata -> nios2_processor_instruction_master_translator_avalon_universal_master_0_agent:av_writedata + wire [18:0] nios2_processor_instruction_master_translator_avalon_universal_master_0_address; // nios2_processor_instruction_master_translator:uav_address -> nios2_processor_instruction_master_translator_avalon_universal_master_0_agent:av_address + wire nios2_processor_instruction_master_translator_avalon_universal_master_0_lock; // nios2_processor_instruction_master_translator:uav_lock -> nios2_processor_instruction_master_translator_avalon_universal_master_0_agent:av_lock + wire nios2_processor_instruction_master_translator_avalon_universal_master_0_write; // nios2_processor_instruction_master_translator:uav_write -> nios2_processor_instruction_master_translator_avalon_universal_master_0_agent:av_write + wire nios2_processor_instruction_master_translator_avalon_universal_master_0_read; // nios2_processor_instruction_master_translator:uav_read -> nios2_processor_instruction_master_translator_avalon_universal_master_0_agent:av_read + wire [31:0] nios2_processor_instruction_master_translator_avalon_universal_master_0_readdata; // nios2_processor_instruction_master_translator_avalon_universal_master_0_agent:av_readdata -> nios2_processor_instruction_master_translator:uav_readdata + wire nios2_processor_instruction_master_translator_avalon_universal_master_0_debugaccess; // nios2_processor_instruction_master_translator:uav_debugaccess -> nios2_processor_instruction_master_translator_avalon_universal_master_0_agent:av_debugaccess + wire [3:0] nios2_processor_instruction_master_translator_avalon_universal_master_0_byteenable; // nios2_processor_instruction_master_translator:uav_byteenable -> nios2_processor_instruction_master_translator_avalon_universal_master_0_agent:av_byteenable + wire nios2_processor_instruction_master_translator_avalon_universal_master_0_readdatavalid; // nios2_processor_instruction_master_translator_avalon_universal_master_0_agent:av_readdatavalid -> nios2_processor_instruction_master_translator:uav_readdatavalid + wire nios2_processor_data_master_translator_avalon_universal_master_0_waitrequest; // nios2_processor_data_master_translator_avalon_universal_master_0_agent:av_waitrequest -> nios2_processor_data_master_translator:uav_waitrequest + wire [2:0] nios2_processor_data_master_translator_avalon_universal_master_0_burstcount; // nios2_processor_data_master_translator:uav_burstcount -> nios2_processor_data_master_translator_avalon_universal_master_0_agent:av_burstcount + wire [31:0] nios2_processor_data_master_translator_avalon_universal_master_0_writedata; // nios2_processor_data_master_translator:uav_writedata -> nios2_processor_data_master_translator_avalon_universal_master_0_agent:av_writedata + wire [18:0] nios2_processor_data_master_translator_avalon_universal_master_0_address; // nios2_processor_data_master_translator:uav_address -> nios2_processor_data_master_translator_avalon_universal_master_0_agent:av_address + wire nios2_processor_data_master_translator_avalon_universal_master_0_lock; // nios2_processor_data_master_translator:uav_lock -> nios2_processor_data_master_translator_avalon_universal_master_0_agent:av_lock + wire nios2_processor_data_master_translator_avalon_universal_master_0_write; // nios2_processor_data_master_translator:uav_write -> nios2_processor_data_master_translator_avalon_universal_master_0_agent:av_write + wire nios2_processor_data_master_translator_avalon_universal_master_0_read; // nios2_processor_data_master_translator:uav_read -> nios2_processor_data_master_translator_avalon_universal_master_0_agent:av_read + wire [31:0] nios2_processor_data_master_translator_avalon_universal_master_0_readdata; // nios2_processor_data_master_translator_avalon_universal_master_0_agent:av_readdata -> nios2_processor_data_master_translator:uav_readdata + wire nios2_processor_data_master_translator_avalon_universal_master_0_debugaccess; // nios2_processor_data_master_translator:uav_debugaccess -> nios2_processor_data_master_translator_avalon_universal_master_0_agent:av_debugaccess + wire [3:0] nios2_processor_data_master_translator_avalon_universal_master_0_byteenable; // nios2_processor_data_master_translator:uav_byteenable -> nios2_processor_data_master_translator_avalon_universal_master_0_agent:av_byteenable + wire nios2_processor_data_master_translator_avalon_universal_master_0_readdatavalid; // nios2_processor_data_master_translator_avalon_universal_master_0_agent:av_readdatavalid -> nios2_processor_data_master_translator:uav_readdatavalid + wire nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_m0_waitrequest; // nios2_processor_jtag_debug_module_translator:uav_waitrequest -> nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent:m0_waitrequest + wire [2:0] nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_m0_burstcount; // nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent:m0_burstcount -> nios2_processor_jtag_debug_module_translator:uav_burstcount + wire [31:0] nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_m0_writedata; // nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent:m0_writedata -> nios2_processor_jtag_debug_module_translator:uav_writedata + wire [18:0] nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_m0_address; // nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent:m0_address -> nios2_processor_jtag_debug_module_translator:uav_address + wire nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_m0_write; // nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent:m0_write -> nios2_processor_jtag_debug_module_translator:uav_write + wire nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_m0_lock; // nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent:m0_lock -> nios2_processor_jtag_debug_module_translator:uav_lock + wire nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_m0_read; // nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent:m0_read -> nios2_processor_jtag_debug_module_translator:uav_read + wire [31:0] nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_m0_readdata; // nios2_processor_jtag_debug_module_translator:uav_readdata -> nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent:m0_readdata + wire nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_m0_readdatavalid; // nios2_processor_jtag_debug_module_translator:uav_readdatavalid -> nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent:m0_readdatavalid + wire nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_m0_debugaccess; // nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent:m0_debugaccess -> nios2_processor_jtag_debug_module_translator:uav_debugaccess + wire [3:0] nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_m0_byteenable; // nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent:m0_byteenable -> nios2_processor_jtag_debug_module_translator:uav_byteenable + wire nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rf_source_endofpacket; // nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent:rf_source_endofpacket -> nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo:in_endofpacket + wire nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rf_source_valid; // nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent:rf_source_valid -> nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo:in_valid + wire nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rf_source_startofpacket; // nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent:rf_source_startofpacket -> nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo:in_startofpacket + wire [96:0] nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rf_source_data; // nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent:rf_source_data -> nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo:in_data + wire nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rf_source_ready; // nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo:in_ready -> nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent:rf_source_ready + wire nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo_out_endofpacket; // nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo:out_endofpacket -> nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent:rf_sink_endofpacket + wire nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo_out_valid; // nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo:out_valid -> nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent:rf_sink_valid + wire nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo_out_startofpacket; // nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo:out_startofpacket -> nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent:rf_sink_startofpacket + wire [96:0] nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo_out_data; // nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo:out_data -> nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent:rf_sink_data + wire nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo_out_ready; // nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent:rf_sink_ready -> nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo:out_ready + wire nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rdata_fifo_src_valid; // nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent:rdata_fifo_src_valid -> nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent:rdata_fifo_sink_valid + wire [33:0] nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rdata_fifo_src_data; // nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent:rdata_fifo_src_data -> nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent:rdata_fifo_sink_data + wire nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rdata_fifo_src_ready; // nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent:rdata_fifo_sink_ready -> nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent:rdata_fifo_src_ready + wire onchip_memory_s1_translator_avalon_universal_slave_0_agent_m0_waitrequest; // onchip_memory_s1_translator:uav_waitrequest -> onchip_memory_s1_translator_avalon_universal_slave_0_agent:m0_waitrequest + wire [2:0] onchip_memory_s1_translator_avalon_universal_slave_0_agent_m0_burstcount; // onchip_memory_s1_translator_avalon_universal_slave_0_agent:m0_burstcount -> onchip_memory_s1_translator:uav_burstcount + wire [31:0] onchip_memory_s1_translator_avalon_universal_slave_0_agent_m0_writedata; // onchip_memory_s1_translator_avalon_universal_slave_0_agent:m0_writedata -> onchip_memory_s1_translator:uav_writedata + wire [18:0] onchip_memory_s1_translator_avalon_universal_slave_0_agent_m0_address; // onchip_memory_s1_translator_avalon_universal_slave_0_agent:m0_address -> onchip_memory_s1_translator:uav_address + wire onchip_memory_s1_translator_avalon_universal_slave_0_agent_m0_write; // onchip_memory_s1_translator_avalon_universal_slave_0_agent:m0_write -> onchip_memory_s1_translator:uav_write + wire onchip_memory_s1_translator_avalon_universal_slave_0_agent_m0_lock; // onchip_memory_s1_translator_avalon_universal_slave_0_agent:m0_lock -> onchip_memory_s1_translator:uav_lock + wire onchip_memory_s1_translator_avalon_universal_slave_0_agent_m0_read; // onchip_memory_s1_translator_avalon_universal_slave_0_agent:m0_read -> onchip_memory_s1_translator:uav_read + wire [31:0] onchip_memory_s1_translator_avalon_universal_slave_0_agent_m0_readdata; // onchip_memory_s1_translator:uav_readdata -> onchip_memory_s1_translator_avalon_universal_slave_0_agent:m0_readdata + wire onchip_memory_s1_translator_avalon_universal_slave_0_agent_m0_readdatavalid; // onchip_memory_s1_translator:uav_readdatavalid -> onchip_memory_s1_translator_avalon_universal_slave_0_agent:m0_readdatavalid + wire onchip_memory_s1_translator_avalon_universal_slave_0_agent_m0_debugaccess; // onchip_memory_s1_translator_avalon_universal_slave_0_agent:m0_debugaccess -> onchip_memory_s1_translator:uav_debugaccess + wire [3:0] onchip_memory_s1_translator_avalon_universal_slave_0_agent_m0_byteenable; // onchip_memory_s1_translator_avalon_universal_slave_0_agent:m0_byteenable -> onchip_memory_s1_translator:uav_byteenable + wire onchip_memory_s1_translator_avalon_universal_slave_0_agent_rf_source_endofpacket; // onchip_memory_s1_translator_avalon_universal_slave_0_agent:rf_source_endofpacket -> onchip_memory_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_endofpacket + wire onchip_memory_s1_translator_avalon_universal_slave_0_agent_rf_source_valid; // onchip_memory_s1_translator_avalon_universal_slave_0_agent:rf_source_valid -> onchip_memory_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_valid + wire onchip_memory_s1_translator_avalon_universal_slave_0_agent_rf_source_startofpacket; // onchip_memory_s1_translator_avalon_universal_slave_0_agent:rf_source_startofpacket -> onchip_memory_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_startofpacket + wire [96:0] onchip_memory_s1_translator_avalon_universal_slave_0_agent_rf_source_data; // onchip_memory_s1_translator_avalon_universal_slave_0_agent:rf_source_data -> onchip_memory_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_data + wire onchip_memory_s1_translator_avalon_universal_slave_0_agent_rf_source_ready; // onchip_memory_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_ready -> onchip_memory_s1_translator_avalon_universal_slave_0_agent:rf_source_ready + wire onchip_memory_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_endofpacket; // onchip_memory_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_endofpacket -> onchip_memory_s1_translator_avalon_universal_slave_0_agent:rf_sink_endofpacket + wire onchip_memory_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_valid; // onchip_memory_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_valid -> onchip_memory_s1_translator_avalon_universal_slave_0_agent:rf_sink_valid + wire onchip_memory_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_startofpacket; // onchip_memory_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_startofpacket -> onchip_memory_s1_translator_avalon_universal_slave_0_agent:rf_sink_startofpacket + wire [96:0] onchip_memory_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_data; // onchip_memory_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_data -> onchip_memory_s1_translator_avalon_universal_slave_0_agent:rf_sink_data + wire onchip_memory_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_ready; // onchip_memory_s1_translator_avalon_universal_slave_0_agent:rf_sink_ready -> onchip_memory_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_ready + wire onchip_memory_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_valid; // onchip_memory_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_src_valid -> onchip_memory_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_sink_valid + wire [33:0] onchip_memory_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_data; // onchip_memory_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_src_data -> onchip_memory_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_sink_data + wire onchip_memory_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_ready; // onchip_memory_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_sink_ready -> onchip_memory_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_src_ready + wire leds_s1_translator_avalon_universal_slave_0_agent_m0_waitrequest; // LEDs_s1_translator:uav_waitrequest -> LEDs_s1_translator_avalon_universal_slave_0_agent:m0_waitrequest + wire [2:0] leds_s1_translator_avalon_universal_slave_0_agent_m0_burstcount; // LEDs_s1_translator_avalon_universal_slave_0_agent:m0_burstcount -> LEDs_s1_translator:uav_burstcount + wire [31:0] leds_s1_translator_avalon_universal_slave_0_agent_m0_writedata; // LEDs_s1_translator_avalon_universal_slave_0_agent:m0_writedata -> LEDs_s1_translator:uav_writedata + wire [18:0] leds_s1_translator_avalon_universal_slave_0_agent_m0_address; // LEDs_s1_translator_avalon_universal_slave_0_agent:m0_address -> LEDs_s1_translator:uav_address + wire leds_s1_translator_avalon_universal_slave_0_agent_m0_write; // LEDs_s1_translator_avalon_universal_slave_0_agent:m0_write -> LEDs_s1_translator:uav_write + wire leds_s1_translator_avalon_universal_slave_0_agent_m0_lock; // LEDs_s1_translator_avalon_universal_slave_0_agent:m0_lock -> LEDs_s1_translator:uav_lock + wire leds_s1_translator_avalon_universal_slave_0_agent_m0_read; // LEDs_s1_translator_avalon_universal_slave_0_agent:m0_read -> LEDs_s1_translator:uav_read + wire [31:0] leds_s1_translator_avalon_universal_slave_0_agent_m0_readdata; // LEDs_s1_translator:uav_readdata -> LEDs_s1_translator_avalon_universal_slave_0_agent:m0_readdata + wire leds_s1_translator_avalon_universal_slave_0_agent_m0_readdatavalid; // LEDs_s1_translator:uav_readdatavalid -> LEDs_s1_translator_avalon_universal_slave_0_agent:m0_readdatavalid + wire leds_s1_translator_avalon_universal_slave_0_agent_m0_debugaccess; // LEDs_s1_translator_avalon_universal_slave_0_agent:m0_debugaccess -> LEDs_s1_translator:uav_debugaccess + wire [3:0] leds_s1_translator_avalon_universal_slave_0_agent_m0_byteenable; // LEDs_s1_translator_avalon_universal_slave_0_agent:m0_byteenable -> LEDs_s1_translator:uav_byteenable + wire leds_s1_translator_avalon_universal_slave_0_agent_rf_source_endofpacket; // LEDs_s1_translator_avalon_universal_slave_0_agent:rf_source_endofpacket -> LEDs_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_endofpacket + wire leds_s1_translator_avalon_universal_slave_0_agent_rf_source_valid; // LEDs_s1_translator_avalon_universal_slave_0_agent:rf_source_valid -> LEDs_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_valid + wire leds_s1_translator_avalon_universal_slave_0_agent_rf_source_startofpacket; // LEDs_s1_translator_avalon_universal_slave_0_agent:rf_source_startofpacket -> LEDs_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_startofpacket + wire [96:0] leds_s1_translator_avalon_universal_slave_0_agent_rf_source_data; // LEDs_s1_translator_avalon_universal_slave_0_agent:rf_source_data -> LEDs_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_data + wire leds_s1_translator_avalon_universal_slave_0_agent_rf_source_ready; // LEDs_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_ready -> LEDs_s1_translator_avalon_universal_slave_0_agent:rf_source_ready + wire leds_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_endofpacket; // LEDs_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_endofpacket -> LEDs_s1_translator_avalon_universal_slave_0_agent:rf_sink_endofpacket + wire leds_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_valid; // LEDs_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_valid -> LEDs_s1_translator_avalon_universal_slave_0_agent:rf_sink_valid + wire leds_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_startofpacket; // LEDs_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_startofpacket -> LEDs_s1_translator_avalon_universal_slave_0_agent:rf_sink_startofpacket + wire [96:0] leds_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_data; // LEDs_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_data -> LEDs_s1_translator_avalon_universal_slave_0_agent:rf_sink_data + wire leds_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_ready; // LEDs_s1_translator_avalon_universal_slave_0_agent:rf_sink_ready -> LEDs_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_ready + wire leds_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_valid; // LEDs_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_src_valid -> LEDs_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_sink_valid + wire [33:0] leds_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_data; // LEDs_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_src_data -> LEDs_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_sink_data + wire leds_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_ready; // LEDs_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_sink_ready -> LEDs_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_src_ready + wire jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_m0_waitrequest; // jtag_uart_avalon_jtag_slave_translator:uav_waitrequest -> jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent:m0_waitrequest + wire [2:0] jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_m0_burstcount; // jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent:m0_burstcount -> jtag_uart_avalon_jtag_slave_translator:uav_burstcount + wire [31:0] jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_m0_writedata; // jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent:m0_writedata -> jtag_uart_avalon_jtag_slave_translator:uav_writedata + wire [18:0] jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_m0_address; // jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent:m0_address -> jtag_uart_avalon_jtag_slave_translator:uav_address + wire jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_m0_write; // jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent:m0_write -> jtag_uart_avalon_jtag_slave_translator:uav_write + wire jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_m0_lock; // jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent:m0_lock -> jtag_uart_avalon_jtag_slave_translator:uav_lock + wire jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_m0_read; // jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent:m0_read -> jtag_uart_avalon_jtag_slave_translator:uav_read + wire [31:0] jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_m0_readdata; // jtag_uart_avalon_jtag_slave_translator:uav_readdata -> jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent:m0_readdata + wire jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_m0_readdatavalid; // jtag_uart_avalon_jtag_slave_translator:uav_readdatavalid -> jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent:m0_readdatavalid + wire jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_m0_debugaccess; // jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent:m0_debugaccess -> jtag_uart_avalon_jtag_slave_translator:uav_debugaccess + wire [3:0] jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_m0_byteenable; // jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent:m0_byteenable -> jtag_uart_avalon_jtag_slave_translator:uav_byteenable + wire jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rf_source_endofpacket; // jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent:rf_source_endofpacket -> jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rsp_fifo:in_endofpacket + wire jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rf_source_valid; // jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent:rf_source_valid -> jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rsp_fifo:in_valid + wire jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rf_source_startofpacket; // jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent:rf_source_startofpacket -> jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rsp_fifo:in_startofpacket + wire [96:0] jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rf_source_data; // jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent:rf_source_data -> jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rsp_fifo:in_data + wire jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rf_source_ready; // jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rsp_fifo:in_ready -> jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent:rf_source_ready + wire jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rsp_fifo_out_endofpacket; // jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rsp_fifo:out_endofpacket -> jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent:rf_sink_endofpacket + wire jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rsp_fifo_out_valid; // jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rsp_fifo:out_valid -> jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent:rf_sink_valid + wire jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rsp_fifo_out_startofpacket; // jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rsp_fifo:out_startofpacket -> jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent:rf_sink_startofpacket + wire [96:0] jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rsp_fifo_out_data; // jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rsp_fifo:out_data -> jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent:rf_sink_data + wire jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rsp_fifo_out_ready; // jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent:rf_sink_ready -> jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rsp_fifo:out_ready + wire jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rdata_fifo_src_valid; // jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent:rdata_fifo_src_valid -> jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent:rdata_fifo_sink_valid + wire [33:0] jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rdata_fifo_src_data; // jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent:rdata_fifo_src_data -> jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent:rdata_fifo_sink_data + wire jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rdata_fifo_src_ready; // jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent:rdata_fifo_sink_ready -> jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent:rdata_fifo_src_ready + wire ledrs_s1_translator_avalon_universal_slave_0_agent_m0_waitrequest; // LEDRs_s1_translator:uav_waitrequest -> LEDRs_s1_translator_avalon_universal_slave_0_agent:m0_waitrequest + wire [2:0] ledrs_s1_translator_avalon_universal_slave_0_agent_m0_burstcount; // LEDRs_s1_translator_avalon_universal_slave_0_agent:m0_burstcount -> LEDRs_s1_translator:uav_burstcount + wire [31:0] ledrs_s1_translator_avalon_universal_slave_0_agent_m0_writedata; // LEDRs_s1_translator_avalon_universal_slave_0_agent:m0_writedata -> LEDRs_s1_translator:uav_writedata + wire [18:0] ledrs_s1_translator_avalon_universal_slave_0_agent_m0_address; // LEDRs_s1_translator_avalon_universal_slave_0_agent:m0_address -> LEDRs_s1_translator:uav_address + wire ledrs_s1_translator_avalon_universal_slave_0_agent_m0_write; // LEDRs_s1_translator_avalon_universal_slave_0_agent:m0_write -> LEDRs_s1_translator:uav_write + wire ledrs_s1_translator_avalon_universal_slave_0_agent_m0_lock; // LEDRs_s1_translator_avalon_universal_slave_0_agent:m0_lock -> LEDRs_s1_translator:uav_lock + wire ledrs_s1_translator_avalon_universal_slave_0_agent_m0_read; // LEDRs_s1_translator_avalon_universal_slave_0_agent:m0_read -> LEDRs_s1_translator:uav_read + wire [31:0] ledrs_s1_translator_avalon_universal_slave_0_agent_m0_readdata; // LEDRs_s1_translator:uav_readdata -> LEDRs_s1_translator_avalon_universal_slave_0_agent:m0_readdata + wire ledrs_s1_translator_avalon_universal_slave_0_agent_m0_readdatavalid; // LEDRs_s1_translator:uav_readdatavalid -> LEDRs_s1_translator_avalon_universal_slave_0_agent:m0_readdatavalid + wire ledrs_s1_translator_avalon_universal_slave_0_agent_m0_debugaccess; // LEDRs_s1_translator_avalon_universal_slave_0_agent:m0_debugaccess -> LEDRs_s1_translator:uav_debugaccess + wire [3:0] ledrs_s1_translator_avalon_universal_slave_0_agent_m0_byteenable; // LEDRs_s1_translator_avalon_universal_slave_0_agent:m0_byteenable -> LEDRs_s1_translator:uav_byteenable + wire ledrs_s1_translator_avalon_universal_slave_0_agent_rf_source_endofpacket; // LEDRs_s1_translator_avalon_universal_slave_0_agent:rf_source_endofpacket -> LEDRs_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_endofpacket + wire ledrs_s1_translator_avalon_universal_slave_0_agent_rf_source_valid; // LEDRs_s1_translator_avalon_universal_slave_0_agent:rf_source_valid -> LEDRs_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_valid + wire ledrs_s1_translator_avalon_universal_slave_0_agent_rf_source_startofpacket; // LEDRs_s1_translator_avalon_universal_slave_0_agent:rf_source_startofpacket -> LEDRs_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_startofpacket + wire [96:0] ledrs_s1_translator_avalon_universal_slave_0_agent_rf_source_data; // LEDRs_s1_translator_avalon_universal_slave_0_agent:rf_source_data -> LEDRs_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_data + wire ledrs_s1_translator_avalon_universal_slave_0_agent_rf_source_ready; // LEDRs_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_ready -> LEDRs_s1_translator_avalon_universal_slave_0_agent:rf_source_ready + wire ledrs_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_endofpacket; // LEDRs_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_endofpacket -> LEDRs_s1_translator_avalon_universal_slave_0_agent:rf_sink_endofpacket + wire ledrs_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_valid; // LEDRs_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_valid -> LEDRs_s1_translator_avalon_universal_slave_0_agent:rf_sink_valid + wire ledrs_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_startofpacket; // LEDRs_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_startofpacket -> LEDRs_s1_translator_avalon_universal_slave_0_agent:rf_sink_startofpacket + wire [96:0] ledrs_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_data; // LEDRs_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_data -> LEDRs_s1_translator_avalon_universal_slave_0_agent:rf_sink_data + wire ledrs_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_ready; // LEDRs_s1_translator_avalon_universal_slave_0_agent:rf_sink_ready -> LEDRs_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_ready + wire ledrs_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_valid; // LEDRs_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_src_valid -> LEDRs_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_sink_valid + wire [33:0] ledrs_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_data; // LEDRs_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_src_data -> LEDRs_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_sink_data + wire ledrs_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_ready; // LEDRs_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_sink_ready -> LEDRs_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_src_ready + wire switches_s1_translator_avalon_universal_slave_0_agent_m0_waitrequest; // switches_s1_translator:uav_waitrequest -> switches_s1_translator_avalon_universal_slave_0_agent:m0_waitrequest + wire [2:0] switches_s1_translator_avalon_universal_slave_0_agent_m0_burstcount; // switches_s1_translator_avalon_universal_slave_0_agent:m0_burstcount -> switches_s1_translator:uav_burstcount + wire [31:0] switches_s1_translator_avalon_universal_slave_0_agent_m0_writedata; // switches_s1_translator_avalon_universal_slave_0_agent:m0_writedata -> switches_s1_translator:uav_writedata + wire [18:0] switches_s1_translator_avalon_universal_slave_0_agent_m0_address; // switches_s1_translator_avalon_universal_slave_0_agent:m0_address -> switches_s1_translator:uav_address + wire switches_s1_translator_avalon_universal_slave_0_agent_m0_write; // switches_s1_translator_avalon_universal_slave_0_agent:m0_write -> switches_s1_translator:uav_write + wire switches_s1_translator_avalon_universal_slave_0_agent_m0_lock; // switches_s1_translator_avalon_universal_slave_0_agent:m0_lock -> switches_s1_translator:uav_lock + wire switches_s1_translator_avalon_universal_slave_0_agent_m0_read; // switches_s1_translator_avalon_universal_slave_0_agent:m0_read -> switches_s1_translator:uav_read + wire [31:0] switches_s1_translator_avalon_universal_slave_0_agent_m0_readdata; // switches_s1_translator:uav_readdata -> switches_s1_translator_avalon_universal_slave_0_agent:m0_readdata + wire switches_s1_translator_avalon_universal_slave_0_agent_m0_readdatavalid; // switches_s1_translator:uav_readdatavalid -> switches_s1_translator_avalon_universal_slave_0_agent:m0_readdatavalid + wire switches_s1_translator_avalon_universal_slave_0_agent_m0_debugaccess; // switches_s1_translator_avalon_universal_slave_0_agent:m0_debugaccess -> switches_s1_translator:uav_debugaccess + wire [3:0] switches_s1_translator_avalon_universal_slave_0_agent_m0_byteenable; // switches_s1_translator_avalon_universal_slave_0_agent:m0_byteenable -> switches_s1_translator:uav_byteenable + wire switches_s1_translator_avalon_universal_slave_0_agent_rf_source_endofpacket; // switches_s1_translator_avalon_universal_slave_0_agent:rf_source_endofpacket -> switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_endofpacket + wire switches_s1_translator_avalon_universal_slave_0_agent_rf_source_valid; // switches_s1_translator_avalon_universal_slave_0_agent:rf_source_valid -> switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_valid + wire switches_s1_translator_avalon_universal_slave_0_agent_rf_source_startofpacket; // switches_s1_translator_avalon_universal_slave_0_agent:rf_source_startofpacket -> switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_startofpacket + wire [96:0] switches_s1_translator_avalon_universal_slave_0_agent_rf_source_data; // switches_s1_translator_avalon_universal_slave_0_agent:rf_source_data -> switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_data + wire switches_s1_translator_avalon_universal_slave_0_agent_rf_source_ready; // switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_ready -> switches_s1_translator_avalon_universal_slave_0_agent:rf_source_ready + wire switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_endofpacket; // switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_endofpacket -> switches_s1_translator_avalon_universal_slave_0_agent:rf_sink_endofpacket + wire switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_valid; // switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_valid -> switches_s1_translator_avalon_universal_slave_0_agent:rf_sink_valid + wire switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_startofpacket; // switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_startofpacket -> switches_s1_translator_avalon_universal_slave_0_agent:rf_sink_startofpacket + wire [96:0] switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_data; // switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_data -> switches_s1_translator_avalon_universal_slave_0_agent:rf_sink_data + wire switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_ready; // switches_s1_translator_avalon_universal_slave_0_agent:rf_sink_ready -> switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_ready + wire switches_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_valid; // switches_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_src_valid -> switches_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_sink_valid + wire [33:0] switches_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_data; // switches_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_src_data -> switches_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_sink_data + wire switches_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_ready; // switches_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_sink_ready -> switches_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_src_ready + wire push_switches_s1_translator_avalon_universal_slave_0_agent_m0_waitrequest; // push_switches_s1_translator:uav_waitrequest -> push_switches_s1_translator_avalon_universal_slave_0_agent:m0_waitrequest + wire [2:0] push_switches_s1_translator_avalon_universal_slave_0_agent_m0_burstcount; // push_switches_s1_translator_avalon_universal_slave_0_agent:m0_burstcount -> push_switches_s1_translator:uav_burstcount + wire [31:0] push_switches_s1_translator_avalon_universal_slave_0_agent_m0_writedata; // push_switches_s1_translator_avalon_universal_slave_0_agent:m0_writedata -> push_switches_s1_translator:uav_writedata + wire [18:0] push_switches_s1_translator_avalon_universal_slave_0_agent_m0_address; // push_switches_s1_translator_avalon_universal_slave_0_agent:m0_address -> push_switches_s1_translator:uav_address + wire push_switches_s1_translator_avalon_universal_slave_0_agent_m0_write; // push_switches_s1_translator_avalon_universal_slave_0_agent:m0_write -> push_switches_s1_translator:uav_write + wire push_switches_s1_translator_avalon_universal_slave_0_agent_m0_lock; // push_switches_s1_translator_avalon_universal_slave_0_agent:m0_lock -> push_switches_s1_translator:uav_lock + wire push_switches_s1_translator_avalon_universal_slave_0_agent_m0_read; // push_switches_s1_translator_avalon_universal_slave_0_agent:m0_read -> push_switches_s1_translator:uav_read + wire [31:0] push_switches_s1_translator_avalon_universal_slave_0_agent_m0_readdata; // push_switches_s1_translator:uav_readdata -> push_switches_s1_translator_avalon_universal_slave_0_agent:m0_readdata + wire push_switches_s1_translator_avalon_universal_slave_0_agent_m0_readdatavalid; // push_switches_s1_translator:uav_readdatavalid -> push_switches_s1_translator_avalon_universal_slave_0_agent:m0_readdatavalid + wire push_switches_s1_translator_avalon_universal_slave_0_agent_m0_debugaccess; // push_switches_s1_translator_avalon_universal_slave_0_agent:m0_debugaccess -> push_switches_s1_translator:uav_debugaccess + wire [3:0] push_switches_s1_translator_avalon_universal_slave_0_agent_m0_byteenable; // push_switches_s1_translator_avalon_universal_slave_0_agent:m0_byteenable -> push_switches_s1_translator:uav_byteenable + wire push_switches_s1_translator_avalon_universal_slave_0_agent_rf_source_endofpacket; // push_switches_s1_translator_avalon_universal_slave_0_agent:rf_source_endofpacket -> push_switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_endofpacket + wire push_switches_s1_translator_avalon_universal_slave_0_agent_rf_source_valid; // push_switches_s1_translator_avalon_universal_slave_0_agent:rf_source_valid -> push_switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_valid + wire push_switches_s1_translator_avalon_universal_slave_0_agent_rf_source_startofpacket; // push_switches_s1_translator_avalon_universal_slave_0_agent:rf_source_startofpacket -> push_switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_startofpacket + wire [96:0] push_switches_s1_translator_avalon_universal_slave_0_agent_rf_source_data; // push_switches_s1_translator_avalon_universal_slave_0_agent:rf_source_data -> push_switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_data + wire push_switches_s1_translator_avalon_universal_slave_0_agent_rf_source_ready; // push_switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_ready -> push_switches_s1_translator_avalon_universal_slave_0_agent:rf_source_ready + wire push_switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_endofpacket; // push_switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_endofpacket -> push_switches_s1_translator_avalon_universal_slave_0_agent:rf_sink_endofpacket + wire push_switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_valid; // push_switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_valid -> push_switches_s1_translator_avalon_universal_slave_0_agent:rf_sink_valid + wire push_switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_startofpacket; // push_switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_startofpacket -> push_switches_s1_translator_avalon_universal_slave_0_agent:rf_sink_startofpacket + wire [96:0] push_switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_data; // push_switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_data -> push_switches_s1_translator_avalon_universal_slave_0_agent:rf_sink_data + wire push_switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_ready; // push_switches_s1_translator_avalon_universal_slave_0_agent:rf_sink_ready -> push_switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_ready + wire push_switches_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_valid; // push_switches_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_src_valid -> push_switches_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_sink_valid + wire [33:0] push_switches_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_data; // push_switches_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_src_data -> push_switches_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_sink_data + wire push_switches_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_ready; // push_switches_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_sink_ready -> push_switches_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_src_ready + wire hex0_s1_translator_avalon_universal_slave_0_agent_m0_waitrequest; // hex0_s1_translator:uav_waitrequest -> hex0_s1_translator_avalon_universal_slave_0_agent:m0_waitrequest + wire [2:0] hex0_s1_translator_avalon_universal_slave_0_agent_m0_burstcount; // hex0_s1_translator_avalon_universal_slave_0_agent:m0_burstcount -> hex0_s1_translator:uav_burstcount + wire [31:0] hex0_s1_translator_avalon_universal_slave_0_agent_m0_writedata; // hex0_s1_translator_avalon_universal_slave_0_agent:m0_writedata -> hex0_s1_translator:uav_writedata + wire [18:0] hex0_s1_translator_avalon_universal_slave_0_agent_m0_address; // hex0_s1_translator_avalon_universal_slave_0_agent:m0_address -> hex0_s1_translator:uav_address + wire hex0_s1_translator_avalon_universal_slave_0_agent_m0_write; // hex0_s1_translator_avalon_universal_slave_0_agent:m0_write -> hex0_s1_translator:uav_write + wire hex0_s1_translator_avalon_universal_slave_0_agent_m0_lock; // hex0_s1_translator_avalon_universal_slave_0_agent:m0_lock -> hex0_s1_translator:uav_lock + wire hex0_s1_translator_avalon_universal_slave_0_agent_m0_read; // hex0_s1_translator_avalon_universal_slave_0_agent:m0_read -> hex0_s1_translator:uav_read + wire [31:0] hex0_s1_translator_avalon_universal_slave_0_agent_m0_readdata; // hex0_s1_translator:uav_readdata -> hex0_s1_translator_avalon_universal_slave_0_agent:m0_readdata + wire hex0_s1_translator_avalon_universal_slave_0_agent_m0_readdatavalid; // hex0_s1_translator:uav_readdatavalid -> hex0_s1_translator_avalon_universal_slave_0_agent:m0_readdatavalid + wire hex0_s1_translator_avalon_universal_slave_0_agent_m0_debugaccess; // hex0_s1_translator_avalon_universal_slave_0_agent:m0_debugaccess -> hex0_s1_translator:uav_debugaccess + wire [3:0] hex0_s1_translator_avalon_universal_slave_0_agent_m0_byteenable; // hex0_s1_translator_avalon_universal_slave_0_agent:m0_byteenable -> hex0_s1_translator:uav_byteenable + wire hex0_s1_translator_avalon_universal_slave_0_agent_rf_source_endofpacket; // hex0_s1_translator_avalon_universal_slave_0_agent:rf_source_endofpacket -> hex0_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_endofpacket + wire hex0_s1_translator_avalon_universal_slave_0_agent_rf_source_valid; // hex0_s1_translator_avalon_universal_slave_0_agent:rf_source_valid -> hex0_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_valid + wire hex0_s1_translator_avalon_universal_slave_0_agent_rf_source_startofpacket; // hex0_s1_translator_avalon_universal_slave_0_agent:rf_source_startofpacket -> hex0_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_startofpacket + wire [96:0] hex0_s1_translator_avalon_universal_slave_0_agent_rf_source_data; // hex0_s1_translator_avalon_universal_slave_0_agent:rf_source_data -> hex0_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_data + wire hex0_s1_translator_avalon_universal_slave_0_agent_rf_source_ready; // hex0_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_ready -> hex0_s1_translator_avalon_universal_slave_0_agent:rf_source_ready + wire hex0_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_endofpacket; // hex0_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_endofpacket -> hex0_s1_translator_avalon_universal_slave_0_agent:rf_sink_endofpacket + wire hex0_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_valid; // hex0_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_valid -> hex0_s1_translator_avalon_universal_slave_0_agent:rf_sink_valid + wire hex0_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_startofpacket; // hex0_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_startofpacket -> hex0_s1_translator_avalon_universal_slave_0_agent:rf_sink_startofpacket + wire [96:0] hex0_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_data; // hex0_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_data -> hex0_s1_translator_avalon_universal_slave_0_agent:rf_sink_data + wire hex0_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_ready; // hex0_s1_translator_avalon_universal_slave_0_agent:rf_sink_ready -> hex0_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_ready + wire hex0_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_valid; // hex0_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_src_valid -> hex0_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_sink_valid + wire [33:0] hex0_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_data; // hex0_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_src_data -> hex0_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_sink_data + wire hex0_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_ready; // hex0_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_sink_ready -> hex0_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_src_ready + wire hex1_s1_translator_avalon_universal_slave_0_agent_m0_waitrequest; // hex1_s1_translator:uav_waitrequest -> hex1_s1_translator_avalon_universal_slave_0_agent:m0_waitrequest + wire [2:0] hex1_s1_translator_avalon_universal_slave_0_agent_m0_burstcount; // hex1_s1_translator_avalon_universal_slave_0_agent:m0_burstcount -> hex1_s1_translator:uav_burstcount + wire [31:0] hex1_s1_translator_avalon_universal_slave_0_agent_m0_writedata; // hex1_s1_translator_avalon_universal_slave_0_agent:m0_writedata -> hex1_s1_translator:uav_writedata + wire [18:0] hex1_s1_translator_avalon_universal_slave_0_agent_m0_address; // hex1_s1_translator_avalon_universal_slave_0_agent:m0_address -> hex1_s1_translator:uav_address + wire hex1_s1_translator_avalon_universal_slave_0_agent_m0_write; // hex1_s1_translator_avalon_universal_slave_0_agent:m0_write -> hex1_s1_translator:uav_write + wire hex1_s1_translator_avalon_universal_slave_0_agent_m0_lock; // hex1_s1_translator_avalon_universal_slave_0_agent:m0_lock -> hex1_s1_translator:uav_lock + wire hex1_s1_translator_avalon_universal_slave_0_agent_m0_read; // hex1_s1_translator_avalon_universal_slave_0_agent:m0_read -> hex1_s1_translator:uav_read + wire [31:0] hex1_s1_translator_avalon_universal_slave_0_agent_m0_readdata; // hex1_s1_translator:uav_readdata -> hex1_s1_translator_avalon_universal_slave_0_agent:m0_readdata + wire hex1_s1_translator_avalon_universal_slave_0_agent_m0_readdatavalid; // hex1_s1_translator:uav_readdatavalid -> hex1_s1_translator_avalon_universal_slave_0_agent:m0_readdatavalid + wire hex1_s1_translator_avalon_universal_slave_0_agent_m0_debugaccess; // hex1_s1_translator_avalon_universal_slave_0_agent:m0_debugaccess -> hex1_s1_translator:uav_debugaccess + wire [3:0] hex1_s1_translator_avalon_universal_slave_0_agent_m0_byteenable; // hex1_s1_translator_avalon_universal_slave_0_agent:m0_byteenable -> hex1_s1_translator:uav_byteenable + wire hex1_s1_translator_avalon_universal_slave_0_agent_rf_source_endofpacket; // hex1_s1_translator_avalon_universal_slave_0_agent:rf_source_endofpacket -> hex1_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_endofpacket + wire hex1_s1_translator_avalon_universal_slave_0_agent_rf_source_valid; // hex1_s1_translator_avalon_universal_slave_0_agent:rf_source_valid -> hex1_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_valid + wire hex1_s1_translator_avalon_universal_slave_0_agent_rf_source_startofpacket; // hex1_s1_translator_avalon_universal_slave_0_agent:rf_source_startofpacket -> hex1_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_startofpacket + wire [96:0] hex1_s1_translator_avalon_universal_slave_0_agent_rf_source_data; // hex1_s1_translator_avalon_universal_slave_0_agent:rf_source_data -> hex1_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_data + wire hex1_s1_translator_avalon_universal_slave_0_agent_rf_source_ready; // hex1_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_ready -> hex1_s1_translator_avalon_universal_slave_0_agent:rf_source_ready + wire hex1_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_endofpacket; // hex1_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_endofpacket -> hex1_s1_translator_avalon_universal_slave_0_agent:rf_sink_endofpacket + wire hex1_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_valid; // hex1_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_valid -> hex1_s1_translator_avalon_universal_slave_0_agent:rf_sink_valid + wire hex1_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_startofpacket; // hex1_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_startofpacket -> hex1_s1_translator_avalon_universal_slave_0_agent:rf_sink_startofpacket + wire [96:0] hex1_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_data; // hex1_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_data -> hex1_s1_translator_avalon_universal_slave_0_agent:rf_sink_data + wire hex1_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_ready; // hex1_s1_translator_avalon_universal_slave_0_agent:rf_sink_ready -> hex1_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_ready + wire hex1_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_valid; // hex1_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_src_valid -> hex1_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_sink_valid + wire [33:0] hex1_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_data; // hex1_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_src_data -> hex1_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_sink_data + wire hex1_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_ready; // hex1_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_sink_ready -> hex1_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_src_ready + wire hex2_s1_translator_avalon_universal_slave_0_agent_m0_waitrequest; // hex2_s1_translator:uav_waitrequest -> hex2_s1_translator_avalon_universal_slave_0_agent:m0_waitrequest + wire [2:0] hex2_s1_translator_avalon_universal_slave_0_agent_m0_burstcount; // hex2_s1_translator_avalon_universal_slave_0_agent:m0_burstcount -> hex2_s1_translator:uav_burstcount + wire [31:0] hex2_s1_translator_avalon_universal_slave_0_agent_m0_writedata; // hex2_s1_translator_avalon_universal_slave_0_agent:m0_writedata -> hex2_s1_translator:uav_writedata + wire [18:0] hex2_s1_translator_avalon_universal_slave_0_agent_m0_address; // hex2_s1_translator_avalon_universal_slave_0_agent:m0_address -> hex2_s1_translator:uav_address + wire hex2_s1_translator_avalon_universal_slave_0_agent_m0_write; // hex2_s1_translator_avalon_universal_slave_0_agent:m0_write -> hex2_s1_translator:uav_write + wire hex2_s1_translator_avalon_universal_slave_0_agent_m0_lock; // hex2_s1_translator_avalon_universal_slave_0_agent:m0_lock -> hex2_s1_translator:uav_lock + wire hex2_s1_translator_avalon_universal_slave_0_agent_m0_read; // hex2_s1_translator_avalon_universal_slave_0_agent:m0_read -> hex2_s1_translator:uav_read + wire [31:0] hex2_s1_translator_avalon_universal_slave_0_agent_m0_readdata; // hex2_s1_translator:uav_readdata -> hex2_s1_translator_avalon_universal_slave_0_agent:m0_readdata + wire hex2_s1_translator_avalon_universal_slave_0_agent_m0_readdatavalid; // hex2_s1_translator:uav_readdatavalid -> hex2_s1_translator_avalon_universal_slave_0_agent:m0_readdatavalid + wire hex2_s1_translator_avalon_universal_slave_0_agent_m0_debugaccess; // hex2_s1_translator_avalon_universal_slave_0_agent:m0_debugaccess -> hex2_s1_translator:uav_debugaccess + wire [3:0] hex2_s1_translator_avalon_universal_slave_0_agent_m0_byteenable; // hex2_s1_translator_avalon_universal_slave_0_agent:m0_byteenable -> hex2_s1_translator:uav_byteenable + wire hex2_s1_translator_avalon_universal_slave_0_agent_rf_source_endofpacket; // hex2_s1_translator_avalon_universal_slave_0_agent:rf_source_endofpacket -> hex2_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_endofpacket + wire hex2_s1_translator_avalon_universal_slave_0_agent_rf_source_valid; // hex2_s1_translator_avalon_universal_slave_0_agent:rf_source_valid -> hex2_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_valid + wire hex2_s1_translator_avalon_universal_slave_0_agent_rf_source_startofpacket; // hex2_s1_translator_avalon_universal_slave_0_agent:rf_source_startofpacket -> hex2_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_startofpacket + wire [96:0] hex2_s1_translator_avalon_universal_slave_0_agent_rf_source_data; // hex2_s1_translator_avalon_universal_slave_0_agent:rf_source_data -> hex2_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_data + wire hex2_s1_translator_avalon_universal_slave_0_agent_rf_source_ready; // hex2_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_ready -> hex2_s1_translator_avalon_universal_slave_0_agent:rf_source_ready + wire hex2_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_endofpacket; // hex2_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_endofpacket -> hex2_s1_translator_avalon_universal_slave_0_agent:rf_sink_endofpacket + wire hex2_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_valid; // hex2_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_valid -> hex2_s1_translator_avalon_universal_slave_0_agent:rf_sink_valid + wire hex2_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_startofpacket; // hex2_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_startofpacket -> hex2_s1_translator_avalon_universal_slave_0_agent:rf_sink_startofpacket + wire [96:0] hex2_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_data; // hex2_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_data -> hex2_s1_translator_avalon_universal_slave_0_agent:rf_sink_data + wire hex2_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_ready; // hex2_s1_translator_avalon_universal_slave_0_agent:rf_sink_ready -> hex2_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_ready + wire hex2_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_valid; // hex2_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_src_valid -> hex2_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_sink_valid + wire [33:0] hex2_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_data; // hex2_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_src_data -> hex2_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_sink_data + wire hex2_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_ready; // hex2_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_sink_ready -> hex2_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_src_ready + wire hex3_s1_translator_avalon_universal_slave_0_agent_m0_waitrequest; // hex3_s1_translator:uav_waitrequest -> hex3_s1_translator_avalon_universal_slave_0_agent:m0_waitrequest + wire [2:0] hex3_s1_translator_avalon_universal_slave_0_agent_m0_burstcount; // hex3_s1_translator_avalon_universal_slave_0_agent:m0_burstcount -> hex3_s1_translator:uav_burstcount + wire [31:0] hex3_s1_translator_avalon_universal_slave_0_agent_m0_writedata; // hex3_s1_translator_avalon_universal_slave_0_agent:m0_writedata -> hex3_s1_translator:uav_writedata + wire [18:0] hex3_s1_translator_avalon_universal_slave_0_agent_m0_address; // hex3_s1_translator_avalon_universal_slave_0_agent:m0_address -> hex3_s1_translator:uav_address + wire hex3_s1_translator_avalon_universal_slave_0_agent_m0_write; // hex3_s1_translator_avalon_universal_slave_0_agent:m0_write -> hex3_s1_translator:uav_write + wire hex3_s1_translator_avalon_universal_slave_0_agent_m0_lock; // hex3_s1_translator_avalon_universal_slave_0_agent:m0_lock -> hex3_s1_translator:uav_lock + wire hex3_s1_translator_avalon_universal_slave_0_agent_m0_read; // hex3_s1_translator_avalon_universal_slave_0_agent:m0_read -> hex3_s1_translator:uav_read + wire [31:0] hex3_s1_translator_avalon_universal_slave_0_agent_m0_readdata; // hex3_s1_translator:uav_readdata -> hex3_s1_translator_avalon_universal_slave_0_agent:m0_readdata + wire hex3_s1_translator_avalon_universal_slave_0_agent_m0_readdatavalid; // hex3_s1_translator:uav_readdatavalid -> hex3_s1_translator_avalon_universal_slave_0_agent:m0_readdatavalid + wire hex3_s1_translator_avalon_universal_slave_0_agent_m0_debugaccess; // hex3_s1_translator_avalon_universal_slave_0_agent:m0_debugaccess -> hex3_s1_translator:uav_debugaccess + wire [3:0] hex3_s1_translator_avalon_universal_slave_0_agent_m0_byteenable; // hex3_s1_translator_avalon_universal_slave_0_agent:m0_byteenable -> hex3_s1_translator:uav_byteenable + wire hex3_s1_translator_avalon_universal_slave_0_agent_rf_source_endofpacket; // hex3_s1_translator_avalon_universal_slave_0_agent:rf_source_endofpacket -> hex3_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_endofpacket + wire hex3_s1_translator_avalon_universal_slave_0_agent_rf_source_valid; // hex3_s1_translator_avalon_universal_slave_0_agent:rf_source_valid -> hex3_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_valid + wire hex3_s1_translator_avalon_universal_slave_0_agent_rf_source_startofpacket; // hex3_s1_translator_avalon_universal_slave_0_agent:rf_source_startofpacket -> hex3_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_startofpacket + wire [96:0] hex3_s1_translator_avalon_universal_slave_0_agent_rf_source_data; // hex3_s1_translator_avalon_universal_slave_0_agent:rf_source_data -> hex3_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_data + wire hex3_s1_translator_avalon_universal_slave_0_agent_rf_source_ready; // hex3_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_ready -> hex3_s1_translator_avalon_universal_slave_0_agent:rf_source_ready + wire hex3_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_endofpacket; // hex3_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_endofpacket -> hex3_s1_translator_avalon_universal_slave_0_agent:rf_sink_endofpacket + wire hex3_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_valid; // hex3_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_valid -> hex3_s1_translator_avalon_universal_slave_0_agent:rf_sink_valid + wire hex3_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_startofpacket; // hex3_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_startofpacket -> hex3_s1_translator_avalon_universal_slave_0_agent:rf_sink_startofpacket + wire [96:0] hex3_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_data; // hex3_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_data -> hex3_s1_translator_avalon_universal_slave_0_agent:rf_sink_data + wire hex3_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_ready; // hex3_s1_translator_avalon_universal_slave_0_agent:rf_sink_ready -> hex3_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_ready + wire hex3_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_valid; // hex3_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_src_valid -> hex3_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_sink_valid + wire [33:0] hex3_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_data; // hex3_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_src_data -> hex3_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_sink_data + wire hex3_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_ready; // hex3_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_sink_ready -> hex3_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_src_ready + wire hex4_s1_translator_avalon_universal_slave_0_agent_m0_waitrequest; // hex4_s1_translator:uav_waitrequest -> hex4_s1_translator_avalon_universal_slave_0_agent:m0_waitrequest + wire [2:0] hex4_s1_translator_avalon_universal_slave_0_agent_m0_burstcount; // hex4_s1_translator_avalon_universal_slave_0_agent:m0_burstcount -> hex4_s1_translator:uav_burstcount + wire [31:0] hex4_s1_translator_avalon_universal_slave_0_agent_m0_writedata; // hex4_s1_translator_avalon_universal_slave_0_agent:m0_writedata -> hex4_s1_translator:uav_writedata + wire [18:0] hex4_s1_translator_avalon_universal_slave_0_agent_m0_address; // hex4_s1_translator_avalon_universal_slave_0_agent:m0_address -> hex4_s1_translator:uav_address + wire hex4_s1_translator_avalon_universal_slave_0_agent_m0_write; // hex4_s1_translator_avalon_universal_slave_0_agent:m0_write -> hex4_s1_translator:uav_write + wire hex4_s1_translator_avalon_universal_slave_0_agent_m0_lock; // hex4_s1_translator_avalon_universal_slave_0_agent:m0_lock -> hex4_s1_translator:uav_lock + wire hex4_s1_translator_avalon_universal_slave_0_agent_m0_read; // hex4_s1_translator_avalon_universal_slave_0_agent:m0_read -> hex4_s1_translator:uav_read + wire [31:0] hex4_s1_translator_avalon_universal_slave_0_agent_m0_readdata; // hex4_s1_translator:uav_readdata -> hex4_s1_translator_avalon_universal_slave_0_agent:m0_readdata + wire hex4_s1_translator_avalon_universal_slave_0_agent_m0_readdatavalid; // hex4_s1_translator:uav_readdatavalid -> hex4_s1_translator_avalon_universal_slave_0_agent:m0_readdatavalid + wire hex4_s1_translator_avalon_universal_slave_0_agent_m0_debugaccess; // hex4_s1_translator_avalon_universal_slave_0_agent:m0_debugaccess -> hex4_s1_translator:uav_debugaccess + wire [3:0] hex4_s1_translator_avalon_universal_slave_0_agent_m0_byteenable; // hex4_s1_translator_avalon_universal_slave_0_agent:m0_byteenable -> hex4_s1_translator:uav_byteenable + wire hex4_s1_translator_avalon_universal_slave_0_agent_rf_source_endofpacket; // hex4_s1_translator_avalon_universal_slave_0_agent:rf_source_endofpacket -> hex4_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_endofpacket + wire hex4_s1_translator_avalon_universal_slave_0_agent_rf_source_valid; // hex4_s1_translator_avalon_universal_slave_0_agent:rf_source_valid -> hex4_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_valid + wire hex4_s1_translator_avalon_universal_slave_0_agent_rf_source_startofpacket; // hex4_s1_translator_avalon_universal_slave_0_agent:rf_source_startofpacket -> hex4_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_startofpacket + wire [96:0] hex4_s1_translator_avalon_universal_slave_0_agent_rf_source_data; // hex4_s1_translator_avalon_universal_slave_0_agent:rf_source_data -> hex4_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_data + wire hex4_s1_translator_avalon_universal_slave_0_agent_rf_source_ready; // hex4_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_ready -> hex4_s1_translator_avalon_universal_slave_0_agent:rf_source_ready + wire hex4_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_endofpacket; // hex4_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_endofpacket -> hex4_s1_translator_avalon_universal_slave_0_agent:rf_sink_endofpacket + wire hex4_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_valid; // hex4_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_valid -> hex4_s1_translator_avalon_universal_slave_0_agent:rf_sink_valid + wire hex4_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_startofpacket; // hex4_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_startofpacket -> hex4_s1_translator_avalon_universal_slave_0_agent:rf_sink_startofpacket + wire [96:0] hex4_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_data; // hex4_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_data -> hex4_s1_translator_avalon_universal_slave_0_agent:rf_sink_data + wire hex4_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_ready; // hex4_s1_translator_avalon_universal_slave_0_agent:rf_sink_ready -> hex4_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_ready + wire hex4_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_valid; // hex4_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_src_valid -> hex4_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_sink_valid + wire [33:0] hex4_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_data; // hex4_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_src_data -> hex4_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_sink_data + wire hex4_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_ready; // hex4_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_sink_ready -> hex4_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_src_ready + wire hex5_s1_translator_avalon_universal_slave_0_agent_m0_waitrequest; // hex5_s1_translator:uav_waitrequest -> hex5_s1_translator_avalon_universal_slave_0_agent:m0_waitrequest + wire [2:0] hex5_s1_translator_avalon_universal_slave_0_agent_m0_burstcount; // hex5_s1_translator_avalon_universal_slave_0_agent:m0_burstcount -> hex5_s1_translator:uav_burstcount + wire [31:0] hex5_s1_translator_avalon_universal_slave_0_agent_m0_writedata; // hex5_s1_translator_avalon_universal_slave_0_agent:m0_writedata -> hex5_s1_translator:uav_writedata + wire [18:0] hex5_s1_translator_avalon_universal_slave_0_agent_m0_address; // hex5_s1_translator_avalon_universal_slave_0_agent:m0_address -> hex5_s1_translator:uav_address + wire hex5_s1_translator_avalon_universal_slave_0_agent_m0_write; // hex5_s1_translator_avalon_universal_slave_0_agent:m0_write -> hex5_s1_translator:uav_write + wire hex5_s1_translator_avalon_universal_slave_0_agent_m0_lock; // hex5_s1_translator_avalon_universal_slave_0_agent:m0_lock -> hex5_s1_translator:uav_lock + wire hex5_s1_translator_avalon_universal_slave_0_agent_m0_read; // hex5_s1_translator_avalon_universal_slave_0_agent:m0_read -> hex5_s1_translator:uav_read + wire [31:0] hex5_s1_translator_avalon_universal_slave_0_agent_m0_readdata; // hex5_s1_translator:uav_readdata -> hex5_s1_translator_avalon_universal_slave_0_agent:m0_readdata + wire hex5_s1_translator_avalon_universal_slave_0_agent_m0_readdatavalid; // hex5_s1_translator:uav_readdatavalid -> hex5_s1_translator_avalon_universal_slave_0_agent:m0_readdatavalid + wire hex5_s1_translator_avalon_universal_slave_0_agent_m0_debugaccess; // hex5_s1_translator_avalon_universal_slave_0_agent:m0_debugaccess -> hex5_s1_translator:uav_debugaccess + wire [3:0] hex5_s1_translator_avalon_universal_slave_0_agent_m0_byteenable; // hex5_s1_translator_avalon_universal_slave_0_agent:m0_byteenable -> hex5_s1_translator:uav_byteenable + wire hex5_s1_translator_avalon_universal_slave_0_agent_rf_source_endofpacket; // hex5_s1_translator_avalon_universal_slave_0_agent:rf_source_endofpacket -> hex5_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_endofpacket + wire hex5_s1_translator_avalon_universal_slave_0_agent_rf_source_valid; // hex5_s1_translator_avalon_universal_slave_0_agent:rf_source_valid -> hex5_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_valid + wire hex5_s1_translator_avalon_universal_slave_0_agent_rf_source_startofpacket; // hex5_s1_translator_avalon_universal_slave_0_agent:rf_source_startofpacket -> hex5_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_startofpacket + wire [96:0] hex5_s1_translator_avalon_universal_slave_0_agent_rf_source_data; // hex5_s1_translator_avalon_universal_slave_0_agent:rf_source_data -> hex5_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_data + wire hex5_s1_translator_avalon_universal_slave_0_agent_rf_source_ready; // hex5_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_ready -> hex5_s1_translator_avalon_universal_slave_0_agent:rf_source_ready + wire hex5_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_endofpacket; // hex5_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_endofpacket -> hex5_s1_translator_avalon_universal_slave_0_agent:rf_sink_endofpacket + wire hex5_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_valid; // hex5_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_valid -> hex5_s1_translator_avalon_universal_slave_0_agent:rf_sink_valid + wire hex5_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_startofpacket; // hex5_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_startofpacket -> hex5_s1_translator_avalon_universal_slave_0_agent:rf_sink_startofpacket + wire [96:0] hex5_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_data; // hex5_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_data -> hex5_s1_translator_avalon_universal_slave_0_agent:rf_sink_data + wire hex5_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_ready; // hex5_s1_translator_avalon_universal_slave_0_agent:rf_sink_ready -> hex5_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_ready + wire hex5_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_valid; // hex5_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_src_valid -> hex5_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_sink_valid + wire [33:0] hex5_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_data; // hex5_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_src_data -> hex5_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_sink_data + wire hex5_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_ready; // hex5_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_sink_ready -> hex5_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_src_ready + wire hex6_s1_translator_avalon_universal_slave_0_agent_m0_waitrequest; // hex6_s1_translator:uav_waitrequest -> hex6_s1_translator_avalon_universal_slave_0_agent:m0_waitrequest + wire [2:0] hex6_s1_translator_avalon_universal_slave_0_agent_m0_burstcount; // hex6_s1_translator_avalon_universal_slave_0_agent:m0_burstcount -> hex6_s1_translator:uav_burstcount + wire [31:0] hex6_s1_translator_avalon_universal_slave_0_agent_m0_writedata; // hex6_s1_translator_avalon_universal_slave_0_agent:m0_writedata -> hex6_s1_translator:uav_writedata + wire [18:0] hex6_s1_translator_avalon_universal_slave_0_agent_m0_address; // hex6_s1_translator_avalon_universal_slave_0_agent:m0_address -> hex6_s1_translator:uav_address + wire hex6_s1_translator_avalon_universal_slave_0_agent_m0_write; // hex6_s1_translator_avalon_universal_slave_0_agent:m0_write -> hex6_s1_translator:uav_write + wire hex6_s1_translator_avalon_universal_slave_0_agent_m0_lock; // hex6_s1_translator_avalon_universal_slave_0_agent:m0_lock -> hex6_s1_translator:uav_lock + wire hex6_s1_translator_avalon_universal_slave_0_agent_m0_read; // hex6_s1_translator_avalon_universal_slave_0_agent:m0_read -> hex6_s1_translator:uav_read + wire [31:0] hex6_s1_translator_avalon_universal_slave_0_agent_m0_readdata; // hex6_s1_translator:uav_readdata -> hex6_s1_translator_avalon_universal_slave_0_agent:m0_readdata + wire hex6_s1_translator_avalon_universal_slave_0_agent_m0_readdatavalid; // hex6_s1_translator:uav_readdatavalid -> hex6_s1_translator_avalon_universal_slave_0_agent:m0_readdatavalid + wire hex6_s1_translator_avalon_universal_slave_0_agent_m0_debugaccess; // hex6_s1_translator_avalon_universal_slave_0_agent:m0_debugaccess -> hex6_s1_translator:uav_debugaccess + wire [3:0] hex6_s1_translator_avalon_universal_slave_0_agent_m0_byteenable; // hex6_s1_translator_avalon_universal_slave_0_agent:m0_byteenable -> hex6_s1_translator:uav_byteenable + wire hex6_s1_translator_avalon_universal_slave_0_agent_rf_source_endofpacket; // hex6_s1_translator_avalon_universal_slave_0_agent:rf_source_endofpacket -> hex6_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_endofpacket + wire hex6_s1_translator_avalon_universal_slave_0_agent_rf_source_valid; // hex6_s1_translator_avalon_universal_slave_0_agent:rf_source_valid -> hex6_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_valid + wire hex6_s1_translator_avalon_universal_slave_0_agent_rf_source_startofpacket; // hex6_s1_translator_avalon_universal_slave_0_agent:rf_source_startofpacket -> hex6_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_startofpacket + wire [96:0] hex6_s1_translator_avalon_universal_slave_0_agent_rf_source_data; // hex6_s1_translator_avalon_universal_slave_0_agent:rf_source_data -> hex6_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_data + wire hex6_s1_translator_avalon_universal_slave_0_agent_rf_source_ready; // hex6_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_ready -> hex6_s1_translator_avalon_universal_slave_0_agent:rf_source_ready + wire hex6_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_endofpacket; // hex6_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_endofpacket -> hex6_s1_translator_avalon_universal_slave_0_agent:rf_sink_endofpacket + wire hex6_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_valid; // hex6_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_valid -> hex6_s1_translator_avalon_universal_slave_0_agent:rf_sink_valid + wire hex6_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_startofpacket; // hex6_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_startofpacket -> hex6_s1_translator_avalon_universal_slave_0_agent:rf_sink_startofpacket + wire [96:0] hex6_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_data; // hex6_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_data -> hex6_s1_translator_avalon_universal_slave_0_agent:rf_sink_data + wire hex6_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_ready; // hex6_s1_translator_avalon_universal_slave_0_agent:rf_sink_ready -> hex6_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_ready + wire hex6_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_valid; // hex6_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_src_valid -> hex6_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_sink_valid + wire [33:0] hex6_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_data; // hex6_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_src_data -> hex6_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_sink_data + wire hex6_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_ready; // hex6_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_sink_ready -> hex6_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_src_ready + wire hex7_s1_translator_avalon_universal_slave_0_agent_m0_waitrequest; // hex7_s1_translator:uav_waitrequest -> hex7_s1_translator_avalon_universal_slave_0_agent:m0_waitrequest + wire [2:0] hex7_s1_translator_avalon_universal_slave_0_agent_m0_burstcount; // hex7_s1_translator_avalon_universal_slave_0_agent:m0_burstcount -> hex7_s1_translator:uav_burstcount + wire [31:0] hex7_s1_translator_avalon_universal_slave_0_agent_m0_writedata; // hex7_s1_translator_avalon_universal_slave_0_agent:m0_writedata -> hex7_s1_translator:uav_writedata + wire [18:0] hex7_s1_translator_avalon_universal_slave_0_agent_m0_address; // hex7_s1_translator_avalon_universal_slave_0_agent:m0_address -> hex7_s1_translator:uav_address + wire hex7_s1_translator_avalon_universal_slave_0_agent_m0_write; // hex7_s1_translator_avalon_universal_slave_0_agent:m0_write -> hex7_s1_translator:uav_write + wire hex7_s1_translator_avalon_universal_slave_0_agent_m0_lock; // hex7_s1_translator_avalon_universal_slave_0_agent:m0_lock -> hex7_s1_translator:uav_lock + wire hex7_s1_translator_avalon_universal_slave_0_agent_m0_read; // hex7_s1_translator_avalon_universal_slave_0_agent:m0_read -> hex7_s1_translator:uav_read + wire [31:0] hex7_s1_translator_avalon_universal_slave_0_agent_m0_readdata; // hex7_s1_translator:uav_readdata -> hex7_s1_translator_avalon_universal_slave_0_agent:m0_readdata + wire hex7_s1_translator_avalon_universal_slave_0_agent_m0_readdatavalid; // hex7_s1_translator:uav_readdatavalid -> hex7_s1_translator_avalon_universal_slave_0_agent:m0_readdatavalid + wire hex7_s1_translator_avalon_universal_slave_0_agent_m0_debugaccess; // hex7_s1_translator_avalon_universal_slave_0_agent:m0_debugaccess -> hex7_s1_translator:uav_debugaccess + wire [3:0] hex7_s1_translator_avalon_universal_slave_0_agent_m0_byteenable; // hex7_s1_translator_avalon_universal_slave_0_agent:m0_byteenable -> hex7_s1_translator:uav_byteenable + wire hex7_s1_translator_avalon_universal_slave_0_agent_rf_source_endofpacket; // hex7_s1_translator_avalon_universal_slave_0_agent:rf_source_endofpacket -> hex7_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_endofpacket + wire hex7_s1_translator_avalon_universal_slave_0_agent_rf_source_valid; // hex7_s1_translator_avalon_universal_slave_0_agent:rf_source_valid -> hex7_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_valid + wire hex7_s1_translator_avalon_universal_slave_0_agent_rf_source_startofpacket; // hex7_s1_translator_avalon_universal_slave_0_agent:rf_source_startofpacket -> hex7_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_startofpacket + wire [96:0] hex7_s1_translator_avalon_universal_slave_0_agent_rf_source_data; // hex7_s1_translator_avalon_universal_slave_0_agent:rf_source_data -> hex7_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_data + wire hex7_s1_translator_avalon_universal_slave_0_agent_rf_source_ready; // hex7_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_ready -> hex7_s1_translator_avalon_universal_slave_0_agent:rf_source_ready + wire hex7_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_endofpacket; // hex7_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_endofpacket -> hex7_s1_translator_avalon_universal_slave_0_agent:rf_sink_endofpacket + wire hex7_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_valid; // hex7_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_valid -> hex7_s1_translator_avalon_universal_slave_0_agent:rf_sink_valid + wire hex7_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_startofpacket; // hex7_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_startofpacket -> hex7_s1_translator_avalon_universal_slave_0_agent:rf_sink_startofpacket + wire [96:0] hex7_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_data; // hex7_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_data -> hex7_s1_translator_avalon_universal_slave_0_agent:rf_sink_data + wire hex7_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_ready; // hex7_s1_translator_avalon_universal_slave_0_agent:rf_sink_ready -> hex7_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_ready + wire hex7_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_valid; // hex7_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_src_valid -> hex7_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_sink_valid + wire [33:0] hex7_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_data; // hex7_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_src_data -> hex7_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_sink_data + wire hex7_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_ready; // hex7_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_sink_ready -> hex7_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_src_ready + wire lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_m0_waitrequest; // lcd_16207_0_control_slave_translator:uav_waitrequest -> lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent:m0_waitrequest + wire [2:0] lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_m0_burstcount; // lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent:m0_burstcount -> lcd_16207_0_control_slave_translator:uav_burstcount + wire [31:0] lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_m0_writedata; // lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent:m0_writedata -> lcd_16207_0_control_slave_translator:uav_writedata + wire [18:0] lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_m0_address; // lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent:m0_address -> lcd_16207_0_control_slave_translator:uav_address + wire lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_m0_write; // lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent:m0_write -> lcd_16207_0_control_slave_translator:uav_write + wire lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_m0_lock; // lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent:m0_lock -> lcd_16207_0_control_slave_translator:uav_lock + wire lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_m0_read; // lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent:m0_read -> lcd_16207_0_control_slave_translator:uav_read + wire [31:0] lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_m0_readdata; // lcd_16207_0_control_slave_translator:uav_readdata -> lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent:m0_readdata + wire lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_m0_readdatavalid; // lcd_16207_0_control_slave_translator:uav_readdatavalid -> lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent:m0_readdatavalid + wire lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_m0_debugaccess; // lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent:m0_debugaccess -> lcd_16207_0_control_slave_translator:uav_debugaccess + wire [3:0] lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_m0_byteenable; // lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent:m0_byteenable -> lcd_16207_0_control_slave_translator:uav_byteenable + wire lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rf_source_endofpacket; // lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent:rf_source_endofpacket -> lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rsp_fifo:in_endofpacket + wire lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rf_source_valid; // lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent:rf_source_valid -> lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rsp_fifo:in_valid + wire lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rf_source_startofpacket; // lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent:rf_source_startofpacket -> lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rsp_fifo:in_startofpacket + wire [96:0] lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rf_source_data; // lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent:rf_source_data -> lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rsp_fifo:in_data + wire lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rf_source_ready; // lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rsp_fifo:in_ready -> lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent:rf_source_ready + wire lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rsp_fifo_out_endofpacket; // lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rsp_fifo:out_endofpacket -> lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent:rf_sink_endofpacket + wire lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rsp_fifo_out_valid; // lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rsp_fifo:out_valid -> lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent:rf_sink_valid + wire lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rsp_fifo_out_startofpacket; // lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rsp_fifo:out_startofpacket -> lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent:rf_sink_startofpacket + wire [96:0] lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rsp_fifo_out_data; // lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rsp_fifo:out_data -> lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent:rf_sink_data + wire lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rsp_fifo_out_ready; // lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent:rf_sink_ready -> lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rsp_fifo:out_ready + wire lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rdata_fifo_src_valid; // lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent:rdata_fifo_src_valid -> lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent:rdata_fifo_sink_valid + wire [33:0] lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rdata_fifo_src_data; // lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent:rdata_fifo_src_data -> lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent:rdata_fifo_sink_data + wire lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rdata_fifo_src_ready; // lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent:rdata_fifo_sink_ready -> lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent:rdata_fifo_src_ready + wire lcd_on_s1_translator_avalon_universal_slave_0_agent_m0_waitrequest; // lcd_on_s1_translator:uav_waitrequest -> lcd_on_s1_translator_avalon_universal_slave_0_agent:m0_waitrequest + wire [2:0] lcd_on_s1_translator_avalon_universal_slave_0_agent_m0_burstcount; // lcd_on_s1_translator_avalon_universal_slave_0_agent:m0_burstcount -> lcd_on_s1_translator:uav_burstcount + wire [31:0] lcd_on_s1_translator_avalon_universal_slave_0_agent_m0_writedata; // lcd_on_s1_translator_avalon_universal_slave_0_agent:m0_writedata -> lcd_on_s1_translator:uav_writedata + wire [18:0] lcd_on_s1_translator_avalon_universal_slave_0_agent_m0_address; // lcd_on_s1_translator_avalon_universal_slave_0_agent:m0_address -> lcd_on_s1_translator:uav_address + wire lcd_on_s1_translator_avalon_universal_slave_0_agent_m0_write; // lcd_on_s1_translator_avalon_universal_slave_0_agent:m0_write -> lcd_on_s1_translator:uav_write + wire lcd_on_s1_translator_avalon_universal_slave_0_agent_m0_lock; // lcd_on_s1_translator_avalon_universal_slave_0_agent:m0_lock -> lcd_on_s1_translator:uav_lock + wire lcd_on_s1_translator_avalon_universal_slave_0_agent_m0_read; // lcd_on_s1_translator_avalon_universal_slave_0_agent:m0_read -> lcd_on_s1_translator:uav_read + wire [31:0] lcd_on_s1_translator_avalon_universal_slave_0_agent_m0_readdata; // lcd_on_s1_translator:uav_readdata -> lcd_on_s1_translator_avalon_universal_slave_0_agent:m0_readdata + wire lcd_on_s1_translator_avalon_universal_slave_0_agent_m0_readdatavalid; // lcd_on_s1_translator:uav_readdatavalid -> lcd_on_s1_translator_avalon_universal_slave_0_agent:m0_readdatavalid + wire lcd_on_s1_translator_avalon_universal_slave_0_agent_m0_debugaccess; // lcd_on_s1_translator_avalon_universal_slave_0_agent:m0_debugaccess -> lcd_on_s1_translator:uav_debugaccess + wire [3:0] lcd_on_s1_translator_avalon_universal_slave_0_agent_m0_byteenable; // lcd_on_s1_translator_avalon_universal_slave_0_agent:m0_byteenable -> lcd_on_s1_translator:uav_byteenable + wire lcd_on_s1_translator_avalon_universal_slave_0_agent_rf_source_endofpacket; // lcd_on_s1_translator_avalon_universal_slave_0_agent:rf_source_endofpacket -> lcd_on_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_endofpacket + wire lcd_on_s1_translator_avalon_universal_slave_0_agent_rf_source_valid; // lcd_on_s1_translator_avalon_universal_slave_0_agent:rf_source_valid -> lcd_on_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_valid + wire lcd_on_s1_translator_avalon_universal_slave_0_agent_rf_source_startofpacket; // lcd_on_s1_translator_avalon_universal_slave_0_agent:rf_source_startofpacket -> lcd_on_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_startofpacket + wire [96:0] lcd_on_s1_translator_avalon_universal_slave_0_agent_rf_source_data; // lcd_on_s1_translator_avalon_universal_slave_0_agent:rf_source_data -> lcd_on_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_data + wire lcd_on_s1_translator_avalon_universal_slave_0_agent_rf_source_ready; // lcd_on_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_ready -> lcd_on_s1_translator_avalon_universal_slave_0_agent:rf_source_ready + wire lcd_on_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_endofpacket; // lcd_on_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_endofpacket -> lcd_on_s1_translator_avalon_universal_slave_0_agent:rf_sink_endofpacket + wire lcd_on_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_valid; // lcd_on_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_valid -> lcd_on_s1_translator_avalon_universal_slave_0_agent:rf_sink_valid + wire lcd_on_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_startofpacket; // lcd_on_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_startofpacket -> lcd_on_s1_translator_avalon_universal_slave_0_agent:rf_sink_startofpacket + wire [96:0] lcd_on_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_data; // lcd_on_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_data -> lcd_on_s1_translator_avalon_universal_slave_0_agent:rf_sink_data + wire lcd_on_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_ready; // lcd_on_s1_translator_avalon_universal_slave_0_agent:rf_sink_ready -> lcd_on_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_ready + wire lcd_on_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_valid; // lcd_on_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_src_valid -> lcd_on_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_sink_valid + wire [33:0] lcd_on_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_data; // lcd_on_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_src_data -> lcd_on_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_sink_data + wire lcd_on_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_ready; // lcd_on_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_sink_ready -> lcd_on_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_src_ready + wire lcd_blon_s1_translator_avalon_universal_slave_0_agent_m0_waitrequest; // lcd_blon_s1_translator:uav_waitrequest -> lcd_blon_s1_translator_avalon_universal_slave_0_agent:m0_waitrequest + wire [2:0] lcd_blon_s1_translator_avalon_universal_slave_0_agent_m0_burstcount; // lcd_blon_s1_translator_avalon_universal_slave_0_agent:m0_burstcount -> lcd_blon_s1_translator:uav_burstcount + wire [31:0] lcd_blon_s1_translator_avalon_universal_slave_0_agent_m0_writedata; // lcd_blon_s1_translator_avalon_universal_slave_0_agent:m0_writedata -> lcd_blon_s1_translator:uav_writedata + wire [18:0] lcd_blon_s1_translator_avalon_universal_slave_0_agent_m0_address; // lcd_blon_s1_translator_avalon_universal_slave_0_agent:m0_address -> lcd_blon_s1_translator:uav_address + wire lcd_blon_s1_translator_avalon_universal_slave_0_agent_m0_write; // lcd_blon_s1_translator_avalon_universal_slave_0_agent:m0_write -> lcd_blon_s1_translator:uav_write + wire lcd_blon_s1_translator_avalon_universal_slave_0_agent_m0_lock; // lcd_blon_s1_translator_avalon_universal_slave_0_agent:m0_lock -> lcd_blon_s1_translator:uav_lock + wire lcd_blon_s1_translator_avalon_universal_slave_0_agent_m0_read; // lcd_blon_s1_translator_avalon_universal_slave_0_agent:m0_read -> lcd_blon_s1_translator:uav_read + wire [31:0] lcd_blon_s1_translator_avalon_universal_slave_0_agent_m0_readdata; // lcd_blon_s1_translator:uav_readdata -> lcd_blon_s1_translator_avalon_universal_slave_0_agent:m0_readdata + wire lcd_blon_s1_translator_avalon_universal_slave_0_agent_m0_readdatavalid; // lcd_blon_s1_translator:uav_readdatavalid -> lcd_blon_s1_translator_avalon_universal_slave_0_agent:m0_readdatavalid + wire lcd_blon_s1_translator_avalon_universal_slave_0_agent_m0_debugaccess; // lcd_blon_s1_translator_avalon_universal_slave_0_agent:m0_debugaccess -> lcd_blon_s1_translator:uav_debugaccess + wire [3:0] lcd_blon_s1_translator_avalon_universal_slave_0_agent_m0_byteenable; // lcd_blon_s1_translator_avalon_universal_slave_0_agent:m0_byteenable -> lcd_blon_s1_translator:uav_byteenable + wire lcd_blon_s1_translator_avalon_universal_slave_0_agent_rf_source_endofpacket; // lcd_blon_s1_translator_avalon_universal_slave_0_agent:rf_source_endofpacket -> lcd_blon_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_endofpacket + wire lcd_blon_s1_translator_avalon_universal_slave_0_agent_rf_source_valid; // lcd_blon_s1_translator_avalon_universal_slave_0_agent:rf_source_valid -> lcd_blon_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_valid + wire lcd_blon_s1_translator_avalon_universal_slave_0_agent_rf_source_startofpacket; // lcd_blon_s1_translator_avalon_universal_slave_0_agent:rf_source_startofpacket -> lcd_blon_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_startofpacket + wire [96:0] lcd_blon_s1_translator_avalon_universal_slave_0_agent_rf_source_data; // lcd_blon_s1_translator_avalon_universal_slave_0_agent:rf_source_data -> lcd_blon_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_data + wire lcd_blon_s1_translator_avalon_universal_slave_0_agent_rf_source_ready; // lcd_blon_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_ready -> lcd_blon_s1_translator_avalon_universal_slave_0_agent:rf_source_ready + wire lcd_blon_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_endofpacket; // lcd_blon_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_endofpacket -> lcd_blon_s1_translator_avalon_universal_slave_0_agent:rf_sink_endofpacket + wire lcd_blon_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_valid; // lcd_blon_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_valid -> lcd_blon_s1_translator_avalon_universal_slave_0_agent:rf_sink_valid + wire lcd_blon_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_startofpacket; // lcd_blon_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_startofpacket -> lcd_blon_s1_translator_avalon_universal_slave_0_agent:rf_sink_startofpacket + wire [96:0] lcd_blon_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_data; // lcd_blon_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_data -> lcd_blon_s1_translator_avalon_universal_slave_0_agent:rf_sink_data + wire lcd_blon_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_ready; // lcd_blon_s1_translator_avalon_universal_slave_0_agent:rf_sink_ready -> lcd_blon_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_ready + wire lcd_blon_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_valid; // lcd_blon_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_src_valid -> lcd_blon_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_sink_valid + wire [33:0] lcd_blon_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_data; // lcd_blon_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_src_data -> lcd_blon_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_sink_data + wire lcd_blon_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_ready; // lcd_blon_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_sink_ready -> lcd_blon_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_src_ready + wire nios2_processor_instruction_master_translator_avalon_universal_master_0_agent_cp_endofpacket; // nios2_processor_instruction_master_translator_avalon_universal_master_0_agent:cp_endofpacket -> addr_router:sink_endofpacket + wire nios2_processor_instruction_master_translator_avalon_universal_master_0_agent_cp_valid; // nios2_processor_instruction_master_translator_avalon_universal_master_0_agent:cp_valid -> addr_router:sink_valid + wire nios2_processor_instruction_master_translator_avalon_universal_master_0_agent_cp_startofpacket; // nios2_processor_instruction_master_translator_avalon_universal_master_0_agent:cp_startofpacket -> addr_router:sink_startofpacket + wire [95:0] nios2_processor_instruction_master_translator_avalon_universal_master_0_agent_cp_data; // nios2_processor_instruction_master_translator_avalon_universal_master_0_agent:cp_data -> addr_router:sink_data + wire nios2_processor_instruction_master_translator_avalon_universal_master_0_agent_cp_ready; // addr_router:sink_ready -> nios2_processor_instruction_master_translator_avalon_universal_master_0_agent:cp_ready + wire nios2_processor_data_master_translator_avalon_universal_master_0_agent_cp_endofpacket; // nios2_processor_data_master_translator_avalon_universal_master_0_agent:cp_endofpacket -> addr_router_001:sink_endofpacket + wire nios2_processor_data_master_translator_avalon_universal_master_0_agent_cp_valid; // nios2_processor_data_master_translator_avalon_universal_master_0_agent:cp_valid -> addr_router_001:sink_valid + wire nios2_processor_data_master_translator_avalon_universal_master_0_agent_cp_startofpacket; // nios2_processor_data_master_translator_avalon_universal_master_0_agent:cp_startofpacket -> addr_router_001:sink_startofpacket + wire [95:0] nios2_processor_data_master_translator_avalon_universal_master_0_agent_cp_data; // nios2_processor_data_master_translator_avalon_universal_master_0_agent:cp_data -> addr_router_001:sink_data + wire nios2_processor_data_master_translator_avalon_universal_master_0_agent_cp_ready; // addr_router_001:sink_ready -> nios2_processor_data_master_translator_avalon_universal_master_0_agent:cp_ready + wire nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rp_endofpacket; // nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent:rp_endofpacket -> id_router:sink_endofpacket + wire nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rp_valid; // nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent:rp_valid -> id_router:sink_valid + wire nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rp_startofpacket; // nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent:rp_startofpacket -> id_router:sink_startofpacket + wire [95:0] nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rp_data; // nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent:rp_data -> id_router:sink_data + wire nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rp_ready; // id_router:sink_ready -> nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent:rp_ready + wire onchip_memory_s1_translator_avalon_universal_slave_0_agent_rp_endofpacket; // onchip_memory_s1_translator_avalon_universal_slave_0_agent:rp_endofpacket -> id_router_001:sink_endofpacket + wire onchip_memory_s1_translator_avalon_universal_slave_0_agent_rp_valid; // onchip_memory_s1_translator_avalon_universal_slave_0_agent:rp_valid -> id_router_001:sink_valid + wire onchip_memory_s1_translator_avalon_universal_slave_0_agent_rp_startofpacket; // onchip_memory_s1_translator_avalon_universal_slave_0_agent:rp_startofpacket -> id_router_001:sink_startofpacket + wire [95:0] onchip_memory_s1_translator_avalon_universal_slave_0_agent_rp_data; // onchip_memory_s1_translator_avalon_universal_slave_0_agent:rp_data -> id_router_001:sink_data + wire onchip_memory_s1_translator_avalon_universal_slave_0_agent_rp_ready; // id_router_001:sink_ready -> onchip_memory_s1_translator_avalon_universal_slave_0_agent:rp_ready + wire leds_s1_translator_avalon_universal_slave_0_agent_rp_endofpacket; // LEDs_s1_translator_avalon_universal_slave_0_agent:rp_endofpacket -> id_router_002:sink_endofpacket + wire leds_s1_translator_avalon_universal_slave_0_agent_rp_valid; // LEDs_s1_translator_avalon_universal_slave_0_agent:rp_valid -> id_router_002:sink_valid + wire leds_s1_translator_avalon_universal_slave_0_agent_rp_startofpacket; // LEDs_s1_translator_avalon_universal_slave_0_agent:rp_startofpacket -> id_router_002:sink_startofpacket + wire [95:0] leds_s1_translator_avalon_universal_slave_0_agent_rp_data; // LEDs_s1_translator_avalon_universal_slave_0_agent:rp_data -> id_router_002:sink_data + wire leds_s1_translator_avalon_universal_slave_0_agent_rp_ready; // id_router_002:sink_ready -> LEDs_s1_translator_avalon_universal_slave_0_agent:rp_ready + wire jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rp_endofpacket; // jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent:rp_endofpacket -> id_router_003:sink_endofpacket + wire jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rp_valid; // jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent:rp_valid -> id_router_003:sink_valid + wire jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rp_startofpacket; // jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent:rp_startofpacket -> id_router_003:sink_startofpacket + wire [95:0] jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rp_data; // jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent:rp_data -> id_router_003:sink_data + wire jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rp_ready; // id_router_003:sink_ready -> jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent:rp_ready + wire ledrs_s1_translator_avalon_universal_slave_0_agent_rp_endofpacket; // LEDRs_s1_translator_avalon_universal_slave_0_agent:rp_endofpacket -> id_router_004:sink_endofpacket + wire ledrs_s1_translator_avalon_universal_slave_0_agent_rp_valid; // LEDRs_s1_translator_avalon_universal_slave_0_agent:rp_valid -> id_router_004:sink_valid + wire ledrs_s1_translator_avalon_universal_slave_0_agent_rp_startofpacket; // LEDRs_s1_translator_avalon_universal_slave_0_agent:rp_startofpacket -> id_router_004:sink_startofpacket + wire [95:0] ledrs_s1_translator_avalon_universal_slave_0_agent_rp_data; // LEDRs_s1_translator_avalon_universal_slave_0_agent:rp_data -> id_router_004:sink_data + wire ledrs_s1_translator_avalon_universal_slave_0_agent_rp_ready; // id_router_004:sink_ready -> LEDRs_s1_translator_avalon_universal_slave_0_agent:rp_ready + wire switches_s1_translator_avalon_universal_slave_0_agent_rp_endofpacket; // switches_s1_translator_avalon_universal_slave_0_agent:rp_endofpacket -> id_router_005:sink_endofpacket + wire switches_s1_translator_avalon_universal_slave_0_agent_rp_valid; // switches_s1_translator_avalon_universal_slave_0_agent:rp_valid -> id_router_005:sink_valid + wire switches_s1_translator_avalon_universal_slave_0_agent_rp_startofpacket; // switches_s1_translator_avalon_universal_slave_0_agent:rp_startofpacket -> id_router_005:sink_startofpacket + wire [95:0] switches_s1_translator_avalon_universal_slave_0_agent_rp_data; // switches_s1_translator_avalon_universal_slave_0_agent:rp_data -> id_router_005:sink_data + wire switches_s1_translator_avalon_universal_slave_0_agent_rp_ready; // id_router_005:sink_ready -> switches_s1_translator_avalon_universal_slave_0_agent:rp_ready + wire push_switches_s1_translator_avalon_universal_slave_0_agent_rp_endofpacket; // push_switches_s1_translator_avalon_universal_slave_0_agent:rp_endofpacket -> id_router_006:sink_endofpacket + wire push_switches_s1_translator_avalon_universal_slave_0_agent_rp_valid; // push_switches_s1_translator_avalon_universal_slave_0_agent:rp_valid -> id_router_006:sink_valid + wire push_switches_s1_translator_avalon_universal_slave_0_agent_rp_startofpacket; // push_switches_s1_translator_avalon_universal_slave_0_agent:rp_startofpacket -> id_router_006:sink_startofpacket + wire [95:0] push_switches_s1_translator_avalon_universal_slave_0_agent_rp_data; // push_switches_s1_translator_avalon_universal_slave_0_agent:rp_data -> id_router_006:sink_data + wire push_switches_s1_translator_avalon_universal_slave_0_agent_rp_ready; // id_router_006:sink_ready -> push_switches_s1_translator_avalon_universal_slave_0_agent:rp_ready + wire hex0_s1_translator_avalon_universal_slave_0_agent_rp_endofpacket; // hex0_s1_translator_avalon_universal_slave_0_agent:rp_endofpacket -> id_router_007:sink_endofpacket + wire hex0_s1_translator_avalon_universal_slave_0_agent_rp_valid; // hex0_s1_translator_avalon_universal_slave_0_agent:rp_valid -> id_router_007:sink_valid + wire hex0_s1_translator_avalon_universal_slave_0_agent_rp_startofpacket; // hex0_s1_translator_avalon_universal_slave_0_agent:rp_startofpacket -> id_router_007:sink_startofpacket + wire [95:0] hex0_s1_translator_avalon_universal_slave_0_agent_rp_data; // hex0_s1_translator_avalon_universal_slave_0_agent:rp_data -> id_router_007:sink_data + wire hex0_s1_translator_avalon_universal_slave_0_agent_rp_ready; // id_router_007:sink_ready -> hex0_s1_translator_avalon_universal_slave_0_agent:rp_ready + wire hex1_s1_translator_avalon_universal_slave_0_agent_rp_endofpacket; // hex1_s1_translator_avalon_universal_slave_0_agent:rp_endofpacket -> id_router_008:sink_endofpacket + wire hex1_s1_translator_avalon_universal_slave_0_agent_rp_valid; // hex1_s1_translator_avalon_universal_slave_0_agent:rp_valid -> id_router_008:sink_valid + wire hex1_s1_translator_avalon_universal_slave_0_agent_rp_startofpacket; // hex1_s1_translator_avalon_universal_slave_0_agent:rp_startofpacket -> id_router_008:sink_startofpacket + wire [95:0] hex1_s1_translator_avalon_universal_slave_0_agent_rp_data; // hex1_s1_translator_avalon_universal_slave_0_agent:rp_data -> id_router_008:sink_data + wire hex1_s1_translator_avalon_universal_slave_0_agent_rp_ready; // id_router_008:sink_ready -> hex1_s1_translator_avalon_universal_slave_0_agent:rp_ready + wire hex2_s1_translator_avalon_universal_slave_0_agent_rp_endofpacket; // hex2_s1_translator_avalon_universal_slave_0_agent:rp_endofpacket -> id_router_009:sink_endofpacket + wire hex2_s1_translator_avalon_universal_slave_0_agent_rp_valid; // hex2_s1_translator_avalon_universal_slave_0_agent:rp_valid -> id_router_009:sink_valid + wire hex2_s1_translator_avalon_universal_slave_0_agent_rp_startofpacket; // hex2_s1_translator_avalon_universal_slave_0_agent:rp_startofpacket -> id_router_009:sink_startofpacket + wire [95:0] hex2_s1_translator_avalon_universal_slave_0_agent_rp_data; // hex2_s1_translator_avalon_universal_slave_0_agent:rp_data -> id_router_009:sink_data + wire hex2_s1_translator_avalon_universal_slave_0_agent_rp_ready; // id_router_009:sink_ready -> hex2_s1_translator_avalon_universal_slave_0_agent:rp_ready + wire hex3_s1_translator_avalon_universal_slave_0_agent_rp_endofpacket; // hex3_s1_translator_avalon_universal_slave_0_agent:rp_endofpacket -> id_router_010:sink_endofpacket + wire hex3_s1_translator_avalon_universal_slave_0_agent_rp_valid; // hex3_s1_translator_avalon_universal_slave_0_agent:rp_valid -> id_router_010:sink_valid + wire hex3_s1_translator_avalon_universal_slave_0_agent_rp_startofpacket; // hex3_s1_translator_avalon_universal_slave_0_agent:rp_startofpacket -> id_router_010:sink_startofpacket + wire [95:0] hex3_s1_translator_avalon_universal_slave_0_agent_rp_data; // hex3_s1_translator_avalon_universal_slave_0_agent:rp_data -> id_router_010:sink_data + wire hex3_s1_translator_avalon_universal_slave_0_agent_rp_ready; // id_router_010:sink_ready -> hex3_s1_translator_avalon_universal_slave_0_agent:rp_ready + wire hex4_s1_translator_avalon_universal_slave_0_agent_rp_endofpacket; // hex4_s1_translator_avalon_universal_slave_0_agent:rp_endofpacket -> id_router_011:sink_endofpacket + wire hex4_s1_translator_avalon_universal_slave_0_agent_rp_valid; // hex4_s1_translator_avalon_universal_slave_0_agent:rp_valid -> id_router_011:sink_valid + wire hex4_s1_translator_avalon_universal_slave_0_agent_rp_startofpacket; // hex4_s1_translator_avalon_universal_slave_0_agent:rp_startofpacket -> id_router_011:sink_startofpacket + wire [95:0] hex4_s1_translator_avalon_universal_slave_0_agent_rp_data; // hex4_s1_translator_avalon_universal_slave_0_agent:rp_data -> id_router_011:sink_data + wire hex4_s1_translator_avalon_universal_slave_0_agent_rp_ready; // id_router_011:sink_ready -> hex4_s1_translator_avalon_universal_slave_0_agent:rp_ready + wire hex5_s1_translator_avalon_universal_slave_0_agent_rp_endofpacket; // hex5_s1_translator_avalon_universal_slave_0_agent:rp_endofpacket -> id_router_012:sink_endofpacket + wire hex5_s1_translator_avalon_universal_slave_0_agent_rp_valid; // hex5_s1_translator_avalon_universal_slave_0_agent:rp_valid -> id_router_012:sink_valid + wire hex5_s1_translator_avalon_universal_slave_0_agent_rp_startofpacket; // hex5_s1_translator_avalon_universal_slave_0_agent:rp_startofpacket -> id_router_012:sink_startofpacket + wire [95:0] hex5_s1_translator_avalon_universal_slave_0_agent_rp_data; // hex5_s1_translator_avalon_universal_slave_0_agent:rp_data -> id_router_012:sink_data + wire hex5_s1_translator_avalon_universal_slave_0_agent_rp_ready; // id_router_012:sink_ready -> hex5_s1_translator_avalon_universal_slave_0_agent:rp_ready + wire hex6_s1_translator_avalon_universal_slave_0_agent_rp_endofpacket; // hex6_s1_translator_avalon_universal_slave_0_agent:rp_endofpacket -> id_router_013:sink_endofpacket + wire hex6_s1_translator_avalon_universal_slave_0_agent_rp_valid; // hex6_s1_translator_avalon_universal_slave_0_agent:rp_valid -> id_router_013:sink_valid + wire hex6_s1_translator_avalon_universal_slave_0_agent_rp_startofpacket; // hex6_s1_translator_avalon_universal_slave_0_agent:rp_startofpacket -> id_router_013:sink_startofpacket + wire [95:0] hex6_s1_translator_avalon_universal_slave_0_agent_rp_data; // hex6_s1_translator_avalon_universal_slave_0_agent:rp_data -> id_router_013:sink_data + wire hex6_s1_translator_avalon_universal_slave_0_agent_rp_ready; // id_router_013:sink_ready -> hex6_s1_translator_avalon_universal_slave_0_agent:rp_ready + wire hex7_s1_translator_avalon_universal_slave_0_agent_rp_endofpacket; // hex7_s1_translator_avalon_universal_slave_0_agent:rp_endofpacket -> id_router_014:sink_endofpacket + wire hex7_s1_translator_avalon_universal_slave_0_agent_rp_valid; // hex7_s1_translator_avalon_universal_slave_0_agent:rp_valid -> id_router_014:sink_valid + wire hex7_s1_translator_avalon_universal_slave_0_agent_rp_startofpacket; // hex7_s1_translator_avalon_universal_slave_0_agent:rp_startofpacket -> id_router_014:sink_startofpacket + wire [95:0] hex7_s1_translator_avalon_universal_slave_0_agent_rp_data; // hex7_s1_translator_avalon_universal_slave_0_agent:rp_data -> id_router_014:sink_data + wire hex7_s1_translator_avalon_universal_slave_0_agent_rp_ready; // id_router_014:sink_ready -> hex7_s1_translator_avalon_universal_slave_0_agent:rp_ready + wire lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rp_endofpacket; // lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent:rp_endofpacket -> id_router_015:sink_endofpacket + wire lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rp_valid; // lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent:rp_valid -> id_router_015:sink_valid + wire lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rp_startofpacket; // lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent:rp_startofpacket -> id_router_015:sink_startofpacket + wire [95:0] lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rp_data; // lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent:rp_data -> id_router_015:sink_data + wire lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rp_ready; // id_router_015:sink_ready -> lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent:rp_ready + wire lcd_on_s1_translator_avalon_universal_slave_0_agent_rp_endofpacket; // lcd_on_s1_translator_avalon_universal_slave_0_agent:rp_endofpacket -> id_router_016:sink_endofpacket + wire lcd_on_s1_translator_avalon_universal_slave_0_agent_rp_valid; // lcd_on_s1_translator_avalon_universal_slave_0_agent:rp_valid -> id_router_016:sink_valid + wire lcd_on_s1_translator_avalon_universal_slave_0_agent_rp_startofpacket; // lcd_on_s1_translator_avalon_universal_slave_0_agent:rp_startofpacket -> id_router_016:sink_startofpacket + wire [95:0] lcd_on_s1_translator_avalon_universal_slave_0_agent_rp_data; // lcd_on_s1_translator_avalon_universal_slave_0_agent:rp_data -> id_router_016:sink_data + wire lcd_on_s1_translator_avalon_universal_slave_0_agent_rp_ready; // id_router_016:sink_ready -> lcd_on_s1_translator_avalon_universal_slave_0_agent:rp_ready + wire lcd_blon_s1_translator_avalon_universal_slave_0_agent_rp_endofpacket; // lcd_blon_s1_translator_avalon_universal_slave_0_agent:rp_endofpacket -> id_router_017:sink_endofpacket + wire lcd_blon_s1_translator_avalon_universal_slave_0_agent_rp_valid; // lcd_blon_s1_translator_avalon_universal_slave_0_agent:rp_valid -> id_router_017:sink_valid + wire lcd_blon_s1_translator_avalon_universal_slave_0_agent_rp_startofpacket; // lcd_blon_s1_translator_avalon_universal_slave_0_agent:rp_startofpacket -> id_router_017:sink_startofpacket + wire [95:0] lcd_blon_s1_translator_avalon_universal_slave_0_agent_rp_data; // lcd_blon_s1_translator_avalon_universal_slave_0_agent:rp_data -> id_router_017:sink_data + wire lcd_blon_s1_translator_avalon_universal_slave_0_agent_rp_ready; // id_router_017:sink_ready -> lcd_blon_s1_translator_avalon_universal_slave_0_agent:rp_ready + wire rst_controller_reset_out_reset; // rst_controller:reset_out -> [LEDRs:reset_n, LEDRs_s1_translator:reset, LEDRs_s1_translator_avalon_universal_slave_0_agent:reset, LEDRs_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:reset, LEDs:reset_n, LEDs_s1_translator:reset, LEDs_s1_translator_avalon_universal_slave_0_agent:reset, LEDs_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:reset, addr_router:reset, addr_router_001:reset, cmd_xbar_demux:reset, cmd_xbar_demux_001:reset, cmd_xbar_mux:reset, cmd_xbar_mux_001:reset, hex0:reset_n, hex0_s1_translator:reset, hex0_s1_translator_avalon_universal_slave_0_agent:reset, hex0_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:reset, hex1:reset_n, hex1_s1_translator:reset, hex1_s1_translator_avalon_universal_slave_0_agent:reset, hex1_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:reset, hex2:reset_n, hex2_s1_translator:reset, hex2_s1_translator_avalon_universal_slave_0_agent:reset, hex2_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:reset, hex3:reset_n, hex3_s1_translator:reset, hex3_s1_translator_avalon_universal_slave_0_agent:reset, hex3_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:reset, hex4:reset_n, hex4_s1_translator:reset, hex4_s1_translator_avalon_universal_slave_0_agent:reset, hex4_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:reset, hex5:reset_n, hex5_s1_translator:reset, hex5_s1_translator_avalon_universal_slave_0_agent:reset, hex5_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:reset, hex6:reset_n, hex6_s1_translator:reset, hex6_s1_translator_avalon_universal_slave_0_agent:reset, hex6_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:reset, hex7:reset_n, hex7_s1_translator:reset, hex7_s1_translator_avalon_universal_slave_0_agent:reset, hex7_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:reset, id_router:reset, id_router_001:reset, id_router_002:reset, id_router_003:reset, id_router_004:reset, id_router_005:reset, id_router_006:reset, id_router_007:reset, id_router_008:reset, id_router_009:reset, id_router_010:reset, id_router_011:reset, id_router_012:reset, id_router_013:reset, id_router_014:reset, id_router_015:reset, id_router_016:reset, id_router_017:reset, irq_mapper:reset, jtag_uart:rst_n, jtag_uart_avalon_jtag_slave_translator:reset, jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent:reset, jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rsp_fifo:reset, lcd_16207_0:reset_n, lcd_16207_0_control_slave_translator:reset, lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent:reset, lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rsp_fifo:reset, lcd_blon:reset_n, lcd_blon_s1_translator:reset, lcd_blon_s1_translator_avalon_universal_slave_0_agent:reset, lcd_blon_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:reset, lcd_on:reset_n, lcd_on_s1_translator:reset, lcd_on_s1_translator_avalon_universal_slave_0_agent:reset, lcd_on_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:reset, nios2_processor:reset_n, nios2_processor_data_master_translator:reset, nios2_processor_data_master_translator_avalon_universal_master_0_agent:reset, nios2_processor_instruction_master_translator:reset, nios2_processor_instruction_master_translator_avalon_universal_master_0_agent:reset, nios2_processor_jtag_debug_module_translator:reset, nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent:reset, nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo:reset, onchip_memory:reset, onchip_memory_s1_translator:reset, onchip_memory_s1_translator_avalon_universal_slave_0_agent:reset, onchip_memory_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:reset, push_switches:reset_n, push_switches_s1_translator:reset, push_switches_s1_translator_avalon_universal_slave_0_agent:reset, push_switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:reset, rsp_xbar_demux:reset, rsp_xbar_demux_001:reset, rsp_xbar_demux_002:reset, rsp_xbar_demux_003:reset, rsp_xbar_demux_004:reset, rsp_xbar_demux_005:reset, rsp_xbar_demux_006:reset, rsp_xbar_demux_007:reset, rsp_xbar_demux_008:reset, rsp_xbar_demux_009:reset, rsp_xbar_demux_010:reset, rsp_xbar_demux_011:reset, rsp_xbar_demux_012:reset, rsp_xbar_demux_013:reset, rsp_xbar_demux_014:reset, rsp_xbar_demux_015:reset, rsp_xbar_demux_016:reset, rsp_xbar_demux_017:reset, rsp_xbar_mux:reset, rsp_xbar_mux_001:reset, switches:reset_n, switches_s1_translator:reset, switches_s1_translator_avalon_universal_slave_0_agent:reset, switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:reset] + wire rst_controller_reset_out_reset_req; // rst_controller:reset_req -> onchip_memory:reset_req + wire nios2_processor_jtag_debug_module_reset_reset; // nios2_processor:jtag_debug_module_resetrequest -> rst_controller:reset_in1 + wire cmd_xbar_demux_src0_endofpacket; // cmd_xbar_demux:src0_endofpacket -> cmd_xbar_mux:sink0_endofpacket + wire cmd_xbar_demux_src0_valid; // cmd_xbar_demux:src0_valid -> cmd_xbar_mux:sink0_valid + wire cmd_xbar_demux_src0_startofpacket; // cmd_xbar_demux:src0_startofpacket -> cmd_xbar_mux:sink0_startofpacket + wire [95:0] cmd_xbar_demux_src0_data; // cmd_xbar_demux:src0_data -> cmd_xbar_mux:sink0_data + wire [17:0] cmd_xbar_demux_src0_channel; // cmd_xbar_demux:src0_channel -> cmd_xbar_mux:sink0_channel + wire cmd_xbar_demux_src0_ready; // cmd_xbar_mux:sink0_ready -> cmd_xbar_demux:src0_ready + wire cmd_xbar_demux_src1_endofpacket; // cmd_xbar_demux:src1_endofpacket -> cmd_xbar_mux_001:sink0_endofpacket + wire cmd_xbar_demux_src1_valid; // cmd_xbar_demux:src1_valid -> cmd_xbar_mux_001:sink0_valid + wire cmd_xbar_demux_src1_startofpacket; // cmd_xbar_demux:src1_startofpacket -> cmd_xbar_mux_001:sink0_startofpacket + wire [95:0] cmd_xbar_demux_src1_data; // cmd_xbar_demux:src1_data -> cmd_xbar_mux_001:sink0_data + wire [17:0] cmd_xbar_demux_src1_channel; // cmd_xbar_demux:src1_channel -> cmd_xbar_mux_001:sink0_channel + wire cmd_xbar_demux_src1_ready; // cmd_xbar_mux_001:sink0_ready -> cmd_xbar_demux:src1_ready + wire cmd_xbar_demux_001_src0_endofpacket; // cmd_xbar_demux_001:src0_endofpacket -> cmd_xbar_mux:sink1_endofpacket + wire cmd_xbar_demux_001_src0_valid; // cmd_xbar_demux_001:src0_valid -> cmd_xbar_mux:sink1_valid + wire cmd_xbar_demux_001_src0_startofpacket; // cmd_xbar_demux_001:src0_startofpacket -> cmd_xbar_mux:sink1_startofpacket + wire [95:0] cmd_xbar_demux_001_src0_data; // cmd_xbar_demux_001:src0_data -> cmd_xbar_mux:sink1_data + wire [17:0] cmd_xbar_demux_001_src0_channel; // cmd_xbar_demux_001:src0_channel -> cmd_xbar_mux:sink1_channel + wire cmd_xbar_demux_001_src0_ready; // cmd_xbar_mux:sink1_ready -> cmd_xbar_demux_001:src0_ready + wire cmd_xbar_demux_001_src1_endofpacket; // cmd_xbar_demux_001:src1_endofpacket -> cmd_xbar_mux_001:sink1_endofpacket + wire cmd_xbar_demux_001_src1_valid; // cmd_xbar_demux_001:src1_valid -> cmd_xbar_mux_001:sink1_valid + wire cmd_xbar_demux_001_src1_startofpacket; // cmd_xbar_demux_001:src1_startofpacket -> cmd_xbar_mux_001:sink1_startofpacket + wire [95:0] cmd_xbar_demux_001_src1_data; // cmd_xbar_demux_001:src1_data -> cmd_xbar_mux_001:sink1_data + wire [17:0] cmd_xbar_demux_001_src1_channel; // cmd_xbar_demux_001:src1_channel -> cmd_xbar_mux_001:sink1_channel + wire cmd_xbar_demux_001_src1_ready; // cmd_xbar_mux_001:sink1_ready -> cmd_xbar_demux_001:src1_ready + wire cmd_xbar_demux_001_src2_endofpacket; // cmd_xbar_demux_001:src2_endofpacket -> LEDs_s1_translator_avalon_universal_slave_0_agent:cp_endofpacket + wire cmd_xbar_demux_001_src2_valid; // cmd_xbar_demux_001:src2_valid -> LEDs_s1_translator_avalon_universal_slave_0_agent:cp_valid + wire cmd_xbar_demux_001_src2_startofpacket; // cmd_xbar_demux_001:src2_startofpacket -> LEDs_s1_translator_avalon_universal_slave_0_agent:cp_startofpacket + wire [95:0] cmd_xbar_demux_001_src2_data; // cmd_xbar_demux_001:src2_data -> LEDs_s1_translator_avalon_universal_slave_0_agent:cp_data + wire [17:0] cmd_xbar_demux_001_src2_channel; // cmd_xbar_demux_001:src2_channel -> LEDs_s1_translator_avalon_universal_slave_0_agent:cp_channel + wire cmd_xbar_demux_001_src3_endofpacket; // cmd_xbar_demux_001:src3_endofpacket -> jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent:cp_endofpacket + wire cmd_xbar_demux_001_src3_valid; // cmd_xbar_demux_001:src3_valid -> jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent:cp_valid + wire cmd_xbar_demux_001_src3_startofpacket; // cmd_xbar_demux_001:src3_startofpacket -> jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent:cp_startofpacket + wire [95:0] cmd_xbar_demux_001_src3_data; // cmd_xbar_demux_001:src3_data -> jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent:cp_data + wire [17:0] cmd_xbar_demux_001_src3_channel; // cmd_xbar_demux_001:src3_channel -> jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent:cp_channel + wire cmd_xbar_demux_001_src4_endofpacket; // cmd_xbar_demux_001:src4_endofpacket -> LEDRs_s1_translator_avalon_universal_slave_0_agent:cp_endofpacket + wire cmd_xbar_demux_001_src4_valid; // cmd_xbar_demux_001:src4_valid -> LEDRs_s1_translator_avalon_universal_slave_0_agent:cp_valid + wire cmd_xbar_demux_001_src4_startofpacket; // cmd_xbar_demux_001:src4_startofpacket -> LEDRs_s1_translator_avalon_universal_slave_0_agent:cp_startofpacket + wire [95:0] cmd_xbar_demux_001_src4_data; // cmd_xbar_demux_001:src4_data -> LEDRs_s1_translator_avalon_universal_slave_0_agent:cp_data + wire [17:0] cmd_xbar_demux_001_src4_channel; // cmd_xbar_demux_001:src4_channel -> LEDRs_s1_translator_avalon_universal_slave_0_agent:cp_channel + wire cmd_xbar_demux_001_src5_endofpacket; // cmd_xbar_demux_001:src5_endofpacket -> switches_s1_translator_avalon_universal_slave_0_agent:cp_endofpacket + wire cmd_xbar_demux_001_src5_valid; // cmd_xbar_demux_001:src5_valid -> switches_s1_translator_avalon_universal_slave_0_agent:cp_valid + wire cmd_xbar_demux_001_src5_startofpacket; // cmd_xbar_demux_001:src5_startofpacket -> switches_s1_translator_avalon_universal_slave_0_agent:cp_startofpacket + wire [95:0] cmd_xbar_demux_001_src5_data; // cmd_xbar_demux_001:src5_data -> switches_s1_translator_avalon_universal_slave_0_agent:cp_data + wire [17:0] cmd_xbar_demux_001_src5_channel; // cmd_xbar_demux_001:src5_channel -> switches_s1_translator_avalon_universal_slave_0_agent:cp_channel + wire cmd_xbar_demux_001_src6_endofpacket; // cmd_xbar_demux_001:src6_endofpacket -> push_switches_s1_translator_avalon_universal_slave_0_agent:cp_endofpacket + wire cmd_xbar_demux_001_src6_valid; // cmd_xbar_demux_001:src6_valid -> push_switches_s1_translator_avalon_universal_slave_0_agent:cp_valid + wire cmd_xbar_demux_001_src6_startofpacket; // cmd_xbar_demux_001:src6_startofpacket -> push_switches_s1_translator_avalon_universal_slave_0_agent:cp_startofpacket + wire [95:0] cmd_xbar_demux_001_src6_data; // cmd_xbar_demux_001:src6_data -> push_switches_s1_translator_avalon_universal_slave_0_agent:cp_data + wire [17:0] cmd_xbar_demux_001_src6_channel; // cmd_xbar_demux_001:src6_channel -> push_switches_s1_translator_avalon_universal_slave_0_agent:cp_channel + wire cmd_xbar_demux_001_src7_endofpacket; // cmd_xbar_demux_001:src7_endofpacket -> hex0_s1_translator_avalon_universal_slave_0_agent:cp_endofpacket + wire cmd_xbar_demux_001_src7_valid; // cmd_xbar_demux_001:src7_valid -> hex0_s1_translator_avalon_universal_slave_0_agent:cp_valid + wire cmd_xbar_demux_001_src7_startofpacket; // cmd_xbar_demux_001:src7_startofpacket -> hex0_s1_translator_avalon_universal_slave_0_agent:cp_startofpacket + wire [95:0] cmd_xbar_demux_001_src7_data; // cmd_xbar_demux_001:src7_data -> hex0_s1_translator_avalon_universal_slave_0_agent:cp_data + wire [17:0] cmd_xbar_demux_001_src7_channel; // cmd_xbar_demux_001:src7_channel -> hex0_s1_translator_avalon_universal_slave_0_agent:cp_channel + wire cmd_xbar_demux_001_src8_endofpacket; // cmd_xbar_demux_001:src8_endofpacket -> hex1_s1_translator_avalon_universal_slave_0_agent:cp_endofpacket + wire cmd_xbar_demux_001_src8_valid; // cmd_xbar_demux_001:src8_valid -> hex1_s1_translator_avalon_universal_slave_0_agent:cp_valid + wire cmd_xbar_demux_001_src8_startofpacket; // cmd_xbar_demux_001:src8_startofpacket -> hex1_s1_translator_avalon_universal_slave_0_agent:cp_startofpacket + wire [95:0] cmd_xbar_demux_001_src8_data; // cmd_xbar_demux_001:src8_data -> hex1_s1_translator_avalon_universal_slave_0_agent:cp_data + wire [17:0] cmd_xbar_demux_001_src8_channel; // cmd_xbar_demux_001:src8_channel -> hex1_s1_translator_avalon_universal_slave_0_agent:cp_channel + wire cmd_xbar_demux_001_src9_endofpacket; // cmd_xbar_demux_001:src9_endofpacket -> hex2_s1_translator_avalon_universal_slave_0_agent:cp_endofpacket + wire cmd_xbar_demux_001_src9_valid; // cmd_xbar_demux_001:src9_valid -> hex2_s1_translator_avalon_universal_slave_0_agent:cp_valid + wire cmd_xbar_demux_001_src9_startofpacket; // cmd_xbar_demux_001:src9_startofpacket -> hex2_s1_translator_avalon_universal_slave_0_agent:cp_startofpacket + wire [95:0] cmd_xbar_demux_001_src9_data; // cmd_xbar_demux_001:src9_data -> hex2_s1_translator_avalon_universal_slave_0_agent:cp_data + wire [17:0] cmd_xbar_demux_001_src9_channel; // cmd_xbar_demux_001:src9_channel -> hex2_s1_translator_avalon_universal_slave_0_agent:cp_channel + wire cmd_xbar_demux_001_src10_endofpacket; // cmd_xbar_demux_001:src10_endofpacket -> hex3_s1_translator_avalon_universal_slave_0_agent:cp_endofpacket + wire cmd_xbar_demux_001_src10_valid; // cmd_xbar_demux_001:src10_valid -> hex3_s1_translator_avalon_universal_slave_0_agent:cp_valid + wire cmd_xbar_demux_001_src10_startofpacket; // cmd_xbar_demux_001:src10_startofpacket -> hex3_s1_translator_avalon_universal_slave_0_agent:cp_startofpacket + wire [95:0] cmd_xbar_demux_001_src10_data; // cmd_xbar_demux_001:src10_data -> hex3_s1_translator_avalon_universal_slave_0_agent:cp_data + wire [17:0] cmd_xbar_demux_001_src10_channel; // cmd_xbar_demux_001:src10_channel -> hex3_s1_translator_avalon_universal_slave_0_agent:cp_channel + wire cmd_xbar_demux_001_src11_endofpacket; // cmd_xbar_demux_001:src11_endofpacket -> hex4_s1_translator_avalon_universal_slave_0_agent:cp_endofpacket + wire cmd_xbar_demux_001_src11_valid; // cmd_xbar_demux_001:src11_valid -> hex4_s1_translator_avalon_universal_slave_0_agent:cp_valid + wire cmd_xbar_demux_001_src11_startofpacket; // cmd_xbar_demux_001:src11_startofpacket -> hex4_s1_translator_avalon_universal_slave_0_agent:cp_startofpacket + wire [95:0] cmd_xbar_demux_001_src11_data; // cmd_xbar_demux_001:src11_data -> hex4_s1_translator_avalon_universal_slave_0_agent:cp_data + wire [17:0] cmd_xbar_demux_001_src11_channel; // cmd_xbar_demux_001:src11_channel -> hex4_s1_translator_avalon_universal_slave_0_agent:cp_channel + wire cmd_xbar_demux_001_src12_endofpacket; // cmd_xbar_demux_001:src12_endofpacket -> hex5_s1_translator_avalon_universal_slave_0_agent:cp_endofpacket + wire cmd_xbar_demux_001_src12_valid; // cmd_xbar_demux_001:src12_valid -> hex5_s1_translator_avalon_universal_slave_0_agent:cp_valid + wire cmd_xbar_demux_001_src12_startofpacket; // cmd_xbar_demux_001:src12_startofpacket -> hex5_s1_translator_avalon_universal_slave_0_agent:cp_startofpacket + wire [95:0] cmd_xbar_demux_001_src12_data; // cmd_xbar_demux_001:src12_data -> hex5_s1_translator_avalon_universal_slave_0_agent:cp_data + wire [17:0] cmd_xbar_demux_001_src12_channel; // cmd_xbar_demux_001:src12_channel -> hex5_s1_translator_avalon_universal_slave_0_agent:cp_channel + wire cmd_xbar_demux_001_src13_endofpacket; // cmd_xbar_demux_001:src13_endofpacket -> hex6_s1_translator_avalon_universal_slave_0_agent:cp_endofpacket + wire cmd_xbar_demux_001_src13_valid; // cmd_xbar_demux_001:src13_valid -> hex6_s1_translator_avalon_universal_slave_0_agent:cp_valid + wire cmd_xbar_demux_001_src13_startofpacket; // cmd_xbar_demux_001:src13_startofpacket -> hex6_s1_translator_avalon_universal_slave_0_agent:cp_startofpacket + wire [95:0] cmd_xbar_demux_001_src13_data; // cmd_xbar_demux_001:src13_data -> hex6_s1_translator_avalon_universal_slave_0_agent:cp_data + wire [17:0] cmd_xbar_demux_001_src13_channel; // cmd_xbar_demux_001:src13_channel -> hex6_s1_translator_avalon_universal_slave_0_agent:cp_channel + wire cmd_xbar_demux_001_src14_endofpacket; // cmd_xbar_demux_001:src14_endofpacket -> hex7_s1_translator_avalon_universal_slave_0_agent:cp_endofpacket + wire cmd_xbar_demux_001_src14_valid; // cmd_xbar_demux_001:src14_valid -> hex7_s1_translator_avalon_universal_slave_0_agent:cp_valid + wire cmd_xbar_demux_001_src14_startofpacket; // cmd_xbar_demux_001:src14_startofpacket -> hex7_s1_translator_avalon_universal_slave_0_agent:cp_startofpacket + wire [95:0] cmd_xbar_demux_001_src14_data; // cmd_xbar_demux_001:src14_data -> hex7_s1_translator_avalon_universal_slave_0_agent:cp_data + wire [17:0] cmd_xbar_demux_001_src14_channel; // cmd_xbar_demux_001:src14_channel -> hex7_s1_translator_avalon_universal_slave_0_agent:cp_channel + wire cmd_xbar_demux_001_src15_endofpacket; // cmd_xbar_demux_001:src15_endofpacket -> lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent:cp_endofpacket + wire cmd_xbar_demux_001_src15_valid; // cmd_xbar_demux_001:src15_valid -> lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent:cp_valid + wire cmd_xbar_demux_001_src15_startofpacket; // cmd_xbar_demux_001:src15_startofpacket -> lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent:cp_startofpacket + wire [95:0] cmd_xbar_demux_001_src15_data; // cmd_xbar_demux_001:src15_data -> lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent:cp_data + wire [17:0] cmd_xbar_demux_001_src15_channel; // cmd_xbar_demux_001:src15_channel -> lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent:cp_channel + wire cmd_xbar_demux_001_src16_endofpacket; // cmd_xbar_demux_001:src16_endofpacket -> lcd_on_s1_translator_avalon_universal_slave_0_agent:cp_endofpacket + wire cmd_xbar_demux_001_src16_valid; // cmd_xbar_demux_001:src16_valid -> lcd_on_s1_translator_avalon_universal_slave_0_agent:cp_valid + wire cmd_xbar_demux_001_src16_startofpacket; // cmd_xbar_demux_001:src16_startofpacket -> lcd_on_s1_translator_avalon_universal_slave_0_agent:cp_startofpacket + wire [95:0] cmd_xbar_demux_001_src16_data; // cmd_xbar_demux_001:src16_data -> lcd_on_s1_translator_avalon_universal_slave_0_agent:cp_data + wire [17:0] cmd_xbar_demux_001_src16_channel; // cmd_xbar_demux_001:src16_channel -> lcd_on_s1_translator_avalon_universal_slave_0_agent:cp_channel + wire cmd_xbar_demux_001_src17_endofpacket; // cmd_xbar_demux_001:src17_endofpacket -> lcd_blon_s1_translator_avalon_universal_slave_0_agent:cp_endofpacket + wire cmd_xbar_demux_001_src17_valid; // cmd_xbar_demux_001:src17_valid -> lcd_blon_s1_translator_avalon_universal_slave_0_agent:cp_valid + wire cmd_xbar_demux_001_src17_startofpacket; // cmd_xbar_demux_001:src17_startofpacket -> lcd_blon_s1_translator_avalon_universal_slave_0_agent:cp_startofpacket + wire [95:0] cmd_xbar_demux_001_src17_data; // cmd_xbar_demux_001:src17_data -> lcd_blon_s1_translator_avalon_universal_slave_0_agent:cp_data + wire [17:0] cmd_xbar_demux_001_src17_channel; // cmd_xbar_demux_001:src17_channel -> lcd_blon_s1_translator_avalon_universal_slave_0_agent:cp_channel + wire rsp_xbar_demux_src0_endofpacket; // rsp_xbar_demux:src0_endofpacket -> rsp_xbar_mux:sink0_endofpacket + wire rsp_xbar_demux_src0_valid; // rsp_xbar_demux:src0_valid -> rsp_xbar_mux:sink0_valid + wire rsp_xbar_demux_src0_startofpacket; // rsp_xbar_demux:src0_startofpacket -> rsp_xbar_mux:sink0_startofpacket + wire [95:0] rsp_xbar_demux_src0_data; // rsp_xbar_demux:src0_data -> rsp_xbar_mux:sink0_data + wire [17:0] rsp_xbar_demux_src0_channel; // rsp_xbar_demux:src0_channel -> rsp_xbar_mux:sink0_channel + wire rsp_xbar_demux_src0_ready; // rsp_xbar_mux:sink0_ready -> rsp_xbar_demux:src0_ready + wire rsp_xbar_demux_src1_endofpacket; // rsp_xbar_demux:src1_endofpacket -> rsp_xbar_mux_001:sink0_endofpacket + wire rsp_xbar_demux_src1_valid; // rsp_xbar_demux:src1_valid -> rsp_xbar_mux_001:sink0_valid + wire rsp_xbar_demux_src1_startofpacket; // rsp_xbar_demux:src1_startofpacket -> rsp_xbar_mux_001:sink0_startofpacket + wire [95:0] rsp_xbar_demux_src1_data; // rsp_xbar_demux:src1_data -> rsp_xbar_mux_001:sink0_data + wire [17:0] rsp_xbar_demux_src1_channel; // rsp_xbar_demux:src1_channel -> rsp_xbar_mux_001:sink0_channel + wire rsp_xbar_demux_src1_ready; // rsp_xbar_mux_001:sink0_ready -> rsp_xbar_demux:src1_ready + wire rsp_xbar_demux_001_src0_endofpacket; // rsp_xbar_demux_001:src0_endofpacket -> rsp_xbar_mux:sink1_endofpacket + wire rsp_xbar_demux_001_src0_valid; // rsp_xbar_demux_001:src0_valid -> rsp_xbar_mux:sink1_valid + wire rsp_xbar_demux_001_src0_startofpacket; // rsp_xbar_demux_001:src0_startofpacket -> rsp_xbar_mux:sink1_startofpacket + wire [95:0] rsp_xbar_demux_001_src0_data; // rsp_xbar_demux_001:src0_data -> rsp_xbar_mux:sink1_data + wire [17:0] rsp_xbar_demux_001_src0_channel; // rsp_xbar_demux_001:src0_channel -> rsp_xbar_mux:sink1_channel + wire rsp_xbar_demux_001_src0_ready; // rsp_xbar_mux:sink1_ready -> rsp_xbar_demux_001:src0_ready + wire rsp_xbar_demux_001_src1_endofpacket; // rsp_xbar_demux_001:src1_endofpacket -> rsp_xbar_mux_001:sink1_endofpacket + wire rsp_xbar_demux_001_src1_valid; // rsp_xbar_demux_001:src1_valid -> rsp_xbar_mux_001:sink1_valid + wire rsp_xbar_demux_001_src1_startofpacket; // rsp_xbar_demux_001:src1_startofpacket -> rsp_xbar_mux_001:sink1_startofpacket + wire [95:0] rsp_xbar_demux_001_src1_data; // rsp_xbar_demux_001:src1_data -> rsp_xbar_mux_001:sink1_data + wire [17:0] rsp_xbar_demux_001_src1_channel; // rsp_xbar_demux_001:src1_channel -> rsp_xbar_mux_001:sink1_channel + wire rsp_xbar_demux_001_src1_ready; // rsp_xbar_mux_001:sink1_ready -> rsp_xbar_demux_001:src1_ready + wire rsp_xbar_demux_002_src0_endofpacket; // rsp_xbar_demux_002:src0_endofpacket -> rsp_xbar_mux_001:sink2_endofpacket + wire rsp_xbar_demux_002_src0_valid; // rsp_xbar_demux_002:src0_valid -> rsp_xbar_mux_001:sink2_valid + wire rsp_xbar_demux_002_src0_startofpacket; // rsp_xbar_demux_002:src0_startofpacket -> rsp_xbar_mux_001:sink2_startofpacket + wire [95:0] rsp_xbar_demux_002_src0_data; // rsp_xbar_demux_002:src0_data -> rsp_xbar_mux_001:sink2_data + wire [17:0] rsp_xbar_demux_002_src0_channel; // rsp_xbar_demux_002:src0_channel -> rsp_xbar_mux_001:sink2_channel + wire rsp_xbar_demux_002_src0_ready; // rsp_xbar_mux_001:sink2_ready -> rsp_xbar_demux_002:src0_ready + wire rsp_xbar_demux_003_src0_endofpacket; // rsp_xbar_demux_003:src0_endofpacket -> rsp_xbar_mux_001:sink3_endofpacket + wire rsp_xbar_demux_003_src0_valid; // rsp_xbar_demux_003:src0_valid -> rsp_xbar_mux_001:sink3_valid + wire rsp_xbar_demux_003_src0_startofpacket; // rsp_xbar_demux_003:src0_startofpacket -> rsp_xbar_mux_001:sink3_startofpacket + wire [95:0] rsp_xbar_demux_003_src0_data; // rsp_xbar_demux_003:src0_data -> rsp_xbar_mux_001:sink3_data + wire [17:0] rsp_xbar_demux_003_src0_channel; // rsp_xbar_demux_003:src0_channel -> rsp_xbar_mux_001:sink3_channel + wire rsp_xbar_demux_003_src0_ready; // rsp_xbar_mux_001:sink3_ready -> rsp_xbar_demux_003:src0_ready + wire rsp_xbar_demux_004_src0_endofpacket; // rsp_xbar_demux_004:src0_endofpacket -> rsp_xbar_mux_001:sink4_endofpacket + wire rsp_xbar_demux_004_src0_valid; // rsp_xbar_demux_004:src0_valid -> rsp_xbar_mux_001:sink4_valid + wire rsp_xbar_demux_004_src0_startofpacket; // rsp_xbar_demux_004:src0_startofpacket -> rsp_xbar_mux_001:sink4_startofpacket + wire [95:0] rsp_xbar_demux_004_src0_data; // rsp_xbar_demux_004:src0_data -> rsp_xbar_mux_001:sink4_data + wire [17:0] rsp_xbar_demux_004_src0_channel; // rsp_xbar_demux_004:src0_channel -> rsp_xbar_mux_001:sink4_channel + wire rsp_xbar_demux_004_src0_ready; // rsp_xbar_mux_001:sink4_ready -> rsp_xbar_demux_004:src0_ready + wire rsp_xbar_demux_005_src0_endofpacket; // rsp_xbar_demux_005:src0_endofpacket -> rsp_xbar_mux_001:sink5_endofpacket + wire rsp_xbar_demux_005_src0_valid; // rsp_xbar_demux_005:src0_valid -> rsp_xbar_mux_001:sink5_valid + wire rsp_xbar_demux_005_src0_startofpacket; // rsp_xbar_demux_005:src0_startofpacket -> rsp_xbar_mux_001:sink5_startofpacket + wire [95:0] rsp_xbar_demux_005_src0_data; // rsp_xbar_demux_005:src0_data -> rsp_xbar_mux_001:sink5_data + wire [17:0] rsp_xbar_demux_005_src0_channel; // rsp_xbar_demux_005:src0_channel -> rsp_xbar_mux_001:sink5_channel + wire rsp_xbar_demux_005_src0_ready; // rsp_xbar_mux_001:sink5_ready -> rsp_xbar_demux_005:src0_ready + wire rsp_xbar_demux_006_src0_endofpacket; // rsp_xbar_demux_006:src0_endofpacket -> rsp_xbar_mux_001:sink6_endofpacket + wire rsp_xbar_demux_006_src0_valid; // rsp_xbar_demux_006:src0_valid -> rsp_xbar_mux_001:sink6_valid + wire rsp_xbar_demux_006_src0_startofpacket; // rsp_xbar_demux_006:src0_startofpacket -> rsp_xbar_mux_001:sink6_startofpacket + wire [95:0] rsp_xbar_demux_006_src0_data; // rsp_xbar_demux_006:src0_data -> rsp_xbar_mux_001:sink6_data + wire [17:0] rsp_xbar_demux_006_src0_channel; // rsp_xbar_demux_006:src0_channel -> rsp_xbar_mux_001:sink6_channel + wire rsp_xbar_demux_006_src0_ready; // rsp_xbar_mux_001:sink6_ready -> rsp_xbar_demux_006:src0_ready + wire rsp_xbar_demux_007_src0_endofpacket; // rsp_xbar_demux_007:src0_endofpacket -> rsp_xbar_mux_001:sink7_endofpacket + wire rsp_xbar_demux_007_src0_valid; // rsp_xbar_demux_007:src0_valid -> rsp_xbar_mux_001:sink7_valid + wire rsp_xbar_demux_007_src0_startofpacket; // rsp_xbar_demux_007:src0_startofpacket -> rsp_xbar_mux_001:sink7_startofpacket + wire [95:0] rsp_xbar_demux_007_src0_data; // rsp_xbar_demux_007:src0_data -> rsp_xbar_mux_001:sink7_data + wire [17:0] rsp_xbar_demux_007_src0_channel; // rsp_xbar_demux_007:src0_channel -> rsp_xbar_mux_001:sink7_channel + wire rsp_xbar_demux_007_src0_ready; // rsp_xbar_mux_001:sink7_ready -> rsp_xbar_demux_007:src0_ready + wire rsp_xbar_demux_008_src0_endofpacket; // rsp_xbar_demux_008:src0_endofpacket -> rsp_xbar_mux_001:sink8_endofpacket + wire rsp_xbar_demux_008_src0_valid; // rsp_xbar_demux_008:src0_valid -> rsp_xbar_mux_001:sink8_valid + wire rsp_xbar_demux_008_src0_startofpacket; // rsp_xbar_demux_008:src0_startofpacket -> rsp_xbar_mux_001:sink8_startofpacket + wire [95:0] rsp_xbar_demux_008_src0_data; // rsp_xbar_demux_008:src0_data -> rsp_xbar_mux_001:sink8_data + wire [17:0] rsp_xbar_demux_008_src0_channel; // rsp_xbar_demux_008:src0_channel -> rsp_xbar_mux_001:sink8_channel + wire rsp_xbar_demux_008_src0_ready; // rsp_xbar_mux_001:sink8_ready -> rsp_xbar_demux_008:src0_ready + wire rsp_xbar_demux_009_src0_endofpacket; // rsp_xbar_demux_009:src0_endofpacket -> rsp_xbar_mux_001:sink9_endofpacket + wire rsp_xbar_demux_009_src0_valid; // rsp_xbar_demux_009:src0_valid -> rsp_xbar_mux_001:sink9_valid + wire rsp_xbar_demux_009_src0_startofpacket; // rsp_xbar_demux_009:src0_startofpacket -> rsp_xbar_mux_001:sink9_startofpacket + wire [95:0] rsp_xbar_demux_009_src0_data; // rsp_xbar_demux_009:src0_data -> rsp_xbar_mux_001:sink9_data + wire [17:0] rsp_xbar_demux_009_src0_channel; // rsp_xbar_demux_009:src0_channel -> rsp_xbar_mux_001:sink9_channel + wire rsp_xbar_demux_009_src0_ready; // rsp_xbar_mux_001:sink9_ready -> rsp_xbar_demux_009:src0_ready + wire rsp_xbar_demux_010_src0_endofpacket; // rsp_xbar_demux_010:src0_endofpacket -> rsp_xbar_mux_001:sink10_endofpacket + wire rsp_xbar_demux_010_src0_valid; // rsp_xbar_demux_010:src0_valid -> rsp_xbar_mux_001:sink10_valid + wire rsp_xbar_demux_010_src0_startofpacket; // rsp_xbar_demux_010:src0_startofpacket -> rsp_xbar_mux_001:sink10_startofpacket + wire [95:0] rsp_xbar_demux_010_src0_data; // rsp_xbar_demux_010:src0_data -> rsp_xbar_mux_001:sink10_data + wire [17:0] rsp_xbar_demux_010_src0_channel; // rsp_xbar_demux_010:src0_channel -> rsp_xbar_mux_001:sink10_channel + wire rsp_xbar_demux_010_src0_ready; // rsp_xbar_mux_001:sink10_ready -> rsp_xbar_demux_010:src0_ready + wire rsp_xbar_demux_011_src0_endofpacket; // rsp_xbar_demux_011:src0_endofpacket -> rsp_xbar_mux_001:sink11_endofpacket + wire rsp_xbar_demux_011_src0_valid; // rsp_xbar_demux_011:src0_valid -> rsp_xbar_mux_001:sink11_valid + wire rsp_xbar_demux_011_src0_startofpacket; // rsp_xbar_demux_011:src0_startofpacket -> rsp_xbar_mux_001:sink11_startofpacket + wire [95:0] rsp_xbar_demux_011_src0_data; // rsp_xbar_demux_011:src0_data -> rsp_xbar_mux_001:sink11_data + wire [17:0] rsp_xbar_demux_011_src0_channel; // rsp_xbar_demux_011:src0_channel -> rsp_xbar_mux_001:sink11_channel + wire rsp_xbar_demux_011_src0_ready; // rsp_xbar_mux_001:sink11_ready -> rsp_xbar_demux_011:src0_ready + wire rsp_xbar_demux_012_src0_endofpacket; // rsp_xbar_demux_012:src0_endofpacket -> rsp_xbar_mux_001:sink12_endofpacket + wire rsp_xbar_demux_012_src0_valid; // rsp_xbar_demux_012:src0_valid -> rsp_xbar_mux_001:sink12_valid + wire rsp_xbar_demux_012_src0_startofpacket; // rsp_xbar_demux_012:src0_startofpacket -> rsp_xbar_mux_001:sink12_startofpacket + wire [95:0] rsp_xbar_demux_012_src0_data; // rsp_xbar_demux_012:src0_data -> rsp_xbar_mux_001:sink12_data + wire [17:0] rsp_xbar_demux_012_src0_channel; // rsp_xbar_demux_012:src0_channel -> rsp_xbar_mux_001:sink12_channel + wire rsp_xbar_demux_012_src0_ready; // rsp_xbar_mux_001:sink12_ready -> rsp_xbar_demux_012:src0_ready + wire rsp_xbar_demux_013_src0_endofpacket; // rsp_xbar_demux_013:src0_endofpacket -> rsp_xbar_mux_001:sink13_endofpacket + wire rsp_xbar_demux_013_src0_valid; // rsp_xbar_demux_013:src0_valid -> rsp_xbar_mux_001:sink13_valid + wire rsp_xbar_demux_013_src0_startofpacket; // rsp_xbar_demux_013:src0_startofpacket -> rsp_xbar_mux_001:sink13_startofpacket + wire [95:0] rsp_xbar_demux_013_src0_data; // rsp_xbar_demux_013:src0_data -> rsp_xbar_mux_001:sink13_data + wire [17:0] rsp_xbar_demux_013_src0_channel; // rsp_xbar_demux_013:src0_channel -> rsp_xbar_mux_001:sink13_channel + wire rsp_xbar_demux_013_src0_ready; // rsp_xbar_mux_001:sink13_ready -> rsp_xbar_demux_013:src0_ready + wire rsp_xbar_demux_014_src0_endofpacket; // rsp_xbar_demux_014:src0_endofpacket -> rsp_xbar_mux_001:sink14_endofpacket + wire rsp_xbar_demux_014_src0_valid; // rsp_xbar_demux_014:src0_valid -> rsp_xbar_mux_001:sink14_valid + wire rsp_xbar_demux_014_src0_startofpacket; // rsp_xbar_demux_014:src0_startofpacket -> rsp_xbar_mux_001:sink14_startofpacket + wire [95:0] rsp_xbar_demux_014_src0_data; // rsp_xbar_demux_014:src0_data -> rsp_xbar_mux_001:sink14_data + wire [17:0] rsp_xbar_demux_014_src0_channel; // rsp_xbar_demux_014:src0_channel -> rsp_xbar_mux_001:sink14_channel + wire rsp_xbar_demux_014_src0_ready; // rsp_xbar_mux_001:sink14_ready -> rsp_xbar_demux_014:src0_ready + wire rsp_xbar_demux_015_src0_endofpacket; // rsp_xbar_demux_015:src0_endofpacket -> rsp_xbar_mux_001:sink15_endofpacket + wire rsp_xbar_demux_015_src0_valid; // rsp_xbar_demux_015:src0_valid -> rsp_xbar_mux_001:sink15_valid + wire rsp_xbar_demux_015_src0_startofpacket; // rsp_xbar_demux_015:src0_startofpacket -> rsp_xbar_mux_001:sink15_startofpacket + wire [95:0] rsp_xbar_demux_015_src0_data; // rsp_xbar_demux_015:src0_data -> rsp_xbar_mux_001:sink15_data + wire [17:0] rsp_xbar_demux_015_src0_channel; // rsp_xbar_demux_015:src0_channel -> rsp_xbar_mux_001:sink15_channel + wire rsp_xbar_demux_015_src0_ready; // rsp_xbar_mux_001:sink15_ready -> rsp_xbar_demux_015:src0_ready + wire rsp_xbar_demux_016_src0_endofpacket; // rsp_xbar_demux_016:src0_endofpacket -> rsp_xbar_mux_001:sink16_endofpacket + wire rsp_xbar_demux_016_src0_valid; // rsp_xbar_demux_016:src0_valid -> rsp_xbar_mux_001:sink16_valid + wire rsp_xbar_demux_016_src0_startofpacket; // rsp_xbar_demux_016:src0_startofpacket -> rsp_xbar_mux_001:sink16_startofpacket + wire [95:0] rsp_xbar_demux_016_src0_data; // rsp_xbar_demux_016:src0_data -> rsp_xbar_mux_001:sink16_data + wire [17:0] rsp_xbar_demux_016_src0_channel; // rsp_xbar_demux_016:src0_channel -> rsp_xbar_mux_001:sink16_channel + wire rsp_xbar_demux_016_src0_ready; // rsp_xbar_mux_001:sink16_ready -> rsp_xbar_demux_016:src0_ready + wire rsp_xbar_demux_017_src0_endofpacket; // rsp_xbar_demux_017:src0_endofpacket -> rsp_xbar_mux_001:sink17_endofpacket + wire rsp_xbar_demux_017_src0_valid; // rsp_xbar_demux_017:src0_valid -> rsp_xbar_mux_001:sink17_valid + wire rsp_xbar_demux_017_src0_startofpacket; // rsp_xbar_demux_017:src0_startofpacket -> rsp_xbar_mux_001:sink17_startofpacket + wire [95:0] rsp_xbar_demux_017_src0_data; // rsp_xbar_demux_017:src0_data -> rsp_xbar_mux_001:sink17_data + wire [17:0] rsp_xbar_demux_017_src0_channel; // rsp_xbar_demux_017:src0_channel -> rsp_xbar_mux_001:sink17_channel + wire rsp_xbar_demux_017_src0_ready; // rsp_xbar_mux_001:sink17_ready -> rsp_xbar_demux_017:src0_ready + wire addr_router_src_endofpacket; // addr_router:src_endofpacket -> cmd_xbar_demux:sink_endofpacket + wire addr_router_src_valid; // addr_router:src_valid -> cmd_xbar_demux:sink_valid + wire addr_router_src_startofpacket; // addr_router:src_startofpacket -> cmd_xbar_demux:sink_startofpacket + wire [95:0] addr_router_src_data; // addr_router:src_data -> cmd_xbar_demux:sink_data + wire [17:0] addr_router_src_channel; // addr_router:src_channel -> cmd_xbar_demux:sink_channel + wire addr_router_src_ready; // cmd_xbar_demux:sink_ready -> addr_router:src_ready + wire rsp_xbar_mux_src_endofpacket; // rsp_xbar_mux:src_endofpacket -> nios2_processor_instruction_master_translator_avalon_universal_master_0_agent:rp_endofpacket + wire rsp_xbar_mux_src_valid; // rsp_xbar_mux:src_valid -> nios2_processor_instruction_master_translator_avalon_universal_master_0_agent:rp_valid + wire rsp_xbar_mux_src_startofpacket; // rsp_xbar_mux:src_startofpacket -> nios2_processor_instruction_master_translator_avalon_universal_master_0_agent:rp_startofpacket + wire [95:0] rsp_xbar_mux_src_data; // rsp_xbar_mux:src_data -> nios2_processor_instruction_master_translator_avalon_universal_master_0_agent:rp_data + wire [17:0] rsp_xbar_mux_src_channel; // rsp_xbar_mux:src_channel -> nios2_processor_instruction_master_translator_avalon_universal_master_0_agent:rp_channel + wire rsp_xbar_mux_src_ready; // nios2_processor_instruction_master_translator_avalon_universal_master_0_agent:rp_ready -> rsp_xbar_mux:src_ready + wire addr_router_001_src_endofpacket; // addr_router_001:src_endofpacket -> cmd_xbar_demux_001:sink_endofpacket + wire addr_router_001_src_valid; // addr_router_001:src_valid -> cmd_xbar_demux_001:sink_valid + wire addr_router_001_src_startofpacket; // addr_router_001:src_startofpacket -> cmd_xbar_demux_001:sink_startofpacket + wire [95:0] addr_router_001_src_data; // addr_router_001:src_data -> cmd_xbar_demux_001:sink_data + wire [17:0] addr_router_001_src_channel; // addr_router_001:src_channel -> cmd_xbar_demux_001:sink_channel + wire addr_router_001_src_ready; // cmd_xbar_demux_001:sink_ready -> addr_router_001:src_ready + wire rsp_xbar_mux_001_src_endofpacket; // rsp_xbar_mux_001:src_endofpacket -> nios2_processor_data_master_translator_avalon_universal_master_0_agent:rp_endofpacket + wire rsp_xbar_mux_001_src_valid; // rsp_xbar_mux_001:src_valid -> nios2_processor_data_master_translator_avalon_universal_master_0_agent:rp_valid + wire rsp_xbar_mux_001_src_startofpacket; // rsp_xbar_mux_001:src_startofpacket -> nios2_processor_data_master_translator_avalon_universal_master_0_agent:rp_startofpacket + wire [95:0] rsp_xbar_mux_001_src_data; // rsp_xbar_mux_001:src_data -> nios2_processor_data_master_translator_avalon_universal_master_0_agent:rp_data + wire [17:0] rsp_xbar_mux_001_src_channel; // rsp_xbar_mux_001:src_channel -> nios2_processor_data_master_translator_avalon_universal_master_0_agent:rp_channel + wire rsp_xbar_mux_001_src_ready; // nios2_processor_data_master_translator_avalon_universal_master_0_agent:rp_ready -> rsp_xbar_mux_001:src_ready + wire cmd_xbar_mux_src_endofpacket; // cmd_xbar_mux:src_endofpacket -> nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent:cp_endofpacket + wire cmd_xbar_mux_src_valid; // cmd_xbar_mux:src_valid -> nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent:cp_valid + wire cmd_xbar_mux_src_startofpacket; // cmd_xbar_mux:src_startofpacket -> nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent:cp_startofpacket + wire [95:0] cmd_xbar_mux_src_data; // cmd_xbar_mux:src_data -> nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent:cp_data + wire [17:0] cmd_xbar_mux_src_channel; // cmd_xbar_mux:src_channel -> nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent:cp_channel + wire cmd_xbar_mux_src_ready; // nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent:cp_ready -> cmd_xbar_mux:src_ready + wire id_router_src_endofpacket; // id_router:src_endofpacket -> rsp_xbar_demux:sink_endofpacket + wire id_router_src_valid; // id_router:src_valid -> rsp_xbar_demux:sink_valid + wire id_router_src_startofpacket; // id_router:src_startofpacket -> rsp_xbar_demux:sink_startofpacket + wire [95:0] id_router_src_data; // id_router:src_data -> rsp_xbar_demux:sink_data + wire [17:0] id_router_src_channel; // id_router:src_channel -> rsp_xbar_demux:sink_channel + wire id_router_src_ready; // rsp_xbar_demux:sink_ready -> id_router:src_ready + wire cmd_xbar_mux_001_src_endofpacket; // cmd_xbar_mux_001:src_endofpacket -> onchip_memory_s1_translator_avalon_universal_slave_0_agent:cp_endofpacket + wire cmd_xbar_mux_001_src_valid; // cmd_xbar_mux_001:src_valid -> onchip_memory_s1_translator_avalon_universal_slave_0_agent:cp_valid + wire cmd_xbar_mux_001_src_startofpacket; // cmd_xbar_mux_001:src_startofpacket -> onchip_memory_s1_translator_avalon_universal_slave_0_agent:cp_startofpacket + wire [95:0] cmd_xbar_mux_001_src_data; // cmd_xbar_mux_001:src_data -> onchip_memory_s1_translator_avalon_universal_slave_0_agent:cp_data + wire [17:0] cmd_xbar_mux_001_src_channel; // cmd_xbar_mux_001:src_channel -> onchip_memory_s1_translator_avalon_universal_slave_0_agent:cp_channel + wire cmd_xbar_mux_001_src_ready; // onchip_memory_s1_translator_avalon_universal_slave_0_agent:cp_ready -> cmd_xbar_mux_001:src_ready + wire id_router_001_src_endofpacket; // id_router_001:src_endofpacket -> rsp_xbar_demux_001:sink_endofpacket + wire id_router_001_src_valid; // id_router_001:src_valid -> rsp_xbar_demux_001:sink_valid + wire id_router_001_src_startofpacket; // id_router_001:src_startofpacket -> rsp_xbar_demux_001:sink_startofpacket + wire [95:0] id_router_001_src_data; // id_router_001:src_data -> rsp_xbar_demux_001:sink_data + wire [17:0] id_router_001_src_channel; // id_router_001:src_channel -> rsp_xbar_demux_001:sink_channel + wire id_router_001_src_ready; // rsp_xbar_demux_001:sink_ready -> id_router_001:src_ready + wire cmd_xbar_demux_001_src2_ready; // LEDs_s1_translator_avalon_universal_slave_0_agent:cp_ready -> cmd_xbar_demux_001:src2_ready + wire id_router_002_src_endofpacket; // id_router_002:src_endofpacket -> rsp_xbar_demux_002:sink_endofpacket + wire id_router_002_src_valid; // id_router_002:src_valid -> rsp_xbar_demux_002:sink_valid + wire id_router_002_src_startofpacket; // id_router_002:src_startofpacket -> rsp_xbar_demux_002:sink_startofpacket + wire [95:0] id_router_002_src_data; // id_router_002:src_data -> rsp_xbar_demux_002:sink_data + wire [17:0] id_router_002_src_channel; // id_router_002:src_channel -> rsp_xbar_demux_002:sink_channel + wire id_router_002_src_ready; // rsp_xbar_demux_002:sink_ready -> id_router_002:src_ready + wire cmd_xbar_demux_001_src3_ready; // jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent:cp_ready -> cmd_xbar_demux_001:src3_ready + wire id_router_003_src_endofpacket; // id_router_003:src_endofpacket -> rsp_xbar_demux_003:sink_endofpacket + wire id_router_003_src_valid; // id_router_003:src_valid -> rsp_xbar_demux_003:sink_valid + wire id_router_003_src_startofpacket; // id_router_003:src_startofpacket -> rsp_xbar_demux_003:sink_startofpacket + wire [95:0] id_router_003_src_data; // id_router_003:src_data -> rsp_xbar_demux_003:sink_data + wire [17:0] id_router_003_src_channel; // id_router_003:src_channel -> rsp_xbar_demux_003:sink_channel + wire id_router_003_src_ready; // rsp_xbar_demux_003:sink_ready -> id_router_003:src_ready + wire cmd_xbar_demux_001_src4_ready; // LEDRs_s1_translator_avalon_universal_slave_0_agent:cp_ready -> cmd_xbar_demux_001:src4_ready + wire id_router_004_src_endofpacket; // id_router_004:src_endofpacket -> rsp_xbar_demux_004:sink_endofpacket + wire id_router_004_src_valid; // id_router_004:src_valid -> rsp_xbar_demux_004:sink_valid + wire id_router_004_src_startofpacket; // id_router_004:src_startofpacket -> rsp_xbar_demux_004:sink_startofpacket + wire [95:0] id_router_004_src_data; // id_router_004:src_data -> rsp_xbar_demux_004:sink_data + wire [17:0] id_router_004_src_channel; // id_router_004:src_channel -> rsp_xbar_demux_004:sink_channel + wire id_router_004_src_ready; // rsp_xbar_demux_004:sink_ready -> id_router_004:src_ready + wire cmd_xbar_demux_001_src5_ready; // switches_s1_translator_avalon_universal_slave_0_agent:cp_ready -> cmd_xbar_demux_001:src5_ready + wire id_router_005_src_endofpacket; // id_router_005:src_endofpacket -> rsp_xbar_demux_005:sink_endofpacket + wire id_router_005_src_valid; // id_router_005:src_valid -> rsp_xbar_demux_005:sink_valid + wire id_router_005_src_startofpacket; // id_router_005:src_startofpacket -> rsp_xbar_demux_005:sink_startofpacket + wire [95:0] id_router_005_src_data; // id_router_005:src_data -> rsp_xbar_demux_005:sink_data + wire [17:0] id_router_005_src_channel; // id_router_005:src_channel -> rsp_xbar_demux_005:sink_channel + wire id_router_005_src_ready; // rsp_xbar_demux_005:sink_ready -> id_router_005:src_ready + wire cmd_xbar_demux_001_src6_ready; // push_switches_s1_translator_avalon_universal_slave_0_agent:cp_ready -> cmd_xbar_demux_001:src6_ready + wire id_router_006_src_endofpacket; // id_router_006:src_endofpacket -> rsp_xbar_demux_006:sink_endofpacket + wire id_router_006_src_valid; // id_router_006:src_valid -> rsp_xbar_demux_006:sink_valid + wire id_router_006_src_startofpacket; // id_router_006:src_startofpacket -> rsp_xbar_demux_006:sink_startofpacket + wire [95:0] id_router_006_src_data; // id_router_006:src_data -> rsp_xbar_demux_006:sink_data + wire [17:0] id_router_006_src_channel; // id_router_006:src_channel -> rsp_xbar_demux_006:sink_channel + wire id_router_006_src_ready; // rsp_xbar_demux_006:sink_ready -> id_router_006:src_ready + wire cmd_xbar_demux_001_src7_ready; // hex0_s1_translator_avalon_universal_slave_0_agent:cp_ready -> cmd_xbar_demux_001:src7_ready + wire id_router_007_src_endofpacket; // id_router_007:src_endofpacket -> rsp_xbar_demux_007:sink_endofpacket + wire id_router_007_src_valid; // id_router_007:src_valid -> rsp_xbar_demux_007:sink_valid + wire id_router_007_src_startofpacket; // id_router_007:src_startofpacket -> rsp_xbar_demux_007:sink_startofpacket + wire [95:0] id_router_007_src_data; // id_router_007:src_data -> rsp_xbar_demux_007:sink_data + wire [17:0] id_router_007_src_channel; // id_router_007:src_channel -> rsp_xbar_demux_007:sink_channel + wire id_router_007_src_ready; // rsp_xbar_demux_007:sink_ready -> id_router_007:src_ready + wire cmd_xbar_demux_001_src8_ready; // hex1_s1_translator_avalon_universal_slave_0_agent:cp_ready -> cmd_xbar_demux_001:src8_ready + wire id_router_008_src_endofpacket; // id_router_008:src_endofpacket -> rsp_xbar_demux_008:sink_endofpacket + wire id_router_008_src_valid; // id_router_008:src_valid -> rsp_xbar_demux_008:sink_valid + wire id_router_008_src_startofpacket; // id_router_008:src_startofpacket -> rsp_xbar_demux_008:sink_startofpacket + wire [95:0] id_router_008_src_data; // id_router_008:src_data -> rsp_xbar_demux_008:sink_data + wire [17:0] id_router_008_src_channel; // id_router_008:src_channel -> rsp_xbar_demux_008:sink_channel + wire id_router_008_src_ready; // rsp_xbar_demux_008:sink_ready -> id_router_008:src_ready + wire cmd_xbar_demux_001_src9_ready; // hex2_s1_translator_avalon_universal_slave_0_agent:cp_ready -> cmd_xbar_demux_001:src9_ready + wire id_router_009_src_endofpacket; // id_router_009:src_endofpacket -> rsp_xbar_demux_009:sink_endofpacket + wire id_router_009_src_valid; // id_router_009:src_valid -> rsp_xbar_demux_009:sink_valid + wire id_router_009_src_startofpacket; // id_router_009:src_startofpacket -> rsp_xbar_demux_009:sink_startofpacket + wire [95:0] id_router_009_src_data; // id_router_009:src_data -> rsp_xbar_demux_009:sink_data + wire [17:0] id_router_009_src_channel; // id_router_009:src_channel -> rsp_xbar_demux_009:sink_channel + wire id_router_009_src_ready; // rsp_xbar_demux_009:sink_ready -> id_router_009:src_ready + wire cmd_xbar_demux_001_src10_ready; // hex3_s1_translator_avalon_universal_slave_0_agent:cp_ready -> cmd_xbar_demux_001:src10_ready + wire id_router_010_src_endofpacket; // id_router_010:src_endofpacket -> rsp_xbar_demux_010:sink_endofpacket + wire id_router_010_src_valid; // id_router_010:src_valid -> rsp_xbar_demux_010:sink_valid + wire id_router_010_src_startofpacket; // id_router_010:src_startofpacket -> rsp_xbar_demux_010:sink_startofpacket + wire [95:0] id_router_010_src_data; // id_router_010:src_data -> rsp_xbar_demux_010:sink_data + wire [17:0] id_router_010_src_channel; // id_router_010:src_channel -> rsp_xbar_demux_010:sink_channel + wire id_router_010_src_ready; // rsp_xbar_demux_010:sink_ready -> id_router_010:src_ready + wire cmd_xbar_demux_001_src11_ready; // hex4_s1_translator_avalon_universal_slave_0_agent:cp_ready -> cmd_xbar_demux_001:src11_ready + wire id_router_011_src_endofpacket; // id_router_011:src_endofpacket -> rsp_xbar_demux_011:sink_endofpacket + wire id_router_011_src_valid; // id_router_011:src_valid -> rsp_xbar_demux_011:sink_valid + wire id_router_011_src_startofpacket; // id_router_011:src_startofpacket -> rsp_xbar_demux_011:sink_startofpacket + wire [95:0] id_router_011_src_data; // id_router_011:src_data -> rsp_xbar_demux_011:sink_data + wire [17:0] id_router_011_src_channel; // id_router_011:src_channel -> rsp_xbar_demux_011:sink_channel + wire id_router_011_src_ready; // rsp_xbar_demux_011:sink_ready -> id_router_011:src_ready + wire cmd_xbar_demux_001_src12_ready; // hex5_s1_translator_avalon_universal_slave_0_agent:cp_ready -> cmd_xbar_demux_001:src12_ready + wire id_router_012_src_endofpacket; // id_router_012:src_endofpacket -> rsp_xbar_demux_012:sink_endofpacket + wire id_router_012_src_valid; // id_router_012:src_valid -> rsp_xbar_demux_012:sink_valid + wire id_router_012_src_startofpacket; // id_router_012:src_startofpacket -> rsp_xbar_demux_012:sink_startofpacket + wire [95:0] id_router_012_src_data; // id_router_012:src_data -> rsp_xbar_demux_012:sink_data + wire [17:0] id_router_012_src_channel; // id_router_012:src_channel -> rsp_xbar_demux_012:sink_channel + wire id_router_012_src_ready; // rsp_xbar_demux_012:sink_ready -> id_router_012:src_ready + wire cmd_xbar_demux_001_src13_ready; // hex6_s1_translator_avalon_universal_slave_0_agent:cp_ready -> cmd_xbar_demux_001:src13_ready + wire id_router_013_src_endofpacket; // id_router_013:src_endofpacket -> rsp_xbar_demux_013:sink_endofpacket + wire id_router_013_src_valid; // id_router_013:src_valid -> rsp_xbar_demux_013:sink_valid + wire id_router_013_src_startofpacket; // id_router_013:src_startofpacket -> rsp_xbar_demux_013:sink_startofpacket + wire [95:0] id_router_013_src_data; // id_router_013:src_data -> rsp_xbar_demux_013:sink_data + wire [17:0] id_router_013_src_channel; // id_router_013:src_channel -> rsp_xbar_demux_013:sink_channel + wire id_router_013_src_ready; // rsp_xbar_demux_013:sink_ready -> id_router_013:src_ready + wire cmd_xbar_demux_001_src14_ready; // hex7_s1_translator_avalon_universal_slave_0_agent:cp_ready -> cmd_xbar_demux_001:src14_ready + wire id_router_014_src_endofpacket; // id_router_014:src_endofpacket -> rsp_xbar_demux_014:sink_endofpacket + wire id_router_014_src_valid; // id_router_014:src_valid -> rsp_xbar_demux_014:sink_valid + wire id_router_014_src_startofpacket; // id_router_014:src_startofpacket -> rsp_xbar_demux_014:sink_startofpacket + wire [95:0] id_router_014_src_data; // id_router_014:src_data -> rsp_xbar_demux_014:sink_data + wire [17:0] id_router_014_src_channel; // id_router_014:src_channel -> rsp_xbar_demux_014:sink_channel + wire id_router_014_src_ready; // rsp_xbar_demux_014:sink_ready -> id_router_014:src_ready + wire cmd_xbar_demux_001_src15_ready; // lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent:cp_ready -> cmd_xbar_demux_001:src15_ready + wire id_router_015_src_endofpacket; // id_router_015:src_endofpacket -> rsp_xbar_demux_015:sink_endofpacket + wire id_router_015_src_valid; // id_router_015:src_valid -> rsp_xbar_demux_015:sink_valid + wire id_router_015_src_startofpacket; // id_router_015:src_startofpacket -> rsp_xbar_demux_015:sink_startofpacket + wire [95:0] id_router_015_src_data; // id_router_015:src_data -> rsp_xbar_demux_015:sink_data + wire [17:0] id_router_015_src_channel; // id_router_015:src_channel -> rsp_xbar_demux_015:sink_channel + wire id_router_015_src_ready; // rsp_xbar_demux_015:sink_ready -> id_router_015:src_ready + wire cmd_xbar_demux_001_src16_ready; // lcd_on_s1_translator_avalon_universal_slave_0_agent:cp_ready -> cmd_xbar_demux_001:src16_ready + wire id_router_016_src_endofpacket; // id_router_016:src_endofpacket -> rsp_xbar_demux_016:sink_endofpacket + wire id_router_016_src_valid; // id_router_016:src_valid -> rsp_xbar_demux_016:sink_valid + wire id_router_016_src_startofpacket; // id_router_016:src_startofpacket -> rsp_xbar_demux_016:sink_startofpacket + wire [95:0] id_router_016_src_data; // id_router_016:src_data -> rsp_xbar_demux_016:sink_data + wire [17:0] id_router_016_src_channel; // id_router_016:src_channel -> rsp_xbar_demux_016:sink_channel + wire id_router_016_src_ready; // rsp_xbar_demux_016:sink_ready -> id_router_016:src_ready + wire cmd_xbar_demux_001_src17_ready; // lcd_blon_s1_translator_avalon_universal_slave_0_agent:cp_ready -> cmd_xbar_demux_001:src17_ready + wire id_router_017_src_endofpacket; // id_router_017:src_endofpacket -> rsp_xbar_demux_017:sink_endofpacket + wire id_router_017_src_valid; // id_router_017:src_valid -> rsp_xbar_demux_017:sink_valid + wire id_router_017_src_startofpacket; // id_router_017:src_startofpacket -> rsp_xbar_demux_017:sink_startofpacket + wire [95:0] id_router_017_src_data; // id_router_017:src_data -> rsp_xbar_demux_017:sink_data + wire [17:0] id_router_017_src_channel; // id_router_017:src_channel -> rsp_xbar_demux_017:sink_channel + wire id_router_017_src_ready; // rsp_xbar_demux_017:sink_ready -> id_router_017:src_ready + wire irq_mapper_receiver0_irq; // jtag_uart:av_irq -> irq_mapper:receiver0_irq + wire [31:0] nios2_processor_d_irq_irq; // irq_mapper:sender_irq -> nios2_processor:d_irq + + nios_system_nios2_processor nios2_processor ( + .clk (clk_clk), // clk.clk + .reset_n (~rst_controller_reset_out_reset), // reset_n.reset_n + .d_address (nios2_processor_data_master_address), // data_master.address + .d_byteenable (nios2_processor_data_master_byteenable), // .byteenable + .d_read (nios2_processor_data_master_read), // .read + .d_readdata (nios2_processor_data_master_readdata), // .readdata + .d_waitrequest (nios2_processor_data_master_waitrequest), // .waitrequest + .d_write (nios2_processor_data_master_write), // .write + .d_writedata (nios2_processor_data_master_writedata), // .writedata + .jtag_debug_module_debugaccess_to_roms (nios2_processor_data_master_debugaccess), // .debugaccess + .i_address (nios2_processor_instruction_master_address), // instruction_master.address + .i_read (nios2_processor_instruction_master_read), // .read + .i_readdata (nios2_processor_instruction_master_readdata), // .readdata + .i_waitrequest (nios2_processor_instruction_master_waitrequest), // .waitrequest + .d_irq (nios2_processor_d_irq_irq), // d_irq.irq + .jtag_debug_module_resetrequest (nios2_processor_jtag_debug_module_reset_reset), // jtag_debug_module_reset.reset + .jtag_debug_module_address (nios2_processor_jtag_debug_module_translator_avalon_anti_slave_0_address), // jtag_debug_module.address + .jtag_debug_module_byteenable (nios2_processor_jtag_debug_module_translator_avalon_anti_slave_0_byteenable), // .byteenable + .jtag_debug_module_debugaccess (nios2_processor_jtag_debug_module_translator_avalon_anti_slave_0_debugaccess), // .debugaccess + .jtag_debug_module_read (nios2_processor_jtag_debug_module_translator_avalon_anti_slave_0_read), // .read + .jtag_debug_module_readdata (nios2_processor_jtag_debug_module_translator_avalon_anti_slave_0_readdata), // .readdata + .jtag_debug_module_waitrequest (nios2_processor_jtag_debug_module_translator_avalon_anti_slave_0_waitrequest), // .waitrequest + .jtag_debug_module_write (nios2_processor_jtag_debug_module_translator_avalon_anti_slave_0_write), // .write + .jtag_debug_module_writedata (nios2_processor_jtag_debug_module_translator_avalon_anti_slave_0_writedata), // .writedata + .no_ci_readra () // custom_instruction_master.readra + ); + + nios_system_onchip_memory onchip_memory ( + .clk (clk_clk), // clk1.clk + .address (onchip_memory_s1_translator_avalon_anti_slave_0_address), // s1.address + .clken (onchip_memory_s1_translator_avalon_anti_slave_0_clken), // .clken + .chipselect (onchip_memory_s1_translator_avalon_anti_slave_0_chipselect), // .chipselect + .write (onchip_memory_s1_translator_avalon_anti_slave_0_write), // .write + .readdata (onchip_memory_s1_translator_avalon_anti_slave_0_readdata), // .readdata + .writedata (onchip_memory_s1_translator_avalon_anti_slave_0_writedata), // .writedata + .byteenable (onchip_memory_s1_translator_avalon_anti_slave_0_byteenable), // .byteenable + .reset (rst_controller_reset_out_reset), // reset1.reset + .reset_req (rst_controller_reset_out_reset_req) // .reset_req + ); + + nios_system_jtag_uart jtag_uart ( + .clk (clk_clk), // clk.clk + .rst_n (~rst_controller_reset_out_reset), // reset.reset_n + .av_chipselect (jtag_uart_avalon_jtag_slave_translator_avalon_anti_slave_0_chipselect), // avalon_jtag_slave.chipselect + .av_address (jtag_uart_avalon_jtag_slave_translator_avalon_anti_slave_0_address), // .address + .av_read_n (~jtag_uart_avalon_jtag_slave_translator_avalon_anti_slave_0_read), // .read_n + .av_readdata (jtag_uart_avalon_jtag_slave_translator_avalon_anti_slave_0_readdata), // .readdata + .av_write_n (~jtag_uart_avalon_jtag_slave_translator_avalon_anti_slave_0_write), // .write_n + .av_writedata (jtag_uart_avalon_jtag_slave_translator_avalon_anti_slave_0_writedata), // .writedata + .av_waitrequest (jtag_uart_avalon_jtag_slave_translator_avalon_anti_slave_0_waitrequest), // .waitrequest + .av_irq (irq_mapper_receiver0_irq) // irq.irq + ); + + nios_system_LEDs leds ( + .clk (clk_clk), // clk.clk + .reset_n (~rst_controller_reset_out_reset), // reset.reset_n + .address (leds_s1_translator_avalon_anti_slave_0_address), // s1.address + .write_n (~leds_s1_translator_avalon_anti_slave_0_write), // .write_n + .writedata (leds_s1_translator_avalon_anti_slave_0_writedata), // .writedata + .chipselect (leds_s1_translator_avalon_anti_slave_0_chipselect), // .chipselect + .readdata (leds_s1_translator_avalon_anti_slave_0_readdata), // .readdata + .out_port (leds_export) // external_connection.export + ); + + nios_system_LEDRs ledrs ( + .clk (clk_clk), // clk.clk + .reset_n (~rst_controller_reset_out_reset), // reset.reset_n + .address (ledrs_s1_translator_avalon_anti_slave_0_address), // s1.address + .write_n (~ledrs_s1_translator_avalon_anti_slave_0_write), // .write_n + .writedata (ledrs_s1_translator_avalon_anti_slave_0_writedata), // .writedata + .chipselect (ledrs_s1_translator_avalon_anti_slave_0_chipselect), // .chipselect + .readdata (ledrs_s1_translator_avalon_anti_slave_0_readdata), // .readdata + .out_port (ledrs_export) // external_connection.export + ); + + nios_system_switches switches ( + .clk (clk_clk), // clk.clk + .reset_n (~rst_controller_reset_out_reset), // reset.reset_n + .address (switches_s1_translator_avalon_anti_slave_0_address), // s1.address + .readdata (switches_s1_translator_avalon_anti_slave_0_readdata), // .readdata + .in_port (switches_export) // external_connection.export + ); + + nios_system_push_switches push_switches ( + .clk (clk_clk), // clk.clk + .reset_n (~rst_controller_reset_out_reset), // reset.reset_n + .address (push_switches_s1_translator_avalon_anti_slave_0_address), // s1.address + .readdata (push_switches_s1_translator_avalon_anti_slave_0_readdata), // .readdata + .in_port (push_switches_export) // external_connection.export + ); + + nios_system_hex0 hex0 ( + .clk (clk_clk), // clk.clk + .reset_n (~rst_controller_reset_out_reset), // reset.reset_n + .address (hex0_s1_translator_avalon_anti_slave_0_address), // s1.address + .write_n (~hex0_s1_translator_avalon_anti_slave_0_write), // .write_n + .writedata (hex0_s1_translator_avalon_anti_slave_0_writedata), // .writedata + .chipselect (hex0_s1_translator_avalon_anti_slave_0_chipselect), // .chipselect + .readdata (hex0_s1_translator_avalon_anti_slave_0_readdata), // .readdata + .out_port (hex0_export) // external_connection.export + ); + + nios_system_hex0 hex1 ( + .clk (clk_clk), // clk.clk + .reset_n (~rst_controller_reset_out_reset), // reset.reset_n + .address (hex1_s1_translator_avalon_anti_slave_0_address), // s1.address + .write_n (~hex1_s1_translator_avalon_anti_slave_0_write), // .write_n + .writedata (hex1_s1_translator_avalon_anti_slave_0_writedata), // .writedata + .chipselect (hex1_s1_translator_avalon_anti_slave_0_chipselect), // .chipselect + .readdata (hex1_s1_translator_avalon_anti_slave_0_readdata), // .readdata + .out_port (hex1_export) // external_connection.export + ); + + nios_system_hex0 hex2 ( + .clk (clk_clk), // clk.clk + .reset_n (~rst_controller_reset_out_reset), // reset.reset_n + .address (hex2_s1_translator_avalon_anti_slave_0_address), // s1.address + .write_n (~hex2_s1_translator_avalon_anti_slave_0_write), // .write_n + .writedata (hex2_s1_translator_avalon_anti_slave_0_writedata), // .writedata + .chipselect (hex2_s1_translator_avalon_anti_slave_0_chipselect), // .chipselect + .readdata (hex2_s1_translator_avalon_anti_slave_0_readdata), // .readdata + .out_port (hex2_export) // external_connection.export + ); + + nios_system_hex0 hex3 ( + .clk (clk_clk), // clk.clk + .reset_n (~rst_controller_reset_out_reset), // reset.reset_n + .address (hex3_s1_translator_avalon_anti_slave_0_address), // s1.address + .write_n (~hex3_s1_translator_avalon_anti_slave_0_write), // .write_n + .writedata (hex3_s1_translator_avalon_anti_slave_0_writedata), // .writedata + .chipselect (hex3_s1_translator_avalon_anti_slave_0_chipselect), // .chipselect + .readdata (hex3_s1_translator_avalon_anti_slave_0_readdata), // .readdata + .out_port (hex3_export) // external_connection.export + ); + + nios_system_hex0 hex4 ( + .clk (clk_clk), // clk.clk + .reset_n (~rst_controller_reset_out_reset), // reset.reset_n + .address (hex4_s1_translator_avalon_anti_slave_0_address), // s1.address + .write_n (~hex4_s1_translator_avalon_anti_slave_0_write), // .write_n + .writedata (hex4_s1_translator_avalon_anti_slave_0_writedata), // .writedata + .chipselect (hex4_s1_translator_avalon_anti_slave_0_chipselect), // .chipselect + .readdata (hex4_s1_translator_avalon_anti_slave_0_readdata), // .readdata + .out_port (hex4_export) // external_connection.export + ); + + nios_system_hex0 hex5 ( + .clk (clk_clk), // clk.clk + .reset_n (~rst_controller_reset_out_reset), // reset.reset_n + .address (hex5_s1_translator_avalon_anti_slave_0_address), // s1.address + .write_n (~hex5_s1_translator_avalon_anti_slave_0_write), // .write_n + .writedata (hex5_s1_translator_avalon_anti_slave_0_writedata), // .writedata + .chipselect (hex5_s1_translator_avalon_anti_slave_0_chipselect), // .chipselect + .readdata (hex5_s1_translator_avalon_anti_slave_0_readdata), // .readdata + .out_port (hex5_export) // external_connection.export + ); + + nios_system_hex0 hex6 ( + .clk (clk_clk), // clk.clk + .reset_n (~rst_controller_reset_out_reset), // reset.reset_n + .address (hex6_s1_translator_avalon_anti_slave_0_address), // s1.address + .write_n (~hex6_s1_translator_avalon_anti_slave_0_write), // .write_n + .writedata (hex6_s1_translator_avalon_anti_slave_0_writedata), // .writedata + .chipselect (hex6_s1_translator_avalon_anti_slave_0_chipselect), // .chipselect + .readdata (hex6_s1_translator_avalon_anti_slave_0_readdata), // .readdata + .out_port (hex6_export) // external_connection.export + ); + + nios_system_hex0 hex7 ( + .clk (clk_clk), // clk.clk + .reset_n (~rst_controller_reset_out_reset), // reset.reset_n + .address (hex7_s1_translator_avalon_anti_slave_0_address), // s1.address + .write_n (~hex7_s1_translator_avalon_anti_slave_0_write), // .write_n + .writedata (hex7_s1_translator_avalon_anti_slave_0_writedata), // .writedata + .chipselect (hex7_s1_translator_avalon_anti_slave_0_chipselect), // .chipselect + .readdata (hex7_s1_translator_avalon_anti_slave_0_readdata), // .readdata + .out_port (hex7_export) // external_connection.export + ); + + nios_system_lcd_16207_0 lcd_16207_0 ( + .reset_n (~rst_controller_reset_out_reset), // reset.reset_n + .clk (clk_clk), // clk.clk + .begintransfer (lcd_16207_0_control_slave_translator_avalon_anti_slave_0_begintransfer), // control_slave.begintransfer + .read (lcd_16207_0_control_slave_translator_avalon_anti_slave_0_read), // .read + .write (lcd_16207_0_control_slave_translator_avalon_anti_slave_0_write), // .write + .readdata (lcd_16207_0_control_slave_translator_avalon_anti_slave_0_readdata), // .readdata + .writedata (lcd_16207_0_control_slave_translator_avalon_anti_slave_0_writedata), // .writedata + .address (lcd_16207_0_control_slave_translator_avalon_anti_slave_0_address), // .address + .LCD_RS (lcd_16207_0_RS), // external.export + .LCD_RW (lcd_16207_0_RW), // .export + .LCD_data (lcd_16207_0_data), // .export + .LCD_E (lcd_16207_0_E) // .export + ); + + nios_system_lcd_on lcd_on ( + .clk (clk_clk), // clk.clk + .reset_n (~rst_controller_reset_out_reset), // reset.reset_n + .address (lcd_on_s1_translator_avalon_anti_slave_0_address), // s1.address + .write_n (~lcd_on_s1_translator_avalon_anti_slave_0_write), // .write_n + .writedata (lcd_on_s1_translator_avalon_anti_slave_0_writedata), // .writedata + .chipselect (lcd_on_s1_translator_avalon_anti_slave_0_chipselect), // .chipselect + .readdata (lcd_on_s1_translator_avalon_anti_slave_0_readdata), // .readdata + .out_port (lcd_on_export) // external_connection.export + ); + + nios_system_lcd_on lcd_blon ( + .clk (clk_clk), // clk.clk + .reset_n (~rst_controller_reset_out_reset), // reset.reset_n + .address (lcd_blon_s1_translator_avalon_anti_slave_0_address), // s1.address + .write_n (~lcd_blon_s1_translator_avalon_anti_slave_0_write), // .write_n + .writedata (lcd_blon_s1_translator_avalon_anti_slave_0_writedata), // .writedata + .chipselect (lcd_blon_s1_translator_avalon_anti_slave_0_chipselect), // .chipselect + .readdata (lcd_blon_s1_translator_avalon_anti_slave_0_readdata), // .readdata + .out_port (lcd_blon_export) // external_connection.export + ); + + altera_merlin_master_translator #( + .AV_ADDRESS_W (19), + .AV_DATA_W (32), + .AV_BURSTCOUNT_W (1), + .AV_BYTEENABLE_W (4), + .UAV_ADDRESS_W (19), + .UAV_BURSTCOUNT_W (3), + .USE_READ (1), + .USE_WRITE (0), + .USE_BEGINBURSTTRANSFER (0), + .USE_BEGINTRANSFER (0), + .USE_CHIPSELECT (0), + .USE_BURSTCOUNT (0), + .USE_READDATAVALID (0), + .USE_WAITREQUEST (1), + .USE_READRESPONSE (0), + .USE_WRITERESPONSE (0), + .AV_SYMBOLS_PER_WORD (4), + .AV_ADDRESS_SYMBOLS (1), + .AV_BURSTCOUNT_SYMBOLS (0), + .AV_CONSTANT_BURST_BEHAVIOR (0), + .UAV_CONSTANT_BURST_BEHAVIOR (0), + .AV_LINEWRAPBURSTS (1), + .AV_REGISTERINCOMINGSIGNALS (0) + ) nios2_processor_instruction_master_translator ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // reset.reset + .uav_address (nios2_processor_instruction_master_translator_avalon_universal_master_0_address), // avalon_universal_master_0.address + .uav_burstcount (nios2_processor_instruction_master_translator_avalon_universal_master_0_burstcount), // .burstcount + .uav_read (nios2_processor_instruction_master_translator_avalon_universal_master_0_read), // .read + .uav_write (nios2_processor_instruction_master_translator_avalon_universal_master_0_write), // .write + .uav_waitrequest (nios2_processor_instruction_master_translator_avalon_universal_master_0_waitrequest), // .waitrequest + .uav_readdatavalid (nios2_processor_instruction_master_translator_avalon_universal_master_0_readdatavalid), // .readdatavalid + .uav_byteenable (nios2_processor_instruction_master_translator_avalon_universal_master_0_byteenable), // .byteenable + .uav_readdata (nios2_processor_instruction_master_translator_avalon_universal_master_0_readdata), // .readdata + .uav_writedata (nios2_processor_instruction_master_translator_avalon_universal_master_0_writedata), // .writedata + .uav_lock (nios2_processor_instruction_master_translator_avalon_universal_master_0_lock), // .lock + .uav_debugaccess (nios2_processor_instruction_master_translator_avalon_universal_master_0_debugaccess), // .debugaccess + .av_address (nios2_processor_instruction_master_address), // avalon_anti_master_0.address + .av_waitrequest (nios2_processor_instruction_master_waitrequest), // .waitrequest + .av_read (nios2_processor_instruction_master_read), // .read + .av_readdata (nios2_processor_instruction_master_readdata), // .readdata + .av_burstcount (1'b1), // (terminated) + .av_byteenable (4'b1111), // (terminated) + .av_beginbursttransfer (1'b0), // (terminated) + .av_begintransfer (1'b0), // (terminated) + .av_chipselect (1'b0), // (terminated) + .av_readdatavalid (), // (terminated) + .av_write (1'b0), // (terminated) + .av_writedata (32'b00000000000000000000000000000000), // (terminated) + .av_lock (1'b0), // (terminated) + .av_debugaccess (1'b0), // (terminated) + .uav_clken (), // (terminated) + .av_clken (1'b1), // (terminated) + .uav_response (2'b00), // (terminated) + .av_response (), // (terminated) + .uav_writeresponserequest (), // (terminated) + .uav_writeresponsevalid (1'b0), // (terminated) + .av_writeresponserequest (1'b0), // (terminated) + .av_writeresponsevalid () // (terminated) + ); + + altera_merlin_master_translator #( + .AV_ADDRESS_W (19), + .AV_DATA_W (32), + .AV_BURSTCOUNT_W (1), + .AV_BYTEENABLE_W (4), + .UAV_ADDRESS_W (19), + .UAV_BURSTCOUNT_W (3), + .USE_READ (1), + .USE_WRITE (1), + .USE_BEGINBURSTTRANSFER (0), + .USE_BEGINTRANSFER (0), + .USE_CHIPSELECT (0), + .USE_BURSTCOUNT (0), + .USE_READDATAVALID (0), + .USE_WAITREQUEST (1), + .USE_READRESPONSE (0), + .USE_WRITERESPONSE (0), + .AV_SYMBOLS_PER_WORD (4), + .AV_ADDRESS_SYMBOLS (1), + .AV_BURSTCOUNT_SYMBOLS (0), + .AV_CONSTANT_BURST_BEHAVIOR (0), + .UAV_CONSTANT_BURST_BEHAVIOR (0), + .AV_LINEWRAPBURSTS (0), + .AV_REGISTERINCOMINGSIGNALS (1) + ) nios2_processor_data_master_translator ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // reset.reset + .uav_address (nios2_processor_data_master_translator_avalon_universal_master_0_address), // avalon_universal_master_0.address + .uav_burstcount (nios2_processor_data_master_translator_avalon_universal_master_0_burstcount), // .burstcount + .uav_read (nios2_processor_data_master_translator_avalon_universal_master_0_read), // .read + .uav_write (nios2_processor_data_master_translator_avalon_universal_master_0_write), // .write + .uav_waitrequest (nios2_processor_data_master_translator_avalon_universal_master_0_waitrequest), // .waitrequest + .uav_readdatavalid (nios2_processor_data_master_translator_avalon_universal_master_0_readdatavalid), // .readdatavalid + .uav_byteenable (nios2_processor_data_master_translator_avalon_universal_master_0_byteenable), // .byteenable + .uav_readdata (nios2_processor_data_master_translator_avalon_universal_master_0_readdata), // .readdata + .uav_writedata (nios2_processor_data_master_translator_avalon_universal_master_0_writedata), // .writedata + .uav_lock (nios2_processor_data_master_translator_avalon_universal_master_0_lock), // .lock + .uav_debugaccess (nios2_processor_data_master_translator_avalon_universal_master_0_debugaccess), // .debugaccess + .av_address (nios2_processor_data_master_address), // avalon_anti_master_0.address + .av_waitrequest (nios2_processor_data_master_waitrequest), // .waitrequest + .av_byteenable (nios2_processor_data_master_byteenable), // .byteenable + .av_read (nios2_processor_data_master_read), // .read + .av_readdata (nios2_processor_data_master_readdata), // .readdata + .av_write (nios2_processor_data_master_write), // .write + .av_writedata (nios2_processor_data_master_writedata), // .writedata + .av_debugaccess (nios2_processor_data_master_debugaccess), // .debugaccess + .av_burstcount (1'b1), // (terminated) + .av_beginbursttransfer (1'b0), // (terminated) + .av_begintransfer (1'b0), // (terminated) + .av_chipselect (1'b0), // (terminated) + .av_readdatavalid (), // (terminated) + .av_lock (1'b0), // (terminated) + .uav_clken (), // (terminated) + .av_clken (1'b1), // (terminated) + .uav_response (2'b00), // (terminated) + .av_response (), // (terminated) + .uav_writeresponserequest (), // (terminated) + .uav_writeresponsevalid (1'b0), // (terminated) + .av_writeresponserequest (1'b0), // (terminated) + .av_writeresponsevalid () // (terminated) + ); + + altera_merlin_slave_translator #( + .AV_ADDRESS_W (9), + .AV_DATA_W (32), + .UAV_DATA_W (32), + .AV_BURSTCOUNT_W (1), + .AV_BYTEENABLE_W (4), + .UAV_BYTEENABLE_W (4), + .UAV_ADDRESS_W (19), + .UAV_BURSTCOUNT_W (3), + .AV_READLATENCY (0), + .USE_READDATAVALID (0), + .USE_WAITREQUEST (1), + .USE_UAV_CLKEN (0), + .USE_READRESPONSE (0), + .USE_WRITERESPONSE (0), + .AV_SYMBOLS_PER_WORD (4), + .AV_ADDRESS_SYMBOLS (0), + .AV_BURSTCOUNT_SYMBOLS (0), + .AV_CONSTANT_BURST_BEHAVIOR (0), + .UAV_CONSTANT_BURST_BEHAVIOR (0), + .AV_REQUIRE_UNALIGNED_ADDRESSES (0), + .CHIPSELECT_THROUGH_READLATENCY (0), + .AV_READ_WAIT_CYCLES (1), + .AV_WRITE_WAIT_CYCLES (0), + .AV_SETUP_WAIT_CYCLES (0), + .AV_DATA_HOLD_CYCLES (0) + ) nios2_processor_jtag_debug_module_translator ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // reset.reset + .uav_address (nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_m0_address), // avalon_universal_slave_0.address + .uav_burstcount (nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_m0_burstcount), // .burstcount + .uav_read (nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_m0_read), // .read + .uav_write (nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_m0_write), // .write + .uav_waitrequest (nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_m0_waitrequest), // .waitrequest + .uav_readdatavalid (nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_m0_readdatavalid), // .readdatavalid + .uav_byteenable (nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_m0_byteenable), // .byteenable + .uav_readdata (nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_m0_readdata), // .readdata + .uav_writedata (nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_m0_writedata), // .writedata + .uav_lock (nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_m0_lock), // .lock + .uav_debugaccess (nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_m0_debugaccess), // .debugaccess + .av_address (nios2_processor_jtag_debug_module_translator_avalon_anti_slave_0_address), // avalon_anti_slave_0.address + .av_write (nios2_processor_jtag_debug_module_translator_avalon_anti_slave_0_write), // .write + .av_read (nios2_processor_jtag_debug_module_translator_avalon_anti_slave_0_read), // .read + .av_readdata (nios2_processor_jtag_debug_module_translator_avalon_anti_slave_0_readdata), // .readdata + .av_writedata (nios2_processor_jtag_debug_module_translator_avalon_anti_slave_0_writedata), // .writedata + .av_byteenable (nios2_processor_jtag_debug_module_translator_avalon_anti_slave_0_byteenable), // .byteenable + .av_waitrequest (nios2_processor_jtag_debug_module_translator_avalon_anti_slave_0_waitrequest), // .waitrequest + .av_debugaccess (nios2_processor_jtag_debug_module_translator_avalon_anti_slave_0_debugaccess), // .debugaccess + .av_begintransfer (), // (terminated) + .av_beginbursttransfer (), // (terminated) + .av_burstcount (), // (terminated) + .av_readdatavalid (1'b0), // (terminated) + .av_writebyteenable (), // (terminated) + .av_lock (), // (terminated) + .av_chipselect (), // (terminated) + .av_clken (), // (terminated) + .uav_clken (1'b0), // (terminated) + .av_outputenable (), // (terminated) + .uav_response (), // (terminated) + .av_response (2'b00), // (terminated) + .uav_writeresponserequest (1'b0), // (terminated) + .uav_writeresponsevalid (), // (terminated) + .av_writeresponserequest (), // (terminated) + .av_writeresponsevalid (1'b0) // (terminated) + ); + + altera_merlin_slave_translator #( + .AV_ADDRESS_W (16), + .AV_DATA_W (32), + .UAV_DATA_W (32), + .AV_BURSTCOUNT_W (1), + .AV_BYTEENABLE_W (4), + .UAV_BYTEENABLE_W (4), + .UAV_ADDRESS_W (19), + .UAV_BURSTCOUNT_W (3), + .AV_READLATENCY (1), + .USE_READDATAVALID (0), + .USE_WAITREQUEST (0), + .USE_UAV_CLKEN (0), + .USE_READRESPONSE (0), + .USE_WRITERESPONSE (0), + .AV_SYMBOLS_PER_WORD (4), + .AV_ADDRESS_SYMBOLS (0), + .AV_BURSTCOUNT_SYMBOLS (0), + .AV_CONSTANT_BURST_BEHAVIOR (0), + .UAV_CONSTANT_BURST_BEHAVIOR (0), + .AV_REQUIRE_UNALIGNED_ADDRESSES (0), + .CHIPSELECT_THROUGH_READLATENCY (0), + .AV_READ_WAIT_CYCLES (0), + .AV_WRITE_WAIT_CYCLES (0), + .AV_SETUP_WAIT_CYCLES (0), + .AV_DATA_HOLD_CYCLES (0) + ) onchip_memory_s1_translator ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // reset.reset + .uav_address (onchip_memory_s1_translator_avalon_universal_slave_0_agent_m0_address), // avalon_universal_slave_0.address + .uav_burstcount (onchip_memory_s1_translator_avalon_universal_slave_0_agent_m0_burstcount), // .burstcount + .uav_read (onchip_memory_s1_translator_avalon_universal_slave_0_agent_m0_read), // .read + .uav_write (onchip_memory_s1_translator_avalon_universal_slave_0_agent_m0_write), // .write + .uav_waitrequest (onchip_memory_s1_translator_avalon_universal_slave_0_agent_m0_waitrequest), // .waitrequest + .uav_readdatavalid (onchip_memory_s1_translator_avalon_universal_slave_0_agent_m0_readdatavalid), // .readdatavalid + .uav_byteenable (onchip_memory_s1_translator_avalon_universal_slave_0_agent_m0_byteenable), // .byteenable + .uav_readdata (onchip_memory_s1_translator_avalon_universal_slave_0_agent_m0_readdata), // .readdata + .uav_writedata (onchip_memory_s1_translator_avalon_universal_slave_0_agent_m0_writedata), // .writedata + .uav_lock (onchip_memory_s1_translator_avalon_universal_slave_0_agent_m0_lock), // .lock + .uav_debugaccess (onchip_memory_s1_translator_avalon_universal_slave_0_agent_m0_debugaccess), // .debugaccess + .av_address (onchip_memory_s1_translator_avalon_anti_slave_0_address), // avalon_anti_slave_0.address + .av_write (onchip_memory_s1_translator_avalon_anti_slave_0_write), // .write + .av_readdata (onchip_memory_s1_translator_avalon_anti_slave_0_readdata), // .readdata + .av_writedata (onchip_memory_s1_translator_avalon_anti_slave_0_writedata), // .writedata + .av_byteenable (onchip_memory_s1_translator_avalon_anti_slave_0_byteenable), // .byteenable + .av_chipselect (onchip_memory_s1_translator_avalon_anti_slave_0_chipselect), // .chipselect + .av_clken (onchip_memory_s1_translator_avalon_anti_slave_0_clken), // .clken + .av_read (), // (terminated) + .av_begintransfer (), // (terminated) + .av_beginbursttransfer (), // (terminated) + .av_burstcount (), // (terminated) + .av_readdatavalid (1'b0), // (terminated) + .av_waitrequest (1'b0), // (terminated) + .av_writebyteenable (), // (terminated) + .av_lock (), // (terminated) + .uav_clken (1'b0), // (terminated) + .av_debugaccess (), // (terminated) + .av_outputenable (), // (terminated) + .uav_response (), // (terminated) + .av_response (2'b00), // (terminated) + .uav_writeresponserequest (1'b0), // (terminated) + .uav_writeresponsevalid (), // (terminated) + .av_writeresponserequest (), // (terminated) + .av_writeresponsevalid (1'b0) // (terminated) + ); + + altera_merlin_slave_translator #( + .AV_ADDRESS_W (2), + .AV_DATA_W (32), + .UAV_DATA_W (32), + .AV_BURSTCOUNT_W (1), + .AV_BYTEENABLE_W (1), + .UAV_BYTEENABLE_W (4), + .UAV_ADDRESS_W (19), + .UAV_BURSTCOUNT_W (3), + .AV_READLATENCY (0), + .USE_READDATAVALID (0), + .USE_WAITREQUEST (0), + .USE_UAV_CLKEN (0), + .USE_READRESPONSE (0), + .USE_WRITERESPONSE (0), + .AV_SYMBOLS_PER_WORD (4), + .AV_ADDRESS_SYMBOLS (0), + .AV_BURSTCOUNT_SYMBOLS (0), + .AV_CONSTANT_BURST_BEHAVIOR (0), + .UAV_CONSTANT_BURST_BEHAVIOR (0), + .AV_REQUIRE_UNALIGNED_ADDRESSES (0), + .CHIPSELECT_THROUGH_READLATENCY (0), + .AV_READ_WAIT_CYCLES (1), + .AV_WRITE_WAIT_CYCLES (0), + .AV_SETUP_WAIT_CYCLES (0), + .AV_DATA_HOLD_CYCLES (0) + ) leds_s1_translator ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // reset.reset + .uav_address (leds_s1_translator_avalon_universal_slave_0_agent_m0_address), // avalon_universal_slave_0.address + .uav_burstcount (leds_s1_translator_avalon_universal_slave_0_agent_m0_burstcount), // .burstcount + .uav_read (leds_s1_translator_avalon_universal_slave_0_agent_m0_read), // .read + .uav_write (leds_s1_translator_avalon_universal_slave_0_agent_m0_write), // .write + .uav_waitrequest (leds_s1_translator_avalon_universal_slave_0_agent_m0_waitrequest), // .waitrequest + .uav_readdatavalid (leds_s1_translator_avalon_universal_slave_0_agent_m0_readdatavalid), // .readdatavalid + .uav_byteenable (leds_s1_translator_avalon_universal_slave_0_agent_m0_byteenable), // .byteenable + .uav_readdata (leds_s1_translator_avalon_universal_slave_0_agent_m0_readdata), // .readdata + .uav_writedata (leds_s1_translator_avalon_universal_slave_0_agent_m0_writedata), // .writedata + .uav_lock (leds_s1_translator_avalon_universal_slave_0_agent_m0_lock), // .lock + .uav_debugaccess (leds_s1_translator_avalon_universal_slave_0_agent_m0_debugaccess), // .debugaccess + .av_address (leds_s1_translator_avalon_anti_slave_0_address), // avalon_anti_slave_0.address + .av_write (leds_s1_translator_avalon_anti_slave_0_write), // .write + .av_readdata (leds_s1_translator_avalon_anti_slave_0_readdata), // .readdata + .av_writedata (leds_s1_translator_avalon_anti_slave_0_writedata), // .writedata + .av_chipselect (leds_s1_translator_avalon_anti_slave_0_chipselect), // .chipselect + .av_read (), // (terminated) + .av_begintransfer (), // (terminated) + .av_beginbursttransfer (), // (terminated) + .av_burstcount (), // (terminated) + .av_byteenable (), // (terminated) + .av_readdatavalid (1'b0), // (terminated) + .av_waitrequest (1'b0), // (terminated) + .av_writebyteenable (), // (terminated) + .av_lock (), // (terminated) + .av_clken (), // (terminated) + .uav_clken (1'b0), // (terminated) + .av_debugaccess (), // (terminated) + .av_outputenable (), // (terminated) + .uav_response (), // (terminated) + .av_response (2'b00), // (terminated) + .uav_writeresponserequest (1'b0), // (terminated) + .uav_writeresponsevalid (), // (terminated) + .av_writeresponserequest (), // (terminated) + .av_writeresponsevalid (1'b0) // (terminated) + ); + + altera_merlin_slave_translator #( + .AV_ADDRESS_W (1), + .AV_DATA_W (32), + .UAV_DATA_W (32), + .AV_BURSTCOUNT_W (1), + .AV_BYTEENABLE_W (1), + .UAV_BYTEENABLE_W (4), + .UAV_ADDRESS_W (19), + .UAV_BURSTCOUNT_W (3), + .AV_READLATENCY (0), + .USE_READDATAVALID (0), + .USE_WAITREQUEST (1), + .USE_UAV_CLKEN (0), + .USE_READRESPONSE (0), + .USE_WRITERESPONSE (0), + .AV_SYMBOLS_PER_WORD (4), + .AV_ADDRESS_SYMBOLS (0), + .AV_BURSTCOUNT_SYMBOLS (0), + .AV_CONSTANT_BURST_BEHAVIOR (0), + .UAV_CONSTANT_BURST_BEHAVIOR (0), + .AV_REQUIRE_UNALIGNED_ADDRESSES (0), + .CHIPSELECT_THROUGH_READLATENCY (0), + .AV_READ_WAIT_CYCLES (1), + .AV_WRITE_WAIT_CYCLES (0), + .AV_SETUP_WAIT_CYCLES (0), + .AV_DATA_HOLD_CYCLES (0) + ) jtag_uart_avalon_jtag_slave_translator ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // reset.reset + .uav_address (jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_m0_address), // avalon_universal_slave_0.address + .uav_burstcount (jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_m0_burstcount), // .burstcount + .uav_read (jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_m0_read), // .read + .uav_write (jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_m0_write), // .write + .uav_waitrequest (jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_m0_waitrequest), // .waitrequest + .uav_readdatavalid (jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_m0_readdatavalid), // .readdatavalid + .uav_byteenable (jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_m0_byteenable), // .byteenable + .uav_readdata (jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_m0_readdata), // .readdata + .uav_writedata (jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_m0_writedata), // .writedata + .uav_lock (jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_m0_lock), // .lock + .uav_debugaccess (jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_m0_debugaccess), // .debugaccess + .av_address (jtag_uart_avalon_jtag_slave_translator_avalon_anti_slave_0_address), // avalon_anti_slave_0.address + .av_write (jtag_uart_avalon_jtag_slave_translator_avalon_anti_slave_0_write), // .write + .av_read (jtag_uart_avalon_jtag_slave_translator_avalon_anti_slave_0_read), // .read + .av_readdata (jtag_uart_avalon_jtag_slave_translator_avalon_anti_slave_0_readdata), // .readdata + .av_writedata (jtag_uart_avalon_jtag_slave_translator_avalon_anti_slave_0_writedata), // .writedata + .av_waitrequest (jtag_uart_avalon_jtag_slave_translator_avalon_anti_slave_0_waitrequest), // .waitrequest + .av_chipselect (jtag_uart_avalon_jtag_slave_translator_avalon_anti_slave_0_chipselect), // .chipselect + .av_begintransfer (), // (terminated) + .av_beginbursttransfer (), // (terminated) + .av_burstcount (), // (terminated) + .av_byteenable (), // (terminated) + .av_readdatavalid (1'b0), // (terminated) + .av_writebyteenable (), // (terminated) + .av_lock (), // (terminated) + .av_clken (), // (terminated) + .uav_clken (1'b0), // (terminated) + .av_debugaccess (), // (terminated) + .av_outputenable (), // (terminated) + .uav_response (), // (terminated) + .av_response (2'b00), // (terminated) + .uav_writeresponserequest (1'b0), // (terminated) + .uav_writeresponsevalid (), // (terminated) + .av_writeresponserequest (), // (terminated) + .av_writeresponsevalid (1'b0) // (terminated) + ); + + altera_merlin_slave_translator #( + .AV_ADDRESS_W (2), + .AV_DATA_W (32), + .UAV_DATA_W (32), + .AV_BURSTCOUNT_W (1), + .AV_BYTEENABLE_W (1), + .UAV_BYTEENABLE_W (4), + .UAV_ADDRESS_W (19), + .UAV_BURSTCOUNT_W (3), + .AV_READLATENCY (0), + .USE_READDATAVALID (0), + .USE_WAITREQUEST (0), + .USE_UAV_CLKEN (0), + .USE_READRESPONSE (0), + .USE_WRITERESPONSE (0), + .AV_SYMBOLS_PER_WORD (4), + .AV_ADDRESS_SYMBOLS (0), + .AV_BURSTCOUNT_SYMBOLS (0), + .AV_CONSTANT_BURST_BEHAVIOR (0), + .UAV_CONSTANT_BURST_BEHAVIOR (0), + .AV_REQUIRE_UNALIGNED_ADDRESSES (0), + .CHIPSELECT_THROUGH_READLATENCY (0), + .AV_READ_WAIT_CYCLES (1), + .AV_WRITE_WAIT_CYCLES (0), + .AV_SETUP_WAIT_CYCLES (0), + .AV_DATA_HOLD_CYCLES (0) + ) ledrs_s1_translator ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // reset.reset + .uav_address (ledrs_s1_translator_avalon_universal_slave_0_agent_m0_address), // avalon_universal_slave_0.address + .uav_burstcount (ledrs_s1_translator_avalon_universal_slave_0_agent_m0_burstcount), // .burstcount + .uav_read (ledrs_s1_translator_avalon_universal_slave_0_agent_m0_read), // .read + .uav_write (ledrs_s1_translator_avalon_universal_slave_0_agent_m0_write), // .write + .uav_waitrequest (ledrs_s1_translator_avalon_universal_slave_0_agent_m0_waitrequest), // .waitrequest + .uav_readdatavalid (ledrs_s1_translator_avalon_universal_slave_0_agent_m0_readdatavalid), // .readdatavalid + .uav_byteenable (ledrs_s1_translator_avalon_universal_slave_0_agent_m0_byteenable), // .byteenable + .uav_readdata (ledrs_s1_translator_avalon_universal_slave_0_agent_m0_readdata), // .readdata + .uav_writedata (ledrs_s1_translator_avalon_universal_slave_0_agent_m0_writedata), // .writedata + .uav_lock (ledrs_s1_translator_avalon_universal_slave_0_agent_m0_lock), // .lock + .uav_debugaccess (ledrs_s1_translator_avalon_universal_slave_0_agent_m0_debugaccess), // .debugaccess + .av_address (ledrs_s1_translator_avalon_anti_slave_0_address), // avalon_anti_slave_0.address + .av_write (ledrs_s1_translator_avalon_anti_slave_0_write), // .write + .av_readdata (ledrs_s1_translator_avalon_anti_slave_0_readdata), // .readdata + .av_writedata (ledrs_s1_translator_avalon_anti_slave_0_writedata), // .writedata + .av_chipselect (ledrs_s1_translator_avalon_anti_slave_0_chipselect), // .chipselect + .av_read (), // (terminated) + .av_begintransfer (), // (terminated) + .av_beginbursttransfer (), // (terminated) + .av_burstcount (), // (terminated) + .av_byteenable (), // (terminated) + .av_readdatavalid (1'b0), // (terminated) + .av_waitrequest (1'b0), // (terminated) + .av_writebyteenable (), // (terminated) + .av_lock (), // (terminated) + .av_clken (), // (terminated) + .uav_clken (1'b0), // (terminated) + .av_debugaccess (), // (terminated) + .av_outputenable (), // (terminated) + .uav_response (), // (terminated) + .av_response (2'b00), // (terminated) + .uav_writeresponserequest (1'b0), // (terminated) + .uav_writeresponsevalid (), // (terminated) + .av_writeresponserequest (), // (terminated) + .av_writeresponsevalid (1'b0) // (terminated) + ); + + altera_merlin_slave_translator #( + .AV_ADDRESS_W (2), + .AV_DATA_W (32), + .UAV_DATA_W (32), + .AV_BURSTCOUNT_W (1), + .AV_BYTEENABLE_W (1), + .UAV_BYTEENABLE_W (4), + .UAV_ADDRESS_W (19), + .UAV_BURSTCOUNT_W (3), + .AV_READLATENCY (0), + .USE_READDATAVALID (0), + .USE_WAITREQUEST (0), + .USE_UAV_CLKEN (0), + .USE_READRESPONSE (0), + .USE_WRITERESPONSE (0), + .AV_SYMBOLS_PER_WORD (4), + .AV_ADDRESS_SYMBOLS (0), + .AV_BURSTCOUNT_SYMBOLS (0), + .AV_CONSTANT_BURST_BEHAVIOR (0), + .UAV_CONSTANT_BURST_BEHAVIOR (0), + .AV_REQUIRE_UNALIGNED_ADDRESSES (0), + .CHIPSELECT_THROUGH_READLATENCY (0), + .AV_READ_WAIT_CYCLES (1), + .AV_WRITE_WAIT_CYCLES (0), + .AV_SETUP_WAIT_CYCLES (0), + .AV_DATA_HOLD_CYCLES (0) + ) switches_s1_translator ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // reset.reset + .uav_address (switches_s1_translator_avalon_universal_slave_0_agent_m0_address), // avalon_universal_slave_0.address + .uav_burstcount (switches_s1_translator_avalon_universal_slave_0_agent_m0_burstcount), // .burstcount + .uav_read (switches_s1_translator_avalon_universal_slave_0_agent_m0_read), // .read + .uav_write (switches_s1_translator_avalon_universal_slave_0_agent_m0_write), // .write + .uav_waitrequest (switches_s1_translator_avalon_universal_slave_0_agent_m0_waitrequest), // .waitrequest + .uav_readdatavalid (switches_s1_translator_avalon_universal_slave_0_agent_m0_readdatavalid), // .readdatavalid + .uav_byteenable (switches_s1_translator_avalon_universal_slave_0_agent_m0_byteenable), // .byteenable + .uav_readdata (switches_s1_translator_avalon_universal_slave_0_agent_m0_readdata), // .readdata + .uav_writedata (switches_s1_translator_avalon_universal_slave_0_agent_m0_writedata), // .writedata + .uav_lock (switches_s1_translator_avalon_universal_slave_0_agent_m0_lock), // .lock + .uav_debugaccess (switches_s1_translator_avalon_universal_slave_0_agent_m0_debugaccess), // .debugaccess + .av_address (switches_s1_translator_avalon_anti_slave_0_address), // avalon_anti_slave_0.address + .av_readdata (switches_s1_translator_avalon_anti_slave_0_readdata), // .readdata + .av_write (), // (terminated) + .av_read (), // (terminated) + .av_writedata (), // (terminated) + .av_begintransfer (), // (terminated) + .av_beginbursttransfer (), // (terminated) + .av_burstcount (), // (terminated) + .av_byteenable (), // (terminated) + .av_readdatavalid (1'b0), // (terminated) + .av_waitrequest (1'b0), // (terminated) + .av_writebyteenable (), // (terminated) + .av_lock (), // (terminated) + .av_chipselect (), // (terminated) + .av_clken (), // (terminated) + .uav_clken (1'b0), // (terminated) + .av_debugaccess (), // (terminated) + .av_outputenable (), // (terminated) + .uav_response (), // (terminated) + .av_response (2'b00), // (terminated) + .uav_writeresponserequest (1'b0), // (terminated) + .uav_writeresponsevalid (), // (terminated) + .av_writeresponserequest (), // (terminated) + .av_writeresponsevalid (1'b0) // (terminated) + ); + + altera_merlin_slave_translator #( + .AV_ADDRESS_W (2), + .AV_DATA_W (32), + .UAV_DATA_W (32), + .AV_BURSTCOUNT_W (1), + .AV_BYTEENABLE_W (1), + .UAV_BYTEENABLE_W (4), + .UAV_ADDRESS_W (19), + .UAV_BURSTCOUNT_W (3), + .AV_READLATENCY (0), + .USE_READDATAVALID (0), + .USE_WAITREQUEST (0), + .USE_UAV_CLKEN (0), + .USE_READRESPONSE (0), + .USE_WRITERESPONSE (0), + .AV_SYMBOLS_PER_WORD (4), + .AV_ADDRESS_SYMBOLS (0), + .AV_BURSTCOUNT_SYMBOLS (0), + .AV_CONSTANT_BURST_BEHAVIOR (0), + .UAV_CONSTANT_BURST_BEHAVIOR (0), + .AV_REQUIRE_UNALIGNED_ADDRESSES (0), + .CHIPSELECT_THROUGH_READLATENCY (0), + .AV_READ_WAIT_CYCLES (1), + .AV_WRITE_WAIT_CYCLES (0), + .AV_SETUP_WAIT_CYCLES (0), + .AV_DATA_HOLD_CYCLES (0) + ) push_switches_s1_translator ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // reset.reset + .uav_address (push_switches_s1_translator_avalon_universal_slave_0_agent_m0_address), // avalon_universal_slave_0.address + .uav_burstcount (push_switches_s1_translator_avalon_universal_slave_0_agent_m0_burstcount), // .burstcount + .uav_read (push_switches_s1_translator_avalon_universal_slave_0_agent_m0_read), // .read + .uav_write (push_switches_s1_translator_avalon_universal_slave_0_agent_m0_write), // .write + .uav_waitrequest (push_switches_s1_translator_avalon_universal_slave_0_agent_m0_waitrequest), // .waitrequest + .uav_readdatavalid (push_switches_s1_translator_avalon_universal_slave_0_agent_m0_readdatavalid), // .readdatavalid + .uav_byteenable (push_switches_s1_translator_avalon_universal_slave_0_agent_m0_byteenable), // .byteenable + .uav_readdata (push_switches_s1_translator_avalon_universal_slave_0_agent_m0_readdata), // .readdata + .uav_writedata (push_switches_s1_translator_avalon_universal_slave_0_agent_m0_writedata), // .writedata + .uav_lock (push_switches_s1_translator_avalon_universal_slave_0_agent_m0_lock), // .lock + .uav_debugaccess (push_switches_s1_translator_avalon_universal_slave_0_agent_m0_debugaccess), // .debugaccess + .av_address (push_switches_s1_translator_avalon_anti_slave_0_address), // avalon_anti_slave_0.address + .av_readdata (push_switches_s1_translator_avalon_anti_slave_0_readdata), // .readdata + .av_write (), // (terminated) + .av_read (), // (terminated) + .av_writedata (), // (terminated) + .av_begintransfer (), // (terminated) + .av_beginbursttransfer (), // (terminated) + .av_burstcount (), // (terminated) + .av_byteenable (), // (terminated) + .av_readdatavalid (1'b0), // (terminated) + .av_waitrequest (1'b0), // (terminated) + .av_writebyteenable (), // (terminated) + .av_lock (), // (terminated) + .av_chipselect (), // (terminated) + .av_clken (), // (terminated) + .uav_clken (1'b0), // (terminated) + .av_debugaccess (), // (terminated) + .av_outputenable (), // (terminated) + .uav_response (), // (terminated) + .av_response (2'b00), // (terminated) + .uav_writeresponserequest (1'b0), // (terminated) + .uav_writeresponsevalid (), // (terminated) + .av_writeresponserequest (), // (terminated) + .av_writeresponsevalid (1'b0) // (terminated) + ); + + altera_merlin_slave_translator #( + .AV_ADDRESS_W (2), + .AV_DATA_W (32), + .UAV_DATA_W (32), + .AV_BURSTCOUNT_W (1), + .AV_BYTEENABLE_W (1), + .UAV_BYTEENABLE_W (4), + .UAV_ADDRESS_W (19), + .UAV_BURSTCOUNT_W (3), + .AV_READLATENCY (0), + .USE_READDATAVALID (0), + .USE_WAITREQUEST (0), + .USE_UAV_CLKEN (0), + .USE_READRESPONSE (0), + .USE_WRITERESPONSE (0), + .AV_SYMBOLS_PER_WORD (4), + .AV_ADDRESS_SYMBOLS (0), + .AV_BURSTCOUNT_SYMBOLS (0), + .AV_CONSTANT_BURST_BEHAVIOR (0), + .UAV_CONSTANT_BURST_BEHAVIOR (0), + .AV_REQUIRE_UNALIGNED_ADDRESSES (0), + .CHIPSELECT_THROUGH_READLATENCY (0), + .AV_READ_WAIT_CYCLES (1), + .AV_WRITE_WAIT_CYCLES (0), + .AV_SETUP_WAIT_CYCLES (0), + .AV_DATA_HOLD_CYCLES (0) + ) hex0_s1_translator ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // reset.reset + .uav_address (hex0_s1_translator_avalon_universal_slave_0_agent_m0_address), // avalon_universal_slave_0.address + .uav_burstcount (hex0_s1_translator_avalon_universal_slave_0_agent_m0_burstcount), // .burstcount + .uav_read (hex0_s1_translator_avalon_universal_slave_0_agent_m0_read), // .read + .uav_write (hex0_s1_translator_avalon_universal_slave_0_agent_m0_write), // .write + .uav_waitrequest (hex0_s1_translator_avalon_universal_slave_0_agent_m0_waitrequest), // .waitrequest + .uav_readdatavalid (hex0_s1_translator_avalon_universal_slave_0_agent_m0_readdatavalid), // .readdatavalid + .uav_byteenable (hex0_s1_translator_avalon_universal_slave_0_agent_m0_byteenable), // .byteenable + .uav_readdata (hex0_s1_translator_avalon_universal_slave_0_agent_m0_readdata), // .readdata + .uav_writedata (hex0_s1_translator_avalon_universal_slave_0_agent_m0_writedata), // .writedata + .uav_lock (hex0_s1_translator_avalon_universal_slave_0_agent_m0_lock), // .lock + .uav_debugaccess (hex0_s1_translator_avalon_universal_slave_0_agent_m0_debugaccess), // .debugaccess + .av_address (hex0_s1_translator_avalon_anti_slave_0_address), // avalon_anti_slave_0.address + .av_write (hex0_s1_translator_avalon_anti_slave_0_write), // .write + .av_readdata (hex0_s1_translator_avalon_anti_slave_0_readdata), // .readdata + .av_writedata (hex0_s1_translator_avalon_anti_slave_0_writedata), // .writedata + .av_chipselect (hex0_s1_translator_avalon_anti_slave_0_chipselect), // .chipselect + .av_read (), // (terminated) + .av_begintransfer (), // (terminated) + .av_beginbursttransfer (), // (terminated) + .av_burstcount (), // (terminated) + .av_byteenable (), // (terminated) + .av_readdatavalid (1'b0), // (terminated) + .av_waitrequest (1'b0), // (terminated) + .av_writebyteenable (), // (terminated) + .av_lock (), // (terminated) + .av_clken (), // (terminated) + .uav_clken (1'b0), // (terminated) + .av_debugaccess (), // (terminated) + .av_outputenable (), // (terminated) + .uav_response (), // (terminated) + .av_response (2'b00), // (terminated) + .uav_writeresponserequest (1'b0), // (terminated) + .uav_writeresponsevalid (), // (terminated) + .av_writeresponserequest (), // (terminated) + .av_writeresponsevalid (1'b0) // (terminated) + ); + + altera_merlin_slave_translator #( + .AV_ADDRESS_W (2), + .AV_DATA_W (32), + .UAV_DATA_W (32), + .AV_BURSTCOUNT_W (1), + .AV_BYTEENABLE_W (1), + .UAV_BYTEENABLE_W (4), + .UAV_ADDRESS_W (19), + .UAV_BURSTCOUNT_W (3), + .AV_READLATENCY (0), + .USE_READDATAVALID (0), + .USE_WAITREQUEST (0), + .USE_UAV_CLKEN (0), + .USE_READRESPONSE (0), + .USE_WRITERESPONSE (0), + .AV_SYMBOLS_PER_WORD (4), + .AV_ADDRESS_SYMBOLS (0), + .AV_BURSTCOUNT_SYMBOLS (0), + .AV_CONSTANT_BURST_BEHAVIOR (0), + .UAV_CONSTANT_BURST_BEHAVIOR (0), + .AV_REQUIRE_UNALIGNED_ADDRESSES (0), + .CHIPSELECT_THROUGH_READLATENCY (0), + .AV_READ_WAIT_CYCLES (1), + .AV_WRITE_WAIT_CYCLES (0), + .AV_SETUP_WAIT_CYCLES (0), + .AV_DATA_HOLD_CYCLES (0) + ) hex1_s1_translator ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // reset.reset + .uav_address (hex1_s1_translator_avalon_universal_slave_0_agent_m0_address), // avalon_universal_slave_0.address + .uav_burstcount (hex1_s1_translator_avalon_universal_slave_0_agent_m0_burstcount), // .burstcount + .uav_read (hex1_s1_translator_avalon_universal_slave_0_agent_m0_read), // .read + .uav_write (hex1_s1_translator_avalon_universal_slave_0_agent_m0_write), // .write + .uav_waitrequest (hex1_s1_translator_avalon_universal_slave_0_agent_m0_waitrequest), // .waitrequest + .uav_readdatavalid (hex1_s1_translator_avalon_universal_slave_0_agent_m0_readdatavalid), // .readdatavalid + .uav_byteenable (hex1_s1_translator_avalon_universal_slave_0_agent_m0_byteenable), // .byteenable + .uav_readdata (hex1_s1_translator_avalon_universal_slave_0_agent_m0_readdata), // .readdata + .uav_writedata (hex1_s1_translator_avalon_universal_slave_0_agent_m0_writedata), // .writedata + .uav_lock (hex1_s1_translator_avalon_universal_slave_0_agent_m0_lock), // .lock + .uav_debugaccess (hex1_s1_translator_avalon_universal_slave_0_agent_m0_debugaccess), // .debugaccess + .av_address (hex1_s1_translator_avalon_anti_slave_0_address), // avalon_anti_slave_0.address + .av_write (hex1_s1_translator_avalon_anti_slave_0_write), // .write + .av_readdata (hex1_s1_translator_avalon_anti_slave_0_readdata), // .readdata + .av_writedata (hex1_s1_translator_avalon_anti_slave_0_writedata), // .writedata + .av_chipselect (hex1_s1_translator_avalon_anti_slave_0_chipselect), // .chipselect + .av_read (), // (terminated) + .av_begintransfer (), // (terminated) + .av_beginbursttransfer (), // (terminated) + .av_burstcount (), // (terminated) + .av_byteenable (), // (terminated) + .av_readdatavalid (1'b0), // (terminated) + .av_waitrequest (1'b0), // (terminated) + .av_writebyteenable (), // (terminated) + .av_lock (), // (terminated) + .av_clken (), // (terminated) + .uav_clken (1'b0), // (terminated) + .av_debugaccess (), // (terminated) + .av_outputenable (), // (terminated) + .uav_response (), // (terminated) + .av_response (2'b00), // (terminated) + .uav_writeresponserequest (1'b0), // (terminated) + .uav_writeresponsevalid (), // (terminated) + .av_writeresponserequest (), // (terminated) + .av_writeresponsevalid (1'b0) // (terminated) + ); + + altera_merlin_slave_translator #( + .AV_ADDRESS_W (2), + .AV_DATA_W (32), + .UAV_DATA_W (32), + .AV_BURSTCOUNT_W (1), + .AV_BYTEENABLE_W (1), + .UAV_BYTEENABLE_W (4), + .UAV_ADDRESS_W (19), + .UAV_BURSTCOUNT_W (3), + .AV_READLATENCY (0), + .USE_READDATAVALID (0), + .USE_WAITREQUEST (0), + .USE_UAV_CLKEN (0), + .USE_READRESPONSE (0), + .USE_WRITERESPONSE (0), + .AV_SYMBOLS_PER_WORD (4), + .AV_ADDRESS_SYMBOLS (0), + .AV_BURSTCOUNT_SYMBOLS (0), + .AV_CONSTANT_BURST_BEHAVIOR (0), + .UAV_CONSTANT_BURST_BEHAVIOR (0), + .AV_REQUIRE_UNALIGNED_ADDRESSES (0), + .CHIPSELECT_THROUGH_READLATENCY (0), + .AV_READ_WAIT_CYCLES (1), + .AV_WRITE_WAIT_CYCLES (0), + .AV_SETUP_WAIT_CYCLES (0), + .AV_DATA_HOLD_CYCLES (0) + ) hex2_s1_translator ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // reset.reset + .uav_address (hex2_s1_translator_avalon_universal_slave_0_agent_m0_address), // avalon_universal_slave_0.address + .uav_burstcount (hex2_s1_translator_avalon_universal_slave_0_agent_m0_burstcount), // .burstcount + .uav_read (hex2_s1_translator_avalon_universal_slave_0_agent_m0_read), // .read + .uav_write (hex2_s1_translator_avalon_universal_slave_0_agent_m0_write), // .write + .uav_waitrequest (hex2_s1_translator_avalon_universal_slave_0_agent_m0_waitrequest), // .waitrequest + .uav_readdatavalid (hex2_s1_translator_avalon_universal_slave_0_agent_m0_readdatavalid), // .readdatavalid + .uav_byteenable (hex2_s1_translator_avalon_universal_slave_0_agent_m0_byteenable), // .byteenable + .uav_readdata (hex2_s1_translator_avalon_universal_slave_0_agent_m0_readdata), // .readdata + .uav_writedata (hex2_s1_translator_avalon_universal_slave_0_agent_m0_writedata), // .writedata + .uav_lock (hex2_s1_translator_avalon_universal_slave_0_agent_m0_lock), // .lock + .uav_debugaccess (hex2_s1_translator_avalon_universal_slave_0_agent_m0_debugaccess), // .debugaccess + .av_address (hex2_s1_translator_avalon_anti_slave_0_address), // avalon_anti_slave_0.address + .av_write (hex2_s1_translator_avalon_anti_slave_0_write), // .write + .av_readdata (hex2_s1_translator_avalon_anti_slave_0_readdata), // .readdata + .av_writedata (hex2_s1_translator_avalon_anti_slave_0_writedata), // .writedata + .av_chipselect (hex2_s1_translator_avalon_anti_slave_0_chipselect), // .chipselect + .av_read (), // (terminated) + .av_begintransfer (), // (terminated) + .av_beginbursttransfer (), // (terminated) + .av_burstcount (), // (terminated) + .av_byteenable (), // (terminated) + .av_readdatavalid (1'b0), // (terminated) + .av_waitrequest (1'b0), // (terminated) + .av_writebyteenable (), // (terminated) + .av_lock (), // (terminated) + .av_clken (), // (terminated) + .uav_clken (1'b0), // (terminated) + .av_debugaccess (), // (terminated) + .av_outputenable (), // (terminated) + .uav_response (), // (terminated) + .av_response (2'b00), // (terminated) + .uav_writeresponserequest (1'b0), // (terminated) + .uav_writeresponsevalid (), // (terminated) + .av_writeresponserequest (), // (terminated) + .av_writeresponsevalid (1'b0) // (terminated) + ); + + altera_merlin_slave_translator #( + .AV_ADDRESS_W (2), + .AV_DATA_W (32), + .UAV_DATA_W (32), + .AV_BURSTCOUNT_W (1), + .AV_BYTEENABLE_W (1), + .UAV_BYTEENABLE_W (4), + .UAV_ADDRESS_W (19), + .UAV_BURSTCOUNT_W (3), + .AV_READLATENCY (0), + .USE_READDATAVALID (0), + .USE_WAITREQUEST (0), + .USE_UAV_CLKEN (0), + .USE_READRESPONSE (0), + .USE_WRITERESPONSE (0), + .AV_SYMBOLS_PER_WORD (4), + .AV_ADDRESS_SYMBOLS (0), + .AV_BURSTCOUNT_SYMBOLS (0), + .AV_CONSTANT_BURST_BEHAVIOR (0), + .UAV_CONSTANT_BURST_BEHAVIOR (0), + .AV_REQUIRE_UNALIGNED_ADDRESSES (0), + .CHIPSELECT_THROUGH_READLATENCY (0), + .AV_READ_WAIT_CYCLES (1), + .AV_WRITE_WAIT_CYCLES (0), + .AV_SETUP_WAIT_CYCLES (0), + .AV_DATA_HOLD_CYCLES (0) + ) hex3_s1_translator ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // reset.reset + .uav_address (hex3_s1_translator_avalon_universal_slave_0_agent_m0_address), // avalon_universal_slave_0.address + .uav_burstcount (hex3_s1_translator_avalon_universal_slave_0_agent_m0_burstcount), // .burstcount + .uav_read (hex3_s1_translator_avalon_universal_slave_0_agent_m0_read), // .read + .uav_write (hex3_s1_translator_avalon_universal_slave_0_agent_m0_write), // .write + .uav_waitrequest (hex3_s1_translator_avalon_universal_slave_0_agent_m0_waitrequest), // .waitrequest + .uav_readdatavalid (hex3_s1_translator_avalon_universal_slave_0_agent_m0_readdatavalid), // .readdatavalid + .uav_byteenable (hex3_s1_translator_avalon_universal_slave_0_agent_m0_byteenable), // .byteenable + .uav_readdata (hex3_s1_translator_avalon_universal_slave_0_agent_m0_readdata), // .readdata + .uav_writedata (hex3_s1_translator_avalon_universal_slave_0_agent_m0_writedata), // .writedata + .uav_lock (hex3_s1_translator_avalon_universal_slave_0_agent_m0_lock), // .lock + .uav_debugaccess (hex3_s1_translator_avalon_universal_slave_0_agent_m0_debugaccess), // .debugaccess + .av_address (hex3_s1_translator_avalon_anti_slave_0_address), // avalon_anti_slave_0.address + .av_write (hex3_s1_translator_avalon_anti_slave_0_write), // .write + .av_readdata (hex3_s1_translator_avalon_anti_slave_0_readdata), // .readdata + .av_writedata (hex3_s1_translator_avalon_anti_slave_0_writedata), // .writedata + .av_chipselect (hex3_s1_translator_avalon_anti_slave_0_chipselect), // .chipselect + .av_read (), // (terminated) + .av_begintransfer (), // (terminated) + .av_beginbursttransfer (), // (terminated) + .av_burstcount (), // (terminated) + .av_byteenable (), // (terminated) + .av_readdatavalid (1'b0), // (terminated) + .av_waitrequest (1'b0), // (terminated) + .av_writebyteenable (), // (terminated) + .av_lock (), // (terminated) + .av_clken (), // (terminated) + .uav_clken (1'b0), // (terminated) + .av_debugaccess (), // (terminated) + .av_outputenable (), // (terminated) + .uav_response (), // (terminated) + .av_response (2'b00), // (terminated) + .uav_writeresponserequest (1'b0), // (terminated) + .uav_writeresponsevalid (), // (terminated) + .av_writeresponserequest (), // (terminated) + .av_writeresponsevalid (1'b0) // (terminated) + ); + + altera_merlin_slave_translator #( + .AV_ADDRESS_W (2), + .AV_DATA_W (32), + .UAV_DATA_W (32), + .AV_BURSTCOUNT_W (1), + .AV_BYTEENABLE_W (1), + .UAV_BYTEENABLE_W (4), + .UAV_ADDRESS_W (19), + .UAV_BURSTCOUNT_W (3), + .AV_READLATENCY (0), + .USE_READDATAVALID (0), + .USE_WAITREQUEST (0), + .USE_UAV_CLKEN (0), + .USE_READRESPONSE (0), + .USE_WRITERESPONSE (0), + .AV_SYMBOLS_PER_WORD (4), + .AV_ADDRESS_SYMBOLS (0), + .AV_BURSTCOUNT_SYMBOLS (0), + .AV_CONSTANT_BURST_BEHAVIOR (0), + .UAV_CONSTANT_BURST_BEHAVIOR (0), + .AV_REQUIRE_UNALIGNED_ADDRESSES (0), + .CHIPSELECT_THROUGH_READLATENCY (0), + .AV_READ_WAIT_CYCLES (1), + .AV_WRITE_WAIT_CYCLES (0), + .AV_SETUP_WAIT_CYCLES (0), + .AV_DATA_HOLD_CYCLES (0) + ) hex4_s1_translator ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // reset.reset + .uav_address (hex4_s1_translator_avalon_universal_slave_0_agent_m0_address), // avalon_universal_slave_0.address + .uav_burstcount (hex4_s1_translator_avalon_universal_slave_0_agent_m0_burstcount), // .burstcount + .uav_read (hex4_s1_translator_avalon_universal_slave_0_agent_m0_read), // .read + .uav_write (hex4_s1_translator_avalon_universal_slave_0_agent_m0_write), // .write + .uav_waitrequest (hex4_s1_translator_avalon_universal_slave_0_agent_m0_waitrequest), // .waitrequest + .uav_readdatavalid (hex4_s1_translator_avalon_universal_slave_0_agent_m0_readdatavalid), // .readdatavalid + .uav_byteenable (hex4_s1_translator_avalon_universal_slave_0_agent_m0_byteenable), // .byteenable + .uav_readdata (hex4_s1_translator_avalon_universal_slave_0_agent_m0_readdata), // .readdata + .uav_writedata (hex4_s1_translator_avalon_universal_slave_0_agent_m0_writedata), // .writedata + .uav_lock (hex4_s1_translator_avalon_universal_slave_0_agent_m0_lock), // .lock + .uav_debugaccess (hex4_s1_translator_avalon_universal_slave_0_agent_m0_debugaccess), // .debugaccess + .av_address (hex4_s1_translator_avalon_anti_slave_0_address), // avalon_anti_slave_0.address + .av_write (hex4_s1_translator_avalon_anti_slave_0_write), // .write + .av_readdata (hex4_s1_translator_avalon_anti_slave_0_readdata), // .readdata + .av_writedata (hex4_s1_translator_avalon_anti_slave_0_writedata), // .writedata + .av_chipselect (hex4_s1_translator_avalon_anti_slave_0_chipselect), // .chipselect + .av_read (), // (terminated) + .av_begintransfer (), // (terminated) + .av_beginbursttransfer (), // (terminated) + .av_burstcount (), // (terminated) + .av_byteenable (), // (terminated) + .av_readdatavalid (1'b0), // (terminated) + .av_waitrequest (1'b0), // (terminated) + .av_writebyteenable (), // (terminated) + .av_lock (), // (terminated) + .av_clken (), // (terminated) + .uav_clken (1'b0), // (terminated) + .av_debugaccess (), // (terminated) + .av_outputenable (), // (terminated) + .uav_response (), // (terminated) + .av_response (2'b00), // (terminated) + .uav_writeresponserequest (1'b0), // (terminated) + .uav_writeresponsevalid (), // (terminated) + .av_writeresponserequest (), // (terminated) + .av_writeresponsevalid (1'b0) // (terminated) + ); + + altera_merlin_slave_translator #( + .AV_ADDRESS_W (2), + .AV_DATA_W (32), + .UAV_DATA_W (32), + .AV_BURSTCOUNT_W (1), + .AV_BYTEENABLE_W (1), + .UAV_BYTEENABLE_W (4), + .UAV_ADDRESS_W (19), + .UAV_BURSTCOUNT_W (3), + .AV_READLATENCY (0), + .USE_READDATAVALID (0), + .USE_WAITREQUEST (0), + .USE_UAV_CLKEN (0), + .USE_READRESPONSE (0), + .USE_WRITERESPONSE (0), + .AV_SYMBOLS_PER_WORD (4), + .AV_ADDRESS_SYMBOLS (0), + .AV_BURSTCOUNT_SYMBOLS (0), + .AV_CONSTANT_BURST_BEHAVIOR (0), + .UAV_CONSTANT_BURST_BEHAVIOR (0), + .AV_REQUIRE_UNALIGNED_ADDRESSES (0), + .CHIPSELECT_THROUGH_READLATENCY (0), + .AV_READ_WAIT_CYCLES (1), + .AV_WRITE_WAIT_CYCLES (0), + .AV_SETUP_WAIT_CYCLES (0), + .AV_DATA_HOLD_CYCLES (0) + ) hex5_s1_translator ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // reset.reset + .uav_address (hex5_s1_translator_avalon_universal_slave_0_agent_m0_address), // avalon_universal_slave_0.address + .uav_burstcount (hex5_s1_translator_avalon_universal_slave_0_agent_m0_burstcount), // .burstcount + .uav_read (hex5_s1_translator_avalon_universal_slave_0_agent_m0_read), // .read + .uav_write (hex5_s1_translator_avalon_universal_slave_0_agent_m0_write), // .write + .uav_waitrequest (hex5_s1_translator_avalon_universal_slave_0_agent_m0_waitrequest), // .waitrequest + .uav_readdatavalid (hex5_s1_translator_avalon_universal_slave_0_agent_m0_readdatavalid), // .readdatavalid + .uav_byteenable (hex5_s1_translator_avalon_universal_slave_0_agent_m0_byteenable), // .byteenable + .uav_readdata (hex5_s1_translator_avalon_universal_slave_0_agent_m0_readdata), // .readdata + .uav_writedata (hex5_s1_translator_avalon_universal_slave_0_agent_m0_writedata), // .writedata + .uav_lock (hex5_s1_translator_avalon_universal_slave_0_agent_m0_lock), // .lock + .uav_debugaccess (hex5_s1_translator_avalon_universal_slave_0_agent_m0_debugaccess), // .debugaccess + .av_address (hex5_s1_translator_avalon_anti_slave_0_address), // avalon_anti_slave_0.address + .av_write (hex5_s1_translator_avalon_anti_slave_0_write), // .write + .av_readdata (hex5_s1_translator_avalon_anti_slave_0_readdata), // .readdata + .av_writedata (hex5_s1_translator_avalon_anti_slave_0_writedata), // .writedata + .av_chipselect (hex5_s1_translator_avalon_anti_slave_0_chipselect), // .chipselect + .av_read (), // (terminated) + .av_begintransfer (), // (terminated) + .av_beginbursttransfer (), // (terminated) + .av_burstcount (), // (terminated) + .av_byteenable (), // (terminated) + .av_readdatavalid (1'b0), // (terminated) + .av_waitrequest (1'b0), // (terminated) + .av_writebyteenable (), // (terminated) + .av_lock (), // (terminated) + .av_clken (), // (terminated) + .uav_clken (1'b0), // (terminated) + .av_debugaccess (), // (terminated) + .av_outputenable (), // (terminated) + .uav_response (), // (terminated) + .av_response (2'b00), // (terminated) + .uav_writeresponserequest (1'b0), // (terminated) + .uav_writeresponsevalid (), // (terminated) + .av_writeresponserequest (), // (terminated) + .av_writeresponsevalid (1'b0) // (terminated) + ); + + altera_merlin_slave_translator #( + .AV_ADDRESS_W (2), + .AV_DATA_W (32), + .UAV_DATA_W (32), + .AV_BURSTCOUNT_W (1), + .AV_BYTEENABLE_W (1), + .UAV_BYTEENABLE_W (4), + .UAV_ADDRESS_W (19), + .UAV_BURSTCOUNT_W (3), + .AV_READLATENCY (0), + .USE_READDATAVALID (0), + .USE_WAITREQUEST (0), + .USE_UAV_CLKEN (0), + .USE_READRESPONSE (0), + .USE_WRITERESPONSE (0), + .AV_SYMBOLS_PER_WORD (4), + .AV_ADDRESS_SYMBOLS (0), + .AV_BURSTCOUNT_SYMBOLS (0), + .AV_CONSTANT_BURST_BEHAVIOR (0), + .UAV_CONSTANT_BURST_BEHAVIOR (0), + .AV_REQUIRE_UNALIGNED_ADDRESSES (0), + .CHIPSELECT_THROUGH_READLATENCY (0), + .AV_READ_WAIT_CYCLES (1), + .AV_WRITE_WAIT_CYCLES (0), + .AV_SETUP_WAIT_CYCLES (0), + .AV_DATA_HOLD_CYCLES (0) + ) hex6_s1_translator ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // reset.reset + .uav_address (hex6_s1_translator_avalon_universal_slave_0_agent_m0_address), // avalon_universal_slave_0.address + .uav_burstcount (hex6_s1_translator_avalon_universal_slave_0_agent_m0_burstcount), // .burstcount + .uav_read (hex6_s1_translator_avalon_universal_slave_0_agent_m0_read), // .read + .uav_write (hex6_s1_translator_avalon_universal_slave_0_agent_m0_write), // .write + .uav_waitrequest (hex6_s1_translator_avalon_universal_slave_0_agent_m0_waitrequest), // .waitrequest + .uav_readdatavalid (hex6_s1_translator_avalon_universal_slave_0_agent_m0_readdatavalid), // .readdatavalid + .uav_byteenable (hex6_s1_translator_avalon_universal_slave_0_agent_m0_byteenable), // .byteenable + .uav_readdata (hex6_s1_translator_avalon_universal_slave_0_agent_m0_readdata), // .readdata + .uav_writedata (hex6_s1_translator_avalon_universal_slave_0_agent_m0_writedata), // .writedata + .uav_lock (hex6_s1_translator_avalon_universal_slave_0_agent_m0_lock), // .lock + .uav_debugaccess (hex6_s1_translator_avalon_universal_slave_0_agent_m0_debugaccess), // .debugaccess + .av_address (hex6_s1_translator_avalon_anti_slave_0_address), // avalon_anti_slave_0.address + .av_write (hex6_s1_translator_avalon_anti_slave_0_write), // .write + .av_readdata (hex6_s1_translator_avalon_anti_slave_0_readdata), // .readdata + .av_writedata (hex6_s1_translator_avalon_anti_slave_0_writedata), // .writedata + .av_chipselect (hex6_s1_translator_avalon_anti_slave_0_chipselect), // .chipselect + .av_read (), // (terminated) + .av_begintransfer (), // (terminated) + .av_beginbursttransfer (), // (terminated) + .av_burstcount (), // (terminated) + .av_byteenable (), // (terminated) + .av_readdatavalid (1'b0), // (terminated) + .av_waitrequest (1'b0), // (terminated) + .av_writebyteenable (), // (terminated) + .av_lock (), // (terminated) + .av_clken (), // (terminated) + .uav_clken (1'b0), // (terminated) + .av_debugaccess (), // (terminated) + .av_outputenable (), // (terminated) + .uav_response (), // (terminated) + .av_response (2'b00), // (terminated) + .uav_writeresponserequest (1'b0), // (terminated) + .uav_writeresponsevalid (), // (terminated) + .av_writeresponserequest (), // (terminated) + .av_writeresponsevalid (1'b0) // (terminated) + ); + + altera_merlin_slave_translator #( + .AV_ADDRESS_W (2), + .AV_DATA_W (32), + .UAV_DATA_W (32), + .AV_BURSTCOUNT_W (1), + .AV_BYTEENABLE_W (1), + .UAV_BYTEENABLE_W (4), + .UAV_ADDRESS_W (19), + .UAV_BURSTCOUNT_W (3), + .AV_READLATENCY (0), + .USE_READDATAVALID (0), + .USE_WAITREQUEST (0), + .USE_UAV_CLKEN (0), + .USE_READRESPONSE (0), + .USE_WRITERESPONSE (0), + .AV_SYMBOLS_PER_WORD (4), + .AV_ADDRESS_SYMBOLS (0), + .AV_BURSTCOUNT_SYMBOLS (0), + .AV_CONSTANT_BURST_BEHAVIOR (0), + .UAV_CONSTANT_BURST_BEHAVIOR (0), + .AV_REQUIRE_UNALIGNED_ADDRESSES (0), + .CHIPSELECT_THROUGH_READLATENCY (0), + .AV_READ_WAIT_CYCLES (1), + .AV_WRITE_WAIT_CYCLES (0), + .AV_SETUP_WAIT_CYCLES (0), + .AV_DATA_HOLD_CYCLES (0) + ) hex7_s1_translator ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // reset.reset + .uav_address (hex7_s1_translator_avalon_universal_slave_0_agent_m0_address), // avalon_universal_slave_0.address + .uav_burstcount (hex7_s1_translator_avalon_universal_slave_0_agent_m0_burstcount), // .burstcount + .uav_read (hex7_s1_translator_avalon_universal_slave_0_agent_m0_read), // .read + .uav_write (hex7_s1_translator_avalon_universal_slave_0_agent_m0_write), // .write + .uav_waitrequest (hex7_s1_translator_avalon_universal_slave_0_agent_m0_waitrequest), // .waitrequest + .uav_readdatavalid (hex7_s1_translator_avalon_universal_slave_0_agent_m0_readdatavalid), // .readdatavalid + .uav_byteenable (hex7_s1_translator_avalon_universal_slave_0_agent_m0_byteenable), // .byteenable + .uav_readdata (hex7_s1_translator_avalon_universal_slave_0_agent_m0_readdata), // .readdata + .uav_writedata (hex7_s1_translator_avalon_universal_slave_0_agent_m0_writedata), // .writedata + .uav_lock (hex7_s1_translator_avalon_universal_slave_0_agent_m0_lock), // .lock + .uav_debugaccess (hex7_s1_translator_avalon_universal_slave_0_agent_m0_debugaccess), // .debugaccess + .av_address (hex7_s1_translator_avalon_anti_slave_0_address), // avalon_anti_slave_0.address + .av_write (hex7_s1_translator_avalon_anti_slave_0_write), // .write + .av_readdata (hex7_s1_translator_avalon_anti_slave_0_readdata), // .readdata + .av_writedata (hex7_s1_translator_avalon_anti_slave_0_writedata), // .writedata + .av_chipselect (hex7_s1_translator_avalon_anti_slave_0_chipselect), // .chipselect + .av_read (), // (terminated) + .av_begintransfer (), // (terminated) + .av_beginbursttransfer (), // (terminated) + .av_burstcount (), // (terminated) + .av_byteenable (), // (terminated) + .av_readdatavalid (1'b0), // (terminated) + .av_waitrequest (1'b0), // (terminated) + .av_writebyteenable (), // (terminated) + .av_lock (), // (terminated) + .av_clken (), // (terminated) + .uav_clken (1'b0), // (terminated) + .av_debugaccess (), // (terminated) + .av_outputenable (), // (terminated) + .uav_response (), // (terminated) + .av_response (2'b00), // (terminated) + .uav_writeresponserequest (1'b0), // (terminated) + .uav_writeresponsevalid (), // (terminated) + .av_writeresponserequest (), // (terminated) + .av_writeresponsevalid (1'b0) // (terminated) + ); + + altera_merlin_slave_translator #( + .AV_ADDRESS_W (2), + .AV_DATA_W (8), + .UAV_DATA_W (32), + .AV_BURSTCOUNT_W (1), + .AV_BYTEENABLE_W (1), + .UAV_BYTEENABLE_W (4), + .UAV_ADDRESS_W (19), + .UAV_BURSTCOUNT_W (3), + .AV_READLATENCY (0), + .USE_READDATAVALID (0), + .USE_WAITREQUEST (0), + .USE_UAV_CLKEN (0), + .USE_READRESPONSE (0), + .USE_WRITERESPONSE (0), + .AV_SYMBOLS_PER_WORD (4), + .AV_ADDRESS_SYMBOLS (0), + .AV_BURSTCOUNT_SYMBOLS (0), + .AV_CONSTANT_BURST_BEHAVIOR (0), + .UAV_CONSTANT_BURST_BEHAVIOR (0), + .AV_REQUIRE_UNALIGNED_ADDRESSES (0), + .CHIPSELECT_THROUGH_READLATENCY (0), + .AV_READ_WAIT_CYCLES (13), + .AV_WRITE_WAIT_CYCLES (13), + .AV_SETUP_WAIT_CYCLES (13), + .AV_DATA_HOLD_CYCLES (13) + ) lcd_16207_0_control_slave_translator ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // reset.reset + .uav_address (lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_m0_address), // avalon_universal_slave_0.address + .uav_burstcount (lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_m0_burstcount), // .burstcount + .uav_read (lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_m0_read), // .read + .uav_write (lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_m0_write), // .write + .uav_waitrequest (lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_m0_waitrequest), // .waitrequest + .uav_readdatavalid (lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_m0_readdatavalid), // .readdatavalid + .uav_byteenable (lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_m0_byteenable), // .byteenable + .uav_readdata (lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_m0_readdata), // .readdata + .uav_writedata (lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_m0_writedata), // .writedata + .uav_lock (lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_m0_lock), // .lock + .uav_debugaccess (lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_m0_debugaccess), // .debugaccess + .av_address (lcd_16207_0_control_slave_translator_avalon_anti_slave_0_address), // avalon_anti_slave_0.address + .av_write (lcd_16207_0_control_slave_translator_avalon_anti_slave_0_write), // .write + .av_read (lcd_16207_0_control_slave_translator_avalon_anti_slave_0_read), // .read + .av_readdata (lcd_16207_0_control_slave_translator_avalon_anti_slave_0_readdata), // .readdata + .av_writedata (lcd_16207_0_control_slave_translator_avalon_anti_slave_0_writedata), // .writedata + .av_begintransfer (lcd_16207_0_control_slave_translator_avalon_anti_slave_0_begintransfer), // .begintransfer + .av_beginbursttransfer (), // (terminated) + .av_burstcount (), // (terminated) + .av_byteenable (), // (terminated) + .av_readdatavalid (1'b0), // (terminated) + .av_waitrequest (1'b0), // (terminated) + .av_writebyteenable (), // (terminated) + .av_lock (), // (terminated) + .av_chipselect (), // (terminated) + .av_clken (), // (terminated) + .uav_clken (1'b0), // (terminated) + .av_debugaccess (), // (terminated) + .av_outputenable (), // (terminated) + .uav_response (), // (terminated) + .av_response (2'b00), // (terminated) + .uav_writeresponserequest (1'b0), // (terminated) + .uav_writeresponsevalid (), // (terminated) + .av_writeresponserequest (), // (terminated) + .av_writeresponsevalid (1'b0) // (terminated) + ); + + altera_merlin_slave_translator #( + .AV_ADDRESS_W (2), + .AV_DATA_W (32), + .UAV_DATA_W (32), + .AV_BURSTCOUNT_W (1), + .AV_BYTEENABLE_W (1), + .UAV_BYTEENABLE_W (4), + .UAV_ADDRESS_W (19), + .UAV_BURSTCOUNT_W (3), + .AV_READLATENCY (0), + .USE_READDATAVALID (0), + .USE_WAITREQUEST (0), + .USE_UAV_CLKEN (0), + .USE_READRESPONSE (0), + .USE_WRITERESPONSE (0), + .AV_SYMBOLS_PER_WORD (4), + .AV_ADDRESS_SYMBOLS (0), + .AV_BURSTCOUNT_SYMBOLS (0), + .AV_CONSTANT_BURST_BEHAVIOR (0), + .UAV_CONSTANT_BURST_BEHAVIOR (0), + .AV_REQUIRE_UNALIGNED_ADDRESSES (0), + .CHIPSELECT_THROUGH_READLATENCY (0), + .AV_READ_WAIT_CYCLES (1), + .AV_WRITE_WAIT_CYCLES (0), + .AV_SETUP_WAIT_CYCLES (0), + .AV_DATA_HOLD_CYCLES (0) + ) lcd_on_s1_translator ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // reset.reset + .uav_address (lcd_on_s1_translator_avalon_universal_slave_0_agent_m0_address), // avalon_universal_slave_0.address + .uav_burstcount (lcd_on_s1_translator_avalon_universal_slave_0_agent_m0_burstcount), // .burstcount + .uav_read (lcd_on_s1_translator_avalon_universal_slave_0_agent_m0_read), // .read + .uav_write (lcd_on_s1_translator_avalon_universal_slave_0_agent_m0_write), // .write + .uav_waitrequest (lcd_on_s1_translator_avalon_universal_slave_0_agent_m0_waitrequest), // .waitrequest + .uav_readdatavalid (lcd_on_s1_translator_avalon_universal_slave_0_agent_m0_readdatavalid), // .readdatavalid + .uav_byteenable (lcd_on_s1_translator_avalon_universal_slave_0_agent_m0_byteenable), // .byteenable + .uav_readdata (lcd_on_s1_translator_avalon_universal_slave_0_agent_m0_readdata), // .readdata + .uav_writedata (lcd_on_s1_translator_avalon_universal_slave_0_agent_m0_writedata), // .writedata + .uav_lock (lcd_on_s1_translator_avalon_universal_slave_0_agent_m0_lock), // .lock + .uav_debugaccess (lcd_on_s1_translator_avalon_universal_slave_0_agent_m0_debugaccess), // .debugaccess + .av_address (lcd_on_s1_translator_avalon_anti_slave_0_address), // avalon_anti_slave_0.address + .av_write (lcd_on_s1_translator_avalon_anti_slave_0_write), // .write + .av_readdata (lcd_on_s1_translator_avalon_anti_slave_0_readdata), // .readdata + .av_writedata (lcd_on_s1_translator_avalon_anti_slave_0_writedata), // .writedata + .av_chipselect (lcd_on_s1_translator_avalon_anti_slave_0_chipselect), // .chipselect + .av_read (), // (terminated) + .av_begintransfer (), // (terminated) + .av_beginbursttransfer (), // (terminated) + .av_burstcount (), // (terminated) + .av_byteenable (), // (terminated) + .av_readdatavalid (1'b0), // (terminated) + .av_waitrequest (1'b0), // (terminated) + .av_writebyteenable (), // (terminated) + .av_lock (), // (terminated) + .av_clken (), // (terminated) + .uav_clken (1'b0), // (terminated) + .av_debugaccess (), // (terminated) + .av_outputenable (), // (terminated) + .uav_response (), // (terminated) + .av_response (2'b00), // (terminated) + .uav_writeresponserequest (1'b0), // (terminated) + .uav_writeresponsevalid (), // (terminated) + .av_writeresponserequest (), // (terminated) + .av_writeresponsevalid (1'b0) // (terminated) + ); + + altera_merlin_slave_translator #( + .AV_ADDRESS_W (2), + .AV_DATA_W (32), + .UAV_DATA_W (32), + .AV_BURSTCOUNT_W (1), + .AV_BYTEENABLE_W (1), + .UAV_BYTEENABLE_W (4), + .UAV_ADDRESS_W (19), + .UAV_BURSTCOUNT_W (3), + .AV_READLATENCY (0), + .USE_READDATAVALID (0), + .USE_WAITREQUEST (0), + .USE_UAV_CLKEN (0), + .USE_READRESPONSE (0), + .USE_WRITERESPONSE (0), + .AV_SYMBOLS_PER_WORD (4), + .AV_ADDRESS_SYMBOLS (0), + .AV_BURSTCOUNT_SYMBOLS (0), + .AV_CONSTANT_BURST_BEHAVIOR (0), + .UAV_CONSTANT_BURST_BEHAVIOR (0), + .AV_REQUIRE_UNALIGNED_ADDRESSES (0), + .CHIPSELECT_THROUGH_READLATENCY (0), + .AV_READ_WAIT_CYCLES (1), + .AV_WRITE_WAIT_CYCLES (0), + .AV_SETUP_WAIT_CYCLES (0), + .AV_DATA_HOLD_CYCLES (0) + ) lcd_blon_s1_translator ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // reset.reset + .uav_address (lcd_blon_s1_translator_avalon_universal_slave_0_agent_m0_address), // avalon_universal_slave_0.address + .uav_burstcount (lcd_blon_s1_translator_avalon_universal_slave_0_agent_m0_burstcount), // .burstcount + .uav_read (lcd_blon_s1_translator_avalon_universal_slave_0_agent_m0_read), // .read + .uav_write (lcd_blon_s1_translator_avalon_universal_slave_0_agent_m0_write), // .write + .uav_waitrequest (lcd_blon_s1_translator_avalon_universal_slave_0_agent_m0_waitrequest), // .waitrequest + .uav_readdatavalid (lcd_blon_s1_translator_avalon_universal_slave_0_agent_m0_readdatavalid), // .readdatavalid + .uav_byteenable (lcd_blon_s1_translator_avalon_universal_slave_0_agent_m0_byteenable), // .byteenable + .uav_readdata (lcd_blon_s1_translator_avalon_universal_slave_0_agent_m0_readdata), // .readdata + .uav_writedata (lcd_blon_s1_translator_avalon_universal_slave_0_agent_m0_writedata), // .writedata + .uav_lock (lcd_blon_s1_translator_avalon_universal_slave_0_agent_m0_lock), // .lock + .uav_debugaccess (lcd_blon_s1_translator_avalon_universal_slave_0_agent_m0_debugaccess), // .debugaccess + .av_address (lcd_blon_s1_translator_avalon_anti_slave_0_address), // avalon_anti_slave_0.address + .av_write (lcd_blon_s1_translator_avalon_anti_slave_0_write), // .write + .av_readdata (lcd_blon_s1_translator_avalon_anti_slave_0_readdata), // .readdata + .av_writedata (lcd_blon_s1_translator_avalon_anti_slave_0_writedata), // .writedata + .av_chipselect (lcd_blon_s1_translator_avalon_anti_slave_0_chipselect), // .chipselect + .av_read (), // (terminated) + .av_begintransfer (), // (terminated) + .av_beginbursttransfer (), // (terminated) + .av_burstcount (), // (terminated) + .av_byteenable (), // (terminated) + .av_readdatavalid (1'b0), // (terminated) + .av_waitrequest (1'b0), // (terminated) + .av_writebyteenable (), // (terminated) + .av_lock (), // (terminated) + .av_clken (), // (terminated) + .uav_clken (1'b0), // (terminated) + .av_debugaccess (), // (terminated) + .av_outputenable (), // (terminated) + .uav_response (), // (terminated) + .av_response (2'b00), // (terminated) + .uav_writeresponserequest (1'b0), // (terminated) + .uav_writeresponsevalid (), // (terminated) + .av_writeresponserequest (), // (terminated) + .av_writeresponsevalid (1'b0) // (terminated) + ); + + altera_merlin_master_agent #( + .PKT_PROTECTION_H (89), + .PKT_PROTECTION_L (87), + .PKT_BEGIN_BURST (74), + .PKT_BURSTWRAP_H (66), + .PKT_BURSTWRAP_L (64), + .PKT_BURST_SIZE_H (69), + .PKT_BURST_SIZE_L (67), + .PKT_BURST_TYPE_H (71), + .PKT_BURST_TYPE_L (70), + .PKT_BYTE_CNT_H (63), + .PKT_BYTE_CNT_L (61), + .PKT_ADDR_H (54), + .PKT_ADDR_L (36), + .PKT_TRANS_COMPRESSED_READ (55), + .PKT_TRANS_POSTED (56), + .PKT_TRANS_WRITE (57), + .PKT_TRANS_READ (58), + .PKT_TRANS_LOCK (59), + .PKT_TRANS_EXCLUSIVE (60), + .PKT_DATA_H (31), + .PKT_DATA_L (0), + .PKT_BYTEEN_H (35), + .PKT_BYTEEN_L (32), + .PKT_SRC_ID_H (80), + .PKT_SRC_ID_L (76), + .PKT_DEST_ID_H (85), + .PKT_DEST_ID_L (81), + .PKT_THREAD_ID_H (86), + .PKT_THREAD_ID_L (86), + .PKT_CACHE_H (93), + .PKT_CACHE_L (90), + .PKT_DATA_SIDEBAND_H (73), + .PKT_DATA_SIDEBAND_L (73), + .PKT_QOS_H (75), + .PKT_QOS_L (75), + .PKT_ADDR_SIDEBAND_H (72), + .PKT_ADDR_SIDEBAND_L (72), + .PKT_RESPONSE_STATUS_H (95), + .PKT_RESPONSE_STATUS_L (94), + .ST_DATA_W (96), + .ST_CHANNEL_W (18), + .AV_BURSTCOUNT_W (3), + .SUPPRESS_0_BYTEEN_RSP (0), + .ID (1), + .BURSTWRAP_VALUE (3), + .CACHE_VALUE (0), + .SECURE_ACCESS_BIT (1), + .USE_READRESPONSE (0), + .USE_WRITERESPONSE (0) + ) nios2_processor_instruction_master_translator_avalon_universal_master_0_agent ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .av_address (nios2_processor_instruction_master_translator_avalon_universal_master_0_address), // av.address + .av_write (nios2_processor_instruction_master_translator_avalon_universal_master_0_write), // .write + .av_read (nios2_processor_instruction_master_translator_avalon_universal_master_0_read), // .read + .av_writedata (nios2_processor_instruction_master_translator_avalon_universal_master_0_writedata), // .writedata + .av_readdata (nios2_processor_instruction_master_translator_avalon_universal_master_0_readdata), // .readdata + .av_waitrequest (nios2_processor_instruction_master_translator_avalon_universal_master_0_waitrequest), // .waitrequest + .av_readdatavalid (nios2_processor_instruction_master_translator_avalon_universal_master_0_readdatavalid), // .readdatavalid + .av_byteenable (nios2_processor_instruction_master_translator_avalon_universal_master_0_byteenable), // .byteenable + .av_burstcount (nios2_processor_instruction_master_translator_avalon_universal_master_0_burstcount), // .burstcount + .av_debugaccess (nios2_processor_instruction_master_translator_avalon_universal_master_0_debugaccess), // .debugaccess + .av_lock (nios2_processor_instruction_master_translator_avalon_universal_master_0_lock), // .lock + .cp_valid (nios2_processor_instruction_master_translator_avalon_universal_master_0_agent_cp_valid), // cp.valid + .cp_data (nios2_processor_instruction_master_translator_avalon_universal_master_0_agent_cp_data), // .data + .cp_startofpacket (nios2_processor_instruction_master_translator_avalon_universal_master_0_agent_cp_startofpacket), // .startofpacket + .cp_endofpacket (nios2_processor_instruction_master_translator_avalon_universal_master_0_agent_cp_endofpacket), // .endofpacket + .cp_ready (nios2_processor_instruction_master_translator_avalon_universal_master_0_agent_cp_ready), // .ready + .rp_valid (rsp_xbar_mux_src_valid), // rp.valid + .rp_data (rsp_xbar_mux_src_data), // .data + .rp_channel (rsp_xbar_mux_src_channel), // .channel + .rp_startofpacket (rsp_xbar_mux_src_startofpacket), // .startofpacket + .rp_endofpacket (rsp_xbar_mux_src_endofpacket), // .endofpacket + .rp_ready (rsp_xbar_mux_src_ready), // .ready + .av_response (), // (terminated) + .av_writeresponserequest (1'b0), // (terminated) + .av_writeresponsevalid () // (terminated) + ); + + altera_merlin_master_agent #( + .PKT_PROTECTION_H (89), + .PKT_PROTECTION_L (87), + .PKT_BEGIN_BURST (74), + .PKT_BURSTWRAP_H (66), + .PKT_BURSTWRAP_L (64), + .PKT_BURST_SIZE_H (69), + .PKT_BURST_SIZE_L (67), + .PKT_BURST_TYPE_H (71), + .PKT_BURST_TYPE_L (70), + .PKT_BYTE_CNT_H (63), + .PKT_BYTE_CNT_L (61), + .PKT_ADDR_H (54), + .PKT_ADDR_L (36), + .PKT_TRANS_COMPRESSED_READ (55), + .PKT_TRANS_POSTED (56), + .PKT_TRANS_WRITE (57), + .PKT_TRANS_READ (58), + .PKT_TRANS_LOCK (59), + .PKT_TRANS_EXCLUSIVE (60), + .PKT_DATA_H (31), + .PKT_DATA_L (0), + .PKT_BYTEEN_H (35), + .PKT_BYTEEN_L (32), + .PKT_SRC_ID_H (80), + .PKT_SRC_ID_L (76), + .PKT_DEST_ID_H (85), + .PKT_DEST_ID_L (81), + .PKT_THREAD_ID_H (86), + .PKT_THREAD_ID_L (86), + .PKT_CACHE_H (93), + .PKT_CACHE_L (90), + .PKT_DATA_SIDEBAND_H (73), + .PKT_DATA_SIDEBAND_L (73), + .PKT_QOS_H (75), + .PKT_QOS_L (75), + .PKT_ADDR_SIDEBAND_H (72), + .PKT_ADDR_SIDEBAND_L (72), + .PKT_RESPONSE_STATUS_H (95), + .PKT_RESPONSE_STATUS_L (94), + .ST_DATA_W (96), + .ST_CHANNEL_W (18), + .AV_BURSTCOUNT_W (3), + .SUPPRESS_0_BYTEEN_RSP (0), + .ID (0), + .BURSTWRAP_VALUE (7), + .CACHE_VALUE (0), + .SECURE_ACCESS_BIT (1), + .USE_READRESPONSE (0), + .USE_WRITERESPONSE (0) + ) nios2_processor_data_master_translator_avalon_universal_master_0_agent ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .av_address (nios2_processor_data_master_translator_avalon_universal_master_0_address), // av.address + .av_write (nios2_processor_data_master_translator_avalon_universal_master_0_write), // .write + .av_read (nios2_processor_data_master_translator_avalon_universal_master_0_read), // .read + .av_writedata (nios2_processor_data_master_translator_avalon_universal_master_0_writedata), // .writedata + .av_readdata (nios2_processor_data_master_translator_avalon_universal_master_0_readdata), // .readdata + .av_waitrequest (nios2_processor_data_master_translator_avalon_universal_master_0_waitrequest), // .waitrequest + .av_readdatavalid (nios2_processor_data_master_translator_avalon_universal_master_0_readdatavalid), // .readdatavalid + .av_byteenable (nios2_processor_data_master_translator_avalon_universal_master_0_byteenable), // .byteenable + .av_burstcount (nios2_processor_data_master_translator_avalon_universal_master_0_burstcount), // .burstcount + .av_debugaccess (nios2_processor_data_master_translator_avalon_universal_master_0_debugaccess), // .debugaccess + .av_lock (nios2_processor_data_master_translator_avalon_universal_master_0_lock), // .lock + .cp_valid (nios2_processor_data_master_translator_avalon_universal_master_0_agent_cp_valid), // cp.valid + .cp_data (nios2_processor_data_master_translator_avalon_universal_master_0_agent_cp_data), // .data + .cp_startofpacket (nios2_processor_data_master_translator_avalon_universal_master_0_agent_cp_startofpacket), // .startofpacket + .cp_endofpacket (nios2_processor_data_master_translator_avalon_universal_master_0_agent_cp_endofpacket), // .endofpacket + .cp_ready (nios2_processor_data_master_translator_avalon_universal_master_0_agent_cp_ready), // .ready + .rp_valid (rsp_xbar_mux_001_src_valid), // rp.valid + .rp_data (rsp_xbar_mux_001_src_data), // .data + .rp_channel (rsp_xbar_mux_001_src_channel), // .channel + .rp_startofpacket (rsp_xbar_mux_001_src_startofpacket), // .startofpacket + .rp_endofpacket (rsp_xbar_mux_001_src_endofpacket), // .endofpacket + .rp_ready (rsp_xbar_mux_001_src_ready), // .ready + .av_response (), // (terminated) + .av_writeresponserequest (1'b0), // (terminated) + .av_writeresponsevalid () // (terminated) + ); + + altera_merlin_slave_agent #( + .PKT_DATA_H (31), + .PKT_DATA_L (0), + .PKT_BEGIN_BURST (74), + .PKT_SYMBOL_W (8), + .PKT_BYTEEN_H (35), + .PKT_BYTEEN_L (32), + .PKT_ADDR_H (54), + .PKT_ADDR_L (36), + .PKT_TRANS_COMPRESSED_READ (55), + .PKT_TRANS_POSTED (56), + .PKT_TRANS_WRITE (57), + .PKT_TRANS_READ (58), + .PKT_TRANS_LOCK (59), + .PKT_SRC_ID_H (80), + .PKT_SRC_ID_L (76), + .PKT_DEST_ID_H (85), + .PKT_DEST_ID_L (81), + .PKT_BURSTWRAP_H (66), + .PKT_BURSTWRAP_L (64), + .PKT_BYTE_CNT_H (63), + .PKT_BYTE_CNT_L (61), + .PKT_PROTECTION_H (89), + .PKT_PROTECTION_L (87), + .PKT_RESPONSE_STATUS_H (95), + .PKT_RESPONSE_STATUS_L (94), + .PKT_BURST_SIZE_H (69), + .PKT_BURST_SIZE_L (67), + .ST_CHANNEL_W (18), + .ST_DATA_W (96), + .AVS_BURSTCOUNT_W (3), + .SUPPRESS_0_BYTEEN_CMD (0), + .PREVENT_FIFO_OVERFLOW (1), + .USE_READRESPONSE (0), + .USE_WRITERESPONSE (0) + ) nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .m0_address (nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_m0_address), // m0.address + .m0_burstcount (nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_m0_burstcount), // .burstcount + .m0_byteenable (nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_m0_byteenable), // .byteenable + .m0_debugaccess (nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_m0_debugaccess), // .debugaccess + .m0_lock (nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_m0_lock), // .lock + .m0_readdata (nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_m0_readdata), // .readdata + .m0_readdatavalid (nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_m0_readdatavalid), // .readdatavalid + .m0_read (nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_m0_read), // .read + .m0_waitrequest (nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_m0_waitrequest), // .waitrequest + .m0_writedata (nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_m0_writedata), // .writedata + .m0_write (nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_m0_write), // .write + .rp_endofpacket (nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rp_endofpacket), // rp.endofpacket + .rp_ready (nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rp_ready), // .ready + .rp_valid (nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rp_valid), // .valid + .rp_data (nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rp_data), // .data + .rp_startofpacket (nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rp_startofpacket), // .startofpacket + .cp_ready (cmd_xbar_mux_src_ready), // cp.ready + .cp_valid (cmd_xbar_mux_src_valid), // .valid + .cp_data (cmd_xbar_mux_src_data), // .data + .cp_startofpacket (cmd_xbar_mux_src_startofpacket), // .startofpacket + .cp_endofpacket (cmd_xbar_mux_src_endofpacket), // .endofpacket + .cp_channel (cmd_xbar_mux_src_channel), // .channel + .rf_sink_ready (nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo_out_ready), // rf_sink.ready + .rf_sink_valid (nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo_out_valid), // .valid + .rf_sink_startofpacket (nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo_out_startofpacket), // .startofpacket + .rf_sink_endofpacket (nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo_out_endofpacket), // .endofpacket + .rf_sink_data (nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo_out_data), // .data + .rf_source_ready (nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rf_source_ready), // rf_source.ready + .rf_source_valid (nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rf_source_valid), // .valid + .rf_source_startofpacket (nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rf_source_startofpacket), // .startofpacket + .rf_source_endofpacket (nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rf_source_endofpacket), // .endofpacket + .rf_source_data (nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rf_source_data), // .data + .rdata_fifo_sink_ready (nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rdata_fifo_src_ready), // rdata_fifo_sink.ready + .rdata_fifo_sink_valid (nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rdata_fifo_src_valid), // .valid + .rdata_fifo_sink_data (nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rdata_fifo_src_data), // .data + .rdata_fifo_src_ready (nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rdata_fifo_src_ready), // rdata_fifo_src.ready + .rdata_fifo_src_valid (nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rdata_fifo_src_valid), // .valid + .rdata_fifo_src_data (nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rdata_fifo_src_data), // .data + .m0_response (2'b00), // (terminated) + .m0_writeresponserequest (), // (terminated) + .m0_writeresponsevalid (1'b0) // (terminated) + ); + + altera_avalon_sc_fifo #( + .SYMBOLS_PER_BEAT (1), + .BITS_PER_SYMBOL (97), + .FIFO_DEPTH (2), + .CHANNEL_WIDTH (0), + .ERROR_WIDTH (0), + .USE_PACKETS (1), + .USE_FILL_LEVEL (0), + .EMPTY_LATENCY (1), + .USE_MEMORY_BLOCKS (0), + .USE_STORE_FORWARD (0), + .USE_ALMOST_FULL_IF (0), + .USE_ALMOST_EMPTY_IF (0) + ) nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .in_data (nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rf_source_data), // in.data + .in_valid (nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rf_source_valid), // .valid + .in_ready (nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rf_source_ready), // .ready + .in_startofpacket (nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rf_source_startofpacket), // .startofpacket + .in_endofpacket (nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rf_source_endofpacket), // .endofpacket + .out_data (nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo_out_data), // out.data + .out_valid (nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo_out_valid), // .valid + .out_ready (nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo_out_ready), // .ready + .out_startofpacket (nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo_out_startofpacket), // .startofpacket + .out_endofpacket (nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo_out_endofpacket), // .endofpacket + .csr_address (2'b00), // (terminated) + .csr_read (1'b0), // (terminated) + .csr_write (1'b0), // (terminated) + .csr_readdata (), // (terminated) + .csr_writedata (32'b00000000000000000000000000000000), // (terminated) + .almost_full_data (), // (terminated) + .almost_empty_data (), // (terminated) + .in_empty (1'b0), // (terminated) + .out_empty (), // (terminated) + .in_error (1'b0), // (terminated) + .out_error (), // (terminated) + .in_channel (1'b0), // (terminated) + .out_channel () // (terminated) + ); + + altera_merlin_slave_agent #( + .PKT_DATA_H (31), + .PKT_DATA_L (0), + .PKT_BEGIN_BURST (74), + .PKT_SYMBOL_W (8), + .PKT_BYTEEN_H (35), + .PKT_BYTEEN_L (32), + .PKT_ADDR_H (54), + .PKT_ADDR_L (36), + .PKT_TRANS_COMPRESSED_READ (55), + .PKT_TRANS_POSTED (56), + .PKT_TRANS_WRITE (57), + .PKT_TRANS_READ (58), + .PKT_TRANS_LOCK (59), + .PKT_SRC_ID_H (80), + .PKT_SRC_ID_L (76), + .PKT_DEST_ID_H (85), + .PKT_DEST_ID_L (81), + .PKT_BURSTWRAP_H (66), + .PKT_BURSTWRAP_L (64), + .PKT_BYTE_CNT_H (63), + .PKT_BYTE_CNT_L (61), + .PKT_PROTECTION_H (89), + .PKT_PROTECTION_L (87), + .PKT_RESPONSE_STATUS_H (95), + .PKT_RESPONSE_STATUS_L (94), + .PKT_BURST_SIZE_H (69), + .PKT_BURST_SIZE_L (67), + .ST_CHANNEL_W (18), + .ST_DATA_W (96), + .AVS_BURSTCOUNT_W (3), + .SUPPRESS_0_BYTEEN_CMD (0), + .PREVENT_FIFO_OVERFLOW (1), + .USE_READRESPONSE (0), + .USE_WRITERESPONSE (0) + ) onchip_memory_s1_translator_avalon_universal_slave_0_agent ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .m0_address (onchip_memory_s1_translator_avalon_universal_slave_0_agent_m0_address), // m0.address + .m0_burstcount (onchip_memory_s1_translator_avalon_universal_slave_0_agent_m0_burstcount), // .burstcount + .m0_byteenable (onchip_memory_s1_translator_avalon_universal_slave_0_agent_m0_byteenable), // .byteenable + .m0_debugaccess (onchip_memory_s1_translator_avalon_universal_slave_0_agent_m0_debugaccess), // .debugaccess + .m0_lock (onchip_memory_s1_translator_avalon_universal_slave_0_agent_m0_lock), // .lock + .m0_readdata (onchip_memory_s1_translator_avalon_universal_slave_0_agent_m0_readdata), // .readdata + .m0_readdatavalid (onchip_memory_s1_translator_avalon_universal_slave_0_agent_m0_readdatavalid), // .readdatavalid + .m0_read (onchip_memory_s1_translator_avalon_universal_slave_0_agent_m0_read), // .read + .m0_waitrequest (onchip_memory_s1_translator_avalon_universal_slave_0_agent_m0_waitrequest), // .waitrequest + .m0_writedata (onchip_memory_s1_translator_avalon_universal_slave_0_agent_m0_writedata), // .writedata + .m0_write (onchip_memory_s1_translator_avalon_universal_slave_0_agent_m0_write), // .write + .rp_endofpacket (onchip_memory_s1_translator_avalon_universal_slave_0_agent_rp_endofpacket), // rp.endofpacket + .rp_ready (onchip_memory_s1_translator_avalon_universal_slave_0_agent_rp_ready), // .ready + .rp_valid (onchip_memory_s1_translator_avalon_universal_slave_0_agent_rp_valid), // .valid + .rp_data (onchip_memory_s1_translator_avalon_universal_slave_0_agent_rp_data), // .data + .rp_startofpacket (onchip_memory_s1_translator_avalon_universal_slave_0_agent_rp_startofpacket), // .startofpacket + .cp_ready (cmd_xbar_mux_001_src_ready), // cp.ready + .cp_valid (cmd_xbar_mux_001_src_valid), // .valid + .cp_data (cmd_xbar_mux_001_src_data), // .data + .cp_startofpacket (cmd_xbar_mux_001_src_startofpacket), // .startofpacket + .cp_endofpacket (cmd_xbar_mux_001_src_endofpacket), // .endofpacket + .cp_channel (cmd_xbar_mux_001_src_channel), // .channel + .rf_sink_ready (onchip_memory_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_ready), // rf_sink.ready + .rf_sink_valid (onchip_memory_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_valid), // .valid + .rf_sink_startofpacket (onchip_memory_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_startofpacket), // .startofpacket + .rf_sink_endofpacket (onchip_memory_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_endofpacket), // .endofpacket + .rf_sink_data (onchip_memory_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_data), // .data + .rf_source_ready (onchip_memory_s1_translator_avalon_universal_slave_0_agent_rf_source_ready), // rf_source.ready + .rf_source_valid (onchip_memory_s1_translator_avalon_universal_slave_0_agent_rf_source_valid), // .valid + .rf_source_startofpacket (onchip_memory_s1_translator_avalon_universal_slave_0_agent_rf_source_startofpacket), // .startofpacket + .rf_source_endofpacket (onchip_memory_s1_translator_avalon_universal_slave_0_agent_rf_source_endofpacket), // .endofpacket + .rf_source_data (onchip_memory_s1_translator_avalon_universal_slave_0_agent_rf_source_data), // .data + .rdata_fifo_sink_ready (onchip_memory_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_ready), // rdata_fifo_sink.ready + .rdata_fifo_sink_valid (onchip_memory_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_valid), // .valid + .rdata_fifo_sink_data (onchip_memory_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_data), // .data + .rdata_fifo_src_ready (onchip_memory_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_ready), // rdata_fifo_src.ready + .rdata_fifo_src_valid (onchip_memory_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_valid), // .valid + .rdata_fifo_src_data (onchip_memory_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_data), // .data + .m0_response (2'b00), // (terminated) + .m0_writeresponserequest (), // (terminated) + .m0_writeresponsevalid (1'b0) // (terminated) + ); + + altera_avalon_sc_fifo #( + .SYMBOLS_PER_BEAT (1), + .BITS_PER_SYMBOL (97), + .FIFO_DEPTH (2), + .CHANNEL_WIDTH (0), + .ERROR_WIDTH (0), + .USE_PACKETS (1), + .USE_FILL_LEVEL (0), + .EMPTY_LATENCY (1), + .USE_MEMORY_BLOCKS (0), + .USE_STORE_FORWARD (0), + .USE_ALMOST_FULL_IF (0), + .USE_ALMOST_EMPTY_IF (0) + ) onchip_memory_s1_translator_avalon_universal_slave_0_agent_rsp_fifo ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .in_data (onchip_memory_s1_translator_avalon_universal_slave_0_agent_rf_source_data), // in.data + .in_valid (onchip_memory_s1_translator_avalon_universal_slave_0_agent_rf_source_valid), // .valid + .in_ready (onchip_memory_s1_translator_avalon_universal_slave_0_agent_rf_source_ready), // .ready + .in_startofpacket (onchip_memory_s1_translator_avalon_universal_slave_0_agent_rf_source_startofpacket), // .startofpacket + .in_endofpacket (onchip_memory_s1_translator_avalon_universal_slave_0_agent_rf_source_endofpacket), // .endofpacket + .out_data (onchip_memory_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_data), // out.data + .out_valid (onchip_memory_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_valid), // .valid + .out_ready (onchip_memory_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_ready), // .ready + .out_startofpacket (onchip_memory_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_startofpacket), // .startofpacket + .out_endofpacket (onchip_memory_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_endofpacket), // .endofpacket + .csr_address (2'b00), // (terminated) + .csr_read (1'b0), // (terminated) + .csr_write (1'b0), // (terminated) + .csr_readdata (), // (terminated) + .csr_writedata (32'b00000000000000000000000000000000), // (terminated) + .almost_full_data (), // (terminated) + .almost_empty_data (), // (terminated) + .in_empty (1'b0), // (terminated) + .out_empty (), // (terminated) + .in_error (1'b0), // (terminated) + .out_error (), // (terminated) + .in_channel (1'b0), // (terminated) + .out_channel () // (terminated) + ); + + altera_merlin_slave_agent #( + .PKT_DATA_H (31), + .PKT_DATA_L (0), + .PKT_BEGIN_BURST (74), + .PKT_SYMBOL_W (8), + .PKT_BYTEEN_H (35), + .PKT_BYTEEN_L (32), + .PKT_ADDR_H (54), + .PKT_ADDR_L (36), + .PKT_TRANS_COMPRESSED_READ (55), + .PKT_TRANS_POSTED (56), + .PKT_TRANS_WRITE (57), + .PKT_TRANS_READ (58), + .PKT_TRANS_LOCK (59), + .PKT_SRC_ID_H (80), + .PKT_SRC_ID_L (76), + .PKT_DEST_ID_H (85), + .PKT_DEST_ID_L (81), + .PKT_BURSTWRAP_H (66), + .PKT_BURSTWRAP_L (64), + .PKT_BYTE_CNT_H (63), + .PKT_BYTE_CNT_L (61), + .PKT_PROTECTION_H (89), + .PKT_PROTECTION_L (87), + .PKT_RESPONSE_STATUS_H (95), + .PKT_RESPONSE_STATUS_L (94), + .PKT_BURST_SIZE_H (69), + .PKT_BURST_SIZE_L (67), + .ST_CHANNEL_W (18), + .ST_DATA_W (96), + .AVS_BURSTCOUNT_W (3), + .SUPPRESS_0_BYTEEN_CMD (0), + .PREVENT_FIFO_OVERFLOW (1), + .USE_READRESPONSE (0), + .USE_WRITERESPONSE (0) + ) leds_s1_translator_avalon_universal_slave_0_agent ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .m0_address (leds_s1_translator_avalon_universal_slave_0_agent_m0_address), // m0.address + .m0_burstcount (leds_s1_translator_avalon_universal_slave_0_agent_m0_burstcount), // .burstcount + .m0_byteenable (leds_s1_translator_avalon_universal_slave_0_agent_m0_byteenable), // .byteenable + .m0_debugaccess (leds_s1_translator_avalon_universal_slave_0_agent_m0_debugaccess), // .debugaccess + .m0_lock (leds_s1_translator_avalon_universal_slave_0_agent_m0_lock), // .lock + .m0_readdata (leds_s1_translator_avalon_universal_slave_0_agent_m0_readdata), // .readdata + .m0_readdatavalid (leds_s1_translator_avalon_universal_slave_0_agent_m0_readdatavalid), // .readdatavalid + .m0_read (leds_s1_translator_avalon_universal_slave_0_agent_m0_read), // .read + .m0_waitrequest (leds_s1_translator_avalon_universal_slave_0_agent_m0_waitrequest), // .waitrequest + .m0_writedata (leds_s1_translator_avalon_universal_slave_0_agent_m0_writedata), // .writedata + .m0_write (leds_s1_translator_avalon_universal_slave_0_agent_m0_write), // .write + .rp_endofpacket (leds_s1_translator_avalon_universal_slave_0_agent_rp_endofpacket), // rp.endofpacket + .rp_ready (leds_s1_translator_avalon_universal_slave_0_agent_rp_ready), // .ready + .rp_valid (leds_s1_translator_avalon_universal_slave_0_agent_rp_valid), // .valid + .rp_data (leds_s1_translator_avalon_universal_slave_0_agent_rp_data), // .data + .rp_startofpacket (leds_s1_translator_avalon_universal_slave_0_agent_rp_startofpacket), // .startofpacket + .cp_ready (cmd_xbar_demux_001_src2_ready), // cp.ready + .cp_valid (cmd_xbar_demux_001_src2_valid), // .valid + .cp_data (cmd_xbar_demux_001_src2_data), // .data + .cp_startofpacket (cmd_xbar_demux_001_src2_startofpacket), // .startofpacket + .cp_endofpacket (cmd_xbar_demux_001_src2_endofpacket), // .endofpacket + .cp_channel (cmd_xbar_demux_001_src2_channel), // .channel + .rf_sink_ready (leds_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_ready), // rf_sink.ready + .rf_sink_valid (leds_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_valid), // .valid + .rf_sink_startofpacket (leds_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_startofpacket), // .startofpacket + .rf_sink_endofpacket (leds_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_endofpacket), // .endofpacket + .rf_sink_data (leds_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_data), // .data + .rf_source_ready (leds_s1_translator_avalon_universal_slave_0_agent_rf_source_ready), // rf_source.ready + .rf_source_valid (leds_s1_translator_avalon_universal_slave_0_agent_rf_source_valid), // .valid + .rf_source_startofpacket (leds_s1_translator_avalon_universal_slave_0_agent_rf_source_startofpacket), // .startofpacket + .rf_source_endofpacket (leds_s1_translator_avalon_universal_slave_0_agent_rf_source_endofpacket), // .endofpacket + .rf_source_data (leds_s1_translator_avalon_universal_slave_0_agent_rf_source_data), // .data + .rdata_fifo_sink_ready (leds_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_ready), // rdata_fifo_sink.ready + .rdata_fifo_sink_valid (leds_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_valid), // .valid + .rdata_fifo_sink_data (leds_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_data), // .data + .rdata_fifo_src_ready (leds_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_ready), // rdata_fifo_src.ready + .rdata_fifo_src_valid (leds_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_valid), // .valid + .rdata_fifo_src_data (leds_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_data), // .data + .m0_response (2'b00), // (terminated) + .m0_writeresponserequest (), // (terminated) + .m0_writeresponsevalid (1'b0) // (terminated) + ); + + altera_avalon_sc_fifo #( + .SYMBOLS_PER_BEAT (1), + .BITS_PER_SYMBOL (97), + .FIFO_DEPTH (2), + .CHANNEL_WIDTH (0), + .ERROR_WIDTH (0), + .USE_PACKETS (1), + .USE_FILL_LEVEL (0), + .EMPTY_LATENCY (1), + .USE_MEMORY_BLOCKS (0), + .USE_STORE_FORWARD (0), + .USE_ALMOST_FULL_IF (0), + .USE_ALMOST_EMPTY_IF (0) + ) leds_s1_translator_avalon_universal_slave_0_agent_rsp_fifo ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .in_data (leds_s1_translator_avalon_universal_slave_0_agent_rf_source_data), // in.data + .in_valid (leds_s1_translator_avalon_universal_slave_0_agent_rf_source_valid), // .valid + .in_ready (leds_s1_translator_avalon_universal_slave_0_agent_rf_source_ready), // .ready + .in_startofpacket (leds_s1_translator_avalon_universal_slave_0_agent_rf_source_startofpacket), // .startofpacket + .in_endofpacket (leds_s1_translator_avalon_universal_slave_0_agent_rf_source_endofpacket), // .endofpacket + .out_data (leds_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_data), // out.data + .out_valid (leds_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_valid), // .valid + .out_ready (leds_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_ready), // .ready + .out_startofpacket (leds_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_startofpacket), // .startofpacket + .out_endofpacket (leds_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_endofpacket), // .endofpacket + .csr_address (2'b00), // (terminated) + .csr_read (1'b0), // (terminated) + .csr_write (1'b0), // (terminated) + .csr_readdata (), // (terminated) + .csr_writedata (32'b00000000000000000000000000000000), // (terminated) + .almost_full_data (), // (terminated) + .almost_empty_data (), // (terminated) + .in_empty (1'b0), // (terminated) + .out_empty (), // (terminated) + .in_error (1'b0), // (terminated) + .out_error (), // (terminated) + .in_channel (1'b0), // (terminated) + .out_channel () // (terminated) + ); + + altera_merlin_slave_agent #( + .PKT_DATA_H (31), + .PKT_DATA_L (0), + .PKT_BEGIN_BURST (74), + .PKT_SYMBOL_W (8), + .PKT_BYTEEN_H (35), + .PKT_BYTEEN_L (32), + .PKT_ADDR_H (54), + .PKT_ADDR_L (36), + .PKT_TRANS_COMPRESSED_READ (55), + .PKT_TRANS_POSTED (56), + .PKT_TRANS_WRITE (57), + .PKT_TRANS_READ (58), + .PKT_TRANS_LOCK (59), + .PKT_SRC_ID_H (80), + .PKT_SRC_ID_L (76), + .PKT_DEST_ID_H (85), + .PKT_DEST_ID_L (81), + .PKT_BURSTWRAP_H (66), + .PKT_BURSTWRAP_L (64), + .PKT_BYTE_CNT_H (63), + .PKT_BYTE_CNT_L (61), + .PKT_PROTECTION_H (89), + .PKT_PROTECTION_L (87), + .PKT_RESPONSE_STATUS_H (95), + .PKT_RESPONSE_STATUS_L (94), + .PKT_BURST_SIZE_H (69), + .PKT_BURST_SIZE_L (67), + .ST_CHANNEL_W (18), + .ST_DATA_W (96), + .AVS_BURSTCOUNT_W (3), + .SUPPRESS_0_BYTEEN_CMD (0), + .PREVENT_FIFO_OVERFLOW (1), + .USE_READRESPONSE (0), + .USE_WRITERESPONSE (0) + ) jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .m0_address (jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_m0_address), // m0.address + .m0_burstcount (jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_m0_burstcount), // .burstcount + .m0_byteenable (jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_m0_byteenable), // .byteenable + .m0_debugaccess (jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_m0_debugaccess), // .debugaccess + .m0_lock (jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_m0_lock), // .lock + .m0_readdata (jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_m0_readdata), // .readdata + .m0_readdatavalid (jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_m0_readdatavalid), // .readdatavalid + .m0_read (jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_m0_read), // .read + .m0_waitrequest (jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_m0_waitrequest), // .waitrequest + .m0_writedata (jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_m0_writedata), // .writedata + .m0_write (jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_m0_write), // .write + .rp_endofpacket (jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rp_endofpacket), // rp.endofpacket + .rp_ready (jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rp_ready), // .ready + .rp_valid (jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rp_valid), // .valid + .rp_data (jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rp_data), // .data + .rp_startofpacket (jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rp_startofpacket), // .startofpacket + .cp_ready (cmd_xbar_demux_001_src3_ready), // cp.ready + .cp_valid (cmd_xbar_demux_001_src3_valid), // .valid + .cp_data (cmd_xbar_demux_001_src3_data), // .data + .cp_startofpacket (cmd_xbar_demux_001_src3_startofpacket), // .startofpacket + .cp_endofpacket (cmd_xbar_demux_001_src3_endofpacket), // .endofpacket + .cp_channel (cmd_xbar_demux_001_src3_channel), // .channel + .rf_sink_ready (jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rsp_fifo_out_ready), // rf_sink.ready + .rf_sink_valid (jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rsp_fifo_out_valid), // .valid + .rf_sink_startofpacket (jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rsp_fifo_out_startofpacket), // .startofpacket + .rf_sink_endofpacket (jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rsp_fifo_out_endofpacket), // .endofpacket + .rf_sink_data (jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rsp_fifo_out_data), // .data + .rf_source_ready (jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rf_source_ready), // rf_source.ready + .rf_source_valid (jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rf_source_valid), // .valid + .rf_source_startofpacket (jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rf_source_startofpacket), // .startofpacket + .rf_source_endofpacket (jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rf_source_endofpacket), // .endofpacket + .rf_source_data (jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rf_source_data), // .data + .rdata_fifo_sink_ready (jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rdata_fifo_src_ready), // rdata_fifo_sink.ready + .rdata_fifo_sink_valid (jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rdata_fifo_src_valid), // .valid + .rdata_fifo_sink_data (jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rdata_fifo_src_data), // .data + .rdata_fifo_src_ready (jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rdata_fifo_src_ready), // rdata_fifo_src.ready + .rdata_fifo_src_valid (jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rdata_fifo_src_valid), // .valid + .rdata_fifo_src_data (jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rdata_fifo_src_data), // .data + .m0_response (2'b00), // (terminated) + .m0_writeresponserequest (), // (terminated) + .m0_writeresponsevalid (1'b0) // (terminated) + ); + + altera_avalon_sc_fifo #( + .SYMBOLS_PER_BEAT (1), + .BITS_PER_SYMBOL (97), + .FIFO_DEPTH (2), + .CHANNEL_WIDTH (0), + .ERROR_WIDTH (0), + .USE_PACKETS (1), + .USE_FILL_LEVEL (0), + .EMPTY_LATENCY (1), + .USE_MEMORY_BLOCKS (0), + .USE_STORE_FORWARD (0), + .USE_ALMOST_FULL_IF (0), + .USE_ALMOST_EMPTY_IF (0) + ) jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rsp_fifo ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .in_data (jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rf_source_data), // in.data + .in_valid (jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rf_source_valid), // .valid + .in_ready (jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rf_source_ready), // .ready + .in_startofpacket (jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rf_source_startofpacket), // .startofpacket + .in_endofpacket (jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rf_source_endofpacket), // .endofpacket + .out_data (jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rsp_fifo_out_data), // out.data + .out_valid (jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rsp_fifo_out_valid), // .valid + .out_ready (jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rsp_fifo_out_ready), // .ready + .out_startofpacket (jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rsp_fifo_out_startofpacket), // .startofpacket + .out_endofpacket (jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rsp_fifo_out_endofpacket), // .endofpacket + .csr_address (2'b00), // (terminated) + .csr_read (1'b0), // (terminated) + .csr_write (1'b0), // (terminated) + .csr_readdata (), // (terminated) + .csr_writedata (32'b00000000000000000000000000000000), // (terminated) + .almost_full_data (), // (terminated) + .almost_empty_data (), // (terminated) + .in_empty (1'b0), // (terminated) + .out_empty (), // (terminated) + .in_error (1'b0), // (terminated) + .out_error (), // (terminated) + .in_channel (1'b0), // (terminated) + .out_channel () // (terminated) + ); + + altera_merlin_slave_agent #( + .PKT_DATA_H (31), + .PKT_DATA_L (0), + .PKT_BEGIN_BURST (74), + .PKT_SYMBOL_W (8), + .PKT_BYTEEN_H (35), + .PKT_BYTEEN_L (32), + .PKT_ADDR_H (54), + .PKT_ADDR_L (36), + .PKT_TRANS_COMPRESSED_READ (55), + .PKT_TRANS_POSTED (56), + .PKT_TRANS_WRITE (57), + .PKT_TRANS_READ (58), + .PKT_TRANS_LOCK (59), + .PKT_SRC_ID_H (80), + .PKT_SRC_ID_L (76), + .PKT_DEST_ID_H (85), + .PKT_DEST_ID_L (81), + .PKT_BURSTWRAP_H (66), + .PKT_BURSTWRAP_L (64), + .PKT_BYTE_CNT_H (63), + .PKT_BYTE_CNT_L (61), + .PKT_PROTECTION_H (89), + .PKT_PROTECTION_L (87), + .PKT_RESPONSE_STATUS_H (95), + .PKT_RESPONSE_STATUS_L (94), + .PKT_BURST_SIZE_H (69), + .PKT_BURST_SIZE_L (67), + .ST_CHANNEL_W (18), + .ST_DATA_W (96), + .AVS_BURSTCOUNT_W (3), + .SUPPRESS_0_BYTEEN_CMD (0), + .PREVENT_FIFO_OVERFLOW (1), + .USE_READRESPONSE (0), + .USE_WRITERESPONSE (0) + ) ledrs_s1_translator_avalon_universal_slave_0_agent ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .m0_address (ledrs_s1_translator_avalon_universal_slave_0_agent_m0_address), // m0.address + .m0_burstcount (ledrs_s1_translator_avalon_universal_slave_0_agent_m0_burstcount), // .burstcount + .m0_byteenable (ledrs_s1_translator_avalon_universal_slave_0_agent_m0_byteenable), // .byteenable + .m0_debugaccess (ledrs_s1_translator_avalon_universal_slave_0_agent_m0_debugaccess), // .debugaccess + .m0_lock (ledrs_s1_translator_avalon_universal_slave_0_agent_m0_lock), // .lock + .m0_readdata (ledrs_s1_translator_avalon_universal_slave_0_agent_m0_readdata), // .readdata + .m0_readdatavalid (ledrs_s1_translator_avalon_universal_slave_0_agent_m0_readdatavalid), // .readdatavalid + .m0_read (ledrs_s1_translator_avalon_universal_slave_0_agent_m0_read), // .read + .m0_waitrequest (ledrs_s1_translator_avalon_universal_slave_0_agent_m0_waitrequest), // .waitrequest + .m0_writedata (ledrs_s1_translator_avalon_universal_slave_0_agent_m0_writedata), // .writedata + .m0_write (ledrs_s1_translator_avalon_universal_slave_0_agent_m0_write), // .write + .rp_endofpacket (ledrs_s1_translator_avalon_universal_slave_0_agent_rp_endofpacket), // rp.endofpacket + .rp_ready (ledrs_s1_translator_avalon_universal_slave_0_agent_rp_ready), // .ready + .rp_valid (ledrs_s1_translator_avalon_universal_slave_0_agent_rp_valid), // .valid + .rp_data (ledrs_s1_translator_avalon_universal_slave_0_agent_rp_data), // .data + .rp_startofpacket (ledrs_s1_translator_avalon_universal_slave_0_agent_rp_startofpacket), // .startofpacket + .cp_ready (cmd_xbar_demux_001_src4_ready), // cp.ready + .cp_valid (cmd_xbar_demux_001_src4_valid), // .valid + .cp_data (cmd_xbar_demux_001_src4_data), // .data + .cp_startofpacket (cmd_xbar_demux_001_src4_startofpacket), // .startofpacket + .cp_endofpacket (cmd_xbar_demux_001_src4_endofpacket), // .endofpacket + .cp_channel (cmd_xbar_demux_001_src4_channel), // .channel + .rf_sink_ready (ledrs_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_ready), // rf_sink.ready + .rf_sink_valid (ledrs_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_valid), // .valid + .rf_sink_startofpacket (ledrs_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_startofpacket), // .startofpacket + .rf_sink_endofpacket (ledrs_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_endofpacket), // .endofpacket + .rf_sink_data (ledrs_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_data), // .data + .rf_source_ready (ledrs_s1_translator_avalon_universal_slave_0_agent_rf_source_ready), // rf_source.ready + .rf_source_valid (ledrs_s1_translator_avalon_universal_slave_0_agent_rf_source_valid), // .valid + .rf_source_startofpacket (ledrs_s1_translator_avalon_universal_slave_0_agent_rf_source_startofpacket), // .startofpacket + .rf_source_endofpacket (ledrs_s1_translator_avalon_universal_slave_0_agent_rf_source_endofpacket), // .endofpacket + .rf_source_data (ledrs_s1_translator_avalon_universal_slave_0_agent_rf_source_data), // .data + .rdata_fifo_sink_ready (ledrs_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_ready), // rdata_fifo_sink.ready + .rdata_fifo_sink_valid (ledrs_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_valid), // .valid + .rdata_fifo_sink_data (ledrs_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_data), // .data + .rdata_fifo_src_ready (ledrs_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_ready), // rdata_fifo_src.ready + .rdata_fifo_src_valid (ledrs_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_valid), // .valid + .rdata_fifo_src_data (ledrs_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_data), // .data + .m0_response (2'b00), // (terminated) + .m0_writeresponserequest (), // (terminated) + .m0_writeresponsevalid (1'b0) // (terminated) + ); + + altera_avalon_sc_fifo #( + .SYMBOLS_PER_BEAT (1), + .BITS_PER_SYMBOL (97), + .FIFO_DEPTH (2), + .CHANNEL_WIDTH (0), + .ERROR_WIDTH (0), + .USE_PACKETS (1), + .USE_FILL_LEVEL (0), + .EMPTY_LATENCY (1), + .USE_MEMORY_BLOCKS (0), + .USE_STORE_FORWARD (0), + .USE_ALMOST_FULL_IF (0), + .USE_ALMOST_EMPTY_IF (0) + ) ledrs_s1_translator_avalon_universal_slave_0_agent_rsp_fifo ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .in_data (ledrs_s1_translator_avalon_universal_slave_0_agent_rf_source_data), // in.data + .in_valid (ledrs_s1_translator_avalon_universal_slave_0_agent_rf_source_valid), // .valid + .in_ready (ledrs_s1_translator_avalon_universal_slave_0_agent_rf_source_ready), // .ready + .in_startofpacket (ledrs_s1_translator_avalon_universal_slave_0_agent_rf_source_startofpacket), // .startofpacket + .in_endofpacket (ledrs_s1_translator_avalon_universal_slave_0_agent_rf_source_endofpacket), // .endofpacket + .out_data (ledrs_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_data), // out.data + .out_valid (ledrs_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_valid), // .valid + .out_ready (ledrs_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_ready), // .ready + .out_startofpacket (ledrs_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_startofpacket), // .startofpacket + .out_endofpacket (ledrs_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_endofpacket), // .endofpacket + .csr_address (2'b00), // (terminated) + .csr_read (1'b0), // (terminated) + .csr_write (1'b0), // (terminated) + .csr_readdata (), // (terminated) + .csr_writedata (32'b00000000000000000000000000000000), // (terminated) + .almost_full_data (), // (terminated) + .almost_empty_data (), // (terminated) + .in_empty (1'b0), // (terminated) + .out_empty (), // (terminated) + .in_error (1'b0), // (terminated) + .out_error (), // (terminated) + .in_channel (1'b0), // (terminated) + .out_channel () // (terminated) + ); + + altera_merlin_slave_agent #( + .PKT_DATA_H (31), + .PKT_DATA_L (0), + .PKT_BEGIN_BURST (74), + .PKT_SYMBOL_W (8), + .PKT_BYTEEN_H (35), + .PKT_BYTEEN_L (32), + .PKT_ADDR_H (54), + .PKT_ADDR_L (36), + .PKT_TRANS_COMPRESSED_READ (55), + .PKT_TRANS_POSTED (56), + .PKT_TRANS_WRITE (57), + .PKT_TRANS_READ (58), + .PKT_TRANS_LOCK (59), + .PKT_SRC_ID_H (80), + .PKT_SRC_ID_L (76), + .PKT_DEST_ID_H (85), + .PKT_DEST_ID_L (81), + .PKT_BURSTWRAP_H (66), + .PKT_BURSTWRAP_L (64), + .PKT_BYTE_CNT_H (63), + .PKT_BYTE_CNT_L (61), + .PKT_PROTECTION_H (89), + .PKT_PROTECTION_L (87), + .PKT_RESPONSE_STATUS_H (95), + .PKT_RESPONSE_STATUS_L (94), + .PKT_BURST_SIZE_H (69), + .PKT_BURST_SIZE_L (67), + .ST_CHANNEL_W (18), + .ST_DATA_W (96), + .AVS_BURSTCOUNT_W (3), + .SUPPRESS_0_BYTEEN_CMD (0), + .PREVENT_FIFO_OVERFLOW (1), + .USE_READRESPONSE (0), + .USE_WRITERESPONSE (0) + ) switches_s1_translator_avalon_universal_slave_0_agent ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .m0_address (switches_s1_translator_avalon_universal_slave_0_agent_m0_address), // m0.address + .m0_burstcount (switches_s1_translator_avalon_universal_slave_0_agent_m0_burstcount), // .burstcount + .m0_byteenable (switches_s1_translator_avalon_universal_slave_0_agent_m0_byteenable), // .byteenable + .m0_debugaccess (switches_s1_translator_avalon_universal_slave_0_agent_m0_debugaccess), // .debugaccess + .m0_lock (switches_s1_translator_avalon_universal_slave_0_agent_m0_lock), // .lock + .m0_readdata (switches_s1_translator_avalon_universal_slave_0_agent_m0_readdata), // .readdata + .m0_readdatavalid (switches_s1_translator_avalon_universal_slave_0_agent_m0_readdatavalid), // .readdatavalid + .m0_read (switches_s1_translator_avalon_universal_slave_0_agent_m0_read), // .read + .m0_waitrequest (switches_s1_translator_avalon_universal_slave_0_agent_m0_waitrequest), // .waitrequest + .m0_writedata (switches_s1_translator_avalon_universal_slave_0_agent_m0_writedata), // .writedata + .m0_write (switches_s1_translator_avalon_universal_slave_0_agent_m0_write), // .write + .rp_endofpacket (switches_s1_translator_avalon_universal_slave_0_agent_rp_endofpacket), // rp.endofpacket + .rp_ready (switches_s1_translator_avalon_universal_slave_0_agent_rp_ready), // .ready + .rp_valid (switches_s1_translator_avalon_universal_slave_0_agent_rp_valid), // .valid + .rp_data (switches_s1_translator_avalon_universal_slave_0_agent_rp_data), // .data + .rp_startofpacket (switches_s1_translator_avalon_universal_slave_0_agent_rp_startofpacket), // .startofpacket + .cp_ready (cmd_xbar_demux_001_src5_ready), // cp.ready + .cp_valid (cmd_xbar_demux_001_src5_valid), // .valid + .cp_data (cmd_xbar_demux_001_src5_data), // .data + .cp_startofpacket (cmd_xbar_demux_001_src5_startofpacket), // .startofpacket + .cp_endofpacket (cmd_xbar_demux_001_src5_endofpacket), // .endofpacket + .cp_channel (cmd_xbar_demux_001_src5_channel), // .channel + .rf_sink_ready (switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_ready), // rf_sink.ready + .rf_sink_valid (switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_valid), // .valid + .rf_sink_startofpacket (switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_startofpacket), // .startofpacket + .rf_sink_endofpacket (switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_endofpacket), // .endofpacket + .rf_sink_data (switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_data), // .data + .rf_source_ready (switches_s1_translator_avalon_universal_slave_0_agent_rf_source_ready), // rf_source.ready + .rf_source_valid (switches_s1_translator_avalon_universal_slave_0_agent_rf_source_valid), // .valid + .rf_source_startofpacket (switches_s1_translator_avalon_universal_slave_0_agent_rf_source_startofpacket), // .startofpacket + .rf_source_endofpacket (switches_s1_translator_avalon_universal_slave_0_agent_rf_source_endofpacket), // .endofpacket + .rf_source_data (switches_s1_translator_avalon_universal_slave_0_agent_rf_source_data), // .data + .rdata_fifo_sink_ready (switches_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_ready), // rdata_fifo_sink.ready + .rdata_fifo_sink_valid (switches_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_valid), // .valid + .rdata_fifo_sink_data (switches_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_data), // .data + .rdata_fifo_src_ready (switches_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_ready), // rdata_fifo_src.ready + .rdata_fifo_src_valid (switches_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_valid), // .valid + .rdata_fifo_src_data (switches_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_data), // .data + .m0_response (2'b00), // (terminated) + .m0_writeresponserequest (), // (terminated) + .m0_writeresponsevalid (1'b0) // (terminated) + ); + + altera_avalon_sc_fifo #( + .SYMBOLS_PER_BEAT (1), + .BITS_PER_SYMBOL (97), + .FIFO_DEPTH (2), + .CHANNEL_WIDTH (0), + .ERROR_WIDTH (0), + .USE_PACKETS (1), + .USE_FILL_LEVEL (0), + .EMPTY_LATENCY (1), + .USE_MEMORY_BLOCKS (0), + .USE_STORE_FORWARD (0), + .USE_ALMOST_FULL_IF (0), + .USE_ALMOST_EMPTY_IF (0) + ) switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .in_data (switches_s1_translator_avalon_universal_slave_0_agent_rf_source_data), // in.data + .in_valid (switches_s1_translator_avalon_universal_slave_0_agent_rf_source_valid), // .valid + .in_ready (switches_s1_translator_avalon_universal_slave_0_agent_rf_source_ready), // .ready + .in_startofpacket (switches_s1_translator_avalon_universal_slave_0_agent_rf_source_startofpacket), // .startofpacket + .in_endofpacket (switches_s1_translator_avalon_universal_slave_0_agent_rf_source_endofpacket), // .endofpacket + .out_data (switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_data), // out.data + .out_valid (switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_valid), // .valid + .out_ready (switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_ready), // .ready + .out_startofpacket (switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_startofpacket), // .startofpacket + .out_endofpacket (switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_endofpacket), // .endofpacket + .csr_address (2'b00), // (terminated) + .csr_read (1'b0), // (terminated) + .csr_write (1'b0), // (terminated) + .csr_readdata (), // (terminated) + .csr_writedata (32'b00000000000000000000000000000000), // (terminated) + .almost_full_data (), // (terminated) + .almost_empty_data (), // (terminated) + .in_empty (1'b0), // (terminated) + .out_empty (), // (terminated) + .in_error (1'b0), // (terminated) + .out_error (), // (terminated) + .in_channel (1'b0), // (terminated) + .out_channel () // (terminated) + ); + + altera_merlin_slave_agent #( + .PKT_DATA_H (31), + .PKT_DATA_L (0), + .PKT_BEGIN_BURST (74), + .PKT_SYMBOL_W (8), + .PKT_BYTEEN_H (35), + .PKT_BYTEEN_L (32), + .PKT_ADDR_H (54), + .PKT_ADDR_L (36), + .PKT_TRANS_COMPRESSED_READ (55), + .PKT_TRANS_POSTED (56), + .PKT_TRANS_WRITE (57), + .PKT_TRANS_READ (58), + .PKT_TRANS_LOCK (59), + .PKT_SRC_ID_H (80), + .PKT_SRC_ID_L (76), + .PKT_DEST_ID_H (85), + .PKT_DEST_ID_L (81), + .PKT_BURSTWRAP_H (66), + .PKT_BURSTWRAP_L (64), + .PKT_BYTE_CNT_H (63), + .PKT_BYTE_CNT_L (61), + .PKT_PROTECTION_H (89), + .PKT_PROTECTION_L (87), + .PKT_RESPONSE_STATUS_H (95), + .PKT_RESPONSE_STATUS_L (94), + .PKT_BURST_SIZE_H (69), + .PKT_BURST_SIZE_L (67), + .ST_CHANNEL_W (18), + .ST_DATA_W (96), + .AVS_BURSTCOUNT_W (3), + .SUPPRESS_0_BYTEEN_CMD (0), + .PREVENT_FIFO_OVERFLOW (1), + .USE_READRESPONSE (0), + .USE_WRITERESPONSE (0) + ) push_switches_s1_translator_avalon_universal_slave_0_agent ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .m0_address (push_switches_s1_translator_avalon_universal_slave_0_agent_m0_address), // m0.address + .m0_burstcount (push_switches_s1_translator_avalon_universal_slave_0_agent_m0_burstcount), // .burstcount + .m0_byteenable (push_switches_s1_translator_avalon_universal_slave_0_agent_m0_byteenable), // .byteenable + .m0_debugaccess (push_switches_s1_translator_avalon_universal_slave_0_agent_m0_debugaccess), // .debugaccess + .m0_lock (push_switches_s1_translator_avalon_universal_slave_0_agent_m0_lock), // .lock + .m0_readdata (push_switches_s1_translator_avalon_universal_slave_0_agent_m0_readdata), // .readdata + .m0_readdatavalid (push_switches_s1_translator_avalon_universal_slave_0_agent_m0_readdatavalid), // .readdatavalid + .m0_read (push_switches_s1_translator_avalon_universal_slave_0_agent_m0_read), // .read + .m0_waitrequest (push_switches_s1_translator_avalon_universal_slave_0_agent_m0_waitrequest), // .waitrequest + .m0_writedata (push_switches_s1_translator_avalon_universal_slave_0_agent_m0_writedata), // .writedata + .m0_write (push_switches_s1_translator_avalon_universal_slave_0_agent_m0_write), // .write + .rp_endofpacket (push_switches_s1_translator_avalon_universal_slave_0_agent_rp_endofpacket), // rp.endofpacket + .rp_ready (push_switches_s1_translator_avalon_universal_slave_0_agent_rp_ready), // .ready + .rp_valid (push_switches_s1_translator_avalon_universal_slave_0_agent_rp_valid), // .valid + .rp_data (push_switches_s1_translator_avalon_universal_slave_0_agent_rp_data), // .data + .rp_startofpacket (push_switches_s1_translator_avalon_universal_slave_0_agent_rp_startofpacket), // .startofpacket + .cp_ready (cmd_xbar_demux_001_src6_ready), // cp.ready + .cp_valid (cmd_xbar_demux_001_src6_valid), // .valid + .cp_data (cmd_xbar_demux_001_src6_data), // .data + .cp_startofpacket (cmd_xbar_demux_001_src6_startofpacket), // .startofpacket + .cp_endofpacket (cmd_xbar_demux_001_src6_endofpacket), // .endofpacket + .cp_channel (cmd_xbar_demux_001_src6_channel), // .channel + .rf_sink_ready (push_switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_ready), // rf_sink.ready + .rf_sink_valid (push_switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_valid), // .valid + .rf_sink_startofpacket (push_switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_startofpacket), // .startofpacket + .rf_sink_endofpacket (push_switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_endofpacket), // .endofpacket + .rf_sink_data (push_switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_data), // .data + .rf_source_ready (push_switches_s1_translator_avalon_universal_slave_0_agent_rf_source_ready), // rf_source.ready + .rf_source_valid (push_switches_s1_translator_avalon_universal_slave_0_agent_rf_source_valid), // .valid + .rf_source_startofpacket (push_switches_s1_translator_avalon_universal_slave_0_agent_rf_source_startofpacket), // .startofpacket + .rf_source_endofpacket (push_switches_s1_translator_avalon_universal_slave_0_agent_rf_source_endofpacket), // .endofpacket + .rf_source_data (push_switches_s1_translator_avalon_universal_slave_0_agent_rf_source_data), // .data + .rdata_fifo_sink_ready (push_switches_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_ready), // rdata_fifo_sink.ready + .rdata_fifo_sink_valid (push_switches_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_valid), // .valid + .rdata_fifo_sink_data (push_switches_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_data), // .data + .rdata_fifo_src_ready (push_switches_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_ready), // rdata_fifo_src.ready + .rdata_fifo_src_valid (push_switches_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_valid), // .valid + .rdata_fifo_src_data (push_switches_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_data), // .data + .m0_response (2'b00), // (terminated) + .m0_writeresponserequest (), // (terminated) + .m0_writeresponsevalid (1'b0) // (terminated) + ); + + altera_avalon_sc_fifo #( + .SYMBOLS_PER_BEAT (1), + .BITS_PER_SYMBOL (97), + .FIFO_DEPTH (2), + .CHANNEL_WIDTH (0), + .ERROR_WIDTH (0), + .USE_PACKETS (1), + .USE_FILL_LEVEL (0), + .EMPTY_LATENCY (1), + .USE_MEMORY_BLOCKS (0), + .USE_STORE_FORWARD (0), + .USE_ALMOST_FULL_IF (0), + .USE_ALMOST_EMPTY_IF (0) + ) push_switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .in_data (push_switches_s1_translator_avalon_universal_slave_0_agent_rf_source_data), // in.data + .in_valid (push_switches_s1_translator_avalon_universal_slave_0_agent_rf_source_valid), // .valid + .in_ready (push_switches_s1_translator_avalon_universal_slave_0_agent_rf_source_ready), // .ready + .in_startofpacket (push_switches_s1_translator_avalon_universal_slave_0_agent_rf_source_startofpacket), // .startofpacket + .in_endofpacket (push_switches_s1_translator_avalon_universal_slave_0_agent_rf_source_endofpacket), // .endofpacket + .out_data (push_switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_data), // out.data + .out_valid (push_switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_valid), // .valid + .out_ready (push_switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_ready), // .ready + .out_startofpacket (push_switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_startofpacket), // .startofpacket + .out_endofpacket (push_switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_endofpacket), // .endofpacket + .csr_address (2'b00), // (terminated) + .csr_read (1'b0), // (terminated) + .csr_write (1'b0), // (terminated) + .csr_readdata (), // (terminated) + .csr_writedata (32'b00000000000000000000000000000000), // (terminated) + .almost_full_data (), // (terminated) + .almost_empty_data (), // (terminated) + .in_empty (1'b0), // (terminated) + .out_empty (), // (terminated) + .in_error (1'b0), // (terminated) + .out_error (), // (terminated) + .in_channel (1'b0), // (terminated) + .out_channel () // (terminated) + ); + + altera_merlin_slave_agent #( + .PKT_DATA_H (31), + .PKT_DATA_L (0), + .PKT_BEGIN_BURST (74), + .PKT_SYMBOL_W (8), + .PKT_BYTEEN_H (35), + .PKT_BYTEEN_L (32), + .PKT_ADDR_H (54), + .PKT_ADDR_L (36), + .PKT_TRANS_COMPRESSED_READ (55), + .PKT_TRANS_POSTED (56), + .PKT_TRANS_WRITE (57), + .PKT_TRANS_READ (58), + .PKT_TRANS_LOCK (59), + .PKT_SRC_ID_H (80), + .PKT_SRC_ID_L (76), + .PKT_DEST_ID_H (85), + .PKT_DEST_ID_L (81), + .PKT_BURSTWRAP_H (66), + .PKT_BURSTWRAP_L (64), + .PKT_BYTE_CNT_H (63), + .PKT_BYTE_CNT_L (61), + .PKT_PROTECTION_H (89), + .PKT_PROTECTION_L (87), + .PKT_RESPONSE_STATUS_H (95), + .PKT_RESPONSE_STATUS_L (94), + .PKT_BURST_SIZE_H (69), + .PKT_BURST_SIZE_L (67), + .ST_CHANNEL_W (18), + .ST_DATA_W (96), + .AVS_BURSTCOUNT_W (3), + .SUPPRESS_0_BYTEEN_CMD (0), + .PREVENT_FIFO_OVERFLOW (1), + .USE_READRESPONSE (0), + .USE_WRITERESPONSE (0) + ) hex0_s1_translator_avalon_universal_slave_0_agent ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .m0_address (hex0_s1_translator_avalon_universal_slave_0_agent_m0_address), // m0.address + .m0_burstcount (hex0_s1_translator_avalon_universal_slave_0_agent_m0_burstcount), // .burstcount + .m0_byteenable (hex0_s1_translator_avalon_universal_slave_0_agent_m0_byteenable), // .byteenable + .m0_debugaccess (hex0_s1_translator_avalon_universal_slave_0_agent_m0_debugaccess), // .debugaccess + .m0_lock (hex0_s1_translator_avalon_universal_slave_0_agent_m0_lock), // .lock + .m0_readdata (hex0_s1_translator_avalon_universal_slave_0_agent_m0_readdata), // .readdata + .m0_readdatavalid (hex0_s1_translator_avalon_universal_slave_0_agent_m0_readdatavalid), // .readdatavalid + .m0_read (hex0_s1_translator_avalon_universal_slave_0_agent_m0_read), // .read + .m0_waitrequest (hex0_s1_translator_avalon_universal_slave_0_agent_m0_waitrequest), // .waitrequest + .m0_writedata (hex0_s1_translator_avalon_universal_slave_0_agent_m0_writedata), // .writedata + .m0_write (hex0_s1_translator_avalon_universal_slave_0_agent_m0_write), // .write + .rp_endofpacket (hex0_s1_translator_avalon_universal_slave_0_agent_rp_endofpacket), // rp.endofpacket + .rp_ready (hex0_s1_translator_avalon_universal_slave_0_agent_rp_ready), // .ready + .rp_valid (hex0_s1_translator_avalon_universal_slave_0_agent_rp_valid), // .valid + .rp_data (hex0_s1_translator_avalon_universal_slave_0_agent_rp_data), // .data + .rp_startofpacket (hex0_s1_translator_avalon_universal_slave_0_agent_rp_startofpacket), // .startofpacket + .cp_ready (cmd_xbar_demux_001_src7_ready), // cp.ready + .cp_valid (cmd_xbar_demux_001_src7_valid), // .valid + .cp_data (cmd_xbar_demux_001_src7_data), // .data + .cp_startofpacket (cmd_xbar_demux_001_src7_startofpacket), // .startofpacket + .cp_endofpacket (cmd_xbar_demux_001_src7_endofpacket), // .endofpacket + .cp_channel (cmd_xbar_demux_001_src7_channel), // .channel + .rf_sink_ready (hex0_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_ready), // rf_sink.ready + .rf_sink_valid (hex0_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_valid), // .valid + .rf_sink_startofpacket (hex0_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_startofpacket), // .startofpacket + .rf_sink_endofpacket (hex0_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_endofpacket), // .endofpacket + .rf_sink_data (hex0_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_data), // .data + .rf_source_ready (hex0_s1_translator_avalon_universal_slave_0_agent_rf_source_ready), // rf_source.ready + .rf_source_valid (hex0_s1_translator_avalon_universal_slave_0_agent_rf_source_valid), // .valid + .rf_source_startofpacket (hex0_s1_translator_avalon_universal_slave_0_agent_rf_source_startofpacket), // .startofpacket + .rf_source_endofpacket (hex0_s1_translator_avalon_universal_slave_0_agent_rf_source_endofpacket), // .endofpacket + .rf_source_data (hex0_s1_translator_avalon_universal_slave_0_agent_rf_source_data), // .data + .rdata_fifo_sink_ready (hex0_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_ready), // rdata_fifo_sink.ready + .rdata_fifo_sink_valid (hex0_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_valid), // .valid + .rdata_fifo_sink_data (hex0_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_data), // .data + .rdata_fifo_src_ready (hex0_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_ready), // rdata_fifo_src.ready + .rdata_fifo_src_valid (hex0_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_valid), // .valid + .rdata_fifo_src_data (hex0_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_data), // .data + .m0_response (2'b00), // (terminated) + .m0_writeresponserequest (), // (terminated) + .m0_writeresponsevalid (1'b0) // (terminated) + ); + + altera_avalon_sc_fifo #( + .SYMBOLS_PER_BEAT (1), + .BITS_PER_SYMBOL (97), + .FIFO_DEPTH (2), + .CHANNEL_WIDTH (0), + .ERROR_WIDTH (0), + .USE_PACKETS (1), + .USE_FILL_LEVEL (0), + .EMPTY_LATENCY (1), + .USE_MEMORY_BLOCKS (0), + .USE_STORE_FORWARD (0), + .USE_ALMOST_FULL_IF (0), + .USE_ALMOST_EMPTY_IF (0) + ) hex0_s1_translator_avalon_universal_slave_0_agent_rsp_fifo ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .in_data (hex0_s1_translator_avalon_universal_slave_0_agent_rf_source_data), // in.data + .in_valid (hex0_s1_translator_avalon_universal_slave_0_agent_rf_source_valid), // .valid + .in_ready (hex0_s1_translator_avalon_universal_slave_0_agent_rf_source_ready), // .ready + .in_startofpacket (hex0_s1_translator_avalon_universal_slave_0_agent_rf_source_startofpacket), // .startofpacket + .in_endofpacket (hex0_s1_translator_avalon_universal_slave_0_agent_rf_source_endofpacket), // .endofpacket + .out_data (hex0_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_data), // out.data + .out_valid (hex0_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_valid), // .valid + .out_ready (hex0_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_ready), // .ready + .out_startofpacket (hex0_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_startofpacket), // .startofpacket + .out_endofpacket (hex0_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_endofpacket), // .endofpacket + .csr_address (2'b00), // (terminated) + .csr_read (1'b0), // (terminated) + .csr_write (1'b0), // (terminated) + .csr_readdata (), // (terminated) + .csr_writedata (32'b00000000000000000000000000000000), // (terminated) + .almost_full_data (), // (terminated) + .almost_empty_data (), // (terminated) + .in_empty (1'b0), // (terminated) + .out_empty (), // (terminated) + .in_error (1'b0), // (terminated) + .out_error (), // (terminated) + .in_channel (1'b0), // (terminated) + .out_channel () // (terminated) + ); + + altera_merlin_slave_agent #( + .PKT_DATA_H (31), + .PKT_DATA_L (0), + .PKT_BEGIN_BURST (74), + .PKT_SYMBOL_W (8), + .PKT_BYTEEN_H (35), + .PKT_BYTEEN_L (32), + .PKT_ADDR_H (54), + .PKT_ADDR_L (36), + .PKT_TRANS_COMPRESSED_READ (55), + .PKT_TRANS_POSTED (56), + .PKT_TRANS_WRITE (57), + .PKT_TRANS_READ (58), + .PKT_TRANS_LOCK (59), + .PKT_SRC_ID_H (80), + .PKT_SRC_ID_L (76), + .PKT_DEST_ID_H (85), + .PKT_DEST_ID_L (81), + .PKT_BURSTWRAP_H (66), + .PKT_BURSTWRAP_L (64), + .PKT_BYTE_CNT_H (63), + .PKT_BYTE_CNT_L (61), + .PKT_PROTECTION_H (89), + .PKT_PROTECTION_L (87), + .PKT_RESPONSE_STATUS_H (95), + .PKT_RESPONSE_STATUS_L (94), + .PKT_BURST_SIZE_H (69), + .PKT_BURST_SIZE_L (67), + .ST_CHANNEL_W (18), + .ST_DATA_W (96), + .AVS_BURSTCOUNT_W (3), + .SUPPRESS_0_BYTEEN_CMD (0), + .PREVENT_FIFO_OVERFLOW (1), + .USE_READRESPONSE (0), + .USE_WRITERESPONSE (0) + ) hex1_s1_translator_avalon_universal_slave_0_agent ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .m0_address (hex1_s1_translator_avalon_universal_slave_0_agent_m0_address), // m0.address + .m0_burstcount (hex1_s1_translator_avalon_universal_slave_0_agent_m0_burstcount), // .burstcount + .m0_byteenable (hex1_s1_translator_avalon_universal_slave_0_agent_m0_byteenable), // .byteenable + .m0_debugaccess (hex1_s1_translator_avalon_universal_slave_0_agent_m0_debugaccess), // .debugaccess + .m0_lock (hex1_s1_translator_avalon_universal_slave_0_agent_m0_lock), // .lock + .m0_readdata (hex1_s1_translator_avalon_universal_slave_0_agent_m0_readdata), // .readdata + .m0_readdatavalid (hex1_s1_translator_avalon_universal_slave_0_agent_m0_readdatavalid), // .readdatavalid + .m0_read (hex1_s1_translator_avalon_universal_slave_0_agent_m0_read), // .read + .m0_waitrequest (hex1_s1_translator_avalon_universal_slave_0_agent_m0_waitrequest), // .waitrequest + .m0_writedata (hex1_s1_translator_avalon_universal_slave_0_agent_m0_writedata), // .writedata + .m0_write (hex1_s1_translator_avalon_universal_slave_0_agent_m0_write), // .write + .rp_endofpacket (hex1_s1_translator_avalon_universal_slave_0_agent_rp_endofpacket), // rp.endofpacket + .rp_ready (hex1_s1_translator_avalon_universal_slave_0_agent_rp_ready), // .ready + .rp_valid (hex1_s1_translator_avalon_universal_slave_0_agent_rp_valid), // .valid + .rp_data (hex1_s1_translator_avalon_universal_slave_0_agent_rp_data), // .data + .rp_startofpacket (hex1_s1_translator_avalon_universal_slave_0_agent_rp_startofpacket), // .startofpacket + .cp_ready (cmd_xbar_demux_001_src8_ready), // cp.ready + .cp_valid (cmd_xbar_demux_001_src8_valid), // .valid + .cp_data (cmd_xbar_demux_001_src8_data), // .data + .cp_startofpacket (cmd_xbar_demux_001_src8_startofpacket), // .startofpacket + .cp_endofpacket (cmd_xbar_demux_001_src8_endofpacket), // .endofpacket + .cp_channel (cmd_xbar_demux_001_src8_channel), // .channel + .rf_sink_ready (hex1_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_ready), // rf_sink.ready + .rf_sink_valid (hex1_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_valid), // .valid + .rf_sink_startofpacket (hex1_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_startofpacket), // .startofpacket + .rf_sink_endofpacket (hex1_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_endofpacket), // .endofpacket + .rf_sink_data (hex1_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_data), // .data + .rf_source_ready (hex1_s1_translator_avalon_universal_slave_0_agent_rf_source_ready), // rf_source.ready + .rf_source_valid (hex1_s1_translator_avalon_universal_slave_0_agent_rf_source_valid), // .valid + .rf_source_startofpacket (hex1_s1_translator_avalon_universal_slave_0_agent_rf_source_startofpacket), // .startofpacket + .rf_source_endofpacket (hex1_s1_translator_avalon_universal_slave_0_agent_rf_source_endofpacket), // .endofpacket + .rf_source_data (hex1_s1_translator_avalon_universal_slave_0_agent_rf_source_data), // .data + .rdata_fifo_sink_ready (hex1_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_ready), // rdata_fifo_sink.ready + .rdata_fifo_sink_valid (hex1_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_valid), // .valid + .rdata_fifo_sink_data (hex1_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_data), // .data + .rdata_fifo_src_ready (hex1_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_ready), // rdata_fifo_src.ready + .rdata_fifo_src_valid (hex1_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_valid), // .valid + .rdata_fifo_src_data (hex1_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_data), // .data + .m0_response (2'b00), // (terminated) + .m0_writeresponserequest (), // (terminated) + .m0_writeresponsevalid (1'b0) // (terminated) + ); + + altera_avalon_sc_fifo #( + .SYMBOLS_PER_BEAT (1), + .BITS_PER_SYMBOL (97), + .FIFO_DEPTH (2), + .CHANNEL_WIDTH (0), + .ERROR_WIDTH (0), + .USE_PACKETS (1), + .USE_FILL_LEVEL (0), + .EMPTY_LATENCY (1), + .USE_MEMORY_BLOCKS (0), + .USE_STORE_FORWARD (0), + .USE_ALMOST_FULL_IF (0), + .USE_ALMOST_EMPTY_IF (0) + ) hex1_s1_translator_avalon_universal_slave_0_agent_rsp_fifo ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .in_data (hex1_s1_translator_avalon_universal_slave_0_agent_rf_source_data), // in.data + .in_valid (hex1_s1_translator_avalon_universal_slave_0_agent_rf_source_valid), // .valid + .in_ready (hex1_s1_translator_avalon_universal_slave_0_agent_rf_source_ready), // .ready + .in_startofpacket (hex1_s1_translator_avalon_universal_slave_0_agent_rf_source_startofpacket), // .startofpacket + .in_endofpacket (hex1_s1_translator_avalon_universal_slave_0_agent_rf_source_endofpacket), // .endofpacket + .out_data (hex1_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_data), // out.data + .out_valid (hex1_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_valid), // .valid + .out_ready (hex1_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_ready), // .ready + .out_startofpacket (hex1_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_startofpacket), // .startofpacket + .out_endofpacket (hex1_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_endofpacket), // .endofpacket + .csr_address (2'b00), // (terminated) + .csr_read (1'b0), // (terminated) + .csr_write (1'b0), // (terminated) + .csr_readdata (), // (terminated) + .csr_writedata (32'b00000000000000000000000000000000), // (terminated) + .almost_full_data (), // (terminated) + .almost_empty_data (), // (terminated) + .in_empty (1'b0), // (terminated) + .out_empty (), // (terminated) + .in_error (1'b0), // (terminated) + .out_error (), // (terminated) + .in_channel (1'b0), // (terminated) + .out_channel () // (terminated) + ); + + altera_merlin_slave_agent #( + .PKT_DATA_H (31), + .PKT_DATA_L (0), + .PKT_BEGIN_BURST (74), + .PKT_SYMBOL_W (8), + .PKT_BYTEEN_H (35), + .PKT_BYTEEN_L (32), + .PKT_ADDR_H (54), + .PKT_ADDR_L (36), + .PKT_TRANS_COMPRESSED_READ (55), + .PKT_TRANS_POSTED (56), + .PKT_TRANS_WRITE (57), + .PKT_TRANS_READ (58), + .PKT_TRANS_LOCK (59), + .PKT_SRC_ID_H (80), + .PKT_SRC_ID_L (76), + .PKT_DEST_ID_H (85), + .PKT_DEST_ID_L (81), + .PKT_BURSTWRAP_H (66), + .PKT_BURSTWRAP_L (64), + .PKT_BYTE_CNT_H (63), + .PKT_BYTE_CNT_L (61), + .PKT_PROTECTION_H (89), + .PKT_PROTECTION_L (87), + .PKT_RESPONSE_STATUS_H (95), + .PKT_RESPONSE_STATUS_L (94), + .PKT_BURST_SIZE_H (69), + .PKT_BURST_SIZE_L (67), + .ST_CHANNEL_W (18), + .ST_DATA_W (96), + .AVS_BURSTCOUNT_W (3), + .SUPPRESS_0_BYTEEN_CMD (0), + .PREVENT_FIFO_OVERFLOW (1), + .USE_READRESPONSE (0), + .USE_WRITERESPONSE (0) + ) hex2_s1_translator_avalon_universal_slave_0_agent ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .m0_address (hex2_s1_translator_avalon_universal_slave_0_agent_m0_address), // m0.address + .m0_burstcount (hex2_s1_translator_avalon_universal_slave_0_agent_m0_burstcount), // .burstcount + .m0_byteenable (hex2_s1_translator_avalon_universal_slave_0_agent_m0_byteenable), // .byteenable + .m0_debugaccess (hex2_s1_translator_avalon_universal_slave_0_agent_m0_debugaccess), // .debugaccess + .m0_lock (hex2_s1_translator_avalon_universal_slave_0_agent_m0_lock), // .lock + .m0_readdata (hex2_s1_translator_avalon_universal_slave_0_agent_m0_readdata), // .readdata + .m0_readdatavalid (hex2_s1_translator_avalon_universal_slave_0_agent_m0_readdatavalid), // .readdatavalid + .m0_read (hex2_s1_translator_avalon_universal_slave_0_agent_m0_read), // .read + .m0_waitrequest (hex2_s1_translator_avalon_universal_slave_0_agent_m0_waitrequest), // .waitrequest + .m0_writedata (hex2_s1_translator_avalon_universal_slave_0_agent_m0_writedata), // .writedata + .m0_write (hex2_s1_translator_avalon_universal_slave_0_agent_m0_write), // .write + .rp_endofpacket (hex2_s1_translator_avalon_universal_slave_0_agent_rp_endofpacket), // rp.endofpacket + .rp_ready (hex2_s1_translator_avalon_universal_slave_0_agent_rp_ready), // .ready + .rp_valid (hex2_s1_translator_avalon_universal_slave_0_agent_rp_valid), // .valid + .rp_data (hex2_s1_translator_avalon_universal_slave_0_agent_rp_data), // .data + .rp_startofpacket (hex2_s1_translator_avalon_universal_slave_0_agent_rp_startofpacket), // .startofpacket + .cp_ready (cmd_xbar_demux_001_src9_ready), // cp.ready + .cp_valid (cmd_xbar_demux_001_src9_valid), // .valid + .cp_data (cmd_xbar_demux_001_src9_data), // .data + .cp_startofpacket (cmd_xbar_demux_001_src9_startofpacket), // .startofpacket + .cp_endofpacket (cmd_xbar_demux_001_src9_endofpacket), // .endofpacket + .cp_channel (cmd_xbar_demux_001_src9_channel), // .channel + .rf_sink_ready (hex2_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_ready), // rf_sink.ready + .rf_sink_valid (hex2_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_valid), // .valid + .rf_sink_startofpacket (hex2_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_startofpacket), // .startofpacket + .rf_sink_endofpacket (hex2_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_endofpacket), // .endofpacket + .rf_sink_data (hex2_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_data), // .data + .rf_source_ready (hex2_s1_translator_avalon_universal_slave_0_agent_rf_source_ready), // rf_source.ready + .rf_source_valid (hex2_s1_translator_avalon_universal_slave_0_agent_rf_source_valid), // .valid + .rf_source_startofpacket (hex2_s1_translator_avalon_universal_slave_0_agent_rf_source_startofpacket), // .startofpacket + .rf_source_endofpacket (hex2_s1_translator_avalon_universal_slave_0_agent_rf_source_endofpacket), // .endofpacket + .rf_source_data (hex2_s1_translator_avalon_universal_slave_0_agent_rf_source_data), // .data + .rdata_fifo_sink_ready (hex2_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_ready), // rdata_fifo_sink.ready + .rdata_fifo_sink_valid (hex2_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_valid), // .valid + .rdata_fifo_sink_data (hex2_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_data), // .data + .rdata_fifo_src_ready (hex2_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_ready), // rdata_fifo_src.ready + .rdata_fifo_src_valid (hex2_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_valid), // .valid + .rdata_fifo_src_data (hex2_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_data), // .data + .m0_response (2'b00), // (terminated) + .m0_writeresponserequest (), // (terminated) + .m0_writeresponsevalid (1'b0) // (terminated) + ); + + altera_avalon_sc_fifo #( + .SYMBOLS_PER_BEAT (1), + .BITS_PER_SYMBOL (97), + .FIFO_DEPTH (2), + .CHANNEL_WIDTH (0), + .ERROR_WIDTH (0), + .USE_PACKETS (1), + .USE_FILL_LEVEL (0), + .EMPTY_LATENCY (1), + .USE_MEMORY_BLOCKS (0), + .USE_STORE_FORWARD (0), + .USE_ALMOST_FULL_IF (0), + .USE_ALMOST_EMPTY_IF (0) + ) hex2_s1_translator_avalon_universal_slave_0_agent_rsp_fifo ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .in_data (hex2_s1_translator_avalon_universal_slave_0_agent_rf_source_data), // in.data + .in_valid (hex2_s1_translator_avalon_universal_slave_0_agent_rf_source_valid), // .valid + .in_ready (hex2_s1_translator_avalon_universal_slave_0_agent_rf_source_ready), // .ready + .in_startofpacket (hex2_s1_translator_avalon_universal_slave_0_agent_rf_source_startofpacket), // .startofpacket + .in_endofpacket (hex2_s1_translator_avalon_universal_slave_0_agent_rf_source_endofpacket), // .endofpacket + .out_data (hex2_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_data), // out.data + .out_valid (hex2_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_valid), // .valid + .out_ready (hex2_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_ready), // .ready + .out_startofpacket (hex2_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_startofpacket), // .startofpacket + .out_endofpacket (hex2_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_endofpacket), // .endofpacket + .csr_address (2'b00), // (terminated) + .csr_read (1'b0), // (terminated) + .csr_write (1'b0), // (terminated) + .csr_readdata (), // (terminated) + .csr_writedata (32'b00000000000000000000000000000000), // (terminated) + .almost_full_data (), // (terminated) + .almost_empty_data (), // (terminated) + .in_empty (1'b0), // (terminated) + .out_empty (), // (terminated) + .in_error (1'b0), // (terminated) + .out_error (), // (terminated) + .in_channel (1'b0), // (terminated) + .out_channel () // (terminated) + ); + + altera_merlin_slave_agent #( + .PKT_DATA_H (31), + .PKT_DATA_L (0), + .PKT_BEGIN_BURST (74), + .PKT_SYMBOL_W (8), + .PKT_BYTEEN_H (35), + .PKT_BYTEEN_L (32), + .PKT_ADDR_H (54), + .PKT_ADDR_L (36), + .PKT_TRANS_COMPRESSED_READ (55), + .PKT_TRANS_POSTED (56), + .PKT_TRANS_WRITE (57), + .PKT_TRANS_READ (58), + .PKT_TRANS_LOCK (59), + .PKT_SRC_ID_H (80), + .PKT_SRC_ID_L (76), + .PKT_DEST_ID_H (85), + .PKT_DEST_ID_L (81), + .PKT_BURSTWRAP_H (66), + .PKT_BURSTWRAP_L (64), + .PKT_BYTE_CNT_H (63), + .PKT_BYTE_CNT_L (61), + .PKT_PROTECTION_H (89), + .PKT_PROTECTION_L (87), + .PKT_RESPONSE_STATUS_H (95), + .PKT_RESPONSE_STATUS_L (94), + .PKT_BURST_SIZE_H (69), + .PKT_BURST_SIZE_L (67), + .ST_CHANNEL_W (18), + .ST_DATA_W (96), + .AVS_BURSTCOUNT_W (3), + .SUPPRESS_0_BYTEEN_CMD (0), + .PREVENT_FIFO_OVERFLOW (1), + .USE_READRESPONSE (0), + .USE_WRITERESPONSE (0) + ) hex3_s1_translator_avalon_universal_slave_0_agent ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .m0_address (hex3_s1_translator_avalon_universal_slave_0_agent_m0_address), // m0.address + .m0_burstcount (hex3_s1_translator_avalon_universal_slave_0_agent_m0_burstcount), // .burstcount + .m0_byteenable (hex3_s1_translator_avalon_universal_slave_0_agent_m0_byteenable), // .byteenable + .m0_debugaccess (hex3_s1_translator_avalon_universal_slave_0_agent_m0_debugaccess), // .debugaccess + .m0_lock (hex3_s1_translator_avalon_universal_slave_0_agent_m0_lock), // .lock + .m0_readdata (hex3_s1_translator_avalon_universal_slave_0_agent_m0_readdata), // .readdata + .m0_readdatavalid (hex3_s1_translator_avalon_universal_slave_0_agent_m0_readdatavalid), // .readdatavalid + .m0_read (hex3_s1_translator_avalon_universal_slave_0_agent_m0_read), // .read + .m0_waitrequest (hex3_s1_translator_avalon_universal_slave_0_agent_m0_waitrequest), // .waitrequest + .m0_writedata (hex3_s1_translator_avalon_universal_slave_0_agent_m0_writedata), // .writedata + .m0_write (hex3_s1_translator_avalon_universal_slave_0_agent_m0_write), // .write + .rp_endofpacket (hex3_s1_translator_avalon_universal_slave_0_agent_rp_endofpacket), // rp.endofpacket + .rp_ready (hex3_s1_translator_avalon_universal_slave_0_agent_rp_ready), // .ready + .rp_valid (hex3_s1_translator_avalon_universal_slave_0_agent_rp_valid), // .valid + .rp_data (hex3_s1_translator_avalon_universal_slave_0_agent_rp_data), // .data + .rp_startofpacket (hex3_s1_translator_avalon_universal_slave_0_agent_rp_startofpacket), // .startofpacket + .cp_ready (cmd_xbar_demux_001_src10_ready), // cp.ready + .cp_valid (cmd_xbar_demux_001_src10_valid), // .valid + .cp_data (cmd_xbar_demux_001_src10_data), // .data + .cp_startofpacket (cmd_xbar_demux_001_src10_startofpacket), // .startofpacket + .cp_endofpacket (cmd_xbar_demux_001_src10_endofpacket), // .endofpacket + .cp_channel (cmd_xbar_demux_001_src10_channel), // .channel + .rf_sink_ready (hex3_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_ready), // rf_sink.ready + .rf_sink_valid (hex3_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_valid), // .valid + .rf_sink_startofpacket (hex3_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_startofpacket), // .startofpacket + .rf_sink_endofpacket (hex3_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_endofpacket), // .endofpacket + .rf_sink_data (hex3_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_data), // .data + .rf_source_ready (hex3_s1_translator_avalon_universal_slave_0_agent_rf_source_ready), // rf_source.ready + .rf_source_valid (hex3_s1_translator_avalon_universal_slave_0_agent_rf_source_valid), // .valid + .rf_source_startofpacket (hex3_s1_translator_avalon_universal_slave_0_agent_rf_source_startofpacket), // .startofpacket + .rf_source_endofpacket (hex3_s1_translator_avalon_universal_slave_0_agent_rf_source_endofpacket), // .endofpacket + .rf_source_data (hex3_s1_translator_avalon_universal_slave_0_agent_rf_source_data), // .data + .rdata_fifo_sink_ready (hex3_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_ready), // rdata_fifo_sink.ready + .rdata_fifo_sink_valid (hex3_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_valid), // .valid + .rdata_fifo_sink_data (hex3_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_data), // .data + .rdata_fifo_src_ready (hex3_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_ready), // rdata_fifo_src.ready + .rdata_fifo_src_valid (hex3_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_valid), // .valid + .rdata_fifo_src_data (hex3_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_data), // .data + .m0_response (2'b00), // (terminated) + .m0_writeresponserequest (), // (terminated) + .m0_writeresponsevalid (1'b0) // (terminated) + ); + + altera_avalon_sc_fifo #( + .SYMBOLS_PER_BEAT (1), + .BITS_PER_SYMBOL (97), + .FIFO_DEPTH (2), + .CHANNEL_WIDTH (0), + .ERROR_WIDTH (0), + .USE_PACKETS (1), + .USE_FILL_LEVEL (0), + .EMPTY_LATENCY (1), + .USE_MEMORY_BLOCKS (0), + .USE_STORE_FORWARD (0), + .USE_ALMOST_FULL_IF (0), + .USE_ALMOST_EMPTY_IF (0) + ) hex3_s1_translator_avalon_universal_slave_0_agent_rsp_fifo ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .in_data (hex3_s1_translator_avalon_universal_slave_0_agent_rf_source_data), // in.data + .in_valid (hex3_s1_translator_avalon_universal_slave_0_agent_rf_source_valid), // .valid + .in_ready (hex3_s1_translator_avalon_universal_slave_0_agent_rf_source_ready), // .ready + .in_startofpacket (hex3_s1_translator_avalon_universal_slave_0_agent_rf_source_startofpacket), // .startofpacket + .in_endofpacket (hex3_s1_translator_avalon_universal_slave_0_agent_rf_source_endofpacket), // .endofpacket + .out_data (hex3_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_data), // out.data + .out_valid (hex3_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_valid), // .valid + .out_ready (hex3_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_ready), // .ready + .out_startofpacket (hex3_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_startofpacket), // .startofpacket + .out_endofpacket (hex3_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_endofpacket), // .endofpacket + .csr_address (2'b00), // (terminated) + .csr_read (1'b0), // (terminated) + .csr_write (1'b0), // (terminated) + .csr_readdata (), // (terminated) + .csr_writedata (32'b00000000000000000000000000000000), // (terminated) + .almost_full_data (), // (terminated) + .almost_empty_data (), // (terminated) + .in_empty (1'b0), // (terminated) + .out_empty (), // (terminated) + .in_error (1'b0), // (terminated) + .out_error (), // (terminated) + .in_channel (1'b0), // (terminated) + .out_channel () // (terminated) + ); + + altera_merlin_slave_agent #( + .PKT_DATA_H (31), + .PKT_DATA_L (0), + .PKT_BEGIN_BURST (74), + .PKT_SYMBOL_W (8), + .PKT_BYTEEN_H (35), + .PKT_BYTEEN_L (32), + .PKT_ADDR_H (54), + .PKT_ADDR_L (36), + .PKT_TRANS_COMPRESSED_READ (55), + .PKT_TRANS_POSTED (56), + .PKT_TRANS_WRITE (57), + .PKT_TRANS_READ (58), + .PKT_TRANS_LOCK (59), + .PKT_SRC_ID_H (80), + .PKT_SRC_ID_L (76), + .PKT_DEST_ID_H (85), + .PKT_DEST_ID_L (81), + .PKT_BURSTWRAP_H (66), + .PKT_BURSTWRAP_L (64), + .PKT_BYTE_CNT_H (63), + .PKT_BYTE_CNT_L (61), + .PKT_PROTECTION_H (89), + .PKT_PROTECTION_L (87), + .PKT_RESPONSE_STATUS_H (95), + .PKT_RESPONSE_STATUS_L (94), + .PKT_BURST_SIZE_H (69), + .PKT_BURST_SIZE_L (67), + .ST_CHANNEL_W (18), + .ST_DATA_W (96), + .AVS_BURSTCOUNT_W (3), + .SUPPRESS_0_BYTEEN_CMD (0), + .PREVENT_FIFO_OVERFLOW (1), + .USE_READRESPONSE (0), + .USE_WRITERESPONSE (0) + ) hex4_s1_translator_avalon_universal_slave_0_agent ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .m0_address (hex4_s1_translator_avalon_universal_slave_0_agent_m0_address), // m0.address + .m0_burstcount (hex4_s1_translator_avalon_universal_slave_0_agent_m0_burstcount), // .burstcount + .m0_byteenable (hex4_s1_translator_avalon_universal_slave_0_agent_m0_byteenable), // .byteenable + .m0_debugaccess (hex4_s1_translator_avalon_universal_slave_0_agent_m0_debugaccess), // .debugaccess + .m0_lock (hex4_s1_translator_avalon_universal_slave_0_agent_m0_lock), // .lock + .m0_readdata (hex4_s1_translator_avalon_universal_slave_0_agent_m0_readdata), // .readdata + .m0_readdatavalid (hex4_s1_translator_avalon_universal_slave_0_agent_m0_readdatavalid), // .readdatavalid + .m0_read (hex4_s1_translator_avalon_universal_slave_0_agent_m0_read), // .read + .m0_waitrequest (hex4_s1_translator_avalon_universal_slave_0_agent_m0_waitrequest), // .waitrequest + .m0_writedata (hex4_s1_translator_avalon_universal_slave_0_agent_m0_writedata), // .writedata + .m0_write (hex4_s1_translator_avalon_universal_slave_0_agent_m0_write), // .write + .rp_endofpacket (hex4_s1_translator_avalon_universal_slave_0_agent_rp_endofpacket), // rp.endofpacket + .rp_ready (hex4_s1_translator_avalon_universal_slave_0_agent_rp_ready), // .ready + .rp_valid (hex4_s1_translator_avalon_universal_slave_0_agent_rp_valid), // .valid + .rp_data (hex4_s1_translator_avalon_universal_slave_0_agent_rp_data), // .data + .rp_startofpacket (hex4_s1_translator_avalon_universal_slave_0_agent_rp_startofpacket), // .startofpacket + .cp_ready (cmd_xbar_demux_001_src11_ready), // cp.ready + .cp_valid (cmd_xbar_demux_001_src11_valid), // .valid + .cp_data (cmd_xbar_demux_001_src11_data), // .data + .cp_startofpacket (cmd_xbar_demux_001_src11_startofpacket), // .startofpacket + .cp_endofpacket (cmd_xbar_demux_001_src11_endofpacket), // .endofpacket + .cp_channel (cmd_xbar_demux_001_src11_channel), // .channel + .rf_sink_ready (hex4_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_ready), // rf_sink.ready + .rf_sink_valid (hex4_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_valid), // .valid + .rf_sink_startofpacket (hex4_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_startofpacket), // .startofpacket + .rf_sink_endofpacket (hex4_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_endofpacket), // .endofpacket + .rf_sink_data (hex4_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_data), // .data + .rf_source_ready (hex4_s1_translator_avalon_universal_slave_0_agent_rf_source_ready), // rf_source.ready + .rf_source_valid (hex4_s1_translator_avalon_universal_slave_0_agent_rf_source_valid), // .valid + .rf_source_startofpacket (hex4_s1_translator_avalon_universal_slave_0_agent_rf_source_startofpacket), // .startofpacket + .rf_source_endofpacket (hex4_s1_translator_avalon_universal_slave_0_agent_rf_source_endofpacket), // .endofpacket + .rf_source_data (hex4_s1_translator_avalon_universal_slave_0_agent_rf_source_data), // .data + .rdata_fifo_sink_ready (hex4_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_ready), // rdata_fifo_sink.ready + .rdata_fifo_sink_valid (hex4_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_valid), // .valid + .rdata_fifo_sink_data (hex4_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_data), // .data + .rdata_fifo_src_ready (hex4_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_ready), // rdata_fifo_src.ready + .rdata_fifo_src_valid (hex4_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_valid), // .valid + .rdata_fifo_src_data (hex4_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_data), // .data + .m0_response (2'b00), // (terminated) + .m0_writeresponserequest (), // (terminated) + .m0_writeresponsevalid (1'b0) // (terminated) + ); + + altera_avalon_sc_fifo #( + .SYMBOLS_PER_BEAT (1), + .BITS_PER_SYMBOL (97), + .FIFO_DEPTH (2), + .CHANNEL_WIDTH (0), + .ERROR_WIDTH (0), + .USE_PACKETS (1), + .USE_FILL_LEVEL (0), + .EMPTY_LATENCY (1), + .USE_MEMORY_BLOCKS (0), + .USE_STORE_FORWARD (0), + .USE_ALMOST_FULL_IF (0), + .USE_ALMOST_EMPTY_IF (0) + ) hex4_s1_translator_avalon_universal_slave_0_agent_rsp_fifo ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .in_data (hex4_s1_translator_avalon_universal_slave_0_agent_rf_source_data), // in.data + .in_valid (hex4_s1_translator_avalon_universal_slave_0_agent_rf_source_valid), // .valid + .in_ready (hex4_s1_translator_avalon_universal_slave_0_agent_rf_source_ready), // .ready + .in_startofpacket (hex4_s1_translator_avalon_universal_slave_0_agent_rf_source_startofpacket), // .startofpacket + .in_endofpacket (hex4_s1_translator_avalon_universal_slave_0_agent_rf_source_endofpacket), // .endofpacket + .out_data (hex4_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_data), // out.data + .out_valid (hex4_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_valid), // .valid + .out_ready (hex4_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_ready), // .ready + .out_startofpacket (hex4_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_startofpacket), // .startofpacket + .out_endofpacket (hex4_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_endofpacket), // .endofpacket + .csr_address (2'b00), // (terminated) + .csr_read (1'b0), // (terminated) + .csr_write (1'b0), // (terminated) + .csr_readdata (), // (terminated) + .csr_writedata (32'b00000000000000000000000000000000), // (terminated) + .almost_full_data (), // (terminated) + .almost_empty_data (), // (terminated) + .in_empty (1'b0), // (terminated) + .out_empty (), // (terminated) + .in_error (1'b0), // (terminated) + .out_error (), // (terminated) + .in_channel (1'b0), // (terminated) + .out_channel () // (terminated) + ); + + altera_merlin_slave_agent #( + .PKT_DATA_H (31), + .PKT_DATA_L (0), + .PKT_BEGIN_BURST (74), + .PKT_SYMBOL_W (8), + .PKT_BYTEEN_H (35), + .PKT_BYTEEN_L (32), + .PKT_ADDR_H (54), + .PKT_ADDR_L (36), + .PKT_TRANS_COMPRESSED_READ (55), + .PKT_TRANS_POSTED (56), + .PKT_TRANS_WRITE (57), + .PKT_TRANS_READ (58), + .PKT_TRANS_LOCK (59), + .PKT_SRC_ID_H (80), + .PKT_SRC_ID_L (76), + .PKT_DEST_ID_H (85), + .PKT_DEST_ID_L (81), + .PKT_BURSTWRAP_H (66), + .PKT_BURSTWRAP_L (64), + .PKT_BYTE_CNT_H (63), + .PKT_BYTE_CNT_L (61), + .PKT_PROTECTION_H (89), + .PKT_PROTECTION_L (87), + .PKT_RESPONSE_STATUS_H (95), + .PKT_RESPONSE_STATUS_L (94), + .PKT_BURST_SIZE_H (69), + .PKT_BURST_SIZE_L (67), + .ST_CHANNEL_W (18), + .ST_DATA_W (96), + .AVS_BURSTCOUNT_W (3), + .SUPPRESS_0_BYTEEN_CMD (0), + .PREVENT_FIFO_OVERFLOW (1), + .USE_READRESPONSE (0), + .USE_WRITERESPONSE (0) + ) hex5_s1_translator_avalon_universal_slave_0_agent ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .m0_address (hex5_s1_translator_avalon_universal_slave_0_agent_m0_address), // m0.address + .m0_burstcount (hex5_s1_translator_avalon_universal_slave_0_agent_m0_burstcount), // .burstcount + .m0_byteenable (hex5_s1_translator_avalon_universal_slave_0_agent_m0_byteenable), // .byteenable + .m0_debugaccess (hex5_s1_translator_avalon_universal_slave_0_agent_m0_debugaccess), // .debugaccess + .m0_lock (hex5_s1_translator_avalon_universal_slave_0_agent_m0_lock), // .lock + .m0_readdata (hex5_s1_translator_avalon_universal_slave_0_agent_m0_readdata), // .readdata + .m0_readdatavalid (hex5_s1_translator_avalon_universal_slave_0_agent_m0_readdatavalid), // .readdatavalid + .m0_read (hex5_s1_translator_avalon_universal_slave_0_agent_m0_read), // .read + .m0_waitrequest (hex5_s1_translator_avalon_universal_slave_0_agent_m0_waitrequest), // .waitrequest + .m0_writedata (hex5_s1_translator_avalon_universal_slave_0_agent_m0_writedata), // .writedata + .m0_write (hex5_s1_translator_avalon_universal_slave_0_agent_m0_write), // .write + .rp_endofpacket (hex5_s1_translator_avalon_universal_slave_0_agent_rp_endofpacket), // rp.endofpacket + .rp_ready (hex5_s1_translator_avalon_universal_slave_0_agent_rp_ready), // .ready + .rp_valid (hex5_s1_translator_avalon_universal_slave_0_agent_rp_valid), // .valid + .rp_data (hex5_s1_translator_avalon_universal_slave_0_agent_rp_data), // .data + .rp_startofpacket (hex5_s1_translator_avalon_universal_slave_0_agent_rp_startofpacket), // .startofpacket + .cp_ready (cmd_xbar_demux_001_src12_ready), // cp.ready + .cp_valid (cmd_xbar_demux_001_src12_valid), // .valid + .cp_data (cmd_xbar_demux_001_src12_data), // .data + .cp_startofpacket (cmd_xbar_demux_001_src12_startofpacket), // .startofpacket + .cp_endofpacket (cmd_xbar_demux_001_src12_endofpacket), // .endofpacket + .cp_channel (cmd_xbar_demux_001_src12_channel), // .channel + .rf_sink_ready (hex5_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_ready), // rf_sink.ready + .rf_sink_valid (hex5_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_valid), // .valid + .rf_sink_startofpacket (hex5_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_startofpacket), // .startofpacket + .rf_sink_endofpacket (hex5_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_endofpacket), // .endofpacket + .rf_sink_data (hex5_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_data), // .data + .rf_source_ready (hex5_s1_translator_avalon_universal_slave_0_agent_rf_source_ready), // rf_source.ready + .rf_source_valid (hex5_s1_translator_avalon_universal_slave_0_agent_rf_source_valid), // .valid + .rf_source_startofpacket (hex5_s1_translator_avalon_universal_slave_0_agent_rf_source_startofpacket), // .startofpacket + .rf_source_endofpacket (hex5_s1_translator_avalon_universal_slave_0_agent_rf_source_endofpacket), // .endofpacket + .rf_source_data (hex5_s1_translator_avalon_universal_slave_0_agent_rf_source_data), // .data + .rdata_fifo_sink_ready (hex5_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_ready), // rdata_fifo_sink.ready + .rdata_fifo_sink_valid (hex5_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_valid), // .valid + .rdata_fifo_sink_data (hex5_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_data), // .data + .rdata_fifo_src_ready (hex5_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_ready), // rdata_fifo_src.ready + .rdata_fifo_src_valid (hex5_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_valid), // .valid + .rdata_fifo_src_data (hex5_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_data), // .data + .m0_response (2'b00), // (terminated) + .m0_writeresponserequest (), // (terminated) + .m0_writeresponsevalid (1'b0) // (terminated) + ); + + altera_avalon_sc_fifo #( + .SYMBOLS_PER_BEAT (1), + .BITS_PER_SYMBOL (97), + .FIFO_DEPTH (2), + .CHANNEL_WIDTH (0), + .ERROR_WIDTH (0), + .USE_PACKETS (1), + .USE_FILL_LEVEL (0), + .EMPTY_LATENCY (1), + .USE_MEMORY_BLOCKS (0), + .USE_STORE_FORWARD (0), + .USE_ALMOST_FULL_IF (0), + .USE_ALMOST_EMPTY_IF (0) + ) hex5_s1_translator_avalon_universal_slave_0_agent_rsp_fifo ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .in_data (hex5_s1_translator_avalon_universal_slave_0_agent_rf_source_data), // in.data + .in_valid (hex5_s1_translator_avalon_universal_slave_0_agent_rf_source_valid), // .valid + .in_ready (hex5_s1_translator_avalon_universal_slave_0_agent_rf_source_ready), // .ready + .in_startofpacket (hex5_s1_translator_avalon_universal_slave_0_agent_rf_source_startofpacket), // .startofpacket + .in_endofpacket (hex5_s1_translator_avalon_universal_slave_0_agent_rf_source_endofpacket), // .endofpacket + .out_data (hex5_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_data), // out.data + .out_valid (hex5_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_valid), // .valid + .out_ready (hex5_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_ready), // .ready + .out_startofpacket (hex5_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_startofpacket), // .startofpacket + .out_endofpacket (hex5_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_endofpacket), // .endofpacket + .csr_address (2'b00), // (terminated) + .csr_read (1'b0), // (terminated) + .csr_write (1'b0), // (terminated) + .csr_readdata (), // (terminated) + .csr_writedata (32'b00000000000000000000000000000000), // (terminated) + .almost_full_data (), // (terminated) + .almost_empty_data (), // (terminated) + .in_empty (1'b0), // (terminated) + .out_empty (), // (terminated) + .in_error (1'b0), // (terminated) + .out_error (), // (terminated) + .in_channel (1'b0), // (terminated) + .out_channel () // (terminated) + ); + + altera_merlin_slave_agent #( + .PKT_DATA_H (31), + .PKT_DATA_L (0), + .PKT_BEGIN_BURST (74), + .PKT_SYMBOL_W (8), + .PKT_BYTEEN_H (35), + .PKT_BYTEEN_L (32), + .PKT_ADDR_H (54), + .PKT_ADDR_L (36), + .PKT_TRANS_COMPRESSED_READ (55), + .PKT_TRANS_POSTED (56), + .PKT_TRANS_WRITE (57), + .PKT_TRANS_READ (58), + .PKT_TRANS_LOCK (59), + .PKT_SRC_ID_H (80), + .PKT_SRC_ID_L (76), + .PKT_DEST_ID_H (85), + .PKT_DEST_ID_L (81), + .PKT_BURSTWRAP_H (66), + .PKT_BURSTWRAP_L (64), + .PKT_BYTE_CNT_H (63), + .PKT_BYTE_CNT_L (61), + .PKT_PROTECTION_H (89), + .PKT_PROTECTION_L (87), + .PKT_RESPONSE_STATUS_H (95), + .PKT_RESPONSE_STATUS_L (94), + .PKT_BURST_SIZE_H (69), + .PKT_BURST_SIZE_L (67), + .ST_CHANNEL_W (18), + .ST_DATA_W (96), + .AVS_BURSTCOUNT_W (3), + .SUPPRESS_0_BYTEEN_CMD (0), + .PREVENT_FIFO_OVERFLOW (1), + .USE_READRESPONSE (0), + .USE_WRITERESPONSE (0) + ) hex6_s1_translator_avalon_universal_slave_0_agent ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .m0_address (hex6_s1_translator_avalon_universal_slave_0_agent_m0_address), // m0.address + .m0_burstcount (hex6_s1_translator_avalon_universal_slave_0_agent_m0_burstcount), // .burstcount + .m0_byteenable (hex6_s1_translator_avalon_universal_slave_0_agent_m0_byteenable), // .byteenable + .m0_debugaccess (hex6_s1_translator_avalon_universal_slave_0_agent_m0_debugaccess), // .debugaccess + .m0_lock (hex6_s1_translator_avalon_universal_slave_0_agent_m0_lock), // .lock + .m0_readdata (hex6_s1_translator_avalon_universal_slave_0_agent_m0_readdata), // .readdata + .m0_readdatavalid (hex6_s1_translator_avalon_universal_slave_0_agent_m0_readdatavalid), // .readdatavalid + .m0_read (hex6_s1_translator_avalon_universal_slave_0_agent_m0_read), // .read + .m0_waitrequest (hex6_s1_translator_avalon_universal_slave_0_agent_m0_waitrequest), // .waitrequest + .m0_writedata (hex6_s1_translator_avalon_universal_slave_0_agent_m0_writedata), // .writedata + .m0_write (hex6_s1_translator_avalon_universal_slave_0_agent_m0_write), // .write + .rp_endofpacket (hex6_s1_translator_avalon_universal_slave_0_agent_rp_endofpacket), // rp.endofpacket + .rp_ready (hex6_s1_translator_avalon_universal_slave_0_agent_rp_ready), // .ready + .rp_valid (hex6_s1_translator_avalon_universal_slave_0_agent_rp_valid), // .valid + .rp_data (hex6_s1_translator_avalon_universal_slave_0_agent_rp_data), // .data + .rp_startofpacket (hex6_s1_translator_avalon_universal_slave_0_agent_rp_startofpacket), // .startofpacket + .cp_ready (cmd_xbar_demux_001_src13_ready), // cp.ready + .cp_valid (cmd_xbar_demux_001_src13_valid), // .valid + .cp_data (cmd_xbar_demux_001_src13_data), // .data + .cp_startofpacket (cmd_xbar_demux_001_src13_startofpacket), // .startofpacket + .cp_endofpacket (cmd_xbar_demux_001_src13_endofpacket), // .endofpacket + .cp_channel (cmd_xbar_demux_001_src13_channel), // .channel + .rf_sink_ready (hex6_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_ready), // rf_sink.ready + .rf_sink_valid (hex6_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_valid), // .valid + .rf_sink_startofpacket (hex6_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_startofpacket), // .startofpacket + .rf_sink_endofpacket (hex6_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_endofpacket), // .endofpacket + .rf_sink_data (hex6_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_data), // .data + .rf_source_ready (hex6_s1_translator_avalon_universal_slave_0_agent_rf_source_ready), // rf_source.ready + .rf_source_valid (hex6_s1_translator_avalon_universal_slave_0_agent_rf_source_valid), // .valid + .rf_source_startofpacket (hex6_s1_translator_avalon_universal_slave_0_agent_rf_source_startofpacket), // .startofpacket + .rf_source_endofpacket (hex6_s1_translator_avalon_universal_slave_0_agent_rf_source_endofpacket), // .endofpacket + .rf_source_data (hex6_s1_translator_avalon_universal_slave_0_agent_rf_source_data), // .data + .rdata_fifo_sink_ready (hex6_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_ready), // rdata_fifo_sink.ready + .rdata_fifo_sink_valid (hex6_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_valid), // .valid + .rdata_fifo_sink_data (hex6_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_data), // .data + .rdata_fifo_src_ready (hex6_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_ready), // rdata_fifo_src.ready + .rdata_fifo_src_valid (hex6_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_valid), // .valid + .rdata_fifo_src_data (hex6_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_data), // .data + .m0_response (2'b00), // (terminated) + .m0_writeresponserequest (), // (terminated) + .m0_writeresponsevalid (1'b0) // (terminated) + ); + + altera_avalon_sc_fifo #( + .SYMBOLS_PER_BEAT (1), + .BITS_PER_SYMBOL (97), + .FIFO_DEPTH (2), + .CHANNEL_WIDTH (0), + .ERROR_WIDTH (0), + .USE_PACKETS (1), + .USE_FILL_LEVEL (0), + .EMPTY_LATENCY (1), + .USE_MEMORY_BLOCKS (0), + .USE_STORE_FORWARD (0), + .USE_ALMOST_FULL_IF (0), + .USE_ALMOST_EMPTY_IF (0) + ) hex6_s1_translator_avalon_universal_slave_0_agent_rsp_fifo ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .in_data (hex6_s1_translator_avalon_universal_slave_0_agent_rf_source_data), // in.data + .in_valid (hex6_s1_translator_avalon_universal_slave_0_agent_rf_source_valid), // .valid + .in_ready (hex6_s1_translator_avalon_universal_slave_0_agent_rf_source_ready), // .ready + .in_startofpacket (hex6_s1_translator_avalon_universal_slave_0_agent_rf_source_startofpacket), // .startofpacket + .in_endofpacket (hex6_s1_translator_avalon_universal_slave_0_agent_rf_source_endofpacket), // .endofpacket + .out_data (hex6_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_data), // out.data + .out_valid (hex6_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_valid), // .valid + .out_ready (hex6_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_ready), // .ready + .out_startofpacket (hex6_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_startofpacket), // .startofpacket + .out_endofpacket (hex6_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_endofpacket), // .endofpacket + .csr_address (2'b00), // (terminated) + .csr_read (1'b0), // (terminated) + .csr_write (1'b0), // (terminated) + .csr_readdata (), // (terminated) + .csr_writedata (32'b00000000000000000000000000000000), // (terminated) + .almost_full_data (), // (terminated) + .almost_empty_data (), // (terminated) + .in_empty (1'b0), // (terminated) + .out_empty (), // (terminated) + .in_error (1'b0), // (terminated) + .out_error (), // (terminated) + .in_channel (1'b0), // (terminated) + .out_channel () // (terminated) + ); + + altera_merlin_slave_agent #( + .PKT_DATA_H (31), + .PKT_DATA_L (0), + .PKT_BEGIN_BURST (74), + .PKT_SYMBOL_W (8), + .PKT_BYTEEN_H (35), + .PKT_BYTEEN_L (32), + .PKT_ADDR_H (54), + .PKT_ADDR_L (36), + .PKT_TRANS_COMPRESSED_READ (55), + .PKT_TRANS_POSTED (56), + .PKT_TRANS_WRITE (57), + .PKT_TRANS_READ (58), + .PKT_TRANS_LOCK (59), + .PKT_SRC_ID_H (80), + .PKT_SRC_ID_L (76), + .PKT_DEST_ID_H (85), + .PKT_DEST_ID_L (81), + .PKT_BURSTWRAP_H (66), + .PKT_BURSTWRAP_L (64), + .PKT_BYTE_CNT_H (63), + .PKT_BYTE_CNT_L (61), + .PKT_PROTECTION_H (89), + .PKT_PROTECTION_L (87), + .PKT_RESPONSE_STATUS_H (95), + .PKT_RESPONSE_STATUS_L (94), + .PKT_BURST_SIZE_H (69), + .PKT_BURST_SIZE_L (67), + .ST_CHANNEL_W (18), + .ST_DATA_W (96), + .AVS_BURSTCOUNT_W (3), + .SUPPRESS_0_BYTEEN_CMD (0), + .PREVENT_FIFO_OVERFLOW (1), + .USE_READRESPONSE (0), + .USE_WRITERESPONSE (0) + ) hex7_s1_translator_avalon_universal_slave_0_agent ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .m0_address (hex7_s1_translator_avalon_universal_slave_0_agent_m0_address), // m0.address + .m0_burstcount (hex7_s1_translator_avalon_universal_slave_0_agent_m0_burstcount), // .burstcount + .m0_byteenable (hex7_s1_translator_avalon_universal_slave_0_agent_m0_byteenable), // .byteenable + .m0_debugaccess (hex7_s1_translator_avalon_universal_slave_0_agent_m0_debugaccess), // .debugaccess + .m0_lock (hex7_s1_translator_avalon_universal_slave_0_agent_m0_lock), // .lock + .m0_readdata (hex7_s1_translator_avalon_universal_slave_0_agent_m0_readdata), // .readdata + .m0_readdatavalid (hex7_s1_translator_avalon_universal_slave_0_agent_m0_readdatavalid), // .readdatavalid + .m0_read (hex7_s1_translator_avalon_universal_slave_0_agent_m0_read), // .read + .m0_waitrequest (hex7_s1_translator_avalon_universal_slave_0_agent_m0_waitrequest), // .waitrequest + .m0_writedata (hex7_s1_translator_avalon_universal_slave_0_agent_m0_writedata), // .writedata + .m0_write (hex7_s1_translator_avalon_universal_slave_0_agent_m0_write), // .write + .rp_endofpacket (hex7_s1_translator_avalon_universal_slave_0_agent_rp_endofpacket), // rp.endofpacket + .rp_ready (hex7_s1_translator_avalon_universal_slave_0_agent_rp_ready), // .ready + .rp_valid (hex7_s1_translator_avalon_universal_slave_0_agent_rp_valid), // .valid + .rp_data (hex7_s1_translator_avalon_universal_slave_0_agent_rp_data), // .data + .rp_startofpacket (hex7_s1_translator_avalon_universal_slave_0_agent_rp_startofpacket), // .startofpacket + .cp_ready (cmd_xbar_demux_001_src14_ready), // cp.ready + .cp_valid (cmd_xbar_demux_001_src14_valid), // .valid + .cp_data (cmd_xbar_demux_001_src14_data), // .data + .cp_startofpacket (cmd_xbar_demux_001_src14_startofpacket), // .startofpacket + .cp_endofpacket (cmd_xbar_demux_001_src14_endofpacket), // .endofpacket + .cp_channel (cmd_xbar_demux_001_src14_channel), // .channel + .rf_sink_ready (hex7_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_ready), // rf_sink.ready + .rf_sink_valid (hex7_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_valid), // .valid + .rf_sink_startofpacket (hex7_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_startofpacket), // .startofpacket + .rf_sink_endofpacket (hex7_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_endofpacket), // .endofpacket + .rf_sink_data (hex7_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_data), // .data + .rf_source_ready (hex7_s1_translator_avalon_universal_slave_0_agent_rf_source_ready), // rf_source.ready + .rf_source_valid (hex7_s1_translator_avalon_universal_slave_0_agent_rf_source_valid), // .valid + .rf_source_startofpacket (hex7_s1_translator_avalon_universal_slave_0_agent_rf_source_startofpacket), // .startofpacket + .rf_source_endofpacket (hex7_s1_translator_avalon_universal_slave_0_agent_rf_source_endofpacket), // .endofpacket + .rf_source_data (hex7_s1_translator_avalon_universal_slave_0_agent_rf_source_data), // .data + .rdata_fifo_sink_ready (hex7_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_ready), // rdata_fifo_sink.ready + .rdata_fifo_sink_valid (hex7_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_valid), // .valid + .rdata_fifo_sink_data (hex7_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_data), // .data + .rdata_fifo_src_ready (hex7_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_ready), // rdata_fifo_src.ready + .rdata_fifo_src_valid (hex7_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_valid), // .valid + .rdata_fifo_src_data (hex7_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_data), // .data + .m0_response (2'b00), // (terminated) + .m0_writeresponserequest (), // (terminated) + .m0_writeresponsevalid (1'b0) // (terminated) + ); + + altera_avalon_sc_fifo #( + .SYMBOLS_PER_BEAT (1), + .BITS_PER_SYMBOL (97), + .FIFO_DEPTH (2), + .CHANNEL_WIDTH (0), + .ERROR_WIDTH (0), + .USE_PACKETS (1), + .USE_FILL_LEVEL (0), + .EMPTY_LATENCY (1), + .USE_MEMORY_BLOCKS (0), + .USE_STORE_FORWARD (0), + .USE_ALMOST_FULL_IF (0), + .USE_ALMOST_EMPTY_IF (0) + ) hex7_s1_translator_avalon_universal_slave_0_agent_rsp_fifo ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .in_data (hex7_s1_translator_avalon_universal_slave_0_agent_rf_source_data), // in.data + .in_valid (hex7_s1_translator_avalon_universal_slave_0_agent_rf_source_valid), // .valid + .in_ready (hex7_s1_translator_avalon_universal_slave_0_agent_rf_source_ready), // .ready + .in_startofpacket (hex7_s1_translator_avalon_universal_slave_0_agent_rf_source_startofpacket), // .startofpacket + .in_endofpacket (hex7_s1_translator_avalon_universal_slave_0_agent_rf_source_endofpacket), // .endofpacket + .out_data (hex7_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_data), // out.data + .out_valid (hex7_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_valid), // .valid + .out_ready (hex7_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_ready), // .ready + .out_startofpacket (hex7_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_startofpacket), // .startofpacket + .out_endofpacket (hex7_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_endofpacket), // .endofpacket + .csr_address (2'b00), // (terminated) + .csr_read (1'b0), // (terminated) + .csr_write (1'b0), // (terminated) + .csr_readdata (), // (terminated) + .csr_writedata (32'b00000000000000000000000000000000), // (terminated) + .almost_full_data (), // (terminated) + .almost_empty_data (), // (terminated) + .in_empty (1'b0), // (terminated) + .out_empty (), // (terminated) + .in_error (1'b0), // (terminated) + .out_error (), // (terminated) + .in_channel (1'b0), // (terminated) + .out_channel () // (terminated) + ); + + altera_merlin_slave_agent #( + .PKT_DATA_H (31), + .PKT_DATA_L (0), + .PKT_BEGIN_BURST (74), + .PKT_SYMBOL_W (8), + .PKT_BYTEEN_H (35), + .PKT_BYTEEN_L (32), + .PKT_ADDR_H (54), + .PKT_ADDR_L (36), + .PKT_TRANS_COMPRESSED_READ (55), + .PKT_TRANS_POSTED (56), + .PKT_TRANS_WRITE (57), + .PKT_TRANS_READ (58), + .PKT_TRANS_LOCK (59), + .PKT_SRC_ID_H (80), + .PKT_SRC_ID_L (76), + .PKT_DEST_ID_H (85), + .PKT_DEST_ID_L (81), + .PKT_BURSTWRAP_H (66), + .PKT_BURSTWRAP_L (64), + .PKT_BYTE_CNT_H (63), + .PKT_BYTE_CNT_L (61), + .PKT_PROTECTION_H (89), + .PKT_PROTECTION_L (87), + .PKT_RESPONSE_STATUS_H (95), + .PKT_RESPONSE_STATUS_L (94), + .PKT_BURST_SIZE_H (69), + .PKT_BURST_SIZE_L (67), + .ST_CHANNEL_W (18), + .ST_DATA_W (96), + .AVS_BURSTCOUNT_W (3), + .SUPPRESS_0_BYTEEN_CMD (0), + .PREVENT_FIFO_OVERFLOW (1), + .USE_READRESPONSE (0), + .USE_WRITERESPONSE (0) + ) lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .m0_address (lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_m0_address), // m0.address + .m0_burstcount (lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_m0_burstcount), // .burstcount + .m0_byteenable (lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_m0_byteenable), // .byteenable + .m0_debugaccess (lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_m0_debugaccess), // .debugaccess + .m0_lock (lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_m0_lock), // .lock + .m0_readdata (lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_m0_readdata), // .readdata + .m0_readdatavalid (lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_m0_readdatavalid), // .readdatavalid + .m0_read (lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_m0_read), // .read + .m0_waitrequest (lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_m0_waitrequest), // .waitrequest + .m0_writedata (lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_m0_writedata), // .writedata + .m0_write (lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_m0_write), // .write + .rp_endofpacket (lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rp_endofpacket), // rp.endofpacket + .rp_ready (lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rp_ready), // .ready + .rp_valid (lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rp_valid), // .valid + .rp_data (lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rp_data), // .data + .rp_startofpacket (lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rp_startofpacket), // .startofpacket + .cp_ready (cmd_xbar_demux_001_src15_ready), // cp.ready + .cp_valid (cmd_xbar_demux_001_src15_valid), // .valid + .cp_data (cmd_xbar_demux_001_src15_data), // .data + .cp_startofpacket (cmd_xbar_demux_001_src15_startofpacket), // .startofpacket + .cp_endofpacket (cmd_xbar_demux_001_src15_endofpacket), // .endofpacket + .cp_channel (cmd_xbar_demux_001_src15_channel), // .channel + .rf_sink_ready (lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rsp_fifo_out_ready), // rf_sink.ready + .rf_sink_valid (lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rsp_fifo_out_valid), // .valid + .rf_sink_startofpacket (lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rsp_fifo_out_startofpacket), // .startofpacket + .rf_sink_endofpacket (lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rsp_fifo_out_endofpacket), // .endofpacket + .rf_sink_data (lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rsp_fifo_out_data), // .data + .rf_source_ready (lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rf_source_ready), // rf_source.ready + .rf_source_valid (lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rf_source_valid), // .valid + .rf_source_startofpacket (lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rf_source_startofpacket), // .startofpacket + .rf_source_endofpacket (lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rf_source_endofpacket), // .endofpacket + .rf_source_data (lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rf_source_data), // .data + .rdata_fifo_sink_ready (lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rdata_fifo_src_ready), // rdata_fifo_sink.ready + .rdata_fifo_sink_valid (lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rdata_fifo_src_valid), // .valid + .rdata_fifo_sink_data (lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rdata_fifo_src_data), // .data + .rdata_fifo_src_ready (lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rdata_fifo_src_ready), // rdata_fifo_src.ready + .rdata_fifo_src_valid (lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rdata_fifo_src_valid), // .valid + .rdata_fifo_src_data (lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rdata_fifo_src_data), // .data + .m0_response (2'b00), // (terminated) + .m0_writeresponserequest (), // (terminated) + .m0_writeresponsevalid (1'b0) // (terminated) + ); + + altera_avalon_sc_fifo #( + .SYMBOLS_PER_BEAT (1), + .BITS_PER_SYMBOL (97), + .FIFO_DEPTH (2), + .CHANNEL_WIDTH (0), + .ERROR_WIDTH (0), + .USE_PACKETS (1), + .USE_FILL_LEVEL (0), + .EMPTY_LATENCY (1), + .USE_MEMORY_BLOCKS (0), + .USE_STORE_FORWARD (0), + .USE_ALMOST_FULL_IF (0), + .USE_ALMOST_EMPTY_IF (0) + ) lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rsp_fifo ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .in_data (lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rf_source_data), // in.data + .in_valid (lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rf_source_valid), // .valid + .in_ready (lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rf_source_ready), // .ready + .in_startofpacket (lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rf_source_startofpacket), // .startofpacket + .in_endofpacket (lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rf_source_endofpacket), // .endofpacket + .out_data (lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rsp_fifo_out_data), // out.data + .out_valid (lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rsp_fifo_out_valid), // .valid + .out_ready (lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rsp_fifo_out_ready), // .ready + .out_startofpacket (lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rsp_fifo_out_startofpacket), // .startofpacket + .out_endofpacket (lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rsp_fifo_out_endofpacket), // .endofpacket + .csr_address (2'b00), // (terminated) + .csr_read (1'b0), // (terminated) + .csr_write (1'b0), // (terminated) + .csr_readdata (), // (terminated) + .csr_writedata (32'b00000000000000000000000000000000), // (terminated) + .almost_full_data (), // (terminated) + .almost_empty_data (), // (terminated) + .in_empty (1'b0), // (terminated) + .out_empty (), // (terminated) + .in_error (1'b0), // (terminated) + .out_error (), // (terminated) + .in_channel (1'b0), // (terminated) + .out_channel () // (terminated) + ); + + altera_merlin_slave_agent #( + .PKT_DATA_H (31), + .PKT_DATA_L (0), + .PKT_BEGIN_BURST (74), + .PKT_SYMBOL_W (8), + .PKT_BYTEEN_H (35), + .PKT_BYTEEN_L (32), + .PKT_ADDR_H (54), + .PKT_ADDR_L (36), + .PKT_TRANS_COMPRESSED_READ (55), + .PKT_TRANS_POSTED (56), + .PKT_TRANS_WRITE (57), + .PKT_TRANS_READ (58), + .PKT_TRANS_LOCK (59), + .PKT_SRC_ID_H (80), + .PKT_SRC_ID_L (76), + .PKT_DEST_ID_H (85), + .PKT_DEST_ID_L (81), + .PKT_BURSTWRAP_H (66), + .PKT_BURSTWRAP_L (64), + .PKT_BYTE_CNT_H (63), + .PKT_BYTE_CNT_L (61), + .PKT_PROTECTION_H (89), + .PKT_PROTECTION_L (87), + .PKT_RESPONSE_STATUS_H (95), + .PKT_RESPONSE_STATUS_L (94), + .PKT_BURST_SIZE_H (69), + .PKT_BURST_SIZE_L (67), + .ST_CHANNEL_W (18), + .ST_DATA_W (96), + .AVS_BURSTCOUNT_W (3), + .SUPPRESS_0_BYTEEN_CMD (0), + .PREVENT_FIFO_OVERFLOW (1), + .USE_READRESPONSE (0), + .USE_WRITERESPONSE (0) + ) lcd_on_s1_translator_avalon_universal_slave_0_agent ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .m0_address (lcd_on_s1_translator_avalon_universal_slave_0_agent_m0_address), // m0.address + .m0_burstcount (lcd_on_s1_translator_avalon_universal_slave_0_agent_m0_burstcount), // .burstcount + .m0_byteenable (lcd_on_s1_translator_avalon_universal_slave_0_agent_m0_byteenable), // .byteenable + .m0_debugaccess (lcd_on_s1_translator_avalon_universal_slave_0_agent_m0_debugaccess), // .debugaccess + .m0_lock (lcd_on_s1_translator_avalon_universal_slave_0_agent_m0_lock), // .lock + .m0_readdata (lcd_on_s1_translator_avalon_universal_slave_0_agent_m0_readdata), // .readdata + .m0_readdatavalid (lcd_on_s1_translator_avalon_universal_slave_0_agent_m0_readdatavalid), // .readdatavalid + .m0_read (lcd_on_s1_translator_avalon_universal_slave_0_agent_m0_read), // .read + .m0_waitrequest (lcd_on_s1_translator_avalon_universal_slave_0_agent_m0_waitrequest), // .waitrequest + .m0_writedata (lcd_on_s1_translator_avalon_universal_slave_0_agent_m0_writedata), // .writedata + .m0_write (lcd_on_s1_translator_avalon_universal_slave_0_agent_m0_write), // .write + .rp_endofpacket (lcd_on_s1_translator_avalon_universal_slave_0_agent_rp_endofpacket), // rp.endofpacket + .rp_ready (lcd_on_s1_translator_avalon_universal_slave_0_agent_rp_ready), // .ready + .rp_valid (lcd_on_s1_translator_avalon_universal_slave_0_agent_rp_valid), // .valid + .rp_data (lcd_on_s1_translator_avalon_universal_slave_0_agent_rp_data), // .data + .rp_startofpacket (lcd_on_s1_translator_avalon_universal_slave_0_agent_rp_startofpacket), // .startofpacket + .cp_ready (cmd_xbar_demux_001_src16_ready), // cp.ready + .cp_valid (cmd_xbar_demux_001_src16_valid), // .valid + .cp_data (cmd_xbar_demux_001_src16_data), // .data + .cp_startofpacket (cmd_xbar_demux_001_src16_startofpacket), // .startofpacket + .cp_endofpacket (cmd_xbar_demux_001_src16_endofpacket), // .endofpacket + .cp_channel (cmd_xbar_demux_001_src16_channel), // .channel + .rf_sink_ready (lcd_on_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_ready), // rf_sink.ready + .rf_sink_valid (lcd_on_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_valid), // .valid + .rf_sink_startofpacket (lcd_on_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_startofpacket), // .startofpacket + .rf_sink_endofpacket (lcd_on_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_endofpacket), // .endofpacket + .rf_sink_data (lcd_on_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_data), // .data + .rf_source_ready (lcd_on_s1_translator_avalon_universal_slave_0_agent_rf_source_ready), // rf_source.ready + .rf_source_valid (lcd_on_s1_translator_avalon_universal_slave_0_agent_rf_source_valid), // .valid + .rf_source_startofpacket (lcd_on_s1_translator_avalon_universal_slave_0_agent_rf_source_startofpacket), // .startofpacket + .rf_source_endofpacket (lcd_on_s1_translator_avalon_universal_slave_0_agent_rf_source_endofpacket), // .endofpacket + .rf_source_data (lcd_on_s1_translator_avalon_universal_slave_0_agent_rf_source_data), // .data + .rdata_fifo_sink_ready (lcd_on_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_ready), // rdata_fifo_sink.ready + .rdata_fifo_sink_valid (lcd_on_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_valid), // .valid + .rdata_fifo_sink_data (lcd_on_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_data), // .data + .rdata_fifo_src_ready (lcd_on_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_ready), // rdata_fifo_src.ready + .rdata_fifo_src_valid (lcd_on_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_valid), // .valid + .rdata_fifo_src_data (lcd_on_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_data), // .data + .m0_response (2'b00), // (terminated) + .m0_writeresponserequest (), // (terminated) + .m0_writeresponsevalid (1'b0) // (terminated) + ); + + altera_avalon_sc_fifo #( + .SYMBOLS_PER_BEAT (1), + .BITS_PER_SYMBOL (97), + .FIFO_DEPTH (2), + .CHANNEL_WIDTH (0), + .ERROR_WIDTH (0), + .USE_PACKETS (1), + .USE_FILL_LEVEL (0), + .EMPTY_LATENCY (1), + .USE_MEMORY_BLOCKS (0), + .USE_STORE_FORWARD (0), + .USE_ALMOST_FULL_IF (0), + .USE_ALMOST_EMPTY_IF (0) + ) lcd_on_s1_translator_avalon_universal_slave_0_agent_rsp_fifo ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .in_data (lcd_on_s1_translator_avalon_universal_slave_0_agent_rf_source_data), // in.data + .in_valid (lcd_on_s1_translator_avalon_universal_slave_0_agent_rf_source_valid), // .valid + .in_ready (lcd_on_s1_translator_avalon_universal_slave_0_agent_rf_source_ready), // .ready + .in_startofpacket (lcd_on_s1_translator_avalon_universal_slave_0_agent_rf_source_startofpacket), // .startofpacket + .in_endofpacket (lcd_on_s1_translator_avalon_universal_slave_0_agent_rf_source_endofpacket), // .endofpacket + .out_data (lcd_on_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_data), // out.data + .out_valid (lcd_on_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_valid), // .valid + .out_ready (lcd_on_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_ready), // .ready + .out_startofpacket (lcd_on_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_startofpacket), // .startofpacket + .out_endofpacket (lcd_on_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_endofpacket), // .endofpacket + .csr_address (2'b00), // (terminated) + .csr_read (1'b0), // (terminated) + .csr_write (1'b0), // (terminated) + .csr_readdata (), // (terminated) + .csr_writedata (32'b00000000000000000000000000000000), // (terminated) + .almost_full_data (), // (terminated) + .almost_empty_data (), // (terminated) + .in_empty (1'b0), // (terminated) + .out_empty (), // (terminated) + .in_error (1'b0), // (terminated) + .out_error (), // (terminated) + .in_channel (1'b0), // (terminated) + .out_channel () // (terminated) + ); + + altera_merlin_slave_agent #( + .PKT_DATA_H (31), + .PKT_DATA_L (0), + .PKT_BEGIN_BURST (74), + .PKT_SYMBOL_W (8), + .PKT_BYTEEN_H (35), + .PKT_BYTEEN_L (32), + .PKT_ADDR_H (54), + .PKT_ADDR_L (36), + .PKT_TRANS_COMPRESSED_READ (55), + .PKT_TRANS_POSTED (56), + .PKT_TRANS_WRITE (57), + .PKT_TRANS_READ (58), + .PKT_TRANS_LOCK (59), + .PKT_SRC_ID_H (80), + .PKT_SRC_ID_L (76), + .PKT_DEST_ID_H (85), + .PKT_DEST_ID_L (81), + .PKT_BURSTWRAP_H (66), + .PKT_BURSTWRAP_L (64), + .PKT_BYTE_CNT_H (63), + .PKT_BYTE_CNT_L (61), + .PKT_PROTECTION_H (89), + .PKT_PROTECTION_L (87), + .PKT_RESPONSE_STATUS_H (95), + .PKT_RESPONSE_STATUS_L (94), + .PKT_BURST_SIZE_H (69), + .PKT_BURST_SIZE_L (67), + .ST_CHANNEL_W (18), + .ST_DATA_W (96), + .AVS_BURSTCOUNT_W (3), + .SUPPRESS_0_BYTEEN_CMD (0), + .PREVENT_FIFO_OVERFLOW (1), + .USE_READRESPONSE (0), + .USE_WRITERESPONSE (0) + ) lcd_blon_s1_translator_avalon_universal_slave_0_agent ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .m0_address (lcd_blon_s1_translator_avalon_universal_slave_0_agent_m0_address), // m0.address + .m0_burstcount (lcd_blon_s1_translator_avalon_universal_slave_0_agent_m0_burstcount), // .burstcount + .m0_byteenable (lcd_blon_s1_translator_avalon_universal_slave_0_agent_m0_byteenable), // .byteenable + .m0_debugaccess (lcd_blon_s1_translator_avalon_universal_slave_0_agent_m0_debugaccess), // .debugaccess + .m0_lock (lcd_blon_s1_translator_avalon_universal_slave_0_agent_m0_lock), // .lock + .m0_readdata (lcd_blon_s1_translator_avalon_universal_slave_0_agent_m0_readdata), // .readdata + .m0_readdatavalid (lcd_blon_s1_translator_avalon_universal_slave_0_agent_m0_readdatavalid), // .readdatavalid + .m0_read (lcd_blon_s1_translator_avalon_universal_slave_0_agent_m0_read), // .read + .m0_waitrequest (lcd_blon_s1_translator_avalon_universal_slave_0_agent_m0_waitrequest), // .waitrequest + .m0_writedata (lcd_blon_s1_translator_avalon_universal_slave_0_agent_m0_writedata), // .writedata + .m0_write (lcd_blon_s1_translator_avalon_universal_slave_0_agent_m0_write), // .write + .rp_endofpacket (lcd_blon_s1_translator_avalon_universal_slave_0_agent_rp_endofpacket), // rp.endofpacket + .rp_ready (lcd_blon_s1_translator_avalon_universal_slave_0_agent_rp_ready), // .ready + .rp_valid (lcd_blon_s1_translator_avalon_universal_slave_0_agent_rp_valid), // .valid + .rp_data (lcd_blon_s1_translator_avalon_universal_slave_0_agent_rp_data), // .data + .rp_startofpacket (lcd_blon_s1_translator_avalon_universal_slave_0_agent_rp_startofpacket), // .startofpacket + .cp_ready (cmd_xbar_demux_001_src17_ready), // cp.ready + .cp_valid (cmd_xbar_demux_001_src17_valid), // .valid + .cp_data (cmd_xbar_demux_001_src17_data), // .data + .cp_startofpacket (cmd_xbar_demux_001_src17_startofpacket), // .startofpacket + .cp_endofpacket (cmd_xbar_demux_001_src17_endofpacket), // .endofpacket + .cp_channel (cmd_xbar_demux_001_src17_channel), // .channel + .rf_sink_ready (lcd_blon_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_ready), // rf_sink.ready + .rf_sink_valid (lcd_blon_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_valid), // .valid + .rf_sink_startofpacket (lcd_blon_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_startofpacket), // .startofpacket + .rf_sink_endofpacket (lcd_blon_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_endofpacket), // .endofpacket + .rf_sink_data (lcd_blon_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_data), // .data + .rf_source_ready (lcd_blon_s1_translator_avalon_universal_slave_0_agent_rf_source_ready), // rf_source.ready + .rf_source_valid (lcd_blon_s1_translator_avalon_universal_slave_0_agent_rf_source_valid), // .valid + .rf_source_startofpacket (lcd_blon_s1_translator_avalon_universal_slave_0_agent_rf_source_startofpacket), // .startofpacket + .rf_source_endofpacket (lcd_blon_s1_translator_avalon_universal_slave_0_agent_rf_source_endofpacket), // .endofpacket + .rf_source_data (lcd_blon_s1_translator_avalon_universal_slave_0_agent_rf_source_data), // .data + .rdata_fifo_sink_ready (lcd_blon_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_ready), // rdata_fifo_sink.ready + .rdata_fifo_sink_valid (lcd_blon_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_valid), // .valid + .rdata_fifo_sink_data (lcd_blon_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_data), // .data + .rdata_fifo_src_ready (lcd_blon_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_ready), // rdata_fifo_src.ready + .rdata_fifo_src_valid (lcd_blon_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_valid), // .valid + .rdata_fifo_src_data (lcd_blon_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_data), // .data + .m0_response (2'b00), // (terminated) + .m0_writeresponserequest (), // (terminated) + .m0_writeresponsevalid (1'b0) // (terminated) + ); + + altera_avalon_sc_fifo #( + .SYMBOLS_PER_BEAT (1), + .BITS_PER_SYMBOL (97), + .FIFO_DEPTH (2), + .CHANNEL_WIDTH (0), + .ERROR_WIDTH (0), + .USE_PACKETS (1), + .USE_FILL_LEVEL (0), + .EMPTY_LATENCY (1), + .USE_MEMORY_BLOCKS (0), + .USE_STORE_FORWARD (0), + .USE_ALMOST_FULL_IF (0), + .USE_ALMOST_EMPTY_IF (0) + ) lcd_blon_s1_translator_avalon_universal_slave_0_agent_rsp_fifo ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .in_data (lcd_blon_s1_translator_avalon_universal_slave_0_agent_rf_source_data), // in.data + .in_valid (lcd_blon_s1_translator_avalon_universal_slave_0_agent_rf_source_valid), // .valid + .in_ready (lcd_blon_s1_translator_avalon_universal_slave_0_agent_rf_source_ready), // .ready + .in_startofpacket (lcd_blon_s1_translator_avalon_universal_slave_0_agent_rf_source_startofpacket), // .startofpacket + .in_endofpacket (lcd_blon_s1_translator_avalon_universal_slave_0_agent_rf_source_endofpacket), // .endofpacket + .out_data (lcd_blon_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_data), // out.data + .out_valid (lcd_blon_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_valid), // .valid + .out_ready (lcd_blon_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_ready), // .ready + .out_startofpacket (lcd_blon_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_startofpacket), // .startofpacket + .out_endofpacket (lcd_blon_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_endofpacket), // .endofpacket + .csr_address (2'b00), // (terminated) + .csr_read (1'b0), // (terminated) + .csr_write (1'b0), // (terminated) + .csr_readdata (), // (terminated) + .csr_writedata (32'b00000000000000000000000000000000), // (terminated) + .almost_full_data (), // (terminated) + .almost_empty_data (), // (terminated) + .in_empty (1'b0), // (terminated) + .out_empty (), // (terminated) + .in_error (1'b0), // (terminated) + .out_error (), // (terminated) + .in_channel (1'b0), // (terminated) + .out_channel () // (terminated) + ); + + nios_system_addr_router addr_router ( + .sink_ready (nios2_processor_instruction_master_translator_avalon_universal_master_0_agent_cp_ready), // sink.ready + .sink_valid (nios2_processor_instruction_master_translator_avalon_universal_master_0_agent_cp_valid), // .valid + .sink_data (nios2_processor_instruction_master_translator_avalon_universal_master_0_agent_cp_data), // .data + .sink_startofpacket (nios2_processor_instruction_master_translator_avalon_universal_master_0_agent_cp_startofpacket), // .startofpacket + .sink_endofpacket (nios2_processor_instruction_master_translator_avalon_universal_master_0_agent_cp_endofpacket), // .endofpacket + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .src_ready (addr_router_src_ready), // src.ready + .src_valid (addr_router_src_valid), // .valid + .src_data (addr_router_src_data), // .data + .src_channel (addr_router_src_channel), // .channel + .src_startofpacket (addr_router_src_startofpacket), // .startofpacket + .src_endofpacket (addr_router_src_endofpacket) // .endofpacket + ); + + nios_system_addr_router_001 addr_router_001 ( + .sink_ready (nios2_processor_data_master_translator_avalon_universal_master_0_agent_cp_ready), // sink.ready + .sink_valid (nios2_processor_data_master_translator_avalon_universal_master_0_agent_cp_valid), // .valid + .sink_data (nios2_processor_data_master_translator_avalon_universal_master_0_agent_cp_data), // .data + .sink_startofpacket (nios2_processor_data_master_translator_avalon_universal_master_0_agent_cp_startofpacket), // .startofpacket + .sink_endofpacket (nios2_processor_data_master_translator_avalon_universal_master_0_agent_cp_endofpacket), // .endofpacket + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .src_ready (addr_router_001_src_ready), // src.ready + .src_valid (addr_router_001_src_valid), // .valid + .src_data (addr_router_001_src_data), // .data + .src_channel (addr_router_001_src_channel), // .channel + .src_startofpacket (addr_router_001_src_startofpacket), // .startofpacket + .src_endofpacket (addr_router_001_src_endofpacket) // .endofpacket + ); + + nios_system_id_router id_router ( + .sink_ready (nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rp_ready), // sink.ready + .sink_valid (nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rp_valid), // .valid + .sink_data (nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rp_data), // .data + .sink_startofpacket (nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rp_startofpacket), // .startofpacket + .sink_endofpacket (nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rp_endofpacket), // .endofpacket + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .src_ready (id_router_src_ready), // src.ready + .src_valid (id_router_src_valid), // .valid + .src_data (id_router_src_data), // .data + .src_channel (id_router_src_channel), // .channel + .src_startofpacket (id_router_src_startofpacket), // .startofpacket + .src_endofpacket (id_router_src_endofpacket) // .endofpacket + ); + + nios_system_id_router id_router_001 ( + .sink_ready (onchip_memory_s1_translator_avalon_universal_slave_0_agent_rp_ready), // sink.ready + .sink_valid (onchip_memory_s1_translator_avalon_universal_slave_0_agent_rp_valid), // .valid + .sink_data (onchip_memory_s1_translator_avalon_universal_slave_0_agent_rp_data), // .data + .sink_startofpacket (onchip_memory_s1_translator_avalon_universal_slave_0_agent_rp_startofpacket), // .startofpacket + .sink_endofpacket (onchip_memory_s1_translator_avalon_universal_slave_0_agent_rp_endofpacket), // .endofpacket + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .src_ready (id_router_001_src_ready), // src.ready + .src_valid (id_router_001_src_valid), // .valid + .src_data (id_router_001_src_data), // .data + .src_channel (id_router_001_src_channel), // .channel + .src_startofpacket (id_router_001_src_startofpacket), // .startofpacket + .src_endofpacket (id_router_001_src_endofpacket) // .endofpacket + ); + + nios_system_id_router_002 id_router_002 ( + .sink_ready (leds_s1_translator_avalon_universal_slave_0_agent_rp_ready), // sink.ready + .sink_valid (leds_s1_translator_avalon_universal_slave_0_agent_rp_valid), // .valid + .sink_data (leds_s1_translator_avalon_universal_slave_0_agent_rp_data), // .data + .sink_startofpacket (leds_s1_translator_avalon_universal_slave_0_agent_rp_startofpacket), // .startofpacket + .sink_endofpacket (leds_s1_translator_avalon_universal_slave_0_agent_rp_endofpacket), // .endofpacket + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .src_ready (id_router_002_src_ready), // src.ready + .src_valid (id_router_002_src_valid), // .valid + .src_data (id_router_002_src_data), // .data + .src_channel (id_router_002_src_channel), // .channel + .src_startofpacket (id_router_002_src_startofpacket), // .startofpacket + .src_endofpacket (id_router_002_src_endofpacket) // .endofpacket + ); + + nios_system_id_router_002 id_router_003 ( + .sink_ready (jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rp_ready), // sink.ready + .sink_valid (jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rp_valid), // .valid + .sink_data (jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rp_data), // .data + .sink_startofpacket (jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rp_startofpacket), // .startofpacket + .sink_endofpacket (jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rp_endofpacket), // .endofpacket + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .src_ready (id_router_003_src_ready), // src.ready + .src_valid (id_router_003_src_valid), // .valid + .src_data (id_router_003_src_data), // .data + .src_channel (id_router_003_src_channel), // .channel + .src_startofpacket (id_router_003_src_startofpacket), // .startofpacket + .src_endofpacket (id_router_003_src_endofpacket) // .endofpacket + ); + + nios_system_id_router_002 id_router_004 ( + .sink_ready (ledrs_s1_translator_avalon_universal_slave_0_agent_rp_ready), // sink.ready + .sink_valid (ledrs_s1_translator_avalon_universal_slave_0_agent_rp_valid), // .valid + .sink_data (ledrs_s1_translator_avalon_universal_slave_0_agent_rp_data), // .data + .sink_startofpacket (ledrs_s1_translator_avalon_universal_slave_0_agent_rp_startofpacket), // .startofpacket + .sink_endofpacket (ledrs_s1_translator_avalon_universal_slave_0_agent_rp_endofpacket), // .endofpacket + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .src_ready (id_router_004_src_ready), // src.ready + .src_valid (id_router_004_src_valid), // .valid + .src_data (id_router_004_src_data), // .data + .src_channel (id_router_004_src_channel), // .channel + .src_startofpacket (id_router_004_src_startofpacket), // .startofpacket + .src_endofpacket (id_router_004_src_endofpacket) // .endofpacket + ); + + nios_system_id_router_002 id_router_005 ( + .sink_ready (switches_s1_translator_avalon_universal_slave_0_agent_rp_ready), // sink.ready + .sink_valid (switches_s1_translator_avalon_universal_slave_0_agent_rp_valid), // .valid + .sink_data (switches_s1_translator_avalon_universal_slave_0_agent_rp_data), // .data + .sink_startofpacket (switches_s1_translator_avalon_universal_slave_0_agent_rp_startofpacket), // .startofpacket + .sink_endofpacket (switches_s1_translator_avalon_universal_slave_0_agent_rp_endofpacket), // .endofpacket + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .src_ready (id_router_005_src_ready), // src.ready + .src_valid (id_router_005_src_valid), // .valid + .src_data (id_router_005_src_data), // .data + .src_channel (id_router_005_src_channel), // .channel + .src_startofpacket (id_router_005_src_startofpacket), // .startofpacket + .src_endofpacket (id_router_005_src_endofpacket) // .endofpacket + ); + + nios_system_id_router_002 id_router_006 ( + .sink_ready (push_switches_s1_translator_avalon_universal_slave_0_agent_rp_ready), // sink.ready + .sink_valid (push_switches_s1_translator_avalon_universal_slave_0_agent_rp_valid), // .valid + .sink_data (push_switches_s1_translator_avalon_universal_slave_0_agent_rp_data), // .data + .sink_startofpacket (push_switches_s1_translator_avalon_universal_slave_0_agent_rp_startofpacket), // .startofpacket + .sink_endofpacket (push_switches_s1_translator_avalon_universal_slave_0_agent_rp_endofpacket), // .endofpacket + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .src_ready (id_router_006_src_ready), // src.ready + .src_valid (id_router_006_src_valid), // .valid + .src_data (id_router_006_src_data), // .data + .src_channel (id_router_006_src_channel), // .channel + .src_startofpacket (id_router_006_src_startofpacket), // .startofpacket + .src_endofpacket (id_router_006_src_endofpacket) // .endofpacket + ); + + nios_system_id_router_002 id_router_007 ( + .sink_ready (hex0_s1_translator_avalon_universal_slave_0_agent_rp_ready), // sink.ready + .sink_valid (hex0_s1_translator_avalon_universal_slave_0_agent_rp_valid), // .valid + .sink_data (hex0_s1_translator_avalon_universal_slave_0_agent_rp_data), // .data + .sink_startofpacket (hex0_s1_translator_avalon_universal_slave_0_agent_rp_startofpacket), // .startofpacket + .sink_endofpacket (hex0_s1_translator_avalon_universal_slave_0_agent_rp_endofpacket), // .endofpacket + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .src_ready (id_router_007_src_ready), // src.ready + .src_valid (id_router_007_src_valid), // .valid + .src_data (id_router_007_src_data), // .data + .src_channel (id_router_007_src_channel), // .channel + .src_startofpacket (id_router_007_src_startofpacket), // .startofpacket + .src_endofpacket (id_router_007_src_endofpacket) // .endofpacket + ); + + nios_system_id_router_002 id_router_008 ( + .sink_ready (hex1_s1_translator_avalon_universal_slave_0_agent_rp_ready), // sink.ready + .sink_valid (hex1_s1_translator_avalon_universal_slave_0_agent_rp_valid), // .valid + .sink_data (hex1_s1_translator_avalon_universal_slave_0_agent_rp_data), // .data + .sink_startofpacket (hex1_s1_translator_avalon_universal_slave_0_agent_rp_startofpacket), // .startofpacket + .sink_endofpacket (hex1_s1_translator_avalon_universal_slave_0_agent_rp_endofpacket), // .endofpacket + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .src_ready (id_router_008_src_ready), // src.ready + .src_valid (id_router_008_src_valid), // .valid + .src_data (id_router_008_src_data), // .data + .src_channel (id_router_008_src_channel), // .channel + .src_startofpacket (id_router_008_src_startofpacket), // .startofpacket + .src_endofpacket (id_router_008_src_endofpacket) // .endofpacket + ); + + nios_system_id_router_002 id_router_009 ( + .sink_ready (hex2_s1_translator_avalon_universal_slave_0_agent_rp_ready), // sink.ready + .sink_valid (hex2_s1_translator_avalon_universal_slave_0_agent_rp_valid), // .valid + .sink_data (hex2_s1_translator_avalon_universal_slave_0_agent_rp_data), // .data + .sink_startofpacket (hex2_s1_translator_avalon_universal_slave_0_agent_rp_startofpacket), // .startofpacket + .sink_endofpacket (hex2_s1_translator_avalon_universal_slave_0_agent_rp_endofpacket), // .endofpacket + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .src_ready (id_router_009_src_ready), // src.ready + .src_valid (id_router_009_src_valid), // .valid + .src_data (id_router_009_src_data), // .data + .src_channel (id_router_009_src_channel), // .channel + .src_startofpacket (id_router_009_src_startofpacket), // .startofpacket + .src_endofpacket (id_router_009_src_endofpacket) // .endofpacket + ); + + nios_system_id_router_002 id_router_010 ( + .sink_ready (hex3_s1_translator_avalon_universal_slave_0_agent_rp_ready), // sink.ready + .sink_valid (hex3_s1_translator_avalon_universal_slave_0_agent_rp_valid), // .valid + .sink_data (hex3_s1_translator_avalon_universal_slave_0_agent_rp_data), // .data + .sink_startofpacket (hex3_s1_translator_avalon_universal_slave_0_agent_rp_startofpacket), // .startofpacket + .sink_endofpacket (hex3_s1_translator_avalon_universal_slave_0_agent_rp_endofpacket), // .endofpacket + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .src_ready (id_router_010_src_ready), // src.ready + .src_valid (id_router_010_src_valid), // .valid + .src_data (id_router_010_src_data), // .data + .src_channel (id_router_010_src_channel), // .channel + .src_startofpacket (id_router_010_src_startofpacket), // .startofpacket + .src_endofpacket (id_router_010_src_endofpacket) // .endofpacket + ); + + nios_system_id_router_002 id_router_011 ( + .sink_ready (hex4_s1_translator_avalon_universal_slave_0_agent_rp_ready), // sink.ready + .sink_valid (hex4_s1_translator_avalon_universal_slave_0_agent_rp_valid), // .valid + .sink_data (hex4_s1_translator_avalon_universal_slave_0_agent_rp_data), // .data + .sink_startofpacket (hex4_s1_translator_avalon_universal_slave_0_agent_rp_startofpacket), // .startofpacket + .sink_endofpacket (hex4_s1_translator_avalon_universal_slave_0_agent_rp_endofpacket), // .endofpacket + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .src_ready (id_router_011_src_ready), // src.ready + .src_valid (id_router_011_src_valid), // .valid + .src_data (id_router_011_src_data), // .data + .src_channel (id_router_011_src_channel), // .channel + .src_startofpacket (id_router_011_src_startofpacket), // .startofpacket + .src_endofpacket (id_router_011_src_endofpacket) // .endofpacket + ); + + nios_system_id_router_002 id_router_012 ( + .sink_ready (hex5_s1_translator_avalon_universal_slave_0_agent_rp_ready), // sink.ready + .sink_valid (hex5_s1_translator_avalon_universal_slave_0_agent_rp_valid), // .valid + .sink_data (hex5_s1_translator_avalon_universal_slave_0_agent_rp_data), // .data + .sink_startofpacket (hex5_s1_translator_avalon_universal_slave_0_agent_rp_startofpacket), // .startofpacket + .sink_endofpacket (hex5_s1_translator_avalon_universal_slave_0_agent_rp_endofpacket), // .endofpacket + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .src_ready (id_router_012_src_ready), // src.ready + .src_valid (id_router_012_src_valid), // .valid + .src_data (id_router_012_src_data), // .data + .src_channel (id_router_012_src_channel), // .channel + .src_startofpacket (id_router_012_src_startofpacket), // .startofpacket + .src_endofpacket (id_router_012_src_endofpacket) // .endofpacket + ); + + nios_system_id_router_002 id_router_013 ( + .sink_ready (hex6_s1_translator_avalon_universal_slave_0_agent_rp_ready), // sink.ready + .sink_valid (hex6_s1_translator_avalon_universal_slave_0_agent_rp_valid), // .valid + .sink_data (hex6_s1_translator_avalon_universal_slave_0_agent_rp_data), // .data + .sink_startofpacket (hex6_s1_translator_avalon_universal_slave_0_agent_rp_startofpacket), // .startofpacket + .sink_endofpacket (hex6_s1_translator_avalon_universal_slave_0_agent_rp_endofpacket), // .endofpacket + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .src_ready (id_router_013_src_ready), // src.ready + .src_valid (id_router_013_src_valid), // .valid + .src_data (id_router_013_src_data), // .data + .src_channel (id_router_013_src_channel), // .channel + .src_startofpacket (id_router_013_src_startofpacket), // .startofpacket + .src_endofpacket (id_router_013_src_endofpacket) // .endofpacket + ); + + nios_system_id_router_002 id_router_014 ( + .sink_ready (hex7_s1_translator_avalon_universal_slave_0_agent_rp_ready), // sink.ready + .sink_valid (hex7_s1_translator_avalon_universal_slave_0_agent_rp_valid), // .valid + .sink_data (hex7_s1_translator_avalon_universal_slave_0_agent_rp_data), // .data + .sink_startofpacket (hex7_s1_translator_avalon_universal_slave_0_agent_rp_startofpacket), // .startofpacket + .sink_endofpacket (hex7_s1_translator_avalon_universal_slave_0_agent_rp_endofpacket), // .endofpacket + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .src_ready (id_router_014_src_ready), // src.ready + .src_valid (id_router_014_src_valid), // .valid + .src_data (id_router_014_src_data), // .data + .src_channel (id_router_014_src_channel), // .channel + .src_startofpacket (id_router_014_src_startofpacket), // .startofpacket + .src_endofpacket (id_router_014_src_endofpacket) // .endofpacket + ); + + nios_system_id_router_002 id_router_015 ( + .sink_ready (lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rp_ready), // sink.ready + .sink_valid (lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rp_valid), // .valid + .sink_data (lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rp_data), // .data + .sink_startofpacket (lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rp_startofpacket), // .startofpacket + .sink_endofpacket (lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rp_endofpacket), // .endofpacket + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .src_ready (id_router_015_src_ready), // src.ready + .src_valid (id_router_015_src_valid), // .valid + .src_data (id_router_015_src_data), // .data + .src_channel (id_router_015_src_channel), // .channel + .src_startofpacket (id_router_015_src_startofpacket), // .startofpacket + .src_endofpacket (id_router_015_src_endofpacket) // .endofpacket + ); + + nios_system_id_router_002 id_router_016 ( + .sink_ready (lcd_on_s1_translator_avalon_universal_slave_0_agent_rp_ready), // sink.ready + .sink_valid (lcd_on_s1_translator_avalon_universal_slave_0_agent_rp_valid), // .valid + .sink_data (lcd_on_s1_translator_avalon_universal_slave_0_agent_rp_data), // .data + .sink_startofpacket (lcd_on_s1_translator_avalon_universal_slave_0_agent_rp_startofpacket), // .startofpacket + .sink_endofpacket (lcd_on_s1_translator_avalon_universal_slave_0_agent_rp_endofpacket), // .endofpacket + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .src_ready (id_router_016_src_ready), // src.ready + .src_valid (id_router_016_src_valid), // .valid + .src_data (id_router_016_src_data), // .data + .src_channel (id_router_016_src_channel), // .channel + .src_startofpacket (id_router_016_src_startofpacket), // .startofpacket + .src_endofpacket (id_router_016_src_endofpacket) // .endofpacket + ); + + nios_system_id_router_002 id_router_017 ( + .sink_ready (lcd_blon_s1_translator_avalon_universal_slave_0_agent_rp_ready), // sink.ready + .sink_valid (lcd_blon_s1_translator_avalon_universal_slave_0_agent_rp_valid), // .valid + .sink_data (lcd_blon_s1_translator_avalon_universal_slave_0_agent_rp_data), // .data + .sink_startofpacket (lcd_blon_s1_translator_avalon_universal_slave_0_agent_rp_startofpacket), // .startofpacket + .sink_endofpacket (lcd_blon_s1_translator_avalon_universal_slave_0_agent_rp_endofpacket), // .endofpacket + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .src_ready (id_router_017_src_ready), // src.ready + .src_valid (id_router_017_src_valid), // .valid + .src_data (id_router_017_src_data), // .data + .src_channel (id_router_017_src_channel), // .channel + .src_startofpacket (id_router_017_src_startofpacket), // .startofpacket + .src_endofpacket (id_router_017_src_endofpacket) // .endofpacket + ); + + altera_reset_controller #( + .NUM_RESET_INPUTS (2), + .OUTPUT_RESET_SYNC_EDGES ("deassert"), + .SYNC_DEPTH (2), + .RESET_REQUEST_PRESENT (1) + ) rst_controller ( + .reset_in0 (~reset_reset_n), // reset_in0.reset + .reset_in1 (nios2_processor_jtag_debug_module_reset_reset), // reset_in1.reset + .clk (clk_clk), // clk.clk + .reset_out (rst_controller_reset_out_reset), // reset_out.reset + .reset_req (rst_controller_reset_out_reset_req), // .reset_req + .reset_in2 (1'b0), // (terminated) + .reset_in3 (1'b0), // (terminated) + .reset_in4 (1'b0), // (terminated) + .reset_in5 (1'b0), // (terminated) + .reset_in6 (1'b0), // (terminated) + .reset_in7 (1'b0), // (terminated) + .reset_in8 (1'b0), // (terminated) + .reset_in9 (1'b0), // (terminated) + .reset_in10 (1'b0), // (terminated) + .reset_in11 (1'b0), // (terminated) + .reset_in12 (1'b0), // (terminated) + .reset_in13 (1'b0), // (terminated) + .reset_in14 (1'b0), // (terminated) + .reset_in15 (1'b0) // (terminated) + ); + + nios_system_cmd_xbar_demux cmd_xbar_demux ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .sink_ready (addr_router_src_ready), // sink.ready + .sink_channel (addr_router_src_channel), // .channel + .sink_data (addr_router_src_data), // .data + .sink_startofpacket (addr_router_src_startofpacket), // .startofpacket + .sink_endofpacket (addr_router_src_endofpacket), // .endofpacket + .sink_valid (addr_router_src_valid), // .valid + .src0_ready (cmd_xbar_demux_src0_ready), // src0.ready + .src0_valid (cmd_xbar_demux_src0_valid), // .valid + .src0_data (cmd_xbar_demux_src0_data), // .data + .src0_channel (cmd_xbar_demux_src0_channel), // .channel + .src0_startofpacket (cmd_xbar_demux_src0_startofpacket), // .startofpacket + .src0_endofpacket (cmd_xbar_demux_src0_endofpacket), // .endofpacket + .src1_ready (cmd_xbar_demux_src1_ready), // src1.ready + .src1_valid (cmd_xbar_demux_src1_valid), // .valid + .src1_data (cmd_xbar_demux_src1_data), // .data + .src1_channel (cmd_xbar_demux_src1_channel), // .channel + .src1_startofpacket (cmd_xbar_demux_src1_startofpacket), // .startofpacket + .src1_endofpacket (cmd_xbar_demux_src1_endofpacket) // .endofpacket + ); + + nios_system_cmd_xbar_demux_001 cmd_xbar_demux_001 ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .sink_ready (addr_router_001_src_ready), // sink.ready + .sink_channel (addr_router_001_src_channel), // .channel + .sink_data (addr_router_001_src_data), // .data + .sink_startofpacket (addr_router_001_src_startofpacket), // .startofpacket + .sink_endofpacket (addr_router_001_src_endofpacket), // .endofpacket + .sink_valid (addr_router_001_src_valid), // .valid + .src0_ready (cmd_xbar_demux_001_src0_ready), // src0.ready + .src0_valid (cmd_xbar_demux_001_src0_valid), // .valid + .src0_data (cmd_xbar_demux_001_src0_data), // .data + .src0_channel (cmd_xbar_demux_001_src0_channel), // .channel + .src0_startofpacket (cmd_xbar_demux_001_src0_startofpacket), // .startofpacket + .src0_endofpacket (cmd_xbar_demux_001_src0_endofpacket), // .endofpacket + .src1_ready (cmd_xbar_demux_001_src1_ready), // src1.ready + .src1_valid (cmd_xbar_demux_001_src1_valid), // .valid + .src1_data (cmd_xbar_demux_001_src1_data), // .data + .src1_channel (cmd_xbar_demux_001_src1_channel), // .channel + .src1_startofpacket (cmd_xbar_demux_001_src1_startofpacket), // .startofpacket + .src1_endofpacket (cmd_xbar_demux_001_src1_endofpacket), // .endofpacket + .src2_ready (cmd_xbar_demux_001_src2_ready), // src2.ready + .src2_valid (cmd_xbar_demux_001_src2_valid), // .valid + .src2_data (cmd_xbar_demux_001_src2_data), // .data + .src2_channel (cmd_xbar_demux_001_src2_channel), // .channel + .src2_startofpacket (cmd_xbar_demux_001_src2_startofpacket), // .startofpacket + .src2_endofpacket (cmd_xbar_demux_001_src2_endofpacket), // .endofpacket + .src3_ready (cmd_xbar_demux_001_src3_ready), // src3.ready + .src3_valid (cmd_xbar_demux_001_src3_valid), // .valid + .src3_data (cmd_xbar_demux_001_src3_data), // .data + .src3_channel (cmd_xbar_demux_001_src3_channel), // .channel + .src3_startofpacket (cmd_xbar_demux_001_src3_startofpacket), // .startofpacket + .src3_endofpacket (cmd_xbar_demux_001_src3_endofpacket), // .endofpacket + .src4_ready (cmd_xbar_demux_001_src4_ready), // src4.ready + .src4_valid (cmd_xbar_demux_001_src4_valid), // .valid + .src4_data (cmd_xbar_demux_001_src4_data), // .data + .src4_channel (cmd_xbar_demux_001_src4_channel), // .channel + .src4_startofpacket (cmd_xbar_demux_001_src4_startofpacket), // .startofpacket + .src4_endofpacket (cmd_xbar_demux_001_src4_endofpacket), // .endofpacket + .src5_ready (cmd_xbar_demux_001_src5_ready), // src5.ready + .src5_valid (cmd_xbar_demux_001_src5_valid), // .valid + .src5_data (cmd_xbar_demux_001_src5_data), // .data + .src5_channel (cmd_xbar_demux_001_src5_channel), // .channel + .src5_startofpacket (cmd_xbar_demux_001_src5_startofpacket), // .startofpacket + .src5_endofpacket (cmd_xbar_demux_001_src5_endofpacket), // .endofpacket + .src6_ready (cmd_xbar_demux_001_src6_ready), // src6.ready + .src6_valid (cmd_xbar_demux_001_src6_valid), // .valid + .src6_data (cmd_xbar_demux_001_src6_data), // .data + .src6_channel (cmd_xbar_demux_001_src6_channel), // .channel + .src6_startofpacket (cmd_xbar_demux_001_src6_startofpacket), // .startofpacket + .src6_endofpacket (cmd_xbar_demux_001_src6_endofpacket), // .endofpacket + .src7_ready (cmd_xbar_demux_001_src7_ready), // src7.ready + .src7_valid (cmd_xbar_demux_001_src7_valid), // .valid + .src7_data (cmd_xbar_demux_001_src7_data), // .data + .src7_channel (cmd_xbar_demux_001_src7_channel), // .channel + .src7_startofpacket (cmd_xbar_demux_001_src7_startofpacket), // .startofpacket + .src7_endofpacket (cmd_xbar_demux_001_src7_endofpacket), // .endofpacket + .src8_ready (cmd_xbar_demux_001_src8_ready), // src8.ready + .src8_valid (cmd_xbar_demux_001_src8_valid), // .valid + .src8_data (cmd_xbar_demux_001_src8_data), // .data + .src8_channel (cmd_xbar_demux_001_src8_channel), // .channel + .src8_startofpacket (cmd_xbar_demux_001_src8_startofpacket), // .startofpacket + .src8_endofpacket (cmd_xbar_demux_001_src8_endofpacket), // .endofpacket + .src9_ready (cmd_xbar_demux_001_src9_ready), // src9.ready + .src9_valid (cmd_xbar_demux_001_src9_valid), // .valid + .src9_data (cmd_xbar_demux_001_src9_data), // .data + .src9_channel (cmd_xbar_demux_001_src9_channel), // .channel + .src9_startofpacket (cmd_xbar_demux_001_src9_startofpacket), // .startofpacket + .src9_endofpacket (cmd_xbar_demux_001_src9_endofpacket), // .endofpacket + .src10_ready (cmd_xbar_demux_001_src10_ready), // src10.ready + .src10_valid (cmd_xbar_demux_001_src10_valid), // .valid + .src10_data (cmd_xbar_demux_001_src10_data), // .data + .src10_channel (cmd_xbar_demux_001_src10_channel), // .channel + .src10_startofpacket (cmd_xbar_demux_001_src10_startofpacket), // .startofpacket + .src10_endofpacket (cmd_xbar_demux_001_src10_endofpacket), // .endofpacket + .src11_ready (cmd_xbar_demux_001_src11_ready), // src11.ready + .src11_valid (cmd_xbar_demux_001_src11_valid), // .valid + .src11_data (cmd_xbar_demux_001_src11_data), // .data + .src11_channel (cmd_xbar_demux_001_src11_channel), // .channel + .src11_startofpacket (cmd_xbar_demux_001_src11_startofpacket), // .startofpacket + .src11_endofpacket (cmd_xbar_demux_001_src11_endofpacket), // .endofpacket + .src12_ready (cmd_xbar_demux_001_src12_ready), // src12.ready + .src12_valid (cmd_xbar_demux_001_src12_valid), // .valid + .src12_data (cmd_xbar_demux_001_src12_data), // .data + .src12_channel (cmd_xbar_demux_001_src12_channel), // .channel + .src12_startofpacket (cmd_xbar_demux_001_src12_startofpacket), // .startofpacket + .src12_endofpacket (cmd_xbar_demux_001_src12_endofpacket), // .endofpacket + .src13_ready (cmd_xbar_demux_001_src13_ready), // src13.ready + .src13_valid (cmd_xbar_demux_001_src13_valid), // .valid + .src13_data (cmd_xbar_demux_001_src13_data), // .data + .src13_channel (cmd_xbar_demux_001_src13_channel), // .channel + .src13_startofpacket (cmd_xbar_demux_001_src13_startofpacket), // .startofpacket + .src13_endofpacket (cmd_xbar_demux_001_src13_endofpacket), // .endofpacket + .src14_ready (cmd_xbar_demux_001_src14_ready), // src14.ready + .src14_valid (cmd_xbar_demux_001_src14_valid), // .valid + .src14_data (cmd_xbar_demux_001_src14_data), // .data + .src14_channel (cmd_xbar_demux_001_src14_channel), // .channel + .src14_startofpacket (cmd_xbar_demux_001_src14_startofpacket), // .startofpacket + .src14_endofpacket (cmd_xbar_demux_001_src14_endofpacket), // .endofpacket + .src15_ready (cmd_xbar_demux_001_src15_ready), // src15.ready + .src15_valid (cmd_xbar_demux_001_src15_valid), // .valid + .src15_data (cmd_xbar_demux_001_src15_data), // .data + .src15_channel (cmd_xbar_demux_001_src15_channel), // .channel + .src15_startofpacket (cmd_xbar_demux_001_src15_startofpacket), // .startofpacket + .src15_endofpacket (cmd_xbar_demux_001_src15_endofpacket), // .endofpacket + .src16_ready (cmd_xbar_demux_001_src16_ready), // src16.ready + .src16_valid (cmd_xbar_demux_001_src16_valid), // .valid + .src16_data (cmd_xbar_demux_001_src16_data), // .data + .src16_channel (cmd_xbar_demux_001_src16_channel), // .channel + .src16_startofpacket (cmd_xbar_demux_001_src16_startofpacket), // .startofpacket + .src16_endofpacket (cmd_xbar_demux_001_src16_endofpacket), // .endofpacket + .src17_ready (cmd_xbar_demux_001_src17_ready), // src17.ready + .src17_valid (cmd_xbar_demux_001_src17_valid), // .valid + .src17_data (cmd_xbar_demux_001_src17_data), // .data + .src17_channel (cmd_xbar_demux_001_src17_channel), // .channel + .src17_startofpacket (cmd_xbar_demux_001_src17_startofpacket), // .startofpacket + .src17_endofpacket (cmd_xbar_demux_001_src17_endofpacket) // .endofpacket + ); + + nios_system_cmd_xbar_mux cmd_xbar_mux ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .src_ready (cmd_xbar_mux_src_ready), // src.ready + .src_valid (cmd_xbar_mux_src_valid), // .valid + .src_data (cmd_xbar_mux_src_data), // .data + .src_channel (cmd_xbar_mux_src_channel), // .channel + .src_startofpacket (cmd_xbar_mux_src_startofpacket), // .startofpacket + .src_endofpacket (cmd_xbar_mux_src_endofpacket), // .endofpacket + .sink0_ready (cmd_xbar_demux_src0_ready), // sink0.ready + .sink0_valid (cmd_xbar_demux_src0_valid), // .valid + .sink0_channel (cmd_xbar_demux_src0_channel), // .channel + .sink0_data (cmd_xbar_demux_src0_data), // .data + .sink0_startofpacket (cmd_xbar_demux_src0_startofpacket), // .startofpacket + .sink0_endofpacket (cmd_xbar_demux_src0_endofpacket), // .endofpacket + .sink1_ready (cmd_xbar_demux_001_src0_ready), // sink1.ready + .sink1_valid (cmd_xbar_demux_001_src0_valid), // .valid + .sink1_channel (cmd_xbar_demux_001_src0_channel), // .channel + .sink1_data (cmd_xbar_demux_001_src0_data), // .data + .sink1_startofpacket (cmd_xbar_demux_001_src0_startofpacket), // .startofpacket + .sink1_endofpacket (cmd_xbar_demux_001_src0_endofpacket) // .endofpacket + ); + + nios_system_cmd_xbar_mux cmd_xbar_mux_001 ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .src_ready (cmd_xbar_mux_001_src_ready), // src.ready + .src_valid (cmd_xbar_mux_001_src_valid), // .valid + .src_data (cmd_xbar_mux_001_src_data), // .data + .src_channel (cmd_xbar_mux_001_src_channel), // .channel + .src_startofpacket (cmd_xbar_mux_001_src_startofpacket), // .startofpacket + .src_endofpacket (cmd_xbar_mux_001_src_endofpacket), // .endofpacket + .sink0_ready (cmd_xbar_demux_src1_ready), // sink0.ready + .sink0_valid (cmd_xbar_demux_src1_valid), // .valid + .sink0_channel (cmd_xbar_demux_src1_channel), // .channel + .sink0_data (cmd_xbar_demux_src1_data), // .data + .sink0_startofpacket (cmd_xbar_demux_src1_startofpacket), // .startofpacket + .sink0_endofpacket (cmd_xbar_demux_src1_endofpacket), // .endofpacket + .sink1_ready (cmd_xbar_demux_001_src1_ready), // sink1.ready + .sink1_valid (cmd_xbar_demux_001_src1_valid), // .valid + .sink1_channel (cmd_xbar_demux_001_src1_channel), // .channel + .sink1_data (cmd_xbar_demux_001_src1_data), // .data + .sink1_startofpacket (cmd_xbar_demux_001_src1_startofpacket), // .startofpacket + .sink1_endofpacket (cmd_xbar_demux_001_src1_endofpacket) // .endofpacket + ); + + nios_system_cmd_xbar_demux rsp_xbar_demux ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .sink_ready (id_router_src_ready), // sink.ready + .sink_channel (id_router_src_channel), // .channel + .sink_data (id_router_src_data), // .data + .sink_startofpacket (id_router_src_startofpacket), // .startofpacket + .sink_endofpacket (id_router_src_endofpacket), // .endofpacket + .sink_valid (id_router_src_valid), // .valid + .src0_ready (rsp_xbar_demux_src0_ready), // src0.ready + .src0_valid (rsp_xbar_demux_src0_valid), // .valid + .src0_data (rsp_xbar_demux_src0_data), // .data + .src0_channel (rsp_xbar_demux_src0_channel), // .channel + .src0_startofpacket (rsp_xbar_demux_src0_startofpacket), // .startofpacket + .src0_endofpacket (rsp_xbar_demux_src0_endofpacket), // .endofpacket + .src1_ready (rsp_xbar_demux_src1_ready), // src1.ready + .src1_valid (rsp_xbar_demux_src1_valid), // .valid + .src1_data (rsp_xbar_demux_src1_data), // .data + .src1_channel (rsp_xbar_demux_src1_channel), // .channel + .src1_startofpacket (rsp_xbar_demux_src1_startofpacket), // .startofpacket + .src1_endofpacket (rsp_xbar_demux_src1_endofpacket) // .endofpacket + ); + + nios_system_cmd_xbar_demux rsp_xbar_demux_001 ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .sink_ready (id_router_001_src_ready), // sink.ready + .sink_channel (id_router_001_src_channel), // .channel + .sink_data (id_router_001_src_data), // .data + .sink_startofpacket (id_router_001_src_startofpacket), // .startofpacket + .sink_endofpacket (id_router_001_src_endofpacket), // .endofpacket + .sink_valid (id_router_001_src_valid), // .valid + .src0_ready (rsp_xbar_demux_001_src0_ready), // src0.ready + .src0_valid (rsp_xbar_demux_001_src0_valid), // .valid + .src0_data (rsp_xbar_demux_001_src0_data), // .data + .src0_channel (rsp_xbar_demux_001_src0_channel), // .channel + .src0_startofpacket (rsp_xbar_demux_001_src0_startofpacket), // .startofpacket + .src0_endofpacket (rsp_xbar_demux_001_src0_endofpacket), // .endofpacket + .src1_ready (rsp_xbar_demux_001_src1_ready), // src1.ready + .src1_valid (rsp_xbar_demux_001_src1_valid), // .valid + .src1_data (rsp_xbar_demux_001_src1_data), // .data + .src1_channel (rsp_xbar_demux_001_src1_channel), // .channel + .src1_startofpacket (rsp_xbar_demux_001_src1_startofpacket), // .startofpacket + .src1_endofpacket (rsp_xbar_demux_001_src1_endofpacket) // .endofpacket + ); + + nios_system_rsp_xbar_demux_002 rsp_xbar_demux_002 ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .sink_ready (id_router_002_src_ready), // sink.ready + .sink_channel (id_router_002_src_channel), // .channel + .sink_data (id_router_002_src_data), // .data + .sink_startofpacket (id_router_002_src_startofpacket), // .startofpacket + .sink_endofpacket (id_router_002_src_endofpacket), // .endofpacket + .sink_valid (id_router_002_src_valid), // .valid + .src0_ready (rsp_xbar_demux_002_src0_ready), // src0.ready + .src0_valid (rsp_xbar_demux_002_src0_valid), // .valid + .src0_data (rsp_xbar_demux_002_src0_data), // .data + .src0_channel (rsp_xbar_demux_002_src0_channel), // .channel + .src0_startofpacket (rsp_xbar_demux_002_src0_startofpacket), // .startofpacket + .src0_endofpacket (rsp_xbar_demux_002_src0_endofpacket) // .endofpacket + ); + + nios_system_rsp_xbar_demux_002 rsp_xbar_demux_003 ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .sink_ready (id_router_003_src_ready), // sink.ready + .sink_channel (id_router_003_src_channel), // .channel + .sink_data (id_router_003_src_data), // .data + .sink_startofpacket (id_router_003_src_startofpacket), // .startofpacket + .sink_endofpacket (id_router_003_src_endofpacket), // .endofpacket + .sink_valid (id_router_003_src_valid), // .valid + .src0_ready (rsp_xbar_demux_003_src0_ready), // src0.ready + .src0_valid (rsp_xbar_demux_003_src0_valid), // .valid + .src0_data (rsp_xbar_demux_003_src0_data), // .data + .src0_channel (rsp_xbar_demux_003_src0_channel), // .channel + .src0_startofpacket (rsp_xbar_demux_003_src0_startofpacket), // .startofpacket + .src0_endofpacket (rsp_xbar_demux_003_src0_endofpacket) // .endofpacket + ); + + nios_system_rsp_xbar_demux_002 rsp_xbar_demux_004 ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .sink_ready (id_router_004_src_ready), // sink.ready + .sink_channel (id_router_004_src_channel), // .channel + .sink_data (id_router_004_src_data), // .data + .sink_startofpacket (id_router_004_src_startofpacket), // .startofpacket + .sink_endofpacket (id_router_004_src_endofpacket), // .endofpacket + .sink_valid (id_router_004_src_valid), // .valid + .src0_ready (rsp_xbar_demux_004_src0_ready), // src0.ready + .src0_valid (rsp_xbar_demux_004_src0_valid), // .valid + .src0_data (rsp_xbar_demux_004_src0_data), // .data + .src0_channel (rsp_xbar_demux_004_src0_channel), // .channel + .src0_startofpacket (rsp_xbar_demux_004_src0_startofpacket), // .startofpacket + .src0_endofpacket (rsp_xbar_demux_004_src0_endofpacket) // .endofpacket + ); + + nios_system_rsp_xbar_demux_002 rsp_xbar_demux_005 ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .sink_ready (id_router_005_src_ready), // sink.ready + .sink_channel (id_router_005_src_channel), // .channel + .sink_data (id_router_005_src_data), // .data + .sink_startofpacket (id_router_005_src_startofpacket), // .startofpacket + .sink_endofpacket (id_router_005_src_endofpacket), // .endofpacket + .sink_valid (id_router_005_src_valid), // .valid + .src0_ready (rsp_xbar_demux_005_src0_ready), // src0.ready + .src0_valid (rsp_xbar_demux_005_src0_valid), // .valid + .src0_data (rsp_xbar_demux_005_src0_data), // .data + .src0_channel (rsp_xbar_demux_005_src0_channel), // .channel + .src0_startofpacket (rsp_xbar_demux_005_src0_startofpacket), // .startofpacket + .src0_endofpacket (rsp_xbar_demux_005_src0_endofpacket) // .endofpacket + ); + + nios_system_rsp_xbar_demux_002 rsp_xbar_demux_006 ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .sink_ready (id_router_006_src_ready), // sink.ready + .sink_channel (id_router_006_src_channel), // .channel + .sink_data (id_router_006_src_data), // .data + .sink_startofpacket (id_router_006_src_startofpacket), // .startofpacket + .sink_endofpacket (id_router_006_src_endofpacket), // .endofpacket + .sink_valid (id_router_006_src_valid), // .valid + .src0_ready (rsp_xbar_demux_006_src0_ready), // src0.ready + .src0_valid (rsp_xbar_demux_006_src0_valid), // .valid + .src0_data (rsp_xbar_demux_006_src0_data), // .data + .src0_channel (rsp_xbar_demux_006_src0_channel), // .channel + .src0_startofpacket (rsp_xbar_demux_006_src0_startofpacket), // .startofpacket + .src0_endofpacket (rsp_xbar_demux_006_src0_endofpacket) // .endofpacket + ); + + nios_system_rsp_xbar_demux_002 rsp_xbar_demux_007 ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .sink_ready (id_router_007_src_ready), // sink.ready + .sink_channel (id_router_007_src_channel), // .channel + .sink_data (id_router_007_src_data), // .data + .sink_startofpacket (id_router_007_src_startofpacket), // .startofpacket + .sink_endofpacket (id_router_007_src_endofpacket), // .endofpacket + .sink_valid (id_router_007_src_valid), // .valid + .src0_ready (rsp_xbar_demux_007_src0_ready), // src0.ready + .src0_valid (rsp_xbar_demux_007_src0_valid), // .valid + .src0_data (rsp_xbar_demux_007_src0_data), // .data + .src0_channel (rsp_xbar_demux_007_src0_channel), // .channel + .src0_startofpacket (rsp_xbar_demux_007_src0_startofpacket), // .startofpacket + .src0_endofpacket (rsp_xbar_demux_007_src0_endofpacket) // .endofpacket + ); + + nios_system_rsp_xbar_demux_002 rsp_xbar_demux_008 ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .sink_ready (id_router_008_src_ready), // sink.ready + .sink_channel (id_router_008_src_channel), // .channel + .sink_data (id_router_008_src_data), // .data + .sink_startofpacket (id_router_008_src_startofpacket), // .startofpacket + .sink_endofpacket (id_router_008_src_endofpacket), // .endofpacket + .sink_valid (id_router_008_src_valid), // .valid + .src0_ready (rsp_xbar_demux_008_src0_ready), // src0.ready + .src0_valid (rsp_xbar_demux_008_src0_valid), // .valid + .src0_data (rsp_xbar_demux_008_src0_data), // .data + .src0_channel (rsp_xbar_demux_008_src0_channel), // .channel + .src0_startofpacket (rsp_xbar_demux_008_src0_startofpacket), // .startofpacket + .src0_endofpacket (rsp_xbar_demux_008_src0_endofpacket) // .endofpacket + ); + + nios_system_rsp_xbar_demux_002 rsp_xbar_demux_009 ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .sink_ready (id_router_009_src_ready), // sink.ready + .sink_channel (id_router_009_src_channel), // .channel + .sink_data (id_router_009_src_data), // .data + .sink_startofpacket (id_router_009_src_startofpacket), // .startofpacket + .sink_endofpacket (id_router_009_src_endofpacket), // .endofpacket + .sink_valid (id_router_009_src_valid), // .valid + .src0_ready (rsp_xbar_demux_009_src0_ready), // src0.ready + .src0_valid (rsp_xbar_demux_009_src0_valid), // .valid + .src0_data (rsp_xbar_demux_009_src0_data), // .data + .src0_channel (rsp_xbar_demux_009_src0_channel), // .channel + .src0_startofpacket (rsp_xbar_demux_009_src0_startofpacket), // .startofpacket + .src0_endofpacket (rsp_xbar_demux_009_src0_endofpacket) // .endofpacket + ); + + nios_system_rsp_xbar_demux_002 rsp_xbar_demux_010 ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .sink_ready (id_router_010_src_ready), // sink.ready + .sink_channel (id_router_010_src_channel), // .channel + .sink_data (id_router_010_src_data), // .data + .sink_startofpacket (id_router_010_src_startofpacket), // .startofpacket + .sink_endofpacket (id_router_010_src_endofpacket), // .endofpacket + .sink_valid (id_router_010_src_valid), // .valid + .src0_ready (rsp_xbar_demux_010_src0_ready), // src0.ready + .src0_valid (rsp_xbar_demux_010_src0_valid), // .valid + .src0_data (rsp_xbar_demux_010_src0_data), // .data + .src0_channel (rsp_xbar_demux_010_src0_channel), // .channel + .src0_startofpacket (rsp_xbar_demux_010_src0_startofpacket), // .startofpacket + .src0_endofpacket (rsp_xbar_demux_010_src0_endofpacket) // .endofpacket + ); + + nios_system_rsp_xbar_demux_002 rsp_xbar_demux_011 ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .sink_ready (id_router_011_src_ready), // sink.ready + .sink_channel (id_router_011_src_channel), // .channel + .sink_data (id_router_011_src_data), // .data + .sink_startofpacket (id_router_011_src_startofpacket), // .startofpacket + .sink_endofpacket (id_router_011_src_endofpacket), // .endofpacket + .sink_valid (id_router_011_src_valid), // .valid + .src0_ready (rsp_xbar_demux_011_src0_ready), // src0.ready + .src0_valid (rsp_xbar_demux_011_src0_valid), // .valid + .src0_data (rsp_xbar_demux_011_src0_data), // .data + .src0_channel (rsp_xbar_demux_011_src0_channel), // .channel + .src0_startofpacket (rsp_xbar_demux_011_src0_startofpacket), // .startofpacket + .src0_endofpacket (rsp_xbar_demux_011_src0_endofpacket) // .endofpacket + ); + + nios_system_rsp_xbar_demux_002 rsp_xbar_demux_012 ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .sink_ready (id_router_012_src_ready), // sink.ready + .sink_channel (id_router_012_src_channel), // .channel + .sink_data (id_router_012_src_data), // .data + .sink_startofpacket (id_router_012_src_startofpacket), // .startofpacket + .sink_endofpacket (id_router_012_src_endofpacket), // .endofpacket + .sink_valid (id_router_012_src_valid), // .valid + .src0_ready (rsp_xbar_demux_012_src0_ready), // src0.ready + .src0_valid (rsp_xbar_demux_012_src0_valid), // .valid + .src0_data (rsp_xbar_demux_012_src0_data), // .data + .src0_channel (rsp_xbar_demux_012_src0_channel), // .channel + .src0_startofpacket (rsp_xbar_demux_012_src0_startofpacket), // .startofpacket + .src0_endofpacket (rsp_xbar_demux_012_src0_endofpacket) // .endofpacket + ); + + nios_system_rsp_xbar_demux_002 rsp_xbar_demux_013 ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .sink_ready (id_router_013_src_ready), // sink.ready + .sink_channel (id_router_013_src_channel), // .channel + .sink_data (id_router_013_src_data), // .data + .sink_startofpacket (id_router_013_src_startofpacket), // .startofpacket + .sink_endofpacket (id_router_013_src_endofpacket), // .endofpacket + .sink_valid (id_router_013_src_valid), // .valid + .src0_ready (rsp_xbar_demux_013_src0_ready), // src0.ready + .src0_valid (rsp_xbar_demux_013_src0_valid), // .valid + .src0_data (rsp_xbar_demux_013_src0_data), // .data + .src0_channel (rsp_xbar_demux_013_src0_channel), // .channel + .src0_startofpacket (rsp_xbar_demux_013_src0_startofpacket), // .startofpacket + .src0_endofpacket (rsp_xbar_demux_013_src0_endofpacket) // .endofpacket + ); + + nios_system_rsp_xbar_demux_002 rsp_xbar_demux_014 ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .sink_ready (id_router_014_src_ready), // sink.ready + .sink_channel (id_router_014_src_channel), // .channel + .sink_data (id_router_014_src_data), // .data + .sink_startofpacket (id_router_014_src_startofpacket), // .startofpacket + .sink_endofpacket (id_router_014_src_endofpacket), // .endofpacket + .sink_valid (id_router_014_src_valid), // .valid + .src0_ready (rsp_xbar_demux_014_src0_ready), // src0.ready + .src0_valid (rsp_xbar_demux_014_src0_valid), // .valid + .src0_data (rsp_xbar_demux_014_src0_data), // .data + .src0_channel (rsp_xbar_demux_014_src0_channel), // .channel + .src0_startofpacket (rsp_xbar_demux_014_src0_startofpacket), // .startofpacket + .src0_endofpacket (rsp_xbar_demux_014_src0_endofpacket) // .endofpacket + ); + + nios_system_rsp_xbar_demux_002 rsp_xbar_demux_015 ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .sink_ready (id_router_015_src_ready), // sink.ready + .sink_channel (id_router_015_src_channel), // .channel + .sink_data (id_router_015_src_data), // .data + .sink_startofpacket (id_router_015_src_startofpacket), // .startofpacket + .sink_endofpacket (id_router_015_src_endofpacket), // .endofpacket + .sink_valid (id_router_015_src_valid), // .valid + .src0_ready (rsp_xbar_demux_015_src0_ready), // src0.ready + .src0_valid (rsp_xbar_demux_015_src0_valid), // .valid + .src0_data (rsp_xbar_demux_015_src0_data), // .data + .src0_channel (rsp_xbar_demux_015_src0_channel), // .channel + .src0_startofpacket (rsp_xbar_demux_015_src0_startofpacket), // .startofpacket + .src0_endofpacket (rsp_xbar_demux_015_src0_endofpacket) // .endofpacket + ); + + nios_system_rsp_xbar_demux_002 rsp_xbar_demux_016 ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .sink_ready (id_router_016_src_ready), // sink.ready + .sink_channel (id_router_016_src_channel), // .channel + .sink_data (id_router_016_src_data), // .data + .sink_startofpacket (id_router_016_src_startofpacket), // .startofpacket + .sink_endofpacket (id_router_016_src_endofpacket), // .endofpacket + .sink_valid (id_router_016_src_valid), // .valid + .src0_ready (rsp_xbar_demux_016_src0_ready), // src0.ready + .src0_valid (rsp_xbar_demux_016_src0_valid), // .valid + .src0_data (rsp_xbar_demux_016_src0_data), // .data + .src0_channel (rsp_xbar_demux_016_src0_channel), // .channel + .src0_startofpacket (rsp_xbar_demux_016_src0_startofpacket), // .startofpacket + .src0_endofpacket (rsp_xbar_demux_016_src0_endofpacket) // .endofpacket + ); + + nios_system_rsp_xbar_demux_002 rsp_xbar_demux_017 ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .sink_ready (id_router_017_src_ready), // sink.ready + .sink_channel (id_router_017_src_channel), // .channel + .sink_data (id_router_017_src_data), // .data + .sink_startofpacket (id_router_017_src_startofpacket), // .startofpacket + .sink_endofpacket (id_router_017_src_endofpacket), // .endofpacket + .sink_valid (id_router_017_src_valid), // .valid + .src0_ready (rsp_xbar_demux_017_src0_ready), // src0.ready + .src0_valid (rsp_xbar_demux_017_src0_valid), // .valid + .src0_data (rsp_xbar_demux_017_src0_data), // .data + .src0_channel (rsp_xbar_demux_017_src0_channel), // .channel + .src0_startofpacket (rsp_xbar_demux_017_src0_startofpacket), // .startofpacket + .src0_endofpacket (rsp_xbar_demux_017_src0_endofpacket) // .endofpacket + ); + + nios_system_rsp_xbar_mux rsp_xbar_mux ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .src_ready (rsp_xbar_mux_src_ready), // src.ready + .src_valid (rsp_xbar_mux_src_valid), // .valid + .src_data (rsp_xbar_mux_src_data), // .data + .src_channel (rsp_xbar_mux_src_channel), // .channel + .src_startofpacket (rsp_xbar_mux_src_startofpacket), // .startofpacket + .src_endofpacket (rsp_xbar_mux_src_endofpacket), // .endofpacket + .sink0_ready (rsp_xbar_demux_src0_ready), // sink0.ready + .sink0_valid (rsp_xbar_demux_src0_valid), // .valid + .sink0_channel (rsp_xbar_demux_src0_channel), // .channel + .sink0_data (rsp_xbar_demux_src0_data), // .data + .sink0_startofpacket (rsp_xbar_demux_src0_startofpacket), // .startofpacket + .sink0_endofpacket (rsp_xbar_demux_src0_endofpacket), // .endofpacket + .sink1_ready (rsp_xbar_demux_001_src0_ready), // sink1.ready + .sink1_valid (rsp_xbar_demux_001_src0_valid), // .valid + .sink1_channel (rsp_xbar_demux_001_src0_channel), // .channel + .sink1_data (rsp_xbar_demux_001_src0_data), // .data + .sink1_startofpacket (rsp_xbar_demux_001_src0_startofpacket), // .startofpacket + .sink1_endofpacket (rsp_xbar_demux_001_src0_endofpacket) // .endofpacket + ); + + nios_system_rsp_xbar_mux_001 rsp_xbar_mux_001 ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .src_ready (rsp_xbar_mux_001_src_ready), // src.ready + .src_valid (rsp_xbar_mux_001_src_valid), // .valid + .src_data (rsp_xbar_mux_001_src_data), // .data + .src_channel (rsp_xbar_mux_001_src_channel), // .channel + .src_startofpacket (rsp_xbar_mux_001_src_startofpacket), // .startofpacket + .src_endofpacket (rsp_xbar_mux_001_src_endofpacket), // .endofpacket + .sink0_ready (rsp_xbar_demux_src1_ready), // sink0.ready + .sink0_valid (rsp_xbar_demux_src1_valid), // .valid + .sink0_channel (rsp_xbar_demux_src1_channel), // .channel + .sink0_data (rsp_xbar_demux_src1_data), // .data + .sink0_startofpacket (rsp_xbar_demux_src1_startofpacket), // .startofpacket + .sink0_endofpacket (rsp_xbar_demux_src1_endofpacket), // .endofpacket + .sink1_ready (rsp_xbar_demux_001_src1_ready), // sink1.ready + .sink1_valid (rsp_xbar_demux_001_src1_valid), // .valid + .sink1_channel (rsp_xbar_demux_001_src1_channel), // .channel + .sink1_data (rsp_xbar_demux_001_src1_data), // .data + .sink1_startofpacket (rsp_xbar_demux_001_src1_startofpacket), // .startofpacket + .sink1_endofpacket (rsp_xbar_demux_001_src1_endofpacket), // .endofpacket + .sink2_ready (rsp_xbar_demux_002_src0_ready), // sink2.ready + .sink2_valid (rsp_xbar_demux_002_src0_valid), // .valid + .sink2_channel (rsp_xbar_demux_002_src0_channel), // .channel + .sink2_data (rsp_xbar_demux_002_src0_data), // .data + .sink2_startofpacket (rsp_xbar_demux_002_src0_startofpacket), // .startofpacket + .sink2_endofpacket (rsp_xbar_demux_002_src0_endofpacket), // .endofpacket + .sink3_ready (rsp_xbar_demux_003_src0_ready), // sink3.ready + .sink3_valid (rsp_xbar_demux_003_src0_valid), // .valid + .sink3_channel (rsp_xbar_demux_003_src0_channel), // .channel + .sink3_data (rsp_xbar_demux_003_src0_data), // .data + .sink3_startofpacket (rsp_xbar_demux_003_src0_startofpacket), // .startofpacket + .sink3_endofpacket (rsp_xbar_demux_003_src0_endofpacket), // .endofpacket + .sink4_ready (rsp_xbar_demux_004_src0_ready), // sink4.ready + .sink4_valid (rsp_xbar_demux_004_src0_valid), // .valid + .sink4_channel (rsp_xbar_demux_004_src0_channel), // .channel + .sink4_data (rsp_xbar_demux_004_src0_data), // .data + .sink4_startofpacket (rsp_xbar_demux_004_src0_startofpacket), // .startofpacket + .sink4_endofpacket (rsp_xbar_demux_004_src0_endofpacket), // .endofpacket + .sink5_ready (rsp_xbar_demux_005_src0_ready), // sink5.ready + .sink5_valid (rsp_xbar_demux_005_src0_valid), // .valid + .sink5_channel (rsp_xbar_demux_005_src0_channel), // .channel + .sink5_data (rsp_xbar_demux_005_src0_data), // .data + .sink5_startofpacket (rsp_xbar_demux_005_src0_startofpacket), // .startofpacket + .sink5_endofpacket (rsp_xbar_demux_005_src0_endofpacket), // .endofpacket + .sink6_ready (rsp_xbar_demux_006_src0_ready), // sink6.ready + .sink6_valid (rsp_xbar_demux_006_src0_valid), // .valid + .sink6_channel (rsp_xbar_demux_006_src0_channel), // .channel + .sink6_data (rsp_xbar_demux_006_src0_data), // .data + .sink6_startofpacket (rsp_xbar_demux_006_src0_startofpacket), // .startofpacket + .sink6_endofpacket (rsp_xbar_demux_006_src0_endofpacket), // .endofpacket + .sink7_ready (rsp_xbar_demux_007_src0_ready), // sink7.ready + .sink7_valid (rsp_xbar_demux_007_src0_valid), // .valid + .sink7_channel (rsp_xbar_demux_007_src0_channel), // .channel + .sink7_data (rsp_xbar_demux_007_src0_data), // .data + .sink7_startofpacket (rsp_xbar_demux_007_src0_startofpacket), // .startofpacket + .sink7_endofpacket (rsp_xbar_demux_007_src0_endofpacket), // .endofpacket + .sink8_ready (rsp_xbar_demux_008_src0_ready), // sink8.ready + .sink8_valid (rsp_xbar_demux_008_src0_valid), // .valid + .sink8_channel (rsp_xbar_demux_008_src0_channel), // .channel + .sink8_data (rsp_xbar_demux_008_src0_data), // .data + .sink8_startofpacket (rsp_xbar_demux_008_src0_startofpacket), // .startofpacket + .sink8_endofpacket (rsp_xbar_demux_008_src0_endofpacket), // .endofpacket + .sink9_ready (rsp_xbar_demux_009_src0_ready), // sink9.ready + .sink9_valid (rsp_xbar_demux_009_src0_valid), // .valid + .sink9_channel (rsp_xbar_demux_009_src0_channel), // .channel + .sink9_data (rsp_xbar_demux_009_src0_data), // .data + .sink9_startofpacket (rsp_xbar_demux_009_src0_startofpacket), // .startofpacket + .sink9_endofpacket (rsp_xbar_demux_009_src0_endofpacket), // .endofpacket + .sink10_ready (rsp_xbar_demux_010_src0_ready), // sink10.ready + .sink10_valid (rsp_xbar_demux_010_src0_valid), // .valid + .sink10_channel (rsp_xbar_demux_010_src0_channel), // .channel + .sink10_data (rsp_xbar_demux_010_src0_data), // .data + .sink10_startofpacket (rsp_xbar_demux_010_src0_startofpacket), // .startofpacket + .sink10_endofpacket (rsp_xbar_demux_010_src0_endofpacket), // .endofpacket + .sink11_ready (rsp_xbar_demux_011_src0_ready), // sink11.ready + .sink11_valid (rsp_xbar_demux_011_src0_valid), // .valid + .sink11_channel (rsp_xbar_demux_011_src0_channel), // .channel + .sink11_data (rsp_xbar_demux_011_src0_data), // .data + .sink11_startofpacket (rsp_xbar_demux_011_src0_startofpacket), // .startofpacket + .sink11_endofpacket (rsp_xbar_demux_011_src0_endofpacket), // .endofpacket + .sink12_ready (rsp_xbar_demux_012_src0_ready), // sink12.ready + .sink12_valid (rsp_xbar_demux_012_src0_valid), // .valid + .sink12_channel (rsp_xbar_demux_012_src0_channel), // .channel + .sink12_data (rsp_xbar_demux_012_src0_data), // .data + .sink12_startofpacket (rsp_xbar_demux_012_src0_startofpacket), // .startofpacket + .sink12_endofpacket (rsp_xbar_demux_012_src0_endofpacket), // .endofpacket + .sink13_ready (rsp_xbar_demux_013_src0_ready), // sink13.ready + .sink13_valid (rsp_xbar_demux_013_src0_valid), // .valid + .sink13_channel (rsp_xbar_demux_013_src0_channel), // .channel + .sink13_data (rsp_xbar_demux_013_src0_data), // .data + .sink13_startofpacket (rsp_xbar_demux_013_src0_startofpacket), // .startofpacket + .sink13_endofpacket (rsp_xbar_demux_013_src0_endofpacket), // .endofpacket + .sink14_ready (rsp_xbar_demux_014_src0_ready), // sink14.ready + .sink14_valid (rsp_xbar_demux_014_src0_valid), // .valid + .sink14_channel (rsp_xbar_demux_014_src0_channel), // .channel + .sink14_data (rsp_xbar_demux_014_src0_data), // .data + .sink14_startofpacket (rsp_xbar_demux_014_src0_startofpacket), // .startofpacket + .sink14_endofpacket (rsp_xbar_demux_014_src0_endofpacket), // .endofpacket + .sink15_ready (rsp_xbar_demux_015_src0_ready), // sink15.ready + .sink15_valid (rsp_xbar_demux_015_src0_valid), // .valid + .sink15_channel (rsp_xbar_demux_015_src0_channel), // .channel + .sink15_data (rsp_xbar_demux_015_src0_data), // .data + .sink15_startofpacket (rsp_xbar_demux_015_src0_startofpacket), // .startofpacket + .sink15_endofpacket (rsp_xbar_demux_015_src0_endofpacket), // .endofpacket + .sink16_ready (rsp_xbar_demux_016_src0_ready), // sink16.ready + .sink16_valid (rsp_xbar_demux_016_src0_valid), // .valid + .sink16_channel (rsp_xbar_demux_016_src0_channel), // .channel + .sink16_data (rsp_xbar_demux_016_src0_data), // .data + .sink16_startofpacket (rsp_xbar_demux_016_src0_startofpacket), // .startofpacket + .sink16_endofpacket (rsp_xbar_demux_016_src0_endofpacket), // .endofpacket + .sink17_ready (rsp_xbar_demux_017_src0_ready), // sink17.ready + .sink17_valid (rsp_xbar_demux_017_src0_valid), // .valid + .sink17_channel (rsp_xbar_demux_017_src0_channel), // .channel + .sink17_data (rsp_xbar_demux_017_src0_data), // .data + .sink17_startofpacket (rsp_xbar_demux_017_src0_startofpacket), // .startofpacket + .sink17_endofpacket (rsp_xbar_demux_017_src0_endofpacket) // .endofpacket + ); + + nios_system_irq_mapper irq_mapper ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .receiver0_irq (irq_mapper_receiver0_irq), // receiver0.irq + .sender_irq (nios2_processor_d_irq_irq) // sender.irq + ); + +endmodule diff --git a/db/ip/nios_system/nios_system__report.html b/db/ip/nios_system/nios_system__report.html new file mode 100644 index 0000000..fa39d9b --- /dev/null +++ b/db/ip/nios_system/nios_system__report.html @@ -0,0 +1,4862 @@ + + + + + datasheet for nios_system + + + + + + + + +
nios_system +
+
+
+ + + + + +
2016.12.02.01:32:12Datasheet
+
+
Overview
+
+
+ + + + + + + + +
  clk_0 nios_system
+
+
Processor +
   + nios2_processor + Nios II 13.0 +
All Components +
   + nios2_processor + altera_nios2_qsys 13.0 +
   + onchip_memory + altera_avalon_onchip_memory2 13.0.1.99.2 +
   + jtag_uart + altera_avalon_jtag_uart 13.0.1.99.2 +
   + LEDs + altera_avalon_pio 13.0.1.99.2 +
   + LEDRs + altera_avalon_pio 13.0.1.99.2 +
   + switches + altera_avalon_pio 13.0.1.99.2 +
   + push_switches + altera_avalon_pio 13.0.1.99.2 +
   + hex0 + altera_avalon_pio 13.0.1.99.2 +
   + hex1 + altera_avalon_pio 13.0.1.99.2 +
   + hex2 + altera_avalon_pio 13.0.1.99.2 +
   + hex3 + altera_avalon_pio 13.0.1.99.2 +
   + hex4 + altera_avalon_pio 13.0.1.99.2 +
   + hex5 + altera_avalon_pio 13.0.1.99.2 +
   + hex6 + altera_avalon_pio 13.0.1.99.2 +
   + hex7 + altera_avalon_pio 13.0.1.99.2 +
   + lcd_16207_0 + altera_avalon_lcd_16207 13.0.1.99.2 +
   + lcd_on + altera_avalon_pio 13.0.1.99.2 +
   + lcd_blon + altera_avalon_pio 13.0.1.99.2
+
+
+
+
Memory Map
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ nios2_processor + +
 data_master instruction_master
  + nios2_processor + +
jtag_debug_module 0x000408000x00040800
  + onchip_memory + +
s1 0x000000000x00000000
  + jtag_uart + +
avalon_jtag_slave 0x00041100
  + LEDs + +
s1 0x000410f0
  + LEDRs + +
s1 0x000410e0
  + switches + +
s1 0x000410d0
  + push_switches + +
s1 0x000410c0
  + hex0 + +
s1 0x000410b0
  + hex1 + +
s1 0x000410a0
  + hex2 + +
s1 0x00041090
  + hex3 + +
s1 0x00041080
  + hex4 + +
s1 0x00041070
  + hex5 + +
s1 0x00041060
  + hex6 + +
s1 0x00041050
  + hex7 + +
s1 0x00041040
  + lcd_16207_0 + +
control_slave 0x00041030
  + lcd_on + +
s1 0x00041010
  + lcd_blon + +
s1 0x00041020
+ +
+
+

clk_0

clock_source v13.0 +
+
+
+ + + + +
+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + +
clockFrequency50000000
clockFrequencyKnowntrue
inputClockFrequency0
resetSynchronousEdgesNONE
deviceFamilyUNKNOWN
generateLegacySimfalse
+
   + + + + +
+

Software Assignments

(none)
+
+ +
+
+

nios2_processor

altera_nios2_qsys v13.0 +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ clk_0 + clk  nios2_processor
  clk
clk_reset  
  reset_n
jtag_debug_module_reset   + onchip_memory +
  reset1
instruction_master  
  s1
data_master  
  s1
jtag_debug_module_reset   + jtag_uart +
  reset
d_irq  
  irq
data_master  
  avalon_jtag_slave
jtag_debug_module_reset   + LEDs +
  reset
data_master  
  s1
data_master   + LEDRs +
  s1
jtag_debug_module_reset  
  reset
jtag_debug_module_reset   + switches +
  reset
data_master  
  s1
data_master   + push_switches +
  s1
jtag_debug_module_reset  
  reset
data_master   + hex0 +
  s1
jtag_debug_module_reset  
  reset
data_master   + hex1 +
  s1
jtag_debug_module_reset  
  reset
data_master   + hex2 +
  s1
jtag_debug_module_reset  
  reset
data_master   + hex3 +
  s1
jtag_debug_module_reset  
  reset
data_master   + hex4 +
  s1
jtag_debug_module_reset  
  reset
data_master   + hex5 +
  s1
jtag_debug_module_reset  
  reset
data_master   + hex6 +
  s1
jtag_debug_module_reset  
  reset
data_master   + hex7 +
  s1
jtag_debug_module_reset  
  reset
jtag_debug_module_reset   + lcd_16207_0 +
  reset
data_master  
  control_slave
data_master   + lcd_on +
  s1
jtag_debug_module_reset  
  reset
jtag_debug_module_reset   + lcd_blon +
  reset
data_master  
  s1
+
+
+
+ + + + +
+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
setting_showUnpublishedSettingsfalse
setting_showInternalSettingsfalse
setting_preciseSlaveAccessErrorExceptionfalse
setting_preciseIllegalMemAccessExceptionfalse
setting_preciseDivisionErrorExceptionfalse
setting_performanceCounterfalse
setting_illegalMemAccessDetectionfalse
setting_illegalInstructionsTrapfalse
setting_fullWaveformSignalsfalse
setting_extraExceptionInfofalse
setting_exportPCBfalse
setting_debugSimGenfalse
setting_clearXBitsLDNonBypasstrue
setting_bit31BypassDCachetrue
setting_bigEndianfalse
setting_export_large_RAMsfalse
setting_asic_enabledfalse
setting_asic_synopsys_translate_on_offfalse
setting_oci_export_jtag_signalsfalse
setting_bhtIndexPcOnlyfalse
setting_avalonDebugPortPresentfalse
setting_alwaysEncrypttrue
setting_allowFullAddressRangefalse
setting_activateTracetrue
setting_activateTestEndCheckerfalse
setting_activateMonitorstrue
setting_activateModelCheckerfalse
setting_HDLSimCachesClearedtrue
setting_HBreakTestfalse
muldiv_dividerfalse
mpu_useLimitfalse
mpu_enabledfalse
mmu_enabledfalse
mmu_autoAssignTlbPtrSztrue
manuallyAssignCpuIDtrue
debug_triggerArmingtrue
debug_embeddedPLLtrue
debug_debugReqSignalsfalse
debug_assignJtagInstanceIDfalse
dcache_omitDataMasterfalse
cpuResetfalse
is_hardcopy_compatiblefalse
setting_shadowRegisterSets0
mpu_numOfInstRegion8
mpu_numOfDataRegion8
mmu_TLBMissExcOffset0
debug_jtagInstanceID0
resetOffset0
exceptionOffset32
cpuID0
cpuID_stored0
breakOffset32
userDefinedSettings
resetSlaveonchip_memory.s1
mmu_TLBMissExcSlaveNone
exceptionSlaveonchip_memory.s1
breakSlavenios2_processor.jtag_debug_module
setting_perfCounterWidth32
setting_interruptControllerTypeInternal
setting_branchPredictionTypeAutomatic
setting_bhtPtrSz8
muldiv_multiplierTypeEmbeddedMulFast
mpu_minInstRegionSize12
mpu_minDataRegionSize12
mmu_uitlbNumEntries4
mmu_udtlbNumEntries6
mmu_tlbPtrSz7
mmu_tlbNumWays16
mmu_processIDNumBits8
implTiny
icache_size4096
icache_tagramBlockTypeAutomatic
icache_ramBlockTypeAutomatic
icache_numTCIM0
icache_burstTypeNone
dcache_burstsfalse
dcache_victim_buf_implram
debug_levelLevel1
debug_OCIOnchipTrace_128
dcache_size2048
dcache_tagramBlockTypeAutomatic
dcache_ramBlockTypeAutomatic
dcache_numTCDM0
dcache_lineSize32
setting_exportvectorsfalse
setting_ecc_presentfalse
regfile_ramBlockTypeAutomatic
ocimem_ramBlockTypeAutomatic
mmu_ramBlockTypeAutomatic
bht_ramBlockTypeAutomatic
resetAbsoluteAddr0
exceptionAbsoluteAddr32
breakAbsoluteAddr264224
mmu_TLBMissExcAbsAddr0
dcache_bursts_derivedfalse
dcache_size_derived2048
dcache_lineSize_derived32
translate_on "synthesis translate_on"
translate_off "synthesis translate_off"
instAddrWidth19
dataAddrWidth19
tightlyCoupledDataMaster0AddrWidth1
tightlyCoupledDataMaster1AddrWidth1
tightlyCoupledDataMaster2AddrWidth1
tightlyCoupledDataMaster3AddrWidth1
tightlyCoupledInstructionMaster0AddrWidth1
tightlyCoupledInstructionMaster1AddrWidth1
tightlyCoupledInstructionMaster2AddrWidth1
tightlyCoupledInstructionMaster3AddrWidth1
instSlaveMapParam<address-map><slave name='onchip_memory.s1' start='0x0' end='0x32000' /><slave name='nios2_processor.jtag_debug_module' start='0x40800' end='0x41000' /></address-map>
dataSlaveMapParam<address-map><slave name='onchip_memory.s1' start='0x0' end='0x32000' /><slave name='nios2_processor.jtag_debug_module' start='0x40800' end='0x41000' /><slave name='lcd_on.s1' start='0x41010' end='0x41020' /><slave name='lcd_blon.s1' start='0x41020' end='0x41030' /><slave name='lcd_16207_0.control_slave' start='0x41030' end='0x41040' /><slave name='hex7.s1' start='0x41040' end='0x41050' /><slave name='hex6.s1' start='0x41050' end='0x41060' /><slave name='hex5.s1' start='0x41060' end='0x41070' /><slave name='hex4.s1' start='0x41070' end='0x41080' /><slave name='hex3.s1' start='0x41080' end='0x41090' /><slave name='hex2.s1' start='0x41090' end='0x410A0' /><slave name='hex1.s1' start='0x410A0' end='0x410B0' /><slave name='hex0.s1' start='0x410B0' end='0x410C0' /><slave name='push_switches.s1' start='0x410C0' end='0x410D0' /><slave name='switches.s1' start='0x410D0' end='0x410E0' /><slave name='LEDRs.s1' start='0x410E0' end='0x410F0' /><slave name='LEDs.s1' start='0x410F0' end='0x41100' /><slave name='jtag_uart.avalon_jtag_slave' start='0x41100' end='0x41108' /></address-map>
clockFrequency50000000
deviceFamilyNameCYCLONEIVE
internalIrqMaskSystemInfo32
customInstSlavesSystemInfo<info/>
deviceFeaturesSystemInfoADDRESS_STALL 1 CELL_LEVEL_BACK_ANNOTATION_DISABLED 0 COMPILER_SUPPORT 1 DSP 0 DSP_SHIFTER_BLOCK 0 DUMP_ASM_LAB_BITS_FOR_POWER 1 EMUL 1 ENABLE_ADVANCED_IO_ANALYSIS_GUI_FEATURES 1 EPCS 1 ESB 0 FAKE1 0 FAKE2 0 FAKE3 0 FAMILY_LEVEL_INSTALLATION_ONLY 1 FITTER_USE_FALLING_EDGE_DELAY 0 GENERATE_DC_ON_CURRENT_WARNING_FOR_INTERNAL_CLAMPING_DIODE 0 HARDCOPY 0 HAS_18_BIT_MULTS 0 HAS_ACE_SUPPORT 1 HAS_ADJUSTABLE_OUTPUT_IO_TIMING_MEAS_POINT 0 HAS_ADVANCED_IO_INVERTED_CORNER 0 HAS_ADVANCED_IO_POWER_SUPPORT 1 HAS_ADVANCED_IO_TIMING_SUPPORT 1 HAS_ALM_SUPPORT 0 HAS_ATOM_AND_ROUTING_POWER_MODELED_TOGETHER 0 HAS_AUTO_DERIVE_CLOCK_UNCERTAINTY_SUPPORT 0 HAS_AUTO_FIT_SUPPORT 1 HAS_BALANCED_OPT_TECHNIQUE_SUPPORT 1 HAS_BENEFICIAL_SKEW_SUPPORT 1 HAS_BITLEVEL_DRIVE_STRENGTH_CONTROL 1 HAS_BSDL_FILE_GENERATION 1 HAS_CGA_SUPPORT 1 HAS_CHECK_NETLIST_SUPPORT 0 HAS_CLOCK_REGION_CHECKER_ENABLED 1 HAS_CORE_JUNCTION_TEMP_DERATING 0 HAS_CROSSTALK_SUPPORT 0 HAS_CUSTOM_REGION_SUPPORT 1 HAS_DAP_JTAG_FROM_HPS 0 HAS_DATA_DRIVEN_ACVQ_HSSI_SUPPORT 0 HAS_DDB_FDI_SUPPORT 0 HAS_DESIGN_ANALYZER_SUPPORT 1 HAS_DETAILED_IO_RAIL_POWER_MODEL 1 HAS_DETAILED_LEIM_STATIC_POWER_MODEL 1 HAS_DETAILED_LE_POWER_MODEL 1 HAS_DETAILED_ROUTING_MUX_STATIC_POWER_MODEL 1 HAS_DETAILED_THERMAL_CIRCUIT_PARAMETER_SUPPORT 1 HAS_DEVICE_MIGRATION_SUPPORT 1 HAS_DIAGONAL_MIGRATION_SUPPORT 0 HAS_EMIF_TOOLKIT_SUPPORT 0 HAS_ERROR_DETECTION_SUPPORT 0 HAS_FAMILY_VARIANT_MIGRATION_SUPPORT 0 HAS_FANOUT_FREE_NODE_SUPPORT 1 HAS_FAST_FIT_SUPPORT 1 HAS_FITTER_EARLY_TIMING_ESTIMATE_SUPPORT 1 HAS_FITTER_ECO_SUPPORT 1 HAS_FIT_NETLIST_OPT_RETIME_SUPPORT 1 HAS_FIT_NETLIST_OPT_SUPPORT 1 HAS_FORMAL_VERIFICATION_SUPPORT 1 HAS_FPGA_XCHANGE_SUPPORT 1 HAS_FSAC_LUTRAM_REGISTER_PACKING_SUPPORT 0 HAS_FULL_DAT_MIN_TIMING_SUPPORT 1 HAS_FULL_INCREMENTAL_DESIGN_SUPPORT 1 HAS_FUNCTIONAL_SIMULATION_SUPPORT 1 HAS_FUNCTIONAL_VERILOG_SIMULATION_SUPPORT 0 HAS_FUNCTIONAL_VHDL_SIMULATION_SUPPORT 0 HAS_GLITCH_FILTERING_SUPPORT 1 HAS_HC_READY_SUPPORT 0 HAS_HIGH_SPEED_LOW_POWER_TILE_SUPPORT 0 HAS_HOLD_TIME_AVOIDANCE_ACROSS_CLOCK_SPINE_SUPPORT 1 HAS_HSPICE_WRITER_SUPPORT 1 HAS_HSSI_POWER_CALCULATOR 0 HAS_IBISO_WRITER_SUPPORT 0 HAS_INCREMENTAL_DAT_SUPPORT 1 HAS_INCREMENTAL_SYNTHESIS_SUPPORT 1 HAS_INTERFACE_PLANNER_SUPPORT 0 HAS_IO_ASSIGNMENT_ANALYSIS_SUPPORT 1 HAS_IO_DECODER 0 HAS_IO_PLACEMENT_OPTIMIZATION_SUPPORT 1 HAS_IO_SMART_RECOMPILE_SUPPORT 0 HAS_JITTER_SUPPORT 1 HAS_JTAG_SLD_HUB_SUPPORT 1 HAS_LIMITED_TCL_FITTER_SUPPORT 0 HAS_LOGIC_LOCK_SUPPORT 1 HAS_MICROPROCESSOR 0 HAS_MIF_SMART_COMPILE_SUPPORT 1 HAS_MINMAX_TIMING_MODELING_SUPPORT 1 HAS_MIN_TIMING_ANALYSIS_SUPPORT 1 HAS_MUX_RESTRUCTURE_SUPPORT 1 HAS_NEW_HC_FLOW_SUPPORT 0 HAS_NEW_SERDES_MAX_RESOURCE_COUNT_REPORTING_SUPPORT 1 HAS_NEW_VPR_SUPPORT 1 HAS_NONSOCKET_TECHNOLOGY_MIGRATION_SUPPORT 0 HAS_NO_HARDBLOCK_PARTITION_SUPPORT 0 HAS_NO_JTAG_USERCODE_SUPPORT 0 HAS_OPERATING_SETTINGS_AND_CONDITIONS_REPORTING_SUPPORT 1 HAS_PAD_LOCATION_ASSIGNMENT_SUPPORT 0 HAS_PARTIAL_RECONFIG_SUPPORT 0 HAS_PHYSICAL_NETLIST_OUTPUT 0 HAS_PHYSICAL_ROUTING_SUPPORT 0 HAS_PIN_SPECIFIC_VOLTAGE_SUPPORT 1 HAS_PLDM_REF_SUPPORT 1 HAS_POWER_ESTIMATION_SUPPORT 1 HAS_PRELIMINARY_CLOCK_UNCERTAINTY_NUMBERS 0 HAS_PRE_FITTER_FPP_SUPPORT 0 HAS_PRE_FITTER_LUTRAM_NETLIST_CHECKER_ENABLED 0 HAS_PVA_SUPPORT 1 HAS_RCF_SUPPORT 1 HAS_RCF_SUPPORT_FOR_DEBUGGING 0 HAS_RED_BLACK_SEPARATION_SUPPORT 0 HAS_RE_LEVEL_TIMING_GRAPH_SUPPORT 1 HAS_RISEFALL_DELAY_SUPPORT 1 HAS_SIGNAL_PROBE_SUPPORT 1 HAS_SIGNAL_TAP_SUPPORT 1 HAS_SIMULATOR_SUPPORT 0 HAS_SPLIT_IO_SUPPORT 1 HAS_SPLIT_LC_SUPPORT 1 HAS_SYNTH_FSYN_NETLIST_OPT_SUPPORT 1 HAS_SYNTH_NETLIST_OPT_RETIME_SUPPORT 1 HAS_SYNTH_NETLIST_OPT_SUPPORT 1 HAS_TCL_FITTER_SUPPORT 0 HAS_TECHNOLOGY_MIGRATION_SUPPORT 0 HAS_TEMPLATED_REGISTER_PACKING_SUPPORT 1 HAS_TIME_BORROWING_SUPPORT 0 HAS_TIMING_DRIVEN_SYNTHESIS_SUPPORT 1 HAS_TIMING_INFO_SUPPORT 1 HAS_TIMING_OPERATING_CONDITIONS 1 HAS_TIMING_SIMULATION_SUPPORT 1 HAS_TITAN_BASED_MAC_REGISTER_PACKER_SUPPORT 0 HAS_U2B2_SUPPORT 0 HAS_USER_HIGH_SPEED_LOW_POWER_TILE_SUPPORT 0 HAS_USE_FITTER_INFO_SUPPORT 1 HAS_VCCPD_POWER_RAIL 0 HAS_VERTICAL_MIGRATION_SUPPORT 1 HAS_VIEWDRAW_SYMBOL_SUPPORT 0 HAS_VIO_SUPPORT 1 HAS_VIRTUAL_DEVICES 0 HAS_WYSIWYG_DFFEAS_SUPPORT 1 HAS_XIBISO_WRITER_SUPPORT 1 IFP_USE_LEGACY_IO_CHECKER 0 INCREMENTAL_DESIGN_SUPPORTS_COMPATIBLE_CONSTRAINTS 1 INSTALLED 0 IS_CONFIG_ROM 0 IS_DEFAULT_FAMILY 0 IS_HARDCOPY_FAMILY 0 LVDS_IO 1 M10K_MEMORY 0 M144K_MEMORY 0 M20K_MEMORY 0 M4K_MEMORY 0 M512_MEMORY 0 M9K_MEMORY 1 MLAB_MEMORY 0 MRAM_MEMORY 0 NOT_LISTED 0 NO_RPE_SUPPORT 0 NO_SUPPORT_FOR_LOGICLOCK_CONTENT_BACK_ANNOTATION 1 NO_SUPPORT_FOR_STA_CLOCK_UNCERTAINTY_CHECK 0 NO_TDC_SUPPORT 0 POSTFIT_BAK_DATABASE_EXPORT_ENABLED 1 POSTMAP_BAK_DATABASE_EXPORT_ENABLED 1 PROGRAMMER_SUPPORT 1 QFIT_IN_DEVELOPMENT 0 QMAP_IN_DEVELOPMENT 0 RAM_LOGICAL_NAME_CHECKING_IN_CUT_ENABLED 1 REPORTS_METASTABILITY_MTBF 1 REQUIRES_INSTALLATION_PATCH 0 REQUIRES_LIST_OF_TEMPERATURE_AND_VOLTAGE_OPERATING_CONDITIONS 1 RESERVES_SIGNAL_PROBE_PINS 0 RESOLVE_MAX_FANOUT_EARLY 1 RESOLVE_MAX_FANOUT_LATE 0 RESPECTS_FIXED_SIZED_LOCKED_LOCATION_LOGICLOCK 1 RESTRICTED_USER_SELECTION 0 RISEFALL_SUPPORT_IS_HIDDEN 0 STRICT_TIMING_DB_CHECKS 0 SUPPORTS_ADDITIONAL_OPTIONS_FOR_UNUSED_IO 0 SUPPORTS_CRC 1 SUPPORTS_DIFFERENTIAL_AIOT_BOARD_TRACE_MODEL 1 SUPPORTS_DSP_BALANCING_BACK_ANNOTATION 0 SUPPORTS_GENERATION_OF_EARLY_POWER_ESTIMATOR_FILE 1 SUPPORTS_GLOBAL_SIGNAL_BACK_ANNOTATION 0 SUPPORTS_MAC_CHAIN_OUT_ADDER 0 SUPPORTS_RAM_PACKING_BACK_ANNOTATION 0 SUPPORTS_REG_PACKING_BACK_ANNOTATION 0 SUPPORTS_SIGNALPROBE_REGISTER_PIPELINING 1 SUPPORTS_SINGLE_ENDED_AIOT_BOARD_TRACE_MODEL 1 SUPPORTS_USER_MANUAL_LOGIC_DUPLICATION 1 TMV_RUN_CUSTOMIZABLE_VIEWER 1 TMV_RUN_INTERNAL_DETAILS 1 TMV_RUN_INTERNAL_DETAILS_ON_IO 0 TMV_RUN_INTERNAL_DETAILS_ON_IOBUF 1 TMV_RUN_INTERNAL_DETAILS_ON_LCELL 0 TMV_RUN_INTERNAL_DETAILS_ON_LRAM 0 TRANSCEIVER_3G_BLOCK 0 TRANSCEIVER_6G_BLOCK 0 USES_ACV_FOR_FLED 1 USES_ADB_FOR_BACK_ANNOTATION 1 USES_ALTERA_LNSIM 0 USES_ASIC_ROUTING_POWER_CALCULATOR 0 USES_DATA_DRIVEN_PLL_COMPUTATION_UTIL 1 USES_DEV 1 USES_ICP_FOR_ECO_FITTER 0 USES_LIBERTY_TIMING 0 USES_POWER_SIGNAL_ACTIVITIES 1 USES_THIRD_GENERATION_TIMING_MODELS_TIS 1 USES_U2B2_TIMING_MODELS 0 USE_ADVANCED_IO_POWER_BY_DEFAULT 1 USE_ADVANCED_IO_TIMING_BY_DEFAULT 1 USE_BASE_FAMILY_DDB_PATH 0 USE_OCT_AUTO_CALIBRATION 1 USE_RELAX_IO_ASSIGNMENT_RULES 0 USE_RISEFALL_ONLY 1 USE_SEPARATE_LIST_FOR_TECH_MIGRATION 0 USE_SINGLE_COMPILER_PASS_PLL_MIF_FILE_WRITER 1 USE_TITAN_IO_BASED_IO_REGISTER_PACKER_UTIL 0 WYSIWYG_BUS_WIDTH_CHECKING_IN_CUT_ENABLED 1
tightlyCoupledDataMaster0MapParam
tightlyCoupledDataMaster1MapParam
tightlyCoupledDataMaster2MapParam
tightlyCoupledDataMaster3MapParam
tightlyCoupledInstructionMaster0MapParam
tightlyCoupledInstructionMaster1MapParam
tightlyCoupledInstructionMaster2MapParam
tightlyCoupledInstructionMaster3MapParam
deviceFamilyUNKNOWN
generateLegacySimfalse
+
   + + + + +
+

Software Assignments

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
BIG_ENDIAN0
BREAK_ADDR0x00040820
CPU_FREQ50000000u
CPU_ID_SIZE1
CPU_ID_VALUE0x00000000
CPU_IMPLEMENTATION"tiny"
DATA_ADDR_WIDTH19
DCACHE_LINE_SIZE0
DCACHE_LINE_SIZE_LOG20
DCACHE_SIZE0
EXCEPTION_ADDR0x00000020
FLUSHDA_SUPPORTED
HARDWARE_DIVIDE_PRESENT0
HARDWARE_MULTIPLY_PRESENT0
HARDWARE_MULX_PRESENT0
HAS_DEBUG_CORE1
HAS_DEBUG_STUB
HAS_JMPI_INSTRUCTION
ICACHE_LINE_SIZE0
ICACHE_LINE_SIZE_LOG20
ICACHE_SIZE0
INST_ADDR_WIDTH19
RESET_ADDR0x00000000
+
+
+ +
+
+

onchip_memory

altera_avalon_onchip_memory2 v13.0.1.99.2 +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ clk_0 + clk  onchip_memory
  clk1
clk_reset  
  reset1
+ nios2_processor + jtag_debug_module_reset  
  reset1
instruction_master  
  s1
data_master  
  s1
+
+
+
+ + + + +
+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
allowInSystemMemoryContentEditorfalse
blockTypeAUTO
dataWidth32
dualPortfalse
initMemContenttrue
initializationFileNameonchip_mem.hex
instanceIDNONE
memorySize204800
readDuringWriteModeDONT_CARE
simAllowMRAMContentsFilefalse
simMemInitOnlyFilename0
singleClockOperationfalse
slave1Latency1
slave2Latency1
useNonDefaultInitFilefalse
useShallowMemBlocksfalse
writabletrue
autoInitializationFileNamenios_system_onchip_memory
deviceFamilyCYCLONEIVE
deviceFeaturesADDRESS_STALL 1 CELL_LEVEL_BACK_ANNOTATION_DISABLED 0 COMPILER_SUPPORT 1 DSP 0 DSP_SHIFTER_BLOCK 0 DUMP_ASM_LAB_BITS_FOR_POWER 1 EMUL 1 ENABLE_ADVANCED_IO_ANALYSIS_GUI_FEATURES 1 EPCS 1 ESB 0 FAKE1 0 FAKE2 0 FAKE3 0 FAMILY_LEVEL_INSTALLATION_ONLY 1 FITTER_USE_FALLING_EDGE_DELAY 0 GENERATE_DC_ON_CURRENT_WARNING_FOR_INTERNAL_CLAMPING_DIODE 0 HARDCOPY 0 HAS_18_BIT_MULTS 0 HAS_ACE_SUPPORT 1 HAS_ADJUSTABLE_OUTPUT_IO_TIMING_MEAS_POINT 0 HAS_ADVANCED_IO_INVERTED_CORNER 0 HAS_ADVANCED_IO_POWER_SUPPORT 1 HAS_ADVANCED_IO_TIMING_SUPPORT 1 HAS_ALM_SUPPORT 0 HAS_ATOM_AND_ROUTING_POWER_MODELED_TOGETHER 0 HAS_AUTO_DERIVE_CLOCK_UNCERTAINTY_SUPPORT 0 HAS_AUTO_FIT_SUPPORT 1 HAS_BALANCED_OPT_TECHNIQUE_SUPPORT 1 HAS_BENEFICIAL_SKEW_SUPPORT 1 HAS_BITLEVEL_DRIVE_STRENGTH_CONTROL 1 HAS_BSDL_FILE_GENERATION 1 HAS_CGA_SUPPORT 1 HAS_CHECK_NETLIST_SUPPORT 0 HAS_CLOCK_REGION_CHECKER_ENABLED 1 HAS_CORE_JUNCTION_TEMP_DERATING 0 HAS_CROSSTALK_SUPPORT 0 HAS_CUSTOM_REGION_SUPPORT 1 HAS_DAP_JTAG_FROM_HPS 0 HAS_DATA_DRIVEN_ACVQ_HSSI_SUPPORT 0 HAS_DDB_FDI_SUPPORT 0 HAS_DESIGN_ANALYZER_SUPPORT 1 HAS_DETAILED_IO_RAIL_POWER_MODEL 1 HAS_DETAILED_LEIM_STATIC_POWER_MODEL 1 HAS_DETAILED_LE_POWER_MODEL 1 HAS_DETAILED_ROUTING_MUX_STATIC_POWER_MODEL 1 HAS_DETAILED_THERMAL_CIRCUIT_PARAMETER_SUPPORT 1 HAS_DEVICE_MIGRATION_SUPPORT 1 HAS_DIAGONAL_MIGRATION_SUPPORT 0 HAS_EMIF_TOOLKIT_SUPPORT 0 HAS_ERROR_DETECTION_SUPPORT 0 HAS_FAMILY_VARIANT_MIGRATION_SUPPORT 0 HAS_FANOUT_FREE_NODE_SUPPORT 1 HAS_FAST_FIT_SUPPORT 1 HAS_FITTER_EARLY_TIMING_ESTIMATE_SUPPORT 1 HAS_FITTER_ECO_SUPPORT 1 HAS_FIT_NETLIST_OPT_RETIME_SUPPORT 1 HAS_FIT_NETLIST_OPT_SUPPORT 1 HAS_FORMAL_VERIFICATION_SUPPORT 1 HAS_FPGA_XCHANGE_SUPPORT 1 HAS_FSAC_LUTRAM_REGISTER_PACKING_SUPPORT 0 HAS_FULL_DAT_MIN_TIMING_SUPPORT 1 HAS_FULL_INCREMENTAL_DESIGN_SUPPORT 1 HAS_FUNCTIONAL_SIMULATION_SUPPORT 1 HAS_FUNCTIONAL_VERILOG_SIMULATION_SUPPORT 0 HAS_FUNCTIONAL_VHDL_SIMULATION_SUPPORT 0 HAS_GLITCH_FILTERING_SUPPORT 1 HAS_HC_READY_SUPPORT 0 HAS_HIGH_SPEED_LOW_POWER_TILE_SUPPORT 0 HAS_HOLD_TIME_AVOIDANCE_ACROSS_CLOCK_SPINE_SUPPORT 1 HAS_HSPICE_WRITER_SUPPORT 1 HAS_HSSI_POWER_CALCULATOR 0 HAS_IBISO_WRITER_SUPPORT 0 HAS_INCREMENTAL_DAT_SUPPORT 1 HAS_INCREMENTAL_SYNTHESIS_SUPPORT 1 HAS_INTERFACE_PLANNER_SUPPORT 0 HAS_IO_ASSIGNMENT_ANALYSIS_SUPPORT 1 HAS_IO_DECODER 0 HAS_IO_PLACEMENT_OPTIMIZATION_SUPPORT 1 HAS_IO_SMART_RECOMPILE_SUPPORT 0 HAS_JITTER_SUPPORT 1 HAS_JTAG_SLD_HUB_SUPPORT 1 HAS_LIMITED_TCL_FITTER_SUPPORT 0 HAS_LOGIC_LOCK_SUPPORT 1 HAS_MICROPROCESSOR 0 HAS_MIF_SMART_COMPILE_SUPPORT 1 HAS_MINMAX_TIMING_MODELING_SUPPORT 1 HAS_MIN_TIMING_ANALYSIS_SUPPORT 1 HAS_MUX_RESTRUCTURE_SUPPORT 1 HAS_NEW_HC_FLOW_SUPPORT 0 HAS_NEW_SERDES_MAX_RESOURCE_COUNT_REPORTING_SUPPORT 1 HAS_NEW_VPR_SUPPORT 1 HAS_NONSOCKET_TECHNOLOGY_MIGRATION_SUPPORT 0 HAS_NO_HARDBLOCK_PARTITION_SUPPORT 0 HAS_NO_JTAG_USERCODE_SUPPORT 0 HAS_OPERATING_SETTINGS_AND_CONDITIONS_REPORTING_SUPPORT 1 HAS_PAD_LOCATION_ASSIGNMENT_SUPPORT 0 HAS_PARTIAL_RECONFIG_SUPPORT 0 HAS_PHYSICAL_NETLIST_OUTPUT 0 HAS_PHYSICAL_ROUTING_SUPPORT 0 HAS_PIN_SPECIFIC_VOLTAGE_SUPPORT 1 HAS_PLDM_REF_SUPPORT 1 HAS_POWER_ESTIMATION_SUPPORT 1 HAS_PRELIMINARY_CLOCK_UNCERTAINTY_NUMBERS 0 HAS_PRE_FITTER_FPP_SUPPORT 0 HAS_PRE_FITTER_LUTRAM_NETLIST_CHECKER_ENABLED 0 HAS_PVA_SUPPORT 1 HAS_RCF_SUPPORT 1 HAS_RCF_SUPPORT_FOR_DEBUGGING 0 HAS_RED_BLACK_SEPARATION_SUPPORT 0 HAS_RE_LEVEL_TIMING_GRAPH_SUPPORT 1 HAS_RISEFALL_DELAY_SUPPORT 1 HAS_SIGNAL_PROBE_SUPPORT 1 HAS_SIGNAL_TAP_SUPPORT 1 HAS_SIMULATOR_SUPPORT 0 HAS_SPLIT_IO_SUPPORT 1 HAS_SPLIT_LC_SUPPORT 1 HAS_SYNTH_FSYN_NETLIST_OPT_SUPPORT 1 HAS_SYNTH_NETLIST_OPT_RETIME_SUPPORT 1 HAS_SYNTH_NETLIST_OPT_SUPPORT 1 HAS_TCL_FITTER_SUPPORT 0 HAS_TECHNOLOGY_MIGRATION_SUPPORT 0 HAS_TEMPLATED_REGISTER_PACKING_SUPPORT 1 HAS_TIME_BORROWING_SUPPORT 0 HAS_TIMING_DRIVEN_SYNTHESIS_SUPPORT 1 HAS_TIMING_INFO_SUPPORT 1 HAS_TIMING_OPERATING_CONDITIONS 1 HAS_TIMING_SIMULATION_SUPPORT 1 HAS_TITAN_BASED_MAC_REGISTER_PACKER_SUPPORT 0 HAS_U2B2_SUPPORT 0 HAS_USER_HIGH_SPEED_LOW_POWER_TILE_SUPPORT 0 HAS_USE_FITTER_INFO_SUPPORT 1 HAS_VCCPD_POWER_RAIL 0 HAS_VERTICAL_MIGRATION_SUPPORT 1 HAS_VIEWDRAW_SYMBOL_SUPPORT 0 HAS_VIO_SUPPORT 1 HAS_VIRTUAL_DEVICES 0 HAS_WYSIWYG_DFFEAS_SUPPORT 1 HAS_XIBISO_WRITER_SUPPORT 1 IFP_USE_LEGACY_IO_CHECKER 0 INCREMENTAL_DESIGN_SUPPORTS_COMPATIBLE_CONSTRAINTS 1 INSTALLED 0 IS_CONFIG_ROM 0 IS_DEFAULT_FAMILY 0 IS_HARDCOPY_FAMILY 0 LVDS_IO 1 M10K_MEMORY 0 M144K_MEMORY 0 M20K_MEMORY 0 M4K_MEMORY 0 M512_MEMORY 0 M9K_MEMORY 1 MLAB_MEMORY 0 MRAM_MEMORY 0 NOT_LISTED 0 NO_RPE_SUPPORT 0 NO_SUPPORT_FOR_LOGICLOCK_CONTENT_BACK_ANNOTATION 1 NO_SUPPORT_FOR_STA_CLOCK_UNCERTAINTY_CHECK 0 NO_TDC_SUPPORT 0 POSTFIT_BAK_DATABASE_EXPORT_ENABLED 1 POSTMAP_BAK_DATABASE_EXPORT_ENABLED 1 PROGRAMMER_SUPPORT 1 QFIT_IN_DEVELOPMENT 0 QMAP_IN_DEVELOPMENT 0 RAM_LOGICAL_NAME_CHECKING_IN_CUT_ENABLED 1 REPORTS_METASTABILITY_MTBF 1 REQUIRES_INSTALLATION_PATCH 0 REQUIRES_LIST_OF_TEMPERATURE_AND_VOLTAGE_OPERATING_CONDITIONS 1 RESERVES_SIGNAL_PROBE_PINS 0 RESOLVE_MAX_FANOUT_EARLY 1 RESOLVE_MAX_FANOUT_LATE 0 RESPECTS_FIXED_SIZED_LOCKED_LOCATION_LOGICLOCK 1 RESTRICTED_USER_SELECTION 0 RISEFALL_SUPPORT_IS_HIDDEN 0 STRICT_TIMING_DB_CHECKS 0 SUPPORTS_ADDITIONAL_OPTIONS_FOR_UNUSED_IO 0 SUPPORTS_CRC 1 SUPPORTS_DIFFERENTIAL_AIOT_BOARD_TRACE_MODEL 1 SUPPORTS_DSP_BALANCING_BACK_ANNOTATION 0 SUPPORTS_GENERATION_OF_EARLY_POWER_ESTIMATOR_FILE 1 SUPPORTS_GLOBAL_SIGNAL_BACK_ANNOTATION 0 SUPPORTS_MAC_CHAIN_OUT_ADDER 0 SUPPORTS_RAM_PACKING_BACK_ANNOTATION 0 SUPPORTS_REG_PACKING_BACK_ANNOTATION 0 SUPPORTS_SIGNALPROBE_REGISTER_PIPELINING 1 SUPPORTS_SINGLE_ENDED_AIOT_BOARD_TRACE_MODEL 1 SUPPORTS_USER_MANUAL_LOGIC_DUPLICATION 1 TMV_RUN_CUSTOMIZABLE_VIEWER 1 TMV_RUN_INTERNAL_DETAILS 1 TMV_RUN_INTERNAL_DETAILS_ON_IO 0 TMV_RUN_INTERNAL_DETAILS_ON_IOBUF 1 TMV_RUN_INTERNAL_DETAILS_ON_LCELL 0 TMV_RUN_INTERNAL_DETAILS_ON_LRAM 0 TRANSCEIVER_3G_BLOCK 0 TRANSCEIVER_6G_BLOCK 0 USES_ACV_FOR_FLED 1 USES_ADB_FOR_BACK_ANNOTATION 1 USES_ALTERA_LNSIM 0 USES_ASIC_ROUTING_POWER_CALCULATOR 0 USES_DATA_DRIVEN_PLL_COMPUTATION_UTIL 1 USES_DEV 1 USES_ICP_FOR_ECO_FITTER 0 USES_LIBERTY_TIMING 0 USES_POWER_SIGNAL_ACTIVITIES 1 USES_THIRD_GENERATION_TIMING_MODELS_TIS 1 USES_U2B2_TIMING_MODELS 0 USE_ADVANCED_IO_POWER_BY_DEFAULT 1 USE_ADVANCED_IO_TIMING_BY_DEFAULT 1 USE_BASE_FAMILY_DDB_PATH 0 USE_OCT_AUTO_CALIBRATION 1 USE_RELAX_IO_ASSIGNMENT_RULES 0 USE_RISEFALL_ONLY 1 USE_SEPARATE_LIST_FOR_TECH_MIGRATION 0 USE_SINGLE_COMPILER_PASS_PLL_MIF_FILE_WRITER 1 USE_TITAN_IO_BASED_IO_REGISTER_PACKER_UTIL 0 WYSIWYG_BUS_WIDTH_CHECKING_IN_CUT_ENABLED 1
derived_set_addr_width16
derived_gui_ram_block_typeAutomatic
derived_is_hardcopyfalse
derived_init_file_namenios_system_onchip_memory.hex
generateLegacySimfalse
+
   + + + + +
+

Software Assignments

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ALLOW_IN_SYSTEM_MEMORY_CONTENT_EDITOR0
ALLOW_MRAM_SIM_CONTENTS_ONLY_FILE0
CONTENTS_INFO""
DUAL_PORT0
GUI_RAM_BLOCK_TYPEAUTO
INIT_CONTENTS_FILEnios_system_onchip_memory
INIT_MEM_CONTENT1
INSTANCE_IDNONE
NON_DEFAULT_INIT_FILE_ENABLED0
RAM_BLOCK_TYPEAUTO
READ_DURING_WRITE_MODEDONT_CARE
SINGLE_CLOCK_OP0
SIZE_MULTIPLE1
SIZE_VALUE204800
WRITABLE1
+
+
+ +
+
+

jtag_uart

altera_avalon_jtag_uart v13.0.1.99.2 +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ nios2_processor + jtag_debug_module_reset  jtag_uart
  reset
d_irq  
  irq
data_master  
  avalon_jtag_slave
+ clk_0 + clk_reset  
  reset
clk  
  clk
+
+
+
+ + + + +
+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
allowMultipleConnectionsfalse
hubInstanceID0
readBufferDepth64
readIRQThreshold8
simInputCharacterStream
simInteractiveOptionsNO_INTERACTIVE_WINDOWS
useRegistersForReadBufferfalse
useRegistersForWriteBufferfalse
useRelativePathForSimFilefalse
writeBufferDepth64
writeIRQThreshold8
avalonSpec2.0
legacySignalAllowfalse
enableInteractiveInputfalse
enableInteractiveOutputfalse
deviceFamilyUNKNOWN
generateLegacySimfalse
+
   + + + + +
+

Software Assignments

+ + + + + + + + + + + + + + + + + +
READ_DEPTH64
READ_THRESHOLD8
WRITE_DEPTH64
WRITE_THRESHOLD8
+
+
+ +
+
+

LEDs

altera_avalon_pio v13.0.1.99.2 +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ clk_0 + clk  LEDs
  clk
clk_reset  
  reset
+ nios2_processor + jtag_debug_module_reset  
  reset
data_master  
  s1
+
+
+
+ + + + +
+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
bitClearingEdgeCapRegfalse
bitModifyingOutRegfalse
captureEdgefalse
directionOutput
edgeTypeRISING
generateIRQfalse
irqTypeLEVEL
resetValue0
simDoTestBenchWiringfalse
simDrivenValue0
width8
clockRate50000000
derived_has_trifalse
derived_has_outtrue
derived_has_infalse
derived_do_test_bench_wiringfalse
derived_capturefalse
derived_edge_typeNONE
derived_irq_typeNONE
derived_has_irqfalse
deviceFamilyUNKNOWN
generateLegacySimfalse
+
   + + + + +
+

Software Assignments

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
BIT_CLEARING_EDGE_REGISTER0
BIT_MODIFYING_OUTPUT_REGISTER0
CAPTURE0
DATA_WIDTH8
DO_TEST_BENCH_WIRING0
DRIVEN_SIM_VALUE0
EDGE_TYPENONE
FREQ50000000
HAS_IN0
HAS_OUT1
HAS_TRI0
IRQ_TYPENONE
RESET_VALUE0
+
+
+ +
+
+

LEDRs

altera_avalon_pio v13.0.1.99.2 +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ clk_0 + clk  LEDRs
  clk
clk_reset  
  reset
+ nios2_processor + data_master  
  s1
jtag_debug_module_reset  
  reset
+
+
+
+ + + + +
+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
bitClearingEdgeCapRegfalse
bitModifyingOutRegfalse
captureEdgefalse
directionOutput
edgeTypeRISING
generateIRQfalse
irqTypeLEVEL
resetValue0
simDoTestBenchWiringfalse
simDrivenValue0
width18
clockRate50000000
derived_has_trifalse
derived_has_outtrue
derived_has_infalse
derived_do_test_bench_wiringfalse
derived_capturefalse
derived_edge_typeNONE
derived_irq_typeNONE
derived_has_irqfalse
deviceFamilyUNKNOWN
generateLegacySimfalse
+
   + + + + +
+

Software Assignments

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
BIT_CLEARING_EDGE_REGISTER0
BIT_MODIFYING_OUTPUT_REGISTER0
CAPTURE0
DATA_WIDTH18
DO_TEST_BENCH_WIRING0
DRIVEN_SIM_VALUE0
EDGE_TYPENONE
FREQ50000000
HAS_IN0
HAS_OUT1
HAS_TRI0
IRQ_TYPENONE
RESET_VALUE0
+
+
+ +
+
+

switches

altera_avalon_pio v13.0.1.99.2 +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ clk_0 + clk  switches
  clk
clk_reset  
  reset
+ nios2_processor + jtag_debug_module_reset  
  reset
data_master  
  s1
+
+
+
+ + + + +
+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
bitClearingEdgeCapRegfalse
bitModifyingOutRegfalse
captureEdgefalse
directionInput
edgeTypeRISING
generateIRQfalse
irqTypeLEVEL
resetValue0
simDoTestBenchWiringfalse
simDrivenValue0
width18
clockRate50000000
derived_has_trifalse
derived_has_outfalse
derived_has_intrue
derived_do_test_bench_wiringfalse
derived_capturefalse
derived_edge_typeNONE
derived_irq_typeNONE
derived_has_irqfalse
deviceFamilyUNKNOWN
generateLegacySimfalse
+
   + + + + +
+

Software Assignments

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
BIT_CLEARING_EDGE_REGISTER0
BIT_MODIFYING_OUTPUT_REGISTER0
CAPTURE0
DATA_WIDTH18
DO_TEST_BENCH_WIRING0
DRIVEN_SIM_VALUE0
EDGE_TYPENONE
FREQ50000000
HAS_IN1
HAS_OUT0
HAS_TRI0
IRQ_TYPENONE
RESET_VALUE0
+
+
+ +
+
+

push_switches

altera_avalon_pio v13.0.1.99.2 +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ clk_0 + clk  push_switches
  clk
clk_reset  
  reset
+ nios2_processor + data_master  
  s1
jtag_debug_module_reset  
  reset
+
+
+
+ + + + +
+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
bitClearingEdgeCapRegfalse
bitModifyingOutRegfalse
captureEdgefalse
directionInput
edgeTypeRISING
generateIRQfalse
irqTypeLEVEL
resetValue0
simDoTestBenchWiringfalse
simDrivenValue0
width3
clockRate50000000
derived_has_trifalse
derived_has_outfalse
derived_has_intrue
derived_do_test_bench_wiringfalse
derived_capturefalse
derived_edge_typeNONE
derived_irq_typeNONE
derived_has_irqfalse
deviceFamilyUNKNOWN
generateLegacySimfalse
+
   + + + + +
+

Software Assignments

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
BIT_CLEARING_EDGE_REGISTER0
BIT_MODIFYING_OUTPUT_REGISTER0
CAPTURE0
DATA_WIDTH3
DO_TEST_BENCH_WIRING0
DRIVEN_SIM_VALUE0
EDGE_TYPENONE
FREQ50000000
HAS_IN1
HAS_OUT0
HAS_TRI0
IRQ_TYPENONE
RESET_VALUE0
+
+
+ +
+
+

hex0

altera_avalon_pio v13.0.1.99.2 +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ clk_0 + clk  hex0
  clk
clk_reset  
  reset
+ nios2_processor + data_master  
  s1
jtag_debug_module_reset  
  reset
+
+
+
+ + + + +
+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
bitClearingEdgeCapRegfalse
bitModifyingOutRegfalse
captureEdgefalse
directionOutput
edgeTypeRISING
generateIRQfalse
irqTypeLEVEL
resetValue0
simDoTestBenchWiringfalse
simDrivenValue0
width7
clockRate50000000
derived_has_trifalse
derived_has_outtrue
derived_has_infalse
derived_do_test_bench_wiringfalse
derived_capturefalse
derived_edge_typeNONE
derived_irq_typeNONE
derived_has_irqfalse
deviceFamilyUNKNOWN
generateLegacySimfalse
+
   + + + + +
+

Software Assignments

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
BIT_CLEARING_EDGE_REGISTER0
BIT_MODIFYING_OUTPUT_REGISTER0
CAPTURE0
DATA_WIDTH7
DO_TEST_BENCH_WIRING0
DRIVEN_SIM_VALUE0
EDGE_TYPENONE
FREQ50000000
HAS_IN0
HAS_OUT1
HAS_TRI0
IRQ_TYPENONE
RESET_VALUE0
+
+
+ +
+
+

hex1

altera_avalon_pio v13.0.1.99.2 +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ clk_0 + clk  hex1
  clk
clk_reset  
  reset
+ nios2_processor + data_master  
  s1
jtag_debug_module_reset  
  reset
+
+
+
+ + + + +
+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
bitClearingEdgeCapRegfalse
bitModifyingOutRegfalse
captureEdgefalse
directionOutput
edgeTypeRISING
generateIRQfalse
irqTypeLEVEL
resetValue0
simDoTestBenchWiringfalse
simDrivenValue0
width7
clockRate50000000
derived_has_trifalse
derived_has_outtrue
derived_has_infalse
derived_do_test_bench_wiringfalse
derived_capturefalse
derived_edge_typeNONE
derived_irq_typeNONE
derived_has_irqfalse
deviceFamilyUNKNOWN
generateLegacySimfalse
+
   + + + + +
+

Software Assignments

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
BIT_CLEARING_EDGE_REGISTER0
BIT_MODIFYING_OUTPUT_REGISTER0
CAPTURE0
DATA_WIDTH7
DO_TEST_BENCH_WIRING0
DRIVEN_SIM_VALUE0
EDGE_TYPENONE
FREQ50000000
HAS_IN0
HAS_OUT1
HAS_TRI0
IRQ_TYPENONE
RESET_VALUE0
+
+
+ +
+
+

hex2

altera_avalon_pio v13.0.1.99.2 +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ clk_0 + clk  hex2
  clk
clk_reset  
  reset
+ nios2_processor + data_master  
  s1
jtag_debug_module_reset  
  reset
+
+
+
+ + + + +
+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
bitClearingEdgeCapRegfalse
bitModifyingOutRegfalse
captureEdgefalse
directionOutput
edgeTypeRISING
generateIRQfalse
irqTypeLEVEL
resetValue0
simDoTestBenchWiringfalse
simDrivenValue0
width7
clockRate50000000
derived_has_trifalse
derived_has_outtrue
derived_has_infalse
derived_do_test_bench_wiringfalse
derived_capturefalse
derived_edge_typeNONE
derived_irq_typeNONE
derived_has_irqfalse
deviceFamilyUNKNOWN
generateLegacySimfalse
+
   + + + + +
+

Software Assignments

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
BIT_CLEARING_EDGE_REGISTER0
BIT_MODIFYING_OUTPUT_REGISTER0
CAPTURE0
DATA_WIDTH7
DO_TEST_BENCH_WIRING0
DRIVEN_SIM_VALUE0
EDGE_TYPENONE
FREQ50000000
HAS_IN0
HAS_OUT1
HAS_TRI0
IRQ_TYPENONE
RESET_VALUE0
+
+
+ +
+
+

hex3

altera_avalon_pio v13.0.1.99.2 +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ clk_0 + clk  hex3
  clk
clk_reset  
  reset
+ nios2_processor + data_master  
  s1
jtag_debug_module_reset  
  reset
+
+
+
+ + + + +
+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
bitClearingEdgeCapRegfalse
bitModifyingOutRegfalse
captureEdgefalse
directionOutput
edgeTypeRISING
generateIRQfalse
irqTypeLEVEL
resetValue0
simDoTestBenchWiringfalse
simDrivenValue0
width7
clockRate50000000
derived_has_trifalse
derived_has_outtrue
derived_has_infalse
derived_do_test_bench_wiringfalse
derived_capturefalse
derived_edge_typeNONE
derived_irq_typeNONE
derived_has_irqfalse
deviceFamilyUNKNOWN
generateLegacySimfalse
+
   + + + + +
+

Software Assignments

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
BIT_CLEARING_EDGE_REGISTER0
BIT_MODIFYING_OUTPUT_REGISTER0
CAPTURE0
DATA_WIDTH7
DO_TEST_BENCH_WIRING0
DRIVEN_SIM_VALUE0
EDGE_TYPENONE
FREQ50000000
HAS_IN0
HAS_OUT1
HAS_TRI0
IRQ_TYPENONE
RESET_VALUE0
+
+
+ +
+
+

hex4

altera_avalon_pio v13.0.1.99.2 +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ clk_0 + clk  hex4
  clk
clk_reset  
  reset
+ nios2_processor + data_master  
  s1
jtag_debug_module_reset  
  reset
+
+
+
+ + + + +
+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
bitClearingEdgeCapRegfalse
bitModifyingOutRegfalse
captureEdgefalse
directionOutput
edgeTypeRISING
generateIRQfalse
irqTypeLEVEL
resetValue0
simDoTestBenchWiringfalse
simDrivenValue0
width7
clockRate50000000
derived_has_trifalse
derived_has_outtrue
derived_has_infalse
derived_do_test_bench_wiringfalse
derived_capturefalse
derived_edge_typeNONE
derived_irq_typeNONE
derived_has_irqfalse
deviceFamilyUNKNOWN
generateLegacySimfalse
+
   + + + + +
+

Software Assignments

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
BIT_CLEARING_EDGE_REGISTER0
BIT_MODIFYING_OUTPUT_REGISTER0
CAPTURE0
DATA_WIDTH7
DO_TEST_BENCH_WIRING0
DRIVEN_SIM_VALUE0
EDGE_TYPENONE
FREQ50000000
HAS_IN0
HAS_OUT1
HAS_TRI0
IRQ_TYPENONE
RESET_VALUE0
+
+
+ +
+
+

hex5

altera_avalon_pio v13.0.1.99.2 +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ clk_0 + clk  hex5
  clk
clk_reset  
  reset
+ nios2_processor + data_master  
  s1
jtag_debug_module_reset  
  reset
+
+
+
+ + + + +
+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
bitClearingEdgeCapRegfalse
bitModifyingOutRegfalse
captureEdgefalse
directionOutput
edgeTypeRISING
generateIRQfalse
irqTypeLEVEL
resetValue0
simDoTestBenchWiringfalse
simDrivenValue0
width7
clockRate50000000
derived_has_trifalse
derived_has_outtrue
derived_has_infalse
derived_do_test_bench_wiringfalse
derived_capturefalse
derived_edge_typeNONE
derived_irq_typeNONE
derived_has_irqfalse
deviceFamilyUNKNOWN
generateLegacySimfalse
+
   + + + + +
+

Software Assignments

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
BIT_CLEARING_EDGE_REGISTER0
BIT_MODIFYING_OUTPUT_REGISTER0
CAPTURE0
DATA_WIDTH7
DO_TEST_BENCH_WIRING0
DRIVEN_SIM_VALUE0
EDGE_TYPENONE
FREQ50000000
HAS_IN0
HAS_OUT1
HAS_TRI0
IRQ_TYPENONE
RESET_VALUE0
+
+
+ +
+
+

hex6

altera_avalon_pio v13.0.1.99.2 +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ clk_0 + clk  hex6
  clk
clk_reset  
  reset
+ nios2_processor + data_master  
  s1
jtag_debug_module_reset  
  reset
+
+
+
+ + + + +
+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
bitClearingEdgeCapRegfalse
bitModifyingOutRegfalse
captureEdgefalse
directionOutput
edgeTypeRISING
generateIRQfalse
irqTypeLEVEL
resetValue0
simDoTestBenchWiringfalse
simDrivenValue0
width7
clockRate50000000
derived_has_trifalse
derived_has_outtrue
derived_has_infalse
derived_do_test_bench_wiringfalse
derived_capturefalse
derived_edge_typeNONE
derived_irq_typeNONE
derived_has_irqfalse
deviceFamilyUNKNOWN
generateLegacySimfalse
+
   + + + + +
+

Software Assignments

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
BIT_CLEARING_EDGE_REGISTER0
BIT_MODIFYING_OUTPUT_REGISTER0
CAPTURE0
DATA_WIDTH7
DO_TEST_BENCH_WIRING0
DRIVEN_SIM_VALUE0
EDGE_TYPENONE
FREQ50000000
HAS_IN0
HAS_OUT1
HAS_TRI0
IRQ_TYPENONE
RESET_VALUE0
+
+
+ +
+
+

hex7

altera_avalon_pio v13.0.1.99.2 +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ clk_0 + clk  hex7
  clk
clk_reset  
  reset
+ nios2_processor + data_master  
  s1
jtag_debug_module_reset  
  reset
+
+
+
+ + + + +
+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
bitClearingEdgeCapRegfalse
bitModifyingOutRegfalse
captureEdgefalse
directionOutput
edgeTypeRISING
generateIRQfalse
irqTypeLEVEL
resetValue0
simDoTestBenchWiringfalse
simDrivenValue0
width7
clockRate50000000
derived_has_trifalse
derived_has_outtrue
derived_has_infalse
derived_do_test_bench_wiringfalse
derived_capturefalse
derived_edge_typeNONE
derived_irq_typeNONE
derived_has_irqfalse
deviceFamilyUNKNOWN
generateLegacySimfalse
+
   + + + + +
+

Software Assignments

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
BIT_CLEARING_EDGE_REGISTER0
BIT_MODIFYING_OUTPUT_REGISTER0
CAPTURE0
DATA_WIDTH7
DO_TEST_BENCH_WIRING0
DRIVEN_SIM_VALUE0
EDGE_TYPENONE
FREQ50000000
HAS_IN0
HAS_OUT1
HAS_TRI0
IRQ_TYPENONE
RESET_VALUE0
+
+
+ +
+
+

lcd_16207_0

altera_avalon_lcd_16207 v13.0.1.99.2 +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ clk_0 + clk  lcd_16207_0
  clk
clk_reset  
  reset
+ nios2_processor + jtag_debug_module_reset  
  reset
data_master  
  control_slave
+
+
+
+ + + + +
+

Parameters

+ + + + + + + + + +
deviceFamilyUNKNOWN
generateLegacySimfalse
+
   + + + + +
+

Software Assignments

(none)
+
+ +
+
+

lcd_on

altera_avalon_pio v13.0.1.99.2 +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ clk_0 + clk  lcd_on
  clk
clk_reset  
  reset
+ nios2_processor + data_master  
  s1
jtag_debug_module_reset  
  reset
+
+
+
+ + + + +
+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
bitClearingEdgeCapRegfalse
bitModifyingOutRegfalse
captureEdgefalse
directionOutput
edgeTypeRISING
generateIRQfalse
irqTypeLEVEL
resetValue0
simDoTestBenchWiringfalse
simDrivenValue0
width1
clockRate50000000
derived_has_trifalse
derived_has_outtrue
derived_has_infalse
derived_do_test_bench_wiringfalse
derived_capturefalse
derived_edge_typeNONE
derived_irq_typeNONE
derived_has_irqfalse
deviceFamilyUNKNOWN
generateLegacySimfalse
+
   + + + + +
+

Software Assignments

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
BIT_CLEARING_EDGE_REGISTER0
BIT_MODIFYING_OUTPUT_REGISTER0
CAPTURE0
DATA_WIDTH1
DO_TEST_BENCH_WIRING0
DRIVEN_SIM_VALUE0
EDGE_TYPENONE
FREQ50000000
HAS_IN0
HAS_OUT1
HAS_TRI0
IRQ_TYPENONE
RESET_VALUE0
+
+
+ +
+
+

lcd_blon

altera_avalon_pio v13.0.1.99.2 +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ clk_0 + clk  lcd_blon
  clk
clk_reset  
  reset
+ nios2_processor + jtag_debug_module_reset  
  reset
data_master  
  s1
+
+
+
+ + + + +
+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
bitClearingEdgeCapRegfalse
bitModifyingOutRegfalse
captureEdgefalse
directionOutput
edgeTypeRISING
generateIRQfalse
irqTypeLEVEL
resetValue0
simDoTestBenchWiringfalse
simDrivenValue0
width1
clockRate50000000
derived_has_trifalse
derived_has_outtrue
derived_has_infalse
derived_do_test_bench_wiringfalse
derived_capturefalse
derived_edge_typeNONE
derived_irq_typeNONE
derived_has_irqfalse
deviceFamilyUNKNOWN
generateLegacySimfalse
+
   + + + + +
+

Software Assignments

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
BIT_CLEARING_EDGE_REGISTER0
BIT_MODIFYING_OUTPUT_REGISTER0
CAPTURE0
DATA_WIDTH1
DO_TEST_BENCH_WIRING0
DRIVEN_SIM_VALUE0
EDGE_TYPENONE
FREQ50000000
HAS_IN0
HAS_OUT1
HAS_TRI0
IRQ_TYPENONE
RESET_VALUE0
+
+
+ + + + + +
generation took 0.01 secondsrendering took 0.16 seconds
+ + diff --git a/db/ip/nios_system/nios_system__report.xml b/db/ip/nios_system/nios_system__report.xml new file mode 100644 index 0000000..52efdff --- /dev/null +++ b/db/ip/nios_system/nios_system__report.xml @@ -0,0 +1,2521 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + queue size: 0 starting:nios_system "nios_system" + Transform: PipelineBridgeSwap + 19 modules, 75 connections]]> + Transform: ClockCrossingBridgeSwap + Transform: QsysBetaIPSwap + Transform: CustomInstructionTransform + No custom instruction connections, skipping transform + Transform: MMTransform + Transform: TranslatorTransform + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 39 modules, 155 connections]]> + Transform: IDPadTransform + Transform: DomainTransform + Transform merlin_domain_transform not run on matched interfaces nios2_processor.instruction_master and nios2_processor_instruction_master_translator.avalon_anti_master_0 + Transform merlin_domain_transform not run on matched interfaces nios2_processor.data_master and nios2_processor_data_master_translator.avalon_anti_master_0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Transform merlin_domain_transform not run on matched interfaces nios2_processor_jtag_debug_module_translator.avalon_anti_slave_0 and nios2_processor.jtag_debug_module + Transform merlin_domain_transform not run on matched interfaces onchip_memory_s1_translator.avalon_anti_slave_0 and onchip_memory.s1 + Transform merlin_domain_transform not run on matched interfaces LEDs_s1_translator.avalon_anti_slave_0 and LEDs.s1 + Transform merlin_domain_transform not run on matched interfaces jtag_uart_avalon_jtag_slave_translator.avalon_anti_slave_0 and jtag_uart.avalon_jtag_slave + Transform merlin_domain_transform not run on matched interfaces LEDRs_s1_translator.avalon_anti_slave_0 and LEDRs.s1 + Transform merlin_domain_transform not run on matched interfaces switches_s1_translator.avalon_anti_slave_0 and switches.s1 + Transform merlin_domain_transform not run on matched interfaces push_switches_s1_translator.avalon_anti_slave_0 and push_switches.s1 + Transform merlin_domain_transform not run on matched interfaces hex0_s1_translator.avalon_anti_slave_0 and hex0.s1 + Transform merlin_domain_transform not run on matched interfaces hex1_s1_translator.avalon_anti_slave_0 and hex1.s1 + Transform merlin_domain_transform not run on matched interfaces hex2_s1_translator.avalon_anti_slave_0 and hex2.s1 + Transform merlin_domain_transform not run on matched interfaces hex3_s1_translator.avalon_anti_slave_0 and hex3.s1 + Transform merlin_domain_transform not run on matched interfaces hex4_s1_translator.avalon_anti_slave_0 and hex4.s1 + Transform merlin_domain_transform not run on matched interfaces hex5_s1_translator.avalon_anti_slave_0 and hex5.s1 + Transform merlin_domain_transform not run on matched interfaces hex6_s1_translator.avalon_anti_slave_0 and hex6.s1 + Transform merlin_domain_transform not run on matched interfaces hex7_s1_translator.avalon_anti_slave_0 and hex7.s1 + Transform merlin_domain_transform not run on matched interfaces lcd_16207_0_control_slave_translator.avalon_anti_slave_0 and lcd_16207_0.control_slave + Transform merlin_domain_transform not run on matched interfaces lcd_on_s1_translator.avalon_anti_slave_0 and lcd_on.s1 + Transform merlin_domain_transform not run on matched interfaces lcd_blon_s1_translator.avalon_anti_slave_0 and lcd_blon.s1 + 78 modules, 423 connections]]> + Transform: RouterTransform + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 98 modules, 503 connections]]> + Transform: TrafficLimiterTransform + Transform: BurstTransform + Transform: CombinedWidthTransform + Transform: ResetAdaptation + + + + 99 modules, 390 connections]]> + Transform: NetworkToSwitchTransform + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 138 modules, 470 connections]]> + Transform: WidthTransform + Transform: RouterTableTransform + Transform: ClockCrossingTransform + Transform: PipelineTransform + Transform: TrafficLimiterUpdateTransform + 138 modules, 470 connections]]> + Transform: InterruptMapperTransform + + + + 139 modules, 473 connections]]> + Transform: InterruptSyncTransform + Transform: InterruptFanoutTransform + Transform: AvalonStreamingTransform + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + "No matching role found for rst_controller:reset_out:reset_req (reset_req)" + nios_system" reuses altera_nios2_qsys "submodules/nios_system_nios2_processor"]]> + nios_system" reuses altera_avalon_onchip_memory2 "submodules/nios_system_onchip_memory"]]> + nios_system" reuses altera_avalon_jtag_uart "submodules/nios_system_jtag_uart"]]> + nios_system" reuses altera_avalon_pio "submodules/nios_system_LEDs"]]> + nios_system" reuses altera_avalon_pio "submodules/nios_system_LEDRs"]]> + nios_system" reuses altera_avalon_pio "submodules/nios_system_switches"]]> + nios_system" reuses altera_avalon_pio "submodules/nios_system_push_switches"]]> + nios_system" reuses altera_avalon_pio "submodules/nios_system_hex0"]]> + nios_system" reuses altera_avalon_pio "submodules/nios_system_hex0"]]> + nios_system" reuses altera_avalon_pio "submodules/nios_system_hex0"]]> + nios_system" reuses altera_avalon_pio "submodules/nios_system_hex0"]]> + nios_system" reuses altera_avalon_pio "submodules/nios_system_hex0"]]> + nios_system" reuses altera_avalon_pio "submodules/nios_system_hex0"]]> + nios_system" reuses altera_avalon_pio "submodules/nios_system_hex0"]]> + nios_system" reuses altera_avalon_pio "submodules/nios_system_hex0"]]> + nios_system" reuses altera_avalon_lcd_16207 "submodules/nios_system_lcd_16207_0"]]> + nios_system" reuses altera_avalon_pio "submodules/nios_system_lcd_on"]]> + nios_system" reuses altera_avalon_pio "submodules/nios_system_lcd_on"]]> + nios_system" reuses altera_merlin_master_translator "submodules/altera_merlin_master_translator"]]> + nios_system" reuses altera_merlin_master_translator "submodules/altera_merlin_master_translator"]]> + nios_system" reuses altera_merlin_slave_translator "submodules/altera_merlin_slave_translator"]]> + nios_system" reuses altera_merlin_slave_translator "submodules/altera_merlin_slave_translator"]]> + nios_system" reuses altera_merlin_slave_translator "submodules/altera_merlin_slave_translator"]]> + nios_system" reuses altera_merlin_slave_translator "submodules/altera_merlin_slave_translator"]]> + nios_system" reuses altera_merlin_slave_translator "submodules/altera_merlin_slave_translator"]]> + nios_system" reuses altera_merlin_slave_translator "submodules/altera_merlin_slave_translator"]]> + nios_system" reuses altera_merlin_slave_translator "submodules/altera_merlin_slave_translator"]]> + nios_system" reuses altera_merlin_slave_translator "submodules/altera_merlin_slave_translator"]]> + nios_system" reuses altera_merlin_slave_translator "submodules/altera_merlin_slave_translator"]]> + nios_system" reuses altera_merlin_slave_translator "submodules/altera_merlin_slave_translator"]]> + nios_system" reuses altera_merlin_slave_translator "submodules/altera_merlin_slave_translator"]]> + nios_system" reuses altera_merlin_slave_translator "submodules/altera_merlin_slave_translator"]]> + nios_system" reuses altera_merlin_slave_translator "submodules/altera_merlin_slave_translator"]]> + nios_system" reuses altera_merlin_slave_translator "submodules/altera_merlin_slave_translator"]]> + nios_system" reuses altera_merlin_slave_translator "submodules/altera_merlin_slave_translator"]]> + nios_system" reuses altera_merlin_slave_translator "submodules/altera_merlin_slave_translator"]]> + nios_system" reuses altera_merlin_slave_translator "submodules/altera_merlin_slave_translator"]]> + nios_system" reuses altera_merlin_slave_translator "submodules/altera_merlin_slave_translator"]]> + nios_system" reuses altera_merlin_master_agent "submodules/altera_merlin_master_agent"]]> + nios_system" reuses altera_merlin_master_agent "submodules/altera_merlin_master_agent"]]> + nios_system" reuses altera_merlin_slave_agent "submodules/altera_merlin_slave_agent"]]> + nios_system" reuses altera_avalon_sc_fifo "submodules/altera_avalon_sc_fifo"]]> + nios_system" reuses altera_merlin_slave_agent "submodules/altera_merlin_slave_agent"]]> + nios_system" reuses altera_avalon_sc_fifo "submodules/altera_avalon_sc_fifo"]]> + nios_system" reuses altera_merlin_slave_agent "submodules/altera_merlin_slave_agent"]]> + nios_system" reuses altera_avalon_sc_fifo "submodules/altera_avalon_sc_fifo"]]> + nios_system" reuses altera_merlin_slave_agent "submodules/altera_merlin_slave_agent"]]> + nios_system" reuses altera_avalon_sc_fifo "submodules/altera_avalon_sc_fifo"]]> + nios_system" reuses altera_merlin_slave_agent "submodules/altera_merlin_slave_agent"]]> + nios_system" reuses altera_avalon_sc_fifo "submodules/altera_avalon_sc_fifo"]]> + nios_system" reuses altera_merlin_slave_agent "submodules/altera_merlin_slave_agent"]]> + nios_system" reuses altera_avalon_sc_fifo "submodules/altera_avalon_sc_fifo"]]> + nios_system" reuses altera_merlin_slave_agent "submodules/altera_merlin_slave_agent"]]> + nios_system" reuses altera_avalon_sc_fifo "submodules/altera_avalon_sc_fifo"]]> + nios_system" reuses altera_merlin_slave_agent "submodules/altera_merlin_slave_agent"]]> + nios_system" reuses altera_avalon_sc_fifo "submodules/altera_avalon_sc_fifo"]]> + nios_system" reuses altera_merlin_slave_agent "submodules/altera_merlin_slave_agent"]]> + nios_system" reuses altera_avalon_sc_fifo "submodules/altera_avalon_sc_fifo"]]> + nios_system" reuses altera_merlin_slave_agent "submodules/altera_merlin_slave_agent"]]> + nios_system" reuses altera_avalon_sc_fifo "submodules/altera_avalon_sc_fifo"]]> + nios_system" reuses altera_merlin_slave_agent "submodules/altera_merlin_slave_agent"]]> + nios_system" reuses altera_avalon_sc_fifo "submodules/altera_avalon_sc_fifo"]]> + nios_system" reuses altera_merlin_slave_agent "submodules/altera_merlin_slave_agent"]]> + nios_system" reuses altera_avalon_sc_fifo "submodules/altera_avalon_sc_fifo"]]> + nios_system" reuses altera_merlin_slave_agent "submodules/altera_merlin_slave_agent"]]> + nios_system" reuses altera_avalon_sc_fifo "submodules/altera_avalon_sc_fifo"]]> + nios_system" reuses altera_merlin_slave_agent "submodules/altera_merlin_slave_agent"]]> + nios_system" reuses altera_avalon_sc_fifo "submodules/altera_avalon_sc_fifo"]]> + nios_system" reuses altera_merlin_slave_agent "submodules/altera_merlin_slave_agent"]]> + nios_system" reuses altera_avalon_sc_fifo "submodules/altera_avalon_sc_fifo"]]> + nios_system" reuses altera_merlin_slave_agent "submodules/altera_merlin_slave_agent"]]> + nios_system" reuses altera_avalon_sc_fifo "submodules/altera_avalon_sc_fifo"]]> + nios_system" reuses altera_merlin_slave_agent "submodules/altera_merlin_slave_agent"]]> + nios_system" reuses altera_avalon_sc_fifo "submodules/altera_avalon_sc_fifo"]]> + nios_system" reuses altera_merlin_slave_agent "submodules/altera_merlin_slave_agent"]]> + nios_system" reuses altera_avalon_sc_fifo "submodules/altera_avalon_sc_fifo"]]> + nios_system" reuses altera_merlin_router "submodules/nios_system_addr_router"]]> + nios_system" reuses altera_merlin_router "submodules/nios_system_addr_router_001"]]> + nios_system" reuses altera_merlin_router "submodules/nios_system_id_router"]]> + nios_system" reuses altera_merlin_router "submodules/nios_system_id_router"]]> + nios_system" reuses altera_merlin_router "submodules/nios_system_id_router_002"]]> + nios_system" reuses altera_merlin_router "submodules/nios_system_id_router_002"]]> + nios_system" reuses altera_merlin_router "submodules/nios_system_id_router_002"]]> + nios_system" reuses altera_merlin_router "submodules/nios_system_id_router_002"]]> + nios_system" reuses altera_merlin_router "submodules/nios_system_id_router_002"]]> + nios_system" reuses altera_merlin_router "submodules/nios_system_id_router_002"]]> + nios_system" reuses altera_merlin_router "submodules/nios_system_id_router_002"]]> + nios_system" reuses altera_merlin_router "submodules/nios_system_id_router_002"]]> + nios_system" reuses altera_merlin_router "submodules/nios_system_id_router_002"]]> + nios_system" reuses altera_merlin_router "submodules/nios_system_id_router_002"]]> + nios_system" reuses altera_merlin_router "submodules/nios_system_id_router_002"]]> + nios_system" reuses altera_merlin_router "submodules/nios_system_id_router_002"]]> + nios_system" reuses altera_merlin_router "submodules/nios_system_id_router_002"]]> + nios_system" reuses altera_merlin_router "submodules/nios_system_id_router_002"]]> + nios_system" reuses altera_merlin_router "submodules/nios_system_id_router_002"]]> + nios_system" reuses altera_merlin_router "submodules/nios_system_id_router_002"]]> + nios_system" reuses altera_reset_controller "submodules/altera_reset_controller"]]> + nios_system" reuses altera_merlin_demultiplexer "submodules/nios_system_cmd_xbar_demux"]]> + nios_system" reuses altera_merlin_demultiplexer "submodules/nios_system_cmd_xbar_demux_001"]]> + nios_system" reuses altera_merlin_multiplexer "submodules/nios_system_cmd_xbar_mux"]]> + nios_system" reuses altera_merlin_multiplexer "submodules/nios_system_cmd_xbar_mux"]]> + nios_system" reuses altera_merlin_demultiplexer "submodules/nios_system_cmd_xbar_demux"]]> + nios_system" reuses altera_merlin_demultiplexer "submodules/nios_system_cmd_xbar_demux"]]> + nios_system" reuses altera_merlin_demultiplexer "submodules/nios_system_rsp_xbar_demux_002"]]> + nios_system" reuses altera_merlin_demultiplexer "submodules/nios_system_rsp_xbar_demux_002"]]> + nios_system" reuses altera_merlin_demultiplexer "submodules/nios_system_rsp_xbar_demux_002"]]> + nios_system" reuses altera_merlin_demultiplexer "submodules/nios_system_rsp_xbar_demux_002"]]> + nios_system" reuses altera_merlin_demultiplexer "submodules/nios_system_rsp_xbar_demux_002"]]> + nios_system" reuses altera_merlin_demultiplexer "submodules/nios_system_rsp_xbar_demux_002"]]> + nios_system" reuses altera_merlin_demultiplexer "submodules/nios_system_rsp_xbar_demux_002"]]> + nios_system" reuses altera_merlin_demultiplexer "submodules/nios_system_rsp_xbar_demux_002"]]> + nios_system" reuses altera_merlin_demultiplexer "submodules/nios_system_rsp_xbar_demux_002"]]> + nios_system" reuses altera_merlin_demultiplexer "submodules/nios_system_rsp_xbar_demux_002"]]> + nios_system" reuses altera_merlin_demultiplexer "submodules/nios_system_rsp_xbar_demux_002"]]> + nios_system" reuses altera_merlin_demultiplexer "submodules/nios_system_rsp_xbar_demux_002"]]> + nios_system" reuses altera_merlin_demultiplexer "submodules/nios_system_rsp_xbar_demux_002"]]> + nios_system" reuses altera_merlin_demultiplexer "submodules/nios_system_rsp_xbar_demux_002"]]> + nios_system" reuses altera_merlin_demultiplexer "submodules/nios_system_rsp_xbar_demux_002"]]> + nios_system" reuses altera_merlin_demultiplexer "submodules/nios_system_rsp_xbar_demux_002"]]> + nios_system" reuses altera_merlin_multiplexer "submodules/nios_system_rsp_xbar_mux"]]> + nios_system" reuses altera_merlin_multiplexer "submodules/nios_system_rsp_xbar_mux_001"]]> + nios_system" reuses altera_irq_mapper "submodules/nios_system_irq_mapper"]]> + queue size: 121 starting:altera_nios2_qsys "submodules/nios_system_nios2_processor" + Starting RTL generation for module 'nios_system_nios2_processor' + Generation command is [exec C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2/eperl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2/cpu_lib -I C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2/nios_lib -I C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2 -I C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2 -- C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2/generate_rtl.epl --name=nios_system_nios2_processor --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_6175737974426620063.dir/0001_nios2_processor_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_6175737974426620063.dir/0001_nios2_processor_gen//nios_system_nios2_processor_processor_configuration.pl --do_build_sim=0 --bogus ] + # 2016.12.02 01:32:17 (*) Starting Nios II generation + # 2016.12.02 01:32:17 (*) Checking for plaintext license. + # 2016.12.02 01:32:17 (*) Couldn't query license setup in Quartus directory C:/altera/13.0sp1/quartus + # 2016.12.02 01:32:17 (*) Defaulting to contents of LM_LICENSE_FILE environment variable + # 2016.12.02 01:32:17 (*) LM_LICENSE_FILE environment variable is empty + # 2016.12.02 01:32:17 (*) Plaintext license not found. + # 2016.12.02 01:32:17 (*) No license required to generate encrypted Nios II/e. + # 2016.12.02 01:32:17 (*) Elaborating CPU configuration settings + # 2016.12.02 01:32:17 (*) Creating all objects for CPU + # 2016.12.02 01:32:18 (*) Generating RTL from CPU objects + # 2016.12.02 01:32:18 (*) Creating plain-text RTL + # 2016.12.02 01:32:20 (*) Done Nios II generation + Done RTL generation for module 'nios_system_nios2_processor' + nios_system" instantiated altera_nios2_qsys "nios2_processor"]]> + queue size: 120 starting:altera_avalon_onchip_memory2 "submodules/nios_system_onchip_memory" + Starting RTL generation for module 'nios_system_onchip_memory' + Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_onchip_memory2 -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_onchip_memory2/generate_rtl.pl --name=nios_system_onchip_memory --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_6175737974426620063.dir/0002_onchip_memory_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_6175737974426620063.dir/0002_onchip_memory_gen//nios_system_onchip_memory_component_configuration.pl --do_build_sim=0 ] + Done RTL generation for module 'nios_system_onchip_memory' + nios_system" instantiated altera_avalon_onchip_memory2 "onchip_memory"]]> + queue size: 119 starting:altera_avalon_jtag_uart "submodules/nios_system_jtag_uart" + Starting RTL generation for module 'nios_system_jtag_uart' + Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_jtag_uart -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_jtag_uart/generate_rtl.pl --name=nios_system_jtag_uart --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_6175737974426620063.dir/0003_jtag_uart_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_6175737974426620063.dir/0003_jtag_uart_gen//nios_system_jtag_uart_component_configuration.pl --do_build_sim=0 ] + Done RTL generation for module 'nios_system_jtag_uart' + nios_system" instantiated altera_avalon_jtag_uart "jtag_uart"]]> + queue size: 118 starting:altera_avalon_pio "submodules/nios_system_LEDs" + Starting RTL generation for module 'nios_system_LEDs' + Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_LEDs --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_6175737974426620063.dir/0004_LEDs_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_6175737974426620063.dir/0004_LEDs_gen//nios_system_LEDs_component_configuration.pl --do_build_sim=0 ] + Done RTL generation for module 'nios_system_LEDs' + nios_system" instantiated altera_avalon_pio "LEDs"]]> + queue size: 117 starting:altera_avalon_pio "submodules/nios_system_LEDRs" + Starting RTL generation for module 'nios_system_LEDRs' + Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_LEDRs --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_6175737974426620063.dir/0005_LEDRs_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_6175737974426620063.dir/0005_LEDRs_gen//nios_system_LEDRs_component_configuration.pl --do_build_sim=0 ] + Done RTL generation for module 'nios_system_LEDRs' + nios_system" instantiated altera_avalon_pio "LEDRs"]]> + queue size: 116 starting:altera_avalon_pio "submodules/nios_system_switches" + Starting RTL generation for module 'nios_system_switches' + Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_switches --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_6175737974426620063.dir/0006_switches_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_6175737974426620063.dir/0006_switches_gen//nios_system_switches_component_configuration.pl --do_build_sim=0 ] + Done RTL generation for module 'nios_system_switches' + nios_system" instantiated altera_avalon_pio "switches"]]> + queue size: 115 starting:altera_avalon_pio "submodules/nios_system_push_switches" + Starting RTL generation for module 'nios_system_push_switches' + Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_push_switches --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_6175737974426620063.dir/0007_push_switches_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_6175737974426620063.dir/0007_push_switches_gen//nios_system_push_switches_component_configuration.pl --do_build_sim=0 ] + Done RTL generation for module 'nios_system_push_switches' + nios_system" instantiated altera_avalon_pio "push_switches"]]> + queue size: 114 starting:altera_avalon_pio "submodules/nios_system_hex0" + Starting RTL generation for module 'nios_system_hex0' + Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_hex0 --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_6175737974426620063.dir/0008_hex0_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_6175737974426620063.dir/0008_hex0_gen//nios_system_hex0_component_configuration.pl --do_build_sim=0 ] + Done RTL generation for module 'nios_system_hex0' + nios_system" instantiated altera_avalon_pio "hex0"]]> + queue size: 106 starting:altera_avalon_lcd_16207 "submodules/nios_system_lcd_16207_0" + Starting RTL generation for module 'nios_system_lcd_16207_0' + Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_lcd_16207 -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_lcd_16207/generate_rtl.pl --name=nios_system_lcd_16207_0 --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_6175737974426620063.dir/0009_lcd_16207_0_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_6175737974426620063.dir/0009_lcd_16207_0_gen//nios_system_lcd_16207_0_component_configuration.pl --do_build_sim=0 ] + Done RTL generation for module 'nios_system_lcd_16207_0' + nios_system" instantiated altera_avalon_lcd_16207 "lcd_16207_0"]]> + queue size: 105 starting:altera_avalon_pio "submodules/nios_system_lcd_on" + Starting RTL generation for module 'nios_system_lcd_on' + Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_lcd_on --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_6175737974426620063.dir/0010_lcd_on_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_6175737974426620063.dir/0010_lcd_on_gen//nios_system_lcd_on_component_configuration.pl --do_build_sim=0 ] + Done RTL generation for module 'nios_system_lcd_on' + nios_system" instantiated altera_avalon_pio "lcd_on"]]> + queue size: 103 starting:altera_merlin_master_translator "submodules/altera_merlin_master_translator" + nios_system" instantiated altera_merlin_master_translator "nios2_processor_instruction_master_translator"]]> + queue size: 101 starting:altera_merlin_slave_translator "submodules/altera_merlin_slave_translator" + nios_system" instantiated altera_merlin_slave_translator "nios2_processor_jtag_debug_module_translator"]]> + queue size: 83 starting:altera_merlin_master_agent "submodules/altera_merlin_master_agent" + nios_system" instantiated altera_merlin_master_agent "nios2_processor_instruction_master_translator_avalon_universal_master_0_agent"]]> + queue size: 81 starting:altera_merlin_slave_agent "submodules/altera_merlin_slave_agent" + nios_system" instantiated altera_merlin_slave_agent "nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent"]]> + queue size: 80 starting:altera_avalon_sc_fifo "submodules/altera_avalon_sc_fifo" + nios_system" instantiated altera_avalon_sc_fifo "nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo"]]> + queue size: 45 starting:altera_merlin_router "submodules/nios_system_addr_router" + nios_system" instantiated altera_merlin_router "addr_router"]]> + queue size: 44 starting:altera_merlin_router "submodules/nios_system_addr_router_001" + nios_system" instantiated altera_merlin_router "addr_router_001"]]> + queue size: 43 starting:altera_merlin_router "submodules/nios_system_id_router" + nios_system" instantiated altera_merlin_router "id_router"]]> + queue size: 41 starting:altera_merlin_router "submodules/nios_system_id_router_002" + nios_system" instantiated altera_merlin_router "id_router_002"]]> + queue size: 25 starting:altera_reset_controller "submodules/altera_reset_controller" + nios_system" instantiated altera_reset_controller "rst_controller"]]> + queue size: 24 starting:altera_merlin_demultiplexer "submodules/nios_system_cmd_xbar_demux" + nios_system" instantiated altera_merlin_demultiplexer "cmd_xbar_demux"]]> + queue size: 23 starting:altera_merlin_demultiplexer "submodules/nios_system_cmd_xbar_demux_001" + nios_system" instantiated altera_merlin_demultiplexer "cmd_xbar_demux_001"]]> + queue size: 22 starting:altera_merlin_multiplexer "submodules/nios_system_cmd_xbar_mux" + nios_system" instantiated altera_merlin_multiplexer "cmd_xbar_mux"]]> + queue size: 18 starting:altera_merlin_demultiplexer "submodules/nios_system_rsp_xbar_demux_002" + nios_system" instantiated altera_merlin_demultiplexer "rsp_xbar_demux_002"]]> + queue size: 2 starting:altera_merlin_multiplexer "submodules/nios_system_rsp_xbar_mux" + nios_system" instantiated altera_merlin_multiplexer "rsp_xbar_mux"]]> + C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/altera_merlin_arbitrator.sv]]> + queue size: 1 starting:altera_merlin_multiplexer "submodules/nios_system_rsp_xbar_mux_001" + nios_system" instantiated altera_merlin_multiplexer "rsp_xbar_mux_001"]]> + C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/altera_merlin_arbitrator.sv]]> + queue size: 0 starting:altera_irq_mapper "submodules/nios_system_irq_mapper" + nios_system" instantiated altera_irq_mapper "irq_mapper"]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + queue size: 121 starting:altera_nios2_qsys "submodules/nios_system_nios2_processor" + Starting RTL generation for module 'nios_system_nios2_processor' + Generation command is [exec C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2/eperl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2/cpu_lib -I C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2/nios_lib -I C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2 -I C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2 -- C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2/generate_rtl.epl --name=nios_system_nios2_processor --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_6175737974426620063.dir/0001_nios2_processor_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_6175737974426620063.dir/0001_nios2_processor_gen//nios_system_nios2_processor_processor_configuration.pl --do_build_sim=0 --bogus ] + # 2016.12.02 01:32:17 (*) Starting Nios II generation + # 2016.12.02 01:32:17 (*) Checking for plaintext license. + # 2016.12.02 01:32:17 (*) Couldn't query license setup in Quartus directory C:/altera/13.0sp1/quartus + # 2016.12.02 01:32:17 (*) Defaulting to contents of LM_LICENSE_FILE environment variable + # 2016.12.02 01:32:17 (*) LM_LICENSE_FILE environment variable is empty + # 2016.12.02 01:32:17 (*) Plaintext license not found. + # 2016.12.02 01:32:17 (*) No license required to generate encrypted Nios II/e. + # 2016.12.02 01:32:17 (*) Elaborating CPU configuration settings + # 2016.12.02 01:32:17 (*) Creating all objects for CPU + # 2016.12.02 01:32:18 (*) Generating RTL from CPU objects + # 2016.12.02 01:32:18 (*) Creating plain-text RTL + # 2016.12.02 01:32:20 (*) Done Nios II generation + Done RTL generation for module 'nios_system_nios2_processor' + nios_system" instantiated altera_nios2_qsys "nios2_processor"]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + queue size: 120 starting:altera_avalon_onchip_memory2 "submodules/nios_system_onchip_memory" + Starting RTL generation for module 'nios_system_onchip_memory' + Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_onchip_memory2 -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_onchip_memory2/generate_rtl.pl --name=nios_system_onchip_memory --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_6175737974426620063.dir/0002_onchip_memory_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_6175737974426620063.dir/0002_onchip_memory_gen//nios_system_onchip_memory_component_configuration.pl --do_build_sim=0 ] + Done RTL generation for module 'nios_system_onchip_memory' + nios_system" instantiated altera_avalon_onchip_memory2 "onchip_memory"]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + queue size: 119 starting:altera_avalon_jtag_uart "submodules/nios_system_jtag_uart" + Starting RTL generation for module 'nios_system_jtag_uart' + Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_jtag_uart -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_jtag_uart/generate_rtl.pl --name=nios_system_jtag_uart --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_6175737974426620063.dir/0003_jtag_uart_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_6175737974426620063.dir/0003_jtag_uart_gen//nios_system_jtag_uart_component_configuration.pl --do_build_sim=0 ] + Done RTL generation for module 'nios_system_jtag_uart' + nios_system" instantiated altera_avalon_jtag_uart "jtag_uart"]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + queue size: 118 starting:altera_avalon_pio "submodules/nios_system_LEDs" + Starting RTL generation for module 'nios_system_LEDs' + Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_LEDs --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_6175737974426620063.dir/0004_LEDs_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_6175737974426620063.dir/0004_LEDs_gen//nios_system_LEDs_component_configuration.pl --do_build_sim=0 ] + Done RTL generation for module 'nios_system_LEDs' + nios_system" instantiated altera_avalon_pio "LEDs"]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + queue size: 117 starting:altera_avalon_pio "submodules/nios_system_LEDRs" + Starting RTL generation for module 'nios_system_LEDRs' + Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_LEDRs --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_6175737974426620063.dir/0005_LEDRs_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_6175737974426620063.dir/0005_LEDRs_gen//nios_system_LEDRs_component_configuration.pl --do_build_sim=0 ] + Done RTL generation for module 'nios_system_LEDRs' + nios_system" instantiated altera_avalon_pio "LEDRs"]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + queue size: 116 starting:altera_avalon_pio "submodules/nios_system_switches" + Starting RTL generation for module 'nios_system_switches' + Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_switches --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_6175737974426620063.dir/0006_switches_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_6175737974426620063.dir/0006_switches_gen//nios_system_switches_component_configuration.pl --do_build_sim=0 ] + Done RTL generation for module 'nios_system_switches' + nios_system" instantiated altera_avalon_pio "switches"]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + queue size: 115 starting:altera_avalon_pio "submodules/nios_system_push_switches" + Starting RTL generation for module 'nios_system_push_switches' + Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_push_switches --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_6175737974426620063.dir/0007_push_switches_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_6175737974426620063.dir/0007_push_switches_gen//nios_system_push_switches_component_configuration.pl --do_build_sim=0 ] + Done RTL generation for module 'nios_system_push_switches' + nios_system" instantiated altera_avalon_pio "push_switches"]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + queue size: 114 starting:altera_avalon_pio "submodules/nios_system_hex0" + Starting RTL generation for module 'nios_system_hex0' + Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_hex0 --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_6175737974426620063.dir/0008_hex0_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_6175737974426620063.dir/0008_hex0_gen//nios_system_hex0_component_configuration.pl --do_build_sim=0 ] + Done RTL generation for module 'nios_system_hex0' + nios_system" instantiated altera_avalon_pio "hex0"]]> + + + + + + + + + + + + + + queue size: 106 starting:altera_avalon_lcd_16207 "submodules/nios_system_lcd_16207_0" + Starting RTL generation for module 'nios_system_lcd_16207_0' + Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_lcd_16207 -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_lcd_16207/generate_rtl.pl --name=nios_system_lcd_16207_0 --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_6175737974426620063.dir/0009_lcd_16207_0_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_6175737974426620063.dir/0009_lcd_16207_0_gen//nios_system_lcd_16207_0_component_configuration.pl --do_build_sim=0 ] + Done RTL generation for module 'nios_system_lcd_16207_0' + nios_system" instantiated altera_avalon_lcd_16207 "lcd_16207_0"]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + queue size: 105 starting:altera_avalon_pio "submodules/nios_system_lcd_on" + Starting RTL generation for module 'nios_system_lcd_on' + Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_lcd_on --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_6175737974426620063.dir/0010_lcd_on_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_6175737974426620063.dir/0010_lcd_on_gen//nios_system_lcd_on_component_configuration.pl --do_build_sim=0 ] + Done RTL generation for module 'nios_system_lcd_on' + nios_system" instantiated altera_avalon_pio "lcd_on"]]> + + + + + + + + + + + + + + + queue size: 103 starting:altera_merlin_master_translator "submodules/altera_merlin_master_translator" + nios_system" instantiated altera_merlin_master_translator "nios2_processor_instruction_master_translator"]]> + + + + + + + + + + + + + + queue size: 101 starting:altera_merlin_slave_translator "submodules/altera_merlin_slave_translator" + nios_system" instantiated altera_merlin_slave_translator "nios2_processor_jtag_debug_module_translator"]]> + + + + + + + + + + + + + + + + + + + queue size: 83 starting:altera_merlin_master_agent "submodules/altera_merlin_master_agent" + nios_system" instantiated altera_merlin_master_agent "nios2_processor_instruction_master_translator_avalon_universal_master_0_agent"]]> + + + + + + + + + + + + + + + + + + + + + queue size: 81 starting:altera_merlin_slave_agent "submodules/altera_merlin_slave_agent" + nios_system" instantiated altera_merlin_slave_agent "nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent"]]> + + + + + + + + + + + + + + + + queue size: 80 starting:altera_avalon_sc_fifo "submodules/altera_avalon_sc_fifo" + nios_system" instantiated altera_avalon_sc_fifo "nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo"]]> + + + + + + + + + + + + + + + queue size: 45 starting:altera_merlin_router "submodules/nios_system_addr_router" + nios_system" instantiated altera_merlin_router "addr_router"]]> + + + + + + + + + + + + + + + queue size: 44 starting:altera_merlin_router "submodules/nios_system_addr_router_001" + nios_system" instantiated altera_merlin_router "addr_router_001"]]> + + + + + + + + + + + + + + + queue size: 43 starting:altera_merlin_router "submodules/nios_system_id_router" + nios_system" instantiated altera_merlin_router "id_router"]]> + + + + + + + + + + + + + + + queue size: 41 starting:altera_merlin_router "submodules/nios_system_id_router_002" + nios_system" instantiated altera_merlin_router "id_router_002"]]> + + + + + + + + + + + + + + + + + queue size: 25 starting:altera_reset_controller "submodules/altera_reset_controller" + nios_system" instantiated altera_reset_controller "rst_controller"]]> + + + + + + + + + + + + + + + + + + + + + queue size: 24 starting:altera_merlin_demultiplexer "submodules/nios_system_cmd_xbar_demux" + nios_system" instantiated altera_merlin_demultiplexer "cmd_xbar_demux"]]> + + + + + + + + + + + + + + + + + + + + + queue size: 23 starting:altera_merlin_demultiplexer "submodules/nios_system_cmd_xbar_demux_001" + nios_system" instantiated altera_merlin_demultiplexer "cmd_xbar_demux_001"]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + queue size: 22 starting:altera_merlin_multiplexer "submodules/nios_system_cmd_xbar_mux" + nios_system" instantiated altera_merlin_multiplexer "cmd_xbar_mux"]]> + + + + + + + + + + + + + + + + + + + + + queue size: 18 starting:altera_merlin_demultiplexer "submodules/nios_system_rsp_xbar_demux_002" + nios_system" instantiated altera_merlin_demultiplexer "rsp_xbar_demux_002"]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + queue size: 2 starting:altera_merlin_multiplexer "submodules/nios_system_rsp_xbar_mux" + nios_system" instantiated altera_merlin_multiplexer "rsp_xbar_mux"]]> + C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/altera_merlin_arbitrator.sv]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + queue size: 1 starting:altera_merlin_multiplexer "submodules/nios_system_rsp_xbar_mux_001" + nios_system" instantiated altera_merlin_multiplexer "rsp_xbar_mux_001"]]> + C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/altera_merlin_arbitrator.sv]]> + + + + + + + + + + + + + + + + + + queue size: 0 starting:altera_irq_mapper "submodules/nios_system_irq_mapper" + nios_system" instantiated altera_irq_mapper "irq_mapper"]]> + + + diff --git a/db/ip/nios_system/submodules/altera_avalon_sc_fifo.v b/db/ip/nios_system/submodules/altera_avalon_sc_fifo.v new file mode 100644 index 0000000..8f846b8 --- /dev/null +++ b/db/ip/nios_system/submodules/altera_avalon_sc_fifo.v @@ -0,0 +1,877 @@ +// ----------------------------------------------------------- +// Legal Notice: (C)2007 Altera Corporation. All rights reserved. Your +// use of Altera Corporation's design tools, logic functions and other +// software and tools, and its AMPP partner logic functions, and any +// output files any of the foregoing (including device programming or +// simulation files), and any associated documentation or information are +// expressly subject to the terms and conditions of the Altera Program +// License Subscription Agreement or other applicable license agreement, +// including, without limitation, that your use is for the sole purpose +// of programming logic devices manufactured by Altera and sold by Altera +// or its authorized distributors. Please refer to the applicable +// agreement for further details. +// +// Description: Single clock Avalon-ST FIFO. +// ----------------------------------------------------------- + +`timescale 1 ns / 1 ns + + +//altera message_off 10036 +module altera_avalon_sc_fifo +#( + // -------------------------------------------------- + // Parameters + // -------------------------------------------------- + parameter SYMBOLS_PER_BEAT = 1, + parameter BITS_PER_SYMBOL = 8, + parameter FIFO_DEPTH = 16, + parameter CHANNEL_WIDTH = 0, + parameter ERROR_WIDTH = 0, + parameter USE_PACKETS = 0, + parameter USE_FILL_LEVEL = 0, + parameter USE_STORE_FORWARD = 0, + parameter USE_ALMOST_FULL_IF = 0, + parameter USE_ALMOST_EMPTY_IF = 0, + + // -------------------------------------------------- + // Empty latency is defined as the number of cycles + // required for a write to deassert the empty flag. + // For example, a latency of 1 means that the empty + // flag is deasserted on the cycle after a write. + // + // Another way to think of it is the latency for a + // write to propagate to the output. + // + // An empty latency of 0 implies lookahead, which is + // only implemented for the register-based FIFO. + // -------------------------------------------------- + parameter EMPTY_LATENCY = 3, + parameter USE_MEMORY_BLOCKS = 1, + + // -------------------------------------------------- + // Internal Parameters + // -------------------------------------------------- + parameter DATA_WIDTH = SYMBOLS_PER_BEAT * BITS_PER_SYMBOL, + parameter EMPTY_WIDTH = log2ceil(SYMBOLS_PER_BEAT) +) +( + // -------------------------------------------------- + // Ports + // -------------------------------------------------- + input clk, + input reset, + + input [DATA_WIDTH-1: 0] in_data, + input in_valid, + input in_startofpacket, + input in_endofpacket, + input [((EMPTY_WIDTH>0) ? (EMPTY_WIDTH-1):0) : 0] in_empty, + input [((ERROR_WIDTH>0) ? (ERROR_WIDTH-1):0) : 0] in_error, + input [((CHANNEL_WIDTH>0) ? (CHANNEL_WIDTH-1):0): 0] in_channel, + output in_ready, + + output [DATA_WIDTH-1 : 0] out_data, + output reg out_valid, + output out_startofpacket, + output out_endofpacket, + output [((EMPTY_WIDTH>0) ? (EMPTY_WIDTH-1):0) : 0] out_empty, + output [((ERROR_WIDTH>0) ? (ERROR_WIDTH-1):0) : 0] out_error, + output [((CHANNEL_WIDTH>0) ? (CHANNEL_WIDTH-1):0): 0] out_channel, + input out_ready, + + input [(USE_STORE_FORWARD ? 2 : 1) : 0] csr_address, + input csr_write, + input csr_read, + input [31 : 0] csr_writedata, + output reg [31 : 0] csr_readdata, + + output wire almost_full_data, + output wire almost_empty_data +); + + // -------------------------------------------------- + // Local Parameters + // -------------------------------------------------- + localparam ADDR_WIDTH = log2ceil(FIFO_DEPTH); + localparam DEPTH = FIFO_DEPTH; + localparam PKT_SIGNALS_WIDTH = 2 + EMPTY_WIDTH; + localparam PAYLOAD_WIDTH = (USE_PACKETS == 1) ? + 2 + EMPTY_WIDTH + DATA_WIDTH + ERROR_WIDTH + CHANNEL_WIDTH: + DATA_WIDTH + ERROR_WIDTH + CHANNEL_WIDTH; + + // -------------------------------------------------- + // Internal Signals + // -------------------------------------------------- + genvar i; + + reg [PAYLOAD_WIDTH-1 : 0] mem [DEPTH-1 : 0]; + reg [ADDR_WIDTH-1 : 0] wr_ptr; + reg [ADDR_WIDTH-1 : 0] rd_ptr; + reg [DEPTH-1 : 0] mem_used; + + wire [ADDR_WIDTH-1 : 0] next_wr_ptr; + wire [ADDR_WIDTH-1 : 0] next_rd_ptr; + wire [ADDR_WIDTH-1 : 0] incremented_wr_ptr; + wire [ADDR_WIDTH-1 : 0] incremented_rd_ptr; + + wire [ADDR_WIDTH-1 : 0] mem_rd_ptr; + + wire read; + wire write; + + reg empty; + reg next_empty; + reg full; + reg next_full; + + wire [PKT_SIGNALS_WIDTH-1 : 0] in_packet_signals; + wire [PKT_SIGNALS_WIDTH-1 : 0] out_packet_signals; + wire [PAYLOAD_WIDTH-1 : 0] in_payload; + reg [PAYLOAD_WIDTH-1 : 0] internal_out_payload; + reg [PAYLOAD_WIDTH-1 : 0] out_payload; + + reg internal_out_valid; + wire internal_out_ready; + + reg [ADDR_WIDTH : 0] fifo_fill_level; + reg [ADDR_WIDTH : 0] fill_level; + + reg [ADDR_WIDTH-1 : 0] sop_ptr = 0; + reg [23:0] almost_full_threshold; + reg [23:0] almost_empty_threshold; + reg [23:0] cut_through_threshold; + reg [15:0] pkt_cnt; + reg [15:0] pkt_cnt_r; + reg [15:0] pkt_cnt_plusone; + reg [15:0] pkt_cnt_minusone; + reg drop_on_error_en; + reg error_in_pkt; + reg pkt_has_started; + reg sop_has_left_fifo; + reg fifo_too_small_r; + reg pkt_cnt_eq_zero; + reg pkt_cnt_eq_one; + reg pkt_cnt_changed; + + wire wait_for_threshold; + reg pkt_mode; + wire wait_for_pkt; + wire ok_to_forward; + wire in_pkt_eop_arrive; + wire out_pkt_leave; + wire in_pkt_start; + wire in_pkt_error; + wire drop_on_error; + wire fifo_too_small; + wire out_pkt_sop_leave; + wire [31:0] max_fifo_size; + reg fifo_fill_level_lt_cut_through_threshold; + + // -------------------------------------------------- + // Define Payload + // + // Icky part where we decide which signals form the + // payload to the FIFO with generate blocks. + // -------------------------------------------------- + generate + if (EMPTY_WIDTH > 0) begin + assign in_packet_signals = {in_startofpacket, in_endofpacket, in_empty}; + assign {out_startofpacket, out_endofpacket, out_empty} = out_packet_signals; + end + else begin + assign out_empty = in_error; + assign in_packet_signals = {in_startofpacket, in_endofpacket}; + assign {out_startofpacket, out_endofpacket} = out_packet_signals; + end + endgenerate + + generate + if (USE_PACKETS) begin + if (ERROR_WIDTH > 0) begin + if (CHANNEL_WIDTH > 0) begin + assign in_payload = {in_packet_signals, in_data, in_error, in_channel}; + assign {out_packet_signals, out_data, out_error, out_channel} = out_payload; + end + else begin + assign out_channel = in_channel; + assign in_payload = {in_packet_signals, in_data, in_error}; + assign {out_packet_signals, out_data, out_error} = out_payload; + end + end + else begin + assign out_error = in_error; + if (CHANNEL_WIDTH > 0) begin + assign in_payload = {in_packet_signals, in_data, in_channel}; + assign {out_packet_signals, out_data, out_channel} = out_payload; + end + else begin + assign out_channel = in_channel; + assign in_payload = {in_packet_signals, in_data}; + assign {out_packet_signals, out_data} = out_payload; + end + end + end + else begin + assign out_packet_signals = 0; + if (ERROR_WIDTH > 0) begin + if (CHANNEL_WIDTH > 0) begin + assign in_payload = {in_data, in_error, in_channel}; + assign {out_data, out_error, out_channel} = out_payload; + end + else begin + assign out_channel = in_channel; + assign in_payload = {in_data, in_error}; + assign {out_data, out_error} = out_payload; + end + end + else begin + assign out_error = in_error; + if (CHANNEL_WIDTH > 0) begin + assign in_payload = {in_data, in_channel}; + assign {out_data, out_channel} = out_payload; + end + else begin + assign out_channel = in_channel; + assign in_payload = in_data; + assign out_data = out_payload; + end + end + end + endgenerate + + // -------------------------------------------------- + // Memory-based FIFO storage + // + // To allow a ready latency of 0, the read index is + // obtained from the next read pointer and memory + // outputs are unregistered. + // + // If the empty latency is 1, we infer bypass logic + // around the memory so writes propagate to the + // outputs on the next cycle. + // + // Do not change the way this is coded: Quartus needs + // a perfect match to the template, and any attempt to + // refactor the two always blocks into one will break + // memory inference. + // -------------------------------------------------- + generate if (USE_MEMORY_BLOCKS == 1) begin + + if (EMPTY_LATENCY == 1) begin + + always @(posedge clk) begin + if (in_valid && in_ready) + mem[wr_ptr] = in_payload; + + internal_out_payload = mem[mem_rd_ptr]; + end + + end else begin + + always @(posedge clk) begin + if (in_valid && in_ready) + mem[wr_ptr] <= in_payload; + + internal_out_payload <= mem[mem_rd_ptr]; + end + + end + + assign mem_rd_ptr = next_rd_ptr; + + end else begin + + // -------------------------------------------------- + // Register-based FIFO storage + // + // Uses a shift register as the storage element. Each + // shift register slot has a bit which indicates if + // the slot is occupied (credit to Sam H for the idea). + // The occupancy bits are contiguous and start from the + // lsb, so 0000, 0001, 0011, 0111, 1111 for a 4-deep + // FIFO. + // + // Each slot is enabled during a read or when it + // is unoccupied. New data is always written to every + // going-to-be-empty slot (we keep track of which ones + // are actually useful with the occupancy bits). On a + // read we shift occupied slots. + // + // The exception is the last slot, which always gets + // new data when it is unoccupied. + // -------------------------------------------------- + for (i = 0; i < DEPTH-1; i = i + 1) begin : shift_reg + always @(posedge clk or posedge reset) begin + if (reset) begin + mem[i] <= 0; + end + else if (read || !mem_used[i]) begin + if (!mem_used[i+1]) + mem[i] <= in_payload; + else + mem[i] <= mem[i+1]; + end + end + end + + always @(posedge clk, posedge reset) begin + if (reset) begin + mem[DEPTH-1] <= 0; + end + else begin + if (!mem_used[DEPTH-1]) + mem[DEPTH-1] <= in_payload; + + if (DEPTH == 1) begin + if (write) + mem[DEPTH-1] <= in_payload; + end + end + end + + end + endgenerate + + assign read = internal_out_ready && internal_out_valid && ok_to_forward; + assign write = in_ready && in_valid; + + // -------------------------------------------------- + // Pointer Management + // -------------------------------------------------- + generate if (USE_MEMORY_BLOCKS == 1) begin + + assign incremented_wr_ptr = wr_ptr + 1'b1; + assign incremented_rd_ptr = rd_ptr + 1'b1; + assign next_wr_ptr = drop_on_error ? sop_ptr : write ? incremented_wr_ptr : wr_ptr; + assign next_rd_ptr = (read) ? incremented_rd_ptr : rd_ptr; + + always @(posedge clk or posedge reset) begin + if (reset) begin + wr_ptr <= 0; + rd_ptr <= 0; + end + else begin + wr_ptr <= next_wr_ptr; + rd_ptr <= next_rd_ptr; + end + end + + end else begin + + // -------------------------------------------------- + // Shift Register Occupancy Bits + // + // Consider a 4-deep FIFO with 2 entries: 0011 + // On a read and write, do not modify the bits. + // On a write, left-shift the bits to get 0111. + // On a read, right-shift the bits to get 0001. + // + // Also, on a write we set bit0 (the head), while + // clearing the tail on a read. + // -------------------------------------------------- + always @(posedge clk or posedge reset) begin + if (reset) begin + mem_used[0] <= 0; + end + else begin + if (write ^ read) begin + if (read) begin + if (DEPTH > 1) + mem_used[0] <= mem_used[1]; + else + mem_used[0] <= 0; + end + if (write) + mem_used[0] <= 1; + end + end + end + + if (DEPTH > 1) begin + always @(posedge clk or posedge reset) begin + if (reset) begin + mem_used[DEPTH-1] <= 0; + end + else begin + if (write ^ read) begin + mem_used[DEPTH-1] <= 0; + if (write) + mem_used[DEPTH-1] <= mem_used[DEPTH-2]; + end + end + end + end + + for (i = 1; i < DEPTH-1; i = i + 1) begin : storage_logic + always @(posedge clk, posedge reset) begin + if (reset) begin + mem_used[i] <= 0; + end + else begin + if (write ^ read) begin + if (read) + mem_used[i] <= mem_used[i+1]; + if (write) + mem_used[i] <= mem_used[i-1]; + end + end + end + end + + end + endgenerate + + + // -------------------------------------------------- + // Memory FIFO Status Management + // + // Generates the full and empty signals from the + // pointers. The FIFO is full when the next write + // pointer will be equal to the read pointer after + // a write. Reading from a FIFO clears full. + // + // The FIFO is empty when the next read pointer will + // be equal to the write pointer after a read. Writing + // to a FIFO clears empty. + // + // A simultaneous read and write must not change any of + // the empty or full flags unless there is a drop on error event. + // -------------------------------------------------- + generate if (USE_MEMORY_BLOCKS == 1) begin + + always @* begin + next_full = full; + next_empty = empty; + + if (read && !write) begin + next_full = 1'b0; + + if (incremented_rd_ptr == wr_ptr) + next_empty = 1'b1; + end + + if (write && !read) begin + if (!drop_on_error) + next_empty = 1'b0; + else if (sop_ptr == rd_ptr) // drop on error and only 1 pkt in fifo + next_empty = 1'b1; + + if (incremented_wr_ptr == rd_ptr && !drop_on_error) + next_full = 1'b1; + end + + if (write && read && drop_on_error) begin + if (sop_ptr == next_rd_ptr) + next_empty = 1'b1; + end + end + + always @(posedge clk or posedge reset) begin + if (reset) begin + empty <= 1; + full <= 0; + end + else begin + empty <= next_empty; + full <= next_full; + end + end + + end else begin + // -------------------------------------------------- + // Register FIFO Status Management + // + // Full when the tail occupancy bit is 1. Empty when + // the head occupancy bit is 0. + // -------------------------------------------------- + always @* begin + full = mem_used[DEPTH-1]; + empty = !mem_used[0]; + + // ------------------------------------------ + // For a single slot FIFO, reading clears the + // full status immediately. + // ------------------------------------------ + if (DEPTH == 1) + full = mem_used[0] && !read; + + internal_out_payload = mem[0]; + + // ------------------------------------------ + // Writes clear empty immediately for lookahead modes. + // Note that we use in_valid instead of write to avoid + // combinational loops (in lookahead mode, qualifying + // with in_ready is meaningless). + // + // In a 1-deep FIFO, a possible combinational loop runs + // from write -> out_valid -> out_ready -> write + // ------------------------------------------ + if (EMPTY_LATENCY == 0) begin + empty = !mem_used[0] && !in_valid; + + if (!mem_used[0] && in_valid) + internal_out_payload = in_payload; + end + end + + end + endgenerate + + // -------------------------------------------------- + // Avalon-ST Signals + // + // The in_ready signal is straightforward. + // + // To match memory latency when empty latency > 1, + // out_valid assertions must be delayed by one clock + // cycle. + // + // Note: out_valid deassertions must not be delayed or + // the FIFO will underflow. + // -------------------------------------------------- + assign in_ready = !full; + assign internal_out_ready = out_ready || !out_valid; + + generate if (EMPTY_LATENCY > 1) begin + always @(posedge clk or posedge reset) begin + if (reset) + internal_out_valid <= 0; + else begin + internal_out_valid <= !empty & ok_to_forward & ~drop_on_error; + + if (read) begin + if (incremented_rd_ptr == wr_ptr) + internal_out_valid <= 1'b0; + end + end + end + end else begin + always @* begin + internal_out_valid = !empty & ok_to_forward; + end + end + endgenerate + + // -------------------------------------------------- + // Single Output Pipeline Stage + // + // This output pipeline stage is enabled if the FIFO's + // empty latency is set to 3 (default). It is disabled + // for all other allowed latencies. + // + // Reason: The memory outputs are unregistered, so we have to + // register the output or fmax will drop if combinatorial + // logic is present on the output datapath. + // + // Q: The Avalon-ST spec says that I have to register my outputs + // But isn't the memory counted as a register? + // A: The path from the address lookup to the memory output is + // slow. Registering the memory outputs is a good idea. + // + // The registers get packed into the memory by the fitter + // which means minimal resources are consumed (the result + // is a altsyncram with registered outputs, available on + // all modern Altera devices). + // + // This output stage acts as an extra slot in the FIFO, + // and complicates the fill level. + // -------------------------------------------------- + generate if (EMPTY_LATENCY == 3) begin + always @(posedge clk or posedge reset) begin + if (reset) begin + out_valid <= 0; + out_payload <= 0; + end + else begin + if (internal_out_ready) begin + out_valid <= internal_out_valid & ok_to_forward; + out_payload <= internal_out_payload; + end + end + end + end + else begin + always @* begin + out_valid = internal_out_valid; + out_payload = internal_out_payload; + end + end + endgenerate + + // -------------------------------------------------- + // Fill Level + // + // The fill level is calculated from the next write + // and read pointers to avoid unnecessary latency. + // + // If the output pipeline is enabled, the fill level + // must account for it, or we'll always be off by one. + // This may, or may not be important depending on the + // application. + // + // For now, we'll always calculate the exact fill level + // at the cost of an extra adder when the output stage + // is enabled. + // -------------------------------------------------- + generate if (USE_FILL_LEVEL) begin + wire [31:0] depth32; + assign depth32 = DEPTH; + always @(posedge clk or posedge reset) begin + if (reset) + fifo_fill_level <= 0; + else if (next_full & !drop_on_error) + fifo_fill_level <= depth32[ADDR_WIDTH:0]; + else begin + fifo_fill_level[ADDR_WIDTH] <= 1'b0; + fifo_fill_level[ADDR_WIDTH-1 : 0] <= next_wr_ptr - next_rd_ptr; + end + end + + always @* begin + fill_level = fifo_fill_level; + + if (EMPTY_LATENCY == 3) + fill_level = fifo_fill_level + {{ADDR_WIDTH{1'b0}}, out_valid}; + end + end + else begin + initial fill_level = 0; + end + endgenerate + + generate if (USE_ALMOST_FULL_IF) begin + assign almost_full_data = (fill_level >= almost_full_threshold); + end + else + assign almost_full_data = 0; + endgenerate + + generate if (USE_ALMOST_EMPTY_IF) begin + assign almost_empty_data = (fill_level <= almost_empty_threshold); + end + else + assign almost_empty_data = 0; + endgenerate + + // -------------------------------------------------- + // Avalon-MM Status & Control Connection Point + // + // Register map: + // + // | Addr | RW | 31 - 0 | + // | 0 | R | Fill level | + // + // The registering of this connection point means + // that there is a cycle of latency between + // reads/writes and the updating of the fill level. + // -------------------------------------------------- + generate if (USE_STORE_FORWARD) begin + assign max_fifo_size = FIFO_DEPTH - 1; + always @(posedge clk or posedge reset) begin + if (reset) begin + almost_full_threshold <= max_fifo_size[23 : 0]; + almost_empty_threshold <= 0; + cut_through_threshold <= 0; + drop_on_error_en <= 0; + csr_readdata <= 0; + pkt_mode <= 1'b1; + end + else begin + if (csr_write) begin + if(csr_address == 3'b010) + almost_full_threshold <= csr_writedata[23:0]; + if(csr_address == 3'b011) + almost_empty_threshold <= csr_writedata[23:0]; + if(csr_address == 3'b100) begin + cut_through_threshold <= csr_writedata[23:0]; + pkt_mode <= (csr_writedata[23:0] == 0); + end + if(csr_address == 3'b101) + drop_on_error_en <= csr_writedata[0]; + end + + if (csr_read) begin + csr_readdata <= 32'b0; + if (csr_address == 0) + csr_readdata <= {{(31 - ADDR_WIDTH){1'b0}}, fill_level}; + if (csr_address == 2) + csr_readdata <= {8'b0, almost_full_threshold}; + if (csr_address == 3) + csr_readdata <= {8'b0, almost_empty_threshold}; + if (csr_address == 4) + csr_readdata <= {8'b0, cut_through_threshold}; + if (csr_address == 5) + csr_readdata <= {31'b0, drop_on_error_en}; + end + end + end + end + else if (USE_ALMOST_FULL_IF || USE_ALMOST_EMPTY_IF) begin + assign max_fifo_size = FIFO_DEPTH - 1; + always @(posedge clk or posedge reset) begin + if (reset) begin + almost_full_threshold <= max_fifo_size[23 : 0]; + almost_empty_threshold <= 0; + csr_readdata <= 0; + end + else begin + if (csr_write) begin + if(csr_address == 3'b010) + almost_full_threshold <= csr_writedata[23:0]; + if(csr_address == 3'b011) + almost_empty_threshold <= csr_writedata[23:0]; + end + + if (csr_read) begin + csr_readdata <= 32'b0; + if (csr_address == 0) + csr_readdata <= {{(31 - ADDR_WIDTH){1'b0}}, fill_level}; + if (csr_address == 2) + csr_readdata <= {8'b0, almost_full_threshold}; + if (csr_address == 3) + csr_readdata <= {8'b0, almost_empty_threshold}; + end + end + end + end + else begin + always @(posedge clk or posedge reset) begin + if (reset) begin + csr_readdata <= 0; + end + else if (csr_read) begin + csr_readdata <= 0; + + if (csr_address == 0) + csr_readdata <= fill_level; + end + end + end + endgenerate + + // -------------------------------------------------- + // Store and forward logic + // -------------------------------------------------- + // if the fifo gets full before the entire packet or the + // cut-threshold condition is met then start sending out + // data in order to avoid dead-lock situation + + generate if (USE_STORE_FORWARD) begin + assign wait_for_threshold = (fifo_fill_level_lt_cut_through_threshold) & wait_for_pkt ; + assign wait_for_pkt = pkt_cnt_eq_zero | (pkt_cnt_eq_one & out_pkt_leave); + assign ok_to_forward = (pkt_mode ? (~wait_for_pkt | ~pkt_has_started) : + ~wait_for_threshold) | fifo_too_small_r; + assign in_pkt_eop_arrive = in_valid & in_ready & in_endofpacket; + assign in_pkt_start = in_valid & in_ready & in_startofpacket; + assign in_pkt_error = in_valid & in_ready & |in_error; + assign out_pkt_sop_leave = out_valid & out_ready & out_startofpacket; + assign out_pkt_leave = out_valid & out_ready & out_endofpacket; + assign fifo_too_small = (pkt_mode ? wait_for_pkt : wait_for_threshold) & full & out_ready; + + // count packets coming and going into the fifo + always @(posedge clk or posedge reset) begin + if (reset) begin + pkt_cnt <= 0; + pkt_cnt_r <= 0; + pkt_cnt_plusone <= 1; + pkt_cnt_minusone <= 0; + pkt_cnt_changed <= 0; + pkt_has_started <= 0; + sop_has_left_fifo <= 0; + fifo_too_small_r <= 0; + pkt_cnt_eq_zero <= 1'b1; + pkt_cnt_eq_one <= 1'b0; + fifo_fill_level_lt_cut_through_threshold <= 1'b1; + end + else begin + fifo_fill_level_lt_cut_through_threshold <= fifo_fill_level < cut_through_threshold; + fifo_too_small_r <= fifo_too_small; + pkt_cnt_plusone <= pkt_cnt + 1'b1; + pkt_cnt_minusone <= pkt_cnt - 1'b1; + pkt_cnt_r <= pkt_cnt; + pkt_cnt_changed <= 1'b0; + + if( in_pkt_eop_arrive ) + sop_has_left_fifo <= 1'b0; + else if (out_pkt_sop_leave & pkt_cnt_eq_zero ) + sop_has_left_fifo <= 1'b1; + + if (in_pkt_eop_arrive & ~out_pkt_leave & ~drop_on_error ) begin + pkt_cnt_changed <= 1'b1; + pkt_cnt <= pkt_cnt_changed ? pkt_cnt_r : pkt_cnt_plusone; + pkt_cnt_eq_zero <= 0; + if (pkt_cnt == 0) + pkt_cnt_eq_one <= 1'b1; + else + pkt_cnt_eq_one <= 1'b0; + end + else if((~in_pkt_eop_arrive | drop_on_error) & out_pkt_leave) begin + pkt_cnt_changed <= 1'b1; + pkt_cnt <= pkt_cnt_changed ? pkt_cnt_r : pkt_cnt_minusone; + if (pkt_cnt == 1) + pkt_cnt_eq_zero <= 1'b1; + else + pkt_cnt_eq_zero <= 1'b0; + if (pkt_cnt == 2) + pkt_cnt_eq_one <= 1'b1; + else + pkt_cnt_eq_one <= 1'b0; + end + + if (in_pkt_start) + pkt_has_started <= 1'b1; + else if (in_pkt_eop_arrive) + pkt_has_started <= 1'b0; + end + end + + // drop on error logic + always @(posedge clk or posedge reset) begin + if (reset) begin + sop_ptr <= 0; + error_in_pkt <= 0; + end + else begin + // save the location of the SOP + if ( in_pkt_start ) + sop_ptr <= wr_ptr; + + // remember if error in pkt + // log error only if packet has already started + if (in_pkt_eop_arrive) + error_in_pkt <= 1'b0; + else if ( in_pkt_error & (pkt_has_started | in_pkt_start)) + error_in_pkt <= 1'b1; + end + end + assign drop_on_error = drop_on_error_en & (error_in_pkt | in_pkt_error) & in_pkt_eop_arrive & + ~sop_has_left_fifo & ~(out_pkt_sop_leave & pkt_cnt_eq_zero); + + end + else begin + assign ok_to_forward = 1'b1; + assign drop_on_error = 1'b0; + end + endgenerate + + + // -------------------------------------------------- + // Calculates the log2ceil of the input value + // -------------------------------------------------- + function integer log2ceil; + input integer val; + integer i; + + begin + i = 1; + log2ceil = 0; + + while (i < val) begin + log2ceil = log2ceil + 1; + i = i << 1; + end + end + endfunction + +endmodule diff --git a/db/ip/nios_system/submodules/altera_merlin_arbitrator.sv b/db/ip/nios_system/submodules/altera_merlin_arbitrator.sv new file mode 100644 index 0000000..9edba1d --- /dev/null +++ b/db/ip/nios_system/submodules/altera_merlin_arbitrator.sv @@ -0,0 +1,270 @@ +// (C) 2001-2013 Altera Corporation. All rights reserved. +// Your use of Altera Corporation's design tools, logic functions and other +// software and tools, and its AMPP partner logic functions, and any output +// files any of the foregoing (including device programming or simulation +// files), and any associated documentation or information are expressly subject +// to the terms and conditions of the Altera Program License Subscription +// Agreement, Altera MegaCore Function License Agreement, or other applicable +// license agreement, including, without limitation, that your use is for the +// sole purpose of programming logic devices manufactured by Altera and sold by +// Altera or its authorized distributors. Please refer to the applicable +// agreement for further details. + + +// (C) 2001-2010 Altera Corporation. All rights reserved. +// Your use of Altera Corporation's design tools, logic functions and other +// software and tools, and its AMPP partner logic functions, and any output +// files any of the foregoing (including device programming or simulation +// files), and any associated documentation or information are expressly subject +// to the terms and conditions of the Altera Program License Subscription +// Agreement, Altera MegaCore Function License Agreement, or other applicable +// license agreement, including, without limitation, that your use is for the +// sole purpose of programming logic devices manufactured by Altera and sold by +// Altera or its authorized distributors. Please refer to the applicable +// agreement for further details. + + +// $Id: //acds/main/ip/merlin/altera_merlin_std_arbitrator/altera_merlin_std_arbitrator_core.sv#3 $ +// $Revision: #3 $ +// $Date: 2010/07/07 $ +// $Author: jyeap $ + +/* ----------------------------------------------------------------------- +Round-robin/fixed arbitration implementation. + +Q: how do you find the least-significant set-bit in an n-bit binary number, X? + +A: M = X & (~X + 1) + +Example: X = 101000100 + 101000100 & + 010111011 + 1 = + + 101000100 & + 010111100 = + ----------- + 000000100 + +The method can be generalized to find the first set-bit +at a bit index no lower than bit-index N, simply by adding +2**N rather than 1. + + +Q: how does this relate to round-robin arbitration? +A: +Let X be the concatenation of all request signals. +Let the number to be added to X (hereafter called the +top_priority) initialize to 1, and be assigned from the +concatenation of the previous saved-grant, left-rotated +by one position, each time arbitration occurs. The +concatenation of grants is then M. + +Problem: consider this case: + +top_priority = 010000 +request = 001001 +~request + top_priority = 000110 +next_grant = 000000 <- no one is granted! + +There was no "set bit at a bit index no lower than bit-index 4", so +the result was 0. + +We need to propagate the carry out from (~request + top_priority) to the LSB, so +that the sum becomes 000111, and next_grant is 000001. This operation could be +called a "circular add". + +A bit of experimentation on the circular add reveals a significant amount of +delay in exiting and re-entering the carry chain - this will vary with device +family. Quartus also reports a combinational loop warning. Finally, +Modelsim 6.3g has trouble with the expression, evaluating it to 'X'. But +Modelsim _doesn't_ report a combinational loop!) + +An alternate solution: concatenate the request vector with itself, and OR +corresponding bits from the top and bottom halves to determine next_grant. + +Example: + +top_priority = 010000 +{request, request} = 001001 001001 +{~request, ~request} + top_priority = 110111 000110 +result of & operation = 000001 000000 +next_grant = 000001 + +Notice that if request = 0, the sum operation will overflow, but we can ignore +this; the next_grant result is 0 (no one granted), as you might expect. +In the implementation, the last-granted value must be maintained as +a non-zero value - best probably simply not to update it when no requests +occur. + +----------------------------------------------------------------------- */ + +`timescale 1 ns / 1 ns + +module altera_merlin_arbitrator +#( + parameter NUM_REQUESTERS = 8, + // -------------------------------------- + // Implemented schemes + // "round-robin" + // "fixed-priority" + // "no-arb" + // -------------------------------------- + parameter SCHEME = "round-robin", + parameter PIPELINE = 0 +) +( + input clk, + input reset, + + // -------------------------------------- + // Requests + // -------------------------------------- + input [NUM_REQUESTERS-1:0] request, + + // -------------------------------------- + // Grants + // -------------------------------------- + output [NUM_REQUESTERS-1:0] grant, + + // -------------------------------------- + // Control Signals + // -------------------------------------- + input increment_top_priority, + input save_top_priority +); + + // -------------------------------------- + // Signals + // -------------------------------------- + wire [NUM_REQUESTERS-1:0] top_priority; + reg [NUM_REQUESTERS-1:0] top_priority_reg; + reg [NUM_REQUESTERS-1:0] last_grant; + wire [2*NUM_REQUESTERS-1:0] result; + + // -------------------------------------- + // Scheme Selection + // -------------------------------------- + generate + if (SCHEME == "round-robin" && NUM_REQUESTERS > 1) begin + assign top_priority = top_priority_reg; + end + else begin + // Fixed arbitration (or single-requester corner case) + assign top_priority = 1'b1; + end + endgenerate + + // -------------------------------------- + // Decision Logic + // -------------------------------------- + altera_merlin_arb_adder + #( + .WIDTH (2 * NUM_REQUESTERS) + ) + adder + ( + .a ({ ~request, ~request }), + .b ({{NUM_REQUESTERS{1'b0}}, top_priority}), + .sum (result) + ); + + + generate if (SCHEME == "no-arb") begin + + // -------------------------------------- + // No arbitration: just wire request directly to grant + // -------------------------------------- + assign grant = request; + + end else begin + // Do the math in double-vector domain + wire [2*NUM_REQUESTERS-1:0] grant_double_vector; + assign grant_double_vector = {request, request} & result; + + // -------------------------------------- + // Extract grant from the top and bottom halves + // of the double vector. + // -------------------------------------- + assign grant = + grant_double_vector[NUM_REQUESTERS - 1 : 0] | + grant_double_vector[2 * NUM_REQUESTERS - 1 : NUM_REQUESTERS]; + + end + endgenerate + + // -------------------------------------- + // Left-rotate the last grant vector to create top_priority. + // -------------------------------------- + always @(posedge clk or posedge reset) begin + if (reset) begin + top_priority_reg <= 1'b1; + end + else begin + if (PIPELINE) begin + if (increment_top_priority) begin + top_priority_reg <= (|request) ? {grant[NUM_REQUESTERS-2:0], + grant[NUM_REQUESTERS-1]} : top_priority_reg; + end + end else begin + if (save_top_priority) begin + top_priority_reg <= grant; + end + if (increment_top_priority) begin + if (|request) + top_priority_reg <= { grant[NUM_REQUESTERS-2:0], + grant[NUM_REQUESTERS-1] }; + else + top_priority_reg <= { top_priority_reg[NUM_REQUESTERS-2:0], top_priority_reg[NUM_REQUESTERS-1] }; + end + end + end + end + +endmodule + +// ---------------------------------------------- +// Adder for the standard arbitrator +// ---------------------------------------------- +module altera_merlin_arb_adder +#( + parameter WIDTH = 8 +) +( + input [WIDTH-1:0] a, + input [WIDTH-1:0] b, + + output [WIDTH-1:0] sum +); + + // ---------------------------------------------- + // Benchmarks indicate that for small widths, the full + // adder has higher fmax because synthesis can merge + // it with the mux, allowing partial decisions to be + // made early. + // + // The magic number is 4 requesters, which means an + // 8 bit adder. + // ---------------------------------------------- + genvar i; + generate if (WIDTH <= 8) begin : full_adder + + wire cout[WIDTH-1:0]; + + assign sum[0] = (a[0] ^ b[0]); + assign cout[0] = (a[0] & b[0]); + + for (i = 1; i < WIDTH; i = i+1) begin : arb + + assign sum[i] = (a[i] ^ b[i]) ^ cout[i-1]; + assign cout[i] = (a[i] & b[i]) | (cout[i-1] & (a[i] ^ b[i])); + + end + + end else begin : carry_chain + + assign sum = a + b; + + end + endgenerate + +endmodule diff --git a/db/ip/nios_system/submodules/altera_merlin_burst_uncompressor.sv b/db/ip/nios_system/submodules/altera_merlin_burst_uncompressor.sv new file mode 100644 index 0000000..30eaf7d --- /dev/null +++ b/db/ip/nios_system/submodules/altera_merlin_burst_uncompressor.sv @@ -0,0 +1,286 @@ +// (C) 2001-2013 Altera Corporation. All rights reserved. +// Your use of Altera Corporation's design tools, logic functions and other +// software and tools, and its AMPP partner logic functions, and any output +// files any of the foregoing (including device programming or simulation +// files), and any associated documentation or information are expressly subject +// to the terms and conditions of the Altera Program License Subscription +// Agreement, Altera MegaCore Function License Agreement, or other applicable +// license agreement, including, without limitation, that your use is for the +// sole purpose of programming logic devices manufactured by Altera and sold by +// Altera or its authorized distributors. Please refer to the applicable +// agreement for further details. + + +// (C) 2001-2012 Altera Corporation. All rights reserved. +// Your use of Altera Corporation's design tools, logic functions and other +// software and tools, and its AMPP partner logic functions, and any output +// files any of the foregoing (including device programming or simulation +// files), and any associated documentation or information are expressly subject +// to the terms and conditions of the Altera Program License Subscription +// Agreement, Altera MegaCore Function License Agreement, or other applicable +// license agreement, including, without limitation, that your use is for the +// sole purpose of programming logic devices manufactured by Altera and sold by +// Altera or its authorized distributors. Please refer to the applicable +// agreement for further details. + + +// $Id: //acds/rel/13.0sp1/ip/merlin/altera_merlin_slave_agent/altera_merlin_burst_uncompressor.sv#1 $ +// $Revision: #1 $ +// $Date: 2013/03/07 $ +// $Author: swbranch $ + +// ------------------------------------------ +// Merlin Burst Uncompressor +// +// Compressed read bursts -> uncompressed +// ------------------------------------------ + +`timescale 1 ns / 1 ns + +module altera_merlin_burst_uncompressor +#( + parameter ADDR_W = 16, + parameter BURSTWRAP_W = 3, + parameter BYTE_CNT_W = 4, + parameter PKT_SYMBOLS = 4, + parameter BURST_SIZE_W = 3 +) +( + input clk, + input reset, + + // sink ST signals + input sink_startofpacket, + input sink_endofpacket, + input sink_valid, + output sink_ready, + + // sink ST "data" + input [ADDR_W - 1: 0] sink_addr, + input [BURSTWRAP_W - 1 : 0] sink_burstwrap, + input [BYTE_CNT_W - 1 : 0] sink_byte_cnt, + input sink_is_compressed, + input [BURST_SIZE_W-1 : 0] sink_burstsize, + + // source ST signals + output source_startofpacket, + output source_endofpacket, + output source_valid, + input source_ready, + + // source ST "data" + output [ADDR_W - 1: 0] source_addr, + output [BURSTWRAP_W - 1 : 0] source_burstwrap, + output [BYTE_CNT_W - 1 : 0] source_byte_cnt, + + // Note: in the slave agent, the output should always be uncompressed. In + // other applications, it may be required to leave-compressed or not. How to + // control? Seems like a simple mux - pass-through if no uncompression is + // required. + output source_is_compressed, + output [BURST_SIZE_W-1 : 0] source_burstsize +); + +//---------------------------------------------------- +// AXSIZE decoding +// +// Turns the axsize value into the actual number of bytes +// being transferred. +// --------------------------------------------------- +function reg[63:0] bytes_in_transfer; + input [2:0] axsize; + case (axsize) + 3'b000: bytes_in_transfer = 64'b0000000000000000000000000000000000000000000000000000000000000001; + 3'b001: bytes_in_transfer = 64'b0000000000000000000000000000000000000000000000000000000000000010; + 3'b010: bytes_in_transfer = 64'b0000000000000000000000000000000000000000000000000000000000000100; + 3'b011: bytes_in_transfer = 64'b0000000000000000000000000000000000000000000000000000000000001000; + 3'b100: bytes_in_transfer = 64'b0000000000000000000000000000000000000000000000000000000000010000; + 3'b101: bytes_in_transfer = 64'b0000000000000000000000000000000000000000000000000000000000100000; + 3'b110: bytes_in_transfer = 64'b0000000000000000000000000000000000000000000000000000000001000000; + 3'b111: bytes_in_transfer = 64'b0000000000000000000000000000000000000000000000000000000010000000; + default:bytes_in_transfer = 64'b0000000000000000000000000000000000000000000000000000000000000001; + endcase + +endfunction + + // num_symbols is PKT_SYMBOLS, appropriately sized. + wire [31:0] int_num_symbols = PKT_SYMBOLS; + wire [BYTE_CNT_W-1:0] num_symbols = int_num_symbols[BYTE_CNT_W-1:0]; + + // def: Burst Compression. In a merlin network, a compressed burst is one + // which is transmitted in a single beat. Example: read burst. In + // constrast, an uncompressed burst (example: write burst) is transmitted in + // one beat per writedata item. + // + // For compressed bursts which require response packets, burst + // uncompression is required. Concrete example: a read burst of size 8 + // occupies one response-fifo position. When that fifo position reaches the + // front of the FIFO, the slave starts providing the required 8 readdatavalid + // pulses. The 8 return response beats must be provided in a single packet, + // with incrementing address and decrementing byte_cnt fields. Upon receipt + // of the final readdata item of the burst, the response FIFO item is + // retired. + // Burst uncompression logic provides: + // a) 2-state FSM (idle, busy) + // reset to idle state + // transition to busy state for 2nd and subsequent rdv pulses + // - a single-cycle burst (aka non-burst read) causes no transition to + // busy state. + // b) response startofpacket/endofpacket logic. The response FIFO item + // will have sop asserted, and may have eop asserted. (In the case of + // multiple read bursts transmit in the command fabric in a single packet, + // the eop assertion will come in a later FIFO item.) To support packet + // conservation, and emit a well-formed packet on the response fabric, + // i) response fabric startofpacket is asserted only for the first resp. + // beat; + // ii) response fabric endofpacket is asserted only for the last resp. + // beat. + // c) response address field. The response address field contains an + // incrementing sequence, such that each readdata item is associated with + // its slave-map location. N.b. a) computing the address correctly requires + // knowledge of burstwrap behavior b) there may be no clients of the address + // field, which makes this field a good target for optimization. See + // burst_uncompress_address_counter below. + // d) response byte_cnt field. The response byte_cnt field contains a + // decrementing sequence, such that each beat of the response contains the + // count of bytes to follow. In the case of sub-bursts in a single packet, + // the byte_cnt field may decrement down to num_symbols, then back up to + // some value, multiple times in the packet. + + reg burst_uncompress_busy; + reg [BYTE_CNT_W-1:0] burst_uncompress_byte_counter; + wire first_packet_beat; + wire last_packet_beat; + + assign first_packet_beat = sink_valid & ~burst_uncompress_busy; + + // First cycle: burst_uncompress_byte_counter isn't ready yet, mux the input to + // the output. + assign source_byte_cnt = + first_packet_beat ? sink_byte_cnt : burst_uncompress_byte_counter; + assign source_valid = sink_valid; + + // Last packet beat is set throughout receipt of an uncompressed read burst + // from the response FIFO - this forces all the burst uncompression machinery + // idle. + assign last_packet_beat = ~sink_is_compressed | + ( + burst_uncompress_busy ? + (sink_valid & (burst_uncompress_byte_counter == num_symbols)) : + sink_valid & (sink_byte_cnt == num_symbols) + ); + + always @(posedge clk or posedge reset) begin + if (reset) begin + burst_uncompress_busy <= '0; + burst_uncompress_byte_counter <= '0; + end + else begin + if (source_valid & source_ready & sink_valid) begin + // No matter what the current state, last_packet_beat leads to + // idle. + if (last_packet_beat) begin + burst_uncompress_busy <= '0; + burst_uncompress_byte_counter <= '0; + end + else begin + if (burst_uncompress_busy) begin + burst_uncompress_byte_counter <= burst_uncompress_byte_counter ? + (burst_uncompress_byte_counter - num_symbols) : + (sink_byte_cnt - num_symbols); + end + else begin // not busy, at least one more beat to go + burst_uncompress_byte_counter <= sink_byte_cnt - num_symbols; + // To do: should busy go true for numsymbols-size compressed + // bursts? + burst_uncompress_busy <= '1; + end + end + end + end + end + + wire [ADDR_W - 1 : 0 ] addr_width_burstwrap; + reg [ADDR_W - 1 : 0 ] burst_uncompress_address_base; + reg [ADDR_W - 1 : 0] burst_uncompress_address_offset; + + wire [63:0] decoded_burstsize_wire; + wire [ADDR_W-1:0] decoded_burstsize; + + // The input burstwrap value can be used as a mask against address values, + // but with one caveat: the address width may be (probably is) wider than + // the burstwrap width. The spec says: extend the msb of the burstwrap + // value out over the entire address width (but only if the address width + // actually is wider than the burstwrap width; otherwise it's a 0-width or + // negative range and concatenation multiplier). + assign addr_width_burstwrap[BURSTWRAP_W - 1 : 0] = sink_burstwrap; + generate + if (ADDR_W > BURSTWRAP_W) begin : addr_sign_extend + // Sign-extend, just wires: + assign addr_width_burstwrap[ADDR_W - 1 : BURSTWRAP_W] = + {(ADDR_W - BURSTWRAP_W) {sink_burstwrap[BURSTWRAP_W - 1]}}; + end + endgenerate + + always @(posedge clk or posedge reset) begin + if (reset) begin + burst_uncompress_address_base <= '0; + end + else if (first_packet_beat & source_ready) begin + burst_uncompress_address_base <= sink_addr & ~addr_width_burstwrap; + end + end + + assign decoded_burstsize_wire = bytes_in_transfer(sink_burstsize); //expand it to 64 bits + assign decoded_burstsize = decoded_burstsize_wire[ADDR_W-1:0]; //then take the width that is needed + + wire [ADDR_W - 1 : 0] p1_burst_uncompress_address_offset = + ( + (first_packet_beat ? + sink_addr : + burst_uncompress_address_offset) + decoded_burstsize + ) & + addr_width_burstwrap; + + always @(posedge clk or posedge reset) begin + if (reset) begin + burst_uncompress_address_offset <= '0; + end + else begin + if (source_ready & source_valid) begin + burst_uncompress_address_offset <= p1_burst_uncompress_address_offset; + // if (first_packet_beat) begin + // burst_uncompress_address_offset <= + // (sink_addr + num_symbols) & addr_width_burstwrap; + // end + // else begin + // burst_uncompress_address_offset <= + // (burst_uncompress_address_offset + num_symbols) & addr_width_burstwrap; + // end + end + end + end + + // On the first packet beat, send the input address out unchanged, + // while values are computed/registered for 2nd and subsequent beats. + assign source_addr = first_packet_beat ? sink_addr : + burst_uncompress_address_base | burst_uncompress_address_offset; + assign source_burstwrap = sink_burstwrap; + assign source_burstsize = sink_burstsize; + + //------------------------------------------------------------------- + // A single (compressed) read burst will have sop/eop in the same beat. + // A sequence of read sub-bursts emitted by a burst adapter in response to a + // single read burst will have sop on the first sub-burst, eop on the last. + // Assert eop only upon (sink_endofpacket & last_packet_beat) to preserve + // packet conservation. + assign source_startofpacket = sink_startofpacket & ~burst_uncompress_busy; + assign source_endofpacket = sink_endofpacket & last_packet_beat; + assign sink_ready = source_valid & source_ready & last_packet_beat; + + // This is correct for the slave agent usage, but won't always be true in the + // width adapter. To do: add an "please uncompress" input, and use it to + // pass-through or modify, and set source_is_compressed accordingly. + assign source_is_compressed = 1'b0; +endmodule + diff --git a/db/ip/nios_system/submodules/altera_merlin_master_agent.sv b/db/ip/nios_system/submodules/altera_merlin_master_agent.sv new file mode 100644 index 0000000..305107d --- /dev/null +++ b/db/ip/nios_system/submodules/altera_merlin_master_agent.sv @@ -0,0 +1,309 @@ +// (C) 2001-2013 Altera Corporation. All rights reserved. +// Your use of Altera Corporation's design tools, logic functions and other +// software and tools, and its AMPP partner logic functions, and any output +// files any of the foregoing (including device programming or simulation +// files), and any associated documentation or information are expressly subject +// to the terms and conditions of the Altera Program License Subscription +// Agreement, Altera MegaCore Function License Agreement, or other applicable +// license agreement, including, without limitation, that your use is for the +// sole purpose of programming logic devices manufactured by Altera and sold by +// Altera or its authorized distributors. Please refer to the applicable +// agreement for further details. + + +// $Id: //acds/rel/13.0sp1/ip/merlin/altera_merlin_master_agent/altera_merlin_master_agent.sv#1 $ +// $Revision: #1 $ +// $Date: 2013/03/07 $ +// $Author: swbranch $ + +// -------------------------------------- +// Merlin Master Agent +// +// Converts Avalon-MM transactions into +// Merlin network packets. +// -------------------------------------- + +`timescale 1 ns / 1 ns + +module altera_merlin_master_agent +#( + // ------------------- + // Packet Format Parameters + // ------------------- + parameter PKT_QOS_H = 109, + PKT_QOS_L = 106, + PKT_DATA_SIDEBAND_H = 105, + PKT_DATA_SIDEBAND_L = 98, + PKT_ADDR_SIDEBAND_H = 97, + PKT_ADDR_SIDEBAND_L = 93, + PKT_CACHE_H = 92, + PKT_CACHE_L = 89, + PKT_THREAD_ID_H = 88, + PKT_THREAD_ID_L = 87, + PKT_BEGIN_BURST = 81, + PKT_PROTECTION_H = 80, + PKT_PROTECTION_L = 80, + PKT_BURSTWRAP_H = 79, + PKT_BURSTWRAP_L = 77, + PKT_BYTE_CNT_H = 76, + PKT_BYTE_CNT_L = 74, + PKT_ADDR_H = 73, + PKT_ADDR_L = 42, + PKT_BURST_SIZE_H = 86, + PKT_BURST_SIZE_L = 84, + PKT_BURST_TYPE_H = 94, + PKT_BURST_TYPE_L = 93, + PKT_TRANS_EXCLUSIVE = 83, + PKT_TRANS_LOCK = 82, + PKT_TRANS_COMPRESSED_READ = 41, + PKT_TRANS_POSTED = 40, + PKT_TRANS_WRITE = 39, + PKT_TRANS_READ = 38, + PKT_DATA_H = 37, + PKT_DATA_L = 6, + PKT_BYTEEN_H = 5, + PKT_BYTEEN_L = 2, + PKT_SRC_ID_H = 1, + PKT_SRC_ID_L = 1, + PKT_DEST_ID_H = 0, + PKT_DEST_ID_L = 0, + PKT_RESPONSE_STATUS_L = 110, + PKT_RESPONSE_STATUS_H = 111, + ST_DATA_W = 112, + ST_CHANNEL_W = 1, + + // ------------------- + // Agent Parameters + // ------------------- + AV_BURSTCOUNT_W = 3, + ID = 1, + SUPPRESS_0_BYTEEN_RSP = 1, + BURSTWRAP_VALUE = 4, + CACHE_VALUE = 0, + SECURE_ACCESS_BIT = 1, + USE_READRESPONSE = 0, + USE_WRITERESPONSE = 0, + + // ------------------- + // Derived Parameters + // ------------------- + PKT_BURSTWRAP_W = PKT_BURSTWRAP_H - PKT_BURSTWRAP_L + 1, + PKT_BYTE_CNT_W = PKT_BYTE_CNT_H - PKT_BYTE_CNT_L + 1, + PKT_PROTECTION_W= PKT_PROTECTION_H - PKT_PROTECTION_L + 1, + PKT_ADDR_W = PKT_ADDR_H - PKT_ADDR_L + 1, + PKT_DATA_W = PKT_DATA_H - PKT_DATA_L + 1, + PKT_BYTEEN_W = PKT_BYTEEN_H - PKT_BYTEEN_L + 1, + PKT_SRC_ID_W = PKT_SRC_ID_H - PKT_SRC_ID_L + 1, + PKT_DEST_ID_W = PKT_DEST_ID_H - PKT_DEST_ID_L + 1 +) +( + // ------------------- + // Clock & Reset + // ------------------- + input clk, + input reset, + + // ------------------- + // Avalon-MM Anti-Master + // ------------------- + input [PKT_ADDR_W-1 : 0] av_address, + input av_write, + input av_read, + input [PKT_DATA_W-1 : 0] av_writedata, + output reg [PKT_DATA_W-1 : 0] av_readdata, + output reg av_waitrequest, + output reg av_readdatavalid, + input [PKT_BYTEEN_W-1 : 0] av_byteenable, + input [AV_BURSTCOUNT_W-1 : 0] av_burstcount, + input av_debugaccess, + input av_lock, + output reg [1:0] av_response, + input av_writeresponserequest, + output reg av_writeresponsevalid, + + // ------------------- + // Command Source + // ------------------- + output reg cp_valid, + output reg [ST_DATA_W-1 : 0] cp_data, + output wire cp_startofpacket, + output wire cp_endofpacket, + input cp_ready, + + // ------------------- + // Response Sink + // ------------------- + input rp_valid, + input [ST_DATA_W-1 : 0] rp_data, + input [ST_CHANNEL_W-1 : 0] rp_channel, + input rp_startofpacket, + input rp_endofpacket, + output reg rp_ready +); + // ------------------------------------------------------------ + // Utility Functions + // ------------------------------------------------------------ + function integer clogb2; + input [31:0] value; + begin + for (clogb2 = 0; value > 0; clogb2 = clogb2 + 1) + value = value >> 1; + clogb2 = clogb2 - 1; + end + endfunction // clogb2 + + localparam MAX_BURST = 1 << (AV_BURSTCOUNT_W - 1); + localparam NUMSYMBOLS = PKT_BYTEEN_W; + localparam BURSTING = (MAX_BURST > NUMSYMBOLS); + localparam BITS_TO_ZERO = clogb2(NUMSYMBOLS); + localparam BURST_SIZE = clogb2(NUMSYMBOLS); + + typedef enum bit [1:0] + { + FIXED = 2'b00, + INCR = 2'b01, + WRAP = 2'b10, + OTHER_WRAP = 2'b11 + } MerlinBurstType; + + // -------------------------------------- + // Potential optimization: compare in words to save bits? + // -------------------------------------- + wire is_burst; + assign is_burst = (BURSTING) & (av_burstcount > NUMSYMBOLS); + + wire [31:0] burstwrap_value_int = BURSTWRAP_VALUE; + wire [31:0] id_int = ID; + wire [2:0] burstsize_sig = BURST_SIZE[2:0]; + wire [1:0] bursttype_value = burstwrap_value_int[PKT_BURSTWRAP_W-1] ? INCR : WRAP; + + // -------------------------------------- + // Address alignment + // + // The packet format requires that addresses be aligned to + // the transaction size. + // -------------------------------------- + wire [PKT_ADDR_W-1 : 0] av_address_aligned; + generate + if (NUMSYMBOLS > 1) begin + assign av_address_aligned = + {av_address[PKT_ADDR_W-1 : BITS_TO_ZERO], {BITS_TO_ZERO {1'b0}}}; + end + else begin + assign av_address_aligned = av_address; + end + endgenerate + + // -------------------------------------- + // Command & Response Construction + // -------------------------------------- + always @* begin + cp_data = '0; // default assignment; override below as needed. + + cp_data[PKT_PROTECTION_L] = av_debugaccess; + cp_data[PKT_PROTECTION_L+1] = SECURE_ACCESS_BIT[0]; // Default Non-secured (AXI) + cp_data[PKT_PROTECTION_L+2] = 1'b0; // Default Data access (AXI) + cp_data[PKT_BURSTWRAP_H:PKT_BURSTWRAP_L ] = burstwrap_value_int[PKT_BURSTWRAP_W-1:0]; + cp_data[PKT_BYTE_CNT_H :PKT_BYTE_CNT_L ] = av_burstcount; + cp_data[PKT_ADDR_H :PKT_ADDR_L ] = av_address_aligned; + cp_data[PKT_TRANS_EXCLUSIVE ] = 1'b0; + cp_data[PKT_TRANS_LOCK ] = av_lock; + cp_data[PKT_TRANS_COMPRESSED_READ ] = av_read & is_burst; + cp_data[PKT_TRANS_READ ] = av_read; + cp_data[PKT_TRANS_WRITE ] = av_write; + // posted and non-posted write avaiable now + cp_data[PKT_TRANS_POSTED ] = av_write & !av_writeresponserequest; + cp_data[PKT_DATA_H :PKT_DATA_L ] = av_writedata; + cp_data[PKT_BYTEEN_H :PKT_BYTEEN_L ] = av_byteenable; + cp_data[PKT_BURST_SIZE_H:PKT_BURST_SIZE_L] = burstsize_sig; + cp_data[PKT_BURST_TYPE_H:PKT_BURST_TYPE_L] = bursttype_value; + cp_data[PKT_SRC_ID_H :PKT_SRC_ID_L ] = id_int[PKT_SRC_ID_W-1:0]; + cp_data[PKT_THREAD_ID_H:PKT_THREAD_ID_L ] = '0; + cp_data[PKT_CACHE_H :PKT_CACHE_L ] = CACHE_VALUE[3:0]; + cp_data[PKT_QOS_H : PKT_QOS_L] = '0; + cp_data[PKT_ADDR_SIDEBAND_H:PKT_ADDR_SIDEBAND_L] = '0; + cp_data[PKT_DATA_SIDEBAND_H :PKT_DATA_SIDEBAND_L] = '0; + + av_readdata = rp_data[PKT_DATA_H : PKT_DATA_L]; + if (USE_WRITERESPONSE || USE_READRESPONSE) + av_response = rp_data[PKT_RESPONSE_STATUS_H : PKT_RESPONSE_STATUS_L]; + else + av_response = '0; + + end + + // -------------------------------------- + // Command Control + // -------------------------------------- + always @* begin + cp_valid = 0; + + if (av_write || av_read) + cp_valid = 1; + end + + generate if (BURSTING) begin + reg sop_enable; + + always @(posedge clk, posedge reset) begin + if (reset) begin + sop_enable <= 1'b1; + end + else begin + if (cp_valid && cp_ready) begin + sop_enable <= 1'b0; + if (cp_endofpacket) + sop_enable <= 1'b1; + end + end + end + + assign cp_startofpacket = sop_enable; + assign cp_endofpacket = (av_read) | (av_burstcount == NUMSYMBOLS); + + end + else begin + + assign cp_startofpacket = 1'b1; + assign cp_endofpacket = 1'b1; + + end + endgenerate + + // -------------------------------------- + // Backpressure & Readdatavalid + // -------------------------------------- + reg hold_waitrequest; + + always @ (posedge clk, posedge reset) begin + if (reset) + hold_waitrequest <= 1'b1; + else + hold_waitrequest <= 1'b0; + end + + always @* begin + rp_ready = 1; + av_readdatavalid = 0; + av_writeresponsevalid = 0; + av_waitrequest = hold_waitrequest | !cp_ready; + + // -------------------------------------- + // Currently, responses are _always_ read responses because + // this Avalon agent only issues posted writes, which do + // not have responses. -> not true for now + // Now Avalon supports response, so based on type of transaction + // return, assert correct thing + // -------------------------------------- + if (rp_data[PKT_TRANS_WRITE] == 1) + av_writeresponsevalid = rp_valid; + else + av_readdatavalid = rp_valid; + + if (SUPPRESS_0_BYTEEN_RSP) begin + if (rp_data[PKT_BYTEEN_H:PKT_BYTEEN_L] == 0) + av_readdatavalid = 0; + end + end + +endmodule diff --git a/db/ip/nios_system/submodules/altera_merlin_master_translator.sv b/db/ip/nios_system/submodules/altera_merlin_master_translator.sv new file mode 100644 index 0000000..b2be2d2 --- /dev/null +++ b/db/ip/nios_system/submodules/altera_merlin_master_translator.sv @@ -0,0 +1,554 @@ +// (C) 2001-2013 Altera Corporation. All rights reserved. +// Your use of Altera Corporation's design tools, logic functions and other +// software and tools, and its AMPP partner logic functions, and any output +// files any of the foregoing (including device programming or simulation +// files), and any associated documentation or information are expressly subject +// to the terms and conditions of the Altera Program License Subscription +// Agreement, Altera MegaCore Function License Agreement, or other applicable +// license agreement, including, without limitation, that your use is for the +// sole purpose of programming logic devices manufactured by Altera and sold by +// Altera or its authorized distributors. Please refer to the applicable +// agreement for further details. + + +// $Id: //acds/rel/13.0sp1/ip/merlin/altera_merlin_master_translator/altera_merlin_master_translator.sv#1 $ +// $Revision: #1 $ +// $Date: 2013/03/07 $ +// $Author: swbranch $ + +// -------------------------------------- +// Merlin Master Translator +// +// Converts Avalon-MM Master Interfaces into +// Avalon-MM Universal Master Interfaces +// -------------------------------------- + +`timescale 1 ns / 1 ns + + + +module altera_merlin_master_translator #( + parameter + AV_ADDRESS_W = 32, + AV_DATA_W = 32, + AV_BURSTCOUNT_W = 4, + AV_BYTEENABLE_W = 4, + + //Optional Port Declarations + + USE_BURSTCOUNT = 1, + USE_BEGINBURSTTRANSFER = 0, + USE_BEGINTRANSFER = 0, + USE_CHIPSELECT = 0, + USE_READ = 1, + USE_READDATAVALID = 1, + USE_WRITE = 1, + USE_WAITREQUEST = 1, + USE_WRITERESPONSE = 0, + USE_READRESPONSE = 0, + + AV_REGISTERINCOMINGSIGNALS = 0, + AV_SYMBOLS_PER_WORD = 4, + AV_ADDRESS_SYMBOLS = 0, + AV_CONSTANT_BURST_BEHAVIOR = 1, + AV_BURSTCOUNT_SYMBOLS = 0, + AV_LINEWRAPBURSTS = 0, + UAV_ADDRESS_W = 38, + UAV_BURSTCOUNT_W = 10, + UAV_CONSTANT_BURST_BEHAVIOR = 0 + )( + //Universal Avalon Master + input wire clk, + input wire reset, + output reg uav_write, + output reg uav_read, + output reg [UAV_ADDRESS_W -1 : 0] uav_address, + output reg [UAV_BURSTCOUNT_W -1 : 0] uav_burstcount, + output wire [AV_BYTEENABLE_W -1 : 0] uav_byteenable, + output wire [AV_DATA_W -1 : 0] uav_writedata, + output wire uav_lock, + output wire uav_debugaccess, + output wire uav_clken, + + input wire [ AV_DATA_W -1 : 0] uav_readdata, + input wire uav_readdatavalid, + input wire uav_waitrequest, + input wire [1:0] uav_response, + output reg uav_writeresponserequest, + input wire uav_writeresponsevalid, + + //Avalon-MM !Master + input reg av_write, + input reg av_read, + input wire [AV_ADDRESS_W -1 : 0] av_address, + input wire [AV_BYTEENABLE_W -1 : 0] av_byteenable, + input wire [AV_BURSTCOUNT_W -1 : 0] av_burstcount, + input wire [AV_DATA_W -1 : 0] av_writedata, + input wire av_begintransfer, + input wire av_beginbursttransfer, + input wire av_lock, + input wire av_chipselect, + input wire av_debugaccess, + input wire av_clken, + + output wire [AV_DATA_W -1 : 0] av_readdata, + output wire av_readdatavalid, + output reg av_waitrequest, + output reg [1:0] av_response, + input wire av_writeresponserequest, + output reg av_writeresponsevalid + + ); + + + localparam BITS_PER_WORD = clog2(AV_SYMBOLS_PER_WORD - 1); + localparam AV_MAX_SYMBOL_BURST = flog2( pow2(AV_BURSTCOUNT_W - 1) * (AV_BURSTCOUNT_SYMBOLS ? 1 : (AV_SYMBOLS_PER_WORD)) ); + localparam AV_MAX_SYMBOL_BURST_MINUS_ONE = AV_MAX_SYMBOL_BURST ? AV_MAX_SYMBOL_BURST - 1 : 0 ; + + localparam UAV_BURSTCOUNT_W_OR_32 = UAV_BURSTCOUNT_W > 32 ? 31 : UAV_BURSTCOUNT_W -1; + localparam UAV_ADDRESS_W_OR_32 = UAV_ADDRESS_W > 32 ? 31 : UAV_ADDRESS_W -1; + + + // -1 for burstcount restriction 2^(n-1) + + localparam BITS_PER_WORD_BURSTCOUNT = UAV_BURSTCOUNT_W == 1 ? 0 : BITS_PER_WORD; + localparam BITS_PER_WORD_ADDRESS = UAV_ADDRESS_W == 1 ? 0 : BITS_PER_WORD; + + localparam ADDRESS_LOW = AV_ADDRESS_SYMBOLS ? 0 : BITS_PER_WORD_ADDRESS; + localparam BURSTCOUNT_LOW = AV_BURSTCOUNT_SYMBOLS ? 0 : BITS_PER_WORD_BURSTCOUNT; + + localparam ADDRESS_HIGH = UAV_ADDRESS_W > AV_ADDRESS_W + ADDRESS_LOW ? AV_ADDRESS_W : UAV_ADDRESS_W - ADDRESS_LOW; + localparam BURSTCOUNT_HIGH = UAV_BURSTCOUNT_W > AV_BURSTCOUNT_W + BURSTCOUNT_LOW ? AV_BURSTCOUNT_W : UAV_BURSTCOUNT_W - BURSTCOUNT_LOW; + + function integer flog2; + input [31:0] Depth; + integer i; + begin + i = Depth; + if ( i <= 0 ) flog2 = 0; + else begin + for(flog2 = -1; i > 0; flog2 = flog2 + 1) + i = i >> 1; + end + end + + endfunction // flog2 + + function integer clog2; + input [31:0] Depth; + integer i; + begin + i = Depth; + for(clog2 = 0; i > 0; clog2 = clog2 + 1) + i = i >> 1; + end + + endfunction + + function integer pow2; + input [31:0] toShift; + begin + pow2=1; + pow2= pow2 << toShift; + end + endfunction // pow2 + + // ------------------------------------------------- + // Assign some constants to appropriately-sized signals to + // avoid synthesis warnings. This also helps some simulators + // with their inferred sensitivity lists. + // ------------------------------------------------- + // Calculate the symbols per word as the power of 2 extended symbols per word + wire [31:0] symbols_per_word_int = 2**(clog2(AV_SYMBOLS_PER_WORD[UAV_BURSTCOUNT_W_OR_32 : 0] - 1)); + wire [UAV_BURSTCOUNT_W_OR_32 : 0] symbols_per_word = symbols_per_word_int[UAV_BURSTCOUNT_W_OR_32 : 0]; + + + reg internal_beginbursttransfer; + reg internal_begintransfer; + reg [UAV_ADDRESS_W - 1: 0 ] uav_address_pre; + reg [UAV_BURSTCOUNT_W - 1 : 0 ] uav_burstcount_pre; + + + + reg uav_read_pre; + reg uav_write_pre; + reg read_accepted; + + //Passthru assignmenst + + assign uav_writedata = av_writedata; + assign av_readdata = uav_readdata; + assign uav_byteenable = av_byteenable; + assign uav_lock = av_lock; + assign av_readdatavalid = uav_readdatavalid; + assign uav_debugaccess = av_debugaccess; + assign uav_clken = av_clken; + + //Response signals + always_comb + begin + if (!USE_READRESPONSE && !USE_WRITERESPONSE) + av_response = '0; + else + av_response = uav_response; + if (USE_WRITERESPONSE) begin + uav_writeresponserequest = av_writeresponserequest; + av_writeresponsevalid = uav_writeresponsevalid; + end else begin + uav_writeresponserequest = '0; + av_writeresponsevalid = '0; + end + end + + //address + burstcount assignment + + reg [UAV_ADDRESS_W - 1 : 0] address_register; + reg [UAV_BURSTCOUNT_W - 1 : 0] burstcount_register; + + always @* begin + uav_address=uav_address_pre; + uav_burstcount=uav_burstcount_pre; + + if(AV_CONSTANT_BURST_BEHAVIOR && !UAV_CONSTANT_BURST_BEHAVIOR && ~internal_beginbursttransfer) begin + uav_address=address_register; + uav_burstcount=burstcount_register; + end + end + + reg first_burst_stalled; + reg burst_stalled; + + + wire[UAV_ADDRESS_W-1:0] combi_burst_addr_reg; + wire [UAV_ADDRESS_W-1:0] combi_addr_reg; + generate + if(AV_LINEWRAPBURSTS && AV_MAX_SYMBOL_BURST!=0) begin + if(AV_MAX_SYMBOL_BURST > UAV_ADDRESS_W - 1) begin + assign combi_burst_addr_reg = { uav_address_pre[UAV_ADDRESS_W-1:0] + AV_SYMBOLS_PER_WORD[UAV_ADDRESS_W-1:0] }; + assign combi_addr_reg = { address_register[UAV_ADDRESS_W-1:0] + AV_SYMBOLS_PER_WORD[UAV_ADDRESS_W-1:0] }; + end + else begin + assign combi_burst_addr_reg = { uav_address_pre[UAV_ADDRESS_W - 1 : AV_MAX_SYMBOL_BURST], uav_address_pre[AV_MAX_SYMBOL_BURST_MINUS_ONE:0] + AV_SYMBOLS_PER_WORD[AV_MAX_SYMBOL_BURST_MINUS_ONE:0] }; + assign combi_addr_reg = { address_register[UAV_ADDRESS_W - 1 : AV_MAX_SYMBOL_BURST], address_register[AV_MAX_SYMBOL_BURST_MINUS_ONE:0] + AV_SYMBOLS_PER_WORD[AV_MAX_SYMBOL_BURST_MINUS_ONE:0] }; + end + end + else begin + assign combi_burst_addr_reg = + uav_address_pre + AV_SYMBOLS_PER_WORD[UAV_ADDRESS_W_OR_32:0]; + assign combi_addr_reg = + address_register + AV_SYMBOLS_PER_WORD[UAV_ADDRESS_W_OR_32:0]; + end + endgenerate + + always@(posedge clk, posedge reset) begin + + if(reset) begin + address_register <= '0; + burstcount_register <= '0; + first_burst_stalled <= 1'b0; + burst_stalled <= 1'b0; + end + else begin + address_register <= address_register; + burstcount_register <= burstcount_register; + + if(internal_beginbursttransfer||first_burst_stalled) begin + + if(av_waitrequest) begin + first_burst_stalled <= 1'b1; + address_register <= uav_address_pre; + burstcount_register <= uav_burstcount_pre; + end else begin + first_burst_stalled <= 1'b0; + address_register <= combi_burst_addr_reg; + burstcount_register <= uav_burstcount_pre - symbols_per_word; + end + end + + else if(internal_begintransfer || burst_stalled) begin + if(~av_waitrequest) begin + burst_stalled <= 1'b0; + address_register <= combi_addr_reg; + burstcount_register <= burstcount_register - symbols_per_word; + end else + burst_stalled<=1'b1; + end + end + + end + + //Address + always @* begin + uav_address_pre = '0; + + if(AV_ADDRESS_SYMBOLS) + uav_address_pre=av_address[ ( ADDRESS_HIGH ? ADDRESS_HIGH - 1 : 0 ) : 0 ]; + else begin + uav_address_pre[ UAV_ADDRESS_W - 1 : ADDRESS_LOW ] = av_address[( ADDRESS_HIGH ? ADDRESS_HIGH - 1 : 0) : 0 ]; + end + end + + //Burstcount + always@* begin + uav_burstcount_pre = symbols_per_word; // default to a single transfer + + if(USE_BURSTCOUNT) begin + uav_burstcount_pre = '0; + + if(AV_BURSTCOUNT_SYMBOLS) + uav_burstcount_pre = av_burstcount[( BURSTCOUNT_HIGH ? BURSTCOUNT_HIGH - 1 : 0 ) :0 ]; + else begin + uav_burstcount_pre[ UAV_BURSTCOUNT_W - 1 : BURSTCOUNT_LOW] = av_burstcount[( BURSTCOUNT_HIGH ? BURSTCOUNT_HIGH - 1 : 0 ) : 0 ]; + end + + end + + end + + + //waitrequest translation + + always@(posedge clk, posedge reset) begin + if(reset) + read_accepted <= 1'b0; + else begin + read_accepted <= read_accepted; + + if(read_accepted == 1 && uav_readdatavalid == 1) // reset acceptance only when rdv arrives + read_accepted <= 1'b0; + + if(read_accepted == 0) + read_accepted<=av_waitrequest ? uav_read_pre & ~uav_waitrequest : 1'b0; + end + + end + + reg write_accepted = 0; + generate if (AV_REGISTERINCOMINGSIGNALS) begin + always@(posedge clk, posedge reset) begin + if(reset) + write_accepted <= 1'b0; + else begin + write_accepted <= + ~av_waitrequest ? 1'b0 : + uav_write & ~uav_waitrequest? 1'b1 : + write_accepted; + end + end + end endgenerate + + always@* begin + av_waitrequest = uav_waitrequest; + + if(USE_READDATAVALID == 0 ) begin + av_waitrequest = uav_read_pre ? ~uav_readdatavalid : uav_waitrequest; + end + + if (AV_REGISTERINCOMINGSIGNALS) begin + av_waitrequest = + uav_read_pre ? ~uav_readdatavalid : + uav_write_pre ? (internal_begintransfer | uav_waitrequest) & ~write_accepted : + 1'b1; + end + + if(USE_WAITREQUEST == 0) begin + av_waitrequest = 0; + end + end + + //read/write generation + always@* begin + + uav_write = 1'b0; + uav_write_pre = 1'b0; + uav_read = 1'b0; + uav_read_pre = 1'b0; + + if(!USE_CHIPSELECT) begin + if (USE_READ) begin + uav_read_pre=av_read; + end + + if (USE_WRITE) begin + uav_write_pre=av_write; + end + end + else begin + if(!USE_WRITE && USE_READ) begin + uav_read_pre=av_read; + uav_write_pre=av_chipselect & ~av_read; + end + else if(!USE_READ && USE_WRITE) begin + uav_write_pre=av_write; + uav_read_pre = av_chipselect & ~av_write; + end + else if (USE_READ && USE_WRITE) begin + uav_write_pre=av_write; + uav_read_pre=av_read; + end + end + + if(USE_READDATAVALID == 0) + uav_read = uav_read_pre & ~read_accepted; + else + uav_read = uav_read_pre; + + if(AV_REGISTERINCOMINGSIGNALS == 0) + uav_write=uav_write_pre; + else + uav_write=uav_write_pre & ~write_accepted; + + + end + + // ------------------- + // Begintransfer Assigment + // ------------------- + + reg end_begintransfer; + + always@* begin + if(USE_BEGINTRANSFER) begin + internal_begintransfer = av_begintransfer; + end else begin + internal_begintransfer = ( uav_write | uav_read ) & ~end_begintransfer; + end + end + + always@ ( posedge clk or posedge reset ) begin + + if(reset) begin + end_begintransfer <= 1'b0; + end + else begin + + if(internal_begintransfer == 1 && uav_waitrequest) + end_begintransfer <= 1'b1; + else if(uav_waitrequest) + end_begintransfer <= end_begintransfer; + else + end_begintransfer <= 1'b0; + + end + + end + + // ------------------- + // Beginbursttransfer Assigment + // ------------------- + + reg end_beginbursttransfer; + wire last_burst_transfer_pre; + wire last_burst_transfer_reg; + wire last_burst_transfer; + + // compare values before the mux to shorten critical path; benchmark before changing + assign last_burst_transfer_pre = (uav_burstcount_pre == symbols_per_word); + assign last_burst_transfer_reg = (burstcount_register == symbols_per_word); + assign last_burst_transfer = (internal_beginbursttransfer) ? last_burst_transfer_pre : last_burst_transfer_reg; + + always@* begin + if(USE_BEGINBURSTTRANSFER) begin + internal_beginbursttransfer = av_beginbursttransfer; + end else begin + internal_beginbursttransfer = uav_read ? internal_begintransfer : internal_begintransfer && ~end_beginbursttransfer; + end + end + + always@ ( posedge clk or posedge reset ) begin + + if(reset) begin + end_beginbursttransfer <= 1'b0; + end + else begin + end_beginbursttransfer <= end_beginbursttransfer; + if( last_burst_transfer && internal_begintransfer || uav_read ) begin + end_beginbursttransfer <= 1'b0; + end + else if(uav_write && internal_begintransfer) begin + end_beginbursttransfer <= 1'b1; + end + end + + end + + // synthesis translate_off + + // ------------------------------------------------ + // check_1 : for waitrequest signal violation + // Ensure that when waitreqeust is asserted, the master is not allowed to change its controls + // Exception : begintransfer / beginbursttransfer + // : previously not in any transaction (idle) + // Note : Not checking clken which is not exactly part of Avalon controls/inputs + // : Not using system verilog assertions (seq/prop) since it is not supported if using Modelsim_SE + // ------------------------------------------------ + + reg av_waitrequest_r; + reg av_write_r,av_writeresponserequest_r,av_read_r,av_lock_r,av_chipselect_r,av_debugaccess_r; + reg [AV_ADDRESS_W-1:0] av_address_r; + reg [AV_BYTEENABLE_W-1:0] av_byteenable_r; + reg [AV_BURSTCOUNT_W-1:0] av_burstcount_r; + reg [AV_DATA_W-1:0] av_writedata_r; + + always @(posedge clk or posedge reset) begin + if (reset) begin + av_waitrequest_r <= '0; + av_write_r <= '0; + av_writeresponserequest_r <= '0; + av_read_r <= '0; + av_lock_r <= '0; + av_chipselect_r <= '0; + av_debugaccess_r <= '0; + av_address_r <= '0; + av_byteenable_r <= '0; + av_burstcount_r <= '0; + av_writedata_r <= '0; + + end + else begin + av_waitrequest_r <= av_waitrequest; + av_write_r <= av_write; + av_writeresponserequest_r <= av_writeresponserequest; + av_read_r <= av_read; + av_lock_r <= av_lock; + av_chipselect_r <= av_chipselect; + av_debugaccess_r <= av_debugaccess; + av_address_r <= av_address; + av_byteenable_r <= av_byteenable; + av_burstcount_r <= av_burstcount; + av_writedata_r <= av_writedata; + + if ( av_waitrequest_r && // When waitrequest is asserted + ( (av_write != av_write_r) || // Checks that : Input controls/data does not change + (av_writeresponserequest != av_writeresponserequest_r) || + (av_read != av_read_r) || + (av_lock != av_lock_r) || + (av_debugaccess != av_debugaccess_r) || + (av_address != av_address_r) || + (av_byteenable != av_byteenable_r) || + (av_burstcount != av_burstcount_r) + ) && + (av_write_r | av_read_r) && // Check only when : previously initiated a write/read + (!USE_CHIPSELECT | av_chipselect_r) // and chipselect was asserted (or unused) + ) + $display("%t: %m: Error: Input controls/data changed while av_waitrequest is asserted.\nav_address %x --> %x\nav_byteenable %x --> %x\nav_burstcount %x --> %x\nav_writedata %x --> %x\nav_writeresponserequest %x --> %x\nav_write %x --> %x\nav_read %x --> %x\nav_lock %x --> %x\nav_chipselect %x --> %x\nav_debugaccess %x --> %x ", $time(), + av_address_r , av_address, + av_byteenable_r , av_byteenable, + av_burstcount_r , av_burstcount, + av_writedata_r , av_writedata, + av_writeresponserequest_r, av_writeresponserequest, + av_write_r , av_write, + av_read_r , av_read, + av_lock_r , av_lock, + av_chipselect_r, av_chipselect, + av_debugaccess_r, av_debugaccess); + end + + // end check_1 + + end + + // synthesis translate_on + + + endmodule diff --git a/db/ip/nios_system/submodules/altera_merlin_slave_agent.sv b/db/ip/nios_system/submodules/altera_merlin_slave_agent.sv new file mode 100644 index 0000000..e7c183d --- /dev/null +++ b/db/ip/nios_system/submodules/altera_merlin_slave_agent.sv @@ -0,0 +1,588 @@ +// (C) 2001-2013 Altera Corporation. All rights reserved. +// Your use of Altera Corporation's design tools, logic functions and other +// software and tools, and its AMPP partner logic functions, and any output +// files any of the foregoing (including device programming or simulation +// files), and any associated documentation or information are expressly subject +// to the terms and conditions of the Altera Program License Subscription +// Agreement, Altera MegaCore Function License Agreement, or other applicable +// license agreement, including, without limitation, that your use is for the +// sole purpose of programming logic devices manufactured by Altera and sold by +// Altera or its authorized distributors. Please refer to the applicable +// agreement for further details. + + +// (C) 2001-2011 Altera Corporation. All rights reserved. +// Your use of Altera Corporation's design tools, logic functions and other +// software and tools, and its AMPP partner logic functions, and any output +// files any of the foregoing (including device programming or simulation +// files), and any associated documentation or information are expressly subject +// to the terms and conditions of the Altera Program License Subscription +// Agreement, Altera MegaCore Function License Agreement, or other applicable +// license agreement, including, without limitation, that your use is for the +// sole purpose of programming logic devices manufactured by Altera and sold by +// Altera or its authorized distributors. Please refer to the applicable +// agreement for further details. + + +// $Id: //acds/rel/13.0sp1/ip/merlin/altera_merlin_slave_agent/altera_merlin_slave_agent.sv#1 $ +// $Revision: #1 $ +// $Date: 2013/03/07 $ +// $Author: swbranch $ + +`timescale 1 ns / 1 ns + +module altera_merlin_slave_agent +#( + // Packet parameters + parameter PKT_BEGIN_BURST = 81, + parameter PKT_DATA_H = 31, + parameter PKT_DATA_L = 0, + parameter PKT_SYMBOL_W = 8, + parameter PKT_BYTEEN_H = 71, + parameter PKT_BYTEEN_L = 68, + parameter PKT_ADDR_H = 63, + parameter PKT_ADDR_L = 32, + parameter PKT_TRANS_LOCK = 87, + parameter PKT_TRANS_COMPRESSED_READ = 67, + parameter PKT_TRANS_POSTED = 66, + parameter PKT_TRANS_WRITE = 65, + parameter PKT_TRANS_READ = 64, + parameter PKT_SRC_ID_H = 74, + parameter PKT_SRC_ID_L = 72, + parameter PKT_DEST_ID_H = 77, + parameter PKT_DEST_ID_L = 75, + parameter PKT_BURSTWRAP_H = 85, + parameter PKT_BURSTWRAP_L = 82, + parameter PKT_BYTE_CNT_H = 81, + parameter PKT_BYTE_CNT_L = 78, + parameter PKT_PROTECTION_H = 86, + parameter PKT_PROTECTION_L = 86, + parameter PKT_RESPONSE_STATUS_H = 89, + parameter PKT_RESPONSE_STATUS_L = 88, + parameter PKT_BURST_SIZE_H = 92, + parameter PKT_BURST_SIZE_L = 90, + parameter ST_DATA_W = 93, + parameter ST_CHANNEL_W = 32, + + // Slave parameters + parameter ADDR_W = PKT_ADDR_H - PKT_ADDR_L + 1, + parameter AVS_DATA_W = PKT_DATA_H - PKT_DATA_L + 1, + parameter AVS_BURSTCOUNT_W = 4, + parameter PKT_SYMBOLS = AVS_DATA_W / PKT_SYMBOL_W, + + // Slave agent parameters + parameter PREVENT_FIFO_OVERFLOW = 0, + parameter SUPPRESS_0_BYTEEN_CMD = 1, + parameter USE_READRESPONSE = 0, + parameter USE_WRITERESPONSE = 0, + + // Derived slave parameters + parameter AVS_BE_W = PKT_BYTEEN_H - PKT_BYTEEN_L + 1, + parameter BURST_SIZE_W = 3, + + // Derived FIFO width + parameter FIFO_DATA_W = ST_DATA_W + 1 +) +( + + input clk, + input reset, + + // Universal-Avalon anti-slave + output [ADDR_W-1:0] m0_address, + output [AVS_BURSTCOUNT_W-1:0] m0_burstcount, + output [AVS_BE_W-1:0] m0_byteenable, + output m0_read, + input [AVS_DATA_W-1:0] m0_readdata, + input m0_waitrequest, + output m0_write, + output [AVS_DATA_W-1:0] m0_writedata, + input m0_readdatavalid, + output m0_debugaccess, + output m0_lock, + input [1:0] m0_response, + output m0_writeresponserequest, + input m0_writeresponsevalid, + + // Avalon-ST FIFO interfaces. + // Note: there's no need to include the "data" field here, at least for + // reads, since readdata is filled in from slave info. To keep life + // simple, have a data field, but fill it with 0s. + // Av-st response fifo source interface + output reg [FIFO_DATA_W-1:0] rf_source_data, + output rf_source_valid, + output rf_source_startofpacket, + output rf_source_endofpacket, + input rf_source_ready, + + // Av-st response fifo sink interface + input [FIFO_DATA_W-1:0] rf_sink_data, + input rf_sink_valid, + input rf_sink_startofpacket, + input rf_sink_endofpacket, + output rf_sink_ready, + + // Av-st readdata fifo src interface, data and response + // extra 2 bits for storing RESPONSE STATUS + output [AVS_DATA_W+1:0] rdata_fifo_src_data, + output rdata_fifo_src_valid, + input rdata_fifo_src_ready, + + // Av-st readdata fifo sink interface + input [AVS_DATA_W+1:0] rdata_fifo_sink_data, + input rdata_fifo_sink_valid, + output rdata_fifo_sink_ready, + + // Av-st sink command packet interface + output cp_ready, + input cp_valid, + input [ST_DATA_W-1:0] cp_data, + input [ST_CHANNEL_W-1:0] cp_channel, + input cp_startofpacket, + input cp_endofpacket, + + // Av-st source response packet interface + input rp_ready, + output reg rp_valid, + output reg [ST_DATA_W-1:0] rp_data, + output rp_startofpacket, + output rp_endofpacket +); + + // -------------------------------------------------- + // Ceil(log2()) function log2ceil of 4 = 2 + // -------------------------------------------------- + function integer log2ceil; + input reg[63:0] val; + reg [63:0] i; + + begin + i = 1; + log2ceil = 0; + + while (i < val) begin + log2ceil = log2ceil + 1; + i = i << 1; + end + end + endfunction + + // ------------------------------------------------ + // Local Parameters + // ------------------------------------------------ + localparam DATA_W = PKT_DATA_H - PKT_DATA_L + 1; + localparam BE_W = PKT_BYTEEN_H - PKT_BYTEEN_L + 1; + localparam MID_W = PKT_SRC_ID_H - PKT_SRC_ID_L + 1; + localparam SID_W = PKT_DEST_ID_H - PKT_DEST_ID_L + 1; + localparam BYTE_CNT_W = PKT_BYTE_CNT_H - PKT_BYTE_CNT_L + 1; + localparam BURSTWRAP_W = PKT_BURSTWRAP_H - PKT_BURSTWRAP_L + 1; + localparam BURSTSIZE_W = PKT_BURST_SIZE_H - PKT_BURST_SIZE_L + 1; + localparam BITS_TO_MASK = log2ceil(PKT_SYMBOLS); + + // ------------------------------------------------ + // Signals + // ------------------------------------------------ + wire [DATA_W-1:0] cmd_data; + wire [BE_W-1:0] cmd_byteen; + wire [ADDR_W-1:0] cmd_addr; + wire [MID_W-1:0] cmd_mid; + wire [SID_W-1:0] cmd_sid; + wire cmd_read; + wire cmd_write; + wire cmd_compressed; + wire cmd_posted; + wire [BYTE_CNT_W-1:0] cmd_byte_cnt; + wire [BURSTWRAP_W-1:0] cmd_burstwrap; + wire [BURSTSIZE_W-1:0] cmd_burstsize; + wire cmd_debugaccess; + + wire byteen_asserted; + wire needs_response_synthesis; + wire generate_response; + + // Assign command fields + assign cmd_data = cp_data[PKT_DATA_H :PKT_DATA_L ]; + assign cmd_byteen = cp_data[PKT_BYTEEN_H:PKT_BYTEEN_L]; + assign cmd_addr = cp_data[PKT_ADDR_H :PKT_ADDR_L ]; + assign cmd_compressed = cp_data[PKT_TRANS_COMPRESSED_READ]; + assign cmd_posted = cp_data[PKT_TRANS_POSTED]; + assign cmd_write = cp_data[PKT_TRANS_WRITE]; + assign cmd_read = cp_data[PKT_TRANS_READ]; + assign cmd_mid = cp_data[PKT_SRC_ID_H :PKT_SRC_ID_L]; + assign cmd_sid = cp_data[PKT_DEST_ID_H:PKT_DEST_ID_L]; + assign cmd_byte_cnt = cp_data[PKT_BYTE_CNT_H:PKT_BYTE_CNT_L]; + assign cmd_burstwrap = cp_data[PKT_BURSTWRAP_H:PKT_BURSTWRAP_L]; + assign cmd_burstsize = cp_data[PKT_BURST_SIZE_H:PKT_BURST_SIZE_L]; + assign cmd_debugaccess = cp_data[PKT_PROTECTION_L]; + + // Local "ready_for_command" signal: deasserted when the agent is unable to accept + // another command, e.g. rdv FIFO is full, (local readdata storage is full && + // ~rp_ready), ... + // Say, this could depend on the type of command, for example, even if the + // rdv FIFO is full, a write request can be accepted. For later. + wire ready_for_command; + + wire local_lock = cp_valid & cp_data[PKT_TRANS_LOCK]; + wire local_write = cp_valid & cp_data[PKT_TRANS_WRITE]; + wire local_read = cp_valid & cp_data[PKT_TRANS_READ]; + wire local_compressed_read = cp_valid & cp_data[PKT_TRANS_COMPRESSED_READ]; + wire nonposted_write_endofpacket = ~cp_data[PKT_TRANS_POSTED] & local_write & cp_endofpacket; + + // num_symbols is PKT_SYMBOLS, appropriately sized. + wire [31:0] int_num_symbols = PKT_SYMBOLS; + wire [BYTE_CNT_W-1:0] num_symbols = int_num_symbols[BYTE_CNT_W-1:0]; + + generate + if (PREVENT_FIFO_OVERFLOW) begin : prevent_fifo_overflow + // --------------------------------------------------- + // Backpressure if the slave says to, or if FIFO overflow may occur. + // + // All commands are backpressured once the FIFO is full + // even if they don't need storage. This breaks a long + // combinatorial path from the master read/write through + // this logic and back to the master via the backpressure + // path. + // + // To avoid a loss of throughput the FIFO will be parameterized + // one slot deeper. The extra slot should never be used in normal + // operation, but should a slave misbehave and accept one more + // read than it should then backpressure will kick in. + // + // An example: assume a slave with MPRT = 2. It can accept a + // command sequence RRWW without backpressuring. If the FIFO is + // only 2 deep, we'd backpressure the writes leading to loss of + // throughput. If the FIFO is 3 deep, we'll only backpressure when + // RRR... which is an illegal condition anyway. + // --------------------------------------------------- + + assign ready_for_command = rf_source_ready; + assign cp_ready = (~m0_waitrequest | ~byteen_asserted) && ready_for_command; + + end else begin : no_prevent_fifo_overflow + + // Do not suppress the command or the slave will + // not be able to waitrequest + assign ready_for_command = 1'b1; + // Backpressure only if the slave says to. + assign cp_ready = ~m0_waitrequest | ~byteen_asserted; + + end + endgenerate + + generate if (SUPPRESS_0_BYTEEN_CMD) begin : suppress_0_byteen_cmd + assign byteen_asserted = |cmd_byteen; + end else begin : no_suppress_0_byteen_cmd + assign byteen_asserted = 1'b1; + end + endgenerate + + // ------------------------------------------------------------------- + // Extract avalon signals from command packet. + // ------------------------------------------------------------------- + // Mask off the lower bits of address. + // The burst adapter before this component will break narrow sized packets + // into sub-bursts of length 1. However, the packet addresses are preserved, + // which means this component may see size-aligned addresses. + // + // Masking ensures that the addresses seen by an Avalon slave are aligned to + // the full data width instead of the size. + // + // Example: + // output from burst adapter (datawidth=4, size=2 bytes): + // subburst1 addr=0, subburst2 addr=2, subburst3 addr=4, subburst4 addr=6 + // expected output from slave agent: + // subburst1 addr=0, subburst2 addr=0, subburst3 addr=4, subburst4 addr=4 + generate + if (BITS_TO_MASK > 0) begin : mask_address + + assign m0_address = { cmd_addr[ADDR_W-1:BITS_TO_MASK], {BITS_TO_MASK{1'b0}} }; + + end else begin : no_mask_address + + assign m0_address = cmd_addr; + + end + endgenerate + + assign m0_byteenable = cmd_byteen; + assign m0_writedata = cmd_data; + + // Note: no Avalon-MM slave in existence accepts uncompressed read bursts - + // this sort of burst exists only in merlin fabric ST packets. What to do + // if we see such a burst? All beats in that burst need to be transmitted + // to the slave so we have enough space-time for byteenable expression. + // + // There can be multiple bursts in a packet, but only one beat per burst + // in cases. The exception is when we've decided not to insert a + // burst adapter for efficiency reasons, in which case this agent is also + // responsible for driving burstcount to 1 on each beat of an uncompressed + // read burst. + + assign m0_read = ready_for_command & byteen_asserted & + (local_compressed_read | local_read); + + generate + begin : m0_burstcount_zero_pad + // AVS_BURSTCOUNT_W and BYTE_CNT_W may not be equal. Assign m0_burstcount + // from a sub-range, or 0-pad, as appropriate. + if (AVS_BURSTCOUNT_W > BYTE_CNT_W) begin + wire [AVS_BURSTCOUNT_W - BYTE_CNT_W - 1 : 0] zero_pad = + {(AVS_BURSTCOUNT_W - BYTE_CNT_W) {1'b0}}; + assign m0_burstcount = (local_read & ~local_compressed_read) ? + {zero_pad, num_symbols} : + {zero_pad, cmd_byte_cnt}; + end + else begin : m0_burstcount_no_pad + assign m0_burstcount = (local_read & ~local_compressed_read) ? + num_symbols[AVS_BURSTCOUNT_W-1:0] : + cmd_byte_cnt[AVS_BURSTCOUNT_W-1:0]; + end + end + endgenerate + + assign m0_write = ready_for_command & local_write & byteen_asserted; + assign m0_lock = ready_for_command & local_lock & (m0_read | m0_write); + assign m0_debugaccess = cmd_debugaccess; + // For now, to support write response + assign m0_writeresponserequest = ready_for_command & local_write & byteen_asserted & !cmd_posted; + //assign m0_writeresponserequest = '0; + + // ------------------------------------------------------------------- + // Indirection layer for response packet values. Some may always wire + // directly from the slave translator; others will no doubt emerge from + // various FIFOs. + // What to put in resp_data when a write occured? Answer: it does not + // matter, because only response status is needed for non-posted writes, + // and the packet already has a field for that. + + // tgngo:Use the rdata_fifo to store write response as well + // So that we wont lost response if master can back-pressured + // as well as it needs for write response merging + assign rdata_fifo_src_valid = m0_readdatavalid | m0_writeresponsevalid; + //assign rdata_fifo_src_valid = m0_readdatavalid; + assign rdata_fifo_src_data = {m0_response,m0_readdata}; + + // ------------------------------------------------------------------ + // Generate a token when read commands are suppressed. The token + // is stored in the response FIFO, and will be used to synthesize + // a read response. The same token is used for non-posted write + // response synthesis. + // + // Note: this token is not generated for suppressed uncompressed read cycles; + // the burst uncompression logic at the read side of the response FIFO + // generates the correct number of responses. + // ------------------------------------------------------------------ + // When the slave can return the response, let it does its works. Dont generate sysnthesis response + assign needs_response_synthesis = ((local_read | local_compressed_read) & !byteen_asserted) | (nonposted_write_endofpacket && !USE_WRITERESPONSE); + + // Avalon-ST interfaces to external response fifo: + // tgngo:Currently, with "generate response synthesis", only one write command is allowed to write in at eop of non-posted write + // To support response from slave, we need to store each sub-burst of write command into fifo. + // Each sub-burst will return a response and these two command and response are popped out together + // Resposne merging will happen and at end_of_packet of the command - the last sub-burst write + // the slave agent will send out the final merged response + + wire internal_cp_endofburst; + wire [31:0] minimum_bytecount_wire = PKT_SYMBOLS; // to solve qis warning + wire [AVS_BURSTCOUNT_W-1:0] minimum_bytecount; + assign minimum_bytecount = minimum_bytecount_wire[AVS_BURSTCOUNT_W-1:0]; + assign internal_cp_endofburst = (cmd_byte_cnt == minimum_bytecount); + wire local_nonposted_write = ~cp_data[PKT_TRANS_POSTED] & local_write; + wire nonposted_end_of_subburst = local_nonposted_write & internal_cp_endofburst; + + assign rf_source_valid = (local_read | local_compressed_read | (nonposted_write_endofpacket && !USE_WRITERESPONSE) | (USE_WRITERESPONSE && nonposted_end_of_subburst)) + & ready_for_command & cp_ready; + assign rf_source_startofpacket = cp_startofpacket; + assign rf_source_endofpacket = cp_endofpacket; + always @* begin + // default: assign every command packet field to the response FIFO... + rf_source_data = {1'b0, cp_data}; + + // ... and override select fields as needed. + rf_source_data[FIFO_DATA_W-1] = needs_response_synthesis; + rf_source_data[PKT_DATA_H :PKT_DATA_L] = {DATA_W {1'b0}}; + rf_source_data[PKT_BYTEEN_H :PKT_BYTEEN_L] = cmd_byteen; + rf_source_data[PKT_ADDR_H :PKT_ADDR_L] = cmd_addr; + //rf_source_data[PKT_ADDR_H :PKT_ADDR_L] = m0_address; + rf_source_data[PKT_TRANS_COMPRESSED_READ] = cmd_compressed; + rf_source_data[PKT_TRANS_POSTED] = cmd_posted; + rf_source_data[PKT_TRANS_WRITE] = cmd_write; + rf_source_data[PKT_TRANS_READ] = cmd_read; + rf_source_data[PKT_SRC_ID_H :PKT_SRC_ID_L] = cmd_mid; + rf_source_data[PKT_DEST_ID_H:PKT_DEST_ID_L] = cmd_sid; + rf_source_data[PKT_BYTE_CNT_H:PKT_BYTE_CNT_L] = cmd_byte_cnt; + rf_source_data[PKT_BURSTWRAP_H:PKT_BURSTWRAP_L] = cmd_burstwrap; + rf_source_data[PKT_BURST_SIZE_H:PKT_BURST_SIZE_L] = cmd_burstsize; + rf_source_data[PKT_PROTECTION_H:PKT_PROTECTION_L] = '0; + rf_source_data[PKT_PROTECTION_L] = cmd_debugaccess; + end + + wire uncompressor_source_valid; + wire [BURSTSIZE_W-1:0] uncompressor_burstsize; + + //assign rp_valid = rdata_fifo_sink_valid | uncompressor_source_valid; + // tgngo: last_write_response indicates the last response of the burst (incase need sub-burst) + // at this time, the final response merged will send out, and rp_valid is only asserted + // for one response for whole burst + generate + if (USE_READRESPONSE & USE_WRITERESPONSE) begin + wire last_write_response = rf_sink_data[PKT_TRANS_WRITE] & !rf_sink_data[PKT_TRANS_POSTED] & rf_sink_endofpacket; + always @* begin + if (rf_sink_data[PKT_TRANS_WRITE] == 1) + rp_valid = rdata_fifo_sink_valid & last_write_response; + else + rp_valid = rdata_fifo_sink_valid | uncompressor_source_valid; + end + end else begin + always @* begin + rp_valid = rdata_fifo_sink_valid | uncompressor_source_valid; + end + end + endgenerate + // ------------------------------------------------------------------ + // Response merging + // ------------------------------------------------------------------ + wire [1:0] current_response = rdata_fifo_sink_data[AVS_DATA_W+1:AVS_DATA_W]; + reg [1:0] response_merged; + generate + begin: response_merging + if (USE_READRESPONSE & USE_WRITERESPONSE) begin + reg first_write_response; + reg reset_merged_output; + reg [1:0] previous_response_in; + reg [1:0] previous_response; + + always_ff @(posedge clk, posedge reset) begin + if (reset) begin + first_write_response <= 1'b1; + end + else begin // Merging work for write response, for read: previous_response_in = current_response + if (rf_sink_valid & rdata_fifo_sink_valid & rf_sink_data[PKT_TRANS_WRITE]) begin + first_write_response <= 1'b0; + if (rf_sink_endofpacket) + first_write_response <= 1'b1; + end + end + end + + always_comb begin + reset_merged_output = first_write_response && rdata_fifo_sink_valid; + previous_response_in = reset_merged_output ? current_response : previous_response; + response_merged = current_response >= previous_response ? current_response: previous_response_in; + end + + always_ff @(posedge clk or posedge reset) begin + if (reset) begin + previous_response <= 2'b00; + end + else begin + if (rf_sink_valid & rdata_fifo_sink_valid) begin + previous_response <= response_merged; + end + end + end + end else begin + always @* begin + response_merged = current_response; + end + end + end + endgenerate + + assign generate_response = rf_sink_data[FIFO_DATA_W-1]; + + wire [BYTE_CNT_W-1:0] rf_sink_byte_cnt = rf_sink_data[PKT_BYTE_CNT_H:PKT_BYTE_CNT_L]; + wire rf_sink_compressed = rf_sink_data[PKT_TRANS_COMPRESSED_READ]; + wire [BURSTWRAP_W-1:0] rf_sink_burstwrap = rf_sink_data[PKT_BURSTWRAP_H:PKT_BURSTWRAP_L]; + wire [BURSTSIZE_W-1:0] rf_sink_burstsize = rf_sink_data[PKT_BURST_SIZE_H:PKT_BURST_SIZE_L]; + wire [ADDR_W-1:0] rf_sink_addr = rf_sink_data[PKT_ADDR_H:PKT_ADDR_L]; + // a non posted write response is always completed in 1 cycle. Modify the startofpacket signal to 1'b1 instead of taking whatever is in the rf_fifo + wire rf_sink_startofpacket_wire = rf_sink_data[PKT_TRANS_WRITE] ? 1'b1 : rf_sink_startofpacket; + + wire [BYTE_CNT_W-1:0] burst_byte_cnt; + wire [BURSTWRAP_W-1:0] rp_burstwrap; + wire [ADDR_W-1:0] rp_address; + wire rp_is_compressed; + + // ------------------------------------------------------------------ + // Backpressure the readdata fifo if we're supposed to synthesize a response. + // This may be a read response (for suppressed reads) or a write response + // (for non-posted writes). + // ------------------------------------------------------------------ + assign rdata_fifo_sink_ready = rdata_fifo_sink_valid & rp_ready & ~(rf_sink_valid & generate_response); + + always @* begin + // By default, return all fields... + rp_data = rf_sink_data[ST_DATA_W - 1 : 0]; + + // ... and override specific fields. + rp_data[PKT_DATA_H :PKT_DATA_L] = rdata_fifo_sink_data[AVS_DATA_W-1:0]; + // Assignments directly from the response fifo. + rp_data[PKT_TRANS_POSTED] = rf_sink_data[PKT_TRANS_POSTED]; + rp_data[PKT_TRANS_WRITE] = rf_sink_data[PKT_TRANS_WRITE]; + rp_data[PKT_SRC_ID_H :PKT_SRC_ID_L] = rf_sink_data[PKT_DEST_ID_H : PKT_DEST_ID_L]; + rp_data[PKT_DEST_ID_H:PKT_DEST_ID_L] = rf_sink_data[PKT_SRC_ID_H : PKT_SRC_ID_L]; + rp_data[PKT_BYTEEN_H :PKT_BYTEEN_L] = rf_sink_data[PKT_BYTEEN_H : PKT_BYTEEN_L]; + rp_data[PKT_PROTECTION_H:PKT_PROTECTION_L] = rf_sink_data[PKT_PROTECTION_H:PKT_PROTECTION_L]; + + // Burst uncompressor assignments + rp_data[PKT_ADDR_H :PKT_ADDR_L] = rp_address; + rp_data[PKT_BURSTWRAP_H:PKT_BURSTWRAP_L] = rp_burstwrap; + rp_data[PKT_BYTE_CNT_H:PKT_BYTE_CNT_L] = burst_byte_cnt; + rp_data[PKT_TRANS_READ] = rf_sink_data[PKT_TRANS_READ] | rf_sink_data[PKT_TRANS_COMPRESSED_READ]; + rp_data[PKT_TRANS_COMPRESSED_READ] = rp_is_compressed; + + // avalon slaves always respond with "okay" -> not true for now + //rp_data[PKT_RESPONSE_STATUS_H:PKT_RESPONSE_STATUS_L] = {RESPONSE_W{ 1'b0 }}; + rp_data[PKT_RESPONSE_STATUS_H:PKT_RESPONSE_STATUS_L] = response_merged; + rp_data[PKT_BURST_SIZE_H:PKT_BURST_SIZE_L] = uncompressor_burstsize; + end + + // ------------------------------------------------------------------ + // Note: the burst uncompressor may be asked to generate responses for + // write packets; these are treated the same as single-cycle uncompressed + // reads. + // ------------------------------------------------------------------ + altera_merlin_burst_uncompressor #( + .ADDR_W (ADDR_W), + .BURSTWRAP_W (BURSTWRAP_W), + .BYTE_CNT_W (BYTE_CNT_W), + .PKT_SYMBOLS (PKT_SYMBOLS) + ) uncompressor + ( + .clk (clk), + .reset (reset), + .sink_startofpacket (rf_sink_startofpacket_wire), + .sink_endofpacket (rf_sink_endofpacket), + .sink_valid (rf_sink_valid & (rdata_fifo_sink_valid | generate_response)), + .sink_ready (rf_sink_ready), + .sink_addr (rf_sink_addr), + .sink_burstwrap (rf_sink_burstwrap), + .sink_byte_cnt (rf_sink_byte_cnt), + .sink_is_compressed (rf_sink_compressed), + .sink_burstsize (rf_sink_burstsize), + + .source_startofpacket (rp_startofpacket), + .source_endofpacket (rp_endofpacket), + .source_valid (uncompressor_source_valid), + .source_ready (rp_ready), + .source_addr (rp_address), + .source_burstwrap (rp_burstwrap), + .source_byte_cnt (burst_byte_cnt), + .source_is_compressed (rp_is_compressed), + .source_burstsize (uncompressor_burstsize) + ); + +//-------------------------------------- +// Assertion: In case slave support response. Yhe slave needs return response in order +// Ex: non-posted write followed by a read: write response must complete before read data +//-------------------------------------- +// synthesis translate_off +ERROR_write_response_and_read_response_cannot_happen_same_time: + assert property ( @(posedge clk) + disable iff (reset) !(m0_writeresponsevalid && m0_readdatavalid) + ); + +// synthesis translate_on +endmodule + diff --git a/db/ip/nios_system/submodules/altera_merlin_slave_translator.sv b/db/ip/nios_system/submodules/altera_merlin_slave_translator.sv new file mode 100644 index 0000000..d5bd6e9 --- /dev/null +++ b/db/ip/nios_system/submodules/altera_merlin_slave_translator.sv @@ -0,0 +1,533 @@ +// (C) 2001-2013 Altera Corporation. All rights reserved. +// Your use of Altera Corporation's design tools, logic functions and other +// software and tools, and its AMPP partner logic functions, and any output +// files any of the foregoing (including device programming or simulation +// files), and any associated documentation or information are expressly subject +// to the terms and conditions of the Altera Program License Subscription +// Agreement, Altera MegaCore Function License Agreement, or other applicable +// license agreement, including, without limitation, that your use is for the +// sole purpose of programming logic devices manufactured by Altera and sold by +// Altera or its authorized distributors. Please refer to the applicable +// agreement for further details. + + + +// $Id: //acds/rel/13.0sp1/ip/merlin/altera_merlin_slave_translator/altera_merlin_slave_translator.sv#1 $ +// $Revision: #1 $ +// $Date: 2013/03/07 $ +// $Author: swbranch $ + +// ------------------------------------- +// Merlin Slave Translator +// +// Translates Universal Avalon MM Slave +// to any Avalon MM Slave +// ------------------------------------- +// +//Notable Note: 0 AV_READLATENCY is not allowed and will be converted to a 1 cycle readlatency in all cases but one +//If you declare a slave with fixed read timing requirements, the readlatency of such a slave will be allowed to be zero +//The key feature here is that no same cycle turnaround data is processed through the fabric. + +//import avalon_utilities_pkg::*; + +`timescale 1 ns / 1 ns + +module altera_merlin_slave_translator + #( + parameter + //Widths + AV_ADDRESS_W = 32, + AV_DATA_W = 32, + AV_BURSTCOUNT_W = 4, + AV_BYTEENABLE_W = 4, + UAV_BYTEENABLE_W = 4, + + //Read Latency + AV_READLATENCY = 1, + + //Timing + AV_READ_WAIT_CYCLES = 0, + AV_WRITE_WAIT_CYCLES = 0, + AV_SETUP_WAIT_CYCLES = 0, + AV_DATA_HOLD_CYCLES = 0, + + //Optional Port Declarations + USE_READDATAVALID = 1, + USE_WAITREQUEST = 1, + USE_READRESPONSE = 0, + USE_WRITERESPONSE = 0, + + //Variable Addressing + AV_SYMBOLS_PER_WORD = 4, + AV_ADDRESS_SYMBOLS = 0, + AV_BURSTCOUNT_SYMBOLS = 0, + BITS_PER_WORD = clog2_plusone(AV_SYMBOLS_PER_WORD - 1), + UAV_ADDRESS_W = 38, + UAV_BURSTCOUNT_W = 10, + UAV_DATA_W = 32, + + AV_CONSTANT_BURST_BEHAVIOR = 0, + UAV_CONSTANT_BURST_BEHAVIOR = 0, + CHIPSELECT_THROUGH_READLATENCY = 0, + + // Tightly-Coupled Options + USE_UAV_CLKEN = 0, + AV_REQUIRE_UNALIGNED_ADDRESSES = 0 + ) + ( + + // ------------------- + // Clock & Reset + // ------------------- + input wire clk, + input wire reset, + + // ------------------- + // Universal Avalon Slave + // ------------------- + + input wire [UAV_ADDRESS_W - 1 : 0] uav_address, + input wire [UAV_DATA_W - 1 : 0] uav_writedata, + input wire uav_write, + input wire uav_read, + input wire [UAV_BURSTCOUNT_W - 1 : 0] uav_burstcount, + input wire [UAV_BYTEENABLE_W - 1 : 0] uav_byteenable, + input wire uav_lock, + input wire uav_debugaccess, + input wire uav_clken, + + output logic uav_readdatavalid, + output logic uav_waitrequest, + output logic [UAV_DATA_W - 1 : 0] uav_readdata, + output logic [1:0] uav_response, + input wire uav_writeresponserequest, + output logic uav_writeresponsevalid, + + // ------------------- + // Customizable Avalon Master + // ------------------- + output logic [AV_ADDRESS_W - 1 : 0] av_address, + output logic [AV_DATA_W - 1 : 0] av_writedata, + output logic av_write, + output logic av_read, + output logic [AV_BURSTCOUNT_W - 1 : 0] av_burstcount, + output logic [AV_BYTEENABLE_W - 1 : 0] av_byteenable, + output logic [AV_BYTEENABLE_W - 1 : 0] av_writebyteenable, + output logic av_begintransfer, + output wire av_chipselect, + output logic av_beginbursttransfer, + output logic av_lock, + output wire av_clken, + output wire av_debugaccess, + output wire av_outputenable, + + input logic [AV_DATA_W - 1 : 0] av_readdata, + input logic av_readdatavalid, + input logic av_waitrequest, + + input logic [1:0] av_response, + output logic av_writeresponserequest, + input wire av_writeresponsevalid + + ); + + function integer clog2_plusone; + input [31:0] Depth; + integer i; + begin + i = Depth; + for(clog2_plusone = 0; i > 0; clog2_plusone = clog2_plusone + 1) + i = i >> 1; + end + + endfunction + + function integer max; + //returns the larger of two passed arguments + input [31:0] one; + input [31:0] two; + + if(one > two) + max=one; + else + max=two; + endfunction // int + + localparam AV_READ_WAIT_INDEXED = (AV_SETUP_WAIT_CYCLES + AV_READ_WAIT_CYCLES); + localparam AV_WRITE_WAIT_INDEXED = (AV_SETUP_WAIT_CYCLES + AV_WRITE_WAIT_CYCLES); + localparam AV_DATA_HOLD_INDEXED = (AV_WRITE_WAIT_INDEXED + AV_DATA_HOLD_CYCLES); + localparam LOG2_OF_LATENCY_SUM = max(clog2_plusone(AV_READ_WAIT_INDEXED + 1),clog2_plusone(AV_DATA_HOLD_INDEXED + 1)); + localparam BURSTCOUNT_SHIFT_SELECTOR = AV_BURSTCOUNT_SYMBOLS ? 0 : BITS_PER_WORD; + localparam ADDRESS_SHIFT_SELECTOR = AV_ADDRESS_SYMBOLS ? 0 : BITS_PER_WORD; + + localparam ADDRESS_HIGH = ( UAV_ADDRESS_W > AV_ADDRESS_W + ADDRESS_SHIFT_SELECTOR ) ? + AV_ADDRESS_W : + UAV_ADDRESS_W - ADDRESS_SHIFT_SELECTOR; + + localparam BURSTCOUNT_HIGH = ( UAV_BURSTCOUNT_W > AV_BURSTCOUNT_W + BURSTCOUNT_SHIFT_SELECTOR ) ? + AV_BURSTCOUNT_W : + UAV_BURSTCOUNT_W - BURSTCOUNT_SHIFT_SELECTOR; + localparam BYTEENABLE_ADDRESS_BITS = ( clog2_plusone(UAV_BYTEENABLE_W) - 1 ) >= 1 ? clog2_plusone(UAV_BYTEENABLE_W) - 1 : 1; + + + // Calculate the symbols per word as the power of 2 extended symbols per word + wire [31 : 0] symbols_per_word_int = 2**(clog2_plusone(AV_SYMBOLS_PER_WORD[UAV_BURSTCOUNT_W : 0] - 1)); + wire [UAV_BURSTCOUNT_W : 0] symbols_per_word = symbols_per_word_int[UAV_BURSTCOUNT_W : 0]; + + // +-------------------------------- + // |Backwards Compatibility Signals + // +-------------------------------- + assign av_clken = (USE_UAV_CLKEN) ? uav_clken : 1'b1; + assign av_debugaccess = uav_debugaccess; + + // +------------------- + // |Passthru Signals + // +------------------- + always_comb + begin + if (!USE_READRESPONSE && !USE_WRITERESPONSE) begin + uav_response = '0; + end else begin + uav_response = av_response; + end + end + assign av_writeresponserequest = uav_writeresponserequest; + assign uav_writeresponsevalid = av_writeresponsevalid; + + //------------------------- + //Writedata and Byteenable + //------------------------- + + always@* begin + av_byteenable = '0; + av_byteenable = uav_byteenable[AV_BYTEENABLE_W - 1 : 0]; + end + + always@* begin + av_writedata = '0; + av_writedata = uav_writedata[AV_DATA_W - 1 : 0]; + end + + // +------------------- + // |Calculated Signals + // +------------------- + + logic [UAV_ADDRESS_W - 1 : 0 ] real_uav_address; + + function [BYTEENABLE_ADDRESS_BITS - 1 : 0 ] decode_byteenable; + input [UAV_BYTEENABLE_W - 1 : 0 ] byteenable; + + for(int i = 0 ; i < UAV_BYTEENABLE_W; i++ ) begin + if(byteenable[i] == 1) begin + return i; + end + end + + return '0; + + endfunction + + reg [AV_BURSTCOUNT_W - 1 : 0] burstcount_reg; + reg [AV_ADDRESS_W - 1 : 0] address_reg; + + + always@(posedge clk, posedge reset) begin + if(reset) begin + burstcount_reg <= '0; + address_reg <= '0; + end + else begin + burstcount_reg <= burstcount_reg; + address_reg <= address_reg; + + if(av_beginbursttransfer) begin + burstcount_reg <= uav_burstcount [BURSTCOUNT_HIGH - 1 + BURSTCOUNT_SHIFT_SELECTOR : BURSTCOUNT_SHIFT_SELECTOR ]; + address_reg <= real_uav_address [ADDRESS_HIGH - 1 + ADDRESS_SHIFT_SELECTOR : ADDRESS_SHIFT_SELECTOR ]; + + end + end + end + + + logic [BYTEENABLE_ADDRESS_BITS-1:0] temp_wire; + + always@* begin + if( AV_REQUIRE_UNALIGNED_ADDRESSES == 1) begin + temp_wire = decode_byteenable(uav_byteenable); + + real_uav_address = { uav_address[UAV_ADDRESS_W - 1 : BYTEENABLE_ADDRESS_BITS ], temp_wire[BYTEENABLE_ADDRESS_BITS - 1 : 0 ] }; + end + else begin + real_uav_address = uav_address; + end + + av_address = real_uav_address[ADDRESS_HIGH - 1 + ADDRESS_SHIFT_SELECTOR : ADDRESS_SHIFT_SELECTOR ]; + + if( AV_CONSTANT_BURST_BEHAVIOR && !UAV_CONSTANT_BURST_BEHAVIOR && ~av_beginbursttransfer ) + av_address = address_reg; + end + + always@* begin + av_burstcount=uav_burstcount[BURSTCOUNT_HIGH - 1 + BURSTCOUNT_SHIFT_SELECTOR : BURSTCOUNT_SHIFT_SELECTOR ]; + + if( AV_CONSTANT_BURST_BEHAVIOR && !UAV_CONSTANT_BURST_BEHAVIOR && ~av_beginbursttransfer ) + av_burstcount = burstcount_reg; + end + + always@* begin + av_lock = uav_lock; + end + + // ------------------- + // Writebyteenable Assignment + // ------------------- + +always@* begin + av_writebyteenable = { (AV_BYTEENABLE_W){uav_write} } & uav_byteenable[AV_BYTEENABLE_W - 1 : 0]; +end + + // ------------------- + // Waitrequest Assignment + // ------------------- + + reg av_waitrequest_generated; + reg av_waitrequest_generated_read; + reg av_waitrequest_generated_write; + reg waitrequest_reset_override; + + reg [ ( LOG2_OF_LATENCY_SUM ? LOG2_OF_LATENCY_SUM - 1 : 0 ) : 0 ] wait_latency_counter; + + always@(posedge reset, posedge clk) begin + + if(reset) begin + wait_latency_counter <= '0; + waitrequest_reset_override <= 1'h1; + end + else begin + waitrequest_reset_override <= 1'h0; + + wait_latency_counter <= '0; + + if( uav_read | uav_write ) + wait_latency_counter <= wait_latency_counter + 1'h1; + + if( ~uav_waitrequest | waitrequest_reset_override ) + wait_latency_counter <= '0; + + end + + end + + + always @* begin + + av_read = uav_read; + av_write = uav_write; + + av_waitrequest_generated = 1'h1; + av_waitrequest_generated_read = 1'h1; + av_waitrequest_generated_write = 1'h1; + + if(LOG2_OF_LATENCY_SUM == 1) + av_waitrequest_generated = 0; + + if(LOG2_OF_LATENCY_SUM > 1 && !USE_WAITREQUEST) begin + av_read = wait_latency_counter >= AV_SETUP_WAIT_CYCLES && uav_read; + av_write = wait_latency_counter >= AV_SETUP_WAIT_CYCLES && uav_write && wait_latency_counter <= AV_WRITE_WAIT_INDEXED; + + av_waitrequest_generated_read = wait_latency_counter != AV_READ_WAIT_INDEXED; + av_waitrequest_generated_write = wait_latency_counter != AV_DATA_HOLD_INDEXED; + + if(uav_write) + av_waitrequest_generated = av_waitrequest_generated_write; + else + av_waitrequest_generated = av_waitrequest_generated_read; + + end + + if(USE_WAITREQUEST) begin + uav_waitrequest = av_waitrequest; + end + else begin + uav_waitrequest = av_waitrequest_generated | waitrequest_reset_override; + end + + end + + // -------------- + // Readdata Assignment + // -------------- + + reg[(AV_DATA_W ? AV_DATA_W -1 : 0 ): 0] av_readdata_pre; + + always@(posedge clk, posedge reset) begin + if(reset) + av_readdata_pre <= 'b0; + else + av_readdata_pre <= av_readdata; + end + + always@* begin + uav_readdata = '0; + + if( AV_READLATENCY != 0 || USE_READDATAVALID ) begin + uav_readdata = av_readdata; + end + else begin + uav_readdata = av_readdata_pre; + end + end + // ------------------- + // Readdatavalid Assigment + // ------------------- + + reg[(AV_READLATENCY>0 ? AV_READLATENCY-1:0) :0] read_latency_shift_reg; + reg top_read_latency_shift_reg; + + + + always@* begin + + uav_readdatavalid=top_read_latency_shift_reg; + + if(USE_READDATAVALID) begin + uav_readdatavalid = av_readdatavalid; + end + + end + + always@* begin + + top_read_latency_shift_reg = uav_read & ~uav_waitrequest & ~waitrequest_reset_override; + + if(AV_READLATENCY == 1 || AV_READLATENCY == 0 ) begin + top_read_latency_shift_reg=read_latency_shift_reg; + end + + if (AV_READLATENCY > 1) begin + top_read_latency_shift_reg = read_latency_shift_reg[(AV_READLATENCY ? AV_READLATENCY-1 : 0)]; + end + + end + + always@(posedge reset, posedge clk) begin + + if (reset) begin + read_latency_shift_reg <= '0; + end + else if (av_clken) begin + + read_latency_shift_reg <= uav_read && ~uav_waitrequest & ~waitrequest_reset_override; + + for (int i=0; i+1 < AV_READLATENCY ; i+=1 ) begin + read_latency_shift_reg[i+1] <= read_latency_shift_reg[i]; + end + + end + + end + + // ------------ + // Chipselect and OutputEnable + // ------------ + + reg av_chipselect_pre; + wire cs_extension; + reg av_outputenable_pre; + + + assign av_chipselect = (uav_read | uav_write) ? 1'b1 : av_chipselect_pre; + assign cs_extension = ( (^ read_latency_shift_reg) & ~top_read_latency_shift_reg ) | ((| read_latency_shift_reg) & ~(^ read_latency_shift_reg)); + + assign av_outputenable = uav_read ? 1'b1 : av_outputenable_pre; + + always@(posedge reset, posedge clk) begin + if(reset) + av_outputenable_pre <= 1'b0; + else if( AV_READLATENCY == 0 && AV_READ_WAIT_INDEXED != 0 ) + av_outputenable_pre <= 0; + else + av_outputenable_pre <= cs_extension | uav_read; + end + + always@(posedge reset, posedge clk) begin + if(reset) begin + av_chipselect_pre <= 1'b0; + end + else begin + av_chipselect_pre <= 1'b0; + + if(AV_READLATENCY != 0 && CHIPSELECT_THROUGH_READLATENCY == 1) begin + //The AV_READLATENCY term is only here to prevent chipselect from remaining asserted while read and write fall. + //There is no functional impact as 0 cycle transactions are treated as 1 cycle on the other side of the translator. + if(uav_read) begin + av_chipselect_pre <= 1'b1; + end + else if(cs_extension == 1) begin + av_chipselect_pre <= 1'b1; + end + + end + end + end + + // ------------------- + // Begintransfer Assigment + // ------------------- + + reg end_begintransfer; + + always@* begin + av_begintransfer = ( uav_write | uav_read ) & ~end_begintransfer; + end + + always@ ( posedge clk or posedge reset ) begin + + if(reset) begin + end_begintransfer <= 1'b0; + end + else begin + + if(av_begintransfer == 1 && uav_waitrequest && ~waitrequest_reset_override) + end_begintransfer <= 1'b1; + else if(uav_waitrequest) + end_begintransfer <= end_begintransfer; + else + end_begintransfer <= 1'b0; + + end + + end + + // ------------------- + // Beginbursttransfer Assigment + // ------------------- + + reg end_beginbursttransfer; + reg in_transfer; + + + + always@* begin + av_beginbursttransfer = uav_read ? av_begintransfer : (av_begintransfer && ~end_beginbursttransfer && ~in_transfer); + end + + always@ ( posedge clk or posedge reset ) begin + if(reset) begin + end_beginbursttransfer <= 1'b0; + in_transfer <= 1'b0; + end + else begin + + end_beginbursttransfer <= uav_write & ( uav_burstcount != symbols_per_word ); + + if(uav_write && uav_burstcount == symbols_per_word) + in_transfer <=1'b0; + else if(uav_write) + in_transfer <=1'b1; + + end + + end + +endmodule diff --git a/db/ip/nios_system/submodules/altera_reset_controller.sdc b/db/ip/nios_system/submodules/altera_reset_controller.sdc new file mode 100644 index 0000000..28476af --- /dev/null +++ b/db/ip/nios_system/submodules/altera_reset_controller.sdc @@ -0,0 +1,33 @@ +# (C) 2001-2013 Altera Corporation. All rights reserved. +# Your use of Altera Corporation's design tools, logic functions and other +# software and tools, and its AMPP partner logic functions, and any output +# files any of the foregoing (including device programming or simulation +# files), and any associated documentation or information are expressly subject +# to the terms and conditions of the Altera Program License Subscription +# Agreement, Altera MegaCore Function License Agreement, or other applicable +# license agreement, including, without limitation, that your use is for the +# sole purpose of programming logic devices manufactured by Altera and sold by +# Altera or its authorized distributors. Please refer to the applicable +# agreement for further details. + + +# +--------------------------------------------------- +# | Cut the async clear paths +# +--------------------------------------------------- +set aclr_counter 0 +set clrn_counter 0 +set aclr_collection [get_pins -compatibility_mode -nocase -nowarn *|alt_rst_sync_uq1|altera_reset_synchronizer_int_chain*|aclr] +set clrn_collection [get_pins -compatibility_mode -nocase -nowarn *|alt_rst_sync_uq1|altera_reset_synchronizer_int_chain*|clrn] +foreach_in_collection aclr_pin $aclr_collection { + set aclr_counter [expr $aclr_counter + 1] +} +foreach_in_collection clrn_pin $clrn_collection { + set clrn_counter [expr $clrn_counter + 1] +} +if {$aclr_counter > 0} { + set_false_path -to [get_pins -compatibility_mode -nocase *|alt_rst_sync_uq1|altera_reset_synchronizer_int_chain*|aclr] +} + +if {$clrn_counter > 0} { + set_false_path -to [get_pins -compatibility_mode -nocase *|alt_rst_sync_uq1|altera_reset_synchronizer_int_chain*|clrn] +} diff --git a/db/ip/nios_system/submodules/altera_reset_controller.v b/db/ip/nios_system/submodules/altera_reset_controller.v new file mode 100644 index 0000000..05dd901 --- /dev/null +++ b/db/ip/nios_system/submodules/altera_reset_controller.v @@ -0,0 +1,206 @@ +// (C) 2001-2013 Altera Corporation. All rights reserved. +// Your use of Altera Corporation's design tools, logic functions and other +// software and tools, and its AMPP partner logic functions, and any output +// files any of the foregoing (including device programming or simulation +// files), and any associated documentation or information are expressly subject +// to the terms and conditions of the Altera Program License Subscription +// Agreement, Altera MegaCore Function License Agreement, or other applicable +// license agreement, including, without limitation, that your use is for the +// sole purpose of programming logic devices manufactured by Altera and sold by +// Altera or its authorized distributors. Please refer to the applicable +// agreement for further details. + + +// $Id: //acds/rel/13.0sp1/ip/merlin/altera_reset_controller/altera_reset_controller.v#2 $ +// $Revision: #2 $ +// $Date: 2013/06/03 $ +// $Author: wkleong $ + +// -------------------------------------- +// Reset controller +// +// Combines all the input resets and synchronizes +// the result to the clk. +// ACDS13.1 - Added reset request as part of reset sequencing +// -------------------------------------- + +`timescale 1 ns / 1 ns + +module altera_reset_controller +#( + parameter NUM_RESET_INPUTS = 6, + parameter OUTPUT_RESET_SYNC_EDGES = "deassert", + parameter SYNC_DEPTH = 2, + parameter RESET_REQUEST_PRESENT = 0 +) +( + // -------------------------------------- + // We support up to 16 reset inputs, for now + // -------------------------------------- + input reset_in0, + input reset_in1, + input reset_in2, + input reset_in3, + input reset_in4, + input reset_in5, + input reset_in6, + input reset_in7, + input reset_in8, + input reset_in9, + input reset_in10, + input reset_in11, + input reset_in12, + input reset_in13, + input reset_in14, + input reset_in15, + + input clk, + output reg reset_out, + output reg reset_req +); + + localparam ASYNC_RESET = (OUTPUT_RESET_SYNC_EDGES == "deassert"); + + localparam DEPTH = 2; + localparam CLKEN_LAGS_RESET = 0; + localparam EARLY_RST_TAP = (CLKEN_LAGS_RESET != 0) ? 0 : 1; + + wire merged_reset; + wire reset_out_pre; + + // Registers and Interconnect + (*preserve*) reg [SYNC_DEPTH: 0] altera_reset_synchronizer_int_chain; + reg [(SYNC_DEPTH-1): 0] r_sync_rst_chain; + reg r_sync_rst_dly; + reg r_sync_rst; + reg r_early_rst; + + // -------------------------------------- + // "Or" all the input resets together + // -------------------------------------- + assign merged_reset = ( + reset_in0 | + reset_in1 | + reset_in2 | + reset_in3 | + reset_in4 | + reset_in5 | + reset_in6 | + reset_in7 | + reset_in8 | + reset_in9 | + reset_in10 | + reset_in11 | + reset_in12 | + reset_in13 | + reset_in14 | + reset_in15 + ); + + // -------------------------------------- + // And if required, synchronize it to the required clock domain, + // with the correct synchronization type + // -------------------------------------- + generate if (OUTPUT_RESET_SYNC_EDGES == "none") begin + + assign reset_out_pre = merged_reset; + + end else begin + + altera_reset_synchronizer + #( + .DEPTH (SYNC_DEPTH), + .ASYNC_RESET(ASYNC_RESET) + ) + alt_rst_sync_uq1 + ( + .clk (clk), + .reset_in (merged_reset), + .reset_out (reset_out_pre) + ); + + end + endgenerate + + generate if (RESET_REQUEST_PRESENT == 0) begin + always @* begin + reset_out = reset_out_pre; + reset_req = 1'b0; + end + end + else begin + + // 3-FF Metastability Synchronizer + initial + begin + altera_reset_synchronizer_int_chain <= 3'b111; + end + + always @(posedge clk) + begin + altera_reset_synchronizer_int_chain[2:0] <= {altera_reset_synchronizer_int_chain[1:0], reset_out_pre}; + end + + + // Synchronous reset pipe + initial + begin + r_sync_rst_chain <= {DEPTH{1'b1}}; + end + + always @(posedge clk) + begin + if (altera_reset_synchronizer_int_chain[2] == 1'b1) + begin + r_sync_rst_chain <= {DEPTH{1'b1}}; + end + else + begin + r_sync_rst_chain <= {1'b0, r_sync_rst_chain[DEPTH-1:1]}; + end + end + + // Standard synchronous reset output. From 0-1, the transition lags the early output. For 1->0, the transition + // matches the early input. + initial + begin + r_sync_rst_dly <= 1'b1; + r_sync_rst <= 1'b1; + r_early_rst <= 1'b1; + end + + always @(posedge clk) + begin + // Delayed reset pipeline register + r_sync_rst_dly <= r_sync_rst_chain[DEPTH-1]; + + case ({r_sync_rst_dly, r_sync_rst_chain[1], r_sync_rst}) + 3'b000: r_sync_rst <= 1'b0; // Not reset + 3'b001: r_sync_rst <= 1'b0; + 3'b010: r_sync_rst <= 1'b0; + 3'b011: r_sync_rst <= 1'b1; + 3'b100: r_sync_rst <= 1'b1; + 3'b101: r_sync_rst <= 1'b1; + 3'b110: r_sync_rst <= 1'b1; + 3'b111: r_sync_rst <= 1'b1; // In Reset + default: r_sync_rst <= 1'b1; + endcase + + case ({r_sync_rst_chain[DEPTH-1], r_sync_rst_chain[EARLY_RST_TAP]}) + 2'b00: r_early_rst <= 1'b0; // Not reset + 2'b01: r_early_rst <= 1'b1; // Coming out of reset + 2'b10: r_early_rst <= 1'b0; // Spurious reset - should not be possible via synchronous design. + 2'b11: r_early_rst <= 1'b1; // Held in reset + default: r_early_rst <= 1'b1; + endcase + end + + always @* begin + reset_out = r_sync_rst; + reset_req = r_early_rst; + end + + end + endgenerate + +endmodule diff --git a/db/ip/nios_system/submodules/altera_reset_synchronizer.v b/db/ip/nios_system/submodules/altera_reset_synchronizer.v new file mode 100644 index 0000000..5e24fe7 --- /dev/null +++ b/db/ip/nios_system/submodules/altera_reset_synchronizer.v @@ -0,0 +1,87 @@ +// (C) 2001-2013 Altera Corporation. All rights reserved. +// Your use of Altera Corporation's design tools, logic functions and other +// software and tools, and its AMPP partner logic functions, and any output +// files any of the foregoing (including device programming or simulation +// files), and any associated documentation or information are expressly subject +// to the terms and conditions of the Altera Program License Subscription +// Agreement, Altera MegaCore Function License Agreement, or other applicable +// license agreement, including, without limitation, that your use is for the +// sole purpose of programming logic devices manufactured by Altera and sold by +// Altera or its authorized distributors. Please refer to the applicable +// agreement for further details. + + +// $Id: //acds/rel/13.0sp1/ip/merlin/altera_reset_controller/altera_reset_synchronizer.v#1 $ +// $Revision: #1 $ +// $Date: 2013/03/07 $ +// $Author: swbranch $ + +// ----------------------------------------------- +// Reset Synchronizer +// ----------------------------------------------- +`timescale 1 ns / 1 ns + +module altera_reset_synchronizer +#( + parameter ASYNC_RESET = 1, + parameter DEPTH = 2 +) +( + input reset_in /* synthesis ALTERA_ATTRIBUTE = "SUPPRESS_DA_RULE_INTERNAL=R101" */, + + input clk, + output reset_out +); + + // ----------------------------------------------- + // Synchronizer register chain. We cannot reuse the + // standard synchronizer in this implementation + // because our timing constraints are different. + // + // Instead of cutting the timing path to the d-input + // on the first flop we need to cut the aclr input. + // + // We omit the "preserve" attribute on the final + // output register, so that the synthesis tool can + // duplicate it where needed. + // ----------------------------------------------- + (*preserve*) reg [DEPTH-1:0] altera_reset_synchronizer_int_chain; + reg altera_reset_synchronizer_int_chain_out; + + generate if (ASYNC_RESET) begin + + // ----------------------------------------------- + // Assert asynchronously, deassert synchronously. + // ----------------------------------------------- + always @(posedge clk or posedge reset_in) begin + if (reset_in) begin + altera_reset_synchronizer_int_chain <= {DEPTH{1'b1}}; + altera_reset_synchronizer_int_chain_out <= 1'b1; + end + else begin + altera_reset_synchronizer_int_chain[DEPTH-2:0] <= altera_reset_synchronizer_int_chain[DEPTH-1:1]; + altera_reset_synchronizer_int_chain[DEPTH-1] <= 0; + altera_reset_synchronizer_int_chain_out <= altera_reset_synchronizer_int_chain[0]; + end + end + + assign reset_out = altera_reset_synchronizer_int_chain_out; + + end else begin + + // ----------------------------------------------- + // Assert synchronously, deassert synchronously. + // ----------------------------------------------- + always @(posedge clk) begin + altera_reset_synchronizer_int_chain[DEPTH-2:0] <= altera_reset_synchronizer_int_chain[DEPTH-1:1]; + altera_reset_synchronizer_int_chain[DEPTH-1] <= reset_in; + altera_reset_synchronizer_int_chain_out <= altera_reset_synchronizer_int_chain[0]; + end + + assign reset_out = altera_reset_synchronizer_int_chain_out; + + end + endgenerate + +endmodule + diff --git a/db/ip/nios_system/submodules/nios_system_LEDRs.v b/db/ip/nios_system/submodules/nios_system_LEDRs.v new file mode 100644 index 0000000..142f077 --- /dev/null +++ b/db/ip/nios_system/submodules/nios_system_LEDRs.v @@ -0,0 +1,66 @@ +//Legal Notice: (C)2016 Altera Corporation. All rights reserved. Your +//use of Altera Corporation's design tools, logic functions and other +//software and tools, and its AMPP partner logic functions, and any +//output files any of the foregoing (including device programming or +//simulation files), and any associated documentation or information are +//expressly subject to the terms and conditions of the Altera Program +//License Subscription Agreement or other applicable license agreement, +//including, without limitation, that your use is for the sole purpose +//of programming logic devices manufactured by Altera and sold by Altera +//or its authorized distributors. Please refer to the applicable +//agreement for further details. + +// synthesis translate_off +`timescale 1ns / 1ps +// synthesis translate_on + +// turn off superfluous verilog processor warnings +// altera message_level Level1 +// altera message_off 10034 10035 10036 10037 10230 10240 10030 + +module nios_system_LEDRs ( + // inputs: + address, + chipselect, + clk, + reset_n, + write_n, + writedata, + + // outputs: + out_port, + readdata + ) +; + + output [ 17: 0] out_port; + output [ 31: 0] readdata; + input [ 1: 0] address; + input chipselect; + input clk; + input reset_n; + input write_n; + input [ 31: 0] writedata; + + wire clk_en; + reg [ 17: 0] data_out; + wire [ 17: 0] out_port; + wire [ 17: 0] read_mux_out; + wire [ 31: 0] readdata; + assign clk_en = 1; + //s1, which is an e_avalon_slave + assign read_mux_out = {18 {(address == 0)}} & data_out; + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + data_out <= 0; + else if (chipselect && ~write_n && (address == 0)) + data_out <= writedata[17 : 0]; + end + + + assign readdata = {32'b0 | read_mux_out}; + assign out_port = data_out; + +endmodule + diff --git a/db/ip/nios_system/submodules/nios_system_LEDs.v b/db/ip/nios_system/submodules/nios_system_LEDs.v new file mode 100644 index 0000000..6c38eeb --- /dev/null +++ b/db/ip/nios_system/submodules/nios_system_LEDs.v @@ -0,0 +1,66 @@ +//Legal Notice: (C)2016 Altera Corporation. All rights reserved. Your +//use of Altera Corporation's design tools, logic functions and other +//software and tools, and its AMPP partner logic functions, and any +//output files any of the foregoing (including device programming or +//simulation files), and any associated documentation or information are +//expressly subject to the terms and conditions of the Altera Program +//License Subscription Agreement or other applicable license agreement, +//including, without limitation, that your use is for the sole purpose +//of programming logic devices manufactured by Altera and sold by Altera +//or its authorized distributors. Please refer to the applicable +//agreement for further details. + +// synthesis translate_off +`timescale 1ns / 1ps +// synthesis translate_on + +// turn off superfluous verilog processor warnings +// altera message_level Level1 +// altera message_off 10034 10035 10036 10037 10230 10240 10030 + +module nios_system_LEDs ( + // inputs: + address, + chipselect, + clk, + reset_n, + write_n, + writedata, + + // outputs: + out_port, + readdata + ) +; + + output [ 7: 0] out_port; + output [ 31: 0] readdata; + input [ 1: 0] address; + input chipselect; + input clk; + input reset_n; + input write_n; + input [ 31: 0] writedata; + + wire clk_en; + reg [ 7: 0] data_out; + wire [ 7: 0] out_port; + wire [ 7: 0] read_mux_out; + wire [ 31: 0] readdata; + assign clk_en = 1; + //s1, which is an e_avalon_slave + assign read_mux_out = {8 {(address == 0)}} & data_out; + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + data_out <= 0; + else if (chipselect && ~write_n && (address == 0)) + data_out <= writedata[7 : 0]; + end + + + assign readdata = {32'b0 | read_mux_out}; + assign out_port = data_out; + +endmodule + diff --git a/db/ip/nios_system/submodules/nios_system_addr_router.sv b/db/ip/nios_system/submodules/nios_system_addr_router.sv new file mode 100644 index 0000000..005a859 --- /dev/null +++ b/db/ip/nios_system/submodules/nios_system_addr_router.sv @@ -0,0 +1,224 @@ +// (C) 2001-2013 Altera Corporation. All rights reserved. +// Your use of Altera Corporation's design tools, logic functions and other +// software and tools, and its AMPP partner logic functions, and any output +// files any of the foregoing (including device programming or simulation +// files), and any associated documentation or information are expressly subject +// to the terms and conditions of the Altera Program License Subscription +// Agreement, Altera MegaCore Function License Agreement, or other applicable +// license agreement, including, without limitation, that your use is for the +// sole purpose of programming logic devices manufactured by Altera and sold by +// Altera or its authorized distributors. Please refer to the applicable +// agreement for further details. + + +// (C) 2001-2013 Altera Corporation. All rights reserved. +// Your use of Altera Corporation's design tools, logic functions and other +// software and tools, and its AMPP partner logic functions, and any output +// files any of the foregoing (including device programming or simulation +// files), and any associated documentation or information are expressly subject +// to the terms and conditions of the Altera Program License Subscription +// Agreement, Altera MegaCore Function License Agreement, or other applicable +// license agreement, including, without limitation, that your use is for the +// sole purpose of programming logic devices manufactured by Altera and sold by +// Altera or its authorized distributors. Please refer to the applicable +// agreement for further details. + + +// $Id: //acds/rel/13.0sp1/ip/merlin/altera_merlin_router/altera_merlin_router.sv.terp#1 $ +// $Revision: #1 $ +// $Date: 2013/03/07 $ +// $Author: swbranch $ + +// ------------------------------------------------------- +// Merlin Router +// +// Asserts the appropriate one-hot encoded channel based on +// either (a) the address or (b) the dest id. The DECODER_TYPE +// parameter controls this behaviour. 0 means address decoder, +// 1 means dest id decoder. +// +// In the case of (a), it also sets the destination id. +// ------------------------------------------------------- + +`timescale 1 ns / 1 ns + +module nios_system_addr_router_default_decode + #( + parameter DEFAULT_CHANNEL = 1, + DEFAULT_WR_CHANNEL = -1, + DEFAULT_RD_CHANNEL = -1, + DEFAULT_DESTID = 15 + ) + (output [85 - 81 : 0] default_destination_id, + output [18-1 : 0] default_wr_channel, + output [18-1 : 0] default_rd_channel, + output [18-1 : 0] default_src_channel + ); + + assign default_destination_id = + DEFAULT_DESTID[85 - 81 : 0]; + + generate begin : default_decode + if (DEFAULT_CHANNEL == -1) begin + assign default_src_channel = '0; + end + else begin + assign default_src_channel = 18'b1 << DEFAULT_CHANNEL; + end + end + endgenerate + + generate begin : default_decode_rw + if (DEFAULT_RD_CHANNEL == -1) begin + assign default_wr_channel = '0; + assign default_rd_channel = '0; + end + else begin + assign default_wr_channel = 18'b1 << DEFAULT_WR_CHANNEL; + assign default_rd_channel = 18'b1 << DEFAULT_RD_CHANNEL; + end + end + endgenerate + +endmodule + + +module nios_system_addr_router +( + // ------------------- + // Clock & Reset + // ------------------- + input clk, + input reset, + + // ------------------- + // Command Sink (Input) + // ------------------- + input sink_valid, + input [96-1 : 0] sink_data, + input sink_startofpacket, + input sink_endofpacket, + output sink_ready, + + // ------------------- + // Command Source (Output) + // ------------------- + output src_valid, + output reg [96-1 : 0] src_data, + output reg [18-1 : 0] src_channel, + output src_startofpacket, + output src_endofpacket, + input src_ready +); + + // ------------------------------------------------------- + // Local parameters and variables + // ------------------------------------------------------- + localparam PKT_ADDR_H = 54; + localparam PKT_ADDR_L = 36; + localparam PKT_DEST_ID_H = 85; + localparam PKT_DEST_ID_L = 81; + localparam PKT_PROTECTION_H = 89; + localparam PKT_PROTECTION_L = 87; + localparam ST_DATA_W = 96; + localparam ST_CHANNEL_W = 18; + localparam DECODER_TYPE = 0; + + localparam PKT_TRANS_WRITE = 57; + localparam PKT_TRANS_READ = 58; + + localparam PKT_ADDR_W = PKT_ADDR_H-PKT_ADDR_L + 1; + localparam PKT_DEST_ID_W = PKT_DEST_ID_H-PKT_DEST_ID_L + 1; + + + + // ------------------------------------------------------- + // Figure out the number of bits to mask off for each slave span + // during address decoding + // ------------------------------------------------------- + localparam PAD0 = log2ceil(64'h40000 - 64'h0); + localparam PAD1 = log2ceil(64'h41000 - 64'h40800); + // ------------------------------------------------------- + // Work out which address bits are significant based on the + // address range of the slaves. If the required width is too + // large or too small, we use the address field width instead. + // ------------------------------------------------------- + localparam ADDR_RANGE = 64'h41000; + localparam RANGE_ADDR_WIDTH = log2ceil(ADDR_RANGE); + localparam OPTIMIZED_ADDR_H = (RANGE_ADDR_WIDTH > PKT_ADDR_W) || + (RANGE_ADDR_WIDTH == 0) ? + PKT_ADDR_H : + PKT_ADDR_L + RANGE_ADDR_WIDTH - 1; + + localparam RG = RANGE_ADDR_WIDTH-1; + + wire [PKT_ADDR_W-1 : 0] address = sink_data[OPTIMIZED_ADDR_H : PKT_ADDR_L]; + + // ------------------------------------------------------- + // Pass almost everything through, untouched + // ------------------------------------------------------- + assign sink_ready = src_ready; + assign src_valid = sink_valid; + assign src_startofpacket = sink_startofpacket; + assign src_endofpacket = sink_endofpacket; + + wire [PKT_DEST_ID_W-1:0] default_destid; + wire [18-1 : 0] default_src_channel; + + + + + + nios_system_addr_router_default_decode the_default_decode( + .default_destination_id (default_destid), + .default_wr_channel (), + .default_rd_channel (), + .default_src_channel (default_src_channel) + ); + + always @* begin + src_data = sink_data; + src_channel = default_src_channel; + src_data[PKT_DEST_ID_H:PKT_DEST_ID_L] = default_destid; + + // -------------------------------------------------- + // Address Decoder + // Sets the channel and destination ID based on the address + // -------------------------------------------------- + + // ( 0x0 .. 0x40000 ) + if ( {address[RG:PAD0],{PAD0{1'b0}}} == 19'h0 ) begin + src_channel = 18'b10; + src_data[PKT_DEST_ID_H:PKT_DEST_ID_L] = 15; + end + + // ( 0x40800 .. 0x41000 ) + if ( {address[RG:PAD1],{PAD1{1'b0}}} == 19'h40800 ) begin + src_channel = 18'b01; + src_data[PKT_DEST_ID_H:PKT_DEST_ID_L] = 14; + end + +end + + + // -------------------------------------------------- + // Ceil(log2()) function + // -------------------------------------------------- + function integer log2ceil; + input reg[65:0] val; + reg [65:0] i; + + begin + i = 1; + log2ceil = 0; + + while (i < val) begin + log2ceil = log2ceil + 1; + i = i << 1; + end + end + endfunction + +endmodule + + diff --git a/db/ip/nios_system/submodules/nios_system_addr_router_001.sv b/db/ip/nios_system/submodules/nios_system_addr_router_001.sv new file mode 100644 index 0000000..73a4ee3 --- /dev/null +++ b/db/ip/nios_system/submodules/nios_system_addr_router_001.sv @@ -0,0 +1,336 @@ +// (C) 2001-2013 Altera Corporation. All rights reserved. +// Your use of Altera Corporation's design tools, logic functions and other +// software and tools, and its AMPP partner logic functions, and any output +// files any of the foregoing (including device programming or simulation +// files), and any associated documentation or information are expressly subject +// to the terms and conditions of the Altera Program License Subscription +// Agreement, Altera MegaCore Function License Agreement, or other applicable +// license agreement, including, without limitation, that your use is for the +// sole purpose of programming logic devices manufactured by Altera and sold by +// Altera or its authorized distributors. Please refer to the applicable +// agreement for further details. + + +// (C) 2001-2013 Altera Corporation. All rights reserved. +// Your use of Altera Corporation's design tools, logic functions and other +// software and tools, and its AMPP partner logic functions, and any output +// files any of the foregoing (including device programming or simulation +// files), and any associated documentation or information are expressly subject +// to the terms and conditions of the Altera Program License Subscription +// Agreement, Altera MegaCore Function License Agreement, or other applicable +// license agreement, including, without limitation, that your use is for the +// sole purpose of programming logic devices manufactured by Altera and sold by +// Altera or its authorized distributors. Please refer to the applicable +// agreement for further details. + + +// $Id: //acds/rel/13.0sp1/ip/merlin/altera_merlin_router/altera_merlin_router.sv.terp#1 $ +// $Revision: #1 $ +// $Date: 2013/03/07 $ +// $Author: swbranch $ + +// ------------------------------------------------------- +// Merlin Router +// +// Asserts the appropriate one-hot encoded channel based on +// either (a) the address or (b) the dest id. The DECODER_TYPE +// parameter controls this behaviour. 0 means address decoder, +// 1 means dest id decoder. +// +// In the case of (a), it also sets the destination id. +// ------------------------------------------------------- + +`timescale 1 ns / 1 ns + +module nios_system_addr_router_001_default_decode + #( + parameter DEFAULT_CHANNEL = 1, + DEFAULT_WR_CHANNEL = -1, + DEFAULT_RD_CHANNEL = -1, + DEFAULT_DESTID = 15 + ) + (output [85 - 81 : 0] default_destination_id, + output [18-1 : 0] default_wr_channel, + output [18-1 : 0] default_rd_channel, + output [18-1 : 0] default_src_channel + ); + + assign default_destination_id = + DEFAULT_DESTID[85 - 81 : 0]; + + generate begin : default_decode + if (DEFAULT_CHANNEL == -1) begin + assign default_src_channel = '0; + end + else begin + assign default_src_channel = 18'b1 << DEFAULT_CHANNEL; + end + end + endgenerate + + generate begin : default_decode_rw + if (DEFAULT_RD_CHANNEL == -1) begin + assign default_wr_channel = '0; + assign default_rd_channel = '0; + end + else begin + assign default_wr_channel = 18'b1 << DEFAULT_WR_CHANNEL; + assign default_rd_channel = 18'b1 << DEFAULT_RD_CHANNEL; + end + end + endgenerate + +endmodule + + +module nios_system_addr_router_001 +( + // ------------------- + // Clock & Reset + // ------------------- + input clk, + input reset, + + // ------------------- + // Command Sink (Input) + // ------------------- + input sink_valid, + input [96-1 : 0] sink_data, + input sink_startofpacket, + input sink_endofpacket, + output sink_ready, + + // ------------------- + // Command Source (Output) + // ------------------- + output src_valid, + output reg [96-1 : 0] src_data, + output reg [18-1 : 0] src_channel, + output src_startofpacket, + output src_endofpacket, + input src_ready +); + + // ------------------------------------------------------- + // Local parameters and variables + // ------------------------------------------------------- + localparam PKT_ADDR_H = 54; + localparam PKT_ADDR_L = 36; + localparam PKT_DEST_ID_H = 85; + localparam PKT_DEST_ID_L = 81; + localparam PKT_PROTECTION_H = 89; + localparam PKT_PROTECTION_L = 87; + localparam ST_DATA_W = 96; + localparam ST_CHANNEL_W = 18; + localparam DECODER_TYPE = 0; + + localparam PKT_TRANS_WRITE = 57; + localparam PKT_TRANS_READ = 58; + + localparam PKT_ADDR_W = PKT_ADDR_H-PKT_ADDR_L + 1; + localparam PKT_DEST_ID_W = PKT_DEST_ID_H-PKT_DEST_ID_L + 1; + + + + // ------------------------------------------------------- + // Figure out the number of bits to mask off for each slave span + // during address decoding + // ------------------------------------------------------- + localparam PAD0 = log2ceil(64'h40000 - 64'h0); + localparam PAD1 = log2ceil(64'h41000 - 64'h40800); + localparam PAD2 = log2ceil(64'h41020 - 64'h41010); + localparam PAD3 = log2ceil(64'h41030 - 64'h41020); + localparam PAD4 = log2ceil(64'h41040 - 64'h41030); + localparam PAD5 = log2ceil(64'h41050 - 64'h41040); + localparam PAD6 = log2ceil(64'h41060 - 64'h41050); + localparam PAD7 = log2ceil(64'h41070 - 64'h41060); + localparam PAD8 = log2ceil(64'h41080 - 64'h41070); + localparam PAD9 = log2ceil(64'h41090 - 64'h41080); + localparam PAD10 = log2ceil(64'h410a0 - 64'h41090); + localparam PAD11 = log2ceil(64'h410b0 - 64'h410a0); + localparam PAD12 = log2ceil(64'h410c0 - 64'h410b0); + localparam PAD13 = log2ceil(64'h410d0 - 64'h410c0); + localparam PAD14 = log2ceil(64'h410e0 - 64'h410d0); + localparam PAD15 = log2ceil(64'h410f0 - 64'h410e0); + localparam PAD16 = log2ceil(64'h41100 - 64'h410f0); + localparam PAD17 = log2ceil(64'h41108 - 64'h41100); + // ------------------------------------------------------- + // Work out which address bits are significant based on the + // address range of the slaves. If the required width is too + // large or too small, we use the address field width instead. + // ------------------------------------------------------- + localparam ADDR_RANGE = 64'h41108; + localparam RANGE_ADDR_WIDTH = log2ceil(ADDR_RANGE); + localparam OPTIMIZED_ADDR_H = (RANGE_ADDR_WIDTH > PKT_ADDR_W) || + (RANGE_ADDR_WIDTH == 0) ? + PKT_ADDR_H : + PKT_ADDR_L + RANGE_ADDR_WIDTH - 1; + + localparam RG = RANGE_ADDR_WIDTH-1; + + wire [PKT_ADDR_W-1 : 0] address = sink_data[OPTIMIZED_ADDR_H : PKT_ADDR_L]; + + // ------------------------------------------------------- + // Pass almost everything through, untouched + // ------------------------------------------------------- + assign sink_ready = src_ready; + assign src_valid = sink_valid; + assign src_startofpacket = sink_startofpacket; + assign src_endofpacket = sink_endofpacket; + + wire [PKT_DEST_ID_W-1:0] default_destid; + wire [18-1 : 0] default_src_channel; + + + + + + nios_system_addr_router_001_default_decode the_default_decode( + .default_destination_id (default_destid), + .default_wr_channel (), + .default_rd_channel (), + .default_src_channel (default_src_channel) + ); + + always @* begin + src_data = sink_data; + src_channel = default_src_channel; + src_data[PKT_DEST_ID_H:PKT_DEST_ID_L] = default_destid; + + // -------------------------------------------------- + // Address Decoder + // Sets the channel and destination ID based on the address + // -------------------------------------------------- + + // ( 0x0 .. 0x40000 ) + if ( {address[RG:PAD0],{PAD0{1'b0}}} == 19'h0 ) begin + src_channel = 18'b000000000000000010; + src_data[PKT_DEST_ID_H:PKT_DEST_ID_L] = 15; + end + + // ( 0x40800 .. 0x41000 ) + if ( {address[RG:PAD1],{PAD1{1'b0}}} == 19'h40800 ) begin + src_channel = 18'b000000000000000001; + src_data[PKT_DEST_ID_H:PKT_DEST_ID_L] = 14; + end + + // ( 0x41010 .. 0x41020 ) + if ( {address[RG:PAD2],{PAD2{1'b0}}} == 19'h41010 ) begin + src_channel = 18'b010000000000000000; + src_data[PKT_DEST_ID_H:PKT_DEST_ID_L] = 13; + end + + // ( 0x41020 .. 0x41030 ) + if ( {address[RG:PAD3],{PAD3{1'b0}}} == 19'h41020 ) begin + src_channel = 18'b100000000000000000; + src_data[PKT_DEST_ID_H:PKT_DEST_ID_L] = 12; + end + + // ( 0x41030 .. 0x41040 ) + if ( {address[RG:PAD4],{PAD4{1'b0}}} == 19'h41030 ) begin + src_channel = 18'b001000000000000000; + src_data[PKT_DEST_ID_H:PKT_DEST_ID_L] = 11; + end + + // ( 0x41040 .. 0x41050 ) + if ( {address[RG:PAD5],{PAD5{1'b0}}} == 19'h41040 ) begin + src_channel = 18'b000100000000000000; + src_data[PKT_DEST_ID_H:PKT_DEST_ID_L] = 9; + end + + // ( 0x41050 .. 0x41060 ) + if ( {address[RG:PAD6],{PAD6{1'b0}}} == 19'h41050 ) begin + src_channel = 18'b000010000000000000; + src_data[PKT_DEST_ID_H:PKT_DEST_ID_L] = 8; + end + + // ( 0x41060 .. 0x41070 ) + if ( {address[RG:PAD7],{PAD7{1'b0}}} == 19'h41060 ) begin + src_channel = 18'b000001000000000000; + src_data[PKT_DEST_ID_H:PKT_DEST_ID_L] = 7; + end + + // ( 0x41070 .. 0x41080 ) + if ( {address[RG:PAD8],{PAD8{1'b0}}} == 19'h41070 ) begin + src_channel = 18'b000000100000000000; + src_data[PKT_DEST_ID_H:PKT_DEST_ID_L] = 6; + end + + // ( 0x41080 .. 0x41090 ) + if ( {address[RG:PAD9],{PAD9{1'b0}}} == 19'h41080 ) begin + src_channel = 18'b000000010000000000; + src_data[PKT_DEST_ID_H:PKT_DEST_ID_L] = 5; + end + + // ( 0x41090 .. 0x410a0 ) + if ( {address[RG:PAD10],{PAD10{1'b0}}} == 19'h41090 ) begin + src_channel = 18'b000000001000000000; + src_data[PKT_DEST_ID_H:PKT_DEST_ID_L] = 4; + end + + // ( 0x410a0 .. 0x410b0 ) + if ( {address[RG:PAD11],{PAD11{1'b0}}} == 19'h410a0 ) begin + src_channel = 18'b000000000100000000; + src_data[PKT_DEST_ID_H:PKT_DEST_ID_L] = 3; + end + + // ( 0x410b0 .. 0x410c0 ) + if ( {address[RG:PAD12],{PAD12{1'b0}}} == 19'h410b0 ) begin + src_channel = 18'b000000000010000000; + src_data[PKT_DEST_ID_H:PKT_DEST_ID_L] = 2; + end + + // ( 0x410c0 .. 0x410d0 ) + if ( {address[RG:PAD13],{PAD13{1'b0}}} == 19'h410c0 ) begin + src_channel = 18'b000000000001000000; + src_data[PKT_DEST_ID_H:PKT_DEST_ID_L] = 16; + end + + // ( 0x410d0 .. 0x410e0 ) + if ( {address[RG:PAD14],{PAD14{1'b0}}} == 19'h410d0 ) begin + src_channel = 18'b000000000000100000; + src_data[PKT_DEST_ID_H:PKT_DEST_ID_L] = 17; + end + + // ( 0x410e0 .. 0x410f0 ) + if ( {address[RG:PAD15],{PAD15{1'b0}}} == 19'h410e0 ) begin + src_channel = 18'b000000000000010000; + src_data[PKT_DEST_ID_H:PKT_DEST_ID_L] = 0; + end + + // ( 0x410f0 .. 0x41100 ) + if ( {address[RG:PAD16],{PAD16{1'b0}}} == 19'h410f0 ) begin + src_channel = 18'b000000000000000100; + src_data[PKT_DEST_ID_H:PKT_DEST_ID_L] = 1; + end + + // ( 0x41100 .. 0x41108 ) + if ( {address[RG:PAD17],{PAD17{1'b0}}} == 19'h41100 ) begin + src_channel = 18'b000000000000001000; + src_data[PKT_DEST_ID_H:PKT_DEST_ID_L] = 10; + end + +end + + + // -------------------------------------------------- + // Ceil(log2()) function + // -------------------------------------------------- + function integer log2ceil; + input reg[65:0] val; + reg [65:0] i; + + begin + i = 1; + log2ceil = 0; + + while (i < val) begin + log2ceil = log2ceil + 1; + i = i << 1; + end + end + endfunction + +endmodule + + diff --git a/db/ip/nios_system/submodules/nios_system_cmd_xbar_demux.sv b/db/ip/nios_system/submodules/nios_system_cmd_xbar_demux.sv new file mode 100644 index 0000000..d833b2f --- /dev/null +++ b/db/ip/nios_system/submodules/nios_system_cmd_xbar_demux.sv @@ -0,0 +1,116 @@ +// (C) 2001-2013 Altera Corporation. All rights reserved. +// Your use of Altera Corporation's design tools, logic functions and other +// software and tools, and its AMPP partner logic functions, and any output +// files any of the foregoing (including device programming or simulation +// files), and any associated documentation or information are expressly subject +// to the terms and conditions of the Altera Program License Subscription +// Agreement, Altera MegaCore Function License Agreement, or other applicable +// license agreement, including, without limitation, that your use is for the +// sole purpose of programming logic devices manufactured by Altera and sold by +// Altera or its authorized distributors. Please refer to the applicable +// agreement for further details. + + +// $Id: //acds/rel/13.0sp1/ip/merlin/altera_merlin_demultiplexer/altera_merlin_demultiplexer.sv.terp#1 $ +// $Revision: #1 $ +// $Date: 2013/03/07 $ +// $Author: swbranch $ + +// ------------------------------------- +// Merlin Demultiplexer +// +// Asserts valid on the appropriate output +// given a one-hot channel signal. +// ------------------------------------- + +`timescale 1 ns / 1 ns + +// ------------------------------------------ +// Generation parameters: +// output_name: nios_system_cmd_xbar_demux +// ST_DATA_W: 96 +// ST_CHANNEL_W: 18 +// NUM_OUTPUTS: 2 +// VALID_WIDTH: 1 +// ------------------------------------------ + +//------------------------------------------ +// Message Supression Used +// QIS Warnings +// 15610 - Warning: Design contains x input pin(s) that do not drive logic +//------------------------------------------ + +module nios_system_cmd_xbar_demux +( + // ------------------- + // Sink + // ------------------- + input [1-1 : 0] sink_valid, + input [96-1 : 0] sink_data, // ST_DATA_W=96 + input [18-1 : 0] sink_channel, // ST_CHANNEL_W=18 + input sink_startofpacket, + input sink_endofpacket, + output sink_ready, + + // ------------------- + // Sources + // ------------------- + output reg src0_valid, + output reg [96-1 : 0] src0_data, // ST_DATA_W=96 + output reg [18-1 : 0] src0_channel, // ST_CHANNEL_W=18 + output reg src0_startofpacket, + output reg src0_endofpacket, + input src0_ready, + + output reg src1_valid, + output reg [96-1 : 0] src1_data, // ST_DATA_W=96 + output reg [18-1 : 0] src1_channel, // ST_CHANNEL_W=18 + output reg src1_startofpacket, + output reg src1_endofpacket, + input src1_ready, + + + // ------------------- + // Clock & Reset + // ------------------- + (*altera_attribute = "-name MESSAGE_DISABLE 15610" *) // setting message suppression on clk + input clk, + (*altera_attribute = "-name MESSAGE_DISABLE 15610" *) // setting message suppression on reset + input reset + +); + + localparam NUM_OUTPUTS = 2; + wire [NUM_OUTPUTS - 1 : 0] ready_vector; + + // ------------------- + // Demux + // ------------------- + always @* begin + src0_data = sink_data; + src0_startofpacket = sink_startofpacket; + src0_endofpacket = sink_endofpacket; + src0_channel = sink_channel >> NUM_OUTPUTS; + + src0_valid = sink_channel[0] && sink_valid; + + src1_data = sink_data; + src1_startofpacket = sink_startofpacket; + src1_endofpacket = sink_endofpacket; + src1_channel = sink_channel >> NUM_OUTPUTS; + + src1_valid = sink_channel[1] && sink_valid; + + end + + // ------------------- + // Backpressure + // ------------------- + assign ready_vector[0] = src0_ready; + assign ready_vector[1] = src1_ready; + + assign sink_ready = |(sink_channel & {{16{1'b0}},{ready_vector[NUM_OUTPUTS - 1 : 0]}}); + +endmodule + + diff --git a/db/ip/nios_system/submodules/nios_system_cmd_xbar_demux_001.sv b/db/ip/nios_system/submodules/nios_system_cmd_xbar_demux_001.sv new file mode 100644 index 0000000..61d921c --- /dev/null +++ b/db/ip/nios_system/submodules/nios_system_cmd_xbar_demux_001.sv @@ -0,0 +1,356 @@ +// (C) 2001-2013 Altera Corporation. All rights reserved. +// Your use of Altera Corporation's design tools, logic functions and other +// software and tools, and its AMPP partner logic functions, and any output +// files any of the foregoing (including device programming or simulation +// files), and any associated documentation or information are expressly subject +// to the terms and conditions of the Altera Program License Subscription +// Agreement, Altera MegaCore Function License Agreement, or other applicable +// license agreement, including, without limitation, that your use is for the +// sole purpose of programming logic devices manufactured by Altera and sold by +// Altera or its authorized distributors. Please refer to the applicable +// agreement for further details. + + +// $Id: //acds/rel/13.0sp1/ip/merlin/altera_merlin_demultiplexer/altera_merlin_demultiplexer.sv.terp#1 $ +// $Revision: #1 $ +// $Date: 2013/03/07 $ +// $Author: swbranch $ + +// ------------------------------------- +// Merlin Demultiplexer +// +// Asserts valid on the appropriate output +// given a one-hot channel signal. +// ------------------------------------- + +`timescale 1 ns / 1 ns + +// ------------------------------------------ +// Generation parameters: +// output_name: nios_system_cmd_xbar_demux_001 +// ST_DATA_W: 96 +// ST_CHANNEL_W: 18 +// NUM_OUTPUTS: 18 +// VALID_WIDTH: 1 +// ------------------------------------------ + +//------------------------------------------ +// Message Supression Used +// QIS Warnings +// 15610 - Warning: Design contains x input pin(s) that do not drive logic +//------------------------------------------ + +module nios_system_cmd_xbar_demux_001 +( + // ------------------- + // Sink + // ------------------- + input [1-1 : 0] sink_valid, + input [96-1 : 0] sink_data, // ST_DATA_W=96 + input [18-1 : 0] sink_channel, // ST_CHANNEL_W=18 + input sink_startofpacket, + input sink_endofpacket, + output sink_ready, + + // ------------------- + // Sources + // ------------------- + output reg src0_valid, + output reg [96-1 : 0] src0_data, // ST_DATA_W=96 + output reg [18-1 : 0] src0_channel, // ST_CHANNEL_W=18 + output reg src0_startofpacket, + output reg src0_endofpacket, + input src0_ready, + + output reg src1_valid, + output reg [96-1 : 0] src1_data, // ST_DATA_W=96 + output reg [18-1 : 0] src1_channel, // ST_CHANNEL_W=18 + output reg src1_startofpacket, + output reg src1_endofpacket, + input src1_ready, + + output reg src2_valid, + output reg [96-1 : 0] src2_data, // ST_DATA_W=96 + output reg [18-1 : 0] src2_channel, // ST_CHANNEL_W=18 + output reg src2_startofpacket, + output reg src2_endofpacket, + input src2_ready, + + output reg src3_valid, + output reg [96-1 : 0] src3_data, // ST_DATA_W=96 + output reg [18-1 : 0] src3_channel, // ST_CHANNEL_W=18 + output reg src3_startofpacket, + output reg src3_endofpacket, + input src3_ready, + + output reg src4_valid, + output reg [96-1 : 0] src4_data, // ST_DATA_W=96 + output reg [18-1 : 0] src4_channel, // ST_CHANNEL_W=18 + output reg src4_startofpacket, + output reg src4_endofpacket, + input src4_ready, + + output reg src5_valid, + output reg [96-1 : 0] src5_data, // ST_DATA_W=96 + output reg [18-1 : 0] src5_channel, // ST_CHANNEL_W=18 + output reg src5_startofpacket, + output reg src5_endofpacket, + input src5_ready, + + output reg src6_valid, + output reg [96-1 : 0] src6_data, // ST_DATA_W=96 + output reg [18-1 : 0] src6_channel, // ST_CHANNEL_W=18 + output reg src6_startofpacket, + output reg src6_endofpacket, + input src6_ready, + + output reg src7_valid, + output reg [96-1 : 0] src7_data, // ST_DATA_W=96 + output reg [18-1 : 0] src7_channel, // ST_CHANNEL_W=18 + output reg src7_startofpacket, + output reg src7_endofpacket, + input src7_ready, + + output reg src8_valid, + output reg [96-1 : 0] src8_data, // ST_DATA_W=96 + output reg [18-1 : 0] src8_channel, // ST_CHANNEL_W=18 + output reg src8_startofpacket, + output reg src8_endofpacket, + input src8_ready, + + output reg src9_valid, + output reg [96-1 : 0] src9_data, // ST_DATA_W=96 + output reg [18-1 : 0] src9_channel, // ST_CHANNEL_W=18 + output reg src9_startofpacket, + output reg src9_endofpacket, + input src9_ready, + + output reg src10_valid, + output reg [96-1 : 0] src10_data, // ST_DATA_W=96 + output reg [18-1 : 0] src10_channel, // ST_CHANNEL_W=18 + output reg src10_startofpacket, + output reg src10_endofpacket, + input src10_ready, + + output reg src11_valid, + output reg [96-1 : 0] src11_data, // ST_DATA_W=96 + output reg [18-1 : 0] src11_channel, // ST_CHANNEL_W=18 + output reg src11_startofpacket, + output reg src11_endofpacket, + input src11_ready, + + output reg src12_valid, + output reg [96-1 : 0] src12_data, // ST_DATA_W=96 + output reg [18-1 : 0] src12_channel, // ST_CHANNEL_W=18 + output reg src12_startofpacket, + output reg src12_endofpacket, + input src12_ready, + + output reg src13_valid, + output reg [96-1 : 0] src13_data, // ST_DATA_W=96 + output reg [18-1 : 0] src13_channel, // ST_CHANNEL_W=18 + output reg src13_startofpacket, + output reg src13_endofpacket, + input src13_ready, + + output reg src14_valid, + output reg [96-1 : 0] src14_data, // ST_DATA_W=96 + output reg [18-1 : 0] src14_channel, // ST_CHANNEL_W=18 + output reg src14_startofpacket, + output reg src14_endofpacket, + input src14_ready, + + output reg src15_valid, + output reg [96-1 : 0] src15_data, // ST_DATA_W=96 + output reg [18-1 : 0] src15_channel, // ST_CHANNEL_W=18 + output reg src15_startofpacket, + output reg src15_endofpacket, + input src15_ready, + + output reg src16_valid, + output reg [96-1 : 0] src16_data, // ST_DATA_W=96 + output reg [18-1 : 0] src16_channel, // ST_CHANNEL_W=18 + output reg src16_startofpacket, + output reg src16_endofpacket, + input src16_ready, + + output reg src17_valid, + output reg [96-1 : 0] src17_data, // ST_DATA_W=96 + output reg [18-1 : 0] src17_channel, // ST_CHANNEL_W=18 + output reg src17_startofpacket, + output reg src17_endofpacket, + input src17_ready, + + + // ------------------- + // Clock & Reset + // ------------------- + (*altera_attribute = "-name MESSAGE_DISABLE 15610" *) // setting message suppression on clk + input clk, + (*altera_attribute = "-name MESSAGE_DISABLE 15610" *) // setting message suppression on reset + input reset + +); + + localparam NUM_OUTPUTS = 18; + wire [NUM_OUTPUTS - 1 : 0] ready_vector; + + // ------------------- + // Demux + // ------------------- + always @* begin + src0_data = sink_data; + src0_startofpacket = sink_startofpacket; + src0_endofpacket = sink_endofpacket; + src0_channel = sink_channel >> NUM_OUTPUTS; + + src0_valid = sink_channel[0] && sink_valid; + + src1_data = sink_data; + src1_startofpacket = sink_startofpacket; + src1_endofpacket = sink_endofpacket; + src1_channel = sink_channel >> NUM_OUTPUTS; + + src1_valid = sink_channel[1] && sink_valid; + + src2_data = sink_data; + src2_startofpacket = sink_startofpacket; + src2_endofpacket = sink_endofpacket; + src2_channel = sink_channel >> NUM_OUTPUTS; + + src2_valid = sink_channel[2] && sink_valid; + + src3_data = sink_data; + src3_startofpacket = sink_startofpacket; + src3_endofpacket = sink_endofpacket; + src3_channel = sink_channel >> NUM_OUTPUTS; + + src3_valid = sink_channel[3] && sink_valid; + + src4_data = sink_data; + src4_startofpacket = sink_startofpacket; + src4_endofpacket = sink_endofpacket; + src4_channel = sink_channel >> NUM_OUTPUTS; + + src4_valid = sink_channel[4] && sink_valid; + + src5_data = sink_data; + src5_startofpacket = sink_startofpacket; + src5_endofpacket = sink_endofpacket; + src5_channel = sink_channel >> NUM_OUTPUTS; + + src5_valid = sink_channel[5] && sink_valid; + + src6_data = sink_data; + src6_startofpacket = sink_startofpacket; + src6_endofpacket = sink_endofpacket; + src6_channel = sink_channel >> NUM_OUTPUTS; + + src6_valid = sink_channel[6] && sink_valid; + + src7_data = sink_data; + src7_startofpacket = sink_startofpacket; + src7_endofpacket = sink_endofpacket; + src7_channel = sink_channel >> NUM_OUTPUTS; + + src7_valid = sink_channel[7] && sink_valid; + + src8_data = sink_data; + src8_startofpacket = sink_startofpacket; + src8_endofpacket = sink_endofpacket; + src8_channel = sink_channel >> NUM_OUTPUTS; + + src8_valid = sink_channel[8] && sink_valid; + + src9_data = sink_data; + src9_startofpacket = sink_startofpacket; + src9_endofpacket = sink_endofpacket; + src9_channel = sink_channel >> NUM_OUTPUTS; + + src9_valid = sink_channel[9] && sink_valid; + + src10_data = sink_data; + src10_startofpacket = sink_startofpacket; + src10_endofpacket = sink_endofpacket; + src10_channel = sink_channel >> NUM_OUTPUTS; + + src10_valid = sink_channel[10] && sink_valid; + + src11_data = sink_data; + src11_startofpacket = sink_startofpacket; + src11_endofpacket = sink_endofpacket; + src11_channel = sink_channel >> NUM_OUTPUTS; + + src11_valid = sink_channel[11] && sink_valid; + + src12_data = sink_data; + src12_startofpacket = sink_startofpacket; + src12_endofpacket = sink_endofpacket; + src12_channel = sink_channel >> NUM_OUTPUTS; + + src12_valid = sink_channel[12] && sink_valid; + + src13_data = sink_data; + src13_startofpacket = sink_startofpacket; + src13_endofpacket = sink_endofpacket; + src13_channel = sink_channel >> NUM_OUTPUTS; + + src13_valid = sink_channel[13] && sink_valid; + + src14_data = sink_data; + src14_startofpacket = sink_startofpacket; + src14_endofpacket = sink_endofpacket; + src14_channel = sink_channel >> NUM_OUTPUTS; + + src14_valid = sink_channel[14] && sink_valid; + + src15_data = sink_data; + src15_startofpacket = sink_startofpacket; + src15_endofpacket = sink_endofpacket; + src15_channel = sink_channel >> NUM_OUTPUTS; + + src15_valid = sink_channel[15] && sink_valid; + + src16_data = sink_data; + src16_startofpacket = sink_startofpacket; + src16_endofpacket = sink_endofpacket; + src16_channel = sink_channel >> NUM_OUTPUTS; + + src16_valid = sink_channel[16] && sink_valid; + + src17_data = sink_data; + src17_startofpacket = sink_startofpacket; + src17_endofpacket = sink_endofpacket; + src17_channel = sink_channel >> NUM_OUTPUTS; + + src17_valid = sink_channel[17] && sink_valid; + + end + + // ------------------- + // Backpressure + // ------------------- + assign ready_vector[0] = src0_ready; + assign ready_vector[1] = src1_ready; + assign ready_vector[2] = src2_ready; + assign ready_vector[3] = src3_ready; + assign ready_vector[4] = src4_ready; + assign ready_vector[5] = src5_ready; + assign ready_vector[6] = src6_ready; + assign ready_vector[7] = src7_ready; + assign ready_vector[8] = src8_ready; + assign ready_vector[9] = src9_ready; + assign ready_vector[10] = src10_ready; + assign ready_vector[11] = src11_ready; + assign ready_vector[12] = src12_ready; + assign ready_vector[13] = src13_ready; + assign ready_vector[14] = src14_ready; + assign ready_vector[15] = src15_ready; + assign ready_vector[16] = src16_ready; + assign ready_vector[17] = src17_ready; + + assign sink_ready = |(sink_channel & ready_vector); + +endmodule + + diff --git a/db/ip/nios_system/submodules/nios_system_cmd_xbar_mux.sv b/db/ip/nios_system/submodules/nios_system_cmd_xbar_mux.sv new file mode 100644 index 0000000..494c070 --- /dev/null +++ b/db/ip/nios_system/submodules/nios_system_cmd_xbar_mux.sv @@ -0,0 +1,308 @@ +// (C) 2001-2013 Altera Corporation. All rights reserved. +// Your use of Altera Corporation's design tools, logic functions and other +// software and tools, and its AMPP partner logic functions, and any output +// files any of the foregoing (including device programming or simulation +// files), and any associated documentation or information are expressly subject +// to the terms and conditions of the Altera Program License Subscription +// Agreement, Altera MegaCore Function License Agreement, or other applicable +// license agreement, including, without limitation, that your use is for the +// sole purpose of programming logic devices manufactured by Altera and sold by +// Altera or its authorized distributors. Please refer to the applicable +// agreement for further details. + + +// $Id: //acds/rel/13.0sp1/ip/merlin/altera_merlin_multiplexer/altera_merlin_multiplexer.sv.terp#1 $ +// $Revision: #1 $ +// $Date: 2013/03/07 $ +// $Author: swbranch $ + +// ------------------------------------------ +// Merlin Multiplexer +// ------------------------------------------ + +`timescale 1 ns / 1 ns + + +// ------------------------------------------ +// Generation parameters: +// output_name: nios_system_cmd_xbar_mux +// NUM_INPUTS: 2 +// ARBITRATION_SHARES: 1 1 +// ARBITRATION_SCHEME "round-robin" +// PIPELINE_ARB: 1 +// PKT_TRANS_LOCK: 59 (arbitration locking enabled) +// ST_DATA_W: 96 +// ST_CHANNEL_W: 18 +// ------------------------------------------ + +module nios_system_cmd_xbar_mux +( + // ---------------------- + // Sinks + // ---------------------- + input sink0_valid, + input [96-1 : 0] sink0_data, + input [18-1: 0] sink0_channel, + input sink0_startofpacket, + input sink0_endofpacket, + output sink0_ready, + + input sink1_valid, + input [96-1 : 0] sink1_data, + input [18-1: 0] sink1_channel, + input sink1_startofpacket, + input sink1_endofpacket, + output sink1_ready, + + + // ---------------------- + // Source + // ---------------------- + output src_valid, + output [96-1 : 0] src_data, + output [18-1 : 0] src_channel, + output src_startofpacket, + output src_endofpacket, + input src_ready, + + // ---------------------- + // Clock & Reset + // ---------------------- + input clk, + input reset +); + localparam PAYLOAD_W = 96 + 18 + 2; + localparam NUM_INPUTS = 2; + localparam SHARE_COUNTER_W = 1; + localparam PIPELINE_ARB = 1; + localparam ST_DATA_W = 96; + localparam ST_CHANNEL_W = 18; + localparam PKT_TRANS_LOCK = 59; + + // ------------------------------------------ + // Signals + // ------------------------------------------ + wire [NUM_INPUTS - 1 : 0] request; + wire [NUM_INPUTS - 1 : 0] valid; + wire [NUM_INPUTS - 1 : 0] grant; + wire [NUM_INPUTS - 1 : 0] next_grant; + reg [NUM_INPUTS - 1 : 0] saved_grant; + reg [PAYLOAD_W - 1 : 0] src_payload; + wire last_cycle; + reg packet_in_progress; + reg update_grant; + + wire [PAYLOAD_W - 1 : 0] sink0_payload; + wire [PAYLOAD_W - 1 : 0] sink1_payload; + + assign valid[0] = sink0_valid; + assign valid[1] = sink1_valid; + + wire [NUM_INPUTS - 1 : 0] eop; + assign eop[0] = sink0_endofpacket; + assign eop[1] = sink1_endofpacket; + + // ------------------------------------------ + // ------------------------------------------ + // Grant Logic & Updates + // ------------------------------------------ + // ------------------------------------------ + reg [NUM_INPUTS - 1 : 0] lock; + always @* begin + lock[0] = sink0_data[59]; + lock[1] = sink1_data[59]; + end + reg [NUM_INPUTS - 1 : 0] locked = '0; + always @(posedge clk or posedge reset) begin + if (reset) begin + locked <= '0; + end + else begin + locked <= next_grant & lock; + end + end + + assign last_cycle = src_valid & src_ready & src_endofpacket & ~(|(lock & grant)); + + // ------------------------------------------ + // We're working on a packet at any time valid is high, except + // when this is the endofpacket. + // ------------------------------------------ + always @(posedge clk or posedge reset) begin + if (reset) begin + packet_in_progress <= 1'b0; + end + else begin + if (src_valid) + packet_in_progress <= 1'b1; + if (last_cycle) + packet_in_progress <= 1'b0; + end + end + + + // ------------------------------------------ + // Shares + // + // Special case: all-equal shares _should_ be optimized into assigning a + // constant to next_grant_share. + // Special case: all-1's shares _should_ result in the share counter + // being optimized away. + // ------------------------------------------ + // Input | arb shares | counter load value + // 0 | 1 | 0 + // 1 | 1 | 0 + wire [SHARE_COUNTER_W - 1 : 0] share_0 = 1'd0; + wire [SHARE_COUNTER_W - 1 : 0] share_1 = 1'd0; + + // ------------------------------------------ + // Choose the share value corresponding to the grant. + // ------------------------------------------ + reg [SHARE_COUNTER_W - 1 : 0] next_grant_share; + always @* begin + next_grant_share = + share_0 & { SHARE_COUNTER_W {next_grant[0]} } | + share_1 & { SHARE_COUNTER_W {next_grant[1]} }; + end + + // ------------------------------------------ + // Flag to indicate first packet of an arb sequence. + // ------------------------------------------ + + // ------------------------------------------ + // Compute the next share-count value. + // ------------------------------------------ + reg [SHARE_COUNTER_W - 1 : 0] p1_share_count; + reg [SHARE_COUNTER_W - 1 : 0] share_count; + reg share_count_zero_flag; + + always @* begin + // Update the counter, but don't decrement below 0. + p1_share_count = share_count_zero_flag ? '0 : share_count - 1'b1; + end + + // ------------------------------------------ + // Update the share counter and share-counter=zero flag. + // ------------------------------------------ + always @(posedge clk or posedge reset) begin + if (reset) begin + share_count <= '0; + share_count_zero_flag <= 1'b1; + end + else begin + if (update_grant) begin + share_count <= next_grant_share; + share_count_zero_flag <= (next_grant_share == '0); + end + else if (last_cycle) begin + share_count <= p1_share_count; + share_count_zero_flag <= (p1_share_count == '0); + end + end + end + + + always @* begin + update_grant = 0; + + // ------------------------------------------ + // The pipeline delays grant by one cycle, so + // we have to calculate the update_grant signal + // one cycle ahead of time. + // + // Possible optimization: omit the first clause + // "if (!packet_in_progress & ~src_valid) ..." + // cost: one idle cycle at the the beginning of each + // grant cycle. + // benefit: save a small amount of logic. + // ------------------------------------------ + if (!packet_in_progress & !src_valid) + update_grant = 1; + if (last_cycle && share_count_zero_flag) + update_grant = 1; + end + + wire save_grant; + assign save_grant = update_grant; + assign grant = saved_grant; + + always @(posedge clk, posedge reset) begin + if (reset) + saved_grant <= '0; + else if (save_grant) + saved_grant <= next_grant; + end + + // ------------------------------------------ + // ------------------------------------------ + // Arbitrator + // ------------------------------------------ + // ------------------------------------------ + + // ------------------------------------------ + // Create a request vector that stays high during + // the packet for unpipelined arbitration. + // + // The pipelined arbitration scheme does not require + // request to be held high during the packet. + // ------------------------------------------ + reg [NUM_INPUTS - 1 : 0] prev_request; + always @(posedge clk, posedge reset) begin + if (reset) + prev_request <= '0; + else + prev_request <= request & ~(valid & eop); + end + + assign request = (PIPELINE_ARB == 1) ? valid | locked : + prev_request | valid | locked; + + + altera_merlin_arbitrator + #( + .NUM_REQUESTERS(NUM_INPUTS), + .SCHEME ("round-robin"), + .PIPELINE (1) + ) arb ( + .clk (clk), + .reset (reset), + .request (request), + .grant (next_grant), + .save_top_priority (src_valid), + .increment_top_priority (update_grant) + ); + + // ------------------------------------------ + // ------------------------------------------ + // Mux + // + // Implemented as a sum of products. + // ------------------------------------------ + // ------------------------------------------ + + assign sink0_ready = src_ready && grant[0]; + assign sink1_ready = src_ready && grant[1]; + + assign src_valid = |(grant & valid); + + always @* begin + src_payload = + sink0_payload & {PAYLOAD_W {grant[0]} } | + sink1_payload & {PAYLOAD_W {grant[1]} }; + end + + // ------------------------------------------ + // Mux Payload Mapping + // ------------------------------------------ + + assign sink0_payload = {sink0_channel,sink0_data, + sink0_startofpacket,sink0_endofpacket}; + assign sink1_payload = {sink1_channel,sink1_data, + sink1_startofpacket,sink1_endofpacket}; + + assign {src_channel,src_data,src_startofpacket,src_endofpacket} = src_payload; + +endmodule + + + diff --git a/db/ip/nios_system/submodules/nios_system_hex0.v b/db/ip/nios_system/submodules/nios_system_hex0.v new file mode 100644 index 0000000..ec4cd20 --- /dev/null +++ b/db/ip/nios_system/submodules/nios_system_hex0.v @@ -0,0 +1,66 @@ +//Legal Notice: (C)2016 Altera Corporation. All rights reserved. Your +//use of Altera Corporation's design tools, logic functions and other +//software and tools, and its AMPP partner logic functions, and any +//output files any of the foregoing (including device programming or +//simulation files), and any associated documentation or information are +//expressly subject to the terms and conditions of the Altera Program +//License Subscription Agreement or other applicable license agreement, +//including, without limitation, that your use is for the sole purpose +//of programming logic devices manufactured by Altera and sold by Altera +//or its authorized distributors. Please refer to the applicable +//agreement for further details. + +// synthesis translate_off +`timescale 1ns / 1ps +// synthesis translate_on + +// turn off superfluous verilog processor warnings +// altera message_level Level1 +// altera message_off 10034 10035 10036 10037 10230 10240 10030 + +module nios_system_hex0 ( + // inputs: + address, + chipselect, + clk, + reset_n, + write_n, + writedata, + + // outputs: + out_port, + readdata + ) +; + + output [ 6: 0] out_port; + output [ 31: 0] readdata; + input [ 1: 0] address; + input chipselect; + input clk; + input reset_n; + input write_n; + input [ 31: 0] writedata; + + wire clk_en; + reg [ 6: 0] data_out; + wire [ 6: 0] out_port; + wire [ 6: 0] read_mux_out; + wire [ 31: 0] readdata; + assign clk_en = 1; + //s1, which is an e_avalon_slave + assign read_mux_out = {7 {(address == 0)}} & data_out; + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + data_out <= 0; + else if (chipselect && ~write_n && (address == 0)) + data_out <= writedata[6 : 0]; + end + + + assign readdata = {32'b0 | read_mux_out}; + assign out_port = data_out; + +endmodule + diff --git a/db/ip/nios_system/submodules/nios_system_id_router.sv b/db/ip/nios_system/submodules/nios_system_id_router.sv new file mode 100644 index 0000000..cb46634 --- /dev/null +++ b/db/ip/nios_system/submodules/nios_system_id_router.sv @@ -0,0 +1,221 @@ +// (C) 2001-2013 Altera Corporation. All rights reserved. +// Your use of Altera Corporation's design tools, logic functions and other +// software and tools, and its AMPP partner logic functions, and any output +// files any of the foregoing (including device programming or simulation +// files), and any associated documentation or information are expressly subject +// to the terms and conditions of the Altera Program License Subscription +// Agreement, Altera MegaCore Function License Agreement, or other applicable +// license agreement, including, without limitation, that your use is for the +// sole purpose of programming logic devices manufactured by Altera and sold by +// Altera or its authorized distributors. Please refer to the applicable +// agreement for further details. + + +// (C) 2001-2013 Altera Corporation. All rights reserved. +// Your use of Altera Corporation's design tools, logic functions and other +// software and tools, and its AMPP partner logic functions, and any output +// files any of the foregoing (including device programming or simulation +// files), and any associated documentation or information are expressly subject +// to the terms and conditions of the Altera Program License Subscription +// Agreement, Altera MegaCore Function License Agreement, or other applicable +// license agreement, including, without limitation, that your use is for the +// sole purpose of programming logic devices manufactured by Altera and sold by +// Altera or its authorized distributors. Please refer to the applicable +// agreement for further details. + + +// $Id: //acds/rel/13.0sp1/ip/merlin/altera_merlin_router/altera_merlin_router.sv.terp#1 $ +// $Revision: #1 $ +// $Date: 2013/03/07 $ +// $Author: swbranch $ + +// ------------------------------------------------------- +// Merlin Router +// +// Asserts the appropriate one-hot encoded channel based on +// either (a) the address or (b) the dest id. The DECODER_TYPE +// parameter controls this behaviour. 0 means address decoder, +// 1 means dest id decoder. +// +// In the case of (a), it also sets the destination id. +// ------------------------------------------------------- + +`timescale 1 ns / 1 ns + +module nios_system_id_router_default_decode + #( + parameter DEFAULT_CHANNEL = 0, + DEFAULT_WR_CHANNEL = -1, + DEFAULT_RD_CHANNEL = -1, + DEFAULT_DESTID = 1 + ) + (output [85 - 81 : 0] default_destination_id, + output [18-1 : 0] default_wr_channel, + output [18-1 : 0] default_rd_channel, + output [18-1 : 0] default_src_channel + ); + + assign default_destination_id = + DEFAULT_DESTID[85 - 81 : 0]; + + generate begin : default_decode + if (DEFAULT_CHANNEL == -1) begin + assign default_src_channel = '0; + end + else begin + assign default_src_channel = 18'b1 << DEFAULT_CHANNEL; + end + end + endgenerate + + generate begin : default_decode_rw + if (DEFAULT_RD_CHANNEL == -1) begin + assign default_wr_channel = '0; + assign default_rd_channel = '0; + end + else begin + assign default_wr_channel = 18'b1 << DEFAULT_WR_CHANNEL; + assign default_rd_channel = 18'b1 << DEFAULT_RD_CHANNEL; + end + end + endgenerate + +endmodule + + +module nios_system_id_router +( + // ------------------- + // Clock & Reset + // ------------------- + input clk, + input reset, + + // ------------------- + // Command Sink (Input) + // ------------------- + input sink_valid, + input [96-1 : 0] sink_data, + input sink_startofpacket, + input sink_endofpacket, + output sink_ready, + + // ------------------- + // Command Source (Output) + // ------------------- + output src_valid, + output reg [96-1 : 0] src_data, + output reg [18-1 : 0] src_channel, + output src_startofpacket, + output src_endofpacket, + input src_ready +); + + // ------------------------------------------------------- + // Local parameters and variables + // ------------------------------------------------------- + localparam PKT_ADDR_H = 54; + localparam PKT_ADDR_L = 36; + localparam PKT_DEST_ID_H = 85; + localparam PKT_DEST_ID_L = 81; + localparam PKT_PROTECTION_H = 89; + localparam PKT_PROTECTION_L = 87; + localparam ST_DATA_W = 96; + localparam ST_CHANNEL_W = 18; + localparam DECODER_TYPE = 1; + + localparam PKT_TRANS_WRITE = 57; + localparam PKT_TRANS_READ = 58; + + localparam PKT_ADDR_W = PKT_ADDR_H-PKT_ADDR_L + 1; + localparam PKT_DEST_ID_W = PKT_DEST_ID_H-PKT_DEST_ID_L + 1; + + + + // ------------------------------------------------------- + // Figure out the number of bits to mask off for each slave span + // during address decoding + // ------------------------------------------------------- + // ------------------------------------------------------- + // Work out which address bits are significant based on the + // address range of the slaves. If the required width is too + // large or too small, we use the address field width instead. + // ------------------------------------------------------- + localparam ADDR_RANGE = 64'h0; + localparam RANGE_ADDR_WIDTH = log2ceil(ADDR_RANGE); + localparam OPTIMIZED_ADDR_H = (RANGE_ADDR_WIDTH > PKT_ADDR_W) || + (RANGE_ADDR_WIDTH == 0) ? + PKT_ADDR_H : + PKT_ADDR_L + RANGE_ADDR_WIDTH - 1; + + localparam RG = RANGE_ADDR_WIDTH; + + reg [PKT_DEST_ID_W-1 : 0] destid; + + // ------------------------------------------------------- + // Pass almost everything through, untouched + // ------------------------------------------------------- + assign sink_ready = src_ready; + assign src_valid = sink_valid; + assign src_startofpacket = sink_startofpacket; + assign src_endofpacket = sink_endofpacket; + + wire [PKT_DEST_ID_W-1:0] default_destid; + wire [18-1 : 0] default_src_channel; + + + + + + nios_system_id_router_default_decode the_default_decode( + .default_destination_id (default_destid), + .default_wr_channel (), + .default_rd_channel (), + .default_src_channel (default_src_channel) + ); + + always @* begin + src_data = sink_data; + src_channel = default_src_channel; + + // -------------------------------------------------- + // DestinationID Decoder + // Sets the channel based on the destination ID. + // -------------------------------------------------- + destid = sink_data[PKT_DEST_ID_H : PKT_DEST_ID_L]; + + + + if (destid == 1 ) begin + src_channel = 18'b01; + end + + if (destid == 0 ) begin + src_channel = 18'b10; + end + + +end + + + // -------------------------------------------------- + // Ceil(log2()) function + // -------------------------------------------------- + function integer log2ceil; + input reg[65:0] val; + reg [65:0] i; + + begin + i = 1; + log2ceil = 0; + + while (i < val) begin + log2ceil = log2ceil + 1; + i = i << 1; + end + end + endfunction + +endmodule + + diff --git a/db/ip/nios_system/submodules/nios_system_id_router_002.sv b/db/ip/nios_system/submodules/nios_system_id_router_002.sv new file mode 100644 index 0000000..6006063 --- /dev/null +++ b/db/ip/nios_system/submodules/nios_system_id_router_002.sv @@ -0,0 +1,217 @@ +// (C) 2001-2013 Altera Corporation. All rights reserved. +// Your use of Altera Corporation's design tools, logic functions and other +// software and tools, and its AMPP partner logic functions, and any output +// files any of the foregoing (including device programming or simulation +// files), and any associated documentation or information are expressly subject +// to the terms and conditions of the Altera Program License Subscription +// Agreement, Altera MegaCore Function License Agreement, or other applicable +// license agreement, including, without limitation, that your use is for the +// sole purpose of programming logic devices manufactured by Altera and sold by +// Altera or its authorized distributors. Please refer to the applicable +// agreement for further details. + + +// (C) 2001-2013 Altera Corporation. All rights reserved. +// Your use of Altera Corporation's design tools, logic functions and other +// software and tools, and its AMPP partner logic functions, and any output +// files any of the foregoing (including device programming or simulation +// files), and any associated documentation or information are expressly subject +// to the terms and conditions of the Altera Program License Subscription +// Agreement, Altera MegaCore Function License Agreement, or other applicable +// license agreement, including, without limitation, that your use is for the +// sole purpose of programming logic devices manufactured by Altera and sold by +// Altera or its authorized distributors. Please refer to the applicable +// agreement for further details. + + +// $Id: //acds/rel/13.0sp1/ip/merlin/altera_merlin_router/altera_merlin_router.sv.terp#1 $ +// $Revision: #1 $ +// $Date: 2013/03/07 $ +// $Author: swbranch $ + +// ------------------------------------------------------- +// Merlin Router +// +// Asserts the appropriate one-hot encoded channel based on +// either (a) the address or (b) the dest id. The DECODER_TYPE +// parameter controls this behaviour. 0 means address decoder, +// 1 means dest id decoder. +// +// In the case of (a), it also sets the destination id. +// ------------------------------------------------------- + +`timescale 1 ns / 1 ns + +module nios_system_id_router_002_default_decode + #( + parameter DEFAULT_CHANNEL = 0, + DEFAULT_WR_CHANNEL = -1, + DEFAULT_RD_CHANNEL = -1, + DEFAULT_DESTID = 0 + ) + (output [85 - 81 : 0] default_destination_id, + output [18-1 : 0] default_wr_channel, + output [18-1 : 0] default_rd_channel, + output [18-1 : 0] default_src_channel + ); + + assign default_destination_id = + DEFAULT_DESTID[85 - 81 : 0]; + + generate begin : default_decode + if (DEFAULT_CHANNEL == -1) begin + assign default_src_channel = '0; + end + else begin + assign default_src_channel = 18'b1 << DEFAULT_CHANNEL; + end + end + endgenerate + + generate begin : default_decode_rw + if (DEFAULT_RD_CHANNEL == -1) begin + assign default_wr_channel = '0; + assign default_rd_channel = '0; + end + else begin + assign default_wr_channel = 18'b1 << DEFAULT_WR_CHANNEL; + assign default_rd_channel = 18'b1 << DEFAULT_RD_CHANNEL; + end + end + endgenerate + +endmodule + + +module nios_system_id_router_002 +( + // ------------------- + // Clock & Reset + // ------------------- + input clk, + input reset, + + // ------------------- + // Command Sink (Input) + // ------------------- + input sink_valid, + input [96-1 : 0] sink_data, + input sink_startofpacket, + input sink_endofpacket, + output sink_ready, + + // ------------------- + // Command Source (Output) + // ------------------- + output src_valid, + output reg [96-1 : 0] src_data, + output reg [18-1 : 0] src_channel, + output src_startofpacket, + output src_endofpacket, + input src_ready +); + + // ------------------------------------------------------- + // Local parameters and variables + // ------------------------------------------------------- + localparam PKT_ADDR_H = 54; + localparam PKT_ADDR_L = 36; + localparam PKT_DEST_ID_H = 85; + localparam PKT_DEST_ID_L = 81; + localparam PKT_PROTECTION_H = 89; + localparam PKT_PROTECTION_L = 87; + localparam ST_DATA_W = 96; + localparam ST_CHANNEL_W = 18; + localparam DECODER_TYPE = 1; + + localparam PKT_TRANS_WRITE = 57; + localparam PKT_TRANS_READ = 58; + + localparam PKT_ADDR_W = PKT_ADDR_H-PKT_ADDR_L + 1; + localparam PKT_DEST_ID_W = PKT_DEST_ID_H-PKT_DEST_ID_L + 1; + + + + // ------------------------------------------------------- + // Figure out the number of bits to mask off for each slave span + // during address decoding + // ------------------------------------------------------- + // ------------------------------------------------------- + // Work out which address bits are significant based on the + // address range of the slaves. If the required width is too + // large or too small, we use the address field width instead. + // ------------------------------------------------------- + localparam ADDR_RANGE = 64'h0; + localparam RANGE_ADDR_WIDTH = log2ceil(ADDR_RANGE); + localparam OPTIMIZED_ADDR_H = (RANGE_ADDR_WIDTH > PKT_ADDR_W) || + (RANGE_ADDR_WIDTH == 0) ? + PKT_ADDR_H : + PKT_ADDR_L + RANGE_ADDR_WIDTH - 1; + + localparam RG = RANGE_ADDR_WIDTH; + + reg [PKT_DEST_ID_W-1 : 0] destid; + + // ------------------------------------------------------- + // Pass almost everything through, untouched + // ------------------------------------------------------- + assign sink_ready = src_ready; + assign src_valid = sink_valid; + assign src_startofpacket = sink_startofpacket; + assign src_endofpacket = sink_endofpacket; + + wire [PKT_DEST_ID_W-1:0] default_destid; + wire [18-1 : 0] default_src_channel; + + + + + + nios_system_id_router_002_default_decode the_default_decode( + .default_destination_id (default_destid), + .default_wr_channel (), + .default_rd_channel (), + .default_src_channel (default_src_channel) + ); + + always @* begin + src_data = sink_data; + src_channel = default_src_channel; + + // -------------------------------------------------- + // DestinationID Decoder + // Sets the channel based on the destination ID. + // -------------------------------------------------- + destid = sink_data[PKT_DEST_ID_H : PKT_DEST_ID_L]; + + + + if (destid == 0 ) begin + src_channel = 18'b1; + end + + +end + + + // -------------------------------------------------- + // Ceil(log2()) function + // -------------------------------------------------- + function integer log2ceil; + input reg[65:0] val; + reg [65:0] i; + + begin + i = 1; + log2ceil = 0; + + while (i < val) begin + log2ceil = log2ceil + 1; + i = i << 1; + end + end + endfunction + +endmodule + + diff --git a/db/ip/nios_system/submodules/nios_system_id_router_003.sv b/db/ip/nios_system/submodules/nios_system_id_router_003.sv new file mode 100644 index 0000000..7cfdd0c --- /dev/null +++ b/db/ip/nios_system/submodules/nios_system_id_router_003.sv @@ -0,0 +1,217 @@ +// (C) 2001-2013 Altera Corporation. All rights reserved. +// Your use of Altera Corporation's design tools, logic functions and other +// software and tools, and its AMPP partner logic functions, and any output +// files any of the foregoing (including device programming or simulation +// files), and any associated documentation or information are expressly subject +// to the terms and conditions of the Altera Program License Subscription +// Agreement, Altera MegaCore Function License Agreement, or other applicable +// license agreement, including, without limitation, that your use is for the +// sole purpose of programming logic devices manufactured by Altera and sold by +// Altera or its authorized distributors. Please refer to the applicable +// agreement for further details. + + +// (C) 2001-2013 Altera Corporation. All rights reserved. +// Your use of Altera Corporation's design tools, logic functions and other +// software and tools, and its AMPP partner logic functions, and any output +// files any of the foregoing (including device programming or simulation +// files), and any associated documentation or information are expressly subject +// to the terms and conditions of the Altera Program License Subscription +// Agreement, Altera MegaCore Function License Agreement, or other applicable +// license agreement, including, without limitation, that your use is for the +// sole purpose of programming logic devices manufactured by Altera and sold by +// Altera or its authorized distributors. Please refer to the applicable +// agreement for further details. + + +// $Id: //acds/rel/13.0sp1/ip/merlin/altera_merlin_router/altera_merlin_router.sv.terp#1 $ +// $Revision: #1 $ +// $Date: 2013/03/07 $ +// $Author: swbranch $ + +// ------------------------------------------------------- +// Merlin Router +// +// Asserts the appropriate one-hot encoded channel based on +// either (a) the address or (b) the dest id. The DECODER_TYPE +// parameter controls this behaviour. 0 means address decoder, +// 1 means dest id decoder. +// +// In the case of (a), it also sets the destination id. +// ------------------------------------------------------- + +`timescale 1 ns / 1 ns + +module nios_system_id_router_003_default_decode + #( + parameter DEFAULT_CHANNEL = 0, + DEFAULT_WR_CHANNEL = -1, + DEFAULT_RD_CHANNEL = -1, + DEFAULT_DESTID = 0 + ) + (output [85 - 81 : 0] default_destination_id, + output [18-1 : 0] default_wr_channel, + output [18-1 : 0] default_rd_channel, + output [18-1 : 0] default_src_channel + ); + + assign default_destination_id = + DEFAULT_DESTID[85 - 81 : 0]; + + generate begin : default_decode + if (DEFAULT_CHANNEL == -1) begin + assign default_src_channel = '0; + end + else begin + assign default_src_channel = 18'b1 << DEFAULT_CHANNEL; + end + end + endgenerate + + generate begin : default_decode_rw + if (DEFAULT_RD_CHANNEL == -1) begin + assign default_wr_channel = '0; + assign default_rd_channel = '0; + end + else begin + assign default_wr_channel = 18'b1 << DEFAULT_WR_CHANNEL; + assign default_rd_channel = 18'b1 << DEFAULT_RD_CHANNEL; + end + end + endgenerate + +endmodule + + +module nios_system_id_router_003 +( + // ------------------- + // Clock & Reset + // ------------------- + input clk, + input reset, + + // ------------------- + // Command Sink (Input) + // ------------------- + input sink_valid, + input [96-1 : 0] sink_data, + input sink_startofpacket, + input sink_endofpacket, + output sink_ready, + + // ------------------- + // Command Source (Output) + // ------------------- + output src_valid, + output reg [96-1 : 0] src_data, + output reg [18-1 : 0] src_channel, + output src_startofpacket, + output src_endofpacket, + input src_ready +); + + // ------------------------------------------------------- + // Local parameters and variables + // ------------------------------------------------------- + localparam PKT_ADDR_H = 54; + localparam PKT_ADDR_L = 36; + localparam PKT_DEST_ID_H = 85; + localparam PKT_DEST_ID_L = 81; + localparam PKT_PROTECTION_H = 89; + localparam PKT_PROTECTION_L = 87; + localparam ST_DATA_W = 96; + localparam ST_CHANNEL_W = 18; + localparam DECODER_TYPE = 1; + + localparam PKT_TRANS_WRITE = 57; + localparam PKT_TRANS_READ = 58; + + localparam PKT_ADDR_W = PKT_ADDR_H-PKT_ADDR_L + 1; + localparam PKT_DEST_ID_W = PKT_DEST_ID_H-PKT_DEST_ID_L + 1; + + + + // ------------------------------------------------------- + // Figure out the number of bits to mask off for each slave span + // during address decoding + // ------------------------------------------------------- + // ------------------------------------------------------- + // Work out which address bits are significant based on the + // address range of the slaves. If the required width is too + // large or too small, we use the address field width instead. + // ------------------------------------------------------- + localparam ADDR_RANGE = 64'h0; + localparam RANGE_ADDR_WIDTH = log2ceil(ADDR_RANGE); + localparam OPTIMIZED_ADDR_H = (RANGE_ADDR_WIDTH > PKT_ADDR_W) || + (RANGE_ADDR_WIDTH == 0) ? + PKT_ADDR_H : + PKT_ADDR_L + RANGE_ADDR_WIDTH - 1; + + localparam RG = RANGE_ADDR_WIDTH; + + reg [PKT_DEST_ID_W-1 : 0] destid; + + // ------------------------------------------------------- + // Pass almost everything through, untouched + // ------------------------------------------------------- + assign sink_ready = src_ready; + assign src_valid = sink_valid; + assign src_startofpacket = sink_startofpacket; + assign src_endofpacket = sink_endofpacket; + + wire [PKT_DEST_ID_W-1:0] default_destid; + wire [18-1 : 0] default_src_channel; + + + + + + nios_system_id_router_003_default_decode the_default_decode( + .default_destination_id (default_destid), + .default_wr_channel (), + .default_rd_channel (), + .default_src_channel (default_src_channel) + ); + + always @* begin + src_data = sink_data; + src_channel = default_src_channel; + + // -------------------------------------------------- + // DestinationID Decoder + // Sets the channel based on the destination ID. + // -------------------------------------------------- + destid = sink_data[PKT_DEST_ID_H : PKT_DEST_ID_L]; + + + + if (destid == 0 ) begin + src_channel = 18'b1; + end + + +end + + + // -------------------------------------------------- + // Ceil(log2()) function + // -------------------------------------------------- + function integer log2ceil; + input reg[65:0] val; + reg [65:0] i; + + begin + i = 1; + log2ceil = 0; + + while (i < val) begin + log2ceil = log2ceil + 1; + i = i << 1; + end + end + endfunction + +endmodule + + diff --git a/db/ip/nios_system/submodules/nios_system_irq_mapper.sv b/db/ip/nios_system/submodules/nios_system_irq_mapper.sv new file mode 100644 index 0000000..d318630 --- /dev/null +++ b/db/ip/nios_system/submodules/nios_system_irq_mapper.sv @@ -0,0 +1,59 @@ +// (C) 2001-2013 Altera Corporation. All rights reserved. +// Your use of Altera Corporation's design tools, logic functions and other +// software and tools, and its AMPP partner logic functions, and any output +// files any of the foregoing (including device programming or simulation +// files), and any associated documentation or information are expressly subject +// to the terms and conditions of the Altera Program License Subscription +// Agreement, Altera MegaCore Function License Agreement, or other applicable +// license agreement, including, without limitation, that your use is for the +// sole purpose of programming logic devices manufactured by Altera and sold by +// Altera or its authorized distributors. Please refer to the applicable +// agreement for further details. + + +// $Id: //acds/rel/13.0sp1/ip/merlin/altera_irq_mapper/altera_irq_mapper.sv.terp#1 $ +// $Revision: #1 $ +// $Date: 2013/03/07 $ +// $Author: swbranch $ + +// ------------------------------------------------------- +// Altera IRQ Mapper +// +// Parameters +// NUM_RCVRS : 1 +// SENDER_IRW_WIDTH : 32 +// IRQ_MAP : 0:5 +// +// ------------------------------------------------------- + +`timescale 1 ns / 1 ns + +module nios_system_irq_mapper +( + // ------------------- + // Clock & Reset + // ------------------- + input clk, + input reset, + + // ------------------- + // IRQ Receivers + // ------------------- + input receiver0_irq, + + // ------------------- + // Command Source (Output) + // ------------------- + output reg [31 : 0] sender_irq +); + + + always @* begin + sender_irq = 0; + + sender_irq[5] = receiver0_irq; + end + +endmodule + + diff --git a/db/ip/nios_system/submodules/nios_system_jtag_uart.v b/db/ip/nios_system/submodules/nios_system_jtag_uart.v new file mode 100644 index 0000000..11ff56f --- /dev/null +++ b/db/ip/nios_system/submodules/nios_system_jtag_uart.v @@ -0,0 +1,583 @@ +//Legal Notice: (C)2016 Altera Corporation. All rights reserved. Your +//use of Altera Corporation's design tools, logic functions and other +//software and tools, and its AMPP partner logic functions, and any +//output files any of the foregoing (including device programming or +//simulation files), and any associated documentation or information are +//expressly subject to the terms and conditions of the Altera Program +//License Subscription Agreement or other applicable license agreement, +//including, without limitation, that your use is for the sole purpose +//of programming logic devices manufactured by Altera and sold by Altera +//or its authorized distributors. Please refer to the applicable +//agreement for further details. + +// synthesis translate_off +`timescale 1ns / 1ps +// synthesis translate_on + +// turn off superfluous verilog processor warnings +// altera message_level Level1 +// altera message_off 10034 10035 10036 10037 10230 10240 10030 + +module nios_system_jtag_uart_sim_scfifo_w ( + // inputs: + clk, + fifo_wdata, + fifo_wr, + + // outputs: + fifo_FF, + r_dat, + wfifo_empty, + wfifo_used + ) +; + + output fifo_FF; + output [ 7: 0] r_dat; + output wfifo_empty; + output [ 5: 0] wfifo_used; + input clk; + input [ 7: 0] fifo_wdata; + input fifo_wr; + + wire fifo_FF; + wire [ 7: 0] r_dat; + wire wfifo_empty; + wire [ 5: 0] wfifo_used; + +//synthesis translate_off +//////////////// SIMULATION-ONLY CONTENTS + always @(posedge clk) + begin + if (fifo_wr) + $write("%c", fifo_wdata); + end + + + assign wfifo_used = {6{1'b0}}; + assign r_dat = {8{1'b0}}; + assign fifo_FF = 1'b0; + assign wfifo_empty = 1'b1; + +//////////////// END SIMULATION-ONLY CONTENTS + +//synthesis translate_on + +endmodule + + +// synthesis translate_off +`timescale 1ns / 1ps +// synthesis translate_on + +// turn off superfluous verilog processor warnings +// altera message_level Level1 +// altera message_off 10034 10035 10036 10037 10230 10240 10030 + +module nios_system_jtag_uart_scfifo_w ( + // inputs: + clk, + fifo_clear, + fifo_wdata, + fifo_wr, + rd_wfifo, + + // outputs: + fifo_FF, + r_dat, + wfifo_empty, + wfifo_used + ) +; + + output fifo_FF; + output [ 7: 0] r_dat; + output wfifo_empty; + output [ 5: 0] wfifo_used; + input clk; + input fifo_clear; + input [ 7: 0] fifo_wdata; + input fifo_wr; + input rd_wfifo; + + wire fifo_FF; + wire [ 7: 0] r_dat; + wire wfifo_empty; + wire [ 5: 0] wfifo_used; + +//synthesis translate_off +//////////////// SIMULATION-ONLY CONTENTS + nios_system_jtag_uart_sim_scfifo_w the_nios_system_jtag_uart_sim_scfifo_w + ( + .clk (clk), + .fifo_FF (fifo_FF), + .fifo_wdata (fifo_wdata), + .fifo_wr (fifo_wr), + .r_dat (r_dat), + .wfifo_empty (wfifo_empty), + .wfifo_used (wfifo_used) + ); + + +//////////////// END SIMULATION-ONLY CONTENTS + +//synthesis translate_on +//synthesis read_comments_as_HDL on +// scfifo wfifo +// ( +// .aclr (fifo_clear), +// .clock (clk), +// .data (fifo_wdata), +// .empty (wfifo_empty), +// .full (fifo_FF), +// .q (r_dat), +// .rdreq (rd_wfifo), +// .usedw (wfifo_used), +// .wrreq (fifo_wr) +// ); +// +// defparam wfifo.lpm_hint = "RAM_BLOCK_TYPE=AUTO", +// wfifo.lpm_numwords = 64, +// wfifo.lpm_showahead = "OFF", +// wfifo.lpm_type = "scfifo", +// wfifo.lpm_width = 8, +// wfifo.lpm_widthu = 6, +// wfifo.overflow_checking = "OFF", +// wfifo.underflow_checking = "OFF", +// wfifo.use_eab = "ON"; +// +//synthesis read_comments_as_HDL off + +endmodule + + +// synthesis translate_off +`timescale 1ns / 1ps +// synthesis translate_on + +// turn off superfluous verilog processor warnings +// altera message_level Level1 +// altera message_off 10034 10035 10036 10037 10230 10240 10030 + +module nios_system_jtag_uart_sim_scfifo_r ( + // inputs: + clk, + fifo_rd, + rst_n, + + // outputs: + fifo_EF, + fifo_rdata, + rfifo_full, + rfifo_used + ) +; + + output fifo_EF; + output [ 7: 0] fifo_rdata; + output rfifo_full; + output [ 5: 0] rfifo_used; + input clk; + input fifo_rd; + input rst_n; + + reg [ 31: 0] bytes_left; + wire fifo_EF; + reg fifo_rd_d; + wire [ 7: 0] fifo_rdata; + wire new_rom; + wire [ 31: 0] num_bytes; + wire [ 6: 0] rfifo_entries; + wire rfifo_full; + wire [ 5: 0] rfifo_used; + +//synthesis translate_off +//////////////// SIMULATION-ONLY CONTENTS + // Generate rfifo_entries for simulation + always @(posedge clk or negedge rst_n) + begin + if (rst_n == 0) + begin + bytes_left <= 32'h0; + fifo_rd_d <= 1'b0; + end + else + begin + fifo_rd_d <= fifo_rd; + // decrement on read + if (fifo_rd_d) + bytes_left <= bytes_left - 1'b1; + // catch new contents + if (new_rom) + bytes_left <= num_bytes; + end + end + + + assign fifo_EF = bytes_left == 32'b0; + assign rfifo_full = bytes_left > 7'h40; + assign rfifo_entries = (rfifo_full) ? 7'h40 : bytes_left; + assign rfifo_used = rfifo_entries[5 : 0]; + assign new_rom = 1'b0; + assign num_bytes = 32'b0; + assign fifo_rdata = 8'b0; + +//////////////// END SIMULATION-ONLY CONTENTS + +//synthesis translate_on + +endmodule + + +// synthesis translate_off +`timescale 1ns / 1ps +// synthesis translate_on + +// turn off superfluous verilog processor warnings +// altera message_level Level1 +// altera message_off 10034 10035 10036 10037 10230 10240 10030 + +module nios_system_jtag_uart_scfifo_r ( + // inputs: + clk, + fifo_clear, + fifo_rd, + rst_n, + t_dat, + wr_rfifo, + + // outputs: + fifo_EF, + fifo_rdata, + rfifo_full, + rfifo_used + ) +; + + output fifo_EF; + output [ 7: 0] fifo_rdata; + output rfifo_full; + output [ 5: 0] rfifo_used; + input clk; + input fifo_clear; + input fifo_rd; + input rst_n; + input [ 7: 0] t_dat; + input wr_rfifo; + + wire fifo_EF; + wire [ 7: 0] fifo_rdata; + wire rfifo_full; + wire [ 5: 0] rfifo_used; + +//synthesis translate_off +//////////////// SIMULATION-ONLY CONTENTS + nios_system_jtag_uart_sim_scfifo_r the_nios_system_jtag_uart_sim_scfifo_r + ( + .clk (clk), + .fifo_EF (fifo_EF), + .fifo_rd (fifo_rd), + .fifo_rdata (fifo_rdata), + .rfifo_full (rfifo_full), + .rfifo_used (rfifo_used), + .rst_n (rst_n) + ); + + +//////////////// END SIMULATION-ONLY CONTENTS + +//synthesis translate_on +//synthesis read_comments_as_HDL on +// scfifo rfifo +// ( +// .aclr (fifo_clear), +// .clock (clk), +// .data (t_dat), +// .empty (fifo_EF), +// .full (rfifo_full), +// .q (fifo_rdata), +// .rdreq (fifo_rd), +// .usedw (rfifo_used), +// .wrreq (wr_rfifo) +// ); +// +// defparam rfifo.lpm_hint = "RAM_BLOCK_TYPE=AUTO", +// rfifo.lpm_numwords = 64, +// rfifo.lpm_showahead = "OFF", +// rfifo.lpm_type = "scfifo", +// rfifo.lpm_width = 8, +// rfifo.lpm_widthu = 6, +// rfifo.overflow_checking = "OFF", +// rfifo.underflow_checking = "OFF", +// rfifo.use_eab = "ON"; +// +//synthesis read_comments_as_HDL off + +endmodule + + +// synthesis translate_off +`timescale 1ns / 1ps +// synthesis translate_on + +// turn off superfluous verilog processor warnings +// altera message_level Level1 +// altera message_off 10034 10035 10036 10037 10230 10240 10030 + +module nios_system_jtag_uart ( + // inputs: + av_address, + av_chipselect, + av_read_n, + av_write_n, + av_writedata, + clk, + rst_n, + + // outputs: + av_irq, + av_readdata, + av_waitrequest, + dataavailable, + readyfordata + ) + /* synthesis ALTERA_ATTRIBUTE = "SUPPRESS_DA_RULE_INTERNAL=\"R101,C106,D101,D103\"" */ ; + + output av_irq; + output [ 31: 0] av_readdata; + output av_waitrequest; + output dataavailable; + output readyfordata; + input av_address; + input av_chipselect; + input av_read_n; + input av_write_n; + input [ 31: 0] av_writedata; + input clk; + input rst_n; + + reg ac; + wire activity; + wire av_irq; + wire [ 31: 0] av_readdata; + reg av_waitrequest; + reg dataavailable; + reg fifo_AE; + reg fifo_AF; + wire fifo_EF; + wire fifo_FF; + wire fifo_clear; + wire fifo_rd; + wire [ 7: 0] fifo_rdata; + wire [ 7: 0] fifo_wdata; + reg fifo_wr; + reg ien_AE; + reg ien_AF; + wire ipen_AE; + wire ipen_AF; + reg pause_irq; + wire [ 7: 0] r_dat; + wire r_ena; + reg r_val; + wire rd_wfifo; + reg read_0; + reg readyfordata; + wire rfifo_full; + wire [ 5: 0] rfifo_used; + reg rvalid; + reg sim_r_ena; + reg sim_t_dat; + reg sim_t_ena; + reg sim_t_pause; + wire [ 7: 0] t_dat; + reg t_dav; + wire t_ena; + wire t_pause; + wire wfifo_empty; + wire [ 5: 0] wfifo_used; + reg woverflow; + wire wr_rfifo; + //avalon_jtag_slave, which is an e_avalon_slave + assign rd_wfifo = r_ena & ~wfifo_empty; + assign wr_rfifo = t_ena & ~rfifo_full; + assign fifo_clear = ~rst_n; + nios_system_jtag_uart_scfifo_w the_nios_system_jtag_uart_scfifo_w + ( + .clk (clk), + .fifo_FF (fifo_FF), + .fifo_clear (fifo_clear), + .fifo_wdata (fifo_wdata), + .fifo_wr (fifo_wr), + .r_dat (r_dat), + .rd_wfifo (rd_wfifo), + .wfifo_empty (wfifo_empty), + .wfifo_used (wfifo_used) + ); + + nios_system_jtag_uart_scfifo_r the_nios_system_jtag_uart_scfifo_r + ( + .clk (clk), + .fifo_EF (fifo_EF), + .fifo_clear (fifo_clear), + .fifo_rd (fifo_rd), + .fifo_rdata (fifo_rdata), + .rfifo_full (rfifo_full), + .rfifo_used (rfifo_used), + .rst_n (rst_n), + .t_dat (t_dat), + .wr_rfifo (wr_rfifo) + ); + + assign ipen_AE = ien_AE & fifo_AE; + assign ipen_AF = ien_AF & (pause_irq | fifo_AF); + assign av_irq = ipen_AE | ipen_AF; + assign activity = t_pause | t_ena; + always @(posedge clk or negedge rst_n) + begin + if (rst_n == 0) + pause_irq <= 1'b0; + else // only if fifo is not empty... + if (t_pause & ~fifo_EF) + pause_irq <= 1'b1; + else if (read_0) + pause_irq <= 1'b0; + end + + + always @(posedge clk or negedge rst_n) + begin + if (rst_n == 0) + begin + r_val <= 1'b0; + t_dav <= 1'b1; + end + else + begin + r_val <= r_ena & ~wfifo_empty; + t_dav <= ~rfifo_full; + end + end + + + always @(posedge clk or negedge rst_n) + begin + if (rst_n == 0) + begin + fifo_AE <= 1'b0; + fifo_AF <= 1'b0; + fifo_wr <= 1'b0; + rvalid <= 1'b0; + read_0 <= 1'b0; + ien_AE <= 1'b0; + ien_AF <= 1'b0; + ac <= 1'b0; + woverflow <= 1'b0; + av_waitrequest <= 1'b1; + end + else + begin + fifo_AE <= {fifo_FF,wfifo_used} <= 8; + fifo_AF <= (7'h40 - {rfifo_full,rfifo_used}) <= 8; + fifo_wr <= 1'b0; + read_0 <= 1'b0; + av_waitrequest <= ~(av_chipselect & (~av_write_n | ~av_read_n) & av_waitrequest); + if (activity) + ac <= 1'b1; + // write + if (av_chipselect & ~av_write_n & av_waitrequest) + // addr 1 is control; addr 0 is data + if (av_address) + begin + ien_AF <= av_writedata[0]; + ien_AE <= av_writedata[1]; + if (av_writedata[10] & ~activity) + ac <= 1'b0; + end + else + begin + fifo_wr <= ~fifo_FF; + woverflow <= fifo_FF; + end + // read + if (av_chipselect & ~av_read_n & av_waitrequest) + begin + // addr 1 is interrupt; addr 0 is data + if (~av_address) + rvalid <= ~fifo_EF; + read_0 <= ~av_address; + end + end + end + + + assign fifo_wdata = av_writedata[7 : 0]; + assign fifo_rd = (av_chipselect & ~av_read_n & av_waitrequest & ~av_address) ? ~fifo_EF : 1'b0; + assign av_readdata = read_0 ? { {9{1'b0}},rfifo_full,rfifo_used,rvalid,woverflow,~fifo_FF,~fifo_EF,1'b0,ac,ipen_AE,ipen_AF,fifo_rdata } : { {9{1'b0}},(7'h40 - {fifo_FF,wfifo_used}),rvalid,woverflow,~fifo_FF,~fifo_EF,1'b0,ac,ipen_AE,ipen_AF,{6{1'b0}},ien_AE,ien_AF }; + always @(posedge clk or negedge rst_n) + begin + if (rst_n == 0) + readyfordata <= 0; + else + readyfordata <= ~fifo_FF; + end + + + +//synthesis translate_off +//////////////// SIMULATION-ONLY CONTENTS + // Tie off Atlantic Interface signals not used for simulation + always @(posedge clk) + begin + sim_t_pause <= 1'b0; + sim_t_ena <= 1'b0; + sim_t_dat <= t_dav ? r_dat : {8{r_val}}; + sim_r_ena <= 1'b0; + end + + + assign r_ena = sim_r_ena; + assign t_ena = sim_t_ena; + assign t_dat = sim_t_dat; + assign t_pause = sim_t_pause; + always @(fifo_EF) + begin + dataavailable = ~fifo_EF; + end + + + +//////////////// END SIMULATION-ONLY CONTENTS + +//synthesis translate_on +//synthesis read_comments_as_HDL on +// alt_jtag_atlantic nios_system_jtag_uart_alt_jtag_atlantic +// ( +// .clk (clk), +// .r_dat (r_dat), +// .r_ena (r_ena), +// .r_val (r_val), +// .rst_n (rst_n), +// .t_dat (t_dat), +// .t_dav (t_dav), +// .t_ena (t_ena), +// .t_pause (t_pause) +// ); +// +// defparam nios_system_jtag_uart_alt_jtag_atlantic.INSTANCE_ID = 0, +// nios_system_jtag_uart_alt_jtag_atlantic.LOG2_RXFIFO_DEPTH = 6, +// nios_system_jtag_uart_alt_jtag_atlantic.LOG2_TXFIFO_DEPTH = 6, +// nios_system_jtag_uart_alt_jtag_atlantic.SLD_AUTO_INSTANCE_INDEX = "YES"; +// +// always @(posedge clk or negedge rst_n) +// begin +// if (rst_n == 0) +// dataavailable <= 0; +// else +// dataavailable <= ~fifo_EF; +// end +// +// +//synthesis read_comments_as_HDL off + +endmodule + diff --git a/db/ip/nios_system/submodules/nios_system_lcd.v b/db/ip/nios_system/submodules/nios_system_lcd.v new file mode 100644 index 0000000..942f142 --- /dev/null +++ b/db/ip/nios_system/submodules/nios_system_lcd.v @@ -0,0 +1,66 @@ +//Legal Notice: (C)2016 Altera Corporation. All rights reserved. Your +//use of Altera Corporation's design tools, logic functions and other +//software and tools, and its AMPP partner logic functions, and any +//output files any of the foregoing (including device programming or +//simulation files), and any associated documentation or information are +//expressly subject to the terms and conditions of the Altera Program +//License Subscription Agreement or other applicable license agreement, +//including, without limitation, that your use is for the sole purpose +//of programming logic devices manufactured by Altera and sold by Altera +//or its authorized distributors. Please refer to the applicable +//agreement for further details. + +// synthesis translate_off +`timescale 1ns / 1ps +// synthesis translate_on + +// turn off superfluous verilog processor warnings +// altera message_level Level1 +// altera message_off 10034 10035 10036 10037 10230 10240 10030 + +module nios_system_lcd ( + // inputs: + address, + begintransfer, + clk, + read, + reset_n, + write, + writedata, + + // outputs: + LCD_E, + LCD_RS, + LCD_RW, + LCD_data, + readdata + ) +; + + output LCD_E; + output LCD_RS; + output LCD_RW; + inout [ 7: 0] LCD_data; + output [ 7: 0] readdata; + input [ 1: 0] address; + input begintransfer; + input clk; + input read; + input reset_n; + input write; + input [ 7: 0] writedata; + + wire LCD_E; + wire LCD_RS; + wire LCD_RW; + wire [ 7: 0] LCD_data; + wire [ 7: 0] readdata; + assign LCD_RW = address[0]; + assign LCD_RS = address[1]; + assign LCD_E = read | write; + assign LCD_data = (address[0]) ? {8{1'bz}} : writedata; + assign readdata = LCD_data; + //control_slave, which is an e_avalon_slave + +endmodule + diff --git a/db/ip/nios_system/submodules/nios_system_lcd_16207_0.v b/db/ip/nios_system/submodules/nios_system_lcd_16207_0.v new file mode 100644 index 0000000..221f3db --- /dev/null +++ b/db/ip/nios_system/submodules/nios_system_lcd_16207_0.v @@ -0,0 +1,66 @@ +//Legal Notice: (C)2016 Altera Corporation. All rights reserved. Your +//use of Altera Corporation's design tools, logic functions and other +//software and tools, and its AMPP partner logic functions, and any +//output files any of the foregoing (including device programming or +//simulation files), and any associated documentation or information are +//expressly subject to the terms and conditions of the Altera Program +//License Subscription Agreement or other applicable license agreement, +//including, without limitation, that your use is for the sole purpose +//of programming logic devices manufactured by Altera and sold by Altera +//or its authorized distributors. Please refer to the applicable +//agreement for further details. + +// synthesis translate_off +`timescale 1ns / 1ps +// synthesis translate_on + +// turn off superfluous verilog processor warnings +// altera message_level Level1 +// altera message_off 10034 10035 10036 10037 10230 10240 10030 + +module nios_system_lcd_16207_0 ( + // inputs: + address, + begintransfer, + clk, + read, + reset_n, + write, + writedata, + + // outputs: + LCD_E, + LCD_RS, + LCD_RW, + LCD_data, + readdata + ) +; + + output LCD_E; + output LCD_RS; + output LCD_RW; + inout [ 7: 0] LCD_data; + output [ 7: 0] readdata; + input [ 1: 0] address; + input begintransfer; + input clk; + input read; + input reset_n; + input write; + input [ 7: 0] writedata; + + wire LCD_E; + wire LCD_RS; + wire LCD_RW; + wire [ 7: 0] LCD_data; + wire [ 7: 0] readdata; + assign LCD_RW = address[0]; + assign LCD_RS = address[1]; + assign LCD_E = read | write; + assign LCD_data = (address[0]) ? {8{1'bz}} : writedata; + assign readdata = LCD_data; + //control_slave, which is an e_avalon_slave + +endmodule + diff --git a/db/ip/nios_system/submodules/nios_system_lcd_E.v b/db/ip/nios_system/submodules/nios_system_lcd_E.v new file mode 100644 index 0000000..0d9a8b1 --- /dev/null +++ b/db/ip/nios_system/submodules/nios_system_lcd_E.v @@ -0,0 +1,66 @@ +//Legal Notice: (C)2016 Altera Corporation. All rights reserved. Your +//use of Altera Corporation's design tools, logic functions and other +//software and tools, and its AMPP partner logic functions, and any +//output files any of the foregoing (including device programming or +//simulation files), and any associated documentation or information are +//expressly subject to the terms and conditions of the Altera Program +//License Subscription Agreement or other applicable license agreement, +//including, without limitation, that your use is for the sole purpose +//of programming logic devices manufactured by Altera and sold by Altera +//or its authorized distributors. Please refer to the applicable +//agreement for further details. + +// synthesis translate_off +`timescale 1ns / 1ps +// synthesis translate_on + +// turn off superfluous verilog processor warnings +// altera message_level Level1 +// altera message_off 10034 10035 10036 10037 10230 10240 10030 + +module nios_system_lcd_E ( + // inputs: + address, + chipselect, + clk, + reset_n, + write_n, + writedata, + + // outputs: + out_port, + readdata + ) +; + + output out_port; + output [ 31: 0] readdata; + input [ 1: 0] address; + input chipselect; + input clk; + input reset_n; + input write_n; + input [ 31: 0] writedata; + + wire clk_en; + reg data_out; + wire out_port; + wire read_mux_out; + wire [ 31: 0] readdata; + assign clk_en = 1; + //s1, which is an e_avalon_slave + assign read_mux_out = {1 {(address == 0)}} & data_out; + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + data_out <= 0; + else if (chipselect && ~write_n && (address == 0)) + data_out <= writedata; + end + + + assign readdata = {32'b0 | read_mux_out}; + assign out_port = data_out; + +endmodule + diff --git a/db/ip/nios_system/submodules/nios_system_lcd_on.v b/db/ip/nios_system/submodules/nios_system_lcd_on.v new file mode 100644 index 0000000..ed02e25 --- /dev/null +++ b/db/ip/nios_system/submodules/nios_system_lcd_on.v @@ -0,0 +1,66 @@ +//Legal Notice: (C)2016 Altera Corporation. All rights reserved. Your +//use of Altera Corporation's design tools, logic functions and other +//software and tools, and its AMPP partner logic functions, and any +//output files any of the foregoing (including device programming or +//simulation files), and any associated documentation or information are +//expressly subject to the terms and conditions of the Altera Program +//License Subscription Agreement or other applicable license agreement, +//including, without limitation, that your use is for the sole purpose +//of programming logic devices manufactured by Altera and sold by Altera +//or its authorized distributors. Please refer to the applicable +//agreement for further details. + +// synthesis translate_off +`timescale 1ns / 1ps +// synthesis translate_on + +// turn off superfluous verilog processor warnings +// altera message_level Level1 +// altera message_off 10034 10035 10036 10037 10230 10240 10030 + +module nios_system_lcd_on ( + // inputs: + address, + chipselect, + clk, + reset_n, + write_n, + writedata, + + // outputs: + out_port, + readdata + ) +; + + output out_port; + output [ 31: 0] readdata; + input [ 1: 0] address; + input chipselect; + input clk; + input reset_n; + input write_n; + input [ 31: 0] writedata; + + wire clk_en; + reg data_out; + wire out_port; + wire read_mux_out; + wire [ 31: 0] readdata; + assign clk_en = 1; + //s1, which is an e_avalon_slave + assign read_mux_out = {1 {(address == 0)}} & data_out; + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + data_out <= 0; + else if (chipselect && ~write_n && (address == 0)) + data_out <= writedata; + end + + + assign readdata = {32'b0 | read_mux_out}; + assign out_port = data_out; + +endmodule + diff --git a/db/ip/nios_system/submodules/nios_system_nios2_processor.sdc b/db/ip/nios_system/submodules/nios_system_nios2_processor.sdc new file mode 100644 index 0000000..41645ff --- /dev/null +++ b/db/ip/nios_system/submodules/nios_system_nios2_processor.sdc @@ -0,0 +1,53 @@ +# Legal Notice: (C)2016 Altera Corporation. All rights reserved. Your +# use of Altera Corporation's design tools, logic functions and other +# software and tools, and its AMPP partner logic functions, and any +# output files any of the foregoing (including device programming or +# simulation files), and any associated documentation or information are +# expressly subject to the terms and conditions of the Altera Program +# License Subscription Agreement or other applicable license agreement, +# including, without limitation, that your use is for the sole purpose +# of programming logic devices manufactured by Altera and sold by Altera +# or its authorized distributors. Please refer to the applicable +# agreement for further details. + +#************************************************************** +# Timequest JTAG clock definition +# Uncommenting the following lines will define the JTAG +# clock in TimeQuest Timing Analyzer +#************************************************************** + +#create_clock -period 10MHz {altera_reserved_tck} +#set_clock_groups -asynchronous -group {altera_reserved_tck} + +#************************************************************** +# Set TCL Path Variables +#************************************************************** + +set nios_system_nios2_processor nios_system_nios2_processor:* +set nios_system_nios2_processor_oci nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci +set nios_system_nios2_processor_oci_break nios_system_nios2_processor_nios2_oci_break:the_nios_system_nios2_processor_nios2_oci_break +set nios_system_nios2_processor_ocimem nios_system_nios2_processor_nios2_ocimem:the_nios_system_nios2_processor_nios2_ocimem +set nios_system_nios2_processor_oci_debug nios_system_nios2_processor_nios2_oci_debug:the_nios_system_nios2_processor_nios2_oci_debug +set nios_system_nios2_processor_wrapper nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper +set nios_system_nios2_processor_jtag_tck nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck +set nios_system_nios2_processor_jtag_sysclk nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk +set nios_system_nios2_processor_oci_path [format "%s|%s" $nios_system_nios2_processor $nios_system_nios2_processor_oci] +set nios_system_nios2_processor_oci_break_path [format "%s|%s" $nios_system_nios2_processor_oci_path $nios_system_nios2_processor_oci_break] +set nios_system_nios2_processor_ocimem_path [format "%s|%s" $nios_system_nios2_processor_oci_path $nios_system_nios2_processor_ocimem] +set nios_system_nios2_processor_oci_debug_path [format "%s|%s" $nios_system_nios2_processor_oci_path $nios_system_nios2_processor_oci_debug] +set nios_system_nios2_processor_jtag_tck_path [format "%s|%s|%s" $nios_system_nios2_processor_oci_path $nios_system_nios2_processor_wrapper $nios_system_nios2_processor_jtag_tck] +set nios_system_nios2_processor_jtag_sysclk_path [format "%s|%s|%s" $nios_system_nios2_processor_oci_path $nios_system_nios2_processor_wrapper $nios_system_nios2_processor_jtag_sysclk] +set nios_system_nios2_processor_jtag_sr [format "%s|*sr" $nios_system_nios2_processor_jtag_tck_path] + +#************************************************************** +# Set False Paths +#************************************************************** + +set_false_path -from [get_keepers *$nios_system_nios2_processor_oci_break_path|break_readreg*] -to [get_keepers *$nios_system_nios2_processor_jtag_sr*] +set_false_path -from [get_keepers *$nios_system_nios2_processor_oci_debug_path|*resetlatch] -to [get_keepers *$nios_system_nios2_processor_jtag_sr[33]] +set_false_path -from [get_keepers *$nios_system_nios2_processor_oci_debug_path|monitor_ready] -to [get_keepers *$nios_system_nios2_processor_jtag_sr[0]] +set_false_path -from [get_keepers *$nios_system_nios2_processor_oci_debug_path|monitor_error] -to [get_keepers *$nios_system_nios2_processor_jtag_sr[34]] +set_false_path -from [get_keepers *$nios_system_nios2_processor_ocimem_path|*MonDReg*] -to [get_keepers *$nios_system_nios2_processor_jtag_sr*] +set_false_path -from *$nios_system_nios2_processor_jtag_sr* -to *$nios_system_nios2_processor_jtag_sysclk_path|*jdo* +set_false_path -from sld_hub:*|irf_reg* -to *$nios_system_nios2_processor_jtag_sysclk_path|ir* +set_false_path -from sld_hub:*|sld_shadow_jsm:shadow_jsm|state[1] -to *$nios_system_nios2_processor_oci_debug_path|monitor_go diff --git a/db/ip/nios_system/submodules/nios_system_nios2_processor.v b/db/ip/nios_system/submodules/nios_system_nios2_processor.v new file mode 100644 index 0000000..e1640d4 --- /dev/null +++ b/db/ip/nios_system/submodules/nios_system_nios2_processor.v @@ -0,0 +1,5672 @@ +//Legal Notice: (C)2016 Altera Corporation. All rights reserved. Your +//use of Altera Corporation's design tools, logic functions and other +//software and tools, and its AMPP partner logic functions, and any +//output files any of the foregoing (including device programming or +//simulation files), and any associated documentation or information are +//expressly subject to the terms and conditions of the Altera Program +//License Subscription Agreement or other applicable license agreement, +//including, without limitation, that your use is for the sole purpose +//of programming logic devices manufactured by Altera and sold by Altera +//or its authorized distributors. Please refer to the applicable +//agreement for further details. + +// synthesis translate_off +`timescale 1ns / 1ps +// synthesis translate_on + +// turn off superfluous verilog processor warnings +// altera message_level Level1 +// altera message_off 10034 10035 10036 10037 10230 10240 10030 + +module nios_system_nios2_processor_register_bank_a_module ( + // inputs: + clock, + data, + rdaddress, + wraddress, + wren, + + // outputs: + q + ) +; + + parameter lpm_file = "UNUSED"; + + + output [ 31: 0] q; + input clock; + input [ 31: 0] data; + input [ 4: 0] rdaddress; + input [ 4: 0] wraddress; + input wren; + + wire [ 31: 0] q; + wire [ 31: 0] ram_q; + assign q = ram_q; + altsyncram the_altsyncram + ( + .address_a (wraddress), + .address_b (rdaddress), + .clock0 (clock), + .data_a (data), + .q_b (ram_q), + .wren_a (wren) + ); + + defparam the_altsyncram.address_reg_b = "CLOCK0", + the_altsyncram.init_file = lpm_file, + the_altsyncram.maximum_depth = 0, + the_altsyncram.numwords_a = 32, + the_altsyncram.numwords_b = 32, + the_altsyncram.operation_mode = "DUAL_PORT", + the_altsyncram.outdata_reg_b = "UNREGISTERED", + the_altsyncram.ram_block_type = "AUTO", + the_altsyncram.rdcontrol_reg_b = "CLOCK0", + the_altsyncram.read_during_write_mode_mixed_ports = "DONT_CARE", + the_altsyncram.width_a = 32, + the_altsyncram.width_b = 32, + the_altsyncram.widthad_a = 5, + the_altsyncram.widthad_b = 5; + + +endmodule + + +// synthesis translate_off +`timescale 1ns / 1ps +// synthesis translate_on + +// turn off superfluous verilog processor warnings +// altera message_level Level1 +// altera message_off 10034 10035 10036 10037 10230 10240 10030 + +module nios_system_nios2_processor_register_bank_b_module ( + // inputs: + clock, + data, + rdaddress, + wraddress, + wren, + + // outputs: + q + ) +; + + parameter lpm_file = "UNUSED"; + + + output [ 31: 0] q; + input clock; + input [ 31: 0] data; + input [ 4: 0] rdaddress; + input [ 4: 0] wraddress; + input wren; + + wire [ 31: 0] q; + wire [ 31: 0] ram_q; + assign q = ram_q; + altsyncram the_altsyncram + ( + .address_a (wraddress), + .address_b (rdaddress), + .clock0 (clock), + .data_a (data), + .q_b (ram_q), + .wren_a (wren) + ); + + defparam the_altsyncram.address_reg_b = "CLOCK0", + the_altsyncram.init_file = lpm_file, + the_altsyncram.maximum_depth = 0, + the_altsyncram.numwords_a = 32, + the_altsyncram.numwords_b = 32, + the_altsyncram.operation_mode = "DUAL_PORT", + the_altsyncram.outdata_reg_b = "UNREGISTERED", + the_altsyncram.ram_block_type = "AUTO", + the_altsyncram.rdcontrol_reg_b = "CLOCK0", + the_altsyncram.read_during_write_mode_mixed_ports = "DONT_CARE", + the_altsyncram.width_a = 32, + the_altsyncram.width_b = 32, + the_altsyncram.widthad_a = 5, + the_altsyncram.widthad_b = 5; + + +endmodule + + +// synthesis translate_off +`timescale 1ns / 1ps +// synthesis translate_on + +// turn off superfluous verilog processor warnings +// altera message_level Level1 +// altera message_off 10034 10035 10036 10037 10230 10240 10030 + +module nios_system_nios2_processor_nios2_oci_debug ( + // inputs: + clk, + dbrk_break, + debugreq, + hbreak_enabled, + jdo, + jrst_n, + ocireg_ers, + ocireg_mrs, + reset, + st_ready_test_idle, + take_action_ocimem_a, + take_action_ocireg, + xbrk_break, + + // outputs: + debugack, + monitor_error, + monitor_go, + monitor_ready, + oci_hbreak_req, + resetlatch, + resetrequest + ) +; + + output debugack; + output monitor_error; + output monitor_go; + output monitor_ready; + output oci_hbreak_req; + output resetlatch; + output resetrequest; + input clk; + input dbrk_break; + input debugreq; + input hbreak_enabled; + input [ 37: 0] jdo; + input jrst_n; + input ocireg_ers; + input ocireg_mrs; + input reset; + input st_ready_test_idle; + input take_action_ocimem_a; + input take_action_ocireg; + input xbrk_break; + + reg break_on_reset /* synthesis ALTERA_ATTRIBUTE = "SUPPRESS_DA_RULE_INTERNAL=\"D101,R101\"" */; + wire debugack; + reg jtag_break /* synthesis ALTERA_ATTRIBUTE = "SUPPRESS_DA_RULE_INTERNAL=\"D101,R101\"" */; + reg monitor_error /* synthesis ALTERA_ATTRIBUTE = "SUPPRESS_DA_RULE_INTERNAL=D101" */; + reg monitor_go /* synthesis ALTERA_ATTRIBUTE = "SUPPRESS_DA_RULE_INTERNAL=D101" */; + reg monitor_ready /* synthesis ALTERA_ATTRIBUTE = "SUPPRESS_DA_RULE_INTERNAL=D101" */; + wire oci_hbreak_req; + wire reset_sync; + reg resetlatch /* synthesis ALTERA_ATTRIBUTE = "SUPPRESS_DA_RULE_INTERNAL=\"D101,R101\"" */; + reg resetrequest /* synthesis ALTERA_ATTRIBUTE = "SUPPRESS_DA_RULE_INTERNAL=\"D101,R101\"" */; + wire unxcomplemented_resetxx0; + assign unxcomplemented_resetxx0 = jrst_n; + altera_std_synchronizer the_altera_std_synchronizer + ( + .clk (clk), + .din (reset), + .dout (reset_sync), + .reset_n (unxcomplemented_resetxx0) + ); + + defparam the_altera_std_synchronizer.depth = 2; + + always @(posedge clk or negedge jrst_n) + begin + if (jrst_n == 0) + begin + break_on_reset <= 1'b0; + resetrequest <= 1'b0; + jtag_break <= 1'b0; + end + else if (take_action_ocimem_a) + begin + resetrequest <= jdo[22]; + jtag_break <= jdo[21] ? 1 + : jdo[20] ? 0 + : jtag_break; + + break_on_reset <= jdo[19] ? 1 + : jdo[18] ? 0 + : break_on_reset; + + resetlatch <= jdo[24] ? 0 : resetlatch; + end + else if (reset_sync) + begin + jtag_break <= break_on_reset; + resetlatch <= 1; + end + else if (debugreq & ~debugack & break_on_reset) + jtag_break <= 1'b1; + end + + + always @(posedge clk or negedge jrst_n) + begin + if (jrst_n == 0) + begin + monitor_ready <= 1'b0; + monitor_error <= 1'b0; + monitor_go <= 1'b0; + end + else + begin + if (take_action_ocimem_a && jdo[25]) + monitor_ready <= 1'b0; + else if (take_action_ocireg && ocireg_mrs) + monitor_ready <= 1'b1; + if (take_action_ocimem_a && jdo[25]) + monitor_error <= 1'b0; + else if (take_action_ocireg && ocireg_ers) + monitor_error <= 1'b1; + if (take_action_ocimem_a && jdo[23]) + monitor_go <= 1'b1; + else if (st_ready_test_idle) + monitor_go <= 1'b0; + end + end + + + assign oci_hbreak_req = jtag_break | dbrk_break | xbrk_break | debugreq; + assign debugack = ~hbreak_enabled; + +endmodule + + +// synthesis translate_off +`timescale 1ns / 1ps +// synthesis translate_on + +// turn off superfluous verilog processor warnings +// altera message_level Level1 +// altera message_off 10034 10035 10036 10037 10230 10240 10030 + +module nios_system_nios2_processor_ociram_sp_ram_module ( + // inputs: + address, + byteenable, + clock, + data, + wren, + + // outputs: + q + ) +; + + parameter lpm_file = "UNUSED"; + + + output [ 31: 0] q; + input [ 7: 0] address; + input [ 3: 0] byteenable; + input clock; + input [ 31: 0] data; + input wren; + + wire [ 31: 0] q; + wire [ 31: 0] ram_q; + assign q = ram_q; + altsyncram the_altsyncram + ( + .address_a (address), + .byteena_a (byteenable), + .clock0 (clock), + .data_a (data), + .q_a (ram_q), + .wren_a (wren) + ); + + defparam the_altsyncram.init_file = lpm_file, + the_altsyncram.maximum_depth = 0, + the_altsyncram.numwords_a = 256, + the_altsyncram.operation_mode = "SINGLE_PORT", + the_altsyncram.outdata_reg_a = "UNREGISTERED", + the_altsyncram.ram_block_type = "AUTO", + the_altsyncram.width_a = 32, + the_altsyncram.width_byteena_a = 4, + the_altsyncram.widthad_a = 8; + + +endmodule + + +// synthesis translate_off +`timescale 1ns / 1ps +// synthesis translate_on + +// turn off superfluous verilog processor warnings +// altera message_level Level1 +// altera message_off 10034 10035 10036 10037 10230 10240 10030 + +module nios_system_nios2_processor_nios2_ocimem ( + // inputs: + address, + byteenable, + clk, + debugaccess, + jdo, + jrst_n, + read, + take_action_ocimem_a, + take_action_ocimem_b, + take_no_action_ocimem_a, + write, + writedata, + + // outputs: + MonDReg, + ociram_readdata, + waitrequest + ) +; + + output [ 31: 0] MonDReg; + output [ 31: 0] ociram_readdata; + output waitrequest; + input [ 8: 0] address; + input [ 3: 0] byteenable; + input clk; + input debugaccess; + input [ 37: 0] jdo; + input jrst_n; + input read; + input take_action_ocimem_a; + input take_action_ocimem_b; + input take_no_action_ocimem_a; + input write; + input [ 31: 0] writedata; + + reg [ 10: 0] MonAReg /* synthesis ALTERA_ATTRIBUTE = "SUPPRESS_DA_RULE_INTERNAL=\"D101,D103,R101\"" */; + wire [ 8: 0] MonARegAddrInc; + wire MonARegAddrIncAccessingRAM; + reg [ 31: 0] MonDReg /* synthesis ALTERA_ATTRIBUTE = "SUPPRESS_DA_RULE_INTERNAL=\"D101,D103,R101\"" */; + reg avalon_ociram_readdata_ready /* synthesis ALTERA_ATTRIBUTE = "SUPPRESS_DA_RULE_INTERNAL=\"D101,D103,R101\"" */; + wire avalon_ram_wr; + wire [ 31: 0] cfgrom_readdata; + reg jtag_ram_access /* synthesis ALTERA_ATTRIBUTE = "SUPPRESS_DA_RULE_INTERNAL=\"D101,D103,R101\"" */; + reg jtag_ram_rd /* synthesis ALTERA_ATTRIBUTE = "SUPPRESS_DA_RULE_INTERNAL=\"D101,D103,R101\"" */; + reg jtag_ram_rd_d1 /* synthesis ALTERA_ATTRIBUTE = "SUPPRESS_DA_RULE_INTERNAL=\"D101,D103,R101\"" */; + reg jtag_ram_wr /* synthesis ALTERA_ATTRIBUTE = "SUPPRESS_DA_RULE_INTERNAL=\"D101,D103,R101\"" */; + reg jtag_rd /* synthesis ALTERA_ATTRIBUTE = "SUPPRESS_DA_RULE_INTERNAL=\"D101,D103,R101\"" */; + reg jtag_rd_d1 /* synthesis ALTERA_ATTRIBUTE = "SUPPRESS_DA_RULE_INTERNAL=\"D101,D103,R101\"" */; + wire [ 7: 0] ociram_addr; + wire [ 3: 0] ociram_byteenable; + wire [ 31: 0] ociram_readdata; + wire [ 31: 0] ociram_wr_data; + wire ociram_wr_en; + reg waitrequest /* synthesis ALTERA_ATTRIBUTE = "SUPPRESS_DA_RULE_INTERNAL=\"D101,D103,R101\"" */; + always @(posedge clk or negedge jrst_n) + begin + if (jrst_n == 0) + begin + jtag_rd <= 1'b0; + jtag_rd_d1 <= 1'b0; + jtag_ram_wr <= 1'b0; + jtag_ram_rd <= 1'b0; + jtag_ram_rd_d1 <= 1'b0; + jtag_ram_access <= 1'b0; + MonAReg <= 0; + MonDReg <= 0; + waitrequest <= 1'b1; + avalon_ociram_readdata_ready <= 1'b0; + end + else + begin + if (take_no_action_ocimem_a) + begin + MonAReg[10 : 2] <= MonARegAddrInc; + jtag_rd <= 1'b1; + jtag_ram_rd <= MonARegAddrIncAccessingRAM; + jtag_ram_access <= MonARegAddrIncAccessingRAM; + end + else if (take_action_ocimem_a) + begin + MonAReg[10 : 2] <= { jdo[17], + jdo[33 : 26] }; + + jtag_rd <= 1'b1; + jtag_ram_rd <= ~jdo[17]; + jtag_ram_access <= ~jdo[17]; + end + else if (take_action_ocimem_b) + begin + MonAReg[10 : 2] <= MonARegAddrInc; + MonDReg <= jdo[34 : 3]; + jtag_ram_wr <= MonARegAddrIncAccessingRAM; + jtag_ram_access <= MonARegAddrIncAccessingRAM; + end + else + begin + jtag_rd <= 0; + jtag_ram_wr <= 0; + jtag_ram_rd <= 0; + jtag_ram_access <= 0; + if (jtag_rd_d1) + MonDReg <= jtag_ram_rd_d1 ? ociram_readdata : cfgrom_readdata; + end + jtag_rd_d1 <= jtag_rd; + jtag_ram_rd_d1 <= jtag_ram_rd; + if (~waitrequest) + begin + waitrequest <= 1'b1; + avalon_ociram_readdata_ready <= 1'b0; + end + else if (write) + waitrequest <= ~address[8] & jtag_ram_access; + else if (read) + begin + avalon_ociram_readdata_ready <= ~(~address[8] & jtag_ram_access); + waitrequest <= ~avalon_ociram_readdata_ready; + end + else + begin + waitrequest <= 1'b1; + avalon_ociram_readdata_ready <= 1'b0; + end + end + end + + + assign MonARegAddrInc = MonAReg[10 : 2]+1; + assign MonARegAddrIncAccessingRAM = ~MonARegAddrInc[8]; + assign avalon_ram_wr = write & ~address[8] & debugaccess; + assign ociram_addr = jtag_ram_access ? MonAReg[9 : 2] : address[7 : 0]; + assign ociram_wr_data = jtag_ram_access ? MonDReg[31 : 0] : writedata; + assign ociram_byteenable = jtag_ram_access ? 4'b1111 : byteenable; + assign ociram_wr_en = jtag_ram_wr | avalon_ram_wr; +//nios_system_nios2_processor_ociram_sp_ram, which is an nios_sp_ram +nios_system_nios2_processor_ociram_sp_ram_module nios_system_nios2_processor_ociram_sp_ram + ( + .address (ociram_addr), + .byteenable (ociram_byteenable), + .clock (clk), + .data (ociram_wr_data), + .q (ociram_readdata), + .wren (ociram_wr_en) + ); + +//synthesis translate_off +`ifdef NO_PLI +defparam nios_system_nios2_processor_ociram_sp_ram.lpm_file = "nios_system_nios2_processor_ociram_default_contents.dat"; +`else +defparam nios_system_nios2_processor_ociram_sp_ram.lpm_file = "nios_system_nios2_processor_ociram_default_contents.hex"; +`endif +//synthesis translate_on +//synthesis read_comments_as_HDL on +//defparam nios_system_nios2_processor_ociram_sp_ram.lpm_file = "nios_system_nios2_processor_ociram_default_contents.mif"; +//synthesis read_comments_as_HDL off + assign cfgrom_readdata = (MonAReg[4 : 2] == 3'd0)? 32'h00000020 : + (MonAReg[4 : 2] == 3'd1)? 32'h00001313 : + (MonAReg[4 : 2] == 3'd2)? 32'h00040000 : + (MonAReg[4 : 2] == 3'd3)? 32'h00000000 : + (MonAReg[4 : 2] == 3'd4)? 32'h20000000 : + (MonAReg[4 : 2] == 3'd5)? 32'h00000000 : + (MonAReg[4 : 2] == 3'd6)? 32'h00000000 : + 32'h00000000; + + +endmodule + + +// synthesis translate_off +`timescale 1ns / 1ps +// synthesis translate_on + +// turn off superfluous verilog processor warnings +// altera message_level Level1 +// altera message_off 10034 10035 10036 10037 10230 10240 10030 + +module nios_system_nios2_processor_nios2_avalon_reg ( + // inputs: + address, + clk, + debugaccess, + monitor_error, + monitor_go, + monitor_ready, + reset_n, + write, + writedata, + + // outputs: + oci_ienable, + oci_reg_readdata, + oci_single_step_mode, + ocireg_ers, + ocireg_mrs, + take_action_ocireg + ) +; + + output [ 31: 0] oci_ienable; + output [ 31: 0] oci_reg_readdata; + output oci_single_step_mode; + output ocireg_ers; + output ocireg_mrs; + output take_action_ocireg; + input [ 8: 0] address; + input clk; + input debugaccess; + input monitor_error; + input monitor_go; + input monitor_ready; + input reset_n; + input write; + input [ 31: 0] writedata; + + reg [ 31: 0] oci_ienable; + wire oci_reg_00_addressed; + wire oci_reg_01_addressed; + wire [ 31: 0] oci_reg_readdata; + reg oci_single_step_mode; + wire ocireg_ers; + wire ocireg_mrs; + wire ocireg_sstep; + wire take_action_oci_intr_mask_reg; + wire take_action_ocireg; + wire write_strobe; + assign oci_reg_00_addressed = address == 9'h100; + assign oci_reg_01_addressed = address == 9'h101; + assign write_strobe = write & debugaccess; + assign take_action_ocireg = write_strobe & oci_reg_00_addressed; + assign take_action_oci_intr_mask_reg = write_strobe & oci_reg_01_addressed; + assign ocireg_ers = writedata[1]; + assign ocireg_mrs = writedata[0]; + assign ocireg_sstep = writedata[3]; + assign oci_reg_readdata = oci_reg_00_addressed ? {28'b0, oci_single_step_mode, monitor_go, + monitor_ready, monitor_error} : + oci_reg_01_addressed ? oci_ienable : + 32'b0; + + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + oci_single_step_mode <= 1'b0; + else if (take_action_ocireg) + oci_single_step_mode <= ocireg_sstep; + end + + + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + oci_ienable <= 32'b00000000000000000000000000100000; + else if (take_action_oci_intr_mask_reg) + oci_ienable <= writedata | ~(32'b00000000000000000000000000100000); + end + + + +endmodule + + +// synthesis translate_off +`timescale 1ns / 1ps +// synthesis translate_on + +// turn off superfluous verilog processor warnings +// altera message_level Level1 +// altera message_off 10034 10035 10036 10037 10230 10240 10030 + +module nios_system_nios2_processor_nios2_oci_break ( + // inputs: + clk, + dbrk_break, + dbrk_goto0, + dbrk_goto1, + jdo, + jrst_n, + reset_n, + take_action_break_a, + take_action_break_b, + take_action_break_c, + take_no_action_break_a, + take_no_action_break_b, + take_no_action_break_c, + xbrk_goto0, + xbrk_goto1, + + // outputs: + break_readreg, + dbrk_hit0_latch, + dbrk_hit1_latch, + dbrk_hit2_latch, + dbrk_hit3_latch, + trigbrktype, + trigger_state_0, + trigger_state_1, + xbrk_ctrl0, + xbrk_ctrl1, + xbrk_ctrl2, + xbrk_ctrl3 + ) +; + + output [ 31: 0] break_readreg; + output dbrk_hit0_latch; + output dbrk_hit1_latch; + output dbrk_hit2_latch; + output dbrk_hit3_latch; + output trigbrktype; + output trigger_state_0; + output trigger_state_1; + output [ 7: 0] xbrk_ctrl0; + output [ 7: 0] xbrk_ctrl1; + output [ 7: 0] xbrk_ctrl2; + output [ 7: 0] xbrk_ctrl3; + input clk; + input dbrk_break; + input dbrk_goto0; + input dbrk_goto1; + input [ 37: 0] jdo; + input jrst_n; + input reset_n; + input take_action_break_a; + input take_action_break_b; + input take_action_break_c; + input take_no_action_break_a; + input take_no_action_break_b; + input take_no_action_break_c; + input xbrk_goto0; + input xbrk_goto1; + + wire [ 3: 0] break_a_wpr; + wire [ 1: 0] break_a_wpr_high_bits; + wire [ 1: 0] break_a_wpr_low_bits; + wire [ 1: 0] break_b_rr; + wire [ 1: 0] break_c_rr; + reg [ 31: 0] break_readreg /* synthesis ALTERA_ATTRIBUTE = "SUPPRESS_DA_RULE_INTERNAL=\"D101,R101\"" */; + wire dbrk0_high_value; + wire dbrk0_low_value; + wire dbrk1_high_value; + wire dbrk1_low_value; + wire dbrk2_high_value; + wire dbrk2_low_value; + wire dbrk3_high_value; + wire dbrk3_low_value; + wire dbrk_hit0_latch; + wire dbrk_hit1_latch; + wire dbrk_hit2_latch; + wire dbrk_hit3_latch; + wire take_action_any_break; + reg trigbrktype /* synthesis ALTERA_ATTRIBUTE = "SUPPRESS_DA_RULE_INTERNAL=\"D101,R101\"" */; + reg trigger_state; + wire trigger_state_0; + wire trigger_state_1; + wire [ 31: 0] xbrk0_value; + wire [ 31: 0] xbrk1_value; + wire [ 31: 0] xbrk2_value; + wire [ 31: 0] xbrk3_value; + reg [ 7: 0] xbrk_ctrl0 /* synthesis ALTERA_ATTRIBUTE = "SUPPRESS_DA_RULE_INTERNAL=\"D101,R101\"" */; + reg [ 7: 0] xbrk_ctrl1 /* synthesis ALTERA_ATTRIBUTE = "SUPPRESS_DA_RULE_INTERNAL=\"D101,R101\"" */; + reg [ 7: 0] xbrk_ctrl2 /* synthesis ALTERA_ATTRIBUTE = "SUPPRESS_DA_RULE_INTERNAL=\"D101,R101\"" */; + reg [ 7: 0] xbrk_ctrl3 /* synthesis ALTERA_ATTRIBUTE = "SUPPRESS_DA_RULE_INTERNAL=\"D101,R101\"" */; + assign break_a_wpr = jdo[35 : 32]; + assign break_a_wpr_high_bits = break_a_wpr[3 : 2]; + assign break_a_wpr_low_bits = break_a_wpr[1 : 0]; + assign break_b_rr = jdo[33 : 32]; + assign break_c_rr = jdo[33 : 32]; + assign take_action_any_break = take_action_break_a | take_action_break_b | take_action_break_c; + always @(posedge clk or negedge jrst_n) + begin + if (jrst_n == 0) + begin + xbrk_ctrl0 <= 0; + xbrk_ctrl1 <= 0; + xbrk_ctrl2 <= 0; + xbrk_ctrl3 <= 0; + trigbrktype <= 0; + end + else + begin + if (take_action_any_break) + trigbrktype <= 0; + else if (dbrk_break) + trigbrktype <= 1; + if (take_action_break_b) + begin + if ((break_b_rr == 2'b00) && (0 >= 1)) + begin + xbrk_ctrl0[0] <= jdo[27]; + xbrk_ctrl0[1] <= jdo[28]; + xbrk_ctrl0[2] <= jdo[29]; + xbrk_ctrl0[3] <= jdo[30]; + xbrk_ctrl0[4] <= jdo[21]; + xbrk_ctrl0[5] <= jdo[20]; + xbrk_ctrl0[6] <= jdo[19]; + xbrk_ctrl0[7] <= jdo[18]; + end + if ((break_b_rr == 2'b01) && (0 >= 2)) + begin + xbrk_ctrl1[0] <= jdo[27]; + xbrk_ctrl1[1] <= jdo[28]; + xbrk_ctrl1[2] <= jdo[29]; + xbrk_ctrl1[3] <= jdo[30]; + xbrk_ctrl1[4] <= jdo[21]; + xbrk_ctrl1[5] <= jdo[20]; + xbrk_ctrl1[6] <= jdo[19]; + xbrk_ctrl1[7] <= jdo[18]; + end + if ((break_b_rr == 2'b10) && (0 >= 3)) + begin + xbrk_ctrl2[0] <= jdo[27]; + xbrk_ctrl2[1] <= jdo[28]; + xbrk_ctrl2[2] <= jdo[29]; + xbrk_ctrl2[3] <= jdo[30]; + xbrk_ctrl2[4] <= jdo[21]; + xbrk_ctrl2[5] <= jdo[20]; + xbrk_ctrl2[6] <= jdo[19]; + xbrk_ctrl2[7] <= jdo[18]; + end + if ((break_b_rr == 2'b11) && (0 >= 4)) + begin + xbrk_ctrl3[0] <= jdo[27]; + xbrk_ctrl3[1] <= jdo[28]; + xbrk_ctrl3[2] <= jdo[29]; + xbrk_ctrl3[3] <= jdo[30]; + xbrk_ctrl3[4] <= jdo[21]; + xbrk_ctrl3[5] <= jdo[20]; + xbrk_ctrl3[6] <= jdo[19]; + xbrk_ctrl3[7] <= jdo[18]; + end + end + end + end + + + assign dbrk_hit0_latch = 1'b0; + assign dbrk0_low_value = 0; + assign dbrk0_high_value = 0; + assign dbrk_hit1_latch = 1'b0; + assign dbrk1_low_value = 0; + assign dbrk1_high_value = 0; + assign dbrk_hit2_latch = 1'b0; + assign dbrk2_low_value = 0; + assign dbrk2_high_value = 0; + assign dbrk_hit3_latch = 1'b0; + assign dbrk3_low_value = 0; + assign dbrk3_high_value = 0; + assign xbrk0_value = 32'b0; + assign xbrk1_value = 32'b0; + assign xbrk2_value = 32'b0; + assign xbrk3_value = 32'b0; + always @(posedge clk or negedge jrst_n) + begin + if (jrst_n == 0) + break_readreg <= 32'b0; + else if (take_action_any_break) + break_readreg <= jdo[31 : 0]; + else if (take_no_action_break_a) + case (break_a_wpr_high_bits) + + 2'd0: begin + case (break_a_wpr_low_bits) // synthesis full_case + + 2'd0: begin + break_readreg <= xbrk0_value; + end // 2'd0 + + 2'd1: begin + break_readreg <= xbrk1_value; + end // 2'd1 + + 2'd2: begin + break_readreg <= xbrk2_value; + end // 2'd2 + + 2'd3: begin + break_readreg <= xbrk3_value; + end // 2'd3 + + endcase // break_a_wpr_low_bits + end // 2'd0 + + 2'd1: begin + break_readreg <= 32'b0; + end // 2'd1 + + 2'd2: begin + case (break_a_wpr_low_bits) // synthesis full_case + + 2'd0: begin + break_readreg <= dbrk0_low_value; + end // 2'd0 + + 2'd1: begin + break_readreg <= dbrk1_low_value; + end // 2'd1 + + 2'd2: begin + break_readreg <= dbrk2_low_value; + end // 2'd2 + + 2'd3: begin + break_readreg <= dbrk3_low_value; + end // 2'd3 + + endcase // break_a_wpr_low_bits + end // 2'd2 + + 2'd3: begin + case (break_a_wpr_low_bits) // synthesis full_case + + 2'd0: begin + break_readreg <= dbrk0_high_value; + end // 2'd0 + + 2'd1: begin + break_readreg <= dbrk1_high_value; + end // 2'd1 + + 2'd2: begin + break_readreg <= dbrk2_high_value; + end // 2'd2 + + 2'd3: begin + break_readreg <= dbrk3_high_value; + end // 2'd3 + + endcase // break_a_wpr_low_bits + end // 2'd3 + + endcase // break_a_wpr_high_bits + else if (take_no_action_break_b) + break_readreg <= jdo[31 : 0]; + else if (take_no_action_break_c) + break_readreg <= jdo[31 : 0]; + end + + + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + trigger_state <= 0; + else if (trigger_state_1 & (xbrk_goto0 | dbrk_goto0)) + trigger_state <= 0; + else if (trigger_state_0 & (xbrk_goto1 | dbrk_goto1)) + trigger_state <= -1; + end + + + assign trigger_state_0 = ~trigger_state; + assign trigger_state_1 = trigger_state; + +endmodule + + +// synthesis translate_off +`timescale 1ns / 1ps +// synthesis translate_on + +// turn off superfluous verilog processor warnings +// altera message_level Level1 +// altera message_off 10034 10035 10036 10037 10230 10240 10030 + +module nios_system_nios2_processor_nios2_oci_xbrk ( + // inputs: + D_valid, + E_valid, + F_pc, + clk, + reset_n, + trigger_state_0, + trigger_state_1, + xbrk_ctrl0, + xbrk_ctrl1, + xbrk_ctrl2, + xbrk_ctrl3, + + // outputs: + xbrk_break, + xbrk_goto0, + xbrk_goto1, + xbrk_traceoff, + xbrk_traceon, + xbrk_trigout + ) +; + + output xbrk_break; + output xbrk_goto0; + output xbrk_goto1; + output xbrk_traceoff; + output xbrk_traceon; + output xbrk_trigout; + input D_valid; + input E_valid; + input [ 16: 0] F_pc; + input clk; + input reset_n; + input trigger_state_0; + input trigger_state_1; + input [ 7: 0] xbrk_ctrl0; + input [ 7: 0] xbrk_ctrl1; + input [ 7: 0] xbrk_ctrl2; + input [ 7: 0] xbrk_ctrl3; + + wire D_cpu_addr_en; + wire E_cpu_addr_en; + reg E_xbrk_goto0; + reg E_xbrk_goto1; + reg E_xbrk_traceoff; + reg E_xbrk_traceon; + reg E_xbrk_trigout; + wire [ 18: 0] cpu_i_address; + wire xbrk0_armed; + wire xbrk0_break_hit; + wire xbrk0_goto0_hit; + wire xbrk0_goto1_hit; + wire xbrk0_toff_hit; + wire xbrk0_ton_hit; + wire xbrk0_tout_hit; + wire xbrk1_armed; + wire xbrk1_break_hit; + wire xbrk1_goto0_hit; + wire xbrk1_goto1_hit; + wire xbrk1_toff_hit; + wire xbrk1_ton_hit; + wire xbrk1_tout_hit; + wire xbrk2_armed; + wire xbrk2_break_hit; + wire xbrk2_goto0_hit; + wire xbrk2_goto1_hit; + wire xbrk2_toff_hit; + wire xbrk2_ton_hit; + wire xbrk2_tout_hit; + wire xbrk3_armed; + wire xbrk3_break_hit; + wire xbrk3_goto0_hit; + wire xbrk3_goto1_hit; + wire xbrk3_toff_hit; + wire xbrk3_ton_hit; + wire xbrk3_tout_hit; + reg xbrk_break; + wire xbrk_break_hit; + wire xbrk_goto0; + wire xbrk_goto0_hit; + wire xbrk_goto1; + wire xbrk_goto1_hit; + wire xbrk_toff_hit; + wire xbrk_ton_hit; + wire xbrk_tout_hit; + wire xbrk_traceoff; + wire xbrk_traceon; + wire xbrk_trigout; + assign cpu_i_address = {F_pc, 2'b00}; + assign D_cpu_addr_en = D_valid; + assign E_cpu_addr_en = E_valid; + assign xbrk0_break_hit = 0; + assign xbrk0_ton_hit = 0; + assign xbrk0_toff_hit = 0; + assign xbrk0_tout_hit = 0; + assign xbrk0_goto0_hit = 0; + assign xbrk0_goto1_hit = 0; + assign xbrk1_break_hit = 0; + assign xbrk1_ton_hit = 0; + assign xbrk1_toff_hit = 0; + assign xbrk1_tout_hit = 0; + assign xbrk1_goto0_hit = 0; + assign xbrk1_goto1_hit = 0; + assign xbrk2_break_hit = 0; + assign xbrk2_ton_hit = 0; + assign xbrk2_toff_hit = 0; + assign xbrk2_tout_hit = 0; + assign xbrk2_goto0_hit = 0; + assign xbrk2_goto1_hit = 0; + assign xbrk3_break_hit = 0; + assign xbrk3_ton_hit = 0; + assign xbrk3_toff_hit = 0; + assign xbrk3_tout_hit = 0; + assign xbrk3_goto0_hit = 0; + assign xbrk3_goto1_hit = 0; + assign xbrk_break_hit = (xbrk0_break_hit) | (xbrk1_break_hit) | (xbrk2_break_hit) | (xbrk3_break_hit); + assign xbrk_ton_hit = (xbrk0_ton_hit) | (xbrk1_ton_hit) | (xbrk2_ton_hit) | (xbrk3_ton_hit); + assign xbrk_toff_hit = (xbrk0_toff_hit) | (xbrk1_toff_hit) | (xbrk2_toff_hit) | (xbrk3_toff_hit); + assign xbrk_tout_hit = (xbrk0_tout_hit) | (xbrk1_tout_hit) | (xbrk2_tout_hit) | (xbrk3_tout_hit); + assign xbrk_goto0_hit = (xbrk0_goto0_hit) | (xbrk1_goto0_hit) | (xbrk2_goto0_hit) | (xbrk3_goto0_hit); + assign xbrk_goto1_hit = (xbrk0_goto1_hit) | (xbrk1_goto1_hit) | (xbrk2_goto1_hit) | (xbrk3_goto1_hit); + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + xbrk_break <= 0; + else if (E_cpu_addr_en) + xbrk_break <= xbrk_break_hit; + end + + + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + E_xbrk_traceon <= 0; + else if (E_cpu_addr_en) + E_xbrk_traceon <= xbrk_ton_hit; + end + + + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + E_xbrk_traceoff <= 0; + else if (E_cpu_addr_en) + E_xbrk_traceoff <= xbrk_toff_hit; + end + + + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + E_xbrk_trigout <= 0; + else if (E_cpu_addr_en) + E_xbrk_trigout <= xbrk_tout_hit; + end + + + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + E_xbrk_goto0 <= 0; + else if (E_cpu_addr_en) + E_xbrk_goto0 <= xbrk_goto0_hit; + end + + + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + E_xbrk_goto1 <= 0; + else if (E_cpu_addr_en) + E_xbrk_goto1 <= xbrk_goto1_hit; + end + + + assign xbrk_traceon = 1'b0; + assign xbrk_traceoff = 1'b0; + assign xbrk_trigout = 1'b0; + assign xbrk_goto0 = 1'b0; + assign xbrk_goto1 = 1'b0; + assign xbrk0_armed = (xbrk_ctrl0[4] & trigger_state_0) || + (xbrk_ctrl0[5] & trigger_state_1); + + assign xbrk1_armed = (xbrk_ctrl1[4] & trigger_state_0) || + (xbrk_ctrl1[5] & trigger_state_1); + + assign xbrk2_armed = (xbrk_ctrl2[4] & trigger_state_0) || + (xbrk_ctrl2[5] & trigger_state_1); + + assign xbrk3_armed = (xbrk_ctrl3[4] & trigger_state_0) || + (xbrk_ctrl3[5] & trigger_state_1); + + +endmodule + + +// synthesis translate_off +`timescale 1ns / 1ps +// synthesis translate_on + +// turn off superfluous verilog processor warnings +// altera message_level Level1 +// altera message_off 10034 10035 10036 10037 10230 10240 10030 + +module nios_system_nios2_processor_nios2_oci_dbrk ( + // inputs: + E_st_data, + av_ld_data_aligned_filtered, + clk, + d_address, + d_read, + d_waitrequest, + d_write, + debugack, + reset_n, + + // outputs: + cpu_d_address, + cpu_d_read, + cpu_d_readdata, + cpu_d_wait, + cpu_d_write, + cpu_d_writedata, + dbrk_break, + dbrk_goto0, + dbrk_goto1, + dbrk_traceme, + dbrk_traceoff, + dbrk_traceon, + dbrk_trigout + ) +; + + output [ 18: 0] cpu_d_address; + output cpu_d_read; + output [ 31: 0] cpu_d_readdata; + output cpu_d_wait; + output cpu_d_write; + output [ 31: 0] cpu_d_writedata; + output dbrk_break; + output dbrk_goto0; + output dbrk_goto1; + output dbrk_traceme; + output dbrk_traceoff; + output dbrk_traceon; + output dbrk_trigout; + input [ 31: 0] E_st_data; + input [ 31: 0] av_ld_data_aligned_filtered; + input clk; + input [ 18: 0] d_address; + input d_read; + input d_waitrequest; + input d_write; + input debugack; + input reset_n; + + wire [ 18: 0] cpu_d_address; + wire cpu_d_read; + wire [ 31: 0] cpu_d_readdata; + wire cpu_d_wait; + wire cpu_d_write; + wire [ 31: 0] cpu_d_writedata; + wire dbrk0_armed; + wire dbrk0_break_pulse; + wire dbrk0_goto0; + wire dbrk0_goto1; + wire dbrk0_traceme; + wire dbrk0_traceoff; + wire dbrk0_traceon; + wire dbrk0_trigout; + wire dbrk1_armed; + wire dbrk1_break_pulse; + wire dbrk1_goto0; + wire dbrk1_goto1; + wire dbrk1_traceme; + wire dbrk1_traceoff; + wire dbrk1_traceon; + wire dbrk1_trigout; + wire dbrk2_armed; + wire dbrk2_break_pulse; + wire dbrk2_goto0; + wire dbrk2_goto1; + wire dbrk2_traceme; + wire dbrk2_traceoff; + wire dbrk2_traceon; + wire dbrk2_trigout; + wire dbrk3_armed; + wire dbrk3_break_pulse; + wire dbrk3_goto0; + wire dbrk3_goto1; + wire dbrk3_traceme; + wire dbrk3_traceoff; + wire dbrk3_traceon; + wire dbrk3_trigout; + reg dbrk_break; + reg dbrk_break_pulse; + wire [ 31: 0] dbrk_data; + reg dbrk_goto0; + reg dbrk_goto1; + reg dbrk_traceme; + reg dbrk_traceoff; + reg dbrk_traceon; + reg dbrk_trigout; + assign cpu_d_address = d_address; + assign cpu_d_readdata = av_ld_data_aligned_filtered; + assign cpu_d_read = d_read; + assign cpu_d_writedata = E_st_data; + assign cpu_d_write = d_write; + assign cpu_d_wait = d_waitrequest; + assign dbrk_data = cpu_d_write ? cpu_d_writedata : cpu_d_readdata; + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + dbrk_break <= 0; + else + dbrk_break <= dbrk_break ? ~debugack + : dbrk_break_pulse; + + end + + + assign dbrk0_armed = 1'b0; + assign dbrk0_trigout = 1'b0; + assign dbrk0_break_pulse = 1'b0; + assign dbrk0_traceoff = 1'b0; + assign dbrk0_traceon = 1'b0; + assign dbrk0_traceme = 1'b0; + assign dbrk0_goto0 = 1'b0; + assign dbrk0_goto1 = 1'b0; + assign dbrk1_armed = 1'b0; + assign dbrk1_trigout = 1'b0; + assign dbrk1_break_pulse = 1'b0; + assign dbrk1_traceoff = 1'b0; + assign dbrk1_traceon = 1'b0; + assign dbrk1_traceme = 1'b0; + assign dbrk1_goto0 = 1'b0; + assign dbrk1_goto1 = 1'b0; + assign dbrk2_armed = 1'b0; + assign dbrk2_trigout = 1'b0; + assign dbrk2_break_pulse = 1'b0; + assign dbrk2_traceoff = 1'b0; + assign dbrk2_traceon = 1'b0; + assign dbrk2_traceme = 1'b0; + assign dbrk2_goto0 = 1'b0; + assign dbrk2_goto1 = 1'b0; + assign dbrk3_armed = 1'b0; + assign dbrk3_trigout = 1'b0; + assign dbrk3_break_pulse = 1'b0; + assign dbrk3_traceoff = 1'b0; + assign dbrk3_traceon = 1'b0; + assign dbrk3_traceme = 1'b0; + assign dbrk3_goto0 = 1'b0; + assign dbrk3_goto1 = 1'b0; + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + begin + dbrk_trigout <= 0; + dbrk_break_pulse <= 0; + dbrk_traceoff <= 0; + dbrk_traceon <= 0; + dbrk_traceme <= 0; + dbrk_goto0 <= 0; + dbrk_goto1 <= 0; + end + else + begin + dbrk_trigout <= dbrk0_trigout | dbrk1_trigout | dbrk2_trigout | dbrk3_trigout; + dbrk_break_pulse <= dbrk0_break_pulse | dbrk1_break_pulse | dbrk2_break_pulse | dbrk3_break_pulse; + dbrk_traceoff <= dbrk0_traceoff | dbrk1_traceoff | dbrk2_traceoff | dbrk3_traceoff; + dbrk_traceon <= dbrk0_traceon | dbrk1_traceon | dbrk2_traceon | dbrk3_traceon; + dbrk_traceme <= dbrk0_traceme | dbrk1_traceme | dbrk2_traceme | dbrk3_traceme; + dbrk_goto0 <= dbrk0_goto0 | dbrk1_goto0 | dbrk2_goto0 | dbrk3_goto0; + dbrk_goto1 <= dbrk0_goto1 | dbrk1_goto1 | dbrk2_goto1 | dbrk3_goto1; + end + end + + + +endmodule + + +// synthesis translate_off +`timescale 1ns / 1ps +// synthesis translate_on + +// turn off superfluous verilog processor warnings +// altera message_level Level1 +// altera message_off 10034 10035 10036 10037 10230 10240 10030 + +module nios_system_nios2_processor_nios2_oci_itrace ( + // inputs: + clk, + dbrk_traceoff, + dbrk_traceon, + jdo, + jrst_n, + take_action_tracectrl, + trc_enb, + xbrk_traceoff, + xbrk_traceon, + xbrk_wrap_traceoff, + + // outputs: + dct_buffer, + dct_count, + itm, + trc_ctrl, + trc_on + ) +; + + output [ 29: 0] dct_buffer; + output [ 3: 0] dct_count; + output [ 35: 0] itm; + output [ 15: 0] trc_ctrl; + output trc_on; + input clk; + input dbrk_traceoff; + input dbrk_traceon; + input [ 15: 0] jdo; + input jrst_n; + input take_action_tracectrl; + input trc_enb; + input xbrk_traceoff; + input xbrk_traceon; + input xbrk_wrap_traceoff; + + wire curr_pid; + reg [ 29: 0] dct_buffer /* synthesis ALTERA_ATTRIBUTE = "SUPPRESS_DA_RULE_INTERNAL=R101" */; + wire [ 1: 0] dct_code; + reg [ 3: 0] dct_count /* synthesis ALTERA_ATTRIBUTE = "SUPPRESS_DA_RULE_INTERNAL=R101" */; + wire dct_is_taken; + wire [ 31: 0] excaddr; + wire instr_retired; + wire is_advanced_exception; + wire is_cond_dct; + wire is_dct; + wire is_exception_no_break; + wire is_fast_tlb_miss_exception; + wire is_idct; + reg [ 35: 0] itm /* synthesis ALTERA_ATTRIBUTE = "SUPPRESS_DA_RULE_INTERNAL=R101" */; + wire not_in_debug_mode; + reg pending_curr_pid /* synthesis ALTERA_ATTRIBUTE = "SUPPRESS_DA_RULE_INTERNAL=R101" */; + reg [ 31: 0] pending_excaddr /* synthesis ALTERA_ATTRIBUTE = "SUPPRESS_DA_RULE_INTERNAL=R101" */; + reg pending_exctype /* synthesis ALTERA_ATTRIBUTE = "SUPPRESS_DA_RULE_INTERNAL=R101" */; + reg [ 3: 0] pending_frametype /* synthesis ALTERA_ATTRIBUTE = "SUPPRESS_DA_RULE_INTERNAL=R101" */; + reg pending_prev_pid /* synthesis ALTERA_ATTRIBUTE = "SUPPRESS_DA_RULE_INTERNAL=R101" */; + reg prev_pid /* synthesis ALTERA_ATTRIBUTE = "SUPPRESS_DA_RULE_INTERNAL=R101" */; + reg prev_pid_valid /* synthesis ALTERA_ATTRIBUTE = "SUPPRESS_DA_RULE_INTERNAL=R101" */; + wire record_dct_outcome_in_sync; + wire record_itrace; + wire [ 31: 0] retired_pcb; + reg snapped_curr_pid /* synthesis ALTERA_ATTRIBUTE = "SUPPRESS_DA_RULE_INTERNAL=R101" */; + reg snapped_pid /* synthesis ALTERA_ATTRIBUTE = "SUPPRESS_DA_RULE_INTERNAL=R101" */; + reg snapped_prev_pid /* synthesis ALTERA_ATTRIBUTE = "SUPPRESS_DA_RULE_INTERNAL=R101" */; + wire [ 1: 0] sync_code; + wire [ 6: 0] sync_interval; + wire sync_pending; + reg [ 6: 0] sync_timer /* synthesis ALTERA_ATTRIBUTE = "SUPPRESS_DA_RULE_INTERNAL=R101" */; + wire [ 6: 0] sync_timer_next; + reg trc_clear /* synthesis ALTERA_ATTRIBUTE = "SUPPRESS_DA_RULE_INTERNAL=D101" */; + wire [ 15: 0] trc_ctrl; + reg [ 10: 0] trc_ctrl_reg /* synthesis ALTERA_ATTRIBUTE = "SUPPRESS_DA_RULE_INTERNAL=\"D101,D103,R101\"" */; + wire trc_on; + assign is_cond_dct = 1'b0; + assign is_dct = 1'b0; + assign dct_is_taken = 1'b0; + assign is_idct = 1'b0; + assign retired_pcb = 32'b0; + assign not_in_debug_mode = 1'b0; + assign instr_retired = 1'b0; + assign is_advanced_exception = 1'b0; + assign is_exception_no_break = 1'b0; + assign is_fast_tlb_miss_exception = 1'b0; + assign curr_pid = 1'b0; + assign excaddr = 32'b0; + assign sync_code = trc_ctrl[3 : 2]; + assign sync_interval = { sync_code[1] & sync_code[0], 1'b0, sync_code[1] & ~sync_code[0], 1'b0, ~sync_code[1] & sync_code[0], 2'b00 }; + assign sync_pending = sync_timer == 0; + assign record_dct_outcome_in_sync = dct_is_taken & sync_pending; + assign sync_timer_next = sync_pending ? sync_timer : (sync_timer - 1); + assign record_itrace = trc_on & trc_ctrl[4]; + assign dct_code = {is_cond_dct, dct_is_taken}; + always @(posedge clk or negedge jrst_n) + begin + if (jrst_n == 0) + trc_clear <= 0; + else + trc_clear <= ~trc_enb & + take_action_tracectrl & jdo[4]; + + end + + + always @(posedge clk or negedge jrst_n) + begin + if (jrst_n == 0) + begin + itm <= 0; + dct_buffer <= 0; + dct_count <= 0; + sync_timer <= 0; + pending_frametype <= 4'b0000; + pending_exctype <= 1'b0; + pending_excaddr <= 0; + prev_pid <= 0; + prev_pid_valid <= 0; + snapped_pid <= 0; + snapped_curr_pid <= 0; + snapped_prev_pid <= 0; + pending_curr_pid <= 0; + pending_prev_pid <= 0; + end + else if (trc_clear || (!0 && !0)) + begin + itm <= 0; + dct_buffer <= 0; + dct_count <= 0; + sync_timer <= 0; + pending_frametype <= 4'b0000; + pending_exctype <= 1'b0; + pending_excaddr <= 0; + prev_pid <= 0; + prev_pid_valid <= 0; + snapped_pid <= 0; + snapped_curr_pid <= 0; + snapped_prev_pid <= 0; + pending_curr_pid <= 0; + pending_prev_pid <= 0; + end + else + begin + if (!prev_pid_valid) + begin + prev_pid <= curr_pid; + prev_pid_valid <= 1; + end + if ((curr_pid != prev_pid) & prev_pid_valid & !snapped_pid) + begin + snapped_pid <= 1; + snapped_curr_pid <= curr_pid; + snapped_prev_pid <= prev_pid; + prev_pid <= curr_pid; + prev_pid_valid <= 1; + end + if (instr_retired | is_advanced_exception) + begin + if (~record_itrace) + pending_frametype <= 4'b1010; + else if (is_exception_no_break) + begin + pending_frametype <= 4'b0010; + pending_excaddr <= excaddr; + if (is_fast_tlb_miss_exception) + pending_exctype <= 1'b1; + else + pending_exctype <= 1'b0; + end + else if (is_idct) + pending_frametype <= 4'b1001; + else if (record_dct_outcome_in_sync) + pending_frametype <= 4'b1000; + else if (!is_dct & snapped_pid) + begin + pending_frametype <= 4'b0011; + pending_curr_pid <= snapped_curr_pid; + pending_prev_pid <= snapped_prev_pid; + snapped_pid <= 0; + end + else + pending_frametype <= 4'b0000; + if ((dct_count != 0) & + (~record_itrace | + is_exception_no_break | + is_idct | + record_dct_outcome_in_sync | + (!is_dct & snapped_pid))) + begin + itm <= {4'b0001, dct_buffer, 2'b00}; + dct_buffer <= 0; + dct_count <= 0; + sync_timer <= sync_timer_next; + end + else + begin + if (record_itrace & (is_dct & (dct_count != 4'd15)) & ~record_dct_outcome_in_sync & ~is_advanced_exception) + begin + dct_buffer <= {dct_code, dct_buffer[29 : 2]}; + dct_count <= dct_count + 1; + end + if (record_itrace & (pending_frametype == 4'b0010)) + itm <= {4'b0010, pending_excaddr[31 : 1], pending_exctype}; + else if (record_itrace & ( + (pending_frametype == 4'b1000) | + (pending_frametype == 4'b1010) | + (pending_frametype == 4'b1001))) + begin + itm <= {pending_frametype, retired_pcb}; + sync_timer <= sync_interval; + if (0 & + ((pending_frametype == 4'b1000) | (pending_frametype == 4'b1010)) & + !snapped_pid & prev_pid_valid) + begin + snapped_pid <= 1; + snapped_curr_pid <= curr_pid; + snapped_prev_pid <= prev_pid; + end + end + else if (record_itrace & + 0 & (pending_frametype == 4'b0011)) + itm <= {4'b0011, 2'b00, pending_prev_pid, 2'b00, pending_curr_pid}; + else if (record_itrace & is_dct) + begin + if (dct_count == 4'd15) + begin + itm <= {4'b0001, dct_code, dct_buffer}; + dct_buffer <= 0; + dct_count <= 0; + sync_timer <= sync_timer_next; + end + else + itm <= 4'b0000; + end + else + itm <= {4'b0000, 32'b0}; + end + end + else + itm <= {4'b0000, 32'b0}; + end + end + + + always @(posedge clk or negedge jrst_n) + begin + if (jrst_n == 0) + begin + trc_ctrl_reg[0] <= 1'b0; + trc_ctrl_reg[1] <= 1'b0; + trc_ctrl_reg[3 : 2] <= 2'b00; + trc_ctrl_reg[4] <= 1'b0; + trc_ctrl_reg[7 : 5] <= 3'b000; + trc_ctrl_reg[8] <= 0; + trc_ctrl_reg[9] <= 1'b0; + trc_ctrl_reg[10] <= 1'b0; + end + else if (take_action_tracectrl) + begin + trc_ctrl_reg[0] <= jdo[5]; + trc_ctrl_reg[1] <= jdo[6]; + trc_ctrl_reg[3 : 2] <= jdo[8 : 7]; + trc_ctrl_reg[4] <= jdo[9]; + trc_ctrl_reg[9] <= jdo[14]; + trc_ctrl_reg[10] <= jdo[2]; + if (0) + trc_ctrl_reg[7 : 5] <= jdo[12 : 10]; + if (0 & 0) + trc_ctrl_reg[8] <= jdo[13]; + end + else if (xbrk_wrap_traceoff) + begin + trc_ctrl_reg[1] <= 0; + trc_ctrl_reg[0] <= 0; + end + else if (dbrk_traceoff | xbrk_traceoff) + trc_ctrl_reg[1] <= 0; + else if (trc_ctrl_reg[0] & + (dbrk_traceon | xbrk_traceon)) + trc_ctrl_reg[1] <= 1; + end + + + assign trc_ctrl = (0 || 0) ? {6'b000000, trc_ctrl_reg} : 0; + assign trc_on = trc_ctrl[1] & (trc_ctrl[9] | not_in_debug_mode); + +endmodule + + +// synthesis translate_off +`timescale 1ns / 1ps +// synthesis translate_on + +// turn off superfluous verilog processor warnings +// altera message_level Level1 +// altera message_off 10034 10035 10036 10037 10230 10240 10030 + +module nios_system_nios2_processor_nios2_oci_td_mode ( + // inputs: + ctrl, + + // outputs: + td_mode + ) +; + + output [ 3: 0] td_mode; + input [ 8: 0] ctrl; + + wire [ 2: 0] ctrl_bits_for_mux; + reg [ 3: 0] td_mode; + assign ctrl_bits_for_mux = ctrl[7 : 5]; + always @(ctrl_bits_for_mux) + begin + case (ctrl_bits_for_mux) + + 3'b000: begin + td_mode = 4'b0000; + end // 3'b000 + + 3'b001: begin + td_mode = 4'b1000; + end // 3'b001 + + 3'b010: begin + td_mode = 4'b0100; + end // 3'b010 + + 3'b011: begin + td_mode = 4'b1100; + end // 3'b011 + + 3'b100: begin + td_mode = 4'b0010; + end // 3'b100 + + 3'b101: begin + td_mode = 4'b1010; + end // 3'b101 + + 3'b110: begin + td_mode = 4'b0101; + end // 3'b110 + + 3'b111: begin + td_mode = 4'b1111; + end // 3'b111 + + endcase // ctrl_bits_for_mux + end + + + +endmodule + + +// synthesis translate_off +`timescale 1ns / 1ps +// synthesis translate_on + +// turn off superfluous verilog processor warnings +// altera message_level Level1 +// altera message_off 10034 10035 10036 10037 10230 10240 10030 + +module nios_system_nios2_processor_nios2_oci_dtrace ( + // inputs: + clk, + cpu_d_address, + cpu_d_read, + cpu_d_readdata, + cpu_d_wait, + cpu_d_write, + cpu_d_writedata, + jrst_n, + trc_ctrl, + + // outputs: + atm, + dtm + ) +; + + output [ 35: 0] atm; + output [ 35: 0] dtm; + input clk; + input [ 18: 0] cpu_d_address; + input cpu_d_read; + input [ 31: 0] cpu_d_readdata; + input cpu_d_wait; + input cpu_d_write; + input [ 31: 0] cpu_d_writedata; + input jrst_n; + input [ 15: 0] trc_ctrl; + + reg [ 35: 0] atm /* synthesis ALTERA_ATTRIBUTE = "SUPPRESS_DA_RULE_INTERNAL=R101" */; + wire [ 31: 0] cpu_d_address_0_padded; + wire [ 31: 0] cpu_d_readdata_0_padded; + wire [ 31: 0] cpu_d_writedata_0_padded; + reg [ 35: 0] dtm /* synthesis ALTERA_ATTRIBUTE = "SUPPRESS_DA_RULE_INTERNAL=R101" */; + wire record_load_addr; + wire record_load_data; + wire record_store_addr; + wire record_store_data; + wire [ 3: 0] td_mode_trc_ctrl; + assign cpu_d_writedata_0_padded = cpu_d_writedata | 32'b0; + assign cpu_d_readdata_0_padded = cpu_d_readdata | 32'b0; + assign cpu_d_address_0_padded = cpu_d_address | 32'b0; + //nios_system_nios2_processor_nios2_oci_trc_ctrl_td_mode, which is an e_instance + nios_system_nios2_processor_nios2_oci_td_mode nios_system_nios2_processor_nios2_oci_trc_ctrl_td_mode + ( + .ctrl (trc_ctrl[8 : 0]), + .td_mode (td_mode_trc_ctrl) + ); + + assign {record_load_addr, record_store_addr, + record_load_data, record_store_data} = td_mode_trc_ctrl; + always @(posedge clk or negedge jrst_n) + begin + if (jrst_n == 0) + begin + atm <= 0; + dtm <= 0; + end + else if (0) + begin + if (cpu_d_write & ~cpu_d_wait & record_store_addr) + atm <= {4'b0101, cpu_d_address_0_padded}; + else if (cpu_d_read & ~cpu_d_wait & record_load_addr) + atm <= {4'b0100, cpu_d_address_0_padded}; + else + atm <= {4'b0000, cpu_d_address_0_padded}; + if (cpu_d_write & ~cpu_d_wait & record_store_data) + dtm <= {4'b0111, cpu_d_writedata_0_padded}; + else if (cpu_d_read & ~cpu_d_wait & record_load_data) + dtm <= {4'b0110, cpu_d_readdata_0_padded}; + else + dtm <= {4'b0000, cpu_d_readdata_0_padded}; + end + else + begin + atm <= 0; + dtm <= 0; + end + end + + + +endmodule + + +// synthesis translate_off +`timescale 1ns / 1ps +// synthesis translate_on + +// turn off superfluous verilog processor warnings +// altera message_level Level1 +// altera message_off 10034 10035 10036 10037 10230 10240 10030 + +module nios_system_nios2_processor_nios2_oci_compute_tm_count ( + // inputs: + atm_valid, + dtm_valid, + itm_valid, + + // outputs: + compute_tm_count + ) +; + + output [ 1: 0] compute_tm_count; + input atm_valid; + input dtm_valid; + input itm_valid; + + reg [ 1: 0] compute_tm_count; + wire [ 2: 0] switch_for_mux; + assign switch_for_mux = {itm_valid, atm_valid, dtm_valid}; + always @(switch_for_mux) + begin + case (switch_for_mux) + + 3'b000: begin + compute_tm_count = 0; + end // 3'b000 + + 3'b001: begin + compute_tm_count = 1; + end // 3'b001 + + 3'b010: begin + compute_tm_count = 1; + end // 3'b010 + + 3'b011: begin + compute_tm_count = 2; + end // 3'b011 + + 3'b100: begin + compute_tm_count = 1; + end // 3'b100 + + 3'b101: begin + compute_tm_count = 2; + end // 3'b101 + + 3'b110: begin + compute_tm_count = 2; + end // 3'b110 + + 3'b111: begin + compute_tm_count = 3; + end // 3'b111 + + endcase // switch_for_mux + end + + + +endmodule + + +// synthesis translate_off +`timescale 1ns / 1ps +// synthesis translate_on + +// turn off superfluous verilog processor warnings +// altera message_level Level1 +// altera message_off 10034 10035 10036 10037 10230 10240 10030 + +module nios_system_nios2_processor_nios2_oci_fifowp_inc ( + // inputs: + free2, + free3, + tm_count, + + // outputs: + fifowp_inc + ) +; + + output [ 3: 0] fifowp_inc; + input free2; + input free3; + input [ 1: 0] tm_count; + + reg [ 3: 0] fifowp_inc; + always @(free2 or free3 or tm_count) + begin + if (free3 & (tm_count == 3)) + fifowp_inc = 3; + else if (free2 & (tm_count >= 2)) + fifowp_inc = 2; + else if (tm_count >= 1) + fifowp_inc = 1; + else + fifowp_inc = 0; + end + + + +endmodule + + +// synthesis translate_off +`timescale 1ns / 1ps +// synthesis translate_on + +// turn off superfluous verilog processor warnings +// altera message_level Level1 +// altera message_off 10034 10035 10036 10037 10230 10240 10030 + +module nios_system_nios2_processor_nios2_oci_fifocount_inc ( + // inputs: + empty, + free2, + free3, + tm_count, + + // outputs: + fifocount_inc + ) +; + + output [ 4: 0] fifocount_inc; + input empty; + input free2; + input free3; + input [ 1: 0] tm_count; + + reg [ 4: 0] fifocount_inc; + always @(empty or free2 or free3 or tm_count) + begin + if (empty) + fifocount_inc = tm_count[1 : 0]; + else if (free3 & (tm_count == 3)) + fifocount_inc = 2; + else if (free2 & (tm_count >= 2)) + fifocount_inc = 1; + else if (tm_count >= 1) + fifocount_inc = 0; + else + fifocount_inc = {5{1'b1}}; + end + + + +endmodule + + +// synthesis translate_off +`timescale 1ns / 1ps +// synthesis translate_on + +// turn off superfluous verilog processor warnings +// altera message_level Level1 +// altera message_off 10034 10035 10036 10037 10230 10240 10030 + +module nios_system_nios2_processor_nios2_oci_fifo ( + // inputs: + atm, + clk, + dbrk_traceme, + dbrk_traceoff, + dbrk_traceon, + dct_buffer, + dct_count, + dtm, + itm, + jrst_n, + reset_n, + test_ending, + test_has_ended, + trc_on, + + // outputs: + tw + ) +; + + output [ 35: 0] tw; + input [ 35: 0] atm; + input clk; + input dbrk_traceme; + input dbrk_traceoff; + input dbrk_traceon; + input [ 29: 0] dct_buffer; + input [ 3: 0] dct_count; + input [ 35: 0] dtm; + input [ 35: 0] itm; + input jrst_n; + input reset_n; + input test_ending; + input test_has_ended; + input trc_on; + + wire atm_valid; + wire [ 1: 0] compute_tm_count_tm_count; + wire dtm_valid; + wire empty; + reg [ 35: 0] fifo_0; + wire fifo_0_enable; + wire [ 35: 0] fifo_0_mux; + reg [ 35: 0] fifo_1; + reg [ 35: 0] fifo_10; + wire fifo_10_enable; + wire [ 35: 0] fifo_10_mux; + reg [ 35: 0] fifo_11; + wire fifo_11_enable; + wire [ 35: 0] fifo_11_mux; + reg [ 35: 0] fifo_12; + wire fifo_12_enable; + wire [ 35: 0] fifo_12_mux; + reg [ 35: 0] fifo_13; + wire fifo_13_enable; + wire [ 35: 0] fifo_13_mux; + reg [ 35: 0] fifo_14; + wire fifo_14_enable; + wire [ 35: 0] fifo_14_mux; + reg [ 35: 0] fifo_15; + wire fifo_15_enable; + wire [ 35: 0] fifo_15_mux; + wire fifo_1_enable; + wire [ 35: 0] fifo_1_mux; + reg [ 35: 0] fifo_2; + wire fifo_2_enable; + wire [ 35: 0] fifo_2_mux; + reg [ 35: 0] fifo_3; + wire fifo_3_enable; + wire [ 35: 0] fifo_3_mux; + reg [ 35: 0] fifo_4; + wire fifo_4_enable; + wire [ 35: 0] fifo_4_mux; + reg [ 35: 0] fifo_5; + wire fifo_5_enable; + wire [ 35: 0] fifo_5_mux; + reg [ 35: 0] fifo_6; + wire fifo_6_enable; + wire [ 35: 0] fifo_6_mux; + reg [ 35: 0] fifo_7; + wire fifo_7_enable; + wire [ 35: 0] fifo_7_mux; + reg [ 35: 0] fifo_8; + wire fifo_8_enable; + wire [ 35: 0] fifo_8_mux; + reg [ 35: 0] fifo_9; + wire fifo_9_enable; + wire [ 35: 0] fifo_9_mux; + wire [ 35: 0] fifo_read_mux; + reg [ 4: 0] fifocount /* synthesis ALTERA_ATTRIBUTE = "SUPPRESS_DA_RULE_INTERNAL=R101" */; + wire [ 4: 0] fifocount_inc_fifocount; + wire [ 35: 0] fifohead; + reg [ 3: 0] fiforp /* synthesis ALTERA_ATTRIBUTE = "SUPPRESS_DA_RULE_INTERNAL=R101" */; + reg [ 3: 0] fifowp /* synthesis ALTERA_ATTRIBUTE = "SUPPRESS_DA_RULE_INTERNAL=R101" */; + wire [ 3: 0] fifowp1; + wire [ 3: 0] fifowp2; + wire [ 3: 0] fifowp_inc_fifowp; + wire free2; + wire free3; + wire itm_valid; + reg ovf_pending /* synthesis ALTERA_ATTRIBUTE = "SUPPRESS_DA_RULE_INTERNAL=R101" */; + wire [ 35: 0] ovr_pending_atm; + wire [ 35: 0] ovr_pending_dtm; + wire [ 1: 0] tm_count; + wire tm_count_ge1; + wire tm_count_ge2; + wire tm_count_ge3; + wire trc_this; + wire [ 35: 0] tw; + assign trc_this = trc_on | (dbrk_traceon & ~dbrk_traceoff) | dbrk_traceme; + assign itm_valid = |itm[35 : 32]; + assign atm_valid = |atm[35 : 32] & trc_this; + assign dtm_valid = |dtm[35 : 32] & trc_this; + assign free2 = ~fifocount[4]; + assign free3 = ~fifocount[4] & ~&fifocount[3 : 0]; + assign empty = ~|fifocount; + assign fifowp1 = fifowp + 1; + assign fifowp2 = fifowp + 2; + //nios_system_nios2_processor_nios2_oci_compute_tm_count_tm_count, which is an e_instance + nios_system_nios2_processor_nios2_oci_compute_tm_count nios_system_nios2_processor_nios2_oci_compute_tm_count_tm_count + ( + .atm_valid (atm_valid), + .compute_tm_count (compute_tm_count_tm_count), + .dtm_valid (dtm_valid), + .itm_valid (itm_valid) + ); + + assign tm_count = compute_tm_count_tm_count; + //nios_system_nios2_processor_nios2_oci_fifowp_inc_fifowp, which is an e_instance + nios_system_nios2_processor_nios2_oci_fifowp_inc nios_system_nios2_processor_nios2_oci_fifowp_inc_fifowp + ( + .fifowp_inc (fifowp_inc_fifowp), + .free2 (free2), + .free3 (free3), + .tm_count (tm_count) + ); + + //nios_system_nios2_processor_nios2_oci_fifocount_inc_fifocount, which is an e_instance + nios_system_nios2_processor_nios2_oci_fifocount_inc nios_system_nios2_processor_nios2_oci_fifocount_inc_fifocount + ( + .empty (empty), + .fifocount_inc (fifocount_inc_fifocount), + .free2 (free2), + .free3 (free3), + .tm_count (tm_count) + ); + + //the_nios_system_nios2_processor_oci_test_bench, which is an e_instance + nios_system_nios2_processor_oci_test_bench the_nios_system_nios2_processor_oci_test_bench + ( + .dct_buffer (dct_buffer), + .dct_count (dct_count), + .test_ending (test_ending), + .test_has_ended (test_has_ended) + ); + + always @(posedge clk or negedge jrst_n) + begin + if (jrst_n == 0) + begin + fiforp <= 0; + fifowp <= 0; + fifocount <= 0; + ovf_pending <= 1; + end + else + begin + fifowp <= fifowp + fifowp_inc_fifowp; + fifocount <= fifocount + fifocount_inc_fifocount; + if (~empty) + fiforp <= fiforp + 1; + if (~trc_this || (~free2 & tm_count[1]) || (~free3 & (&tm_count))) + ovf_pending <= 1; + else if (atm_valid | dtm_valid) + ovf_pending <= 0; + end + end + + + assign fifohead = fifo_read_mux; + assign tw = 0 ? { (empty ? 4'h0 : fifohead[35 : 32]), fifohead[31 : 0]} : itm; + assign fifo_0_enable = ((fifowp == 4'd0) && tm_count_ge1) || (free2 && (fifowp1== 4'd0) && tm_count_ge2) ||(free3 && (fifowp2== 4'd0) && tm_count_ge3); + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + fifo_0 <= 0; + else if (fifo_0_enable) + fifo_0 <= fifo_0_mux; + end + + + assign fifo_0_mux = (((fifowp == 4'd0) && itm_valid))? itm : + (((fifowp == 4'd0) && atm_valid))? ovr_pending_atm : + (((fifowp == 4'd0) && dtm_valid))? ovr_pending_dtm : + (((fifowp1 == 4'd0) && (free2 & itm_valid & atm_valid)))? ovr_pending_atm : + (((fifowp1 == 4'd0) && (free2 & itm_valid & dtm_valid)))? ovr_pending_dtm : + (((fifowp1 == 4'd0) && (free2 & atm_valid & dtm_valid)))? ovr_pending_dtm : + ovr_pending_dtm; + + assign fifo_1_enable = ((fifowp == 4'd1) && tm_count_ge1) || (free2 && (fifowp1== 4'd1) && tm_count_ge2) ||(free3 && (fifowp2== 4'd1) && tm_count_ge3); + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + fifo_1 <= 0; + else if (fifo_1_enable) + fifo_1 <= fifo_1_mux; + end + + + assign fifo_1_mux = (((fifowp == 4'd1) && itm_valid))? itm : + (((fifowp == 4'd1) && atm_valid))? ovr_pending_atm : + (((fifowp == 4'd1) && dtm_valid))? ovr_pending_dtm : + (((fifowp1 == 4'd1) && (free2 & itm_valid & atm_valid)))? ovr_pending_atm : + (((fifowp1 == 4'd1) && (free2 & itm_valid & dtm_valid)))? ovr_pending_dtm : + (((fifowp1 == 4'd1) && (free2 & atm_valid & dtm_valid)))? ovr_pending_dtm : + ovr_pending_dtm; + + assign fifo_2_enable = ((fifowp == 4'd2) && tm_count_ge1) || (free2 && (fifowp1== 4'd2) && tm_count_ge2) ||(free3 && (fifowp2== 4'd2) && tm_count_ge3); + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + fifo_2 <= 0; + else if (fifo_2_enable) + fifo_2 <= fifo_2_mux; + end + + + assign fifo_2_mux = (((fifowp == 4'd2) && itm_valid))? itm : + (((fifowp == 4'd2) && atm_valid))? ovr_pending_atm : + (((fifowp == 4'd2) && dtm_valid))? ovr_pending_dtm : + (((fifowp1 == 4'd2) && (free2 & itm_valid & atm_valid)))? ovr_pending_atm : + (((fifowp1 == 4'd2) && (free2 & itm_valid & dtm_valid)))? ovr_pending_dtm : + (((fifowp1 == 4'd2) && (free2 & atm_valid & dtm_valid)))? ovr_pending_dtm : + ovr_pending_dtm; + + assign fifo_3_enable = ((fifowp == 4'd3) && tm_count_ge1) || (free2 && (fifowp1== 4'd3) && tm_count_ge2) ||(free3 && (fifowp2== 4'd3) && tm_count_ge3); + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + fifo_3 <= 0; + else if (fifo_3_enable) + fifo_3 <= fifo_3_mux; + end + + + assign fifo_3_mux = (((fifowp == 4'd3) && itm_valid))? itm : + (((fifowp == 4'd3) && atm_valid))? ovr_pending_atm : + (((fifowp == 4'd3) && dtm_valid))? ovr_pending_dtm : + (((fifowp1 == 4'd3) && (free2 & itm_valid & atm_valid)))? ovr_pending_atm : + (((fifowp1 == 4'd3) && (free2 & itm_valid & dtm_valid)))? ovr_pending_dtm : + (((fifowp1 == 4'd3) && (free2 & atm_valid & dtm_valid)))? ovr_pending_dtm : + ovr_pending_dtm; + + assign fifo_4_enable = ((fifowp == 4'd4) && tm_count_ge1) || (free2 && (fifowp1== 4'd4) && tm_count_ge2) ||(free3 && (fifowp2== 4'd4) && tm_count_ge3); + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + fifo_4 <= 0; + else if (fifo_4_enable) + fifo_4 <= fifo_4_mux; + end + + + assign fifo_4_mux = (((fifowp == 4'd4) && itm_valid))? itm : + (((fifowp == 4'd4) && atm_valid))? ovr_pending_atm : + (((fifowp == 4'd4) && dtm_valid))? ovr_pending_dtm : + (((fifowp1 == 4'd4) && (free2 & itm_valid & atm_valid)))? ovr_pending_atm : + (((fifowp1 == 4'd4) && (free2 & itm_valid & dtm_valid)))? ovr_pending_dtm : + (((fifowp1 == 4'd4) && (free2 & atm_valid & dtm_valid)))? ovr_pending_dtm : + ovr_pending_dtm; + + assign fifo_5_enable = ((fifowp == 4'd5) && tm_count_ge1) || (free2 && (fifowp1== 4'd5) && tm_count_ge2) ||(free3 && (fifowp2== 4'd5) && tm_count_ge3); + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + fifo_5 <= 0; + else if (fifo_5_enable) + fifo_5 <= fifo_5_mux; + end + + + assign fifo_5_mux = (((fifowp == 4'd5) && itm_valid))? itm : + (((fifowp == 4'd5) && atm_valid))? ovr_pending_atm : + (((fifowp == 4'd5) && dtm_valid))? ovr_pending_dtm : + (((fifowp1 == 4'd5) && (free2 & itm_valid & atm_valid)))? ovr_pending_atm : + (((fifowp1 == 4'd5) && (free2 & itm_valid & dtm_valid)))? ovr_pending_dtm : + (((fifowp1 == 4'd5) && (free2 & atm_valid & dtm_valid)))? ovr_pending_dtm : + ovr_pending_dtm; + + assign fifo_6_enable = ((fifowp == 4'd6) && tm_count_ge1) || (free2 && (fifowp1== 4'd6) && tm_count_ge2) ||(free3 && (fifowp2== 4'd6) && tm_count_ge3); + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + fifo_6 <= 0; + else if (fifo_6_enable) + fifo_6 <= fifo_6_mux; + end + + + assign fifo_6_mux = (((fifowp == 4'd6) && itm_valid))? itm : + (((fifowp == 4'd6) && atm_valid))? ovr_pending_atm : + (((fifowp == 4'd6) && dtm_valid))? ovr_pending_dtm : + (((fifowp1 == 4'd6) && (free2 & itm_valid & atm_valid)))? ovr_pending_atm : + (((fifowp1 == 4'd6) && (free2 & itm_valid & dtm_valid)))? ovr_pending_dtm : + (((fifowp1 == 4'd6) && (free2 & atm_valid & dtm_valid)))? ovr_pending_dtm : + ovr_pending_dtm; + + assign fifo_7_enable = ((fifowp == 4'd7) && tm_count_ge1) || (free2 && (fifowp1== 4'd7) && tm_count_ge2) ||(free3 && (fifowp2== 4'd7) && tm_count_ge3); + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + fifo_7 <= 0; + else if (fifo_7_enable) + fifo_7 <= fifo_7_mux; + end + + + assign fifo_7_mux = (((fifowp == 4'd7) && itm_valid))? itm : + (((fifowp == 4'd7) && atm_valid))? ovr_pending_atm : + (((fifowp == 4'd7) && dtm_valid))? ovr_pending_dtm : + (((fifowp1 == 4'd7) && (free2 & itm_valid & atm_valid)))? ovr_pending_atm : + (((fifowp1 == 4'd7) && (free2 & itm_valid & dtm_valid)))? ovr_pending_dtm : + (((fifowp1 == 4'd7) && (free2 & atm_valid & dtm_valid)))? ovr_pending_dtm : + ovr_pending_dtm; + + assign fifo_8_enable = ((fifowp == 4'd8) && tm_count_ge1) || (free2 && (fifowp1== 4'd8) && tm_count_ge2) ||(free3 && (fifowp2== 4'd8) && tm_count_ge3); + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + fifo_8 <= 0; + else if (fifo_8_enable) + fifo_8 <= fifo_8_mux; + end + + + assign fifo_8_mux = (((fifowp == 4'd8) && itm_valid))? itm : + (((fifowp == 4'd8) && atm_valid))? ovr_pending_atm : + (((fifowp == 4'd8) && dtm_valid))? ovr_pending_dtm : + (((fifowp1 == 4'd8) && (free2 & itm_valid & atm_valid)))? ovr_pending_atm : + (((fifowp1 == 4'd8) && (free2 & itm_valid & dtm_valid)))? ovr_pending_dtm : + (((fifowp1 == 4'd8) && (free2 & atm_valid & dtm_valid)))? ovr_pending_dtm : + ovr_pending_dtm; + + assign fifo_9_enable = ((fifowp == 4'd9) && tm_count_ge1) || (free2 && (fifowp1== 4'd9) && tm_count_ge2) ||(free3 && (fifowp2== 4'd9) && tm_count_ge3); + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + fifo_9 <= 0; + else if (fifo_9_enable) + fifo_9 <= fifo_9_mux; + end + + + assign fifo_9_mux = (((fifowp == 4'd9) && itm_valid))? itm : + (((fifowp == 4'd9) && atm_valid))? ovr_pending_atm : + (((fifowp == 4'd9) && dtm_valid))? ovr_pending_dtm : + (((fifowp1 == 4'd9) && (free2 & itm_valid & atm_valid)))? ovr_pending_atm : + (((fifowp1 == 4'd9) && (free2 & itm_valid & dtm_valid)))? ovr_pending_dtm : + (((fifowp1 == 4'd9) && (free2 & atm_valid & dtm_valid)))? ovr_pending_dtm : + ovr_pending_dtm; + + assign fifo_10_enable = ((fifowp == 4'd10) && tm_count_ge1) || (free2 && (fifowp1== 4'd10) && tm_count_ge2) ||(free3 && (fifowp2== 4'd10) && tm_count_ge3); + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + fifo_10 <= 0; + else if (fifo_10_enable) + fifo_10 <= fifo_10_mux; + end + + + assign fifo_10_mux = (((fifowp == 4'd10) && itm_valid))? itm : + (((fifowp == 4'd10) && atm_valid))? ovr_pending_atm : + (((fifowp == 4'd10) && dtm_valid))? ovr_pending_dtm : + (((fifowp1 == 4'd10) && (free2 & itm_valid & atm_valid)))? ovr_pending_atm : + (((fifowp1 == 4'd10) && (free2 & itm_valid & dtm_valid)))? ovr_pending_dtm : + (((fifowp1 == 4'd10) && (free2 & atm_valid & dtm_valid)))? ovr_pending_dtm : + ovr_pending_dtm; + + assign fifo_11_enable = ((fifowp == 4'd11) && tm_count_ge1) || (free2 && (fifowp1== 4'd11) && tm_count_ge2) ||(free3 && (fifowp2== 4'd11) && tm_count_ge3); + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + fifo_11 <= 0; + else if (fifo_11_enable) + fifo_11 <= fifo_11_mux; + end + + + assign fifo_11_mux = (((fifowp == 4'd11) && itm_valid))? itm : + (((fifowp == 4'd11) && atm_valid))? ovr_pending_atm : + (((fifowp == 4'd11) && dtm_valid))? ovr_pending_dtm : + (((fifowp1 == 4'd11) && (free2 & itm_valid & atm_valid)))? ovr_pending_atm : + (((fifowp1 == 4'd11) && (free2 & itm_valid & dtm_valid)))? ovr_pending_dtm : + (((fifowp1 == 4'd11) && (free2 & atm_valid & dtm_valid)))? ovr_pending_dtm : + ovr_pending_dtm; + + assign fifo_12_enable = ((fifowp == 4'd12) && tm_count_ge1) || (free2 && (fifowp1== 4'd12) && tm_count_ge2) ||(free3 && (fifowp2== 4'd12) && tm_count_ge3); + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + fifo_12 <= 0; + else if (fifo_12_enable) + fifo_12 <= fifo_12_mux; + end + + + assign fifo_12_mux = (((fifowp == 4'd12) && itm_valid))? itm : + (((fifowp == 4'd12) && atm_valid))? ovr_pending_atm : + (((fifowp == 4'd12) && dtm_valid))? ovr_pending_dtm : + (((fifowp1 == 4'd12) && (free2 & itm_valid & atm_valid)))? ovr_pending_atm : + (((fifowp1 == 4'd12) && (free2 & itm_valid & dtm_valid)))? ovr_pending_dtm : + (((fifowp1 == 4'd12) && (free2 & atm_valid & dtm_valid)))? ovr_pending_dtm : + ovr_pending_dtm; + + assign fifo_13_enable = ((fifowp == 4'd13) && tm_count_ge1) || (free2 && (fifowp1== 4'd13) && tm_count_ge2) ||(free3 && (fifowp2== 4'd13) && tm_count_ge3); + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + fifo_13 <= 0; + else if (fifo_13_enable) + fifo_13 <= fifo_13_mux; + end + + + assign fifo_13_mux = (((fifowp == 4'd13) && itm_valid))? itm : + (((fifowp == 4'd13) && atm_valid))? ovr_pending_atm : + (((fifowp == 4'd13) && dtm_valid))? ovr_pending_dtm : + (((fifowp1 == 4'd13) && (free2 & itm_valid & atm_valid)))? ovr_pending_atm : + (((fifowp1 == 4'd13) && (free2 & itm_valid & dtm_valid)))? ovr_pending_dtm : + (((fifowp1 == 4'd13) && (free2 & atm_valid & dtm_valid)))? ovr_pending_dtm : + ovr_pending_dtm; + + assign fifo_14_enable = ((fifowp == 4'd14) && tm_count_ge1) || (free2 && (fifowp1== 4'd14) && tm_count_ge2) ||(free3 && (fifowp2== 4'd14) && tm_count_ge3); + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + fifo_14 <= 0; + else if (fifo_14_enable) + fifo_14 <= fifo_14_mux; + end + + + assign fifo_14_mux = (((fifowp == 4'd14) && itm_valid))? itm : + (((fifowp == 4'd14) && atm_valid))? ovr_pending_atm : + (((fifowp == 4'd14) && dtm_valid))? ovr_pending_dtm : + (((fifowp1 == 4'd14) && (free2 & itm_valid & atm_valid)))? ovr_pending_atm : + (((fifowp1 == 4'd14) && (free2 & itm_valid & dtm_valid)))? ovr_pending_dtm : + (((fifowp1 == 4'd14) && (free2 & atm_valid & dtm_valid)))? ovr_pending_dtm : + ovr_pending_dtm; + + assign fifo_15_enable = ((fifowp == 4'd15) && tm_count_ge1) || (free2 && (fifowp1== 4'd15) && tm_count_ge2) ||(free3 && (fifowp2== 4'd15) && tm_count_ge3); + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + fifo_15 <= 0; + else if (fifo_15_enable) + fifo_15 <= fifo_15_mux; + end + + + assign fifo_15_mux = (((fifowp == 4'd15) && itm_valid))? itm : + (((fifowp == 4'd15) && atm_valid))? ovr_pending_atm : + (((fifowp == 4'd15) && dtm_valid))? ovr_pending_dtm : + (((fifowp1 == 4'd15) && (free2 & itm_valid & atm_valid)))? ovr_pending_atm : + (((fifowp1 == 4'd15) && (free2 & itm_valid & dtm_valid)))? ovr_pending_dtm : + (((fifowp1 == 4'd15) && (free2 & atm_valid & dtm_valid)))? ovr_pending_dtm : + ovr_pending_dtm; + + assign tm_count_ge1 = |tm_count; + assign tm_count_ge2 = tm_count[1]; + assign tm_count_ge3 = &tm_count; + assign ovr_pending_atm = {ovf_pending, atm[34 : 0]}; + assign ovr_pending_dtm = {ovf_pending, dtm[34 : 0]}; + assign fifo_read_mux = (fiforp == 4'd0)? fifo_0 : + (fiforp == 4'd1)? fifo_1 : + (fiforp == 4'd2)? fifo_2 : + (fiforp == 4'd3)? fifo_3 : + (fiforp == 4'd4)? fifo_4 : + (fiforp == 4'd5)? fifo_5 : + (fiforp == 4'd6)? fifo_6 : + (fiforp == 4'd7)? fifo_7 : + (fiforp == 4'd8)? fifo_8 : + (fiforp == 4'd9)? fifo_9 : + (fiforp == 4'd10)? fifo_10 : + (fiforp == 4'd11)? fifo_11 : + (fiforp == 4'd12)? fifo_12 : + (fiforp == 4'd13)? fifo_13 : + (fiforp == 4'd14)? fifo_14 : + fifo_15; + + +endmodule + + +// synthesis translate_off +`timescale 1ns / 1ps +// synthesis translate_on + +// turn off superfluous verilog processor warnings +// altera message_level Level1 +// altera message_off 10034 10035 10036 10037 10230 10240 10030 + +module nios_system_nios2_processor_nios2_oci_pib ( + // inputs: + clk, + clkx2, + jrst_n, + tw, + + // outputs: + tr_clk, + tr_data + ) +; + + output tr_clk; + output [ 17: 0] tr_data; + input clk; + input clkx2; + input jrst_n; + input [ 35: 0] tw; + + wire phase; + wire tr_clk; + reg tr_clk_reg /* synthesis ALTERA_ATTRIBUTE = "SUPPRESS_DA_RULE_INTERNAL=R101" */; + wire [ 17: 0] tr_data; + reg [ 17: 0] tr_data_reg /* synthesis ALTERA_ATTRIBUTE = "SUPPRESS_DA_RULE_INTERNAL=R101" */; + reg x1 /* synthesis ALTERA_ATTRIBUTE = "SUPPRESS_DA_RULE_INTERNAL=R101" */; + reg x2 /* synthesis ALTERA_ATTRIBUTE = "SUPPRESS_DA_RULE_INTERNAL=R101" */; + assign phase = x1^x2; + always @(posedge clk or negedge jrst_n) + begin + if (jrst_n == 0) + x1 <= 0; + else + x1 <= ~x1; + end + + + always @(posedge clkx2 or negedge jrst_n) + begin + if (jrst_n == 0) + begin + x2 <= 0; + tr_clk_reg <= 0; + tr_data_reg <= 0; + end + else + begin + x2 <= x1; + tr_clk_reg <= ~phase; + tr_data_reg <= phase ? tw[17 : 0] : tw[35 : 18]; + end + end + + + assign tr_clk = 0 ? tr_clk_reg : 0; + assign tr_data = 0 ? tr_data_reg : 0; + +endmodule + + +// synthesis translate_off +`timescale 1ns / 1ps +// synthesis translate_on + +// turn off superfluous verilog processor warnings +// altera message_level Level1 +// altera message_off 10034 10035 10036 10037 10230 10240 10030 + +module nios_system_nios2_processor_nios2_oci_im ( + // inputs: + clk, + jdo, + jrst_n, + reset_n, + take_action_tracectrl, + take_action_tracemem_a, + take_action_tracemem_b, + take_no_action_tracemem_a, + trc_ctrl, + tw, + + // outputs: + tracemem_on, + tracemem_trcdata, + tracemem_tw, + trc_enb, + trc_im_addr, + trc_wrap, + xbrk_wrap_traceoff + ) +; + + output tracemem_on; + output [ 35: 0] tracemem_trcdata; + output tracemem_tw; + output trc_enb; + output [ 6: 0] trc_im_addr; + output trc_wrap; + output xbrk_wrap_traceoff; + input clk; + input [ 37: 0] jdo; + input jrst_n; + input reset_n; + input take_action_tracectrl; + input take_action_tracemem_a; + input take_action_tracemem_b; + input take_no_action_tracemem_a; + input [ 15: 0] trc_ctrl; + input [ 35: 0] tw; + + wire tracemem_on; + wire [ 35: 0] tracemem_trcdata; + wire tracemem_tw; + wire trc_enb; + reg [ 6: 0] trc_im_addr /* synthesis ALTERA_ATTRIBUTE = "SUPPRESS_DA_RULE_INTERNAL=\"D101,D103,R101\"" */; + wire [ 35: 0] trc_im_data; + reg [ 16: 0] trc_jtag_addr /* synthesis ALTERA_ATTRIBUTE = "SUPPRESS_DA_RULE_INTERNAL=D101" */; + wire trc_on_chip; + reg trc_wrap /* synthesis ALTERA_ATTRIBUTE = "SUPPRESS_DA_RULE_INTERNAL=\"D101,D103,R101\"" */; + wire tw_valid; + wire xbrk_wrap_traceoff; + assign trc_im_data = tw; + always @(posedge clk or negedge jrst_n) + begin + if (jrst_n == 0) + begin + trc_im_addr <= 0; + trc_wrap <= 0; + end + else if (!0) + begin + trc_im_addr <= 0; + trc_wrap <= 0; + end + else if (take_action_tracectrl && + (jdo[4] | jdo[3])) + begin + if (jdo[4]) + trc_im_addr <= 0; + if (jdo[3]) + trc_wrap <= 0; + end + else if (trc_enb & trc_on_chip & tw_valid) + begin + trc_im_addr <= trc_im_addr+1; + if (&trc_im_addr) + trc_wrap <= 1; + end + end + + + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + trc_jtag_addr <= 0; + else if (take_action_tracemem_a || + take_no_action_tracemem_a || + take_action_tracemem_b) + trc_jtag_addr <= take_action_tracemem_a ? + jdo[35 : 19] : + trc_jtag_addr + 1; + + end + + + assign trc_enb = trc_ctrl[0]; + assign trc_on_chip = ~trc_ctrl[8]; + assign tw_valid = |trc_im_data[35 : 32]; + assign xbrk_wrap_traceoff = trc_ctrl[10] & trc_wrap; + assign tracemem_tw = trc_wrap; + assign tracemem_on = trc_enb; + assign tracemem_trcdata = 0; + +endmodule + + +// synthesis translate_off +`timescale 1ns / 1ps +// synthesis translate_on + +// turn off superfluous verilog processor warnings +// altera message_level Level1 +// altera message_off 10034 10035 10036 10037 10230 10240 10030 + +module nios_system_nios2_processor_nios2_performance_monitors +; + + + +endmodule + + +// synthesis translate_off +`timescale 1ns / 1ps +// synthesis translate_on + +// turn off superfluous verilog processor warnings +// altera message_level Level1 +// altera message_off 10034 10035 10036 10037 10230 10240 10030 + +module nios_system_nios2_processor_nios2_oci ( + // inputs: + D_valid, + E_st_data, + E_valid, + F_pc, + address_nxt, + av_ld_data_aligned_filtered, + byteenable_nxt, + clk, + d_address, + d_read, + d_waitrequest, + d_write, + debugaccess_nxt, + hbreak_enabled, + read_nxt, + reset, + reset_n, + test_ending, + test_has_ended, + write_nxt, + writedata_nxt, + + // outputs: + jtag_debug_module_debugaccess_to_roms, + oci_hbreak_req, + oci_ienable, + oci_single_step_mode, + readdata, + resetrequest, + waitrequest + ) +; + + output jtag_debug_module_debugaccess_to_roms; + output oci_hbreak_req; + output [ 31: 0] oci_ienable; + output oci_single_step_mode; + output [ 31: 0] readdata; + output resetrequest; + output waitrequest; + input D_valid; + input [ 31: 0] E_st_data; + input E_valid; + input [ 16: 0] F_pc; + input [ 8: 0] address_nxt; + input [ 31: 0] av_ld_data_aligned_filtered; + input [ 3: 0] byteenable_nxt; + input clk; + input [ 18: 0] d_address; + input d_read; + input d_waitrequest; + input d_write; + input debugaccess_nxt; + input hbreak_enabled; + input read_nxt; + input reset; + input reset_n; + input test_ending; + input test_has_ended; + input write_nxt; + input [ 31: 0] writedata_nxt; + + wire [ 31: 0] MonDReg; + reg [ 8: 0] address; + wire [ 35: 0] atm; + wire [ 31: 0] break_readreg; + reg [ 3: 0] byteenable; + wire clkx2; + wire [ 18: 0] cpu_d_address; + wire cpu_d_read; + wire [ 31: 0] cpu_d_readdata; + wire cpu_d_wait; + wire cpu_d_write; + wire [ 31: 0] cpu_d_writedata; + wire dbrk_break; + wire dbrk_goto0; + wire dbrk_goto1; + wire dbrk_hit0_latch; + wire dbrk_hit1_latch; + wire dbrk_hit2_latch; + wire dbrk_hit3_latch; + wire dbrk_traceme; + wire dbrk_traceoff; + wire dbrk_traceon; + wire dbrk_trigout; + wire [ 29: 0] dct_buffer; + wire [ 3: 0] dct_count; + reg debugaccess; + wire debugack; + wire debugreq; + wire [ 35: 0] dtm; + wire dummy_sink; + wire [ 35: 0] itm; + wire [ 37: 0] jdo; + wire jrst_n; + wire jtag_debug_module_debugaccess_to_roms; + wire monitor_error; + wire monitor_go; + wire monitor_ready; + wire oci_hbreak_req; + wire [ 31: 0] oci_ienable; + wire [ 31: 0] oci_reg_readdata; + wire oci_single_step_mode; + wire [ 31: 0] ociram_readdata; + wire ocireg_ers; + wire ocireg_mrs; + reg read; + reg [ 31: 0] readdata; + wire resetlatch; + wire resetrequest; + wire st_ready_test_idle; + wire take_action_break_a; + wire take_action_break_b; + wire take_action_break_c; + wire take_action_ocimem_a; + wire take_action_ocimem_b; + wire take_action_ocireg; + wire take_action_tracectrl; + wire take_action_tracemem_a; + wire take_action_tracemem_b; + wire take_no_action_break_a; + wire take_no_action_break_b; + wire take_no_action_break_c; + wire take_no_action_ocimem_a; + wire take_no_action_tracemem_a; + wire tr_clk; + wire [ 17: 0] tr_data; + wire tracemem_on; + wire [ 35: 0] tracemem_trcdata; + wire tracemem_tw; + wire [ 15: 0] trc_ctrl; + wire trc_enb; + wire [ 6: 0] trc_im_addr; + wire trc_on; + wire trc_wrap; + wire trigbrktype; + wire trigger_state_0; + wire trigger_state_1; + wire trigout; + wire [ 35: 0] tw; + wire waitrequest; + reg write; + reg [ 31: 0] writedata; + wire xbrk_break; + wire [ 7: 0] xbrk_ctrl0; + wire [ 7: 0] xbrk_ctrl1; + wire [ 7: 0] xbrk_ctrl2; + wire [ 7: 0] xbrk_ctrl3; + wire xbrk_goto0; + wire xbrk_goto1; + wire xbrk_traceoff; + wire xbrk_traceon; + wire xbrk_trigout; + wire xbrk_wrap_traceoff; + nios_system_nios2_processor_nios2_oci_debug the_nios_system_nios2_processor_nios2_oci_debug + ( + .clk (clk), + .dbrk_break (dbrk_break), + .debugack (debugack), + .debugreq (debugreq), + .hbreak_enabled (hbreak_enabled), + .jdo (jdo), + .jrst_n (jrst_n), + .monitor_error (monitor_error), + .monitor_go (monitor_go), + .monitor_ready (monitor_ready), + .oci_hbreak_req (oci_hbreak_req), + .ocireg_ers (ocireg_ers), + .ocireg_mrs (ocireg_mrs), + .reset (reset), + .resetlatch (resetlatch), + .resetrequest (resetrequest), + .st_ready_test_idle (st_ready_test_idle), + .take_action_ocimem_a (take_action_ocimem_a), + .take_action_ocireg (take_action_ocireg), + .xbrk_break (xbrk_break) + ); + + nios_system_nios2_processor_nios2_ocimem the_nios_system_nios2_processor_nios2_ocimem + ( + .MonDReg (MonDReg), + .address (address), + .byteenable (byteenable), + .clk (clk), + .debugaccess (debugaccess), + .jdo (jdo), + .jrst_n (jrst_n), + .ociram_readdata (ociram_readdata), + .read (read), + .take_action_ocimem_a (take_action_ocimem_a), + .take_action_ocimem_b (take_action_ocimem_b), + .take_no_action_ocimem_a (take_no_action_ocimem_a), + .waitrequest (waitrequest), + .write (write), + .writedata (writedata) + ); + + nios_system_nios2_processor_nios2_avalon_reg the_nios_system_nios2_processor_nios2_avalon_reg + ( + .address (address), + .clk (clk), + .debugaccess (debugaccess), + .monitor_error (monitor_error), + .monitor_go (monitor_go), + .monitor_ready (monitor_ready), + .oci_ienable (oci_ienable), + .oci_reg_readdata (oci_reg_readdata), + .oci_single_step_mode (oci_single_step_mode), + .ocireg_ers (ocireg_ers), + .ocireg_mrs (ocireg_mrs), + .reset_n (reset_n), + .take_action_ocireg (take_action_ocireg), + .write (write), + .writedata (writedata) + ); + + nios_system_nios2_processor_nios2_oci_break the_nios_system_nios2_processor_nios2_oci_break + ( + .break_readreg (break_readreg), + .clk (clk), + .dbrk_break (dbrk_break), + .dbrk_goto0 (dbrk_goto0), + .dbrk_goto1 (dbrk_goto1), + .dbrk_hit0_latch (dbrk_hit0_latch), + .dbrk_hit1_latch (dbrk_hit1_latch), + .dbrk_hit2_latch (dbrk_hit2_latch), + .dbrk_hit3_latch (dbrk_hit3_latch), + .jdo (jdo), + .jrst_n (jrst_n), + .reset_n (reset_n), + .take_action_break_a (take_action_break_a), + .take_action_break_b (take_action_break_b), + .take_action_break_c (take_action_break_c), + .take_no_action_break_a (take_no_action_break_a), + .take_no_action_break_b (take_no_action_break_b), + .take_no_action_break_c (take_no_action_break_c), + .trigbrktype (trigbrktype), + .trigger_state_0 (trigger_state_0), + .trigger_state_1 (trigger_state_1), + .xbrk_ctrl0 (xbrk_ctrl0), + .xbrk_ctrl1 (xbrk_ctrl1), + .xbrk_ctrl2 (xbrk_ctrl2), + .xbrk_ctrl3 (xbrk_ctrl3), + .xbrk_goto0 (xbrk_goto0), + .xbrk_goto1 (xbrk_goto1) + ); + + nios_system_nios2_processor_nios2_oci_xbrk the_nios_system_nios2_processor_nios2_oci_xbrk + ( + .D_valid (D_valid), + .E_valid (E_valid), + .F_pc (F_pc), + .clk (clk), + .reset_n (reset_n), + .trigger_state_0 (trigger_state_0), + .trigger_state_1 (trigger_state_1), + .xbrk_break (xbrk_break), + .xbrk_ctrl0 (xbrk_ctrl0), + .xbrk_ctrl1 (xbrk_ctrl1), + .xbrk_ctrl2 (xbrk_ctrl2), + .xbrk_ctrl3 (xbrk_ctrl3), + .xbrk_goto0 (xbrk_goto0), + .xbrk_goto1 (xbrk_goto1), + .xbrk_traceoff (xbrk_traceoff), + .xbrk_traceon (xbrk_traceon), + .xbrk_trigout (xbrk_trigout) + ); + + nios_system_nios2_processor_nios2_oci_dbrk the_nios_system_nios2_processor_nios2_oci_dbrk + ( + .E_st_data (E_st_data), + .av_ld_data_aligned_filtered (av_ld_data_aligned_filtered), + .clk (clk), + .cpu_d_address (cpu_d_address), + .cpu_d_read (cpu_d_read), + .cpu_d_readdata (cpu_d_readdata), + .cpu_d_wait (cpu_d_wait), + .cpu_d_write (cpu_d_write), + .cpu_d_writedata (cpu_d_writedata), + .d_address (d_address), + .d_read (d_read), + .d_waitrequest (d_waitrequest), + .d_write (d_write), + .dbrk_break (dbrk_break), + .dbrk_goto0 (dbrk_goto0), + .dbrk_goto1 (dbrk_goto1), + .dbrk_traceme (dbrk_traceme), + .dbrk_traceoff (dbrk_traceoff), + .dbrk_traceon (dbrk_traceon), + .dbrk_trigout (dbrk_trigout), + .debugack (debugack), + .reset_n (reset_n) + ); + + nios_system_nios2_processor_nios2_oci_itrace the_nios_system_nios2_processor_nios2_oci_itrace + ( + .clk (clk), + .dbrk_traceoff (dbrk_traceoff), + .dbrk_traceon (dbrk_traceon), + .dct_buffer (dct_buffer), + .dct_count (dct_count), + .itm (itm), + .jdo (jdo), + .jrst_n (jrst_n), + .take_action_tracectrl (take_action_tracectrl), + .trc_ctrl (trc_ctrl), + .trc_enb (trc_enb), + .trc_on (trc_on), + .xbrk_traceoff (xbrk_traceoff), + .xbrk_traceon (xbrk_traceon), + .xbrk_wrap_traceoff (xbrk_wrap_traceoff) + ); + + nios_system_nios2_processor_nios2_oci_dtrace the_nios_system_nios2_processor_nios2_oci_dtrace + ( + .atm (atm), + .clk (clk), + .cpu_d_address (cpu_d_address), + .cpu_d_read (cpu_d_read), + .cpu_d_readdata (cpu_d_readdata), + .cpu_d_wait (cpu_d_wait), + .cpu_d_write (cpu_d_write), + .cpu_d_writedata (cpu_d_writedata), + .dtm (dtm), + .jrst_n (jrst_n), + .trc_ctrl (trc_ctrl) + ); + + nios_system_nios2_processor_nios2_oci_fifo the_nios_system_nios2_processor_nios2_oci_fifo + ( + .atm (atm), + .clk (clk), + .dbrk_traceme (dbrk_traceme), + .dbrk_traceoff (dbrk_traceoff), + .dbrk_traceon (dbrk_traceon), + .dct_buffer (dct_buffer), + .dct_count (dct_count), + .dtm (dtm), + .itm (itm), + .jrst_n (jrst_n), + .reset_n (reset_n), + .test_ending (test_ending), + .test_has_ended (test_has_ended), + .trc_on (trc_on), + .tw (tw) + ); + + nios_system_nios2_processor_nios2_oci_pib the_nios_system_nios2_processor_nios2_oci_pib + ( + .clk (clk), + .clkx2 (clkx2), + .jrst_n (jrst_n), + .tr_clk (tr_clk), + .tr_data (tr_data), + .tw (tw) + ); + + nios_system_nios2_processor_nios2_oci_im the_nios_system_nios2_processor_nios2_oci_im + ( + .clk (clk), + .jdo (jdo), + .jrst_n (jrst_n), + .reset_n (reset_n), + .take_action_tracectrl (take_action_tracectrl), + .take_action_tracemem_a (take_action_tracemem_a), + .take_action_tracemem_b (take_action_tracemem_b), + .take_no_action_tracemem_a (take_no_action_tracemem_a), + .tracemem_on (tracemem_on), + .tracemem_trcdata (tracemem_trcdata), + .tracemem_tw (tracemem_tw), + .trc_ctrl (trc_ctrl), + .trc_enb (trc_enb), + .trc_im_addr (trc_im_addr), + .trc_wrap (trc_wrap), + .tw (tw), + .xbrk_wrap_traceoff (xbrk_wrap_traceoff) + ); + + assign trigout = dbrk_trigout | xbrk_trigout; + assign jtag_debug_module_debugaccess_to_roms = debugack; + always @(posedge clk or negedge jrst_n) + begin + if (jrst_n == 0) + address <= 0; + else + address <= address_nxt; + end + + + always @(posedge clk or negedge jrst_n) + begin + if (jrst_n == 0) + byteenable <= 0; + else + byteenable <= byteenable_nxt; + end + + + always @(posedge clk or negedge jrst_n) + begin + if (jrst_n == 0) + writedata <= 0; + else + writedata <= writedata_nxt; + end + + + always @(posedge clk or negedge jrst_n) + begin + if (jrst_n == 0) + debugaccess <= 0; + else + debugaccess <= debugaccess_nxt; + end + + + always @(posedge clk or negedge jrst_n) + begin + if (jrst_n == 0) + read <= 0; + else + read <= read ? waitrequest : read_nxt; + end + + + always @(posedge clk or negedge jrst_n) + begin + if (jrst_n == 0) + write <= 0; + else + write <= write ? waitrequest : write_nxt; + end + + + always @(posedge clk or negedge jrst_n) + begin + if (jrst_n == 0) + readdata <= 0; + else + readdata <= address[8] ? oci_reg_readdata : ociram_readdata; + end + + + nios_system_nios2_processor_jtag_debug_module_wrapper the_nios_system_nios2_processor_jtag_debug_module_wrapper + ( + .MonDReg (MonDReg), + .break_readreg (break_readreg), + .clk (clk), + .dbrk_hit0_latch (dbrk_hit0_latch), + .dbrk_hit1_latch (dbrk_hit1_latch), + .dbrk_hit2_latch (dbrk_hit2_latch), + .dbrk_hit3_latch (dbrk_hit3_latch), + .debugack (debugack), + .jdo (jdo), + .jrst_n (jrst_n), + .monitor_error (monitor_error), + .monitor_ready (monitor_ready), + .reset_n (reset_n), + .resetlatch (resetlatch), + .st_ready_test_idle (st_ready_test_idle), + .take_action_break_a (take_action_break_a), + .take_action_break_b (take_action_break_b), + .take_action_break_c (take_action_break_c), + .take_action_ocimem_a (take_action_ocimem_a), + .take_action_ocimem_b (take_action_ocimem_b), + .take_action_tracectrl (take_action_tracectrl), + .take_action_tracemem_a (take_action_tracemem_a), + .take_action_tracemem_b (take_action_tracemem_b), + .take_no_action_break_a (take_no_action_break_a), + .take_no_action_break_b (take_no_action_break_b), + .take_no_action_break_c (take_no_action_break_c), + .take_no_action_ocimem_a (take_no_action_ocimem_a), + .take_no_action_tracemem_a (take_no_action_tracemem_a), + .tracemem_on (tracemem_on), + .tracemem_trcdata (tracemem_trcdata), + .tracemem_tw (tracemem_tw), + .trc_im_addr (trc_im_addr), + .trc_on (trc_on), + .trc_wrap (trc_wrap), + .trigbrktype (trigbrktype), + .trigger_state_1 (trigger_state_1) + ); + + //dummy sink, which is an e_mux + assign dummy_sink = tr_clk | + tr_data | + trigout | + debugack; + + assign debugreq = 0; + assign clkx2 = 0; + +endmodule + + +// synthesis translate_off +`timescale 1ns / 1ps +// synthesis translate_on + +// turn off superfluous verilog processor warnings +// altera message_level Level1 +// altera message_off 10034 10035 10036 10037 10230 10240 10030 + +module nios_system_nios2_processor ( + // inputs: + clk, + d_irq, + d_readdata, + d_waitrequest, + i_readdata, + i_waitrequest, + jtag_debug_module_address, + jtag_debug_module_byteenable, + jtag_debug_module_debugaccess, + jtag_debug_module_read, + jtag_debug_module_write, + jtag_debug_module_writedata, + reset_n, + + // outputs: + d_address, + d_byteenable, + d_read, + d_write, + d_writedata, + i_address, + i_read, + jtag_debug_module_debugaccess_to_roms, + jtag_debug_module_readdata, + jtag_debug_module_resetrequest, + jtag_debug_module_waitrequest, + no_ci_readra + ) +; + + output [ 18: 0] d_address; + output [ 3: 0] d_byteenable; + output d_read; + output d_write; + output [ 31: 0] d_writedata; + output [ 18: 0] i_address; + output i_read; + output jtag_debug_module_debugaccess_to_roms; + output [ 31: 0] jtag_debug_module_readdata; + output jtag_debug_module_resetrequest; + output jtag_debug_module_waitrequest; + output no_ci_readra; + input clk; + input [ 31: 0] d_irq; + input [ 31: 0] d_readdata; + input d_waitrequest; + input [ 31: 0] i_readdata; + input i_waitrequest; + input [ 8: 0] jtag_debug_module_address; + input [ 3: 0] jtag_debug_module_byteenable; + input jtag_debug_module_debugaccess; + input jtag_debug_module_read; + input jtag_debug_module_write; + input [ 31: 0] jtag_debug_module_writedata; + input reset_n; + + wire [ 1: 0] D_compare_op; + wire D_ctrl_alu_force_xor; + wire D_ctrl_alu_signed_comparison; + wire D_ctrl_alu_subtract; + wire D_ctrl_b_is_dst; + wire D_ctrl_br; + wire D_ctrl_br_cmp; + wire D_ctrl_br_uncond; + wire D_ctrl_break; + wire D_ctrl_crst; + wire D_ctrl_custom; + wire D_ctrl_custom_multi; + wire D_ctrl_exception; + wire D_ctrl_force_src2_zero; + wire D_ctrl_hi_imm16; + wire D_ctrl_ignore_dst; + wire D_ctrl_implicit_dst_eretaddr; + wire D_ctrl_implicit_dst_retaddr; + wire D_ctrl_jmp_direct; + wire D_ctrl_jmp_indirect; + wire D_ctrl_ld; + wire D_ctrl_ld_io; + wire D_ctrl_ld_non_io; + wire D_ctrl_ld_signed; + wire D_ctrl_logic; + wire D_ctrl_rdctl_inst; + wire D_ctrl_retaddr; + wire D_ctrl_rot_right; + wire D_ctrl_shift_logical; + wire D_ctrl_shift_right_arith; + wire D_ctrl_shift_rot; + wire D_ctrl_shift_rot_right; + wire D_ctrl_src2_choose_imm; + wire D_ctrl_st; + wire D_ctrl_uncond_cti_non_br; + wire D_ctrl_unsigned_lo_imm16; + wire D_ctrl_wrctl_inst; + wire [ 4: 0] D_dst_regnum; + wire [ 55: 0] D_inst; + reg [ 31: 0] D_iw /* synthesis ALTERA_IP_DEBUG_VISIBLE = 1 */; + wire [ 4: 0] D_iw_a; + wire [ 4: 0] D_iw_b; + wire [ 4: 0] D_iw_c; + wire [ 2: 0] D_iw_control_regnum; + wire [ 7: 0] D_iw_custom_n; + wire D_iw_custom_readra; + wire D_iw_custom_readrb; + wire D_iw_custom_writerc; + wire [ 15: 0] D_iw_imm16; + wire [ 25: 0] D_iw_imm26; + wire [ 4: 0] D_iw_imm5; + wire [ 1: 0] D_iw_memsz; + wire [ 5: 0] D_iw_op; + wire [ 5: 0] D_iw_opx; + wire [ 4: 0] D_iw_shift_imm5; + wire [ 4: 0] D_iw_trap_break_imm5; + wire [ 16: 0] D_jmp_direct_target_waddr; + wire [ 1: 0] D_logic_op; + wire [ 1: 0] D_logic_op_raw; + wire D_mem16; + wire D_mem32; + wire D_mem8; + wire D_op_add; + wire D_op_addi; + wire D_op_and; + wire D_op_andhi; + wire D_op_andi; + wire D_op_beq; + wire D_op_bge; + wire D_op_bgeu; + wire D_op_blt; + wire D_op_bltu; + wire D_op_bne; + wire D_op_br; + wire D_op_break; + wire D_op_bret; + wire D_op_call; + wire D_op_callr; + wire D_op_cmpeq; + wire D_op_cmpeqi; + wire D_op_cmpge; + wire D_op_cmpgei; + wire D_op_cmpgeu; + wire D_op_cmpgeui; + wire D_op_cmplt; + wire D_op_cmplti; + wire D_op_cmpltu; + wire D_op_cmpltui; + wire D_op_cmpne; + wire D_op_cmpnei; + wire D_op_crst; + wire D_op_custom; + wire D_op_div; + wire D_op_divu; + wire D_op_eret; + wire D_op_flushd; + wire D_op_flushda; + wire D_op_flushi; + wire D_op_flushp; + wire D_op_hbreak; + wire D_op_initd; + wire D_op_initda; + wire D_op_initi; + wire D_op_intr; + wire D_op_jmp; + wire D_op_jmpi; + wire D_op_ldb; + wire D_op_ldbio; + wire D_op_ldbu; + wire D_op_ldbuio; + wire D_op_ldh; + wire D_op_ldhio; + wire D_op_ldhu; + wire D_op_ldhuio; + wire D_op_ldl; + wire D_op_ldw; + wire D_op_ldwio; + wire D_op_mul; + wire D_op_muli; + wire D_op_mulxss; + wire D_op_mulxsu; + wire D_op_mulxuu; + wire D_op_nextpc; + wire D_op_nor; + wire D_op_opx; + wire D_op_or; + wire D_op_orhi; + wire D_op_ori; + wire D_op_rdctl; + wire D_op_rdprs; + wire D_op_ret; + wire D_op_rol; + wire D_op_roli; + wire D_op_ror; + wire D_op_rsv02; + wire D_op_rsv09; + wire D_op_rsv10; + wire D_op_rsv17; + wire D_op_rsv18; + wire D_op_rsv25; + wire D_op_rsv26; + wire D_op_rsv33; + wire D_op_rsv34; + wire D_op_rsv41; + wire D_op_rsv42; + wire D_op_rsv49; + wire D_op_rsv57; + wire D_op_rsv61; + wire D_op_rsv62; + wire D_op_rsv63; + wire D_op_rsvx00; + wire D_op_rsvx10; + wire D_op_rsvx15; + wire D_op_rsvx17; + wire D_op_rsvx21; + wire D_op_rsvx25; + wire D_op_rsvx33; + wire D_op_rsvx34; + wire D_op_rsvx35; + wire D_op_rsvx42; + wire D_op_rsvx43; + wire D_op_rsvx44; + wire D_op_rsvx47; + wire D_op_rsvx50; + wire D_op_rsvx51; + wire D_op_rsvx55; + wire D_op_rsvx56; + wire D_op_rsvx60; + wire D_op_rsvx63; + wire D_op_sll; + wire D_op_slli; + wire D_op_sra; + wire D_op_srai; + wire D_op_srl; + wire D_op_srli; + wire D_op_stb; + wire D_op_stbio; + wire D_op_stc; + wire D_op_sth; + wire D_op_sthio; + wire D_op_stw; + wire D_op_stwio; + wire D_op_sub; + wire D_op_sync; + wire D_op_trap; + wire D_op_wrctl; + wire D_op_wrprs; + wire D_op_xor; + wire D_op_xorhi; + wire D_op_xori; + reg D_valid; + wire [ 55: 0] D_vinst; + wire D_wr_dst_reg; + wire [ 31: 0] E_alu_result; + reg E_alu_sub; + wire [ 32: 0] E_arith_result; + wire [ 31: 0] E_arith_src1; + wire [ 31: 0] E_arith_src2; + wire E_ci_multi_stall; + wire [ 31: 0] E_ci_result; + wire E_cmp_result; + wire [ 31: 0] E_control_rd_data; + wire E_eq; + reg E_invert_arith_src_msb; + wire E_ld_stall; + wire [ 31: 0] E_logic_result; + wire E_logic_result_is_0; + wire E_lt; + wire [ 18: 0] E_mem_baddr; + wire [ 3: 0] E_mem_byte_en; + reg E_new_inst; + reg [ 4: 0] E_shift_rot_cnt; + wire [ 4: 0] E_shift_rot_cnt_nxt; + wire E_shift_rot_done; + wire E_shift_rot_fill_bit; + reg [ 31: 0] E_shift_rot_result; + wire [ 31: 0] E_shift_rot_result_nxt; + wire E_shift_rot_stall; + reg [ 31: 0] E_src1; + reg [ 31: 0] E_src2; + wire [ 31: 0] E_st_data; + wire E_st_stall; + wire E_stall; + reg E_valid; + wire [ 55: 0] E_vinst; + wire E_wrctl_bstatus; + wire E_wrctl_estatus; + wire E_wrctl_ienable; + wire E_wrctl_status; + wire [ 31: 0] F_av_iw; + wire [ 4: 0] F_av_iw_a; + wire [ 4: 0] F_av_iw_b; + wire [ 4: 0] F_av_iw_c; + wire [ 2: 0] F_av_iw_control_regnum; + wire [ 7: 0] F_av_iw_custom_n; + wire F_av_iw_custom_readra; + wire F_av_iw_custom_readrb; + wire F_av_iw_custom_writerc; + wire [ 15: 0] F_av_iw_imm16; + wire [ 25: 0] F_av_iw_imm26; + wire [ 4: 0] F_av_iw_imm5; + wire [ 1: 0] F_av_iw_memsz; + wire [ 5: 0] F_av_iw_op; + wire [ 5: 0] F_av_iw_opx; + wire [ 4: 0] F_av_iw_shift_imm5; + wire [ 4: 0] F_av_iw_trap_break_imm5; + wire F_av_mem16; + wire F_av_mem32; + wire F_av_mem8; + wire [ 55: 0] F_inst; + wire [ 31: 0] F_iw; + wire [ 4: 0] F_iw_a; + wire [ 4: 0] F_iw_b; + wire [ 4: 0] F_iw_c; + wire [ 2: 0] F_iw_control_regnum; + wire [ 7: 0] F_iw_custom_n; + wire F_iw_custom_readra; + wire F_iw_custom_readrb; + wire F_iw_custom_writerc; + wire [ 15: 0] F_iw_imm16; + wire [ 25: 0] F_iw_imm26; + wire [ 4: 0] F_iw_imm5; + wire [ 1: 0] F_iw_memsz; + wire [ 5: 0] F_iw_op; + wire [ 5: 0] F_iw_opx; + wire [ 4: 0] F_iw_shift_imm5; + wire [ 4: 0] F_iw_trap_break_imm5; + wire F_mem16; + wire F_mem32; + wire F_mem8; + wire F_op_add; + wire F_op_addi; + wire F_op_and; + wire F_op_andhi; + wire F_op_andi; + wire F_op_beq; + wire F_op_bge; + wire F_op_bgeu; + wire F_op_blt; + wire F_op_bltu; + wire F_op_bne; + wire F_op_br; + wire F_op_break; + wire F_op_bret; + wire F_op_call; + wire F_op_callr; + wire F_op_cmpeq; + wire F_op_cmpeqi; + wire F_op_cmpge; + wire F_op_cmpgei; + wire F_op_cmpgeu; + wire F_op_cmpgeui; + wire F_op_cmplt; + wire F_op_cmplti; + wire F_op_cmpltu; + wire F_op_cmpltui; + wire F_op_cmpne; + wire F_op_cmpnei; + wire F_op_crst; + wire F_op_custom; + wire F_op_div; + wire F_op_divu; + wire F_op_eret; + wire F_op_flushd; + wire F_op_flushda; + wire F_op_flushi; + wire F_op_flushp; + wire F_op_hbreak; + wire F_op_initd; + wire F_op_initda; + wire F_op_initi; + wire F_op_intr; + wire F_op_jmp; + wire F_op_jmpi; + wire F_op_ldb; + wire F_op_ldbio; + wire F_op_ldbu; + wire F_op_ldbuio; + wire F_op_ldh; + wire F_op_ldhio; + wire F_op_ldhu; + wire F_op_ldhuio; + wire F_op_ldl; + wire F_op_ldw; + wire F_op_ldwio; + wire F_op_mul; + wire F_op_muli; + wire F_op_mulxss; + wire F_op_mulxsu; + wire F_op_mulxuu; + wire F_op_nextpc; + wire F_op_nor; + wire F_op_opx; + wire F_op_or; + wire F_op_orhi; + wire F_op_ori; + wire F_op_rdctl; + wire F_op_rdprs; + wire F_op_ret; + wire F_op_rol; + wire F_op_roli; + wire F_op_ror; + wire F_op_rsv02; + wire F_op_rsv09; + wire F_op_rsv10; + wire F_op_rsv17; + wire F_op_rsv18; + wire F_op_rsv25; + wire F_op_rsv26; + wire F_op_rsv33; + wire F_op_rsv34; + wire F_op_rsv41; + wire F_op_rsv42; + wire F_op_rsv49; + wire F_op_rsv57; + wire F_op_rsv61; + wire F_op_rsv62; + wire F_op_rsv63; + wire F_op_rsvx00; + wire F_op_rsvx10; + wire F_op_rsvx15; + wire F_op_rsvx17; + wire F_op_rsvx21; + wire F_op_rsvx25; + wire F_op_rsvx33; + wire F_op_rsvx34; + wire F_op_rsvx35; + wire F_op_rsvx42; + wire F_op_rsvx43; + wire F_op_rsvx44; + wire F_op_rsvx47; + wire F_op_rsvx50; + wire F_op_rsvx51; + wire F_op_rsvx55; + wire F_op_rsvx56; + wire F_op_rsvx60; + wire F_op_rsvx63; + wire F_op_sll; + wire F_op_slli; + wire F_op_sra; + wire F_op_srai; + wire F_op_srl; + wire F_op_srli; + wire F_op_stb; + wire F_op_stbio; + wire F_op_stc; + wire F_op_sth; + wire F_op_sthio; + wire F_op_stw; + wire F_op_stwio; + wire F_op_sub; + wire F_op_sync; + wire F_op_trap; + wire F_op_wrctl; + wire F_op_wrprs; + wire F_op_xor; + wire F_op_xorhi; + wire F_op_xori; + reg [ 16: 0] F_pc /* synthesis ALTERA_IP_DEBUG_VISIBLE = 1 */; + wire F_pc_en; + wire [ 16: 0] F_pc_no_crst_nxt; + wire [ 16: 0] F_pc_nxt; + wire [ 16: 0] F_pc_plus_one; + wire [ 1: 0] F_pc_sel_nxt; + wire [ 18: 0] F_pcb; + wire [ 18: 0] F_pcb_nxt; + wire [ 18: 0] F_pcb_plus_four; + wire F_valid; + wire [ 55: 0] F_vinst; + reg [ 1: 0] R_compare_op; + reg R_ctrl_alu_force_xor; + wire R_ctrl_alu_force_xor_nxt; + reg R_ctrl_alu_signed_comparison; + wire R_ctrl_alu_signed_comparison_nxt; + reg R_ctrl_alu_subtract; + wire R_ctrl_alu_subtract_nxt; + reg R_ctrl_b_is_dst; + wire R_ctrl_b_is_dst_nxt; + reg R_ctrl_br; + reg R_ctrl_br_cmp; + wire R_ctrl_br_cmp_nxt; + wire R_ctrl_br_nxt; + reg R_ctrl_br_uncond; + wire R_ctrl_br_uncond_nxt; + reg R_ctrl_break; + wire R_ctrl_break_nxt; + reg R_ctrl_crst; + wire R_ctrl_crst_nxt; + reg R_ctrl_custom; + reg R_ctrl_custom_multi; + wire R_ctrl_custom_multi_nxt; + wire R_ctrl_custom_nxt; + reg R_ctrl_exception; + wire R_ctrl_exception_nxt; + reg R_ctrl_force_src2_zero; + wire R_ctrl_force_src2_zero_nxt; + reg R_ctrl_hi_imm16; + wire R_ctrl_hi_imm16_nxt; + reg R_ctrl_ignore_dst; + wire R_ctrl_ignore_dst_nxt; + reg R_ctrl_implicit_dst_eretaddr; + wire R_ctrl_implicit_dst_eretaddr_nxt; + reg R_ctrl_implicit_dst_retaddr; + wire R_ctrl_implicit_dst_retaddr_nxt; + reg R_ctrl_jmp_direct; + wire R_ctrl_jmp_direct_nxt; + reg R_ctrl_jmp_indirect; + wire R_ctrl_jmp_indirect_nxt; + reg R_ctrl_ld; + reg R_ctrl_ld_io; + wire R_ctrl_ld_io_nxt; + reg R_ctrl_ld_non_io; + wire R_ctrl_ld_non_io_nxt; + wire R_ctrl_ld_nxt; + reg R_ctrl_ld_signed; + wire R_ctrl_ld_signed_nxt; + reg R_ctrl_logic; + wire R_ctrl_logic_nxt; + reg R_ctrl_rdctl_inst; + wire R_ctrl_rdctl_inst_nxt; + reg R_ctrl_retaddr; + wire R_ctrl_retaddr_nxt; + reg R_ctrl_rot_right; + wire R_ctrl_rot_right_nxt; + reg R_ctrl_shift_logical; + wire R_ctrl_shift_logical_nxt; + reg R_ctrl_shift_right_arith; + wire R_ctrl_shift_right_arith_nxt; + reg R_ctrl_shift_rot; + wire R_ctrl_shift_rot_nxt; + reg R_ctrl_shift_rot_right; + wire R_ctrl_shift_rot_right_nxt; + reg R_ctrl_src2_choose_imm; + wire R_ctrl_src2_choose_imm_nxt; + reg R_ctrl_st; + wire R_ctrl_st_nxt; + reg R_ctrl_uncond_cti_non_br; + wire R_ctrl_uncond_cti_non_br_nxt; + reg R_ctrl_unsigned_lo_imm16; + wire R_ctrl_unsigned_lo_imm16_nxt; + reg R_ctrl_wrctl_inst; + wire R_ctrl_wrctl_inst_nxt; + reg [ 4: 0] R_dst_regnum /* synthesis ALTERA_IP_DEBUG_VISIBLE = 1 */; + wire R_en; + reg [ 1: 0] R_logic_op; + wire [ 31: 0] R_rf_a; + wire [ 31: 0] R_rf_b; + wire [ 31: 0] R_src1; + wire [ 31: 0] R_src2; + wire [ 15: 0] R_src2_hi; + wire [ 15: 0] R_src2_lo; + reg R_src2_use_imm; + wire [ 7: 0] R_stb_data; + wire [ 15: 0] R_sth_data; + reg R_valid; + wire [ 55: 0] R_vinst; + reg R_wr_dst_reg; + reg [ 31: 0] W_alu_result; + wire W_br_taken; + reg W_bstatus_reg; + wire W_bstatus_reg_inst_nxt; + wire W_bstatus_reg_nxt; + reg W_cmp_result; + reg [ 31: 0] W_control_rd_data; + reg W_estatus_reg; + wire W_estatus_reg_inst_nxt; + wire W_estatus_reg_nxt; + reg [ 31: 0] W_ienable_reg; + wire [ 31: 0] W_ienable_reg_nxt; + reg [ 31: 0] W_ipending_reg; + wire [ 31: 0] W_ipending_reg_nxt; + wire [ 18: 0] W_mem_baddr; + wire [ 31: 0] W_rf_wr_data; + wire W_rf_wren; + wire W_status_reg; + reg W_status_reg_pie; + wire W_status_reg_pie_inst_nxt; + wire W_status_reg_pie_nxt; + reg W_valid /* synthesis ALTERA_IP_DEBUG_VISIBLE = 1 */; + wire [ 55: 0] W_vinst; + wire [ 31: 0] W_wr_data; + wire [ 31: 0] W_wr_data_non_zero; + wire av_fill_bit; + reg [ 1: 0] av_ld_align_cycle; + wire [ 1: 0] av_ld_align_cycle_nxt; + wire av_ld_align_one_more_cycle; + reg av_ld_aligning_data; + wire av_ld_aligning_data_nxt; + reg [ 7: 0] av_ld_byte0_data; + wire [ 7: 0] av_ld_byte0_data_nxt; + reg [ 7: 0] av_ld_byte1_data; + wire av_ld_byte1_data_en; + wire [ 7: 0] av_ld_byte1_data_nxt; + reg [ 7: 0] av_ld_byte2_data; + wire [ 7: 0] av_ld_byte2_data_nxt; + reg [ 7: 0] av_ld_byte3_data; + wire [ 7: 0] av_ld_byte3_data_nxt; + wire [ 31: 0] av_ld_data_aligned_filtered; + wire [ 31: 0] av_ld_data_aligned_unfiltered; + wire av_ld_done; + wire av_ld_extend; + wire av_ld_getting_data; + wire av_ld_rshift8; + reg av_ld_waiting_for_data; + wire av_ld_waiting_for_data_nxt; + wire av_sign_bit; + wire [ 18: 0] d_address; + reg [ 3: 0] d_byteenable; + reg d_read; + wire d_read_nxt; + wire d_write; + wire d_write_nxt; + reg [ 31: 0] d_writedata; + reg hbreak_enabled; + reg hbreak_pending; + wire hbreak_pending_nxt; + wire hbreak_req; + wire [ 18: 0] i_address; + reg i_read; + wire i_read_nxt; + wire [ 31: 0] iactive; + wire intr_req; + wire jtag_debug_module_clk; + wire jtag_debug_module_debugaccess_to_roms; + wire [ 31: 0] jtag_debug_module_readdata; + wire jtag_debug_module_reset; + wire jtag_debug_module_resetrequest; + wire jtag_debug_module_waitrequest; + wire no_ci_readra; + wire oci_hbreak_req; + wire [ 31: 0] oci_ienable; + wire oci_single_step_mode; + wire oci_tb_hbreak_req; + wire test_ending; + wire test_has_ended; + reg wait_for_one_post_bret_inst; + //the_nios_system_nios2_processor_test_bench, which is an e_instance + nios_system_nios2_processor_test_bench the_nios_system_nios2_processor_test_bench + ( + .D_iw (D_iw), + .D_iw_op (D_iw_op), + .D_iw_opx (D_iw_opx), + .D_valid (D_valid), + .E_valid (E_valid), + .F_pcb (F_pcb), + .F_valid (F_valid), + .R_ctrl_ld (R_ctrl_ld), + .R_ctrl_ld_non_io (R_ctrl_ld_non_io), + .R_dst_regnum (R_dst_regnum), + .R_wr_dst_reg (R_wr_dst_reg), + .W_valid (W_valid), + .W_vinst (W_vinst), + .W_wr_data (W_wr_data), + .av_ld_data_aligned_filtered (av_ld_data_aligned_filtered), + .av_ld_data_aligned_unfiltered (av_ld_data_aligned_unfiltered), + .clk (clk), + .d_address (d_address), + .d_byteenable (d_byteenable), + .d_read (d_read), + .d_write (d_write), + .d_write_nxt (d_write_nxt), + .i_address (i_address), + .i_read (i_read), + .i_readdata (i_readdata), + .i_waitrequest (i_waitrequest), + .reset_n (reset_n), + .test_has_ended (test_has_ended) + ); + + assign F_av_iw_a = F_av_iw[31 : 27]; + assign F_av_iw_b = F_av_iw[26 : 22]; + assign F_av_iw_c = F_av_iw[21 : 17]; + assign F_av_iw_custom_n = F_av_iw[13 : 6]; + assign F_av_iw_custom_readra = F_av_iw[16]; + assign F_av_iw_custom_readrb = F_av_iw[15]; + assign F_av_iw_custom_writerc = F_av_iw[14]; + assign F_av_iw_opx = F_av_iw[16 : 11]; + assign F_av_iw_op = F_av_iw[5 : 0]; + assign F_av_iw_shift_imm5 = F_av_iw[10 : 6]; + assign F_av_iw_trap_break_imm5 = F_av_iw[10 : 6]; + assign F_av_iw_imm5 = F_av_iw[10 : 6]; + assign F_av_iw_imm16 = F_av_iw[21 : 6]; + assign F_av_iw_imm26 = F_av_iw[31 : 6]; + assign F_av_iw_memsz = F_av_iw[4 : 3]; + assign F_av_iw_control_regnum = F_av_iw[8 : 6]; + assign F_av_mem8 = F_av_iw_memsz == 2'b00; + assign F_av_mem16 = F_av_iw_memsz == 2'b01; + assign F_av_mem32 = F_av_iw_memsz[1] == 1'b1; + assign F_iw_a = F_iw[31 : 27]; + assign F_iw_b = F_iw[26 : 22]; + assign F_iw_c = F_iw[21 : 17]; + assign F_iw_custom_n = F_iw[13 : 6]; + assign F_iw_custom_readra = F_iw[16]; + assign F_iw_custom_readrb = F_iw[15]; + assign F_iw_custom_writerc = F_iw[14]; + assign F_iw_opx = F_iw[16 : 11]; + assign F_iw_op = F_iw[5 : 0]; + assign F_iw_shift_imm5 = F_iw[10 : 6]; + assign F_iw_trap_break_imm5 = F_iw[10 : 6]; + assign F_iw_imm5 = F_iw[10 : 6]; + assign F_iw_imm16 = F_iw[21 : 6]; + assign F_iw_imm26 = F_iw[31 : 6]; + assign F_iw_memsz = F_iw[4 : 3]; + assign F_iw_control_regnum = F_iw[8 : 6]; + assign F_mem8 = F_iw_memsz == 2'b00; + assign F_mem16 = F_iw_memsz == 2'b01; + assign F_mem32 = F_iw_memsz[1] == 1'b1; + assign D_iw_a = D_iw[31 : 27]; + assign D_iw_b = D_iw[26 : 22]; + assign D_iw_c = D_iw[21 : 17]; + assign D_iw_custom_n = D_iw[13 : 6]; + assign D_iw_custom_readra = D_iw[16]; + assign D_iw_custom_readrb = D_iw[15]; + assign D_iw_custom_writerc = D_iw[14]; + assign D_iw_opx = D_iw[16 : 11]; + assign D_iw_op = D_iw[5 : 0]; + assign D_iw_shift_imm5 = D_iw[10 : 6]; + assign D_iw_trap_break_imm5 = D_iw[10 : 6]; + assign D_iw_imm5 = D_iw[10 : 6]; + assign D_iw_imm16 = D_iw[21 : 6]; + assign D_iw_imm26 = D_iw[31 : 6]; + assign D_iw_memsz = D_iw[4 : 3]; + assign D_iw_control_regnum = D_iw[8 : 6]; + assign D_mem8 = D_iw_memsz == 2'b00; + assign D_mem16 = D_iw_memsz == 2'b01; + assign D_mem32 = D_iw_memsz[1] == 1'b1; + assign F_op_call = F_iw_op == 0; + assign F_op_jmpi = F_iw_op == 1; + assign F_op_ldbu = F_iw_op == 3; + assign F_op_addi = F_iw_op == 4; + assign F_op_stb = F_iw_op == 5; + assign F_op_br = F_iw_op == 6; + assign F_op_ldb = F_iw_op == 7; + assign F_op_cmpgei = F_iw_op == 8; + assign F_op_ldhu = F_iw_op == 11; + assign F_op_andi = F_iw_op == 12; + assign F_op_sth = F_iw_op == 13; + assign F_op_bge = F_iw_op == 14; + assign F_op_ldh = F_iw_op == 15; + assign F_op_cmplti = F_iw_op == 16; + assign F_op_initda = F_iw_op == 19; + assign F_op_ori = F_iw_op == 20; + assign F_op_stw = F_iw_op == 21; + assign F_op_blt = F_iw_op == 22; + assign F_op_ldw = F_iw_op == 23; + assign F_op_cmpnei = F_iw_op == 24; + assign F_op_flushda = F_iw_op == 27; + assign F_op_xori = F_iw_op == 28; + assign F_op_stc = F_iw_op == 29; + assign F_op_bne = F_iw_op == 30; + assign F_op_ldl = F_iw_op == 31; + assign F_op_cmpeqi = F_iw_op == 32; + assign F_op_ldbuio = F_iw_op == 35; + assign F_op_muli = F_iw_op == 36; + assign F_op_stbio = F_iw_op == 37; + assign F_op_beq = F_iw_op == 38; + assign F_op_ldbio = F_iw_op == 39; + assign F_op_cmpgeui = F_iw_op == 40; + assign F_op_ldhuio = F_iw_op == 43; + assign F_op_andhi = F_iw_op == 44; + assign F_op_sthio = F_iw_op == 45; + assign F_op_bgeu = F_iw_op == 46; + assign F_op_ldhio = F_iw_op == 47; + assign F_op_cmpltui = F_iw_op == 48; + assign F_op_initd = F_iw_op == 51; + assign F_op_orhi = F_iw_op == 52; + assign F_op_stwio = F_iw_op == 53; + assign F_op_bltu = F_iw_op == 54; + assign F_op_ldwio = F_iw_op == 55; + assign F_op_rdprs = F_iw_op == 56; + assign F_op_flushd = F_iw_op == 59; + assign F_op_xorhi = F_iw_op == 60; + assign F_op_rsv02 = F_iw_op == 2; + assign F_op_rsv09 = F_iw_op == 9; + assign F_op_rsv10 = F_iw_op == 10; + assign F_op_rsv17 = F_iw_op == 17; + assign F_op_rsv18 = F_iw_op == 18; + assign F_op_rsv25 = F_iw_op == 25; + assign F_op_rsv26 = F_iw_op == 26; + assign F_op_rsv33 = F_iw_op == 33; + assign F_op_rsv34 = F_iw_op == 34; + assign F_op_rsv41 = F_iw_op == 41; + assign F_op_rsv42 = F_iw_op == 42; + assign F_op_rsv49 = F_iw_op == 49; + assign F_op_rsv57 = F_iw_op == 57; + assign F_op_rsv61 = F_iw_op == 61; + assign F_op_rsv62 = F_iw_op == 62; + assign F_op_rsv63 = F_iw_op == 63; + assign F_op_eret = F_op_opx & (F_iw_opx == 1); + assign F_op_roli = F_op_opx & (F_iw_opx == 2); + assign F_op_rol = F_op_opx & (F_iw_opx == 3); + assign F_op_flushp = F_op_opx & (F_iw_opx == 4); + assign F_op_ret = F_op_opx & (F_iw_opx == 5); + assign F_op_nor = F_op_opx & (F_iw_opx == 6); + assign F_op_mulxuu = F_op_opx & (F_iw_opx == 7); + assign F_op_cmpge = F_op_opx & (F_iw_opx == 8); + assign F_op_bret = F_op_opx & (F_iw_opx == 9); + assign F_op_ror = F_op_opx & (F_iw_opx == 11); + assign F_op_flushi = F_op_opx & (F_iw_opx == 12); + assign F_op_jmp = F_op_opx & (F_iw_opx == 13); + assign F_op_and = F_op_opx & (F_iw_opx == 14); + assign F_op_cmplt = F_op_opx & (F_iw_opx == 16); + assign F_op_slli = F_op_opx & (F_iw_opx == 18); + assign F_op_sll = F_op_opx & (F_iw_opx == 19); + assign F_op_wrprs = F_op_opx & (F_iw_opx == 20); + assign F_op_or = F_op_opx & (F_iw_opx == 22); + assign F_op_mulxsu = F_op_opx & (F_iw_opx == 23); + assign F_op_cmpne = F_op_opx & (F_iw_opx == 24); + assign F_op_srli = F_op_opx & (F_iw_opx == 26); + assign F_op_srl = F_op_opx & (F_iw_opx == 27); + assign F_op_nextpc = F_op_opx & (F_iw_opx == 28); + assign F_op_callr = F_op_opx & (F_iw_opx == 29); + assign F_op_xor = F_op_opx & (F_iw_opx == 30); + assign F_op_mulxss = F_op_opx & (F_iw_opx == 31); + assign F_op_cmpeq = F_op_opx & (F_iw_opx == 32); + assign F_op_divu = F_op_opx & (F_iw_opx == 36); + assign F_op_div = F_op_opx & (F_iw_opx == 37); + assign F_op_rdctl = F_op_opx & (F_iw_opx == 38); + assign F_op_mul = F_op_opx & (F_iw_opx == 39); + assign F_op_cmpgeu = F_op_opx & (F_iw_opx == 40); + assign F_op_initi = F_op_opx & (F_iw_opx == 41); + assign F_op_trap = F_op_opx & (F_iw_opx == 45); + assign F_op_wrctl = F_op_opx & (F_iw_opx == 46); + assign F_op_cmpltu = F_op_opx & (F_iw_opx == 48); + assign F_op_add = F_op_opx & (F_iw_opx == 49); + assign F_op_break = F_op_opx & (F_iw_opx == 52); + assign F_op_hbreak = F_op_opx & (F_iw_opx == 53); + assign F_op_sync = F_op_opx & (F_iw_opx == 54); + assign F_op_sub = F_op_opx & (F_iw_opx == 57); + assign F_op_srai = F_op_opx & (F_iw_opx == 58); + assign F_op_sra = F_op_opx & (F_iw_opx == 59); + assign F_op_intr = F_op_opx & (F_iw_opx == 61); + assign F_op_crst = F_op_opx & (F_iw_opx == 62); + assign F_op_rsvx00 = F_op_opx & (F_iw_opx == 0); + assign F_op_rsvx10 = F_op_opx & (F_iw_opx == 10); + assign F_op_rsvx15 = F_op_opx & (F_iw_opx == 15); + assign F_op_rsvx17 = F_op_opx & (F_iw_opx == 17); + assign F_op_rsvx21 = F_op_opx & (F_iw_opx == 21); + assign F_op_rsvx25 = F_op_opx & (F_iw_opx == 25); + assign F_op_rsvx33 = F_op_opx & (F_iw_opx == 33); + assign F_op_rsvx34 = F_op_opx & (F_iw_opx == 34); + assign F_op_rsvx35 = F_op_opx & (F_iw_opx == 35); + assign F_op_rsvx42 = F_op_opx & (F_iw_opx == 42); + assign F_op_rsvx43 = F_op_opx & (F_iw_opx == 43); + assign F_op_rsvx44 = F_op_opx & (F_iw_opx == 44); + assign F_op_rsvx47 = F_op_opx & (F_iw_opx == 47); + assign F_op_rsvx50 = F_op_opx & (F_iw_opx == 50); + assign F_op_rsvx51 = F_op_opx & (F_iw_opx == 51); + assign F_op_rsvx55 = F_op_opx & (F_iw_opx == 55); + assign F_op_rsvx56 = F_op_opx & (F_iw_opx == 56); + assign F_op_rsvx60 = F_op_opx & (F_iw_opx == 60); + assign F_op_rsvx63 = F_op_opx & (F_iw_opx == 63); + assign F_op_opx = F_iw_op == 58; + assign F_op_custom = F_iw_op == 50; + assign D_op_call = D_iw_op == 0; + assign D_op_jmpi = D_iw_op == 1; + assign D_op_ldbu = D_iw_op == 3; + assign D_op_addi = D_iw_op == 4; + assign D_op_stb = D_iw_op == 5; + assign D_op_br = D_iw_op == 6; + assign D_op_ldb = D_iw_op == 7; + assign D_op_cmpgei = D_iw_op == 8; + assign D_op_ldhu = D_iw_op == 11; + assign D_op_andi = D_iw_op == 12; + assign D_op_sth = D_iw_op == 13; + assign D_op_bge = D_iw_op == 14; + assign D_op_ldh = D_iw_op == 15; + assign D_op_cmplti = D_iw_op == 16; + assign D_op_initda = D_iw_op == 19; + assign D_op_ori = D_iw_op == 20; + assign D_op_stw = D_iw_op == 21; + assign D_op_blt = D_iw_op == 22; + assign D_op_ldw = D_iw_op == 23; + assign D_op_cmpnei = D_iw_op == 24; + assign D_op_flushda = D_iw_op == 27; + assign D_op_xori = D_iw_op == 28; + assign D_op_stc = D_iw_op == 29; + assign D_op_bne = D_iw_op == 30; + assign D_op_ldl = D_iw_op == 31; + assign D_op_cmpeqi = D_iw_op == 32; + assign D_op_ldbuio = D_iw_op == 35; + assign D_op_muli = D_iw_op == 36; + assign D_op_stbio = D_iw_op == 37; + assign D_op_beq = D_iw_op == 38; + assign D_op_ldbio = D_iw_op == 39; + assign D_op_cmpgeui = D_iw_op == 40; + assign D_op_ldhuio = D_iw_op == 43; + assign D_op_andhi = D_iw_op == 44; + assign D_op_sthio = D_iw_op == 45; + assign D_op_bgeu = D_iw_op == 46; + assign D_op_ldhio = D_iw_op == 47; + assign D_op_cmpltui = D_iw_op == 48; + assign D_op_initd = D_iw_op == 51; + assign D_op_orhi = D_iw_op == 52; + assign D_op_stwio = D_iw_op == 53; + assign D_op_bltu = D_iw_op == 54; + assign D_op_ldwio = D_iw_op == 55; + assign D_op_rdprs = D_iw_op == 56; + assign D_op_flushd = D_iw_op == 59; + assign D_op_xorhi = D_iw_op == 60; + assign D_op_rsv02 = D_iw_op == 2; + assign D_op_rsv09 = D_iw_op == 9; + assign D_op_rsv10 = D_iw_op == 10; + assign D_op_rsv17 = D_iw_op == 17; + assign D_op_rsv18 = D_iw_op == 18; + assign D_op_rsv25 = D_iw_op == 25; + assign D_op_rsv26 = D_iw_op == 26; + assign D_op_rsv33 = D_iw_op == 33; + assign D_op_rsv34 = D_iw_op == 34; + assign D_op_rsv41 = D_iw_op == 41; + assign D_op_rsv42 = D_iw_op == 42; + assign D_op_rsv49 = D_iw_op == 49; + assign D_op_rsv57 = D_iw_op == 57; + assign D_op_rsv61 = D_iw_op == 61; + assign D_op_rsv62 = D_iw_op == 62; + assign D_op_rsv63 = D_iw_op == 63; + assign D_op_eret = D_op_opx & (D_iw_opx == 1); + assign D_op_roli = D_op_opx & (D_iw_opx == 2); + assign D_op_rol = D_op_opx & (D_iw_opx == 3); + assign D_op_flushp = D_op_opx & (D_iw_opx == 4); + assign D_op_ret = D_op_opx & (D_iw_opx == 5); + assign D_op_nor = D_op_opx & (D_iw_opx == 6); + assign D_op_mulxuu = D_op_opx & (D_iw_opx == 7); + assign D_op_cmpge = D_op_opx & (D_iw_opx == 8); + assign D_op_bret = D_op_opx & (D_iw_opx == 9); + assign D_op_ror = D_op_opx & (D_iw_opx == 11); + assign D_op_flushi = D_op_opx & (D_iw_opx == 12); + assign D_op_jmp = D_op_opx & (D_iw_opx == 13); + assign D_op_and = D_op_opx & (D_iw_opx == 14); + assign D_op_cmplt = D_op_opx & (D_iw_opx == 16); + assign D_op_slli = D_op_opx & (D_iw_opx == 18); + assign D_op_sll = D_op_opx & (D_iw_opx == 19); + assign D_op_wrprs = D_op_opx & (D_iw_opx == 20); + assign D_op_or = D_op_opx & (D_iw_opx == 22); + assign D_op_mulxsu = D_op_opx & (D_iw_opx == 23); + assign D_op_cmpne = D_op_opx & (D_iw_opx == 24); + assign D_op_srli = D_op_opx & (D_iw_opx == 26); + assign D_op_srl = D_op_opx & (D_iw_opx == 27); + assign D_op_nextpc = D_op_opx & (D_iw_opx == 28); + assign D_op_callr = D_op_opx & (D_iw_opx == 29); + assign D_op_xor = D_op_opx & (D_iw_opx == 30); + assign D_op_mulxss = D_op_opx & (D_iw_opx == 31); + assign D_op_cmpeq = D_op_opx & (D_iw_opx == 32); + assign D_op_divu = D_op_opx & (D_iw_opx == 36); + assign D_op_div = D_op_opx & (D_iw_opx == 37); + assign D_op_rdctl = D_op_opx & (D_iw_opx == 38); + assign D_op_mul = D_op_opx & (D_iw_opx == 39); + assign D_op_cmpgeu = D_op_opx & (D_iw_opx == 40); + assign D_op_initi = D_op_opx & (D_iw_opx == 41); + assign D_op_trap = D_op_opx & (D_iw_opx == 45); + assign D_op_wrctl = D_op_opx & (D_iw_opx == 46); + assign D_op_cmpltu = D_op_opx & (D_iw_opx == 48); + assign D_op_add = D_op_opx & (D_iw_opx == 49); + assign D_op_break = D_op_opx & (D_iw_opx == 52); + assign D_op_hbreak = D_op_opx & (D_iw_opx == 53); + assign D_op_sync = D_op_opx & (D_iw_opx == 54); + assign D_op_sub = D_op_opx & (D_iw_opx == 57); + assign D_op_srai = D_op_opx & (D_iw_opx == 58); + assign D_op_sra = D_op_opx & (D_iw_opx == 59); + assign D_op_intr = D_op_opx & (D_iw_opx == 61); + assign D_op_crst = D_op_opx & (D_iw_opx == 62); + assign D_op_rsvx00 = D_op_opx & (D_iw_opx == 0); + assign D_op_rsvx10 = D_op_opx & (D_iw_opx == 10); + assign D_op_rsvx15 = D_op_opx & (D_iw_opx == 15); + assign D_op_rsvx17 = D_op_opx & (D_iw_opx == 17); + assign D_op_rsvx21 = D_op_opx & (D_iw_opx == 21); + assign D_op_rsvx25 = D_op_opx & (D_iw_opx == 25); + assign D_op_rsvx33 = D_op_opx & (D_iw_opx == 33); + assign D_op_rsvx34 = D_op_opx & (D_iw_opx == 34); + assign D_op_rsvx35 = D_op_opx & (D_iw_opx == 35); + assign D_op_rsvx42 = D_op_opx & (D_iw_opx == 42); + assign D_op_rsvx43 = D_op_opx & (D_iw_opx == 43); + assign D_op_rsvx44 = D_op_opx & (D_iw_opx == 44); + assign D_op_rsvx47 = D_op_opx & (D_iw_opx == 47); + assign D_op_rsvx50 = D_op_opx & (D_iw_opx == 50); + assign D_op_rsvx51 = D_op_opx & (D_iw_opx == 51); + assign D_op_rsvx55 = D_op_opx & (D_iw_opx == 55); + assign D_op_rsvx56 = D_op_opx & (D_iw_opx == 56); + assign D_op_rsvx60 = D_op_opx & (D_iw_opx == 60); + assign D_op_rsvx63 = D_op_opx & (D_iw_opx == 63); + assign D_op_opx = D_iw_op == 58; + assign D_op_custom = D_iw_op == 50; + assign R_en = 1'b1; + assign E_ci_result = 0; + //custom_instruction_master, which is an e_custom_instruction_master + assign no_ci_readra = 1'b0; + assign E_ci_multi_stall = 1'b0; + assign iactive = d_irq[31 : 0] & 32'b00000000000000000000000000100000; + assign F_pc_sel_nxt = R_ctrl_exception ? 2'b00 : + R_ctrl_break ? 2'b01 : + (W_br_taken | R_ctrl_uncond_cti_non_br) ? 2'b10 : + 2'b11; + + assign F_pc_no_crst_nxt = (F_pc_sel_nxt == 2'b00)? 8 : + (F_pc_sel_nxt == 2'b01)? 66056 : + (F_pc_sel_nxt == 2'b10)? E_arith_result[18 : 2] : + F_pc_plus_one; + + assign F_pc_nxt = F_pc_no_crst_nxt; + assign F_pcb_nxt = {F_pc_nxt, 2'b00}; + assign F_pc_en = W_valid; + assign F_pc_plus_one = F_pc + 1; + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + F_pc <= 0; + else if (F_pc_en) + F_pc <= F_pc_nxt; + end + + + assign F_pcb = {F_pc, 2'b00}; + assign F_pcb_plus_four = {F_pc_plus_one, 2'b00}; + assign F_valid = i_read & ~i_waitrequest; + assign i_read_nxt = W_valid | (i_read & i_waitrequest); + assign i_address = {F_pc, 2'b00}; + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + i_read <= 1'b1; + else + i_read <= i_read_nxt; + end + + + assign oci_tb_hbreak_req = oci_hbreak_req; + assign hbreak_req = (oci_tb_hbreak_req | hbreak_pending) & hbreak_enabled & ~(wait_for_one_post_bret_inst & ~W_valid); + assign hbreak_pending_nxt = hbreak_pending ? hbreak_enabled + : hbreak_req; + + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + wait_for_one_post_bret_inst <= 1'b0; + else + wait_for_one_post_bret_inst <= (~hbreak_enabled & oci_single_step_mode) ? 1'b1 : (F_valid | ~oci_single_step_mode) ? 1'b0 : wait_for_one_post_bret_inst; + end + + + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + hbreak_pending <= 1'b0; + else + hbreak_pending <= hbreak_pending_nxt; + end + + + assign intr_req = W_status_reg_pie & (W_ipending_reg != 0); + assign F_av_iw = i_readdata; + assign F_iw = hbreak_req ? 4040762 : + 1'b0 ? 127034 : + intr_req ? 3926074 : + F_av_iw; + + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + D_iw <= 0; + else if (F_valid) + D_iw <= F_iw; + end + + + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + D_valid <= 0; + else + D_valid <= F_valid; + end + + + assign D_dst_regnum = D_ctrl_implicit_dst_retaddr ? 5'd31 : + D_ctrl_implicit_dst_eretaddr ? 5'd29 : + D_ctrl_b_is_dst ? D_iw_b : + D_iw_c; + + assign D_wr_dst_reg = (D_dst_regnum != 0) & ~D_ctrl_ignore_dst; + assign D_logic_op_raw = D_op_opx ? D_iw_opx[4 : 3] : + D_iw_op[4 : 3]; + + assign D_logic_op = D_ctrl_alu_force_xor ? 2'b11 : D_logic_op_raw; + assign D_compare_op = D_op_opx ? D_iw_opx[4 : 3] : + D_iw_op[4 : 3]; + + assign D_jmp_direct_target_waddr = D_iw[31 : 6]; + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + R_valid <= 0; + else + R_valid <= D_valid; + end + + + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + R_wr_dst_reg <= 0; + else + R_wr_dst_reg <= D_wr_dst_reg; + end + + + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + R_dst_regnum <= 0; + else + R_dst_regnum <= D_dst_regnum; + end + + + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + R_logic_op <= 0; + else + R_logic_op <= D_logic_op; + end + + + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + R_compare_op <= 0; + else + R_compare_op <= D_compare_op; + end + + + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + R_src2_use_imm <= 0; + else + R_src2_use_imm <= D_ctrl_src2_choose_imm | (D_ctrl_br & R_valid); + end + + + assign W_rf_wren = (R_wr_dst_reg & W_valid) | ~reset_n; + assign W_rf_wr_data = R_ctrl_ld ? av_ld_data_aligned_filtered : W_wr_data; +//nios_system_nios2_processor_register_bank_a, which is an nios_sdp_ram +nios_system_nios2_processor_register_bank_a_module nios_system_nios2_processor_register_bank_a + ( + .clock (clk), + .data (W_rf_wr_data), + .q (R_rf_a), + .rdaddress (D_iw_a), + .wraddress (R_dst_regnum), + .wren (W_rf_wren) + ); + +//synthesis translate_off +`ifdef NO_PLI +defparam nios_system_nios2_processor_register_bank_a.lpm_file = "nios_system_nios2_processor_rf_ram_a.dat"; +`else +defparam nios_system_nios2_processor_register_bank_a.lpm_file = "nios_system_nios2_processor_rf_ram_a.hex"; +`endif +//synthesis translate_on +//synthesis read_comments_as_HDL on +//defparam nios_system_nios2_processor_register_bank_a.lpm_file = "nios_system_nios2_processor_rf_ram_a.mif"; +//synthesis read_comments_as_HDL off +//nios_system_nios2_processor_register_bank_b, which is an nios_sdp_ram +nios_system_nios2_processor_register_bank_b_module nios_system_nios2_processor_register_bank_b + ( + .clock (clk), + .data (W_rf_wr_data), + .q (R_rf_b), + .rdaddress (D_iw_b), + .wraddress (R_dst_regnum), + .wren (W_rf_wren) + ); + +//synthesis translate_off +`ifdef NO_PLI +defparam nios_system_nios2_processor_register_bank_b.lpm_file = "nios_system_nios2_processor_rf_ram_b.dat"; +`else +defparam nios_system_nios2_processor_register_bank_b.lpm_file = "nios_system_nios2_processor_rf_ram_b.hex"; +`endif +//synthesis translate_on +//synthesis read_comments_as_HDL on +//defparam nios_system_nios2_processor_register_bank_b.lpm_file = "nios_system_nios2_processor_rf_ram_b.mif"; +//synthesis read_comments_as_HDL off + assign R_src1 = (((R_ctrl_br & E_valid) | (R_ctrl_retaddr & R_valid)))? {F_pc_plus_one, 2'b00} : + ((R_ctrl_jmp_direct & E_valid))? {D_jmp_direct_target_waddr, 2'b00} : + R_rf_a; + + assign R_src2_lo = ((R_ctrl_force_src2_zero|R_ctrl_hi_imm16))? 16'b0 : + (R_src2_use_imm)? D_iw_imm16 : + R_rf_b[15 : 0]; + + assign R_src2_hi = ((R_ctrl_force_src2_zero|R_ctrl_unsigned_lo_imm16))? 16'b0 : + (R_ctrl_hi_imm16)? D_iw_imm16 : + (R_src2_use_imm)? {16 {D_iw_imm16[15]}} : + R_rf_b[31 : 16]; + + assign R_src2 = {R_src2_hi, R_src2_lo}; + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + E_valid <= 0; + else + E_valid <= R_valid | E_stall; + end + + + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + E_new_inst <= 0; + else + E_new_inst <= R_valid; + end + + + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + E_src1 <= 0; + else + E_src1 <= R_src1; + end + + + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + E_src2 <= 0; + else + E_src2 <= R_src2; + end + + + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + E_invert_arith_src_msb <= 0; + else + E_invert_arith_src_msb <= D_ctrl_alu_signed_comparison & R_valid; + end + + + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + E_alu_sub <= 0; + else + E_alu_sub <= D_ctrl_alu_subtract & R_valid; + end + + + assign E_stall = E_shift_rot_stall | E_ld_stall | E_st_stall | E_ci_multi_stall; + assign E_arith_src1 = { E_src1[31] ^ E_invert_arith_src_msb, + E_src1[30 : 0]}; + + assign E_arith_src2 = { E_src2[31] ^ E_invert_arith_src_msb, + E_src2[30 : 0]}; + + assign E_arith_result = E_alu_sub ? + E_arith_src1 - E_arith_src2 : + E_arith_src1 + E_arith_src2; + + assign E_mem_baddr = E_arith_result[18 : 0]; + assign E_logic_result = (R_logic_op == 2'b00)? (~(E_src1 | E_src2)) : + (R_logic_op == 2'b01)? (E_src1 & E_src2) : + (R_logic_op == 2'b10)? (E_src1 | E_src2) : + (E_src1 ^ E_src2); + + assign E_logic_result_is_0 = E_logic_result == 0; + assign E_eq = E_logic_result_is_0; + assign E_lt = E_arith_result[32]; + assign E_cmp_result = (R_compare_op == 2'b00)? E_eq : + (R_compare_op == 2'b01)? ~E_lt : + (R_compare_op == 2'b10)? E_lt : + ~E_eq; + + assign E_shift_rot_cnt_nxt = E_new_inst ? E_src2[4 : 0] : E_shift_rot_cnt-1; + assign E_shift_rot_done = (E_shift_rot_cnt == 0) & ~E_new_inst; + assign E_shift_rot_stall = R_ctrl_shift_rot & E_valid & ~E_shift_rot_done; + assign E_shift_rot_fill_bit = R_ctrl_shift_logical ? 1'b0 : + (R_ctrl_rot_right ? E_shift_rot_result[0] : + E_shift_rot_result[31]); + + assign E_shift_rot_result_nxt = (E_new_inst)? E_src1 : + (R_ctrl_shift_rot_right)? {E_shift_rot_fill_bit, E_shift_rot_result[31 : 1]} : + {E_shift_rot_result[30 : 0], E_shift_rot_fill_bit}; + + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + E_shift_rot_result <= 0; + else + E_shift_rot_result <= E_shift_rot_result_nxt; + end + + + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + E_shift_rot_cnt <= 0; + else + E_shift_rot_cnt <= E_shift_rot_cnt_nxt; + end + + + assign E_control_rd_data = (D_iw_control_regnum == 3'd0)? W_status_reg : + (D_iw_control_regnum == 3'd1)? W_estatus_reg : + (D_iw_control_regnum == 3'd2)? W_bstatus_reg : + (D_iw_control_regnum == 3'd3)? W_ienable_reg : + (D_iw_control_regnum == 3'd4)? W_ipending_reg : + 0; + + assign E_alu_result = ((R_ctrl_br_cmp | R_ctrl_rdctl_inst))? 0 : + (R_ctrl_shift_rot)? E_shift_rot_result : + (R_ctrl_logic)? E_logic_result : + (R_ctrl_custom)? E_ci_result : + E_arith_result; + + assign R_stb_data = R_rf_b[7 : 0]; + assign R_sth_data = R_rf_b[15 : 0]; + assign E_st_data = (D_mem8)? {R_stb_data, R_stb_data, R_stb_data, R_stb_data} : + (D_mem16)? {R_sth_data, R_sth_data} : + R_rf_b; + + assign E_mem_byte_en = ({D_iw_memsz, E_mem_baddr[1 : 0]} == {2'b00, 2'b00})? 4'b0001 : + ({D_iw_memsz, E_mem_baddr[1 : 0]} == {2'b00, 2'b01})? 4'b0010 : + ({D_iw_memsz, E_mem_baddr[1 : 0]} == {2'b00, 2'b10})? 4'b0100 : + ({D_iw_memsz, E_mem_baddr[1 : 0]} == {2'b00, 2'b11})? 4'b1000 : + ({D_iw_memsz, E_mem_baddr[1 : 0]} == {2'b01, 2'b00})? 4'b0011 : + ({D_iw_memsz, E_mem_baddr[1 : 0]} == {2'b01, 2'b01})? 4'b0011 : + ({D_iw_memsz, E_mem_baddr[1 : 0]} == {2'b01, 2'b10})? 4'b1100 : + ({D_iw_memsz, E_mem_baddr[1 : 0]} == {2'b01, 2'b11})? 4'b1100 : + 4'b1111; + + assign d_read_nxt = (R_ctrl_ld & E_new_inst) | (d_read & d_waitrequest); + assign E_ld_stall = R_ctrl_ld & ((E_valid & ~av_ld_done) | E_new_inst); + assign d_write_nxt = (R_ctrl_st & E_new_inst) | (d_write & d_waitrequest); + assign E_st_stall = d_write_nxt; + assign d_address = W_mem_baddr; + assign av_ld_getting_data = d_read & ~d_waitrequest; + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + d_read <= 0; + else + d_read <= d_read_nxt; + end + + + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + d_writedata <= 0; + else + d_writedata <= E_st_data; + end + + + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + d_byteenable <= 0; + else + d_byteenable <= E_mem_byte_en; + end + + + assign av_ld_align_cycle_nxt = av_ld_getting_data ? 0 : (av_ld_align_cycle+1); + assign av_ld_align_one_more_cycle = av_ld_align_cycle == (D_mem16 ? 2 : 3); + assign av_ld_aligning_data_nxt = av_ld_aligning_data ? + ~av_ld_align_one_more_cycle : + (~D_mem32 & av_ld_getting_data); + + assign av_ld_waiting_for_data_nxt = av_ld_waiting_for_data ? + ~av_ld_getting_data : + (R_ctrl_ld & E_new_inst); + + assign av_ld_done = ~av_ld_waiting_for_data_nxt & (D_mem32 | ~av_ld_aligning_data_nxt); + assign av_ld_rshift8 = av_ld_aligning_data & + (av_ld_align_cycle < (W_mem_baddr[1 : 0])); + + assign av_ld_extend = av_ld_aligning_data; + assign av_ld_byte0_data_nxt = av_ld_rshift8 ? av_ld_byte1_data : + av_ld_extend ? av_ld_byte0_data : + d_readdata[7 : 0]; + + assign av_ld_byte1_data_nxt = av_ld_rshift8 ? av_ld_byte2_data : + av_ld_extend ? {8 {av_fill_bit}} : + d_readdata[15 : 8]; + + assign av_ld_byte2_data_nxt = av_ld_rshift8 ? av_ld_byte3_data : + av_ld_extend ? {8 {av_fill_bit}} : + d_readdata[23 : 16]; + + assign av_ld_byte3_data_nxt = av_ld_rshift8 ? av_ld_byte3_data : + av_ld_extend ? {8 {av_fill_bit}} : + d_readdata[31 : 24]; + + assign av_ld_byte1_data_en = ~(av_ld_extend & D_mem16 & ~av_ld_rshift8); + assign av_ld_data_aligned_unfiltered = {av_ld_byte3_data, av_ld_byte2_data, + av_ld_byte1_data, av_ld_byte0_data}; + + assign av_sign_bit = D_mem16 ? av_ld_byte1_data[7] : av_ld_byte0_data[7]; + assign av_fill_bit = av_sign_bit & R_ctrl_ld_signed; + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + av_ld_align_cycle <= 0; + else + av_ld_align_cycle <= av_ld_align_cycle_nxt; + end + + + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + av_ld_waiting_for_data <= 0; + else + av_ld_waiting_for_data <= av_ld_waiting_for_data_nxt; + end + + + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + av_ld_aligning_data <= 0; + else + av_ld_aligning_data <= av_ld_aligning_data_nxt; + end + + + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + av_ld_byte0_data <= 0; + else + av_ld_byte0_data <= av_ld_byte0_data_nxt; + end + + + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + av_ld_byte1_data <= 0; + else if (av_ld_byte1_data_en) + av_ld_byte1_data <= av_ld_byte1_data_nxt; + end + + + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + av_ld_byte2_data <= 0; + else + av_ld_byte2_data <= av_ld_byte2_data_nxt; + end + + + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + av_ld_byte3_data <= 0; + else + av_ld_byte3_data <= av_ld_byte3_data_nxt; + end + + + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + W_valid <= 0; + else + W_valid <= E_valid & ~E_stall; + end + + + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + W_control_rd_data <= 0; + else + W_control_rd_data <= E_control_rd_data; + end + + + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + W_cmp_result <= 0; + else + W_cmp_result <= E_cmp_result; + end + + + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + W_alu_result <= 0; + else + W_alu_result <= E_alu_result; + end + + + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + W_status_reg_pie <= 0; + else + W_status_reg_pie <= W_status_reg_pie_nxt; + end + + + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + W_estatus_reg <= 0; + else + W_estatus_reg <= W_estatus_reg_nxt; + end + + + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + W_bstatus_reg <= 0; + else + W_bstatus_reg <= W_bstatus_reg_nxt; + end + + + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + W_ienable_reg <= 0; + else + W_ienable_reg <= W_ienable_reg_nxt; + end + + + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + W_ipending_reg <= 0; + else + W_ipending_reg <= W_ipending_reg_nxt; + end + + + assign W_wr_data_non_zero = R_ctrl_br_cmp ? W_cmp_result : + R_ctrl_rdctl_inst ? W_control_rd_data : + W_alu_result[31 : 0]; + + assign W_wr_data = W_wr_data_non_zero; + assign W_br_taken = R_ctrl_br & W_cmp_result; + assign W_mem_baddr = W_alu_result[18 : 0]; + assign W_status_reg = W_status_reg_pie; + assign E_wrctl_status = R_ctrl_wrctl_inst & + (D_iw_control_regnum == 3'd0); + + assign E_wrctl_estatus = R_ctrl_wrctl_inst & + (D_iw_control_regnum == 3'd1); + + assign E_wrctl_bstatus = R_ctrl_wrctl_inst & + (D_iw_control_regnum == 3'd2); + + assign E_wrctl_ienable = R_ctrl_wrctl_inst & + (D_iw_control_regnum == 3'd3); + + assign W_status_reg_pie_inst_nxt = (R_ctrl_exception | R_ctrl_break | R_ctrl_crst) ? 1'b0 : + (D_op_eret) ? W_estatus_reg : + (D_op_bret) ? W_bstatus_reg : + (E_wrctl_status) ? E_src1[0] : + W_status_reg_pie; + + assign W_status_reg_pie_nxt = E_valid ? W_status_reg_pie_inst_nxt : W_status_reg_pie; + assign W_estatus_reg_inst_nxt = (R_ctrl_crst) ? 0 : + (R_ctrl_exception) ? W_status_reg : + (E_wrctl_estatus) ? E_src1[0] : + W_estatus_reg; + + assign W_estatus_reg_nxt = E_valid ? W_estatus_reg_inst_nxt : W_estatus_reg; + assign W_bstatus_reg_inst_nxt = (R_ctrl_break) ? W_status_reg : + (E_wrctl_bstatus) ? E_src1[0] : + W_bstatus_reg; + + assign W_bstatus_reg_nxt = E_valid ? W_bstatus_reg_inst_nxt : W_bstatus_reg; + assign W_ienable_reg_nxt = ((E_wrctl_ienable & E_valid) ? + E_src1[31 : 0] : W_ienable_reg) & 32'b00000000000000000000000000100000; + + assign W_ipending_reg_nxt = iactive & W_ienable_reg & oci_ienable & 32'b00000000000000000000000000100000; + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + hbreak_enabled <= 1'b1; + else if (E_valid) + hbreak_enabled <= R_ctrl_break ? 1'b0 : D_op_bret ? 1'b1 : hbreak_enabled; + end + + + nios_system_nios2_processor_nios2_oci the_nios_system_nios2_processor_nios2_oci + ( + .D_valid (D_valid), + .E_st_data (E_st_data), + .E_valid (E_valid), + .F_pc (F_pc), + .address_nxt (jtag_debug_module_address), + .av_ld_data_aligned_filtered (av_ld_data_aligned_filtered), + .byteenable_nxt (jtag_debug_module_byteenable), + .clk (jtag_debug_module_clk), + .d_address (d_address), + .d_read (d_read), + .d_waitrequest (d_waitrequest), + .d_write (d_write), + .debugaccess_nxt (jtag_debug_module_debugaccess), + .hbreak_enabled (hbreak_enabled), + .jtag_debug_module_debugaccess_to_roms (jtag_debug_module_debugaccess_to_roms), + .oci_hbreak_req (oci_hbreak_req), + .oci_ienable (oci_ienable), + .oci_single_step_mode (oci_single_step_mode), + .read_nxt (jtag_debug_module_read), + .readdata (jtag_debug_module_readdata), + .reset (jtag_debug_module_reset), + .reset_n (reset_n), + .resetrequest (jtag_debug_module_resetrequest), + .test_ending (test_ending), + .test_has_ended (test_has_ended), + .waitrequest (jtag_debug_module_waitrequest), + .write_nxt (jtag_debug_module_write), + .writedata_nxt (jtag_debug_module_writedata) + ); + + //jtag_debug_module, which is an e_avalon_slave + assign jtag_debug_module_clk = clk; + assign jtag_debug_module_reset = ~reset_n; + assign D_ctrl_custom = 1'b0; + assign R_ctrl_custom_nxt = D_ctrl_custom; + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + R_ctrl_custom <= 0; + else if (R_en) + R_ctrl_custom <= R_ctrl_custom_nxt; + end + + + assign D_ctrl_custom_multi = 1'b0; + assign R_ctrl_custom_multi_nxt = D_ctrl_custom_multi; + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + R_ctrl_custom_multi <= 0; + else if (R_en) + R_ctrl_custom_multi <= R_ctrl_custom_multi_nxt; + end + + + assign D_ctrl_jmp_indirect = D_op_eret| + D_op_bret| + D_op_rsvx17| + D_op_rsvx25| + D_op_ret| + D_op_jmp| + D_op_rsvx21| + D_op_callr; + + assign R_ctrl_jmp_indirect_nxt = D_ctrl_jmp_indirect; + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + R_ctrl_jmp_indirect <= 0; + else if (R_en) + R_ctrl_jmp_indirect <= R_ctrl_jmp_indirect_nxt; + end + + + assign D_ctrl_jmp_direct = D_op_call|D_op_jmpi; + assign R_ctrl_jmp_direct_nxt = D_ctrl_jmp_direct; + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + R_ctrl_jmp_direct <= 0; + else if (R_en) + R_ctrl_jmp_direct <= R_ctrl_jmp_direct_nxt; + end + + + assign D_ctrl_implicit_dst_retaddr = D_op_call|D_op_rsv02; + assign R_ctrl_implicit_dst_retaddr_nxt = D_ctrl_implicit_dst_retaddr; + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + R_ctrl_implicit_dst_retaddr <= 0; + else if (R_en) + R_ctrl_implicit_dst_retaddr <= R_ctrl_implicit_dst_retaddr_nxt; + end + + + assign D_ctrl_implicit_dst_eretaddr = D_op_div|D_op_divu|D_op_mul|D_op_muli|D_op_mulxss|D_op_mulxsu|D_op_mulxuu; + assign R_ctrl_implicit_dst_eretaddr_nxt = D_ctrl_implicit_dst_eretaddr; + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + R_ctrl_implicit_dst_eretaddr <= 0; + else if (R_en) + R_ctrl_implicit_dst_eretaddr <= R_ctrl_implicit_dst_eretaddr_nxt; + end + + + assign D_ctrl_exception = D_op_trap| + D_op_rsvx44| + D_op_div| + D_op_divu| + D_op_mul| + D_op_muli| + D_op_mulxss| + D_op_mulxsu| + D_op_mulxuu| + D_op_intr| + D_op_rsvx60; + + assign R_ctrl_exception_nxt = D_ctrl_exception; + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + R_ctrl_exception <= 0; + else if (R_en) + R_ctrl_exception <= R_ctrl_exception_nxt; + end + + + assign D_ctrl_break = D_op_break|D_op_hbreak; + assign R_ctrl_break_nxt = D_ctrl_break; + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + R_ctrl_break <= 0; + else if (R_en) + R_ctrl_break <= R_ctrl_break_nxt; + end + + + assign D_ctrl_crst = D_op_crst|D_op_rsvx63; + assign R_ctrl_crst_nxt = D_ctrl_crst; + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + R_ctrl_crst <= 0; + else if (R_en) + R_ctrl_crst <= R_ctrl_crst_nxt; + end + + + assign D_ctrl_uncond_cti_non_br = D_op_call| + D_op_jmpi| + D_op_eret| + D_op_bret| + D_op_rsvx17| + D_op_rsvx25| + D_op_ret| + D_op_jmp| + D_op_rsvx21| + D_op_callr; + + assign R_ctrl_uncond_cti_non_br_nxt = D_ctrl_uncond_cti_non_br; + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + R_ctrl_uncond_cti_non_br <= 0; + else if (R_en) + R_ctrl_uncond_cti_non_br <= R_ctrl_uncond_cti_non_br_nxt; + end + + + assign D_ctrl_retaddr = D_op_call| + D_op_rsv02| + D_op_nextpc| + D_op_callr| + D_op_trap| + D_op_rsvx44| + D_op_div| + D_op_divu| + D_op_mul| + D_op_muli| + D_op_mulxss| + D_op_mulxsu| + D_op_mulxuu| + D_op_intr| + D_op_rsvx60| + D_op_break| + D_op_hbreak; + + assign R_ctrl_retaddr_nxt = D_ctrl_retaddr; + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + R_ctrl_retaddr <= 0; + else if (R_en) + R_ctrl_retaddr <= R_ctrl_retaddr_nxt; + end + + + assign D_ctrl_shift_logical = D_op_slli|D_op_sll|D_op_srli|D_op_srl; + assign R_ctrl_shift_logical_nxt = D_ctrl_shift_logical; + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + R_ctrl_shift_logical <= 0; + else if (R_en) + R_ctrl_shift_logical <= R_ctrl_shift_logical_nxt; + end + + + assign D_ctrl_shift_right_arith = D_op_srai|D_op_sra; + assign R_ctrl_shift_right_arith_nxt = D_ctrl_shift_right_arith; + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + R_ctrl_shift_right_arith <= 0; + else if (R_en) + R_ctrl_shift_right_arith <= R_ctrl_shift_right_arith_nxt; + end + + + assign D_ctrl_rot_right = D_op_rsvx10|D_op_ror|D_op_rsvx42|D_op_rsvx43; + assign R_ctrl_rot_right_nxt = D_ctrl_rot_right; + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + R_ctrl_rot_right <= 0; + else if (R_en) + R_ctrl_rot_right <= R_ctrl_rot_right_nxt; + end + + + assign D_ctrl_shift_rot_right = D_op_srli| + D_op_srl| + D_op_srai| + D_op_sra| + D_op_rsvx10| + D_op_ror| + D_op_rsvx42| + D_op_rsvx43; + + assign R_ctrl_shift_rot_right_nxt = D_ctrl_shift_rot_right; + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + R_ctrl_shift_rot_right <= 0; + else if (R_en) + R_ctrl_shift_rot_right <= R_ctrl_shift_rot_right_nxt; + end + + + assign D_ctrl_shift_rot = D_op_slli| + D_op_rsvx50| + D_op_sll| + D_op_rsvx51| + D_op_roli| + D_op_rsvx34| + D_op_rol| + D_op_rsvx35| + D_op_srli| + D_op_srl| + D_op_srai| + D_op_sra| + D_op_rsvx10| + D_op_ror| + D_op_rsvx42| + D_op_rsvx43; + + assign R_ctrl_shift_rot_nxt = D_ctrl_shift_rot; + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + R_ctrl_shift_rot <= 0; + else if (R_en) + R_ctrl_shift_rot <= R_ctrl_shift_rot_nxt; + end + + + assign D_ctrl_logic = D_op_and| + D_op_or| + D_op_xor| + D_op_nor| + D_op_andhi| + D_op_orhi| + D_op_xorhi| + D_op_andi| + D_op_ori| + D_op_xori; + + assign R_ctrl_logic_nxt = D_ctrl_logic; + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + R_ctrl_logic <= 0; + else if (R_en) + R_ctrl_logic <= R_ctrl_logic_nxt; + end + + + assign D_ctrl_hi_imm16 = D_op_andhi|D_op_orhi|D_op_xorhi; + assign R_ctrl_hi_imm16_nxt = D_ctrl_hi_imm16; + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + R_ctrl_hi_imm16 <= 0; + else if (R_en) + R_ctrl_hi_imm16 <= R_ctrl_hi_imm16_nxt; + end + + + assign D_ctrl_unsigned_lo_imm16 = D_op_cmpgeui| + D_op_cmpltui| + D_op_andi| + D_op_ori| + D_op_xori| + D_op_roli| + D_op_rsvx10| + D_op_slli| + D_op_srli| + D_op_rsvx34| + D_op_rsvx42| + D_op_rsvx50| + D_op_srai; + + assign R_ctrl_unsigned_lo_imm16_nxt = D_ctrl_unsigned_lo_imm16; + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + R_ctrl_unsigned_lo_imm16 <= 0; + else if (R_en) + R_ctrl_unsigned_lo_imm16 <= R_ctrl_unsigned_lo_imm16_nxt; + end + + + assign D_ctrl_br_uncond = D_op_br|D_op_rsv02; + assign R_ctrl_br_uncond_nxt = D_ctrl_br_uncond; + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + R_ctrl_br_uncond <= 0; + else if (R_en) + R_ctrl_br_uncond <= R_ctrl_br_uncond_nxt; + end + + + assign D_ctrl_br = D_op_br| + D_op_bge| + D_op_blt| + D_op_bne| + D_op_beq| + D_op_bgeu| + D_op_bltu| + D_op_rsv62; + + assign R_ctrl_br_nxt = D_ctrl_br; + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + R_ctrl_br <= 0; + else if (R_en) + R_ctrl_br <= R_ctrl_br_nxt; + end + + + assign D_ctrl_alu_subtract = D_op_sub| + D_op_rsvx25| + D_op_cmplti| + D_op_cmpltui| + D_op_cmplt| + D_op_cmpltu| + D_op_blt| + D_op_bltu| + D_op_cmpgei| + D_op_cmpgeui| + D_op_cmpge| + D_op_cmpgeu| + D_op_bge| + D_op_rsv10| + D_op_bgeu| + D_op_rsv42; + + assign R_ctrl_alu_subtract_nxt = D_ctrl_alu_subtract; + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + R_ctrl_alu_subtract <= 0; + else if (R_en) + R_ctrl_alu_subtract <= R_ctrl_alu_subtract_nxt; + end + + + assign D_ctrl_alu_signed_comparison = D_op_cmpge|D_op_cmpgei|D_op_cmplt|D_op_cmplti|D_op_bge|D_op_blt; + assign R_ctrl_alu_signed_comparison_nxt = D_ctrl_alu_signed_comparison; + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + R_ctrl_alu_signed_comparison <= 0; + else if (R_en) + R_ctrl_alu_signed_comparison <= R_ctrl_alu_signed_comparison_nxt; + end + + + assign D_ctrl_br_cmp = D_op_br| + D_op_bge| + D_op_blt| + D_op_bne| + D_op_beq| + D_op_bgeu| + D_op_bltu| + D_op_rsv62| + D_op_cmpgei| + D_op_cmplti| + D_op_cmpnei| + D_op_cmpgeui| + D_op_cmpltui| + D_op_cmpeqi| + D_op_rsvx00| + D_op_cmpge| + D_op_cmplt| + D_op_cmpne| + D_op_cmpgeu| + D_op_cmpltu| + D_op_cmpeq| + D_op_rsvx56; + + assign R_ctrl_br_cmp_nxt = D_ctrl_br_cmp; + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + R_ctrl_br_cmp <= 0; + else if (R_en) + R_ctrl_br_cmp <= R_ctrl_br_cmp_nxt; + end + + + assign D_ctrl_ld_signed = D_op_ldb| + D_op_ldh| + D_op_ldl| + D_op_ldw| + D_op_ldbio| + D_op_ldhio| + D_op_ldwio| + D_op_rsv63; + + assign R_ctrl_ld_signed_nxt = D_ctrl_ld_signed; + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + R_ctrl_ld_signed <= 0; + else if (R_en) + R_ctrl_ld_signed <= R_ctrl_ld_signed_nxt; + end + + + assign D_ctrl_ld = D_op_ldb| + D_op_ldh| + D_op_ldl| + D_op_ldw| + D_op_ldbio| + D_op_ldhio| + D_op_ldwio| + D_op_rsv63| + D_op_ldbu| + D_op_ldhu| + D_op_ldbuio| + D_op_ldhuio; + + assign R_ctrl_ld_nxt = D_ctrl_ld; + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + R_ctrl_ld <= 0; + else if (R_en) + R_ctrl_ld <= R_ctrl_ld_nxt; + end + + + assign D_ctrl_ld_non_io = D_op_ldbu|D_op_ldhu|D_op_ldb|D_op_ldh|D_op_ldw|D_op_ldl; + assign R_ctrl_ld_non_io_nxt = D_ctrl_ld_non_io; + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + R_ctrl_ld_non_io <= 0; + else if (R_en) + R_ctrl_ld_non_io <= R_ctrl_ld_non_io_nxt; + end + + + assign D_ctrl_st = D_op_stb| + D_op_sth| + D_op_stw| + D_op_stc| + D_op_stbio| + D_op_sthio| + D_op_stwio| + D_op_rsv61; + + assign R_ctrl_st_nxt = D_ctrl_st; + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + R_ctrl_st <= 0; + else if (R_en) + R_ctrl_st <= R_ctrl_st_nxt; + end + + + assign D_ctrl_ld_io = D_op_ldbuio|D_op_ldhuio|D_op_ldbio|D_op_ldhio|D_op_ldwio|D_op_rsv63; + assign R_ctrl_ld_io_nxt = D_ctrl_ld_io; + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + R_ctrl_ld_io <= 0; + else if (R_en) + R_ctrl_ld_io <= R_ctrl_ld_io_nxt; + end + + + assign D_ctrl_b_is_dst = D_op_addi| + D_op_andhi| + D_op_orhi| + D_op_xorhi| + D_op_andi| + D_op_ori| + D_op_xori| + D_op_call| + D_op_rdprs| + D_op_cmpgei| + D_op_cmplti| + D_op_cmpnei| + D_op_cmpgeui| + D_op_cmpltui| + D_op_cmpeqi| + D_op_jmpi| + D_op_rsv09| + D_op_rsv17| + D_op_rsv25| + D_op_rsv33| + D_op_rsv41| + D_op_rsv49| + D_op_rsv57| + D_op_ldb| + D_op_ldh| + D_op_ldl| + D_op_ldw| + D_op_ldbio| + D_op_ldhio| + D_op_ldwio| + D_op_rsv63| + D_op_ldbu| + D_op_ldhu| + D_op_ldbuio| + D_op_ldhuio| + D_op_initd| + D_op_initda| + D_op_flushd| + D_op_flushda; + + assign R_ctrl_b_is_dst_nxt = D_ctrl_b_is_dst; + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + R_ctrl_b_is_dst <= 0; + else if (R_en) + R_ctrl_b_is_dst <= R_ctrl_b_is_dst_nxt; + end + + + assign D_ctrl_ignore_dst = D_op_br| + D_op_bge| + D_op_blt| + D_op_bne| + D_op_beq| + D_op_bgeu| + D_op_bltu| + D_op_rsv62| + D_op_stb| + D_op_sth| + D_op_stw| + D_op_stc| + D_op_stbio| + D_op_sthio| + D_op_stwio| + D_op_rsv61| + D_op_jmpi| + D_op_rsv09| + D_op_rsv17| + D_op_rsv25| + D_op_rsv33| + D_op_rsv41| + D_op_rsv49| + D_op_rsv57; + + assign R_ctrl_ignore_dst_nxt = D_ctrl_ignore_dst; + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + R_ctrl_ignore_dst <= 0; + else if (R_en) + R_ctrl_ignore_dst <= R_ctrl_ignore_dst_nxt; + end + + + assign D_ctrl_src2_choose_imm = D_op_addi| + D_op_andhi| + D_op_orhi| + D_op_xorhi| + D_op_andi| + D_op_ori| + D_op_xori| + D_op_call| + D_op_rdprs| + D_op_cmpgei| + D_op_cmplti| + D_op_cmpnei| + D_op_cmpgeui| + D_op_cmpltui| + D_op_cmpeqi| + D_op_jmpi| + D_op_rsv09| + D_op_rsv17| + D_op_rsv25| + D_op_rsv33| + D_op_rsv41| + D_op_rsv49| + D_op_rsv57| + D_op_ldb| + D_op_ldh| + D_op_ldl| + D_op_ldw| + D_op_ldbio| + D_op_ldhio| + D_op_ldwio| + D_op_rsv63| + D_op_ldbu| + D_op_ldhu| + D_op_ldbuio| + D_op_ldhuio| + D_op_initd| + D_op_initda| + D_op_flushd| + D_op_flushda| + D_op_stb| + D_op_sth| + D_op_stw| + D_op_stc| + D_op_stbio| + D_op_sthio| + D_op_stwio| + D_op_rsv61| + D_op_roli| + D_op_rsvx10| + D_op_slli| + D_op_srli| + D_op_rsvx34| + D_op_rsvx42| + D_op_rsvx50| + D_op_srai; + + assign R_ctrl_src2_choose_imm_nxt = D_ctrl_src2_choose_imm; + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + R_ctrl_src2_choose_imm <= 0; + else if (R_en) + R_ctrl_src2_choose_imm <= R_ctrl_src2_choose_imm_nxt; + end + + + assign D_ctrl_wrctl_inst = D_op_wrctl; + assign R_ctrl_wrctl_inst_nxt = D_ctrl_wrctl_inst; + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + R_ctrl_wrctl_inst <= 0; + else if (R_en) + R_ctrl_wrctl_inst <= R_ctrl_wrctl_inst_nxt; + end + + + assign D_ctrl_rdctl_inst = D_op_rdctl; + assign R_ctrl_rdctl_inst_nxt = D_ctrl_rdctl_inst; + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + R_ctrl_rdctl_inst <= 0; + else if (R_en) + R_ctrl_rdctl_inst <= R_ctrl_rdctl_inst_nxt; + end + + + assign D_ctrl_force_src2_zero = D_op_call| + D_op_rsv02| + D_op_nextpc| + D_op_callr| + D_op_trap| + D_op_rsvx44| + D_op_intr| + D_op_rsvx60| + D_op_break| + D_op_hbreak| + D_op_eret| + D_op_bret| + D_op_rsvx17| + D_op_rsvx25| + D_op_ret| + D_op_jmp| + D_op_rsvx21| + D_op_jmpi; + + assign R_ctrl_force_src2_zero_nxt = D_ctrl_force_src2_zero; + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + R_ctrl_force_src2_zero <= 0; + else if (R_en) + R_ctrl_force_src2_zero <= R_ctrl_force_src2_zero_nxt; + end + + + assign D_ctrl_alu_force_xor = D_op_cmpgei| + D_op_cmpgeui| + D_op_cmpeqi| + D_op_cmpge| + D_op_cmpgeu| + D_op_cmpeq| + D_op_cmpnei| + D_op_cmpne| + D_op_bge| + D_op_rsv10| + D_op_bgeu| + D_op_rsv42| + D_op_beq| + D_op_rsv34| + D_op_bne| + D_op_rsv62| + D_op_br| + D_op_rsv02; + + assign R_ctrl_alu_force_xor_nxt = D_ctrl_alu_force_xor; + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + R_ctrl_alu_force_xor <= 0; + else if (R_en) + R_ctrl_alu_force_xor <= R_ctrl_alu_force_xor_nxt; + end + + + //data_master, which is an e_avalon_master + //instruction_master, which is an e_avalon_master + +//synthesis translate_off +//////////////// SIMULATION-ONLY CONTENTS + assign F_inst = (F_op_call)? 56'h20202063616c6c : + (F_op_jmpi)? 56'h2020206a6d7069 : + (F_op_ldbu)? 56'h2020206c646275 : + (F_op_addi)? 56'h20202061646469 : + (F_op_stb)? 56'h20202020737462 : + (F_op_br)? 56'h20202020206272 : + (F_op_ldb)? 56'h202020206c6462 : + (F_op_cmpgei)? 56'h20636d70676569 : + (F_op_ldhu)? 56'h2020206c646875 : + (F_op_andi)? 56'h202020616e6469 : + (F_op_sth)? 56'h20202020737468 : + (F_op_bge)? 56'h20202020626765 : + (F_op_ldh)? 56'h202020206c6468 : + (F_op_cmplti)? 56'h20636d706c7469 : + (F_op_initda)? 56'h20696e69746461 : + (F_op_ori)? 56'h202020206f7269 : + (F_op_stw)? 56'h20202020737477 : + (F_op_blt)? 56'h20202020626c74 : + (F_op_ldw)? 56'h202020206c6477 : + (F_op_cmpnei)? 56'h20636d706e6569 : + (F_op_flushda)? 56'h666c7573686461 : + (F_op_xori)? 56'h202020786f7269 : + (F_op_bne)? 56'h20202020626e65 : + (F_op_cmpeqi)? 56'h20636d70657169 : + (F_op_ldbuio)? 56'h206c646275696f : + (F_op_muli)? 56'h2020206d756c69 : + (F_op_stbio)? 56'h2020737462696f : + (F_op_beq)? 56'h20202020626571 : + (F_op_ldbio)? 56'h20206c6462696f : + (F_op_cmpgeui)? 56'h636d7067657569 : + (F_op_ldhuio)? 56'h206c646875696f : + (F_op_andhi)? 56'h2020616e646869 : + (F_op_sthio)? 56'h2020737468696f : + (F_op_bgeu)? 56'h20202062676575 : + (F_op_ldhio)? 56'h20206c6468696f : + (F_op_cmpltui)? 56'h636d706c747569 : + (F_op_initd)? 56'h2020696e697464 : + (F_op_orhi)? 56'h2020206f726869 : + (F_op_stwio)? 56'h2020737477696f : + (F_op_bltu)? 56'h202020626c7475 : + (F_op_ldwio)? 56'h20206c6477696f : + (F_op_flushd)? 56'h20666c75736864 : + (F_op_xorhi)? 56'h2020786f726869 : + (F_op_eret)? 56'h20202065726574 : + (F_op_roli)? 56'h202020726f6c69 : + (F_op_rol)? 56'h20202020726f6c : + (F_op_flushp)? 56'h20666c75736870 : + (F_op_ret)? 56'h20202020726574 : + (F_op_nor)? 56'h202020206e6f72 : + (F_op_mulxuu)? 56'h206d756c787575 : + (F_op_cmpge)? 56'h2020636d706765 : + (F_op_bret)? 56'h20202062726574 : + (F_op_ror)? 56'h20202020726f72 : + (F_op_flushi)? 56'h20666c75736869 : + (F_op_jmp)? 56'h202020206a6d70 : + (F_op_and)? 56'h20202020616e64 : + (F_op_cmplt)? 56'h2020636d706c74 : + (F_op_slli)? 56'h202020736c6c69 : + (F_op_sll)? 56'h20202020736c6c : + (F_op_or)? 56'h20202020206f72 : + (F_op_mulxsu)? 56'h206d756c787375 : + (F_op_cmpne)? 56'h2020636d706e65 : + (F_op_srli)? 56'h20202073726c69 : + (F_op_srl)? 56'h2020202073726c : + (F_op_nextpc)? 56'h206e6578747063 : + (F_op_callr)? 56'h202063616c6c72 : + (F_op_xor)? 56'h20202020786f72 : + (F_op_mulxss)? 56'h206d756c787373 : + (F_op_cmpeq)? 56'h2020636d706571 : + (F_op_divu)? 56'h20202064697675 : + (F_op_div)? 56'h20202020646976 : + (F_op_rdctl)? 56'h2020726463746c : + (F_op_mul)? 56'h202020206d756c : + (F_op_cmpgeu)? 56'h20636d70676575 : + (F_op_initi)? 56'h2020696e697469 : + (F_op_trap)? 56'h20202074726170 : + (F_op_wrctl)? 56'h2020777263746c : + (F_op_cmpltu)? 56'h20636d706c7475 : + (F_op_add)? 56'h20202020616464 : + (F_op_break)? 56'h2020627265616b : + (F_op_hbreak)? 56'h2068627265616b : + (F_op_sync)? 56'h20202073796e63 : + (F_op_sub)? 56'h20202020737562 : + (F_op_srai)? 56'h20202073726169 : + (F_op_sra)? 56'h20202020737261 : + (F_op_intr)? 56'h202020696e7472 : + 56'h20202020424144; + + assign D_inst = (D_op_call)? 56'h20202063616c6c : + (D_op_jmpi)? 56'h2020206a6d7069 : + (D_op_ldbu)? 56'h2020206c646275 : + (D_op_addi)? 56'h20202061646469 : + (D_op_stb)? 56'h20202020737462 : + (D_op_br)? 56'h20202020206272 : + (D_op_ldb)? 56'h202020206c6462 : + (D_op_cmpgei)? 56'h20636d70676569 : + (D_op_ldhu)? 56'h2020206c646875 : + (D_op_andi)? 56'h202020616e6469 : + (D_op_sth)? 56'h20202020737468 : + (D_op_bge)? 56'h20202020626765 : + (D_op_ldh)? 56'h202020206c6468 : + (D_op_cmplti)? 56'h20636d706c7469 : + (D_op_initda)? 56'h20696e69746461 : + (D_op_ori)? 56'h202020206f7269 : + (D_op_stw)? 56'h20202020737477 : + (D_op_blt)? 56'h20202020626c74 : + (D_op_ldw)? 56'h202020206c6477 : + (D_op_cmpnei)? 56'h20636d706e6569 : + (D_op_flushda)? 56'h666c7573686461 : + (D_op_xori)? 56'h202020786f7269 : + (D_op_bne)? 56'h20202020626e65 : + (D_op_cmpeqi)? 56'h20636d70657169 : + (D_op_ldbuio)? 56'h206c646275696f : + (D_op_muli)? 56'h2020206d756c69 : + (D_op_stbio)? 56'h2020737462696f : + (D_op_beq)? 56'h20202020626571 : + (D_op_ldbio)? 56'h20206c6462696f : + (D_op_cmpgeui)? 56'h636d7067657569 : + (D_op_ldhuio)? 56'h206c646875696f : + (D_op_andhi)? 56'h2020616e646869 : + (D_op_sthio)? 56'h2020737468696f : + (D_op_bgeu)? 56'h20202062676575 : + (D_op_ldhio)? 56'h20206c6468696f : + (D_op_cmpltui)? 56'h636d706c747569 : + (D_op_initd)? 56'h2020696e697464 : + (D_op_orhi)? 56'h2020206f726869 : + (D_op_stwio)? 56'h2020737477696f : + (D_op_bltu)? 56'h202020626c7475 : + (D_op_ldwio)? 56'h20206c6477696f : + (D_op_flushd)? 56'h20666c75736864 : + (D_op_xorhi)? 56'h2020786f726869 : + (D_op_eret)? 56'h20202065726574 : + (D_op_roli)? 56'h202020726f6c69 : + (D_op_rol)? 56'h20202020726f6c : + (D_op_flushp)? 56'h20666c75736870 : + (D_op_ret)? 56'h20202020726574 : + (D_op_nor)? 56'h202020206e6f72 : + (D_op_mulxuu)? 56'h206d756c787575 : + (D_op_cmpge)? 56'h2020636d706765 : + (D_op_bret)? 56'h20202062726574 : + (D_op_ror)? 56'h20202020726f72 : + (D_op_flushi)? 56'h20666c75736869 : + (D_op_jmp)? 56'h202020206a6d70 : + (D_op_and)? 56'h20202020616e64 : + (D_op_cmplt)? 56'h2020636d706c74 : + (D_op_slli)? 56'h202020736c6c69 : + (D_op_sll)? 56'h20202020736c6c : + (D_op_or)? 56'h20202020206f72 : + (D_op_mulxsu)? 56'h206d756c787375 : + (D_op_cmpne)? 56'h2020636d706e65 : + (D_op_srli)? 56'h20202073726c69 : + (D_op_srl)? 56'h2020202073726c : + (D_op_nextpc)? 56'h206e6578747063 : + (D_op_callr)? 56'h202063616c6c72 : + (D_op_xor)? 56'h20202020786f72 : + (D_op_mulxss)? 56'h206d756c787373 : + (D_op_cmpeq)? 56'h2020636d706571 : + (D_op_divu)? 56'h20202064697675 : + (D_op_div)? 56'h20202020646976 : + (D_op_rdctl)? 56'h2020726463746c : + (D_op_mul)? 56'h202020206d756c : + (D_op_cmpgeu)? 56'h20636d70676575 : + (D_op_initi)? 56'h2020696e697469 : + (D_op_trap)? 56'h20202074726170 : + (D_op_wrctl)? 56'h2020777263746c : + (D_op_cmpltu)? 56'h20636d706c7475 : + (D_op_add)? 56'h20202020616464 : + (D_op_break)? 56'h2020627265616b : + (D_op_hbreak)? 56'h2068627265616b : + (D_op_sync)? 56'h20202073796e63 : + (D_op_sub)? 56'h20202020737562 : + (D_op_srai)? 56'h20202073726169 : + (D_op_sra)? 56'h20202020737261 : + (D_op_intr)? 56'h202020696e7472 : + 56'h20202020424144; + + assign F_vinst = F_valid ? F_inst : {7{8'h2d}}; + assign D_vinst = D_valid ? D_inst : {7{8'h2d}}; + assign R_vinst = R_valid ? D_inst : {7{8'h2d}}; + assign E_vinst = E_valid ? D_inst : {7{8'h2d}}; + assign W_vinst = W_valid ? D_inst : {7{8'h2d}}; + +//////////////// END SIMULATION-ONLY CONTENTS + +//synthesis translate_on + +endmodule + diff --git a/db/ip/nios_system/submodules/nios_system_nios2_processor_jtag_debug_module_sysclk.v b/db/ip/nios_system/submodules/nios_system_nios2_processor_jtag_debug_module_sysclk.v new file mode 100644 index 0000000..7eead98 --- /dev/null +++ b/db/ip/nios_system/submodules/nios_system_nios2_processor_jtag_debug_module_sysclk.v @@ -0,0 +1,181 @@ +//Legal Notice: (C)2016 Altera Corporation. All rights reserved. Your +//use of Altera Corporation's design tools, logic functions and other +//software and tools, and its AMPP partner logic functions, and any +//output files any of the foregoing (including device programming or +//simulation files), and any associated documentation or information are +//expressly subject to the terms and conditions of the Altera Program +//License Subscription Agreement or other applicable license agreement, +//including, without limitation, that your use is for the sole purpose +//of programming logic devices manufactured by Altera and sold by Altera +//or its authorized distributors. Please refer to the applicable +//agreement for further details. + +// synthesis translate_off +`timescale 1ns / 1ps +// synthesis translate_on + +// turn off superfluous verilog processor warnings +// altera message_level Level1 +// altera message_off 10034 10035 10036 10037 10230 10240 10030 + +module nios_system_nios2_processor_jtag_debug_module_sysclk ( + // inputs: + clk, + ir_in, + sr, + vs_udr, + vs_uir, + + // outputs: + jdo, + take_action_break_a, + take_action_break_b, + take_action_break_c, + take_action_ocimem_a, + take_action_ocimem_b, + take_action_tracectrl, + take_action_tracemem_a, + take_action_tracemem_b, + take_no_action_break_a, + take_no_action_break_b, + take_no_action_break_c, + take_no_action_ocimem_a, + take_no_action_tracemem_a + ) +; + + output [ 37: 0] jdo; + output take_action_break_a; + output take_action_break_b; + output take_action_break_c; + output take_action_ocimem_a; + output take_action_ocimem_b; + output take_action_tracectrl; + output take_action_tracemem_a; + output take_action_tracemem_b; + output take_no_action_break_a; + output take_no_action_break_b; + output take_no_action_break_c; + output take_no_action_ocimem_a; + output take_no_action_tracemem_a; + input clk; + input [ 1: 0] ir_in; + input [ 37: 0] sr; + input vs_udr; + input vs_uir; + + reg enable_action_strobe /* synthesis ALTERA_ATTRIBUTE = "SUPPRESS_DA_RULE_INTERNAL=\"D101,D103\"" */; + reg [ 1: 0] ir /* synthesis ALTERA_ATTRIBUTE = "SUPPRESS_DA_RULE_INTERNAL=\"D101,R101\"" */; + reg [ 37: 0] jdo /* synthesis ALTERA_ATTRIBUTE = "SUPPRESS_DA_RULE_INTERNAL=\"D101,R101\"" */; + reg jxuir /* synthesis ALTERA_ATTRIBUTE = "SUPPRESS_DA_RULE_INTERNAL=\"D101,D103\"" */; + reg sync2_udr /* synthesis ALTERA_ATTRIBUTE = "SUPPRESS_DA_RULE_INTERNAL=\"D101,D103\"" */; + reg sync2_uir /* synthesis ALTERA_ATTRIBUTE = "SUPPRESS_DA_RULE_INTERNAL=\"D101,D103\"" */; + wire sync_udr; + wire sync_uir; + wire take_action_break_a; + wire take_action_break_b; + wire take_action_break_c; + wire take_action_ocimem_a; + wire take_action_ocimem_b; + wire take_action_tracectrl; + wire take_action_tracemem_a; + wire take_action_tracemem_b; + wire take_no_action_break_a; + wire take_no_action_break_b; + wire take_no_action_break_c; + wire take_no_action_ocimem_a; + wire take_no_action_tracemem_a; + wire unxunused_resetxx3; + wire unxunused_resetxx4; + reg update_jdo_strobe /* synthesis ALTERA_ATTRIBUTE = "SUPPRESS_DA_RULE_INTERNAL=\"D101,D103\"" */; + assign unxunused_resetxx3 = 1'b1; + altera_std_synchronizer the_altera_std_synchronizer3 + ( + .clk (clk), + .din (vs_udr), + .dout (sync_udr), + .reset_n (unxunused_resetxx3) + ); + + defparam the_altera_std_synchronizer3.depth = 2; + + assign unxunused_resetxx4 = 1'b1; + altera_std_synchronizer the_altera_std_synchronizer4 + ( + .clk (clk), + .din (vs_uir), + .dout (sync_uir), + .reset_n (unxunused_resetxx4) + ); + + defparam the_altera_std_synchronizer4.depth = 2; + + always @(posedge clk) + begin + sync2_udr <= sync_udr; + update_jdo_strobe <= sync_udr & ~sync2_udr; + enable_action_strobe <= update_jdo_strobe; + sync2_uir <= sync_uir; + jxuir <= sync_uir & ~sync2_uir; + end + + + assign take_action_ocimem_a = enable_action_strobe && (ir == 2'b00) && + ~jdo[35] && jdo[34]; + + assign take_no_action_ocimem_a = enable_action_strobe && (ir == 2'b00) && + ~jdo[35] && ~jdo[34]; + + assign take_action_ocimem_b = enable_action_strobe && (ir == 2'b00) && + jdo[35]; + + assign take_action_tracemem_a = enable_action_strobe && (ir == 2'b01) && + ~jdo[37] && + jdo[36]; + + assign take_no_action_tracemem_a = enable_action_strobe && (ir == 2'b01) && + ~jdo[37] && + ~jdo[36]; + + assign take_action_tracemem_b = enable_action_strobe && (ir == 2'b01) && + jdo[37]; + + assign take_action_break_a = enable_action_strobe && (ir == 2'b10) && + ~jdo[36] && + jdo[37]; + + assign take_no_action_break_a = enable_action_strobe && (ir == 2'b10) && + ~jdo[36] && + ~jdo[37]; + + assign take_action_break_b = enable_action_strobe && (ir == 2'b10) && + jdo[36] && ~jdo[35] && + jdo[37]; + + assign take_no_action_break_b = enable_action_strobe && (ir == 2'b10) && + jdo[36] && ~jdo[35] && + ~jdo[37]; + + assign take_action_break_c = enable_action_strobe && (ir == 2'b10) && + jdo[36] && jdo[35] && + jdo[37]; + + assign take_no_action_break_c = enable_action_strobe && (ir == 2'b10) && + jdo[36] && jdo[35] && + ~jdo[37]; + + assign take_action_tracectrl = enable_action_strobe && (ir == 2'b11) && + jdo[15]; + + always @(posedge clk) + begin + if (jxuir) + ir <= ir_in; + if (update_jdo_strobe) + jdo <= sr; + end + + + +endmodule + diff --git a/db/ip/nios_system/submodules/nios_system_nios2_processor_jtag_debug_module_tck.v b/db/ip/nios_system/submodules/nios_system_nios2_processor_jtag_debug_module_tck.v new file mode 100644 index 0000000..09289db --- /dev/null +++ b/db/ip/nios_system/submodules/nios_system_nios2_processor_jtag_debug_module_tck.v @@ -0,0 +1,239 @@ +//Legal Notice: (C)2016 Altera Corporation. All rights reserved. Your +//use of Altera Corporation's design tools, logic functions and other +//software and tools, and its AMPP partner logic functions, and any +//output files any of the foregoing (including device programming or +//simulation files), and any associated documentation or information are +//expressly subject to the terms and conditions of the Altera Program +//License Subscription Agreement or other applicable license agreement, +//including, without limitation, that your use is for the sole purpose +//of programming logic devices manufactured by Altera and sold by Altera +//or its authorized distributors. Please refer to the applicable +//agreement for further details. + +// synthesis translate_off +`timescale 1ns / 1ps +// synthesis translate_on + +// turn off superfluous verilog processor warnings +// altera message_level Level1 +// altera message_off 10034 10035 10036 10037 10230 10240 10030 + +module nios_system_nios2_processor_jtag_debug_module_tck ( + // inputs: + MonDReg, + break_readreg, + dbrk_hit0_latch, + dbrk_hit1_latch, + dbrk_hit2_latch, + dbrk_hit3_latch, + debugack, + ir_in, + jtag_state_rti, + monitor_error, + monitor_ready, + reset_n, + resetlatch, + tck, + tdi, + tracemem_on, + tracemem_trcdata, + tracemem_tw, + trc_im_addr, + trc_on, + trc_wrap, + trigbrktype, + trigger_state_1, + vs_cdr, + vs_sdr, + vs_uir, + + // outputs: + ir_out, + jrst_n, + sr, + st_ready_test_idle, + tdo + ) +; + + output [ 1: 0] ir_out; + output jrst_n; + output [ 37: 0] sr; + output st_ready_test_idle; + output tdo; + input [ 31: 0] MonDReg; + input [ 31: 0] break_readreg; + input dbrk_hit0_latch; + input dbrk_hit1_latch; + input dbrk_hit2_latch; + input dbrk_hit3_latch; + input debugack; + input [ 1: 0] ir_in; + input jtag_state_rti; + input monitor_error; + input monitor_ready; + input reset_n; + input resetlatch; + input tck; + input tdi; + input tracemem_on; + input [ 35: 0] tracemem_trcdata; + input tracemem_tw; + input [ 6: 0] trc_im_addr; + input trc_on; + input trc_wrap; + input trigbrktype; + input trigger_state_1; + input vs_cdr; + input vs_sdr; + input vs_uir; + + reg [ 2: 0] DRsize /* synthesis ALTERA_ATTRIBUTE = "SUPPRESS_DA_RULE_INTERNAL=\"D101,D103,R101\"" */; + wire debugack_sync; + reg [ 1: 0] ir_out; + wire jrst_n; + wire monitor_ready_sync; + reg [ 37: 0] sr /* synthesis ALTERA_ATTRIBUTE = "SUPPRESS_DA_RULE_INTERNAL=\"D101,D103,R101\"" */; + wire st_ready_test_idle; + wire tdo; + wire unxcomplemented_resetxx1; + wire unxcomplemented_resetxx2; + always @(posedge tck) + begin + if (vs_cdr) + case (ir_in) + + 2'b00: begin + sr[35] <= debugack_sync; + sr[34] <= monitor_error; + sr[33] <= resetlatch; + sr[32 : 1] <= MonDReg; + sr[0] <= monitor_ready_sync; + end // 2'b00 + + 2'b01: begin + sr[35 : 0] <= tracemem_trcdata; + sr[37] <= tracemem_tw; + sr[36] <= tracemem_on; + end // 2'b01 + + 2'b10: begin + sr[37] <= trigger_state_1; + sr[36] <= dbrk_hit3_latch; + sr[35] <= dbrk_hit2_latch; + sr[34] <= dbrk_hit1_latch; + sr[33] <= dbrk_hit0_latch; + sr[32 : 1] <= break_readreg; + sr[0] <= trigbrktype; + end // 2'b10 + + 2'b11: begin + sr[15 : 12] <= 1'b0; + sr[11 : 2] <= trc_im_addr; + sr[1] <= trc_wrap; + sr[0] <= trc_on; + end // 2'b11 + + endcase // ir_in + if (vs_sdr) + case (DRsize) + + 3'b000: begin + sr <= {tdi, sr[37 : 2], tdi}; + end // 3'b000 + + 3'b001: begin + sr <= {tdi, sr[37 : 9], tdi, sr[7 : 1]}; + end // 3'b001 + + 3'b010: begin + sr <= {tdi, sr[37 : 17], tdi, sr[15 : 1]}; + end // 3'b010 + + 3'b011: begin + sr <= {tdi, sr[37 : 33], tdi, sr[31 : 1]}; + end // 3'b011 + + 3'b100: begin + sr <= {tdi, sr[37], tdi, sr[35 : 1]}; + end // 3'b100 + + 3'b101: begin + sr <= {tdi, sr[37 : 1]}; + end // 3'b101 + + default: begin + sr <= {tdi, sr[37 : 2], tdi}; + end // default + + endcase // DRsize + if (vs_uir) + case (ir_in) + + 2'b00: begin + DRsize <= 3'b100; + end // 2'b00 + + 2'b01: begin + DRsize <= 3'b101; + end // 2'b01 + + 2'b10: begin + DRsize <= 3'b101; + end // 2'b10 + + 2'b11: begin + DRsize <= 3'b010; + end // 2'b11 + + endcase // ir_in + end + + + assign tdo = sr[0]; + assign st_ready_test_idle = jtag_state_rti; + assign unxcomplemented_resetxx1 = jrst_n; + altera_std_synchronizer the_altera_std_synchronizer1 + ( + .clk (tck), + .din (debugack), + .dout (debugack_sync), + .reset_n (unxcomplemented_resetxx1) + ); + + defparam the_altera_std_synchronizer1.depth = 2; + + assign unxcomplemented_resetxx2 = jrst_n; + altera_std_synchronizer the_altera_std_synchronizer2 + ( + .clk (tck), + .din (monitor_ready), + .dout (monitor_ready_sync), + .reset_n (unxcomplemented_resetxx2) + ); + + defparam the_altera_std_synchronizer2.depth = 2; + + always @(posedge tck or negedge jrst_n) + begin + if (jrst_n == 0) + ir_out <= 2'b0; + else + ir_out <= {debugack_sync, monitor_ready_sync}; + end + + + +//synthesis translate_off +//////////////// SIMULATION-ONLY CONTENTS + assign jrst_n = reset_n; + +//////////////// END SIMULATION-ONLY CONTENTS + +//synthesis translate_on +//synthesis read_comments_as_HDL on +// assign jrst_n = 1; +//synthesis read_comments_as_HDL off + +endmodule + diff --git a/db/ip/nios_system/submodules/nios_system_nios2_processor_jtag_debug_module_wrapper.v b/db/ip/nios_system/submodules/nios_system_nios2_processor_jtag_debug_module_wrapper.v new file mode 100644 index 0000000..6a57330 --- /dev/null +++ b/db/ip/nios_system/submodules/nios_system_nios2_processor_jtag_debug_module_wrapper.v @@ -0,0 +1,233 @@ +//Legal Notice: (C)2016 Altera Corporation. All rights reserved. Your +//use of Altera Corporation's design tools, logic functions and other +//software and tools, and its AMPP partner logic functions, and any +//output files any of the foregoing (including device programming or +//simulation files), and any associated documentation or information are +//expressly subject to the terms and conditions of the Altera Program +//License Subscription Agreement or other applicable license agreement, +//including, without limitation, that your use is for the sole purpose +//of programming logic devices manufactured by Altera and sold by Altera +//or its authorized distributors. Please refer to the applicable +//agreement for further details. + +// synthesis translate_off +`timescale 1ns / 1ps +// synthesis translate_on + +// turn off superfluous verilog processor warnings +// altera message_level Level1 +// altera message_off 10034 10035 10036 10037 10230 10240 10030 + +module nios_system_nios2_processor_jtag_debug_module_wrapper ( + // inputs: + MonDReg, + break_readreg, + clk, + dbrk_hit0_latch, + dbrk_hit1_latch, + dbrk_hit2_latch, + dbrk_hit3_latch, + debugack, + monitor_error, + monitor_ready, + reset_n, + resetlatch, + tracemem_on, + tracemem_trcdata, + tracemem_tw, + trc_im_addr, + trc_on, + trc_wrap, + trigbrktype, + trigger_state_1, + + // outputs: + jdo, + jrst_n, + st_ready_test_idle, + take_action_break_a, + take_action_break_b, + take_action_break_c, + take_action_ocimem_a, + take_action_ocimem_b, + take_action_tracectrl, + take_action_tracemem_a, + take_action_tracemem_b, + take_no_action_break_a, + take_no_action_break_b, + take_no_action_break_c, + take_no_action_ocimem_a, + take_no_action_tracemem_a + ) +; + + output [ 37: 0] jdo; + output jrst_n; + output st_ready_test_idle; + output take_action_break_a; + output take_action_break_b; + output take_action_break_c; + output take_action_ocimem_a; + output take_action_ocimem_b; + output take_action_tracectrl; + output take_action_tracemem_a; + output take_action_tracemem_b; + output take_no_action_break_a; + output take_no_action_break_b; + output take_no_action_break_c; + output take_no_action_ocimem_a; + output take_no_action_tracemem_a; + input [ 31: 0] MonDReg; + input [ 31: 0] break_readreg; + input clk; + input dbrk_hit0_latch; + input dbrk_hit1_latch; + input dbrk_hit2_latch; + input dbrk_hit3_latch; + input debugack; + input monitor_error; + input monitor_ready; + input reset_n; + input resetlatch; + input tracemem_on; + input [ 35: 0] tracemem_trcdata; + input tracemem_tw; + input [ 6: 0] trc_im_addr; + input trc_on; + input trc_wrap; + input trigbrktype; + input trigger_state_1; + + wire [ 37: 0] jdo; + wire jrst_n; + wire [ 37: 0] sr; + wire st_ready_test_idle; + wire take_action_break_a; + wire take_action_break_b; + wire take_action_break_c; + wire take_action_ocimem_a; + wire take_action_ocimem_b; + wire take_action_tracectrl; + wire take_action_tracemem_a; + wire take_action_tracemem_b; + wire take_no_action_break_a; + wire take_no_action_break_b; + wire take_no_action_break_c; + wire take_no_action_ocimem_a; + wire take_no_action_tracemem_a; + wire vji_cdr; + wire [ 1: 0] vji_ir_in; + wire [ 1: 0] vji_ir_out; + wire vji_rti; + wire vji_sdr; + wire vji_tck; + wire vji_tdi; + wire vji_tdo; + wire vji_udr; + wire vji_uir; + //Change the sld_virtual_jtag_basic's defparams to + //switch between a regular Nios II or an internally embedded Nios II. + //For a regular Nios II, sld_mfg_id = 70, sld_type_id = 34. + //For an internally embedded Nios II, slf_mfg_id = 110, sld_type_id = 135. + nios_system_nios2_processor_jtag_debug_module_tck the_nios_system_nios2_processor_jtag_debug_module_tck + ( + .MonDReg (MonDReg), + .break_readreg (break_readreg), + .dbrk_hit0_latch (dbrk_hit0_latch), + .dbrk_hit1_latch (dbrk_hit1_latch), + .dbrk_hit2_latch (dbrk_hit2_latch), + .dbrk_hit3_latch (dbrk_hit3_latch), + .debugack (debugack), + .ir_in (vji_ir_in), + .ir_out (vji_ir_out), + .jrst_n (jrst_n), + .jtag_state_rti (vji_rti), + .monitor_error (monitor_error), + .monitor_ready (monitor_ready), + .reset_n (reset_n), + .resetlatch (resetlatch), + .sr (sr), + .st_ready_test_idle (st_ready_test_idle), + .tck (vji_tck), + .tdi (vji_tdi), + .tdo (vji_tdo), + .tracemem_on (tracemem_on), + .tracemem_trcdata (tracemem_trcdata), + .tracemem_tw (tracemem_tw), + .trc_im_addr (trc_im_addr), + .trc_on (trc_on), + .trc_wrap (trc_wrap), + .trigbrktype (trigbrktype), + .trigger_state_1 (trigger_state_1), + .vs_cdr (vji_cdr), + .vs_sdr (vji_sdr), + .vs_uir (vji_uir) + ); + + nios_system_nios2_processor_jtag_debug_module_sysclk the_nios_system_nios2_processor_jtag_debug_module_sysclk + ( + .clk (clk), + .ir_in (vji_ir_in), + .jdo (jdo), + .sr (sr), + .take_action_break_a (take_action_break_a), + .take_action_break_b (take_action_break_b), + .take_action_break_c (take_action_break_c), + .take_action_ocimem_a (take_action_ocimem_a), + .take_action_ocimem_b (take_action_ocimem_b), + .take_action_tracectrl (take_action_tracectrl), + .take_action_tracemem_a (take_action_tracemem_a), + .take_action_tracemem_b (take_action_tracemem_b), + .take_no_action_break_a (take_no_action_break_a), + .take_no_action_break_b (take_no_action_break_b), + .take_no_action_break_c (take_no_action_break_c), + .take_no_action_ocimem_a (take_no_action_ocimem_a), + .take_no_action_tracemem_a (take_no_action_tracemem_a), + .vs_udr (vji_udr), + .vs_uir (vji_uir) + ); + + +//synthesis translate_off +//////////////// SIMULATION-ONLY CONTENTS + assign vji_tck = 1'b0; + assign vji_tdi = 1'b0; + assign vji_sdr = 1'b0; + assign vji_cdr = 1'b0; + assign vji_rti = 1'b0; + assign vji_uir = 1'b0; + assign vji_udr = 1'b0; + assign vji_ir_in = 2'b0; + +//////////////// END SIMULATION-ONLY CONTENTS + +//synthesis translate_on +//synthesis read_comments_as_HDL on +// sld_virtual_jtag_basic nios_system_nios2_processor_jtag_debug_module_phy +// ( +// .ir_in (vji_ir_in), +// .ir_out (vji_ir_out), +// .jtag_state_rti (vji_rti), +// .tck (vji_tck), +// .tdi (vji_tdi), +// .tdo (vji_tdo), +// .virtual_state_cdr (vji_cdr), +// .virtual_state_sdr (vji_sdr), +// .virtual_state_udr (vji_udr), +// .virtual_state_uir (vji_uir) +// ); +// +// defparam nios_system_nios2_processor_jtag_debug_module_phy.sld_auto_instance_index = "YES", +// nios_system_nios2_processor_jtag_debug_module_phy.sld_instance_index = 0, +// nios_system_nios2_processor_jtag_debug_module_phy.sld_ir_width = 2, +// nios_system_nios2_processor_jtag_debug_module_phy.sld_mfg_id = 70, +// nios_system_nios2_processor_jtag_debug_module_phy.sld_sim_action = "", +// nios_system_nios2_processor_jtag_debug_module_phy.sld_sim_n_scan = 0, +// nios_system_nios2_processor_jtag_debug_module_phy.sld_sim_total_length = 0, +// nios_system_nios2_processor_jtag_debug_module_phy.sld_type_id = 34, +// nios_system_nios2_processor_jtag_debug_module_phy.sld_version = 3; +// +//synthesis read_comments_as_HDL off + +endmodule + diff --git a/db/ip/nios_system/submodules/nios_system_nios2_processor_oci_test_bench.v b/db/ip/nios_system/submodules/nios_system_nios2_processor_oci_test_bench.v new file mode 100644 index 0000000..cf59495 --- /dev/null +++ b/db/ip/nios_system/submodules/nios_system_nios2_processor_oci_test_bench.v @@ -0,0 +1,37 @@ +//Legal Notice: (C)2016 Altera Corporation. All rights reserved. Your +//use of Altera Corporation's design tools, logic functions and other +//software and tools, and its AMPP partner logic functions, and any +//output files any of the foregoing (including device programming or +//simulation files), and any associated documentation or information are +//expressly subject to the terms and conditions of the Altera Program +//License Subscription Agreement or other applicable license agreement, +//including, without limitation, that your use is for the sole purpose +//of programming logic devices manufactured by Altera and sold by Altera +//or its authorized distributors. Please refer to the applicable +//agreement for further details. + +// synthesis translate_off +`timescale 1ns / 1ps +// synthesis translate_on + +// turn off superfluous verilog processor warnings +// altera message_level Level1 +// altera message_off 10034 10035 10036 10037 10230 10240 10030 + +module nios_system_nios2_processor_oci_test_bench ( + // inputs: + dct_buffer, + dct_count, + test_ending, + test_has_ended + ) +; + + input [ 29: 0] dct_buffer; + input [ 3: 0] dct_count; + input test_ending; + input test_has_ended; + + +endmodule + diff --git a/db/ip/nios_system/submodules/nios_system_nios2_processor_ociram_default_contents.mif b/db/ip/nios_system/submodules/nios_system_nios2_processor_ociram_default_contents.mif new file mode 100644 index 0000000..aee33b3 --- /dev/null +++ b/db/ip/nios_system/submodules/nios_system_nios2_processor_ociram_default_contents.mif @@ -0,0 +1,267 @@ +-- Contents are randomly generated during RTL generation. +WIDTH=32; +DEPTH=256; + +ADDRESS_RADIX=HEX; +DATA_RADIX=HEX; + +CONTENT BEGIN + +00 : 88997af9; +01 : abaae595; +02 : 32fd14d1; +03 : b66193c4; +04 : c6a6aa09; +05 : 0b43de5b; +06 : d1d93028; +07 : bcd08e2a; +08 : 1c8bae85; +09 : b11dad63; +0a : 864ddf62; +0b : 68301486; +0c : 51a3d8d0; +0d : 7af7d39e; +0e : 4761b503; +0f : 2a976e14; +10 : 98141041; +11 : 4c1f6471; +12 : 41dc0a35; +13 : 7d484ae3; +14 : 2a1329f3; +15 : 44ecf499; +16 : dccdd125; +17 : 240142e9; +18 : 3b7e4b05; +19 : bb92e762; +1a : 4594a3c5; +1b : ea0d940f; +1c : 66525d7c; +1d : 0f552242; +1e : 452bd52d; +1f : d1f4ed11; +20 : 5d590422; +21 : c8016b5f; +22 : 9ab94f07; +23 : 16bac9b4; +24 : fe569ae3; +25 : c6e1e6e7; +26 : 2ff19932; +27 : feb058ad; +28 : 1dcce651; +29 : e18b9bfb; +2a : e2f4fc64; +2b : 05d34847; +2c : 077a8143; +2d : 2ce4207f; +2e : 3f3e5113; +2f : c24d2803; +30 : e289b503; +31 : d16bcd4e; +32 : 57a841cf; +33 : 1194f754; +34 : 5c925a31; +35 : 40fd6946; +36 : e397e5d7; +37 : eada7553; +38 : eba8ec01; +39 : f5b39d0b; +3a : 88af39a3; +3b : 5b7f243e; +3c : 4f2bb4ba; +3d : 9451a234; +3e : 10fd984d; +3f : ad4ef4f7; +40 : 7fe97f8b; +41 : 08ea614d; +42 : 9f2c5cf4; +43 : 3f90b7a2; +44 : 8c2bc774; +45 : 45dd63a5; +46 : 3204329c; +47 : 9909be0d; +48 : be65c97b; +49 : 78f3d4a4; +4a : 3ee8b71c; +4b : 9e9a0de4; +4c : 56db426b; +4d : e6869d81; +4e : 20ab0652; +4f : 05d247ed; +50 : 1edccf12; +51 : 1e483b5a; +52 : 8e48ef1e; +53 : f19aefbf; +54 : 98335d23; +55 : 954ac923; +56 : 4679ced6; +57 : ae18d9b8; +58 : be57db48; +59 : 2af933e3; +5a : 3f04e244; +5b : 5d11c958; +5c : 65bda8cb; +5d : c53fe664; +5e : 797ceac8; +5f : aaa406e5; +60 : f785e24e; +61 : 95510077; +62 : 5b6f55a3; +63 : 2a3c749a; +64 : a92e6ae6; +65 : b2117fb0; +66 : 262a254e; +67 : b8c4da74; +68 : f69070ee; +69 : 9e7f80b8; +6a : 834528b4; +6b : 4aaf6d98; +6c : 96023372; +6d : d11663ed; +6e : 33a3c007; +6f : 0e7f06ee; +70 : 34385787; +71 : 2edfd7b0; +72 : 00d60e4b; +73 : 49535c30; +74 : e83f5c14; +75 : 5e0c4c59; +76 : 1d7b944a; +77 : 6ae69731; +78 : bf8414e4; +79 : 7451c212; +7a : 74ede6d2; +7b : 080eafa5; +7c : f21052d8; +7d : cc0819fb; +7e : 8993e5b6; +7f : e20f2df6; +80 : 0f267a65; +81 : 7a8e8407; +82 : e7be656d; +83 : 01ba4ca3; +84 : 7f998e44; +85 : 29d83420; +86 : 149f9a73; +87 : 643ae51e; +88 : 125714d3; +89 : 6e49dc21; +8a : 0b227946; +8b : 360a837d; +8c : b2187074; +8d : 17b0bdbd; +8e : 938fc73d; +8f : e73f501e; +90 : 70b5b87e; +91 : 2a2aed8a; +92 : f96cc881; +93 : 021b49e1; +94 : 8691600d; +95 : b45e1d12; +96 : 64d9644e; +97 : 486cbaf9; +98 : 386acf20; +99 : 0d1384d4; +9a : 62455f77; +9b : 866fde20; +9c : 006fecec; +9d : 94e84514; +9e : 7babc333; +9f : afaa8445; +a0 : b1175e3a; +a1 : e08de629; +a2 : 7f12a52d; +a3 : 0e322909; +a4 : 18784dc6; +a5 : b23bcc20; +a6 : 266c9e34; +a7 : c857eaf3; +a8 : 2ae3b164; +a9 : 038acf2a; +aa : c1abc60d; +ab : 8af787bd; +ac : 043723a9; +ad : c37c952d; +ae : 693a361f; +af : da4b8e99; +b0 : fb8fdb10; +b1 : 4d6365f2; +b2 : 712358e9; +b3 : 85dae0fa; +b4 : 7e82a418; +b5 : d3493768; +b6 : 739c65ec; +b7 : 73b66b19; +b8 : 22142816; +b9 : ff498322; +ba : 3266495e; +bb : e26e8214; +bc : c8c47131; +bd : 660793d8; +be : 689f8d69; +bf : faae340b; +c0 : 37518ba7; +c1 : f2865fe5; +c2 : 1bb44f3d; +c3 : 3bce44c5; +c4 : aff2d188; +c5 : 985442da; +c6 : 85bb58bd; +c7 : 0c53135d; +c8 : 495f80bc; +c9 : 853c95dc; +ca : dde937f1; +cb : 418f9452; +cc : 7669641c; +cd : 0e752434; +ce : b0fe17a7; +cf : d1be9b88; +d0 : cfbfeb76; +d1 : 80b48a11; +d2 : 9327c69e; +d3 : beca5a88; +d4 : e71d428f; +d5 : b318d275; +d6 : 56fea35e; +d7 : 140cd6bd; +d8 : b8c937ce; +d9 : 540eea36; +da : ee58fc7f; +db : 5615c389; +dc : 46692ad0; +dd : 5c713e51; +de : 6ba95f60; +df : 0e166732; +e0 : ac0e49f5; +e1 : c9a5ea76; +e2 : 05b04d86; +e3 : b29ac712; +e4 : 4e344493; +e5 : d45ede48; +e6 : 3da7e426; +e7 : 4d6a8937; +e8 : 99b59bd4; +e9 : 1f8a5751; +ea : 8b07e64e; +eb : b4dcd496; +ec : 42f84fe6; +ed : f1d5952f; +ee : a2e5a42d; +ef : 15b1af16; +f0 : 168012bc; +f1 : 2e276612; +f2 : 89913eaa; +f3 : c607a1a2; +f4 : fd8b544d; +f5 : aec31a53; +f6 : 25f958ad; +f7 : 365903ec; +f8 : 14761865; +f9 : 568cc23b; +fa : b0386305; +fb : fb9ebd8a; +fc : a25911d4; +fd : 806e3fbb; +fe : 9df35264; +ff : d62b3814; + +END; diff --git a/db/ip/nios_system/submodules/nios_system_nios2_processor_rf_ram_a.mif b/db/ip/nios_system/submodules/nios_system_nios2_processor_rf_ram_a.mif new file mode 100644 index 0000000..644013a --- /dev/null +++ b/db/ip/nios_system/submodules/nios_system_nios2_processor_rf_ram_a.mif @@ -0,0 +1,42 @@ +WIDTH=32; +DEPTH=32; + +ADDRESS_RADIX=HEX; +DATA_RADIX=HEX; + +CONTENT BEGIN + +00 : deadbeef; +01 : deadbeef; +02 : deadbeef; +03 : deadbeef; +04 : deadbeef; +05 : deadbeef; +06 : deadbeef; +07 : deadbeef; +08 : deadbeef; +09 : deadbeef; +0a : deadbeef; +0b : deadbeef; +0c : deadbeef; +0d : deadbeef; +0e : deadbeef; +0f : deadbeef; +10 : deadbeef; +11 : deadbeef; +12 : deadbeef; +13 : deadbeef; +14 : deadbeef; +15 : deadbeef; +16 : deadbeef; +17 : deadbeef; +18 : deadbeef; +19 : deadbeef; +1a : deadbeef; +1b : deadbeef; +1c : deadbeef; +1d : deadbeef; +1e : deadbeef; +1f : deadbeef; + +END; diff --git a/db/ip/nios_system/submodules/nios_system_nios2_processor_rf_ram_b.mif b/db/ip/nios_system/submodules/nios_system_nios2_processor_rf_ram_b.mif new file mode 100644 index 0000000..644013a --- /dev/null +++ b/db/ip/nios_system/submodules/nios_system_nios2_processor_rf_ram_b.mif @@ -0,0 +1,42 @@ +WIDTH=32; +DEPTH=32; + +ADDRESS_RADIX=HEX; +DATA_RADIX=HEX; + +CONTENT BEGIN + +00 : deadbeef; +01 : deadbeef; +02 : deadbeef; +03 : deadbeef; +04 : deadbeef; +05 : deadbeef; +06 : deadbeef; +07 : deadbeef; +08 : deadbeef; +09 : deadbeef; +0a : deadbeef; +0b : deadbeef; +0c : deadbeef; +0d : deadbeef; +0e : deadbeef; +0f : deadbeef; +10 : deadbeef; +11 : deadbeef; +12 : deadbeef; +13 : deadbeef; +14 : deadbeef; +15 : deadbeef; +16 : deadbeef; +17 : deadbeef; +18 : deadbeef; +19 : deadbeef; +1a : deadbeef; +1b : deadbeef; +1c : deadbeef; +1d : deadbeef; +1e : deadbeef; +1f : deadbeef; + +END; diff --git a/db/ip/nios_system/submodules/nios_system_nios2_processor_test_bench.v b/db/ip/nios_system/submodules/nios_system_nios2_processor_test_bench.v new file mode 100644 index 0000000..d707995 --- /dev/null +++ b/db/ip/nios_system/submodules/nios_system_nios2_processor_test_bench.v @@ -0,0 +1,667 @@ +//Legal Notice: (C)2016 Altera Corporation. All rights reserved. Your +//use of Altera Corporation's design tools, logic functions and other +//software and tools, and its AMPP partner logic functions, and any +//output files any of the foregoing (including device programming or +//simulation files), and any associated documentation or information are +//expressly subject to the terms and conditions of the Altera Program +//License Subscription Agreement or other applicable license agreement, +//including, without limitation, that your use is for the sole purpose +//of programming logic devices manufactured by Altera and sold by Altera +//or its authorized distributors. Please refer to the applicable +//agreement for further details. + +// synthesis translate_off +`timescale 1ns / 1ps +// synthesis translate_on + +// turn off superfluous verilog processor warnings +// altera message_level Level1 +// altera message_off 10034 10035 10036 10037 10230 10240 10030 + +module nios_system_nios2_processor_test_bench ( + // inputs: + D_iw, + D_iw_op, + D_iw_opx, + D_valid, + E_valid, + F_pcb, + F_valid, + R_ctrl_ld, + R_ctrl_ld_non_io, + R_dst_regnum, + R_wr_dst_reg, + W_valid, + W_vinst, + W_wr_data, + av_ld_data_aligned_unfiltered, + clk, + d_address, + d_byteenable, + d_read, + d_write_nxt, + i_address, + i_read, + i_readdata, + i_waitrequest, + reset_n, + + // outputs: + av_ld_data_aligned_filtered, + d_write, + test_has_ended + ) +; + + output [ 31: 0] av_ld_data_aligned_filtered; + output d_write; + output test_has_ended; + input [ 31: 0] D_iw; + input [ 5: 0] D_iw_op; + input [ 5: 0] D_iw_opx; + input D_valid; + input E_valid; + input [ 18: 0] F_pcb; + input F_valid; + input R_ctrl_ld; + input R_ctrl_ld_non_io; + input [ 4: 0] R_dst_regnum; + input R_wr_dst_reg; + input W_valid; + input [ 55: 0] W_vinst; + input [ 31: 0] W_wr_data; + input [ 31: 0] av_ld_data_aligned_unfiltered; + input clk; + input [ 18: 0] d_address; + input [ 3: 0] d_byteenable; + input d_read; + input d_write_nxt; + input [ 18: 0] i_address; + input i_read; + input [ 31: 0] i_readdata; + input i_waitrequest; + input reset_n; + + wire D_op_add; + wire D_op_addi; + wire D_op_and; + wire D_op_andhi; + wire D_op_andi; + wire D_op_beq; + wire D_op_bge; + wire D_op_bgeu; + wire D_op_blt; + wire D_op_bltu; + wire D_op_bne; + wire D_op_br; + wire D_op_break; + wire D_op_bret; + wire D_op_call; + wire D_op_callr; + wire D_op_cmpeq; + wire D_op_cmpeqi; + wire D_op_cmpge; + wire D_op_cmpgei; + wire D_op_cmpgeu; + wire D_op_cmpgeui; + wire D_op_cmplt; + wire D_op_cmplti; + wire D_op_cmpltu; + wire D_op_cmpltui; + wire D_op_cmpne; + wire D_op_cmpnei; + wire D_op_crst; + wire D_op_custom; + wire D_op_div; + wire D_op_divu; + wire D_op_eret; + wire D_op_flushd; + wire D_op_flushda; + wire D_op_flushi; + wire D_op_flushp; + wire D_op_hbreak; + wire D_op_initd; + wire D_op_initda; + wire D_op_initi; + wire D_op_intr; + wire D_op_jmp; + wire D_op_jmpi; + wire D_op_ldb; + wire D_op_ldbio; + wire D_op_ldbu; + wire D_op_ldbuio; + wire D_op_ldh; + wire D_op_ldhio; + wire D_op_ldhu; + wire D_op_ldhuio; + wire D_op_ldl; + wire D_op_ldw; + wire D_op_ldwio; + wire D_op_mul; + wire D_op_muli; + wire D_op_mulxss; + wire D_op_mulxsu; + wire D_op_mulxuu; + wire D_op_nextpc; + wire D_op_nor; + wire D_op_opx; + wire D_op_or; + wire D_op_orhi; + wire D_op_ori; + wire D_op_rdctl; + wire D_op_rdprs; + wire D_op_ret; + wire D_op_rol; + wire D_op_roli; + wire D_op_ror; + wire D_op_rsv02; + wire D_op_rsv09; + wire D_op_rsv10; + wire D_op_rsv17; + wire D_op_rsv18; + wire D_op_rsv25; + wire D_op_rsv26; + wire D_op_rsv33; + wire D_op_rsv34; + wire D_op_rsv41; + wire D_op_rsv42; + wire D_op_rsv49; + wire D_op_rsv57; + wire D_op_rsv61; + wire D_op_rsv62; + wire D_op_rsv63; + wire D_op_rsvx00; + wire D_op_rsvx10; + wire D_op_rsvx15; + wire D_op_rsvx17; + wire D_op_rsvx21; + wire D_op_rsvx25; + wire D_op_rsvx33; + wire D_op_rsvx34; + wire D_op_rsvx35; + wire D_op_rsvx42; + wire D_op_rsvx43; + wire D_op_rsvx44; + wire D_op_rsvx47; + wire D_op_rsvx50; + wire D_op_rsvx51; + wire D_op_rsvx55; + wire D_op_rsvx56; + wire D_op_rsvx60; + wire D_op_rsvx63; + wire D_op_sll; + wire D_op_slli; + wire D_op_sra; + wire D_op_srai; + wire D_op_srl; + wire D_op_srli; + wire D_op_stb; + wire D_op_stbio; + wire D_op_stc; + wire D_op_sth; + wire D_op_sthio; + wire D_op_stw; + wire D_op_stwio; + wire D_op_sub; + wire D_op_sync; + wire D_op_trap; + wire D_op_wrctl; + wire D_op_wrprs; + wire D_op_xor; + wire D_op_xorhi; + wire D_op_xori; + wire [ 31: 0] av_ld_data_aligned_filtered; + wire av_ld_data_aligned_unfiltered_0_is_x; + wire av_ld_data_aligned_unfiltered_10_is_x; + wire av_ld_data_aligned_unfiltered_11_is_x; + wire av_ld_data_aligned_unfiltered_12_is_x; + wire av_ld_data_aligned_unfiltered_13_is_x; + wire av_ld_data_aligned_unfiltered_14_is_x; + wire av_ld_data_aligned_unfiltered_15_is_x; + wire av_ld_data_aligned_unfiltered_16_is_x; + wire av_ld_data_aligned_unfiltered_17_is_x; + wire av_ld_data_aligned_unfiltered_18_is_x; + wire av_ld_data_aligned_unfiltered_19_is_x; + wire av_ld_data_aligned_unfiltered_1_is_x; + wire av_ld_data_aligned_unfiltered_20_is_x; + wire av_ld_data_aligned_unfiltered_21_is_x; + wire av_ld_data_aligned_unfiltered_22_is_x; + wire av_ld_data_aligned_unfiltered_23_is_x; + wire av_ld_data_aligned_unfiltered_24_is_x; + wire av_ld_data_aligned_unfiltered_25_is_x; + wire av_ld_data_aligned_unfiltered_26_is_x; + wire av_ld_data_aligned_unfiltered_27_is_x; + wire av_ld_data_aligned_unfiltered_28_is_x; + wire av_ld_data_aligned_unfiltered_29_is_x; + wire av_ld_data_aligned_unfiltered_2_is_x; + wire av_ld_data_aligned_unfiltered_30_is_x; + wire av_ld_data_aligned_unfiltered_31_is_x; + wire av_ld_data_aligned_unfiltered_3_is_x; + wire av_ld_data_aligned_unfiltered_4_is_x; + wire av_ld_data_aligned_unfiltered_5_is_x; + wire av_ld_data_aligned_unfiltered_6_is_x; + wire av_ld_data_aligned_unfiltered_7_is_x; + wire av_ld_data_aligned_unfiltered_8_is_x; + wire av_ld_data_aligned_unfiltered_9_is_x; + reg d_write; + wire test_has_ended; + assign D_op_call = D_iw_op == 0; + assign D_op_jmpi = D_iw_op == 1; + assign D_op_ldbu = D_iw_op == 3; + assign D_op_addi = D_iw_op == 4; + assign D_op_stb = D_iw_op == 5; + assign D_op_br = D_iw_op == 6; + assign D_op_ldb = D_iw_op == 7; + assign D_op_cmpgei = D_iw_op == 8; + assign D_op_ldhu = D_iw_op == 11; + assign D_op_andi = D_iw_op == 12; + assign D_op_sth = D_iw_op == 13; + assign D_op_bge = D_iw_op == 14; + assign D_op_ldh = D_iw_op == 15; + assign D_op_cmplti = D_iw_op == 16; + assign D_op_initda = D_iw_op == 19; + assign D_op_ori = D_iw_op == 20; + assign D_op_stw = D_iw_op == 21; + assign D_op_blt = D_iw_op == 22; + assign D_op_ldw = D_iw_op == 23; + assign D_op_cmpnei = D_iw_op == 24; + assign D_op_flushda = D_iw_op == 27; + assign D_op_xori = D_iw_op == 28; + assign D_op_stc = D_iw_op == 29; + assign D_op_bne = D_iw_op == 30; + assign D_op_ldl = D_iw_op == 31; + assign D_op_cmpeqi = D_iw_op == 32; + assign D_op_ldbuio = D_iw_op == 35; + assign D_op_muli = D_iw_op == 36; + assign D_op_stbio = D_iw_op == 37; + assign D_op_beq = D_iw_op == 38; + assign D_op_ldbio = D_iw_op == 39; + assign D_op_cmpgeui = D_iw_op == 40; + assign D_op_ldhuio = D_iw_op == 43; + assign D_op_andhi = D_iw_op == 44; + assign D_op_sthio = D_iw_op == 45; + assign D_op_bgeu = D_iw_op == 46; + assign D_op_ldhio = D_iw_op == 47; + assign D_op_cmpltui = D_iw_op == 48; + assign D_op_initd = D_iw_op == 51; + assign D_op_orhi = D_iw_op == 52; + assign D_op_stwio = D_iw_op == 53; + assign D_op_bltu = D_iw_op == 54; + assign D_op_ldwio = D_iw_op == 55; + assign D_op_rdprs = D_iw_op == 56; + assign D_op_flushd = D_iw_op == 59; + assign D_op_xorhi = D_iw_op == 60; + assign D_op_rsv02 = D_iw_op == 2; + assign D_op_rsv09 = D_iw_op == 9; + assign D_op_rsv10 = D_iw_op == 10; + assign D_op_rsv17 = D_iw_op == 17; + assign D_op_rsv18 = D_iw_op == 18; + assign D_op_rsv25 = D_iw_op == 25; + assign D_op_rsv26 = D_iw_op == 26; + assign D_op_rsv33 = D_iw_op == 33; + assign D_op_rsv34 = D_iw_op == 34; + assign D_op_rsv41 = D_iw_op == 41; + assign D_op_rsv42 = D_iw_op == 42; + assign D_op_rsv49 = D_iw_op == 49; + assign D_op_rsv57 = D_iw_op == 57; + assign D_op_rsv61 = D_iw_op == 61; + assign D_op_rsv62 = D_iw_op == 62; + assign D_op_rsv63 = D_iw_op == 63; + assign D_op_eret = D_op_opx & (D_iw_opx == 1); + assign D_op_roli = D_op_opx & (D_iw_opx == 2); + assign D_op_rol = D_op_opx & (D_iw_opx == 3); + assign D_op_flushp = D_op_opx & (D_iw_opx == 4); + assign D_op_ret = D_op_opx & (D_iw_opx == 5); + assign D_op_nor = D_op_opx & (D_iw_opx == 6); + assign D_op_mulxuu = D_op_opx & (D_iw_opx == 7); + assign D_op_cmpge = D_op_opx & (D_iw_opx == 8); + assign D_op_bret = D_op_opx & (D_iw_opx == 9); + assign D_op_ror = D_op_opx & (D_iw_opx == 11); + assign D_op_flushi = D_op_opx & (D_iw_opx == 12); + assign D_op_jmp = D_op_opx & (D_iw_opx == 13); + assign D_op_and = D_op_opx & (D_iw_opx == 14); + assign D_op_cmplt = D_op_opx & (D_iw_opx == 16); + assign D_op_slli = D_op_opx & (D_iw_opx == 18); + assign D_op_sll = D_op_opx & (D_iw_opx == 19); + assign D_op_wrprs = D_op_opx & (D_iw_opx == 20); + assign D_op_or = D_op_opx & (D_iw_opx == 22); + assign D_op_mulxsu = D_op_opx & (D_iw_opx == 23); + assign D_op_cmpne = D_op_opx & (D_iw_opx == 24); + assign D_op_srli = D_op_opx & (D_iw_opx == 26); + assign D_op_srl = D_op_opx & (D_iw_opx == 27); + assign D_op_nextpc = D_op_opx & (D_iw_opx == 28); + assign D_op_callr = D_op_opx & (D_iw_opx == 29); + assign D_op_xor = D_op_opx & (D_iw_opx == 30); + assign D_op_mulxss = D_op_opx & (D_iw_opx == 31); + assign D_op_cmpeq = D_op_opx & (D_iw_opx == 32); + assign D_op_divu = D_op_opx & (D_iw_opx == 36); + assign D_op_div = D_op_opx & (D_iw_opx == 37); + assign D_op_rdctl = D_op_opx & (D_iw_opx == 38); + assign D_op_mul = D_op_opx & (D_iw_opx == 39); + assign D_op_cmpgeu = D_op_opx & (D_iw_opx == 40); + assign D_op_initi = D_op_opx & (D_iw_opx == 41); + assign D_op_trap = D_op_opx & (D_iw_opx == 45); + assign D_op_wrctl = D_op_opx & (D_iw_opx == 46); + assign D_op_cmpltu = D_op_opx & (D_iw_opx == 48); + assign D_op_add = D_op_opx & (D_iw_opx == 49); + assign D_op_break = D_op_opx & (D_iw_opx == 52); + assign D_op_hbreak = D_op_opx & (D_iw_opx == 53); + assign D_op_sync = D_op_opx & (D_iw_opx == 54); + assign D_op_sub = D_op_opx & (D_iw_opx == 57); + assign D_op_srai = D_op_opx & (D_iw_opx == 58); + assign D_op_sra = D_op_opx & (D_iw_opx == 59); + assign D_op_intr = D_op_opx & (D_iw_opx == 61); + assign D_op_crst = D_op_opx & (D_iw_opx == 62); + assign D_op_rsvx00 = D_op_opx & (D_iw_opx == 0); + assign D_op_rsvx10 = D_op_opx & (D_iw_opx == 10); + assign D_op_rsvx15 = D_op_opx & (D_iw_opx == 15); + assign D_op_rsvx17 = D_op_opx & (D_iw_opx == 17); + assign D_op_rsvx21 = D_op_opx & (D_iw_opx == 21); + assign D_op_rsvx25 = D_op_opx & (D_iw_opx == 25); + assign D_op_rsvx33 = D_op_opx & (D_iw_opx == 33); + assign D_op_rsvx34 = D_op_opx & (D_iw_opx == 34); + assign D_op_rsvx35 = D_op_opx & (D_iw_opx == 35); + assign D_op_rsvx42 = D_op_opx & (D_iw_opx == 42); + assign D_op_rsvx43 = D_op_opx & (D_iw_opx == 43); + assign D_op_rsvx44 = D_op_opx & (D_iw_opx == 44); + assign D_op_rsvx47 = D_op_opx & (D_iw_opx == 47); + assign D_op_rsvx50 = D_op_opx & (D_iw_opx == 50); + assign D_op_rsvx51 = D_op_opx & (D_iw_opx == 51); + assign D_op_rsvx55 = D_op_opx & (D_iw_opx == 55); + assign D_op_rsvx56 = D_op_opx & (D_iw_opx == 56); + assign D_op_rsvx60 = D_op_opx & (D_iw_opx == 60); + assign D_op_rsvx63 = D_op_opx & (D_iw_opx == 63); + assign D_op_opx = D_iw_op == 58; + assign D_op_custom = D_iw_op == 50; + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + d_write <= 0; + else + d_write <= d_write_nxt; + end + + + assign test_has_ended = 1'b0; + +//synthesis translate_off +//////////////// SIMULATION-ONLY CONTENTS + //Clearing 'X' data bits + assign av_ld_data_aligned_unfiltered_0_is_x = ^(av_ld_data_aligned_unfiltered[0]) === 1'bx; + + assign av_ld_data_aligned_filtered[0] = (av_ld_data_aligned_unfiltered_0_is_x & (R_ctrl_ld_non_io)) ? 1'b0 : av_ld_data_aligned_unfiltered[0]; + assign av_ld_data_aligned_unfiltered_1_is_x = ^(av_ld_data_aligned_unfiltered[1]) === 1'bx; + assign av_ld_data_aligned_filtered[1] = (av_ld_data_aligned_unfiltered_1_is_x & (R_ctrl_ld_non_io)) ? 1'b0 : av_ld_data_aligned_unfiltered[1]; + assign av_ld_data_aligned_unfiltered_2_is_x = ^(av_ld_data_aligned_unfiltered[2]) === 1'bx; + assign av_ld_data_aligned_filtered[2] = (av_ld_data_aligned_unfiltered_2_is_x & (R_ctrl_ld_non_io)) ? 1'b0 : av_ld_data_aligned_unfiltered[2]; + assign av_ld_data_aligned_unfiltered_3_is_x = ^(av_ld_data_aligned_unfiltered[3]) === 1'bx; + assign av_ld_data_aligned_filtered[3] = (av_ld_data_aligned_unfiltered_3_is_x & (R_ctrl_ld_non_io)) ? 1'b0 : av_ld_data_aligned_unfiltered[3]; + assign av_ld_data_aligned_unfiltered_4_is_x = ^(av_ld_data_aligned_unfiltered[4]) === 1'bx; + assign av_ld_data_aligned_filtered[4] = (av_ld_data_aligned_unfiltered_4_is_x & (R_ctrl_ld_non_io)) ? 1'b0 : av_ld_data_aligned_unfiltered[4]; + assign av_ld_data_aligned_unfiltered_5_is_x = ^(av_ld_data_aligned_unfiltered[5]) === 1'bx; + assign av_ld_data_aligned_filtered[5] = (av_ld_data_aligned_unfiltered_5_is_x & (R_ctrl_ld_non_io)) ? 1'b0 : av_ld_data_aligned_unfiltered[5]; + assign av_ld_data_aligned_unfiltered_6_is_x = ^(av_ld_data_aligned_unfiltered[6]) === 1'bx; + assign av_ld_data_aligned_filtered[6] = (av_ld_data_aligned_unfiltered_6_is_x & (R_ctrl_ld_non_io)) ? 1'b0 : av_ld_data_aligned_unfiltered[6]; + assign av_ld_data_aligned_unfiltered_7_is_x = ^(av_ld_data_aligned_unfiltered[7]) === 1'bx; + assign av_ld_data_aligned_filtered[7] = (av_ld_data_aligned_unfiltered_7_is_x & (R_ctrl_ld_non_io)) ? 1'b0 : av_ld_data_aligned_unfiltered[7]; + assign av_ld_data_aligned_unfiltered_8_is_x = ^(av_ld_data_aligned_unfiltered[8]) === 1'bx; + assign av_ld_data_aligned_filtered[8] = (av_ld_data_aligned_unfiltered_8_is_x & (R_ctrl_ld_non_io)) ? 1'b0 : av_ld_data_aligned_unfiltered[8]; + assign av_ld_data_aligned_unfiltered_9_is_x = ^(av_ld_data_aligned_unfiltered[9]) === 1'bx; + assign av_ld_data_aligned_filtered[9] = (av_ld_data_aligned_unfiltered_9_is_x & (R_ctrl_ld_non_io)) ? 1'b0 : av_ld_data_aligned_unfiltered[9]; + assign av_ld_data_aligned_unfiltered_10_is_x = ^(av_ld_data_aligned_unfiltered[10]) === 1'bx; + assign av_ld_data_aligned_filtered[10] = (av_ld_data_aligned_unfiltered_10_is_x & (R_ctrl_ld_non_io)) ? 1'b0 : av_ld_data_aligned_unfiltered[10]; + assign av_ld_data_aligned_unfiltered_11_is_x = ^(av_ld_data_aligned_unfiltered[11]) === 1'bx; + assign av_ld_data_aligned_filtered[11] = (av_ld_data_aligned_unfiltered_11_is_x & (R_ctrl_ld_non_io)) ? 1'b0 : av_ld_data_aligned_unfiltered[11]; + assign av_ld_data_aligned_unfiltered_12_is_x = ^(av_ld_data_aligned_unfiltered[12]) === 1'bx; + assign av_ld_data_aligned_filtered[12] = (av_ld_data_aligned_unfiltered_12_is_x & (R_ctrl_ld_non_io)) ? 1'b0 : av_ld_data_aligned_unfiltered[12]; + assign av_ld_data_aligned_unfiltered_13_is_x = ^(av_ld_data_aligned_unfiltered[13]) === 1'bx; + assign av_ld_data_aligned_filtered[13] = (av_ld_data_aligned_unfiltered_13_is_x & (R_ctrl_ld_non_io)) ? 1'b0 : av_ld_data_aligned_unfiltered[13]; + assign av_ld_data_aligned_unfiltered_14_is_x = ^(av_ld_data_aligned_unfiltered[14]) === 1'bx; + assign av_ld_data_aligned_filtered[14] = (av_ld_data_aligned_unfiltered_14_is_x & (R_ctrl_ld_non_io)) ? 1'b0 : av_ld_data_aligned_unfiltered[14]; + assign av_ld_data_aligned_unfiltered_15_is_x = ^(av_ld_data_aligned_unfiltered[15]) === 1'bx; + assign av_ld_data_aligned_filtered[15] = (av_ld_data_aligned_unfiltered_15_is_x & (R_ctrl_ld_non_io)) ? 1'b0 : av_ld_data_aligned_unfiltered[15]; + assign av_ld_data_aligned_unfiltered_16_is_x = ^(av_ld_data_aligned_unfiltered[16]) === 1'bx; + assign av_ld_data_aligned_filtered[16] = (av_ld_data_aligned_unfiltered_16_is_x & (R_ctrl_ld_non_io)) ? 1'b0 : av_ld_data_aligned_unfiltered[16]; + assign av_ld_data_aligned_unfiltered_17_is_x = ^(av_ld_data_aligned_unfiltered[17]) === 1'bx; + assign av_ld_data_aligned_filtered[17] = (av_ld_data_aligned_unfiltered_17_is_x & (R_ctrl_ld_non_io)) ? 1'b0 : av_ld_data_aligned_unfiltered[17]; + assign av_ld_data_aligned_unfiltered_18_is_x = ^(av_ld_data_aligned_unfiltered[18]) === 1'bx; + assign av_ld_data_aligned_filtered[18] = (av_ld_data_aligned_unfiltered_18_is_x & (R_ctrl_ld_non_io)) ? 1'b0 : av_ld_data_aligned_unfiltered[18]; + assign av_ld_data_aligned_unfiltered_19_is_x = ^(av_ld_data_aligned_unfiltered[19]) === 1'bx; + assign av_ld_data_aligned_filtered[19] = (av_ld_data_aligned_unfiltered_19_is_x & (R_ctrl_ld_non_io)) ? 1'b0 : av_ld_data_aligned_unfiltered[19]; + assign av_ld_data_aligned_unfiltered_20_is_x = ^(av_ld_data_aligned_unfiltered[20]) === 1'bx; + assign av_ld_data_aligned_filtered[20] = (av_ld_data_aligned_unfiltered_20_is_x & (R_ctrl_ld_non_io)) ? 1'b0 : av_ld_data_aligned_unfiltered[20]; + assign av_ld_data_aligned_unfiltered_21_is_x = ^(av_ld_data_aligned_unfiltered[21]) === 1'bx; + assign av_ld_data_aligned_filtered[21] = (av_ld_data_aligned_unfiltered_21_is_x & (R_ctrl_ld_non_io)) ? 1'b0 : av_ld_data_aligned_unfiltered[21]; + assign av_ld_data_aligned_unfiltered_22_is_x = ^(av_ld_data_aligned_unfiltered[22]) === 1'bx; + assign av_ld_data_aligned_filtered[22] = (av_ld_data_aligned_unfiltered_22_is_x & (R_ctrl_ld_non_io)) ? 1'b0 : av_ld_data_aligned_unfiltered[22]; + assign av_ld_data_aligned_unfiltered_23_is_x = ^(av_ld_data_aligned_unfiltered[23]) === 1'bx; + assign av_ld_data_aligned_filtered[23] = (av_ld_data_aligned_unfiltered_23_is_x & (R_ctrl_ld_non_io)) ? 1'b0 : av_ld_data_aligned_unfiltered[23]; + assign av_ld_data_aligned_unfiltered_24_is_x = ^(av_ld_data_aligned_unfiltered[24]) === 1'bx; + assign av_ld_data_aligned_filtered[24] = (av_ld_data_aligned_unfiltered_24_is_x & (R_ctrl_ld_non_io)) ? 1'b0 : av_ld_data_aligned_unfiltered[24]; + assign av_ld_data_aligned_unfiltered_25_is_x = ^(av_ld_data_aligned_unfiltered[25]) === 1'bx; + assign av_ld_data_aligned_filtered[25] = (av_ld_data_aligned_unfiltered_25_is_x & (R_ctrl_ld_non_io)) ? 1'b0 : av_ld_data_aligned_unfiltered[25]; + assign av_ld_data_aligned_unfiltered_26_is_x = ^(av_ld_data_aligned_unfiltered[26]) === 1'bx; + assign av_ld_data_aligned_filtered[26] = (av_ld_data_aligned_unfiltered_26_is_x & (R_ctrl_ld_non_io)) ? 1'b0 : av_ld_data_aligned_unfiltered[26]; + assign av_ld_data_aligned_unfiltered_27_is_x = ^(av_ld_data_aligned_unfiltered[27]) === 1'bx; + assign av_ld_data_aligned_filtered[27] = (av_ld_data_aligned_unfiltered_27_is_x & (R_ctrl_ld_non_io)) ? 1'b0 : av_ld_data_aligned_unfiltered[27]; + assign av_ld_data_aligned_unfiltered_28_is_x = ^(av_ld_data_aligned_unfiltered[28]) === 1'bx; + assign av_ld_data_aligned_filtered[28] = (av_ld_data_aligned_unfiltered_28_is_x & (R_ctrl_ld_non_io)) ? 1'b0 : av_ld_data_aligned_unfiltered[28]; + assign av_ld_data_aligned_unfiltered_29_is_x = ^(av_ld_data_aligned_unfiltered[29]) === 1'bx; + assign av_ld_data_aligned_filtered[29] = (av_ld_data_aligned_unfiltered_29_is_x & (R_ctrl_ld_non_io)) ? 1'b0 : av_ld_data_aligned_unfiltered[29]; + assign av_ld_data_aligned_unfiltered_30_is_x = ^(av_ld_data_aligned_unfiltered[30]) === 1'bx; + assign av_ld_data_aligned_filtered[30] = (av_ld_data_aligned_unfiltered_30_is_x & (R_ctrl_ld_non_io)) ? 1'b0 : av_ld_data_aligned_unfiltered[30]; + assign av_ld_data_aligned_unfiltered_31_is_x = ^(av_ld_data_aligned_unfiltered[31]) === 1'bx; + assign av_ld_data_aligned_filtered[31] = (av_ld_data_aligned_unfiltered_31_is_x & (R_ctrl_ld_non_io)) ? 1'b0 : av_ld_data_aligned_unfiltered[31]; + always @(posedge clk) + begin + if (reset_n) + if (^(F_valid) === 1'bx) + begin + $write("%0d ns: ERROR: nios_system_nios2_processor_test_bench/F_valid is 'x'\n", $time); + $stop; + end + end + + + always @(posedge clk) + begin + if (reset_n) + if (^(D_valid) === 1'bx) + begin + $write("%0d ns: ERROR: nios_system_nios2_processor_test_bench/D_valid is 'x'\n", $time); + $stop; + end + end + + + always @(posedge clk) + begin + if (reset_n) + if (^(E_valid) === 1'bx) + begin + $write("%0d ns: ERROR: nios_system_nios2_processor_test_bench/E_valid is 'x'\n", $time); + $stop; + end + end + + + always @(posedge clk) + begin + if (reset_n) + if (^(W_valid) === 1'bx) + begin + $write("%0d ns: ERROR: nios_system_nios2_processor_test_bench/W_valid is 'x'\n", $time); + $stop; + end + end + + + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + begin + end + else if (W_valid) + if (^(R_wr_dst_reg) === 1'bx) + begin + $write("%0d ns: ERROR: nios_system_nios2_processor_test_bench/R_wr_dst_reg is 'x'\n", $time); + $stop; + end + end + + + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + begin + end + else if (W_valid & R_wr_dst_reg) + if (^(W_wr_data) === 1'bx) + begin + $write("%0d ns: ERROR: nios_system_nios2_processor_test_bench/W_wr_data is 'x'\n", $time); + $stop; + end + end + + + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + begin + end + else if (W_valid & R_wr_dst_reg) + if (^(R_dst_regnum) === 1'bx) + begin + $write("%0d ns: ERROR: nios_system_nios2_processor_test_bench/R_dst_regnum is 'x'\n", $time); + $stop; + end + end + + + always @(posedge clk) + begin + if (reset_n) + if (^(d_write) === 1'bx) + begin + $write("%0d ns: ERROR: nios_system_nios2_processor_test_bench/d_write is 'x'\n", $time); + $stop; + end + end + + + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + begin + end + else if (d_write) + if (^(d_byteenable) === 1'bx) + begin + $write("%0d ns: ERROR: nios_system_nios2_processor_test_bench/d_byteenable is 'x'\n", $time); + $stop; + end + end + + + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + begin + end + else if (d_write | d_read) + if (^(d_address) === 1'bx) + begin + $write("%0d ns: ERROR: nios_system_nios2_processor_test_bench/d_address is 'x'\n", $time); + $stop; + end + end + + + always @(posedge clk) + begin + if (reset_n) + if (^(d_read) === 1'bx) + begin + $write("%0d ns: ERROR: nios_system_nios2_processor_test_bench/d_read is 'x'\n", $time); + $stop; + end + end + + + always @(posedge clk) + begin + if (reset_n) + if (^(i_read) === 1'bx) + begin + $write("%0d ns: ERROR: nios_system_nios2_processor_test_bench/i_read is 'x'\n", $time); + $stop; + end + end + + + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + begin + end + else if (i_read) + if (^(i_address) === 1'bx) + begin + $write("%0d ns: ERROR: nios_system_nios2_processor_test_bench/i_address is 'x'\n", $time); + $stop; + end + end + + + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + begin + end + else if (i_read & ~i_waitrequest) + if (^(i_readdata) === 1'bx) + begin + $write("%0d ns: ERROR: nios_system_nios2_processor_test_bench/i_readdata is 'x'\n", $time); + $stop; + end + end + + + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + begin + end + else if (W_valid & R_ctrl_ld) + if (^(av_ld_data_aligned_unfiltered) === 1'bx) + begin + $write("%0d ns: WARNING: nios_system_nios2_processor_test_bench/av_ld_data_aligned_unfiltered is 'x'\n", $time); + end + end + + + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + begin + end + else if (W_valid & R_wr_dst_reg) + if (^(W_wr_data) === 1'bx) + begin + $write("%0d ns: WARNING: nios_system_nios2_processor_test_bench/W_wr_data is 'x'\n", $time); + end + end + + + +//////////////// END SIMULATION-ONLY CONTENTS + +//synthesis translate_on +//synthesis read_comments_as_HDL on +// +// assign av_ld_data_aligned_filtered = av_ld_data_aligned_unfiltered; +// +//synthesis read_comments_as_HDL off + +endmodule + diff --git a/db/ip/nios_system/submodules/nios_system_onchip_memory.hex b/db/ip/nios_system/submodules/nios_system_onchip_memory.hex new file mode 100644 index 0000000..f996dcd --- /dev/null +++ b/db/ip/nios_system/submodules/nios_system_onchip_memory.hex @@ -0,0 +1,51201 @@ +:0400000000000000FC +:0400010000000000FB +:0400020000000000FA +:0400030000000000F9 +:0400040000000000F8 +:0400050000000000F7 +:0400060000000000F6 +:0400070000000000F5 +:0400080000000000F4 +:0400090000000000F3 +:04000A0000000000F2 +:04000B0000000000F1 +:04000C0000000000F0 +:04000D0000000000EF +:04000E0000000000EE +:04000F0000000000ED +:0400100000000000EC +:0400110000000000EB +:0400120000000000EA +:0400130000000000E9 +:0400140000000000E8 +:0400150000000000E7 +:0400160000000000E6 +:0400170000000000E5 +:0400180000000000E4 +:0400190000000000E3 +:04001A0000000000E2 +:04001B0000000000E1 +:04001C0000000000E0 +:04001D0000000000DF +:04001E0000000000DE +:04001F0000000000DD +:0400200000000000DC +:0400210000000000DB +:0400220000000000DA +:0400230000000000D9 +:0400240000000000D8 +:0400250000000000D7 +:0400260000000000D6 +:0400270000000000D5 +:0400280000000000D4 +:0400290000000000D3 +:04002A0000000000D2 +:04002B0000000000D1 +:04002C0000000000D0 +:04002D0000000000CF +:04002E0000000000CE +:04002F0000000000CD +:0400300000000000CC +:0400310000000000CB +:0400320000000000CA +:0400330000000000C9 +:0400340000000000C8 +:0400350000000000C7 +:0400360000000000C6 +:0400370000000000C5 +:0400380000000000C4 +:0400390000000000C3 +:04003A0000000000C2 +:04003B0000000000C1 +:04003C0000000000C0 +:04003D0000000000BF +:04003E0000000000BE +:04003F0000000000BD +:0400400000000000BC +:0400410000000000BB +:0400420000000000BA +:0400430000000000B9 +:0400440000000000B8 +:0400450000000000B7 +:0400460000000000B6 +:0400470000000000B5 +:0400480000000000B4 +:0400490000000000B3 +:04004A0000000000B2 +:04004B0000000000B1 +:04004C0000000000B0 +:04004D0000000000AF +:04004E0000000000AE +:04004F0000000000AD +:0400500000000000AC +:0400510000000000AB +:0400520000000000AA +:0400530000000000A9 +:0400540000000000A8 +:0400550000000000A7 +:0400560000000000A6 +:0400570000000000A5 +:0400580000000000A4 +:0400590000000000A3 +:04005A0000000000A2 +:04005B0000000000A1 +:04005C0000000000A0 +:04005D00000000009F +:04005E00000000009E +:04005F00000000009D +:04006000000000009C +:04006100000000009B +:04006200000000009A +:040063000000000099 +:040064000000000098 +:040065000000000097 +:040066000000000096 +:040067000000000095 +:040068000000000094 +:040069000000000093 +:04006A000000000092 +:04006B000000000091 +:04006C000000000090 +:04006D00000000008F +:04006E00000000008E +:04006F00000000008D +:04007000000000008C +:04007100000000008B +:04007200000000008A +:040073000000000089 +:040074000000000088 +:040075000000000087 +:040076000000000086 +:040077000000000085 +:040078000000000084 +:040079000000000083 +:04007A000000000082 +:04007B000000000081 +:04007C000000000080 +:04007D00000000007F +:04007E00000000007E +:04007F00000000007D +:04008000000000007C +:04008100000000007B +:04008200000000007A +:040083000000000079 +:040084000000000078 +:040085000000000077 +:040086000000000076 +:040087000000000075 +:040088000000000074 +:040089000000000073 +:04008A000000000072 +:04008B000000000071 +:04008C000000000070 +:04008D00000000006F +:04008E00000000006E +:04008F00000000006D +:04009000000000006C +:04009100000000006B +:04009200000000006A +:040093000000000069 +:040094000000000068 +:040095000000000067 +:040096000000000066 +:040097000000000065 +:040098000000000064 +:040099000000000063 +:04009A000000000062 +:04009B000000000061 +:04009C000000000060 +:04009D00000000005F +:04009E00000000005E +:04009F00000000005D +:0400A000000000005C +:0400A100000000005B +:0400A200000000005A +:0400A3000000000059 +:0400A4000000000058 +:0400A5000000000057 +:0400A6000000000056 +:0400A7000000000055 +:0400A8000000000054 +:0400A9000000000053 +:0400AA000000000052 +:0400AB000000000051 +:0400AC000000000050 +:0400AD00000000004F +:0400AE00000000004E +:0400AF00000000004D +:0400B000000000004C +:0400B100000000004B +:0400B200000000004A +:0400B3000000000049 +:0400B4000000000048 +:0400B5000000000047 +:0400B6000000000046 +:0400B7000000000045 +:0400B8000000000044 +:0400B9000000000043 +:0400BA000000000042 +:0400BB000000000041 +:0400BC000000000040 +:0400BD00000000003F +:0400BE00000000003E +:0400BF00000000003D +:0400C000000000003C +:0400C100000000003B +:0400C200000000003A +:0400C3000000000039 +:0400C4000000000038 +:0400C5000000000037 +:0400C6000000000036 +:0400C7000000000035 +:0400C8000000000034 +:0400C9000000000033 +:0400CA000000000032 +:0400CB000000000031 +:0400CC000000000030 +:0400CD00000000002F +:0400CE00000000002E +:0400CF00000000002D +:0400D000000000002C +:0400D100000000002B +:0400D200000000002A +:0400D3000000000029 +:0400D4000000000028 +:0400D5000000000027 +:0400D6000000000026 +:0400D7000000000025 +:0400D8000000000024 +:0400D9000000000023 +:0400DA000000000022 +:0400DB000000000021 +:0400DC000000000020 +:0400DD00000000001F +:0400DE00000000001E +:0400DF00000000001D +:0400E000000000001C +:0400E100000000001B +:0400E200000000001A +:0400E3000000000019 +:0400E4000000000018 +:0400E5000000000017 +:0400E6000000000016 +:0400E7000000000015 +:0400E8000000000014 +:0400E9000000000013 +:0400EA000000000012 +:0400EB000000000011 +:0400EC000000000010 +:0400ED00000000000F +:0400EE00000000000E +:0400EF00000000000D +:0400F000000000000C +:0400F100000000000B +:0400F200000000000A +:0400F3000000000009 +:0400F4000000000008 +:0400F5000000000007 +:0400F6000000000006 +:0400F7000000000005 +:0400F8000000000004 +:0400F9000000000003 +:0400FA000000000002 +:0400FB000000000001 +:0400FC000000000000 +:0400FD0000000000FF +:0400FE0000000000FE +:0400FF0000000000FD +:0401000000000000FB +:0401010000000000FA +:0401020000000000F9 +:0401030000000000F8 +:0401040000000000F7 +:0401050000000000F6 +:0401060000000000F5 +:0401070000000000F4 +:0401080000000000F3 +:0401090000000000F2 +:04010A0000000000F1 +:04010B0000000000F0 +:04010C0000000000EF +:04010D0000000000EE +:04010E0000000000ED +:04010F0000000000EC +:0401100000000000EB +:0401110000000000EA +:0401120000000000E9 +:0401130000000000E8 +:0401140000000000E7 +:0401150000000000E6 +:0401160000000000E5 +:0401170000000000E4 +:0401180000000000E3 +:0401190000000000E2 +:04011A0000000000E1 +:04011B0000000000E0 +:04011C0000000000DF +:04011D0000000000DE +:04011E0000000000DD +:04011F0000000000DC +:0401200000000000DB +:0401210000000000DA +:0401220000000000D9 +:0401230000000000D8 +:0401240000000000D7 +:0401250000000000D6 +:0401260000000000D5 +:0401270000000000D4 +:0401280000000000D3 +:0401290000000000D2 +:04012A0000000000D1 +:04012B0000000000D0 +:04012C0000000000CF +:04012D0000000000CE +:04012E0000000000CD +:04012F0000000000CC +:0401300000000000CB +:0401310000000000CA +:0401320000000000C9 +:0401330000000000C8 +:0401340000000000C7 +:0401350000000000C6 +:0401360000000000C5 +:0401370000000000C4 +:0401380000000000C3 +:0401390000000000C2 +:04013A0000000000C1 +:04013B0000000000C0 +:04013C0000000000BF +:04013D0000000000BE +:04013E0000000000BD +:04013F0000000000BC +:0401400000000000BB +:0401410000000000BA +:0401420000000000B9 +:0401430000000000B8 +:0401440000000000B7 +:0401450000000000B6 +:0401460000000000B5 +:0401470000000000B4 +:0401480000000000B3 +:0401490000000000B2 +:04014A0000000000B1 +:04014B0000000000B0 +:04014C0000000000AF +:04014D0000000000AE +:04014E0000000000AD +:04014F0000000000AC +:0401500000000000AB +:0401510000000000AA +:0401520000000000A9 +:0401530000000000A8 +:0401540000000000A7 +:0401550000000000A6 +:0401560000000000A5 +:0401570000000000A4 +:0401580000000000A3 +:0401590000000000A2 +:04015A0000000000A1 +:04015B0000000000A0 +:04015C00000000009F +:04015D00000000009E +:04015E00000000009D +:04015F00000000009C +:04016000000000009B +:04016100000000009A +:040162000000000099 +:040163000000000098 +:040164000000000097 +:040165000000000096 +:040166000000000095 +:040167000000000094 +:040168000000000093 +:040169000000000092 +:04016A000000000091 +:04016B000000000090 +:04016C00000000008F +:04016D00000000008E +:04016E00000000008D +:04016F00000000008C +:04017000000000008B +:04017100000000008A +:040172000000000089 +:040173000000000088 +:040174000000000087 +:040175000000000086 +:040176000000000085 +:040177000000000084 +:040178000000000083 +:040179000000000082 +:04017A000000000081 +:04017B000000000080 +:04017C00000000007F +:04017D00000000007E +:04017E00000000007D +:04017F00000000007C +:04018000000000007B +:04018100000000007A +:040182000000000079 +:040183000000000078 +:040184000000000077 +:040185000000000076 +:040186000000000075 +:040187000000000074 +:040188000000000073 +:040189000000000072 +:04018A000000000071 +:04018B000000000070 +:04018C00000000006F +:04018D00000000006E +:04018E00000000006D +:04018F00000000006C +:04019000000000006B +:04019100000000006A +:040192000000000069 +:040193000000000068 +:040194000000000067 +:040195000000000066 +:040196000000000065 +:040197000000000064 +:040198000000000063 +:040199000000000062 +:04019A000000000061 +:04019B000000000060 +:04019C00000000005F +:04019D00000000005E +:04019E00000000005D +:04019F00000000005C +:0401A000000000005B +:0401A100000000005A +:0401A2000000000059 +:0401A3000000000058 +:0401A4000000000057 +:0401A5000000000056 +:0401A6000000000055 +:0401A7000000000054 +:0401A8000000000053 +:0401A9000000000052 +:0401AA000000000051 +:0401AB000000000050 +:0401AC00000000004F +:0401AD00000000004E +:0401AE00000000004D +:0401AF00000000004C +:0401B000000000004B +:0401B100000000004A +:0401B2000000000049 +:0401B3000000000048 +:0401B4000000000047 +:0401B5000000000046 +:0401B6000000000045 +:0401B7000000000044 +:0401B8000000000043 +:0401B9000000000042 +:0401BA000000000041 +:0401BB000000000040 +:0401BC00000000003F +:0401BD00000000003E +:0401BE00000000003D +:0401BF00000000003C +:0401C000000000003B +:0401C100000000003A +:0401C2000000000039 +:0401C3000000000038 +:0401C4000000000037 +:0401C5000000000036 +:0401C6000000000035 +:0401C7000000000034 +:0401C8000000000033 +:0401C9000000000032 +:0401CA000000000031 +:0401CB000000000030 +:0401CC00000000002F +:0401CD00000000002E +:0401CE00000000002D +:0401CF00000000002C +:0401D000000000002B +:0401D100000000002A +:0401D2000000000029 +:0401D3000000000028 +:0401D4000000000027 +:0401D5000000000026 +:0401D6000000000025 +:0401D7000000000024 +:0401D8000000000023 +:0401D9000000000022 +:0401DA000000000021 +:0401DB000000000020 +:0401DC00000000001F +:0401DD00000000001E +:0401DE00000000001D +:0401DF00000000001C +:0401E000000000001B +:0401E100000000001A +:0401E2000000000019 +:0401E3000000000018 +:0401E4000000000017 +:0401E5000000000016 +:0401E6000000000015 +:0401E7000000000014 +:0401E8000000000013 +:0401E9000000000012 +:0401EA000000000011 +:0401EB000000000010 +:0401EC00000000000F +:0401ED00000000000E +:0401EE00000000000D +:0401EF00000000000C +:0401F000000000000B +:0401F100000000000A +:0401F2000000000009 +:0401F3000000000008 +:0401F4000000000007 +:0401F5000000000006 +:0401F6000000000005 +:0401F7000000000004 +:0401F8000000000003 +:0401F9000000000002 +:0401FA000000000001 +:0401FB000000000000 +:0401FC0000000000FF +:0401FD0000000000FE +:0401FE0000000000FD +:0401FF0000000000FC +:0402000000000000FA +:0402010000000000F9 +:0402020000000000F8 +:0402030000000000F7 +:0402040000000000F6 +:0402050000000000F5 +:0402060000000000F4 +:0402070000000000F3 +:0402080000000000F2 +:0402090000000000F1 +:04020A0000000000F0 +:04020B0000000000EF +:04020C0000000000EE +:04020D0000000000ED +:04020E0000000000EC +:04020F0000000000EB +:0402100000000000EA +:0402110000000000E9 +:0402120000000000E8 +:0402130000000000E7 +:0402140000000000E6 +:0402150000000000E5 +:0402160000000000E4 +:0402170000000000E3 +:0402180000000000E2 +:0402190000000000E1 +:04021A0000000000E0 +:04021B0000000000DF +:04021C0000000000DE +:04021D0000000000DD +:04021E0000000000DC +:04021F0000000000DB +:0402200000000000DA +:0402210000000000D9 +:0402220000000000D8 +:0402230000000000D7 +:0402240000000000D6 +:0402250000000000D5 +:0402260000000000D4 +:0402270000000000D3 +:0402280000000000D2 +:0402290000000000D1 +:04022A0000000000D0 +:04022B0000000000CF +:04022C0000000000CE +:04022D0000000000CD +:04022E0000000000CC +:04022F0000000000CB +:0402300000000000CA +:0402310000000000C9 +:0402320000000000C8 +:0402330000000000C7 +:0402340000000000C6 +:0402350000000000C5 +:0402360000000000C4 +:0402370000000000C3 +:0402380000000000C2 +:0402390000000000C1 +:04023A0000000000C0 +:04023B0000000000BF +:04023C0000000000BE +:04023D0000000000BD +:04023E0000000000BC +:04023F0000000000BB +:0402400000000000BA +:0402410000000000B9 +:0402420000000000B8 +:0402430000000000B7 +:0402440000000000B6 +:0402450000000000B5 +:0402460000000000B4 +:0402470000000000B3 +:0402480000000000B2 +:0402490000000000B1 +:04024A0000000000B0 +:04024B0000000000AF +:04024C0000000000AE +:04024D0000000000AD +:04024E0000000000AC +:04024F0000000000AB +:0402500000000000AA +:0402510000000000A9 +:0402520000000000A8 +:0402530000000000A7 +:0402540000000000A6 +:0402550000000000A5 +:0402560000000000A4 +:0402570000000000A3 +:0402580000000000A2 +:0402590000000000A1 +:04025A0000000000A0 +:04025B00000000009F +:04025C00000000009E +:04025D00000000009D +:04025E00000000009C +:04025F00000000009B +:04026000000000009A +:040261000000000099 +:040262000000000098 +:040263000000000097 +:040264000000000096 +:040265000000000095 +:040266000000000094 +:040267000000000093 +:040268000000000092 +:040269000000000091 +:04026A000000000090 +:04026B00000000008F +:04026C00000000008E +:04026D00000000008D +:04026E00000000008C +:04026F00000000008B +:04027000000000008A +:040271000000000089 +:040272000000000088 +:040273000000000087 +:040274000000000086 +:040275000000000085 +:040276000000000084 +:040277000000000083 +:040278000000000082 +:040279000000000081 +:04027A000000000080 +:04027B00000000007F +:04027C00000000007E +:04027D00000000007D +:04027E00000000007C +:04027F00000000007B +:04028000000000007A +:040281000000000079 +:040282000000000078 +:040283000000000077 +:040284000000000076 +:040285000000000075 +:040286000000000074 +:040287000000000073 +:040288000000000072 +:040289000000000071 +:04028A000000000070 +:04028B00000000006F +:04028C00000000006E +:04028D00000000006D +:04028E00000000006C +:04028F00000000006B +:04029000000000006A +:040291000000000069 +:040292000000000068 +:040293000000000067 +:040294000000000066 +:040295000000000065 +:040296000000000064 +:040297000000000063 +:040298000000000062 +:040299000000000061 +:04029A000000000060 +:04029B00000000005F +:04029C00000000005E +:04029D00000000005D +:04029E00000000005C +:04029F00000000005B +:0402A000000000005A +:0402A1000000000059 +:0402A2000000000058 +:0402A3000000000057 +:0402A4000000000056 +:0402A5000000000055 +:0402A6000000000054 +:0402A7000000000053 +:0402A8000000000052 +:0402A9000000000051 +:0402AA000000000050 +:0402AB00000000004F +:0402AC00000000004E +:0402AD00000000004D +:0402AE00000000004C +:0402AF00000000004B +:0402B000000000004A +:0402B1000000000049 +:0402B2000000000048 +:0402B3000000000047 +:0402B4000000000046 +:0402B5000000000045 +:0402B6000000000044 +:0402B7000000000043 +:0402B8000000000042 +:0402B9000000000041 +:0402BA000000000040 +:0402BB00000000003F +:0402BC00000000003E +:0402BD00000000003D +:0402BE00000000003C +:0402BF00000000003B +:0402C000000000003A +:0402C1000000000039 +:0402C2000000000038 +:0402C3000000000037 +:0402C4000000000036 +:0402C5000000000035 +:0402C6000000000034 +:0402C7000000000033 +:0402C8000000000032 +:0402C9000000000031 +:0402CA000000000030 +:0402CB00000000002F +:0402CC00000000002E +:0402CD00000000002D +:0402CE00000000002C +:0402CF00000000002B +:0402D000000000002A +:0402D1000000000029 +:0402D2000000000028 +:0402D3000000000027 +:0402D4000000000026 +:0402D5000000000025 +:0402D6000000000024 +:0402D7000000000023 +:0402D8000000000022 +:0402D9000000000021 +:0402DA000000000020 +:0402DB00000000001F +:0402DC00000000001E +:0402DD00000000001D +:0402DE00000000001C +:0402DF00000000001B +:0402E000000000001A +:0402E1000000000019 +:0402E2000000000018 +:0402E3000000000017 +:0402E4000000000016 +:0402E5000000000015 +:0402E6000000000014 +:0402E7000000000013 +:0402E8000000000012 +:0402E9000000000011 +:0402EA000000000010 +:0402EB00000000000F +:0402EC00000000000E +:0402ED00000000000D +:0402EE00000000000C +:0402EF00000000000B +:0402F000000000000A +:0402F1000000000009 +:0402F2000000000008 +:0402F3000000000007 +:0402F4000000000006 +:0402F5000000000005 +:0402F6000000000004 +:0402F7000000000003 +:0402F8000000000002 +:0402F9000000000001 +:0402FA000000000000 +:0402FB0000000000FF +:0402FC0000000000FE +:0402FD0000000000FD +:0402FE0000000000FC +:0402FF0000000000FB +:0403000000000000F9 +:0403010000000000F8 +:0403020000000000F7 +:0403030000000000F6 +:0403040000000000F5 +:0403050000000000F4 +:0403060000000000F3 +:0403070000000000F2 +:0403080000000000F1 +:0403090000000000F0 +:04030A0000000000EF +:04030B0000000000EE +:04030C0000000000ED +:04030D0000000000EC +:04030E0000000000EB +:04030F0000000000EA +:0403100000000000E9 +:0403110000000000E8 +:0403120000000000E7 +:0403130000000000E6 +:0403140000000000E5 +:0403150000000000E4 +:0403160000000000E3 +:0403170000000000E2 +:0403180000000000E1 +:0403190000000000E0 +:04031A0000000000DF +:04031B0000000000DE +:04031C0000000000DD +:04031D0000000000DC +:04031E0000000000DB +:04031F0000000000DA +:0403200000000000D9 +:0403210000000000D8 +:0403220000000000D7 +:0403230000000000D6 +:0403240000000000D5 +:0403250000000000D4 +:0403260000000000D3 +:0403270000000000D2 +:0403280000000000D1 +:0403290000000000D0 +:04032A0000000000CF +:04032B0000000000CE +:04032C0000000000CD +:04032D0000000000CC +:04032E0000000000CB +:04032F0000000000CA +:0403300000000000C9 +:0403310000000000C8 +:0403320000000000C7 +:0403330000000000C6 +:0403340000000000C5 +:0403350000000000C4 +:0403360000000000C3 +:0403370000000000C2 +:0403380000000000C1 +:0403390000000000C0 +:04033A0000000000BF +:04033B0000000000BE +:04033C0000000000BD +:04033D0000000000BC +:04033E0000000000BB +:04033F0000000000BA +:0403400000000000B9 +:0403410000000000B8 +:0403420000000000B7 +:0403430000000000B6 +:0403440000000000B5 +:0403450000000000B4 +:0403460000000000B3 +:0403470000000000B2 +:0403480000000000B1 +:0403490000000000B0 +:04034A0000000000AF +:04034B0000000000AE +:04034C0000000000AD +:04034D0000000000AC +:04034E0000000000AB +:04034F0000000000AA +:0403500000000000A9 +:0403510000000000A8 +:0403520000000000A7 +:0403530000000000A6 +:0403540000000000A5 +:0403550000000000A4 +:0403560000000000A3 +:0403570000000000A2 +:0403580000000000A1 +:0403590000000000A0 +:04035A00000000009F +:04035B00000000009E +:04035C00000000009D +:04035D00000000009C +:04035E00000000009B +:04035F00000000009A +:040360000000000099 +:040361000000000098 +:040362000000000097 +:040363000000000096 +:040364000000000095 +:040365000000000094 +:040366000000000093 +:040367000000000092 +:040368000000000091 +:040369000000000090 +:04036A00000000008F +:04036B00000000008E +:04036C00000000008D +:04036D00000000008C +:04036E00000000008B +:04036F00000000008A +:040370000000000089 +:040371000000000088 +:040372000000000087 +:040373000000000086 +:040374000000000085 +:040375000000000084 +:040376000000000083 +:040377000000000082 +:040378000000000081 +:040379000000000080 +:04037A00000000007F +:04037B00000000007E +:04037C00000000007D +:04037D00000000007C +:04037E00000000007B +:04037F00000000007A +:040380000000000079 +:040381000000000078 +:040382000000000077 +:040383000000000076 +:040384000000000075 +:040385000000000074 +:040386000000000073 +:040387000000000072 +:040388000000000071 +:040389000000000070 +:04038A00000000006F +:04038B00000000006E +:04038C00000000006D +:04038D00000000006C +:04038E00000000006B +:04038F00000000006A +:040390000000000069 +:040391000000000068 +:040392000000000067 +:040393000000000066 +:040394000000000065 +:040395000000000064 +:040396000000000063 +:040397000000000062 +:040398000000000061 +:040399000000000060 +:04039A00000000005F +:04039B00000000005E +:04039C00000000005D +:04039D00000000005C +:04039E00000000005B +:04039F00000000005A +:0403A0000000000059 +:0403A1000000000058 +:0403A2000000000057 +:0403A3000000000056 +:0403A4000000000055 +:0403A5000000000054 +:0403A6000000000053 +:0403A7000000000052 +:0403A8000000000051 +:0403A9000000000050 +:0403AA00000000004F +:0403AB00000000004E +:0403AC00000000004D +:0403AD00000000004C +:0403AE00000000004B +:0403AF00000000004A +:0403B0000000000049 +:0403B1000000000048 +:0403B2000000000047 +:0403B3000000000046 +:0403B4000000000045 +:0403B5000000000044 +:0403B6000000000043 +:0403B7000000000042 +:0403B8000000000041 +:0403B9000000000040 +:0403BA00000000003F +:0403BB00000000003E +:0403BC00000000003D +:0403BD00000000003C +:0403BE00000000003B +:0403BF00000000003A +:0403C0000000000039 +:0403C1000000000038 +:0403C2000000000037 +:0403C3000000000036 +:0403C4000000000035 +:0403C5000000000034 +:0403C6000000000033 +:0403C7000000000032 +:0403C8000000000031 +:0403C9000000000030 +:0403CA00000000002F +:0403CB00000000002E +:0403CC00000000002D +:0403CD00000000002C +:0403CE00000000002B +:0403CF00000000002A +:0403D0000000000029 +:0403D1000000000028 +:0403D2000000000027 +:0403D3000000000026 +:0403D4000000000025 +:0403D5000000000024 +:0403D6000000000023 +:0403D7000000000022 +:0403D8000000000021 +:0403D9000000000020 +:0403DA00000000001F +:0403DB00000000001E +:0403DC00000000001D +:0403DD00000000001C +:0403DE00000000001B +:0403DF00000000001A +:0403E0000000000019 +:0403E1000000000018 +:0403E2000000000017 +:0403E3000000000016 +:0403E4000000000015 +:0403E5000000000014 +:0403E6000000000013 +:0403E7000000000012 +:0403E8000000000011 +:0403E9000000000010 +:0403EA00000000000F +:0403EB00000000000E +:0403EC00000000000D +:0403ED00000000000C +:0403EE00000000000B +:0403EF00000000000A +:0403F0000000000009 +:0403F1000000000008 +:0403F2000000000007 +:0403F3000000000006 +:0403F4000000000005 +:0403F5000000000004 +:0403F6000000000003 +:0403F7000000000002 +:0403F8000000000001 +:0403F9000000000000 +:0403FA0000000000FF +:0403FB0000000000FE +:0403FC0000000000FD +:0403FD0000000000FC +:0403FE0000000000FB +:0403FF0000000000FA +:0404000000000000F8 +:0404010000000000F7 +:0404020000000000F6 +:0404030000000000F5 +:0404040000000000F4 +:0404050000000000F3 +:0404060000000000F2 +:0404070000000000F1 +:0404080000000000F0 +:0404090000000000EF +:04040A0000000000EE +:04040B0000000000ED +:04040C0000000000EC +:04040D0000000000EB +:04040E0000000000EA +:04040F0000000000E9 +:0404100000000000E8 +:0404110000000000E7 +:0404120000000000E6 +:0404130000000000E5 +:0404140000000000E4 +:0404150000000000E3 +:0404160000000000E2 +:0404170000000000E1 +:0404180000000000E0 +:0404190000000000DF +:04041A0000000000DE +:04041B0000000000DD +:04041C0000000000DC +:04041D0000000000DB +:04041E0000000000DA +:04041F0000000000D9 +:0404200000000000D8 +:0404210000000000D7 +:0404220000000000D6 +:0404230000000000D5 +:0404240000000000D4 +:0404250000000000D3 +:0404260000000000D2 +:0404270000000000D1 +:0404280000000000D0 +:0404290000000000CF +:04042A0000000000CE +:04042B0000000000CD +:04042C0000000000CC +:04042D0000000000CB +:04042E0000000000CA +:04042F0000000000C9 +:0404300000000000C8 +:0404310000000000C7 +:0404320000000000C6 +:0404330000000000C5 +:0404340000000000C4 +:0404350000000000C3 +:0404360000000000C2 +:0404370000000000C1 +:0404380000000000C0 +:0404390000000000BF +:04043A0000000000BE +:04043B0000000000BD +:04043C0000000000BC +:04043D0000000000BB +:04043E0000000000BA +:04043F0000000000B9 +:0404400000000000B8 +:0404410000000000B7 +:0404420000000000B6 +:0404430000000000B5 +:0404440000000000B4 +:0404450000000000B3 +:0404460000000000B2 +:0404470000000000B1 +:0404480000000000B0 +:0404490000000000AF +:04044A0000000000AE +:04044B0000000000AD +:04044C0000000000AC +:04044D0000000000AB +:04044E0000000000AA +:04044F0000000000A9 +:0404500000000000A8 +:0404510000000000A7 +:0404520000000000A6 +:0404530000000000A5 +:0404540000000000A4 +:0404550000000000A3 +:0404560000000000A2 +:0404570000000000A1 +:0404580000000000A0 +:04045900000000009F +:04045A00000000009E +:04045B00000000009D +:04045C00000000009C +:04045D00000000009B +:04045E00000000009A +:04045F000000000099 +:040460000000000098 +:040461000000000097 +:040462000000000096 +:040463000000000095 +:040464000000000094 +:040465000000000093 +:040466000000000092 +:040467000000000091 +:040468000000000090 +:04046900000000008F +:04046A00000000008E +:04046B00000000008D +:04046C00000000008C +:04046D00000000008B +:04046E00000000008A +:04046F000000000089 +:040470000000000088 +:040471000000000087 +:040472000000000086 +:040473000000000085 +:040474000000000084 +:040475000000000083 +:040476000000000082 +:040477000000000081 +:040478000000000080 +:04047900000000007F +:04047A00000000007E +:04047B00000000007D +:04047C00000000007C +:04047D00000000007B +:04047E00000000007A +:04047F000000000079 +:040480000000000078 +:040481000000000077 +:040482000000000076 +:040483000000000075 +:040484000000000074 +:040485000000000073 +:040486000000000072 +:040487000000000071 +:040488000000000070 +:04048900000000006F +:04048A00000000006E +:04048B00000000006D +:04048C00000000006C +:04048D00000000006B +:04048E00000000006A +:04048F000000000069 +:040490000000000068 +:040491000000000067 +:040492000000000066 +:040493000000000065 +:040494000000000064 +:040495000000000063 +:040496000000000062 +:040497000000000061 +:040498000000000060 +:04049900000000005F +:04049A00000000005E +:04049B00000000005D +:04049C00000000005C +:04049D00000000005B +:04049E00000000005A +:04049F000000000059 +:0404A0000000000058 +:0404A1000000000057 +:0404A2000000000056 +:0404A3000000000055 +:0404A4000000000054 +:0404A5000000000053 +:0404A6000000000052 +:0404A7000000000051 +:0404A8000000000050 +:0404A900000000004F +:0404AA00000000004E +:0404AB00000000004D +:0404AC00000000004C +:0404AD00000000004B +:0404AE00000000004A +:0404AF000000000049 +:0404B0000000000048 +:0404B1000000000047 +:0404B2000000000046 +:0404B3000000000045 +:0404B4000000000044 +:0404B5000000000043 +:0404B6000000000042 +:0404B7000000000041 +:0404B8000000000040 +:0404B900000000003F +:0404BA00000000003E +:0404BB00000000003D +:0404BC00000000003C +:0404BD00000000003B +:0404BE00000000003A +:0404BF000000000039 +:0404C0000000000038 +:0404C1000000000037 +:0404C2000000000036 +:0404C3000000000035 +:0404C4000000000034 +:0404C5000000000033 +:0404C6000000000032 +:0404C7000000000031 +:0404C8000000000030 +:0404C900000000002F +:0404CA00000000002E +:0404CB00000000002D +:0404CC00000000002C +:0404CD00000000002B +:0404CE00000000002A +:0404CF000000000029 +:0404D0000000000028 +:0404D1000000000027 +:0404D2000000000026 +:0404D3000000000025 +:0404D4000000000024 +:0404D5000000000023 +:0404D6000000000022 +:0404D7000000000021 +:0404D8000000000020 +:0404D900000000001F +:0404DA00000000001E +:0404DB00000000001D +:0404DC00000000001C +:0404DD00000000001B +:0404DE00000000001A +:0404DF000000000019 +:0404E0000000000018 +:0404E1000000000017 +:0404E2000000000016 +:0404E3000000000015 +:0404E4000000000014 +:0404E5000000000013 +:0404E6000000000012 +:0404E7000000000011 +:0404E8000000000010 +:0404E900000000000F +:0404EA00000000000E +:0404EB00000000000D +:0404EC00000000000C +:0404ED00000000000B +:0404EE00000000000A +:0404EF000000000009 +:0404F0000000000008 +:0404F1000000000007 +:0404F2000000000006 +:0404F3000000000005 +:0404F4000000000004 +:0404F5000000000003 +:0404F6000000000002 +:0404F7000000000001 +:0404F8000000000000 +:0404F90000000000FF +:0404FA0000000000FE +:0404FB0000000000FD +:0404FC0000000000FC +:0404FD0000000000FB +:0404FE0000000000FA +:0404FF0000000000F9 +:0405000000000000F7 +:0405010000000000F6 +:0405020000000000F5 +:0405030000000000F4 +:0405040000000000F3 +:0405050000000000F2 +:0405060000000000F1 +:0405070000000000F0 +:0405080000000000EF +:0405090000000000EE +:04050A0000000000ED +:04050B0000000000EC +:04050C0000000000EB +:04050D0000000000EA +:04050E0000000000E9 +:04050F0000000000E8 +:0405100000000000E7 +:0405110000000000E6 +:0405120000000000E5 +:0405130000000000E4 +:0405140000000000E3 +:0405150000000000E2 +:0405160000000000E1 +:0405170000000000E0 +:0405180000000000DF +:0405190000000000DE +:04051A0000000000DD +:04051B0000000000DC +:04051C0000000000DB +:04051D0000000000DA +:04051E0000000000D9 +:04051F0000000000D8 +:0405200000000000D7 +:0405210000000000D6 +:0405220000000000D5 +:0405230000000000D4 +:0405240000000000D3 +:0405250000000000D2 +:0405260000000000D1 +:0405270000000000D0 +:0405280000000000CF +:0405290000000000CE +:04052A0000000000CD +:04052B0000000000CC +:04052C0000000000CB +:04052D0000000000CA +:04052E0000000000C9 +:04052F0000000000C8 +:0405300000000000C7 +:0405310000000000C6 +:0405320000000000C5 +:0405330000000000C4 +:0405340000000000C3 +:0405350000000000C2 +:0405360000000000C1 +:0405370000000000C0 +:0405380000000000BF +:0405390000000000BE +:04053A0000000000BD +:04053B0000000000BC +:04053C0000000000BB +:04053D0000000000BA +:04053E0000000000B9 +:04053F0000000000B8 +:0405400000000000B7 +:0405410000000000B6 +:0405420000000000B5 +:0405430000000000B4 +:0405440000000000B3 +:0405450000000000B2 +:0405460000000000B1 +:0405470000000000B0 +:0405480000000000AF +:0405490000000000AE +:04054A0000000000AD +:04054B0000000000AC +:04054C0000000000AB +:04054D0000000000AA +:04054E0000000000A9 +:04054F0000000000A8 +:0405500000000000A7 +:0405510000000000A6 +:0405520000000000A5 +:0405530000000000A4 +:0405540000000000A3 +:0405550000000000A2 +:0405560000000000A1 +:0405570000000000A0 +:04055800000000009F +:04055900000000009E +:04055A00000000009D +:04055B00000000009C +:04055C00000000009B +:04055D00000000009A +:04055E000000000099 +:04055F000000000098 +:040560000000000097 +:040561000000000096 +:040562000000000095 +:040563000000000094 +:040564000000000093 +:040565000000000092 +:040566000000000091 +:040567000000000090 +:04056800000000008F +:04056900000000008E +:04056A00000000008D +:04056B00000000008C +:04056C00000000008B +:04056D00000000008A +:04056E000000000089 +:04056F000000000088 +:040570000000000087 +:040571000000000086 +:040572000000000085 +:040573000000000084 +:040574000000000083 +:040575000000000082 +:040576000000000081 +:040577000000000080 +:04057800000000007F +:04057900000000007E +:04057A00000000007D +:04057B00000000007C +:04057C00000000007B +:04057D00000000007A +:04057E000000000079 +:04057F000000000078 +:040580000000000077 +:040581000000000076 +:040582000000000075 +:040583000000000074 +:040584000000000073 +:040585000000000072 +:040586000000000071 +:040587000000000070 +:04058800000000006F +:04058900000000006E +:04058A00000000006D +:04058B00000000006C +:04058C00000000006B +:04058D00000000006A +:04058E000000000069 +:04058F000000000068 +:040590000000000067 +:040591000000000066 +:040592000000000065 +:040593000000000064 +:040594000000000063 +:040595000000000062 +:040596000000000061 +:040597000000000060 +:04059800000000005F +:04059900000000005E +:04059A00000000005D +:04059B00000000005C +:04059C00000000005B +:04059D00000000005A +:04059E000000000059 +:04059F000000000058 +:0405A0000000000057 +:0405A1000000000056 +:0405A2000000000055 +:0405A3000000000054 +:0405A4000000000053 +:0405A5000000000052 +:0405A6000000000051 +:0405A7000000000050 +:0405A800000000004F +:0405A900000000004E +:0405AA00000000004D +:0405AB00000000004C +:0405AC00000000004B +:0405AD00000000004A +:0405AE000000000049 +:0405AF000000000048 +:0405B0000000000047 +:0405B1000000000046 +:0405B2000000000045 +:0405B3000000000044 +:0405B4000000000043 +:0405B5000000000042 +:0405B6000000000041 +:0405B7000000000040 +:0405B800000000003F +:0405B900000000003E +:0405BA00000000003D +:0405BB00000000003C +:0405BC00000000003B +:0405BD00000000003A +:0405BE000000000039 +:0405BF000000000038 +:0405C0000000000037 +:0405C1000000000036 +:0405C2000000000035 +:0405C3000000000034 +:0405C4000000000033 +:0405C5000000000032 +:0405C6000000000031 +:0405C7000000000030 +:0405C800000000002F +:0405C900000000002E +:0405CA00000000002D +:0405CB00000000002C +:0405CC00000000002B +:0405CD00000000002A +:0405CE000000000029 +:0405CF000000000028 +:0405D0000000000027 +:0405D1000000000026 +:0405D2000000000025 +:0405D3000000000024 +:0405D4000000000023 +:0405D5000000000022 +:0405D6000000000021 +:0405D7000000000020 +:0405D800000000001F +:0405D900000000001E +:0405DA00000000001D +:0405DB00000000001C +:0405DC00000000001B +:0405DD00000000001A +:0405DE000000000019 +:0405DF000000000018 +:0405E0000000000017 +:0405E1000000000016 +:0405E2000000000015 +:0405E3000000000014 +:0405E4000000000013 +:0405E5000000000012 +:0405E6000000000011 +:0405E7000000000010 +:0405E800000000000F +:0405E900000000000E +:0405EA00000000000D +:0405EB00000000000C +:0405EC00000000000B +:0405ED00000000000A +:0405EE000000000009 +:0405EF000000000008 +:0405F0000000000007 +:0405F1000000000006 +:0405F2000000000005 +:0405F3000000000004 +:0405F4000000000003 +:0405F5000000000002 +:0405F6000000000001 +:0405F7000000000000 +:0405F80000000000FF +:0405F90000000000FE +:0405FA0000000000FD +:0405FB0000000000FC +:0405FC0000000000FB +:0405FD0000000000FA +:0405FE0000000000F9 +:0405FF0000000000F8 +:0406000000000000F6 +:0406010000000000F5 +:0406020000000000F4 +:0406030000000000F3 +:0406040000000000F2 +:0406050000000000F1 +:0406060000000000F0 +:0406070000000000EF +:0406080000000000EE +:0406090000000000ED +:04060A0000000000EC +:04060B0000000000EB +:04060C0000000000EA +:04060D0000000000E9 +:04060E0000000000E8 +:04060F0000000000E7 +:0406100000000000E6 +:0406110000000000E5 +:0406120000000000E4 +:0406130000000000E3 +:0406140000000000E2 +:0406150000000000E1 +:0406160000000000E0 +:0406170000000000DF +:0406180000000000DE +:0406190000000000DD +:04061A0000000000DC +:04061B0000000000DB +:04061C0000000000DA +:04061D0000000000D9 +:04061E0000000000D8 +:04061F0000000000D7 +:0406200000000000D6 +:0406210000000000D5 +:0406220000000000D4 +:0406230000000000D3 +:0406240000000000D2 +:0406250000000000D1 +:0406260000000000D0 +:0406270000000000CF +:0406280000000000CE +:0406290000000000CD +:04062A0000000000CC +:04062B0000000000CB +:04062C0000000000CA +:04062D0000000000C9 +:04062E0000000000C8 +:04062F0000000000C7 +:0406300000000000C6 +:0406310000000000C5 +:0406320000000000C4 +:0406330000000000C3 +:0406340000000000C2 +:0406350000000000C1 +:0406360000000000C0 +:0406370000000000BF +:0406380000000000BE +:0406390000000000BD +:04063A0000000000BC +:04063B0000000000BB +:04063C0000000000BA +:04063D0000000000B9 +:04063E0000000000B8 +:04063F0000000000B7 +:0406400000000000B6 +:0406410000000000B5 +:0406420000000000B4 +:0406430000000000B3 +:0406440000000000B2 +:0406450000000000B1 +:0406460000000000B0 +:0406470000000000AF +:0406480000000000AE +:0406490000000000AD +:04064A0000000000AC +:04064B0000000000AB +:04064C0000000000AA +:04064D0000000000A9 +:04064E0000000000A8 +:04064F0000000000A7 +:0406500000000000A6 +:0406510000000000A5 +:0406520000000000A4 +:0406530000000000A3 +:0406540000000000A2 +:0406550000000000A1 +:0406560000000000A0 +:04065700000000009F +:04065800000000009E +:04065900000000009D +:04065A00000000009C +:04065B00000000009B +:04065C00000000009A +:04065D000000000099 +:04065E000000000098 +:04065F000000000097 +:040660000000000096 +:040661000000000095 +:040662000000000094 +:040663000000000093 +:040664000000000092 +:040665000000000091 +:040666000000000090 +:04066700000000008F +:04066800000000008E +:04066900000000008D +:04066A00000000008C +:04066B00000000008B +:04066C00000000008A +:04066D000000000089 +:04066E000000000088 +:04066F000000000087 +:040670000000000086 +:040671000000000085 +:040672000000000084 +:040673000000000083 +:040674000000000082 +:040675000000000081 +:040676000000000080 +:04067700000000007F +:04067800000000007E +:04067900000000007D +:04067A00000000007C +:04067B00000000007B +:04067C00000000007A +:04067D000000000079 +:04067E000000000078 +:04067F000000000077 +:040680000000000076 +:040681000000000075 +:040682000000000074 +:040683000000000073 +:040684000000000072 +:040685000000000071 +:040686000000000070 +:04068700000000006F +:04068800000000006E +:04068900000000006D +:04068A00000000006C +:04068B00000000006B +:04068C00000000006A +:04068D000000000069 +:04068E000000000068 +:04068F000000000067 +:040690000000000066 +:040691000000000065 +:040692000000000064 +:040693000000000063 +:040694000000000062 +:040695000000000061 +:040696000000000060 +:04069700000000005F +:04069800000000005E +:04069900000000005D +:04069A00000000005C +:04069B00000000005B +:04069C00000000005A +:04069D000000000059 +:04069E000000000058 +:04069F000000000057 +:0406A0000000000056 +:0406A1000000000055 +:0406A2000000000054 +:0406A3000000000053 +:0406A4000000000052 +:0406A5000000000051 +:0406A6000000000050 +:0406A700000000004F +:0406A800000000004E +:0406A900000000004D +:0406AA00000000004C +:0406AB00000000004B +:0406AC00000000004A +:0406AD000000000049 +:0406AE000000000048 +:0406AF000000000047 +:0406B0000000000046 +:0406B1000000000045 +:0406B2000000000044 +:0406B3000000000043 +:0406B4000000000042 +:0406B5000000000041 +:0406B6000000000040 +:0406B700000000003F +:0406B800000000003E +:0406B900000000003D +:0406BA00000000003C +:0406BB00000000003B +:0406BC00000000003A +:0406BD000000000039 +:0406BE000000000038 +:0406BF000000000037 +:0406C0000000000036 +:0406C1000000000035 +:0406C2000000000034 +:0406C3000000000033 +:0406C4000000000032 +:0406C5000000000031 +:0406C6000000000030 +:0406C700000000002F +:0406C800000000002E +:0406C900000000002D +:0406CA00000000002C +:0406CB00000000002B +:0406CC00000000002A +:0406CD000000000029 +:0406CE000000000028 +:0406CF000000000027 +:0406D0000000000026 +:0406D1000000000025 +:0406D2000000000024 +:0406D3000000000023 +:0406D4000000000022 +:0406D5000000000021 +:0406D6000000000020 +:0406D700000000001F +:0406D800000000001E +:0406D900000000001D +:0406DA00000000001C +:0406DB00000000001B +:0406DC00000000001A +:0406DD000000000019 +:0406DE000000000018 +:0406DF000000000017 +:0406E0000000000016 +:0406E1000000000015 +:0406E2000000000014 +:0406E3000000000013 +:0406E4000000000012 +:0406E5000000000011 +:0406E6000000000010 +:0406E700000000000F +:0406E800000000000E +:0406E900000000000D +:0406EA00000000000C +:0406EB00000000000B +:0406EC00000000000A +:0406ED000000000009 +:0406EE000000000008 +:0406EF000000000007 +:0406F0000000000006 +:0406F1000000000005 +:0406F2000000000004 +:0406F3000000000003 +:0406F4000000000002 +:0406F5000000000001 +:0406F6000000000000 +:0406F70000000000FF +:0406F80000000000FE +:0406F90000000000FD +:0406FA0000000000FC +:0406FB0000000000FB +:0406FC0000000000FA +:0406FD0000000000F9 +:0406FE0000000000F8 +:0406FF0000000000F7 +:0407000000000000F5 +:0407010000000000F4 +:0407020000000000F3 +:0407030000000000F2 +:0407040000000000F1 +:0407050000000000F0 +:0407060000000000EF +:0407070000000000EE +:0407080000000000ED +:0407090000000000EC +:04070A0000000000EB +:04070B0000000000EA +:04070C0000000000E9 +:04070D0000000000E8 +:04070E0000000000E7 +:04070F0000000000E6 +:0407100000000000E5 +:0407110000000000E4 +:0407120000000000E3 +:0407130000000000E2 +:0407140000000000E1 +:0407150000000000E0 +:0407160000000000DF +:0407170000000000DE +:0407180000000000DD +:0407190000000000DC +:04071A0000000000DB +:04071B0000000000DA +:04071C0000000000D9 +:04071D0000000000D8 +:04071E0000000000D7 +:04071F0000000000D6 +:0407200000000000D5 +:0407210000000000D4 +:0407220000000000D3 +:0407230000000000D2 +:0407240000000000D1 +:0407250000000000D0 +:0407260000000000CF +:0407270000000000CE +:0407280000000000CD +:0407290000000000CC +:04072A0000000000CB +:04072B0000000000CA +:04072C0000000000C9 +:04072D0000000000C8 +:04072E0000000000C7 +:04072F0000000000C6 +:0407300000000000C5 +:0407310000000000C4 +:0407320000000000C3 +:0407330000000000C2 +:0407340000000000C1 +:0407350000000000C0 +:0407360000000000BF +:0407370000000000BE +:0407380000000000BD +:0407390000000000BC +:04073A0000000000BB +:04073B0000000000BA +:04073C0000000000B9 +:04073D0000000000B8 +:04073E0000000000B7 +:04073F0000000000B6 +:0407400000000000B5 +:0407410000000000B4 +:0407420000000000B3 +:0407430000000000B2 +:0407440000000000B1 +:0407450000000000B0 +:0407460000000000AF +:0407470000000000AE +:0407480000000000AD +:0407490000000000AC +:04074A0000000000AB +:04074B0000000000AA +:04074C0000000000A9 +:04074D0000000000A8 +:04074E0000000000A7 +:04074F0000000000A6 +:0407500000000000A5 +:0407510000000000A4 +:0407520000000000A3 +:0407530000000000A2 +:0407540000000000A1 +:0407550000000000A0 +:04075600000000009F +:04075700000000009E +:04075800000000009D +:04075900000000009C +:04075A00000000009B +:04075B00000000009A +:04075C000000000099 +:04075D000000000098 +:04075E000000000097 +:04075F000000000096 +:040760000000000095 +:040761000000000094 +:040762000000000093 +:040763000000000092 +:040764000000000091 +:040765000000000090 +:04076600000000008F +:04076700000000008E +:04076800000000008D +:04076900000000008C +:04076A00000000008B +:04076B00000000008A +:04076C000000000089 +:04076D000000000088 +:04076E000000000087 +:04076F000000000086 +:040770000000000085 +:040771000000000084 +:040772000000000083 +:040773000000000082 +:040774000000000081 +:040775000000000080 +:04077600000000007F +:04077700000000007E +:04077800000000007D +:04077900000000007C +:04077A00000000007B +:04077B00000000007A +:04077C000000000079 +:04077D000000000078 +:04077E000000000077 +:04077F000000000076 +:040780000000000075 +:040781000000000074 +:040782000000000073 +:040783000000000072 +:040784000000000071 +:040785000000000070 +:04078600000000006F +:04078700000000006E +:04078800000000006D +:04078900000000006C +:04078A00000000006B +:04078B00000000006A +:04078C000000000069 +:04078D000000000068 +:04078E000000000067 +:04078F000000000066 +:040790000000000065 +:040791000000000064 +:040792000000000063 +:040793000000000062 +:040794000000000061 +:040795000000000060 +:04079600000000005F +:04079700000000005E +:04079800000000005D +:04079900000000005C +:04079A00000000005B +:04079B00000000005A +:04079C000000000059 +:04079D000000000058 +:04079E000000000057 +:04079F000000000056 +:0407A0000000000055 +:0407A1000000000054 +:0407A2000000000053 +:0407A3000000000052 +:0407A4000000000051 +:0407A5000000000050 +:0407A600000000004F +:0407A700000000004E +:0407A800000000004D +:0407A900000000004C +:0407AA00000000004B +:0407AB00000000004A +:0407AC000000000049 +:0407AD000000000048 +:0407AE000000000047 +:0407AF000000000046 +:0407B0000000000045 +:0407B1000000000044 +:0407B2000000000043 +:0407B3000000000042 +:0407B4000000000041 +:0407B5000000000040 +:0407B600000000003F +:0407B700000000003E +:0407B800000000003D +:0407B900000000003C +:0407BA00000000003B +:0407BB00000000003A +:0407BC000000000039 +:0407BD000000000038 +:0407BE000000000037 +:0407BF000000000036 +:0407C0000000000035 +:0407C1000000000034 +:0407C2000000000033 +:0407C3000000000032 +:0407C4000000000031 +:0407C5000000000030 +:0407C600000000002F +:0407C700000000002E +:0407C800000000002D +:0407C900000000002C +:0407CA00000000002B +:0407CB00000000002A +:0407CC000000000029 +:0407CD000000000028 +:0407CE000000000027 +:0407CF000000000026 +:0407D0000000000025 +:0407D1000000000024 +:0407D2000000000023 +:0407D3000000000022 +:0407D4000000000021 +:0407D5000000000020 +:0407D600000000001F +:0407D700000000001E +:0407D800000000001D +:0407D900000000001C +:0407DA00000000001B +:0407DB00000000001A +:0407DC000000000019 +:0407DD000000000018 +:0407DE000000000017 +:0407DF000000000016 +:0407E0000000000015 +:0407E1000000000014 +:0407E2000000000013 +:0407E3000000000012 +:0407E4000000000011 +:0407E5000000000010 +:0407E600000000000F +:0407E700000000000E +:0407E800000000000D +:0407E900000000000C +:0407EA00000000000B +:0407EB00000000000A +:0407EC000000000009 +:0407ED000000000008 +:0407EE000000000007 +:0407EF000000000006 +:0407F0000000000005 +:0407F1000000000004 +:0407F2000000000003 +:0407F3000000000002 +:0407F4000000000001 +:0407F5000000000000 +:0407F60000000000FF +:0407F70000000000FE +:0407F80000000000FD +:0407F90000000000FC +:0407FA0000000000FB +:0407FB0000000000FA +:0407FC0000000000F9 +:0407FD0000000000F8 +:0407FE0000000000F7 +:0407FF0000000000F6 +:0408000000000000F4 +:0408010000000000F3 +:0408020000000000F2 +:0408030000000000F1 +:0408040000000000F0 +:0408050000000000EF +:0408060000000000EE +:0408070000000000ED +:0408080000000000EC +:0408090000000000EB +:04080A0000000000EA +:04080B0000000000E9 +:04080C0000000000E8 +:04080D0000000000E7 +:04080E0000000000E6 +:04080F0000000000E5 +:0408100000000000E4 +:0408110000000000E3 +:0408120000000000E2 +:0408130000000000E1 +:0408140000000000E0 +:0408150000000000DF +:0408160000000000DE +:0408170000000000DD +:0408180000000000DC +:0408190000000000DB +:04081A0000000000DA +:04081B0000000000D9 +:04081C0000000000D8 +:04081D0000000000D7 +:04081E0000000000D6 +:04081F0000000000D5 +:0408200000000000D4 +:0408210000000000D3 +:0408220000000000D2 +:0408230000000000D1 +:0408240000000000D0 +:0408250000000000CF +:0408260000000000CE +:0408270000000000CD +:0408280000000000CC +:0408290000000000CB +:04082A0000000000CA +:04082B0000000000C9 +:04082C0000000000C8 +:04082D0000000000C7 +:04082E0000000000C6 +:04082F0000000000C5 +:0408300000000000C4 +:0408310000000000C3 +:0408320000000000C2 +:0408330000000000C1 +:0408340000000000C0 +:0408350000000000BF +:0408360000000000BE +:0408370000000000BD +:0408380000000000BC +:0408390000000000BB +:04083A0000000000BA +:04083B0000000000B9 +:04083C0000000000B8 +:04083D0000000000B7 +:04083E0000000000B6 +:04083F0000000000B5 +:0408400000000000B4 +:0408410000000000B3 +:0408420000000000B2 +:0408430000000000B1 +:0408440000000000B0 +:0408450000000000AF +:0408460000000000AE +:0408470000000000AD +:0408480000000000AC +:0408490000000000AB +:04084A0000000000AA +:04084B0000000000A9 +:04084C0000000000A8 +:04084D0000000000A7 +:04084E0000000000A6 +:04084F0000000000A5 +:0408500000000000A4 +:0408510000000000A3 +:0408520000000000A2 +:0408530000000000A1 +:0408540000000000A0 +:04085500000000009F +:04085600000000009E +:04085700000000009D +:04085800000000009C +:04085900000000009B +:04085A00000000009A +:04085B000000000099 +:04085C000000000098 +:04085D000000000097 +:04085E000000000096 +:04085F000000000095 +:040860000000000094 +:040861000000000093 +:040862000000000092 +:040863000000000091 +:040864000000000090 +:04086500000000008F +:04086600000000008E +:04086700000000008D +:04086800000000008C +:04086900000000008B +:04086A00000000008A +:04086B000000000089 +:04086C000000000088 +:04086D000000000087 +:04086E000000000086 +:04086F000000000085 +:040870000000000084 +:040871000000000083 +:040872000000000082 +:040873000000000081 +:040874000000000080 +:04087500000000007F +:04087600000000007E +:04087700000000007D +:04087800000000007C +:04087900000000007B +:04087A00000000007A +:04087B000000000079 +:04087C000000000078 +:04087D000000000077 +:04087E000000000076 +:04087F000000000075 +:040880000000000074 +:040881000000000073 +:040882000000000072 +:040883000000000071 +:040884000000000070 +:04088500000000006F +:04088600000000006E +:04088700000000006D +:04088800000000006C +:04088900000000006B +:04088A00000000006A +:04088B000000000069 +:04088C000000000068 +:04088D000000000067 +:04088E000000000066 +:04088F000000000065 +:040890000000000064 +:040891000000000063 +:040892000000000062 +:040893000000000061 +:040894000000000060 +:04089500000000005F +:04089600000000005E +:04089700000000005D +:04089800000000005C +:04089900000000005B +:04089A00000000005A +:04089B000000000059 +:04089C000000000058 +:04089D000000000057 +:04089E000000000056 +:04089F000000000055 +:0408A0000000000054 +:0408A1000000000053 +:0408A2000000000052 +:0408A3000000000051 +:0408A4000000000050 +:0408A500000000004F +:0408A600000000004E +:0408A700000000004D +:0408A800000000004C +:0408A900000000004B +:0408AA00000000004A +:0408AB000000000049 +:0408AC000000000048 +:0408AD000000000047 +:0408AE000000000046 +:0408AF000000000045 +:0408B0000000000044 +:0408B1000000000043 +:0408B2000000000042 +:0408B3000000000041 +:0408B4000000000040 +:0408B500000000003F +:0408B600000000003E +:0408B700000000003D +:0408B800000000003C +:0408B900000000003B +:0408BA00000000003A +:0408BB000000000039 +:0408BC000000000038 +:0408BD000000000037 +:0408BE000000000036 +:0408BF000000000035 +:0408C0000000000034 +:0408C1000000000033 +:0408C2000000000032 +:0408C3000000000031 +:0408C4000000000030 +:0408C500000000002F +:0408C600000000002E +:0408C700000000002D +:0408C800000000002C +:0408C900000000002B +:0408CA00000000002A +:0408CB000000000029 +:0408CC000000000028 +:0408CD000000000027 +:0408CE000000000026 +:0408CF000000000025 +:0408D0000000000024 +:0408D1000000000023 +:0408D2000000000022 +:0408D3000000000021 +:0408D4000000000020 +:0408D500000000001F +:0408D600000000001E +:0408D700000000001D +:0408D800000000001C +:0408D900000000001B +:0408DA00000000001A +:0408DB000000000019 +:0408DC000000000018 +:0408DD000000000017 +:0408DE000000000016 +:0408DF000000000015 +:0408E0000000000014 +:0408E1000000000013 +:0408E2000000000012 +:0408E3000000000011 +:0408E4000000000010 +:0408E500000000000F +:0408E600000000000E +:0408E700000000000D +:0408E800000000000C +:0408E900000000000B +:0408EA00000000000A +:0408EB000000000009 +:0408EC000000000008 +:0408ED000000000007 +:0408EE000000000006 +:0408EF000000000005 +:0408F0000000000004 +:0408F1000000000003 +:0408F2000000000002 +:0408F3000000000001 +:0408F4000000000000 +:0408F50000000000FF +:0408F60000000000FE +:0408F70000000000FD +:0408F80000000000FC +:0408F90000000000FB +:0408FA0000000000FA +:0408FB0000000000F9 +:0408FC0000000000F8 +:0408FD0000000000F7 +:0408FE0000000000F6 +:0408FF0000000000F5 +:0409000000000000F3 +:0409010000000000F2 +:0409020000000000F1 +:0409030000000000F0 +:0409040000000000EF +:0409050000000000EE +:0409060000000000ED +:0409070000000000EC +:0409080000000000EB +:0409090000000000EA +:04090A0000000000E9 +:04090B0000000000E8 +:04090C0000000000E7 +:04090D0000000000E6 +:04090E0000000000E5 +:04090F0000000000E4 +:0409100000000000E3 +:0409110000000000E2 +:0409120000000000E1 +:0409130000000000E0 +:0409140000000000DF +:0409150000000000DE +:0409160000000000DD +:0409170000000000DC +:0409180000000000DB +:0409190000000000DA +:04091A0000000000D9 +:04091B0000000000D8 +:04091C0000000000D7 +:04091D0000000000D6 +:04091E0000000000D5 +:04091F0000000000D4 +:0409200000000000D3 +:0409210000000000D2 +:0409220000000000D1 +:0409230000000000D0 +:0409240000000000CF +:0409250000000000CE +:0409260000000000CD +:0409270000000000CC +:0409280000000000CB +:0409290000000000CA +:04092A0000000000C9 +:04092B0000000000C8 +:04092C0000000000C7 +:04092D0000000000C6 +:04092E0000000000C5 +:04092F0000000000C4 +:0409300000000000C3 +:0409310000000000C2 +:0409320000000000C1 +:0409330000000000C0 +:0409340000000000BF +:0409350000000000BE +:0409360000000000BD +:0409370000000000BC +:0409380000000000BB +:0409390000000000BA +:04093A0000000000B9 +:04093B0000000000B8 +:04093C0000000000B7 +:04093D0000000000B6 +:04093E0000000000B5 +:04093F0000000000B4 +:0409400000000000B3 +:0409410000000000B2 +:0409420000000000B1 +:0409430000000000B0 +:0409440000000000AF +:0409450000000000AE +:0409460000000000AD +:0409470000000000AC +:0409480000000000AB +:0409490000000000AA +:04094A0000000000A9 +:04094B0000000000A8 +:04094C0000000000A7 +:04094D0000000000A6 +:04094E0000000000A5 +:04094F0000000000A4 +:0409500000000000A3 +:0409510000000000A2 +:0409520000000000A1 +:0409530000000000A0 +:04095400000000009F +:04095500000000009E +:04095600000000009D +:04095700000000009C +:04095800000000009B +:04095900000000009A +:04095A000000000099 +:04095B000000000098 +:04095C000000000097 +:04095D000000000096 +:04095E000000000095 +:04095F000000000094 +:040960000000000093 +:040961000000000092 +:040962000000000091 +:040963000000000090 +:04096400000000008F +:04096500000000008E +:04096600000000008D +:04096700000000008C +:04096800000000008B +:04096900000000008A +:04096A000000000089 +:04096B000000000088 +:04096C000000000087 +:04096D000000000086 +:04096E000000000085 +:04096F000000000084 +:040970000000000083 +:040971000000000082 +:040972000000000081 +:040973000000000080 +:04097400000000007F +:04097500000000007E +:04097600000000007D +:04097700000000007C +:04097800000000007B +:04097900000000007A +:04097A000000000079 +:04097B000000000078 +:04097C000000000077 +:04097D000000000076 +:04097E000000000075 +:04097F000000000074 +:040980000000000073 +:040981000000000072 +:040982000000000071 +:040983000000000070 +:04098400000000006F +:04098500000000006E +:04098600000000006D +:04098700000000006C +:04098800000000006B +:04098900000000006A +:04098A000000000069 +:04098B000000000068 +:04098C000000000067 +:04098D000000000066 +:04098E000000000065 +:04098F000000000064 +:040990000000000063 +:040991000000000062 +:040992000000000061 +:040993000000000060 +:04099400000000005F +:04099500000000005E +:04099600000000005D +:04099700000000005C +:04099800000000005B +:04099900000000005A +:04099A000000000059 +:04099B000000000058 +:04099C000000000057 +:04099D000000000056 +:04099E000000000055 +:04099F000000000054 +:0409A0000000000053 +:0409A1000000000052 +:0409A2000000000051 +:0409A3000000000050 +:0409A400000000004F +:0409A500000000004E +:0409A600000000004D +:0409A700000000004C +:0409A800000000004B +:0409A900000000004A +:0409AA000000000049 +:0409AB000000000048 +:0409AC000000000047 +:0409AD000000000046 +:0409AE000000000045 +:0409AF000000000044 +:0409B0000000000043 +:0409B1000000000042 +:0409B2000000000041 +:0409B3000000000040 +:0409B400000000003F +:0409B500000000003E +:0409B600000000003D +:0409B700000000003C +:0409B800000000003B +:0409B900000000003A +:0409BA000000000039 +:0409BB000000000038 +:0409BC000000000037 +:0409BD000000000036 +:0409BE000000000035 +:0409BF000000000034 +:0409C0000000000033 +:0409C1000000000032 +:0409C2000000000031 +:0409C3000000000030 +:0409C400000000002F +:0409C500000000002E +:0409C600000000002D +:0409C700000000002C +:0409C800000000002B +:0409C900000000002A +:0409CA000000000029 +:0409CB000000000028 +:0409CC000000000027 +:0409CD000000000026 +:0409CE000000000025 +:0409CF000000000024 +:0409D0000000000023 +:0409D1000000000022 +:0409D2000000000021 +:0409D3000000000020 +:0409D400000000001F +:0409D500000000001E +:0409D600000000001D +:0409D700000000001C +:0409D800000000001B +:0409D900000000001A +:0409DA000000000019 +:0409DB000000000018 +:0409DC000000000017 +:0409DD000000000016 +:0409DE000000000015 +:0409DF000000000014 +:0409E0000000000013 +:0409E1000000000012 +:0409E2000000000011 +:0409E3000000000010 +:0409E400000000000F +:0409E500000000000E +:0409E600000000000D +:0409E700000000000C +:0409E800000000000B +:0409E900000000000A +:0409EA000000000009 +:0409EB000000000008 +:0409EC000000000007 +:0409ED000000000006 +:0409EE000000000005 +:0409EF000000000004 +:0409F0000000000003 +:0409F1000000000002 +:0409F2000000000001 +:0409F3000000000000 +:0409F40000000000FF +:0409F50000000000FE +:0409F60000000000FD +:0409F70000000000FC +:0409F80000000000FB +:0409F90000000000FA +:0409FA0000000000F9 +:0409FB0000000000F8 +:0409FC0000000000F7 +:0409FD0000000000F6 +:0409FE0000000000F5 +:0409FF0000000000F4 +:040A000000000000F2 +:040A010000000000F1 +:040A020000000000F0 +:040A030000000000EF +:040A040000000000EE +:040A050000000000ED +:040A060000000000EC +:040A070000000000EB +:040A080000000000EA +:040A090000000000E9 +:040A0A0000000000E8 +:040A0B0000000000E7 +:040A0C0000000000E6 +:040A0D0000000000E5 +:040A0E0000000000E4 +:040A0F0000000000E3 +:040A100000000000E2 +:040A110000000000E1 +:040A120000000000E0 +:040A130000000000DF +:040A140000000000DE +:040A150000000000DD +:040A160000000000DC +:040A170000000000DB +:040A180000000000DA +:040A190000000000D9 +:040A1A0000000000D8 +:040A1B0000000000D7 +:040A1C0000000000D6 +:040A1D0000000000D5 +:040A1E0000000000D4 +:040A1F0000000000D3 +:040A200000000000D2 +:040A210000000000D1 +:040A220000000000D0 +:040A230000000000CF +:040A240000000000CE +:040A250000000000CD +:040A260000000000CC +:040A270000000000CB +:040A280000000000CA +:040A290000000000C9 +:040A2A0000000000C8 +:040A2B0000000000C7 +:040A2C0000000000C6 +:040A2D0000000000C5 +:040A2E0000000000C4 +:040A2F0000000000C3 +:040A300000000000C2 +:040A310000000000C1 +:040A320000000000C0 +:040A330000000000BF +:040A340000000000BE +:040A350000000000BD +:040A360000000000BC +:040A370000000000BB +:040A380000000000BA +:040A390000000000B9 +:040A3A0000000000B8 +:040A3B0000000000B7 +:040A3C0000000000B6 +:040A3D0000000000B5 +:040A3E0000000000B4 +:040A3F0000000000B3 +:040A400000000000B2 +:040A410000000000B1 +:040A420000000000B0 +:040A430000000000AF +:040A440000000000AE +:040A450000000000AD +:040A460000000000AC +:040A470000000000AB +:040A480000000000AA +:040A490000000000A9 +:040A4A0000000000A8 +:040A4B0000000000A7 +:040A4C0000000000A6 +:040A4D0000000000A5 +:040A4E0000000000A4 +:040A4F0000000000A3 +:040A500000000000A2 +:040A510000000000A1 +:040A520000000000A0 +:040A5300000000009F +:040A5400000000009E +:040A5500000000009D +:040A5600000000009C +:040A5700000000009B +:040A5800000000009A +:040A59000000000099 +:040A5A000000000098 +:040A5B000000000097 +:040A5C000000000096 +:040A5D000000000095 +:040A5E000000000094 +:040A5F000000000093 +:040A60000000000092 +:040A61000000000091 +:040A62000000000090 +:040A6300000000008F +:040A6400000000008E +:040A6500000000008D +:040A6600000000008C +:040A6700000000008B +:040A6800000000008A +:040A69000000000089 +:040A6A000000000088 +:040A6B000000000087 +:040A6C000000000086 +:040A6D000000000085 +:040A6E000000000084 +:040A6F000000000083 +:040A70000000000082 +:040A71000000000081 +:040A72000000000080 +:040A7300000000007F +:040A7400000000007E +:040A7500000000007D +:040A7600000000007C +:040A7700000000007B +:040A7800000000007A +:040A79000000000079 +:040A7A000000000078 +:040A7B000000000077 +:040A7C000000000076 +:040A7D000000000075 +:040A7E000000000074 +:040A7F000000000073 +:040A80000000000072 +:040A81000000000071 +:040A82000000000070 +:040A8300000000006F +:040A8400000000006E +:040A8500000000006D +:040A8600000000006C +:040A8700000000006B +:040A8800000000006A +:040A89000000000069 +:040A8A000000000068 +:040A8B000000000067 +:040A8C000000000066 +:040A8D000000000065 +:040A8E000000000064 +:040A8F000000000063 +:040A90000000000062 +:040A91000000000061 +:040A92000000000060 +:040A9300000000005F +:040A9400000000005E +:040A9500000000005D +:040A9600000000005C +:040A9700000000005B +:040A9800000000005A +:040A99000000000059 +:040A9A000000000058 +:040A9B000000000057 +:040A9C000000000056 +:040A9D000000000055 +:040A9E000000000054 +:040A9F000000000053 +:040AA0000000000052 +:040AA1000000000051 +:040AA2000000000050 +:040AA300000000004F +:040AA400000000004E +:040AA500000000004D +:040AA600000000004C +:040AA700000000004B +:040AA800000000004A +:040AA9000000000049 +:040AAA000000000048 +:040AAB000000000047 +:040AAC000000000046 +:040AAD000000000045 +:040AAE000000000044 +:040AAF000000000043 +:040AB0000000000042 +:040AB1000000000041 +:040AB2000000000040 +:040AB300000000003F +:040AB400000000003E +:040AB500000000003D +:040AB600000000003C +:040AB700000000003B +:040AB800000000003A +:040AB9000000000039 +:040ABA000000000038 +:040ABB000000000037 +:040ABC000000000036 +:040ABD000000000035 +:040ABE000000000034 +:040ABF000000000033 +:040AC0000000000032 +:040AC1000000000031 +:040AC2000000000030 +:040AC300000000002F +:040AC400000000002E +:040AC500000000002D +:040AC600000000002C +:040AC700000000002B +:040AC800000000002A +:040AC9000000000029 +:040ACA000000000028 +:040ACB000000000027 +:040ACC000000000026 +:040ACD000000000025 +:040ACE000000000024 +:040ACF000000000023 +:040AD0000000000022 +:040AD1000000000021 +:040AD2000000000020 +:040AD300000000001F +:040AD400000000001E +:040AD500000000001D +:040AD600000000001C +:040AD700000000001B +:040AD800000000001A +:040AD9000000000019 +:040ADA000000000018 +:040ADB000000000017 +:040ADC000000000016 +:040ADD000000000015 +:040ADE000000000014 +:040ADF000000000013 +:040AE0000000000012 +:040AE1000000000011 +:040AE2000000000010 +:040AE300000000000F +:040AE400000000000E +:040AE500000000000D +:040AE600000000000C +:040AE700000000000B +:040AE800000000000A +:040AE9000000000009 +:040AEA000000000008 +:040AEB000000000007 +:040AEC000000000006 +:040AED000000000005 +:040AEE000000000004 +:040AEF000000000003 +:040AF0000000000002 +:040AF1000000000001 +:040AF2000000000000 +:040AF30000000000FF +:040AF40000000000FE +:040AF50000000000FD +:040AF60000000000FC +:040AF70000000000FB +:040AF80000000000FA +:040AF90000000000F9 +:040AFA0000000000F8 +:040AFB0000000000F7 +:040AFC0000000000F6 +:040AFD0000000000F5 +:040AFE0000000000F4 +:040AFF0000000000F3 +:040B000000000000F1 +:040B010000000000F0 +:040B020000000000EF +:040B030000000000EE +:040B040000000000ED +:040B050000000000EC +:040B060000000000EB +:040B070000000000EA +:040B080000000000E9 +:040B090000000000E8 +:040B0A0000000000E7 +:040B0B0000000000E6 +:040B0C0000000000E5 +:040B0D0000000000E4 +:040B0E0000000000E3 +:040B0F0000000000E2 +:040B100000000000E1 +:040B110000000000E0 +:040B120000000000DF +:040B130000000000DE +:040B140000000000DD +:040B150000000000DC +:040B160000000000DB +:040B170000000000DA +:040B180000000000D9 +:040B190000000000D8 +:040B1A0000000000D7 +:040B1B0000000000D6 +:040B1C0000000000D5 +:040B1D0000000000D4 +:040B1E0000000000D3 +:040B1F0000000000D2 +:040B200000000000D1 +:040B210000000000D0 +:040B220000000000CF +:040B230000000000CE +:040B240000000000CD +:040B250000000000CC +:040B260000000000CB +:040B270000000000CA +:040B280000000000C9 +:040B290000000000C8 +:040B2A0000000000C7 +:040B2B0000000000C6 +:040B2C0000000000C5 +:040B2D0000000000C4 +:040B2E0000000000C3 +:040B2F0000000000C2 +:040B300000000000C1 +:040B310000000000C0 +:040B320000000000BF +:040B330000000000BE +:040B340000000000BD +:040B350000000000BC +:040B360000000000BB +:040B370000000000BA +:040B380000000000B9 +:040B390000000000B8 +:040B3A0000000000B7 +:040B3B0000000000B6 +:040B3C0000000000B5 +:040B3D0000000000B4 +:040B3E0000000000B3 +:040B3F0000000000B2 +:040B400000000000B1 +:040B410000000000B0 +:040B420000000000AF +:040B430000000000AE +:040B440000000000AD +:040B450000000000AC +:040B460000000000AB +:040B470000000000AA +:040B480000000000A9 +:040B490000000000A8 +:040B4A0000000000A7 +:040B4B0000000000A6 +:040B4C0000000000A5 +:040B4D0000000000A4 +:040B4E0000000000A3 +:040B4F0000000000A2 +:040B500000000000A1 +:040B510000000000A0 +:040B5200000000009F +:040B5300000000009E +:040B5400000000009D +:040B5500000000009C +:040B5600000000009B +:040B5700000000009A +:040B58000000000099 +:040B59000000000098 +:040B5A000000000097 +:040B5B000000000096 +:040B5C000000000095 +:040B5D000000000094 +:040B5E000000000093 +:040B5F000000000092 +:040B60000000000091 +:040B61000000000090 +:040B6200000000008F +:040B6300000000008E +:040B6400000000008D +:040B6500000000008C +:040B6600000000008B +:040B6700000000008A +:040B68000000000089 +:040B69000000000088 +:040B6A000000000087 +:040B6B000000000086 +:040B6C000000000085 +:040B6D000000000084 +:040B6E000000000083 +:040B6F000000000082 +:040B70000000000081 +:040B71000000000080 +:040B7200000000007F +:040B7300000000007E +:040B7400000000007D +:040B7500000000007C +:040B7600000000007B +:040B7700000000007A +:040B78000000000079 +:040B79000000000078 +:040B7A000000000077 +:040B7B000000000076 +:040B7C000000000075 +:040B7D000000000074 +:040B7E000000000073 +:040B7F000000000072 +:040B80000000000071 +:040B81000000000070 +:040B8200000000006F +:040B8300000000006E +:040B8400000000006D +:040B8500000000006C +:040B8600000000006B +:040B8700000000006A +:040B88000000000069 +:040B89000000000068 +:040B8A000000000067 +:040B8B000000000066 +:040B8C000000000065 +:040B8D000000000064 +:040B8E000000000063 +:040B8F000000000062 +:040B90000000000061 +:040B91000000000060 +:040B9200000000005F +:040B9300000000005E +:040B9400000000005D +:040B9500000000005C +:040B9600000000005B +:040B9700000000005A +:040B98000000000059 +:040B99000000000058 +:040B9A000000000057 +:040B9B000000000056 +:040B9C000000000055 +:040B9D000000000054 +:040B9E000000000053 +:040B9F000000000052 +:040BA0000000000051 +:040BA1000000000050 +:040BA200000000004F +:040BA300000000004E +:040BA400000000004D +:040BA500000000004C +:040BA600000000004B +:040BA700000000004A +:040BA8000000000049 +:040BA9000000000048 +:040BAA000000000047 +:040BAB000000000046 +:040BAC000000000045 +:040BAD000000000044 +:040BAE000000000043 +:040BAF000000000042 +:040BB0000000000041 +:040BB1000000000040 +:040BB200000000003F +:040BB300000000003E +:040BB400000000003D +:040BB500000000003C +:040BB600000000003B +:040BB700000000003A +:040BB8000000000039 +:040BB9000000000038 +:040BBA000000000037 +:040BBB000000000036 +:040BBC000000000035 +:040BBD000000000034 +:040BBE000000000033 +:040BBF000000000032 +:040BC0000000000031 +:040BC1000000000030 +:040BC200000000002F +:040BC300000000002E +:040BC400000000002D +:040BC500000000002C +:040BC600000000002B +:040BC700000000002A +:040BC8000000000029 +:040BC9000000000028 +:040BCA000000000027 +:040BCB000000000026 +:040BCC000000000025 +:040BCD000000000024 +:040BCE000000000023 +:040BCF000000000022 +:040BD0000000000021 +:040BD1000000000020 +:040BD200000000001F +:040BD300000000001E +:040BD400000000001D +:040BD500000000001C +:040BD600000000001B +:040BD700000000001A +:040BD8000000000019 +:040BD9000000000018 +:040BDA000000000017 +:040BDB000000000016 +:040BDC000000000015 +:040BDD000000000014 +:040BDE000000000013 +:040BDF000000000012 +:040BE0000000000011 +:040BE1000000000010 +:040BE200000000000F +:040BE300000000000E +:040BE400000000000D +:040BE500000000000C +:040BE600000000000B +:040BE700000000000A +:040BE8000000000009 +:040BE9000000000008 +:040BEA000000000007 +:040BEB000000000006 +:040BEC000000000005 +:040BED000000000004 +:040BEE000000000003 +:040BEF000000000002 +:040BF0000000000001 +:040BF1000000000000 +:040BF20000000000FF +:040BF30000000000FE +:040BF40000000000FD +:040BF50000000000FC +:040BF60000000000FB +:040BF70000000000FA +:040BF80000000000F9 +:040BF90000000000F8 +:040BFA0000000000F7 +:040BFB0000000000F6 +:040BFC0000000000F5 +:040BFD0000000000F4 +:040BFE0000000000F3 +:040BFF0000000000F2 +:040C000000000000F0 +:040C010000000000EF +:040C020000000000EE +:040C030000000000ED +:040C040000000000EC +:040C050000000000EB +:040C060000000000EA +:040C070000000000E9 +:040C080000000000E8 +:040C090000000000E7 +:040C0A0000000000E6 +:040C0B0000000000E5 +:040C0C0000000000E4 +:040C0D0000000000E3 +:040C0E0000000000E2 +:040C0F0000000000E1 +:040C100000000000E0 +:040C110000000000DF +:040C120000000000DE +:040C130000000000DD +:040C140000000000DC +:040C150000000000DB +:040C160000000000DA +:040C170000000000D9 +:040C180000000000D8 +:040C190000000000D7 +:040C1A0000000000D6 +:040C1B0000000000D5 +:040C1C0000000000D4 +:040C1D0000000000D3 +:040C1E0000000000D2 +:040C1F0000000000D1 +:040C200000000000D0 +:040C210000000000CF +:040C220000000000CE +:040C230000000000CD +:040C240000000000CC +:040C250000000000CB +:040C260000000000CA +:040C270000000000C9 +:040C280000000000C8 +:040C290000000000C7 +:040C2A0000000000C6 +:040C2B0000000000C5 +:040C2C0000000000C4 +:040C2D0000000000C3 +:040C2E0000000000C2 +:040C2F0000000000C1 +:040C300000000000C0 +:040C310000000000BF +:040C320000000000BE +:040C330000000000BD +:040C340000000000BC +:040C350000000000BB +:040C360000000000BA +:040C370000000000B9 +:040C380000000000B8 +:040C390000000000B7 +:040C3A0000000000B6 +:040C3B0000000000B5 +:040C3C0000000000B4 +:040C3D0000000000B3 +:040C3E0000000000B2 +:040C3F0000000000B1 +:040C400000000000B0 +:040C410000000000AF +:040C420000000000AE +:040C430000000000AD +:040C440000000000AC +:040C450000000000AB +:040C460000000000AA +:040C470000000000A9 +:040C480000000000A8 +:040C490000000000A7 +:040C4A0000000000A6 +:040C4B0000000000A5 +:040C4C0000000000A4 +:040C4D0000000000A3 +:040C4E0000000000A2 +:040C4F0000000000A1 +:040C500000000000A0 +:040C5100000000009F +:040C5200000000009E +:040C5300000000009D +:040C5400000000009C +:040C5500000000009B +:040C5600000000009A +:040C57000000000099 +:040C58000000000098 +:040C59000000000097 +:040C5A000000000096 +:040C5B000000000095 +:040C5C000000000094 +:040C5D000000000093 +:040C5E000000000092 +:040C5F000000000091 +:040C60000000000090 +:040C6100000000008F +:040C6200000000008E +:040C6300000000008D +:040C6400000000008C +:040C6500000000008B +:040C6600000000008A +:040C67000000000089 +:040C68000000000088 +:040C69000000000087 +:040C6A000000000086 +:040C6B000000000085 +:040C6C000000000084 +:040C6D000000000083 +:040C6E000000000082 +:040C6F000000000081 +:040C70000000000080 +:040C7100000000007F +:040C7200000000007E +:040C7300000000007D +:040C7400000000007C +:040C7500000000007B +:040C7600000000007A +:040C77000000000079 +:040C78000000000078 +:040C79000000000077 +:040C7A000000000076 +:040C7B000000000075 +:040C7C000000000074 +:040C7D000000000073 +:040C7E000000000072 +:040C7F000000000071 +:040C80000000000070 +:040C8100000000006F +:040C8200000000006E +:040C8300000000006D +:040C8400000000006C +:040C8500000000006B +:040C8600000000006A +:040C87000000000069 +:040C88000000000068 +:040C89000000000067 +:040C8A000000000066 +:040C8B000000000065 +:040C8C000000000064 +:040C8D000000000063 +:040C8E000000000062 +:040C8F000000000061 +:040C90000000000060 +:040C9100000000005F +:040C9200000000005E +:040C9300000000005D +:040C9400000000005C +:040C9500000000005B +:040C9600000000005A +:040C97000000000059 +:040C98000000000058 +:040C99000000000057 +:040C9A000000000056 +:040C9B000000000055 +:040C9C000000000054 +:040C9D000000000053 +:040C9E000000000052 +:040C9F000000000051 +:040CA0000000000050 +:040CA100000000004F +:040CA200000000004E +:040CA300000000004D +:040CA400000000004C +:040CA500000000004B +:040CA600000000004A +:040CA7000000000049 +:040CA8000000000048 +:040CA9000000000047 +:040CAA000000000046 +:040CAB000000000045 +:040CAC000000000044 +:040CAD000000000043 +:040CAE000000000042 +:040CAF000000000041 +:040CB0000000000040 +:040CB100000000003F +:040CB200000000003E +:040CB300000000003D +:040CB400000000003C +:040CB500000000003B +:040CB600000000003A +:040CB7000000000039 +:040CB8000000000038 +:040CB9000000000037 +:040CBA000000000036 +:040CBB000000000035 +:040CBC000000000034 +:040CBD000000000033 +:040CBE000000000032 +:040CBF000000000031 +:040CC0000000000030 +:040CC100000000002F +:040CC200000000002E +:040CC300000000002D +:040CC400000000002C +:040CC500000000002B +:040CC600000000002A +:040CC7000000000029 +:040CC8000000000028 +:040CC9000000000027 +:040CCA000000000026 +:040CCB000000000025 +:040CCC000000000024 +:040CCD000000000023 +:040CCE000000000022 +:040CCF000000000021 +:040CD0000000000020 +:040CD100000000001F +:040CD200000000001E +:040CD300000000001D +:040CD400000000001C +:040CD500000000001B +:040CD600000000001A +:040CD7000000000019 +:040CD8000000000018 +:040CD9000000000017 +:040CDA000000000016 +:040CDB000000000015 +:040CDC000000000014 +:040CDD000000000013 +:040CDE000000000012 +:040CDF000000000011 +:040CE0000000000010 +:040CE100000000000F +:040CE200000000000E +:040CE300000000000D +:040CE400000000000C +:040CE500000000000B +:040CE600000000000A +:040CE7000000000009 +:040CE8000000000008 +:040CE9000000000007 +:040CEA000000000006 +:040CEB000000000005 +:040CEC000000000004 +:040CED000000000003 +:040CEE000000000002 +:040CEF000000000001 +:040CF0000000000000 +:040CF10000000000FF +:040CF20000000000FE +:040CF30000000000FD +:040CF40000000000FC +:040CF50000000000FB +:040CF60000000000FA +:040CF70000000000F9 +:040CF80000000000F8 +:040CF90000000000F7 +:040CFA0000000000F6 +:040CFB0000000000F5 +:040CFC0000000000F4 +:040CFD0000000000F3 +:040CFE0000000000F2 +:040CFF0000000000F1 +:040D000000000000EF +:040D010000000000EE +:040D020000000000ED +:040D030000000000EC +:040D040000000000EB +:040D050000000000EA +:040D060000000000E9 +:040D070000000000E8 +:040D080000000000E7 +:040D090000000000E6 +:040D0A0000000000E5 +:040D0B0000000000E4 +:040D0C0000000000E3 +:040D0D0000000000E2 +:040D0E0000000000E1 +:040D0F0000000000E0 +:040D100000000000DF +:040D110000000000DE +:040D120000000000DD +:040D130000000000DC +:040D140000000000DB +:040D150000000000DA +:040D160000000000D9 +:040D170000000000D8 +:040D180000000000D7 +:040D190000000000D6 +:040D1A0000000000D5 +:040D1B0000000000D4 +:040D1C0000000000D3 +:040D1D0000000000D2 +:040D1E0000000000D1 +:040D1F0000000000D0 +:040D200000000000CF +:040D210000000000CE +:040D220000000000CD +:040D230000000000CC +:040D240000000000CB +:040D250000000000CA +:040D260000000000C9 +:040D270000000000C8 +:040D280000000000C7 +:040D290000000000C6 +:040D2A0000000000C5 +:040D2B0000000000C4 +:040D2C0000000000C3 +:040D2D0000000000C2 +:040D2E0000000000C1 +:040D2F0000000000C0 +:040D300000000000BF +:040D310000000000BE +:040D320000000000BD +:040D330000000000BC +:040D340000000000BB +:040D350000000000BA +:040D360000000000B9 +:040D370000000000B8 +:040D380000000000B7 +:040D390000000000B6 +:040D3A0000000000B5 +:040D3B0000000000B4 +:040D3C0000000000B3 +:040D3D0000000000B2 +:040D3E0000000000B1 +:040D3F0000000000B0 +:040D400000000000AF +:040D410000000000AE +:040D420000000000AD +:040D430000000000AC +:040D440000000000AB +:040D450000000000AA +:040D460000000000A9 +:040D470000000000A8 +:040D480000000000A7 +:040D490000000000A6 +:040D4A0000000000A5 +:040D4B0000000000A4 +:040D4C0000000000A3 +:040D4D0000000000A2 +:040D4E0000000000A1 +:040D4F0000000000A0 +:040D5000000000009F +:040D5100000000009E +:040D5200000000009D +:040D5300000000009C +:040D5400000000009B +:040D5500000000009A +:040D56000000000099 +:040D57000000000098 +:040D58000000000097 +:040D59000000000096 +:040D5A000000000095 +:040D5B000000000094 +:040D5C000000000093 +:040D5D000000000092 +:040D5E000000000091 +:040D5F000000000090 +:040D6000000000008F +:040D6100000000008E +:040D6200000000008D +:040D6300000000008C +:040D6400000000008B +:040D6500000000008A +:040D66000000000089 +:040D67000000000088 +:040D68000000000087 +:040D69000000000086 +:040D6A000000000085 +:040D6B000000000084 +:040D6C000000000083 +:040D6D000000000082 +:040D6E000000000081 +:040D6F000000000080 +:040D7000000000007F +:040D7100000000007E +:040D7200000000007D +:040D7300000000007C +:040D7400000000007B +:040D7500000000007A +:040D76000000000079 +:040D77000000000078 +:040D78000000000077 +:040D79000000000076 +:040D7A000000000075 +:040D7B000000000074 +:040D7C000000000073 +:040D7D000000000072 +:040D7E000000000071 +:040D7F000000000070 +:040D8000000000006F +:040D8100000000006E +:040D8200000000006D +:040D8300000000006C +:040D8400000000006B +:040D8500000000006A +:040D86000000000069 +:040D87000000000068 +:040D88000000000067 +:040D89000000000066 +:040D8A000000000065 +:040D8B000000000064 +:040D8C000000000063 +:040D8D000000000062 +:040D8E000000000061 +:040D8F000000000060 +:040D9000000000005F +:040D9100000000005E +:040D9200000000005D +:040D9300000000005C +:040D9400000000005B +:040D9500000000005A +:040D96000000000059 +:040D97000000000058 +:040D98000000000057 +:040D99000000000056 +:040D9A000000000055 +:040D9B000000000054 +:040D9C000000000053 +:040D9D000000000052 +:040D9E000000000051 +:040D9F000000000050 +:040DA000000000004F +:040DA100000000004E +:040DA200000000004D +:040DA300000000004C +:040DA400000000004B +:040DA500000000004A +:040DA6000000000049 +:040DA7000000000048 +:040DA8000000000047 +:040DA9000000000046 +:040DAA000000000045 +:040DAB000000000044 +:040DAC000000000043 +:040DAD000000000042 +:040DAE000000000041 +:040DAF000000000040 +:040DB000000000003F +:040DB100000000003E +:040DB200000000003D +:040DB300000000003C +:040DB400000000003B +:040DB500000000003A +:040DB6000000000039 +:040DB7000000000038 +:040DB8000000000037 +:040DB9000000000036 +:040DBA000000000035 +:040DBB000000000034 +:040DBC000000000033 +:040DBD000000000032 +:040DBE000000000031 +:040DBF000000000030 +:040DC000000000002F +:040DC100000000002E +:040DC200000000002D +:040DC300000000002C +:040DC400000000002B +:040DC500000000002A +:040DC6000000000029 +:040DC7000000000028 +:040DC8000000000027 +:040DC9000000000026 +:040DCA000000000025 +:040DCB000000000024 +:040DCC000000000023 +:040DCD000000000022 +:040DCE000000000021 +:040DCF000000000020 +:040DD000000000001F +:040DD100000000001E +:040DD200000000001D +:040DD300000000001C +:040DD400000000001B +:040DD500000000001A +:040DD6000000000019 +:040DD7000000000018 +:040DD8000000000017 +:040DD9000000000016 +:040DDA000000000015 +:040DDB000000000014 +:040DDC000000000013 +:040DDD000000000012 +:040DDE000000000011 +:040DDF000000000010 +:040DE000000000000F +:040DE100000000000E +:040DE200000000000D +:040DE300000000000C +:040DE400000000000B +:040DE500000000000A +:040DE6000000000009 +:040DE7000000000008 +:040DE8000000000007 +:040DE9000000000006 +:040DEA000000000005 +:040DEB000000000004 +:040DEC000000000003 +:040DED000000000002 +:040DEE000000000001 +:040DEF000000000000 +:040DF00000000000FF +:040DF10000000000FE +:040DF20000000000FD +:040DF30000000000FC +:040DF40000000000FB +:040DF50000000000FA +:040DF60000000000F9 +:040DF70000000000F8 +:040DF80000000000F7 +:040DF90000000000F6 +:040DFA0000000000F5 +:040DFB0000000000F4 +:040DFC0000000000F3 +:040DFD0000000000F2 +:040DFE0000000000F1 +:040DFF0000000000F0 +:040E000000000000EE +:040E010000000000ED +:040E020000000000EC +:040E030000000000EB +:040E040000000000EA +:040E050000000000E9 +:040E060000000000E8 +:040E070000000000E7 +:040E080000000000E6 +:040E090000000000E5 +:040E0A0000000000E4 +:040E0B0000000000E3 +:040E0C0000000000E2 +:040E0D0000000000E1 +:040E0E0000000000E0 +:040E0F0000000000DF +:040E100000000000DE +:040E110000000000DD +:040E120000000000DC +:040E130000000000DB +:040E140000000000DA +:040E150000000000D9 +:040E160000000000D8 +:040E170000000000D7 +:040E180000000000D6 +:040E190000000000D5 +:040E1A0000000000D4 +:040E1B0000000000D3 +:040E1C0000000000D2 +:040E1D0000000000D1 +:040E1E0000000000D0 +:040E1F0000000000CF +:040E200000000000CE +:040E210000000000CD +:040E220000000000CC +:040E230000000000CB +:040E240000000000CA +:040E250000000000C9 +:040E260000000000C8 +:040E270000000000C7 +:040E280000000000C6 +:040E290000000000C5 +:040E2A0000000000C4 +:040E2B0000000000C3 +:040E2C0000000000C2 +:040E2D0000000000C1 +:040E2E0000000000C0 +:040E2F0000000000BF +:040E300000000000BE +:040E310000000000BD +:040E320000000000BC +:040E330000000000BB +:040E340000000000BA +:040E350000000000B9 +:040E360000000000B8 +:040E370000000000B7 +:040E380000000000B6 +:040E390000000000B5 +:040E3A0000000000B4 +:040E3B0000000000B3 +:040E3C0000000000B2 +:040E3D0000000000B1 +:040E3E0000000000B0 +:040E3F0000000000AF +:040E400000000000AE +:040E410000000000AD +:040E420000000000AC +:040E430000000000AB +:040E440000000000AA +:040E450000000000A9 +:040E460000000000A8 +:040E470000000000A7 +:040E480000000000A6 +:040E490000000000A5 +:040E4A0000000000A4 +:040E4B0000000000A3 +:040E4C0000000000A2 +:040E4D0000000000A1 +:040E4E0000000000A0 +:040E4F00000000009F +:040E5000000000009E +:040E5100000000009D +:040E5200000000009C +:040E5300000000009B +:040E5400000000009A +:040E55000000000099 +:040E56000000000098 +:040E57000000000097 +:040E58000000000096 +:040E59000000000095 +:040E5A000000000094 +:040E5B000000000093 +:040E5C000000000092 +:040E5D000000000091 +:040E5E000000000090 +:040E5F00000000008F +:040E6000000000008E +:040E6100000000008D +:040E6200000000008C +:040E6300000000008B +:040E6400000000008A +:040E65000000000089 +:040E66000000000088 +:040E67000000000087 +:040E68000000000086 +:040E69000000000085 +:040E6A000000000084 +:040E6B000000000083 +:040E6C000000000082 +:040E6D000000000081 +:040E6E000000000080 +:040E6F00000000007F +:040E7000000000007E +:040E7100000000007D +:040E7200000000007C +:040E7300000000007B +:040E7400000000007A +:040E75000000000079 +:040E76000000000078 +:040E77000000000077 +:040E78000000000076 +:040E79000000000075 +:040E7A000000000074 +:040E7B000000000073 +:040E7C000000000072 +:040E7D000000000071 +:040E7E000000000070 +:040E7F00000000006F +:040E8000000000006E +:040E8100000000006D +:040E8200000000006C +:040E8300000000006B +:040E8400000000006A +:040E85000000000069 +:040E86000000000068 +:040E87000000000067 +:040E88000000000066 +:040E89000000000065 +:040E8A000000000064 +:040E8B000000000063 +:040E8C000000000062 +:040E8D000000000061 +:040E8E000000000060 +:040E8F00000000005F +:040E9000000000005E +:040E9100000000005D +:040E9200000000005C +:040E9300000000005B +:040E9400000000005A +:040E95000000000059 +:040E96000000000058 +:040E97000000000057 +:040E98000000000056 +:040E99000000000055 +:040E9A000000000054 +:040E9B000000000053 +:040E9C000000000052 +:040E9D000000000051 +:040E9E000000000050 +:040E9F00000000004F +:040EA000000000004E +:040EA100000000004D +:040EA200000000004C +:040EA300000000004B +:040EA400000000004A +:040EA5000000000049 +:040EA6000000000048 +:040EA7000000000047 +:040EA8000000000046 +:040EA9000000000045 +:040EAA000000000044 +:040EAB000000000043 +:040EAC000000000042 +:040EAD000000000041 +:040EAE000000000040 +:040EAF00000000003F +:040EB000000000003E +:040EB100000000003D +:040EB200000000003C +:040EB300000000003B +:040EB400000000003A +:040EB5000000000039 +:040EB6000000000038 +:040EB7000000000037 +:040EB8000000000036 +:040EB9000000000035 +:040EBA000000000034 +:040EBB000000000033 +:040EBC000000000032 +:040EBD000000000031 +:040EBE000000000030 +:040EBF00000000002F +:040EC000000000002E +:040EC100000000002D +:040EC200000000002C +:040EC300000000002B +:040EC400000000002A +:040EC5000000000029 +:040EC6000000000028 +:040EC7000000000027 +:040EC8000000000026 +:040EC9000000000025 +:040ECA000000000024 +:040ECB000000000023 +:040ECC000000000022 +:040ECD000000000021 +:040ECE000000000020 +:040ECF00000000001F +:040ED000000000001E +:040ED100000000001D +:040ED200000000001C +:040ED300000000001B +:040ED400000000001A +:040ED5000000000019 +:040ED6000000000018 +:040ED7000000000017 +:040ED8000000000016 +:040ED9000000000015 +:040EDA000000000014 +:040EDB000000000013 +:040EDC000000000012 +:040EDD000000000011 +:040EDE000000000010 +:040EDF00000000000F +:040EE000000000000E +:040EE100000000000D +:040EE200000000000C +:040EE300000000000B +:040EE400000000000A +:040EE5000000000009 +:040EE6000000000008 +:040EE7000000000007 +:040EE8000000000006 +:040EE9000000000005 +:040EEA000000000004 +:040EEB000000000003 +:040EEC000000000002 +:040EED000000000001 +:040EEE000000000000 +:040EEF0000000000FF +:040EF00000000000FE +:040EF10000000000FD +:040EF20000000000FC +:040EF30000000000FB +:040EF40000000000FA +:040EF50000000000F9 +:040EF60000000000F8 +:040EF70000000000F7 +:040EF80000000000F6 +:040EF90000000000F5 +:040EFA0000000000F4 +:040EFB0000000000F3 +:040EFC0000000000F2 +:040EFD0000000000F1 +:040EFE0000000000F0 +:040EFF0000000000EF +:040F000000000000ED +:040F010000000000EC +:040F020000000000EB +:040F030000000000EA +:040F040000000000E9 +:040F050000000000E8 +:040F060000000000E7 +:040F070000000000E6 +:040F080000000000E5 +:040F090000000000E4 +:040F0A0000000000E3 +:040F0B0000000000E2 +:040F0C0000000000E1 +:040F0D0000000000E0 +:040F0E0000000000DF +:040F0F0000000000DE +:040F100000000000DD +:040F110000000000DC +:040F120000000000DB +:040F130000000000DA +:040F140000000000D9 +:040F150000000000D8 +:040F160000000000D7 +:040F170000000000D6 +:040F180000000000D5 +:040F190000000000D4 +:040F1A0000000000D3 +:040F1B0000000000D2 +:040F1C0000000000D1 +:040F1D0000000000D0 +:040F1E0000000000CF +:040F1F0000000000CE +:040F200000000000CD +:040F210000000000CC +:040F220000000000CB +:040F230000000000CA +:040F240000000000C9 +:040F250000000000C8 +:040F260000000000C7 +:040F270000000000C6 +:040F280000000000C5 +:040F290000000000C4 +:040F2A0000000000C3 +:040F2B0000000000C2 +:040F2C0000000000C1 +:040F2D0000000000C0 +:040F2E0000000000BF +:040F2F0000000000BE +:040F300000000000BD +:040F310000000000BC +:040F320000000000BB +:040F330000000000BA +:040F340000000000B9 +:040F350000000000B8 +:040F360000000000B7 +:040F370000000000B6 +:040F380000000000B5 +:040F390000000000B4 +:040F3A0000000000B3 +:040F3B0000000000B2 +:040F3C0000000000B1 +:040F3D0000000000B0 +:040F3E0000000000AF +:040F3F0000000000AE +:040F400000000000AD +:040F410000000000AC +:040F420000000000AB +:040F430000000000AA +:040F440000000000A9 +:040F450000000000A8 +:040F460000000000A7 +:040F470000000000A6 +:040F480000000000A5 +:040F490000000000A4 +:040F4A0000000000A3 +:040F4B0000000000A2 +:040F4C0000000000A1 +:040F4D0000000000A0 +:040F4E00000000009F +:040F4F00000000009E +:040F5000000000009D +:040F5100000000009C +:040F5200000000009B +:040F5300000000009A +:040F54000000000099 +:040F55000000000098 +:040F56000000000097 +:040F57000000000096 +:040F58000000000095 +:040F59000000000094 +:040F5A000000000093 +:040F5B000000000092 +:040F5C000000000091 +:040F5D000000000090 +:040F5E00000000008F +:040F5F00000000008E +:040F6000000000008D +:040F6100000000008C +:040F6200000000008B +:040F6300000000008A +:040F64000000000089 +:040F65000000000088 +:040F66000000000087 +:040F67000000000086 +:040F68000000000085 +:040F69000000000084 +:040F6A000000000083 +:040F6B000000000082 +:040F6C000000000081 +:040F6D000000000080 +:040F6E00000000007F +:040F6F00000000007E +:040F7000000000007D +:040F7100000000007C +:040F7200000000007B +:040F7300000000007A +:040F74000000000079 +:040F75000000000078 +:040F76000000000077 +:040F77000000000076 +:040F78000000000075 +:040F79000000000074 +:040F7A000000000073 +:040F7B000000000072 +:040F7C000000000071 +:040F7D000000000070 +:040F7E00000000006F +:040F7F00000000006E +:040F8000000000006D +:040F8100000000006C +:040F8200000000006B +:040F8300000000006A +:040F84000000000069 +:040F85000000000068 +:040F86000000000067 +:040F87000000000066 +:040F88000000000065 +:040F89000000000064 +:040F8A000000000063 +:040F8B000000000062 +:040F8C000000000061 +:040F8D000000000060 +:040F8E00000000005F +:040F8F00000000005E +:040F9000000000005D +:040F9100000000005C +:040F9200000000005B +:040F9300000000005A +:040F94000000000059 +:040F95000000000058 +:040F96000000000057 +:040F97000000000056 +:040F98000000000055 +:040F99000000000054 +:040F9A000000000053 +:040F9B000000000052 +:040F9C000000000051 +:040F9D000000000050 +:040F9E00000000004F +:040F9F00000000004E +:040FA000000000004D +:040FA100000000004C +:040FA200000000004B +:040FA300000000004A +:040FA4000000000049 +:040FA5000000000048 +:040FA6000000000047 +:040FA7000000000046 +:040FA8000000000045 +:040FA9000000000044 +:040FAA000000000043 +:040FAB000000000042 +:040FAC000000000041 +:040FAD000000000040 +:040FAE00000000003F +:040FAF00000000003E +:040FB000000000003D +:040FB100000000003C +:040FB200000000003B +:040FB300000000003A +:040FB4000000000039 +:040FB5000000000038 +:040FB6000000000037 +:040FB7000000000036 +:040FB8000000000035 +:040FB9000000000034 +:040FBA000000000033 +:040FBB000000000032 +:040FBC000000000031 +:040FBD000000000030 +:040FBE00000000002F +:040FBF00000000002E +:040FC000000000002D +:040FC100000000002C +:040FC200000000002B +:040FC300000000002A +:040FC4000000000029 +:040FC5000000000028 +:040FC6000000000027 +:040FC7000000000026 +:040FC8000000000025 +:040FC9000000000024 +:040FCA000000000023 +:040FCB000000000022 +:040FCC000000000021 +:040FCD000000000020 +:040FCE00000000001F +:040FCF00000000001E +:040FD000000000001D +:040FD100000000001C +:040FD200000000001B +:040FD300000000001A +:040FD4000000000019 +:040FD5000000000018 +:040FD6000000000017 +:040FD7000000000016 +:040FD8000000000015 +:040FD9000000000014 +:040FDA000000000013 +:040FDB000000000012 +:040FDC000000000011 +:040FDD000000000010 +:040FDE00000000000F +:040FDF00000000000E +:040FE000000000000D +:040FE100000000000C +:040FE200000000000B +:040FE300000000000A +:040FE4000000000009 +:040FE5000000000008 +:040FE6000000000007 +:040FE7000000000006 +:040FE8000000000005 +:040FE9000000000004 +:040FEA000000000003 +:040FEB000000000002 +:040FEC000000000001 +:040FED000000000000 +:040FEE0000000000FF +:040FEF0000000000FE +:040FF00000000000FD +:040FF10000000000FC +:040FF20000000000FB +:040FF30000000000FA +:040FF40000000000F9 +:040FF50000000000F8 +:040FF60000000000F7 +:040FF70000000000F6 +:040FF80000000000F5 +:040FF90000000000F4 +:040FFA0000000000F3 +:040FFB0000000000F2 +:040FFC0000000000F1 +:040FFD0000000000F0 +:040FFE0000000000EF +:040FFF0000000000EE +:0410000000000000EC +:0410010000000000EB +:0410020000000000EA +:0410030000000000E9 +:0410040000000000E8 +:0410050000000000E7 +:0410060000000000E6 +:0410070000000000E5 +:0410080000000000E4 +:0410090000000000E3 +:04100A0000000000E2 +:04100B0000000000E1 +:04100C0000000000E0 +:04100D0000000000DF +:04100E0000000000DE +:04100F0000000000DD +:0410100000000000DC +:0410110000000000DB +:0410120000000000DA +:0410130000000000D9 +:0410140000000000D8 +:0410150000000000D7 +:0410160000000000D6 +:0410170000000000D5 +:0410180000000000D4 +:0410190000000000D3 +:04101A0000000000D2 +:04101B0000000000D1 +:04101C0000000000D0 +:04101D0000000000CF +:04101E0000000000CE +:04101F0000000000CD +:0410200000000000CC +:0410210000000000CB +:0410220000000000CA +:0410230000000000C9 +:0410240000000000C8 +:0410250000000000C7 +:0410260000000000C6 +:0410270000000000C5 +:0410280000000000C4 +:0410290000000000C3 +:04102A0000000000C2 +:04102B0000000000C1 +:04102C0000000000C0 +:04102D0000000000BF +:04102E0000000000BE +:04102F0000000000BD +:0410300000000000BC +:0410310000000000BB +:0410320000000000BA +:0410330000000000B9 +:0410340000000000B8 +:0410350000000000B7 +:0410360000000000B6 +:0410370000000000B5 +:0410380000000000B4 +:0410390000000000B3 +:04103A0000000000B2 +:04103B0000000000B1 +:04103C0000000000B0 +:04103D0000000000AF +:04103E0000000000AE +:04103F0000000000AD +:0410400000000000AC +:0410410000000000AB +:0410420000000000AA +:0410430000000000A9 +:0410440000000000A8 +:0410450000000000A7 +:0410460000000000A6 +:0410470000000000A5 +:0410480000000000A4 +:0410490000000000A3 +:04104A0000000000A2 +:04104B0000000000A1 +:04104C0000000000A0 +:04104D00000000009F +:04104E00000000009E +:04104F00000000009D +:04105000000000009C +:04105100000000009B +:04105200000000009A +:041053000000000099 +:041054000000000098 +:041055000000000097 +:041056000000000096 +:041057000000000095 +:041058000000000094 +:041059000000000093 +:04105A000000000092 +:04105B000000000091 +:04105C000000000090 +:04105D00000000008F +:04105E00000000008E +:04105F00000000008D +:04106000000000008C +:04106100000000008B +:04106200000000008A +:041063000000000089 +:041064000000000088 +:041065000000000087 +:041066000000000086 +:041067000000000085 +:041068000000000084 +:041069000000000083 +:04106A000000000082 +:04106B000000000081 +:04106C000000000080 +:04106D00000000007F +:04106E00000000007E +:04106F00000000007D +:04107000000000007C +:04107100000000007B +:04107200000000007A +:041073000000000079 +:041074000000000078 +:041075000000000077 +:041076000000000076 +:041077000000000075 +:041078000000000074 +:041079000000000073 +:04107A000000000072 +:04107B000000000071 +:04107C000000000070 +:04107D00000000006F +:04107E00000000006E +:04107F00000000006D +:04108000000000006C +:04108100000000006B +:04108200000000006A +:041083000000000069 +:041084000000000068 +:041085000000000067 +:041086000000000066 +:041087000000000065 +:041088000000000064 +:041089000000000063 +:04108A000000000062 +:04108B000000000061 +:04108C000000000060 +:04108D00000000005F +:04108E00000000005E +:04108F00000000005D +:04109000000000005C +:04109100000000005B +:04109200000000005A +:041093000000000059 +:041094000000000058 +:041095000000000057 +:041096000000000056 +:041097000000000055 +:041098000000000054 +:041099000000000053 +:04109A000000000052 +:04109B000000000051 +:04109C000000000050 +:04109D00000000004F +:04109E00000000004E +:04109F00000000004D +:0410A000000000004C +:0410A100000000004B +:0410A200000000004A +:0410A3000000000049 +:0410A4000000000048 +:0410A5000000000047 +:0410A6000000000046 +:0410A7000000000045 +:0410A8000000000044 +:0410A9000000000043 +:0410AA000000000042 +:0410AB000000000041 +:0410AC000000000040 +:0410AD00000000003F +:0410AE00000000003E +:0410AF00000000003D +:0410B000000000003C +:0410B100000000003B +:0410B200000000003A +:0410B3000000000039 +:0410B4000000000038 +:0410B5000000000037 +:0410B6000000000036 +:0410B7000000000035 +:0410B8000000000034 +:0410B9000000000033 +:0410BA000000000032 +:0410BB000000000031 +:0410BC000000000030 +:0410BD00000000002F +:0410BE00000000002E +:0410BF00000000002D +:0410C000000000002C +:0410C100000000002B +:0410C200000000002A +:0410C3000000000029 +:0410C4000000000028 +:0410C5000000000027 +:0410C6000000000026 +:0410C7000000000025 +:0410C8000000000024 +:0410C9000000000023 +:0410CA000000000022 +:0410CB000000000021 +:0410CC000000000020 +:0410CD00000000001F +:0410CE00000000001E +:0410CF00000000001D +:0410D000000000001C +:0410D100000000001B +:0410D200000000001A +:0410D3000000000019 +:0410D4000000000018 +:0410D5000000000017 +:0410D6000000000016 +:0410D7000000000015 +:0410D8000000000014 +:0410D9000000000013 +:0410DA000000000012 +:0410DB000000000011 +:0410DC000000000010 +:0410DD00000000000F +:0410DE00000000000E +:0410DF00000000000D +:0410E000000000000C +:0410E100000000000B +:0410E200000000000A +:0410E3000000000009 +:0410E4000000000008 +:0410E5000000000007 +:0410E6000000000006 +:0410E7000000000005 +:0410E8000000000004 +:0410E9000000000003 +:0410EA000000000002 +:0410EB000000000001 +:0410EC000000000000 +:0410ED0000000000FF +:0410EE0000000000FE +:0410EF0000000000FD +:0410F00000000000FC +:0410F10000000000FB +:0410F20000000000FA +:0410F30000000000F9 +:0410F40000000000F8 +:0410F50000000000F7 +:0410F60000000000F6 +:0410F70000000000F5 +:0410F80000000000F4 +:0410F90000000000F3 +:0410FA0000000000F2 +:0410FB0000000000F1 +:0410FC0000000000F0 +:0410FD0000000000EF +:0410FE0000000000EE +:0410FF0000000000ED +:0411000000000000EB +:0411010000000000EA +:0411020000000000E9 +:0411030000000000E8 +:0411040000000000E7 +:0411050000000000E6 +:0411060000000000E5 +:0411070000000000E4 +:0411080000000000E3 +:0411090000000000E2 +:04110A0000000000E1 +:04110B0000000000E0 +:04110C0000000000DF +:04110D0000000000DE +:04110E0000000000DD +:04110F0000000000DC +:0411100000000000DB +:0411110000000000DA +:0411120000000000D9 +:0411130000000000D8 +:0411140000000000D7 +:0411150000000000D6 +:0411160000000000D5 +:0411170000000000D4 +:0411180000000000D3 +:0411190000000000D2 +:04111A0000000000D1 +:04111B0000000000D0 +:04111C0000000000CF +:04111D0000000000CE +:04111E0000000000CD +:04111F0000000000CC +:0411200000000000CB +:0411210000000000CA +:0411220000000000C9 +:0411230000000000C8 +:0411240000000000C7 +:0411250000000000C6 +:0411260000000000C5 +:0411270000000000C4 +:0411280000000000C3 +:0411290000000000C2 +:04112A0000000000C1 +:04112B0000000000C0 +:04112C0000000000BF +:04112D0000000000BE +:04112E0000000000BD +:04112F0000000000BC +:0411300000000000BB +:0411310000000000BA +:0411320000000000B9 +:0411330000000000B8 +:0411340000000000B7 +:0411350000000000B6 +:0411360000000000B5 +:0411370000000000B4 +:0411380000000000B3 +:0411390000000000B2 +:04113A0000000000B1 +:04113B0000000000B0 +:04113C0000000000AF +:04113D0000000000AE +:04113E0000000000AD +:04113F0000000000AC +:0411400000000000AB +:0411410000000000AA +:0411420000000000A9 +:0411430000000000A8 +:0411440000000000A7 +:0411450000000000A6 +:0411460000000000A5 +:0411470000000000A4 +:0411480000000000A3 +:0411490000000000A2 +:04114A0000000000A1 +:04114B0000000000A0 +:04114C00000000009F +:04114D00000000009E +:04114E00000000009D +:04114F00000000009C +:04115000000000009B +:04115100000000009A +:041152000000000099 +:041153000000000098 +:041154000000000097 +:041155000000000096 +:041156000000000095 +:041157000000000094 +:041158000000000093 +:041159000000000092 +:04115A000000000091 +:04115B000000000090 +:04115C00000000008F +:04115D00000000008E +:04115E00000000008D +:04115F00000000008C +:04116000000000008B +:04116100000000008A +:041162000000000089 +:041163000000000088 +:041164000000000087 +:041165000000000086 +:041166000000000085 +:041167000000000084 +:041168000000000083 +:041169000000000082 +:04116A000000000081 +:04116B000000000080 +:04116C00000000007F +:04116D00000000007E +:04116E00000000007D +:04116F00000000007C +:04117000000000007B +:04117100000000007A +:041172000000000079 +:041173000000000078 +:041174000000000077 +:041175000000000076 +:041176000000000075 +:041177000000000074 +:041178000000000073 +:041179000000000072 +:04117A000000000071 +:04117B000000000070 +:04117C00000000006F +:04117D00000000006E +:04117E00000000006D +:04117F00000000006C +:04118000000000006B +:04118100000000006A +:041182000000000069 +:041183000000000068 +:041184000000000067 +:041185000000000066 +:041186000000000065 +:041187000000000064 +:041188000000000063 +:041189000000000062 +:04118A000000000061 +:04118B000000000060 +:04118C00000000005F +:04118D00000000005E +:04118E00000000005D +:04118F00000000005C +:04119000000000005B +:04119100000000005A +:041192000000000059 +:041193000000000058 +:041194000000000057 +:041195000000000056 +:041196000000000055 +:041197000000000054 +:041198000000000053 +:041199000000000052 +:04119A000000000051 +:04119B000000000050 +:04119C00000000004F +:04119D00000000004E +:04119E00000000004D +:04119F00000000004C +:0411A000000000004B +:0411A100000000004A +:0411A2000000000049 +:0411A3000000000048 +:0411A4000000000047 +:0411A5000000000046 +:0411A6000000000045 +:0411A7000000000044 +:0411A8000000000043 +:0411A9000000000042 +:0411AA000000000041 +:0411AB000000000040 +:0411AC00000000003F +:0411AD00000000003E +:0411AE00000000003D +:0411AF00000000003C +:0411B000000000003B +:0411B100000000003A +:0411B2000000000039 +:0411B3000000000038 +:0411B4000000000037 +:0411B5000000000036 +:0411B6000000000035 +:0411B7000000000034 +:0411B8000000000033 +:0411B9000000000032 +:0411BA000000000031 +:0411BB000000000030 +:0411BC00000000002F +:0411BD00000000002E +:0411BE00000000002D +:0411BF00000000002C +:0411C000000000002B +:0411C100000000002A +:0411C2000000000029 +:0411C3000000000028 +:0411C4000000000027 +:0411C5000000000026 +:0411C6000000000025 +:0411C7000000000024 +:0411C8000000000023 +:0411C9000000000022 +:0411CA000000000021 +:0411CB000000000020 +:0411CC00000000001F +:0411CD00000000001E +:0411CE00000000001D +:0411CF00000000001C +:0411D000000000001B +:0411D100000000001A +:0411D2000000000019 +:0411D3000000000018 +:0411D4000000000017 +:0411D5000000000016 +:0411D6000000000015 +:0411D7000000000014 +:0411D8000000000013 +:0411D9000000000012 +:0411DA000000000011 +:0411DB000000000010 +:0411DC00000000000F +:0411DD00000000000E +:0411DE00000000000D +:0411DF00000000000C +:0411E000000000000B +:0411E100000000000A +:0411E2000000000009 +:0411E3000000000008 +:0411E4000000000007 +:0411E5000000000006 +:0411E6000000000005 +:0411E7000000000004 +:0411E8000000000003 +:0411E9000000000002 +:0411EA000000000001 +:0411EB000000000000 +:0411EC0000000000FF +:0411ED0000000000FE +:0411EE0000000000FD +:0411EF0000000000FC +:0411F00000000000FB +:0411F10000000000FA +:0411F20000000000F9 +:0411F30000000000F8 +:0411F40000000000F7 +:0411F50000000000F6 +:0411F60000000000F5 +:0411F70000000000F4 +:0411F80000000000F3 +:0411F90000000000F2 +:0411FA0000000000F1 +:0411FB0000000000F0 +:0411FC0000000000EF +:0411FD0000000000EE +:0411FE0000000000ED +:0411FF0000000000EC +:0412000000000000EA +:0412010000000000E9 +:0412020000000000E8 +:0412030000000000E7 +:0412040000000000E6 +:0412050000000000E5 +:0412060000000000E4 +:0412070000000000E3 +:0412080000000000E2 +:0412090000000000E1 +:04120A0000000000E0 +:04120B0000000000DF +:04120C0000000000DE +:04120D0000000000DD +:04120E0000000000DC +:04120F0000000000DB +:0412100000000000DA +:0412110000000000D9 +:0412120000000000D8 +:0412130000000000D7 +:0412140000000000D6 +:0412150000000000D5 +:0412160000000000D4 +:0412170000000000D3 +:0412180000000000D2 +:0412190000000000D1 +:04121A0000000000D0 +:04121B0000000000CF +:04121C0000000000CE +:04121D0000000000CD +:04121E0000000000CC +:04121F0000000000CB +:0412200000000000CA +:0412210000000000C9 +:0412220000000000C8 +:0412230000000000C7 +:0412240000000000C6 +:0412250000000000C5 +:0412260000000000C4 +:0412270000000000C3 +:0412280000000000C2 +:0412290000000000C1 +:04122A0000000000C0 +:04122B0000000000BF +:04122C0000000000BE +:04122D0000000000BD +:04122E0000000000BC +:04122F0000000000BB +:0412300000000000BA +:0412310000000000B9 +:0412320000000000B8 +:0412330000000000B7 +:0412340000000000B6 +:0412350000000000B5 +:0412360000000000B4 +:0412370000000000B3 +:0412380000000000B2 +:0412390000000000B1 +:04123A0000000000B0 +:04123B0000000000AF +:04123C0000000000AE +:04123D0000000000AD +:04123E0000000000AC +:04123F0000000000AB +:0412400000000000AA +:0412410000000000A9 +:0412420000000000A8 +:0412430000000000A7 +:0412440000000000A6 +:0412450000000000A5 +:0412460000000000A4 +:0412470000000000A3 +:0412480000000000A2 +:0412490000000000A1 +:04124A0000000000A0 +:04124B00000000009F +:04124C00000000009E +:04124D00000000009D +:04124E00000000009C +:04124F00000000009B +:04125000000000009A +:041251000000000099 +:041252000000000098 +:041253000000000097 +:041254000000000096 +:041255000000000095 +:041256000000000094 +:041257000000000093 +:041258000000000092 +:041259000000000091 +:04125A000000000090 +:04125B00000000008F +:04125C00000000008E +:04125D00000000008D +:04125E00000000008C +:04125F00000000008B +:04126000000000008A +:041261000000000089 +:041262000000000088 +:041263000000000087 +:041264000000000086 +:041265000000000085 +:041266000000000084 +:041267000000000083 +:041268000000000082 +:041269000000000081 +:04126A000000000080 +:04126B00000000007F +:04126C00000000007E +:04126D00000000007D +:04126E00000000007C +:04126F00000000007B +:04127000000000007A +:041271000000000079 +:041272000000000078 +:041273000000000077 +:041274000000000076 +:041275000000000075 +:041276000000000074 +:041277000000000073 +:041278000000000072 +:041279000000000071 +:04127A000000000070 +:04127B00000000006F +:04127C00000000006E +:04127D00000000006D +:04127E00000000006C +:04127F00000000006B +:04128000000000006A +:041281000000000069 +:041282000000000068 +:041283000000000067 +:041284000000000066 +:041285000000000065 +:041286000000000064 +:041287000000000063 +:041288000000000062 +:041289000000000061 +:04128A000000000060 +:04128B00000000005F +:04128C00000000005E +:04128D00000000005D +:04128E00000000005C +:04128F00000000005B +:04129000000000005A +:041291000000000059 +:041292000000000058 +:041293000000000057 +:041294000000000056 +:041295000000000055 +:041296000000000054 +:041297000000000053 +:041298000000000052 +:041299000000000051 +:04129A000000000050 +:04129B00000000004F +:04129C00000000004E +:04129D00000000004D +:04129E00000000004C +:04129F00000000004B +:0412A000000000004A +:0412A1000000000049 +:0412A2000000000048 +:0412A3000000000047 +:0412A4000000000046 +:0412A5000000000045 +:0412A6000000000044 +:0412A7000000000043 +:0412A8000000000042 +:0412A9000000000041 +:0412AA000000000040 +:0412AB00000000003F +:0412AC00000000003E +:0412AD00000000003D +:0412AE00000000003C +:0412AF00000000003B +:0412B000000000003A +:0412B1000000000039 +:0412B2000000000038 +:0412B3000000000037 +:0412B4000000000036 +:0412B5000000000035 +:0412B6000000000034 +:0412B7000000000033 +:0412B8000000000032 +:0412B9000000000031 +:0412BA000000000030 +:0412BB00000000002F +:0412BC00000000002E +:0412BD00000000002D +:0412BE00000000002C +:0412BF00000000002B +:0412C000000000002A +:0412C1000000000029 +:0412C2000000000028 +:0412C3000000000027 +:0412C4000000000026 +:0412C5000000000025 +:0412C6000000000024 +:0412C7000000000023 +:0412C8000000000022 +:0412C9000000000021 +:0412CA000000000020 +:0412CB00000000001F +:0412CC00000000001E +:0412CD00000000001D +:0412CE00000000001C +:0412CF00000000001B +:0412D000000000001A +:0412D1000000000019 +:0412D2000000000018 +:0412D3000000000017 +:0412D4000000000016 +:0412D5000000000015 +:0412D6000000000014 +:0412D7000000000013 +:0412D8000000000012 +:0412D9000000000011 +:0412DA000000000010 +:0412DB00000000000F +:0412DC00000000000E +:0412DD00000000000D +:0412DE00000000000C +:0412DF00000000000B +:0412E000000000000A +:0412E1000000000009 +:0412E2000000000008 +:0412E3000000000007 +:0412E4000000000006 +:0412E5000000000005 +:0412E6000000000004 +:0412E7000000000003 +:0412E8000000000002 +:0412E9000000000001 +:0412EA000000000000 +:0412EB0000000000FF +:0412EC0000000000FE +:0412ED0000000000FD +:0412EE0000000000FC +:0412EF0000000000FB +:0412F00000000000FA +:0412F10000000000F9 +:0412F20000000000F8 +:0412F30000000000F7 +:0412F40000000000F6 +:0412F50000000000F5 +:0412F60000000000F4 +:0412F70000000000F3 +:0412F80000000000F2 +:0412F90000000000F1 +:0412FA0000000000F0 +:0412FB0000000000EF +:0412FC0000000000EE +:0412FD0000000000ED +:0412FE0000000000EC +:0412FF0000000000EB +:0413000000000000E9 +:0413010000000000E8 +:0413020000000000E7 +:0413030000000000E6 +:0413040000000000E5 +:0413050000000000E4 +:0413060000000000E3 +:0413070000000000E2 +:0413080000000000E1 +:0413090000000000E0 +:04130A0000000000DF +:04130B0000000000DE +:04130C0000000000DD +:04130D0000000000DC +:04130E0000000000DB +:04130F0000000000DA +:0413100000000000D9 +:0413110000000000D8 +:0413120000000000D7 +:0413130000000000D6 +:0413140000000000D5 +:0413150000000000D4 +:0413160000000000D3 +:0413170000000000D2 +:0413180000000000D1 +:0413190000000000D0 +:04131A0000000000CF +:04131B0000000000CE +:04131C0000000000CD +:04131D0000000000CC +:04131E0000000000CB +:04131F0000000000CA +:0413200000000000C9 +:0413210000000000C8 +:0413220000000000C7 +:0413230000000000C6 +:0413240000000000C5 +:0413250000000000C4 +:0413260000000000C3 +:0413270000000000C2 +:0413280000000000C1 +:0413290000000000C0 +:04132A0000000000BF +:04132B0000000000BE +:04132C0000000000BD +:04132D0000000000BC +:04132E0000000000BB +:04132F0000000000BA +:0413300000000000B9 +:0413310000000000B8 +:0413320000000000B7 +:0413330000000000B6 +:0413340000000000B5 +:0413350000000000B4 +:0413360000000000B3 +:0413370000000000B2 +:0413380000000000B1 +:0413390000000000B0 +:04133A0000000000AF +:04133B0000000000AE +:04133C0000000000AD +:04133D0000000000AC +:04133E0000000000AB +:04133F0000000000AA +:0413400000000000A9 +:0413410000000000A8 +:0413420000000000A7 +:0413430000000000A6 +:0413440000000000A5 +:0413450000000000A4 +:0413460000000000A3 +:0413470000000000A2 +:0413480000000000A1 +:0413490000000000A0 +:04134A00000000009F +:04134B00000000009E +:04134C00000000009D +:04134D00000000009C +:04134E00000000009B +:04134F00000000009A +:041350000000000099 +:041351000000000098 +:041352000000000097 +:041353000000000096 +:041354000000000095 +:041355000000000094 +:041356000000000093 +:041357000000000092 +:041358000000000091 +:041359000000000090 +:04135A00000000008F +:04135B00000000008E +:04135C00000000008D +:04135D00000000008C +:04135E00000000008B +:04135F00000000008A +:041360000000000089 +:041361000000000088 +:041362000000000087 +:041363000000000086 +:041364000000000085 +:041365000000000084 +:041366000000000083 +:041367000000000082 +:041368000000000081 +:041369000000000080 +:04136A00000000007F +:04136B00000000007E +:04136C00000000007D +:04136D00000000007C +:04136E00000000007B +:04136F00000000007A +:041370000000000079 +:041371000000000078 +:041372000000000077 +:041373000000000076 +:041374000000000075 +:041375000000000074 +:041376000000000073 +:041377000000000072 +:041378000000000071 +:041379000000000070 +:04137A00000000006F +:04137B00000000006E +:04137C00000000006D +:04137D00000000006C +:04137E00000000006B +:04137F00000000006A +:041380000000000069 +:041381000000000068 +:041382000000000067 +:041383000000000066 +:041384000000000065 +:041385000000000064 +:041386000000000063 +:041387000000000062 +:041388000000000061 +:041389000000000060 +:04138A00000000005F +:04138B00000000005E +:04138C00000000005D +:04138D00000000005C +:04138E00000000005B +:04138F00000000005A +:041390000000000059 +:041391000000000058 +:041392000000000057 +:041393000000000056 +:041394000000000055 +:041395000000000054 +:041396000000000053 +:041397000000000052 +:041398000000000051 +:041399000000000050 +:04139A00000000004F +:04139B00000000004E +:04139C00000000004D +:04139D00000000004C +:04139E00000000004B +:04139F00000000004A +:0413A0000000000049 +:0413A1000000000048 +:0413A2000000000047 +:0413A3000000000046 +:0413A4000000000045 +:0413A5000000000044 +:0413A6000000000043 +:0413A7000000000042 +:0413A8000000000041 +:0413A9000000000040 +:0413AA00000000003F +:0413AB00000000003E +:0413AC00000000003D +:0413AD00000000003C +:0413AE00000000003B +:0413AF00000000003A +:0413B0000000000039 +:0413B1000000000038 +:0413B2000000000037 +:0413B3000000000036 +:0413B4000000000035 +:0413B5000000000034 +:0413B6000000000033 +:0413B7000000000032 +:0413B8000000000031 +:0413B9000000000030 +:0413BA00000000002F +:0413BB00000000002E +:0413BC00000000002D +:0413BD00000000002C +:0413BE00000000002B +:0413BF00000000002A +:0413C0000000000029 +:0413C1000000000028 +:0413C2000000000027 +:0413C3000000000026 +:0413C4000000000025 +:0413C5000000000024 +:0413C6000000000023 +:0413C7000000000022 +:0413C8000000000021 +:0413C9000000000020 +:0413CA00000000001F +:0413CB00000000001E +:0413CC00000000001D +:0413CD00000000001C +:0413CE00000000001B +:0413CF00000000001A +:0413D0000000000019 +:0413D1000000000018 +:0413D2000000000017 +:0413D3000000000016 +:0413D4000000000015 +:0413D5000000000014 +:0413D6000000000013 +:0413D7000000000012 +:0413D8000000000011 +:0413D9000000000010 +:0413DA00000000000F +:0413DB00000000000E +:0413DC00000000000D +:0413DD00000000000C +:0413DE00000000000B +:0413DF00000000000A +:0413E0000000000009 +:0413E1000000000008 +:0413E2000000000007 +:0413E3000000000006 +:0413E4000000000005 +:0413E5000000000004 +:0413E6000000000003 +:0413E7000000000002 +:0413E8000000000001 +:0413E9000000000000 +:0413EA0000000000FF +:0413EB0000000000FE +:0413EC0000000000FD +:0413ED0000000000FC +:0413EE0000000000FB +:0413EF0000000000FA +:0413F00000000000F9 +:0413F10000000000F8 +:0413F20000000000F7 +:0413F30000000000F6 +:0413F40000000000F5 +:0413F50000000000F4 +:0413F60000000000F3 +:0413F70000000000F2 +:0413F80000000000F1 +:0413F90000000000F0 +:0413FA0000000000EF +:0413FB0000000000EE +:0413FC0000000000ED +:0413FD0000000000EC +:0413FE0000000000EB +:0413FF0000000000EA +:0414000000000000E8 +:0414010000000000E7 +:0414020000000000E6 +:0414030000000000E5 +:0414040000000000E4 +:0414050000000000E3 +:0414060000000000E2 +:0414070000000000E1 +:0414080000000000E0 +:0414090000000000DF +:04140A0000000000DE +:04140B0000000000DD +:04140C0000000000DC +:04140D0000000000DB +:04140E0000000000DA +:04140F0000000000D9 +:0414100000000000D8 +:0414110000000000D7 +:0414120000000000D6 +:0414130000000000D5 +:0414140000000000D4 +:0414150000000000D3 +:0414160000000000D2 +:0414170000000000D1 +:0414180000000000D0 +:0414190000000000CF +:04141A0000000000CE +:04141B0000000000CD +:04141C0000000000CC +:04141D0000000000CB +:04141E0000000000CA +:04141F0000000000C9 +:0414200000000000C8 +:0414210000000000C7 +:0414220000000000C6 +:0414230000000000C5 +:0414240000000000C4 +:0414250000000000C3 +:0414260000000000C2 +:0414270000000000C1 +:0414280000000000C0 +:0414290000000000BF +:04142A0000000000BE +:04142B0000000000BD +:04142C0000000000BC +:04142D0000000000BB +:04142E0000000000BA +:04142F0000000000B9 +:0414300000000000B8 +:0414310000000000B7 +:0414320000000000B6 +:0414330000000000B5 +:0414340000000000B4 +:0414350000000000B3 +:0414360000000000B2 +:0414370000000000B1 +:0414380000000000B0 +:0414390000000000AF +:04143A0000000000AE +:04143B0000000000AD +:04143C0000000000AC +:04143D0000000000AB +:04143E0000000000AA +:04143F0000000000A9 +:0414400000000000A8 +:0414410000000000A7 +:0414420000000000A6 +:0414430000000000A5 +:0414440000000000A4 +:0414450000000000A3 +:0414460000000000A2 +:0414470000000000A1 +:0414480000000000A0 +:04144900000000009F +:04144A00000000009E +:04144B00000000009D +:04144C00000000009C +:04144D00000000009B +:04144E00000000009A +:04144F000000000099 +:041450000000000098 +:041451000000000097 +:041452000000000096 +:041453000000000095 +:041454000000000094 +:041455000000000093 +:041456000000000092 +:041457000000000091 +:041458000000000090 +:04145900000000008F +:04145A00000000008E +:04145B00000000008D +:04145C00000000008C +:04145D00000000008B +:04145E00000000008A +:04145F000000000089 +:041460000000000088 +:041461000000000087 +:041462000000000086 +:041463000000000085 +:041464000000000084 +:041465000000000083 +:041466000000000082 +:041467000000000081 +:041468000000000080 +:04146900000000007F +:04146A00000000007E +:04146B00000000007D +:04146C00000000007C +:04146D00000000007B +:04146E00000000007A +:04146F000000000079 +:041470000000000078 +:041471000000000077 +:041472000000000076 +:041473000000000075 +:041474000000000074 +:041475000000000073 +:041476000000000072 +:041477000000000071 +:041478000000000070 +:04147900000000006F +:04147A00000000006E +:04147B00000000006D +:04147C00000000006C +:04147D00000000006B +:04147E00000000006A +:04147F000000000069 +:041480000000000068 +:041481000000000067 +:041482000000000066 +:041483000000000065 +:041484000000000064 +:041485000000000063 +:041486000000000062 +:041487000000000061 +:041488000000000060 +:04148900000000005F +:04148A00000000005E +:04148B00000000005D +:04148C00000000005C +:04148D00000000005B +:04148E00000000005A +:04148F000000000059 +:041490000000000058 +:041491000000000057 +:041492000000000056 +:041493000000000055 +:041494000000000054 +:041495000000000053 +:041496000000000052 +:041497000000000051 +:041498000000000050 +:04149900000000004F +:04149A00000000004E +:04149B00000000004D +:04149C00000000004C +:04149D00000000004B +:04149E00000000004A +:04149F000000000049 +:0414A0000000000048 +:0414A1000000000047 +:0414A2000000000046 +:0414A3000000000045 +:0414A4000000000044 +:0414A5000000000043 +:0414A6000000000042 +:0414A7000000000041 +:0414A8000000000040 +:0414A900000000003F +:0414AA00000000003E +:0414AB00000000003D +:0414AC00000000003C +:0414AD00000000003B +:0414AE00000000003A +:0414AF000000000039 +:0414B0000000000038 +:0414B1000000000037 +:0414B2000000000036 +:0414B3000000000035 +:0414B4000000000034 +:0414B5000000000033 +:0414B6000000000032 +:0414B7000000000031 +:0414B8000000000030 +:0414B900000000002F +:0414BA00000000002E +:0414BB00000000002D +:0414BC00000000002C +:0414BD00000000002B +:0414BE00000000002A +:0414BF000000000029 +:0414C0000000000028 +:0414C1000000000027 +:0414C2000000000026 +:0414C3000000000025 +:0414C4000000000024 +:0414C5000000000023 +:0414C6000000000022 +:0414C7000000000021 +:0414C8000000000020 +:0414C900000000001F +:0414CA00000000001E +:0414CB00000000001D +:0414CC00000000001C +:0414CD00000000001B +:0414CE00000000001A +:0414CF000000000019 +:0414D0000000000018 +:0414D1000000000017 +:0414D2000000000016 +:0414D3000000000015 +:0414D4000000000014 +:0414D5000000000013 +:0414D6000000000012 +:0414D7000000000011 +:0414D8000000000010 +:0414D900000000000F +:0414DA00000000000E +:0414DB00000000000D +:0414DC00000000000C +:0414DD00000000000B +:0414DE00000000000A +:0414DF000000000009 +:0414E0000000000008 +:0414E1000000000007 +:0414E2000000000006 +:0414E3000000000005 +:0414E4000000000004 +:0414E5000000000003 +:0414E6000000000002 +:0414E7000000000001 +:0414E8000000000000 +:0414E90000000000FF +:0414EA0000000000FE +:0414EB0000000000FD +:0414EC0000000000FC +:0414ED0000000000FB +:0414EE0000000000FA +:0414EF0000000000F9 +:0414F00000000000F8 +:0414F10000000000F7 +:0414F20000000000F6 +:0414F30000000000F5 +:0414F40000000000F4 +:0414F50000000000F3 +:0414F60000000000F2 +:0414F70000000000F1 +:0414F80000000000F0 +:0414F90000000000EF +:0414FA0000000000EE +:0414FB0000000000ED +:0414FC0000000000EC +:0414FD0000000000EB +:0414FE0000000000EA +:0414FF0000000000E9 +:0415000000000000E7 +:0415010000000000E6 +:0415020000000000E5 +:0415030000000000E4 +:0415040000000000E3 +:0415050000000000E2 +:0415060000000000E1 +:0415070000000000E0 +:0415080000000000DF +:0415090000000000DE +:04150A0000000000DD +:04150B0000000000DC +:04150C0000000000DB +:04150D0000000000DA +:04150E0000000000D9 +:04150F0000000000D8 +:0415100000000000D7 +:0415110000000000D6 +:0415120000000000D5 +:0415130000000000D4 +:0415140000000000D3 +:0415150000000000D2 +:0415160000000000D1 +:0415170000000000D0 +:0415180000000000CF +:0415190000000000CE +:04151A0000000000CD +:04151B0000000000CC +:04151C0000000000CB +:04151D0000000000CA +:04151E0000000000C9 +:04151F0000000000C8 +:0415200000000000C7 +:0415210000000000C6 +:0415220000000000C5 +:0415230000000000C4 +:0415240000000000C3 +:0415250000000000C2 +:0415260000000000C1 +:0415270000000000C0 +:0415280000000000BF +:0415290000000000BE +:04152A0000000000BD +:04152B0000000000BC +:04152C0000000000BB +:04152D0000000000BA +:04152E0000000000B9 +:04152F0000000000B8 +:0415300000000000B7 +:0415310000000000B6 +:0415320000000000B5 +:0415330000000000B4 +:0415340000000000B3 +:0415350000000000B2 +:0415360000000000B1 +:0415370000000000B0 +:0415380000000000AF +:0415390000000000AE +:04153A0000000000AD +:04153B0000000000AC +:04153C0000000000AB +:04153D0000000000AA +:04153E0000000000A9 +:04153F0000000000A8 +:0415400000000000A7 +:0415410000000000A6 +:0415420000000000A5 +:0415430000000000A4 +:0415440000000000A3 +:0415450000000000A2 +:0415460000000000A1 +:0415470000000000A0 +:04154800000000009F +:04154900000000009E +:04154A00000000009D +:04154B00000000009C +:04154C00000000009B +:04154D00000000009A +:04154E000000000099 +:04154F000000000098 +:041550000000000097 +:041551000000000096 +:041552000000000095 +:041553000000000094 +:041554000000000093 +:041555000000000092 +:041556000000000091 +:041557000000000090 +:04155800000000008F +:04155900000000008E +:04155A00000000008D +:04155B00000000008C +:04155C00000000008B +:04155D00000000008A +:04155E000000000089 +:04155F000000000088 +:041560000000000087 +:041561000000000086 +:041562000000000085 +:041563000000000084 +:041564000000000083 +:041565000000000082 +:041566000000000081 +:041567000000000080 +:04156800000000007F +:04156900000000007E +:04156A00000000007D +:04156B00000000007C +:04156C00000000007B +:04156D00000000007A +:04156E000000000079 +:04156F000000000078 +:041570000000000077 +:041571000000000076 +:041572000000000075 +:041573000000000074 +:041574000000000073 +:041575000000000072 +:041576000000000071 +:041577000000000070 +:04157800000000006F +:04157900000000006E +:04157A00000000006D +:04157B00000000006C +:04157C00000000006B +:04157D00000000006A +:04157E000000000069 +:04157F000000000068 +:041580000000000067 +:041581000000000066 +:041582000000000065 +:041583000000000064 +:041584000000000063 +:041585000000000062 +:041586000000000061 +:041587000000000060 +:04158800000000005F +:04158900000000005E +:04158A00000000005D +:04158B00000000005C +:04158C00000000005B +:04158D00000000005A +:04158E000000000059 +:04158F000000000058 +:041590000000000057 +:041591000000000056 +:041592000000000055 +:041593000000000054 +:041594000000000053 +:041595000000000052 +:041596000000000051 +:041597000000000050 +:04159800000000004F +:04159900000000004E +:04159A00000000004D +:04159B00000000004C +:04159C00000000004B +:04159D00000000004A +:04159E000000000049 +:04159F000000000048 +:0415A0000000000047 +:0415A1000000000046 +:0415A2000000000045 +:0415A3000000000044 +:0415A4000000000043 +:0415A5000000000042 +:0415A6000000000041 +:0415A7000000000040 +:0415A800000000003F +:0415A900000000003E +:0415AA00000000003D +:0415AB00000000003C +:0415AC00000000003B +:0415AD00000000003A +:0415AE000000000039 +:0415AF000000000038 +:0415B0000000000037 +:0415B1000000000036 +:0415B2000000000035 +:0415B3000000000034 +:0415B4000000000033 +:0415B5000000000032 +:0415B6000000000031 +:0415B7000000000030 +:0415B800000000002F +:0415B900000000002E +:0415BA00000000002D +:0415BB00000000002C +:0415BC00000000002B +:0415BD00000000002A +:0415BE000000000029 +:0415BF000000000028 +:0415C0000000000027 +:0415C1000000000026 +:0415C2000000000025 +:0415C3000000000024 +:0415C4000000000023 +:0415C5000000000022 +:0415C6000000000021 +:0415C7000000000020 +:0415C800000000001F +:0415C900000000001E +:0415CA00000000001D +:0415CB00000000001C +:0415CC00000000001B +:0415CD00000000001A +:0415CE000000000019 +:0415CF000000000018 +:0415D0000000000017 +:0415D1000000000016 +:0415D2000000000015 +:0415D3000000000014 +:0415D4000000000013 +:0415D5000000000012 +:0415D6000000000011 +:0415D7000000000010 +:0415D800000000000F +:0415D900000000000E +:0415DA00000000000D +:0415DB00000000000C +:0415DC00000000000B +:0415DD00000000000A +:0415DE000000000009 +:0415DF000000000008 +:0415E0000000000007 +:0415E1000000000006 +:0415E2000000000005 +:0415E3000000000004 +:0415E4000000000003 +:0415E5000000000002 +:0415E6000000000001 +:0415E7000000000000 +:0415E80000000000FF +:0415E90000000000FE +:0415EA0000000000FD +:0415EB0000000000FC +:0415EC0000000000FB +:0415ED0000000000FA +:0415EE0000000000F9 +:0415EF0000000000F8 +:0415F00000000000F7 +:0415F10000000000F6 +:0415F20000000000F5 +:0415F30000000000F4 +:0415F40000000000F3 +:0415F50000000000F2 +:0415F60000000000F1 +:0415F70000000000F0 +:0415F80000000000EF +:0415F90000000000EE +:0415FA0000000000ED +:0415FB0000000000EC +:0415FC0000000000EB +:0415FD0000000000EA +:0415FE0000000000E9 +:0415FF0000000000E8 +:0416000000000000E6 +:0416010000000000E5 +:0416020000000000E4 +:0416030000000000E3 +:0416040000000000E2 +:0416050000000000E1 +:0416060000000000E0 +:0416070000000000DF +:0416080000000000DE +:0416090000000000DD +:04160A0000000000DC +:04160B0000000000DB +:04160C0000000000DA +:04160D0000000000D9 +:04160E0000000000D8 +:04160F0000000000D7 +:0416100000000000D6 +:0416110000000000D5 +:0416120000000000D4 +:0416130000000000D3 +:0416140000000000D2 +:0416150000000000D1 +:0416160000000000D0 +:0416170000000000CF +:0416180000000000CE +:0416190000000000CD +:04161A0000000000CC +:04161B0000000000CB +:04161C0000000000CA +:04161D0000000000C9 +:04161E0000000000C8 +:04161F0000000000C7 +:0416200000000000C6 +:0416210000000000C5 +:0416220000000000C4 +:0416230000000000C3 +:0416240000000000C2 +:0416250000000000C1 +:0416260000000000C0 +:0416270000000000BF +:0416280000000000BE +:0416290000000000BD +:04162A0000000000BC +:04162B0000000000BB +:04162C0000000000BA +:04162D0000000000B9 +:04162E0000000000B8 +:04162F0000000000B7 +:0416300000000000B6 +:0416310000000000B5 +:0416320000000000B4 +:0416330000000000B3 +:0416340000000000B2 +:0416350000000000B1 +:0416360000000000B0 +:0416370000000000AF +:0416380000000000AE +:0416390000000000AD +:04163A0000000000AC +:04163B0000000000AB +:04163C0000000000AA +:04163D0000000000A9 +:04163E0000000000A8 +:04163F0000000000A7 +:0416400000000000A6 +:0416410000000000A5 +:0416420000000000A4 +:0416430000000000A3 +:0416440000000000A2 +:0416450000000000A1 +:0416460000000000A0 +:04164700000000009F +:04164800000000009E +:04164900000000009D +:04164A00000000009C +:04164B00000000009B +:04164C00000000009A +:04164D000000000099 +:04164E000000000098 +:04164F000000000097 +:041650000000000096 +:041651000000000095 +:041652000000000094 +:041653000000000093 +:041654000000000092 +:041655000000000091 +:041656000000000090 +:04165700000000008F +:04165800000000008E +:04165900000000008D +:04165A00000000008C +:04165B00000000008B +:04165C00000000008A +:04165D000000000089 +:04165E000000000088 +:04165F000000000087 +:041660000000000086 +:041661000000000085 +:041662000000000084 +:041663000000000083 +:041664000000000082 +:041665000000000081 +:041666000000000080 +:04166700000000007F +:04166800000000007E +:04166900000000007D +:04166A00000000007C +:04166B00000000007B +:04166C00000000007A +:04166D000000000079 +:04166E000000000078 +:04166F000000000077 +:041670000000000076 +:041671000000000075 +:041672000000000074 +:041673000000000073 +:041674000000000072 +:041675000000000071 +:041676000000000070 +:04167700000000006F +:04167800000000006E +:04167900000000006D +:04167A00000000006C +:04167B00000000006B +:04167C00000000006A +:04167D000000000069 +:04167E000000000068 +:04167F000000000067 +:041680000000000066 +:041681000000000065 +:041682000000000064 +:041683000000000063 +:041684000000000062 +:041685000000000061 +:041686000000000060 +:04168700000000005F +:04168800000000005E +:04168900000000005D +:04168A00000000005C +:04168B00000000005B +:04168C00000000005A +:04168D000000000059 +:04168E000000000058 +:04168F000000000057 +:041690000000000056 +:041691000000000055 +:041692000000000054 +:041693000000000053 +:041694000000000052 +:041695000000000051 +:041696000000000050 +:04169700000000004F +:04169800000000004E +:04169900000000004D +:04169A00000000004C +:04169B00000000004B +:04169C00000000004A +:04169D000000000049 +:04169E000000000048 +:04169F000000000047 +:0416A0000000000046 +:0416A1000000000045 +:0416A2000000000044 +:0416A3000000000043 +:0416A4000000000042 +:0416A5000000000041 +:0416A6000000000040 +:0416A700000000003F +:0416A800000000003E +:0416A900000000003D +:0416AA00000000003C +:0416AB00000000003B +:0416AC00000000003A +:0416AD000000000039 +:0416AE000000000038 +:0416AF000000000037 +:0416B0000000000036 +:0416B1000000000035 +:0416B2000000000034 +:0416B3000000000033 +:0416B4000000000032 +:0416B5000000000031 +:0416B6000000000030 +:0416B700000000002F +:0416B800000000002E +:0416B900000000002D +:0416BA00000000002C +:0416BB00000000002B +:0416BC00000000002A +:0416BD000000000029 +:0416BE000000000028 +:0416BF000000000027 +:0416C0000000000026 +:0416C1000000000025 +:0416C2000000000024 +:0416C3000000000023 +:0416C4000000000022 +:0416C5000000000021 +:0416C6000000000020 +:0416C700000000001F +:0416C800000000001E +:0416C900000000001D +:0416CA00000000001C +:0416CB00000000001B +:0416CC00000000001A +:0416CD000000000019 +:0416CE000000000018 +:0416CF000000000017 +:0416D0000000000016 +:0416D1000000000015 +:0416D2000000000014 +:0416D3000000000013 +:0416D4000000000012 +:0416D5000000000011 +:0416D6000000000010 +:0416D700000000000F +:0416D800000000000E +:0416D900000000000D +:0416DA00000000000C +:0416DB00000000000B +:0416DC00000000000A +:0416DD000000000009 +:0416DE000000000008 +:0416DF000000000007 +:0416E0000000000006 +:0416E1000000000005 +:0416E2000000000004 +:0416E3000000000003 +:0416E4000000000002 +:0416E5000000000001 +:0416E6000000000000 +:0416E70000000000FF +:0416E80000000000FE +:0416E90000000000FD +:0416EA0000000000FC +:0416EB0000000000FB +:0416EC0000000000FA +:0416ED0000000000F9 +:0416EE0000000000F8 +:0416EF0000000000F7 +:0416F00000000000F6 +:0416F10000000000F5 +:0416F20000000000F4 +:0416F30000000000F3 +:0416F40000000000F2 +:0416F50000000000F1 +:0416F60000000000F0 +:0416F70000000000EF +:0416F80000000000EE +:0416F90000000000ED +:0416FA0000000000EC +:0416FB0000000000EB +:0416FC0000000000EA +:0416FD0000000000E9 +:0416FE0000000000E8 +:0416FF0000000000E7 +:0417000000000000E5 +:0417010000000000E4 +:0417020000000000E3 +:0417030000000000E2 +:0417040000000000E1 +:0417050000000000E0 +:0417060000000000DF +:0417070000000000DE +:0417080000000000DD +:0417090000000000DC +:04170A0000000000DB +:04170B0000000000DA +:04170C0000000000D9 +:04170D0000000000D8 +:04170E0000000000D7 +:04170F0000000000D6 +:0417100000000000D5 +:0417110000000000D4 +:0417120000000000D3 +:0417130000000000D2 +:0417140000000000D1 +:0417150000000000D0 +:0417160000000000CF +:0417170000000000CE +:0417180000000000CD +:0417190000000000CC +:04171A0000000000CB +:04171B0000000000CA +:04171C0000000000C9 +:04171D0000000000C8 +:04171E0000000000C7 +:04171F0000000000C6 +:0417200000000000C5 +:0417210000000000C4 +:0417220000000000C3 +:0417230000000000C2 +:0417240000000000C1 +:0417250000000000C0 +:0417260000000000BF +:0417270000000000BE +:0417280000000000BD +:0417290000000000BC +:04172A0000000000BB +:04172B0000000000BA +:04172C0000000000B9 +:04172D0000000000B8 +:04172E0000000000B7 +:04172F0000000000B6 +:0417300000000000B5 +:0417310000000000B4 +:0417320000000000B3 +:0417330000000000B2 +:0417340000000000B1 +:0417350000000000B0 +:0417360000000000AF +:0417370000000000AE +:0417380000000000AD +:0417390000000000AC +:04173A0000000000AB +:04173B0000000000AA +:04173C0000000000A9 +:04173D0000000000A8 +:04173E0000000000A7 +:04173F0000000000A6 +:0417400000000000A5 +:0417410000000000A4 +:0417420000000000A3 +:0417430000000000A2 +:0417440000000000A1 +:0417450000000000A0 +:04174600000000009F +:04174700000000009E +:04174800000000009D +:04174900000000009C +:04174A00000000009B +:04174B00000000009A +:04174C000000000099 +:04174D000000000098 +:04174E000000000097 +:04174F000000000096 +:041750000000000095 +:041751000000000094 +:041752000000000093 +:041753000000000092 +:041754000000000091 +:041755000000000090 +:04175600000000008F +:04175700000000008E +:04175800000000008D +:04175900000000008C +:04175A00000000008B +:04175B00000000008A +:04175C000000000089 +:04175D000000000088 +:04175E000000000087 +:04175F000000000086 +:041760000000000085 +:041761000000000084 +:041762000000000083 +:041763000000000082 +:041764000000000081 +:041765000000000080 +:04176600000000007F +:04176700000000007E +:04176800000000007D +:04176900000000007C +:04176A00000000007B +:04176B00000000007A +:04176C000000000079 +:04176D000000000078 +:04176E000000000077 +:04176F000000000076 +:041770000000000075 +:041771000000000074 +:041772000000000073 +:041773000000000072 +:041774000000000071 +:041775000000000070 +:04177600000000006F +:04177700000000006E +:04177800000000006D +:04177900000000006C +:04177A00000000006B +:04177B00000000006A +:04177C000000000069 +:04177D000000000068 +:04177E000000000067 +:04177F000000000066 +:041780000000000065 +:041781000000000064 +:041782000000000063 +:041783000000000062 +:041784000000000061 +:041785000000000060 +:04178600000000005F +:04178700000000005E +:04178800000000005D +:04178900000000005C +:04178A00000000005B +:04178B00000000005A +:04178C000000000059 +:04178D000000000058 +:04178E000000000057 +:04178F000000000056 +:041790000000000055 +:041791000000000054 +:041792000000000053 +:041793000000000052 +:041794000000000051 +:041795000000000050 +:04179600000000004F +:04179700000000004E +:04179800000000004D +:04179900000000004C +:04179A00000000004B +:04179B00000000004A +:04179C000000000049 +:04179D000000000048 +:04179E000000000047 +:04179F000000000046 +:0417A0000000000045 +:0417A1000000000044 +:0417A2000000000043 +:0417A3000000000042 +:0417A4000000000041 +:0417A5000000000040 +:0417A600000000003F +:0417A700000000003E +:0417A800000000003D +:0417A900000000003C +:0417AA00000000003B +:0417AB00000000003A +:0417AC000000000039 +:0417AD000000000038 +:0417AE000000000037 +:0417AF000000000036 +:0417B0000000000035 +:0417B1000000000034 +:0417B2000000000033 +:0417B3000000000032 +:0417B4000000000031 +:0417B5000000000030 +:0417B600000000002F +:0417B700000000002E +:0417B800000000002D +:0417B900000000002C +:0417BA00000000002B +:0417BB00000000002A +:0417BC000000000029 +:0417BD000000000028 +:0417BE000000000027 +:0417BF000000000026 +:0417C0000000000025 +:0417C1000000000024 +:0417C2000000000023 +:0417C3000000000022 +:0417C4000000000021 +:0417C5000000000020 +:0417C600000000001F +:0417C700000000001E +:0417C800000000001D +:0417C900000000001C +:0417CA00000000001B +:0417CB00000000001A +:0417CC000000000019 +:0417CD000000000018 +:0417CE000000000017 +:0417CF000000000016 +:0417D0000000000015 +:0417D1000000000014 +:0417D2000000000013 +:0417D3000000000012 +:0417D4000000000011 +:0417D5000000000010 +:0417D600000000000F +:0417D700000000000E +:0417D800000000000D +:0417D900000000000C +:0417DA00000000000B +:0417DB00000000000A +:0417DC000000000009 +:0417DD000000000008 +:0417DE000000000007 +:0417DF000000000006 +:0417E0000000000005 +:0417E1000000000004 +:0417E2000000000003 +:0417E3000000000002 +:0417E4000000000001 +:0417E5000000000000 +:0417E60000000000FF +:0417E70000000000FE +:0417E80000000000FD +:0417E90000000000FC +:0417EA0000000000FB +:0417EB0000000000FA +:0417EC0000000000F9 +:0417ED0000000000F8 +:0417EE0000000000F7 +:0417EF0000000000F6 +:0417F00000000000F5 +:0417F10000000000F4 +:0417F20000000000F3 +:0417F30000000000F2 +:0417F40000000000F1 +:0417F50000000000F0 +:0417F60000000000EF +:0417F70000000000EE +:0417F80000000000ED +:0417F90000000000EC +:0417FA0000000000EB +:0417FB0000000000EA +:0417FC0000000000E9 +:0417FD0000000000E8 +:0417FE0000000000E7 +:0417FF0000000000E6 +:0418000000000000E4 +:0418010000000000E3 +:0418020000000000E2 +:0418030000000000E1 +:0418040000000000E0 +:0418050000000000DF +:0418060000000000DE +:0418070000000000DD +:0418080000000000DC +:0418090000000000DB +:04180A0000000000DA +:04180B0000000000D9 +:04180C0000000000D8 +:04180D0000000000D7 +:04180E0000000000D6 +:04180F0000000000D5 +:0418100000000000D4 +:0418110000000000D3 +:0418120000000000D2 +:0418130000000000D1 +:0418140000000000D0 +:0418150000000000CF +:0418160000000000CE +:0418170000000000CD +:0418180000000000CC +:0418190000000000CB +:04181A0000000000CA +:04181B0000000000C9 +:04181C0000000000C8 +:04181D0000000000C7 +:04181E0000000000C6 +:04181F0000000000C5 +:0418200000000000C4 +:0418210000000000C3 +:0418220000000000C2 +:0418230000000000C1 +:0418240000000000C0 +:0418250000000000BF +:0418260000000000BE +:0418270000000000BD +:0418280000000000BC +:0418290000000000BB +:04182A0000000000BA +:04182B0000000000B9 +:04182C0000000000B8 +:04182D0000000000B7 +:04182E0000000000B6 +:04182F0000000000B5 +:0418300000000000B4 +:0418310000000000B3 +:0418320000000000B2 +:0418330000000000B1 +:0418340000000000B0 +:0418350000000000AF +:0418360000000000AE +:0418370000000000AD +:0418380000000000AC +:0418390000000000AB +:04183A0000000000AA +:04183B0000000000A9 +:04183C0000000000A8 +:04183D0000000000A7 +:04183E0000000000A6 +:04183F0000000000A5 +:0418400000000000A4 +:0418410000000000A3 +:0418420000000000A2 +:0418430000000000A1 +:0418440000000000A0 +:04184500000000009F +:04184600000000009E +:04184700000000009D +:04184800000000009C +:04184900000000009B +:04184A00000000009A +:04184B000000000099 +:04184C000000000098 +:04184D000000000097 +:04184E000000000096 +:04184F000000000095 +:041850000000000094 +:041851000000000093 +:041852000000000092 +:041853000000000091 +:041854000000000090 +:04185500000000008F +:04185600000000008E +:04185700000000008D +:04185800000000008C +:04185900000000008B +:04185A00000000008A +:04185B000000000089 +:04185C000000000088 +:04185D000000000087 +:04185E000000000086 +:04185F000000000085 +:041860000000000084 +:041861000000000083 +:041862000000000082 +:041863000000000081 +:041864000000000080 +:04186500000000007F +:04186600000000007E +:04186700000000007D +:04186800000000007C +:04186900000000007B +:04186A00000000007A +:04186B000000000079 +:04186C000000000078 +:04186D000000000077 +:04186E000000000076 +:04186F000000000075 +:041870000000000074 +:041871000000000073 +:041872000000000072 +:041873000000000071 +:041874000000000070 +:04187500000000006F +:04187600000000006E +:04187700000000006D +:04187800000000006C +:04187900000000006B +:04187A00000000006A +:04187B000000000069 +:04187C000000000068 +:04187D000000000067 +:04187E000000000066 +:04187F000000000065 +:041880000000000064 +:041881000000000063 +:041882000000000062 +:041883000000000061 +:041884000000000060 +:04188500000000005F +:04188600000000005E +:04188700000000005D +:04188800000000005C +:04188900000000005B +:04188A00000000005A +:04188B000000000059 +:04188C000000000058 +:04188D000000000057 +:04188E000000000056 +:04188F000000000055 +:041890000000000054 +:041891000000000053 +:041892000000000052 +:041893000000000051 +:041894000000000050 +:04189500000000004F +:04189600000000004E +:04189700000000004D +:04189800000000004C +:04189900000000004B +:04189A00000000004A +:04189B000000000049 +:04189C000000000048 +:04189D000000000047 +:04189E000000000046 +:04189F000000000045 +:0418A0000000000044 +:0418A1000000000043 +:0418A2000000000042 +:0418A3000000000041 +:0418A4000000000040 +:0418A500000000003F +:0418A600000000003E +:0418A700000000003D +:0418A800000000003C +:0418A900000000003B +:0418AA00000000003A +:0418AB000000000039 +:0418AC000000000038 +:0418AD000000000037 +:0418AE000000000036 +:0418AF000000000035 +:0418B0000000000034 +:0418B1000000000033 +:0418B2000000000032 +:0418B3000000000031 +:0418B4000000000030 +:0418B500000000002F +:0418B600000000002E +:0418B700000000002D +:0418B800000000002C +:0418B900000000002B +:0418BA00000000002A +:0418BB000000000029 +:0418BC000000000028 +:0418BD000000000027 +:0418BE000000000026 +:0418BF000000000025 +:0418C0000000000024 +:0418C1000000000023 +:0418C2000000000022 +:0418C3000000000021 +:0418C4000000000020 +:0418C500000000001F +:0418C600000000001E +:0418C700000000001D +:0418C800000000001C +:0418C900000000001B +:0418CA00000000001A +:0418CB000000000019 +:0418CC000000000018 +:0418CD000000000017 +:0418CE000000000016 +:0418CF000000000015 +:0418D0000000000014 +:0418D1000000000013 +:0418D2000000000012 +:0418D3000000000011 +:0418D4000000000010 +:0418D500000000000F +:0418D600000000000E +:0418D700000000000D +:0418D800000000000C +:0418D900000000000B +:0418DA00000000000A +:0418DB000000000009 +:0418DC000000000008 +:0418DD000000000007 +:0418DE000000000006 +:0418DF000000000005 +:0418E0000000000004 +:0418E1000000000003 +:0418E2000000000002 +:0418E3000000000001 +:0418E4000000000000 +:0418E50000000000FF +:0418E60000000000FE +:0418E70000000000FD +:0418E80000000000FC +:0418E90000000000FB +:0418EA0000000000FA +:0418EB0000000000F9 +:0418EC0000000000F8 +:0418ED0000000000F7 +:0418EE0000000000F6 +:0418EF0000000000F5 +:0418F00000000000F4 +:0418F10000000000F3 +:0418F20000000000F2 +:0418F30000000000F1 +:0418F40000000000F0 +:0418F50000000000EF +:0418F60000000000EE +:0418F70000000000ED +:0418F80000000000EC +:0418F90000000000EB +:0418FA0000000000EA +:0418FB0000000000E9 +:0418FC0000000000E8 +:0418FD0000000000E7 +:0418FE0000000000E6 +:0418FF0000000000E5 +:0419000000000000E3 +:0419010000000000E2 +:0419020000000000E1 +:0419030000000000E0 +:0419040000000000DF +:0419050000000000DE +:0419060000000000DD +:0419070000000000DC +:0419080000000000DB +:0419090000000000DA +:04190A0000000000D9 +:04190B0000000000D8 +:04190C0000000000D7 +:04190D0000000000D6 +:04190E0000000000D5 +:04190F0000000000D4 +:0419100000000000D3 +:0419110000000000D2 +:0419120000000000D1 +:0419130000000000D0 +:0419140000000000CF +:0419150000000000CE +:0419160000000000CD +:0419170000000000CC +:0419180000000000CB +:0419190000000000CA +:04191A0000000000C9 +:04191B0000000000C8 +:04191C0000000000C7 +:04191D0000000000C6 +:04191E0000000000C5 +:04191F0000000000C4 +:0419200000000000C3 +:0419210000000000C2 +:0419220000000000C1 +:0419230000000000C0 +:0419240000000000BF +:0419250000000000BE +:0419260000000000BD +:0419270000000000BC +:0419280000000000BB +:0419290000000000BA +:04192A0000000000B9 +:04192B0000000000B8 +:04192C0000000000B7 +:04192D0000000000B6 +:04192E0000000000B5 +:04192F0000000000B4 +:0419300000000000B3 +:0419310000000000B2 +:0419320000000000B1 +:0419330000000000B0 +:0419340000000000AF +:0419350000000000AE +:0419360000000000AD +:0419370000000000AC +:0419380000000000AB +:0419390000000000AA +:04193A0000000000A9 +:04193B0000000000A8 +:04193C0000000000A7 +:04193D0000000000A6 +:04193E0000000000A5 +:04193F0000000000A4 +:0419400000000000A3 +:0419410000000000A2 +:0419420000000000A1 +:0419430000000000A0 +:04194400000000009F +:04194500000000009E +:04194600000000009D +:04194700000000009C +:04194800000000009B +:04194900000000009A +:04194A000000000099 +:04194B000000000098 +:04194C000000000097 +:04194D000000000096 +:04194E000000000095 +:04194F000000000094 +:041950000000000093 +:041951000000000092 +:041952000000000091 +:041953000000000090 +:04195400000000008F +:04195500000000008E +:04195600000000008D +:04195700000000008C +:04195800000000008B +:04195900000000008A +:04195A000000000089 +:04195B000000000088 +:04195C000000000087 +:04195D000000000086 +:04195E000000000085 +:04195F000000000084 +:041960000000000083 +:041961000000000082 +:041962000000000081 +:041963000000000080 +:04196400000000007F +:04196500000000007E +:04196600000000007D +:04196700000000007C +:04196800000000007B +:04196900000000007A +:04196A000000000079 +:04196B000000000078 +:04196C000000000077 +:04196D000000000076 +:04196E000000000075 +:04196F000000000074 +:041970000000000073 +:041971000000000072 +:041972000000000071 +:041973000000000070 +:04197400000000006F +:04197500000000006E +:04197600000000006D +:04197700000000006C +:04197800000000006B +:04197900000000006A +:04197A000000000069 +:04197B000000000068 +:04197C000000000067 +:04197D000000000066 +:04197E000000000065 +:04197F000000000064 +:041980000000000063 +:041981000000000062 +:041982000000000061 +:041983000000000060 +:04198400000000005F +:04198500000000005E +:04198600000000005D +:04198700000000005C +:04198800000000005B +:04198900000000005A +:04198A000000000059 +:04198B000000000058 +:04198C000000000057 +:04198D000000000056 +:04198E000000000055 +:04198F000000000054 +:041990000000000053 +:041991000000000052 +:041992000000000051 +:041993000000000050 +:04199400000000004F +:04199500000000004E +:04199600000000004D +:04199700000000004C +:04199800000000004B +:04199900000000004A +:04199A000000000049 +:04199B000000000048 +:04199C000000000047 +:04199D000000000046 +:04199E000000000045 +:04199F000000000044 +:0419A0000000000043 +:0419A1000000000042 +:0419A2000000000041 +:0419A3000000000040 +:0419A400000000003F +:0419A500000000003E +:0419A600000000003D +:0419A700000000003C +:0419A800000000003B +:0419A900000000003A +:0419AA000000000039 +:0419AB000000000038 +:0419AC000000000037 +:0419AD000000000036 +:0419AE000000000035 +:0419AF000000000034 +:0419B0000000000033 +:0419B1000000000032 +:0419B2000000000031 +:0419B3000000000030 +:0419B400000000002F +:0419B500000000002E +:0419B600000000002D +:0419B700000000002C +:0419B800000000002B +:0419B900000000002A +:0419BA000000000029 +:0419BB000000000028 +:0419BC000000000027 +:0419BD000000000026 +:0419BE000000000025 +:0419BF000000000024 +:0419C0000000000023 +:0419C1000000000022 +:0419C2000000000021 +:0419C3000000000020 +:0419C400000000001F +:0419C500000000001E +:0419C600000000001D +:0419C700000000001C +:0419C800000000001B +:0419C900000000001A +:0419CA000000000019 +:0419CB000000000018 +:0419CC000000000017 +:0419CD000000000016 +:0419CE000000000015 +:0419CF000000000014 +:0419D0000000000013 +:0419D1000000000012 +:0419D2000000000011 +:0419D3000000000010 +:0419D400000000000F +:0419D500000000000E +:0419D600000000000D +:0419D700000000000C +:0419D800000000000B +:0419D900000000000A +:0419DA000000000009 +:0419DB000000000008 +:0419DC000000000007 +:0419DD000000000006 +:0419DE000000000005 +:0419DF000000000004 +:0419E0000000000003 +:0419E1000000000002 +:0419E2000000000001 +:0419E3000000000000 +:0419E40000000000FF +:0419E50000000000FE +:0419E60000000000FD +:0419E70000000000FC +:0419E80000000000FB +:0419E90000000000FA +:0419EA0000000000F9 +:0419EB0000000000F8 +:0419EC0000000000F7 +:0419ED0000000000F6 +:0419EE0000000000F5 +:0419EF0000000000F4 +:0419F00000000000F3 +:0419F10000000000F2 +:0419F20000000000F1 +:0419F30000000000F0 +:0419F40000000000EF +:0419F50000000000EE +:0419F60000000000ED +:0419F70000000000EC +:0419F80000000000EB +:0419F90000000000EA +:0419FA0000000000E9 +:0419FB0000000000E8 +:0419FC0000000000E7 +:0419FD0000000000E6 +:0419FE0000000000E5 +:0419FF0000000000E4 +:041A000000000000E2 +:041A010000000000E1 +:041A020000000000E0 +:041A030000000000DF +:041A040000000000DE +:041A050000000000DD +:041A060000000000DC +:041A070000000000DB +:041A080000000000DA +:041A090000000000D9 +:041A0A0000000000D8 +:041A0B0000000000D7 +:041A0C0000000000D6 +:041A0D0000000000D5 +:041A0E0000000000D4 +:041A0F0000000000D3 +:041A100000000000D2 +:041A110000000000D1 +:041A120000000000D0 +:041A130000000000CF +:041A140000000000CE +:041A150000000000CD +:041A160000000000CC +:041A170000000000CB +:041A180000000000CA +:041A190000000000C9 +:041A1A0000000000C8 +:041A1B0000000000C7 +:041A1C0000000000C6 +:041A1D0000000000C5 +:041A1E0000000000C4 +:041A1F0000000000C3 +:041A200000000000C2 +:041A210000000000C1 +:041A220000000000C0 +:041A230000000000BF +:041A240000000000BE +:041A250000000000BD +:041A260000000000BC +:041A270000000000BB +:041A280000000000BA +:041A290000000000B9 +:041A2A0000000000B8 +:041A2B0000000000B7 +:041A2C0000000000B6 +:041A2D0000000000B5 +:041A2E0000000000B4 +:041A2F0000000000B3 +:041A300000000000B2 +:041A310000000000B1 +:041A320000000000B0 +:041A330000000000AF +:041A340000000000AE +:041A350000000000AD +:041A360000000000AC +:041A370000000000AB +:041A380000000000AA +:041A390000000000A9 +:041A3A0000000000A8 +:041A3B0000000000A7 +:041A3C0000000000A6 +:041A3D0000000000A5 +:041A3E0000000000A4 +:041A3F0000000000A3 +:041A400000000000A2 +:041A410000000000A1 +:041A420000000000A0 +:041A4300000000009F +:041A4400000000009E +:041A4500000000009D +:041A4600000000009C +:041A4700000000009B +:041A4800000000009A +:041A49000000000099 +:041A4A000000000098 +:041A4B000000000097 +:041A4C000000000096 +:041A4D000000000095 +:041A4E000000000094 +:041A4F000000000093 +:041A50000000000092 +:041A51000000000091 +:041A52000000000090 +:041A5300000000008F +:041A5400000000008E +:041A5500000000008D +:041A5600000000008C +:041A5700000000008B +:041A5800000000008A +:041A59000000000089 +:041A5A000000000088 +:041A5B000000000087 +:041A5C000000000086 +:041A5D000000000085 +:041A5E000000000084 +:041A5F000000000083 +:041A60000000000082 +:041A61000000000081 +:041A62000000000080 +:041A6300000000007F +:041A6400000000007E +:041A6500000000007D +:041A6600000000007C +:041A6700000000007B +:041A6800000000007A +:041A69000000000079 +:041A6A000000000078 +:041A6B000000000077 +:041A6C000000000076 +:041A6D000000000075 +:041A6E000000000074 +:041A6F000000000073 +:041A70000000000072 +:041A71000000000071 +:041A72000000000070 +:041A7300000000006F +:041A7400000000006E +:041A7500000000006D +:041A7600000000006C +:041A7700000000006B +:041A7800000000006A +:041A79000000000069 +:041A7A000000000068 +:041A7B000000000067 +:041A7C000000000066 +:041A7D000000000065 +:041A7E000000000064 +:041A7F000000000063 +:041A80000000000062 +:041A81000000000061 +:041A82000000000060 +:041A8300000000005F +:041A8400000000005E +:041A8500000000005D +:041A8600000000005C +:041A8700000000005B +:041A8800000000005A +:041A89000000000059 +:041A8A000000000058 +:041A8B000000000057 +:041A8C000000000056 +:041A8D000000000055 +:041A8E000000000054 +:041A8F000000000053 +:041A90000000000052 +:041A91000000000051 +:041A92000000000050 +:041A9300000000004F +:041A9400000000004E +:041A9500000000004D +:041A9600000000004C +:041A9700000000004B +:041A9800000000004A +:041A99000000000049 +:041A9A000000000048 +:041A9B000000000047 +:041A9C000000000046 +:041A9D000000000045 +:041A9E000000000044 +:041A9F000000000043 +:041AA0000000000042 +:041AA1000000000041 +:041AA2000000000040 +:041AA300000000003F +:041AA400000000003E +:041AA500000000003D +:041AA600000000003C +:041AA700000000003B +:041AA800000000003A +:041AA9000000000039 +:041AAA000000000038 +:041AAB000000000037 +:041AAC000000000036 +:041AAD000000000035 +:041AAE000000000034 +:041AAF000000000033 +:041AB0000000000032 +:041AB1000000000031 +:041AB2000000000030 +:041AB300000000002F +:041AB400000000002E +:041AB500000000002D +:041AB600000000002C +:041AB700000000002B +:041AB800000000002A +:041AB9000000000029 +:041ABA000000000028 +:041ABB000000000027 +:041ABC000000000026 +:041ABD000000000025 +:041ABE000000000024 +:041ABF000000000023 +:041AC0000000000022 +:041AC1000000000021 +:041AC2000000000020 +:041AC300000000001F +:041AC400000000001E +:041AC500000000001D +:041AC600000000001C +:041AC700000000001B +:041AC800000000001A +:041AC9000000000019 +:041ACA000000000018 +:041ACB000000000017 +:041ACC000000000016 +:041ACD000000000015 +:041ACE000000000014 +:041ACF000000000013 +:041AD0000000000012 +:041AD1000000000011 +:041AD2000000000010 +:041AD300000000000F +:041AD400000000000E +:041AD500000000000D +:041AD600000000000C +:041AD700000000000B +:041AD800000000000A +:041AD9000000000009 +:041ADA000000000008 +:041ADB000000000007 +:041ADC000000000006 +:041ADD000000000005 +:041ADE000000000004 +:041ADF000000000003 +:041AE0000000000002 +:041AE1000000000001 +:041AE2000000000000 +:041AE30000000000FF +:041AE40000000000FE +:041AE50000000000FD +:041AE60000000000FC +:041AE70000000000FB +:041AE80000000000FA +:041AE90000000000F9 +:041AEA0000000000F8 +:041AEB0000000000F7 +:041AEC0000000000F6 +:041AED0000000000F5 +:041AEE0000000000F4 +:041AEF0000000000F3 +:041AF00000000000F2 +:041AF10000000000F1 +:041AF20000000000F0 +:041AF30000000000EF +:041AF40000000000EE +:041AF50000000000ED +:041AF60000000000EC +:041AF70000000000EB +:041AF80000000000EA +:041AF90000000000E9 +:041AFA0000000000E8 +:041AFB0000000000E7 +:041AFC0000000000E6 +:041AFD0000000000E5 +:041AFE0000000000E4 +:041AFF0000000000E3 +:041B000000000000E1 +:041B010000000000E0 +:041B020000000000DF +:041B030000000000DE +:041B040000000000DD +:041B050000000000DC +:041B060000000000DB +:041B070000000000DA +:041B080000000000D9 +:041B090000000000D8 +:041B0A0000000000D7 +:041B0B0000000000D6 +:041B0C0000000000D5 +:041B0D0000000000D4 +:041B0E0000000000D3 +:041B0F0000000000D2 +:041B100000000000D1 +:041B110000000000D0 +:041B120000000000CF +:041B130000000000CE +:041B140000000000CD +:041B150000000000CC +:041B160000000000CB +:041B170000000000CA +:041B180000000000C9 +:041B190000000000C8 +:041B1A0000000000C7 +:041B1B0000000000C6 +:041B1C0000000000C5 +:041B1D0000000000C4 +:041B1E0000000000C3 +:041B1F0000000000C2 +:041B200000000000C1 +:041B210000000000C0 +:041B220000000000BF +:041B230000000000BE +:041B240000000000BD +:041B250000000000BC +:041B260000000000BB +:041B270000000000BA +:041B280000000000B9 +:041B290000000000B8 +:041B2A0000000000B7 +:041B2B0000000000B6 +:041B2C0000000000B5 +:041B2D0000000000B4 +:041B2E0000000000B3 +:041B2F0000000000B2 +:041B300000000000B1 +:041B310000000000B0 +:041B320000000000AF +:041B330000000000AE +:041B340000000000AD +:041B350000000000AC +:041B360000000000AB +:041B370000000000AA +:041B380000000000A9 +:041B390000000000A8 +:041B3A0000000000A7 +:041B3B0000000000A6 +:041B3C0000000000A5 +:041B3D0000000000A4 +:041B3E0000000000A3 +:041B3F0000000000A2 +:041B400000000000A1 +:041B410000000000A0 +:041B4200000000009F +:041B4300000000009E +:041B4400000000009D +:041B4500000000009C +:041B4600000000009B +:041B4700000000009A +:041B48000000000099 +:041B49000000000098 +:041B4A000000000097 +:041B4B000000000096 +:041B4C000000000095 +:041B4D000000000094 +:041B4E000000000093 +:041B4F000000000092 +:041B50000000000091 +:041B51000000000090 +:041B5200000000008F +:041B5300000000008E +:041B5400000000008D +:041B5500000000008C +:041B5600000000008B +:041B5700000000008A +:041B58000000000089 +:041B59000000000088 +:041B5A000000000087 +:041B5B000000000086 +:041B5C000000000085 +:041B5D000000000084 +:041B5E000000000083 +:041B5F000000000082 +:041B60000000000081 +:041B61000000000080 +:041B6200000000007F +:041B6300000000007E +:041B6400000000007D +:041B6500000000007C +:041B6600000000007B +:041B6700000000007A +:041B68000000000079 +:041B69000000000078 +:041B6A000000000077 +:041B6B000000000076 +:041B6C000000000075 +:041B6D000000000074 +:041B6E000000000073 +:041B6F000000000072 +:041B70000000000071 +:041B71000000000070 +:041B7200000000006F +:041B7300000000006E +:041B7400000000006D +:041B7500000000006C +:041B7600000000006B +:041B7700000000006A +:041B78000000000069 +:041B79000000000068 +:041B7A000000000067 +:041B7B000000000066 +:041B7C000000000065 +:041B7D000000000064 +:041B7E000000000063 +:041B7F000000000062 +:041B80000000000061 +:041B81000000000060 +:041B8200000000005F +:041B8300000000005E +:041B8400000000005D +:041B8500000000005C +:041B8600000000005B +:041B8700000000005A +:041B88000000000059 +:041B89000000000058 +:041B8A000000000057 +:041B8B000000000056 +:041B8C000000000055 +:041B8D000000000054 +:041B8E000000000053 +:041B8F000000000052 +:041B90000000000051 +:041B91000000000050 +:041B9200000000004F +:041B9300000000004E +:041B9400000000004D +:041B9500000000004C +:041B9600000000004B +:041B9700000000004A +:041B98000000000049 +:041B99000000000048 +:041B9A000000000047 +:041B9B000000000046 +:041B9C000000000045 +:041B9D000000000044 +:041B9E000000000043 +:041B9F000000000042 +:041BA0000000000041 +:041BA1000000000040 +:041BA200000000003F +:041BA300000000003E +:041BA400000000003D +:041BA500000000003C +:041BA600000000003B +:041BA700000000003A +:041BA8000000000039 +:041BA9000000000038 +:041BAA000000000037 +:041BAB000000000036 +:041BAC000000000035 +:041BAD000000000034 +:041BAE000000000033 +:041BAF000000000032 +:041BB0000000000031 +:041BB1000000000030 +:041BB200000000002F +:041BB300000000002E +:041BB400000000002D +:041BB500000000002C +:041BB600000000002B +:041BB700000000002A +:041BB8000000000029 +:041BB9000000000028 +:041BBA000000000027 +:041BBB000000000026 +:041BBC000000000025 +:041BBD000000000024 +:041BBE000000000023 +:041BBF000000000022 +:041BC0000000000021 +:041BC1000000000020 +:041BC200000000001F +:041BC300000000001E +:041BC400000000001D +:041BC500000000001C +:041BC600000000001B +:041BC700000000001A +:041BC8000000000019 +:041BC9000000000018 +:041BCA000000000017 +:041BCB000000000016 +:041BCC000000000015 +:041BCD000000000014 +:041BCE000000000013 +:041BCF000000000012 +:041BD0000000000011 +:041BD1000000000010 +:041BD200000000000F +:041BD300000000000E +:041BD400000000000D +:041BD500000000000C +:041BD600000000000B +:041BD700000000000A +:041BD8000000000009 +:041BD9000000000008 +:041BDA000000000007 +:041BDB000000000006 +:041BDC000000000005 +:041BDD000000000004 +:041BDE000000000003 +:041BDF000000000002 +:041BE0000000000001 +:041BE1000000000000 +:041BE20000000000FF +:041BE30000000000FE +:041BE40000000000FD +:041BE50000000000FC +:041BE60000000000FB +:041BE70000000000FA +:041BE80000000000F9 +:041BE90000000000F8 +:041BEA0000000000F7 +:041BEB0000000000F6 +:041BEC0000000000F5 +:041BED0000000000F4 +:041BEE0000000000F3 +:041BEF0000000000F2 +:041BF00000000000F1 +:041BF10000000000F0 +:041BF20000000000EF +:041BF30000000000EE +:041BF40000000000ED +:041BF50000000000EC +:041BF60000000000EB +:041BF70000000000EA +:041BF80000000000E9 +:041BF90000000000E8 +:041BFA0000000000E7 +:041BFB0000000000E6 +:041BFC0000000000E5 +:041BFD0000000000E4 +:041BFE0000000000E3 +:041BFF0000000000E2 +:041C000000000000E0 +:041C010000000000DF +:041C020000000000DE +:041C030000000000DD +:041C040000000000DC +:041C050000000000DB +:041C060000000000DA +:041C070000000000D9 +:041C080000000000D8 +:041C090000000000D7 +:041C0A0000000000D6 +:041C0B0000000000D5 +:041C0C0000000000D4 +:041C0D0000000000D3 +:041C0E0000000000D2 +:041C0F0000000000D1 +:041C100000000000D0 +:041C110000000000CF +:041C120000000000CE +:041C130000000000CD +:041C140000000000CC +:041C150000000000CB +:041C160000000000CA +:041C170000000000C9 +:041C180000000000C8 +:041C190000000000C7 +:041C1A0000000000C6 +:041C1B0000000000C5 +:041C1C0000000000C4 +:041C1D0000000000C3 +:041C1E0000000000C2 +:041C1F0000000000C1 +:041C200000000000C0 +:041C210000000000BF +:041C220000000000BE +:041C230000000000BD +:041C240000000000BC +:041C250000000000BB +:041C260000000000BA +:041C270000000000B9 +:041C280000000000B8 +:041C290000000000B7 +:041C2A0000000000B6 +:041C2B0000000000B5 +:041C2C0000000000B4 +:041C2D0000000000B3 +:041C2E0000000000B2 +:041C2F0000000000B1 +:041C300000000000B0 +:041C310000000000AF +:041C320000000000AE +:041C330000000000AD +:041C340000000000AC +:041C350000000000AB +:041C360000000000AA +:041C370000000000A9 +:041C380000000000A8 +:041C390000000000A7 +:041C3A0000000000A6 +:041C3B0000000000A5 +:041C3C0000000000A4 +:041C3D0000000000A3 +:041C3E0000000000A2 +:041C3F0000000000A1 +:041C400000000000A0 +:041C4100000000009F +:041C4200000000009E +:041C4300000000009D +:041C4400000000009C +:041C4500000000009B +:041C4600000000009A +:041C47000000000099 +:041C48000000000098 +:041C49000000000097 +:041C4A000000000096 +:041C4B000000000095 +:041C4C000000000094 +:041C4D000000000093 +:041C4E000000000092 +:041C4F000000000091 +:041C50000000000090 +:041C5100000000008F +:041C5200000000008E +:041C5300000000008D +:041C5400000000008C +:041C5500000000008B +:041C5600000000008A +:041C57000000000089 +:041C58000000000088 +:041C59000000000087 +:041C5A000000000086 +:041C5B000000000085 +:041C5C000000000084 +:041C5D000000000083 +:041C5E000000000082 +:041C5F000000000081 +:041C60000000000080 +:041C6100000000007F +:041C6200000000007E +:041C6300000000007D +:041C6400000000007C +:041C6500000000007B +:041C6600000000007A +:041C67000000000079 +:041C68000000000078 +:041C69000000000077 +:041C6A000000000076 +:041C6B000000000075 +:041C6C000000000074 +:041C6D000000000073 +:041C6E000000000072 +:041C6F000000000071 +:041C70000000000070 +:041C7100000000006F +:041C7200000000006E +:041C7300000000006D +:041C7400000000006C +:041C7500000000006B +:041C7600000000006A +:041C77000000000069 +:041C78000000000068 +:041C79000000000067 +:041C7A000000000066 +:041C7B000000000065 +:041C7C000000000064 +:041C7D000000000063 +:041C7E000000000062 +:041C7F000000000061 +:041C80000000000060 +:041C8100000000005F +:041C8200000000005E +:041C8300000000005D +:041C8400000000005C +:041C8500000000005B +:041C8600000000005A +:041C87000000000059 +:041C88000000000058 +:041C89000000000057 +:041C8A000000000056 +:041C8B000000000055 +:041C8C000000000054 +:041C8D000000000053 +:041C8E000000000052 +:041C8F000000000051 +:041C90000000000050 +:041C9100000000004F +:041C9200000000004E +:041C9300000000004D +:041C9400000000004C +:041C9500000000004B +:041C9600000000004A +:041C97000000000049 +:041C98000000000048 +:041C99000000000047 +:041C9A000000000046 +:041C9B000000000045 +:041C9C000000000044 +:041C9D000000000043 +:041C9E000000000042 +:041C9F000000000041 +:041CA0000000000040 +:041CA100000000003F +:041CA200000000003E +:041CA300000000003D +:041CA400000000003C +:041CA500000000003B +:041CA600000000003A +:041CA7000000000039 +:041CA8000000000038 +:041CA9000000000037 +:041CAA000000000036 +:041CAB000000000035 +:041CAC000000000034 +:041CAD000000000033 +:041CAE000000000032 +:041CAF000000000031 +:041CB0000000000030 +:041CB100000000002F +:041CB200000000002E +:041CB300000000002D +:041CB400000000002C +:041CB500000000002B +:041CB600000000002A +:041CB7000000000029 +:041CB8000000000028 +:041CB9000000000027 +:041CBA000000000026 +:041CBB000000000025 +:041CBC000000000024 +:041CBD000000000023 +:041CBE000000000022 +:041CBF000000000021 +:041CC0000000000020 +:041CC100000000001F +:041CC200000000001E +:041CC300000000001D +:041CC400000000001C +:041CC500000000001B +:041CC600000000001A +:041CC7000000000019 +:041CC8000000000018 +:041CC9000000000017 +:041CCA000000000016 +:041CCB000000000015 +:041CCC000000000014 +:041CCD000000000013 +:041CCE000000000012 +:041CCF000000000011 +:041CD0000000000010 +:041CD100000000000F +:041CD200000000000E +:041CD300000000000D +:041CD400000000000C +:041CD500000000000B +:041CD600000000000A +:041CD7000000000009 +:041CD8000000000008 +:041CD9000000000007 +:041CDA000000000006 +:041CDB000000000005 +:041CDC000000000004 +:041CDD000000000003 +:041CDE000000000002 +:041CDF000000000001 +:041CE0000000000000 +:041CE10000000000FF +:041CE20000000000FE +:041CE30000000000FD +:041CE40000000000FC +:041CE50000000000FB +:041CE60000000000FA +:041CE70000000000F9 +:041CE80000000000F8 +:041CE90000000000F7 +:041CEA0000000000F6 +:041CEB0000000000F5 +:041CEC0000000000F4 +:041CED0000000000F3 +:041CEE0000000000F2 +:041CEF0000000000F1 +:041CF00000000000F0 +:041CF10000000000EF +:041CF20000000000EE +:041CF30000000000ED +:041CF40000000000EC +:041CF50000000000EB +:041CF60000000000EA +:041CF70000000000E9 +:041CF80000000000E8 +:041CF90000000000E7 +:041CFA0000000000E6 +:041CFB0000000000E5 +:041CFC0000000000E4 +:041CFD0000000000E3 +:041CFE0000000000E2 +:041CFF0000000000E1 +:041D000000000000DF +:041D010000000000DE +:041D020000000000DD +:041D030000000000DC +:041D040000000000DB +:041D050000000000DA +:041D060000000000D9 +:041D070000000000D8 +:041D080000000000D7 +:041D090000000000D6 +:041D0A0000000000D5 +:041D0B0000000000D4 +:041D0C0000000000D3 +:041D0D0000000000D2 +:041D0E0000000000D1 +:041D0F0000000000D0 +:041D100000000000CF +:041D110000000000CE +:041D120000000000CD +:041D130000000000CC +:041D140000000000CB +:041D150000000000CA +:041D160000000000C9 +:041D170000000000C8 +:041D180000000000C7 +:041D190000000000C6 +:041D1A0000000000C5 +:041D1B0000000000C4 +:041D1C0000000000C3 +:041D1D0000000000C2 +:041D1E0000000000C1 +:041D1F0000000000C0 +:041D200000000000BF +:041D210000000000BE +:041D220000000000BD +:041D230000000000BC +:041D240000000000BB +:041D250000000000BA +:041D260000000000B9 +:041D270000000000B8 +:041D280000000000B7 +:041D290000000000B6 +:041D2A0000000000B5 +:041D2B0000000000B4 +:041D2C0000000000B3 +:041D2D0000000000B2 +:041D2E0000000000B1 +:041D2F0000000000B0 +:041D300000000000AF +:041D310000000000AE +:041D320000000000AD +:041D330000000000AC +:041D340000000000AB +:041D350000000000AA +:041D360000000000A9 +:041D370000000000A8 +:041D380000000000A7 +:041D390000000000A6 +:041D3A0000000000A5 +:041D3B0000000000A4 +:041D3C0000000000A3 +:041D3D0000000000A2 +:041D3E0000000000A1 +:041D3F0000000000A0 +:041D4000000000009F +:041D4100000000009E +:041D4200000000009D +:041D4300000000009C +:041D4400000000009B +:041D4500000000009A +:041D46000000000099 +:041D47000000000098 +:041D48000000000097 +:041D49000000000096 +:041D4A000000000095 +:041D4B000000000094 +:041D4C000000000093 +:041D4D000000000092 +:041D4E000000000091 +:041D4F000000000090 +:041D5000000000008F +:041D5100000000008E +:041D5200000000008D +:041D5300000000008C +:041D5400000000008B +:041D5500000000008A +:041D56000000000089 +:041D57000000000088 +:041D58000000000087 +:041D59000000000086 +:041D5A000000000085 +:041D5B000000000084 +:041D5C000000000083 +:041D5D000000000082 +:041D5E000000000081 +:041D5F000000000080 +:041D6000000000007F +:041D6100000000007E +:041D6200000000007D +:041D6300000000007C +:041D6400000000007B +:041D6500000000007A +:041D66000000000079 +:041D67000000000078 +:041D68000000000077 +:041D69000000000076 +:041D6A000000000075 +:041D6B000000000074 +:041D6C000000000073 +:041D6D000000000072 +:041D6E000000000071 +:041D6F000000000070 +:041D7000000000006F +:041D7100000000006E +:041D7200000000006D +:041D7300000000006C +:041D7400000000006B +:041D7500000000006A +:041D76000000000069 +:041D77000000000068 +:041D78000000000067 +:041D79000000000066 +:041D7A000000000065 +:041D7B000000000064 +:041D7C000000000063 +:041D7D000000000062 +:041D7E000000000061 +:041D7F000000000060 +:041D8000000000005F +:041D8100000000005E +:041D8200000000005D +:041D8300000000005C +:041D8400000000005B +:041D8500000000005A +:041D86000000000059 +:041D87000000000058 +:041D88000000000057 +:041D89000000000056 +:041D8A000000000055 +:041D8B000000000054 +:041D8C000000000053 +:041D8D000000000052 +:041D8E000000000051 +:041D8F000000000050 +:041D9000000000004F +:041D9100000000004E +:041D9200000000004D +:041D9300000000004C +:041D9400000000004B +:041D9500000000004A +:041D96000000000049 +:041D97000000000048 +:041D98000000000047 +:041D99000000000046 +:041D9A000000000045 +:041D9B000000000044 +:041D9C000000000043 +:041D9D000000000042 +:041D9E000000000041 +:041D9F000000000040 +:041DA000000000003F +:041DA100000000003E +:041DA200000000003D +:041DA300000000003C +:041DA400000000003B +:041DA500000000003A +:041DA6000000000039 +:041DA7000000000038 +:041DA8000000000037 +:041DA9000000000036 +:041DAA000000000035 +:041DAB000000000034 +:041DAC000000000033 +:041DAD000000000032 +:041DAE000000000031 +:041DAF000000000030 +:041DB000000000002F +:041DB100000000002E +:041DB200000000002D +:041DB300000000002C +:041DB400000000002B +:041DB500000000002A +:041DB6000000000029 +:041DB7000000000028 +:041DB8000000000027 +:041DB9000000000026 +:041DBA000000000025 +:041DBB000000000024 +:041DBC000000000023 +:041DBD000000000022 +:041DBE000000000021 +:041DBF000000000020 +:041DC000000000001F +:041DC100000000001E +:041DC200000000001D +:041DC300000000001C +:041DC400000000001B +:041DC500000000001A +:041DC6000000000019 +:041DC7000000000018 +:041DC8000000000017 +:041DC9000000000016 +:041DCA000000000015 +:041DCB000000000014 +:041DCC000000000013 +:041DCD000000000012 +:041DCE000000000011 +:041DCF000000000010 +:041DD000000000000F +:041DD100000000000E +:041DD200000000000D +:041DD300000000000C +:041DD400000000000B +:041DD500000000000A +:041DD6000000000009 +:041DD7000000000008 +:041DD8000000000007 +:041DD9000000000006 +:041DDA000000000005 +:041DDB000000000004 +:041DDC000000000003 +:041DDD000000000002 +:041DDE000000000001 +:041DDF000000000000 +:041DE00000000000FF +:041DE10000000000FE +:041DE20000000000FD +:041DE30000000000FC +:041DE40000000000FB +:041DE50000000000FA +:041DE60000000000F9 +:041DE70000000000F8 +:041DE80000000000F7 +:041DE90000000000F6 +:041DEA0000000000F5 +:041DEB0000000000F4 +:041DEC0000000000F3 +:041DED0000000000F2 +:041DEE0000000000F1 +:041DEF0000000000F0 +:041DF00000000000EF +:041DF10000000000EE +:041DF20000000000ED +:041DF30000000000EC +:041DF40000000000EB +:041DF50000000000EA +:041DF60000000000E9 +:041DF70000000000E8 +:041DF80000000000E7 +:041DF90000000000E6 +:041DFA0000000000E5 +:041DFB0000000000E4 +:041DFC0000000000E3 +:041DFD0000000000E2 +:041DFE0000000000E1 +:041DFF0000000000E0 +:041E000000000000DE +:041E010000000000DD +:041E020000000000DC +:041E030000000000DB +:041E040000000000DA +:041E050000000000D9 +:041E060000000000D8 +:041E070000000000D7 +:041E080000000000D6 +:041E090000000000D5 +:041E0A0000000000D4 +:041E0B0000000000D3 +:041E0C0000000000D2 +:041E0D0000000000D1 +:041E0E0000000000D0 +:041E0F0000000000CF +:041E100000000000CE +:041E110000000000CD +:041E120000000000CC +:041E130000000000CB +:041E140000000000CA +:041E150000000000C9 +:041E160000000000C8 +:041E170000000000C7 +:041E180000000000C6 +:041E190000000000C5 +:041E1A0000000000C4 +:041E1B0000000000C3 +:041E1C0000000000C2 +:041E1D0000000000C1 +:041E1E0000000000C0 +:041E1F0000000000BF +:041E200000000000BE +:041E210000000000BD +:041E220000000000BC +:041E230000000000BB +:041E240000000000BA +:041E250000000000B9 +:041E260000000000B8 +:041E270000000000B7 +:041E280000000000B6 +:041E290000000000B5 +:041E2A0000000000B4 +:041E2B0000000000B3 +:041E2C0000000000B2 +:041E2D0000000000B1 +:041E2E0000000000B0 +:041E2F0000000000AF +:041E300000000000AE +:041E310000000000AD +:041E320000000000AC +:041E330000000000AB +:041E340000000000AA +:041E350000000000A9 +:041E360000000000A8 +:041E370000000000A7 +:041E380000000000A6 +:041E390000000000A5 +:041E3A0000000000A4 +:041E3B0000000000A3 +:041E3C0000000000A2 +:041E3D0000000000A1 +:041E3E0000000000A0 +:041E3F00000000009F +:041E4000000000009E +:041E4100000000009D +:041E4200000000009C +:041E4300000000009B +:041E4400000000009A +:041E45000000000099 +:041E46000000000098 +:041E47000000000097 +:041E48000000000096 +:041E49000000000095 +:041E4A000000000094 +:041E4B000000000093 +:041E4C000000000092 +:041E4D000000000091 +:041E4E000000000090 +:041E4F00000000008F +:041E5000000000008E +:041E5100000000008D +:041E5200000000008C +:041E5300000000008B +:041E5400000000008A +:041E55000000000089 +:041E56000000000088 +:041E57000000000087 +:041E58000000000086 +:041E59000000000085 +:041E5A000000000084 +:041E5B000000000083 +:041E5C000000000082 +:041E5D000000000081 +:041E5E000000000080 +:041E5F00000000007F +:041E6000000000007E +:041E6100000000007D +:041E6200000000007C +:041E6300000000007B +:041E6400000000007A +:041E65000000000079 +:041E66000000000078 +:041E67000000000077 +:041E68000000000076 +:041E69000000000075 +:041E6A000000000074 +:041E6B000000000073 +:041E6C000000000072 +:041E6D000000000071 +:041E6E000000000070 +:041E6F00000000006F +:041E7000000000006E +:041E7100000000006D +:041E7200000000006C +:041E7300000000006B +:041E7400000000006A +:041E75000000000069 +:041E76000000000068 +:041E77000000000067 +:041E78000000000066 +:041E79000000000065 +:041E7A000000000064 +:041E7B000000000063 +:041E7C000000000062 +:041E7D000000000061 +:041E7E000000000060 +:041E7F00000000005F +:041E8000000000005E +:041E8100000000005D +:041E8200000000005C +:041E8300000000005B +:041E8400000000005A +:041E85000000000059 +:041E86000000000058 +:041E87000000000057 +:041E88000000000056 +:041E89000000000055 +:041E8A000000000054 +:041E8B000000000053 +:041E8C000000000052 +:041E8D000000000051 +:041E8E000000000050 +:041E8F00000000004F +:041E9000000000004E +:041E9100000000004D +:041E9200000000004C +:041E9300000000004B +:041E9400000000004A +:041E95000000000049 +:041E96000000000048 +:041E97000000000047 +:041E98000000000046 +:041E99000000000045 +:041E9A000000000044 +:041E9B000000000043 +:041E9C000000000042 +:041E9D000000000041 +:041E9E000000000040 +:041E9F00000000003F +:041EA000000000003E +:041EA100000000003D +:041EA200000000003C +:041EA300000000003B +:041EA400000000003A +:041EA5000000000039 +:041EA6000000000038 +:041EA7000000000037 +:041EA8000000000036 +:041EA9000000000035 +:041EAA000000000034 +:041EAB000000000033 +:041EAC000000000032 +:041EAD000000000031 +:041EAE000000000030 +:041EAF00000000002F +:041EB000000000002E +:041EB100000000002D +:041EB200000000002C +:041EB300000000002B +:041EB400000000002A +:041EB5000000000029 +:041EB6000000000028 +:041EB7000000000027 +:041EB8000000000026 +:041EB9000000000025 +:041EBA000000000024 +:041EBB000000000023 +:041EBC000000000022 +:041EBD000000000021 +:041EBE000000000020 +:041EBF00000000001F +:041EC000000000001E +:041EC100000000001D +:041EC200000000001C +:041EC300000000001B +:041EC400000000001A +:041EC5000000000019 +:041EC6000000000018 +:041EC7000000000017 +:041EC8000000000016 +:041EC9000000000015 +:041ECA000000000014 +:041ECB000000000013 +:041ECC000000000012 +:041ECD000000000011 +:041ECE000000000010 +:041ECF00000000000F +:041ED000000000000E +:041ED100000000000D +:041ED200000000000C +:041ED300000000000B +:041ED400000000000A +:041ED5000000000009 +:041ED6000000000008 +:041ED7000000000007 +:041ED8000000000006 +:041ED9000000000005 +:041EDA000000000004 +:041EDB000000000003 +:041EDC000000000002 +:041EDD000000000001 +:041EDE000000000000 +:041EDF0000000000FF +:041EE00000000000FE +:041EE10000000000FD +:041EE20000000000FC +:041EE30000000000FB +:041EE40000000000FA +:041EE50000000000F9 +:041EE60000000000F8 +:041EE70000000000F7 +:041EE80000000000F6 +:041EE90000000000F5 +:041EEA0000000000F4 +:041EEB0000000000F3 +:041EEC0000000000F2 +:041EED0000000000F1 +:041EEE0000000000F0 +:041EEF0000000000EF +:041EF00000000000EE +:041EF10000000000ED +:041EF20000000000EC +:041EF30000000000EB +:041EF40000000000EA +:041EF50000000000E9 +:041EF60000000000E8 +:041EF70000000000E7 +:041EF80000000000E6 +:041EF90000000000E5 +:041EFA0000000000E4 +:041EFB0000000000E3 +:041EFC0000000000E2 +:041EFD0000000000E1 +:041EFE0000000000E0 +:041EFF0000000000DF +:041F000000000000DD +:041F010000000000DC +:041F020000000000DB +:041F030000000000DA +:041F040000000000D9 +:041F050000000000D8 +:041F060000000000D7 +:041F070000000000D6 +:041F080000000000D5 +:041F090000000000D4 +:041F0A0000000000D3 +:041F0B0000000000D2 +:041F0C0000000000D1 +:041F0D0000000000D0 +:041F0E0000000000CF +:041F0F0000000000CE +:041F100000000000CD +:041F110000000000CC +:041F120000000000CB +:041F130000000000CA +:041F140000000000C9 +:041F150000000000C8 +:041F160000000000C7 +:041F170000000000C6 +:041F180000000000C5 +:041F190000000000C4 +:041F1A0000000000C3 +:041F1B0000000000C2 +:041F1C0000000000C1 +:041F1D0000000000C0 +:041F1E0000000000BF +:041F1F0000000000BE +:041F200000000000BD +:041F210000000000BC +:041F220000000000BB +:041F230000000000BA +:041F240000000000B9 +:041F250000000000B8 +:041F260000000000B7 +:041F270000000000B6 +:041F280000000000B5 +:041F290000000000B4 +:041F2A0000000000B3 +:041F2B0000000000B2 +:041F2C0000000000B1 +:041F2D0000000000B0 +:041F2E0000000000AF +:041F2F0000000000AE +:041F300000000000AD +:041F310000000000AC +:041F320000000000AB +:041F330000000000AA +:041F340000000000A9 +:041F350000000000A8 +:041F360000000000A7 +:041F370000000000A6 +:041F380000000000A5 +:041F390000000000A4 +:041F3A0000000000A3 +:041F3B0000000000A2 +:041F3C0000000000A1 +:041F3D0000000000A0 +:041F3E00000000009F +:041F3F00000000009E +:041F4000000000009D +:041F4100000000009C +:041F4200000000009B +:041F4300000000009A +:041F44000000000099 +:041F45000000000098 +:041F46000000000097 +:041F47000000000096 +:041F48000000000095 +:041F49000000000094 +:041F4A000000000093 +:041F4B000000000092 +:041F4C000000000091 +:041F4D000000000090 +:041F4E00000000008F +:041F4F00000000008E +:041F5000000000008D +:041F5100000000008C +:041F5200000000008B +:041F5300000000008A +:041F54000000000089 +:041F55000000000088 +:041F56000000000087 +:041F57000000000086 +:041F58000000000085 +:041F59000000000084 +:041F5A000000000083 +:041F5B000000000082 +:041F5C000000000081 +:041F5D000000000080 +:041F5E00000000007F +:041F5F00000000007E +:041F6000000000007D +:041F6100000000007C +:041F6200000000007B +:041F6300000000007A +:041F64000000000079 +:041F65000000000078 +:041F66000000000077 +:041F67000000000076 +:041F68000000000075 +:041F69000000000074 +:041F6A000000000073 +:041F6B000000000072 +:041F6C000000000071 +:041F6D000000000070 +:041F6E00000000006F +:041F6F00000000006E +:041F7000000000006D +:041F7100000000006C +:041F7200000000006B +:041F7300000000006A +:041F74000000000069 +:041F75000000000068 +:041F76000000000067 +:041F77000000000066 +:041F78000000000065 +:041F79000000000064 +:041F7A000000000063 +:041F7B000000000062 +:041F7C000000000061 +:041F7D000000000060 +:041F7E00000000005F +:041F7F00000000005E +:041F8000000000005D +:041F8100000000005C +:041F8200000000005B +:041F8300000000005A +:041F84000000000059 +:041F85000000000058 +:041F86000000000057 +:041F87000000000056 +:041F88000000000055 +:041F89000000000054 +:041F8A000000000053 +:041F8B000000000052 +:041F8C000000000051 +:041F8D000000000050 +:041F8E00000000004F +:041F8F00000000004E +:041F9000000000004D +:041F9100000000004C +:041F9200000000004B +:041F9300000000004A +:041F94000000000049 +:041F95000000000048 +:041F96000000000047 +:041F97000000000046 +:041F98000000000045 +:041F99000000000044 +:041F9A000000000043 +:041F9B000000000042 +:041F9C000000000041 +:041F9D000000000040 +:041F9E00000000003F +:041F9F00000000003E +:041FA000000000003D +:041FA100000000003C +:041FA200000000003B +:041FA300000000003A +:041FA4000000000039 +:041FA5000000000038 +:041FA6000000000037 +:041FA7000000000036 +:041FA8000000000035 +:041FA9000000000034 +:041FAA000000000033 +:041FAB000000000032 +:041FAC000000000031 +:041FAD000000000030 +:041FAE00000000002F +:041FAF00000000002E +:041FB000000000002D +:041FB100000000002C +:041FB200000000002B +:041FB300000000002A +:041FB4000000000029 +:041FB5000000000028 +:041FB6000000000027 +:041FB7000000000026 +:041FB8000000000025 +:041FB9000000000024 +:041FBA000000000023 +:041FBB000000000022 +:041FBC000000000021 +:041FBD000000000020 +:041FBE00000000001F +:041FBF00000000001E +:041FC000000000001D +:041FC100000000001C +:041FC200000000001B +:041FC300000000001A +:041FC4000000000019 +:041FC5000000000018 +:041FC6000000000017 +:041FC7000000000016 +:041FC8000000000015 +:041FC9000000000014 +:041FCA000000000013 +:041FCB000000000012 +:041FCC000000000011 +:041FCD000000000010 +:041FCE00000000000F +:041FCF00000000000E +:041FD000000000000D +:041FD100000000000C +:041FD200000000000B +:041FD300000000000A +:041FD4000000000009 +:041FD5000000000008 +:041FD6000000000007 +:041FD7000000000006 +:041FD8000000000005 +:041FD9000000000004 +:041FDA000000000003 +:041FDB000000000002 +:041FDC000000000001 +:041FDD000000000000 +:041FDE0000000000FF +:041FDF0000000000FE +:041FE00000000000FD +:041FE10000000000FC +:041FE20000000000FB +:041FE30000000000FA +:041FE40000000000F9 +:041FE50000000000F8 +:041FE60000000000F7 +:041FE70000000000F6 +:041FE80000000000F5 +:041FE90000000000F4 +:041FEA0000000000F3 +:041FEB0000000000F2 +:041FEC0000000000F1 +:041FED0000000000F0 +:041FEE0000000000EF +:041FEF0000000000EE +:041FF00000000000ED +:041FF10000000000EC +:041FF20000000000EB +:041FF30000000000EA +:041FF40000000000E9 +:041FF50000000000E8 +:041FF60000000000E7 +:041FF70000000000E6 +:041FF80000000000E5 +:041FF90000000000E4 +:041FFA0000000000E3 +:041FFB0000000000E2 +:041FFC0000000000E1 +:041FFD0000000000E0 +:041FFE0000000000DF +:041FFF0000000000DE +:0420000000000000DC +:0420010000000000DB +:0420020000000000DA +:0420030000000000D9 +:0420040000000000D8 +:0420050000000000D7 +:0420060000000000D6 +:0420070000000000D5 +:0420080000000000D4 +:0420090000000000D3 +:04200A0000000000D2 +:04200B0000000000D1 +:04200C0000000000D0 +:04200D0000000000CF +:04200E0000000000CE +:04200F0000000000CD +:0420100000000000CC +:0420110000000000CB +:0420120000000000CA +:0420130000000000C9 +:0420140000000000C8 +:0420150000000000C7 +:0420160000000000C6 +:0420170000000000C5 +:0420180000000000C4 +:0420190000000000C3 +:04201A0000000000C2 +:04201B0000000000C1 +:04201C0000000000C0 +:04201D0000000000BF +:04201E0000000000BE +:04201F0000000000BD +:0420200000000000BC +:0420210000000000BB +:0420220000000000BA +:0420230000000000B9 +:0420240000000000B8 +:0420250000000000B7 +:0420260000000000B6 +:0420270000000000B5 +:0420280000000000B4 +:0420290000000000B3 +:04202A0000000000B2 +:04202B0000000000B1 +:04202C0000000000B0 +:04202D0000000000AF +:04202E0000000000AE +:04202F0000000000AD +:0420300000000000AC +:0420310000000000AB +:0420320000000000AA +:0420330000000000A9 +:0420340000000000A8 +:0420350000000000A7 +:0420360000000000A6 +:0420370000000000A5 +:0420380000000000A4 +:0420390000000000A3 +:04203A0000000000A2 +:04203B0000000000A1 +:04203C0000000000A0 +:04203D00000000009F +:04203E00000000009E +:04203F00000000009D +:04204000000000009C +:04204100000000009B +:04204200000000009A +:042043000000000099 +:042044000000000098 +:042045000000000097 +:042046000000000096 +:042047000000000095 +:042048000000000094 +:042049000000000093 +:04204A000000000092 +:04204B000000000091 +:04204C000000000090 +:04204D00000000008F +:04204E00000000008E +:04204F00000000008D +:04205000000000008C +:04205100000000008B +:04205200000000008A +:042053000000000089 +:042054000000000088 +:042055000000000087 +:042056000000000086 +:042057000000000085 +:042058000000000084 +:042059000000000083 +:04205A000000000082 +:04205B000000000081 +:04205C000000000080 +:04205D00000000007F +:04205E00000000007E +:04205F00000000007D +:04206000000000007C +:04206100000000007B +:04206200000000007A +:042063000000000079 +:042064000000000078 +:042065000000000077 +:042066000000000076 +:042067000000000075 +:042068000000000074 +:042069000000000073 +:04206A000000000072 +:04206B000000000071 +:04206C000000000070 +:04206D00000000006F +:04206E00000000006E +:04206F00000000006D +:04207000000000006C +:04207100000000006B +:04207200000000006A +:042073000000000069 +:042074000000000068 +:042075000000000067 +:042076000000000066 +:042077000000000065 +:042078000000000064 +:042079000000000063 +:04207A000000000062 +:04207B000000000061 +:04207C000000000060 +:04207D00000000005F +:04207E00000000005E +:04207F00000000005D +:04208000000000005C +:04208100000000005B +:04208200000000005A +:042083000000000059 +:042084000000000058 +:042085000000000057 +:042086000000000056 +:042087000000000055 +:042088000000000054 +:042089000000000053 +:04208A000000000052 +:04208B000000000051 +:04208C000000000050 +:04208D00000000004F +:04208E00000000004E +:04208F00000000004D +:04209000000000004C +:04209100000000004B +:04209200000000004A +:042093000000000049 +:042094000000000048 +:042095000000000047 +:042096000000000046 +:042097000000000045 +:042098000000000044 +:042099000000000043 +:04209A000000000042 +:04209B000000000041 +:04209C000000000040 +:04209D00000000003F +:04209E00000000003E +:04209F00000000003D +:0420A000000000003C +:0420A100000000003B +:0420A200000000003A +:0420A3000000000039 +:0420A4000000000038 +:0420A5000000000037 +:0420A6000000000036 +:0420A7000000000035 +:0420A8000000000034 +:0420A9000000000033 +:0420AA000000000032 +:0420AB000000000031 +:0420AC000000000030 +:0420AD00000000002F +:0420AE00000000002E +:0420AF00000000002D +:0420B000000000002C +:0420B100000000002B +:0420B200000000002A +:0420B3000000000029 +:0420B4000000000028 +:0420B5000000000027 +:0420B6000000000026 +:0420B7000000000025 +:0420B8000000000024 +:0420B9000000000023 +:0420BA000000000022 +:0420BB000000000021 +:0420BC000000000020 +:0420BD00000000001F +:0420BE00000000001E +:0420BF00000000001D +:0420C000000000001C +:0420C100000000001B +:0420C200000000001A +:0420C3000000000019 +:0420C4000000000018 +:0420C5000000000017 +:0420C6000000000016 +:0420C7000000000015 +:0420C8000000000014 +:0420C9000000000013 +:0420CA000000000012 +:0420CB000000000011 +:0420CC000000000010 +:0420CD00000000000F +:0420CE00000000000E +:0420CF00000000000D +:0420D000000000000C +:0420D100000000000B +:0420D200000000000A +:0420D3000000000009 +:0420D4000000000008 +:0420D5000000000007 +:0420D6000000000006 +:0420D7000000000005 +:0420D8000000000004 +:0420D9000000000003 +:0420DA000000000002 +:0420DB000000000001 +:0420DC000000000000 +:0420DD0000000000FF +:0420DE0000000000FE +:0420DF0000000000FD +:0420E00000000000FC +:0420E10000000000FB +:0420E20000000000FA +:0420E30000000000F9 +:0420E40000000000F8 +:0420E50000000000F7 +:0420E60000000000F6 +:0420E70000000000F5 +:0420E80000000000F4 +:0420E90000000000F3 +:0420EA0000000000F2 +:0420EB0000000000F1 +:0420EC0000000000F0 +:0420ED0000000000EF +:0420EE0000000000EE +:0420EF0000000000ED +:0420F00000000000EC +:0420F10000000000EB +:0420F20000000000EA +:0420F30000000000E9 +:0420F40000000000E8 +:0420F50000000000E7 +:0420F60000000000E6 +:0420F70000000000E5 +:0420F80000000000E4 +:0420F90000000000E3 +:0420FA0000000000E2 +:0420FB0000000000E1 +:0420FC0000000000E0 +:0420FD0000000000DF +:0420FE0000000000DE +:0420FF0000000000DD +:0421000000000000DB +:0421010000000000DA +:0421020000000000D9 +:0421030000000000D8 +:0421040000000000D7 +:0421050000000000D6 +:0421060000000000D5 +:0421070000000000D4 +:0421080000000000D3 +:0421090000000000D2 +:04210A0000000000D1 +:04210B0000000000D0 +:04210C0000000000CF +:04210D0000000000CE +:04210E0000000000CD +:04210F0000000000CC +:0421100000000000CB +:0421110000000000CA +:0421120000000000C9 +:0421130000000000C8 +:0421140000000000C7 +:0421150000000000C6 +:0421160000000000C5 +:0421170000000000C4 +:0421180000000000C3 +:0421190000000000C2 +:04211A0000000000C1 +:04211B0000000000C0 +:04211C0000000000BF +:04211D0000000000BE +:04211E0000000000BD +:04211F0000000000BC +:0421200000000000BB +:0421210000000000BA +:0421220000000000B9 +:0421230000000000B8 +:0421240000000000B7 +:0421250000000000B6 +:0421260000000000B5 +:0421270000000000B4 +:0421280000000000B3 +:0421290000000000B2 +:04212A0000000000B1 +:04212B0000000000B0 +:04212C0000000000AF +:04212D0000000000AE +:04212E0000000000AD +:04212F0000000000AC +:0421300000000000AB +:0421310000000000AA +:0421320000000000A9 +:0421330000000000A8 +:0421340000000000A7 +:0421350000000000A6 +:0421360000000000A5 +:0421370000000000A4 +:0421380000000000A3 +:0421390000000000A2 +:04213A0000000000A1 +:04213B0000000000A0 +:04213C00000000009F +:04213D00000000009E +:04213E00000000009D +:04213F00000000009C +:04214000000000009B +:04214100000000009A +:042142000000000099 +:042143000000000098 +:042144000000000097 +:042145000000000096 +:042146000000000095 +:042147000000000094 +:042148000000000093 +:042149000000000092 +:04214A000000000091 +:04214B000000000090 +:04214C00000000008F +:04214D00000000008E +:04214E00000000008D +:04214F00000000008C +:04215000000000008B +:04215100000000008A +:042152000000000089 +:042153000000000088 +:042154000000000087 +:042155000000000086 +:042156000000000085 +:042157000000000084 +:042158000000000083 +:042159000000000082 +:04215A000000000081 +:04215B000000000080 +:04215C00000000007F +:04215D00000000007E +:04215E00000000007D +:04215F00000000007C +:04216000000000007B +:04216100000000007A +:042162000000000079 +:042163000000000078 +:042164000000000077 +:042165000000000076 +:042166000000000075 +:042167000000000074 +:042168000000000073 +:042169000000000072 +:04216A000000000071 +:04216B000000000070 +:04216C00000000006F +:04216D00000000006E +:04216E00000000006D +:04216F00000000006C +:04217000000000006B +:04217100000000006A +:042172000000000069 +:042173000000000068 +:042174000000000067 +:042175000000000066 +:042176000000000065 +:042177000000000064 +:042178000000000063 +:042179000000000062 +:04217A000000000061 +:04217B000000000060 +:04217C00000000005F +:04217D00000000005E +:04217E00000000005D +:04217F00000000005C +:04218000000000005B +:04218100000000005A +:042182000000000059 +:042183000000000058 +:042184000000000057 +:042185000000000056 +:042186000000000055 +:042187000000000054 +:042188000000000053 +:042189000000000052 +:04218A000000000051 +:04218B000000000050 +:04218C00000000004F +:04218D00000000004E +:04218E00000000004D +:04218F00000000004C +:04219000000000004B +:04219100000000004A +:042192000000000049 +:042193000000000048 +:042194000000000047 +:042195000000000046 +:042196000000000045 +:042197000000000044 +:042198000000000043 +:042199000000000042 +:04219A000000000041 +:04219B000000000040 +:04219C00000000003F +:04219D00000000003E +:04219E00000000003D +:04219F00000000003C +:0421A000000000003B +:0421A100000000003A +:0421A2000000000039 +:0421A3000000000038 +:0421A4000000000037 +:0421A5000000000036 +:0421A6000000000035 +:0421A7000000000034 +:0421A8000000000033 +:0421A9000000000032 +:0421AA000000000031 +:0421AB000000000030 +:0421AC00000000002F +:0421AD00000000002E +:0421AE00000000002D +:0421AF00000000002C +:0421B000000000002B +:0421B100000000002A +:0421B2000000000029 +:0421B3000000000028 +:0421B4000000000027 +:0421B5000000000026 +:0421B6000000000025 +:0421B7000000000024 +:0421B8000000000023 +:0421B9000000000022 +:0421BA000000000021 +:0421BB000000000020 +:0421BC00000000001F +:0421BD00000000001E +:0421BE00000000001D +:0421BF00000000001C +:0421C000000000001B +:0421C100000000001A +:0421C2000000000019 +:0421C3000000000018 +:0421C4000000000017 +:0421C5000000000016 +:0421C6000000000015 +:0421C7000000000014 +:0421C8000000000013 +:0421C9000000000012 +:0421CA000000000011 +:0421CB000000000010 +:0421CC00000000000F +:0421CD00000000000E +:0421CE00000000000D +:0421CF00000000000C +:0421D000000000000B +:0421D100000000000A +:0421D2000000000009 +:0421D3000000000008 +:0421D4000000000007 +:0421D5000000000006 +:0421D6000000000005 +:0421D7000000000004 +:0421D8000000000003 +:0421D9000000000002 +:0421DA000000000001 +:0421DB000000000000 +:0421DC0000000000FF +:0421DD0000000000FE +:0421DE0000000000FD +:0421DF0000000000FC +:0421E00000000000FB +:0421E10000000000FA +:0421E20000000000F9 +:0421E30000000000F8 +:0421E40000000000F7 +:0421E50000000000F6 +:0421E60000000000F5 +:0421E70000000000F4 +:0421E80000000000F3 +:0421E90000000000F2 +:0421EA0000000000F1 +:0421EB0000000000F0 +:0421EC0000000000EF +:0421ED0000000000EE +:0421EE0000000000ED +:0421EF0000000000EC +:0421F00000000000EB +:0421F10000000000EA +:0421F20000000000E9 +:0421F30000000000E8 +:0421F40000000000E7 +:0421F50000000000E6 +:0421F60000000000E5 +:0421F70000000000E4 +:0421F80000000000E3 +:0421F90000000000E2 +:0421FA0000000000E1 +:0421FB0000000000E0 +:0421FC0000000000DF +:0421FD0000000000DE +:0421FE0000000000DD +:0421FF0000000000DC +:0422000000000000DA +:0422010000000000D9 +:0422020000000000D8 +:0422030000000000D7 +:0422040000000000D6 +:0422050000000000D5 +:0422060000000000D4 +:0422070000000000D3 +:0422080000000000D2 +:0422090000000000D1 +:04220A0000000000D0 +:04220B0000000000CF +:04220C0000000000CE +:04220D0000000000CD +:04220E0000000000CC +:04220F0000000000CB +:0422100000000000CA +:0422110000000000C9 +:0422120000000000C8 +:0422130000000000C7 +:0422140000000000C6 +:0422150000000000C5 +:0422160000000000C4 +:0422170000000000C3 +:0422180000000000C2 +:0422190000000000C1 +:04221A0000000000C0 +:04221B0000000000BF +:04221C0000000000BE +:04221D0000000000BD +:04221E0000000000BC +:04221F0000000000BB +:0422200000000000BA +:0422210000000000B9 +:0422220000000000B8 +:0422230000000000B7 +:0422240000000000B6 +:0422250000000000B5 +:0422260000000000B4 +:0422270000000000B3 +:0422280000000000B2 +:0422290000000000B1 +:04222A0000000000B0 +:04222B0000000000AF +:04222C0000000000AE +:04222D0000000000AD +:04222E0000000000AC +:04222F0000000000AB +:0422300000000000AA +:0422310000000000A9 +:0422320000000000A8 +:0422330000000000A7 +:0422340000000000A6 +:0422350000000000A5 +:0422360000000000A4 +:0422370000000000A3 +:0422380000000000A2 +:0422390000000000A1 +:04223A0000000000A0 +:04223B00000000009F +:04223C00000000009E +:04223D00000000009D +:04223E00000000009C +:04223F00000000009B +:04224000000000009A +:042241000000000099 +:042242000000000098 +:042243000000000097 +:042244000000000096 +:042245000000000095 +:042246000000000094 +:042247000000000093 +:042248000000000092 +:042249000000000091 +:04224A000000000090 +:04224B00000000008F +:04224C00000000008E +:04224D00000000008D +:04224E00000000008C +:04224F00000000008B +:04225000000000008A +:042251000000000089 +:042252000000000088 +:042253000000000087 +:042254000000000086 +:042255000000000085 +:042256000000000084 +:042257000000000083 +:042258000000000082 +:042259000000000081 +:04225A000000000080 +:04225B00000000007F +:04225C00000000007E +:04225D00000000007D +:04225E00000000007C +:04225F00000000007B +:04226000000000007A +:042261000000000079 +:042262000000000078 +:042263000000000077 +:042264000000000076 +:042265000000000075 +:042266000000000074 +:042267000000000073 +:042268000000000072 +:042269000000000071 +:04226A000000000070 +:04226B00000000006F +:04226C00000000006E +:04226D00000000006D +:04226E00000000006C +:04226F00000000006B +:04227000000000006A +:042271000000000069 +:042272000000000068 +:042273000000000067 +:042274000000000066 +:042275000000000065 +:042276000000000064 +:042277000000000063 +:042278000000000062 +:042279000000000061 +:04227A000000000060 +:04227B00000000005F +:04227C00000000005E +:04227D00000000005D +:04227E00000000005C +:04227F00000000005B +:04228000000000005A +:042281000000000059 +:042282000000000058 +:042283000000000057 +:042284000000000056 +:042285000000000055 +:042286000000000054 +:042287000000000053 +:042288000000000052 +:042289000000000051 +:04228A000000000050 +:04228B00000000004F +:04228C00000000004E +:04228D00000000004D +:04228E00000000004C +:04228F00000000004B +:04229000000000004A +:042291000000000049 +:042292000000000048 +:042293000000000047 +:042294000000000046 +:042295000000000045 +:042296000000000044 +:042297000000000043 +:042298000000000042 +:042299000000000041 +:04229A000000000040 +:04229B00000000003F +:04229C00000000003E +:04229D00000000003D +:04229E00000000003C +:04229F00000000003B +:0422A000000000003A +:0422A1000000000039 +:0422A2000000000038 +:0422A3000000000037 +:0422A4000000000036 +:0422A5000000000035 +:0422A6000000000034 +:0422A7000000000033 +:0422A8000000000032 +:0422A9000000000031 +:0422AA000000000030 +:0422AB00000000002F +:0422AC00000000002E +:0422AD00000000002D +:0422AE00000000002C +:0422AF00000000002B +:0422B000000000002A +:0422B1000000000029 +:0422B2000000000028 +:0422B3000000000027 +:0422B4000000000026 +:0422B5000000000025 +:0422B6000000000024 +:0422B7000000000023 +:0422B8000000000022 +:0422B9000000000021 +:0422BA000000000020 +:0422BB00000000001F +:0422BC00000000001E +:0422BD00000000001D +:0422BE00000000001C +:0422BF00000000001B +:0422C000000000001A +:0422C1000000000019 +:0422C2000000000018 +:0422C3000000000017 +:0422C4000000000016 +:0422C5000000000015 +:0422C6000000000014 +:0422C7000000000013 +:0422C8000000000012 +:0422C9000000000011 +:0422CA000000000010 +:0422CB00000000000F +:0422CC00000000000E +:0422CD00000000000D +:0422CE00000000000C +:0422CF00000000000B +:0422D000000000000A +:0422D1000000000009 +:0422D2000000000008 +:0422D3000000000007 +:0422D4000000000006 +:0422D5000000000005 +:0422D6000000000004 +:0422D7000000000003 +:0422D8000000000002 +:0422D9000000000001 +:0422DA000000000000 +:0422DB0000000000FF +:0422DC0000000000FE +:0422DD0000000000FD +:0422DE0000000000FC +:0422DF0000000000FB +:0422E00000000000FA +:0422E10000000000F9 +:0422E20000000000F8 +:0422E30000000000F7 +:0422E40000000000F6 +:0422E50000000000F5 +:0422E60000000000F4 +:0422E70000000000F3 +:0422E80000000000F2 +:0422E90000000000F1 +:0422EA0000000000F0 +:0422EB0000000000EF +:0422EC0000000000EE +:0422ED0000000000ED +:0422EE0000000000EC +:0422EF0000000000EB +:0422F00000000000EA +:0422F10000000000E9 +:0422F20000000000E8 +:0422F30000000000E7 +:0422F40000000000E6 +:0422F50000000000E5 +:0422F60000000000E4 +:0422F70000000000E3 +:0422F80000000000E2 +:0422F90000000000E1 +:0422FA0000000000E0 +:0422FB0000000000DF +:0422FC0000000000DE +:0422FD0000000000DD +:0422FE0000000000DC +:0422FF0000000000DB +:0423000000000000D9 +:0423010000000000D8 +:0423020000000000D7 +:0423030000000000D6 +:0423040000000000D5 +:0423050000000000D4 +:0423060000000000D3 +:0423070000000000D2 +:0423080000000000D1 +:0423090000000000D0 +:04230A0000000000CF +:04230B0000000000CE +:04230C0000000000CD +:04230D0000000000CC +:04230E0000000000CB +:04230F0000000000CA +:0423100000000000C9 +:0423110000000000C8 +:0423120000000000C7 +:0423130000000000C6 +:0423140000000000C5 +:0423150000000000C4 +:0423160000000000C3 +:0423170000000000C2 +:0423180000000000C1 +:0423190000000000C0 +:04231A0000000000BF +:04231B0000000000BE +:04231C0000000000BD +:04231D0000000000BC +:04231E0000000000BB +:04231F0000000000BA +:0423200000000000B9 +:0423210000000000B8 +:0423220000000000B7 +:0423230000000000B6 +:0423240000000000B5 +:0423250000000000B4 +:0423260000000000B3 +:0423270000000000B2 +:0423280000000000B1 +:0423290000000000B0 +:04232A0000000000AF +:04232B0000000000AE +:04232C0000000000AD +:04232D0000000000AC +:04232E0000000000AB +:04232F0000000000AA +:0423300000000000A9 +:0423310000000000A8 +:0423320000000000A7 +:0423330000000000A6 +:0423340000000000A5 +:0423350000000000A4 +:0423360000000000A3 +:0423370000000000A2 +:0423380000000000A1 +:0423390000000000A0 +:04233A00000000009F +:04233B00000000009E +:04233C00000000009D +:04233D00000000009C +:04233E00000000009B +:04233F00000000009A +:042340000000000099 +:042341000000000098 +:042342000000000097 +:042343000000000096 +:042344000000000095 +:042345000000000094 +:042346000000000093 +:042347000000000092 +:042348000000000091 +:042349000000000090 +:04234A00000000008F +:04234B00000000008E +:04234C00000000008D +:04234D00000000008C +:04234E00000000008B +:04234F00000000008A +:042350000000000089 +:042351000000000088 +:042352000000000087 +:042353000000000086 +:042354000000000085 +:042355000000000084 +:042356000000000083 +:042357000000000082 +:042358000000000081 +:042359000000000080 +:04235A00000000007F +:04235B00000000007E +:04235C00000000007D +:04235D00000000007C +:04235E00000000007B +:04235F00000000007A +:042360000000000079 +:042361000000000078 +:042362000000000077 +:042363000000000076 +:042364000000000075 +:042365000000000074 +:042366000000000073 +:042367000000000072 +:042368000000000071 +:042369000000000070 +:04236A00000000006F +:04236B00000000006E +:04236C00000000006D +:04236D00000000006C +:04236E00000000006B +:04236F00000000006A +:042370000000000069 +:042371000000000068 +:042372000000000067 +:042373000000000066 +:042374000000000065 +:042375000000000064 +:042376000000000063 +:042377000000000062 +:042378000000000061 +:042379000000000060 +:04237A00000000005F +:04237B00000000005E +:04237C00000000005D +:04237D00000000005C +:04237E00000000005B +:04237F00000000005A +:042380000000000059 +:042381000000000058 +:042382000000000057 +:042383000000000056 +:042384000000000055 +:042385000000000054 +:042386000000000053 +:042387000000000052 +:042388000000000051 +:042389000000000050 +:04238A00000000004F +:04238B00000000004E +:04238C00000000004D +:04238D00000000004C +:04238E00000000004B +:04238F00000000004A +:042390000000000049 +:042391000000000048 +:042392000000000047 +:042393000000000046 +:042394000000000045 +:042395000000000044 +:042396000000000043 +:042397000000000042 +:042398000000000041 +:042399000000000040 +:04239A00000000003F +:04239B00000000003E +:04239C00000000003D +:04239D00000000003C +:04239E00000000003B +:04239F00000000003A +:0423A0000000000039 +:0423A1000000000038 +:0423A2000000000037 +:0423A3000000000036 +:0423A4000000000035 +:0423A5000000000034 +:0423A6000000000033 +:0423A7000000000032 +:0423A8000000000031 +:0423A9000000000030 +:0423AA00000000002F +:0423AB00000000002E +:0423AC00000000002D +:0423AD00000000002C +:0423AE00000000002B +:0423AF00000000002A +:0423B0000000000029 +:0423B1000000000028 +:0423B2000000000027 +:0423B3000000000026 +:0423B4000000000025 +:0423B5000000000024 +:0423B6000000000023 +:0423B7000000000022 +:0423B8000000000021 +:0423B9000000000020 +:0423BA00000000001F +:0423BB00000000001E +:0423BC00000000001D +:0423BD00000000001C +:0423BE00000000001B +:0423BF00000000001A +:0423C0000000000019 +:0423C1000000000018 +:0423C2000000000017 +:0423C3000000000016 +:0423C4000000000015 +:0423C5000000000014 +:0423C6000000000013 +:0423C7000000000012 +:0423C8000000000011 +:0423C9000000000010 +:0423CA00000000000F +:0423CB00000000000E +:0423CC00000000000D +:0423CD00000000000C +:0423CE00000000000B +:0423CF00000000000A +:0423D0000000000009 +:0423D1000000000008 +:0423D2000000000007 +:0423D3000000000006 +:0423D4000000000005 +:0423D5000000000004 +:0423D6000000000003 +:0423D7000000000002 +:0423D8000000000001 +:0423D9000000000000 +:0423DA0000000000FF +:0423DB0000000000FE +:0423DC0000000000FD +:0423DD0000000000FC +:0423DE0000000000FB +:0423DF0000000000FA +:0423E00000000000F9 +:0423E10000000000F8 +:0423E20000000000F7 +:0423E30000000000F6 +:0423E40000000000F5 +:0423E50000000000F4 +:0423E60000000000F3 +:0423E70000000000F2 +:0423E80000000000F1 +:0423E90000000000F0 +:0423EA0000000000EF +:0423EB0000000000EE +:0423EC0000000000ED +:0423ED0000000000EC +:0423EE0000000000EB +:0423EF0000000000EA +:0423F00000000000E9 +:0423F10000000000E8 +:0423F20000000000E7 +:0423F30000000000E6 +:0423F40000000000E5 +:0423F50000000000E4 +:0423F60000000000E3 +:0423F70000000000E2 +:0423F80000000000E1 +:0423F90000000000E0 +:0423FA0000000000DF +:0423FB0000000000DE +:0423FC0000000000DD +:0423FD0000000000DC +:0423FE0000000000DB +:0423FF0000000000DA +:0424000000000000D8 +:0424010000000000D7 +:0424020000000000D6 +:0424030000000000D5 +:0424040000000000D4 +:0424050000000000D3 +:0424060000000000D2 +:0424070000000000D1 +:0424080000000000D0 +:0424090000000000CF +:04240A0000000000CE +:04240B0000000000CD +:04240C0000000000CC +:04240D0000000000CB +:04240E0000000000CA +:04240F0000000000C9 +:0424100000000000C8 +:0424110000000000C7 +:0424120000000000C6 +:0424130000000000C5 +:0424140000000000C4 +:0424150000000000C3 +:0424160000000000C2 +:0424170000000000C1 +:0424180000000000C0 +:0424190000000000BF +:04241A0000000000BE +:04241B0000000000BD +:04241C0000000000BC +:04241D0000000000BB +:04241E0000000000BA +:04241F0000000000B9 +:0424200000000000B8 +:0424210000000000B7 +:0424220000000000B6 +:0424230000000000B5 +:0424240000000000B4 +:0424250000000000B3 +:0424260000000000B2 +:0424270000000000B1 +:0424280000000000B0 +:0424290000000000AF +:04242A0000000000AE +:04242B0000000000AD +:04242C0000000000AC +:04242D0000000000AB +:04242E0000000000AA +:04242F0000000000A9 +:0424300000000000A8 +:0424310000000000A7 +:0424320000000000A6 +:0424330000000000A5 +:0424340000000000A4 +:0424350000000000A3 +:0424360000000000A2 +:0424370000000000A1 +:0424380000000000A0 +:04243900000000009F +:04243A00000000009E +:04243B00000000009D +:04243C00000000009C +:04243D00000000009B +:04243E00000000009A +:04243F000000000099 +:042440000000000098 +:042441000000000097 +:042442000000000096 +:042443000000000095 +:042444000000000094 +:042445000000000093 +:042446000000000092 +:042447000000000091 +:042448000000000090 +:04244900000000008F +:04244A00000000008E +:04244B00000000008D +:04244C00000000008C +:04244D00000000008B +:04244E00000000008A +:04244F000000000089 +:042450000000000088 +:042451000000000087 +:042452000000000086 +:042453000000000085 +:042454000000000084 +:042455000000000083 +:042456000000000082 +:042457000000000081 +:042458000000000080 +:04245900000000007F +:04245A00000000007E +:04245B00000000007D +:04245C00000000007C +:04245D00000000007B +:04245E00000000007A +:04245F000000000079 +:042460000000000078 +:042461000000000077 +:042462000000000076 +:042463000000000075 +:042464000000000074 +:042465000000000073 +:042466000000000072 +:042467000000000071 +:042468000000000070 +:04246900000000006F +:04246A00000000006E +:04246B00000000006D +:04246C00000000006C +:04246D00000000006B +:04246E00000000006A +:04246F000000000069 +:042470000000000068 +:042471000000000067 +:042472000000000066 +:042473000000000065 +:042474000000000064 +:042475000000000063 +:042476000000000062 +:042477000000000061 +:042478000000000060 +:04247900000000005F +:04247A00000000005E +:04247B00000000005D +:04247C00000000005C +:04247D00000000005B +:04247E00000000005A +:04247F000000000059 +:042480000000000058 +:042481000000000057 +:042482000000000056 +:042483000000000055 +:042484000000000054 +:042485000000000053 +:042486000000000052 +:042487000000000051 +:042488000000000050 +:04248900000000004F +:04248A00000000004E +:04248B00000000004D +:04248C00000000004C +:04248D00000000004B +:04248E00000000004A +:04248F000000000049 +:042490000000000048 +:042491000000000047 +:042492000000000046 +:042493000000000045 +:042494000000000044 +:042495000000000043 +:042496000000000042 +:042497000000000041 +:042498000000000040 +:04249900000000003F +:04249A00000000003E +:04249B00000000003D +:04249C00000000003C +:04249D00000000003B +:04249E00000000003A +:04249F000000000039 +:0424A0000000000038 +:0424A1000000000037 +:0424A2000000000036 +:0424A3000000000035 +:0424A4000000000034 +:0424A5000000000033 +:0424A6000000000032 +:0424A7000000000031 +:0424A8000000000030 +:0424A900000000002F +:0424AA00000000002E +:0424AB00000000002D +:0424AC00000000002C +:0424AD00000000002B +:0424AE00000000002A +:0424AF000000000029 +:0424B0000000000028 +:0424B1000000000027 +:0424B2000000000026 +:0424B3000000000025 +:0424B4000000000024 +:0424B5000000000023 +:0424B6000000000022 +:0424B7000000000021 +:0424B8000000000020 +:0424B900000000001F +:0424BA00000000001E +:0424BB00000000001D +:0424BC00000000001C +:0424BD00000000001B +:0424BE00000000001A +:0424BF000000000019 +:0424C0000000000018 +:0424C1000000000017 +:0424C2000000000016 +:0424C3000000000015 +:0424C4000000000014 +:0424C5000000000013 +:0424C6000000000012 +:0424C7000000000011 +:0424C8000000000010 +:0424C900000000000F +:0424CA00000000000E +:0424CB00000000000D +:0424CC00000000000C +:0424CD00000000000B +:0424CE00000000000A +:0424CF000000000009 +:0424D0000000000008 +:0424D1000000000007 +:0424D2000000000006 +:0424D3000000000005 +:0424D4000000000004 +:0424D5000000000003 +:0424D6000000000002 +:0424D7000000000001 +:0424D8000000000000 +:0424D90000000000FF +:0424DA0000000000FE +:0424DB0000000000FD +:0424DC0000000000FC +:0424DD0000000000FB +:0424DE0000000000FA +:0424DF0000000000F9 +:0424E00000000000F8 +:0424E10000000000F7 +:0424E20000000000F6 +:0424E30000000000F5 +:0424E40000000000F4 +:0424E50000000000F3 +:0424E60000000000F2 +:0424E70000000000F1 +:0424E80000000000F0 +:0424E90000000000EF +:0424EA0000000000EE +:0424EB0000000000ED +:0424EC0000000000EC +:0424ED0000000000EB +:0424EE0000000000EA +:0424EF0000000000E9 +:0424F00000000000E8 +:0424F10000000000E7 +:0424F20000000000E6 +:0424F30000000000E5 +:0424F40000000000E4 +:0424F50000000000E3 +:0424F60000000000E2 +:0424F70000000000E1 +:0424F80000000000E0 +:0424F90000000000DF +:0424FA0000000000DE +:0424FB0000000000DD +:0424FC0000000000DC +:0424FD0000000000DB +:0424FE0000000000DA +:0424FF0000000000D9 +:0425000000000000D7 +:0425010000000000D6 +:0425020000000000D5 +:0425030000000000D4 +:0425040000000000D3 +:0425050000000000D2 +:0425060000000000D1 +:0425070000000000D0 +:0425080000000000CF +:0425090000000000CE +:04250A0000000000CD +:04250B0000000000CC +:04250C0000000000CB +:04250D0000000000CA +:04250E0000000000C9 +:04250F0000000000C8 +:0425100000000000C7 +:0425110000000000C6 +:0425120000000000C5 +:0425130000000000C4 +:0425140000000000C3 +:0425150000000000C2 +:0425160000000000C1 +:0425170000000000C0 +:0425180000000000BF +:0425190000000000BE +:04251A0000000000BD +:04251B0000000000BC +:04251C0000000000BB +:04251D0000000000BA +:04251E0000000000B9 +:04251F0000000000B8 +:0425200000000000B7 +:0425210000000000B6 +:0425220000000000B5 +:0425230000000000B4 +:0425240000000000B3 +:0425250000000000B2 +:0425260000000000B1 +:0425270000000000B0 +:0425280000000000AF +:0425290000000000AE +:04252A0000000000AD +:04252B0000000000AC +:04252C0000000000AB +:04252D0000000000AA +:04252E0000000000A9 +:04252F0000000000A8 +:0425300000000000A7 +:0425310000000000A6 +:0425320000000000A5 +:0425330000000000A4 +:0425340000000000A3 +:0425350000000000A2 +:0425360000000000A1 +:0425370000000000A0 +:04253800000000009F +:04253900000000009E +:04253A00000000009D +:04253B00000000009C +:04253C00000000009B +:04253D00000000009A +:04253E000000000099 +:04253F000000000098 +:042540000000000097 +:042541000000000096 +:042542000000000095 +:042543000000000094 +:042544000000000093 +:042545000000000092 +:042546000000000091 +:042547000000000090 +:04254800000000008F +:04254900000000008E +:04254A00000000008D +:04254B00000000008C +:04254C00000000008B +:04254D00000000008A +:04254E000000000089 +:04254F000000000088 +:042550000000000087 +:042551000000000086 +:042552000000000085 +:042553000000000084 +:042554000000000083 +:042555000000000082 +:042556000000000081 +:042557000000000080 +:04255800000000007F +:04255900000000007E +:04255A00000000007D +:04255B00000000007C +:04255C00000000007B +:04255D00000000007A +:04255E000000000079 +:04255F000000000078 +:042560000000000077 +:042561000000000076 +:042562000000000075 +:042563000000000074 +:042564000000000073 +:042565000000000072 +:042566000000000071 +:042567000000000070 +:04256800000000006F +:04256900000000006E +:04256A00000000006D +:04256B00000000006C +:04256C00000000006B +:04256D00000000006A +:04256E000000000069 +:04256F000000000068 +:042570000000000067 +:042571000000000066 +:042572000000000065 +:042573000000000064 +:042574000000000063 +:042575000000000062 +:042576000000000061 +:042577000000000060 +:04257800000000005F +:04257900000000005E +:04257A00000000005D +:04257B00000000005C +:04257C00000000005B +:04257D00000000005A +:04257E000000000059 +:04257F000000000058 +:042580000000000057 +:042581000000000056 +:042582000000000055 +:042583000000000054 +:042584000000000053 +:042585000000000052 +:042586000000000051 +:042587000000000050 +:04258800000000004F +:04258900000000004E +:04258A00000000004D +:04258B00000000004C +:04258C00000000004B +:04258D00000000004A +:04258E000000000049 +:04258F000000000048 +:042590000000000047 +:042591000000000046 +:042592000000000045 +:042593000000000044 +:042594000000000043 +:042595000000000042 +:042596000000000041 +:042597000000000040 +:04259800000000003F +:04259900000000003E +:04259A00000000003D +:04259B00000000003C +:04259C00000000003B +:04259D00000000003A +:04259E000000000039 +:04259F000000000038 +:0425A0000000000037 +:0425A1000000000036 +:0425A2000000000035 +:0425A3000000000034 +:0425A4000000000033 +:0425A5000000000032 +:0425A6000000000031 +:0425A7000000000030 +:0425A800000000002F +:0425A900000000002E +:0425AA00000000002D +:0425AB00000000002C +:0425AC00000000002B +:0425AD00000000002A +:0425AE000000000029 +:0425AF000000000028 +:0425B0000000000027 +:0425B1000000000026 +:0425B2000000000025 +:0425B3000000000024 +:0425B4000000000023 +:0425B5000000000022 +:0425B6000000000021 +:0425B7000000000020 +:0425B800000000001F +:0425B900000000001E +:0425BA00000000001D +:0425BB00000000001C +:0425BC00000000001B +:0425BD00000000001A +:0425BE000000000019 +:0425BF000000000018 +:0425C0000000000017 +:0425C1000000000016 +:0425C2000000000015 +:0425C3000000000014 +:0425C4000000000013 +:0425C5000000000012 +:0425C6000000000011 +:0425C7000000000010 +:0425C800000000000F +:0425C900000000000E +:0425CA00000000000D +:0425CB00000000000C +:0425CC00000000000B +:0425CD00000000000A +:0425CE000000000009 +:0425CF000000000008 +:0425D0000000000007 +:0425D1000000000006 +:0425D2000000000005 +:0425D3000000000004 +:0425D4000000000003 +:0425D5000000000002 +:0425D6000000000001 +:0425D7000000000000 +:0425D80000000000FF +:0425D90000000000FE +:0425DA0000000000FD +:0425DB0000000000FC +:0425DC0000000000FB +:0425DD0000000000FA +:0425DE0000000000F9 +:0425DF0000000000F8 +:0425E00000000000F7 +:0425E10000000000F6 +:0425E20000000000F5 +:0425E30000000000F4 +:0425E40000000000F3 +:0425E50000000000F2 +:0425E60000000000F1 +:0425E70000000000F0 +:0425E80000000000EF +:0425E90000000000EE +:0425EA0000000000ED +:0425EB0000000000EC +:0425EC0000000000EB +:0425ED0000000000EA +:0425EE0000000000E9 +:0425EF0000000000E8 +:0425F00000000000E7 +:0425F10000000000E6 +:0425F20000000000E5 +:0425F30000000000E4 +:0425F40000000000E3 +:0425F50000000000E2 +:0425F60000000000E1 +:0425F70000000000E0 +:0425F80000000000DF +:0425F90000000000DE +:0425FA0000000000DD +:0425FB0000000000DC +:0425FC0000000000DB +:0425FD0000000000DA +:0425FE0000000000D9 +:0425FF0000000000D8 +:0426000000000000D6 +:0426010000000000D5 +:0426020000000000D4 +:0426030000000000D3 +:0426040000000000D2 +:0426050000000000D1 +:0426060000000000D0 +:0426070000000000CF +:0426080000000000CE +:0426090000000000CD +:04260A0000000000CC +:04260B0000000000CB +:04260C0000000000CA +:04260D0000000000C9 +:04260E0000000000C8 +:04260F0000000000C7 +:0426100000000000C6 +:0426110000000000C5 +:0426120000000000C4 +:0426130000000000C3 +:0426140000000000C2 +:0426150000000000C1 +:0426160000000000C0 +:0426170000000000BF +:0426180000000000BE +:0426190000000000BD +:04261A0000000000BC +:04261B0000000000BB +:04261C0000000000BA +:04261D0000000000B9 +:04261E0000000000B8 +:04261F0000000000B7 +:0426200000000000B6 +:0426210000000000B5 +:0426220000000000B4 +:0426230000000000B3 +:0426240000000000B2 +:0426250000000000B1 +:0426260000000000B0 +:0426270000000000AF +:0426280000000000AE +:0426290000000000AD +:04262A0000000000AC +:04262B0000000000AB +:04262C0000000000AA +:04262D0000000000A9 +:04262E0000000000A8 +:04262F0000000000A7 +:0426300000000000A6 +:0426310000000000A5 +:0426320000000000A4 +:0426330000000000A3 +:0426340000000000A2 +:0426350000000000A1 +:0426360000000000A0 +:04263700000000009F +:04263800000000009E +:04263900000000009D +:04263A00000000009C +:04263B00000000009B +:04263C00000000009A +:04263D000000000099 +:04263E000000000098 +:04263F000000000097 +:042640000000000096 +:042641000000000095 +:042642000000000094 +:042643000000000093 +:042644000000000092 +:042645000000000091 +:042646000000000090 +:04264700000000008F +:04264800000000008E +:04264900000000008D +:04264A00000000008C +:04264B00000000008B +:04264C00000000008A +:04264D000000000089 +:04264E000000000088 +:04264F000000000087 +:042650000000000086 +:042651000000000085 +:042652000000000084 +:042653000000000083 +:042654000000000082 +:042655000000000081 +:042656000000000080 +:04265700000000007F +:04265800000000007E +:04265900000000007D +:04265A00000000007C +:04265B00000000007B +:04265C00000000007A +:04265D000000000079 +:04265E000000000078 +:04265F000000000077 +:042660000000000076 +:042661000000000075 +:042662000000000074 +:042663000000000073 +:042664000000000072 +:042665000000000071 +:042666000000000070 +:04266700000000006F +:04266800000000006E +:04266900000000006D +:04266A00000000006C +:04266B00000000006B +:04266C00000000006A +:04266D000000000069 +:04266E000000000068 +:04266F000000000067 +:042670000000000066 +:042671000000000065 +:042672000000000064 +:042673000000000063 +:042674000000000062 +:042675000000000061 +:042676000000000060 +:04267700000000005F +:04267800000000005E +:04267900000000005D +:04267A00000000005C +:04267B00000000005B +:04267C00000000005A +:04267D000000000059 +:04267E000000000058 +:04267F000000000057 +:042680000000000056 +:042681000000000055 +:042682000000000054 +:042683000000000053 +:042684000000000052 +:042685000000000051 +:042686000000000050 +:04268700000000004F +:04268800000000004E +:04268900000000004D +:04268A00000000004C +:04268B00000000004B +:04268C00000000004A +:04268D000000000049 +:04268E000000000048 +:04268F000000000047 +:042690000000000046 +:042691000000000045 +:042692000000000044 +:042693000000000043 +:042694000000000042 +:042695000000000041 +:042696000000000040 +:04269700000000003F +:04269800000000003E +:04269900000000003D +:04269A00000000003C +:04269B00000000003B +:04269C00000000003A +:04269D000000000039 +:04269E000000000038 +:04269F000000000037 +:0426A0000000000036 +:0426A1000000000035 +:0426A2000000000034 +:0426A3000000000033 +:0426A4000000000032 +:0426A5000000000031 +:0426A6000000000030 +:0426A700000000002F +:0426A800000000002E +:0426A900000000002D +:0426AA00000000002C +:0426AB00000000002B +:0426AC00000000002A +:0426AD000000000029 +:0426AE000000000028 +:0426AF000000000027 +:0426B0000000000026 +:0426B1000000000025 +:0426B2000000000024 +:0426B3000000000023 +:0426B4000000000022 +:0426B5000000000021 +:0426B6000000000020 +:0426B700000000001F +:0426B800000000001E +:0426B900000000001D +:0426BA00000000001C +:0426BB00000000001B +:0426BC00000000001A +:0426BD000000000019 +:0426BE000000000018 +:0426BF000000000017 +:0426C0000000000016 +:0426C1000000000015 +:0426C2000000000014 +:0426C3000000000013 +:0426C4000000000012 +:0426C5000000000011 +:0426C6000000000010 +:0426C700000000000F +:0426C800000000000E +:0426C900000000000D +:0426CA00000000000C +:0426CB00000000000B +:0426CC00000000000A +:0426CD000000000009 +:0426CE000000000008 +:0426CF000000000007 +:0426D0000000000006 +:0426D1000000000005 +:0426D2000000000004 +:0426D3000000000003 +:0426D4000000000002 +:0426D5000000000001 +:0426D6000000000000 +:0426D70000000000FF +:0426D80000000000FE +:0426D90000000000FD +:0426DA0000000000FC +:0426DB0000000000FB +:0426DC0000000000FA +:0426DD0000000000F9 +:0426DE0000000000F8 +:0426DF0000000000F7 +:0426E00000000000F6 +:0426E10000000000F5 +:0426E20000000000F4 +:0426E30000000000F3 +:0426E40000000000F2 +:0426E50000000000F1 +:0426E60000000000F0 +:0426E70000000000EF +:0426E80000000000EE +:0426E90000000000ED +:0426EA0000000000EC +:0426EB0000000000EB +:0426EC0000000000EA +:0426ED0000000000E9 +:0426EE0000000000E8 +:0426EF0000000000E7 +:0426F00000000000E6 +:0426F10000000000E5 +:0426F20000000000E4 +:0426F30000000000E3 +:0426F40000000000E2 +:0426F50000000000E1 +:0426F60000000000E0 +:0426F70000000000DF +:0426F80000000000DE +:0426F90000000000DD +:0426FA0000000000DC +:0426FB0000000000DB +:0426FC0000000000DA +:0426FD0000000000D9 +:0426FE0000000000D8 +:0426FF0000000000D7 +:0427000000000000D5 +:0427010000000000D4 +:0427020000000000D3 +:0427030000000000D2 +:0427040000000000D1 +:0427050000000000D0 +:0427060000000000CF +:0427070000000000CE +:0427080000000000CD +:0427090000000000CC +:04270A0000000000CB +:04270B0000000000CA +:04270C0000000000C9 +:04270D0000000000C8 +:04270E0000000000C7 +:04270F0000000000C6 +:0427100000000000C5 +:0427110000000000C4 +:0427120000000000C3 +:0427130000000000C2 +:0427140000000000C1 +:0427150000000000C0 +:0427160000000000BF +:0427170000000000BE +:0427180000000000BD +:0427190000000000BC +:04271A0000000000BB +:04271B0000000000BA +:04271C0000000000B9 +:04271D0000000000B8 +:04271E0000000000B7 +:04271F0000000000B6 +:0427200000000000B5 +:0427210000000000B4 +:0427220000000000B3 +:0427230000000000B2 +:0427240000000000B1 +:0427250000000000B0 +:0427260000000000AF +:0427270000000000AE +:0427280000000000AD +:0427290000000000AC +:04272A0000000000AB +:04272B0000000000AA +:04272C0000000000A9 +:04272D0000000000A8 +:04272E0000000000A7 +:04272F0000000000A6 +:0427300000000000A5 +:0427310000000000A4 +:0427320000000000A3 +:0427330000000000A2 +:0427340000000000A1 +:0427350000000000A0 +:04273600000000009F +:04273700000000009E +:04273800000000009D +:04273900000000009C +:04273A00000000009B +:04273B00000000009A +:04273C000000000099 +:04273D000000000098 +:04273E000000000097 +:04273F000000000096 +:042740000000000095 +:042741000000000094 +:042742000000000093 +:042743000000000092 +:042744000000000091 +:042745000000000090 +:04274600000000008F +:04274700000000008E +:04274800000000008D +:04274900000000008C +:04274A00000000008B +:04274B00000000008A +:04274C000000000089 +:04274D000000000088 +:04274E000000000087 +:04274F000000000086 +:042750000000000085 +:042751000000000084 +:042752000000000083 +:042753000000000082 +:042754000000000081 +:042755000000000080 +:04275600000000007F +:04275700000000007E +:04275800000000007D +:04275900000000007C +:04275A00000000007B +:04275B00000000007A +:04275C000000000079 +:04275D000000000078 +:04275E000000000077 +:04275F000000000076 +:042760000000000075 +:042761000000000074 +:042762000000000073 +:042763000000000072 +:042764000000000071 +:042765000000000070 +:04276600000000006F +:04276700000000006E +:04276800000000006D +:04276900000000006C +:04276A00000000006B +:04276B00000000006A +:04276C000000000069 +:04276D000000000068 +:04276E000000000067 +:04276F000000000066 +:042770000000000065 +:042771000000000064 +:042772000000000063 +:042773000000000062 +:042774000000000061 +:042775000000000060 +:04277600000000005F +:04277700000000005E +:04277800000000005D +:04277900000000005C +:04277A00000000005B +:04277B00000000005A +:04277C000000000059 +:04277D000000000058 +:04277E000000000057 +:04277F000000000056 +:042780000000000055 +:042781000000000054 +:042782000000000053 +:042783000000000052 +:042784000000000051 +:042785000000000050 +:04278600000000004F +:04278700000000004E +:04278800000000004D +:04278900000000004C +:04278A00000000004B +:04278B00000000004A +:04278C000000000049 +:04278D000000000048 +:04278E000000000047 +:04278F000000000046 +:042790000000000045 +:042791000000000044 +:042792000000000043 +:042793000000000042 +:042794000000000041 +:042795000000000040 +:04279600000000003F +:04279700000000003E +:04279800000000003D +:04279900000000003C +:04279A00000000003B +:04279B00000000003A +:04279C000000000039 +:04279D000000000038 +:04279E000000000037 +:04279F000000000036 +:0427A0000000000035 +:0427A1000000000034 +:0427A2000000000033 +:0427A3000000000032 +:0427A4000000000031 +:0427A5000000000030 +:0427A600000000002F +:0427A700000000002E +:0427A800000000002D +:0427A900000000002C +:0427AA00000000002B +:0427AB00000000002A +:0427AC000000000029 +:0427AD000000000028 +:0427AE000000000027 +:0427AF000000000026 +:0427B0000000000025 +:0427B1000000000024 +:0427B2000000000023 +:0427B3000000000022 +:0427B4000000000021 +:0427B5000000000020 +:0427B600000000001F +:0427B700000000001E +:0427B800000000001D +:0427B900000000001C +:0427BA00000000001B +:0427BB00000000001A +:0427BC000000000019 +:0427BD000000000018 +:0427BE000000000017 +:0427BF000000000016 +:0427C0000000000015 +:0427C1000000000014 +:0427C2000000000013 +:0427C3000000000012 +:0427C4000000000011 +:0427C5000000000010 +:0427C600000000000F +:0427C700000000000E +:0427C800000000000D +:0427C900000000000C +:0427CA00000000000B +:0427CB00000000000A +:0427CC000000000009 +:0427CD000000000008 +:0427CE000000000007 +:0427CF000000000006 +:0427D0000000000005 +:0427D1000000000004 +:0427D2000000000003 +:0427D3000000000002 +:0427D4000000000001 +:0427D5000000000000 +:0427D60000000000FF +:0427D70000000000FE +:0427D80000000000FD +:0427D90000000000FC +:0427DA0000000000FB +:0427DB0000000000FA +:0427DC0000000000F9 +:0427DD0000000000F8 +:0427DE0000000000F7 +:0427DF0000000000F6 +:0427E00000000000F5 +:0427E10000000000F4 +:0427E20000000000F3 +:0427E30000000000F2 +:0427E40000000000F1 +:0427E50000000000F0 +:0427E60000000000EF +:0427E70000000000EE +:0427E80000000000ED +:0427E90000000000EC +:0427EA0000000000EB +:0427EB0000000000EA +:0427EC0000000000E9 +:0427ED0000000000E8 +:0427EE0000000000E7 +:0427EF0000000000E6 +:0427F00000000000E5 +:0427F10000000000E4 +:0427F20000000000E3 +:0427F30000000000E2 +:0427F40000000000E1 +:0427F50000000000E0 +:0427F60000000000DF +:0427F70000000000DE +:0427F80000000000DD +:0427F90000000000DC +:0427FA0000000000DB +:0427FB0000000000DA +:0427FC0000000000D9 +:0427FD0000000000D8 +:0427FE0000000000D7 +:0427FF0000000000D6 +:0428000000000000D4 +:0428010000000000D3 +:0428020000000000D2 +:0428030000000000D1 +:0428040000000000D0 +:0428050000000000CF +:0428060000000000CE +:0428070000000000CD +:0428080000000000CC +:0428090000000000CB +:04280A0000000000CA +:04280B0000000000C9 +:04280C0000000000C8 +:04280D0000000000C7 +:04280E0000000000C6 +:04280F0000000000C5 +:0428100000000000C4 +:0428110000000000C3 +:0428120000000000C2 +:0428130000000000C1 +:0428140000000000C0 +:0428150000000000BF +:0428160000000000BE +:0428170000000000BD +:0428180000000000BC +:0428190000000000BB +:04281A0000000000BA +:04281B0000000000B9 +:04281C0000000000B8 +:04281D0000000000B7 +:04281E0000000000B6 +:04281F0000000000B5 +:0428200000000000B4 +:0428210000000000B3 +:0428220000000000B2 +:0428230000000000B1 +:0428240000000000B0 +:0428250000000000AF +:0428260000000000AE +:0428270000000000AD +:0428280000000000AC +:0428290000000000AB +:04282A0000000000AA +:04282B0000000000A9 +:04282C0000000000A8 +:04282D0000000000A7 +:04282E0000000000A6 +:04282F0000000000A5 +:0428300000000000A4 +:0428310000000000A3 +:0428320000000000A2 +:0428330000000000A1 +:0428340000000000A0 +:04283500000000009F +:04283600000000009E +:04283700000000009D +:04283800000000009C +:04283900000000009B +:04283A00000000009A +:04283B000000000099 +:04283C000000000098 +:04283D000000000097 +:04283E000000000096 +:04283F000000000095 +:042840000000000094 +:042841000000000093 +:042842000000000092 +:042843000000000091 +:042844000000000090 +:04284500000000008F +:04284600000000008E +:04284700000000008D +:04284800000000008C +:04284900000000008B +:04284A00000000008A +:04284B000000000089 +:04284C000000000088 +:04284D000000000087 +:04284E000000000086 +:04284F000000000085 +:042850000000000084 +:042851000000000083 +:042852000000000082 +:042853000000000081 +:042854000000000080 +:04285500000000007F +:04285600000000007E +:04285700000000007D +:04285800000000007C +:04285900000000007B +:04285A00000000007A +:04285B000000000079 +:04285C000000000078 +:04285D000000000077 +:04285E000000000076 +:04285F000000000075 +:042860000000000074 +:042861000000000073 +:042862000000000072 +:042863000000000071 +:042864000000000070 +:04286500000000006F +:04286600000000006E +:04286700000000006D +:04286800000000006C +:04286900000000006B +:04286A00000000006A +:04286B000000000069 +:04286C000000000068 +:04286D000000000067 +:04286E000000000066 +:04286F000000000065 +:042870000000000064 +:042871000000000063 +:042872000000000062 +:042873000000000061 +:042874000000000060 +:04287500000000005F +:04287600000000005E +:04287700000000005D +:04287800000000005C +:04287900000000005B +:04287A00000000005A +:04287B000000000059 +:04287C000000000058 +:04287D000000000057 +:04287E000000000056 +:04287F000000000055 +:042880000000000054 +:042881000000000053 +:042882000000000052 +:042883000000000051 +:042884000000000050 +:04288500000000004F +:04288600000000004E +:04288700000000004D +:04288800000000004C +:04288900000000004B +:04288A00000000004A +:04288B000000000049 +:04288C000000000048 +:04288D000000000047 +:04288E000000000046 +:04288F000000000045 +:042890000000000044 +:042891000000000043 +:042892000000000042 +:042893000000000041 +:042894000000000040 +:04289500000000003F +:04289600000000003E +:04289700000000003D +:04289800000000003C +:04289900000000003B +:04289A00000000003A +:04289B000000000039 +:04289C000000000038 +:04289D000000000037 +:04289E000000000036 +:04289F000000000035 +:0428A0000000000034 +:0428A1000000000033 +:0428A2000000000032 +:0428A3000000000031 +:0428A4000000000030 +:0428A500000000002F +:0428A600000000002E +:0428A700000000002D +:0428A800000000002C +:0428A900000000002B +:0428AA00000000002A +:0428AB000000000029 +:0428AC000000000028 +:0428AD000000000027 +:0428AE000000000026 +:0428AF000000000025 +:0428B0000000000024 +:0428B1000000000023 +:0428B2000000000022 +:0428B3000000000021 +:0428B4000000000020 +:0428B500000000001F +:0428B600000000001E +:0428B700000000001D +:0428B800000000001C +:0428B900000000001B +:0428BA00000000001A +:0428BB000000000019 +:0428BC000000000018 +:0428BD000000000017 +:0428BE000000000016 +:0428BF000000000015 +:0428C0000000000014 +:0428C1000000000013 +:0428C2000000000012 +:0428C3000000000011 +:0428C4000000000010 +:0428C500000000000F +:0428C600000000000E +:0428C700000000000D +:0428C800000000000C +:0428C900000000000B +:0428CA00000000000A +:0428CB000000000009 +:0428CC000000000008 +:0428CD000000000007 +:0428CE000000000006 +:0428CF000000000005 +:0428D0000000000004 +:0428D1000000000003 +:0428D2000000000002 +:0428D3000000000001 +:0428D4000000000000 +:0428D50000000000FF +:0428D60000000000FE +:0428D70000000000FD +:0428D80000000000FC +:0428D90000000000FB +:0428DA0000000000FA +:0428DB0000000000F9 +:0428DC0000000000F8 +:0428DD0000000000F7 +:0428DE0000000000F6 +:0428DF0000000000F5 +:0428E00000000000F4 +:0428E10000000000F3 +:0428E20000000000F2 +:0428E30000000000F1 +:0428E40000000000F0 +:0428E50000000000EF +:0428E60000000000EE +:0428E70000000000ED +:0428E80000000000EC +:0428E90000000000EB +:0428EA0000000000EA +:0428EB0000000000E9 +:0428EC0000000000E8 +:0428ED0000000000E7 +:0428EE0000000000E6 +:0428EF0000000000E5 +:0428F00000000000E4 +:0428F10000000000E3 +:0428F20000000000E2 +:0428F30000000000E1 +:0428F40000000000E0 +:0428F50000000000DF +:0428F60000000000DE +:0428F70000000000DD +:0428F80000000000DC +:0428F90000000000DB +:0428FA0000000000DA +:0428FB0000000000D9 +:0428FC0000000000D8 +:0428FD0000000000D7 +:0428FE0000000000D6 +:0428FF0000000000D5 +:0429000000000000D3 +:0429010000000000D2 +:0429020000000000D1 +:0429030000000000D0 +:0429040000000000CF +:0429050000000000CE +:0429060000000000CD +:0429070000000000CC +:0429080000000000CB +:0429090000000000CA +:04290A0000000000C9 +:04290B0000000000C8 +:04290C0000000000C7 +:04290D0000000000C6 +:04290E0000000000C5 +:04290F0000000000C4 +:0429100000000000C3 +:0429110000000000C2 +:0429120000000000C1 +:0429130000000000C0 +:0429140000000000BF +:0429150000000000BE +:0429160000000000BD +:0429170000000000BC +:0429180000000000BB +:0429190000000000BA +:04291A0000000000B9 +:04291B0000000000B8 +:04291C0000000000B7 +:04291D0000000000B6 +:04291E0000000000B5 +:04291F0000000000B4 +:0429200000000000B3 +:0429210000000000B2 +:0429220000000000B1 +:0429230000000000B0 +:0429240000000000AF +:0429250000000000AE +:0429260000000000AD +:0429270000000000AC +:0429280000000000AB +:0429290000000000AA +:04292A0000000000A9 +:04292B0000000000A8 +:04292C0000000000A7 +:04292D0000000000A6 +:04292E0000000000A5 +:04292F0000000000A4 +:0429300000000000A3 +:0429310000000000A2 +:0429320000000000A1 +:0429330000000000A0 +:04293400000000009F +:04293500000000009E +:04293600000000009D +:04293700000000009C +:04293800000000009B +:04293900000000009A +:04293A000000000099 +:04293B000000000098 +:04293C000000000097 +:04293D000000000096 +:04293E000000000095 +:04293F000000000094 +:042940000000000093 +:042941000000000092 +:042942000000000091 +:042943000000000090 +:04294400000000008F +:04294500000000008E +:04294600000000008D +:04294700000000008C +:04294800000000008B +:04294900000000008A +:04294A000000000089 +:04294B000000000088 +:04294C000000000087 +:04294D000000000086 +:04294E000000000085 +:04294F000000000084 +:042950000000000083 +:042951000000000082 +:042952000000000081 +:042953000000000080 +:04295400000000007F +:04295500000000007E +:04295600000000007D +:04295700000000007C +:04295800000000007B +:04295900000000007A +:04295A000000000079 +:04295B000000000078 +:04295C000000000077 +:04295D000000000076 +:04295E000000000075 +:04295F000000000074 +:042960000000000073 +:042961000000000072 +:042962000000000071 +:042963000000000070 +:04296400000000006F +:04296500000000006E +:04296600000000006D +:04296700000000006C +:04296800000000006B +:04296900000000006A +:04296A000000000069 +:04296B000000000068 +:04296C000000000067 +:04296D000000000066 +:04296E000000000065 +:04296F000000000064 +:042970000000000063 +:042971000000000062 +:042972000000000061 +:042973000000000060 +:04297400000000005F +:04297500000000005E +:04297600000000005D +:04297700000000005C +:04297800000000005B +:04297900000000005A +:04297A000000000059 +:04297B000000000058 +:04297C000000000057 +:04297D000000000056 +:04297E000000000055 +:04297F000000000054 +:042980000000000053 +:042981000000000052 +:042982000000000051 +:042983000000000050 +:04298400000000004F +:04298500000000004E +:04298600000000004D +:04298700000000004C +:04298800000000004B +:04298900000000004A +:04298A000000000049 +:04298B000000000048 +:04298C000000000047 +:04298D000000000046 +:04298E000000000045 +:04298F000000000044 +:042990000000000043 +:042991000000000042 +:042992000000000041 +:042993000000000040 +:04299400000000003F +:04299500000000003E +:04299600000000003D +:04299700000000003C +:04299800000000003B +:04299900000000003A +:04299A000000000039 +:04299B000000000038 +:04299C000000000037 +:04299D000000000036 +:04299E000000000035 +:04299F000000000034 +:0429A0000000000033 +:0429A1000000000032 +:0429A2000000000031 +:0429A3000000000030 +:0429A400000000002F +:0429A500000000002E +:0429A600000000002D +:0429A700000000002C +:0429A800000000002B +:0429A900000000002A +:0429AA000000000029 +:0429AB000000000028 +:0429AC000000000027 +:0429AD000000000026 +:0429AE000000000025 +:0429AF000000000024 +:0429B0000000000023 +:0429B1000000000022 +:0429B2000000000021 +:0429B3000000000020 +:0429B400000000001F +:0429B500000000001E +:0429B600000000001D +:0429B700000000001C +:0429B800000000001B +:0429B900000000001A +:0429BA000000000019 +:0429BB000000000018 +:0429BC000000000017 +:0429BD000000000016 +:0429BE000000000015 +:0429BF000000000014 +:0429C0000000000013 +:0429C1000000000012 +:0429C2000000000011 +:0429C3000000000010 +:0429C400000000000F +:0429C500000000000E +:0429C600000000000D +:0429C700000000000C +:0429C800000000000B +:0429C900000000000A +:0429CA000000000009 +:0429CB000000000008 +:0429CC000000000007 +:0429CD000000000006 +:0429CE000000000005 +:0429CF000000000004 +:0429D0000000000003 +:0429D1000000000002 +:0429D2000000000001 +:0429D3000000000000 +:0429D40000000000FF +:0429D50000000000FE +:0429D60000000000FD +:0429D70000000000FC +:0429D80000000000FB +:0429D90000000000FA +:0429DA0000000000F9 +:0429DB0000000000F8 +:0429DC0000000000F7 +:0429DD0000000000F6 +:0429DE0000000000F5 +:0429DF0000000000F4 +:0429E00000000000F3 +:0429E10000000000F2 +:0429E20000000000F1 +:0429E30000000000F0 +:0429E40000000000EF +:0429E50000000000EE +:0429E60000000000ED +:0429E70000000000EC +:0429E80000000000EB +:0429E90000000000EA +:0429EA0000000000E9 +:0429EB0000000000E8 +:0429EC0000000000E7 +:0429ED0000000000E6 +:0429EE0000000000E5 +:0429EF0000000000E4 +:0429F00000000000E3 +:0429F10000000000E2 +:0429F20000000000E1 +:0429F30000000000E0 +:0429F40000000000DF +:0429F50000000000DE +:0429F60000000000DD +:0429F70000000000DC +:0429F80000000000DB +:0429F90000000000DA +:0429FA0000000000D9 +:0429FB0000000000D8 +:0429FC0000000000D7 +:0429FD0000000000D6 +:0429FE0000000000D5 +:0429FF0000000000D4 +:042A000000000000D2 +:042A010000000000D1 +:042A020000000000D0 +:042A030000000000CF +:042A040000000000CE +:042A050000000000CD +:042A060000000000CC +:042A070000000000CB +:042A080000000000CA +:042A090000000000C9 +:042A0A0000000000C8 +:042A0B0000000000C7 +:042A0C0000000000C6 +:042A0D0000000000C5 +:042A0E0000000000C4 +:042A0F0000000000C3 +:042A100000000000C2 +:042A110000000000C1 +:042A120000000000C0 +:042A130000000000BF +:042A140000000000BE +:042A150000000000BD +:042A160000000000BC +:042A170000000000BB +:042A180000000000BA +:042A190000000000B9 +:042A1A0000000000B8 +:042A1B0000000000B7 +:042A1C0000000000B6 +:042A1D0000000000B5 +:042A1E0000000000B4 +:042A1F0000000000B3 +:042A200000000000B2 +:042A210000000000B1 +:042A220000000000B0 +:042A230000000000AF +:042A240000000000AE +:042A250000000000AD +:042A260000000000AC +:042A270000000000AB +:042A280000000000AA +:042A290000000000A9 +:042A2A0000000000A8 +:042A2B0000000000A7 +:042A2C0000000000A6 +:042A2D0000000000A5 +:042A2E0000000000A4 +:042A2F0000000000A3 +:042A300000000000A2 +:042A310000000000A1 +:042A320000000000A0 +:042A3300000000009F +:042A3400000000009E +:042A3500000000009D +:042A3600000000009C +:042A3700000000009B +:042A3800000000009A +:042A39000000000099 +:042A3A000000000098 +:042A3B000000000097 +:042A3C000000000096 +:042A3D000000000095 +:042A3E000000000094 +:042A3F000000000093 +:042A40000000000092 +:042A41000000000091 +:042A42000000000090 +:042A4300000000008F +:042A4400000000008E +:042A4500000000008D +:042A4600000000008C +:042A4700000000008B +:042A4800000000008A +:042A49000000000089 +:042A4A000000000088 +:042A4B000000000087 +:042A4C000000000086 +:042A4D000000000085 +:042A4E000000000084 +:042A4F000000000083 +:042A50000000000082 +:042A51000000000081 +:042A52000000000080 +:042A5300000000007F +:042A5400000000007E +:042A5500000000007D +:042A5600000000007C +:042A5700000000007B +:042A5800000000007A +:042A59000000000079 +:042A5A000000000078 +:042A5B000000000077 +:042A5C000000000076 +:042A5D000000000075 +:042A5E000000000074 +:042A5F000000000073 +:042A60000000000072 +:042A61000000000071 +:042A62000000000070 +:042A6300000000006F +:042A6400000000006E +:042A6500000000006D +:042A6600000000006C +:042A6700000000006B +:042A6800000000006A +:042A69000000000069 +:042A6A000000000068 +:042A6B000000000067 +:042A6C000000000066 +:042A6D000000000065 +:042A6E000000000064 +:042A6F000000000063 +:042A70000000000062 +:042A71000000000061 +:042A72000000000060 +:042A7300000000005F +:042A7400000000005E +:042A7500000000005D +:042A7600000000005C +:042A7700000000005B +:042A7800000000005A +:042A79000000000059 +:042A7A000000000058 +:042A7B000000000057 +:042A7C000000000056 +:042A7D000000000055 +:042A7E000000000054 +:042A7F000000000053 +:042A80000000000052 +:042A81000000000051 +:042A82000000000050 +:042A8300000000004F +:042A8400000000004E +:042A8500000000004D +:042A8600000000004C +:042A8700000000004B +:042A8800000000004A +:042A89000000000049 +:042A8A000000000048 +:042A8B000000000047 +:042A8C000000000046 +:042A8D000000000045 +:042A8E000000000044 +:042A8F000000000043 +:042A90000000000042 +:042A91000000000041 +:042A92000000000040 +:042A9300000000003F +:042A9400000000003E +:042A9500000000003D +:042A9600000000003C +:042A9700000000003B +:042A9800000000003A +:042A99000000000039 +:042A9A000000000038 +:042A9B000000000037 +:042A9C000000000036 +:042A9D000000000035 +:042A9E000000000034 +:042A9F000000000033 +:042AA0000000000032 +:042AA1000000000031 +:042AA2000000000030 +:042AA300000000002F +:042AA400000000002E +:042AA500000000002D +:042AA600000000002C +:042AA700000000002B +:042AA800000000002A +:042AA9000000000029 +:042AAA000000000028 +:042AAB000000000027 +:042AAC000000000026 +:042AAD000000000025 +:042AAE000000000024 +:042AAF000000000023 +:042AB0000000000022 +:042AB1000000000021 +:042AB2000000000020 +:042AB300000000001F +:042AB400000000001E +:042AB500000000001D +:042AB600000000001C +:042AB700000000001B +:042AB800000000001A +:042AB9000000000019 +:042ABA000000000018 +:042ABB000000000017 +:042ABC000000000016 +:042ABD000000000015 +:042ABE000000000014 +:042ABF000000000013 +:042AC0000000000012 +:042AC1000000000011 +:042AC2000000000010 +:042AC300000000000F +:042AC400000000000E +:042AC500000000000D +:042AC600000000000C +:042AC700000000000B +:042AC800000000000A +:042AC9000000000009 +:042ACA000000000008 +:042ACB000000000007 +:042ACC000000000006 +:042ACD000000000005 +:042ACE000000000004 +:042ACF000000000003 +:042AD0000000000002 +:042AD1000000000001 +:042AD2000000000000 +:042AD30000000000FF +:042AD40000000000FE +:042AD50000000000FD +:042AD60000000000FC +:042AD70000000000FB +:042AD80000000000FA +:042AD90000000000F9 +:042ADA0000000000F8 +:042ADB0000000000F7 +:042ADC0000000000F6 +:042ADD0000000000F5 +:042ADE0000000000F4 +:042ADF0000000000F3 +:042AE00000000000F2 +:042AE10000000000F1 +:042AE20000000000F0 +:042AE30000000000EF +:042AE40000000000EE +:042AE50000000000ED +:042AE60000000000EC +:042AE70000000000EB +:042AE80000000000EA +:042AE90000000000E9 +:042AEA0000000000E8 +:042AEB0000000000E7 +:042AEC0000000000E6 +:042AED0000000000E5 +:042AEE0000000000E4 +:042AEF0000000000E3 +:042AF00000000000E2 +:042AF10000000000E1 +:042AF20000000000E0 +:042AF30000000000DF +:042AF40000000000DE +:042AF50000000000DD +:042AF60000000000DC +:042AF70000000000DB +:042AF80000000000DA +:042AF90000000000D9 +:042AFA0000000000D8 +:042AFB0000000000D7 +:042AFC0000000000D6 +:042AFD0000000000D5 +:042AFE0000000000D4 +:042AFF0000000000D3 +:042B000000000000D1 +:042B010000000000D0 +:042B020000000000CF +:042B030000000000CE +:042B040000000000CD +:042B050000000000CC +:042B060000000000CB +:042B070000000000CA +:042B080000000000C9 +:042B090000000000C8 +:042B0A0000000000C7 +:042B0B0000000000C6 +:042B0C0000000000C5 +:042B0D0000000000C4 +:042B0E0000000000C3 +:042B0F0000000000C2 +:042B100000000000C1 +:042B110000000000C0 +:042B120000000000BF +:042B130000000000BE +:042B140000000000BD +:042B150000000000BC +:042B160000000000BB +:042B170000000000BA +:042B180000000000B9 +:042B190000000000B8 +:042B1A0000000000B7 +:042B1B0000000000B6 +:042B1C0000000000B5 +:042B1D0000000000B4 +:042B1E0000000000B3 +:042B1F0000000000B2 +:042B200000000000B1 +:042B210000000000B0 +:042B220000000000AF +:042B230000000000AE +:042B240000000000AD +:042B250000000000AC +:042B260000000000AB +:042B270000000000AA +:042B280000000000A9 +:042B290000000000A8 +:042B2A0000000000A7 +:042B2B0000000000A6 +:042B2C0000000000A5 +:042B2D0000000000A4 +:042B2E0000000000A3 +:042B2F0000000000A2 +:042B300000000000A1 +:042B310000000000A0 +:042B3200000000009F +:042B3300000000009E +:042B3400000000009D +:042B3500000000009C +:042B3600000000009B +:042B3700000000009A +:042B38000000000099 +:042B39000000000098 +:042B3A000000000097 +:042B3B000000000096 +:042B3C000000000095 +:042B3D000000000094 +:042B3E000000000093 +:042B3F000000000092 +:042B40000000000091 +:042B41000000000090 +:042B4200000000008F +:042B4300000000008E +:042B4400000000008D +:042B4500000000008C +:042B4600000000008B +:042B4700000000008A +:042B48000000000089 +:042B49000000000088 +:042B4A000000000087 +:042B4B000000000086 +:042B4C000000000085 +:042B4D000000000084 +:042B4E000000000083 +:042B4F000000000082 +:042B50000000000081 +:042B51000000000080 +:042B5200000000007F +:042B5300000000007E +:042B5400000000007D +:042B5500000000007C +:042B5600000000007B +:042B5700000000007A +:042B58000000000079 +:042B59000000000078 +:042B5A000000000077 +:042B5B000000000076 +:042B5C000000000075 +:042B5D000000000074 +:042B5E000000000073 +:042B5F000000000072 +:042B60000000000071 +:042B61000000000070 +:042B6200000000006F +:042B6300000000006E +:042B6400000000006D +:042B6500000000006C +:042B6600000000006B +:042B6700000000006A +:042B68000000000069 +:042B69000000000068 +:042B6A000000000067 +:042B6B000000000066 +:042B6C000000000065 +:042B6D000000000064 +:042B6E000000000063 +:042B6F000000000062 +:042B70000000000061 +:042B71000000000060 +:042B7200000000005F +:042B7300000000005E +:042B7400000000005D +:042B7500000000005C +:042B7600000000005B +:042B7700000000005A +:042B78000000000059 +:042B79000000000058 +:042B7A000000000057 +:042B7B000000000056 +:042B7C000000000055 +:042B7D000000000054 +:042B7E000000000053 +:042B7F000000000052 +:042B80000000000051 +:042B81000000000050 +:042B8200000000004F +:042B8300000000004E +:042B8400000000004D +:042B8500000000004C +:042B8600000000004B +:042B8700000000004A +:042B88000000000049 +:042B89000000000048 +:042B8A000000000047 +:042B8B000000000046 +:042B8C000000000045 +:042B8D000000000044 +:042B8E000000000043 +:042B8F000000000042 +:042B90000000000041 +:042B91000000000040 +:042B9200000000003F +:042B9300000000003E +:042B9400000000003D +:042B9500000000003C +:042B9600000000003B +:042B9700000000003A +:042B98000000000039 +:042B99000000000038 +:042B9A000000000037 +:042B9B000000000036 +:042B9C000000000035 +:042B9D000000000034 +:042B9E000000000033 +:042B9F000000000032 +:042BA0000000000031 +:042BA1000000000030 +:042BA200000000002F +:042BA300000000002E +:042BA400000000002D +:042BA500000000002C +:042BA600000000002B +:042BA700000000002A +:042BA8000000000029 +:042BA9000000000028 +:042BAA000000000027 +:042BAB000000000026 +:042BAC000000000025 +:042BAD000000000024 +:042BAE000000000023 +:042BAF000000000022 +:042BB0000000000021 +:042BB1000000000020 +:042BB200000000001F +:042BB300000000001E +:042BB400000000001D +:042BB500000000001C +:042BB600000000001B +:042BB700000000001A +:042BB8000000000019 +:042BB9000000000018 +:042BBA000000000017 +:042BBB000000000016 +:042BBC000000000015 +:042BBD000000000014 +:042BBE000000000013 +:042BBF000000000012 +:042BC0000000000011 +:042BC1000000000010 +:042BC200000000000F +:042BC300000000000E +:042BC400000000000D +:042BC500000000000C +:042BC600000000000B +:042BC700000000000A +:042BC8000000000009 +:042BC9000000000008 +:042BCA000000000007 +:042BCB000000000006 +:042BCC000000000005 +:042BCD000000000004 +:042BCE000000000003 +:042BCF000000000002 +:042BD0000000000001 +:042BD1000000000000 +:042BD20000000000FF +:042BD30000000000FE +:042BD40000000000FD +:042BD50000000000FC +:042BD60000000000FB +:042BD70000000000FA +:042BD80000000000F9 +:042BD90000000000F8 +:042BDA0000000000F7 +:042BDB0000000000F6 +:042BDC0000000000F5 +:042BDD0000000000F4 +:042BDE0000000000F3 +:042BDF0000000000F2 +:042BE00000000000F1 +:042BE10000000000F0 +:042BE20000000000EF +:042BE30000000000EE +:042BE40000000000ED +:042BE50000000000EC +:042BE60000000000EB +:042BE70000000000EA +:042BE80000000000E9 +:042BE90000000000E8 +:042BEA0000000000E7 +:042BEB0000000000E6 +:042BEC0000000000E5 +:042BED0000000000E4 +:042BEE0000000000E3 +:042BEF0000000000E2 +:042BF00000000000E1 +:042BF10000000000E0 +:042BF20000000000DF +:042BF30000000000DE +:042BF40000000000DD +:042BF50000000000DC +:042BF60000000000DB +:042BF70000000000DA +:042BF80000000000D9 +:042BF90000000000D8 +:042BFA0000000000D7 +:042BFB0000000000D6 +:042BFC0000000000D5 +:042BFD0000000000D4 +:042BFE0000000000D3 +:042BFF0000000000D2 +:042C000000000000D0 +:042C010000000000CF +:042C020000000000CE +:042C030000000000CD +:042C040000000000CC +:042C050000000000CB +:042C060000000000CA +:042C070000000000C9 +:042C080000000000C8 +:042C090000000000C7 +:042C0A0000000000C6 +:042C0B0000000000C5 +:042C0C0000000000C4 +:042C0D0000000000C3 +:042C0E0000000000C2 +:042C0F0000000000C1 +:042C100000000000C0 +:042C110000000000BF +:042C120000000000BE +:042C130000000000BD +:042C140000000000BC +:042C150000000000BB +:042C160000000000BA +:042C170000000000B9 +:042C180000000000B8 +:042C190000000000B7 +:042C1A0000000000B6 +:042C1B0000000000B5 +:042C1C0000000000B4 +:042C1D0000000000B3 +:042C1E0000000000B2 +:042C1F0000000000B1 +:042C200000000000B0 +:042C210000000000AF +:042C220000000000AE +:042C230000000000AD +:042C240000000000AC +:042C250000000000AB +:042C260000000000AA +:042C270000000000A9 +:042C280000000000A8 +:042C290000000000A7 +:042C2A0000000000A6 +:042C2B0000000000A5 +:042C2C0000000000A4 +:042C2D0000000000A3 +:042C2E0000000000A2 +:042C2F0000000000A1 +:042C300000000000A0 +:042C3100000000009F +:042C3200000000009E +:042C3300000000009D +:042C3400000000009C +:042C3500000000009B +:042C3600000000009A +:042C37000000000099 +:042C38000000000098 +:042C39000000000097 +:042C3A000000000096 +:042C3B000000000095 +:042C3C000000000094 +:042C3D000000000093 +:042C3E000000000092 +:042C3F000000000091 +:042C40000000000090 +:042C4100000000008F +:042C4200000000008E +:042C4300000000008D +:042C4400000000008C +:042C4500000000008B +:042C4600000000008A +:042C47000000000089 +:042C48000000000088 +:042C49000000000087 +:042C4A000000000086 +:042C4B000000000085 +:042C4C000000000084 +:042C4D000000000083 +:042C4E000000000082 +:042C4F000000000081 +:042C50000000000080 +:042C5100000000007F +:042C5200000000007E +:042C5300000000007D +:042C5400000000007C +:042C5500000000007B +:042C5600000000007A +:042C57000000000079 +:042C58000000000078 +:042C59000000000077 +:042C5A000000000076 +:042C5B000000000075 +:042C5C000000000074 +:042C5D000000000073 +:042C5E000000000072 +:042C5F000000000071 +:042C60000000000070 +:042C6100000000006F +:042C6200000000006E +:042C6300000000006D +:042C6400000000006C +:042C6500000000006B +:042C6600000000006A +:042C67000000000069 +:042C68000000000068 +:042C69000000000067 +:042C6A000000000066 +:042C6B000000000065 +:042C6C000000000064 +:042C6D000000000063 +:042C6E000000000062 +:042C6F000000000061 +:042C70000000000060 +:042C7100000000005F +:042C7200000000005E +:042C7300000000005D +:042C7400000000005C +:042C7500000000005B +:042C7600000000005A +:042C77000000000059 +:042C78000000000058 +:042C79000000000057 +:042C7A000000000056 +:042C7B000000000055 +:042C7C000000000054 +:042C7D000000000053 +:042C7E000000000052 +:042C7F000000000051 +:042C80000000000050 +:042C8100000000004F +:042C8200000000004E +:042C8300000000004D +:042C8400000000004C +:042C8500000000004B +:042C8600000000004A +:042C87000000000049 +:042C88000000000048 +:042C89000000000047 +:042C8A000000000046 +:042C8B000000000045 +:042C8C000000000044 +:042C8D000000000043 +:042C8E000000000042 +:042C8F000000000041 +:042C90000000000040 +:042C9100000000003F +:042C9200000000003E +:042C9300000000003D +:042C9400000000003C +:042C9500000000003B +:042C9600000000003A +:042C97000000000039 +:042C98000000000038 +:042C99000000000037 +:042C9A000000000036 +:042C9B000000000035 +:042C9C000000000034 +:042C9D000000000033 +:042C9E000000000032 +:042C9F000000000031 +:042CA0000000000030 +:042CA100000000002F +:042CA200000000002E +:042CA300000000002D +:042CA400000000002C +:042CA500000000002B +:042CA600000000002A +:042CA7000000000029 +:042CA8000000000028 +:042CA9000000000027 +:042CAA000000000026 +:042CAB000000000025 +:042CAC000000000024 +:042CAD000000000023 +:042CAE000000000022 +:042CAF000000000021 +:042CB0000000000020 +:042CB100000000001F +:042CB200000000001E +:042CB300000000001D +:042CB400000000001C +:042CB500000000001B +:042CB600000000001A +:042CB7000000000019 +:042CB8000000000018 +:042CB9000000000017 +:042CBA000000000016 +:042CBB000000000015 +:042CBC000000000014 +:042CBD000000000013 +:042CBE000000000012 +:042CBF000000000011 +:042CC0000000000010 +:042CC100000000000F +:042CC200000000000E +:042CC300000000000D +:042CC400000000000C +:042CC500000000000B +:042CC600000000000A +:042CC7000000000009 +:042CC8000000000008 +:042CC9000000000007 +:042CCA000000000006 +:042CCB000000000005 +:042CCC000000000004 +:042CCD000000000003 +:042CCE000000000002 +:042CCF000000000001 +:042CD0000000000000 +:042CD10000000000FF +:042CD20000000000FE +:042CD30000000000FD +:042CD40000000000FC +:042CD50000000000FB +:042CD60000000000FA +:042CD70000000000F9 +:042CD80000000000F8 +:042CD90000000000F7 +:042CDA0000000000F6 +:042CDB0000000000F5 +:042CDC0000000000F4 +:042CDD0000000000F3 +:042CDE0000000000F2 +:042CDF0000000000F1 +:042CE00000000000F0 +:042CE10000000000EF +:042CE20000000000EE +:042CE30000000000ED +:042CE40000000000EC +:042CE50000000000EB +:042CE60000000000EA +:042CE70000000000E9 +:042CE80000000000E8 +:042CE90000000000E7 +:042CEA0000000000E6 +:042CEB0000000000E5 +:042CEC0000000000E4 +:042CED0000000000E3 +:042CEE0000000000E2 +:042CEF0000000000E1 +:042CF00000000000E0 +:042CF10000000000DF +:042CF20000000000DE +:042CF30000000000DD +:042CF40000000000DC +:042CF50000000000DB +:042CF60000000000DA +:042CF70000000000D9 +:042CF80000000000D8 +:042CF90000000000D7 +:042CFA0000000000D6 +:042CFB0000000000D5 +:042CFC0000000000D4 +:042CFD0000000000D3 +:042CFE0000000000D2 +:042CFF0000000000D1 +:042D000000000000CF +:042D010000000000CE +:042D020000000000CD +:042D030000000000CC +:042D040000000000CB +:042D050000000000CA +:042D060000000000C9 +:042D070000000000C8 +:042D080000000000C7 +:042D090000000000C6 +:042D0A0000000000C5 +:042D0B0000000000C4 +:042D0C0000000000C3 +:042D0D0000000000C2 +:042D0E0000000000C1 +:042D0F0000000000C0 +:042D100000000000BF +:042D110000000000BE +:042D120000000000BD +:042D130000000000BC +:042D140000000000BB +:042D150000000000BA +:042D160000000000B9 +:042D170000000000B8 +:042D180000000000B7 +:042D190000000000B6 +:042D1A0000000000B5 +:042D1B0000000000B4 +:042D1C0000000000B3 +:042D1D0000000000B2 +:042D1E0000000000B1 +:042D1F0000000000B0 +:042D200000000000AF +:042D210000000000AE +:042D220000000000AD +:042D230000000000AC +:042D240000000000AB +:042D250000000000AA +:042D260000000000A9 +:042D270000000000A8 +:042D280000000000A7 +:042D290000000000A6 +:042D2A0000000000A5 +:042D2B0000000000A4 +:042D2C0000000000A3 +:042D2D0000000000A2 +:042D2E0000000000A1 +:042D2F0000000000A0 +:042D3000000000009F +:042D3100000000009E +:042D3200000000009D +:042D3300000000009C +:042D3400000000009B +:042D3500000000009A +:042D36000000000099 +:042D37000000000098 +:042D38000000000097 +:042D39000000000096 +:042D3A000000000095 +:042D3B000000000094 +:042D3C000000000093 +:042D3D000000000092 +:042D3E000000000091 +:042D3F000000000090 +:042D4000000000008F +:042D4100000000008E +:042D4200000000008D +:042D4300000000008C +:042D4400000000008B +:042D4500000000008A +:042D46000000000089 +:042D47000000000088 +:042D48000000000087 +:042D49000000000086 +:042D4A000000000085 +:042D4B000000000084 +:042D4C000000000083 +:042D4D000000000082 +:042D4E000000000081 +:042D4F000000000080 +:042D5000000000007F +:042D5100000000007E +:042D5200000000007D +:042D5300000000007C +:042D5400000000007B +:042D5500000000007A +:042D56000000000079 +:042D57000000000078 +:042D58000000000077 +:042D59000000000076 +:042D5A000000000075 +:042D5B000000000074 +:042D5C000000000073 +:042D5D000000000072 +:042D5E000000000071 +:042D5F000000000070 +:042D6000000000006F +:042D6100000000006E +:042D6200000000006D +:042D6300000000006C +:042D6400000000006B +:042D6500000000006A +:042D66000000000069 +:042D67000000000068 +:042D68000000000067 +:042D69000000000066 +:042D6A000000000065 +:042D6B000000000064 +:042D6C000000000063 +:042D6D000000000062 +:042D6E000000000061 +:042D6F000000000060 +:042D7000000000005F +:042D7100000000005E +:042D7200000000005D +:042D7300000000005C +:042D7400000000005B +:042D7500000000005A +:042D76000000000059 +:042D77000000000058 +:042D78000000000057 +:042D79000000000056 +:042D7A000000000055 +:042D7B000000000054 +:042D7C000000000053 +:042D7D000000000052 +:042D7E000000000051 +:042D7F000000000050 +:042D8000000000004F +:042D8100000000004E +:042D8200000000004D +:042D8300000000004C +:042D8400000000004B +:042D8500000000004A +:042D86000000000049 +:042D87000000000048 +:042D88000000000047 +:042D89000000000046 +:042D8A000000000045 +:042D8B000000000044 +:042D8C000000000043 +:042D8D000000000042 +:042D8E000000000041 +:042D8F000000000040 +:042D9000000000003F +:042D9100000000003E +:042D9200000000003D +:042D9300000000003C +:042D9400000000003B +:042D9500000000003A +:042D96000000000039 +:042D97000000000038 +:042D98000000000037 +:042D99000000000036 +:042D9A000000000035 +:042D9B000000000034 +:042D9C000000000033 +:042D9D000000000032 +:042D9E000000000031 +:042D9F000000000030 +:042DA000000000002F +:042DA100000000002E +:042DA200000000002D +:042DA300000000002C +:042DA400000000002B +:042DA500000000002A +:042DA6000000000029 +:042DA7000000000028 +:042DA8000000000027 +:042DA9000000000026 +:042DAA000000000025 +:042DAB000000000024 +:042DAC000000000023 +:042DAD000000000022 +:042DAE000000000021 +:042DAF000000000020 +:042DB000000000001F +:042DB100000000001E +:042DB200000000001D +:042DB300000000001C +:042DB400000000001B +:042DB500000000001A +:042DB6000000000019 +:042DB7000000000018 +:042DB8000000000017 +:042DB9000000000016 +:042DBA000000000015 +:042DBB000000000014 +:042DBC000000000013 +:042DBD000000000012 +:042DBE000000000011 +:042DBF000000000010 +:042DC000000000000F +:042DC100000000000E +:042DC200000000000D +:042DC300000000000C +:042DC400000000000B +:042DC500000000000A +:042DC6000000000009 +:042DC7000000000008 +:042DC8000000000007 +:042DC9000000000006 +:042DCA000000000005 +:042DCB000000000004 +:042DCC000000000003 +:042DCD000000000002 +:042DCE000000000001 +:042DCF000000000000 +:042DD00000000000FF +:042DD10000000000FE +:042DD20000000000FD +:042DD30000000000FC +:042DD40000000000FB +:042DD50000000000FA +:042DD60000000000F9 +:042DD70000000000F8 +:042DD80000000000F7 +:042DD90000000000F6 +:042DDA0000000000F5 +:042DDB0000000000F4 +:042DDC0000000000F3 +:042DDD0000000000F2 +:042DDE0000000000F1 +:042DDF0000000000F0 +:042DE00000000000EF +:042DE10000000000EE +:042DE20000000000ED +:042DE30000000000EC +:042DE40000000000EB +:042DE50000000000EA +:042DE60000000000E9 +:042DE70000000000E8 +:042DE80000000000E7 +:042DE90000000000E6 +:042DEA0000000000E5 +:042DEB0000000000E4 +:042DEC0000000000E3 +:042DED0000000000E2 +:042DEE0000000000E1 +:042DEF0000000000E0 +:042DF00000000000DF +:042DF10000000000DE +:042DF20000000000DD +:042DF30000000000DC +:042DF40000000000DB +:042DF50000000000DA +:042DF60000000000D9 +:042DF70000000000D8 +:042DF80000000000D7 +:042DF90000000000D6 +:042DFA0000000000D5 +:042DFB0000000000D4 +:042DFC0000000000D3 +:042DFD0000000000D2 +:042DFE0000000000D1 +:042DFF0000000000D0 +:042E000000000000CE +:042E010000000000CD +:042E020000000000CC +:042E030000000000CB +:042E040000000000CA +:042E050000000000C9 +:042E060000000000C8 +:042E070000000000C7 +:042E080000000000C6 +:042E090000000000C5 +:042E0A0000000000C4 +:042E0B0000000000C3 +:042E0C0000000000C2 +:042E0D0000000000C1 +:042E0E0000000000C0 +:042E0F0000000000BF +:042E100000000000BE +:042E110000000000BD +:042E120000000000BC +:042E130000000000BB +:042E140000000000BA +:042E150000000000B9 +:042E160000000000B8 +:042E170000000000B7 +:042E180000000000B6 +:042E190000000000B5 +:042E1A0000000000B4 +:042E1B0000000000B3 +:042E1C0000000000B2 +:042E1D0000000000B1 +:042E1E0000000000B0 +:042E1F0000000000AF +:042E200000000000AE +:042E210000000000AD +:042E220000000000AC +:042E230000000000AB +:042E240000000000AA +:042E250000000000A9 +:042E260000000000A8 +:042E270000000000A7 +:042E280000000000A6 +:042E290000000000A5 +:042E2A0000000000A4 +:042E2B0000000000A3 +:042E2C0000000000A2 +:042E2D0000000000A1 +:042E2E0000000000A0 +:042E2F00000000009F +:042E3000000000009E +:042E3100000000009D +:042E3200000000009C +:042E3300000000009B +:042E3400000000009A +:042E35000000000099 +:042E36000000000098 +:042E37000000000097 +:042E38000000000096 +:042E39000000000095 +:042E3A000000000094 +:042E3B000000000093 +:042E3C000000000092 +:042E3D000000000091 +:042E3E000000000090 +:042E3F00000000008F +:042E4000000000008E +:042E4100000000008D +:042E4200000000008C +:042E4300000000008B +:042E4400000000008A +:042E45000000000089 +:042E46000000000088 +:042E47000000000087 +:042E48000000000086 +:042E49000000000085 +:042E4A000000000084 +:042E4B000000000083 +:042E4C000000000082 +:042E4D000000000081 +:042E4E000000000080 +:042E4F00000000007F +:042E5000000000007E +:042E5100000000007D +:042E5200000000007C +:042E5300000000007B +:042E5400000000007A +:042E55000000000079 +:042E56000000000078 +:042E57000000000077 +:042E58000000000076 +:042E59000000000075 +:042E5A000000000074 +:042E5B000000000073 +:042E5C000000000072 +:042E5D000000000071 +:042E5E000000000070 +:042E5F00000000006F +:042E6000000000006E +:042E6100000000006D +:042E6200000000006C +:042E6300000000006B +:042E6400000000006A +:042E65000000000069 +:042E66000000000068 +:042E67000000000067 +:042E68000000000066 +:042E69000000000065 +:042E6A000000000064 +:042E6B000000000063 +:042E6C000000000062 +:042E6D000000000061 +:042E6E000000000060 +:042E6F00000000005F +:042E7000000000005E +:042E7100000000005D +:042E7200000000005C +:042E7300000000005B +:042E7400000000005A +:042E75000000000059 +:042E76000000000058 +:042E77000000000057 +:042E78000000000056 +:042E79000000000055 +:042E7A000000000054 +:042E7B000000000053 +:042E7C000000000052 +:042E7D000000000051 +:042E7E000000000050 +:042E7F00000000004F +:042E8000000000004E +:042E8100000000004D +:042E8200000000004C +:042E8300000000004B +:042E8400000000004A +:042E85000000000049 +:042E86000000000048 +:042E87000000000047 +:042E88000000000046 +:042E89000000000045 +:042E8A000000000044 +:042E8B000000000043 +:042E8C000000000042 +:042E8D000000000041 +:042E8E000000000040 +:042E8F00000000003F +:042E9000000000003E +:042E9100000000003D +:042E9200000000003C +:042E9300000000003B +:042E9400000000003A +:042E95000000000039 +:042E96000000000038 +:042E97000000000037 +:042E98000000000036 +:042E99000000000035 +:042E9A000000000034 +:042E9B000000000033 +:042E9C000000000032 +:042E9D000000000031 +:042E9E000000000030 +:042E9F00000000002F +:042EA000000000002E +:042EA100000000002D +:042EA200000000002C +:042EA300000000002B +:042EA400000000002A +:042EA5000000000029 +:042EA6000000000028 +:042EA7000000000027 +:042EA8000000000026 +:042EA9000000000025 +:042EAA000000000024 +:042EAB000000000023 +:042EAC000000000022 +:042EAD000000000021 +:042EAE000000000020 +:042EAF00000000001F +:042EB000000000001E +:042EB100000000001D +:042EB200000000001C +:042EB300000000001B +:042EB400000000001A +:042EB5000000000019 +:042EB6000000000018 +:042EB7000000000017 +:042EB8000000000016 +:042EB9000000000015 +:042EBA000000000014 +:042EBB000000000013 +:042EBC000000000012 +:042EBD000000000011 +:042EBE000000000010 +:042EBF00000000000F +:042EC000000000000E +:042EC100000000000D +:042EC200000000000C +:042EC300000000000B +:042EC400000000000A +:042EC5000000000009 +:042EC6000000000008 +:042EC7000000000007 +:042EC8000000000006 +:042EC9000000000005 +:042ECA000000000004 +:042ECB000000000003 +:042ECC000000000002 +:042ECD000000000001 +:042ECE000000000000 +:042ECF0000000000FF +:042ED00000000000FE +:042ED10000000000FD +:042ED20000000000FC +:042ED30000000000FB +:042ED40000000000FA +:042ED50000000000F9 +:042ED60000000000F8 +:042ED70000000000F7 +:042ED80000000000F6 +:042ED90000000000F5 +:042EDA0000000000F4 +:042EDB0000000000F3 +:042EDC0000000000F2 +:042EDD0000000000F1 +:042EDE0000000000F0 +:042EDF0000000000EF +:042EE00000000000EE +:042EE10000000000ED +:042EE20000000000EC +:042EE30000000000EB +:042EE40000000000EA +:042EE50000000000E9 +:042EE60000000000E8 +:042EE70000000000E7 +:042EE80000000000E6 +:042EE90000000000E5 +:042EEA0000000000E4 +:042EEB0000000000E3 +:042EEC0000000000E2 +:042EED0000000000E1 +:042EEE0000000000E0 +:042EEF0000000000DF +:042EF00000000000DE +:042EF10000000000DD +:042EF20000000000DC +:042EF30000000000DB +:042EF40000000000DA +:042EF50000000000D9 +:042EF60000000000D8 +:042EF70000000000D7 +:042EF80000000000D6 +:042EF90000000000D5 +:042EFA0000000000D4 +:042EFB0000000000D3 +:042EFC0000000000D2 +:042EFD0000000000D1 +:042EFE0000000000D0 +:042EFF0000000000CF +:042F000000000000CD +:042F010000000000CC +:042F020000000000CB +:042F030000000000CA +:042F040000000000C9 +:042F050000000000C8 +:042F060000000000C7 +:042F070000000000C6 +:042F080000000000C5 +:042F090000000000C4 +:042F0A0000000000C3 +:042F0B0000000000C2 +:042F0C0000000000C1 +:042F0D0000000000C0 +:042F0E0000000000BF +:042F0F0000000000BE +:042F100000000000BD +:042F110000000000BC +:042F120000000000BB +:042F130000000000BA +:042F140000000000B9 +:042F150000000000B8 +:042F160000000000B7 +:042F170000000000B6 +:042F180000000000B5 +:042F190000000000B4 +:042F1A0000000000B3 +:042F1B0000000000B2 +:042F1C0000000000B1 +:042F1D0000000000B0 +:042F1E0000000000AF +:042F1F0000000000AE +:042F200000000000AD +:042F210000000000AC +:042F220000000000AB +:042F230000000000AA +:042F240000000000A9 +:042F250000000000A8 +:042F260000000000A7 +:042F270000000000A6 +:042F280000000000A5 +:042F290000000000A4 +:042F2A0000000000A3 +:042F2B0000000000A2 +:042F2C0000000000A1 +:042F2D0000000000A0 +:042F2E00000000009F +:042F2F00000000009E +:042F3000000000009D +:042F3100000000009C +:042F3200000000009B +:042F3300000000009A +:042F34000000000099 +:042F35000000000098 +:042F36000000000097 +:042F37000000000096 +:042F38000000000095 +:042F39000000000094 +:042F3A000000000093 +:042F3B000000000092 +:042F3C000000000091 +:042F3D000000000090 +:042F3E00000000008F +:042F3F00000000008E +:042F4000000000008D +:042F4100000000008C +:042F4200000000008B +:042F4300000000008A +:042F44000000000089 +:042F45000000000088 +:042F46000000000087 +:042F47000000000086 +:042F48000000000085 +:042F49000000000084 +:042F4A000000000083 +:042F4B000000000082 +:042F4C000000000081 +:042F4D000000000080 +:042F4E00000000007F +:042F4F00000000007E +:042F5000000000007D +:042F5100000000007C +:042F5200000000007B +:042F5300000000007A +:042F54000000000079 +:042F55000000000078 +:042F56000000000077 +:042F57000000000076 +:042F58000000000075 +:042F59000000000074 +:042F5A000000000073 +:042F5B000000000072 +:042F5C000000000071 +:042F5D000000000070 +:042F5E00000000006F +:042F5F00000000006E +:042F6000000000006D +:042F6100000000006C +:042F6200000000006B +:042F6300000000006A +:042F64000000000069 +:042F65000000000068 +:042F66000000000067 +:042F67000000000066 +:042F68000000000065 +:042F69000000000064 +:042F6A000000000063 +:042F6B000000000062 +:042F6C000000000061 +:042F6D000000000060 +:042F6E00000000005F +:042F6F00000000005E +:042F7000000000005D +:042F7100000000005C +:042F7200000000005B +:042F7300000000005A +:042F74000000000059 +:042F75000000000058 +:042F76000000000057 +:042F77000000000056 +:042F78000000000055 +:042F79000000000054 +:042F7A000000000053 +:042F7B000000000052 +:042F7C000000000051 +:042F7D000000000050 +:042F7E00000000004F +:042F7F00000000004E +:042F8000000000004D +:042F8100000000004C +:042F8200000000004B +:042F8300000000004A +:042F84000000000049 +:042F85000000000048 +:042F86000000000047 +:042F87000000000046 +:042F88000000000045 +:042F89000000000044 +:042F8A000000000043 +:042F8B000000000042 +:042F8C000000000041 +:042F8D000000000040 +:042F8E00000000003F +:042F8F00000000003E +:042F9000000000003D +:042F9100000000003C +:042F9200000000003B +:042F9300000000003A +:042F94000000000039 +:042F95000000000038 +:042F96000000000037 +:042F97000000000036 +:042F98000000000035 +:042F99000000000034 +:042F9A000000000033 +:042F9B000000000032 +:042F9C000000000031 +:042F9D000000000030 +:042F9E00000000002F +:042F9F00000000002E +:042FA000000000002D +:042FA100000000002C +:042FA200000000002B +:042FA300000000002A +:042FA4000000000029 +:042FA5000000000028 +:042FA6000000000027 +:042FA7000000000026 +:042FA8000000000025 +:042FA9000000000024 +:042FAA000000000023 +:042FAB000000000022 +:042FAC000000000021 +:042FAD000000000020 +:042FAE00000000001F +:042FAF00000000001E +:042FB000000000001D +:042FB100000000001C +:042FB200000000001B +:042FB300000000001A +:042FB4000000000019 +:042FB5000000000018 +:042FB6000000000017 +:042FB7000000000016 +:042FB8000000000015 +:042FB9000000000014 +:042FBA000000000013 +:042FBB000000000012 +:042FBC000000000011 +:042FBD000000000010 +:042FBE00000000000F +:042FBF00000000000E +:042FC000000000000D +:042FC100000000000C +:042FC200000000000B +:042FC300000000000A +:042FC4000000000009 +:042FC5000000000008 +:042FC6000000000007 +:042FC7000000000006 +:042FC8000000000005 +:042FC9000000000004 +:042FCA000000000003 +:042FCB000000000002 +:042FCC000000000001 +:042FCD000000000000 +:042FCE0000000000FF +:042FCF0000000000FE +:042FD00000000000FD +:042FD10000000000FC +:042FD20000000000FB +:042FD30000000000FA +:042FD40000000000F9 +:042FD50000000000F8 +:042FD60000000000F7 +:042FD70000000000F6 +:042FD80000000000F5 +:042FD90000000000F4 +:042FDA0000000000F3 +:042FDB0000000000F2 +:042FDC0000000000F1 +:042FDD0000000000F0 +:042FDE0000000000EF +:042FDF0000000000EE +:042FE00000000000ED +:042FE10000000000EC +:042FE20000000000EB +:042FE30000000000EA +:042FE40000000000E9 +:042FE50000000000E8 +:042FE60000000000E7 +:042FE70000000000E6 +:042FE80000000000E5 +:042FE90000000000E4 +:042FEA0000000000E3 +:042FEB0000000000E2 +:042FEC0000000000E1 +:042FED0000000000E0 +:042FEE0000000000DF +:042FEF0000000000DE +:042FF00000000000DD +:042FF10000000000DC +:042FF20000000000DB +:042FF30000000000DA +:042FF40000000000D9 +:042FF50000000000D8 +:042FF60000000000D7 +:042FF70000000000D6 +:042FF80000000000D5 +:042FF90000000000D4 +:042FFA0000000000D3 +:042FFB0000000000D2 +:042FFC0000000000D1 +:042FFD0000000000D0 +:042FFE0000000000CF +:042FFF0000000000CE +:0430000000000000CC +:0430010000000000CB +:0430020000000000CA +:0430030000000000C9 +:0430040000000000C8 +:0430050000000000C7 +:0430060000000000C6 +:0430070000000000C5 +:0430080000000000C4 +:0430090000000000C3 +:04300A0000000000C2 +:04300B0000000000C1 +:04300C0000000000C0 +:04300D0000000000BF +:04300E0000000000BE +:04300F0000000000BD +:0430100000000000BC +:0430110000000000BB +:0430120000000000BA +:0430130000000000B9 +:0430140000000000B8 +:0430150000000000B7 +:0430160000000000B6 +:0430170000000000B5 +:0430180000000000B4 +:0430190000000000B3 +:04301A0000000000B2 +:04301B0000000000B1 +:04301C0000000000B0 +:04301D0000000000AF +:04301E0000000000AE +:04301F0000000000AD +:0430200000000000AC +:0430210000000000AB +:0430220000000000AA +:0430230000000000A9 +:0430240000000000A8 +:0430250000000000A7 +:0430260000000000A6 +:0430270000000000A5 +:0430280000000000A4 +:0430290000000000A3 +:04302A0000000000A2 +:04302B0000000000A1 +:04302C0000000000A0 +:04302D00000000009F +:04302E00000000009E +:04302F00000000009D +:04303000000000009C +:04303100000000009B +:04303200000000009A +:043033000000000099 +:043034000000000098 +:043035000000000097 +:043036000000000096 +:043037000000000095 +:043038000000000094 +:043039000000000093 +:04303A000000000092 +:04303B000000000091 +:04303C000000000090 +:04303D00000000008F +:04303E00000000008E +:04303F00000000008D +:04304000000000008C +:04304100000000008B +:04304200000000008A +:043043000000000089 +:043044000000000088 +:043045000000000087 +:043046000000000086 +:043047000000000085 +:043048000000000084 +:043049000000000083 +:04304A000000000082 +:04304B000000000081 +:04304C000000000080 +:04304D00000000007F +:04304E00000000007E +:04304F00000000007D +:04305000000000007C +:04305100000000007B +:04305200000000007A +:043053000000000079 +:043054000000000078 +:043055000000000077 +:043056000000000076 +:043057000000000075 +:043058000000000074 +:043059000000000073 +:04305A000000000072 +:04305B000000000071 +:04305C000000000070 +:04305D00000000006F +:04305E00000000006E +:04305F00000000006D +:04306000000000006C +:04306100000000006B +:04306200000000006A +:043063000000000069 +:043064000000000068 +:043065000000000067 +:043066000000000066 +:043067000000000065 +:043068000000000064 +:043069000000000063 +:04306A000000000062 +:04306B000000000061 +:04306C000000000060 +:04306D00000000005F +:04306E00000000005E +:04306F00000000005D +:04307000000000005C +:04307100000000005B +:04307200000000005A +:043073000000000059 +:043074000000000058 +:043075000000000057 +:043076000000000056 +:043077000000000055 +:043078000000000054 +:043079000000000053 +:04307A000000000052 +:04307B000000000051 +:04307C000000000050 +:04307D00000000004F +:04307E00000000004E +:04307F00000000004D +:04308000000000004C +:04308100000000004B +:04308200000000004A +:043083000000000049 +:043084000000000048 +:043085000000000047 +:043086000000000046 +:043087000000000045 +:043088000000000044 +:043089000000000043 +:04308A000000000042 +:04308B000000000041 +:04308C000000000040 +:04308D00000000003F +:04308E00000000003E +:04308F00000000003D +:04309000000000003C +:04309100000000003B +:04309200000000003A +:043093000000000039 +:043094000000000038 +:043095000000000037 +:043096000000000036 +:043097000000000035 +:043098000000000034 +:043099000000000033 +:04309A000000000032 +:04309B000000000031 +:04309C000000000030 +:04309D00000000002F +:04309E00000000002E +:04309F00000000002D +:0430A000000000002C +:0430A100000000002B +:0430A200000000002A +:0430A3000000000029 +:0430A4000000000028 +:0430A5000000000027 +:0430A6000000000026 +:0430A7000000000025 +:0430A8000000000024 +:0430A9000000000023 +:0430AA000000000022 +:0430AB000000000021 +:0430AC000000000020 +:0430AD00000000001F +:0430AE00000000001E +:0430AF00000000001D +:0430B000000000001C +:0430B100000000001B +:0430B200000000001A +:0430B3000000000019 +:0430B4000000000018 +:0430B5000000000017 +:0430B6000000000016 +:0430B7000000000015 +:0430B8000000000014 +:0430B9000000000013 +:0430BA000000000012 +:0430BB000000000011 +:0430BC000000000010 +:0430BD00000000000F +:0430BE00000000000E +:0430BF00000000000D +:0430C000000000000C +:0430C100000000000B +:0430C200000000000A +:0430C3000000000009 +:0430C4000000000008 +:0430C5000000000007 +:0430C6000000000006 +:0430C7000000000005 +:0430C8000000000004 +:0430C9000000000003 +:0430CA000000000002 +:0430CB000000000001 +:0430CC000000000000 +:0430CD0000000000FF +:0430CE0000000000FE +:0430CF0000000000FD +:0430D00000000000FC +:0430D10000000000FB +:0430D20000000000FA +:0430D30000000000F9 +:0430D40000000000F8 +:0430D50000000000F7 +:0430D60000000000F6 +:0430D70000000000F5 +:0430D80000000000F4 +:0430D90000000000F3 +:0430DA0000000000F2 +:0430DB0000000000F1 +:0430DC0000000000F0 +:0430DD0000000000EF +:0430DE0000000000EE +:0430DF0000000000ED +:0430E00000000000EC +:0430E10000000000EB +:0430E20000000000EA +:0430E30000000000E9 +:0430E40000000000E8 +:0430E50000000000E7 +:0430E60000000000E6 +:0430E70000000000E5 +:0430E80000000000E4 +:0430E90000000000E3 +:0430EA0000000000E2 +:0430EB0000000000E1 +:0430EC0000000000E0 +:0430ED0000000000DF +:0430EE0000000000DE +:0430EF0000000000DD +:0430F00000000000DC +:0430F10000000000DB +:0430F20000000000DA +:0430F30000000000D9 +:0430F40000000000D8 +:0430F50000000000D7 +:0430F60000000000D6 +:0430F70000000000D5 +:0430F80000000000D4 +:0430F90000000000D3 +:0430FA0000000000D2 +:0430FB0000000000D1 +:0430FC0000000000D0 +:0430FD0000000000CF +:0430FE0000000000CE +:0430FF0000000000CD +:0431000000000000CB +:0431010000000000CA +:0431020000000000C9 +:0431030000000000C8 +:0431040000000000C7 +:0431050000000000C6 +:0431060000000000C5 +:0431070000000000C4 +:0431080000000000C3 +:0431090000000000C2 +:04310A0000000000C1 +:04310B0000000000C0 +:04310C0000000000BF +:04310D0000000000BE +:04310E0000000000BD +:04310F0000000000BC +:0431100000000000BB +:0431110000000000BA +:0431120000000000B9 +:0431130000000000B8 +:0431140000000000B7 +:0431150000000000B6 +:0431160000000000B5 +:0431170000000000B4 +:0431180000000000B3 +:0431190000000000B2 +:04311A0000000000B1 +:04311B0000000000B0 +:04311C0000000000AF +:04311D0000000000AE +:04311E0000000000AD +:04311F0000000000AC +:0431200000000000AB +:0431210000000000AA +:0431220000000000A9 +:0431230000000000A8 +:0431240000000000A7 +:0431250000000000A6 +:0431260000000000A5 +:0431270000000000A4 +:0431280000000000A3 +:0431290000000000A2 +:04312A0000000000A1 +:04312B0000000000A0 +:04312C00000000009F +:04312D00000000009E +:04312E00000000009D +:04312F00000000009C +:04313000000000009B +:04313100000000009A +:043132000000000099 +:043133000000000098 +:043134000000000097 +:043135000000000096 +:043136000000000095 +:043137000000000094 +:043138000000000093 +:043139000000000092 +:04313A000000000091 +:04313B000000000090 +:04313C00000000008F +:04313D00000000008E +:04313E00000000008D +:04313F00000000008C +:04314000000000008B +:04314100000000008A +:043142000000000089 +:043143000000000088 +:043144000000000087 +:043145000000000086 +:043146000000000085 +:043147000000000084 +:043148000000000083 +:043149000000000082 +:04314A000000000081 +:04314B000000000080 +:04314C00000000007F +:04314D00000000007E +:04314E00000000007D +:04314F00000000007C +:04315000000000007B +:04315100000000007A +:043152000000000079 +:043153000000000078 +:043154000000000077 +:043155000000000076 +:043156000000000075 +:043157000000000074 +:043158000000000073 +:043159000000000072 +:04315A000000000071 +:04315B000000000070 +:04315C00000000006F +:04315D00000000006E +:04315E00000000006D +:04315F00000000006C +:04316000000000006B +:04316100000000006A +:043162000000000069 +:043163000000000068 +:043164000000000067 +:043165000000000066 +:043166000000000065 +:043167000000000064 +:043168000000000063 +:043169000000000062 +:04316A000000000061 +:04316B000000000060 +:04316C00000000005F +:04316D00000000005E +:04316E00000000005D +:04316F00000000005C +:04317000000000005B +:04317100000000005A +:043172000000000059 +:043173000000000058 +:043174000000000057 +:043175000000000056 +:043176000000000055 +:043177000000000054 +:043178000000000053 +:043179000000000052 +:04317A000000000051 +:04317B000000000050 +:04317C00000000004F +:04317D00000000004E +:04317E00000000004D +:04317F00000000004C +:04318000000000004B +:04318100000000004A +:043182000000000049 +:043183000000000048 +:043184000000000047 +:043185000000000046 +:043186000000000045 +:043187000000000044 +:043188000000000043 +:043189000000000042 +:04318A000000000041 +:04318B000000000040 +:04318C00000000003F +:04318D00000000003E +:04318E00000000003D +:04318F00000000003C +:04319000000000003B +:04319100000000003A +:043192000000000039 +:043193000000000038 +:043194000000000037 +:043195000000000036 +:043196000000000035 +:043197000000000034 +:043198000000000033 +:043199000000000032 +:04319A000000000031 +:04319B000000000030 +:04319C00000000002F +:04319D00000000002E +:04319E00000000002D +:04319F00000000002C +:0431A000000000002B +:0431A100000000002A +:0431A2000000000029 +:0431A3000000000028 +:0431A4000000000027 +:0431A5000000000026 +:0431A6000000000025 +:0431A7000000000024 +:0431A8000000000023 +:0431A9000000000022 +:0431AA000000000021 +:0431AB000000000020 +:0431AC00000000001F +:0431AD00000000001E +:0431AE00000000001D +:0431AF00000000001C +:0431B000000000001B +:0431B100000000001A +:0431B2000000000019 +:0431B3000000000018 +:0431B4000000000017 +:0431B5000000000016 +:0431B6000000000015 +:0431B7000000000014 +:0431B8000000000013 +:0431B9000000000012 +:0431BA000000000011 +:0431BB000000000010 +:0431BC00000000000F +:0431BD00000000000E +:0431BE00000000000D +:0431BF00000000000C +:0431C000000000000B +:0431C100000000000A +:0431C2000000000009 +:0431C3000000000008 +:0431C4000000000007 +:0431C5000000000006 +:0431C6000000000005 +:0431C7000000000004 +:0431C8000000000003 +:0431C9000000000002 +:0431CA000000000001 +:0431CB000000000000 +:0431CC0000000000FF +:0431CD0000000000FE +:0431CE0000000000FD +:0431CF0000000000FC +:0431D00000000000FB +:0431D10000000000FA +:0431D20000000000F9 +:0431D30000000000F8 +:0431D40000000000F7 +:0431D50000000000F6 +:0431D60000000000F5 +:0431D70000000000F4 +:0431D80000000000F3 +:0431D90000000000F2 +:0431DA0000000000F1 +:0431DB0000000000F0 +:0431DC0000000000EF +:0431DD0000000000EE +:0431DE0000000000ED +:0431DF0000000000EC +:0431E00000000000EB +:0431E10000000000EA +:0431E20000000000E9 +:0431E30000000000E8 +:0431E40000000000E7 +:0431E50000000000E6 +:0431E60000000000E5 +:0431E70000000000E4 +:0431E80000000000E3 +:0431E90000000000E2 +:0431EA0000000000E1 +:0431EB0000000000E0 +:0431EC0000000000DF +:0431ED0000000000DE +:0431EE0000000000DD +:0431EF0000000000DC +:0431F00000000000DB +:0431F10000000000DA +:0431F20000000000D9 +:0431F30000000000D8 +:0431F40000000000D7 +:0431F50000000000D6 +:0431F60000000000D5 +:0431F70000000000D4 +:0431F80000000000D3 +:0431F90000000000D2 +:0431FA0000000000D1 +:0431FB0000000000D0 +:0431FC0000000000CF +:0431FD0000000000CE +:0431FE0000000000CD +:0431FF0000000000CC +:0432000000000000CA +:0432010000000000C9 +:0432020000000000C8 +:0432030000000000C7 +:0432040000000000C6 +:0432050000000000C5 +:0432060000000000C4 +:0432070000000000C3 +:0432080000000000C2 +:0432090000000000C1 +:04320A0000000000C0 +:04320B0000000000BF +:04320C0000000000BE +:04320D0000000000BD +:04320E0000000000BC +:04320F0000000000BB +:0432100000000000BA +:0432110000000000B9 +:0432120000000000B8 +:0432130000000000B7 +:0432140000000000B6 +:0432150000000000B5 +:0432160000000000B4 +:0432170000000000B3 +:0432180000000000B2 +:0432190000000000B1 +:04321A0000000000B0 +:04321B0000000000AF +:04321C0000000000AE +:04321D0000000000AD +:04321E0000000000AC +:04321F0000000000AB +:0432200000000000AA +:0432210000000000A9 +:0432220000000000A8 +:0432230000000000A7 +:0432240000000000A6 +:0432250000000000A5 +:0432260000000000A4 +:0432270000000000A3 +:0432280000000000A2 +:0432290000000000A1 +:04322A0000000000A0 +:04322B00000000009F +:04322C00000000009E +:04322D00000000009D +:04322E00000000009C +:04322F00000000009B +:04323000000000009A +:043231000000000099 +:043232000000000098 +:043233000000000097 +:043234000000000096 +:043235000000000095 +:043236000000000094 +:043237000000000093 +:043238000000000092 +:043239000000000091 +:04323A000000000090 +:04323B00000000008F +:04323C00000000008E +:04323D00000000008D +:04323E00000000008C +:04323F00000000008B +:04324000000000008A +:043241000000000089 +:043242000000000088 +:043243000000000087 +:043244000000000086 +:043245000000000085 +:043246000000000084 +:043247000000000083 +:043248000000000082 +:043249000000000081 +:04324A000000000080 +:04324B00000000007F +:04324C00000000007E +:04324D00000000007D +:04324E00000000007C +:04324F00000000007B +:04325000000000007A +:043251000000000079 +:043252000000000078 +:043253000000000077 +:043254000000000076 +:043255000000000075 +:043256000000000074 +:043257000000000073 +:043258000000000072 +:043259000000000071 +:04325A000000000070 +:04325B00000000006F +:04325C00000000006E +:04325D00000000006D +:04325E00000000006C +:04325F00000000006B +:04326000000000006A +:043261000000000069 +:043262000000000068 +:043263000000000067 +:043264000000000066 +:043265000000000065 +:043266000000000064 +:043267000000000063 +:043268000000000062 +:043269000000000061 +:04326A000000000060 +:04326B00000000005F +:04326C00000000005E +:04326D00000000005D +:04326E00000000005C +:04326F00000000005B +:04327000000000005A +:043271000000000059 +:043272000000000058 +:043273000000000057 +:043274000000000056 +:043275000000000055 +:043276000000000054 +:043277000000000053 +:043278000000000052 +:043279000000000051 +:04327A000000000050 +:04327B00000000004F +:04327C00000000004E +:04327D00000000004D +:04327E00000000004C +:04327F00000000004B +:04328000000000004A +:043281000000000049 +:043282000000000048 +:043283000000000047 +:043284000000000046 +:043285000000000045 +:043286000000000044 +:043287000000000043 +:043288000000000042 +:043289000000000041 +:04328A000000000040 +:04328B00000000003F +:04328C00000000003E +:04328D00000000003D +:04328E00000000003C +:04328F00000000003B +:04329000000000003A +:043291000000000039 +:043292000000000038 +:043293000000000037 +:043294000000000036 +:043295000000000035 +:043296000000000034 +:043297000000000033 +:043298000000000032 +:043299000000000031 +:04329A000000000030 +:04329B00000000002F +:04329C00000000002E +:04329D00000000002D +:04329E00000000002C +:04329F00000000002B +:0432A000000000002A +:0432A1000000000029 +:0432A2000000000028 +:0432A3000000000027 +:0432A4000000000026 +:0432A5000000000025 +:0432A6000000000024 +:0432A7000000000023 +:0432A8000000000022 +:0432A9000000000021 +:0432AA000000000020 +:0432AB00000000001F +:0432AC00000000001E +:0432AD00000000001D +:0432AE00000000001C +:0432AF00000000001B +:0432B000000000001A +:0432B1000000000019 +:0432B2000000000018 +:0432B3000000000017 +:0432B4000000000016 +:0432B5000000000015 +:0432B6000000000014 +:0432B7000000000013 +:0432B8000000000012 +:0432B9000000000011 +:0432BA000000000010 +:0432BB00000000000F +:0432BC00000000000E +:0432BD00000000000D +:0432BE00000000000C +:0432BF00000000000B +:0432C000000000000A +:0432C1000000000009 +:0432C2000000000008 +:0432C3000000000007 +:0432C4000000000006 +:0432C5000000000005 +:0432C6000000000004 +:0432C7000000000003 +:0432C8000000000002 +:0432C9000000000001 +:0432CA000000000000 +:0432CB0000000000FF +:0432CC0000000000FE +:0432CD0000000000FD +:0432CE0000000000FC +:0432CF0000000000FB +:0432D00000000000FA +:0432D10000000000F9 +:0432D20000000000F8 +:0432D30000000000F7 +:0432D40000000000F6 +:0432D50000000000F5 +:0432D60000000000F4 +:0432D70000000000F3 +:0432D80000000000F2 +:0432D90000000000F1 +:0432DA0000000000F0 +:0432DB0000000000EF +:0432DC0000000000EE +:0432DD0000000000ED +:0432DE0000000000EC +:0432DF0000000000EB +:0432E00000000000EA +:0432E10000000000E9 +:0432E20000000000E8 +:0432E30000000000E7 +:0432E40000000000E6 +:0432E50000000000E5 +:0432E60000000000E4 +:0432E70000000000E3 +:0432E80000000000E2 +:0432E90000000000E1 +:0432EA0000000000E0 +:0432EB0000000000DF +:0432EC0000000000DE +:0432ED0000000000DD +:0432EE0000000000DC +:0432EF0000000000DB +:0432F00000000000DA +:0432F10000000000D9 +:0432F20000000000D8 +:0432F30000000000D7 +:0432F40000000000D6 +:0432F50000000000D5 +:0432F60000000000D4 +:0432F70000000000D3 +:0432F80000000000D2 +:0432F90000000000D1 +:0432FA0000000000D0 +:0432FB0000000000CF +:0432FC0000000000CE +:0432FD0000000000CD +:0432FE0000000000CC +:0432FF0000000000CB +:0433000000000000C9 +:0433010000000000C8 +:0433020000000000C7 +:0433030000000000C6 +:0433040000000000C5 +:0433050000000000C4 +:0433060000000000C3 +:0433070000000000C2 +:0433080000000000C1 +:0433090000000000C0 +:04330A0000000000BF +:04330B0000000000BE +:04330C0000000000BD +:04330D0000000000BC +:04330E0000000000BB +:04330F0000000000BA +:0433100000000000B9 +:0433110000000000B8 +:0433120000000000B7 +:0433130000000000B6 +:0433140000000000B5 +:0433150000000000B4 +:0433160000000000B3 +:0433170000000000B2 +:0433180000000000B1 +:0433190000000000B0 +:04331A0000000000AF +:04331B0000000000AE +:04331C0000000000AD +:04331D0000000000AC +:04331E0000000000AB +:04331F0000000000AA +:0433200000000000A9 +:0433210000000000A8 +:0433220000000000A7 +:0433230000000000A6 +:0433240000000000A5 +:0433250000000000A4 +:0433260000000000A3 +:0433270000000000A2 +:0433280000000000A1 +:0433290000000000A0 +:04332A00000000009F +:04332B00000000009E +:04332C00000000009D +:04332D00000000009C +:04332E00000000009B +:04332F00000000009A +:043330000000000099 +:043331000000000098 +:043332000000000097 +:043333000000000096 +:043334000000000095 +:043335000000000094 +:043336000000000093 +:043337000000000092 +:043338000000000091 +:043339000000000090 +:04333A00000000008F +:04333B00000000008E +:04333C00000000008D +:04333D00000000008C +:04333E00000000008B +:04333F00000000008A +:043340000000000089 +:043341000000000088 +:043342000000000087 +:043343000000000086 +:043344000000000085 +:043345000000000084 +:043346000000000083 +:043347000000000082 +:043348000000000081 +:043349000000000080 +:04334A00000000007F +:04334B00000000007E +:04334C00000000007D +:04334D00000000007C +:04334E00000000007B +:04334F00000000007A +:043350000000000079 +:043351000000000078 +:043352000000000077 +:043353000000000076 +:043354000000000075 +:043355000000000074 +:043356000000000073 +:043357000000000072 +:043358000000000071 +:043359000000000070 +:04335A00000000006F +:04335B00000000006E +:04335C00000000006D +:04335D00000000006C +:04335E00000000006B +:04335F00000000006A +:043360000000000069 +:043361000000000068 +:043362000000000067 +:043363000000000066 +:043364000000000065 +:043365000000000064 +:043366000000000063 +:043367000000000062 +:043368000000000061 +:043369000000000060 +:04336A00000000005F +:04336B00000000005E +:04336C00000000005D +:04336D00000000005C +:04336E00000000005B +:04336F00000000005A +:043370000000000059 +:043371000000000058 +:043372000000000057 +:043373000000000056 +:043374000000000055 +:043375000000000054 +:043376000000000053 +:043377000000000052 +:043378000000000051 +:043379000000000050 +:04337A00000000004F +:04337B00000000004E +:04337C00000000004D +:04337D00000000004C +:04337E00000000004B +:04337F00000000004A +:043380000000000049 +:043381000000000048 +:043382000000000047 +:043383000000000046 +:043384000000000045 +:043385000000000044 +:043386000000000043 +:043387000000000042 +:043388000000000041 +:043389000000000040 +:04338A00000000003F +:04338B00000000003E +:04338C00000000003D +:04338D00000000003C +:04338E00000000003B +:04338F00000000003A +:043390000000000039 +:043391000000000038 +:043392000000000037 +:043393000000000036 +:043394000000000035 +:043395000000000034 +:043396000000000033 +:043397000000000032 +:043398000000000031 +:043399000000000030 +:04339A00000000002F +:04339B00000000002E +:04339C00000000002D +:04339D00000000002C +:04339E00000000002B +:04339F00000000002A +:0433A0000000000029 +:0433A1000000000028 +:0433A2000000000027 +:0433A3000000000026 +:0433A4000000000025 +:0433A5000000000024 +:0433A6000000000023 +:0433A7000000000022 +:0433A8000000000021 +:0433A9000000000020 +:0433AA00000000001F +:0433AB00000000001E +:0433AC00000000001D +:0433AD00000000001C +:0433AE00000000001B +:0433AF00000000001A +:0433B0000000000019 +:0433B1000000000018 +:0433B2000000000017 +:0433B3000000000016 +:0433B4000000000015 +:0433B5000000000014 +:0433B6000000000013 +:0433B7000000000012 +:0433B8000000000011 +:0433B9000000000010 +:0433BA00000000000F +:0433BB00000000000E +:0433BC00000000000D +:0433BD00000000000C +:0433BE00000000000B +:0433BF00000000000A +:0433C0000000000009 +:0433C1000000000008 +:0433C2000000000007 +:0433C3000000000006 +:0433C4000000000005 +:0433C5000000000004 +:0433C6000000000003 +:0433C7000000000002 +:0433C8000000000001 +:0433C9000000000000 +:0433CA0000000000FF +:0433CB0000000000FE +:0433CC0000000000FD +:0433CD0000000000FC +:0433CE0000000000FB +:0433CF0000000000FA +:0433D00000000000F9 +:0433D10000000000F8 +:0433D20000000000F7 +:0433D30000000000F6 +:0433D40000000000F5 +:0433D50000000000F4 +:0433D60000000000F3 +:0433D70000000000F2 +:0433D80000000000F1 +:0433D90000000000F0 +:0433DA0000000000EF +:0433DB0000000000EE +:0433DC0000000000ED +:0433DD0000000000EC +:0433DE0000000000EB +:0433DF0000000000EA +:0433E00000000000E9 +:0433E10000000000E8 +:0433E20000000000E7 +:0433E30000000000E6 +:0433E40000000000E5 +:0433E50000000000E4 +:0433E60000000000E3 +:0433E70000000000E2 +:0433E80000000000E1 +:0433E90000000000E0 +:0433EA0000000000DF +:0433EB0000000000DE +:0433EC0000000000DD +:0433ED0000000000DC +:0433EE0000000000DB +:0433EF0000000000DA +:0433F00000000000D9 +:0433F10000000000D8 +:0433F20000000000D7 +:0433F30000000000D6 +:0433F40000000000D5 +:0433F50000000000D4 +:0433F60000000000D3 +:0433F70000000000D2 +:0433F80000000000D1 +:0433F90000000000D0 +:0433FA0000000000CF +:0433FB0000000000CE +:0433FC0000000000CD +:0433FD0000000000CC +:0433FE0000000000CB +:0433FF0000000000CA +:0434000000000000C8 +:0434010000000000C7 +:0434020000000000C6 +:0434030000000000C5 +:0434040000000000C4 +:0434050000000000C3 +:0434060000000000C2 +:0434070000000000C1 +:0434080000000000C0 +:0434090000000000BF +:04340A0000000000BE +:04340B0000000000BD +:04340C0000000000BC +:04340D0000000000BB +:04340E0000000000BA +:04340F0000000000B9 +:0434100000000000B8 +:0434110000000000B7 +:0434120000000000B6 +:0434130000000000B5 +:0434140000000000B4 +:0434150000000000B3 +:0434160000000000B2 +:0434170000000000B1 +:0434180000000000B0 +:0434190000000000AF +:04341A0000000000AE +:04341B0000000000AD +:04341C0000000000AC +:04341D0000000000AB +:04341E0000000000AA +:04341F0000000000A9 +:0434200000000000A8 +:0434210000000000A7 +:0434220000000000A6 +:0434230000000000A5 +:0434240000000000A4 +:0434250000000000A3 +:0434260000000000A2 +:0434270000000000A1 +:0434280000000000A0 +:04342900000000009F +:04342A00000000009E +:04342B00000000009D +:04342C00000000009C +:04342D00000000009B +:04342E00000000009A +:04342F000000000099 +:043430000000000098 +:043431000000000097 +:043432000000000096 +:043433000000000095 +:043434000000000094 +:043435000000000093 +:043436000000000092 +:043437000000000091 +:043438000000000090 +:04343900000000008F +:04343A00000000008E +:04343B00000000008D +:04343C00000000008C +:04343D00000000008B +:04343E00000000008A +:04343F000000000089 +:043440000000000088 +:043441000000000087 +:043442000000000086 +:043443000000000085 +:043444000000000084 +:043445000000000083 +:043446000000000082 +:043447000000000081 +:043448000000000080 +:04344900000000007F +:04344A00000000007E +:04344B00000000007D +:04344C00000000007C +:04344D00000000007B +:04344E00000000007A +:04344F000000000079 +:043450000000000078 +:043451000000000077 +:043452000000000076 +:043453000000000075 +:043454000000000074 +:043455000000000073 +:043456000000000072 +:043457000000000071 +:043458000000000070 +:04345900000000006F +:04345A00000000006E +:04345B00000000006D +:04345C00000000006C +:04345D00000000006B +:04345E00000000006A +:04345F000000000069 +:043460000000000068 +:043461000000000067 +:043462000000000066 +:043463000000000065 +:043464000000000064 +:043465000000000063 +:043466000000000062 +:043467000000000061 +:043468000000000060 +:04346900000000005F +:04346A00000000005E +:04346B00000000005D +:04346C00000000005C +:04346D00000000005B +:04346E00000000005A +:04346F000000000059 +:043470000000000058 +:043471000000000057 +:043472000000000056 +:043473000000000055 +:043474000000000054 +:043475000000000053 +:043476000000000052 +:043477000000000051 +:043478000000000050 +:04347900000000004F +:04347A00000000004E +:04347B00000000004D +:04347C00000000004C +:04347D00000000004B +:04347E00000000004A +:04347F000000000049 +:043480000000000048 +:043481000000000047 +:043482000000000046 +:043483000000000045 +:043484000000000044 +:043485000000000043 +:043486000000000042 +:043487000000000041 +:043488000000000040 +:04348900000000003F +:04348A00000000003E +:04348B00000000003D +:04348C00000000003C +:04348D00000000003B +:04348E00000000003A +:04348F000000000039 +:043490000000000038 +:043491000000000037 +:043492000000000036 +:043493000000000035 +:043494000000000034 +:043495000000000033 +:043496000000000032 +:043497000000000031 +:043498000000000030 +:04349900000000002F +:04349A00000000002E +:04349B00000000002D +:04349C00000000002C +:04349D00000000002B +:04349E00000000002A +:04349F000000000029 +:0434A0000000000028 +:0434A1000000000027 +:0434A2000000000026 +:0434A3000000000025 +:0434A4000000000024 +:0434A5000000000023 +:0434A6000000000022 +:0434A7000000000021 +:0434A8000000000020 +:0434A900000000001F +:0434AA00000000001E +:0434AB00000000001D +:0434AC00000000001C +:0434AD00000000001B +:0434AE00000000001A +:0434AF000000000019 +:0434B0000000000018 +:0434B1000000000017 +:0434B2000000000016 +:0434B3000000000015 +:0434B4000000000014 +:0434B5000000000013 +:0434B6000000000012 +:0434B7000000000011 +:0434B8000000000010 +:0434B900000000000F +:0434BA00000000000E +:0434BB00000000000D +:0434BC00000000000C +:0434BD00000000000B +:0434BE00000000000A +:0434BF000000000009 +:0434C0000000000008 +:0434C1000000000007 +:0434C2000000000006 +:0434C3000000000005 +:0434C4000000000004 +:0434C5000000000003 +:0434C6000000000002 +:0434C7000000000001 +:0434C8000000000000 +:0434C90000000000FF +:0434CA0000000000FE +:0434CB0000000000FD +:0434CC0000000000FC +:0434CD0000000000FB +:0434CE0000000000FA +:0434CF0000000000F9 +:0434D00000000000F8 +:0434D10000000000F7 +:0434D20000000000F6 +:0434D30000000000F5 +:0434D40000000000F4 +:0434D50000000000F3 +:0434D60000000000F2 +:0434D70000000000F1 +:0434D80000000000F0 +:0434D90000000000EF +:0434DA0000000000EE +:0434DB0000000000ED +:0434DC0000000000EC +:0434DD0000000000EB +:0434DE0000000000EA +:0434DF0000000000E9 +:0434E00000000000E8 +:0434E10000000000E7 +:0434E20000000000E6 +:0434E30000000000E5 +:0434E40000000000E4 +:0434E50000000000E3 +:0434E60000000000E2 +:0434E70000000000E1 +:0434E80000000000E0 +:0434E90000000000DF +:0434EA0000000000DE +:0434EB0000000000DD +:0434EC0000000000DC +:0434ED0000000000DB +:0434EE0000000000DA +:0434EF0000000000D9 +:0434F00000000000D8 +:0434F10000000000D7 +:0434F20000000000D6 +:0434F30000000000D5 +:0434F40000000000D4 +:0434F50000000000D3 +:0434F60000000000D2 +:0434F70000000000D1 +:0434F80000000000D0 +:0434F90000000000CF +:0434FA0000000000CE +:0434FB0000000000CD +:0434FC0000000000CC +:0434FD0000000000CB +:0434FE0000000000CA +:0434FF0000000000C9 +:0435000000000000C7 +:0435010000000000C6 +:0435020000000000C5 +:0435030000000000C4 +:0435040000000000C3 +:0435050000000000C2 +:0435060000000000C1 +:0435070000000000C0 +:0435080000000000BF +:0435090000000000BE +:04350A0000000000BD +:04350B0000000000BC +:04350C0000000000BB +:04350D0000000000BA +:04350E0000000000B9 +:04350F0000000000B8 +:0435100000000000B7 +:0435110000000000B6 +:0435120000000000B5 +:0435130000000000B4 +:0435140000000000B3 +:0435150000000000B2 +:0435160000000000B1 +:0435170000000000B0 +:0435180000000000AF +:0435190000000000AE +:04351A0000000000AD +:04351B0000000000AC +:04351C0000000000AB +:04351D0000000000AA +:04351E0000000000A9 +:04351F0000000000A8 +:0435200000000000A7 +:0435210000000000A6 +:0435220000000000A5 +:0435230000000000A4 +:0435240000000000A3 +:0435250000000000A2 +:0435260000000000A1 +:0435270000000000A0 +:04352800000000009F +:04352900000000009E +:04352A00000000009D +:04352B00000000009C +:04352C00000000009B +:04352D00000000009A +:04352E000000000099 +:04352F000000000098 +:043530000000000097 +:043531000000000096 +:043532000000000095 +:043533000000000094 +:043534000000000093 +:043535000000000092 +:043536000000000091 +:043537000000000090 +:04353800000000008F +:04353900000000008E +:04353A00000000008D +:04353B00000000008C +:04353C00000000008B +:04353D00000000008A +:04353E000000000089 +:04353F000000000088 +:043540000000000087 +:043541000000000086 +:043542000000000085 +:043543000000000084 +:043544000000000083 +:043545000000000082 +:043546000000000081 +:043547000000000080 +:04354800000000007F +:04354900000000007E +:04354A00000000007D +:04354B00000000007C +:04354C00000000007B +:04354D00000000007A +:04354E000000000079 +:04354F000000000078 +:043550000000000077 +:043551000000000076 +:043552000000000075 +:043553000000000074 +:043554000000000073 +:043555000000000072 +:043556000000000071 +:043557000000000070 +:04355800000000006F +:04355900000000006E +:04355A00000000006D +:04355B00000000006C +:04355C00000000006B +:04355D00000000006A +:04355E000000000069 +:04355F000000000068 +:043560000000000067 +:043561000000000066 +:043562000000000065 +:043563000000000064 +:043564000000000063 +:043565000000000062 +:043566000000000061 +:043567000000000060 +:04356800000000005F +:04356900000000005E +:04356A00000000005D +:04356B00000000005C +:04356C00000000005B +:04356D00000000005A +:04356E000000000059 +:04356F000000000058 +:043570000000000057 +:043571000000000056 +:043572000000000055 +:043573000000000054 +:043574000000000053 +:043575000000000052 +:043576000000000051 +:043577000000000050 +:04357800000000004F +:04357900000000004E +:04357A00000000004D +:04357B00000000004C +:04357C00000000004B +:04357D00000000004A +:04357E000000000049 +:04357F000000000048 +:043580000000000047 +:043581000000000046 +:043582000000000045 +:043583000000000044 +:043584000000000043 +:043585000000000042 +:043586000000000041 +:043587000000000040 +:04358800000000003F +:04358900000000003E +:04358A00000000003D +:04358B00000000003C +:04358C00000000003B +:04358D00000000003A +:04358E000000000039 +:04358F000000000038 +:043590000000000037 +:043591000000000036 +:043592000000000035 +:043593000000000034 +:043594000000000033 +:043595000000000032 +:043596000000000031 +:043597000000000030 +:04359800000000002F +:04359900000000002E +:04359A00000000002D +:04359B00000000002C +:04359C00000000002B +:04359D00000000002A +:04359E000000000029 +:04359F000000000028 +:0435A0000000000027 +:0435A1000000000026 +:0435A2000000000025 +:0435A3000000000024 +:0435A4000000000023 +:0435A5000000000022 +:0435A6000000000021 +:0435A7000000000020 +:0435A800000000001F +:0435A900000000001E +:0435AA00000000001D +:0435AB00000000001C +:0435AC00000000001B +:0435AD00000000001A +:0435AE000000000019 +:0435AF000000000018 +:0435B0000000000017 +:0435B1000000000016 +:0435B2000000000015 +:0435B3000000000014 +:0435B4000000000013 +:0435B5000000000012 +:0435B6000000000011 +:0435B7000000000010 +:0435B800000000000F +:0435B900000000000E +:0435BA00000000000D +:0435BB00000000000C +:0435BC00000000000B +:0435BD00000000000A +:0435BE000000000009 +:0435BF000000000008 +:0435C0000000000007 +:0435C1000000000006 +:0435C2000000000005 +:0435C3000000000004 +:0435C4000000000003 +:0435C5000000000002 +:0435C6000000000001 +:0435C7000000000000 +:0435C80000000000FF +:0435C90000000000FE +:0435CA0000000000FD +:0435CB0000000000FC +:0435CC0000000000FB +:0435CD0000000000FA +:0435CE0000000000F9 +:0435CF0000000000F8 +:0435D00000000000F7 +:0435D10000000000F6 +:0435D20000000000F5 +:0435D30000000000F4 +:0435D40000000000F3 +:0435D50000000000F2 +:0435D60000000000F1 +:0435D70000000000F0 +:0435D80000000000EF +:0435D90000000000EE +:0435DA0000000000ED +:0435DB0000000000EC +:0435DC0000000000EB +:0435DD0000000000EA +:0435DE0000000000E9 +:0435DF0000000000E8 +:0435E00000000000E7 +:0435E10000000000E6 +:0435E20000000000E5 +:0435E30000000000E4 +:0435E40000000000E3 +:0435E50000000000E2 +:0435E60000000000E1 +:0435E70000000000E0 +:0435E80000000000DF +:0435E90000000000DE +:0435EA0000000000DD +:0435EB0000000000DC +:0435EC0000000000DB +:0435ED0000000000DA +:0435EE0000000000D9 +:0435EF0000000000D8 +:0435F00000000000D7 +:0435F10000000000D6 +:0435F20000000000D5 +:0435F30000000000D4 +:0435F40000000000D3 +:0435F50000000000D2 +:0435F60000000000D1 +:0435F70000000000D0 +:0435F80000000000CF +:0435F90000000000CE +:0435FA0000000000CD +:0435FB0000000000CC +:0435FC0000000000CB +:0435FD0000000000CA +:0435FE0000000000C9 +:0435FF0000000000C8 +:0436000000000000C6 +:0436010000000000C5 +:0436020000000000C4 +:0436030000000000C3 +:0436040000000000C2 +:0436050000000000C1 +:0436060000000000C0 +:0436070000000000BF +:0436080000000000BE +:0436090000000000BD +:04360A0000000000BC +:04360B0000000000BB +:04360C0000000000BA +:04360D0000000000B9 +:04360E0000000000B8 +:04360F0000000000B7 +:0436100000000000B6 +:0436110000000000B5 +:0436120000000000B4 +:0436130000000000B3 +:0436140000000000B2 +:0436150000000000B1 +:0436160000000000B0 +:0436170000000000AF +:0436180000000000AE +:0436190000000000AD +:04361A0000000000AC +:04361B0000000000AB +:04361C0000000000AA +:04361D0000000000A9 +:04361E0000000000A8 +:04361F0000000000A7 +:0436200000000000A6 +:0436210000000000A5 +:0436220000000000A4 +:0436230000000000A3 +:0436240000000000A2 +:0436250000000000A1 +:0436260000000000A0 +:04362700000000009F +:04362800000000009E +:04362900000000009D +:04362A00000000009C +:04362B00000000009B +:04362C00000000009A +:04362D000000000099 +:04362E000000000098 +:04362F000000000097 +:043630000000000096 +:043631000000000095 +:043632000000000094 +:043633000000000093 +:043634000000000092 +:043635000000000091 +:043636000000000090 +:04363700000000008F +:04363800000000008E +:04363900000000008D +:04363A00000000008C +:04363B00000000008B +:04363C00000000008A +:04363D000000000089 +:04363E000000000088 +:04363F000000000087 +:043640000000000086 +:043641000000000085 +:043642000000000084 +:043643000000000083 +:043644000000000082 +:043645000000000081 +:043646000000000080 +:04364700000000007F +:04364800000000007E +:04364900000000007D +:04364A00000000007C +:04364B00000000007B +:04364C00000000007A +:04364D000000000079 +:04364E000000000078 +:04364F000000000077 +:043650000000000076 +:043651000000000075 +:043652000000000074 +:043653000000000073 +:043654000000000072 +:043655000000000071 +:043656000000000070 +:04365700000000006F +:04365800000000006E +:04365900000000006D +:04365A00000000006C +:04365B00000000006B +:04365C00000000006A +:04365D000000000069 +:04365E000000000068 +:04365F000000000067 +:043660000000000066 +:043661000000000065 +:043662000000000064 +:043663000000000063 +:043664000000000062 +:043665000000000061 +:043666000000000060 +:04366700000000005F +:04366800000000005E +:04366900000000005D +:04366A00000000005C +:04366B00000000005B +:04366C00000000005A +:04366D000000000059 +:04366E000000000058 +:04366F000000000057 +:043670000000000056 +:043671000000000055 +:043672000000000054 +:043673000000000053 +:043674000000000052 +:043675000000000051 +:043676000000000050 +:04367700000000004F +:04367800000000004E +:04367900000000004D +:04367A00000000004C +:04367B00000000004B +:04367C00000000004A +:04367D000000000049 +:04367E000000000048 +:04367F000000000047 +:043680000000000046 +:043681000000000045 +:043682000000000044 +:043683000000000043 +:043684000000000042 +:043685000000000041 +:043686000000000040 +:04368700000000003F +:04368800000000003E +:04368900000000003D +:04368A00000000003C +:04368B00000000003B +:04368C00000000003A +:04368D000000000039 +:04368E000000000038 +:04368F000000000037 +:043690000000000036 +:043691000000000035 +:043692000000000034 +:043693000000000033 +:043694000000000032 +:043695000000000031 +:043696000000000030 +:04369700000000002F +:04369800000000002E +:04369900000000002D +:04369A00000000002C +:04369B00000000002B +:04369C00000000002A +:04369D000000000029 +:04369E000000000028 +:04369F000000000027 +:0436A0000000000026 +:0436A1000000000025 +:0436A2000000000024 +:0436A3000000000023 +:0436A4000000000022 +:0436A5000000000021 +:0436A6000000000020 +:0436A700000000001F +:0436A800000000001E +:0436A900000000001D +:0436AA00000000001C +:0436AB00000000001B +:0436AC00000000001A +:0436AD000000000019 +:0436AE000000000018 +:0436AF000000000017 +:0436B0000000000016 +:0436B1000000000015 +:0436B2000000000014 +:0436B3000000000013 +:0436B4000000000012 +:0436B5000000000011 +:0436B6000000000010 +:0436B700000000000F +:0436B800000000000E +:0436B900000000000D +:0436BA00000000000C +:0436BB00000000000B +:0436BC00000000000A +:0436BD000000000009 +:0436BE000000000008 +:0436BF000000000007 +:0436C0000000000006 +:0436C1000000000005 +:0436C2000000000004 +:0436C3000000000003 +:0436C4000000000002 +:0436C5000000000001 +:0436C6000000000000 +:0436C70000000000FF +:0436C80000000000FE +:0436C90000000000FD +:0436CA0000000000FC +:0436CB0000000000FB +:0436CC0000000000FA +:0436CD0000000000F9 +:0436CE0000000000F8 +:0436CF0000000000F7 +:0436D00000000000F6 +:0436D10000000000F5 +:0436D20000000000F4 +:0436D30000000000F3 +:0436D40000000000F2 +:0436D50000000000F1 +:0436D60000000000F0 +:0436D70000000000EF +:0436D80000000000EE +:0436D90000000000ED +:0436DA0000000000EC +:0436DB0000000000EB +:0436DC0000000000EA +:0436DD0000000000E9 +:0436DE0000000000E8 +:0436DF0000000000E7 +:0436E00000000000E6 +:0436E10000000000E5 +:0436E20000000000E4 +:0436E30000000000E3 +:0436E40000000000E2 +:0436E50000000000E1 +:0436E60000000000E0 +:0436E70000000000DF +:0436E80000000000DE +:0436E90000000000DD +:0436EA0000000000DC +:0436EB0000000000DB +:0436EC0000000000DA +:0436ED0000000000D9 +:0436EE0000000000D8 +:0436EF0000000000D7 +:0436F00000000000D6 +:0436F10000000000D5 +:0436F20000000000D4 +:0436F30000000000D3 +:0436F40000000000D2 +:0436F50000000000D1 +:0436F60000000000D0 +:0436F70000000000CF +:0436F80000000000CE +:0436F90000000000CD +:0436FA0000000000CC +:0436FB0000000000CB +:0436FC0000000000CA +:0436FD0000000000C9 +:0436FE0000000000C8 +:0436FF0000000000C7 +:0437000000000000C5 +:0437010000000000C4 +:0437020000000000C3 +:0437030000000000C2 +:0437040000000000C1 +:0437050000000000C0 +:0437060000000000BF +:0437070000000000BE +:0437080000000000BD +:0437090000000000BC +:04370A0000000000BB +:04370B0000000000BA +:04370C0000000000B9 +:04370D0000000000B8 +:04370E0000000000B7 +:04370F0000000000B6 +:0437100000000000B5 +:0437110000000000B4 +:0437120000000000B3 +:0437130000000000B2 +:0437140000000000B1 +:0437150000000000B0 +:0437160000000000AF +:0437170000000000AE +:0437180000000000AD +:0437190000000000AC +:04371A0000000000AB +:04371B0000000000AA +:04371C0000000000A9 +:04371D0000000000A8 +:04371E0000000000A7 +:04371F0000000000A6 +:0437200000000000A5 +:0437210000000000A4 +:0437220000000000A3 +:0437230000000000A2 +:0437240000000000A1 +:0437250000000000A0 +:04372600000000009F +:04372700000000009E +:04372800000000009D +:04372900000000009C +:04372A00000000009B +:04372B00000000009A +:04372C000000000099 +:04372D000000000098 +:04372E000000000097 +:04372F000000000096 +:043730000000000095 +:043731000000000094 +:043732000000000093 +:043733000000000092 +:043734000000000091 +:043735000000000090 +:04373600000000008F +:04373700000000008E +:04373800000000008D +:04373900000000008C +:04373A00000000008B +:04373B00000000008A +:04373C000000000089 +:04373D000000000088 +:04373E000000000087 +:04373F000000000086 +:043740000000000085 +:043741000000000084 +:043742000000000083 +:043743000000000082 +:043744000000000081 +:043745000000000080 +:04374600000000007F +:04374700000000007E +:04374800000000007D +:04374900000000007C +:04374A00000000007B +:04374B00000000007A +:04374C000000000079 +:04374D000000000078 +:04374E000000000077 +:04374F000000000076 +:043750000000000075 +:043751000000000074 +:043752000000000073 +:043753000000000072 +:043754000000000071 +:043755000000000070 +:04375600000000006F +:04375700000000006E +:04375800000000006D +:04375900000000006C +:04375A00000000006B +:04375B00000000006A +:04375C000000000069 +:04375D000000000068 +:04375E000000000067 +:04375F000000000066 +:043760000000000065 +:043761000000000064 +:043762000000000063 +:043763000000000062 +:043764000000000061 +:043765000000000060 +:04376600000000005F +:04376700000000005E +:04376800000000005D +:04376900000000005C +:04376A00000000005B +:04376B00000000005A +:04376C000000000059 +:04376D000000000058 +:04376E000000000057 +:04376F000000000056 +:043770000000000055 +:043771000000000054 +:043772000000000053 +:043773000000000052 +:043774000000000051 +:043775000000000050 +:04377600000000004F +:04377700000000004E +:04377800000000004D +:04377900000000004C +:04377A00000000004B +:04377B00000000004A +:04377C000000000049 +:04377D000000000048 +:04377E000000000047 +:04377F000000000046 +:043780000000000045 +:043781000000000044 +:043782000000000043 +:043783000000000042 +:043784000000000041 +:043785000000000040 +:04378600000000003F +:04378700000000003E +:04378800000000003D +:04378900000000003C +:04378A00000000003B +:04378B00000000003A +:04378C000000000039 +:04378D000000000038 +:04378E000000000037 +:04378F000000000036 +:043790000000000035 +:043791000000000034 +:043792000000000033 +:043793000000000032 +:043794000000000031 +:043795000000000030 +:04379600000000002F +:04379700000000002E +:04379800000000002D +:04379900000000002C +:04379A00000000002B +:04379B00000000002A +:04379C000000000029 +:04379D000000000028 +:04379E000000000027 +:04379F000000000026 +:0437A0000000000025 +:0437A1000000000024 +:0437A2000000000023 +:0437A3000000000022 +:0437A4000000000021 +:0437A5000000000020 +:0437A600000000001F +:0437A700000000001E +:0437A800000000001D +:0437A900000000001C +:0437AA00000000001B +:0437AB00000000001A +:0437AC000000000019 +:0437AD000000000018 +:0437AE000000000017 +:0437AF000000000016 +:0437B0000000000015 +:0437B1000000000014 +:0437B2000000000013 +:0437B3000000000012 +:0437B4000000000011 +:0437B5000000000010 +:0437B600000000000F +:0437B700000000000E +:0437B800000000000D +:0437B900000000000C +:0437BA00000000000B +:0437BB00000000000A +:0437BC000000000009 +:0437BD000000000008 +:0437BE000000000007 +:0437BF000000000006 +:0437C0000000000005 +:0437C1000000000004 +:0437C2000000000003 +:0437C3000000000002 +:0437C4000000000001 +:0437C5000000000000 +:0437C60000000000FF +:0437C70000000000FE +:0437C80000000000FD +:0437C90000000000FC +:0437CA0000000000FB +:0437CB0000000000FA +:0437CC0000000000F9 +:0437CD0000000000F8 +:0437CE0000000000F7 +:0437CF0000000000F6 +:0437D00000000000F5 +:0437D10000000000F4 +:0437D20000000000F3 +:0437D30000000000F2 +:0437D40000000000F1 +:0437D50000000000F0 +:0437D60000000000EF +:0437D70000000000EE +:0437D80000000000ED +:0437D90000000000EC +:0437DA0000000000EB +:0437DB0000000000EA +:0437DC0000000000E9 +:0437DD0000000000E8 +:0437DE0000000000E7 +:0437DF0000000000E6 +:0437E00000000000E5 +:0437E10000000000E4 +:0437E20000000000E3 +:0437E30000000000E2 +:0437E40000000000E1 +:0437E50000000000E0 +:0437E60000000000DF +:0437E70000000000DE +:0437E80000000000DD +:0437E90000000000DC +:0437EA0000000000DB +:0437EB0000000000DA +:0437EC0000000000D9 +:0437ED0000000000D8 +:0437EE0000000000D7 +:0437EF0000000000D6 +:0437F00000000000D5 +:0437F10000000000D4 +:0437F20000000000D3 +:0437F30000000000D2 +:0437F40000000000D1 +:0437F50000000000D0 +:0437F60000000000CF +:0437F70000000000CE +:0437F80000000000CD +:0437F90000000000CC +:0437FA0000000000CB +:0437FB0000000000CA +:0437FC0000000000C9 +:0437FD0000000000C8 +:0437FE0000000000C7 +:0437FF0000000000C6 +:0438000000000000C4 +:0438010000000000C3 +:0438020000000000C2 +:0438030000000000C1 +:0438040000000000C0 +:0438050000000000BF +:0438060000000000BE +:0438070000000000BD +:0438080000000000BC +:0438090000000000BB +:04380A0000000000BA +:04380B0000000000B9 +:04380C0000000000B8 +:04380D0000000000B7 +:04380E0000000000B6 +:04380F0000000000B5 +:0438100000000000B4 +:0438110000000000B3 +:0438120000000000B2 +:0438130000000000B1 +:0438140000000000B0 +:0438150000000000AF +:0438160000000000AE +:0438170000000000AD +:0438180000000000AC +:0438190000000000AB +:04381A0000000000AA +:04381B0000000000A9 +:04381C0000000000A8 +:04381D0000000000A7 +:04381E0000000000A6 +:04381F0000000000A5 +:0438200000000000A4 +:0438210000000000A3 +:0438220000000000A2 +:0438230000000000A1 +:0438240000000000A0 +:04382500000000009F +:04382600000000009E +:04382700000000009D +:04382800000000009C +:04382900000000009B +:04382A00000000009A +:04382B000000000099 +:04382C000000000098 +:04382D000000000097 +:04382E000000000096 +:04382F000000000095 +:043830000000000094 +:043831000000000093 +:043832000000000092 +:043833000000000091 +:043834000000000090 +:04383500000000008F +:04383600000000008E +:04383700000000008D +:04383800000000008C +:04383900000000008B +:04383A00000000008A +:04383B000000000089 +:04383C000000000088 +:04383D000000000087 +:04383E000000000086 +:04383F000000000085 +:043840000000000084 +:043841000000000083 +:043842000000000082 +:043843000000000081 +:043844000000000080 +:04384500000000007F +:04384600000000007E +:04384700000000007D +:04384800000000007C +:04384900000000007B +:04384A00000000007A +:04384B000000000079 +:04384C000000000078 +:04384D000000000077 +:04384E000000000076 +:04384F000000000075 +:043850000000000074 +:043851000000000073 +:043852000000000072 +:043853000000000071 +:043854000000000070 +:04385500000000006F +:04385600000000006E +:04385700000000006D +:04385800000000006C +:04385900000000006B +:04385A00000000006A +:04385B000000000069 +:04385C000000000068 +:04385D000000000067 +:04385E000000000066 +:04385F000000000065 +:043860000000000064 +:043861000000000063 +:043862000000000062 +:043863000000000061 +:043864000000000060 +:04386500000000005F +:04386600000000005E +:04386700000000005D +:04386800000000005C +:04386900000000005B +:04386A00000000005A +:04386B000000000059 +:04386C000000000058 +:04386D000000000057 +:04386E000000000056 +:04386F000000000055 +:043870000000000054 +:043871000000000053 +:043872000000000052 +:043873000000000051 +:043874000000000050 +:04387500000000004F +:04387600000000004E +:04387700000000004D +:04387800000000004C +:04387900000000004B +:04387A00000000004A +:04387B000000000049 +:04387C000000000048 +:04387D000000000047 +:04387E000000000046 +:04387F000000000045 +:043880000000000044 +:043881000000000043 +:043882000000000042 +:043883000000000041 +:043884000000000040 +:04388500000000003F +:04388600000000003E +:04388700000000003D +:04388800000000003C +:04388900000000003B +:04388A00000000003A +:04388B000000000039 +:04388C000000000038 +:04388D000000000037 +:04388E000000000036 +:04388F000000000035 +:043890000000000034 +:043891000000000033 +:043892000000000032 +:043893000000000031 +:043894000000000030 +:04389500000000002F +:04389600000000002E +:04389700000000002D +:04389800000000002C +:04389900000000002B +:04389A00000000002A +:04389B000000000029 +:04389C000000000028 +:04389D000000000027 +:04389E000000000026 +:04389F000000000025 +:0438A0000000000024 +:0438A1000000000023 +:0438A2000000000022 +:0438A3000000000021 +:0438A4000000000020 +:0438A500000000001F +:0438A600000000001E +:0438A700000000001D +:0438A800000000001C +:0438A900000000001B +:0438AA00000000001A +:0438AB000000000019 +:0438AC000000000018 +:0438AD000000000017 +:0438AE000000000016 +:0438AF000000000015 +:0438B0000000000014 +:0438B1000000000013 +:0438B2000000000012 +:0438B3000000000011 +:0438B4000000000010 +:0438B500000000000F +:0438B600000000000E +:0438B700000000000D +:0438B800000000000C +:0438B900000000000B +:0438BA00000000000A +:0438BB000000000009 +:0438BC000000000008 +:0438BD000000000007 +:0438BE000000000006 +:0438BF000000000005 +:0438C0000000000004 +:0438C1000000000003 +:0438C2000000000002 +:0438C3000000000001 +:0438C4000000000000 +:0438C50000000000FF +:0438C60000000000FE +:0438C70000000000FD +:0438C80000000000FC +:0438C90000000000FB +:0438CA0000000000FA +:0438CB0000000000F9 +:0438CC0000000000F8 +:0438CD0000000000F7 +:0438CE0000000000F6 +:0438CF0000000000F5 +:0438D00000000000F4 +:0438D10000000000F3 +:0438D20000000000F2 +:0438D30000000000F1 +:0438D40000000000F0 +:0438D50000000000EF +:0438D60000000000EE +:0438D70000000000ED +:0438D80000000000EC +:0438D90000000000EB +:0438DA0000000000EA +:0438DB0000000000E9 +:0438DC0000000000E8 +:0438DD0000000000E7 +:0438DE0000000000E6 +:0438DF0000000000E5 +:0438E00000000000E4 +:0438E10000000000E3 +:0438E20000000000E2 +:0438E30000000000E1 +:0438E40000000000E0 +:0438E50000000000DF +:0438E60000000000DE +:0438E70000000000DD +:0438E80000000000DC +:0438E90000000000DB +:0438EA0000000000DA +:0438EB0000000000D9 +:0438EC0000000000D8 +:0438ED0000000000D7 +:0438EE0000000000D6 +:0438EF0000000000D5 +:0438F00000000000D4 +:0438F10000000000D3 +:0438F20000000000D2 +:0438F30000000000D1 +:0438F40000000000D0 +:0438F50000000000CF +:0438F60000000000CE +:0438F70000000000CD +:0438F80000000000CC +:0438F90000000000CB +:0438FA0000000000CA +:0438FB0000000000C9 +:0438FC0000000000C8 +:0438FD0000000000C7 +:0438FE0000000000C6 +:0438FF0000000000C5 +:0439000000000000C3 +:0439010000000000C2 +:0439020000000000C1 +:0439030000000000C0 +:0439040000000000BF +:0439050000000000BE +:0439060000000000BD +:0439070000000000BC +:0439080000000000BB +:0439090000000000BA +:04390A0000000000B9 +:04390B0000000000B8 +:04390C0000000000B7 +:04390D0000000000B6 +:04390E0000000000B5 +:04390F0000000000B4 +:0439100000000000B3 +:0439110000000000B2 +:0439120000000000B1 +:0439130000000000B0 +:0439140000000000AF +:0439150000000000AE +:0439160000000000AD +:0439170000000000AC +:0439180000000000AB +:0439190000000000AA +:04391A0000000000A9 +:04391B0000000000A8 +:04391C0000000000A7 +:04391D0000000000A6 +:04391E0000000000A5 +:04391F0000000000A4 +:0439200000000000A3 +:0439210000000000A2 +:0439220000000000A1 +:0439230000000000A0 +:04392400000000009F +:04392500000000009E +:04392600000000009D +:04392700000000009C +:04392800000000009B +:04392900000000009A +:04392A000000000099 +:04392B000000000098 +:04392C000000000097 +:04392D000000000096 +:04392E000000000095 +:04392F000000000094 +:043930000000000093 +:043931000000000092 +:043932000000000091 +:043933000000000090 +:04393400000000008F +:04393500000000008E +:04393600000000008D +:04393700000000008C +:04393800000000008B +:04393900000000008A +:04393A000000000089 +:04393B000000000088 +:04393C000000000087 +:04393D000000000086 +:04393E000000000085 +:04393F000000000084 +:043940000000000083 +:043941000000000082 +:043942000000000081 +:043943000000000080 +:04394400000000007F +:04394500000000007E +:04394600000000007D +:04394700000000007C +:04394800000000007B +:04394900000000007A +:04394A000000000079 +:04394B000000000078 +:04394C000000000077 +:04394D000000000076 +:04394E000000000075 +:04394F000000000074 +:043950000000000073 +:043951000000000072 +:043952000000000071 +:043953000000000070 +:04395400000000006F +:04395500000000006E +:04395600000000006D +:04395700000000006C +:04395800000000006B +:04395900000000006A +:04395A000000000069 +:04395B000000000068 +:04395C000000000067 +:04395D000000000066 +:04395E000000000065 +:04395F000000000064 +:043960000000000063 +:043961000000000062 +:043962000000000061 +:043963000000000060 +:04396400000000005F +:04396500000000005E +:04396600000000005D +:04396700000000005C +:04396800000000005B +:04396900000000005A +:04396A000000000059 +:04396B000000000058 +:04396C000000000057 +:04396D000000000056 +:04396E000000000055 +:04396F000000000054 +:043970000000000053 +:043971000000000052 +:043972000000000051 +:043973000000000050 +:04397400000000004F +:04397500000000004E +:04397600000000004D +:04397700000000004C +:04397800000000004B +:04397900000000004A +:04397A000000000049 +:04397B000000000048 +:04397C000000000047 +:04397D000000000046 +:04397E000000000045 +:04397F000000000044 +:043980000000000043 +:043981000000000042 +:043982000000000041 +:043983000000000040 +:04398400000000003F +:04398500000000003E +:04398600000000003D +:04398700000000003C +:04398800000000003B +:04398900000000003A +:04398A000000000039 +:04398B000000000038 +:04398C000000000037 +:04398D000000000036 +:04398E000000000035 +:04398F000000000034 +:043990000000000033 +:043991000000000032 +:043992000000000031 +:043993000000000030 +:04399400000000002F +:04399500000000002E +:04399600000000002D +:04399700000000002C +:04399800000000002B +:04399900000000002A +:04399A000000000029 +:04399B000000000028 +:04399C000000000027 +:04399D000000000026 +:04399E000000000025 +:04399F000000000024 +:0439A0000000000023 +:0439A1000000000022 +:0439A2000000000021 +:0439A3000000000020 +:0439A400000000001F +:0439A500000000001E +:0439A600000000001D +:0439A700000000001C +:0439A800000000001B +:0439A900000000001A +:0439AA000000000019 +:0439AB000000000018 +:0439AC000000000017 +:0439AD000000000016 +:0439AE000000000015 +:0439AF000000000014 +:0439B0000000000013 +:0439B1000000000012 +:0439B2000000000011 +:0439B3000000000010 +:0439B400000000000F +:0439B500000000000E +:0439B600000000000D +:0439B700000000000C +:0439B800000000000B +:0439B900000000000A +:0439BA000000000009 +:0439BB000000000008 +:0439BC000000000007 +:0439BD000000000006 +:0439BE000000000005 +:0439BF000000000004 +:0439C0000000000003 +:0439C1000000000002 +:0439C2000000000001 +:0439C3000000000000 +:0439C40000000000FF +:0439C50000000000FE +:0439C60000000000FD +:0439C70000000000FC +:0439C80000000000FB +:0439C90000000000FA +:0439CA0000000000F9 +:0439CB0000000000F8 +:0439CC0000000000F7 +:0439CD0000000000F6 +:0439CE0000000000F5 +:0439CF0000000000F4 +:0439D00000000000F3 +:0439D10000000000F2 +:0439D20000000000F1 +:0439D30000000000F0 +:0439D40000000000EF +:0439D50000000000EE +:0439D60000000000ED +:0439D70000000000EC +:0439D80000000000EB +:0439D90000000000EA +:0439DA0000000000E9 +:0439DB0000000000E8 +:0439DC0000000000E7 +:0439DD0000000000E6 +:0439DE0000000000E5 +:0439DF0000000000E4 +:0439E00000000000E3 +:0439E10000000000E2 +:0439E20000000000E1 +:0439E30000000000E0 +:0439E40000000000DF +:0439E50000000000DE +:0439E60000000000DD +:0439E70000000000DC +:0439E80000000000DB +:0439E90000000000DA +:0439EA0000000000D9 +:0439EB0000000000D8 +:0439EC0000000000D7 +:0439ED0000000000D6 +:0439EE0000000000D5 +:0439EF0000000000D4 +:0439F00000000000D3 +:0439F10000000000D2 +:0439F20000000000D1 +:0439F30000000000D0 +:0439F40000000000CF +:0439F50000000000CE +:0439F60000000000CD +:0439F70000000000CC +:0439F80000000000CB +:0439F90000000000CA +:0439FA0000000000C9 +:0439FB0000000000C8 +:0439FC0000000000C7 +:0439FD0000000000C6 +:0439FE0000000000C5 +:0439FF0000000000C4 +:043A000000000000C2 +:043A010000000000C1 +:043A020000000000C0 +:043A030000000000BF +:043A040000000000BE +:043A050000000000BD +:043A060000000000BC +:043A070000000000BB +:043A080000000000BA +:043A090000000000B9 +:043A0A0000000000B8 +:043A0B0000000000B7 +:043A0C0000000000B6 +:043A0D0000000000B5 +:043A0E0000000000B4 +:043A0F0000000000B3 +:043A100000000000B2 +:043A110000000000B1 +:043A120000000000B0 +:043A130000000000AF +:043A140000000000AE +:043A150000000000AD +:043A160000000000AC +:043A170000000000AB +:043A180000000000AA +:043A190000000000A9 +:043A1A0000000000A8 +:043A1B0000000000A7 +:043A1C0000000000A6 +:043A1D0000000000A5 +:043A1E0000000000A4 +:043A1F0000000000A3 +:043A200000000000A2 +:043A210000000000A1 +:043A220000000000A0 +:043A2300000000009F +:043A2400000000009E +:043A2500000000009D +:043A2600000000009C +:043A2700000000009B +:043A2800000000009A +:043A29000000000099 +:043A2A000000000098 +:043A2B000000000097 +:043A2C000000000096 +:043A2D000000000095 +:043A2E000000000094 +:043A2F000000000093 +:043A30000000000092 +:043A31000000000091 +:043A32000000000090 +:043A3300000000008F +:043A3400000000008E +:043A3500000000008D +:043A3600000000008C +:043A3700000000008B +:043A3800000000008A +:043A39000000000089 +:043A3A000000000088 +:043A3B000000000087 +:043A3C000000000086 +:043A3D000000000085 +:043A3E000000000084 +:043A3F000000000083 +:043A40000000000082 +:043A41000000000081 +:043A42000000000080 +:043A4300000000007F +:043A4400000000007E +:043A4500000000007D +:043A4600000000007C +:043A4700000000007B +:043A4800000000007A +:043A49000000000079 +:043A4A000000000078 +:043A4B000000000077 +:043A4C000000000076 +:043A4D000000000075 +:043A4E000000000074 +:043A4F000000000073 +:043A50000000000072 +:043A51000000000071 +:043A52000000000070 +:043A5300000000006F +:043A5400000000006E +:043A5500000000006D +:043A5600000000006C +:043A5700000000006B +:043A5800000000006A +:043A59000000000069 +:043A5A000000000068 +:043A5B000000000067 +:043A5C000000000066 +:043A5D000000000065 +:043A5E000000000064 +:043A5F000000000063 +:043A60000000000062 +:043A61000000000061 +:043A62000000000060 +:043A6300000000005F +:043A6400000000005E +:043A6500000000005D +:043A6600000000005C +:043A6700000000005B +:043A6800000000005A +:043A69000000000059 +:043A6A000000000058 +:043A6B000000000057 +:043A6C000000000056 +:043A6D000000000055 +:043A6E000000000054 +:043A6F000000000053 +:043A70000000000052 +:043A71000000000051 +:043A72000000000050 +:043A7300000000004F +:043A7400000000004E +:043A7500000000004D +:043A7600000000004C +:043A7700000000004B +:043A7800000000004A +:043A79000000000049 +:043A7A000000000048 +:043A7B000000000047 +:043A7C000000000046 +:043A7D000000000045 +:043A7E000000000044 +:043A7F000000000043 +:043A80000000000042 +:043A81000000000041 +:043A82000000000040 +:043A8300000000003F +:043A8400000000003E +:043A8500000000003D +:043A8600000000003C +:043A8700000000003B +:043A8800000000003A +:043A89000000000039 +:043A8A000000000038 +:043A8B000000000037 +:043A8C000000000036 +:043A8D000000000035 +:043A8E000000000034 +:043A8F000000000033 +:043A90000000000032 +:043A91000000000031 +:043A92000000000030 +:043A9300000000002F +:043A9400000000002E +:043A9500000000002D +:043A9600000000002C +:043A9700000000002B +:043A9800000000002A +:043A99000000000029 +:043A9A000000000028 +:043A9B000000000027 +:043A9C000000000026 +:043A9D000000000025 +:043A9E000000000024 +:043A9F000000000023 +:043AA0000000000022 +:043AA1000000000021 +:043AA2000000000020 +:043AA300000000001F +:043AA400000000001E +:043AA500000000001D +:043AA600000000001C +:043AA700000000001B +:043AA800000000001A +:043AA9000000000019 +:043AAA000000000018 +:043AAB000000000017 +:043AAC000000000016 +:043AAD000000000015 +:043AAE000000000014 +:043AAF000000000013 +:043AB0000000000012 +:043AB1000000000011 +:043AB2000000000010 +:043AB300000000000F +:043AB400000000000E +:043AB500000000000D +:043AB600000000000C +:043AB700000000000B +:043AB800000000000A +:043AB9000000000009 +:043ABA000000000008 +:043ABB000000000007 +:043ABC000000000006 +:043ABD000000000005 +:043ABE000000000004 +:043ABF000000000003 +:043AC0000000000002 +:043AC1000000000001 +:043AC2000000000000 +:043AC30000000000FF +:043AC40000000000FE +:043AC50000000000FD +:043AC60000000000FC +:043AC70000000000FB +:043AC80000000000FA +:043AC90000000000F9 +:043ACA0000000000F8 +:043ACB0000000000F7 +:043ACC0000000000F6 +:043ACD0000000000F5 +:043ACE0000000000F4 +:043ACF0000000000F3 +:043AD00000000000F2 +:043AD10000000000F1 +:043AD20000000000F0 +:043AD30000000000EF +:043AD40000000000EE +:043AD50000000000ED +:043AD60000000000EC +:043AD70000000000EB +:043AD80000000000EA +:043AD90000000000E9 +:043ADA0000000000E8 +:043ADB0000000000E7 +:043ADC0000000000E6 +:043ADD0000000000E5 +:043ADE0000000000E4 +:043ADF0000000000E3 +:043AE00000000000E2 +:043AE10000000000E1 +:043AE20000000000E0 +:043AE30000000000DF +:043AE40000000000DE +:043AE50000000000DD +:043AE60000000000DC +:043AE70000000000DB +:043AE80000000000DA +:043AE90000000000D9 +:043AEA0000000000D8 +:043AEB0000000000D7 +:043AEC0000000000D6 +:043AED0000000000D5 +:043AEE0000000000D4 +:043AEF0000000000D3 +:043AF00000000000D2 +:043AF10000000000D1 +:043AF20000000000D0 +:043AF30000000000CF +:043AF40000000000CE +:043AF50000000000CD +:043AF60000000000CC +:043AF70000000000CB +:043AF80000000000CA +:043AF90000000000C9 +:043AFA0000000000C8 +:043AFB0000000000C7 +:043AFC0000000000C6 +:043AFD0000000000C5 +:043AFE0000000000C4 +:043AFF0000000000C3 +:043B000000000000C1 +:043B010000000000C0 +:043B020000000000BF +:043B030000000000BE +:043B040000000000BD +:043B050000000000BC +:043B060000000000BB +:043B070000000000BA +:043B080000000000B9 +:043B090000000000B8 +:043B0A0000000000B7 +:043B0B0000000000B6 +:043B0C0000000000B5 +:043B0D0000000000B4 +:043B0E0000000000B3 +:043B0F0000000000B2 +:043B100000000000B1 +:043B110000000000B0 +:043B120000000000AF +:043B130000000000AE +:043B140000000000AD +:043B150000000000AC +:043B160000000000AB +:043B170000000000AA +:043B180000000000A9 +:043B190000000000A8 +:043B1A0000000000A7 +:043B1B0000000000A6 +:043B1C0000000000A5 +:043B1D0000000000A4 +:043B1E0000000000A3 +:043B1F0000000000A2 +:043B200000000000A1 +:043B210000000000A0 +:043B2200000000009F +:043B2300000000009E +:043B2400000000009D +:043B2500000000009C +:043B2600000000009B +:043B2700000000009A +:043B28000000000099 +:043B29000000000098 +:043B2A000000000097 +:043B2B000000000096 +:043B2C000000000095 +:043B2D000000000094 +:043B2E000000000093 +:043B2F000000000092 +:043B30000000000091 +:043B31000000000090 +:043B3200000000008F +:043B3300000000008E +:043B3400000000008D +:043B3500000000008C +:043B3600000000008B +:043B3700000000008A +:043B38000000000089 +:043B39000000000088 +:043B3A000000000087 +:043B3B000000000086 +:043B3C000000000085 +:043B3D000000000084 +:043B3E000000000083 +:043B3F000000000082 +:043B40000000000081 +:043B41000000000080 +:043B4200000000007F +:043B4300000000007E +:043B4400000000007D +:043B4500000000007C +:043B4600000000007B +:043B4700000000007A +:043B48000000000079 +:043B49000000000078 +:043B4A000000000077 +:043B4B000000000076 +:043B4C000000000075 +:043B4D000000000074 +:043B4E000000000073 +:043B4F000000000072 +:043B50000000000071 +:043B51000000000070 +:043B5200000000006F +:043B5300000000006E +:043B5400000000006D +:043B5500000000006C +:043B5600000000006B +:043B5700000000006A +:043B58000000000069 +:043B59000000000068 +:043B5A000000000067 +:043B5B000000000066 +:043B5C000000000065 +:043B5D000000000064 +:043B5E000000000063 +:043B5F000000000062 +:043B60000000000061 +:043B61000000000060 +:043B6200000000005F +:043B6300000000005E +:043B6400000000005D +:043B6500000000005C +:043B6600000000005B +:043B6700000000005A +:043B68000000000059 +:043B69000000000058 +:043B6A000000000057 +:043B6B000000000056 +:043B6C000000000055 +:043B6D000000000054 +:043B6E000000000053 +:043B6F000000000052 +:043B70000000000051 +:043B71000000000050 +:043B7200000000004F +:043B7300000000004E +:043B7400000000004D +:043B7500000000004C +:043B7600000000004B +:043B7700000000004A +:043B78000000000049 +:043B79000000000048 +:043B7A000000000047 +:043B7B000000000046 +:043B7C000000000045 +:043B7D000000000044 +:043B7E000000000043 +:043B7F000000000042 +:043B80000000000041 +:043B81000000000040 +:043B8200000000003F +:043B8300000000003E +:043B8400000000003D +:043B8500000000003C +:043B8600000000003B +:043B8700000000003A +:043B88000000000039 +:043B89000000000038 +:043B8A000000000037 +:043B8B000000000036 +:043B8C000000000035 +:043B8D000000000034 +:043B8E000000000033 +:043B8F000000000032 +:043B90000000000031 +:043B91000000000030 +:043B9200000000002F +:043B9300000000002E +:043B9400000000002D +:043B9500000000002C +:043B9600000000002B +:043B9700000000002A +:043B98000000000029 +:043B99000000000028 +:043B9A000000000027 +:043B9B000000000026 +:043B9C000000000025 +:043B9D000000000024 +:043B9E000000000023 +:043B9F000000000022 +:043BA0000000000021 +:043BA1000000000020 +:043BA200000000001F +:043BA300000000001E +:043BA400000000001D +:043BA500000000001C +:043BA600000000001B +:043BA700000000001A +:043BA8000000000019 +:043BA9000000000018 +:043BAA000000000017 +:043BAB000000000016 +:043BAC000000000015 +:043BAD000000000014 +:043BAE000000000013 +:043BAF000000000012 +:043BB0000000000011 +:043BB1000000000010 +:043BB200000000000F +:043BB300000000000E +:043BB400000000000D +:043BB500000000000C +:043BB600000000000B +:043BB700000000000A +:043BB8000000000009 +:043BB9000000000008 +:043BBA000000000007 +:043BBB000000000006 +:043BBC000000000005 +:043BBD000000000004 +:043BBE000000000003 +:043BBF000000000002 +:043BC0000000000001 +:043BC1000000000000 +:043BC20000000000FF +:043BC30000000000FE +:043BC40000000000FD +:043BC50000000000FC +:043BC60000000000FB +:043BC70000000000FA +:043BC80000000000F9 +:043BC90000000000F8 +:043BCA0000000000F7 +:043BCB0000000000F6 +:043BCC0000000000F5 +:043BCD0000000000F4 +:043BCE0000000000F3 +:043BCF0000000000F2 +:043BD00000000000F1 +:043BD10000000000F0 +:043BD20000000000EF +:043BD30000000000EE +:043BD40000000000ED +:043BD50000000000EC +:043BD60000000000EB +:043BD70000000000EA +:043BD80000000000E9 +:043BD90000000000E8 +:043BDA0000000000E7 +:043BDB0000000000E6 +:043BDC0000000000E5 +:043BDD0000000000E4 +:043BDE0000000000E3 +:043BDF0000000000E2 +:043BE00000000000E1 +:043BE10000000000E0 +:043BE20000000000DF +:043BE30000000000DE +:043BE40000000000DD +:043BE50000000000DC +:043BE60000000000DB +:043BE70000000000DA +:043BE80000000000D9 +:043BE90000000000D8 +:043BEA0000000000D7 +:043BEB0000000000D6 +:043BEC0000000000D5 +:043BED0000000000D4 +:043BEE0000000000D3 +:043BEF0000000000D2 +:043BF00000000000D1 +:043BF10000000000D0 +:043BF20000000000CF +:043BF30000000000CE +:043BF40000000000CD +:043BF50000000000CC +:043BF60000000000CB +:043BF70000000000CA +:043BF80000000000C9 +:043BF90000000000C8 +:043BFA0000000000C7 +:043BFB0000000000C6 +:043BFC0000000000C5 +:043BFD0000000000C4 +:043BFE0000000000C3 +:043BFF0000000000C2 +:043C000000000000C0 +:043C010000000000BF +:043C020000000000BE +:043C030000000000BD +:043C040000000000BC +:043C050000000000BB +:043C060000000000BA +:043C070000000000B9 +:043C080000000000B8 +:043C090000000000B7 +:043C0A0000000000B6 +:043C0B0000000000B5 +:043C0C0000000000B4 +:043C0D0000000000B3 +:043C0E0000000000B2 +:043C0F0000000000B1 +:043C100000000000B0 +:043C110000000000AF +:043C120000000000AE +:043C130000000000AD +:043C140000000000AC +:043C150000000000AB +:043C160000000000AA +:043C170000000000A9 +:043C180000000000A8 +:043C190000000000A7 +:043C1A0000000000A6 +:043C1B0000000000A5 +:043C1C0000000000A4 +:043C1D0000000000A3 +:043C1E0000000000A2 +:043C1F0000000000A1 +:043C200000000000A0 +:043C2100000000009F +:043C2200000000009E +:043C2300000000009D +:043C2400000000009C +:043C2500000000009B +:043C2600000000009A +:043C27000000000099 +:043C28000000000098 +:043C29000000000097 +:043C2A000000000096 +:043C2B000000000095 +:043C2C000000000094 +:043C2D000000000093 +:043C2E000000000092 +:043C2F000000000091 +:043C30000000000090 +:043C3100000000008F +:043C3200000000008E +:043C3300000000008D +:043C3400000000008C +:043C3500000000008B +:043C3600000000008A +:043C37000000000089 +:043C38000000000088 +:043C39000000000087 +:043C3A000000000086 +:043C3B000000000085 +:043C3C000000000084 +:043C3D000000000083 +:043C3E000000000082 +:043C3F000000000081 +:043C40000000000080 +:043C4100000000007F +:043C4200000000007E +:043C4300000000007D +:043C4400000000007C +:043C4500000000007B +:043C4600000000007A +:043C47000000000079 +:043C48000000000078 +:043C49000000000077 +:043C4A000000000076 +:043C4B000000000075 +:043C4C000000000074 +:043C4D000000000073 +:043C4E000000000072 +:043C4F000000000071 +:043C50000000000070 +:043C5100000000006F +:043C5200000000006E +:043C5300000000006D +:043C5400000000006C +:043C5500000000006B +:043C5600000000006A +:043C57000000000069 +:043C58000000000068 +:043C59000000000067 +:043C5A000000000066 +:043C5B000000000065 +:043C5C000000000064 +:043C5D000000000063 +:043C5E000000000062 +:043C5F000000000061 +:043C60000000000060 +:043C6100000000005F +:043C6200000000005E +:043C6300000000005D +:043C6400000000005C +:043C6500000000005B +:043C6600000000005A +:043C67000000000059 +:043C68000000000058 +:043C69000000000057 +:043C6A000000000056 +:043C6B000000000055 +:043C6C000000000054 +:043C6D000000000053 +:043C6E000000000052 +:043C6F000000000051 +:043C70000000000050 +:043C7100000000004F +:043C7200000000004E +:043C7300000000004D +:043C7400000000004C +:043C7500000000004B +:043C7600000000004A +:043C77000000000049 +:043C78000000000048 +:043C79000000000047 +:043C7A000000000046 +:043C7B000000000045 +:043C7C000000000044 +:043C7D000000000043 +:043C7E000000000042 +:043C7F000000000041 +:043C80000000000040 +:043C8100000000003F +:043C8200000000003E +:043C8300000000003D +:043C8400000000003C +:043C8500000000003B +:043C8600000000003A +:043C87000000000039 +:043C88000000000038 +:043C89000000000037 +:043C8A000000000036 +:043C8B000000000035 +:043C8C000000000034 +:043C8D000000000033 +:043C8E000000000032 +:043C8F000000000031 +:043C90000000000030 +:043C9100000000002F +:043C9200000000002E +:043C9300000000002D +:043C9400000000002C +:043C9500000000002B +:043C9600000000002A +:043C97000000000029 +:043C98000000000028 +:043C99000000000027 +:043C9A000000000026 +:043C9B000000000025 +:043C9C000000000024 +:043C9D000000000023 +:043C9E000000000022 +:043C9F000000000021 +:043CA0000000000020 +:043CA100000000001F +:043CA200000000001E +:043CA300000000001D +:043CA400000000001C +:043CA500000000001B +:043CA600000000001A +:043CA7000000000019 +:043CA8000000000018 +:043CA9000000000017 +:043CAA000000000016 +:043CAB000000000015 +:043CAC000000000014 +:043CAD000000000013 +:043CAE000000000012 +:043CAF000000000011 +:043CB0000000000010 +:043CB100000000000F +:043CB200000000000E +:043CB300000000000D +:043CB400000000000C +:043CB500000000000B +:043CB600000000000A +:043CB7000000000009 +:043CB8000000000008 +:043CB9000000000007 +:043CBA000000000006 +:043CBB000000000005 +:043CBC000000000004 +:043CBD000000000003 +:043CBE000000000002 +:043CBF000000000001 +:043CC0000000000000 +:043CC10000000000FF +:043CC20000000000FE +:043CC30000000000FD +:043CC40000000000FC +:043CC50000000000FB +:043CC60000000000FA +:043CC70000000000F9 +:043CC80000000000F8 +:043CC90000000000F7 +:043CCA0000000000F6 +:043CCB0000000000F5 +:043CCC0000000000F4 +:043CCD0000000000F3 +:043CCE0000000000F2 +:043CCF0000000000F1 +:043CD00000000000F0 +:043CD10000000000EF +:043CD20000000000EE +:043CD30000000000ED +:043CD40000000000EC +:043CD50000000000EB +:043CD60000000000EA +:043CD70000000000E9 +:043CD80000000000E8 +:043CD90000000000E7 +:043CDA0000000000E6 +:043CDB0000000000E5 +:043CDC0000000000E4 +:043CDD0000000000E3 +:043CDE0000000000E2 +:043CDF0000000000E1 +:043CE00000000000E0 +:043CE10000000000DF +:043CE20000000000DE +:043CE30000000000DD +:043CE40000000000DC +:043CE50000000000DB +:043CE60000000000DA +:043CE70000000000D9 +:043CE80000000000D8 +:043CE90000000000D7 +:043CEA0000000000D6 +:043CEB0000000000D5 +:043CEC0000000000D4 +:043CED0000000000D3 +:043CEE0000000000D2 +:043CEF0000000000D1 +:043CF00000000000D0 +:043CF10000000000CF +:043CF20000000000CE +:043CF30000000000CD +:043CF40000000000CC +:043CF50000000000CB +:043CF60000000000CA +:043CF70000000000C9 +:043CF80000000000C8 +:043CF90000000000C7 +:043CFA0000000000C6 +:043CFB0000000000C5 +:043CFC0000000000C4 +:043CFD0000000000C3 +:043CFE0000000000C2 +:043CFF0000000000C1 +:043D000000000000BF +:043D010000000000BE +:043D020000000000BD +:043D030000000000BC +:043D040000000000BB +:043D050000000000BA +:043D060000000000B9 +:043D070000000000B8 +:043D080000000000B7 +:043D090000000000B6 +:043D0A0000000000B5 +:043D0B0000000000B4 +:043D0C0000000000B3 +:043D0D0000000000B2 +:043D0E0000000000B1 +:043D0F0000000000B0 +:043D100000000000AF +:043D110000000000AE +:043D120000000000AD +:043D130000000000AC +:043D140000000000AB +:043D150000000000AA +:043D160000000000A9 +:043D170000000000A8 +:043D180000000000A7 +:043D190000000000A6 +:043D1A0000000000A5 +:043D1B0000000000A4 +:043D1C0000000000A3 +:043D1D0000000000A2 +:043D1E0000000000A1 +:043D1F0000000000A0 +:043D2000000000009F +:043D2100000000009E +:043D2200000000009D +:043D2300000000009C +:043D2400000000009B +:043D2500000000009A +:043D26000000000099 +:043D27000000000098 +:043D28000000000097 +:043D29000000000096 +:043D2A000000000095 +:043D2B000000000094 +:043D2C000000000093 +:043D2D000000000092 +:043D2E000000000091 +:043D2F000000000090 +:043D3000000000008F +:043D3100000000008E +:043D3200000000008D +:043D3300000000008C +:043D3400000000008B +:043D3500000000008A +:043D36000000000089 +:043D37000000000088 +:043D38000000000087 +:043D39000000000086 +:043D3A000000000085 +:043D3B000000000084 +:043D3C000000000083 +:043D3D000000000082 +:043D3E000000000081 +:043D3F000000000080 +:043D4000000000007F +:043D4100000000007E +:043D4200000000007D +:043D4300000000007C +:043D4400000000007B +:043D4500000000007A +:043D46000000000079 +:043D47000000000078 +:043D48000000000077 +:043D49000000000076 +:043D4A000000000075 +:043D4B000000000074 +:043D4C000000000073 +:043D4D000000000072 +:043D4E000000000071 +:043D4F000000000070 +:043D5000000000006F +:043D5100000000006E +:043D5200000000006D +:043D5300000000006C +:043D5400000000006B +:043D5500000000006A +:043D56000000000069 +:043D57000000000068 +:043D58000000000067 +:043D59000000000066 +:043D5A000000000065 +:043D5B000000000064 +:043D5C000000000063 +:043D5D000000000062 +:043D5E000000000061 +:043D5F000000000060 +:043D6000000000005F +:043D6100000000005E +:043D6200000000005D +:043D6300000000005C +:043D6400000000005B +:043D6500000000005A +:043D66000000000059 +:043D67000000000058 +:043D68000000000057 +:043D69000000000056 +:043D6A000000000055 +:043D6B000000000054 +:043D6C000000000053 +:043D6D000000000052 +:043D6E000000000051 +:043D6F000000000050 +:043D7000000000004F +:043D7100000000004E +:043D7200000000004D +:043D7300000000004C +:043D7400000000004B +:043D7500000000004A +:043D76000000000049 +:043D77000000000048 +:043D78000000000047 +:043D79000000000046 +:043D7A000000000045 +:043D7B000000000044 +:043D7C000000000043 +:043D7D000000000042 +:043D7E000000000041 +:043D7F000000000040 +:043D8000000000003F +:043D8100000000003E +:043D8200000000003D +:043D8300000000003C +:043D8400000000003B +:043D8500000000003A +:043D86000000000039 +:043D87000000000038 +:043D88000000000037 +:043D89000000000036 +:043D8A000000000035 +:043D8B000000000034 +:043D8C000000000033 +:043D8D000000000032 +:043D8E000000000031 +:043D8F000000000030 +:043D9000000000002F +:043D9100000000002E +:043D9200000000002D +:043D9300000000002C +:043D9400000000002B +:043D9500000000002A +:043D96000000000029 +:043D97000000000028 +:043D98000000000027 +:043D99000000000026 +:043D9A000000000025 +:043D9B000000000024 +:043D9C000000000023 +:043D9D000000000022 +:043D9E000000000021 +:043D9F000000000020 +:043DA000000000001F +:043DA100000000001E +:043DA200000000001D +:043DA300000000001C +:043DA400000000001B +:043DA500000000001A +:043DA6000000000019 +:043DA7000000000018 +:043DA8000000000017 +:043DA9000000000016 +:043DAA000000000015 +:043DAB000000000014 +:043DAC000000000013 +:043DAD000000000012 +:043DAE000000000011 +:043DAF000000000010 +:043DB000000000000F +:043DB100000000000E +:043DB200000000000D +:043DB300000000000C +:043DB400000000000B +:043DB500000000000A +:043DB6000000000009 +:043DB7000000000008 +:043DB8000000000007 +:043DB9000000000006 +:043DBA000000000005 +:043DBB000000000004 +:043DBC000000000003 +:043DBD000000000002 +:043DBE000000000001 +:043DBF000000000000 +:043DC00000000000FF +:043DC10000000000FE +:043DC20000000000FD +:043DC30000000000FC +:043DC40000000000FB +:043DC50000000000FA +:043DC60000000000F9 +:043DC70000000000F8 +:043DC80000000000F7 +:043DC90000000000F6 +:043DCA0000000000F5 +:043DCB0000000000F4 +:043DCC0000000000F3 +:043DCD0000000000F2 +:043DCE0000000000F1 +:043DCF0000000000F0 +:043DD00000000000EF +:043DD10000000000EE +:043DD20000000000ED +:043DD30000000000EC +:043DD40000000000EB +:043DD50000000000EA +:043DD60000000000E9 +:043DD70000000000E8 +:043DD80000000000E7 +:043DD90000000000E6 +:043DDA0000000000E5 +:043DDB0000000000E4 +:043DDC0000000000E3 +:043DDD0000000000E2 +:043DDE0000000000E1 +:043DDF0000000000E0 +:043DE00000000000DF +:043DE10000000000DE +:043DE20000000000DD +:043DE30000000000DC +:043DE40000000000DB +:043DE50000000000DA +:043DE60000000000D9 +:043DE70000000000D8 +:043DE80000000000D7 +:043DE90000000000D6 +:043DEA0000000000D5 +:043DEB0000000000D4 +:043DEC0000000000D3 +:043DED0000000000D2 +:043DEE0000000000D1 +:043DEF0000000000D0 +:043DF00000000000CF +:043DF10000000000CE +:043DF20000000000CD +:043DF30000000000CC +:043DF40000000000CB +:043DF50000000000CA +:043DF60000000000C9 +:043DF70000000000C8 +:043DF80000000000C7 +:043DF90000000000C6 +:043DFA0000000000C5 +:043DFB0000000000C4 +:043DFC0000000000C3 +:043DFD0000000000C2 +:043DFE0000000000C1 +:043DFF0000000000C0 +:043E000000000000BE +:043E010000000000BD +:043E020000000000BC +:043E030000000000BB +:043E040000000000BA +:043E050000000000B9 +:043E060000000000B8 +:043E070000000000B7 +:043E080000000000B6 +:043E090000000000B5 +:043E0A0000000000B4 +:043E0B0000000000B3 +:043E0C0000000000B2 +:043E0D0000000000B1 +:043E0E0000000000B0 +:043E0F0000000000AF +:043E100000000000AE +:043E110000000000AD +:043E120000000000AC +:043E130000000000AB +:043E140000000000AA +:043E150000000000A9 +:043E160000000000A8 +:043E170000000000A7 +:043E180000000000A6 +:043E190000000000A5 +:043E1A0000000000A4 +:043E1B0000000000A3 +:043E1C0000000000A2 +:043E1D0000000000A1 +:043E1E0000000000A0 +:043E1F00000000009F +:043E2000000000009E +:043E2100000000009D +:043E2200000000009C +:043E2300000000009B +:043E2400000000009A +:043E25000000000099 +:043E26000000000098 +:043E27000000000097 +:043E28000000000096 +:043E29000000000095 +:043E2A000000000094 +:043E2B000000000093 +:043E2C000000000092 +:043E2D000000000091 +:043E2E000000000090 +:043E2F00000000008F +:043E3000000000008E +:043E3100000000008D +:043E3200000000008C +:043E3300000000008B +:043E3400000000008A +:043E35000000000089 +:043E36000000000088 +:043E37000000000087 +:043E38000000000086 +:043E39000000000085 +:043E3A000000000084 +:043E3B000000000083 +:043E3C000000000082 +:043E3D000000000081 +:043E3E000000000080 +:043E3F00000000007F +:043E4000000000007E +:043E4100000000007D +:043E4200000000007C +:043E4300000000007B +:043E4400000000007A +:043E45000000000079 +:043E46000000000078 +:043E47000000000077 +:043E48000000000076 +:043E49000000000075 +:043E4A000000000074 +:043E4B000000000073 +:043E4C000000000072 +:043E4D000000000071 +:043E4E000000000070 +:043E4F00000000006F +:043E5000000000006E +:043E5100000000006D +:043E5200000000006C +:043E5300000000006B +:043E5400000000006A +:043E55000000000069 +:043E56000000000068 +:043E57000000000067 +:043E58000000000066 +:043E59000000000065 +:043E5A000000000064 +:043E5B000000000063 +:043E5C000000000062 +:043E5D000000000061 +:043E5E000000000060 +:043E5F00000000005F +:043E6000000000005E +:043E6100000000005D +:043E6200000000005C +:043E6300000000005B +:043E6400000000005A +:043E65000000000059 +:043E66000000000058 +:043E67000000000057 +:043E68000000000056 +:043E69000000000055 +:043E6A000000000054 +:043E6B000000000053 +:043E6C000000000052 +:043E6D000000000051 +:043E6E000000000050 +:043E6F00000000004F +:043E7000000000004E +:043E7100000000004D +:043E7200000000004C +:043E7300000000004B +:043E7400000000004A +:043E75000000000049 +:043E76000000000048 +:043E77000000000047 +:043E78000000000046 +:043E79000000000045 +:043E7A000000000044 +:043E7B000000000043 +:043E7C000000000042 +:043E7D000000000041 +:043E7E000000000040 +:043E7F00000000003F +:043E8000000000003E +:043E8100000000003D +:043E8200000000003C +:043E8300000000003B +:043E8400000000003A +:043E85000000000039 +:043E86000000000038 +:043E87000000000037 +:043E88000000000036 +:043E89000000000035 +:043E8A000000000034 +:043E8B000000000033 +:043E8C000000000032 +:043E8D000000000031 +:043E8E000000000030 +:043E8F00000000002F +:043E9000000000002E +:043E9100000000002D +:043E9200000000002C +:043E9300000000002B +:043E9400000000002A +:043E95000000000029 +:043E96000000000028 +:043E97000000000027 +:043E98000000000026 +:043E99000000000025 +:043E9A000000000024 +:043E9B000000000023 +:043E9C000000000022 +:043E9D000000000021 +:043E9E000000000020 +:043E9F00000000001F +:043EA000000000001E +:043EA100000000001D +:043EA200000000001C +:043EA300000000001B +:043EA400000000001A +:043EA5000000000019 +:043EA6000000000018 +:043EA7000000000017 +:043EA8000000000016 +:043EA9000000000015 +:043EAA000000000014 +:043EAB000000000013 +:043EAC000000000012 +:043EAD000000000011 +:043EAE000000000010 +:043EAF00000000000F +:043EB000000000000E +:043EB100000000000D +:043EB200000000000C +:043EB300000000000B +:043EB400000000000A +:043EB5000000000009 +:043EB6000000000008 +:043EB7000000000007 +:043EB8000000000006 +:043EB9000000000005 +:043EBA000000000004 +:043EBB000000000003 +:043EBC000000000002 +:043EBD000000000001 +:043EBE000000000000 +:043EBF0000000000FF +:043EC00000000000FE +:043EC10000000000FD +:043EC20000000000FC +:043EC30000000000FB +:043EC40000000000FA +:043EC50000000000F9 +:043EC60000000000F8 +:043EC70000000000F7 +:043EC80000000000F6 +:043EC90000000000F5 +:043ECA0000000000F4 +:043ECB0000000000F3 +:043ECC0000000000F2 +:043ECD0000000000F1 +:043ECE0000000000F0 +:043ECF0000000000EF +:043ED00000000000EE +:043ED10000000000ED +:043ED20000000000EC +:043ED30000000000EB +:043ED40000000000EA +:043ED50000000000E9 +:043ED60000000000E8 +:043ED70000000000E7 +:043ED80000000000E6 +:043ED90000000000E5 +:043EDA0000000000E4 +:043EDB0000000000E3 +:043EDC0000000000E2 +:043EDD0000000000E1 +:043EDE0000000000E0 +:043EDF0000000000DF +:043EE00000000000DE +:043EE10000000000DD +:043EE20000000000DC +:043EE30000000000DB +:043EE40000000000DA +:043EE50000000000D9 +:043EE60000000000D8 +:043EE70000000000D7 +:043EE80000000000D6 +:043EE90000000000D5 +:043EEA0000000000D4 +:043EEB0000000000D3 +:043EEC0000000000D2 +:043EED0000000000D1 +:043EEE0000000000D0 +:043EEF0000000000CF +:043EF00000000000CE +:043EF10000000000CD +:043EF20000000000CC +:043EF30000000000CB +:043EF40000000000CA +:043EF50000000000C9 +:043EF60000000000C8 +:043EF70000000000C7 +:043EF80000000000C6 +:043EF90000000000C5 +:043EFA0000000000C4 +:043EFB0000000000C3 +:043EFC0000000000C2 +:043EFD0000000000C1 +:043EFE0000000000C0 +:043EFF0000000000BF +:043F000000000000BD +:043F010000000000BC +:043F020000000000BB +:043F030000000000BA +:043F040000000000B9 +:043F050000000000B8 +:043F060000000000B7 +:043F070000000000B6 +:043F080000000000B5 +:043F090000000000B4 +:043F0A0000000000B3 +:043F0B0000000000B2 +:043F0C0000000000B1 +:043F0D0000000000B0 +:043F0E0000000000AF +:043F0F0000000000AE +:043F100000000000AD +:043F110000000000AC +:043F120000000000AB +:043F130000000000AA +:043F140000000000A9 +:043F150000000000A8 +:043F160000000000A7 +:043F170000000000A6 +:043F180000000000A5 +:043F190000000000A4 +:043F1A0000000000A3 +:043F1B0000000000A2 +:043F1C0000000000A1 +:043F1D0000000000A0 +:043F1E00000000009F +:043F1F00000000009E +:043F2000000000009D +:043F2100000000009C +:043F2200000000009B +:043F2300000000009A +:043F24000000000099 +:043F25000000000098 +:043F26000000000097 +:043F27000000000096 +:043F28000000000095 +:043F29000000000094 +:043F2A000000000093 +:043F2B000000000092 +:043F2C000000000091 +:043F2D000000000090 +:043F2E00000000008F +:043F2F00000000008E +:043F3000000000008D +:043F3100000000008C +:043F3200000000008B +:043F3300000000008A +:043F34000000000089 +:043F35000000000088 +:043F36000000000087 +:043F37000000000086 +:043F38000000000085 +:043F39000000000084 +:043F3A000000000083 +:043F3B000000000082 +:043F3C000000000081 +:043F3D000000000080 +:043F3E00000000007F +:043F3F00000000007E +:043F4000000000007D +:043F4100000000007C +:043F4200000000007B +:043F4300000000007A +:043F44000000000079 +:043F45000000000078 +:043F46000000000077 +:043F47000000000076 +:043F48000000000075 +:043F49000000000074 +:043F4A000000000073 +:043F4B000000000072 +:043F4C000000000071 +:043F4D000000000070 +:043F4E00000000006F +:043F4F00000000006E +:043F5000000000006D +:043F5100000000006C +:043F5200000000006B +:043F5300000000006A +:043F54000000000069 +:043F55000000000068 +:043F56000000000067 +:043F57000000000066 +:043F58000000000065 +:043F59000000000064 +:043F5A000000000063 +:043F5B000000000062 +:043F5C000000000061 +:043F5D000000000060 +:043F5E00000000005F +:043F5F00000000005E +:043F6000000000005D +:043F6100000000005C +:043F6200000000005B +:043F6300000000005A +:043F64000000000059 +:043F65000000000058 +:043F66000000000057 +:043F67000000000056 +:043F68000000000055 +:043F69000000000054 +:043F6A000000000053 +:043F6B000000000052 +:043F6C000000000051 +:043F6D000000000050 +:043F6E00000000004F +:043F6F00000000004E +:043F7000000000004D +:043F7100000000004C +:043F7200000000004B +:043F7300000000004A +:043F74000000000049 +:043F75000000000048 +:043F76000000000047 +:043F77000000000046 +:043F78000000000045 +:043F79000000000044 +:043F7A000000000043 +:043F7B000000000042 +:043F7C000000000041 +:043F7D000000000040 +:043F7E00000000003F +:043F7F00000000003E +:043F8000000000003D +:043F8100000000003C +:043F8200000000003B +:043F8300000000003A +:043F84000000000039 +:043F85000000000038 +:043F86000000000037 +:043F87000000000036 +:043F88000000000035 +:043F89000000000034 +:043F8A000000000033 +:043F8B000000000032 +:043F8C000000000031 +:043F8D000000000030 +:043F8E00000000002F +:043F8F00000000002E +:043F9000000000002D +:043F9100000000002C +:043F9200000000002B +:043F9300000000002A +:043F94000000000029 +:043F95000000000028 +:043F96000000000027 +:043F97000000000026 +:043F98000000000025 +:043F99000000000024 +:043F9A000000000023 +:043F9B000000000022 +:043F9C000000000021 +:043F9D000000000020 +:043F9E00000000001F +:043F9F00000000001E +:043FA000000000001D +:043FA100000000001C +:043FA200000000001B +:043FA300000000001A +:043FA4000000000019 +:043FA5000000000018 +:043FA6000000000017 +:043FA7000000000016 +:043FA8000000000015 +:043FA9000000000014 +:043FAA000000000013 +:043FAB000000000012 +:043FAC000000000011 +:043FAD000000000010 +:043FAE00000000000F +:043FAF00000000000E +:043FB000000000000D +:043FB100000000000C +:043FB200000000000B +:043FB300000000000A +:043FB4000000000009 +:043FB5000000000008 +:043FB6000000000007 +:043FB7000000000006 +:043FB8000000000005 +:043FB9000000000004 +:043FBA000000000003 +:043FBB000000000002 +:043FBC000000000001 +:043FBD000000000000 +:043FBE0000000000FF +:043FBF0000000000FE +:043FC00000000000FD +:043FC10000000000FC +:043FC20000000000FB +:043FC30000000000FA +:043FC40000000000F9 +:043FC50000000000F8 +:043FC60000000000F7 +:043FC70000000000F6 +:043FC80000000000F5 +:043FC90000000000F4 +:043FCA0000000000F3 +:043FCB0000000000F2 +:043FCC0000000000F1 +:043FCD0000000000F0 +:043FCE0000000000EF +:043FCF0000000000EE +:043FD00000000000ED +:043FD10000000000EC +:043FD20000000000EB +:043FD30000000000EA +:043FD40000000000E9 +:043FD50000000000E8 +:043FD60000000000E7 +:043FD70000000000E6 +:043FD80000000000E5 +:043FD90000000000E4 +:043FDA0000000000E3 +:043FDB0000000000E2 +:043FDC0000000000E1 +:043FDD0000000000E0 +:043FDE0000000000DF +:043FDF0000000000DE +:043FE00000000000DD +:043FE10000000000DC +:043FE20000000000DB +:043FE30000000000DA +:043FE40000000000D9 +:043FE50000000000D8 +:043FE60000000000D7 +:043FE70000000000D6 +:043FE80000000000D5 +:043FE90000000000D4 +:043FEA0000000000D3 +:043FEB0000000000D2 +:043FEC0000000000D1 +:043FED0000000000D0 +:043FEE0000000000CF +:043FEF0000000000CE +:043FF00000000000CD +:043FF10000000000CC +:043FF20000000000CB +:043FF30000000000CA +:043FF40000000000C9 +:043FF50000000000C8 +:043FF60000000000C7 +:043FF70000000000C6 +:043FF80000000000C5 +:043FF90000000000C4 +:043FFA0000000000C3 +:043FFB0000000000C2 +:043FFC0000000000C1 +:043FFD0000000000C0 +:043FFE0000000000BF +:043FFF0000000000BE +:0440000000000000BC +:0440010000000000BB +:0440020000000000BA +:0440030000000000B9 +:0440040000000000B8 +:0440050000000000B7 +:0440060000000000B6 +:0440070000000000B5 +:0440080000000000B4 +:0440090000000000B3 +:04400A0000000000B2 +:04400B0000000000B1 +:04400C0000000000B0 +:04400D0000000000AF +:04400E0000000000AE +:04400F0000000000AD +:0440100000000000AC +:0440110000000000AB +:0440120000000000AA +:0440130000000000A9 +:0440140000000000A8 +:0440150000000000A7 +:0440160000000000A6 +:0440170000000000A5 +:0440180000000000A4 +:0440190000000000A3 +:04401A0000000000A2 +:04401B0000000000A1 +:04401C0000000000A0 +:04401D00000000009F +:04401E00000000009E +:04401F00000000009D +:04402000000000009C +:04402100000000009B +:04402200000000009A +:044023000000000099 +:044024000000000098 +:044025000000000097 +:044026000000000096 +:044027000000000095 +:044028000000000094 +:044029000000000093 +:04402A000000000092 +:04402B000000000091 +:04402C000000000090 +:04402D00000000008F +:04402E00000000008E +:04402F00000000008D +:04403000000000008C +:04403100000000008B +:04403200000000008A +:044033000000000089 +:044034000000000088 +:044035000000000087 +:044036000000000086 +:044037000000000085 +:044038000000000084 +:044039000000000083 +:04403A000000000082 +:04403B000000000081 +:04403C000000000080 +:04403D00000000007F +:04403E00000000007E +:04403F00000000007D +:04404000000000007C +:04404100000000007B +:04404200000000007A +:044043000000000079 +:044044000000000078 +:044045000000000077 +:044046000000000076 +:044047000000000075 +:044048000000000074 +:044049000000000073 +:04404A000000000072 +:04404B000000000071 +:04404C000000000070 +:04404D00000000006F +:04404E00000000006E +:04404F00000000006D +:04405000000000006C +:04405100000000006B +:04405200000000006A +:044053000000000069 +:044054000000000068 +:044055000000000067 +:044056000000000066 +:044057000000000065 +:044058000000000064 +:044059000000000063 +:04405A000000000062 +:04405B000000000061 +:04405C000000000060 +:04405D00000000005F +:04405E00000000005E +:04405F00000000005D +:04406000000000005C +:04406100000000005B +:04406200000000005A +:044063000000000059 +:044064000000000058 +:044065000000000057 +:044066000000000056 +:044067000000000055 +:044068000000000054 +:044069000000000053 +:04406A000000000052 +:04406B000000000051 +:04406C000000000050 +:04406D00000000004F +:04406E00000000004E +:04406F00000000004D +:04407000000000004C +:04407100000000004B +:04407200000000004A +:044073000000000049 +:044074000000000048 +:044075000000000047 +:044076000000000046 +:044077000000000045 +:044078000000000044 +:044079000000000043 +:04407A000000000042 +:04407B000000000041 +:04407C000000000040 +:04407D00000000003F +:04407E00000000003E +:04407F00000000003D +:04408000000000003C +:04408100000000003B +:04408200000000003A +:044083000000000039 +:044084000000000038 +:044085000000000037 +:044086000000000036 +:044087000000000035 +:044088000000000034 +:044089000000000033 +:04408A000000000032 +:04408B000000000031 +:04408C000000000030 +:04408D00000000002F +:04408E00000000002E +:04408F00000000002D +:04409000000000002C +:04409100000000002B +:04409200000000002A +:044093000000000029 +:044094000000000028 +:044095000000000027 +:044096000000000026 +:044097000000000025 +:044098000000000024 +:044099000000000023 +:04409A000000000022 +:04409B000000000021 +:04409C000000000020 +:04409D00000000001F +:04409E00000000001E +:04409F00000000001D +:0440A000000000001C +:0440A100000000001B +:0440A200000000001A +:0440A3000000000019 +:0440A4000000000018 +:0440A5000000000017 +:0440A6000000000016 +:0440A7000000000015 +:0440A8000000000014 +:0440A9000000000013 +:0440AA000000000012 +:0440AB000000000011 +:0440AC000000000010 +:0440AD00000000000F +:0440AE00000000000E +:0440AF00000000000D +:0440B000000000000C +:0440B100000000000B +:0440B200000000000A +:0440B3000000000009 +:0440B4000000000008 +:0440B5000000000007 +:0440B6000000000006 +:0440B7000000000005 +:0440B8000000000004 +:0440B9000000000003 +:0440BA000000000002 +:0440BB000000000001 +:0440BC000000000000 +:0440BD0000000000FF +:0440BE0000000000FE +:0440BF0000000000FD +:0440C00000000000FC +:0440C10000000000FB +:0440C20000000000FA +:0440C30000000000F9 +:0440C40000000000F8 +:0440C50000000000F7 +:0440C60000000000F6 +:0440C70000000000F5 +:0440C80000000000F4 +:0440C90000000000F3 +:0440CA0000000000F2 +:0440CB0000000000F1 +:0440CC0000000000F0 +:0440CD0000000000EF +:0440CE0000000000EE +:0440CF0000000000ED +:0440D00000000000EC +:0440D10000000000EB +:0440D20000000000EA +:0440D30000000000E9 +:0440D40000000000E8 +:0440D50000000000E7 +:0440D60000000000E6 +:0440D70000000000E5 +:0440D80000000000E4 +:0440D90000000000E3 +:0440DA0000000000E2 +:0440DB0000000000E1 +:0440DC0000000000E0 +:0440DD0000000000DF +:0440DE0000000000DE +:0440DF0000000000DD +:0440E00000000000DC +:0440E10000000000DB +:0440E20000000000DA +:0440E30000000000D9 +:0440E40000000000D8 +:0440E50000000000D7 +:0440E60000000000D6 +:0440E70000000000D5 +:0440E80000000000D4 +:0440E90000000000D3 +:0440EA0000000000D2 +:0440EB0000000000D1 +:0440EC0000000000D0 +:0440ED0000000000CF +:0440EE0000000000CE +:0440EF0000000000CD +:0440F00000000000CC +:0440F10000000000CB +:0440F20000000000CA +:0440F30000000000C9 +:0440F40000000000C8 +:0440F50000000000C7 +:0440F60000000000C6 +:0440F70000000000C5 +:0440F80000000000C4 +:0440F90000000000C3 +:0440FA0000000000C2 +:0440FB0000000000C1 +:0440FC0000000000C0 +:0440FD0000000000BF +:0440FE0000000000BE +:0440FF0000000000BD +:0441000000000000BB +:0441010000000000BA +:0441020000000000B9 +:0441030000000000B8 +:0441040000000000B7 +:0441050000000000B6 +:0441060000000000B5 +:0441070000000000B4 +:0441080000000000B3 +:0441090000000000B2 +:04410A0000000000B1 +:04410B0000000000B0 +:04410C0000000000AF +:04410D0000000000AE +:04410E0000000000AD +:04410F0000000000AC +:0441100000000000AB +:0441110000000000AA +:0441120000000000A9 +:0441130000000000A8 +:0441140000000000A7 +:0441150000000000A6 +:0441160000000000A5 +:0441170000000000A4 +:0441180000000000A3 +:0441190000000000A2 +:04411A0000000000A1 +:04411B0000000000A0 +:04411C00000000009F +:04411D00000000009E +:04411E00000000009D +:04411F00000000009C +:04412000000000009B +:04412100000000009A +:044122000000000099 +:044123000000000098 +:044124000000000097 +:044125000000000096 +:044126000000000095 +:044127000000000094 +:044128000000000093 +:044129000000000092 +:04412A000000000091 +:04412B000000000090 +:04412C00000000008F +:04412D00000000008E +:04412E00000000008D +:04412F00000000008C +:04413000000000008B +:04413100000000008A +:044132000000000089 +:044133000000000088 +:044134000000000087 +:044135000000000086 +:044136000000000085 +:044137000000000084 +:044138000000000083 +:044139000000000082 +:04413A000000000081 +:04413B000000000080 +:04413C00000000007F +:04413D00000000007E +:04413E00000000007D +:04413F00000000007C +:04414000000000007B +:04414100000000007A +:044142000000000079 +:044143000000000078 +:044144000000000077 +:044145000000000076 +:044146000000000075 +:044147000000000074 +:044148000000000073 +:044149000000000072 +:04414A000000000071 +:04414B000000000070 +:04414C00000000006F +:04414D00000000006E +:04414E00000000006D +:04414F00000000006C +:04415000000000006B +:04415100000000006A +:044152000000000069 +:044153000000000068 +:044154000000000067 +:044155000000000066 +:044156000000000065 +:044157000000000064 +:044158000000000063 +:044159000000000062 +:04415A000000000061 +:04415B000000000060 +:04415C00000000005F +:04415D00000000005E +:04415E00000000005D +:04415F00000000005C +:04416000000000005B +:04416100000000005A +:044162000000000059 +:044163000000000058 +:044164000000000057 +:044165000000000056 +:044166000000000055 +:044167000000000054 +:044168000000000053 +:044169000000000052 +:04416A000000000051 +:04416B000000000050 +:04416C00000000004F +:04416D00000000004E +:04416E00000000004D +:04416F00000000004C +:04417000000000004B +:04417100000000004A +:044172000000000049 +:044173000000000048 +:044174000000000047 +:044175000000000046 +:044176000000000045 +:044177000000000044 +:044178000000000043 +:044179000000000042 +:04417A000000000041 +:04417B000000000040 +:04417C00000000003F +:04417D00000000003E +:04417E00000000003D +:04417F00000000003C +:04418000000000003B +:04418100000000003A +:044182000000000039 +:044183000000000038 +:044184000000000037 +:044185000000000036 +:044186000000000035 +:044187000000000034 +:044188000000000033 +:044189000000000032 +:04418A000000000031 +:04418B000000000030 +:04418C00000000002F +:04418D00000000002E +:04418E00000000002D +:04418F00000000002C +:04419000000000002B +:04419100000000002A +:044192000000000029 +:044193000000000028 +:044194000000000027 +:044195000000000026 +:044196000000000025 +:044197000000000024 +:044198000000000023 +:044199000000000022 +:04419A000000000021 +:04419B000000000020 +:04419C00000000001F +:04419D00000000001E +:04419E00000000001D +:04419F00000000001C +:0441A000000000001B +:0441A100000000001A +:0441A2000000000019 +:0441A3000000000018 +:0441A4000000000017 +:0441A5000000000016 +:0441A6000000000015 +:0441A7000000000014 +:0441A8000000000013 +:0441A9000000000012 +:0441AA000000000011 +:0441AB000000000010 +:0441AC00000000000F +:0441AD00000000000E +:0441AE00000000000D +:0441AF00000000000C +:0441B000000000000B +:0441B100000000000A +:0441B2000000000009 +:0441B3000000000008 +:0441B4000000000007 +:0441B5000000000006 +:0441B6000000000005 +:0441B7000000000004 +:0441B8000000000003 +:0441B9000000000002 +:0441BA000000000001 +:0441BB000000000000 +:0441BC0000000000FF +:0441BD0000000000FE +:0441BE0000000000FD +:0441BF0000000000FC +:0441C00000000000FB +:0441C10000000000FA +:0441C20000000000F9 +:0441C30000000000F8 +:0441C40000000000F7 +:0441C50000000000F6 +:0441C60000000000F5 +:0441C70000000000F4 +:0441C80000000000F3 +:0441C90000000000F2 +:0441CA0000000000F1 +:0441CB0000000000F0 +:0441CC0000000000EF +:0441CD0000000000EE +:0441CE0000000000ED +:0441CF0000000000EC +:0441D00000000000EB +:0441D10000000000EA +:0441D20000000000E9 +:0441D30000000000E8 +:0441D40000000000E7 +:0441D50000000000E6 +:0441D60000000000E5 +:0441D70000000000E4 +:0441D80000000000E3 +:0441D90000000000E2 +:0441DA0000000000E1 +:0441DB0000000000E0 +:0441DC0000000000DF +:0441DD0000000000DE +:0441DE0000000000DD +:0441DF0000000000DC +:0441E00000000000DB +:0441E10000000000DA +:0441E20000000000D9 +:0441E30000000000D8 +:0441E40000000000D7 +:0441E50000000000D6 +:0441E60000000000D5 +:0441E70000000000D4 +:0441E80000000000D3 +:0441E90000000000D2 +:0441EA0000000000D1 +:0441EB0000000000D0 +:0441EC0000000000CF +:0441ED0000000000CE +:0441EE0000000000CD +:0441EF0000000000CC +:0441F00000000000CB +:0441F10000000000CA +:0441F20000000000C9 +:0441F30000000000C8 +:0441F40000000000C7 +:0441F50000000000C6 +:0441F60000000000C5 +:0441F70000000000C4 +:0441F80000000000C3 +:0441F90000000000C2 +:0441FA0000000000C1 +:0441FB0000000000C0 +:0441FC0000000000BF +:0441FD0000000000BE +:0441FE0000000000BD +:0441FF0000000000BC +:0442000000000000BA +:0442010000000000B9 +:0442020000000000B8 +:0442030000000000B7 +:0442040000000000B6 +:0442050000000000B5 +:0442060000000000B4 +:0442070000000000B3 +:0442080000000000B2 +:0442090000000000B1 +:04420A0000000000B0 +:04420B0000000000AF +:04420C0000000000AE +:04420D0000000000AD +:04420E0000000000AC +:04420F0000000000AB +:0442100000000000AA +:0442110000000000A9 +:0442120000000000A8 +:0442130000000000A7 +:0442140000000000A6 +:0442150000000000A5 +:0442160000000000A4 +:0442170000000000A3 +:0442180000000000A2 +:0442190000000000A1 +:04421A0000000000A0 +:04421B00000000009F +:04421C00000000009E +:04421D00000000009D +:04421E00000000009C +:04421F00000000009B +:04422000000000009A +:044221000000000099 +:044222000000000098 +:044223000000000097 +:044224000000000096 +:044225000000000095 +:044226000000000094 +:044227000000000093 +:044228000000000092 +:044229000000000091 +:04422A000000000090 +:04422B00000000008F +:04422C00000000008E +:04422D00000000008D +:04422E00000000008C +:04422F00000000008B +:04423000000000008A +:044231000000000089 +:044232000000000088 +:044233000000000087 +:044234000000000086 +:044235000000000085 +:044236000000000084 +:044237000000000083 +:044238000000000082 +:044239000000000081 +:04423A000000000080 +:04423B00000000007F +:04423C00000000007E +:04423D00000000007D +:04423E00000000007C +:04423F00000000007B +:04424000000000007A +:044241000000000079 +:044242000000000078 +:044243000000000077 +:044244000000000076 +:044245000000000075 +:044246000000000074 +:044247000000000073 +:044248000000000072 +:044249000000000071 +:04424A000000000070 +:04424B00000000006F +:04424C00000000006E +:04424D00000000006D +:04424E00000000006C +:04424F00000000006B +:04425000000000006A +:044251000000000069 +:044252000000000068 +:044253000000000067 +:044254000000000066 +:044255000000000065 +:044256000000000064 +:044257000000000063 +:044258000000000062 +:044259000000000061 +:04425A000000000060 +:04425B00000000005F +:04425C00000000005E +:04425D00000000005D +:04425E00000000005C +:04425F00000000005B +:04426000000000005A +:044261000000000059 +:044262000000000058 +:044263000000000057 +:044264000000000056 +:044265000000000055 +:044266000000000054 +:044267000000000053 +:044268000000000052 +:044269000000000051 +:04426A000000000050 +:04426B00000000004F +:04426C00000000004E +:04426D00000000004D +:04426E00000000004C +:04426F00000000004B +:04427000000000004A +:044271000000000049 +:044272000000000048 +:044273000000000047 +:044274000000000046 +:044275000000000045 +:044276000000000044 +:044277000000000043 +:044278000000000042 +:044279000000000041 +:04427A000000000040 +:04427B00000000003F +:04427C00000000003E +:04427D00000000003D +:04427E00000000003C +:04427F00000000003B +:04428000000000003A +:044281000000000039 +:044282000000000038 +:044283000000000037 +:044284000000000036 +:044285000000000035 +:044286000000000034 +:044287000000000033 +:044288000000000032 +:044289000000000031 +:04428A000000000030 +:04428B00000000002F +:04428C00000000002E +:04428D00000000002D +:04428E00000000002C +:04428F00000000002B +:04429000000000002A +:044291000000000029 +:044292000000000028 +:044293000000000027 +:044294000000000026 +:044295000000000025 +:044296000000000024 +:044297000000000023 +:044298000000000022 +:044299000000000021 +:04429A000000000020 +:04429B00000000001F +:04429C00000000001E +:04429D00000000001D +:04429E00000000001C +:04429F00000000001B +:0442A000000000001A +:0442A1000000000019 +:0442A2000000000018 +:0442A3000000000017 +:0442A4000000000016 +:0442A5000000000015 +:0442A6000000000014 +:0442A7000000000013 +:0442A8000000000012 +:0442A9000000000011 +:0442AA000000000010 +:0442AB00000000000F +:0442AC00000000000E +:0442AD00000000000D +:0442AE00000000000C +:0442AF00000000000B +:0442B000000000000A +:0442B1000000000009 +:0442B2000000000008 +:0442B3000000000007 +:0442B4000000000006 +:0442B5000000000005 +:0442B6000000000004 +:0442B7000000000003 +:0442B8000000000002 +:0442B9000000000001 +:0442BA000000000000 +:0442BB0000000000FF +:0442BC0000000000FE +:0442BD0000000000FD +:0442BE0000000000FC +:0442BF0000000000FB +:0442C00000000000FA +:0442C10000000000F9 +:0442C20000000000F8 +:0442C30000000000F7 +:0442C40000000000F6 +:0442C50000000000F5 +:0442C60000000000F4 +:0442C70000000000F3 +:0442C80000000000F2 +:0442C90000000000F1 +:0442CA0000000000F0 +:0442CB0000000000EF +:0442CC0000000000EE +:0442CD0000000000ED +:0442CE0000000000EC +:0442CF0000000000EB +:0442D00000000000EA +:0442D10000000000E9 +:0442D20000000000E8 +:0442D30000000000E7 +:0442D40000000000E6 +:0442D50000000000E5 +:0442D60000000000E4 +:0442D70000000000E3 +:0442D80000000000E2 +:0442D90000000000E1 +:0442DA0000000000E0 +:0442DB0000000000DF +:0442DC0000000000DE +:0442DD0000000000DD +:0442DE0000000000DC +:0442DF0000000000DB +:0442E00000000000DA +:0442E10000000000D9 +:0442E20000000000D8 +:0442E30000000000D7 +:0442E40000000000D6 +:0442E50000000000D5 +:0442E60000000000D4 +:0442E70000000000D3 +:0442E80000000000D2 +:0442E90000000000D1 +:0442EA0000000000D0 +:0442EB0000000000CF +:0442EC0000000000CE +:0442ED0000000000CD +:0442EE0000000000CC +:0442EF0000000000CB +:0442F00000000000CA +:0442F10000000000C9 +:0442F20000000000C8 +:0442F30000000000C7 +:0442F40000000000C6 +:0442F50000000000C5 +:0442F60000000000C4 +:0442F70000000000C3 +:0442F80000000000C2 +:0442F90000000000C1 +:0442FA0000000000C0 +:0442FB0000000000BF +:0442FC0000000000BE +:0442FD0000000000BD +:0442FE0000000000BC +:0442FF0000000000BB +:0443000000000000B9 +:0443010000000000B8 +:0443020000000000B7 +:0443030000000000B6 +:0443040000000000B5 +:0443050000000000B4 +:0443060000000000B3 +:0443070000000000B2 +:0443080000000000B1 +:0443090000000000B0 +:04430A0000000000AF +:04430B0000000000AE +:04430C0000000000AD +:04430D0000000000AC +:04430E0000000000AB +:04430F0000000000AA +:0443100000000000A9 +:0443110000000000A8 +:0443120000000000A7 +:0443130000000000A6 +:0443140000000000A5 +:0443150000000000A4 +:0443160000000000A3 +:0443170000000000A2 +:0443180000000000A1 +:0443190000000000A0 +:04431A00000000009F +:04431B00000000009E +:04431C00000000009D +:04431D00000000009C +:04431E00000000009B +:04431F00000000009A +:044320000000000099 +:044321000000000098 +:044322000000000097 +:044323000000000096 +:044324000000000095 +:044325000000000094 +:044326000000000093 +:044327000000000092 +:044328000000000091 +:044329000000000090 +:04432A00000000008F +:04432B00000000008E +:04432C00000000008D +:04432D00000000008C +:04432E00000000008B +:04432F00000000008A +:044330000000000089 +:044331000000000088 +:044332000000000087 +:044333000000000086 +:044334000000000085 +:044335000000000084 +:044336000000000083 +:044337000000000082 +:044338000000000081 +:044339000000000080 +:04433A00000000007F +:04433B00000000007E +:04433C00000000007D +:04433D00000000007C +:04433E00000000007B +:04433F00000000007A +:044340000000000079 +:044341000000000078 +:044342000000000077 +:044343000000000076 +:044344000000000075 +:044345000000000074 +:044346000000000073 +:044347000000000072 +:044348000000000071 +:044349000000000070 +:04434A00000000006F +:04434B00000000006E +:04434C00000000006D +:04434D00000000006C +:04434E00000000006B +:04434F00000000006A +:044350000000000069 +:044351000000000068 +:044352000000000067 +:044353000000000066 +:044354000000000065 +:044355000000000064 +:044356000000000063 +:044357000000000062 +:044358000000000061 +:044359000000000060 +:04435A00000000005F +:04435B00000000005E +:04435C00000000005D +:04435D00000000005C +:04435E00000000005B +:04435F00000000005A +:044360000000000059 +:044361000000000058 +:044362000000000057 +:044363000000000056 +:044364000000000055 +:044365000000000054 +:044366000000000053 +:044367000000000052 +:044368000000000051 +:044369000000000050 +:04436A00000000004F +:04436B00000000004E +:04436C00000000004D +:04436D00000000004C +:04436E00000000004B +:04436F00000000004A +:044370000000000049 +:044371000000000048 +:044372000000000047 +:044373000000000046 +:044374000000000045 +:044375000000000044 +:044376000000000043 +:044377000000000042 +:044378000000000041 +:044379000000000040 +:04437A00000000003F +:04437B00000000003E +:04437C00000000003D +:04437D00000000003C +:04437E00000000003B +:04437F00000000003A +:044380000000000039 +:044381000000000038 +:044382000000000037 +:044383000000000036 +:044384000000000035 +:044385000000000034 +:044386000000000033 +:044387000000000032 +:044388000000000031 +:044389000000000030 +:04438A00000000002F +:04438B00000000002E +:04438C00000000002D +:04438D00000000002C +:04438E00000000002B +:04438F00000000002A +:044390000000000029 +:044391000000000028 +:044392000000000027 +:044393000000000026 +:044394000000000025 +:044395000000000024 +:044396000000000023 +:044397000000000022 +:044398000000000021 +:044399000000000020 +:04439A00000000001F +:04439B00000000001E +:04439C00000000001D +:04439D00000000001C +:04439E00000000001B +:04439F00000000001A +:0443A0000000000019 +:0443A1000000000018 +:0443A2000000000017 +:0443A3000000000016 +:0443A4000000000015 +:0443A5000000000014 +:0443A6000000000013 +:0443A7000000000012 +:0443A8000000000011 +:0443A9000000000010 +:0443AA00000000000F +:0443AB00000000000E +:0443AC00000000000D +:0443AD00000000000C +:0443AE00000000000B +:0443AF00000000000A +:0443B0000000000009 +:0443B1000000000008 +:0443B2000000000007 +:0443B3000000000006 +:0443B4000000000005 +:0443B5000000000004 +:0443B6000000000003 +:0443B7000000000002 +:0443B8000000000001 +:0443B9000000000000 +:0443BA0000000000FF +:0443BB0000000000FE +:0443BC0000000000FD +:0443BD0000000000FC +:0443BE0000000000FB +:0443BF0000000000FA +:0443C00000000000F9 +:0443C10000000000F8 +:0443C20000000000F7 +:0443C30000000000F6 +:0443C40000000000F5 +:0443C50000000000F4 +:0443C60000000000F3 +:0443C70000000000F2 +:0443C80000000000F1 +:0443C90000000000F0 +:0443CA0000000000EF +:0443CB0000000000EE +:0443CC0000000000ED +:0443CD0000000000EC +:0443CE0000000000EB +:0443CF0000000000EA +:0443D00000000000E9 +:0443D10000000000E8 +:0443D20000000000E7 +:0443D30000000000E6 +:0443D40000000000E5 +:0443D50000000000E4 +:0443D60000000000E3 +:0443D70000000000E2 +:0443D80000000000E1 +:0443D90000000000E0 +:0443DA0000000000DF +:0443DB0000000000DE +:0443DC0000000000DD +:0443DD0000000000DC +:0443DE0000000000DB +:0443DF0000000000DA +:0443E00000000000D9 +:0443E10000000000D8 +:0443E20000000000D7 +:0443E30000000000D6 +:0443E40000000000D5 +:0443E50000000000D4 +:0443E60000000000D3 +:0443E70000000000D2 +:0443E80000000000D1 +:0443E90000000000D0 +:0443EA0000000000CF +:0443EB0000000000CE +:0443EC0000000000CD +:0443ED0000000000CC +:0443EE0000000000CB +:0443EF0000000000CA +:0443F00000000000C9 +:0443F10000000000C8 +:0443F20000000000C7 +:0443F30000000000C6 +:0443F40000000000C5 +:0443F50000000000C4 +:0443F60000000000C3 +:0443F70000000000C2 +:0443F80000000000C1 +:0443F90000000000C0 +:0443FA0000000000BF +:0443FB0000000000BE +:0443FC0000000000BD +:0443FD0000000000BC +:0443FE0000000000BB +:0443FF0000000000BA +:0444000000000000B8 +:0444010000000000B7 +:0444020000000000B6 +:0444030000000000B5 +:0444040000000000B4 +:0444050000000000B3 +:0444060000000000B2 +:0444070000000000B1 +:0444080000000000B0 +:0444090000000000AF +:04440A0000000000AE +:04440B0000000000AD +:04440C0000000000AC +:04440D0000000000AB +:04440E0000000000AA +:04440F0000000000A9 +:0444100000000000A8 +:0444110000000000A7 +:0444120000000000A6 +:0444130000000000A5 +:0444140000000000A4 +:0444150000000000A3 +:0444160000000000A2 +:0444170000000000A1 +:0444180000000000A0 +:04441900000000009F +:04441A00000000009E +:04441B00000000009D +:04441C00000000009C +:04441D00000000009B +:04441E00000000009A +:04441F000000000099 +:044420000000000098 +:044421000000000097 +:044422000000000096 +:044423000000000095 +:044424000000000094 +:044425000000000093 +:044426000000000092 +:044427000000000091 +:044428000000000090 +:04442900000000008F +:04442A00000000008E +:04442B00000000008D +:04442C00000000008C +:04442D00000000008B +:04442E00000000008A +:04442F000000000089 +:044430000000000088 +:044431000000000087 +:044432000000000086 +:044433000000000085 +:044434000000000084 +:044435000000000083 +:044436000000000082 +:044437000000000081 +:044438000000000080 +:04443900000000007F +:04443A00000000007E +:04443B00000000007D +:04443C00000000007C +:04443D00000000007B +:04443E00000000007A +:04443F000000000079 +:044440000000000078 +:044441000000000077 +:044442000000000076 +:044443000000000075 +:044444000000000074 +:044445000000000073 +:044446000000000072 +:044447000000000071 +:044448000000000070 +:04444900000000006F +:04444A00000000006E +:04444B00000000006D +:04444C00000000006C +:04444D00000000006B +:04444E00000000006A +:04444F000000000069 +:044450000000000068 +:044451000000000067 +:044452000000000066 +:044453000000000065 +:044454000000000064 +:044455000000000063 +:044456000000000062 +:044457000000000061 +:044458000000000060 +:04445900000000005F +:04445A00000000005E +:04445B00000000005D +:04445C00000000005C +:04445D00000000005B +:04445E00000000005A +:04445F000000000059 +:044460000000000058 +:044461000000000057 +:044462000000000056 +:044463000000000055 +:044464000000000054 +:044465000000000053 +:044466000000000052 +:044467000000000051 +:044468000000000050 +:04446900000000004F +:04446A00000000004E +:04446B00000000004D +:04446C00000000004C +:04446D00000000004B +:04446E00000000004A +:04446F000000000049 +:044470000000000048 +:044471000000000047 +:044472000000000046 +:044473000000000045 +:044474000000000044 +:044475000000000043 +:044476000000000042 +:044477000000000041 +:044478000000000040 +:04447900000000003F +:04447A00000000003E +:04447B00000000003D +:04447C00000000003C +:04447D00000000003B +:04447E00000000003A +:04447F000000000039 +:044480000000000038 +:044481000000000037 +:044482000000000036 +:044483000000000035 +:044484000000000034 +:044485000000000033 +:044486000000000032 +:044487000000000031 +:044488000000000030 +:04448900000000002F +:04448A00000000002E +:04448B00000000002D +:04448C00000000002C +:04448D00000000002B +:04448E00000000002A +:04448F000000000029 +:044490000000000028 +:044491000000000027 +:044492000000000026 +:044493000000000025 +:044494000000000024 +:044495000000000023 +:044496000000000022 +:044497000000000021 +:044498000000000020 +:04449900000000001F +:04449A00000000001E +:04449B00000000001D +:04449C00000000001C +:04449D00000000001B +:04449E00000000001A +:04449F000000000019 +:0444A0000000000018 +:0444A1000000000017 +:0444A2000000000016 +:0444A3000000000015 +:0444A4000000000014 +:0444A5000000000013 +:0444A6000000000012 +:0444A7000000000011 +:0444A8000000000010 +:0444A900000000000F +:0444AA00000000000E +:0444AB00000000000D +:0444AC00000000000C +:0444AD00000000000B +:0444AE00000000000A +:0444AF000000000009 +:0444B0000000000008 +:0444B1000000000007 +:0444B2000000000006 +:0444B3000000000005 +:0444B4000000000004 +:0444B5000000000003 +:0444B6000000000002 +:0444B7000000000001 +:0444B8000000000000 +:0444B90000000000FF +:0444BA0000000000FE +:0444BB0000000000FD +:0444BC0000000000FC +:0444BD0000000000FB +:0444BE0000000000FA +:0444BF0000000000F9 +:0444C00000000000F8 +:0444C10000000000F7 +:0444C20000000000F6 +:0444C30000000000F5 +:0444C40000000000F4 +:0444C50000000000F3 +:0444C60000000000F2 +:0444C70000000000F1 +:0444C80000000000F0 +:0444C90000000000EF +:0444CA0000000000EE +:0444CB0000000000ED +:0444CC0000000000EC +:0444CD0000000000EB +:0444CE0000000000EA +:0444CF0000000000E9 +:0444D00000000000E8 +:0444D10000000000E7 +:0444D20000000000E6 +:0444D30000000000E5 +:0444D40000000000E4 +:0444D50000000000E3 +:0444D60000000000E2 +:0444D70000000000E1 +:0444D80000000000E0 +:0444D90000000000DF +:0444DA0000000000DE +:0444DB0000000000DD +:0444DC0000000000DC +:0444DD0000000000DB +:0444DE0000000000DA +:0444DF0000000000D9 +:0444E00000000000D8 +:0444E10000000000D7 +:0444E20000000000D6 +:0444E30000000000D5 +:0444E40000000000D4 +:0444E50000000000D3 +:0444E60000000000D2 +:0444E70000000000D1 +:0444E80000000000D0 +:0444E90000000000CF +:0444EA0000000000CE +:0444EB0000000000CD +:0444EC0000000000CC +:0444ED0000000000CB +:0444EE0000000000CA +:0444EF0000000000C9 +:0444F00000000000C8 +:0444F10000000000C7 +:0444F20000000000C6 +:0444F30000000000C5 +:0444F40000000000C4 +:0444F50000000000C3 +:0444F60000000000C2 +:0444F70000000000C1 +:0444F80000000000C0 +:0444F90000000000BF +:0444FA0000000000BE +:0444FB0000000000BD +:0444FC0000000000BC +:0444FD0000000000BB +:0444FE0000000000BA +:0444FF0000000000B9 +:0445000000000000B7 +:0445010000000000B6 +:0445020000000000B5 +:0445030000000000B4 +:0445040000000000B3 +:0445050000000000B2 +:0445060000000000B1 +:0445070000000000B0 +:0445080000000000AF +:0445090000000000AE +:04450A0000000000AD +:04450B0000000000AC +:04450C0000000000AB +:04450D0000000000AA +:04450E0000000000A9 +:04450F0000000000A8 +:0445100000000000A7 +:0445110000000000A6 +:0445120000000000A5 +:0445130000000000A4 +:0445140000000000A3 +:0445150000000000A2 +:0445160000000000A1 +:0445170000000000A0 +:04451800000000009F +:04451900000000009E +:04451A00000000009D +:04451B00000000009C +:04451C00000000009B +:04451D00000000009A +:04451E000000000099 +:04451F000000000098 +:044520000000000097 +:044521000000000096 +:044522000000000095 +:044523000000000094 +:044524000000000093 +:044525000000000092 +:044526000000000091 +:044527000000000090 +:04452800000000008F +:04452900000000008E +:04452A00000000008D +:04452B00000000008C +:04452C00000000008B +:04452D00000000008A +:04452E000000000089 +:04452F000000000088 +:044530000000000087 +:044531000000000086 +:044532000000000085 +:044533000000000084 +:044534000000000083 +:044535000000000082 +:044536000000000081 +:044537000000000080 +:04453800000000007F +:04453900000000007E +:04453A00000000007D +:04453B00000000007C +:04453C00000000007B +:04453D00000000007A +:04453E000000000079 +:04453F000000000078 +:044540000000000077 +:044541000000000076 +:044542000000000075 +:044543000000000074 +:044544000000000073 +:044545000000000072 +:044546000000000071 +:044547000000000070 +:04454800000000006F +:04454900000000006E +:04454A00000000006D +:04454B00000000006C +:04454C00000000006B +:04454D00000000006A +:04454E000000000069 +:04454F000000000068 +:044550000000000067 +:044551000000000066 +:044552000000000065 +:044553000000000064 +:044554000000000063 +:044555000000000062 +:044556000000000061 +:044557000000000060 +:04455800000000005F +:04455900000000005E +:04455A00000000005D +:04455B00000000005C +:04455C00000000005B +:04455D00000000005A +:04455E000000000059 +:04455F000000000058 +:044560000000000057 +:044561000000000056 +:044562000000000055 +:044563000000000054 +:044564000000000053 +:044565000000000052 +:044566000000000051 +:044567000000000050 +:04456800000000004F +:04456900000000004E +:04456A00000000004D +:04456B00000000004C +:04456C00000000004B +:04456D00000000004A +:04456E000000000049 +:04456F000000000048 +:044570000000000047 +:044571000000000046 +:044572000000000045 +:044573000000000044 +:044574000000000043 +:044575000000000042 +:044576000000000041 +:044577000000000040 +:04457800000000003F +:04457900000000003E +:04457A00000000003D +:04457B00000000003C +:04457C00000000003B +:04457D00000000003A +:04457E000000000039 +:04457F000000000038 +:044580000000000037 +:044581000000000036 +:044582000000000035 +:044583000000000034 +:044584000000000033 +:044585000000000032 +:044586000000000031 +:044587000000000030 +:04458800000000002F +:04458900000000002E +:04458A00000000002D +:04458B00000000002C +:04458C00000000002B +:04458D00000000002A +:04458E000000000029 +:04458F000000000028 +:044590000000000027 +:044591000000000026 +:044592000000000025 +:044593000000000024 +:044594000000000023 +:044595000000000022 +:044596000000000021 +:044597000000000020 +:04459800000000001F +:04459900000000001E +:04459A00000000001D +:04459B00000000001C +:04459C00000000001B +:04459D00000000001A +:04459E000000000019 +:04459F000000000018 +:0445A0000000000017 +:0445A1000000000016 +:0445A2000000000015 +:0445A3000000000014 +:0445A4000000000013 +:0445A5000000000012 +:0445A6000000000011 +:0445A7000000000010 +:0445A800000000000F +:0445A900000000000E +:0445AA00000000000D +:0445AB00000000000C +:0445AC00000000000B +:0445AD00000000000A +:0445AE000000000009 +:0445AF000000000008 +:0445B0000000000007 +:0445B1000000000006 +:0445B2000000000005 +:0445B3000000000004 +:0445B4000000000003 +:0445B5000000000002 +:0445B6000000000001 +:0445B7000000000000 +:0445B80000000000FF +:0445B90000000000FE +:0445BA0000000000FD +:0445BB0000000000FC +:0445BC0000000000FB +:0445BD0000000000FA +:0445BE0000000000F9 +:0445BF0000000000F8 +:0445C00000000000F7 +:0445C10000000000F6 +:0445C20000000000F5 +:0445C30000000000F4 +:0445C40000000000F3 +:0445C50000000000F2 +:0445C60000000000F1 +:0445C70000000000F0 +:0445C80000000000EF +:0445C90000000000EE +:0445CA0000000000ED +:0445CB0000000000EC +:0445CC0000000000EB +:0445CD0000000000EA +:0445CE0000000000E9 +:0445CF0000000000E8 +:0445D00000000000E7 +:0445D10000000000E6 +:0445D20000000000E5 +:0445D30000000000E4 +:0445D40000000000E3 +:0445D50000000000E2 +:0445D60000000000E1 +:0445D70000000000E0 +:0445D80000000000DF +:0445D90000000000DE +:0445DA0000000000DD +:0445DB0000000000DC +:0445DC0000000000DB +:0445DD0000000000DA +:0445DE0000000000D9 +:0445DF0000000000D8 +:0445E00000000000D7 +:0445E10000000000D6 +:0445E20000000000D5 +:0445E30000000000D4 +:0445E40000000000D3 +:0445E50000000000D2 +:0445E60000000000D1 +:0445E70000000000D0 +:0445E80000000000CF +:0445E90000000000CE +:0445EA0000000000CD +:0445EB0000000000CC +:0445EC0000000000CB +:0445ED0000000000CA +:0445EE0000000000C9 +:0445EF0000000000C8 +:0445F00000000000C7 +:0445F10000000000C6 +:0445F20000000000C5 +:0445F30000000000C4 +:0445F40000000000C3 +:0445F50000000000C2 +:0445F60000000000C1 +:0445F70000000000C0 +:0445F80000000000BF +:0445F90000000000BE +:0445FA0000000000BD +:0445FB0000000000BC +:0445FC0000000000BB +:0445FD0000000000BA +:0445FE0000000000B9 +:0445FF0000000000B8 +:0446000000000000B6 +:0446010000000000B5 +:0446020000000000B4 +:0446030000000000B3 +:0446040000000000B2 +:0446050000000000B1 +:0446060000000000B0 +:0446070000000000AF +:0446080000000000AE +:0446090000000000AD +:04460A0000000000AC +:04460B0000000000AB +:04460C0000000000AA +:04460D0000000000A9 +:04460E0000000000A8 +:04460F0000000000A7 +:0446100000000000A6 +:0446110000000000A5 +:0446120000000000A4 +:0446130000000000A3 +:0446140000000000A2 +:0446150000000000A1 +:0446160000000000A0 +:04461700000000009F +:04461800000000009E +:04461900000000009D +:04461A00000000009C +:04461B00000000009B +:04461C00000000009A +:04461D000000000099 +:04461E000000000098 +:04461F000000000097 +:044620000000000096 +:044621000000000095 +:044622000000000094 +:044623000000000093 +:044624000000000092 +:044625000000000091 +:044626000000000090 +:04462700000000008F +:04462800000000008E +:04462900000000008D +:04462A00000000008C +:04462B00000000008B +:04462C00000000008A +:04462D000000000089 +:04462E000000000088 +:04462F000000000087 +:044630000000000086 +:044631000000000085 +:044632000000000084 +:044633000000000083 +:044634000000000082 +:044635000000000081 +:044636000000000080 +:04463700000000007F +:04463800000000007E +:04463900000000007D +:04463A00000000007C +:04463B00000000007B +:04463C00000000007A +:04463D000000000079 +:04463E000000000078 +:04463F000000000077 +:044640000000000076 +:044641000000000075 +:044642000000000074 +:044643000000000073 +:044644000000000072 +:044645000000000071 +:044646000000000070 +:04464700000000006F +:04464800000000006E +:04464900000000006D +:04464A00000000006C +:04464B00000000006B +:04464C00000000006A +:04464D000000000069 +:04464E000000000068 +:04464F000000000067 +:044650000000000066 +:044651000000000065 +:044652000000000064 +:044653000000000063 +:044654000000000062 +:044655000000000061 +:044656000000000060 +:04465700000000005F +:04465800000000005E +:04465900000000005D +:04465A00000000005C +:04465B00000000005B +:04465C00000000005A +:04465D000000000059 +:04465E000000000058 +:04465F000000000057 +:044660000000000056 +:044661000000000055 +:044662000000000054 +:044663000000000053 +:044664000000000052 +:044665000000000051 +:044666000000000050 +:04466700000000004F +:04466800000000004E +:04466900000000004D +:04466A00000000004C +:04466B00000000004B +:04466C00000000004A +:04466D000000000049 +:04466E000000000048 +:04466F000000000047 +:044670000000000046 +:044671000000000045 +:044672000000000044 +:044673000000000043 +:044674000000000042 +:044675000000000041 +:044676000000000040 +:04467700000000003F +:04467800000000003E +:04467900000000003D +:04467A00000000003C +:04467B00000000003B +:04467C00000000003A +:04467D000000000039 +:04467E000000000038 +:04467F000000000037 +:044680000000000036 +:044681000000000035 +:044682000000000034 +:044683000000000033 +:044684000000000032 +:044685000000000031 +:044686000000000030 +:04468700000000002F +:04468800000000002E +:04468900000000002D +:04468A00000000002C +:04468B00000000002B +:04468C00000000002A +:04468D000000000029 +:04468E000000000028 +:04468F000000000027 +:044690000000000026 +:044691000000000025 +:044692000000000024 +:044693000000000023 +:044694000000000022 +:044695000000000021 +:044696000000000020 +:04469700000000001F +:04469800000000001E +:04469900000000001D +:04469A00000000001C +:04469B00000000001B +:04469C00000000001A +:04469D000000000019 +:04469E000000000018 +:04469F000000000017 +:0446A0000000000016 +:0446A1000000000015 +:0446A2000000000014 +:0446A3000000000013 +:0446A4000000000012 +:0446A5000000000011 +:0446A6000000000010 +:0446A700000000000F +:0446A800000000000E +:0446A900000000000D +:0446AA00000000000C +:0446AB00000000000B +:0446AC00000000000A +:0446AD000000000009 +:0446AE000000000008 +:0446AF000000000007 +:0446B0000000000006 +:0446B1000000000005 +:0446B2000000000004 +:0446B3000000000003 +:0446B4000000000002 +:0446B5000000000001 +:0446B6000000000000 +:0446B70000000000FF +:0446B80000000000FE +:0446B90000000000FD +:0446BA0000000000FC +:0446BB0000000000FB +:0446BC0000000000FA +:0446BD0000000000F9 +:0446BE0000000000F8 +:0446BF0000000000F7 +:0446C00000000000F6 +:0446C10000000000F5 +:0446C20000000000F4 +:0446C30000000000F3 +:0446C40000000000F2 +:0446C50000000000F1 +:0446C60000000000F0 +:0446C70000000000EF +:0446C80000000000EE +:0446C90000000000ED +:0446CA0000000000EC +:0446CB0000000000EB +:0446CC0000000000EA +:0446CD0000000000E9 +:0446CE0000000000E8 +:0446CF0000000000E7 +:0446D00000000000E6 +:0446D10000000000E5 +:0446D20000000000E4 +:0446D30000000000E3 +:0446D40000000000E2 +:0446D50000000000E1 +:0446D60000000000E0 +:0446D70000000000DF +:0446D80000000000DE +:0446D90000000000DD +:0446DA0000000000DC +:0446DB0000000000DB +:0446DC0000000000DA +:0446DD0000000000D9 +:0446DE0000000000D8 +:0446DF0000000000D7 +:0446E00000000000D6 +:0446E10000000000D5 +:0446E20000000000D4 +:0446E30000000000D3 +:0446E40000000000D2 +:0446E50000000000D1 +:0446E60000000000D0 +:0446E70000000000CF +:0446E80000000000CE +:0446E90000000000CD +:0446EA0000000000CC +:0446EB0000000000CB +:0446EC0000000000CA +:0446ED0000000000C9 +:0446EE0000000000C8 +:0446EF0000000000C7 +:0446F00000000000C6 +:0446F10000000000C5 +:0446F20000000000C4 +:0446F30000000000C3 +:0446F40000000000C2 +:0446F50000000000C1 +:0446F60000000000C0 +:0446F70000000000BF +:0446F80000000000BE +:0446F90000000000BD +:0446FA0000000000BC +:0446FB0000000000BB +:0446FC0000000000BA +:0446FD0000000000B9 +:0446FE0000000000B8 +:0446FF0000000000B7 +:0447000000000000B5 +:0447010000000000B4 +:0447020000000000B3 +:0447030000000000B2 +:0447040000000000B1 +:0447050000000000B0 +:0447060000000000AF +:0447070000000000AE +:0447080000000000AD +:0447090000000000AC +:04470A0000000000AB +:04470B0000000000AA +:04470C0000000000A9 +:04470D0000000000A8 +:04470E0000000000A7 +:04470F0000000000A6 +:0447100000000000A5 +:0447110000000000A4 +:0447120000000000A3 +:0447130000000000A2 +:0447140000000000A1 +:0447150000000000A0 +:04471600000000009F +:04471700000000009E +:04471800000000009D +:04471900000000009C +:04471A00000000009B +:04471B00000000009A +:04471C000000000099 +:04471D000000000098 +:04471E000000000097 +:04471F000000000096 +:044720000000000095 +:044721000000000094 +:044722000000000093 +:044723000000000092 +:044724000000000091 +:044725000000000090 +:04472600000000008F +:04472700000000008E +:04472800000000008D +:04472900000000008C +:04472A00000000008B +:04472B00000000008A +:04472C000000000089 +:04472D000000000088 +:04472E000000000087 +:04472F000000000086 +:044730000000000085 +:044731000000000084 +:044732000000000083 +:044733000000000082 +:044734000000000081 +:044735000000000080 +:04473600000000007F +:04473700000000007E +:04473800000000007D +:04473900000000007C +:04473A00000000007B +:04473B00000000007A +:04473C000000000079 +:04473D000000000078 +:04473E000000000077 +:04473F000000000076 +:044740000000000075 +:044741000000000074 +:044742000000000073 +:044743000000000072 +:044744000000000071 +:044745000000000070 +:04474600000000006F +:04474700000000006E +:04474800000000006D +:04474900000000006C +:04474A00000000006B +:04474B00000000006A +:04474C000000000069 +:04474D000000000068 +:04474E000000000067 +:04474F000000000066 +:044750000000000065 +:044751000000000064 +:044752000000000063 +:044753000000000062 +:044754000000000061 +:044755000000000060 +:04475600000000005F +:04475700000000005E +:04475800000000005D +:04475900000000005C +:04475A00000000005B +:04475B00000000005A +:04475C000000000059 +:04475D000000000058 +:04475E000000000057 +:04475F000000000056 +:044760000000000055 +:044761000000000054 +:044762000000000053 +:044763000000000052 +:044764000000000051 +:044765000000000050 +:04476600000000004F +:04476700000000004E +:04476800000000004D +:04476900000000004C +:04476A00000000004B +:04476B00000000004A +:04476C000000000049 +:04476D000000000048 +:04476E000000000047 +:04476F000000000046 +:044770000000000045 +:044771000000000044 +:044772000000000043 +:044773000000000042 +:044774000000000041 +:044775000000000040 +:04477600000000003F +:04477700000000003E +:04477800000000003D +:04477900000000003C +:04477A00000000003B +:04477B00000000003A +:04477C000000000039 +:04477D000000000038 +:04477E000000000037 +:04477F000000000036 +:044780000000000035 +:044781000000000034 +:044782000000000033 +:044783000000000032 +:044784000000000031 +:044785000000000030 +:04478600000000002F +:04478700000000002E +:04478800000000002D +:04478900000000002C +:04478A00000000002B +:04478B00000000002A +:04478C000000000029 +:04478D000000000028 +:04478E000000000027 +:04478F000000000026 +:044790000000000025 +:044791000000000024 +:044792000000000023 +:044793000000000022 +:044794000000000021 +:044795000000000020 +:04479600000000001F +:04479700000000001E +:04479800000000001D +:04479900000000001C +:04479A00000000001B +:04479B00000000001A +:04479C000000000019 +:04479D000000000018 +:04479E000000000017 +:04479F000000000016 +:0447A0000000000015 +:0447A1000000000014 +:0447A2000000000013 +:0447A3000000000012 +:0447A4000000000011 +:0447A5000000000010 +:0447A600000000000F +:0447A700000000000E +:0447A800000000000D +:0447A900000000000C +:0447AA00000000000B +:0447AB00000000000A +:0447AC000000000009 +:0447AD000000000008 +:0447AE000000000007 +:0447AF000000000006 +:0447B0000000000005 +:0447B1000000000004 +:0447B2000000000003 +:0447B3000000000002 +:0447B4000000000001 +:0447B5000000000000 +:0447B60000000000FF +:0447B70000000000FE +:0447B80000000000FD +:0447B90000000000FC +:0447BA0000000000FB +:0447BB0000000000FA +:0447BC0000000000F9 +:0447BD0000000000F8 +:0447BE0000000000F7 +:0447BF0000000000F6 +:0447C00000000000F5 +:0447C10000000000F4 +:0447C20000000000F3 +:0447C30000000000F2 +:0447C40000000000F1 +:0447C50000000000F0 +:0447C60000000000EF +:0447C70000000000EE +:0447C80000000000ED +:0447C90000000000EC +:0447CA0000000000EB +:0447CB0000000000EA +:0447CC0000000000E9 +:0447CD0000000000E8 +:0447CE0000000000E7 +:0447CF0000000000E6 +:0447D00000000000E5 +:0447D10000000000E4 +:0447D20000000000E3 +:0447D30000000000E2 +:0447D40000000000E1 +:0447D50000000000E0 +:0447D60000000000DF +:0447D70000000000DE +:0447D80000000000DD +:0447D90000000000DC +:0447DA0000000000DB +:0447DB0000000000DA +:0447DC0000000000D9 +:0447DD0000000000D8 +:0447DE0000000000D7 +:0447DF0000000000D6 +:0447E00000000000D5 +:0447E10000000000D4 +:0447E20000000000D3 +:0447E30000000000D2 +:0447E40000000000D1 +:0447E50000000000D0 +:0447E60000000000CF +:0447E70000000000CE +:0447E80000000000CD +:0447E90000000000CC +:0447EA0000000000CB +:0447EB0000000000CA +:0447EC0000000000C9 +:0447ED0000000000C8 +:0447EE0000000000C7 +:0447EF0000000000C6 +:0447F00000000000C5 +:0447F10000000000C4 +:0447F20000000000C3 +:0447F30000000000C2 +:0447F40000000000C1 +:0447F50000000000C0 +:0447F60000000000BF +:0447F70000000000BE +:0447F80000000000BD +:0447F90000000000BC +:0447FA0000000000BB +:0447FB0000000000BA +:0447FC0000000000B9 +:0447FD0000000000B8 +:0447FE0000000000B7 +:0447FF0000000000B6 +:0448000000000000B4 +:0448010000000000B3 +:0448020000000000B2 +:0448030000000000B1 +:0448040000000000B0 +:0448050000000000AF +:0448060000000000AE +:0448070000000000AD +:0448080000000000AC +:0448090000000000AB +:04480A0000000000AA +:04480B0000000000A9 +:04480C0000000000A8 +:04480D0000000000A7 +:04480E0000000000A6 +:04480F0000000000A5 +:0448100000000000A4 +:0448110000000000A3 +:0448120000000000A2 +:0448130000000000A1 +:0448140000000000A0 +:04481500000000009F +:04481600000000009E +:04481700000000009D +:04481800000000009C +:04481900000000009B +:04481A00000000009A +:04481B000000000099 +:04481C000000000098 +:04481D000000000097 +:04481E000000000096 +:04481F000000000095 +:044820000000000094 +:044821000000000093 +:044822000000000092 +:044823000000000091 +:044824000000000090 +:04482500000000008F +:04482600000000008E +:04482700000000008D +:04482800000000008C +:04482900000000008B +:04482A00000000008A +:04482B000000000089 +:04482C000000000088 +:04482D000000000087 +:04482E000000000086 +:04482F000000000085 +:044830000000000084 +:044831000000000083 +:044832000000000082 +:044833000000000081 +:044834000000000080 +:04483500000000007F +:04483600000000007E +:04483700000000007D +:04483800000000007C +:04483900000000007B +:04483A00000000007A +:04483B000000000079 +:04483C000000000078 +:04483D000000000077 +:04483E000000000076 +:04483F000000000075 +:044840000000000074 +:044841000000000073 +:044842000000000072 +:044843000000000071 +:044844000000000070 +:04484500000000006F +:04484600000000006E +:04484700000000006D +:04484800000000006C +:04484900000000006B +:04484A00000000006A +:04484B000000000069 +:04484C000000000068 +:04484D000000000067 +:04484E000000000066 +:04484F000000000065 +:044850000000000064 +:044851000000000063 +:044852000000000062 +:044853000000000061 +:044854000000000060 +:04485500000000005F +:04485600000000005E +:04485700000000005D +:04485800000000005C +:04485900000000005B +:04485A00000000005A +:04485B000000000059 +:04485C000000000058 +:04485D000000000057 +:04485E000000000056 +:04485F000000000055 +:044860000000000054 +:044861000000000053 +:044862000000000052 +:044863000000000051 +:044864000000000050 +:04486500000000004F +:04486600000000004E +:04486700000000004D +:04486800000000004C +:04486900000000004B +:04486A00000000004A +:04486B000000000049 +:04486C000000000048 +:04486D000000000047 +:04486E000000000046 +:04486F000000000045 +:044870000000000044 +:044871000000000043 +:044872000000000042 +:044873000000000041 +:044874000000000040 +:04487500000000003F +:04487600000000003E +:04487700000000003D +:04487800000000003C +:04487900000000003B +:04487A00000000003A +:04487B000000000039 +:04487C000000000038 +:04487D000000000037 +:04487E000000000036 +:04487F000000000035 +:044880000000000034 +:044881000000000033 +:044882000000000032 +:044883000000000031 +:044884000000000030 +:04488500000000002F +:04488600000000002E +:04488700000000002D +:04488800000000002C +:04488900000000002B +:04488A00000000002A +:04488B000000000029 +:04488C000000000028 +:04488D000000000027 +:04488E000000000026 +:04488F000000000025 +:044890000000000024 +:044891000000000023 +:044892000000000022 +:044893000000000021 +:044894000000000020 +:04489500000000001F +:04489600000000001E +:04489700000000001D +:04489800000000001C +:04489900000000001B +:04489A00000000001A +:04489B000000000019 +:04489C000000000018 +:04489D000000000017 +:04489E000000000016 +:04489F000000000015 +:0448A0000000000014 +:0448A1000000000013 +:0448A2000000000012 +:0448A3000000000011 +:0448A4000000000010 +:0448A500000000000F +:0448A600000000000E +:0448A700000000000D +:0448A800000000000C +:0448A900000000000B +:0448AA00000000000A +:0448AB000000000009 +:0448AC000000000008 +:0448AD000000000007 +:0448AE000000000006 +:0448AF000000000005 +:0448B0000000000004 +:0448B1000000000003 +:0448B2000000000002 +:0448B3000000000001 +:0448B4000000000000 +:0448B50000000000FF +:0448B60000000000FE +:0448B70000000000FD +:0448B80000000000FC +:0448B90000000000FB +:0448BA0000000000FA +:0448BB0000000000F9 +:0448BC0000000000F8 +:0448BD0000000000F7 +:0448BE0000000000F6 +:0448BF0000000000F5 +:0448C00000000000F4 +:0448C10000000000F3 +:0448C20000000000F2 +:0448C30000000000F1 +:0448C40000000000F0 +:0448C50000000000EF +:0448C60000000000EE +:0448C70000000000ED +:0448C80000000000EC +:0448C90000000000EB +:0448CA0000000000EA +:0448CB0000000000E9 +:0448CC0000000000E8 +:0448CD0000000000E7 +:0448CE0000000000E6 +:0448CF0000000000E5 +:0448D00000000000E4 +:0448D10000000000E3 +:0448D20000000000E2 +:0448D30000000000E1 +:0448D40000000000E0 +:0448D50000000000DF +:0448D60000000000DE +:0448D70000000000DD +:0448D80000000000DC +:0448D90000000000DB +:0448DA0000000000DA +:0448DB0000000000D9 +:0448DC0000000000D8 +:0448DD0000000000D7 +:0448DE0000000000D6 +:0448DF0000000000D5 +:0448E00000000000D4 +:0448E10000000000D3 +:0448E20000000000D2 +:0448E30000000000D1 +:0448E40000000000D0 +:0448E50000000000CF +:0448E60000000000CE +:0448E70000000000CD +:0448E80000000000CC +:0448E90000000000CB +:0448EA0000000000CA +:0448EB0000000000C9 +:0448EC0000000000C8 +:0448ED0000000000C7 +:0448EE0000000000C6 +:0448EF0000000000C5 +:0448F00000000000C4 +:0448F10000000000C3 +:0448F20000000000C2 +:0448F30000000000C1 +:0448F40000000000C0 +:0448F50000000000BF +:0448F60000000000BE +:0448F70000000000BD +:0448F80000000000BC +:0448F90000000000BB +:0448FA0000000000BA +:0448FB0000000000B9 +:0448FC0000000000B8 +:0448FD0000000000B7 +:0448FE0000000000B6 +:0448FF0000000000B5 +:0449000000000000B3 +:0449010000000000B2 +:0449020000000000B1 +:0449030000000000B0 +:0449040000000000AF +:0449050000000000AE +:0449060000000000AD +:0449070000000000AC +:0449080000000000AB +:0449090000000000AA +:04490A0000000000A9 +:04490B0000000000A8 +:04490C0000000000A7 +:04490D0000000000A6 +:04490E0000000000A5 +:04490F0000000000A4 +:0449100000000000A3 +:0449110000000000A2 +:0449120000000000A1 +:0449130000000000A0 +:04491400000000009F +:04491500000000009E +:04491600000000009D +:04491700000000009C +:04491800000000009B +:04491900000000009A +:04491A000000000099 +:04491B000000000098 +:04491C000000000097 +:04491D000000000096 +:04491E000000000095 +:04491F000000000094 +:044920000000000093 +:044921000000000092 +:044922000000000091 +:044923000000000090 +:04492400000000008F +:04492500000000008E +:04492600000000008D +:04492700000000008C +:04492800000000008B +:04492900000000008A +:04492A000000000089 +:04492B000000000088 +:04492C000000000087 +:04492D000000000086 +:04492E000000000085 +:04492F000000000084 +:044930000000000083 +:044931000000000082 +:044932000000000081 +:044933000000000080 +:04493400000000007F +:04493500000000007E +:04493600000000007D +:04493700000000007C +:04493800000000007B +:04493900000000007A +:04493A000000000079 +:04493B000000000078 +:04493C000000000077 +:04493D000000000076 +:04493E000000000075 +:04493F000000000074 +:044940000000000073 +:044941000000000072 +:044942000000000071 +:044943000000000070 +:04494400000000006F +:04494500000000006E +:04494600000000006D +:04494700000000006C +:04494800000000006B +:04494900000000006A +:04494A000000000069 +:04494B000000000068 +:04494C000000000067 +:04494D000000000066 +:04494E000000000065 +:04494F000000000064 +:044950000000000063 +:044951000000000062 +:044952000000000061 +:044953000000000060 +:04495400000000005F +:04495500000000005E +:04495600000000005D +:04495700000000005C +:04495800000000005B +:04495900000000005A +:04495A000000000059 +:04495B000000000058 +:04495C000000000057 +:04495D000000000056 +:04495E000000000055 +:04495F000000000054 +:044960000000000053 +:044961000000000052 +:044962000000000051 +:044963000000000050 +:04496400000000004F +:04496500000000004E +:04496600000000004D +:04496700000000004C +:04496800000000004B +:04496900000000004A +:04496A000000000049 +:04496B000000000048 +:04496C000000000047 +:04496D000000000046 +:04496E000000000045 +:04496F000000000044 +:044970000000000043 +:044971000000000042 +:044972000000000041 +:044973000000000040 +:04497400000000003F +:04497500000000003E +:04497600000000003D +:04497700000000003C +:04497800000000003B +:04497900000000003A +:04497A000000000039 +:04497B000000000038 +:04497C000000000037 +:04497D000000000036 +:04497E000000000035 +:04497F000000000034 +:044980000000000033 +:044981000000000032 +:044982000000000031 +:044983000000000030 +:04498400000000002F +:04498500000000002E +:04498600000000002D +:04498700000000002C +:04498800000000002B +:04498900000000002A +:04498A000000000029 +:04498B000000000028 +:04498C000000000027 +:04498D000000000026 +:04498E000000000025 +:04498F000000000024 +:044990000000000023 +:044991000000000022 +:044992000000000021 +:044993000000000020 +:04499400000000001F +:04499500000000001E +:04499600000000001D +:04499700000000001C +:04499800000000001B +:04499900000000001A +:04499A000000000019 +:04499B000000000018 +:04499C000000000017 +:04499D000000000016 +:04499E000000000015 +:04499F000000000014 +:0449A0000000000013 +:0449A1000000000012 +:0449A2000000000011 +:0449A3000000000010 +:0449A400000000000F +:0449A500000000000E +:0449A600000000000D +:0449A700000000000C +:0449A800000000000B +:0449A900000000000A +:0449AA000000000009 +:0449AB000000000008 +:0449AC000000000007 +:0449AD000000000006 +:0449AE000000000005 +:0449AF000000000004 +:0449B0000000000003 +:0449B1000000000002 +:0449B2000000000001 +:0449B3000000000000 +:0449B40000000000FF +:0449B50000000000FE +:0449B60000000000FD +:0449B70000000000FC +:0449B80000000000FB +:0449B90000000000FA +:0449BA0000000000F9 +:0449BB0000000000F8 +:0449BC0000000000F7 +:0449BD0000000000F6 +:0449BE0000000000F5 +:0449BF0000000000F4 +:0449C00000000000F3 +:0449C10000000000F2 +:0449C20000000000F1 +:0449C30000000000F0 +:0449C40000000000EF +:0449C50000000000EE +:0449C60000000000ED +:0449C70000000000EC +:0449C80000000000EB +:0449C90000000000EA +:0449CA0000000000E9 +:0449CB0000000000E8 +:0449CC0000000000E7 +:0449CD0000000000E6 +:0449CE0000000000E5 +:0449CF0000000000E4 +:0449D00000000000E3 +:0449D10000000000E2 +:0449D20000000000E1 +:0449D30000000000E0 +:0449D40000000000DF +:0449D50000000000DE +:0449D60000000000DD +:0449D70000000000DC +:0449D80000000000DB +:0449D90000000000DA +:0449DA0000000000D9 +:0449DB0000000000D8 +:0449DC0000000000D7 +:0449DD0000000000D6 +:0449DE0000000000D5 +:0449DF0000000000D4 +:0449E00000000000D3 +:0449E10000000000D2 +:0449E20000000000D1 +:0449E30000000000D0 +:0449E40000000000CF +:0449E50000000000CE +:0449E60000000000CD +:0449E70000000000CC +:0449E80000000000CB +:0449E90000000000CA +:0449EA0000000000C9 +:0449EB0000000000C8 +:0449EC0000000000C7 +:0449ED0000000000C6 +:0449EE0000000000C5 +:0449EF0000000000C4 +:0449F00000000000C3 +:0449F10000000000C2 +:0449F20000000000C1 +:0449F30000000000C0 +:0449F40000000000BF +:0449F50000000000BE +:0449F60000000000BD +:0449F70000000000BC +:0449F80000000000BB +:0449F90000000000BA +:0449FA0000000000B9 +:0449FB0000000000B8 +:0449FC0000000000B7 +:0449FD0000000000B6 +:0449FE0000000000B5 +:0449FF0000000000B4 +:044A000000000000B2 +:044A010000000000B1 +:044A020000000000B0 +:044A030000000000AF +:044A040000000000AE +:044A050000000000AD +:044A060000000000AC +:044A070000000000AB +:044A080000000000AA +:044A090000000000A9 +:044A0A0000000000A8 +:044A0B0000000000A7 +:044A0C0000000000A6 +:044A0D0000000000A5 +:044A0E0000000000A4 +:044A0F0000000000A3 +:044A100000000000A2 +:044A110000000000A1 +:044A120000000000A0 +:044A1300000000009F +:044A1400000000009E +:044A1500000000009D +:044A1600000000009C +:044A1700000000009B +:044A1800000000009A +:044A19000000000099 +:044A1A000000000098 +:044A1B000000000097 +:044A1C000000000096 +:044A1D000000000095 +:044A1E000000000094 +:044A1F000000000093 +:044A20000000000092 +:044A21000000000091 +:044A22000000000090 +:044A2300000000008F +:044A2400000000008E +:044A2500000000008D +:044A2600000000008C +:044A2700000000008B +:044A2800000000008A +:044A29000000000089 +:044A2A000000000088 +:044A2B000000000087 +:044A2C000000000086 +:044A2D000000000085 +:044A2E000000000084 +:044A2F000000000083 +:044A30000000000082 +:044A31000000000081 +:044A32000000000080 +:044A3300000000007F +:044A3400000000007E +:044A3500000000007D +:044A3600000000007C +:044A3700000000007B +:044A3800000000007A +:044A39000000000079 +:044A3A000000000078 +:044A3B000000000077 +:044A3C000000000076 +:044A3D000000000075 +:044A3E000000000074 +:044A3F000000000073 +:044A40000000000072 +:044A41000000000071 +:044A42000000000070 +:044A4300000000006F +:044A4400000000006E +:044A4500000000006D +:044A4600000000006C +:044A4700000000006B +:044A4800000000006A +:044A49000000000069 +:044A4A000000000068 +:044A4B000000000067 +:044A4C000000000066 +:044A4D000000000065 +:044A4E000000000064 +:044A4F000000000063 +:044A50000000000062 +:044A51000000000061 +:044A52000000000060 +:044A5300000000005F +:044A5400000000005E +:044A5500000000005D +:044A5600000000005C +:044A5700000000005B +:044A5800000000005A +:044A59000000000059 +:044A5A000000000058 +:044A5B000000000057 +:044A5C000000000056 +:044A5D000000000055 +:044A5E000000000054 +:044A5F000000000053 +:044A60000000000052 +:044A61000000000051 +:044A62000000000050 +:044A6300000000004F +:044A6400000000004E +:044A6500000000004D +:044A6600000000004C +:044A6700000000004B +:044A6800000000004A +:044A69000000000049 +:044A6A000000000048 +:044A6B000000000047 +:044A6C000000000046 +:044A6D000000000045 +:044A6E000000000044 +:044A6F000000000043 +:044A70000000000042 +:044A71000000000041 +:044A72000000000040 +:044A7300000000003F +:044A7400000000003E +:044A7500000000003D +:044A7600000000003C +:044A7700000000003B +:044A7800000000003A +:044A79000000000039 +:044A7A000000000038 +:044A7B000000000037 +:044A7C000000000036 +:044A7D000000000035 +:044A7E000000000034 +:044A7F000000000033 +:044A80000000000032 +:044A81000000000031 +:044A82000000000030 +:044A8300000000002F +:044A8400000000002E +:044A8500000000002D +:044A8600000000002C +:044A8700000000002B +:044A8800000000002A +:044A89000000000029 +:044A8A000000000028 +:044A8B000000000027 +:044A8C000000000026 +:044A8D000000000025 +:044A8E000000000024 +:044A8F000000000023 +:044A90000000000022 +:044A91000000000021 +:044A92000000000020 +:044A9300000000001F +:044A9400000000001E +:044A9500000000001D +:044A9600000000001C +:044A9700000000001B +:044A9800000000001A +:044A99000000000019 +:044A9A000000000018 +:044A9B000000000017 +:044A9C000000000016 +:044A9D000000000015 +:044A9E000000000014 +:044A9F000000000013 +:044AA0000000000012 +:044AA1000000000011 +:044AA2000000000010 +:044AA300000000000F +:044AA400000000000E +:044AA500000000000D +:044AA600000000000C +:044AA700000000000B +:044AA800000000000A +:044AA9000000000009 +:044AAA000000000008 +:044AAB000000000007 +:044AAC000000000006 +:044AAD000000000005 +:044AAE000000000004 +:044AAF000000000003 +:044AB0000000000002 +:044AB1000000000001 +:044AB2000000000000 +:044AB30000000000FF +:044AB40000000000FE +:044AB50000000000FD +:044AB60000000000FC +:044AB70000000000FB +:044AB80000000000FA +:044AB90000000000F9 +:044ABA0000000000F8 +:044ABB0000000000F7 +:044ABC0000000000F6 +:044ABD0000000000F5 +:044ABE0000000000F4 +:044ABF0000000000F3 +:044AC00000000000F2 +:044AC10000000000F1 +:044AC20000000000F0 +:044AC30000000000EF +:044AC40000000000EE +:044AC50000000000ED +:044AC60000000000EC +:044AC70000000000EB +:044AC80000000000EA +:044AC90000000000E9 +:044ACA0000000000E8 +:044ACB0000000000E7 +:044ACC0000000000E6 +:044ACD0000000000E5 +:044ACE0000000000E4 +:044ACF0000000000E3 +:044AD00000000000E2 +:044AD10000000000E1 +:044AD20000000000E0 +:044AD30000000000DF +:044AD40000000000DE +:044AD50000000000DD +:044AD60000000000DC +:044AD70000000000DB +:044AD80000000000DA +:044AD90000000000D9 +:044ADA0000000000D8 +:044ADB0000000000D7 +:044ADC0000000000D6 +:044ADD0000000000D5 +:044ADE0000000000D4 +:044ADF0000000000D3 +:044AE00000000000D2 +:044AE10000000000D1 +:044AE20000000000D0 +:044AE30000000000CF +:044AE40000000000CE +:044AE50000000000CD +:044AE60000000000CC +:044AE70000000000CB +:044AE80000000000CA +:044AE90000000000C9 +:044AEA0000000000C8 +:044AEB0000000000C7 +:044AEC0000000000C6 +:044AED0000000000C5 +:044AEE0000000000C4 +:044AEF0000000000C3 +:044AF00000000000C2 +:044AF10000000000C1 +:044AF20000000000C0 +:044AF30000000000BF +:044AF40000000000BE +:044AF50000000000BD +:044AF60000000000BC +:044AF70000000000BB +:044AF80000000000BA +:044AF90000000000B9 +:044AFA0000000000B8 +:044AFB0000000000B7 +:044AFC0000000000B6 +:044AFD0000000000B5 +:044AFE0000000000B4 +:044AFF0000000000B3 +:044B000000000000B1 +:044B010000000000B0 +:044B020000000000AF +:044B030000000000AE +:044B040000000000AD +:044B050000000000AC +:044B060000000000AB +:044B070000000000AA +:044B080000000000A9 +:044B090000000000A8 +:044B0A0000000000A7 +:044B0B0000000000A6 +:044B0C0000000000A5 +:044B0D0000000000A4 +:044B0E0000000000A3 +:044B0F0000000000A2 +:044B100000000000A1 +:044B110000000000A0 +:044B1200000000009F +:044B1300000000009E +:044B1400000000009D +:044B1500000000009C +:044B1600000000009B +:044B1700000000009A +:044B18000000000099 +:044B19000000000098 +:044B1A000000000097 +:044B1B000000000096 +:044B1C000000000095 +:044B1D000000000094 +:044B1E000000000093 +:044B1F000000000092 +:044B20000000000091 +:044B21000000000090 +:044B2200000000008F +:044B2300000000008E +:044B2400000000008D +:044B2500000000008C +:044B2600000000008B +:044B2700000000008A +:044B28000000000089 +:044B29000000000088 +:044B2A000000000087 +:044B2B000000000086 +:044B2C000000000085 +:044B2D000000000084 +:044B2E000000000083 +:044B2F000000000082 +:044B30000000000081 +:044B31000000000080 +:044B3200000000007F +:044B3300000000007E +:044B3400000000007D +:044B3500000000007C +:044B3600000000007B +:044B3700000000007A +:044B38000000000079 +:044B39000000000078 +:044B3A000000000077 +:044B3B000000000076 +:044B3C000000000075 +:044B3D000000000074 +:044B3E000000000073 +:044B3F000000000072 +:044B40000000000071 +:044B41000000000070 +:044B4200000000006F +:044B4300000000006E +:044B4400000000006D +:044B4500000000006C +:044B4600000000006B +:044B4700000000006A +:044B48000000000069 +:044B49000000000068 +:044B4A000000000067 +:044B4B000000000066 +:044B4C000000000065 +:044B4D000000000064 +:044B4E000000000063 +:044B4F000000000062 +:044B50000000000061 +:044B51000000000060 +:044B5200000000005F +:044B5300000000005E +:044B5400000000005D +:044B5500000000005C +:044B5600000000005B +:044B5700000000005A +:044B58000000000059 +:044B59000000000058 +:044B5A000000000057 +:044B5B000000000056 +:044B5C000000000055 +:044B5D000000000054 +:044B5E000000000053 +:044B5F000000000052 +:044B60000000000051 +:044B61000000000050 +:044B6200000000004F +:044B6300000000004E +:044B6400000000004D +:044B6500000000004C +:044B6600000000004B +:044B6700000000004A +:044B68000000000049 +:044B69000000000048 +:044B6A000000000047 +:044B6B000000000046 +:044B6C000000000045 +:044B6D000000000044 +:044B6E000000000043 +:044B6F000000000042 +:044B70000000000041 +:044B71000000000040 +:044B7200000000003F +:044B7300000000003E +:044B7400000000003D +:044B7500000000003C +:044B7600000000003B +:044B7700000000003A +:044B78000000000039 +:044B79000000000038 +:044B7A000000000037 +:044B7B000000000036 +:044B7C000000000035 +:044B7D000000000034 +:044B7E000000000033 +:044B7F000000000032 +:044B80000000000031 +:044B81000000000030 +:044B8200000000002F +:044B8300000000002E +:044B8400000000002D +:044B8500000000002C +:044B8600000000002B +:044B8700000000002A +:044B88000000000029 +:044B89000000000028 +:044B8A000000000027 +:044B8B000000000026 +:044B8C000000000025 +:044B8D000000000024 +:044B8E000000000023 +:044B8F000000000022 +:044B90000000000021 +:044B91000000000020 +:044B9200000000001F +:044B9300000000001E +:044B9400000000001D +:044B9500000000001C +:044B9600000000001B +:044B9700000000001A +:044B98000000000019 +:044B99000000000018 +:044B9A000000000017 +:044B9B000000000016 +:044B9C000000000015 +:044B9D000000000014 +:044B9E000000000013 +:044B9F000000000012 +:044BA0000000000011 +:044BA1000000000010 +:044BA200000000000F +:044BA300000000000E +:044BA400000000000D +:044BA500000000000C +:044BA600000000000B +:044BA700000000000A +:044BA8000000000009 +:044BA9000000000008 +:044BAA000000000007 +:044BAB000000000006 +:044BAC000000000005 +:044BAD000000000004 +:044BAE000000000003 +:044BAF000000000002 +:044BB0000000000001 +:044BB1000000000000 +:044BB20000000000FF +:044BB30000000000FE +:044BB40000000000FD +:044BB50000000000FC +:044BB60000000000FB +:044BB70000000000FA +:044BB80000000000F9 +:044BB90000000000F8 +:044BBA0000000000F7 +:044BBB0000000000F6 +:044BBC0000000000F5 +:044BBD0000000000F4 +:044BBE0000000000F3 +:044BBF0000000000F2 +:044BC00000000000F1 +:044BC10000000000F0 +:044BC20000000000EF +:044BC30000000000EE +:044BC40000000000ED +:044BC50000000000EC +:044BC60000000000EB +:044BC70000000000EA +:044BC80000000000E9 +:044BC90000000000E8 +:044BCA0000000000E7 +:044BCB0000000000E6 +:044BCC0000000000E5 +:044BCD0000000000E4 +:044BCE0000000000E3 +:044BCF0000000000E2 +:044BD00000000000E1 +:044BD10000000000E0 +:044BD20000000000DF +:044BD30000000000DE +:044BD40000000000DD +:044BD50000000000DC +:044BD60000000000DB +:044BD70000000000DA +:044BD80000000000D9 +:044BD90000000000D8 +:044BDA0000000000D7 +:044BDB0000000000D6 +:044BDC0000000000D5 +:044BDD0000000000D4 +:044BDE0000000000D3 +:044BDF0000000000D2 +:044BE00000000000D1 +:044BE10000000000D0 +:044BE20000000000CF +:044BE30000000000CE +:044BE40000000000CD +:044BE50000000000CC +:044BE60000000000CB +:044BE70000000000CA +:044BE80000000000C9 +:044BE90000000000C8 +:044BEA0000000000C7 +:044BEB0000000000C6 +:044BEC0000000000C5 +:044BED0000000000C4 +:044BEE0000000000C3 +:044BEF0000000000C2 +:044BF00000000000C1 +:044BF10000000000C0 +:044BF20000000000BF +:044BF30000000000BE +:044BF40000000000BD +:044BF50000000000BC +:044BF60000000000BB +:044BF70000000000BA +:044BF80000000000B9 +:044BF90000000000B8 +:044BFA0000000000B7 +:044BFB0000000000B6 +:044BFC0000000000B5 +:044BFD0000000000B4 +:044BFE0000000000B3 +:044BFF0000000000B2 +:044C000000000000B0 +:044C010000000000AF +:044C020000000000AE +:044C030000000000AD +:044C040000000000AC +:044C050000000000AB +:044C060000000000AA +:044C070000000000A9 +:044C080000000000A8 +:044C090000000000A7 +:044C0A0000000000A6 +:044C0B0000000000A5 +:044C0C0000000000A4 +:044C0D0000000000A3 +:044C0E0000000000A2 +:044C0F0000000000A1 +:044C100000000000A0 +:044C1100000000009F +:044C1200000000009E +:044C1300000000009D +:044C1400000000009C +:044C1500000000009B +:044C1600000000009A +:044C17000000000099 +:044C18000000000098 +:044C19000000000097 +:044C1A000000000096 +:044C1B000000000095 +:044C1C000000000094 +:044C1D000000000093 +:044C1E000000000092 +:044C1F000000000091 +:044C20000000000090 +:044C2100000000008F +:044C2200000000008E +:044C2300000000008D +:044C2400000000008C +:044C2500000000008B +:044C2600000000008A +:044C27000000000089 +:044C28000000000088 +:044C29000000000087 +:044C2A000000000086 +:044C2B000000000085 +:044C2C000000000084 +:044C2D000000000083 +:044C2E000000000082 +:044C2F000000000081 +:044C30000000000080 +:044C3100000000007F +:044C3200000000007E +:044C3300000000007D +:044C3400000000007C +:044C3500000000007B +:044C3600000000007A +:044C37000000000079 +:044C38000000000078 +:044C39000000000077 +:044C3A000000000076 +:044C3B000000000075 +:044C3C000000000074 +:044C3D000000000073 +:044C3E000000000072 +:044C3F000000000071 +:044C40000000000070 +:044C4100000000006F +:044C4200000000006E +:044C4300000000006D +:044C4400000000006C +:044C4500000000006B +:044C4600000000006A +:044C47000000000069 +:044C48000000000068 +:044C49000000000067 +:044C4A000000000066 +:044C4B000000000065 +:044C4C000000000064 +:044C4D000000000063 +:044C4E000000000062 +:044C4F000000000061 +:044C50000000000060 +:044C5100000000005F +:044C5200000000005E +:044C5300000000005D +:044C5400000000005C +:044C5500000000005B +:044C5600000000005A +:044C57000000000059 +:044C58000000000058 +:044C59000000000057 +:044C5A000000000056 +:044C5B000000000055 +:044C5C000000000054 +:044C5D000000000053 +:044C5E000000000052 +:044C5F000000000051 +:044C60000000000050 +:044C6100000000004F +:044C6200000000004E +:044C6300000000004D +:044C6400000000004C +:044C6500000000004B +:044C6600000000004A +:044C67000000000049 +:044C68000000000048 +:044C69000000000047 +:044C6A000000000046 +:044C6B000000000045 +:044C6C000000000044 +:044C6D000000000043 +:044C6E000000000042 +:044C6F000000000041 +:044C70000000000040 +:044C7100000000003F +:044C7200000000003E +:044C7300000000003D +:044C7400000000003C +:044C7500000000003B +:044C7600000000003A +:044C77000000000039 +:044C78000000000038 +:044C79000000000037 +:044C7A000000000036 +:044C7B000000000035 +:044C7C000000000034 +:044C7D000000000033 +:044C7E000000000032 +:044C7F000000000031 +:044C80000000000030 +:044C8100000000002F +:044C8200000000002E +:044C8300000000002D +:044C8400000000002C +:044C8500000000002B +:044C8600000000002A +:044C87000000000029 +:044C88000000000028 +:044C89000000000027 +:044C8A000000000026 +:044C8B000000000025 +:044C8C000000000024 +:044C8D000000000023 +:044C8E000000000022 +:044C8F000000000021 +:044C90000000000020 +:044C9100000000001F +:044C9200000000001E +:044C9300000000001D +:044C9400000000001C +:044C9500000000001B +:044C9600000000001A +:044C97000000000019 +:044C98000000000018 +:044C99000000000017 +:044C9A000000000016 +:044C9B000000000015 +:044C9C000000000014 +:044C9D000000000013 +:044C9E000000000012 +:044C9F000000000011 +:044CA0000000000010 +:044CA100000000000F +:044CA200000000000E +:044CA300000000000D +:044CA400000000000C +:044CA500000000000B +:044CA600000000000A +:044CA7000000000009 +:044CA8000000000008 +:044CA9000000000007 +:044CAA000000000006 +:044CAB000000000005 +:044CAC000000000004 +:044CAD000000000003 +:044CAE000000000002 +:044CAF000000000001 +:044CB0000000000000 +:044CB10000000000FF +:044CB20000000000FE +:044CB30000000000FD +:044CB40000000000FC +:044CB50000000000FB +:044CB60000000000FA +:044CB70000000000F9 +:044CB80000000000F8 +:044CB90000000000F7 +:044CBA0000000000F6 +:044CBB0000000000F5 +:044CBC0000000000F4 +:044CBD0000000000F3 +:044CBE0000000000F2 +:044CBF0000000000F1 +:044CC00000000000F0 +:044CC10000000000EF +:044CC20000000000EE +:044CC30000000000ED +:044CC40000000000EC +:044CC50000000000EB +:044CC60000000000EA +:044CC70000000000E9 +:044CC80000000000E8 +:044CC90000000000E7 +:044CCA0000000000E6 +:044CCB0000000000E5 +:044CCC0000000000E4 +:044CCD0000000000E3 +:044CCE0000000000E2 +:044CCF0000000000E1 +:044CD00000000000E0 +:044CD10000000000DF +:044CD20000000000DE +:044CD30000000000DD +:044CD40000000000DC +:044CD50000000000DB +:044CD60000000000DA +:044CD70000000000D9 +:044CD80000000000D8 +:044CD90000000000D7 +:044CDA0000000000D6 +:044CDB0000000000D5 +:044CDC0000000000D4 +:044CDD0000000000D3 +:044CDE0000000000D2 +:044CDF0000000000D1 +:044CE00000000000D0 +:044CE10000000000CF +:044CE20000000000CE +:044CE30000000000CD +:044CE40000000000CC +:044CE50000000000CB +:044CE60000000000CA +:044CE70000000000C9 +:044CE80000000000C8 +:044CE90000000000C7 +:044CEA0000000000C6 +:044CEB0000000000C5 +:044CEC0000000000C4 +:044CED0000000000C3 +:044CEE0000000000C2 +:044CEF0000000000C1 +:044CF00000000000C0 +:044CF10000000000BF +:044CF20000000000BE +:044CF30000000000BD +:044CF40000000000BC +:044CF50000000000BB +:044CF60000000000BA +:044CF70000000000B9 +:044CF80000000000B8 +:044CF90000000000B7 +:044CFA0000000000B6 +:044CFB0000000000B5 +:044CFC0000000000B4 +:044CFD0000000000B3 +:044CFE0000000000B2 +:044CFF0000000000B1 +:044D000000000000AF +:044D010000000000AE +:044D020000000000AD +:044D030000000000AC +:044D040000000000AB +:044D050000000000AA +:044D060000000000A9 +:044D070000000000A8 +:044D080000000000A7 +:044D090000000000A6 +:044D0A0000000000A5 +:044D0B0000000000A4 +:044D0C0000000000A3 +:044D0D0000000000A2 +:044D0E0000000000A1 +:044D0F0000000000A0 +:044D1000000000009F +:044D1100000000009E +:044D1200000000009D +:044D1300000000009C +:044D1400000000009B +:044D1500000000009A +:044D16000000000099 +:044D17000000000098 +:044D18000000000097 +:044D19000000000096 +:044D1A000000000095 +:044D1B000000000094 +:044D1C000000000093 +:044D1D000000000092 +:044D1E000000000091 +:044D1F000000000090 +:044D2000000000008F +:044D2100000000008E +:044D2200000000008D +:044D2300000000008C +:044D2400000000008B +:044D2500000000008A +:044D26000000000089 +:044D27000000000088 +:044D28000000000087 +:044D29000000000086 +:044D2A000000000085 +:044D2B000000000084 +:044D2C000000000083 +:044D2D000000000082 +:044D2E000000000081 +:044D2F000000000080 +:044D3000000000007F +:044D3100000000007E +:044D3200000000007D +:044D3300000000007C +:044D3400000000007B +:044D3500000000007A +:044D36000000000079 +:044D37000000000078 +:044D38000000000077 +:044D39000000000076 +:044D3A000000000075 +:044D3B000000000074 +:044D3C000000000073 +:044D3D000000000072 +:044D3E000000000071 +:044D3F000000000070 +:044D4000000000006F +:044D4100000000006E +:044D4200000000006D +:044D4300000000006C +:044D4400000000006B +:044D4500000000006A +:044D46000000000069 +:044D47000000000068 +:044D48000000000067 +:044D49000000000066 +:044D4A000000000065 +:044D4B000000000064 +:044D4C000000000063 +:044D4D000000000062 +:044D4E000000000061 +:044D4F000000000060 +:044D5000000000005F +:044D5100000000005E +:044D5200000000005D +:044D5300000000005C +:044D5400000000005B +:044D5500000000005A +:044D56000000000059 +:044D57000000000058 +:044D58000000000057 +:044D59000000000056 +:044D5A000000000055 +:044D5B000000000054 +:044D5C000000000053 +:044D5D000000000052 +:044D5E000000000051 +:044D5F000000000050 +:044D6000000000004F +:044D6100000000004E +:044D6200000000004D +:044D6300000000004C +:044D6400000000004B +:044D6500000000004A +:044D66000000000049 +:044D67000000000048 +:044D68000000000047 +:044D69000000000046 +:044D6A000000000045 +:044D6B000000000044 +:044D6C000000000043 +:044D6D000000000042 +:044D6E000000000041 +:044D6F000000000040 +:044D7000000000003F +:044D7100000000003E +:044D7200000000003D +:044D7300000000003C +:044D7400000000003B +:044D7500000000003A +:044D76000000000039 +:044D77000000000038 +:044D78000000000037 +:044D79000000000036 +:044D7A000000000035 +:044D7B000000000034 +:044D7C000000000033 +:044D7D000000000032 +:044D7E000000000031 +:044D7F000000000030 +:044D8000000000002F +:044D8100000000002E +:044D8200000000002D +:044D8300000000002C +:044D8400000000002B +:044D8500000000002A +:044D86000000000029 +:044D87000000000028 +:044D88000000000027 +:044D89000000000026 +:044D8A000000000025 +:044D8B000000000024 +:044D8C000000000023 +:044D8D000000000022 +:044D8E000000000021 +:044D8F000000000020 +:044D9000000000001F +:044D9100000000001E +:044D9200000000001D +:044D9300000000001C +:044D9400000000001B +:044D9500000000001A +:044D96000000000019 +:044D97000000000018 +:044D98000000000017 +:044D99000000000016 +:044D9A000000000015 +:044D9B000000000014 +:044D9C000000000013 +:044D9D000000000012 +:044D9E000000000011 +:044D9F000000000010 +:044DA000000000000F +:044DA100000000000E +:044DA200000000000D +:044DA300000000000C +:044DA400000000000B +:044DA500000000000A +:044DA6000000000009 +:044DA7000000000008 +:044DA8000000000007 +:044DA9000000000006 +:044DAA000000000005 +:044DAB000000000004 +:044DAC000000000003 +:044DAD000000000002 +:044DAE000000000001 +:044DAF000000000000 +:044DB00000000000FF +:044DB10000000000FE +:044DB20000000000FD +:044DB30000000000FC +:044DB40000000000FB +:044DB50000000000FA +:044DB60000000000F9 +:044DB70000000000F8 +:044DB80000000000F7 +:044DB90000000000F6 +:044DBA0000000000F5 +:044DBB0000000000F4 +:044DBC0000000000F3 +:044DBD0000000000F2 +:044DBE0000000000F1 +:044DBF0000000000F0 +:044DC00000000000EF +:044DC10000000000EE +:044DC20000000000ED +:044DC30000000000EC +:044DC40000000000EB +:044DC50000000000EA +:044DC60000000000E9 +:044DC70000000000E8 +:044DC80000000000E7 +:044DC90000000000E6 +:044DCA0000000000E5 +:044DCB0000000000E4 +:044DCC0000000000E3 +:044DCD0000000000E2 +:044DCE0000000000E1 +:044DCF0000000000E0 +:044DD00000000000DF +:044DD10000000000DE +:044DD20000000000DD +:044DD30000000000DC +:044DD40000000000DB +:044DD50000000000DA +:044DD60000000000D9 +:044DD70000000000D8 +:044DD80000000000D7 +:044DD90000000000D6 +:044DDA0000000000D5 +:044DDB0000000000D4 +:044DDC0000000000D3 +:044DDD0000000000D2 +:044DDE0000000000D1 +:044DDF0000000000D0 +:044DE00000000000CF +:044DE10000000000CE +:044DE20000000000CD +:044DE30000000000CC +:044DE40000000000CB +:044DE50000000000CA +:044DE60000000000C9 +:044DE70000000000C8 +:044DE80000000000C7 +:044DE90000000000C6 +:044DEA0000000000C5 +:044DEB0000000000C4 +:044DEC0000000000C3 +:044DED0000000000C2 +:044DEE0000000000C1 +:044DEF0000000000C0 +:044DF00000000000BF +:044DF10000000000BE +:044DF20000000000BD +:044DF30000000000BC +:044DF40000000000BB +:044DF50000000000BA +:044DF60000000000B9 +:044DF70000000000B8 +:044DF80000000000B7 +:044DF90000000000B6 +:044DFA0000000000B5 +:044DFB0000000000B4 +:044DFC0000000000B3 +:044DFD0000000000B2 +:044DFE0000000000B1 +:044DFF0000000000B0 +:044E000000000000AE +:044E010000000000AD +:044E020000000000AC +:044E030000000000AB +:044E040000000000AA +:044E050000000000A9 +:044E060000000000A8 +:044E070000000000A7 +:044E080000000000A6 +:044E090000000000A5 +:044E0A0000000000A4 +:044E0B0000000000A3 +:044E0C0000000000A2 +:044E0D0000000000A1 +:044E0E0000000000A0 +:044E0F00000000009F +:044E1000000000009E +:044E1100000000009D +:044E1200000000009C +:044E1300000000009B +:044E1400000000009A +:044E15000000000099 +:044E16000000000098 +:044E17000000000097 +:044E18000000000096 +:044E19000000000095 +:044E1A000000000094 +:044E1B000000000093 +:044E1C000000000092 +:044E1D000000000091 +:044E1E000000000090 +:044E1F00000000008F +:044E2000000000008E +:044E2100000000008D +:044E2200000000008C +:044E2300000000008B +:044E2400000000008A +:044E25000000000089 +:044E26000000000088 +:044E27000000000087 +:044E28000000000086 +:044E29000000000085 +:044E2A000000000084 +:044E2B000000000083 +:044E2C000000000082 +:044E2D000000000081 +:044E2E000000000080 +:044E2F00000000007F +:044E3000000000007E +:044E3100000000007D +:044E3200000000007C +:044E3300000000007B +:044E3400000000007A +:044E35000000000079 +:044E36000000000078 +:044E37000000000077 +:044E38000000000076 +:044E39000000000075 +:044E3A000000000074 +:044E3B000000000073 +:044E3C000000000072 +:044E3D000000000071 +:044E3E000000000070 +:044E3F00000000006F +:044E4000000000006E +:044E4100000000006D +:044E4200000000006C +:044E4300000000006B +:044E4400000000006A +:044E45000000000069 +:044E46000000000068 +:044E47000000000067 +:044E48000000000066 +:044E49000000000065 +:044E4A000000000064 +:044E4B000000000063 +:044E4C000000000062 +:044E4D000000000061 +:044E4E000000000060 +:044E4F00000000005F +:044E5000000000005E +:044E5100000000005D +:044E5200000000005C +:044E5300000000005B +:044E5400000000005A +:044E55000000000059 +:044E56000000000058 +:044E57000000000057 +:044E58000000000056 +:044E59000000000055 +:044E5A000000000054 +:044E5B000000000053 +:044E5C000000000052 +:044E5D000000000051 +:044E5E000000000050 +:044E5F00000000004F +:044E6000000000004E +:044E6100000000004D +:044E6200000000004C +:044E6300000000004B +:044E6400000000004A +:044E65000000000049 +:044E66000000000048 +:044E67000000000047 +:044E68000000000046 +:044E69000000000045 +:044E6A000000000044 +:044E6B000000000043 +:044E6C000000000042 +:044E6D000000000041 +:044E6E000000000040 +:044E6F00000000003F +:044E7000000000003E +:044E7100000000003D +:044E7200000000003C +:044E7300000000003B +:044E7400000000003A +:044E75000000000039 +:044E76000000000038 +:044E77000000000037 +:044E78000000000036 +:044E79000000000035 +:044E7A000000000034 +:044E7B000000000033 +:044E7C000000000032 +:044E7D000000000031 +:044E7E000000000030 +:044E7F00000000002F +:044E8000000000002E +:044E8100000000002D +:044E8200000000002C +:044E8300000000002B +:044E8400000000002A +:044E85000000000029 +:044E86000000000028 +:044E87000000000027 +:044E88000000000026 +:044E89000000000025 +:044E8A000000000024 +:044E8B000000000023 +:044E8C000000000022 +:044E8D000000000021 +:044E8E000000000020 +:044E8F00000000001F +:044E9000000000001E +:044E9100000000001D +:044E9200000000001C +:044E9300000000001B +:044E9400000000001A +:044E95000000000019 +:044E96000000000018 +:044E97000000000017 +:044E98000000000016 +:044E99000000000015 +:044E9A000000000014 +:044E9B000000000013 +:044E9C000000000012 +:044E9D000000000011 +:044E9E000000000010 +:044E9F00000000000F +:044EA000000000000E +:044EA100000000000D +:044EA200000000000C +:044EA300000000000B +:044EA400000000000A +:044EA5000000000009 +:044EA6000000000008 +:044EA7000000000007 +:044EA8000000000006 +:044EA9000000000005 +:044EAA000000000004 +:044EAB000000000003 +:044EAC000000000002 +:044EAD000000000001 +:044EAE000000000000 +:044EAF0000000000FF +:044EB00000000000FE +:044EB10000000000FD +:044EB20000000000FC +:044EB30000000000FB +:044EB40000000000FA +:044EB50000000000F9 +:044EB60000000000F8 +:044EB70000000000F7 +:044EB80000000000F6 +:044EB90000000000F5 +:044EBA0000000000F4 +:044EBB0000000000F3 +:044EBC0000000000F2 +:044EBD0000000000F1 +:044EBE0000000000F0 +:044EBF0000000000EF +:044EC00000000000EE +:044EC10000000000ED +:044EC20000000000EC +:044EC30000000000EB +:044EC40000000000EA +:044EC50000000000E9 +:044EC60000000000E8 +:044EC70000000000E7 +:044EC80000000000E6 +:044EC90000000000E5 +:044ECA0000000000E4 +:044ECB0000000000E3 +:044ECC0000000000E2 +:044ECD0000000000E1 +:044ECE0000000000E0 +:044ECF0000000000DF +:044ED00000000000DE +:044ED10000000000DD +:044ED20000000000DC +:044ED30000000000DB +:044ED40000000000DA +:044ED50000000000D9 +:044ED60000000000D8 +:044ED70000000000D7 +:044ED80000000000D6 +:044ED90000000000D5 +:044EDA0000000000D4 +:044EDB0000000000D3 +:044EDC0000000000D2 +:044EDD0000000000D1 +:044EDE0000000000D0 +:044EDF0000000000CF +:044EE00000000000CE +:044EE10000000000CD +:044EE20000000000CC +:044EE30000000000CB +:044EE40000000000CA +:044EE50000000000C9 +:044EE60000000000C8 +:044EE70000000000C7 +:044EE80000000000C6 +:044EE90000000000C5 +:044EEA0000000000C4 +:044EEB0000000000C3 +:044EEC0000000000C2 +:044EED0000000000C1 +:044EEE0000000000C0 +:044EEF0000000000BF +:044EF00000000000BE +:044EF10000000000BD +:044EF20000000000BC +:044EF30000000000BB +:044EF40000000000BA +:044EF50000000000B9 +:044EF60000000000B8 +:044EF70000000000B7 +:044EF80000000000B6 +:044EF90000000000B5 +:044EFA0000000000B4 +:044EFB0000000000B3 +:044EFC0000000000B2 +:044EFD0000000000B1 +:044EFE0000000000B0 +:044EFF0000000000AF +:044F000000000000AD +:044F010000000000AC +:044F020000000000AB +:044F030000000000AA +:044F040000000000A9 +:044F050000000000A8 +:044F060000000000A7 +:044F070000000000A6 +:044F080000000000A5 +:044F090000000000A4 +:044F0A0000000000A3 +:044F0B0000000000A2 +:044F0C0000000000A1 +:044F0D0000000000A0 +:044F0E00000000009F +:044F0F00000000009E +:044F1000000000009D +:044F1100000000009C +:044F1200000000009B +:044F1300000000009A +:044F14000000000099 +:044F15000000000098 +:044F16000000000097 +:044F17000000000096 +:044F18000000000095 +:044F19000000000094 +:044F1A000000000093 +:044F1B000000000092 +:044F1C000000000091 +:044F1D000000000090 +:044F1E00000000008F +:044F1F00000000008E +:044F2000000000008D +:044F2100000000008C +:044F2200000000008B +:044F2300000000008A +:044F24000000000089 +:044F25000000000088 +:044F26000000000087 +:044F27000000000086 +:044F28000000000085 +:044F29000000000084 +:044F2A000000000083 +:044F2B000000000082 +:044F2C000000000081 +:044F2D000000000080 +:044F2E00000000007F +:044F2F00000000007E +:044F3000000000007D +:044F3100000000007C +:044F3200000000007B +:044F3300000000007A +:044F34000000000079 +:044F35000000000078 +:044F36000000000077 +:044F37000000000076 +:044F38000000000075 +:044F39000000000074 +:044F3A000000000073 +:044F3B000000000072 +:044F3C000000000071 +:044F3D000000000070 +:044F3E00000000006F +:044F3F00000000006E +:044F4000000000006D +:044F4100000000006C +:044F4200000000006B +:044F4300000000006A +:044F44000000000069 +:044F45000000000068 +:044F46000000000067 +:044F47000000000066 +:044F48000000000065 +:044F49000000000064 +:044F4A000000000063 +:044F4B000000000062 +:044F4C000000000061 +:044F4D000000000060 +:044F4E00000000005F +:044F4F00000000005E +:044F5000000000005D +:044F5100000000005C +:044F5200000000005B +:044F5300000000005A +:044F54000000000059 +:044F55000000000058 +:044F56000000000057 +:044F57000000000056 +:044F58000000000055 +:044F59000000000054 +:044F5A000000000053 +:044F5B000000000052 +:044F5C000000000051 +:044F5D000000000050 +:044F5E00000000004F +:044F5F00000000004E +:044F6000000000004D +:044F6100000000004C +:044F6200000000004B +:044F6300000000004A +:044F64000000000049 +:044F65000000000048 +:044F66000000000047 +:044F67000000000046 +:044F68000000000045 +:044F69000000000044 +:044F6A000000000043 +:044F6B000000000042 +:044F6C000000000041 +:044F6D000000000040 +:044F6E00000000003F +:044F6F00000000003E +:044F7000000000003D +:044F7100000000003C +:044F7200000000003B +:044F7300000000003A +:044F74000000000039 +:044F75000000000038 +:044F76000000000037 +:044F77000000000036 +:044F78000000000035 +:044F79000000000034 +:044F7A000000000033 +:044F7B000000000032 +:044F7C000000000031 +:044F7D000000000030 +:044F7E00000000002F +:044F7F00000000002E +:044F8000000000002D +:044F8100000000002C +:044F8200000000002B +:044F8300000000002A +:044F84000000000029 +:044F85000000000028 +:044F86000000000027 +:044F87000000000026 +:044F88000000000025 +:044F89000000000024 +:044F8A000000000023 +:044F8B000000000022 +:044F8C000000000021 +:044F8D000000000020 +:044F8E00000000001F +:044F8F00000000001E +:044F9000000000001D +:044F9100000000001C +:044F9200000000001B +:044F9300000000001A +:044F94000000000019 +:044F95000000000018 +:044F96000000000017 +:044F97000000000016 +:044F98000000000015 +:044F99000000000014 +:044F9A000000000013 +:044F9B000000000012 +:044F9C000000000011 +:044F9D000000000010 +:044F9E00000000000F +:044F9F00000000000E +:044FA000000000000D +:044FA100000000000C +:044FA200000000000B +:044FA300000000000A +:044FA4000000000009 +:044FA5000000000008 +:044FA6000000000007 +:044FA7000000000006 +:044FA8000000000005 +:044FA9000000000004 +:044FAA000000000003 +:044FAB000000000002 +:044FAC000000000001 +:044FAD000000000000 +:044FAE0000000000FF +:044FAF0000000000FE +:044FB00000000000FD +:044FB10000000000FC +:044FB20000000000FB +:044FB30000000000FA +:044FB40000000000F9 +:044FB50000000000F8 +:044FB60000000000F7 +:044FB70000000000F6 +:044FB80000000000F5 +:044FB90000000000F4 +:044FBA0000000000F3 +:044FBB0000000000F2 +:044FBC0000000000F1 +:044FBD0000000000F0 +:044FBE0000000000EF +:044FBF0000000000EE +:044FC00000000000ED +:044FC10000000000EC +:044FC20000000000EB +:044FC30000000000EA +:044FC40000000000E9 +:044FC50000000000E8 +:044FC60000000000E7 +:044FC70000000000E6 +:044FC80000000000E5 +:044FC90000000000E4 +:044FCA0000000000E3 +:044FCB0000000000E2 +:044FCC0000000000E1 +:044FCD0000000000E0 +:044FCE0000000000DF +:044FCF0000000000DE +:044FD00000000000DD +:044FD10000000000DC +:044FD20000000000DB +:044FD30000000000DA +:044FD40000000000D9 +:044FD50000000000D8 +:044FD60000000000D7 +:044FD70000000000D6 +:044FD80000000000D5 +:044FD90000000000D4 +:044FDA0000000000D3 +:044FDB0000000000D2 +:044FDC0000000000D1 +:044FDD0000000000D0 +:044FDE0000000000CF +:044FDF0000000000CE +:044FE00000000000CD +:044FE10000000000CC +:044FE20000000000CB +:044FE30000000000CA +:044FE40000000000C9 +:044FE50000000000C8 +:044FE60000000000C7 +:044FE70000000000C6 +:044FE80000000000C5 +:044FE90000000000C4 +:044FEA0000000000C3 +:044FEB0000000000C2 +:044FEC0000000000C1 +:044FED0000000000C0 +:044FEE0000000000BF +:044FEF0000000000BE +:044FF00000000000BD +:044FF10000000000BC +:044FF20000000000BB +:044FF30000000000BA +:044FF40000000000B9 +:044FF50000000000B8 +:044FF60000000000B7 +:044FF70000000000B6 +:044FF80000000000B5 +:044FF90000000000B4 +:044FFA0000000000B3 +:044FFB0000000000B2 +:044FFC0000000000B1 +:044FFD0000000000B0 +:044FFE0000000000AF +:044FFF0000000000AE +:0450000000000000AC +:0450010000000000AB +:0450020000000000AA +:0450030000000000A9 +:0450040000000000A8 +:0450050000000000A7 +:0450060000000000A6 +:0450070000000000A5 +:0450080000000000A4 +:0450090000000000A3 +:04500A0000000000A2 +:04500B0000000000A1 +:04500C0000000000A0 +:04500D00000000009F +:04500E00000000009E +:04500F00000000009D +:04501000000000009C +:04501100000000009B +:04501200000000009A +:045013000000000099 +:045014000000000098 +:045015000000000097 +:045016000000000096 +:045017000000000095 +:045018000000000094 +:045019000000000093 +:04501A000000000092 +:04501B000000000091 +:04501C000000000090 +:04501D00000000008F +:04501E00000000008E +:04501F00000000008D +:04502000000000008C +:04502100000000008B +:04502200000000008A +:045023000000000089 +:045024000000000088 +:045025000000000087 +:045026000000000086 +:045027000000000085 +:045028000000000084 +:045029000000000083 +:04502A000000000082 +:04502B000000000081 +:04502C000000000080 +:04502D00000000007F +:04502E00000000007E +:04502F00000000007D +:04503000000000007C +:04503100000000007B +:04503200000000007A +:045033000000000079 +:045034000000000078 +:045035000000000077 +:045036000000000076 +:045037000000000075 +:045038000000000074 +:045039000000000073 +:04503A000000000072 +:04503B000000000071 +:04503C000000000070 +:04503D00000000006F +:04503E00000000006E +:04503F00000000006D +:04504000000000006C +:04504100000000006B +:04504200000000006A +:045043000000000069 +:045044000000000068 +:045045000000000067 +:045046000000000066 +:045047000000000065 +:045048000000000064 +:045049000000000063 +:04504A000000000062 +:04504B000000000061 +:04504C000000000060 +:04504D00000000005F +:04504E00000000005E +:04504F00000000005D +:04505000000000005C +:04505100000000005B +:04505200000000005A +:045053000000000059 +:045054000000000058 +:045055000000000057 +:045056000000000056 +:045057000000000055 +:045058000000000054 +:045059000000000053 +:04505A000000000052 +:04505B000000000051 +:04505C000000000050 +:04505D00000000004F +:04505E00000000004E +:04505F00000000004D +:04506000000000004C +:04506100000000004B +:04506200000000004A +:045063000000000049 +:045064000000000048 +:045065000000000047 +:045066000000000046 +:045067000000000045 +:045068000000000044 +:045069000000000043 +:04506A000000000042 +:04506B000000000041 +:04506C000000000040 +:04506D00000000003F +:04506E00000000003E +:04506F00000000003D +:04507000000000003C +:04507100000000003B +:04507200000000003A +:045073000000000039 +:045074000000000038 +:045075000000000037 +:045076000000000036 +:045077000000000035 +:045078000000000034 +:045079000000000033 +:04507A000000000032 +:04507B000000000031 +:04507C000000000030 +:04507D00000000002F +:04507E00000000002E +:04507F00000000002D +:04508000000000002C +:04508100000000002B +:04508200000000002A +:045083000000000029 +:045084000000000028 +:045085000000000027 +:045086000000000026 +:045087000000000025 +:045088000000000024 +:045089000000000023 +:04508A000000000022 +:04508B000000000021 +:04508C000000000020 +:04508D00000000001F +:04508E00000000001E +:04508F00000000001D +:04509000000000001C +:04509100000000001B +:04509200000000001A +:045093000000000019 +:045094000000000018 +:045095000000000017 +:045096000000000016 +:045097000000000015 +:045098000000000014 +:045099000000000013 +:04509A000000000012 +:04509B000000000011 +:04509C000000000010 +:04509D00000000000F +:04509E00000000000E +:04509F00000000000D +:0450A000000000000C +:0450A100000000000B +:0450A200000000000A +:0450A3000000000009 +:0450A4000000000008 +:0450A5000000000007 +:0450A6000000000006 +:0450A7000000000005 +:0450A8000000000004 +:0450A9000000000003 +:0450AA000000000002 +:0450AB000000000001 +:0450AC000000000000 +:0450AD0000000000FF +:0450AE0000000000FE +:0450AF0000000000FD +:0450B00000000000FC +:0450B10000000000FB +:0450B20000000000FA +:0450B30000000000F9 +:0450B40000000000F8 +:0450B50000000000F7 +:0450B60000000000F6 +:0450B70000000000F5 +:0450B80000000000F4 +:0450B90000000000F3 +:0450BA0000000000F2 +:0450BB0000000000F1 +:0450BC0000000000F0 +:0450BD0000000000EF +:0450BE0000000000EE +:0450BF0000000000ED +:0450C00000000000EC +:0450C10000000000EB +:0450C20000000000EA +:0450C30000000000E9 +:0450C40000000000E8 +:0450C50000000000E7 +:0450C60000000000E6 +:0450C70000000000E5 +:0450C80000000000E4 +:0450C90000000000E3 +:0450CA0000000000E2 +:0450CB0000000000E1 +:0450CC0000000000E0 +:0450CD0000000000DF +:0450CE0000000000DE +:0450CF0000000000DD +:0450D00000000000DC +:0450D10000000000DB +:0450D20000000000DA +:0450D30000000000D9 +:0450D40000000000D8 +:0450D50000000000D7 +:0450D60000000000D6 +:0450D70000000000D5 +:0450D80000000000D4 +:0450D90000000000D3 +:0450DA0000000000D2 +:0450DB0000000000D1 +:0450DC0000000000D0 +:0450DD0000000000CF +:0450DE0000000000CE +:0450DF0000000000CD +:0450E00000000000CC +:0450E10000000000CB +:0450E20000000000CA +:0450E30000000000C9 +:0450E40000000000C8 +:0450E50000000000C7 +:0450E60000000000C6 +:0450E70000000000C5 +:0450E80000000000C4 +:0450E90000000000C3 +:0450EA0000000000C2 +:0450EB0000000000C1 +:0450EC0000000000C0 +:0450ED0000000000BF +:0450EE0000000000BE +:0450EF0000000000BD +:0450F00000000000BC +:0450F10000000000BB +:0450F20000000000BA +:0450F30000000000B9 +:0450F40000000000B8 +:0450F50000000000B7 +:0450F60000000000B6 +:0450F70000000000B5 +:0450F80000000000B4 +:0450F90000000000B3 +:0450FA0000000000B2 +:0450FB0000000000B1 +:0450FC0000000000B0 +:0450FD0000000000AF +:0450FE0000000000AE +:0450FF0000000000AD +:0451000000000000AB +:0451010000000000AA +:0451020000000000A9 +:0451030000000000A8 +:0451040000000000A7 +:0451050000000000A6 +:0451060000000000A5 +:0451070000000000A4 +:0451080000000000A3 +:0451090000000000A2 +:04510A0000000000A1 +:04510B0000000000A0 +:04510C00000000009F +:04510D00000000009E +:04510E00000000009D +:04510F00000000009C +:04511000000000009B +:04511100000000009A +:045112000000000099 +:045113000000000098 +:045114000000000097 +:045115000000000096 +:045116000000000095 +:045117000000000094 +:045118000000000093 +:045119000000000092 +:04511A000000000091 +:04511B000000000090 +:04511C00000000008F +:04511D00000000008E +:04511E00000000008D +:04511F00000000008C +:04512000000000008B +:04512100000000008A +:045122000000000089 +:045123000000000088 +:045124000000000087 +:045125000000000086 +:045126000000000085 +:045127000000000084 +:045128000000000083 +:045129000000000082 +:04512A000000000081 +:04512B000000000080 +:04512C00000000007F +:04512D00000000007E +:04512E00000000007D +:04512F00000000007C +:04513000000000007B +:04513100000000007A +:045132000000000079 +:045133000000000078 +:045134000000000077 +:045135000000000076 +:045136000000000075 +:045137000000000074 +:045138000000000073 +:045139000000000072 +:04513A000000000071 +:04513B000000000070 +:04513C00000000006F +:04513D00000000006E +:04513E00000000006D +:04513F00000000006C +:04514000000000006B +:04514100000000006A +:045142000000000069 +:045143000000000068 +:045144000000000067 +:045145000000000066 +:045146000000000065 +:045147000000000064 +:045148000000000063 +:045149000000000062 +:04514A000000000061 +:04514B000000000060 +:04514C00000000005F +:04514D00000000005E +:04514E00000000005D +:04514F00000000005C +:04515000000000005B +:04515100000000005A +:045152000000000059 +:045153000000000058 +:045154000000000057 +:045155000000000056 +:045156000000000055 +:045157000000000054 +:045158000000000053 +:045159000000000052 +:04515A000000000051 +:04515B000000000050 +:04515C00000000004F +:04515D00000000004E +:04515E00000000004D +:04515F00000000004C +:04516000000000004B +:04516100000000004A +:045162000000000049 +:045163000000000048 +:045164000000000047 +:045165000000000046 +:045166000000000045 +:045167000000000044 +:045168000000000043 +:045169000000000042 +:04516A000000000041 +:04516B000000000040 +:04516C00000000003F +:04516D00000000003E +:04516E00000000003D +:04516F00000000003C +:04517000000000003B +:04517100000000003A +:045172000000000039 +:045173000000000038 +:045174000000000037 +:045175000000000036 +:045176000000000035 +:045177000000000034 +:045178000000000033 +:045179000000000032 +:04517A000000000031 +:04517B000000000030 +:04517C00000000002F +:04517D00000000002E +:04517E00000000002D +:04517F00000000002C +:04518000000000002B +:04518100000000002A +:045182000000000029 +:045183000000000028 +:045184000000000027 +:045185000000000026 +:045186000000000025 +:045187000000000024 +:045188000000000023 +:045189000000000022 +:04518A000000000021 +:04518B000000000020 +:04518C00000000001F +:04518D00000000001E +:04518E00000000001D +:04518F00000000001C +:04519000000000001B +:04519100000000001A +:045192000000000019 +:045193000000000018 +:045194000000000017 +:045195000000000016 +:045196000000000015 +:045197000000000014 +:045198000000000013 +:045199000000000012 +:04519A000000000011 +:04519B000000000010 +:04519C00000000000F +:04519D00000000000E +:04519E00000000000D +:04519F00000000000C +:0451A000000000000B +:0451A100000000000A +:0451A2000000000009 +:0451A3000000000008 +:0451A4000000000007 +:0451A5000000000006 +:0451A6000000000005 +:0451A7000000000004 +:0451A8000000000003 +:0451A9000000000002 +:0451AA000000000001 +:0451AB000000000000 +:0451AC0000000000FF +:0451AD0000000000FE +:0451AE0000000000FD +:0451AF0000000000FC +:0451B00000000000FB +:0451B10000000000FA +:0451B20000000000F9 +:0451B30000000000F8 +:0451B40000000000F7 +:0451B50000000000F6 +:0451B60000000000F5 +:0451B70000000000F4 +:0451B80000000000F3 +:0451B90000000000F2 +:0451BA0000000000F1 +:0451BB0000000000F0 +:0451BC0000000000EF +:0451BD0000000000EE +:0451BE0000000000ED +:0451BF0000000000EC +:0451C00000000000EB +:0451C10000000000EA +:0451C20000000000E9 +:0451C30000000000E8 +:0451C40000000000E7 +:0451C50000000000E6 +:0451C60000000000E5 +:0451C70000000000E4 +:0451C80000000000E3 +:0451C90000000000E2 +:0451CA0000000000E1 +:0451CB0000000000E0 +:0451CC0000000000DF +:0451CD0000000000DE +:0451CE0000000000DD +:0451CF0000000000DC +:0451D00000000000DB +:0451D10000000000DA +:0451D20000000000D9 +:0451D30000000000D8 +:0451D40000000000D7 +:0451D50000000000D6 +:0451D60000000000D5 +:0451D70000000000D4 +:0451D80000000000D3 +:0451D90000000000D2 +:0451DA0000000000D1 +:0451DB0000000000D0 +:0451DC0000000000CF +:0451DD0000000000CE +:0451DE0000000000CD +:0451DF0000000000CC +:0451E00000000000CB +:0451E10000000000CA +:0451E20000000000C9 +:0451E30000000000C8 +:0451E40000000000C7 +:0451E50000000000C6 +:0451E60000000000C5 +:0451E70000000000C4 +:0451E80000000000C3 +:0451E90000000000C2 +:0451EA0000000000C1 +:0451EB0000000000C0 +:0451EC0000000000BF +:0451ED0000000000BE +:0451EE0000000000BD +:0451EF0000000000BC +:0451F00000000000BB +:0451F10000000000BA +:0451F20000000000B9 +:0451F30000000000B8 +:0451F40000000000B7 +:0451F50000000000B6 +:0451F60000000000B5 +:0451F70000000000B4 +:0451F80000000000B3 +:0451F90000000000B2 +:0451FA0000000000B1 +:0451FB0000000000B0 +:0451FC0000000000AF +:0451FD0000000000AE +:0451FE0000000000AD +:0451FF0000000000AC +:0452000000000000AA +:0452010000000000A9 +:0452020000000000A8 +:0452030000000000A7 +:0452040000000000A6 +:0452050000000000A5 +:0452060000000000A4 +:0452070000000000A3 +:0452080000000000A2 +:0452090000000000A1 +:04520A0000000000A0 +:04520B00000000009F +:04520C00000000009E +:04520D00000000009D +:04520E00000000009C +:04520F00000000009B +:04521000000000009A +:045211000000000099 +:045212000000000098 +:045213000000000097 +:045214000000000096 +:045215000000000095 +:045216000000000094 +:045217000000000093 +:045218000000000092 +:045219000000000091 +:04521A000000000090 +:04521B00000000008F +:04521C00000000008E +:04521D00000000008D +:04521E00000000008C +:04521F00000000008B +:04522000000000008A +:045221000000000089 +:045222000000000088 +:045223000000000087 +:045224000000000086 +:045225000000000085 +:045226000000000084 +:045227000000000083 +:045228000000000082 +:045229000000000081 +:04522A000000000080 +:04522B00000000007F +:04522C00000000007E +:04522D00000000007D +:04522E00000000007C +:04522F00000000007B +:04523000000000007A +:045231000000000079 +:045232000000000078 +:045233000000000077 +:045234000000000076 +:045235000000000075 +:045236000000000074 +:045237000000000073 +:045238000000000072 +:045239000000000071 +:04523A000000000070 +:04523B00000000006F +:04523C00000000006E +:04523D00000000006D +:04523E00000000006C +:04523F00000000006B +:04524000000000006A +:045241000000000069 +:045242000000000068 +:045243000000000067 +:045244000000000066 +:045245000000000065 +:045246000000000064 +:045247000000000063 +:045248000000000062 +:045249000000000061 +:04524A000000000060 +:04524B00000000005F +:04524C00000000005E +:04524D00000000005D +:04524E00000000005C +:04524F00000000005B +:04525000000000005A +:045251000000000059 +:045252000000000058 +:045253000000000057 +:045254000000000056 +:045255000000000055 +:045256000000000054 +:045257000000000053 +:045258000000000052 +:045259000000000051 +:04525A000000000050 +:04525B00000000004F +:04525C00000000004E +:04525D00000000004D +:04525E00000000004C +:04525F00000000004B +:04526000000000004A +:045261000000000049 +:045262000000000048 +:045263000000000047 +:045264000000000046 +:045265000000000045 +:045266000000000044 +:045267000000000043 +:045268000000000042 +:045269000000000041 +:04526A000000000040 +:04526B00000000003F +:04526C00000000003E +:04526D00000000003D +:04526E00000000003C +:04526F00000000003B +:04527000000000003A +:045271000000000039 +:045272000000000038 +:045273000000000037 +:045274000000000036 +:045275000000000035 +:045276000000000034 +:045277000000000033 +:045278000000000032 +:045279000000000031 +:04527A000000000030 +:04527B00000000002F +:04527C00000000002E +:04527D00000000002D +:04527E00000000002C +:04527F00000000002B +:04528000000000002A +:045281000000000029 +:045282000000000028 +:045283000000000027 +:045284000000000026 +:045285000000000025 +:045286000000000024 +:045287000000000023 +:045288000000000022 +:045289000000000021 +:04528A000000000020 +:04528B00000000001F +:04528C00000000001E +:04528D00000000001D +:04528E00000000001C +:04528F00000000001B +:04529000000000001A +:045291000000000019 +:045292000000000018 +:045293000000000017 +:045294000000000016 +:045295000000000015 +:045296000000000014 +:045297000000000013 +:045298000000000012 +:045299000000000011 +:04529A000000000010 +:04529B00000000000F +:04529C00000000000E +:04529D00000000000D +:04529E00000000000C +:04529F00000000000B +:0452A000000000000A +:0452A1000000000009 +:0452A2000000000008 +:0452A3000000000007 +:0452A4000000000006 +:0452A5000000000005 +:0452A6000000000004 +:0452A7000000000003 +:0452A8000000000002 +:0452A9000000000001 +:0452AA000000000000 +:0452AB0000000000FF +:0452AC0000000000FE +:0452AD0000000000FD +:0452AE0000000000FC +:0452AF0000000000FB +:0452B00000000000FA +:0452B10000000000F9 +:0452B20000000000F8 +:0452B30000000000F7 +:0452B40000000000F6 +:0452B50000000000F5 +:0452B60000000000F4 +:0452B70000000000F3 +:0452B80000000000F2 +:0452B90000000000F1 +:0452BA0000000000F0 +:0452BB0000000000EF +:0452BC0000000000EE +:0452BD0000000000ED +:0452BE0000000000EC +:0452BF0000000000EB +:0452C00000000000EA +:0452C10000000000E9 +:0452C20000000000E8 +:0452C30000000000E7 +:0452C40000000000E6 +:0452C50000000000E5 +:0452C60000000000E4 +:0452C70000000000E3 +:0452C80000000000E2 +:0452C90000000000E1 +:0452CA0000000000E0 +:0452CB0000000000DF +:0452CC0000000000DE +:0452CD0000000000DD +:0452CE0000000000DC +:0452CF0000000000DB +:0452D00000000000DA +:0452D10000000000D9 +:0452D20000000000D8 +:0452D30000000000D7 +:0452D40000000000D6 +:0452D50000000000D5 +:0452D60000000000D4 +:0452D70000000000D3 +:0452D80000000000D2 +:0452D90000000000D1 +:0452DA0000000000D0 +:0452DB0000000000CF +:0452DC0000000000CE +:0452DD0000000000CD +:0452DE0000000000CC +:0452DF0000000000CB +:0452E00000000000CA +:0452E10000000000C9 +:0452E20000000000C8 +:0452E30000000000C7 +:0452E40000000000C6 +:0452E50000000000C5 +:0452E60000000000C4 +:0452E70000000000C3 +:0452E80000000000C2 +:0452E90000000000C1 +:0452EA0000000000C0 +:0452EB0000000000BF +:0452EC0000000000BE +:0452ED0000000000BD +:0452EE0000000000BC +:0452EF0000000000BB +:0452F00000000000BA +:0452F10000000000B9 +:0452F20000000000B8 +:0452F30000000000B7 +:0452F40000000000B6 +:0452F50000000000B5 +:0452F60000000000B4 +:0452F70000000000B3 +:0452F80000000000B2 +:0452F90000000000B1 +:0452FA0000000000B0 +:0452FB0000000000AF +:0452FC0000000000AE +:0452FD0000000000AD +:0452FE0000000000AC +:0452FF0000000000AB +:0453000000000000A9 +:0453010000000000A8 +:0453020000000000A7 +:0453030000000000A6 +:0453040000000000A5 +:0453050000000000A4 +:0453060000000000A3 +:0453070000000000A2 +:0453080000000000A1 +:0453090000000000A0 +:04530A00000000009F +:04530B00000000009E +:04530C00000000009D +:04530D00000000009C +:04530E00000000009B +:04530F00000000009A +:045310000000000099 +:045311000000000098 +:045312000000000097 +:045313000000000096 +:045314000000000095 +:045315000000000094 +:045316000000000093 +:045317000000000092 +:045318000000000091 +:045319000000000090 +:04531A00000000008F +:04531B00000000008E +:04531C00000000008D +:04531D00000000008C +:04531E00000000008B +:04531F00000000008A +:045320000000000089 +:045321000000000088 +:045322000000000087 +:045323000000000086 +:045324000000000085 +:045325000000000084 +:045326000000000083 +:045327000000000082 +:045328000000000081 +:045329000000000080 +:04532A00000000007F +:04532B00000000007E +:04532C00000000007D +:04532D00000000007C +:04532E00000000007B +:04532F00000000007A +:045330000000000079 +:045331000000000078 +:045332000000000077 +:045333000000000076 +:045334000000000075 +:045335000000000074 +:045336000000000073 +:045337000000000072 +:045338000000000071 +:045339000000000070 +:04533A00000000006F +:04533B00000000006E +:04533C00000000006D +:04533D00000000006C +:04533E00000000006B +:04533F00000000006A +:045340000000000069 +:045341000000000068 +:045342000000000067 +:045343000000000066 +:045344000000000065 +:045345000000000064 +:045346000000000063 +:045347000000000062 +:045348000000000061 +:045349000000000060 +:04534A00000000005F +:04534B00000000005E +:04534C00000000005D +:04534D00000000005C +:04534E00000000005B +:04534F00000000005A +:045350000000000059 +:045351000000000058 +:045352000000000057 +:045353000000000056 +:045354000000000055 +:045355000000000054 +:045356000000000053 +:045357000000000052 +:045358000000000051 +:045359000000000050 +:04535A00000000004F +:04535B00000000004E +:04535C00000000004D +:04535D00000000004C +:04535E00000000004B +:04535F00000000004A +:045360000000000049 +:045361000000000048 +:045362000000000047 +:045363000000000046 +:045364000000000045 +:045365000000000044 +:045366000000000043 +:045367000000000042 +:045368000000000041 +:045369000000000040 +:04536A00000000003F +:04536B00000000003E +:04536C00000000003D +:04536D00000000003C +:04536E00000000003B +:04536F00000000003A +:045370000000000039 +:045371000000000038 +:045372000000000037 +:045373000000000036 +:045374000000000035 +:045375000000000034 +:045376000000000033 +:045377000000000032 +:045378000000000031 +:045379000000000030 +:04537A00000000002F +:04537B00000000002E +:04537C00000000002D +:04537D00000000002C +:04537E00000000002B +:04537F00000000002A +:045380000000000029 +:045381000000000028 +:045382000000000027 +:045383000000000026 +:045384000000000025 +:045385000000000024 +:045386000000000023 +:045387000000000022 +:045388000000000021 +:045389000000000020 +:04538A00000000001F +:04538B00000000001E +:04538C00000000001D +:04538D00000000001C +:04538E00000000001B +:04538F00000000001A +:045390000000000019 +:045391000000000018 +:045392000000000017 +:045393000000000016 +:045394000000000015 +:045395000000000014 +:045396000000000013 +:045397000000000012 +:045398000000000011 +:045399000000000010 +:04539A00000000000F +:04539B00000000000E +:04539C00000000000D +:04539D00000000000C +:04539E00000000000B +:04539F00000000000A +:0453A0000000000009 +:0453A1000000000008 +:0453A2000000000007 +:0453A3000000000006 +:0453A4000000000005 +:0453A5000000000004 +:0453A6000000000003 +:0453A7000000000002 +:0453A8000000000001 +:0453A9000000000000 +:0453AA0000000000FF +:0453AB0000000000FE +:0453AC0000000000FD +:0453AD0000000000FC +:0453AE0000000000FB +:0453AF0000000000FA +:0453B00000000000F9 +:0453B10000000000F8 +:0453B20000000000F7 +:0453B30000000000F6 +:0453B40000000000F5 +:0453B50000000000F4 +:0453B60000000000F3 +:0453B70000000000F2 +:0453B80000000000F1 +:0453B90000000000F0 +:0453BA0000000000EF +:0453BB0000000000EE +:0453BC0000000000ED +:0453BD0000000000EC +:0453BE0000000000EB +:0453BF0000000000EA +:0453C00000000000E9 +:0453C10000000000E8 +:0453C20000000000E7 +:0453C30000000000E6 +:0453C40000000000E5 +:0453C50000000000E4 +:0453C60000000000E3 +:0453C70000000000E2 +:0453C80000000000E1 +:0453C90000000000E0 +:0453CA0000000000DF +:0453CB0000000000DE +:0453CC0000000000DD +:0453CD0000000000DC +:0453CE0000000000DB +:0453CF0000000000DA +:0453D00000000000D9 +:0453D10000000000D8 +:0453D20000000000D7 +:0453D30000000000D6 +:0453D40000000000D5 +:0453D50000000000D4 +:0453D60000000000D3 +:0453D70000000000D2 +:0453D80000000000D1 +:0453D90000000000D0 +:0453DA0000000000CF +:0453DB0000000000CE +:0453DC0000000000CD +:0453DD0000000000CC +:0453DE0000000000CB +:0453DF0000000000CA +:0453E00000000000C9 +:0453E10000000000C8 +:0453E20000000000C7 +:0453E30000000000C6 +:0453E40000000000C5 +:0453E50000000000C4 +:0453E60000000000C3 +:0453E70000000000C2 +:0453E80000000000C1 +:0453E90000000000C0 +:0453EA0000000000BF +:0453EB0000000000BE +:0453EC0000000000BD +:0453ED0000000000BC +:0453EE0000000000BB +:0453EF0000000000BA +:0453F00000000000B9 +:0453F10000000000B8 +:0453F20000000000B7 +:0453F30000000000B6 +:0453F40000000000B5 +:0453F50000000000B4 +:0453F60000000000B3 +:0453F70000000000B2 +:0453F80000000000B1 +:0453F90000000000B0 +:0453FA0000000000AF +:0453FB0000000000AE +:0453FC0000000000AD +:0453FD0000000000AC +:0453FE0000000000AB +:0453FF0000000000AA +:0454000000000000A8 +:0454010000000000A7 +:0454020000000000A6 +:0454030000000000A5 +:0454040000000000A4 +:0454050000000000A3 +:0454060000000000A2 +:0454070000000000A1 +:0454080000000000A0 +:04540900000000009F +:04540A00000000009E +:04540B00000000009D +:04540C00000000009C +:04540D00000000009B +:04540E00000000009A +:04540F000000000099 +:045410000000000098 +:045411000000000097 +:045412000000000096 +:045413000000000095 +:045414000000000094 +:045415000000000093 +:045416000000000092 +:045417000000000091 +:045418000000000090 +:04541900000000008F +:04541A00000000008E +:04541B00000000008D +:04541C00000000008C +:04541D00000000008B +:04541E00000000008A +:04541F000000000089 +:045420000000000088 +:045421000000000087 +:045422000000000086 +:045423000000000085 +:045424000000000084 +:045425000000000083 +:045426000000000082 +:045427000000000081 +:045428000000000080 +:04542900000000007F +:04542A00000000007E +:04542B00000000007D +:04542C00000000007C +:04542D00000000007B +:04542E00000000007A +:04542F000000000079 +:045430000000000078 +:045431000000000077 +:045432000000000076 +:045433000000000075 +:045434000000000074 +:045435000000000073 +:045436000000000072 +:045437000000000071 +:045438000000000070 +:04543900000000006F +:04543A00000000006E +:04543B00000000006D +:04543C00000000006C +:04543D00000000006B +:04543E00000000006A +:04543F000000000069 +:045440000000000068 +:045441000000000067 +:045442000000000066 +:045443000000000065 +:045444000000000064 +:045445000000000063 +:045446000000000062 +:045447000000000061 +:045448000000000060 +:04544900000000005F +:04544A00000000005E +:04544B00000000005D +:04544C00000000005C +:04544D00000000005B +:04544E00000000005A +:04544F000000000059 +:045450000000000058 +:045451000000000057 +:045452000000000056 +:045453000000000055 +:045454000000000054 +:045455000000000053 +:045456000000000052 +:045457000000000051 +:045458000000000050 +:04545900000000004F +:04545A00000000004E +:04545B00000000004D +:04545C00000000004C +:04545D00000000004B +:04545E00000000004A +:04545F000000000049 +:045460000000000048 +:045461000000000047 +:045462000000000046 +:045463000000000045 +:045464000000000044 +:045465000000000043 +:045466000000000042 +:045467000000000041 +:045468000000000040 +:04546900000000003F +:04546A00000000003E +:04546B00000000003D +:04546C00000000003C +:04546D00000000003B +:04546E00000000003A +:04546F000000000039 +:045470000000000038 +:045471000000000037 +:045472000000000036 +:045473000000000035 +:045474000000000034 +:045475000000000033 +:045476000000000032 +:045477000000000031 +:045478000000000030 +:04547900000000002F +:04547A00000000002E +:04547B00000000002D +:04547C00000000002C +:04547D00000000002B +:04547E00000000002A +:04547F000000000029 +:045480000000000028 +:045481000000000027 +:045482000000000026 +:045483000000000025 +:045484000000000024 +:045485000000000023 +:045486000000000022 +:045487000000000021 +:045488000000000020 +:04548900000000001F +:04548A00000000001E +:04548B00000000001D +:04548C00000000001C +:04548D00000000001B +:04548E00000000001A +:04548F000000000019 +:045490000000000018 +:045491000000000017 +:045492000000000016 +:045493000000000015 +:045494000000000014 +:045495000000000013 +:045496000000000012 +:045497000000000011 +:045498000000000010 +:04549900000000000F +:04549A00000000000E +:04549B00000000000D +:04549C00000000000C +:04549D00000000000B +:04549E00000000000A +:04549F000000000009 +:0454A0000000000008 +:0454A1000000000007 +:0454A2000000000006 +:0454A3000000000005 +:0454A4000000000004 +:0454A5000000000003 +:0454A6000000000002 +:0454A7000000000001 +:0454A8000000000000 +:0454A90000000000FF +:0454AA0000000000FE +:0454AB0000000000FD +:0454AC0000000000FC +:0454AD0000000000FB +:0454AE0000000000FA +:0454AF0000000000F9 +:0454B00000000000F8 +:0454B10000000000F7 +:0454B20000000000F6 +:0454B30000000000F5 +:0454B40000000000F4 +:0454B50000000000F3 +:0454B60000000000F2 +:0454B70000000000F1 +:0454B80000000000F0 +:0454B90000000000EF +:0454BA0000000000EE +:0454BB0000000000ED +:0454BC0000000000EC +:0454BD0000000000EB +:0454BE0000000000EA +:0454BF0000000000E9 +:0454C00000000000E8 +:0454C10000000000E7 +:0454C20000000000E6 +:0454C30000000000E5 +:0454C40000000000E4 +:0454C50000000000E3 +:0454C60000000000E2 +:0454C70000000000E1 +:0454C80000000000E0 +:0454C90000000000DF +:0454CA0000000000DE +:0454CB0000000000DD +:0454CC0000000000DC +:0454CD0000000000DB +:0454CE0000000000DA +:0454CF0000000000D9 +:0454D00000000000D8 +:0454D10000000000D7 +:0454D20000000000D6 +:0454D30000000000D5 +:0454D40000000000D4 +:0454D50000000000D3 +:0454D60000000000D2 +:0454D70000000000D1 +:0454D80000000000D0 +:0454D90000000000CF +:0454DA0000000000CE +:0454DB0000000000CD +:0454DC0000000000CC +:0454DD0000000000CB +:0454DE0000000000CA +:0454DF0000000000C9 +:0454E00000000000C8 +:0454E10000000000C7 +:0454E20000000000C6 +:0454E30000000000C5 +:0454E40000000000C4 +:0454E50000000000C3 +:0454E60000000000C2 +:0454E70000000000C1 +:0454E80000000000C0 +:0454E90000000000BF +:0454EA0000000000BE +:0454EB0000000000BD +:0454EC0000000000BC +:0454ED0000000000BB +:0454EE0000000000BA +:0454EF0000000000B9 +:0454F00000000000B8 +:0454F10000000000B7 +:0454F20000000000B6 +:0454F30000000000B5 +:0454F40000000000B4 +:0454F50000000000B3 +:0454F60000000000B2 +:0454F70000000000B1 +:0454F80000000000B0 +:0454F90000000000AF +:0454FA0000000000AE +:0454FB0000000000AD +:0454FC0000000000AC +:0454FD0000000000AB +:0454FE0000000000AA +:0454FF0000000000A9 +:0455000000000000A7 +:0455010000000000A6 +:0455020000000000A5 +:0455030000000000A4 +:0455040000000000A3 +:0455050000000000A2 +:0455060000000000A1 +:0455070000000000A0 +:04550800000000009F +:04550900000000009E +:04550A00000000009D +:04550B00000000009C +:04550C00000000009B +:04550D00000000009A +:04550E000000000099 +:04550F000000000098 +:045510000000000097 +:045511000000000096 +:045512000000000095 +:045513000000000094 +:045514000000000093 +:045515000000000092 +:045516000000000091 +:045517000000000090 +:04551800000000008F +:04551900000000008E +:04551A00000000008D +:04551B00000000008C +:04551C00000000008B +:04551D00000000008A +:04551E000000000089 +:04551F000000000088 +:045520000000000087 +:045521000000000086 +:045522000000000085 +:045523000000000084 +:045524000000000083 +:045525000000000082 +:045526000000000081 +:045527000000000080 +:04552800000000007F +:04552900000000007E +:04552A00000000007D +:04552B00000000007C +:04552C00000000007B +:04552D00000000007A +:04552E000000000079 +:04552F000000000078 +:045530000000000077 +:045531000000000076 +:045532000000000075 +:045533000000000074 +:045534000000000073 +:045535000000000072 +:045536000000000071 +:045537000000000070 +:04553800000000006F +:04553900000000006E +:04553A00000000006D +:04553B00000000006C +:04553C00000000006B +:04553D00000000006A +:04553E000000000069 +:04553F000000000068 +:045540000000000067 +:045541000000000066 +:045542000000000065 +:045543000000000064 +:045544000000000063 +:045545000000000062 +:045546000000000061 +:045547000000000060 +:04554800000000005F +:04554900000000005E +:04554A00000000005D +:04554B00000000005C +:04554C00000000005B +:04554D00000000005A +:04554E000000000059 +:04554F000000000058 +:045550000000000057 +:045551000000000056 +:045552000000000055 +:045553000000000054 +:045554000000000053 +:045555000000000052 +:045556000000000051 +:045557000000000050 +:04555800000000004F +:04555900000000004E +:04555A00000000004D +:04555B00000000004C +:04555C00000000004B +:04555D00000000004A +:04555E000000000049 +:04555F000000000048 +:045560000000000047 +:045561000000000046 +:045562000000000045 +:045563000000000044 +:045564000000000043 +:045565000000000042 +:045566000000000041 +:045567000000000040 +:04556800000000003F +:04556900000000003E +:04556A00000000003D +:04556B00000000003C +:04556C00000000003B +:04556D00000000003A +:04556E000000000039 +:04556F000000000038 +:045570000000000037 +:045571000000000036 +:045572000000000035 +:045573000000000034 +:045574000000000033 +:045575000000000032 +:045576000000000031 +:045577000000000030 +:04557800000000002F +:04557900000000002E +:04557A00000000002D +:04557B00000000002C +:04557C00000000002B +:04557D00000000002A +:04557E000000000029 +:04557F000000000028 +:045580000000000027 +:045581000000000026 +:045582000000000025 +:045583000000000024 +:045584000000000023 +:045585000000000022 +:045586000000000021 +:045587000000000020 +:04558800000000001F +:04558900000000001E +:04558A00000000001D +:04558B00000000001C +:04558C00000000001B +:04558D00000000001A +:04558E000000000019 +:04558F000000000018 +:045590000000000017 +:045591000000000016 +:045592000000000015 +:045593000000000014 +:045594000000000013 +:045595000000000012 +:045596000000000011 +:045597000000000010 +:04559800000000000F +:04559900000000000E +:04559A00000000000D +:04559B00000000000C +:04559C00000000000B +:04559D00000000000A +:04559E000000000009 +:04559F000000000008 +:0455A0000000000007 +:0455A1000000000006 +:0455A2000000000005 +:0455A3000000000004 +:0455A4000000000003 +:0455A5000000000002 +:0455A6000000000001 +:0455A7000000000000 +:0455A80000000000FF +:0455A90000000000FE +:0455AA0000000000FD +:0455AB0000000000FC +:0455AC0000000000FB +:0455AD0000000000FA +:0455AE0000000000F9 +:0455AF0000000000F8 +:0455B00000000000F7 +:0455B10000000000F6 +:0455B20000000000F5 +:0455B30000000000F4 +:0455B40000000000F3 +:0455B50000000000F2 +:0455B60000000000F1 +:0455B70000000000F0 +:0455B80000000000EF +:0455B90000000000EE +:0455BA0000000000ED +:0455BB0000000000EC +:0455BC0000000000EB +:0455BD0000000000EA +:0455BE0000000000E9 +:0455BF0000000000E8 +:0455C00000000000E7 +:0455C10000000000E6 +:0455C20000000000E5 +:0455C30000000000E4 +:0455C40000000000E3 +:0455C50000000000E2 +:0455C60000000000E1 +:0455C70000000000E0 +:0455C80000000000DF +:0455C90000000000DE +:0455CA0000000000DD +:0455CB0000000000DC +:0455CC0000000000DB +:0455CD0000000000DA +:0455CE0000000000D9 +:0455CF0000000000D8 +:0455D00000000000D7 +:0455D10000000000D6 +:0455D20000000000D5 +:0455D30000000000D4 +:0455D40000000000D3 +:0455D50000000000D2 +:0455D60000000000D1 +:0455D70000000000D0 +:0455D80000000000CF +:0455D90000000000CE +:0455DA0000000000CD +:0455DB0000000000CC +:0455DC0000000000CB +:0455DD0000000000CA +:0455DE0000000000C9 +:0455DF0000000000C8 +:0455E00000000000C7 +:0455E10000000000C6 +:0455E20000000000C5 +:0455E30000000000C4 +:0455E40000000000C3 +:0455E50000000000C2 +:0455E60000000000C1 +:0455E70000000000C0 +:0455E80000000000BF +:0455E90000000000BE +:0455EA0000000000BD +:0455EB0000000000BC +:0455EC0000000000BB +:0455ED0000000000BA +:0455EE0000000000B9 +:0455EF0000000000B8 +:0455F00000000000B7 +:0455F10000000000B6 +:0455F20000000000B5 +:0455F30000000000B4 +:0455F40000000000B3 +:0455F50000000000B2 +:0455F60000000000B1 +:0455F70000000000B0 +:0455F80000000000AF +:0455F90000000000AE +:0455FA0000000000AD +:0455FB0000000000AC +:0455FC0000000000AB +:0455FD0000000000AA +:0455FE0000000000A9 +:0455FF0000000000A8 +:0456000000000000A6 +:0456010000000000A5 +:0456020000000000A4 +:0456030000000000A3 +:0456040000000000A2 +:0456050000000000A1 +:0456060000000000A0 +:04560700000000009F +:04560800000000009E +:04560900000000009D +:04560A00000000009C +:04560B00000000009B +:04560C00000000009A +:04560D000000000099 +:04560E000000000098 +:04560F000000000097 +:045610000000000096 +:045611000000000095 +:045612000000000094 +:045613000000000093 +:045614000000000092 +:045615000000000091 +:045616000000000090 +:04561700000000008F +:04561800000000008E +:04561900000000008D +:04561A00000000008C +:04561B00000000008B +:04561C00000000008A +:04561D000000000089 +:04561E000000000088 +:04561F000000000087 +:045620000000000086 +:045621000000000085 +:045622000000000084 +:045623000000000083 +:045624000000000082 +:045625000000000081 +:045626000000000080 +:04562700000000007F +:04562800000000007E +:04562900000000007D +:04562A00000000007C +:04562B00000000007B +:04562C00000000007A +:04562D000000000079 +:04562E000000000078 +:04562F000000000077 +:045630000000000076 +:045631000000000075 +:045632000000000074 +:045633000000000073 +:045634000000000072 +:045635000000000071 +:045636000000000070 +:04563700000000006F +:04563800000000006E +:04563900000000006D +:04563A00000000006C +:04563B00000000006B +:04563C00000000006A +:04563D000000000069 +:04563E000000000068 +:04563F000000000067 +:045640000000000066 +:045641000000000065 +:045642000000000064 +:045643000000000063 +:045644000000000062 +:045645000000000061 +:045646000000000060 +:04564700000000005F +:04564800000000005E +:04564900000000005D +:04564A00000000005C +:04564B00000000005B +:04564C00000000005A +:04564D000000000059 +:04564E000000000058 +:04564F000000000057 +:045650000000000056 +:045651000000000055 +:045652000000000054 +:045653000000000053 +:045654000000000052 +:045655000000000051 +:045656000000000050 +:04565700000000004F +:04565800000000004E +:04565900000000004D +:04565A00000000004C +:04565B00000000004B +:04565C00000000004A +:04565D000000000049 +:04565E000000000048 +:04565F000000000047 +:045660000000000046 +:045661000000000045 +:045662000000000044 +:045663000000000043 +:045664000000000042 +:045665000000000041 +:045666000000000040 +:04566700000000003F +:04566800000000003E +:04566900000000003D +:04566A00000000003C +:04566B00000000003B +:04566C00000000003A +:04566D000000000039 +:04566E000000000038 +:04566F000000000037 +:045670000000000036 +:045671000000000035 +:045672000000000034 +:045673000000000033 +:045674000000000032 +:045675000000000031 +:045676000000000030 +:04567700000000002F +:04567800000000002E +:04567900000000002D +:04567A00000000002C +:04567B00000000002B +:04567C00000000002A +:04567D000000000029 +:04567E000000000028 +:04567F000000000027 +:045680000000000026 +:045681000000000025 +:045682000000000024 +:045683000000000023 +:045684000000000022 +:045685000000000021 +:045686000000000020 +:04568700000000001F +:04568800000000001E +:04568900000000001D +:04568A00000000001C +:04568B00000000001B +:04568C00000000001A +:04568D000000000019 +:04568E000000000018 +:04568F000000000017 +:045690000000000016 +:045691000000000015 +:045692000000000014 +:045693000000000013 +:045694000000000012 +:045695000000000011 +:045696000000000010 +:04569700000000000F +:04569800000000000E +:04569900000000000D +:04569A00000000000C +:04569B00000000000B +:04569C00000000000A +:04569D000000000009 +:04569E000000000008 +:04569F000000000007 +:0456A0000000000006 +:0456A1000000000005 +:0456A2000000000004 +:0456A3000000000003 +:0456A4000000000002 +:0456A5000000000001 +:0456A6000000000000 +:0456A70000000000FF +:0456A80000000000FE +:0456A90000000000FD +:0456AA0000000000FC +:0456AB0000000000FB +:0456AC0000000000FA +:0456AD0000000000F9 +:0456AE0000000000F8 +:0456AF0000000000F7 +:0456B00000000000F6 +:0456B10000000000F5 +:0456B20000000000F4 +:0456B30000000000F3 +:0456B40000000000F2 +:0456B50000000000F1 +:0456B60000000000F0 +:0456B70000000000EF +:0456B80000000000EE +:0456B90000000000ED +:0456BA0000000000EC +:0456BB0000000000EB +:0456BC0000000000EA +:0456BD0000000000E9 +:0456BE0000000000E8 +:0456BF0000000000E7 +:0456C00000000000E6 +:0456C10000000000E5 +:0456C20000000000E4 +:0456C30000000000E3 +:0456C40000000000E2 +:0456C50000000000E1 +:0456C60000000000E0 +:0456C70000000000DF +:0456C80000000000DE +:0456C90000000000DD +:0456CA0000000000DC +:0456CB0000000000DB +:0456CC0000000000DA +:0456CD0000000000D9 +:0456CE0000000000D8 +:0456CF0000000000D7 +:0456D00000000000D6 +:0456D10000000000D5 +:0456D20000000000D4 +:0456D30000000000D3 +:0456D40000000000D2 +:0456D50000000000D1 +:0456D60000000000D0 +:0456D70000000000CF +:0456D80000000000CE +:0456D90000000000CD +:0456DA0000000000CC +:0456DB0000000000CB +:0456DC0000000000CA +:0456DD0000000000C9 +:0456DE0000000000C8 +:0456DF0000000000C7 +:0456E00000000000C6 +:0456E10000000000C5 +:0456E20000000000C4 +:0456E30000000000C3 +:0456E40000000000C2 +:0456E50000000000C1 +:0456E60000000000C0 +:0456E70000000000BF +:0456E80000000000BE +:0456E90000000000BD +:0456EA0000000000BC +:0456EB0000000000BB +:0456EC0000000000BA +:0456ED0000000000B9 +:0456EE0000000000B8 +:0456EF0000000000B7 +:0456F00000000000B6 +:0456F10000000000B5 +:0456F20000000000B4 +:0456F30000000000B3 +:0456F40000000000B2 +:0456F50000000000B1 +:0456F60000000000B0 +:0456F70000000000AF +:0456F80000000000AE +:0456F90000000000AD +:0456FA0000000000AC +:0456FB0000000000AB +:0456FC0000000000AA +:0456FD0000000000A9 +:0456FE0000000000A8 +:0456FF0000000000A7 +:0457000000000000A5 +:0457010000000000A4 +:0457020000000000A3 +:0457030000000000A2 +:0457040000000000A1 +:0457050000000000A0 +:04570600000000009F +:04570700000000009E +:04570800000000009D +:04570900000000009C +:04570A00000000009B +:04570B00000000009A +:04570C000000000099 +:04570D000000000098 +:04570E000000000097 +:04570F000000000096 +:045710000000000095 +:045711000000000094 +:045712000000000093 +:045713000000000092 +:045714000000000091 +:045715000000000090 +:04571600000000008F +:04571700000000008E +:04571800000000008D +:04571900000000008C +:04571A00000000008B +:04571B00000000008A +:04571C000000000089 +:04571D000000000088 +:04571E000000000087 +:04571F000000000086 +:045720000000000085 +:045721000000000084 +:045722000000000083 +:045723000000000082 +:045724000000000081 +:045725000000000080 +:04572600000000007F +:04572700000000007E +:04572800000000007D +:04572900000000007C +:04572A00000000007B +:04572B00000000007A +:04572C000000000079 +:04572D000000000078 +:04572E000000000077 +:04572F000000000076 +:045730000000000075 +:045731000000000074 +:045732000000000073 +:045733000000000072 +:045734000000000071 +:045735000000000070 +:04573600000000006F +:04573700000000006E +:04573800000000006D +:04573900000000006C +:04573A00000000006B +:04573B00000000006A +:04573C000000000069 +:04573D000000000068 +:04573E000000000067 +:04573F000000000066 +:045740000000000065 +:045741000000000064 +:045742000000000063 +:045743000000000062 +:045744000000000061 +:045745000000000060 +:04574600000000005F +:04574700000000005E +:04574800000000005D +:04574900000000005C +:04574A00000000005B +:04574B00000000005A +:04574C000000000059 +:04574D000000000058 +:04574E000000000057 +:04574F000000000056 +:045750000000000055 +:045751000000000054 +:045752000000000053 +:045753000000000052 +:045754000000000051 +:045755000000000050 +:04575600000000004F +:04575700000000004E +:04575800000000004D +:04575900000000004C +:04575A00000000004B +:04575B00000000004A +:04575C000000000049 +:04575D000000000048 +:04575E000000000047 +:04575F000000000046 +:045760000000000045 +:045761000000000044 +:045762000000000043 +:045763000000000042 +:045764000000000041 +:045765000000000040 +:04576600000000003F +:04576700000000003E +:04576800000000003D +:04576900000000003C +:04576A00000000003B +:04576B00000000003A +:04576C000000000039 +:04576D000000000038 +:04576E000000000037 +:04576F000000000036 +:045770000000000035 +:045771000000000034 +:045772000000000033 +:045773000000000032 +:045774000000000031 +:045775000000000030 +:04577600000000002F +:04577700000000002E +:04577800000000002D +:04577900000000002C +:04577A00000000002B +:04577B00000000002A +:04577C000000000029 +:04577D000000000028 +:04577E000000000027 +:04577F000000000026 +:045780000000000025 +:045781000000000024 +:045782000000000023 +:045783000000000022 +:045784000000000021 +:045785000000000020 +:04578600000000001F +:04578700000000001E +:04578800000000001D +:04578900000000001C +:04578A00000000001B +:04578B00000000001A +:04578C000000000019 +:04578D000000000018 +:04578E000000000017 +:04578F000000000016 +:045790000000000015 +:045791000000000014 +:045792000000000013 +:045793000000000012 +:045794000000000011 +:045795000000000010 +:04579600000000000F +:04579700000000000E +:04579800000000000D +:04579900000000000C +:04579A00000000000B +:04579B00000000000A +:04579C000000000009 +:04579D000000000008 +:04579E000000000007 +:04579F000000000006 +:0457A0000000000005 +:0457A1000000000004 +:0457A2000000000003 +:0457A3000000000002 +:0457A4000000000001 +:0457A5000000000000 +:0457A60000000000FF +:0457A70000000000FE +:0457A80000000000FD +:0457A90000000000FC +:0457AA0000000000FB +:0457AB0000000000FA +:0457AC0000000000F9 +:0457AD0000000000F8 +:0457AE0000000000F7 +:0457AF0000000000F6 +:0457B00000000000F5 +:0457B10000000000F4 +:0457B20000000000F3 +:0457B30000000000F2 +:0457B40000000000F1 +:0457B50000000000F0 +:0457B60000000000EF +:0457B70000000000EE +:0457B80000000000ED +:0457B90000000000EC +:0457BA0000000000EB +:0457BB0000000000EA +:0457BC0000000000E9 +:0457BD0000000000E8 +:0457BE0000000000E7 +:0457BF0000000000E6 +:0457C00000000000E5 +:0457C10000000000E4 +:0457C20000000000E3 +:0457C30000000000E2 +:0457C40000000000E1 +:0457C50000000000E0 +:0457C60000000000DF +:0457C70000000000DE +:0457C80000000000DD +:0457C90000000000DC +:0457CA0000000000DB +:0457CB0000000000DA +:0457CC0000000000D9 +:0457CD0000000000D8 +:0457CE0000000000D7 +:0457CF0000000000D6 +:0457D00000000000D5 +:0457D10000000000D4 +:0457D20000000000D3 +:0457D30000000000D2 +:0457D40000000000D1 +:0457D50000000000D0 +:0457D60000000000CF +:0457D70000000000CE +:0457D80000000000CD +:0457D90000000000CC +:0457DA0000000000CB +:0457DB0000000000CA +:0457DC0000000000C9 +:0457DD0000000000C8 +:0457DE0000000000C7 +:0457DF0000000000C6 +:0457E00000000000C5 +:0457E10000000000C4 +:0457E20000000000C3 +:0457E30000000000C2 +:0457E40000000000C1 +:0457E50000000000C0 +:0457E60000000000BF +:0457E70000000000BE +:0457E80000000000BD +:0457E90000000000BC +:0457EA0000000000BB +:0457EB0000000000BA +:0457EC0000000000B9 +:0457ED0000000000B8 +:0457EE0000000000B7 +:0457EF0000000000B6 +:0457F00000000000B5 +:0457F10000000000B4 +:0457F20000000000B3 +:0457F30000000000B2 +:0457F40000000000B1 +:0457F50000000000B0 +:0457F60000000000AF +:0457F70000000000AE +:0457F80000000000AD +:0457F90000000000AC +:0457FA0000000000AB +:0457FB0000000000AA +:0457FC0000000000A9 +:0457FD0000000000A8 +:0457FE0000000000A7 +:0457FF0000000000A6 +:0458000000000000A4 +:0458010000000000A3 +:0458020000000000A2 +:0458030000000000A1 +:0458040000000000A0 +:04580500000000009F +:04580600000000009E +:04580700000000009D +:04580800000000009C +:04580900000000009B +:04580A00000000009A +:04580B000000000099 +:04580C000000000098 +:04580D000000000097 +:04580E000000000096 +:04580F000000000095 +:045810000000000094 +:045811000000000093 +:045812000000000092 +:045813000000000091 +:045814000000000090 +:04581500000000008F +:04581600000000008E +:04581700000000008D +:04581800000000008C +:04581900000000008B +:04581A00000000008A +:04581B000000000089 +:04581C000000000088 +:04581D000000000087 +:04581E000000000086 +:04581F000000000085 +:045820000000000084 +:045821000000000083 +:045822000000000082 +:045823000000000081 +:045824000000000080 +:04582500000000007F +:04582600000000007E +:04582700000000007D +:04582800000000007C +:04582900000000007B +:04582A00000000007A +:04582B000000000079 +:04582C000000000078 +:04582D000000000077 +:04582E000000000076 +:04582F000000000075 +:045830000000000074 +:045831000000000073 +:045832000000000072 +:045833000000000071 +:045834000000000070 +:04583500000000006F +:04583600000000006E +:04583700000000006D +:04583800000000006C +:04583900000000006B +:04583A00000000006A +:04583B000000000069 +:04583C000000000068 +:04583D000000000067 +:04583E000000000066 +:04583F000000000065 +:045840000000000064 +:045841000000000063 +:045842000000000062 +:045843000000000061 +:045844000000000060 +:04584500000000005F +:04584600000000005E +:04584700000000005D +:04584800000000005C +:04584900000000005B +:04584A00000000005A +:04584B000000000059 +:04584C000000000058 +:04584D000000000057 +:04584E000000000056 +:04584F000000000055 +:045850000000000054 +:045851000000000053 +:045852000000000052 +:045853000000000051 +:045854000000000050 +:04585500000000004F +:04585600000000004E +:04585700000000004D +:04585800000000004C +:04585900000000004B +:04585A00000000004A +:04585B000000000049 +:04585C000000000048 +:04585D000000000047 +:04585E000000000046 +:04585F000000000045 +:045860000000000044 +:045861000000000043 +:045862000000000042 +:045863000000000041 +:045864000000000040 +:04586500000000003F +:04586600000000003E +:04586700000000003D +:04586800000000003C +:04586900000000003B +:04586A00000000003A +:04586B000000000039 +:04586C000000000038 +:04586D000000000037 +:04586E000000000036 +:04586F000000000035 +:045870000000000034 +:045871000000000033 +:045872000000000032 +:045873000000000031 +:045874000000000030 +:04587500000000002F +:04587600000000002E +:04587700000000002D +:04587800000000002C +:04587900000000002B +:04587A00000000002A +:04587B000000000029 +:04587C000000000028 +:04587D000000000027 +:04587E000000000026 +:04587F000000000025 +:045880000000000024 +:045881000000000023 +:045882000000000022 +:045883000000000021 +:045884000000000020 +:04588500000000001F +:04588600000000001E +:04588700000000001D +:04588800000000001C +:04588900000000001B +:04588A00000000001A +:04588B000000000019 +:04588C000000000018 +:04588D000000000017 +:04588E000000000016 +:04588F000000000015 +:045890000000000014 +:045891000000000013 +:045892000000000012 +:045893000000000011 +:045894000000000010 +:04589500000000000F +:04589600000000000E +:04589700000000000D +:04589800000000000C +:04589900000000000B +:04589A00000000000A +:04589B000000000009 +:04589C000000000008 +:04589D000000000007 +:04589E000000000006 +:04589F000000000005 +:0458A0000000000004 +:0458A1000000000003 +:0458A2000000000002 +:0458A3000000000001 +:0458A4000000000000 +:0458A50000000000FF +:0458A60000000000FE +:0458A70000000000FD +:0458A80000000000FC +:0458A90000000000FB +:0458AA0000000000FA +:0458AB0000000000F9 +:0458AC0000000000F8 +:0458AD0000000000F7 +:0458AE0000000000F6 +:0458AF0000000000F5 +:0458B00000000000F4 +:0458B10000000000F3 +:0458B20000000000F2 +:0458B30000000000F1 +:0458B40000000000F0 +:0458B50000000000EF +:0458B60000000000EE +:0458B70000000000ED +:0458B80000000000EC +:0458B90000000000EB +:0458BA0000000000EA +:0458BB0000000000E9 +:0458BC0000000000E8 +:0458BD0000000000E7 +:0458BE0000000000E6 +:0458BF0000000000E5 +:0458C00000000000E4 +:0458C10000000000E3 +:0458C20000000000E2 +:0458C30000000000E1 +:0458C40000000000E0 +:0458C50000000000DF +:0458C60000000000DE +:0458C70000000000DD +:0458C80000000000DC +:0458C90000000000DB +:0458CA0000000000DA +:0458CB0000000000D9 +:0458CC0000000000D8 +:0458CD0000000000D7 +:0458CE0000000000D6 +:0458CF0000000000D5 +:0458D00000000000D4 +:0458D10000000000D3 +:0458D20000000000D2 +:0458D30000000000D1 +:0458D40000000000D0 +:0458D50000000000CF +:0458D60000000000CE +:0458D70000000000CD +:0458D80000000000CC +:0458D90000000000CB +:0458DA0000000000CA +:0458DB0000000000C9 +:0458DC0000000000C8 +:0458DD0000000000C7 +:0458DE0000000000C6 +:0458DF0000000000C5 +:0458E00000000000C4 +:0458E10000000000C3 +:0458E20000000000C2 +:0458E30000000000C1 +:0458E40000000000C0 +:0458E50000000000BF +:0458E60000000000BE +:0458E70000000000BD +:0458E80000000000BC +:0458E90000000000BB +:0458EA0000000000BA +:0458EB0000000000B9 +:0458EC0000000000B8 +:0458ED0000000000B7 +:0458EE0000000000B6 +:0458EF0000000000B5 +:0458F00000000000B4 +:0458F10000000000B3 +:0458F20000000000B2 +:0458F30000000000B1 +:0458F40000000000B0 +:0458F50000000000AF +:0458F60000000000AE +:0458F70000000000AD +:0458F80000000000AC +:0458F90000000000AB +:0458FA0000000000AA +:0458FB0000000000A9 +:0458FC0000000000A8 +:0458FD0000000000A7 +:0458FE0000000000A6 +:0458FF0000000000A5 +:0459000000000000A3 +:0459010000000000A2 +:0459020000000000A1 +:0459030000000000A0 +:04590400000000009F +:04590500000000009E +:04590600000000009D +:04590700000000009C +:04590800000000009B +:04590900000000009A +:04590A000000000099 +:04590B000000000098 +:04590C000000000097 +:04590D000000000096 +:04590E000000000095 +:04590F000000000094 +:045910000000000093 +:045911000000000092 +:045912000000000091 +:045913000000000090 +:04591400000000008F +:04591500000000008E +:04591600000000008D +:04591700000000008C +:04591800000000008B +:04591900000000008A +:04591A000000000089 +:04591B000000000088 +:04591C000000000087 +:04591D000000000086 +:04591E000000000085 +:04591F000000000084 +:045920000000000083 +:045921000000000082 +:045922000000000081 +:045923000000000080 +:04592400000000007F +:04592500000000007E +:04592600000000007D +:04592700000000007C +:04592800000000007B +:04592900000000007A +:04592A000000000079 +:04592B000000000078 +:04592C000000000077 +:04592D000000000076 +:04592E000000000075 +:04592F000000000074 +:045930000000000073 +:045931000000000072 +:045932000000000071 +:045933000000000070 +:04593400000000006F +:04593500000000006E +:04593600000000006D +:04593700000000006C +:04593800000000006B +:04593900000000006A +:04593A000000000069 +:04593B000000000068 +:04593C000000000067 +:04593D000000000066 +:04593E000000000065 +:04593F000000000064 +:045940000000000063 +:045941000000000062 +:045942000000000061 +:045943000000000060 +:04594400000000005F +:04594500000000005E +:04594600000000005D +:04594700000000005C +:04594800000000005B +:04594900000000005A +:04594A000000000059 +:04594B000000000058 +:04594C000000000057 +:04594D000000000056 +:04594E000000000055 +:04594F000000000054 +:045950000000000053 +:045951000000000052 +:045952000000000051 +:045953000000000050 +:04595400000000004F +:04595500000000004E +:04595600000000004D +:04595700000000004C +:04595800000000004B +:04595900000000004A +:04595A000000000049 +:04595B000000000048 +:04595C000000000047 +:04595D000000000046 +:04595E000000000045 +:04595F000000000044 +:045960000000000043 +:045961000000000042 +:045962000000000041 +:045963000000000040 +:04596400000000003F +:04596500000000003E +:04596600000000003D +:04596700000000003C +:04596800000000003B +:04596900000000003A +:04596A000000000039 +:04596B000000000038 +:04596C000000000037 +:04596D000000000036 +:04596E000000000035 +:04596F000000000034 +:045970000000000033 +:045971000000000032 +:045972000000000031 +:045973000000000030 +:04597400000000002F +:04597500000000002E +:04597600000000002D +:04597700000000002C +:04597800000000002B +:04597900000000002A +:04597A000000000029 +:04597B000000000028 +:04597C000000000027 +:04597D000000000026 +:04597E000000000025 +:04597F000000000024 +:045980000000000023 +:045981000000000022 +:045982000000000021 +:045983000000000020 +:04598400000000001F +:04598500000000001E +:04598600000000001D +:04598700000000001C +:04598800000000001B +:04598900000000001A +:04598A000000000019 +:04598B000000000018 +:04598C000000000017 +:04598D000000000016 +:04598E000000000015 +:04598F000000000014 +:045990000000000013 +:045991000000000012 +:045992000000000011 +:045993000000000010 +:04599400000000000F +:04599500000000000E +:04599600000000000D +:04599700000000000C +:04599800000000000B +:04599900000000000A +:04599A000000000009 +:04599B000000000008 +:04599C000000000007 +:04599D000000000006 +:04599E000000000005 +:04599F000000000004 +:0459A0000000000003 +:0459A1000000000002 +:0459A2000000000001 +:0459A3000000000000 +:0459A40000000000FF +:0459A50000000000FE +:0459A60000000000FD +:0459A70000000000FC +:0459A80000000000FB +:0459A90000000000FA +:0459AA0000000000F9 +:0459AB0000000000F8 +:0459AC0000000000F7 +:0459AD0000000000F6 +:0459AE0000000000F5 +:0459AF0000000000F4 +:0459B00000000000F3 +:0459B10000000000F2 +:0459B20000000000F1 +:0459B30000000000F0 +:0459B40000000000EF +:0459B50000000000EE +:0459B60000000000ED +:0459B70000000000EC +:0459B80000000000EB +:0459B90000000000EA +:0459BA0000000000E9 +:0459BB0000000000E8 +:0459BC0000000000E7 +:0459BD0000000000E6 +:0459BE0000000000E5 +:0459BF0000000000E4 +:0459C00000000000E3 +:0459C10000000000E2 +:0459C20000000000E1 +:0459C30000000000E0 +:0459C40000000000DF +:0459C50000000000DE +:0459C60000000000DD +:0459C70000000000DC +:0459C80000000000DB +:0459C90000000000DA +:0459CA0000000000D9 +:0459CB0000000000D8 +:0459CC0000000000D7 +:0459CD0000000000D6 +:0459CE0000000000D5 +:0459CF0000000000D4 +:0459D00000000000D3 +:0459D10000000000D2 +:0459D20000000000D1 +:0459D30000000000D0 +:0459D40000000000CF +:0459D50000000000CE +:0459D60000000000CD +:0459D70000000000CC +:0459D80000000000CB +:0459D90000000000CA +:0459DA0000000000C9 +:0459DB0000000000C8 +:0459DC0000000000C7 +:0459DD0000000000C6 +:0459DE0000000000C5 +:0459DF0000000000C4 +:0459E00000000000C3 +:0459E10000000000C2 +:0459E20000000000C1 +:0459E30000000000C0 +:0459E40000000000BF +:0459E50000000000BE +:0459E60000000000BD +:0459E70000000000BC +:0459E80000000000BB +:0459E90000000000BA +:0459EA0000000000B9 +:0459EB0000000000B8 +:0459EC0000000000B7 +:0459ED0000000000B6 +:0459EE0000000000B5 +:0459EF0000000000B4 +:0459F00000000000B3 +:0459F10000000000B2 +:0459F20000000000B1 +:0459F30000000000B0 +:0459F40000000000AF +:0459F50000000000AE +:0459F60000000000AD +:0459F70000000000AC +:0459F80000000000AB +:0459F90000000000AA +:0459FA0000000000A9 +:0459FB0000000000A8 +:0459FC0000000000A7 +:0459FD0000000000A6 +:0459FE0000000000A5 +:0459FF0000000000A4 +:045A000000000000A2 +:045A010000000000A1 +:045A020000000000A0 +:045A0300000000009F +:045A0400000000009E +:045A0500000000009D +:045A0600000000009C +:045A0700000000009B +:045A0800000000009A +:045A09000000000099 +:045A0A000000000098 +:045A0B000000000097 +:045A0C000000000096 +:045A0D000000000095 +:045A0E000000000094 +:045A0F000000000093 +:045A10000000000092 +:045A11000000000091 +:045A12000000000090 +:045A1300000000008F +:045A1400000000008E +:045A1500000000008D +:045A1600000000008C +:045A1700000000008B +:045A1800000000008A +:045A19000000000089 +:045A1A000000000088 +:045A1B000000000087 +:045A1C000000000086 +:045A1D000000000085 +:045A1E000000000084 +:045A1F000000000083 +:045A20000000000082 +:045A21000000000081 +:045A22000000000080 +:045A2300000000007F +:045A2400000000007E +:045A2500000000007D +:045A2600000000007C +:045A2700000000007B +:045A2800000000007A +:045A29000000000079 +:045A2A000000000078 +:045A2B000000000077 +:045A2C000000000076 +:045A2D000000000075 +:045A2E000000000074 +:045A2F000000000073 +:045A30000000000072 +:045A31000000000071 +:045A32000000000070 +:045A3300000000006F +:045A3400000000006E +:045A3500000000006D +:045A3600000000006C +:045A3700000000006B +:045A3800000000006A +:045A39000000000069 +:045A3A000000000068 +:045A3B000000000067 +:045A3C000000000066 +:045A3D000000000065 +:045A3E000000000064 +:045A3F000000000063 +:045A40000000000062 +:045A41000000000061 +:045A42000000000060 +:045A4300000000005F +:045A4400000000005E +:045A4500000000005D +:045A4600000000005C +:045A4700000000005B +:045A4800000000005A +:045A49000000000059 +:045A4A000000000058 +:045A4B000000000057 +:045A4C000000000056 +:045A4D000000000055 +:045A4E000000000054 +:045A4F000000000053 +:045A50000000000052 +:045A51000000000051 +:045A52000000000050 +:045A5300000000004F +:045A5400000000004E +:045A5500000000004D +:045A5600000000004C +:045A5700000000004B +:045A5800000000004A +:045A59000000000049 +:045A5A000000000048 +:045A5B000000000047 +:045A5C000000000046 +:045A5D000000000045 +:045A5E000000000044 +:045A5F000000000043 +:045A60000000000042 +:045A61000000000041 +:045A62000000000040 +:045A6300000000003F +:045A6400000000003E +:045A6500000000003D +:045A6600000000003C +:045A6700000000003B +:045A6800000000003A +:045A69000000000039 +:045A6A000000000038 +:045A6B000000000037 +:045A6C000000000036 +:045A6D000000000035 +:045A6E000000000034 +:045A6F000000000033 +:045A70000000000032 +:045A71000000000031 +:045A72000000000030 +:045A7300000000002F +:045A7400000000002E +:045A7500000000002D +:045A7600000000002C +:045A7700000000002B +:045A7800000000002A +:045A79000000000029 +:045A7A000000000028 +:045A7B000000000027 +:045A7C000000000026 +:045A7D000000000025 +:045A7E000000000024 +:045A7F000000000023 +:045A80000000000022 +:045A81000000000021 +:045A82000000000020 +:045A8300000000001F +:045A8400000000001E +:045A8500000000001D +:045A8600000000001C +:045A8700000000001B +:045A8800000000001A +:045A89000000000019 +:045A8A000000000018 +:045A8B000000000017 +:045A8C000000000016 +:045A8D000000000015 +:045A8E000000000014 +:045A8F000000000013 +:045A90000000000012 +:045A91000000000011 +:045A92000000000010 +:045A9300000000000F +:045A9400000000000E +:045A9500000000000D +:045A9600000000000C +:045A9700000000000B +:045A9800000000000A +:045A99000000000009 +:045A9A000000000008 +:045A9B000000000007 +:045A9C000000000006 +:045A9D000000000005 +:045A9E000000000004 +:045A9F000000000003 +:045AA0000000000002 +:045AA1000000000001 +:045AA2000000000000 +:045AA30000000000FF +:045AA40000000000FE +:045AA50000000000FD +:045AA60000000000FC +:045AA70000000000FB +:045AA80000000000FA +:045AA90000000000F9 +:045AAA0000000000F8 +:045AAB0000000000F7 +:045AAC0000000000F6 +:045AAD0000000000F5 +:045AAE0000000000F4 +:045AAF0000000000F3 +:045AB00000000000F2 +:045AB10000000000F1 +:045AB20000000000F0 +:045AB30000000000EF +:045AB40000000000EE +:045AB50000000000ED +:045AB60000000000EC +:045AB70000000000EB +:045AB80000000000EA +:045AB90000000000E9 +:045ABA0000000000E8 +:045ABB0000000000E7 +:045ABC0000000000E6 +:045ABD0000000000E5 +:045ABE0000000000E4 +:045ABF0000000000E3 +:045AC00000000000E2 +:045AC10000000000E1 +:045AC20000000000E0 +:045AC30000000000DF +:045AC40000000000DE +:045AC50000000000DD +:045AC60000000000DC +:045AC70000000000DB +:045AC80000000000DA +:045AC90000000000D9 +:045ACA0000000000D8 +:045ACB0000000000D7 +:045ACC0000000000D6 +:045ACD0000000000D5 +:045ACE0000000000D4 +:045ACF0000000000D3 +:045AD00000000000D2 +:045AD10000000000D1 +:045AD20000000000D0 +:045AD30000000000CF +:045AD40000000000CE +:045AD50000000000CD +:045AD60000000000CC +:045AD70000000000CB +:045AD80000000000CA +:045AD90000000000C9 +:045ADA0000000000C8 +:045ADB0000000000C7 +:045ADC0000000000C6 +:045ADD0000000000C5 +:045ADE0000000000C4 +:045ADF0000000000C3 +:045AE00000000000C2 +:045AE10000000000C1 +:045AE20000000000C0 +:045AE30000000000BF +:045AE40000000000BE +:045AE50000000000BD +:045AE60000000000BC +:045AE70000000000BB +:045AE80000000000BA +:045AE90000000000B9 +:045AEA0000000000B8 +:045AEB0000000000B7 +:045AEC0000000000B6 +:045AED0000000000B5 +:045AEE0000000000B4 +:045AEF0000000000B3 +:045AF00000000000B2 +:045AF10000000000B1 +:045AF20000000000B0 +:045AF30000000000AF +:045AF40000000000AE +:045AF50000000000AD +:045AF60000000000AC +:045AF70000000000AB +:045AF80000000000AA +:045AF90000000000A9 +:045AFA0000000000A8 +:045AFB0000000000A7 +:045AFC0000000000A6 +:045AFD0000000000A5 +:045AFE0000000000A4 +:045AFF0000000000A3 +:045B000000000000A1 +:045B010000000000A0 +:045B0200000000009F +:045B0300000000009E +:045B0400000000009D +:045B0500000000009C +:045B0600000000009B +:045B0700000000009A +:045B08000000000099 +:045B09000000000098 +:045B0A000000000097 +:045B0B000000000096 +:045B0C000000000095 +:045B0D000000000094 +:045B0E000000000093 +:045B0F000000000092 +:045B10000000000091 +:045B11000000000090 +:045B1200000000008F +:045B1300000000008E +:045B1400000000008D +:045B1500000000008C +:045B1600000000008B +:045B1700000000008A +:045B18000000000089 +:045B19000000000088 +:045B1A000000000087 +:045B1B000000000086 +:045B1C000000000085 +:045B1D000000000084 +:045B1E000000000083 +:045B1F000000000082 +:045B20000000000081 +:045B21000000000080 +:045B2200000000007F +:045B2300000000007E +:045B2400000000007D +:045B2500000000007C +:045B2600000000007B +:045B2700000000007A +:045B28000000000079 +:045B29000000000078 +:045B2A000000000077 +:045B2B000000000076 +:045B2C000000000075 +:045B2D000000000074 +:045B2E000000000073 +:045B2F000000000072 +:045B30000000000071 +:045B31000000000070 +:045B3200000000006F +:045B3300000000006E +:045B3400000000006D +:045B3500000000006C +:045B3600000000006B +:045B3700000000006A +:045B38000000000069 +:045B39000000000068 +:045B3A000000000067 +:045B3B000000000066 +:045B3C000000000065 +:045B3D000000000064 +:045B3E000000000063 +:045B3F000000000062 +:045B40000000000061 +:045B41000000000060 +:045B4200000000005F +:045B4300000000005E +:045B4400000000005D +:045B4500000000005C +:045B4600000000005B +:045B4700000000005A +:045B48000000000059 +:045B49000000000058 +:045B4A000000000057 +:045B4B000000000056 +:045B4C000000000055 +:045B4D000000000054 +:045B4E000000000053 +:045B4F000000000052 +:045B50000000000051 +:045B51000000000050 +:045B5200000000004F +:045B5300000000004E +:045B5400000000004D +:045B5500000000004C +:045B5600000000004B +:045B5700000000004A +:045B58000000000049 +:045B59000000000048 +:045B5A000000000047 +:045B5B000000000046 +:045B5C000000000045 +:045B5D000000000044 +:045B5E000000000043 +:045B5F000000000042 +:045B60000000000041 +:045B61000000000040 +:045B6200000000003F +:045B6300000000003E +:045B6400000000003D +:045B6500000000003C +:045B6600000000003B +:045B6700000000003A +:045B68000000000039 +:045B69000000000038 +:045B6A000000000037 +:045B6B000000000036 +:045B6C000000000035 +:045B6D000000000034 +:045B6E000000000033 +:045B6F000000000032 +:045B70000000000031 +:045B71000000000030 +:045B7200000000002F +:045B7300000000002E +:045B7400000000002D +:045B7500000000002C +:045B7600000000002B +:045B7700000000002A +:045B78000000000029 +:045B79000000000028 +:045B7A000000000027 +:045B7B000000000026 +:045B7C000000000025 +:045B7D000000000024 +:045B7E000000000023 +:045B7F000000000022 +:045B80000000000021 +:045B81000000000020 +:045B8200000000001F +:045B8300000000001E +:045B8400000000001D +:045B8500000000001C +:045B8600000000001B +:045B8700000000001A +:045B88000000000019 +:045B89000000000018 +:045B8A000000000017 +:045B8B000000000016 +:045B8C000000000015 +:045B8D000000000014 +:045B8E000000000013 +:045B8F000000000012 +:045B90000000000011 +:045B91000000000010 +:045B9200000000000F +:045B9300000000000E +:045B9400000000000D +:045B9500000000000C +:045B9600000000000B +:045B9700000000000A +:045B98000000000009 +:045B99000000000008 +:045B9A000000000007 +:045B9B000000000006 +:045B9C000000000005 +:045B9D000000000004 +:045B9E000000000003 +:045B9F000000000002 +:045BA0000000000001 +:045BA1000000000000 +:045BA20000000000FF +:045BA30000000000FE +:045BA40000000000FD +:045BA50000000000FC +:045BA60000000000FB +:045BA70000000000FA +:045BA80000000000F9 +:045BA90000000000F8 +:045BAA0000000000F7 +:045BAB0000000000F6 +:045BAC0000000000F5 +:045BAD0000000000F4 +:045BAE0000000000F3 +:045BAF0000000000F2 +:045BB00000000000F1 +:045BB10000000000F0 +:045BB20000000000EF +:045BB30000000000EE +:045BB40000000000ED +:045BB50000000000EC +:045BB60000000000EB +:045BB70000000000EA +:045BB80000000000E9 +:045BB90000000000E8 +:045BBA0000000000E7 +:045BBB0000000000E6 +:045BBC0000000000E5 +:045BBD0000000000E4 +:045BBE0000000000E3 +:045BBF0000000000E2 +:045BC00000000000E1 +:045BC10000000000E0 +:045BC20000000000DF +:045BC30000000000DE +:045BC40000000000DD +:045BC50000000000DC +:045BC60000000000DB +:045BC70000000000DA +:045BC80000000000D9 +:045BC90000000000D8 +:045BCA0000000000D7 +:045BCB0000000000D6 +:045BCC0000000000D5 +:045BCD0000000000D4 +:045BCE0000000000D3 +:045BCF0000000000D2 +:045BD00000000000D1 +:045BD10000000000D0 +:045BD20000000000CF +:045BD30000000000CE +:045BD40000000000CD +:045BD50000000000CC +:045BD60000000000CB +:045BD70000000000CA +:045BD80000000000C9 +:045BD90000000000C8 +:045BDA0000000000C7 +:045BDB0000000000C6 +:045BDC0000000000C5 +:045BDD0000000000C4 +:045BDE0000000000C3 +:045BDF0000000000C2 +:045BE00000000000C1 +:045BE10000000000C0 +:045BE20000000000BF +:045BE30000000000BE +:045BE40000000000BD +:045BE50000000000BC +:045BE60000000000BB +:045BE70000000000BA +:045BE80000000000B9 +:045BE90000000000B8 +:045BEA0000000000B7 +:045BEB0000000000B6 +:045BEC0000000000B5 +:045BED0000000000B4 +:045BEE0000000000B3 +:045BEF0000000000B2 +:045BF00000000000B1 +:045BF10000000000B0 +:045BF20000000000AF +:045BF30000000000AE +:045BF40000000000AD +:045BF50000000000AC +:045BF60000000000AB +:045BF70000000000AA +:045BF80000000000A9 +:045BF90000000000A8 +:045BFA0000000000A7 +:045BFB0000000000A6 +:045BFC0000000000A5 +:045BFD0000000000A4 +:045BFE0000000000A3 +:045BFF0000000000A2 +:045C000000000000A0 +:045C0100000000009F +:045C0200000000009E +:045C0300000000009D +:045C0400000000009C +:045C0500000000009B +:045C0600000000009A +:045C07000000000099 +:045C08000000000098 +:045C09000000000097 +:045C0A000000000096 +:045C0B000000000095 +:045C0C000000000094 +:045C0D000000000093 +:045C0E000000000092 +:045C0F000000000091 +:045C10000000000090 +:045C1100000000008F +:045C1200000000008E +:045C1300000000008D +:045C1400000000008C +:045C1500000000008B +:045C1600000000008A +:045C17000000000089 +:045C18000000000088 +:045C19000000000087 +:045C1A000000000086 +:045C1B000000000085 +:045C1C000000000084 +:045C1D000000000083 +:045C1E000000000082 +:045C1F000000000081 +:045C20000000000080 +:045C2100000000007F +:045C2200000000007E +:045C2300000000007D +:045C2400000000007C +:045C2500000000007B +:045C2600000000007A +:045C27000000000079 +:045C28000000000078 +:045C29000000000077 +:045C2A000000000076 +:045C2B000000000075 +:045C2C000000000074 +:045C2D000000000073 +:045C2E000000000072 +:045C2F000000000071 +:045C30000000000070 +:045C3100000000006F +:045C3200000000006E +:045C3300000000006D +:045C3400000000006C +:045C3500000000006B +:045C3600000000006A +:045C37000000000069 +:045C38000000000068 +:045C39000000000067 +:045C3A000000000066 +:045C3B000000000065 +:045C3C000000000064 +:045C3D000000000063 +:045C3E000000000062 +:045C3F000000000061 +:045C40000000000060 +:045C4100000000005F +:045C4200000000005E +:045C4300000000005D +:045C4400000000005C +:045C4500000000005B +:045C4600000000005A +:045C47000000000059 +:045C48000000000058 +:045C49000000000057 +:045C4A000000000056 +:045C4B000000000055 +:045C4C000000000054 +:045C4D000000000053 +:045C4E000000000052 +:045C4F000000000051 +:045C50000000000050 +:045C5100000000004F +:045C5200000000004E +:045C5300000000004D +:045C5400000000004C +:045C5500000000004B +:045C5600000000004A +:045C57000000000049 +:045C58000000000048 +:045C59000000000047 +:045C5A000000000046 +:045C5B000000000045 +:045C5C000000000044 +:045C5D000000000043 +:045C5E000000000042 +:045C5F000000000041 +:045C60000000000040 +:045C6100000000003F +:045C6200000000003E +:045C6300000000003D +:045C6400000000003C +:045C6500000000003B +:045C6600000000003A +:045C67000000000039 +:045C68000000000038 +:045C69000000000037 +:045C6A000000000036 +:045C6B000000000035 +:045C6C000000000034 +:045C6D000000000033 +:045C6E000000000032 +:045C6F000000000031 +:045C70000000000030 +:045C7100000000002F +:045C7200000000002E +:045C7300000000002D +:045C7400000000002C +:045C7500000000002B +:045C7600000000002A +:045C77000000000029 +:045C78000000000028 +:045C79000000000027 +:045C7A000000000026 +:045C7B000000000025 +:045C7C000000000024 +:045C7D000000000023 +:045C7E000000000022 +:045C7F000000000021 +:045C80000000000020 +:045C8100000000001F +:045C8200000000001E +:045C8300000000001D +:045C8400000000001C +:045C8500000000001B +:045C8600000000001A +:045C87000000000019 +:045C88000000000018 +:045C89000000000017 +:045C8A000000000016 +:045C8B000000000015 +:045C8C000000000014 +:045C8D000000000013 +:045C8E000000000012 +:045C8F000000000011 +:045C90000000000010 +:045C9100000000000F +:045C9200000000000E +:045C9300000000000D +:045C9400000000000C +:045C9500000000000B +:045C9600000000000A +:045C97000000000009 +:045C98000000000008 +:045C99000000000007 +:045C9A000000000006 +:045C9B000000000005 +:045C9C000000000004 +:045C9D000000000003 +:045C9E000000000002 +:045C9F000000000001 +:045CA0000000000000 +:045CA10000000000FF +:045CA20000000000FE +:045CA30000000000FD +:045CA40000000000FC +:045CA50000000000FB +:045CA60000000000FA +:045CA70000000000F9 +:045CA80000000000F8 +:045CA90000000000F7 +:045CAA0000000000F6 +:045CAB0000000000F5 +:045CAC0000000000F4 +:045CAD0000000000F3 +:045CAE0000000000F2 +:045CAF0000000000F1 +:045CB00000000000F0 +:045CB10000000000EF +:045CB20000000000EE +:045CB30000000000ED +:045CB40000000000EC +:045CB50000000000EB +:045CB60000000000EA +:045CB70000000000E9 +:045CB80000000000E8 +:045CB90000000000E7 +:045CBA0000000000E6 +:045CBB0000000000E5 +:045CBC0000000000E4 +:045CBD0000000000E3 +:045CBE0000000000E2 +:045CBF0000000000E1 +:045CC00000000000E0 +:045CC10000000000DF +:045CC20000000000DE +:045CC30000000000DD +:045CC40000000000DC +:045CC50000000000DB +:045CC60000000000DA +:045CC70000000000D9 +:045CC80000000000D8 +:045CC90000000000D7 +:045CCA0000000000D6 +:045CCB0000000000D5 +:045CCC0000000000D4 +:045CCD0000000000D3 +:045CCE0000000000D2 +:045CCF0000000000D1 +:045CD00000000000D0 +:045CD10000000000CF +:045CD20000000000CE +:045CD30000000000CD +:045CD40000000000CC +:045CD50000000000CB +:045CD60000000000CA +:045CD70000000000C9 +:045CD80000000000C8 +:045CD90000000000C7 +:045CDA0000000000C6 +:045CDB0000000000C5 +:045CDC0000000000C4 +:045CDD0000000000C3 +:045CDE0000000000C2 +:045CDF0000000000C1 +:045CE00000000000C0 +:045CE10000000000BF +:045CE20000000000BE +:045CE30000000000BD +:045CE40000000000BC +:045CE50000000000BB +:045CE60000000000BA +:045CE70000000000B9 +:045CE80000000000B8 +:045CE90000000000B7 +:045CEA0000000000B6 +:045CEB0000000000B5 +:045CEC0000000000B4 +:045CED0000000000B3 +:045CEE0000000000B2 +:045CEF0000000000B1 +:045CF00000000000B0 +:045CF10000000000AF +:045CF20000000000AE +:045CF30000000000AD +:045CF40000000000AC +:045CF50000000000AB +:045CF60000000000AA +:045CF70000000000A9 +:045CF80000000000A8 +:045CF90000000000A7 +:045CFA0000000000A6 +:045CFB0000000000A5 +:045CFC0000000000A4 +:045CFD0000000000A3 +:045CFE0000000000A2 +:045CFF0000000000A1 +:045D0000000000009F +:045D0100000000009E +:045D0200000000009D +:045D0300000000009C +:045D0400000000009B +:045D0500000000009A +:045D06000000000099 +:045D07000000000098 +:045D08000000000097 +:045D09000000000096 +:045D0A000000000095 +:045D0B000000000094 +:045D0C000000000093 +:045D0D000000000092 +:045D0E000000000091 +:045D0F000000000090 +:045D1000000000008F +:045D1100000000008E +:045D1200000000008D +:045D1300000000008C +:045D1400000000008B +:045D1500000000008A +:045D16000000000089 +:045D17000000000088 +:045D18000000000087 +:045D19000000000086 +:045D1A000000000085 +:045D1B000000000084 +:045D1C000000000083 +:045D1D000000000082 +:045D1E000000000081 +:045D1F000000000080 +:045D2000000000007F +:045D2100000000007E +:045D2200000000007D +:045D2300000000007C +:045D2400000000007B +:045D2500000000007A +:045D26000000000079 +:045D27000000000078 +:045D28000000000077 +:045D29000000000076 +:045D2A000000000075 +:045D2B000000000074 +:045D2C000000000073 +:045D2D000000000072 +:045D2E000000000071 +:045D2F000000000070 +:045D3000000000006F +:045D3100000000006E +:045D3200000000006D +:045D3300000000006C +:045D3400000000006B +:045D3500000000006A +:045D36000000000069 +:045D37000000000068 +:045D38000000000067 +:045D39000000000066 +:045D3A000000000065 +:045D3B000000000064 +:045D3C000000000063 +:045D3D000000000062 +:045D3E000000000061 +:045D3F000000000060 +:045D4000000000005F +:045D4100000000005E +:045D4200000000005D +:045D4300000000005C +:045D4400000000005B +:045D4500000000005A +:045D46000000000059 +:045D47000000000058 +:045D48000000000057 +:045D49000000000056 +:045D4A000000000055 +:045D4B000000000054 +:045D4C000000000053 +:045D4D000000000052 +:045D4E000000000051 +:045D4F000000000050 +:045D5000000000004F +:045D5100000000004E +:045D5200000000004D +:045D5300000000004C +:045D5400000000004B +:045D5500000000004A +:045D56000000000049 +:045D57000000000048 +:045D58000000000047 +:045D59000000000046 +:045D5A000000000045 +:045D5B000000000044 +:045D5C000000000043 +:045D5D000000000042 +:045D5E000000000041 +:045D5F000000000040 +:045D6000000000003F +:045D6100000000003E +:045D6200000000003D +:045D6300000000003C +:045D6400000000003B +:045D6500000000003A +:045D66000000000039 +:045D67000000000038 +:045D68000000000037 +:045D69000000000036 +:045D6A000000000035 +:045D6B000000000034 +:045D6C000000000033 +:045D6D000000000032 +:045D6E000000000031 +:045D6F000000000030 +:045D7000000000002F +:045D7100000000002E +:045D7200000000002D +:045D7300000000002C +:045D7400000000002B +:045D7500000000002A +:045D76000000000029 +:045D77000000000028 +:045D78000000000027 +:045D79000000000026 +:045D7A000000000025 +:045D7B000000000024 +:045D7C000000000023 +:045D7D000000000022 +:045D7E000000000021 +:045D7F000000000020 +:045D8000000000001F +:045D8100000000001E +:045D8200000000001D +:045D8300000000001C +:045D8400000000001B +:045D8500000000001A +:045D86000000000019 +:045D87000000000018 +:045D88000000000017 +:045D89000000000016 +:045D8A000000000015 +:045D8B000000000014 +:045D8C000000000013 +:045D8D000000000012 +:045D8E000000000011 +:045D8F000000000010 +:045D9000000000000F +:045D9100000000000E +:045D9200000000000D +:045D9300000000000C +:045D9400000000000B +:045D9500000000000A +:045D96000000000009 +:045D97000000000008 +:045D98000000000007 +:045D99000000000006 +:045D9A000000000005 +:045D9B000000000004 +:045D9C000000000003 +:045D9D000000000002 +:045D9E000000000001 +:045D9F000000000000 +:045DA00000000000FF +:045DA10000000000FE +:045DA20000000000FD +:045DA30000000000FC +:045DA40000000000FB +:045DA50000000000FA +:045DA60000000000F9 +:045DA70000000000F8 +:045DA80000000000F7 +:045DA90000000000F6 +:045DAA0000000000F5 +:045DAB0000000000F4 +:045DAC0000000000F3 +:045DAD0000000000F2 +:045DAE0000000000F1 +:045DAF0000000000F0 +:045DB00000000000EF +:045DB10000000000EE +:045DB20000000000ED +:045DB30000000000EC +:045DB40000000000EB +:045DB50000000000EA +:045DB60000000000E9 +:045DB70000000000E8 +:045DB80000000000E7 +:045DB90000000000E6 +:045DBA0000000000E5 +:045DBB0000000000E4 +:045DBC0000000000E3 +:045DBD0000000000E2 +:045DBE0000000000E1 +:045DBF0000000000E0 +:045DC00000000000DF +:045DC10000000000DE +:045DC20000000000DD +:045DC30000000000DC +:045DC40000000000DB +:045DC50000000000DA +:045DC60000000000D9 +:045DC70000000000D8 +:045DC80000000000D7 +:045DC90000000000D6 +:045DCA0000000000D5 +:045DCB0000000000D4 +:045DCC0000000000D3 +:045DCD0000000000D2 +:045DCE0000000000D1 +:045DCF0000000000D0 +:045DD00000000000CF +:045DD10000000000CE +:045DD20000000000CD +:045DD30000000000CC +:045DD40000000000CB +:045DD50000000000CA +:045DD60000000000C9 +:045DD70000000000C8 +:045DD80000000000C7 +:045DD90000000000C6 +:045DDA0000000000C5 +:045DDB0000000000C4 +:045DDC0000000000C3 +:045DDD0000000000C2 +:045DDE0000000000C1 +:045DDF0000000000C0 +:045DE00000000000BF +:045DE10000000000BE +:045DE20000000000BD +:045DE30000000000BC +:045DE40000000000BB +:045DE50000000000BA +:045DE60000000000B9 +:045DE70000000000B8 +:045DE80000000000B7 +:045DE90000000000B6 +:045DEA0000000000B5 +:045DEB0000000000B4 +:045DEC0000000000B3 +:045DED0000000000B2 +:045DEE0000000000B1 +:045DEF0000000000B0 +:045DF00000000000AF +:045DF10000000000AE +:045DF20000000000AD +:045DF30000000000AC +:045DF40000000000AB +:045DF50000000000AA +:045DF60000000000A9 +:045DF70000000000A8 +:045DF80000000000A7 +:045DF90000000000A6 +:045DFA0000000000A5 +:045DFB0000000000A4 +:045DFC0000000000A3 +:045DFD0000000000A2 +:045DFE0000000000A1 +:045DFF0000000000A0 +:045E0000000000009E +:045E0100000000009D +:045E0200000000009C +:045E0300000000009B +:045E0400000000009A +:045E05000000000099 +:045E06000000000098 +:045E07000000000097 +:045E08000000000096 +:045E09000000000095 +:045E0A000000000094 +:045E0B000000000093 +:045E0C000000000092 +:045E0D000000000091 +:045E0E000000000090 +:045E0F00000000008F +:045E1000000000008E +:045E1100000000008D +:045E1200000000008C +:045E1300000000008B +:045E1400000000008A +:045E15000000000089 +:045E16000000000088 +:045E17000000000087 +:045E18000000000086 +:045E19000000000085 +:045E1A000000000084 +:045E1B000000000083 +:045E1C000000000082 +:045E1D000000000081 +:045E1E000000000080 +:045E1F00000000007F +:045E2000000000007E +:045E2100000000007D +:045E2200000000007C +:045E2300000000007B +:045E2400000000007A +:045E25000000000079 +:045E26000000000078 +:045E27000000000077 +:045E28000000000076 +:045E29000000000075 +:045E2A000000000074 +:045E2B000000000073 +:045E2C000000000072 +:045E2D000000000071 +:045E2E000000000070 +:045E2F00000000006F +:045E3000000000006E +:045E3100000000006D +:045E3200000000006C +:045E3300000000006B +:045E3400000000006A +:045E35000000000069 +:045E36000000000068 +:045E37000000000067 +:045E38000000000066 +:045E39000000000065 +:045E3A000000000064 +:045E3B000000000063 +:045E3C000000000062 +:045E3D000000000061 +:045E3E000000000060 +:045E3F00000000005F +:045E4000000000005E +:045E4100000000005D +:045E4200000000005C +:045E4300000000005B +:045E4400000000005A +:045E45000000000059 +:045E46000000000058 +:045E47000000000057 +:045E48000000000056 +:045E49000000000055 +:045E4A000000000054 +:045E4B000000000053 +:045E4C000000000052 +:045E4D000000000051 +:045E4E000000000050 +:045E4F00000000004F +:045E5000000000004E +:045E5100000000004D +:045E5200000000004C +:045E5300000000004B +:045E5400000000004A +:045E55000000000049 +:045E56000000000048 +:045E57000000000047 +:045E58000000000046 +:045E59000000000045 +:045E5A000000000044 +:045E5B000000000043 +:045E5C000000000042 +:045E5D000000000041 +:045E5E000000000040 +:045E5F00000000003F +:045E6000000000003E +:045E6100000000003D +:045E6200000000003C +:045E6300000000003B +:045E6400000000003A +:045E65000000000039 +:045E66000000000038 +:045E67000000000037 +:045E68000000000036 +:045E69000000000035 +:045E6A000000000034 +:045E6B000000000033 +:045E6C000000000032 +:045E6D000000000031 +:045E6E000000000030 +:045E6F00000000002F +:045E7000000000002E +:045E7100000000002D +:045E7200000000002C +:045E7300000000002B +:045E7400000000002A +:045E75000000000029 +:045E76000000000028 +:045E77000000000027 +:045E78000000000026 +:045E79000000000025 +:045E7A000000000024 +:045E7B000000000023 +:045E7C000000000022 +:045E7D000000000021 +:045E7E000000000020 +:045E7F00000000001F +:045E8000000000001E +:045E8100000000001D +:045E8200000000001C +:045E8300000000001B +:045E8400000000001A +:045E85000000000019 +:045E86000000000018 +:045E87000000000017 +:045E88000000000016 +:045E89000000000015 +:045E8A000000000014 +:045E8B000000000013 +:045E8C000000000012 +:045E8D000000000011 +:045E8E000000000010 +:045E8F00000000000F +:045E9000000000000E +:045E9100000000000D +:045E9200000000000C +:045E9300000000000B +:045E9400000000000A +:045E95000000000009 +:045E96000000000008 +:045E97000000000007 +:045E98000000000006 +:045E99000000000005 +:045E9A000000000004 +:045E9B000000000003 +:045E9C000000000002 +:045E9D000000000001 +:045E9E000000000000 +:045E9F0000000000FF +:045EA00000000000FE +:045EA10000000000FD +:045EA20000000000FC +:045EA30000000000FB +:045EA40000000000FA +:045EA50000000000F9 +:045EA60000000000F8 +:045EA70000000000F7 +:045EA80000000000F6 +:045EA90000000000F5 +:045EAA0000000000F4 +:045EAB0000000000F3 +:045EAC0000000000F2 +:045EAD0000000000F1 +:045EAE0000000000F0 +:045EAF0000000000EF +:045EB00000000000EE +:045EB10000000000ED +:045EB20000000000EC +:045EB30000000000EB +:045EB40000000000EA +:045EB50000000000E9 +:045EB60000000000E8 +:045EB70000000000E7 +:045EB80000000000E6 +:045EB90000000000E5 +:045EBA0000000000E4 +:045EBB0000000000E3 +:045EBC0000000000E2 +:045EBD0000000000E1 +:045EBE0000000000E0 +:045EBF0000000000DF +:045EC00000000000DE +:045EC10000000000DD +:045EC20000000000DC +:045EC30000000000DB +:045EC40000000000DA +:045EC50000000000D9 +:045EC60000000000D8 +:045EC70000000000D7 +:045EC80000000000D6 +:045EC90000000000D5 +:045ECA0000000000D4 +:045ECB0000000000D3 +:045ECC0000000000D2 +:045ECD0000000000D1 +:045ECE0000000000D0 +:045ECF0000000000CF +:045ED00000000000CE +:045ED10000000000CD +:045ED20000000000CC +:045ED30000000000CB +:045ED40000000000CA +:045ED50000000000C9 +:045ED60000000000C8 +:045ED70000000000C7 +:045ED80000000000C6 +:045ED90000000000C5 +:045EDA0000000000C4 +:045EDB0000000000C3 +:045EDC0000000000C2 +:045EDD0000000000C1 +:045EDE0000000000C0 +:045EDF0000000000BF +:045EE00000000000BE +:045EE10000000000BD +:045EE20000000000BC +:045EE30000000000BB +:045EE40000000000BA +:045EE50000000000B9 +:045EE60000000000B8 +:045EE70000000000B7 +:045EE80000000000B6 +:045EE90000000000B5 +:045EEA0000000000B4 +:045EEB0000000000B3 +:045EEC0000000000B2 +:045EED0000000000B1 +:045EEE0000000000B0 +:045EEF0000000000AF +:045EF00000000000AE +:045EF10000000000AD +:045EF20000000000AC +:045EF30000000000AB +:045EF40000000000AA +:045EF50000000000A9 +:045EF60000000000A8 +:045EF70000000000A7 +:045EF80000000000A6 +:045EF90000000000A5 +:045EFA0000000000A4 +:045EFB0000000000A3 +:045EFC0000000000A2 +:045EFD0000000000A1 +:045EFE0000000000A0 +:045EFF00000000009F +:045F0000000000009D +:045F0100000000009C +:045F0200000000009B +:045F0300000000009A +:045F04000000000099 +:045F05000000000098 +:045F06000000000097 +:045F07000000000096 +:045F08000000000095 +:045F09000000000094 +:045F0A000000000093 +:045F0B000000000092 +:045F0C000000000091 +:045F0D000000000090 +:045F0E00000000008F +:045F0F00000000008E +:045F1000000000008D +:045F1100000000008C +:045F1200000000008B +:045F1300000000008A +:045F14000000000089 +:045F15000000000088 +:045F16000000000087 +:045F17000000000086 +:045F18000000000085 +:045F19000000000084 +:045F1A000000000083 +:045F1B000000000082 +:045F1C000000000081 +:045F1D000000000080 +:045F1E00000000007F +:045F1F00000000007E +:045F2000000000007D +:045F2100000000007C +:045F2200000000007B +:045F2300000000007A +:045F24000000000079 +:045F25000000000078 +:045F26000000000077 +:045F27000000000076 +:045F28000000000075 +:045F29000000000074 +:045F2A000000000073 +:045F2B000000000072 +:045F2C000000000071 +:045F2D000000000070 +:045F2E00000000006F +:045F2F00000000006E +:045F3000000000006D +:045F3100000000006C +:045F3200000000006B +:045F3300000000006A +:045F34000000000069 +:045F35000000000068 +:045F36000000000067 +:045F37000000000066 +:045F38000000000065 +:045F39000000000064 +:045F3A000000000063 +:045F3B000000000062 +:045F3C000000000061 +:045F3D000000000060 +:045F3E00000000005F +:045F3F00000000005E +:045F4000000000005D +:045F4100000000005C +:045F4200000000005B +:045F4300000000005A +:045F44000000000059 +:045F45000000000058 +:045F46000000000057 +:045F47000000000056 +:045F48000000000055 +:045F49000000000054 +:045F4A000000000053 +:045F4B000000000052 +:045F4C000000000051 +:045F4D000000000050 +:045F4E00000000004F +:045F4F00000000004E +:045F5000000000004D +:045F5100000000004C +:045F5200000000004B +:045F5300000000004A +:045F54000000000049 +:045F55000000000048 +:045F56000000000047 +:045F57000000000046 +:045F58000000000045 +:045F59000000000044 +:045F5A000000000043 +:045F5B000000000042 +:045F5C000000000041 +:045F5D000000000040 +:045F5E00000000003F +:045F5F00000000003E +:045F6000000000003D +:045F6100000000003C +:045F6200000000003B +:045F6300000000003A +:045F64000000000039 +:045F65000000000038 +:045F66000000000037 +:045F67000000000036 +:045F68000000000035 +:045F69000000000034 +:045F6A000000000033 +:045F6B000000000032 +:045F6C000000000031 +:045F6D000000000030 +:045F6E00000000002F +:045F6F00000000002E +:045F7000000000002D +:045F7100000000002C +:045F7200000000002B +:045F7300000000002A +:045F74000000000029 +:045F75000000000028 +:045F76000000000027 +:045F77000000000026 +:045F78000000000025 +:045F79000000000024 +:045F7A000000000023 +:045F7B000000000022 +:045F7C000000000021 +:045F7D000000000020 +:045F7E00000000001F +:045F7F00000000001E +:045F8000000000001D +:045F8100000000001C +:045F8200000000001B +:045F8300000000001A +:045F84000000000019 +:045F85000000000018 +:045F86000000000017 +:045F87000000000016 +:045F88000000000015 +:045F89000000000014 +:045F8A000000000013 +:045F8B000000000012 +:045F8C000000000011 +:045F8D000000000010 +:045F8E00000000000F +:045F8F00000000000E +:045F9000000000000D +:045F9100000000000C +:045F9200000000000B +:045F9300000000000A +:045F94000000000009 +:045F95000000000008 +:045F96000000000007 +:045F97000000000006 +:045F98000000000005 +:045F99000000000004 +:045F9A000000000003 +:045F9B000000000002 +:045F9C000000000001 +:045F9D000000000000 +:045F9E0000000000FF +:045F9F0000000000FE +:045FA00000000000FD +:045FA10000000000FC +:045FA20000000000FB +:045FA30000000000FA +:045FA40000000000F9 +:045FA50000000000F8 +:045FA60000000000F7 +:045FA70000000000F6 +:045FA80000000000F5 +:045FA90000000000F4 +:045FAA0000000000F3 +:045FAB0000000000F2 +:045FAC0000000000F1 +:045FAD0000000000F0 +:045FAE0000000000EF +:045FAF0000000000EE +:045FB00000000000ED +:045FB10000000000EC +:045FB20000000000EB +:045FB30000000000EA +:045FB40000000000E9 +:045FB50000000000E8 +:045FB60000000000E7 +:045FB70000000000E6 +:045FB80000000000E5 +:045FB90000000000E4 +:045FBA0000000000E3 +:045FBB0000000000E2 +:045FBC0000000000E1 +:045FBD0000000000E0 +:045FBE0000000000DF +:045FBF0000000000DE +:045FC00000000000DD +:045FC10000000000DC +:045FC20000000000DB +:045FC30000000000DA +:045FC40000000000D9 +:045FC50000000000D8 +:045FC60000000000D7 +:045FC70000000000D6 +:045FC80000000000D5 +:045FC90000000000D4 +:045FCA0000000000D3 +:045FCB0000000000D2 +:045FCC0000000000D1 +:045FCD0000000000D0 +:045FCE0000000000CF +:045FCF0000000000CE +:045FD00000000000CD +:045FD10000000000CC +:045FD20000000000CB +:045FD30000000000CA +:045FD40000000000C9 +:045FD50000000000C8 +:045FD60000000000C7 +:045FD70000000000C6 +:045FD80000000000C5 +:045FD90000000000C4 +:045FDA0000000000C3 +:045FDB0000000000C2 +:045FDC0000000000C1 +:045FDD0000000000C0 +:045FDE0000000000BF +:045FDF0000000000BE +:045FE00000000000BD +:045FE10000000000BC +:045FE20000000000BB +:045FE30000000000BA +:045FE40000000000B9 +:045FE50000000000B8 +:045FE60000000000B7 +:045FE70000000000B6 +:045FE80000000000B5 +:045FE90000000000B4 +:045FEA0000000000B3 +:045FEB0000000000B2 +:045FEC0000000000B1 +:045FED0000000000B0 +:045FEE0000000000AF +:045FEF0000000000AE +:045FF00000000000AD +:045FF10000000000AC +:045FF20000000000AB +:045FF30000000000AA +:045FF40000000000A9 +:045FF50000000000A8 +:045FF60000000000A7 +:045FF70000000000A6 +:045FF80000000000A5 +:045FF90000000000A4 +:045FFA0000000000A3 +:045FFB0000000000A2 +:045FFC0000000000A1 +:045FFD0000000000A0 +:045FFE00000000009F +:045FFF00000000009E +:04600000000000009C +:04600100000000009B +:04600200000000009A +:046003000000000099 +:046004000000000098 +:046005000000000097 +:046006000000000096 +:046007000000000095 +:046008000000000094 +:046009000000000093 +:04600A000000000092 +:04600B000000000091 +:04600C000000000090 +:04600D00000000008F +:04600E00000000008E +:04600F00000000008D +:04601000000000008C +:04601100000000008B +:04601200000000008A +:046013000000000089 +:046014000000000088 +:046015000000000087 +:046016000000000086 +:046017000000000085 +:046018000000000084 +:046019000000000083 +:04601A000000000082 +:04601B000000000081 +:04601C000000000080 +:04601D00000000007F +:04601E00000000007E +:04601F00000000007D +:04602000000000007C +:04602100000000007B +:04602200000000007A +:046023000000000079 +:046024000000000078 +:046025000000000077 +:046026000000000076 +:046027000000000075 +:046028000000000074 +:046029000000000073 +:04602A000000000072 +:04602B000000000071 +:04602C000000000070 +:04602D00000000006F +:04602E00000000006E +:04602F00000000006D +:04603000000000006C +:04603100000000006B +:04603200000000006A +:046033000000000069 +:046034000000000068 +:046035000000000067 +:046036000000000066 +:046037000000000065 +:046038000000000064 +:046039000000000063 +:04603A000000000062 +:04603B000000000061 +:04603C000000000060 +:04603D00000000005F +:04603E00000000005E +:04603F00000000005D +:04604000000000005C +:04604100000000005B +:04604200000000005A +:046043000000000059 +:046044000000000058 +:046045000000000057 +:046046000000000056 +:046047000000000055 +:046048000000000054 +:046049000000000053 +:04604A000000000052 +:04604B000000000051 +:04604C000000000050 +:04604D00000000004F +:04604E00000000004E +:04604F00000000004D +:04605000000000004C +:04605100000000004B +:04605200000000004A +:046053000000000049 +:046054000000000048 +:046055000000000047 +:046056000000000046 +:046057000000000045 +:046058000000000044 +:046059000000000043 +:04605A000000000042 +:04605B000000000041 +:04605C000000000040 +:04605D00000000003F +:04605E00000000003E +:04605F00000000003D +:04606000000000003C +:04606100000000003B +:04606200000000003A +:046063000000000039 +:046064000000000038 +:046065000000000037 +:046066000000000036 +:046067000000000035 +:046068000000000034 +:046069000000000033 +:04606A000000000032 +:04606B000000000031 +:04606C000000000030 +:04606D00000000002F +:04606E00000000002E +:04606F00000000002D +:04607000000000002C +:04607100000000002B +:04607200000000002A +:046073000000000029 +:046074000000000028 +:046075000000000027 +:046076000000000026 +:046077000000000025 +:046078000000000024 +:046079000000000023 +:04607A000000000022 +:04607B000000000021 +:04607C000000000020 +:04607D00000000001F +:04607E00000000001E +:04607F00000000001D +:04608000000000001C +:04608100000000001B +:04608200000000001A +:046083000000000019 +:046084000000000018 +:046085000000000017 +:046086000000000016 +:046087000000000015 +:046088000000000014 +:046089000000000013 +:04608A000000000012 +:04608B000000000011 +:04608C000000000010 +:04608D00000000000F +:04608E00000000000E +:04608F00000000000D +:04609000000000000C +:04609100000000000B +:04609200000000000A +:046093000000000009 +:046094000000000008 +:046095000000000007 +:046096000000000006 +:046097000000000005 +:046098000000000004 +:046099000000000003 +:04609A000000000002 +:04609B000000000001 +:04609C000000000000 +:04609D0000000000FF +:04609E0000000000FE +:04609F0000000000FD +:0460A00000000000FC +:0460A10000000000FB +:0460A20000000000FA +:0460A30000000000F9 +:0460A40000000000F8 +:0460A50000000000F7 +:0460A60000000000F6 +:0460A70000000000F5 +:0460A80000000000F4 +:0460A90000000000F3 +:0460AA0000000000F2 +:0460AB0000000000F1 +:0460AC0000000000F0 +:0460AD0000000000EF +:0460AE0000000000EE +:0460AF0000000000ED +:0460B00000000000EC +:0460B10000000000EB +:0460B20000000000EA +:0460B30000000000E9 +:0460B40000000000E8 +:0460B50000000000E7 +:0460B60000000000E6 +:0460B70000000000E5 +:0460B80000000000E4 +:0460B90000000000E3 +:0460BA0000000000E2 +:0460BB0000000000E1 +:0460BC0000000000E0 +:0460BD0000000000DF +:0460BE0000000000DE +:0460BF0000000000DD +:0460C00000000000DC +:0460C10000000000DB +:0460C20000000000DA +:0460C30000000000D9 +:0460C40000000000D8 +:0460C50000000000D7 +:0460C60000000000D6 +:0460C70000000000D5 +:0460C80000000000D4 +:0460C90000000000D3 +:0460CA0000000000D2 +:0460CB0000000000D1 +:0460CC0000000000D0 +:0460CD0000000000CF +:0460CE0000000000CE +:0460CF0000000000CD +:0460D00000000000CC +:0460D10000000000CB +:0460D20000000000CA +:0460D30000000000C9 +:0460D40000000000C8 +:0460D50000000000C7 +:0460D60000000000C6 +:0460D70000000000C5 +:0460D80000000000C4 +:0460D90000000000C3 +:0460DA0000000000C2 +:0460DB0000000000C1 +:0460DC0000000000C0 +:0460DD0000000000BF +:0460DE0000000000BE +:0460DF0000000000BD +:0460E00000000000BC +:0460E10000000000BB +:0460E20000000000BA +:0460E30000000000B9 +:0460E40000000000B8 +:0460E50000000000B7 +:0460E60000000000B6 +:0460E70000000000B5 +:0460E80000000000B4 +:0460E90000000000B3 +:0460EA0000000000B2 +:0460EB0000000000B1 +:0460EC0000000000B0 +:0460ED0000000000AF +:0460EE0000000000AE +:0460EF0000000000AD +:0460F00000000000AC +:0460F10000000000AB +:0460F20000000000AA +:0460F30000000000A9 +:0460F40000000000A8 +:0460F50000000000A7 +:0460F60000000000A6 +:0460F70000000000A5 +:0460F80000000000A4 +:0460F90000000000A3 +:0460FA0000000000A2 +:0460FB0000000000A1 +:0460FC0000000000A0 +:0460FD00000000009F +:0460FE00000000009E +:0460FF00000000009D +:04610000000000009B +:04610100000000009A +:046102000000000099 +:046103000000000098 +:046104000000000097 +:046105000000000096 +:046106000000000095 +:046107000000000094 +:046108000000000093 +:046109000000000092 +:04610A000000000091 +:04610B000000000090 +:04610C00000000008F +:04610D00000000008E +:04610E00000000008D +:04610F00000000008C +:04611000000000008B +:04611100000000008A +:046112000000000089 +:046113000000000088 +:046114000000000087 +:046115000000000086 +:046116000000000085 +:046117000000000084 +:046118000000000083 +:046119000000000082 +:04611A000000000081 +:04611B000000000080 +:04611C00000000007F +:04611D00000000007E +:04611E00000000007D +:04611F00000000007C +:04612000000000007B +:04612100000000007A +:046122000000000079 +:046123000000000078 +:046124000000000077 +:046125000000000076 +:046126000000000075 +:046127000000000074 +:046128000000000073 +:046129000000000072 +:04612A000000000071 +:04612B000000000070 +:04612C00000000006F +:04612D00000000006E +:04612E00000000006D +:04612F00000000006C +:04613000000000006B +:04613100000000006A +:046132000000000069 +:046133000000000068 +:046134000000000067 +:046135000000000066 +:046136000000000065 +:046137000000000064 +:046138000000000063 +:046139000000000062 +:04613A000000000061 +:04613B000000000060 +:04613C00000000005F +:04613D00000000005E +:04613E00000000005D +:04613F00000000005C +:04614000000000005B +:04614100000000005A +:046142000000000059 +:046143000000000058 +:046144000000000057 +:046145000000000056 +:046146000000000055 +:046147000000000054 +:046148000000000053 +:046149000000000052 +:04614A000000000051 +:04614B000000000050 +:04614C00000000004F +:04614D00000000004E +:04614E00000000004D +:04614F00000000004C +:04615000000000004B +:04615100000000004A +:046152000000000049 +:046153000000000048 +:046154000000000047 +:046155000000000046 +:046156000000000045 +:046157000000000044 +:046158000000000043 +:046159000000000042 +:04615A000000000041 +:04615B000000000040 +:04615C00000000003F +:04615D00000000003E +:04615E00000000003D +:04615F00000000003C +:04616000000000003B +:04616100000000003A +:046162000000000039 +:046163000000000038 +:046164000000000037 +:046165000000000036 +:046166000000000035 +:046167000000000034 +:046168000000000033 +:046169000000000032 +:04616A000000000031 +:04616B000000000030 +:04616C00000000002F +:04616D00000000002E +:04616E00000000002D +:04616F00000000002C +:04617000000000002B +:04617100000000002A +:046172000000000029 +:046173000000000028 +:046174000000000027 +:046175000000000026 +:046176000000000025 +:046177000000000024 +:046178000000000023 +:046179000000000022 +:04617A000000000021 +:04617B000000000020 +:04617C00000000001F +:04617D00000000001E +:04617E00000000001D +:04617F00000000001C +:04618000000000001B +:04618100000000001A +:046182000000000019 +:046183000000000018 +:046184000000000017 +:046185000000000016 +:046186000000000015 +:046187000000000014 +:046188000000000013 +:046189000000000012 +:04618A000000000011 +:04618B000000000010 +:04618C00000000000F +:04618D00000000000E +:04618E00000000000D +:04618F00000000000C +:04619000000000000B +:04619100000000000A +:046192000000000009 +:046193000000000008 +:046194000000000007 +:046195000000000006 +:046196000000000005 +:046197000000000004 +:046198000000000003 +:046199000000000002 +:04619A000000000001 +:04619B000000000000 +:04619C0000000000FF +:04619D0000000000FE +:04619E0000000000FD +:04619F0000000000FC +:0461A00000000000FB +:0461A10000000000FA +:0461A20000000000F9 +:0461A30000000000F8 +:0461A40000000000F7 +:0461A50000000000F6 +:0461A60000000000F5 +:0461A70000000000F4 +:0461A80000000000F3 +:0461A90000000000F2 +:0461AA0000000000F1 +:0461AB0000000000F0 +:0461AC0000000000EF +:0461AD0000000000EE +:0461AE0000000000ED +:0461AF0000000000EC +:0461B00000000000EB +:0461B10000000000EA +:0461B20000000000E9 +:0461B30000000000E8 +:0461B40000000000E7 +:0461B50000000000E6 +:0461B60000000000E5 +:0461B70000000000E4 +:0461B80000000000E3 +:0461B90000000000E2 +:0461BA0000000000E1 +:0461BB0000000000E0 +:0461BC0000000000DF +:0461BD0000000000DE +:0461BE0000000000DD +:0461BF0000000000DC +:0461C00000000000DB +:0461C10000000000DA +:0461C20000000000D9 +:0461C30000000000D8 +:0461C40000000000D7 +:0461C50000000000D6 +:0461C60000000000D5 +:0461C70000000000D4 +:0461C80000000000D3 +:0461C90000000000D2 +:0461CA0000000000D1 +:0461CB0000000000D0 +:0461CC0000000000CF +:0461CD0000000000CE +:0461CE0000000000CD +:0461CF0000000000CC +:0461D00000000000CB +:0461D10000000000CA +:0461D20000000000C9 +:0461D30000000000C8 +:0461D40000000000C7 +:0461D50000000000C6 +:0461D60000000000C5 +:0461D70000000000C4 +:0461D80000000000C3 +:0461D90000000000C2 +:0461DA0000000000C1 +:0461DB0000000000C0 +:0461DC0000000000BF +:0461DD0000000000BE +:0461DE0000000000BD +:0461DF0000000000BC +:0461E00000000000BB +:0461E10000000000BA +:0461E20000000000B9 +:0461E30000000000B8 +:0461E40000000000B7 +:0461E50000000000B6 +:0461E60000000000B5 +:0461E70000000000B4 +:0461E80000000000B3 +:0461E90000000000B2 +:0461EA0000000000B1 +:0461EB0000000000B0 +:0461EC0000000000AF +:0461ED0000000000AE +:0461EE0000000000AD +:0461EF0000000000AC +:0461F00000000000AB +:0461F10000000000AA +:0461F20000000000A9 +:0461F30000000000A8 +:0461F40000000000A7 +:0461F50000000000A6 +:0461F60000000000A5 +:0461F70000000000A4 +:0461F80000000000A3 +:0461F90000000000A2 +:0461FA0000000000A1 +:0461FB0000000000A0 +:0461FC00000000009F +:0461FD00000000009E +:0461FE00000000009D +:0461FF00000000009C +:04620000000000009A +:046201000000000099 +:046202000000000098 +:046203000000000097 +:046204000000000096 +:046205000000000095 +:046206000000000094 +:046207000000000093 +:046208000000000092 +:046209000000000091 +:04620A000000000090 +:04620B00000000008F +:04620C00000000008E +:04620D00000000008D +:04620E00000000008C +:04620F00000000008B +:04621000000000008A +:046211000000000089 +:046212000000000088 +:046213000000000087 +:046214000000000086 +:046215000000000085 +:046216000000000084 +:046217000000000083 +:046218000000000082 +:046219000000000081 +:04621A000000000080 +:04621B00000000007F +:04621C00000000007E +:04621D00000000007D +:04621E00000000007C +:04621F00000000007B +:04622000000000007A +:046221000000000079 +:046222000000000078 +:046223000000000077 +:046224000000000076 +:046225000000000075 +:046226000000000074 +:046227000000000073 +:046228000000000072 +:046229000000000071 +:04622A000000000070 +:04622B00000000006F +:04622C00000000006E +:04622D00000000006D +:04622E00000000006C +:04622F00000000006B +:04623000000000006A +:046231000000000069 +:046232000000000068 +:046233000000000067 +:046234000000000066 +:046235000000000065 +:046236000000000064 +:046237000000000063 +:046238000000000062 +:046239000000000061 +:04623A000000000060 +:04623B00000000005F +:04623C00000000005E +:04623D00000000005D +:04623E00000000005C +:04623F00000000005B +:04624000000000005A +:046241000000000059 +:046242000000000058 +:046243000000000057 +:046244000000000056 +:046245000000000055 +:046246000000000054 +:046247000000000053 +:046248000000000052 +:046249000000000051 +:04624A000000000050 +:04624B00000000004F +:04624C00000000004E +:04624D00000000004D +:04624E00000000004C +:04624F00000000004B +:04625000000000004A +:046251000000000049 +:046252000000000048 +:046253000000000047 +:046254000000000046 +:046255000000000045 +:046256000000000044 +:046257000000000043 +:046258000000000042 +:046259000000000041 +:04625A000000000040 +:04625B00000000003F +:04625C00000000003E +:04625D00000000003D +:04625E00000000003C +:04625F00000000003B +:04626000000000003A +:046261000000000039 +:046262000000000038 +:046263000000000037 +:046264000000000036 +:046265000000000035 +:046266000000000034 +:046267000000000033 +:046268000000000032 +:046269000000000031 +:04626A000000000030 +:04626B00000000002F +:04626C00000000002E +:04626D00000000002D +:04626E00000000002C +:04626F00000000002B +:04627000000000002A +:046271000000000029 +:046272000000000028 +:046273000000000027 +:046274000000000026 +:046275000000000025 +:046276000000000024 +:046277000000000023 +:046278000000000022 +:046279000000000021 +:04627A000000000020 +:04627B00000000001F +:04627C00000000001E +:04627D00000000001D +:04627E00000000001C +:04627F00000000001B +:04628000000000001A +:046281000000000019 +:046282000000000018 +:046283000000000017 +:046284000000000016 +:046285000000000015 +:046286000000000014 +:046287000000000013 +:046288000000000012 +:046289000000000011 +:04628A000000000010 +:04628B00000000000F +:04628C00000000000E +:04628D00000000000D +:04628E00000000000C +:04628F00000000000B +:04629000000000000A +:046291000000000009 +:046292000000000008 +:046293000000000007 +:046294000000000006 +:046295000000000005 +:046296000000000004 +:046297000000000003 +:046298000000000002 +:046299000000000001 +:04629A000000000000 +:04629B0000000000FF +:04629C0000000000FE +:04629D0000000000FD +:04629E0000000000FC +:04629F0000000000FB +:0462A00000000000FA +:0462A10000000000F9 +:0462A20000000000F8 +:0462A30000000000F7 +:0462A40000000000F6 +:0462A50000000000F5 +:0462A60000000000F4 +:0462A70000000000F3 +:0462A80000000000F2 +:0462A90000000000F1 +:0462AA0000000000F0 +:0462AB0000000000EF +:0462AC0000000000EE +:0462AD0000000000ED +:0462AE0000000000EC +:0462AF0000000000EB +:0462B00000000000EA +:0462B10000000000E9 +:0462B20000000000E8 +:0462B30000000000E7 +:0462B40000000000E6 +:0462B50000000000E5 +:0462B60000000000E4 +:0462B70000000000E3 +:0462B80000000000E2 +:0462B90000000000E1 +:0462BA0000000000E0 +:0462BB0000000000DF +:0462BC0000000000DE +:0462BD0000000000DD +:0462BE0000000000DC +:0462BF0000000000DB +:0462C00000000000DA +:0462C10000000000D9 +:0462C20000000000D8 +:0462C30000000000D7 +:0462C40000000000D6 +:0462C50000000000D5 +:0462C60000000000D4 +:0462C70000000000D3 +:0462C80000000000D2 +:0462C90000000000D1 +:0462CA0000000000D0 +:0462CB0000000000CF +:0462CC0000000000CE +:0462CD0000000000CD +:0462CE0000000000CC +:0462CF0000000000CB +:0462D00000000000CA +:0462D10000000000C9 +:0462D20000000000C8 +:0462D30000000000C7 +:0462D40000000000C6 +:0462D50000000000C5 +:0462D60000000000C4 +:0462D70000000000C3 +:0462D80000000000C2 +:0462D90000000000C1 +:0462DA0000000000C0 +:0462DB0000000000BF +:0462DC0000000000BE +:0462DD0000000000BD +:0462DE0000000000BC +:0462DF0000000000BB +:0462E00000000000BA +:0462E10000000000B9 +:0462E20000000000B8 +:0462E30000000000B7 +:0462E40000000000B6 +:0462E50000000000B5 +:0462E60000000000B4 +:0462E70000000000B3 +:0462E80000000000B2 +:0462E90000000000B1 +:0462EA0000000000B0 +:0462EB0000000000AF +:0462EC0000000000AE +:0462ED0000000000AD +:0462EE0000000000AC +:0462EF0000000000AB +:0462F00000000000AA +:0462F10000000000A9 +:0462F20000000000A8 +:0462F30000000000A7 +:0462F40000000000A6 +:0462F50000000000A5 +:0462F60000000000A4 +:0462F70000000000A3 +:0462F80000000000A2 +:0462F90000000000A1 +:0462FA0000000000A0 +:0462FB00000000009F +:0462FC00000000009E +:0462FD00000000009D +:0462FE00000000009C +:0462FF00000000009B +:046300000000000099 +:046301000000000098 +:046302000000000097 +:046303000000000096 +:046304000000000095 +:046305000000000094 +:046306000000000093 +:046307000000000092 +:046308000000000091 +:046309000000000090 +:04630A00000000008F +:04630B00000000008E +:04630C00000000008D +:04630D00000000008C +:04630E00000000008B +:04630F00000000008A +:046310000000000089 +:046311000000000088 +:046312000000000087 +:046313000000000086 +:046314000000000085 +:046315000000000084 +:046316000000000083 +:046317000000000082 +:046318000000000081 +:046319000000000080 +:04631A00000000007F +:04631B00000000007E +:04631C00000000007D +:04631D00000000007C +:04631E00000000007B +:04631F00000000007A +:046320000000000079 +:046321000000000078 +:046322000000000077 +:046323000000000076 +:046324000000000075 +:046325000000000074 +:046326000000000073 +:046327000000000072 +:046328000000000071 +:046329000000000070 +:04632A00000000006F +:04632B00000000006E +:04632C00000000006D +:04632D00000000006C +:04632E00000000006B +:04632F00000000006A +:046330000000000069 +:046331000000000068 +:046332000000000067 +:046333000000000066 +:046334000000000065 +:046335000000000064 +:046336000000000063 +:046337000000000062 +:046338000000000061 +:046339000000000060 +:04633A00000000005F +:04633B00000000005E +:04633C00000000005D +:04633D00000000005C +:04633E00000000005B +:04633F00000000005A +:046340000000000059 +:046341000000000058 +:046342000000000057 +:046343000000000056 +:046344000000000055 +:046345000000000054 +:046346000000000053 +:046347000000000052 +:046348000000000051 +:046349000000000050 +:04634A00000000004F +:04634B00000000004E +:04634C00000000004D +:04634D00000000004C +:04634E00000000004B +:04634F00000000004A +:046350000000000049 +:046351000000000048 +:046352000000000047 +:046353000000000046 +:046354000000000045 +:046355000000000044 +:046356000000000043 +:046357000000000042 +:046358000000000041 +:046359000000000040 +:04635A00000000003F +:04635B00000000003E +:04635C00000000003D +:04635D00000000003C +:04635E00000000003B +:04635F00000000003A +:046360000000000039 +:046361000000000038 +:046362000000000037 +:046363000000000036 +:046364000000000035 +:046365000000000034 +:046366000000000033 +:046367000000000032 +:046368000000000031 +:046369000000000030 +:04636A00000000002F +:04636B00000000002E +:04636C00000000002D +:04636D00000000002C +:04636E00000000002B +:04636F00000000002A +:046370000000000029 +:046371000000000028 +:046372000000000027 +:046373000000000026 +:046374000000000025 +:046375000000000024 +:046376000000000023 +:046377000000000022 +:046378000000000021 +:046379000000000020 +:04637A00000000001F +:04637B00000000001E +:04637C00000000001D +:04637D00000000001C +:04637E00000000001B +:04637F00000000001A +:046380000000000019 +:046381000000000018 +:046382000000000017 +:046383000000000016 +:046384000000000015 +:046385000000000014 +:046386000000000013 +:046387000000000012 +:046388000000000011 +:046389000000000010 +:04638A00000000000F +:04638B00000000000E +:04638C00000000000D +:04638D00000000000C +:04638E00000000000B +:04638F00000000000A +:046390000000000009 +:046391000000000008 +:046392000000000007 +:046393000000000006 +:046394000000000005 +:046395000000000004 +:046396000000000003 +:046397000000000002 +:046398000000000001 +:046399000000000000 +:04639A0000000000FF +:04639B0000000000FE +:04639C0000000000FD +:04639D0000000000FC +:04639E0000000000FB +:04639F0000000000FA +:0463A00000000000F9 +:0463A10000000000F8 +:0463A20000000000F7 +:0463A30000000000F6 +:0463A40000000000F5 +:0463A50000000000F4 +:0463A60000000000F3 +:0463A70000000000F2 +:0463A80000000000F1 +:0463A90000000000F0 +:0463AA0000000000EF +:0463AB0000000000EE +:0463AC0000000000ED +:0463AD0000000000EC +:0463AE0000000000EB +:0463AF0000000000EA +:0463B00000000000E9 +:0463B10000000000E8 +:0463B20000000000E7 +:0463B30000000000E6 +:0463B40000000000E5 +:0463B50000000000E4 +:0463B60000000000E3 +:0463B70000000000E2 +:0463B80000000000E1 +:0463B90000000000E0 +:0463BA0000000000DF +:0463BB0000000000DE +:0463BC0000000000DD +:0463BD0000000000DC +:0463BE0000000000DB +:0463BF0000000000DA +:0463C00000000000D9 +:0463C10000000000D8 +:0463C20000000000D7 +:0463C30000000000D6 +:0463C40000000000D5 +:0463C50000000000D4 +:0463C60000000000D3 +:0463C70000000000D2 +:0463C80000000000D1 +:0463C90000000000D0 +:0463CA0000000000CF +:0463CB0000000000CE +:0463CC0000000000CD +:0463CD0000000000CC +:0463CE0000000000CB +:0463CF0000000000CA +:0463D00000000000C9 +:0463D10000000000C8 +:0463D20000000000C7 +:0463D30000000000C6 +:0463D40000000000C5 +:0463D50000000000C4 +:0463D60000000000C3 +:0463D70000000000C2 +:0463D80000000000C1 +:0463D90000000000C0 +:0463DA0000000000BF +:0463DB0000000000BE +:0463DC0000000000BD +:0463DD0000000000BC +:0463DE0000000000BB +:0463DF0000000000BA +:0463E00000000000B9 +:0463E10000000000B8 +:0463E20000000000B7 +:0463E30000000000B6 +:0463E40000000000B5 +:0463E50000000000B4 +:0463E60000000000B3 +:0463E70000000000B2 +:0463E80000000000B1 +:0463E90000000000B0 +:0463EA0000000000AF +:0463EB0000000000AE +:0463EC0000000000AD +:0463ED0000000000AC +:0463EE0000000000AB +:0463EF0000000000AA +:0463F00000000000A9 +:0463F10000000000A8 +:0463F20000000000A7 +:0463F30000000000A6 +:0463F40000000000A5 +:0463F50000000000A4 +:0463F60000000000A3 +:0463F70000000000A2 +:0463F80000000000A1 +:0463F90000000000A0 +:0463FA00000000009F +:0463FB00000000009E +:0463FC00000000009D +:0463FD00000000009C +:0463FE00000000009B +:0463FF00000000009A +:046400000000000098 +:046401000000000097 +:046402000000000096 +:046403000000000095 +:046404000000000094 +:046405000000000093 +:046406000000000092 +:046407000000000091 +:046408000000000090 +:04640900000000008F +:04640A00000000008E +:04640B00000000008D +:04640C00000000008C +:04640D00000000008B +:04640E00000000008A +:04640F000000000089 +:046410000000000088 +:046411000000000087 +:046412000000000086 +:046413000000000085 +:046414000000000084 +:046415000000000083 +:046416000000000082 +:046417000000000081 +:046418000000000080 +:04641900000000007F +:04641A00000000007E +:04641B00000000007D +:04641C00000000007C +:04641D00000000007B +:04641E00000000007A +:04641F000000000079 +:046420000000000078 +:046421000000000077 +:046422000000000076 +:046423000000000075 +:046424000000000074 +:046425000000000073 +:046426000000000072 +:046427000000000071 +:046428000000000070 +:04642900000000006F +:04642A00000000006E +:04642B00000000006D +:04642C00000000006C +:04642D00000000006B +:04642E00000000006A +:04642F000000000069 +:046430000000000068 +:046431000000000067 +:046432000000000066 +:046433000000000065 +:046434000000000064 +:046435000000000063 +:046436000000000062 +:046437000000000061 +:046438000000000060 +:04643900000000005F +:04643A00000000005E +:04643B00000000005D +:04643C00000000005C +:04643D00000000005B +:04643E00000000005A +:04643F000000000059 +:046440000000000058 +:046441000000000057 +:046442000000000056 +:046443000000000055 +:046444000000000054 +:046445000000000053 +:046446000000000052 +:046447000000000051 +:046448000000000050 +:04644900000000004F +:04644A00000000004E +:04644B00000000004D +:04644C00000000004C +:04644D00000000004B +:04644E00000000004A +:04644F000000000049 +:046450000000000048 +:046451000000000047 +:046452000000000046 +:046453000000000045 +:046454000000000044 +:046455000000000043 +:046456000000000042 +:046457000000000041 +:046458000000000040 +:04645900000000003F +:04645A00000000003E +:04645B00000000003D +:04645C00000000003C +:04645D00000000003B +:04645E00000000003A +:04645F000000000039 +:046460000000000038 +:046461000000000037 +:046462000000000036 +:046463000000000035 +:046464000000000034 +:046465000000000033 +:046466000000000032 +:046467000000000031 +:046468000000000030 +:04646900000000002F +:04646A00000000002E +:04646B00000000002D +:04646C00000000002C +:04646D00000000002B +:04646E00000000002A +:04646F000000000029 +:046470000000000028 +:046471000000000027 +:046472000000000026 +:046473000000000025 +:046474000000000024 +:046475000000000023 +:046476000000000022 +:046477000000000021 +:046478000000000020 +:04647900000000001F +:04647A00000000001E +:04647B00000000001D +:04647C00000000001C +:04647D00000000001B +:04647E00000000001A +:04647F000000000019 +:046480000000000018 +:046481000000000017 +:046482000000000016 +:046483000000000015 +:046484000000000014 +:046485000000000013 +:046486000000000012 +:046487000000000011 +:046488000000000010 +:04648900000000000F +:04648A00000000000E +:04648B00000000000D +:04648C00000000000C +:04648D00000000000B +:04648E00000000000A +:04648F000000000009 +:046490000000000008 +:046491000000000007 +:046492000000000006 +:046493000000000005 +:046494000000000004 +:046495000000000003 +:046496000000000002 +:046497000000000001 +:046498000000000000 +:0464990000000000FF +:04649A0000000000FE +:04649B0000000000FD +:04649C0000000000FC +:04649D0000000000FB +:04649E0000000000FA +:04649F0000000000F9 +:0464A00000000000F8 +:0464A10000000000F7 +:0464A20000000000F6 +:0464A30000000000F5 +:0464A40000000000F4 +:0464A50000000000F3 +:0464A60000000000F2 +:0464A70000000000F1 +:0464A80000000000F0 +:0464A90000000000EF +:0464AA0000000000EE +:0464AB0000000000ED +:0464AC0000000000EC +:0464AD0000000000EB +:0464AE0000000000EA +:0464AF0000000000E9 +:0464B00000000000E8 +:0464B10000000000E7 +:0464B20000000000E6 +:0464B30000000000E5 +:0464B40000000000E4 +:0464B50000000000E3 +:0464B60000000000E2 +:0464B70000000000E1 +:0464B80000000000E0 +:0464B90000000000DF +:0464BA0000000000DE +:0464BB0000000000DD +:0464BC0000000000DC +:0464BD0000000000DB +:0464BE0000000000DA +:0464BF0000000000D9 +:0464C00000000000D8 +:0464C10000000000D7 +:0464C20000000000D6 +:0464C30000000000D5 +:0464C40000000000D4 +:0464C50000000000D3 +:0464C60000000000D2 +:0464C70000000000D1 +:0464C80000000000D0 +:0464C90000000000CF +:0464CA0000000000CE +:0464CB0000000000CD +:0464CC0000000000CC +:0464CD0000000000CB +:0464CE0000000000CA +:0464CF0000000000C9 +:0464D00000000000C8 +:0464D10000000000C7 +:0464D20000000000C6 +:0464D30000000000C5 +:0464D40000000000C4 +:0464D50000000000C3 +:0464D60000000000C2 +:0464D70000000000C1 +:0464D80000000000C0 +:0464D90000000000BF +:0464DA0000000000BE +:0464DB0000000000BD +:0464DC0000000000BC +:0464DD0000000000BB +:0464DE0000000000BA +:0464DF0000000000B9 +:0464E00000000000B8 +:0464E10000000000B7 +:0464E20000000000B6 +:0464E30000000000B5 +:0464E40000000000B4 +:0464E50000000000B3 +:0464E60000000000B2 +:0464E70000000000B1 +:0464E80000000000B0 +:0464E90000000000AF +:0464EA0000000000AE +:0464EB0000000000AD +:0464EC0000000000AC +:0464ED0000000000AB +:0464EE0000000000AA +:0464EF0000000000A9 +:0464F00000000000A8 +:0464F10000000000A7 +:0464F20000000000A6 +:0464F30000000000A5 +:0464F40000000000A4 +:0464F50000000000A3 +:0464F60000000000A2 +:0464F70000000000A1 +:0464F80000000000A0 +:0464F900000000009F +:0464FA00000000009E +:0464FB00000000009D +:0464FC00000000009C +:0464FD00000000009B +:0464FE00000000009A +:0464FF000000000099 +:046500000000000097 +:046501000000000096 +:046502000000000095 +:046503000000000094 +:046504000000000093 +:046505000000000092 +:046506000000000091 +:046507000000000090 +:04650800000000008F +:04650900000000008E +:04650A00000000008D +:04650B00000000008C +:04650C00000000008B +:04650D00000000008A +:04650E000000000089 +:04650F000000000088 +:046510000000000087 +:046511000000000086 +:046512000000000085 +:046513000000000084 +:046514000000000083 +:046515000000000082 +:046516000000000081 +:046517000000000080 +:04651800000000007F +:04651900000000007E +:04651A00000000007D +:04651B00000000007C +:04651C00000000007B +:04651D00000000007A +:04651E000000000079 +:04651F000000000078 +:046520000000000077 +:046521000000000076 +:046522000000000075 +:046523000000000074 +:046524000000000073 +:046525000000000072 +:046526000000000071 +:046527000000000070 +:04652800000000006F +:04652900000000006E +:04652A00000000006D +:04652B00000000006C +:04652C00000000006B +:04652D00000000006A +:04652E000000000069 +:04652F000000000068 +:046530000000000067 +:046531000000000066 +:046532000000000065 +:046533000000000064 +:046534000000000063 +:046535000000000062 +:046536000000000061 +:046537000000000060 +:04653800000000005F +:04653900000000005E +:04653A00000000005D +:04653B00000000005C +:04653C00000000005B +:04653D00000000005A +:04653E000000000059 +:04653F000000000058 +:046540000000000057 +:046541000000000056 +:046542000000000055 +:046543000000000054 +:046544000000000053 +:046545000000000052 +:046546000000000051 +:046547000000000050 +:04654800000000004F +:04654900000000004E +:04654A00000000004D +:04654B00000000004C +:04654C00000000004B +:04654D00000000004A +:04654E000000000049 +:04654F000000000048 +:046550000000000047 +:046551000000000046 +:046552000000000045 +:046553000000000044 +:046554000000000043 +:046555000000000042 +:046556000000000041 +:046557000000000040 +:04655800000000003F +:04655900000000003E +:04655A00000000003D +:04655B00000000003C +:04655C00000000003B +:04655D00000000003A +:04655E000000000039 +:04655F000000000038 +:046560000000000037 +:046561000000000036 +:046562000000000035 +:046563000000000034 +:046564000000000033 +:046565000000000032 +:046566000000000031 +:046567000000000030 +:04656800000000002F +:04656900000000002E +:04656A00000000002D +:04656B00000000002C +:04656C00000000002B +:04656D00000000002A +:04656E000000000029 +:04656F000000000028 +:046570000000000027 +:046571000000000026 +:046572000000000025 +:046573000000000024 +:046574000000000023 +:046575000000000022 +:046576000000000021 +:046577000000000020 +:04657800000000001F +:04657900000000001E +:04657A00000000001D +:04657B00000000001C +:04657C00000000001B +:04657D00000000001A +:04657E000000000019 +:04657F000000000018 +:046580000000000017 +:046581000000000016 +:046582000000000015 +:046583000000000014 +:046584000000000013 +:046585000000000012 +:046586000000000011 +:046587000000000010 +:04658800000000000F +:04658900000000000E +:04658A00000000000D +:04658B00000000000C +:04658C00000000000B +:04658D00000000000A +:04658E000000000009 +:04658F000000000008 +:046590000000000007 +:046591000000000006 +:046592000000000005 +:046593000000000004 +:046594000000000003 +:046595000000000002 +:046596000000000001 +:046597000000000000 +:0465980000000000FF +:0465990000000000FE +:04659A0000000000FD +:04659B0000000000FC +:04659C0000000000FB +:04659D0000000000FA +:04659E0000000000F9 +:04659F0000000000F8 +:0465A00000000000F7 +:0465A10000000000F6 +:0465A20000000000F5 +:0465A30000000000F4 +:0465A40000000000F3 +:0465A50000000000F2 +:0465A60000000000F1 +:0465A70000000000F0 +:0465A80000000000EF +:0465A90000000000EE +:0465AA0000000000ED +:0465AB0000000000EC +:0465AC0000000000EB +:0465AD0000000000EA +:0465AE0000000000E9 +:0465AF0000000000E8 +:0465B00000000000E7 +:0465B10000000000E6 +:0465B20000000000E5 +:0465B30000000000E4 +:0465B40000000000E3 +:0465B50000000000E2 +:0465B60000000000E1 +:0465B70000000000E0 +:0465B80000000000DF +:0465B90000000000DE +:0465BA0000000000DD +:0465BB0000000000DC +:0465BC0000000000DB +:0465BD0000000000DA +:0465BE0000000000D9 +:0465BF0000000000D8 +:0465C00000000000D7 +:0465C10000000000D6 +:0465C20000000000D5 +:0465C30000000000D4 +:0465C40000000000D3 +:0465C50000000000D2 +:0465C60000000000D1 +:0465C70000000000D0 +:0465C80000000000CF +:0465C90000000000CE +:0465CA0000000000CD +:0465CB0000000000CC +:0465CC0000000000CB +:0465CD0000000000CA +:0465CE0000000000C9 +:0465CF0000000000C8 +:0465D00000000000C7 +:0465D10000000000C6 +:0465D20000000000C5 +:0465D30000000000C4 +:0465D40000000000C3 +:0465D50000000000C2 +:0465D60000000000C1 +:0465D70000000000C0 +:0465D80000000000BF +:0465D90000000000BE +:0465DA0000000000BD +:0465DB0000000000BC +:0465DC0000000000BB +:0465DD0000000000BA +:0465DE0000000000B9 +:0465DF0000000000B8 +:0465E00000000000B7 +:0465E10000000000B6 +:0465E20000000000B5 +:0465E30000000000B4 +:0465E40000000000B3 +:0465E50000000000B2 +:0465E60000000000B1 +:0465E70000000000B0 +:0465E80000000000AF +:0465E90000000000AE +:0465EA0000000000AD +:0465EB0000000000AC +:0465EC0000000000AB +:0465ED0000000000AA +:0465EE0000000000A9 +:0465EF0000000000A8 +:0465F00000000000A7 +:0465F10000000000A6 +:0465F20000000000A5 +:0465F30000000000A4 +:0465F40000000000A3 +:0465F50000000000A2 +:0465F60000000000A1 +:0465F70000000000A0 +:0465F800000000009F +:0465F900000000009E +:0465FA00000000009D +:0465FB00000000009C +:0465FC00000000009B +:0465FD00000000009A +:0465FE000000000099 +:0465FF000000000098 +:046600000000000096 +:046601000000000095 +:046602000000000094 +:046603000000000093 +:046604000000000092 +:046605000000000091 +:046606000000000090 +:04660700000000008F +:04660800000000008E +:04660900000000008D +:04660A00000000008C +:04660B00000000008B +:04660C00000000008A +:04660D000000000089 +:04660E000000000088 +:04660F000000000087 +:046610000000000086 +:046611000000000085 +:046612000000000084 +:046613000000000083 +:046614000000000082 +:046615000000000081 +:046616000000000080 +:04661700000000007F +:04661800000000007E +:04661900000000007D +:04661A00000000007C +:04661B00000000007B +:04661C00000000007A +:04661D000000000079 +:04661E000000000078 +:04661F000000000077 +:046620000000000076 +:046621000000000075 +:046622000000000074 +:046623000000000073 +:046624000000000072 +:046625000000000071 +:046626000000000070 +:04662700000000006F +:04662800000000006E +:04662900000000006D +:04662A00000000006C +:04662B00000000006B +:04662C00000000006A +:04662D000000000069 +:04662E000000000068 +:04662F000000000067 +:046630000000000066 +:046631000000000065 +:046632000000000064 +:046633000000000063 +:046634000000000062 +:046635000000000061 +:046636000000000060 +:04663700000000005F +:04663800000000005E +:04663900000000005D +:04663A00000000005C +:04663B00000000005B +:04663C00000000005A +:04663D000000000059 +:04663E000000000058 +:04663F000000000057 +:046640000000000056 +:046641000000000055 +:046642000000000054 +:046643000000000053 +:046644000000000052 +:046645000000000051 +:046646000000000050 +:04664700000000004F +:04664800000000004E +:04664900000000004D +:04664A00000000004C +:04664B00000000004B +:04664C00000000004A +:04664D000000000049 +:04664E000000000048 +:04664F000000000047 +:046650000000000046 +:046651000000000045 +:046652000000000044 +:046653000000000043 +:046654000000000042 +:046655000000000041 +:046656000000000040 +:04665700000000003F +:04665800000000003E +:04665900000000003D +:04665A00000000003C +:04665B00000000003B +:04665C00000000003A +:04665D000000000039 +:04665E000000000038 +:04665F000000000037 +:046660000000000036 +:046661000000000035 +:046662000000000034 +:046663000000000033 +:046664000000000032 +:046665000000000031 +:046666000000000030 +:04666700000000002F +:04666800000000002E +:04666900000000002D +:04666A00000000002C +:04666B00000000002B +:04666C00000000002A +:04666D000000000029 +:04666E000000000028 +:04666F000000000027 +:046670000000000026 +:046671000000000025 +:046672000000000024 +:046673000000000023 +:046674000000000022 +:046675000000000021 +:046676000000000020 +:04667700000000001F +:04667800000000001E +:04667900000000001D +:04667A00000000001C +:04667B00000000001B +:04667C00000000001A +:04667D000000000019 +:04667E000000000018 +:04667F000000000017 +:046680000000000016 +:046681000000000015 +:046682000000000014 +:046683000000000013 +:046684000000000012 +:046685000000000011 +:046686000000000010 +:04668700000000000F +:04668800000000000E +:04668900000000000D +:04668A00000000000C +:04668B00000000000B +:04668C00000000000A +:04668D000000000009 +:04668E000000000008 +:04668F000000000007 +:046690000000000006 +:046691000000000005 +:046692000000000004 +:046693000000000003 +:046694000000000002 +:046695000000000001 +:046696000000000000 +:0466970000000000FF +:0466980000000000FE +:0466990000000000FD +:04669A0000000000FC +:04669B0000000000FB +:04669C0000000000FA +:04669D0000000000F9 +:04669E0000000000F8 +:04669F0000000000F7 +:0466A00000000000F6 +:0466A10000000000F5 +:0466A20000000000F4 +:0466A30000000000F3 +:0466A40000000000F2 +:0466A50000000000F1 +:0466A60000000000F0 +:0466A70000000000EF +:0466A80000000000EE +:0466A90000000000ED +:0466AA0000000000EC +:0466AB0000000000EB +:0466AC0000000000EA +:0466AD0000000000E9 +:0466AE0000000000E8 +:0466AF0000000000E7 +:0466B00000000000E6 +:0466B10000000000E5 +:0466B20000000000E4 +:0466B30000000000E3 +:0466B40000000000E2 +:0466B50000000000E1 +:0466B60000000000E0 +:0466B70000000000DF +:0466B80000000000DE +:0466B90000000000DD +:0466BA0000000000DC +:0466BB0000000000DB +:0466BC0000000000DA +:0466BD0000000000D9 +:0466BE0000000000D8 +:0466BF0000000000D7 +:0466C00000000000D6 +:0466C10000000000D5 +:0466C20000000000D4 +:0466C30000000000D3 +:0466C40000000000D2 +:0466C50000000000D1 +:0466C60000000000D0 +:0466C70000000000CF +:0466C80000000000CE +:0466C90000000000CD +:0466CA0000000000CC +:0466CB0000000000CB +:0466CC0000000000CA +:0466CD0000000000C9 +:0466CE0000000000C8 +:0466CF0000000000C7 +:0466D00000000000C6 +:0466D10000000000C5 +:0466D20000000000C4 +:0466D30000000000C3 +:0466D40000000000C2 +:0466D50000000000C1 +:0466D60000000000C0 +:0466D70000000000BF +:0466D80000000000BE +:0466D90000000000BD +:0466DA0000000000BC +:0466DB0000000000BB +:0466DC0000000000BA +:0466DD0000000000B9 +:0466DE0000000000B8 +:0466DF0000000000B7 +:0466E00000000000B6 +:0466E10000000000B5 +:0466E20000000000B4 +:0466E30000000000B3 +:0466E40000000000B2 +:0466E50000000000B1 +:0466E60000000000B0 +:0466E70000000000AF +:0466E80000000000AE +:0466E90000000000AD +:0466EA0000000000AC +:0466EB0000000000AB +:0466EC0000000000AA +:0466ED0000000000A9 +:0466EE0000000000A8 +:0466EF0000000000A7 +:0466F00000000000A6 +:0466F10000000000A5 +:0466F20000000000A4 +:0466F30000000000A3 +:0466F40000000000A2 +:0466F50000000000A1 +:0466F60000000000A0 +:0466F700000000009F +:0466F800000000009E +:0466F900000000009D +:0466FA00000000009C +:0466FB00000000009B +:0466FC00000000009A +:0466FD000000000099 +:0466FE000000000098 +:0466FF000000000097 +:046700000000000095 +:046701000000000094 +:046702000000000093 +:046703000000000092 +:046704000000000091 +:046705000000000090 +:04670600000000008F +:04670700000000008E +:04670800000000008D +:04670900000000008C +:04670A00000000008B +:04670B00000000008A +:04670C000000000089 +:04670D000000000088 +:04670E000000000087 +:04670F000000000086 +:046710000000000085 +:046711000000000084 +:046712000000000083 +:046713000000000082 +:046714000000000081 +:046715000000000080 +:04671600000000007F +:04671700000000007E +:04671800000000007D +:04671900000000007C +:04671A00000000007B +:04671B00000000007A +:04671C000000000079 +:04671D000000000078 +:04671E000000000077 +:04671F000000000076 +:046720000000000075 +:046721000000000074 +:046722000000000073 +:046723000000000072 +:046724000000000071 +:046725000000000070 +:04672600000000006F +:04672700000000006E +:04672800000000006D +:04672900000000006C +:04672A00000000006B +:04672B00000000006A +:04672C000000000069 +:04672D000000000068 +:04672E000000000067 +:04672F000000000066 +:046730000000000065 +:046731000000000064 +:046732000000000063 +:046733000000000062 +:046734000000000061 +:046735000000000060 +:04673600000000005F +:04673700000000005E +:04673800000000005D +:04673900000000005C +:04673A00000000005B +:04673B00000000005A +:04673C000000000059 +:04673D000000000058 +:04673E000000000057 +:04673F000000000056 +:046740000000000055 +:046741000000000054 +:046742000000000053 +:046743000000000052 +:046744000000000051 +:046745000000000050 +:04674600000000004F +:04674700000000004E +:04674800000000004D +:04674900000000004C +:04674A00000000004B +:04674B00000000004A +:04674C000000000049 +:04674D000000000048 +:04674E000000000047 +:04674F000000000046 +:046750000000000045 +:046751000000000044 +:046752000000000043 +:046753000000000042 +:046754000000000041 +:046755000000000040 +:04675600000000003F +:04675700000000003E +:04675800000000003D +:04675900000000003C +:04675A00000000003B +:04675B00000000003A +:04675C000000000039 +:04675D000000000038 +:04675E000000000037 +:04675F000000000036 +:046760000000000035 +:046761000000000034 +:046762000000000033 +:046763000000000032 +:046764000000000031 +:046765000000000030 +:04676600000000002F +:04676700000000002E +:04676800000000002D +:04676900000000002C +:04676A00000000002B +:04676B00000000002A +:04676C000000000029 +:04676D000000000028 +:04676E000000000027 +:04676F000000000026 +:046770000000000025 +:046771000000000024 +:046772000000000023 +:046773000000000022 +:046774000000000021 +:046775000000000020 +:04677600000000001F +:04677700000000001E +:04677800000000001D +:04677900000000001C +:04677A00000000001B +:04677B00000000001A +:04677C000000000019 +:04677D000000000018 +:04677E000000000017 +:04677F000000000016 +:046780000000000015 +:046781000000000014 +:046782000000000013 +:046783000000000012 +:046784000000000011 +:046785000000000010 +:04678600000000000F +:04678700000000000E +:04678800000000000D +:04678900000000000C +:04678A00000000000B +:04678B00000000000A +:04678C000000000009 +:04678D000000000008 +:04678E000000000007 +:04678F000000000006 +:046790000000000005 +:046791000000000004 +:046792000000000003 +:046793000000000002 +:046794000000000001 +:046795000000000000 +:0467960000000000FF +:0467970000000000FE +:0467980000000000FD +:0467990000000000FC +:04679A0000000000FB +:04679B0000000000FA +:04679C0000000000F9 +:04679D0000000000F8 +:04679E0000000000F7 +:04679F0000000000F6 +:0467A00000000000F5 +:0467A10000000000F4 +:0467A20000000000F3 +:0467A30000000000F2 +:0467A40000000000F1 +:0467A50000000000F0 +:0467A60000000000EF +:0467A70000000000EE +:0467A80000000000ED +:0467A90000000000EC +:0467AA0000000000EB +:0467AB0000000000EA +:0467AC0000000000E9 +:0467AD0000000000E8 +:0467AE0000000000E7 +:0467AF0000000000E6 +:0467B00000000000E5 +:0467B10000000000E4 +:0467B20000000000E3 +:0467B30000000000E2 +:0467B40000000000E1 +:0467B50000000000E0 +:0467B60000000000DF +:0467B70000000000DE +:0467B80000000000DD +:0467B90000000000DC +:0467BA0000000000DB +:0467BB0000000000DA +:0467BC0000000000D9 +:0467BD0000000000D8 +:0467BE0000000000D7 +:0467BF0000000000D6 +:0467C00000000000D5 +:0467C10000000000D4 +:0467C20000000000D3 +:0467C30000000000D2 +:0467C40000000000D1 +:0467C50000000000D0 +:0467C60000000000CF +:0467C70000000000CE +:0467C80000000000CD +:0467C90000000000CC +:0467CA0000000000CB +:0467CB0000000000CA +:0467CC0000000000C9 +:0467CD0000000000C8 +:0467CE0000000000C7 +:0467CF0000000000C6 +:0467D00000000000C5 +:0467D10000000000C4 +:0467D20000000000C3 +:0467D30000000000C2 +:0467D40000000000C1 +:0467D50000000000C0 +:0467D60000000000BF +:0467D70000000000BE +:0467D80000000000BD +:0467D90000000000BC +:0467DA0000000000BB +:0467DB0000000000BA +:0467DC0000000000B9 +:0467DD0000000000B8 +:0467DE0000000000B7 +:0467DF0000000000B6 +:0467E00000000000B5 +:0467E10000000000B4 +:0467E20000000000B3 +:0467E30000000000B2 +:0467E40000000000B1 +:0467E50000000000B0 +:0467E60000000000AF +:0467E70000000000AE +:0467E80000000000AD +:0467E90000000000AC +:0467EA0000000000AB +:0467EB0000000000AA +:0467EC0000000000A9 +:0467ED0000000000A8 +:0467EE0000000000A7 +:0467EF0000000000A6 +:0467F00000000000A5 +:0467F10000000000A4 +:0467F20000000000A3 +:0467F30000000000A2 +:0467F40000000000A1 +:0467F50000000000A0 +:0467F600000000009F +:0467F700000000009E +:0467F800000000009D +:0467F900000000009C +:0467FA00000000009B +:0467FB00000000009A +:0467FC000000000099 +:0467FD000000000098 +:0467FE000000000097 +:0467FF000000000096 +:046800000000000094 +:046801000000000093 +:046802000000000092 +:046803000000000091 +:046804000000000090 +:04680500000000008F +:04680600000000008E +:04680700000000008D +:04680800000000008C +:04680900000000008B +:04680A00000000008A +:04680B000000000089 +:04680C000000000088 +:04680D000000000087 +:04680E000000000086 +:04680F000000000085 +:046810000000000084 +:046811000000000083 +:046812000000000082 +:046813000000000081 +:046814000000000080 +:04681500000000007F +:04681600000000007E +:04681700000000007D +:04681800000000007C +:04681900000000007B +:04681A00000000007A +:04681B000000000079 +:04681C000000000078 +:04681D000000000077 +:04681E000000000076 +:04681F000000000075 +:046820000000000074 +:046821000000000073 +:046822000000000072 +:046823000000000071 +:046824000000000070 +:04682500000000006F +:04682600000000006E +:04682700000000006D +:04682800000000006C +:04682900000000006B +:04682A00000000006A +:04682B000000000069 +:04682C000000000068 +:04682D000000000067 +:04682E000000000066 +:04682F000000000065 +:046830000000000064 +:046831000000000063 +:046832000000000062 +:046833000000000061 +:046834000000000060 +:04683500000000005F +:04683600000000005E +:04683700000000005D +:04683800000000005C +:04683900000000005B +:04683A00000000005A +:04683B000000000059 +:04683C000000000058 +:04683D000000000057 +:04683E000000000056 +:04683F000000000055 +:046840000000000054 +:046841000000000053 +:046842000000000052 +:046843000000000051 +:046844000000000050 +:04684500000000004F +:04684600000000004E +:04684700000000004D +:04684800000000004C +:04684900000000004B +:04684A00000000004A +:04684B000000000049 +:04684C000000000048 +:04684D000000000047 +:04684E000000000046 +:04684F000000000045 +:046850000000000044 +:046851000000000043 +:046852000000000042 +:046853000000000041 +:046854000000000040 +:04685500000000003F +:04685600000000003E +:04685700000000003D +:04685800000000003C +:04685900000000003B +:04685A00000000003A +:04685B000000000039 +:04685C000000000038 +:04685D000000000037 +:04685E000000000036 +:04685F000000000035 +:046860000000000034 +:046861000000000033 +:046862000000000032 +:046863000000000031 +:046864000000000030 +:04686500000000002F +:04686600000000002E +:04686700000000002D +:04686800000000002C +:04686900000000002B +:04686A00000000002A +:04686B000000000029 +:04686C000000000028 +:04686D000000000027 +:04686E000000000026 +:04686F000000000025 +:046870000000000024 +:046871000000000023 +:046872000000000022 +:046873000000000021 +:046874000000000020 +:04687500000000001F +:04687600000000001E +:04687700000000001D +:04687800000000001C +:04687900000000001B +:04687A00000000001A +:04687B000000000019 +:04687C000000000018 +:04687D000000000017 +:04687E000000000016 +:04687F000000000015 +:046880000000000014 +:046881000000000013 +:046882000000000012 +:046883000000000011 +:046884000000000010 +:04688500000000000F +:04688600000000000E +:04688700000000000D +:04688800000000000C +:04688900000000000B +:04688A00000000000A +:04688B000000000009 +:04688C000000000008 +:04688D000000000007 +:04688E000000000006 +:04688F000000000005 +:046890000000000004 +:046891000000000003 +:046892000000000002 +:046893000000000001 +:046894000000000000 +:0468950000000000FF +:0468960000000000FE +:0468970000000000FD +:0468980000000000FC +:0468990000000000FB +:04689A0000000000FA +:04689B0000000000F9 +:04689C0000000000F8 +:04689D0000000000F7 +:04689E0000000000F6 +:04689F0000000000F5 +:0468A00000000000F4 +:0468A10000000000F3 +:0468A20000000000F2 +:0468A30000000000F1 +:0468A40000000000F0 +:0468A50000000000EF +:0468A60000000000EE +:0468A70000000000ED +:0468A80000000000EC +:0468A90000000000EB +:0468AA0000000000EA +:0468AB0000000000E9 +:0468AC0000000000E8 +:0468AD0000000000E7 +:0468AE0000000000E6 +:0468AF0000000000E5 +:0468B00000000000E4 +:0468B10000000000E3 +:0468B20000000000E2 +:0468B30000000000E1 +:0468B40000000000E0 +:0468B50000000000DF +:0468B60000000000DE +:0468B70000000000DD +:0468B80000000000DC +:0468B90000000000DB +:0468BA0000000000DA +:0468BB0000000000D9 +:0468BC0000000000D8 +:0468BD0000000000D7 +:0468BE0000000000D6 +:0468BF0000000000D5 +:0468C00000000000D4 +:0468C10000000000D3 +:0468C20000000000D2 +:0468C30000000000D1 +:0468C40000000000D0 +:0468C50000000000CF +:0468C60000000000CE +:0468C70000000000CD +:0468C80000000000CC +:0468C90000000000CB +:0468CA0000000000CA +:0468CB0000000000C9 +:0468CC0000000000C8 +:0468CD0000000000C7 +:0468CE0000000000C6 +:0468CF0000000000C5 +:0468D00000000000C4 +:0468D10000000000C3 +:0468D20000000000C2 +:0468D30000000000C1 +:0468D40000000000C0 +:0468D50000000000BF +:0468D60000000000BE +:0468D70000000000BD +:0468D80000000000BC +:0468D90000000000BB +:0468DA0000000000BA +:0468DB0000000000B9 +:0468DC0000000000B8 +:0468DD0000000000B7 +:0468DE0000000000B6 +:0468DF0000000000B5 +:0468E00000000000B4 +:0468E10000000000B3 +:0468E20000000000B2 +:0468E30000000000B1 +:0468E40000000000B0 +:0468E50000000000AF +:0468E60000000000AE +:0468E70000000000AD +:0468E80000000000AC +:0468E90000000000AB +:0468EA0000000000AA +:0468EB0000000000A9 +:0468EC0000000000A8 +:0468ED0000000000A7 +:0468EE0000000000A6 +:0468EF0000000000A5 +:0468F00000000000A4 +:0468F10000000000A3 +:0468F20000000000A2 +:0468F30000000000A1 +:0468F40000000000A0 +:0468F500000000009F +:0468F600000000009E +:0468F700000000009D +:0468F800000000009C +:0468F900000000009B +:0468FA00000000009A +:0468FB000000000099 +:0468FC000000000098 +:0468FD000000000097 +:0468FE000000000096 +:0468FF000000000095 +:046900000000000093 +:046901000000000092 +:046902000000000091 +:046903000000000090 +:04690400000000008F +:04690500000000008E +:04690600000000008D +:04690700000000008C +:04690800000000008B +:04690900000000008A +:04690A000000000089 +:04690B000000000088 +:04690C000000000087 +:04690D000000000086 +:04690E000000000085 +:04690F000000000084 +:046910000000000083 +:046911000000000082 +:046912000000000081 +:046913000000000080 +:04691400000000007F +:04691500000000007E +:04691600000000007D +:04691700000000007C +:04691800000000007B +:04691900000000007A +:04691A000000000079 +:04691B000000000078 +:04691C000000000077 +:04691D000000000076 +:04691E000000000075 +:04691F000000000074 +:046920000000000073 +:046921000000000072 +:046922000000000071 +:046923000000000070 +:04692400000000006F +:04692500000000006E +:04692600000000006D +:04692700000000006C +:04692800000000006B +:04692900000000006A +:04692A000000000069 +:04692B000000000068 +:04692C000000000067 +:04692D000000000066 +:04692E000000000065 +:04692F000000000064 +:046930000000000063 +:046931000000000062 +:046932000000000061 +:046933000000000060 +:04693400000000005F +:04693500000000005E +:04693600000000005D +:04693700000000005C +:04693800000000005B +:04693900000000005A +:04693A000000000059 +:04693B000000000058 +:04693C000000000057 +:04693D000000000056 +:04693E000000000055 +:04693F000000000054 +:046940000000000053 +:046941000000000052 +:046942000000000051 +:046943000000000050 +:04694400000000004F +:04694500000000004E +:04694600000000004D +:04694700000000004C +:04694800000000004B +:04694900000000004A +:04694A000000000049 +:04694B000000000048 +:04694C000000000047 +:04694D000000000046 +:04694E000000000045 +:04694F000000000044 +:046950000000000043 +:046951000000000042 +:046952000000000041 +:046953000000000040 +:04695400000000003F +:04695500000000003E +:04695600000000003D +:04695700000000003C +:04695800000000003B +:04695900000000003A +:04695A000000000039 +:04695B000000000038 +:04695C000000000037 +:04695D000000000036 +:04695E000000000035 +:04695F000000000034 +:046960000000000033 +:046961000000000032 +:046962000000000031 +:046963000000000030 +:04696400000000002F +:04696500000000002E +:04696600000000002D +:04696700000000002C +:04696800000000002B +:04696900000000002A +:04696A000000000029 +:04696B000000000028 +:04696C000000000027 +:04696D000000000026 +:04696E000000000025 +:04696F000000000024 +:046970000000000023 +:046971000000000022 +:046972000000000021 +:046973000000000020 +:04697400000000001F +:04697500000000001E +:04697600000000001D +:04697700000000001C +:04697800000000001B +:04697900000000001A +:04697A000000000019 +:04697B000000000018 +:04697C000000000017 +:04697D000000000016 +:04697E000000000015 +:04697F000000000014 +:046980000000000013 +:046981000000000012 +:046982000000000011 +:046983000000000010 +:04698400000000000F +:04698500000000000E +:04698600000000000D +:04698700000000000C +:04698800000000000B +:04698900000000000A +:04698A000000000009 +:04698B000000000008 +:04698C000000000007 +:04698D000000000006 +:04698E000000000005 +:04698F000000000004 +:046990000000000003 +:046991000000000002 +:046992000000000001 +:046993000000000000 +:0469940000000000FF +:0469950000000000FE +:0469960000000000FD +:0469970000000000FC +:0469980000000000FB +:0469990000000000FA +:04699A0000000000F9 +:04699B0000000000F8 +:04699C0000000000F7 +:04699D0000000000F6 +:04699E0000000000F5 +:04699F0000000000F4 +:0469A00000000000F3 +:0469A10000000000F2 +:0469A20000000000F1 +:0469A30000000000F0 +:0469A40000000000EF +:0469A50000000000EE +:0469A60000000000ED +:0469A70000000000EC +:0469A80000000000EB +:0469A90000000000EA +:0469AA0000000000E9 +:0469AB0000000000E8 +:0469AC0000000000E7 +:0469AD0000000000E6 +:0469AE0000000000E5 +:0469AF0000000000E4 +:0469B00000000000E3 +:0469B10000000000E2 +:0469B20000000000E1 +:0469B30000000000E0 +:0469B40000000000DF +:0469B50000000000DE +:0469B60000000000DD +:0469B70000000000DC +:0469B80000000000DB +:0469B90000000000DA +:0469BA0000000000D9 +:0469BB0000000000D8 +:0469BC0000000000D7 +:0469BD0000000000D6 +:0469BE0000000000D5 +:0469BF0000000000D4 +:0469C00000000000D3 +:0469C10000000000D2 +:0469C20000000000D1 +:0469C30000000000D0 +:0469C40000000000CF +:0469C50000000000CE +:0469C60000000000CD +:0469C70000000000CC +:0469C80000000000CB +:0469C90000000000CA +:0469CA0000000000C9 +:0469CB0000000000C8 +:0469CC0000000000C7 +:0469CD0000000000C6 +:0469CE0000000000C5 +:0469CF0000000000C4 +:0469D00000000000C3 +:0469D10000000000C2 +:0469D20000000000C1 +:0469D30000000000C0 +:0469D40000000000BF +:0469D50000000000BE +:0469D60000000000BD +:0469D70000000000BC +:0469D80000000000BB +:0469D90000000000BA +:0469DA0000000000B9 +:0469DB0000000000B8 +:0469DC0000000000B7 +:0469DD0000000000B6 +:0469DE0000000000B5 +:0469DF0000000000B4 +:0469E00000000000B3 +:0469E10000000000B2 +:0469E20000000000B1 +:0469E30000000000B0 +:0469E40000000000AF +:0469E50000000000AE +:0469E60000000000AD +:0469E70000000000AC +:0469E80000000000AB +:0469E90000000000AA +:0469EA0000000000A9 +:0469EB0000000000A8 +:0469EC0000000000A7 +:0469ED0000000000A6 +:0469EE0000000000A5 +:0469EF0000000000A4 +:0469F00000000000A3 +:0469F10000000000A2 +:0469F20000000000A1 +:0469F30000000000A0 +:0469F400000000009F +:0469F500000000009E +:0469F600000000009D +:0469F700000000009C +:0469F800000000009B +:0469F900000000009A +:0469FA000000000099 +:0469FB000000000098 +:0469FC000000000097 +:0469FD000000000096 +:0469FE000000000095 +:0469FF000000000094 +:046A00000000000092 +:046A01000000000091 +:046A02000000000090 +:046A0300000000008F +:046A0400000000008E +:046A0500000000008D +:046A0600000000008C +:046A0700000000008B +:046A0800000000008A +:046A09000000000089 +:046A0A000000000088 +:046A0B000000000087 +:046A0C000000000086 +:046A0D000000000085 +:046A0E000000000084 +:046A0F000000000083 +:046A10000000000082 +:046A11000000000081 +:046A12000000000080 +:046A1300000000007F +:046A1400000000007E +:046A1500000000007D +:046A1600000000007C +:046A1700000000007B +:046A1800000000007A +:046A19000000000079 +:046A1A000000000078 +:046A1B000000000077 +:046A1C000000000076 +:046A1D000000000075 +:046A1E000000000074 +:046A1F000000000073 +:046A20000000000072 +:046A21000000000071 +:046A22000000000070 +:046A2300000000006F +:046A2400000000006E +:046A2500000000006D +:046A2600000000006C +:046A2700000000006B +:046A2800000000006A +:046A29000000000069 +:046A2A000000000068 +:046A2B000000000067 +:046A2C000000000066 +:046A2D000000000065 +:046A2E000000000064 +:046A2F000000000063 +:046A30000000000062 +:046A31000000000061 +:046A32000000000060 +:046A3300000000005F +:046A3400000000005E +:046A3500000000005D +:046A3600000000005C +:046A3700000000005B +:046A3800000000005A +:046A39000000000059 +:046A3A000000000058 +:046A3B000000000057 +:046A3C000000000056 +:046A3D000000000055 +:046A3E000000000054 +:046A3F000000000053 +:046A40000000000052 +:046A41000000000051 +:046A42000000000050 +:046A4300000000004F +:046A4400000000004E +:046A4500000000004D +:046A4600000000004C +:046A4700000000004B +:046A4800000000004A +:046A49000000000049 +:046A4A000000000048 +:046A4B000000000047 +:046A4C000000000046 +:046A4D000000000045 +:046A4E000000000044 +:046A4F000000000043 +:046A50000000000042 +:046A51000000000041 +:046A52000000000040 +:046A5300000000003F +:046A5400000000003E +:046A5500000000003D +:046A5600000000003C +:046A5700000000003B +:046A5800000000003A +:046A59000000000039 +:046A5A000000000038 +:046A5B000000000037 +:046A5C000000000036 +:046A5D000000000035 +:046A5E000000000034 +:046A5F000000000033 +:046A60000000000032 +:046A61000000000031 +:046A62000000000030 +:046A6300000000002F +:046A6400000000002E +:046A6500000000002D +:046A6600000000002C +:046A6700000000002B +:046A6800000000002A +:046A69000000000029 +:046A6A000000000028 +:046A6B000000000027 +:046A6C000000000026 +:046A6D000000000025 +:046A6E000000000024 +:046A6F000000000023 +:046A70000000000022 +:046A71000000000021 +:046A72000000000020 +:046A7300000000001F +:046A7400000000001E +:046A7500000000001D +:046A7600000000001C +:046A7700000000001B +:046A7800000000001A +:046A79000000000019 +:046A7A000000000018 +:046A7B000000000017 +:046A7C000000000016 +:046A7D000000000015 +:046A7E000000000014 +:046A7F000000000013 +:046A80000000000012 +:046A81000000000011 +:046A82000000000010 +:046A8300000000000F +:046A8400000000000E +:046A8500000000000D +:046A8600000000000C +:046A8700000000000B +:046A8800000000000A +:046A89000000000009 +:046A8A000000000008 +:046A8B000000000007 +:046A8C000000000006 +:046A8D000000000005 +:046A8E000000000004 +:046A8F000000000003 +:046A90000000000002 +:046A91000000000001 +:046A92000000000000 +:046A930000000000FF +:046A940000000000FE +:046A950000000000FD +:046A960000000000FC +:046A970000000000FB +:046A980000000000FA +:046A990000000000F9 +:046A9A0000000000F8 +:046A9B0000000000F7 +:046A9C0000000000F6 +:046A9D0000000000F5 +:046A9E0000000000F4 +:046A9F0000000000F3 +:046AA00000000000F2 +:046AA10000000000F1 +:046AA20000000000F0 +:046AA30000000000EF +:046AA40000000000EE +:046AA50000000000ED +:046AA60000000000EC +:046AA70000000000EB +:046AA80000000000EA +:046AA90000000000E9 +:046AAA0000000000E8 +:046AAB0000000000E7 +:046AAC0000000000E6 +:046AAD0000000000E5 +:046AAE0000000000E4 +:046AAF0000000000E3 +:046AB00000000000E2 +:046AB10000000000E1 +:046AB20000000000E0 +:046AB30000000000DF +:046AB40000000000DE +:046AB50000000000DD +:046AB60000000000DC +:046AB70000000000DB +:046AB80000000000DA +:046AB90000000000D9 +:046ABA0000000000D8 +:046ABB0000000000D7 +:046ABC0000000000D6 +:046ABD0000000000D5 +:046ABE0000000000D4 +:046ABF0000000000D3 +:046AC00000000000D2 +:046AC10000000000D1 +:046AC20000000000D0 +:046AC30000000000CF +:046AC40000000000CE +:046AC50000000000CD +:046AC60000000000CC +:046AC70000000000CB +:046AC80000000000CA +:046AC90000000000C9 +:046ACA0000000000C8 +:046ACB0000000000C7 +:046ACC0000000000C6 +:046ACD0000000000C5 +:046ACE0000000000C4 +:046ACF0000000000C3 +:046AD00000000000C2 +:046AD10000000000C1 +:046AD20000000000C0 +:046AD30000000000BF +:046AD40000000000BE +:046AD50000000000BD +:046AD60000000000BC +:046AD70000000000BB +:046AD80000000000BA +:046AD90000000000B9 +:046ADA0000000000B8 +:046ADB0000000000B7 +:046ADC0000000000B6 +:046ADD0000000000B5 +:046ADE0000000000B4 +:046ADF0000000000B3 +:046AE00000000000B2 +:046AE10000000000B1 +:046AE20000000000B0 +:046AE30000000000AF +:046AE40000000000AE +:046AE50000000000AD +:046AE60000000000AC +:046AE70000000000AB +:046AE80000000000AA +:046AE90000000000A9 +:046AEA0000000000A8 +:046AEB0000000000A7 +:046AEC0000000000A6 +:046AED0000000000A5 +:046AEE0000000000A4 +:046AEF0000000000A3 +:046AF00000000000A2 +:046AF10000000000A1 +:046AF20000000000A0 +:046AF300000000009F +:046AF400000000009E +:046AF500000000009D +:046AF600000000009C +:046AF700000000009B +:046AF800000000009A +:046AF9000000000099 +:046AFA000000000098 +:046AFB000000000097 +:046AFC000000000096 +:046AFD000000000095 +:046AFE000000000094 +:046AFF000000000093 +:046B00000000000091 +:046B01000000000090 +:046B0200000000008F +:046B0300000000008E +:046B0400000000008D +:046B0500000000008C +:046B0600000000008B +:046B0700000000008A +:046B08000000000089 +:046B09000000000088 +:046B0A000000000087 +:046B0B000000000086 +:046B0C000000000085 +:046B0D000000000084 +:046B0E000000000083 +:046B0F000000000082 +:046B10000000000081 +:046B11000000000080 +:046B1200000000007F +:046B1300000000007E +:046B1400000000007D +:046B1500000000007C +:046B1600000000007B +:046B1700000000007A +:046B18000000000079 +:046B19000000000078 +:046B1A000000000077 +:046B1B000000000076 +:046B1C000000000075 +:046B1D000000000074 +:046B1E000000000073 +:046B1F000000000072 +:046B20000000000071 +:046B21000000000070 +:046B2200000000006F +:046B2300000000006E +:046B2400000000006D +:046B2500000000006C +:046B2600000000006B +:046B2700000000006A +:046B28000000000069 +:046B29000000000068 +:046B2A000000000067 +:046B2B000000000066 +:046B2C000000000065 +:046B2D000000000064 +:046B2E000000000063 +:046B2F000000000062 +:046B30000000000061 +:046B31000000000060 +:046B3200000000005F +:046B3300000000005E +:046B3400000000005D +:046B3500000000005C +:046B3600000000005B +:046B3700000000005A +:046B38000000000059 +:046B39000000000058 +:046B3A000000000057 +:046B3B000000000056 +:046B3C000000000055 +:046B3D000000000054 +:046B3E000000000053 +:046B3F000000000052 +:046B40000000000051 +:046B41000000000050 +:046B4200000000004F +:046B4300000000004E +:046B4400000000004D +:046B4500000000004C +:046B4600000000004B +:046B4700000000004A +:046B48000000000049 +:046B49000000000048 +:046B4A000000000047 +:046B4B000000000046 +:046B4C000000000045 +:046B4D000000000044 +:046B4E000000000043 +:046B4F000000000042 +:046B50000000000041 +:046B51000000000040 +:046B5200000000003F +:046B5300000000003E +:046B5400000000003D +:046B5500000000003C +:046B5600000000003B +:046B5700000000003A +:046B58000000000039 +:046B59000000000038 +:046B5A000000000037 +:046B5B000000000036 +:046B5C000000000035 +:046B5D000000000034 +:046B5E000000000033 +:046B5F000000000032 +:046B60000000000031 +:046B61000000000030 +:046B6200000000002F +:046B6300000000002E +:046B6400000000002D +:046B6500000000002C +:046B6600000000002B +:046B6700000000002A +:046B68000000000029 +:046B69000000000028 +:046B6A000000000027 +:046B6B000000000026 +:046B6C000000000025 +:046B6D000000000024 +:046B6E000000000023 +:046B6F000000000022 +:046B70000000000021 +:046B71000000000020 +:046B7200000000001F +:046B7300000000001E +:046B7400000000001D +:046B7500000000001C +:046B7600000000001B +:046B7700000000001A +:046B78000000000019 +:046B79000000000018 +:046B7A000000000017 +:046B7B000000000016 +:046B7C000000000015 +:046B7D000000000014 +:046B7E000000000013 +:046B7F000000000012 +:046B80000000000011 +:046B81000000000010 +:046B8200000000000F +:046B8300000000000E +:046B8400000000000D +:046B8500000000000C +:046B8600000000000B +:046B8700000000000A +:046B88000000000009 +:046B89000000000008 +:046B8A000000000007 +:046B8B000000000006 +:046B8C000000000005 +:046B8D000000000004 +:046B8E000000000003 +:046B8F000000000002 +:046B90000000000001 +:046B91000000000000 +:046B920000000000FF +:046B930000000000FE +:046B940000000000FD +:046B950000000000FC +:046B960000000000FB +:046B970000000000FA +:046B980000000000F9 +:046B990000000000F8 +:046B9A0000000000F7 +:046B9B0000000000F6 +:046B9C0000000000F5 +:046B9D0000000000F4 +:046B9E0000000000F3 +:046B9F0000000000F2 +:046BA00000000000F1 +:046BA10000000000F0 +:046BA20000000000EF +:046BA30000000000EE +:046BA40000000000ED +:046BA50000000000EC +:046BA60000000000EB +:046BA70000000000EA +:046BA80000000000E9 +:046BA90000000000E8 +:046BAA0000000000E7 +:046BAB0000000000E6 +:046BAC0000000000E5 +:046BAD0000000000E4 +:046BAE0000000000E3 +:046BAF0000000000E2 +:046BB00000000000E1 +:046BB10000000000E0 +:046BB20000000000DF +:046BB30000000000DE +:046BB40000000000DD +:046BB50000000000DC +:046BB60000000000DB +:046BB70000000000DA +:046BB80000000000D9 +:046BB90000000000D8 +:046BBA0000000000D7 +:046BBB0000000000D6 +:046BBC0000000000D5 +:046BBD0000000000D4 +:046BBE0000000000D3 +:046BBF0000000000D2 +:046BC00000000000D1 +:046BC10000000000D0 +:046BC20000000000CF +:046BC30000000000CE +:046BC40000000000CD +:046BC50000000000CC +:046BC60000000000CB +:046BC70000000000CA +:046BC80000000000C9 +:046BC90000000000C8 +:046BCA0000000000C7 +:046BCB0000000000C6 +:046BCC0000000000C5 +:046BCD0000000000C4 +:046BCE0000000000C3 +:046BCF0000000000C2 +:046BD00000000000C1 +:046BD10000000000C0 +:046BD20000000000BF +:046BD30000000000BE +:046BD40000000000BD +:046BD50000000000BC +:046BD60000000000BB +:046BD70000000000BA +:046BD80000000000B9 +:046BD90000000000B8 +:046BDA0000000000B7 +:046BDB0000000000B6 +:046BDC0000000000B5 +:046BDD0000000000B4 +:046BDE0000000000B3 +:046BDF0000000000B2 +:046BE00000000000B1 +:046BE10000000000B0 +:046BE20000000000AF +:046BE30000000000AE +:046BE40000000000AD +:046BE50000000000AC +:046BE60000000000AB +:046BE70000000000AA +:046BE80000000000A9 +:046BE90000000000A8 +:046BEA0000000000A7 +:046BEB0000000000A6 +:046BEC0000000000A5 +:046BED0000000000A4 +:046BEE0000000000A3 +:046BEF0000000000A2 +:046BF00000000000A1 +:046BF10000000000A0 +:046BF200000000009F +:046BF300000000009E +:046BF400000000009D +:046BF500000000009C +:046BF600000000009B +:046BF700000000009A +:046BF8000000000099 +:046BF9000000000098 +:046BFA000000000097 +:046BFB000000000096 +:046BFC000000000095 +:046BFD000000000094 +:046BFE000000000093 +:046BFF000000000092 +:046C00000000000090 +:046C0100000000008F +:046C0200000000008E +:046C0300000000008D +:046C0400000000008C +:046C0500000000008B +:046C0600000000008A +:046C07000000000089 +:046C08000000000088 +:046C09000000000087 +:046C0A000000000086 +:046C0B000000000085 +:046C0C000000000084 +:046C0D000000000083 +:046C0E000000000082 +:046C0F000000000081 +:046C10000000000080 +:046C1100000000007F +:046C1200000000007E +:046C1300000000007D +:046C1400000000007C +:046C1500000000007B +:046C1600000000007A +:046C17000000000079 +:046C18000000000078 +:046C19000000000077 +:046C1A000000000076 +:046C1B000000000075 +:046C1C000000000074 +:046C1D000000000073 +:046C1E000000000072 +:046C1F000000000071 +:046C20000000000070 +:046C2100000000006F +:046C2200000000006E +:046C2300000000006D +:046C2400000000006C +:046C2500000000006B +:046C2600000000006A +:046C27000000000069 +:046C28000000000068 +:046C29000000000067 +:046C2A000000000066 +:046C2B000000000065 +:046C2C000000000064 +:046C2D000000000063 +:046C2E000000000062 +:046C2F000000000061 +:046C30000000000060 +:046C3100000000005F +:046C3200000000005E +:046C3300000000005D +:046C3400000000005C +:046C3500000000005B +:046C3600000000005A +:046C37000000000059 +:046C38000000000058 +:046C39000000000057 +:046C3A000000000056 +:046C3B000000000055 +:046C3C000000000054 +:046C3D000000000053 +:046C3E000000000052 +:046C3F000000000051 +:046C40000000000050 +:046C4100000000004F +:046C4200000000004E +:046C4300000000004D +:046C4400000000004C +:046C4500000000004B +:046C4600000000004A +:046C47000000000049 +:046C48000000000048 +:046C49000000000047 +:046C4A000000000046 +:046C4B000000000045 +:046C4C000000000044 +:046C4D000000000043 +:046C4E000000000042 +:046C4F000000000041 +:046C50000000000040 +:046C5100000000003F +:046C5200000000003E +:046C5300000000003D +:046C5400000000003C +:046C5500000000003B +:046C5600000000003A +:046C57000000000039 +:046C58000000000038 +:046C59000000000037 +:046C5A000000000036 +:046C5B000000000035 +:046C5C000000000034 +:046C5D000000000033 +:046C5E000000000032 +:046C5F000000000031 +:046C60000000000030 +:046C6100000000002F +:046C6200000000002E +:046C6300000000002D +:046C6400000000002C +:046C6500000000002B +:046C6600000000002A +:046C67000000000029 +:046C68000000000028 +:046C69000000000027 +:046C6A000000000026 +:046C6B000000000025 +:046C6C000000000024 +:046C6D000000000023 +:046C6E000000000022 +:046C6F000000000021 +:046C70000000000020 +:046C7100000000001F +:046C7200000000001E +:046C7300000000001D +:046C7400000000001C +:046C7500000000001B +:046C7600000000001A +:046C77000000000019 +:046C78000000000018 +:046C79000000000017 +:046C7A000000000016 +:046C7B000000000015 +:046C7C000000000014 +:046C7D000000000013 +:046C7E000000000012 +:046C7F000000000011 +:046C80000000000010 +:046C8100000000000F +:046C8200000000000E +:046C8300000000000D +:046C8400000000000C +:046C8500000000000B +:046C8600000000000A +:046C87000000000009 +:046C88000000000008 +:046C89000000000007 +:046C8A000000000006 +:046C8B000000000005 +:046C8C000000000004 +:046C8D000000000003 +:046C8E000000000002 +:046C8F000000000001 +:046C90000000000000 +:046C910000000000FF +:046C920000000000FE +:046C930000000000FD +:046C940000000000FC +:046C950000000000FB +:046C960000000000FA +:046C970000000000F9 +:046C980000000000F8 +:046C990000000000F7 +:046C9A0000000000F6 +:046C9B0000000000F5 +:046C9C0000000000F4 +:046C9D0000000000F3 +:046C9E0000000000F2 +:046C9F0000000000F1 +:046CA00000000000F0 +:046CA10000000000EF +:046CA20000000000EE +:046CA30000000000ED +:046CA40000000000EC +:046CA50000000000EB +:046CA60000000000EA +:046CA70000000000E9 +:046CA80000000000E8 +:046CA90000000000E7 +:046CAA0000000000E6 +:046CAB0000000000E5 +:046CAC0000000000E4 +:046CAD0000000000E3 +:046CAE0000000000E2 +:046CAF0000000000E1 +:046CB00000000000E0 +:046CB10000000000DF +:046CB20000000000DE +:046CB30000000000DD +:046CB40000000000DC +:046CB50000000000DB +:046CB60000000000DA +:046CB70000000000D9 +:046CB80000000000D8 +:046CB90000000000D7 +:046CBA0000000000D6 +:046CBB0000000000D5 +:046CBC0000000000D4 +:046CBD0000000000D3 +:046CBE0000000000D2 +:046CBF0000000000D1 +:046CC00000000000D0 +:046CC10000000000CF +:046CC20000000000CE +:046CC30000000000CD +:046CC40000000000CC +:046CC50000000000CB +:046CC60000000000CA +:046CC70000000000C9 +:046CC80000000000C8 +:046CC90000000000C7 +:046CCA0000000000C6 +:046CCB0000000000C5 +:046CCC0000000000C4 +:046CCD0000000000C3 +:046CCE0000000000C2 +:046CCF0000000000C1 +:046CD00000000000C0 +:046CD10000000000BF +:046CD20000000000BE +:046CD30000000000BD +:046CD40000000000BC +:046CD50000000000BB +:046CD60000000000BA +:046CD70000000000B9 +:046CD80000000000B8 +:046CD90000000000B7 +:046CDA0000000000B6 +:046CDB0000000000B5 +:046CDC0000000000B4 +:046CDD0000000000B3 +:046CDE0000000000B2 +:046CDF0000000000B1 +:046CE00000000000B0 +:046CE10000000000AF +:046CE20000000000AE +:046CE30000000000AD +:046CE40000000000AC +:046CE50000000000AB +:046CE60000000000AA +:046CE70000000000A9 +:046CE80000000000A8 +:046CE90000000000A7 +:046CEA0000000000A6 +:046CEB0000000000A5 +:046CEC0000000000A4 +:046CED0000000000A3 +:046CEE0000000000A2 +:046CEF0000000000A1 +:046CF00000000000A0 +:046CF100000000009F +:046CF200000000009E +:046CF300000000009D +:046CF400000000009C +:046CF500000000009B +:046CF600000000009A +:046CF7000000000099 +:046CF8000000000098 +:046CF9000000000097 +:046CFA000000000096 +:046CFB000000000095 +:046CFC000000000094 +:046CFD000000000093 +:046CFE000000000092 +:046CFF000000000091 +:046D0000000000008F +:046D0100000000008E +:046D0200000000008D +:046D0300000000008C +:046D0400000000008B +:046D0500000000008A +:046D06000000000089 +:046D07000000000088 +:046D08000000000087 +:046D09000000000086 +:046D0A000000000085 +:046D0B000000000084 +:046D0C000000000083 +:046D0D000000000082 +:046D0E000000000081 +:046D0F000000000080 +:046D1000000000007F +:046D1100000000007E +:046D1200000000007D +:046D1300000000007C +:046D1400000000007B +:046D1500000000007A +:046D16000000000079 +:046D17000000000078 +:046D18000000000077 +:046D19000000000076 +:046D1A000000000075 +:046D1B000000000074 +:046D1C000000000073 +:046D1D000000000072 +:046D1E000000000071 +:046D1F000000000070 +:046D2000000000006F +:046D2100000000006E +:046D2200000000006D +:046D2300000000006C +:046D2400000000006B +:046D2500000000006A +:046D26000000000069 +:046D27000000000068 +:046D28000000000067 +:046D29000000000066 +:046D2A000000000065 +:046D2B000000000064 +:046D2C000000000063 +:046D2D000000000062 +:046D2E000000000061 +:046D2F000000000060 +:046D3000000000005F +:046D3100000000005E +:046D3200000000005D +:046D3300000000005C +:046D3400000000005B +:046D3500000000005A +:046D36000000000059 +:046D37000000000058 +:046D38000000000057 +:046D39000000000056 +:046D3A000000000055 +:046D3B000000000054 +:046D3C000000000053 +:046D3D000000000052 +:046D3E000000000051 +:046D3F000000000050 +:046D4000000000004F +:046D4100000000004E +:046D4200000000004D +:046D4300000000004C +:046D4400000000004B +:046D4500000000004A +:046D46000000000049 +:046D47000000000048 +:046D48000000000047 +:046D49000000000046 +:046D4A000000000045 +:046D4B000000000044 +:046D4C000000000043 +:046D4D000000000042 +:046D4E000000000041 +:046D4F000000000040 +:046D5000000000003F +:046D5100000000003E +:046D5200000000003D +:046D5300000000003C +:046D5400000000003B +:046D5500000000003A +:046D56000000000039 +:046D57000000000038 +:046D58000000000037 +:046D59000000000036 +:046D5A000000000035 +:046D5B000000000034 +:046D5C000000000033 +:046D5D000000000032 +:046D5E000000000031 +:046D5F000000000030 +:046D6000000000002F +:046D6100000000002E +:046D6200000000002D +:046D6300000000002C +:046D6400000000002B +:046D6500000000002A +:046D66000000000029 +:046D67000000000028 +:046D68000000000027 +:046D69000000000026 +:046D6A000000000025 +:046D6B000000000024 +:046D6C000000000023 +:046D6D000000000022 +:046D6E000000000021 +:046D6F000000000020 +:046D7000000000001F +:046D7100000000001E +:046D7200000000001D +:046D7300000000001C +:046D7400000000001B +:046D7500000000001A +:046D76000000000019 +:046D77000000000018 +:046D78000000000017 +:046D79000000000016 +:046D7A000000000015 +:046D7B000000000014 +:046D7C000000000013 +:046D7D000000000012 +:046D7E000000000011 +:046D7F000000000010 +:046D8000000000000F +:046D8100000000000E +:046D8200000000000D +:046D8300000000000C +:046D8400000000000B +:046D8500000000000A +:046D86000000000009 +:046D87000000000008 +:046D88000000000007 +:046D89000000000006 +:046D8A000000000005 +:046D8B000000000004 +:046D8C000000000003 +:046D8D000000000002 +:046D8E000000000001 +:046D8F000000000000 +:046D900000000000FF +:046D910000000000FE +:046D920000000000FD +:046D930000000000FC +:046D940000000000FB +:046D950000000000FA +:046D960000000000F9 +:046D970000000000F8 +:046D980000000000F7 +:046D990000000000F6 +:046D9A0000000000F5 +:046D9B0000000000F4 +:046D9C0000000000F3 +:046D9D0000000000F2 +:046D9E0000000000F1 +:046D9F0000000000F0 +:046DA00000000000EF +:046DA10000000000EE +:046DA20000000000ED +:046DA30000000000EC +:046DA40000000000EB +:046DA50000000000EA +:046DA60000000000E9 +:046DA70000000000E8 +:046DA80000000000E7 +:046DA90000000000E6 +:046DAA0000000000E5 +:046DAB0000000000E4 +:046DAC0000000000E3 +:046DAD0000000000E2 +:046DAE0000000000E1 +:046DAF0000000000E0 +:046DB00000000000DF +:046DB10000000000DE +:046DB20000000000DD +:046DB30000000000DC +:046DB40000000000DB +:046DB50000000000DA +:046DB60000000000D9 +:046DB70000000000D8 +:046DB80000000000D7 +:046DB90000000000D6 +:046DBA0000000000D5 +:046DBB0000000000D4 +:046DBC0000000000D3 +:046DBD0000000000D2 +:046DBE0000000000D1 +:046DBF0000000000D0 +:046DC00000000000CF +:046DC10000000000CE +:046DC20000000000CD +:046DC30000000000CC +:046DC40000000000CB +:046DC50000000000CA +:046DC60000000000C9 +:046DC70000000000C8 +:046DC80000000000C7 +:046DC90000000000C6 +:046DCA0000000000C5 +:046DCB0000000000C4 +:046DCC0000000000C3 +:046DCD0000000000C2 +:046DCE0000000000C1 +:046DCF0000000000C0 +:046DD00000000000BF +:046DD10000000000BE +:046DD20000000000BD +:046DD30000000000BC +:046DD40000000000BB +:046DD50000000000BA +:046DD60000000000B9 +:046DD70000000000B8 +:046DD80000000000B7 +:046DD90000000000B6 +:046DDA0000000000B5 +:046DDB0000000000B4 +:046DDC0000000000B3 +:046DDD0000000000B2 +:046DDE0000000000B1 +:046DDF0000000000B0 +:046DE00000000000AF +:046DE10000000000AE +:046DE20000000000AD +:046DE30000000000AC +:046DE40000000000AB +:046DE50000000000AA +:046DE60000000000A9 +:046DE70000000000A8 +:046DE80000000000A7 +:046DE90000000000A6 +:046DEA0000000000A5 +:046DEB0000000000A4 +:046DEC0000000000A3 +:046DED0000000000A2 +:046DEE0000000000A1 +:046DEF0000000000A0 +:046DF000000000009F +:046DF100000000009E +:046DF200000000009D +:046DF300000000009C +:046DF400000000009B +:046DF500000000009A +:046DF6000000000099 +:046DF7000000000098 +:046DF8000000000097 +:046DF9000000000096 +:046DFA000000000095 +:046DFB000000000094 +:046DFC000000000093 +:046DFD000000000092 +:046DFE000000000091 +:046DFF000000000090 +:046E0000000000008E +:046E0100000000008D +:046E0200000000008C +:046E0300000000008B +:046E0400000000008A +:046E05000000000089 +:046E06000000000088 +:046E07000000000087 +:046E08000000000086 +:046E09000000000085 +:046E0A000000000084 +:046E0B000000000083 +:046E0C000000000082 +:046E0D000000000081 +:046E0E000000000080 +:046E0F00000000007F +:046E1000000000007E +:046E1100000000007D +:046E1200000000007C +:046E1300000000007B +:046E1400000000007A +:046E15000000000079 +:046E16000000000078 +:046E17000000000077 +:046E18000000000076 +:046E19000000000075 +:046E1A000000000074 +:046E1B000000000073 +:046E1C000000000072 +:046E1D000000000071 +:046E1E000000000070 +:046E1F00000000006F +:046E2000000000006E +:046E2100000000006D +:046E2200000000006C +:046E2300000000006B +:046E2400000000006A +:046E25000000000069 +:046E26000000000068 +:046E27000000000067 +:046E28000000000066 +:046E29000000000065 +:046E2A000000000064 +:046E2B000000000063 +:046E2C000000000062 +:046E2D000000000061 +:046E2E000000000060 +:046E2F00000000005F +:046E3000000000005E +:046E3100000000005D +:046E3200000000005C +:046E3300000000005B +:046E3400000000005A +:046E35000000000059 +:046E36000000000058 +:046E37000000000057 +:046E38000000000056 +:046E39000000000055 +:046E3A000000000054 +:046E3B000000000053 +:046E3C000000000052 +:046E3D000000000051 +:046E3E000000000050 +:046E3F00000000004F +:046E4000000000004E +:046E4100000000004D +:046E4200000000004C +:046E4300000000004B +:046E4400000000004A +:046E45000000000049 +:046E46000000000048 +:046E47000000000047 +:046E48000000000046 +:046E49000000000045 +:046E4A000000000044 +:046E4B000000000043 +:046E4C000000000042 +:046E4D000000000041 +:046E4E000000000040 +:046E4F00000000003F +:046E5000000000003E +:046E5100000000003D +:046E5200000000003C +:046E5300000000003B +:046E5400000000003A +:046E55000000000039 +:046E56000000000038 +:046E57000000000037 +:046E58000000000036 +:046E59000000000035 +:046E5A000000000034 +:046E5B000000000033 +:046E5C000000000032 +:046E5D000000000031 +:046E5E000000000030 +:046E5F00000000002F +:046E6000000000002E +:046E6100000000002D +:046E6200000000002C +:046E6300000000002B +:046E6400000000002A +:046E65000000000029 +:046E66000000000028 +:046E67000000000027 +:046E68000000000026 +:046E69000000000025 +:046E6A000000000024 +:046E6B000000000023 +:046E6C000000000022 +:046E6D000000000021 +:046E6E000000000020 +:046E6F00000000001F +:046E7000000000001E +:046E7100000000001D +:046E7200000000001C +:046E7300000000001B +:046E7400000000001A +:046E75000000000019 +:046E76000000000018 +:046E77000000000017 +:046E78000000000016 +:046E79000000000015 +:046E7A000000000014 +:046E7B000000000013 +:046E7C000000000012 +:046E7D000000000011 +:046E7E000000000010 +:046E7F00000000000F +:046E8000000000000E +:046E8100000000000D +:046E8200000000000C +:046E8300000000000B +:046E8400000000000A +:046E85000000000009 +:046E86000000000008 +:046E87000000000007 +:046E88000000000006 +:046E89000000000005 +:046E8A000000000004 +:046E8B000000000003 +:046E8C000000000002 +:046E8D000000000001 +:046E8E000000000000 +:046E8F0000000000FF +:046E900000000000FE +:046E910000000000FD +:046E920000000000FC +:046E930000000000FB +:046E940000000000FA +:046E950000000000F9 +:046E960000000000F8 +:046E970000000000F7 +:046E980000000000F6 +:046E990000000000F5 +:046E9A0000000000F4 +:046E9B0000000000F3 +:046E9C0000000000F2 +:046E9D0000000000F1 +:046E9E0000000000F0 +:046E9F0000000000EF +:046EA00000000000EE +:046EA10000000000ED +:046EA20000000000EC +:046EA30000000000EB +:046EA40000000000EA +:046EA50000000000E9 +:046EA60000000000E8 +:046EA70000000000E7 +:046EA80000000000E6 +:046EA90000000000E5 +:046EAA0000000000E4 +:046EAB0000000000E3 +:046EAC0000000000E2 +:046EAD0000000000E1 +:046EAE0000000000E0 +:046EAF0000000000DF +:046EB00000000000DE +:046EB10000000000DD +:046EB20000000000DC +:046EB30000000000DB +:046EB40000000000DA +:046EB50000000000D9 +:046EB60000000000D8 +:046EB70000000000D7 +:046EB80000000000D6 +:046EB90000000000D5 +:046EBA0000000000D4 +:046EBB0000000000D3 +:046EBC0000000000D2 +:046EBD0000000000D1 +:046EBE0000000000D0 +:046EBF0000000000CF +:046EC00000000000CE +:046EC10000000000CD +:046EC20000000000CC +:046EC30000000000CB +:046EC40000000000CA +:046EC50000000000C9 +:046EC60000000000C8 +:046EC70000000000C7 +:046EC80000000000C6 +:046EC90000000000C5 +:046ECA0000000000C4 +:046ECB0000000000C3 +:046ECC0000000000C2 +:046ECD0000000000C1 +:046ECE0000000000C0 +:046ECF0000000000BF +:046ED00000000000BE +:046ED10000000000BD +:046ED20000000000BC +:046ED30000000000BB +:046ED40000000000BA +:046ED50000000000B9 +:046ED60000000000B8 +:046ED70000000000B7 +:046ED80000000000B6 +:046ED90000000000B5 +:046EDA0000000000B4 +:046EDB0000000000B3 +:046EDC0000000000B2 +:046EDD0000000000B1 +:046EDE0000000000B0 +:046EDF0000000000AF +:046EE00000000000AE +:046EE10000000000AD +:046EE20000000000AC +:046EE30000000000AB +:046EE40000000000AA +:046EE50000000000A9 +:046EE60000000000A8 +:046EE70000000000A7 +:046EE80000000000A6 +:046EE90000000000A5 +:046EEA0000000000A4 +:046EEB0000000000A3 +:046EEC0000000000A2 +:046EED0000000000A1 +:046EEE0000000000A0 +:046EEF00000000009F +:046EF000000000009E +:046EF100000000009D +:046EF200000000009C +:046EF300000000009B +:046EF400000000009A +:046EF5000000000099 +:046EF6000000000098 +:046EF7000000000097 +:046EF8000000000096 +:046EF9000000000095 +:046EFA000000000094 +:046EFB000000000093 +:046EFC000000000092 +:046EFD000000000091 +:046EFE000000000090 +:046EFF00000000008F +:046F0000000000008D +:046F0100000000008C +:046F0200000000008B +:046F0300000000008A +:046F04000000000089 +:046F05000000000088 +:046F06000000000087 +:046F07000000000086 +:046F08000000000085 +:046F09000000000084 +:046F0A000000000083 +:046F0B000000000082 +:046F0C000000000081 +:046F0D000000000080 +:046F0E00000000007F +:046F0F00000000007E +:046F1000000000007D +:046F1100000000007C +:046F1200000000007B +:046F1300000000007A +:046F14000000000079 +:046F15000000000078 +:046F16000000000077 +:046F17000000000076 +:046F18000000000075 +:046F19000000000074 +:046F1A000000000073 +:046F1B000000000072 +:046F1C000000000071 +:046F1D000000000070 +:046F1E00000000006F +:046F1F00000000006E +:046F2000000000006D +:046F2100000000006C +:046F2200000000006B +:046F2300000000006A +:046F24000000000069 +:046F25000000000068 +:046F26000000000067 +:046F27000000000066 +:046F28000000000065 +:046F29000000000064 +:046F2A000000000063 +:046F2B000000000062 +:046F2C000000000061 +:046F2D000000000060 +:046F2E00000000005F +:046F2F00000000005E +:046F3000000000005D +:046F3100000000005C +:046F3200000000005B +:046F3300000000005A +:046F34000000000059 +:046F35000000000058 +:046F36000000000057 +:046F37000000000056 +:046F38000000000055 +:046F39000000000054 +:046F3A000000000053 +:046F3B000000000052 +:046F3C000000000051 +:046F3D000000000050 +:046F3E00000000004F +:046F3F00000000004E +:046F4000000000004D +:046F4100000000004C +:046F4200000000004B +:046F4300000000004A +:046F44000000000049 +:046F45000000000048 +:046F46000000000047 +:046F47000000000046 +:046F48000000000045 +:046F49000000000044 +:046F4A000000000043 +:046F4B000000000042 +:046F4C000000000041 +:046F4D000000000040 +:046F4E00000000003F +:046F4F00000000003E +:046F5000000000003D +:046F5100000000003C +:046F5200000000003B +:046F5300000000003A +:046F54000000000039 +:046F55000000000038 +:046F56000000000037 +:046F57000000000036 +:046F58000000000035 +:046F59000000000034 +:046F5A000000000033 +:046F5B000000000032 +:046F5C000000000031 +:046F5D000000000030 +:046F5E00000000002F +:046F5F00000000002E +:046F6000000000002D +:046F6100000000002C +:046F6200000000002B +:046F6300000000002A +:046F64000000000029 +:046F65000000000028 +:046F66000000000027 +:046F67000000000026 +:046F68000000000025 +:046F69000000000024 +:046F6A000000000023 +:046F6B000000000022 +:046F6C000000000021 +:046F6D000000000020 +:046F6E00000000001F +:046F6F00000000001E +:046F7000000000001D +:046F7100000000001C +:046F7200000000001B +:046F7300000000001A +:046F74000000000019 +:046F75000000000018 +:046F76000000000017 +:046F77000000000016 +:046F78000000000015 +:046F79000000000014 +:046F7A000000000013 +:046F7B000000000012 +:046F7C000000000011 +:046F7D000000000010 +:046F7E00000000000F +:046F7F00000000000E +:046F8000000000000D +:046F8100000000000C +:046F8200000000000B +:046F8300000000000A +:046F84000000000009 +:046F85000000000008 +:046F86000000000007 +:046F87000000000006 +:046F88000000000005 +:046F89000000000004 +:046F8A000000000003 +:046F8B000000000002 +:046F8C000000000001 +:046F8D000000000000 +:046F8E0000000000FF +:046F8F0000000000FE +:046F900000000000FD +:046F910000000000FC +:046F920000000000FB +:046F930000000000FA +:046F940000000000F9 +:046F950000000000F8 +:046F960000000000F7 +:046F970000000000F6 +:046F980000000000F5 +:046F990000000000F4 +:046F9A0000000000F3 +:046F9B0000000000F2 +:046F9C0000000000F1 +:046F9D0000000000F0 +:046F9E0000000000EF +:046F9F0000000000EE +:046FA00000000000ED +:046FA10000000000EC +:046FA20000000000EB +:046FA30000000000EA +:046FA40000000000E9 +:046FA50000000000E8 +:046FA60000000000E7 +:046FA70000000000E6 +:046FA80000000000E5 +:046FA90000000000E4 +:046FAA0000000000E3 +:046FAB0000000000E2 +:046FAC0000000000E1 +:046FAD0000000000E0 +:046FAE0000000000DF +:046FAF0000000000DE +:046FB00000000000DD +:046FB10000000000DC +:046FB20000000000DB +:046FB30000000000DA +:046FB40000000000D9 +:046FB50000000000D8 +:046FB60000000000D7 +:046FB70000000000D6 +:046FB80000000000D5 +:046FB90000000000D4 +:046FBA0000000000D3 +:046FBB0000000000D2 +:046FBC0000000000D1 +:046FBD0000000000D0 +:046FBE0000000000CF +:046FBF0000000000CE +:046FC00000000000CD +:046FC10000000000CC +:046FC20000000000CB +:046FC30000000000CA +:046FC40000000000C9 +:046FC50000000000C8 +:046FC60000000000C7 +:046FC70000000000C6 +:046FC80000000000C5 +:046FC90000000000C4 +:046FCA0000000000C3 +:046FCB0000000000C2 +:046FCC0000000000C1 +:046FCD0000000000C0 +:046FCE0000000000BF +:046FCF0000000000BE +:046FD00000000000BD +:046FD10000000000BC +:046FD20000000000BB +:046FD30000000000BA +:046FD40000000000B9 +:046FD50000000000B8 +:046FD60000000000B7 +:046FD70000000000B6 +:046FD80000000000B5 +:046FD90000000000B4 +:046FDA0000000000B3 +:046FDB0000000000B2 +:046FDC0000000000B1 +:046FDD0000000000B0 +:046FDE0000000000AF +:046FDF0000000000AE +:046FE00000000000AD +:046FE10000000000AC +:046FE20000000000AB +:046FE30000000000AA +:046FE40000000000A9 +:046FE50000000000A8 +:046FE60000000000A7 +:046FE70000000000A6 +:046FE80000000000A5 +:046FE90000000000A4 +:046FEA0000000000A3 +:046FEB0000000000A2 +:046FEC0000000000A1 +:046FED0000000000A0 +:046FEE00000000009F +:046FEF00000000009E +:046FF000000000009D +:046FF100000000009C +:046FF200000000009B +:046FF300000000009A +:046FF4000000000099 +:046FF5000000000098 +:046FF6000000000097 +:046FF7000000000096 +:046FF8000000000095 +:046FF9000000000094 +:046FFA000000000093 +:046FFB000000000092 +:046FFC000000000091 +:046FFD000000000090 +:046FFE00000000008F +:046FFF00000000008E +:04700000000000008C +:04700100000000008B +:04700200000000008A +:047003000000000089 +:047004000000000088 +:047005000000000087 +:047006000000000086 +:047007000000000085 +:047008000000000084 +:047009000000000083 +:04700A000000000082 +:04700B000000000081 +:04700C000000000080 +:04700D00000000007F +:04700E00000000007E +:04700F00000000007D +:04701000000000007C +:04701100000000007B +:04701200000000007A +:047013000000000079 +:047014000000000078 +:047015000000000077 +:047016000000000076 +:047017000000000075 +:047018000000000074 +:047019000000000073 +:04701A000000000072 +:04701B000000000071 +:04701C000000000070 +:04701D00000000006F +:04701E00000000006E +:04701F00000000006D +:04702000000000006C +:04702100000000006B +:04702200000000006A +:047023000000000069 +:047024000000000068 +:047025000000000067 +:047026000000000066 +:047027000000000065 +:047028000000000064 +:047029000000000063 +:04702A000000000062 +:04702B000000000061 +:04702C000000000060 +:04702D00000000005F +:04702E00000000005E +:04702F00000000005D +:04703000000000005C +:04703100000000005B +:04703200000000005A +:047033000000000059 +:047034000000000058 +:047035000000000057 +:047036000000000056 +:047037000000000055 +:047038000000000054 +:047039000000000053 +:04703A000000000052 +:04703B000000000051 +:04703C000000000050 +:04703D00000000004F +:04703E00000000004E +:04703F00000000004D +:04704000000000004C +:04704100000000004B +:04704200000000004A +:047043000000000049 +:047044000000000048 +:047045000000000047 +:047046000000000046 +:047047000000000045 +:047048000000000044 +:047049000000000043 +:04704A000000000042 +:04704B000000000041 +:04704C000000000040 +:04704D00000000003F +:04704E00000000003E +:04704F00000000003D +:04705000000000003C +:04705100000000003B +:04705200000000003A +:047053000000000039 +:047054000000000038 +:047055000000000037 +:047056000000000036 +:047057000000000035 +:047058000000000034 +:047059000000000033 +:04705A000000000032 +:04705B000000000031 +:04705C000000000030 +:04705D00000000002F +:04705E00000000002E +:04705F00000000002D +:04706000000000002C +:04706100000000002B +:04706200000000002A +:047063000000000029 +:047064000000000028 +:047065000000000027 +:047066000000000026 +:047067000000000025 +:047068000000000024 +:047069000000000023 +:04706A000000000022 +:04706B000000000021 +:04706C000000000020 +:04706D00000000001F +:04706E00000000001E +:04706F00000000001D +:04707000000000001C +:04707100000000001B +:04707200000000001A +:047073000000000019 +:047074000000000018 +:047075000000000017 +:047076000000000016 +:047077000000000015 +:047078000000000014 +:047079000000000013 +:04707A000000000012 +:04707B000000000011 +:04707C000000000010 +:04707D00000000000F +:04707E00000000000E +:04707F00000000000D +:04708000000000000C +:04708100000000000B +:04708200000000000A +:047083000000000009 +:047084000000000008 +:047085000000000007 +:047086000000000006 +:047087000000000005 +:047088000000000004 +:047089000000000003 +:04708A000000000002 +:04708B000000000001 +:04708C000000000000 +:04708D0000000000FF +:04708E0000000000FE +:04708F0000000000FD +:0470900000000000FC +:0470910000000000FB +:0470920000000000FA +:0470930000000000F9 +:0470940000000000F8 +:0470950000000000F7 +:0470960000000000F6 +:0470970000000000F5 +:0470980000000000F4 +:0470990000000000F3 +:04709A0000000000F2 +:04709B0000000000F1 +:04709C0000000000F0 +:04709D0000000000EF +:04709E0000000000EE +:04709F0000000000ED +:0470A00000000000EC +:0470A10000000000EB +:0470A20000000000EA +:0470A30000000000E9 +:0470A40000000000E8 +:0470A50000000000E7 +:0470A60000000000E6 +:0470A70000000000E5 +:0470A80000000000E4 +:0470A90000000000E3 +:0470AA0000000000E2 +:0470AB0000000000E1 +:0470AC0000000000E0 +:0470AD0000000000DF +:0470AE0000000000DE +:0470AF0000000000DD +:0470B00000000000DC +:0470B10000000000DB +:0470B20000000000DA +:0470B30000000000D9 +:0470B40000000000D8 +:0470B50000000000D7 +:0470B60000000000D6 +:0470B70000000000D5 +:0470B80000000000D4 +:0470B90000000000D3 +:0470BA0000000000D2 +:0470BB0000000000D1 +:0470BC0000000000D0 +:0470BD0000000000CF +:0470BE0000000000CE +:0470BF0000000000CD +:0470C00000000000CC +:0470C10000000000CB +:0470C20000000000CA +:0470C30000000000C9 +:0470C40000000000C8 +:0470C50000000000C7 +:0470C60000000000C6 +:0470C70000000000C5 +:0470C80000000000C4 +:0470C90000000000C3 +:0470CA0000000000C2 +:0470CB0000000000C1 +:0470CC0000000000C0 +:0470CD0000000000BF +:0470CE0000000000BE +:0470CF0000000000BD +:0470D00000000000BC +:0470D10000000000BB +:0470D20000000000BA +:0470D30000000000B9 +:0470D40000000000B8 +:0470D50000000000B7 +:0470D60000000000B6 +:0470D70000000000B5 +:0470D80000000000B4 +:0470D90000000000B3 +:0470DA0000000000B2 +:0470DB0000000000B1 +:0470DC0000000000B0 +:0470DD0000000000AF +:0470DE0000000000AE +:0470DF0000000000AD +:0470E00000000000AC +:0470E10000000000AB +:0470E20000000000AA +:0470E30000000000A9 +:0470E40000000000A8 +:0470E50000000000A7 +:0470E60000000000A6 +:0470E70000000000A5 +:0470E80000000000A4 +:0470E90000000000A3 +:0470EA0000000000A2 +:0470EB0000000000A1 +:0470EC0000000000A0 +:0470ED00000000009F +:0470EE00000000009E +:0470EF00000000009D +:0470F000000000009C +:0470F100000000009B +:0470F200000000009A +:0470F3000000000099 +:0470F4000000000098 +:0470F5000000000097 +:0470F6000000000096 +:0470F7000000000095 +:0470F8000000000094 +:0470F9000000000093 +:0470FA000000000092 +:0470FB000000000091 +:0470FC000000000090 +:0470FD00000000008F +:0470FE00000000008E +:0470FF00000000008D +:04710000000000008B +:04710100000000008A +:047102000000000089 +:047103000000000088 +:047104000000000087 +:047105000000000086 +:047106000000000085 +:047107000000000084 +:047108000000000083 +:047109000000000082 +:04710A000000000081 +:04710B000000000080 +:04710C00000000007F +:04710D00000000007E +:04710E00000000007D +:04710F00000000007C +:04711000000000007B +:04711100000000007A +:047112000000000079 +:047113000000000078 +:047114000000000077 +:047115000000000076 +:047116000000000075 +:047117000000000074 +:047118000000000073 +:047119000000000072 +:04711A000000000071 +:04711B000000000070 +:04711C00000000006F +:04711D00000000006E +:04711E00000000006D +:04711F00000000006C +:04712000000000006B +:04712100000000006A +:047122000000000069 +:047123000000000068 +:047124000000000067 +:047125000000000066 +:047126000000000065 +:047127000000000064 +:047128000000000063 +:047129000000000062 +:04712A000000000061 +:04712B000000000060 +:04712C00000000005F +:04712D00000000005E +:04712E00000000005D +:04712F00000000005C +:04713000000000005B +:04713100000000005A +:047132000000000059 +:047133000000000058 +:047134000000000057 +:047135000000000056 +:047136000000000055 +:047137000000000054 +:047138000000000053 +:047139000000000052 +:04713A000000000051 +:04713B000000000050 +:04713C00000000004F +:04713D00000000004E +:04713E00000000004D +:04713F00000000004C +:04714000000000004B +:04714100000000004A +:047142000000000049 +:047143000000000048 +:047144000000000047 +:047145000000000046 +:047146000000000045 +:047147000000000044 +:047148000000000043 +:047149000000000042 +:04714A000000000041 +:04714B000000000040 +:04714C00000000003F +:04714D00000000003E +:04714E00000000003D +:04714F00000000003C +:04715000000000003B +:04715100000000003A +:047152000000000039 +:047153000000000038 +:047154000000000037 +:047155000000000036 +:047156000000000035 +:047157000000000034 +:047158000000000033 +:047159000000000032 +:04715A000000000031 +:04715B000000000030 +:04715C00000000002F +:04715D00000000002E +:04715E00000000002D +:04715F00000000002C +:04716000000000002B +:04716100000000002A +:047162000000000029 +:047163000000000028 +:047164000000000027 +:047165000000000026 +:047166000000000025 +:047167000000000024 +:047168000000000023 +:047169000000000022 +:04716A000000000021 +:04716B000000000020 +:04716C00000000001F +:04716D00000000001E +:04716E00000000001D +:04716F00000000001C +:04717000000000001B +:04717100000000001A +:047172000000000019 +:047173000000000018 +:047174000000000017 +:047175000000000016 +:047176000000000015 +:047177000000000014 +:047178000000000013 +:047179000000000012 +:04717A000000000011 +:04717B000000000010 +:04717C00000000000F +:04717D00000000000E +:04717E00000000000D +:04717F00000000000C +:04718000000000000B +:04718100000000000A +:047182000000000009 +:047183000000000008 +:047184000000000007 +:047185000000000006 +:047186000000000005 +:047187000000000004 +:047188000000000003 +:047189000000000002 +:04718A000000000001 +:04718B000000000000 +:04718C0000000000FF +:04718D0000000000FE +:04718E0000000000FD +:04718F0000000000FC +:0471900000000000FB +:0471910000000000FA +:0471920000000000F9 +:0471930000000000F8 +:0471940000000000F7 +:0471950000000000F6 +:0471960000000000F5 +:0471970000000000F4 +:0471980000000000F3 +:0471990000000000F2 +:04719A0000000000F1 +:04719B0000000000F0 +:04719C0000000000EF +:04719D0000000000EE +:04719E0000000000ED +:04719F0000000000EC +:0471A00000000000EB +:0471A10000000000EA +:0471A20000000000E9 +:0471A30000000000E8 +:0471A40000000000E7 +:0471A50000000000E6 +:0471A60000000000E5 +:0471A70000000000E4 +:0471A80000000000E3 +:0471A90000000000E2 +:0471AA0000000000E1 +:0471AB0000000000E0 +:0471AC0000000000DF +:0471AD0000000000DE +:0471AE0000000000DD +:0471AF0000000000DC +:0471B00000000000DB +:0471B10000000000DA +:0471B20000000000D9 +:0471B30000000000D8 +:0471B40000000000D7 +:0471B50000000000D6 +:0471B60000000000D5 +:0471B70000000000D4 +:0471B80000000000D3 +:0471B90000000000D2 +:0471BA0000000000D1 +:0471BB0000000000D0 +:0471BC0000000000CF +:0471BD0000000000CE +:0471BE0000000000CD +:0471BF0000000000CC +:0471C00000000000CB +:0471C10000000000CA +:0471C20000000000C9 +:0471C30000000000C8 +:0471C40000000000C7 +:0471C50000000000C6 +:0471C60000000000C5 +:0471C70000000000C4 +:0471C80000000000C3 +:0471C90000000000C2 +:0471CA0000000000C1 +:0471CB0000000000C0 +:0471CC0000000000BF +:0471CD0000000000BE +:0471CE0000000000BD +:0471CF0000000000BC +:0471D00000000000BB +:0471D10000000000BA +:0471D20000000000B9 +:0471D30000000000B8 +:0471D40000000000B7 +:0471D50000000000B6 +:0471D60000000000B5 +:0471D70000000000B4 +:0471D80000000000B3 +:0471D90000000000B2 +:0471DA0000000000B1 +:0471DB0000000000B0 +:0471DC0000000000AF +:0471DD0000000000AE +:0471DE0000000000AD +:0471DF0000000000AC +:0471E00000000000AB +:0471E10000000000AA +:0471E20000000000A9 +:0471E30000000000A8 +:0471E40000000000A7 +:0471E50000000000A6 +:0471E60000000000A5 +:0471E70000000000A4 +:0471E80000000000A3 +:0471E90000000000A2 +:0471EA0000000000A1 +:0471EB0000000000A0 +:0471EC00000000009F +:0471ED00000000009E +:0471EE00000000009D +:0471EF00000000009C +:0471F000000000009B +:0471F100000000009A +:0471F2000000000099 +:0471F3000000000098 +:0471F4000000000097 +:0471F5000000000096 +:0471F6000000000095 +:0471F7000000000094 +:0471F8000000000093 +:0471F9000000000092 +:0471FA000000000091 +:0471FB000000000090 +:0471FC00000000008F +:0471FD00000000008E +:0471FE00000000008D +:0471FF00000000008C +:04720000000000008A +:047201000000000089 +:047202000000000088 +:047203000000000087 +:047204000000000086 +:047205000000000085 +:047206000000000084 +:047207000000000083 +:047208000000000082 +:047209000000000081 +:04720A000000000080 +:04720B00000000007F +:04720C00000000007E +:04720D00000000007D +:04720E00000000007C +:04720F00000000007B +:04721000000000007A +:047211000000000079 +:047212000000000078 +:047213000000000077 +:047214000000000076 +:047215000000000075 +:047216000000000074 +:047217000000000073 +:047218000000000072 +:047219000000000071 +:04721A000000000070 +:04721B00000000006F +:04721C00000000006E +:04721D00000000006D +:04721E00000000006C +:04721F00000000006B +:04722000000000006A +:047221000000000069 +:047222000000000068 +:047223000000000067 +:047224000000000066 +:047225000000000065 +:047226000000000064 +:047227000000000063 +:047228000000000062 +:047229000000000061 +:04722A000000000060 +:04722B00000000005F +:04722C00000000005E +:04722D00000000005D +:04722E00000000005C +:04722F00000000005B +:04723000000000005A +:047231000000000059 +:047232000000000058 +:047233000000000057 +:047234000000000056 +:047235000000000055 +:047236000000000054 +:047237000000000053 +:047238000000000052 +:047239000000000051 +:04723A000000000050 +:04723B00000000004F +:04723C00000000004E +:04723D00000000004D +:04723E00000000004C +:04723F00000000004B +:04724000000000004A +:047241000000000049 +:047242000000000048 +:047243000000000047 +:047244000000000046 +:047245000000000045 +:047246000000000044 +:047247000000000043 +:047248000000000042 +:047249000000000041 +:04724A000000000040 +:04724B00000000003F +:04724C00000000003E +:04724D00000000003D +:04724E00000000003C +:04724F00000000003B +:04725000000000003A +:047251000000000039 +:047252000000000038 +:047253000000000037 +:047254000000000036 +:047255000000000035 +:047256000000000034 +:047257000000000033 +:047258000000000032 +:047259000000000031 +:04725A000000000030 +:04725B00000000002F +:04725C00000000002E +:04725D00000000002D +:04725E00000000002C +:04725F00000000002B +:04726000000000002A +:047261000000000029 +:047262000000000028 +:047263000000000027 +:047264000000000026 +:047265000000000025 +:047266000000000024 +:047267000000000023 +:047268000000000022 +:047269000000000021 +:04726A000000000020 +:04726B00000000001F +:04726C00000000001E +:04726D00000000001D +:04726E00000000001C +:04726F00000000001B +:04727000000000001A +:047271000000000019 +:047272000000000018 +:047273000000000017 +:047274000000000016 +:047275000000000015 +:047276000000000014 +:047277000000000013 +:047278000000000012 +:047279000000000011 +:04727A000000000010 +:04727B00000000000F +:04727C00000000000E +:04727D00000000000D +:04727E00000000000C +:04727F00000000000B +:04728000000000000A +:047281000000000009 +:047282000000000008 +:047283000000000007 +:047284000000000006 +:047285000000000005 +:047286000000000004 +:047287000000000003 +:047288000000000002 +:047289000000000001 +:04728A000000000000 +:04728B0000000000FF +:04728C0000000000FE +:04728D0000000000FD +:04728E0000000000FC +:04728F0000000000FB +:0472900000000000FA +:0472910000000000F9 +:0472920000000000F8 +:0472930000000000F7 +:0472940000000000F6 +:0472950000000000F5 +:0472960000000000F4 +:0472970000000000F3 +:0472980000000000F2 +:0472990000000000F1 +:04729A0000000000F0 +:04729B0000000000EF +:04729C0000000000EE +:04729D0000000000ED +:04729E0000000000EC +:04729F0000000000EB +:0472A00000000000EA +:0472A10000000000E9 +:0472A20000000000E8 +:0472A30000000000E7 +:0472A40000000000E6 +:0472A50000000000E5 +:0472A60000000000E4 +:0472A70000000000E3 +:0472A80000000000E2 +:0472A90000000000E1 +:0472AA0000000000E0 +:0472AB0000000000DF +:0472AC0000000000DE +:0472AD0000000000DD +:0472AE0000000000DC +:0472AF0000000000DB +:0472B00000000000DA +:0472B10000000000D9 +:0472B20000000000D8 +:0472B30000000000D7 +:0472B40000000000D6 +:0472B50000000000D5 +:0472B60000000000D4 +:0472B70000000000D3 +:0472B80000000000D2 +:0472B90000000000D1 +:0472BA0000000000D0 +:0472BB0000000000CF +:0472BC0000000000CE +:0472BD0000000000CD +:0472BE0000000000CC +:0472BF0000000000CB +:0472C00000000000CA +:0472C10000000000C9 +:0472C20000000000C8 +:0472C30000000000C7 +:0472C40000000000C6 +:0472C50000000000C5 +:0472C60000000000C4 +:0472C70000000000C3 +:0472C80000000000C2 +:0472C90000000000C1 +:0472CA0000000000C0 +:0472CB0000000000BF +:0472CC0000000000BE +:0472CD0000000000BD +:0472CE0000000000BC +:0472CF0000000000BB +:0472D00000000000BA +:0472D10000000000B9 +:0472D20000000000B8 +:0472D30000000000B7 +:0472D40000000000B6 +:0472D50000000000B5 +:0472D60000000000B4 +:0472D70000000000B3 +:0472D80000000000B2 +:0472D90000000000B1 +:0472DA0000000000B0 +:0472DB0000000000AF +:0472DC0000000000AE +:0472DD0000000000AD +:0472DE0000000000AC +:0472DF0000000000AB +:0472E00000000000AA +:0472E10000000000A9 +:0472E20000000000A8 +:0472E30000000000A7 +:0472E40000000000A6 +:0472E50000000000A5 +:0472E60000000000A4 +:0472E70000000000A3 +:0472E80000000000A2 +:0472E90000000000A1 +:0472EA0000000000A0 +:0472EB00000000009F +:0472EC00000000009E +:0472ED00000000009D +:0472EE00000000009C +:0472EF00000000009B +:0472F000000000009A +:0472F1000000000099 +:0472F2000000000098 +:0472F3000000000097 +:0472F4000000000096 +:0472F5000000000095 +:0472F6000000000094 +:0472F7000000000093 +:0472F8000000000092 +:0472F9000000000091 +:0472FA000000000090 +:0472FB00000000008F +:0472FC00000000008E +:0472FD00000000008D +:0472FE00000000008C +:0472FF00000000008B +:047300000000000089 +:047301000000000088 +:047302000000000087 +:047303000000000086 +:047304000000000085 +:047305000000000084 +:047306000000000083 +:047307000000000082 +:047308000000000081 +:047309000000000080 +:04730A00000000007F +:04730B00000000007E +:04730C00000000007D +:04730D00000000007C +:04730E00000000007B +:04730F00000000007A +:047310000000000079 +:047311000000000078 +:047312000000000077 +:047313000000000076 +:047314000000000075 +:047315000000000074 +:047316000000000073 +:047317000000000072 +:047318000000000071 +:047319000000000070 +:04731A00000000006F +:04731B00000000006E +:04731C00000000006D +:04731D00000000006C +:04731E00000000006B +:04731F00000000006A +:047320000000000069 +:047321000000000068 +:047322000000000067 +:047323000000000066 +:047324000000000065 +:047325000000000064 +:047326000000000063 +:047327000000000062 +:047328000000000061 +:047329000000000060 +:04732A00000000005F +:04732B00000000005E +:04732C00000000005D +:04732D00000000005C +:04732E00000000005B +:04732F00000000005A +:047330000000000059 +:047331000000000058 +:047332000000000057 +:047333000000000056 +:047334000000000055 +:047335000000000054 +:047336000000000053 +:047337000000000052 +:047338000000000051 +:047339000000000050 +:04733A00000000004F +:04733B00000000004E +:04733C00000000004D +:04733D00000000004C +:04733E00000000004B +:04733F00000000004A +:047340000000000049 +:047341000000000048 +:047342000000000047 +:047343000000000046 +:047344000000000045 +:047345000000000044 +:047346000000000043 +:047347000000000042 +:047348000000000041 +:047349000000000040 +:04734A00000000003F +:04734B00000000003E +:04734C00000000003D +:04734D00000000003C +:04734E00000000003B +:04734F00000000003A +:047350000000000039 +:047351000000000038 +:047352000000000037 +:047353000000000036 +:047354000000000035 +:047355000000000034 +:047356000000000033 +:047357000000000032 +:047358000000000031 +:047359000000000030 +:04735A00000000002F +:04735B00000000002E +:04735C00000000002D +:04735D00000000002C +:04735E00000000002B +:04735F00000000002A +:047360000000000029 +:047361000000000028 +:047362000000000027 +:047363000000000026 +:047364000000000025 +:047365000000000024 +:047366000000000023 +:047367000000000022 +:047368000000000021 +:047369000000000020 +:04736A00000000001F +:04736B00000000001E +:04736C00000000001D +:04736D00000000001C +:04736E00000000001B +:04736F00000000001A +:047370000000000019 +:047371000000000018 +:047372000000000017 +:047373000000000016 +:047374000000000015 +:047375000000000014 +:047376000000000013 +:047377000000000012 +:047378000000000011 +:047379000000000010 +:04737A00000000000F +:04737B00000000000E +:04737C00000000000D +:04737D00000000000C +:04737E00000000000B +:04737F00000000000A +:047380000000000009 +:047381000000000008 +:047382000000000007 +:047383000000000006 +:047384000000000005 +:047385000000000004 +:047386000000000003 +:047387000000000002 +:047388000000000001 +:047389000000000000 +:04738A0000000000FF +:04738B0000000000FE +:04738C0000000000FD +:04738D0000000000FC +:04738E0000000000FB +:04738F0000000000FA +:0473900000000000F9 +:0473910000000000F8 +:0473920000000000F7 +:0473930000000000F6 +:0473940000000000F5 +:0473950000000000F4 +:0473960000000000F3 +:0473970000000000F2 +:0473980000000000F1 +:0473990000000000F0 +:04739A0000000000EF +:04739B0000000000EE +:04739C0000000000ED +:04739D0000000000EC +:04739E0000000000EB +:04739F0000000000EA +:0473A00000000000E9 +:0473A10000000000E8 +:0473A20000000000E7 +:0473A30000000000E6 +:0473A40000000000E5 +:0473A50000000000E4 +:0473A60000000000E3 +:0473A70000000000E2 +:0473A80000000000E1 +:0473A90000000000E0 +:0473AA0000000000DF +:0473AB0000000000DE +:0473AC0000000000DD +:0473AD0000000000DC +:0473AE0000000000DB +:0473AF0000000000DA +:0473B00000000000D9 +:0473B10000000000D8 +:0473B20000000000D7 +:0473B30000000000D6 +:0473B40000000000D5 +:0473B50000000000D4 +:0473B60000000000D3 +:0473B70000000000D2 +:0473B80000000000D1 +:0473B90000000000D0 +:0473BA0000000000CF +:0473BB0000000000CE +:0473BC0000000000CD +:0473BD0000000000CC +:0473BE0000000000CB +:0473BF0000000000CA +:0473C00000000000C9 +:0473C10000000000C8 +:0473C20000000000C7 +:0473C30000000000C6 +:0473C40000000000C5 +:0473C50000000000C4 +:0473C60000000000C3 +:0473C70000000000C2 +:0473C80000000000C1 +:0473C90000000000C0 +:0473CA0000000000BF +:0473CB0000000000BE +:0473CC0000000000BD +:0473CD0000000000BC +:0473CE0000000000BB +:0473CF0000000000BA +:0473D00000000000B9 +:0473D10000000000B8 +:0473D20000000000B7 +:0473D30000000000B6 +:0473D40000000000B5 +:0473D50000000000B4 +:0473D60000000000B3 +:0473D70000000000B2 +:0473D80000000000B1 +:0473D90000000000B0 +:0473DA0000000000AF +:0473DB0000000000AE +:0473DC0000000000AD +:0473DD0000000000AC +:0473DE0000000000AB +:0473DF0000000000AA +:0473E00000000000A9 +:0473E10000000000A8 +:0473E20000000000A7 +:0473E30000000000A6 +:0473E40000000000A5 +:0473E50000000000A4 +:0473E60000000000A3 +:0473E70000000000A2 +:0473E80000000000A1 +:0473E90000000000A0 +:0473EA00000000009F +:0473EB00000000009E +:0473EC00000000009D +:0473ED00000000009C +:0473EE00000000009B +:0473EF00000000009A +:0473F0000000000099 +:0473F1000000000098 +:0473F2000000000097 +:0473F3000000000096 +:0473F4000000000095 +:0473F5000000000094 +:0473F6000000000093 +:0473F7000000000092 +:0473F8000000000091 +:0473F9000000000090 +:0473FA00000000008F +:0473FB00000000008E +:0473FC00000000008D +:0473FD00000000008C +:0473FE00000000008B +:0473FF00000000008A +:047400000000000088 +:047401000000000087 +:047402000000000086 +:047403000000000085 +:047404000000000084 +:047405000000000083 +:047406000000000082 +:047407000000000081 +:047408000000000080 +:04740900000000007F +:04740A00000000007E +:04740B00000000007D +:04740C00000000007C +:04740D00000000007B +:04740E00000000007A +:04740F000000000079 +:047410000000000078 +:047411000000000077 +:047412000000000076 +:047413000000000075 +:047414000000000074 +:047415000000000073 +:047416000000000072 +:047417000000000071 +:047418000000000070 +:04741900000000006F +:04741A00000000006E +:04741B00000000006D +:04741C00000000006C +:04741D00000000006B +:04741E00000000006A +:04741F000000000069 +:047420000000000068 +:047421000000000067 +:047422000000000066 +:047423000000000065 +:047424000000000064 +:047425000000000063 +:047426000000000062 +:047427000000000061 +:047428000000000060 +:04742900000000005F +:04742A00000000005E +:04742B00000000005D +:04742C00000000005C +:04742D00000000005B +:04742E00000000005A +:04742F000000000059 +:047430000000000058 +:047431000000000057 +:047432000000000056 +:047433000000000055 +:047434000000000054 +:047435000000000053 +:047436000000000052 +:047437000000000051 +:047438000000000050 +:04743900000000004F +:04743A00000000004E +:04743B00000000004D +:04743C00000000004C +:04743D00000000004B +:04743E00000000004A +:04743F000000000049 +:047440000000000048 +:047441000000000047 +:047442000000000046 +:047443000000000045 +:047444000000000044 +:047445000000000043 +:047446000000000042 +:047447000000000041 +:047448000000000040 +:04744900000000003F +:04744A00000000003E +:04744B00000000003D +:04744C00000000003C +:04744D00000000003B +:04744E00000000003A +:04744F000000000039 +:047450000000000038 +:047451000000000037 +:047452000000000036 +:047453000000000035 +:047454000000000034 +:047455000000000033 +:047456000000000032 +:047457000000000031 +:047458000000000030 +:04745900000000002F +:04745A00000000002E +:04745B00000000002D +:04745C00000000002C +:04745D00000000002B +:04745E00000000002A +:04745F000000000029 +:047460000000000028 +:047461000000000027 +:047462000000000026 +:047463000000000025 +:047464000000000024 +:047465000000000023 +:047466000000000022 +:047467000000000021 +:047468000000000020 +:04746900000000001F +:04746A00000000001E +:04746B00000000001D +:04746C00000000001C +:04746D00000000001B +:04746E00000000001A +:04746F000000000019 +:047470000000000018 +:047471000000000017 +:047472000000000016 +:047473000000000015 +:047474000000000014 +:047475000000000013 +:047476000000000012 +:047477000000000011 +:047478000000000010 +:04747900000000000F +:04747A00000000000E +:04747B00000000000D +:04747C00000000000C +:04747D00000000000B +:04747E00000000000A +:04747F000000000009 +:047480000000000008 +:047481000000000007 +:047482000000000006 +:047483000000000005 +:047484000000000004 +:047485000000000003 +:047486000000000002 +:047487000000000001 +:047488000000000000 +:0474890000000000FF +:04748A0000000000FE +:04748B0000000000FD +:04748C0000000000FC +:04748D0000000000FB +:04748E0000000000FA +:04748F0000000000F9 +:0474900000000000F8 +:0474910000000000F7 +:0474920000000000F6 +:0474930000000000F5 +:0474940000000000F4 +:0474950000000000F3 +:0474960000000000F2 +:0474970000000000F1 +:0474980000000000F0 +:0474990000000000EF +:04749A0000000000EE +:04749B0000000000ED +:04749C0000000000EC +:04749D0000000000EB +:04749E0000000000EA +:04749F0000000000E9 +:0474A00000000000E8 +:0474A10000000000E7 +:0474A20000000000E6 +:0474A30000000000E5 +:0474A40000000000E4 +:0474A50000000000E3 +:0474A60000000000E2 +:0474A70000000000E1 +:0474A80000000000E0 +:0474A90000000000DF +:0474AA0000000000DE +:0474AB0000000000DD +:0474AC0000000000DC +:0474AD0000000000DB +:0474AE0000000000DA +:0474AF0000000000D9 +:0474B00000000000D8 +:0474B10000000000D7 +:0474B20000000000D6 +:0474B30000000000D5 +:0474B40000000000D4 +:0474B50000000000D3 +:0474B60000000000D2 +:0474B70000000000D1 +:0474B80000000000D0 +:0474B90000000000CF +:0474BA0000000000CE +:0474BB0000000000CD +:0474BC0000000000CC +:0474BD0000000000CB +:0474BE0000000000CA +:0474BF0000000000C9 +:0474C00000000000C8 +:0474C10000000000C7 +:0474C20000000000C6 +:0474C30000000000C5 +:0474C40000000000C4 +:0474C50000000000C3 +:0474C60000000000C2 +:0474C70000000000C1 +:0474C80000000000C0 +:0474C90000000000BF +:0474CA0000000000BE +:0474CB0000000000BD +:0474CC0000000000BC +:0474CD0000000000BB +:0474CE0000000000BA +:0474CF0000000000B9 +:0474D00000000000B8 +:0474D10000000000B7 +:0474D20000000000B6 +:0474D30000000000B5 +:0474D40000000000B4 +:0474D50000000000B3 +:0474D60000000000B2 +:0474D70000000000B1 +:0474D80000000000B0 +:0474D90000000000AF +:0474DA0000000000AE +:0474DB0000000000AD +:0474DC0000000000AC +:0474DD0000000000AB +:0474DE0000000000AA +:0474DF0000000000A9 +:0474E00000000000A8 +:0474E10000000000A7 +:0474E20000000000A6 +:0474E30000000000A5 +:0474E40000000000A4 +:0474E50000000000A3 +:0474E60000000000A2 +:0474E70000000000A1 +:0474E80000000000A0 +:0474E900000000009F +:0474EA00000000009E +:0474EB00000000009D +:0474EC00000000009C +:0474ED00000000009B +:0474EE00000000009A +:0474EF000000000099 +:0474F0000000000098 +:0474F1000000000097 +:0474F2000000000096 +:0474F3000000000095 +:0474F4000000000094 +:0474F5000000000093 +:0474F6000000000092 +:0474F7000000000091 +:0474F8000000000090 +:0474F900000000008F +:0474FA00000000008E +:0474FB00000000008D +:0474FC00000000008C +:0474FD00000000008B +:0474FE00000000008A +:0474FF000000000089 +:047500000000000087 +:047501000000000086 +:047502000000000085 +:047503000000000084 +:047504000000000083 +:047505000000000082 +:047506000000000081 +:047507000000000080 +:04750800000000007F +:04750900000000007E +:04750A00000000007D +:04750B00000000007C +:04750C00000000007B +:04750D00000000007A +:04750E000000000079 +:04750F000000000078 +:047510000000000077 +:047511000000000076 +:047512000000000075 +:047513000000000074 +:047514000000000073 +:047515000000000072 +:047516000000000071 +:047517000000000070 +:04751800000000006F +:04751900000000006E +:04751A00000000006D +:04751B00000000006C +:04751C00000000006B +:04751D00000000006A +:04751E000000000069 +:04751F000000000068 +:047520000000000067 +:047521000000000066 +:047522000000000065 +:047523000000000064 +:047524000000000063 +:047525000000000062 +:047526000000000061 +:047527000000000060 +:04752800000000005F +:04752900000000005E +:04752A00000000005D +:04752B00000000005C +:04752C00000000005B +:04752D00000000005A +:04752E000000000059 +:04752F000000000058 +:047530000000000057 +:047531000000000056 +:047532000000000055 +:047533000000000054 +:047534000000000053 +:047535000000000052 +:047536000000000051 +:047537000000000050 +:04753800000000004F +:04753900000000004E +:04753A00000000004D +:04753B00000000004C +:04753C00000000004B +:04753D00000000004A +:04753E000000000049 +:04753F000000000048 +:047540000000000047 +:047541000000000046 +:047542000000000045 +:047543000000000044 +:047544000000000043 +:047545000000000042 +:047546000000000041 +:047547000000000040 +:04754800000000003F +:04754900000000003E +:04754A00000000003D +:04754B00000000003C +:04754C00000000003B +:04754D00000000003A +:04754E000000000039 +:04754F000000000038 +:047550000000000037 +:047551000000000036 +:047552000000000035 +:047553000000000034 +:047554000000000033 +:047555000000000032 +:047556000000000031 +:047557000000000030 +:04755800000000002F +:04755900000000002E +:04755A00000000002D +:04755B00000000002C +:04755C00000000002B +:04755D00000000002A +:04755E000000000029 +:04755F000000000028 +:047560000000000027 +:047561000000000026 +:047562000000000025 +:047563000000000024 +:047564000000000023 +:047565000000000022 +:047566000000000021 +:047567000000000020 +:04756800000000001F +:04756900000000001E +:04756A00000000001D +:04756B00000000001C +:04756C00000000001B +:04756D00000000001A +:04756E000000000019 +:04756F000000000018 +:047570000000000017 +:047571000000000016 +:047572000000000015 +:047573000000000014 +:047574000000000013 +:047575000000000012 +:047576000000000011 +:047577000000000010 +:04757800000000000F +:04757900000000000E +:04757A00000000000D +:04757B00000000000C +:04757C00000000000B +:04757D00000000000A +:04757E000000000009 +:04757F000000000008 +:047580000000000007 +:047581000000000006 +:047582000000000005 +:047583000000000004 +:047584000000000003 +:047585000000000002 +:047586000000000001 +:047587000000000000 +:0475880000000000FF +:0475890000000000FE +:04758A0000000000FD +:04758B0000000000FC +:04758C0000000000FB +:04758D0000000000FA +:04758E0000000000F9 +:04758F0000000000F8 +:0475900000000000F7 +:0475910000000000F6 +:0475920000000000F5 +:0475930000000000F4 +:0475940000000000F3 +:0475950000000000F2 +:0475960000000000F1 +:0475970000000000F0 +:0475980000000000EF +:0475990000000000EE +:04759A0000000000ED +:04759B0000000000EC +:04759C0000000000EB +:04759D0000000000EA +:04759E0000000000E9 +:04759F0000000000E8 +:0475A00000000000E7 +:0475A10000000000E6 +:0475A20000000000E5 +:0475A30000000000E4 +:0475A40000000000E3 +:0475A50000000000E2 +:0475A60000000000E1 +:0475A70000000000E0 +:0475A80000000000DF +:0475A90000000000DE +:0475AA0000000000DD +:0475AB0000000000DC +:0475AC0000000000DB +:0475AD0000000000DA +:0475AE0000000000D9 +:0475AF0000000000D8 +:0475B00000000000D7 +:0475B10000000000D6 +:0475B20000000000D5 +:0475B30000000000D4 +:0475B40000000000D3 +:0475B50000000000D2 +:0475B60000000000D1 +:0475B70000000000D0 +:0475B80000000000CF +:0475B90000000000CE +:0475BA0000000000CD +:0475BB0000000000CC +:0475BC0000000000CB +:0475BD0000000000CA +:0475BE0000000000C9 +:0475BF0000000000C8 +:0475C00000000000C7 +:0475C10000000000C6 +:0475C20000000000C5 +:0475C30000000000C4 +:0475C40000000000C3 +:0475C50000000000C2 +:0475C60000000000C1 +:0475C70000000000C0 +:0475C80000000000BF +:0475C90000000000BE +:0475CA0000000000BD +:0475CB0000000000BC +:0475CC0000000000BB +:0475CD0000000000BA +:0475CE0000000000B9 +:0475CF0000000000B8 +:0475D00000000000B7 +:0475D10000000000B6 +:0475D20000000000B5 +:0475D30000000000B4 +:0475D40000000000B3 +:0475D50000000000B2 +:0475D60000000000B1 +:0475D70000000000B0 +:0475D80000000000AF +:0475D90000000000AE +:0475DA0000000000AD +:0475DB0000000000AC +:0475DC0000000000AB +:0475DD0000000000AA +:0475DE0000000000A9 +:0475DF0000000000A8 +:0475E00000000000A7 +:0475E10000000000A6 +:0475E20000000000A5 +:0475E30000000000A4 +:0475E40000000000A3 +:0475E50000000000A2 +:0475E60000000000A1 +:0475E70000000000A0 +:0475E800000000009F +:0475E900000000009E +:0475EA00000000009D +:0475EB00000000009C +:0475EC00000000009B +:0475ED00000000009A +:0475EE000000000099 +:0475EF000000000098 +:0475F0000000000097 +:0475F1000000000096 +:0475F2000000000095 +:0475F3000000000094 +:0475F4000000000093 +:0475F5000000000092 +:0475F6000000000091 +:0475F7000000000090 +:0475F800000000008F +:0475F900000000008E +:0475FA00000000008D +:0475FB00000000008C +:0475FC00000000008B +:0475FD00000000008A +:0475FE000000000089 +:0475FF000000000088 +:047600000000000086 +:047601000000000085 +:047602000000000084 +:047603000000000083 +:047604000000000082 +:047605000000000081 +:047606000000000080 +:04760700000000007F +:04760800000000007E +:04760900000000007D +:04760A00000000007C +:04760B00000000007B +:04760C00000000007A +:04760D000000000079 +:04760E000000000078 +:04760F000000000077 +:047610000000000076 +:047611000000000075 +:047612000000000074 +:047613000000000073 +:047614000000000072 +:047615000000000071 +:047616000000000070 +:04761700000000006F +:04761800000000006E +:04761900000000006D +:04761A00000000006C +:04761B00000000006B +:04761C00000000006A +:04761D000000000069 +:04761E000000000068 +:04761F000000000067 +:047620000000000066 +:047621000000000065 +:047622000000000064 +:047623000000000063 +:047624000000000062 +:047625000000000061 +:047626000000000060 +:04762700000000005F +:04762800000000005E +:04762900000000005D +:04762A00000000005C +:04762B00000000005B +:04762C00000000005A +:04762D000000000059 +:04762E000000000058 +:04762F000000000057 +:047630000000000056 +:047631000000000055 +:047632000000000054 +:047633000000000053 +:047634000000000052 +:047635000000000051 +:047636000000000050 +:04763700000000004F +:04763800000000004E +:04763900000000004D +:04763A00000000004C +:04763B00000000004B +:04763C00000000004A +:04763D000000000049 +:04763E000000000048 +:04763F000000000047 +:047640000000000046 +:047641000000000045 +:047642000000000044 +:047643000000000043 +:047644000000000042 +:047645000000000041 +:047646000000000040 +:04764700000000003F +:04764800000000003E +:04764900000000003D +:04764A00000000003C +:04764B00000000003B +:04764C00000000003A +:04764D000000000039 +:04764E000000000038 +:04764F000000000037 +:047650000000000036 +:047651000000000035 +:047652000000000034 +:047653000000000033 +:047654000000000032 +:047655000000000031 +:047656000000000030 +:04765700000000002F +:04765800000000002E +:04765900000000002D +:04765A00000000002C +:04765B00000000002B +:04765C00000000002A +:04765D000000000029 +:04765E000000000028 +:04765F000000000027 +:047660000000000026 +:047661000000000025 +:047662000000000024 +:047663000000000023 +:047664000000000022 +:047665000000000021 +:047666000000000020 +:04766700000000001F +:04766800000000001E +:04766900000000001D +:04766A00000000001C +:04766B00000000001B +:04766C00000000001A +:04766D000000000019 +:04766E000000000018 +:04766F000000000017 +:047670000000000016 +:047671000000000015 +:047672000000000014 +:047673000000000013 +:047674000000000012 +:047675000000000011 +:047676000000000010 +:04767700000000000F +:04767800000000000E +:04767900000000000D +:04767A00000000000C +:04767B00000000000B +:04767C00000000000A +:04767D000000000009 +:04767E000000000008 +:04767F000000000007 +:047680000000000006 +:047681000000000005 +:047682000000000004 +:047683000000000003 +:047684000000000002 +:047685000000000001 +:047686000000000000 +:0476870000000000FF +:0476880000000000FE +:0476890000000000FD +:04768A0000000000FC +:04768B0000000000FB +:04768C0000000000FA +:04768D0000000000F9 +:04768E0000000000F8 +:04768F0000000000F7 +:0476900000000000F6 +:0476910000000000F5 +:0476920000000000F4 +:0476930000000000F3 +:0476940000000000F2 +:0476950000000000F1 +:0476960000000000F0 +:0476970000000000EF +:0476980000000000EE +:0476990000000000ED +:04769A0000000000EC +:04769B0000000000EB +:04769C0000000000EA +:04769D0000000000E9 +:04769E0000000000E8 +:04769F0000000000E7 +:0476A00000000000E6 +:0476A10000000000E5 +:0476A20000000000E4 +:0476A30000000000E3 +:0476A40000000000E2 +:0476A50000000000E1 +:0476A60000000000E0 +:0476A70000000000DF +:0476A80000000000DE +:0476A90000000000DD +:0476AA0000000000DC +:0476AB0000000000DB +:0476AC0000000000DA +:0476AD0000000000D9 +:0476AE0000000000D8 +:0476AF0000000000D7 +:0476B00000000000D6 +:0476B10000000000D5 +:0476B20000000000D4 +:0476B30000000000D3 +:0476B40000000000D2 +:0476B50000000000D1 +:0476B60000000000D0 +:0476B70000000000CF +:0476B80000000000CE +:0476B90000000000CD +:0476BA0000000000CC +:0476BB0000000000CB +:0476BC0000000000CA +:0476BD0000000000C9 +:0476BE0000000000C8 +:0476BF0000000000C7 +:0476C00000000000C6 +:0476C10000000000C5 +:0476C20000000000C4 +:0476C30000000000C3 +:0476C40000000000C2 +:0476C50000000000C1 +:0476C60000000000C0 +:0476C70000000000BF +:0476C80000000000BE +:0476C90000000000BD +:0476CA0000000000BC +:0476CB0000000000BB +:0476CC0000000000BA +:0476CD0000000000B9 +:0476CE0000000000B8 +:0476CF0000000000B7 +:0476D00000000000B6 +:0476D10000000000B5 +:0476D20000000000B4 +:0476D30000000000B3 +:0476D40000000000B2 +:0476D50000000000B1 +:0476D60000000000B0 +:0476D70000000000AF +:0476D80000000000AE +:0476D90000000000AD +:0476DA0000000000AC +:0476DB0000000000AB +:0476DC0000000000AA +:0476DD0000000000A9 +:0476DE0000000000A8 +:0476DF0000000000A7 +:0476E00000000000A6 +:0476E10000000000A5 +:0476E20000000000A4 +:0476E30000000000A3 +:0476E40000000000A2 +:0476E50000000000A1 +:0476E60000000000A0 +:0476E700000000009F +:0476E800000000009E +:0476E900000000009D +:0476EA00000000009C +:0476EB00000000009B +:0476EC00000000009A +:0476ED000000000099 +:0476EE000000000098 +:0476EF000000000097 +:0476F0000000000096 +:0476F1000000000095 +:0476F2000000000094 +:0476F3000000000093 +:0476F4000000000092 +:0476F5000000000091 +:0476F6000000000090 +:0476F700000000008F +:0476F800000000008E +:0476F900000000008D +:0476FA00000000008C +:0476FB00000000008B +:0476FC00000000008A +:0476FD000000000089 +:0476FE000000000088 +:0476FF000000000087 +:047700000000000085 +:047701000000000084 +:047702000000000083 +:047703000000000082 +:047704000000000081 +:047705000000000080 +:04770600000000007F +:04770700000000007E +:04770800000000007D +:04770900000000007C +:04770A00000000007B +:04770B00000000007A +:04770C000000000079 +:04770D000000000078 +:04770E000000000077 +:04770F000000000076 +:047710000000000075 +:047711000000000074 +:047712000000000073 +:047713000000000072 +:047714000000000071 +:047715000000000070 +:04771600000000006F +:04771700000000006E +:04771800000000006D +:04771900000000006C +:04771A00000000006B +:04771B00000000006A +:04771C000000000069 +:04771D000000000068 +:04771E000000000067 +:04771F000000000066 +:047720000000000065 +:047721000000000064 +:047722000000000063 +:047723000000000062 +:047724000000000061 +:047725000000000060 +:04772600000000005F +:04772700000000005E +:04772800000000005D +:04772900000000005C +:04772A00000000005B +:04772B00000000005A +:04772C000000000059 +:04772D000000000058 +:04772E000000000057 +:04772F000000000056 +:047730000000000055 +:047731000000000054 +:047732000000000053 +:047733000000000052 +:047734000000000051 +:047735000000000050 +:04773600000000004F +:04773700000000004E +:04773800000000004D +:04773900000000004C +:04773A00000000004B +:04773B00000000004A +:04773C000000000049 +:04773D000000000048 +:04773E000000000047 +:04773F000000000046 +:047740000000000045 +:047741000000000044 +:047742000000000043 +:047743000000000042 +:047744000000000041 +:047745000000000040 +:04774600000000003F +:04774700000000003E +:04774800000000003D +:04774900000000003C +:04774A00000000003B +:04774B00000000003A +:04774C000000000039 +:04774D000000000038 +:04774E000000000037 +:04774F000000000036 +:047750000000000035 +:047751000000000034 +:047752000000000033 +:047753000000000032 +:047754000000000031 +:047755000000000030 +:04775600000000002F +:04775700000000002E +:04775800000000002D +:04775900000000002C +:04775A00000000002B +:04775B00000000002A +:04775C000000000029 +:04775D000000000028 +:04775E000000000027 +:04775F000000000026 +:047760000000000025 +:047761000000000024 +:047762000000000023 +:047763000000000022 +:047764000000000021 +:047765000000000020 +:04776600000000001F +:04776700000000001E +:04776800000000001D +:04776900000000001C +:04776A00000000001B +:04776B00000000001A +:04776C000000000019 +:04776D000000000018 +:04776E000000000017 +:04776F000000000016 +:047770000000000015 +:047771000000000014 +:047772000000000013 +:047773000000000012 +:047774000000000011 +:047775000000000010 +:04777600000000000F +:04777700000000000E +:04777800000000000D +:04777900000000000C +:04777A00000000000B +:04777B00000000000A +:04777C000000000009 +:04777D000000000008 +:04777E000000000007 +:04777F000000000006 +:047780000000000005 +:047781000000000004 +:047782000000000003 +:047783000000000002 +:047784000000000001 +:047785000000000000 +:0477860000000000FF +:0477870000000000FE +:0477880000000000FD +:0477890000000000FC +:04778A0000000000FB +:04778B0000000000FA +:04778C0000000000F9 +:04778D0000000000F8 +:04778E0000000000F7 +:04778F0000000000F6 +:0477900000000000F5 +:0477910000000000F4 +:0477920000000000F3 +:0477930000000000F2 +:0477940000000000F1 +:0477950000000000F0 +:0477960000000000EF +:0477970000000000EE +:0477980000000000ED +:0477990000000000EC +:04779A0000000000EB +:04779B0000000000EA +:04779C0000000000E9 +:04779D0000000000E8 +:04779E0000000000E7 +:04779F0000000000E6 +:0477A00000000000E5 +:0477A10000000000E4 +:0477A20000000000E3 +:0477A30000000000E2 +:0477A40000000000E1 +:0477A50000000000E0 +:0477A60000000000DF +:0477A70000000000DE +:0477A80000000000DD +:0477A90000000000DC +:0477AA0000000000DB +:0477AB0000000000DA +:0477AC0000000000D9 +:0477AD0000000000D8 +:0477AE0000000000D7 +:0477AF0000000000D6 +:0477B00000000000D5 +:0477B10000000000D4 +:0477B20000000000D3 +:0477B30000000000D2 +:0477B40000000000D1 +:0477B50000000000D0 +:0477B60000000000CF +:0477B70000000000CE +:0477B80000000000CD +:0477B90000000000CC +:0477BA0000000000CB +:0477BB0000000000CA +:0477BC0000000000C9 +:0477BD0000000000C8 +:0477BE0000000000C7 +:0477BF0000000000C6 +:0477C00000000000C5 +:0477C10000000000C4 +:0477C20000000000C3 +:0477C30000000000C2 +:0477C40000000000C1 +:0477C50000000000C0 +:0477C60000000000BF +:0477C70000000000BE +:0477C80000000000BD +:0477C90000000000BC +:0477CA0000000000BB +:0477CB0000000000BA +:0477CC0000000000B9 +:0477CD0000000000B8 +:0477CE0000000000B7 +:0477CF0000000000B6 +:0477D00000000000B5 +:0477D10000000000B4 +:0477D20000000000B3 +:0477D30000000000B2 +:0477D40000000000B1 +:0477D50000000000B0 +:0477D60000000000AF +:0477D70000000000AE +:0477D80000000000AD +:0477D90000000000AC +:0477DA0000000000AB +:0477DB0000000000AA +:0477DC0000000000A9 +:0477DD0000000000A8 +:0477DE0000000000A7 +:0477DF0000000000A6 +:0477E00000000000A5 +:0477E10000000000A4 +:0477E20000000000A3 +:0477E30000000000A2 +:0477E40000000000A1 +:0477E50000000000A0 +:0477E600000000009F +:0477E700000000009E +:0477E800000000009D +:0477E900000000009C +:0477EA00000000009B +:0477EB00000000009A +:0477EC000000000099 +:0477ED000000000098 +:0477EE000000000097 +:0477EF000000000096 +:0477F0000000000095 +:0477F1000000000094 +:0477F2000000000093 +:0477F3000000000092 +:0477F4000000000091 +:0477F5000000000090 +:0477F600000000008F +:0477F700000000008E +:0477F800000000008D +:0477F900000000008C +:0477FA00000000008B +:0477FB00000000008A +:0477FC000000000089 +:0477FD000000000088 +:0477FE000000000087 +:0477FF000000000086 +:047800000000000084 +:047801000000000083 +:047802000000000082 +:047803000000000081 +:047804000000000080 +:04780500000000007F +:04780600000000007E +:04780700000000007D +:04780800000000007C +:04780900000000007B +:04780A00000000007A +:04780B000000000079 +:04780C000000000078 +:04780D000000000077 +:04780E000000000076 +:04780F000000000075 +:047810000000000074 +:047811000000000073 +:047812000000000072 +:047813000000000071 +:047814000000000070 +:04781500000000006F +:04781600000000006E +:04781700000000006D +:04781800000000006C +:04781900000000006B +:04781A00000000006A +:04781B000000000069 +:04781C000000000068 +:04781D000000000067 +:04781E000000000066 +:04781F000000000065 +:047820000000000064 +:047821000000000063 +:047822000000000062 +:047823000000000061 +:047824000000000060 +:04782500000000005F +:04782600000000005E +:04782700000000005D +:04782800000000005C +:04782900000000005B +:04782A00000000005A +:04782B000000000059 +:04782C000000000058 +:04782D000000000057 +:04782E000000000056 +:04782F000000000055 +:047830000000000054 +:047831000000000053 +:047832000000000052 +:047833000000000051 +:047834000000000050 +:04783500000000004F +:04783600000000004E +:04783700000000004D +:04783800000000004C +:04783900000000004B +:04783A00000000004A +:04783B000000000049 +:04783C000000000048 +:04783D000000000047 +:04783E000000000046 +:04783F000000000045 +:047840000000000044 +:047841000000000043 +:047842000000000042 +:047843000000000041 +:047844000000000040 +:04784500000000003F +:04784600000000003E +:04784700000000003D +:04784800000000003C +:04784900000000003B +:04784A00000000003A +:04784B000000000039 +:04784C000000000038 +:04784D000000000037 +:04784E000000000036 +:04784F000000000035 +:047850000000000034 +:047851000000000033 +:047852000000000032 +:047853000000000031 +:047854000000000030 +:04785500000000002F +:04785600000000002E +:04785700000000002D +:04785800000000002C +:04785900000000002B +:04785A00000000002A +:04785B000000000029 +:04785C000000000028 +:04785D000000000027 +:04785E000000000026 +:04785F000000000025 +:047860000000000024 +:047861000000000023 +:047862000000000022 +:047863000000000021 +:047864000000000020 +:04786500000000001F +:04786600000000001E +:04786700000000001D +:04786800000000001C +:04786900000000001B +:04786A00000000001A +:04786B000000000019 +:04786C000000000018 +:04786D000000000017 +:04786E000000000016 +:04786F000000000015 +:047870000000000014 +:047871000000000013 +:047872000000000012 +:047873000000000011 +:047874000000000010 +:04787500000000000F +:04787600000000000E +:04787700000000000D +:04787800000000000C +:04787900000000000B +:04787A00000000000A +:04787B000000000009 +:04787C000000000008 +:04787D000000000007 +:04787E000000000006 +:04787F000000000005 +:047880000000000004 +:047881000000000003 +:047882000000000002 +:047883000000000001 +:047884000000000000 +:0478850000000000FF +:0478860000000000FE +:0478870000000000FD +:0478880000000000FC +:0478890000000000FB +:04788A0000000000FA +:04788B0000000000F9 +:04788C0000000000F8 +:04788D0000000000F7 +:04788E0000000000F6 +:04788F0000000000F5 +:0478900000000000F4 +:0478910000000000F3 +:0478920000000000F2 +:0478930000000000F1 +:0478940000000000F0 +:0478950000000000EF +:0478960000000000EE +:0478970000000000ED +:0478980000000000EC +:0478990000000000EB +:04789A0000000000EA +:04789B0000000000E9 +:04789C0000000000E8 +:04789D0000000000E7 +:04789E0000000000E6 +:04789F0000000000E5 +:0478A00000000000E4 +:0478A10000000000E3 +:0478A20000000000E2 +:0478A30000000000E1 +:0478A40000000000E0 +:0478A50000000000DF +:0478A60000000000DE +:0478A70000000000DD +:0478A80000000000DC +:0478A90000000000DB +:0478AA0000000000DA +:0478AB0000000000D9 +:0478AC0000000000D8 +:0478AD0000000000D7 +:0478AE0000000000D6 +:0478AF0000000000D5 +:0478B00000000000D4 +:0478B10000000000D3 +:0478B20000000000D2 +:0478B30000000000D1 +:0478B40000000000D0 +:0478B50000000000CF +:0478B60000000000CE +:0478B70000000000CD +:0478B80000000000CC +:0478B90000000000CB +:0478BA0000000000CA +:0478BB0000000000C9 +:0478BC0000000000C8 +:0478BD0000000000C7 +:0478BE0000000000C6 +:0478BF0000000000C5 +:0478C00000000000C4 +:0478C10000000000C3 +:0478C20000000000C2 +:0478C30000000000C1 +:0478C40000000000C0 +:0478C50000000000BF +:0478C60000000000BE +:0478C70000000000BD +:0478C80000000000BC +:0478C90000000000BB +:0478CA0000000000BA +:0478CB0000000000B9 +:0478CC0000000000B8 +:0478CD0000000000B7 +:0478CE0000000000B6 +:0478CF0000000000B5 +:0478D00000000000B4 +:0478D10000000000B3 +:0478D20000000000B2 +:0478D30000000000B1 +:0478D40000000000B0 +:0478D50000000000AF +:0478D60000000000AE +:0478D70000000000AD +:0478D80000000000AC +:0478D90000000000AB +:0478DA0000000000AA +:0478DB0000000000A9 +:0478DC0000000000A8 +:0478DD0000000000A7 +:0478DE0000000000A6 +:0478DF0000000000A5 +:0478E00000000000A4 +:0478E10000000000A3 +:0478E20000000000A2 +:0478E30000000000A1 +:0478E40000000000A0 +:0478E500000000009F +:0478E600000000009E +:0478E700000000009D +:0478E800000000009C +:0478E900000000009B +:0478EA00000000009A +:0478EB000000000099 +:0478EC000000000098 +:0478ED000000000097 +:0478EE000000000096 +:0478EF000000000095 +:0478F0000000000094 +:0478F1000000000093 +:0478F2000000000092 +:0478F3000000000091 +:0478F4000000000090 +:0478F500000000008F +:0478F600000000008E +:0478F700000000008D +:0478F800000000008C +:0478F900000000008B +:0478FA00000000008A +:0478FB000000000089 +:0478FC000000000088 +:0478FD000000000087 +:0478FE000000000086 +:0478FF000000000085 +:047900000000000083 +:047901000000000082 +:047902000000000081 +:047903000000000080 +:04790400000000007F +:04790500000000007E +:04790600000000007D +:04790700000000007C +:04790800000000007B +:04790900000000007A +:04790A000000000079 +:04790B000000000078 +:04790C000000000077 +:04790D000000000076 +:04790E000000000075 +:04790F000000000074 +:047910000000000073 +:047911000000000072 +:047912000000000071 +:047913000000000070 +:04791400000000006F +:04791500000000006E +:04791600000000006D +:04791700000000006C +:04791800000000006B +:04791900000000006A +:04791A000000000069 +:04791B000000000068 +:04791C000000000067 +:04791D000000000066 +:04791E000000000065 +:04791F000000000064 +:047920000000000063 +:047921000000000062 +:047922000000000061 +:047923000000000060 +:04792400000000005F +:04792500000000005E +:04792600000000005D +:04792700000000005C +:04792800000000005B +:04792900000000005A +:04792A000000000059 +:04792B000000000058 +:04792C000000000057 +:04792D000000000056 +:04792E000000000055 +:04792F000000000054 +:047930000000000053 +:047931000000000052 +:047932000000000051 +:047933000000000050 +:04793400000000004F +:04793500000000004E +:04793600000000004D +:04793700000000004C +:04793800000000004B +:04793900000000004A +:04793A000000000049 +:04793B000000000048 +:04793C000000000047 +:04793D000000000046 +:04793E000000000045 +:04793F000000000044 +:047940000000000043 +:047941000000000042 +:047942000000000041 +:047943000000000040 +:04794400000000003F +:04794500000000003E +:04794600000000003D +:04794700000000003C +:04794800000000003B +:04794900000000003A +:04794A000000000039 +:04794B000000000038 +:04794C000000000037 +:04794D000000000036 +:04794E000000000035 +:04794F000000000034 +:047950000000000033 +:047951000000000032 +:047952000000000031 +:047953000000000030 +:04795400000000002F +:04795500000000002E +:04795600000000002D +:04795700000000002C +:04795800000000002B +:04795900000000002A +:04795A000000000029 +:04795B000000000028 +:04795C000000000027 +:04795D000000000026 +:04795E000000000025 +:04795F000000000024 +:047960000000000023 +:047961000000000022 +:047962000000000021 +:047963000000000020 +:04796400000000001F +:04796500000000001E +:04796600000000001D +:04796700000000001C +:04796800000000001B +:04796900000000001A +:04796A000000000019 +:04796B000000000018 +:04796C000000000017 +:04796D000000000016 +:04796E000000000015 +:04796F000000000014 +:047970000000000013 +:047971000000000012 +:047972000000000011 +:047973000000000010 +:04797400000000000F +:04797500000000000E +:04797600000000000D +:04797700000000000C +:04797800000000000B +:04797900000000000A +:04797A000000000009 +:04797B000000000008 +:04797C000000000007 +:04797D000000000006 +:04797E000000000005 +:04797F000000000004 +:047980000000000003 +:047981000000000002 +:047982000000000001 +:047983000000000000 +:0479840000000000FF +:0479850000000000FE +:0479860000000000FD +:0479870000000000FC +:0479880000000000FB +:0479890000000000FA +:04798A0000000000F9 +:04798B0000000000F8 +:04798C0000000000F7 +:04798D0000000000F6 +:04798E0000000000F5 +:04798F0000000000F4 +:0479900000000000F3 +:0479910000000000F2 +:0479920000000000F1 +:0479930000000000F0 +:0479940000000000EF +:0479950000000000EE +:0479960000000000ED +:0479970000000000EC +:0479980000000000EB +:0479990000000000EA +:04799A0000000000E9 +:04799B0000000000E8 +:04799C0000000000E7 +:04799D0000000000E6 +:04799E0000000000E5 +:04799F0000000000E4 +:0479A00000000000E3 +:0479A10000000000E2 +:0479A20000000000E1 +:0479A30000000000E0 +:0479A40000000000DF +:0479A50000000000DE +:0479A60000000000DD +:0479A70000000000DC +:0479A80000000000DB +:0479A90000000000DA +:0479AA0000000000D9 +:0479AB0000000000D8 +:0479AC0000000000D7 +:0479AD0000000000D6 +:0479AE0000000000D5 +:0479AF0000000000D4 +:0479B00000000000D3 +:0479B10000000000D2 +:0479B20000000000D1 +:0479B30000000000D0 +:0479B40000000000CF +:0479B50000000000CE +:0479B60000000000CD +:0479B70000000000CC +:0479B80000000000CB +:0479B90000000000CA +:0479BA0000000000C9 +:0479BB0000000000C8 +:0479BC0000000000C7 +:0479BD0000000000C6 +:0479BE0000000000C5 +:0479BF0000000000C4 +:0479C00000000000C3 +:0479C10000000000C2 +:0479C20000000000C1 +:0479C30000000000C0 +:0479C40000000000BF +:0479C50000000000BE +:0479C60000000000BD +:0479C70000000000BC +:0479C80000000000BB +:0479C90000000000BA +:0479CA0000000000B9 +:0479CB0000000000B8 +:0479CC0000000000B7 +:0479CD0000000000B6 +:0479CE0000000000B5 +:0479CF0000000000B4 +:0479D00000000000B3 +:0479D10000000000B2 +:0479D20000000000B1 +:0479D30000000000B0 +:0479D40000000000AF +:0479D50000000000AE +:0479D60000000000AD +:0479D70000000000AC +:0479D80000000000AB +:0479D90000000000AA +:0479DA0000000000A9 +:0479DB0000000000A8 +:0479DC0000000000A7 +:0479DD0000000000A6 +:0479DE0000000000A5 +:0479DF0000000000A4 +:0479E00000000000A3 +:0479E10000000000A2 +:0479E20000000000A1 +:0479E30000000000A0 +:0479E400000000009F +:0479E500000000009E +:0479E600000000009D +:0479E700000000009C +:0479E800000000009B +:0479E900000000009A +:0479EA000000000099 +:0479EB000000000098 +:0479EC000000000097 +:0479ED000000000096 +:0479EE000000000095 +:0479EF000000000094 +:0479F0000000000093 +:0479F1000000000092 +:0479F2000000000091 +:0479F3000000000090 +:0479F400000000008F +:0479F500000000008E +:0479F600000000008D +:0479F700000000008C +:0479F800000000008B +:0479F900000000008A +:0479FA000000000089 +:0479FB000000000088 +:0479FC000000000087 +:0479FD000000000086 +:0479FE000000000085 +:0479FF000000000084 +:047A00000000000082 +:047A01000000000081 +:047A02000000000080 +:047A0300000000007F +:047A0400000000007E +:047A0500000000007D +:047A0600000000007C +:047A0700000000007B +:047A0800000000007A +:047A09000000000079 +:047A0A000000000078 +:047A0B000000000077 +:047A0C000000000076 +:047A0D000000000075 +:047A0E000000000074 +:047A0F000000000073 +:047A10000000000072 +:047A11000000000071 +:047A12000000000070 +:047A1300000000006F +:047A1400000000006E +:047A1500000000006D +:047A1600000000006C +:047A1700000000006B +:047A1800000000006A +:047A19000000000069 +:047A1A000000000068 +:047A1B000000000067 +:047A1C000000000066 +:047A1D000000000065 +:047A1E000000000064 +:047A1F000000000063 +:047A20000000000062 +:047A21000000000061 +:047A22000000000060 +:047A2300000000005F +:047A2400000000005E +:047A2500000000005D +:047A2600000000005C +:047A2700000000005B +:047A2800000000005A +:047A29000000000059 +:047A2A000000000058 +:047A2B000000000057 +:047A2C000000000056 +:047A2D000000000055 +:047A2E000000000054 +:047A2F000000000053 +:047A30000000000052 +:047A31000000000051 +:047A32000000000050 +:047A3300000000004F +:047A3400000000004E +:047A3500000000004D +:047A3600000000004C +:047A3700000000004B +:047A3800000000004A +:047A39000000000049 +:047A3A000000000048 +:047A3B000000000047 +:047A3C000000000046 +:047A3D000000000045 +:047A3E000000000044 +:047A3F000000000043 +:047A40000000000042 +:047A41000000000041 +:047A42000000000040 +:047A4300000000003F +:047A4400000000003E +:047A4500000000003D +:047A4600000000003C +:047A4700000000003B +:047A4800000000003A +:047A49000000000039 +:047A4A000000000038 +:047A4B000000000037 +:047A4C000000000036 +:047A4D000000000035 +:047A4E000000000034 +:047A4F000000000033 +:047A50000000000032 +:047A51000000000031 +:047A52000000000030 +:047A5300000000002F +:047A5400000000002E +:047A5500000000002D +:047A5600000000002C +:047A5700000000002B +:047A5800000000002A +:047A59000000000029 +:047A5A000000000028 +:047A5B000000000027 +:047A5C000000000026 +:047A5D000000000025 +:047A5E000000000024 +:047A5F000000000023 +:047A60000000000022 +:047A61000000000021 +:047A62000000000020 +:047A6300000000001F +:047A6400000000001E +:047A6500000000001D +:047A6600000000001C +:047A6700000000001B +:047A6800000000001A +:047A69000000000019 +:047A6A000000000018 +:047A6B000000000017 +:047A6C000000000016 +:047A6D000000000015 +:047A6E000000000014 +:047A6F000000000013 +:047A70000000000012 +:047A71000000000011 +:047A72000000000010 +:047A7300000000000F +:047A7400000000000E +:047A7500000000000D +:047A7600000000000C +:047A7700000000000B +:047A7800000000000A +:047A79000000000009 +:047A7A000000000008 +:047A7B000000000007 +:047A7C000000000006 +:047A7D000000000005 +:047A7E000000000004 +:047A7F000000000003 +:047A80000000000002 +:047A81000000000001 +:047A82000000000000 +:047A830000000000FF +:047A840000000000FE +:047A850000000000FD +:047A860000000000FC +:047A870000000000FB +:047A880000000000FA +:047A890000000000F9 +:047A8A0000000000F8 +:047A8B0000000000F7 +:047A8C0000000000F6 +:047A8D0000000000F5 +:047A8E0000000000F4 +:047A8F0000000000F3 +:047A900000000000F2 +:047A910000000000F1 +:047A920000000000F0 +:047A930000000000EF +:047A940000000000EE +:047A950000000000ED +:047A960000000000EC +:047A970000000000EB +:047A980000000000EA +:047A990000000000E9 +:047A9A0000000000E8 +:047A9B0000000000E7 +:047A9C0000000000E6 +:047A9D0000000000E5 +:047A9E0000000000E4 +:047A9F0000000000E3 +:047AA00000000000E2 +:047AA10000000000E1 +:047AA20000000000E0 +:047AA30000000000DF +:047AA40000000000DE +:047AA50000000000DD +:047AA60000000000DC +:047AA70000000000DB +:047AA80000000000DA +:047AA90000000000D9 +:047AAA0000000000D8 +:047AAB0000000000D7 +:047AAC0000000000D6 +:047AAD0000000000D5 +:047AAE0000000000D4 +:047AAF0000000000D3 +:047AB00000000000D2 +:047AB10000000000D1 +:047AB20000000000D0 +:047AB30000000000CF +:047AB40000000000CE +:047AB50000000000CD +:047AB60000000000CC +:047AB70000000000CB +:047AB80000000000CA +:047AB90000000000C9 +:047ABA0000000000C8 +:047ABB0000000000C7 +:047ABC0000000000C6 +:047ABD0000000000C5 +:047ABE0000000000C4 +:047ABF0000000000C3 +:047AC00000000000C2 +:047AC10000000000C1 +:047AC20000000000C0 +:047AC30000000000BF +:047AC40000000000BE +:047AC50000000000BD +:047AC60000000000BC +:047AC70000000000BB +:047AC80000000000BA +:047AC90000000000B9 +:047ACA0000000000B8 +:047ACB0000000000B7 +:047ACC0000000000B6 +:047ACD0000000000B5 +:047ACE0000000000B4 +:047ACF0000000000B3 +:047AD00000000000B2 +:047AD10000000000B1 +:047AD20000000000B0 +:047AD30000000000AF +:047AD40000000000AE +:047AD50000000000AD +:047AD60000000000AC +:047AD70000000000AB +:047AD80000000000AA +:047AD90000000000A9 +:047ADA0000000000A8 +:047ADB0000000000A7 +:047ADC0000000000A6 +:047ADD0000000000A5 +:047ADE0000000000A4 +:047ADF0000000000A3 +:047AE00000000000A2 +:047AE10000000000A1 +:047AE20000000000A0 +:047AE300000000009F +:047AE400000000009E +:047AE500000000009D +:047AE600000000009C +:047AE700000000009B +:047AE800000000009A +:047AE9000000000099 +:047AEA000000000098 +:047AEB000000000097 +:047AEC000000000096 +:047AED000000000095 +:047AEE000000000094 +:047AEF000000000093 +:047AF0000000000092 +:047AF1000000000091 +:047AF2000000000090 +:047AF300000000008F +:047AF400000000008E +:047AF500000000008D +:047AF600000000008C +:047AF700000000008B +:047AF800000000008A +:047AF9000000000089 +:047AFA000000000088 +:047AFB000000000087 +:047AFC000000000086 +:047AFD000000000085 +:047AFE000000000084 +:047AFF000000000083 +:047B00000000000081 +:047B01000000000080 +:047B0200000000007F +:047B0300000000007E +:047B0400000000007D +:047B0500000000007C +:047B0600000000007B +:047B0700000000007A +:047B08000000000079 +:047B09000000000078 +:047B0A000000000077 +:047B0B000000000076 +:047B0C000000000075 +:047B0D000000000074 +:047B0E000000000073 +:047B0F000000000072 +:047B10000000000071 +:047B11000000000070 +:047B1200000000006F +:047B1300000000006E +:047B1400000000006D +:047B1500000000006C +:047B1600000000006B +:047B1700000000006A +:047B18000000000069 +:047B19000000000068 +:047B1A000000000067 +:047B1B000000000066 +:047B1C000000000065 +:047B1D000000000064 +:047B1E000000000063 +:047B1F000000000062 +:047B20000000000061 +:047B21000000000060 +:047B2200000000005F +:047B2300000000005E +:047B2400000000005D +:047B2500000000005C +:047B2600000000005B +:047B2700000000005A +:047B28000000000059 +:047B29000000000058 +:047B2A000000000057 +:047B2B000000000056 +:047B2C000000000055 +:047B2D000000000054 +:047B2E000000000053 +:047B2F000000000052 +:047B30000000000051 +:047B31000000000050 +:047B3200000000004F +:047B3300000000004E +:047B3400000000004D +:047B3500000000004C +:047B3600000000004B +:047B3700000000004A +:047B38000000000049 +:047B39000000000048 +:047B3A000000000047 +:047B3B000000000046 +:047B3C000000000045 +:047B3D000000000044 +:047B3E000000000043 +:047B3F000000000042 +:047B40000000000041 +:047B41000000000040 +:047B4200000000003F +:047B4300000000003E +:047B4400000000003D +:047B4500000000003C +:047B4600000000003B +:047B4700000000003A +:047B48000000000039 +:047B49000000000038 +:047B4A000000000037 +:047B4B000000000036 +:047B4C000000000035 +:047B4D000000000034 +:047B4E000000000033 +:047B4F000000000032 +:047B50000000000031 +:047B51000000000030 +:047B5200000000002F +:047B5300000000002E +:047B5400000000002D +:047B5500000000002C +:047B5600000000002B +:047B5700000000002A +:047B58000000000029 +:047B59000000000028 +:047B5A000000000027 +:047B5B000000000026 +:047B5C000000000025 +:047B5D000000000024 +:047B5E000000000023 +:047B5F000000000022 +:047B60000000000021 +:047B61000000000020 +:047B6200000000001F +:047B6300000000001E +:047B6400000000001D +:047B6500000000001C +:047B6600000000001B +:047B6700000000001A +:047B68000000000019 +:047B69000000000018 +:047B6A000000000017 +:047B6B000000000016 +:047B6C000000000015 +:047B6D000000000014 +:047B6E000000000013 +:047B6F000000000012 +:047B70000000000011 +:047B71000000000010 +:047B7200000000000F +:047B7300000000000E +:047B7400000000000D +:047B7500000000000C +:047B7600000000000B +:047B7700000000000A +:047B78000000000009 +:047B79000000000008 +:047B7A000000000007 +:047B7B000000000006 +:047B7C000000000005 +:047B7D000000000004 +:047B7E000000000003 +:047B7F000000000002 +:047B80000000000001 +:047B81000000000000 +:047B820000000000FF +:047B830000000000FE +:047B840000000000FD +:047B850000000000FC +:047B860000000000FB +:047B870000000000FA +:047B880000000000F9 +:047B890000000000F8 +:047B8A0000000000F7 +:047B8B0000000000F6 +:047B8C0000000000F5 +:047B8D0000000000F4 +:047B8E0000000000F3 +:047B8F0000000000F2 +:047B900000000000F1 +:047B910000000000F0 +:047B920000000000EF +:047B930000000000EE +:047B940000000000ED +:047B950000000000EC +:047B960000000000EB +:047B970000000000EA +:047B980000000000E9 +:047B990000000000E8 +:047B9A0000000000E7 +:047B9B0000000000E6 +:047B9C0000000000E5 +:047B9D0000000000E4 +:047B9E0000000000E3 +:047B9F0000000000E2 +:047BA00000000000E1 +:047BA10000000000E0 +:047BA20000000000DF +:047BA30000000000DE +:047BA40000000000DD +:047BA50000000000DC +:047BA60000000000DB +:047BA70000000000DA +:047BA80000000000D9 +:047BA90000000000D8 +:047BAA0000000000D7 +:047BAB0000000000D6 +:047BAC0000000000D5 +:047BAD0000000000D4 +:047BAE0000000000D3 +:047BAF0000000000D2 +:047BB00000000000D1 +:047BB10000000000D0 +:047BB20000000000CF +:047BB30000000000CE +:047BB40000000000CD +:047BB50000000000CC +:047BB60000000000CB +:047BB70000000000CA +:047BB80000000000C9 +:047BB90000000000C8 +:047BBA0000000000C7 +:047BBB0000000000C6 +:047BBC0000000000C5 +:047BBD0000000000C4 +:047BBE0000000000C3 +:047BBF0000000000C2 +:047BC00000000000C1 +:047BC10000000000C0 +:047BC20000000000BF +:047BC30000000000BE +:047BC40000000000BD +:047BC50000000000BC +:047BC60000000000BB +:047BC70000000000BA +:047BC80000000000B9 +:047BC90000000000B8 +:047BCA0000000000B7 +:047BCB0000000000B6 +:047BCC0000000000B5 +:047BCD0000000000B4 +:047BCE0000000000B3 +:047BCF0000000000B2 +:047BD00000000000B1 +:047BD10000000000B0 +:047BD20000000000AF +:047BD30000000000AE +:047BD40000000000AD +:047BD50000000000AC +:047BD60000000000AB +:047BD70000000000AA +:047BD80000000000A9 +:047BD90000000000A8 +:047BDA0000000000A7 +:047BDB0000000000A6 +:047BDC0000000000A5 +:047BDD0000000000A4 +:047BDE0000000000A3 +:047BDF0000000000A2 +:047BE00000000000A1 +:047BE10000000000A0 +:047BE200000000009F +:047BE300000000009E +:047BE400000000009D +:047BE500000000009C +:047BE600000000009B +:047BE700000000009A +:047BE8000000000099 +:047BE9000000000098 +:047BEA000000000097 +:047BEB000000000096 +:047BEC000000000095 +:047BED000000000094 +:047BEE000000000093 +:047BEF000000000092 +:047BF0000000000091 +:047BF1000000000090 +:047BF200000000008F +:047BF300000000008E +:047BF400000000008D +:047BF500000000008C +:047BF600000000008B +:047BF700000000008A +:047BF8000000000089 +:047BF9000000000088 +:047BFA000000000087 +:047BFB000000000086 +:047BFC000000000085 +:047BFD000000000084 +:047BFE000000000083 +:047BFF000000000082 +:047C00000000000080 +:047C0100000000007F +:047C0200000000007E +:047C0300000000007D +:047C0400000000007C +:047C0500000000007B +:047C0600000000007A +:047C07000000000079 +:047C08000000000078 +:047C09000000000077 +:047C0A000000000076 +:047C0B000000000075 +:047C0C000000000074 +:047C0D000000000073 +:047C0E000000000072 +:047C0F000000000071 +:047C10000000000070 +:047C1100000000006F +:047C1200000000006E +:047C1300000000006D +:047C1400000000006C +:047C1500000000006B +:047C1600000000006A +:047C17000000000069 +:047C18000000000068 +:047C19000000000067 +:047C1A000000000066 +:047C1B000000000065 +:047C1C000000000064 +:047C1D000000000063 +:047C1E000000000062 +:047C1F000000000061 +:047C20000000000060 +:047C2100000000005F +:047C2200000000005E +:047C2300000000005D +:047C2400000000005C +:047C2500000000005B +:047C2600000000005A +:047C27000000000059 +:047C28000000000058 +:047C29000000000057 +:047C2A000000000056 +:047C2B000000000055 +:047C2C000000000054 +:047C2D000000000053 +:047C2E000000000052 +:047C2F000000000051 +:047C30000000000050 +:047C3100000000004F +:047C3200000000004E +:047C3300000000004D +:047C3400000000004C +:047C3500000000004B +:047C3600000000004A +:047C37000000000049 +:047C38000000000048 +:047C39000000000047 +:047C3A000000000046 +:047C3B000000000045 +:047C3C000000000044 +:047C3D000000000043 +:047C3E000000000042 +:047C3F000000000041 +:047C40000000000040 +:047C4100000000003F +:047C4200000000003E +:047C4300000000003D +:047C4400000000003C +:047C4500000000003B +:047C4600000000003A +:047C47000000000039 +:047C48000000000038 +:047C49000000000037 +:047C4A000000000036 +:047C4B000000000035 +:047C4C000000000034 +:047C4D000000000033 +:047C4E000000000032 +:047C4F000000000031 +:047C50000000000030 +:047C5100000000002F +:047C5200000000002E +:047C5300000000002D +:047C5400000000002C +:047C5500000000002B +:047C5600000000002A +:047C57000000000029 +:047C58000000000028 +:047C59000000000027 +:047C5A000000000026 +:047C5B000000000025 +:047C5C000000000024 +:047C5D000000000023 +:047C5E000000000022 +:047C5F000000000021 +:047C60000000000020 +:047C6100000000001F +:047C6200000000001E +:047C6300000000001D +:047C6400000000001C +:047C6500000000001B +:047C6600000000001A +:047C67000000000019 +:047C68000000000018 +:047C69000000000017 +:047C6A000000000016 +:047C6B000000000015 +:047C6C000000000014 +:047C6D000000000013 +:047C6E000000000012 +:047C6F000000000011 +:047C70000000000010 +:047C7100000000000F +:047C7200000000000E +:047C7300000000000D +:047C7400000000000C +:047C7500000000000B +:047C7600000000000A +:047C77000000000009 +:047C78000000000008 +:047C79000000000007 +:047C7A000000000006 +:047C7B000000000005 +:047C7C000000000004 +:047C7D000000000003 +:047C7E000000000002 +:047C7F000000000001 +:047C80000000000000 +:047C810000000000FF +:047C820000000000FE +:047C830000000000FD +:047C840000000000FC +:047C850000000000FB +:047C860000000000FA +:047C870000000000F9 +:047C880000000000F8 +:047C890000000000F7 +:047C8A0000000000F6 +:047C8B0000000000F5 +:047C8C0000000000F4 +:047C8D0000000000F3 +:047C8E0000000000F2 +:047C8F0000000000F1 +:047C900000000000F0 +:047C910000000000EF +:047C920000000000EE +:047C930000000000ED +:047C940000000000EC +:047C950000000000EB +:047C960000000000EA +:047C970000000000E9 +:047C980000000000E8 +:047C990000000000E7 +:047C9A0000000000E6 +:047C9B0000000000E5 +:047C9C0000000000E4 +:047C9D0000000000E3 +:047C9E0000000000E2 +:047C9F0000000000E1 +:047CA00000000000E0 +:047CA10000000000DF +:047CA20000000000DE +:047CA30000000000DD +:047CA40000000000DC +:047CA50000000000DB +:047CA60000000000DA +:047CA70000000000D9 +:047CA80000000000D8 +:047CA90000000000D7 +:047CAA0000000000D6 +:047CAB0000000000D5 +:047CAC0000000000D4 +:047CAD0000000000D3 +:047CAE0000000000D2 +:047CAF0000000000D1 +:047CB00000000000D0 +:047CB10000000000CF +:047CB20000000000CE +:047CB30000000000CD +:047CB40000000000CC +:047CB50000000000CB +:047CB60000000000CA +:047CB70000000000C9 +:047CB80000000000C8 +:047CB90000000000C7 +:047CBA0000000000C6 +:047CBB0000000000C5 +:047CBC0000000000C4 +:047CBD0000000000C3 +:047CBE0000000000C2 +:047CBF0000000000C1 +:047CC00000000000C0 +:047CC10000000000BF +:047CC20000000000BE +:047CC30000000000BD +:047CC40000000000BC +:047CC50000000000BB +:047CC60000000000BA +:047CC70000000000B9 +:047CC80000000000B8 +:047CC90000000000B7 +:047CCA0000000000B6 +:047CCB0000000000B5 +:047CCC0000000000B4 +:047CCD0000000000B3 +:047CCE0000000000B2 +:047CCF0000000000B1 +:047CD00000000000B0 +:047CD10000000000AF +:047CD20000000000AE +:047CD30000000000AD +:047CD40000000000AC +:047CD50000000000AB +:047CD60000000000AA +:047CD70000000000A9 +:047CD80000000000A8 +:047CD90000000000A7 +:047CDA0000000000A6 +:047CDB0000000000A5 +:047CDC0000000000A4 +:047CDD0000000000A3 +:047CDE0000000000A2 +:047CDF0000000000A1 +:047CE00000000000A0 +:047CE100000000009F +:047CE200000000009E +:047CE300000000009D +:047CE400000000009C +:047CE500000000009B +:047CE600000000009A +:047CE7000000000099 +:047CE8000000000098 +:047CE9000000000097 +:047CEA000000000096 +:047CEB000000000095 +:047CEC000000000094 +:047CED000000000093 +:047CEE000000000092 +:047CEF000000000091 +:047CF0000000000090 +:047CF100000000008F +:047CF200000000008E +:047CF300000000008D +:047CF400000000008C +:047CF500000000008B +:047CF600000000008A +:047CF7000000000089 +:047CF8000000000088 +:047CF9000000000087 +:047CFA000000000086 +:047CFB000000000085 +:047CFC000000000084 +:047CFD000000000083 +:047CFE000000000082 +:047CFF000000000081 +:047D0000000000007F +:047D0100000000007E +:047D0200000000007D +:047D0300000000007C +:047D0400000000007B +:047D0500000000007A +:047D06000000000079 +:047D07000000000078 +:047D08000000000077 +:047D09000000000076 +:047D0A000000000075 +:047D0B000000000074 +:047D0C000000000073 +:047D0D000000000072 +:047D0E000000000071 +:047D0F000000000070 +:047D1000000000006F +:047D1100000000006E +:047D1200000000006D +:047D1300000000006C +:047D1400000000006B +:047D1500000000006A +:047D16000000000069 +:047D17000000000068 +:047D18000000000067 +:047D19000000000066 +:047D1A000000000065 +:047D1B000000000064 +:047D1C000000000063 +:047D1D000000000062 +:047D1E000000000061 +:047D1F000000000060 +:047D2000000000005F +:047D2100000000005E +:047D2200000000005D +:047D2300000000005C +:047D2400000000005B +:047D2500000000005A +:047D26000000000059 +:047D27000000000058 +:047D28000000000057 +:047D29000000000056 +:047D2A000000000055 +:047D2B000000000054 +:047D2C000000000053 +:047D2D000000000052 +:047D2E000000000051 +:047D2F000000000050 +:047D3000000000004F +:047D3100000000004E +:047D3200000000004D +:047D3300000000004C +:047D3400000000004B +:047D3500000000004A +:047D36000000000049 +:047D37000000000048 +:047D38000000000047 +:047D39000000000046 +:047D3A000000000045 +:047D3B000000000044 +:047D3C000000000043 +:047D3D000000000042 +:047D3E000000000041 +:047D3F000000000040 +:047D4000000000003F +:047D4100000000003E +:047D4200000000003D +:047D4300000000003C +:047D4400000000003B +:047D4500000000003A +:047D46000000000039 +:047D47000000000038 +:047D48000000000037 +:047D49000000000036 +:047D4A000000000035 +:047D4B000000000034 +:047D4C000000000033 +:047D4D000000000032 +:047D4E000000000031 +:047D4F000000000030 +:047D5000000000002F +:047D5100000000002E +:047D5200000000002D +:047D5300000000002C +:047D5400000000002B +:047D5500000000002A +:047D56000000000029 +:047D57000000000028 +:047D58000000000027 +:047D59000000000026 +:047D5A000000000025 +:047D5B000000000024 +:047D5C000000000023 +:047D5D000000000022 +:047D5E000000000021 +:047D5F000000000020 +:047D6000000000001F +:047D6100000000001E +:047D6200000000001D +:047D6300000000001C +:047D6400000000001B +:047D6500000000001A +:047D66000000000019 +:047D67000000000018 +:047D68000000000017 +:047D69000000000016 +:047D6A000000000015 +:047D6B000000000014 +:047D6C000000000013 +:047D6D000000000012 +:047D6E000000000011 +:047D6F000000000010 +:047D7000000000000F +:047D7100000000000E +:047D7200000000000D +:047D7300000000000C +:047D7400000000000B +:047D7500000000000A +:047D76000000000009 +:047D77000000000008 +:047D78000000000007 +:047D79000000000006 +:047D7A000000000005 +:047D7B000000000004 +:047D7C000000000003 +:047D7D000000000002 +:047D7E000000000001 +:047D7F000000000000 +:047D800000000000FF +:047D810000000000FE +:047D820000000000FD +:047D830000000000FC +:047D840000000000FB +:047D850000000000FA +:047D860000000000F9 +:047D870000000000F8 +:047D880000000000F7 +:047D890000000000F6 +:047D8A0000000000F5 +:047D8B0000000000F4 +:047D8C0000000000F3 +:047D8D0000000000F2 +:047D8E0000000000F1 +:047D8F0000000000F0 +:047D900000000000EF +:047D910000000000EE +:047D920000000000ED +:047D930000000000EC +:047D940000000000EB +:047D950000000000EA +:047D960000000000E9 +:047D970000000000E8 +:047D980000000000E7 +:047D990000000000E6 +:047D9A0000000000E5 +:047D9B0000000000E4 +:047D9C0000000000E3 +:047D9D0000000000E2 +:047D9E0000000000E1 +:047D9F0000000000E0 +:047DA00000000000DF +:047DA10000000000DE +:047DA20000000000DD +:047DA30000000000DC +:047DA40000000000DB +:047DA50000000000DA +:047DA60000000000D9 +:047DA70000000000D8 +:047DA80000000000D7 +:047DA90000000000D6 +:047DAA0000000000D5 +:047DAB0000000000D4 +:047DAC0000000000D3 +:047DAD0000000000D2 +:047DAE0000000000D1 +:047DAF0000000000D0 +:047DB00000000000CF +:047DB10000000000CE +:047DB20000000000CD +:047DB30000000000CC +:047DB40000000000CB +:047DB50000000000CA +:047DB60000000000C9 +:047DB70000000000C8 +:047DB80000000000C7 +:047DB90000000000C6 +:047DBA0000000000C5 +:047DBB0000000000C4 +:047DBC0000000000C3 +:047DBD0000000000C2 +:047DBE0000000000C1 +:047DBF0000000000C0 +:047DC00000000000BF +:047DC10000000000BE +:047DC20000000000BD +:047DC30000000000BC +:047DC40000000000BB +:047DC50000000000BA +:047DC60000000000B9 +:047DC70000000000B8 +:047DC80000000000B7 +:047DC90000000000B6 +:047DCA0000000000B5 +:047DCB0000000000B4 +:047DCC0000000000B3 +:047DCD0000000000B2 +:047DCE0000000000B1 +:047DCF0000000000B0 +:047DD00000000000AF +:047DD10000000000AE +:047DD20000000000AD +:047DD30000000000AC +:047DD40000000000AB +:047DD50000000000AA +:047DD60000000000A9 +:047DD70000000000A8 +:047DD80000000000A7 +:047DD90000000000A6 +:047DDA0000000000A5 +:047DDB0000000000A4 +:047DDC0000000000A3 +:047DDD0000000000A2 +:047DDE0000000000A1 +:047DDF0000000000A0 +:047DE000000000009F +:047DE100000000009E +:047DE200000000009D +:047DE300000000009C +:047DE400000000009B +:047DE500000000009A +:047DE6000000000099 +:047DE7000000000098 +:047DE8000000000097 +:047DE9000000000096 +:047DEA000000000095 +:047DEB000000000094 +:047DEC000000000093 +:047DED000000000092 +:047DEE000000000091 +:047DEF000000000090 +:047DF000000000008F +:047DF100000000008E +:047DF200000000008D +:047DF300000000008C +:047DF400000000008B +:047DF500000000008A +:047DF6000000000089 +:047DF7000000000088 +:047DF8000000000087 +:047DF9000000000086 +:047DFA000000000085 +:047DFB000000000084 +:047DFC000000000083 +:047DFD000000000082 +:047DFE000000000081 +:047DFF000000000080 +:047E0000000000007E +:047E0100000000007D +:047E0200000000007C +:047E0300000000007B +:047E0400000000007A +:047E05000000000079 +:047E06000000000078 +:047E07000000000077 +:047E08000000000076 +:047E09000000000075 +:047E0A000000000074 +:047E0B000000000073 +:047E0C000000000072 +:047E0D000000000071 +:047E0E000000000070 +:047E0F00000000006F +:047E1000000000006E +:047E1100000000006D +:047E1200000000006C +:047E1300000000006B +:047E1400000000006A +:047E15000000000069 +:047E16000000000068 +:047E17000000000067 +:047E18000000000066 +:047E19000000000065 +:047E1A000000000064 +:047E1B000000000063 +:047E1C000000000062 +:047E1D000000000061 +:047E1E000000000060 +:047E1F00000000005F +:047E2000000000005E +:047E2100000000005D +:047E2200000000005C +:047E2300000000005B +:047E2400000000005A +:047E25000000000059 +:047E26000000000058 +:047E27000000000057 +:047E28000000000056 +:047E29000000000055 +:047E2A000000000054 +:047E2B000000000053 +:047E2C000000000052 +:047E2D000000000051 +:047E2E000000000050 +:047E2F00000000004F +:047E3000000000004E +:047E3100000000004D +:047E3200000000004C +:047E3300000000004B +:047E3400000000004A +:047E35000000000049 +:047E36000000000048 +:047E37000000000047 +:047E38000000000046 +:047E39000000000045 +:047E3A000000000044 +:047E3B000000000043 +:047E3C000000000042 +:047E3D000000000041 +:047E3E000000000040 +:047E3F00000000003F +:047E4000000000003E +:047E4100000000003D +:047E4200000000003C +:047E4300000000003B +:047E4400000000003A +:047E45000000000039 +:047E46000000000038 +:047E47000000000037 +:047E48000000000036 +:047E49000000000035 +:047E4A000000000034 +:047E4B000000000033 +:047E4C000000000032 +:047E4D000000000031 +:047E4E000000000030 +:047E4F00000000002F +:047E5000000000002E +:047E5100000000002D +:047E5200000000002C +:047E5300000000002B +:047E5400000000002A +:047E55000000000029 +:047E56000000000028 +:047E57000000000027 +:047E58000000000026 +:047E59000000000025 +:047E5A000000000024 +:047E5B000000000023 +:047E5C000000000022 +:047E5D000000000021 +:047E5E000000000020 +:047E5F00000000001F +:047E6000000000001E +:047E6100000000001D +:047E6200000000001C +:047E6300000000001B +:047E6400000000001A +:047E65000000000019 +:047E66000000000018 +:047E67000000000017 +:047E68000000000016 +:047E69000000000015 +:047E6A000000000014 +:047E6B000000000013 +:047E6C000000000012 +:047E6D000000000011 +:047E6E000000000010 +:047E6F00000000000F +:047E7000000000000E +:047E7100000000000D +:047E7200000000000C +:047E7300000000000B +:047E7400000000000A +:047E75000000000009 +:047E76000000000008 +:047E77000000000007 +:047E78000000000006 +:047E79000000000005 +:047E7A000000000004 +:047E7B000000000003 +:047E7C000000000002 +:047E7D000000000001 +:047E7E000000000000 +:047E7F0000000000FF +:047E800000000000FE +:047E810000000000FD +:047E820000000000FC +:047E830000000000FB +:047E840000000000FA +:047E850000000000F9 +:047E860000000000F8 +:047E870000000000F7 +:047E880000000000F6 +:047E890000000000F5 +:047E8A0000000000F4 +:047E8B0000000000F3 +:047E8C0000000000F2 +:047E8D0000000000F1 +:047E8E0000000000F0 +:047E8F0000000000EF +:047E900000000000EE +:047E910000000000ED +:047E920000000000EC +:047E930000000000EB +:047E940000000000EA +:047E950000000000E9 +:047E960000000000E8 +:047E970000000000E7 +:047E980000000000E6 +:047E990000000000E5 +:047E9A0000000000E4 +:047E9B0000000000E3 +:047E9C0000000000E2 +:047E9D0000000000E1 +:047E9E0000000000E0 +:047E9F0000000000DF +:047EA00000000000DE +:047EA10000000000DD +:047EA20000000000DC +:047EA30000000000DB +:047EA40000000000DA +:047EA50000000000D9 +:047EA60000000000D8 +:047EA70000000000D7 +:047EA80000000000D6 +:047EA90000000000D5 +:047EAA0000000000D4 +:047EAB0000000000D3 +:047EAC0000000000D2 +:047EAD0000000000D1 +:047EAE0000000000D0 +:047EAF0000000000CF +:047EB00000000000CE +:047EB10000000000CD +:047EB20000000000CC +:047EB30000000000CB +:047EB40000000000CA +:047EB50000000000C9 +:047EB60000000000C8 +:047EB70000000000C7 +:047EB80000000000C6 +:047EB90000000000C5 +:047EBA0000000000C4 +:047EBB0000000000C3 +:047EBC0000000000C2 +:047EBD0000000000C1 +:047EBE0000000000C0 +:047EBF0000000000BF +:047EC00000000000BE +:047EC10000000000BD +:047EC20000000000BC +:047EC30000000000BB +:047EC40000000000BA +:047EC50000000000B9 +:047EC60000000000B8 +:047EC70000000000B7 +:047EC80000000000B6 +:047EC90000000000B5 +:047ECA0000000000B4 +:047ECB0000000000B3 +:047ECC0000000000B2 +:047ECD0000000000B1 +:047ECE0000000000B0 +:047ECF0000000000AF +:047ED00000000000AE +:047ED10000000000AD +:047ED20000000000AC +:047ED30000000000AB +:047ED40000000000AA +:047ED50000000000A9 +:047ED60000000000A8 +:047ED70000000000A7 +:047ED80000000000A6 +:047ED90000000000A5 +:047EDA0000000000A4 +:047EDB0000000000A3 +:047EDC0000000000A2 +:047EDD0000000000A1 +:047EDE0000000000A0 +:047EDF00000000009F +:047EE000000000009E +:047EE100000000009D +:047EE200000000009C +:047EE300000000009B +:047EE400000000009A +:047EE5000000000099 +:047EE6000000000098 +:047EE7000000000097 +:047EE8000000000096 +:047EE9000000000095 +:047EEA000000000094 +:047EEB000000000093 +:047EEC000000000092 +:047EED000000000091 +:047EEE000000000090 +:047EEF00000000008F +:047EF000000000008E +:047EF100000000008D +:047EF200000000008C +:047EF300000000008B +:047EF400000000008A +:047EF5000000000089 +:047EF6000000000088 +:047EF7000000000087 +:047EF8000000000086 +:047EF9000000000085 +:047EFA000000000084 +:047EFB000000000083 +:047EFC000000000082 +:047EFD000000000081 +:047EFE000000000080 +:047EFF00000000007F +:047F0000000000007D +:047F0100000000007C +:047F0200000000007B +:047F0300000000007A +:047F04000000000079 +:047F05000000000078 +:047F06000000000077 +:047F07000000000076 +:047F08000000000075 +:047F09000000000074 +:047F0A000000000073 +:047F0B000000000072 +:047F0C000000000071 +:047F0D000000000070 +:047F0E00000000006F +:047F0F00000000006E +:047F1000000000006D +:047F1100000000006C +:047F1200000000006B +:047F1300000000006A +:047F14000000000069 +:047F15000000000068 +:047F16000000000067 +:047F17000000000066 +:047F18000000000065 +:047F19000000000064 +:047F1A000000000063 +:047F1B000000000062 +:047F1C000000000061 +:047F1D000000000060 +:047F1E00000000005F +:047F1F00000000005E +:047F2000000000005D +:047F2100000000005C +:047F2200000000005B +:047F2300000000005A +:047F24000000000059 +:047F25000000000058 +:047F26000000000057 +:047F27000000000056 +:047F28000000000055 +:047F29000000000054 +:047F2A000000000053 +:047F2B000000000052 +:047F2C000000000051 +:047F2D000000000050 +:047F2E00000000004F +:047F2F00000000004E +:047F3000000000004D +:047F3100000000004C +:047F3200000000004B +:047F3300000000004A +:047F34000000000049 +:047F35000000000048 +:047F36000000000047 +:047F37000000000046 +:047F38000000000045 +:047F39000000000044 +:047F3A000000000043 +:047F3B000000000042 +:047F3C000000000041 +:047F3D000000000040 +:047F3E00000000003F +:047F3F00000000003E +:047F4000000000003D +:047F4100000000003C +:047F4200000000003B +:047F4300000000003A +:047F44000000000039 +:047F45000000000038 +:047F46000000000037 +:047F47000000000036 +:047F48000000000035 +:047F49000000000034 +:047F4A000000000033 +:047F4B000000000032 +:047F4C000000000031 +:047F4D000000000030 +:047F4E00000000002F +:047F4F00000000002E +:047F5000000000002D +:047F5100000000002C +:047F5200000000002B +:047F5300000000002A +:047F54000000000029 +:047F55000000000028 +:047F56000000000027 +:047F57000000000026 +:047F58000000000025 +:047F59000000000024 +:047F5A000000000023 +:047F5B000000000022 +:047F5C000000000021 +:047F5D000000000020 +:047F5E00000000001F +:047F5F00000000001E +:047F6000000000001D +:047F6100000000001C +:047F6200000000001B +:047F6300000000001A +:047F64000000000019 +:047F65000000000018 +:047F66000000000017 +:047F67000000000016 +:047F68000000000015 +:047F69000000000014 +:047F6A000000000013 +:047F6B000000000012 +:047F6C000000000011 +:047F6D000000000010 +:047F6E00000000000F +:047F6F00000000000E +:047F7000000000000D +:047F7100000000000C +:047F7200000000000B +:047F7300000000000A +:047F74000000000009 +:047F75000000000008 +:047F76000000000007 +:047F77000000000006 +:047F78000000000005 +:047F79000000000004 +:047F7A000000000003 +:047F7B000000000002 +:047F7C000000000001 +:047F7D000000000000 +:047F7E0000000000FF +:047F7F0000000000FE +:047F800000000000FD +:047F810000000000FC +:047F820000000000FB +:047F830000000000FA +:047F840000000000F9 +:047F850000000000F8 +:047F860000000000F7 +:047F870000000000F6 +:047F880000000000F5 +:047F890000000000F4 +:047F8A0000000000F3 +:047F8B0000000000F2 +:047F8C0000000000F1 +:047F8D0000000000F0 +:047F8E0000000000EF +:047F8F0000000000EE +:047F900000000000ED +:047F910000000000EC +:047F920000000000EB +:047F930000000000EA +:047F940000000000E9 +:047F950000000000E8 +:047F960000000000E7 +:047F970000000000E6 +:047F980000000000E5 +:047F990000000000E4 +:047F9A0000000000E3 +:047F9B0000000000E2 +:047F9C0000000000E1 +:047F9D0000000000E0 +:047F9E0000000000DF +:047F9F0000000000DE +:047FA00000000000DD +:047FA10000000000DC +:047FA20000000000DB +:047FA30000000000DA +:047FA40000000000D9 +:047FA50000000000D8 +:047FA60000000000D7 +:047FA70000000000D6 +:047FA80000000000D5 +:047FA90000000000D4 +:047FAA0000000000D3 +:047FAB0000000000D2 +:047FAC0000000000D1 +:047FAD0000000000D0 +:047FAE0000000000CF +:047FAF0000000000CE +:047FB00000000000CD +:047FB10000000000CC +:047FB20000000000CB +:047FB30000000000CA +:047FB40000000000C9 +:047FB50000000000C8 +:047FB60000000000C7 +:047FB70000000000C6 +:047FB80000000000C5 +:047FB90000000000C4 +:047FBA0000000000C3 +:047FBB0000000000C2 +:047FBC0000000000C1 +:047FBD0000000000C0 +:047FBE0000000000BF +:047FBF0000000000BE +:047FC00000000000BD +:047FC10000000000BC +:047FC20000000000BB +:047FC30000000000BA +:047FC40000000000B9 +:047FC50000000000B8 +:047FC60000000000B7 +:047FC70000000000B6 +:047FC80000000000B5 +:047FC90000000000B4 +:047FCA0000000000B3 +:047FCB0000000000B2 +:047FCC0000000000B1 +:047FCD0000000000B0 +:047FCE0000000000AF +:047FCF0000000000AE +:047FD00000000000AD +:047FD10000000000AC +:047FD20000000000AB +:047FD30000000000AA +:047FD40000000000A9 +:047FD50000000000A8 +:047FD60000000000A7 +:047FD70000000000A6 +:047FD80000000000A5 +:047FD90000000000A4 +:047FDA0000000000A3 +:047FDB0000000000A2 +:047FDC0000000000A1 +:047FDD0000000000A0 +:047FDE00000000009F +:047FDF00000000009E +:047FE000000000009D +:047FE100000000009C +:047FE200000000009B +:047FE300000000009A +:047FE4000000000099 +:047FE5000000000098 +:047FE6000000000097 +:047FE7000000000096 +:047FE8000000000095 +:047FE9000000000094 +:047FEA000000000093 +:047FEB000000000092 +:047FEC000000000091 +:047FED000000000090 +:047FEE00000000008F +:047FEF00000000008E +:047FF000000000008D +:047FF100000000008C +:047FF200000000008B +:047FF300000000008A +:047FF4000000000089 +:047FF5000000000088 +:047FF6000000000087 +:047FF7000000000086 +:047FF8000000000085 +:047FF9000000000084 +:047FFA000000000083 +:047FFB000000000082 +:047FFC000000000081 +:047FFD000000000080 +:047FFE00000000007F +:047FFF00000000007E +:04800000000000007C +:04800100000000007B +:04800200000000007A +:048003000000000079 +:048004000000000078 +:048005000000000077 +:048006000000000076 +:048007000000000075 +:048008000000000074 +:048009000000000073 +:04800A000000000072 +:04800B000000000071 +:04800C000000000070 +:04800D00000000006F +:04800E00000000006E +:04800F00000000006D +:04801000000000006C +:04801100000000006B +:04801200000000006A +:048013000000000069 +:048014000000000068 +:048015000000000067 +:048016000000000066 +:048017000000000065 +:048018000000000064 +:048019000000000063 +:04801A000000000062 +:04801B000000000061 +:04801C000000000060 +:04801D00000000005F +:04801E00000000005E +:04801F00000000005D +:04802000000000005C +:04802100000000005B +:04802200000000005A +:048023000000000059 +:048024000000000058 +:048025000000000057 +:048026000000000056 +:048027000000000055 +:048028000000000054 +:048029000000000053 +:04802A000000000052 +:04802B000000000051 +:04802C000000000050 +:04802D00000000004F +:04802E00000000004E +:04802F00000000004D +:04803000000000004C +:04803100000000004B +:04803200000000004A +:048033000000000049 +:048034000000000048 +:048035000000000047 +:048036000000000046 +:048037000000000045 +:048038000000000044 +:048039000000000043 +:04803A000000000042 +:04803B000000000041 +:04803C000000000040 +:04803D00000000003F +:04803E00000000003E +:04803F00000000003D +:04804000000000003C +:04804100000000003B +:04804200000000003A +:048043000000000039 +:048044000000000038 +:048045000000000037 +:048046000000000036 +:048047000000000035 +:048048000000000034 +:048049000000000033 +:04804A000000000032 +:04804B000000000031 +:04804C000000000030 +:04804D00000000002F +:04804E00000000002E +:04804F00000000002D +:04805000000000002C +:04805100000000002B +:04805200000000002A +:048053000000000029 +:048054000000000028 +:048055000000000027 +:048056000000000026 +:048057000000000025 +:048058000000000024 +:048059000000000023 +:04805A000000000022 +:04805B000000000021 +:04805C000000000020 +:04805D00000000001F +:04805E00000000001E +:04805F00000000001D +:04806000000000001C +:04806100000000001B +:04806200000000001A +:048063000000000019 +:048064000000000018 +:048065000000000017 +:048066000000000016 +:048067000000000015 +:048068000000000014 +:048069000000000013 +:04806A000000000012 +:04806B000000000011 +:04806C000000000010 +:04806D00000000000F +:04806E00000000000E +:04806F00000000000D +:04807000000000000C +:04807100000000000B +:04807200000000000A +:048073000000000009 +:048074000000000008 +:048075000000000007 +:048076000000000006 +:048077000000000005 +:048078000000000004 +:048079000000000003 +:04807A000000000002 +:04807B000000000001 +:04807C000000000000 +:04807D0000000000FF +:04807E0000000000FE +:04807F0000000000FD +:0480800000000000FC +:0480810000000000FB +:0480820000000000FA +:0480830000000000F9 +:0480840000000000F8 +:0480850000000000F7 +:0480860000000000F6 +:0480870000000000F5 +:0480880000000000F4 +:0480890000000000F3 +:04808A0000000000F2 +:04808B0000000000F1 +:04808C0000000000F0 +:04808D0000000000EF +:04808E0000000000EE +:04808F0000000000ED +:0480900000000000EC +:0480910000000000EB +:0480920000000000EA +:0480930000000000E9 +:0480940000000000E8 +:0480950000000000E7 +:0480960000000000E6 +:0480970000000000E5 +:0480980000000000E4 +:0480990000000000E3 +:04809A0000000000E2 +:04809B0000000000E1 +:04809C0000000000E0 +:04809D0000000000DF +:04809E0000000000DE +:04809F0000000000DD +:0480A00000000000DC +:0480A10000000000DB +:0480A20000000000DA +:0480A30000000000D9 +:0480A40000000000D8 +:0480A50000000000D7 +:0480A60000000000D6 +:0480A70000000000D5 +:0480A80000000000D4 +:0480A90000000000D3 +:0480AA0000000000D2 +:0480AB0000000000D1 +:0480AC0000000000D0 +:0480AD0000000000CF +:0480AE0000000000CE +:0480AF0000000000CD +:0480B00000000000CC +:0480B10000000000CB +:0480B20000000000CA +:0480B30000000000C9 +:0480B40000000000C8 +:0480B50000000000C7 +:0480B60000000000C6 +:0480B70000000000C5 +:0480B80000000000C4 +:0480B90000000000C3 +:0480BA0000000000C2 +:0480BB0000000000C1 +:0480BC0000000000C0 +:0480BD0000000000BF +:0480BE0000000000BE +:0480BF0000000000BD +:0480C00000000000BC +:0480C10000000000BB +:0480C20000000000BA +:0480C30000000000B9 +:0480C40000000000B8 +:0480C50000000000B7 +:0480C60000000000B6 +:0480C70000000000B5 +:0480C80000000000B4 +:0480C90000000000B3 +:0480CA0000000000B2 +:0480CB0000000000B1 +:0480CC0000000000B0 +:0480CD0000000000AF +:0480CE0000000000AE +:0480CF0000000000AD +:0480D00000000000AC +:0480D10000000000AB +:0480D20000000000AA +:0480D30000000000A9 +:0480D40000000000A8 +:0480D50000000000A7 +:0480D60000000000A6 +:0480D70000000000A5 +:0480D80000000000A4 +:0480D90000000000A3 +:0480DA0000000000A2 +:0480DB0000000000A1 +:0480DC0000000000A0 +:0480DD00000000009F +:0480DE00000000009E +:0480DF00000000009D +:0480E000000000009C +:0480E100000000009B +:0480E200000000009A +:0480E3000000000099 +:0480E4000000000098 +:0480E5000000000097 +:0480E6000000000096 +:0480E7000000000095 +:0480E8000000000094 +:0480E9000000000093 +:0480EA000000000092 +:0480EB000000000091 +:0480EC000000000090 +:0480ED00000000008F +:0480EE00000000008E +:0480EF00000000008D +:0480F000000000008C +:0480F100000000008B +:0480F200000000008A +:0480F3000000000089 +:0480F4000000000088 +:0480F5000000000087 +:0480F6000000000086 +:0480F7000000000085 +:0480F8000000000084 +:0480F9000000000083 +:0480FA000000000082 +:0480FB000000000081 +:0480FC000000000080 +:0480FD00000000007F +:0480FE00000000007E +:0480FF00000000007D +:04810000000000007B +:04810100000000007A +:048102000000000079 +:048103000000000078 +:048104000000000077 +:048105000000000076 +:048106000000000075 +:048107000000000074 +:048108000000000073 +:048109000000000072 +:04810A000000000071 +:04810B000000000070 +:04810C00000000006F +:04810D00000000006E +:04810E00000000006D +:04810F00000000006C +:04811000000000006B +:04811100000000006A +:048112000000000069 +:048113000000000068 +:048114000000000067 +:048115000000000066 +:048116000000000065 +:048117000000000064 +:048118000000000063 +:048119000000000062 +:04811A000000000061 +:04811B000000000060 +:04811C00000000005F +:04811D00000000005E +:04811E00000000005D +:04811F00000000005C +:04812000000000005B +:04812100000000005A +:048122000000000059 +:048123000000000058 +:048124000000000057 +:048125000000000056 +:048126000000000055 +:048127000000000054 +:048128000000000053 +:048129000000000052 +:04812A000000000051 +:04812B000000000050 +:04812C00000000004F +:04812D00000000004E +:04812E00000000004D +:04812F00000000004C +:04813000000000004B +:04813100000000004A +:048132000000000049 +:048133000000000048 +:048134000000000047 +:048135000000000046 +:048136000000000045 +:048137000000000044 +:048138000000000043 +:048139000000000042 +:04813A000000000041 +:04813B000000000040 +:04813C00000000003F +:04813D00000000003E +:04813E00000000003D +:04813F00000000003C +:04814000000000003B +:04814100000000003A +:048142000000000039 +:048143000000000038 +:048144000000000037 +:048145000000000036 +:048146000000000035 +:048147000000000034 +:048148000000000033 +:048149000000000032 +:04814A000000000031 +:04814B000000000030 +:04814C00000000002F +:04814D00000000002E +:04814E00000000002D +:04814F00000000002C +:04815000000000002B +:04815100000000002A +:048152000000000029 +:048153000000000028 +:048154000000000027 +:048155000000000026 +:048156000000000025 +:048157000000000024 +:048158000000000023 +:048159000000000022 +:04815A000000000021 +:04815B000000000020 +:04815C00000000001F +:04815D00000000001E +:04815E00000000001D +:04815F00000000001C +:04816000000000001B +:04816100000000001A +:048162000000000019 +:048163000000000018 +:048164000000000017 +:048165000000000016 +:048166000000000015 +:048167000000000014 +:048168000000000013 +:048169000000000012 +:04816A000000000011 +:04816B000000000010 +:04816C00000000000F +:04816D00000000000E +:04816E00000000000D +:04816F00000000000C +:04817000000000000B +:04817100000000000A +:048172000000000009 +:048173000000000008 +:048174000000000007 +:048175000000000006 +:048176000000000005 +:048177000000000004 +:048178000000000003 +:048179000000000002 +:04817A000000000001 +:04817B000000000000 +:04817C0000000000FF +:04817D0000000000FE +:04817E0000000000FD +:04817F0000000000FC +:0481800000000000FB +:0481810000000000FA +:0481820000000000F9 +:0481830000000000F8 +:0481840000000000F7 +:0481850000000000F6 +:0481860000000000F5 +:0481870000000000F4 +:0481880000000000F3 +:0481890000000000F2 +:04818A0000000000F1 +:04818B0000000000F0 +:04818C0000000000EF +:04818D0000000000EE +:04818E0000000000ED +:04818F0000000000EC +:0481900000000000EB +:0481910000000000EA +:0481920000000000E9 +:0481930000000000E8 +:0481940000000000E7 +:0481950000000000E6 +:0481960000000000E5 +:0481970000000000E4 +:0481980000000000E3 +:0481990000000000E2 +:04819A0000000000E1 +:04819B0000000000E0 +:04819C0000000000DF +:04819D0000000000DE +:04819E0000000000DD +:04819F0000000000DC +:0481A00000000000DB +:0481A10000000000DA +:0481A20000000000D9 +:0481A30000000000D8 +:0481A40000000000D7 +:0481A50000000000D6 +:0481A60000000000D5 +:0481A70000000000D4 +:0481A80000000000D3 +:0481A90000000000D2 +:0481AA0000000000D1 +:0481AB0000000000D0 +:0481AC0000000000CF +:0481AD0000000000CE +:0481AE0000000000CD +:0481AF0000000000CC +:0481B00000000000CB +:0481B10000000000CA +:0481B20000000000C9 +:0481B30000000000C8 +:0481B40000000000C7 +:0481B50000000000C6 +:0481B60000000000C5 +:0481B70000000000C4 +:0481B80000000000C3 +:0481B90000000000C2 +:0481BA0000000000C1 +:0481BB0000000000C0 +:0481BC0000000000BF +:0481BD0000000000BE +:0481BE0000000000BD +:0481BF0000000000BC +:0481C00000000000BB +:0481C10000000000BA +:0481C20000000000B9 +:0481C30000000000B8 +:0481C40000000000B7 +:0481C50000000000B6 +:0481C60000000000B5 +:0481C70000000000B4 +:0481C80000000000B3 +:0481C90000000000B2 +:0481CA0000000000B1 +:0481CB0000000000B0 +:0481CC0000000000AF +:0481CD0000000000AE +:0481CE0000000000AD +:0481CF0000000000AC +:0481D00000000000AB +:0481D10000000000AA +:0481D20000000000A9 +:0481D30000000000A8 +:0481D40000000000A7 +:0481D50000000000A6 +:0481D60000000000A5 +:0481D70000000000A4 +:0481D80000000000A3 +:0481D90000000000A2 +:0481DA0000000000A1 +:0481DB0000000000A0 +:0481DC00000000009F +:0481DD00000000009E +:0481DE00000000009D +:0481DF00000000009C +:0481E000000000009B +:0481E100000000009A +:0481E2000000000099 +:0481E3000000000098 +:0481E4000000000097 +:0481E5000000000096 +:0481E6000000000095 +:0481E7000000000094 +:0481E8000000000093 +:0481E9000000000092 +:0481EA000000000091 +:0481EB000000000090 +:0481EC00000000008F +:0481ED00000000008E +:0481EE00000000008D +:0481EF00000000008C +:0481F000000000008B +:0481F100000000008A +:0481F2000000000089 +:0481F3000000000088 +:0481F4000000000087 +:0481F5000000000086 +:0481F6000000000085 +:0481F7000000000084 +:0481F8000000000083 +:0481F9000000000082 +:0481FA000000000081 +:0481FB000000000080 +:0481FC00000000007F +:0481FD00000000007E +:0481FE00000000007D +:0481FF00000000007C +:04820000000000007A +:048201000000000079 +:048202000000000078 +:048203000000000077 +:048204000000000076 +:048205000000000075 +:048206000000000074 +:048207000000000073 +:048208000000000072 +:048209000000000071 +:04820A000000000070 +:04820B00000000006F +:04820C00000000006E +:04820D00000000006D +:04820E00000000006C +:04820F00000000006B +:04821000000000006A +:048211000000000069 +:048212000000000068 +:048213000000000067 +:048214000000000066 +:048215000000000065 +:048216000000000064 +:048217000000000063 +:048218000000000062 +:048219000000000061 +:04821A000000000060 +:04821B00000000005F +:04821C00000000005E +:04821D00000000005D +:04821E00000000005C +:04821F00000000005B +:04822000000000005A +:048221000000000059 +:048222000000000058 +:048223000000000057 +:048224000000000056 +:048225000000000055 +:048226000000000054 +:048227000000000053 +:048228000000000052 +:048229000000000051 +:04822A000000000050 +:04822B00000000004F +:04822C00000000004E +:04822D00000000004D +:04822E00000000004C +:04822F00000000004B +:04823000000000004A +:048231000000000049 +:048232000000000048 +:048233000000000047 +:048234000000000046 +:048235000000000045 +:048236000000000044 +:048237000000000043 +:048238000000000042 +:048239000000000041 +:04823A000000000040 +:04823B00000000003F +:04823C00000000003E +:04823D00000000003D +:04823E00000000003C +:04823F00000000003B +:04824000000000003A +:048241000000000039 +:048242000000000038 +:048243000000000037 +:048244000000000036 +:048245000000000035 +:048246000000000034 +:048247000000000033 +:048248000000000032 +:048249000000000031 +:04824A000000000030 +:04824B00000000002F +:04824C00000000002E +:04824D00000000002D +:04824E00000000002C +:04824F00000000002B +:04825000000000002A +:048251000000000029 +:048252000000000028 +:048253000000000027 +:048254000000000026 +:048255000000000025 +:048256000000000024 +:048257000000000023 +:048258000000000022 +:048259000000000021 +:04825A000000000020 +:04825B00000000001F +:04825C00000000001E +:04825D00000000001D +:04825E00000000001C +:04825F00000000001B +:04826000000000001A +:048261000000000019 +:048262000000000018 +:048263000000000017 +:048264000000000016 +:048265000000000015 +:048266000000000014 +:048267000000000013 +:048268000000000012 +:048269000000000011 +:04826A000000000010 +:04826B00000000000F +:04826C00000000000E +:04826D00000000000D +:04826E00000000000C +:04826F00000000000B +:04827000000000000A +:048271000000000009 +:048272000000000008 +:048273000000000007 +:048274000000000006 +:048275000000000005 +:048276000000000004 +:048277000000000003 +:048278000000000002 +:048279000000000001 +:04827A000000000000 +:04827B0000000000FF +:04827C0000000000FE +:04827D0000000000FD +:04827E0000000000FC +:04827F0000000000FB +:0482800000000000FA +:0482810000000000F9 +:0482820000000000F8 +:0482830000000000F7 +:0482840000000000F6 +:0482850000000000F5 +:0482860000000000F4 +:0482870000000000F3 +:0482880000000000F2 +:0482890000000000F1 +:04828A0000000000F0 +:04828B0000000000EF +:04828C0000000000EE +:04828D0000000000ED +:04828E0000000000EC +:04828F0000000000EB +:0482900000000000EA +:0482910000000000E9 +:0482920000000000E8 +:0482930000000000E7 +:0482940000000000E6 +:0482950000000000E5 +:0482960000000000E4 +:0482970000000000E3 +:0482980000000000E2 +:0482990000000000E1 +:04829A0000000000E0 +:04829B0000000000DF +:04829C0000000000DE +:04829D0000000000DD +:04829E0000000000DC +:04829F0000000000DB +:0482A00000000000DA +:0482A10000000000D9 +:0482A20000000000D8 +:0482A30000000000D7 +:0482A40000000000D6 +:0482A50000000000D5 +:0482A60000000000D4 +:0482A70000000000D3 +:0482A80000000000D2 +:0482A90000000000D1 +:0482AA0000000000D0 +:0482AB0000000000CF +:0482AC0000000000CE +:0482AD0000000000CD +:0482AE0000000000CC +:0482AF0000000000CB +:0482B00000000000CA +:0482B10000000000C9 +:0482B20000000000C8 +:0482B30000000000C7 +:0482B40000000000C6 +:0482B50000000000C5 +:0482B60000000000C4 +:0482B70000000000C3 +:0482B80000000000C2 +:0482B90000000000C1 +:0482BA0000000000C0 +:0482BB0000000000BF +:0482BC0000000000BE +:0482BD0000000000BD +:0482BE0000000000BC +:0482BF0000000000BB +:0482C00000000000BA +:0482C10000000000B9 +:0482C20000000000B8 +:0482C30000000000B7 +:0482C40000000000B6 +:0482C50000000000B5 +:0482C60000000000B4 +:0482C70000000000B3 +:0482C80000000000B2 +:0482C90000000000B1 +:0482CA0000000000B0 +:0482CB0000000000AF +:0482CC0000000000AE +:0482CD0000000000AD +:0482CE0000000000AC +:0482CF0000000000AB +:0482D00000000000AA +:0482D10000000000A9 +:0482D20000000000A8 +:0482D30000000000A7 +:0482D40000000000A6 +:0482D50000000000A5 +:0482D60000000000A4 +:0482D70000000000A3 +:0482D80000000000A2 +:0482D90000000000A1 +:0482DA0000000000A0 +:0482DB00000000009F +:0482DC00000000009E +:0482DD00000000009D +:0482DE00000000009C +:0482DF00000000009B +:0482E000000000009A +:0482E1000000000099 +:0482E2000000000098 +:0482E3000000000097 +:0482E4000000000096 +:0482E5000000000095 +:0482E6000000000094 +:0482E7000000000093 +:0482E8000000000092 +:0482E9000000000091 +:0482EA000000000090 +:0482EB00000000008F +:0482EC00000000008E +:0482ED00000000008D +:0482EE00000000008C +:0482EF00000000008B +:0482F000000000008A +:0482F1000000000089 +:0482F2000000000088 +:0482F3000000000087 +:0482F4000000000086 +:0482F5000000000085 +:0482F6000000000084 +:0482F7000000000083 +:0482F8000000000082 +:0482F9000000000081 +:0482FA000000000080 +:0482FB00000000007F +:0482FC00000000007E +:0482FD00000000007D +:0482FE00000000007C +:0482FF00000000007B +:048300000000000079 +:048301000000000078 +:048302000000000077 +:048303000000000076 +:048304000000000075 +:048305000000000074 +:048306000000000073 +:048307000000000072 +:048308000000000071 +:048309000000000070 +:04830A00000000006F +:04830B00000000006E +:04830C00000000006D +:04830D00000000006C +:04830E00000000006B +:04830F00000000006A +:048310000000000069 +:048311000000000068 +:048312000000000067 +:048313000000000066 +:048314000000000065 +:048315000000000064 +:048316000000000063 +:048317000000000062 +:048318000000000061 +:048319000000000060 +:04831A00000000005F +:04831B00000000005E +:04831C00000000005D +:04831D00000000005C +:04831E00000000005B +:04831F00000000005A +:048320000000000059 +:048321000000000058 +:048322000000000057 +:048323000000000056 +:048324000000000055 +:048325000000000054 +:048326000000000053 +:048327000000000052 +:048328000000000051 +:048329000000000050 +:04832A00000000004F +:04832B00000000004E +:04832C00000000004D +:04832D00000000004C +:04832E00000000004B +:04832F00000000004A +:048330000000000049 +:048331000000000048 +:048332000000000047 +:048333000000000046 +:048334000000000045 +:048335000000000044 +:048336000000000043 +:048337000000000042 +:048338000000000041 +:048339000000000040 +:04833A00000000003F +:04833B00000000003E +:04833C00000000003D +:04833D00000000003C +:04833E00000000003B +:04833F00000000003A +:048340000000000039 +:048341000000000038 +:048342000000000037 +:048343000000000036 +:048344000000000035 +:048345000000000034 +:048346000000000033 +:048347000000000032 +:048348000000000031 +:048349000000000030 +:04834A00000000002F +:04834B00000000002E +:04834C00000000002D +:04834D00000000002C +:04834E00000000002B +:04834F00000000002A +:048350000000000029 +:048351000000000028 +:048352000000000027 +:048353000000000026 +:048354000000000025 +:048355000000000024 +:048356000000000023 +:048357000000000022 +:048358000000000021 +:048359000000000020 +:04835A00000000001F +:04835B00000000001E +:04835C00000000001D +:04835D00000000001C +:04835E00000000001B +:04835F00000000001A +:048360000000000019 +:048361000000000018 +:048362000000000017 +:048363000000000016 +:048364000000000015 +:048365000000000014 +:048366000000000013 +:048367000000000012 +:048368000000000011 +:048369000000000010 +:04836A00000000000F +:04836B00000000000E +:04836C00000000000D +:04836D00000000000C +:04836E00000000000B +:04836F00000000000A +:048370000000000009 +:048371000000000008 +:048372000000000007 +:048373000000000006 +:048374000000000005 +:048375000000000004 +:048376000000000003 +:048377000000000002 +:048378000000000001 +:048379000000000000 +:04837A0000000000FF +:04837B0000000000FE +:04837C0000000000FD +:04837D0000000000FC +:04837E0000000000FB +:04837F0000000000FA +:0483800000000000F9 +:0483810000000000F8 +:0483820000000000F7 +:0483830000000000F6 +:0483840000000000F5 +:0483850000000000F4 +:0483860000000000F3 +:0483870000000000F2 +:0483880000000000F1 +:0483890000000000F0 +:04838A0000000000EF +:04838B0000000000EE +:04838C0000000000ED +:04838D0000000000EC +:04838E0000000000EB +:04838F0000000000EA +:0483900000000000E9 +:0483910000000000E8 +:0483920000000000E7 +:0483930000000000E6 +:0483940000000000E5 +:0483950000000000E4 +:0483960000000000E3 +:0483970000000000E2 +:0483980000000000E1 +:0483990000000000E0 +:04839A0000000000DF +:04839B0000000000DE +:04839C0000000000DD +:04839D0000000000DC +:04839E0000000000DB +:04839F0000000000DA +:0483A00000000000D9 +:0483A10000000000D8 +:0483A20000000000D7 +:0483A30000000000D6 +:0483A40000000000D5 +:0483A50000000000D4 +:0483A60000000000D3 +:0483A70000000000D2 +:0483A80000000000D1 +:0483A90000000000D0 +:0483AA0000000000CF +:0483AB0000000000CE +:0483AC0000000000CD +:0483AD0000000000CC +:0483AE0000000000CB +:0483AF0000000000CA +:0483B00000000000C9 +:0483B10000000000C8 +:0483B20000000000C7 +:0483B30000000000C6 +:0483B40000000000C5 +:0483B50000000000C4 +:0483B60000000000C3 +:0483B70000000000C2 +:0483B80000000000C1 +:0483B90000000000C0 +:0483BA0000000000BF +:0483BB0000000000BE +:0483BC0000000000BD +:0483BD0000000000BC +:0483BE0000000000BB +:0483BF0000000000BA +:0483C00000000000B9 +:0483C10000000000B8 +:0483C20000000000B7 +:0483C30000000000B6 +:0483C40000000000B5 +:0483C50000000000B4 +:0483C60000000000B3 +:0483C70000000000B2 +:0483C80000000000B1 +:0483C90000000000B0 +:0483CA0000000000AF +:0483CB0000000000AE +:0483CC0000000000AD +:0483CD0000000000AC +:0483CE0000000000AB +:0483CF0000000000AA +:0483D00000000000A9 +:0483D10000000000A8 +:0483D20000000000A7 +:0483D30000000000A6 +:0483D40000000000A5 +:0483D50000000000A4 +:0483D60000000000A3 +:0483D70000000000A2 +:0483D80000000000A1 +:0483D90000000000A0 +:0483DA00000000009F +:0483DB00000000009E +:0483DC00000000009D +:0483DD00000000009C +:0483DE00000000009B +:0483DF00000000009A +:0483E0000000000099 +:0483E1000000000098 +:0483E2000000000097 +:0483E3000000000096 +:0483E4000000000095 +:0483E5000000000094 +:0483E6000000000093 +:0483E7000000000092 +:0483E8000000000091 +:0483E9000000000090 +:0483EA00000000008F +:0483EB00000000008E +:0483EC00000000008D +:0483ED00000000008C +:0483EE00000000008B +:0483EF00000000008A +:0483F0000000000089 +:0483F1000000000088 +:0483F2000000000087 +:0483F3000000000086 +:0483F4000000000085 +:0483F5000000000084 +:0483F6000000000083 +:0483F7000000000082 +:0483F8000000000081 +:0483F9000000000080 +:0483FA00000000007F +:0483FB00000000007E +:0483FC00000000007D +:0483FD00000000007C +:0483FE00000000007B +:0483FF00000000007A +:048400000000000078 +:048401000000000077 +:048402000000000076 +:048403000000000075 +:048404000000000074 +:048405000000000073 +:048406000000000072 +:048407000000000071 +:048408000000000070 +:04840900000000006F +:04840A00000000006E +:04840B00000000006D +:04840C00000000006C +:04840D00000000006B +:04840E00000000006A +:04840F000000000069 +:048410000000000068 +:048411000000000067 +:048412000000000066 +:048413000000000065 +:048414000000000064 +:048415000000000063 +:048416000000000062 +:048417000000000061 +:048418000000000060 +:04841900000000005F +:04841A00000000005E +:04841B00000000005D +:04841C00000000005C +:04841D00000000005B +:04841E00000000005A +:04841F000000000059 +:048420000000000058 +:048421000000000057 +:048422000000000056 +:048423000000000055 +:048424000000000054 +:048425000000000053 +:048426000000000052 +:048427000000000051 +:048428000000000050 +:04842900000000004F +:04842A00000000004E +:04842B00000000004D +:04842C00000000004C +:04842D00000000004B +:04842E00000000004A +:04842F000000000049 +:048430000000000048 +:048431000000000047 +:048432000000000046 +:048433000000000045 +:048434000000000044 +:048435000000000043 +:048436000000000042 +:048437000000000041 +:048438000000000040 +:04843900000000003F +:04843A00000000003E +:04843B00000000003D +:04843C00000000003C +:04843D00000000003B +:04843E00000000003A +:04843F000000000039 +:048440000000000038 +:048441000000000037 +:048442000000000036 +:048443000000000035 +:048444000000000034 +:048445000000000033 +:048446000000000032 +:048447000000000031 +:048448000000000030 +:04844900000000002F +:04844A00000000002E +:04844B00000000002D +:04844C00000000002C +:04844D00000000002B +:04844E00000000002A +:04844F000000000029 +:048450000000000028 +:048451000000000027 +:048452000000000026 +:048453000000000025 +:048454000000000024 +:048455000000000023 +:048456000000000022 +:048457000000000021 +:048458000000000020 +:04845900000000001F +:04845A00000000001E +:04845B00000000001D +:04845C00000000001C +:04845D00000000001B +:04845E00000000001A +:04845F000000000019 +:048460000000000018 +:048461000000000017 +:048462000000000016 +:048463000000000015 +:048464000000000014 +:048465000000000013 +:048466000000000012 +:048467000000000011 +:048468000000000010 +:04846900000000000F +:04846A00000000000E +:04846B00000000000D +:04846C00000000000C +:04846D00000000000B +:04846E00000000000A +:04846F000000000009 +:048470000000000008 +:048471000000000007 +:048472000000000006 +:048473000000000005 +:048474000000000004 +:048475000000000003 +:048476000000000002 +:048477000000000001 +:048478000000000000 +:0484790000000000FF +:04847A0000000000FE +:04847B0000000000FD +:04847C0000000000FC +:04847D0000000000FB +:04847E0000000000FA +:04847F0000000000F9 +:0484800000000000F8 +:0484810000000000F7 +:0484820000000000F6 +:0484830000000000F5 +:0484840000000000F4 +:0484850000000000F3 +:0484860000000000F2 +:0484870000000000F1 +:0484880000000000F0 +:0484890000000000EF +:04848A0000000000EE +:04848B0000000000ED +:04848C0000000000EC +:04848D0000000000EB +:04848E0000000000EA +:04848F0000000000E9 +:0484900000000000E8 +:0484910000000000E7 +:0484920000000000E6 +:0484930000000000E5 +:0484940000000000E4 +:0484950000000000E3 +:0484960000000000E2 +:0484970000000000E1 +:0484980000000000E0 +:0484990000000000DF +:04849A0000000000DE +:04849B0000000000DD +:04849C0000000000DC +:04849D0000000000DB +:04849E0000000000DA +:04849F0000000000D9 +:0484A00000000000D8 +:0484A10000000000D7 +:0484A20000000000D6 +:0484A30000000000D5 +:0484A40000000000D4 +:0484A50000000000D3 +:0484A60000000000D2 +:0484A70000000000D1 +:0484A80000000000D0 +:0484A90000000000CF +:0484AA0000000000CE +:0484AB0000000000CD +:0484AC0000000000CC +:0484AD0000000000CB +:0484AE0000000000CA +:0484AF0000000000C9 +:0484B00000000000C8 +:0484B10000000000C7 +:0484B20000000000C6 +:0484B30000000000C5 +:0484B40000000000C4 +:0484B50000000000C3 +:0484B60000000000C2 +:0484B70000000000C1 +:0484B80000000000C0 +:0484B90000000000BF +:0484BA0000000000BE +:0484BB0000000000BD +:0484BC0000000000BC +:0484BD0000000000BB +:0484BE0000000000BA +:0484BF0000000000B9 +:0484C00000000000B8 +:0484C10000000000B7 +:0484C20000000000B6 +:0484C30000000000B5 +:0484C40000000000B4 +:0484C50000000000B3 +:0484C60000000000B2 +:0484C70000000000B1 +:0484C80000000000B0 +:0484C90000000000AF +:0484CA0000000000AE +:0484CB0000000000AD +:0484CC0000000000AC +:0484CD0000000000AB +:0484CE0000000000AA +:0484CF0000000000A9 +:0484D00000000000A8 +:0484D10000000000A7 +:0484D20000000000A6 +:0484D30000000000A5 +:0484D40000000000A4 +:0484D50000000000A3 +:0484D60000000000A2 +:0484D70000000000A1 +:0484D80000000000A0 +:0484D900000000009F +:0484DA00000000009E +:0484DB00000000009D +:0484DC00000000009C +:0484DD00000000009B +:0484DE00000000009A +:0484DF000000000099 +:0484E0000000000098 +:0484E1000000000097 +:0484E2000000000096 +:0484E3000000000095 +:0484E4000000000094 +:0484E5000000000093 +:0484E6000000000092 +:0484E7000000000091 +:0484E8000000000090 +:0484E900000000008F +:0484EA00000000008E +:0484EB00000000008D +:0484EC00000000008C +:0484ED00000000008B +:0484EE00000000008A +:0484EF000000000089 +:0484F0000000000088 +:0484F1000000000087 +:0484F2000000000086 +:0484F3000000000085 +:0484F4000000000084 +:0484F5000000000083 +:0484F6000000000082 +:0484F7000000000081 +:0484F8000000000080 +:0484F900000000007F +:0484FA00000000007E +:0484FB00000000007D +:0484FC00000000007C +:0484FD00000000007B +:0484FE00000000007A +:0484FF000000000079 +:048500000000000077 +:048501000000000076 +:048502000000000075 +:048503000000000074 +:048504000000000073 +:048505000000000072 +:048506000000000071 +:048507000000000070 +:04850800000000006F +:04850900000000006E +:04850A00000000006D +:04850B00000000006C +:04850C00000000006B +:04850D00000000006A +:04850E000000000069 +:04850F000000000068 +:048510000000000067 +:048511000000000066 +:048512000000000065 +:048513000000000064 +:048514000000000063 +:048515000000000062 +:048516000000000061 +:048517000000000060 +:04851800000000005F +:04851900000000005E +:04851A00000000005D +:04851B00000000005C +:04851C00000000005B +:04851D00000000005A +:04851E000000000059 +:04851F000000000058 +:048520000000000057 +:048521000000000056 +:048522000000000055 +:048523000000000054 +:048524000000000053 +:048525000000000052 +:048526000000000051 +:048527000000000050 +:04852800000000004F +:04852900000000004E +:04852A00000000004D +:04852B00000000004C +:04852C00000000004B +:04852D00000000004A +:04852E000000000049 +:04852F000000000048 +:048530000000000047 +:048531000000000046 +:048532000000000045 +:048533000000000044 +:048534000000000043 +:048535000000000042 +:048536000000000041 +:048537000000000040 +:04853800000000003F +:04853900000000003E +:04853A00000000003D +:04853B00000000003C +:04853C00000000003B +:04853D00000000003A +:04853E000000000039 +:04853F000000000038 +:048540000000000037 +:048541000000000036 +:048542000000000035 +:048543000000000034 +:048544000000000033 +:048545000000000032 +:048546000000000031 +:048547000000000030 +:04854800000000002F +:04854900000000002E +:04854A00000000002D +:04854B00000000002C +:04854C00000000002B +:04854D00000000002A +:04854E000000000029 +:04854F000000000028 +:048550000000000027 +:048551000000000026 +:048552000000000025 +:048553000000000024 +:048554000000000023 +:048555000000000022 +:048556000000000021 +:048557000000000020 +:04855800000000001F +:04855900000000001E +:04855A00000000001D +:04855B00000000001C +:04855C00000000001B +:04855D00000000001A +:04855E000000000019 +:04855F000000000018 +:048560000000000017 +:048561000000000016 +:048562000000000015 +:048563000000000014 +:048564000000000013 +:048565000000000012 +:048566000000000011 +:048567000000000010 +:04856800000000000F +:04856900000000000E +:04856A00000000000D +:04856B00000000000C +:04856C00000000000B +:04856D00000000000A +:04856E000000000009 +:04856F000000000008 +:048570000000000007 +:048571000000000006 +:048572000000000005 +:048573000000000004 +:048574000000000003 +:048575000000000002 +:048576000000000001 +:048577000000000000 +:0485780000000000FF +:0485790000000000FE +:04857A0000000000FD +:04857B0000000000FC +:04857C0000000000FB +:04857D0000000000FA +:04857E0000000000F9 +:04857F0000000000F8 +:0485800000000000F7 +:0485810000000000F6 +:0485820000000000F5 +:0485830000000000F4 +:0485840000000000F3 +:0485850000000000F2 +:0485860000000000F1 +:0485870000000000F0 +:0485880000000000EF +:0485890000000000EE +:04858A0000000000ED +:04858B0000000000EC +:04858C0000000000EB +:04858D0000000000EA +:04858E0000000000E9 +:04858F0000000000E8 +:0485900000000000E7 +:0485910000000000E6 +:0485920000000000E5 +:0485930000000000E4 +:0485940000000000E3 +:0485950000000000E2 +:0485960000000000E1 +:0485970000000000E0 +:0485980000000000DF +:0485990000000000DE +:04859A0000000000DD +:04859B0000000000DC +:04859C0000000000DB +:04859D0000000000DA +:04859E0000000000D9 +:04859F0000000000D8 +:0485A00000000000D7 +:0485A10000000000D6 +:0485A20000000000D5 +:0485A30000000000D4 +:0485A40000000000D3 +:0485A50000000000D2 +:0485A60000000000D1 +:0485A70000000000D0 +:0485A80000000000CF +:0485A90000000000CE +:0485AA0000000000CD +:0485AB0000000000CC +:0485AC0000000000CB +:0485AD0000000000CA +:0485AE0000000000C9 +:0485AF0000000000C8 +:0485B00000000000C7 +:0485B10000000000C6 +:0485B20000000000C5 +:0485B30000000000C4 +:0485B40000000000C3 +:0485B50000000000C2 +:0485B60000000000C1 +:0485B70000000000C0 +:0485B80000000000BF +:0485B90000000000BE +:0485BA0000000000BD +:0485BB0000000000BC +:0485BC0000000000BB +:0485BD0000000000BA +:0485BE0000000000B9 +:0485BF0000000000B8 +:0485C00000000000B7 +:0485C10000000000B6 +:0485C20000000000B5 +:0485C30000000000B4 +:0485C40000000000B3 +:0485C50000000000B2 +:0485C60000000000B1 +:0485C70000000000B0 +:0485C80000000000AF +:0485C90000000000AE +:0485CA0000000000AD +:0485CB0000000000AC +:0485CC0000000000AB +:0485CD0000000000AA +:0485CE0000000000A9 +:0485CF0000000000A8 +:0485D00000000000A7 +:0485D10000000000A6 +:0485D20000000000A5 +:0485D30000000000A4 +:0485D40000000000A3 +:0485D50000000000A2 +:0485D60000000000A1 +:0485D70000000000A0 +:0485D800000000009F +:0485D900000000009E +:0485DA00000000009D +:0485DB00000000009C +:0485DC00000000009B +:0485DD00000000009A +:0485DE000000000099 +:0485DF000000000098 +:0485E0000000000097 +:0485E1000000000096 +:0485E2000000000095 +:0485E3000000000094 +:0485E4000000000093 +:0485E5000000000092 +:0485E6000000000091 +:0485E7000000000090 +:0485E800000000008F +:0485E900000000008E +:0485EA00000000008D +:0485EB00000000008C +:0485EC00000000008B +:0485ED00000000008A +:0485EE000000000089 +:0485EF000000000088 +:0485F0000000000087 +:0485F1000000000086 +:0485F2000000000085 +:0485F3000000000084 +:0485F4000000000083 +:0485F5000000000082 +:0485F6000000000081 +:0485F7000000000080 +:0485F800000000007F +:0485F900000000007E +:0485FA00000000007D +:0485FB00000000007C +:0485FC00000000007B +:0485FD00000000007A +:0485FE000000000079 +:0485FF000000000078 +:048600000000000076 +:048601000000000075 +:048602000000000074 +:048603000000000073 +:048604000000000072 +:048605000000000071 +:048606000000000070 +:04860700000000006F +:04860800000000006E +:04860900000000006D +:04860A00000000006C +:04860B00000000006B +:04860C00000000006A +:04860D000000000069 +:04860E000000000068 +:04860F000000000067 +:048610000000000066 +:048611000000000065 +:048612000000000064 +:048613000000000063 +:048614000000000062 +:048615000000000061 +:048616000000000060 +:04861700000000005F +:04861800000000005E +:04861900000000005D +:04861A00000000005C +:04861B00000000005B +:04861C00000000005A +:04861D000000000059 +:04861E000000000058 +:04861F000000000057 +:048620000000000056 +:048621000000000055 +:048622000000000054 +:048623000000000053 +:048624000000000052 +:048625000000000051 +:048626000000000050 +:04862700000000004F +:04862800000000004E +:04862900000000004D +:04862A00000000004C +:04862B00000000004B +:04862C00000000004A +:04862D000000000049 +:04862E000000000048 +:04862F000000000047 +:048630000000000046 +:048631000000000045 +:048632000000000044 +:048633000000000043 +:048634000000000042 +:048635000000000041 +:048636000000000040 +:04863700000000003F +:04863800000000003E +:04863900000000003D +:04863A00000000003C +:04863B00000000003B +:04863C00000000003A +:04863D000000000039 +:04863E000000000038 +:04863F000000000037 +:048640000000000036 +:048641000000000035 +:048642000000000034 +:048643000000000033 +:048644000000000032 +:048645000000000031 +:048646000000000030 +:04864700000000002F +:04864800000000002E +:04864900000000002D +:04864A00000000002C +:04864B00000000002B +:04864C00000000002A +:04864D000000000029 +:04864E000000000028 +:04864F000000000027 +:048650000000000026 +:048651000000000025 +:048652000000000024 +:048653000000000023 +:048654000000000022 +:048655000000000021 +:048656000000000020 +:04865700000000001F +:04865800000000001E +:04865900000000001D +:04865A00000000001C +:04865B00000000001B +:04865C00000000001A +:04865D000000000019 +:04865E000000000018 +:04865F000000000017 +:048660000000000016 +:048661000000000015 +:048662000000000014 +:048663000000000013 +:048664000000000012 +:048665000000000011 +:048666000000000010 +:04866700000000000F +:04866800000000000E +:04866900000000000D +:04866A00000000000C +:04866B00000000000B +:04866C00000000000A +:04866D000000000009 +:04866E000000000008 +:04866F000000000007 +:048670000000000006 +:048671000000000005 +:048672000000000004 +:048673000000000003 +:048674000000000002 +:048675000000000001 +:048676000000000000 +:0486770000000000FF +:0486780000000000FE +:0486790000000000FD +:04867A0000000000FC +:04867B0000000000FB +:04867C0000000000FA +:04867D0000000000F9 +:04867E0000000000F8 +:04867F0000000000F7 +:0486800000000000F6 +:0486810000000000F5 +:0486820000000000F4 +:0486830000000000F3 +:0486840000000000F2 +:0486850000000000F1 +:0486860000000000F0 +:0486870000000000EF +:0486880000000000EE +:0486890000000000ED +:04868A0000000000EC +:04868B0000000000EB +:04868C0000000000EA +:04868D0000000000E9 +:04868E0000000000E8 +:04868F0000000000E7 +:0486900000000000E6 +:0486910000000000E5 +:0486920000000000E4 +:0486930000000000E3 +:0486940000000000E2 +:0486950000000000E1 +:0486960000000000E0 +:0486970000000000DF +:0486980000000000DE +:0486990000000000DD +:04869A0000000000DC +:04869B0000000000DB +:04869C0000000000DA +:04869D0000000000D9 +:04869E0000000000D8 +:04869F0000000000D7 +:0486A00000000000D6 +:0486A10000000000D5 +:0486A20000000000D4 +:0486A30000000000D3 +:0486A40000000000D2 +:0486A50000000000D1 +:0486A60000000000D0 +:0486A70000000000CF +:0486A80000000000CE +:0486A90000000000CD +:0486AA0000000000CC +:0486AB0000000000CB +:0486AC0000000000CA +:0486AD0000000000C9 +:0486AE0000000000C8 +:0486AF0000000000C7 +:0486B00000000000C6 +:0486B10000000000C5 +:0486B20000000000C4 +:0486B30000000000C3 +:0486B40000000000C2 +:0486B50000000000C1 +:0486B60000000000C0 +:0486B70000000000BF +:0486B80000000000BE +:0486B90000000000BD +:0486BA0000000000BC +:0486BB0000000000BB +:0486BC0000000000BA +:0486BD0000000000B9 +:0486BE0000000000B8 +:0486BF0000000000B7 +:0486C00000000000B6 +:0486C10000000000B5 +:0486C20000000000B4 +:0486C30000000000B3 +:0486C40000000000B2 +:0486C50000000000B1 +:0486C60000000000B0 +:0486C70000000000AF +:0486C80000000000AE +:0486C90000000000AD +:0486CA0000000000AC +:0486CB0000000000AB +:0486CC0000000000AA +:0486CD0000000000A9 +:0486CE0000000000A8 +:0486CF0000000000A7 +:0486D00000000000A6 +:0486D10000000000A5 +:0486D20000000000A4 +:0486D30000000000A3 +:0486D40000000000A2 +:0486D50000000000A1 +:0486D60000000000A0 +:0486D700000000009F +:0486D800000000009E +:0486D900000000009D +:0486DA00000000009C +:0486DB00000000009B +:0486DC00000000009A +:0486DD000000000099 +:0486DE000000000098 +:0486DF000000000097 +:0486E0000000000096 +:0486E1000000000095 +:0486E2000000000094 +:0486E3000000000093 +:0486E4000000000092 +:0486E5000000000091 +:0486E6000000000090 +:0486E700000000008F +:0486E800000000008E +:0486E900000000008D +:0486EA00000000008C +:0486EB00000000008B +:0486EC00000000008A +:0486ED000000000089 +:0486EE000000000088 +:0486EF000000000087 +:0486F0000000000086 +:0486F1000000000085 +:0486F2000000000084 +:0486F3000000000083 +:0486F4000000000082 +:0486F5000000000081 +:0486F6000000000080 +:0486F700000000007F +:0486F800000000007E +:0486F900000000007D +:0486FA00000000007C +:0486FB00000000007B +:0486FC00000000007A +:0486FD000000000079 +:0486FE000000000078 +:0486FF000000000077 +:048700000000000075 +:048701000000000074 +:048702000000000073 +:048703000000000072 +:048704000000000071 +:048705000000000070 +:04870600000000006F +:04870700000000006E +:04870800000000006D +:04870900000000006C +:04870A00000000006B +:04870B00000000006A +:04870C000000000069 +:04870D000000000068 +:04870E000000000067 +:04870F000000000066 +:048710000000000065 +:048711000000000064 +:048712000000000063 +:048713000000000062 +:048714000000000061 +:048715000000000060 +:04871600000000005F +:04871700000000005E +:04871800000000005D +:04871900000000005C +:04871A00000000005B +:04871B00000000005A +:04871C000000000059 +:04871D000000000058 +:04871E000000000057 +:04871F000000000056 +:048720000000000055 +:048721000000000054 +:048722000000000053 +:048723000000000052 +:048724000000000051 +:048725000000000050 +:04872600000000004F +:04872700000000004E +:04872800000000004D +:04872900000000004C +:04872A00000000004B +:04872B00000000004A +:04872C000000000049 +:04872D000000000048 +:04872E000000000047 +:04872F000000000046 +:048730000000000045 +:048731000000000044 +:048732000000000043 +:048733000000000042 +:048734000000000041 +:048735000000000040 +:04873600000000003F +:04873700000000003E +:04873800000000003D +:04873900000000003C +:04873A00000000003B +:04873B00000000003A +:04873C000000000039 +:04873D000000000038 +:04873E000000000037 +:04873F000000000036 +:048740000000000035 +:048741000000000034 +:048742000000000033 +:048743000000000032 +:048744000000000031 +:048745000000000030 +:04874600000000002F +:04874700000000002E +:04874800000000002D +:04874900000000002C +:04874A00000000002B +:04874B00000000002A +:04874C000000000029 +:04874D000000000028 +:04874E000000000027 +:04874F000000000026 +:048750000000000025 +:048751000000000024 +:048752000000000023 +:048753000000000022 +:048754000000000021 +:048755000000000020 +:04875600000000001F +:04875700000000001E +:04875800000000001D +:04875900000000001C +:04875A00000000001B +:04875B00000000001A +:04875C000000000019 +:04875D000000000018 +:04875E000000000017 +:04875F000000000016 +:048760000000000015 +:048761000000000014 +:048762000000000013 +:048763000000000012 +:048764000000000011 +:048765000000000010 +:04876600000000000F +:04876700000000000E +:04876800000000000D +:04876900000000000C +:04876A00000000000B +:04876B00000000000A +:04876C000000000009 +:04876D000000000008 +:04876E000000000007 +:04876F000000000006 +:048770000000000005 +:048771000000000004 +:048772000000000003 +:048773000000000002 +:048774000000000001 +:048775000000000000 +:0487760000000000FF +:0487770000000000FE +:0487780000000000FD +:0487790000000000FC +:04877A0000000000FB +:04877B0000000000FA +:04877C0000000000F9 +:04877D0000000000F8 +:04877E0000000000F7 +:04877F0000000000F6 +:0487800000000000F5 +:0487810000000000F4 +:0487820000000000F3 +:0487830000000000F2 +:0487840000000000F1 +:0487850000000000F0 +:0487860000000000EF +:0487870000000000EE +:0487880000000000ED +:0487890000000000EC +:04878A0000000000EB +:04878B0000000000EA +:04878C0000000000E9 +:04878D0000000000E8 +:04878E0000000000E7 +:04878F0000000000E6 +:0487900000000000E5 +:0487910000000000E4 +:0487920000000000E3 +:0487930000000000E2 +:0487940000000000E1 +:0487950000000000E0 +:0487960000000000DF +:0487970000000000DE +:0487980000000000DD +:0487990000000000DC +:04879A0000000000DB +:04879B0000000000DA +:04879C0000000000D9 +:04879D0000000000D8 +:04879E0000000000D7 +:04879F0000000000D6 +:0487A00000000000D5 +:0487A10000000000D4 +:0487A20000000000D3 +:0487A30000000000D2 +:0487A40000000000D1 +:0487A50000000000D0 +:0487A60000000000CF +:0487A70000000000CE +:0487A80000000000CD +:0487A90000000000CC +:0487AA0000000000CB +:0487AB0000000000CA +:0487AC0000000000C9 +:0487AD0000000000C8 +:0487AE0000000000C7 +:0487AF0000000000C6 +:0487B00000000000C5 +:0487B10000000000C4 +:0487B20000000000C3 +:0487B30000000000C2 +:0487B40000000000C1 +:0487B50000000000C0 +:0487B60000000000BF +:0487B70000000000BE +:0487B80000000000BD +:0487B90000000000BC +:0487BA0000000000BB +:0487BB0000000000BA +:0487BC0000000000B9 +:0487BD0000000000B8 +:0487BE0000000000B7 +:0487BF0000000000B6 +:0487C00000000000B5 +:0487C10000000000B4 +:0487C20000000000B3 +:0487C30000000000B2 +:0487C40000000000B1 +:0487C50000000000B0 +:0487C60000000000AF +:0487C70000000000AE +:0487C80000000000AD +:0487C90000000000AC +:0487CA0000000000AB +:0487CB0000000000AA +:0487CC0000000000A9 +:0487CD0000000000A8 +:0487CE0000000000A7 +:0487CF0000000000A6 +:0487D00000000000A5 +:0487D10000000000A4 +:0487D20000000000A3 +:0487D30000000000A2 +:0487D40000000000A1 +:0487D50000000000A0 +:0487D600000000009F +:0487D700000000009E +:0487D800000000009D +:0487D900000000009C +:0487DA00000000009B +:0487DB00000000009A +:0487DC000000000099 +:0487DD000000000098 +:0487DE000000000097 +:0487DF000000000096 +:0487E0000000000095 +:0487E1000000000094 +:0487E2000000000093 +:0487E3000000000092 +:0487E4000000000091 +:0487E5000000000090 +:0487E600000000008F +:0487E700000000008E +:0487E800000000008D +:0487E900000000008C +:0487EA00000000008B +:0487EB00000000008A +:0487EC000000000089 +:0487ED000000000088 +:0487EE000000000087 +:0487EF000000000086 +:0487F0000000000085 +:0487F1000000000084 +:0487F2000000000083 +:0487F3000000000082 +:0487F4000000000081 +:0487F5000000000080 +:0487F600000000007F +:0487F700000000007E +:0487F800000000007D +:0487F900000000007C +:0487FA00000000007B +:0487FB00000000007A +:0487FC000000000079 +:0487FD000000000078 +:0487FE000000000077 +:0487FF000000000076 +:048800000000000074 +:048801000000000073 +:048802000000000072 +:048803000000000071 +:048804000000000070 +:04880500000000006F +:04880600000000006E +:04880700000000006D +:04880800000000006C +:04880900000000006B +:04880A00000000006A +:04880B000000000069 +:04880C000000000068 +:04880D000000000067 +:04880E000000000066 +:04880F000000000065 +:048810000000000064 +:048811000000000063 +:048812000000000062 +:048813000000000061 +:048814000000000060 +:04881500000000005F +:04881600000000005E +:04881700000000005D +:04881800000000005C +:04881900000000005B +:04881A00000000005A +:04881B000000000059 +:04881C000000000058 +:04881D000000000057 +:04881E000000000056 +:04881F000000000055 +:048820000000000054 +:048821000000000053 +:048822000000000052 +:048823000000000051 +:048824000000000050 +:04882500000000004F +:04882600000000004E +:04882700000000004D +:04882800000000004C +:04882900000000004B +:04882A00000000004A +:04882B000000000049 +:04882C000000000048 +:04882D000000000047 +:04882E000000000046 +:04882F000000000045 +:048830000000000044 +:048831000000000043 +:048832000000000042 +:048833000000000041 +:048834000000000040 +:04883500000000003F +:04883600000000003E +:04883700000000003D +:04883800000000003C +:04883900000000003B +:04883A00000000003A +:04883B000000000039 +:04883C000000000038 +:04883D000000000037 +:04883E000000000036 +:04883F000000000035 +:048840000000000034 +:048841000000000033 +:048842000000000032 +:048843000000000031 +:048844000000000030 +:04884500000000002F +:04884600000000002E +:04884700000000002D +:04884800000000002C +:04884900000000002B +:04884A00000000002A +:04884B000000000029 +:04884C000000000028 +:04884D000000000027 +:04884E000000000026 +:04884F000000000025 +:048850000000000024 +:048851000000000023 +:048852000000000022 +:048853000000000021 +:048854000000000020 +:04885500000000001F +:04885600000000001E +:04885700000000001D +:04885800000000001C +:04885900000000001B +:04885A00000000001A +:04885B000000000019 +:04885C000000000018 +:04885D000000000017 +:04885E000000000016 +:04885F000000000015 +:048860000000000014 +:048861000000000013 +:048862000000000012 +:048863000000000011 +:048864000000000010 +:04886500000000000F +:04886600000000000E +:04886700000000000D +:04886800000000000C +:04886900000000000B +:04886A00000000000A +:04886B000000000009 +:04886C000000000008 +:04886D000000000007 +:04886E000000000006 +:04886F000000000005 +:048870000000000004 +:048871000000000003 +:048872000000000002 +:048873000000000001 +:048874000000000000 +:0488750000000000FF +:0488760000000000FE +:0488770000000000FD +:0488780000000000FC +:0488790000000000FB +:04887A0000000000FA +:04887B0000000000F9 +:04887C0000000000F8 +:04887D0000000000F7 +:04887E0000000000F6 +:04887F0000000000F5 +:0488800000000000F4 +:0488810000000000F3 +:0488820000000000F2 +:0488830000000000F1 +:0488840000000000F0 +:0488850000000000EF +:0488860000000000EE +:0488870000000000ED +:0488880000000000EC +:0488890000000000EB +:04888A0000000000EA +:04888B0000000000E9 +:04888C0000000000E8 +:04888D0000000000E7 +:04888E0000000000E6 +:04888F0000000000E5 +:0488900000000000E4 +:0488910000000000E3 +:0488920000000000E2 +:0488930000000000E1 +:0488940000000000E0 +:0488950000000000DF +:0488960000000000DE +:0488970000000000DD +:0488980000000000DC +:0488990000000000DB +:04889A0000000000DA +:04889B0000000000D9 +:04889C0000000000D8 +:04889D0000000000D7 +:04889E0000000000D6 +:04889F0000000000D5 +:0488A00000000000D4 +:0488A10000000000D3 +:0488A20000000000D2 +:0488A30000000000D1 +:0488A40000000000D0 +:0488A50000000000CF +:0488A60000000000CE +:0488A70000000000CD +:0488A80000000000CC +:0488A90000000000CB +:0488AA0000000000CA +:0488AB0000000000C9 +:0488AC0000000000C8 +:0488AD0000000000C7 +:0488AE0000000000C6 +:0488AF0000000000C5 +:0488B00000000000C4 +:0488B10000000000C3 +:0488B20000000000C2 +:0488B30000000000C1 +:0488B40000000000C0 +:0488B50000000000BF +:0488B60000000000BE +:0488B70000000000BD +:0488B80000000000BC +:0488B90000000000BB +:0488BA0000000000BA +:0488BB0000000000B9 +:0488BC0000000000B8 +:0488BD0000000000B7 +:0488BE0000000000B6 +:0488BF0000000000B5 +:0488C00000000000B4 +:0488C10000000000B3 +:0488C20000000000B2 +:0488C30000000000B1 +:0488C40000000000B0 +:0488C50000000000AF +:0488C60000000000AE +:0488C70000000000AD +:0488C80000000000AC +:0488C90000000000AB +:0488CA0000000000AA +:0488CB0000000000A9 +:0488CC0000000000A8 +:0488CD0000000000A7 +:0488CE0000000000A6 +:0488CF0000000000A5 +:0488D00000000000A4 +:0488D10000000000A3 +:0488D20000000000A2 +:0488D30000000000A1 +:0488D40000000000A0 +:0488D500000000009F +:0488D600000000009E +:0488D700000000009D +:0488D800000000009C +:0488D900000000009B +:0488DA00000000009A +:0488DB000000000099 +:0488DC000000000098 +:0488DD000000000097 +:0488DE000000000096 +:0488DF000000000095 +:0488E0000000000094 +:0488E1000000000093 +:0488E2000000000092 +:0488E3000000000091 +:0488E4000000000090 +:0488E500000000008F +:0488E600000000008E +:0488E700000000008D +:0488E800000000008C +:0488E900000000008B +:0488EA00000000008A +:0488EB000000000089 +:0488EC000000000088 +:0488ED000000000087 +:0488EE000000000086 +:0488EF000000000085 +:0488F0000000000084 +:0488F1000000000083 +:0488F2000000000082 +:0488F3000000000081 +:0488F4000000000080 +:0488F500000000007F +:0488F600000000007E +:0488F700000000007D +:0488F800000000007C +:0488F900000000007B +:0488FA00000000007A +:0488FB000000000079 +:0488FC000000000078 +:0488FD000000000077 +:0488FE000000000076 +:0488FF000000000075 +:048900000000000073 +:048901000000000072 +:048902000000000071 +:048903000000000070 +:04890400000000006F +:04890500000000006E +:04890600000000006D +:04890700000000006C +:04890800000000006B +:04890900000000006A +:04890A000000000069 +:04890B000000000068 +:04890C000000000067 +:04890D000000000066 +:04890E000000000065 +:04890F000000000064 +:048910000000000063 +:048911000000000062 +:048912000000000061 +:048913000000000060 +:04891400000000005F +:04891500000000005E +:04891600000000005D +:04891700000000005C +:04891800000000005B +:04891900000000005A +:04891A000000000059 +:04891B000000000058 +:04891C000000000057 +:04891D000000000056 +:04891E000000000055 +:04891F000000000054 +:048920000000000053 +:048921000000000052 +:048922000000000051 +:048923000000000050 +:04892400000000004F +:04892500000000004E +:04892600000000004D +:04892700000000004C +:04892800000000004B +:04892900000000004A +:04892A000000000049 +:04892B000000000048 +:04892C000000000047 +:04892D000000000046 +:04892E000000000045 +:04892F000000000044 +:048930000000000043 +:048931000000000042 +:048932000000000041 +:048933000000000040 +:04893400000000003F +:04893500000000003E +:04893600000000003D +:04893700000000003C +:04893800000000003B +:04893900000000003A +:04893A000000000039 +:04893B000000000038 +:04893C000000000037 +:04893D000000000036 +:04893E000000000035 +:04893F000000000034 +:048940000000000033 +:048941000000000032 +:048942000000000031 +:048943000000000030 +:04894400000000002F +:04894500000000002E +:04894600000000002D +:04894700000000002C +:04894800000000002B +:04894900000000002A +:04894A000000000029 +:04894B000000000028 +:04894C000000000027 +:04894D000000000026 +:04894E000000000025 +:04894F000000000024 +:048950000000000023 +:048951000000000022 +:048952000000000021 +:048953000000000020 +:04895400000000001F +:04895500000000001E +:04895600000000001D +:04895700000000001C +:04895800000000001B +:04895900000000001A +:04895A000000000019 +:04895B000000000018 +:04895C000000000017 +:04895D000000000016 +:04895E000000000015 +:04895F000000000014 +:048960000000000013 +:048961000000000012 +:048962000000000011 +:048963000000000010 +:04896400000000000F +:04896500000000000E +:04896600000000000D +:04896700000000000C +:04896800000000000B +:04896900000000000A +:04896A000000000009 +:04896B000000000008 +:04896C000000000007 +:04896D000000000006 +:04896E000000000005 +:04896F000000000004 +:048970000000000003 +:048971000000000002 +:048972000000000001 +:048973000000000000 +:0489740000000000FF +:0489750000000000FE +:0489760000000000FD +:0489770000000000FC +:0489780000000000FB +:0489790000000000FA +:04897A0000000000F9 +:04897B0000000000F8 +:04897C0000000000F7 +:04897D0000000000F6 +:04897E0000000000F5 +:04897F0000000000F4 +:0489800000000000F3 +:0489810000000000F2 +:0489820000000000F1 +:0489830000000000F0 +:0489840000000000EF +:0489850000000000EE +:0489860000000000ED +:0489870000000000EC +:0489880000000000EB +:0489890000000000EA +:04898A0000000000E9 +:04898B0000000000E8 +:04898C0000000000E7 +:04898D0000000000E6 +:04898E0000000000E5 +:04898F0000000000E4 +:0489900000000000E3 +:0489910000000000E2 +:0489920000000000E1 +:0489930000000000E0 +:0489940000000000DF +:0489950000000000DE +:0489960000000000DD +:0489970000000000DC +:0489980000000000DB +:0489990000000000DA +:04899A0000000000D9 +:04899B0000000000D8 +:04899C0000000000D7 +:04899D0000000000D6 +:04899E0000000000D5 +:04899F0000000000D4 +:0489A00000000000D3 +:0489A10000000000D2 +:0489A20000000000D1 +:0489A30000000000D0 +:0489A40000000000CF +:0489A50000000000CE +:0489A60000000000CD +:0489A70000000000CC +:0489A80000000000CB +:0489A90000000000CA +:0489AA0000000000C9 +:0489AB0000000000C8 +:0489AC0000000000C7 +:0489AD0000000000C6 +:0489AE0000000000C5 +:0489AF0000000000C4 +:0489B00000000000C3 +:0489B10000000000C2 +:0489B20000000000C1 +:0489B30000000000C0 +:0489B40000000000BF +:0489B50000000000BE +:0489B60000000000BD +:0489B70000000000BC +:0489B80000000000BB +:0489B90000000000BA +:0489BA0000000000B9 +:0489BB0000000000B8 +:0489BC0000000000B7 +:0489BD0000000000B6 +:0489BE0000000000B5 +:0489BF0000000000B4 +:0489C00000000000B3 +:0489C10000000000B2 +:0489C20000000000B1 +:0489C30000000000B0 +:0489C40000000000AF +:0489C50000000000AE +:0489C60000000000AD +:0489C70000000000AC +:0489C80000000000AB +:0489C90000000000AA +:0489CA0000000000A9 +:0489CB0000000000A8 +:0489CC0000000000A7 +:0489CD0000000000A6 +:0489CE0000000000A5 +:0489CF0000000000A4 +:0489D00000000000A3 +:0489D10000000000A2 +:0489D20000000000A1 +:0489D30000000000A0 +:0489D400000000009F +:0489D500000000009E +:0489D600000000009D +:0489D700000000009C +:0489D800000000009B +:0489D900000000009A +:0489DA000000000099 +:0489DB000000000098 +:0489DC000000000097 +:0489DD000000000096 +:0489DE000000000095 +:0489DF000000000094 +:0489E0000000000093 +:0489E1000000000092 +:0489E2000000000091 +:0489E3000000000090 +:0489E400000000008F +:0489E500000000008E +:0489E600000000008D +:0489E700000000008C +:0489E800000000008B +:0489E900000000008A +:0489EA000000000089 +:0489EB000000000088 +:0489EC000000000087 +:0489ED000000000086 +:0489EE000000000085 +:0489EF000000000084 +:0489F0000000000083 +:0489F1000000000082 +:0489F2000000000081 +:0489F3000000000080 +:0489F400000000007F +:0489F500000000007E +:0489F600000000007D +:0489F700000000007C +:0489F800000000007B +:0489F900000000007A +:0489FA000000000079 +:0489FB000000000078 +:0489FC000000000077 +:0489FD000000000076 +:0489FE000000000075 +:0489FF000000000074 +:048A00000000000072 +:048A01000000000071 +:048A02000000000070 +:048A0300000000006F +:048A0400000000006E +:048A0500000000006D +:048A0600000000006C +:048A0700000000006B +:048A0800000000006A +:048A09000000000069 +:048A0A000000000068 +:048A0B000000000067 +:048A0C000000000066 +:048A0D000000000065 +:048A0E000000000064 +:048A0F000000000063 +:048A10000000000062 +:048A11000000000061 +:048A12000000000060 +:048A1300000000005F +:048A1400000000005E +:048A1500000000005D +:048A1600000000005C +:048A1700000000005B +:048A1800000000005A +:048A19000000000059 +:048A1A000000000058 +:048A1B000000000057 +:048A1C000000000056 +:048A1D000000000055 +:048A1E000000000054 +:048A1F000000000053 +:048A20000000000052 +:048A21000000000051 +:048A22000000000050 +:048A2300000000004F +:048A2400000000004E +:048A2500000000004D +:048A2600000000004C +:048A2700000000004B +:048A2800000000004A +:048A29000000000049 +:048A2A000000000048 +:048A2B000000000047 +:048A2C000000000046 +:048A2D000000000045 +:048A2E000000000044 +:048A2F000000000043 +:048A30000000000042 +:048A31000000000041 +:048A32000000000040 +:048A3300000000003F +:048A3400000000003E +:048A3500000000003D +:048A3600000000003C +:048A3700000000003B +:048A3800000000003A +:048A39000000000039 +:048A3A000000000038 +:048A3B000000000037 +:048A3C000000000036 +:048A3D000000000035 +:048A3E000000000034 +:048A3F000000000033 +:048A40000000000032 +:048A41000000000031 +:048A42000000000030 +:048A4300000000002F +:048A4400000000002E +:048A4500000000002D +:048A4600000000002C +:048A4700000000002B +:048A4800000000002A +:048A49000000000029 +:048A4A000000000028 +:048A4B000000000027 +:048A4C000000000026 +:048A4D000000000025 +:048A4E000000000024 +:048A4F000000000023 +:048A50000000000022 +:048A51000000000021 +:048A52000000000020 +:048A5300000000001F +:048A5400000000001E +:048A5500000000001D +:048A5600000000001C +:048A5700000000001B +:048A5800000000001A +:048A59000000000019 +:048A5A000000000018 +:048A5B000000000017 +:048A5C000000000016 +:048A5D000000000015 +:048A5E000000000014 +:048A5F000000000013 +:048A60000000000012 +:048A61000000000011 +:048A62000000000010 +:048A6300000000000F +:048A6400000000000E +:048A6500000000000D +:048A6600000000000C +:048A6700000000000B +:048A6800000000000A +:048A69000000000009 +:048A6A000000000008 +:048A6B000000000007 +:048A6C000000000006 +:048A6D000000000005 +:048A6E000000000004 +:048A6F000000000003 +:048A70000000000002 +:048A71000000000001 +:048A72000000000000 +:048A730000000000FF +:048A740000000000FE +:048A750000000000FD +:048A760000000000FC +:048A770000000000FB +:048A780000000000FA +:048A790000000000F9 +:048A7A0000000000F8 +:048A7B0000000000F7 +:048A7C0000000000F6 +:048A7D0000000000F5 +:048A7E0000000000F4 +:048A7F0000000000F3 +:048A800000000000F2 +:048A810000000000F1 +:048A820000000000F0 +:048A830000000000EF +:048A840000000000EE +:048A850000000000ED +:048A860000000000EC +:048A870000000000EB +:048A880000000000EA +:048A890000000000E9 +:048A8A0000000000E8 +:048A8B0000000000E7 +:048A8C0000000000E6 +:048A8D0000000000E5 +:048A8E0000000000E4 +:048A8F0000000000E3 +:048A900000000000E2 +:048A910000000000E1 +:048A920000000000E0 +:048A930000000000DF +:048A940000000000DE +:048A950000000000DD +:048A960000000000DC +:048A970000000000DB +:048A980000000000DA +:048A990000000000D9 +:048A9A0000000000D8 +:048A9B0000000000D7 +:048A9C0000000000D6 +:048A9D0000000000D5 +:048A9E0000000000D4 +:048A9F0000000000D3 +:048AA00000000000D2 +:048AA10000000000D1 +:048AA20000000000D0 +:048AA30000000000CF +:048AA40000000000CE +:048AA50000000000CD +:048AA60000000000CC +:048AA70000000000CB +:048AA80000000000CA +:048AA90000000000C9 +:048AAA0000000000C8 +:048AAB0000000000C7 +:048AAC0000000000C6 +:048AAD0000000000C5 +:048AAE0000000000C4 +:048AAF0000000000C3 +:048AB00000000000C2 +:048AB10000000000C1 +:048AB20000000000C0 +:048AB30000000000BF +:048AB40000000000BE +:048AB50000000000BD +:048AB60000000000BC +:048AB70000000000BB +:048AB80000000000BA +:048AB90000000000B9 +:048ABA0000000000B8 +:048ABB0000000000B7 +:048ABC0000000000B6 +:048ABD0000000000B5 +:048ABE0000000000B4 +:048ABF0000000000B3 +:048AC00000000000B2 +:048AC10000000000B1 +:048AC20000000000B0 +:048AC30000000000AF +:048AC40000000000AE +:048AC50000000000AD +:048AC60000000000AC +:048AC70000000000AB +:048AC80000000000AA +:048AC90000000000A9 +:048ACA0000000000A8 +:048ACB0000000000A7 +:048ACC0000000000A6 +:048ACD0000000000A5 +:048ACE0000000000A4 +:048ACF0000000000A3 +:048AD00000000000A2 +:048AD10000000000A1 +:048AD20000000000A0 +:048AD300000000009F +:048AD400000000009E +:048AD500000000009D +:048AD600000000009C +:048AD700000000009B +:048AD800000000009A +:048AD9000000000099 +:048ADA000000000098 +:048ADB000000000097 +:048ADC000000000096 +:048ADD000000000095 +:048ADE000000000094 +:048ADF000000000093 +:048AE0000000000092 +:048AE1000000000091 +:048AE2000000000090 +:048AE300000000008F +:048AE400000000008E +:048AE500000000008D +:048AE600000000008C +:048AE700000000008B +:048AE800000000008A +:048AE9000000000089 +:048AEA000000000088 +:048AEB000000000087 +:048AEC000000000086 +:048AED000000000085 +:048AEE000000000084 +:048AEF000000000083 +:048AF0000000000082 +:048AF1000000000081 +:048AF2000000000080 +:048AF300000000007F +:048AF400000000007E +:048AF500000000007D +:048AF600000000007C +:048AF700000000007B +:048AF800000000007A +:048AF9000000000079 +:048AFA000000000078 +:048AFB000000000077 +:048AFC000000000076 +:048AFD000000000075 +:048AFE000000000074 +:048AFF000000000073 +:048B00000000000071 +:048B01000000000070 +:048B0200000000006F +:048B0300000000006E +:048B0400000000006D +:048B0500000000006C +:048B0600000000006B +:048B0700000000006A +:048B08000000000069 +:048B09000000000068 +:048B0A000000000067 +:048B0B000000000066 +:048B0C000000000065 +:048B0D000000000064 +:048B0E000000000063 +:048B0F000000000062 +:048B10000000000061 +:048B11000000000060 +:048B1200000000005F +:048B1300000000005E +:048B1400000000005D +:048B1500000000005C +:048B1600000000005B +:048B1700000000005A +:048B18000000000059 +:048B19000000000058 +:048B1A000000000057 +:048B1B000000000056 +:048B1C000000000055 +:048B1D000000000054 +:048B1E000000000053 +:048B1F000000000052 +:048B20000000000051 +:048B21000000000050 +:048B2200000000004F +:048B2300000000004E +:048B2400000000004D +:048B2500000000004C +:048B2600000000004B +:048B2700000000004A +:048B28000000000049 +:048B29000000000048 +:048B2A000000000047 +:048B2B000000000046 +:048B2C000000000045 +:048B2D000000000044 +:048B2E000000000043 +:048B2F000000000042 +:048B30000000000041 +:048B31000000000040 +:048B3200000000003F +:048B3300000000003E +:048B3400000000003D +:048B3500000000003C +:048B3600000000003B +:048B3700000000003A +:048B38000000000039 +:048B39000000000038 +:048B3A000000000037 +:048B3B000000000036 +:048B3C000000000035 +:048B3D000000000034 +:048B3E000000000033 +:048B3F000000000032 +:048B40000000000031 +:048B41000000000030 +:048B4200000000002F +:048B4300000000002E +:048B4400000000002D +:048B4500000000002C +:048B4600000000002B +:048B4700000000002A +:048B48000000000029 +:048B49000000000028 +:048B4A000000000027 +:048B4B000000000026 +:048B4C000000000025 +:048B4D000000000024 +:048B4E000000000023 +:048B4F000000000022 +:048B50000000000021 +:048B51000000000020 +:048B5200000000001F +:048B5300000000001E +:048B5400000000001D +:048B5500000000001C +:048B5600000000001B +:048B5700000000001A +:048B58000000000019 +:048B59000000000018 +:048B5A000000000017 +:048B5B000000000016 +:048B5C000000000015 +:048B5D000000000014 +:048B5E000000000013 +:048B5F000000000012 +:048B60000000000011 +:048B61000000000010 +:048B6200000000000F +:048B6300000000000E +:048B6400000000000D +:048B6500000000000C +:048B6600000000000B +:048B6700000000000A +:048B68000000000009 +:048B69000000000008 +:048B6A000000000007 +:048B6B000000000006 +:048B6C000000000005 +:048B6D000000000004 +:048B6E000000000003 +:048B6F000000000002 +:048B70000000000001 +:048B71000000000000 +:048B720000000000FF +:048B730000000000FE +:048B740000000000FD +:048B750000000000FC +:048B760000000000FB +:048B770000000000FA +:048B780000000000F9 +:048B790000000000F8 +:048B7A0000000000F7 +:048B7B0000000000F6 +:048B7C0000000000F5 +:048B7D0000000000F4 +:048B7E0000000000F3 +:048B7F0000000000F2 +:048B800000000000F1 +:048B810000000000F0 +:048B820000000000EF +:048B830000000000EE +:048B840000000000ED +:048B850000000000EC +:048B860000000000EB +:048B870000000000EA +:048B880000000000E9 +:048B890000000000E8 +:048B8A0000000000E7 +:048B8B0000000000E6 +:048B8C0000000000E5 +:048B8D0000000000E4 +:048B8E0000000000E3 +:048B8F0000000000E2 +:048B900000000000E1 +:048B910000000000E0 +:048B920000000000DF +:048B930000000000DE +:048B940000000000DD +:048B950000000000DC +:048B960000000000DB +:048B970000000000DA +:048B980000000000D9 +:048B990000000000D8 +:048B9A0000000000D7 +:048B9B0000000000D6 +:048B9C0000000000D5 +:048B9D0000000000D4 +:048B9E0000000000D3 +:048B9F0000000000D2 +:048BA00000000000D1 +:048BA10000000000D0 +:048BA20000000000CF +:048BA30000000000CE +:048BA40000000000CD +:048BA50000000000CC +:048BA60000000000CB +:048BA70000000000CA +:048BA80000000000C9 +:048BA90000000000C8 +:048BAA0000000000C7 +:048BAB0000000000C6 +:048BAC0000000000C5 +:048BAD0000000000C4 +:048BAE0000000000C3 +:048BAF0000000000C2 +:048BB00000000000C1 +:048BB10000000000C0 +:048BB20000000000BF +:048BB30000000000BE +:048BB40000000000BD +:048BB50000000000BC +:048BB60000000000BB +:048BB70000000000BA +:048BB80000000000B9 +:048BB90000000000B8 +:048BBA0000000000B7 +:048BBB0000000000B6 +:048BBC0000000000B5 +:048BBD0000000000B4 +:048BBE0000000000B3 +:048BBF0000000000B2 +:048BC00000000000B1 +:048BC10000000000B0 +:048BC20000000000AF +:048BC30000000000AE +:048BC40000000000AD +:048BC50000000000AC +:048BC60000000000AB +:048BC70000000000AA +:048BC80000000000A9 +:048BC90000000000A8 +:048BCA0000000000A7 +:048BCB0000000000A6 +:048BCC0000000000A5 +:048BCD0000000000A4 +:048BCE0000000000A3 +:048BCF0000000000A2 +:048BD00000000000A1 +:048BD10000000000A0 +:048BD200000000009F +:048BD300000000009E +:048BD400000000009D +:048BD500000000009C +:048BD600000000009B +:048BD700000000009A +:048BD8000000000099 +:048BD9000000000098 +:048BDA000000000097 +:048BDB000000000096 +:048BDC000000000095 +:048BDD000000000094 +:048BDE000000000093 +:048BDF000000000092 +:048BE0000000000091 +:048BE1000000000090 +:048BE200000000008F +:048BE300000000008E +:048BE400000000008D +:048BE500000000008C +:048BE600000000008B +:048BE700000000008A +:048BE8000000000089 +:048BE9000000000088 +:048BEA000000000087 +:048BEB000000000086 +:048BEC000000000085 +:048BED000000000084 +:048BEE000000000083 +:048BEF000000000082 +:048BF0000000000081 +:048BF1000000000080 +:048BF200000000007F +:048BF300000000007E +:048BF400000000007D +:048BF500000000007C +:048BF600000000007B +:048BF700000000007A +:048BF8000000000079 +:048BF9000000000078 +:048BFA000000000077 +:048BFB000000000076 +:048BFC000000000075 +:048BFD000000000074 +:048BFE000000000073 +:048BFF000000000072 +:048C00000000000070 +:048C0100000000006F +:048C0200000000006E +:048C0300000000006D +:048C0400000000006C +:048C0500000000006B +:048C0600000000006A +:048C07000000000069 +:048C08000000000068 +:048C09000000000067 +:048C0A000000000066 +:048C0B000000000065 +:048C0C000000000064 +:048C0D000000000063 +:048C0E000000000062 +:048C0F000000000061 +:048C10000000000060 +:048C1100000000005F +:048C1200000000005E +:048C1300000000005D +:048C1400000000005C +:048C1500000000005B +:048C1600000000005A +:048C17000000000059 +:048C18000000000058 +:048C19000000000057 +:048C1A000000000056 +:048C1B000000000055 +:048C1C000000000054 +:048C1D000000000053 +:048C1E000000000052 +:048C1F000000000051 +:048C20000000000050 +:048C2100000000004F +:048C2200000000004E +:048C2300000000004D +:048C2400000000004C +:048C2500000000004B +:048C2600000000004A +:048C27000000000049 +:048C28000000000048 +:048C29000000000047 +:048C2A000000000046 +:048C2B000000000045 +:048C2C000000000044 +:048C2D000000000043 +:048C2E000000000042 +:048C2F000000000041 +:048C30000000000040 +:048C3100000000003F +:048C3200000000003E +:048C3300000000003D +:048C3400000000003C +:048C3500000000003B +:048C3600000000003A +:048C37000000000039 +:048C38000000000038 +:048C39000000000037 +:048C3A000000000036 +:048C3B000000000035 +:048C3C000000000034 +:048C3D000000000033 +:048C3E000000000032 +:048C3F000000000031 +:048C40000000000030 +:048C4100000000002F +:048C4200000000002E +:048C4300000000002D +:048C4400000000002C +:048C4500000000002B +:048C4600000000002A +:048C47000000000029 +:048C48000000000028 +:048C49000000000027 +:048C4A000000000026 +:048C4B000000000025 +:048C4C000000000024 +:048C4D000000000023 +:048C4E000000000022 +:048C4F000000000021 +:048C50000000000020 +:048C5100000000001F +:048C5200000000001E +:048C5300000000001D +:048C5400000000001C +:048C5500000000001B +:048C5600000000001A +:048C57000000000019 +:048C58000000000018 +:048C59000000000017 +:048C5A000000000016 +:048C5B000000000015 +:048C5C000000000014 +:048C5D000000000013 +:048C5E000000000012 +:048C5F000000000011 +:048C60000000000010 +:048C6100000000000F +:048C6200000000000E +:048C6300000000000D +:048C6400000000000C +:048C6500000000000B +:048C6600000000000A +:048C67000000000009 +:048C68000000000008 +:048C69000000000007 +:048C6A000000000006 +:048C6B000000000005 +:048C6C000000000004 +:048C6D000000000003 +:048C6E000000000002 +:048C6F000000000001 +:048C70000000000000 +:048C710000000000FF +:048C720000000000FE +:048C730000000000FD +:048C740000000000FC +:048C750000000000FB +:048C760000000000FA +:048C770000000000F9 +:048C780000000000F8 +:048C790000000000F7 +:048C7A0000000000F6 +:048C7B0000000000F5 +:048C7C0000000000F4 +:048C7D0000000000F3 +:048C7E0000000000F2 +:048C7F0000000000F1 +:048C800000000000F0 +:048C810000000000EF +:048C820000000000EE +:048C830000000000ED +:048C840000000000EC +:048C850000000000EB +:048C860000000000EA +:048C870000000000E9 +:048C880000000000E8 +:048C890000000000E7 +:048C8A0000000000E6 +:048C8B0000000000E5 +:048C8C0000000000E4 +:048C8D0000000000E3 +:048C8E0000000000E2 +:048C8F0000000000E1 +:048C900000000000E0 +:048C910000000000DF +:048C920000000000DE +:048C930000000000DD +:048C940000000000DC +:048C950000000000DB +:048C960000000000DA +:048C970000000000D9 +:048C980000000000D8 +:048C990000000000D7 +:048C9A0000000000D6 +:048C9B0000000000D5 +:048C9C0000000000D4 +:048C9D0000000000D3 +:048C9E0000000000D2 +:048C9F0000000000D1 +:048CA00000000000D0 +:048CA10000000000CF +:048CA20000000000CE +:048CA30000000000CD +:048CA40000000000CC +:048CA50000000000CB +:048CA60000000000CA +:048CA70000000000C9 +:048CA80000000000C8 +:048CA90000000000C7 +:048CAA0000000000C6 +:048CAB0000000000C5 +:048CAC0000000000C4 +:048CAD0000000000C3 +:048CAE0000000000C2 +:048CAF0000000000C1 +:048CB00000000000C0 +:048CB10000000000BF +:048CB20000000000BE +:048CB30000000000BD +:048CB40000000000BC +:048CB50000000000BB +:048CB60000000000BA +:048CB70000000000B9 +:048CB80000000000B8 +:048CB90000000000B7 +:048CBA0000000000B6 +:048CBB0000000000B5 +:048CBC0000000000B4 +:048CBD0000000000B3 +:048CBE0000000000B2 +:048CBF0000000000B1 +:048CC00000000000B0 +:048CC10000000000AF +:048CC20000000000AE +:048CC30000000000AD +:048CC40000000000AC +:048CC50000000000AB +:048CC60000000000AA +:048CC70000000000A9 +:048CC80000000000A8 +:048CC90000000000A7 +:048CCA0000000000A6 +:048CCB0000000000A5 +:048CCC0000000000A4 +:048CCD0000000000A3 +:048CCE0000000000A2 +:048CCF0000000000A1 +:048CD00000000000A0 +:048CD100000000009F +:048CD200000000009E +:048CD300000000009D +:048CD400000000009C +:048CD500000000009B +:048CD600000000009A +:048CD7000000000099 +:048CD8000000000098 +:048CD9000000000097 +:048CDA000000000096 +:048CDB000000000095 +:048CDC000000000094 +:048CDD000000000093 +:048CDE000000000092 +:048CDF000000000091 +:048CE0000000000090 +:048CE100000000008F +:048CE200000000008E +:048CE300000000008D +:048CE400000000008C +:048CE500000000008B +:048CE600000000008A +:048CE7000000000089 +:048CE8000000000088 +:048CE9000000000087 +:048CEA000000000086 +:048CEB000000000085 +:048CEC000000000084 +:048CED000000000083 +:048CEE000000000082 +:048CEF000000000081 +:048CF0000000000080 +:048CF100000000007F +:048CF200000000007E +:048CF300000000007D +:048CF400000000007C +:048CF500000000007B +:048CF600000000007A +:048CF7000000000079 +:048CF8000000000078 +:048CF9000000000077 +:048CFA000000000076 +:048CFB000000000075 +:048CFC000000000074 +:048CFD000000000073 +:048CFE000000000072 +:048CFF000000000071 +:048D0000000000006F +:048D0100000000006E +:048D0200000000006D +:048D0300000000006C +:048D0400000000006B +:048D0500000000006A +:048D06000000000069 +:048D07000000000068 +:048D08000000000067 +:048D09000000000066 +:048D0A000000000065 +:048D0B000000000064 +:048D0C000000000063 +:048D0D000000000062 +:048D0E000000000061 +:048D0F000000000060 +:048D1000000000005F +:048D1100000000005E +:048D1200000000005D +:048D1300000000005C +:048D1400000000005B +:048D1500000000005A +:048D16000000000059 +:048D17000000000058 +:048D18000000000057 +:048D19000000000056 +:048D1A000000000055 +:048D1B000000000054 +:048D1C000000000053 +:048D1D000000000052 +:048D1E000000000051 +:048D1F000000000050 +:048D2000000000004F +:048D2100000000004E +:048D2200000000004D +:048D2300000000004C +:048D2400000000004B +:048D2500000000004A +:048D26000000000049 +:048D27000000000048 +:048D28000000000047 +:048D29000000000046 +:048D2A000000000045 +:048D2B000000000044 +:048D2C000000000043 +:048D2D000000000042 +:048D2E000000000041 +:048D2F000000000040 +:048D3000000000003F +:048D3100000000003E +:048D3200000000003D +:048D3300000000003C +:048D3400000000003B +:048D3500000000003A +:048D36000000000039 +:048D37000000000038 +:048D38000000000037 +:048D39000000000036 +:048D3A000000000035 +:048D3B000000000034 +:048D3C000000000033 +:048D3D000000000032 +:048D3E000000000031 +:048D3F000000000030 +:048D4000000000002F +:048D4100000000002E +:048D4200000000002D +:048D4300000000002C +:048D4400000000002B +:048D4500000000002A +:048D46000000000029 +:048D47000000000028 +:048D48000000000027 +:048D49000000000026 +:048D4A000000000025 +:048D4B000000000024 +:048D4C000000000023 +:048D4D000000000022 +:048D4E000000000021 +:048D4F000000000020 +:048D5000000000001F +:048D5100000000001E +:048D5200000000001D +:048D5300000000001C +:048D5400000000001B +:048D5500000000001A +:048D56000000000019 +:048D57000000000018 +:048D58000000000017 +:048D59000000000016 +:048D5A000000000015 +:048D5B000000000014 +:048D5C000000000013 +:048D5D000000000012 +:048D5E000000000011 +:048D5F000000000010 +:048D6000000000000F +:048D6100000000000E +:048D6200000000000D +:048D6300000000000C +:048D6400000000000B +:048D6500000000000A +:048D66000000000009 +:048D67000000000008 +:048D68000000000007 +:048D69000000000006 +:048D6A000000000005 +:048D6B000000000004 +:048D6C000000000003 +:048D6D000000000002 +:048D6E000000000001 +:048D6F000000000000 +:048D700000000000FF +:048D710000000000FE +:048D720000000000FD +:048D730000000000FC +:048D740000000000FB +:048D750000000000FA +:048D760000000000F9 +:048D770000000000F8 +:048D780000000000F7 +:048D790000000000F6 +:048D7A0000000000F5 +:048D7B0000000000F4 +:048D7C0000000000F3 +:048D7D0000000000F2 +:048D7E0000000000F1 +:048D7F0000000000F0 +:048D800000000000EF +:048D810000000000EE +:048D820000000000ED +:048D830000000000EC +:048D840000000000EB +:048D850000000000EA +:048D860000000000E9 +:048D870000000000E8 +:048D880000000000E7 +:048D890000000000E6 +:048D8A0000000000E5 +:048D8B0000000000E4 +:048D8C0000000000E3 +:048D8D0000000000E2 +:048D8E0000000000E1 +:048D8F0000000000E0 +:048D900000000000DF +:048D910000000000DE +:048D920000000000DD +:048D930000000000DC +:048D940000000000DB +:048D950000000000DA +:048D960000000000D9 +:048D970000000000D8 +:048D980000000000D7 +:048D990000000000D6 +:048D9A0000000000D5 +:048D9B0000000000D4 +:048D9C0000000000D3 +:048D9D0000000000D2 +:048D9E0000000000D1 +:048D9F0000000000D0 +:048DA00000000000CF +:048DA10000000000CE +:048DA20000000000CD +:048DA30000000000CC +:048DA40000000000CB +:048DA50000000000CA +:048DA60000000000C9 +:048DA70000000000C8 +:048DA80000000000C7 +:048DA90000000000C6 +:048DAA0000000000C5 +:048DAB0000000000C4 +:048DAC0000000000C3 +:048DAD0000000000C2 +:048DAE0000000000C1 +:048DAF0000000000C0 +:048DB00000000000BF +:048DB10000000000BE +:048DB20000000000BD +:048DB30000000000BC +:048DB40000000000BB +:048DB50000000000BA +:048DB60000000000B9 +:048DB70000000000B8 +:048DB80000000000B7 +:048DB90000000000B6 +:048DBA0000000000B5 +:048DBB0000000000B4 +:048DBC0000000000B3 +:048DBD0000000000B2 +:048DBE0000000000B1 +:048DBF0000000000B0 +:048DC00000000000AF +:048DC10000000000AE +:048DC20000000000AD +:048DC30000000000AC +:048DC40000000000AB +:048DC50000000000AA +:048DC60000000000A9 +:048DC70000000000A8 +:048DC80000000000A7 +:048DC90000000000A6 +:048DCA0000000000A5 +:048DCB0000000000A4 +:048DCC0000000000A3 +:048DCD0000000000A2 +:048DCE0000000000A1 +:048DCF0000000000A0 +:048DD000000000009F +:048DD100000000009E +:048DD200000000009D +:048DD300000000009C +:048DD400000000009B +:048DD500000000009A +:048DD6000000000099 +:048DD7000000000098 +:048DD8000000000097 +:048DD9000000000096 +:048DDA000000000095 +:048DDB000000000094 +:048DDC000000000093 +:048DDD000000000092 +:048DDE000000000091 +:048DDF000000000090 +:048DE000000000008F +:048DE100000000008E +:048DE200000000008D +:048DE300000000008C +:048DE400000000008B +:048DE500000000008A +:048DE6000000000089 +:048DE7000000000088 +:048DE8000000000087 +:048DE9000000000086 +:048DEA000000000085 +:048DEB000000000084 +:048DEC000000000083 +:048DED000000000082 +:048DEE000000000081 +:048DEF000000000080 +:048DF000000000007F +:048DF100000000007E +:048DF200000000007D +:048DF300000000007C +:048DF400000000007B +:048DF500000000007A +:048DF6000000000079 +:048DF7000000000078 +:048DF8000000000077 +:048DF9000000000076 +:048DFA000000000075 +:048DFB000000000074 +:048DFC000000000073 +:048DFD000000000072 +:048DFE000000000071 +:048DFF000000000070 +:048E0000000000006E +:048E0100000000006D +:048E0200000000006C +:048E0300000000006B +:048E0400000000006A +:048E05000000000069 +:048E06000000000068 +:048E07000000000067 +:048E08000000000066 +:048E09000000000065 +:048E0A000000000064 +:048E0B000000000063 +:048E0C000000000062 +:048E0D000000000061 +:048E0E000000000060 +:048E0F00000000005F +:048E1000000000005E +:048E1100000000005D +:048E1200000000005C +:048E1300000000005B +:048E1400000000005A +:048E15000000000059 +:048E16000000000058 +:048E17000000000057 +:048E18000000000056 +:048E19000000000055 +:048E1A000000000054 +:048E1B000000000053 +:048E1C000000000052 +:048E1D000000000051 +:048E1E000000000050 +:048E1F00000000004F +:048E2000000000004E +:048E2100000000004D +:048E2200000000004C +:048E2300000000004B +:048E2400000000004A +:048E25000000000049 +:048E26000000000048 +:048E27000000000047 +:048E28000000000046 +:048E29000000000045 +:048E2A000000000044 +:048E2B000000000043 +:048E2C000000000042 +:048E2D000000000041 +:048E2E000000000040 +:048E2F00000000003F +:048E3000000000003E +:048E3100000000003D +:048E3200000000003C +:048E3300000000003B +:048E3400000000003A +:048E35000000000039 +:048E36000000000038 +:048E37000000000037 +:048E38000000000036 +:048E39000000000035 +:048E3A000000000034 +:048E3B000000000033 +:048E3C000000000032 +:048E3D000000000031 +:048E3E000000000030 +:048E3F00000000002F +:048E4000000000002E +:048E4100000000002D +:048E4200000000002C +:048E4300000000002B +:048E4400000000002A +:048E45000000000029 +:048E46000000000028 +:048E47000000000027 +:048E48000000000026 +:048E49000000000025 +:048E4A000000000024 +:048E4B000000000023 +:048E4C000000000022 +:048E4D000000000021 +:048E4E000000000020 +:048E4F00000000001F +:048E5000000000001E +:048E5100000000001D +:048E5200000000001C +:048E5300000000001B +:048E5400000000001A +:048E55000000000019 +:048E56000000000018 +:048E57000000000017 +:048E58000000000016 +:048E59000000000015 +:048E5A000000000014 +:048E5B000000000013 +:048E5C000000000012 +:048E5D000000000011 +:048E5E000000000010 +:048E5F00000000000F +:048E6000000000000E +:048E6100000000000D +:048E6200000000000C +:048E6300000000000B +:048E6400000000000A +:048E65000000000009 +:048E66000000000008 +:048E67000000000007 +:048E68000000000006 +:048E69000000000005 +:048E6A000000000004 +:048E6B000000000003 +:048E6C000000000002 +:048E6D000000000001 +:048E6E000000000000 +:048E6F0000000000FF +:048E700000000000FE +:048E710000000000FD +:048E720000000000FC +:048E730000000000FB +:048E740000000000FA +:048E750000000000F9 +:048E760000000000F8 +:048E770000000000F7 +:048E780000000000F6 +:048E790000000000F5 +:048E7A0000000000F4 +:048E7B0000000000F3 +:048E7C0000000000F2 +:048E7D0000000000F1 +:048E7E0000000000F0 +:048E7F0000000000EF +:048E800000000000EE +:048E810000000000ED +:048E820000000000EC +:048E830000000000EB +:048E840000000000EA +:048E850000000000E9 +:048E860000000000E8 +:048E870000000000E7 +:048E880000000000E6 +:048E890000000000E5 +:048E8A0000000000E4 +:048E8B0000000000E3 +:048E8C0000000000E2 +:048E8D0000000000E1 +:048E8E0000000000E0 +:048E8F0000000000DF +:048E900000000000DE +:048E910000000000DD +:048E920000000000DC +:048E930000000000DB +:048E940000000000DA +:048E950000000000D9 +:048E960000000000D8 +:048E970000000000D7 +:048E980000000000D6 +:048E990000000000D5 +:048E9A0000000000D4 +:048E9B0000000000D3 +:048E9C0000000000D2 +:048E9D0000000000D1 +:048E9E0000000000D0 +:048E9F0000000000CF +:048EA00000000000CE +:048EA10000000000CD +:048EA20000000000CC +:048EA30000000000CB +:048EA40000000000CA +:048EA50000000000C9 +:048EA60000000000C8 +:048EA70000000000C7 +:048EA80000000000C6 +:048EA90000000000C5 +:048EAA0000000000C4 +:048EAB0000000000C3 +:048EAC0000000000C2 +:048EAD0000000000C1 +:048EAE0000000000C0 +:048EAF0000000000BF +:048EB00000000000BE +:048EB10000000000BD +:048EB20000000000BC +:048EB30000000000BB +:048EB40000000000BA +:048EB50000000000B9 +:048EB60000000000B8 +:048EB70000000000B7 +:048EB80000000000B6 +:048EB90000000000B5 +:048EBA0000000000B4 +:048EBB0000000000B3 +:048EBC0000000000B2 +:048EBD0000000000B1 +:048EBE0000000000B0 +:048EBF0000000000AF +:048EC00000000000AE +:048EC10000000000AD +:048EC20000000000AC +:048EC30000000000AB +:048EC40000000000AA +:048EC50000000000A9 +:048EC60000000000A8 +:048EC70000000000A7 +:048EC80000000000A6 +:048EC90000000000A5 +:048ECA0000000000A4 +:048ECB0000000000A3 +:048ECC0000000000A2 +:048ECD0000000000A1 +:048ECE0000000000A0 +:048ECF00000000009F +:048ED000000000009E +:048ED100000000009D +:048ED200000000009C +:048ED300000000009B +:048ED400000000009A +:048ED5000000000099 +:048ED6000000000098 +:048ED7000000000097 +:048ED8000000000096 +:048ED9000000000095 +:048EDA000000000094 +:048EDB000000000093 +:048EDC000000000092 +:048EDD000000000091 +:048EDE000000000090 +:048EDF00000000008F +:048EE000000000008E +:048EE100000000008D +:048EE200000000008C +:048EE300000000008B +:048EE400000000008A +:048EE5000000000089 +:048EE6000000000088 +:048EE7000000000087 +:048EE8000000000086 +:048EE9000000000085 +:048EEA000000000084 +:048EEB000000000083 +:048EEC000000000082 +:048EED000000000081 +:048EEE000000000080 +:048EEF00000000007F +:048EF000000000007E +:048EF100000000007D +:048EF200000000007C +:048EF300000000007B +:048EF400000000007A +:048EF5000000000079 +:048EF6000000000078 +:048EF7000000000077 +:048EF8000000000076 +:048EF9000000000075 +:048EFA000000000074 +:048EFB000000000073 +:048EFC000000000072 +:048EFD000000000071 +:048EFE000000000070 +:048EFF00000000006F +:048F0000000000006D +:048F0100000000006C +:048F0200000000006B +:048F0300000000006A +:048F04000000000069 +:048F05000000000068 +:048F06000000000067 +:048F07000000000066 +:048F08000000000065 +:048F09000000000064 +:048F0A000000000063 +:048F0B000000000062 +:048F0C000000000061 +:048F0D000000000060 +:048F0E00000000005F +:048F0F00000000005E +:048F1000000000005D +:048F1100000000005C +:048F1200000000005B +:048F1300000000005A +:048F14000000000059 +:048F15000000000058 +:048F16000000000057 +:048F17000000000056 +:048F18000000000055 +:048F19000000000054 +:048F1A000000000053 +:048F1B000000000052 +:048F1C000000000051 +:048F1D000000000050 +:048F1E00000000004F +:048F1F00000000004E +:048F2000000000004D +:048F2100000000004C +:048F2200000000004B +:048F2300000000004A +:048F24000000000049 +:048F25000000000048 +:048F26000000000047 +:048F27000000000046 +:048F28000000000045 +:048F29000000000044 +:048F2A000000000043 +:048F2B000000000042 +:048F2C000000000041 +:048F2D000000000040 +:048F2E00000000003F +:048F2F00000000003E +:048F3000000000003D +:048F3100000000003C +:048F3200000000003B +:048F3300000000003A +:048F34000000000039 +:048F35000000000038 +:048F36000000000037 +:048F37000000000036 +:048F38000000000035 +:048F39000000000034 +:048F3A000000000033 +:048F3B000000000032 +:048F3C000000000031 +:048F3D000000000030 +:048F3E00000000002F +:048F3F00000000002E +:048F4000000000002D +:048F4100000000002C +:048F4200000000002B +:048F4300000000002A +:048F44000000000029 +:048F45000000000028 +:048F46000000000027 +:048F47000000000026 +:048F48000000000025 +:048F49000000000024 +:048F4A000000000023 +:048F4B000000000022 +:048F4C000000000021 +:048F4D000000000020 +:048F4E00000000001F +:048F4F00000000001E +:048F5000000000001D +:048F5100000000001C +:048F5200000000001B +:048F5300000000001A +:048F54000000000019 +:048F55000000000018 +:048F56000000000017 +:048F57000000000016 +:048F58000000000015 +:048F59000000000014 +:048F5A000000000013 +:048F5B000000000012 +:048F5C000000000011 +:048F5D000000000010 +:048F5E00000000000F +:048F5F00000000000E +:048F6000000000000D +:048F6100000000000C +:048F6200000000000B +:048F6300000000000A +:048F64000000000009 +:048F65000000000008 +:048F66000000000007 +:048F67000000000006 +:048F68000000000005 +:048F69000000000004 +:048F6A000000000003 +:048F6B000000000002 +:048F6C000000000001 +:048F6D000000000000 +:048F6E0000000000FF +:048F6F0000000000FE +:048F700000000000FD +:048F710000000000FC +:048F720000000000FB +:048F730000000000FA +:048F740000000000F9 +:048F750000000000F8 +:048F760000000000F7 +:048F770000000000F6 +:048F780000000000F5 +:048F790000000000F4 +:048F7A0000000000F3 +:048F7B0000000000F2 +:048F7C0000000000F1 +:048F7D0000000000F0 +:048F7E0000000000EF +:048F7F0000000000EE +:048F800000000000ED +:048F810000000000EC +:048F820000000000EB +:048F830000000000EA +:048F840000000000E9 +:048F850000000000E8 +:048F860000000000E7 +:048F870000000000E6 +:048F880000000000E5 +:048F890000000000E4 +:048F8A0000000000E3 +:048F8B0000000000E2 +:048F8C0000000000E1 +:048F8D0000000000E0 +:048F8E0000000000DF +:048F8F0000000000DE +:048F900000000000DD +:048F910000000000DC +:048F920000000000DB +:048F930000000000DA +:048F940000000000D9 +:048F950000000000D8 +:048F960000000000D7 +:048F970000000000D6 +:048F980000000000D5 +:048F990000000000D4 +:048F9A0000000000D3 +:048F9B0000000000D2 +:048F9C0000000000D1 +:048F9D0000000000D0 +:048F9E0000000000CF +:048F9F0000000000CE +:048FA00000000000CD +:048FA10000000000CC +:048FA20000000000CB +:048FA30000000000CA +:048FA40000000000C9 +:048FA50000000000C8 +:048FA60000000000C7 +:048FA70000000000C6 +:048FA80000000000C5 +:048FA90000000000C4 +:048FAA0000000000C3 +:048FAB0000000000C2 +:048FAC0000000000C1 +:048FAD0000000000C0 +:048FAE0000000000BF +:048FAF0000000000BE +:048FB00000000000BD +:048FB10000000000BC +:048FB20000000000BB +:048FB30000000000BA +:048FB40000000000B9 +:048FB50000000000B8 +:048FB60000000000B7 +:048FB70000000000B6 +:048FB80000000000B5 +:048FB90000000000B4 +:048FBA0000000000B3 +:048FBB0000000000B2 +:048FBC0000000000B1 +:048FBD0000000000B0 +:048FBE0000000000AF +:048FBF0000000000AE +:048FC00000000000AD +:048FC10000000000AC +:048FC20000000000AB +:048FC30000000000AA +:048FC40000000000A9 +:048FC50000000000A8 +:048FC60000000000A7 +:048FC70000000000A6 +:048FC80000000000A5 +:048FC90000000000A4 +:048FCA0000000000A3 +:048FCB0000000000A2 +:048FCC0000000000A1 +:048FCD0000000000A0 +:048FCE00000000009F +:048FCF00000000009E +:048FD000000000009D +:048FD100000000009C +:048FD200000000009B +:048FD300000000009A +:048FD4000000000099 +:048FD5000000000098 +:048FD6000000000097 +:048FD7000000000096 +:048FD8000000000095 +:048FD9000000000094 +:048FDA000000000093 +:048FDB000000000092 +:048FDC000000000091 +:048FDD000000000090 +:048FDE00000000008F +:048FDF00000000008E +:048FE000000000008D +:048FE100000000008C +:048FE200000000008B +:048FE300000000008A +:048FE4000000000089 +:048FE5000000000088 +:048FE6000000000087 +:048FE7000000000086 +:048FE8000000000085 +:048FE9000000000084 +:048FEA000000000083 +:048FEB000000000082 +:048FEC000000000081 +:048FED000000000080 +:048FEE00000000007F +:048FEF00000000007E +:048FF000000000007D +:048FF100000000007C +:048FF200000000007B +:048FF300000000007A +:048FF4000000000079 +:048FF5000000000078 +:048FF6000000000077 +:048FF7000000000076 +:048FF8000000000075 +:048FF9000000000074 +:048FFA000000000073 +:048FFB000000000072 +:048FFC000000000071 +:048FFD000000000070 +:048FFE00000000006F +:048FFF00000000006E +:04900000000000006C +:04900100000000006B +:04900200000000006A +:049003000000000069 +:049004000000000068 +:049005000000000067 +:049006000000000066 +:049007000000000065 +:049008000000000064 +:049009000000000063 +:04900A000000000062 +:04900B000000000061 +:04900C000000000060 +:04900D00000000005F +:04900E00000000005E +:04900F00000000005D +:04901000000000005C +:04901100000000005B +:04901200000000005A +:049013000000000059 +:049014000000000058 +:049015000000000057 +:049016000000000056 +:049017000000000055 +:049018000000000054 +:049019000000000053 +:04901A000000000052 +:04901B000000000051 +:04901C000000000050 +:04901D00000000004F +:04901E00000000004E +:04901F00000000004D +:04902000000000004C +:04902100000000004B +:04902200000000004A +:049023000000000049 +:049024000000000048 +:049025000000000047 +:049026000000000046 +:049027000000000045 +:049028000000000044 +:049029000000000043 +:04902A000000000042 +:04902B000000000041 +:04902C000000000040 +:04902D00000000003F +:04902E00000000003E +:04902F00000000003D +:04903000000000003C +:04903100000000003B +:04903200000000003A +:049033000000000039 +:049034000000000038 +:049035000000000037 +:049036000000000036 +:049037000000000035 +:049038000000000034 +:049039000000000033 +:04903A000000000032 +:04903B000000000031 +:04903C000000000030 +:04903D00000000002F +:04903E00000000002E +:04903F00000000002D +:04904000000000002C +:04904100000000002B +:04904200000000002A +:049043000000000029 +:049044000000000028 +:049045000000000027 +:049046000000000026 +:049047000000000025 +:049048000000000024 +:049049000000000023 +:04904A000000000022 +:04904B000000000021 +:04904C000000000020 +:04904D00000000001F +:04904E00000000001E +:04904F00000000001D +:04905000000000001C +:04905100000000001B +:04905200000000001A +:049053000000000019 +:049054000000000018 +:049055000000000017 +:049056000000000016 +:049057000000000015 +:049058000000000014 +:049059000000000013 +:04905A000000000012 +:04905B000000000011 +:04905C000000000010 +:04905D00000000000F +:04905E00000000000E +:04905F00000000000D +:04906000000000000C +:04906100000000000B +:04906200000000000A +:049063000000000009 +:049064000000000008 +:049065000000000007 +:049066000000000006 +:049067000000000005 +:049068000000000004 +:049069000000000003 +:04906A000000000002 +:04906B000000000001 +:04906C000000000000 +:04906D0000000000FF +:04906E0000000000FE +:04906F0000000000FD +:0490700000000000FC +:0490710000000000FB +:0490720000000000FA +:0490730000000000F9 +:0490740000000000F8 +:0490750000000000F7 +:0490760000000000F6 +:0490770000000000F5 +:0490780000000000F4 +:0490790000000000F3 +:04907A0000000000F2 +:04907B0000000000F1 +:04907C0000000000F0 +:04907D0000000000EF +:04907E0000000000EE +:04907F0000000000ED +:0490800000000000EC +:0490810000000000EB +:0490820000000000EA +:0490830000000000E9 +:0490840000000000E8 +:0490850000000000E7 +:0490860000000000E6 +:0490870000000000E5 +:0490880000000000E4 +:0490890000000000E3 +:04908A0000000000E2 +:04908B0000000000E1 +:04908C0000000000E0 +:04908D0000000000DF +:04908E0000000000DE +:04908F0000000000DD +:0490900000000000DC +:0490910000000000DB +:0490920000000000DA +:0490930000000000D9 +:0490940000000000D8 +:0490950000000000D7 +:0490960000000000D6 +:0490970000000000D5 +:0490980000000000D4 +:0490990000000000D3 +:04909A0000000000D2 +:04909B0000000000D1 +:04909C0000000000D0 +:04909D0000000000CF +:04909E0000000000CE +:04909F0000000000CD +:0490A00000000000CC +:0490A10000000000CB +:0490A20000000000CA +:0490A30000000000C9 +:0490A40000000000C8 +:0490A50000000000C7 +:0490A60000000000C6 +:0490A70000000000C5 +:0490A80000000000C4 +:0490A90000000000C3 +:0490AA0000000000C2 +:0490AB0000000000C1 +:0490AC0000000000C0 +:0490AD0000000000BF +:0490AE0000000000BE +:0490AF0000000000BD +:0490B00000000000BC +:0490B10000000000BB +:0490B20000000000BA +:0490B30000000000B9 +:0490B40000000000B8 +:0490B50000000000B7 +:0490B60000000000B6 +:0490B70000000000B5 +:0490B80000000000B4 +:0490B90000000000B3 +:0490BA0000000000B2 +:0490BB0000000000B1 +:0490BC0000000000B0 +:0490BD0000000000AF +:0490BE0000000000AE +:0490BF0000000000AD +:0490C00000000000AC +:0490C10000000000AB +:0490C20000000000AA +:0490C30000000000A9 +:0490C40000000000A8 +:0490C50000000000A7 +:0490C60000000000A6 +:0490C70000000000A5 +:0490C80000000000A4 +:0490C90000000000A3 +:0490CA0000000000A2 +:0490CB0000000000A1 +:0490CC0000000000A0 +:0490CD00000000009F +:0490CE00000000009E +:0490CF00000000009D +:0490D000000000009C +:0490D100000000009B +:0490D200000000009A +:0490D3000000000099 +:0490D4000000000098 +:0490D5000000000097 +:0490D6000000000096 +:0490D7000000000095 +:0490D8000000000094 +:0490D9000000000093 +:0490DA000000000092 +:0490DB000000000091 +:0490DC000000000090 +:0490DD00000000008F +:0490DE00000000008E +:0490DF00000000008D +:0490E000000000008C +:0490E100000000008B +:0490E200000000008A +:0490E3000000000089 +:0490E4000000000088 +:0490E5000000000087 +:0490E6000000000086 +:0490E7000000000085 +:0490E8000000000084 +:0490E9000000000083 +:0490EA000000000082 +:0490EB000000000081 +:0490EC000000000080 +:0490ED00000000007F +:0490EE00000000007E +:0490EF00000000007D +:0490F000000000007C +:0490F100000000007B +:0490F200000000007A +:0490F3000000000079 +:0490F4000000000078 +:0490F5000000000077 +:0490F6000000000076 +:0490F7000000000075 +:0490F8000000000074 +:0490F9000000000073 +:0490FA000000000072 +:0490FB000000000071 +:0490FC000000000070 +:0490FD00000000006F +:0490FE00000000006E +:0490FF00000000006D +:04910000000000006B +:04910100000000006A +:049102000000000069 +:049103000000000068 +:049104000000000067 +:049105000000000066 +:049106000000000065 +:049107000000000064 +:049108000000000063 +:049109000000000062 +:04910A000000000061 +:04910B000000000060 +:04910C00000000005F +:04910D00000000005E +:04910E00000000005D +:04910F00000000005C +:04911000000000005B +:04911100000000005A +:049112000000000059 +:049113000000000058 +:049114000000000057 +:049115000000000056 +:049116000000000055 +:049117000000000054 +:049118000000000053 +:049119000000000052 +:04911A000000000051 +:04911B000000000050 +:04911C00000000004F +:04911D00000000004E +:04911E00000000004D +:04911F00000000004C +:04912000000000004B +:04912100000000004A +:049122000000000049 +:049123000000000048 +:049124000000000047 +:049125000000000046 +:049126000000000045 +:049127000000000044 +:049128000000000043 +:049129000000000042 +:04912A000000000041 +:04912B000000000040 +:04912C00000000003F +:04912D00000000003E +:04912E00000000003D +:04912F00000000003C +:04913000000000003B +:04913100000000003A +:049132000000000039 +:049133000000000038 +:049134000000000037 +:049135000000000036 +:049136000000000035 +:049137000000000034 +:049138000000000033 +:049139000000000032 +:04913A000000000031 +:04913B000000000030 +:04913C00000000002F +:04913D00000000002E +:04913E00000000002D +:04913F00000000002C +:04914000000000002B +:04914100000000002A +:049142000000000029 +:049143000000000028 +:049144000000000027 +:049145000000000026 +:049146000000000025 +:049147000000000024 +:049148000000000023 +:049149000000000022 +:04914A000000000021 +:04914B000000000020 +:04914C00000000001F +:04914D00000000001E +:04914E00000000001D +:04914F00000000001C +:04915000000000001B +:04915100000000001A +:049152000000000019 +:049153000000000018 +:049154000000000017 +:049155000000000016 +:049156000000000015 +:049157000000000014 +:049158000000000013 +:049159000000000012 +:04915A000000000011 +:04915B000000000010 +:04915C00000000000F +:04915D00000000000E +:04915E00000000000D +:04915F00000000000C +:04916000000000000B +:04916100000000000A +:049162000000000009 +:049163000000000008 +:049164000000000007 +:049165000000000006 +:049166000000000005 +:049167000000000004 +:049168000000000003 +:049169000000000002 +:04916A000000000001 +:04916B000000000000 +:04916C0000000000FF +:04916D0000000000FE +:04916E0000000000FD +:04916F0000000000FC +:0491700000000000FB +:0491710000000000FA +:0491720000000000F9 +:0491730000000000F8 +:0491740000000000F7 +:0491750000000000F6 +:0491760000000000F5 +:0491770000000000F4 +:0491780000000000F3 +:0491790000000000F2 +:04917A0000000000F1 +:04917B0000000000F0 +:04917C0000000000EF +:04917D0000000000EE +:04917E0000000000ED +:04917F0000000000EC +:0491800000000000EB +:0491810000000000EA +:0491820000000000E9 +:0491830000000000E8 +:0491840000000000E7 +:0491850000000000E6 +:0491860000000000E5 +:0491870000000000E4 +:0491880000000000E3 +:0491890000000000E2 +:04918A0000000000E1 +:04918B0000000000E0 +:04918C0000000000DF +:04918D0000000000DE +:04918E0000000000DD +:04918F0000000000DC +:0491900000000000DB +:0491910000000000DA +:0491920000000000D9 +:0491930000000000D8 +:0491940000000000D7 +:0491950000000000D6 +:0491960000000000D5 +:0491970000000000D4 +:0491980000000000D3 +:0491990000000000D2 +:04919A0000000000D1 +:04919B0000000000D0 +:04919C0000000000CF +:04919D0000000000CE +:04919E0000000000CD +:04919F0000000000CC +:0491A00000000000CB +:0491A10000000000CA +:0491A20000000000C9 +:0491A30000000000C8 +:0491A40000000000C7 +:0491A50000000000C6 +:0491A60000000000C5 +:0491A70000000000C4 +:0491A80000000000C3 +:0491A90000000000C2 +:0491AA0000000000C1 +:0491AB0000000000C0 +:0491AC0000000000BF +:0491AD0000000000BE +:0491AE0000000000BD +:0491AF0000000000BC +:0491B00000000000BB +:0491B10000000000BA +:0491B20000000000B9 +:0491B30000000000B8 +:0491B40000000000B7 +:0491B50000000000B6 +:0491B60000000000B5 +:0491B70000000000B4 +:0491B80000000000B3 +:0491B90000000000B2 +:0491BA0000000000B1 +:0491BB0000000000B0 +:0491BC0000000000AF +:0491BD0000000000AE +:0491BE0000000000AD +:0491BF0000000000AC +:0491C00000000000AB +:0491C10000000000AA +:0491C20000000000A9 +:0491C30000000000A8 +:0491C40000000000A7 +:0491C50000000000A6 +:0491C60000000000A5 +:0491C70000000000A4 +:0491C80000000000A3 +:0491C90000000000A2 +:0491CA0000000000A1 +:0491CB0000000000A0 +:0491CC00000000009F +:0491CD00000000009E +:0491CE00000000009D +:0491CF00000000009C +:0491D000000000009B +:0491D100000000009A +:0491D2000000000099 +:0491D3000000000098 +:0491D4000000000097 +:0491D5000000000096 +:0491D6000000000095 +:0491D7000000000094 +:0491D8000000000093 +:0491D9000000000092 +:0491DA000000000091 +:0491DB000000000090 +:0491DC00000000008F +:0491DD00000000008E +:0491DE00000000008D +:0491DF00000000008C +:0491E000000000008B +:0491E100000000008A +:0491E2000000000089 +:0491E3000000000088 +:0491E4000000000087 +:0491E5000000000086 +:0491E6000000000085 +:0491E7000000000084 +:0491E8000000000083 +:0491E9000000000082 +:0491EA000000000081 +:0491EB000000000080 +:0491EC00000000007F +:0491ED00000000007E +:0491EE00000000007D +:0491EF00000000007C +:0491F000000000007B +:0491F100000000007A +:0491F2000000000079 +:0491F3000000000078 +:0491F4000000000077 +:0491F5000000000076 +:0491F6000000000075 +:0491F7000000000074 +:0491F8000000000073 +:0491F9000000000072 +:0491FA000000000071 +:0491FB000000000070 +:0491FC00000000006F +:0491FD00000000006E +:0491FE00000000006D +:0491FF00000000006C +:04920000000000006A +:049201000000000069 +:049202000000000068 +:049203000000000067 +:049204000000000066 +:049205000000000065 +:049206000000000064 +:049207000000000063 +:049208000000000062 +:049209000000000061 +:04920A000000000060 +:04920B00000000005F +:04920C00000000005E +:04920D00000000005D +:04920E00000000005C +:04920F00000000005B +:04921000000000005A +:049211000000000059 +:049212000000000058 +:049213000000000057 +:049214000000000056 +:049215000000000055 +:049216000000000054 +:049217000000000053 +:049218000000000052 +:049219000000000051 +:04921A000000000050 +:04921B00000000004F +:04921C00000000004E +:04921D00000000004D +:04921E00000000004C +:04921F00000000004B +:04922000000000004A +:049221000000000049 +:049222000000000048 +:049223000000000047 +:049224000000000046 +:049225000000000045 +:049226000000000044 +:049227000000000043 +:049228000000000042 +:049229000000000041 +:04922A000000000040 +:04922B00000000003F +:04922C00000000003E +:04922D00000000003D +:04922E00000000003C +:04922F00000000003B +:04923000000000003A +:049231000000000039 +:049232000000000038 +:049233000000000037 +:049234000000000036 +:049235000000000035 +:049236000000000034 +:049237000000000033 +:049238000000000032 +:049239000000000031 +:04923A000000000030 +:04923B00000000002F +:04923C00000000002E +:04923D00000000002D +:04923E00000000002C +:04923F00000000002B +:04924000000000002A +:049241000000000029 +:049242000000000028 +:049243000000000027 +:049244000000000026 +:049245000000000025 +:049246000000000024 +:049247000000000023 +:049248000000000022 +:049249000000000021 +:04924A000000000020 +:04924B00000000001F +:04924C00000000001E +:04924D00000000001D +:04924E00000000001C +:04924F00000000001B +:04925000000000001A +:049251000000000019 +:049252000000000018 +:049253000000000017 +:049254000000000016 +:049255000000000015 +:049256000000000014 +:049257000000000013 +:049258000000000012 +:049259000000000011 +:04925A000000000010 +:04925B00000000000F +:04925C00000000000E +:04925D00000000000D +:04925E00000000000C +:04925F00000000000B +:04926000000000000A +:049261000000000009 +:049262000000000008 +:049263000000000007 +:049264000000000006 +:049265000000000005 +:049266000000000004 +:049267000000000003 +:049268000000000002 +:049269000000000001 +:04926A000000000000 +:04926B0000000000FF +:04926C0000000000FE +:04926D0000000000FD +:04926E0000000000FC +:04926F0000000000FB +:0492700000000000FA +:0492710000000000F9 +:0492720000000000F8 +:0492730000000000F7 +:0492740000000000F6 +:0492750000000000F5 +:0492760000000000F4 +:0492770000000000F3 +:0492780000000000F2 +:0492790000000000F1 +:04927A0000000000F0 +:04927B0000000000EF +:04927C0000000000EE +:04927D0000000000ED +:04927E0000000000EC +:04927F0000000000EB +:0492800000000000EA +:0492810000000000E9 +:0492820000000000E8 +:0492830000000000E7 +:0492840000000000E6 +:0492850000000000E5 +:0492860000000000E4 +:0492870000000000E3 +:0492880000000000E2 +:0492890000000000E1 +:04928A0000000000E0 +:04928B0000000000DF +:04928C0000000000DE +:04928D0000000000DD +:04928E0000000000DC +:04928F0000000000DB +:0492900000000000DA +:0492910000000000D9 +:0492920000000000D8 +:0492930000000000D7 +:0492940000000000D6 +:0492950000000000D5 +:0492960000000000D4 +:0492970000000000D3 +:0492980000000000D2 +:0492990000000000D1 +:04929A0000000000D0 +:04929B0000000000CF +:04929C0000000000CE +:04929D0000000000CD +:04929E0000000000CC +:04929F0000000000CB +:0492A00000000000CA +:0492A10000000000C9 +:0492A20000000000C8 +:0492A30000000000C7 +:0492A40000000000C6 +:0492A50000000000C5 +:0492A60000000000C4 +:0492A70000000000C3 +:0492A80000000000C2 +:0492A90000000000C1 +:0492AA0000000000C0 +:0492AB0000000000BF +:0492AC0000000000BE +:0492AD0000000000BD +:0492AE0000000000BC +:0492AF0000000000BB +:0492B00000000000BA +:0492B10000000000B9 +:0492B20000000000B8 +:0492B30000000000B7 +:0492B40000000000B6 +:0492B50000000000B5 +:0492B60000000000B4 +:0492B70000000000B3 +:0492B80000000000B2 +:0492B90000000000B1 +:0492BA0000000000B0 +:0492BB0000000000AF +:0492BC0000000000AE +:0492BD0000000000AD +:0492BE0000000000AC +:0492BF0000000000AB +:0492C00000000000AA +:0492C10000000000A9 +:0492C20000000000A8 +:0492C30000000000A7 +:0492C40000000000A6 +:0492C50000000000A5 +:0492C60000000000A4 +:0492C70000000000A3 +:0492C80000000000A2 +:0492C90000000000A1 +:0492CA0000000000A0 +:0492CB00000000009F +:0492CC00000000009E +:0492CD00000000009D +:0492CE00000000009C +:0492CF00000000009B +:0492D000000000009A +:0492D1000000000099 +:0492D2000000000098 +:0492D3000000000097 +:0492D4000000000096 +:0492D5000000000095 +:0492D6000000000094 +:0492D7000000000093 +:0492D8000000000092 +:0492D9000000000091 +:0492DA000000000090 +:0492DB00000000008F +:0492DC00000000008E +:0492DD00000000008D +:0492DE00000000008C +:0492DF00000000008B +:0492E000000000008A +:0492E1000000000089 +:0492E2000000000088 +:0492E3000000000087 +:0492E4000000000086 +:0492E5000000000085 +:0492E6000000000084 +:0492E7000000000083 +:0492E8000000000082 +:0492E9000000000081 +:0492EA000000000080 +:0492EB00000000007F +:0492EC00000000007E +:0492ED00000000007D +:0492EE00000000007C +:0492EF00000000007B +:0492F000000000007A +:0492F1000000000079 +:0492F2000000000078 +:0492F3000000000077 +:0492F4000000000076 +:0492F5000000000075 +:0492F6000000000074 +:0492F7000000000073 +:0492F8000000000072 +:0492F9000000000071 +:0492FA000000000070 +:0492FB00000000006F +:0492FC00000000006E +:0492FD00000000006D +:0492FE00000000006C +:0492FF00000000006B +:049300000000000069 +:049301000000000068 +:049302000000000067 +:049303000000000066 +:049304000000000065 +:049305000000000064 +:049306000000000063 +:049307000000000062 +:049308000000000061 +:049309000000000060 +:04930A00000000005F +:04930B00000000005E +:04930C00000000005D +:04930D00000000005C +:04930E00000000005B +:04930F00000000005A +:049310000000000059 +:049311000000000058 +:049312000000000057 +:049313000000000056 +:049314000000000055 +:049315000000000054 +:049316000000000053 +:049317000000000052 +:049318000000000051 +:049319000000000050 +:04931A00000000004F +:04931B00000000004E +:04931C00000000004D +:04931D00000000004C +:04931E00000000004B +:04931F00000000004A +:049320000000000049 +:049321000000000048 +:049322000000000047 +:049323000000000046 +:049324000000000045 +:049325000000000044 +:049326000000000043 +:049327000000000042 +:049328000000000041 +:049329000000000040 +:04932A00000000003F +:04932B00000000003E +:04932C00000000003D +:04932D00000000003C +:04932E00000000003B +:04932F00000000003A +:049330000000000039 +:049331000000000038 +:049332000000000037 +:049333000000000036 +:049334000000000035 +:049335000000000034 +:049336000000000033 +:049337000000000032 +:049338000000000031 +:049339000000000030 +:04933A00000000002F +:04933B00000000002E +:04933C00000000002D +:04933D00000000002C +:04933E00000000002B +:04933F00000000002A +:049340000000000029 +:049341000000000028 +:049342000000000027 +:049343000000000026 +:049344000000000025 +:049345000000000024 +:049346000000000023 +:049347000000000022 +:049348000000000021 +:049349000000000020 +:04934A00000000001F +:04934B00000000001E +:04934C00000000001D +:04934D00000000001C +:04934E00000000001B +:04934F00000000001A +:049350000000000019 +:049351000000000018 +:049352000000000017 +:049353000000000016 +:049354000000000015 +:049355000000000014 +:049356000000000013 +:049357000000000012 +:049358000000000011 +:049359000000000010 +:04935A00000000000F +:04935B00000000000E +:04935C00000000000D +:04935D00000000000C +:04935E00000000000B +:04935F00000000000A +:049360000000000009 +:049361000000000008 +:049362000000000007 +:049363000000000006 +:049364000000000005 +:049365000000000004 +:049366000000000003 +:049367000000000002 +:049368000000000001 +:049369000000000000 +:04936A0000000000FF +:04936B0000000000FE +:04936C0000000000FD +:04936D0000000000FC +:04936E0000000000FB +:04936F0000000000FA +:0493700000000000F9 +:0493710000000000F8 +:0493720000000000F7 +:0493730000000000F6 +:0493740000000000F5 +:0493750000000000F4 +:0493760000000000F3 +:0493770000000000F2 +:0493780000000000F1 +:0493790000000000F0 +:04937A0000000000EF +:04937B0000000000EE +:04937C0000000000ED +:04937D0000000000EC +:04937E0000000000EB +:04937F0000000000EA +:0493800000000000E9 +:0493810000000000E8 +:0493820000000000E7 +:0493830000000000E6 +:0493840000000000E5 +:0493850000000000E4 +:0493860000000000E3 +:0493870000000000E2 +:0493880000000000E1 +:0493890000000000E0 +:04938A0000000000DF +:04938B0000000000DE +:04938C0000000000DD +:04938D0000000000DC +:04938E0000000000DB +:04938F0000000000DA +:0493900000000000D9 +:0493910000000000D8 +:0493920000000000D7 +:0493930000000000D6 +:0493940000000000D5 +:0493950000000000D4 +:0493960000000000D3 +:0493970000000000D2 +:0493980000000000D1 +:0493990000000000D0 +:04939A0000000000CF +:04939B0000000000CE +:04939C0000000000CD +:04939D0000000000CC +:04939E0000000000CB +:04939F0000000000CA +:0493A00000000000C9 +:0493A10000000000C8 +:0493A20000000000C7 +:0493A30000000000C6 +:0493A40000000000C5 +:0493A50000000000C4 +:0493A60000000000C3 +:0493A70000000000C2 +:0493A80000000000C1 +:0493A90000000000C0 +:0493AA0000000000BF +:0493AB0000000000BE +:0493AC0000000000BD +:0493AD0000000000BC +:0493AE0000000000BB +:0493AF0000000000BA +:0493B00000000000B9 +:0493B10000000000B8 +:0493B20000000000B7 +:0493B30000000000B6 +:0493B40000000000B5 +:0493B50000000000B4 +:0493B60000000000B3 +:0493B70000000000B2 +:0493B80000000000B1 +:0493B90000000000B0 +:0493BA0000000000AF +:0493BB0000000000AE +:0493BC0000000000AD +:0493BD0000000000AC +:0493BE0000000000AB +:0493BF0000000000AA +:0493C00000000000A9 +:0493C10000000000A8 +:0493C20000000000A7 +:0493C30000000000A6 +:0493C40000000000A5 +:0493C50000000000A4 +:0493C60000000000A3 +:0493C70000000000A2 +:0493C80000000000A1 +:0493C90000000000A0 +:0493CA00000000009F +:0493CB00000000009E +:0493CC00000000009D +:0493CD00000000009C +:0493CE00000000009B +:0493CF00000000009A +:0493D0000000000099 +:0493D1000000000098 +:0493D2000000000097 +:0493D3000000000096 +:0493D4000000000095 +:0493D5000000000094 +:0493D6000000000093 +:0493D7000000000092 +:0493D8000000000091 +:0493D9000000000090 +:0493DA00000000008F +:0493DB00000000008E +:0493DC00000000008D +:0493DD00000000008C +:0493DE00000000008B +:0493DF00000000008A +:0493E0000000000089 +:0493E1000000000088 +:0493E2000000000087 +:0493E3000000000086 +:0493E4000000000085 +:0493E5000000000084 +:0493E6000000000083 +:0493E7000000000082 +:0493E8000000000081 +:0493E9000000000080 +:0493EA00000000007F +:0493EB00000000007E +:0493EC00000000007D +:0493ED00000000007C +:0493EE00000000007B +:0493EF00000000007A +:0493F0000000000079 +:0493F1000000000078 +:0493F2000000000077 +:0493F3000000000076 +:0493F4000000000075 +:0493F5000000000074 +:0493F6000000000073 +:0493F7000000000072 +:0493F8000000000071 +:0493F9000000000070 +:0493FA00000000006F +:0493FB00000000006E +:0493FC00000000006D +:0493FD00000000006C +:0493FE00000000006B +:0493FF00000000006A +:049400000000000068 +:049401000000000067 +:049402000000000066 +:049403000000000065 +:049404000000000064 +:049405000000000063 +:049406000000000062 +:049407000000000061 +:049408000000000060 +:04940900000000005F +:04940A00000000005E +:04940B00000000005D +:04940C00000000005C +:04940D00000000005B +:04940E00000000005A +:04940F000000000059 +:049410000000000058 +:049411000000000057 +:049412000000000056 +:049413000000000055 +:049414000000000054 +:049415000000000053 +:049416000000000052 +:049417000000000051 +:049418000000000050 +:04941900000000004F +:04941A00000000004E +:04941B00000000004D +:04941C00000000004C +:04941D00000000004B +:04941E00000000004A +:04941F000000000049 +:049420000000000048 +:049421000000000047 +:049422000000000046 +:049423000000000045 +:049424000000000044 +:049425000000000043 +:049426000000000042 +:049427000000000041 +:049428000000000040 +:04942900000000003F +:04942A00000000003E +:04942B00000000003D +:04942C00000000003C +:04942D00000000003B +:04942E00000000003A +:04942F000000000039 +:049430000000000038 +:049431000000000037 +:049432000000000036 +:049433000000000035 +:049434000000000034 +:049435000000000033 +:049436000000000032 +:049437000000000031 +:049438000000000030 +:04943900000000002F +:04943A00000000002E +:04943B00000000002D +:04943C00000000002C +:04943D00000000002B +:04943E00000000002A +:04943F000000000029 +:049440000000000028 +:049441000000000027 +:049442000000000026 +:049443000000000025 +:049444000000000024 +:049445000000000023 +:049446000000000022 +:049447000000000021 +:049448000000000020 +:04944900000000001F +:04944A00000000001E +:04944B00000000001D +:04944C00000000001C +:04944D00000000001B +:04944E00000000001A +:04944F000000000019 +:049450000000000018 +:049451000000000017 +:049452000000000016 +:049453000000000015 +:049454000000000014 +:049455000000000013 +:049456000000000012 +:049457000000000011 +:049458000000000010 +:04945900000000000F +:04945A00000000000E +:04945B00000000000D +:04945C00000000000C +:04945D00000000000B +:04945E00000000000A +:04945F000000000009 +:049460000000000008 +:049461000000000007 +:049462000000000006 +:049463000000000005 +:049464000000000004 +:049465000000000003 +:049466000000000002 +:049467000000000001 +:049468000000000000 +:0494690000000000FF +:04946A0000000000FE +:04946B0000000000FD +:04946C0000000000FC +:04946D0000000000FB +:04946E0000000000FA +:04946F0000000000F9 +:0494700000000000F8 +:0494710000000000F7 +:0494720000000000F6 +:0494730000000000F5 +:0494740000000000F4 +:0494750000000000F3 +:0494760000000000F2 +:0494770000000000F1 +:0494780000000000F0 +:0494790000000000EF +:04947A0000000000EE +:04947B0000000000ED +:04947C0000000000EC +:04947D0000000000EB +:04947E0000000000EA +:04947F0000000000E9 +:0494800000000000E8 +:0494810000000000E7 +:0494820000000000E6 +:0494830000000000E5 +:0494840000000000E4 +:0494850000000000E3 +:0494860000000000E2 +:0494870000000000E1 +:0494880000000000E0 +:0494890000000000DF +:04948A0000000000DE +:04948B0000000000DD +:04948C0000000000DC +:04948D0000000000DB +:04948E0000000000DA +:04948F0000000000D9 +:0494900000000000D8 +:0494910000000000D7 +:0494920000000000D6 +:0494930000000000D5 +:0494940000000000D4 +:0494950000000000D3 +:0494960000000000D2 +:0494970000000000D1 +:0494980000000000D0 +:0494990000000000CF +:04949A0000000000CE +:04949B0000000000CD +:04949C0000000000CC +:04949D0000000000CB +:04949E0000000000CA +:04949F0000000000C9 +:0494A00000000000C8 +:0494A10000000000C7 +:0494A20000000000C6 +:0494A30000000000C5 +:0494A40000000000C4 +:0494A50000000000C3 +:0494A60000000000C2 +:0494A70000000000C1 +:0494A80000000000C0 +:0494A90000000000BF +:0494AA0000000000BE +:0494AB0000000000BD +:0494AC0000000000BC +:0494AD0000000000BB +:0494AE0000000000BA +:0494AF0000000000B9 +:0494B00000000000B8 +:0494B10000000000B7 +:0494B20000000000B6 +:0494B30000000000B5 +:0494B40000000000B4 +:0494B50000000000B3 +:0494B60000000000B2 +:0494B70000000000B1 +:0494B80000000000B0 +:0494B90000000000AF +:0494BA0000000000AE +:0494BB0000000000AD +:0494BC0000000000AC +:0494BD0000000000AB +:0494BE0000000000AA +:0494BF0000000000A9 +:0494C00000000000A8 +:0494C10000000000A7 +:0494C20000000000A6 +:0494C30000000000A5 +:0494C40000000000A4 +:0494C50000000000A3 +:0494C60000000000A2 +:0494C70000000000A1 +:0494C80000000000A0 +:0494C900000000009F +:0494CA00000000009E +:0494CB00000000009D +:0494CC00000000009C +:0494CD00000000009B +:0494CE00000000009A +:0494CF000000000099 +:0494D0000000000098 +:0494D1000000000097 +:0494D2000000000096 +:0494D3000000000095 +:0494D4000000000094 +:0494D5000000000093 +:0494D6000000000092 +:0494D7000000000091 +:0494D8000000000090 +:0494D900000000008F +:0494DA00000000008E +:0494DB00000000008D +:0494DC00000000008C +:0494DD00000000008B +:0494DE00000000008A +:0494DF000000000089 +:0494E0000000000088 +:0494E1000000000087 +:0494E2000000000086 +:0494E3000000000085 +:0494E4000000000084 +:0494E5000000000083 +:0494E6000000000082 +:0494E7000000000081 +:0494E8000000000080 +:0494E900000000007F +:0494EA00000000007E +:0494EB00000000007D +:0494EC00000000007C +:0494ED00000000007B +:0494EE00000000007A +:0494EF000000000079 +:0494F0000000000078 +:0494F1000000000077 +:0494F2000000000076 +:0494F3000000000075 +:0494F4000000000074 +:0494F5000000000073 +:0494F6000000000072 +:0494F7000000000071 +:0494F8000000000070 +:0494F900000000006F +:0494FA00000000006E +:0494FB00000000006D +:0494FC00000000006C +:0494FD00000000006B +:0494FE00000000006A +:0494FF000000000069 +:049500000000000067 +:049501000000000066 +:049502000000000065 +:049503000000000064 +:049504000000000063 +:049505000000000062 +:049506000000000061 +:049507000000000060 +:04950800000000005F +:04950900000000005E +:04950A00000000005D +:04950B00000000005C +:04950C00000000005B +:04950D00000000005A +:04950E000000000059 +:04950F000000000058 +:049510000000000057 +:049511000000000056 +:049512000000000055 +:049513000000000054 +:049514000000000053 +:049515000000000052 +:049516000000000051 +:049517000000000050 +:04951800000000004F +:04951900000000004E +:04951A00000000004D +:04951B00000000004C +:04951C00000000004B +:04951D00000000004A +:04951E000000000049 +:04951F000000000048 +:049520000000000047 +:049521000000000046 +:049522000000000045 +:049523000000000044 +:049524000000000043 +:049525000000000042 +:049526000000000041 +:049527000000000040 +:04952800000000003F +:04952900000000003E +:04952A00000000003D +:04952B00000000003C +:04952C00000000003B +:04952D00000000003A +:04952E000000000039 +:04952F000000000038 +:049530000000000037 +:049531000000000036 +:049532000000000035 +:049533000000000034 +:049534000000000033 +:049535000000000032 +:049536000000000031 +:049537000000000030 +:04953800000000002F +:04953900000000002E +:04953A00000000002D +:04953B00000000002C +:04953C00000000002B +:04953D00000000002A +:04953E000000000029 +:04953F000000000028 +:049540000000000027 +:049541000000000026 +:049542000000000025 +:049543000000000024 +:049544000000000023 +:049545000000000022 +:049546000000000021 +:049547000000000020 +:04954800000000001F +:04954900000000001E +:04954A00000000001D +:04954B00000000001C +:04954C00000000001B +:04954D00000000001A +:04954E000000000019 +:04954F000000000018 +:049550000000000017 +:049551000000000016 +:049552000000000015 +:049553000000000014 +:049554000000000013 +:049555000000000012 +:049556000000000011 +:049557000000000010 +:04955800000000000F +:04955900000000000E +:04955A00000000000D +:04955B00000000000C +:04955C00000000000B +:04955D00000000000A +:04955E000000000009 +:04955F000000000008 +:049560000000000007 +:049561000000000006 +:049562000000000005 +:049563000000000004 +:049564000000000003 +:049565000000000002 +:049566000000000001 +:049567000000000000 +:0495680000000000FF +:0495690000000000FE +:04956A0000000000FD +:04956B0000000000FC +:04956C0000000000FB +:04956D0000000000FA +:04956E0000000000F9 +:04956F0000000000F8 +:0495700000000000F7 +:0495710000000000F6 +:0495720000000000F5 +:0495730000000000F4 +:0495740000000000F3 +:0495750000000000F2 +:0495760000000000F1 +:0495770000000000F0 +:0495780000000000EF +:0495790000000000EE +:04957A0000000000ED +:04957B0000000000EC +:04957C0000000000EB +:04957D0000000000EA +:04957E0000000000E9 +:04957F0000000000E8 +:0495800000000000E7 +:0495810000000000E6 +:0495820000000000E5 +:0495830000000000E4 +:0495840000000000E3 +:0495850000000000E2 +:0495860000000000E1 +:0495870000000000E0 +:0495880000000000DF +:0495890000000000DE +:04958A0000000000DD +:04958B0000000000DC +:04958C0000000000DB +:04958D0000000000DA +:04958E0000000000D9 +:04958F0000000000D8 +:0495900000000000D7 +:0495910000000000D6 +:0495920000000000D5 +:0495930000000000D4 +:0495940000000000D3 +:0495950000000000D2 +:0495960000000000D1 +:0495970000000000D0 +:0495980000000000CF +:0495990000000000CE +:04959A0000000000CD +:04959B0000000000CC +:04959C0000000000CB +:04959D0000000000CA +:04959E0000000000C9 +:04959F0000000000C8 +:0495A00000000000C7 +:0495A10000000000C6 +:0495A20000000000C5 +:0495A30000000000C4 +:0495A40000000000C3 +:0495A50000000000C2 +:0495A60000000000C1 +:0495A70000000000C0 +:0495A80000000000BF +:0495A90000000000BE +:0495AA0000000000BD +:0495AB0000000000BC +:0495AC0000000000BB +:0495AD0000000000BA +:0495AE0000000000B9 +:0495AF0000000000B8 +:0495B00000000000B7 +:0495B10000000000B6 +:0495B20000000000B5 +:0495B30000000000B4 +:0495B40000000000B3 +:0495B50000000000B2 +:0495B60000000000B1 +:0495B70000000000B0 +:0495B80000000000AF +:0495B90000000000AE +:0495BA0000000000AD +:0495BB0000000000AC +:0495BC0000000000AB +:0495BD0000000000AA +:0495BE0000000000A9 +:0495BF0000000000A8 +:0495C00000000000A7 +:0495C10000000000A6 +:0495C20000000000A5 +:0495C30000000000A4 +:0495C40000000000A3 +:0495C50000000000A2 +:0495C60000000000A1 +:0495C70000000000A0 +:0495C800000000009F +:0495C900000000009E +:0495CA00000000009D +:0495CB00000000009C +:0495CC00000000009B +:0495CD00000000009A +:0495CE000000000099 +:0495CF000000000098 +:0495D0000000000097 +:0495D1000000000096 +:0495D2000000000095 +:0495D3000000000094 +:0495D4000000000093 +:0495D5000000000092 +:0495D6000000000091 +:0495D7000000000090 +:0495D800000000008F +:0495D900000000008E +:0495DA00000000008D +:0495DB00000000008C +:0495DC00000000008B +:0495DD00000000008A +:0495DE000000000089 +:0495DF000000000088 +:0495E0000000000087 +:0495E1000000000086 +:0495E2000000000085 +:0495E3000000000084 +:0495E4000000000083 +:0495E5000000000082 +:0495E6000000000081 +:0495E7000000000080 +:0495E800000000007F +:0495E900000000007E +:0495EA00000000007D +:0495EB00000000007C +:0495EC00000000007B +:0495ED00000000007A +:0495EE000000000079 +:0495EF000000000078 +:0495F0000000000077 +:0495F1000000000076 +:0495F2000000000075 +:0495F3000000000074 +:0495F4000000000073 +:0495F5000000000072 +:0495F6000000000071 +:0495F7000000000070 +:0495F800000000006F +:0495F900000000006E +:0495FA00000000006D +:0495FB00000000006C +:0495FC00000000006B +:0495FD00000000006A +:0495FE000000000069 +:0495FF000000000068 +:049600000000000066 +:049601000000000065 +:049602000000000064 +:049603000000000063 +:049604000000000062 +:049605000000000061 +:049606000000000060 +:04960700000000005F +:04960800000000005E +:04960900000000005D +:04960A00000000005C +:04960B00000000005B +:04960C00000000005A +:04960D000000000059 +:04960E000000000058 +:04960F000000000057 +:049610000000000056 +:049611000000000055 +:049612000000000054 +:049613000000000053 +:049614000000000052 +:049615000000000051 +:049616000000000050 +:04961700000000004F +:04961800000000004E +:04961900000000004D +:04961A00000000004C +:04961B00000000004B +:04961C00000000004A +:04961D000000000049 +:04961E000000000048 +:04961F000000000047 +:049620000000000046 +:049621000000000045 +:049622000000000044 +:049623000000000043 +:049624000000000042 +:049625000000000041 +:049626000000000040 +:04962700000000003F +:04962800000000003E +:04962900000000003D +:04962A00000000003C +:04962B00000000003B +:04962C00000000003A +:04962D000000000039 +:04962E000000000038 +:04962F000000000037 +:049630000000000036 +:049631000000000035 +:049632000000000034 +:049633000000000033 +:049634000000000032 +:049635000000000031 +:049636000000000030 +:04963700000000002F +:04963800000000002E +:04963900000000002D +:04963A00000000002C +:04963B00000000002B +:04963C00000000002A +:04963D000000000029 +:04963E000000000028 +:04963F000000000027 +:049640000000000026 +:049641000000000025 +:049642000000000024 +:049643000000000023 +:049644000000000022 +:049645000000000021 +:049646000000000020 +:04964700000000001F +:04964800000000001E +:04964900000000001D +:04964A00000000001C +:04964B00000000001B +:04964C00000000001A +:04964D000000000019 +:04964E000000000018 +:04964F000000000017 +:049650000000000016 +:049651000000000015 +:049652000000000014 +:049653000000000013 +:049654000000000012 +:049655000000000011 +:049656000000000010 +:04965700000000000F +:04965800000000000E +:04965900000000000D +:04965A00000000000C +:04965B00000000000B +:04965C00000000000A +:04965D000000000009 +:04965E000000000008 +:04965F000000000007 +:049660000000000006 +:049661000000000005 +:049662000000000004 +:049663000000000003 +:049664000000000002 +:049665000000000001 +:049666000000000000 +:0496670000000000FF +:0496680000000000FE +:0496690000000000FD +:04966A0000000000FC +:04966B0000000000FB +:04966C0000000000FA +:04966D0000000000F9 +:04966E0000000000F8 +:04966F0000000000F7 +:0496700000000000F6 +:0496710000000000F5 +:0496720000000000F4 +:0496730000000000F3 +:0496740000000000F2 +:0496750000000000F1 +:0496760000000000F0 +:0496770000000000EF +:0496780000000000EE +:0496790000000000ED +:04967A0000000000EC +:04967B0000000000EB +:04967C0000000000EA +:04967D0000000000E9 +:04967E0000000000E8 +:04967F0000000000E7 +:0496800000000000E6 +:0496810000000000E5 +:0496820000000000E4 +:0496830000000000E3 +:0496840000000000E2 +:0496850000000000E1 +:0496860000000000E0 +:0496870000000000DF +:0496880000000000DE +:0496890000000000DD +:04968A0000000000DC +:04968B0000000000DB +:04968C0000000000DA +:04968D0000000000D9 +:04968E0000000000D8 +:04968F0000000000D7 +:0496900000000000D6 +:0496910000000000D5 +:0496920000000000D4 +:0496930000000000D3 +:0496940000000000D2 +:0496950000000000D1 +:0496960000000000D0 +:0496970000000000CF +:0496980000000000CE +:0496990000000000CD +:04969A0000000000CC +:04969B0000000000CB +:04969C0000000000CA +:04969D0000000000C9 +:04969E0000000000C8 +:04969F0000000000C7 +:0496A00000000000C6 +:0496A10000000000C5 +:0496A20000000000C4 +:0496A30000000000C3 +:0496A40000000000C2 +:0496A50000000000C1 +:0496A60000000000C0 +:0496A70000000000BF +:0496A80000000000BE +:0496A90000000000BD +:0496AA0000000000BC +:0496AB0000000000BB +:0496AC0000000000BA +:0496AD0000000000B9 +:0496AE0000000000B8 +:0496AF0000000000B7 +:0496B00000000000B6 +:0496B10000000000B5 +:0496B20000000000B4 +:0496B30000000000B3 +:0496B40000000000B2 +:0496B50000000000B1 +:0496B60000000000B0 +:0496B70000000000AF +:0496B80000000000AE +:0496B90000000000AD +:0496BA0000000000AC +:0496BB0000000000AB +:0496BC0000000000AA +:0496BD0000000000A9 +:0496BE0000000000A8 +:0496BF0000000000A7 +:0496C00000000000A6 +:0496C10000000000A5 +:0496C20000000000A4 +:0496C30000000000A3 +:0496C40000000000A2 +:0496C50000000000A1 +:0496C60000000000A0 +:0496C700000000009F +:0496C800000000009E +:0496C900000000009D +:0496CA00000000009C +:0496CB00000000009B +:0496CC00000000009A +:0496CD000000000099 +:0496CE000000000098 +:0496CF000000000097 +:0496D0000000000096 +:0496D1000000000095 +:0496D2000000000094 +:0496D3000000000093 +:0496D4000000000092 +:0496D5000000000091 +:0496D6000000000090 +:0496D700000000008F +:0496D800000000008E +:0496D900000000008D +:0496DA00000000008C +:0496DB00000000008B +:0496DC00000000008A +:0496DD000000000089 +:0496DE000000000088 +:0496DF000000000087 +:0496E0000000000086 +:0496E1000000000085 +:0496E2000000000084 +:0496E3000000000083 +:0496E4000000000082 +:0496E5000000000081 +:0496E6000000000080 +:0496E700000000007F +:0496E800000000007E +:0496E900000000007D +:0496EA00000000007C +:0496EB00000000007B +:0496EC00000000007A +:0496ED000000000079 +:0496EE000000000078 +:0496EF000000000077 +:0496F0000000000076 +:0496F1000000000075 +:0496F2000000000074 +:0496F3000000000073 +:0496F4000000000072 +:0496F5000000000071 +:0496F6000000000070 +:0496F700000000006F +:0496F800000000006E +:0496F900000000006D +:0496FA00000000006C +:0496FB00000000006B +:0496FC00000000006A +:0496FD000000000069 +:0496FE000000000068 +:0496FF000000000067 +:049700000000000065 +:049701000000000064 +:049702000000000063 +:049703000000000062 +:049704000000000061 +:049705000000000060 +:04970600000000005F +:04970700000000005E +:04970800000000005D +:04970900000000005C +:04970A00000000005B +:04970B00000000005A +:04970C000000000059 +:04970D000000000058 +:04970E000000000057 +:04970F000000000056 +:049710000000000055 +:049711000000000054 +:049712000000000053 +:049713000000000052 +:049714000000000051 +:049715000000000050 +:04971600000000004F +:04971700000000004E +:04971800000000004D +:04971900000000004C +:04971A00000000004B +:04971B00000000004A +:04971C000000000049 +:04971D000000000048 +:04971E000000000047 +:04971F000000000046 +:049720000000000045 +:049721000000000044 +:049722000000000043 +:049723000000000042 +:049724000000000041 +:049725000000000040 +:04972600000000003F +:04972700000000003E +:04972800000000003D +:04972900000000003C +:04972A00000000003B +:04972B00000000003A +:04972C000000000039 +:04972D000000000038 +:04972E000000000037 +:04972F000000000036 +:049730000000000035 +:049731000000000034 +:049732000000000033 +:049733000000000032 +:049734000000000031 +:049735000000000030 +:04973600000000002F +:04973700000000002E +:04973800000000002D +:04973900000000002C +:04973A00000000002B +:04973B00000000002A +:04973C000000000029 +:04973D000000000028 +:04973E000000000027 +:04973F000000000026 +:049740000000000025 +:049741000000000024 +:049742000000000023 +:049743000000000022 +:049744000000000021 +:049745000000000020 +:04974600000000001F +:04974700000000001E +:04974800000000001D +:04974900000000001C +:04974A00000000001B +:04974B00000000001A +:04974C000000000019 +:04974D000000000018 +:04974E000000000017 +:04974F000000000016 +:049750000000000015 +:049751000000000014 +:049752000000000013 +:049753000000000012 +:049754000000000011 +:049755000000000010 +:04975600000000000F +:04975700000000000E +:04975800000000000D +:04975900000000000C +:04975A00000000000B +:04975B00000000000A +:04975C000000000009 +:04975D000000000008 +:04975E000000000007 +:04975F000000000006 +:049760000000000005 +:049761000000000004 +:049762000000000003 +:049763000000000002 +:049764000000000001 +:049765000000000000 +:0497660000000000FF +:0497670000000000FE +:0497680000000000FD +:0497690000000000FC +:04976A0000000000FB +:04976B0000000000FA +:04976C0000000000F9 +:04976D0000000000F8 +:04976E0000000000F7 +:04976F0000000000F6 +:0497700000000000F5 +:0497710000000000F4 +:0497720000000000F3 +:0497730000000000F2 +:0497740000000000F1 +:0497750000000000F0 +:0497760000000000EF +:0497770000000000EE +:0497780000000000ED +:0497790000000000EC +:04977A0000000000EB +:04977B0000000000EA +:04977C0000000000E9 +:04977D0000000000E8 +:04977E0000000000E7 +:04977F0000000000E6 +:0497800000000000E5 +:0497810000000000E4 +:0497820000000000E3 +:0497830000000000E2 +:0497840000000000E1 +:0497850000000000E0 +:0497860000000000DF +:0497870000000000DE +:0497880000000000DD +:0497890000000000DC +:04978A0000000000DB +:04978B0000000000DA +:04978C0000000000D9 +:04978D0000000000D8 +:04978E0000000000D7 +:04978F0000000000D6 +:0497900000000000D5 +:0497910000000000D4 +:0497920000000000D3 +:0497930000000000D2 +:0497940000000000D1 +:0497950000000000D0 +:0497960000000000CF +:0497970000000000CE +:0497980000000000CD +:0497990000000000CC +:04979A0000000000CB +:04979B0000000000CA +:04979C0000000000C9 +:04979D0000000000C8 +:04979E0000000000C7 +:04979F0000000000C6 +:0497A00000000000C5 +:0497A10000000000C4 +:0497A20000000000C3 +:0497A30000000000C2 +:0497A40000000000C1 +:0497A50000000000C0 +:0497A60000000000BF +:0497A70000000000BE +:0497A80000000000BD +:0497A90000000000BC +:0497AA0000000000BB +:0497AB0000000000BA +:0497AC0000000000B9 +:0497AD0000000000B8 +:0497AE0000000000B7 +:0497AF0000000000B6 +:0497B00000000000B5 +:0497B10000000000B4 +:0497B20000000000B3 +:0497B30000000000B2 +:0497B40000000000B1 +:0497B50000000000B0 +:0497B60000000000AF +:0497B70000000000AE +:0497B80000000000AD +:0497B90000000000AC +:0497BA0000000000AB +:0497BB0000000000AA +:0497BC0000000000A9 +:0497BD0000000000A8 +:0497BE0000000000A7 +:0497BF0000000000A6 +:0497C00000000000A5 +:0497C10000000000A4 +:0497C20000000000A3 +:0497C30000000000A2 +:0497C40000000000A1 +:0497C50000000000A0 +:0497C600000000009F +:0497C700000000009E +:0497C800000000009D +:0497C900000000009C +:0497CA00000000009B +:0497CB00000000009A +:0497CC000000000099 +:0497CD000000000098 +:0497CE000000000097 +:0497CF000000000096 +:0497D0000000000095 +:0497D1000000000094 +:0497D2000000000093 +:0497D3000000000092 +:0497D4000000000091 +:0497D5000000000090 +:0497D600000000008F +:0497D700000000008E +:0497D800000000008D +:0497D900000000008C +:0497DA00000000008B +:0497DB00000000008A +:0497DC000000000089 +:0497DD000000000088 +:0497DE000000000087 +:0497DF000000000086 +:0497E0000000000085 +:0497E1000000000084 +:0497E2000000000083 +:0497E3000000000082 +:0497E4000000000081 +:0497E5000000000080 +:0497E600000000007F +:0497E700000000007E +:0497E800000000007D +:0497E900000000007C +:0497EA00000000007B +:0497EB00000000007A +:0497EC000000000079 +:0497ED000000000078 +:0497EE000000000077 +:0497EF000000000076 +:0497F0000000000075 +:0497F1000000000074 +:0497F2000000000073 +:0497F3000000000072 +:0497F4000000000071 +:0497F5000000000070 +:0497F600000000006F +:0497F700000000006E +:0497F800000000006D +:0497F900000000006C +:0497FA00000000006B +:0497FB00000000006A +:0497FC000000000069 +:0497FD000000000068 +:0497FE000000000067 +:0497FF000000000066 +:049800000000000064 +:049801000000000063 +:049802000000000062 +:049803000000000061 +:049804000000000060 +:04980500000000005F +:04980600000000005E +:04980700000000005D +:04980800000000005C +:04980900000000005B +:04980A00000000005A +:04980B000000000059 +:04980C000000000058 +:04980D000000000057 +:04980E000000000056 +:04980F000000000055 +:049810000000000054 +:049811000000000053 +:049812000000000052 +:049813000000000051 +:049814000000000050 +:04981500000000004F +:04981600000000004E +:04981700000000004D +:04981800000000004C +:04981900000000004B +:04981A00000000004A +:04981B000000000049 +:04981C000000000048 +:04981D000000000047 +:04981E000000000046 +:04981F000000000045 +:049820000000000044 +:049821000000000043 +:049822000000000042 +:049823000000000041 +:049824000000000040 +:04982500000000003F +:04982600000000003E +:04982700000000003D +:04982800000000003C +:04982900000000003B +:04982A00000000003A +:04982B000000000039 +:04982C000000000038 +:04982D000000000037 +:04982E000000000036 +:04982F000000000035 +:049830000000000034 +:049831000000000033 +:049832000000000032 +:049833000000000031 +:049834000000000030 +:04983500000000002F +:04983600000000002E +:04983700000000002D +:04983800000000002C +:04983900000000002B +:04983A00000000002A +:04983B000000000029 +:04983C000000000028 +:04983D000000000027 +:04983E000000000026 +:04983F000000000025 +:049840000000000024 +:049841000000000023 +:049842000000000022 +:049843000000000021 +:049844000000000020 +:04984500000000001F +:04984600000000001E +:04984700000000001D +:04984800000000001C +:04984900000000001B +:04984A00000000001A +:04984B000000000019 +:04984C000000000018 +:04984D000000000017 +:04984E000000000016 +:04984F000000000015 +:049850000000000014 +:049851000000000013 +:049852000000000012 +:049853000000000011 +:049854000000000010 +:04985500000000000F +:04985600000000000E +:04985700000000000D +:04985800000000000C +:04985900000000000B +:04985A00000000000A +:04985B000000000009 +:04985C000000000008 +:04985D000000000007 +:04985E000000000006 +:04985F000000000005 +:049860000000000004 +:049861000000000003 +:049862000000000002 +:049863000000000001 +:049864000000000000 +:0498650000000000FF +:0498660000000000FE +:0498670000000000FD +:0498680000000000FC +:0498690000000000FB +:04986A0000000000FA +:04986B0000000000F9 +:04986C0000000000F8 +:04986D0000000000F7 +:04986E0000000000F6 +:04986F0000000000F5 +:0498700000000000F4 +:0498710000000000F3 +:0498720000000000F2 +:0498730000000000F1 +:0498740000000000F0 +:0498750000000000EF +:0498760000000000EE +:0498770000000000ED +:0498780000000000EC +:0498790000000000EB +:04987A0000000000EA +:04987B0000000000E9 +:04987C0000000000E8 +:04987D0000000000E7 +:04987E0000000000E6 +:04987F0000000000E5 +:0498800000000000E4 +:0498810000000000E3 +:0498820000000000E2 +:0498830000000000E1 +:0498840000000000E0 +:0498850000000000DF +:0498860000000000DE +:0498870000000000DD +:0498880000000000DC +:0498890000000000DB +:04988A0000000000DA +:04988B0000000000D9 +:04988C0000000000D8 +:04988D0000000000D7 +:04988E0000000000D6 +:04988F0000000000D5 +:0498900000000000D4 +:0498910000000000D3 +:0498920000000000D2 +:0498930000000000D1 +:0498940000000000D0 +:0498950000000000CF +:0498960000000000CE +:0498970000000000CD +:0498980000000000CC +:0498990000000000CB +:04989A0000000000CA +:04989B0000000000C9 +:04989C0000000000C8 +:04989D0000000000C7 +:04989E0000000000C6 +:04989F0000000000C5 +:0498A00000000000C4 +:0498A10000000000C3 +:0498A20000000000C2 +:0498A30000000000C1 +:0498A40000000000C0 +:0498A50000000000BF +:0498A60000000000BE +:0498A70000000000BD +:0498A80000000000BC +:0498A90000000000BB +:0498AA0000000000BA +:0498AB0000000000B9 +:0498AC0000000000B8 +:0498AD0000000000B7 +:0498AE0000000000B6 +:0498AF0000000000B5 +:0498B00000000000B4 +:0498B10000000000B3 +:0498B20000000000B2 +:0498B30000000000B1 +:0498B40000000000B0 +:0498B50000000000AF +:0498B60000000000AE +:0498B70000000000AD +:0498B80000000000AC +:0498B90000000000AB +:0498BA0000000000AA +:0498BB0000000000A9 +:0498BC0000000000A8 +:0498BD0000000000A7 +:0498BE0000000000A6 +:0498BF0000000000A5 +:0498C00000000000A4 +:0498C10000000000A3 +:0498C20000000000A2 +:0498C30000000000A1 +:0498C40000000000A0 +:0498C500000000009F +:0498C600000000009E +:0498C700000000009D +:0498C800000000009C +:0498C900000000009B +:0498CA00000000009A +:0498CB000000000099 +:0498CC000000000098 +:0498CD000000000097 +:0498CE000000000096 +:0498CF000000000095 +:0498D0000000000094 +:0498D1000000000093 +:0498D2000000000092 +:0498D3000000000091 +:0498D4000000000090 +:0498D500000000008F +:0498D600000000008E +:0498D700000000008D +:0498D800000000008C +:0498D900000000008B +:0498DA00000000008A +:0498DB000000000089 +:0498DC000000000088 +:0498DD000000000087 +:0498DE000000000086 +:0498DF000000000085 +:0498E0000000000084 +:0498E1000000000083 +:0498E2000000000082 +:0498E3000000000081 +:0498E4000000000080 +:0498E500000000007F +:0498E600000000007E +:0498E700000000007D +:0498E800000000007C +:0498E900000000007B +:0498EA00000000007A +:0498EB000000000079 +:0498EC000000000078 +:0498ED000000000077 +:0498EE000000000076 +:0498EF000000000075 +:0498F0000000000074 +:0498F1000000000073 +:0498F2000000000072 +:0498F3000000000071 +:0498F4000000000070 +:0498F500000000006F +:0498F600000000006E +:0498F700000000006D +:0498F800000000006C +:0498F900000000006B +:0498FA00000000006A +:0498FB000000000069 +:0498FC000000000068 +:0498FD000000000067 +:0498FE000000000066 +:0498FF000000000065 +:049900000000000063 +:049901000000000062 +:049902000000000061 +:049903000000000060 +:04990400000000005F +:04990500000000005E +:04990600000000005D +:04990700000000005C +:04990800000000005B +:04990900000000005A +:04990A000000000059 +:04990B000000000058 +:04990C000000000057 +:04990D000000000056 +:04990E000000000055 +:04990F000000000054 +:049910000000000053 +:049911000000000052 +:049912000000000051 +:049913000000000050 +:04991400000000004F +:04991500000000004E +:04991600000000004D +:04991700000000004C +:04991800000000004B +:04991900000000004A +:04991A000000000049 +:04991B000000000048 +:04991C000000000047 +:04991D000000000046 +:04991E000000000045 +:04991F000000000044 +:049920000000000043 +:049921000000000042 +:049922000000000041 +:049923000000000040 +:04992400000000003F +:04992500000000003E +:04992600000000003D +:04992700000000003C +:04992800000000003B +:04992900000000003A +:04992A000000000039 +:04992B000000000038 +:04992C000000000037 +:04992D000000000036 +:04992E000000000035 +:04992F000000000034 +:049930000000000033 +:049931000000000032 +:049932000000000031 +:049933000000000030 +:04993400000000002F +:04993500000000002E +:04993600000000002D +:04993700000000002C +:04993800000000002B +:04993900000000002A +:04993A000000000029 +:04993B000000000028 +:04993C000000000027 +:04993D000000000026 +:04993E000000000025 +:04993F000000000024 +:049940000000000023 +:049941000000000022 +:049942000000000021 +:049943000000000020 +:04994400000000001F +:04994500000000001E +:04994600000000001D +:04994700000000001C +:04994800000000001B +:04994900000000001A +:04994A000000000019 +:04994B000000000018 +:04994C000000000017 +:04994D000000000016 +:04994E000000000015 +:04994F000000000014 +:049950000000000013 +:049951000000000012 +:049952000000000011 +:049953000000000010 +:04995400000000000F +:04995500000000000E +:04995600000000000D +:04995700000000000C +:04995800000000000B +:04995900000000000A +:04995A000000000009 +:04995B000000000008 +:04995C000000000007 +:04995D000000000006 +:04995E000000000005 +:04995F000000000004 +:049960000000000003 +:049961000000000002 +:049962000000000001 +:049963000000000000 +:0499640000000000FF +:0499650000000000FE +:0499660000000000FD +:0499670000000000FC +:0499680000000000FB +:0499690000000000FA +:04996A0000000000F9 +:04996B0000000000F8 +:04996C0000000000F7 +:04996D0000000000F6 +:04996E0000000000F5 +:04996F0000000000F4 +:0499700000000000F3 +:0499710000000000F2 +:0499720000000000F1 +:0499730000000000F0 +:0499740000000000EF +:0499750000000000EE +:0499760000000000ED +:0499770000000000EC +:0499780000000000EB +:0499790000000000EA +:04997A0000000000E9 +:04997B0000000000E8 +:04997C0000000000E7 +:04997D0000000000E6 +:04997E0000000000E5 +:04997F0000000000E4 +:0499800000000000E3 +:0499810000000000E2 +:0499820000000000E1 +:0499830000000000E0 +:0499840000000000DF +:0499850000000000DE +:0499860000000000DD +:0499870000000000DC +:0499880000000000DB +:0499890000000000DA +:04998A0000000000D9 +:04998B0000000000D8 +:04998C0000000000D7 +:04998D0000000000D6 +:04998E0000000000D5 +:04998F0000000000D4 +:0499900000000000D3 +:0499910000000000D2 +:0499920000000000D1 +:0499930000000000D0 +:0499940000000000CF +:0499950000000000CE +:0499960000000000CD +:0499970000000000CC +:0499980000000000CB +:0499990000000000CA +:04999A0000000000C9 +:04999B0000000000C8 +:04999C0000000000C7 +:04999D0000000000C6 +:04999E0000000000C5 +:04999F0000000000C4 +:0499A00000000000C3 +:0499A10000000000C2 +:0499A20000000000C1 +:0499A30000000000C0 +:0499A40000000000BF +:0499A50000000000BE +:0499A60000000000BD +:0499A70000000000BC +:0499A80000000000BB +:0499A90000000000BA +:0499AA0000000000B9 +:0499AB0000000000B8 +:0499AC0000000000B7 +:0499AD0000000000B6 +:0499AE0000000000B5 +:0499AF0000000000B4 +:0499B00000000000B3 +:0499B10000000000B2 +:0499B20000000000B1 +:0499B30000000000B0 +:0499B40000000000AF +:0499B50000000000AE +:0499B60000000000AD +:0499B70000000000AC +:0499B80000000000AB +:0499B90000000000AA +:0499BA0000000000A9 +:0499BB0000000000A8 +:0499BC0000000000A7 +:0499BD0000000000A6 +:0499BE0000000000A5 +:0499BF0000000000A4 +:0499C00000000000A3 +:0499C10000000000A2 +:0499C20000000000A1 +:0499C30000000000A0 +:0499C400000000009F +:0499C500000000009E +:0499C600000000009D +:0499C700000000009C +:0499C800000000009B +:0499C900000000009A +:0499CA000000000099 +:0499CB000000000098 +:0499CC000000000097 +:0499CD000000000096 +:0499CE000000000095 +:0499CF000000000094 +:0499D0000000000093 +:0499D1000000000092 +:0499D2000000000091 +:0499D3000000000090 +:0499D400000000008F +:0499D500000000008E +:0499D600000000008D +:0499D700000000008C +:0499D800000000008B +:0499D900000000008A +:0499DA000000000089 +:0499DB000000000088 +:0499DC000000000087 +:0499DD000000000086 +:0499DE000000000085 +:0499DF000000000084 +:0499E0000000000083 +:0499E1000000000082 +:0499E2000000000081 +:0499E3000000000080 +:0499E400000000007F +:0499E500000000007E +:0499E600000000007D +:0499E700000000007C +:0499E800000000007B +:0499E900000000007A +:0499EA000000000079 +:0499EB000000000078 +:0499EC000000000077 +:0499ED000000000076 +:0499EE000000000075 +:0499EF000000000074 +:0499F0000000000073 +:0499F1000000000072 +:0499F2000000000071 +:0499F3000000000070 +:0499F400000000006F +:0499F500000000006E +:0499F600000000006D +:0499F700000000006C +:0499F800000000006B +:0499F900000000006A +:0499FA000000000069 +:0499FB000000000068 +:0499FC000000000067 +:0499FD000000000066 +:0499FE000000000065 +:0499FF000000000064 +:049A00000000000062 +:049A01000000000061 +:049A02000000000060 +:049A0300000000005F +:049A0400000000005E +:049A0500000000005D +:049A0600000000005C +:049A0700000000005B +:049A0800000000005A +:049A09000000000059 +:049A0A000000000058 +:049A0B000000000057 +:049A0C000000000056 +:049A0D000000000055 +:049A0E000000000054 +:049A0F000000000053 +:049A10000000000052 +:049A11000000000051 +:049A12000000000050 +:049A1300000000004F +:049A1400000000004E +:049A1500000000004D +:049A1600000000004C +:049A1700000000004B +:049A1800000000004A +:049A19000000000049 +:049A1A000000000048 +:049A1B000000000047 +:049A1C000000000046 +:049A1D000000000045 +:049A1E000000000044 +:049A1F000000000043 +:049A20000000000042 +:049A21000000000041 +:049A22000000000040 +:049A2300000000003F +:049A2400000000003E +:049A2500000000003D +:049A2600000000003C +:049A2700000000003B +:049A2800000000003A +:049A29000000000039 +:049A2A000000000038 +:049A2B000000000037 +:049A2C000000000036 +:049A2D000000000035 +:049A2E000000000034 +:049A2F000000000033 +:049A30000000000032 +:049A31000000000031 +:049A32000000000030 +:049A3300000000002F +:049A3400000000002E +:049A3500000000002D +:049A3600000000002C +:049A3700000000002B +:049A3800000000002A +:049A39000000000029 +:049A3A000000000028 +:049A3B000000000027 +:049A3C000000000026 +:049A3D000000000025 +:049A3E000000000024 +:049A3F000000000023 +:049A40000000000022 +:049A41000000000021 +:049A42000000000020 +:049A4300000000001F +:049A4400000000001E +:049A4500000000001D +:049A4600000000001C +:049A4700000000001B +:049A4800000000001A +:049A49000000000019 +:049A4A000000000018 +:049A4B000000000017 +:049A4C000000000016 +:049A4D000000000015 +:049A4E000000000014 +:049A4F000000000013 +:049A50000000000012 +:049A51000000000011 +:049A52000000000010 +:049A5300000000000F +:049A5400000000000E +:049A5500000000000D +:049A5600000000000C +:049A5700000000000B +:049A5800000000000A +:049A59000000000009 +:049A5A000000000008 +:049A5B000000000007 +:049A5C000000000006 +:049A5D000000000005 +:049A5E000000000004 +:049A5F000000000003 +:049A60000000000002 +:049A61000000000001 +:049A62000000000000 +:049A630000000000FF +:049A640000000000FE +:049A650000000000FD +:049A660000000000FC +:049A670000000000FB +:049A680000000000FA +:049A690000000000F9 +:049A6A0000000000F8 +:049A6B0000000000F7 +:049A6C0000000000F6 +:049A6D0000000000F5 +:049A6E0000000000F4 +:049A6F0000000000F3 +:049A700000000000F2 +:049A710000000000F1 +:049A720000000000F0 +:049A730000000000EF +:049A740000000000EE +:049A750000000000ED +:049A760000000000EC +:049A770000000000EB +:049A780000000000EA +:049A790000000000E9 +:049A7A0000000000E8 +:049A7B0000000000E7 +:049A7C0000000000E6 +:049A7D0000000000E5 +:049A7E0000000000E4 +:049A7F0000000000E3 +:049A800000000000E2 +:049A810000000000E1 +:049A820000000000E0 +:049A830000000000DF +:049A840000000000DE +:049A850000000000DD +:049A860000000000DC +:049A870000000000DB +:049A880000000000DA +:049A890000000000D9 +:049A8A0000000000D8 +:049A8B0000000000D7 +:049A8C0000000000D6 +:049A8D0000000000D5 +:049A8E0000000000D4 +:049A8F0000000000D3 +:049A900000000000D2 +:049A910000000000D1 +:049A920000000000D0 +:049A930000000000CF +:049A940000000000CE +:049A950000000000CD +:049A960000000000CC +:049A970000000000CB +:049A980000000000CA +:049A990000000000C9 +:049A9A0000000000C8 +:049A9B0000000000C7 +:049A9C0000000000C6 +:049A9D0000000000C5 +:049A9E0000000000C4 +:049A9F0000000000C3 +:049AA00000000000C2 +:049AA10000000000C1 +:049AA20000000000C0 +:049AA30000000000BF +:049AA40000000000BE +:049AA50000000000BD +:049AA60000000000BC +:049AA70000000000BB +:049AA80000000000BA +:049AA90000000000B9 +:049AAA0000000000B8 +:049AAB0000000000B7 +:049AAC0000000000B6 +:049AAD0000000000B5 +:049AAE0000000000B4 +:049AAF0000000000B3 +:049AB00000000000B2 +:049AB10000000000B1 +:049AB20000000000B0 +:049AB30000000000AF +:049AB40000000000AE +:049AB50000000000AD +:049AB60000000000AC +:049AB70000000000AB +:049AB80000000000AA +:049AB90000000000A9 +:049ABA0000000000A8 +:049ABB0000000000A7 +:049ABC0000000000A6 +:049ABD0000000000A5 +:049ABE0000000000A4 +:049ABF0000000000A3 +:049AC00000000000A2 +:049AC10000000000A1 +:049AC20000000000A0 +:049AC300000000009F +:049AC400000000009E +:049AC500000000009D +:049AC600000000009C +:049AC700000000009B +:049AC800000000009A +:049AC9000000000099 +:049ACA000000000098 +:049ACB000000000097 +:049ACC000000000096 +:049ACD000000000095 +:049ACE000000000094 +:049ACF000000000093 +:049AD0000000000092 +:049AD1000000000091 +:049AD2000000000090 +:049AD300000000008F +:049AD400000000008E +:049AD500000000008D +:049AD600000000008C +:049AD700000000008B +:049AD800000000008A +:049AD9000000000089 +:049ADA000000000088 +:049ADB000000000087 +:049ADC000000000086 +:049ADD000000000085 +:049ADE000000000084 +:049ADF000000000083 +:049AE0000000000082 +:049AE1000000000081 +:049AE2000000000080 +:049AE300000000007F +:049AE400000000007E +:049AE500000000007D +:049AE600000000007C +:049AE700000000007B +:049AE800000000007A +:049AE9000000000079 +:049AEA000000000078 +:049AEB000000000077 +:049AEC000000000076 +:049AED000000000075 +:049AEE000000000074 +:049AEF000000000073 +:049AF0000000000072 +:049AF1000000000071 +:049AF2000000000070 +:049AF300000000006F +:049AF400000000006E +:049AF500000000006D +:049AF600000000006C +:049AF700000000006B +:049AF800000000006A +:049AF9000000000069 +:049AFA000000000068 +:049AFB000000000067 +:049AFC000000000066 +:049AFD000000000065 +:049AFE000000000064 +:049AFF000000000063 +:049B00000000000061 +:049B01000000000060 +:049B0200000000005F +:049B0300000000005E +:049B0400000000005D +:049B0500000000005C +:049B0600000000005B +:049B0700000000005A +:049B08000000000059 +:049B09000000000058 +:049B0A000000000057 +:049B0B000000000056 +:049B0C000000000055 +:049B0D000000000054 +:049B0E000000000053 +:049B0F000000000052 +:049B10000000000051 +:049B11000000000050 +:049B1200000000004F +:049B1300000000004E +:049B1400000000004D +:049B1500000000004C +:049B1600000000004B +:049B1700000000004A +:049B18000000000049 +:049B19000000000048 +:049B1A000000000047 +:049B1B000000000046 +:049B1C000000000045 +:049B1D000000000044 +:049B1E000000000043 +:049B1F000000000042 +:049B20000000000041 +:049B21000000000040 +:049B2200000000003F +:049B2300000000003E +:049B2400000000003D +:049B2500000000003C +:049B2600000000003B +:049B2700000000003A +:049B28000000000039 +:049B29000000000038 +:049B2A000000000037 +:049B2B000000000036 +:049B2C000000000035 +:049B2D000000000034 +:049B2E000000000033 +:049B2F000000000032 +:049B30000000000031 +:049B31000000000030 +:049B3200000000002F +:049B3300000000002E +:049B3400000000002D +:049B3500000000002C +:049B3600000000002B +:049B3700000000002A +:049B38000000000029 +:049B39000000000028 +:049B3A000000000027 +:049B3B000000000026 +:049B3C000000000025 +:049B3D000000000024 +:049B3E000000000023 +:049B3F000000000022 +:049B40000000000021 +:049B41000000000020 +:049B4200000000001F +:049B4300000000001E +:049B4400000000001D +:049B4500000000001C +:049B4600000000001B +:049B4700000000001A +:049B48000000000019 +:049B49000000000018 +:049B4A000000000017 +:049B4B000000000016 +:049B4C000000000015 +:049B4D000000000014 +:049B4E000000000013 +:049B4F000000000012 +:049B50000000000011 +:049B51000000000010 +:049B5200000000000F +:049B5300000000000E +:049B5400000000000D +:049B5500000000000C +:049B5600000000000B +:049B5700000000000A +:049B58000000000009 +:049B59000000000008 +:049B5A000000000007 +:049B5B000000000006 +:049B5C000000000005 +:049B5D000000000004 +:049B5E000000000003 +:049B5F000000000002 +:049B60000000000001 +:049B61000000000000 +:049B620000000000FF +:049B630000000000FE +:049B640000000000FD +:049B650000000000FC +:049B660000000000FB +:049B670000000000FA +:049B680000000000F9 +:049B690000000000F8 +:049B6A0000000000F7 +:049B6B0000000000F6 +:049B6C0000000000F5 +:049B6D0000000000F4 +:049B6E0000000000F3 +:049B6F0000000000F2 +:049B700000000000F1 +:049B710000000000F0 +:049B720000000000EF +:049B730000000000EE +:049B740000000000ED +:049B750000000000EC +:049B760000000000EB +:049B770000000000EA +:049B780000000000E9 +:049B790000000000E8 +:049B7A0000000000E7 +:049B7B0000000000E6 +:049B7C0000000000E5 +:049B7D0000000000E4 +:049B7E0000000000E3 +:049B7F0000000000E2 +:049B800000000000E1 +:049B810000000000E0 +:049B820000000000DF +:049B830000000000DE +:049B840000000000DD +:049B850000000000DC +:049B860000000000DB +:049B870000000000DA +:049B880000000000D9 +:049B890000000000D8 +:049B8A0000000000D7 +:049B8B0000000000D6 +:049B8C0000000000D5 +:049B8D0000000000D4 +:049B8E0000000000D3 +:049B8F0000000000D2 +:049B900000000000D1 +:049B910000000000D0 +:049B920000000000CF +:049B930000000000CE +:049B940000000000CD +:049B950000000000CC +:049B960000000000CB +:049B970000000000CA +:049B980000000000C9 +:049B990000000000C8 +:049B9A0000000000C7 +:049B9B0000000000C6 +:049B9C0000000000C5 +:049B9D0000000000C4 +:049B9E0000000000C3 +:049B9F0000000000C2 +:049BA00000000000C1 +:049BA10000000000C0 +:049BA20000000000BF +:049BA30000000000BE +:049BA40000000000BD +:049BA50000000000BC +:049BA60000000000BB +:049BA70000000000BA +:049BA80000000000B9 +:049BA90000000000B8 +:049BAA0000000000B7 +:049BAB0000000000B6 +:049BAC0000000000B5 +:049BAD0000000000B4 +:049BAE0000000000B3 +:049BAF0000000000B2 +:049BB00000000000B1 +:049BB10000000000B0 +:049BB20000000000AF +:049BB30000000000AE +:049BB40000000000AD +:049BB50000000000AC +:049BB60000000000AB +:049BB70000000000AA +:049BB80000000000A9 +:049BB90000000000A8 +:049BBA0000000000A7 +:049BBB0000000000A6 +:049BBC0000000000A5 +:049BBD0000000000A4 +:049BBE0000000000A3 +:049BBF0000000000A2 +:049BC00000000000A1 +:049BC10000000000A0 +:049BC200000000009F +:049BC300000000009E +:049BC400000000009D +:049BC500000000009C +:049BC600000000009B +:049BC700000000009A +:049BC8000000000099 +:049BC9000000000098 +:049BCA000000000097 +:049BCB000000000096 +:049BCC000000000095 +:049BCD000000000094 +:049BCE000000000093 +:049BCF000000000092 +:049BD0000000000091 +:049BD1000000000090 +:049BD200000000008F +:049BD300000000008E +:049BD400000000008D +:049BD500000000008C +:049BD600000000008B +:049BD700000000008A +:049BD8000000000089 +:049BD9000000000088 +:049BDA000000000087 +:049BDB000000000086 +:049BDC000000000085 +:049BDD000000000084 +:049BDE000000000083 +:049BDF000000000082 +:049BE0000000000081 +:049BE1000000000080 +:049BE200000000007F +:049BE300000000007E +:049BE400000000007D +:049BE500000000007C +:049BE600000000007B +:049BE700000000007A +:049BE8000000000079 +:049BE9000000000078 +:049BEA000000000077 +:049BEB000000000076 +:049BEC000000000075 +:049BED000000000074 +:049BEE000000000073 +:049BEF000000000072 +:049BF0000000000071 +:049BF1000000000070 +:049BF200000000006F +:049BF300000000006E +:049BF400000000006D +:049BF500000000006C +:049BF600000000006B +:049BF700000000006A +:049BF8000000000069 +:049BF9000000000068 +:049BFA000000000067 +:049BFB000000000066 +:049BFC000000000065 +:049BFD000000000064 +:049BFE000000000063 +:049BFF000000000062 +:049C00000000000060 +:049C0100000000005F +:049C0200000000005E +:049C0300000000005D +:049C0400000000005C +:049C0500000000005B +:049C0600000000005A +:049C07000000000059 +:049C08000000000058 +:049C09000000000057 +:049C0A000000000056 +:049C0B000000000055 +:049C0C000000000054 +:049C0D000000000053 +:049C0E000000000052 +:049C0F000000000051 +:049C10000000000050 +:049C1100000000004F +:049C1200000000004E +:049C1300000000004D +:049C1400000000004C +:049C1500000000004B +:049C1600000000004A +:049C17000000000049 +:049C18000000000048 +:049C19000000000047 +:049C1A000000000046 +:049C1B000000000045 +:049C1C000000000044 +:049C1D000000000043 +:049C1E000000000042 +:049C1F000000000041 +:049C20000000000040 +:049C2100000000003F +:049C2200000000003E +:049C2300000000003D +:049C2400000000003C +:049C2500000000003B +:049C2600000000003A +:049C27000000000039 +:049C28000000000038 +:049C29000000000037 +:049C2A000000000036 +:049C2B000000000035 +:049C2C000000000034 +:049C2D000000000033 +:049C2E000000000032 +:049C2F000000000031 +:049C30000000000030 +:049C3100000000002F +:049C3200000000002E +:049C3300000000002D +:049C3400000000002C +:049C3500000000002B +:049C3600000000002A +:049C37000000000029 +:049C38000000000028 +:049C39000000000027 +:049C3A000000000026 +:049C3B000000000025 +:049C3C000000000024 +:049C3D000000000023 +:049C3E000000000022 +:049C3F000000000021 +:049C40000000000020 +:049C4100000000001F +:049C4200000000001E +:049C4300000000001D +:049C4400000000001C +:049C4500000000001B +:049C4600000000001A +:049C47000000000019 +:049C48000000000018 +:049C49000000000017 +:049C4A000000000016 +:049C4B000000000015 +:049C4C000000000014 +:049C4D000000000013 +:049C4E000000000012 +:049C4F000000000011 +:049C50000000000010 +:049C5100000000000F +:049C5200000000000E +:049C5300000000000D +:049C5400000000000C +:049C5500000000000B +:049C5600000000000A +:049C57000000000009 +:049C58000000000008 +:049C59000000000007 +:049C5A000000000006 +:049C5B000000000005 +:049C5C000000000004 +:049C5D000000000003 +:049C5E000000000002 +:049C5F000000000001 +:049C60000000000000 +:049C610000000000FF +:049C620000000000FE +:049C630000000000FD +:049C640000000000FC +:049C650000000000FB +:049C660000000000FA +:049C670000000000F9 +:049C680000000000F8 +:049C690000000000F7 +:049C6A0000000000F6 +:049C6B0000000000F5 +:049C6C0000000000F4 +:049C6D0000000000F3 +:049C6E0000000000F2 +:049C6F0000000000F1 +:049C700000000000F0 +:049C710000000000EF +:049C720000000000EE +:049C730000000000ED +:049C740000000000EC +:049C750000000000EB +:049C760000000000EA +:049C770000000000E9 +:049C780000000000E8 +:049C790000000000E7 +:049C7A0000000000E6 +:049C7B0000000000E5 +:049C7C0000000000E4 +:049C7D0000000000E3 +:049C7E0000000000E2 +:049C7F0000000000E1 +:049C800000000000E0 +:049C810000000000DF +:049C820000000000DE +:049C830000000000DD +:049C840000000000DC +:049C850000000000DB +:049C860000000000DA +:049C870000000000D9 +:049C880000000000D8 +:049C890000000000D7 +:049C8A0000000000D6 +:049C8B0000000000D5 +:049C8C0000000000D4 +:049C8D0000000000D3 +:049C8E0000000000D2 +:049C8F0000000000D1 +:049C900000000000D0 +:049C910000000000CF +:049C920000000000CE +:049C930000000000CD +:049C940000000000CC +:049C950000000000CB +:049C960000000000CA +:049C970000000000C9 +:049C980000000000C8 +:049C990000000000C7 +:049C9A0000000000C6 +:049C9B0000000000C5 +:049C9C0000000000C4 +:049C9D0000000000C3 +:049C9E0000000000C2 +:049C9F0000000000C1 +:049CA00000000000C0 +:049CA10000000000BF +:049CA20000000000BE +:049CA30000000000BD +:049CA40000000000BC +:049CA50000000000BB +:049CA60000000000BA +:049CA70000000000B9 +:049CA80000000000B8 +:049CA90000000000B7 +:049CAA0000000000B6 +:049CAB0000000000B5 +:049CAC0000000000B4 +:049CAD0000000000B3 +:049CAE0000000000B2 +:049CAF0000000000B1 +:049CB00000000000B0 +:049CB10000000000AF +:049CB20000000000AE +:049CB30000000000AD +:049CB40000000000AC +:049CB50000000000AB +:049CB60000000000AA +:049CB70000000000A9 +:049CB80000000000A8 +:049CB90000000000A7 +:049CBA0000000000A6 +:049CBB0000000000A5 +:049CBC0000000000A4 +:049CBD0000000000A3 +:049CBE0000000000A2 +:049CBF0000000000A1 +:049CC00000000000A0 +:049CC100000000009F +:049CC200000000009E +:049CC300000000009D +:049CC400000000009C +:049CC500000000009B +:049CC600000000009A +:049CC7000000000099 +:049CC8000000000098 +:049CC9000000000097 +:049CCA000000000096 +:049CCB000000000095 +:049CCC000000000094 +:049CCD000000000093 +:049CCE000000000092 +:049CCF000000000091 +:049CD0000000000090 +:049CD100000000008F +:049CD200000000008E +:049CD300000000008D +:049CD400000000008C +:049CD500000000008B +:049CD600000000008A +:049CD7000000000089 +:049CD8000000000088 +:049CD9000000000087 +:049CDA000000000086 +:049CDB000000000085 +:049CDC000000000084 +:049CDD000000000083 +:049CDE000000000082 +:049CDF000000000081 +:049CE0000000000080 +:049CE100000000007F +:049CE200000000007E +:049CE300000000007D +:049CE400000000007C +:049CE500000000007B +:049CE600000000007A +:049CE7000000000079 +:049CE8000000000078 +:049CE9000000000077 +:049CEA000000000076 +:049CEB000000000075 +:049CEC000000000074 +:049CED000000000073 +:049CEE000000000072 +:049CEF000000000071 +:049CF0000000000070 +:049CF100000000006F +:049CF200000000006E +:049CF300000000006D +:049CF400000000006C +:049CF500000000006B +:049CF600000000006A +:049CF7000000000069 +:049CF8000000000068 +:049CF9000000000067 +:049CFA000000000066 +:049CFB000000000065 +:049CFC000000000064 +:049CFD000000000063 +:049CFE000000000062 +:049CFF000000000061 +:049D0000000000005F +:049D0100000000005E +:049D0200000000005D +:049D0300000000005C +:049D0400000000005B +:049D0500000000005A +:049D06000000000059 +:049D07000000000058 +:049D08000000000057 +:049D09000000000056 +:049D0A000000000055 +:049D0B000000000054 +:049D0C000000000053 +:049D0D000000000052 +:049D0E000000000051 +:049D0F000000000050 +:049D1000000000004F +:049D1100000000004E +:049D1200000000004D +:049D1300000000004C +:049D1400000000004B +:049D1500000000004A +:049D16000000000049 +:049D17000000000048 +:049D18000000000047 +:049D19000000000046 +:049D1A000000000045 +:049D1B000000000044 +:049D1C000000000043 +:049D1D000000000042 +:049D1E000000000041 +:049D1F000000000040 +:049D2000000000003F +:049D2100000000003E +:049D2200000000003D +:049D2300000000003C +:049D2400000000003B +:049D2500000000003A +:049D26000000000039 +:049D27000000000038 +:049D28000000000037 +:049D29000000000036 +:049D2A000000000035 +:049D2B000000000034 +:049D2C000000000033 +:049D2D000000000032 +:049D2E000000000031 +:049D2F000000000030 +:049D3000000000002F +:049D3100000000002E +:049D3200000000002D +:049D3300000000002C +:049D3400000000002B +:049D3500000000002A +:049D36000000000029 +:049D37000000000028 +:049D38000000000027 +:049D39000000000026 +:049D3A000000000025 +:049D3B000000000024 +:049D3C000000000023 +:049D3D000000000022 +:049D3E000000000021 +:049D3F000000000020 +:049D4000000000001F +:049D4100000000001E +:049D4200000000001D +:049D4300000000001C +:049D4400000000001B +:049D4500000000001A +:049D46000000000019 +:049D47000000000018 +:049D48000000000017 +:049D49000000000016 +:049D4A000000000015 +:049D4B000000000014 +:049D4C000000000013 +:049D4D000000000012 +:049D4E000000000011 +:049D4F000000000010 +:049D5000000000000F +:049D5100000000000E +:049D5200000000000D +:049D5300000000000C +:049D5400000000000B +:049D5500000000000A +:049D56000000000009 +:049D57000000000008 +:049D58000000000007 +:049D59000000000006 +:049D5A000000000005 +:049D5B000000000004 +:049D5C000000000003 +:049D5D000000000002 +:049D5E000000000001 +:049D5F000000000000 +:049D600000000000FF +:049D610000000000FE +:049D620000000000FD +:049D630000000000FC +:049D640000000000FB +:049D650000000000FA +:049D660000000000F9 +:049D670000000000F8 +:049D680000000000F7 +:049D690000000000F6 +:049D6A0000000000F5 +:049D6B0000000000F4 +:049D6C0000000000F3 +:049D6D0000000000F2 +:049D6E0000000000F1 +:049D6F0000000000F0 +:049D700000000000EF +:049D710000000000EE +:049D720000000000ED +:049D730000000000EC +:049D740000000000EB +:049D750000000000EA +:049D760000000000E9 +:049D770000000000E8 +:049D780000000000E7 +:049D790000000000E6 +:049D7A0000000000E5 +:049D7B0000000000E4 +:049D7C0000000000E3 +:049D7D0000000000E2 +:049D7E0000000000E1 +:049D7F0000000000E0 +:049D800000000000DF +:049D810000000000DE +:049D820000000000DD +:049D830000000000DC +:049D840000000000DB +:049D850000000000DA +:049D860000000000D9 +:049D870000000000D8 +:049D880000000000D7 +:049D890000000000D6 +:049D8A0000000000D5 +:049D8B0000000000D4 +:049D8C0000000000D3 +:049D8D0000000000D2 +:049D8E0000000000D1 +:049D8F0000000000D0 +:049D900000000000CF +:049D910000000000CE +:049D920000000000CD +:049D930000000000CC +:049D940000000000CB +:049D950000000000CA +:049D960000000000C9 +:049D970000000000C8 +:049D980000000000C7 +:049D990000000000C6 +:049D9A0000000000C5 +:049D9B0000000000C4 +:049D9C0000000000C3 +:049D9D0000000000C2 +:049D9E0000000000C1 +:049D9F0000000000C0 +:049DA00000000000BF +:049DA10000000000BE +:049DA20000000000BD +:049DA30000000000BC +:049DA40000000000BB +:049DA50000000000BA +:049DA60000000000B9 +:049DA70000000000B8 +:049DA80000000000B7 +:049DA90000000000B6 +:049DAA0000000000B5 +:049DAB0000000000B4 +:049DAC0000000000B3 +:049DAD0000000000B2 +:049DAE0000000000B1 +:049DAF0000000000B0 +:049DB00000000000AF +:049DB10000000000AE +:049DB20000000000AD +:049DB30000000000AC +:049DB40000000000AB +:049DB50000000000AA +:049DB60000000000A9 +:049DB70000000000A8 +:049DB80000000000A7 +:049DB90000000000A6 +:049DBA0000000000A5 +:049DBB0000000000A4 +:049DBC0000000000A3 +:049DBD0000000000A2 +:049DBE0000000000A1 +:049DBF0000000000A0 +:049DC000000000009F +:049DC100000000009E +:049DC200000000009D +:049DC300000000009C +:049DC400000000009B +:049DC500000000009A +:049DC6000000000099 +:049DC7000000000098 +:049DC8000000000097 +:049DC9000000000096 +:049DCA000000000095 +:049DCB000000000094 +:049DCC000000000093 +:049DCD000000000092 +:049DCE000000000091 +:049DCF000000000090 +:049DD000000000008F +:049DD100000000008E +:049DD200000000008D +:049DD300000000008C +:049DD400000000008B +:049DD500000000008A +:049DD6000000000089 +:049DD7000000000088 +:049DD8000000000087 +:049DD9000000000086 +:049DDA000000000085 +:049DDB000000000084 +:049DDC000000000083 +:049DDD000000000082 +:049DDE000000000081 +:049DDF000000000080 +:049DE000000000007F +:049DE100000000007E +:049DE200000000007D +:049DE300000000007C +:049DE400000000007B +:049DE500000000007A +:049DE6000000000079 +:049DE7000000000078 +:049DE8000000000077 +:049DE9000000000076 +:049DEA000000000075 +:049DEB000000000074 +:049DEC000000000073 +:049DED000000000072 +:049DEE000000000071 +:049DEF000000000070 +:049DF000000000006F +:049DF100000000006E +:049DF200000000006D +:049DF300000000006C +:049DF400000000006B +:049DF500000000006A +:049DF6000000000069 +:049DF7000000000068 +:049DF8000000000067 +:049DF9000000000066 +:049DFA000000000065 +:049DFB000000000064 +:049DFC000000000063 +:049DFD000000000062 +:049DFE000000000061 +:049DFF000000000060 +:049E0000000000005E +:049E0100000000005D +:049E0200000000005C +:049E0300000000005B +:049E0400000000005A +:049E05000000000059 +:049E06000000000058 +:049E07000000000057 +:049E08000000000056 +:049E09000000000055 +:049E0A000000000054 +:049E0B000000000053 +:049E0C000000000052 +:049E0D000000000051 +:049E0E000000000050 +:049E0F00000000004F +:049E1000000000004E +:049E1100000000004D +:049E1200000000004C +:049E1300000000004B +:049E1400000000004A +:049E15000000000049 +:049E16000000000048 +:049E17000000000047 +:049E18000000000046 +:049E19000000000045 +:049E1A000000000044 +:049E1B000000000043 +:049E1C000000000042 +:049E1D000000000041 +:049E1E000000000040 +:049E1F00000000003F +:049E2000000000003E +:049E2100000000003D +:049E2200000000003C +:049E2300000000003B +:049E2400000000003A +:049E25000000000039 +:049E26000000000038 +:049E27000000000037 +:049E28000000000036 +:049E29000000000035 +:049E2A000000000034 +:049E2B000000000033 +:049E2C000000000032 +:049E2D000000000031 +:049E2E000000000030 +:049E2F00000000002F +:049E3000000000002E +:049E3100000000002D +:049E3200000000002C +:049E3300000000002B +:049E3400000000002A +:049E35000000000029 +:049E36000000000028 +:049E37000000000027 +:049E38000000000026 +:049E39000000000025 +:049E3A000000000024 +:049E3B000000000023 +:049E3C000000000022 +:049E3D000000000021 +:049E3E000000000020 +:049E3F00000000001F +:049E4000000000001E +:049E4100000000001D +:049E4200000000001C +:049E4300000000001B +:049E4400000000001A +:049E45000000000019 +:049E46000000000018 +:049E47000000000017 +:049E48000000000016 +:049E49000000000015 +:049E4A000000000014 +:049E4B000000000013 +:049E4C000000000012 +:049E4D000000000011 +:049E4E000000000010 +:049E4F00000000000F +:049E5000000000000E +:049E5100000000000D +:049E5200000000000C +:049E5300000000000B +:049E5400000000000A +:049E55000000000009 +:049E56000000000008 +:049E57000000000007 +:049E58000000000006 +:049E59000000000005 +:049E5A000000000004 +:049E5B000000000003 +:049E5C000000000002 +:049E5D000000000001 +:049E5E000000000000 +:049E5F0000000000FF +:049E600000000000FE +:049E610000000000FD +:049E620000000000FC +:049E630000000000FB +:049E640000000000FA +:049E650000000000F9 +:049E660000000000F8 +:049E670000000000F7 +:049E680000000000F6 +:049E690000000000F5 +:049E6A0000000000F4 +:049E6B0000000000F3 +:049E6C0000000000F2 +:049E6D0000000000F1 +:049E6E0000000000F0 +:049E6F0000000000EF +:049E700000000000EE +:049E710000000000ED +:049E720000000000EC +:049E730000000000EB +:049E740000000000EA +:049E750000000000E9 +:049E760000000000E8 +:049E770000000000E7 +:049E780000000000E6 +:049E790000000000E5 +:049E7A0000000000E4 +:049E7B0000000000E3 +:049E7C0000000000E2 +:049E7D0000000000E1 +:049E7E0000000000E0 +:049E7F0000000000DF +:049E800000000000DE +:049E810000000000DD +:049E820000000000DC +:049E830000000000DB +:049E840000000000DA +:049E850000000000D9 +:049E860000000000D8 +:049E870000000000D7 +:049E880000000000D6 +:049E890000000000D5 +:049E8A0000000000D4 +:049E8B0000000000D3 +:049E8C0000000000D2 +:049E8D0000000000D1 +:049E8E0000000000D0 +:049E8F0000000000CF +:049E900000000000CE +:049E910000000000CD +:049E920000000000CC +:049E930000000000CB +:049E940000000000CA +:049E950000000000C9 +:049E960000000000C8 +:049E970000000000C7 +:049E980000000000C6 +:049E990000000000C5 +:049E9A0000000000C4 +:049E9B0000000000C3 +:049E9C0000000000C2 +:049E9D0000000000C1 +:049E9E0000000000C0 +:049E9F0000000000BF +:049EA00000000000BE +:049EA10000000000BD +:049EA20000000000BC +:049EA30000000000BB +:049EA40000000000BA +:049EA50000000000B9 +:049EA60000000000B8 +:049EA70000000000B7 +:049EA80000000000B6 +:049EA90000000000B5 +:049EAA0000000000B4 +:049EAB0000000000B3 +:049EAC0000000000B2 +:049EAD0000000000B1 +:049EAE0000000000B0 +:049EAF0000000000AF +:049EB00000000000AE +:049EB10000000000AD +:049EB20000000000AC +:049EB30000000000AB +:049EB40000000000AA +:049EB50000000000A9 +:049EB60000000000A8 +:049EB70000000000A7 +:049EB80000000000A6 +:049EB90000000000A5 +:049EBA0000000000A4 +:049EBB0000000000A3 +:049EBC0000000000A2 +:049EBD0000000000A1 +:049EBE0000000000A0 +:049EBF00000000009F +:049EC000000000009E +:049EC100000000009D +:049EC200000000009C +:049EC300000000009B +:049EC400000000009A +:049EC5000000000099 +:049EC6000000000098 +:049EC7000000000097 +:049EC8000000000096 +:049EC9000000000095 +:049ECA000000000094 +:049ECB000000000093 +:049ECC000000000092 +:049ECD000000000091 +:049ECE000000000090 +:049ECF00000000008F +:049ED000000000008E +:049ED100000000008D +:049ED200000000008C +:049ED300000000008B +:049ED400000000008A +:049ED5000000000089 +:049ED6000000000088 +:049ED7000000000087 +:049ED8000000000086 +:049ED9000000000085 +:049EDA000000000084 +:049EDB000000000083 +:049EDC000000000082 +:049EDD000000000081 +:049EDE000000000080 +:049EDF00000000007F +:049EE000000000007E +:049EE100000000007D +:049EE200000000007C +:049EE300000000007B +:049EE400000000007A +:049EE5000000000079 +:049EE6000000000078 +:049EE7000000000077 +:049EE8000000000076 +:049EE9000000000075 +:049EEA000000000074 +:049EEB000000000073 +:049EEC000000000072 +:049EED000000000071 +:049EEE000000000070 +:049EEF00000000006F +:049EF000000000006E +:049EF100000000006D +:049EF200000000006C +:049EF300000000006B +:049EF400000000006A +:049EF5000000000069 +:049EF6000000000068 +:049EF7000000000067 +:049EF8000000000066 +:049EF9000000000065 +:049EFA000000000064 +:049EFB000000000063 +:049EFC000000000062 +:049EFD000000000061 +:049EFE000000000060 +:049EFF00000000005F +:049F0000000000005D +:049F0100000000005C +:049F0200000000005B +:049F0300000000005A +:049F04000000000059 +:049F05000000000058 +:049F06000000000057 +:049F07000000000056 +:049F08000000000055 +:049F09000000000054 +:049F0A000000000053 +:049F0B000000000052 +:049F0C000000000051 +:049F0D000000000050 +:049F0E00000000004F +:049F0F00000000004E +:049F1000000000004D +:049F1100000000004C +:049F1200000000004B +:049F1300000000004A +:049F14000000000049 +:049F15000000000048 +:049F16000000000047 +:049F17000000000046 +:049F18000000000045 +:049F19000000000044 +:049F1A000000000043 +:049F1B000000000042 +:049F1C000000000041 +:049F1D000000000040 +:049F1E00000000003F +:049F1F00000000003E +:049F2000000000003D +:049F2100000000003C +:049F2200000000003B +:049F2300000000003A +:049F24000000000039 +:049F25000000000038 +:049F26000000000037 +:049F27000000000036 +:049F28000000000035 +:049F29000000000034 +:049F2A000000000033 +:049F2B000000000032 +:049F2C000000000031 +:049F2D000000000030 +:049F2E00000000002F +:049F2F00000000002E +:049F3000000000002D +:049F3100000000002C +:049F3200000000002B +:049F3300000000002A +:049F34000000000029 +:049F35000000000028 +:049F36000000000027 +:049F37000000000026 +:049F38000000000025 +:049F39000000000024 +:049F3A000000000023 +:049F3B000000000022 +:049F3C000000000021 +:049F3D000000000020 +:049F3E00000000001F +:049F3F00000000001E +:049F4000000000001D +:049F4100000000001C +:049F4200000000001B +:049F4300000000001A +:049F44000000000019 +:049F45000000000018 +:049F46000000000017 +:049F47000000000016 +:049F48000000000015 +:049F49000000000014 +:049F4A000000000013 +:049F4B000000000012 +:049F4C000000000011 +:049F4D000000000010 +:049F4E00000000000F +:049F4F00000000000E +:049F5000000000000D +:049F5100000000000C +:049F5200000000000B +:049F5300000000000A +:049F54000000000009 +:049F55000000000008 +:049F56000000000007 +:049F57000000000006 +:049F58000000000005 +:049F59000000000004 +:049F5A000000000003 +:049F5B000000000002 +:049F5C000000000001 +:049F5D000000000000 +:049F5E0000000000FF +:049F5F0000000000FE +:049F600000000000FD +:049F610000000000FC +:049F620000000000FB +:049F630000000000FA +:049F640000000000F9 +:049F650000000000F8 +:049F660000000000F7 +:049F670000000000F6 +:049F680000000000F5 +:049F690000000000F4 +:049F6A0000000000F3 +:049F6B0000000000F2 +:049F6C0000000000F1 +:049F6D0000000000F0 +:049F6E0000000000EF +:049F6F0000000000EE +:049F700000000000ED +:049F710000000000EC +:049F720000000000EB +:049F730000000000EA +:049F740000000000E9 +:049F750000000000E8 +:049F760000000000E7 +:049F770000000000E6 +:049F780000000000E5 +:049F790000000000E4 +:049F7A0000000000E3 +:049F7B0000000000E2 +:049F7C0000000000E1 +:049F7D0000000000E0 +:049F7E0000000000DF +:049F7F0000000000DE +:049F800000000000DD +:049F810000000000DC +:049F820000000000DB +:049F830000000000DA +:049F840000000000D9 +:049F850000000000D8 +:049F860000000000D7 +:049F870000000000D6 +:049F880000000000D5 +:049F890000000000D4 +:049F8A0000000000D3 +:049F8B0000000000D2 +:049F8C0000000000D1 +:049F8D0000000000D0 +:049F8E0000000000CF +:049F8F0000000000CE +:049F900000000000CD +:049F910000000000CC +:049F920000000000CB +:049F930000000000CA +:049F940000000000C9 +:049F950000000000C8 +:049F960000000000C7 +:049F970000000000C6 +:049F980000000000C5 +:049F990000000000C4 +:049F9A0000000000C3 +:049F9B0000000000C2 +:049F9C0000000000C1 +:049F9D0000000000C0 +:049F9E0000000000BF +:049F9F0000000000BE +:049FA00000000000BD +:049FA10000000000BC +:049FA20000000000BB +:049FA30000000000BA +:049FA40000000000B9 +:049FA50000000000B8 +:049FA60000000000B7 +:049FA70000000000B6 +:049FA80000000000B5 +:049FA90000000000B4 +:049FAA0000000000B3 +:049FAB0000000000B2 +:049FAC0000000000B1 +:049FAD0000000000B0 +:049FAE0000000000AF +:049FAF0000000000AE +:049FB00000000000AD +:049FB10000000000AC +:049FB20000000000AB +:049FB30000000000AA +:049FB40000000000A9 +:049FB50000000000A8 +:049FB60000000000A7 +:049FB70000000000A6 +:049FB80000000000A5 +:049FB90000000000A4 +:049FBA0000000000A3 +:049FBB0000000000A2 +:049FBC0000000000A1 +:049FBD0000000000A0 +:049FBE00000000009F +:049FBF00000000009E +:049FC000000000009D +:049FC100000000009C +:049FC200000000009B +:049FC300000000009A +:049FC4000000000099 +:049FC5000000000098 +:049FC6000000000097 +:049FC7000000000096 +:049FC8000000000095 +:049FC9000000000094 +:049FCA000000000093 +:049FCB000000000092 +:049FCC000000000091 +:049FCD000000000090 +:049FCE00000000008F +:049FCF00000000008E +:049FD000000000008D +:049FD100000000008C +:049FD200000000008B +:049FD300000000008A +:049FD4000000000089 +:049FD5000000000088 +:049FD6000000000087 +:049FD7000000000086 +:049FD8000000000085 +:049FD9000000000084 +:049FDA000000000083 +:049FDB000000000082 +:049FDC000000000081 +:049FDD000000000080 +:049FDE00000000007F +:049FDF00000000007E +:049FE000000000007D +:049FE100000000007C +:049FE200000000007B +:049FE300000000007A +:049FE4000000000079 +:049FE5000000000078 +:049FE6000000000077 +:049FE7000000000076 +:049FE8000000000075 +:049FE9000000000074 +:049FEA000000000073 +:049FEB000000000072 +:049FEC000000000071 +:049FED000000000070 +:049FEE00000000006F +:049FEF00000000006E +:049FF000000000006D +:049FF100000000006C +:049FF200000000006B +:049FF300000000006A +:049FF4000000000069 +:049FF5000000000068 +:049FF6000000000067 +:049FF7000000000066 +:049FF8000000000065 +:049FF9000000000064 +:049FFA000000000063 +:049FFB000000000062 +:049FFC000000000061 +:049FFD000000000060 +:049FFE00000000005F +:049FFF00000000005E +:04A00000000000005C +:04A00100000000005B +:04A00200000000005A +:04A003000000000059 +:04A004000000000058 +:04A005000000000057 +:04A006000000000056 +:04A007000000000055 +:04A008000000000054 +:04A009000000000053 +:04A00A000000000052 +:04A00B000000000051 +:04A00C000000000050 +:04A00D00000000004F +:04A00E00000000004E +:04A00F00000000004D +:04A01000000000004C +:04A01100000000004B +:04A01200000000004A +:04A013000000000049 +:04A014000000000048 +:04A015000000000047 +:04A016000000000046 +:04A017000000000045 +:04A018000000000044 +:04A019000000000043 +:04A01A000000000042 +:04A01B000000000041 +:04A01C000000000040 +:04A01D00000000003F +:04A01E00000000003E +:04A01F00000000003D +:04A02000000000003C +:04A02100000000003B +:04A02200000000003A +:04A023000000000039 +:04A024000000000038 +:04A025000000000037 +:04A026000000000036 +:04A027000000000035 +:04A028000000000034 +:04A029000000000033 +:04A02A000000000032 +:04A02B000000000031 +:04A02C000000000030 +:04A02D00000000002F +:04A02E00000000002E +:04A02F00000000002D +:04A03000000000002C +:04A03100000000002B +:04A03200000000002A +:04A033000000000029 +:04A034000000000028 +:04A035000000000027 +:04A036000000000026 +:04A037000000000025 +:04A038000000000024 +:04A039000000000023 +:04A03A000000000022 +:04A03B000000000021 +:04A03C000000000020 +:04A03D00000000001F +:04A03E00000000001E +:04A03F00000000001D +:04A04000000000001C +:04A04100000000001B +:04A04200000000001A +:04A043000000000019 +:04A044000000000018 +:04A045000000000017 +:04A046000000000016 +:04A047000000000015 +:04A048000000000014 +:04A049000000000013 +:04A04A000000000012 +:04A04B000000000011 +:04A04C000000000010 +:04A04D00000000000F +:04A04E00000000000E +:04A04F00000000000D +:04A05000000000000C +:04A05100000000000B +:04A05200000000000A +:04A053000000000009 +:04A054000000000008 +:04A055000000000007 +:04A056000000000006 +:04A057000000000005 +:04A058000000000004 +:04A059000000000003 +:04A05A000000000002 +:04A05B000000000001 +:04A05C000000000000 +:04A05D0000000000FF +:04A05E0000000000FE +:04A05F0000000000FD +:04A0600000000000FC +:04A0610000000000FB +:04A0620000000000FA +:04A0630000000000F9 +:04A0640000000000F8 +:04A0650000000000F7 +:04A0660000000000F6 +:04A0670000000000F5 +:04A0680000000000F4 +:04A0690000000000F3 +:04A06A0000000000F2 +:04A06B0000000000F1 +:04A06C0000000000F0 +:04A06D0000000000EF +:04A06E0000000000EE +:04A06F0000000000ED +:04A0700000000000EC +:04A0710000000000EB +:04A0720000000000EA +:04A0730000000000E9 +:04A0740000000000E8 +:04A0750000000000E7 +:04A0760000000000E6 +:04A0770000000000E5 +:04A0780000000000E4 +:04A0790000000000E3 +:04A07A0000000000E2 +:04A07B0000000000E1 +:04A07C0000000000E0 +:04A07D0000000000DF +:04A07E0000000000DE +:04A07F0000000000DD +:04A0800000000000DC +:04A0810000000000DB +:04A0820000000000DA +:04A0830000000000D9 +:04A0840000000000D8 +:04A0850000000000D7 +:04A0860000000000D6 +:04A0870000000000D5 +:04A0880000000000D4 +:04A0890000000000D3 +:04A08A0000000000D2 +:04A08B0000000000D1 +:04A08C0000000000D0 +:04A08D0000000000CF +:04A08E0000000000CE +:04A08F0000000000CD +:04A0900000000000CC +:04A0910000000000CB +:04A0920000000000CA +:04A0930000000000C9 +:04A0940000000000C8 +:04A0950000000000C7 +:04A0960000000000C6 +:04A0970000000000C5 +:04A0980000000000C4 +:04A0990000000000C3 +:04A09A0000000000C2 +:04A09B0000000000C1 +:04A09C0000000000C0 +:04A09D0000000000BF +:04A09E0000000000BE +:04A09F0000000000BD +:04A0A00000000000BC +:04A0A10000000000BB +:04A0A20000000000BA +:04A0A30000000000B9 +:04A0A40000000000B8 +:04A0A50000000000B7 +:04A0A60000000000B6 +:04A0A70000000000B5 +:04A0A80000000000B4 +:04A0A90000000000B3 +:04A0AA0000000000B2 +:04A0AB0000000000B1 +:04A0AC0000000000B0 +:04A0AD0000000000AF +:04A0AE0000000000AE +:04A0AF0000000000AD +:04A0B00000000000AC +:04A0B10000000000AB +:04A0B20000000000AA +:04A0B30000000000A9 +:04A0B40000000000A8 +:04A0B50000000000A7 +:04A0B60000000000A6 +:04A0B70000000000A5 +:04A0B80000000000A4 +:04A0B90000000000A3 +:04A0BA0000000000A2 +:04A0BB0000000000A1 +:04A0BC0000000000A0 +:04A0BD00000000009F +:04A0BE00000000009E +:04A0BF00000000009D +:04A0C000000000009C +:04A0C100000000009B +:04A0C200000000009A +:04A0C3000000000099 +:04A0C4000000000098 +:04A0C5000000000097 +:04A0C6000000000096 +:04A0C7000000000095 +:04A0C8000000000094 +:04A0C9000000000093 +:04A0CA000000000092 +:04A0CB000000000091 +:04A0CC000000000090 +:04A0CD00000000008F +:04A0CE00000000008E +:04A0CF00000000008D +:04A0D000000000008C +:04A0D100000000008B +:04A0D200000000008A +:04A0D3000000000089 +:04A0D4000000000088 +:04A0D5000000000087 +:04A0D6000000000086 +:04A0D7000000000085 +:04A0D8000000000084 +:04A0D9000000000083 +:04A0DA000000000082 +:04A0DB000000000081 +:04A0DC000000000080 +:04A0DD00000000007F +:04A0DE00000000007E +:04A0DF00000000007D +:04A0E000000000007C +:04A0E100000000007B +:04A0E200000000007A +:04A0E3000000000079 +:04A0E4000000000078 +:04A0E5000000000077 +:04A0E6000000000076 +:04A0E7000000000075 +:04A0E8000000000074 +:04A0E9000000000073 +:04A0EA000000000072 +:04A0EB000000000071 +:04A0EC000000000070 +:04A0ED00000000006F +:04A0EE00000000006E +:04A0EF00000000006D +:04A0F000000000006C +:04A0F100000000006B +:04A0F200000000006A +:04A0F3000000000069 +:04A0F4000000000068 +:04A0F5000000000067 +:04A0F6000000000066 +:04A0F7000000000065 +:04A0F8000000000064 +:04A0F9000000000063 +:04A0FA000000000062 +:04A0FB000000000061 +:04A0FC000000000060 +:04A0FD00000000005F +:04A0FE00000000005E +:04A0FF00000000005D +:04A10000000000005B +:04A10100000000005A +:04A102000000000059 +:04A103000000000058 +:04A104000000000057 +:04A105000000000056 +:04A106000000000055 +:04A107000000000054 +:04A108000000000053 +:04A109000000000052 +:04A10A000000000051 +:04A10B000000000050 +:04A10C00000000004F +:04A10D00000000004E +:04A10E00000000004D +:04A10F00000000004C +:04A11000000000004B +:04A11100000000004A +:04A112000000000049 +:04A113000000000048 +:04A114000000000047 +:04A115000000000046 +:04A116000000000045 +:04A117000000000044 +:04A118000000000043 +:04A119000000000042 +:04A11A000000000041 +:04A11B000000000040 +:04A11C00000000003F +:04A11D00000000003E +:04A11E00000000003D +:04A11F00000000003C +:04A12000000000003B +:04A12100000000003A +:04A122000000000039 +:04A123000000000038 +:04A124000000000037 +:04A125000000000036 +:04A126000000000035 +:04A127000000000034 +:04A128000000000033 +:04A129000000000032 +:04A12A000000000031 +:04A12B000000000030 +:04A12C00000000002F +:04A12D00000000002E +:04A12E00000000002D +:04A12F00000000002C +:04A13000000000002B +:04A13100000000002A +:04A132000000000029 +:04A133000000000028 +:04A134000000000027 +:04A135000000000026 +:04A136000000000025 +:04A137000000000024 +:04A138000000000023 +:04A139000000000022 +:04A13A000000000021 +:04A13B000000000020 +:04A13C00000000001F +:04A13D00000000001E +:04A13E00000000001D +:04A13F00000000001C +:04A14000000000001B +:04A14100000000001A +:04A142000000000019 +:04A143000000000018 +:04A144000000000017 +:04A145000000000016 +:04A146000000000015 +:04A147000000000014 +:04A148000000000013 +:04A149000000000012 +:04A14A000000000011 +:04A14B000000000010 +:04A14C00000000000F +:04A14D00000000000E +:04A14E00000000000D +:04A14F00000000000C +:04A15000000000000B +:04A15100000000000A +:04A152000000000009 +:04A153000000000008 +:04A154000000000007 +:04A155000000000006 +:04A156000000000005 +:04A157000000000004 +:04A158000000000003 +:04A159000000000002 +:04A15A000000000001 +:04A15B000000000000 +:04A15C0000000000FF +:04A15D0000000000FE +:04A15E0000000000FD +:04A15F0000000000FC +:04A1600000000000FB +:04A1610000000000FA +:04A1620000000000F9 +:04A1630000000000F8 +:04A1640000000000F7 +:04A1650000000000F6 +:04A1660000000000F5 +:04A1670000000000F4 +:04A1680000000000F3 +:04A1690000000000F2 +:04A16A0000000000F1 +:04A16B0000000000F0 +:04A16C0000000000EF +:04A16D0000000000EE +:04A16E0000000000ED +:04A16F0000000000EC +:04A1700000000000EB +:04A1710000000000EA +:04A1720000000000E9 +:04A1730000000000E8 +:04A1740000000000E7 +:04A1750000000000E6 +:04A1760000000000E5 +:04A1770000000000E4 +:04A1780000000000E3 +:04A1790000000000E2 +:04A17A0000000000E1 +:04A17B0000000000E0 +:04A17C0000000000DF +:04A17D0000000000DE +:04A17E0000000000DD +:04A17F0000000000DC +:04A1800000000000DB +:04A1810000000000DA +:04A1820000000000D9 +:04A1830000000000D8 +:04A1840000000000D7 +:04A1850000000000D6 +:04A1860000000000D5 +:04A1870000000000D4 +:04A1880000000000D3 +:04A1890000000000D2 +:04A18A0000000000D1 +:04A18B0000000000D0 +:04A18C0000000000CF +:04A18D0000000000CE +:04A18E0000000000CD +:04A18F0000000000CC +:04A1900000000000CB +:04A1910000000000CA +:04A1920000000000C9 +:04A1930000000000C8 +:04A1940000000000C7 +:04A1950000000000C6 +:04A1960000000000C5 +:04A1970000000000C4 +:04A1980000000000C3 +:04A1990000000000C2 +:04A19A0000000000C1 +:04A19B0000000000C0 +:04A19C0000000000BF +:04A19D0000000000BE +:04A19E0000000000BD +:04A19F0000000000BC +:04A1A00000000000BB +:04A1A10000000000BA +:04A1A20000000000B9 +:04A1A30000000000B8 +:04A1A40000000000B7 +:04A1A50000000000B6 +:04A1A60000000000B5 +:04A1A70000000000B4 +:04A1A80000000000B3 +:04A1A90000000000B2 +:04A1AA0000000000B1 +:04A1AB0000000000B0 +:04A1AC0000000000AF +:04A1AD0000000000AE +:04A1AE0000000000AD +:04A1AF0000000000AC +:04A1B00000000000AB +:04A1B10000000000AA +:04A1B20000000000A9 +:04A1B30000000000A8 +:04A1B40000000000A7 +:04A1B50000000000A6 +:04A1B60000000000A5 +:04A1B70000000000A4 +:04A1B80000000000A3 +:04A1B90000000000A2 +:04A1BA0000000000A1 +:04A1BB0000000000A0 +:04A1BC00000000009F +:04A1BD00000000009E +:04A1BE00000000009D +:04A1BF00000000009C +:04A1C000000000009B +:04A1C100000000009A +:04A1C2000000000099 +:04A1C3000000000098 +:04A1C4000000000097 +:04A1C5000000000096 +:04A1C6000000000095 +:04A1C7000000000094 +:04A1C8000000000093 +:04A1C9000000000092 +:04A1CA000000000091 +:04A1CB000000000090 +:04A1CC00000000008F +:04A1CD00000000008E +:04A1CE00000000008D +:04A1CF00000000008C +:04A1D000000000008B +:04A1D100000000008A +:04A1D2000000000089 +:04A1D3000000000088 +:04A1D4000000000087 +:04A1D5000000000086 +:04A1D6000000000085 +:04A1D7000000000084 +:04A1D8000000000083 +:04A1D9000000000082 +:04A1DA000000000081 +:04A1DB000000000080 +:04A1DC00000000007F +:04A1DD00000000007E +:04A1DE00000000007D +:04A1DF00000000007C +:04A1E000000000007B +:04A1E100000000007A +:04A1E2000000000079 +:04A1E3000000000078 +:04A1E4000000000077 +:04A1E5000000000076 +:04A1E6000000000075 +:04A1E7000000000074 +:04A1E8000000000073 +:04A1E9000000000072 +:04A1EA000000000071 +:04A1EB000000000070 +:04A1EC00000000006F +:04A1ED00000000006E +:04A1EE00000000006D +:04A1EF00000000006C +:04A1F000000000006B +:04A1F100000000006A +:04A1F2000000000069 +:04A1F3000000000068 +:04A1F4000000000067 +:04A1F5000000000066 +:04A1F6000000000065 +:04A1F7000000000064 +:04A1F8000000000063 +:04A1F9000000000062 +:04A1FA000000000061 +:04A1FB000000000060 +:04A1FC00000000005F +:04A1FD00000000005E +:04A1FE00000000005D +:04A1FF00000000005C +:04A20000000000005A +:04A201000000000059 +:04A202000000000058 +:04A203000000000057 +:04A204000000000056 +:04A205000000000055 +:04A206000000000054 +:04A207000000000053 +:04A208000000000052 +:04A209000000000051 +:04A20A000000000050 +:04A20B00000000004F +:04A20C00000000004E +:04A20D00000000004D +:04A20E00000000004C +:04A20F00000000004B +:04A21000000000004A +:04A211000000000049 +:04A212000000000048 +:04A213000000000047 +:04A214000000000046 +:04A215000000000045 +:04A216000000000044 +:04A217000000000043 +:04A218000000000042 +:04A219000000000041 +:04A21A000000000040 +:04A21B00000000003F +:04A21C00000000003E +:04A21D00000000003D +:04A21E00000000003C +:04A21F00000000003B +:04A22000000000003A +:04A221000000000039 +:04A222000000000038 +:04A223000000000037 +:04A224000000000036 +:04A225000000000035 +:04A226000000000034 +:04A227000000000033 +:04A228000000000032 +:04A229000000000031 +:04A22A000000000030 +:04A22B00000000002F +:04A22C00000000002E +:04A22D00000000002D +:04A22E00000000002C +:04A22F00000000002B +:04A23000000000002A +:04A231000000000029 +:04A232000000000028 +:04A233000000000027 +:04A234000000000026 +:04A235000000000025 +:04A236000000000024 +:04A237000000000023 +:04A238000000000022 +:04A239000000000021 +:04A23A000000000020 +:04A23B00000000001F +:04A23C00000000001E +:04A23D00000000001D +:04A23E00000000001C +:04A23F00000000001B +:04A24000000000001A +:04A241000000000019 +:04A242000000000018 +:04A243000000000017 +:04A244000000000016 +:04A245000000000015 +:04A246000000000014 +:04A247000000000013 +:04A248000000000012 +:04A249000000000011 +:04A24A000000000010 +:04A24B00000000000F +:04A24C00000000000E +:04A24D00000000000D +:04A24E00000000000C +:04A24F00000000000B +:04A25000000000000A +:04A251000000000009 +:04A252000000000008 +:04A253000000000007 +:04A254000000000006 +:04A255000000000005 +:04A256000000000004 +:04A257000000000003 +:04A258000000000002 +:04A259000000000001 +:04A25A000000000000 +:04A25B0000000000FF +:04A25C0000000000FE +:04A25D0000000000FD +:04A25E0000000000FC +:04A25F0000000000FB +:04A2600000000000FA +:04A2610000000000F9 +:04A2620000000000F8 +:04A2630000000000F7 +:04A2640000000000F6 +:04A2650000000000F5 +:04A2660000000000F4 +:04A2670000000000F3 +:04A2680000000000F2 +:04A2690000000000F1 +:04A26A0000000000F0 +:04A26B0000000000EF +:04A26C0000000000EE +:04A26D0000000000ED +:04A26E0000000000EC +:04A26F0000000000EB +:04A2700000000000EA +:04A2710000000000E9 +:04A2720000000000E8 +:04A2730000000000E7 +:04A2740000000000E6 +:04A2750000000000E5 +:04A2760000000000E4 +:04A2770000000000E3 +:04A2780000000000E2 +:04A2790000000000E1 +:04A27A0000000000E0 +:04A27B0000000000DF +:04A27C0000000000DE +:04A27D0000000000DD +:04A27E0000000000DC +:04A27F0000000000DB +:04A2800000000000DA +:04A2810000000000D9 +:04A2820000000000D8 +:04A2830000000000D7 +:04A2840000000000D6 +:04A2850000000000D5 +:04A2860000000000D4 +:04A2870000000000D3 +:04A2880000000000D2 +:04A2890000000000D1 +:04A28A0000000000D0 +:04A28B0000000000CF +:04A28C0000000000CE +:04A28D0000000000CD +:04A28E0000000000CC +:04A28F0000000000CB +:04A2900000000000CA +:04A2910000000000C9 +:04A2920000000000C8 +:04A2930000000000C7 +:04A2940000000000C6 +:04A2950000000000C5 +:04A2960000000000C4 +:04A2970000000000C3 +:04A2980000000000C2 +:04A2990000000000C1 +:04A29A0000000000C0 +:04A29B0000000000BF +:04A29C0000000000BE +:04A29D0000000000BD +:04A29E0000000000BC +:04A29F0000000000BB +:04A2A00000000000BA +:04A2A10000000000B9 +:04A2A20000000000B8 +:04A2A30000000000B7 +:04A2A40000000000B6 +:04A2A50000000000B5 +:04A2A60000000000B4 +:04A2A70000000000B3 +:04A2A80000000000B2 +:04A2A90000000000B1 +:04A2AA0000000000B0 +:04A2AB0000000000AF +:04A2AC0000000000AE +:04A2AD0000000000AD +:04A2AE0000000000AC +:04A2AF0000000000AB +:04A2B00000000000AA +:04A2B10000000000A9 +:04A2B20000000000A8 +:04A2B30000000000A7 +:04A2B40000000000A6 +:04A2B50000000000A5 +:04A2B60000000000A4 +:04A2B70000000000A3 +:04A2B80000000000A2 +:04A2B90000000000A1 +:04A2BA0000000000A0 +:04A2BB00000000009F +:04A2BC00000000009E +:04A2BD00000000009D +:04A2BE00000000009C +:04A2BF00000000009B +:04A2C000000000009A +:04A2C1000000000099 +:04A2C2000000000098 +:04A2C3000000000097 +:04A2C4000000000096 +:04A2C5000000000095 +:04A2C6000000000094 +:04A2C7000000000093 +:04A2C8000000000092 +:04A2C9000000000091 +:04A2CA000000000090 +:04A2CB00000000008F +:04A2CC00000000008E +:04A2CD00000000008D +:04A2CE00000000008C +:04A2CF00000000008B +:04A2D000000000008A +:04A2D1000000000089 +:04A2D2000000000088 +:04A2D3000000000087 +:04A2D4000000000086 +:04A2D5000000000085 +:04A2D6000000000084 +:04A2D7000000000083 +:04A2D8000000000082 +:04A2D9000000000081 +:04A2DA000000000080 +:04A2DB00000000007F +:04A2DC00000000007E +:04A2DD00000000007D +:04A2DE00000000007C +:04A2DF00000000007B +:04A2E000000000007A +:04A2E1000000000079 +:04A2E2000000000078 +:04A2E3000000000077 +:04A2E4000000000076 +:04A2E5000000000075 +:04A2E6000000000074 +:04A2E7000000000073 +:04A2E8000000000072 +:04A2E9000000000071 +:04A2EA000000000070 +:04A2EB00000000006F +:04A2EC00000000006E +:04A2ED00000000006D +:04A2EE00000000006C +:04A2EF00000000006B +:04A2F000000000006A +:04A2F1000000000069 +:04A2F2000000000068 +:04A2F3000000000067 +:04A2F4000000000066 +:04A2F5000000000065 +:04A2F6000000000064 +:04A2F7000000000063 +:04A2F8000000000062 +:04A2F9000000000061 +:04A2FA000000000060 +:04A2FB00000000005F +:04A2FC00000000005E +:04A2FD00000000005D +:04A2FE00000000005C +:04A2FF00000000005B +:04A300000000000059 +:04A301000000000058 +:04A302000000000057 +:04A303000000000056 +:04A304000000000055 +:04A305000000000054 +:04A306000000000053 +:04A307000000000052 +:04A308000000000051 +:04A309000000000050 +:04A30A00000000004F +:04A30B00000000004E +:04A30C00000000004D +:04A30D00000000004C +:04A30E00000000004B +:04A30F00000000004A +:04A310000000000049 +:04A311000000000048 +:04A312000000000047 +:04A313000000000046 +:04A314000000000045 +:04A315000000000044 +:04A316000000000043 +:04A317000000000042 +:04A318000000000041 +:04A319000000000040 +:04A31A00000000003F +:04A31B00000000003E +:04A31C00000000003D +:04A31D00000000003C +:04A31E00000000003B +:04A31F00000000003A +:04A320000000000039 +:04A321000000000038 +:04A322000000000037 +:04A323000000000036 +:04A324000000000035 +:04A325000000000034 +:04A326000000000033 +:04A327000000000032 +:04A328000000000031 +:04A329000000000030 +:04A32A00000000002F +:04A32B00000000002E +:04A32C00000000002D +:04A32D00000000002C +:04A32E00000000002B +:04A32F00000000002A +:04A330000000000029 +:04A331000000000028 +:04A332000000000027 +:04A333000000000026 +:04A334000000000025 +:04A335000000000024 +:04A336000000000023 +:04A337000000000022 +:04A338000000000021 +:04A339000000000020 +:04A33A00000000001F +:04A33B00000000001E +:04A33C00000000001D +:04A33D00000000001C +:04A33E00000000001B +:04A33F00000000001A +:04A340000000000019 +:04A341000000000018 +:04A342000000000017 +:04A343000000000016 +:04A344000000000015 +:04A345000000000014 +:04A346000000000013 +:04A347000000000012 +:04A348000000000011 +:04A349000000000010 +:04A34A00000000000F +:04A34B00000000000E +:04A34C00000000000D +:04A34D00000000000C +:04A34E00000000000B +:04A34F00000000000A +:04A350000000000009 +:04A351000000000008 +:04A352000000000007 +:04A353000000000006 +:04A354000000000005 +:04A355000000000004 +:04A356000000000003 +:04A357000000000002 +:04A358000000000001 +:04A359000000000000 +:04A35A0000000000FF +:04A35B0000000000FE +:04A35C0000000000FD +:04A35D0000000000FC +:04A35E0000000000FB +:04A35F0000000000FA +:04A3600000000000F9 +:04A3610000000000F8 +:04A3620000000000F7 +:04A3630000000000F6 +:04A3640000000000F5 +:04A3650000000000F4 +:04A3660000000000F3 +:04A3670000000000F2 +:04A3680000000000F1 +:04A3690000000000F0 +:04A36A0000000000EF +:04A36B0000000000EE +:04A36C0000000000ED +:04A36D0000000000EC +:04A36E0000000000EB +:04A36F0000000000EA +:04A3700000000000E9 +:04A3710000000000E8 +:04A3720000000000E7 +:04A3730000000000E6 +:04A3740000000000E5 +:04A3750000000000E4 +:04A3760000000000E3 +:04A3770000000000E2 +:04A3780000000000E1 +:04A3790000000000E0 +:04A37A0000000000DF +:04A37B0000000000DE +:04A37C0000000000DD +:04A37D0000000000DC +:04A37E0000000000DB +:04A37F0000000000DA +:04A3800000000000D9 +:04A3810000000000D8 +:04A3820000000000D7 +:04A3830000000000D6 +:04A3840000000000D5 +:04A3850000000000D4 +:04A3860000000000D3 +:04A3870000000000D2 +:04A3880000000000D1 +:04A3890000000000D0 +:04A38A0000000000CF +:04A38B0000000000CE +:04A38C0000000000CD +:04A38D0000000000CC +:04A38E0000000000CB +:04A38F0000000000CA +:04A3900000000000C9 +:04A3910000000000C8 +:04A3920000000000C7 +:04A3930000000000C6 +:04A3940000000000C5 +:04A3950000000000C4 +:04A3960000000000C3 +:04A3970000000000C2 +:04A3980000000000C1 +:04A3990000000000C0 +:04A39A0000000000BF +:04A39B0000000000BE +:04A39C0000000000BD +:04A39D0000000000BC +:04A39E0000000000BB +:04A39F0000000000BA +:04A3A00000000000B9 +:04A3A10000000000B8 +:04A3A20000000000B7 +:04A3A30000000000B6 +:04A3A40000000000B5 +:04A3A50000000000B4 +:04A3A60000000000B3 +:04A3A70000000000B2 +:04A3A80000000000B1 +:04A3A90000000000B0 +:04A3AA0000000000AF +:04A3AB0000000000AE +:04A3AC0000000000AD +:04A3AD0000000000AC +:04A3AE0000000000AB +:04A3AF0000000000AA +:04A3B00000000000A9 +:04A3B10000000000A8 +:04A3B20000000000A7 +:04A3B30000000000A6 +:04A3B40000000000A5 +:04A3B50000000000A4 +:04A3B60000000000A3 +:04A3B70000000000A2 +:04A3B80000000000A1 +:04A3B90000000000A0 +:04A3BA00000000009F +:04A3BB00000000009E +:04A3BC00000000009D +:04A3BD00000000009C +:04A3BE00000000009B +:04A3BF00000000009A +:04A3C0000000000099 +:04A3C1000000000098 +:04A3C2000000000097 +:04A3C3000000000096 +:04A3C4000000000095 +:04A3C5000000000094 +:04A3C6000000000093 +:04A3C7000000000092 +:04A3C8000000000091 +:04A3C9000000000090 +:04A3CA00000000008F +:04A3CB00000000008E +:04A3CC00000000008D +:04A3CD00000000008C +:04A3CE00000000008B +:04A3CF00000000008A +:04A3D0000000000089 +:04A3D1000000000088 +:04A3D2000000000087 +:04A3D3000000000086 +:04A3D4000000000085 +:04A3D5000000000084 +:04A3D6000000000083 +:04A3D7000000000082 +:04A3D8000000000081 +:04A3D9000000000080 +:04A3DA00000000007F +:04A3DB00000000007E +:04A3DC00000000007D +:04A3DD00000000007C +:04A3DE00000000007B +:04A3DF00000000007A +:04A3E0000000000079 +:04A3E1000000000078 +:04A3E2000000000077 +:04A3E3000000000076 +:04A3E4000000000075 +:04A3E5000000000074 +:04A3E6000000000073 +:04A3E7000000000072 +:04A3E8000000000071 +:04A3E9000000000070 +:04A3EA00000000006F +:04A3EB00000000006E +:04A3EC00000000006D +:04A3ED00000000006C +:04A3EE00000000006B +:04A3EF00000000006A +:04A3F0000000000069 +:04A3F1000000000068 +:04A3F2000000000067 +:04A3F3000000000066 +:04A3F4000000000065 +:04A3F5000000000064 +:04A3F6000000000063 +:04A3F7000000000062 +:04A3F8000000000061 +:04A3F9000000000060 +:04A3FA00000000005F +:04A3FB00000000005E +:04A3FC00000000005D +:04A3FD00000000005C +:04A3FE00000000005B +:04A3FF00000000005A +:04A400000000000058 +:04A401000000000057 +:04A402000000000056 +:04A403000000000055 +:04A404000000000054 +:04A405000000000053 +:04A406000000000052 +:04A407000000000051 +:04A408000000000050 +:04A40900000000004F +:04A40A00000000004E +:04A40B00000000004D +:04A40C00000000004C +:04A40D00000000004B +:04A40E00000000004A +:04A40F000000000049 +:04A410000000000048 +:04A411000000000047 +:04A412000000000046 +:04A413000000000045 +:04A414000000000044 +:04A415000000000043 +:04A416000000000042 +:04A417000000000041 +:04A418000000000040 +:04A41900000000003F +:04A41A00000000003E +:04A41B00000000003D +:04A41C00000000003C +:04A41D00000000003B +:04A41E00000000003A +:04A41F000000000039 +:04A420000000000038 +:04A421000000000037 +:04A422000000000036 +:04A423000000000035 +:04A424000000000034 +:04A425000000000033 +:04A426000000000032 +:04A427000000000031 +:04A428000000000030 +:04A42900000000002F +:04A42A00000000002E +:04A42B00000000002D +:04A42C00000000002C +:04A42D00000000002B +:04A42E00000000002A +:04A42F000000000029 +:04A430000000000028 +:04A431000000000027 +:04A432000000000026 +:04A433000000000025 +:04A434000000000024 +:04A435000000000023 +:04A436000000000022 +:04A437000000000021 +:04A438000000000020 +:04A43900000000001F +:04A43A00000000001E +:04A43B00000000001D +:04A43C00000000001C +:04A43D00000000001B +:04A43E00000000001A +:04A43F000000000019 +:04A440000000000018 +:04A441000000000017 +:04A442000000000016 +:04A443000000000015 +:04A444000000000014 +:04A445000000000013 +:04A446000000000012 +:04A447000000000011 +:04A448000000000010 +:04A44900000000000F +:04A44A00000000000E +:04A44B00000000000D +:04A44C00000000000C +:04A44D00000000000B +:04A44E00000000000A +:04A44F000000000009 +:04A450000000000008 +:04A451000000000007 +:04A452000000000006 +:04A453000000000005 +:04A454000000000004 +:04A455000000000003 +:04A456000000000002 +:04A457000000000001 +:04A458000000000000 +:04A4590000000000FF +:04A45A0000000000FE +:04A45B0000000000FD +:04A45C0000000000FC +:04A45D0000000000FB +:04A45E0000000000FA +:04A45F0000000000F9 +:04A4600000000000F8 +:04A4610000000000F7 +:04A4620000000000F6 +:04A4630000000000F5 +:04A4640000000000F4 +:04A4650000000000F3 +:04A4660000000000F2 +:04A4670000000000F1 +:04A4680000000000F0 +:04A4690000000000EF +:04A46A0000000000EE +:04A46B0000000000ED +:04A46C0000000000EC +:04A46D0000000000EB +:04A46E0000000000EA +:04A46F0000000000E9 +:04A4700000000000E8 +:04A4710000000000E7 +:04A4720000000000E6 +:04A4730000000000E5 +:04A4740000000000E4 +:04A4750000000000E3 +:04A4760000000000E2 +:04A4770000000000E1 +:04A4780000000000E0 +:04A4790000000000DF +:04A47A0000000000DE +:04A47B0000000000DD +:04A47C0000000000DC +:04A47D0000000000DB +:04A47E0000000000DA +:04A47F0000000000D9 +:04A4800000000000D8 +:04A4810000000000D7 +:04A4820000000000D6 +:04A4830000000000D5 +:04A4840000000000D4 +:04A4850000000000D3 +:04A4860000000000D2 +:04A4870000000000D1 +:04A4880000000000D0 +:04A4890000000000CF +:04A48A0000000000CE +:04A48B0000000000CD +:04A48C0000000000CC +:04A48D0000000000CB +:04A48E0000000000CA +:04A48F0000000000C9 +:04A4900000000000C8 +:04A4910000000000C7 +:04A4920000000000C6 +:04A4930000000000C5 +:04A4940000000000C4 +:04A4950000000000C3 +:04A4960000000000C2 +:04A4970000000000C1 +:04A4980000000000C0 +:04A4990000000000BF +:04A49A0000000000BE +:04A49B0000000000BD +:04A49C0000000000BC +:04A49D0000000000BB +:04A49E0000000000BA +:04A49F0000000000B9 +:04A4A00000000000B8 +:04A4A10000000000B7 +:04A4A20000000000B6 +:04A4A30000000000B5 +:04A4A40000000000B4 +:04A4A50000000000B3 +:04A4A60000000000B2 +:04A4A70000000000B1 +:04A4A80000000000B0 +:04A4A90000000000AF +:04A4AA0000000000AE +:04A4AB0000000000AD +:04A4AC0000000000AC +:04A4AD0000000000AB +:04A4AE0000000000AA +:04A4AF0000000000A9 +:04A4B00000000000A8 +:04A4B10000000000A7 +:04A4B20000000000A6 +:04A4B30000000000A5 +:04A4B40000000000A4 +:04A4B50000000000A3 +:04A4B60000000000A2 +:04A4B70000000000A1 +:04A4B80000000000A0 +:04A4B900000000009F +:04A4BA00000000009E +:04A4BB00000000009D +:04A4BC00000000009C +:04A4BD00000000009B +:04A4BE00000000009A +:04A4BF000000000099 +:04A4C0000000000098 +:04A4C1000000000097 +:04A4C2000000000096 +:04A4C3000000000095 +:04A4C4000000000094 +:04A4C5000000000093 +:04A4C6000000000092 +:04A4C7000000000091 +:04A4C8000000000090 +:04A4C900000000008F +:04A4CA00000000008E +:04A4CB00000000008D +:04A4CC00000000008C +:04A4CD00000000008B +:04A4CE00000000008A +:04A4CF000000000089 +:04A4D0000000000088 +:04A4D1000000000087 +:04A4D2000000000086 +:04A4D3000000000085 +:04A4D4000000000084 +:04A4D5000000000083 +:04A4D6000000000082 +:04A4D7000000000081 +:04A4D8000000000080 +:04A4D900000000007F +:04A4DA00000000007E +:04A4DB00000000007D +:04A4DC00000000007C +:04A4DD00000000007B +:04A4DE00000000007A +:04A4DF000000000079 +:04A4E0000000000078 +:04A4E1000000000077 +:04A4E2000000000076 +:04A4E3000000000075 +:04A4E4000000000074 +:04A4E5000000000073 +:04A4E6000000000072 +:04A4E7000000000071 +:04A4E8000000000070 +:04A4E900000000006F +:04A4EA00000000006E +:04A4EB00000000006D +:04A4EC00000000006C +:04A4ED00000000006B +:04A4EE00000000006A +:04A4EF000000000069 +:04A4F0000000000068 +:04A4F1000000000067 +:04A4F2000000000066 +:04A4F3000000000065 +:04A4F4000000000064 +:04A4F5000000000063 +:04A4F6000000000062 +:04A4F7000000000061 +:04A4F8000000000060 +:04A4F900000000005F +:04A4FA00000000005E +:04A4FB00000000005D +:04A4FC00000000005C +:04A4FD00000000005B +:04A4FE00000000005A +:04A4FF000000000059 +:04A500000000000057 +:04A501000000000056 +:04A502000000000055 +:04A503000000000054 +:04A504000000000053 +:04A505000000000052 +:04A506000000000051 +:04A507000000000050 +:04A50800000000004F +:04A50900000000004E +:04A50A00000000004D +:04A50B00000000004C +:04A50C00000000004B +:04A50D00000000004A +:04A50E000000000049 +:04A50F000000000048 +:04A510000000000047 +:04A511000000000046 +:04A512000000000045 +:04A513000000000044 +:04A514000000000043 +:04A515000000000042 +:04A516000000000041 +:04A517000000000040 +:04A51800000000003F +:04A51900000000003E +:04A51A00000000003D +:04A51B00000000003C +:04A51C00000000003B +:04A51D00000000003A +:04A51E000000000039 +:04A51F000000000038 +:04A520000000000037 +:04A521000000000036 +:04A522000000000035 +:04A523000000000034 +:04A524000000000033 +:04A525000000000032 +:04A526000000000031 +:04A527000000000030 +:04A52800000000002F +:04A52900000000002E +:04A52A00000000002D +:04A52B00000000002C +:04A52C00000000002B +:04A52D00000000002A +:04A52E000000000029 +:04A52F000000000028 +:04A530000000000027 +:04A531000000000026 +:04A532000000000025 +:04A533000000000024 +:04A534000000000023 +:04A535000000000022 +:04A536000000000021 +:04A537000000000020 +:04A53800000000001F +:04A53900000000001E +:04A53A00000000001D +:04A53B00000000001C +:04A53C00000000001B +:04A53D00000000001A +:04A53E000000000019 +:04A53F000000000018 +:04A540000000000017 +:04A541000000000016 +:04A542000000000015 +:04A543000000000014 +:04A544000000000013 +:04A545000000000012 +:04A546000000000011 +:04A547000000000010 +:04A54800000000000F +:04A54900000000000E +:04A54A00000000000D +:04A54B00000000000C +:04A54C00000000000B +:04A54D00000000000A +:04A54E000000000009 +:04A54F000000000008 +:04A550000000000007 +:04A551000000000006 +:04A552000000000005 +:04A553000000000004 +:04A554000000000003 +:04A555000000000002 +:04A556000000000001 +:04A557000000000000 +:04A5580000000000FF +:04A5590000000000FE +:04A55A0000000000FD +:04A55B0000000000FC +:04A55C0000000000FB +:04A55D0000000000FA +:04A55E0000000000F9 +:04A55F0000000000F8 +:04A5600000000000F7 +:04A5610000000000F6 +:04A5620000000000F5 +:04A5630000000000F4 +:04A5640000000000F3 +:04A5650000000000F2 +:04A5660000000000F1 +:04A5670000000000F0 +:04A5680000000000EF +:04A5690000000000EE +:04A56A0000000000ED +:04A56B0000000000EC +:04A56C0000000000EB +:04A56D0000000000EA +:04A56E0000000000E9 +:04A56F0000000000E8 +:04A5700000000000E7 +:04A5710000000000E6 +:04A5720000000000E5 +:04A5730000000000E4 +:04A5740000000000E3 +:04A5750000000000E2 +:04A5760000000000E1 +:04A5770000000000E0 +:04A5780000000000DF +:04A5790000000000DE +:04A57A0000000000DD +:04A57B0000000000DC +:04A57C0000000000DB +:04A57D0000000000DA +:04A57E0000000000D9 +:04A57F0000000000D8 +:04A5800000000000D7 +:04A5810000000000D6 +:04A5820000000000D5 +:04A5830000000000D4 +:04A5840000000000D3 +:04A5850000000000D2 +:04A5860000000000D1 +:04A5870000000000D0 +:04A5880000000000CF +:04A5890000000000CE +:04A58A0000000000CD +:04A58B0000000000CC +:04A58C0000000000CB +:04A58D0000000000CA +:04A58E0000000000C9 +:04A58F0000000000C8 +:04A5900000000000C7 +:04A5910000000000C6 +:04A5920000000000C5 +:04A5930000000000C4 +:04A5940000000000C3 +:04A5950000000000C2 +:04A5960000000000C1 +:04A5970000000000C0 +:04A5980000000000BF +:04A5990000000000BE +:04A59A0000000000BD +:04A59B0000000000BC +:04A59C0000000000BB +:04A59D0000000000BA +:04A59E0000000000B9 +:04A59F0000000000B8 +:04A5A00000000000B7 +:04A5A10000000000B6 +:04A5A20000000000B5 +:04A5A30000000000B4 +:04A5A40000000000B3 +:04A5A50000000000B2 +:04A5A60000000000B1 +:04A5A70000000000B0 +:04A5A80000000000AF +:04A5A90000000000AE +:04A5AA0000000000AD +:04A5AB0000000000AC +:04A5AC0000000000AB +:04A5AD0000000000AA +:04A5AE0000000000A9 +:04A5AF0000000000A8 +:04A5B00000000000A7 +:04A5B10000000000A6 +:04A5B20000000000A5 +:04A5B30000000000A4 +:04A5B40000000000A3 +:04A5B50000000000A2 +:04A5B60000000000A1 +:04A5B70000000000A0 +:04A5B800000000009F +:04A5B900000000009E +:04A5BA00000000009D +:04A5BB00000000009C +:04A5BC00000000009B +:04A5BD00000000009A +:04A5BE000000000099 +:04A5BF000000000098 +:04A5C0000000000097 +:04A5C1000000000096 +:04A5C2000000000095 +:04A5C3000000000094 +:04A5C4000000000093 +:04A5C5000000000092 +:04A5C6000000000091 +:04A5C7000000000090 +:04A5C800000000008F +:04A5C900000000008E +:04A5CA00000000008D +:04A5CB00000000008C +:04A5CC00000000008B +:04A5CD00000000008A +:04A5CE000000000089 +:04A5CF000000000088 +:04A5D0000000000087 +:04A5D1000000000086 +:04A5D2000000000085 +:04A5D3000000000084 +:04A5D4000000000083 +:04A5D5000000000082 +:04A5D6000000000081 +:04A5D7000000000080 +:04A5D800000000007F +:04A5D900000000007E +:04A5DA00000000007D +:04A5DB00000000007C +:04A5DC00000000007B +:04A5DD00000000007A +:04A5DE000000000079 +:04A5DF000000000078 +:04A5E0000000000077 +:04A5E1000000000076 +:04A5E2000000000075 +:04A5E3000000000074 +:04A5E4000000000073 +:04A5E5000000000072 +:04A5E6000000000071 +:04A5E7000000000070 +:04A5E800000000006F +:04A5E900000000006E +:04A5EA00000000006D +:04A5EB00000000006C +:04A5EC00000000006B +:04A5ED00000000006A +:04A5EE000000000069 +:04A5EF000000000068 +:04A5F0000000000067 +:04A5F1000000000066 +:04A5F2000000000065 +:04A5F3000000000064 +:04A5F4000000000063 +:04A5F5000000000062 +:04A5F6000000000061 +:04A5F7000000000060 +:04A5F800000000005F +:04A5F900000000005E +:04A5FA00000000005D +:04A5FB00000000005C +:04A5FC00000000005B +:04A5FD00000000005A +:04A5FE000000000059 +:04A5FF000000000058 +:04A600000000000056 +:04A601000000000055 +:04A602000000000054 +:04A603000000000053 +:04A604000000000052 +:04A605000000000051 +:04A606000000000050 +:04A60700000000004F +:04A60800000000004E +:04A60900000000004D +:04A60A00000000004C +:04A60B00000000004B +:04A60C00000000004A +:04A60D000000000049 +:04A60E000000000048 +:04A60F000000000047 +:04A610000000000046 +:04A611000000000045 +:04A612000000000044 +:04A613000000000043 +:04A614000000000042 +:04A615000000000041 +:04A616000000000040 +:04A61700000000003F +:04A61800000000003E +:04A61900000000003D +:04A61A00000000003C +:04A61B00000000003B +:04A61C00000000003A +:04A61D000000000039 +:04A61E000000000038 +:04A61F000000000037 +:04A620000000000036 +:04A621000000000035 +:04A622000000000034 +:04A623000000000033 +:04A624000000000032 +:04A625000000000031 +:04A626000000000030 +:04A62700000000002F +:04A62800000000002E +:04A62900000000002D +:04A62A00000000002C +:04A62B00000000002B +:04A62C00000000002A +:04A62D000000000029 +:04A62E000000000028 +:04A62F000000000027 +:04A630000000000026 +:04A631000000000025 +:04A632000000000024 +:04A633000000000023 +:04A634000000000022 +:04A635000000000021 +:04A636000000000020 +:04A63700000000001F +:04A63800000000001E +:04A63900000000001D +:04A63A00000000001C +:04A63B00000000001B +:04A63C00000000001A +:04A63D000000000019 +:04A63E000000000018 +:04A63F000000000017 +:04A640000000000016 +:04A641000000000015 +:04A642000000000014 +:04A643000000000013 +:04A644000000000012 +:04A645000000000011 +:04A646000000000010 +:04A64700000000000F +:04A64800000000000E +:04A64900000000000D +:04A64A00000000000C +:04A64B00000000000B +:04A64C00000000000A +:04A64D000000000009 +:04A64E000000000008 +:04A64F000000000007 +:04A650000000000006 +:04A651000000000005 +:04A652000000000004 +:04A653000000000003 +:04A654000000000002 +:04A655000000000001 +:04A656000000000000 +:04A6570000000000FF +:04A6580000000000FE +:04A6590000000000FD +:04A65A0000000000FC +:04A65B0000000000FB +:04A65C0000000000FA +:04A65D0000000000F9 +:04A65E0000000000F8 +:04A65F0000000000F7 +:04A6600000000000F6 +:04A6610000000000F5 +:04A6620000000000F4 +:04A6630000000000F3 +:04A6640000000000F2 +:04A6650000000000F1 +:04A6660000000000F0 +:04A6670000000000EF +:04A6680000000000EE +:04A6690000000000ED +:04A66A0000000000EC +:04A66B0000000000EB +:04A66C0000000000EA +:04A66D0000000000E9 +:04A66E0000000000E8 +:04A66F0000000000E7 +:04A6700000000000E6 +:04A6710000000000E5 +:04A6720000000000E4 +:04A6730000000000E3 +:04A6740000000000E2 +:04A6750000000000E1 +:04A6760000000000E0 +:04A6770000000000DF +:04A6780000000000DE +:04A6790000000000DD +:04A67A0000000000DC +:04A67B0000000000DB +:04A67C0000000000DA +:04A67D0000000000D9 +:04A67E0000000000D8 +:04A67F0000000000D7 +:04A6800000000000D6 +:04A6810000000000D5 +:04A6820000000000D4 +:04A6830000000000D3 +:04A6840000000000D2 +:04A6850000000000D1 +:04A6860000000000D0 +:04A6870000000000CF +:04A6880000000000CE +:04A6890000000000CD +:04A68A0000000000CC +:04A68B0000000000CB +:04A68C0000000000CA +:04A68D0000000000C9 +:04A68E0000000000C8 +:04A68F0000000000C7 +:04A6900000000000C6 +:04A6910000000000C5 +:04A6920000000000C4 +:04A6930000000000C3 +:04A6940000000000C2 +:04A6950000000000C1 +:04A6960000000000C0 +:04A6970000000000BF +:04A6980000000000BE +:04A6990000000000BD +:04A69A0000000000BC +:04A69B0000000000BB +:04A69C0000000000BA +:04A69D0000000000B9 +:04A69E0000000000B8 +:04A69F0000000000B7 +:04A6A00000000000B6 +:04A6A10000000000B5 +:04A6A20000000000B4 +:04A6A30000000000B3 +:04A6A40000000000B2 +:04A6A50000000000B1 +:04A6A60000000000B0 +:04A6A70000000000AF +:04A6A80000000000AE +:04A6A90000000000AD +:04A6AA0000000000AC +:04A6AB0000000000AB +:04A6AC0000000000AA +:04A6AD0000000000A9 +:04A6AE0000000000A8 +:04A6AF0000000000A7 +:04A6B00000000000A6 +:04A6B10000000000A5 +:04A6B20000000000A4 +:04A6B30000000000A3 +:04A6B40000000000A2 +:04A6B50000000000A1 +:04A6B60000000000A0 +:04A6B700000000009F +:04A6B800000000009E +:04A6B900000000009D +:04A6BA00000000009C +:04A6BB00000000009B +:04A6BC00000000009A +:04A6BD000000000099 +:04A6BE000000000098 +:04A6BF000000000097 +:04A6C0000000000096 +:04A6C1000000000095 +:04A6C2000000000094 +:04A6C3000000000093 +:04A6C4000000000092 +:04A6C5000000000091 +:04A6C6000000000090 +:04A6C700000000008F +:04A6C800000000008E +:04A6C900000000008D +:04A6CA00000000008C +:04A6CB00000000008B +:04A6CC00000000008A +:04A6CD000000000089 +:04A6CE000000000088 +:04A6CF000000000087 +:04A6D0000000000086 +:04A6D1000000000085 +:04A6D2000000000084 +:04A6D3000000000083 +:04A6D4000000000082 +:04A6D5000000000081 +:04A6D6000000000080 +:04A6D700000000007F +:04A6D800000000007E +:04A6D900000000007D +:04A6DA00000000007C +:04A6DB00000000007B +:04A6DC00000000007A +:04A6DD000000000079 +:04A6DE000000000078 +:04A6DF000000000077 +:04A6E0000000000076 +:04A6E1000000000075 +:04A6E2000000000074 +:04A6E3000000000073 +:04A6E4000000000072 +:04A6E5000000000071 +:04A6E6000000000070 +:04A6E700000000006F +:04A6E800000000006E +:04A6E900000000006D +:04A6EA00000000006C +:04A6EB00000000006B +:04A6EC00000000006A +:04A6ED000000000069 +:04A6EE000000000068 +:04A6EF000000000067 +:04A6F0000000000066 +:04A6F1000000000065 +:04A6F2000000000064 +:04A6F3000000000063 +:04A6F4000000000062 +:04A6F5000000000061 +:04A6F6000000000060 +:04A6F700000000005F +:04A6F800000000005E +:04A6F900000000005D +:04A6FA00000000005C +:04A6FB00000000005B +:04A6FC00000000005A +:04A6FD000000000059 +:04A6FE000000000058 +:04A6FF000000000057 +:04A700000000000055 +:04A701000000000054 +:04A702000000000053 +:04A703000000000052 +:04A704000000000051 +:04A705000000000050 +:04A70600000000004F +:04A70700000000004E +:04A70800000000004D +:04A70900000000004C +:04A70A00000000004B +:04A70B00000000004A +:04A70C000000000049 +:04A70D000000000048 +:04A70E000000000047 +:04A70F000000000046 +:04A710000000000045 +:04A711000000000044 +:04A712000000000043 +:04A713000000000042 +:04A714000000000041 +:04A715000000000040 +:04A71600000000003F +:04A71700000000003E +:04A71800000000003D +:04A71900000000003C +:04A71A00000000003B +:04A71B00000000003A +:04A71C000000000039 +:04A71D000000000038 +:04A71E000000000037 +:04A71F000000000036 +:04A720000000000035 +:04A721000000000034 +:04A722000000000033 +:04A723000000000032 +:04A724000000000031 +:04A725000000000030 +:04A72600000000002F +:04A72700000000002E +:04A72800000000002D +:04A72900000000002C +:04A72A00000000002B +:04A72B00000000002A +:04A72C000000000029 +:04A72D000000000028 +:04A72E000000000027 +:04A72F000000000026 +:04A730000000000025 +:04A731000000000024 +:04A732000000000023 +:04A733000000000022 +:04A734000000000021 +:04A735000000000020 +:04A73600000000001F +:04A73700000000001E +:04A73800000000001D +:04A73900000000001C +:04A73A00000000001B +:04A73B00000000001A +:04A73C000000000019 +:04A73D000000000018 +:04A73E000000000017 +:04A73F000000000016 +:04A740000000000015 +:04A741000000000014 +:04A742000000000013 +:04A743000000000012 +:04A744000000000011 +:04A745000000000010 +:04A74600000000000F +:04A74700000000000E +:04A74800000000000D +:04A74900000000000C +:04A74A00000000000B +:04A74B00000000000A +:04A74C000000000009 +:04A74D000000000008 +:04A74E000000000007 +:04A74F000000000006 +:04A750000000000005 +:04A751000000000004 +:04A752000000000003 +:04A753000000000002 +:04A754000000000001 +:04A755000000000000 +:04A7560000000000FF +:04A7570000000000FE +:04A7580000000000FD +:04A7590000000000FC +:04A75A0000000000FB +:04A75B0000000000FA +:04A75C0000000000F9 +:04A75D0000000000F8 +:04A75E0000000000F7 +:04A75F0000000000F6 +:04A7600000000000F5 +:04A7610000000000F4 +:04A7620000000000F3 +:04A7630000000000F2 +:04A7640000000000F1 +:04A7650000000000F0 +:04A7660000000000EF +:04A7670000000000EE +:04A7680000000000ED +:04A7690000000000EC +:04A76A0000000000EB +:04A76B0000000000EA +:04A76C0000000000E9 +:04A76D0000000000E8 +:04A76E0000000000E7 +:04A76F0000000000E6 +:04A7700000000000E5 +:04A7710000000000E4 +:04A7720000000000E3 +:04A7730000000000E2 +:04A7740000000000E1 +:04A7750000000000E0 +:04A7760000000000DF +:04A7770000000000DE +:04A7780000000000DD +:04A7790000000000DC +:04A77A0000000000DB +:04A77B0000000000DA +:04A77C0000000000D9 +:04A77D0000000000D8 +:04A77E0000000000D7 +:04A77F0000000000D6 +:04A7800000000000D5 +:04A7810000000000D4 +:04A7820000000000D3 +:04A7830000000000D2 +:04A7840000000000D1 +:04A7850000000000D0 +:04A7860000000000CF +:04A7870000000000CE +:04A7880000000000CD +:04A7890000000000CC +:04A78A0000000000CB +:04A78B0000000000CA +:04A78C0000000000C9 +:04A78D0000000000C8 +:04A78E0000000000C7 +:04A78F0000000000C6 +:04A7900000000000C5 +:04A7910000000000C4 +:04A7920000000000C3 +:04A7930000000000C2 +:04A7940000000000C1 +:04A7950000000000C0 +:04A7960000000000BF +:04A7970000000000BE +:04A7980000000000BD +:04A7990000000000BC +:04A79A0000000000BB +:04A79B0000000000BA +:04A79C0000000000B9 +:04A79D0000000000B8 +:04A79E0000000000B7 +:04A79F0000000000B6 +:04A7A00000000000B5 +:04A7A10000000000B4 +:04A7A20000000000B3 +:04A7A30000000000B2 +:04A7A40000000000B1 +:04A7A50000000000B0 +:04A7A60000000000AF +:04A7A70000000000AE +:04A7A80000000000AD +:04A7A90000000000AC +:04A7AA0000000000AB +:04A7AB0000000000AA +:04A7AC0000000000A9 +:04A7AD0000000000A8 +:04A7AE0000000000A7 +:04A7AF0000000000A6 +:04A7B00000000000A5 +:04A7B10000000000A4 +:04A7B20000000000A3 +:04A7B30000000000A2 +:04A7B40000000000A1 +:04A7B50000000000A0 +:04A7B600000000009F +:04A7B700000000009E +:04A7B800000000009D +:04A7B900000000009C +:04A7BA00000000009B +:04A7BB00000000009A +:04A7BC000000000099 +:04A7BD000000000098 +:04A7BE000000000097 +:04A7BF000000000096 +:04A7C0000000000095 +:04A7C1000000000094 +:04A7C2000000000093 +:04A7C3000000000092 +:04A7C4000000000091 +:04A7C5000000000090 +:04A7C600000000008F +:04A7C700000000008E +:04A7C800000000008D +:04A7C900000000008C +:04A7CA00000000008B +:04A7CB00000000008A +:04A7CC000000000089 +:04A7CD000000000088 +:04A7CE000000000087 +:04A7CF000000000086 +:04A7D0000000000085 +:04A7D1000000000084 +:04A7D2000000000083 +:04A7D3000000000082 +:04A7D4000000000081 +:04A7D5000000000080 +:04A7D600000000007F +:04A7D700000000007E +:04A7D800000000007D +:04A7D900000000007C +:04A7DA00000000007B +:04A7DB00000000007A +:04A7DC000000000079 +:04A7DD000000000078 +:04A7DE000000000077 +:04A7DF000000000076 +:04A7E0000000000075 +:04A7E1000000000074 +:04A7E2000000000073 +:04A7E3000000000072 +:04A7E4000000000071 +:04A7E5000000000070 +:04A7E600000000006F +:04A7E700000000006E +:04A7E800000000006D +:04A7E900000000006C +:04A7EA00000000006B +:04A7EB00000000006A +:04A7EC000000000069 +:04A7ED000000000068 +:04A7EE000000000067 +:04A7EF000000000066 +:04A7F0000000000065 +:04A7F1000000000064 +:04A7F2000000000063 +:04A7F3000000000062 +:04A7F4000000000061 +:04A7F5000000000060 +:04A7F600000000005F +:04A7F700000000005E +:04A7F800000000005D +:04A7F900000000005C +:04A7FA00000000005B +:04A7FB00000000005A +:04A7FC000000000059 +:04A7FD000000000058 +:04A7FE000000000057 +:04A7FF000000000056 +:04A800000000000054 +:04A801000000000053 +:04A802000000000052 +:04A803000000000051 +:04A804000000000050 +:04A80500000000004F +:04A80600000000004E +:04A80700000000004D +:04A80800000000004C +:04A80900000000004B +:04A80A00000000004A +:04A80B000000000049 +:04A80C000000000048 +:04A80D000000000047 +:04A80E000000000046 +:04A80F000000000045 +:04A810000000000044 +:04A811000000000043 +:04A812000000000042 +:04A813000000000041 +:04A814000000000040 +:04A81500000000003F +:04A81600000000003E +:04A81700000000003D +:04A81800000000003C +:04A81900000000003B +:04A81A00000000003A +:04A81B000000000039 +:04A81C000000000038 +:04A81D000000000037 +:04A81E000000000036 +:04A81F000000000035 +:04A820000000000034 +:04A821000000000033 +:04A822000000000032 +:04A823000000000031 +:04A824000000000030 +:04A82500000000002F +:04A82600000000002E +:04A82700000000002D +:04A82800000000002C +:04A82900000000002B +:04A82A00000000002A +:04A82B000000000029 +:04A82C000000000028 +:04A82D000000000027 +:04A82E000000000026 +:04A82F000000000025 +:04A830000000000024 +:04A831000000000023 +:04A832000000000022 +:04A833000000000021 +:04A834000000000020 +:04A83500000000001F +:04A83600000000001E +:04A83700000000001D +:04A83800000000001C +:04A83900000000001B +:04A83A00000000001A +:04A83B000000000019 +:04A83C000000000018 +:04A83D000000000017 +:04A83E000000000016 +:04A83F000000000015 +:04A840000000000014 +:04A841000000000013 +:04A842000000000012 +:04A843000000000011 +:04A844000000000010 +:04A84500000000000F +:04A84600000000000E +:04A84700000000000D +:04A84800000000000C +:04A84900000000000B +:04A84A00000000000A +:04A84B000000000009 +:04A84C000000000008 +:04A84D000000000007 +:04A84E000000000006 +:04A84F000000000005 +:04A850000000000004 +:04A851000000000003 +:04A852000000000002 +:04A853000000000001 +:04A854000000000000 +:04A8550000000000FF +:04A8560000000000FE +:04A8570000000000FD +:04A8580000000000FC +:04A8590000000000FB +:04A85A0000000000FA +:04A85B0000000000F9 +:04A85C0000000000F8 +:04A85D0000000000F7 +:04A85E0000000000F6 +:04A85F0000000000F5 +:04A8600000000000F4 +:04A8610000000000F3 +:04A8620000000000F2 +:04A8630000000000F1 +:04A8640000000000F0 +:04A8650000000000EF +:04A8660000000000EE +:04A8670000000000ED +:04A8680000000000EC +:04A8690000000000EB +:04A86A0000000000EA +:04A86B0000000000E9 +:04A86C0000000000E8 +:04A86D0000000000E7 +:04A86E0000000000E6 +:04A86F0000000000E5 +:04A8700000000000E4 +:04A8710000000000E3 +:04A8720000000000E2 +:04A8730000000000E1 +:04A8740000000000E0 +:04A8750000000000DF +:04A8760000000000DE +:04A8770000000000DD +:04A8780000000000DC +:04A8790000000000DB +:04A87A0000000000DA +:04A87B0000000000D9 +:04A87C0000000000D8 +:04A87D0000000000D7 +:04A87E0000000000D6 +:04A87F0000000000D5 +:04A8800000000000D4 +:04A8810000000000D3 +:04A8820000000000D2 +:04A8830000000000D1 +:04A8840000000000D0 +:04A8850000000000CF +:04A8860000000000CE +:04A8870000000000CD +:04A8880000000000CC +:04A8890000000000CB +:04A88A0000000000CA +:04A88B0000000000C9 +:04A88C0000000000C8 +:04A88D0000000000C7 +:04A88E0000000000C6 +:04A88F0000000000C5 +:04A8900000000000C4 +:04A8910000000000C3 +:04A8920000000000C2 +:04A8930000000000C1 +:04A8940000000000C0 +:04A8950000000000BF +:04A8960000000000BE +:04A8970000000000BD +:04A8980000000000BC +:04A8990000000000BB +:04A89A0000000000BA +:04A89B0000000000B9 +:04A89C0000000000B8 +:04A89D0000000000B7 +:04A89E0000000000B6 +:04A89F0000000000B5 +:04A8A00000000000B4 +:04A8A10000000000B3 +:04A8A20000000000B2 +:04A8A30000000000B1 +:04A8A40000000000B0 +:04A8A50000000000AF +:04A8A60000000000AE +:04A8A70000000000AD +:04A8A80000000000AC +:04A8A90000000000AB +:04A8AA0000000000AA +:04A8AB0000000000A9 +:04A8AC0000000000A8 +:04A8AD0000000000A7 +:04A8AE0000000000A6 +:04A8AF0000000000A5 +:04A8B00000000000A4 +:04A8B10000000000A3 +:04A8B20000000000A2 +:04A8B30000000000A1 +:04A8B40000000000A0 +:04A8B500000000009F +:04A8B600000000009E +:04A8B700000000009D +:04A8B800000000009C +:04A8B900000000009B +:04A8BA00000000009A +:04A8BB000000000099 +:04A8BC000000000098 +:04A8BD000000000097 +:04A8BE000000000096 +:04A8BF000000000095 +:04A8C0000000000094 +:04A8C1000000000093 +:04A8C2000000000092 +:04A8C3000000000091 +:04A8C4000000000090 +:04A8C500000000008F +:04A8C600000000008E +:04A8C700000000008D +:04A8C800000000008C +:04A8C900000000008B +:04A8CA00000000008A +:04A8CB000000000089 +:04A8CC000000000088 +:04A8CD000000000087 +:04A8CE000000000086 +:04A8CF000000000085 +:04A8D0000000000084 +:04A8D1000000000083 +:04A8D2000000000082 +:04A8D3000000000081 +:04A8D4000000000080 +:04A8D500000000007F +:04A8D600000000007E +:04A8D700000000007D +:04A8D800000000007C +:04A8D900000000007B +:04A8DA00000000007A +:04A8DB000000000079 +:04A8DC000000000078 +:04A8DD000000000077 +:04A8DE000000000076 +:04A8DF000000000075 +:04A8E0000000000074 +:04A8E1000000000073 +:04A8E2000000000072 +:04A8E3000000000071 +:04A8E4000000000070 +:04A8E500000000006F +:04A8E600000000006E +:04A8E700000000006D +:04A8E800000000006C +:04A8E900000000006B +:04A8EA00000000006A +:04A8EB000000000069 +:04A8EC000000000068 +:04A8ED000000000067 +:04A8EE000000000066 +:04A8EF000000000065 +:04A8F0000000000064 +:04A8F1000000000063 +:04A8F2000000000062 +:04A8F3000000000061 +:04A8F4000000000060 +:04A8F500000000005F +:04A8F600000000005E +:04A8F700000000005D +:04A8F800000000005C +:04A8F900000000005B +:04A8FA00000000005A +:04A8FB000000000059 +:04A8FC000000000058 +:04A8FD000000000057 +:04A8FE000000000056 +:04A8FF000000000055 +:04A900000000000053 +:04A901000000000052 +:04A902000000000051 +:04A903000000000050 +:04A90400000000004F +:04A90500000000004E +:04A90600000000004D +:04A90700000000004C +:04A90800000000004B +:04A90900000000004A +:04A90A000000000049 +:04A90B000000000048 +:04A90C000000000047 +:04A90D000000000046 +:04A90E000000000045 +:04A90F000000000044 +:04A910000000000043 +:04A911000000000042 +:04A912000000000041 +:04A913000000000040 +:04A91400000000003F +:04A91500000000003E +:04A91600000000003D +:04A91700000000003C +:04A91800000000003B +:04A91900000000003A +:04A91A000000000039 +:04A91B000000000038 +:04A91C000000000037 +:04A91D000000000036 +:04A91E000000000035 +:04A91F000000000034 +:04A920000000000033 +:04A921000000000032 +:04A922000000000031 +:04A923000000000030 +:04A92400000000002F +:04A92500000000002E +:04A92600000000002D +:04A92700000000002C +:04A92800000000002B +:04A92900000000002A +:04A92A000000000029 +:04A92B000000000028 +:04A92C000000000027 +:04A92D000000000026 +:04A92E000000000025 +:04A92F000000000024 +:04A930000000000023 +:04A931000000000022 +:04A932000000000021 +:04A933000000000020 +:04A93400000000001F +:04A93500000000001E +:04A93600000000001D +:04A93700000000001C +:04A93800000000001B +:04A93900000000001A +:04A93A000000000019 +:04A93B000000000018 +:04A93C000000000017 +:04A93D000000000016 +:04A93E000000000015 +:04A93F000000000014 +:04A940000000000013 +:04A941000000000012 +:04A942000000000011 +:04A943000000000010 +:04A94400000000000F +:04A94500000000000E +:04A94600000000000D +:04A94700000000000C +:04A94800000000000B +:04A94900000000000A +:04A94A000000000009 +:04A94B000000000008 +:04A94C000000000007 +:04A94D000000000006 +:04A94E000000000005 +:04A94F000000000004 +:04A950000000000003 +:04A951000000000002 +:04A952000000000001 +:04A953000000000000 +:04A9540000000000FF +:04A9550000000000FE +:04A9560000000000FD +:04A9570000000000FC +:04A9580000000000FB +:04A9590000000000FA +:04A95A0000000000F9 +:04A95B0000000000F8 +:04A95C0000000000F7 +:04A95D0000000000F6 +:04A95E0000000000F5 +:04A95F0000000000F4 +:04A9600000000000F3 +:04A9610000000000F2 +:04A9620000000000F1 +:04A9630000000000F0 +:04A9640000000000EF +:04A9650000000000EE +:04A9660000000000ED +:04A9670000000000EC +:04A9680000000000EB +:04A9690000000000EA +:04A96A0000000000E9 +:04A96B0000000000E8 +:04A96C0000000000E7 +:04A96D0000000000E6 +:04A96E0000000000E5 +:04A96F0000000000E4 +:04A9700000000000E3 +:04A9710000000000E2 +:04A9720000000000E1 +:04A9730000000000E0 +:04A9740000000000DF +:04A9750000000000DE +:04A9760000000000DD +:04A9770000000000DC +:04A9780000000000DB +:04A9790000000000DA +:04A97A0000000000D9 +:04A97B0000000000D8 +:04A97C0000000000D7 +:04A97D0000000000D6 +:04A97E0000000000D5 +:04A97F0000000000D4 +:04A9800000000000D3 +:04A9810000000000D2 +:04A9820000000000D1 +:04A9830000000000D0 +:04A9840000000000CF +:04A9850000000000CE +:04A9860000000000CD +:04A9870000000000CC +:04A9880000000000CB +:04A9890000000000CA +:04A98A0000000000C9 +:04A98B0000000000C8 +:04A98C0000000000C7 +:04A98D0000000000C6 +:04A98E0000000000C5 +:04A98F0000000000C4 +:04A9900000000000C3 +:04A9910000000000C2 +:04A9920000000000C1 +:04A9930000000000C0 +:04A9940000000000BF +:04A9950000000000BE +:04A9960000000000BD +:04A9970000000000BC +:04A9980000000000BB +:04A9990000000000BA +:04A99A0000000000B9 +:04A99B0000000000B8 +:04A99C0000000000B7 +:04A99D0000000000B6 +:04A99E0000000000B5 +:04A99F0000000000B4 +:04A9A00000000000B3 +:04A9A10000000000B2 +:04A9A20000000000B1 +:04A9A30000000000B0 +:04A9A40000000000AF +:04A9A50000000000AE +:04A9A60000000000AD +:04A9A70000000000AC +:04A9A80000000000AB +:04A9A90000000000AA +:04A9AA0000000000A9 +:04A9AB0000000000A8 +:04A9AC0000000000A7 +:04A9AD0000000000A6 +:04A9AE0000000000A5 +:04A9AF0000000000A4 +:04A9B00000000000A3 +:04A9B10000000000A2 +:04A9B20000000000A1 +:04A9B30000000000A0 +:04A9B400000000009F +:04A9B500000000009E +:04A9B600000000009D +:04A9B700000000009C +:04A9B800000000009B +:04A9B900000000009A +:04A9BA000000000099 +:04A9BB000000000098 +:04A9BC000000000097 +:04A9BD000000000096 +:04A9BE000000000095 +:04A9BF000000000094 +:04A9C0000000000093 +:04A9C1000000000092 +:04A9C2000000000091 +:04A9C3000000000090 +:04A9C400000000008F +:04A9C500000000008E +:04A9C600000000008D +:04A9C700000000008C +:04A9C800000000008B +:04A9C900000000008A +:04A9CA000000000089 +:04A9CB000000000088 +:04A9CC000000000087 +:04A9CD000000000086 +:04A9CE000000000085 +:04A9CF000000000084 +:04A9D0000000000083 +:04A9D1000000000082 +:04A9D2000000000081 +:04A9D3000000000080 +:04A9D400000000007F +:04A9D500000000007E +:04A9D600000000007D +:04A9D700000000007C +:04A9D800000000007B +:04A9D900000000007A +:04A9DA000000000079 +:04A9DB000000000078 +:04A9DC000000000077 +:04A9DD000000000076 +:04A9DE000000000075 +:04A9DF000000000074 +:04A9E0000000000073 +:04A9E1000000000072 +:04A9E2000000000071 +:04A9E3000000000070 +:04A9E400000000006F +:04A9E500000000006E +:04A9E600000000006D +:04A9E700000000006C +:04A9E800000000006B +:04A9E900000000006A +:04A9EA000000000069 +:04A9EB000000000068 +:04A9EC000000000067 +:04A9ED000000000066 +:04A9EE000000000065 +:04A9EF000000000064 +:04A9F0000000000063 +:04A9F1000000000062 +:04A9F2000000000061 +:04A9F3000000000060 +:04A9F400000000005F +:04A9F500000000005E +:04A9F600000000005D +:04A9F700000000005C +:04A9F800000000005B +:04A9F900000000005A +:04A9FA000000000059 +:04A9FB000000000058 +:04A9FC000000000057 +:04A9FD000000000056 +:04A9FE000000000055 +:04A9FF000000000054 +:04AA00000000000052 +:04AA01000000000051 +:04AA02000000000050 +:04AA0300000000004F +:04AA0400000000004E +:04AA0500000000004D +:04AA0600000000004C +:04AA0700000000004B +:04AA0800000000004A +:04AA09000000000049 +:04AA0A000000000048 +:04AA0B000000000047 +:04AA0C000000000046 +:04AA0D000000000045 +:04AA0E000000000044 +:04AA0F000000000043 +:04AA10000000000042 +:04AA11000000000041 +:04AA12000000000040 +:04AA1300000000003F +:04AA1400000000003E +:04AA1500000000003D +:04AA1600000000003C +:04AA1700000000003B +:04AA1800000000003A +:04AA19000000000039 +:04AA1A000000000038 +:04AA1B000000000037 +:04AA1C000000000036 +:04AA1D000000000035 +:04AA1E000000000034 +:04AA1F000000000033 +:04AA20000000000032 +:04AA21000000000031 +:04AA22000000000030 +:04AA2300000000002F +:04AA2400000000002E +:04AA2500000000002D +:04AA2600000000002C +:04AA2700000000002B +:04AA2800000000002A +:04AA29000000000029 +:04AA2A000000000028 +:04AA2B000000000027 +:04AA2C000000000026 +:04AA2D000000000025 +:04AA2E000000000024 +:04AA2F000000000023 +:04AA30000000000022 +:04AA31000000000021 +:04AA32000000000020 +:04AA3300000000001F +:04AA3400000000001E +:04AA3500000000001D +:04AA3600000000001C +:04AA3700000000001B +:04AA3800000000001A +:04AA39000000000019 +:04AA3A000000000018 +:04AA3B000000000017 +:04AA3C000000000016 +:04AA3D000000000015 +:04AA3E000000000014 +:04AA3F000000000013 +:04AA40000000000012 +:04AA41000000000011 +:04AA42000000000010 +:04AA4300000000000F +:04AA4400000000000E +:04AA4500000000000D +:04AA4600000000000C +:04AA4700000000000B +:04AA4800000000000A +:04AA49000000000009 +:04AA4A000000000008 +:04AA4B000000000007 +:04AA4C000000000006 +:04AA4D000000000005 +:04AA4E000000000004 +:04AA4F000000000003 +:04AA50000000000002 +:04AA51000000000001 +:04AA52000000000000 +:04AA530000000000FF +:04AA540000000000FE +:04AA550000000000FD +:04AA560000000000FC +:04AA570000000000FB +:04AA580000000000FA +:04AA590000000000F9 +:04AA5A0000000000F8 +:04AA5B0000000000F7 +:04AA5C0000000000F6 +:04AA5D0000000000F5 +:04AA5E0000000000F4 +:04AA5F0000000000F3 +:04AA600000000000F2 +:04AA610000000000F1 +:04AA620000000000F0 +:04AA630000000000EF +:04AA640000000000EE +:04AA650000000000ED +:04AA660000000000EC +:04AA670000000000EB +:04AA680000000000EA +:04AA690000000000E9 +:04AA6A0000000000E8 +:04AA6B0000000000E7 +:04AA6C0000000000E6 +:04AA6D0000000000E5 +:04AA6E0000000000E4 +:04AA6F0000000000E3 +:04AA700000000000E2 +:04AA710000000000E1 +:04AA720000000000E0 +:04AA730000000000DF +:04AA740000000000DE +:04AA750000000000DD +:04AA760000000000DC +:04AA770000000000DB +:04AA780000000000DA +:04AA790000000000D9 +:04AA7A0000000000D8 +:04AA7B0000000000D7 +:04AA7C0000000000D6 +:04AA7D0000000000D5 +:04AA7E0000000000D4 +:04AA7F0000000000D3 +:04AA800000000000D2 +:04AA810000000000D1 +:04AA820000000000D0 +:04AA830000000000CF +:04AA840000000000CE +:04AA850000000000CD +:04AA860000000000CC +:04AA870000000000CB +:04AA880000000000CA +:04AA890000000000C9 +:04AA8A0000000000C8 +:04AA8B0000000000C7 +:04AA8C0000000000C6 +:04AA8D0000000000C5 +:04AA8E0000000000C4 +:04AA8F0000000000C3 +:04AA900000000000C2 +:04AA910000000000C1 +:04AA920000000000C0 +:04AA930000000000BF +:04AA940000000000BE +:04AA950000000000BD +:04AA960000000000BC +:04AA970000000000BB +:04AA980000000000BA +:04AA990000000000B9 +:04AA9A0000000000B8 +:04AA9B0000000000B7 +:04AA9C0000000000B6 +:04AA9D0000000000B5 +:04AA9E0000000000B4 +:04AA9F0000000000B3 +:04AAA00000000000B2 +:04AAA10000000000B1 +:04AAA20000000000B0 +:04AAA30000000000AF +:04AAA40000000000AE +:04AAA50000000000AD +:04AAA60000000000AC +:04AAA70000000000AB +:04AAA80000000000AA +:04AAA90000000000A9 +:04AAAA0000000000A8 +:04AAAB0000000000A7 +:04AAAC0000000000A6 +:04AAAD0000000000A5 +:04AAAE0000000000A4 +:04AAAF0000000000A3 +:04AAB00000000000A2 +:04AAB10000000000A1 +:04AAB20000000000A0 +:04AAB300000000009F +:04AAB400000000009E +:04AAB500000000009D +:04AAB600000000009C +:04AAB700000000009B +:04AAB800000000009A +:04AAB9000000000099 +:04AABA000000000098 +:04AABB000000000097 +:04AABC000000000096 +:04AABD000000000095 +:04AABE000000000094 +:04AABF000000000093 +:04AAC0000000000092 +:04AAC1000000000091 +:04AAC2000000000090 +:04AAC300000000008F +:04AAC400000000008E +:04AAC500000000008D +:04AAC600000000008C +:04AAC700000000008B +:04AAC800000000008A +:04AAC9000000000089 +:04AACA000000000088 +:04AACB000000000087 +:04AACC000000000086 +:04AACD000000000085 +:04AACE000000000084 +:04AACF000000000083 +:04AAD0000000000082 +:04AAD1000000000081 +:04AAD2000000000080 +:04AAD300000000007F +:04AAD400000000007E +:04AAD500000000007D +:04AAD600000000007C +:04AAD700000000007B +:04AAD800000000007A +:04AAD9000000000079 +:04AADA000000000078 +:04AADB000000000077 +:04AADC000000000076 +:04AADD000000000075 +:04AADE000000000074 +:04AADF000000000073 +:04AAE0000000000072 +:04AAE1000000000071 +:04AAE2000000000070 +:04AAE300000000006F +:04AAE400000000006E +:04AAE500000000006D +:04AAE600000000006C +:04AAE700000000006B +:04AAE800000000006A +:04AAE9000000000069 +:04AAEA000000000068 +:04AAEB000000000067 +:04AAEC000000000066 +:04AAED000000000065 +:04AAEE000000000064 +:04AAEF000000000063 +:04AAF0000000000062 +:04AAF1000000000061 +:04AAF2000000000060 +:04AAF300000000005F +:04AAF400000000005E +:04AAF500000000005D +:04AAF600000000005C +:04AAF700000000005B +:04AAF800000000005A +:04AAF9000000000059 +:04AAFA000000000058 +:04AAFB000000000057 +:04AAFC000000000056 +:04AAFD000000000055 +:04AAFE000000000054 +:04AAFF000000000053 +:04AB00000000000051 +:04AB01000000000050 +:04AB0200000000004F +:04AB0300000000004E +:04AB0400000000004D +:04AB0500000000004C +:04AB0600000000004B +:04AB0700000000004A +:04AB08000000000049 +:04AB09000000000048 +:04AB0A000000000047 +:04AB0B000000000046 +:04AB0C000000000045 +:04AB0D000000000044 +:04AB0E000000000043 +:04AB0F000000000042 +:04AB10000000000041 +:04AB11000000000040 +:04AB1200000000003F +:04AB1300000000003E +:04AB1400000000003D +:04AB1500000000003C +:04AB1600000000003B +:04AB1700000000003A +:04AB18000000000039 +:04AB19000000000038 +:04AB1A000000000037 +:04AB1B000000000036 +:04AB1C000000000035 +:04AB1D000000000034 +:04AB1E000000000033 +:04AB1F000000000032 +:04AB20000000000031 +:04AB21000000000030 +:04AB2200000000002F +:04AB2300000000002E +:04AB2400000000002D +:04AB2500000000002C +:04AB2600000000002B +:04AB2700000000002A +:04AB28000000000029 +:04AB29000000000028 +:04AB2A000000000027 +:04AB2B000000000026 +:04AB2C000000000025 +:04AB2D000000000024 +:04AB2E000000000023 +:04AB2F000000000022 +:04AB30000000000021 +:04AB31000000000020 +:04AB3200000000001F +:04AB3300000000001E +:04AB3400000000001D +:04AB3500000000001C +:04AB3600000000001B +:04AB3700000000001A +:04AB38000000000019 +:04AB39000000000018 +:04AB3A000000000017 +:04AB3B000000000016 +:04AB3C000000000015 +:04AB3D000000000014 +:04AB3E000000000013 +:04AB3F000000000012 +:04AB40000000000011 +:04AB41000000000010 +:04AB4200000000000F +:04AB4300000000000E +:04AB4400000000000D +:04AB4500000000000C +:04AB4600000000000B +:04AB4700000000000A +:04AB48000000000009 +:04AB49000000000008 +:04AB4A000000000007 +:04AB4B000000000006 +:04AB4C000000000005 +:04AB4D000000000004 +:04AB4E000000000003 +:04AB4F000000000002 +:04AB50000000000001 +:04AB51000000000000 +:04AB520000000000FF +:04AB530000000000FE +:04AB540000000000FD +:04AB550000000000FC +:04AB560000000000FB +:04AB570000000000FA +:04AB580000000000F9 +:04AB590000000000F8 +:04AB5A0000000000F7 +:04AB5B0000000000F6 +:04AB5C0000000000F5 +:04AB5D0000000000F4 +:04AB5E0000000000F3 +:04AB5F0000000000F2 +:04AB600000000000F1 +:04AB610000000000F0 +:04AB620000000000EF +:04AB630000000000EE +:04AB640000000000ED +:04AB650000000000EC +:04AB660000000000EB +:04AB670000000000EA +:04AB680000000000E9 +:04AB690000000000E8 +:04AB6A0000000000E7 +:04AB6B0000000000E6 +:04AB6C0000000000E5 +:04AB6D0000000000E4 +:04AB6E0000000000E3 +:04AB6F0000000000E2 +:04AB700000000000E1 +:04AB710000000000E0 +:04AB720000000000DF +:04AB730000000000DE +:04AB740000000000DD +:04AB750000000000DC +:04AB760000000000DB +:04AB770000000000DA +:04AB780000000000D9 +:04AB790000000000D8 +:04AB7A0000000000D7 +:04AB7B0000000000D6 +:04AB7C0000000000D5 +:04AB7D0000000000D4 +:04AB7E0000000000D3 +:04AB7F0000000000D2 +:04AB800000000000D1 +:04AB810000000000D0 +:04AB820000000000CF +:04AB830000000000CE +:04AB840000000000CD +:04AB850000000000CC +:04AB860000000000CB +:04AB870000000000CA +:04AB880000000000C9 +:04AB890000000000C8 +:04AB8A0000000000C7 +:04AB8B0000000000C6 +:04AB8C0000000000C5 +:04AB8D0000000000C4 +:04AB8E0000000000C3 +:04AB8F0000000000C2 +:04AB900000000000C1 +:04AB910000000000C0 +:04AB920000000000BF +:04AB930000000000BE +:04AB940000000000BD +:04AB950000000000BC +:04AB960000000000BB +:04AB970000000000BA +:04AB980000000000B9 +:04AB990000000000B8 +:04AB9A0000000000B7 +:04AB9B0000000000B6 +:04AB9C0000000000B5 +:04AB9D0000000000B4 +:04AB9E0000000000B3 +:04AB9F0000000000B2 +:04ABA00000000000B1 +:04ABA10000000000B0 +:04ABA20000000000AF +:04ABA30000000000AE +:04ABA40000000000AD +:04ABA50000000000AC +:04ABA60000000000AB +:04ABA70000000000AA +:04ABA80000000000A9 +:04ABA90000000000A8 +:04ABAA0000000000A7 +:04ABAB0000000000A6 +:04ABAC0000000000A5 +:04ABAD0000000000A4 +:04ABAE0000000000A3 +:04ABAF0000000000A2 +:04ABB00000000000A1 +:04ABB10000000000A0 +:04ABB200000000009F +:04ABB300000000009E +:04ABB400000000009D +:04ABB500000000009C +:04ABB600000000009B +:04ABB700000000009A +:04ABB8000000000099 +:04ABB9000000000098 +:04ABBA000000000097 +:04ABBB000000000096 +:04ABBC000000000095 +:04ABBD000000000094 +:04ABBE000000000093 +:04ABBF000000000092 +:04ABC0000000000091 +:04ABC1000000000090 +:04ABC200000000008F +:04ABC300000000008E +:04ABC400000000008D +:04ABC500000000008C +:04ABC600000000008B +:04ABC700000000008A +:04ABC8000000000089 +:04ABC9000000000088 +:04ABCA000000000087 +:04ABCB000000000086 +:04ABCC000000000085 +:04ABCD000000000084 +:04ABCE000000000083 +:04ABCF000000000082 +:04ABD0000000000081 +:04ABD1000000000080 +:04ABD200000000007F +:04ABD300000000007E +:04ABD400000000007D +:04ABD500000000007C +:04ABD600000000007B +:04ABD700000000007A +:04ABD8000000000079 +:04ABD9000000000078 +:04ABDA000000000077 +:04ABDB000000000076 +:04ABDC000000000075 +:04ABDD000000000074 +:04ABDE000000000073 +:04ABDF000000000072 +:04ABE0000000000071 +:04ABE1000000000070 +:04ABE200000000006F +:04ABE300000000006E +:04ABE400000000006D +:04ABE500000000006C +:04ABE600000000006B +:04ABE700000000006A +:04ABE8000000000069 +:04ABE9000000000068 +:04ABEA000000000067 +:04ABEB000000000066 +:04ABEC000000000065 +:04ABED000000000064 +:04ABEE000000000063 +:04ABEF000000000062 +:04ABF0000000000061 +:04ABF1000000000060 +:04ABF200000000005F +:04ABF300000000005E +:04ABF400000000005D +:04ABF500000000005C +:04ABF600000000005B +:04ABF700000000005A +:04ABF8000000000059 +:04ABF9000000000058 +:04ABFA000000000057 +:04ABFB000000000056 +:04ABFC000000000055 +:04ABFD000000000054 +:04ABFE000000000053 +:04ABFF000000000052 +:04AC00000000000050 +:04AC0100000000004F +:04AC0200000000004E +:04AC0300000000004D +:04AC0400000000004C +:04AC0500000000004B +:04AC0600000000004A +:04AC07000000000049 +:04AC08000000000048 +:04AC09000000000047 +:04AC0A000000000046 +:04AC0B000000000045 +:04AC0C000000000044 +:04AC0D000000000043 +:04AC0E000000000042 +:04AC0F000000000041 +:04AC10000000000040 +:04AC1100000000003F +:04AC1200000000003E +:04AC1300000000003D +:04AC1400000000003C +:04AC1500000000003B +:04AC1600000000003A +:04AC17000000000039 +:04AC18000000000038 +:04AC19000000000037 +:04AC1A000000000036 +:04AC1B000000000035 +:04AC1C000000000034 +:04AC1D000000000033 +:04AC1E000000000032 +:04AC1F000000000031 +:04AC20000000000030 +:04AC2100000000002F +:04AC2200000000002E +:04AC2300000000002D +:04AC2400000000002C +:04AC2500000000002B +:04AC2600000000002A +:04AC27000000000029 +:04AC28000000000028 +:04AC29000000000027 +:04AC2A000000000026 +:04AC2B000000000025 +:04AC2C000000000024 +:04AC2D000000000023 +:04AC2E000000000022 +:04AC2F000000000021 +:04AC30000000000020 +:04AC3100000000001F +:04AC3200000000001E +:04AC3300000000001D +:04AC3400000000001C +:04AC3500000000001B +:04AC3600000000001A +:04AC37000000000019 +:04AC38000000000018 +:04AC39000000000017 +:04AC3A000000000016 +:04AC3B000000000015 +:04AC3C000000000014 +:04AC3D000000000013 +:04AC3E000000000012 +:04AC3F000000000011 +:04AC40000000000010 +:04AC4100000000000F +:04AC4200000000000E +:04AC4300000000000D +:04AC4400000000000C +:04AC4500000000000B +:04AC4600000000000A +:04AC47000000000009 +:04AC48000000000008 +:04AC49000000000007 +:04AC4A000000000006 +:04AC4B000000000005 +:04AC4C000000000004 +:04AC4D000000000003 +:04AC4E000000000002 +:04AC4F000000000001 +:04AC50000000000000 +:04AC510000000000FF +:04AC520000000000FE +:04AC530000000000FD +:04AC540000000000FC +:04AC550000000000FB +:04AC560000000000FA +:04AC570000000000F9 +:04AC580000000000F8 +:04AC590000000000F7 +:04AC5A0000000000F6 +:04AC5B0000000000F5 +:04AC5C0000000000F4 +:04AC5D0000000000F3 +:04AC5E0000000000F2 +:04AC5F0000000000F1 +:04AC600000000000F0 +:04AC610000000000EF +:04AC620000000000EE +:04AC630000000000ED +:04AC640000000000EC +:04AC650000000000EB +:04AC660000000000EA +:04AC670000000000E9 +:04AC680000000000E8 +:04AC690000000000E7 +:04AC6A0000000000E6 +:04AC6B0000000000E5 +:04AC6C0000000000E4 +:04AC6D0000000000E3 +:04AC6E0000000000E2 +:04AC6F0000000000E1 +:04AC700000000000E0 +:04AC710000000000DF +:04AC720000000000DE +:04AC730000000000DD +:04AC740000000000DC +:04AC750000000000DB +:04AC760000000000DA +:04AC770000000000D9 +:04AC780000000000D8 +:04AC790000000000D7 +:04AC7A0000000000D6 +:04AC7B0000000000D5 +:04AC7C0000000000D4 +:04AC7D0000000000D3 +:04AC7E0000000000D2 +:04AC7F0000000000D1 +:04AC800000000000D0 +:04AC810000000000CF +:04AC820000000000CE +:04AC830000000000CD +:04AC840000000000CC +:04AC850000000000CB +:04AC860000000000CA +:04AC870000000000C9 +:04AC880000000000C8 +:04AC890000000000C7 +:04AC8A0000000000C6 +:04AC8B0000000000C5 +:04AC8C0000000000C4 +:04AC8D0000000000C3 +:04AC8E0000000000C2 +:04AC8F0000000000C1 +:04AC900000000000C0 +:04AC910000000000BF +:04AC920000000000BE +:04AC930000000000BD +:04AC940000000000BC +:04AC950000000000BB +:04AC960000000000BA +:04AC970000000000B9 +:04AC980000000000B8 +:04AC990000000000B7 +:04AC9A0000000000B6 +:04AC9B0000000000B5 +:04AC9C0000000000B4 +:04AC9D0000000000B3 +:04AC9E0000000000B2 +:04AC9F0000000000B1 +:04ACA00000000000B0 +:04ACA10000000000AF +:04ACA20000000000AE +:04ACA30000000000AD +:04ACA40000000000AC +:04ACA50000000000AB +:04ACA60000000000AA +:04ACA70000000000A9 +:04ACA80000000000A8 +:04ACA90000000000A7 +:04ACAA0000000000A6 +:04ACAB0000000000A5 +:04ACAC0000000000A4 +:04ACAD0000000000A3 +:04ACAE0000000000A2 +:04ACAF0000000000A1 +:04ACB00000000000A0 +:04ACB100000000009F +:04ACB200000000009E +:04ACB300000000009D +:04ACB400000000009C +:04ACB500000000009B +:04ACB600000000009A +:04ACB7000000000099 +:04ACB8000000000098 +:04ACB9000000000097 +:04ACBA000000000096 +:04ACBB000000000095 +:04ACBC000000000094 +:04ACBD000000000093 +:04ACBE000000000092 +:04ACBF000000000091 +:04ACC0000000000090 +:04ACC100000000008F +:04ACC200000000008E +:04ACC300000000008D +:04ACC400000000008C +:04ACC500000000008B +:04ACC600000000008A +:04ACC7000000000089 +:04ACC8000000000088 +:04ACC9000000000087 +:04ACCA000000000086 +:04ACCB000000000085 +:04ACCC000000000084 +:04ACCD000000000083 +:04ACCE000000000082 +:04ACCF000000000081 +:04ACD0000000000080 +:04ACD100000000007F +:04ACD200000000007E +:04ACD300000000007D +:04ACD400000000007C +:04ACD500000000007B +:04ACD600000000007A +:04ACD7000000000079 +:04ACD8000000000078 +:04ACD9000000000077 +:04ACDA000000000076 +:04ACDB000000000075 +:04ACDC000000000074 +:04ACDD000000000073 +:04ACDE000000000072 +:04ACDF000000000071 +:04ACE0000000000070 +:04ACE100000000006F +:04ACE200000000006E +:04ACE300000000006D +:04ACE400000000006C +:04ACE500000000006B +:04ACE600000000006A +:04ACE7000000000069 +:04ACE8000000000068 +:04ACE9000000000067 +:04ACEA000000000066 +:04ACEB000000000065 +:04ACEC000000000064 +:04ACED000000000063 +:04ACEE000000000062 +:04ACEF000000000061 +:04ACF0000000000060 +:04ACF100000000005F +:04ACF200000000005E +:04ACF300000000005D +:04ACF400000000005C +:04ACF500000000005B +:04ACF600000000005A +:04ACF7000000000059 +:04ACF8000000000058 +:04ACF9000000000057 +:04ACFA000000000056 +:04ACFB000000000055 +:04ACFC000000000054 +:04ACFD000000000053 +:04ACFE000000000052 +:04ACFF000000000051 +:04AD0000000000004F +:04AD0100000000004E +:04AD0200000000004D +:04AD0300000000004C +:04AD0400000000004B +:04AD0500000000004A +:04AD06000000000049 +:04AD07000000000048 +:04AD08000000000047 +:04AD09000000000046 +:04AD0A000000000045 +:04AD0B000000000044 +:04AD0C000000000043 +:04AD0D000000000042 +:04AD0E000000000041 +:04AD0F000000000040 +:04AD1000000000003F +:04AD1100000000003E +:04AD1200000000003D +:04AD1300000000003C +:04AD1400000000003B +:04AD1500000000003A +:04AD16000000000039 +:04AD17000000000038 +:04AD18000000000037 +:04AD19000000000036 +:04AD1A000000000035 +:04AD1B000000000034 +:04AD1C000000000033 +:04AD1D000000000032 +:04AD1E000000000031 +:04AD1F000000000030 +:04AD2000000000002F +:04AD2100000000002E +:04AD2200000000002D +:04AD2300000000002C +:04AD2400000000002B +:04AD2500000000002A +:04AD26000000000029 +:04AD27000000000028 +:04AD28000000000027 +:04AD29000000000026 +:04AD2A000000000025 +:04AD2B000000000024 +:04AD2C000000000023 +:04AD2D000000000022 +:04AD2E000000000021 +:04AD2F000000000020 +:04AD3000000000001F +:04AD3100000000001E +:04AD3200000000001D +:04AD3300000000001C +:04AD3400000000001B +:04AD3500000000001A +:04AD36000000000019 +:04AD37000000000018 +:04AD38000000000017 +:04AD39000000000016 +:04AD3A000000000015 +:04AD3B000000000014 +:04AD3C000000000013 +:04AD3D000000000012 +:04AD3E000000000011 +:04AD3F000000000010 +:04AD4000000000000F +:04AD4100000000000E +:04AD4200000000000D +:04AD4300000000000C +:04AD4400000000000B +:04AD4500000000000A +:04AD46000000000009 +:04AD47000000000008 +:04AD48000000000007 +:04AD49000000000006 +:04AD4A000000000005 +:04AD4B000000000004 +:04AD4C000000000003 +:04AD4D000000000002 +:04AD4E000000000001 +:04AD4F000000000000 +:04AD500000000000FF +:04AD510000000000FE +:04AD520000000000FD +:04AD530000000000FC +:04AD540000000000FB +:04AD550000000000FA +:04AD560000000000F9 +:04AD570000000000F8 +:04AD580000000000F7 +:04AD590000000000F6 +:04AD5A0000000000F5 +:04AD5B0000000000F4 +:04AD5C0000000000F3 +:04AD5D0000000000F2 +:04AD5E0000000000F1 +:04AD5F0000000000F0 +:04AD600000000000EF +:04AD610000000000EE +:04AD620000000000ED +:04AD630000000000EC +:04AD640000000000EB +:04AD650000000000EA +:04AD660000000000E9 +:04AD670000000000E8 +:04AD680000000000E7 +:04AD690000000000E6 +:04AD6A0000000000E5 +:04AD6B0000000000E4 +:04AD6C0000000000E3 +:04AD6D0000000000E2 +:04AD6E0000000000E1 +:04AD6F0000000000E0 +:04AD700000000000DF +:04AD710000000000DE +:04AD720000000000DD +:04AD730000000000DC +:04AD740000000000DB +:04AD750000000000DA +:04AD760000000000D9 +:04AD770000000000D8 +:04AD780000000000D7 +:04AD790000000000D6 +:04AD7A0000000000D5 +:04AD7B0000000000D4 +:04AD7C0000000000D3 +:04AD7D0000000000D2 +:04AD7E0000000000D1 +:04AD7F0000000000D0 +:04AD800000000000CF +:04AD810000000000CE +:04AD820000000000CD +:04AD830000000000CC +:04AD840000000000CB +:04AD850000000000CA +:04AD860000000000C9 +:04AD870000000000C8 +:04AD880000000000C7 +:04AD890000000000C6 +:04AD8A0000000000C5 +:04AD8B0000000000C4 +:04AD8C0000000000C3 +:04AD8D0000000000C2 +:04AD8E0000000000C1 +:04AD8F0000000000C0 +:04AD900000000000BF +:04AD910000000000BE +:04AD920000000000BD +:04AD930000000000BC +:04AD940000000000BB +:04AD950000000000BA +:04AD960000000000B9 +:04AD970000000000B8 +:04AD980000000000B7 +:04AD990000000000B6 +:04AD9A0000000000B5 +:04AD9B0000000000B4 +:04AD9C0000000000B3 +:04AD9D0000000000B2 +:04AD9E0000000000B1 +:04AD9F0000000000B0 +:04ADA00000000000AF +:04ADA10000000000AE +:04ADA20000000000AD +:04ADA30000000000AC +:04ADA40000000000AB +:04ADA50000000000AA +:04ADA60000000000A9 +:04ADA70000000000A8 +:04ADA80000000000A7 +:04ADA90000000000A6 +:04ADAA0000000000A5 +:04ADAB0000000000A4 +:04ADAC0000000000A3 +:04ADAD0000000000A2 +:04ADAE0000000000A1 +:04ADAF0000000000A0 +:04ADB000000000009F +:04ADB100000000009E +:04ADB200000000009D +:04ADB300000000009C +:04ADB400000000009B +:04ADB500000000009A +:04ADB6000000000099 +:04ADB7000000000098 +:04ADB8000000000097 +:04ADB9000000000096 +:04ADBA000000000095 +:04ADBB000000000094 +:04ADBC000000000093 +:04ADBD000000000092 +:04ADBE000000000091 +:04ADBF000000000090 +:04ADC000000000008F +:04ADC100000000008E +:04ADC200000000008D +:04ADC300000000008C +:04ADC400000000008B +:04ADC500000000008A +:04ADC6000000000089 +:04ADC7000000000088 +:04ADC8000000000087 +:04ADC9000000000086 +:04ADCA000000000085 +:04ADCB000000000084 +:04ADCC000000000083 +:04ADCD000000000082 +:04ADCE000000000081 +:04ADCF000000000080 +:04ADD000000000007F +:04ADD100000000007E +:04ADD200000000007D +:04ADD300000000007C +:04ADD400000000007B +:04ADD500000000007A +:04ADD6000000000079 +:04ADD7000000000078 +:04ADD8000000000077 +:04ADD9000000000076 +:04ADDA000000000075 +:04ADDB000000000074 +:04ADDC000000000073 +:04ADDD000000000072 +:04ADDE000000000071 +:04ADDF000000000070 +:04ADE000000000006F +:04ADE100000000006E +:04ADE200000000006D +:04ADE300000000006C +:04ADE400000000006B +:04ADE500000000006A +:04ADE6000000000069 +:04ADE7000000000068 +:04ADE8000000000067 +:04ADE9000000000066 +:04ADEA000000000065 +:04ADEB000000000064 +:04ADEC000000000063 +:04ADED000000000062 +:04ADEE000000000061 +:04ADEF000000000060 +:04ADF000000000005F +:04ADF100000000005E +:04ADF200000000005D +:04ADF300000000005C +:04ADF400000000005B +:04ADF500000000005A +:04ADF6000000000059 +:04ADF7000000000058 +:04ADF8000000000057 +:04ADF9000000000056 +:04ADFA000000000055 +:04ADFB000000000054 +:04ADFC000000000053 +:04ADFD000000000052 +:04ADFE000000000051 +:04ADFF000000000050 +:04AE0000000000004E +:04AE0100000000004D +:04AE0200000000004C +:04AE0300000000004B +:04AE0400000000004A +:04AE05000000000049 +:04AE06000000000048 +:04AE07000000000047 +:04AE08000000000046 +:04AE09000000000045 +:04AE0A000000000044 +:04AE0B000000000043 +:04AE0C000000000042 +:04AE0D000000000041 +:04AE0E000000000040 +:04AE0F00000000003F +:04AE1000000000003E +:04AE1100000000003D +:04AE1200000000003C +:04AE1300000000003B +:04AE1400000000003A +:04AE15000000000039 +:04AE16000000000038 +:04AE17000000000037 +:04AE18000000000036 +:04AE19000000000035 +:04AE1A000000000034 +:04AE1B000000000033 +:04AE1C000000000032 +:04AE1D000000000031 +:04AE1E000000000030 +:04AE1F00000000002F +:04AE2000000000002E +:04AE2100000000002D +:04AE2200000000002C +:04AE2300000000002B +:04AE2400000000002A +:04AE25000000000029 +:04AE26000000000028 +:04AE27000000000027 +:04AE28000000000026 +:04AE29000000000025 +:04AE2A000000000024 +:04AE2B000000000023 +:04AE2C000000000022 +:04AE2D000000000021 +:04AE2E000000000020 +:04AE2F00000000001F +:04AE3000000000001E +:04AE3100000000001D +:04AE3200000000001C +:04AE3300000000001B +:04AE3400000000001A +:04AE35000000000019 +:04AE36000000000018 +:04AE37000000000017 +:04AE38000000000016 +:04AE39000000000015 +:04AE3A000000000014 +:04AE3B000000000013 +:04AE3C000000000012 +:04AE3D000000000011 +:04AE3E000000000010 +:04AE3F00000000000F +:04AE4000000000000E +:04AE4100000000000D +:04AE4200000000000C +:04AE4300000000000B +:04AE4400000000000A +:04AE45000000000009 +:04AE46000000000008 +:04AE47000000000007 +:04AE48000000000006 +:04AE49000000000005 +:04AE4A000000000004 +:04AE4B000000000003 +:04AE4C000000000002 +:04AE4D000000000001 +:04AE4E000000000000 +:04AE4F0000000000FF +:04AE500000000000FE +:04AE510000000000FD +:04AE520000000000FC +:04AE530000000000FB +:04AE540000000000FA +:04AE550000000000F9 +:04AE560000000000F8 +:04AE570000000000F7 +:04AE580000000000F6 +:04AE590000000000F5 +:04AE5A0000000000F4 +:04AE5B0000000000F3 +:04AE5C0000000000F2 +:04AE5D0000000000F1 +:04AE5E0000000000F0 +:04AE5F0000000000EF +:04AE600000000000EE +:04AE610000000000ED +:04AE620000000000EC +:04AE630000000000EB +:04AE640000000000EA +:04AE650000000000E9 +:04AE660000000000E8 +:04AE670000000000E7 +:04AE680000000000E6 +:04AE690000000000E5 +:04AE6A0000000000E4 +:04AE6B0000000000E3 +:04AE6C0000000000E2 +:04AE6D0000000000E1 +:04AE6E0000000000E0 +:04AE6F0000000000DF +:04AE700000000000DE +:04AE710000000000DD +:04AE720000000000DC +:04AE730000000000DB +:04AE740000000000DA +:04AE750000000000D9 +:04AE760000000000D8 +:04AE770000000000D7 +:04AE780000000000D6 +:04AE790000000000D5 +:04AE7A0000000000D4 +:04AE7B0000000000D3 +:04AE7C0000000000D2 +:04AE7D0000000000D1 +:04AE7E0000000000D0 +:04AE7F0000000000CF +:04AE800000000000CE +:04AE810000000000CD +:04AE820000000000CC +:04AE830000000000CB +:04AE840000000000CA +:04AE850000000000C9 +:04AE860000000000C8 +:04AE870000000000C7 +:04AE880000000000C6 +:04AE890000000000C5 +:04AE8A0000000000C4 +:04AE8B0000000000C3 +:04AE8C0000000000C2 +:04AE8D0000000000C1 +:04AE8E0000000000C0 +:04AE8F0000000000BF +:04AE900000000000BE +:04AE910000000000BD +:04AE920000000000BC +:04AE930000000000BB +:04AE940000000000BA +:04AE950000000000B9 +:04AE960000000000B8 +:04AE970000000000B7 +:04AE980000000000B6 +:04AE990000000000B5 +:04AE9A0000000000B4 +:04AE9B0000000000B3 +:04AE9C0000000000B2 +:04AE9D0000000000B1 +:04AE9E0000000000B0 +:04AE9F0000000000AF +:04AEA00000000000AE +:04AEA10000000000AD +:04AEA20000000000AC +:04AEA30000000000AB +:04AEA40000000000AA +:04AEA50000000000A9 +:04AEA60000000000A8 +:04AEA70000000000A7 +:04AEA80000000000A6 +:04AEA90000000000A5 +:04AEAA0000000000A4 +:04AEAB0000000000A3 +:04AEAC0000000000A2 +:04AEAD0000000000A1 +:04AEAE0000000000A0 +:04AEAF00000000009F +:04AEB000000000009E +:04AEB100000000009D +:04AEB200000000009C +:04AEB300000000009B +:04AEB400000000009A +:04AEB5000000000099 +:04AEB6000000000098 +:04AEB7000000000097 +:04AEB8000000000096 +:04AEB9000000000095 +:04AEBA000000000094 +:04AEBB000000000093 +:04AEBC000000000092 +:04AEBD000000000091 +:04AEBE000000000090 +:04AEBF00000000008F +:04AEC000000000008E +:04AEC100000000008D +:04AEC200000000008C +:04AEC300000000008B +:04AEC400000000008A +:04AEC5000000000089 +:04AEC6000000000088 +:04AEC7000000000087 +:04AEC8000000000086 +:04AEC9000000000085 +:04AECA000000000084 +:04AECB000000000083 +:04AECC000000000082 +:04AECD000000000081 +:04AECE000000000080 +:04AECF00000000007F +:04AED000000000007E +:04AED100000000007D +:04AED200000000007C +:04AED300000000007B +:04AED400000000007A +:04AED5000000000079 +:04AED6000000000078 +:04AED7000000000077 +:04AED8000000000076 +:04AED9000000000075 +:04AEDA000000000074 +:04AEDB000000000073 +:04AEDC000000000072 +:04AEDD000000000071 +:04AEDE000000000070 +:04AEDF00000000006F +:04AEE000000000006E +:04AEE100000000006D +:04AEE200000000006C +:04AEE300000000006B +:04AEE400000000006A +:04AEE5000000000069 +:04AEE6000000000068 +:04AEE7000000000067 +:04AEE8000000000066 +:04AEE9000000000065 +:04AEEA000000000064 +:04AEEB000000000063 +:04AEEC000000000062 +:04AEED000000000061 +:04AEEE000000000060 +:04AEEF00000000005F +:04AEF000000000005E +:04AEF100000000005D +:04AEF200000000005C +:04AEF300000000005B +:04AEF400000000005A +:04AEF5000000000059 +:04AEF6000000000058 +:04AEF7000000000057 +:04AEF8000000000056 +:04AEF9000000000055 +:04AEFA000000000054 +:04AEFB000000000053 +:04AEFC000000000052 +:04AEFD000000000051 +:04AEFE000000000050 +:04AEFF00000000004F +:04AF0000000000004D +:04AF0100000000004C +:04AF0200000000004B +:04AF0300000000004A +:04AF04000000000049 +:04AF05000000000048 +:04AF06000000000047 +:04AF07000000000046 +:04AF08000000000045 +:04AF09000000000044 +:04AF0A000000000043 +:04AF0B000000000042 +:04AF0C000000000041 +:04AF0D000000000040 +:04AF0E00000000003F +:04AF0F00000000003E +:04AF1000000000003D +:04AF1100000000003C +:04AF1200000000003B +:04AF1300000000003A +:04AF14000000000039 +:04AF15000000000038 +:04AF16000000000037 +:04AF17000000000036 +:04AF18000000000035 +:04AF19000000000034 +:04AF1A000000000033 +:04AF1B000000000032 +:04AF1C000000000031 +:04AF1D000000000030 +:04AF1E00000000002F +:04AF1F00000000002E +:04AF2000000000002D +:04AF2100000000002C +:04AF2200000000002B +:04AF2300000000002A +:04AF24000000000029 +:04AF25000000000028 +:04AF26000000000027 +:04AF27000000000026 +:04AF28000000000025 +:04AF29000000000024 +:04AF2A000000000023 +:04AF2B000000000022 +:04AF2C000000000021 +:04AF2D000000000020 +:04AF2E00000000001F +:04AF2F00000000001E +:04AF3000000000001D +:04AF3100000000001C +:04AF3200000000001B +:04AF3300000000001A +:04AF34000000000019 +:04AF35000000000018 +:04AF36000000000017 +:04AF37000000000016 +:04AF38000000000015 +:04AF39000000000014 +:04AF3A000000000013 +:04AF3B000000000012 +:04AF3C000000000011 +:04AF3D000000000010 +:04AF3E00000000000F +:04AF3F00000000000E +:04AF4000000000000D +:04AF4100000000000C +:04AF4200000000000B +:04AF4300000000000A +:04AF44000000000009 +:04AF45000000000008 +:04AF46000000000007 +:04AF47000000000006 +:04AF48000000000005 +:04AF49000000000004 +:04AF4A000000000003 +:04AF4B000000000002 +:04AF4C000000000001 +:04AF4D000000000000 +:04AF4E0000000000FF +:04AF4F0000000000FE +:04AF500000000000FD +:04AF510000000000FC +:04AF520000000000FB +:04AF530000000000FA +:04AF540000000000F9 +:04AF550000000000F8 +:04AF560000000000F7 +:04AF570000000000F6 +:04AF580000000000F5 +:04AF590000000000F4 +:04AF5A0000000000F3 +:04AF5B0000000000F2 +:04AF5C0000000000F1 +:04AF5D0000000000F0 +:04AF5E0000000000EF +:04AF5F0000000000EE +:04AF600000000000ED +:04AF610000000000EC +:04AF620000000000EB +:04AF630000000000EA +:04AF640000000000E9 +:04AF650000000000E8 +:04AF660000000000E7 +:04AF670000000000E6 +:04AF680000000000E5 +:04AF690000000000E4 +:04AF6A0000000000E3 +:04AF6B0000000000E2 +:04AF6C0000000000E1 +:04AF6D0000000000E0 +:04AF6E0000000000DF +:04AF6F0000000000DE +:04AF700000000000DD +:04AF710000000000DC +:04AF720000000000DB +:04AF730000000000DA +:04AF740000000000D9 +:04AF750000000000D8 +:04AF760000000000D7 +:04AF770000000000D6 +:04AF780000000000D5 +:04AF790000000000D4 +:04AF7A0000000000D3 +:04AF7B0000000000D2 +:04AF7C0000000000D1 +:04AF7D0000000000D0 +:04AF7E0000000000CF +:04AF7F0000000000CE +:04AF800000000000CD +:04AF810000000000CC +:04AF820000000000CB +:04AF830000000000CA +:04AF840000000000C9 +:04AF850000000000C8 +:04AF860000000000C7 +:04AF870000000000C6 +:04AF880000000000C5 +:04AF890000000000C4 +:04AF8A0000000000C3 +:04AF8B0000000000C2 +:04AF8C0000000000C1 +:04AF8D0000000000C0 +:04AF8E0000000000BF +:04AF8F0000000000BE +:04AF900000000000BD +:04AF910000000000BC +:04AF920000000000BB +:04AF930000000000BA +:04AF940000000000B9 +:04AF950000000000B8 +:04AF960000000000B7 +:04AF970000000000B6 +:04AF980000000000B5 +:04AF990000000000B4 +:04AF9A0000000000B3 +:04AF9B0000000000B2 +:04AF9C0000000000B1 +:04AF9D0000000000B0 +:04AF9E0000000000AF +:04AF9F0000000000AE +:04AFA00000000000AD +:04AFA10000000000AC +:04AFA20000000000AB +:04AFA30000000000AA +:04AFA40000000000A9 +:04AFA50000000000A8 +:04AFA60000000000A7 +:04AFA70000000000A6 +:04AFA80000000000A5 +:04AFA90000000000A4 +:04AFAA0000000000A3 +:04AFAB0000000000A2 +:04AFAC0000000000A1 +:04AFAD0000000000A0 +:04AFAE00000000009F +:04AFAF00000000009E +:04AFB000000000009D +:04AFB100000000009C +:04AFB200000000009B +:04AFB300000000009A +:04AFB4000000000099 +:04AFB5000000000098 +:04AFB6000000000097 +:04AFB7000000000096 +:04AFB8000000000095 +:04AFB9000000000094 +:04AFBA000000000093 +:04AFBB000000000092 +:04AFBC000000000091 +:04AFBD000000000090 +:04AFBE00000000008F +:04AFBF00000000008E +:04AFC000000000008D +:04AFC100000000008C +:04AFC200000000008B +:04AFC300000000008A +:04AFC4000000000089 +:04AFC5000000000088 +:04AFC6000000000087 +:04AFC7000000000086 +:04AFC8000000000085 +:04AFC9000000000084 +:04AFCA000000000083 +:04AFCB000000000082 +:04AFCC000000000081 +:04AFCD000000000080 +:04AFCE00000000007F +:04AFCF00000000007E +:04AFD000000000007D +:04AFD100000000007C +:04AFD200000000007B +:04AFD300000000007A +:04AFD4000000000079 +:04AFD5000000000078 +:04AFD6000000000077 +:04AFD7000000000076 +:04AFD8000000000075 +:04AFD9000000000074 +:04AFDA000000000073 +:04AFDB000000000072 +:04AFDC000000000071 +:04AFDD000000000070 +:04AFDE00000000006F +:04AFDF00000000006E +:04AFE000000000006D +:04AFE100000000006C +:04AFE200000000006B +:04AFE300000000006A +:04AFE4000000000069 +:04AFE5000000000068 +:04AFE6000000000067 +:04AFE7000000000066 +:04AFE8000000000065 +:04AFE9000000000064 +:04AFEA000000000063 +:04AFEB000000000062 +:04AFEC000000000061 +:04AFED000000000060 +:04AFEE00000000005F +:04AFEF00000000005E +:04AFF000000000005D +:04AFF100000000005C +:04AFF200000000005B +:04AFF300000000005A +:04AFF4000000000059 +:04AFF5000000000058 +:04AFF6000000000057 +:04AFF7000000000056 +:04AFF8000000000055 +:04AFF9000000000054 +:04AFFA000000000053 +:04AFFB000000000052 +:04AFFC000000000051 +:04AFFD000000000050 +:04AFFE00000000004F +:04AFFF00000000004E +:04B00000000000004C +:04B00100000000004B +:04B00200000000004A +:04B003000000000049 +:04B004000000000048 +:04B005000000000047 +:04B006000000000046 +:04B007000000000045 +:04B008000000000044 +:04B009000000000043 +:04B00A000000000042 +:04B00B000000000041 +:04B00C000000000040 +:04B00D00000000003F +:04B00E00000000003E +:04B00F00000000003D +:04B01000000000003C +:04B01100000000003B +:04B01200000000003A +:04B013000000000039 +:04B014000000000038 +:04B015000000000037 +:04B016000000000036 +:04B017000000000035 +:04B018000000000034 +:04B019000000000033 +:04B01A000000000032 +:04B01B000000000031 +:04B01C000000000030 +:04B01D00000000002F +:04B01E00000000002E +:04B01F00000000002D +:04B02000000000002C +:04B02100000000002B +:04B02200000000002A +:04B023000000000029 +:04B024000000000028 +:04B025000000000027 +:04B026000000000026 +:04B027000000000025 +:04B028000000000024 +:04B029000000000023 +:04B02A000000000022 +:04B02B000000000021 +:04B02C000000000020 +:04B02D00000000001F +:04B02E00000000001E +:04B02F00000000001D +:04B03000000000001C +:04B03100000000001B +:04B03200000000001A +:04B033000000000019 +:04B034000000000018 +:04B035000000000017 +:04B036000000000016 +:04B037000000000015 +:04B038000000000014 +:04B039000000000013 +:04B03A000000000012 +:04B03B000000000011 +:04B03C000000000010 +:04B03D00000000000F +:04B03E00000000000E +:04B03F00000000000D +:04B04000000000000C +:04B04100000000000B +:04B04200000000000A +:04B043000000000009 +:04B044000000000008 +:04B045000000000007 +:04B046000000000006 +:04B047000000000005 +:04B048000000000004 +:04B049000000000003 +:04B04A000000000002 +:04B04B000000000001 +:04B04C000000000000 +:04B04D0000000000FF +:04B04E0000000000FE +:04B04F0000000000FD +:04B0500000000000FC +:04B0510000000000FB +:04B0520000000000FA +:04B0530000000000F9 +:04B0540000000000F8 +:04B0550000000000F7 +:04B0560000000000F6 +:04B0570000000000F5 +:04B0580000000000F4 +:04B0590000000000F3 +:04B05A0000000000F2 +:04B05B0000000000F1 +:04B05C0000000000F0 +:04B05D0000000000EF +:04B05E0000000000EE +:04B05F0000000000ED +:04B0600000000000EC +:04B0610000000000EB +:04B0620000000000EA +:04B0630000000000E9 +:04B0640000000000E8 +:04B0650000000000E7 +:04B0660000000000E6 +:04B0670000000000E5 +:04B0680000000000E4 +:04B0690000000000E3 +:04B06A0000000000E2 +:04B06B0000000000E1 +:04B06C0000000000E0 +:04B06D0000000000DF +:04B06E0000000000DE +:04B06F0000000000DD +:04B0700000000000DC +:04B0710000000000DB +:04B0720000000000DA +:04B0730000000000D9 +:04B0740000000000D8 +:04B0750000000000D7 +:04B0760000000000D6 +:04B0770000000000D5 +:04B0780000000000D4 +:04B0790000000000D3 +:04B07A0000000000D2 +:04B07B0000000000D1 +:04B07C0000000000D0 +:04B07D0000000000CF +:04B07E0000000000CE +:04B07F0000000000CD +:04B0800000000000CC +:04B0810000000000CB +:04B0820000000000CA +:04B0830000000000C9 +:04B0840000000000C8 +:04B0850000000000C7 +:04B0860000000000C6 +:04B0870000000000C5 +:04B0880000000000C4 +:04B0890000000000C3 +:04B08A0000000000C2 +:04B08B0000000000C1 +:04B08C0000000000C0 +:04B08D0000000000BF +:04B08E0000000000BE +:04B08F0000000000BD +:04B0900000000000BC +:04B0910000000000BB +:04B0920000000000BA +:04B0930000000000B9 +:04B0940000000000B8 +:04B0950000000000B7 +:04B0960000000000B6 +:04B0970000000000B5 +:04B0980000000000B4 +:04B0990000000000B3 +:04B09A0000000000B2 +:04B09B0000000000B1 +:04B09C0000000000B0 +:04B09D0000000000AF +:04B09E0000000000AE +:04B09F0000000000AD +:04B0A00000000000AC +:04B0A10000000000AB +:04B0A20000000000AA +:04B0A30000000000A9 +:04B0A40000000000A8 +:04B0A50000000000A7 +:04B0A60000000000A6 +:04B0A70000000000A5 +:04B0A80000000000A4 +:04B0A90000000000A3 +:04B0AA0000000000A2 +:04B0AB0000000000A1 +:04B0AC0000000000A0 +:04B0AD00000000009F +:04B0AE00000000009E +:04B0AF00000000009D +:04B0B000000000009C +:04B0B100000000009B +:04B0B200000000009A +:04B0B3000000000099 +:04B0B4000000000098 +:04B0B5000000000097 +:04B0B6000000000096 +:04B0B7000000000095 +:04B0B8000000000094 +:04B0B9000000000093 +:04B0BA000000000092 +:04B0BB000000000091 +:04B0BC000000000090 +:04B0BD00000000008F +:04B0BE00000000008E +:04B0BF00000000008D +:04B0C000000000008C +:04B0C100000000008B +:04B0C200000000008A +:04B0C3000000000089 +:04B0C4000000000088 +:04B0C5000000000087 +:04B0C6000000000086 +:04B0C7000000000085 +:04B0C8000000000084 +:04B0C9000000000083 +:04B0CA000000000082 +:04B0CB000000000081 +:04B0CC000000000080 +:04B0CD00000000007F +:04B0CE00000000007E +:04B0CF00000000007D +:04B0D000000000007C +:04B0D100000000007B +:04B0D200000000007A +:04B0D3000000000079 +:04B0D4000000000078 +:04B0D5000000000077 +:04B0D6000000000076 +:04B0D7000000000075 +:04B0D8000000000074 +:04B0D9000000000073 +:04B0DA000000000072 +:04B0DB000000000071 +:04B0DC000000000070 +:04B0DD00000000006F +:04B0DE00000000006E +:04B0DF00000000006D +:04B0E000000000006C +:04B0E100000000006B +:04B0E200000000006A +:04B0E3000000000069 +:04B0E4000000000068 +:04B0E5000000000067 +:04B0E6000000000066 +:04B0E7000000000065 +:04B0E8000000000064 +:04B0E9000000000063 +:04B0EA000000000062 +:04B0EB000000000061 +:04B0EC000000000060 +:04B0ED00000000005F +:04B0EE00000000005E +:04B0EF00000000005D +:04B0F000000000005C +:04B0F100000000005B +:04B0F200000000005A +:04B0F3000000000059 +:04B0F4000000000058 +:04B0F5000000000057 +:04B0F6000000000056 +:04B0F7000000000055 +:04B0F8000000000054 +:04B0F9000000000053 +:04B0FA000000000052 +:04B0FB000000000051 +:04B0FC000000000050 +:04B0FD00000000004F +:04B0FE00000000004E +:04B0FF00000000004D +:04B10000000000004B +:04B10100000000004A +:04B102000000000049 +:04B103000000000048 +:04B104000000000047 +:04B105000000000046 +:04B106000000000045 +:04B107000000000044 +:04B108000000000043 +:04B109000000000042 +:04B10A000000000041 +:04B10B000000000040 +:04B10C00000000003F +:04B10D00000000003E +:04B10E00000000003D +:04B10F00000000003C +:04B11000000000003B +:04B11100000000003A +:04B112000000000039 +:04B113000000000038 +:04B114000000000037 +:04B115000000000036 +:04B116000000000035 +:04B117000000000034 +:04B118000000000033 +:04B119000000000032 +:04B11A000000000031 +:04B11B000000000030 +:04B11C00000000002F +:04B11D00000000002E +:04B11E00000000002D +:04B11F00000000002C +:04B12000000000002B +:04B12100000000002A +:04B122000000000029 +:04B123000000000028 +:04B124000000000027 +:04B125000000000026 +:04B126000000000025 +:04B127000000000024 +:04B128000000000023 +:04B129000000000022 +:04B12A000000000021 +:04B12B000000000020 +:04B12C00000000001F +:04B12D00000000001E +:04B12E00000000001D +:04B12F00000000001C +:04B13000000000001B +:04B13100000000001A +:04B132000000000019 +:04B133000000000018 +:04B134000000000017 +:04B135000000000016 +:04B136000000000015 +:04B137000000000014 +:04B138000000000013 +:04B139000000000012 +:04B13A000000000011 +:04B13B000000000010 +:04B13C00000000000F +:04B13D00000000000E +:04B13E00000000000D +:04B13F00000000000C +:04B14000000000000B +:04B14100000000000A +:04B142000000000009 +:04B143000000000008 +:04B144000000000007 +:04B145000000000006 +:04B146000000000005 +:04B147000000000004 +:04B148000000000003 +:04B149000000000002 +:04B14A000000000001 +:04B14B000000000000 +:04B14C0000000000FF +:04B14D0000000000FE +:04B14E0000000000FD +:04B14F0000000000FC +:04B1500000000000FB +:04B1510000000000FA +:04B1520000000000F9 +:04B1530000000000F8 +:04B1540000000000F7 +:04B1550000000000F6 +:04B1560000000000F5 +:04B1570000000000F4 +:04B1580000000000F3 +:04B1590000000000F2 +:04B15A0000000000F1 +:04B15B0000000000F0 +:04B15C0000000000EF +:04B15D0000000000EE +:04B15E0000000000ED +:04B15F0000000000EC +:04B1600000000000EB +:04B1610000000000EA +:04B1620000000000E9 +:04B1630000000000E8 +:04B1640000000000E7 +:04B1650000000000E6 +:04B1660000000000E5 +:04B1670000000000E4 +:04B1680000000000E3 +:04B1690000000000E2 +:04B16A0000000000E1 +:04B16B0000000000E0 +:04B16C0000000000DF +:04B16D0000000000DE +:04B16E0000000000DD +:04B16F0000000000DC +:04B1700000000000DB +:04B1710000000000DA +:04B1720000000000D9 +:04B1730000000000D8 +:04B1740000000000D7 +:04B1750000000000D6 +:04B1760000000000D5 +:04B1770000000000D4 +:04B1780000000000D3 +:04B1790000000000D2 +:04B17A0000000000D1 +:04B17B0000000000D0 +:04B17C0000000000CF +:04B17D0000000000CE +:04B17E0000000000CD +:04B17F0000000000CC +:04B1800000000000CB +:04B1810000000000CA +:04B1820000000000C9 +:04B1830000000000C8 +:04B1840000000000C7 +:04B1850000000000C6 +:04B1860000000000C5 +:04B1870000000000C4 +:04B1880000000000C3 +:04B1890000000000C2 +:04B18A0000000000C1 +:04B18B0000000000C0 +:04B18C0000000000BF +:04B18D0000000000BE +:04B18E0000000000BD +:04B18F0000000000BC +:04B1900000000000BB +:04B1910000000000BA +:04B1920000000000B9 +:04B1930000000000B8 +:04B1940000000000B7 +:04B1950000000000B6 +:04B1960000000000B5 +:04B1970000000000B4 +:04B1980000000000B3 +:04B1990000000000B2 +:04B19A0000000000B1 +:04B19B0000000000B0 +:04B19C0000000000AF +:04B19D0000000000AE +:04B19E0000000000AD +:04B19F0000000000AC +:04B1A00000000000AB +:04B1A10000000000AA +:04B1A20000000000A9 +:04B1A30000000000A8 +:04B1A40000000000A7 +:04B1A50000000000A6 +:04B1A60000000000A5 +:04B1A70000000000A4 +:04B1A80000000000A3 +:04B1A90000000000A2 +:04B1AA0000000000A1 +:04B1AB0000000000A0 +:04B1AC00000000009F +:04B1AD00000000009E +:04B1AE00000000009D +:04B1AF00000000009C +:04B1B000000000009B +:04B1B100000000009A +:04B1B2000000000099 +:04B1B3000000000098 +:04B1B4000000000097 +:04B1B5000000000096 +:04B1B6000000000095 +:04B1B7000000000094 +:04B1B8000000000093 +:04B1B9000000000092 +:04B1BA000000000091 +:04B1BB000000000090 +:04B1BC00000000008F +:04B1BD00000000008E +:04B1BE00000000008D +:04B1BF00000000008C +:04B1C000000000008B +:04B1C100000000008A +:04B1C2000000000089 +:04B1C3000000000088 +:04B1C4000000000087 +:04B1C5000000000086 +:04B1C6000000000085 +:04B1C7000000000084 +:04B1C8000000000083 +:04B1C9000000000082 +:04B1CA000000000081 +:04B1CB000000000080 +:04B1CC00000000007F +:04B1CD00000000007E +:04B1CE00000000007D +:04B1CF00000000007C +:04B1D000000000007B +:04B1D100000000007A +:04B1D2000000000079 +:04B1D3000000000078 +:04B1D4000000000077 +:04B1D5000000000076 +:04B1D6000000000075 +:04B1D7000000000074 +:04B1D8000000000073 +:04B1D9000000000072 +:04B1DA000000000071 +:04B1DB000000000070 +:04B1DC00000000006F +:04B1DD00000000006E +:04B1DE00000000006D +:04B1DF00000000006C +:04B1E000000000006B +:04B1E100000000006A +:04B1E2000000000069 +:04B1E3000000000068 +:04B1E4000000000067 +:04B1E5000000000066 +:04B1E6000000000065 +:04B1E7000000000064 +:04B1E8000000000063 +:04B1E9000000000062 +:04B1EA000000000061 +:04B1EB000000000060 +:04B1EC00000000005F +:04B1ED00000000005E +:04B1EE00000000005D +:04B1EF00000000005C +:04B1F000000000005B +:04B1F100000000005A +:04B1F2000000000059 +:04B1F3000000000058 +:04B1F4000000000057 +:04B1F5000000000056 +:04B1F6000000000055 +:04B1F7000000000054 +:04B1F8000000000053 +:04B1F9000000000052 +:04B1FA000000000051 +:04B1FB000000000050 +:04B1FC00000000004F +:04B1FD00000000004E +:04B1FE00000000004D +:04B1FF00000000004C +:04B20000000000004A +:04B201000000000049 +:04B202000000000048 +:04B203000000000047 +:04B204000000000046 +:04B205000000000045 +:04B206000000000044 +:04B207000000000043 +:04B208000000000042 +:04B209000000000041 +:04B20A000000000040 +:04B20B00000000003F +:04B20C00000000003E +:04B20D00000000003D +:04B20E00000000003C +:04B20F00000000003B +:04B21000000000003A +:04B211000000000039 +:04B212000000000038 +:04B213000000000037 +:04B214000000000036 +:04B215000000000035 +:04B216000000000034 +:04B217000000000033 +:04B218000000000032 +:04B219000000000031 +:04B21A000000000030 +:04B21B00000000002F +:04B21C00000000002E +:04B21D00000000002D +:04B21E00000000002C +:04B21F00000000002B +:04B22000000000002A +:04B221000000000029 +:04B222000000000028 +:04B223000000000027 +:04B224000000000026 +:04B225000000000025 +:04B226000000000024 +:04B227000000000023 +:04B228000000000022 +:04B229000000000021 +:04B22A000000000020 +:04B22B00000000001F +:04B22C00000000001E +:04B22D00000000001D +:04B22E00000000001C +:04B22F00000000001B +:04B23000000000001A +:04B231000000000019 +:04B232000000000018 +:04B233000000000017 +:04B234000000000016 +:04B235000000000015 +:04B236000000000014 +:04B237000000000013 +:04B238000000000012 +:04B239000000000011 +:04B23A000000000010 +:04B23B00000000000F +:04B23C00000000000E +:04B23D00000000000D +:04B23E00000000000C +:04B23F00000000000B +:04B24000000000000A +:04B241000000000009 +:04B242000000000008 +:04B243000000000007 +:04B244000000000006 +:04B245000000000005 +:04B246000000000004 +:04B247000000000003 +:04B248000000000002 +:04B249000000000001 +:04B24A000000000000 +:04B24B0000000000FF +:04B24C0000000000FE +:04B24D0000000000FD +:04B24E0000000000FC +:04B24F0000000000FB +:04B2500000000000FA +:04B2510000000000F9 +:04B2520000000000F8 +:04B2530000000000F7 +:04B2540000000000F6 +:04B2550000000000F5 +:04B2560000000000F4 +:04B2570000000000F3 +:04B2580000000000F2 +:04B2590000000000F1 +:04B25A0000000000F0 +:04B25B0000000000EF +:04B25C0000000000EE +:04B25D0000000000ED +:04B25E0000000000EC +:04B25F0000000000EB +:04B2600000000000EA +:04B2610000000000E9 +:04B2620000000000E8 +:04B2630000000000E7 +:04B2640000000000E6 +:04B2650000000000E5 +:04B2660000000000E4 +:04B2670000000000E3 +:04B2680000000000E2 +:04B2690000000000E1 +:04B26A0000000000E0 +:04B26B0000000000DF +:04B26C0000000000DE +:04B26D0000000000DD +:04B26E0000000000DC +:04B26F0000000000DB +:04B2700000000000DA +:04B2710000000000D9 +:04B2720000000000D8 +:04B2730000000000D7 +:04B2740000000000D6 +:04B2750000000000D5 +:04B2760000000000D4 +:04B2770000000000D3 +:04B2780000000000D2 +:04B2790000000000D1 +:04B27A0000000000D0 +:04B27B0000000000CF +:04B27C0000000000CE +:04B27D0000000000CD +:04B27E0000000000CC +:04B27F0000000000CB +:04B2800000000000CA +:04B2810000000000C9 +:04B2820000000000C8 +:04B2830000000000C7 +:04B2840000000000C6 +:04B2850000000000C5 +:04B2860000000000C4 +:04B2870000000000C3 +:04B2880000000000C2 +:04B2890000000000C1 +:04B28A0000000000C0 +:04B28B0000000000BF +:04B28C0000000000BE +:04B28D0000000000BD +:04B28E0000000000BC +:04B28F0000000000BB +:04B2900000000000BA +:04B2910000000000B9 +:04B2920000000000B8 +:04B2930000000000B7 +:04B2940000000000B6 +:04B2950000000000B5 +:04B2960000000000B4 +:04B2970000000000B3 +:04B2980000000000B2 +:04B2990000000000B1 +:04B29A0000000000B0 +:04B29B0000000000AF +:04B29C0000000000AE +:04B29D0000000000AD +:04B29E0000000000AC +:04B29F0000000000AB +:04B2A00000000000AA +:04B2A10000000000A9 +:04B2A20000000000A8 +:04B2A30000000000A7 +:04B2A40000000000A6 +:04B2A50000000000A5 +:04B2A60000000000A4 +:04B2A70000000000A3 +:04B2A80000000000A2 +:04B2A90000000000A1 +:04B2AA0000000000A0 +:04B2AB00000000009F +:04B2AC00000000009E +:04B2AD00000000009D +:04B2AE00000000009C +:04B2AF00000000009B +:04B2B000000000009A +:04B2B1000000000099 +:04B2B2000000000098 +:04B2B3000000000097 +:04B2B4000000000096 +:04B2B5000000000095 +:04B2B6000000000094 +:04B2B7000000000093 +:04B2B8000000000092 +:04B2B9000000000091 +:04B2BA000000000090 +:04B2BB00000000008F +:04B2BC00000000008E +:04B2BD00000000008D +:04B2BE00000000008C +:04B2BF00000000008B +:04B2C000000000008A +:04B2C1000000000089 +:04B2C2000000000088 +:04B2C3000000000087 +:04B2C4000000000086 +:04B2C5000000000085 +:04B2C6000000000084 +:04B2C7000000000083 +:04B2C8000000000082 +:04B2C9000000000081 +:04B2CA000000000080 +:04B2CB00000000007F +:04B2CC00000000007E +:04B2CD00000000007D +:04B2CE00000000007C +:04B2CF00000000007B +:04B2D000000000007A +:04B2D1000000000079 +:04B2D2000000000078 +:04B2D3000000000077 +:04B2D4000000000076 +:04B2D5000000000075 +:04B2D6000000000074 +:04B2D7000000000073 +:04B2D8000000000072 +:04B2D9000000000071 +:04B2DA000000000070 +:04B2DB00000000006F +:04B2DC00000000006E +:04B2DD00000000006D +:04B2DE00000000006C +:04B2DF00000000006B +:04B2E000000000006A +:04B2E1000000000069 +:04B2E2000000000068 +:04B2E3000000000067 +:04B2E4000000000066 +:04B2E5000000000065 +:04B2E6000000000064 +:04B2E7000000000063 +:04B2E8000000000062 +:04B2E9000000000061 +:04B2EA000000000060 +:04B2EB00000000005F +:04B2EC00000000005E +:04B2ED00000000005D +:04B2EE00000000005C +:04B2EF00000000005B +:04B2F000000000005A +:04B2F1000000000059 +:04B2F2000000000058 +:04B2F3000000000057 +:04B2F4000000000056 +:04B2F5000000000055 +:04B2F6000000000054 +:04B2F7000000000053 +:04B2F8000000000052 +:04B2F9000000000051 +:04B2FA000000000050 +:04B2FB00000000004F +:04B2FC00000000004E +:04B2FD00000000004D +:04B2FE00000000004C +:04B2FF00000000004B +:04B300000000000049 +:04B301000000000048 +:04B302000000000047 +:04B303000000000046 +:04B304000000000045 +:04B305000000000044 +:04B306000000000043 +:04B307000000000042 +:04B308000000000041 +:04B309000000000040 +:04B30A00000000003F +:04B30B00000000003E +:04B30C00000000003D +:04B30D00000000003C +:04B30E00000000003B +:04B30F00000000003A +:04B310000000000039 +:04B311000000000038 +:04B312000000000037 +:04B313000000000036 +:04B314000000000035 +:04B315000000000034 +:04B316000000000033 +:04B317000000000032 +:04B318000000000031 +:04B319000000000030 +:04B31A00000000002F +:04B31B00000000002E +:04B31C00000000002D +:04B31D00000000002C +:04B31E00000000002B +:04B31F00000000002A +:04B320000000000029 +:04B321000000000028 +:04B322000000000027 +:04B323000000000026 +:04B324000000000025 +:04B325000000000024 +:04B326000000000023 +:04B327000000000022 +:04B328000000000021 +:04B329000000000020 +:04B32A00000000001F +:04B32B00000000001E +:04B32C00000000001D +:04B32D00000000001C +:04B32E00000000001B +:04B32F00000000001A +:04B330000000000019 +:04B331000000000018 +:04B332000000000017 +:04B333000000000016 +:04B334000000000015 +:04B335000000000014 +:04B336000000000013 +:04B337000000000012 +:04B338000000000011 +:04B339000000000010 +:04B33A00000000000F +:04B33B00000000000E +:04B33C00000000000D +:04B33D00000000000C +:04B33E00000000000B +:04B33F00000000000A +:04B340000000000009 +:04B341000000000008 +:04B342000000000007 +:04B343000000000006 +:04B344000000000005 +:04B345000000000004 +:04B346000000000003 +:04B347000000000002 +:04B348000000000001 +:04B349000000000000 +:04B34A0000000000FF +:04B34B0000000000FE +:04B34C0000000000FD +:04B34D0000000000FC +:04B34E0000000000FB +:04B34F0000000000FA +:04B3500000000000F9 +:04B3510000000000F8 +:04B3520000000000F7 +:04B3530000000000F6 +:04B3540000000000F5 +:04B3550000000000F4 +:04B3560000000000F3 +:04B3570000000000F2 +:04B3580000000000F1 +:04B3590000000000F0 +:04B35A0000000000EF +:04B35B0000000000EE +:04B35C0000000000ED +:04B35D0000000000EC +:04B35E0000000000EB +:04B35F0000000000EA +:04B3600000000000E9 +:04B3610000000000E8 +:04B3620000000000E7 +:04B3630000000000E6 +:04B3640000000000E5 +:04B3650000000000E4 +:04B3660000000000E3 +:04B3670000000000E2 +:04B3680000000000E1 +:04B3690000000000E0 +:04B36A0000000000DF +:04B36B0000000000DE +:04B36C0000000000DD +:04B36D0000000000DC +:04B36E0000000000DB +:04B36F0000000000DA +:04B3700000000000D9 +:04B3710000000000D8 +:04B3720000000000D7 +:04B3730000000000D6 +:04B3740000000000D5 +:04B3750000000000D4 +:04B3760000000000D3 +:04B3770000000000D2 +:04B3780000000000D1 +:04B3790000000000D0 +:04B37A0000000000CF +:04B37B0000000000CE +:04B37C0000000000CD +:04B37D0000000000CC +:04B37E0000000000CB +:04B37F0000000000CA +:04B3800000000000C9 +:04B3810000000000C8 +:04B3820000000000C7 +:04B3830000000000C6 +:04B3840000000000C5 +:04B3850000000000C4 +:04B3860000000000C3 +:04B3870000000000C2 +:04B3880000000000C1 +:04B3890000000000C0 +:04B38A0000000000BF +:04B38B0000000000BE +:04B38C0000000000BD +:04B38D0000000000BC +:04B38E0000000000BB +:04B38F0000000000BA +:04B3900000000000B9 +:04B3910000000000B8 +:04B3920000000000B7 +:04B3930000000000B6 +:04B3940000000000B5 +:04B3950000000000B4 +:04B3960000000000B3 +:04B3970000000000B2 +:04B3980000000000B1 +:04B3990000000000B0 +:04B39A0000000000AF +:04B39B0000000000AE +:04B39C0000000000AD +:04B39D0000000000AC +:04B39E0000000000AB +:04B39F0000000000AA +:04B3A00000000000A9 +:04B3A10000000000A8 +:04B3A20000000000A7 +:04B3A30000000000A6 +:04B3A40000000000A5 +:04B3A50000000000A4 +:04B3A60000000000A3 +:04B3A70000000000A2 +:04B3A80000000000A1 +:04B3A90000000000A0 +:04B3AA00000000009F +:04B3AB00000000009E +:04B3AC00000000009D +:04B3AD00000000009C +:04B3AE00000000009B +:04B3AF00000000009A +:04B3B0000000000099 +:04B3B1000000000098 +:04B3B2000000000097 +:04B3B3000000000096 +:04B3B4000000000095 +:04B3B5000000000094 +:04B3B6000000000093 +:04B3B7000000000092 +:04B3B8000000000091 +:04B3B9000000000090 +:04B3BA00000000008F +:04B3BB00000000008E +:04B3BC00000000008D +:04B3BD00000000008C +:04B3BE00000000008B +:04B3BF00000000008A +:04B3C0000000000089 +:04B3C1000000000088 +:04B3C2000000000087 +:04B3C3000000000086 +:04B3C4000000000085 +:04B3C5000000000084 +:04B3C6000000000083 +:04B3C7000000000082 +:04B3C8000000000081 +:04B3C9000000000080 +:04B3CA00000000007F +:04B3CB00000000007E +:04B3CC00000000007D +:04B3CD00000000007C +:04B3CE00000000007B +:04B3CF00000000007A +:04B3D0000000000079 +:04B3D1000000000078 +:04B3D2000000000077 +:04B3D3000000000076 +:04B3D4000000000075 +:04B3D5000000000074 +:04B3D6000000000073 +:04B3D7000000000072 +:04B3D8000000000071 +:04B3D9000000000070 +:04B3DA00000000006F +:04B3DB00000000006E +:04B3DC00000000006D +:04B3DD00000000006C +:04B3DE00000000006B +:04B3DF00000000006A +:04B3E0000000000069 +:04B3E1000000000068 +:04B3E2000000000067 +:04B3E3000000000066 +:04B3E4000000000065 +:04B3E5000000000064 +:04B3E6000000000063 +:04B3E7000000000062 +:04B3E8000000000061 +:04B3E9000000000060 +:04B3EA00000000005F +:04B3EB00000000005E +:04B3EC00000000005D +:04B3ED00000000005C +:04B3EE00000000005B +:04B3EF00000000005A +:04B3F0000000000059 +:04B3F1000000000058 +:04B3F2000000000057 +:04B3F3000000000056 +:04B3F4000000000055 +:04B3F5000000000054 +:04B3F6000000000053 +:04B3F7000000000052 +:04B3F8000000000051 +:04B3F9000000000050 +:04B3FA00000000004F +:04B3FB00000000004E +:04B3FC00000000004D +:04B3FD00000000004C +:04B3FE00000000004B +:04B3FF00000000004A +:04B400000000000048 +:04B401000000000047 +:04B402000000000046 +:04B403000000000045 +:04B404000000000044 +:04B405000000000043 +:04B406000000000042 +:04B407000000000041 +:04B408000000000040 +:04B40900000000003F +:04B40A00000000003E +:04B40B00000000003D +:04B40C00000000003C +:04B40D00000000003B +:04B40E00000000003A +:04B40F000000000039 +:04B410000000000038 +:04B411000000000037 +:04B412000000000036 +:04B413000000000035 +:04B414000000000034 +:04B415000000000033 +:04B416000000000032 +:04B417000000000031 +:04B418000000000030 +:04B41900000000002F +:04B41A00000000002E +:04B41B00000000002D +:04B41C00000000002C +:04B41D00000000002B +:04B41E00000000002A +:04B41F000000000029 +:04B420000000000028 +:04B421000000000027 +:04B422000000000026 +:04B423000000000025 +:04B424000000000024 +:04B425000000000023 +:04B426000000000022 +:04B427000000000021 +:04B428000000000020 +:04B42900000000001F +:04B42A00000000001E +:04B42B00000000001D +:04B42C00000000001C +:04B42D00000000001B +:04B42E00000000001A +:04B42F000000000019 +:04B430000000000018 +:04B431000000000017 +:04B432000000000016 +:04B433000000000015 +:04B434000000000014 +:04B435000000000013 +:04B436000000000012 +:04B437000000000011 +:04B438000000000010 +:04B43900000000000F +:04B43A00000000000E +:04B43B00000000000D +:04B43C00000000000C +:04B43D00000000000B +:04B43E00000000000A +:04B43F000000000009 +:04B440000000000008 +:04B441000000000007 +:04B442000000000006 +:04B443000000000005 +:04B444000000000004 +:04B445000000000003 +:04B446000000000002 +:04B447000000000001 +:04B448000000000000 +:04B4490000000000FF +:04B44A0000000000FE +:04B44B0000000000FD +:04B44C0000000000FC +:04B44D0000000000FB +:04B44E0000000000FA +:04B44F0000000000F9 +:04B4500000000000F8 +:04B4510000000000F7 +:04B4520000000000F6 +:04B4530000000000F5 +:04B4540000000000F4 +:04B4550000000000F3 +:04B4560000000000F2 +:04B4570000000000F1 +:04B4580000000000F0 +:04B4590000000000EF +:04B45A0000000000EE +:04B45B0000000000ED +:04B45C0000000000EC +:04B45D0000000000EB +:04B45E0000000000EA +:04B45F0000000000E9 +:04B4600000000000E8 +:04B4610000000000E7 +:04B4620000000000E6 +:04B4630000000000E5 +:04B4640000000000E4 +:04B4650000000000E3 +:04B4660000000000E2 +:04B4670000000000E1 +:04B4680000000000E0 +:04B4690000000000DF +:04B46A0000000000DE +:04B46B0000000000DD +:04B46C0000000000DC +:04B46D0000000000DB +:04B46E0000000000DA +:04B46F0000000000D9 +:04B4700000000000D8 +:04B4710000000000D7 +:04B4720000000000D6 +:04B4730000000000D5 +:04B4740000000000D4 +:04B4750000000000D3 +:04B4760000000000D2 +:04B4770000000000D1 +:04B4780000000000D0 +:04B4790000000000CF +:04B47A0000000000CE +:04B47B0000000000CD +:04B47C0000000000CC +:04B47D0000000000CB +:04B47E0000000000CA +:04B47F0000000000C9 +:04B4800000000000C8 +:04B4810000000000C7 +:04B4820000000000C6 +:04B4830000000000C5 +:04B4840000000000C4 +:04B4850000000000C3 +:04B4860000000000C2 +:04B4870000000000C1 +:04B4880000000000C0 +:04B4890000000000BF +:04B48A0000000000BE +:04B48B0000000000BD +:04B48C0000000000BC +:04B48D0000000000BB +:04B48E0000000000BA +:04B48F0000000000B9 +:04B4900000000000B8 +:04B4910000000000B7 +:04B4920000000000B6 +:04B4930000000000B5 +:04B4940000000000B4 +:04B4950000000000B3 +:04B4960000000000B2 +:04B4970000000000B1 +:04B4980000000000B0 +:04B4990000000000AF +:04B49A0000000000AE +:04B49B0000000000AD +:04B49C0000000000AC +:04B49D0000000000AB +:04B49E0000000000AA +:04B49F0000000000A9 +:04B4A00000000000A8 +:04B4A10000000000A7 +:04B4A20000000000A6 +:04B4A30000000000A5 +:04B4A40000000000A4 +:04B4A50000000000A3 +:04B4A60000000000A2 +:04B4A70000000000A1 +:04B4A80000000000A0 +:04B4A900000000009F +:04B4AA00000000009E +:04B4AB00000000009D +:04B4AC00000000009C +:04B4AD00000000009B +:04B4AE00000000009A +:04B4AF000000000099 +:04B4B0000000000098 +:04B4B1000000000097 +:04B4B2000000000096 +:04B4B3000000000095 +:04B4B4000000000094 +:04B4B5000000000093 +:04B4B6000000000092 +:04B4B7000000000091 +:04B4B8000000000090 +:04B4B900000000008F +:04B4BA00000000008E +:04B4BB00000000008D +:04B4BC00000000008C +:04B4BD00000000008B +:04B4BE00000000008A +:04B4BF000000000089 +:04B4C0000000000088 +:04B4C1000000000087 +:04B4C2000000000086 +:04B4C3000000000085 +:04B4C4000000000084 +:04B4C5000000000083 +:04B4C6000000000082 +:04B4C7000000000081 +:04B4C8000000000080 +:04B4C900000000007F +:04B4CA00000000007E +:04B4CB00000000007D +:04B4CC00000000007C +:04B4CD00000000007B +:04B4CE00000000007A +:04B4CF000000000079 +:04B4D0000000000078 +:04B4D1000000000077 +:04B4D2000000000076 +:04B4D3000000000075 +:04B4D4000000000074 +:04B4D5000000000073 +:04B4D6000000000072 +:04B4D7000000000071 +:04B4D8000000000070 +:04B4D900000000006F +:04B4DA00000000006E +:04B4DB00000000006D +:04B4DC00000000006C +:04B4DD00000000006B +:04B4DE00000000006A +:04B4DF000000000069 +:04B4E0000000000068 +:04B4E1000000000067 +:04B4E2000000000066 +:04B4E3000000000065 +:04B4E4000000000064 +:04B4E5000000000063 +:04B4E6000000000062 +:04B4E7000000000061 +:04B4E8000000000060 +:04B4E900000000005F +:04B4EA00000000005E +:04B4EB00000000005D +:04B4EC00000000005C +:04B4ED00000000005B +:04B4EE00000000005A +:04B4EF000000000059 +:04B4F0000000000058 +:04B4F1000000000057 +:04B4F2000000000056 +:04B4F3000000000055 +:04B4F4000000000054 +:04B4F5000000000053 +:04B4F6000000000052 +:04B4F7000000000051 +:04B4F8000000000050 +:04B4F900000000004F +:04B4FA00000000004E +:04B4FB00000000004D +:04B4FC00000000004C +:04B4FD00000000004B +:04B4FE00000000004A +:04B4FF000000000049 +:04B500000000000047 +:04B501000000000046 +:04B502000000000045 +:04B503000000000044 +:04B504000000000043 +:04B505000000000042 +:04B506000000000041 +:04B507000000000040 +:04B50800000000003F +:04B50900000000003E +:04B50A00000000003D +:04B50B00000000003C +:04B50C00000000003B +:04B50D00000000003A +:04B50E000000000039 +:04B50F000000000038 +:04B510000000000037 +:04B511000000000036 +:04B512000000000035 +:04B513000000000034 +:04B514000000000033 +:04B515000000000032 +:04B516000000000031 +:04B517000000000030 +:04B51800000000002F +:04B51900000000002E +:04B51A00000000002D +:04B51B00000000002C +:04B51C00000000002B +:04B51D00000000002A +:04B51E000000000029 +:04B51F000000000028 +:04B520000000000027 +:04B521000000000026 +:04B522000000000025 +:04B523000000000024 +:04B524000000000023 +:04B525000000000022 +:04B526000000000021 +:04B527000000000020 +:04B52800000000001F +:04B52900000000001E +:04B52A00000000001D +:04B52B00000000001C +:04B52C00000000001B +:04B52D00000000001A +:04B52E000000000019 +:04B52F000000000018 +:04B530000000000017 +:04B531000000000016 +:04B532000000000015 +:04B533000000000014 +:04B534000000000013 +:04B535000000000012 +:04B536000000000011 +:04B537000000000010 +:04B53800000000000F +:04B53900000000000E +:04B53A00000000000D +:04B53B00000000000C +:04B53C00000000000B +:04B53D00000000000A +:04B53E000000000009 +:04B53F000000000008 +:04B540000000000007 +:04B541000000000006 +:04B542000000000005 +:04B543000000000004 +:04B544000000000003 +:04B545000000000002 +:04B546000000000001 +:04B547000000000000 +:04B5480000000000FF +:04B5490000000000FE +:04B54A0000000000FD +:04B54B0000000000FC +:04B54C0000000000FB +:04B54D0000000000FA +:04B54E0000000000F9 +:04B54F0000000000F8 +:04B5500000000000F7 +:04B5510000000000F6 +:04B5520000000000F5 +:04B5530000000000F4 +:04B5540000000000F3 +:04B5550000000000F2 +:04B5560000000000F1 +:04B5570000000000F0 +:04B5580000000000EF +:04B5590000000000EE +:04B55A0000000000ED +:04B55B0000000000EC +:04B55C0000000000EB +:04B55D0000000000EA +:04B55E0000000000E9 +:04B55F0000000000E8 +:04B5600000000000E7 +:04B5610000000000E6 +:04B5620000000000E5 +:04B5630000000000E4 +:04B5640000000000E3 +:04B5650000000000E2 +:04B5660000000000E1 +:04B5670000000000E0 +:04B5680000000000DF +:04B5690000000000DE +:04B56A0000000000DD +:04B56B0000000000DC +:04B56C0000000000DB +:04B56D0000000000DA +:04B56E0000000000D9 +:04B56F0000000000D8 +:04B5700000000000D7 +:04B5710000000000D6 +:04B5720000000000D5 +:04B5730000000000D4 +:04B5740000000000D3 +:04B5750000000000D2 +:04B5760000000000D1 +:04B5770000000000D0 +:04B5780000000000CF +:04B5790000000000CE +:04B57A0000000000CD +:04B57B0000000000CC +:04B57C0000000000CB +:04B57D0000000000CA +:04B57E0000000000C9 +:04B57F0000000000C8 +:04B5800000000000C7 +:04B5810000000000C6 +:04B5820000000000C5 +:04B5830000000000C4 +:04B5840000000000C3 +:04B5850000000000C2 +:04B5860000000000C1 +:04B5870000000000C0 +:04B5880000000000BF +:04B5890000000000BE +:04B58A0000000000BD +:04B58B0000000000BC +:04B58C0000000000BB +:04B58D0000000000BA +:04B58E0000000000B9 +:04B58F0000000000B8 +:04B5900000000000B7 +:04B5910000000000B6 +:04B5920000000000B5 +:04B5930000000000B4 +:04B5940000000000B3 +:04B5950000000000B2 +:04B5960000000000B1 +:04B5970000000000B0 +:04B5980000000000AF +:04B5990000000000AE +:04B59A0000000000AD +:04B59B0000000000AC +:04B59C0000000000AB +:04B59D0000000000AA +:04B59E0000000000A9 +:04B59F0000000000A8 +:04B5A00000000000A7 +:04B5A10000000000A6 +:04B5A20000000000A5 +:04B5A30000000000A4 +:04B5A40000000000A3 +:04B5A50000000000A2 +:04B5A60000000000A1 +:04B5A70000000000A0 +:04B5A800000000009F +:04B5A900000000009E +:04B5AA00000000009D +:04B5AB00000000009C +:04B5AC00000000009B +:04B5AD00000000009A +:04B5AE000000000099 +:04B5AF000000000098 +:04B5B0000000000097 +:04B5B1000000000096 +:04B5B2000000000095 +:04B5B3000000000094 +:04B5B4000000000093 +:04B5B5000000000092 +:04B5B6000000000091 +:04B5B7000000000090 +:04B5B800000000008F +:04B5B900000000008E +:04B5BA00000000008D +:04B5BB00000000008C +:04B5BC00000000008B +:04B5BD00000000008A +:04B5BE000000000089 +:04B5BF000000000088 +:04B5C0000000000087 +:04B5C1000000000086 +:04B5C2000000000085 +:04B5C3000000000084 +:04B5C4000000000083 +:04B5C5000000000082 +:04B5C6000000000081 +:04B5C7000000000080 +:04B5C800000000007F +:04B5C900000000007E +:04B5CA00000000007D +:04B5CB00000000007C +:04B5CC00000000007B +:04B5CD00000000007A +:04B5CE000000000079 +:04B5CF000000000078 +:04B5D0000000000077 +:04B5D1000000000076 +:04B5D2000000000075 +:04B5D3000000000074 +:04B5D4000000000073 +:04B5D5000000000072 +:04B5D6000000000071 +:04B5D7000000000070 +:04B5D800000000006F +:04B5D900000000006E +:04B5DA00000000006D +:04B5DB00000000006C +:04B5DC00000000006B +:04B5DD00000000006A +:04B5DE000000000069 +:04B5DF000000000068 +:04B5E0000000000067 +:04B5E1000000000066 +:04B5E2000000000065 +:04B5E3000000000064 +:04B5E4000000000063 +:04B5E5000000000062 +:04B5E6000000000061 +:04B5E7000000000060 +:04B5E800000000005F +:04B5E900000000005E +:04B5EA00000000005D +:04B5EB00000000005C +:04B5EC00000000005B +:04B5ED00000000005A +:04B5EE000000000059 +:04B5EF000000000058 +:04B5F0000000000057 +:04B5F1000000000056 +:04B5F2000000000055 +:04B5F3000000000054 +:04B5F4000000000053 +:04B5F5000000000052 +:04B5F6000000000051 +:04B5F7000000000050 +:04B5F800000000004F +:04B5F900000000004E +:04B5FA00000000004D +:04B5FB00000000004C +:04B5FC00000000004B +:04B5FD00000000004A +:04B5FE000000000049 +:04B5FF000000000048 +:04B600000000000046 +:04B601000000000045 +:04B602000000000044 +:04B603000000000043 +:04B604000000000042 +:04B605000000000041 +:04B606000000000040 +:04B60700000000003F +:04B60800000000003E +:04B60900000000003D +:04B60A00000000003C +:04B60B00000000003B +:04B60C00000000003A +:04B60D000000000039 +:04B60E000000000038 +:04B60F000000000037 +:04B610000000000036 +:04B611000000000035 +:04B612000000000034 +:04B613000000000033 +:04B614000000000032 +:04B615000000000031 +:04B616000000000030 +:04B61700000000002F +:04B61800000000002E +:04B61900000000002D +:04B61A00000000002C +:04B61B00000000002B +:04B61C00000000002A +:04B61D000000000029 +:04B61E000000000028 +:04B61F000000000027 +:04B620000000000026 +:04B621000000000025 +:04B622000000000024 +:04B623000000000023 +:04B624000000000022 +:04B625000000000021 +:04B626000000000020 +:04B62700000000001F +:04B62800000000001E +:04B62900000000001D +:04B62A00000000001C +:04B62B00000000001B +:04B62C00000000001A +:04B62D000000000019 +:04B62E000000000018 +:04B62F000000000017 +:04B630000000000016 +:04B631000000000015 +:04B632000000000014 +:04B633000000000013 +:04B634000000000012 +:04B635000000000011 +:04B636000000000010 +:04B63700000000000F +:04B63800000000000E +:04B63900000000000D +:04B63A00000000000C +:04B63B00000000000B +:04B63C00000000000A +:04B63D000000000009 +:04B63E000000000008 +:04B63F000000000007 +:04B640000000000006 +:04B641000000000005 +:04B642000000000004 +:04B643000000000003 +:04B644000000000002 +:04B645000000000001 +:04B646000000000000 +:04B6470000000000FF +:04B6480000000000FE +:04B6490000000000FD +:04B64A0000000000FC +:04B64B0000000000FB +:04B64C0000000000FA +:04B64D0000000000F9 +:04B64E0000000000F8 +:04B64F0000000000F7 +:04B6500000000000F6 +:04B6510000000000F5 +:04B6520000000000F4 +:04B6530000000000F3 +:04B6540000000000F2 +:04B6550000000000F1 +:04B6560000000000F0 +:04B6570000000000EF +:04B6580000000000EE +:04B6590000000000ED +:04B65A0000000000EC +:04B65B0000000000EB +:04B65C0000000000EA +:04B65D0000000000E9 +:04B65E0000000000E8 +:04B65F0000000000E7 +:04B6600000000000E6 +:04B6610000000000E5 +:04B6620000000000E4 +:04B6630000000000E3 +:04B6640000000000E2 +:04B6650000000000E1 +:04B6660000000000E0 +:04B6670000000000DF +:04B6680000000000DE +:04B6690000000000DD +:04B66A0000000000DC +:04B66B0000000000DB +:04B66C0000000000DA +:04B66D0000000000D9 +:04B66E0000000000D8 +:04B66F0000000000D7 +:04B6700000000000D6 +:04B6710000000000D5 +:04B6720000000000D4 +:04B6730000000000D3 +:04B6740000000000D2 +:04B6750000000000D1 +:04B6760000000000D0 +:04B6770000000000CF +:04B6780000000000CE +:04B6790000000000CD +:04B67A0000000000CC +:04B67B0000000000CB +:04B67C0000000000CA +:04B67D0000000000C9 +:04B67E0000000000C8 +:04B67F0000000000C7 +:04B6800000000000C6 +:04B6810000000000C5 +:04B6820000000000C4 +:04B6830000000000C3 +:04B6840000000000C2 +:04B6850000000000C1 +:04B6860000000000C0 +:04B6870000000000BF +:04B6880000000000BE +:04B6890000000000BD +:04B68A0000000000BC +:04B68B0000000000BB +:04B68C0000000000BA +:04B68D0000000000B9 +:04B68E0000000000B8 +:04B68F0000000000B7 +:04B6900000000000B6 +:04B6910000000000B5 +:04B6920000000000B4 +:04B6930000000000B3 +:04B6940000000000B2 +:04B6950000000000B1 +:04B6960000000000B0 +:04B6970000000000AF +:04B6980000000000AE +:04B6990000000000AD +:04B69A0000000000AC +:04B69B0000000000AB +:04B69C0000000000AA +:04B69D0000000000A9 +:04B69E0000000000A8 +:04B69F0000000000A7 +:04B6A00000000000A6 +:04B6A10000000000A5 +:04B6A20000000000A4 +:04B6A30000000000A3 +:04B6A40000000000A2 +:04B6A50000000000A1 +:04B6A60000000000A0 +:04B6A700000000009F +:04B6A800000000009E +:04B6A900000000009D +:04B6AA00000000009C +:04B6AB00000000009B +:04B6AC00000000009A +:04B6AD000000000099 +:04B6AE000000000098 +:04B6AF000000000097 +:04B6B0000000000096 +:04B6B1000000000095 +:04B6B2000000000094 +:04B6B3000000000093 +:04B6B4000000000092 +:04B6B5000000000091 +:04B6B6000000000090 +:04B6B700000000008F +:04B6B800000000008E +:04B6B900000000008D +:04B6BA00000000008C +:04B6BB00000000008B +:04B6BC00000000008A +:04B6BD000000000089 +:04B6BE000000000088 +:04B6BF000000000087 +:04B6C0000000000086 +:04B6C1000000000085 +:04B6C2000000000084 +:04B6C3000000000083 +:04B6C4000000000082 +:04B6C5000000000081 +:04B6C6000000000080 +:04B6C700000000007F +:04B6C800000000007E +:04B6C900000000007D +:04B6CA00000000007C +:04B6CB00000000007B +:04B6CC00000000007A +:04B6CD000000000079 +:04B6CE000000000078 +:04B6CF000000000077 +:04B6D0000000000076 +:04B6D1000000000075 +:04B6D2000000000074 +:04B6D3000000000073 +:04B6D4000000000072 +:04B6D5000000000071 +:04B6D6000000000070 +:04B6D700000000006F +:04B6D800000000006E +:04B6D900000000006D +:04B6DA00000000006C +:04B6DB00000000006B +:04B6DC00000000006A +:04B6DD000000000069 +:04B6DE000000000068 +:04B6DF000000000067 +:04B6E0000000000066 +:04B6E1000000000065 +:04B6E2000000000064 +:04B6E3000000000063 +:04B6E4000000000062 +:04B6E5000000000061 +:04B6E6000000000060 +:04B6E700000000005F +:04B6E800000000005E +:04B6E900000000005D +:04B6EA00000000005C +:04B6EB00000000005B +:04B6EC00000000005A +:04B6ED000000000059 +:04B6EE000000000058 +:04B6EF000000000057 +:04B6F0000000000056 +:04B6F1000000000055 +:04B6F2000000000054 +:04B6F3000000000053 +:04B6F4000000000052 +:04B6F5000000000051 +:04B6F6000000000050 +:04B6F700000000004F +:04B6F800000000004E +:04B6F900000000004D +:04B6FA00000000004C +:04B6FB00000000004B +:04B6FC00000000004A +:04B6FD000000000049 +:04B6FE000000000048 +:04B6FF000000000047 +:04B700000000000045 +:04B701000000000044 +:04B702000000000043 +:04B703000000000042 +:04B704000000000041 +:04B705000000000040 +:04B70600000000003F +:04B70700000000003E +:04B70800000000003D +:04B70900000000003C +:04B70A00000000003B +:04B70B00000000003A +:04B70C000000000039 +:04B70D000000000038 +:04B70E000000000037 +:04B70F000000000036 +:04B710000000000035 +:04B711000000000034 +:04B712000000000033 +:04B713000000000032 +:04B714000000000031 +:04B715000000000030 +:04B71600000000002F +:04B71700000000002E +:04B71800000000002D +:04B71900000000002C +:04B71A00000000002B +:04B71B00000000002A +:04B71C000000000029 +:04B71D000000000028 +:04B71E000000000027 +:04B71F000000000026 +:04B720000000000025 +:04B721000000000024 +:04B722000000000023 +:04B723000000000022 +:04B724000000000021 +:04B725000000000020 +:04B72600000000001F +:04B72700000000001E +:04B72800000000001D +:04B72900000000001C +:04B72A00000000001B +:04B72B00000000001A +:04B72C000000000019 +:04B72D000000000018 +:04B72E000000000017 +:04B72F000000000016 +:04B730000000000015 +:04B731000000000014 +:04B732000000000013 +:04B733000000000012 +:04B734000000000011 +:04B735000000000010 +:04B73600000000000F +:04B73700000000000E +:04B73800000000000D +:04B73900000000000C +:04B73A00000000000B +:04B73B00000000000A +:04B73C000000000009 +:04B73D000000000008 +:04B73E000000000007 +:04B73F000000000006 +:04B740000000000005 +:04B741000000000004 +:04B742000000000003 +:04B743000000000002 +:04B744000000000001 +:04B745000000000000 +:04B7460000000000FF +:04B7470000000000FE +:04B7480000000000FD +:04B7490000000000FC +:04B74A0000000000FB +:04B74B0000000000FA +:04B74C0000000000F9 +:04B74D0000000000F8 +:04B74E0000000000F7 +:04B74F0000000000F6 +:04B7500000000000F5 +:04B7510000000000F4 +:04B7520000000000F3 +:04B7530000000000F2 +:04B7540000000000F1 +:04B7550000000000F0 +:04B7560000000000EF +:04B7570000000000EE +:04B7580000000000ED +:04B7590000000000EC +:04B75A0000000000EB +:04B75B0000000000EA +:04B75C0000000000E9 +:04B75D0000000000E8 +:04B75E0000000000E7 +:04B75F0000000000E6 +:04B7600000000000E5 +:04B7610000000000E4 +:04B7620000000000E3 +:04B7630000000000E2 +:04B7640000000000E1 +:04B7650000000000E0 +:04B7660000000000DF +:04B7670000000000DE +:04B7680000000000DD +:04B7690000000000DC +:04B76A0000000000DB +:04B76B0000000000DA +:04B76C0000000000D9 +:04B76D0000000000D8 +:04B76E0000000000D7 +:04B76F0000000000D6 +:04B7700000000000D5 +:04B7710000000000D4 +:04B7720000000000D3 +:04B7730000000000D2 +:04B7740000000000D1 +:04B7750000000000D0 +:04B7760000000000CF +:04B7770000000000CE +:04B7780000000000CD +:04B7790000000000CC +:04B77A0000000000CB +:04B77B0000000000CA +:04B77C0000000000C9 +:04B77D0000000000C8 +:04B77E0000000000C7 +:04B77F0000000000C6 +:04B7800000000000C5 +:04B7810000000000C4 +:04B7820000000000C3 +:04B7830000000000C2 +:04B7840000000000C1 +:04B7850000000000C0 +:04B7860000000000BF +:04B7870000000000BE +:04B7880000000000BD +:04B7890000000000BC +:04B78A0000000000BB +:04B78B0000000000BA +:04B78C0000000000B9 +:04B78D0000000000B8 +:04B78E0000000000B7 +:04B78F0000000000B6 +:04B7900000000000B5 +:04B7910000000000B4 +:04B7920000000000B3 +:04B7930000000000B2 +:04B7940000000000B1 +:04B7950000000000B0 +:04B7960000000000AF +:04B7970000000000AE +:04B7980000000000AD +:04B7990000000000AC +:04B79A0000000000AB +:04B79B0000000000AA +:04B79C0000000000A9 +:04B79D0000000000A8 +:04B79E0000000000A7 +:04B79F0000000000A6 +:04B7A00000000000A5 +:04B7A10000000000A4 +:04B7A20000000000A3 +:04B7A30000000000A2 +:04B7A40000000000A1 +:04B7A50000000000A0 +:04B7A600000000009F +:04B7A700000000009E +:04B7A800000000009D +:04B7A900000000009C +:04B7AA00000000009B +:04B7AB00000000009A +:04B7AC000000000099 +:04B7AD000000000098 +:04B7AE000000000097 +:04B7AF000000000096 +:04B7B0000000000095 +:04B7B1000000000094 +:04B7B2000000000093 +:04B7B3000000000092 +:04B7B4000000000091 +:04B7B5000000000090 +:04B7B600000000008F +:04B7B700000000008E +:04B7B800000000008D +:04B7B900000000008C +:04B7BA00000000008B +:04B7BB00000000008A +:04B7BC000000000089 +:04B7BD000000000088 +:04B7BE000000000087 +:04B7BF000000000086 +:04B7C0000000000085 +:04B7C1000000000084 +:04B7C2000000000083 +:04B7C3000000000082 +:04B7C4000000000081 +:04B7C5000000000080 +:04B7C600000000007F +:04B7C700000000007E +:04B7C800000000007D +:04B7C900000000007C +:04B7CA00000000007B +:04B7CB00000000007A +:04B7CC000000000079 +:04B7CD000000000078 +:04B7CE000000000077 +:04B7CF000000000076 +:04B7D0000000000075 +:04B7D1000000000074 +:04B7D2000000000073 +:04B7D3000000000072 +:04B7D4000000000071 +:04B7D5000000000070 +:04B7D600000000006F +:04B7D700000000006E +:04B7D800000000006D +:04B7D900000000006C +:04B7DA00000000006B +:04B7DB00000000006A +:04B7DC000000000069 +:04B7DD000000000068 +:04B7DE000000000067 +:04B7DF000000000066 +:04B7E0000000000065 +:04B7E1000000000064 +:04B7E2000000000063 +:04B7E3000000000062 +:04B7E4000000000061 +:04B7E5000000000060 +:04B7E600000000005F +:04B7E700000000005E +:04B7E800000000005D +:04B7E900000000005C +:04B7EA00000000005B +:04B7EB00000000005A +:04B7EC000000000059 +:04B7ED000000000058 +:04B7EE000000000057 +:04B7EF000000000056 +:04B7F0000000000055 +:04B7F1000000000054 +:04B7F2000000000053 +:04B7F3000000000052 +:04B7F4000000000051 +:04B7F5000000000050 +:04B7F600000000004F +:04B7F700000000004E +:04B7F800000000004D +:04B7F900000000004C +:04B7FA00000000004B +:04B7FB00000000004A +:04B7FC000000000049 +:04B7FD000000000048 +:04B7FE000000000047 +:04B7FF000000000046 +:04B800000000000044 +:04B801000000000043 +:04B802000000000042 +:04B803000000000041 +:04B804000000000040 +:04B80500000000003F +:04B80600000000003E +:04B80700000000003D +:04B80800000000003C +:04B80900000000003B +:04B80A00000000003A +:04B80B000000000039 +:04B80C000000000038 +:04B80D000000000037 +:04B80E000000000036 +:04B80F000000000035 +:04B810000000000034 +:04B811000000000033 +:04B812000000000032 +:04B813000000000031 +:04B814000000000030 +:04B81500000000002F +:04B81600000000002E +:04B81700000000002D +:04B81800000000002C +:04B81900000000002B +:04B81A00000000002A +:04B81B000000000029 +:04B81C000000000028 +:04B81D000000000027 +:04B81E000000000026 +:04B81F000000000025 +:04B820000000000024 +:04B821000000000023 +:04B822000000000022 +:04B823000000000021 +:04B824000000000020 +:04B82500000000001F +:04B82600000000001E +:04B82700000000001D +:04B82800000000001C +:04B82900000000001B +:04B82A00000000001A +:04B82B000000000019 +:04B82C000000000018 +:04B82D000000000017 +:04B82E000000000016 +:04B82F000000000015 +:04B830000000000014 +:04B831000000000013 +:04B832000000000012 +:04B833000000000011 +:04B834000000000010 +:04B83500000000000F +:04B83600000000000E +:04B83700000000000D +:04B83800000000000C +:04B83900000000000B +:04B83A00000000000A +:04B83B000000000009 +:04B83C000000000008 +:04B83D000000000007 +:04B83E000000000006 +:04B83F000000000005 +:04B840000000000004 +:04B841000000000003 +:04B842000000000002 +:04B843000000000001 +:04B844000000000000 +:04B8450000000000FF +:04B8460000000000FE +:04B8470000000000FD +:04B8480000000000FC +:04B8490000000000FB +:04B84A0000000000FA +:04B84B0000000000F9 +:04B84C0000000000F8 +:04B84D0000000000F7 +:04B84E0000000000F6 +:04B84F0000000000F5 +:04B8500000000000F4 +:04B8510000000000F3 +:04B8520000000000F2 +:04B8530000000000F1 +:04B8540000000000F0 +:04B8550000000000EF +:04B8560000000000EE +:04B8570000000000ED +:04B8580000000000EC +:04B8590000000000EB +:04B85A0000000000EA +:04B85B0000000000E9 +:04B85C0000000000E8 +:04B85D0000000000E7 +:04B85E0000000000E6 +:04B85F0000000000E5 +:04B8600000000000E4 +:04B8610000000000E3 +:04B8620000000000E2 +:04B8630000000000E1 +:04B8640000000000E0 +:04B8650000000000DF +:04B8660000000000DE +:04B8670000000000DD +:04B8680000000000DC +:04B8690000000000DB +:04B86A0000000000DA +:04B86B0000000000D9 +:04B86C0000000000D8 +:04B86D0000000000D7 +:04B86E0000000000D6 +:04B86F0000000000D5 +:04B8700000000000D4 +:04B8710000000000D3 +:04B8720000000000D2 +:04B8730000000000D1 +:04B8740000000000D0 +:04B8750000000000CF +:04B8760000000000CE +:04B8770000000000CD +:04B8780000000000CC +:04B8790000000000CB +:04B87A0000000000CA +:04B87B0000000000C9 +:04B87C0000000000C8 +:04B87D0000000000C7 +:04B87E0000000000C6 +:04B87F0000000000C5 +:04B8800000000000C4 +:04B8810000000000C3 +:04B8820000000000C2 +:04B8830000000000C1 +:04B8840000000000C0 +:04B8850000000000BF +:04B8860000000000BE +:04B8870000000000BD +:04B8880000000000BC +:04B8890000000000BB +:04B88A0000000000BA +:04B88B0000000000B9 +:04B88C0000000000B8 +:04B88D0000000000B7 +:04B88E0000000000B6 +:04B88F0000000000B5 +:04B8900000000000B4 +:04B8910000000000B3 +:04B8920000000000B2 +:04B8930000000000B1 +:04B8940000000000B0 +:04B8950000000000AF +:04B8960000000000AE +:04B8970000000000AD +:04B8980000000000AC +:04B8990000000000AB +:04B89A0000000000AA +:04B89B0000000000A9 +:04B89C0000000000A8 +:04B89D0000000000A7 +:04B89E0000000000A6 +:04B89F0000000000A5 +:04B8A00000000000A4 +:04B8A10000000000A3 +:04B8A20000000000A2 +:04B8A30000000000A1 +:04B8A40000000000A0 +:04B8A500000000009F +:04B8A600000000009E +:04B8A700000000009D +:04B8A800000000009C +:04B8A900000000009B +:04B8AA00000000009A +:04B8AB000000000099 +:04B8AC000000000098 +:04B8AD000000000097 +:04B8AE000000000096 +:04B8AF000000000095 +:04B8B0000000000094 +:04B8B1000000000093 +:04B8B2000000000092 +:04B8B3000000000091 +:04B8B4000000000090 +:04B8B500000000008F +:04B8B600000000008E +:04B8B700000000008D +:04B8B800000000008C +:04B8B900000000008B +:04B8BA00000000008A +:04B8BB000000000089 +:04B8BC000000000088 +:04B8BD000000000087 +:04B8BE000000000086 +:04B8BF000000000085 +:04B8C0000000000084 +:04B8C1000000000083 +:04B8C2000000000082 +:04B8C3000000000081 +:04B8C4000000000080 +:04B8C500000000007F +:04B8C600000000007E +:04B8C700000000007D +:04B8C800000000007C +:04B8C900000000007B +:04B8CA00000000007A +:04B8CB000000000079 +:04B8CC000000000078 +:04B8CD000000000077 +:04B8CE000000000076 +:04B8CF000000000075 +:04B8D0000000000074 +:04B8D1000000000073 +:04B8D2000000000072 +:04B8D3000000000071 +:04B8D4000000000070 +:04B8D500000000006F +:04B8D600000000006E +:04B8D700000000006D +:04B8D800000000006C +:04B8D900000000006B +:04B8DA00000000006A +:04B8DB000000000069 +:04B8DC000000000068 +:04B8DD000000000067 +:04B8DE000000000066 +:04B8DF000000000065 +:04B8E0000000000064 +:04B8E1000000000063 +:04B8E2000000000062 +:04B8E3000000000061 +:04B8E4000000000060 +:04B8E500000000005F +:04B8E600000000005E +:04B8E700000000005D +:04B8E800000000005C +:04B8E900000000005B +:04B8EA00000000005A +:04B8EB000000000059 +:04B8EC000000000058 +:04B8ED000000000057 +:04B8EE000000000056 +:04B8EF000000000055 +:04B8F0000000000054 +:04B8F1000000000053 +:04B8F2000000000052 +:04B8F3000000000051 +:04B8F4000000000050 +:04B8F500000000004F +:04B8F600000000004E +:04B8F700000000004D +:04B8F800000000004C +:04B8F900000000004B +:04B8FA00000000004A +:04B8FB000000000049 +:04B8FC000000000048 +:04B8FD000000000047 +:04B8FE000000000046 +:04B8FF000000000045 +:04B900000000000043 +:04B901000000000042 +:04B902000000000041 +:04B903000000000040 +:04B90400000000003F +:04B90500000000003E +:04B90600000000003D +:04B90700000000003C +:04B90800000000003B +:04B90900000000003A +:04B90A000000000039 +:04B90B000000000038 +:04B90C000000000037 +:04B90D000000000036 +:04B90E000000000035 +:04B90F000000000034 +:04B910000000000033 +:04B911000000000032 +:04B912000000000031 +:04B913000000000030 +:04B91400000000002F +:04B91500000000002E +:04B91600000000002D +:04B91700000000002C +:04B91800000000002B +:04B91900000000002A +:04B91A000000000029 +:04B91B000000000028 +:04B91C000000000027 +:04B91D000000000026 +:04B91E000000000025 +:04B91F000000000024 +:04B920000000000023 +:04B921000000000022 +:04B922000000000021 +:04B923000000000020 +:04B92400000000001F +:04B92500000000001E +:04B92600000000001D +:04B92700000000001C +:04B92800000000001B +:04B92900000000001A +:04B92A000000000019 +:04B92B000000000018 +:04B92C000000000017 +:04B92D000000000016 +:04B92E000000000015 +:04B92F000000000014 +:04B930000000000013 +:04B931000000000012 +:04B932000000000011 +:04B933000000000010 +:04B93400000000000F +:04B93500000000000E +:04B93600000000000D +:04B93700000000000C +:04B93800000000000B +:04B93900000000000A +:04B93A000000000009 +:04B93B000000000008 +:04B93C000000000007 +:04B93D000000000006 +:04B93E000000000005 +:04B93F000000000004 +:04B940000000000003 +:04B941000000000002 +:04B942000000000001 +:04B943000000000000 +:04B9440000000000FF +:04B9450000000000FE +:04B9460000000000FD +:04B9470000000000FC +:04B9480000000000FB +:04B9490000000000FA +:04B94A0000000000F9 +:04B94B0000000000F8 +:04B94C0000000000F7 +:04B94D0000000000F6 +:04B94E0000000000F5 +:04B94F0000000000F4 +:04B9500000000000F3 +:04B9510000000000F2 +:04B9520000000000F1 +:04B9530000000000F0 +:04B9540000000000EF +:04B9550000000000EE +:04B9560000000000ED +:04B9570000000000EC +:04B9580000000000EB +:04B9590000000000EA +:04B95A0000000000E9 +:04B95B0000000000E8 +:04B95C0000000000E7 +:04B95D0000000000E6 +:04B95E0000000000E5 +:04B95F0000000000E4 +:04B9600000000000E3 +:04B9610000000000E2 +:04B9620000000000E1 +:04B9630000000000E0 +:04B9640000000000DF +:04B9650000000000DE +:04B9660000000000DD +:04B9670000000000DC +:04B9680000000000DB +:04B9690000000000DA +:04B96A0000000000D9 +:04B96B0000000000D8 +:04B96C0000000000D7 +:04B96D0000000000D6 +:04B96E0000000000D5 +:04B96F0000000000D4 +:04B9700000000000D3 +:04B9710000000000D2 +:04B9720000000000D1 +:04B9730000000000D0 +:04B9740000000000CF +:04B9750000000000CE +:04B9760000000000CD +:04B9770000000000CC +:04B9780000000000CB +:04B9790000000000CA +:04B97A0000000000C9 +:04B97B0000000000C8 +:04B97C0000000000C7 +:04B97D0000000000C6 +:04B97E0000000000C5 +:04B97F0000000000C4 +:04B9800000000000C3 +:04B9810000000000C2 +:04B9820000000000C1 +:04B9830000000000C0 +:04B9840000000000BF +:04B9850000000000BE +:04B9860000000000BD +:04B9870000000000BC +:04B9880000000000BB +:04B9890000000000BA +:04B98A0000000000B9 +:04B98B0000000000B8 +:04B98C0000000000B7 +:04B98D0000000000B6 +:04B98E0000000000B5 +:04B98F0000000000B4 +:04B9900000000000B3 +:04B9910000000000B2 +:04B9920000000000B1 +:04B9930000000000B0 +:04B9940000000000AF +:04B9950000000000AE +:04B9960000000000AD +:04B9970000000000AC +:04B9980000000000AB +:04B9990000000000AA +:04B99A0000000000A9 +:04B99B0000000000A8 +:04B99C0000000000A7 +:04B99D0000000000A6 +:04B99E0000000000A5 +:04B99F0000000000A4 +:04B9A00000000000A3 +:04B9A10000000000A2 +:04B9A20000000000A1 +:04B9A30000000000A0 +:04B9A400000000009F +:04B9A500000000009E +:04B9A600000000009D +:04B9A700000000009C +:04B9A800000000009B +:04B9A900000000009A +:04B9AA000000000099 +:04B9AB000000000098 +:04B9AC000000000097 +:04B9AD000000000096 +:04B9AE000000000095 +:04B9AF000000000094 +:04B9B0000000000093 +:04B9B1000000000092 +:04B9B2000000000091 +:04B9B3000000000090 +:04B9B400000000008F +:04B9B500000000008E +:04B9B600000000008D +:04B9B700000000008C +:04B9B800000000008B +:04B9B900000000008A +:04B9BA000000000089 +:04B9BB000000000088 +:04B9BC000000000087 +:04B9BD000000000086 +:04B9BE000000000085 +:04B9BF000000000084 +:04B9C0000000000083 +:04B9C1000000000082 +:04B9C2000000000081 +:04B9C3000000000080 +:04B9C400000000007F +:04B9C500000000007E +:04B9C600000000007D +:04B9C700000000007C +:04B9C800000000007B +:04B9C900000000007A +:04B9CA000000000079 +:04B9CB000000000078 +:04B9CC000000000077 +:04B9CD000000000076 +:04B9CE000000000075 +:04B9CF000000000074 +:04B9D0000000000073 +:04B9D1000000000072 +:04B9D2000000000071 +:04B9D3000000000070 +:04B9D400000000006F +:04B9D500000000006E +:04B9D600000000006D +:04B9D700000000006C +:04B9D800000000006B +:04B9D900000000006A +:04B9DA000000000069 +:04B9DB000000000068 +:04B9DC000000000067 +:04B9DD000000000066 +:04B9DE000000000065 +:04B9DF000000000064 +:04B9E0000000000063 +:04B9E1000000000062 +:04B9E2000000000061 +:04B9E3000000000060 +:04B9E400000000005F +:04B9E500000000005E +:04B9E600000000005D +:04B9E700000000005C +:04B9E800000000005B +:04B9E900000000005A +:04B9EA000000000059 +:04B9EB000000000058 +:04B9EC000000000057 +:04B9ED000000000056 +:04B9EE000000000055 +:04B9EF000000000054 +:04B9F0000000000053 +:04B9F1000000000052 +:04B9F2000000000051 +:04B9F3000000000050 +:04B9F400000000004F +:04B9F500000000004E +:04B9F600000000004D +:04B9F700000000004C +:04B9F800000000004B +:04B9F900000000004A +:04B9FA000000000049 +:04B9FB000000000048 +:04B9FC000000000047 +:04B9FD000000000046 +:04B9FE000000000045 +:04B9FF000000000044 +:04BA00000000000042 +:04BA01000000000041 +:04BA02000000000040 +:04BA0300000000003F +:04BA0400000000003E +:04BA0500000000003D +:04BA0600000000003C +:04BA0700000000003B +:04BA0800000000003A +:04BA09000000000039 +:04BA0A000000000038 +:04BA0B000000000037 +:04BA0C000000000036 +:04BA0D000000000035 +:04BA0E000000000034 +:04BA0F000000000033 +:04BA10000000000032 +:04BA11000000000031 +:04BA12000000000030 +:04BA1300000000002F +:04BA1400000000002E +:04BA1500000000002D +:04BA1600000000002C +:04BA1700000000002B +:04BA1800000000002A +:04BA19000000000029 +:04BA1A000000000028 +:04BA1B000000000027 +:04BA1C000000000026 +:04BA1D000000000025 +:04BA1E000000000024 +:04BA1F000000000023 +:04BA20000000000022 +:04BA21000000000021 +:04BA22000000000020 +:04BA2300000000001F +:04BA2400000000001E +:04BA2500000000001D +:04BA2600000000001C +:04BA2700000000001B +:04BA2800000000001A +:04BA29000000000019 +:04BA2A000000000018 +:04BA2B000000000017 +:04BA2C000000000016 +:04BA2D000000000015 +:04BA2E000000000014 +:04BA2F000000000013 +:04BA30000000000012 +:04BA31000000000011 +:04BA32000000000010 +:04BA3300000000000F +:04BA3400000000000E +:04BA3500000000000D +:04BA3600000000000C +:04BA3700000000000B +:04BA3800000000000A +:04BA39000000000009 +:04BA3A000000000008 +:04BA3B000000000007 +:04BA3C000000000006 +:04BA3D000000000005 +:04BA3E000000000004 +:04BA3F000000000003 +:04BA40000000000002 +:04BA41000000000001 +:04BA42000000000000 +:04BA430000000000FF +:04BA440000000000FE +:04BA450000000000FD +:04BA460000000000FC +:04BA470000000000FB +:04BA480000000000FA +:04BA490000000000F9 +:04BA4A0000000000F8 +:04BA4B0000000000F7 +:04BA4C0000000000F6 +:04BA4D0000000000F5 +:04BA4E0000000000F4 +:04BA4F0000000000F3 +:04BA500000000000F2 +:04BA510000000000F1 +:04BA520000000000F0 +:04BA530000000000EF +:04BA540000000000EE +:04BA550000000000ED +:04BA560000000000EC +:04BA570000000000EB +:04BA580000000000EA +:04BA590000000000E9 +:04BA5A0000000000E8 +:04BA5B0000000000E7 +:04BA5C0000000000E6 +:04BA5D0000000000E5 +:04BA5E0000000000E4 +:04BA5F0000000000E3 +:04BA600000000000E2 +:04BA610000000000E1 +:04BA620000000000E0 +:04BA630000000000DF +:04BA640000000000DE +:04BA650000000000DD +:04BA660000000000DC +:04BA670000000000DB +:04BA680000000000DA +:04BA690000000000D9 +:04BA6A0000000000D8 +:04BA6B0000000000D7 +:04BA6C0000000000D6 +:04BA6D0000000000D5 +:04BA6E0000000000D4 +:04BA6F0000000000D3 +:04BA700000000000D2 +:04BA710000000000D1 +:04BA720000000000D0 +:04BA730000000000CF +:04BA740000000000CE +:04BA750000000000CD +:04BA760000000000CC +:04BA770000000000CB +:04BA780000000000CA +:04BA790000000000C9 +:04BA7A0000000000C8 +:04BA7B0000000000C7 +:04BA7C0000000000C6 +:04BA7D0000000000C5 +:04BA7E0000000000C4 +:04BA7F0000000000C3 +:04BA800000000000C2 +:04BA810000000000C1 +:04BA820000000000C0 +:04BA830000000000BF +:04BA840000000000BE +:04BA850000000000BD +:04BA860000000000BC +:04BA870000000000BB +:04BA880000000000BA +:04BA890000000000B9 +:04BA8A0000000000B8 +:04BA8B0000000000B7 +:04BA8C0000000000B6 +:04BA8D0000000000B5 +:04BA8E0000000000B4 +:04BA8F0000000000B3 +:04BA900000000000B2 +:04BA910000000000B1 +:04BA920000000000B0 +:04BA930000000000AF +:04BA940000000000AE +:04BA950000000000AD +:04BA960000000000AC +:04BA970000000000AB +:04BA980000000000AA +:04BA990000000000A9 +:04BA9A0000000000A8 +:04BA9B0000000000A7 +:04BA9C0000000000A6 +:04BA9D0000000000A5 +:04BA9E0000000000A4 +:04BA9F0000000000A3 +:04BAA00000000000A2 +:04BAA10000000000A1 +:04BAA20000000000A0 +:04BAA300000000009F +:04BAA400000000009E +:04BAA500000000009D +:04BAA600000000009C +:04BAA700000000009B +:04BAA800000000009A +:04BAA9000000000099 +:04BAAA000000000098 +:04BAAB000000000097 +:04BAAC000000000096 +:04BAAD000000000095 +:04BAAE000000000094 +:04BAAF000000000093 +:04BAB0000000000092 +:04BAB1000000000091 +:04BAB2000000000090 +:04BAB300000000008F +:04BAB400000000008E +:04BAB500000000008D +:04BAB600000000008C +:04BAB700000000008B +:04BAB800000000008A +:04BAB9000000000089 +:04BABA000000000088 +:04BABB000000000087 +:04BABC000000000086 +:04BABD000000000085 +:04BABE000000000084 +:04BABF000000000083 +:04BAC0000000000082 +:04BAC1000000000081 +:04BAC2000000000080 +:04BAC300000000007F +:04BAC400000000007E +:04BAC500000000007D +:04BAC600000000007C +:04BAC700000000007B +:04BAC800000000007A +:04BAC9000000000079 +:04BACA000000000078 +:04BACB000000000077 +:04BACC000000000076 +:04BACD000000000075 +:04BACE000000000074 +:04BACF000000000073 +:04BAD0000000000072 +:04BAD1000000000071 +:04BAD2000000000070 +:04BAD300000000006F +:04BAD400000000006E +:04BAD500000000006D +:04BAD600000000006C +:04BAD700000000006B +:04BAD800000000006A +:04BAD9000000000069 +:04BADA000000000068 +:04BADB000000000067 +:04BADC000000000066 +:04BADD000000000065 +:04BADE000000000064 +:04BADF000000000063 +:04BAE0000000000062 +:04BAE1000000000061 +:04BAE2000000000060 +:04BAE300000000005F +:04BAE400000000005E +:04BAE500000000005D +:04BAE600000000005C +:04BAE700000000005B +:04BAE800000000005A +:04BAE9000000000059 +:04BAEA000000000058 +:04BAEB000000000057 +:04BAEC000000000056 +:04BAED000000000055 +:04BAEE000000000054 +:04BAEF000000000053 +:04BAF0000000000052 +:04BAF1000000000051 +:04BAF2000000000050 +:04BAF300000000004F +:04BAF400000000004E +:04BAF500000000004D +:04BAF600000000004C +:04BAF700000000004B +:04BAF800000000004A +:04BAF9000000000049 +:04BAFA000000000048 +:04BAFB000000000047 +:04BAFC000000000046 +:04BAFD000000000045 +:04BAFE000000000044 +:04BAFF000000000043 +:04BB00000000000041 +:04BB01000000000040 +:04BB0200000000003F +:04BB0300000000003E +:04BB0400000000003D +:04BB0500000000003C +:04BB0600000000003B +:04BB0700000000003A +:04BB08000000000039 +:04BB09000000000038 +:04BB0A000000000037 +:04BB0B000000000036 +:04BB0C000000000035 +:04BB0D000000000034 +:04BB0E000000000033 +:04BB0F000000000032 +:04BB10000000000031 +:04BB11000000000030 +:04BB1200000000002F +:04BB1300000000002E +:04BB1400000000002D +:04BB1500000000002C +:04BB1600000000002B +:04BB1700000000002A +:04BB18000000000029 +:04BB19000000000028 +:04BB1A000000000027 +:04BB1B000000000026 +:04BB1C000000000025 +:04BB1D000000000024 +:04BB1E000000000023 +:04BB1F000000000022 +:04BB20000000000021 +:04BB21000000000020 +:04BB2200000000001F +:04BB2300000000001E +:04BB2400000000001D +:04BB2500000000001C +:04BB2600000000001B +:04BB2700000000001A +:04BB28000000000019 +:04BB29000000000018 +:04BB2A000000000017 +:04BB2B000000000016 +:04BB2C000000000015 +:04BB2D000000000014 +:04BB2E000000000013 +:04BB2F000000000012 +:04BB30000000000011 +:04BB31000000000010 +:04BB3200000000000F +:04BB3300000000000E +:04BB3400000000000D +:04BB3500000000000C +:04BB3600000000000B +:04BB3700000000000A +:04BB38000000000009 +:04BB39000000000008 +:04BB3A000000000007 +:04BB3B000000000006 +:04BB3C000000000005 +:04BB3D000000000004 +:04BB3E000000000003 +:04BB3F000000000002 +:04BB40000000000001 +:04BB41000000000000 +:04BB420000000000FF +:04BB430000000000FE +:04BB440000000000FD +:04BB450000000000FC +:04BB460000000000FB +:04BB470000000000FA +:04BB480000000000F9 +:04BB490000000000F8 +:04BB4A0000000000F7 +:04BB4B0000000000F6 +:04BB4C0000000000F5 +:04BB4D0000000000F4 +:04BB4E0000000000F3 +:04BB4F0000000000F2 +:04BB500000000000F1 +:04BB510000000000F0 +:04BB520000000000EF +:04BB530000000000EE +:04BB540000000000ED +:04BB550000000000EC +:04BB560000000000EB +:04BB570000000000EA +:04BB580000000000E9 +:04BB590000000000E8 +:04BB5A0000000000E7 +:04BB5B0000000000E6 +:04BB5C0000000000E5 +:04BB5D0000000000E4 +:04BB5E0000000000E3 +:04BB5F0000000000E2 +:04BB600000000000E1 +:04BB610000000000E0 +:04BB620000000000DF +:04BB630000000000DE +:04BB640000000000DD +:04BB650000000000DC +:04BB660000000000DB +:04BB670000000000DA +:04BB680000000000D9 +:04BB690000000000D8 +:04BB6A0000000000D7 +:04BB6B0000000000D6 +:04BB6C0000000000D5 +:04BB6D0000000000D4 +:04BB6E0000000000D3 +:04BB6F0000000000D2 +:04BB700000000000D1 +:04BB710000000000D0 +:04BB720000000000CF +:04BB730000000000CE +:04BB740000000000CD +:04BB750000000000CC +:04BB760000000000CB +:04BB770000000000CA +:04BB780000000000C9 +:04BB790000000000C8 +:04BB7A0000000000C7 +:04BB7B0000000000C6 +:04BB7C0000000000C5 +:04BB7D0000000000C4 +:04BB7E0000000000C3 +:04BB7F0000000000C2 +:04BB800000000000C1 +:04BB810000000000C0 +:04BB820000000000BF +:04BB830000000000BE +:04BB840000000000BD +:04BB850000000000BC +:04BB860000000000BB +:04BB870000000000BA +:04BB880000000000B9 +:04BB890000000000B8 +:04BB8A0000000000B7 +:04BB8B0000000000B6 +:04BB8C0000000000B5 +:04BB8D0000000000B4 +:04BB8E0000000000B3 +:04BB8F0000000000B2 +:04BB900000000000B1 +:04BB910000000000B0 +:04BB920000000000AF +:04BB930000000000AE +:04BB940000000000AD +:04BB950000000000AC +:04BB960000000000AB +:04BB970000000000AA +:04BB980000000000A9 +:04BB990000000000A8 +:04BB9A0000000000A7 +:04BB9B0000000000A6 +:04BB9C0000000000A5 +:04BB9D0000000000A4 +:04BB9E0000000000A3 +:04BB9F0000000000A2 +:04BBA00000000000A1 +:04BBA10000000000A0 +:04BBA200000000009F +:04BBA300000000009E +:04BBA400000000009D +:04BBA500000000009C +:04BBA600000000009B +:04BBA700000000009A +:04BBA8000000000099 +:04BBA9000000000098 +:04BBAA000000000097 +:04BBAB000000000096 +:04BBAC000000000095 +:04BBAD000000000094 +:04BBAE000000000093 +:04BBAF000000000092 +:04BBB0000000000091 +:04BBB1000000000090 +:04BBB200000000008F +:04BBB300000000008E +:04BBB400000000008D +:04BBB500000000008C +:04BBB600000000008B +:04BBB700000000008A +:04BBB8000000000089 +:04BBB9000000000088 +:04BBBA000000000087 +:04BBBB000000000086 +:04BBBC000000000085 +:04BBBD000000000084 +:04BBBE000000000083 +:04BBBF000000000082 +:04BBC0000000000081 +:04BBC1000000000080 +:04BBC200000000007F +:04BBC300000000007E +:04BBC400000000007D +:04BBC500000000007C +:04BBC600000000007B +:04BBC700000000007A +:04BBC8000000000079 +:04BBC9000000000078 +:04BBCA000000000077 +:04BBCB000000000076 +:04BBCC000000000075 +:04BBCD000000000074 +:04BBCE000000000073 +:04BBCF000000000072 +:04BBD0000000000071 +:04BBD1000000000070 +:04BBD200000000006F +:04BBD300000000006E +:04BBD400000000006D +:04BBD500000000006C +:04BBD600000000006B +:04BBD700000000006A +:04BBD8000000000069 +:04BBD9000000000068 +:04BBDA000000000067 +:04BBDB000000000066 +:04BBDC000000000065 +:04BBDD000000000064 +:04BBDE000000000063 +:04BBDF000000000062 +:04BBE0000000000061 +:04BBE1000000000060 +:04BBE200000000005F +:04BBE300000000005E +:04BBE400000000005D +:04BBE500000000005C +:04BBE600000000005B +:04BBE700000000005A +:04BBE8000000000059 +:04BBE9000000000058 +:04BBEA000000000057 +:04BBEB000000000056 +:04BBEC000000000055 +:04BBED000000000054 +:04BBEE000000000053 +:04BBEF000000000052 +:04BBF0000000000051 +:04BBF1000000000050 +:04BBF200000000004F +:04BBF300000000004E +:04BBF400000000004D +:04BBF500000000004C +:04BBF600000000004B +:04BBF700000000004A +:04BBF8000000000049 +:04BBF9000000000048 +:04BBFA000000000047 +:04BBFB000000000046 +:04BBFC000000000045 +:04BBFD000000000044 +:04BBFE000000000043 +:04BBFF000000000042 +:04BC00000000000040 +:04BC0100000000003F +:04BC0200000000003E +:04BC0300000000003D +:04BC0400000000003C +:04BC0500000000003B +:04BC0600000000003A +:04BC07000000000039 +:04BC08000000000038 +:04BC09000000000037 +:04BC0A000000000036 +:04BC0B000000000035 +:04BC0C000000000034 +:04BC0D000000000033 +:04BC0E000000000032 +:04BC0F000000000031 +:04BC10000000000030 +:04BC1100000000002F +:04BC1200000000002E +:04BC1300000000002D +:04BC1400000000002C +:04BC1500000000002B +:04BC1600000000002A +:04BC17000000000029 +:04BC18000000000028 +:04BC19000000000027 +:04BC1A000000000026 +:04BC1B000000000025 +:04BC1C000000000024 +:04BC1D000000000023 +:04BC1E000000000022 +:04BC1F000000000021 +:04BC20000000000020 +:04BC2100000000001F +:04BC2200000000001E +:04BC2300000000001D +:04BC2400000000001C +:04BC2500000000001B +:04BC2600000000001A +:04BC27000000000019 +:04BC28000000000018 +:04BC29000000000017 +:04BC2A000000000016 +:04BC2B000000000015 +:04BC2C000000000014 +:04BC2D000000000013 +:04BC2E000000000012 +:04BC2F000000000011 +:04BC30000000000010 +:04BC3100000000000F +:04BC3200000000000E +:04BC3300000000000D +:04BC3400000000000C +:04BC3500000000000B +:04BC3600000000000A +:04BC37000000000009 +:04BC38000000000008 +:04BC39000000000007 +:04BC3A000000000006 +:04BC3B000000000005 +:04BC3C000000000004 +:04BC3D000000000003 +:04BC3E000000000002 +:04BC3F000000000001 +:04BC40000000000000 +:04BC410000000000FF +:04BC420000000000FE +:04BC430000000000FD +:04BC440000000000FC +:04BC450000000000FB +:04BC460000000000FA +:04BC470000000000F9 +:04BC480000000000F8 +:04BC490000000000F7 +:04BC4A0000000000F6 +:04BC4B0000000000F5 +:04BC4C0000000000F4 +:04BC4D0000000000F3 +:04BC4E0000000000F2 +:04BC4F0000000000F1 +:04BC500000000000F0 +:04BC510000000000EF +:04BC520000000000EE +:04BC530000000000ED +:04BC540000000000EC +:04BC550000000000EB +:04BC560000000000EA +:04BC570000000000E9 +:04BC580000000000E8 +:04BC590000000000E7 +:04BC5A0000000000E6 +:04BC5B0000000000E5 +:04BC5C0000000000E4 +:04BC5D0000000000E3 +:04BC5E0000000000E2 +:04BC5F0000000000E1 +:04BC600000000000E0 +:04BC610000000000DF +:04BC620000000000DE +:04BC630000000000DD +:04BC640000000000DC +:04BC650000000000DB +:04BC660000000000DA +:04BC670000000000D9 +:04BC680000000000D8 +:04BC690000000000D7 +:04BC6A0000000000D6 +:04BC6B0000000000D5 +:04BC6C0000000000D4 +:04BC6D0000000000D3 +:04BC6E0000000000D2 +:04BC6F0000000000D1 +:04BC700000000000D0 +:04BC710000000000CF +:04BC720000000000CE +:04BC730000000000CD +:04BC740000000000CC +:04BC750000000000CB +:04BC760000000000CA +:04BC770000000000C9 +:04BC780000000000C8 +:04BC790000000000C7 +:04BC7A0000000000C6 +:04BC7B0000000000C5 +:04BC7C0000000000C4 +:04BC7D0000000000C3 +:04BC7E0000000000C2 +:04BC7F0000000000C1 +:04BC800000000000C0 +:04BC810000000000BF +:04BC820000000000BE +:04BC830000000000BD +:04BC840000000000BC +:04BC850000000000BB +:04BC860000000000BA +:04BC870000000000B9 +:04BC880000000000B8 +:04BC890000000000B7 +:04BC8A0000000000B6 +:04BC8B0000000000B5 +:04BC8C0000000000B4 +:04BC8D0000000000B3 +:04BC8E0000000000B2 +:04BC8F0000000000B1 +:04BC900000000000B0 +:04BC910000000000AF +:04BC920000000000AE +:04BC930000000000AD +:04BC940000000000AC +:04BC950000000000AB +:04BC960000000000AA +:04BC970000000000A9 +:04BC980000000000A8 +:04BC990000000000A7 +:04BC9A0000000000A6 +:04BC9B0000000000A5 +:04BC9C0000000000A4 +:04BC9D0000000000A3 +:04BC9E0000000000A2 +:04BC9F0000000000A1 +:04BCA00000000000A0 +:04BCA100000000009F +:04BCA200000000009E +:04BCA300000000009D +:04BCA400000000009C +:04BCA500000000009B +:04BCA600000000009A +:04BCA7000000000099 +:04BCA8000000000098 +:04BCA9000000000097 +:04BCAA000000000096 +:04BCAB000000000095 +:04BCAC000000000094 +:04BCAD000000000093 +:04BCAE000000000092 +:04BCAF000000000091 +:04BCB0000000000090 +:04BCB100000000008F +:04BCB200000000008E +:04BCB300000000008D +:04BCB400000000008C +:04BCB500000000008B +:04BCB600000000008A +:04BCB7000000000089 +:04BCB8000000000088 +:04BCB9000000000087 +:04BCBA000000000086 +:04BCBB000000000085 +:04BCBC000000000084 +:04BCBD000000000083 +:04BCBE000000000082 +:04BCBF000000000081 +:04BCC0000000000080 +:04BCC100000000007F +:04BCC200000000007E +:04BCC300000000007D +:04BCC400000000007C +:04BCC500000000007B +:04BCC600000000007A +:04BCC7000000000079 +:04BCC8000000000078 +:04BCC9000000000077 +:04BCCA000000000076 +:04BCCB000000000075 +:04BCCC000000000074 +:04BCCD000000000073 +:04BCCE000000000072 +:04BCCF000000000071 +:04BCD0000000000070 +:04BCD100000000006F +:04BCD200000000006E +:04BCD300000000006D +:04BCD400000000006C +:04BCD500000000006B +:04BCD600000000006A +:04BCD7000000000069 +:04BCD8000000000068 +:04BCD9000000000067 +:04BCDA000000000066 +:04BCDB000000000065 +:04BCDC000000000064 +:04BCDD000000000063 +:04BCDE000000000062 +:04BCDF000000000061 +:04BCE0000000000060 +:04BCE100000000005F +:04BCE200000000005E +:04BCE300000000005D +:04BCE400000000005C +:04BCE500000000005B +:04BCE600000000005A +:04BCE7000000000059 +:04BCE8000000000058 +:04BCE9000000000057 +:04BCEA000000000056 +:04BCEB000000000055 +:04BCEC000000000054 +:04BCED000000000053 +:04BCEE000000000052 +:04BCEF000000000051 +:04BCF0000000000050 +:04BCF100000000004F +:04BCF200000000004E +:04BCF300000000004D +:04BCF400000000004C +:04BCF500000000004B +:04BCF600000000004A +:04BCF7000000000049 +:04BCF8000000000048 +:04BCF9000000000047 +:04BCFA000000000046 +:04BCFB000000000045 +:04BCFC000000000044 +:04BCFD000000000043 +:04BCFE000000000042 +:04BCFF000000000041 +:04BD0000000000003F +:04BD0100000000003E +:04BD0200000000003D +:04BD0300000000003C +:04BD0400000000003B +:04BD0500000000003A +:04BD06000000000039 +:04BD07000000000038 +:04BD08000000000037 +:04BD09000000000036 +:04BD0A000000000035 +:04BD0B000000000034 +:04BD0C000000000033 +:04BD0D000000000032 +:04BD0E000000000031 +:04BD0F000000000030 +:04BD1000000000002F +:04BD1100000000002E +:04BD1200000000002D +:04BD1300000000002C +:04BD1400000000002B +:04BD1500000000002A +:04BD16000000000029 +:04BD17000000000028 +:04BD18000000000027 +:04BD19000000000026 +:04BD1A000000000025 +:04BD1B000000000024 +:04BD1C000000000023 +:04BD1D000000000022 +:04BD1E000000000021 +:04BD1F000000000020 +:04BD2000000000001F +:04BD2100000000001E +:04BD2200000000001D +:04BD2300000000001C +:04BD2400000000001B +:04BD2500000000001A +:04BD26000000000019 +:04BD27000000000018 +:04BD28000000000017 +:04BD29000000000016 +:04BD2A000000000015 +:04BD2B000000000014 +:04BD2C000000000013 +:04BD2D000000000012 +:04BD2E000000000011 +:04BD2F000000000010 +:04BD3000000000000F +:04BD3100000000000E +:04BD3200000000000D +:04BD3300000000000C +:04BD3400000000000B +:04BD3500000000000A +:04BD36000000000009 +:04BD37000000000008 +:04BD38000000000007 +:04BD39000000000006 +:04BD3A000000000005 +:04BD3B000000000004 +:04BD3C000000000003 +:04BD3D000000000002 +:04BD3E000000000001 +:04BD3F000000000000 +:04BD400000000000FF +:04BD410000000000FE +:04BD420000000000FD +:04BD430000000000FC +:04BD440000000000FB +:04BD450000000000FA +:04BD460000000000F9 +:04BD470000000000F8 +:04BD480000000000F7 +:04BD490000000000F6 +:04BD4A0000000000F5 +:04BD4B0000000000F4 +:04BD4C0000000000F3 +:04BD4D0000000000F2 +:04BD4E0000000000F1 +:04BD4F0000000000F0 +:04BD500000000000EF +:04BD510000000000EE +:04BD520000000000ED +:04BD530000000000EC +:04BD540000000000EB +:04BD550000000000EA +:04BD560000000000E9 +:04BD570000000000E8 +:04BD580000000000E7 +:04BD590000000000E6 +:04BD5A0000000000E5 +:04BD5B0000000000E4 +:04BD5C0000000000E3 +:04BD5D0000000000E2 +:04BD5E0000000000E1 +:04BD5F0000000000E0 +:04BD600000000000DF +:04BD610000000000DE +:04BD620000000000DD +:04BD630000000000DC +:04BD640000000000DB +:04BD650000000000DA +:04BD660000000000D9 +:04BD670000000000D8 +:04BD680000000000D7 +:04BD690000000000D6 +:04BD6A0000000000D5 +:04BD6B0000000000D4 +:04BD6C0000000000D3 +:04BD6D0000000000D2 +:04BD6E0000000000D1 +:04BD6F0000000000D0 +:04BD700000000000CF +:04BD710000000000CE +:04BD720000000000CD +:04BD730000000000CC +:04BD740000000000CB +:04BD750000000000CA +:04BD760000000000C9 +:04BD770000000000C8 +:04BD780000000000C7 +:04BD790000000000C6 +:04BD7A0000000000C5 +:04BD7B0000000000C4 +:04BD7C0000000000C3 +:04BD7D0000000000C2 +:04BD7E0000000000C1 +:04BD7F0000000000C0 +:04BD800000000000BF +:04BD810000000000BE +:04BD820000000000BD +:04BD830000000000BC +:04BD840000000000BB +:04BD850000000000BA +:04BD860000000000B9 +:04BD870000000000B8 +:04BD880000000000B7 +:04BD890000000000B6 +:04BD8A0000000000B5 +:04BD8B0000000000B4 +:04BD8C0000000000B3 +:04BD8D0000000000B2 +:04BD8E0000000000B1 +:04BD8F0000000000B0 +:04BD900000000000AF +:04BD910000000000AE +:04BD920000000000AD +:04BD930000000000AC +:04BD940000000000AB +:04BD950000000000AA +:04BD960000000000A9 +:04BD970000000000A8 +:04BD980000000000A7 +:04BD990000000000A6 +:04BD9A0000000000A5 +:04BD9B0000000000A4 +:04BD9C0000000000A3 +:04BD9D0000000000A2 +:04BD9E0000000000A1 +:04BD9F0000000000A0 +:04BDA000000000009F +:04BDA100000000009E +:04BDA200000000009D +:04BDA300000000009C +:04BDA400000000009B +:04BDA500000000009A +:04BDA6000000000099 +:04BDA7000000000098 +:04BDA8000000000097 +:04BDA9000000000096 +:04BDAA000000000095 +:04BDAB000000000094 +:04BDAC000000000093 +:04BDAD000000000092 +:04BDAE000000000091 +:04BDAF000000000090 +:04BDB000000000008F +:04BDB100000000008E +:04BDB200000000008D +:04BDB300000000008C +:04BDB400000000008B +:04BDB500000000008A +:04BDB6000000000089 +:04BDB7000000000088 +:04BDB8000000000087 +:04BDB9000000000086 +:04BDBA000000000085 +:04BDBB000000000084 +:04BDBC000000000083 +:04BDBD000000000082 +:04BDBE000000000081 +:04BDBF000000000080 +:04BDC000000000007F +:04BDC100000000007E +:04BDC200000000007D +:04BDC300000000007C +:04BDC400000000007B +:04BDC500000000007A +:04BDC6000000000079 +:04BDC7000000000078 +:04BDC8000000000077 +:04BDC9000000000076 +:04BDCA000000000075 +:04BDCB000000000074 +:04BDCC000000000073 +:04BDCD000000000072 +:04BDCE000000000071 +:04BDCF000000000070 +:04BDD000000000006F +:04BDD100000000006E +:04BDD200000000006D +:04BDD300000000006C +:04BDD400000000006B +:04BDD500000000006A +:04BDD6000000000069 +:04BDD7000000000068 +:04BDD8000000000067 +:04BDD9000000000066 +:04BDDA000000000065 +:04BDDB000000000064 +:04BDDC000000000063 +:04BDDD000000000062 +:04BDDE000000000061 +:04BDDF000000000060 +:04BDE000000000005F +:04BDE100000000005E +:04BDE200000000005D +:04BDE300000000005C +:04BDE400000000005B +:04BDE500000000005A +:04BDE6000000000059 +:04BDE7000000000058 +:04BDE8000000000057 +:04BDE9000000000056 +:04BDEA000000000055 +:04BDEB000000000054 +:04BDEC000000000053 +:04BDED000000000052 +:04BDEE000000000051 +:04BDEF000000000050 +:04BDF000000000004F +:04BDF100000000004E +:04BDF200000000004D +:04BDF300000000004C +:04BDF400000000004B +:04BDF500000000004A +:04BDF6000000000049 +:04BDF7000000000048 +:04BDF8000000000047 +:04BDF9000000000046 +:04BDFA000000000045 +:04BDFB000000000044 +:04BDFC000000000043 +:04BDFD000000000042 +:04BDFE000000000041 +:04BDFF000000000040 +:04BE0000000000003E +:04BE0100000000003D +:04BE0200000000003C +:04BE0300000000003B +:04BE0400000000003A +:04BE05000000000039 +:04BE06000000000038 +:04BE07000000000037 +:04BE08000000000036 +:04BE09000000000035 +:04BE0A000000000034 +:04BE0B000000000033 +:04BE0C000000000032 +:04BE0D000000000031 +:04BE0E000000000030 +:04BE0F00000000002F +:04BE1000000000002E +:04BE1100000000002D +:04BE1200000000002C +:04BE1300000000002B +:04BE1400000000002A +:04BE15000000000029 +:04BE16000000000028 +:04BE17000000000027 +:04BE18000000000026 +:04BE19000000000025 +:04BE1A000000000024 +:04BE1B000000000023 +:04BE1C000000000022 +:04BE1D000000000021 +:04BE1E000000000020 +:04BE1F00000000001F +:04BE2000000000001E +:04BE2100000000001D +:04BE2200000000001C +:04BE2300000000001B +:04BE2400000000001A +:04BE25000000000019 +:04BE26000000000018 +:04BE27000000000017 +:04BE28000000000016 +:04BE29000000000015 +:04BE2A000000000014 +:04BE2B000000000013 +:04BE2C000000000012 +:04BE2D000000000011 +:04BE2E000000000010 +:04BE2F00000000000F +:04BE3000000000000E +:04BE3100000000000D +:04BE3200000000000C +:04BE3300000000000B +:04BE3400000000000A +:04BE35000000000009 +:04BE36000000000008 +:04BE37000000000007 +:04BE38000000000006 +:04BE39000000000005 +:04BE3A000000000004 +:04BE3B000000000003 +:04BE3C000000000002 +:04BE3D000000000001 +:04BE3E000000000000 +:04BE3F0000000000FF +:04BE400000000000FE +:04BE410000000000FD +:04BE420000000000FC +:04BE430000000000FB +:04BE440000000000FA +:04BE450000000000F9 +:04BE460000000000F8 +:04BE470000000000F7 +:04BE480000000000F6 +:04BE490000000000F5 +:04BE4A0000000000F4 +:04BE4B0000000000F3 +:04BE4C0000000000F2 +:04BE4D0000000000F1 +:04BE4E0000000000F0 +:04BE4F0000000000EF +:04BE500000000000EE +:04BE510000000000ED +:04BE520000000000EC +:04BE530000000000EB +:04BE540000000000EA +:04BE550000000000E9 +:04BE560000000000E8 +:04BE570000000000E7 +:04BE580000000000E6 +:04BE590000000000E5 +:04BE5A0000000000E4 +:04BE5B0000000000E3 +:04BE5C0000000000E2 +:04BE5D0000000000E1 +:04BE5E0000000000E0 +:04BE5F0000000000DF +:04BE600000000000DE +:04BE610000000000DD +:04BE620000000000DC +:04BE630000000000DB +:04BE640000000000DA +:04BE650000000000D9 +:04BE660000000000D8 +:04BE670000000000D7 +:04BE680000000000D6 +:04BE690000000000D5 +:04BE6A0000000000D4 +:04BE6B0000000000D3 +:04BE6C0000000000D2 +:04BE6D0000000000D1 +:04BE6E0000000000D0 +:04BE6F0000000000CF +:04BE700000000000CE +:04BE710000000000CD +:04BE720000000000CC +:04BE730000000000CB +:04BE740000000000CA +:04BE750000000000C9 +:04BE760000000000C8 +:04BE770000000000C7 +:04BE780000000000C6 +:04BE790000000000C5 +:04BE7A0000000000C4 +:04BE7B0000000000C3 +:04BE7C0000000000C2 +:04BE7D0000000000C1 +:04BE7E0000000000C0 +:04BE7F0000000000BF +:04BE800000000000BE +:04BE810000000000BD +:04BE820000000000BC +:04BE830000000000BB +:04BE840000000000BA +:04BE850000000000B9 +:04BE860000000000B8 +:04BE870000000000B7 +:04BE880000000000B6 +:04BE890000000000B5 +:04BE8A0000000000B4 +:04BE8B0000000000B3 +:04BE8C0000000000B2 +:04BE8D0000000000B1 +:04BE8E0000000000B0 +:04BE8F0000000000AF +:04BE900000000000AE +:04BE910000000000AD +:04BE920000000000AC +:04BE930000000000AB +:04BE940000000000AA +:04BE950000000000A9 +:04BE960000000000A8 +:04BE970000000000A7 +:04BE980000000000A6 +:04BE990000000000A5 +:04BE9A0000000000A4 +:04BE9B0000000000A3 +:04BE9C0000000000A2 +:04BE9D0000000000A1 +:04BE9E0000000000A0 +:04BE9F00000000009F +:04BEA000000000009E +:04BEA100000000009D +:04BEA200000000009C +:04BEA300000000009B +:04BEA400000000009A +:04BEA5000000000099 +:04BEA6000000000098 +:04BEA7000000000097 +:04BEA8000000000096 +:04BEA9000000000095 +:04BEAA000000000094 +:04BEAB000000000093 +:04BEAC000000000092 +:04BEAD000000000091 +:04BEAE000000000090 +:04BEAF00000000008F +:04BEB000000000008E +:04BEB100000000008D +:04BEB200000000008C +:04BEB300000000008B +:04BEB400000000008A +:04BEB5000000000089 +:04BEB6000000000088 +:04BEB7000000000087 +:04BEB8000000000086 +:04BEB9000000000085 +:04BEBA000000000084 +:04BEBB000000000083 +:04BEBC000000000082 +:04BEBD000000000081 +:04BEBE000000000080 +:04BEBF00000000007F +:04BEC000000000007E +:04BEC100000000007D +:04BEC200000000007C +:04BEC300000000007B +:04BEC400000000007A +:04BEC5000000000079 +:04BEC6000000000078 +:04BEC7000000000077 +:04BEC8000000000076 +:04BEC9000000000075 +:04BECA000000000074 +:04BECB000000000073 +:04BECC000000000072 +:04BECD000000000071 +:04BECE000000000070 +:04BECF00000000006F +:04BED000000000006E +:04BED100000000006D +:04BED200000000006C +:04BED300000000006B +:04BED400000000006A +:04BED5000000000069 +:04BED6000000000068 +:04BED7000000000067 +:04BED8000000000066 +:04BED9000000000065 +:04BEDA000000000064 +:04BEDB000000000063 +:04BEDC000000000062 +:04BEDD000000000061 +:04BEDE000000000060 +:04BEDF00000000005F +:04BEE000000000005E +:04BEE100000000005D +:04BEE200000000005C +:04BEE300000000005B +:04BEE400000000005A +:04BEE5000000000059 +:04BEE6000000000058 +:04BEE7000000000057 +:04BEE8000000000056 +:04BEE9000000000055 +:04BEEA000000000054 +:04BEEB000000000053 +:04BEEC000000000052 +:04BEED000000000051 +:04BEEE000000000050 +:04BEEF00000000004F +:04BEF000000000004E +:04BEF100000000004D +:04BEF200000000004C +:04BEF300000000004B +:04BEF400000000004A +:04BEF5000000000049 +:04BEF6000000000048 +:04BEF7000000000047 +:04BEF8000000000046 +:04BEF9000000000045 +:04BEFA000000000044 +:04BEFB000000000043 +:04BEFC000000000042 +:04BEFD000000000041 +:04BEFE000000000040 +:04BEFF00000000003F +:04BF0000000000003D +:04BF0100000000003C +:04BF0200000000003B +:04BF0300000000003A +:04BF04000000000039 +:04BF05000000000038 +:04BF06000000000037 +:04BF07000000000036 +:04BF08000000000035 +:04BF09000000000034 +:04BF0A000000000033 +:04BF0B000000000032 +:04BF0C000000000031 +:04BF0D000000000030 +:04BF0E00000000002F +:04BF0F00000000002E +:04BF1000000000002D +:04BF1100000000002C +:04BF1200000000002B +:04BF1300000000002A +:04BF14000000000029 +:04BF15000000000028 +:04BF16000000000027 +:04BF17000000000026 +:04BF18000000000025 +:04BF19000000000024 +:04BF1A000000000023 +:04BF1B000000000022 +:04BF1C000000000021 +:04BF1D000000000020 +:04BF1E00000000001F +:04BF1F00000000001E +:04BF2000000000001D +:04BF2100000000001C +:04BF2200000000001B +:04BF2300000000001A +:04BF24000000000019 +:04BF25000000000018 +:04BF26000000000017 +:04BF27000000000016 +:04BF28000000000015 +:04BF29000000000014 +:04BF2A000000000013 +:04BF2B000000000012 +:04BF2C000000000011 +:04BF2D000000000010 +:04BF2E00000000000F +:04BF2F00000000000E +:04BF3000000000000D +:04BF3100000000000C +:04BF3200000000000B +:04BF3300000000000A +:04BF34000000000009 +:04BF35000000000008 +:04BF36000000000007 +:04BF37000000000006 +:04BF38000000000005 +:04BF39000000000004 +:04BF3A000000000003 +:04BF3B000000000002 +:04BF3C000000000001 +:04BF3D000000000000 +:04BF3E0000000000FF +:04BF3F0000000000FE +:04BF400000000000FD +:04BF410000000000FC +:04BF420000000000FB +:04BF430000000000FA +:04BF440000000000F9 +:04BF450000000000F8 +:04BF460000000000F7 +:04BF470000000000F6 +:04BF480000000000F5 +:04BF490000000000F4 +:04BF4A0000000000F3 +:04BF4B0000000000F2 +:04BF4C0000000000F1 +:04BF4D0000000000F0 +:04BF4E0000000000EF +:04BF4F0000000000EE +:04BF500000000000ED +:04BF510000000000EC +:04BF520000000000EB +:04BF530000000000EA +:04BF540000000000E9 +:04BF550000000000E8 +:04BF560000000000E7 +:04BF570000000000E6 +:04BF580000000000E5 +:04BF590000000000E4 +:04BF5A0000000000E3 +:04BF5B0000000000E2 +:04BF5C0000000000E1 +:04BF5D0000000000E0 +:04BF5E0000000000DF +:04BF5F0000000000DE +:04BF600000000000DD +:04BF610000000000DC +:04BF620000000000DB +:04BF630000000000DA +:04BF640000000000D9 +:04BF650000000000D8 +:04BF660000000000D7 +:04BF670000000000D6 +:04BF680000000000D5 +:04BF690000000000D4 +:04BF6A0000000000D3 +:04BF6B0000000000D2 +:04BF6C0000000000D1 +:04BF6D0000000000D0 +:04BF6E0000000000CF +:04BF6F0000000000CE +:04BF700000000000CD +:04BF710000000000CC +:04BF720000000000CB +:04BF730000000000CA +:04BF740000000000C9 +:04BF750000000000C8 +:04BF760000000000C7 +:04BF770000000000C6 +:04BF780000000000C5 +:04BF790000000000C4 +:04BF7A0000000000C3 +:04BF7B0000000000C2 +:04BF7C0000000000C1 +:04BF7D0000000000C0 +:04BF7E0000000000BF +:04BF7F0000000000BE +:04BF800000000000BD +:04BF810000000000BC +:04BF820000000000BB +:04BF830000000000BA +:04BF840000000000B9 +:04BF850000000000B8 +:04BF860000000000B7 +:04BF870000000000B6 +:04BF880000000000B5 +:04BF890000000000B4 +:04BF8A0000000000B3 +:04BF8B0000000000B2 +:04BF8C0000000000B1 +:04BF8D0000000000B0 +:04BF8E0000000000AF +:04BF8F0000000000AE +:04BF900000000000AD +:04BF910000000000AC +:04BF920000000000AB +:04BF930000000000AA +:04BF940000000000A9 +:04BF950000000000A8 +:04BF960000000000A7 +:04BF970000000000A6 +:04BF980000000000A5 +:04BF990000000000A4 +:04BF9A0000000000A3 +:04BF9B0000000000A2 +:04BF9C0000000000A1 +:04BF9D0000000000A0 +:04BF9E00000000009F +:04BF9F00000000009E +:04BFA000000000009D +:04BFA100000000009C +:04BFA200000000009B +:04BFA300000000009A +:04BFA4000000000099 +:04BFA5000000000098 +:04BFA6000000000097 +:04BFA7000000000096 +:04BFA8000000000095 +:04BFA9000000000094 +:04BFAA000000000093 +:04BFAB000000000092 +:04BFAC000000000091 +:04BFAD000000000090 +:04BFAE00000000008F +:04BFAF00000000008E +:04BFB000000000008D +:04BFB100000000008C +:04BFB200000000008B +:04BFB300000000008A +:04BFB4000000000089 +:04BFB5000000000088 +:04BFB6000000000087 +:04BFB7000000000086 +:04BFB8000000000085 +:04BFB9000000000084 +:04BFBA000000000083 +:04BFBB000000000082 +:04BFBC000000000081 +:04BFBD000000000080 +:04BFBE00000000007F +:04BFBF00000000007E +:04BFC000000000007D +:04BFC100000000007C +:04BFC200000000007B +:04BFC300000000007A +:04BFC4000000000079 +:04BFC5000000000078 +:04BFC6000000000077 +:04BFC7000000000076 +:04BFC8000000000075 +:04BFC9000000000074 +:04BFCA000000000073 +:04BFCB000000000072 +:04BFCC000000000071 +:04BFCD000000000070 +:04BFCE00000000006F +:04BFCF00000000006E +:04BFD000000000006D +:04BFD100000000006C +:04BFD200000000006B +:04BFD300000000006A +:04BFD4000000000069 +:04BFD5000000000068 +:04BFD6000000000067 +:04BFD7000000000066 +:04BFD8000000000065 +:04BFD9000000000064 +:04BFDA000000000063 +:04BFDB000000000062 +:04BFDC000000000061 +:04BFDD000000000060 +:04BFDE00000000005F +:04BFDF00000000005E +:04BFE000000000005D +:04BFE100000000005C +:04BFE200000000005B +:04BFE300000000005A +:04BFE4000000000059 +:04BFE5000000000058 +:04BFE6000000000057 +:04BFE7000000000056 +:04BFE8000000000055 +:04BFE9000000000054 +:04BFEA000000000053 +:04BFEB000000000052 +:04BFEC000000000051 +:04BFED000000000050 +:04BFEE00000000004F +:04BFEF00000000004E +:04BFF000000000004D +:04BFF100000000004C +:04BFF200000000004B +:04BFF300000000004A +:04BFF4000000000049 +:04BFF5000000000048 +:04BFF6000000000047 +:04BFF7000000000046 +:04BFF8000000000045 +:04BFF9000000000044 +:04BFFA000000000043 +:04BFFB000000000042 +:04BFFC000000000041 +:04BFFD000000000040 +:04BFFE00000000003F +:04BFFF00000000003E +:04C00000000000003C +:04C00100000000003B +:04C00200000000003A +:04C003000000000039 +:04C004000000000038 +:04C005000000000037 +:04C006000000000036 +:04C007000000000035 +:04C008000000000034 +:04C009000000000033 +:04C00A000000000032 +:04C00B000000000031 +:04C00C000000000030 +:04C00D00000000002F +:04C00E00000000002E +:04C00F00000000002D +:04C01000000000002C +:04C01100000000002B +:04C01200000000002A +:04C013000000000029 +:04C014000000000028 +:04C015000000000027 +:04C016000000000026 +:04C017000000000025 +:04C018000000000024 +:04C019000000000023 +:04C01A000000000022 +:04C01B000000000021 +:04C01C000000000020 +:04C01D00000000001F +:04C01E00000000001E +:04C01F00000000001D +:04C02000000000001C +:04C02100000000001B +:04C02200000000001A +:04C023000000000019 +:04C024000000000018 +:04C025000000000017 +:04C026000000000016 +:04C027000000000015 +:04C028000000000014 +:04C029000000000013 +:04C02A000000000012 +:04C02B000000000011 +:04C02C000000000010 +:04C02D00000000000F +:04C02E00000000000E +:04C02F00000000000D +:04C03000000000000C +:04C03100000000000B +:04C03200000000000A +:04C033000000000009 +:04C034000000000008 +:04C035000000000007 +:04C036000000000006 +:04C037000000000005 +:04C038000000000004 +:04C039000000000003 +:04C03A000000000002 +:04C03B000000000001 +:04C03C000000000000 +:04C03D0000000000FF +:04C03E0000000000FE +:04C03F0000000000FD +:04C0400000000000FC +:04C0410000000000FB +:04C0420000000000FA +:04C0430000000000F9 +:04C0440000000000F8 +:04C0450000000000F7 +:04C0460000000000F6 +:04C0470000000000F5 +:04C0480000000000F4 +:04C0490000000000F3 +:04C04A0000000000F2 +:04C04B0000000000F1 +:04C04C0000000000F0 +:04C04D0000000000EF +:04C04E0000000000EE +:04C04F0000000000ED +:04C0500000000000EC +:04C0510000000000EB +:04C0520000000000EA +:04C0530000000000E9 +:04C0540000000000E8 +:04C0550000000000E7 +:04C0560000000000E6 +:04C0570000000000E5 +:04C0580000000000E4 +:04C0590000000000E3 +:04C05A0000000000E2 +:04C05B0000000000E1 +:04C05C0000000000E0 +:04C05D0000000000DF +:04C05E0000000000DE +:04C05F0000000000DD +:04C0600000000000DC +:04C0610000000000DB +:04C0620000000000DA +:04C0630000000000D9 +:04C0640000000000D8 +:04C0650000000000D7 +:04C0660000000000D6 +:04C0670000000000D5 +:04C0680000000000D4 +:04C0690000000000D3 +:04C06A0000000000D2 +:04C06B0000000000D1 +:04C06C0000000000D0 +:04C06D0000000000CF +:04C06E0000000000CE +:04C06F0000000000CD +:04C0700000000000CC +:04C0710000000000CB +:04C0720000000000CA +:04C0730000000000C9 +:04C0740000000000C8 +:04C0750000000000C7 +:04C0760000000000C6 +:04C0770000000000C5 +:04C0780000000000C4 +:04C0790000000000C3 +:04C07A0000000000C2 +:04C07B0000000000C1 +:04C07C0000000000C0 +:04C07D0000000000BF +:04C07E0000000000BE +:04C07F0000000000BD +:04C0800000000000BC +:04C0810000000000BB +:04C0820000000000BA +:04C0830000000000B9 +:04C0840000000000B8 +:04C0850000000000B7 +:04C0860000000000B6 +:04C0870000000000B5 +:04C0880000000000B4 +:04C0890000000000B3 +:04C08A0000000000B2 +:04C08B0000000000B1 +:04C08C0000000000B0 +:04C08D0000000000AF +:04C08E0000000000AE +:04C08F0000000000AD +:04C0900000000000AC +:04C0910000000000AB +:04C0920000000000AA +:04C0930000000000A9 +:04C0940000000000A8 +:04C0950000000000A7 +:04C0960000000000A6 +:04C0970000000000A5 +:04C0980000000000A4 +:04C0990000000000A3 +:04C09A0000000000A2 +:04C09B0000000000A1 +:04C09C0000000000A0 +:04C09D00000000009F +:04C09E00000000009E +:04C09F00000000009D +:04C0A000000000009C +:04C0A100000000009B +:04C0A200000000009A +:04C0A3000000000099 +:04C0A4000000000098 +:04C0A5000000000097 +:04C0A6000000000096 +:04C0A7000000000095 +:04C0A8000000000094 +:04C0A9000000000093 +:04C0AA000000000092 +:04C0AB000000000091 +:04C0AC000000000090 +:04C0AD00000000008F +:04C0AE00000000008E +:04C0AF00000000008D +:04C0B000000000008C +:04C0B100000000008B +:04C0B200000000008A +:04C0B3000000000089 +:04C0B4000000000088 +:04C0B5000000000087 +:04C0B6000000000086 +:04C0B7000000000085 +:04C0B8000000000084 +:04C0B9000000000083 +:04C0BA000000000082 +:04C0BB000000000081 +:04C0BC000000000080 +:04C0BD00000000007F +:04C0BE00000000007E +:04C0BF00000000007D +:04C0C000000000007C +:04C0C100000000007B +:04C0C200000000007A +:04C0C3000000000079 +:04C0C4000000000078 +:04C0C5000000000077 +:04C0C6000000000076 +:04C0C7000000000075 +:04C0C8000000000074 +:04C0C9000000000073 +:04C0CA000000000072 +:04C0CB000000000071 +:04C0CC000000000070 +:04C0CD00000000006F +:04C0CE00000000006E +:04C0CF00000000006D +:04C0D000000000006C +:04C0D100000000006B +:04C0D200000000006A +:04C0D3000000000069 +:04C0D4000000000068 +:04C0D5000000000067 +:04C0D6000000000066 +:04C0D7000000000065 +:04C0D8000000000064 +:04C0D9000000000063 +:04C0DA000000000062 +:04C0DB000000000061 +:04C0DC000000000060 +:04C0DD00000000005F +:04C0DE00000000005E +:04C0DF00000000005D +:04C0E000000000005C +:04C0E100000000005B +:04C0E200000000005A +:04C0E3000000000059 +:04C0E4000000000058 +:04C0E5000000000057 +:04C0E6000000000056 +:04C0E7000000000055 +:04C0E8000000000054 +:04C0E9000000000053 +:04C0EA000000000052 +:04C0EB000000000051 +:04C0EC000000000050 +:04C0ED00000000004F +:04C0EE00000000004E +:04C0EF00000000004D +:04C0F000000000004C +:04C0F100000000004B +:04C0F200000000004A +:04C0F3000000000049 +:04C0F4000000000048 +:04C0F5000000000047 +:04C0F6000000000046 +:04C0F7000000000045 +:04C0F8000000000044 +:04C0F9000000000043 +:04C0FA000000000042 +:04C0FB000000000041 +:04C0FC000000000040 +:04C0FD00000000003F +:04C0FE00000000003E +:04C0FF00000000003D +:04C10000000000003B +:04C10100000000003A +:04C102000000000039 +:04C103000000000038 +:04C104000000000037 +:04C105000000000036 +:04C106000000000035 +:04C107000000000034 +:04C108000000000033 +:04C109000000000032 +:04C10A000000000031 +:04C10B000000000030 +:04C10C00000000002F +:04C10D00000000002E +:04C10E00000000002D +:04C10F00000000002C +:04C11000000000002B +:04C11100000000002A +:04C112000000000029 +:04C113000000000028 +:04C114000000000027 +:04C115000000000026 +:04C116000000000025 +:04C117000000000024 +:04C118000000000023 +:04C119000000000022 +:04C11A000000000021 +:04C11B000000000020 +:04C11C00000000001F +:04C11D00000000001E +:04C11E00000000001D +:04C11F00000000001C +:04C12000000000001B +:04C12100000000001A +:04C122000000000019 +:04C123000000000018 +:04C124000000000017 +:04C125000000000016 +:04C126000000000015 +:04C127000000000014 +:04C128000000000013 +:04C129000000000012 +:04C12A000000000011 +:04C12B000000000010 +:04C12C00000000000F +:04C12D00000000000E +:04C12E00000000000D +:04C12F00000000000C +:04C13000000000000B +:04C13100000000000A +:04C132000000000009 +:04C133000000000008 +:04C134000000000007 +:04C135000000000006 +:04C136000000000005 +:04C137000000000004 +:04C138000000000003 +:04C139000000000002 +:04C13A000000000001 +:04C13B000000000000 +:04C13C0000000000FF +:04C13D0000000000FE +:04C13E0000000000FD +:04C13F0000000000FC +:04C1400000000000FB +:04C1410000000000FA +:04C1420000000000F9 +:04C1430000000000F8 +:04C1440000000000F7 +:04C1450000000000F6 +:04C1460000000000F5 +:04C1470000000000F4 +:04C1480000000000F3 +:04C1490000000000F2 +:04C14A0000000000F1 +:04C14B0000000000F0 +:04C14C0000000000EF +:04C14D0000000000EE +:04C14E0000000000ED +:04C14F0000000000EC +:04C1500000000000EB +:04C1510000000000EA +:04C1520000000000E9 +:04C1530000000000E8 +:04C1540000000000E7 +:04C1550000000000E6 +:04C1560000000000E5 +:04C1570000000000E4 +:04C1580000000000E3 +:04C1590000000000E2 +:04C15A0000000000E1 +:04C15B0000000000E0 +:04C15C0000000000DF +:04C15D0000000000DE +:04C15E0000000000DD +:04C15F0000000000DC +:04C1600000000000DB +:04C1610000000000DA +:04C1620000000000D9 +:04C1630000000000D8 +:04C1640000000000D7 +:04C1650000000000D6 +:04C1660000000000D5 +:04C1670000000000D4 +:04C1680000000000D3 +:04C1690000000000D2 +:04C16A0000000000D1 +:04C16B0000000000D0 +:04C16C0000000000CF +:04C16D0000000000CE +:04C16E0000000000CD +:04C16F0000000000CC +:04C1700000000000CB +:04C1710000000000CA +:04C1720000000000C9 +:04C1730000000000C8 +:04C1740000000000C7 +:04C1750000000000C6 +:04C1760000000000C5 +:04C1770000000000C4 +:04C1780000000000C3 +:04C1790000000000C2 +:04C17A0000000000C1 +:04C17B0000000000C0 +:04C17C0000000000BF +:04C17D0000000000BE +:04C17E0000000000BD +:04C17F0000000000BC +:04C1800000000000BB +:04C1810000000000BA +:04C1820000000000B9 +:04C1830000000000B8 +:04C1840000000000B7 +:04C1850000000000B6 +:04C1860000000000B5 +:04C1870000000000B4 +:04C1880000000000B3 +:04C1890000000000B2 +:04C18A0000000000B1 +:04C18B0000000000B0 +:04C18C0000000000AF +:04C18D0000000000AE +:04C18E0000000000AD +:04C18F0000000000AC +:04C1900000000000AB +:04C1910000000000AA +:04C1920000000000A9 +:04C1930000000000A8 +:04C1940000000000A7 +:04C1950000000000A6 +:04C1960000000000A5 +:04C1970000000000A4 +:04C1980000000000A3 +:04C1990000000000A2 +:04C19A0000000000A1 +:04C19B0000000000A0 +:04C19C00000000009F +:04C19D00000000009E +:04C19E00000000009D +:04C19F00000000009C +:04C1A000000000009B +:04C1A100000000009A +:04C1A2000000000099 +:04C1A3000000000098 +:04C1A4000000000097 +:04C1A5000000000096 +:04C1A6000000000095 +:04C1A7000000000094 +:04C1A8000000000093 +:04C1A9000000000092 +:04C1AA000000000091 +:04C1AB000000000090 +:04C1AC00000000008F +:04C1AD00000000008E +:04C1AE00000000008D +:04C1AF00000000008C +:04C1B000000000008B +:04C1B100000000008A +:04C1B2000000000089 +:04C1B3000000000088 +:04C1B4000000000087 +:04C1B5000000000086 +:04C1B6000000000085 +:04C1B7000000000084 +:04C1B8000000000083 +:04C1B9000000000082 +:04C1BA000000000081 +:04C1BB000000000080 +:04C1BC00000000007F +:04C1BD00000000007E +:04C1BE00000000007D +:04C1BF00000000007C +:04C1C000000000007B +:04C1C100000000007A +:04C1C2000000000079 +:04C1C3000000000078 +:04C1C4000000000077 +:04C1C5000000000076 +:04C1C6000000000075 +:04C1C7000000000074 +:04C1C8000000000073 +:04C1C9000000000072 +:04C1CA000000000071 +:04C1CB000000000070 +:04C1CC00000000006F +:04C1CD00000000006E +:04C1CE00000000006D +:04C1CF00000000006C +:04C1D000000000006B +:04C1D100000000006A +:04C1D2000000000069 +:04C1D3000000000068 +:04C1D4000000000067 +:04C1D5000000000066 +:04C1D6000000000065 +:04C1D7000000000064 +:04C1D8000000000063 +:04C1D9000000000062 +:04C1DA000000000061 +:04C1DB000000000060 +:04C1DC00000000005F +:04C1DD00000000005E +:04C1DE00000000005D +:04C1DF00000000005C +:04C1E000000000005B +:04C1E100000000005A +:04C1E2000000000059 +:04C1E3000000000058 +:04C1E4000000000057 +:04C1E5000000000056 +:04C1E6000000000055 +:04C1E7000000000054 +:04C1E8000000000053 +:04C1E9000000000052 +:04C1EA000000000051 +:04C1EB000000000050 +:04C1EC00000000004F +:04C1ED00000000004E +:04C1EE00000000004D +:04C1EF00000000004C +:04C1F000000000004B +:04C1F100000000004A +:04C1F2000000000049 +:04C1F3000000000048 +:04C1F4000000000047 +:04C1F5000000000046 +:04C1F6000000000045 +:04C1F7000000000044 +:04C1F8000000000043 +:04C1F9000000000042 +:04C1FA000000000041 +:04C1FB000000000040 +:04C1FC00000000003F +:04C1FD00000000003E +:04C1FE00000000003D +:04C1FF00000000003C +:04C20000000000003A +:04C201000000000039 +:04C202000000000038 +:04C203000000000037 +:04C204000000000036 +:04C205000000000035 +:04C206000000000034 +:04C207000000000033 +:04C208000000000032 +:04C209000000000031 +:04C20A000000000030 +:04C20B00000000002F +:04C20C00000000002E +:04C20D00000000002D +:04C20E00000000002C +:04C20F00000000002B +:04C21000000000002A +:04C211000000000029 +:04C212000000000028 +:04C213000000000027 +:04C214000000000026 +:04C215000000000025 +:04C216000000000024 +:04C217000000000023 +:04C218000000000022 +:04C219000000000021 +:04C21A000000000020 +:04C21B00000000001F +:04C21C00000000001E +:04C21D00000000001D +:04C21E00000000001C +:04C21F00000000001B +:04C22000000000001A +:04C221000000000019 +:04C222000000000018 +:04C223000000000017 +:04C224000000000016 +:04C225000000000015 +:04C226000000000014 +:04C227000000000013 +:04C228000000000012 +:04C229000000000011 +:04C22A000000000010 +:04C22B00000000000F +:04C22C00000000000E +:04C22D00000000000D +:04C22E00000000000C +:04C22F00000000000B +:04C23000000000000A +:04C231000000000009 +:04C232000000000008 +:04C233000000000007 +:04C234000000000006 +:04C235000000000005 +:04C236000000000004 +:04C237000000000003 +:04C238000000000002 +:04C239000000000001 +:04C23A000000000000 +:04C23B0000000000FF +:04C23C0000000000FE +:04C23D0000000000FD +:04C23E0000000000FC +:04C23F0000000000FB +:04C2400000000000FA +:04C2410000000000F9 +:04C2420000000000F8 +:04C2430000000000F7 +:04C2440000000000F6 +:04C2450000000000F5 +:04C2460000000000F4 +:04C2470000000000F3 +:04C2480000000000F2 +:04C2490000000000F1 +:04C24A0000000000F0 +:04C24B0000000000EF +:04C24C0000000000EE +:04C24D0000000000ED +:04C24E0000000000EC +:04C24F0000000000EB +:04C2500000000000EA +:04C2510000000000E9 +:04C2520000000000E8 +:04C2530000000000E7 +:04C2540000000000E6 +:04C2550000000000E5 +:04C2560000000000E4 +:04C2570000000000E3 +:04C2580000000000E2 +:04C2590000000000E1 +:04C25A0000000000E0 +:04C25B0000000000DF +:04C25C0000000000DE +:04C25D0000000000DD +:04C25E0000000000DC +:04C25F0000000000DB +:04C2600000000000DA +:04C2610000000000D9 +:04C2620000000000D8 +:04C2630000000000D7 +:04C2640000000000D6 +:04C2650000000000D5 +:04C2660000000000D4 +:04C2670000000000D3 +:04C2680000000000D2 +:04C2690000000000D1 +:04C26A0000000000D0 +:04C26B0000000000CF +:04C26C0000000000CE +:04C26D0000000000CD +:04C26E0000000000CC +:04C26F0000000000CB +:04C2700000000000CA +:04C2710000000000C9 +:04C2720000000000C8 +:04C2730000000000C7 +:04C2740000000000C6 +:04C2750000000000C5 +:04C2760000000000C4 +:04C2770000000000C3 +:04C2780000000000C2 +:04C2790000000000C1 +:04C27A0000000000C0 +:04C27B0000000000BF +:04C27C0000000000BE +:04C27D0000000000BD +:04C27E0000000000BC +:04C27F0000000000BB +:04C2800000000000BA +:04C2810000000000B9 +:04C2820000000000B8 +:04C2830000000000B7 +:04C2840000000000B6 +:04C2850000000000B5 +:04C2860000000000B4 +:04C2870000000000B3 +:04C2880000000000B2 +:04C2890000000000B1 +:04C28A0000000000B0 +:04C28B0000000000AF +:04C28C0000000000AE +:04C28D0000000000AD +:04C28E0000000000AC +:04C28F0000000000AB +:04C2900000000000AA +:04C2910000000000A9 +:04C2920000000000A8 +:04C2930000000000A7 +:04C2940000000000A6 +:04C2950000000000A5 +:04C2960000000000A4 +:04C2970000000000A3 +:04C2980000000000A2 +:04C2990000000000A1 +:04C29A0000000000A0 +:04C29B00000000009F +:04C29C00000000009E +:04C29D00000000009D +:04C29E00000000009C +:04C29F00000000009B +:04C2A000000000009A +:04C2A1000000000099 +:04C2A2000000000098 +:04C2A3000000000097 +:04C2A4000000000096 +:04C2A5000000000095 +:04C2A6000000000094 +:04C2A7000000000093 +:04C2A8000000000092 +:04C2A9000000000091 +:04C2AA000000000090 +:04C2AB00000000008F +:04C2AC00000000008E +:04C2AD00000000008D +:04C2AE00000000008C +:04C2AF00000000008B +:04C2B000000000008A +:04C2B1000000000089 +:04C2B2000000000088 +:04C2B3000000000087 +:04C2B4000000000086 +:04C2B5000000000085 +:04C2B6000000000084 +:04C2B7000000000083 +:04C2B8000000000082 +:04C2B9000000000081 +:04C2BA000000000080 +:04C2BB00000000007F +:04C2BC00000000007E +:04C2BD00000000007D +:04C2BE00000000007C +:04C2BF00000000007B +:04C2C000000000007A +:04C2C1000000000079 +:04C2C2000000000078 +:04C2C3000000000077 +:04C2C4000000000076 +:04C2C5000000000075 +:04C2C6000000000074 +:04C2C7000000000073 +:04C2C8000000000072 +:04C2C9000000000071 +:04C2CA000000000070 +:04C2CB00000000006F +:04C2CC00000000006E +:04C2CD00000000006D +:04C2CE00000000006C +:04C2CF00000000006B +:04C2D000000000006A +:04C2D1000000000069 +:04C2D2000000000068 +:04C2D3000000000067 +:04C2D4000000000066 +:04C2D5000000000065 +:04C2D6000000000064 +:04C2D7000000000063 +:04C2D8000000000062 +:04C2D9000000000061 +:04C2DA000000000060 +:04C2DB00000000005F +:04C2DC00000000005E +:04C2DD00000000005D +:04C2DE00000000005C +:04C2DF00000000005B +:04C2E000000000005A +:04C2E1000000000059 +:04C2E2000000000058 +:04C2E3000000000057 +:04C2E4000000000056 +:04C2E5000000000055 +:04C2E6000000000054 +:04C2E7000000000053 +:04C2E8000000000052 +:04C2E9000000000051 +:04C2EA000000000050 +:04C2EB00000000004F +:04C2EC00000000004E +:04C2ED00000000004D +:04C2EE00000000004C +:04C2EF00000000004B +:04C2F000000000004A +:04C2F1000000000049 +:04C2F2000000000048 +:04C2F3000000000047 +:04C2F4000000000046 +:04C2F5000000000045 +:04C2F6000000000044 +:04C2F7000000000043 +:04C2F8000000000042 +:04C2F9000000000041 +:04C2FA000000000040 +:04C2FB00000000003F +:04C2FC00000000003E +:04C2FD00000000003D +:04C2FE00000000003C +:04C2FF00000000003B +:04C300000000000039 +:04C301000000000038 +:04C302000000000037 +:04C303000000000036 +:04C304000000000035 +:04C305000000000034 +:04C306000000000033 +:04C307000000000032 +:04C308000000000031 +:04C309000000000030 +:04C30A00000000002F +:04C30B00000000002E +:04C30C00000000002D +:04C30D00000000002C +:04C30E00000000002B +:04C30F00000000002A +:04C310000000000029 +:04C311000000000028 +:04C312000000000027 +:04C313000000000026 +:04C314000000000025 +:04C315000000000024 +:04C316000000000023 +:04C317000000000022 +:04C318000000000021 +:04C319000000000020 +:04C31A00000000001F +:04C31B00000000001E +:04C31C00000000001D +:04C31D00000000001C +:04C31E00000000001B +:04C31F00000000001A +:04C320000000000019 +:04C321000000000018 +:04C322000000000017 +:04C323000000000016 +:04C324000000000015 +:04C325000000000014 +:04C326000000000013 +:04C327000000000012 +:04C328000000000011 +:04C329000000000010 +:04C32A00000000000F +:04C32B00000000000E +:04C32C00000000000D +:04C32D00000000000C +:04C32E00000000000B +:04C32F00000000000A +:04C330000000000009 +:04C331000000000008 +:04C332000000000007 +:04C333000000000006 +:04C334000000000005 +:04C335000000000004 +:04C336000000000003 +:04C337000000000002 +:04C338000000000001 +:04C339000000000000 +:04C33A0000000000FF +:04C33B0000000000FE +:04C33C0000000000FD +:04C33D0000000000FC +:04C33E0000000000FB +:04C33F0000000000FA +:04C3400000000000F9 +:04C3410000000000F8 +:04C3420000000000F7 +:04C3430000000000F6 +:04C3440000000000F5 +:04C3450000000000F4 +:04C3460000000000F3 +:04C3470000000000F2 +:04C3480000000000F1 +:04C3490000000000F0 +:04C34A0000000000EF +:04C34B0000000000EE +:04C34C0000000000ED +:04C34D0000000000EC +:04C34E0000000000EB +:04C34F0000000000EA +:04C3500000000000E9 +:04C3510000000000E8 +:04C3520000000000E7 +:04C3530000000000E6 +:04C3540000000000E5 +:04C3550000000000E4 +:04C3560000000000E3 +:04C3570000000000E2 +:04C3580000000000E1 +:04C3590000000000E0 +:04C35A0000000000DF +:04C35B0000000000DE +:04C35C0000000000DD +:04C35D0000000000DC +:04C35E0000000000DB +:04C35F0000000000DA +:04C3600000000000D9 +:04C3610000000000D8 +:04C3620000000000D7 +:04C3630000000000D6 +:04C3640000000000D5 +:04C3650000000000D4 +:04C3660000000000D3 +:04C3670000000000D2 +:04C3680000000000D1 +:04C3690000000000D0 +:04C36A0000000000CF +:04C36B0000000000CE +:04C36C0000000000CD +:04C36D0000000000CC +:04C36E0000000000CB +:04C36F0000000000CA +:04C3700000000000C9 +:04C3710000000000C8 +:04C3720000000000C7 +:04C3730000000000C6 +:04C3740000000000C5 +:04C3750000000000C4 +:04C3760000000000C3 +:04C3770000000000C2 +:04C3780000000000C1 +:04C3790000000000C0 +:04C37A0000000000BF +:04C37B0000000000BE +:04C37C0000000000BD +:04C37D0000000000BC +:04C37E0000000000BB +:04C37F0000000000BA +:04C3800000000000B9 +:04C3810000000000B8 +:04C3820000000000B7 +:04C3830000000000B6 +:04C3840000000000B5 +:04C3850000000000B4 +:04C3860000000000B3 +:04C3870000000000B2 +:04C3880000000000B1 +:04C3890000000000B0 +:04C38A0000000000AF +:04C38B0000000000AE +:04C38C0000000000AD +:04C38D0000000000AC +:04C38E0000000000AB +:04C38F0000000000AA +:04C3900000000000A9 +:04C3910000000000A8 +:04C3920000000000A7 +:04C3930000000000A6 +:04C3940000000000A5 +:04C3950000000000A4 +:04C3960000000000A3 +:04C3970000000000A2 +:04C3980000000000A1 +:04C3990000000000A0 +:04C39A00000000009F +:04C39B00000000009E +:04C39C00000000009D +:04C39D00000000009C +:04C39E00000000009B +:04C39F00000000009A +:04C3A0000000000099 +:04C3A1000000000098 +:04C3A2000000000097 +:04C3A3000000000096 +:04C3A4000000000095 +:04C3A5000000000094 +:04C3A6000000000093 +:04C3A7000000000092 +:04C3A8000000000091 +:04C3A9000000000090 +:04C3AA00000000008F +:04C3AB00000000008E +:04C3AC00000000008D +:04C3AD00000000008C +:04C3AE00000000008B +:04C3AF00000000008A +:04C3B0000000000089 +:04C3B1000000000088 +:04C3B2000000000087 +:04C3B3000000000086 +:04C3B4000000000085 +:04C3B5000000000084 +:04C3B6000000000083 +:04C3B7000000000082 +:04C3B8000000000081 +:04C3B9000000000080 +:04C3BA00000000007F +:04C3BB00000000007E +:04C3BC00000000007D +:04C3BD00000000007C +:04C3BE00000000007B +:04C3BF00000000007A +:04C3C0000000000079 +:04C3C1000000000078 +:04C3C2000000000077 +:04C3C3000000000076 +:04C3C4000000000075 +:04C3C5000000000074 +:04C3C6000000000073 +:04C3C7000000000072 +:04C3C8000000000071 +:04C3C9000000000070 +:04C3CA00000000006F +:04C3CB00000000006E +:04C3CC00000000006D +:04C3CD00000000006C +:04C3CE00000000006B +:04C3CF00000000006A +:04C3D0000000000069 +:04C3D1000000000068 +:04C3D2000000000067 +:04C3D3000000000066 +:04C3D4000000000065 +:04C3D5000000000064 +:04C3D6000000000063 +:04C3D7000000000062 +:04C3D8000000000061 +:04C3D9000000000060 +:04C3DA00000000005F +:04C3DB00000000005E +:04C3DC00000000005D +:04C3DD00000000005C +:04C3DE00000000005B +:04C3DF00000000005A +:04C3E0000000000059 +:04C3E1000000000058 +:04C3E2000000000057 +:04C3E3000000000056 +:04C3E4000000000055 +:04C3E5000000000054 +:04C3E6000000000053 +:04C3E7000000000052 +:04C3E8000000000051 +:04C3E9000000000050 +:04C3EA00000000004F +:04C3EB00000000004E +:04C3EC00000000004D +:04C3ED00000000004C +:04C3EE00000000004B +:04C3EF00000000004A +:04C3F0000000000049 +:04C3F1000000000048 +:04C3F2000000000047 +:04C3F3000000000046 +:04C3F4000000000045 +:04C3F5000000000044 +:04C3F6000000000043 +:04C3F7000000000042 +:04C3F8000000000041 +:04C3F9000000000040 +:04C3FA00000000003F +:04C3FB00000000003E +:04C3FC00000000003D +:04C3FD00000000003C +:04C3FE00000000003B +:04C3FF00000000003A +:04C400000000000038 +:04C401000000000037 +:04C402000000000036 +:04C403000000000035 +:04C404000000000034 +:04C405000000000033 +:04C406000000000032 +:04C407000000000031 +:04C408000000000030 +:04C40900000000002F +:04C40A00000000002E +:04C40B00000000002D +:04C40C00000000002C +:04C40D00000000002B +:04C40E00000000002A +:04C40F000000000029 +:04C410000000000028 +:04C411000000000027 +:04C412000000000026 +:04C413000000000025 +:04C414000000000024 +:04C415000000000023 +:04C416000000000022 +:04C417000000000021 +:04C418000000000020 +:04C41900000000001F +:04C41A00000000001E +:04C41B00000000001D +:04C41C00000000001C +:04C41D00000000001B +:04C41E00000000001A +:04C41F000000000019 +:04C420000000000018 +:04C421000000000017 +:04C422000000000016 +:04C423000000000015 +:04C424000000000014 +:04C425000000000013 +:04C426000000000012 +:04C427000000000011 +:04C428000000000010 +:04C42900000000000F +:04C42A00000000000E +:04C42B00000000000D +:04C42C00000000000C +:04C42D00000000000B +:04C42E00000000000A +:04C42F000000000009 +:04C430000000000008 +:04C431000000000007 +:04C432000000000006 +:04C433000000000005 +:04C434000000000004 +:04C435000000000003 +:04C436000000000002 +:04C437000000000001 +:04C438000000000000 +:04C4390000000000FF +:04C43A0000000000FE +:04C43B0000000000FD +:04C43C0000000000FC +:04C43D0000000000FB +:04C43E0000000000FA +:04C43F0000000000F9 +:04C4400000000000F8 +:04C4410000000000F7 +:04C4420000000000F6 +:04C4430000000000F5 +:04C4440000000000F4 +:04C4450000000000F3 +:04C4460000000000F2 +:04C4470000000000F1 +:04C4480000000000F0 +:04C4490000000000EF +:04C44A0000000000EE +:04C44B0000000000ED +:04C44C0000000000EC +:04C44D0000000000EB +:04C44E0000000000EA +:04C44F0000000000E9 +:04C4500000000000E8 +:04C4510000000000E7 +:04C4520000000000E6 +:04C4530000000000E5 +:04C4540000000000E4 +:04C4550000000000E3 +:04C4560000000000E2 +:04C4570000000000E1 +:04C4580000000000E0 +:04C4590000000000DF +:04C45A0000000000DE +:04C45B0000000000DD +:04C45C0000000000DC +:04C45D0000000000DB +:04C45E0000000000DA +:04C45F0000000000D9 +:04C4600000000000D8 +:04C4610000000000D7 +:04C4620000000000D6 +:04C4630000000000D5 +:04C4640000000000D4 +:04C4650000000000D3 +:04C4660000000000D2 +:04C4670000000000D1 +:04C4680000000000D0 +:04C4690000000000CF +:04C46A0000000000CE +:04C46B0000000000CD +:04C46C0000000000CC +:04C46D0000000000CB +:04C46E0000000000CA +:04C46F0000000000C9 +:04C4700000000000C8 +:04C4710000000000C7 +:04C4720000000000C6 +:04C4730000000000C5 +:04C4740000000000C4 +:04C4750000000000C3 +:04C4760000000000C2 +:04C4770000000000C1 +:04C4780000000000C0 +:04C4790000000000BF +:04C47A0000000000BE +:04C47B0000000000BD +:04C47C0000000000BC +:04C47D0000000000BB +:04C47E0000000000BA +:04C47F0000000000B9 +:04C4800000000000B8 +:04C4810000000000B7 +:04C4820000000000B6 +:04C4830000000000B5 +:04C4840000000000B4 +:04C4850000000000B3 +:04C4860000000000B2 +:04C4870000000000B1 +:04C4880000000000B0 +:04C4890000000000AF +:04C48A0000000000AE +:04C48B0000000000AD +:04C48C0000000000AC +:04C48D0000000000AB +:04C48E0000000000AA +:04C48F0000000000A9 +:04C4900000000000A8 +:04C4910000000000A7 +:04C4920000000000A6 +:04C4930000000000A5 +:04C4940000000000A4 +:04C4950000000000A3 +:04C4960000000000A2 +:04C4970000000000A1 +:04C4980000000000A0 +:04C49900000000009F +:04C49A00000000009E +:04C49B00000000009D +:04C49C00000000009C +:04C49D00000000009B +:04C49E00000000009A +:04C49F000000000099 +:04C4A0000000000098 +:04C4A1000000000097 +:04C4A2000000000096 +:04C4A3000000000095 +:04C4A4000000000094 +:04C4A5000000000093 +:04C4A6000000000092 +:04C4A7000000000091 +:04C4A8000000000090 +:04C4A900000000008F +:04C4AA00000000008E +:04C4AB00000000008D +:04C4AC00000000008C +:04C4AD00000000008B +:04C4AE00000000008A +:04C4AF000000000089 +:04C4B0000000000088 +:04C4B1000000000087 +:04C4B2000000000086 +:04C4B3000000000085 +:04C4B4000000000084 +:04C4B5000000000083 +:04C4B6000000000082 +:04C4B7000000000081 +:04C4B8000000000080 +:04C4B900000000007F +:04C4BA00000000007E +:04C4BB00000000007D +:04C4BC00000000007C +:04C4BD00000000007B +:04C4BE00000000007A +:04C4BF000000000079 +:04C4C0000000000078 +:04C4C1000000000077 +:04C4C2000000000076 +:04C4C3000000000075 +:04C4C4000000000074 +:04C4C5000000000073 +:04C4C6000000000072 +:04C4C7000000000071 +:04C4C8000000000070 +:04C4C900000000006F +:04C4CA00000000006E +:04C4CB00000000006D +:04C4CC00000000006C +:04C4CD00000000006B +:04C4CE00000000006A +:04C4CF000000000069 +:04C4D0000000000068 +:04C4D1000000000067 +:04C4D2000000000066 +:04C4D3000000000065 +:04C4D4000000000064 +:04C4D5000000000063 +:04C4D6000000000062 +:04C4D7000000000061 +:04C4D8000000000060 +:04C4D900000000005F +:04C4DA00000000005E +:04C4DB00000000005D +:04C4DC00000000005C +:04C4DD00000000005B +:04C4DE00000000005A +:04C4DF000000000059 +:04C4E0000000000058 +:04C4E1000000000057 +:04C4E2000000000056 +:04C4E3000000000055 +:04C4E4000000000054 +:04C4E5000000000053 +:04C4E6000000000052 +:04C4E7000000000051 +:04C4E8000000000050 +:04C4E900000000004F +:04C4EA00000000004E +:04C4EB00000000004D +:04C4EC00000000004C +:04C4ED00000000004B +:04C4EE00000000004A +:04C4EF000000000049 +:04C4F0000000000048 +:04C4F1000000000047 +:04C4F2000000000046 +:04C4F3000000000045 +:04C4F4000000000044 +:04C4F5000000000043 +:04C4F6000000000042 +:04C4F7000000000041 +:04C4F8000000000040 +:04C4F900000000003F +:04C4FA00000000003E +:04C4FB00000000003D +:04C4FC00000000003C +:04C4FD00000000003B +:04C4FE00000000003A +:04C4FF000000000039 +:04C500000000000037 +:04C501000000000036 +:04C502000000000035 +:04C503000000000034 +:04C504000000000033 +:04C505000000000032 +:04C506000000000031 +:04C507000000000030 +:04C50800000000002F +:04C50900000000002E +:04C50A00000000002D +:04C50B00000000002C +:04C50C00000000002B +:04C50D00000000002A +:04C50E000000000029 +:04C50F000000000028 +:04C510000000000027 +:04C511000000000026 +:04C512000000000025 +:04C513000000000024 +:04C514000000000023 +:04C515000000000022 +:04C516000000000021 +:04C517000000000020 +:04C51800000000001F +:04C51900000000001E +:04C51A00000000001D +:04C51B00000000001C +:04C51C00000000001B +:04C51D00000000001A +:04C51E000000000019 +:04C51F000000000018 +:04C520000000000017 +:04C521000000000016 +:04C522000000000015 +:04C523000000000014 +:04C524000000000013 +:04C525000000000012 +:04C526000000000011 +:04C527000000000010 +:04C52800000000000F +:04C52900000000000E +:04C52A00000000000D +:04C52B00000000000C +:04C52C00000000000B +:04C52D00000000000A +:04C52E000000000009 +:04C52F000000000008 +:04C530000000000007 +:04C531000000000006 +:04C532000000000005 +:04C533000000000004 +:04C534000000000003 +:04C535000000000002 +:04C536000000000001 +:04C537000000000000 +:04C5380000000000FF +:04C5390000000000FE +:04C53A0000000000FD +:04C53B0000000000FC +:04C53C0000000000FB +:04C53D0000000000FA +:04C53E0000000000F9 +:04C53F0000000000F8 +:04C5400000000000F7 +:04C5410000000000F6 +:04C5420000000000F5 +:04C5430000000000F4 +:04C5440000000000F3 +:04C5450000000000F2 +:04C5460000000000F1 +:04C5470000000000F0 +:04C5480000000000EF +:04C5490000000000EE +:04C54A0000000000ED +:04C54B0000000000EC +:04C54C0000000000EB +:04C54D0000000000EA +:04C54E0000000000E9 +:04C54F0000000000E8 +:04C5500000000000E7 +:04C5510000000000E6 +:04C5520000000000E5 +:04C5530000000000E4 +:04C5540000000000E3 +:04C5550000000000E2 +:04C5560000000000E1 +:04C5570000000000E0 +:04C5580000000000DF +:04C5590000000000DE +:04C55A0000000000DD +:04C55B0000000000DC +:04C55C0000000000DB +:04C55D0000000000DA +:04C55E0000000000D9 +:04C55F0000000000D8 +:04C5600000000000D7 +:04C5610000000000D6 +:04C5620000000000D5 +:04C5630000000000D4 +:04C5640000000000D3 +:04C5650000000000D2 +:04C5660000000000D1 +:04C5670000000000D0 +:04C5680000000000CF +:04C5690000000000CE +:04C56A0000000000CD +:04C56B0000000000CC +:04C56C0000000000CB +:04C56D0000000000CA +:04C56E0000000000C9 +:04C56F0000000000C8 +:04C5700000000000C7 +:04C5710000000000C6 +:04C5720000000000C5 +:04C5730000000000C4 +:04C5740000000000C3 +:04C5750000000000C2 +:04C5760000000000C1 +:04C5770000000000C0 +:04C5780000000000BF +:04C5790000000000BE +:04C57A0000000000BD +:04C57B0000000000BC +:04C57C0000000000BB +:04C57D0000000000BA +:04C57E0000000000B9 +:04C57F0000000000B8 +:04C5800000000000B7 +:04C5810000000000B6 +:04C5820000000000B5 +:04C5830000000000B4 +:04C5840000000000B3 +:04C5850000000000B2 +:04C5860000000000B1 +:04C5870000000000B0 +:04C5880000000000AF +:04C5890000000000AE +:04C58A0000000000AD +:04C58B0000000000AC +:04C58C0000000000AB +:04C58D0000000000AA +:04C58E0000000000A9 +:04C58F0000000000A8 +:04C5900000000000A7 +:04C5910000000000A6 +:04C5920000000000A5 +:04C5930000000000A4 +:04C5940000000000A3 +:04C5950000000000A2 +:04C5960000000000A1 +:04C5970000000000A0 +:04C59800000000009F +:04C59900000000009E +:04C59A00000000009D +:04C59B00000000009C +:04C59C00000000009B +:04C59D00000000009A +:04C59E000000000099 +:04C59F000000000098 +:04C5A0000000000097 +:04C5A1000000000096 +:04C5A2000000000095 +:04C5A3000000000094 +:04C5A4000000000093 +:04C5A5000000000092 +:04C5A6000000000091 +:04C5A7000000000090 +:04C5A800000000008F +:04C5A900000000008E +:04C5AA00000000008D +:04C5AB00000000008C +:04C5AC00000000008B +:04C5AD00000000008A +:04C5AE000000000089 +:04C5AF000000000088 +:04C5B0000000000087 +:04C5B1000000000086 +:04C5B2000000000085 +:04C5B3000000000084 +:04C5B4000000000083 +:04C5B5000000000082 +:04C5B6000000000081 +:04C5B7000000000080 +:04C5B800000000007F +:04C5B900000000007E +:04C5BA00000000007D +:04C5BB00000000007C +:04C5BC00000000007B +:04C5BD00000000007A +:04C5BE000000000079 +:04C5BF000000000078 +:04C5C0000000000077 +:04C5C1000000000076 +:04C5C2000000000075 +:04C5C3000000000074 +:04C5C4000000000073 +:04C5C5000000000072 +:04C5C6000000000071 +:04C5C7000000000070 +:04C5C800000000006F +:04C5C900000000006E +:04C5CA00000000006D +:04C5CB00000000006C +:04C5CC00000000006B +:04C5CD00000000006A +:04C5CE000000000069 +:04C5CF000000000068 +:04C5D0000000000067 +:04C5D1000000000066 +:04C5D2000000000065 +:04C5D3000000000064 +:04C5D4000000000063 +:04C5D5000000000062 +:04C5D6000000000061 +:04C5D7000000000060 +:04C5D800000000005F +:04C5D900000000005E +:04C5DA00000000005D +:04C5DB00000000005C +:04C5DC00000000005B +:04C5DD00000000005A +:04C5DE000000000059 +:04C5DF000000000058 +:04C5E0000000000057 +:04C5E1000000000056 +:04C5E2000000000055 +:04C5E3000000000054 +:04C5E4000000000053 +:04C5E5000000000052 +:04C5E6000000000051 +:04C5E7000000000050 +:04C5E800000000004F +:04C5E900000000004E +:04C5EA00000000004D +:04C5EB00000000004C +:04C5EC00000000004B +:04C5ED00000000004A +:04C5EE000000000049 +:04C5EF000000000048 +:04C5F0000000000047 +:04C5F1000000000046 +:04C5F2000000000045 +:04C5F3000000000044 +:04C5F4000000000043 +:04C5F5000000000042 +:04C5F6000000000041 +:04C5F7000000000040 +:04C5F800000000003F +:04C5F900000000003E +:04C5FA00000000003D +:04C5FB00000000003C +:04C5FC00000000003B +:04C5FD00000000003A +:04C5FE000000000039 +:04C5FF000000000038 +:04C600000000000036 +:04C601000000000035 +:04C602000000000034 +:04C603000000000033 +:04C604000000000032 +:04C605000000000031 +:04C606000000000030 +:04C60700000000002F +:04C60800000000002E +:04C60900000000002D +:04C60A00000000002C +:04C60B00000000002B +:04C60C00000000002A +:04C60D000000000029 +:04C60E000000000028 +:04C60F000000000027 +:04C610000000000026 +:04C611000000000025 +:04C612000000000024 +:04C613000000000023 +:04C614000000000022 +:04C615000000000021 +:04C616000000000020 +:04C61700000000001F +:04C61800000000001E +:04C61900000000001D +:04C61A00000000001C +:04C61B00000000001B +:04C61C00000000001A +:04C61D000000000019 +:04C61E000000000018 +:04C61F000000000017 +:04C620000000000016 +:04C621000000000015 +:04C622000000000014 +:04C623000000000013 +:04C624000000000012 +:04C625000000000011 +:04C626000000000010 +:04C62700000000000F +:04C62800000000000E +:04C62900000000000D +:04C62A00000000000C +:04C62B00000000000B +:04C62C00000000000A +:04C62D000000000009 +:04C62E000000000008 +:04C62F000000000007 +:04C630000000000006 +:04C631000000000005 +:04C632000000000004 +:04C633000000000003 +:04C634000000000002 +:04C635000000000001 +:04C636000000000000 +:04C6370000000000FF +:04C6380000000000FE +:04C6390000000000FD +:04C63A0000000000FC +:04C63B0000000000FB +:04C63C0000000000FA +:04C63D0000000000F9 +:04C63E0000000000F8 +:04C63F0000000000F7 +:04C6400000000000F6 +:04C6410000000000F5 +:04C6420000000000F4 +:04C6430000000000F3 +:04C6440000000000F2 +:04C6450000000000F1 +:04C6460000000000F0 +:04C6470000000000EF +:04C6480000000000EE +:04C6490000000000ED +:04C64A0000000000EC +:04C64B0000000000EB +:04C64C0000000000EA +:04C64D0000000000E9 +:04C64E0000000000E8 +:04C64F0000000000E7 +:04C6500000000000E6 +:04C6510000000000E5 +:04C6520000000000E4 +:04C6530000000000E3 +:04C6540000000000E2 +:04C6550000000000E1 +:04C6560000000000E0 +:04C6570000000000DF +:04C6580000000000DE +:04C6590000000000DD +:04C65A0000000000DC +:04C65B0000000000DB +:04C65C0000000000DA +:04C65D0000000000D9 +:04C65E0000000000D8 +:04C65F0000000000D7 +:04C6600000000000D6 +:04C6610000000000D5 +:04C6620000000000D4 +:04C6630000000000D3 +:04C6640000000000D2 +:04C6650000000000D1 +:04C6660000000000D0 +:04C6670000000000CF +:04C6680000000000CE +:04C6690000000000CD +:04C66A0000000000CC +:04C66B0000000000CB +:04C66C0000000000CA +:04C66D0000000000C9 +:04C66E0000000000C8 +:04C66F0000000000C7 +:04C6700000000000C6 +:04C6710000000000C5 +:04C6720000000000C4 +:04C6730000000000C3 +:04C6740000000000C2 +:04C6750000000000C1 +:04C6760000000000C0 +:04C6770000000000BF +:04C6780000000000BE +:04C6790000000000BD +:04C67A0000000000BC +:04C67B0000000000BB +:04C67C0000000000BA +:04C67D0000000000B9 +:04C67E0000000000B8 +:04C67F0000000000B7 +:04C6800000000000B6 +:04C6810000000000B5 +:04C6820000000000B4 +:04C6830000000000B3 +:04C6840000000000B2 +:04C6850000000000B1 +:04C6860000000000B0 +:04C6870000000000AF +:04C6880000000000AE +:04C6890000000000AD +:04C68A0000000000AC +:04C68B0000000000AB +:04C68C0000000000AA +:04C68D0000000000A9 +:04C68E0000000000A8 +:04C68F0000000000A7 +:04C6900000000000A6 +:04C6910000000000A5 +:04C6920000000000A4 +:04C6930000000000A3 +:04C6940000000000A2 +:04C6950000000000A1 +:04C6960000000000A0 +:04C69700000000009F +:04C69800000000009E +:04C69900000000009D +:04C69A00000000009C +:04C69B00000000009B +:04C69C00000000009A +:04C69D000000000099 +:04C69E000000000098 +:04C69F000000000097 +:04C6A0000000000096 +:04C6A1000000000095 +:04C6A2000000000094 +:04C6A3000000000093 +:04C6A4000000000092 +:04C6A5000000000091 +:04C6A6000000000090 +:04C6A700000000008F +:04C6A800000000008E +:04C6A900000000008D +:04C6AA00000000008C +:04C6AB00000000008B +:04C6AC00000000008A +:04C6AD000000000089 +:04C6AE000000000088 +:04C6AF000000000087 +:04C6B0000000000086 +:04C6B1000000000085 +:04C6B2000000000084 +:04C6B3000000000083 +:04C6B4000000000082 +:04C6B5000000000081 +:04C6B6000000000080 +:04C6B700000000007F +:04C6B800000000007E +:04C6B900000000007D +:04C6BA00000000007C +:04C6BB00000000007B +:04C6BC00000000007A +:04C6BD000000000079 +:04C6BE000000000078 +:04C6BF000000000077 +:04C6C0000000000076 +:04C6C1000000000075 +:04C6C2000000000074 +:04C6C3000000000073 +:04C6C4000000000072 +:04C6C5000000000071 +:04C6C6000000000070 +:04C6C700000000006F +:04C6C800000000006E +:04C6C900000000006D +:04C6CA00000000006C +:04C6CB00000000006B +:04C6CC00000000006A +:04C6CD000000000069 +:04C6CE000000000068 +:04C6CF000000000067 +:04C6D0000000000066 +:04C6D1000000000065 +:04C6D2000000000064 +:04C6D3000000000063 +:04C6D4000000000062 +:04C6D5000000000061 +:04C6D6000000000060 +:04C6D700000000005F +:04C6D800000000005E +:04C6D900000000005D +:04C6DA00000000005C +:04C6DB00000000005B +:04C6DC00000000005A +:04C6DD000000000059 +:04C6DE000000000058 +:04C6DF000000000057 +:04C6E0000000000056 +:04C6E1000000000055 +:04C6E2000000000054 +:04C6E3000000000053 +:04C6E4000000000052 +:04C6E5000000000051 +:04C6E6000000000050 +:04C6E700000000004F +:04C6E800000000004E +:04C6E900000000004D +:04C6EA00000000004C +:04C6EB00000000004B +:04C6EC00000000004A +:04C6ED000000000049 +:04C6EE000000000048 +:04C6EF000000000047 +:04C6F0000000000046 +:04C6F1000000000045 +:04C6F2000000000044 +:04C6F3000000000043 +:04C6F4000000000042 +:04C6F5000000000041 +:04C6F6000000000040 +:04C6F700000000003F +:04C6F800000000003E +:04C6F900000000003D +:04C6FA00000000003C +:04C6FB00000000003B +:04C6FC00000000003A +:04C6FD000000000039 +:04C6FE000000000038 +:04C6FF000000000037 +:04C700000000000035 +:04C701000000000034 +:04C702000000000033 +:04C703000000000032 +:04C704000000000031 +:04C705000000000030 +:04C70600000000002F +:04C70700000000002E +:04C70800000000002D +:04C70900000000002C +:04C70A00000000002B +:04C70B00000000002A +:04C70C000000000029 +:04C70D000000000028 +:04C70E000000000027 +:04C70F000000000026 +:04C710000000000025 +:04C711000000000024 +:04C712000000000023 +:04C713000000000022 +:04C714000000000021 +:04C715000000000020 +:04C71600000000001F +:04C71700000000001E +:04C71800000000001D +:04C71900000000001C +:04C71A00000000001B +:04C71B00000000001A +:04C71C000000000019 +:04C71D000000000018 +:04C71E000000000017 +:04C71F000000000016 +:04C720000000000015 +:04C721000000000014 +:04C722000000000013 +:04C723000000000012 +:04C724000000000011 +:04C725000000000010 +:04C72600000000000F +:04C72700000000000E +:04C72800000000000D +:04C72900000000000C +:04C72A00000000000B +:04C72B00000000000A +:04C72C000000000009 +:04C72D000000000008 +:04C72E000000000007 +:04C72F000000000006 +:04C730000000000005 +:04C731000000000004 +:04C732000000000003 +:04C733000000000002 +:04C734000000000001 +:04C735000000000000 +:04C7360000000000FF +:04C7370000000000FE +:04C7380000000000FD +:04C7390000000000FC +:04C73A0000000000FB +:04C73B0000000000FA +:04C73C0000000000F9 +:04C73D0000000000F8 +:04C73E0000000000F7 +:04C73F0000000000F6 +:04C7400000000000F5 +:04C7410000000000F4 +:04C7420000000000F3 +:04C7430000000000F2 +:04C7440000000000F1 +:04C7450000000000F0 +:04C7460000000000EF +:04C7470000000000EE +:04C7480000000000ED +:04C7490000000000EC +:04C74A0000000000EB +:04C74B0000000000EA +:04C74C0000000000E9 +:04C74D0000000000E8 +:04C74E0000000000E7 +:04C74F0000000000E6 +:04C7500000000000E5 +:04C7510000000000E4 +:04C7520000000000E3 +:04C7530000000000E2 +:04C7540000000000E1 +:04C7550000000000E0 +:04C7560000000000DF +:04C7570000000000DE +:04C7580000000000DD +:04C7590000000000DC +:04C75A0000000000DB +:04C75B0000000000DA +:04C75C0000000000D9 +:04C75D0000000000D8 +:04C75E0000000000D7 +:04C75F0000000000D6 +:04C7600000000000D5 +:04C7610000000000D4 +:04C7620000000000D3 +:04C7630000000000D2 +:04C7640000000000D1 +:04C7650000000000D0 +:04C7660000000000CF +:04C7670000000000CE +:04C7680000000000CD +:04C7690000000000CC +:04C76A0000000000CB +:04C76B0000000000CA +:04C76C0000000000C9 +:04C76D0000000000C8 +:04C76E0000000000C7 +:04C76F0000000000C6 +:04C7700000000000C5 +:04C7710000000000C4 +:04C7720000000000C3 +:04C7730000000000C2 +:04C7740000000000C1 +:04C7750000000000C0 +:04C7760000000000BF +:04C7770000000000BE +:04C7780000000000BD +:04C7790000000000BC +:04C77A0000000000BB +:04C77B0000000000BA +:04C77C0000000000B9 +:04C77D0000000000B8 +:04C77E0000000000B7 +:04C77F0000000000B6 +:04C7800000000000B5 +:04C7810000000000B4 +:04C7820000000000B3 +:04C7830000000000B2 +:04C7840000000000B1 +:04C7850000000000B0 +:04C7860000000000AF +:04C7870000000000AE +:04C7880000000000AD +:04C7890000000000AC +:04C78A0000000000AB +:04C78B0000000000AA +:04C78C0000000000A9 +:04C78D0000000000A8 +:04C78E0000000000A7 +:04C78F0000000000A6 +:04C7900000000000A5 +:04C7910000000000A4 +:04C7920000000000A3 +:04C7930000000000A2 +:04C7940000000000A1 +:04C7950000000000A0 +:04C79600000000009F +:04C79700000000009E +:04C79800000000009D +:04C79900000000009C +:04C79A00000000009B +:04C79B00000000009A +:04C79C000000000099 +:04C79D000000000098 +:04C79E000000000097 +:04C79F000000000096 +:04C7A0000000000095 +:04C7A1000000000094 +:04C7A2000000000093 +:04C7A3000000000092 +:04C7A4000000000091 +:04C7A5000000000090 +:04C7A600000000008F +:04C7A700000000008E +:04C7A800000000008D +:04C7A900000000008C +:04C7AA00000000008B +:04C7AB00000000008A +:04C7AC000000000089 +:04C7AD000000000088 +:04C7AE000000000087 +:04C7AF000000000086 +:04C7B0000000000085 +:04C7B1000000000084 +:04C7B2000000000083 +:04C7B3000000000082 +:04C7B4000000000081 +:04C7B5000000000080 +:04C7B600000000007F +:04C7B700000000007E +:04C7B800000000007D +:04C7B900000000007C +:04C7BA00000000007B +:04C7BB00000000007A +:04C7BC000000000079 +:04C7BD000000000078 +:04C7BE000000000077 +:04C7BF000000000076 +:04C7C0000000000075 +:04C7C1000000000074 +:04C7C2000000000073 +:04C7C3000000000072 +:04C7C4000000000071 +:04C7C5000000000070 +:04C7C600000000006F +:04C7C700000000006E +:04C7C800000000006D +:04C7C900000000006C +:04C7CA00000000006B +:04C7CB00000000006A +:04C7CC000000000069 +:04C7CD000000000068 +:04C7CE000000000067 +:04C7CF000000000066 +:04C7D0000000000065 +:04C7D1000000000064 +:04C7D2000000000063 +:04C7D3000000000062 +:04C7D4000000000061 +:04C7D5000000000060 +:04C7D600000000005F +:04C7D700000000005E +:04C7D800000000005D +:04C7D900000000005C +:04C7DA00000000005B +:04C7DB00000000005A +:04C7DC000000000059 +:04C7DD000000000058 +:04C7DE000000000057 +:04C7DF000000000056 +:04C7E0000000000055 +:04C7E1000000000054 +:04C7E2000000000053 +:04C7E3000000000052 +:04C7E4000000000051 +:04C7E5000000000050 +:04C7E600000000004F +:04C7E700000000004E +:04C7E800000000004D +:04C7E900000000004C +:04C7EA00000000004B +:04C7EB00000000004A +:04C7EC000000000049 +:04C7ED000000000048 +:04C7EE000000000047 +:04C7EF000000000046 +:04C7F0000000000045 +:04C7F1000000000044 +:04C7F2000000000043 +:04C7F3000000000042 +:04C7F4000000000041 +:04C7F5000000000040 +:04C7F600000000003F +:04C7F700000000003E +:04C7F800000000003D +:04C7F900000000003C +:04C7FA00000000003B +:04C7FB00000000003A +:04C7FC000000000039 +:04C7FD000000000038 +:04C7FE000000000037 +:04C7FF000000000036 +:00000001ff diff --git a/db/ip/nios_system/submodules/nios_system_onchip_memory.v b/db/ip/nios_system/submodules/nios_system_onchip_memory.v new file mode 100644 index 0000000..685f015 --- /dev/null +++ b/db/ip/nios_system/submodules/nios_system_onchip_memory.v @@ -0,0 +1,85 @@ +//Legal Notice: (C)2016 Altera Corporation. All rights reserved. Your +//use of Altera Corporation's design tools, logic functions and other +//software and tools, and its AMPP partner logic functions, and any +//output files any of the foregoing (including device programming or +//simulation files), and any associated documentation or information are +//expressly subject to the terms and conditions of the Altera Program +//License Subscription Agreement or other applicable license agreement, +//including, without limitation, that your use is for the sole purpose +//of programming logic devices manufactured by Altera and sold by Altera +//or its authorized distributors. Please refer to the applicable +//agreement for further details. + +// synthesis translate_off +`timescale 1ns / 1ps +// synthesis translate_on + +// turn off superfluous verilog processor warnings +// altera message_level Level1 +// altera message_off 10034 10035 10036 10037 10230 10240 10030 + +module nios_system_onchip_memory ( + // inputs: + address, + byteenable, + chipselect, + clk, + clken, + reset, + reset_req, + write, + writedata, + + // outputs: + readdata + ) +; + + parameter INIT_FILE = "nios_system_onchip_memory.hex"; + + + output [ 31: 0] readdata; + input [ 15: 0] address; + input [ 3: 0] byteenable; + input chipselect; + input clk; + input clken; + input reset; + input reset_req; + input write; + input [ 31: 0] writedata; + + wire clocken0; + wire [ 31: 0] readdata; + wire wren; + assign wren = chipselect & write; + assign clocken0 = clken & ~reset_req; + altsyncram the_altsyncram + ( + .address_a (address), + .byteena_a (byteenable), + .clock0 (clk), + .clocken0 (clocken0), + .data_a (writedata), + .q_a (readdata), + .wren_a (wren) + ); + + defparam the_altsyncram.byte_size = 8, + the_altsyncram.init_file = INIT_FILE, + the_altsyncram.lpm_type = "altsyncram", + the_altsyncram.maximum_depth = 51200, + the_altsyncram.numwords_a = 51200, + the_altsyncram.operation_mode = "SINGLE_PORT", + the_altsyncram.outdata_reg_a = "UNREGISTERED", + the_altsyncram.ram_block_type = "AUTO", + the_altsyncram.read_during_write_mode_mixed_ports = "DONT_CARE", + the_altsyncram.width_a = 32, + the_altsyncram.width_byteena_a = 4, + the_altsyncram.widthad_a = 16; + + //s1, which is an e_avalon_slave + //s2, which is an e_avalon_slave + +endmodule + diff --git a/db/ip/nios_system/submodules/nios_system_pio_0.v b/db/ip/nios_system/submodules/nios_system_pio_0.v new file mode 100644 index 0000000..4f92a98 --- /dev/null +++ b/db/ip/nios_system/submodules/nios_system_pio_0.v @@ -0,0 +1,58 @@ +//Legal Notice: (C)2016 Altera Corporation. All rights reserved. Your +//use of Altera Corporation's design tools, logic functions and other +//software and tools, and its AMPP partner logic functions, and any +//output files any of the foregoing (including device programming or +//simulation files), and any associated documentation or information are +//expressly subject to the terms and conditions of the Altera Program +//License Subscription Agreement or other applicable license agreement, +//including, without limitation, that your use is for the sole purpose +//of programming logic devices manufactured by Altera and sold by Altera +//or its authorized distributors. Please refer to the applicable +//agreement for further details. + +// synthesis translate_off +`timescale 1ns / 1ps +// synthesis translate_on + +// turn off superfluous verilog processor warnings +// altera message_level Level1 +// altera message_off 10034 10035 10036 10037 10230 10240 10030 + +module nios_system_pio_0 ( + // inputs: + address, + clk, + in_port, + reset_n, + + // outputs: + readdata + ) +; + + output [ 31: 0] readdata; + input [ 1: 0] address; + input clk; + input [ 17: 0] in_port; + input reset_n; + + wire clk_en; + wire [ 17: 0] data_in; + wire [ 17: 0] read_mux_out; + reg [ 31: 0] readdata; + assign clk_en = 1; + //s1, which is an e_avalon_slave + assign read_mux_out = {18 {(address == 0)}} & data_in; + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + readdata <= 0; + else if (clk_en) + readdata <= {32'b0 | read_mux_out}; + end + + + assign data_in = in_port; + +endmodule + diff --git a/db/ip/nios_system/submodules/nios_system_push_switches.v b/db/ip/nios_system/submodules/nios_system_push_switches.v new file mode 100644 index 0000000..381d964 --- /dev/null +++ b/db/ip/nios_system/submodules/nios_system_push_switches.v @@ -0,0 +1,58 @@ +//Legal Notice: (C)2016 Altera Corporation. All rights reserved. Your +//use of Altera Corporation's design tools, logic functions and other +//software and tools, and its AMPP partner logic functions, and any +//output files any of the foregoing (including device programming or +//simulation files), and any associated documentation or information are +//expressly subject to the terms and conditions of the Altera Program +//License Subscription Agreement or other applicable license agreement, +//including, without limitation, that your use is for the sole purpose +//of programming logic devices manufactured by Altera and sold by Altera +//or its authorized distributors. Please refer to the applicable +//agreement for further details. + +// synthesis translate_off +`timescale 1ns / 1ps +// synthesis translate_on + +// turn off superfluous verilog processor warnings +// altera message_level Level1 +// altera message_off 10034 10035 10036 10037 10230 10240 10030 + +module nios_system_push_switches ( + // inputs: + address, + clk, + in_port, + reset_n, + + // outputs: + readdata + ) +; + + output [ 31: 0] readdata; + input [ 1: 0] address; + input clk; + input [ 2: 0] in_port; + input reset_n; + + wire clk_en; + wire [ 2: 0] data_in; + wire [ 2: 0] read_mux_out; + reg [ 31: 0] readdata; + assign clk_en = 1; + //s1, which is an e_avalon_slave + assign read_mux_out = {3 {(address == 0)}} & data_in; + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + readdata <= 0; + else if (clk_en) + readdata <= {32'b0 | read_mux_out}; + end + + + assign data_in = in_port; + +endmodule + diff --git a/db/ip/nios_system/submodules/nios_system_rsp_xbar_demux.sv b/db/ip/nios_system/submodules/nios_system_rsp_xbar_demux.sv new file mode 100644 index 0000000..f34687d --- /dev/null +++ b/db/ip/nios_system/submodules/nios_system_rsp_xbar_demux.sv @@ -0,0 +1,116 @@ +// (C) 2001-2013 Altera Corporation. All rights reserved. +// Your use of Altera Corporation's design tools, logic functions and other +// software and tools, and its AMPP partner logic functions, and any output +// files any of the foregoing (including device programming or simulation +// files), and any associated documentation or information are expressly subject +// to the terms and conditions of the Altera Program License Subscription +// Agreement, Altera MegaCore Function License Agreement, or other applicable +// license agreement, including, without limitation, that your use is for the +// sole purpose of programming logic devices manufactured by Altera and sold by +// Altera or its authorized distributors. Please refer to the applicable +// agreement for further details. + + +// $Id: //acds/rel/13.0sp1/ip/merlin/altera_merlin_demultiplexer/altera_merlin_demultiplexer.sv.terp#1 $ +// $Revision: #1 $ +// $Date: 2013/03/07 $ +// $Author: swbranch $ + +// ------------------------------------- +// Merlin Demultiplexer +// +// Asserts valid on the appropriate output +// given a one-hot channel signal. +// ------------------------------------- + +`timescale 1 ns / 1 ns + +// ------------------------------------------ +// Generation parameters: +// output_name: nios_system_rsp_xbar_demux +// ST_DATA_W: 96 +// ST_CHANNEL_W: 18 +// NUM_OUTPUTS: 2 +// VALID_WIDTH: 1 +// ------------------------------------------ + +//------------------------------------------ +// Message Supression Used +// QIS Warnings +// 15610 - Warning: Design contains x input pin(s) that do not drive logic +//------------------------------------------ + +module nios_system_rsp_xbar_demux +( + // ------------------- + // Sink + // ------------------- + input [1-1 : 0] sink_valid, + input [96-1 : 0] sink_data, // ST_DATA_W=96 + input [18-1 : 0] sink_channel, // ST_CHANNEL_W=18 + input sink_startofpacket, + input sink_endofpacket, + output sink_ready, + + // ------------------- + // Sources + // ------------------- + output reg src0_valid, + output reg [96-1 : 0] src0_data, // ST_DATA_W=96 + output reg [18-1 : 0] src0_channel, // ST_CHANNEL_W=18 + output reg src0_startofpacket, + output reg src0_endofpacket, + input src0_ready, + + output reg src1_valid, + output reg [96-1 : 0] src1_data, // ST_DATA_W=96 + output reg [18-1 : 0] src1_channel, // ST_CHANNEL_W=18 + output reg src1_startofpacket, + output reg src1_endofpacket, + input src1_ready, + + + // ------------------- + // Clock & Reset + // ------------------- + (*altera_attribute = "-name MESSAGE_DISABLE 15610" *) // setting message suppression on clk + input clk, + (*altera_attribute = "-name MESSAGE_DISABLE 15610" *) // setting message suppression on reset + input reset + +); + + localparam NUM_OUTPUTS = 2; + wire [NUM_OUTPUTS - 1 : 0] ready_vector; + + // ------------------- + // Demux + // ------------------- + always @* begin + src0_data = sink_data; + src0_startofpacket = sink_startofpacket; + src0_endofpacket = sink_endofpacket; + src0_channel = sink_channel >> NUM_OUTPUTS; + + src0_valid = sink_channel[0] && sink_valid; + + src1_data = sink_data; + src1_startofpacket = sink_startofpacket; + src1_endofpacket = sink_endofpacket; + src1_channel = sink_channel >> NUM_OUTPUTS; + + src1_valid = sink_channel[1] && sink_valid; + + end + + // ------------------- + // Backpressure + // ------------------- + assign ready_vector[0] = src0_ready; + assign ready_vector[1] = src1_ready; + + assign sink_ready = |(sink_channel & {{16{1'b0}},{ready_vector[NUM_OUTPUTS - 1 : 0]}}); + +endmodule + + diff --git a/db/ip/nios_system/submodules/nios_system_rsp_xbar_demux_002.sv b/db/ip/nios_system/submodules/nios_system_rsp_xbar_demux_002.sv new file mode 100644 index 0000000..d81d1d6 --- /dev/null +++ b/db/ip/nios_system/submodules/nios_system_rsp_xbar_demux_002.sv @@ -0,0 +1,101 @@ +// (C) 2001-2013 Altera Corporation. All rights reserved. +// Your use of Altera Corporation's design tools, logic functions and other +// software and tools, and its AMPP partner logic functions, and any output +// files any of the foregoing (including device programming or simulation +// files), and any associated documentation or information are expressly subject +// to the terms and conditions of the Altera Program License Subscription +// Agreement, Altera MegaCore Function License Agreement, or other applicable +// license agreement, including, without limitation, that your use is for the +// sole purpose of programming logic devices manufactured by Altera and sold by +// Altera or its authorized distributors. Please refer to the applicable +// agreement for further details. + + +// $Id: //acds/rel/13.0sp1/ip/merlin/altera_merlin_demultiplexer/altera_merlin_demultiplexer.sv.terp#1 $ +// $Revision: #1 $ +// $Date: 2013/03/07 $ +// $Author: swbranch $ + +// ------------------------------------- +// Merlin Demultiplexer +// +// Asserts valid on the appropriate output +// given a one-hot channel signal. +// ------------------------------------- + +`timescale 1 ns / 1 ns + +// ------------------------------------------ +// Generation parameters: +// output_name: nios_system_rsp_xbar_demux_002 +// ST_DATA_W: 96 +// ST_CHANNEL_W: 18 +// NUM_OUTPUTS: 1 +// VALID_WIDTH: 1 +// ------------------------------------------ + +//------------------------------------------ +// Message Supression Used +// QIS Warnings +// 15610 - Warning: Design contains x input pin(s) that do not drive logic +//------------------------------------------ + +module nios_system_rsp_xbar_demux_002 +( + // ------------------- + // Sink + // ------------------- + input [1-1 : 0] sink_valid, + input [96-1 : 0] sink_data, // ST_DATA_W=96 + input [18-1 : 0] sink_channel, // ST_CHANNEL_W=18 + input sink_startofpacket, + input sink_endofpacket, + output sink_ready, + + // ------------------- + // Sources + // ------------------- + output reg src0_valid, + output reg [96-1 : 0] src0_data, // ST_DATA_W=96 + output reg [18-1 : 0] src0_channel, // ST_CHANNEL_W=18 + output reg src0_startofpacket, + output reg src0_endofpacket, + input src0_ready, + + + // ------------------- + // Clock & Reset + // ------------------- + (*altera_attribute = "-name MESSAGE_DISABLE 15610" *) // setting message suppression on clk + input clk, + (*altera_attribute = "-name MESSAGE_DISABLE 15610" *) // setting message suppression on reset + input reset + +); + + localparam NUM_OUTPUTS = 1; + wire [NUM_OUTPUTS - 1 : 0] ready_vector; + + // ------------------- + // Demux + // ------------------- + always @* begin + src0_data = sink_data; + src0_startofpacket = sink_startofpacket; + src0_endofpacket = sink_endofpacket; + src0_channel = sink_channel >> NUM_OUTPUTS; + + src0_valid = sink_channel[0] && sink_valid; + + end + + // ------------------- + // Backpressure + // ------------------- + assign ready_vector[0] = src0_ready; + + assign sink_ready = |(sink_channel & {{17{1'b0}},{ready_vector[NUM_OUTPUTS - 1 : 0]}}); + +endmodule + + diff --git a/db/ip/nios_system/submodules/nios_system_rsp_xbar_demux_003.sv b/db/ip/nios_system/submodules/nios_system_rsp_xbar_demux_003.sv new file mode 100644 index 0000000..a362586 --- /dev/null +++ b/db/ip/nios_system/submodules/nios_system_rsp_xbar_demux_003.sv @@ -0,0 +1,101 @@ +// (C) 2001-2013 Altera Corporation. All rights reserved. +// Your use of Altera Corporation's design tools, logic functions and other +// software and tools, and its AMPP partner logic functions, and any output +// files any of the foregoing (including device programming or simulation +// files), and any associated documentation or information are expressly subject +// to the terms and conditions of the Altera Program License Subscription +// Agreement, Altera MegaCore Function License Agreement, or other applicable +// license agreement, including, without limitation, that your use is for the +// sole purpose of programming logic devices manufactured by Altera and sold by +// Altera or its authorized distributors. Please refer to the applicable +// agreement for further details. + + +// $Id: //acds/rel/13.0sp1/ip/merlin/altera_merlin_demultiplexer/altera_merlin_demultiplexer.sv.terp#1 $ +// $Revision: #1 $ +// $Date: 2013/03/07 $ +// $Author: swbranch $ + +// ------------------------------------- +// Merlin Demultiplexer +// +// Asserts valid on the appropriate output +// given a one-hot channel signal. +// ------------------------------------- + +`timescale 1 ns / 1 ns + +// ------------------------------------------ +// Generation parameters: +// output_name: nios_system_rsp_xbar_demux_003 +// ST_DATA_W: 96 +// ST_CHANNEL_W: 18 +// NUM_OUTPUTS: 1 +// VALID_WIDTH: 1 +// ------------------------------------------ + +//------------------------------------------ +// Message Supression Used +// QIS Warnings +// 15610 - Warning: Design contains x input pin(s) that do not drive logic +//------------------------------------------ + +module nios_system_rsp_xbar_demux_003 +( + // ------------------- + // Sink + // ------------------- + input [1-1 : 0] sink_valid, + input [96-1 : 0] sink_data, // ST_DATA_W=96 + input [18-1 : 0] sink_channel, // ST_CHANNEL_W=18 + input sink_startofpacket, + input sink_endofpacket, + output sink_ready, + + // ------------------- + // Sources + // ------------------- + output reg src0_valid, + output reg [96-1 : 0] src0_data, // ST_DATA_W=96 + output reg [18-1 : 0] src0_channel, // ST_CHANNEL_W=18 + output reg src0_startofpacket, + output reg src0_endofpacket, + input src0_ready, + + + // ------------------- + // Clock & Reset + // ------------------- + (*altera_attribute = "-name MESSAGE_DISABLE 15610" *) // setting message suppression on clk + input clk, + (*altera_attribute = "-name MESSAGE_DISABLE 15610" *) // setting message suppression on reset + input reset + +); + + localparam NUM_OUTPUTS = 1; + wire [NUM_OUTPUTS - 1 : 0] ready_vector; + + // ------------------- + // Demux + // ------------------- + always @* begin + src0_data = sink_data; + src0_startofpacket = sink_startofpacket; + src0_endofpacket = sink_endofpacket; + src0_channel = sink_channel >> NUM_OUTPUTS; + + src0_valid = sink_channel[0] && sink_valid; + + end + + // ------------------- + // Backpressure + // ------------------- + assign ready_vector[0] = src0_ready; + + assign sink_ready = |(sink_channel & {{17{1'b0}},{ready_vector[NUM_OUTPUTS - 1 : 0]}}); + +endmodule + + diff --git a/db/ip/nios_system/submodules/nios_system_rsp_xbar_mux.sv b/db/ip/nios_system/submodules/nios_system_rsp_xbar_mux.sv new file mode 100644 index 0000000..a829592 --- /dev/null +++ b/db/ip/nios_system/submodules/nios_system_rsp_xbar_mux.sv @@ -0,0 +1,331 @@ +// (C) 2001-2013 Altera Corporation. All rights reserved. +// Your use of Altera Corporation's design tools, logic functions and other +// software and tools, and its AMPP partner logic functions, and any output +// files any of the foregoing (including device programming or simulation +// files), and any associated documentation or information are expressly subject +// to the terms and conditions of the Altera Program License Subscription +// Agreement, Altera MegaCore Function License Agreement, or other applicable +// license agreement, including, without limitation, that your use is for the +// sole purpose of programming logic devices manufactured by Altera and sold by +// Altera or its authorized distributors. Please refer to the applicable +// agreement for further details. + + +// $Id: //acds/rel/13.0sp1/ip/merlin/altera_merlin_multiplexer/altera_merlin_multiplexer.sv.terp#1 $ +// $Revision: #1 $ +// $Date: 2013/03/07 $ +// $Author: swbranch $ + +// ------------------------------------------ +// Merlin Multiplexer +// ------------------------------------------ + +`timescale 1 ns / 1 ns + + +// ------------------------------------------ +// Generation parameters: +// output_name: nios_system_rsp_xbar_mux +// NUM_INPUTS: 2 +// ARBITRATION_SHARES: 1 1 +// ARBITRATION_SCHEME "no-arb" +// PIPELINE_ARB: 0 +// PKT_TRANS_LOCK: 59 (arbitration locking enabled) +// ST_DATA_W: 96 +// ST_CHANNEL_W: 18 +// ------------------------------------------ + +module nios_system_rsp_xbar_mux +( + // ---------------------- + // Sinks + // ---------------------- + input sink0_valid, + input [96-1 : 0] sink0_data, + input [18-1: 0] sink0_channel, + input sink0_startofpacket, + input sink0_endofpacket, + output sink0_ready, + + input sink1_valid, + input [96-1 : 0] sink1_data, + input [18-1: 0] sink1_channel, + input sink1_startofpacket, + input sink1_endofpacket, + output sink1_ready, + + + // ---------------------- + // Source + // ---------------------- + output src_valid, + output [96-1 : 0] src_data, + output [18-1 : 0] src_channel, + output src_startofpacket, + output src_endofpacket, + input src_ready, + + // ---------------------- + // Clock & Reset + // ---------------------- + input clk, + input reset +); + localparam PAYLOAD_W = 96 + 18 + 2; + localparam NUM_INPUTS = 2; + localparam SHARE_COUNTER_W = 1; + localparam PIPELINE_ARB = 0; + localparam ST_DATA_W = 96; + localparam ST_CHANNEL_W = 18; + localparam PKT_TRANS_LOCK = 59; + + // ------------------------------------------ + // Signals + // ------------------------------------------ + wire [NUM_INPUTS - 1 : 0] request; + wire [NUM_INPUTS - 1 : 0] valid; + wire [NUM_INPUTS - 1 : 0] grant; + wire [NUM_INPUTS - 1 : 0] next_grant; + reg [NUM_INPUTS - 1 : 0] saved_grant; + reg [PAYLOAD_W - 1 : 0] src_payload; + wire last_cycle; + reg packet_in_progress; + reg update_grant; + + wire [PAYLOAD_W - 1 : 0] sink0_payload; + wire [PAYLOAD_W - 1 : 0] sink1_payload; + + assign valid[0] = sink0_valid; + assign valid[1] = sink1_valid; + + + // ------------------------------------------ + // ------------------------------------------ + // Grant Logic & Updates + // ------------------------------------------ + // ------------------------------------------ + reg [NUM_INPUTS - 1 : 0] lock; + always @* begin + lock[0] = sink0_data[59]; + lock[1] = sink1_data[59]; + end + + assign last_cycle = src_valid & src_ready & src_endofpacket & ~(|(lock & grant)); + + // ------------------------------------------ + // We're working on a packet at any time valid is high, except + // when this is the endofpacket. + // ------------------------------------------ + always @(posedge clk or posedge reset) begin + if (reset) begin + packet_in_progress <= 1'b0; + end + else begin + if (src_valid) + packet_in_progress <= 1'b1; + if (last_cycle) + packet_in_progress <= 1'b0; + end + end + + + // ------------------------------------------ + // Shares + // + // Special case: all-equal shares _should_ be optimized into assigning a + // constant to next_grant_share. + // Special case: all-1's shares _should_ result in the share counter + // being optimized away. + // ------------------------------------------ + // Input | arb shares | counter load value + // 0 | 1 | 0 + // 1 | 1 | 0 + wire [SHARE_COUNTER_W - 1 : 0] share_0 = 1'd0; + wire [SHARE_COUNTER_W - 1 : 0] share_1 = 1'd0; + + // ------------------------------------------ + // Choose the share value corresponding to the grant. + // ------------------------------------------ + reg [SHARE_COUNTER_W - 1 : 0] next_grant_share; + always @* begin + next_grant_share = + share_0 & { SHARE_COUNTER_W {next_grant[0]} } | + share_1 & { SHARE_COUNTER_W {next_grant[1]} }; + end + + // ------------------------------------------ + // Flag to indicate first packet of an arb sequence. + // ------------------------------------------ + wire grant_changed = ~packet_in_progress && !(saved_grant & valid); + reg first_packet_r; + wire first_packet = grant_changed | first_packet_r; + always @(posedge clk or posedge reset) begin + if (reset) begin + first_packet_r <= 1'b0; + end + else begin + if (update_grant) + first_packet_r <= 1'b1; + else if (last_cycle) + first_packet_r <= 1'b0; + else if (grant_changed) + first_packet_r <= 1'b1; + end + end + + // ------------------------------------------ + // Compute the next share-count value. + // ------------------------------------------ + reg [SHARE_COUNTER_W - 1 : 0] p1_share_count; + reg [SHARE_COUNTER_W - 1 : 0] share_count; + reg share_count_zero_flag; + + always @* begin + if (first_packet) begin + p1_share_count = next_grant_share; + end + else begin + // Update the counter, but don't decrement below 0. + p1_share_count = share_count_zero_flag ? '0 : share_count - 1'b1; + end + end + + // ------------------------------------------ + // Update the share counter and share-counter=zero flag. + // ------------------------------------------ + always @(posedge clk or posedge reset) begin + if (reset) begin + share_count <= '0; + share_count_zero_flag <= 1'b1; + end + else begin + if (last_cycle) begin + share_count <= p1_share_count; + share_count_zero_flag <= (p1_share_count == '0); + end + end + end + + // ------------------------------------------ + // For each input, maintain a final_packet signal which goes active for the + // last packet of a full-share packet sequence. Example: if I have 4 + // shares and I'm continuously requesting, final_packet is active in the + // 4th packet. + // ------------------------------------------ + wire final_packet_0 = 1'b1; + + wire final_packet_1 = 1'b1; + + + // ------------------------------------------ + // Concatenate all final_packet signals (wire or reg) into a handy vector. + // ------------------------------------------ + wire [NUM_INPUTS - 1 : 0] final_packet = { + final_packet_1, + final_packet_0 + }; + + // ------------------------------------------ + // ------------------------------------------ + wire p1_done = |(final_packet & grant); + + // ------------------------------------------ + // Flag for the first cycle of packets within an + // arb sequence + // ------------------------------------------ + reg first_cycle; + always @(posedge clk, posedge reset) begin + if (reset) + first_cycle <= 0; + else + first_cycle <= last_cycle && ~p1_done; + end + + + always @* begin + update_grant = 0; + + // ------------------------------------------ + // No arbitration pipeline, update grant whenever + // the current arb winner has consumed all shares, + // or all requests are low + // ------------------------------------------ + update_grant = (last_cycle && p1_done) || (first_cycle && !valid); + update_grant = last_cycle; + end + + wire save_grant; + assign save_grant = 1; + assign grant = next_grant; + + always @(posedge clk, posedge reset) begin + if (reset) + saved_grant <= '0; + else if (save_grant) + saved_grant <= next_grant; + end + + // ------------------------------------------ + // ------------------------------------------ + // Arbitrator + // ------------------------------------------ + // ------------------------------------------ + + // ------------------------------------------ + // Create a request vector that stays high during + // the packet for unpipelined arbitration. + // + // The pipelined arbitration scheme does not require + // request to be held high during the packet. + // ------------------------------------------ + assign request = valid; + + + altera_merlin_arbitrator + #( + .NUM_REQUESTERS(NUM_INPUTS), + .SCHEME ("no-arb"), + .PIPELINE (0) + ) arb ( + .clk (clk), + .reset (reset), + .request (request), + .grant (next_grant), + .save_top_priority (src_valid), + .increment_top_priority (update_grant) + ); + + // ------------------------------------------ + // ------------------------------------------ + // Mux + // + // Implemented as a sum of products. + // ------------------------------------------ + // ------------------------------------------ + + assign sink0_ready = src_ready && grant[0]; + assign sink1_ready = src_ready && grant[1]; + + assign src_valid = |(grant & valid); + + always @* begin + src_payload = + sink0_payload & {PAYLOAD_W {grant[0]} } | + sink1_payload & {PAYLOAD_W {grant[1]} }; + end + + // ------------------------------------------ + // Mux Payload Mapping + // ------------------------------------------ + + assign sink0_payload = {sink0_channel,sink0_data, + sink0_startofpacket,sink0_endofpacket}; + assign sink1_payload = {sink1_channel,sink1_data, + sink1_startofpacket,sink1_endofpacket}; + + assign {src_channel,src_data,src_startofpacket,src_endofpacket} = src_payload; + +endmodule + + + diff --git a/db/ip/nios_system/submodules/nios_system_rsp_xbar_mux_001.sv b/db/ip/nios_system/submodules/nios_system_rsp_xbar_mux_001.sv new file mode 100644 index 0000000..ab346d9 --- /dev/null +++ b/db/ip/nios_system/submodules/nios_system_rsp_xbar_mux_001.sv @@ -0,0 +1,651 @@ +// (C) 2001-2013 Altera Corporation. All rights reserved. +// Your use of Altera Corporation's design tools, logic functions and other +// software and tools, and its AMPP partner logic functions, and any output +// files any of the foregoing (including device programming or simulation +// files), and any associated documentation or information are expressly subject +// to the terms and conditions of the Altera Program License Subscription +// Agreement, Altera MegaCore Function License Agreement, or other applicable +// license agreement, including, without limitation, that your use is for the +// sole purpose of programming logic devices manufactured by Altera and sold by +// Altera or its authorized distributors. Please refer to the applicable +// agreement for further details. + + +// $Id: //acds/rel/13.0sp1/ip/merlin/altera_merlin_multiplexer/altera_merlin_multiplexer.sv.terp#1 $ +// $Revision: #1 $ +// $Date: 2013/03/07 $ +// $Author: swbranch $ + +// ------------------------------------------ +// Merlin Multiplexer +// ------------------------------------------ + +`timescale 1 ns / 1 ns + + +// ------------------------------------------ +// Generation parameters: +// output_name: nios_system_rsp_xbar_mux_001 +// NUM_INPUTS: 18 +// ARBITRATION_SHARES: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +// ARBITRATION_SCHEME "no-arb" +// PIPELINE_ARB: 0 +// PKT_TRANS_LOCK: 59 (arbitration locking enabled) +// ST_DATA_W: 96 +// ST_CHANNEL_W: 18 +// ------------------------------------------ + +module nios_system_rsp_xbar_mux_001 +( + // ---------------------- + // Sinks + // ---------------------- + input sink0_valid, + input [96-1 : 0] sink0_data, + input [18-1: 0] sink0_channel, + input sink0_startofpacket, + input sink0_endofpacket, + output sink0_ready, + + input sink1_valid, + input [96-1 : 0] sink1_data, + input [18-1: 0] sink1_channel, + input sink1_startofpacket, + input sink1_endofpacket, + output sink1_ready, + + input sink2_valid, + input [96-1 : 0] sink2_data, + input [18-1: 0] sink2_channel, + input sink2_startofpacket, + input sink2_endofpacket, + output sink2_ready, + + input sink3_valid, + input [96-1 : 0] sink3_data, + input [18-1: 0] sink3_channel, + input sink3_startofpacket, + input sink3_endofpacket, + output sink3_ready, + + input sink4_valid, + input [96-1 : 0] sink4_data, + input [18-1: 0] sink4_channel, + input sink4_startofpacket, + input sink4_endofpacket, + output sink4_ready, + + input sink5_valid, + input [96-1 : 0] sink5_data, + input [18-1: 0] sink5_channel, + input sink5_startofpacket, + input sink5_endofpacket, + output sink5_ready, + + input sink6_valid, + input [96-1 : 0] sink6_data, + input [18-1: 0] sink6_channel, + input sink6_startofpacket, + input sink6_endofpacket, + output sink6_ready, + + input sink7_valid, + input [96-1 : 0] sink7_data, + input [18-1: 0] sink7_channel, + input sink7_startofpacket, + input sink7_endofpacket, + output sink7_ready, + + input sink8_valid, + input [96-1 : 0] sink8_data, + input [18-1: 0] sink8_channel, + input sink8_startofpacket, + input sink8_endofpacket, + output sink8_ready, + + input sink9_valid, + input [96-1 : 0] sink9_data, + input [18-1: 0] sink9_channel, + input sink9_startofpacket, + input sink9_endofpacket, + output sink9_ready, + + input sink10_valid, + input [96-1 : 0] sink10_data, + input [18-1: 0] sink10_channel, + input sink10_startofpacket, + input sink10_endofpacket, + output sink10_ready, + + input sink11_valid, + input [96-1 : 0] sink11_data, + input [18-1: 0] sink11_channel, + input sink11_startofpacket, + input sink11_endofpacket, + output sink11_ready, + + input sink12_valid, + input [96-1 : 0] sink12_data, + input [18-1: 0] sink12_channel, + input sink12_startofpacket, + input sink12_endofpacket, + output sink12_ready, + + input sink13_valid, + input [96-1 : 0] sink13_data, + input [18-1: 0] sink13_channel, + input sink13_startofpacket, + input sink13_endofpacket, + output sink13_ready, + + input sink14_valid, + input [96-1 : 0] sink14_data, + input [18-1: 0] sink14_channel, + input sink14_startofpacket, + input sink14_endofpacket, + output sink14_ready, + + input sink15_valid, + input [96-1 : 0] sink15_data, + input [18-1: 0] sink15_channel, + input sink15_startofpacket, + input sink15_endofpacket, + output sink15_ready, + + input sink16_valid, + input [96-1 : 0] sink16_data, + input [18-1: 0] sink16_channel, + input sink16_startofpacket, + input sink16_endofpacket, + output sink16_ready, + + input sink17_valid, + input [96-1 : 0] sink17_data, + input [18-1: 0] sink17_channel, + input sink17_startofpacket, + input sink17_endofpacket, + output sink17_ready, + + + // ---------------------- + // Source + // ---------------------- + output src_valid, + output [96-1 : 0] src_data, + output [18-1 : 0] src_channel, + output src_startofpacket, + output src_endofpacket, + input src_ready, + + // ---------------------- + // Clock & Reset + // ---------------------- + input clk, + input reset +); + localparam PAYLOAD_W = 96 + 18 + 2; + localparam NUM_INPUTS = 18; + localparam SHARE_COUNTER_W = 1; + localparam PIPELINE_ARB = 0; + localparam ST_DATA_W = 96; + localparam ST_CHANNEL_W = 18; + localparam PKT_TRANS_LOCK = 59; + + // ------------------------------------------ + // Signals + // ------------------------------------------ + wire [NUM_INPUTS - 1 : 0] request; + wire [NUM_INPUTS - 1 : 0] valid; + wire [NUM_INPUTS - 1 : 0] grant; + wire [NUM_INPUTS - 1 : 0] next_grant; + reg [NUM_INPUTS - 1 : 0] saved_grant; + reg [PAYLOAD_W - 1 : 0] src_payload; + wire last_cycle; + reg packet_in_progress; + reg update_grant; + + wire [PAYLOAD_W - 1 : 0] sink0_payload; + wire [PAYLOAD_W - 1 : 0] sink1_payload; + wire [PAYLOAD_W - 1 : 0] sink2_payload; + wire [PAYLOAD_W - 1 : 0] sink3_payload; + wire [PAYLOAD_W - 1 : 0] sink4_payload; + wire [PAYLOAD_W - 1 : 0] sink5_payload; + wire [PAYLOAD_W - 1 : 0] sink6_payload; + wire [PAYLOAD_W - 1 : 0] sink7_payload; + wire [PAYLOAD_W - 1 : 0] sink8_payload; + wire [PAYLOAD_W - 1 : 0] sink9_payload; + wire [PAYLOAD_W - 1 : 0] sink10_payload; + wire [PAYLOAD_W - 1 : 0] sink11_payload; + wire [PAYLOAD_W - 1 : 0] sink12_payload; + wire [PAYLOAD_W - 1 : 0] sink13_payload; + wire [PAYLOAD_W - 1 : 0] sink14_payload; + wire [PAYLOAD_W - 1 : 0] sink15_payload; + wire [PAYLOAD_W - 1 : 0] sink16_payload; + wire [PAYLOAD_W - 1 : 0] sink17_payload; + + assign valid[0] = sink0_valid; + assign valid[1] = sink1_valid; + assign valid[2] = sink2_valid; + assign valid[3] = sink3_valid; + assign valid[4] = sink4_valid; + assign valid[5] = sink5_valid; + assign valid[6] = sink6_valid; + assign valid[7] = sink7_valid; + assign valid[8] = sink8_valid; + assign valid[9] = sink9_valid; + assign valid[10] = sink10_valid; + assign valid[11] = sink11_valid; + assign valid[12] = sink12_valid; + assign valid[13] = sink13_valid; + assign valid[14] = sink14_valid; + assign valid[15] = sink15_valid; + assign valid[16] = sink16_valid; + assign valid[17] = sink17_valid; + + + // ------------------------------------------ + // ------------------------------------------ + // Grant Logic & Updates + // ------------------------------------------ + // ------------------------------------------ + reg [NUM_INPUTS - 1 : 0] lock; + always @* begin + lock[0] = sink0_data[59]; + lock[1] = sink1_data[59]; + lock[2] = sink2_data[59]; + lock[3] = sink3_data[59]; + lock[4] = sink4_data[59]; + lock[5] = sink5_data[59]; + lock[6] = sink6_data[59]; + lock[7] = sink7_data[59]; + lock[8] = sink8_data[59]; + lock[9] = sink9_data[59]; + lock[10] = sink10_data[59]; + lock[11] = sink11_data[59]; + lock[12] = sink12_data[59]; + lock[13] = sink13_data[59]; + lock[14] = sink14_data[59]; + lock[15] = sink15_data[59]; + lock[16] = sink16_data[59]; + lock[17] = sink17_data[59]; + end + + assign last_cycle = src_valid & src_ready & src_endofpacket & ~(|(lock & grant)); + + // ------------------------------------------ + // We're working on a packet at any time valid is high, except + // when this is the endofpacket. + // ------------------------------------------ + always @(posedge clk or posedge reset) begin + if (reset) begin + packet_in_progress <= 1'b0; + end + else begin + if (src_valid) + packet_in_progress <= 1'b1; + if (last_cycle) + packet_in_progress <= 1'b0; + end + end + + + // ------------------------------------------ + // Shares + // + // Special case: all-equal shares _should_ be optimized into assigning a + // constant to next_grant_share. + // Special case: all-1's shares _should_ result in the share counter + // being optimized away. + // ------------------------------------------ + // Input | arb shares | counter load value + // 0 | 1 | 0 + // 1 | 1 | 0 + // 2 | 1 | 0 + // 3 | 1 | 0 + // 4 | 1 | 0 + // 5 | 1 | 0 + // 6 | 1 | 0 + // 7 | 1 | 0 + // 8 | 1 | 0 + // 9 | 1 | 0 + // 10 | 1 | 0 + // 11 | 1 | 0 + // 12 | 1 | 0 + // 13 | 1 | 0 + // 14 | 1 | 0 + // 15 | 1 | 0 + // 16 | 1 | 0 + // 17 | 1 | 0 + wire [SHARE_COUNTER_W - 1 : 0] share_0 = 1'd0; + wire [SHARE_COUNTER_W - 1 : 0] share_1 = 1'd0; + wire [SHARE_COUNTER_W - 1 : 0] share_2 = 1'd0; + wire [SHARE_COUNTER_W - 1 : 0] share_3 = 1'd0; + wire [SHARE_COUNTER_W - 1 : 0] share_4 = 1'd0; + wire [SHARE_COUNTER_W - 1 : 0] share_5 = 1'd0; + wire [SHARE_COUNTER_W - 1 : 0] share_6 = 1'd0; + wire [SHARE_COUNTER_W - 1 : 0] share_7 = 1'd0; + wire [SHARE_COUNTER_W - 1 : 0] share_8 = 1'd0; + wire [SHARE_COUNTER_W - 1 : 0] share_9 = 1'd0; + wire [SHARE_COUNTER_W - 1 : 0] share_10 = 1'd0; + wire [SHARE_COUNTER_W - 1 : 0] share_11 = 1'd0; + wire [SHARE_COUNTER_W - 1 : 0] share_12 = 1'd0; + wire [SHARE_COUNTER_W - 1 : 0] share_13 = 1'd0; + wire [SHARE_COUNTER_W - 1 : 0] share_14 = 1'd0; + wire [SHARE_COUNTER_W - 1 : 0] share_15 = 1'd0; + wire [SHARE_COUNTER_W - 1 : 0] share_16 = 1'd0; + wire [SHARE_COUNTER_W - 1 : 0] share_17 = 1'd0; + + // ------------------------------------------ + // Choose the share value corresponding to the grant. + // ------------------------------------------ + reg [SHARE_COUNTER_W - 1 : 0] next_grant_share; + always @* begin + next_grant_share = + share_0 & { SHARE_COUNTER_W {next_grant[0]} } | + share_1 & { SHARE_COUNTER_W {next_grant[1]} } | + share_2 & { SHARE_COUNTER_W {next_grant[2]} } | + share_3 & { SHARE_COUNTER_W {next_grant[3]} } | + share_4 & { SHARE_COUNTER_W {next_grant[4]} } | + share_5 & { SHARE_COUNTER_W {next_grant[5]} } | + share_6 & { SHARE_COUNTER_W {next_grant[6]} } | + share_7 & { SHARE_COUNTER_W {next_grant[7]} } | + share_8 & { SHARE_COUNTER_W {next_grant[8]} } | + share_9 & { SHARE_COUNTER_W {next_grant[9]} } | + share_10 & { SHARE_COUNTER_W {next_grant[10]} } | + share_11 & { SHARE_COUNTER_W {next_grant[11]} } | + share_12 & { SHARE_COUNTER_W {next_grant[12]} } | + share_13 & { SHARE_COUNTER_W {next_grant[13]} } | + share_14 & { SHARE_COUNTER_W {next_grant[14]} } | + share_15 & { SHARE_COUNTER_W {next_grant[15]} } | + share_16 & { SHARE_COUNTER_W {next_grant[16]} } | + share_17 & { SHARE_COUNTER_W {next_grant[17]} }; + end + + // ------------------------------------------ + // Flag to indicate first packet of an arb sequence. + // ------------------------------------------ + wire grant_changed = ~packet_in_progress && !(saved_grant & valid); + reg first_packet_r; + wire first_packet = grant_changed | first_packet_r; + always @(posedge clk or posedge reset) begin + if (reset) begin + first_packet_r <= 1'b0; + end + else begin + if (update_grant) + first_packet_r <= 1'b1; + else if (last_cycle) + first_packet_r <= 1'b0; + else if (grant_changed) + first_packet_r <= 1'b1; + end + end + + // ------------------------------------------ + // Compute the next share-count value. + // ------------------------------------------ + reg [SHARE_COUNTER_W - 1 : 0] p1_share_count; + reg [SHARE_COUNTER_W - 1 : 0] share_count; + reg share_count_zero_flag; + + always @* begin + if (first_packet) begin + p1_share_count = next_grant_share; + end + else begin + // Update the counter, but don't decrement below 0. + p1_share_count = share_count_zero_flag ? '0 : share_count - 1'b1; + end + end + + // ------------------------------------------ + // Update the share counter and share-counter=zero flag. + // ------------------------------------------ + always @(posedge clk or posedge reset) begin + if (reset) begin + share_count <= '0; + share_count_zero_flag <= 1'b1; + end + else begin + if (last_cycle) begin + share_count <= p1_share_count; + share_count_zero_flag <= (p1_share_count == '0); + end + end + end + + // ------------------------------------------ + // For each input, maintain a final_packet signal which goes active for the + // last packet of a full-share packet sequence. Example: if I have 4 + // shares and I'm continuously requesting, final_packet is active in the + // 4th packet. + // ------------------------------------------ + wire final_packet_0 = 1'b1; + + wire final_packet_1 = 1'b1; + + wire final_packet_2 = 1'b1; + + wire final_packet_3 = 1'b1; + + wire final_packet_4 = 1'b1; + + wire final_packet_5 = 1'b1; + + wire final_packet_6 = 1'b1; + + wire final_packet_7 = 1'b1; + + wire final_packet_8 = 1'b1; + + wire final_packet_9 = 1'b1; + + wire final_packet_10 = 1'b1; + + wire final_packet_11 = 1'b1; + + wire final_packet_12 = 1'b1; + + wire final_packet_13 = 1'b1; + + wire final_packet_14 = 1'b1; + + wire final_packet_15 = 1'b1; + + wire final_packet_16 = 1'b1; + + wire final_packet_17 = 1'b1; + + + // ------------------------------------------ + // Concatenate all final_packet signals (wire or reg) into a handy vector. + // ------------------------------------------ + wire [NUM_INPUTS - 1 : 0] final_packet = { + final_packet_17, + final_packet_16, + final_packet_15, + final_packet_14, + final_packet_13, + final_packet_12, + final_packet_11, + final_packet_10, + final_packet_9, + final_packet_8, + final_packet_7, + final_packet_6, + final_packet_5, + final_packet_4, + final_packet_3, + final_packet_2, + final_packet_1, + final_packet_0 + }; + + // ------------------------------------------ + // ------------------------------------------ + wire p1_done = |(final_packet & grant); + + // ------------------------------------------ + // Flag for the first cycle of packets within an + // arb sequence + // ------------------------------------------ + reg first_cycle; + always @(posedge clk, posedge reset) begin + if (reset) + first_cycle <= 0; + else + first_cycle <= last_cycle && ~p1_done; + end + + + always @* begin + update_grant = 0; + + // ------------------------------------------ + // No arbitration pipeline, update grant whenever + // the current arb winner has consumed all shares, + // or all requests are low + // ------------------------------------------ + update_grant = (last_cycle && p1_done) || (first_cycle && !valid); + update_grant = last_cycle; + end + + wire save_grant; + assign save_grant = 1; + assign grant = next_grant; + + always @(posedge clk, posedge reset) begin + if (reset) + saved_grant <= '0; + else if (save_grant) + saved_grant <= next_grant; + end + + // ------------------------------------------ + // ------------------------------------------ + // Arbitrator + // ------------------------------------------ + // ------------------------------------------ + + // ------------------------------------------ + // Create a request vector that stays high during + // the packet for unpipelined arbitration. + // + // The pipelined arbitration scheme does not require + // request to be held high during the packet. + // ------------------------------------------ + assign request = valid; + + + altera_merlin_arbitrator + #( + .NUM_REQUESTERS(NUM_INPUTS), + .SCHEME ("no-arb"), + .PIPELINE (0) + ) arb ( + .clk (clk), + .reset (reset), + .request (request), + .grant (next_grant), + .save_top_priority (src_valid), + .increment_top_priority (update_grant) + ); + + // ------------------------------------------ + // ------------------------------------------ + // Mux + // + // Implemented as a sum of products. + // ------------------------------------------ + // ------------------------------------------ + + assign sink0_ready = src_ready && grant[0]; + assign sink1_ready = src_ready && grant[1]; + assign sink2_ready = src_ready && grant[2]; + assign sink3_ready = src_ready && grant[3]; + assign sink4_ready = src_ready && grant[4]; + assign sink5_ready = src_ready && grant[5]; + assign sink6_ready = src_ready && grant[6]; + assign sink7_ready = src_ready && grant[7]; + assign sink8_ready = src_ready && grant[8]; + assign sink9_ready = src_ready && grant[9]; + assign sink10_ready = src_ready && grant[10]; + assign sink11_ready = src_ready && grant[11]; + assign sink12_ready = src_ready && grant[12]; + assign sink13_ready = src_ready && grant[13]; + assign sink14_ready = src_ready && grant[14]; + assign sink15_ready = src_ready && grant[15]; + assign sink16_ready = src_ready && grant[16]; + assign sink17_ready = src_ready && grant[17]; + + assign src_valid = |(grant & valid); + + always @* begin + src_payload = + sink0_payload & {PAYLOAD_W {grant[0]} } | + sink1_payload & {PAYLOAD_W {grant[1]} } | + sink2_payload & {PAYLOAD_W {grant[2]} } | + sink3_payload & {PAYLOAD_W {grant[3]} } | + sink4_payload & {PAYLOAD_W {grant[4]} } | + sink5_payload & {PAYLOAD_W {grant[5]} } | + sink6_payload & {PAYLOAD_W {grant[6]} } | + sink7_payload & {PAYLOAD_W {grant[7]} } | + sink8_payload & {PAYLOAD_W {grant[8]} } | + sink9_payload & {PAYLOAD_W {grant[9]} } | + sink10_payload & {PAYLOAD_W {grant[10]} } | + sink11_payload & {PAYLOAD_W {grant[11]} } | + sink12_payload & {PAYLOAD_W {grant[12]} } | + sink13_payload & {PAYLOAD_W {grant[13]} } | + sink14_payload & {PAYLOAD_W {grant[14]} } | + sink15_payload & {PAYLOAD_W {grant[15]} } | + sink16_payload & {PAYLOAD_W {grant[16]} } | + sink17_payload & {PAYLOAD_W {grant[17]} }; + end + + // ------------------------------------------ + // Mux Payload Mapping + // ------------------------------------------ + + assign sink0_payload = {sink0_channel,sink0_data, + sink0_startofpacket,sink0_endofpacket}; + assign sink1_payload = {sink1_channel,sink1_data, + sink1_startofpacket,sink1_endofpacket}; + assign sink2_payload = {sink2_channel,sink2_data, + sink2_startofpacket,sink2_endofpacket}; + assign sink3_payload = {sink3_channel,sink3_data, + sink3_startofpacket,sink3_endofpacket}; + assign sink4_payload = {sink4_channel,sink4_data, + sink4_startofpacket,sink4_endofpacket}; + assign sink5_payload = {sink5_channel,sink5_data, + sink5_startofpacket,sink5_endofpacket}; + assign sink6_payload = {sink6_channel,sink6_data, + sink6_startofpacket,sink6_endofpacket}; + assign sink7_payload = {sink7_channel,sink7_data, + sink7_startofpacket,sink7_endofpacket}; + assign sink8_payload = {sink8_channel,sink8_data, + sink8_startofpacket,sink8_endofpacket}; + assign sink9_payload = {sink9_channel,sink9_data, + sink9_startofpacket,sink9_endofpacket}; + assign sink10_payload = {sink10_channel,sink10_data, + sink10_startofpacket,sink10_endofpacket}; + assign sink11_payload = {sink11_channel,sink11_data, + sink11_startofpacket,sink11_endofpacket}; + assign sink12_payload = {sink12_channel,sink12_data, + sink12_startofpacket,sink12_endofpacket}; + assign sink13_payload = {sink13_channel,sink13_data, + sink13_startofpacket,sink13_endofpacket}; + assign sink14_payload = {sink14_channel,sink14_data, + sink14_startofpacket,sink14_endofpacket}; + assign sink15_payload = {sink15_channel,sink15_data, + sink15_startofpacket,sink15_endofpacket}; + assign sink16_payload = {sink16_channel,sink16_data, + sink16_startofpacket,sink16_endofpacket}; + assign sink17_payload = {sink17_channel,sink17_data, + sink17_startofpacket,sink17_endofpacket}; + + assign {src_channel,src_data,src_startofpacket,src_endofpacket} = src_payload; + +endmodule + + + diff --git a/db/ip/nios_system/submodules/nios_system_switches.v b/db/ip/nios_system/submodules/nios_system_switches.v new file mode 100644 index 0000000..5121337 --- /dev/null +++ b/db/ip/nios_system/submodules/nios_system_switches.v @@ -0,0 +1,58 @@ +//Legal Notice: (C)2016 Altera Corporation. All rights reserved. Your +//use of Altera Corporation's design tools, logic functions and other +//software and tools, and its AMPP partner logic functions, and any +//output files any of the foregoing (including device programming or +//simulation files), and any associated documentation or information are +//expressly subject to the terms and conditions of the Altera Program +//License Subscription Agreement or other applicable license agreement, +//including, without limitation, that your use is for the sole purpose +//of programming logic devices manufactured by Altera and sold by Altera +//or its authorized distributors. Please refer to the applicable +//agreement for further details. + +// synthesis translate_off +`timescale 1ns / 1ps +// synthesis translate_on + +// turn off superfluous verilog processor warnings +// altera message_level Level1 +// altera message_off 10034 10035 10036 10037 10230 10240 10030 + +module nios_system_switches ( + // inputs: + address, + clk, + in_port, + reset_n, + + // outputs: + readdata + ) +; + + output [ 31: 0] readdata; + input [ 1: 0] address; + input clk; + input [ 17: 0] in_port; + input reset_n; + + wire clk_en; + wire [ 17: 0] data_in; + wire [ 17: 0] read_mux_out; + reg [ 31: 0] readdata; + assign clk_en = 1; + //s1, which is an e_avalon_slave + assign read_mux_out = {18 {(address == 0)}} & data_in; + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + readdata <= 0; + else if (clk_en) + readdata <= {32'b0 | read_mux_out}; + end + + + assign data_in = in_port; + +endmodule + diff --git "a/db/lights.\0500\051.cnf.cdb" "b/db/lights.\0500\051.cnf.cdb" new file mode 100644 index 0000000..cf63c05 --- /dev/null +++ "b/db/lights.\0500\051.cnf.cdb" Binary files differ diff --git "a/db/lights.\0500\051.cnf.hdb" "b/db/lights.\0500\051.cnf.hdb" new file mode 100644 index 0000000..37e56a4 --- /dev/null +++ "b/db/lights.\0500\051.cnf.hdb" Binary files differ diff --git "a/db/lights.\0501\051.cnf.cdb" "b/db/lights.\0501\051.cnf.cdb" new file mode 100644 index 0000000..a8137fc --- /dev/null +++ "b/db/lights.\0501\051.cnf.cdb" Binary files differ diff --git "a/db/lights.\0501\051.cnf.hdb" "b/db/lights.\0501\051.cnf.hdb" new file mode 100644 index 0000000..97afe92 --- /dev/null +++ "b/db/lights.\0501\051.cnf.hdb" Binary files differ diff --git "a/db/lights.\05010\051.cnf.cdb" "b/db/lights.\05010\051.cnf.cdb" new file mode 100644 index 0000000..943faa3 --- /dev/null +++ "b/db/lights.\05010\051.cnf.cdb" Binary files differ diff --git "a/db/lights.\05010\051.cnf.hdb" "b/db/lights.\05010\051.cnf.hdb" new file mode 100644 index 0000000..7db1759 --- /dev/null +++ "b/db/lights.\05010\051.cnf.hdb" Binary files differ diff --git "a/db/lights.\050100\051.cnf.cdb" "b/db/lights.\050100\051.cnf.cdb" new file mode 100644 index 0000000..2ce3d10 --- /dev/null +++ "b/db/lights.\050100\051.cnf.cdb" Binary files differ diff --git "a/db/lights.\050100\051.cnf.hdb" "b/db/lights.\050100\051.cnf.hdb" new file mode 100644 index 0000000..5b7a534 --- /dev/null +++ "b/db/lights.\050100\051.cnf.hdb" Binary files differ diff --git "a/db/lights.\050101\051.cnf.cdb" "b/db/lights.\050101\051.cnf.cdb" new file mode 100644 index 0000000..5a70fa8 --- /dev/null +++ "b/db/lights.\050101\051.cnf.cdb" Binary files differ diff --git "a/db/lights.\050101\051.cnf.hdb" "b/db/lights.\050101\051.cnf.hdb" new file mode 100644 index 0000000..ee2eb50 --- /dev/null +++ "b/db/lights.\050101\051.cnf.hdb" Binary files differ diff --git "a/db/lights.\05011\051.cnf.cdb" "b/db/lights.\05011\051.cnf.cdb" new file mode 100644 index 0000000..7d17bc5 --- /dev/null +++ "b/db/lights.\05011\051.cnf.cdb" Binary files differ diff --git "a/db/lights.\05011\051.cnf.hdb" "b/db/lights.\05011\051.cnf.hdb" new file mode 100644 index 0000000..5f620d5 --- /dev/null +++ "b/db/lights.\05011\051.cnf.hdb" Binary files differ diff --git "a/db/lights.\05012\051.cnf.cdb" "b/db/lights.\05012\051.cnf.cdb" new file mode 100644 index 0000000..93ac1b1 --- /dev/null +++ "b/db/lights.\05012\051.cnf.cdb" Binary files differ diff --git "a/db/lights.\05012\051.cnf.hdb" "b/db/lights.\05012\051.cnf.hdb" new file mode 100644 index 0000000..9479258 --- /dev/null +++ "b/db/lights.\05012\051.cnf.hdb" Binary files differ diff --git "a/db/lights.\05013\051.cnf.cdb" "b/db/lights.\05013\051.cnf.cdb" new file mode 100644 index 0000000..de3ec94 --- /dev/null +++ "b/db/lights.\05013\051.cnf.cdb" Binary files differ diff --git "a/db/lights.\05013\051.cnf.hdb" "b/db/lights.\05013\051.cnf.hdb" new file mode 100644 index 0000000..517abea --- /dev/null +++ "b/db/lights.\05013\051.cnf.hdb" Binary files differ diff --git "a/db/lights.\05014\051.cnf.cdb" "b/db/lights.\05014\051.cnf.cdb" new file mode 100644 index 0000000..9545511 --- /dev/null +++ "b/db/lights.\05014\051.cnf.cdb" Binary files differ diff --git "a/db/lights.\05014\051.cnf.hdb" "b/db/lights.\05014\051.cnf.hdb" new file mode 100644 index 0000000..fadb4fd --- /dev/null +++ "b/db/lights.\05014\051.cnf.hdb" Binary files differ diff --git "a/db/lights.\05015\051.cnf.cdb" "b/db/lights.\05015\051.cnf.cdb" new file mode 100644 index 0000000..5c22bb6 --- /dev/null +++ "b/db/lights.\05015\051.cnf.cdb" Binary files differ diff --git "a/db/lights.\05015\051.cnf.hdb" "b/db/lights.\05015\051.cnf.hdb" new file mode 100644 index 0000000..0d4d32b --- /dev/null +++ "b/db/lights.\05015\051.cnf.hdb" Binary files differ diff --git "a/db/lights.\05016\051.cnf.cdb" "b/db/lights.\05016\051.cnf.cdb" new file mode 100644 index 0000000..dd40089 --- /dev/null +++ "b/db/lights.\05016\051.cnf.cdb" Binary files differ diff --git "a/db/lights.\05016\051.cnf.hdb" "b/db/lights.\05016\051.cnf.hdb" new file mode 100644 index 0000000..014cd6a --- /dev/null +++ "b/db/lights.\05016\051.cnf.hdb" Binary files differ diff --git "a/db/lights.\05017\051.cnf.cdb" "b/db/lights.\05017\051.cnf.cdb" new file mode 100644 index 0000000..a66650e --- /dev/null +++ "b/db/lights.\05017\051.cnf.cdb" Binary files differ diff --git "a/db/lights.\05017\051.cnf.hdb" "b/db/lights.\05017\051.cnf.hdb" new file mode 100644 index 0000000..176899a --- /dev/null +++ "b/db/lights.\05017\051.cnf.hdb" Binary files differ diff --git "a/db/lights.\05018\051.cnf.cdb" "b/db/lights.\05018\051.cnf.cdb" new file mode 100644 index 0000000..9ac9ee9 --- /dev/null +++ "b/db/lights.\05018\051.cnf.cdb" Binary files differ diff --git "a/db/lights.\05018\051.cnf.hdb" "b/db/lights.\05018\051.cnf.hdb" new file mode 100644 index 0000000..4cd922d --- /dev/null +++ "b/db/lights.\05018\051.cnf.hdb" Binary files differ diff --git "a/db/lights.\05019\051.cnf.cdb" "b/db/lights.\05019\051.cnf.cdb" new file mode 100644 index 0000000..d625a77 --- /dev/null +++ "b/db/lights.\05019\051.cnf.cdb" Binary files differ diff --git "a/db/lights.\05019\051.cnf.hdb" "b/db/lights.\05019\051.cnf.hdb" new file mode 100644 index 0000000..c164c63 --- /dev/null +++ "b/db/lights.\05019\051.cnf.hdb" Binary files differ diff --git "a/db/lights.\0502\051.cnf.cdb" "b/db/lights.\0502\051.cnf.cdb" new file mode 100644 index 0000000..0ab5492 --- /dev/null +++ "b/db/lights.\0502\051.cnf.cdb" Binary files differ diff --git "a/db/lights.\0502\051.cnf.hdb" "b/db/lights.\0502\051.cnf.hdb" new file mode 100644 index 0000000..39c0875 --- /dev/null +++ "b/db/lights.\0502\051.cnf.hdb" Binary files differ diff --git "a/db/lights.\05020\051.cnf.cdb" "b/db/lights.\05020\051.cnf.cdb" new file mode 100644 index 0000000..c095f90 --- /dev/null +++ "b/db/lights.\05020\051.cnf.cdb" Binary files differ diff --git "a/db/lights.\05020\051.cnf.hdb" "b/db/lights.\05020\051.cnf.hdb" new file mode 100644 index 0000000..1ed51c6 --- /dev/null +++ "b/db/lights.\05020\051.cnf.hdb" Binary files differ diff --git "a/db/lights.\05021\051.cnf.cdb" "b/db/lights.\05021\051.cnf.cdb" new file mode 100644 index 0000000..efd233f --- /dev/null +++ "b/db/lights.\05021\051.cnf.cdb" Binary files differ diff --git "a/db/lights.\05021\051.cnf.hdb" "b/db/lights.\05021\051.cnf.hdb" new file mode 100644 index 0000000..3032c5a --- /dev/null +++ "b/db/lights.\05021\051.cnf.hdb" Binary files differ diff --git "a/db/lights.\05022\051.cnf.cdb" "b/db/lights.\05022\051.cnf.cdb" new file mode 100644 index 0000000..94e3a3a --- /dev/null +++ "b/db/lights.\05022\051.cnf.cdb" Binary files differ diff --git "a/db/lights.\05022\051.cnf.hdb" "b/db/lights.\05022\051.cnf.hdb" new file mode 100644 index 0000000..4ec0be5 --- /dev/null +++ "b/db/lights.\05022\051.cnf.hdb" Binary files differ diff --git "a/db/lights.\05023\051.cnf.cdb" "b/db/lights.\05023\051.cnf.cdb" new file mode 100644 index 0000000..a7c9ae0 --- /dev/null +++ "b/db/lights.\05023\051.cnf.cdb" Binary files differ diff --git "a/db/lights.\05023\051.cnf.hdb" "b/db/lights.\05023\051.cnf.hdb" new file mode 100644 index 0000000..aaf1ea0 --- /dev/null +++ "b/db/lights.\05023\051.cnf.hdb" Binary files differ diff --git "a/db/lights.\05024\051.cnf.cdb" "b/db/lights.\05024\051.cnf.cdb" new file mode 100644 index 0000000..9c755c9 --- /dev/null +++ "b/db/lights.\05024\051.cnf.cdb" Binary files differ diff --git "a/db/lights.\05024\051.cnf.hdb" "b/db/lights.\05024\051.cnf.hdb" new file mode 100644 index 0000000..ff53217 --- /dev/null +++ "b/db/lights.\05024\051.cnf.hdb" Binary files differ diff --git "a/db/lights.\05025\051.cnf.cdb" "b/db/lights.\05025\051.cnf.cdb" new file mode 100644 index 0000000..629988e --- /dev/null +++ "b/db/lights.\05025\051.cnf.cdb" Binary files differ diff --git "a/db/lights.\05025\051.cnf.hdb" "b/db/lights.\05025\051.cnf.hdb" new file mode 100644 index 0000000..331dbaf --- /dev/null +++ "b/db/lights.\05025\051.cnf.hdb" Binary files differ diff --git "a/db/lights.\05026\051.cnf.cdb" "b/db/lights.\05026\051.cnf.cdb" new file mode 100644 index 0000000..6fe8d7f --- /dev/null +++ "b/db/lights.\05026\051.cnf.cdb" Binary files differ diff --git "a/db/lights.\05026\051.cnf.hdb" "b/db/lights.\05026\051.cnf.hdb" new file mode 100644 index 0000000..d8f0185 --- /dev/null +++ "b/db/lights.\05026\051.cnf.hdb" Binary files differ diff --git "a/db/lights.\05027\051.cnf.cdb" "b/db/lights.\05027\051.cnf.cdb" new file mode 100644 index 0000000..2226059 --- /dev/null +++ "b/db/lights.\05027\051.cnf.cdb" Binary files differ diff --git "a/db/lights.\05027\051.cnf.hdb" "b/db/lights.\05027\051.cnf.hdb" new file mode 100644 index 0000000..3c17ce0 --- /dev/null +++ "b/db/lights.\05027\051.cnf.hdb" Binary files differ diff --git "a/db/lights.\05028\051.cnf.cdb" "b/db/lights.\05028\051.cnf.cdb" new file mode 100644 index 0000000..3ad13e2 --- /dev/null +++ "b/db/lights.\05028\051.cnf.cdb" Binary files differ diff --git "a/db/lights.\05028\051.cnf.hdb" "b/db/lights.\05028\051.cnf.hdb" new file mode 100644 index 0000000..28335e7 --- /dev/null +++ "b/db/lights.\05028\051.cnf.hdb" Binary files differ diff --git "a/db/lights.\05029\051.cnf.cdb" "b/db/lights.\05029\051.cnf.cdb" new file mode 100644 index 0000000..ae338da --- /dev/null +++ "b/db/lights.\05029\051.cnf.cdb" Binary files differ diff --git "a/db/lights.\05029\051.cnf.hdb" "b/db/lights.\05029\051.cnf.hdb" new file mode 100644 index 0000000..6549a6d --- /dev/null +++ "b/db/lights.\05029\051.cnf.hdb" Binary files differ diff --git "a/db/lights.\0503\051.cnf.cdb" "b/db/lights.\0503\051.cnf.cdb" new file mode 100644 index 0000000..00a8ec3 --- /dev/null +++ "b/db/lights.\0503\051.cnf.cdb" Binary files differ diff --git "a/db/lights.\0503\051.cnf.hdb" "b/db/lights.\0503\051.cnf.hdb" new file mode 100644 index 0000000..1493af4 --- /dev/null +++ "b/db/lights.\0503\051.cnf.hdb" Binary files differ diff --git "a/db/lights.\05030\051.cnf.cdb" "b/db/lights.\05030\051.cnf.cdb" new file mode 100644 index 0000000..7a4be67 --- /dev/null +++ "b/db/lights.\05030\051.cnf.cdb" Binary files differ diff --git "a/db/lights.\05030\051.cnf.hdb" "b/db/lights.\05030\051.cnf.hdb" new file mode 100644 index 0000000..15a1983 --- /dev/null +++ "b/db/lights.\05030\051.cnf.hdb" Binary files differ diff --git "a/db/lights.\05031\051.cnf.cdb" "b/db/lights.\05031\051.cnf.cdb" new file mode 100644 index 0000000..876d4b2 --- /dev/null +++ "b/db/lights.\05031\051.cnf.cdb" Binary files differ diff --git "a/db/lights.\05031\051.cnf.hdb" "b/db/lights.\05031\051.cnf.hdb" new file mode 100644 index 0000000..7fd2572 --- /dev/null +++ "b/db/lights.\05031\051.cnf.hdb" Binary files differ diff --git "a/db/lights.\05032\051.cnf.cdb" "b/db/lights.\05032\051.cnf.cdb" new file mode 100644 index 0000000..be99398 --- /dev/null +++ "b/db/lights.\05032\051.cnf.cdb" Binary files differ diff --git "a/db/lights.\05032\051.cnf.hdb" "b/db/lights.\05032\051.cnf.hdb" new file mode 100644 index 0000000..b105db2 --- /dev/null +++ "b/db/lights.\05032\051.cnf.hdb" Binary files differ diff --git "a/db/lights.\05033\051.cnf.cdb" "b/db/lights.\05033\051.cnf.cdb" new file mode 100644 index 0000000..147a31b --- /dev/null +++ "b/db/lights.\05033\051.cnf.cdb" Binary files differ diff --git "a/db/lights.\05033\051.cnf.hdb" "b/db/lights.\05033\051.cnf.hdb" new file mode 100644 index 0000000..d13ccf4 --- /dev/null +++ "b/db/lights.\05033\051.cnf.hdb" Binary files differ diff --git "a/db/lights.\05034\051.cnf.cdb" "b/db/lights.\05034\051.cnf.cdb" new file mode 100644 index 0000000..75b3219 --- /dev/null +++ "b/db/lights.\05034\051.cnf.cdb" Binary files differ diff --git "a/db/lights.\05034\051.cnf.hdb" "b/db/lights.\05034\051.cnf.hdb" new file mode 100644 index 0000000..d79cf33 --- /dev/null +++ "b/db/lights.\05034\051.cnf.hdb" Binary files differ diff --git "a/db/lights.\05035\051.cnf.cdb" "b/db/lights.\05035\051.cnf.cdb" new file mode 100644 index 0000000..2968992 --- /dev/null +++ "b/db/lights.\05035\051.cnf.cdb" Binary files differ diff --git "a/db/lights.\05035\051.cnf.hdb" "b/db/lights.\05035\051.cnf.hdb" new file mode 100644 index 0000000..1c59829 --- /dev/null +++ "b/db/lights.\05035\051.cnf.hdb" Binary files differ diff --git "a/db/lights.\05036\051.cnf.cdb" "b/db/lights.\05036\051.cnf.cdb" new file mode 100644 index 0000000..1d06285 --- /dev/null +++ "b/db/lights.\05036\051.cnf.cdb" Binary files differ diff --git "a/db/lights.\05036\051.cnf.hdb" "b/db/lights.\05036\051.cnf.hdb" new file mode 100644 index 0000000..e7a2269 --- /dev/null +++ "b/db/lights.\05036\051.cnf.hdb" Binary files differ diff --git "a/db/lights.\05037\051.cnf.cdb" "b/db/lights.\05037\051.cnf.cdb" new file mode 100644 index 0000000..1174638 --- /dev/null +++ "b/db/lights.\05037\051.cnf.cdb" Binary files differ diff --git "a/db/lights.\05037\051.cnf.hdb" "b/db/lights.\05037\051.cnf.hdb" new file mode 100644 index 0000000..1bdb081 --- /dev/null +++ "b/db/lights.\05037\051.cnf.hdb" Binary files differ diff --git "a/db/lights.\05038\051.cnf.cdb" "b/db/lights.\05038\051.cnf.cdb" new file mode 100644 index 0000000..75cc1aa --- /dev/null +++ "b/db/lights.\05038\051.cnf.cdb" Binary files differ diff --git "a/db/lights.\05038\051.cnf.hdb" "b/db/lights.\05038\051.cnf.hdb" new file mode 100644 index 0000000..3af1c33 --- /dev/null +++ "b/db/lights.\05038\051.cnf.hdb" Binary files differ diff --git "a/db/lights.\05039\051.cnf.cdb" "b/db/lights.\05039\051.cnf.cdb" new file mode 100644 index 0000000..d2d2ea9 --- /dev/null +++ "b/db/lights.\05039\051.cnf.cdb" Binary files differ diff --git "a/db/lights.\05039\051.cnf.hdb" "b/db/lights.\05039\051.cnf.hdb" new file mode 100644 index 0000000..dbb53d7 --- /dev/null +++ "b/db/lights.\05039\051.cnf.hdb" Binary files differ diff --git "a/db/lights.\0504\051.cnf.cdb" "b/db/lights.\0504\051.cnf.cdb" new file mode 100644 index 0000000..d9d3fe4 --- /dev/null +++ "b/db/lights.\0504\051.cnf.cdb" Binary files differ diff --git "a/db/lights.\0504\051.cnf.hdb" "b/db/lights.\0504\051.cnf.hdb" new file mode 100644 index 0000000..76f3d3b --- /dev/null +++ "b/db/lights.\0504\051.cnf.hdb" Binary files differ diff --git "a/db/lights.\05040\051.cnf.cdb" "b/db/lights.\05040\051.cnf.cdb" new file mode 100644 index 0000000..17fe343 --- /dev/null +++ "b/db/lights.\05040\051.cnf.cdb" Binary files differ diff --git "a/db/lights.\05040\051.cnf.hdb" "b/db/lights.\05040\051.cnf.hdb" new file mode 100644 index 0000000..2df2932 --- /dev/null +++ "b/db/lights.\05040\051.cnf.hdb" Binary files differ diff --git "a/db/lights.\05041\051.cnf.cdb" "b/db/lights.\05041\051.cnf.cdb" new file mode 100644 index 0000000..2aa226e --- /dev/null +++ "b/db/lights.\05041\051.cnf.cdb" Binary files differ diff --git "a/db/lights.\05041\051.cnf.hdb" "b/db/lights.\05041\051.cnf.hdb" new file mode 100644 index 0000000..6e90eae --- /dev/null +++ "b/db/lights.\05041\051.cnf.hdb" Binary files differ diff --git "a/db/lights.\05042\051.cnf.cdb" "b/db/lights.\05042\051.cnf.cdb" new file mode 100644 index 0000000..9565a79 --- /dev/null +++ "b/db/lights.\05042\051.cnf.cdb" Binary files differ diff --git "a/db/lights.\05042\051.cnf.hdb" "b/db/lights.\05042\051.cnf.hdb" new file mode 100644 index 0000000..09ab763 --- /dev/null +++ "b/db/lights.\05042\051.cnf.hdb" Binary files differ diff --git "a/db/lights.\05043\051.cnf.cdb" "b/db/lights.\05043\051.cnf.cdb" new file mode 100644 index 0000000..dbfc1c5 --- /dev/null +++ "b/db/lights.\05043\051.cnf.cdb" Binary files differ diff --git "a/db/lights.\05043\051.cnf.hdb" "b/db/lights.\05043\051.cnf.hdb" new file mode 100644 index 0000000..ba9e779 --- /dev/null +++ "b/db/lights.\05043\051.cnf.hdb" Binary files differ diff --git "a/db/lights.\05044\051.cnf.cdb" "b/db/lights.\05044\051.cnf.cdb" new file mode 100644 index 0000000..abe55e0 --- /dev/null +++ "b/db/lights.\05044\051.cnf.cdb" Binary files differ diff --git "a/db/lights.\05044\051.cnf.hdb" "b/db/lights.\05044\051.cnf.hdb" new file mode 100644 index 0000000..59bd344 --- /dev/null +++ "b/db/lights.\05044\051.cnf.hdb" Binary files differ diff --git "a/db/lights.\05045\051.cnf.cdb" "b/db/lights.\05045\051.cnf.cdb" new file mode 100644 index 0000000..b666bde --- /dev/null +++ "b/db/lights.\05045\051.cnf.cdb" Binary files differ diff --git "a/db/lights.\05045\051.cnf.hdb" "b/db/lights.\05045\051.cnf.hdb" new file mode 100644 index 0000000..c53814c --- /dev/null +++ "b/db/lights.\05045\051.cnf.hdb" Binary files differ diff --git "a/db/lights.\05046\051.cnf.cdb" "b/db/lights.\05046\051.cnf.cdb" new file mode 100644 index 0000000..ff784a0 --- /dev/null +++ "b/db/lights.\05046\051.cnf.cdb" Binary files differ diff --git "a/db/lights.\05046\051.cnf.hdb" "b/db/lights.\05046\051.cnf.hdb" new file mode 100644 index 0000000..545e395 --- /dev/null +++ "b/db/lights.\05046\051.cnf.hdb" Binary files differ diff --git "a/db/lights.\05047\051.cnf.cdb" "b/db/lights.\05047\051.cnf.cdb" new file mode 100644 index 0000000..5ae6403 --- /dev/null +++ "b/db/lights.\05047\051.cnf.cdb" Binary files differ diff --git "a/db/lights.\05047\051.cnf.hdb" "b/db/lights.\05047\051.cnf.hdb" new file mode 100644 index 0000000..aeed027 --- /dev/null +++ "b/db/lights.\05047\051.cnf.hdb" Binary files differ diff --git "a/db/lights.\05048\051.cnf.cdb" "b/db/lights.\05048\051.cnf.cdb" new file mode 100644 index 0000000..f67a781 --- /dev/null +++ "b/db/lights.\05048\051.cnf.cdb" Binary files differ diff --git "a/db/lights.\05048\051.cnf.hdb" "b/db/lights.\05048\051.cnf.hdb" new file mode 100644 index 0000000..a353bb0 --- /dev/null +++ "b/db/lights.\05048\051.cnf.hdb" Binary files differ diff --git "a/db/lights.\05049\051.cnf.cdb" "b/db/lights.\05049\051.cnf.cdb" new file mode 100644 index 0000000..b9487c6 --- /dev/null +++ "b/db/lights.\05049\051.cnf.cdb" Binary files differ diff --git "a/db/lights.\05049\051.cnf.hdb" "b/db/lights.\05049\051.cnf.hdb" new file mode 100644 index 0000000..2035e53 --- /dev/null +++ "b/db/lights.\05049\051.cnf.hdb" Binary files differ diff --git "a/db/lights.\0505\051.cnf.cdb" "b/db/lights.\0505\051.cnf.cdb" new file mode 100644 index 0000000..5cb9ac3 --- /dev/null +++ "b/db/lights.\0505\051.cnf.cdb" Binary files differ diff --git "a/db/lights.\0505\051.cnf.hdb" "b/db/lights.\0505\051.cnf.hdb" new file mode 100644 index 0000000..c44e74e --- /dev/null +++ "b/db/lights.\0505\051.cnf.hdb" Binary files differ diff --git "a/db/lights.\05050\051.cnf.cdb" "b/db/lights.\05050\051.cnf.cdb" new file mode 100644 index 0000000..421e012 --- /dev/null +++ "b/db/lights.\05050\051.cnf.cdb" Binary files differ diff --git "a/db/lights.\05050\051.cnf.hdb" "b/db/lights.\05050\051.cnf.hdb" new file mode 100644 index 0000000..a796c71 --- /dev/null +++ "b/db/lights.\05050\051.cnf.hdb" Binary files differ diff --git "a/db/lights.\05051\051.cnf.cdb" "b/db/lights.\05051\051.cnf.cdb" new file mode 100644 index 0000000..abba506 --- /dev/null +++ "b/db/lights.\05051\051.cnf.cdb" Binary files differ diff --git "a/db/lights.\05051\051.cnf.hdb" "b/db/lights.\05051\051.cnf.hdb" new file mode 100644 index 0000000..2242e54 --- /dev/null +++ "b/db/lights.\05051\051.cnf.hdb" Binary files differ diff --git "a/db/lights.\05052\051.cnf.cdb" "b/db/lights.\05052\051.cnf.cdb" new file mode 100644 index 0000000..9eadd07 --- /dev/null +++ "b/db/lights.\05052\051.cnf.cdb" Binary files differ diff --git "a/db/lights.\05052\051.cnf.hdb" "b/db/lights.\05052\051.cnf.hdb" new file mode 100644 index 0000000..fbf8819 --- /dev/null +++ "b/db/lights.\05052\051.cnf.hdb" Binary files differ diff --git "a/db/lights.\05053\051.cnf.cdb" "b/db/lights.\05053\051.cnf.cdb" new file mode 100644 index 0000000..9b25f92 --- /dev/null +++ "b/db/lights.\05053\051.cnf.cdb" Binary files differ diff --git "a/db/lights.\05053\051.cnf.hdb" "b/db/lights.\05053\051.cnf.hdb" new file mode 100644 index 0000000..0529d46 --- /dev/null +++ "b/db/lights.\05053\051.cnf.hdb" Binary files differ diff --git "a/db/lights.\05054\051.cnf.cdb" "b/db/lights.\05054\051.cnf.cdb" new file mode 100644 index 0000000..05ec7e1 --- /dev/null +++ "b/db/lights.\05054\051.cnf.cdb" Binary files differ diff --git "a/db/lights.\05054\051.cnf.hdb" "b/db/lights.\05054\051.cnf.hdb" new file mode 100644 index 0000000..314b5d0 --- /dev/null +++ "b/db/lights.\05054\051.cnf.hdb" Binary files differ diff --git "a/db/lights.\05055\051.cnf.cdb" "b/db/lights.\05055\051.cnf.cdb" new file mode 100644 index 0000000..3d3aab0 --- /dev/null +++ "b/db/lights.\05055\051.cnf.cdb" Binary files differ diff --git "a/db/lights.\05055\051.cnf.hdb" "b/db/lights.\05055\051.cnf.hdb" new file mode 100644 index 0000000..7b442b1 --- /dev/null +++ "b/db/lights.\05055\051.cnf.hdb" Binary files differ diff --git "a/db/lights.\05056\051.cnf.cdb" "b/db/lights.\05056\051.cnf.cdb" new file mode 100644 index 0000000..83f7862 --- /dev/null +++ "b/db/lights.\05056\051.cnf.cdb" Binary files differ diff --git "a/db/lights.\05056\051.cnf.hdb" "b/db/lights.\05056\051.cnf.hdb" new file mode 100644 index 0000000..2ad2507 --- /dev/null +++ "b/db/lights.\05056\051.cnf.hdb" Binary files differ diff --git "a/db/lights.\05057\051.cnf.cdb" "b/db/lights.\05057\051.cnf.cdb" new file mode 100644 index 0000000..8f34966 --- /dev/null +++ "b/db/lights.\05057\051.cnf.cdb" Binary files differ diff --git "a/db/lights.\05057\051.cnf.hdb" "b/db/lights.\05057\051.cnf.hdb" new file mode 100644 index 0000000..fc94c0c --- /dev/null +++ "b/db/lights.\05057\051.cnf.hdb" Binary files differ diff --git "a/db/lights.\05058\051.cnf.cdb" "b/db/lights.\05058\051.cnf.cdb" new file mode 100644 index 0000000..1a06e78 --- /dev/null +++ "b/db/lights.\05058\051.cnf.cdb" Binary files differ diff --git "a/db/lights.\05058\051.cnf.hdb" "b/db/lights.\05058\051.cnf.hdb" new file mode 100644 index 0000000..e2f1b77 --- /dev/null +++ "b/db/lights.\05058\051.cnf.hdb" Binary files differ diff --git "a/db/lights.\05059\051.cnf.cdb" "b/db/lights.\05059\051.cnf.cdb" new file mode 100644 index 0000000..eafd403 --- /dev/null +++ "b/db/lights.\05059\051.cnf.cdb" Binary files differ diff --git "a/db/lights.\05059\051.cnf.hdb" "b/db/lights.\05059\051.cnf.hdb" new file mode 100644 index 0000000..0ad83a4 --- /dev/null +++ "b/db/lights.\05059\051.cnf.hdb" Binary files differ diff --git "a/db/lights.\0506\051.cnf.cdb" "b/db/lights.\0506\051.cnf.cdb" new file mode 100644 index 0000000..f28488c --- /dev/null +++ "b/db/lights.\0506\051.cnf.cdb" Binary files differ diff --git "a/db/lights.\0506\051.cnf.hdb" "b/db/lights.\0506\051.cnf.hdb" new file mode 100644 index 0000000..e028cb9 --- /dev/null +++ "b/db/lights.\0506\051.cnf.hdb" Binary files differ diff --git "a/db/lights.\05060\051.cnf.cdb" "b/db/lights.\05060\051.cnf.cdb" new file mode 100644 index 0000000..0cfcbdd --- /dev/null +++ "b/db/lights.\05060\051.cnf.cdb" Binary files differ diff --git "a/db/lights.\05060\051.cnf.hdb" "b/db/lights.\05060\051.cnf.hdb" new file mode 100644 index 0000000..866d11e --- /dev/null +++ "b/db/lights.\05060\051.cnf.hdb" Binary files differ diff --git "a/db/lights.\05061\051.cnf.cdb" "b/db/lights.\05061\051.cnf.cdb" new file mode 100644 index 0000000..81cf7cb --- /dev/null +++ "b/db/lights.\05061\051.cnf.cdb" Binary files differ diff --git "a/db/lights.\05061\051.cnf.hdb" "b/db/lights.\05061\051.cnf.hdb" new file mode 100644 index 0000000..e20cba4 --- /dev/null +++ "b/db/lights.\05061\051.cnf.hdb" Binary files differ diff --git "a/db/lights.\05062\051.cnf.cdb" "b/db/lights.\05062\051.cnf.cdb" new file mode 100644 index 0000000..61b08ed --- /dev/null +++ "b/db/lights.\05062\051.cnf.cdb" Binary files differ diff --git "a/db/lights.\05062\051.cnf.hdb" "b/db/lights.\05062\051.cnf.hdb" new file mode 100644 index 0000000..b18e946 --- /dev/null +++ "b/db/lights.\05062\051.cnf.hdb" Binary files differ diff --git "a/db/lights.\05063\051.cnf.cdb" "b/db/lights.\05063\051.cnf.cdb" new file mode 100644 index 0000000..f4828b4 --- /dev/null +++ "b/db/lights.\05063\051.cnf.cdb" Binary files differ diff --git "a/db/lights.\05063\051.cnf.hdb" "b/db/lights.\05063\051.cnf.hdb" new file mode 100644 index 0000000..e9cd1d8 --- /dev/null +++ "b/db/lights.\05063\051.cnf.hdb" Binary files differ diff --git "a/db/lights.\05064\051.cnf.cdb" "b/db/lights.\05064\051.cnf.cdb" new file mode 100644 index 0000000..01d09b9 --- /dev/null +++ "b/db/lights.\05064\051.cnf.cdb" Binary files differ diff --git "a/db/lights.\05064\051.cnf.hdb" "b/db/lights.\05064\051.cnf.hdb" new file mode 100644 index 0000000..e765dc2 --- /dev/null +++ "b/db/lights.\05064\051.cnf.hdb" Binary files differ diff --git "a/db/lights.\05065\051.cnf.cdb" "b/db/lights.\05065\051.cnf.cdb" new file mode 100644 index 0000000..87fb774 --- /dev/null +++ "b/db/lights.\05065\051.cnf.cdb" Binary files differ diff --git "a/db/lights.\05065\051.cnf.hdb" "b/db/lights.\05065\051.cnf.hdb" new file mode 100644 index 0000000..a798f56 --- /dev/null +++ "b/db/lights.\05065\051.cnf.hdb" Binary files differ diff --git "a/db/lights.\05066\051.cnf.cdb" "b/db/lights.\05066\051.cnf.cdb" new file mode 100644 index 0000000..b389393 --- /dev/null +++ "b/db/lights.\05066\051.cnf.cdb" Binary files differ diff --git "a/db/lights.\05066\051.cnf.hdb" "b/db/lights.\05066\051.cnf.hdb" new file mode 100644 index 0000000..c5a9ca9 --- /dev/null +++ "b/db/lights.\05066\051.cnf.hdb" Binary files differ diff --git "a/db/lights.\05067\051.cnf.cdb" "b/db/lights.\05067\051.cnf.cdb" new file mode 100644 index 0000000..e021ae5 --- /dev/null +++ "b/db/lights.\05067\051.cnf.cdb" Binary files differ diff --git "a/db/lights.\05067\051.cnf.hdb" "b/db/lights.\05067\051.cnf.hdb" new file mode 100644 index 0000000..85c9911 --- /dev/null +++ "b/db/lights.\05067\051.cnf.hdb" Binary files differ diff --git "a/db/lights.\05068\051.cnf.cdb" "b/db/lights.\05068\051.cnf.cdb" new file mode 100644 index 0000000..7b3ae25 --- /dev/null +++ "b/db/lights.\05068\051.cnf.cdb" Binary files differ diff --git "a/db/lights.\05068\051.cnf.hdb" "b/db/lights.\05068\051.cnf.hdb" new file mode 100644 index 0000000..85c9911 --- /dev/null +++ "b/db/lights.\05068\051.cnf.hdb" Binary files differ diff --git "a/db/lights.\05069\051.cnf.cdb" "b/db/lights.\05069\051.cnf.cdb" new file mode 100644 index 0000000..a6216aa --- /dev/null +++ "b/db/lights.\05069\051.cnf.cdb" Binary files differ diff --git "a/db/lights.\05069\051.cnf.hdb" "b/db/lights.\05069\051.cnf.hdb" new file mode 100644 index 0000000..cd4f373 --- /dev/null +++ "b/db/lights.\05069\051.cnf.hdb" Binary files differ diff --git "a/db/lights.\0507\051.cnf.cdb" "b/db/lights.\0507\051.cnf.cdb" new file mode 100644 index 0000000..7743f7d --- /dev/null +++ "b/db/lights.\0507\051.cnf.cdb" Binary files differ diff --git "a/db/lights.\0507\051.cnf.hdb" "b/db/lights.\0507\051.cnf.hdb" new file mode 100644 index 0000000..f771d00 --- /dev/null +++ "b/db/lights.\0507\051.cnf.hdb" Binary files differ diff --git "a/db/lights.\05070\051.cnf.cdb" "b/db/lights.\05070\051.cnf.cdb" new file mode 100644 index 0000000..61b733f --- /dev/null +++ "b/db/lights.\05070\051.cnf.cdb" Binary files differ diff --git "a/db/lights.\05070\051.cnf.hdb" "b/db/lights.\05070\051.cnf.hdb" new file mode 100644 index 0000000..bed2d6d --- /dev/null +++ "b/db/lights.\05070\051.cnf.hdb" Binary files differ diff --git "a/db/lights.\05071\051.cnf.cdb" "b/db/lights.\05071\051.cnf.cdb" new file mode 100644 index 0000000..b24d636 --- /dev/null +++ "b/db/lights.\05071\051.cnf.cdb" Binary files differ diff --git "a/db/lights.\05071\051.cnf.hdb" "b/db/lights.\05071\051.cnf.hdb" new file mode 100644 index 0000000..1e1b8a8 --- /dev/null +++ "b/db/lights.\05071\051.cnf.hdb" Binary files differ diff --git "a/db/lights.\05072\051.cnf.cdb" "b/db/lights.\05072\051.cnf.cdb" new file mode 100644 index 0000000..e1f95e8 --- /dev/null +++ "b/db/lights.\05072\051.cnf.cdb" Binary files differ diff --git "a/db/lights.\05072\051.cnf.hdb" "b/db/lights.\05072\051.cnf.hdb" new file mode 100644 index 0000000..3eb5af4 --- /dev/null +++ "b/db/lights.\05072\051.cnf.hdb" Binary files differ diff --git "a/db/lights.\05073\051.cnf.cdb" "b/db/lights.\05073\051.cnf.cdb" new file mode 100644 index 0000000..3275722 --- /dev/null +++ "b/db/lights.\05073\051.cnf.cdb" Binary files differ diff --git "a/db/lights.\05073\051.cnf.hdb" "b/db/lights.\05073\051.cnf.hdb" new file mode 100644 index 0000000..75aca7a --- /dev/null +++ "b/db/lights.\05073\051.cnf.hdb" Binary files differ diff --git "a/db/lights.\05074\051.cnf.cdb" "b/db/lights.\05074\051.cnf.cdb" new file mode 100644 index 0000000..d1ec65d --- /dev/null +++ "b/db/lights.\05074\051.cnf.cdb" Binary files differ diff --git "a/db/lights.\05074\051.cnf.hdb" "b/db/lights.\05074\051.cnf.hdb" new file mode 100644 index 0000000..7197d22 --- /dev/null +++ "b/db/lights.\05074\051.cnf.hdb" Binary files differ diff --git "a/db/lights.\05075\051.cnf.cdb" "b/db/lights.\05075\051.cnf.cdb" new file mode 100644 index 0000000..c9f0c39 --- /dev/null +++ "b/db/lights.\05075\051.cnf.cdb" Binary files differ diff --git "a/db/lights.\05075\051.cnf.hdb" "b/db/lights.\05075\051.cnf.hdb" new file mode 100644 index 0000000..1904214 --- /dev/null +++ "b/db/lights.\05075\051.cnf.hdb" Binary files differ diff --git "a/db/lights.\05076\051.cnf.cdb" "b/db/lights.\05076\051.cnf.cdb" new file mode 100644 index 0000000..e642afd --- /dev/null +++ "b/db/lights.\05076\051.cnf.cdb" Binary files differ diff --git "a/db/lights.\05076\051.cnf.hdb" "b/db/lights.\05076\051.cnf.hdb" new file mode 100644 index 0000000..0386b97 --- /dev/null +++ "b/db/lights.\05076\051.cnf.hdb" Binary files differ diff --git "a/db/lights.\05077\051.cnf.cdb" "b/db/lights.\05077\051.cnf.cdb" new file mode 100644 index 0000000..8d435da --- /dev/null +++ "b/db/lights.\05077\051.cnf.cdb" Binary files differ diff --git "a/db/lights.\05077\051.cnf.hdb" "b/db/lights.\05077\051.cnf.hdb" new file mode 100644 index 0000000..3be1871 --- /dev/null +++ "b/db/lights.\05077\051.cnf.hdb" Binary files differ diff --git "a/db/lights.\05078\051.cnf.cdb" "b/db/lights.\05078\051.cnf.cdb" new file mode 100644 index 0000000..049cfae --- /dev/null +++ "b/db/lights.\05078\051.cnf.cdb" Binary files differ diff --git "a/db/lights.\05078\051.cnf.hdb" "b/db/lights.\05078\051.cnf.hdb" new file mode 100644 index 0000000..271f553 --- /dev/null +++ "b/db/lights.\05078\051.cnf.hdb" Binary files differ diff --git "a/db/lights.\05079\051.cnf.cdb" "b/db/lights.\05079\051.cnf.cdb" new file mode 100644 index 0000000..6867db4 --- /dev/null +++ "b/db/lights.\05079\051.cnf.cdb" Binary files differ diff --git "a/db/lights.\05079\051.cnf.hdb" "b/db/lights.\05079\051.cnf.hdb" new file mode 100644 index 0000000..0adab3c --- /dev/null +++ "b/db/lights.\05079\051.cnf.hdb" Binary files differ diff --git "a/db/lights.\0508\051.cnf.cdb" "b/db/lights.\0508\051.cnf.cdb" new file mode 100644 index 0000000..750b51a --- /dev/null +++ "b/db/lights.\0508\051.cnf.cdb" Binary files differ diff --git "a/db/lights.\0508\051.cnf.hdb" "b/db/lights.\0508\051.cnf.hdb" new file mode 100644 index 0000000..482a067 --- /dev/null +++ "b/db/lights.\0508\051.cnf.hdb" Binary files differ diff --git "a/db/lights.\05080\051.cnf.cdb" "b/db/lights.\05080\051.cnf.cdb" new file mode 100644 index 0000000..1c68ec7 --- /dev/null +++ "b/db/lights.\05080\051.cnf.cdb" Binary files differ diff --git "a/db/lights.\05080\051.cnf.hdb" "b/db/lights.\05080\051.cnf.hdb" new file mode 100644 index 0000000..26a1f03 --- /dev/null +++ "b/db/lights.\05080\051.cnf.hdb" Binary files differ diff --git "a/db/lights.\05081\051.cnf.cdb" "b/db/lights.\05081\051.cnf.cdb" new file mode 100644 index 0000000..acc8dda --- /dev/null +++ "b/db/lights.\05081\051.cnf.cdb" Binary files differ diff --git "a/db/lights.\05081\051.cnf.hdb" "b/db/lights.\05081\051.cnf.hdb" new file mode 100644 index 0000000..1fbb313 --- /dev/null +++ "b/db/lights.\05081\051.cnf.hdb" Binary files differ diff --git "a/db/lights.\05082\051.cnf.cdb" "b/db/lights.\05082\051.cnf.cdb" new file mode 100644 index 0000000..1424f12 --- /dev/null +++ "b/db/lights.\05082\051.cnf.cdb" Binary files differ diff --git "a/db/lights.\05082\051.cnf.hdb" "b/db/lights.\05082\051.cnf.hdb" new file mode 100644 index 0000000..187aae6 --- /dev/null +++ "b/db/lights.\05082\051.cnf.hdb" Binary files differ diff --git "a/db/lights.\05083\051.cnf.cdb" "b/db/lights.\05083\051.cnf.cdb" new file mode 100644 index 0000000..d8edd97 --- /dev/null +++ "b/db/lights.\05083\051.cnf.cdb" Binary files differ diff --git "a/db/lights.\05083\051.cnf.hdb" "b/db/lights.\05083\051.cnf.hdb" new file mode 100644 index 0000000..3eac616 --- /dev/null +++ "b/db/lights.\05083\051.cnf.hdb" Binary files differ diff --git "a/db/lights.\05084\051.cnf.cdb" "b/db/lights.\05084\051.cnf.cdb" new file mode 100644 index 0000000..2d2ea24 --- /dev/null +++ "b/db/lights.\05084\051.cnf.cdb" Binary files differ diff --git "a/db/lights.\05084\051.cnf.hdb" "b/db/lights.\05084\051.cnf.hdb" new file mode 100644 index 0000000..b4dba68 --- /dev/null +++ "b/db/lights.\05084\051.cnf.hdb" Binary files differ diff --git "a/db/lights.\05085\051.cnf.cdb" "b/db/lights.\05085\051.cnf.cdb" new file mode 100644 index 0000000..bdbf29a --- /dev/null +++ "b/db/lights.\05085\051.cnf.cdb" Binary files differ diff --git "a/db/lights.\05085\051.cnf.hdb" "b/db/lights.\05085\051.cnf.hdb" new file mode 100644 index 0000000..976c015 --- /dev/null +++ "b/db/lights.\05085\051.cnf.hdb" Binary files differ diff --git "a/db/lights.\05086\051.cnf.cdb" "b/db/lights.\05086\051.cnf.cdb" new file mode 100644 index 0000000..2a8cc15 --- /dev/null +++ "b/db/lights.\05086\051.cnf.cdb" Binary files differ diff --git "a/db/lights.\05086\051.cnf.hdb" "b/db/lights.\05086\051.cnf.hdb" new file mode 100644 index 0000000..bf66351 --- /dev/null +++ "b/db/lights.\05086\051.cnf.hdb" Binary files differ diff --git "a/db/lights.\05087\051.cnf.cdb" "b/db/lights.\05087\051.cnf.cdb" new file mode 100644 index 0000000..e7897a1 --- /dev/null +++ "b/db/lights.\05087\051.cnf.cdb" Binary files differ diff --git "a/db/lights.\05087\051.cnf.hdb" "b/db/lights.\05087\051.cnf.hdb" new file mode 100644 index 0000000..13c875d --- /dev/null +++ "b/db/lights.\05087\051.cnf.hdb" Binary files differ diff --git "a/db/lights.\05088\051.cnf.cdb" "b/db/lights.\05088\051.cnf.cdb" new file mode 100644 index 0000000..a485eaf --- /dev/null +++ "b/db/lights.\05088\051.cnf.cdb" Binary files differ diff --git "a/db/lights.\05088\051.cnf.hdb" "b/db/lights.\05088\051.cnf.hdb" new file mode 100644 index 0000000..85dd1ca --- /dev/null +++ "b/db/lights.\05088\051.cnf.hdb" Binary files differ diff --git "a/db/lights.\05089\051.cnf.cdb" "b/db/lights.\05089\051.cnf.cdb" new file mode 100644 index 0000000..e3ba9c8 --- /dev/null +++ "b/db/lights.\05089\051.cnf.cdb" Binary files differ diff --git "a/db/lights.\05089\051.cnf.hdb" "b/db/lights.\05089\051.cnf.hdb" new file mode 100644 index 0000000..7b7c715 --- /dev/null +++ "b/db/lights.\05089\051.cnf.hdb" Binary files differ diff --git "a/db/lights.\0509\051.cnf.cdb" "b/db/lights.\0509\051.cnf.cdb" new file mode 100644 index 0000000..9d152b8 --- /dev/null +++ "b/db/lights.\0509\051.cnf.cdb" Binary files differ diff --git "a/db/lights.\0509\051.cnf.hdb" "b/db/lights.\0509\051.cnf.hdb" new file mode 100644 index 0000000..fa701fa --- /dev/null +++ "b/db/lights.\0509\051.cnf.hdb" Binary files differ diff --git "a/db/lights.\05090\051.cnf.cdb" "b/db/lights.\05090\051.cnf.cdb" new file mode 100644 index 0000000..d89acda --- /dev/null +++ "b/db/lights.\05090\051.cnf.cdb" Binary files differ diff --git "a/db/lights.\05090\051.cnf.hdb" "b/db/lights.\05090\051.cnf.hdb" new file mode 100644 index 0000000..f7d2148 --- /dev/null +++ "b/db/lights.\05090\051.cnf.hdb" Binary files differ diff --git "a/db/lights.\05091\051.cnf.cdb" "b/db/lights.\05091\051.cnf.cdb" new file mode 100644 index 0000000..e3e872c --- /dev/null +++ "b/db/lights.\05091\051.cnf.cdb" Binary files differ diff --git "a/db/lights.\05091\051.cnf.hdb" "b/db/lights.\05091\051.cnf.hdb" new file mode 100644 index 0000000..28d2e24 --- /dev/null +++ "b/db/lights.\05091\051.cnf.hdb" Binary files differ diff --git "a/db/lights.\05092\051.cnf.cdb" "b/db/lights.\05092\051.cnf.cdb" new file mode 100644 index 0000000..9a21810 --- /dev/null +++ "b/db/lights.\05092\051.cnf.cdb" Binary files differ diff --git "a/db/lights.\05092\051.cnf.hdb" "b/db/lights.\05092\051.cnf.hdb" new file mode 100644 index 0000000..c1343e6 --- /dev/null +++ "b/db/lights.\05092\051.cnf.hdb" Binary files differ diff --git "a/db/lights.\05093\051.cnf.cdb" "b/db/lights.\05093\051.cnf.cdb" new file mode 100644 index 0000000..3d8aca7 --- /dev/null +++ "b/db/lights.\05093\051.cnf.cdb" Binary files differ diff --git "a/db/lights.\05093\051.cnf.hdb" "b/db/lights.\05093\051.cnf.hdb" new file mode 100644 index 0000000..a25d3b1 --- /dev/null +++ "b/db/lights.\05093\051.cnf.hdb" Binary files differ diff --git "a/db/lights.\05094\051.cnf.cdb" "b/db/lights.\05094\051.cnf.cdb" new file mode 100644 index 0000000..3e7883f --- /dev/null +++ "b/db/lights.\05094\051.cnf.cdb" Binary files differ diff --git "a/db/lights.\05094\051.cnf.hdb" "b/db/lights.\05094\051.cnf.hdb" new file mode 100644 index 0000000..c2e78a3 --- /dev/null +++ "b/db/lights.\05094\051.cnf.hdb" Binary files differ diff --git "a/db/lights.\05095\051.cnf.cdb" "b/db/lights.\05095\051.cnf.cdb" new file mode 100644 index 0000000..dc49968 --- /dev/null +++ "b/db/lights.\05095\051.cnf.cdb" Binary files differ diff --git "a/db/lights.\05095\051.cnf.hdb" "b/db/lights.\05095\051.cnf.hdb" new file mode 100644 index 0000000..5e3e28a --- /dev/null +++ "b/db/lights.\05095\051.cnf.hdb" Binary files differ diff --git "a/db/lights.\05096\051.cnf.cdb" "b/db/lights.\05096\051.cnf.cdb" new file mode 100644 index 0000000..779cd80 --- /dev/null +++ "b/db/lights.\05096\051.cnf.cdb" Binary files differ diff --git "a/db/lights.\05096\051.cnf.hdb" "b/db/lights.\05096\051.cnf.hdb" new file mode 100644 index 0000000..83f5dac --- /dev/null +++ "b/db/lights.\05096\051.cnf.hdb" Binary files differ diff --git "a/db/lights.\05097\051.cnf.cdb" "b/db/lights.\05097\051.cnf.cdb" new file mode 100644 index 0000000..b257d29 --- /dev/null +++ "b/db/lights.\05097\051.cnf.cdb" Binary files differ diff --git "a/db/lights.\05097\051.cnf.hdb" "b/db/lights.\05097\051.cnf.hdb" new file mode 100644 index 0000000..7e0a046 --- /dev/null +++ "b/db/lights.\05097\051.cnf.hdb" Binary files differ diff --git "a/db/lights.\05098\051.cnf.cdb" "b/db/lights.\05098\051.cnf.cdb" new file mode 100644 index 0000000..a1b964c --- /dev/null +++ "b/db/lights.\05098\051.cnf.cdb" Binary files differ diff --git "a/db/lights.\05098\051.cnf.hdb" "b/db/lights.\05098\051.cnf.hdb" new file mode 100644 index 0000000..7c889a9 --- /dev/null +++ "b/db/lights.\05098\051.cnf.hdb" Binary files differ diff --git "a/db/lights.\05099\051.cnf.cdb" "b/db/lights.\05099\051.cnf.cdb" new file mode 100644 index 0000000..4c7f2a0 --- /dev/null +++ "b/db/lights.\05099\051.cnf.cdb" Binary files differ diff --git "a/db/lights.\05099\051.cnf.hdb" "b/db/lights.\05099\051.cnf.hdb" new file mode 100644 index 0000000..f9840e0 --- /dev/null +++ "b/db/lights.\05099\051.cnf.hdb" Binary files differ diff --git a/db/lights.asm.qmsg b/db/lights.asm.qmsg new file mode 100644 index 0000000..675076d --- /dev/null +++ b/db/lights.asm.qmsg @@ -0,0 +1,6 @@ +{ "Info" "IQEXE_SEPARATOR" "" "*******************************************************************" { } { } 3 0 "*******************************************************************" 0 0 "Quartus II" 0 -1 1480609994956 ""} +{ "Info" "IQEXE_START_BANNER_PRODUCT" "Assembler Quartus II 64-Bit " "Running Quartus II 64-Bit Assembler" { { "Info" "IQEXE_START_BANNER_VERSION" "Version 13.0.1 Build 232 06/12/2013 Service Pack 1 SJ Web Edition " "Version 13.0.1 Build 232 06/12/2013 Service Pack 1 SJ Web Edition" { } { } 0 0 "%1!s!" 0 0 "Quartus II" 0 -1 1480609994956 ""} { "Info" "IQEXE_START_BANNER_TIME" "Fri Dec 02 01:33:14 2016 " "Processing started: Fri Dec 02 01:33:14 2016" { } { } 0 0 "Processing started: %1!s!" 0 0 "Quartus II" 0 -1 1480609994956 ""} } { } 4 0 "Running %2!s! %1!s!" 0 0 "Assembler" 0 -1 1480609994956 ""} +{ "Info" "IQEXE_START_BANNER_COMMANDLINE" "quartus_asm --read_settings_files=off --write_settings_files=off lights -c lights " "Command: quartus_asm --read_settings_files=off --write_settings_files=off lights -c lights" { } { } 0 0 "Command: %1!s!" 0 0 "Assembler" 0 -1 1480609994957 ""} +{ "Info" "IASM_ASM_GENERATING_POWER_DATA" "" "Writing out detailed assembly data for power analysis" { } { } 0 115031 "Writing out detailed assembly data for power analysis" 0 0 "Assembler" 0 -1 1480609999579 ""} +{ "Info" "IASM_ASM_GENERATING_PROGRAMMING_FILES" "" "Assembler is generating device programming files" { } { } 0 115030 "Assembler is generating device programming files" 0 0 "Assembler" 0 -1 1480609999709 ""} +{ "Info" "IQEXE_ERROR_COUNT" "Assembler 0 s 0 s Quartus II 64-Bit " "Quartus II 64-Bit Assembler was successful. 0 errors, 0 warnings" { { "Info" "IQEXE_END_PEAK_VSIZE_MEMORY" "477 " "Peak virtual memory: 477 megabytes" { } { } 0 0 "Peak virtual memory: %1!s! megabytes" 0 0 "Quartus II" 0 -1 1480610001361 ""} { "Info" "IQEXE_END_BANNER_TIME" "Fri Dec 02 01:33:21 2016 " "Processing ended: Fri Dec 02 01:33:21 2016" { } { } 0 0 "Processing ended: %1!s!" 0 0 "Quartus II" 0 -1 1480610001361 ""} { "Info" "IQEXE_ELAPSED_TIME" "00:00:07 " "Elapsed time: 00:00:07" { } { } 0 0 "Elapsed time: %1!s!" 0 0 "Quartus II" 0 -1 1480610001361 ""} { "Info" "IQEXE_ELAPSED_CPU_TIME" "00:00:06 " "Total CPU time (on all processors): 00:00:06" { } { } 0 0 "Total CPU time (on all processors): %1!s!" 0 0 "Quartus II" 0 -1 1480610001361 ""} } { } 0 0 "%6!s! %1!s! was successful. %2!d! error%3!s!, %4!d! warning%5!s!" 0 0 "Assembler" 0 -1 1480610001361 ""} diff --git a/db/lights.asm.rdb b/db/lights.asm.rdb new file mode 100644 index 0000000..bc83e7f --- /dev/null +++ b/db/lights.asm.rdb Binary files differ diff --git a/db/lights.asm_labs.ddb b/db/lights.asm_labs.ddb new file mode 100644 index 0000000..03ed3a1 --- /dev/null +++ b/db/lights.asm_labs.ddb Binary files differ diff --git a/db/lights.autoh_e40e1.map.reg_db.cdb b/db/lights.autoh_e40e1.map.reg_db.cdb new file mode 100644 index 0000000..a1d8689 --- /dev/null +++ b/db/lights.autoh_e40e1.map.reg_db.cdb Binary files differ diff --git a/db/lights.cbx.xml b/db/lights.cbx.xml new file mode 100644 index 0000000..8d699c9 --- /dev/null +++ b/db/lights.cbx.xml @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/db/lights.cmp.bpm b/db/lights.cmp.bpm new file mode 100644 index 0000000..1b1e21d --- /dev/null +++ b/db/lights.cmp.bpm Binary files differ diff --git a/db/lights.cmp.cdb b/db/lights.cmp.cdb new file mode 100644 index 0000000..c4330a5 --- /dev/null +++ b/db/lights.cmp.cdb Binary files differ diff --git a/db/lights.cmp.hdb b/db/lights.cmp.hdb new file mode 100644 index 0000000..38ffd90 --- /dev/null +++ b/db/lights.cmp.hdb Binary files differ diff --git a/db/lights.cmp.idb b/db/lights.cmp.idb new file mode 100644 index 0000000..4ec9861 --- /dev/null +++ b/db/lights.cmp.idb Binary files differ diff --git a/db/lights.cmp.kpt b/db/lights.cmp.kpt new file mode 100644 index 0000000..647b550 --- /dev/null +++ b/db/lights.cmp.kpt Binary files differ diff --git a/db/lights.cmp.logdb b/db/lights.cmp.logdb new file mode 100644 index 0000000..9ea246c --- /dev/null +++ b/db/lights.cmp.logdb @@ -0,0 +1,164 @@ +v1 +IO_RULES,NUM_PINS_NOT_EXCEED_LOC_AVAILABLE,PASS,IO_000001,Capacity Checks,Number of pins in an I/O bank should not exceed the number of locations available.,Critical,0 such failures found.,,I/O,, +IO_RULES,NUM_CLKS_NOT_EXCEED_CLKS_AVAILABLE,INAPPLICABLE,IO_000002,Capacity Checks,Number of clocks in an I/O bank should not exceed the number of clocks available.,Critical,No Global Signal assignments found.,,I/O,, +IO_RULES,NUM_VREF_NOT_EXCEED_LOC_AVAILABLE,PASS,IO_000003,Capacity Checks,Number of pins in a Vrefgroup should not exceed the number of locations available.,Critical,0 such failures found.,,I/O,, +IO_RULES,IO_BANK_SUPPORT_VCCIO,INAPPLICABLE,IO_000004,Voltage Compatibility Checks,The I/O bank should support the requested VCCIO.,Critical,No IOBANK_VCCIO assignments found.,,I/O,, +IO_RULES,IO_BANK_NOT_HAVE_COMPETING_VREF,INAPPLICABLE,IO_000005,Voltage Compatibility Checks,The I/O bank should not have competing VREF values.,Critical,No VREF I/O Standard assignments found.,,I/O,, +IO_RULES,IO_BANK_NOT_HAVE_COMPETING_VCCIO,PASS,IO_000006,Voltage Compatibility Checks,The I/O bank should not have competing VCCIO values.,Critical,0 such failures found.,,I/O,, +IO_RULES,CHECK_UNAVAILABLE_LOC,PASS,IO_000007,Valid Location Checks,Checks for unavailable locations.,Critical,0 such failures found.,,I/O,, +IO_RULES,CHECK_RESERVED_LOC,INAPPLICABLE,IO_000008,Valid Location Checks,Checks for reserved locations.,Critical,No reserved LogicLock region found.,,I/O,, +IO_RULES,LOC_SUPPORT_IO_STD,PASS,IO_000009,I/O Properties Checks for One I/O,The location should support the requested I/O standard.,Critical,0 such failures found.,,I/O,, +IO_RULES,LOC_SUPPORT_IO_DIR,PASS,IO_000010,I/O Properties Checks for One I/O,The location should support the requested I/O direction.,Critical,0 such failures found.,,I/O,, +IO_RULES,LOC_SUPPORT_CURRENT_STRENGTH,INAPPLICABLE,IO_000011,I/O Properties Checks for One I/O,The location should support the requested Current Strength.,Critical,No Current Strength assignments found.,,I/O,, +IO_RULES,LOC_SUPPORT_OCT_VALUE,PASS,IO_000012,I/O Properties Checks for One I/O,The location should support the requested On Chip Termination value.,Critical,0 such failures found.,,I/O,, +IO_RULES,LOC_SUPPORT_BUS_HOLD_VALUE,INAPPLICABLE,IO_000013,I/O Properties Checks for One I/O,The location should support the requested Bus Hold value.,Critical,No Enable Bus-Hold Circuitry assignments found.,,I/O,, +IO_RULES,LOC_SUPPORT_WEAK_PULL_UP_VALUE,INAPPLICABLE,IO_000014,I/O Properties Checks for One I/O,The location should support the requested Weak Pull Up value.,Critical,No Weak Pull-Up Resistor assignments found.,,I/O,, +IO_RULES,LOC_SUPPORT_PCI_CLAMP_DIODE,PASS,IO_000015,I/O Properties Checks for One I/O,The location should support the requested PCI Clamp Diode.,Critical,0 such failures found.,,I/O,, +IO_RULES,IO_STD_SUPPORT_CURRENT_STRENGTH,INAPPLICABLE,IO_000018,I/O Properties Checks for One I/O,The I/O standard should support the requested Current Strength.,Critical,No Current Strength assignments found.,,I/O,, +IO_RULES,IO_STD_SUPPORT_OCT_VALUE,PASS,IO_000019,I/O Properties Checks for One I/O,The I/O standard should support the requested On Chip Termination value.,Critical,0 such failures found.,,I/O,, +IO_RULES,IO_STD_SUPPORT_PCI_CLAMP_DIODE,PASS,IO_000020,I/O Properties Checks for One I/O,The I/O standard should support the requested PCI Clamp Diode.,Critical,0 such failures found.,,I/O,, +IO_RULES,IO_STD_SUPPORT_WEAK_PULL_UP_VALUE,INAPPLICABLE,IO_000021,I/O Properties Checks for One I/O,The I/O standard should support the requested Weak Pull Up value.,Critical,No Weak Pull-Up Resistor assignments found.,,I/O,, +IO_RULES,IO_STD_SUPPORT_BUS_HOLD_VALUE,INAPPLICABLE,IO_000022,I/O Properties Checks for One I/O,The I/O standard should support the requested Bus Hold value.,Critical,No Enable Bus-Hold Circuitry assignments found.,,I/O,, +IO_RULES,IO_STD_SUPPORT_OPEN_DRAIN_VALUE,INAPPLICABLE,IO_000023,I/O Properties Checks for One I/O,The I/O standard should support the Open Drain value.,Critical,No open drain assignments found.,,I/O,, +IO_RULES,IO_DIR_SUPPORT_OCT_VALUE,PASS,IO_000024,I/O Properties Checks for One I/O,The I/O direction should support the On Chip Termination value.,Critical,0 such failures found.,,I/O,, +IO_RULES,OCT_AND_CURRENT_STRENGTH_NOT_USED_SIMULTANEOUSLY,INAPPLICABLE,IO_000026,I/O Properties Checks for One I/O,On Chip Termination and Current Strength should not be used at the same time.,Critical,No Current Strength assignments found.,,I/O,, +IO_RULES,WEAK_PULL_UP_AND_BUS_HOLD_NOT_USED_SIMULTANEOUSLY,INAPPLICABLE,IO_000027,I/O Properties Checks for One I/O,Weak Pull Up and Bus Hold should not be used at the same time.,Critical,No Enable Bus-Hold Circuitry or Weak Pull-Up Resistor assignments found.,,I/O,, +IO_RULES,IO_STD_SUPPORTS_SLEW_RATE,INAPPLICABLE,IO_000045,I/O Properties Checks for One I/O,The I/O standard should support the requested Slew Rate value.,Critical,No Slew Rate assignments found.,,I/O,, +IO_RULES,LOC_SUPPORTS_SLEW_RATE,INAPPLICABLE,IO_000046,I/O Properties Checks for One I/O,The location should support the requested Slew Rate value.,Critical,No Slew Rate assignments found.,,I/O,, +IO_RULES,OCT_SUPPORTS_SLEW_RATE,INAPPLICABLE,IO_000047,I/O Properties Checks for One I/O,On Chip Termination and Slew Rate should not be used at the same time.,Critical,No Slew Rate assignments found.,,I/O,, +IO_RULES,CURRENT_DENSITY_FOR_CONSECUTIVE_IO_NOT_EXCEED_CURRENT_VALUE,PASS,IO_000033,Electromigration Checks,Current density for consecutive I/Os should not exceed 240mA for row I/Os and 240mA for column I/Os.,Critical,0 such failures found.,,I/O,, +IO_RULES,SINGLE_ENDED_OUTPUTS_LAB_ROWS_FROM_DIFF_IO,INAPPLICABLE,IO_000034,SI Related Distance Checks,Single-ended outputs should be 5 LAB row(s) away from a differential I/O.,High,No Differential I/O Standard assignments found.,,I/O,, +IO_RULES,MAX_20_OUTPUTS_ALLOWED_IN_VREFGROUP,INAPPLICABLE,IO_000042,SI Related SSO Limit Checks,No more than 20 outputs are allowed in a VREF group when VREF is being read from.,High,No VREF I/O Standard assignments found.,,I/O,, +IO_RULES,DEV_IO_RULE_OCT_DISCLAIMER,,,,,,,,,, +IO_RULES_MATRIX,Pin/Rules,IO_000001;IO_000002;IO_000003;IO_000004;IO_000005;IO_000006;IO_000007;IO_000008;IO_000009;IO_000010;IO_000011;IO_000012;IO_000013;IO_000014;IO_000015;IO_000018;IO_000019;IO_000020;IO_000021;IO_000022;IO_000023;IO_000024;IO_000026;IO_000027;IO_000045;IO_000046;IO_000047;IO_000033;IO_000034;IO_000042, +IO_RULES_MATRIX,Total Pass,118;0;118;0;0;122;118;0;122;122;0;49;0;0;31;0;49;31;0;0;0;49;0;0;0;0;0;122;0;0, +IO_RULES_MATRIX,Total Unchecked,0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0, +IO_RULES_MATRIX,Total Inapplicable,4;122;4;122;122;0;4;122;0;0;122;73;122;122;91;122;73;91;122;122;122;73;122;122;122;122;122;0;122;122, +IO_RULES_MATRIX,Total Fail,0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0, +IO_RULES_MATRIX,LEDG[0],Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, +IO_RULES_MATRIX,LEDG[1],Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, +IO_RULES_MATRIX,LEDG[2],Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, +IO_RULES_MATRIX,LEDG[3],Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, +IO_RULES_MATRIX,LEDG[4],Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, +IO_RULES_MATRIX,LEDG[5],Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, +IO_RULES_MATRIX,LEDG[6],Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, +IO_RULES_MATRIX,LEDG[7],Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, +IO_RULES_MATRIX,LEDR[0],Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, +IO_RULES_MATRIX,LEDR[1],Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, +IO_RULES_MATRIX,LEDR[2],Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, +IO_RULES_MATRIX,LEDR[3],Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, +IO_RULES_MATRIX,LEDR[4],Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, +IO_RULES_MATRIX,LEDR[5],Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, +IO_RULES_MATRIX,LEDR[6],Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, +IO_RULES_MATRIX,LEDR[7],Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, +IO_RULES_MATRIX,LEDR[8],Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, +IO_RULES_MATRIX,LEDR[9],Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, +IO_RULES_MATRIX,LEDR[10],Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, +IO_RULES_MATRIX,LEDR[11],Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, +IO_RULES_MATRIX,LEDR[12],Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, +IO_RULES_MATRIX,LEDR[13],Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, +IO_RULES_MATRIX,LEDR[14],Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, +IO_RULES_MATRIX,LEDR[15],Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, +IO_RULES_MATRIX,LEDR[16],Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, +IO_RULES_MATRIX,LEDR[17],Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, +IO_RULES_MATRIX,HEX0[0],Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, +IO_RULES_MATRIX,HEX0[1],Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, +IO_RULES_MATRIX,HEX0[2],Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, +IO_RULES_MATRIX,HEX0[3],Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, +IO_RULES_MATRIX,HEX0[4],Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, +IO_RULES_MATRIX,HEX0[5],Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, +IO_RULES_MATRIX,HEX0[6],Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, +IO_RULES_MATRIX,HEX1[0],Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, +IO_RULES_MATRIX,HEX1[1],Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, +IO_RULES_MATRIX,HEX1[2],Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, +IO_RULES_MATRIX,HEX1[3],Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, +IO_RULES_MATRIX,HEX1[4],Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, +IO_RULES_MATRIX,HEX1[5],Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, +IO_RULES_MATRIX,HEX1[6],Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, +IO_RULES_MATRIX,HEX2[0],Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, +IO_RULES_MATRIX,HEX2[1],Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, +IO_RULES_MATRIX,HEX2[2],Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, +IO_RULES_MATRIX,HEX2[3],Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, +IO_RULES_MATRIX,HEX2[4],Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, +IO_RULES_MATRIX,HEX2[5],Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, +IO_RULES_MATRIX,HEX2[6],Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, +IO_RULES_MATRIX,HEX3[0],Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, +IO_RULES_MATRIX,HEX3[1],Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, +IO_RULES_MATRIX,HEX3[2],Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, +IO_RULES_MATRIX,HEX3[3],Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, +IO_RULES_MATRIX,HEX3[4],Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, +IO_RULES_MATRIX,HEX3[5],Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, +IO_RULES_MATRIX,HEX3[6],Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, +IO_RULES_MATRIX,HEX4[0],Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, +IO_RULES_MATRIX,HEX4[1],Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, +IO_RULES_MATRIX,HEX4[2],Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, +IO_RULES_MATRIX,HEX4[3],Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, +IO_RULES_MATRIX,HEX4[4],Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, +IO_RULES_MATRIX,HEX4[5],Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, +IO_RULES_MATRIX,HEX4[6],Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, +IO_RULES_MATRIX,HEX5[0],Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, +IO_RULES_MATRIX,HEX5[1],Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, +IO_RULES_MATRIX,HEX5[2],Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, +IO_RULES_MATRIX,HEX5[3],Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, +IO_RULES_MATRIX,HEX5[4],Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, +IO_RULES_MATRIX,HEX5[5],Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, +IO_RULES_MATRIX,HEX5[6],Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, +IO_RULES_MATRIX,HEX6[0],Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, +IO_RULES_MATRIX,HEX6[1],Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, +IO_RULES_MATRIX,HEX6[2],Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, +IO_RULES_MATRIX,HEX6[3],Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, +IO_RULES_MATRIX,HEX6[4],Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, +IO_RULES_MATRIX,HEX6[5],Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, +IO_RULES_MATRIX,HEX6[6],Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, +IO_RULES_MATRIX,HEX7[0],Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, +IO_RULES_MATRIX,HEX7[1],Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, +IO_RULES_MATRIX,HEX7[2],Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, +IO_RULES_MATRIX,HEX7[3],Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, +IO_RULES_MATRIX,HEX7[4],Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, +IO_RULES_MATRIX,HEX7[5],Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, +IO_RULES_MATRIX,HEX7[6],Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, +IO_RULES_MATRIX,LCD_RS,Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, +IO_RULES_MATRIX,LCD_RW,Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, +IO_RULES_MATRIX,LCD_data[0],Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, +IO_RULES_MATRIX,LCD_data[1],Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, +IO_RULES_MATRIX,LCD_data[2],Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, +IO_RULES_MATRIX,LCD_data[3],Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, +IO_RULES_MATRIX,LCD_data[4],Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, +IO_RULES_MATRIX,LCD_data[5],Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, +IO_RULES_MATRIX,LCD_data[6],Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, +IO_RULES_MATRIX,LCD_data[7],Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, +IO_RULES_MATRIX,LCD_EN,Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, +IO_RULES_MATRIX,LCD_ON,Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, +IO_RULES_MATRIX,LCD_BLON,Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, +IO_RULES_MATRIX,CLOCK_50,Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, +IO_RULES_MATRIX,SW[0],Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, +IO_RULES_MATRIX,KEY[1],Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, +IO_RULES_MATRIX,SW[1],Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, +IO_RULES_MATRIX,KEY[2],Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, +IO_RULES_MATRIX,SW[2],Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, +IO_RULES_MATRIX,KEY[3],Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, +IO_RULES_MATRIX,SW[3],Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, +IO_RULES_MATRIX,SW[4],Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, +IO_RULES_MATRIX,SW[5],Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, +IO_RULES_MATRIX,SW[6],Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, +IO_RULES_MATRIX,SW[7],Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, +IO_RULES_MATRIX,SW[8],Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, +IO_RULES_MATRIX,SW[9],Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, +IO_RULES_MATRIX,SW[10],Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, +IO_RULES_MATRIX,SW[11],Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, +IO_RULES_MATRIX,SW[12],Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, +IO_RULES_MATRIX,SW[13],Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, +IO_RULES_MATRIX,SW[14],Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, +IO_RULES_MATRIX,SW[15],Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, +IO_RULES_MATRIX,SW[16],Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, +IO_RULES_MATRIX,SW[17],Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, +IO_RULES_MATRIX,KEY[0],Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, +IO_RULES_MATRIX,altera_reserved_tms,Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, +IO_RULES_MATRIX,altera_reserved_tck,Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, +IO_RULES_MATRIX,altera_reserved_tdi,Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, +IO_RULES_MATRIX,altera_reserved_tdo,Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, +IO_RULES_SUMMARY,Total I/O Rules,30, +IO_RULES_SUMMARY,Number of I/O Rules Passed,12, +IO_RULES_SUMMARY,Number of I/O Rules Failed,0, +IO_RULES_SUMMARY,Number of I/O Rules Unchecked,0, +IO_RULES_SUMMARY,Number of I/O Rules Inapplicable,18, diff --git a/db/lights.cmp.rdb b/db/lights.cmp.rdb new file mode 100644 index 0000000..be196ad --- /dev/null +++ b/db/lights.cmp.rdb Binary files differ diff --git a/db/lights.cmp_merge.kpt b/db/lights.cmp_merge.kpt new file mode 100644 index 0000000..07f5db6 --- /dev/null +++ b/db/lights.cmp_merge.kpt Binary files differ diff --git a/db/lights.cycloneive_io_sim_cache.45um_ff_1200mv_0c_fast.hsd b/db/lights.cycloneive_io_sim_cache.45um_ff_1200mv_0c_fast.hsd new file mode 100644 index 0000000..246e7b7 --- /dev/null +++ b/db/lights.cycloneive_io_sim_cache.45um_ff_1200mv_0c_fast.hsd Binary files differ diff --git a/db/lights.cycloneive_io_sim_cache.45um_ii_1200mv_0c_slow.hsd b/db/lights.cycloneive_io_sim_cache.45um_ii_1200mv_0c_slow.hsd new file mode 100644 index 0000000..a0ed3e0 --- /dev/null +++ b/db/lights.cycloneive_io_sim_cache.45um_ii_1200mv_0c_slow.hsd Binary files differ diff --git a/db/lights.cycloneive_io_sim_cache.45um_ii_1200mv_85c_slow.hsd b/db/lights.cycloneive_io_sim_cache.45um_ii_1200mv_85c_slow.hsd new file mode 100644 index 0000000..9930150 --- /dev/null +++ b/db/lights.cycloneive_io_sim_cache.45um_ii_1200mv_85c_slow.hsd Binary files differ diff --git a/db/lights.db_info b/db/lights.db_info new file mode 100644 index 0000000..c7989f2 --- /dev/null +++ b/db/lights.db_info @@ -0,0 +1,3 @@ +Quartus_Version = Version 13.0.1 Build 232 06/12/2013 Service Pack 1 SJ Web Edition +Version_Index = 302049280 +Creation_Time = Fri Dec 16 14:28:17 2016 diff --git a/db/lights.fit.qmsg b/db/lights.fit.qmsg new file mode 100644 index 0000000..6bdc00b --- /dev/null +++ b/db/lights.fit.qmsg @@ -0,0 +1,53 @@ +{ "Warning" "WQCU_PARALLEL_NO_LICENSE" "" "Parallel compilation is not licensed and has been disabled" { } { } 0 20028 "Parallel compilation is not licensed and has been disabled" 0 0 "Fitter" 0 -1 1480609963052 ""} +{ "Info" "IMPP_MPP_USER_DEVICE" "lights EP4CE115F29C7 " "Selected device EP4CE115F29C7 for design \"lights\"" { } { } 0 119006 "Selected device %2!s! for design \"%1!s!\"" 0 0 "Fitter" 0 -1 1480609963096 ""} +{ "Info" "ICUT_CUT_USING_OPERATING_CONDITION" "Core supply voltage 1.2V " "Core supply voltage is 1.2V" { } { } 0 21077 "%1!s! is %2!s!" 0 0 "Fitter" 0 -1 1480609963161 ""} +{ "Info" "ICUT_CUT_USING_OPERATING_CONDITION" "Low junction temperature 0 degrees C " "Low junction temperature is 0 degrees C" { } { } 0 21077 "%1!s! is %2!s!" 0 0 "Fitter" 0 -1 1480609963162 ""} +{ "Info" "ICUT_CUT_USING_OPERATING_CONDITION" "High junction temperature 85 degrees C " "High junction temperature is 85 degrees C" { } { } 0 21077 "%1!s! is %2!s!" 0 0 "Fitter" 0 -1 1480609963162 ""} +{ "Info" "IFITCC_FITCC_INFO_AUTO_FIT_COMPILATION_ON" "" "Fitter is performing an Auto Fit compilation, which may decrease Fitter effort to reduce compilation time" { } { } 0 171003 "Fitter is performing an Auto Fit compilation, which may decrease Fitter effort to reduce compilation time" 0 0 "Fitter" 0 -1 1480609963377 ""} +{ "Warning" "WCPT_FEATURE_DISABLED_POST" "LogicLock " "Feature LogicLock is only available with a valid subscription license. You can purchase a software subscription to gain full access to this feature." { } { } 0 292013 "Feature %1!s! is only available with a valid subscription license. You can purchase a software subscription to gain full access to this feature." 0 0 "Fitter" 0 -1 1480609963389 ""} +{ "Info" "IFSAC_FSAC_MIGRATION_NOT_SELECTED" "" "Device migration not selected. If you intend to use device migration later, you may need to change the pin assignments as they may be incompatible with other devices" { { "Info" "IFSAC_FSAC_MIGRATION_NOT_SELECTED_SUB" "EP4CE40F29C7 " "Device EP4CE40F29C7 is compatible" { } { } 2 176445 "Device %1!s! is compatible" 0 0 "Quartus II" 0 -1 1480609964002 ""} { "Info" "IFSAC_FSAC_MIGRATION_NOT_SELECTED_SUB" "EP4CE40F29I7 " "Device EP4CE40F29I7 is compatible" { } { } 2 176445 "Device %1!s! is compatible" 0 0 "Quartus II" 0 -1 1480609964002 ""} { "Info" "IFSAC_FSAC_MIGRATION_NOT_SELECTED_SUB" "EP4CE30F29C7 " "Device EP4CE30F29C7 is compatible" { } { } 2 176445 "Device %1!s! is compatible" 0 0 "Quartus II" 0 -1 1480609964002 ""} { "Info" "IFSAC_FSAC_MIGRATION_NOT_SELECTED_SUB" "EP4CE30F29I7 " "Device EP4CE30F29I7 is compatible" { } { } 2 176445 "Device %1!s! is compatible" 0 0 "Quartus II" 0 -1 1480609964002 ""} { "Info" "IFSAC_FSAC_MIGRATION_NOT_SELECTED_SUB" "EP4CE55F29C7 " "Device EP4CE55F29C7 is compatible" { } { } 2 176445 "Device %1!s! is compatible" 0 0 "Quartus II" 0 -1 1480609964002 ""} { "Info" "IFSAC_FSAC_MIGRATION_NOT_SELECTED_SUB" "EP4CE55F29I7 " "Device EP4CE55F29I7 is compatible" { } { } 2 176445 "Device %1!s! is compatible" 0 0 "Quartus II" 0 -1 1480609964002 ""} { "Info" "IFSAC_FSAC_MIGRATION_NOT_SELECTED_SUB" "EP4CE75F29C7 " "Device EP4CE75F29C7 is compatible" { } { } 2 176445 "Device %1!s! is compatible" 0 0 "Quartus II" 0 -1 1480609964002 ""} { "Info" "IFSAC_FSAC_MIGRATION_NOT_SELECTED_SUB" "EP4CE75F29I7 " "Device EP4CE75F29I7 is compatible" { } { } 2 176445 "Device %1!s! is compatible" 0 0 "Quartus II" 0 -1 1480609964002 ""} { "Info" "IFSAC_FSAC_MIGRATION_NOT_SELECTED_SUB" "EP4CE115F29I7 " "Device EP4CE115F29I7 is compatible" { } { } 2 176445 "Device %1!s! is compatible" 0 0 "Quartus II" 0 -1 1480609964002 ""} } { } 2 176444 "Device migration not selected. If you intend to use device migration later, you may need to change the pin assignments as they may be incompatible with other devices" 0 0 "Fitter" 0 -1 1480609964002 ""} +{ "Info" "IFIOMGR_RESERVED_PIN_WITH_LOCATION" "5 " "Fitter converted 5 user pins into dedicated programming pins" { { "Info" "IFIOMGR_RESERVED_PIN_WITH_LOCATION_SUB" "~ALTERA_ASDO_DATA1~ F4 " "Pin ~ALTERA_ASDO_DATA1~ is reserved at location F4" { } { { "c:/altera/13.0sp1/quartus/bin64/pin_planner.ppl" "" { PinPlanner "c:/altera/13.0sp1/quartus/bin64/pin_planner.ppl" { ~ALTERA_ASDO_DATA1~ } } } { "c:/altera/13.0sp1/quartus/bin64/TimingClosureFloorplan.fld" "" { Floorplan "c:/altera/13.0sp1/quartus/bin64/TimingClosureFloorplan.fld" "" "" { ~ALTERA_ASDO_DATA1~ } "NODE_NAME" } } { "temporary_test_loc" "" { Generic "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/" { { 0 { 0 ""} 0 11996 9224 9983 0} } } } } 0 169125 "Pin %1!s! is reserved at location %2!s!" 0 0 "Quartus II" 0 -1 1480609964012 ""} { "Info" "IFIOMGR_RESERVED_PIN_WITH_LOCATION_SUB" "~ALTERA_FLASH_nCE_nCSO~ E2 " "Pin ~ALTERA_FLASH_nCE_nCSO~ is reserved at location E2" { } { { "c:/altera/13.0sp1/quartus/bin64/pin_planner.ppl" "" { PinPlanner "c:/altera/13.0sp1/quartus/bin64/pin_planner.ppl" { ~ALTERA_FLASH_nCE_nCSO~ } } } { "c:/altera/13.0sp1/quartus/bin64/TimingClosureFloorplan.fld" "" { Floorplan "c:/altera/13.0sp1/quartus/bin64/TimingClosureFloorplan.fld" "" "" { ~ALTERA_FLASH_nCE_nCSO~ } "NODE_NAME" } } { "temporary_test_loc" "" { Generic "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/" { { 0 { 0 ""} 0 11998 9224 9983 0} } } } } 0 169125 "Pin %1!s! is reserved at location %2!s!" 0 0 "Quartus II" 0 -1 1480609964012 ""} { "Info" "IFIOMGR_RESERVED_PIN_WITH_LOCATION_SUB" "~ALTERA_DCLK~ P3 " "Pin ~ALTERA_DCLK~ is reserved at location P3" { } { { "c:/altera/13.0sp1/quartus/bin64/pin_planner.ppl" "" { PinPlanner "c:/altera/13.0sp1/quartus/bin64/pin_planner.ppl" { ~ALTERA_DCLK~ } } } { "c:/altera/13.0sp1/quartus/bin64/TimingClosureFloorplan.fld" "" { Floorplan "c:/altera/13.0sp1/quartus/bin64/TimingClosureFloorplan.fld" "" "" { ~ALTERA_DCLK~ } "NODE_NAME" } } { "temporary_test_loc" "" { Generic "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/" { { 0 { 0 ""} 0 12000 9224 9983 0} } } } } 0 169125 "Pin %1!s! is reserved at location %2!s!" 0 0 "Quartus II" 0 -1 1480609964012 ""} { "Info" "IFIOMGR_RESERVED_PIN_WITH_LOCATION_SUB" "~ALTERA_DATA0~ N7 " "Pin ~ALTERA_DATA0~ is reserved at location N7" { } { { "c:/altera/13.0sp1/quartus/bin64/pin_planner.ppl" "" { PinPlanner "c:/altera/13.0sp1/quartus/bin64/pin_planner.ppl" { ~ALTERA_DATA0~ } } } { "c:/altera/13.0sp1/quartus/bin64/TimingClosureFloorplan.fld" "" { Floorplan "c:/altera/13.0sp1/quartus/bin64/TimingClosureFloorplan.fld" "" "" { ~ALTERA_DATA0~ } "NODE_NAME" } } { "temporary_test_loc" "" { Generic "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/" { { 0 { 0 ""} 0 12002 9224 9983 0} } } } } 0 169125 "Pin %1!s! is reserved at location %2!s!" 0 0 "Quartus II" 0 -1 1480609964012 ""} { "Info" "IFIOMGR_RESERVED_PIN_WITH_LOCATION_SUB" "~ALTERA_nCEO~ P28 " "Pin ~ALTERA_nCEO~ is reserved at location P28" { } { { "c:/altera/13.0sp1/quartus/bin64/pin_planner.ppl" "" { PinPlanner "c:/altera/13.0sp1/quartus/bin64/pin_planner.ppl" { ~ALTERA_nCEO~ } } } { "c:/altera/13.0sp1/quartus/bin64/TimingClosureFloorplan.fld" "" { Floorplan "c:/altera/13.0sp1/quartus/bin64/TimingClosureFloorplan.fld" "" "" { ~ALTERA_nCEO~ } "NODE_NAME" } } { "temporary_test_loc" "" { Generic "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/" { { 0 { 0 ""} 0 12004 9224 9983 0} } } } } 0 169125 "Pin %1!s! is reserved at location %2!s!" 0 0 "Quartus II" 0 -1 1480609964012 ""} } { } 0 169124 "Fitter converted %1!d! user pins into dedicated programming pins" 0 0 "Fitter" 0 -1 1480609964012 ""} +{ "Warning" "WCUT_CUT_ATOM_PINS_WITH_INCOMPLETE_IO_ASSIGNMENTS" "" "Some pins have incomplete I/O assignments. Refer to the I/O Assignment Warnings report for details" { } { } 0 15714 "Some pins have incomplete I/O assignments. Refer to the I/O Assignment Warnings report for details" 0 0 "Fitter" 0 -1 1480609964015 ""} +{ "Info" "IFSAC_FSAC_RAM_METASTABILITY_INFO" "" "Design uses memory blocks. Violating setup or hold times of memory block address registers for either read or write operations could cause memory contents to be corrupted. Make sure that all memory block address registers meet the setup and hold time requirements." { } { } 0 176045 "Design uses memory blocks. Violating setup or hold times of memory block address registers for either read or write operations could cause memory contents to be corrupted. Make sure that all memory block address registers meet the setup and hold time requirements." 0 0 "Fitter" 0 -1 1480609964056 ""} +{ "Info" "ISTA_SDC_STATEMENT_PARENT" "" "Evaluating HDL-embedded SDC commands" { { "Info" "ISTA_SDC_STATEMENT_ENTITY" "alt_jtag_atlantic " "Entity alt_jtag_atlantic" { { "Info" "ISTA_SDC_STATEMENT_EVAL" "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|jupdate\}\] -to \[get_registers \{*\|alt_jtag_atlantic:*\|jupdate1*\}\] " "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|jupdate\}\] -to \[get_registers \{*\|alt_jtag_atlantic:*\|jupdate1*\}\] " { } { } 0 332166 "%1!s!" 0 0 "Quartus II" 0 -1 1480609966897 ""} { "Info" "ISTA_SDC_STATEMENT_EVAL" "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|rdata\[*\]\}\] -to \[get_registers \{*\|alt_jtag_atlantic*\|td_shift\[*\]\}\] " "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|rdata\[*\]\}\] -to \[get_registers \{*\|alt_jtag_atlantic*\|td_shift\[*\]\}\]" { } { } 0 332166 "%1!s!" 0 0 "Quartus II" 0 -1 1480609966897 ""} { "Info" "ISTA_SDC_STATEMENT_EVAL" "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|rdata\[*\]\}\] -to \[get_registers \{*\|alt_jtag_atlantic*\|td_shift\[*\]\}\] " "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|rdata\[*\]\}\] -to \[get_registers \{*\|alt_jtag_atlantic*\|td_shift\[*\]\}\]" { } { } 0 332166 "%1!s!" 0 0 "Quartus II" 0 -1 1480609966897 ""} { "Info" "ISTA_SDC_STATEMENT_EVAL" "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|rdata\[*\]\}\] -to \[get_registers \{*\|alt_jtag_atlantic*\|td_shift\[*\]\}\] " "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|rdata\[*\]\}\] -to \[get_registers \{*\|alt_jtag_atlantic*\|td_shift\[*\]\}\]" { } { } 0 332166 "%1!s!" 0 0 "Quartus II" 0 -1 1480609966897 ""} { "Info" "ISTA_SDC_STATEMENT_EVAL" "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|rdata\[*\]\}\] -to \[get_registers \{*\|alt_jtag_atlantic*\|td_shift\[*\]\}\] " "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|rdata\[*\]\}\] -to \[get_registers \{*\|alt_jtag_atlantic*\|td_shift\[*\]\}\]" { } { } 0 332166 "%1!s!" 0 0 "Quartus II" 0 -1 1480609966897 ""} { "Info" "ISTA_SDC_STATEMENT_EVAL" "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|rdata\[*\]\}\] -to \[get_registers \{*\|alt_jtag_atlantic*\|td_shift\[*\]\}\] " "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|rdata\[*\]\}\] -to \[get_registers \{*\|alt_jtag_atlantic*\|td_shift\[*\]\}\]" { } { } 0 332166 "%1!s!" 0 0 "Quartus II" 0 -1 1480609966897 ""} { "Info" "ISTA_SDC_STATEMENT_EVAL" "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|rdata\[*\]\}\] -to \[get_registers \{*\|alt_jtag_atlantic*\|td_shift\[*\]\}\] " "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|rdata\[*\]\}\] -to \[get_registers \{*\|alt_jtag_atlantic*\|td_shift\[*\]\}\]" { } { } 0 332166 "%1!s!" 0 0 "Quartus II" 0 -1 1480609966897 ""} { "Info" "ISTA_SDC_STATEMENT_EVAL" "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|rdata\[*\]\}\] -to \[get_registers \{*\|alt_jtag_atlantic*\|td_shift\[*\]\}\] " "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|rdata\[*\]\}\] -to \[get_registers \{*\|alt_jtag_atlantic*\|td_shift\[*\]\}\]" { } { } 0 332166 "%1!s!" 0 0 "Quartus II" 0 -1 1480609966897 ""} { "Info" "ISTA_SDC_STATEMENT_EVAL" "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|rdata\[*\]\}\] -to \[get_registers \{*\|alt_jtag_atlantic*\|td_shift\[*\]\}\] " "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|rdata\[*\]\}\] -to \[get_registers \{*\|alt_jtag_atlantic*\|td_shift\[*\]\}\]" { } { } 0 332166 "%1!s!" 0 0 "Quartus II" 0 -1 1480609966897 ""} { "Info" "ISTA_SDC_STATEMENT_EVAL" "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|read\}\] -to \[get_registers \{*\|alt_jtag_atlantic:*\|read1*\}\] " "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|read\}\] -to \[get_registers \{*\|alt_jtag_atlantic:*\|read1*\}\] " { } { } 0 332166 "%1!s!" 0 0 "Quartus II" 0 -1 1480609966897 ""} { "Info" "ISTA_SDC_STATEMENT_EVAL" "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|read_req\}\] " "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|read_req\}\]" { } { } 0 332166 "%1!s!" 0 0 "Quartus II" 0 -1 1480609966897 ""} { "Info" "ISTA_SDC_STATEMENT_EVAL" "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|rvalid\}\] -to \[get_registers \{*\|alt_jtag_atlantic*\|td_shift\[*\]\}\] " "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|rvalid\}\] -to \[get_registers \{*\|alt_jtag_atlantic*\|td_shift\[*\]\}\]" { } { } 0 332166 "%1!s!" 0 0 "Quartus II" 0 -1 1480609966897 ""} { "Info" "ISTA_SDC_STATEMENT_EVAL" "set_false_path -from \[get_registers \{*\|t_dav\}\] -to \[get_registers \{*\|alt_jtag_atlantic:*\|tck_t_dav\}\] " "set_false_path -from \[get_registers \{*\|t_dav\}\] -to \[get_registers \{*\|alt_jtag_atlantic:*\|tck_t_dav\}\]" { } { } 0 332166 "%1!s!" 0 0 "Quartus II" 0 -1 1480609966897 ""} { "Info" "ISTA_SDC_STATEMENT_EVAL" "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|user_saw_rvalid\}\] -to \[get_registers \{*\|alt_jtag_atlantic:*\|rvalid0*\}\] " "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|user_saw_rvalid\}\] -to \[get_registers \{*\|alt_jtag_atlantic:*\|rvalid0*\}\]" { } { } 0 332166 "%1!s!" 0 0 "Quartus II" 0 -1 1480609966897 ""} { "Info" "ISTA_SDC_STATEMENT_EVAL" "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|wdata\[*\]\}\] -to \[get_registers \{*\}\] " "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|wdata\[*\]\}\] -to \[get_registers \{*\}\]" { } { } 0 332166 "%1!s!" 0 0 "Quartus II" 0 -1 1480609966897 ""} { "Info" "ISTA_SDC_STATEMENT_EVAL" "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|wdata\[*\]\}\] -to \[get_registers \{*\}\] " "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|wdata\[*\]\}\] -to \[get_registers \{*\}\]" { } { } 0 332166 "%1!s!" 0 0 "Quartus II" 0 -1 1480609966897 ""} { "Info" "ISTA_SDC_STATEMENT_EVAL" "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|wdata\[*\]\}\] -to \[get_registers \{*\}\] " "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|wdata\[*\]\}\] -to \[get_registers \{*\}\]" { } { } 0 332166 "%1!s!" 0 0 "Quartus II" 0 -1 1480609966897 ""} { "Info" "ISTA_SDC_STATEMENT_EVAL" "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|wdata\[*\]\}\] -to \[get_registers \{*\}\] " "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|wdata\[*\]\}\] -to \[get_registers \{*\}\]" { } { } 0 332166 "%1!s!" 0 0 "Quartus II" 0 -1 1480609966897 ""} { "Info" "ISTA_SDC_STATEMENT_EVAL" "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|wdata\[*\]\}\] -to \[get_registers \{*\}\] " "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|wdata\[*\]\}\] -to \[get_registers \{*\}\]" { } { } 0 332166 "%1!s!" 0 0 "Quartus II" 0 -1 1480609966897 ""} { "Info" "ISTA_SDC_STATEMENT_EVAL" "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|wdata\[*\]\}\] -to \[get_registers \{*\}\] " "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|wdata\[*\]\}\] -to \[get_registers \{*\}\]" { } { } 0 332166 "%1!s!" 0 0 "Quartus II" 0 -1 1480609966897 ""} { "Info" "ISTA_SDC_STATEMENT_EVAL" "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|wdata\[*\]\}\] -to \[get_registers \{*\}\] " "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|wdata\[*\]\}\] -to \[get_registers \{*\}\]" { } { } 0 332166 "%1!s!" 0 0 "Quartus II" 0 -1 1480609966897 ""} { "Info" "ISTA_SDC_STATEMENT_EVAL" "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|wdata\[*\]\}\] -to \[get_registers \{*\}\] " "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|wdata\[*\]\}\] -to \[get_registers \{*\}\]" { } { } 0 332166 "%1!s!" 0 0 "Quartus II" 0 -1 1480609966897 ""} { "Info" "ISTA_SDC_STATEMENT_EVAL" "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|write\}\] -to \[get_registers \{*\|alt_jtag_atlantic:*\|write1*\}\] " "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|write\}\] -to \[get_registers \{*\|alt_jtag_atlantic:*\|write1*\}\] " { } { } 0 332166 "%1!s!" 0 0 "Quartus II" 0 -1 1480609966897 ""} { "Info" "ISTA_SDC_STATEMENT_EVAL" "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|write_stalled\}\] -to \[get_registers \{*\|alt_jtag_atlantic:*\|t_ena*\}\] " "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|write_stalled\}\] -to \[get_registers \{*\|alt_jtag_atlantic:*\|t_ena*\}\]" { } { } 0 332166 "%1!s!" 0 0 "Quartus II" 0 -1 1480609966897 ""} { "Info" "ISTA_SDC_STATEMENT_EVAL" "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|write_stalled\}\] -to \[get_registers \{*\|alt_jtag_atlantic:*\|t_pause*\}\] " "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|write_stalled\}\] -to \[get_registers \{*\|alt_jtag_atlantic:*\|t_pause*\}\]" { } { } 0 332166 "%1!s!" 0 0 "Quartus II" 0 -1 1480609966897 ""} { "Info" "ISTA_SDC_STATEMENT_EVAL" "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|write_valid\}\] " "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|write_valid\}\]" { } { } 0 332166 "%1!s!" 0 0 "Quartus II" 0 -1 1480609966897 ""} } { } 0 332165 "Entity %1!s!" 0 0 "Quartus II" 0 -1 1480609966897 ""} { "Info" "ISTA_SDC_STATEMENT_ENTITY" "altera_std_synchronizer " "Entity altera_std_synchronizer" { { "Info" "ISTA_SDC_STATEMENT_EVAL" "set_false_path -to \[get_keepers \{*altera_std_synchronizer:*\|din_s1\}\] " "set_false_path -to \[get_keepers \{*altera_std_synchronizer:*\|din_s1\}\]" { } { } 0 332166 "%1!s!" 0 0 "Quartus II" 0 -1 1480609966897 ""} } { } 0 332165 "Entity %1!s!" 0 0 "Quartus II" 0 -1 1480609966897 ""} { "Info" "ISTA_SDC_STATEMENT_ENTITY" "sld_jtag_hub " "Entity sld_jtag_hub" { { "Info" "ISTA_SDC_STATEMENT_EVAL" "create_clock -name altera_reserved_tck \[get_ports \{altera_reserved_tck\}\] -period 10MHz " "create_clock -name altera_reserved_tck \[get_ports \{altera_reserved_tck\}\] -period 10MHz " { } { } 0 332166 "%1!s!" 0 0 "Quartus II" 0 -1 1480609966897 ""} { "Info" "ISTA_SDC_STATEMENT_EVAL" "set_clock_groups -asynchronous -group \{altera_reserved_tck\} " "set_clock_groups -asynchronous -group \{altera_reserved_tck\}" { } { } 0 332166 "%1!s!" 0 0 "Quartus II" 0 -1 1480609966897 ""} } { } 0 332165 "Entity %1!s!" 0 0 "Quartus II" 0 -1 1480609966897 ""} } { } 0 332164 "Evaluating HDL-embedded SDC commands" 0 0 "Fitter" 0 -1 1480609966897 ""} +{ "Critical Warning" "WSTA_SDC_NOT_FOUND" "lights.sdc " "Synopsys Design Constraints File file not found: 'lights.sdc'. A Synopsys Design Constraints File is required by the TimeQuest Timing Analyzer to get proper timing constraints. Without it, the Compiler will not properly optimize the design." { } { } 1 332012 "Synopsys Design Constraints File file not found: '%1!s!'. A Synopsys Design Constraints File is required by the TimeQuest Timing Analyzer to get proper timing constraints. Without it, the Compiler will not properly optimize the design." 0 0 "Fitter" 0 -1 1480609966945 ""} +{ "Warning" "WSTA_NODE_FOUND_WITHOUT_CLOCK_ASSIGNMENT" "CLOCK_50 " "Node: CLOCK_50 was determined to be a clock but was found without an associated clock assignment." { } { } 0 332060 "Node: %1!s! was determined to be a clock but was found without an associated clock assignment." 0 0 "Fitter" 0 -1 1480609966956 "|lights|CLOCK_50"} +{ "Critical Warning" "WSTA_NO_UNCERTAINTY_WAS_SET_PARENT" "" "The following clock transfers have no clock uncertainty assignment. For more accurate results, apply clock uncertainty assignments or use the derive_clock_uncertainty command." { { "Critical Warning" "WSTA_NO_UNCERTAINTY_WAS_SET_CHILD" "altera_reserved_tck (Rise) altera_reserved_tck (Rise) setup and hold " "From altera_reserved_tck (Rise) to altera_reserved_tck (Rise) (setup and hold)" { } { } 1 332169 "From %1!s! to %2!s! (%3!s!)" 0 0 "Quartus II" 0 -1 1480609967003 ""} { "Critical Warning" "WSTA_NO_UNCERTAINTY_WAS_SET_CHILD" "altera_reserved_tck (Rise) altera_reserved_tck (Fall) setup and hold " "From altera_reserved_tck (Rise) to altera_reserved_tck (Fall) (setup and hold)" { } { } 1 332169 "From %1!s! to %2!s! (%3!s!)" 0 0 "Quartus II" 0 -1 1480609967003 ""} { "Critical Warning" "WSTA_NO_UNCERTAINTY_WAS_SET_CHILD" "altera_reserved_tck (Fall) altera_reserved_tck (Fall) setup and hold " "From altera_reserved_tck (Fall) to altera_reserved_tck (Fall) (setup and hold)" { } { } 1 332169 "From %1!s! to %2!s! (%3!s!)" 0 0 "Quartus II" 0 -1 1480609967003 ""} } { } 1 332168 "The following clock transfers have no clock uncertainty assignment. For more accurate results, apply clock uncertainty assignments or use the derive_clock_uncertainty command." 0 0 "Fitter" 0 -1 1480609967003 ""} +{ "Info" "ISTA_USER_TDC_OPTIMIZATION_GOALS" "" "Detected timing requirements -- optimizing circuit to achieve only the specified requirements" { } { } 0 332129 "Detected timing requirements -- optimizing circuit to achieve only the specified requirements" 0 0 "Fitter" 0 -1 1480609967004 ""} +{ "Info" "ISTA_REPORT_CLOCKS_INFO" "Found 1 clocks " "Found 1 clocks" { { "Info" "ISTA_REPORT_CLOCKS_INFO" " Period Clock Name " " Period Clock Name" { } { } 0 332111 "%1!s!" 0 0 "Quartus II" 0 -1 1480609967004 ""} { "Info" "ISTA_REPORT_CLOCKS_INFO" "======== ============ " "======== ============" { } { } 0 332111 "%1!s!" 0 0 "Quartus II" 0 -1 1480609967004 ""} { "Info" "ISTA_REPORT_CLOCKS_INFO" " 100.000 altera_reserved_tck " " 100.000 altera_reserved_tck" { } { } 0 332111 "%1!s!" 0 0 "Quartus II" 0 -1 1480609967004 ""} } { } 0 332111 "%1!s!" 0 0 "Fitter" 0 -1 1480609967004 ""} +{ "Info" "IFSAC_FSAC_ASSIGN_AUTO_GLOBAL_TO_SIGNAL" "CLOCK_50~input (placed in PIN Y2 (CLK2, DIFFCLK_1p)) " "Automatically promoted node CLOCK_50~input (placed in PIN Y2 (CLK2, DIFFCLK_1p))" { { "Info" "IFSAC_FSAC_ASSIGN_AUTO_GLOBAL_TO_SIGNAL_FANOUTS" "destinations Global Clock CLKCTRL_G4 " "Automatically promoted destinations to use location or clock signal Global Clock CLKCTRL_G4" { } { } 0 176355 "Automatically promoted %1!s! to use location or clock signal %2!s!" 0 0 "Quartus II" 0 -1 1480609967253 ""} } { { "lights.vhd" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/lights.vhd" 5 0 0 } } { "c:/altera/13.0sp1/quartus/bin64/TimingClosureFloorplan.fld" "" { Floorplan "c:/altera/13.0sp1/quartus/bin64/TimingClosureFloorplan.fld" "" "" { CLOCK_50~input } "NODE_NAME" } } { "temporary_test_loc" "" { Generic "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/" { { 0 { 0 ""} 0 11964 9224 9983 0} } } } } 0 176353 "Automatically promoted node %1!s! %2!s!" 0 0 "Fitter" 0 -1 1480609967253 ""} +{ "Info" "IFSAC_FSAC_ASSIGN_AUTO_GLOBAL_TO_SIGNAL" "altera_internal_jtag~TCKUTAP " "Automatically promoted node altera_internal_jtag~TCKUTAP " { { "Info" "IFSAC_FSAC_ASSIGN_AUTO_GLOBAL_TO_SIGNAL_FANOUTS" "destinations Global Clock " "Automatically promoted destinations to use location or clock signal Global Clock" { } { } 0 176355 "Automatically promoted %1!s! to use location or clock signal %2!s!" 0 0 "Quartus II" 0 -1 1480609967254 ""} } { { "c:/altera/13.0sp1/quartus/bin64/TimingClosureFloorplan.fld" "" { Floorplan "c:/altera/13.0sp1/quartus/bin64/TimingClosureFloorplan.fld" "" "" { altera_internal_jtag~TDO } "NODE_NAME" } } { "temporary_test_loc" "" { Generic "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/" { { 0 { 0 ""} 0 4019 9224 9983 0} } } } } 0 176353 "Automatically promoted node %1!s! %2!s!" 0 0 "Fitter" 0 -1 1480609967254 ""} +{ "Info" "IFSAC_FSAC_ASSIGN_AUTO_GLOBAL_TO_SIGNAL" "nios_system:NiosII\|altera_reset_controller:rst_controller\|r_sync_rst " "Automatically promoted node nios_system:NiosII\|altera_reset_controller:rst_controller\|r_sync_rst " { { "Info" "IFSAC_FSAC_ASSIGN_AUTO_GLOBAL_TO_SIGNAL_FANOUTS" "destinations Global Clock " "Automatically promoted destinations to use location or clock signal Global Clock" { } { } 0 176355 "Automatically promoted %1!s! to use location or clock signal %2!s!" 0 0 "Quartus II" 0 -1 1480609967254 ""} { "Info" "IFSAC_FSAC_GLOBAL_UNASSIGNED_FANOUTS" "" "Following destination nodes may be non-global or may not use global or regional clocks" { { "Info" "IFSAC_FSAC_GLOBAL_UNASSIGNED_FANOUTS_SUB" "nios_system:NiosII\|altera_reset_controller:rst_controller\|WideOr0~0 " "Destination node nios_system:NiosII\|altera_reset_controller:rst_controller\|WideOr0~0" { } { { "db/ip/nios_system/submodules/altera_reset_controller.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/altera_reset_controller.v" 177 -1 0 } } { "c:/altera/13.0sp1/quartus/bin64/TimingClosureFloorplan.fld" "" { Floorplan "c:/altera/13.0sp1/quartus/bin64/TimingClosureFloorplan.fld" "" "" { nios_system:NiosII|altera_reset_controller:rst_controller|WideOr0~0 } "NODE_NAME" } } { "temporary_test_loc" "" { Generic "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/" { { 0 { 0 ""} 0 4470 9224 9983 0} } } } } 0 176357 "Destination node %1!s!" 0 0 "Quartus II" 0 -1 1480609967254 ""} { "Info" "IFSAC_FSAC_GLOBAL_UNASSIGNED_FANOUTS_SUB" "nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|W_rf_wren " "Destination node nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|W_rf_wren" { } { { "db/ip/nios_system/submodules/nios_system_nios2_processor.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor.v" 3700 -1 0 } } { "c:/altera/13.0sp1/quartus/bin64/TimingClosureFloorplan.fld" "" { Floorplan "c:/altera/13.0sp1/quartus/bin64/TimingClosureFloorplan.fld" "" "" { nios_system:NiosII|nios_system_nios2_processor:nios2_processor|W_rf_wren } "NODE_NAME" } } { "temporary_test_loc" "" { Generic "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/" { { 0 { 0 ""} 0 3289 9224 9983 0} } } } } 0 176357 "Destination node %1!s!" 0 0 "Quartus II" 0 -1 1480609967254 ""} { "Info" "IFSAC_FSAC_GLOBAL_UNASSIGNED_FANOUTS_SUB" "nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_nios2_oci_debug:the_nios_system_nios2_processor_nios2_oci_debug\|altera_std_synchronizer:the_altera_std_synchronizer\|din_s1~0 " "Destination node nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_nios2_oci_debug:the_nios_system_nios2_processor_nios2_oci_debug\|altera_std_synchronizer:the_altera_std_synchronizer\|din_s1~0" { } { { "altera_std_synchronizer.v" "" { Text "c:/altera/13.0sp1/quartus/libraries/megafunctions/altera_std_synchronizer.v" 45 -1 0 } } { "c:/altera/13.0sp1/quartus/bin64/TimingClosureFloorplan.fld" "" { Floorplan "c:/altera/13.0sp1/quartus/bin64/TimingClosureFloorplan.fld" "" "" { nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_oci_debug:the_nios_system_nios2_processor_nios2_oci_debug|altera_std_synchronizer:the_altera_std_synchronizer|din_s1~0 } "NODE_NAME" } } { "temporary_test_loc" "" { Generic "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/" { { 0 { 0 ""} 0 5950 9224 9983 0} } } } } 0 176357 "Destination node %1!s!" 0 0 "Quartus II" 0 -1 1480609967254 ""} } { } 0 176356 "Following destination nodes may be non-global or may not use global or regional clocks" 0 0 "Quartus II" 0 -1 1480609967254 ""} } { { "db/ip/nios_system/submodules/altera_reset_controller.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/altera_reset_controller.v" 172 -1 0 } } { "c:/altera/13.0sp1/quartus/bin64/TimingClosureFloorplan.fld" "" { Floorplan "c:/altera/13.0sp1/quartus/bin64/TimingClosureFloorplan.fld" "" "" { nios_system:NiosII|altera_reset_controller:rst_controller|r_sync_rst } "NODE_NAME" } } { "temporary_test_loc" "" { Generic "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/" { { 0 { 0 ""} 0 905 9224 9983 0} } } } } 0 176353 "Automatically promoted node %1!s! %2!s!" 0 0 "Fitter" 0 -1 1480609967254 ""} +{ "Info" "IFSAC_FSAC_ASSIGN_AUTO_GLOBAL_TO_SIGNAL" "nios_system:NiosII\|altera_reset_controller:rst_controller\|merged_reset~0 " "Automatically promoted node nios_system:NiosII\|altera_reset_controller:rst_controller\|merged_reset~0 " { { "Info" "IFSAC_FSAC_ASSIGN_AUTO_GLOBAL_TO_SIGNAL_FANOUTS" "destinations Global Clock " "Automatically promoted destinations to use location or clock signal Global Clock" { } { } 0 176355 "Automatically promoted %1!s! to use location or clock signal %2!s!" 0 0 "Quartus II" 0 -1 1480609967255 ""} } { { "db/ip/nios_system/submodules/altera_reset_controller.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/altera_reset_controller.v" 68 -1 0 } } { "c:/altera/13.0sp1/quartus/bin64/TimingClosureFloorplan.fld" "" { Floorplan "c:/altera/13.0sp1/quartus/bin64/TimingClosureFloorplan.fld" "" "" { nios_system:NiosII|altera_reset_controller:rst_controller|merged_reset~0 } "NODE_NAME" } } { "temporary_test_loc" "" { Generic "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/" { { 0 { 0 ""} 0 5706 9224 9983 0} } } } } 0 176353 "Automatically promoted node %1!s! %2!s!" 0 0 "Fitter" 0 -1 1480609967255 ""} +{ "Info" "IFSAC_FSAC_REGISTER_PACKING_START_REGPACKING_INFO" "" "Starting register packing" { } { } 0 176233 "Starting register packing" 0 0 "Fitter" 0 -1 1480609968247 ""} +{ "Extra Info" "IFSAC_FSAC_START_REG_LOCATION_PROCESSING" "" "Performing register packing on registers with non-logic cell location assignments" { } { } 1 176273 "Performing register packing on registers with non-logic cell location assignments" 1 0 "Fitter" 0 -1 1480609968255 ""} +{ "Extra Info" "IFSAC_FSAC_FINISH_REG_LOCATION_PROCESSING" "" "Completed register packing on registers with non-logic cell location assignments" { } { } 1 176274 "Completed register packing on registers with non-logic cell location assignments" 1 0 "Fitter" 0 -1 1480609968255 ""} +{ "Extra Info" "IFSAC_FSAC_REGISTER_PACKING_BEGIN_FAST_REGISTER_INFO" "" "Started Fast Input/Output/OE register processing" { } { } 1 176236 "Started Fast Input/Output/OE register processing" 1 0 "Fitter" 0 -1 1480609968263 ""} +{ "Extra Info" "IFSAC_FSAC_REGISTER_PACKING_FINISH_FAST_REGISTER_INFO" "" "Finished Fast Input/Output/OE register processing" { } { } 1 176237 "Finished Fast Input/Output/OE register processing" 1 0 "Fitter" 0 -1 1480609968273 ""} +{ "Extra Info" "IFSAC_FSAC_START_MAC_SCAN_CHAIN_INFERENCING" "" "Start inferring scan chains for DSP blocks" { } { } 1 176238 "Start inferring scan chains for DSP blocks" 1 0 "Fitter" 0 -1 1480609968280 ""} +{ "Extra Info" "IFSAC_FSAC_FINISH_MAC_SCAN_CHAIN_INFERENCING" "" "Inferring scan chains for DSP blocks is complete" { } { } 1 176239 "Inferring scan chains for DSP blocks is complete" 1 0 "Fitter" 0 -1 1480609968280 ""} +{ "Extra Info" "IFSAC_FSAC_START_IO_MULT_RAM_PACKING" "" "Moving registers into I/O cells, Multiplier Blocks, and RAM blocks to improve timing and density" { } { } 1 176248 "Moving registers into I/O cells, Multiplier Blocks, and RAM blocks to improve timing and density" 1 0 "Fitter" 0 -1 1480609968286 ""} +{ "Extra Info" "IFSAC_FSAC_FINISH_IO_MULT_RAM_PACKING" "" "Finished moving registers into I/O cells, Multiplier Blocks, and RAM blocks" { } { } 1 176249 "Finished moving registers into I/O cells, Multiplier Blocks, and RAM blocks" 1 0 "Fitter" 0 -1 1480609968363 ""} +{ "Info" "IFSAC_FSAC_REGISTER_PACKING_FINISH_REGPACKING_INFO" "" "Finished register packing" { { "Extra Info" "IFSAC_NUM_REGISTERS_PACKED_INTO_ATOM_TYPE" "8 EC " "Packed 8 registers into blocks of type EC" { } { } 1 176218 "Packed %1!d! registers into blocks of type %2!s!" 0 0 "Quartus II" 0 -1 1480609968370 ""} } { } 0 176235 "Finished register packing" 0 0 "Fitter" 0 -1 1480609968370 ""} +{ "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN" "" "Ignored I/O standard assignments to the following nodes" { { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "AUD_ADCDAT " "Ignored I/O standard assignment to node \"AUD_ADCDAT\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "AUD_ADCDAT" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "AUD_ADCLRCK " "Ignored I/O standard assignment to node \"AUD_ADCLRCK\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "AUD_ADCLRCK" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "AUD_BCLK " "Ignored I/O standard assignment to node \"AUD_BCLK\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "AUD_BCLK" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "AUD_DACDAT " "Ignored I/O standard assignment to node \"AUD_DACDAT\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "AUD_DACDAT" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "AUD_DACLRCK " "Ignored I/O standard assignment to node \"AUD_DACLRCK\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "AUD_DACLRCK" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "AUD_XCK " "Ignored I/O standard assignment to node \"AUD_XCK\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "AUD_XCK" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "CLOCK2_50 " "Ignored I/O standard assignment to node \"CLOCK2_50\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "CLOCK2_50" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "CLOCK3_50 " "Ignored I/O standard assignment to node \"CLOCK3_50\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "CLOCK3_50" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "DRAM_ADDR\[0\] " "Ignored I/O standard assignment to node \"DRAM_ADDR\[0\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_ADDR\[0\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "DRAM_ADDR\[10\] " "Ignored I/O standard assignment to node \"DRAM_ADDR\[10\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_ADDR\[10\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "DRAM_ADDR\[11\] " "Ignored I/O standard assignment to node \"DRAM_ADDR\[11\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_ADDR\[11\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "DRAM_ADDR\[12\] " "Ignored I/O standard assignment to node \"DRAM_ADDR\[12\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_ADDR\[12\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "DRAM_ADDR\[1\] " "Ignored I/O standard assignment to node \"DRAM_ADDR\[1\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_ADDR\[1\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "DRAM_ADDR\[2\] " "Ignored I/O standard assignment to node \"DRAM_ADDR\[2\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_ADDR\[2\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "DRAM_ADDR\[3\] " "Ignored I/O standard assignment to node \"DRAM_ADDR\[3\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_ADDR\[3\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "DRAM_ADDR\[4\] " "Ignored I/O standard assignment to node \"DRAM_ADDR\[4\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_ADDR\[4\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "DRAM_ADDR\[5\] " "Ignored I/O standard assignment to node \"DRAM_ADDR\[5\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_ADDR\[5\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "DRAM_ADDR\[6\] " "Ignored I/O standard assignment to node \"DRAM_ADDR\[6\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_ADDR\[6\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "DRAM_ADDR\[7\] " "Ignored I/O standard assignment to node \"DRAM_ADDR\[7\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_ADDR\[7\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "DRAM_ADDR\[8\] " "Ignored I/O standard assignment to node \"DRAM_ADDR\[8\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_ADDR\[8\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "DRAM_ADDR\[9\] " "Ignored I/O standard assignment to node \"DRAM_ADDR\[9\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_ADDR\[9\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "DRAM_BA\[0\] " "Ignored I/O standard assignment to node \"DRAM_BA\[0\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_BA\[0\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "DRAM_BA\[1\] " "Ignored I/O standard assignment to node \"DRAM_BA\[1\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_BA\[1\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "DRAM_CAS_N " "Ignored I/O standard assignment to node \"DRAM_CAS_N\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_CAS_N" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "DRAM_CKE " "Ignored I/O standard assignment to node \"DRAM_CKE\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_CKE" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "DRAM_CLK " "Ignored I/O standard assignment to node \"DRAM_CLK\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_CLK" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "DRAM_CS_N " "Ignored I/O standard assignment to node \"DRAM_CS_N\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_CS_N" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "DRAM_DQM\[0\] " "Ignored I/O standard assignment to node \"DRAM_DQM\[0\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQM\[0\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "DRAM_DQM\[1\] " "Ignored I/O standard assignment to node \"DRAM_DQM\[1\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQM\[1\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "DRAM_DQM\[2\] " "Ignored I/O standard assignment to node \"DRAM_DQM\[2\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQM\[2\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "DRAM_DQM\[3\] " "Ignored I/O standard assignment to node \"DRAM_DQM\[3\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQM\[3\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "DRAM_DQ\[0\] " "Ignored I/O standard assignment to node \"DRAM_DQ\[0\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQ\[0\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "DRAM_DQ\[10\] " "Ignored I/O standard assignment to node \"DRAM_DQ\[10\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQ\[10\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "DRAM_DQ\[11\] " "Ignored I/O standard assignment to node \"DRAM_DQ\[11\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQ\[11\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "DRAM_DQ\[12\] " "Ignored I/O standard assignment to node \"DRAM_DQ\[12\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQ\[12\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "DRAM_DQ\[13\] " "Ignored I/O standard assignment to node \"DRAM_DQ\[13\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQ\[13\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "DRAM_DQ\[14\] " "Ignored I/O standard assignment to node \"DRAM_DQ\[14\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQ\[14\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "DRAM_DQ\[15\] " "Ignored I/O standard assignment to node \"DRAM_DQ\[15\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQ\[15\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "DRAM_DQ\[16\] " "Ignored I/O standard assignment to node \"DRAM_DQ\[16\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQ\[16\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "DRAM_DQ\[17\] " "Ignored I/O standard assignment to node \"DRAM_DQ\[17\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQ\[17\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "DRAM_DQ\[18\] " "Ignored I/O standard assignment to node \"DRAM_DQ\[18\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQ\[18\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "DRAM_DQ\[19\] " "Ignored I/O standard assignment to node \"DRAM_DQ\[19\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQ\[19\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "DRAM_DQ\[1\] " "Ignored I/O standard assignment to node \"DRAM_DQ\[1\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQ\[1\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "DRAM_DQ\[20\] " "Ignored I/O standard assignment to node \"DRAM_DQ\[20\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQ\[20\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "DRAM_DQ\[21\] " "Ignored I/O standard assignment to node \"DRAM_DQ\[21\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQ\[21\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "DRAM_DQ\[22\] " "Ignored I/O standard assignment to node \"DRAM_DQ\[22\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQ\[22\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "DRAM_DQ\[23\] " "Ignored I/O standard assignment to node \"DRAM_DQ\[23\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQ\[23\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "DRAM_DQ\[24\] " "Ignored I/O standard assignment to node \"DRAM_DQ\[24\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQ\[24\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "DRAM_DQ\[25\] " "Ignored I/O standard assignment to node \"DRAM_DQ\[25\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQ\[25\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "DRAM_DQ\[26\] " "Ignored I/O standard assignment to node \"DRAM_DQ\[26\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQ\[26\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "DRAM_DQ\[27\] " "Ignored I/O standard assignment to node \"DRAM_DQ\[27\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQ\[27\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "DRAM_DQ\[28\] " "Ignored I/O standard assignment to node \"DRAM_DQ\[28\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQ\[28\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "DRAM_DQ\[29\] " "Ignored I/O standard assignment to node \"DRAM_DQ\[29\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQ\[29\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "DRAM_DQ\[2\] " "Ignored I/O standard assignment to node \"DRAM_DQ\[2\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQ\[2\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "DRAM_DQ\[30\] " "Ignored I/O standard assignment to node \"DRAM_DQ\[30\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQ\[30\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "DRAM_DQ\[31\] " "Ignored I/O standard assignment to node \"DRAM_DQ\[31\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQ\[31\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "DRAM_DQ\[3\] " "Ignored I/O standard assignment to node \"DRAM_DQ\[3\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQ\[3\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "DRAM_DQ\[4\] " "Ignored I/O standard assignment to node \"DRAM_DQ\[4\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQ\[4\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "DRAM_DQ\[5\] " "Ignored I/O standard assignment to node \"DRAM_DQ\[5\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQ\[5\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "DRAM_DQ\[6\] " "Ignored I/O standard assignment to node \"DRAM_DQ\[6\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQ\[6\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "DRAM_DQ\[7\] " "Ignored I/O standard assignment to node \"DRAM_DQ\[7\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQ\[7\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "DRAM_DQ\[8\] " "Ignored I/O standard assignment to node \"DRAM_DQ\[8\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQ\[8\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "DRAM_DQ\[9\] " "Ignored I/O standard assignment to node \"DRAM_DQ\[9\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQ\[9\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "DRAM_RAS_N " "Ignored I/O standard assignment to node \"DRAM_RAS_N\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_RAS_N" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "DRAM_WE_N " "Ignored I/O standard assignment to node \"DRAM_WE_N\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_WE_N" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "EEP_I2C_SCLK " "Ignored I/O standard assignment to node \"EEP_I2C_SCLK\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "EEP_I2C_SCLK" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "EEP_I2C_SDAT " "Ignored I/O standard assignment to node \"EEP_I2C_SDAT\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "EEP_I2C_SDAT" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "ENET0_GTX_CLK " "Ignored I/O standard assignment to node \"ENET0_GTX_CLK\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET0_GTX_CLK" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "ENET0_INT_N " "Ignored I/O standard assignment to node \"ENET0_INT_N\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET0_INT_N" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "ENET0_LINK100 " "Ignored I/O standard assignment to node \"ENET0_LINK100\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET0_LINK100" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "ENET0_MDC " "Ignored I/O standard assignment to node \"ENET0_MDC\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET0_MDC" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "ENET0_MDIO " "Ignored I/O standard assignment to node \"ENET0_MDIO\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET0_MDIO" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "ENET0_RST_N " "Ignored I/O standard assignment to node \"ENET0_RST_N\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET0_RST_N" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "ENET0_RX_CLK " "Ignored I/O standard assignment to node \"ENET0_RX_CLK\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET0_RX_CLK" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "ENET0_RX_COL " "Ignored I/O standard assignment to node \"ENET0_RX_COL\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET0_RX_COL" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "ENET0_RX_CRS " "Ignored I/O standard assignment to node \"ENET0_RX_CRS\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET0_RX_CRS" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "ENET0_RX_DATA\[0\] " "Ignored I/O standard assignment to node \"ENET0_RX_DATA\[0\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET0_RX_DATA\[0\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "ENET0_RX_DATA\[1\] " "Ignored I/O standard assignment to node \"ENET0_RX_DATA\[1\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET0_RX_DATA\[1\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "ENET0_RX_DATA\[2\] " "Ignored I/O standard assignment to node \"ENET0_RX_DATA\[2\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET0_RX_DATA\[2\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "ENET0_RX_DATA\[3\] " "Ignored I/O standard assignment to node \"ENET0_RX_DATA\[3\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET0_RX_DATA\[3\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "ENET0_RX_DV " "Ignored I/O standard assignment to node \"ENET0_RX_DV\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET0_RX_DV" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "ENET0_RX_ER " "Ignored I/O standard assignment to node \"ENET0_RX_ER\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET0_RX_ER" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "ENET0_TX_CLK " "Ignored I/O standard assignment to node \"ENET0_TX_CLK\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET0_TX_CLK" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "ENET0_TX_DATA\[0\] " "Ignored I/O standard assignment to node \"ENET0_TX_DATA\[0\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET0_TX_DATA\[0\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "ENET0_TX_DATA\[1\] " "Ignored I/O standard assignment to node \"ENET0_TX_DATA\[1\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET0_TX_DATA\[1\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "ENET0_TX_DATA\[2\] " "Ignored I/O standard assignment to node \"ENET0_TX_DATA\[2\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET0_TX_DATA\[2\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "ENET0_TX_DATA\[3\] " "Ignored I/O standard assignment to node \"ENET0_TX_DATA\[3\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET0_TX_DATA\[3\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "ENET0_TX_EN " "Ignored I/O standard assignment to node \"ENET0_TX_EN\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET0_TX_EN" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "ENET0_TX_ER " "Ignored I/O standard assignment to node \"ENET0_TX_ER\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET0_TX_ER" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "ENET1_GTX_CLK " "Ignored I/O standard assignment to node \"ENET1_GTX_CLK\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET1_GTX_CLK" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "ENET1_INT_N " "Ignored I/O standard assignment to node \"ENET1_INT_N\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET1_INT_N" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "ENET1_LINK100 " "Ignored I/O standard assignment to node \"ENET1_LINK100\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET1_LINK100" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "ENET1_MDC " "Ignored I/O standard assignment to node \"ENET1_MDC\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET1_MDC" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "ENET1_MDIO " "Ignored I/O standard assignment to node \"ENET1_MDIO\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET1_MDIO" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "ENET1_RST_N " "Ignored I/O standard assignment to node \"ENET1_RST_N\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET1_RST_N" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "ENET1_RX_CLK " "Ignored I/O standard assignment to node \"ENET1_RX_CLK\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET1_RX_CLK" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "ENET1_RX_COL " "Ignored I/O standard assignment to node \"ENET1_RX_COL\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET1_RX_COL" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "ENET1_RX_CRS " "Ignored I/O standard assignment to node \"ENET1_RX_CRS\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET1_RX_CRS" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "ENET1_RX_DATA\[0\] " "Ignored I/O standard assignment to node \"ENET1_RX_DATA\[0\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET1_RX_DATA\[0\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "ENET1_RX_DATA\[1\] " "Ignored I/O standard assignment to node \"ENET1_RX_DATA\[1\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET1_RX_DATA\[1\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "ENET1_RX_DATA\[2\] " "Ignored I/O standard assignment to node \"ENET1_RX_DATA\[2\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET1_RX_DATA\[2\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "ENET1_RX_DATA\[3\] " "Ignored I/O standard assignment to node \"ENET1_RX_DATA\[3\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET1_RX_DATA\[3\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "ENET1_RX_DV " "Ignored I/O standard assignment to node \"ENET1_RX_DV\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET1_RX_DV" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "ENET1_RX_ER " "Ignored I/O standard assignment to node \"ENET1_RX_ER\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET1_RX_ER" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "ENET1_TX_CLK " "Ignored I/O standard assignment to node \"ENET1_TX_CLK\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET1_TX_CLK" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "ENET1_TX_DATA\[0\] " "Ignored I/O standard assignment to node \"ENET1_TX_DATA\[0\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET1_TX_DATA\[0\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "ENET1_TX_DATA\[1\] " "Ignored I/O standard assignment to node \"ENET1_TX_DATA\[1\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET1_TX_DATA\[1\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "ENET1_TX_DATA\[2\] " "Ignored I/O standard assignment to node \"ENET1_TX_DATA\[2\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET1_TX_DATA\[2\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "ENET1_TX_DATA\[3\] " "Ignored I/O standard assignment to node \"ENET1_TX_DATA\[3\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET1_TX_DATA\[3\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "ENET1_TX_EN " "Ignored I/O standard assignment to node \"ENET1_TX_EN\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET1_TX_EN" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "ENET1_TX_ER " "Ignored I/O standard assignment to node \"ENET1_TX_ER\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET1_TX_ER" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "ENETCLK_25 " "Ignored I/O standard assignment to node \"ENETCLK_25\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENETCLK_25" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "EX_IO\[0\] " "Ignored I/O standard assignment to node \"EX_IO\[0\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "EX_IO\[0\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "EX_IO\[1\] " "Ignored I/O standard assignment to node \"EX_IO\[1\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "EX_IO\[1\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "EX_IO\[2\] " "Ignored I/O standard assignment to node \"EX_IO\[2\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "EX_IO\[2\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "EX_IO\[3\] " "Ignored I/O standard assignment to node \"EX_IO\[3\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "EX_IO\[3\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "EX_IO\[4\] " "Ignored I/O standard assignment to node \"EX_IO\[4\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "EX_IO\[4\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "EX_IO\[5\] " "Ignored I/O standard assignment to node \"EX_IO\[5\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "EX_IO\[5\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "EX_IO\[6\] " "Ignored I/O standard assignment to node \"EX_IO\[6\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "EX_IO\[6\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "FL_ADDR\[0\] " "Ignored I/O standard assignment to node \"FL_ADDR\[0\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_ADDR\[0\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "FL_ADDR\[10\] " "Ignored I/O standard assignment to node \"FL_ADDR\[10\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_ADDR\[10\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "FL_ADDR\[11\] " "Ignored I/O standard assignment to node \"FL_ADDR\[11\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_ADDR\[11\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "FL_ADDR\[12\] " "Ignored I/O standard assignment to node \"FL_ADDR\[12\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_ADDR\[12\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "FL_ADDR\[13\] " "Ignored I/O standard assignment to node \"FL_ADDR\[13\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_ADDR\[13\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "FL_ADDR\[14\] " "Ignored I/O standard assignment to node \"FL_ADDR\[14\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_ADDR\[14\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "FL_ADDR\[15\] " "Ignored I/O standard assignment to node \"FL_ADDR\[15\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_ADDR\[15\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "FL_ADDR\[16\] " "Ignored I/O standard assignment to node \"FL_ADDR\[16\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_ADDR\[16\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "FL_ADDR\[17\] " "Ignored I/O standard assignment to node \"FL_ADDR\[17\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_ADDR\[17\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "FL_ADDR\[18\] " "Ignored I/O standard assignment to node \"FL_ADDR\[18\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_ADDR\[18\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "FL_ADDR\[19\] " "Ignored I/O standard assignment to node \"FL_ADDR\[19\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_ADDR\[19\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "FL_ADDR\[1\] " "Ignored I/O standard assignment to node \"FL_ADDR\[1\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_ADDR\[1\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "FL_ADDR\[20\] " "Ignored I/O standard assignment to node \"FL_ADDR\[20\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_ADDR\[20\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "FL_ADDR\[21\] " "Ignored I/O standard assignment to node \"FL_ADDR\[21\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_ADDR\[21\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "FL_ADDR\[22\] " "Ignored I/O standard assignment to node \"FL_ADDR\[22\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_ADDR\[22\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "FL_ADDR\[2\] " "Ignored I/O standard assignment to node \"FL_ADDR\[2\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_ADDR\[2\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "FL_ADDR\[3\] " "Ignored I/O standard assignment to node \"FL_ADDR\[3\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_ADDR\[3\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "FL_ADDR\[4\] " "Ignored I/O standard assignment to node \"FL_ADDR\[4\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_ADDR\[4\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "FL_ADDR\[5\] " "Ignored I/O standard assignment to node \"FL_ADDR\[5\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_ADDR\[5\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "FL_ADDR\[6\] " "Ignored I/O standard assignment to node \"FL_ADDR\[6\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_ADDR\[6\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "FL_ADDR\[7\] " "Ignored I/O standard assignment to node \"FL_ADDR\[7\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_ADDR\[7\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "FL_ADDR\[8\] " "Ignored I/O standard assignment to node \"FL_ADDR\[8\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_ADDR\[8\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "FL_ADDR\[9\] " "Ignored I/O standard assignment to node \"FL_ADDR\[9\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_ADDR\[9\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "FL_CE_N " "Ignored I/O standard assignment to node \"FL_CE_N\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_CE_N" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "FL_DQ\[0\] " "Ignored I/O standard assignment to node \"FL_DQ\[0\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_DQ\[0\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "FL_DQ\[1\] " "Ignored I/O standard assignment to node \"FL_DQ\[1\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_DQ\[1\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "FL_DQ\[2\] " "Ignored I/O standard assignment to node \"FL_DQ\[2\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_DQ\[2\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "FL_DQ\[3\] " "Ignored I/O standard assignment to node \"FL_DQ\[3\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_DQ\[3\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "FL_DQ\[4\] " "Ignored I/O standard assignment to node \"FL_DQ\[4\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_DQ\[4\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "FL_DQ\[5\] " "Ignored I/O standard assignment to node \"FL_DQ\[5\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_DQ\[5\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968635 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "FL_DQ\[6\] " "Ignored I/O standard assignment to node \"FL_DQ\[6\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_DQ\[6\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "FL_DQ\[7\] " "Ignored I/O standard assignment to node \"FL_DQ\[7\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_DQ\[7\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "FL_OE_N " "Ignored I/O standard assignment to node \"FL_OE_N\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_OE_N" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "FL_RST_N " "Ignored I/O standard assignment to node \"FL_RST_N\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_RST_N" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "FL_RY " "Ignored I/O standard assignment to node \"FL_RY\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_RY" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "FL_WE_N " "Ignored I/O standard assignment to node \"FL_WE_N\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_WE_N" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "FL_WP_N " "Ignored I/O standard assignment to node \"FL_WP_N\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_WP_N" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "GPIO\[0\] " "Ignored I/O standard assignment to node \"GPIO\[0\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[0\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "GPIO\[10\] " "Ignored I/O standard assignment to node \"GPIO\[10\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[10\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "GPIO\[11\] " "Ignored I/O standard assignment to node \"GPIO\[11\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[11\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "GPIO\[12\] " "Ignored I/O standard assignment to node \"GPIO\[12\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[12\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "GPIO\[13\] " "Ignored I/O standard assignment to node \"GPIO\[13\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[13\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "GPIO\[14\] " "Ignored I/O standard assignment to node \"GPIO\[14\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[14\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "GPIO\[15\] " "Ignored I/O standard assignment to node \"GPIO\[15\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[15\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "GPIO\[16\] " "Ignored I/O standard assignment to node \"GPIO\[16\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[16\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "GPIO\[17\] " "Ignored I/O standard assignment to node \"GPIO\[17\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[17\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "GPIO\[18\] " "Ignored I/O standard assignment to node \"GPIO\[18\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[18\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "GPIO\[19\] " "Ignored I/O standard assignment to node \"GPIO\[19\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[19\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "GPIO\[1\] " "Ignored I/O standard assignment to node \"GPIO\[1\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[1\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "GPIO\[20\] " "Ignored I/O standard assignment to node \"GPIO\[20\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[20\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "GPIO\[21\] " "Ignored I/O standard assignment to node \"GPIO\[21\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[21\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "GPIO\[22\] " "Ignored I/O standard assignment to node \"GPIO\[22\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[22\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "GPIO\[23\] " "Ignored I/O standard assignment to node \"GPIO\[23\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[23\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "GPIO\[24\] " "Ignored I/O standard assignment to node \"GPIO\[24\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[24\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "GPIO\[25\] " "Ignored I/O standard assignment to node \"GPIO\[25\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[25\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "GPIO\[26\] " "Ignored I/O standard assignment to node \"GPIO\[26\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[26\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "GPIO\[27\] " "Ignored I/O standard assignment to node \"GPIO\[27\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[27\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "GPIO\[28\] " "Ignored I/O standard assignment to node \"GPIO\[28\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[28\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "GPIO\[29\] " "Ignored I/O standard assignment to node \"GPIO\[29\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[29\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "GPIO\[2\] " "Ignored I/O standard assignment to node \"GPIO\[2\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[2\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "GPIO\[30\] " "Ignored I/O standard assignment to node \"GPIO\[30\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[30\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "GPIO\[31\] " "Ignored I/O standard assignment to node \"GPIO\[31\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[31\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "GPIO\[32\] " "Ignored I/O standard assignment to node \"GPIO\[32\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[32\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "GPIO\[33\] " "Ignored I/O standard assignment to node \"GPIO\[33\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[33\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "GPIO\[34\] " "Ignored I/O standard assignment to node \"GPIO\[34\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[34\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "GPIO\[35\] " "Ignored I/O standard assignment to node \"GPIO\[35\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[35\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "GPIO\[3\] " "Ignored I/O standard assignment to node \"GPIO\[3\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[3\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "GPIO\[4\] " "Ignored I/O standard assignment to node \"GPIO\[4\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[4\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "GPIO\[5\] " "Ignored I/O standard assignment to node \"GPIO\[5\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[5\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "GPIO\[6\] " "Ignored I/O standard assignment to node \"GPIO\[6\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[6\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "GPIO\[7\] " "Ignored I/O standard assignment to node \"GPIO\[7\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[7\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "GPIO\[8\] " "Ignored I/O standard assignment to node \"GPIO\[8\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[8\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "GPIO\[9\] " "Ignored I/O standard assignment to node \"GPIO\[9\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[9\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_CLKIN0 " "Ignored I/O standard assignment to node \"HSMC_CLKIN0\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_CLKIN0" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_CLKIN_N1 " "Ignored I/O standard assignment to node \"HSMC_CLKIN_N1\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_CLKIN_N1" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_CLKIN_N2 " "Ignored I/O standard assignment to node \"HSMC_CLKIN_N2\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_CLKIN_N2" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_CLKIN_P1 " "Ignored I/O standard assignment to node \"HSMC_CLKIN_P1\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_CLKIN_P1" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_CLKIN_P2 " "Ignored I/O standard assignment to node \"HSMC_CLKIN_P2\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_CLKIN_P2" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_CLKOUT0 " "Ignored I/O standard assignment to node \"HSMC_CLKOUT0\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_CLKOUT0" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_CLKOUT_N1 " "Ignored I/O standard assignment to node \"HSMC_CLKOUT_N1\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_CLKOUT_N1" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_CLKOUT_N2 " "Ignored I/O standard assignment to node \"HSMC_CLKOUT_N2\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_CLKOUT_N2" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_CLKOUT_P1 " "Ignored I/O standard assignment to node \"HSMC_CLKOUT_P1\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_CLKOUT_P1" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_CLKOUT_P2 " "Ignored I/O standard assignment to node \"HSMC_CLKOUT_P2\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_CLKOUT_P2" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_D\[0\] " "Ignored I/O standard assignment to node \"HSMC_D\[0\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_D\[0\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_D\[1\] " "Ignored I/O standard assignment to node \"HSMC_D\[1\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_D\[1\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_D\[2\] " "Ignored I/O standard assignment to node \"HSMC_D\[2\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_D\[2\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_D\[3\] " "Ignored I/O standard assignment to node \"HSMC_D\[3\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_D\[3\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_RX_D_N\[0\] " "Ignored I/O standard assignment to node \"HSMC_RX_D_N\[0\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_N\[0\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_RX_D_N\[10\] " "Ignored I/O standard assignment to node \"HSMC_RX_D_N\[10\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_N\[10\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_RX_D_N\[11\] " "Ignored I/O standard assignment to node \"HSMC_RX_D_N\[11\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_N\[11\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_RX_D_N\[12\] " "Ignored I/O standard assignment to node \"HSMC_RX_D_N\[12\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_N\[12\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_RX_D_N\[13\] " "Ignored I/O standard assignment to node \"HSMC_RX_D_N\[13\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_N\[13\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_RX_D_N\[14\] " "Ignored I/O standard assignment to node \"HSMC_RX_D_N\[14\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_N\[14\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_RX_D_N\[15\] " "Ignored I/O standard assignment to node \"HSMC_RX_D_N\[15\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_N\[15\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_RX_D_N\[16\] " "Ignored I/O standard assignment to node \"HSMC_RX_D_N\[16\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_N\[16\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_RX_D_N\[1\] " "Ignored I/O standard assignment to node \"HSMC_RX_D_N\[1\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_N\[1\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_RX_D_N\[2\] " "Ignored I/O standard assignment to node \"HSMC_RX_D_N\[2\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_N\[2\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_RX_D_N\[3\] " "Ignored I/O standard assignment to node \"HSMC_RX_D_N\[3\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_N\[3\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_RX_D_N\[4\] " "Ignored I/O standard assignment to node \"HSMC_RX_D_N\[4\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_N\[4\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_RX_D_N\[5\] " "Ignored I/O standard assignment to node \"HSMC_RX_D_N\[5\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_N\[5\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_RX_D_N\[6\] " "Ignored I/O standard assignment to node \"HSMC_RX_D_N\[6\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_N\[6\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_RX_D_N\[7\] " "Ignored I/O standard assignment to node \"HSMC_RX_D_N\[7\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_N\[7\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_RX_D_N\[8\] " "Ignored I/O standard assignment to node \"HSMC_RX_D_N\[8\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_N\[8\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_RX_D_N\[9\] " "Ignored I/O standard assignment to node \"HSMC_RX_D_N\[9\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_N\[9\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_RX_D_P\[0\] " "Ignored I/O standard assignment to node \"HSMC_RX_D_P\[0\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_P\[0\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_RX_D_P\[10\] " "Ignored I/O standard assignment to node \"HSMC_RX_D_P\[10\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_P\[10\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_RX_D_P\[11\] " "Ignored I/O standard assignment to node \"HSMC_RX_D_P\[11\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_P\[11\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_RX_D_P\[12\] " "Ignored I/O standard assignment to node \"HSMC_RX_D_P\[12\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_P\[12\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_RX_D_P\[13\] " "Ignored I/O standard assignment to node \"HSMC_RX_D_P\[13\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_P\[13\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_RX_D_P\[14\] " "Ignored I/O standard assignment to node \"HSMC_RX_D_P\[14\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_P\[14\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_RX_D_P\[15\] " "Ignored I/O standard assignment to node \"HSMC_RX_D_P\[15\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_P\[15\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_RX_D_P\[16\] " "Ignored I/O standard assignment to node \"HSMC_RX_D_P\[16\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_P\[16\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_RX_D_P\[1\] " "Ignored I/O standard assignment to node \"HSMC_RX_D_P\[1\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_P\[1\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_RX_D_P\[2\] " "Ignored I/O standard assignment to node \"HSMC_RX_D_P\[2\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_P\[2\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_RX_D_P\[3\] " "Ignored I/O standard assignment to node \"HSMC_RX_D_P\[3\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_P\[3\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_RX_D_P\[4\] " "Ignored I/O standard assignment to node \"HSMC_RX_D_P\[4\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_P\[4\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_RX_D_P\[5\] " "Ignored I/O standard assignment to node \"HSMC_RX_D_P\[5\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_P\[5\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_RX_D_P\[6\] " "Ignored I/O standard assignment to node \"HSMC_RX_D_P\[6\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_P\[6\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_RX_D_P\[7\] " "Ignored I/O standard assignment to node \"HSMC_RX_D_P\[7\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_P\[7\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_RX_D_P\[8\] " "Ignored I/O standard assignment to node \"HSMC_RX_D_P\[8\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_P\[8\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_RX_D_P\[9\] " "Ignored I/O standard assignment to node \"HSMC_RX_D_P\[9\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_P\[9\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_TX_D_N\[0\] " "Ignored I/O standard assignment to node \"HSMC_TX_D_N\[0\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_N\[0\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_TX_D_N\[10\] " "Ignored I/O standard assignment to node \"HSMC_TX_D_N\[10\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_N\[10\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_TX_D_N\[11\] " "Ignored I/O standard assignment to node \"HSMC_TX_D_N\[11\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_N\[11\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_TX_D_N\[12\] " "Ignored I/O standard assignment to node \"HSMC_TX_D_N\[12\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_N\[12\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_TX_D_N\[13\] " "Ignored I/O standard assignment to node \"HSMC_TX_D_N\[13\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_N\[13\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_TX_D_N\[14\] " "Ignored I/O standard assignment to node \"HSMC_TX_D_N\[14\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_N\[14\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_TX_D_N\[15\] " "Ignored I/O standard assignment to node \"HSMC_TX_D_N\[15\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_N\[15\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_TX_D_N\[16\] " "Ignored I/O standard assignment to node \"HSMC_TX_D_N\[16\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_N\[16\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_TX_D_N\[1\] " "Ignored I/O standard assignment to node \"HSMC_TX_D_N\[1\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_N\[1\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_TX_D_N\[2\] " "Ignored I/O standard assignment to node \"HSMC_TX_D_N\[2\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_N\[2\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_TX_D_N\[3\] " "Ignored I/O standard assignment to node \"HSMC_TX_D_N\[3\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_N\[3\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_TX_D_N\[4\] " "Ignored I/O standard assignment to node \"HSMC_TX_D_N\[4\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_N\[4\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_TX_D_N\[5\] " "Ignored I/O standard assignment to node \"HSMC_TX_D_N\[5\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_N\[5\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_TX_D_N\[6\] " "Ignored I/O standard assignment to node \"HSMC_TX_D_N\[6\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_N\[6\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_TX_D_N\[7\] " "Ignored I/O standard assignment to node \"HSMC_TX_D_N\[7\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_N\[7\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_TX_D_N\[8\] " "Ignored I/O standard assignment to node \"HSMC_TX_D_N\[8\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_N\[8\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_TX_D_N\[9\] " "Ignored I/O standard assignment to node \"HSMC_TX_D_N\[9\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_N\[9\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_TX_D_P\[0\] " "Ignored I/O standard assignment to node \"HSMC_TX_D_P\[0\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_P\[0\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_TX_D_P\[10\] " "Ignored I/O standard assignment to node \"HSMC_TX_D_P\[10\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_P\[10\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_TX_D_P\[11\] " "Ignored I/O standard assignment to node \"HSMC_TX_D_P\[11\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_P\[11\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_TX_D_P\[12\] " "Ignored I/O standard assignment to node \"HSMC_TX_D_P\[12\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_P\[12\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_TX_D_P\[13\] " "Ignored I/O standard assignment to node \"HSMC_TX_D_P\[13\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_P\[13\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_TX_D_P\[14\] " "Ignored I/O standard assignment to node \"HSMC_TX_D_P\[14\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_P\[14\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_TX_D_P\[15\] " "Ignored I/O standard assignment to node \"HSMC_TX_D_P\[15\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_P\[15\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_TX_D_P\[16\] " "Ignored I/O standard assignment to node \"HSMC_TX_D_P\[16\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_P\[16\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_TX_D_P\[1\] " "Ignored I/O standard assignment to node \"HSMC_TX_D_P\[1\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_P\[1\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_TX_D_P\[2\] " "Ignored I/O standard assignment to node \"HSMC_TX_D_P\[2\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_P\[2\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_TX_D_P\[3\] " "Ignored I/O standard assignment to node \"HSMC_TX_D_P\[3\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_P\[3\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_TX_D_P\[4\] " "Ignored I/O standard assignment to node \"HSMC_TX_D_P\[4\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_P\[4\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_TX_D_P\[5\] " "Ignored I/O standard assignment to node \"HSMC_TX_D_P\[5\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_P\[5\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_TX_D_P\[6\] " "Ignored I/O standard assignment to node \"HSMC_TX_D_P\[6\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_P\[6\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_TX_D_P\[7\] " "Ignored I/O standard assignment to node \"HSMC_TX_D_P\[7\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_P\[7\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_TX_D_P\[8\] " "Ignored I/O standard assignment to node \"HSMC_TX_D_P\[8\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_P\[8\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_TX_D_P\[9\] " "Ignored I/O standard assignment to node \"HSMC_TX_D_P\[9\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_P\[9\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "I2C_SCLK " "Ignored I/O standard assignment to node \"I2C_SCLK\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "I2C_SCLK" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "I2C_SDAT " "Ignored I/O standard assignment to node \"I2C_SDAT\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "I2C_SDAT" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "IRDA_RXD " "Ignored I/O standard assignment to node \"IRDA_RXD\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "IRDA_RXD" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "LEDG\[8\] " "Ignored I/O standard assignment to node \"LEDG\[8\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "LEDG\[8\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "OTG_ADDR\[0\] " "Ignored I/O standard assignment to node \"OTG_ADDR\[0\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "OTG_ADDR\[0\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "OTG_ADDR\[1\] " "Ignored I/O standard assignment to node \"OTG_ADDR\[1\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "OTG_ADDR\[1\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "OTG_CS_N " "Ignored I/O standard assignment to node \"OTG_CS_N\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "OTG_CS_N" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "OTG_DACK_N\[0\] " "Ignored I/O standard assignment to node \"OTG_DACK_N\[0\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "OTG_DACK_N\[0\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "OTG_DACK_N\[1\] " "Ignored I/O standard assignment to node \"OTG_DACK_N\[1\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "OTG_DACK_N\[1\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "OTG_DATA\[0\] " "Ignored I/O standard assignment to node \"OTG_DATA\[0\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "OTG_DATA\[0\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "OTG_DATA\[10\] " "Ignored I/O standard assignment to node \"OTG_DATA\[10\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "OTG_DATA\[10\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "OTG_DATA\[11\] " "Ignored I/O standard assignment to node \"OTG_DATA\[11\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "OTG_DATA\[11\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "OTG_DATA\[12\] " "Ignored I/O standard assignment to node \"OTG_DATA\[12\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "OTG_DATA\[12\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "OTG_DATA\[13\] " "Ignored I/O standard assignment to node \"OTG_DATA\[13\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "OTG_DATA\[13\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "OTG_DATA\[14\] " "Ignored I/O standard assignment to node \"OTG_DATA\[14\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "OTG_DATA\[14\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "OTG_DATA\[15\] " "Ignored I/O standard assignment to node \"OTG_DATA\[15\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "OTG_DATA\[15\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "OTG_DATA\[1\] " "Ignored I/O standard assignment to node \"OTG_DATA\[1\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "OTG_DATA\[1\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "OTG_DATA\[2\] " "Ignored I/O standard assignment to node \"OTG_DATA\[2\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "OTG_DATA\[2\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "OTG_DATA\[3\] " "Ignored I/O standard assignment to node \"OTG_DATA\[3\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "OTG_DATA\[3\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "OTG_DATA\[4\] " "Ignored I/O standard assignment to node \"OTG_DATA\[4\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "OTG_DATA\[4\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "OTG_DATA\[5\] " "Ignored I/O standard assignment to node \"OTG_DATA\[5\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "OTG_DATA\[5\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "OTG_DATA\[6\] " "Ignored I/O standard assignment to node \"OTG_DATA\[6\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "OTG_DATA\[6\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "OTG_DATA\[7\] " "Ignored I/O standard assignment to node \"OTG_DATA\[7\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "OTG_DATA\[7\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "OTG_DATA\[8\] " "Ignored I/O standard assignment to node \"OTG_DATA\[8\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "OTG_DATA\[8\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "OTG_DATA\[9\] " "Ignored I/O standard assignment to node \"OTG_DATA\[9\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "OTG_DATA\[9\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "OTG_DREQ\[0\] " "Ignored I/O standard assignment to node \"OTG_DREQ\[0\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "OTG_DREQ\[0\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "OTG_DREQ\[1\] " "Ignored I/O standard assignment to node \"OTG_DREQ\[1\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "OTG_DREQ\[1\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "OTG_FSPEED " "Ignored I/O standard assignment to node \"OTG_FSPEED\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "OTG_FSPEED" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "OTG_INT\[0\] " "Ignored I/O standard assignment to node \"OTG_INT\[0\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "OTG_INT\[0\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "OTG_INT\[1\] " "Ignored I/O standard assignment to node \"OTG_INT\[1\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "OTG_INT\[1\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "OTG_LSPEED " "Ignored I/O standard assignment to node \"OTG_LSPEED\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "OTG_LSPEED" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "OTG_RD_N " "Ignored I/O standard assignment to node \"OTG_RD_N\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "OTG_RD_N" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "OTG_RST_N " "Ignored I/O standard assignment to node \"OTG_RST_N\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "OTG_RST_N" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "OTG_WR_N " "Ignored I/O standard assignment to node \"OTG_WR_N\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "OTG_WR_N" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "PS2_CLK " "Ignored I/O standard assignment to node \"PS2_CLK\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "PS2_CLK" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "PS2_CLK2 " "Ignored I/O standard assignment to node \"PS2_CLK2\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "PS2_CLK2" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "PS2_DAT " "Ignored I/O standard assignment to node \"PS2_DAT\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "PS2_DAT" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "PS2_DAT2 " "Ignored I/O standard assignment to node \"PS2_DAT2\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "PS2_DAT2" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "SD_CLK " "Ignored I/O standard assignment to node \"SD_CLK\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SD_CLK" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "SD_CMD " "Ignored I/O standard assignment to node \"SD_CMD\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SD_CMD" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "SD_DAT\[0\] " "Ignored I/O standard assignment to node \"SD_DAT\[0\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SD_DAT\[0\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "SD_DAT\[1\] " "Ignored I/O standard assignment to node \"SD_DAT\[1\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SD_DAT\[1\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "SD_DAT\[2\] " "Ignored I/O standard assignment to node \"SD_DAT\[2\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SD_DAT\[2\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "SD_DAT\[3\] " "Ignored I/O standard assignment to node \"SD_DAT\[3\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SD_DAT\[3\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "SD_WP_N " "Ignored I/O standard assignment to node \"SD_WP_N\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SD_WP_N" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "SMA_CLKIN " "Ignored I/O standard assignment to node \"SMA_CLKIN\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SMA_CLKIN" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "SMA_CLKOUT " "Ignored I/O standard assignment to node \"SMA_CLKOUT\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SMA_CLKOUT" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "SRAM_ADDR\[0\] " "Ignored I/O standard assignment to node \"SRAM_ADDR\[0\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_ADDR\[0\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "SRAM_ADDR\[10\] " "Ignored I/O standard assignment to node \"SRAM_ADDR\[10\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_ADDR\[10\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "SRAM_ADDR\[11\] " "Ignored I/O standard assignment to node \"SRAM_ADDR\[11\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_ADDR\[11\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "SRAM_ADDR\[12\] " "Ignored I/O standard assignment to node \"SRAM_ADDR\[12\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_ADDR\[12\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "SRAM_ADDR\[13\] " "Ignored I/O standard assignment to node \"SRAM_ADDR\[13\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_ADDR\[13\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "SRAM_ADDR\[14\] " "Ignored I/O standard assignment to node \"SRAM_ADDR\[14\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_ADDR\[14\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "SRAM_ADDR\[15\] " "Ignored I/O standard assignment to node \"SRAM_ADDR\[15\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_ADDR\[15\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "SRAM_ADDR\[16\] " "Ignored I/O standard assignment to node \"SRAM_ADDR\[16\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_ADDR\[16\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "SRAM_ADDR\[17\] " "Ignored I/O standard assignment to node \"SRAM_ADDR\[17\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_ADDR\[17\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "SRAM_ADDR\[18\] " "Ignored I/O standard assignment to node \"SRAM_ADDR\[18\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_ADDR\[18\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "SRAM_ADDR\[19\] " "Ignored I/O standard assignment to node \"SRAM_ADDR\[19\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_ADDR\[19\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "SRAM_ADDR\[1\] " "Ignored I/O standard assignment to node \"SRAM_ADDR\[1\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_ADDR\[1\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "SRAM_ADDR\[2\] " "Ignored I/O standard assignment to node \"SRAM_ADDR\[2\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_ADDR\[2\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "SRAM_ADDR\[3\] " "Ignored I/O standard assignment to node \"SRAM_ADDR\[3\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_ADDR\[3\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "SRAM_ADDR\[4\] " "Ignored I/O standard assignment to node \"SRAM_ADDR\[4\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_ADDR\[4\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "SRAM_ADDR\[5\] " "Ignored I/O standard assignment to node \"SRAM_ADDR\[5\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_ADDR\[5\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "SRAM_ADDR\[6\] " "Ignored I/O standard assignment to node \"SRAM_ADDR\[6\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_ADDR\[6\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "SRAM_ADDR\[7\] " "Ignored I/O standard assignment to node \"SRAM_ADDR\[7\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_ADDR\[7\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "SRAM_ADDR\[8\] " "Ignored I/O standard assignment to node \"SRAM_ADDR\[8\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_ADDR\[8\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "SRAM_ADDR\[9\] " "Ignored I/O standard assignment to node \"SRAM_ADDR\[9\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_ADDR\[9\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "SRAM_CE_N " "Ignored I/O standard assignment to node \"SRAM_CE_N\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_CE_N" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "SRAM_DQ\[0\] " "Ignored I/O standard assignment to node \"SRAM_DQ\[0\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_DQ\[0\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "SRAM_DQ\[10\] " "Ignored I/O standard assignment to node \"SRAM_DQ\[10\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_DQ\[10\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "SRAM_DQ\[11\] " "Ignored I/O standard assignment to node \"SRAM_DQ\[11\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_DQ\[11\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "SRAM_DQ\[12\] " "Ignored I/O standard assignment to node \"SRAM_DQ\[12\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_DQ\[12\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "SRAM_DQ\[13\] " "Ignored I/O standard assignment to node \"SRAM_DQ\[13\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_DQ\[13\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "SRAM_DQ\[14\] " "Ignored I/O standard assignment to node \"SRAM_DQ\[14\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_DQ\[14\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "SRAM_DQ\[15\] " "Ignored I/O standard assignment to node \"SRAM_DQ\[15\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_DQ\[15\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "SRAM_DQ\[1\] " "Ignored I/O standard assignment to node \"SRAM_DQ\[1\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_DQ\[1\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "SRAM_DQ\[2\] " "Ignored I/O standard assignment to node \"SRAM_DQ\[2\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_DQ\[2\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "SRAM_DQ\[3\] " "Ignored I/O standard assignment to node \"SRAM_DQ\[3\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_DQ\[3\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "SRAM_DQ\[4\] " "Ignored I/O standard assignment to node \"SRAM_DQ\[4\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_DQ\[4\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "SRAM_DQ\[5\] " "Ignored I/O standard assignment to node \"SRAM_DQ\[5\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_DQ\[5\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "SRAM_DQ\[6\] " "Ignored I/O standard assignment to node \"SRAM_DQ\[6\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_DQ\[6\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "SRAM_DQ\[7\] " "Ignored I/O standard assignment to node \"SRAM_DQ\[7\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_DQ\[7\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "SRAM_DQ\[8\] " "Ignored I/O standard assignment to node \"SRAM_DQ\[8\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_DQ\[8\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "SRAM_DQ\[9\] " "Ignored I/O standard assignment to node \"SRAM_DQ\[9\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_DQ\[9\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "SRAM_LB_N " "Ignored I/O standard assignment to node \"SRAM_LB_N\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_LB_N" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "SRAM_OE_N " "Ignored I/O standard assignment to node \"SRAM_OE_N\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_OE_N" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "SRAM_UB_N " "Ignored I/O standard assignment to node \"SRAM_UB_N\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_UB_N" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "SRAM_WE_N " "Ignored I/O standard assignment to node \"SRAM_WE_N\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_WE_N" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "TD_CLK27 " "Ignored I/O standard assignment to node \"TD_CLK27\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "TD_CLK27" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "TD_DATA\[0\] " "Ignored I/O standard assignment to node \"TD_DATA\[0\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "TD_DATA\[0\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "TD_DATA\[1\] " "Ignored I/O standard assignment to node \"TD_DATA\[1\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "TD_DATA\[1\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "TD_DATA\[2\] " "Ignored I/O standard assignment to node \"TD_DATA\[2\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "TD_DATA\[2\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "TD_DATA\[3\] " "Ignored I/O standard assignment to node \"TD_DATA\[3\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "TD_DATA\[3\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "TD_DATA\[4\] " "Ignored I/O standard assignment to node \"TD_DATA\[4\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "TD_DATA\[4\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "TD_DATA\[5\] " "Ignored I/O standard assignment to node \"TD_DATA\[5\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "TD_DATA\[5\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "TD_DATA\[6\] " "Ignored I/O standard assignment to node \"TD_DATA\[6\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "TD_DATA\[6\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "TD_DATA\[7\] " "Ignored I/O standard assignment to node \"TD_DATA\[7\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "TD_DATA\[7\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "TD_HS " "Ignored I/O standard assignment to node \"TD_HS\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "TD_HS" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "TD_RESET_N " "Ignored I/O standard assignment to node \"TD_RESET_N\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "TD_RESET_N" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "TD_VS " "Ignored I/O standard assignment to node \"TD_VS\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "TD_VS" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "UART_CTS " "Ignored I/O standard assignment to node \"UART_CTS\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "UART_CTS" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "UART_RTS " "Ignored I/O standard assignment to node \"UART_RTS\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "UART_RTS" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "UART_RXD " "Ignored I/O standard assignment to node \"UART_RXD\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "UART_RXD" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "UART_TXD " "Ignored I/O standard assignment to node \"UART_TXD\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "UART_TXD" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "VGA_BLANK_N " "Ignored I/O standard assignment to node \"VGA_BLANK_N\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "VGA_BLANK_N" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "VGA_B\[0\] " "Ignored I/O standard assignment to node \"VGA_B\[0\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "VGA_B\[0\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "VGA_B\[1\] " "Ignored I/O standard assignment to node \"VGA_B\[1\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "VGA_B\[1\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "VGA_B\[2\] " "Ignored I/O standard assignment to node \"VGA_B\[2\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "VGA_B\[2\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "VGA_B\[3\] " "Ignored I/O standard assignment to node \"VGA_B\[3\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "VGA_B\[3\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "VGA_B\[4\] " "Ignored I/O standard assignment to node \"VGA_B\[4\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "VGA_B\[4\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "VGA_B\[5\] " "Ignored I/O standard assignment to node \"VGA_B\[5\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "VGA_B\[5\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "VGA_B\[6\] " "Ignored I/O standard assignment to node \"VGA_B\[6\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "VGA_B\[6\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "VGA_B\[7\] " "Ignored I/O standard assignment to node \"VGA_B\[7\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "VGA_B\[7\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "VGA_CLK " "Ignored I/O standard assignment to node \"VGA_CLK\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "VGA_CLK" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "VGA_G\[0\] " "Ignored I/O standard assignment to node \"VGA_G\[0\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "VGA_G\[0\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "VGA_G\[1\] " "Ignored I/O standard assignment to node \"VGA_G\[1\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "VGA_G\[1\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "VGA_G\[2\] " "Ignored I/O standard assignment to node \"VGA_G\[2\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "VGA_G\[2\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "VGA_G\[3\] " "Ignored I/O standard assignment to node \"VGA_G\[3\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "VGA_G\[3\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "VGA_G\[4\] " "Ignored I/O standard assignment to node \"VGA_G\[4\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "VGA_G\[4\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "VGA_G\[5\] " "Ignored I/O standard assignment to node \"VGA_G\[5\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "VGA_G\[5\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "VGA_G\[6\] " "Ignored I/O standard assignment to node \"VGA_G\[6\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "VGA_G\[6\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "VGA_G\[7\] " "Ignored I/O standard assignment to node \"VGA_G\[7\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "VGA_G\[7\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "VGA_HS " "Ignored I/O standard assignment to node \"VGA_HS\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "VGA_HS" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "VGA_R\[0\] " "Ignored I/O standard assignment to node \"VGA_R\[0\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "VGA_R\[0\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "VGA_R\[1\] " "Ignored I/O standard assignment to node \"VGA_R\[1\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "VGA_R\[1\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "VGA_R\[2\] " "Ignored I/O standard assignment to node \"VGA_R\[2\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "VGA_R\[2\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "VGA_R\[3\] " "Ignored I/O standard assignment to node \"VGA_R\[3\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "VGA_R\[3\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "VGA_R\[4\] " "Ignored I/O standard assignment to node \"VGA_R\[4\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "VGA_R\[4\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "VGA_R\[5\] " "Ignored I/O standard assignment to node \"VGA_R\[5\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "VGA_R\[5\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "VGA_R\[6\] " "Ignored I/O standard assignment to node \"VGA_R\[6\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "VGA_R\[6\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "VGA_R\[7\] " "Ignored I/O standard assignment to node \"VGA_R\[7\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "VGA_R\[7\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "VGA_SYNC_N " "Ignored I/O standard assignment to node \"VGA_SYNC_N\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "VGA_SYNC_N" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "VGA_VS " "Ignored I/O standard assignment to node \"VGA_VS\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "VGA_VS" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609968636 ""} } { } 0 15709 "Ignored I/O standard assignments to the following nodes" 0 0 "Fitter" 0 -1 1480609968635 ""} +{ "Warning" "WCUT_CUT_UNATTACHED_ASGN" "" "Ignored locations or region assignments to the following nodes" { { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "AUD_ADCDAT " "Node \"AUD_ADCDAT\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "AUD_ADCDAT" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "AUD_ADCLRCK " "Node \"AUD_ADCLRCK\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "AUD_ADCLRCK" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "AUD_BCLK " "Node \"AUD_BCLK\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "AUD_BCLK" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "AUD_DACDAT " "Node \"AUD_DACDAT\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "AUD_DACDAT" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "AUD_DACLRCK " "Node \"AUD_DACLRCK\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "AUD_DACLRCK" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "AUD_XCK " "Node \"AUD_XCK\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "AUD_XCK" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "CLOCK2_50 " "Node \"CLOCK2_50\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "CLOCK2_50" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "CLOCK3_50 " "Node \"CLOCK3_50\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "CLOCK3_50" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "DRAM_ADDR\[0\] " "Node \"DRAM_ADDR\[0\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_ADDR\[0\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "DRAM_ADDR\[10\] " "Node \"DRAM_ADDR\[10\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_ADDR\[10\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "DRAM_ADDR\[11\] " "Node \"DRAM_ADDR\[11\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_ADDR\[11\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "DRAM_ADDR\[12\] " "Node \"DRAM_ADDR\[12\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_ADDR\[12\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "DRAM_ADDR\[1\] " "Node \"DRAM_ADDR\[1\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_ADDR\[1\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "DRAM_ADDR\[2\] " "Node \"DRAM_ADDR\[2\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_ADDR\[2\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "DRAM_ADDR\[3\] " "Node \"DRAM_ADDR\[3\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_ADDR\[3\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "DRAM_ADDR\[4\] " "Node \"DRAM_ADDR\[4\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_ADDR\[4\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "DRAM_ADDR\[5\] " "Node \"DRAM_ADDR\[5\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_ADDR\[5\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "DRAM_ADDR\[6\] " "Node \"DRAM_ADDR\[6\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_ADDR\[6\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "DRAM_ADDR\[7\] " "Node \"DRAM_ADDR\[7\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_ADDR\[7\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "DRAM_ADDR\[8\] " "Node \"DRAM_ADDR\[8\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_ADDR\[8\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "DRAM_ADDR\[9\] " "Node \"DRAM_ADDR\[9\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_ADDR\[9\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "DRAM_BA\[0\] " "Node \"DRAM_BA\[0\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_BA\[0\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "DRAM_BA\[1\] " "Node \"DRAM_BA\[1\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_BA\[1\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "DRAM_CAS_N " "Node \"DRAM_CAS_N\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_CAS_N" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "DRAM_CKE " "Node \"DRAM_CKE\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_CKE" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "DRAM_CLK " "Node \"DRAM_CLK\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_CLK" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "DRAM_CS_N " "Node \"DRAM_CS_N\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_CS_N" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "DRAM_DQM\[0\] " "Node \"DRAM_DQM\[0\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQM\[0\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "DRAM_DQM\[1\] " "Node \"DRAM_DQM\[1\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQM\[1\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "DRAM_DQM\[2\] " "Node \"DRAM_DQM\[2\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQM\[2\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "DRAM_DQM\[3\] " "Node \"DRAM_DQM\[3\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQM\[3\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "DRAM_DQ\[0\] " "Node \"DRAM_DQ\[0\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQ\[0\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "DRAM_DQ\[10\] " "Node \"DRAM_DQ\[10\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQ\[10\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "DRAM_DQ\[11\] " "Node \"DRAM_DQ\[11\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQ\[11\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "DRAM_DQ\[12\] " "Node \"DRAM_DQ\[12\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQ\[12\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "DRAM_DQ\[13\] " "Node \"DRAM_DQ\[13\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQ\[13\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "DRAM_DQ\[14\] " "Node \"DRAM_DQ\[14\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQ\[14\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "DRAM_DQ\[15\] " "Node \"DRAM_DQ\[15\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQ\[15\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "DRAM_DQ\[16\] " "Node \"DRAM_DQ\[16\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQ\[16\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "DRAM_DQ\[17\] " "Node \"DRAM_DQ\[17\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQ\[17\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "DRAM_DQ\[18\] " "Node \"DRAM_DQ\[18\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQ\[18\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "DRAM_DQ\[19\] " "Node \"DRAM_DQ\[19\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQ\[19\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "DRAM_DQ\[1\] " "Node \"DRAM_DQ\[1\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQ\[1\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "DRAM_DQ\[20\] " "Node \"DRAM_DQ\[20\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQ\[20\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "DRAM_DQ\[21\] " "Node \"DRAM_DQ\[21\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQ\[21\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "DRAM_DQ\[22\] " "Node \"DRAM_DQ\[22\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQ\[22\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "DRAM_DQ\[23\] " "Node \"DRAM_DQ\[23\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQ\[23\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "DRAM_DQ\[24\] " "Node \"DRAM_DQ\[24\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQ\[24\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "DRAM_DQ\[25\] " "Node \"DRAM_DQ\[25\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQ\[25\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "DRAM_DQ\[26\] " "Node \"DRAM_DQ\[26\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQ\[26\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "DRAM_DQ\[27\] " "Node \"DRAM_DQ\[27\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQ\[27\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "DRAM_DQ\[28\] " "Node \"DRAM_DQ\[28\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQ\[28\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "DRAM_DQ\[29\] " "Node \"DRAM_DQ\[29\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQ\[29\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "DRAM_DQ\[2\] " "Node \"DRAM_DQ\[2\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQ\[2\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "DRAM_DQ\[30\] " "Node \"DRAM_DQ\[30\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQ\[30\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "DRAM_DQ\[31\] " "Node \"DRAM_DQ\[31\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQ\[31\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "DRAM_DQ\[3\] " "Node \"DRAM_DQ\[3\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQ\[3\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "DRAM_DQ\[4\] " "Node \"DRAM_DQ\[4\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQ\[4\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "DRAM_DQ\[5\] " "Node \"DRAM_DQ\[5\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQ\[5\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "DRAM_DQ\[6\] " "Node \"DRAM_DQ\[6\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQ\[6\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "DRAM_DQ\[7\] " "Node \"DRAM_DQ\[7\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQ\[7\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "DRAM_DQ\[8\] " "Node \"DRAM_DQ\[8\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQ\[8\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "DRAM_DQ\[9\] " "Node \"DRAM_DQ\[9\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQ\[9\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "DRAM_RAS_N " "Node \"DRAM_RAS_N\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_RAS_N" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "DRAM_WE_N " "Node \"DRAM_WE_N\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_WE_N" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "EEP_I2C_SCLK " "Node \"EEP_I2C_SCLK\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "EEP_I2C_SCLK" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "EEP_I2C_SDAT " "Node \"EEP_I2C_SDAT\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "EEP_I2C_SDAT" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "ENET0_GTX_CLK " "Node \"ENET0_GTX_CLK\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET0_GTX_CLK" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "ENET0_INT_N " "Node \"ENET0_INT_N\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET0_INT_N" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "ENET0_LINK100 " "Node \"ENET0_LINK100\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET0_LINK100" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "ENET0_MDC " "Node \"ENET0_MDC\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET0_MDC" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "ENET0_MDIO " "Node \"ENET0_MDIO\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET0_MDIO" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "ENET0_RST_N " "Node \"ENET0_RST_N\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET0_RST_N" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "ENET0_RX_CLK " "Node \"ENET0_RX_CLK\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET0_RX_CLK" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "ENET0_RX_COL " "Node \"ENET0_RX_COL\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET0_RX_COL" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "ENET0_RX_CRS " "Node \"ENET0_RX_CRS\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET0_RX_CRS" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "ENET0_RX_DATA\[0\] " "Node \"ENET0_RX_DATA\[0\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET0_RX_DATA\[0\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "ENET0_RX_DATA\[1\] " "Node \"ENET0_RX_DATA\[1\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET0_RX_DATA\[1\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "ENET0_RX_DATA\[2\] " "Node \"ENET0_RX_DATA\[2\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET0_RX_DATA\[2\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "ENET0_RX_DATA\[3\] " "Node \"ENET0_RX_DATA\[3\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET0_RX_DATA\[3\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "ENET0_RX_DV " "Node \"ENET0_RX_DV\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET0_RX_DV" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "ENET0_RX_ER " "Node \"ENET0_RX_ER\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET0_RX_ER" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "ENET0_TX_CLK " "Node \"ENET0_TX_CLK\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET0_TX_CLK" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "ENET0_TX_DATA\[0\] " "Node \"ENET0_TX_DATA\[0\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET0_TX_DATA\[0\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "ENET0_TX_DATA\[1\] " "Node \"ENET0_TX_DATA\[1\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET0_TX_DATA\[1\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "ENET0_TX_DATA\[2\] " "Node \"ENET0_TX_DATA\[2\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET0_TX_DATA\[2\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "ENET0_TX_DATA\[3\] " "Node \"ENET0_TX_DATA\[3\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET0_TX_DATA\[3\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "ENET0_TX_EN " "Node \"ENET0_TX_EN\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET0_TX_EN" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "ENET0_TX_ER " "Node \"ENET0_TX_ER\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET0_TX_ER" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "ENET1_GTX_CLK " "Node \"ENET1_GTX_CLK\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET1_GTX_CLK" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "ENET1_INT_N " "Node \"ENET1_INT_N\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET1_INT_N" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "ENET1_LINK100 " "Node \"ENET1_LINK100\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET1_LINK100" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "ENET1_MDC " "Node \"ENET1_MDC\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET1_MDC" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "ENET1_MDIO " "Node \"ENET1_MDIO\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET1_MDIO" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "ENET1_RST_N " "Node \"ENET1_RST_N\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET1_RST_N" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "ENET1_RX_CLK " "Node \"ENET1_RX_CLK\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET1_RX_CLK" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "ENET1_RX_COL " "Node \"ENET1_RX_COL\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET1_RX_COL" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "ENET1_RX_CRS " "Node \"ENET1_RX_CRS\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET1_RX_CRS" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "ENET1_RX_DATA\[0\] " "Node \"ENET1_RX_DATA\[0\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET1_RX_DATA\[0\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "ENET1_RX_DATA\[1\] " "Node \"ENET1_RX_DATA\[1\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET1_RX_DATA\[1\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "ENET1_RX_DATA\[2\] " "Node \"ENET1_RX_DATA\[2\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET1_RX_DATA\[2\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "ENET1_RX_DATA\[3\] " "Node \"ENET1_RX_DATA\[3\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET1_RX_DATA\[3\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "ENET1_RX_DV " "Node \"ENET1_RX_DV\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET1_RX_DV" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "ENET1_RX_ER " "Node \"ENET1_RX_ER\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET1_RX_ER" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "ENET1_TX_CLK " "Node \"ENET1_TX_CLK\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET1_TX_CLK" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "ENET1_TX_DATA\[0\] " "Node \"ENET1_TX_DATA\[0\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET1_TX_DATA\[0\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "ENET1_TX_DATA\[1\] " "Node \"ENET1_TX_DATA\[1\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET1_TX_DATA\[1\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "ENET1_TX_DATA\[2\] " "Node \"ENET1_TX_DATA\[2\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET1_TX_DATA\[2\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "ENET1_TX_DATA\[3\] " "Node \"ENET1_TX_DATA\[3\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET1_TX_DATA\[3\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "ENET1_TX_EN " "Node \"ENET1_TX_EN\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET1_TX_EN" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "ENET1_TX_ER " "Node \"ENET1_TX_ER\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET1_TX_ER" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "ENETCLK_25 " "Node \"ENETCLK_25\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENETCLK_25" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "EX_IO\[0\] " "Node \"EX_IO\[0\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "EX_IO\[0\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "EX_IO\[1\] " "Node \"EX_IO\[1\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "EX_IO\[1\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "EX_IO\[2\] " "Node \"EX_IO\[2\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "EX_IO\[2\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "EX_IO\[3\] " "Node \"EX_IO\[3\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "EX_IO\[3\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "EX_IO\[4\] " "Node \"EX_IO\[4\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "EX_IO\[4\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "EX_IO\[5\] " "Node \"EX_IO\[5\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "EX_IO\[5\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "EX_IO\[6\] " "Node \"EX_IO\[6\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "EX_IO\[6\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "FL_ADDR\[0\] " "Node \"FL_ADDR\[0\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_ADDR\[0\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "FL_ADDR\[10\] " "Node \"FL_ADDR\[10\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_ADDR\[10\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "FL_ADDR\[11\] " "Node \"FL_ADDR\[11\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_ADDR\[11\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "FL_ADDR\[12\] " "Node \"FL_ADDR\[12\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_ADDR\[12\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "FL_ADDR\[13\] " "Node \"FL_ADDR\[13\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_ADDR\[13\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "FL_ADDR\[14\] " "Node \"FL_ADDR\[14\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_ADDR\[14\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "FL_ADDR\[15\] " "Node \"FL_ADDR\[15\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_ADDR\[15\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "FL_ADDR\[16\] " "Node \"FL_ADDR\[16\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_ADDR\[16\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "FL_ADDR\[17\] " "Node \"FL_ADDR\[17\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_ADDR\[17\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "FL_ADDR\[18\] " "Node \"FL_ADDR\[18\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_ADDR\[18\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "FL_ADDR\[19\] " "Node \"FL_ADDR\[19\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_ADDR\[19\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "FL_ADDR\[1\] " "Node \"FL_ADDR\[1\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_ADDR\[1\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "FL_ADDR\[20\] " "Node \"FL_ADDR\[20\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_ADDR\[20\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "FL_ADDR\[21\] " "Node \"FL_ADDR\[21\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_ADDR\[21\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "FL_ADDR\[22\] " "Node \"FL_ADDR\[22\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_ADDR\[22\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "FL_ADDR\[2\] " "Node \"FL_ADDR\[2\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_ADDR\[2\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "FL_ADDR\[3\] " "Node \"FL_ADDR\[3\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_ADDR\[3\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "FL_ADDR\[4\] " "Node \"FL_ADDR\[4\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_ADDR\[4\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "FL_ADDR\[5\] " "Node \"FL_ADDR\[5\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_ADDR\[5\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "FL_ADDR\[6\] " "Node \"FL_ADDR\[6\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_ADDR\[6\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "FL_ADDR\[7\] " "Node \"FL_ADDR\[7\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_ADDR\[7\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "FL_ADDR\[8\] " "Node \"FL_ADDR\[8\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_ADDR\[8\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "FL_ADDR\[9\] " "Node \"FL_ADDR\[9\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_ADDR\[9\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "FL_CE_N " "Node \"FL_CE_N\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_CE_N" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "FL_DQ\[0\] " "Node \"FL_DQ\[0\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_DQ\[0\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "FL_DQ\[1\] " "Node \"FL_DQ\[1\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_DQ\[1\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "FL_DQ\[2\] " "Node \"FL_DQ\[2\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_DQ\[2\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "FL_DQ\[3\] " "Node \"FL_DQ\[3\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_DQ\[3\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "FL_DQ\[4\] " "Node \"FL_DQ\[4\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_DQ\[4\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "FL_DQ\[5\] " "Node \"FL_DQ\[5\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_DQ\[5\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "FL_DQ\[6\] " "Node \"FL_DQ\[6\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_DQ\[6\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "FL_DQ\[7\] " "Node \"FL_DQ\[7\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_DQ\[7\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "FL_OE_N " "Node \"FL_OE_N\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_OE_N" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "FL_RST_N " "Node \"FL_RST_N\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_RST_N" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "FL_RY " "Node \"FL_RY\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_RY" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "FL_WE_N " "Node \"FL_WE_N\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_WE_N" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "FL_WP_N " "Node \"FL_WP_N\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_WP_N" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "GPIO\[0\] " "Node \"GPIO\[0\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[0\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "GPIO\[10\] " "Node \"GPIO\[10\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[10\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "GPIO\[11\] " "Node \"GPIO\[11\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[11\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "GPIO\[12\] " "Node \"GPIO\[12\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[12\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "GPIO\[13\] " "Node \"GPIO\[13\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[13\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "GPIO\[14\] " "Node \"GPIO\[14\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[14\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "GPIO\[15\] " "Node \"GPIO\[15\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[15\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "GPIO\[16\] " "Node \"GPIO\[16\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[16\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "GPIO\[17\] " "Node \"GPIO\[17\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[17\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "GPIO\[18\] " "Node \"GPIO\[18\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[18\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "GPIO\[19\] " "Node \"GPIO\[19\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[19\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "GPIO\[1\] " "Node \"GPIO\[1\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[1\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "GPIO\[20\] " "Node \"GPIO\[20\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[20\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "GPIO\[21\] " "Node \"GPIO\[21\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[21\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "GPIO\[22\] " "Node \"GPIO\[22\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[22\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "GPIO\[23\] " "Node \"GPIO\[23\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[23\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "GPIO\[24\] " "Node \"GPIO\[24\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[24\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "GPIO\[25\] " "Node \"GPIO\[25\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[25\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "GPIO\[26\] " "Node \"GPIO\[26\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[26\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "GPIO\[27\] " "Node \"GPIO\[27\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[27\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "GPIO\[28\] " "Node \"GPIO\[28\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[28\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "GPIO\[29\] " "Node \"GPIO\[29\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[29\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "GPIO\[2\] " "Node \"GPIO\[2\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[2\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "GPIO\[30\] " "Node \"GPIO\[30\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[30\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "GPIO\[31\] " "Node \"GPIO\[31\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[31\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "GPIO\[32\] " "Node \"GPIO\[32\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[32\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "GPIO\[33\] " "Node \"GPIO\[33\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[33\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "GPIO\[34\] " "Node \"GPIO\[34\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[34\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "GPIO\[35\] " "Node \"GPIO\[35\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[35\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "GPIO\[3\] " "Node \"GPIO\[3\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[3\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "GPIO\[4\] " "Node \"GPIO\[4\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[4\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "GPIO\[5\] " "Node \"GPIO\[5\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[5\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "GPIO\[6\] " "Node \"GPIO\[6\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[6\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "GPIO\[7\] " "Node \"GPIO\[7\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[7\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "GPIO\[8\] " "Node \"GPIO\[8\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[8\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "GPIO\[9\] " "Node \"GPIO\[9\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[9\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_CLKIN0 " "Node \"HSMC_CLKIN0\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_CLKIN0" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_CLKIN_N1 " "Node \"HSMC_CLKIN_N1\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_CLKIN_N1" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_CLKIN_N2 " "Node \"HSMC_CLKIN_N2\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_CLKIN_N2" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_CLKIN_P1 " "Node \"HSMC_CLKIN_P1\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_CLKIN_P1" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_CLKIN_P2 " "Node \"HSMC_CLKIN_P2\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_CLKIN_P2" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_CLKOUT0 " "Node \"HSMC_CLKOUT0\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_CLKOUT0" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_CLKOUT_N1 " "Node \"HSMC_CLKOUT_N1\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_CLKOUT_N1" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_CLKOUT_N2 " "Node \"HSMC_CLKOUT_N2\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_CLKOUT_N2" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_CLKOUT_P1 " "Node \"HSMC_CLKOUT_P1\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_CLKOUT_P1" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_CLKOUT_P2 " "Node \"HSMC_CLKOUT_P2\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_CLKOUT_P2" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_D\[0\] " "Node \"HSMC_D\[0\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_D\[0\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_D\[1\] " "Node \"HSMC_D\[1\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_D\[1\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_D\[2\] " "Node \"HSMC_D\[2\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_D\[2\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_D\[3\] " "Node \"HSMC_D\[3\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_D\[3\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_RX_D_N\[0\] " "Node \"HSMC_RX_D_N\[0\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_N\[0\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_RX_D_N\[10\] " "Node \"HSMC_RX_D_N\[10\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_N\[10\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_RX_D_N\[11\] " "Node \"HSMC_RX_D_N\[11\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_N\[11\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_RX_D_N\[12\] " "Node \"HSMC_RX_D_N\[12\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_N\[12\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_RX_D_N\[13\] " "Node \"HSMC_RX_D_N\[13\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_N\[13\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_RX_D_N\[14\] " "Node \"HSMC_RX_D_N\[14\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_N\[14\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_RX_D_N\[15\] " "Node \"HSMC_RX_D_N\[15\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_N\[15\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_RX_D_N\[16\] " "Node \"HSMC_RX_D_N\[16\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_N\[16\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_RX_D_N\[1\] " "Node \"HSMC_RX_D_N\[1\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_N\[1\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_RX_D_N\[2\] " "Node \"HSMC_RX_D_N\[2\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_N\[2\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_RX_D_N\[3\] " "Node \"HSMC_RX_D_N\[3\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_N\[3\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_RX_D_N\[4\] " "Node \"HSMC_RX_D_N\[4\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_N\[4\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_RX_D_N\[5\] " "Node \"HSMC_RX_D_N\[5\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_N\[5\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_RX_D_N\[6\] " "Node \"HSMC_RX_D_N\[6\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_N\[6\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_RX_D_N\[7\] " "Node \"HSMC_RX_D_N\[7\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_N\[7\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_RX_D_N\[8\] " "Node \"HSMC_RX_D_N\[8\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_N\[8\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_RX_D_N\[9\] " "Node \"HSMC_RX_D_N\[9\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_N\[9\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_RX_D_P\[0\] " "Node \"HSMC_RX_D_P\[0\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_P\[0\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_RX_D_P\[10\] " "Node \"HSMC_RX_D_P\[10\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_P\[10\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_RX_D_P\[11\] " "Node \"HSMC_RX_D_P\[11\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_P\[11\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_RX_D_P\[12\] " "Node \"HSMC_RX_D_P\[12\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_P\[12\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_RX_D_P\[13\] " "Node \"HSMC_RX_D_P\[13\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_P\[13\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_RX_D_P\[14\] " "Node \"HSMC_RX_D_P\[14\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_P\[14\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_RX_D_P\[15\] " "Node \"HSMC_RX_D_P\[15\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_P\[15\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_RX_D_P\[16\] " "Node \"HSMC_RX_D_P\[16\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_P\[16\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_RX_D_P\[1\] " "Node \"HSMC_RX_D_P\[1\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_P\[1\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_RX_D_P\[2\] " "Node \"HSMC_RX_D_P\[2\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_P\[2\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_RX_D_P\[3\] " "Node \"HSMC_RX_D_P\[3\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_P\[3\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_RX_D_P\[4\] " "Node \"HSMC_RX_D_P\[4\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_P\[4\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_RX_D_P\[5\] " "Node \"HSMC_RX_D_P\[5\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_P\[5\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_RX_D_P\[6\] " "Node \"HSMC_RX_D_P\[6\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_P\[6\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_RX_D_P\[7\] " "Node \"HSMC_RX_D_P\[7\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_P\[7\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_RX_D_P\[8\] " "Node \"HSMC_RX_D_P\[8\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_P\[8\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_RX_D_P\[9\] " "Node \"HSMC_RX_D_P\[9\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_P\[9\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_TX_D_N\[0\] " "Node \"HSMC_TX_D_N\[0\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_N\[0\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_TX_D_N\[10\] " "Node \"HSMC_TX_D_N\[10\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_N\[10\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_TX_D_N\[11\] " "Node \"HSMC_TX_D_N\[11\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_N\[11\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_TX_D_N\[12\] " "Node \"HSMC_TX_D_N\[12\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_N\[12\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_TX_D_N\[13\] " "Node \"HSMC_TX_D_N\[13\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_N\[13\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_TX_D_N\[14\] " "Node \"HSMC_TX_D_N\[14\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_N\[14\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_TX_D_N\[15\] " "Node \"HSMC_TX_D_N\[15\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_N\[15\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_TX_D_N\[16\] " "Node \"HSMC_TX_D_N\[16\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_N\[16\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_TX_D_N\[1\] " "Node \"HSMC_TX_D_N\[1\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_N\[1\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_TX_D_N\[2\] " "Node \"HSMC_TX_D_N\[2\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_N\[2\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_TX_D_N\[3\] " "Node \"HSMC_TX_D_N\[3\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_N\[3\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_TX_D_N\[4\] " "Node \"HSMC_TX_D_N\[4\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_N\[4\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_TX_D_N\[5\] " "Node \"HSMC_TX_D_N\[5\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_N\[5\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_TX_D_N\[6\] " "Node \"HSMC_TX_D_N\[6\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_N\[6\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_TX_D_N\[7\] " "Node \"HSMC_TX_D_N\[7\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_N\[7\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_TX_D_N\[8\] " "Node \"HSMC_TX_D_N\[8\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_N\[8\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_TX_D_N\[9\] " "Node \"HSMC_TX_D_N\[9\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_N\[9\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_TX_D_P\[0\] " "Node \"HSMC_TX_D_P\[0\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_P\[0\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_TX_D_P\[10\] " "Node \"HSMC_TX_D_P\[10\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_P\[10\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_TX_D_P\[11\] " "Node \"HSMC_TX_D_P\[11\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_P\[11\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_TX_D_P\[12\] " "Node \"HSMC_TX_D_P\[12\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_P\[12\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_TX_D_P\[13\] " "Node \"HSMC_TX_D_P\[13\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_P\[13\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_TX_D_P\[14\] " "Node \"HSMC_TX_D_P\[14\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_P\[14\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_TX_D_P\[15\] " "Node \"HSMC_TX_D_P\[15\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_P\[15\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_TX_D_P\[16\] " "Node \"HSMC_TX_D_P\[16\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_P\[16\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_TX_D_P\[1\] " "Node \"HSMC_TX_D_P\[1\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_P\[1\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_TX_D_P\[2\] " "Node \"HSMC_TX_D_P\[2\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_P\[2\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_TX_D_P\[3\] " "Node \"HSMC_TX_D_P\[3\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_P\[3\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_TX_D_P\[4\] " "Node \"HSMC_TX_D_P\[4\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_P\[4\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_TX_D_P\[5\] " "Node \"HSMC_TX_D_P\[5\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_P\[5\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_TX_D_P\[6\] " "Node \"HSMC_TX_D_P\[6\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_P\[6\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_TX_D_P\[7\] " "Node \"HSMC_TX_D_P\[7\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_P\[7\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_TX_D_P\[8\] " "Node \"HSMC_TX_D_P\[8\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_P\[8\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_TX_D_P\[9\] " "Node \"HSMC_TX_D_P\[9\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_P\[9\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "I2C_SCLK " "Node \"I2C_SCLK\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "I2C_SCLK" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "I2C_SDAT " "Node \"I2C_SDAT\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "I2C_SDAT" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "IRDA_RXD " "Node \"IRDA_RXD\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "IRDA_RXD" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "LEDG\[8\] " "Node \"LEDG\[8\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "LEDG\[8\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "OTG_ADDR\[0\] " "Node \"OTG_ADDR\[0\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "OTG_ADDR\[0\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "OTG_ADDR\[1\] " "Node \"OTG_ADDR\[1\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "OTG_ADDR\[1\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "OTG_CS_N " "Node \"OTG_CS_N\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "OTG_CS_N" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "OTG_DACK_N\[0\] " "Node \"OTG_DACK_N\[0\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "OTG_DACK_N\[0\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "OTG_DACK_N\[1\] " "Node \"OTG_DACK_N\[1\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "OTG_DACK_N\[1\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "OTG_DATA\[0\] " "Node \"OTG_DATA\[0\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "OTG_DATA\[0\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "OTG_DATA\[10\] " "Node \"OTG_DATA\[10\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "OTG_DATA\[10\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "OTG_DATA\[11\] " "Node \"OTG_DATA\[11\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "OTG_DATA\[11\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "OTG_DATA\[12\] " "Node \"OTG_DATA\[12\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "OTG_DATA\[12\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "OTG_DATA\[13\] " "Node \"OTG_DATA\[13\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "OTG_DATA\[13\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "OTG_DATA\[14\] " "Node \"OTG_DATA\[14\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "OTG_DATA\[14\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "OTG_DATA\[15\] " "Node \"OTG_DATA\[15\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "OTG_DATA\[15\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "OTG_DATA\[1\] " "Node \"OTG_DATA\[1\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "OTG_DATA\[1\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "OTG_DATA\[2\] " "Node \"OTG_DATA\[2\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "OTG_DATA\[2\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "OTG_DATA\[3\] " "Node \"OTG_DATA\[3\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "OTG_DATA\[3\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "OTG_DATA\[4\] " "Node \"OTG_DATA\[4\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "OTG_DATA\[4\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "OTG_DATA\[5\] " "Node \"OTG_DATA\[5\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "OTG_DATA\[5\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "OTG_DATA\[6\] " "Node \"OTG_DATA\[6\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "OTG_DATA\[6\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "OTG_DATA\[7\] " "Node \"OTG_DATA\[7\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "OTG_DATA\[7\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "OTG_DATA\[8\] " "Node \"OTG_DATA\[8\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "OTG_DATA\[8\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "OTG_DATA\[9\] " "Node \"OTG_DATA\[9\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "OTG_DATA\[9\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "OTG_DREQ\[0\] " "Node \"OTG_DREQ\[0\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "OTG_DREQ\[0\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "OTG_DREQ\[1\] " "Node \"OTG_DREQ\[1\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "OTG_DREQ\[1\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "OTG_FSPEED " "Node \"OTG_FSPEED\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "OTG_FSPEED" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "OTG_INT\[0\] " "Node \"OTG_INT\[0\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "OTG_INT\[0\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "OTG_INT\[1\] " "Node \"OTG_INT\[1\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "OTG_INT\[1\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "OTG_LSPEED " "Node \"OTG_LSPEED\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "OTG_LSPEED" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "OTG_RD_N " "Node \"OTG_RD_N\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "OTG_RD_N" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "OTG_RST_N " "Node \"OTG_RST_N\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "OTG_RST_N" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "OTG_WR_N " "Node \"OTG_WR_N\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "OTG_WR_N" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "PS2_CLK " "Node \"PS2_CLK\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "PS2_CLK" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "PS2_CLK2 " "Node \"PS2_CLK2\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "PS2_CLK2" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "PS2_DAT " "Node \"PS2_DAT\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "PS2_DAT" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "PS2_DAT2 " "Node \"PS2_DAT2\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "PS2_DAT2" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "SD_CLK " "Node \"SD_CLK\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SD_CLK" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "SD_CMD " "Node \"SD_CMD\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SD_CMD" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "SD_DAT\[0\] " "Node \"SD_DAT\[0\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SD_DAT\[0\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "SD_DAT\[1\] " "Node \"SD_DAT\[1\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SD_DAT\[1\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "SD_DAT\[2\] " "Node \"SD_DAT\[2\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SD_DAT\[2\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "SD_DAT\[3\] " "Node \"SD_DAT\[3\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SD_DAT\[3\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "SD_WP_N " "Node \"SD_WP_N\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SD_WP_N" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "SMA_CLKIN " "Node \"SMA_CLKIN\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SMA_CLKIN" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "SMA_CLKOUT " "Node \"SMA_CLKOUT\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SMA_CLKOUT" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "SRAM_ADDR\[0\] " "Node \"SRAM_ADDR\[0\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_ADDR\[0\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "SRAM_ADDR\[10\] " "Node \"SRAM_ADDR\[10\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_ADDR\[10\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "SRAM_ADDR\[11\] " "Node \"SRAM_ADDR\[11\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_ADDR\[11\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "SRAM_ADDR\[12\] " "Node \"SRAM_ADDR\[12\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_ADDR\[12\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "SRAM_ADDR\[13\] " "Node \"SRAM_ADDR\[13\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_ADDR\[13\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "SRAM_ADDR\[14\] " "Node \"SRAM_ADDR\[14\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_ADDR\[14\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "SRAM_ADDR\[15\] " "Node \"SRAM_ADDR\[15\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_ADDR\[15\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "SRAM_ADDR\[16\] " "Node \"SRAM_ADDR\[16\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_ADDR\[16\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "SRAM_ADDR\[17\] " "Node \"SRAM_ADDR\[17\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_ADDR\[17\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "SRAM_ADDR\[18\] " "Node \"SRAM_ADDR\[18\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_ADDR\[18\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "SRAM_ADDR\[19\] " "Node \"SRAM_ADDR\[19\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_ADDR\[19\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "SRAM_ADDR\[1\] " "Node \"SRAM_ADDR\[1\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_ADDR\[1\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "SRAM_ADDR\[2\] " "Node \"SRAM_ADDR\[2\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_ADDR\[2\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "SRAM_ADDR\[3\] " "Node \"SRAM_ADDR\[3\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_ADDR\[3\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "SRAM_ADDR\[4\] " "Node \"SRAM_ADDR\[4\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_ADDR\[4\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "SRAM_ADDR\[5\] " "Node \"SRAM_ADDR\[5\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_ADDR\[5\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "SRAM_ADDR\[6\] " "Node \"SRAM_ADDR\[6\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_ADDR\[6\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "SRAM_ADDR\[7\] " "Node \"SRAM_ADDR\[7\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_ADDR\[7\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "SRAM_ADDR\[8\] " "Node \"SRAM_ADDR\[8\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_ADDR\[8\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "SRAM_ADDR\[9\] " "Node \"SRAM_ADDR\[9\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_ADDR\[9\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "SRAM_CE_N " "Node \"SRAM_CE_N\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_CE_N" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "SRAM_DQ\[0\] " "Node \"SRAM_DQ\[0\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_DQ\[0\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "SRAM_DQ\[10\] " "Node \"SRAM_DQ\[10\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_DQ\[10\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "SRAM_DQ\[11\] " "Node \"SRAM_DQ\[11\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_DQ\[11\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "SRAM_DQ\[12\] " "Node \"SRAM_DQ\[12\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_DQ\[12\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "SRAM_DQ\[13\] " "Node \"SRAM_DQ\[13\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_DQ\[13\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "SRAM_DQ\[14\] " "Node \"SRAM_DQ\[14\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_DQ\[14\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "SRAM_DQ\[15\] " "Node \"SRAM_DQ\[15\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_DQ\[15\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "SRAM_DQ\[1\] " "Node \"SRAM_DQ\[1\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_DQ\[1\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "SRAM_DQ\[2\] " "Node \"SRAM_DQ\[2\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_DQ\[2\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "SRAM_DQ\[3\] " "Node \"SRAM_DQ\[3\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_DQ\[3\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "SRAM_DQ\[4\] " "Node \"SRAM_DQ\[4\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_DQ\[4\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "SRAM_DQ\[5\] " "Node \"SRAM_DQ\[5\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_DQ\[5\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "SRAM_DQ\[6\] " "Node \"SRAM_DQ\[6\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_DQ\[6\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "SRAM_DQ\[7\] " "Node \"SRAM_DQ\[7\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_DQ\[7\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "SRAM_DQ\[8\] " "Node \"SRAM_DQ\[8\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_DQ\[8\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "SRAM_DQ\[9\] " "Node \"SRAM_DQ\[9\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_DQ\[9\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "SRAM_LB_N " "Node \"SRAM_LB_N\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_LB_N" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "SRAM_OE_N " "Node \"SRAM_OE_N\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_OE_N" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "SRAM_UB_N " "Node \"SRAM_UB_N\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_UB_N" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "SRAM_WE_N " "Node \"SRAM_WE_N\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_WE_N" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "TD_CLK27 " "Node \"TD_CLK27\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "TD_CLK27" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "TD_DATA\[0\] " "Node \"TD_DATA\[0\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "TD_DATA\[0\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "TD_DATA\[1\] " "Node \"TD_DATA\[1\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "TD_DATA\[1\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "TD_DATA\[2\] " "Node \"TD_DATA\[2\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "TD_DATA\[2\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "TD_DATA\[3\] " "Node \"TD_DATA\[3\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "TD_DATA\[3\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "TD_DATA\[4\] " "Node \"TD_DATA\[4\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "TD_DATA\[4\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "TD_DATA\[5\] " "Node \"TD_DATA\[5\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "TD_DATA\[5\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "TD_DATA\[6\] " "Node \"TD_DATA\[6\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "TD_DATA\[6\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "TD_DATA\[7\] " "Node \"TD_DATA\[7\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "TD_DATA\[7\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "TD_HS " "Node \"TD_HS\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "TD_HS" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "TD_RESET_N " "Node \"TD_RESET_N\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "TD_RESET_N" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "TD_VS " "Node \"TD_VS\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "TD_VS" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "UART_CTS " "Node \"UART_CTS\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "UART_CTS" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "UART_RTS " "Node \"UART_RTS\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "UART_RTS" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "UART_RXD " "Node \"UART_RXD\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "UART_RXD" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "UART_TXD " "Node \"UART_TXD\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "UART_TXD" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "VGA_BLANK_N " "Node \"VGA_BLANK_N\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "VGA_BLANK_N" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "VGA_B\[0\] " "Node \"VGA_B\[0\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "VGA_B\[0\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "VGA_B\[1\] " "Node \"VGA_B\[1\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "VGA_B\[1\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "VGA_B\[2\] " "Node \"VGA_B\[2\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "VGA_B\[2\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "VGA_B\[3\] " "Node \"VGA_B\[3\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "VGA_B\[3\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "VGA_B\[4\] " "Node \"VGA_B\[4\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "VGA_B\[4\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "VGA_B\[5\] " "Node \"VGA_B\[5\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "VGA_B\[5\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "VGA_B\[6\] " "Node \"VGA_B\[6\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "VGA_B\[6\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "VGA_B\[7\] " "Node \"VGA_B\[7\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "VGA_B\[7\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "VGA_CLK " "Node \"VGA_CLK\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "VGA_CLK" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "VGA_G\[0\] " "Node \"VGA_G\[0\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "VGA_G\[0\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "VGA_G\[1\] " "Node \"VGA_G\[1\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "VGA_G\[1\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "VGA_G\[2\] " "Node \"VGA_G\[2\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "VGA_G\[2\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "VGA_G\[3\] " "Node \"VGA_G\[3\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "VGA_G\[3\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "VGA_G\[4\] " "Node \"VGA_G\[4\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "VGA_G\[4\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "VGA_G\[5\] " "Node \"VGA_G\[5\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "VGA_G\[5\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "VGA_G\[6\] " "Node \"VGA_G\[6\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "VGA_G\[6\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "VGA_G\[7\] " "Node \"VGA_G\[7\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "VGA_G\[7\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "VGA_HS " "Node \"VGA_HS\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "VGA_HS" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "VGA_R\[0\] " "Node \"VGA_R\[0\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "VGA_R\[0\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "VGA_R\[1\] " "Node \"VGA_R\[1\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "VGA_R\[1\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "VGA_R\[2\] " "Node \"VGA_R\[2\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "VGA_R\[2\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "VGA_R\[3\] " "Node \"VGA_R\[3\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "VGA_R\[3\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "VGA_R\[4\] " "Node \"VGA_R\[4\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "VGA_R\[4\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "VGA_R\[5\] " "Node \"VGA_R\[5\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "VGA_R\[5\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "VGA_R\[6\] " "Node \"VGA_R\[6\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "VGA_R\[6\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "VGA_R\[7\] " "Node \"VGA_R\[7\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "VGA_R\[7\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "VGA_SYNC_N " "Node \"VGA_SYNC_N\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "VGA_SYNC_N" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "VGA_VS " "Node \"VGA_VS\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "VGA_VS" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609968663 ""} } { } 0 15705 "Ignored locations or region assignments to the following nodes" 0 0 "Fitter" 0 -1 1480609968663 ""} +{ "Info" "IFITCC_FITTER_PREPARATION_END" "00:00:05 " "Fitter preparation operations ending: elapsed time is 00:00:05" { } { } 0 171121 "Fitter preparation operations ending: elapsed time is %1!s!" 0 0 "Fitter" 0 -1 1480609968690 ""} +{ "Info" "IFITAPI_FITAPI_VPR_FITTER_PLACEMENT_PREP_START" "" "Fitter placement preparation operations beginning" { } { } 0 170189 "Fitter placement preparation operations beginning" 0 0 "Fitter" 0 -1 1480609974963 ""} +{ "Info" "IFITAPI_FITAPI_VPR_FITTER_PLACEMENT_PREP_END" "00:00:01 " "Fitter placement preparation operations ending: elapsed time is 00:00:01" { } { } 0 170190 "Fitter placement preparation operations ending: elapsed time is %1!s!" 0 0 "Fitter" 0 -1 1480609976462 ""} +{ "Info" "IFITAPI_FITAPI_VPR_FITTER_PLACEMENT_START" "" "Fitter placement operations beginning" { } { } 0 170191 "Fitter placement operations beginning" 0 0 "Fitter" 0 -1 1480609976497 ""} +{ "Info" "IFITAPI_FITAPI_INFO_VPR_PLACEMENT_FINISH" "" "Fitter placement was successful" { } { } 0 170137 "Fitter placement was successful" 0 0 "Fitter" 0 -1 1480609978406 ""} +{ "Info" "IFITAPI_FITAPI_VPR_FITTER_PLACEMENT_END" "00:00:02 " "Fitter placement operations ending: elapsed time is 00:00:02" { } { } 0 170192 "Fitter placement operations ending: elapsed time is %1!s!" 0 0 "Fitter" 0 -1 1480609978407 ""} +{ "Info" "IFITAPI_FITAPI_VPR_FITTER_ROUTING_START" "" "Fitter routing operations beginning" { } { } 0 170193 "Fitter routing operations beginning" 0 0 "Fitter" 0 -1 1480609979528 ""} +{ "Info" "IFITAPI_FITAPI_VPR_PERCENT_ROUTING_RESOURCE_USAGE" "2 " "Router estimated average interconnect usage is 2% of the available device resources" { { "Info" "IFITAPI_FITAPI_VPR_PEAK_ROUTING_REGION" "23 X58_Y24 X68_Y36 " "Router estimated peak interconnect usage is 23% of the available device resources in the region that extends from location X58_Y24 to location X68_Y36" { } { { "loc" "" { Generic "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/" { { 1 { 0 "Router estimated peak interconnect usage is 23% of the available device resources in the region that extends from location X58_Y24 to location X68_Y36"} { { 11 { 0 "Router estimated peak interconnect usage is 23% of the available device resources in the region that extends from location X58_Y24 to location X68_Y36"} 58 24 11 13 } } } } } } } 0 170196 "Router estimated peak interconnect usage is %1!d!%% of the available device resources in the region that extends from location %2!s! to location %3!s!" 0 0 "Quartus II" 0 -1 1480609984854 ""} } { } 0 170195 "Router estimated average interconnect usage is %1!d!%% of the available device resources" 0 0 "Fitter" 0 -1 1480609984854 ""} +{ "Info" "IFITAPI_FITAPI_VPR_FITTER_ROUTING_END" "00:00:03 " "Fitter routing operations ending: elapsed time is 00:00:03" { } { } 0 170194 "Fitter routing operations ending: elapsed time is %1!s!" 0 0 "Fitter" 0 -1 1480609985830 ""} +{ "Info" "IFITAPI_FITAPI_VPR_AUTO_FIT_ENABLED_AND_USED" "" "The Fitter performed an Auto Fit compilation. Optimizations were skipped to reduce compilation time." { { "Info" "IFITAPI_FITAPI_VPR_AUTO_FIT_ENABLED_AND_USED_FOR_ROUTABILITY" "" "Optimizations that may affect the design's routability were skipped" { } { } 0 170201 "Optimizations that may affect the design's routability were skipped" 0 0 "Quartus II" 0 -1 1480609985833 ""} { "Info" "IFITAPI_FITAPI_VPR_AUTO_FIT_ENABLED_AND_USED_FOR_TIMING" "" "Optimizations that may affect the design's timing were skipped" { } { } 0 170200 "Optimizations that may affect the design's timing were skipped" 0 0 "Quartus II" 0 -1 1480609985833 ""} } { } 0 170199 "The Fitter performed an Auto Fit compilation. Optimizations were skipped to reduce compilation time." 0 0 "Fitter" 0 -1 1480609985833 ""} +{ "Info" "IVPR20K_VPR_TIMING_ANALYSIS_TIME" "0.75 " "Total time spent on timing analysis during the Fitter is 0.75 seconds." { } { } 0 11888 "Total time spent on timing analysis during the Fitter is %1!s! seconds." 0 0 "Fitter" 0 -1 1480609985994 ""} +{ "Info" "ITAPI_TAPI_STARTED" "" "Started post-fitting delay annotation" { } { } 0 334003 "Started post-fitting delay annotation" 0 0 "Fitter" 0 -1 1480609986074 ""} +{ "Info" "ITAPI_TAPI_COMPLETED" "" "Delay annotation completed successfully" { } { } 0 334004 "Delay annotation completed successfully" 0 0 "Fitter" 0 -1 1480609987128 ""} +{ "Info" "ITAPI_TAPI_STARTED" "" "Started post-fitting delay annotation" { } { } 0 334003 "Started post-fitting delay annotation" 0 0 "Fitter" 0 -1 1480609987213 ""} +{ "Info" "ITAPI_TAPI_COMPLETED" "" "Delay annotation completed successfully" { } { } 0 334004 "Delay annotation completed successfully" 0 0 "Fitter" 0 -1 1480609988215 ""} +{ "Info" "IFITCC_FITTER_POST_OPERATION_END" "00:00:04 " "Fitter post-fit operations ending: elapsed time is 00:00:04" { } { } 0 11218 "Fitter post-fit operations ending: elapsed time is %1!s!" 0 0 "Fitter" 0 -1 1480609989448 ""} +{ "Warning" "WFITCC_FITCC_IGNORED_ASSIGNMENT" "" "Found invalid Fitter assignments. See the Ignored Assignments panel in the Fitter Compilation Report for more information." { } { } 0 171167 "Found invalid Fitter assignments. See the Ignored Assignments panel in the Fitter Compilation Report for more information." 0 0 "Fitter" 0 -1 1480609991135 ""} +{ "Warning" "WFIOMGR_FIOMGR_REFER_APPNOTE_447_TOP_LEVEL" "9 Cyclone IV E " "9 pins must meet Altera requirements for 3.3-, 3.0-, and 2.5-V interfaces. For more information, refer to AN 447: Interfacing Cyclone IV E Devices with 3.3/3.0/2.5-V LVTTL/LVCMOS I/O Systems." { { "Info" "IFIOMGR_PIN_IO_STANDARD_LOCATION" "LCD_data\[0\] 3.3-V LVTTL L3 " "Pin LCD_data\[0\] uses I/O standard 3.3-V LVTTL at L3" { } { { "c:/altera/13.0sp1/quartus/bin64/pin_planner.ppl" "" { PinPlanner "c:/altera/13.0sp1/quartus/bin64/pin_planner.ppl" { LCD_data[0] } } } { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "LCD_data\[0\]" } } } } { "lights.vhd" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/lights.vhd" 20 0 0 } } { "c:/altera/13.0sp1/quartus/bin64/TimingClosureFloorplan.fld" "" { Floorplan "c:/altera/13.0sp1/quartus/bin64/TimingClosureFloorplan.fld" "" "" { LCD_data[0] } "NODE_NAME" } } { "temporary_test_loc" "" { Generic "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/" { { 0 { 0 ""} 0 352 9224 9983 0} } } } } 0 169178 "Pin %1!s! uses I/O standard %2!s! at %3!s!" 0 0 "Quartus II" 0 -1 1480609991178 ""} { "Info" "IFIOMGR_PIN_IO_STANDARD_LOCATION" "LCD_data\[1\] 3.3-V LVTTL L1 " "Pin LCD_data\[1\] uses I/O standard 3.3-V LVTTL at L1" { } { { "c:/altera/13.0sp1/quartus/bin64/pin_planner.ppl" "" { PinPlanner "c:/altera/13.0sp1/quartus/bin64/pin_planner.ppl" { LCD_data[1] } } } { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "LCD_data\[1\]" } } } } { "lights.vhd" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/lights.vhd" 20 0 0 } } { "c:/altera/13.0sp1/quartus/bin64/TimingClosureFloorplan.fld" "" { Floorplan "c:/altera/13.0sp1/quartus/bin64/TimingClosureFloorplan.fld" "" "" { LCD_data[1] } "NODE_NAME" } } { "temporary_test_loc" "" { Generic "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/" { { 0 { 0 ""} 0 353 9224 9983 0} } } } } 0 169178 "Pin %1!s! uses I/O standard %2!s! at %3!s!" 0 0 "Quartus II" 0 -1 1480609991178 ""} { "Info" "IFIOMGR_PIN_IO_STANDARD_LOCATION" "LCD_data\[2\] 3.3-V LVTTL L2 " "Pin LCD_data\[2\] uses I/O standard 3.3-V LVTTL at L2" { } { { "c:/altera/13.0sp1/quartus/bin64/pin_planner.ppl" "" { PinPlanner "c:/altera/13.0sp1/quartus/bin64/pin_planner.ppl" { LCD_data[2] } } } { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "LCD_data\[2\]" } } } } { "lights.vhd" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/lights.vhd" 20 0 0 } } { "c:/altera/13.0sp1/quartus/bin64/TimingClosureFloorplan.fld" "" { Floorplan "c:/altera/13.0sp1/quartus/bin64/TimingClosureFloorplan.fld" "" "" { LCD_data[2] } "NODE_NAME" } } { "temporary_test_loc" "" { Generic "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/" { { 0 { 0 ""} 0 354 9224 9983 0} } } } } 0 169178 "Pin %1!s! uses I/O standard %2!s! at %3!s!" 0 0 "Quartus II" 0 -1 1480609991178 ""} { "Info" "IFIOMGR_PIN_IO_STANDARD_LOCATION" "LCD_data\[3\] 3.3-V LVTTL K7 " "Pin LCD_data\[3\] uses I/O standard 3.3-V LVTTL at K7" { } { { "c:/altera/13.0sp1/quartus/bin64/pin_planner.ppl" "" { PinPlanner "c:/altera/13.0sp1/quartus/bin64/pin_planner.ppl" { LCD_data[3] } } } { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "LCD_data\[3\]" } } } } { "lights.vhd" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/lights.vhd" 20 0 0 } } { "c:/altera/13.0sp1/quartus/bin64/TimingClosureFloorplan.fld" "" { Floorplan "c:/altera/13.0sp1/quartus/bin64/TimingClosureFloorplan.fld" "" "" { LCD_data[3] } "NODE_NAME" } } { "temporary_test_loc" "" { Generic "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/" { { 0 { 0 ""} 0 355 9224 9983 0} } } } } 0 169178 "Pin %1!s! uses I/O standard %2!s! at %3!s!" 0 0 "Quartus II" 0 -1 1480609991178 ""} { "Info" "IFIOMGR_PIN_IO_STANDARD_LOCATION" "LCD_data\[4\] 3.3-V LVTTL K1 " "Pin LCD_data\[4\] uses I/O standard 3.3-V LVTTL at K1" { } { { "c:/altera/13.0sp1/quartus/bin64/pin_planner.ppl" "" { PinPlanner "c:/altera/13.0sp1/quartus/bin64/pin_planner.ppl" { LCD_data[4] } } } { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "LCD_data\[4\]" } } } } { "lights.vhd" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/lights.vhd" 20 0 0 } } { "c:/altera/13.0sp1/quartus/bin64/TimingClosureFloorplan.fld" "" { Floorplan "c:/altera/13.0sp1/quartus/bin64/TimingClosureFloorplan.fld" "" "" { LCD_data[4] } "NODE_NAME" } } { "temporary_test_loc" "" { Generic "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/" { { 0 { 0 ""} 0 356 9224 9983 0} } } } } 0 169178 "Pin %1!s! uses I/O standard %2!s! at %3!s!" 0 0 "Quartus II" 0 -1 1480609991178 ""} { "Info" "IFIOMGR_PIN_IO_STANDARD_LOCATION" "LCD_data\[5\] 3.3-V LVTTL K2 " "Pin LCD_data\[5\] uses I/O standard 3.3-V LVTTL at K2" { } { { "c:/altera/13.0sp1/quartus/bin64/pin_planner.ppl" "" { PinPlanner "c:/altera/13.0sp1/quartus/bin64/pin_planner.ppl" { LCD_data[5] } } } { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "LCD_data\[5\]" } } } } { "lights.vhd" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/lights.vhd" 20 0 0 } } { "c:/altera/13.0sp1/quartus/bin64/TimingClosureFloorplan.fld" "" { Floorplan "c:/altera/13.0sp1/quartus/bin64/TimingClosureFloorplan.fld" "" "" { LCD_data[5] } "NODE_NAME" } } { "temporary_test_loc" "" { Generic "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/" { { 0 { 0 ""} 0 357 9224 9983 0} } } } } 0 169178 "Pin %1!s! uses I/O standard %2!s! at %3!s!" 0 0 "Quartus II" 0 -1 1480609991178 ""} { "Info" "IFIOMGR_PIN_IO_STANDARD_LOCATION" "LCD_data\[6\] 3.3-V LVTTL M3 " "Pin LCD_data\[6\] uses I/O standard 3.3-V LVTTL at M3" { } { { "c:/altera/13.0sp1/quartus/bin64/pin_planner.ppl" "" { PinPlanner "c:/altera/13.0sp1/quartus/bin64/pin_planner.ppl" { LCD_data[6] } } } { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "LCD_data\[6\]" } } } } { "lights.vhd" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/lights.vhd" 20 0 0 } } { "c:/altera/13.0sp1/quartus/bin64/TimingClosureFloorplan.fld" "" { Floorplan "c:/altera/13.0sp1/quartus/bin64/TimingClosureFloorplan.fld" "" "" { LCD_data[6] } "NODE_NAME" } } { "temporary_test_loc" "" { Generic "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/" { { 0 { 0 ""} 0 358 9224 9983 0} } } } } 0 169178 "Pin %1!s! uses I/O standard %2!s! at %3!s!" 0 0 "Quartus II" 0 -1 1480609991178 ""} { "Info" "IFIOMGR_PIN_IO_STANDARD_LOCATION" "LCD_data\[7\] 3.3-V LVTTL M5 " "Pin LCD_data\[7\] uses I/O standard 3.3-V LVTTL at M5" { } { { "c:/altera/13.0sp1/quartus/bin64/pin_planner.ppl" "" { PinPlanner "c:/altera/13.0sp1/quartus/bin64/pin_planner.ppl" { LCD_data[7] } } } { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "LCD_data\[7\]" } } } } { "lights.vhd" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/lights.vhd" 20 0 0 } } { "c:/altera/13.0sp1/quartus/bin64/TimingClosureFloorplan.fld" "" { Floorplan "c:/altera/13.0sp1/quartus/bin64/TimingClosureFloorplan.fld" "" "" { LCD_data[7] } "NODE_NAME" } } { "temporary_test_loc" "" { Generic "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/" { { 0 { 0 ""} 0 359 9224 9983 0} } } } } 0 169178 "Pin %1!s! uses I/O standard %2!s! at %3!s!" 0 0 "Quartus II" 0 -1 1480609991178 ""} { "Info" "IFIOMGR_PIN_IO_STANDARD_LOCATION" "CLOCK_50 3.3-V LVTTL Y2 " "Pin CLOCK_50 uses I/O standard 3.3-V LVTTL at Y2" { } { { "c:/altera/13.0sp1/quartus/bin64/pin_planner.ppl" "" { PinPlanner "c:/altera/13.0sp1/quartus/bin64/pin_planner.ppl" { CLOCK_50 } } } { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "CLOCK_50" } } } } { "lights.vhd" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/lights.vhd" 5 0 0 } } { "c:/altera/13.0sp1/quartus/bin64/TimingClosureFloorplan.fld" "" { Floorplan "c:/altera/13.0sp1/quartus/bin64/TimingClosureFloorplan.fld" "" "" { CLOCK_50 } "NODE_NAME" } } { "temporary_test_loc" "" { Generic "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/" { { 0 { 0 ""} 0 360 9224 9983 0} } } } } 0 169178 "Pin %1!s! uses I/O standard %2!s! at %3!s!" 0 0 "Quartus II" 0 -1 1480609991178 ""} } { } 0 169177 "%1!d! pins must meet Altera requirements for 3.3-, 3.0-, and 2.5-V interfaces. For more information, refer to AN 447: Interfacing %2!s! Devices with 3.3/3.0/2.5-V LVTTL/LVCMOS I/O Systems." 0 0 "Fitter" 0 -1 1480609991178 ""} +{ "Info" "IRDB_WROTE_SUPPRESSED_MSGS" "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/output_files/lights.fit.smsg " "Generated suppressed messages file C:/Users/takayun/Documents/DE2-115/qsys_tutorial/output_files/lights.fit.smsg" { } { } 0 144001 "Generated suppressed messages file %1!s!" 0 0 "Fitter" 0 -1 1480609991773 ""} +{ "Info" "IQEXE_ERROR_COUNT" "Fitter 0 s 827 s Quartus II 64-Bit " "Quartus II 64-Bit Fitter was successful. 0 errors, 827 warnings" { { "Info" "IQEXE_END_PEAK_VSIZE_MEMORY" "1016 " "Peak virtual memory: 1016 megabytes" { } { } 0 0 "Peak virtual memory: %1!s! megabytes" 0 0 "Quartus II" 0 -1 1480609993882 ""} { "Info" "IQEXE_END_BANNER_TIME" "Fri Dec 02 01:33:13 2016 " "Processing ended: Fri Dec 02 01:33:13 2016" { } { } 0 0 "Processing ended: %1!s!" 0 0 "Quartus II" 0 -1 1480609993882 ""} { "Info" "IQEXE_ELAPSED_TIME" "00:00:31 " "Elapsed time: 00:00:31" { } { } 0 0 "Elapsed time: %1!s!" 0 0 "Quartus II" 0 -1 1480609993882 ""} { "Info" "IQEXE_ELAPSED_CPU_TIME" "00:00:31 " "Total CPU time (on all processors): 00:00:31" { } { } 0 0 "Total CPU time (on all processors): %1!s!" 0 0 "Quartus II" 0 -1 1480609993882 ""} } { } 0 0 "%6!s! %1!s! was successful. %2!d! error%3!s!, %4!d! warning%5!s!" 0 0 "Fitter" 0 -1 1480609993882 ""} diff --git a/db/lights.hier_info b/db/lights.hier_info new file mode 100644 index 0000000..120a90c --- /dev/null +++ b/db/lights.hier_info @@ -0,0 +1,68868 @@ +|lights +CLOCK_50 => nios_system:NiosII.clk_clk +KEY[0] => nios_system:NiosII.reset_reset_n +KEY[1] => nios_system:NiosII.push_switches_export[0] +KEY[2] => nios_system:NiosII.push_switches_export[1] +KEY[3] => nios_system:NiosII.push_switches_export[2] +SW[0] => nios_system:NiosII.switches_export[0] +SW[1] => nios_system:NiosII.switches_export[1] +SW[2] => nios_system:NiosII.switches_export[2] +SW[3] => nios_system:NiosII.switches_export[3] +SW[4] => nios_system:NiosII.switches_export[4] +SW[5] => nios_system:NiosII.switches_export[5] +SW[6] => nios_system:NiosII.switches_export[6] +SW[7] => nios_system:NiosII.switches_export[7] +SW[8] => nios_system:NiosII.switches_export[8] +SW[9] => nios_system:NiosII.switches_export[9] +SW[10] => nios_system:NiosII.switches_export[10] +SW[11] => nios_system:NiosII.switches_export[11] +SW[12] => nios_system:NiosII.switches_export[12] +SW[13] => nios_system:NiosII.switches_export[13] +SW[14] => nios_system:NiosII.switches_export[14] +SW[15] => nios_system:NiosII.switches_export[15] +SW[16] => nios_system:NiosII.switches_export[16] +SW[17] => nios_system:NiosII.switches_export[17] +LEDG[0] <= nios_system:NiosII.leds_export[0] +LEDG[1] <= nios_system:NiosII.leds_export[1] +LEDG[2] <= nios_system:NiosII.leds_export[2] +LEDG[3] <= nios_system:NiosII.leds_export[3] +LEDG[4] <= nios_system:NiosII.leds_export[4] +LEDG[5] <= nios_system:NiosII.leds_export[5] +LEDG[6] <= nios_system:NiosII.leds_export[6] +LEDG[7] <= nios_system:NiosII.leds_export[7] +LEDR[0] <= nios_system:NiosII.ledrs_export[0] +LEDR[1] <= nios_system:NiosII.ledrs_export[1] +LEDR[2] <= nios_system:NiosII.ledrs_export[2] +LEDR[3] <= nios_system:NiosII.ledrs_export[3] +LEDR[4] <= nios_system:NiosII.ledrs_export[4] +LEDR[5] <= nios_system:NiosII.ledrs_export[5] +LEDR[6] <= nios_system:NiosII.ledrs_export[6] +LEDR[7] <= nios_system:NiosII.ledrs_export[7] +LEDR[8] <= nios_system:NiosII.ledrs_export[8] +LEDR[9] <= nios_system:NiosII.ledrs_export[9] +LEDR[10] <= nios_system:NiosII.ledrs_export[10] +LEDR[11] <= nios_system:NiosII.ledrs_export[11] +LEDR[12] <= nios_system:NiosII.ledrs_export[12] +LEDR[13] <= nios_system:NiosII.ledrs_export[13] +LEDR[14] <= nios_system:NiosII.ledrs_export[14] +LEDR[15] <= nios_system:NiosII.ledrs_export[15] +LEDR[16] <= nios_system:NiosII.ledrs_export[16] +LEDR[17] <= nios_system:NiosII.ledrs_export[17] +HEX0[0] <= nios_system:NiosII.hex0_export[0] +HEX0[1] <= nios_system:NiosII.hex0_export[1] +HEX0[2] <= nios_system:NiosII.hex0_export[2] +HEX0[3] <= nios_system:NiosII.hex0_export[3] +HEX0[4] <= nios_system:NiosII.hex0_export[4] +HEX0[5] <= nios_system:NiosII.hex0_export[5] +HEX0[6] <= nios_system:NiosII.hex0_export[6] +HEX1[0] <= nios_system:NiosII.hex1_export[0] +HEX1[1] <= nios_system:NiosII.hex1_export[1] +HEX1[2] <= nios_system:NiosII.hex1_export[2] +HEX1[3] <= nios_system:NiosII.hex1_export[3] +HEX1[4] <= nios_system:NiosII.hex1_export[4] +HEX1[5] <= nios_system:NiosII.hex1_export[5] +HEX1[6] <= nios_system:NiosII.hex1_export[6] +HEX2[0] <= nios_system:NiosII.hex2_export[0] +HEX2[1] <= nios_system:NiosII.hex2_export[1] +HEX2[2] <= nios_system:NiosII.hex2_export[2] +HEX2[3] <= nios_system:NiosII.hex2_export[3] +HEX2[4] <= nios_system:NiosII.hex2_export[4] +HEX2[5] <= nios_system:NiosII.hex2_export[5] +HEX2[6] <= nios_system:NiosII.hex2_export[6] +HEX3[0] <= nios_system:NiosII.hex3_export[0] +HEX3[1] <= nios_system:NiosII.hex3_export[1] +HEX3[2] <= nios_system:NiosII.hex3_export[2] +HEX3[3] <= nios_system:NiosII.hex3_export[3] +HEX3[4] <= nios_system:NiosII.hex3_export[4] +HEX3[5] <= nios_system:NiosII.hex3_export[5] +HEX3[6] <= nios_system:NiosII.hex3_export[6] +HEX4[0] <= nios_system:NiosII.hex4_export[0] +HEX4[1] <= nios_system:NiosII.hex4_export[1] +HEX4[2] <= nios_system:NiosII.hex4_export[2] +HEX4[3] <= nios_system:NiosII.hex4_export[3] +HEX4[4] <= nios_system:NiosII.hex4_export[4] +HEX4[5] <= nios_system:NiosII.hex4_export[5] +HEX4[6] <= nios_system:NiosII.hex4_export[6] +HEX5[0] <= nios_system:NiosII.hex5_export[0] +HEX5[1] <= nios_system:NiosII.hex5_export[1] +HEX5[2] <= nios_system:NiosII.hex5_export[2] +HEX5[3] <= nios_system:NiosII.hex5_export[3] +HEX5[4] <= nios_system:NiosII.hex5_export[4] +HEX5[5] <= nios_system:NiosII.hex5_export[5] +HEX5[6] <= nios_system:NiosII.hex5_export[6] +HEX6[0] <= nios_system:NiosII.hex6_export[0] +HEX6[1] <= nios_system:NiosII.hex6_export[1] +HEX6[2] <= nios_system:NiosII.hex6_export[2] +HEX6[3] <= nios_system:NiosII.hex6_export[3] +HEX6[4] <= nios_system:NiosII.hex6_export[4] +HEX6[5] <= nios_system:NiosII.hex6_export[5] +HEX6[6] <= nios_system:NiosII.hex6_export[6] +HEX7[0] <= nios_system:NiosII.hex7_export[0] +HEX7[1] <= nios_system:NiosII.hex7_export[1] +HEX7[2] <= nios_system:NiosII.hex7_export[2] +HEX7[3] <= nios_system:NiosII.hex7_export[3] +HEX7[4] <= nios_system:NiosII.hex7_export[4] +HEX7[5] <= nios_system:NiosII.hex7_export[5] +HEX7[6] <= nios_system:NiosII.hex7_export[6] +LCD_RS <= nios_system:NiosII.lcd_16207_0_RS +LCD_RW <= nios_system:NiosII.lcd_16207_0_RW +LCD_data[0] <= nios_system:NiosII.lcd_16207_0_data[0] +LCD_data[1] <= nios_system:NiosII.lcd_16207_0_data[1] +LCD_data[2] <= nios_system:NiosII.lcd_16207_0_data[2] +LCD_data[3] <= nios_system:NiosII.lcd_16207_0_data[3] +LCD_data[4] <= nios_system:NiosII.lcd_16207_0_data[4] +LCD_data[5] <= nios_system:NiosII.lcd_16207_0_data[5] +LCD_data[6] <= nios_system:NiosII.lcd_16207_0_data[6] +LCD_data[7] <= nios_system:NiosII.lcd_16207_0_data[7] +LCD_EN <= nios_system:NiosII.lcd_16207_0_E +LCD_ON <= nios_system:NiosII.lcd_on_export +LCD_BLON <= nios_system:NiosII.lcd_blon_export + + +|lights|nios_system:NiosII +clk_clk => clk_clk.IN122 +leds_export[0] <= nios_system_LEDs:leds.out_port +leds_export[1] <= nios_system_LEDs:leds.out_port +leds_export[2] <= nios_system_LEDs:leds.out_port +leds_export[3] <= nios_system_LEDs:leds.out_port +leds_export[4] <= nios_system_LEDs:leds.out_port +leds_export[5] <= nios_system_LEDs:leds.out_port +leds_export[6] <= nios_system_LEDs:leds.out_port +leds_export[7] <= nios_system_LEDs:leds.out_port +reset_reset_n => _.IN1 +ledrs_export[0] <= nios_system_LEDRs:ledrs.out_port +ledrs_export[1] <= nios_system_LEDRs:ledrs.out_port +ledrs_export[2] <= nios_system_LEDRs:ledrs.out_port +ledrs_export[3] <= nios_system_LEDRs:ledrs.out_port +ledrs_export[4] <= nios_system_LEDRs:ledrs.out_port +ledrs_export[5] <= nios_system_LEDRs:ledrs.out_port +ledrs_export[6] <= nios_system_LEDRs:ledrs.out_port +ledrs_export[7] <= nios_system_LEDRs:ledrs.out_port +ledrs_export[8] <= nios_system_LEDRs:ledrs.out_port +ledrs_export[9] <= nios_system_LEDRs:ledrs.out_port +ledrs_export[10] <= nios_system_LEDRs:ledrs.out_port +ledrs_export[11] <= nios_system_LEDRs:ledrs.out_port +ledrs_export[12] <= nios_system_LEDRs:ledrs.out_port +ledrs_export[13] <= nios_system_LEDRs:ledrs.out_port +ledrs_export[14] <= nios_system_LEDRs:ledrs.out_port +ledrs_export[15] <= nios_system_LEDRs:ledrs.out_port +ledrs_export[16] <= nios_system_LEDRs:ledrs.out_port +ledrs_export[17] <= nios_system_LEDRs:ledrs.out_port +switches_export[0] => switches_export[0].IN1 +switches_export[1] => switches_export[1].IN1 +switches_export[2] => switches_export[2].IN1 +switches_export[3] => switches_export[3].IN1 +switches_export[4] => switches_export[4].IN1 +switches_export[5] => switches_export[5].IN1 +switches_export[6] => switches_export[6].IN1 +switches_export[7] => switches_export[7].IN1 +switches_export[8] => switches_export[8].IN1 +switches_export[9] => switches_export[9].IN1 +switches_export[10] => switches_export[10].IN1 +switches_export[11] => switches_export[11].IN1 +switches_export[12] => switches_export[12].IN1 +switches_export[13] => switches_export[13].IN1 +switches_export[14] => switches_export[14].IN1 +switches_export[15] => switches_export[15].IN1 +switches_export[16] => switches_export[16].IN1 +switches_export[17] => switches_export[17].IN1 +push_switches_export[0] => push_switches_export[0].IN1 +push_switches_export[1] => push_switches_export[1].IN1 +push_switches_export[2] => push_switches_export[2].IN1 +hex0_export[0] <= nios_system_hex0:hex0.out_port +hex0_export[1] <= nios_system_hex0:hex0.out_port +hex0_export[2] <= nios_system_hex0:hex0.out_port +hex0_export[3] <= nios_system_hex0:hex0.out_port +hex0_export[4] <= nios_system_hex0:hex0.out_port +hex0_export[5] <= nios_system_hex0:hex0.out_port +hex0_export[6] <= nios_system_hex0:hex0.out_port +hex1_export[0] <= nios_system_hex0:hex1.out_port +hex1_export[1] <= nios_system_hex0:hex1.out_port +hex1_export[2] <= nios_system_hex0:hex1.out_port +hex1_export[3] <= nios_system_hex0:hex1.out_port +hex1_export[4] <= nios_system_hex0:hex1.out_port +hex1_export[5] <= nios_system_hex0:hex1.out_port +hex1_export[6] <= nios_system_hex0:hex1.out_port +hex2_export[0] <= nios_system_hex0:hex2.out_port +hex2_export[1] <= nios_system_hex0:hex2.out_port +hex2_export[2] <= nios_system_hex0:hex2.out_port +hex2_export[3] <= nios_system_hex0:hex2.out_port +hex2_export[4] <= nios_system_hex0:hex2.out_port +hex2_export[5] <= nios_system_hex0:hex2.out_port +hex2_export[6] <= nios_system_hex0:hex2.out_port +hex3_export[0] <= nios_system_hex0:hex3.out_port +hex3_export[1] <= nios_system_hex0:hex3.out_port +hex3_export[2] <= nios_system_hex0:hex3.out_port +hex3_export[3] <= nios_system_hex0:hex3.out_port +hex3_export[4] <= nios_system_hex0:hex3.out_port +hex3_export[5] <= nios_system_hex0:hex3.out_port +hex3_export[6] <= nios_system_hex0:hex3.out_port +hex4_export[0] <= nios_system_hex0:hex4.out_port +hex4_export[1] <= nios_system_hex0:hex4.out_port +hex4_export[2] <= nios_system_hex0:hex4.out_port +hex4_export[3] <= nios_system_hex0:hex4.out_port +hex4_export[4] <= nios_system_hex0:hex4.out_port +hex4_export[5] <= nios_system_hex0:hex4.out_port +hex4_export[6] <= nios_system_hex0:hex4.out_port +hex5_export[0] <= nios_system_hex0:hex5.out_port +hex5_export[1] <= nios_system_hex0:hex5.out_port +hex5_export[2] <= nios_system_hex0:hex5.out_port +hex5_export[3] <= nios_system_hex0:hex5.out_port +hex5_export[4] <= nios_system_hex0:hex5.out_port +hex5_export[5] <= nios_system_hex0:hex5.out_port +hex5_export[6] <= nios_system_hex0:hex5.out_port +hex6_export[0] <= nios_system_hex0:hex6.out_port +hex6_export[1] <= nios_system_hex0:hex6.out_port +hex6_export[2] <= nios_system_hex0:hex6.out_port +hex6_export[3] <= nios_system_hex0:hex6.out_port +hex6_export[4] <= nios_system_hex0:hex6.out_port +hex6_export[5] <= nios_system_hex0:hex6.out_port +hex6_export[6] <= nios_system_hex0:hex6.out_port +hex7_export[0] <= nios_system_hex0:hex7.out_port +hex7_export[1] <= nios_system_hex0:hex7.out_port +hex7_export[2] <= nios_system_hex0:hex7.out_port +hex7_export[3] <= nios_system_hex0:hex7.out_port +hex7_export[4] <= nios_system_hex0:hex7.out_port +hex7_export[5] <= nios_system_hex0:hex7.out_port +hex7_export[6] <= nios_system_hex0:hex7.out_port +lcd_16207_0_RS <= nios_system_lcd_16207_0:lcd_16207_0.LCD_RS +lcd_16207_0_RW <= nios_system_lcd_16207_0:lcd_16207_0.LCD_RW +lcd_16207_0_data[0] <> nios_system_lcd_16207_0:lcd_16207_0.LCD_data +lcd_16207_0_data[1] <> nios_system_lcd_16207_0:lcd_16207_0.LCD_data +lcd_16207_0_data[2] <> nios_system_lcd_16207_0:lcd_16207_0.LCD_data +lcd_16207_0_data[3] <> nios_system_lcd_16207_0:lcd_16207_0.LCD_data +lcd_16207_0_data[4] <> nios_system_lcd_16207_0:lcd_16207_0.LCD_data +lcd_16207_0_data[5] <> nios_system_lcd_16207_0:lcd_16207_0.LCD_data +lcd_16207_0_data[6] <> nios_system_lcd_16207_0:lcd_16207_0.LCD_data +lcd_16207_0_data[7] <> nios_system_lcd_16207_0:lcd_16207_0.LCD_data +lcd_16207_0_E <= nios_system_lcd_16207_0:lcd_16207_0.LCD_E +lcd_on_export <= nios_system_lcd_on:lcd_on.out_port +lcd_blon_export <= nios_system_lcd_on:lcd_blon.out_port + + +|lights|nios_system:NiosII|nios_system_nios2_processor:nios2_processor +clk => clk.IN4 +d_irq[0] => ~NO_FANOUT~ +d_irq[1] => ~NO_FANOUT~ +d_irq[2] => ~NO_FANOUT~ +d_irq[3] => ~NO_FANOUT~ +d_irq[4] => ~NO_FANOUT~ +d_irq[5] => W_ipending_reg_nxt.IN1 +d_irq[6] => ~NO_FANOUT~ +d_irq[7] => ~NO_FANOUT~ +d_irq[8] => ~NO_FANOUT~ +d_irq[9] => ~NO_FANOUT~ +d_irq[10] => ~NO_FANOUT~ +d_irq[11] => ~NO_FANOUT~ +d_irq[12] => ~NO_FANOUT~ +d_irq[13] => ~NO_FANOUT~ +d_irq[14] => ~NO_FANOUT~ +d_irq[15] => ~NO_FANOUT~ +d_irq[16] => ~NO_FANOUT~ +d_irq[17] => ~NO_FANOUT~ +d_irq[18] => ~NO_FANOUT~ +d_irq[19] => ~NO_FANOUT~ +d_irq[20] => ~NO_FANOUT~ +d_irq[21] => ~NO_FANOUT~ +d_irq[22] => ~NO_FANOUT~ +d_irq[23] => ~NO_FANOUT~ +d_irq[24] => ~NO_FANOUT~ +d_irq[25] => ~NO_FANOUT~ +d_irq[26] => ~NO_FANOUT~ +d_irq[27] => ~NO_FANOUT~ +d_irq[28] => ~NO_FANOUT~ +d_irq[29] => ~NO_FANOUT~ +d_irq[30] => ~NO_FANOUT~ +d_irq[31] => ~NO_FANOUT~ +d_readdata[0] => av_ld_byte0_data_nxt.DATAA +d_readdata[1] => av_ld_byte0_data_nxt.DATAA +d_readdata[2] => av_ld_byte0_data_nxt.DATAA +d_readdata[3] => av_ld_byte0_data_nxt.DATAA +d_readdata[4] => av_ld_byte0_data_nxt.DATAA +d_readdata[5] => av_ld_byte0_data_nxt.DATAA +d_readdata[6] => av_ld_byte0_data_nxt.DATAA +d_readdata[7] => av_ld_byte0_data_nxt.DATAA +d_readdata[8] => av_ld_byte1_data_nxt.DATAA +d_readdata[9] => av_ld_byte1_data_nxt.DATAA +d_readdata[10] => av_ld_byte1_data_nxt.DATAA +d_readdata[11] => av_ld_byte1_data_nxt.DATAA +d_readdata[12] => av_ld_byte1_data_nxt.DATAA +d_readdata[13] => av_ld_byte1_data_nxt.DATAA +d_readdata[14] => av_ld_byte1_data_nxt.DATAA +d_readdata[15] => av_ld_byte1_data_nxt.DATAA +d_readdata[16] => av_ld_byte2_data_nxt.DATAA +d_readdata[17] => av_ld_byte2_data_nxt.DATAA +d_readdata[18] => av_ld_byte2_data_nxt.DATAA +d_readdata[19] => av_ld_byte2_data_nxt.DATAA +d_readdata[20] => av_ld_byte2_data_nxt.DATAA +d_readdata[21] => av_ld_byte2_data_nxt.DATAA +d_readdata[22] => av_ld_byte2_data_nxt.DATAA +d_readdata[23] => av_ld_byte2_data_nxt.DATAA +d_readdata[24] => av_ld_byte3_data_nxt.DATAA +d_readdata[25] => av_ld_byte3_data_nxt.DATAA +d_readdata[26] => av_ld_byte3_data_nxt.DATAA +d_readdata[27] => av_ld_byte3_data_nxt.DATAA +d_readdata[28] => av_ld_byte3_data_nxt.DATAA +d_readdata[29] => av_ld_byte3_data_nxt.DATAA +d_readdata[30] => av_ld_byte3_data_nxt.DATAA +d_readdata[31] => av_ld_byte3_data_nxt.DATAA +d_waitrequest => d_waitrequest.IN1 +i_readdata[0] => i_readdata[0].IN1 +i_readdata[1] => i_readdata[1].IN1 +i_readdata[2] => i_readdata[2].IN1 +i_readdata[3] => i_readdata[3].IN1 +i_readdata[4] => i_readdata[4].IN1 +i_readdata[5] => i_readdata[5].IN1 +i_readdata[6] => i_readdata[6].IN1 +i_readdata[7] => i_readdata[7].IN1 +i_readdata[8] => i_readdata[8].IN1 +i_readdata[9] => i_readdata[9].IN1 +i_readdata[10] => i_readdata[10].IN1 +i_readdata[11] => i_readdata[11].IN1 +i_readdata[12] => i_readdata[12].IN1 +i_readdata[13] => i_readdata[13].IN1 +i_readdata[14] => i_readdata[14].IN1 +i_readdata[15] => i_readdata[15].IN1 +i_readdata[16] => i_readdata[16].IN1 +i_readdata[17] => i_readdata[17].IN1 +i_readdata[18] => i_readdata[18].IN1 +i_readdata[19] => i_readdata[19].IN1 +i_readdata[20] => i_readdata[20].IN1 +i_readdata[21] => i_readdata[21].IN1 +i_readdata[22] => i_readdata[22].IN1 +i_readdata[23] => i_readdata[23].IN1 +i_readdata[24] => i_readdata[24].IN1 +i_readdata[25] => i_readdata[25].IN1 +i_readdata[26] => i_readdata[26].IN1 +i_readdata[27] => i_readdata[27].IN1 +i_readdata[28] => i_readdata[28].IN1 +i_readdata[29] => i_readdata[29].IN1 +i_readdata[30] => i_readdata[30].IN1 +i_readdata[31] => i_readdata[31].IN1 +i_waitrequest => i_waitrequest.IN1 +jtag_debug_module_address[0] => jtag_debug_module_address[0].IN1 +jtag_debug_module_address[1] => jtag_debug_module_address[1].IN1 +jtag_debug_module_address[2] => jtag_debug_module_address[2].IN1 +jtag_debug_module_address[3] => jtag_debug_module_address[3].IN1 +jtag_debug_module_address[4] => jtag_debug_module_address[4].IN1 +jtag_debug_module_address[5] => jtag_debug_module_address[5].IN1 +jtag_debug_module_address[6] => jtag_debug_module_address[6].IN1 +jtag_debug_module_address[7] => jtag_debug_module_address[7].IN1 +jtag_debug_module_address[8] => jtag_debug_module_address[8].IN1 +jtag_debug_module_byteenable[0] => jtag_debug_module_byteenable[0].IN1 +jtag_debug_module_byteenable[1] => jtag_debug_module_byteenable[1].IN1 +jtag_debug_module_byteenable[2] => jtag_debug_module_byteenable[2].IN1 +jtag_debug_module_byteenable[3] => jtag_debug_module_byteenable[3].IN1 +jtag_debug_module_debugaccess => jtag_debug_module_debugaccess.IN1 +jtag_debug_module_read => jtag_debug_module_read.IN1 +jtag_debug_module_write => jtag_debug_module_write.IN1 +jtag_debug_module_writedata[0] => jtag_debug_module_writedata[0].IN1 +jtag_debug_module_writedata[1] => jtag_debug_module_writedata[1].IN1 +jtag_debug_module_writedata[2] => jtag_debug_module_writedata[2].IN1 +jtag_debug_module_writedata[3] => jtag_debug_module_writedata[3].IN1 +jtag_debug_module_writedata[4] => jtag_debug_module_writedata[4].IN1 +jtag_debug_module_writedata[5] => jtag_debug_module_writedata[5].IN1 +jtag_debug_module_writedata[6] => jtag_debug_module_writedata[6].IN1 +jtag_debug_module_writedata[7] => jtag_debug_module_writedata[7].IN1 +jtag_debug_module_writedata[8] => jtag_debug_module_writedata[8].IN1 +jtag_debug_module_writedata[9] => jtag_debug_module_writedata[9].IN1 +jtag_debug_module_writedata[10] => jtag_debug_module_writedata[10].IN1 +jtag_debug_module_writedata[11] => jtag_debug_module_writedata[11].IN1 +jtag_debug_module_writedata[12] => jtag_debug_module_writedata[12].IN1 +jtag_debug_module_writedata[13] => jtag_debug_module_writedata[13].IN1 +jtag_debug_module_writedata[14] => jtag_debug_module_writedata[14].IN1 +jtag_debug_module_writedata[15] => jtag_debug_module_writedata[15].IN1 +jtag_debug_module_writedata[16] => jtag_debug_module_writedata[16].IN1 +jtag_debug_module_writedata[17] => jtag_debug_module_writedata[17].IN1 +jtag_debug_module_writedata[18] => jtag_debug_module_writedata[18].IN1 +jtag_debug_module_writedata[19] => jtag_debug_module_writedata[19].IN1 +jtag_debug_module_writedata[20] => jtag_debug_module_writedata[20].IN1 +jtag_debug_module_writedata[21] => jtag_debug_module_writedata[21].IN1 +jtag_debug_module_writedata[22] => jtag_debug_module_writedata[22].IN1 +jtag_debug_module_writedata[23] => jtag_debug_module_writedata[23].IN1 +jtag_debug_module_writedata[24] => jtag_debug_module_writedata[24].IN1 +jtag_debug_module_writedata[25] => jtag_debug_module_writedata[25].IN1 +jtag_debug_module_writedata[26] => jtag_debug_module_writedata[26].IN1 +jtag_debug_module_writedata[27] => jtag_debug_module_writedata[27].IN1 +jtag_debug_module_writedata[28] => jtag_debug_module_writedata[28].IN1 +jtag_debug_module_writedata[29] => jtag_debug_module_writedata[29].IN1 +jtag_debug_module_writedata[30] => jtag_debug_module_writedata[30].IN1 +jtag_debug_module_writedata[31] => jtag_debug_module_writedata[31].IN1 +reset_n => reset_n.IN2 +d_address[0] <= d_address[0].DB_MAX_OUTPUT_PORT_TYPE +d_address[1] <= d_address[1].DB_MAX_OUTPUT_PORT_TYPE +d_address[2] <= d_address[2].DB_MAX_OUTPUT_PORT_TYPE +d_address[3] <= d_address[3].DB_MAX_OUTPUT_PORT_TYPE +d_address[4] <= d_address[4].DB_MAX_OUTPUT_PORT_TYPE +d_address[5] <= d_address[5].DB_MAX_OUTPUT_PORT_TYPE +d_address[6] <= d_address[6].DB_MAX_OUTPUT_PORT_TYPE +d_address[7] <= d_address[7].DB_MAX_OUTPUT_PORT_TYPE +d_address[8] <= d_address[8].DB_MAX_OUTPUT_PORT_TYPE +d_address[9] <= d_address[9].DB_MAX_OUTPUT_PORT_TYPE +d_address[10] <= d_address[10].DB_MAX_OUTPUT_PORT_TYPE +d_address[11] <= d_address[11].DB_MAX_OUTPUT_PORT_TYPE +d_address[12] <= d_address[12].DB_MAX_OUTPUT_PORT_TYPE +d_address[13] <= d_address[13].DB_MAX_OUTPUT_PORT_TYPE +d_address[14] <= d_address[14].DB_MAX_OUTPUT_PORT_TYPE +d_address[15] <= d_address[15].DB_MAX_OUTPUT_PORT_TYPE +d_address[16] <= d_address[16].DB_MAX_OUTPUT_PORT_TYPE +d_address[17] <= d_address[17].DB_MAX_OUTPUT_PORT_TYPE +d_address[18] <= d_address[18].DB_MAX_OUTPUT_PORT_TYPE +d_byteenable[0] <= d_byteenable[0].DB_MAX_OUTPUT_PORT_TYPE +d_byteenable[1] <= d_byteenable[1].DB_MAX_OUTPUT_PORT_TYPE +d_byteenable[2] <= d_byteenable[2].DB_MAX_OUTPUT_PORT_TYPE +d_byteenable[3] <= d_byteenable[3].DB_MAX_OUTPUT_PORT_TYPE +d_read <= d_read.DB_MAX_OUTPUT_PORT_TYPE +d_write <= d_write.DB_MAX_OUTPUT_PORT_TYPE +d_writedata[0] <= d_writedata[0]~reg0.DB_MAX_OUTPUT_PORT_TYPE +d_writedata[1] <= d_writedata[1]~reg0.DB_MAX_OUTPUT_PORT_TYPE +d_writedata[2] <= d_writedata[2]~reg0.DB_MAX_OUTPUT_PORT_TYPE +d_writedata[3] <= d_writedata[3]~reg0.DB_MAX_OUTPUT_PORT_TYPE +d_writedata[4] <= d_writedata[4]~reg0.DB_MAX_OUTPUT_PORT_TYPE +d_writedata[5] <= d_writedata[5]~reg0.DB_MAX_OUTPUT_PORT_TYPE +d_writedata[6] <= d_writedata[6]~reg0.DB_MAX_OUTPUT_PORT_TYPE +d_writedata[7] <= d_writedata[7]~reg0.DB_MAX_OUTPUT_PORT_TYPE +d_writedata[8] <= d_writedata[8]~reg0.DB_MAX_OUTPUT_PORT_TYPE +d_writedata[9] <= d_writedata[9]~reg0.DB_MAX_OUTPUT_PORT_TYPE +d_writedata[10] <= d_writedata[10]~reg0.DB_MAX_OUTPUT_PORT_TYPE +d_writedata[11] <= d_writedata[11]~reg0.DB_MAX_OUTPUT_PORT_TYPE +d_writedata[12] <= d_writedata[12]~reg0.DB_MAX_OUTPUT_PORT_TYPE +d_writedata[13] <= d_writedata[13]~reg0.DB_MAX_OUTPUT_PORT_TYPE +d_writedata[14] <= d_writedata[14]~reg0.DB_MAX_OUTPUT_PORT_TYPE +d_writedata[15] <= d_writedata[15]~reg0.DB_MAX_OUTPUT_PORT_TYPE +d_writedata[16] <= d_writedata[16]~reg0.DB_MAX_OUTPUT_PORT_TYPE +d_writedata[17] <= d_writedata[17]~reg0.DB_MAX_OUTPUT_PORT_TYPE +d_writedata[18] <= d_writedata[18]~reg0.DB_MAX_OUTPUT_PORT_TYPE +d_writedata[19] <= d_writedata[19]~reg0.DB_MAX_OUTPUT_PORT_TYPE +d_writedata[20] <= d_writedata[20]~reg0.DB_MAX_OUTPUT_PORT_TYPE +d_writedata[21] <= d_writedata[21]~reg0.DB_MAX_OUTPUT_PORT_TYPE +d_writedata[22] <= d_writedata[22]~reg0.DB_MAX_OUTPUT_PORT_TYPE +d_writedata[23] <= d_writedata[23]~reg0.DB_MAX_OUTPUT_PORT_TYPE +d_writedata[24] <= d_writedata[24]~reg0.DB_MAX_OUTPUT_PORT_TYPE +d_writedata[25] <= d_writedata[25]~reg0.DB_MAX_OUTPUT_PORT_TYPE +d_writedata[26] <= d_writedata[26]~reg0.DB_MAX_OUTPUT_PORT_TYPE +d_writedata[27] <= d_writedata[27]~reg0.DB_MAX_OUTPUT_PORT_TYPE +d_writedata[28] <= d_writedata[28]~reg0.DB_MAX_OUTPUT_PORT_TYPE +d_writedata[29] <= d_writedata[29]~reg0.DB_MAX_OUTPUT_PORT_TYPE +d_writedata[30] <= d_writedata[30]~reg0.DB_MAX_OUTPUT_PORT_TYPE +d_writedata[31] <= d_writedata[31]~reg0.DB_MAX_OUTPUT_PORT_TYPE +i_address[0] <= i_address[0].DB_MAX_OUTPUT_PORT_TYPE +i_address[1] <= i_address[1].DB_MAX_OUTPUT_PORT_TYPE +i_address[2] <= i_address[2].DB_MAX_OUTPUT_PORT_TYPE +i_address[3] <= i_address[3].DB_MAX_OUTPUT_PORT_TYPE +i_address[4] <= i_address[4].DB_MAX_OUTPUT_PORT_TYPE +i_address[5] <= i_address[5].DB_MAX_OUTPUT_PORT_TYPE +i_address[6] <= i_address[6].DB_MAX_OUTPUT_PORT_TYPE +i_address[7] <= i_address[7].DB_MAX_OUTPUT_PORT_TYPE +i_address[8] <= i_address[8].DB_MAX_OUTPUT_PORT_TYPE +i_address[9] <= i_address[9].DB_MAX_OUTPUT_PORT_TYPE +i_address[10] <= i_address[10].DB_MAX_OUTPUT_PORT_TYPE +i_address[11] <= i_address[11].DB_MAX_OUTPUT_PORT_TYPE +i_address[12] <= i_address[12].DB_MAX_OUTPUT_PORT_TYPE +i_address[13] <= i_address[13].DB_MAX_OUTPUT_PORT_TYPE +i_address[14] <= i_address[14].DB_MAX_OUTPUT_PORT_TYPE +i_address[15] <= i_address[15].DB_MAX_OUTPUT_PORT_TYPE +i_address[16] <= i_address[16].DB_MAX_OUTPUT_PORT_TYPE +i_address[17] <= i_address[17].DB_MAX_OUTPUT_PORT_TYPE +i_address[18] <= i_address[18].DB_MAX_OUTPUT_PORT_TYPE +i_read <= i_read.DB_MAX_OUTPUT_PORT_TYPE +jtag_debug_module_debugaccess_to_roms <= nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci.jtag_debug_module_debugaccess_to_roms +jtag_debug_module_readdata[0] <= nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci.readdata +jtag_debug_module_readdata[1] <= nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci.readdata +jtag_debug_module_readdata[2] <= nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci.readdata +jtag_debug_module_readdata[3] <= nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci.readdata +jtag_debug_module_readdata[4] <= nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci.readdata +jtag_debug_module_readdata[5] <= nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci.readdata +jtag_debug_module_readdata[6] <= nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci.readdata +jtag_debug_module_readdata[7] <= nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci.readdata +jtag_debug_module_readdata[8] <= nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci.readdata +jtag_debug_module_readdata[9] <= nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci.readdata +jtag_debug_module_readdata[10] <= nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci.readdata +jtag_debug_module_readdata[11] <= nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci.readdata +jtag_debug_module_readdata[12] <= nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci.readdata +jtag_debug_module_readdata[13] <= nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci.readdata +jtag_debug_module_readdata[14] <= nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci.readdata +jtag_debug_module_readdata[15] <= nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci.readdata +jtag_debug_module_readdata[16] <= nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci.readdata +jtag_debug_module_readdata[17] <= nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci.readdata +jtag_debug_module_readdata[18] <= nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci.readdata +jtag_debug_module_readdata[19] <= nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci.readdata +jtag_debug_module_readdata[20] <= nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci.readdata +jtag_debug_module_readdata[21] <= nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci.readdata +jtag_debug_module_readdata[22] <= nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci.readdata +jtag_debug_module_readdata[23] <= nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci.readdata +jtag_debug_module_readdata[24] <= nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci.readdata +jtag_debug_module_readdata[25] <= nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci.readdata +jtag_debug_module_readdata[26] <= nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci.readdata +jtag_debug_module_readdata[27] <= nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci.readdata +jtag_debug_module_readdata[28] <= nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci.readdata +jtag_debug_module_readdata[29] <= nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci.readdata +jtag_debug_module_readdata[30] <= nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci.readdata +jtag_debug_module_readdata[31] <= nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci.readdata +jtag_debug_module_resetrequest <= nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci.resetrequest +jtag_debug_module_waitrequest <= nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci.waitrequest +no_ci_readra <= + + +|lights|nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_test_bench:the_nios_system_nios2_processor_test_bench +D_iw[0] => ~NO_FANOUT~ +D_iw[1] => ~NO_FANOUT~ +D_iw[2] => ~NO_FANOUT~ +D_iw[3] => ~NO_FANOUT~ +D_iw[4] => ~NO_FANOUT~ +D_iw[5] => ~NO_FANOUT~ +D_iw[6] => ~NO_FANOUT~ +D_iw[7] => ~NO_FANOUT~ +D_iw[8] => ~NO_FANOUT~ +D_iw[9] => ~NO_FANOUT~ +D_iw[10] => ~NO_FANOUT~ +D_iw[11] => ~NO_FANOUT~ +D_iw[12] => ~NO_FANOUT~ +D_iw[13] => ~NO_FANOUT~ +D_iw[14] => ~NO_FANOUT~ +D_iw[15] => ~NO_FANOUT~ +D_iw[16] => ~NO_FANOUT~ +D_iw[17] => ~NO_FANOUT~ +D_iw[18] => ~NO_FANOUT~ +D_iw[19] => ~NO_FANOUT~ +D_iw[20] => ~NO_FANOUT~ +D_iw[21] => ~NO_FANOUT~ +D_iw[22] => ~NO_FANOUT~ +D_iw[23] => ~NO_FANOUT~ +D_iw[24] => ~NO_FANOUT~ +D_iw[25] => ~NO_FANOUT~ +D_iw[26] => ~NO_FANOUT~ +D_iw[27] => ~NO_FANOUT~ +D_iw[28] => ~NO_FANOUT~ +D_iw[29] => ~NO_FANOUT~ +D_iw[30] => ~NO_FANOUT~ +D_iw[31] => ~NO_FANOUT~ +D_iw_op[0] => ~NO_FANOUT~ +D_iw_op[1] => ~NO_FANOUT~ +D_iw_op[2] => ~NO_FANOUT~ +D_iw_op[3] => ~NO_FANOUT~ +D_iw_op[4] => ~NO_FANOUT~ +D_iw_op[5] => ~NO_FANOUT~ +D_iw_opx[0] => ~NO_FANOUT~ +D_iw_opx[1] => ~NO_FANOUT~ +D_iw_opx[2] => ~NO_FANOUT~ +D_iw_opx[3] => ~NO_FANOUT~ +D_iw_opx[4] => ~NO_FANOUT~ +D_iw_opx[5] => ~NO_FANOUT~ +D_valid => ~NO_FANOUT~ +E_valid => ~NO_FANOUT~ +F_pcb[0] => ~NO_FANOUT~ +F_pcb[1] => ~NO_FANOUT~ +F_pcb[2] => ~NO_FANOUT~ +F_pcb[3] => ~NO_FANOUT~ +F_pcb[4] => ~NO_FANOUT~ +F_pcb[5] => ~NO_FANOUT~ +F_pcb[6] => ~NO_FANOUT~ +F_pcb[7] => ~NO_FANOUT~ +F_pcb[8] => ~NO_FANOUT~ +F_pcb[9] => ~NO_FANOUT~ +F_pcb[10] => ~NO_FANOUT~ +F_pcb[11] => ~NO_FANOUT~ +F_pcb[12] => ~NO_FANOUT~ +F_pcb[13] => ~NO_FANOUT~ +F_pcb[14] => ~NO_FANOUT~ +F_pcb[15] => ~NO_FANOUT~ +F_pcb[16] => ~NO_FANOUT~ +F_pcb[17] => ~NO_FANOUT~ +F_pcb[18] => ~NO_FANOUT~ +F_valid => ~NO_FANOUT~ +R_ctrl_ld => ~NO_FANOUT~ +R_ctrl_ld_non_io => ~NO_FANOUT~ +R_dst_regnum[0] => ~NO_FANOUT~ +R_dst_regnum[1] => ~NO_FANOUT~ +R_dst_regnum[2] => ~NO_FANOUT~ +R_dst_regnum[3] => ~NO_FANOUT~ +R_dst_regnum[4] => ~NO_FANOUT~ +R_wr_dst_reg => ~NO_FANOUT~ +W_valid => ~NO_FANOUT~ +W_vinst[0] => ~NO_FANOUT~ +W_vinst[1] => ~NO_FANOUT~ +W_vinst[2] => ~NO_FANOUT~ +W_vinst[3] => ~NO_FANOUT~ +W_vinst[4] => ~NO_FANOUT~ +W_vinst[5] => ~NO_FANOUT~ +W_vinst[6] => ~NO_FANOUT~ +W_vinst[7] => ~NO_FANOUT~ +W_vinst[8] => ~NO_FANOUT~ +W_vinst[9] => ~NO_FANOUT~ +W_vinst[10] => ~NO_FANOUT~ +W_vinst[11] => ~NO_FANOUT~ +W_vinst[12] => ~NO_FANOUT~ +W_vinst[13] => ~NO_FANOUT~ +W_vinst[14] => ~NO_FANOUT~ +W_vinst[15] => ~NO_FANOUT~ +W_vinst[16] => ~NO_FANOUT~ +W_vinst[17] => ~NO_FANOUT~ +W_vinst[18] => ~NO_FANOUT~ +W_vinst[19] => ~NO_FANOUT~ +W_vinst[20] => ~NO_FANOUT~ +W_vinst[21] => ~NO_FANOUT~ +W_vinst[22] => ~NO_FANOUT~ +W_vinst[23] => ~NO_FANOUT~ +W_vinst[24] => ~NO_FANOUT~ +W_vinst[25] => ~NO_FANOUT~ +W_vinst[26] => ~NO_FANOUT~ +W_vinst[27] => ~NO_FANOUT~ +W_vinst[28] => ~NO_FANOUT~ +W_vinst[29] => ~NO_FANOUT~ +W_vinst[30] => ~NO_FANOUT~ +W_vinst[31] => ~NO_FANOUT~ +W_vinst[32] => ~NO_FANOUT~ +W_vinst[33] => ~NO_FANOUT~ +W_vinst[34] => ~NO_FANOUT~ +W_vinst[35] => ~NO_FANOUT~ +W_vinst[36] => ~NO_FANOUT~ +W_vinst[37] => ~NO_FANOUT~ +W_vinst[38] => ~NO_FANOUT~ +W_vinst[39] => ~NO_FANOUT~ +W_vinst[40] => ~NO_FANOUT~ +W_vinst[41] => ~NO_FANOUT~ +W_vinst[42] => ~NO_FANOUT~ +W_vinst[43] => ~NO_FANOUT~ +W_vinst[44] => ~NO_FANOUT~ +W_vinst[45] => ~NO_FANOUT~ +W_vinst[46] => ~NO_FANOUT~ +W_vinst[47] => ~NO_FANOUT~ +W_vinst[48] => ~NO_FANOUT~ +W_vinst[49] => ~NO_FANOUT~ +W_vinst[50] => ~NO_FANOUT~ +W_vinst[51] => ~NO_FANOUT~ +W_vinst[52] => ~NO_FANOUT~ +W_vinst[53] => ~NO_FANOUT~ +W_vinst[54] => ~NO_FANOUT~ +W_vinst[55] => ~NO_FANOUT~ +W_wr_data[0] => ~NO_FANOUT~ +W_wr_data[1] => ~NO_FANOUT~ +W_wr_data[2] => ~NO_FANOUT~ +W_wr_data[3] => ~NO_FANOUT~ +W_wr_data[4] => ~NO_FANOUT~ +W_wr_data[5] => ~NO_FANOUT~ +W_wr_data[6] => ~NO_FANOUT~ +W_wr_data[7] => ~NO_FANOUT~ +W_wr_data[8] => ~NO_FANOUT~ +W_wr_data[9] => ~NO_FANOUT~ +W_wr_data[10] => ~NO_FANOUT~ +W_wr_data[11] => ~NO_FANOUT~ +W_wr_data[12] => ~NO_FANOUT~ +W_wr_data[13] => ~NO_FANOUT~ +W_wr_data[14] => ~NO_FANOUT~ +W_wr_data[15] => ~NO_FANOUT~ +W_wr_data[16] => ~NO_FANOUT~ +W_wr_data[17] => ~NO_FANOUT~ +W_wr_data[18] => ~NO_FANOUT~ +W_wr_data[19] => ~NO_FANOUT~ +W_wr_data[20] => ~NO_FANOUT~ +W_wr_data[21] => ~NO_FANOUT~ +W_wr_data[22] => ~NO_FANOUT~ +W_wr_data[23] => ~NO_FANOUT~ +W_wr_data[24] => ~NO_FANOUT~ +W_wr_data[25] => ~NO_FANOUT~ +W_wr_data[26] => ~NO_FANOUT~ +W_wr_data[27] => ~NO_FANOUT~ +W_wr_data[28] => ~NO_FANOUT~ +W_wr_data[29] => ~NO_FANOUT~ +W_wr_data[30] => ~NO_FANOUT~ +W_wr_data[31] => ~NO_FANOUT~ +av_ld_data_aligned_unfiltered[0] => av_ld_data_aligned_filtered[0].DATAIN +av_ld_data_aligned_unfiltered[1] => av_ld_data_aligned_filtered[1].DATAIN +av_ld_data_aligned_unfiltered[2] => av_ld_data_aligned_filtered[2].DATAIN +av_ld_data_aligned_unfiltered[3] => av_ld_data_aligned_filtered[3].DATAIN +av_ld_data_aligned_unfiltered[4] => av_ld_data_aligned_filtered[4].DATAIN +av_ld_data_aligned_unfiltered[5] => av_ld_data_aligned_filtered[5].DATAIN +av_ld_data_aligned_unfiltered[6] => av_ld_data_aligned_filtered[6].DATAIN +av_ld_data_aligned_unfiltered[7] => av_ld_data_aligned_filtered[7].DATAIN +av_ld_data_aligned_unfiltered[8] => av_ld_data_aligned_filtered[8].DATAIN +av_ld_data_aligned_unfiltered[9] => av_ld_data_aligned_filtered[9].DATAIN +av_ld_data_aligned_unfiltered[10] => av_ld_data_aligned_filtered[10].DATAIN +av_ld_data_aligned_unfiltered[11] => av_ld_data_aligned_filtered[11].DATAIN +av_ld_data_aligned_unfiltered[12] => av_ld_data_aligned_filtered[12].DATAIN +av_ld_data_aligned_unfiltered[13] => av_ld_data_aligned_filtered[13].DATAIN +av_ld_data_aligned_unfiltered[14] => av_ld_data_aligned_filtered[14].DATAIN +av_ld_data_aligned_unfiltered[15] => av_ld_data_aligned_filtered[15].DATAIN +av_ld_data_aligned_unfiltered[16] => av_ld_data_aligned_filtered[16].DATAIN +av_ld_data_aligned_unfiltered[17] => av_ld_data_aligned_filtered[17].DATAIN +av_ld_data_aligned_unfiltered[18] => av_ld_data_aligned_filtered[18].DATAIN +av_ld_data_aligned_unfiltered[19] => av_ld_data_aligned_filtered[19].DATAIN +av_ld_data_aligned_unfiltered[20] => av_ld_data_aligned_filtered[20].DATAIN +av_ld_data_aligned_unfiltered[21] => av_ld_data_aligned_filtered[21].DATAIN +av_ld_data_aligned_unfiltered[22] => av_ld_data_aligned_filtered[22].DATAIN +av_ld_data_aligned_unfiltered[23] => av_ld_data_aligned_filtered[23].DATAIN +av_ld_data_aligned_unfiltered[24] => av_ld_data_aligned_filtered[24].DATAIN +av_ld_data_aligned_unfiltered[25] => av_ld_data_aligned_filtered[25].DATAIN +av_ld_data_aligned_unfiltered[26] => av_ld_data_aligned_filtered[26].DATAIN +av_ld_data_aligned_unfiltered[27] => av_ld_data_aligned_filtered[27].DATAIN +av_ld_data_aligned_unfiltered[28] => av_ld_data_aligned_filtered[28].DATAIN +av_ld_data_aligned_unfiltered[29] => av_ld_data_aligned_filtered[29].DATAIN +av_ld_data_aligned_unfiltered[30] => av_ld_data_aligned_filtered[30].DATAIN +av_ld_data_aligned_unfiltered[31] => av_ld_data_aligned_filtered[31].DATAIN +clk => d_write~reg0.CLK +d_address[0] => ~NO_FANOUT~ +d_address[1] => ~NO_FANOUT~ +d_address[2] => ~NO_FANOUT~ +d_address[3] => ~NO_FANOUT~ +d_address[4] => ~NO_FANOUT~ +d_address[5] => ~NO_FANOUT~ +d_address[6] => ~NO_FANOUT~ +d_address[7] => ~NO_FANOUT~ +d_address[8] => ~NO_FANOUT~ +d_address[9] => ~NO_FANOUT~ +d_address[10] => ~NO_FANOUT~ +d_address[11] => ~NO_FANOUT~ +d_address[12] => ~NO_FANOUT~ +d_address[13] => ~NO_FANOUT~ +d_address[14] => ~NO_FANOUT~ +d_address[15] => ~NO_FANOUT~ +d_address[16] => ~NO_FANOUT~ +d_address[17] => ~NO_FANOUT~ +d_address[18] => ~NO_FANOUT~ +d_byteenable[0] => ~NO_FANOUT~ +d_byteenable[1] => ~NO_FANOUT~ +d_byteenable[2] => ~NO_FANOUT~ +d_byteenable[3] => ~NO_FANOUT~ +d_read => ~NO_FANOUT~ +d_write_nxt => d_write~reg0.DATAIN +i_address[0] => ~NO_FANOUT~ +i_address[1] => ~NO_FANOUT~ +i_address[2] => ~NO_FANOUT~ +i_address[3] => ~NO_FANOUT~ +i_address[4] => ~NO_FANOUT~ +i_address[5] => ~NO_FANOUT~ +i_address[6] => ~NO_FANOUT~ +i_address[7] => ~NO_FANOUT~ +i_address[8] => ~NO_FANOUT~ +i_address[9] => ~NO_FANOUT~ +i_address[10] => ~NO_FANOUT~ +i_address[11] => ~NO_FANOUT~ +i_address[12] => ~NO_FANOUT~ +i_address[13] => ~NO_FANOUT~ +i_address[14] => ~NO_FANOUT~ +i_address[15] => ~NO_FANOUT~ +i_address[16] => ~NO_FANOUT~ +i_address[17] => ~NO_FANOUT~ +i_address[18] => ~NO_FANOUT~ +i_read => ~NO_FANOUT~ +i_readdata[0] => ~NO_FANOUT~ +i_readdata[1] => ~NO_FANOUT~ +i_readdata[2] => ~NO_FANOUT~ +i_readdata[3] => ~NO_FANOUT~ +i_readdata[4] => ~NO_FANOUT~ +i_readdata[5] => ~NO_FANOUT~ +i_readdata[6] => ~NO_FANOUT~ +i_readdata[7] => ~NO_FANOUT~ +i_readdata[8] => ~NO_FANOUT~ +i_readdata[9] => ~NO_FANOUT~ +i_readdata[10] => ~NO_FANOUT~ +i_readdata[11] => ~NO_FANOUT~ +i_readdata[12] => ~NO_FANOUT~ +i_readdata[13] => ~NO_FANOUT~ +i_readdata[14] => ~NO_FANOUT~ +i_readdata[15] => ~NO_FANOUT~ +i_readdata[16] => ~NO_FANOUT~ +i_readdata[17] => ~NO_FANOUT~ +i_readdata[18] => ~NO_FANOUT~ +i_readdata[19] => ~NO_FANOUT~ +i_readdata[20] => ~NO_FANOUT~ +i_readdata[21] => ~NO_FANOUT~ +i_readdata[22] => ~NO_FANOUT~ +i_readdata[23] => ~NO_FANOUT~ +i_readdata[24] => ~NO_FANOUT~ +i_readdata[25] => ~NO_FANOUT~ +i_readdata[26] => ~NO_FANOUT~ +i_readdata[27] => ~NO_FANOUT~ +i_readdata[28] => ~NO_FANOUT~ +i_readdata[29] => ~NO_FANOUT~ +i_readdata[30] => ~NO_FANOUT~ +i_readdata[31] => ~NO_FANOUT~ +i_waitrequest => ~NO_FANOUT~ +reset_n => d_write~reg0.ACLR +av_ld_data_aligned_filtered[0] <= av_ld_data_aligned_unfiltered[0].DB_MAX_OUTPUT_PORT_TYPE +av_ld_data_aligned_filtered[1] <= av_ld_data_aligned_unfiltered[1].DB_MAX_OUTPUT_PORT_TYPE +av_ld_data_aligned_filtered[2] <= av_ld_data_aligned_unfiltered[2].DB_MAX_OUTPUT_PORT_TYPE +av_ld_data_aligned_filtered[3] <= av_ld_data_aligned_unfiltered[3].DB_MAX_OUTPUT_PORT_TYPE +av_ld_data_aligned_filtered[4] <= av_ld_data_aligned_unfiltered[4].DB_MAX_OUTPUT_PORT_TYPE +av_ld_data_aligned_filtered[5] <= av_ld_data_aligned_unfiltered[5].DB_MAX_OUTPUT_PORT_TYPE +av_ld_data_aligned_filtered[6] <= av_ld_data_aligned_unfiltered[6].DB_MAX_OUTPUT_PORT_TYPE +av_ld_data_aligned_filtered[7] <= av_ld_data_aligned_unfiltered[7].DB_MAX_OUTPUT_PORT_TYPE +av_ld_data_aligned_filtered[8] <= av_ld_data_aligned_unfiltered[8].DB_MAX_OUTPUT_PORT_TYPE +av_ld_data_aligned_filtered[9] <= av_ld_data_aligned_unfiltered[9].DB_MAX_OUTPUT_PORT_TYPE +av_ld_data_aligned_filtered[10] <= av_ld_data_aligned_unfiltered[10].DB_MAX_OUTPUT_PORT_TYPE +av_ld_data_aligned_filtered[11] <= av_ld_data_aligned_unfiltered[11].DB_MAX_OUTPUT_PORT_TYPE +av_ld_data_aligned_filtered[12] <= av_ld_data_aligned_unfiltered[12].DB_MAX_OUTPUT_PORT_TYPE +av_ld_data_aligned_filtered[13] <= av_ld_data_aligned_unfiltered[13].DB_MAX_OUTPUT_PORT_TYPE +av_ld_data_aligned_filtered[14] <= av_ld_data_aligned_unfiltered[14].DB_MAX_OUTPUT_PORT_TYPE +av_ld_data_aligned_filtered[15] <= av_ld_data_aligned_unfiltered[15].DB_MAX_OUTPUT_PORT_TYPE +av_ld_data_aligned_filtered[16] <= av_ld_data_aligned_unfiltered[16].DB_MAX_OUTPUT_PORT_TYPE +av_ld_data_aligned_filtered[17] <= av_ld_data_aligned_unfiltered[17].DB_MAX_OUTPUT_PORT_TYPE +av_ld_data_aligned_filtered[18] <= av_ld_data_aligned_unfiltered[18].DB_MAX_OUTPUT_PORT_TYPE +av_ld_data_aligned_filtered[19] <= av_ld_data_aligned_unfiltered[19].DB_MAX_OUTPUT_PORT_TYPE +av_ld_data_aligned_filtered[20] <= av_ld_data_aligned_unfiltered[20].DB_MAX_OUTPUT_PORT_TYPE +av_ld_data_aligned_filtered[21] <= av_ld_data_aligned_unfiltered[21].DB_MAX_OUTPUT_PORT_TYPE +av_ld_data_aligned_filtered[22] <= av_ld_data_aligned_unfiltered[22].DB_MAX_OUTPUT_PORT_TYPE +av_ld_data_aligned_filtered[23] <= av_ld_data_aligned_unfiltered[23].DB_MAX_OUTPUT_PORT_TYPE +av_ld_data_aligned_filtered[24] <= av_ld_data_aligned_unfiltered[24].DB_MAX_OUTPUT_PORT_TYPE +av_ld_data_aligned_filtered[25] <= av_ld_data_aligned_unfiltered[25].DB_MAX_OUTPUT_PORT_TYPE +av_ld_data_aligned_filtered[26] <= av_ld_data_aligned_unfiltered[26].DB_MAX_OUTPUT_PORT_TYPE +av_ld_data_aligned_filtered[27] <= av_ld_data_aligned_unfiltered[27].DB_MAX_OUTPUT_PORT_TYPE +av_ld_data_aligned_filtered[28] <= av_ld_data_aligned_unfiltered[28].DB_MAX_OUTPUT_PORT_TYPE +av_ld_data_aligned_filtered[29] <= av_ld_data_aligned_unfiltered[29].DB_MAX_OUTPUT_PORT_TYPE +av_ld_data_aligned_filtered[30] <= av_ld_data_aligned_unfiltered[30].DB_MAX_OUTPUT_PORT_TYPE +av_ld_data_aligned_filtered[31] <= av_ld_data_aligned_unfiltered[31].DB_MAX_OUTPUT_PORT_TYPE +d_write <= d_write~reg0.DB_MAX_OUTPUT_PORT_TYPE +test_has_ended <= + + +|lights|nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_register_bank_a_module:nios_system_nios2_processor_register_bank_a +clock => clock.IN1 +data[0] => data[0].IN1 +data[1] => data[1].IN1 +data[2] => data[2].IN1 +data[3] => data[3].IN1 +data[4] => data[4].IN1 +data[5] => data[5].IN1 +data[6] => data[6].IN1 +data[7] => data[7].IN1 +data[8] => data[8].IN1 +data[9] => data[9].IN1 +data[10] => data[10].IN1 +data[11] => data[11].IN1 +data[12] => data[12].IN1 +data[13] => data[13].IN1 +data[14] => data[14].IN1 +data[15] => data[15].IN1 +data[16] => data[16].IN1 +data[17] => data[17].IN1 +data[18] => data[18].IN1 +data[19] => data[19].IN1 +data[20] => data[20].IN1 +data[21] => data[21].IN1 +data[22] => data[22].IN1 +data[23] => data[23].IN1 +data[24] => data[24].IN1 +data[25] => data[25].IN1 +data[26] => data[26].IN1 +data[27] => data[27].IN1 +data[28] => data[28].IN1 +data[29] => data[29].IN1 +data[30] => data[30].IN1 +data[31] => data[31].IN1 +rdaddress[0] => rdaddress[0].IN1 +rdaddress[1] => rdaddress[1].IN1 +rdaddress[2] => rdaddress[2].IN1 +rdaddress[3] => rdaddress[3].IN1 +rdaddress[4] => rdaddress[4].IN1 +wraddress[0] => wraddress[0].IN1 +wraddress[1] => wraddress[1].IN1 +wraddress[2] => wraddress[2].IN1 +wraddress[3] => wraddress[3].IN1 +wraddress[4] => wraddress[4].IN1 +wren => wren.IN1 +q[0] <= altsyncram:the_altsyncram.q_b +q[1] <= altsyncram:the_altsyncram.q_b +q[2] <= altsyncram:the_altsyncram.q_b +q[3] <= altsyncram:the_altsyncram.q_b +q[4] <= altsyncram:the_altsyncram.q_b +q[5] <= altsyncram:the_altsyncram.q_b +q[6] <= altsyncram:the_altsyncram.q_b +q[7] <= altsyncram:the_altsyncram.q_b +q[8] <= altsyncram:the_altsyncram.q_b +q[9] <= altsyncram:the_altsyncram.q_b +q[10] <= altsyncram:the_altsyncram.q_b +q[11] <= altsyncram:the_altsyncram.q_b +q[12] <= altsyncram:the_altsyncram.q_b +q[13] <= altsyncram:the_altsyncram.q_b +q[14] <= altsyncram:the_altsyncram.q_b +q[15] <= altsyncram:the_altsyncram.q_b +q[16] <= altsyncram:the_altsyncram.q_b +q[17] <= altsyncram:the_altsyncram.q_b +q[18] <= altsyncram:the_altsyncram.q_b +q[19] <= altsyncram:the_altsyncram.q_b +q[20] <= altsyncram:the_altsyncram.q_b +q[21] <= altsyncram:the_altsyncram.q_b +q[22] <= altsyncram:the_altsyncram.q_b +q[23] <= altsyncram:the_altsyncram.q_b +q[24] <= altsyncram:the_altsyncram.q_b +q[25] <= altsyncram:the_altsyncram.q_b +q[26] <= altsyncram:the_altsyncram.q_b +q[27] <= altsyncram:the_altsyncram.q_b +q[28] <= altsyncram:the_altsyncram.q_b +q[29] <= altsyncram:the_altsyncram.q_b +q[30] <= altsyncram:the_altsyncram.q_b +q[31] <= altsyncram:the_altsyncram.q_b + + +|lights|nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_register_bank_a_module:nios_system_nios2_processor_register_bank_a|altsyncram:the_altsyncram +wren_a => altsyncram_0rh1:auto_generated.wren_a +rden_a => ~NO_FANOUT~ +wren_b => ~NO_FANOUT~ +rden_b => ~NO_FANOUT~ +data_a[0] => altsyncram_0rh1:auto_generated.data_a[0] +data_a[1] => altsyncram_0rh1:auto_generated.data_a[1] +data_a[2] => altsyncram_0rh1:auto_generated.data_a[2] +data_a[3] => altsyncram_0rh1:auto_generated.data_a[3] +data_a[4] => altsyncram_0rh1:auto_generated.data_a[4] +data_a[5] => altsyncram_0rh1:auto_generated.data_a[5] +data_a[6] => altsyncram_0rh1:auto_generated.data_a[6] +data_a[7] => altsyncram_0rh1:auto_generated.data_a[7] +data_a[8] => altsyncram_0rh1:auto_generated.data_a[8] +data_a[9] => altsyncram_0rh1:auto_generated.data_a[9] +data_a[10] => altsyncram_0rh1:auto_generated.data_a[10] +data_a[11] => altsyncram_0rh1:auto_generated.data_a[11] +data_a[12] => altsyncram_0rh1:auto_generated.data_a[12] +data_a[13] => altsyncram_0rh1:auto_generated.data_a[13] +data_a[14] => altsyncram_0rh1:auto_generated.data_a[14] +data_a[15] => altsyncram_0rh1:auto_generated.data_a[15] +data_a[16] => altsyncram_0rh1:auto_generated.data_a[16] +data_a[17] => altsyncram_0rh1:auto_generated.data_a[17] +data_a[18] => altsyncram_0rh1:auto_generated.data_a[18] +data_a[19] => altsyncram_0rh1:auto_generated.data_a[19] +data_a[20] => altsyncram_0rh1:auto_generated.data_a[20] +data_a[21] => altsyncram_0rh1:auto_generated.data_a[21] +data_a[22] => altsyncram_0rh1:auto_generated.data_a[22] +data_a[23] => altsyncram_0rh1:auto_generated.data_a[23] +data_a[24] => altsyncram_0rh1:auto_generated.data_a[24] +data_a[25] => altsyncram_0rh1:auto_generated.data_a[25] +data_a[26] => altsyncram_0rh1:auto_generated.data_a[26] +data_a[27] => altsyncram_0rh1:auto_generated.data_a[27] +data_a[28] => altsyncram_0rh1:auto_generated.data_a[28] +data_a[29] => altsyncram_0rh1:auto_generated.data_a[29] +data_a[30] => altsyncram_0rh1:auto_generated.data_a[30] +data_a[31] => altsyncram_0rh1:auto_generated.data_a[31] +data_b[0] => ~NO_FANOUT~ +data_b[1] => ~NO_FANOUT~ +data_b[2] => ~NO_FANOUT~ +data_b[3] => ~NO_FANOUT~ +data_b[4] => ~NO_FANOUT~ +data_b[5] => ~NO_FANOUT~ +data_b[6] => ~NO_FANOUT~ +data_b[7] => ~NO_FANOUT~ +data_b[8] => ~NO_FANOUT~ +data_b[9] => ~NO_FANOUT~ +data_b[10] => ~NO_FANOUT~ +data_b[11] => ~NO_FANOUT~ +data_b[12] => ~NO_FANOUT~ +data_b[13] => ~NO_FANOUT~ +data_b[14] => ~NO_FANOUT~ +data_b[15] => ~NO_FANOUT~ +data_b[16] => ~NO_FANOUT~ +data_b[17] => ~NO_FANOUT~ +data_b[18] => ~NO_FANOUT~ +data_b[19] => ~NO_FANOUT~ +data_b[20] => ~NO_FANOUT~ +data_b[21] => ~NO_FANOUT~ +data_b[22] => ~NO_FANOUT~ +data_b[23] => ~NO_FANOUT~ +data_b[24] => ~NO_FANOUT~ +data_b[25] => ~NO_FANOUT~ +data_b[26] => ~NO_FANOUT~ +data_b[27] => ~NO_FANOUT~ +data_b[28] => ~NO_FANOUT~ +data_b[29] => ~NO_FANOUT~ +data_b[30] => ~NO_FANOUT~ +data_b[31] => ~NO_FANOUT~ +address_a[0] => altsyncram_0rh1:auto_generated.address_a[0] +address_a[1] => altsyncram_0rh1:auto_generated.address_a[1] +address_a[2] => altsyncram_0rh1:auto_generated.address_a[2] +address_a[3] => altsyncram_0rh1:auto_generated.address_a[3] +address_a[4] => altsyncram_0rh1:auto_generated.address_a[4] +address_b[0] => altsyncram_0rh1:auto_generated.address_b[0] +address_b[1] => altsyncram_0rh1:auto_generated.address_b[1] +address_b[2] => altsyncram_0rh1:auto_generated.address_b[2] +address_b[3] => altsyncram_0rh1:auto_generated.address_b[3] +address_b[4] => altsyncram_0rh1:auto_generated.address_b[4] +addressstall_a => ~NO_FANOUT~ +addressstall_b => ~NO_FANOUT~ +clock0 => altsyncram_0rh1:auto_generated.clock0 +clock1 => ~NO_FANOUT~ +clocken0 => ~NO_FANOUT~ +clocken1 => ~NO_FANOUT~ +clocken2 => ~NO_FANOUT~ +clocken3 => ~NO_FANOUT~ +aclr0 => ~NO_FANOUT~ +aclr1 => ~NO_FANOUT~ +byteena_a[0] => ~NO_FANOUT~ +byteena_b[0] => ~NO_FANOUT~ +q_a[0] <= +q_a[1] <= +q_a[2] <= +q_a[3] <= +q_a[4] <= +q_a[5] <= +q_a[6] <= +q_a[7] <= +q_a[8] <= +q_a[9] <= +q_a[10] <= +q_a[11] <= +q_a[12] <= +q_a[13] <= +q_a[14] <= +q_a[15] <= +q_a[16] <= +q_a[17] <= +q_a[18] <= +q_a[19] <= +q_a[20] <= +q_a[21] <= +q_a[22] <= +q_a[23] <= +q_a[24] <= +q_a[25] <= +q_a[26] <= +q_a[27] <= +q_a[28] <= +q_a[29] <= +q_a[30] <= +q_a[31] <= +q_b[0] <= altsyncram_0rh1:auto_generated.q_b[0] +q_b[1] <= altsyncram_0rh1:auto_generated.q_b[1] +q_b[2] <= altsyncram_0rh1:auto_generated.q_b[2] +q_b[3] <= altsyncram_0rh1:auto_generated.q_b[3] +q_b[4] <= altsyncram_0rh1:auto_generated.q_b[4] +q_b[5] <= altsyncram_0rh1:auto_generated.q_b[5] +q_b[6] <= altsyncram_0rh1:auto_generated.q_b[6] +q_b[7] <= altsyncram_0rh1:auto_generated.q_b[7] +q_b[8] <= altsyncram_0rh1:auto_generated.q_b[8] +q_b[9] <= altsyncram_0rh1:auto_generated.q_b[9] +q_b[10] <= altsyncram_0rh1:auto_generated.q_b[10] +q_b[11] <= altsyncram_0rh1:auto_generated.q_b[11] +q_b[12] <= altsyncram_0rh1:auto_generated.q_b[12] +q_b[13] <= altsyncram_0rh1:auto_generated.q_b[13] +q_b[14] <= altsyncram_0rh1:auto_generated.q_b[14] +q_b[15] <= altsyncram_0rh1:auto_generated.q_b[15] +q_b[16] <= altsyncram_0rh1:auto_generated.q_b[16] +q_b[17] <= altsyncram_0rh1:auto_generated.q_b[17] +q_b[18] <= altsyncram_0rh1:auto_generated.q_b[18] +q_b[19] <= altsyncram_0rh1:auto_generated.q_b[19] +q_b[20] <= altsyncram_0rh1:auto_generated.q_b[20] +q_b[21] <= altsyncram_0rh1:auto_generated.q_b[21] +q_b[22] <= altsyncram_0rh1:auto_generated.q_b[22] +q_b[23] <= altsyncram_0rh1:auto_generated.q_b[23] +q_b[24] <= altsyncram_0rh1:auto_generated.q_b[24] +q_b[25] <= altsyncram_0rh1:auto_generated.q_b[25] +q_b[26] <= altsyncram_0rh1:auto_generated.q_b[26] +q_b[27] <= altsyncram_0rh1:auto_generated.q_b[27] +q_b[28] <= altsyncram_0rh1:auto_generated.q_b[28] +q_b[29] <= altsyncram_0rh1:auto_generated.q_b[29] +q_b[30] <= altsyncram_0rh1:auto_generated.q_b[30] +q_b[31] <= altsyncram_0rh1:auto_generated.q_b[31] +eccstatus[0] <= +eccstatus[1] <= +eccstatus[2] <= + + +|lights|nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_register_bank_a_module:nios_system_nios2_processor_register_bank_a|altsyncram:the_altsyncram|altsyncram_0rh1:auto_generated +address_a[0] => ram_block1a0.PORTAADDR +address_a[0] => ram_block1a1.PORTAADDR +address_a[0] => ram_block1a2.PORTAADDR +address_a[0] => ram_block1a3.PORTAADDR +address_a[0] => ram_block1a4.PORTAADDR +address_a[0] => ram_block1a5.PORTAADDR +address_a[0] => ram_block1a6.PORTAADDR +address_a[0] => ram_block1a7.PORTAADDR +address_a[0] => ram_block1a8.PORTAADDR +address_a[0] => ram_block1a9.PORTAADDR +address_a[0] => ram_block1a10.PORTAADDR +address_a[0] => ram_block1a11.PORTAADDR +address_a[0] => ram_block1a12.PORTAADDR +address_a[0] => ram_block1a13.PORTAADDR +address_a[0] => ram_block1a14.PORTAADDR +address_a[0] => ram_block1a15.PORTAADDR +address_a[0] => ram_block1a16.PORTAADDR +address_a[0] => ram_block1a17.PORTAADDR +address_a[0] => ram_block1a18.PORTAADDR +address_a[0] => ram_block1a19.PORTAADDR +address_a[0] => ram_block1a20.PORTAADDR +address_a[0] => ram_block1a21.PORTAADDR +address_a[0] => ram_block1a22.PORTAADDR +address_a[0] => ram_block1a23.PORTAADDR +address_a[0] => ram_block1a24.PORTAADDR +address_a[0] => ram_block1a25.PORTAADDR +address_a[0] => ram_block1a26.PORTAADDR +address_a[0] => ram_block1a27.PORTAADDR +address_a[0] => ram_block1a28.PORTAADDR +address_a[0] => ram_block1a29.PORTAADDR +address_a[0] => ram_block1a30.PORTAADDR +address_a[0] => ram_block1a31.PORTAADDR +address_a[1] => ram_block1a0.PORTAADDR1 +address_a[1] => ram_block1a1.PORTAADDR1 +address_a[1] => ram_block1a2.PORTAADDR1 +address_a[1] => ram_block1a3.PORTAADDR1 +address_a[1] => ram_block1a4.PORTAADDR1 +address_a[1] => ram_block1a5.PORTAADDR1 +address_a[1] => ram_block1a6.PORTAADDR1 +address_a[1] => ram_block1a7.PORTAADDR1 +address_a[1] => ram_block1a8.PORTAADDR1 +address_a[1] => ram_block1a9.PORTAADDR1 +address_a[1] => ram_block1a10.PORTAADDR1 +address_a[1] => ram_block1a11.PORTAADDR1 +address_a[1] => ram_block1a12.PORTAADDR1 +address_a[1] => ram_block1a13.PORTAADDR1 +address_a[1] => ram_block1a14.PORTAADDR1 +address_a[1] => ram_block1a15.PORTAADDR1 +address_a[1] => ram_block1a16.PORTAADDR1 +address_a[1] => ram_block1a17.PORTAADDR1 +address_a[1] => ram_block1a18.PORTAADDR1 +address_a[1] => ram_block1a19.PORTAADDR1 +address_a[1] => ram_block1a20.PORTAADDR1 +address_a[1] => ram_block1a21.PORTAADDR1 +address_a[1] => ram_block1a22.PORTAADDR1 +address_a[1] => ram_block1a23.PORTAADDR1 +address_a[1] => ram_block1a24.PORTAADDR1 +address_a[1] => ram_block1a25.PORTAADDR1 +address_a[1] => ram_block1a26.PORTAADDR1 +address_a[1] => ram_block1a27.PORTAADDR1 +address_a[1] => ram_block1a28.PORTAADDR1 +address_a[1] => ram_block1a29.PORTAADDR1 +address_a[1] => ram_block1a30.PORTAADDR1 +address_a[1] => ram_block1a31.PORTAADDR1 +address_a[2] => ram_block1a0.PORTAADDR2 +address_a[2] => ram_block1a1.PORTAADDR2 +address_a[2] => ram_block1a2.PORTAADDR2 +address_a[2] => ram_block1a3.PORTAADDR2 +address_a[2] => ram_block1a4.PORTAADDR2 +address_a[2] => ram_block1a5.PORTAADDR2 +address_a[2] => ram_block1a6.PORTAADDR2 +address_a[2] => ram_block1a7.PORTAADDR2 +address_a[2] => ram_block1a8.PORTAADDR2 +address_a[2] => ram_block1a9.PORTAADDR2 +address_a[2] => ram_block1a10.PORTAADDR2 +address_a[2] => ram_block1a11.PORTAADDR2 +address_a[2] => ram_block1a12.PORTAADDR2 +address_a[2] => ram_block1a13.PORTAADDR2 +address_a[2] => ram_block1a14.PORTAADDR2 +address_a[2] => ram_block1a15.PORTAADDR2 +address_a[2] => ram_block1a16.PORTAADDR2 +address_a[2] => ram_block1a17.PORTAADDR2 +address_a[2] => ram_block1a18.PORTAADDR2 +address_a[2] => ram_block1a19.PORTAADDR2 +address_a[2] => ram_block1a20.PORTAADDR2 +address_a[2] => ram_block1a21.PORTAADDR2 +address_a[2] => ram_block1a22.PORTAADDR2 +address_a[2] => ram_block1a23.PORTAADDR2 +address_a[2] => ram_block1a24.PORTAADDR2 +address_a[2] => ram_block1a25.PORTAADDR2 +address_a[2] => ram_block1a26.PORTAADDR2 +address_a[2] => ram_block1a27.PORTAADDR2 +address_a[2] => ram_block1a28.PORTAADDR2 +address_a[2] => ram_block1a29.PORTAADDR2 +address_a[2] => ram_block1a30.PORTAADDR2 +address_a[2] => ram_block1a31.PORTAADDR2 +address_a[3] => ram_block1a0.PORTAADDR3 +address_a[3] => ram_block1a1.PORTAADDR3 +address_a[3] => ram_block1a2.PORTAADDR3 +address_a[3] => ram_block1a3.PORTAADDR3 +address_a[3] => ram_block1a4.PORTAADDR3 +address_a[3] => ram_block1a5.PORTAADDR3 +address_a[3] => ram_block1a6.PORTAADDR3 +address_a[3] => ram_block1a7.PORTAADDR3 +address_a[3] => ram_block1a8.PORTAADDR3 +address_a[3] => ram_block1a9.PORTAADDR3 +address_a[3] => ram_block1a10.PORTAADDR3 +address_a[3] => ram_block1a11.PORTAADDR3 +address_a[3] => ram_block1a12.PORTAADDR3 +address_a[3] => ram_block1a13.PORTAADDR3 +address_a[3] => ram_block1a14.PORTAADDR3 +address_a[3] => ram_block1a15.PORTAADDR3 +address_a[3] => ram_block1a16.PORTAADDR3 +address_a[3] => ram_block1a17.PORTAADDR3 +address_a[3] => ram_block1a18.PORTAADDR3 +address_a[3] => ram_block1a19.PORTAADDR3 +address_a[3] => ram_block1a20.PORTAADDR3 +address_a[3] => ram_block1a21.PORTAADDR3 +address_a[3] => ram_block1a22.PORTAADDR3 +address_a[3] => ram_block1a23.PORTAADDR3 +address_a[3] => ram_block1a24.PORTAADDR3 +address_a[3] => ram_block1a25.PORTAADDR3 +address_a[3] => ram_block1a26.PORTAADDR3 +address_a[3] => ram_block1a27.PORTAADDR3 +address_a[3] => ram_block1a28.PORTAADDR3 +address_a[3] => ram_block1a29.PORTAADDR3 +address_a[3] => ram_block1a30.PORTAADDR3 +address_a[3] => ram_block1a31.PORTAADDR3 +address_a[4] => ram_block1a0.PORTAADDR4 +address_a[4] => ram_block1a1.PORTAADDR4 +address_a[4] => ram_block1a2.PORTAADDR4 +address_a[4] => ram_block1a3.PORTAADDR4 +address_a[4] => ram_block1a4.PORTAADDR4 +address_a[4] => ram_block1a5.PORTAADDR4 +address_a[4] => ram_block1a6.PORTAADDR4 +address_a[4] => ram_block1a7.PORTAADDR4 +address_a[4] => ram_block1a8.PORTAADDR4 +address_a[4] => ram_block1a9.PORTAADDR4 +address_a[4] => ram_block1a10.PORTAADDR4 +address_a[4] => ram_block1a11.PORTAADDR4 +address_a[4] => ram_block1a12.PORTAADDR4 +address_a[4] => ram_block1a13.PORTAADDR4 +address_a[4] => ram_block1a14.PORTAADDR4 +address_a[4] => ram_block1a15.PORTAADDR4 +address_a[4] => ram_block1a16.PORTAADDR4 +address_a[4] => ram_block1a17.PORTAADDR4 +address_a[4] => ram_block1a18.PORTAADDR4 +address_a[4] => ram_block1a19.PORTAADDR4 +address_a[4] => ram_block1a20.PORTAADDR4 +address_a[4] => ram_block1a21.PORTAADDR4 +address_a[4] => ram_block1a22.PORTAADDR4 +address_a[4] => ram_block1a23.PORTAADDR4 +address_a[4] => ram_block1a24.PORTAADDR4 +address_a[4] => ram_block1a25.PORTAADDR4 +address_a[4] => ram_block1a26.PORTAADDR4 +address_a[4] => ram_block1a27.PORTAADDR4 +address_a[4] => ram_block1a28.PORTAADDR4 +address_a[4] => ram_block1a29.PORTAADDR4 +address_a[4] => ram_block1a30.PORTAADDR4 +address_a[4] => ram_block1a31.PORTAADDR4 +address_b[0] => ram_block1a0.PORTBADDR +address_b[0] => ram_block1a1.PORTBADDR +address_b[0] => ram_block1a2.PORTBADDR +address_b[0] => ram_block1a3.PORTBADDR +address_b[0] => ram_block1a4.PORTBADDR +address_b[0] => ram_block1a5.PORTBADDR +address_b[0] => ram_block1a6.PORTBADDR +address_b[0] => ram_block1a7.PORTBADDR +address_b[0] => ram_block1a8.PORTBADDR +address_b[0] => ram_block1a9.PORTBADDR +address_b[0] => ram_block1a10.PORTBADDR +address_b[0] => ram_block1a11.PORTBADDR +address_b[0] => ram_block1a12.PORTBADDR +address_b[0] => ram_block1a13.PORTBADDR +address_b[0] => ram_block1a14.PORTBADDR +address_b[0] => ram_block1a15.PORTBADDR +address_b[0] => ram_block1a16.PORTBADDR +address_b[0] => ram_block1a17.PORTBADDR +address_b[0] => ram_block1a18.PORTBADDR +address_b[0] => ram_block1a19.PORTBADDR +address_b[0] => ram_block1a20.PORTBADDR +address_b[0] => ram_block1a21.PORTBADDR +address_b[0] => ram_block1a22.PORTBADDR +address_b[0] => ram_block1a23.PORTBADDR +address_b[0] => ram_block1a24.PORTBADDR +address_b[0] => ram_block1a25.PORTBADDR +address_b[0] => ram_block1a26.PORTBADDR +address_b[0] => ram_block1a27.PORTBADDR +address_b[0] => ram_block1a28.PORTBADDR +address_b[0] => ram_block1a29.PORTBADDR +address_b[0] => ram_block1a30.PORTBADDR +address_b[0] => ram_block1a31.PORTBADDR +address_b[1] => ram_block1a0.PORTBADDR1 +address_b[1] => ram_block1a1.PORTBADDR1 +address_b[1] => ram_block1a2.PORTBADDR1 +address_b[1] => ram_block1a3.PORTBADDR1 +address_b[1] => ram_block1a4.PORTBADDR1 +address_b[1] => ram_block1a5.PORTBADDR1 +address_b[1] => ram_block1a6.PORTBADDR1 +address_b[1] => ram_block1a7.PORTBADDR1 +address_b[1] => ram_block1a8.PORTBADDR1 +address_b[1] => ram_block1a9.PORTBADDR1 +address_b[1] => ram_block1a10.PORTBADDR1 +address_b[1] => ram_block1a11.PORTBADDR1 +address_b[1] => ram_block1a12.PORTBADDR1 +address_b[1] => ram_block1a13.PORTBADDR1 +address_b[1] => ram_block1a14.PORTBADDR1 +address_b[1] => ram_block1a15.PORTBADDR1 +address_b[1] => ram_block1a16.PORTBADDR1 +address_b[1] => ram_block1a17.PORTBADDR1 +address_b[1] => ram_block1a18.PORTBADDR1 +address_b[1] => ram_block1a19.PORTBADDR1 +address_b[1] => ram_block1a20.PORTBADDR1 +address_b[1] => ram_block1a21.PORTBADDR1 +address_b[1] => ram_block1a22.PORTBADDR1 +address_b[1] => ram_block1a23.PORTBADDR1 +address_b[1] => ram_block1a24.PORTBADDR1 +address_b[1] => ram_block1a25.PORTBADDR1 +address_b[1] => ram_block1a26.PORTBADDR1 +address_b[1] => ram_block1a27.PORTBADDR1 +address_b[1] => ram_block1a28.PORTBADDR1 +address_b[1] => ram_block1a29.PORTBADDR1 +address_b[1] => ram_block1a30.PORTBADDR1 +address_b[1] => ram_block1a31.PORTBADDR1 +address_b[2] => ram_block1a0.PORTBADDR2 +address_b[2] => ram_block1a1.PORTBADDR2 +address_b[2] => ram_block1a2.PORTBADDR2 +address_b[2] => ram_block1a3.PORTBADDR2 +address_b[2] => ram_block1a4.PORTBADDR2 +address_b[2] => ram_block1a5.PORTBADDR2 +address_b[2] => ram_block1a6.PORTBADDR2 +address_b[2] => ram_block1a7.PORTBADDR2 +address_b[2] => ram_block1a8.PORTBADDR2 +address_b[2] => ram_block1a9.PORTBADDR2 +address_b[2] => ram_block1a10.PORTBADDR2 +address_b[2] => ram_block1a11.PORTBADDR2 +address_b[2] => ram_block1a12.PORTBADDR2 +address_b[2] => ram_block1a13.PORTBADDR2 +address_b[2] => ram_block1a14.PORTBADDR2 +address_b[2] => ram_block1a15.PORTBADDR2 +address_b[2] => ram_block1a16.PORTBADDR2 +address_b[2] => ram_block1a17.PORTBADDR2 +address_b[2] => ram_block1a18.PORTBADDR2 +address_b[2] => ram_block1a19.PORTBADDR2 +address_b[2] => ram_block1a20.PORTBADDR2 +address_b[2] => ram_block1a21.PORTBADDR2 +address_b[2] => ram_block1a22.PORTBADDR2 +address_b[2] => ram_block1a23.PORTBADDR2 +address_b[2] => ram_block1a24.PORTBADDR2 +address_b[2] => ram_block1a25.PORTBADDR2 +address_b[2] => ram_block1a26.PORTBADDR2 +address_b[2] => ram_block1a27.PORTBADDR2 +address_b[2] => ram_block1a28.PORTBADDR2 +address_b[2] => ram_block1a29.PORTBADDR2 +address_b[2] => ram_block1a30.PORTBADDR2 +address_b[2] => ram_block1a31.PORTBADDR2 +address_b[3] => ram_block1a0.PORTBADDR3 +address_b[3] => ram_block1a1.PORTBADDR3 +address_b[3] => ram_block1a2.PORTBADDR3 +address_b[3] => ram_block1a3.PORTBADDR3 +address_b[3] => ram_block1a4.PORTBADDR3 +address_b[3] => ram_block1a5.PORTBADDR3 +address_b[3] => ram_block1a6.PORTBADDR3 +address_b[3] => ram_block1a7.PORTBADDR3 +address_b[3] => ram_block1a8.PORTBADDR3 +address_b[3] => ram_block1a9.PORTBADDR3 +address_b[3] => ram_block1a10.PORTBADDR3 +address_b[3] => ram_block1a11.PORTBADDR3 +address_b[3] => ram_block1a12.PORTBADDR3 +address_b[3] => ram_block1a13.PORTBADDR3 +address_b[3] => ram_block1a14.PORTBADDR3 +address_b[3] => ram_block1a15.PORTBADDR3 +address_b[3] => ram_block1a16.PORTBADDR3 +address_b[3] => ram_block1a17.PORTBADDR3 +address_b[3] => ram_block1a18.PORTBADDR3 +address_b[3] => ram_block1a19.PORTBADDR3 +address_b[3] => ram_block1a20.PORTBADDR3 +address_b[3] => ram_block1a21.PORTBADDR3 +address_b[3] => ram_block1a22.PORTBADDR3 +address_b[3] => ram_block1a23.PORTBADDR3 +address_b[3] => ram_block1a24.PORTBADDR3 +address_b[3] => ram_block1a25.PORTBADDR3 +address_b[3] => ram_block1a26.PORTBADDR3 +address_b[3] => ram_block1a27.PORTBADDR3 +address_b[3] => ram_block1a28.PORTBADDR3 +address_b[3] => ram_block1a29.PORTBADDR3 +address_b[3] => ram_block1a30.PORTBADDR3 +address_b[3] => ram_block1a31.PORTBADDR3 +address_b[4] => ram_block1a0.PORTBADDR4 +address_b[4] => ram_block1a1.PORTBADDR4 +address_b[4] => ram_block1a2.PORTBADDR4 +address_b[4] => ram_block1a3.PORTBADDR4 +address_b[4] => ram_block1a4.PORTBADDR4 +address_b[4] => ram_block1a5.PORTBADDR4 +address_b[4] => ram_block1a6.PORTBADDR4 +address_b[4] => ram_block1a7.PORTBADDR4 +address_b[4] => ram_block1a8.PORTBADDR4 +address_b[4] => ram_block1a9.PORTBADDR4 +address_b[4] => ram_block1a10.PORTBADDR4 +address_b[4] => ram_block1a11.PORTBADDR4 +address_b[4] => ram_block1a12.PORTBADDR4 +address_b[4] => ram_block1a13.PORTBADDR4 +address_b[4] => ram_block1a14.PORTBADDR4 +address_b[4] => ram_block1a15.PORTBADDR4 +address_b[4] => ram_block1a16.PORTBADDR4 +address_b[4] => ram_block1a17.PORTBADDR4 +address_b[4] => ram_block1a18.PORTBADDR4 +address_b[4] => ram_block1a19.PORTBADDR4 +address_b[4] => ram_block1a20.PORTBADDR4 +address_b[4] => ram_block1a21.PORTBADDR4 +address_b[4] => ram_block1a22.PORTBADDR4 +address_b[4] => ram_block1a23.PORTBADDR4 +address_b[4] => ram_block1a24.PORTBADDR4 +address_b[4] => ram_block1a25.PORTBADDR4 +address_b[4] => ram_block1a26.PORTBADDR4 +address_b[4] => ram_block1a27.PORTBADDR4 +address_b[4] => ram_block1a28.PORTBADDR4 +address_b[4] => ram_block1a29.PORTBADDR4 +address_b[4] => ram_block1a30.PORTBADDR4 +address_b[4] => ram_block1a31.PORTBADDR4 +clock0 => ram_block1a0.CLK0 +clock0 => ram_block1a1.CLK0 +clock0 => ram_block1a2.CLK0 +clock0 => ram_block1a3.CLK0 +clock0 => ram_block1a4.CLK0 +clock0 => ram_block1a5.CLK0 +clock0 => ram_block1a6.CLK0 +clock0 => ram_block1a7.CLK0 +clock0 => ram_block1a8.CLK0 +clock0 => ram_block1a9.CLK0 +clock0 => ram_block1a10.CLK0 +clock0 => ram_block1a11.CLK0 +clock0 => ram_block1a12.CLK0 +clock0 => ram_block1a13.CLK0 +clock0 => ram_block1a14.CLK0 +clock0 => ram_block1a15.CLK0 +clock0 => ram_block1a16.CLK0 +clock0 => ram_block1a17.CLK0 +clock0 => ram_block1a18.CLK0 +clock0 => ram_block1a19.CLK0 +clock0 => ram_block1a20.CLK0 +clock0 => ram_block1a21.CLK0 +clock0 => ram_block1a22.CLK0 +clock0 => ram_block1a23.CLK0 +clock0 => ram_block1a24.CLK0 +clock0 => ram_block1a25.CLK0 +clock0 => ram_block1a26.CLK0 +clock0 => ram_block1a27.CLK0 +clock0 => ram_block1a28.CLK0 +clock0 => ram_block1a29.CLK0 +clock0 => ram_block1a30.CLK0 +clock0 => ram_block1a31.CLK0 +data_a[0] => ram_block1a0.PORTADATAIN +data_a[1] => ram_block1a1.PORTADATAIN +data_a[2] => ram_block1a2.PORTADATAIN +data_a[3] => ram_block1a3.PORTADATAIN +data_a[4] => ram_block1a4.PORTADATAIN +data_a[5] => ram_block1a5.PORTADATAIN +data_a[6] => ram_block1a6.PORTADATAIN +data_a[7] => ram_block1a7.PORTADATAIN +data_a[8] => ram_block1a8.PORTADATAIN +data_a[9] => ram_block1a9.PORTADATAIN +data_a[10] => ram_block1a10.PORTADATAIN +data_a[11] => ram_block1a11.PORTADATAIN +data_a[12] => ram_block1a12.PORTADATAIN +data_a[13] => ram_block1a13.PORTADATAIN +data_a[14] => ram_block1a14.PORTADATAIN +data_a[15] => ram_block1a15.PORTADATAIN +data_a[16] => ram_block1a16.PORTADATAIN +data_a[17] => ram_block1a17.PORTADATAIN +data_a[18] => ram_block1a18.PORTADATAIN +data_a[19] => ram_block1a19.PORTADATAIN +data_a[20] => ram_block1a20.PORTADATAIN +data_a[21] => ram_block1a21.PORTADATAIN +data_a[22] => ram_block1a22.PORTADATAIN +data_a[23] => ram_block1a23.PORTADATAIN +data_a[24] => ram_block1a24.PORTADATAIN +data_a[25] => ram_block1a25.PORTADATAIN +data_a[26] => ram_block1a26.PORTADATAIN +data_a[27] => ram_block1a27.PORTADATAIN +data_a[28] => ram_block1a28.PORTADATAIN +data_a[29] => ram_block1a29.PORTADATAIN +data_a[30] => ram_block1a30.PORTADATAIN +data_a[31] => ram_block1a31.PORTADATAIN +q_b[0] <= ram_block1a0.PORTBDATAOUT +q_b[1] <= ram_block1a1.PORTBDATAOUT +q_b[2] <= ram_block1a2.PORTBDATAOUT +q_b[3] <= ram_block1a3.PORTBDATAOUT +q_b[4] <= ram_block1a4.PORTBDATAOUT +q_b[5] <= ram_block1a5.PORTBDATAOUT +q_b[6] <= ram_block1a6.PORTBDATAOUT +q_b[7] <= ram_block1a7.PORTBDATAOUT +q_b[8] <= ram_block1a8.PORTBDATAOUT +q_b[9] <= ram_block1a9.PORTBDATAOUT +q_b[10] <= ram_block1a10.PORTBDATAOUT +q_b[11] <= ram_block1a11.PORTBDATAOUT +q_b[12] <= ram_block1a12.PORTBDATAOUT +q_b[13] <= ram_block1a13.PORTBDATAOUT +q_b[14] <= ram_block1a14.PORTBDATAOUT +q_b[15] <= ram_block1a15.PORTBDATAOUT +q_b[16] <= ram_block1a16.PORTBDATAOUT +q_b[17] <= ram_block1a17.PORTBDATAOUT +q_b[18] <= ram_block1a18.PORTBDATAOUT +q_b[19] <= ram_block1a19.PORTBDATAOUT +q_b[20] <= ram_block1a20.PORTBDATAOUT +q_b[21] <= ram_block1a21.PORTBDATAOUT +q_b[22] <= ram_block1a22.PORTBDATAOUT +q_b[23] <= ram_block1a23.PORTBDATAOUT +q_b[24] <= ram_block1a24.PORTBDATAOUT +q_b[25] <= ram_block1a25.PORTBDATAOUT +q_b[26] <= ram_block1a26.PORTBDATAOUT +q_b[27] <= ram_block1a27.PORTBDATAOUT +q_b[28] <= ram_block1a28.PORTBDATAOUT +q_b[29] <= ram_block1a29.PORTBDATAOUT +q_b[30] <= ram_block1a30.PORTBDATAOUT +q_b[31] <= ram_block1a31.PORTBDATAOUT +wren_a => ram_block1a0.PORTAWE +wren_a => ram_block1a1.PORTAWE +wren_a => ram_block1a2.PORTAWE +wren_a => ram_block1a3.PORTAWE +wren_a => ram_block1a4.PORTAWE +wren_a => ram_block1a5.PORTAWE +wren_a => ram_block1a6.PORTAWE +wren_a => ram_block1a7.PORTAWE +wren_a => ram_block1a8.PORTAWE +wren_a => ram_block1a9.PORTAWE +wren_a => ram_block1a10.PORTAWE +wren_a => ram_block1a11.PORTAWE +wren_a => ram_block1a12.PORTAWE +wren_a => ram_block1a13.PORTAWE +wren_a => ram_block1a14.PORTAWE +wren_a => ram_block1a15.PORTAWE +wren_a => ram_block1a16.PORTAWE +wren_a => ram_block1a17.PORTAWE +wren_a => ram_block1a18.PORTAWE +wren_a => ram_block1a19.PORTAWE +wren_a => ram_block1a20.PORTAWE +wren_a => ram_block1a21.PORTAWE +wren_a => ram_block1a22.PORTAWE +wren_a => ram_block1a23.PORTAWE +wren_a => ram_block1a24.PORTAWE +wren_a => ram_block1a25.PORTAWE +wren_a => ram_block1a26.PORTAWE +wren_a => ram_block1a27.PORTAWE +wren_a => ram_block1a28.PORTAWE +wren_a => ram_block1a29.PORTAWE +wren_a => ram_block1a30.PORTAWE +wren_a => ram_block1a31.PORTAWE + + +|lights|nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_register_bank_b_module:nios_system_nios2_processor_register_bank_b +clock => clock.IN1 +data[0] => data[0].IN1 +data[1] => data[1].IN1 +data[2] => data[2].IN1 +data[3] => data[3].IN1 +data[4] => data[4].IN1 +data[5] => data[5].IN1 +data[6] => data[6].IN1 +data[7] => data[7].IN1 +data[8] => data[8].IN1 +data[9] => data[9].IN1 +data[10] => data[10].IN1 +data[11] => data[11].IN1 +data[12] => data[12].IN1 +data[13] => data[13].IN1 +data[14] => data[14].IN1 +data[15] => data[15].IN1 +data[16] => data[16].IN1 +data[17] => data[17].IN1 +data[18] => data[18].IN1 +data[19] => data[19].IN1 +data[20] => data[20].IN1 +data[21] => data[21].IN1 +data[22] => data[22].IN1 +data[23] => data[23].IN1 +data[24] => data[24].IN1 +data[25] => data[25].IN1 +data[26] => data[26].IN1 +data[27] => data[27].IN1 +data[28] => data[28].IN1 +data[29] => data[29].IN1 +data[30] => data[30].IN1 +data[31] => data[31].IN1 +rdaddress[0] => rdaddress[0].IN1 +rdaddress[1] => rdaddress[1].IN1 +rdaddress[2] => rdaddress[2].IN1 +rdaddress[3] => rdaddress[3].IN1 +rdaddress[4] => rdaddress[4].IN1 +wraddress[0] => wraddress[0].IN1 +wraddress[1] => wraddress[1].IN1 +wraddress[2] => wraddress[2].IN1 +wraddress[3] => wraddress[3].IN1 +wraddress[4] => wraddress[4].IN1 +wren => wren.IN1 +q[0] <= altsyncram:the_altsyncram.q_b +q[1] <= altsyncram:the_altsyncram.q_b +q[2] <= altsyncram:the_altsyncram.q_b +q[3] <= altsyncram:the_altsyncram.q_b +q[4] <= altsyncram:the_altsyncram.q_b +q[5] <= altsyncram:the_altsyncram.q_b +q[6] <= altsyncram:the_altsyncram.q_b +q[7] <= altsyncram:the_altsyncram.q_b +q[8] <= altsyncram:the_altsyncram.q_b +q[9] <= altsyncram:the_altsyncram.q_b +q[10] <= altsyncram:the_altsyncram.q_b +q[11] <= altsyncram:the_altsyncram.q_b +q[12] <= altsyncram:the_altsyncram.q_b +q[13] <= altsyncram:the_altsyncram.q_b +q[14] <= altsyncram:the_altsyncram.q_b +q[15] <= altsyncram:the_altsyncram.q_b +q[16] <= altsyncram:the_altsyncram.q_b +q[17] <= altsyncram:the_altsyncram.q_b +q[18] <= altsyncram:the_altsyncram.q_b +q[19] <= altsyncram:the_altsyncram.q_b +q[20] <= altsyncram:the_altsyncram.q_b +q[21] <= altsyncram:the_altsyncram.q_b +q[22] <= altsyncram:the_altsyncram.q_b +q[23] <= altsyncram:the_altsyncram.q_b +q[24] <= altsyncram:the_altsyncram.q_b +q[25] <= altsyncram:the_altsyncram.q_b +q[26] <= altsyncram:the_altsyncram.q_b +q[27] <= altsyncram:the_altsyncram.q_b +q[28] <= altsyncram:the_altsyncram.q_b +q[29] <= altsyncram:the_altsyncram.q_b +q[30] <= altsyncram:the_altsyncram.q_b +q[31] <= altsyncram:the_altsyncram.q_b + + +|lights|nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_register_bank_b_module:nios_system_nios2_processor_register_bank_b|altsyncram:the_altsyncram +wren_a => altsyncram_1rh1:auto_generated.wren_a +rden_a => ~NO_FANOUT~ +wren_b => ~NO_FANOUT~ +rden_b => ~NO_FANOUT~ +data_a[0] => altsyncram_1rh1:auto_generated.data_a[0] +data_a[1] => altsyncram_1rh1:auto_generated.data_a[1] +data_a[2] => altsyncram_1rh1:auto_generated.data_a[2] +data_a[3] => altsyncram_1rh1:auto_generated.data_a[3] +data_a[4] => altsyncram_1rh1:auto_generated.data_a[4] +data_a[5] => altsyncram_1rh1:auto_generated.data_a[5] +data_a[6] => altsyncram_1rh1:auto_generated.data_a[6] +data_a[7] => altsyncram_1rh1:auto_generated.data_a[7] +data_a[8] => altsyncram_1rh1:auto_generated.data_a[8] +data_a[9] => altsyncram_1rh1:auto_generated.data_a[9] +data_a[10] => altsyncram_1rh1:auto_generated.data_a[10] +data_a[11] => altsyncram_1rh1:auto_generated.data_a[11] +data_a[12] => altsyncram_1rh1:auto_generated.data_a[12] +data_a[13] => altsyncram_1rh1:auto_generated.data_a[13] +data_a[14] => altsyncram_1rh1:auto_generated.data_a[14] +data_a[15] => altsyncram_1rh1:auto_generated.data_a[15] +data_a[16] => altsyncram_1rh1:auto_generated.data_a[16] +data_a[17] => altsyncram_1rh1:auto_generated.data_a[17] +data_a[18] => altsyncram_1rh1:auto_generated.data_a[18] +data_a[19] => altsyncram_1rh1:auto_generated.data_a[19] +data_a[20] => altsyncram_1rh1:auto_generated.data_a[20] +data_a[21] => altsyncram_1rh1:auto_generated.data_a[21] +data_a[22] => altsyncram_1rh1:auto_generated.data_a[22] +data_a[23] => altsyncram_1rh1:auto_generated.data_a[23] +data_a[24] => altsyncram_1rh1:auto_generated.data_a[24] +data_a[25] => altsyncram_1rh1:auto_generated.data_a[25] +data_a[26] => altsyncram_1rh1:auto_generated.data_a[26] +data_a[27] => altsyncram_1rh1:auto_generated.data_a[27] +data_a[28] => altsyncram_1rh1:auto_generated.data_a[28] +data_a[29] => altsyncram_1rh1:auto_generated.data_a[29] +data_a[30] => altsyncram_1rh1:auto_generated.data_a[30] +data_a[31] => altsyncram_1rh1:auto_generated.data_a[31] +data_b[0] => ~NO_FANOUT~ +data_b[1] => ~NO_FANOUT~ +data_b[2] => ~NO_FANOUT~ +data_b[3] => ~NO_FANOUT~ +data_b[4] => ~NO_FANOUT~ +data_b[5] => ~NO_FANOUT~ +data_b[6] => ~NO_FANOUT~ +data_b[7] => ~NO_FANOUT~ +data_b[8] => ~NO_FANOUT~ +data_b[9] => ~NO_FANOUT~ +data_b[10] => ~NO_FANOUT~ +data_b[11] => ~NO_FANOUT~ +data_b[12] => ~NO_FANOUT~ +data_b[13] => ~NO_FANOUT~ +data_b[14] => ~NO_FANOUT~ +data_b[15] => ~NO_FANOUT~ +data_b[16] => ~NO_FANOUT~ +data_b[17] => ~NO_FANOUT~ +data_b[18] => ~NO_FANOUT~ +data_b[19] => ~NO_FANOUT~ +data_b[20] => ~NO_FANOUT~ +data_b[21] => ~NO_FANOUT~ +data_b[22] => ~NO_FANOUT~ +data_b[23] => ~NO_FANOUT~ +data_b[24] => ~NO_FANOUT~ +data_b[25] => ~NO_FANOUT~ +data_b[26] => ~NO_FANOUT~ +data_b[27] => ~NO_FANOUT~ +data_b[28] => ~NO_FANOUT~ +data_b[29] => ~NO_FANOUT~ +data_b[30] => ~NO_FANOUT~ +data_b[31] => ~NO_FANOUT~ +address_a[0] => altsyncram_1rh1:auto_generated.address_a[0] +address_a[1] => altsyncram_1rh1:auto_generated.address_a[1] +address_a[2] => altsyncram_1rh1:auto_generated.address_a[2] +address_a[3] => altsyncram_1rh1:auto_generated.address_a[3] +address_a[4] => altsyncram_1rh1:auto_generated.address_a[4] +address_b[0] => altsyncram_1rh1:auto_generated.address_b[0] +address_b[1] => altsyncram_1rh1:auto_generated.address_b[1] +address_b[2] => altsyncram_1rh1:auto_generated.address_b[2] +address_b[3] => altsyncram_1rh1:auto_generated.address_b[3] +address_b[4] => altsyncram_1rh1:auto_generated.address_b[4] +addressstall_a => ~NO_FANOUT~ +addressstall_b => ~NO_FANOUT~ +clock0 => altsyncram_1rh1:auto_generated.clock0 +clock1 => ~NO_FANOUT~ +clocken0 => ~NO_FANOUT~ +clocken1 => ~NO_FANOUT~ +clocken2 => ~NO_FANOUT~ +clocken3 => ~NO_FANOUT~ +aclr0 => ~NO_FANOUT~ +aclr1 => ~NO_FANOUT~ +byteena_a[0] => ~NO_FANOUT~ +byteena_b[0] => ~NO_FANOUT~ +q_a[0] <= +q_a[1] <= +q_a[2] <= +q_a[3] <= +q_a[4] <= +q_a[5] <= +q_a[6] <= +q_a[7] <= +q_a[8] <= +q_a[9] <= +q_a[10] <= +q_a[11] <= +q_a[12] <= +q_a[13] <= +q_a[14] <= +q_a[15] <= +q_a[16] <= +q_a[17] <= +q_a[18] <= +q_a[19] <= +q_a[20] <= +q_a[21] <= +q_a[22] <= +q_a[23] <= +q_a[24] <= +q_a[25] <= +q_a[26] <= +q_a[27] <= +q_a[28] <= +q_a[29] <= +q_a[30] <= +q_a[31] <= +q_b[0] <= altsyncram_1rh1:auto_generated.q_b[0] +q_b[1] <= altsyncram_1rh1:auto_generated.q_b[1] +q_b[2] <= altsyncram_1rh1:auto_generated.q_b[2] +q_b[3] <= altsyncram_1rh1:auto_generated.q_b[3] +q_b[4] <= altsyncram_1rh1:auto_generated.q_b[4] +q_b[5] <= altsyncram_1rh1:auto_generated.q_b[5] +q_b[6] <= altsyncram_1rh1:auto_generated.q_b[6] +q_b[7] <= altsyncram_1rh1:auto_generated.q_b[7] +q_b[8] <= altsyncram_1rh1:auto_generated.q_b[8] +q_b[9] <= altsyncram_1rh1:auto_generated.q_b[9] +q_b[10] <= altsyncram_1rh1:auto_generated.q_b[10] +q_b[11] <= altsyncram_1rh1:auto_generated.q_b[11] +q_b[12] <= altsyncram_1rh1:auto_generated.q_b[12] +q_b[13] <= altsyncram_1rh1:auto_generated.q_b[13] +q_b[14] <= altsyncram_1rh1:auto_generated.q_b[14] +q_b[15] <= altsyncram_1rh1:auto_generated.q_b[15] +q_b[16] <= altsyncram_1rh1:auto_generated.q_b[16] +q_b[17] <= altsyncram_1rh1:auto_generated.q_b[17] +q_b[18] <= altsyncram_1rh1:auto_generated.q_b[18] +q_b[19] <= altsyncram_1rh1:auto_generated.q_b[19] +q_b[20] <= altsyncram_1rh1:auto_generated.q_b[20] +q_b[21] <= altsyncram_1rh1:auto_generated.q_b[21] +q_b[22] <= altsyncram_1rh1:auto_generated.q_b[22] +q_b[23] <= altsyncram_1rh1:auto_generated.q_b[23] +q_b[24] <= altsyncram_1rh1:auto_generated.q_b[24] +q_b[25] <= altsyncram_1rh1:auto_generated.q_b[25] +q_b[26] <= altsyncram_1rh1:auto_generated.q_b[26] +q_b[27] <= altsyncram_1rh1:auto_generated.q_b[27] +q_b[28] <= altsyncram_1rh1:auto_generated.q_b[28] +q_b[29] <= altsyncram_1rh1:auto_generated.q_b[29] +q_b[30] <= altsyncram_1rh1:auto_generated.q_b[30] +q_b[31] <= altsyncram_1rh1:auto_generated.q_b[31] +eccstatus[0] <= +eccstatus[1] <= +eccstatus[2] <= + + +|lights|nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_register_bank_b_module:nios_system_nios2_processor_register_bank_b|altsyncram:the_altsyncram|altsyncram_1rh1:auto_generated +address_a[0] => ram_block1a0.PORTAADDR +address_a[0] => ram_block1a1.PORTAADDR +address_a[0] => ram_block1a2.PORTAADDR +address_a[0] => ram_block1a3.PORTAADDR +address_a[0] => ram_block1a4.PORTAADDR +address_a[0] => ram_block1a5.PORTAADDR +address_a[0] => ram_block1a6.PORTAADDR +address_a[0] => ram_block1a7.PORTAADDR +address_a[0] => ram_block1a8.PORTAADDR +address_a[0] => ram_block1a9.PORTAADDR +address_a[0] => ram_block1a10.PORTAADDR +address_a[0] => ram_block1a11.PORTAADDR +address_a[0] => ram_block1a12.PORTAADDR +address_a[0] => ram_block1a13.PORTAADDR +address_a[0] => ram_block1a14.PORTAADDR +address_a[0] => ram_block1a15.PORTAADDR +address_a[0] => ram_block1a16.PORTAADDR +address_a[0] => ram_block1a17.PORTAADDR +address_a[0] => ram_block1a18.PORTAADDR +address_a[0] => ram_block1a19.PORTAADDR +address_a[0] => ram_block1a20.PORTAADDR +address_a[0] => ram_block1a21.PORTAADDR +address_a[0] => ram_block1a22.PORTAADDR +address_a[0] => ram_block1a23.PORTAADDR +address_a[0] => ram_block1a24.PORTAADDR +address_a[0] => ram_block1a25.PORTAADDR +address_a[0] => ram_block1a26.PORTAADDR +address_a[0] => ram_block1a27.PORTAADDR +address_a[0] => ram_block1a28.PORTAADDR +address_a[0] => ram_block1a29.PORTAADDR +address_a[0] => ram_block1a30.PORTAADDR +address_a[0] => ram_block1a31.PORTAADDR +address_a[1] => ram_block1a0.PORTAADDR1 +address_a[1] => ram_block1a1.PORTAADDR1 +address_a[1] => ram_block1a2.PORTAADDR1 +address_a[1] => ram_block1a3.PORTAADDR1 +address_a[1] => ram_block1a4.PORTAADDR1 +address_a[1] => ram_block1a5.PORTAADDR1 +address_a[1] => ram_block1a6.PORTAADDR1 +address_a[1] => ram_block1a7.PORTAADDR1 +address_a[1] => ram_block1a8.PORTAADDR1 +address_a[1] => ram_block1a9.PORTAADDR1 +address_a[1] => ram_block1a10.PORTAADDR1 +address_a[1] => ram_block1a11.PORTAADDR1 +address_a[1] => ram_block1a12.PORTAADDR1 +address_a[1] => ram_block1a13.PORTAADDR1 +address_a[1] => ram_block1a14.PORTAADDR1 +address_a[1] => ram_block1a15.PORTAADDR1 +address_a[1] => ram_block1a16.PORTAADDR1 +address_a[1] => ram_block1a17.PORTAADDR1 +address_a[1] => ram_block1a18.PORTAADDR1 +address_a[1] => ram_block1a19.PORTAADDR1 +address_a[1] => ram_block1a20.PORTAADDR1 +address_a[1] => ram_block1a21.PORTAADDR1 +address_a[1] => ram_block1a22.PORTAADDR1 +address_a[1] => ram_block1a23.PORTAADDR1 +address_a[1] => ram_block1a24.PORTAADDR1 +address_a[1] => ram_block1a25.PORTAADDR1 +address_a[1] => ram_block1a26.PORTAADDR1 +address_a[1] => ram_block1a27.PORTAADDR1 +address_a[1] => ram_block1a28.PORTAADDR1 +address_a[1] => ram_block1a29.PORTAADDR1 +address_a[1] => ram_block1a30.PORTAADDR1 +address_a[1] => ram_block1a31.PORTAADDR1 +address_a[2] => ram_block1a0.PORTAADDR2 +address_a[2] => ram_block1a1.PORTAADDR2 +address_a[2] => ram_block1a2.PORTAADDR2 +address_a[2] => ram_block1a3.PORTAADDR2 +address_a[2] => ram_block1a4.PORTAADDR2 +address_a[2] => ram_block1a5.PORTAADDR2 +address_a[2] => ram_block1a6.PORTAADDR2 +address_a[2] => ram_block1a7.PORTAADDR2 +address_a[2] => ram_block1a8.PORTAADDR2 +address_a[2] => ram_block1a9.PORTAADDR2 +address_a[2] => ram_block1a10.PORTAADDR2 +address_a[2] => ram_block1a11.PORTAADDR2 +address_a[2] => ram_block1a12.PORTAADDR2 +address_a[2] => ram_block1a13.PORTAADDR2 +address_a[2] => ram_block1a14.PORTAADDR2 +address_a[2] => ram_block1a15.PORTAADDR2 +address_a[2] => ram_block1a16.PORTAADDR2 +address_a[2] => ram_block1a17.PORTAADDR2 +address_a[2] => ram_block1a18.PORTAADDR2 +address_a[2] => ram_block1a19.PORTAADDR2 +address_a[2] => ram_block1a20.PORTAADDR2 +address_a[2] => ram_block1a21.PORTAADDR2 +address_a[2] => ram_block1a22.PORTAADDR2 +address_a[2] => ram_block1a23.PORTAADDR2 +address_a[2] => ram_block1a24.PORTAADDR2 +address_a[2] => ram_block1a25.PORTAADDR2 +address_a[2] => ram_block1a26.PORTAADDR2 +address_a[2] => ram_block1a27.PORTAADDR2 +address_a[2] => ram_block1a28.PORTAADDR2 +address_a[2] => ram_block1a29.PORTAADDR2 +address_a[2] => ram_block1a30.PORTAADDR2 +address_a[2] => ram_block1a31.PORTAADDR2 +address_a[3] => ram_block1a0.PORTAADDR3 +address_a[3] => ram_block1a1.PORTAADDR3 +address_a[3] => ram_block1a2.PORTAADDR3 +address_a[3] => ram_block1a3.PORTAADDR3 +address_a[3] => ram_block1a4.PORTAADDR3 +address_a[3] => ram_block1a5.PORTAADDR3 +address_a[3] => ram_block1a6.PORTAADDR3 +address_a[3] => ram_block1a7.PORTAADDR3 +address_a[3] => ram_block1a8.PORTAADDR3 +address_a[3] => ram_block1a9.PORTAADDR3 +address_a[3] => ram_block1a10.PORTAADDR3 +address_a[3] => ram_block1a11.PORTAADDR3 +address_a[3] => ram_block1a12.PORTAADDR3 +address_a[3] => ram_block1a13.PORTAADDR3 +address_a[3] => ram_block1a14.PORTAADDR3 +address_a[3] => ram_block1a15.PORTAADDR3 +address_a[3] => ram_block1a16.PORTAADDR3 +address_a[3] => ram_block1a17.PORTAADDR3 +address_a[3] => ram_block1a18.PORTAADDR3 +address_a[3] => ram_block1a19.PORTAADDR3 +address_a[3] => ram_block1a20.PORTAADDR3 +address_a[3] => ram_block1a21.PORTAADDR3 +address_a[3] => ram_block1a22.PORTAADDR3 +address_a[3] => ram_block1a23.PORTAADDR3 +address_a[3] => ram_block1a24.PORTAADDR3 +address_a[3] => ram_block1a25.PORTAADDR3 +address_a[3] => ram_block1a26.PORTAADDR3 +address_a[3] => ram_block1a27.PORTAADDR3 +address_a[3] => ram_block1a28.PORTAADDR3 +address_a[3] => ram_block1a29.PORTAADDR3 +address_a[3] => ram_block1a30.PORTAADDR3 +address_a[3] => ram_block1a31.PORTAADDR3 +address_a[4] => ram_block1a0.PORTAADDR4 +address_a[4] => ram_block1a1.PORTAADDR4 +address_a[4] => ram_block1a2.PORTAADDR4 +address_a[4] => ram_block1a3.PORTAADDR4 +address_a[4] => ram_block1a4.PORTAADDR4 +address_a[4] => ram_block1a5.PORTAADDR4 +address_a[4] => ram_block1a6.PORTAADDR4 +address_a[4] => ram_block1a7.PORTAADDR4 +address_a[4] => ram_block1a8.PORTAADDR4 +address_a[4] => ram_block1a9.PORTAADDR4 +address_a[4] => ram_block1a10.PORTAADDR4 +address_a[4] => ram_block1a11.PORTAADDR4 +address_a[4] => ram_block1a12.PORTAADDR4 +address_a[4] => ram_block1a13.PORTAADDR4 +address_a[4] => ram_block1a14.PORTAADDR4 +address_a[4] => ram_block1a15.PORTAADDR4 +address_a[4] => ram_block1a16.PORTAADDR4 +address_a[4] => ram_block1a17.PORTAADDR4 +address_a[4] => ram_block1a18.PORTAADDR4 +address_a[4] => ram_block1a19.PORTAADDR4 +address_a[4] => ram_block1a20.PORTAADDR4 +address_a[4] => ram_block1a21.PORTAADDR4 +address_a[4] => ram_block1a22.PORTAADDR4 +address_a[4] => ram_block1a23.PORTAADDR4 +address_a[4] => ram_block1a24.PORTAADDR4 +address_a[4] => ram_block1a25.PORTAADDR4 +address_a[4] => ram_block1a26.PORTAADDR4 +address_a[4] => ram_block1a27.PORTAADDR4 +address_a[4] => ram_block1a28.PORTAADDR4 +address_a[4] => ram_block1a29.PORTAADDR4 +address_a[4] => ram_block1a30.PORTAADDR4 +address_a[4] => ram_block1a31.PORTAADDR4 +address_b[0] => ram_block1a0.PORTBADDR +address_b[0] => ram_block1a1.PORTBADDR +address_b[0] => ram_block1a2.PORTBADDR +address_b[0] => ram_block1a3.PORTBADDR +address_b[0] => ram_block1a4.PORTBADDR +address_b[0] => ram_block1a5.PORTBADDR +address_b[0] => ram_block1a6.PORTBADDR +address_b[0] => ram_block1a7.PORTBADDR +address_b[0] => ram_block1a8.PORTBADDR +address_b[0] => ram_block1a9.PORTBADDR +address_b[0] => ram_block1a10.PORTBADDR +address_b[0] => ram_block1a11.PORTBADDR +address_b[0] => ram_block1a12.PORTBADDR +address_b[0] => ram_block1a13.PORTBADDR +address_b[0] => ram_block1a14.PORTBADDR +address_b[0] => ram_block1a15.PORTBADDR +address_b[0] => ram_block1a16.PORTBADDR +address_b[0] => ram_block1a17.PORTBADDR +address_b[0] => ram_block1a18.PORTBADDR +address_b[0] => ram_block1a19.PORTBADDR +address_b[0] => ram_block1a20.PORTBADDR +address_b[0] => ram_block1a21.PORTBADDR +address_b[0] => ram_block1a22.PORTBADDR +address_b[0] => ram_block1a23.PORTBADDR +address_b[0] => ram_block1a24.PORTBADDR +address_b[0] => ram_block1a25.PORTBADDR +address_b[0] => ram_block1a26.PORTBADDR +address_b[0] => ram_block1a27.PORTBADDR +address_b[0] => ram_block1a28.PORTBADDR +address_b[0] => ram_block1a29.PORTBADDR +address_b[0] => ram_block1a30.PORTBADDR +address_b[0] => ram_block1a31.PORTBADDR +address_b[1] => ram_block1a0.PORTBADDR1 +address_b[1] => ram_block1a1.PORTBADDR1 +address_b[1] => ram_block1a2.PORTBADDR1 +address_b[1] => ram_block1a3.PORTBADDR1 +address_b[1] => ram_block1a4.PORTBADDR1 +address_b[1] => ram_block1a5.PORTBADDR1 +address_b[1] => ram_block1a6.PORTBADDR1 +address_b[1] => ram_block1a7.PORTBADDR1 +address_b[1] => ram_block1a8.PORTBADDR1 +address_b[1] => ram_block1a9.PORTBADDR1 +address_b[1] => ram_block1a10.PORTBADDR1 +address_b[1] => ram_block1a11.PORTBADDR1 +address_b[1] => ram_block1a12.PORTBADDR1 +address_b[1] => ram_block1a13.PORTBADDR1 +address_b[1] => ram_block1a14.PORTBADDR1 +address_b[1] => ram_block1a15.PORTBADDR1 +address_b[1] => ram_block1a16.PORTBADDR1 +address_b[1] => ram_block1a17.PORTBADDR1 +address_b[1] => ram_block1a18.PORTBADDR1 +address_b[1] => ram_block1a19.PORTBADDR1 +address_b[1] => ram_block1a20.PORTBADDR1 +address_b[1] => ram_block1a21.PORTBADDR1 +address_b[1] => ram_block1a22.PORTBADDR1 +address_b[1] => ram_block1a23.PORTBADDR1 +address_b[1] => ram_block1a24.PORTBADDR1 +address_b[1] => ram_block1a25.PORTBADDR1 +address_b[1] => ram_block1a26.PORTBADDR1 +address_b[1] => ram_block1a27.PORTBADDR1 +address_b[1] => ram_block1a28.PORTBADDR1 +address_b[1] => ram_block1a29.PORTBADDR1 +address_b[1] => ram_block1a30.PORTBADDR1 +address_b[1] => ram_block1a31.PORTBADDR1 +address_b[2] => ram_block1a0.PORTBADDR2 +address_b[2] => ram_block1a1.PORTBADDR2 +address_b[2] => ram_block1a2.PORTBADDR2 +address_b[2] => ram_block1a3.PORTBADDR2 +address_b[2] => ram_block1a4.PORTBADDR2 +address_b[2] => ram_block1a5.PORTBADDR2 +address_b[2] => ram_block1a6.PORTBADDR2 +address_b[2] => ram_block1a7.PORTBADDR2 +address_b[2] => ram_block1a8.PORTBADDR2 +address_b[2] => ram_block1a9.PORTBADDR2 +address_b[2] => ram_block1a10.PORTBADDR2 +address_b[2] => ram_block1a11.PORTBADDR2 +address_b[2] => ram_block1a12.PORTBADDR2 +address_b[2] => ram_block1a13.PORTBADDR2 +address_b[2] => ram_block1a14.PORTBADDR2 +address_b[2] => ram_block1a15.PORTBADDR2 +address_b[2] => ram_block1a16.PORTBADDR2 +address_b[2] => ram_block1a17.PORTBADDR2 +address_b[2] => ram_block1a18.PORTBADDR2 +address_b[2] => ram_block1a19.PORTBADDR2 +address_b[2] => ram_block1a20.PORTBADDR2 +address_b[2] => ram_block1a21.PORTBADDR2 +address_b[2] => ram_block1a22.PORTBADDR2 +address_b[2] => ram_block1a23.PORTBADDR2 +address_b[2] => ram_block1a24.PORTBADDR2 +address_b[2] => ram_block1a25.PORTBADDR2 +address_b[2] => ram_block1a26.PORTBADDR2 +address_b[2] => ram_block1a27.PORTBADDR2 +address_b[2] => ram_block1a28.PORTBADDR2 +address_b[2] => ram_block1a29.PORTBADDR2 +address_b[2] => ram_block1a30.PORTBADDR2 +address_b[2] => ram_block1a31.PORTBADDR2 +address_b[3] => ram_block1a0.PORTBADDR3 +address_b[3] => ram_block1a1.PORTBADDR3 +address_b[3] => ram_block1a2.PORTBADDR3 +address_b[3] => ram_block1a3.PORTBADDR3 +address_b[3] => ram_block1a4.PORTBADDR3 +address_b[3] => ram_block1a5.PORTBADDR3 +address_b[3] => ram_block1a6.PORTBADDR3 +address_b[3] => ram_block1a7.PORTBADDR3 +address_b[3] => ram_block1a8.PORTBADDR3 +address_b[3] => ram_block1a9.PORTBADDR3 +address_b[3] => ram_block1a10.PORTBADDR3 +address_b[3] => ram_block1a11.PORTBADDR3 +address_b[3] => ram_block1a12.PORTBADDR3 +address_b[3] => ram_block1a13.PORTBADDR3 +address_b[3] => ram_block1a14.PORTBADDR3 +address_b[3] => ram_block1a15.PORTBADDR3 +address_b[3] => ram_block1a16.PORTBADDR3 +address_b[3] => ram_block1a17.PORTBADDR3 +address_b[3] => ram_block1a18.PORTBADDR3 +address_b[3] => ram_block1a19.PORTBADDR3 +address_b[3] => ram_block1a20.PORTBADDR3 +address_b[3] => ram_block1a21.PORTBADDR3 +address_b[3] => ram_block1a22.PORTBADDR3 +address_b[3] => ram_block1a23.PORTBADDR3 +address_b[3] => ram_block1a24.PORTBADDR3 +address_b[3] => ram_block1a25.PORTBADDR3 +address_b[3] => ram_block1a26.PORTBADDR3 +address_b[3] => ram_block1a27.PORTBADDR3 +address_b[3] => ram_block1a28.PORTBADDR3 +address_b[3] => ram_block1a29.PORTBADDR3 +address_b[3] => ram_block1a30.PORTBADDR3 +address_b[3] => ram_block1a31.PORTBADDR3 +address_b[4] => ram_block1a0.PORTBADDR4 +address_b[4] => ram_block1a1.PORTBADDR4 +address_b[4] => ram_block1a2.PORTBADDR4 +address_b[4] => ram_block1a3.PORTBADDR4 +address_b[4] => ram_block1a4.PORTBADDR4 +address_b[4] => ram_block1a5.PORTBADDR4 +address_b[4] => ram_block1a6.PORTBADDR4 +address_b[4] => ram_block1a7.PORTBADDR4 +address_b[4] => ram_block1a8.PORTBADDR4 +address_b[4] => ram_block1a9.PORTBADDR4 +address_b[4] => ram_block1a10.PORTBADDR4 +address_b[4] => ram_block1a11.PORTBADDR4 +address_b[4] => ram_block1a12.PORTBADDR4 +address_b[4] => ram_block1a13.PORTBADDR4 +address_b[4] => ram_block1a14.PORTBADDR4 +address_b[4] => ram_block1a15.PORTBADDR4 +address_b[4] => ram_block1a16.PORTBADDR4 +address_b[4] => ram_block1a17.PORTBADDR4 +address_b[4] => ram_block1a18.PORTBADDR4 +address_b[4] => ram_block1a19.PORTBADDR4 +address_b[4] => ram_block1a20.PORTBADDR4 +address_b[4] => ram_block1a21.PORTBADDR4 +address_b[4] => ram_block1a22.PORTBADDR4 +address_b[4] => ram_block1a23.PORTBADDR4 +address_b[4] => ram_block1a24.PORTBADDR4 +address_b[4] => ram_block1a25.PORTBADDR4 +address_b[4] => ram_block1a26.PORTBADDR4 +address_b[4] => ram_block1a27.PORTBADDR4 +address_b[4] => ram_block1a28.PORTBADDR4 +address_b[4] => ram_block1a29.PORTBADDR4 +address_b[4] => ram_block1a30.PORTBADDR4 +address_b[4] => ram_block1a31.PORTBADDR4 +clock0 => ram_block1a0.CLK0 +clock0 => ram_block1a1.CLK0 +clock0 => ram_block1a2.CLK0 +clock0 => ram_block1a3.CLK0 +clock0 => ram_block1a4.CLK0 +clock0 => ram_block1a5.CLK0 +clock0 => ram_block1a6.CLK0 +clock0 => ram_block1a7.CLK0 +clock0 => ram_block1a8.CLK0 +clock0 => ram_block1a9.CLK0 +clock0 => ram_block1a10.CLK0 +clock0 => ram_block1a11.CLK0 +clock0 => ram_block1a12.CLK0 +clock0 => ram_block1a13.CLK0 +clock0 => ram_block1a14.CLK0 +clock0 => ram_block1a15.CLK0 +clock0 => ram_block1a16.CLK0 +clock0 => ram_block1a17.CLK0 +clock0 => ram_block1a18.CLK0 +clock0 => ram_block1a19.CLK0 +clock0 => ram_block1a20.CLK0 +clock0 => ram_block1a21.CLK0 +clock0 => ram_block1a22.CLK0 +clock0 => ram_block1a23.CLK0 +clock0 => ram_block1a24.CLK0 +clock0 => ram_block1a25.CLK0 +clock0 => ram_block1a26.CLK0 +clock0 => ram_block1a27.CLK0 +clock0 => ram_block1a28.CLK0 +clock0 => ram_block1a29.CLK0 +clock0 => ram_block1a30.CLK0 +clock0 => ram_block1a31.CLK0 +data_a[0] => ram_block1a0.PORTADATAIN +data_a[1] => ram_block1a1.PORTADATAIN +data_a[2] => ram_block1a2.PORTADATAIN +data_a[3] => ram_block1a3.PORTADATAIN +data_a[4] => ram_block1a4.PORTADATAIN +data_a[5] => ram_block1a5.PORTADATAIN +data_a[6] => ram_block1a6.PORTADATAIN +data_a[7] => ram_block1a7.PORTADATAIN +data_a[8] => ram_block1a8.PORTADATAIN +data_a[9] => ram_block1a9.PORTADATAIN +data_a[10] => ram_block1a10.PORTADATAIN +data_a[11] => ram_block1a11.PORTADATAIN +data_a[12] => ram_block1a12.PORTADATAIN +data_a[13] => ram_block1a13.PORTADATAIN +data_a[14] => ram_block1a14.PORTADATAIN +data_a[15] => ram_block1a15.PORTADATAIN +data_a[16] => ram_block1a16.PORTADATAIN +data_a[17] => ram_block1a17.PORTADATAIN +data_a[18] => ram_block1a18.PORTADATAIN +data_a[19] => ram_block1a19.PORTADATAIN +data_a[20] => ram_block1a20.PORTADATAIN +data_a[21] => ram_block1a21.PORTADATAIN +data_a[22] => ram_block1a22.PORTADATAIN +data_a[23] => ram_block1a23.PORTADATAIN +data_a[24] => ram_block1a24.PORTADATAIN +data_a[25] => ram_block1a25.PORTADATAIN +data_a[26] => ram_block1a26.PORTADATAIN +data_a[27] => ram_block1a27.PORTADATAIN +data_a[28] => ram_block1a28.PORTADATAIN +data_a[29] => ram_block1a29.PORTADATAIN +data_a[30] => ram_block1a30.PORTADATAIN +data_a[31] => ram_block1a31.PORTADATAIN +q_b[0] <= ram_block1a0.PORTBDATAOUT +q_b[1] <= ram_block1a1.PORTBDATAOUT +q_b[2] <= ram_block1a2.PORTBDATAOUT +q_b[3] <= ram_block1a3.PORTBDATAOUT +q_b[4] <= ram_block1a4.PORTBDATAOUT +q_b[5] <= ram_block1a5.PORTBDATAOUT +q_b[6] <= ram_block1a6.PORTBDATAOUT +q_b[7] <= ram_block1a7.PORTBDATAOUT +q_b[8] <= ram_block1a8.PORTBDATAOUT +q_b[9] <= ram_block1a9.PORTBDATAOUT +q_b[10] <= ram_block1a10.PORTBDATAOUT +q_b[11] <= ram_block1a11.PORTBDATAOUT +q_b[12] <= ram_block1a12.PORTBDATAOUT +q_b[13] <= ram_block1a13.PORTBDATAOUT +q_b[14] <= ram_block1a14.PORTBDATAOUT +q_b[15] <= ram_block1a15.PORTBDATAOUT +q_b[16] <= ram_block1a16.PORTBDATAOUT +q_b[17] <= ram_block1a17.PORTBDATAOUT +q_b[18] <= ram_block1a18.PORTBDATAOUT +q_b[19] <= ram_block1a19.PORTBDATAOUT +q_b[20] <= ram_block1a20.PORTBDATAOUT +q_b[21] <= ram_block1a21.PORTBDATAOUT +q_b[22] <= ram_block1a22.PORTBDATAOUT +q_b[23] <= ram_block1a23.PORTBDATAOUT +q_b[24] <= ram_block1a24.PORTBDATAOUT +q_b[25] <= ram_block1a25.PORTBDATAOUT +q_b[26] <= ram_block1a26.PORTBDATAOUT +q_b[27] <= ram_block1a27.PORTBDATAOUT +q_b[28] <= ram_block1a28.PORTBDATAOUT +q_b[29] <= ram_block1a29.PORTBDATAOUT +q_b[30] <= ram_block1a30.PORTBDATAOUT +q_b[31] <= ram_block1a31.PORTBDATAOUT +wren_a => ram_block1a0.PORTAWE +wren_a => ram_block1a1.PORTAWE +wren_a => ram_block1a2.PORTAWE +wren_a => ram_block1a3.PORTAWE +wren_a => ram_block1a4.PORTAWE +wren_a => ram_block1a5.PORTAWE +wren_a => ram_block1a6.PORTAWE +wren_a => ram_block1a7.PORTAWE +wren_a => ram_block1a8.PORTAWE +wren_a => ram_block1a9.PORTAWE +wren_a => ram_block1a10.PORTAWE +wren_a => ram_block1a11.PORTAWE +wren_a => ram_block1a12.PORTAWE +wren_a => ram_block1a13.PORTAWE +wren_a => ram_block1a14.PORTAWE +wren_a => ram_block1a15.PORTAWE +wren_a => ram_block1a16.PORTAWE +wren_a => ram_block1a17.PORTAWE +wren_a => ram_block1a18.PORTAWE +wren_a => ram_block1a19.PORTAWE +wren_a => ram_block1a20.PORTAWE +wren_a => ram_block1a21.PORTAWE +wren_a => ram_block1a22.PORTAWE +wren_a => ram_block1a23.PORTAWE +wren_a => ram_block1a24.PORTAWE +wren_a => ram_block1a25.PORTAWE +wren_a => ram_block1a26.PORTAWE +wren_a => ram_block1a27.PORTAWE +wren_a => ram_block1a28.PORTAWE +wren_a => ram_block1a29.PORTAWE +wren_a => ram_block1a30.PORTAWE +wren_a => ram_block1a31.PORTAWE + + +|lights|nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci +D_valid => D_valid.IN1 +E_st_data[0] => E_st_data[0].IN1 +E_st_data[1] => E_st_data[1].IN1 +E_st_data[2] => E_st_data[2].IN1 +E_st_data[3] => E_st_data[3].IN1 +E_st_data[4] => E_st_data[4].IN1 +E_st_data[5] => E_st_data[5].IN1 +E_st_data[6] => E_st_data[6].IN1 +E_st_data[7] => E_st_data[7].IN1 +E_st_data[8] => E_st_data[8].IN1 +E_st_data[9] => E_st_data[9].IN1 +E_st_data[10] => E_st_data[10].IN1 +E_st_data[11] => E_st_data[11].IN1 +E_st_data[12] => E_st_data[12].IN1 +E_st_data[13] => E_st_data[13].IN1 +E_st_data[14] => E_st_data[14].IN1 +E_st_data[15] => E_st_data[15].IN1 +E_st_data[16] => E_st_data[16].IN1 +E_st_data[17] => E_st_data[17].IN1 +E_st_data[18] => E_st_data[18].IN1 +E_st_data[19] => E_st_data[19].IN1 +E_st_data[20] => E_st_data[20].IN1 +E_st_data[21] => E_st_data[21].IN1 +E_st_data[22] => E_st_data[22].IN1 +E_st_data[23] => E_st_data[23].IN1 +E_st_data[24] => E_st_data[24].IN1 +E_st_data[25] => E_st_data[25].IN1 +E_st_data[26] => E_st_data[26].IN1 +E_st_data[27] => E_st_data[27].IN1 +E_st_data[28] => E_st_data[28].IN1 +E_st_data[29] => E_st_data[29].IN1 +E_st_data[30] => E_st_data[30].IN1 +E_st_data[31] => E_st_data[31].IN1 +E_valid => E_valid.IN1 +F_pc[0] => F_pc[0].IN1 +F_pc[1] => F_pc[1].IN1 +F_pc[2] => F_pc[2].IN1 +F_pc[3] => F_pc[3].IN1 +F_pc[4] => F_pc[4].IN1 +F_pc[5] => F_pc[5].IN1 +F_pc[6] => F_pc[6].IN1 +F_pc[7] => F_pc[7].IN1 +F_pc[8] => F_pc[8].IN1 +F_pc[9] => F_pc[9].IN1 +F_pc[10] => F_pc[10].IN1 +F_pc[11] => F_pc[11].IN1 +F_pc[12] => F_pc[12].IN1 +F_pc[13] => F_pc[13].IN1 +F_pc[14] => F_pc[14].IN1 +F_pc[15] => F_pc[15].IN1 +F_pc[16] => F_pc[16].IN1 +address_nxt[0] => address[0].DATAIN +address_nxt[1] => address[1].DATAIN +address_nxt[2] => address[2].DATAIN +address_nxt[3] => address[3].DATAIN +address_nxt[4] => address[4].DATAIN +address_nxt[5] => address[5].DATAIN +address_nxt[6] => address[6].DATAIN +address_nxt[7] => address[7].DATAIN +address_nxt[8] => address[8].DATAIN +av_ld_data_aligned_filtered[0] => av_ld_data_aligned_filtered[0].IN1 +av_ld_data_aligned_filtered[1] => av_ld_data_aligned_filtered[1].IN1 +av_ld_data_aligned_filtered[2] => av_ld_data_aligned_filtered[2].IN1 +av_ld_data_aligned_filtered[3] => av_ld_data_aligned_filtered[3].IN1 +av_ld_data_aligned_filtered[4] => av_ld_data_aligned_filtered[4].IN1 +av_ld_data_aligned_filtered[5] => av_ld_data_aligned_filtered[5].IN1 +av_ld_data_aligned_filtered[6] => av_ld_data_aligned_filtered[6].IN1 +av_ld_data_aligned_filtered[7] => av_ld_data_aligned_filtered[7].IN1 +av_ld_data_aligned_filtered[8] => av_ld_data_aligned_filtered[8].IN1 +av_ld_data_aligned_filtered[9] => av_ld_data_aligned_filtered[9].IN1 +av_ld_data_aligned_filtered[10] => av_ld_data_aligned_filtered[10].IN1 +av_ld_data_aligned_filtered[11] => av_ld_data_aligned_filtered[11].IN1 +av_ld_data_aligned_filtered[12] => av_ld_data_aligned_filtered[12].IN1 +av_ld_data_aligned_filtered[13] => av_ld_data_aligned_filtered[13].IN1 +av_ld_data_aligned_filtered[14] => av_ld_data_aligned_filtered[14].IN1 +av_ld_data_aligned_filtered[15] => av_ld_data_aligned_filtered[15].IN1 +av_ld_data_aligned_filtered[16] => av_ld_data_aligned_filtered[16].IN1 +av_ld_data_aligned_filtered[17] => av_ld_data_aligned_filtered[17].IN1 +av_ld_data_aligned_filtered[18] => av_ld_data_aligned_filtered[18].IN1 +av_ld_data_aligned_filtered[19] => av_ld_data_aligned_filtered[19].IN1 +av_ld_data_aligned_filtered[20] => av_ld_data_aligned_filtered[20].IN1 +av_ld_data_aligned_filtered[21] => av_ld_data_aligned_filtered[21].IN1 +av_ld_data_aligned_filtered[22] => av_ld_data_aligned_filtered[22].IN1 +av_ld_data_aligned_filtered[23] => av_ld_data_aligned_filtered[23].IN1 +av_ld_data_aligned_filtered[24] => av_ld_data_aligned_filtered[24].IN1 +av_ld_data_aligned_filtered[25] => av_ld_data_aligned_filtered[25].IN1 +av_ld_data_aligned_filtered[26] => av_ld_data_aligned_filtered[26].IN1 +av_ld_data_aligned_filtered[27] => av_ld_data_aligned_filtered[27].IN1 +av_ld_data_aligned_filtered[28] => av_ld_data_aligned_filtered[28].IN1 +av_ld_data_aligned_filtered[29] => av_ld_data_aligned_filtered[29].IN1 +av_ld_data_aligned_filtered[30] => av_ld_data_aligned_filtered[30].IN1 +av_ld_data_aligned_filtered[31] => av_ld_data_aligned_filtered[31].IN1 +byteenable_nxt[0] => byteenable[0].DATAIN +byteenable_nxt[1] => byteenable[1].DATAIN +byteenable_nxt[2] => byteenable[2].DATAIN +byteenable_nxt[3] => byteenable[3].DATAIN +clk => clk.IN12 +d_address[0] => d_address[0].IN1 +d_address[1] => d_address[1].IN1 +d_address[2] => d_address[2].IN1 +d_address[3] => d_address[3].IN1 +d_address[4] => d_address[4].IN1 +d_address[5] => d_address[5].IN1 +d_address[6] => d_address[6].IN1 +d_address[7] => d_address[7].IN1 +d_address[8] => d_address[8].IN1 +d_address[9] => d_address[9].IN1 +d_address[10] => d_address[10].IN1 +d_address[11] => d_address[11].IN1 +d_address[12] => d_address[12].IN1 +d_address[13] => d_address[13].IN1 +d_address[14] => d_address[14].IN1 +d_address[15] => d_address[15].IN1 +d_address[16] => d_address[16].IN1 +d_address[17] => d_address[17].IN1 +d_address[18] => d_address[18].IN1 +d_read => d_read.IN1 +d_waitrequest => d_waitrequest.IN1 +d_write => d_write.IN1 +debugaccess_nxt => debugaccess.DATAIN +hbreak_enabled => hbreak_enabled.IN1 +read_nxt => read.DATAA +reset => reset.IN1 +reset_n => reset_n.IN7 +test_ending => test_ending.IN1 +test_has_ended => test_has_ended.IN1 +write_nxt => write.DATAA +writedata_nxt[0] => writedata[0].DATAIN +writedata_nxt[1] => writedata[1].DATAIN +writedata_nxt[2] => writedata[2].DATAIN +writedata_nxt[3] => writedata[3].DATAIN +writedata_nxt[4] => writedata[4].DATAIN +writedata_nxt[5] => writedata[5].DATAIN +writedata_nxt[6] => writedata[6].DATAIN +writedata_nxt[7] => writedata[7].DATAIN +writedata_nxt[8] => writedata[8].DATAIN +writedata_nxt[9] => writedata[9].DATAIN +writedata_nxt[10] => writedata[10].DATAIN +writedata_nxt[11] => writedata[11].DATAIN +writedata_nxt[12] => writedata[12].DATAIN +writedata_nxt[13] => writedata[13].DATAIN +writedata_nxt[14] => writedata[14].DATAIN +writedata_nxt[15] => writedata[15].DATAIN +writedata_nxt[16] => writedata[16].DATAIN +writedata_nxt[17] => writedata[17].DATAIN +writedata_nxt[18] => writedata[18].DATAIN +writedata_nxt[19] => writedata[19].DATAIN +writedata_nxt[20] => writedata[20].DATAIN +writedata_nxt[21] => writedata[21].DATAIN +writedata_nxt[22] => writedata[22].DATAIN +writedata_nxt[23] => writedata[23].DATAIN +writedata_nxt[24] => writedata[24].DATAIN +writedata_nxt[25] => writedata[25].DATAIN +writedata_nxt[26] => writedata[26].DATAIN +writedata_nxt[27] => writedata[27].DATAIN +writedata_nxt[28] => writedata[28].DATAIN +writedata_nxt[29] => writedata[29].DATAIN +writedata_nxt[30] => writedata[30].DATAIN +writedata_nxt[31] => writedata[31].DATAIN +jtag_debug_module_debugaccess_to_roms <= debugack.DB_MAX_OUTPUT_PORT_TYPE +oci_hbreak_req <= nios_system_nios2_processor_nios2_oci_debug:the_nios_system_nios2_processor_nios2_oci_debug.oci_hbreak_req +oci_ienable[0] <= nios_system_nios2_processor_nios2_avalon_reg:the_nios_system_nios2_processor_nios2_avalon_reg.oci_ienable +oci_ienable[1] <= nios_system_nios2_processor_nios2_avalon_reg:the_nios_system_nios2_processor_nios2_avalon_reg.oci_ienable +oci_ienable[2] <= nios_system_nios2_processor_nios2_avalon_reg:the_nios_system_nios2_processor_nios2_avalon_reg.oci_ienable +oci_ienable[3] <= nios_system_nios2_processor_nios2_avalon_reg:the_nios_system_nios2_processor_nios2_avalon_reg.oci_ienable +oci_ienable[4] <= nios_system_nios2_processor_nios2_avalon_reg:the_nios_system_nios2_processor_nios2_avalon_reg.oci_ienable +oci_ienable[5] <= nios_system_nios2_processor_nios2_avalon_reg:the_nios_system_nios2_processor_nios2_avalon_reg.oci_ienable +oci_ienable[6] <= nios_system_nios2_processor_nios2_avalon_reg:the_nios_system_nios2_processor_nios2_avalon_reg.oci_ienable +oci_ienable[7] <= nios_system_nios2_processor_nios2_avalon_reg:the_nios_system_nios2_processor_nios2_avalon_reg.oci_ienable +oci_ienable[8] <= nios_system_nios2_processor_nios2_avalon_reg:the_nios_system_nios2_processor_nios2_avalon_reg.oci_ienable +oci_ienable[9] <= nios_system_nios2_processor_nios2_avalon_reg:the_nios_system_nios2_processor_nios2_avalon_reg.oci_ienable +oci_ienable[10] <= nios_system_nios2_processor_nios2_avalon_reg:the_nios_system_nios2_processor_nios2_avalon_reg.oci_ienable +oci_ienable[11] <= nios_system_nios2_processor_nios2_avalon_reg:the_nios_system_nios2_processor_nios2_avalon_reg.oci_ienable +oci_ienable[12] <= nios_system_nios2_processor_nios2_avalon_reg:the_nios_system_nios2_processor_nios2_avalon_reg.oci_ienable +oci_ienable[13] <= nios_system_nios2_processor_nios2_avalon_reg:the_nios_system_nios2_processor_nios2_avalon_reg.oci_ienable +oci_ienable[14] <= nios_system_nios2_processor_nios2_avalon_reg:the_nios_system_nios2_processor_nios2_avalon_reg.oci_ienable +oci_ienable[15] <= nios_system_nios2_processor_nios2_avalon_reg:the_nios_system_nios2_processor_nios2_avalon_reg.oci_ienable +oci_ienable[16] <= nios_system_nios2_processor_nios2_avalon_reg:the_nios_system_nios2_processor_nios2_avalon_reg.oci_ienable +oci_ienable[17] <= nios_system_nios2_processor_nios2_avalon_reg:the_nios_system_nios2_processor_nios2_avalon_reg.oci_ienable +oci_ienable[18] <= nios_system_nios2_processor_nios2_avalon_reg:the_nios_system_nios2_processor_nios2_avalon_reg.oci_ienable +oci_ienable[19] <= nios_system_nios2_processor_nios2_avalon_reg:the_nios_system_nios2_processor_nios2_avalon_reg.oci_ienable +oci_ienable[20] <= nios_system_nios2_processor_nios2_avalon_reg:the_nios_system_nios2_processor_nios2_avalon_reg.oci_ienable +oci_ienable[21] <= nios_system_nios2_processor_nios2_avalon_reg:the_nios_system_nios2_processor_nios2_avalon_reg.oci_ienable +oci_ienable[22] <= nios_system_nios2_processor_nios2_avalon_reg:the_nios_system_nios2_processor_nios2_avalon_reg.oci_ienable +oci_ienable[23] <= nios_system_nios2_processor_nios2_avalon_reg:the_nios_system_nios2_processor_nios2_avalon_reg.oci_ienable +oci_ienable[24] <= nios_system_nios2_processor_nios2_avalon_reg:the_nios_system_nios2_processor_nios2_avalon_reg.oci_ienable +oci_ienable[25] <= nios_system_nios2_processor_nios2_avalon_reg:the_nios_system_nios2_processor_nios2_avalon_reg.oci_ienable +oci_ienable[26] <= nios_system_nios2_processor_nios2_avalon_reg:the_nios_system_nios2_processor_nios2_avalon_reg.oci_ienable +oci_ienable[27] <= nios_system_nios2_processor_nios2_avalon_reg:the_nios_system_nios2_processor_nios2_avalon_reg.oci_ienable +oci_ienable[28] <= nios_system_nios2_processor_nios2_avalon_reg:the_nios_system_nios2_processor_nios2_avalon_reg.oci_ienable +oci_ienable[29] <= nios_system_nios2_processor_nios2_avalon_reg:the_nios_system_nios2_processor_nios2_avalon_reg.oci_ienable +oci_ienable[30] <= nios_system_nios2_processor_nios2_avalon_reg:the_nios_system_nios2_processor_nios2_avalon_reg.oci_ienable +oci_ienable[31] <= nios_system_nios2_processor_nios2_avalon_reg:the_nios_system_nios2_processor_nios2_avalon_reg.oci_ienable +oci_single_step_mode <= nios_system_nios2_processor_nios2_avalon_reg:the_nios_system_nios2_processor_nios2_avalon_reg.oci_single_step_mode +readdata[0] <= readdata[0]~reg0.DB_MAX_OUTPUT_PORT_TYPE +readdata[1] <= readdata[1]~reg0.DB_MAX_OUTPUT_PORT_TYPE +readdata[2] <= readdata[2]~reg0.DB_MAX_OUTPUT_PORT_TYPE +readdata[3] <= readdata[3]~reg0.DB_MAX_OUTPUT_PORT_TYPE +readdata[4] <= readdata[4]~reg0.DB_MAX_OUTPUT_PORT_TYPE +readdata[5] <= readdata[5]~reg0.DB_MAX_OUTPUT_PORT_TYPE +readdata[6] <= readdata[6]~reg0.DB_MAX_OUTPUT_PORT_TYPE +readdata[7] <= readdata[7]~reg0.DB_MAX_OUTPUT_PORT_TYPE +readdata[8] <= readdata[8]~reg0.DB_MAX_OUTPUT_PORT_TYPE +readdata[9] <= readdata[9]~reg0.DB_MAX_OUTPUT_PORT_TYPE +readdata[10] <= readdata[10]~reg0.DB_MAX_OUTPUT_PORT_TYPE +readdata[11] <= readdata[11]~reg0.DB_MAX_OUTPUT_PORT_TYPE +readdata[12] <= readdata[12]~reg0.DB_MAX_OUTPUT_PORT_TYPE +readdata[13] <= readdata[13]~reg0.DB_MAX_OUTPUT_PORT_TYPE +readdata[14] <= readdata[14]~reg0.DB_MAX_OUTPUT_PORT_TYPE +readdata[15] <= readdata[15]~reg0.DB_MAX_OUTPUT_PORT_TYPE +readdata[16] <= readdata[16]~reg0.DB_MAX_OUTPUT_PORT_TYPE +readdata[17] <= readdata[17]~reg0.DB_MAX_OUTPUT_PORT_TYPE +readdata[18] <= readdata[18]~reg0.DB_MAX_OUTPUT_PORT_TYPE +readdata[19] <= readdata[19]~reg0.DB_MAX_OUTPUT_PORT_TYPE +readdata[20] <= readdata[20]~reg0.DB_MAX_OUTPUT_PORT_TYPE +readdata[21] <= readdata[21]~reg0.DB_MAX_OUTPUT_PORT_TYPE +readdata[22] <= readdata[22]~reg0.DB_MAX_OUTPUT_PORT_TYPE +readdata[23] <= readdata[23]~reg0.DB_MAX_OUTPUT_PORT_TYPE +readdata[24] <= readdata[24]~reg0.DB_MAX_OUTPUT_PORT_TYPE +readdata[25] <= readdata[25]~reg0.DB_MAX_OUTPUT_PORT_TYPE +readdata[26] <= readdata[26]~reg0.DB_MAX_OUTPUT_PORT_TYPE +readdata[27] <= readdata[27]~reg0.DB_MAX_OUTPUT_PORT_TYPE +readdata[28] <= readdata[28]~reg0.DB_MAX_OUTPUT_PORT_TYPE +readdata[29] <= readdata[29]~reg0.DB_MAX_OUTPUT_PORT_TYPE +readdata[30] <= readdata[30]~reg0.DB_MAX_OUTPUT_PORT_TYPE +readdata[31] <= readdata[31]~reg0.DB_MAX_OUTPUT_PORT_TYPE +resetrequest <= nios_system_nios2_processor_nios2_oci_debug:the_nios_system_nios2_processor_nios2_oci_debug.resetrequest +waitrequest <= nios_system_nios2_processor_nios2_ocimem:the_nios_system_nios2_processor_nios2_ocimem.waitrequest + + +|lights|nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_oci_debug:the_nios_system_nios2_processor_nios2_oci_debug +clk => clk.IN1 +dbrk_break => oci_hbreak_req.IN1 +debugreq => always0.IN0 +debugreq => oci_hbreak_req.IN1 +hbreak_enabled => always0.IN1 +hbreak_enabled => debugack.DATAIN +jdo[0] => ~NO_FANOUT~ +jdo[1] => ~NO_FANOUT~ +jdo[2] => ~NO_FANOUT~ +jdo[3] => ~NO_FANOUT~ +jdo[4] => ~NO_FANOUT~ +jdo[5] => ~NO_FANOUT~ +jdo[6] => ~NO_FANOUT~ +jdo[7] => ~NO_FANOUT~ +jdo[8] => ~NO_FANOUT~ +jdo[9] => ~NO_FANOUT~ +jdo[10] => ~NO_FANOUT~ +jdo[11] => ~NO_FANOUT~ +jdo[12] => ~NO_FANOUT~ +jdo[13] => ~NO_FANOUT~ +jdo[14] => ~NO_FANOUT~ +jdo[15] => ~NO_FANOUT~ +jdo[16] => ~NO_FANOUT~ +jdo[17] => ~NO_FANOUT~ +jdo[18] => break_on_reset.OUTPUTSELECT +jdo[19] => break_on_reset.OUTPUTSELECT +jdo[20] => jtag_break.OUTPUTSELECT +jdo[21] => jtag_break.OUTPUTSELECT +jdo[22] => resetrequest~reg0.DATAIN +jdo[23] => always1.IN0 +jdo[24] => resetlatch.OUTPUTSELECT +jdo[25] => always1.IN0 +jdo[26] => ~NO_FANOUT~ +jdo[27] => ~NO_FANOUT~ +jdo[28] => ~NO_FANOUT~ +jdo[29] => ~NO_FANOUT~ +jdo[30] => ~NO_FANOUT~ +jdo[31] => ~NO_FANOUT~ +jdo[32] => ~NO_FANOUT~ +jdo[33] => ~NO_FANOUT~ +jdo[34] => ~NO_FANOUT~ +jdo[35] => ~NO_FANOUT~ +jdo[36] => ~NO_FANOUT~ +jdo[37] => ~NO_FANOUT~ +jrst_n => unxcomplemented_resetxx0.IN1 +ocireg_ers => always1.IN0 +ocireg_mrs => always1.IN0 +reset => reset.IN1 +st_ready_test_idle => monitor_go.OUTPUTSELECT +take_action_ocimem_a => jtag_break.OUTPUTSELECT +take_action_ocimem_a => resetlatch.OUTPUTSELECT +take_action_ocimem_a => always1.IN1 +take_action_ocimem_a => always1.IN1 +take_action_ocimem_a => break_on_reset.ENA +take_action_ocimem_a => resetrequest~reg0.ENA +take_action_ocireg => always1.IN1 +take_action_ocireg => always1.IN1 +xbrk_break => oci_hbreak_req.IN1 +debugack <= hbreak_enabled.DB_MAX_OUTPUT_PORT_TYPE +monitor_error <= monitor_error~reg0.DB_MAX_OUTPUT_PORT_TYPE +monitor_go <= monitor_go~reg0.DB_MAX_OUTPUT_PORT_TYPE +monitor_ready <= monitor_ready~reg0.DB_MAX_OUTPUT_PORT_TYPE +oci_hbreak_req <= oci_hbreak_req.DB_MAX_OUTPUT_PORT_TYPE +resetlatch <= resetlatch~reg0.DB_MAX_OUTPUT_PORT_TYPE +resetrequest <= resetrequest~reg0.DB_MAX_OUTPUT_PORT_TYPE + + +|lights|nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_oci_debug:the_nios_system_nios2_processor_nios2_oci_debug|altera_std_synchronizer:the_altera_std_synchronizer +clk => dreg[0].CLK +clk => din_s1.CLK +reset_n => dreg[0].ACLR +reset_n => din_s1.ACLR +din => din_s1.DATAIN +dout <= dout.DB_MAX_OUTPUT_PORT_TYPE + + +|lights|nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_ocimem:the_nios_system_nios2_processor_nios2_ocimem +address[0] => ociram_addr.DATAA +address[1] => ociram_addr.DATAA +address[2] => ociram_addr.DATAA +address[3] => ociram_addr.DATAA +address[4] => ociram_addr.DATAA +address[5] => ociram_addr.DATAA +address[6] => ociram_addr.DATAA +address[7] => ociram_addr.DATAA +address[8] => waitrequest.IN1 +address[8] => avalon_ram_wr.IN0 +byteenable[0] => ociram_byteenable.DATAA +byteenable[1] => ociram_byteenable.DATAA +byteenable[2] => ociram_byteenable.DATAA +byteenable[3] => ociram_byteenable.DATAA +clk => clk.IN1 +debugaccess => avalon_ram_wr.IN1 +jdo[0] => ~NO_FANOUT~ +jdo[1] => ~NO_FANOUT~ +jdo[2] => ~NO_FANOUT~ +jdo[3] => MonDReg.DATAB +jdo[4] => MonDReg.DATAB +jdo[5] => MonDReg.DATAB +jdo[6] => MonDReg.DATAB +jdo[7] => MonDReg.DATAB +jdo[8] => MonDReg.DATAB +jdo[9] => MonDReg.DATAB +jdo[10] => MonDReg.DATAB +jdo[11] => MonDReg.DATAB +jdo[12] => MonDReg.DATAB +jdo[13] => MonDReg.DATAB +jdo[14] => MonDReg.DATAB +jdo[15] => MonDReg.DATAB +jdo[16] => MonDReg.DATAB +jdo[17] => MonDReg.DATAB +jdo[17] => MonAReg.DATAB +jdo[17] => jtag_ram_rd.DATAB +jdo[17] => jtag_ram_access.DATAB +jdo[18] => MonDReg.DATAB +jdo[19] => MonDReg.DATAB +jdo[20] => MonDReg.DATAB +jdo[21] => MonDReg.DATAB +jdo[22] => MonDReg.DATAB +jdo[23] => MonDReg.DATAB +jdo[24] => MonDReg.DATAB +jdo[25] => MonDReg.DATAB +jdo[26] => MonDReg.DATAB +jdo[26] => MonAReg.DATAB +jdo[27] => MonDReg.DATAB +jdo[27] => MonAReg.DATAB +jdo[28] => MonDReg.DATAB +jdo[28] => MonAReg.DATAB +jdo[29] => MonDReg.DATAB +jdo[29] => MonAReg.DATAB +jdo[30] => MonDReg.DATAB +jdo[30] => MonAReg.DATAB +jdo[31] => MonDReg.DATAB +jdo[31] => MonAReg.DATAB +jdo[32] => MonDReg.DATAB +jdo[32] => MonAReg.DATAB +jdo[33] => MonDReg.DATAB +jdo[33] => MonAReg.DATAB +jdo[34] => MonDReg.DATAB +jdo[35] => ~NO_FANOUT~ +jdo[36] => ~NO_FANOUT~ +jdo[37] => ~NO_FANOUT~ +jrst_n => avalon_ociram_readdata_ready.ACLR +jrst_n => waitrequest~reg0.PRESET +jrst_n => MonDReg[0]~reg0.ACLR +jrst_n => MonDReg[1]~reg0.ACLR +jrst_n => MonDReg[2]~reg0.ACLR +jrst_n => MonDReg[3]~reg0.ACLR +jrst_n => MonDReg[4]~reg0.ACLR +jrst_n => MonDReg[5]~reg0.ACLR +jrst_n => MonDReg[6]~reg0.ACLR +jrst_n => MonDReg[7]~reg0.ACLR +jrst_n => MonDReg[8]~reg0.ACLR +jrst_n => MonDReg[9]~reg0.ACLR +jrst_n => MonDReg[10]~reg0.ACLR +jrst_n => MonDReg[11]~reg0.ACLR +jrst_n => MonDReg[12]~reg0.ACLR +jrst_n => MonDReg[13]~reg0.ACLR +jrst_n => MonDReg[14]~reg0.ACLR +jrst_n => MonDReg[15]~reg0.ACLR +jrst_n => MonDReg[16]~reg0.ACLR +jrst_n => MonDReg[17]~reg0.ACLR +jrst_n => MonDReg[18]~reg0.ACLR +jrst_n => MonDReg[19]~reg0.ACLR +jrst_n => MonDReg[20]~reg0.ACLR +jrst_n => MonDReg[21]~reg0.ACLR +jrst_n => MonDReg[22]~reg0.ACLR +jrst_n => MonDReg[23]~reg0.ACLR +jrst_n => MonDReg[24]~reg0.ACLR +jrst_n => MonDReg[25]~reg0.ACLR +jrst_n => MonDReg[26]~reg0.ACLR +jrst_n => MonDReg[27]~reg0.ACLR +jrst_n => MonDReg[28]~reg0.ACLR +jrst_n => MonDReg[29]~reg0.ACLR +jrst_n => MonDReg[30]~reg0.ACLR +jrst_n => MonDReg[31]~reg0.ACLR +jrst_n => MonAReg[2].ACLR +jrst_n => MonAReg[3].ACLR +jrst_n => MonAReg[4].ACLR +jrst_n => MonAReg[5].ACLR +jrst_n => MonAReg[6].ACLR +jrst_n => MonAReg[7].ACLR +jrst_n => MonAReg[8].ACLR +jrst_n => MonAReg[9].ACLR +jrst_n => MonAReg[10].ACLR +jrst_n => jtag_ram_access.ACLR +jrst_n => jtag_ram_rd_d1.ACLR +jrst_n => jtag_ram_rd.ACLR +jrst_n => jtag_ram_wr.ACLR +jrst_n => jtag_rd_d1.ACLR +jrst_n => jtag_rd.ACLR +read => avalon_ociram_readdata_ready.OUTPUTSELECT +read => waitrequest.OUTPUTSELECT +take_action_ocimem_a => MonAReg.OUTPUTSELECT +take_action_ocimem_a => MonAReg.OUTPUTSELECT +take_action_ocimem_a => MonAReg.OUTPUTSELECT +take_action_ocimem_a => MonAReg.OUTPUTSELECT +take_action_ocimem_a => MonAReg.OUTPUTSELECT +take_action_ocimem_a => MonAReg.OUTPUTSELECT +take_action_ocimem_a => MonAReg.OUTPUTSELECT +take_action_ocimem_a => MonAReg.OUTPUTSELECT +take_action_ocimem_a => MonAReg.OUTPUTSELECT +take_action_ocimem_a => jtag_rd.OUTPUTSELECT +take_action_ocimem_a => jtag_ram_rd.OUTPUTSELECT +take_action_ocimem_a => jtag_ram_access.OUTPUTSELECT +take_action_ocimem_a => MonDReg.OUTPUTSELECT +take_action_ocimem_a => MonDReg.OUTPUTSELECT +take_action_ocimem_a => MonDReg.OUTPUTSELECT +take_action_ocimem_a => MonDReg.OUTPUTSELECT +take_action_ocimem_a => MonDReg.OUTPUTSELECT +take_action_ocimem_a => MonDReg.OUTPUTSELECT +take_action_ocimem_a => MonDReg.OUTPUTSELECT +take_action_ocimem_a => MonDReg.OUTPUTSELECT +take_action_ocimem_a => MonDReg.OUTPUTSELECT +take_action_ocimem_a => MonDReg.OUTPUTSELECT +take_action_ocimem_a => MonDReg.OUTPUTSELECT +take_action_ocimem_a => MonDReg.OUTPUTSELECT +take_action_ocimem_a => MonDReg.OUTPUTSELECT +take_action_ocimem_a => MonDReg.OUTPUTSELECT +take_action_ocimem_a => MonDReg.OUTPUTSELECT +take_action_ocimem_a => MonDReg.OUTPUTSELECT +take_action_ocimem_a => MonDReg.OUTPUTSELECT +take_action_ocimem_a => MonDReg.OUTPUTSELECT +take_action_ocimem_a => MonDReg.OUTPUTSELECT +take_action_ocimem_a => MonDReg.OUTPUTSELECT +take_action_ocimem_a => MonDReg.OUTPUTSELECT +take_action_ocimem_a => MonDReg.OUTPUTSELECT +take_action_ocimem_a => MonDReg.OUTPUTSELECT +take_action_ocimem_a => MonDReg.OUTPUTSELECT +take_action_ocimem_a => MonDReg.OUTPUTSELECT +take_action_ocimem_a => MonDReg.OUTPUTSELECT +take_action_ocimem_a => MonDReg.OUTPUTSELECT +take_action_ocimem_a => MonDReg.OUTPUTSELECT +take_action_ocimem_a => MonDReg.OUTPUTSELECT +take_action_ocimem_a => MonDReg.OUTPUTSELECT +take_action_ocimem_a => MonDReg.OUTPUTSELECT +take_action_ocimem_a => MonDReg.OUTPUTSELECT +take_action_ocimem_a => jtag_ram_wr.OUTPUTSELECT +take_action_ocimem_b => MonAReg.OUTPUTSELECT +take_action_ocimem_b => MonAReg.OUTPUTSELECT +take_action_ocimem_b => MonAReg.OUTPUTSELECT +take_action_ocimem_b => MonAReg.OUTPUTSELECT +take_action_ocimem_b => MonAReg.OUTPUTSELECT +take_action_ocimem_b => MonAReg.OUTPUTSELECT +take_action_ocimem_b => MonAReg.OUTPUTSELECT +take_action_ocimem_b => MonAReg.OUTPUTSELECT +take_action_ocimem_b => MonAReg.OUTPUTSELECT +take_action_ocimem_b => MonDReg.OUTPUTSELECT +take_action_ocimem_b => MonDReg.OUTPUTSELECT +take_action_ocimem_b => MonDReg.OUTPUTSELECT +take_action_ocimem_b => MonDReg.OUTPUTSELECT +take_action_ocimem_b => MonDReg.OUTPUTSELECT +take_action_ocimem_b => MonDReg.OUTPUTSELECT +take_action_ocimem_b => MonDReg.OUTPUTSELECT +take_action_ocimem_b => MonDReg.OUTPUTSELECT +take_action_ocimem_b => MonDReg.OUTPUTSELECT +take_action_ocimem_b => MonDReg.OUTPUTSELECT +take_action_ocimem_b => MonDReg.OUTPUTSELECT +take_action_ocimem_b => MonDReg.OUTPUTSELECT +take_action_ocimem_b => MonDReg.OUTPUTSELECT +take_action_ocimem_b => MonDReg.OUTPUTSELECT +take_action_ocimem_b => MonDReg.OUTPUTSELECT +take_action_ocimem_b => MonDReg.OUTPUTSELECT +take_action_ocimem_b => MonDReg.OUTPUTSELECT +take_action_ocimem_b => MonDReg.OUTPUTSELECT +take_action_ocimem_b => MonDReg.OUTPUTSELECT +take_action_ocimem_b => MonDReg.OUTPUTSELECT +take_action_ocimem_b => MonDReg.OUTPUTSELECT +take_action_ocimem_b => MonDReg.OUTPUTSELECT +take_action_ocimem_b => MonDReg.OUTPUTSELECT +take_action_ocimem_b => MonDReg.OUTPUTSELECT +take_action_ocimem_b => MonDReg.OUTPUTSELECT +take_action_ocimem_b => MonDReg.OUTPUTSELECT +take_action_ocimem_b => MonDReg.OUTPUTSELECT +take_action_ocimem_b => MonDReg.OUTPUTSELECT +take_action_ocimem_b => MonDReg.OUTPUTSELECT +take_action_ocimem_b => MonDReg.OUTPUTSELECT +take_action_ocimem_b => MonDReg.OUTPUTSELECT +take_action_ocimem_b => MonDReg.OUTPUTSELECT +take_action_ocimem_b => jtag_ram_wr.OUTPUTSELECT +take_action_ocimem_b => jtag_rd.OUTPUTSELECT +take_action_ocimem_b => jtag_ram_rd.OUTPUTSELECT +take_no_action_ocimem_a => MonAReg.OUTPUTSELECT +take_no_action_ocimem_a => MonAReg.OUTPUTSELECT +take_no_action_ocimem_a => MonAReg.OUTPUTSELECT +take_no_action_ocimem_a => MonAReg.OUTPUTSELECT +take_no_action_ocimem_a => MonAReg.OUTPUTSELECT +take_no_action_ocimem_a => MonAReg.OUTPUTSELECT +take_no_action_ocimem_a => MonAReg.OUTPUTSELECT +take_no_action_ocimem_a => MonAReg.OUTPUTSELECT +take_no_action_ocimem_a => MonAReg.OUTPUTSELECT +take_no_action_ocimem_a => jtag_rd.OUTPUTSELECT +take_no_action_ocimem_a => jtag_ram_rd.OUTPUTSELECT +take_no_action_ocimem_a => jtag_ram_access.OUTPUTSELECT +take_no_action_ocimem_a => jtag_ram_wr.ENA +take_no_action_ocimem_a => MonDReg[31]~reg0.ENA +take_no_action_ocimem_a => MonDReg[30]~reg0.ENA +take_no_action_ocimem_a => MonDReg[29]~reg0.ENA +take_no_action_ocimem_a => MonDReg[28]~reg0.ENA +take_no_action_ocimem_a => MonDReg[27]~reg0.ENA +take_no_action_ocimem_a => MonDReg[26]~reg0.ENA +take_no_action_ocimem_a => MonDReg[25]~reg0.ENA +take_no_action_ocimem_a => MonDReg[24]~reg0.ENA +take_no_action_ocimem_a => MonDReg[23]~reg0.ENA +take_no_action_ocimem_a => MonDReg[22]~reg0.ENA +take_no_action_ocimem_a => MonDReg[21]~reg0.ENA +take_no_action_ocimem_a => MonDReg[20]~reg0.ENA +take_no_action_ocimem_a => MonDReg[19]~reg0.ENA +take_no_action_ocimem_a => MonDReg[18]~reg0.ENA +take_no_action_ocimem_a => MonDReg[17]~reg0.ENA +take_no_action_ocimem_a => MonDReg[16]~reg0.ENA +take_no_action_ocimem_a => MonDReg[15]~reg0.ENA +take_no_action_ocimem_a => MonDReg[14]~reg0.ENA +take_no_action_ocimem_a => MonDReg[13]~reg0.ENA +take_no_action_ocimem_a => MonDReg[12]~reg0.ENA +take_no_action_ocimem_a => MonDReg[11]~reg0.ENA +take_no_action_ocimem_a => MonDReg[10]~reg0.ENA +take_no_action_ocimem_a => MonDReg[9]~reg0.ENA +take_no_action_ocimem_a => MonDReg[8]~reg0.ENA +take_no_action_ocimem_a => MonDReg[7]~reg0.ENA +take_no_action_ocimem_a => MonDReg[6]~reg0.ENA +take_no_action_ocimem_a => MonDReg[5]~reg0.ENA +take_no_action_ocimem_a => MonDReg[4]~reg0.ENA +take_no_action_ocimem_a => MonDReg[3]~reg0.ENA +take_no_action_ocimem_a => MonDReg[2]~reg0.ENA +take_no_action_ocimem_a => MonDReg[1]~reg0.ENA +take_no_action_ocimem_a => MonDReg[0]~reg0.ENA +write => waitrequest.OUTPUTSELECT +write => avalon_ociram_readdata_ready.OUTPUTSELECT +write => avalon_ram_wr.IN1 +writedata[0] => ociram_wr_data.DATAA +writedata[1] => ociram_wr_data.DATAA +writedata[2] => ociram_wr_data.DATAA +writedata[3] => ociram_wr_data.DATAA +writedata[4] => ociram_wr_data.DATAA +writedata[5] => ociram_wr_data.DATAA +writedata[6] => ociram_wr_data.DATAA +writedata[7] => ociram_wr_data.DATAA +writedata[8] => ociram_wr_data.DATAA +writedata[9] => ociram_wr_data.DATAA +writedata[10] => ociram_wr_data.DATAA +writedata[11] => ociram_wr_data.DATAA +writedata[12] => ociram_wr_data.DATAA +writedata[13] => ociram_wr_data.DATAA +writedata[14] => ociram_wr_data.DATAA +writedata[15] => ociram_wr_data.DATAA +writedata[16] => ociram_wr_data.DATAA +writedata[17] => ociram_wr_data.DATAA +writedata[18] => ociram_wr_data.DATAA +writedata[19] => ociram_wr_data.DATAA +writedata[20] => ociram_wr_data.DATAA +writedata[21] => ociram_wr_data.DATAA +writedata[22] => ociram_wr_data.DATAA +writedata[23] => ociram_wr_data.DATAA +writedata[24] => ociram_wr_data.DATAA +writedata[25] => ociram_wr_data.DATAA +writedata[26] => ociram_wr_data.DATAA +writedata[27] => ociram_wr_data.DATAA +writedata[28] => ociram_wr_data.DATAA +writedata[29] => ociram_wr_data.DATAA +writedata[30] => ociram_wr_data.DATAA +writedata[31] => ociram_wr_data.DATAA +MonDReg[0] <= MonDReg[0]~reg0.DB_MAX_OUTPUT_PORT_TYPE +MonDReg[1] <= MonDReg[1]~reg0.DB_MAX_OUTPUT_PORT_TYPE +MonDReg[2] <= MonDReg[2]~reg0.DB_MAX_OUTPUT_PORT_TYPE +MonDReg[3] <= MonDReg[3]~reg0.DB_MAX_OUTPUT_PORT_TYPE +MonDReg[4] <= MonDReg[4]~reg0.DB_MAX_OUTPUT_PORT_TYPE +MonDReg[5] <= MonDReg[5]~reg0.DB_MAX_OUTPUT_PORT_TYPE +MonDReg[6] <= MonDReg[6]~reg0.DB_MAX_OUTPUT_PORT_TYPE +MonDReg[7] <= MonDReg[7]~reg0.DB_MAX_OUTPUT_PORT_TYPE +MonDReg[8] <= MonDReg[8]~reg0.DB_MAX_OUTPUT_PORT_TYPE +MonDReg[9] <= MonDReg[9]~reg0.DB_MAX_OUTPUT_PORT_TYPE +MonDReg[10] <= MonDReg[10]~reg0.DB_MAX_OUTPUT_PORT_TYPE +MonDReg[11] <= MonDReg[11]~reg0.DB_MAX_OUTPUT_PORT_TYPE +MonDReg[12] <= MonDReg[12]~reg0.DB_MAX_OUTPUT_PORT_TYPE +MonDReg[13] <= MonDReg[13]~reg0.DB_MAX_OUTPUT_PORT_TYPE +MonDReg[14] <= MonDReg[14]~reg0.DB_MAX_OUTPUT_PORT_TYPE +MonDReg[15] <= MonDReg[15]~reg0.DB_MAX_OUTPUT_PORT_TYPE +MonDReg[16] <= MonDReg[16]~reg0.DB_MAX_OUTPUT_PORT_TYPE +MonDReg[17] <= MonDReg[17]~reg0.DB_MAX_OUTPUT_PORT_TYPE +MonDReg[18] <= MonDReg[18]~reg0.DB_MAX_OUTPUT_PORT_TYPE +MonDReg[19] <= MonDReg[19]~reg0.DB_MAX_OUTPUT_PORT_TYPE +MonDReg[20] <= MonDReg[20]~reg0.DB_MAX_OUTPUT_PORT_TYPE +MonDReg[21] <= MonDReg[21]~reg0.DB_MAX_OUTPUT_PORT_TYPE +MonDReg[22] <= MonDReg[22]~reg0.DB_MAX_OUTPUT_PORT_TYPE +MonDReg[23] <= MonDReg[23]~reg0.DB_MAX_OUTPUT_PORT_TYPE +MonDReg[24] <= MonDReg[24]~reg0.DB_MAX_OUTPUT_PORT_TYPE +MonDReg[25] <= MonDReg[25]~reg0.DB_MAX_OUTPUT_PORT_TYPE +MonDReg[26] <= MonDReg[26]~reg0.DB_MAX_OUTPUT_PORT_TYPE +MonDReg[27] <= MonDReg[27]~reg0.DB_MAX_OUTPUT_PORT_TYPE +MonDReg[28] <= MonDReg[28]~reg0.DB_MAX_OUTPUT_PORT_TYPE +MonDReg[29] <= MonDReg[29]~reg0.DB_MAX_OUTPUT_PORT_TYPE +MonDReg[30] <= MonDReg[30]~reg0.DB_MAX_OUTPUT_PORT_TYPE +MonDReg[31] <= MonDReg[31]~reg0.DB_MAX_OUTPUT_PORT_TYPE +ociram_readdata[0] <= nios_system_nios2_processor_ociram_sp_ram_module:nios_system_nios2_processor_ociram_sp_ram.q +ociram_readdata[1] <= nios_system_nios2_processor_ociram_sp_ram_module:nios_system_nios2_processor_ociram_sp_ram.q +ociram_readdata[2] <= nios_system_nios2_processor_ociram_sp_ram_module:nios_system_nios2_processor_ociram_sp_ram.q +ociram_readdata[3] <= nios_system_nios2_processor_ociram_sp_ram_module:nios_system_nios2_processor_ociram_sp_ram.q +ociram_readdata[4] <= nios_system_nios2_processor_ociram_sp_ram_module:nios_system_nios2_processor_ociram_sp_ram.q +ociram_readdata[5] <= nios_system_nios2_processor_ociram_sp_ram_module:nios_system_nios2_processor_ociram_sp_ram.q +ociram_readdata[6] <= nios_system_nios2_processor_ociram_sp_ram_module:nios_system_nios2_processor_ociram_sp_ram.q +ociram_readdata[7] <= nios_system_nios2_processor_ociram_sp_ram_module:nios_system_nios2_processor_ociram_sp_ram.q +ociram_readdata[8] <= nios_system_nios2_processor_ociram_sp_ram_module:nios_system_nios2_processor_ociram_sp_ram.q +ociram_readdata[9] <= nios_system_nios2_processor_ociram_sp_ram_module:nios_system_nios2_processor_ociram_sp_ram.q +ociram_readdata[10] <= nios_system_nios2_processor_ociram_sp_ram_module:nios_system_nios2_processor_ociram_sp_ram.q +ociram_readdata[11] <= nios_system_nios2_processor_ociram_sp_ram_module:nios_system_nios2_processor_ociram_sp_ram.q +ociram_readdata[12] <= nios_system_nios2_processor_ociram_sp_ram_module:nios_system_nios2_processor_ociram_sp_ram.q +ociram_readdata[13] <= nios_system_nios2_processor_ociram_sp_ram_module:nios_system_nios2_processor_ociram_sp_ram.q +ociram_readdata[14] <= nios_system_nios2_processor_ociram_sp_ram_module:nios_system_nios2_processor_ociram_sp_ram.q +ociram_readdata[15] <= nios_system_nios2_processor_ociram_sp_ram_module:nios_system_nios2_processor_ociram_sp_ram.q +ociram_readdata[16] <= nios_system_nios2_processor_ociram_sp_ram_module:nios_system_nios2_processor_ociram_sp_ram.q +ociram_readdata[17] <= nios_system_nios2_processor_ociram_sp_ram_module:nios_system_nios2_processor_ociram_sp_ram.q +ociram_readdata[18] <= nios_system_nios2_processor_ociram_sp_ram_module:nios_system_nios2_processor_ociram_sp_ram.q +ociram_readdata[19] <= nios_system_nios2_processor_ociram_sp_ram_module:nios_system_nios2_processor_ociram_sp_ram.q +ociram_readdata[20] <= nios_system_nios2_processor_ociram_sp_ram_module:nios_system_nios2_processor_ociram_sp_ram.q +ociram_readdata[21] <= nios_system_nios2_processor_ociram_sp_ram_module:nios_system_nios2_processor_ociram_sp_ram.q +ociram_readdata[22] <= nios_system_nios2_processor_ociram_sp_ram_module:nios_system_nios2_processor_ociram_sp_ram.q +ociram_readdata[23] <= nios_system_nios2_processor_ociram_sp_ram_module:nios_system_nios2_processor_ociram_sp_ram.q +ociram_readdata[24] <= nios_system_nios2_processor_ociram_sp_ram_module:nios_system_nios2_processor_ociram_sp_ram.q +ociram_readdata[25] <= nios_system_nios2_processor_ociram_sp_ram_module:nios_system_nios2_processor_ociram_sp_ram.q +ociram_readdata[26] <= nios_system_nios2_processor_ociram_sp_ram_module:nios_system_nios2_processor_ociram_sp_ram.q +ociram_readdata[27] <= nios_system_nios2_processor_ociram_sp_ram_module:nios_system_nios2_processor_ociram_sp_ram.q +ociram_readdata[28] <= nios_system_nios2_processor_ociram_sp_ram_module:nios_system_nios2_processor_ociram_sp_ram.q +ociram_readdata[29] <= nios_system_nios2_processor_ociram_sp_ram_module:nios_system_nios2_processor_ociram_sp_ram.q +ociram_readdata[30] <= nios_system_nios2_processor_ociram_sp_ram_module:nios_system_nios2_processor_ociram_sp_ram.q +ociram_readdata[31] <= nios_system_nios2_processor_ociram_sp_ram_module:nios_system_nios2_processor_ociram_sp_ram.q +waitrequest <= waitrequest~reg0.DB_MAX_OUTPUT_PORT_TYPE + + +|lights|nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_ocimem:the_nios_system_nios2_processor_nios2_ocimem|nios_system_nios2_processor_ociram_sp_ram_module:nios_system_nios2_processor_ociram_sp_ram +address[0] => address[0].IN1 +address[1] => address[1].IN1 +address[2] => address[2].IN1 +address[3] => address[3].IN1 +address[4] => address[4].IN1 +address[5] => address[5].IN1 +address[6] => address[6].IN1 +address[7] => address[7].IN1 +byteenable[0] => byteenable[0].IN1 +byteenable[1] => byteenable[1].IN1 +byteenable[2] => byteenable[2].IN1 +byteenable[3] => byteenable[3].IN1 +clock => clock.IN1 +data[0] => data[0].IN1 +data[1] => data[1].IN1 +data[2] => data[2].IN1 +data[3] => data[3].IN1 +data[4] => data[4].IN1 +data[5] => data[5].IN1 +data[6] => data[6].IN1 +data[7] => data[7].IN1 +data[8] => data[8].IN1 +data[9] => data[9].IN1 +data[10] => data[10].IN1 +data[11] => data[11].IN1 +data[12] => data[12].IN1 +data[13] => data[13].IN1 +data[14] => data[14].IN1 +data[15] => data[15].IN1 +data[16] => data[16].IN1 +data[17] => data[17].IN1 +data[18] => data[18].IN1 +data[19] => data[19].IN1 +data[20] => data[20].IN1 +data[21] => data[21].IN1 +data[22] => data[22].IN1 +data[23] => data[23].IN1 +data[24] => data[24].IN1 +data[25] => data[25].IN1 +data[26] => data[26].IN1 +data[27] => data[27].IN1 +data[28] => data[28].IN1 +data[29] => data[29].IN1 +data[30] => data[30].IN1 +data[31] => data[31].IN1 +wren => wren.IN1 +q[0] <= altsyncram:the_altsyncram.q_a +q[1] <= altsyncram:the_altsyncram.q_a +q[2] <= altsyncram:the_altsyncram.q_a +q[3] <= altsyncram:the_altsyncram.q_a +q[4] <= altsyncram:the_altsyncram.q_a +q[5] <= altsyncram:the_altsyncram.q_a +q[6] <= altsyncram:the_altsyncram.q_a +q[7] <= altsyncram:the_altsyncram.q_a +q[8] <= altsyncram:the_altsyncram.q_a +q[9] <= altsyncram:the_altsyncram.q_a +q[10] <= altsyncram:the_altsyncram.q_a +q[11] <= altsyncram:the_altsyncram.q_a +q[12] <= altsyncram:the_altsyncram.q_a +q[13] <= altsyncram:the_altsyncram.q_a +q[14] <= altsyncram:the_altsyncram.q_a +q[15] <= altsyncram:the_altsyncram.q_a +q[16] <= altsyncram:the_altsyncram.q_a +q[17] <= altsyncram:the_altsyncram.q_a +q[18] <= altsyncram:the_altsyncram.q_a +q[19] <= altsyncram:the_altsyncram.q_a +q[20] <= altsyncram:the_altsyncram.q_a +q[21] <= altsyncram:the_altsyncram.q_a +q[22] <= altsyncram:the_altsyncram.q_a +q[23] <= altsyncram:the_altsyncram.q_a +q[24] <= altsyncram:the_altsyncram.q_a +q[25] <= altsyncram:the_altsyncram.q_a +q[26] <= altsyncram:the_altsyncram.q_a +q[27] <= altsyncram:the_altsyncram.q_a +q[28] <= altsyncram:the_altsyncram.q_a +q[29] <= altsyncram:the_altsyncram.q_a +q[30] <= altsyncram:the_altsyncram.q_a +q[31] <= altsyncram:the_altsyncram.q_a + + +|lights|nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_ocimem:the_nios_system_nios2_processor_nios2_ocimem|nios_system_nios2_processor_ociram_sp_ram_module:nios_system_nios2_processor_ociram_sp_ram|altsyncram:the_altsyncram +wren_a => altsyncram_4891:auto_generated.wren_a +rden_a => ~NO_FANOUT~ +wren_b => ~NO_FANOUT~ +rden_b => ~NO_FANOUT~ +data_a[0] => altsyncram_4891:auto_generated.data_a[0] +data_a[1] => altsyncram_4891:auto_generated.data_a[1] +data_a[2] => altsyncram_4891:auto_generated.data_a[2] +data_a[3] => altsyncram_4891:auto_generated.data_a[3] +data_a[4] => altsyncram_4891:auto_generated.data_a[4] +data_a[5] => altsyncram_4891:auto_generated.data_a[5] +data_a[6] => altsyncram_4891:auto_generated.data_a[6] +data_a[7] => altsyncram_4891:auto_generated.data_a[7] +data_a[8] => altsyncram_4891:auto_generated.data_a[8] +data_a[9] => altsyncram_4891:auto_generated.data_a[9] +data_a[10] => altsyncram_4891:auto_generated.data_a[10] +data_a[11] => altsyncram_4891:auto_generated.data_a[11] +data_a[12] => altsyncram_4891:auto_generated.data_a[12] +data_a[13] => altsyncram_4891:auto_generated.data_a[13] +data_a[14] => altsyncram_4891:auto_generated.data_a[14] +data_a[15] => altsyncram_4891:auto_generated.data_a[15] +data_a[16] => altsyncram_4891:auto_generated.data_a[16] +data_a[17] => altsyncram_4891:auto_generated.data_a[17] +data_a[18] => altsyncram_4891:auto_generated.data_a[18] +data_a[19] => altsyncram_4891:auto_generated.data_a[19] +data_a[20] => altsyncram_4891:auto_generated.data_a[20] +data_a[21] => altsyncram_4891:auto_generated.data_a[21] +data_a[22] => altsyncram_4891:auto_generated.data_a[22] +data_a[23] => altsyncram_4891:auto_generated.data_a[23] +data_a[24] => altsyncram_4891:auto_generated.data_a[24] +data_a[25] => altsyncram_4891:auto_generated.data_a[25] +data_a[26] => altsyncram_4891:auto_generated.data_a[26] +data_a[27] => altsyncram_4891:auto_generated.data_a[27] +data_a[28] => altsyncram_4891:auto_generated.data_a[28] +data_a[29] => altsyncram_4891:auto_generated.data_a[29] +data_a[30] => altsyncram_4891:auto_generated.data_a[30] +data_a[31] => altsyncram_4891:auto_generated.data_a[31] +data_b[0] => ~NO_FANOUT~ +address_a[0] => altsyncram_4891:auto_generated.address_a[0] +address_a[1] => altsyncram_4891:auto_generated.address_a[1] +address_a[2] => altsyncram_4891:auto_generated.address_a[2] +address_a[3] => altsyncram_4891:auto_generated.address_a[3] +address_a[4] => altsyncram_4891:auto_generated.address_a[4] +address_a[5] => altsyncram_4891:auto_generated.address_a[5] +address_a[6] => altsyncram_4891:auto_generated.address_a[6] +address_a[7] => altsyncram_4891:auto_generated.address_a[7] +address_b[0] => ~NO_FANOUT~ +addressstall_a => ~NO_FANOUT~ +addressstall_b => ~NO_FANOUT~ +clock0 => altsyncram_4891:auto_generated.clock0 +clock1 => ~NO_FANOUT~ +clocken0 => ~NO_FANOUT~ +clocken1 => ~NO_FANOUT~ +clocken2 => ~NO_FANOUT~ +clocken3 => ~NO_FANOUT~ +aclr0 => ~NO_FANOUT~ +aclr1 => ~NO_FANOUT~ +byteena_a[0] => altsyncram_4891:auto_generated.byteena_a[0] +byteena_a[1] => altsyncram_4891:auto_generated.byteena_a[1] +byteena_a[2] => altsyncram_4891:auto_generated.byteena_a[2] +byteena_a[3] => altsyncram_4891:auto_generated.byteena_a[3] +byteena_b[0] => ~NO_FANOUT~ +q_a[0] <= altsyncram_4891:auto_generated.q_a[0] +q_a[1] <= altsyncram_4891:auto_generated.q_a[1] +q_a[2] <= altsyncram_4891:auto_generated.q_a[2] +q_a[3] <= altsyncram_4891:auto_generated.q_a[3] +q_a[4] <= altsyncram_4891:auto_generated.q_a[4] +q_a[5] <= altsyncram_4891:auto_generated.q_a[5] +q_a[6] <= altsyncram_4891:auto_generated.q_a[6] +q_a[7] <= altsyncram_4891:auto_generated.q_a[7] +q_a[8] <= altsyncram_4891:auto_generated.q_a[8] +q_a[9] <= altsyncram_4891:auto_generated.q_a[9] +q_a[10] <= altsyncram_4891:auto_generated.q_a[10] +q_a[11] <= altsyncram_4891:auto_generated.q_a[11] +q_a[12] <= altsyncram_4891:auto_generated.q_a[12] +q_a[13] <= altsyncram_4891:auto_generated.q_a[13] +q_a[14] <= altsyncram_4891:auto_generated.q_a[14] +q_a[15] <= altsyncram_4891:auto_generated.q_a[15] +q_a[16] <= altsyncram_4891:auto_generated.q_a[16] +q_a[17] <= altsyncram_4891:auto_generated.q_a[17] +q_a[18] <= altsyncram_4891:auto_generated.q_a[18] +q_a[19] <= altsyncram_4891:auto_generated.q_a[19] +q_a[20] <= altsyncram_4891:auto_generated.q_a[20] +q_a[21] <= altsyncram_4891:auto_generated.q_a[21] +q_a[22] <= altsyncram_4891:auto_generated.q_a[22] +q_a[23] <= altsyncram_4891:auto_generated.q_a[23] +q_a[24] <= altsyncram_4891:auto_generated.q_a[24] +q_a[25] <= altsyncram_4891:auto_generated.q_a[25] +q_a[26] <= altsyncram_4891:auto_generated.q_a[26] +q_a[27] <= altsyncram_4891:auto_generated.q_a[27] +q_a[28] <= altsyncram_4891:auto_generated.q_a[28] +q_a[29] <= altsyncram_4891:auto_generated.q_a[29] +q_a[30] <= altsyncram_4891:auto_generated.q_a[30] +q_a[31] <= altsyncram_4891:auto_generated.q_a[31] +q_b[0] <= +eccstatus[0] <= +eccstatus[1] <= +eccstatus[2] <= + + +|lights|nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_ocimem:the_nios_system_nios2_processor_nios2_ocimem|nios_system_nios2_processor_ociram_sp_ram_module:nios_system_nios2_processor_ociram_sp_ram|altsyncram:the_altsyncram|altsyncram_4891:auto_generated +address_a[0] => ram_block1a0.PORTAADDR +address_a[0] => ram_block1a1.PORTAADDR +address_a[0] => ram_block1a2.PORTAADDR +address_a[0] => ram_block1a3.PORTAADDR +address_a[0] => ram_block1a4.PORTAADDR +address_a[0] => ram_block1a5.PORTAADDR +address_a[0] => ram_block1a6.PORTAADDR +address_a[0] => ram_block1a7.PORTAADDR +address_a[0] => ram_block1a8.PORTAADDR +address_a[0] => ram_block1a9.PORTAADDR +address_a[0] => ram_block1a10.PORTAADDR +address_a[0] => ram_block1a11.PORTAADDR +address_a[0] => ram_block1a12.PORTAADDR +address_a[0] => ram_block1a13.PORTAADDR +address_a[0] => ram_block1a14.PORTAADDR +address_a[0] => ram_block1a15.PORTAADDR +address_a[0] => ram_block1a16.PORTAADDR +address_a[0] => ram_block1a17.PORTAADDR +address_a[0] => ram_block1a18.PORTAADDR +address_a[0] => ram_block1a19.PORTAADDR +address_a[0] => ram_block1a20.PORTAADDR +address_a[0] => ram_block1a21.PORTAADDR +address_a[0] => ram_block1a22.PORTAADDR +address_a[0] => ram_block1a23.PORTAADDR +address_a[0] => ram_block1a24.PORTAADDR +address_a[0] => ram_block1a25.PORTAADDR +address_a[0] => ram_block1a26.PORTAADDR +address_a[0] => ram_block1a27.PORTAADDR +address_a[0] => ram_block1a28.PORTAADDR +address_a[0] => ram_block1a29.PORTAADDR +address_a[0] => ram_block1a30.PORTAADDR +address_a[0] => ram_block1a31.PORTAADDR +address_a[1] => ram_block1a0.PORTAADDR1 +address_a[1] => ram_block1a1.PORTAADDR1 +address_a[1] => ram_block1a2.PORTAADDR1 +address_a[1] => ram_block1a3.PORTAADDR1 +address_a[1] => ram_block1a4.PORTAADDR1 +address_a[1] => ram_block1a5.PORTAADDR1 +address_a[1] => ram_block1a6.PORTAADDR1 +address_a[1] => ram_block1a7.PORTAADDR1 +address_a[1] => ram_block1a8.PORTAADDR1 +address_a[1] => ram_block1a9.PORTAADDR1 +address_a[1] => ram_block1a10.PORTAADDR1 +address_a[1] => ram_block1a11.PORTAADDR1 +address_a[1] => ram_block1a12.PORTAADDR1 +address_a[1] => ram_block1a13.PORTAADDR1 +address_a[1] => ram_block1a14.PORTAADDR1 +address_a[1] => ram_block1a15.PORTAADDR1 +address_a[1] => ram_block1a16.PORTAADDR1 +address_a[1] => ram_block1a17.PORTAADDR1 +address_a[1] => ram_block1a18.PORTAADDR1 +address_a[1] => ram_block1a19.PORTAADDR1 +address_a[1] => ram_block1a20.PORTAADDR1 +address_a[1] => ram_block1a21.PORTAADDR1 +address_a[1] => ram_block1a22.PORTAADDR1 +address_a[1] => ram_block1a23.PORTAADDR1 +address_a[1] => ram_block1a24.PORTAADDR1 +address_a[1] => ram_block1a25.PORTAADDR1 +address_a[1] => ram_block1a26.PORTAADDR1 +address_a[1] => ram_block1a27.PORTAADDR1 +address_a[1] => ram_block1a28.PORTAADDR1 +address_a[1] => ram_block1a29.PORTAADDR1 +address_a[1] => ram_block1a30.PORTAADDR1 +address_a[1] => ram_block1a31.PORTAADDR1 +address_a[2] => ram_block1a0.PORTAADDR2 +address_a[2] => ram_block1a1.PORTAADDR2 +address_a[2] => ram_block1a2.PORTAADDR2 +address_a[2] => ram_block1a3.PORTAADDR2 +address_a[2] => ram_block1a4.PORTAADDR2 +address_a[2] => ram_block1a5.PORTAADDR2 +address_a[2] => ram_block1a6.PORTAADDR2 +address_a[2] => ram_block1a7.PORTAADDR2 +address_a[2] => ram_block1a8.PORTAADDR2 +address_a[2] => ram_block1a9.PORTAADDR2 +address_a[2] => ram_block1a10.PORTAADDR2 +address_a[2] => ram_block1a11.PORTAADDR2 +address_a[2] => ram_block1a12.PORTAADDR2 +address_a[2] => ram_block1a13.PORTAADDR2 +address_a[2] => ram_block1a14.PORTAADDR2 +address_a[2] => ram_block1a15.PORTAADDR2 +address_a[2] => ram_block1a16.PORTAADDR2 +address_a[2] => ram_block1a17.PORTAADDR2 +address_a[2] => ram_block1a18.PORTAADDR2 +address_a[2] => ram_block1a19.PORTAADDR2 +address_a[2] => ram_block1a20.PORTAADDR2 +address_a[2] => ram_block1a21.PORTAADDR2 +address_a[2] => ram_block1a22.PORTAADDR2 +address_a[2] => ram_block1a23.PORTAADDR2 +address_a[2] => ram_block1a24.PORTAADDR2 +address_a[2] => ram_block1a25.PORTAADDR2 +address_a[2] => ram_block1a26.PORTAADDR2 +address_a[2] => ram_block1a27.PORTAADDR2 +address_a[2] => ram_block1a28.PORTAADDR2 +address_a[2] => ram_block1a29.PORTAADDR2 +address_a[2] => ram_block1a30.PORTAADDR2 +address_a[2] => ram_block1a31.PORTAADDR2 +address_a[3] => ram_block1a0.PORTAADDR3 +address_a[3] => ram_block1a1.PORTAADDR3 +address_a[3] => ram_block1a2.PORTAADDR3 +address_a[3] => ram_block1a3.PORTAADDR3 +address_a[3] => ram_block1a4.PORTAADDR3 +address_a[3] => ram_block1a5.PORTAADDR3 +address_a[3] => ram_block1a6.PORTAADDR3 +address_a[3] => ram_block1a7.PORTAADDR3 +address_a[3] => ram_block1a8.PORTAADDR3 +address_a[3] => ram_block1a9.PORTAADDR3 +address_a[3] => ram_block1a10.PORTAADDR3 +address_a[3] => ram_block1a11.PORTAADDR3 +address_a[3] => ram_block1a12.PORTAADDR3 +address_a[3] => ram_block1a13.PORTAADDR3 +address_a[3] => ram_block1a14.PORTAADDR3 +address_a[3] => ram_block1a15.PORTAADDR3 +address_a[3] => ram_block1a16.PORTAADDR3 +address_a[3] => ram_block1a17.PORTAADDR3 +address_a[3] => ram_block1a18.PORTAADDR3 +address_a[3] => ram_block1a19.PORTAADDR3 +address_a[3] => ram_block1a20.PORTAADDR3 +address_a[3] => ram_block1a21.PORTAADDR3 +address_a[3] => ram_block1a22.PORTAADDR3 +address_a[3] => ram_block1a23.PORTAADDR3 +address_a[3] => ram_block1a24.PORTAADDR3 +address_a[3] => ram_block1a25.PORTAADDR3 +address_a[3] => ram_block1a26.PORTAADDR3 +address_a[3] => ram_block1a27.PORTAADDR3 +address_a[3] => ram_block1a28.PORTAADDR3 +address_a[3] => ram_block1a29.PORTAADDR3 +address_a[3] => ram_block1a30.PORTAADDR3 +address_a[3] => ram_block1a31.PORTAADDR3 +address_a[4] => ram_block1a0.PORTAADDR4 +address_a[4] => ram_block1a1.PORTAADDR4 +address_a[4] => ram_block1a2.PORTAADDR4 +address_a[4] => ram_block1a3.PORTAADDR4 +address_a[4] => ram_block1a4.PORTAADDR4 +address_a[4] => ram_block1a5.PORTAADDR4 +address_a[4] => ram_block1a6.PORTAADDR4 +address_a[4] => ram_block1a7.PORTAADDR4 +address_a[4] => ram_block1a8.PORTAADDR4 +address_a[4] => ram_block1a9.PORTAADDR4 +address_a[4] => ram_block1a10.PORTAADDR4 +address_a[4] => ram_block1a11.PORTAADDR4 +address_a[4] => ram_block1a12.PORTAADDR4 +address_a[4] => ram_block1a13.PORTAADDR4 +address_a[4] => ram_block1a14.PORTAADDR4 +address_a[4] => ram_block1a15.PORTAADDR4 +address_a[4] => ram_block1a16.PORTAADDR4 +address_a[4] => ram_block1a17.PORTAADDR4 +address_a[4] => ram_block1a18.PORTAADDR4 +address_a[4] => ram_block1a19.PORTAADDR4 +address_a[4] => ram_block1a20.PORTAADDR4 +address_a[4] => ram_block1a21.PORTAADDR4 +address_a[4] => ram_block1a22.PORTAADDR4 +address_a[4] => ram_block1a23.PORTAADDR4 +address_a[4] => ram_block1a24.PORTAADDR4 +address_a[4] => ram_block1a25.PORTAADDR4 +address_a[4] => ram_block1a26.PORTAADDR4 +address_a[4] => ram_block1a27.PORTAADDR4 +address_a[4] => ram_block1a28.PORTAADDR4 +address_a[4] => ram_block1a29.PORTAADDR4 +address_a[4] => ram_block1a30.PORTAADDR4 +address_a[4] => ram_block1a31.PORTAADDR4 +address_a[5] => ram_block1a0.PORTAADDR5 +address_a[5] => ram_block1a1.PORTAADDR5 +address_a[5] => ram_block1a2.PORTAADDR5 +address_a[5] => ram_block1a3.PORTAADDR5 +address_a[5] => ram_block1a4.PORTAADDR5 +address_a[5] => ram_block1a5.PORTAADDR5 +address_a[5] => ram_block1a6.PORTAADDR5 +address_a[5] => ram_block1a7.PORTAADDR5 +address_a[5] => ram_block1a8.PORTAADDR5 +address_a[5] => ram_block1a9.PORTAADDR5 +address_a[5] => ram_block1a10.PORTAADDR5 +address_a[5] => ram_block1a11.PORTAADDR5 +address_a[5] => ram_block1a12.PORTAADDR5 +address_a[5] => ram_block1a13.PORTAADDR5 +address_a[5] => ram_block1a14.PORTAADDR5 +address_a[5] => ram_block1a15.PORTAADDR5 +address_a[5] => ram_block1a16.PORTAADDR5 +address_a[5] => ram_block1a17.PORTAADDR5 +address_a[5] => ram_block1a18.PORTAADDR5 +address_a[5] => ram_block1a19.PORTAADDR5 +address_a[5] => ram_block1a20.PORTAADDR5 +address_a[5] => ram_block1a21.PORTAADDR5 +address_a[5] => ram_block1a22.PORTAADDR5 +address_a[5] => ram_block1a23.PORTAADDR5 +address_a[5] => ram_block1a24.PORTAADDR5 +address_a[5] => ram_block1a25.PORTAADDR5 +address_a[5] => ram_block1a26.PORTAADDR5 +address_a[5] => ram_block1a27.PORTAADDR5 +address_a[5] => ram_block1a28.PORTAADDR5 +address_a[5] => ram_block1a29.PORTAADDR5 +address_a[5] => ram_block1a30.PORTAADDR5 +address_a[5] => ram_block1a31.PORTAADDR5 +address_a[6] => ram_block1a0.PORTAADDR6 +address_a[6] => ram_block1a1.PORTAADDR6 +address_a[6] => ram_block1a2.PORTAADDR6 +address_a[6] => ram_block1a3.PORTAADDR6 +address_a[6] => ram_block1a4.PORTAADDR6 +address_a[6] => ram_block1a5.PORTAADDR6 +address_a[6] => ram_block1a6.PORTAADDR6 +address_a[6] => ram_block1a7.PORTAADDR6 +address_a[6] => ram_block1a8.PORTAADDR6 +address_a[6] => ram_block1a9.PORTAADDR6 +address_a[6] => ram_block1a10.PORTAADDR6 +address_a[6] => ram_block1a11.PORTAADDR6 +address_a[6] => ram_block1a12.PORTAADDR6 +address_a[6] => ram_block1a13.PORTAADDR6 +address_a[6] => ram_block1a14.PORTAADDR6 +address_a[6] => ram_block1a15.PORTAADDR6 +address_a[6] => ram_block1a16.PORTAADDR6 +address_a[6] => ram_block1a17.PORTAADDR6 +address_a[6] => ram_block1a18.PORTAADDR6 +address_a[6] => ram_block1a19.PORTAADDR6 +address_a[6] => ram_block1a20.PORTAADDR6 +address_a[6] => ram_block1a21.PORTAADDR6 +address_a[6] => ram_block1a22.PORTAADDR6 +address_a[6] => ram_block1a23.PORTAADDR6 +address_a[6] => ram_block1a24.PORTAADDR6 +address_a[6] => ram_block1a25.PORTAADDR6 +address_a[6] => ram_block1a26.PORTAADDR6 +address_a[6] => ram_block1a27.PORTAADDR6 +address_a[6] => ram_block1a28.PORTAADDR6 +address_a[6] => ram_block1a29.PORTAADDR6 +address_a[6] => ram_block1a30.PORTAADDR6 +address_a[6] => ram_block1a31.PORTAADDR6 +address_a[7] => ram_block1a0.PORTAADDR7 +address_a[7] => ram_block1a1.PORTAADDR7 +address_a[7] => ram_block1a2.PORTAADDR7 +address_a[7] => ram_block1a3.PORTAADDR7 +address_a[7] => ram_block1a4.PORTAADDR7 +address_a[7] => ram_block1a5.PORTAADDR7 +address_a[7] => ram_block1a6.PORTAADDR7 +address_a[7] => ram_block1a7.PORTAADDR7 +address_a[7] => ram_block1a8.PORTAADDR7 +address_a[7] => ram_block1a9.PORTAADDR7 +address_a[7] => ram_block1a10.PORTAADDR7 +address_a[7] => ram_block1a11.PORTAADDR7 +address_a[7] => ram_block1a12.PORTAADDR7 +address_a[7] => ram_block1a13.PORTAADDR7 +address_a[7] => ram_block1a14.PORTAADDR7 +address_a[7] => ram_block1a15.PORTAADDR7 +address_a[7] => ram_block1a16.PORTAADDR7 +address_a[7] => ram_block1a17.PORTAADDR7 +address_a[7] => ram_block1a18.PORTAADDR7 +address_a[7] => ram_block1a19.PORTAADDR7 +address_a[7] => ram_block1a20.PORTAADDR7 +address_a[7] => ram_block1a21.PORTAADDR7 +address_a[7] => ram_block1a22.PORTAADDR7 +address_a[7] => ram_block1a23.PORTAADDR7 +address_a[7] => ram_block1a24.PORTAADDR7 +address_a[7] => ram_block1a25.PORTAADDR7 +address_a[7] => ram_block1a26.PORTAADDR7 +address_a[7] => ram_block1a27.PORTAADDR7 +address_a[7] => ram_block1a28.PORTAADDR7 +address_a[7] => ram_block1a29.PORTAADDR7 +address_a[7] => ram_block1a30.PORTAADDR7 +address_a[7] => ram_block1a31.PORTAADDR7 +byteena_a[0] => ram_block1a0.PORTABYTEENAMASKS +byteena_a[0] => ram_block1a1.PORTABYTEENAMASKS +byteena_a[0] => ram_block1a2.PORTABYTEENAMASKS +byteena_a[0] => ram_block1a3.PORTABYTEENAMASKS +byteena_a[0] => ram_block1a4.PORTABYTEENAMASKS +byteena_a[0] => ram_block1a5.PORTABYTEENAMASKS +byteena_a[0] => ram_block1a6.PORTABYTEENAMASKS +byteena_a[0] => ram_block1a7.PORTABYTEENAMASKS +byteena_a[1] => ram_block1a8.PORTABYTEENAMASKS +byteena_a[1] => ram_block1a9.PORTABYTEENAMASKS +byteena_a[1] => ram_block1a10.PORTABYTEENAMASKS +byteena_a[1] => ram_block1a11.PORTABYTEENAMASKS +byteena_a[1] => ram_block1a12.PORTABYTEENAMASKS +byteena_a[1] => ram_block1a13.PORTABYTEENAMASKS +byteena_a[1] => ram_block1a14.PORTABYTEENAMASKS +byteena_a[1] => ram_block1a15.PORTABYTEENAMASKS +byteena_a[2] => ram_block1a16.PORTABYTEENAMASKS +byteena_a[2] => ram_block1a17.PORTABYTEENAMASKS +byteena_a[2] => ram_block1a18.PORTABYTEENAMASKS +byteena_a[2] => ram_block1a19.PORTABYTEENAMASKS +byteena_a[2] => ram_block1a20.PORTABYTEENAMASKS +byteena_a[2] => ram_block1a21.PORTABYTEENAMASKS +byteena_a[2] => ram_block1a22.PORTABYTEENAMASKS +byteena_a[2] => ram_block1a23.PORTABYTEENAMASKS +byteena_a[3] => ram_block1a24.PORTABYTEENAMASKS +byteena_a[3] => ram_block1a25.PORTABYTEENAMASKS +byteena_a[3] => ram_block1a26.PORTABYTEENAMASKS +byteena_a[3] => ram_block1a27.PORTABYTEENAMASKS +byteena_a[3] => ram_block1a28.PORTABYTEENAMASKS +byteena_a[3] => ram_block1a29.PORTABYTEENAMASKS +byteena_a[3] => ram_block1a30.PORTABYTEENAMASKS +byteena_a[3] => ram_block1a31.PORTABYTEENAMASKS +clock0 => ram_block1a0.CLK0 +clock0 => ram_block1a1.CLK0 +clock0 => ram_block1a2.CLK0 +clock0 => ram_block1a3.CLK0 +clock0 => ram_block1a4.CLK0 +clock0 => ram_block1a5.CLK0 +clock0 => ram_block1a6.CLK0 +clock0 => ram_block1a7.CLK0 +clock0 => ram_block1a8.CLK0 +clock0 => ram_block1a9.CLK0 +clock0 => ram_block1a10.CLK0 +clock0 => ram_block1a11.CLK0 +clock0 => ram_block1a12.CLK0 +clock0 => ram_block1a13.CLK0 +clock0 => ram_block1a14.CLK0 +clock0 => ram_block1a15.CLK0 +clock0 => ram_block1a16.CLK0 +clock0 => ram_block1a17.CLK0 +clock0 => ram_block1a18.CLK0 +clock0 => ram_block1a19.CLK0 +clock0 => ram_block1a20.CLK0 +clock0 => ram_block1a21.CLK0 +clock0 => ram_block1a22.CLK0 +clock0 => ram_block1a23.CLK0 +clock0 => ram_block1a24.CLK0 +clock0 => ram_block1a25.CLK0 +clock0 => ram_block1a26.CLK0 +clock0 => ram_block1a27.CLK0 +clock0 => ram_block1a28.CLK0 +clock0 => ram_block1a29.CLK0 +clock0 => ram_block1a30.CLK0 +clock0 => ram_block1a31.CLK0 +data_a[0] => ram_block1a0.PORTADATAIN +data_a[1] => ram_block1a1.PORTADATAIN +data_a[2] => ram_block1a2.PORTADATAIN +data_a[3] => ram_block1a3.PORTADATAIN +data_a[4] => ram_block1a4.PORTADATAIN +data_a[5] => ram_block1a5.PORTADATAIN +data_a[6] => ram_block1a6.PORTADATAIN +data_a[7] => ram_block1a7.PORTADATAIN +data_a[8] => ram_block1a8.PORTADATAIN +data_a[9] => ram_block1a9.PORTADATAIN +data_a[10] => ram_block1a10.PORTADATAIN +data_a[11] => ram_block1a11.PORTADATAIN +data_a[12] => ram_block1a12.PORTADATAIN +data_a[13] => ram_block1a13.PORTADATAIN +data_a[14] => ram_block1a14.PORTADATAIN +data_a[15] => ram_block1a15.PORTADATAIN +data_a[16] => ram_block1a16.PORTADATAIN +data_a[17] => ram_block1a17.PORTADATAIN +data_a[18] => ram_block1a18.PORTADATAIN +data_a[19] => ram_block1a19.PORTADATAIN +data_a[20] => ram_block1a20.PORTADATAIN +data_a[21] => ram_block1a21.PORTADATAIN +data_a[22] => ram_block1a22.PORTADATAIN +data_a[23] => ram_block1a23.PORTADATAIN +data_a[24] => ram_block1a24.PORTADATAIN +data_a[25] => ram_block1a25.PORTADATAIN +data_a[26] => ram_block1a26.PORTADATAIN +data_a[27] => ram_block1a27.PORTADATAIN +data_a[28] => ram_block1a28.PORTADATAIN +data_a[29] => ram_block1a29.PORTADATAIN +data_a[30] => ram_block1a30.PORTADATAIN +data_a[31] => ram_block1a31.PORTADATAIN +q_a[0] <= ram_block1a0.PORTADATAOUT +q_a[1] <= ram_block1a1.PORTADATAOUT +q_a[2] <= ram_block1a2.PORTADATAOUT +q_a[3] <= ram_block1a3.PORTADATAOUT +q_a[4] <= ram_block1a4.PORTADATAOUT +q_a[5] <= ram_block1a5.PORTADATAOUT +q_a[6] <= ram_block1a6.PORTADATAOUT +q_a[7] <= ram_block1a7.PORTADATAOUT +q_a[8] <= ram_block1a8.PORTADATAOUT +q_a[9] <= ram_block1a9.PORTADATAOUT +q_a[10] <= ram_block1a10.PORTADATAOUT +q_a[11] <= ram_block1a11.PORTADATAOUT +q_a[12] <= ram_block1a12.PORTADATAOUT +q_a[13] <= ram_block1a13.PORTADATAOUT +q_a[14] <= ram_block1a14.PORTADATAOUT +q_a[15] <= ram_block1a15.PORTADATAOUT +q_a[16] <= ram_block1a16.PORTADATAOUT +q_a[17] <= ram_block1a17.PORTADATAOUT +q_a[18] <= ram_block1a18.PORTADATAOUT +q_a[19] <= ram_block1a19.PORTADATAOUT +q_a[20] <= ram_block1a20.PORTADATAOUT +q_a[21] <= ram_block1a21.PORTADATAOUT +q_a[22] <= ram_block1a22.PORTADATAOUT +q_a[23] <= ram_block1a23.PORTADATAOUT +q_a[24] <= ram_block1a24.PORTADATAOUT +q_a[25] <= ram_block1a25.PORTADATAOUT +q_a[26] <= ram_block1a26.PORTADATAOUT +q_a[27] <= ram_block1a27.PORTADATAOUT +q_a[28] <= ram_block1a28.PORTADATAOUT +q_a[29] <= ram_block1a29.PORTADATAOUT +q_a[30] <= ram_block1a30.PORTADATAOUT +q_a[31] <= ram_block1a31.PORTADATAOUT +wren_a => ram_block1a0.PORTAWE +wren_a => ram_block1a1.PORTAWE +wren_a => ram_block1a2.PORTAWE +wren_a => ram_block1a3.PORTAWE +wren_a => ram_block1a4.PORTAWE +wren_a => ram_block1a5.PORTAWE +wren_a => ram_block1a6.PORTAWE +wren_a => ram_block1a7.PORTAWE +wren_a => ram_block1a8.PORTAWE +wren_a => ram_block1a9.PORTAWE +wren_a => ram_block1a10.PORTAWE +wren_a => ram_block1a11.PORTAWE +wren_a => ram_block1a12.PORTAWE +wren_a => ram_block1a13.PORTAWE +wren_a => ram_block1a14.PORTAWE +wren_a => ram_block1a15.PORTAWE +wren_a => ram_block1a16.PORTAWE +wren_a => ram_block1a17.PORTAWE +wren_a => ram_block1a18.PORTAWE +wren_a => ram_block1a19.PORTAWE +wren_a => ram_block1a20.PORTAWE +wren_a => ram_block1a21.PORTAWE +wren_a => ram_block1a22.PORTAWE +wren_a => ram_block1a23.PORTAWE +wren_a => ram_block1a24.PORTAWE +wren_a => ram_block1a25.PORTAWE +wren_a => ram_block1a26.PORTAWE +wren_a => ram_block1a27.PORTAWE +wren_a => ram_block1a28.PORTAWE +wren_a => ram_block1a29.PORTAWE +wren_a => ram_block1a30.PORTAWE +wren_a => ram_block1a31.PORTAWE + + +|lights|nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_avalon_reg:the_nios_system_nios2_processor_nios2_avalon_reg +address[0] => Equal0.IN8 +address[0] => Equal1.IN1 +address[1] => Equal0.IN7 +address[1] => Equal1.IN8 +address[2] => Equal0.IN6 +address[2] => Equal1.IN7 +address[3] => Equal0.IN5 +address[3] => Equal1.IN6 +address[4] => Equal0.IN4 +address[4] => Equal1.IN5 +address[5] => Equal0.IN3 +address[5] => Equal1.IN4 +address[6] => Equal0.IN2 +address[6] => Equal1.IN3 +address[7] => Equal0.IN1 +address[7] => Equal1.IN2 +address[8] => Equal0.IN0 +address[8] => Equal1.IN0 +clk => oci_ienable[0]~reg0.CLK +clk => oci_ienable[1]~reg0.CLK +clk => oci_ienable[2]~reg0.CLK +clk => oci_ienable[3]~reg0.CLK +clk => oci_ienable[4]~reg0.CLK +clk => oci_ienable[5]~reg0.CLK +clk => oci_ienable[6]~reg0.CLK +clk => oci_ienable[7]~reg0.CLK +clk => oci_ienable[8]~reg0.CLK +clk => oci_ienable[9]~reg0.CLK +clk => oci_ienable[10]~reg0.CLK +clk => oci_ienable[11]~reg0.CLK +clk => oci_ienable[12]~reg0.CLK +clk => oci_ienable[13]~reg0.CLK +clk => oci_ienable[14]~reg0.CLK +clk => oci_ienable[15]~reg0.CLK +clk => oci_ienable[16]~reg0.CLK +clk => oci_ienable[17]~reg0.CLK +clk => oci_ienable[18]~reg0.CLK +clk => oci_ienable[19]~reg0.CLK +clk => oci_ienable[20]~reg0.CLK +clk => oci_ienable[21]~reg0.CLK +clk => oci_ienable[22]~reg0.CLK +clk => oci_ienable[23]~reg0.CLK +clk => oci_ienable[24]~reg0.CLK +clk => oci_ienable[25]~reg0.CLK +clk => oci_ienable[26]~reg0.CLK +clk => oci_ienable[27]~reg0.CLK +clk => oci_ienable[28]~reg0.CLK +clk => oci_ienable[29]~reg0.CLK +clk => oci_ienable[30]~reg0.CLK +clk => oci_ienable[31]~reg0.CLK +clk => oci_single_step_mode~reg0.CLK +debugaccess => write_strobe.IN0 +monitor_error => oci_reg_readdata.DATAB +monitor_go => oci_reg_readdata.DATAB +monitor_ready => oci_reg_readdata.DATAB +reset_n => oci_ienable[0]~reg0.ACLR +reset_n => oci_ienable[1]~reg0.ACLR +reset_n => oci_ienable[2]~reg0.ACLR +reset_n => oci_ienable[3]~reg0.ACLR +reset_n => oci_ienable[4]~reg0.ACLR +reset_n => oci_ienable[5]~reg0.PRESET +reset_n => oci_ienable[6]~reg0.ACLR +reset_n => oci_ienable[7]~reg0.ACLR +reset_n => oci_ienable[8]~reg0.ACLR +reset_n => oci_ienable[9]~reg0.ACLR +reset_n => oci_ienable[10]~reg0.ACLR +reset_n => oci_ienable[11]~reg0.ACLR +reset_n => oci_ienable[12]~reg0.ACLR +reset_n => oci_ienable[13]~reg0.ACLR +reset_n => oci_ienable[14]~reg0.ACLR +reset_n => oci_ienable[15]~reg0.ACLR +reset_n => oci_ienable[16]~reg0.ACLR +reset_n => oci_ienable[17]~reg0.ACLR +reset_n => oci_ienable[18]~reg0.ACLR +reset_n => oci_ienable[19]~reg0.ACLR +reset_n => oci_ienable[20]~reg0.ACLR +reset_n => oci_ienable[21]~reg0.ACLR +reset_n => oci_ienable[22]~reg0.ACLR +reset_n => oci_ienable[23]~reg0.ACLR +reset_n => oci_ienable[24]~reg0.ACLR +reset_n => oci_ienable[25]~reg0.ACLR +reset_n => oci_ienable[26]~reg0.ACLR +reset_n => oci_ienable[27]~reg0.ACLR +reset_n => oci_ienable[28]~reg0.ACLR +reset_n => oci_ienable[29]~reg0.ACLR +reset_n => oci_ienable[30]~reg0.ACLR +reset_n => oci_ienable[31]~reg0.ACLR +reset_n => oci_single_step_mode~reg0.ACLR +write => write_strobe.IN1 +writedata[0] => ocireg_mrs.DATAIN +writedata[1] => ocireg_ers.DATAIN +writedata[2] => ~NO_FANOUT~ +writedata[3] => oci_single_step_mode~reg0.DATAIN +writedata[4] => ~NO_FANOUT~ +writedata[5] => oci_ienable[5]~reg0.DATAIN +writedata[6] => ~NO_FANOUT~ +writedata[7] => ~NO_FANOUT~ +writedata[8] => ~NO_FANOUT~ +writedata[9] => ~NO_FANOUT~ +writedata[10] => ~NO_FANOUT~ +writedata[11] => ~NO_FANOUT~ +writedata[12] => ~NO_FANOUT~ +writedata[13] => ~NO_FANOUT~ +writedata[14] => ~NO_FANOUT~ +writedata[15] => ~NO_FANOUT~ +writedata[16] => ~NO_FANOUT~ +writedata[17] => ~NO_FANOUT~ +writedata[18] => ~NO_FANOUT~ +writedata[19] => ~NO_FANOUT~ +writedata[20] => ~NO_FANOUT~ +writedata[21] => ~NO_FANOUT~ +writedata[22] => ~NO_FANOUT~ +writedata[23] => ~NO_FANOUT~ +writedata[24] => ~NO_FANOUT~ +writedata[25] => ~NO_FANOUT~ +writedata[26] => ~NO_FANOUT~ +writedata[27] => ~NO_FANOUT~ +writedata[28] => ~NO_FANOUT~ +writedata[29] => ~NO_FANOUT~ +writedata[30] => ~NO_FANOUT~ +writedata[31] => ~NO_FANOUT~ +oci_ienable[0] <= oci_ienable[0]~reg0.DB_MAX_OUTPUT_PORT_TYPE +oci_ienable[1] <= oci_ienable[1]~reg0.DB_MAX_OUTPUT_PORT_TYPE +oci_ienable[2] <= oci_ienable[2]~reg0.DB_MAX_OUTPUT_PORT_TYPE +oci_ienable[3] <= oci_ienable[3]~reg0.DB_MAX_OUTPUT_PORT_TYPE +oci_ienable[4] <= oci_ienable[4]~reg0.DB_MAX_OUTPUT_PORT_TYPE +oci_ienable[5] <= oci_ienable[5]~reg0.DB_MAX_OUTPUT_PORT_TYPE +oci_ienable[6] <= oci_ienable[6]~reg0.DB_MAX_OUTPUT_PORT_TYPE +oci_ienable[7] <= oci_ienable[7]~reg0.DB_MAX_OUTPUT_PORT_TYPE +oci_ienable[8] <= oci_ienable[8]~reg0.DB_MAX_OUTPUT_PORT_TYPE +oci_ienable[9] <= oci_ienable[9]~reg0.DB_MAX_OUTPUT_PORT_TYPE +oci_ienable[10] <= oci_ienable[10]~reg0.DB_MAX_OUTPUT_PORT_TYPE +oci_ienable[11] <= oci_ienable[11]~reg0.DB_MAX_OUTPUT_PORT_TYPE +oci_ienable[12] <= oci_ienable[12]~reg0.DB_MAX_OUTPUT_PORT_TYPE +oci_ienable[13] <= oci_ienable[13]~reg0.DB_MAX_OUTPUT_PORT_TYPE +oci_ienable[14] <= oci_ienable[14]~reg0.DB_MAX_OUTPUT_PORT_TYPE +oci_ienable[15] <= oci_ienable[15]~reg0.DB_MAX_OUTPUT_PORT_TYPE +oci_ienable[16] <= oci_ienable[16]~reg0.DB_MAX_OUTPUT_PORT_TYPE +oci_ienable[17] <= oci_ienable[17]~reg0.DB_MAX_OUTPUT_PORT_TYPE +oci_ienable[18] <= oci_ienable[18]~reg0.DB_MAX_OUTPUT_PORT_TYPE +oci_ienable[19] <= oci_ienable[19]~reg0.DB_MAX_OUTPUT_PORT_TYPE +oci_ienable[20] <= oci_ienable[20]~reg0.DB_MAX_OUTPUT_PORT_TYPE +oci_ienable[21] <= oci_ienable[21]~reg0.DB_MAX_OUTPUT_PORT_TYPE +oci_ienable[22] <= oci_ienable[22]~reg0.DB_MAX_OUTPUT_PORT_TYPE +oci_ienable[23] <= oci_ienable[23]~reg0.DB_MAX_OUTPUT_PORT_TYPE +oci_ienable[24] <= oci_ienable[24]~reg0.DB_MAX_OUTPUT_PORT_TYPE +oci_ienable[25] <= oci_ienable[25]~reg0.DB_MAX_OUTPUT_PORT_TYPE +oci_ienable[26] <= oci_ienable[26]~reg0.DB_MAX_OUTPUT_PORT_TYPE +oci_ienable[27] <= oci_ienable[27]~reg0.DB_MAX_OUTPUT_PORT_TYPE +oci_ienable[28] <= oci_ienable[28]~reg0.DB_MAX_OUTPUT_PORT_TYPE +oci_ienable[29] <= oci_ienable[29]~reg0.DB_MAX_OUTPUT_PORT_TYPE +oci_ienable[30] <= oci_ienable[30]~reg0.DB_MAX_OUTPUT_PORT_TYPE +oci_ienable[31] <= oci_ienable[31]~reg0.DB_MAX_OUTPUT_PORT_TYPE +oci_reg_readdata[0] <= oci_reg_readdata.DB_MAX_OUTPUT_PORT_TYPE +oci_reg_readdata[1] <= oci_reg_readdata.DB_MAX_OUTPUT_PORT_TYPE +oci_reg_readdata[2] <= oci_reg_readdata.DB_MAX_OUTPUT_PORT_TYPE +oci_reg_readdata[3] <= oci_reg_readdata.DB_MAX_OUTPUT_PORT_TYPE +oci_reg_readdata[4] <= oci_reg_readdata.DB_MAX_OUTPUT_PORT_TYPE +oci_reg_readdata[5] <= oci_reg_readdata.DB_MAX_OUTPUT_PORT_TYPE +oci_reg_readdata[6] <= oci_reg_readdata.DB_MAX_OUTPUT_PORT_TYPE +oci_reg_readdata[7] <= oci_reg_readdata.DB_MAX_OUTPUT_PORT_TYPE +oci_reg_readdata[8] <= oci_reg_readdata.DB_MAX_OUTPUT_PORT_TYPE +oci_reg_readdata[9] <= oci_reg_readdata.DB_MAX_OUTPUT_PORT_TYPE +oci_reg_readdata[10] <= oci_reg_readdata.DB_MAX_OUTPUT_PORT_TYPE +oci_reg_readdata[11] <= oci_reg_readdata.DB_MAX_OUTPUT_PORT_TYPE +oci_reg_readdata[12] <= oci_reg_readdata.DB_MAX_OUTPUT_PORT_TYPE +oci_reg_readdata[13] <= oci_reg_readdata.DB_MAX_OUTPUT_PORT_TYPE +oci_reg_readdata[14] <= oci_reg_readdata.DB_MAX_OUTPUT_PORT_TYPE +oci_reg_readdata[15] <= oci_reg_readdata.DB_MAX_OUTPUT_PORT_TYPE +oci_reg_readdata[16] <= oci_reg_readdata.DB_MAX_OUTPUT_PORT_TYPE +oci_reg_readdata[17] <= oci_reg_readdata.DB_MAX_OUTPUT_PORT_TYPE +oci_reg_readdata[18] <= oci_reg_readdata.DB_MAX_OUTPUT_PORT_TYPE +oci_reg_readdata[19] <= oci_reg_readdata.DB_MAX_OUTPUT_PORT_TYPE +oci_reg_readdata[20] <= oci_reg_readdata.DB_MAX_OUTPUT_PORT_TYPE +oci_reg_readdata[21] <= oci_reg_readdata.DB_MAX_OUTPUT_PORT_TYPE +oci_reg_readdata[22] <= oci_reg_readdata.DB_MAX_OUTPUT_PORT_TYPE +oci_reg_readdata[23] <= oci_reg_readdata.DB_MAX_OUTPUT_PORT_TYPE +oci_reg_readdata[24] <= oci_reg_readdata.DB_MAX_OUTPUT_PORT_TYPE +oci_reg_readdata[25] <= oci_reg_readdata.DB_MAX_OUTPUT_PORT_TYPE +oci_reg_readdata[26] <= oci_reg_readdata.DB_MAX_OUTPUT_PORT_TYPE +oci_reg_readdata[27] <= oci_reg_readdata.DB_MAX_OUTPUT_PORT_TYPE +oci_reg_readdata[28] <= oci_reg_readdata.DB_MAX_OUTPUT_PORT_TYPE +oci_reg_readdata[29] <= oci_reg_readdata.DB_MAX_OUTPUT_PORT_TYPE +oci_reg_readdata[30] <= oci_reg_readdata.DB_MAX_OUTPUT_PORT_TYPE +oci_reg_readdata[31] <= oci_reg_readdata.DB_MAX_OUTPUT_PORT_TYPE +oci_single_step_mode <= oci_single_step_mode~reg0.DB_MAX_OUTPUT_PORT_TYPE +ocireg_ers <= writedata[1].DB_MAX_OUTPUT_PORT_TYPE +ocireg_mrs <= writedata[0].DB_MAX_OUTPUT_PORT_TYPE +take_action_ocireg <= take_action_ocireg.DB_MAX_OUTPUT_PORT_TYPE + + +|lights|nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_oci_break:the_nios_system_nios2_processor_nios2_oci_break +clk => trigger_state.CLK +clk => break_readreg[0]~reg0.CLK +clk => break_readreg[1]~reg0.CLK +clk => break_readreg[2]~reg0.CLK +clk => break_readreg[3]~reg0.CLK +clk => break_readreg[4]~reg0.CLK +clk => break_readreg[5]~reg0.CLK +clk => break_readreg[6]~reg0.CLK +clk => break_readreg[7]~reg0.CLK +clk => break_readreg[8]~reg0.CLK +clk => break_readreg[9]~reg0.CLK +clk => break_readreg[10]~reg0.CLK +clk => break_readreg[11]~reg0.CLK +clk => break_readreg[12]~reg0.CLK +clk => break_readreg[13]~reg0.CLK +clk => break_readreg[14]~reg0.CLK +clk => break_readreg[15]~reg0.CLK +clk => break_readreg[16]~reg0.CLK +clk => break_readreg[17]~reg0.CLK +clk => break_readreg[18]~reg0.CLK +clk => break_readreg[19]~reg0.CLK +clk => break_readreg[20]~reg0.CLK +clk => break_readreg[21]~reg0.CLK +clk => break_readreg[22]~reg0.CLK +clk => break_readreg[23]~reg0.CLK +clk => break_readreg[24]~reg0.CLK +clk => break_readreg[25]~reg0.CLK +clk => break_readreg[26]~reg0.CLK +clk => break_readreg[27]~reg0.CLK +clk => break_readreg[28]~reg0.CLK +clk => break_readreg[29]~reg0.CLK +clk => break_readreg[30]~reg0.CLK +clk => break_readreg[31]~reg0.CLK +clk => trigbrktype~reg0.CLK +dbrk_break => trigbrktype.OUTPUTSELECT +dbrk_goto0 => always2.IN0 +dbrk_goto1 => always2.IN0 +jdo[0] => break_readreg.DATAB +jdo[0] => break_readreg.DATAB +jdo[0] => break_readreg.DATAB +jdo[1] => break_readreg.DATAB +jdo[1] => break_readreg.DATAB +jdo[1] => break_readreg.DATAB +jdo[2] => break_readreg.DATAB +jdo[2] => break_readreg.DATAB +jdo[2] => break_readreg.DATAB +jdo[3] => break_readreg.DATAB +jdo[3] => break_readreg.DATAB +jdo[3] => break_readreg.DATAB +jdo[4] => break_readreg.DATAB +jdo[4] => break_readreg.DATAB +jdo[4] => break_readreg.DATAB +jdo[5] => break_readreg.DATAB +jdo[5] => break_readreg.DATAB +jdo[5] => break_readreg.DATAB +jdo[6] => break_readreg.DATAB +jdo[6] => break_readreg.DATAB +jdo[6] => break_readreg.DATAB +jdo[7] => break_readreg.DATAB +jdo[7] => break_readreg.DATAB +jdo[7] => break_readreg.DATAB +jdo[8] => break_readreg.DATAB +jdo[8] => break_readreg.DATAB +jdo[8] => break_readreg.DATAB +jdo[9] => break_readreg.DATAB +jdo[9] => break_readreg.DATAB +jdo[9] => break_readreg.DATAB +jdo[10] => break_readreg.DATAB +jdo[10] => break_readreg.DATAB +jdo[10] => break_readreg.DATAB +jdo[11] => break_readreg.DATAB +jdo[11] => break_readreg.DATAB +jdo[11] => break_readreg.DATAB +jdo[12] => break_readreg.DATAB +jdo[12] => break_readreg.DATAB +jdo[12] => break_readreg.DATAB +jdo[13] => break_readreg.DATAB +jdo[13] => break_readreg.DATAB +jdo[13] => break_readreg.DATAB +jdo[14] => break_readreg.DATAB +jdo[14] => break_readreg.DATAB +jdo[14] => break_readreg.DATAB +jdo[15] => break_readreg.DATAB +jdo[15] => break_readreg.DATAB +jdo[15] => break_readreg.DATAB +jdo[16] => break_readreg.DATAB +jdo[16] => break_readreg.DATAB +jdo[16] => break_readreg.DATAB +jdo[17] => break_readreg.DATAB +jdo[17] => break_readreg.DATAB +jdo[17] => break_readreg.DATAB +jdo[18] => break_readreg.DATAB +jdo[18] => break_readreg.DATAB +jdo[18] => break_readreg.DATAB +jdo[19] => break_readreg.DATAB +jdo[19] => break_readreg.DATAB +jdo[19] => break_readreg.DATAB +jdo[20] => break_readreg.DATAB +jdo[20] => break_readreg.DATAB +jdo[20] => break_readreg.DATAB +jdo[21] => break_readreg.DATAB +jdo[21] => break_readreg.DATAB +jdo[21] => break_readreg.DATAB +jdo[22] => break_readreg.DATAB +jdo[22] => break_readreg.DATAB +jdo[22] => break_readreg.DATAB +jdo[23] => break_readreg.DATAB +jdo[23] => break_readreg.DATAB +jdo[23] => break_readreg.DATAB +jdo[24] => break_readreg.DATAB +jdo[24] => break_readreg.DATAB +jdo[24] => break_readreg.DATAB +jdo[25] => break_readreg.DATAB +jdo[25] => break_readreg.DATAB +jdo[25] => break_readreg.DATAB +jdo[26] => break_readreg.DATAB +jdo[26] => break_readreg.DATAB +jdo[26] => break_readreg.DATAB +jdo[27] => break_readreg.DATAB +jdo[27] => break_readreg.DATAB +jdo[27] => break_readreg.DATAB +jdo[28] => break_readreg.DATAB +jdo[28] => break_readreg.DATAB +jdo[28] => break_readreg.DATAB +jdo[29] => break_readreg.DATAB +jdo[29] => break_readreg.DATAB +jdo[29] => break_readreg.DATAB +jdo[30] => break_readreg.DATAB +jdo[30] => break_readreg.DATAB +jdo[30] => break_readreg.DATAB +jdo[31] => break_readreg.DATAB +jdo[31] => break_readreg.DATAB +jdo[31] => break_readreg.DATAB +jdo[32] => ~NO_FANOUT~ +jdo[33] => ~NO_FANOUT~ +jdo[34] => ~NO_FANOUT~ +jdo[35] => ~NO_FANOUT~ +jdo[36] => ~NO_FANOUT~ +jdo[37] => ~NO_FANOUT~ +jrst_n => break_readreg[0]~reg0.ACLR +jrst_n => break_readreg[1]~reg0.ACLR +jrst_n => break_readreg[2]~reg0.ACLR +jrst_n => break_readreg[3]~reg0.ACLR +jrst_n => break_readreg[4]~reg0.ACLR +jrst_n => break_readreg[5]~reg0.ACLR +jrst_n => break_readreg[6]~reg0.ACLR +jrst_n => break_readreg[7]~reg0.ACLR +jrst_n => break_readreg[8]~reg0.ACLR +jrst_n => break_readreg[9]~reg0.ACLR +jrst_n => break_readreg[10]~reg0.ACLR +jrst_n => break_readreg[11]~reg0.ACLR +jrst_n => break_readreg[12]~reg0.ACLR +jrst_n => break_readreg[13]~reg0.ACLR +jrst_n => break_readreg[14]~reg0.ACLR +jrst_n => break_readreg[15]~reg0.ACLR +jrst_n => break_readreg[16]~reg0.ACLR +jrst_n => break_readreg[17]~reg0.ACLR +jrst_n => break_readreg[18]~reg0.ACLR +jrst_n => break_readreg[19]~reg0.ACLR +jrst_n => break_readreg[20]~reg0.ACLR +jrst_n => break_readreg[21]~reg0.ACLR +jrst_n => break_readreg[22]~reg0.ACLR +jrst_n => break_readreg[23]~reg0.ACLR +jrst_n => break_readreg[24]~reg0.ACLR +jrst_n => break_readreg[25]~reg0.ACLR +jrst_n => break_readreg[26]~reg0.ACLR +jrst_n => break_readreg[27]~reg0.ACLR +jrst_n => break_readreg[28]~reg0.ACLR +jrst_n => break_readreg[29]~reg0.ACLR +jrst_n => break_readreg[30]~reg0.ACLR +jrst_n => break_readreg[31]~reg0.ACLR +jrst_n => trigbrktype~reg0.ACLR +reset_n => trigger_state.ACLR +take_action_break_a => take_action_any_break.IN0 +take_action_break_b => take_action_any_break.IN1 +take_action_break_c => take_action_any_break.IN1 +take_no_action_break_a => break_readreg.OUTPUTSELECT +take_no_action_break_a => break_readreg.OUTPUTSELECT +take_no_action_break_a => break_readreg.OUTPUTSELECT +take_no_action_break_a => break_readreg.OUTPUTSELECT +take_no_action_break_a => break_readreg.OUTPUTSELECT +take_no_action_break_a => break_readreg.OUTPUTSELECT +take_no_action_break_a => break_readreg.OUTPUTSELECT +take_no_action_break_a => break_readreg.OUTPUTSELECT +take_no_action_break_a => break_readreg.OUTPUTSELECT +take_no_action_break_a => break_readreg.OUTPUTSELECT +take_no_action_break_a => break_readreg.OUTPUTSELECT +take_no_action_break_a => break_readreg.OUTPUTSELECT +take_no_action_break_a => break_readreg.OUTPUTSELECT +take_no_action_break_a => break_readreg.OUTPUTSELECT +take_no_action_break_a => break_readreg.OUTPUTSELECT +take_no_action_break_a => break_readreg.OUTPUTSELECT +take_no_action_break_a => break_readreg.OUTPUTSELECT +take_no_action_break_a => break_readreg.OUTPUTSELECT +take_no_action_break_a => break_readreg.OUTPUTSELECT +take_no_action_break_a => break_readreg.OUTPUTSELECT +take_no_action_break_a => break_readreg.OUTPUTSELECT +take_no_action_break_a => break_readreg.OUTPUTSELECT +take_no_action_break_a => break_readreg.OUTPUTSELECT +take_no_action_break_a => break_readreg.OUTPUTSELECT +take_no_action_break_a => break_readreg.OUTPUTSELECT +take_no_action_break_a => break_readreg.OUTPUTSELECT +take_no_action_break_a => break_readreg.OUTPUTSELECT +take_no_action_break_a => break_readreg.OUTPUTSELECT +take_no_action_break_a => break_readreg.OUTPUTSELECT +take_no_action_break_a => break_readreg.OUTPUTSELECT +take_no_action_break_a => break_readreg.OUTPUTSELECT +take_no_action_break_a => break_readreg.OUTPUTSELECT +take_no_action_break_b => break_readreg.OUTPUTSELECT +take_no_action_break_b => break_readreg.OUTPUTSELECT +take_no_action_break_b => break_readreg.OUTPUTSELECT +take_no_action_break_b => break_readreg.OUTPUTSELECT +take_no_action_break_b => break_readreg.OUTPUTSELECT +take_no_action_break_b => break_readreg.OUTPUTSELECT +take_no_action_break_b => break_readreg.OUTPUTSELECT +take_no_action_break_b => break_readreg.OUTPUTSELECT +take_no_action_break_b => break_readreg.OUTPUTSELECT +take_no_action_break_b => break_readreg.OUTPUTSELECT +take_no_action_break_b => break_readreg.OUTPUTSELECT +take_no_action_break_b => break_readreg.OUTPUTSELECT +take_no_action_break_b => break_readreg.OUTPUTSELECT +take_no_action_break_b => break_readreg.OUTPUTSELECT +take_no_action_break_b => break_readreg.OUTPUTSELECT +take_no_action_break_b => break_readreg.OUTPUTSELECT +take_no_action_break_b => break_readreg.OUTPUTSELECT +take_no_action_break_b => break_readreg.OUTPUTSELECT +take_no_action_break_b => break_readreg.OUTPUTSELECT +take_no_action_break_b => break_readreg.OUTPUTSELECT +take_no_action_break_b => break_readreg.OUTPUTSELECT +take_no_action_break_b => break_readreg.OUTPUTSELECT +take_no_action_break_b => break_readreg.OUTPUTSELECT +take_no_action_break_b => break_readreg.OUTPUTSELECT +take_no_action_break_b => break_readreg.OUTPUTSELECT +take_no_action_break_b => break_readreg.OUTPUTSELECT +take_no_action_break_b => break_readreg.OUTPUTSELECT +take_no_action_break_b => break_readreg.OUTPUTSELECT +take_no_action_break_b => break_readreg.OUTPUTSELECT +take_no_action_break_b => break_readreg.OUTPUTSELECT +take_no_action_break_b => break_readreg.OUTPUTSELECT +take_no_action_break_b => break_readreg.OUTPUTSELECT +take_no_action_break_c => break_readreg.OUTPUTSELECT +take_no_action_break_c => break_readreg.OUTPUTSELECT +take_no_action_break_c => break_readreg.OUTPUTSELECT +take_no_action_break_c => break_readreg.OUTPUTSELECT +take_no_action_break_c => break_readreg.OUTPUTSELECT +take_no_action_break_c => break_readreg.OUTPUTSELECT +take_no_action_break_c => break_readreg.OUTPUTSELECT +take_no_action_break_c => break_readreg.OUTPUTSELECT +take_no_action_break_c => break_readreg.OUTPUTSELECT +take_no_action_break_c => break_readreg.OUTPUTSELECT +take_no_action_break_c => break_readreg.OUTPUTSELECT +take_no_action_break_c => break_readreg.OUTPUTSELECT +take_no_action_break_c => break_readreg.OUTPUTSELECT +take_no_action_break_c => break_readreg.OUTPUTSELECT +take_no_action_break_c => break_readreg.OUTPUTSELECT +take_no_action_break_c => break_readreg.OUTPUTSELECT +take_no_action_break_c => break_readreg.OUTPUTSELECT +take_no_action_break_c => break_readreg.OUTPUTSELECT +take_no_action_break_c => break_readreg.OUTPUTSELECT +take_no_action_break_c => break_readreg.OUTPUTSELECT +take_no_action_break_c => break_readreg.OUTPUTSELECT +take_no_action_break_c => break_readreg.OUTPUTSELECT +take_no_action_break_c => break_readreg.OUTPUTSELECT +take_no_action_break_c => break_readreg.OUTPUTSELECT +take_no_action_break_c => break_readreg.OUTPUTSELECT +take_no_action_break_c => break_readreg.OUTPUTSELECT +take_no_action_break_c => break_readreg.OUTPUTSELECT +take_no_action_break_c => break_readreg.OUTPUTSELECT +take_no_action_break_c => break_readreg.OUTPUTSELECT +take_no_action_break_c => break_readreg.OUTPUTSELECT +take_no_action_break_c => break_readreg.OUTPUTSELECT +take_no_action_break_c => break_readreg.OUTPUTSELECT +xbrk_goto0 => always2.IN1 +xbrk_goto1 => always2.IN1 +break_readreg[0] <= break_readreg[0]~reg0.DB_MAX_OUTPUT_PORT_TYPE +break_readreg[1] <= break_readreg[1]~reg0.DB_MAX_OUTPUT_PORT_TYPE +break_readreg[2] <= break_readreg[2]~reg0.DB_MAX_OUTPUT_PORT_TYPE +break_readreg[3] <= break_readreg[3]~reg0.DB_MAX_OUTPUT_PORT_TYPE +break_readreg[4] <= break_readreg[4]~reg0.DB_MAX_OUTPUT_PORT_TYPE +break_readreg[5] <= break_readreg[5]~reg0.DB_MAX_OUTPUT_PORT_TYPE +break_readreg[6] <= break_readreg[6]~reg0.DB_MAX_OUTPUT_PORT_TYPE +break_readreg[7] <= break_readreg[7]~reg0.DB_MAX_OUTPUT_PORT_TYPE +break_readreg[8] <= break_readreg[8]~reg0.DB_MAX_OUTPUT_PORT_TYPE +break_readreg[9] <= break_readreg[9]~reg0.DB_MAX_OUTPUT_PORT_TYPE +break_readreg[10] <= break_readreg[10]~reg0.DB_MAX_OUTPUT_PORT_TYPE +break_readreg[11] <= break_readreg[11]~reg0.DB_MAX_OUTPUT_PORT_TYPE +break_readreg[12] <= break_readreg[12]~reg0.DB_MAX_OUTPUT_PORT_TYPE +break_readreg[13] <= break_readreg[13]~reg0.DB_MAX_OUTPUT_PORT_TYPE +break_readreg[14] <= break_readreg[14]~reg0.DB_MAX_OUTPUT_PORT_TYPE +break_readreg[15] <= break_readreg[15]~reg0.DB_MAX_OUTPUT_PORT_TYPE +break_readreg[16] <= break_readreg[16]~reg0.DB_MAX_OUTPUT_PORT_TYPE +break_readreg[17] <= break_readreg[17]~reg0.DB_MAX_OUTPUT_PORT_TYPE +break_readreg[18] <= break_readreg[18]~reg0.DB_MAX_OUTPUT_PORT_TYPE +break_readreg[19] <= break_readreg[19]~reg0.DB_MAX_OUTPUT_PORT_TYPE +break_readreg[20] <= break_readreg[20]~reg0.DB_MAX_OUTPUT_PORT_TYPE +break_readreg[21] <= break_readreg[21]~reg0.DB_MAX_OUTPUT_PORT_TYPE +break_readreg[22] <= break_readreg[22]~reg0.DB_MAX_OUTPUT_PORT_TYPE +break_readreg[23] <= break_readreg[23]~reg0.DB_MAX_OUTPUT_PORT_TYPE +break_readreg[24] <= break_readreg[24]~reg0.DB_MAX_OUTPUT_PORT_TYPE +break_readreg[25] <= break_readreg[25]~reg0.DB_MAX_OUTPUT_PORT_TYPE +break_readreg[26] <= break_readreg[26]~reg0.DB_MAX_OUTPUT_PORT_TYPE +break_readreg[27] <= break_readreg[27]~reg0.DB_MAX_OUTPUT_PORT_TYPE +break_readreg[28] <= break_readreg[28]~reg0.DB_MAX_OUTPUT_PORT_TYPE +break_readreg[29] <= break_readreg[29]~reg0.DB_MAX_OUTPUT_PORT_TYPE +break_readreg[30] <= break_readreg[30]~reg0.DB_MAX_OUTPUT_PORT_TYPE +break_readreg[31] <= break_readreg[31]~reg0.DB_MAX_OUTPUT_PORT_TYPE +dbrk_hit0_latch <= +dbrk_hit1_latch <= +dbrk_hit2_latch <= +dbrk_hit3_latch <= +trigbrktype <= trigbrktype~reg0.DB_MAX_OUTPUT_PORT_TYPE +trigger_state_0 <= trigger_state.DB_MAX_OUTPUT_PORT_TYPE +trigger_state_1 <= trigger_state.DB_MAX_OUTPUT_PORT_TYPE +xbrk_ctrl0[0] <= +xbrk_ctrl0[1] <= +xbrk_ctrl0[2] <= +xbrk_ctrl0[3] <= +xbrk_ctrl0[4] <= +xbrk_ctrl0[5] <= +xbrk_ctrl0[6] <= +xbrk_ctrl0[7] <= +xbrk_ctrl1[0] <= +xbrk_ctrl1[1] <= +xbrk_ctrl1[2] <= +xbrk_ctrl1[3] <= +xbrk_ctrl1[4] <= +xbrk_ctrl1[5] <= +xbrk_ctrl1[6] <= +xbrk_ctrl1[7] <= +xbrk_ctrl2[0] <= +xbrk_ctrl2[1] <= +xbrk_ctrl2[2] <= +xbrk_ctrl2[3] <= +xbrk_ctrl2[4] <= +xbrk_ctrl2[5] <= +xbrk_ctrl2[6] <= +xbrk_ctrl2[7] <= +xbrk_ctrl3[0] <= +xbrk_ctrl3[1] <= +xbrk_ctrl3[2] <= +xbrk_ctrl3[3] <= +xbrk_ctrl3[4] <= +xbrk_ctrl3[5] <= +xbrk_ctrl3[6] <= +xbrk_ctrl3[7] <= + + +|lights|nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_oci_xbrk:the_nios_system_nios2_processor_nios2_oci_xbrk +D_valid => ~NO_FANOUT~ +E_valid => xbrk_break~reg0.ENA +F_pc[0] => ~NO_FANOUT~ +F_pc[1] => ~NO_FANOUT~ +F_pc[2] => ~NO_FANOUT~ +F_pc[3] => ~NO_FANOUT~ +F_pc[4] => ~NO_FANOUT~ +F_pc[5] => ~NO_FANOUT~ +F_pc[6] => ~NO_FANOUT~ +F_pc[7] => ~NO_FANOUT~ +F_pc[8] => ~NO_FANOUT~ +F_pc[9] => ~NO_FANOUT~ +F_pc[10] => ~NO_FANOUT~ +F_pc[11] => ~NO_FANOUT~ +F_pc[12] => ~NO_FANOUT~ +F_pc[13] => ~NO_FANOUT~ +F_pc[14] => ~NO_FANOUT~ +F_pc[15] => ~NO_FANOUT~ +F_pc[16] => ~NO_FANOUT~ +clk => xbrk_break~reg0.CLK +reset_n => xbrk_break~reg0.ACLR +trigger_state_0 => ~NO_FANOUT~ +trigger_state_1 => ~NO_FANOUT~ +xbrk_ctrl0[0] => ~NO_FANOUT~ +xbrk_ctrl0[1] => ~NO_FANOUT~ +xbrk_ctrl0[2] => ~NO_FANOUT~ +xbrk_ctrl0[3] => ~NO_FANOUT~ +xbrk_ctrl0[4] => ~NO_FANOUT~ +xbrk_ctrl0[5] => ~NO_FANOUT~ +xbrk_ctrl0[6] => ~NO_FANOUT~ +xbrk_ctrl0[7] => ~NO_FANOUT~ +xbrk_ctrl1[0] => ~NO_FANOUT~ +xbrk_ctrl1[1] => ~NO_FANOUT~ +xbrk_ctrl1[2] => ~NO_FANOUT~ +xbrk_ctrl1[3] => ~NO_FANOUT~ +xbrk_ctrl1[4] => ~NO_FANOUT~ +xbrk_ctrl1[5] => ~NO_FANOUT~ +xbrk_ctrl1[6] => ~NO_FANOUT~ +xbrk_ctrl1[7] => ~NO_FANOUT~ +xbrk_ctrl2[0] => ~NO_FANOUT~ +xbrk_ctrl2[1] => ~NO_FANOUT~ +xbrk_ctrl2[2] => ~NO_FANOUT~ +xbrk_ctrl2[3] => ~NO_FANOUT~ +xbrk_ctrl2[4] => ~NO_FANOUT~ +xbrk_ctrl2[5] => ~NO_FANOUT~ +xbrk_ctrl2[6] => ~NO_FANOUT~ +xbrk_ctrl2[7] => ~NO_FANOUT~ +xbrk_ctrl3[0] => ~NO_FANOUT~ +xbrk_ctrl3[1] => ~NO_FANOUT~ +xbrk_ctrl3[2] => ~NO_FANOUT~ +xbrk_ctrl3[3] => ~NO_FANOUT~ +xbrk_ctrl3[4] => ~NO_FANOUT~ +xbrk_ctrl3[5] => ~NO_FANOUT~ +xbrk_ctrl3[6] => ~NO_FANOUT~ +xbrk_ctrl3[7] => ~NO_FANOUT~ +xbrk_break <= xbrk_break~reg0.DB_MAX_OUTPUT_PORT_TYPE +xbrk_goto0 <= +xbrk_goto1 <= +xbrk_traceoff <= +xbrk_traceon <= +xbrk_trigout <= + + +|lights|nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_oci_dbrk:the_nios_system_nios2_processor_nios2_oci_dbrk +E_st_data[0] => cpu_d_writedata[0].DATAIN +E_st_data[1] => cpu_d_writedata[1].DATAIN +E_st_data[2] => cpu_d_writedata[2].DATAIN +E_st_data[3] => cpu_d_writedata[3].DATAIN +E_st_data[4] => cpu_d_writedata[4].DATAIN +E_st_data[5] => cpu_d_writedata[5].DATAIN +E_st_data[6] => cpu_d_writedata[6].DATAIN +E_st_data[7] => cpu_d_writedata[7].DATAIN +E_st_data[8] => cpu_d_writedata[8].DATAIN +E_st_data[9] => cpu_d_writedata[9].DATAIN +E_st_data[10] => cpu_d_writedata[10].DATAIN +E_st_data[11] => cpu_d_writedata[11].DATAIN +E_st_data[12] => cpu_d_writedata[12].DATAIN +E_st_data[13] => cpu_d_writedata[13].DATAIN +E_st_data[14] => cpu_d_writedata[14].DATAIN +E_st_data[15] => cpu_d_writedata[15].DATAIN +E_st_data[16] => cpu_d_writedata[16].DATAIN +E_st_data[17] => cpu_d_writedata[17].DATAIN +E_st_data[18] => cpu_d_writedata[18].DATAIN +E_st_data[19] => cpu_d_writedata[19].DATAIN +E_st_data[20] => cpu_d_writedata[20].DATAIN +E_st_data[21] => cpu_d_writedata[21].DATAIN +E_st_data[22] => cpu_d_writedata[22].DATAIN +E_st_data[23] => cpu_d_writedata[23].DATAIN +E_st_data[24] => cpu_d_writedata[24].DATAIN +E_st_data[25] => cpu_d_writedata[25].DATAIN +E_st_data[26] => cpu_d_writedata[26].DATAIN +E_st_data[27] => cpu_d_writedata[27].DATAIN +E_st_data[28] => cpu_d_writedata[28].DATAIN +E_st_data[29] => cpu_d_writedata[29].DATAIN +E_st_data[30] => cpu_d_writedata[30].DATAIN +E_st_data[31] => cpu_d_writedata[31].DATAIN +av_ld_data_aligned_filtered[0] => cpu_d_readdata[0].DATAIN +av_ld_data_aligned_filtered[1] => cpu_d_readdata[1].DATAIN +av_ld_data_aligned_filtered[2] => cpu_d_readdata[2].DATAIN +av_ld_data_aligned_filtered[3] => cpu_d_readdata[3].DATAIN +av_ld_data_aligned_filtered[4] => cpu_d_readdata[4].DATAIN +av_ld_data_aligned_filtered[5] => cpu_d_readdata[5].DATAIN +av_ld_data_aligned_filtered[6] => cpu_d_readdata[6].DATAIN +av_ld_data_aligned_filtered[7] => cpu_d_readdata[7].DATAIN +av_ld_data_aligned_filtered[8] => cpu_d_readdata[8].DATAIN +av_ld_data_aligned_filtered[9] => cpu_d_readdata[9].DATAIN +av_ld_data_aligned_filtered[10] => cpu_d_readdata[10].DATAIN +av_ld_data_aligned_filtered[11] => cpu_d_readdata[11].DATAIN +av_ld_data_aligned_filtered[12] => cpu_d_readdata[12].DATAIN +av_ld_data_aligned_filtered[13] => cpu_d_readdata[13].DATAIN +av_ld_data_aligned_filtered[14] => cpu_d_readdata[14].DATAIN +av_ld_data_aligned_filtered[15] => cpu_d_readdata[15].DATAIN +av_ld_data_aligned_filtered[16] => cpu_d_readdata[16].DATAIN +av_ld_data_aligned_filtered[17] => cpu_d_readdata[17].DATAIN +av_ld_data_aligned_filtered[18] => cpu_d_readdata[18].DATAIN +av_ld_data_aligned_filtered[19] => cpu_d_readdata[19].DATAIN +av_ld_data_aligned_filtered[20] => cpu_d_readdata[20].DATAIN +av_ld_data_aligned_filtered[21] => cpu_d_readdata[21].DATAIN +av_ld_data_aligned_filtered[22] => cpu_d_readdata[22].DATAIN +av_ld_data_aligned_filtered[23] => cpu_d_readdata[23].DATAIN +av_ld_data_aligned_filtered[24] => cpu_d_readdata[24].DATAIN +av_ld_data_aligned_filtered[25] => cpu_d_readdata[25].DATAIN +av_ld_data_aligned_filtered[26] => cpu_d_readdata[26].DATAIN +av_ld_data_aligned_filtered[27] => cpu_d_readdata[27].DATAIN +av_ld_data_aligned_filtered[28] => cpu_d_readdata[28].DATAIN +av_ld_data_aligned_filtered[29] => cpu_d_readdata[29].DATAIN +av_ld_data_aligned_filtered[30] => cpu_d_readdata[30].DATAIN +av_ld_data_aligned_filtered[31] => cpu_d_readdata[31].DATAIN +clk => dbrk_goto1~reg0.CLK +clk => dbrk_goto0~reg0.CLK +clk => dbrk_traceme~reg0.CLK +clk => dbrk_traceon~reg0.CLK +clk => dbrk_traceoff~reg0.CLK +clk => dbrk_break_pulse.CLK +clk => dbrk_trigout~reg0.CLK +clk => dbrk_break~reg0.CLK +d_address[0] => cpu_d_address[0].DATAIN +d_address[1] => cpu_d_address[1].DATAIN +d_address[2] => cpu_d_address[2].DATAIN +d_address[3] => cpu_d_address[3].DATAIN +d_address[4] => cpu_d_address[4].DATAIN +d_address[5] => cpu_d_address[5].DATAIN +d_address[6] => cpu_d_address[6].DATAIN +d_address[7] => cpu_d_address[7].DATAIN +d_address[8] => cpu_d_address[8].DATAIN +d_address[9] => cpu_d_address[9].DATAIN +d_address[10] => cpu_d_address[10].DATAIN +d_address[11] => cpu_d_address[11].DATAIN +d_address[12] => cpu_d_address[12].DATAIN +d_address[13] => cpu_d_address[13].DATAIN +d_address[14] => cpu_d_address[14].DATAIN +d_address[15] => cpu_d_address[15].DATAIN +d_address[16] => cpu_d_address[16].DATAIN +d_address[17] => cpu_d_address[17].DATAIN +d_address[18] => cpu_d_address[18].DATAIN +d_read => cpu_d_read.DATAIN +d_waitrequest => cpu_d_wait.DATAIN +d_write => cpu_d_write.DATAIN +debugack => dbrk_break.DATAB +reset_n => dbrk_goto1~reg0.ACLR +reset_n => dbrk_goto0~reg0.ACLR +reset_n => dbrk_traceme~reg0.ACLR +reset_n => dbrk_traceon~reg0.ACLR +reset_n => dbrk_traceoff~reg0.ACLR +reset_n => dbrk_break_pulse.ACLR +reset_n => dbrk_trigout~reg0.ACLR +reset_n => dbrk_break~reg0.ACLR +cpu_d_address[0] <= d_address[0].DB_MAX_OUTPUT_PORT_TYPE +cpu_d_address[1] <= d_address[1].DB_MAX_OUTPUT_PORT_TYPE +cpu_d_address[2] <= d_address[2].DB_MAX_OUTPUT_PORT_TYPE +cpu_d_address[3] <= d_address[3].DB_MAX_OUTPUT_PORT_TYPE +cpu_d_address[4] <= d_address[4].DB_MAX_OUTPUT_PORT_TYPE +cpu_d_address[5] <= d_address[5].DB_MAX_OUTPUT_PORT_TYPE +cpu_d_address[6] <= d_address[6].DB_MAX_OUTPUT_PORT_TYPE +cpu_d_address[7] <= d_address[7].DB_MAX_OUTPUT_PORT_TYPE +cpu_d_address[8] <= d_address[8].DB_MAX_OUTPUT_PORT_TYPE +cpu_d_address[9] <= d_address[9].DB_MAX_OUTPUT_PORT_TYPE +cpu_d_address[10] <= d_address[10].DB_MAX_OUTPUT_PORT_TYPE +cpu_d_address[11] <= d_address[11].DB_MAX_OUTPUT_PORT_TYPE +cpu_d_address[12] <= d_address[12].DB_MAX_OUTPUT_PORT_TYPE +cpu_d_address[13] <= d_address[13].DB_MAX_OUTPUT_PORT_TYPE +cpu_d_address[14] <= d_address[14].DB_MAX_OUTPUT_PORT_TYPE +cpu_d_address[15] <= d_address[15].DB_MAX_OUTPUT_PORT_TYPE +cpu_d_address[16] <= d_address[16].DB_MAX_OUTPUT_PORT_TYPE +cpu_d_address[17] <= d_address[17].DB_MAX_OUTPUT_PORT_TYPE +cpu_d_address[18] <= d_address[18].DB_MAX_OUTPUT_PORT_TYPE +cpu_d_read <= d_read.DB_MAX_OUTPUT_PORT_TYPE +cpu_d_readdata[0] <= av_ld_data_aligned_filtered[0].DB_MAX_OUTPUT_PORT_TYPE +cpu_d_readdata[1] <= av_ld_data_aligned_filtered[1].DB_MAX_OUTPUT_PORT_TYPE +cpu_d_readdata[2] <= av_ld_data_aligned_filtered[2].DB_MAX_OUTPUT_PORT_TYPE +cpu_d_readdata[3] <= av_ld_data_aligned_filtered[3].DB_MAX_OUTPUT_PORT_TYPE +cpu_d_readdata[4] <= av_ld_data_aligned_filtered[4].DB_MAX_OUTPUT_PORT_TYPE +cpu_d_readdata[5] <= av_ld_data_aligned_filtered[5].DB_MAX_OUTPUT_PORT_TYPE +cpu_d_readdata[6] <= av_ld_data_aligned_filtered[6].DB_MAX_OUTPUT_PORT_TYPE +cpu_d_readdata[7] <= av_ld_data_aligned_filtered[7].DB_MAX_OUTPUT_PORT_TYPE +cpu_d_readdata[8] <= av_ld_data_aligned_filtered[8].DB_MAX_OUTPUT_PORT_TYPE +cpu_d_readdata[9] <= av_ld_data_aligned_filtered[9].DB_MAX_OUTPUT_PORT_TYPE +cpu_d_readdata[10] <= av_ld_data_aligned_filtered[10].DB_MAX_OUTPUT_PORT_TYPE +cpu_d_readdata[11] <= av_ld_data_aligned_filtered[11].DB_MAX_OUTPUT_PORT_TYPE +cpu_d_readdata[12] <= av_ld_data_aligned_filtered[12].DB_MAX_OUTPUT_PORT_TYPE +cpu_d_readdata[13] <= av_ld_data_aligned_filtered[13].DB_MAX_OUTPUT_PORT_TYPE +cpu_d_readdata[14] <= av_ld_data_aligned_filtered[14].DB_MAX_OUTPUT_PORT_TYPE +cpu_d_readdata[15] <= av_ld_data_aligned_filtered[15].DB_MAX_OUTPUT_PORT_TYPE +cpu_d_readdata[16] <= av_ld_data_aligned_filtered[16].DB_MAX_OUTPUT_PORT_TYPE +cpu_d_readdata[17] <= av_ld_data_aligned_filtered[17].DB_MAX_OUTPUT_PORT_TYPE +cpu_d_readdata[18] <= av_ld_data_aligned_filtered[18].DB_MAX_OUTPUT_PORT_TYPE +cpu_d_readdata[19] <= av_ld_data_aligned_filtered[19].DB_MAX_OUTPUT_PORT_TYPE +cpu_d_readdata[20] <= av_ld_data_aligned_filtered[20].DB_MAX_OUTPUT_PORT_TYPE +cpu_d_readdata[21] <= av_ld_data_aligned_filtered[21].DB_MAX_OUTPUT_PORT_TYPE +cpu_d_readdata[22] <= av_ld_data_aligned_filtered[22].DB_MAX_OUTPUT_PORT_TYPE +cpu_d_readdata[23] <= av_ld_data_aligned_filtered[23].DB_MAX_OUTPUT_PORT_TYPE +cpu_d_readdata[24] <= av_ld_data_aligned_filtered[24].DB_MAX_OUTPUT_PORT_TYPE +cpu_d_readdata[25] <= av_ld_data_aligned_filtered[25].DB_MAX_OUTPUT_PORT_TYPE +cpu_d_readdata[26] <= av_ld_data_aligned_filtered[26].DB_MAX_OUTPUT_PORT_TYPE +cpu_d_readdata[27] <= av_ld_data_aligned_filtered[27].DB_MAX_OUTPUT_PORT_TYPE +cpu_d_readdata[28] <= av_ld_data_aligned_filtered[28].DB_MAX_OUTPUT_PORT_TYPE +cpu_d_readdata[29] <= av_ld_data_aligned_filtered[29].DB_MAX_OUTPUT_PORT_TYPE +cpu_d_readdata[30] <= av_ld_data_aligned_filtered[30].DB_MAX_OUTPUT_PORT_TYPE +cpu_d_readdata[31] <= av_ld_data_aligned_filtered[31].DB_MAX_OUTPUT_PORT_TYPE +cpu_d_wait <= d_waitrequest.DB_MAX_OUTPUT_PORT_TYPE +cpu_d_write <= d_write.DB_MAX_OUTPUT_PORT_TYPE +cpu_d_writedata[0] <= E_st_data[0].DB_MAX_OUTPUT_PORT_TYPE +cpu_d_writedata[1] <= E_st_data[1].DB_MAX_OUTPUT_PORT_TYPE +cpu_d_writedata[2] <= E_st_data[2].DB_MAX_OUTPUT_PORT_TYPE +cpu_d_writedata[3] <= E_st_data[3].DB_MAX_OUTPUT_PORT_TYPE +cpu_d_writedata[4] <= E_st_data[4].DB_MAX_OUTPUT_PORT_TYPE +cpu_d_writedata[5] <= E_st_data[5].DB_MAX_OUTPUT_PORT_TYPE +cpu_d_writedata[6] <= E_st_data[6].DB_MAX_OUTPUT_PORT_TYPE +cpu_d_writedata[7] <= E_st_data[7].DB_MAX_OUTPUT_PORT_TYPE +cpu_d_writedata[8] <= E_st_data[8].DB_MAX_OUTPUT_PORT_TYPE +cpu_d_writedata[9] <= E_st_data[9].DB_MAX_OUTPUT_PORT_TYPE +cpu_d_writedata[10] <= E_st_data[10].DB_MAX_OUTPUT_PORT_TYPE +cpu_d_writedata[11] <= E_st_data[11].DB_MAX_OUTPUT_PORT_TYPE +cpu_d_writedata[12] <= E_st_data[12].DB_MAX_OUTPUT_PORT_TYPE +cpu_d_writedata[13] <= E_st_data[13].DB_MAX_OUTPUT_PORT_TYPE +cpu_d_writedata[14] <= E_st_data[14].DB_MAX_OUTPUT_PORT_TYPE +cpu_d_writedata[15] <= E_st_data[15].DB_MAX_OUTPUT_PORT_TYPE +cpu_d_writedata[16] <= E_st_data[16].DB_MAX_OUTPUT_PORT_TYPE +cpu_d_writedata[17] <= E_st_data[17].DB_MAX_OUTPUT_PORT_TYPE +cpu_d_writedata[18] <= E_st_data[18].DB_MAX_OUTPUT_PORT_TYPE +cpu_d_writedata[19] <= E_st_data[19].DB_MAX_OUTPUT_PORT_TYPE +cpu_d_writedata[20] <= E_st_data[20].DB_MAX_OUTPUT_PORT_TYPE +cpu_d_writedata[21] <= E_st_data[21].DB_MAX_OUTPUT_PORT_TYPE +cpu_d_writedata[22] <= E_st_data[22].DB_MAX_OUTPUT_PORT_TYPE +cpu_d_writedata[23] <= E_st_data[23].DB_MAX_OUTPUT_PORT_TYPE +cpu_d_writedata[24] <= E_st_data[24].DB_MAX_OUTPUT_PORT_TYPE +cpu_d_writedata[25] <= E_st_data[25].DB_MAX_OUTPUT_PORT_TYPE +cpu_d_writedata[26] <= E_st_data[26].DB_MAX_OUTPUT_PORT_TYPE +cpu_d_writedata[27] <= E_st_data[27].DB_MAX_OUTPUT_PORT_TYPE +cpu_d_writedata[28] <= E_st_data[28].DB_MAX_OUTPUT_PORT_TYPE +cpu_d_writedata[29] <= E_st_data[29].DB_MAX_OUTPUT_PORT_TYPE +cpu_d_writedata[30] <= E_st_data[30].DB_MAX_OUTPUT_PORT_TYPE +cpu_d_writedata[31] <= E_st_data[31].DB_MAX_OUTPUT_PORT_TYPE +dbrk_break <= dbrk_break~reg0.DB_MAX_OUTPUT_PORT_TYPE +dbrk_goto0 <= dbrk_goto0~reg0.DB_MAX_OUTPUT_PORT_TYPE +dbrk_goto1 <= dbrk_goto1~reg0.DB_MAX_OUTPUT_PORT_TYPE +dbrk_traceme <= dbrk_traceme~reg0.DB_MAX_OUTPUT_PORT_TYPE +dbrk_traceoff <= dbrk_traceoff~reg0.DB_MAX_OUTPUT_PORT_TYPE +dbrk_traceon <= dbrk_traceon~reg0.DB_MAX_OUTPUT_PORT_TYPE +dbrk_trigout <= dbrk_trigout~reg0.DB_MAX_OUTPUT_PORT_TYPE + + +|lights|nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_oci_itrace:the_nios_system_nios2_processor_nios2_oci_itrace +clk => dct_count[0]~reg0.CLK +clk => dct_count[1]~reg0.CLK +clk => dct_count[2]~reg0.CLK +clk => dct_count[3]~reg0.CLK +clk => dct_buffer[0]~reg0.CLK +clk => dct_buffer[1]~reg0.CLK +clk => dct_buffer[2]~reg0.CLK +clk => dct_buffer[3]~reg0.CLK +clk => dct_buffer[4]~reg0.CLK +clk => dct_buffer[5]~reg0.CLK +clk => dct_buffer[6]~reg0.CLK +clk => dct_buffer[7]~reg0.CLK +clk => dct_buffer[8]~reg0.CLK +clk => dct_buffer[9]~reg0.CLK +clk => dct_buffer[10]~reg0.CLK +clk => dct_buffer[11]~reg0.CLK +clk => dct_buffer[12]~reg0.CLK +clk => dct_buffer[13]~reg0.CLK +clk => dct_buffer[14]~reg0.CLK +clk => dct_buffer[15]~reg0.CLK +clk => dct_buffer[16]~reg0.CLK +clk => dct_buffer[17]~reg0.CLK +clk => dct_buffer[18]~reg0.CLK +clk => dct_buffer[19]~reg0.CLK +clk => dct_buffer[20]~reg0.CLK +clk => dct_buffer[21]~reg0.CLK +clk => dct_buffer[22]~reg0.CLK +clk => dct_buffer[23]~reg0.CLK +clk => dct_buffer[24]~reg0.CLK +clk => dct_buffer[25]~reg0.CLK +clk => dct_buffer[26]~reg0.CLK +clk => dct_buffer[27]~reg0.CLK +clk => dct_buffer[28]~reg0.CLK +clk => dct_buffer[29]~reg0.CLK +clk => itm[0]~reg0.CLK +clk => itm[1]~reg0.CLK +clk => itm[2]~reg0.CLK +clk => itm[3]~reg0.CLK +clk => itm[4]~reg0.CLK +clk => itm[5]~reg0.CLK +clk => itm[6]~reg0.CLK +clk => itm[7]~reg0.CLK +clk => itm[8]~reg0.CLK +clk => itm[9]~reg0.CLK +clk => itm[10]~reg0.CLK +clk => itm[11]~reg0.CLK +clk => itm[12]~reg0.CLK +clk => itm[13]~reg0.CLK +clk => itm[14]~reg0.CLK +clk => itm[15]~reg0.CLK +clk => itm[16]~reg0.CLK +clk => itm[17]~reg0.CLK +clk => itm[18]~reg0.CLK +clk => itm[19]~reg0.CLK +clk => itm[20]~reg0.CLK +clk => itm[21]~reg0.CLK +clk => itm[22]~reg0.CLK +clk => itm[23]~reg0.CLK +clk => itm[24]~reg0.CLK +clk => itm[25]~reg0.CLK +clk => itm[26]~reg0.CLK +clk => itm[27]~reg0.CLK +clk => itm[28]~reg0.CLK +clk => itm[29]~reg0.CLK +clk => itm[30]~reg0.CLK +clk => itm[31]~reg0.CLK +clk => itm[32]~reg0.CLK +clk => itm[33]~reg0.CLK +clk => itm[34]~reg0.CLK +clk => itm[35]~reg0.CLK +dbrk_traceoff => ~NO_FANOUT~ +dbrk_traceon => ~NO_FANOUT~ +jdo[0] => ~NO_FANOUT~ +jdo[1] => ~NO_FANOUT~ +jdo[2] => ~NO_FANOUT~ +jdo[3] => ~NO_FANOUT~ +jdo[4] => ~NO_FANOUT~ +jdo[5] => ~NO_FANOUT~ +jdo[6] => ~NO_FANOUT~ +jdo[7] => ~NO_FANOUT~ +jdo[8] => ~NO_FANOUT~ +jdo[9] => ~NO_FANOUT~ +jdo[10] => ~NO_FANOUT~ +jdo[11] => ~NO_FANOUT~ +jdo[12] => ~NO_FANOUT~ +jdo[13] => ~NO_FANOUT~ +jdo[14] => ~NO_FANOUT~ +jdo[15] => ~NO_FANOUT~ +jrst_n => dct_count[0]~reg0.ACLR +jrst_n => dct_count[1]~reg0.ACLR +jrst_n => dct_count[2]~reg0.ACLR +jrst_n => dct_count[3]~reg0.ACLR +jrst_n => dct_buffer[0]~reg0.ACLR +jrst_n => dct_buffer[1]~reg0.ACLR +jrst_n => dct_buffer[2]~reg0.ACLR +jrst_n => dct_buffer[3]~reg0.ACLR +jrst_n => dct_buffer[4]~reg0.ACLR +jrst_n => dct_buffer[5]~reg0.ACLR +jrst_n => dct_buffer[6]~reg0.ACLR +jrst_n => dct_buffer[7]~reg0.ACLR +jrst_n => dct_buffer[8]~reg0.ACLR +jrst_n => dct_buffer[9]~reg0.ACLR +jrst_n => dct_buffer[10]~reg0.ACLR +jrst_n => dct_buffer[11]~reg0.ACLR +jrst_n => dct_buffer[12]~reg0.ACLR +jrst_n => dct_buffer[13]~reg0.ACLR +jrst_n => dct_buffer[14]~reg0.ACLR +jrst_n => dct_buffer[15]~reg0.ACLR +jrst_n => dct_buffer[16]~reg0.ACLR +jrst_n => dct_buffer[17]~reg0.ACLR +jrst_n => dct_buffer[18]~reg0.ACLR +jrst_n => dct_buffer[19]~reg0.ACLR +jrst_n => dct_buffer[20]~reg0.ACLR +jrst_n => dct_buffer[21]~reg0.ACLR +jrst_n => dct_buffer[22]~reg0.ACLR +jrst_n => dct_buffer[23]~reg0.ACLR +jrst_n => dct_buffer[24]~reg0.ACLR +jrst_n => dct_buffer[25]~reg0.ACLR +jrst_n => dct_buffer[26]~reg0.ACLR +jrst_n => dct_buffer[27]~reg0.ACLR +jrst_n => dct_buffer[28]~reg0.ACLR +jrst_n => dct_buffer[29]~reg0.ACLR +jrst_n => itm[0]~reg0.ACLR +jrst_n => itm[1]~reg0.ACLR +jrst_n => itm[2]~reg0.ACLR +jrst_n => itm[3]~reg0.ACLR +jrst_n => itm[4]~reg0.ACLR +jrst_n => itm[5]~reg0.ACLR +jrst_n => itm[6]~reg0.ACLR +jrst_n => itm[7]~reg0.ACLR +jrst_n => itm[8]~reg0.ACLR +jrst_n => itm[9]~reg0.ACLR +jrst_n => itm[10]~reg0.ACLR +jrst_n => itm[11]~reg0.ACLR +jrst_n => itm[12]~reg0.ACLR +jrst_n => itm[13]~reg0.ACLR +jrst_n => itm[14]~reg0.ACLR +jrst_n => itm[15]~reg0.ACLR +jrst_n => itm[16]~reg0.ACLR +jrst_n => itm[17]~reg0.ACLR +jrst_n => itm[18]~reg0.ACLR +jrst_n => itm[19]~reg0.ACLR +jrst_n => itm[20]~reg0.ACLR +jrst_n => itm[21]~reg0.ACLR +jrst_n => itm[22]~reg0.ACLR +jrst_n => itm[23]~reg0.ACLR +jrst_n => itm[24]~reg0.ACLR +jrst_n => itm[25]~reg0.ACLR +jrst_n => itm[26]~reg0.ACLR +jrst_n => itm[27]~reg0.ACLR +jrst_n => itm[28]~reg0.ACLR +jrst_n => itm[29]~reg0.ACLR +jrst_n => itm[30]~reg0.ACLR +jrst_n => itm[31]~reg0.ACLR +jrst_n => itm[32]~reg0.ACLR +jrst_n => itm[33]~reg0.ACLR +jrst_n => itm[34]~reg0.ACLR +jrst_n => itm[35]~reg0.ACLR +take_action_tracectrl => ~NO_FANOUT~ +trc_enb => ~NO_FANOUT~ +xbrk_traceoff => ~NO_FANOUT~ +xbrk_traceon => ~NO_FANOUT~ +xbrk_wrap_traceoff => ~NO_FANOUT~ +dct_buffer[0] <= dct_buffer[0]~reg0.DB_MAX_OUTPUT_PORT_TYPE +dct_buffer[1] <= dct_buffer[1]~reg0.DB_MAX_OUTPUT_PORT_TYPE +dct_buffer[2] <= dct_buffer[2]~reg0.DB_MAX_OUTPUT_PORT_TYPE +dct_buffer[3] <= dct_buffer[3]~reg0.DB_MAX_OUTPUT_PORT_TYPE +dct_buffer[4] <= dct_buffer[4]~reg0.DB_MAX_OUTPUT_PORT_TYPE +dct_buffer[5] <= dct_buffer[5]~reg0.DB_MAX_OUTPUT_PORT_TYPE +dct_buffer[6] <= dct_buffer[6]~reg0.DB_MAX_OUTPUT_PORT_TYPE +dct_buffer[7] <= dct_buffer[7]~reg0.DB_MAX_OUTPUT_PORT_TYPE +dct_buffer[8] <= dct_buffer[8]~reg0.DB_MAX_OUTPUT_PORT_TYPE +dct_buffer[9] <= dct_buffer[9]~reg0.DB_MAX_OUTPUT_PORT_TYPE +dct_buffer[10] <= dct_buffer[10]~reg0.DB_MAX_OUTPUT_PORT_TYPE +dct_buffer[11] <= dct_buffer[11]~reg0.DB_MAX_OUTPUT_PORT_TYPE +dct_buffer[12] <= dct_buffer[12]~reg0.DB_MAX_OUTPUT_PORT_TYPE +dct_buffer[13] <= dct_buffer[13]~reg0.DB_MAX_OUTPUT_PORT_TYPE +dct_buffer[14] <= dct_buffer[14]~reg0.DB_MAX_OUTPUT_PORT_TYPE +dct_buffer[15] <= dct_buffer[15]~reg0.DB_MAX_OUTPUT_PORT_TYPE +dct_buffer[16] <= dct_buffer[16]~reg0.DB_MAX_OUTPUT_PORT_TYPE +dct_buffer[17] <= dct_buffer[17]~reg0.DB_MAX_OUTPUT_PORT_TYPE +dct_buffer[18] <= dct_buffer[18]~reg0.DB_MAX_OUTPUT_PORT_TYPE +dct_buffer[19] <= dct_buffer[19]~reg0.DB_MAX_OUTPUT_PORT_TYPE +dct_buffer[20] <= dct_buffer[20]~reg0.DB_MAX_OUTPUT_PORT_TYPE +dct_buffer[21] <= dct_buffer[21]~reg0.DB_MAX_OUTPUT_PORT_TYPE +dct_buffer[22] <= dct_buffer[22]~reg0.DB_MAX_OUTPUT_PORT_TYPE +dct_buffer[23] <= dct_buffer[23]~reg0.DB_MAX_OUTPUT_PORT_TYPE +dct_buffer[24] <= dct_buffer[24]~reg0.DB_MAX_OUTPUT_PORT_TYPE +dct_buffer[25] <= dct_buffer[25]~reg0.DB_MAX_OUTPUT_PORT_TYPE +dct_buffer[26] <= dct_buffer[26]~reg0.DB_MAX_OUTPUT_PORT_TYPE +dct_buffer[27] <= dct_buffer[27]~reg0.DB_MAX_OUTPUT_PORT_TYPE +dct_buffer[28] <= dct_buffer[28]~reg0.DB_MAX_OUTPUT_PORT_TYPE +dct_buffer[29] <= dct_buffer[29]~reg0.DB_MAX_OUTPUT_PORT_TYPE +dct_count[0] <= dct_count[0]~reg0.DB_MAX_OUTPUT_PORT_TYPE +dct_count[1] <= dct_count[1]~reg0.DB_MAX_OUTPUT_PORT_TYPE +dct_count[2] <= dct_count[2]~reg0.DB_MAX_OUTPUT_PORT_TYPE +dct_count[3] <= dct_count[3]~reg0.DB_MAX_OUTPUT_PORT_TYPE +itm[0] <= itm[0]~reg0.DB_MAX_OUTPUT_PORT_TYPE +itm[1] <= itm[1]~reg0.DB_MAX_OUTPUT_PORT_TYPE +itm[2] <= itm[2]~reg0.DB_MAX_OUTPUT_PORT_TYPE +itm[3] <= itm[3]~reg0.DB_MAX_OUTPUT_PORT_TYPE +itm[4] <= itm[4]~reg0.DB_MAX_OUTPUT_PORT_TYPE +itm[5] <= itm[5]~reg0.DB_MAX_OUTPUT_PORT_TYPE +itm[6] <= itm[6]~reg0.DB_MAX_OUTPUT_PORT_TYPE +itm[7] <= itm[7]~reg0.DB_MAX_OUTPUT_PORT_TYPE +itm[8] <= itm[8]~reg0.DB_MAX_OUTPUT_PORT_TYPE +itm[9] <= itm[9]~reg0.DB_MAX_OUTPUT_PORT_TYPE +itm[10] <= itm[10]~reg0.DB_MAX_OUTPUT_PORT_TYPE +itm[11] <= itm[11]~reg0.DB_MAX_OUTPUT_PORT_TYPE +itm[12] <= itm[12]~reg0.DB_MAX_OUTPUT_PORT_TYPE +itm[13] <= itm[13]~reg0.DB_MAX_OUTPUT_PORT_TYPE +itm[14] <= itm[14]~reg0.DB_MAX_OUTPUT_PORT_TYPE +itm[15] <= itm[15]~reg0.DB_MAX_OUTPUT_PORT_TYPE +itm[16] <= itm[16]~reg0.DB_MAX_OUTPUT_PORT_TYPE +itm[17] <= itm[17]~reg0.DB_MAX_OUTPUT_PORT_TYPE +itm[18] <= itm[18]~reg0.DB_MAX_OUTPUT_PORT_TYPE +itm[19] <= itm[19]~reg0.DB_MAX_OUTPUT_PORT_TYPE +itm[20] <= itm[20]~reg0.DB_MAX_OUTPUT_PORT_TYPE +itm[21] <= itm[21]~reg0.DB_MAX_OUTPUT_PORT_TYPE +itm[22] <= itm[22]~reg0.DB_MAX_OUTPUT_PORT_TYPE +itm[23] <= itm[23]~reg0.DB_MAX_OUTPUT_PORT_TYPE +itm[24] <= itm[24]~reg0.DB_MAX_OUTPUT_PORT_TYPE +itm[25] <= itm[25]~reg0.DB_MAX_OUTPUT_PORT_TYPE +itm[26] <= itm[26]~reg0.DB_MAX_OUTPUT_PORT_TYPE +itm[27] <= itm[27]~reg0.DB_MAX_OUTPUT_PORT_TYPE +itm[28] <= itm[28]~reg0.DB_MAX_OUTPUT_PORT_TYPE +itm[29] <= itm[29]~reg0.DB_MAX_OUTPUT_PORT_TYPE +itm[30] <= itm[30]~reg0.DB_MAX_OUTPUT_PORT_TYPE +itm[31] <= itm[31]~reg0.DB_MAX_OUTPUT_PORT_TYPE +itm[32] <= itm[32]~reg0.DB_MAX_OUTPUT_PORT_TYPE +itm[33] <= itm[33]~reg0.DB_MAX_OUTPUT_PORT_TYPE +itm[34] <= itm[34]~reg0.DB_MAX_OUTPUT_PORT_TYPE +itm[35] <= itm[35]~reg0.DB_MAX_OUTPUT_PORT_TYPE +trc_ctrl[0] <= +trc_ctrl[1] <= +trc_ctrl[2] <= +trc_ctrl[3] <= +trc_ctrl[4] <= +trc_ctrl[5] <= +trc_ctrl[6] <= +trc_ctrl[7] <= +trc_ctrl[8] <= +trc_ctrl[9] <= +trc_ctrl[10] <= +trc_ctrl[11] <= +trc_ctrl[12] <= +trc_ctrl[13] <= +trc_ctrl[14] <= +trc_ctrl[15] <= +trc_on <= + + +|lights|nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_oci_dtrace:the_nios_system_nios2_processor_nios2_oci_dtrace +clk => dtm[0]~reg0.CLK +clk => dtm[1]~reg0.CLK +clk => dtm[2]~reg0.CLK +clk => dtm[3]~reg0.CLK +clk => dtm[4]~reg0.CLK +clk => dtm[5]~reg0.CLK +clk => dtm[6]~reg0.CLK +clk => dtm[7]~reg0.CLK +clk => dtm[8]~reg0.CLK +clk => dtm[9]~reg0.CLK +clk => dtm[10]~reg0.CLK +clk => dtm[11]~reg0.CLK +clk => dtm[12]~reg0.CLK +clk => dtm[13]~reg0.CLK +clk => dtm[14]~reg0.CLK +clk => dtm[15]~reg0.CLK +clk => dtm[16]~reg0.CLK +clk => dtm[17]~reg0.CLK +clk => dtm[18]~reg0.CLK +clk => dtm[19]~reg0.CLK +clk => dtm[20]~reg0.CLK +clk => dtm[21]~reg0.CLK +clk => dtm[22]~reg0.CLK +clk => dtm[23]~reg0.CLK +clk => dtm[24]~reg0.CLK +clk => dtm[25]~reg0.CLK +clk => dtm[26]~reg0.CLK +clk => dtm[27]~reg0.CLK +clk => dtm[28]~reg0.CLK +clk => dtm[29]~reg0.CLK +clk => dtm[30]~reg0.CLK +clk => dtm[31]~reg0.CLK +clk => dtm[32]~reg0.CLK +clk => dtm[33]~reg0.CLK +clk => dtm[34]~reg0.CLK +clk => dtm[35]~reg0.CLK +clk => atm[0]~reg0.CLK +clk => atm[1]~reg0.CLK +clk => atm[2]~reg0.CLK +clk => atm[3]~reg0.CLK +clk => atm[4]~reg0.CLK +clk => atm[5]~reg0.CLK +clk => atm[6]~reg0.CLK +clk => atm[7]~reg0.CLK +clk => atm[8]~reg0.CLK +clk => atm[9]~reg0.CLK +clk => atm[10]~reg0.CLK +clk => atm[11]~reg0.CLK +clk => atm[12]~reg0.CLK +clk => atm[13]~reg0.CLK +clk => atm[14]~reg0.CLK +clk => atm[15]~reg0.CLK +clk => atm[16]~reg0.CLK +clk => atm[17]~reg0.CLK +clk => atm[18]~reg0.CLK +clk => atm[19]~reg0.CLK +clk => atm[20]~reg0.CLK +clk => atm[21]~reg0.CLK +clk => atm[22]~reg0.CLK +clk => atm[23]~reg0.CLK +clk => atm[24]~reg0.CLK +clk => atm[25]~reg0.CLK +clk => atm[26]~reg0.CLK +clk => atm[27]~reg0.CLK +clk => atm[28]~reg0.CLK +clk => atm[29]~reg0.CLK +clk => atm[30]~reg0.CLK +clk => atm[31]~reg0.CLK +clk => atm[32]~reg0.CLK +clk => atm[33]~reg0.CLK +clk => atm[34]~reg0.CLK +clk => atm[35]~reg0.CLK +cpu_d_address[0] => ~NO_FANOUT~ +cpu_d_address[1] => ~NO_FANOUT~ +cpu_d_address[2] => ~NO_FANOUT~ +cpu_d_address[3] => ~NO_FANOUT~ +cpu_d_address[4] => ~NO_FANOUT~ +cpu_d_address[5] => ~NO_FANOUT~ +cpu_d_address[6] => ~NO_FANOUT~ +cpu_d_address[7] => ~NO_FANOUT~ +cpu_d_address[8] => ~NO_FANOUT~ +cpu_d_address[9] => ~NO_FANOUT~ +cpu_d_address[10] => ~NO_FANOUT~ +cpu_d_address[11] => ~NO_FANOUT~ +cpu_d_address[12] => ~NO_FANOUT~ +cpu_d_address[13] => ~NO_FANOUT~ +cpu_d_address[14] => ~NO_FANOUT~ +cpu_d_address[15] => ~NO_FANOUT~ +cpu_d_address[16] => ~NO_FANOUT~ +cpu_d_address[17] => ~NO_FANOUT~ +cpu_d_address[18] => ~NO_FANOUT~ +cpu_d_read => ~NO_FANOUT~ +cpu_d_readdata[0] => ~NO_FANOUT~ +cpu_d_readdata[1] => ~NO_FANOUT~ +cpu_d_readdata[2] => ~NO_FANOUT~ +cpu_d_readdata[3] => ~NO_FANOUT~ +cpu_d_readdata[4] => ~NO_FANOUT~ +cpu_d_readdata[5] => ~NO_FANOUT~ +cpu_d_readdata[6] => ~NO_FANOUT~ +cpu_d_readdata[7] => ~NO_FANOUT~ +cpu_d_readdata[8] => ~NO_FANOUT~ +cpu_d_readdata[9] => ~NO_FANOUT~ +cpu_d_readdata[10] => ~NO_FANOUT~ +cpu_d_readdata[11] => ~NO_FANOUT~ +cpu_d_readdata[12] => ~NO_FANOUT~ +cpu_d_readdata[13] => ~NO_FANOUT~ +cpu_d_readdata[14] => ~NO_FANOUT~ +cpu_d_readdata[15] => ~NO_FANOUT~ +cpu_d_readdata[16] => ~NO_FANOUT~ +cpu_d_readdata[17] => ~NO_FANOUT~ +cpu_d_readdata[18] => ~NO_FANOUT~ +cpu_d_readdata[19] => ~NO_FANOUT~ +cpu_d_readdata[20] => ~NO_FANOUT~ +cpu_d_readdata[21] => ~NO_FANOUT~ +cpu_d_readdata[22] => ~NO_FANOUT~ +cpu_d_readdata[23] => ~NO_FANOUT~ +cpu_d_readdata[24] => ~NO_FANOUT~ +cpu_d_readdata[25] => ~NO_FANOUT~ +cpu_d_readdata[26] => ~NO_FANOUT~ +cpu_d_readdata[27] => ~NO_FANOUT~ +cpu_d_readdata[28] => ~NO_FANOUT~ +cpu_d_readdata[29] => ~NO_FANOUT~ +cpu_d_readdata[30] => ~NO_FANOUT~ +cpu_d_readdata[31] => ~NO_FANOUT~ +cpu_d_wait => ~NO_FANOUT~ +cpu_d_write => ~NO_FANOUT~ +cpu_d_writedata[0] => ~NO_FANOUT~ +cpu_d_writedata[1] => ~NO_FANOUT~ +cpu_d_writedata[2] => ~NO_FANOUT~ +cpu_d_writedata[3] => ~NO_FANOUT~ +cpu_d_writedata[4] => ~NO_FANOUT~ +cpu_d_writedata[5] => ~NO_FANOUT~ +cpu_d_writedata[6] => ~NO_FANOUT~ +cpu_d_writedata[7] => ~NO_FANOUT~ +cpu_d_writedata[8] => ~NO_FANOUT~ +cpu_d_writedata[9] => ~NO_FANOUT~ +cpu_d_writedata[10] => ~NO_FANOUT~ +cpu_d_writedata[11] => ~NO_FANOUT~ +cpu_d_writedata[12] => ~NO_FANOUT~ +cpu_d_writedata[13] => ~NO_FANOUT~ +cpu_d_writedata[14] => ~NO_FANOUT~ +cpu_d_writedata[15] => ~NO_FANOUT~ +cpu_d_writedata[16] => ~NO_FANOUT~ +cpu_d_writedata[17] => ~NO_FANOUT~ +cpu_d_writedata[18] => ~NO_FANOUT~ +cpu_d_writedata[19] => ~NO_FANOUT~ +cpu_d_writedata[20] => ~NO_FANOUT~ +cpu_d_writedata[21] => ~NO_FANOUT~ +cpu_d_writedata[22] => ~NO_FANOUT~ +cpu_d_writedata[23] => ~NO_FANOUT~ +cpu_d_writedata[24] => ~NO_FANOUT~ +cpu_d_writedata[25] => ~NO_FANOUT~ +cpu_d_writedata[26] => ~NO_FANOUT~ +cpu_d_writedata[27] => ~NO_FANOUT~ +cpu_d_writedata[28] => ~NO_FANOUT~ +cpu_d_writedata[29] => ~NO_FANOUT~ +cpu_d_writedata[30] => ~NO_FANOUT~ +cpu_d_writedata[31] => ~NO_FANOUT~ +jrst_n => dtm[0]~reg0.ACLR +jrst_n => dtm[1]~reg0.ACLR +jrst_n => dtm[2]~reg0.ACLR +jrst_n => dtm[3]~reg0.ACLR +jrst_n => dtm[4]~reg0.ACLR +jrst_n => dtm[5]~reg0.ACLR +jrst_n => dtm[6]~reg0.ACLR +jrst_n => dtm[7]~reg0.ACLR +jrst_n => dtm[8]~reg0.ACLR +jrst_n => dtm[9]~reg0.ACLR +jrst_n => dtm[10]~reg0.ACLR +jrst_n => dtm[11]~reg0.ACLR +jrst_n => dtm[12]~reg0.ACLR +jrst_n => dtm[13]~reg0.ACLR +jrst_n => dtm[14]~reg0.ACLR +jrst_n => dtm[15]~reg0.ACLR +jrst_n => dtm[16]~reg0.ACLR +jrst_n => dtm[17]~reg0.ACLR +jrst_n => dtm[18]~reg0.ACLR +jrst_n => dtm[19]~reg0.ACLR +jrst_n => dtm[20]~reg0.ACLR +jrst_n => dtm[21]~reg0.ACLR +jrst_n => dtm[22]~reg0.ACLR +jrst_n => dtm[23]~reg0.ACLR +jrst_n => dtm[24]~reg0.ACLR +jrst_n => dtm[25]~reg0.ACLR +jrst_n => dtm[26]~reg0.ACLR +jrst_n => dtm[27]~reg0.ACLR +jrst_n => dtm[28]~reg0.ACLR +jrst_n => dtm[29]~reg0.ACLR +jrst_n => dtm[30]~reg0.ACLR +jrst_n => dtm[31]~reg0.ACLR +jrst_n => dtm[32]~reg0.ACLR +jrst_n => dtm[33]~reg0.ACLR +jrst_n => dtm[34]~reg0.ACLR +jrst_n => dtm[35]~reg0.ACLR +jrst_n => atm[0]~reg0.ACLR +jrst_n => atm[1]~reg0.ACLR +jrst_n => atm[2]~reg0.ACLR +jrst_n => atm[3]~reg0.ACLR +jrst_n => atm[4]~reg0.ACLR +jrst_n => atm[5]~reg0.ACLR +jrst_n => atm[6]~reg0.ACLR +jrst_n => atm[7]~reg0.ACLR +jrst_n => atm[8]~reg0.ACLR +jrst_n => atm[9]~reg0.ACLR +jrst_n => atm[10]~reg0.ACLR +jrst_n => atm[11]~reg0.ACLR +jrst_n => atm[12]~reg0.ACLR +jrst_n => atm[13]~reg0.ACLR +jrst_n => atm[14]~reg0.ACLR +jrst_n => atm[15]~reg0.ACLR +jrst_n => atm[16]~reg0.ACLR +jrst_n => atm[17]~reg0.ACLR +jrst_n => atm[18]~reg0.ACLR +jrst_n => atm[19]~reg0.ACLR +jrst_n => atm[20]~reg0.ACLR +jrst_n => atm[21]~reg0.ACLR +jrst_n => atm[22]~reg0.ACLR +jrst_n => atm[23]~reg0.ACLR +jrst_n => atm[24]~reg0.ACLR +jrst_n => atm[25]~reg0.ACLR +jrst_n => atm[26]~reg0.ACLR +jrst_n => atm[27]~reg0.ACLR +jrst_n => atm[28]~reg0.ACLR +jrst_n => atm[29]~reg0.ACLR +jrst_n => atm[30]~reg0.ACLR +jrst_n => atm[31]~reg0.ACLR +jrst_n => atm[32]~reg0.ACLR +jrst_n => atm[33]~reg0.ACLR +jrst_n => atm[34]~reg0.ACLR +jrst_n => atm[35]~reg0.ACLR +trc_ctrl[0] => trc_ctrl[0].IN1 +trc_ctrl[1] => trc_ctrl[1].IN1 +trc_ctrl[2] => trc_ctrl[2].IN1 +trc_ctrl[3] => trc_ctrl[3].IN1 +trc_ctrl[4] => trc_ctrl[4].IN1 +trc_ctrl[5] => trc_ctrl[5].IN1 +trc_ctrl[6] => trc_ctrl[6].IN1 +trc_ctrl[7] => trc_ctrl[7].IN1 +trc_ctrl[8] => trc_ctrl[8].IN1 +trc_ctrl[9] => ~NO_FANOUT~ +trc_ctrl[10] => ~NO_FANOUT~ +trc_ctrl[11] => ~NO_FANOUT~ +trc_ctrl[12] => ~NO_FANOUT~ +trc_ctrl[13] => ~NO_FANOUT~ +trc_ctrl[14] => ~NO_FANOUT~ +trc_ctrl[15] => ~NO_FANOUT~ +atm[0] <= atm[0]~reg0.DB_MAX_OUTPUT_PORT_TYPE +atm[1] <= atm[1]~reg0.DB_MAX_OUTPUT_PORT_TYPE +atm[2] <= atm[2]~reg0.DB_MAX_OUTPUT_PORT_TYPE +atm[3] <= atm[3]~reg0.DB_MAX_OUTPUT_PORT_TYPE +atm[4] <= atm[4]~reg0.DB_MAX_OUTPUT_PORT_TYPE +atm[5] <= atm[5]~reg0.DB_MAX_OUTPUT_PORT_TYPE +atm[6] <= atm[6]~reg0.DB_MAX_OUTPUT_PORT_TYPE +atm[7] <= atm[7]~reg0.DB_MAX_OUTPUT_PORT_TYPE +atm[8] <= atm[8]~reg0.DB_MAX_OUTPUT_PORT_TYPE +atm[9] <= atm[9]~reg0.DB_MAX_OUTPUT_PORT_TYPE +atm[10] <= atm[10]~reg0.DB_MAX_OUTPUT_PORT_TYPE +atm[11] <= atm[11]~reg0.DB_MAX_OUTPUT_PORT_TYPE +atm[12] <= atm[12]~reg0.DB_MAX_OUTPUT_PORT_TYPE +atm[13] <= atm[13]~reg0.DB_MAX_OUTPUT_PORT_TYPE +atm[14] <= atm[14]~reg0.DB_MAX_OUTPUT_PORT_TYPE +atm[15] <= atm[15]~reg0.DB_MAX_OUTPUT_PORT_TYPE +atm[16] <= atm[16]~reg0.DB_MAX_OUTPUT_PORT_TYPE +atm[17] <= atm[17]~reg0.DB_MAX_OUTPUT_PORT_TYPE +atm[18] <= atm[18]~reg0.DB_MAX_OUTPUT_PORT_TYPE +atm[19] <= atm[19]~reg0.DB_MAX_OUTPUT_PORT_TYPE +atm[20] <= atm[20]~reg0.DB_MAX_OUTPUT_PORT_TYPE +atm[21] <= atm[21]~reg0.DB_MAX_OUTPUT_PORT_TYPE +atm[22] <= atm[22]~reg0.DB_MAX_OUTPUT_PORT_TYPE +atm[23] <= atm[23]~reg0.DB_MAX_OUTPUT_PORT_TYPE +atm[24] <= atm[24]~reg0.DB_MAX_OUTPUT_PORT_TYPE +atm[25] <= atm[25]~reg0.DB_MAX_OUTPUT_PORT_TYPE +atm[26] <= atm[26]~reg0.DB_MAX_OUTPUT_PORT_TYPE +atm[27] <= atm[27]~reg0.DB_MAX_OUTPUT_PORT_TYPE +atm[28] <= atm[28]~reg0.DB_MAX_OUTPUT_PORT_TYPE +atm[29] <= atm[29]~reg0.DB_MAX_OUTPUT_PORT_TYPE +atm[30] <= atm[30]~reg0.DB_MAX_OUTPUT_PORT_TYPE +atm[31] <= atm[31]~reg0.DB_MAX_OUTPUT_PORT_TYPE +atm[32] <= atm[32]~reg0.DB_MAX_OUTPUT_PORT_TYPE +atm[33] <= atm[33]~reg0.DB_MAX_OUTPUT_PORT_TYPE +atm[34] <= atm[34]~reg0.DB_MAX_OUTPUT_PORT_TYPE +atm[35] <= atm[35]~reg0.DB_MAX_OUTPUT_PORT_TYPE +dtm[0] <= dtm[0]~reg0.DB_MAX_OUTPUT_PORT_TYPE +dtm[1] <= dtm[1]~reg0.DB_MAX_OUTPUT_PORT_TYPE +dtm[2] <= dtm[2]~reg0.DB_MAX_OUTPUT_PORT_TYPE +dtm[3] <= dtm[3]~reg0.DB_MAX_OUTPUT_PORT_TYPE +dtm[4] <= dtm[4]~reg0.DB_MAX_OUTPUT_PORT_TYPE +dtm[5] <= dtm[5]~reg0.DB_MAX_OUTPUT_PORT_TYPE +dtm[6] <= dtm[6]~reg0.DB_MAX_OUTPUT_PORT_TYPE +dtm[7] <= dtm[7]~reg0.DB_MAX_OUTPUT_PORT_TYPE +dtm[8] <= dtm[8]~reg0.DB_MAX_OUTPUT_PORT_TYPE +dtm[9] <= dtm[9]~reg0.DB_MAX_OUTPUT_PORT_TYPE +dtm[10] <= dtm[10]~reg0.DB_MAX_OUTPUT_PORT_TYPE +dtm[11] <= dtm[11]~reg0.DB_MAX_OUTPUT_PORT_TYPE +dtm[12] <= dtm[12]~reg0.DB_MAX_OUTPUT_PORT_TYPE +dtm[13] <= dtm[13]~reg0.DB_MAX_OUTPUT_PORT_TYPE +dtm[14] <= dtm[14]~reg0.DB_MAX_OUTPUT_PORT_TYPE +dtm[15] <= dtm[15]~reg0.DB_MAX_OUTPUT_PORT_TYPE +dtm[16] <= dtm[16]~reg0.DB_MAX_OUTPUT_PORT_TYPE +dtm[17] <= dtm[17]~reg0.DB_MAX_OUTPUT_PORT_TYPE +dtm[18] <= dtm[18]~reg0.DB_MAX_OUTPUT_PORT_TYPE +dtm[19] <= dtm[19]~reg0.DB_MAX_OUTPUT_PORT_TYPE +dtm[20] <= dtm[20]~reg0.DB_MAX_OUTPUT_PORT_TYPE +dtm[21] <= dtm[21]~reg0.DB_MAX_OUTPUT_PORT_TYPE +dtm[22] <= dtm[22]~reg0.DB_MAX_OUTPUT_PORT_TYPE +dtm[23] <= dtm[23]~reg0.DB_MAX_OUTPUT_PORT_TYPE +dtm[24] <= dtm[24]~reg0.DB_MAX_OUTPUT_PORT_TYPE +dtm[25] <= dtm[25]~reg0.DB_MAX_OUTPUT_PORT_TYPE +dtm[26] <= dtm[26]~reg0.DB_MAX_OUTPUT_PORT_TYPE +dtm[27] <= dtm[27]~reg0.DB_MAX_OUTPUT_PORT_TYPE +dtm[28] <= dtm[28]~reg0.DB_MAX_OUTPUT_PORT_TYPE +dtm[29] <= dtm[29]~reg0.DB_MAX_OUTPUT_PORT_TYPE +dtm[30] <= dtm[30]~reg0.DB_MAX_OUTPUT_PORT_TYPE +dtm[31] <= dtm[31]~reg0.DB_MAX_OUTPUT_PORT_TYPE +dtm[32] <= dtm[32]~reg0.DB_MAX_OUTPUT_PORT_TYPE +dtm[33] <= dtm[33]~reg0.DB_MAX_OUTPUT_PORT_TYPE +dtm[34] <= dtm[34]~reg0.DB_MAX_OUTPUT_PORT_TYPE +dtm[35] <= dtm[35]~reg0.DB_MAX_OUTPUT_PORT_TYPE + + +|lights|nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_oci_dtrace:the_nios_system_nios2_processor_nios2_oci_dtrace|nios_system_nios2_processor_nios2_oci_td_mode:nios_system_nios2_processor_nios2_oci_trc_ctrl_td_mode +ctrl[0] => ~NO_FANOUT~ +ctrl[1] => ~NO_FANOUT~ +ctrl[2] => ~NO_FANOUT~ +ctrl[3] => ~NO_FANOUT~ +ctrl[4] => ~NO_FANOUT~ +ctrl[5] => Decoder0.IN2 +ctrl[5] => td_mode[3].DATAIN +ctrl[6] => Decoder0.IN1 +ctrl[6] => Decoder1.IN1 +ctrl[6] => td_mode[2].DATAIN +ctrl[7] => Decoder0.IN0 +ctrl[7] => Decoder1.IN0 +ctrl[8] => ~NO_FANOUT~ +td_mode[0] <= Decoder1.DB_MAX_OUTPUT_PORT_TYPE +td_mode[1] <= WideOr0.DB_MAX_OUTPUT_PORT_TYPE +td_mode[2] <= ctrl[6].DB_MAX_OUTPUT_PORT_TYPE +td_mode[3] <= ctrl[5].DB_MAX_OUTPUT_PORT_TYPE + + +|lights|nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_oci_fifo:the_nios_system_nios2_processor_nios2_oci_fifo +atm[0] => ~NO_FANOUT~ +atm[1] => ~NO_FANOUT~ +atm[2] => ~NO_FANOUT~ +atm[3] => ~NO_FANOUT~ +atm[4] => ~NO_FANOUT~ +atm[5] => ~NO_FANOUT~ +atm[6] => ~NO_FANOUT~ +atm[7] => ~NO_FANOUT~ +atm[8] => ~NO_FANOUT~ +atm[9] => ~NO_FANOUT~ +atm[10] => ~NO_FANOUT~ +atm[11] => ~NO_FANOUT~ +atm[12] => ~NO_FANOUT~ +atm[13] => ~NO_FANOUT~ +atm[14] => ~NO_FANOUT~ +atm[15] => ~NO_FANOUT~ +atm[16] => ~NO_FANOUT~ +atm[17] => ~NO_FANOUT~ +atm[18] => ~NO_FANOUT~ +atm[19] => ~NO_FANOUT~ +atm[20] => ~NO_FANOUT~ +atm[21] => ~NO_FANOUT~ +atm[22] => ~NO_FANOUT~ +atm[23] => ~NO_FANOUT~ +atm[24] => ~NO_FANOUT~ +atm[25] => ~NO_FANOUT~ +atm[26] => ~NO_FANOUT~ +atm[27] => ~NO_FANOUT~ +atm[28] => ~NO_FANOUT~ +atm[29] => ~NO_FANOUT~ +atm[30] => ~NO_FANOUT~ +atm[31] => ~NO_FANOUT~ +atm[32] => WideOr1.IN0 +atm[33] => WideOr1.IN1 +atm[34] => WideOr1.IN2 +atm[35] => WideOr1.IN3 +clk => fifocount[0].CLK +clk => fifocount[1].CLK +clk => fifocount[2].CLK +clk => fifocount[3].CLK +clk => fifocount[4].CLK +dbrk_traceme => trc_this.IN1 +dbrk_traceoff => trc_this.IN0 +dbrk_traceon => trc_this.IN1 +dct_buffer[0] => dct_buffer[0].IN1 +dct_buffer[1] => dct_buffer[1].IN1 +dct_buffer[2] => dct_buffer[2].IN1 +dct_buffer[3] => dct_buffer[3].IN1 +dct_buffer[4] => dct_buffer[4].IN1 +dct_buffer[5] => dct_buffer[5].IN1 +dct_buffer[6] => dct_buffer[6].IN1 +dct_buffer[7] => dct_buffer[7].IN1 +dct_buffer[8] => dct_buffer[8].IN1 +dct_buffer[9] => dct_buffer[9].IN1 +dct_buffer[10] => dct_buffer[10].IN1 +dct_buffer[11] => dct_buffer[11].IN1 +dct_buffer[12] => dct_buffer[12].IN1 +dct_buffer[13] => dct_buffer[13].IN1 +dct_buffer[14] => dct_buffer[14].IN1 +dct_buffer[15] => dct_buffer[15].IN1 +dct_buffer[16] => dct_buffer[16].IN1 +dct_buffer[17] => dct_buffer[17].IN1 +dct_buffer[18] => dct_buffer[18].IN1 +dct_buffer[19] => dct_buffer[19].IN1 +dct_buffer[20] => dct_buffer[20].IN1 +dct_buffer[21] => dct_buffer[21].IN1 +dct_buffer[22] => dct_buffer[22].IN1 +dct_buffer[23] => dct_buffer[23].IN1 +dct_buffer[24] => dct_buffer[24].IN1 +dct_buffer[25] => dct_buffer[25].IN1 +dct_buffer[26] => dct_buffer[26].IN1 +dct_buffer[27] => dct_buffer[27].IN1 +dct_buffer[28] => dct_buffer[28].IN1 +dct_buffer[29] => dct_buffer[29].IN1 +dct_count[0] => dct_count[0].IN1 +dct_count[1] => dct_count[1].IN1 +dct_count[2] => dct_count[2].IN1 +dct_count[3] => dct_count[3].IN1 +dtm[0] => ~NO_FANOUT~ +dtm[1] => ~NO_FANOUT~ +dtm[2] => ~NO_FANOUT~ +dtm[3] => ~NO_FANOUT~ +dtm[4] => ~NO_FANOUT~ +dtm[5] => ~NO_FANOUT~ +dtm[6] => ~NO_FANOUT~ +dtm[7] => ~NO_FANOUT~ +dtm[8] => ~NO_FANOUT~ +dtm[9] => ~NO_FANOUT~ +dtm[10] => ~NO_FANOUT~ +dtm[11] => ~NO_FANOUT~ +dtm[12] => ~NO_FANOUT~ +dtm[13] => ~NO_FANOUT~ +dtm[14] => ~NO_FANOUT~ +dtm[15] => ~NO_FANOUT~ +dtm[16] => ~NO_FANOUT~ +dtm[17] => ~NO_FANOUT~ +dtm[18] => ~NO_FANOUT~ +dtm[19] => ~NO_FANOUT~ +dtm[20] => ~NO_FANOUT~ +dtm[21] => ~NO_FANOUT~ +dtm[22] => ~NO_FANOUT~ +dtm[23] => ~NO_FANOUT~ +dtm[24] => ~NO_FANOUT~ +dtm[25] => ~NO_FANOUT~ +dtm[26] => ~NO_FANOUT~ +dtm[27] => ~NO_FANOUT~ +dtm[28] => ~NO_FANOUT~ +dtm[29] => ~NO_FANOUT~ +dtm[30] => ~NO_FANOUT~ +dtm[31] => ~NO_FANOUT~ +dtm[32] => WideOr2.IN0 +dtm[33] => WideOr2.IN1 +dtm[34] => WideOr2.IN2 +dtm[35] => WideOr2.IN3 +itm[0] => tw[0].DATAIN +itm[1] => tw[1].DATAIN +itm[2] => tw[2].DATAIN +itm[3] => tw[3].DATAIN +itm[4] => tw[4].DATAIN +itm[5] => tw[5].DATAIN +itm[6] => tw[6].DATAIN +itm[7] => tw[7].DATAIN +itm[8] => tw[8].DATAIN +itm[9] => tw[9].DATAIN +itm[10] => tw[10].DATAIN +itm[11] => tw[11].DATAIN +itm[12] => tw[12].DATAIN +itm[13] => tw[13].DATAIN +itm[14] => tw[14].DATAIN +itm[15] => tw[15].DATAIN +itm[16] => tw[16].DATAIN +itm[17] => tw[17].DATAIN +itm[18] => tw[18].DATAIN +itm[19] => tw[19].DATAIN +itm[20] => tw[20].DATAIN +itm[21] => tw[21].DATAIN +itm[22] => tw[22].DATAIN +itm[23] => tw[23].DATAIN +itm[24] => tw[24].DATAIN +itm[25] => tw[25].DATAIN +itm[26] => tw[26].DATAIN +itm[27] => tw[27].DATAIN +itm[28] => tw[28].DATAIN +itm[29] => tw[29].DATAIN +itm[30] => tw[30].DATAIN +itm[31] => tw[31].DATAIN +itm[32] => WideOr0.IN0 +itm[32] => tw[32].DATAIN +itm[33] => WideOr0.IN1 +itm[33] => tw[33].DATAIN +itm[34] => WideOr0.IN2 +itm[34] => tw[34].DATAIN +itm[35] => WideOr0.IN3 +itm[35] => tw[35].DATAIN +jrst_n => fifocount[0].ACLR +jrst_n => fifocount[1].ACLR +jrst_n => fifocount[2].ACLR +jrst_n => fifocount[3].ACLR +jrst_n => fifocount[4].ACLR +reset_n => ~NO_FANOUT~ +test_ending => test_ending.IN1 +test_has_ended => test_has_ended.IN1 +trc_on => trc_this.IN1 +tw[0] <= itm[0].DB_MAX_OUTPUT_PORT_TYPE +tw[1] <= itm[1].DB_MAX_OUTPUT_PORT_TYPE +tw[2] <= itm[2].DB_MAX_OUTPUT_PORT_TYPE +tw[3] <= itm[3].DB_MAX_OUTPUT_PORT_TYPE +tw[4] <= itm[4].DB_MAX_OUTPUT_PORT_TYPE +tw[5] <= itm[5].DB_MAX_OUTPUT_PORT_TYPE +tw[6] <= itm[6].DB_MAX_OUTPUT_PORT_TYPE +tw[7] <= itm[7].DB_MAX_OUTPUT_PORT_TYPE +tw[8] <= itm[8].DB_MAX_OUTPUT_PORT_TYPE +tw[9] <= itm[9].DB_MAX_OUTPUT_PORT_TYPE +tw[10] <= itm[10].DB_MAX_OUTPUT_PORT_TYPE +tw[11] <= itm[11].DB_MAX_OUTPUT_PORT_TYPE +tw[12] <= itm[12].DB_MAX_OUTPUT_PORT_TYPE +tw[13] <= itm[13].DB_MAX_OUTPUT_PORT_TYPE +tw[14] <= itm[14].DB_MAX_OUTPUT_PORT_TYPE +tw[15] <= itm[15].DB_MAX_OUTPUT_PORT_TYPE +tw[16] <= itm[16].DB_MAX_OUTPUT_PORT_TYPE +tw[17] <= itm[17].DB_MAX_OUTPUT_PORT_TYPE +tw[18] <= itm[18].DB_MAX_OUTPUT_PORT_TYPE +tw[19] <= itm[19].DB_MAX_OUTPUT_PORT_TYPE +tw[20] <= itm[20].DB_MAX_OUTPUT_PORT_TYPE +tw[21] <= itm[21].DB_MAX_OUTPUT_PORT_TYPE +tw[22] <= itm[22].DB_MAX_OUTPUT_PORT_TYPE +tw[23] <= itm[23].DB_MAX_OUTPUT_PORT_TYPE +tw[24] <= itm[24].DB_MAX_OUTPUT_PORT_TYPE +tw[25] <= itm[25].DB_MAX_OUTPUT_PORT_TYPE +tw[26] <= itm[26].DB_MAX_OUTPUT_PORT_TYPE +tw[27] <= itm[27].DB_MAX_OUTPUT_PORT_TYPE +tw[28] <= itm[28].DB_MAX_OUTPUT_PORT_TYPE +tw[29] <= itm[29].DB_MAX_OUTPUT_PORT_TYPE +tw[30] <= itm[30].DB_MAX_OUTPUT_PORT_TYPE +tw[31] <= itm[31].DB_MAX_OUTPUT_PORT_TYPE +tw[32] <= itm[32].DB_MAX_OUTPUT_PORT_TYPE +tw[33] <= itm[33].DB_MAX_OUTPUT_PORT_TYPE +tw[34] <= itm[34].DB_MAX_OUTPUT_PORT_TYPE +tw[35] <= itm[35].DB_MAX_OUTPUT_PORT_TYPE + + +|lights|nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_oci_fifo:the_nios_system_nios2_processor_nios2_oci_fifo|nios_system_nios2_processor_nios2_oci_compute_tm_count:nios_system_nios2_processor_nios2_oci_compute_tm_count_tm_count +atm_valid => Decoder0.IN1 +dtm_valid => Decoder0.IN2 +itm_valid => Decoder0.IN0 +compute_tm_count[0] <= WideOr1.DB_MAX_OUTPUT_PORT_TYPE +compute_tm_count[1] <= WideOr0.DB_MAX_OUTPUT_PORT_TYPE + + +|lights|nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_oci_fifo:the_nios_system_nios2_processor_nios2_oci_fifo|nios_system_nios2_processor_nios2_oci_fifowp_inc:nios_system_nios2_processor_nios2_oci_fifowp_inc_fifowp +free2 => always0.IN1 +free3 => always0.IN1 +tm_count[0] => LessThan0.IN4 +tm_count[0] => LessThan1.IN4 +tm_count[0] => Equal0.IN1 +tm_count[1] => LessThan0.IN3 +tm_count[1] => LessThan1.IN3 +tm_count[1] => Equal0.IN0 +fifowp_inc[0] <= fifowp_inc.DB_MAX_OUTPUT_PORT_TYPE +fifowp_inc[1] <= fifowp_inc.DB_MAX_OUTPUT_PORT_TYPE +fifowp_inc[2] <= +fifowp_inc[3] <= + + +|lights|nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_oci_fifo:the_nios_system_nios2_processor_nios2_oci_fifo|nios_system_nios2_processor_nios2_oci_fifocount_inc:nios_system_nios2_processor_nios2_oci_fifocount_inc_fifocount +empty => fifocount_inc.OUTPUTSELECT +empty => fifocount_inc.OUTPUTSELECT +empty => fifocount_inc.OUTPUTSELECT +empty => fifocount_inc.OUTPUTSELECT +empty => fifocount_inc.OUTPUTSELECT +free2 => always0.IN1 +free3 => always0.IN1 +tm_count[0] => LessThan0.IN4 +tm_count[0] => LessThan1.IN4 +tm_count[0] => fifocount_inc.DATAB +tm_count[0] => Equal0.IN1 +tm_count[1] => LessThan0.IN3 +tm_count[1] => LessThan1.IN3 +tm_count[1] => fifocount_inc.DATAB +tm_count[1] => Equal0.IN0 +fifocount_inc[0] <= fifocount_inc.DB_MAX_OUTPUT_PORT_TYPE +fifocount_inc[1] <= fifocount_inc.DB_MAX_OUTPUT_PORT_TYPE +fifocount_inc[2] <= fifocount_inc.DB_MAX_OUTPUT_PORT_TYPE +fifocount_inc[3] <= fifocount_inc.DB_MAX_OUTPUT_PORT_TYPE +fifocount_inc[4] <= fifocount_inc.DB_MAX_OUTPUT_PORT_TYPE + + +|lights|nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_oci_fifo:the_nios_system_nios2_processor_nios2_oci_fifo|nios_system_nios2_processor_oci_test_bench:the_nios_system_nios2_processor_oci_test_bench +dct_buffer[0] => ~NO_FANOUT~ +dct_buffer[1] => ~NO_FANOUT~ +dct_buffer[2] => ~NO_FANOUT~ +dct_buffer[3] => ~NO_FANOUT~ +dct_buffer[4] => ~NO_FANOUT~ +dct_buffer[5] => ~NO_FANOUT~ +dct_buffer[6] => ~NO_FANOUT~ +dct_buffer[7] => ~NO_FANOUT~ +dct_buffer[8] => ~NO_FANOUT~ +dct_buffer[9] => ~NO_FANOUT~ +dct_buffer[10] => ~NO_FANOUT~ +dct_buffer[11] => ~NO_FANOUT~ +dct_buffer[12] => ~NO_FANOUT~ +dct_buffer[13] => ~NO_FANOUT~ +dct_buffer[14] => ~NO_FANOUT~ +dct_buffer[15] => ~NO_FANOUT~ +dct_buffer[16] => ~NO_FANOUT~ +dct_buffer[17] => ~NO_FANOUT~ +dct_buffer[18] => ~NO_FANOUT~ +dct_buffer[19] => ~NO_FANOUT~ +dct_buffer[20] => ~NO_FANOUT~ +dct_buffer[21] => ~NO_FANOUT~ +dct_buffer[22] => ~NO_FANOUT~ +dct_buffer[23] => ~NO_FANOUT~ +dct_buffer[24] => ~NO_FANOUT~ +dct_buffer[25] => ~NO_FANOUT~ +dct_buffer[26] => ~NO_FANOUT~ +dct_buffer[27] => ~NO_FANOUT~ +dct_buffer[28] => ~NO_FANOUT~ +dct_buffer[29] => ~NO_FANOUT~ +dct_count[0] => ~NO_FANOUT~ +dct_count[1] => ~NO_FANOUT~ +dct_count[2] => ~NO_FANOUT~ +dct_count[3] => ~NO_FANOUT~ +test_ending => ~NO_FANOUT~ +test_has_ended => ~NO_FANOUT~ + + +|lights|nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_oci_pib:the_nios_system_nios2_processor_nios2_oci_pib +clk => ~NO_FANOUT~ +clkx2 => ~NO_FANOUT~ +jrst_n => ~NO_FANOUT~ +tw[0] => ~NO_FANOUT~ +tw[1] => ~NO_FANOUT~ +tw[2] => ~NO_FANOUT~ +tw[3] => ~NO_FANOUT~ +tw[4] => ~NO_FANOUT~ +tw[5] => ~NO_FANOUT~ +tw[6] => ~NO_FANOUT~ +tw[7] => ~NO_FANOUT~ +tw[8] => ~NO_FANOUT~ +tw[9] => ~NO_FANOUT~ +tw[10] => ~NO_FANOUT~ +tw[11] => ~NO_FANOUT~ +tw[12] => ~NO_FANOUT~ +tw[13] => ~NO_FANOUT~ +tw[14] => ~NO_FANOUT~ +tw[15] => ~NO_FANOUT~ +tw[16] => ~NO_FANOUT~ +tw[17] => ~NO_FANOUT~ +tw[18] => ~NO_FANOUT~ +tw[19] => ~NO_FANOUT~ +tw[20] => ~NO_FANOUT~ +tw[21] => ~NO_FANOUT~ +tw[22] => ~NO_FANOUT~ +tw[23] => ~NO_FANOUT~ +tw[24] => ~NO_FANOUT~ +tw[25] => ~NO_FANOUT~ +tw[26] => ~NO_FANOUT~ +tw[27] => ~NO_FANOUT~ +tw[28] => ~NO_FANOUT~ +tw[29] => ~NO_FANOUT~ +tw[30] => ~NO_FANOUT~ +tw[31] => ~NO_FANOUT~ +tw[32] => ~NO_FANOUT~ +tw[33] => ~NO_FANOUT~ +tw[34] => ~NO_FANOUT~ +tw[35] => ~NO_FANOUT~ +tr_clk <= +tr_data[0] <= +tr_data[1] <= +tr_data[2] <= +tr_data[3] <= +tr_data[4] <= +tr_data[5] <= +tr_data[6] <= +tr_data[7] <= +tr_data[8] <= +tr_data[9] <= +tr_data[10] <= +tr_data[11] <= +tr_data[12] <= +tr_data[13] <= +tr_data[14] <= +tr_data[15] <= +tr_data[16] <= +tr_data[17] <= + + +|lights|nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_oci_im:the_nios_system_nios2_processor_nios2_oci_im +clk => trc_wrap~reg0.CLK +clk => trc_im_addr[0]~reg0.CLK +clk => trc_im_addr[1]~reg0.CLK +clk => trc_im_addr[2]~reg0.CLK +clk => trc_im_addr[3]~reg0.CLK +clk => trc_im_addr[4]~reg0.CLK +clk => trc_im_addr[5]~reg0.CLK +clk => trc_im_addr[6]~reg0.CLK +jdo[0] => ~NO_FANOUT~ +jdo[1] => ~NO_FANOUT~ +jdo[2] => ~NO_FANOUT~ +jdo[3] => ~NO_FANOUT~ +jdo[4] => ~NO_FANOUT~ +jdo[5] => ~NO_FANOUT~ +jdo[6] => ~NO_FANOUT~ +jdo[7] => ~NO_FANOUT~ +jdo[8] => ~NO_FANOUT~ +jdo[9] => ~NO_FANOUT~ +jdo[10] => ~NO_FANOUT~ +jdo[11] => ~NO_FANOUT~ +jdo[12] => ~NO_FANOUT~ +jdo[13] => ~NO_FANOUT~ +jdo[14] => ~NO_FANOUT~ +jdo[15] => ~NO_FANOUT~ +jdo[16] => ~NO_FANOUT~ +jdo[17] => ~NO_FANOUT~ +jdo[18] => ~NO_FANOUT~ +jdo[19] => ~NO_FANOUT~ +jdo[20] => ~NO_FANOUT~ +jdo[21] => ~NO_FANOUT~ +jdo[22] => ~NO_FANOUT~ +jdo[23] => ~NO_FANOUT~ +jdo[24] => ~NO_FANOUT~ +jdo[25] => ~NO_FANOUT~ +jdo[26] => ~NO_FANOUT~ +jdo[27] => ~NO_FANOUT~ +jdo[28] => ~NO_FANOUT~ +jdo[29] => ~NO_FANOUT~ +jdo[30] => ~NO_FANOUT~ +jdo[31] => ~NO_FANOUT~ +jdo[32] => ~NO_FANOUT~ +jdo[33] => ~NO_FANOUT~ +jdo[34] => ~NO_FANOUT~ +jdo[35] => ~NO_FANOUT~ +jdo[36] => ~NO_FANOUT~ +jdo[37] => ~NO_FANOUT~ +jrst_n => trc_wrap~reg0.ACLR +jrst_n => trc_im_addr[0]~reg0.ACLR +jrst_n => trc_im_addr[1]~reg0.ACLR +jrst_n => trc_im_addr[2]~reg0.ACLR +jrst_n => trc_im_addr[3]~reg0.ACLR +jrst_n => trc_im_addr[4]~reg0.ACLR +jrst_n => trc_im_addr[5]~reg0.ACLR +jrst_n => trc_im_addr[6]~reg0.ACLR +reset_n => ~NO_FANOUT~ +take_action_tracectrl => ~NO_FANOUT~ +take_action_tracemem_a => ~NO_FANOUT~ +take_action_tracemem_b => ~NO_FANOUT~ +take_no_action_tracemem_a => ~NO_FANOUT~ +trc_ctrl[0] => tracemem_on.DATAIN +trc_ctrl[0] => trc_enb.DATAIN +trc_ctrl[1] => ~NO_FANOUT~ +trc_ctrl[2] => ~NO_FANOUT~ +trc_ctrl[3] => ~NO_FANOUT~ +trc_ctrl[4] => ~NO_FANOUT~ +trc_ctrl[5] => ~NO_FANOUT~ +trc_ctrl[6] => ~NO_FANOUT~ +trc_ctrl[7] => ~NO_FANOUT~ +trc_ctrl[8] => ~NO_FANOUT~ +trc_ctrl[9] => ~NO_FANOUT~ +trc_ctrl[10] => xbrk_wrap_traceoff.IN1 +trc_ctrl[11] => ~NO_FANOUT~ +trc_ctrl[12] => ~NO_FANOUT~ +trc_ctrl[13] => ~NO_FANOUT~ +trc_ctrl[14] => ~NO_FANOUT~ +trc_ctrl[15] => ~NO_FANOUT~ +tw[0] => ~NO_FANOUT~ +tw[1] => ~NO_FANOUT~ +tw[2] => ~NO_FANOUT~ +tw[3] => ~NO_FANOUT~ +tw[4] => ~NO_FANOUT~ +tw[5] => ~NO_FANOUT~ +tw[6] => ~NO_FANOUT~ +tw[7] => ~NO_FANOUT~ +tw[8] => ~NO_FANOUT~ +tw[9] => ~NO_FANOUT~ +tw[10] => ~NO_FANOUT~ +tw[11] => ~NO_FANOUT~ +tw[12] => ~NO_FANOUT~ +tw[13] => ~NO_FANOUT~ +tw[14] => ~NO_FANOUT~ +tw[15] => ~NO_FANOUT~ +tw[16] => ~NO_FANOUT~ +tw[17] => ~NO_FANOUT~ +tw[18] => ~NO_FANOUT~ +tw[19] => ~NO_FANOUT~ +tw[20] => ~NO_FANOUT~ +tw[21] => ~NO_FANOUT~ +tw[22] => ~NO_FANOUT~ +tw[23] => ~NO_FANOUT~ +tw[24] => ~NO_FANOUT~ +tw[25] => ~NO_FANOUT~ +tw[26] => ~NO_FANOUT~ +tw[27] => ~NO_FANOUT~ +tw[28] => ~NO_FANOUT~ +tw[29] => ~NO_FANOUT~ +tw[30] => ~NO_FANOUT~ +tw[31] => ~NO_FANOUT~ +tw[32] => ~NO_FANOUT~ +tw[33] => ~NO_FANOUT~ +tw[34] => ~NO_FANOUT~ +tw[35] => ~NO_FANOUT~ +tracemem_on <= trc_ctrl[0].DB_MAX_OUTPUT_PORT_TYPE +tracemem_trcdata[0] <= +tracemem_trcdata[1] <= +tracemem_trcdata[2] <= +tracemem_trcdata[3] <= +tracemem_trcdata[4] <= +tracemem_trcdata[5] <= +tracemem_trcdata[6] <= +tracemem_trcdata[7] <= +tracemem_trcdata[8] <= +tracemem_trcdata[9] <= +tracemem_trcdata[10] <= +tracemem_trcdata[11] <= +tracemem_trcdata[12] <= +tracemem_trcdata[13] <= +tracemem_trcdata[14] <= +tracemem_trcdata[15] <= +tracemem_trcdata[16] <= +tracemem_trcdata[17] <= +tracemem_trcdata[18] <= +tracemem_trcdata[19] <= +tracemem_trcdata[20] <= +tracemem_trcdata[21] <= +tracemem_trcdata[22] <= +tracemem_trcdata[23] <= +tracemem_trcdata[24] <= +tracemem_trcdata[25] <= +tracemem_trcdata[26] <= +tracemem_trcdata[27] <= +tracemem_trcdata[28] <= +tracemem_trcdata[29] <= +tracemem_trcdata[30] <= +tracemem_trcdata[31] <= +tracemem_trcdata[32] <= +tracemem_trcdata[33] <= +tracemem_trcdata[34] <= +tracemem_trcdata[35] <= +tracemem_tw <= tracemem_tw.DB_MAX_OUTPUT_PORT_TYPE +trc_enb <= trc_ctrl[0].DB_MAX_OUTPUT_PORT_TYPE +trc_im_addr[0] <= trc_im_addr[0]~reg0.DB_MAX_OUTPUT_PORT_TYPE +trc_im_addr[1] <= trc_im_addr[1]~reg0.DB_MAX_OUTPUT_PORT_TYPE +trc_im_addr[2] <= trc_im_addr[2]~reg0.DB_MAX_OUTPUT_PORT_TYPE +trc_im_addr[3] <= trc_im_addr[3]~reg0.DB_MAX_OUTPUT_PORT_TYPE +trc_im_addr[4] <= trc_im_addr[4]~reg0.DB_MAX_OUTPUT_PORT_TYPE +trc_im_addr[5] <= trc_im_addr[5]~reg0.DB_MAX_OUTPUT_PORT_TYPE +trc_im_addr[6] <= trc_im_addr[6]~reg0.DB_MAX_OUTPUT_PORT_TYPE +trc_wrap <= trc_wrap~reg0.DB_MAX_OUTPUT_PORT_TYPE +xbrk_wrap_traceoff <= xbrk_wrap_traceoff.DB_MAX_OUTPUT_PORT_TYPE + + +|lights|nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper +MonDReg[0] => MonDReg[0].IN1 +MonDReg[1] => MonDReg[1].IN1 +MonDReg[2] => MonDReg[2].IN1 +MonDReg[3] => MonDReg[3].IN1 +MonDReg[4] => MonDReg[4].IN1 +MonDReg[5] => MonDReg[5].IN1 +MonDReg[6] => MonDReg[6].IN1 +MonDReg[7] => MonDReg[7].IN1 +MonDReg[8] => MonDReg[8].IN1 +MonDReg[9] => MonDReg[9].IN1 +MonDReg[10] => MonDReg[10].IN1 +MonDReg[11] => MonDReg[11].IN1 +MonDReg[12] => MonDReg[12].IN1 +MonDReg[13] => MonDReg[13].IN1 +MonDReg[14] => MonDReg[14].IN1 +MonDReg[15] => MonDReg[15].IN1 +MonDReg[16] => MonDReg[16].IN1 +MonDReg[17] => MonDReg[17].IN1 +MonDReg[18] => MonDReg[18].IN1 +MonDReg[19] => MonDReg[19].IN1 +MonDReg[20] => MonDReg[20].IN1 +MonDReg[21] => MonDReg[21].IN1 +MonDReg[22] => MonDReg[22].IN1 +MonDReg[23] => MonDReg[23].IN1 +MonDReg[24] => MonDReg[24].IN1 +MonDReg[25] => MonDReg[25].IN1 +MonDReg[26] => MonDReg[26].IN1 +MonDReg[27] => MonDReg[27].IN1 +MonDReg[28] => MonDReg[28].IN1 +MonDReg[29] => MonDReg[29].IN1 +MonDReg[30] => MonDReg[30].IN1 +MonDReg[31] => MonDReg[31].IN1 +break_readreg[0] => break_readreg[0].IN1 +break_readreg[1] => break_readreg[1].IN1 +break_readreg[2] => break_readreg[2].IN1 +break_readreg[3] => break_readreg[3].IN1 +break_readreg[4] => break_readreg[4].IN1 +break_readreg[5] => break_readreg[5].IN1 +break_readreg[6] => break_readreg[6].IN1 +break_readreg[7] => break_readreg[7].IN1 +break_readreg[8] => break_readreg[8].IN1 +break_readreg[9] => break_readreg[9].IN1 +break_readreg[10] => break_readreg[10].IN1 +break_readreg[11] => break_readreg[11].IN1 +break_readreg[12] => break_readreg[12].IN1 +break_readreg[13] => break_readreg[13].IN1 +break_readreg[14] => break_readreg[14].IN1 +break_readreg[15] => break_readreg[15].IN1 +break_readreg[16] => break_readreg[16].IN1 +break_readreg[17] => break_readreg[17].IN1 +break_readreg[18] => break_readreg[18].IN1 +break_readreg[19] => break_readreg[19].IN1 +break_readreg[20] => break_readreg[20].IN1 +break_readreg[21] => break_readreg[21].IN1 +break_readreg[22] => break_readreg[22].IN1 +break_readreg[23] => break_readreg[23].IN1 +break_readreg[24] => break_readreg[24].IN1 +break_readreg[25] => break_readreg[25].IN1 +break_readreg[26] => break_readreg[26].IN1 +break_readreg[27] => break_readreg[27].IN1 +break_readreg[28] => break_readreg[28].IN1 +break_readreg[29] => break_readreg[29].IN1 +break_readreg[30] => break_readreg[30].IN1 +break_readreg[31] => break_readreg[31].IN1 +clk => clk.IN1 +dbrk_hit0_latch => dbrk_hit0_latch.IN1 +dbrk_hit1_latch => dbrk_hit1_latch.IN1 +dbrk_hit2_latch => dbrk_hit2_latch.IN1 +dbrk_hit3_latch => dbrk_hit3_latch.IN1 +debugack => debugack.IN1 +monitor_error => monitor_error.IN1 +monitor_ready => monitor_ready.IN1 +reset_n => reset_n.IN1 +resetlatch => resetlatch.IN1 +tracemem_on => tracemem_on.IN1 +tracemem_trcdata[0] => tracemem_trcdata[0].IN1 +tracemem_trcdata[1] => tracemem_trcdata[1].IN1 +tracemem_trcdata[2] => tracemem_trcdata[2].IN1 +tracemem_trcdata[3] => tracemem_trcdata[3].IN1 +tracemem_trcdata[4] => tracemem_trcdata[4].IN1 +tracemem_trcdata[5] => tracemem_trcdata[5].IN1 +tracemem_trcdata[6] => tracemem_trcdata[6].IN1 +tracemem_trcdata[7] => tracemem_trcdata[7].IN1 +tracemem_trcdata[8] => tracemem_trcdata[8].IN1 +tracemem_trcdata[9] => tracemem_trcdata[9].IN1 +tracemem_trcdata[10] => tracemem_trcdata[10].IN1 +tracemem_trcdata[11] => tracemem_trcdata[11].IN1 +tracemem_trcdata[12] => tracemem_trcdata[12].IN1 +tracemem_trcdata[13] => tracemem_trcdata[13].IN1 +tracemem_trcdata[14] => tracemem_trcdata[14].IN1 +tracemem_trcdata[15] => tracemem_trcdata[15].IN1 +tracemem_trcdata[16] => tracemem_trcdata[16].IN1 +tracemem_trcdata[17] => tracemem_trcdata[17].IN1 +tracemem_trcdata[18] => tracemem_trcdata[18].IN1 +tracemem_trcdata[19] => tracemem_trcdata[19].IN1 +tracemem_trcdata[20] => tracemem_trcdata[20].IN1 +tracemem_trcdata[21] => tracemem_trcdata[21].IN1 +tracemem_trcdata[22] => tracemem_trcdata[22].IN1 +tracemem_trcdata[23] => tracemem_trcdata[23].IN1 +tracemem_trcdata[24] => tracemem_trcdata[24].IN1 +tracemem_trcdata[25] => tracemem_trcdata[25].IN1 +tracemem_trcdata[26] => tracemem_trcdata[26].IN1 +tracemem_trcdata[27] => tracemem_trcdata[27].IN1 +tracemem_trcdata[28] => tracemem_trcdata[28].IN1 +tracemem_trcdata[29] => tracemem_trcdata[29].IN1 +tracemem_trcdata[30] => tracemem_trcdata[30].IN1 +tracemem_trcdata[31] => tracemem_trcdata[31].IN1 +tracemem_trcdata[32] => tracemem_trcdata[32].IN1 +tracemem_trcdata[33] => tracemem_trcdata[33].IN1 +tracemem_trcdata[34] => tracemem_trcdata[34].IN1 +tracemem_trcdata[35] => tracemem_trcdata[35].IN1 +tracemem_tw => tracemem_tw.IN1 +trc_im_addr[0] => trc_im_addr[0].IN1 +trc_im_addr[1] => trc_im_addr[1].IN1 +trc_im_addr[2] => trc_im_addr[2].IN1 +trc_im_addr[3] => trc_im_addr[3].IN1 +trc_im_addr[4] => trc_im_addr[4].IN1 +trc_im_addr[5] => trc_im_addr[5].IN1 +trc_im_addr[6] => trc_im_addr[6].IN1 +trc_on => trc_on.IN1 +trc_wrap => trc_wrap.IN1 +trigbrktype => trigbrktype.IN1 +trigger_state_1 => trigger_state_1.IN1 +jdo[0] <= nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk.jdo +jdo[1] <= nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk.jdo +jdo[2] <= nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk.jdo +jdo[3] <= nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk.jdo +jdo[4] <= nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk.jdo +jdo[5] <= nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk.jdo +jdo[6] <= nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk.jdo +jdo[7] <= nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk.jdo +jdo[8] <= nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk.jdo +jdo[9] <= nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk.jdo +jdo[10] <= nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk.jdo +jdo[11] <= nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk.jdo +jdo[12] <= nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk.jdo +jdo[13] <= nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk.jdo +jdo[14] <= nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk.jdo +jdo[15] <= nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk.jdo +jdo[16] <= nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk.jdo +jdo[17] <= nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk.jdo +jdo[18] <= nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk.jdo +jdo[19] <= nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk.jdo +jdo[20] <= nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk.jdo +jdo[21] <= nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk.jdo +jdo[22] <= nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk.jdo +jdo[23] <= nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk.jdo +jdo[24] <= nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk.jdo +jdo[25] <= nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk.jdo +jdo[26] <= nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk.jdo +jdo[27] <= nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk.jdo +jdo[28] <= nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk.jdo +jdo[29] <= nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk.jdo +jdo[30] <= nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk.jdo +jdo[31] <= nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk.jdo +jdo[32] <= nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk.jdo +jdo[33] <= nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk.jdo +jdo[34] <= nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk.jdo +jdo[35] <= nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk.jdo +jdo[36] <= nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk.jdo +jdo[37] <= nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk.jdo +jrst_n <= nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck.jrst_n +st_ready_test_idle <= nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck.st_ready_test_idle +take_action_break_a <= nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk.take_action_break_a +take_action_break_b <= nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk.take_action_break_b +take_action_break_c <= nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk.take_action_break_c +take_action_ocimem_a <= nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk.take_action_ocimem_a +take_action_ocimem_b <= nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk.take_action_ocimem_b +take_action_tracectrl <= nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk.take_action_tracectrl +take_action_tracemem_a <= nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk.take_action_tracemem_a +take_action_tracemem_b <= nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk.take_action_tracemem_b +take_no_action_break_a <= nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk.take_no_action_break_a +take_no_action_break_b <= nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk.take_no_action_break_b +take_no_action_break_c <= nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk.take_no_action_break_c +take_no_action_ocimem_a <= nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk.take_no_action_ocimem_a +take_no_action_tracemem_a <= nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk.take_no_action_tracemem_a + + +|lights|nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck +MonDReg[0] => Mux36.IN0 +MonDReg[1] => Mux35.IN0 +MonDReg[2] => Mux34.IN0 +MonDReg[3] => Mux33.IN0 +MonDReg[4] => Mux32.IN0 +MonDReg[5] => Mux31.IN0 +MonDReg[6] => Mux30.IN0 +MonDReg[7] => Mux29.IN0 +MonDReg[8] => Mux28.IN1 +MonDReg[9] => Mux27.IN1 +MonDReg[10] => Mux26.IN1 +MonDReg[11] => Mux25.IN1 +MonDReg[12] => Mux24.IN1 +MonDReg[13] => Mux23.IN1 +MonDReg[14] => Mux22.IN1 +MonDReg[15] => Mux21.IN1 +MonDReg[16] => Mux20.IN1 +MonDReg[17] => Mux19.IN1 +MonDReg[18] => Mux18.IN1 +MonDReg[19] => Mux17.IN1 +MonDReg[20] => Mux16.IN1 +MonDReg[21] => Mux15.IN1 +MonDReg[22] => Mux14.IN1 +MonDReg[23] => Mux13.IN1 +MonDReg[24] => Mux12.IN1 +MonDReg[25] => Mux11.IN1 +MonDReg[26] => Mux10.IN1 +MonDReg[27] => Mux9.IN1 +MonDReg[28] => Mux8.IN1 +MonDReg[29] => Mux7.IN1 +MonDReg[30] => Mux6.IN1 +MonDReg[31] => Mux5.IN1 +break_readreg[0] => Mux36.IN1 +break_readreg[1] => Mux35.IN1 +break_readreg[2] => Mux34.IN1 +break_readreg[3] => Mux33.IN1 +break_readreg[4] => Mux32.IN1 +break_readreg[5] => Mux31.IN1 +break_readreg[6] => Mux30.IN1 +break_readreg[7] => Mux29.IN1 +break_readreg[8] => Mux28.IN2 +break_readreg[9] => Mux27.IN2 +break_readreg[10] => Mux26.IN2 +break_readreg[11] => Mux25.IN2 +break_readreg[12] => Mux24.IN2 +break_readreg[13] => Mux23.IN2 +break_readreg[14] => Mux22.IN2 +break_readreg[15] => Mux21.IN2 +break_readreg[16] => Mux20.IN2 +break_readreg[17] => Mux19.IN2 +break_readreg[18] => Mux18.IN2 +break_readreg[19] => Mux17.IN2 +break_readreg[20] => Mux16.IN2 +break_readreg[21] => Mux15.IN2 +break_readreg[22] => Mux14.IN2 +break_readreg[23] => Mux13.IN2 +break_readreg[24] => Mux12.IN2 +break_readreg[25] => Mux11.IN2 +break_readreg[26] => Mux10.IN2 +break_readreg[27] => Mux9.IN2 +break_readreg[28] => Mux8.IN2 +break_readreg[29] => Mux7.IN2 +break_readreg[30] => Mux6.IN2 +break_readreg[31] => Mux5.IN2 +dbrk_hit0_latch => Mux4.IN1 +dbrk_hit1_latch => Mux3.IN1 +dbrk_hit2_latch => Mux2.IN1 +dbrk_hit3_latch => Mux1.IN2 +debugack => debugack.IN1 +ir_in[0] => Mux0.IN3 +ir_in[0] => Mux1.IN4 +ir_in[0] => Mux2.IN3 +ir_in[0] => Mux3.IN3 +ir_in[0] => Mux4.IN3 +ir_in[0] => Mux5.IN4 +ir_in[0] => Mux6.IN4 +ir_in[0] => Mux7.IN4 +ir_in[0] => Mux8.IN4 +ir_in[0] => Mux9.IN4 +ir_in[0] => Mux10.IN4 +ir_in[0] => Mux11.IN4 +ir_in[0] => Mux12.IN4 +ir_in[0] => Mux13.IN4 +ir_in[0] => Mux14.IN4 +ir_in[0] => Mux15.IN4 +ir_in[0] => Mux16.IN4 +ir_in[0] => Mux17.IN4 +ir_in[0] => Mux18.IN4 +ir_in[0] => Mux19.IN4 +ir_in[0] => Mux20.IN4 +ir_in[0] => Mux21.IN4 +ir_in[0] => Mux22.IN4 +ir_in[0] => Mux23.IN4 +ir_in[0] => Mux24.IN4 +ir_in[0] => Mux25.IN4 +ir_in[0] => Mux26.IN4 +ir_in[0] => Mux27.IN4 +ir_in[0] => Mux28.IN4 +ir_in[0] => Mux29.IN3 +ir_in[0] => Mux30.IN3 +ir_in[0] => Mux31.IN3 +ir_in[0] => Mux32.IN3 +ir_in[0] => Mux33.IN3 +ir_in[0] => Mux34.IN3 +ir_in[0] => Mux35.IN3 +ir_in[0] => Mux36.IN3 +ir_in[0] => Mux37.IN1 +ir_in[0] => Decoder0.IN1 +ir_in[1] => Mux0.IN2 +ir_in[1] => Mux1.IN3 +ir_in[1] => Mux2.IN2 +ir_in[1] => Mux3.IN2 +ir_in[1] => Mux4.IN2 +ir_in[1] => Mux5.IN3 +ir_in[1] => Mux6.IN3 +ir_in[1] => Mux7.IN3 +ir_in[1] => Mux8.IN3 +ir_in[1] => Mux9.IN3 +ir_in[1] => Mux10.IN3 +ir_in[1] => Mux11.IN3 +ir_in[1] => Mux12.IN3 +ir_in[1] => Mux13.IN3 +ir_in[1] => Mux14.IN3 +ir_in[1] => Mux15.IN3 +ir_in[1] => Mux16.IN3 +ir_in[1] => Mux17.IN3 +ir_in[1] => Mux18.IN3 +ir_in[1] => Mux19.IN3 +ir_in[1] => Mux20.IN3 +ir_in[1] => Mux21.IN3 +ir_in[1] => Mux22.IN3 +ir_in[1] => Mux23.IN3 +ir_in[1] => Mux24.IN3 +ir_in[1] => Mux25.IN3 +ir_in[1] => Mux26.IN3 +ir_in[1] => Mux27.IN3 +ir_in[1] => Mux28.IN3 +ir_in[1] => Mux29.IN2 +ir_in[1] => Mux30.IN2 +ir_in[1] => Mux31.IN2 +ir_in[1] => Mux32.IN2 +ir_in[1] => Mux33.IN2 +ir_in[1] => Mux34.IN2 +ir_in[1] => Mux35.IN2 +ir_in[1] => Mux36.IN2 +ir_in[1] => Mux37.IN0 +ir_in[1] => Decoder0.IN0 +jtag_state_rti => st_ready_test_idle.DATAIN +monitor_error => Mux3.IN4 +monitor_ready => monitor_ready.IN1 +reset_n => ~NO_FANOUT~ +resetlatch => Mux4.IN4 +tck => tck.IN2 +tdi => sr.DATAB +tdi => sr.DATAB +tdi => sr.DATAB +tdi => sr.DATAB +tdi => sr.DATAB +tdi => sr.DATAB +tracemem_on => Mux1.IN5 +tracemem_trcdata[0] => Mux37.IN2 +tracemem_trcdata[1] => Mux36.IN4 +tracemem_trcdata[2] => Mux35.IN4 +tracemem_trcdata[3] => Mux34.IN4 +tracemem_trcdata[4] => Mux33.IN4 +tracemem_trcdata[5] => Mux32.IN4 +tracemem_trcdata[6] => Mux31.IN4 +tracemem_trcdata[7] => Mux30.IN4 +tracemem_trcdata[8] => Mux29.IN4 +tracemem_trcdata[9] => Mux28.IN5 +tracemem_trcdata[10] => Mux27.IN5 +tracemem_trcdata[11] => Mux26.IN5 +tracemem_trcdata[12] => Mux25.IN5 +tracemem_trcdata[13] => Mux24.IN5 +tracemem_trcdata[14] => Mux23.IN5 +tracemem_trcdata[15] => Mux22.IN5 +tracemem_trcdata[16] => Mux21.IN5 +tracemem_trcdata[17] => Mux20.IN5 +tracemem_trcdata[18] => Mux19.IN5 +tracemem_trcdata[19] => Mux18.IN5 +tracemem_trcdata[20] => Mux17.IN5 +tracemem_trcdata[21] => Mux16.IN5 +tracemem_trcdata[22] => Mux15.IN5 +tracemem_trcdata[23] => Mux14.IN5 +tracemem_trcdata[24] => Mux13.IN5 +tracemem_trcdata[25] => Mux12.IN5 +tracemem_trcdata[26] => Mux11.IN5 +tracemem_trcdata[27] => Mux10.IN5 +tracemem_trcdata[28] => Mux9.IN5 +tracemem_trcdata[29] => Mux8.IN5 +tracemem_trcdata[30] => Mux7.IN5 +tracemem_trcdata[31] => Mux6.IN5 +tracemem_trcdata[32] => Mux5.IN5 +tracemem_trcdata[33] => Mux4.IN5 +tracemem_trcdata[34] => Mux3.IN5 +tracemem_trcdata[35] => Mux2.IN4 +tracemem_tw => Mux0.IN4 +trc_im_addr[0] => Mux35.IN5 +trc_im_addr[1] => Mux34.IN5 +trc_im_addr[2] => Mux33.IN5 +trc_im_addr[3] => Mux32.IN5 +trc_im_addr[4] => Mux31.IN5 +trc_im_addr[5] => Mux30.IN5 +trc_im_addr[6] => Mux29.IN5 +trc_on => Mux37.IN3 +trc_wrap => Mux36.IN5 +trigbrktype => Mux37.IN4 +trigger_state_1 => Mux0.IN5 +vs_cdr => sr.OUTPUTSELECT +vs_cdr => sr.OUTPUTSELECT +vs_cdr => sr.OUTPUTSELECT +vs_cdr => sr.OUTPUTSELECT +vs_cdr => sr.OUTPUTSELECT +vs_cdr => sr.OUTPUTSELECT +vs_cdr => sr.OUTPUTSELECT +vs_cdr => sr.OUTPUTSELECT +vs_cdr => sr.OUTPUTSELECT +vs_cdr => sr.OUTPUTSELECT +vs_cdr => sr.OUTPUTSELECT +vs_cdr => sr.OUTPUTSELECT +vs_cdr => sr.OUTPUTSELECT +vs_cdr => sr.OUTPUTSELECT +vs_cdr => sr.OUTPUTSELECT +vs_cdr => sr.OUTPUTSELECT +vs_cdr => sr.OUTPUTSELECT +vs_cdr => sr.OUTPUTSELECT +vs_cdr => sr.OUTPUTSELECT +vs_cdr => sr.OUTPUTSELECT +vs_cdr => sr.OUTPUTSELECT +vs_cdr => sr.OUTPUTSELECT +vs_cdr => sr.OUTPUTSELECT +vs_cdr => sr.OUTPUTSELECT +vs_cdr => sr.OUTPUTSELECT +vs_cdr => sr.OUTPUTSELECT +vs_cdr => sr.OUTPUTSELECT +vs_cdr => sr.OUTPUTSELECT +vs_cdr => sr.OUTPUTSELECT +vs_cdr => sr.OUTPUTSELECT +vs_cdr => sr.OUTPUTSELECT +vs_cdr => sr.OUTPUTSELECT +vs_cdr => sr.OUTPUTSELECT +vs_cdr => sr.OUTPUTSELECT +vs_cdr => sr.OUTPUTSELECT +vs_cdr => sr.OUTPUTSELECT +vs_cdr => sr.OUTPUTSELECT +vs_cdr => sr.OUTPUTSELECT +vs_sdr => sr.OUTPUTSELECT +vs_sdr => sr.OUTPUTSELECT +vs_sdr => sr.OUTPUTSELECT +vs_sdr => sr.OUTPUTSELECT +vs_sdr => sr.OUTPUTSELECT +vs_sdr => sr.OUTPUTSELECT +vs_sdr => sr.OUTPUTSELECT +vs_sdr => sr.OUTPUTSELECT +vs_sdr => sr.OUTPUTSELECT +vs_sdr => sr.OUTPUTSELECT +vs_sdr => sr.OUTPUTSELECT +vs_sdr => sr.OUTPUTSELECT +vs_sdr => sr.OUTPUTSELECT +vs_sdr => sr.OUTPUTSELECT +vs_sdr => sr.OUTPUTSELECT +vs_sdr => sr.OUTPUTSELECT +vs_sdr => sr.OUTPUTSELECT +vs_sdr => sr.OUTPUTSELECT +vs_sdr => sr.OUTPUTSELECT +vs_sdr => sr.OUTPUTSELECT +vs_sdr => sr.OUTPUTSELECT +vs_sdr => sr.OUTPUTSELECT +vs_sdr => sr.OUTPUTSELECT +vs_sdr => sr.OUTPUTSELECT +vs_sdr => sr.OUTPUTSELECT +vs_sdr => sr.OUTPUTSELECT +vs_sdr => sr.OUTPUTSELECT +vs_sdr => sr.OUTPUTSELECT +vs_sdr => sr.OUTPUTSELECT +vs_sdr => sr.OUTPUTSELECT +vs_sdr => sr.OUTPUTSELECT +vs_sdr => sr.OUTPUTSELECT +vs_sdr => sr.OUTPUTSELECT +vs_sdr => sr.OUTPUTSELECT +vs_sdr => sr.OUTPUTSELECT +vs_sdr => sr.OUTPUTSELECT +vs_sdr => sr.OUTPUTSELECT +vs_sdr => sr.OUTPUTSELECT +vs_uir => DRsize.OUTPUTSELECT +vs_uir => DRsize.OUTPUTSELECT +vs_uir => DRsize.OUTPUTSELECT +vs_uir => DRsize.OUTPUTSELECT +vs_uir => DRsize.OUTPUTSELECT +vs_uir => DRsize.OUTPUTSELECT +ir_out[0] <= ir_out[0]~reg0.DB_MAX_OUTPUT_PORT_TYPE +ir_out[1] <= ir_out[1]~reg0.DB_MAX_OUTPUT_PORT_TYPE +jrst_n <= unxcomplemented_resetxx2.DB_MAX_OUTPUT_PORT_TYPE +sr[0] <= sr[0]~reg0.DB_MAX_OUTPUT_PORT_TYPE +sr[1] <= sr[1]~reg0.DB_MAX_OUTPUT_PORT_TYPE +sr[2] <= sr[2]~reg0.DB_MAX_OUTPUT_PORT_TYPE +sr[3] <= sr[3]~reg0.DB_MAX_OUTPUT_PORT_TYPE +sr[4] <= sr[4]~reg0.DB_MAX_OUTPUT_PORT_TYPE +sr[5] <= sr[5]~reg0.DB_MAX_OUTPUT_PORT_TYPE +sr[6] <= sr[6]~reg0.DB_MAX_OUTPUT_PORT_TYPE +sr[7] <= sr[7]~reg0.DB_MAX_OUTPUT_PORT_TYPE +sr[8] <= sr[8]~reg0.DB_MAX_OUTPUT_PORT_TYPE +sr[9] <= sr[9]~reg0.DB_MAX_OUTPUT_PORT_TYPE +sr[10] <= sr[10]~reg0.DB_MAX_OUTPUT_PORT_TYPE +sr[11] <= sr[11]~reg0.DB_MAX_OUTPUT_PORT_TYPE +sr[12] <= sr[12]~reg0.DB_MAX_OUTPUT_PORT_TYPE +sr[13] <= sr[13]~reg0.DB_MAX_OUTPUT_PORT_TYPE +sr[14] <= sr[14]~reg0.DB_MAX_OUTPUT_PORT_TYPE +sr[15] <= sr[15]~reg0.DB_MAX_OUTPUT_PORT_TYPE +sr[16] <= sr[16]~reg0.DB_MAX_OUTPUT_PORT_TYPE +sr[17] <= sr[17]~reg0.DB_MAX_OUTPUT_PORT_TYPE +sr[18] <= sr[18]~reg0.DB_MAX_OUTPUT_PORT_TYPE +sr[19] <= sr[19]~reg0.DB_MAX_OUTPUT_PORT_TYPE +sr[20] <= sr[20]~reg0.DB_MAX_OUTPUT_PORT_TYPE +sr[21] <= sr[21]~reg0.DB_MAX_OUTPUT_PORT_TYPE +sr[22] <= sr[22]~reg0.DB_MAX_OUTPUT_PORT_TYPE +sr[23] <= sr[23]~reg0.DB_MAX_OUTPUT_PORT_TYPE +sr[24] <= sr[24]~reg0.DB_MAX_OUTPUT_PORT_TYPE +sr[25] <= sr[25]~reg0.DB_MAX_OUTPUT_PORT_TYPE +sr[26] <= sr[26]~reg0.DB_MAX_OUTPUT_PORT_TYPE +sr[27] <= sr[27]~reg0.DB_MAX_OUTPUT_PORT_TYPE +sr[28] <= sr[28]~reg0.DB_MAX_OUTPUT_PORT_TYPE +sr[29] <= sr[29]~reg0.DB_MAX_OUTPUT_PORT_TYPE +sr[30] <= sr[30]~reg0.DB_MAX_OUTPUT_PORT_TYPE +sr[31] <= sr[31]~reg0.DB_MAX_OUTPUT_PORT_TYPE +sr[32] <= sr[32]~reg0.DB_MAX_OUTPUT_PORT_TYPE +sr[33] <= sr[33]~reg0.DB_MAX_OUTPUT_PORT_TYPE +sr[34] <= sr[34]~reg0.DB_MAX_OUTPUT_PORT_TYPE +sr[35] <= sr[35]~reg0.DB_MAX_OUTPUT_PORT_TYPE +sr[36] <= sr[36]~reg0.DB_MAX_OUTPUT_PORT_TYPE +sr[37] <= sr[37]~reg0.DB_MAX_OUTPUT_PORT_TYPE +st_ready_test_idle <= jtag_state_rti.DB_MAX_OUTPUT_PORT_TYPE +tdo <= tdo.DB_MAX_OUTPUT_PORT_TYPE + + +|lights|nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|altera_std_synchronizer:the_altera_std_synchronizer1 +clk => dreg[0].CLK +clk => din_s1.CLK +reset_n => dreg[0].ACLR +reset_n => din_s1.ACLR +din => din_s1.DATAIN +dout <= dout.DB_MAX_OUTPUT_PORT_TYPE + + +|lights|nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|altera_std_synchronizer:the_altera_std_synchronizer2 +clk => dreg[0].CLK +clk => din_s1.CLK +reset_n => dreg[0].ACLR +reset_n => din_s1.ACLR +din => din_s1.DATAIN +dout <= dout.DB_MAX_OUTPUT_PORT_TYPE + + +|lights|nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk +clk => clk.IN2 +ir_in[0] => ir[0].DATAIN +ir_in[1] => ir[1].DATAIN +sr[0] => jdo[0]~reg0.DATAIN +sr[1] => jdo[1]~reg0.DATAIN +sr[2] => jdo[2]~reg0.DATAIN +sr[3] => jdo[3]~reg0.DATAIN +sr[4] => jdo[4]~reg0.DATAIN +sr[5] => jdo[5]~reg0.DATAIN +sr[6] => jdo[6]~reg0.DATAIN +sr[7] => jdo[7]~reg0.DATAIN +sr[8] => jdo[8]~reg0.DATAIN +sr[9] => jdo[9]~reg0.DATAIN +sr[10] => jdo[10]~reg0.DATAIN +sr[11] => jdo[11]~reg0.DATAIN +sr[12] => jdo[12]~reg0.DATAIN +sr[13] => jdo[13]~reg0.DATAIN +sr[14] => jdo[14]~reg0.DATAIN +sr[15] => jdo[15]~reg0.DATAIN +sr[16] => jdo[16]~reg0.DATAIN +sr[17] => jdo[17]~reg0.DATAIN +sr[18] => jdo[18]~reg0.DATAIN +sr[19] => jdo[19]~reg0.DATAIN +sr[20] => jdo[20]~reg0.DATAIN +sr[21] => jdo[21]~reg0.DATAIN +sr[22] => jdo[22]~reg0.DATAIN +sr[23] => jdo[23]~reg0.DATAIN +sr[24] => jdo[24]~reg0.DATAIN +sr[25] => jdo[25]~reg0.DATAIN +sr[26] => jdo[26]~reg0.DATAIN +sr[27] => jdo[27]~reg0.DATAIN +sr[28] => jdo[28]~reg0.DATAIN +sr[29] => jdo[29]~reg0.DATAIN +sr[30] => jdo[30]~reg0.DATAIN +sr[31] => jdo[31]~reg0.DATAIN +sr[32] => jdo[32]~reg0.DATAIN +sr[33] => jdo[33]~reg0.DATAIN +sr[34] => jdo[34]~reg0.DATAIN +sr[35] => jdo[35]~reg0.DATAIN +sr[36] => jdo[36]~reg0.DATAIN +sr[37] => jdo[37]~reg0.DATAIN +vs_udr => vs_udr.IN1 +vs_uir => vs_uir.IN1 +jdo[0] <= jdo[0]~reg0.DB_MAX_OUTPUT_PORT_TYPE +jdo[1] <= jdo[1]~reg0.DB_MAX_OUTPUT_PORT_TYPE +jdo[2] <= jdo[2]~reg0.DB_MAX_OUTPUT_PORT_TYPE +jdo[3] <= jdo[3]~reg0.DB_MAX_OUTPUT_PORT_TYPE +jdo[4] <= jdo[4]~reg0.DB_MAX_OUTPUT_PORT_TYPE +jdo[5] <= jdo[5]~reg0.DB_MAX_OUTPUT_PORT_TYPE +jdo[6] <= jdo[6]~reg0.DB_MAX_OUTPUT_PORT_TYPE +jdo[7] <= jdo[7]~reg0.DB_MAX_OUTPUT_PORT_TYPE +jdo[8] <= jdo[8]~reg0.DB_MAX_OUTPUT_PORT_TYPE +jdo[9] <= jdo[9]~reg0.DB_MAX_OUTPUT_PORT_TYPE +jdo[10] <= jdo[10]~reg0.DB_MAX_OUTPUT_PORT_TYPE +jdo[11] <= jdo[11]~reg0.DB_MAX_OUTPUT_PORT_TYPE +jdo[12] <= jdo[12]~reg0.DB_MAX_OUTPUT_PORT_TYPE +jdo[13] <= jdo[13]~reg0.DB_MAX_OUTPUT_PORT_TYPE +jdo[14] <= jdo[14]~reg0.DB_MAX_OUTPUT_PORT_TYPE +jdo[15] <= jdo[15]~reg0.DB_MAX_OUTPUT_PORT_TYPE +jdo[16] <= jdo[16]~reg0.DB_MAX_OUTPUT_PORT_TYPE +jdo[17] <= jdo[17]~reg0.DB_MAX_OUTPUT_PORT_TYPE +jdo[18] <= jdo[18]~reg0.DB_MAX_OUTPUT_PORT_TYPE +jdo[19] <= jdo[19]~reg0.DB_MAX_OUTPUT_PORT_TYPE +jdo[20] <= jdo[20]~reg0.DB_MAX_OUTPUT_PORT_TYPE +jdo[21] <= jdo[21]~reg0.DB_MAX_OUTPUT_PORT_TYPE +jdo[22] <= jdo[22]~reg0.DB_MAX_OUTPUT_PORT_TYPE +jdo[23] <= jdo[23]~reg0.DB_MAX_OUTPUT_PORT_TYPE +jdo[24] <= jdo[24]~reg0.DB_MAX_OUTPUT_PORT_TYPE +jdo[25] <= jdo[25]~reg0.DB_MAX_OUTPUT_PORT_TYPE +jdo[26] <= jdo[26]~reg0.DB_MAX_OUTPUT_PORT_TYPE +jdo[27] <= jdo[27]~reg0.DB_MAX_OUTPUT_PORT_TYPE +jdo[28] <= jdo[28]~reg0.DB_MAX_OUTPUT_PORT_TYPE +jdo[29] <= jdo[29]~reg0.DB_MAX_OUTPUT_PORT_TYPE +jdo[30] <= jdo[30]~reg0.DB_MAX_OUTPUT_PORT_TYPE +jdo[31] <= jdo[31]~reg0.DB_MAX_OUTPUT_PORT_TYPE +jdo[32] <= jdo[32]~reg0.DB_MAX_OUTPUT_PORT_TYPE +jdo[33] <= jdo[33]~reg0.DB_MAX_OUTPUT_PORT_TYPE +jdo[34] <= jdo[34]~reg0.DB_MAX_OUTPUT_PORT_TYPE +jdo[35] <= jdo[35]~reg0.DB_MAX_OUTPUT_PORT_TYPE +jdo[36] <= jdo[36]~reg0.DB_MAX_OUTPUT_PORT_TYPE +jdo[37] <= jdo[37]~reg0.DB_MAX_OUTPUT_PORT_TYPE +take_action_break_a <= take_action_break_a.DB_MAX_OUTPUT_PORT_TYPE +take_action_break_b <= take_action_break_b.DB_MAX_OUTPUT_PORT_TYPE +take_action_break_c <= take_action_break_c.DB_MAX_OUTPUT_PORT_TYPE +take_action_ocimem_a <= take_action_ocimem_a.DB_MAX_OUTPUT_PORT_TYPE +take_action_ocimem_b <= take_action_ocimem_b.DB_MAX_OUTPUT_PORT_TYPE +take_action_tracectrl <= take_action_tracectrl.DB_MAX_OUTPUT_PORT_TYPE +take_action_tracemem_a <= take_action_tracemem_a.DB_MAX_OUTPUT_PORT_TYPE +take_action_tracemem_b <= take_action_tracemem_b.DB_MAX_OUTPUT_PORT_TYPE +take_no_action_break_a <= take_no_action_break_a.DB_MAX_OUTPUT_PORT_TYPE +take_no_action_break_b <= take_no_action_break_b.DB_MAX_OUTPUT_PORT_TYPE +take_no_action_break_c <= take_no_action_break_c.DB_MAX_OUTPUT_PORT_TYPE +take_no_action_ocimem_a <= take_no_action_ocimem_a.DB_MAX_OUTPUT_PORT_TYPE +take_no_action_tracemem_a <= take_no_action_tracemem_a.DB_MAX_OUTPUT_PORT_TYPE + + +|lights|nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk|altera_std_synchronizer:the_altera_std_synchronizer3 +clk => dreg[0].CLK +clk => din_s1.CLK +reset_n => dreg[0].ACLR +reset_n => din_s1.ACLR +din => din_s1.DATAIN +dout <= dout.DB_MAX_OUTPUT_PORT_TYPE + + +|lights|nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk|altera_std_synchronizer:the_altera_std_synchronizer4 +clk => dreg[0].CLK +clk => din_s1.CLK +reset_n => dreg[0].ACLR +reset_n => din_s1.ACLR +din => din_s1.DATAIN +dout <= dout.DB_MAX_OUTPUT_PORT_TYPE + + +|lights|nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|sld_virtual_jtag_basic:nios_system_nios2_processor_jtag_debug_module_phy +tck <= sld_virtual_jtag_impl:sld_virtual_jtag_impl_inst.usr_tck +tdi <= sld_virtual_jtag_impl:sld_virtual_jtag_impl_inst.usr_tdi +ir_in[0] <= sld_virtual_jtag_impl:sld_virtual_jtag_impl_inst.usr_ir_in +ir_in[1] <= sld_virtual_jtag_impl:sld_virtual_jtag_impl_inst.usr_ir_in +tdo => tdo.IN1 +ir_out[0] => ir_out[0].IN1 +ir_out[1] => ir_out[1].IN1 +virtual_state_cdr <= sld_virtual_jtag_impl:sld_virtual_jtag_impl_inst.usr_virtual_state_cdr +virtual_state_sdr <= sld_virtual_jtag_impl:sld_virtual_jtag_impl_inst.usr_virtual_state_sdr +virtual_state_e1dr <= sld_virtual_jtag_impl:sld_virtual_jtag_impl_inst.usr_virtual_state_e1dr +virtual_state_pdr <= sld_virtual_jtag_impl:sld_virtual_jtag_impl_inst.usr_virtual_state_pdr +virtual_state_e2dr <= sld_virtual_jtag_impl:sld_virtual_jtag_impl_inst.usr_virtual_state_e2dr +virtual_state_udr <= sld_virtual_jtag_impl:sld_virtual_jtag_impl_inst.usr_virtual_state_udr +virtual_state_cir <= sld_virtual_jtag_impl:sld_virtual_jtag_impl_inst.usr_virtual_state_cir +virtual_state_uir <= sld_virtual_jtag_impl:sld_virtual_jtag_impl_inst.usr_virtual_state_uir +tms <= sld_virtual_jtag_impl:sld_virtual_jtag_impl_inst.usr_tms +jtag_state_tlr <= sld_virtual_jtag_impl:sld_virtual_jtag_impl_inst.usr_jtag_state_tlr +jtag_state_rti <= sld_virtual_jtag_impl:sld_virtual_jtag_impl_inst.usr_jtag_state_rti +jtag_state_sdrs <= sld_virtual_jtag_impl:sld_virtual_jtag_impl_inst.usr_jtag_state_sdrs +jtag_state_cdr <= sld_virtual_jtag_impl:sld_virtual_jtag_impl_inst.usr_jtag_state_cdr +jtag_state_sdr <= sld_virtual_jtag_impl:sld_virtual_jtag_impl_inst.usr_jtag_state_sdr +jtag_state_e1dr <= sld_virtual_jtag_impl:sld_virtual_jtag_impl_inst.usr_jtag_state_e1dr +jtag_state_pdr <= sld_virtual_jtag_impl:sld_virtual_jtag_impl_inst.usr_jtag_state_pdr +jtag_state_e2dr <= sld_virtual_jtag_impl:sld_virtual_jtag_impl_inst.usr_jtag_state_e2dr +jtag_state_udr <= sld_virtual_jtag_impl:sld_virtual_jtag_impl_inst.usr_jtag_state_udr +jtag_state_sirs <= sld_virtual_jtag_impl:sld_virtual_jtag_impl_inst.usr_jtag_state_sirs +jtag_state_cir <= sld_virtual_jtag_impl:sld_virtual_jtag_impl_inst.usr_jtag_state_cir +jtag_state_sir <= sld_virtual_jtag_impl:sld_virtual_jtag_impl_inst.usr_jtag_state_sir +jtag_state_e1ir <= sld_virtual_jtag_impl:sld_virtual_jtag_impl_inst.usr_jtag_state_e1ir +jtag_state_pir <= sld_virtual_jtag_impl:sld_virtual_jtag_impl_inst.usr_jtag_state_pir +jtag_state_e2ir <= sld_virtual_jtag_impl:sld_virtual_jtag_impl_inst.usr_jtag_state_e2ir +jtag_state_uir <= sld_virtual_jtag_impl:sld_virtual_jtag_impl_inst.usr_jtag_state_uir + + +|lights|nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|sld_virtual_jtag_basic:nios_system_nios2_processor_jtag_debug_module_phy|sld_virtual_jtag_impl:sld_virtual_jtag_impl_inst +usr_tck <= raw_tck.DB_MAX_OUTPUT_PORT_TYPE +usr_tdi <= tdi.DB_MAX_OUTPUT_PORT_TYPE +usr_ir_in[0] <= ir_in[0].DB_MAX_OUTPUT_PORT_TYPE +usr_ir_in[1] <= ir_in[1].DB_MAX_OUTPUT_PORT_TYPE +usr_tdo => tdo.DATAIN +usr_ir_out[0] => ir_out[0].DATAIN +usr_ir_out[1] => ir_out[1].DATAIN +usr_virtual_state_cdr <= virtual_state_cdr.DB_MAX_OUTPUT_PORT_TYPE +usr_virtual_state_sdr <= virtual_state_sdr.DB_MAX_OUTPUT_PORT_TYPE +usr_virtual_state_e1dr <= virtual_state_e1dr.DB_MAX_OUTPUT_PORT_TYPE +usr_virtual_state_pdr <= virtual_state_pdr.DB_MAX_OUTPUT_PORT_TYPE +usr_virtual_state_e2dr <= virtual_state_e2dr.DB_MAX_OUTPUT_PORT_TYPE +usr_virtual_state_udr <= virtual_state_udr.DB_MAX_OUTPUT_PORT_TYPE +usr_virtual_state_cir <= jtag_state_cdr.DB_MAX_OUTPUT_PORT_TYPE +usr_virtual_state_uir <= virtual_state_uir.DB_MAX_OUTPUT_PORT_TYPE +usr_tms <= raw_tms.DB_MAX_OUTPUT_PORT_TYPE +usr_jtag_state_tlr <= jtag_state_tlr.DB_MAX_OUTPUT_PORT_TYPE +usr_jtag_state_rti <= jtag_state_rti.DB_MAX_OUTPUT_PORT_TYPE +usr_jtag_state_sdrs <= jtag_state_sdrs.DB_MAX_OUTPUT_PORT_TYPE +usr_jtag_state_cdr <= jtag_state_cdr.DB_MAX_OUTPUT_PORT_TYPE +usr_jtag_state_sdr <= jtag_state_sdr.DB_MAX_OUTPUT_PORT_TYPE +usr_jtag_state_e1dr <= jtag_state_e1dr.DB_MAX_OUTPUT_PORT_TYPE +usr_jtag_state_pdr <= jtag_state_pdr.DB_MAX_OUTPUT_PORT_TYPE +usr_jtag_state_e2dr <= jtag_state_e2dr.DB_MAX_OUTPUT_PORT_TYPE +usr_jtag_state_udr <= jtag_state_udr.DB_MAX_OUTPUT_PORT_TYPE +usr_jtag_state_sirs <= jtag_state_sirs.DB_MAX_OUTPUT_PORT_TYPE +usr_jtag_state_cir <= jtag_state_cir.DB_MAX_OUTPUT_PORT_TYPE +usr_jtag_state_sir <= jtag_state_sir.DB_MAX_OUTPUT_PORT_TYPE +usr_jtag_state_e1ir <= jtag_state_e1ir.DB_MAX_OUTPUT_PORT_TYPE +usr_jtag_state_pir <= jtag_state_pir.DB_MAX_OUTPUT_PORT_TYPE +usr_jtag_state_e2ir <= jtag_state_e2ir.DB_MAX_OUTPUT_PORT_TYPE +usr_jtag_state_uir <= jtag_state_uir.DB_MAX_OUTPUT_PORT_TYPE +raw_tck => usr_tck.DATAIN +raw_tms => usr_tms.DATAIN +tdi => usr_tdi.DATAIN +jtag_state_tlr => usr_jtag_state_tlr.DATAIN +jtag_state_rti => usr_jtag_state_rti.DATAIN +jtag_state_sdrs => usr_jtag_state_sdrs.DATAIN +jtag_state_cdr => virtual_state_cdr.IN1 +jtag_state_cdr => usr_virtual_state_cir.DATAIN +jtag_state_cdr => usr_jtag_state_cdr.DATAIN +jtag_state_sdr => virtual_state_sdr.IN1 +jtag_state_sdr => usr_jtag_state_sdr.DATAIN +jtag_state_e1dr => virtual_state_e1dr.IN1 +jtag_state_e1dr => usr_jtag_state_e1dr.DATAIN +jtag_state_pdr => virtual_state_pdr.IN1 +jtag_state_pdr => usr_jtag_state_pdr.DATAIN +jtag_state_e2dr => virtual_state_e2dr.IN1 +jtag_state_e2dr => usr_jtag_state_e2dr.DATAIN +jtag_state_udr => virtual_state_udr.IN1 +jtag_state_udr => virtual_state_uir.IN1 +jtag_state_udr => usr_jtag_state_udr.DATAIN +jtag_state_sirs => usr_jtag_state_sirs.DATAIN +jtag_state_cir => usr_jtag_state_cir.DATAIN +jtag_state_sir => usr_jtag_state_sir.DATAIN +jtag_state_e1ir => usr_jtag_state_e1ir.DATAIN +jtag_state_pir => usr_jtag_state_pir.DATAIN +jtag_state_e2ir => usr_jtag_state_e2ir.DATAIN +jtag_state_uir => usr_jtag_state_uir.DATAIN +usr1 => virtual_ir_scan.IN0 +usr1 => virtual_dr_scan.IN0 +clr => ~NO_FANOUT~ +ena => virtual_dr_scan.IN1 +ena => virtual_ir_scan.IN1 +ir_in[0] => usr_ir_in[0].DATAIN +ir_in[1] => usr_ir_in[1].DATAIN +tdo <= usr_tdo.DB_MAX_OUTPUT_PORT_TYPE +ir_out[0] <= usr_ir_out[0].DB_MAX_OUTPUT_PORT_TYPE +ir_out[1] <= usr_ir_out[1].DB_MAX_OUTPUT_PORT_TYPE + + +|lights|nios_system:NiosII|nios_system_onchip_memory:onchip_memory +address[0] => address[0].IN1 +address[1] => address[1].IN1 +address[2] => address[2].IN1 +address[3] => address[3].IN1 +address[4] => address[4].IN1 +address[5] => address[5].IN1 +address[6] => address[6].IN1 +address[7] => address[7].IN1 +address[8] => address[8].IN1 +address[9] => address[9].IN1 +address[10] => address[10].IN1 +address[11] => address[11].IN1 +address[12] => address[12].IN1 +address[13] => address[13].IN1 +address[14] => address[14].IN1 +address[15] => address[15].IN1 +byteenable[0] => byteenable[0].IN1 +byteenable[1] => byteenable[1].IN1 +byteenable[2] => byteenable[2].IN1 +byteenable[3] => byteenable[3].IN1 +chipselect => wren.IN0 +clk => clk.IN1 +clken => clocken0.IN0 +reset => ~NO_FANOUT~ +reset_req => clocken0.IN1 +write => wren.IN1 +writedata[0] => writedata[0].IN1 +writedata[1] => writedata[1].IN1 +writedata[2] => writedata[2].IN1 +writedata[3] => writedata[3].IN1 +writedata[4] => writedata[4].IN1 +writedata[5] => writedata[5].IN1 +writedata[6] => writedata[6].IN1 +writedata[7] => writedata[7].IN1 +writedata[8] => writedata[8].IN1 +writedata[9] => writedata[9].IN1 +writedata[10] => writedata[10].IN1 +writedata[11] => writedata[11].IN1 +writedata[12] => writedata[12].IN1 +writedata[13] => writedata[13].IN1 +writedata[14] => writedata[14].IN1 +writedata[15] => writedata[15].IN1 +writedata[16] => writedata[16].IN1 +writedata[17] => writedata[17].IN1 +writedata[18] => writedata[18].IN1 +writedata[19] => writedata[19].IN1 +writedata[20] => writedata[20].IN1 +writedata[21] => writedata[21].IN1 +writedata[22] => writedata[22].IN1 +writedata[23] => writedata[23].IN1 +writedata[24] => writedata[24].IN1 +writedata[25] => writedata[25].IN1 +writedata[26] => writedata[26].IN1 +writedata[27] => writedata[27].IN1 +writedata[28] => writedata[28].IN1 +writedata[29] => writedata[29].IN1 +writedata[30] => writedata[30].IN1 +writedata[31] => writedata[31].IN1 +readdata[0] <= altsyncram:the_altsyncram.q_a +readdata[1] <= altsyncram:the_altsyncram.q_a +readdata[2] <= altsyncram:the_altsyncram.q_a +readdata[3] <= altsyncram:the_altsyncram.q_a +readdata[4] <= altsyncram:the_altsyncram.q_a +readdata[5] <= altsyncram:the_altsyncram.q_a +readdata[6] <= altsyncram:the_altsyncram.q_a +readdata[7] <= altsyncram:the_altsyncram.q_a +readdata[8] <= altsyncram:the_altsyncram.q_a +readdata[9] <= altsyncram:the_altsyncram.q_a +readdata[10] <= altsyncram:the_altsyncram.q_a +readdata[11] <= altsyncram:the_altsyncram.q_a +readdata[12] <= altsyncram:the_altsyncram.q_a +readdata[13] <= altsyncram:the_altsyncram.q_a +readdata[14] <= altsyncram:the_altsyncram.q_a +readdata[15] <= altsyncram:the_altsyncram.q_a +readdata[16] <= altsyncram:the_altsyncram.q_a +readdata[17] <= altsyncram:the_altsyncram.q_a +readdata[18] <= altsyncram:the_altsyncram.q_a +readdata[19] <= altsyncram:the_altsyncram.q_a +readdata[20] <= altsyncram:the_altsyncram.q_a +readdata[21] <= altsyncram:the_altsyncram.q_a +readdata[22] <= altsyncram:the_altsyncram.q_a +readdata[23] <= altsyncram:the_altsyncram.q_a +readdata[24] <= altsyncram:the_altsyncram.q_a +readdata[25] <= altsyncram:the_altsyncram.q_a +readdata[26] <= altsyncram:the_altsyncram.q_a +readdata[27] <= altsyncram:the_altsyncram.q_a +readdata[28] <= altsyncram:the_altsyncram.q_a +readdata[29] <= altsyncram:the_altsyncram.q_a +readdata[30] <= altsyncram:the_altsyncram.q_a +readdata[31] <= altsyncram:the_altsyncram.q_a + + +|lights|nios_system:NiosII|nios_system_onchip_memory:onchip_memory|altsyncram:the_altsyncram +wren_a => altsyncram_4ed1:auto_generated.wren_a +rden_a => ~NO_FANOUT~ +wren_b => ~NO_FANOUT~ +rden_b => ~NO_FANOUT~ +data_a[0] => altsyncram_4ed1:auto_generated.data_a[0] +data_a[1] => altsyncram_4ed1:auto_generated.data_a[1] +data_a[2] => altsyncram_4ed1:auto_generated.data_a[2] +data_a[3] => altsyncram_4ed1:auto_generated.data_a[3] +data_a[4] => altsyncram_4ed1:auto_generated.data_a[4] +data_a[5] => altsyncram_4ed1:auto_generated.data_a[5] +data_a[6] => altsyncram_4ed1:auto_generated.data_a[6] +data_a[7] => altsyncram_4ed1:auto_generated.data_a[7] +data_a[8] => altsyncram_4ed1:auto_generated.data_a[8] +data_a[9] => altsyncram_4ed1:auto_generated.data_a[9] +data_a[10] => altsyncram_4ed1:auto_generated.data_a[10] +data_a[11] => altsyncram_4ed1:auto_generated.data_a[11] +data_a[12] => altsyncram_4ed1:auto_generated.data_a[12] +data_a[13] => altsyncram_4ed1:auto_generated.data_a[13] +data_a[14] => altsyncram_4ed1:auto_generated.data_a[14] +data_a[15] => altsyncram_4ed1:auto_generated.data_a[15] +data_a[16] => altsyncram_4ed1:auto_generated.data_a[16] +data_a[17] => altsyncram_4ed1:auto_generated.data_a[17] +data_a[18] => altsyncram_4ed1:auto_generated.data_a[18] +data_a[19] => altsyncram_4ed1:auto_generated.data_a[19] +data_a[20] => altsyncram_4ed1:auto_generated.data_a[20] +data_a[21] => altsyncram_4ed1:auto_generated.data_a[21] +data_a[22] => altsyncram_4ed1:auto_generated.data_a[22] +data_a[23] => altsyncram_4ed1:auto_generated.data_a[23] +data_a[24] => altsyncram_4ed1:auto_generated.data_a[24] +data_a[25] => altsyncram_4ed1:auto_generated.data_a[25] +data_a[26] => altsyncram_4ed1:auto_generated.data_a[26] +data_a[27] => altsyncram_4ed1:auto_generated.data_a[27] +data_a[28] => altsyncram_4ed1:auto_generated.data_a[28] +data_a[29] => altsyncram_4ed1:auto_generated.data_a[29] +data_a[30] => altsyncram_4ed1:auto_generated.data_a[30] +data_a[31] => altsyncram_4ed1:auto_generated.data_a[31] +data_b[0] => ~NO_FANOUT~ +address_a[0] => altsyncram_4ed1:auto_generated.address_a[0] +address_a[1] => altsyncram_4ed1:auto_generated.address_a[1] +address_a[2] => altsyncram_4ed1:auto_generated.address_a[2] +address_a[3] => altsyncram_4ed1:auto_generated.address_a[3] +address_a[4] => altsyncram_4ed1:auto_generated.address_a[4] +address_a[5] => altsyncram_4ed1:auto_generated.address_a[5] +address_a[6] => altsyncram_4ed1:auto_generated.address_a[6] +address_a[7] => altsyncram_4ed1:auto_generated.address_a[7] +address_a[8] => altsyncram_4ed1:auto_generated.address_a[8] +address_a[9] => altsyncram_4ed1:auto_generated.address_a[9] +address_a[10] => altsyncram_4ed1:auto_generated.address_a[10] +address_a[11] => altsyncram_4ed1:auto_generated.address_a[11] +address_a[12] => altsyncram_4ed1:auto_generated.address_a[12] +address_a[13] => altsyncram_4ed1:auto_generated.address_a[13] +address_a[14] => altsyncram_4ed1:auto_generated.address_a[14] +address_a[15] => altsyncram_4ed1:auto_generated.address_a[15] +address_b[0] => ~NO_FANOUT~ +addressstall_a => ~NO_FANOUT~ +addressstall_b => ~NO_FANOUT~ +clock0 => altsyncram_4ed1:auto_generated.clock0 +clock1 => ~NO_FANOUT~ +clocken0 => altsyncram_4ed1:auto_generated.clocken0 +clocken1 => ~NO_FANOUT~ +clocken2 => ~NO_FANOUT~ +clocken3 => ~NO_FANOUT~ +aclr0 => ~NO_FANOUT~ +aclr1 => ~NO_FANOUT~ +byteena_a[0] => altsyncram_4ed1:auto_generated.byteena_a[0] +byteena_a[1] => altsyncram_4ed1:auto_generated.byteena_a[1] +byteena_a[2] => altsyncram_4ed1:auto_generated.byteena_a[2] +byteena_a[3] => altsyncram_4ed1:auto_generated.byteena_a[3] +byteena_b[0] => ~NO_FANOUT~ +q_a[0] <= altsyncram_4ed1:auto_generated.q_a[0] +q_a[1] <= altsyncram_4ed1:auto_generated.q_a[1] +q_a[2] <= altsyncram_4ed1:auto_generated.q_a[2] +q_a[3] <= altsyncram_4ed1:auto_generated.q_a[3] +q_a[4] <= altsyncram_4ed1:auto_generated.q_a[4] +q_a[5] <= altsyncram_4ed1:auto_generated.q_a[5] +q_a[6] <= altsyncram_4ed1:auto_generated.q_a[6] +q_a[7] <= altsyncram_4ed1:auto_generated.q_a[7] +q_a[8] <= altsyncram_4ed1:auto_generated.q_a[8] +q_a[9] <= altsyncram_4ed1:auto_generated.q_a[9] +q_a[10] <= altsyncram_4ed1:auto_generated.q_a[10] +q_a[11] <= altsyncram_4ed1:auto_generated.q_a[11] +q_a[12] <= altsyncram_4ed1:auto_generated.q_a[12] +q_a[13] <= altsyncram_4ed1:auto_generated.q_a[13] +q_a[14] <= altsyncram_4ed1:auto_generated.q_a[14] +q_a[15] <= altsyncram_4ed1:auto_generated.q_a[15] +q_a[16] <= altsyncram_4ed1:auto_generated.q_a[16] +q_a[17] <= altsyncram_4ed1:auto_generated.q_a[17] +q_a[18] <= altsyncram_4ed1:auto_generated.q_a[18] +q_a[19] <= altsyncram_4ed1:auto_generated.q_a[19] +q_a[20] <= altsyncram_4ed1:auto_generated.q_a[20] +q_a[21] <= altsyncram_4ed1:auto_generated.q_a[21] +q_a[22] <= altsyncram_4ed1:auto_generated.q_a[22] +q_a[23] <= altsyncram_4ed1:auto_generated.q_a[23] +q_a[24] <= altsyncram_4ed1:auto_generated.q_a[24] +q_a[25] <= altsyncram_4ed1:auto_generated.q_a[25] +q_a[26] <= altsyncram_4ed1:auto_generated.q_a[26] +q_a[27] <= altsyncram_4ed1:auto_generated.q_a[27] +q_a[28] <= altsyncram_4ed1:auto_generated.q_a[28] +q_a[29] <= altsyncram_4ed1:auto_generated.q_a[29] +q_a[30] <= altsyncram_4ed1:auto_generated.q_a[30] +q_a[31] <= altsyncram_4ed1:auto_generated.q_a[31] +q_b[0] <= +eccstatus[0] <= +eccstatus[1] <= +eccstatus[2] <= + + +|lights|nios_system:NiosII|nios_system_onchip_memory:onchip_memory|altsyncram:the_altsyncram|altsyncram_4ed1:auto_generated +address_a[0] => ram_block1a0.PORTAADDR +address_a[0] => ram_block1a1.PORTAADDR +address_a[0] => ram_block1a2.PORTAADDR +address_a[0] => ram_block1a3.PORTAADDR +address_a[0] => ram_block1a4.PORTAADDR +address_a[0] => ram_block1a5.PORTAADDR +address_a[0] => ram_block1a6.PORTAADDR +address_a[0] => ram_block1a7.PORTAADDR +address_a[0] => ram_block1a8.PORTAADDR +address_a[0] => ram_block1a9.PORTAADDR +address_a[0] => ram_block1a10.PORTAADDR +address_a[0] => ram_block1a11.PORTAADDR +address_a[0] => ram_block1a12.PORTAADDR +address_a[0] => ram_block1a13.PORTAADDR +address_a[0] => ram_block1a14.PORTAADDR +address_a[0] => ram_block1a15.PORTAADDR +address_a[0] => ram_block1a16.PORTAADDR +address_a[0] => ram_block1a17.PORTAADDR +address_a[0] => ram_block1a18.PORTAADDR +address_a[0] => ram_block1a19.PORTAADDR +address_a[0] => ram_block1a20.PORTAADDR +address_a[0] => ram_block1a21.PORTAADDR +address_a[0] => ram_block1a22.PORTAADDR +address_a[0] => ram_block1a23.PORTAADDR +address_a[0] => ram_block1a24.PORTAADDR +address_a[0] => ram_block1a25.PORTAADDR +address_a[0] => ram_block1a26.PORTAADDR +address_a[0] => ram_block1a27.PORTAADDR +address_a[0] => ram_block1a28.PORTAADDR +address_a[0] => ram_block1a29.PORTAADDR +address_a[0] => ram_block1a30.PORTAADDR +address_a[0] => ram_block1a31.PORTAADDR +address_a[0] => ram_block1a32.PORTAADDR +address_a[0] => ram_block1a33.PORTAADDR +address_a[0] => ram_block1a34.PORTAADDR +address_a[0] => ram_block1a35.PORTAADDR +address_a[0] => ram_block1a36.PORTAADDR +address_a[0] => ram_block1a37.PORTAADDR +address_a[0] => ram_block1a38.PORTAADDR +address_a[0] => ram_block1a39.PORTAADDR +address_a[0] => ram_block1a40.PORTAADDR +address_a[0] => ram_block1a41.PORTAADDR +address_a[0] => ram_block1a42.PORTAADDR +address_a[0] => ram_block1a43.PORTAADDR +address_a[0] => ram_block1a44.PORTAADDR +address_a[0] => ram_block1a45.PORTAADDR +address_a[0] => ram_block1a46.PORTAADDR +address_a[0] => ram_block1a47.PORTAADDR +address_a[0] => ram_block1a48.PORTAADDR +address_a[0] => ram_block1a49.PORTAADDR +address_a[0] => ram_block1a50.PORTAADDR +address_a[0] => ram_block1a51.PORTAADDR +address_a[0] => ram_block1a52.PORTAADDR +address_a[0] => ram_block1a53.PORTAADDR +address_a[0] => ram_block1a54.PORTAADDR +address_a[0] => ram_block1a55.PORTAADDR +address_a[0] => ram_block1a56.PORTAADDR +address_a[0] => ram_block1a57.PORTAADDR +address_a[0] => ram_block1a58.PORTAADDR +address_a[0] => ram_block1a59.PORTAADDR +address_a[0] => ram_block1a60.PORTAADDR +address_a[0] => ram_block1a61.PORTAADDR +address_a[0] => ram_block1a62.PORTAADDR +address_a[0] => ram_block1a63.PORTAADDR +address_a[0] => ram_block1a64.PORTAADDR +address_a[0] => ram_block1a65.PORTAADDR +address_a[0] => ram_block1a66.PORTAADDR +address_a[0] => ram_block1a67.PORTAADDR +address_a[0] => ram_block1a68.PORTAADDR +address_a[0] => ram_block1a69.PORTAADDR +address_a[0] => ram_block1a70.PORTAADDR +address_a[0] => ram_block1a71.PORTAADDR +address_a[0] => ram_block1a72.PORTAADDR +address_a[0] => ram_block1a73.PORTAADDR +address_a[0] => ram_block1a74.PORTAADDR +address_a[0] => ram_block1a75.PORTAADDR +address_a[0] => ram_block1a76.PORTAADDR +address_a[0] => ram_block1a77.PORTAADDR +address_a[0] => ram_block1a78.PORTAADDR +address_a[0] => ram_block1a79.PORTAADDR +address_a[0] => ram_block1a80.PORTAADDR +address_a[0] => ram_block1a81.PORTAADDR +address_a[0] => ram_block1a82.PORTAADDR +address_a[0] => ram_block1a83.PORTAADDR +address_a[0] => ram_block1a84.PORTAADDR +address_a[0] => ram_block1a85.PORTAADDR +address_a[0] => ram_block1a86.PORTAADDR +address_a[0] => ram_block1a87.PORTAADDR +address_a[0] => ram_block1a88.PORTAADDR +address_a[0] => ram_block1a89.PORTAADDR +address_a[0] => ram_block1a90.PORTAADDR +address_a[0] => ram_block1a91.PORTAADDR +address_a[0] => ram_block1a92.PORTAADDR +address_a[0] => ram_block1a93.PORTAADDR +address_a[0] => ram_block1a94.PORTAADDR +address_a[0] => ram_block1a95.PORTAADDR +address_a[0] => ram_block1a96.PORTAADDR +address_a[0] => ram_block1a97.PORTAADDR +address_a[0] => ram_block1a98.PORTAADDR +address_a[0] => ram_block1a99.PORTAADDR +address_a[0] => ram_block1a100.PORTAADDR +address_a[0] => ram_block1a101.PORTAADDR +address_a[0] => ram_block1a102.PORTAADDR +address_a[0] => ram_block1a103.PORTAADDR +address_a[0] => ram_block1a104.PORTAADDR +address_a[0] => ram_block1a105.PORTAADDR +address_a[0] => ram_block1a106.PORTAADDR +address_a[0] => ram_block1a107.PORTAADDR +address_a[0] => ram_block1a108.PORTAADDR +address_a[0] => ram_block1a109.PORTAADDR +address_a[0] => ram_block1a110.PORTAADDR +address_a[0] => ram_block1a111.PORTAADDR +address_a[0] => ram_block1a112.PORTAADDR +address_a[0] => ram_block1a113.PORTAADDR +address_a[0] => ram_block1a114.PORTAADDR +address_a[0] => ram_block1a115.PORTAADDR +address_a[0] => ram_block1a116.PORTAADDR +address_a[0] => ram_block1a117.PORTAADDR +address_a[0] => ram_block1a118.PORTAADDR +address_a[0] => ram_block1a119.PORTAADDR +address_a[0] => ram_block1a120.PORTAADDR +address_a[0] => ram_block1a121.PORTAADDR +address_a[0] => ram_block1a122.PORTAADDR +address_a[0] => ram_block1a123.PORTAADDR +address_a[0] => ram_block1a124.PORTAADDR +address_a[0] => ram_block1a125.PORTAADDR +address_a[0] => ram_block1a126.PORTAADDR +address_a[0] => ram_block1a127.PORTAADDR +address_a[0] => ram_block1a128.PORTAADDR +address_a[0] => ram_block1a129.PORTAADDR +address_a[0] => ram_block1a130.PORTAADDR +address_a[0] => ram_block1a131.PORTAADDR +address_a[0] => ram_block1a132.PORTAADDR +address_a[0] => ram_block1a133.PORTAADDR +address_a[0] => ram_block1a134.PORTAADDR +address_a[0] => ram_block1a135.PORTAADDR +address_a[0] => ram_block1a136.PORTAADDR +address_a[0] => ram_block1a137.PORTAADDR +address_a[0] => ram_block1a138.PORTAADDR +address_a[0] => ram_block1a139.PORTAADDR +address_a[0] => ram_block1a140.PORTAADDR +address_a[0] => ram_block1a141.PORTAADDR +address_a[0] => ram_block1a142.PORTAADDR +address_a[0] => ram_block1a143.PORTAADDR +address_a[0] => ram_block1a144.PORTAADDR +address_a[0] => ram_block1a145.PORTAADDR +address_a[0] => ram_block1a146.PORTAADDR +address_a[0] => ram_block1a147.PORTAADDR +address_a[0] => ram_block1a148.PORTAADDR +address_a[0] => ram_block1a149.PORTAADDR +address_a[0] => ram_block1a150.PORTAADDR +address_a[0] => ram_block1a151.PORTAADDR +address_a[0] => ram_block1a152.PORTAADDR +address_a[0] => ram_block1a153.PORTAADDR +address_a[0] => ram_block1a154.PORTAADDR +address_a[0] => ram_block1a155.PORTAADDR +address_a[0] => ram_block1a156.PORTAADDR +address_a[0] => ram_block1a157.PORTAADDR +address_a[0] => ram_block1a158.PORTAADDR +address_a[0] => ram_block1a159.PORTAADDR +address_a[0] => ram_block1a160.PORTAADDR +address_a[0] => ram_block1a161.PORTAADDR +address_a[0] => ram_block1a162.PORTAADDR +address_a[0] => ram_block1a163.PORTAADDR +address_a[0] => ram_block1a164.PORTAADDR +address_a[0] => ram_block1a165.PORTAADDR +address_a[0] => ram_block1a166.PORTAADDR +address_a[0] => ram_block1a167.PORTAADDR +address_a[0] => ram_block1a168.PORTAADDR +address_a[0] => ram_block1a169.PORTAADDR +address_a[0] => ram_block1a170.PORTAADDR +address_a[0] => ram_block1a171.PORTAADDR +address_a[0] => ram_block1a172.PORTAADDR +address_a[0] => ram_block1a173.PORTAADDR +address_a[0] => ram_block1a174.PORTAADDR +address_a[0] => ram_block1a175.PORTAADDR +address_a[0] => ram_block1a176.PORTAADDR +address_a[0] => ram_block1a177.PORTAADDR +address_a[0] => ram_block1a178.PORTAADDR +address_a[0] => ram_block1a179.PORTAADDR +address_a[0] => ram_block1a180.PORTAADDR +address_a[0] => ram_block1a181.PORTAADDR +address_a[0] => ram_block1a182.PORTAADDR +address_a[0] => ram_block1a183.PORTAADDR +address_a[0] => ram_block1a184.PORTAADDR +address_a[0] => ram_block1a185.PORTAADDR +address_a[0] => ram_block1a186.PORTAADDR +address_a[0] => ram_block1a187.PORTAADDR +address_a[0] => ram_block1a188.PORTAADDR +address_a[0] => ram_block1a189.PORTAADDR +address_a[0] => ram_block1a190.PORTAADDR +address_a[0] => ram_block1a191.PORTAADDR +address_a[0] => ram_block1a192.PORTAADDR +address_a[0] => ram_block1a193.PORTAADDR +address_a[0] => ram_block1a194.PORTAADDR +address_a[0] => ram_block1a195.PORTAADDR +address_a[0] => ram_block1a196.PORTAADDR +address_a[0] => ram_block1a197.PORTAADDR +address_a[0] => ram_block1a198.PORTAADDR +address_a[0] => ram_block1a199.PORTAADDR +address_a[0] => ram_block1a200.PORTAADDR +address_a[0] => ram_block1a201.PORTAADDR +address_a[0] => ram_block1a202.PORTAADDR +address_a[0] => ram_block1a203.PORTAADDR +address_a[0] => ram_block1a204.PORTAADDR +address_a[0] => ram_block1a205.PORTAADDR +address_a[0] => ram_block1a206.PORTAADDR +address_a[0] => ram_block1a207.PORTAADDR +address_a[0] => ram_block1a208.PORTAADDR +address_a[0] => ram_block1a209.PORTAADDR +address_a[0] => ram_block1a210.PORTAADDR +address_a[0] => ram_block1a211.PORTAADDR +address_a[0] => ram_block1a212.PORTAADDR +address_a[0] => ram_block1a213.PORTAADDR +address_a[0] => ram_block1a214.PORTAADDR +address_a[0] => ram_block1a215.PORTAADDR +address_a[0] => ram_block1a216.PORTAADDR +address_a[0] => ram_block1a217.PORTAADDR +address_a[0] => ram_block1a218.PORTAADDR +address_a[0] => ram_block1a219.PORTAADDR +address_a[0] => ram_block1a220.PORTAADDR +address_a[0] => ram_block1a221.PORTAADDR +address_a[0] => ram_block1a222.PORTAADDR +address_a[0] => ram_block1a223.PORTAADDR +address_a[1] => ram_block1a0.PORTAADDR1 +address_a[1] => ram_block1a1.PORTAADDR1 +address_a[1] => ram_block1a2.PORTAADDR1 +address_a[1] => ram_block1a3.PORTAADDR1 +address_a[1] => ram_block1a4.PORTAADDR1 +address_a[1] => ram_block1a5.PORTAADDR1 +address_a[1] => ram_block1a6.PORTAADDR1 +address_a[1] => ram_block1a7.PORTAADDR1 +address_a[1] => ram_block1a8.PORTAADDR1 +address_a[1] => ram_block1a9.PORTAADDR1 +address_a[1] => ram_block1a10.PORTAADDR1 +address_a[1] => ram_block1a11.PORTAADDR1 +address_a[1] => ram_block1a12.PORTAADDR1 +address_a[1] => ram_block1a13.PORTAADDR1 +address_a[1] => ram_block1a14.PORTAADDR1 +address_a[1] => ram_block1a15.PORTAADDR1 +address_a[1] => ram_block1a16.PORTAADDR1 +address_a[1] => ram_block1a17.PORTAADDR1 +address_a[1] => ram_block1a18.PORTAADDR1 +address_a[1] => ram_block1a19.PORTAADDR1 +address_a[1] => ram_block1a20.PORTAADDR1 +address_a[1] => ram_block1a21.PORTAADDR1 +address_a[1] => ram_block1a22.PORTAADDR1 +address_a[1] => ram_block1a23.PORTAADDR1 +address_a[1] => ram_block1a24.PORTAADDR1 +address_a[1] => ram_block1a25.PORTAADDR1 +address_a[1] => ram_block1a26.PORTAADDR1 +address_a[1] => ram_block1a27.PORTAADDR1 +address_a[1] => ram_block1a28.PORTAADDR1 +address_a[1] => ram_block1a29.PORTAADDR1 +address_a[1] => ram_block1a30.PORTAADDR1 +address_a[1] => ram_block1a31.PORTAADDR1 +address_a[1] => ram_block1a32.PORTAADDR1 +address_a[1] => ram_block1a33.PORTAADDR1 +address_a[1] => ram_block1a34.PORTAADDR1 +address_a[1] => ram_block1a35.PORTAADDR1 +address_a[1] => ram_block1a36.PORTAADDR1 +address_a[1] => ram_block1a37.PORTAADDR1 +address_a[1] => ram_block1a38.PORTAADDR1 +address_a[1] => ram_block1a39.PORTAADDR1 +address_a[1] => ram_block1a40.PORTAADDR1 +address_a[1] => ram_block1a41.PORTAADDR1 +address_a[1] => ram_block1a42.PORTAADDR1 +address_a[1] => ram_block1a43.PORTAADDR1 +address_a[1] => ram_block1a44.PORTAADDR1 +address_a[1] => ram_block1a45.PORTAADDR1 +address_a[1] => ram_block1a46.PORTAADDR1 +address_a[1] => ram_block1a47.PORTAADDR1 +address_a[1] => ram_block1a48.PORTAADDR1 +address_a[1] => ram_block1a49.PORTAADDR1 +address_a[1] => ram_block1a50.PORTAADDR1 +address_a[1] => ram_block1a51.PORTAADDR1 +address_a[1] => ram_block1a52.PORTAADDR1 +address_a[1] => ram_block1a53.PORTAADDR1 +address_a[1] => ram_block1a54.PORTAADDR1 +address_a[1] => ram_block1a55.PORTAADDR1 +address_a[1] => ram_block1a56.PORTAADDR1 +address_a[1] => ram_block1a57.PORTAADDR1 +address_a[1] => ram_block1a58.PORTAADDR1 +address_a[1] => ram_block1a59.PORTAADDR1 +address_a[1] => ram_block1a60.PORTAADDR1 +address_a[1] => ram_block1a61.PORTAADDR1 +address_a[1] => ram_block1a62.PORTAADDR1 +address_a[1] => ram_block1a63.PORTAADDR1 +address_a[1] => ram_block1a64.PORTAADDR1 +address_a[1] => ram_block1a65.PORTAADDR1 +address_a[1] => ram_block1a66.PORTAADDR1 +address_a[1] => ram_block1a67.PORTAADDR1 +address_a[1] => ram_block1a68.PORTAADDR1 +address_a[1] => ram_block1a69.PORTAADDR1 +address_a[1] => ram_block1a70.PORTAADDR1 +address_a[1] => ram_block1a71.PORTAADDR1 +address_a[1] => ram_block1a72.PORTAADDR1 +address_a[1] => ram_block1a73.PORTAADDR1 +address_a[1] => ram_block1a74.PORTAADDR1 +address_a[1] => ram_block1a75.PORTAADDR1 +address_a[1] => ram_block1a76.PORTAADDR1 +address_a[1] => ram_block1a77.PORTAADDR1 +address_a[1] => ram_block1a78.PORTAADDR1 +address_a[1] => ram_block1a79.PORTAADDR1 +address_a[1] => ram_block1a80.PORTAADDR1 +address_a[1] => ram_block1a81.PORTAADDR1 +address_a[1] => ram_block1a82.PORTAADDR1 +address_a[1] => ram_block1a83.PORTAADDR1 +address_a[1] => ram_block1a84.PORTAADDR1 +address_a[1] => ram_block1a85.PORTAADDR1 +address_a[1] => ram_block1a86.PORTAADDR1 +address_a[1] => ram_block1a87.PORTAADDR1 +address_a[1] => ram_block1a88.PORTAADDR1 +address_a[1] => ram_block1a89.PORTAADDR1 +address_a[1] => ram_block1a90.PORTAADDR1 +address_a[1] => ram_block1a91.PORTAADDR1 +address_a[1] => ram_block1a92.PORTAADDR1 +address_a[1] => ram_block1a93.PORTAADDR1 +address_a[1] => ram_block1a94.PORTAADDR1 +address_a[1] => ram_block1a95.PORTAADDR1 +address_a[1] => ram_block1a96.PORTAADDR1 +address_a[1] => ram_block1a97.PORTAADDR1 +address_a[1] => ram_block1a98.PORTAADDR1 +address_a[1] => ram_block1a99.PORTAADDR1 +address_a[1] => ram_block1a100.PORTAADDR1 +address_a[1] => ram_block1a101.PORTAADDR1 +address_a[1] => ram_block1a102.PORTAADDR1 +address_a[1] => ram_block1a103.PORTAADDR1 +address_a[1] => ram_block1a104.PORTAADDR1 +address_a[1] => ram_block1a105.PORTAADDR1 +address_a[1] => ram_block1a106.PORTAADDR1 +address_a[1] => ram_block1a107.PORTAADDR1 +address_a[1] => ram_block1a108.PORTAADDR1 +address_a[1] => ram_block1a109.PORTAADDR1 +address_a[1] => ram_block1a110.PORTAADDR1 +address_a[1] => ram_block1a111.PORTAADDR1 +address_a[1] => ram_block1a112.PORTAADDR1 +address_a[1] => ram_block1a113.PORTAADDR1 +address_a[1] => ram_block1a114.PORTAADDR1 +address_a[1] => ram_block1a115.PORTAADDR1 +address_a[1] => ram_block1a116.PORTAADDR1 +address_a[1] => ram_block1a117.PORTAADDR1 +address_a[1] => ram_block1a118.PORTAADDR1 +address_a[1] => ram_block1a119.PORTAADDR1 +address_a[1] => ram_block1a120.PORTAADDR1 +address_a[1] => ram_block1a121.PORTAADDR1 +address_a[1] => ram_block1a122.PORTAADDR1 +address_a[1] => ram_block1a123.PORTAADDR1 +address_a[1] => ram_block1a124.PORTAADDR1 +address_a[1] => ram_block1a125.PORTAADDR1 +address_a[1] => ram_block1a126.PORTAADDR1 +address_a[1] => ram_block1a127.PORTAADDR1 +address_a[1] => ram_block1a128.PORTAADDR1 +address_a[1] => ram_block1a129.PORTAADDR1 +address_a[1] => ram_block1a130.PORTAADDR1 +address_a[1] => ram_block1a131.PORTAADDR1 +address_a[1] => ram_block1a132.PORTAADDR1 +address_a[1] => ram_block1a133.PORTAADDR1 +address_a[1] => ram_block1a134.PORTAADDR1 +address_a[1] => ram_block1a135.PORTAADDR1 +address_a[1] => ram_block1a136.PORTAADDR1 +address_a[1] => ram_block1a137.PORTAADDR1 +address_a[1] => ram_block1a138.PORTAADDR1 +address_a[1] => ram_block1a139.PORTAADDR1 +address_a[1] => ram_block1a140.PORTAADDR1 +address_a[1] => ram_block1a141.PORTAADDR1 +address_a[1] => ram_block1a142.PORTAADDR1 +address_a[1] => ram_block1a143.PORTAADDR1 +address_a[1] => ram_block1a144.PORTAADDR1 +address_a[1] => ram_block1a145.PORTAADDR1 +address_a[1] => ram_block1a146.PORTAADDR1 +address_a[1] => ram_block1a147.PORTAADDR1 +address_a[1] => ram_block1a148.PORTAADDR1 +address_a[1] => ram_block1a149.PORTAADDR1 +address_a[1] => ram_block1a150.PORTAADDR1 +address_a[1] => ram_block1a151.PORTAADDR1 +address_a[1] => ram_block1a152.PORTAADDR1 +address_a[1] => ram_block1a153.PORTAADDR1 +address_a[1] => ram_block1a154.PORTAADDR1 +address_a[1] => ram_block1a155.PORTAADDR1 +address_a[1] => ram_block1a156.PORTAADDR1 +address_a[1] => ram_block1a157.PORTAADDR1 +address_a[1] => ram_block1a158.PORTAADDR1 +address_a[1] => ram_block1a159.PORTAADDR1 +address_a[1] => ram_block1a160.PORTAADDR1 +address_a[1] => ram_block1a161.PORTAADDR1 +address_a[1] => ram_block1a162.PORTAADDR1 +address_a[1] => ram_block1a163.PORTAADDR1 +address_a[1] => ram_block1a164.PORTAADDR1 +address_a[1] => ram_block1a165.PORTAADDR1 +address_a[1] => ram_block1a166.PORTAADDR1 +address_a[1] => ram_block1a167.PORTAADDR1 +address_a[1] => ram_block1a168.PORTAADDR1 +address_a[1] => ram_block1a169.PORTAADDR1 +address_a[1] => ram_block1a170.PORTAADDR1 +address_a[1] => ram_block1a171.PORTAADDR1 +address_a[1] => ram_block1a172.PORTAADDR1 +address_a[1] => ram_block1a173.PORTAADDR1 +address_a[1] => ram_block1a174.PORTAADDR1 +address_a[1] => ram_block1a175.PORTAADDR1 +address_a[1] => ram_block1a176.PORTAADDR1 +address_a[1] => ram_block1a177.PORTAADDR1 +address_a[1] => ram_block1a178.PORTAADDR1 +address_a[1] => ram_block1a179.PORTAADDR1 +address_a[1] => ram_block1a180.PORTAADDR1 +address_a[1] => ram_block1a181.PORTAADDR1 +address_a[1] => ram_block1a182.PORTAADDR1 +address_a[1] => ram_block1a183.PORTAADDR1 +address_a[1] => ram_block1a184.PORTAADDR1 +address_a[1] => ram_block1a185.PORTAADDR1 +address_a[1] => ram_block1a186.PORTAADDR1 +address_a[1] => ram_block1a187.PORTAADDR1 +address_a[1] => ram_block1a188.PORTAADDR1 +address_a[1] => ram_block1a189.PORTAADDR1 +address_a[1] => ram_block1a190.PORTAADDR1 +address_a[1] => ram_block1a191.PORTAADDR1 +address_a[1] => ram_block1a192.PORTAADDR1 +address_a[1] => ram_block1a193.PORTAADDR1 +address_a[1] => ram_block1a194.PORTAADDR1 +address_a[1] => ram_block1a195.PORTAADDR1 +address_a[1] => ram_block1a196.PORTAADDR1 +address_a[1] => ram_block1a197.PORTAADDR1 +address_a[1] => ram_block1a198.PORTAADDR1 +address_a[1] => ram_block1a199.PORTAADDR1 +address_a[1] => ram_block1a200.PORTAADDR1 +address_a[1] => ram_block1a201.PORTAADDR1 +address_a[1] => ram_block1a202.PORTAADDR1 +address_a[1] => ram_block1a203.PORTAADDR1 +address_a[1] => ram_block1a204.PORTAADDR1 +address_a[1] => ram_block1a205.PORTAADDR1 +address_a[1] => ram_block1a206.PORTAADDR1 +address_a[1] => ram_block1a207.PORTAADDR1 +address_a[1] => ram_block1a208.PORTAADDR1 +address_a[1] => ram_block1a209.PORTAADDR1 +address_a[1] => ram_block1a210.PORTAADDR1 +address_a[1] => ram_block1a211.PORTAADDR1 +address_a[1] => ram_block1a212.PORTAADDR1 +address_a[1] => ram_block1a213.PORTAADDR1 +address_a[1] => ram_block1a214.PORTAADDR1 +address_a[1] => ram_block1a215.PORTAADDR1 +address_a[1] => ram_block1a216.PORTAADDR1 +address_a[1] => ram_block1a217.PORTAADDR1 +address_a[1] => ram_block1a218.PORTAADDR1 +address_a[1] => ram_block1a219.PORTAADDR1 +address_a[1] => ram_block1a220.PORTAADDR1 +address_a[1] => ram_block1a221.PORTAADDR1 +address_a[1] => ram_block1a222.PORTAADDR1 +address_a[1] => ram_block1a223.PORTAADDR1 +address_a[2] => ram_block1a0.PORTAADDR2 +address_a[2] => ram_block1a1.PORTAADDR2 +address_a[2] => ram_block1a2.PORTAADDR2 +address_a[2] => ram_block1a3.PORTAADDR2 +address_a[2] => ram_block1a4.PORTAADDR2 +address_a[2] => ram_block1a5.PORTAADDR2 +address_a[2] => ram_block1a6.PORTAADDR2 +address_a[2] => ram_block1a7.PORTAADDR2 +address_a[2] => ram_block1a8.PORTAADDR2 +address_a[2] => ram_block1a9.PORTAADDR2 +address_a[2] => ram_block1a10.PORTAADDR2 +address_a[2] => ram_block1a11.PORTAADDR2 +address_a[2] => ram_block1a12.PORTAADDR2 +address_a[2] => ram_block1a13.PORTAADDR2 +address_a[2] => ram_block1a14.PORTAADDR2 +address_a[2] => ram_block1a15.PORTAADDR2 +address_a[2] => ram_block1a16.PORTAADDR2 +address_a[2] => ram_block1a17.PORTAADDR2 +address_a[2] => ram_block1a18.PORTAADDR2 +address_a[2] => ram_block1a19.PORTAADDR2 +address_a[2] => ram_block1a20.PORTAADDR2 +address_a[2] => ram_block1a21.PORTAADDR2 +address_a[2] => ram_block1a22.PORTAADDR2 +address_a[2] => ram_block1a23.PORTAADDR2 +address_a[2] => ram_block1a24.PORTAADDR2 +address_a[2] => ram_block1a25.PORTAADDR2 +address_a[2] => ram_block1a26.PORTAADDR2 +address_a[2] => ram_block1a27.PORTAADDR2 +address_a[2] => ram_block1a28.PORTAADDR2 +address_a[2] => ram_block1a29.PORTAADDR2 +address_a[2] => ram_block1a30.PORTAADDR2 +address_a[2] => ram_block1a31.PORTAADDR2 +address_a[2] => ram_block1a32.PORTAADDR2 +address_a[2] => ram_block1a33.PORTAADDR2 +address_a[2] => ram_block1a34.PORTAADDR2 +address_a[2] => ram_block1a35.PORTAADDR2 +address_a[2] => ram_block1a36.PORTAADDR2 +address_a[2] => ram_block1a37.PORTAADDR2 +address_a[2] => ram_block1a38.PORTAADDR2 +address_a[2] => ram_block1a39.PORTAADDR2 +address_a[2] => ram_block1a40.PORTAADDR2 +address_a[2] => ram_block1a41.PORTAADDR2 +address_a[2] => ram_block1a42.PORTAADDR2 +address_a[2] => ram_block1a43.PORTAADDR2 +address_a[2] => ram_block1a44.PORTAADDR2 +address_a[2] => ram_block1a45.PORTAADDR2 +address_a[2] => ram_block1a46.PORTAADDR2 +address_a[2] => ram_block1a47.PORTAADDR2 +address_a[2] => ram_block1a48.PORTAADDR2 +address_a[2] => ram_block1a49.PORTAADDR2 +address_a[2] => ram_block1a50.PORTAADDR2 +address_a[2] => ram_block1a51.PORTAADDR2 +address_a[2] => ram_block1a52.PORTAADDR2 +address_a[2] => ram_block1a53.PORTAADDR2 +address_a[2] => ram_block1a54.PORTAADDR2 +address_a[2] => ram_block1a55.PORTAADDR2 +address_a[2] => ram_block1a56.PORTAADDR2 +address_a[2] => ram_block1a57.PORTAADDR2 +address_a[2] => ram_block1a58.PORTAADDR2 +address_a[2] => ram_block1a59.PORTAADDR2 +address_a[2] => ram_block1a60.PORTAADDR2 +address_a[2] => ram_block1a61.PORTAADDR2 +address_a[2] => ram_block1a62.PORTAADDR2 +address_a[2] => ram_block1a63.PORTAADDR2 +address_a[2] => ram_block1a64.PORTAADDR2 +address_a[2] => ram_block1a65.PORTAADDR2 +address_a[2] => ram_block1a66.PORTAADDR2 +address_a[2] => ram_block1a67.PORTAADDR2 +address_a[2] => ram_block1a68.PORTAADDR2 +address_a[2] => ram_block1a69.PORTAADDR2 +address_a[2] => ram_block1a70.PORTAADDR2 +address_a[2] => ram_block1a71.PORTAADDR2 +address_a[2] => ram_block1a72.PORTAADDR2 +address_a[2] => ram_block1a73.PORTAADDR2 +address_a[2] => ram_block1a74.PORTAADDR2 +address_a[2] => ram_block1a75.PORTAADDR2 +address_a[2] => ram_block1a76.PORTAADDR2 +address_a[2] => ram_block1a77.PORTAADDR2 +address_a[2] => ram_block1a78.PORTAADDR2 +address_a[2] => ram_block1a79.PORTAADDR2 +address_a[2] => ram_block1a80.PORTAADDR2 +address_a[2] => ram_block1a81.PORTAADDR2 +address_a[2] => ram_block1a82.PORTAADDR2 +address_a[2] => ram_block1a83.PORTAADDR2 +address_a[2] => ram_block1a84.PORTAADDR2 +address_a[2] => ram_block1a85.PORTAADDR2 +address_a[2] => ram_block1a86.PORTAADDR2 +address_a[2] => ram_block1a87.PORTAADDR2 +address_a[2] => ram_block1a88.PORTAADDR2 +address_a[2] => ram_block1a89.PORTAADDR2 +address_a[2] => ram_block1a90.PORTAADDR2 +address_a[2] => ram_block1a91.PORTAADDR2 +address_a[2] => ram_block1a92.PORTAADDR2 +address_a[2] => ram_block1a93.PORTAADDR2 +address_a[2] => ram_block1a94.PORTAADDR2 +address_a[2] => ram_block1a95.PORTAADDR2 +address_a[2] => ram_block1a96.PORTAADDR2 +address_a[2] => ram_block1a97.PORTAADDR2 +address_a[2] => ram_block1a98.PORTAADDR2 +address_a[2] => ram_block1a99.PORTAADDR2 +address_a[2] => ram_block1a100.PORTAADDR2 +address_a[2] => ram_block1a101.PORTAADDR2 +address_a[2] => ram_block1a102.PORTAADDR2 +address_a[2] => ram_block1a103.PORTAADDR2 +address_a[2] => ram_block1a104.PORTAADDR2 +address_a[2] => ram_block1a105.PORTAADDR2 +address_a[2] => ram_block1a106.PORTAADDR2 +address_a[2] => ram_block1a107.PORTAADDR2 +address_a[2] => ram_block1a108.PORTAADDR2 +address_a[2] => ram_block1a109.PORTAADDR2 +address_a[2] => ram_block1a110.PORTAADDR2 +address_a[2] => ram_block1a111.PORTAADDR2 +address_a[2] => ram_block1a112.PORTAADDR2 +address_a[2] => ram_block1a113.PORTAADDR2 +address_a[2] => ram_block1a114.PORTAADDR2 +address_a[2] => ram_block1a115.PORTAADDR2 +address_a[2] => ram_block1a116.PORTAADDR2 +address_a[2] => ram_block1a117.PORTAADDR2 +address_a[2] => ram_block1a118.PORTAADDR2 +address_a[2] => ram_block1a119.PORTAADDR2 +address_a[2] => ram_block1a120.PORTAADDR2 +address_a[2] => ram_block1a121.PORTAADDR2 +address_a[2] => ram_block1a122.PORTAADDR2 +address_a[2] => ram_block1a123.PORTAADDR2 +address_a[2] => ram_block1a124.PORTAADDR2 +address_a[2] => ram_block1a125.PORTAADDR2 +address_a[2] => ram_block1a126.PORTAADDR2 +address_a[2] => ram_block1a127.PORTAADDR2 +address_a[2] => ram_block1a128.PORTAADDR2 +address_a[2] => ram_block1a129.PORTAADDR2 +address_a[2] => ram_block1a130.PORTAADDR2 +address_a[2] => ram_block1a131.PORTAADDR2 +address_a[2] => ram_block1a132.PORTAADDR2 +address_a[2] => ram_block1a133.PORTAADDR2 +address_a[2] => ram_block1a134.PORTAADDR2 +address_a[2] => ram_block1a135.PORTAADDR2 +address_a[2] => ram_block1a136.PORTAADDR2 +address_a[2] => ram_block1a137.PORTAADDR2 +address_a[2] => ram_block1a138.PORTAADDR2 +address_a[2] => ram_block1a139.PORTAADDR2 +address_a[2] => ram_block1a140.PORTAADDR2 +address_a[2] => ram_block1a141.PORTAADDR2 +address_a[2] => ram_block1a142.PORTAADDR2 +address_a[2] => ram_block1a143.PORTAADDR2 +address_a[2] => ram_block1a144.PORTAADDR2 +address_a[2] => ram_block1a145.PORTAADDR2 +address_a[2] => ram_block1a146.PORTAADDR2 +address_a[2] => ram_block1a147.PORTAADDR2 +address_a[2] => ram_block1a148.PORTAADDR2 +address_a[2] => ram_block1a149.PORTAADDR2 +address_a[2] => ram_block1a150.PORTAADDR2 +address_a[2] => ram_block1a151.PORTAADDR2 +address_a[2] => ram_block1a152.PORTAADDR2 +address_a[2] => ram_block1a153.PORTAADDR2 +address_a[2] => ram_block1a154.PORTAADDR2 +address_a[2] => ram_block1a155.PORTAADDR2 +address_a[2] => ram_block1a156.PORTAADDR2 +address_a[2] => ram_block1a157.PORTAADDR2 +address_a[2] => ram_block1a158.PORTAADDR2 +address_a[2] => ram_block1a159.PORTAADDR2 +address_a[2] => ram_block1a160.PORTAADDR2 +address_a[2] => ram_block1a161.PORTAADDR2 +address_a[2] => ram_block1a162.PORTAADDR2 +address_a[2] => ram_block1a163.PORTAADDR2 +address_a[2] => ram_block1a164.PORTAADDR2 +address_a[2] => ram_block1a165.PORTAADDR2 +address_a[2] => ram_block1a166.PORTAADDR2 +address_a[2] => ram_block1a167.PORTAADDR2 +address_a[2] => ram_block1a168.PORTAADDR2 +address_a[2] => ram_block1a169.PORTAADDR2 +address_a[2] => ram_block1a170.PORTAADDR2 +address_a[2] => ram_block1a171.PORTAADDR2 +address_a[2] => ram_block1a172.PORTAADDR2 +address_a[2] => ram_block1a173.PORTAADDR2 +address_a[2] => ram_block1a174.PORTAADDR2 +address_a[2] => ram_block1a175.PORTAADDR2 +address_a[2] => ram_block1a176.PORTAADDR2 +address_a[2] => ram_block1a177.PORTAADDR2 +address_a[2] => ram_block1a178.PORTAADDR2 +address_a[2] => ram_block1a179.PORTAADDR2 +address_a[2] => ram_block1a180.PORTAADDR2 +address_a[2] => ram_block1a181.PORTAADDR2 +address_a[2] => ram_block1a182.PORTAADDR2 +address_a[2] => ram_block1a183.PORTAADDR2 +address_a[2] => ram_block1a184.PORTAADDR2 +address_a[2] => ram_block1a185.PORTAADDR2 +address_a[2] => ram_block1a186.PORTAADDR2 +address_a[2] => ram_block1a187.PORTAADDR2 +address_a[2] => ram_block1a188.PORTAADDR2 +address_a[2] => ram_block1a189.PORTAADDR2 +address_a[2] => ram_block1a190.PORTAADDR2 +address_a[2] => ram_block1a191.PORTAADDR2 +address_a[2] => ram_block1a192.PORTAADDR2 +address_a[2] => ram_block1a193.PORTAADDR2 +address_a[2] => ram_block1a194.PORTAADDR2 +address_a[2] => ram_block1a195.PORTAADDR2 +address_a[2] => ram_block1a196.PORTAADDR2 +address_a[2] => ram_block1a197.PORTAADDR2 +address_a[2] => ram_block1a198.PORTAADDR2 +address_a[2] => ram_block1a199.PORTAADDR2 +address_a[2] => ram_block1a200.PORTAADDR2 +address_a[2] => ram_block1a201.PORTAADDR2 +address_a[2] => ram_block1a202.PORTAADDR2 +address_a[2] => ram_block1a203.PORTAADDR2 +address_a[2] => ram_block1a204.PORTAADDR2 +address_a[2] => ram_block1a205.PORTAADDR2 +address_a[2] => ram_block1a206.PORTAADDR2 +address_a[2] => ram_block1a207.PORTAADDR2 +address_a[2] => ram_block1a208.PORTAADDR2 +address_a[2] => ram_block1a209.PORTAADDR2 +address_a[2] => ram_block1a210.PORTAADDR2 +address_a[2] => ram_block1a211.PORTAADDR2 +address_a[2] => ram_block1a212.PORTAADDR2 +address_a[2] => ram_block1a213.PORTAADDR2 +address_a[2] => ram_block1a214.PORTAADDR2 +address_a[2] => ram_block1a215.PORTAADDR2 +address_a[2] => ram_block1a216.PORTAADDR2 +address_a[2] => ram_block1a217.PORTAADDR2 +address_a[2] => ram_block1a218.PORTAADDR2 +address_a[2] => ram_block1a219.PORTAADDR2 +address_a[2] => ram_block1a220.PORTAADDR2 +address_a[2] => ram_block1a221.PORTAADDR2 +address_a[2] => ram_block1a222.PORTAADDR2 +address_a[2] => ram_block1a223.PORTAADDR2 +address_a[3] => ram_block1a0.PORTAADDR3 +address_a[3] => ram_block1a1.PORTAADDR3 +address_a[3] => ram_block1a2.PORTAADDR3 +address_a[3] => ram_block1a3.PORTAADDR3 +address_a[3] => ram_block1a4.PORTAADDR3 +address_a[3] => ram_block1a5.PORTAADDR3 +address_a[3] => ram_block1a6.PORTAADDR3 +address_a[3] => ram_block1a7.PORTAADDR3 +address_a[3] => ram_block1a8.PORTAADDR3 +address_a[3] => ram_block1a9.PORTAADDR3 +address_a[3] => ram_block1a10.PORTAADDR3 +address_a[3] => ram_block1a11.PORTAADDR3 +address_a[3] => ram_block1a12.PORTAADDR3 +address_a[3] => ram_block1a13.PORTAADDR3 +address_a[3] => ram_block1a14.PORTAADDR3 +address_a[3] => ram_block1a15.PORTAADDR3 +address_a[3] => ram_block1a16.PORTAADDR3 +address_a[3] => ram_block1a17.PORTAADDR3 +address_a[3] => ram_block1a18.PORTAADDR3 +address_a[3] => ram_block1a19.PORTAADDR3 +address_a[3] => ram_block1a20.PORTAADDR3 +address_a[3] => ram_block1a21.PORTAADDR3 +address_a[3] => ram_block1a22.PORTAADDR3 +address_a[3] => ram_block1a23.PORTAADDR3 +address_a[3] => ram_block1a24.PORTAADDR3 +address_a[3] => ram_block1a25.PORTAADDR3 +address_a[3] => ram_block1a26.PORTAADDR3 +address_a[3] => ram_block1a27.PORTAADDR3 +address_a[3] => ram_block1a28.PORTAADDR3 +address_a[3] => ram_block1a29.PORTAADDR3 +address_a[3] => ram_block1a30.PORTAADDR3 +address_a[3] => ram_block1a31.PORTAADDR3 +address_a[3] => ram_block1a32.PORTAADDR3 +address_a[3] => ram_block1a33.PORTAADDR3 +address_a[3] => ram_block1a34.PORTAADDR3 +address_a[3] => ram_block1a35.PORTAADDR3 +address_a[3] => ram_block1a36.PORTAADDR3 +address_a[3] => ram_block1a37.PORTAADDR3 +address_a[3] => ram_block1a38.PORTAADDR3 +address_a[3] => ram_block1a39.PORTAADDR3 +address_a[3] => ram_block1a40.PORTAADDR3 +address_a[3] => ram_block1a41.PORTAADDR3 +address_a[3] => ram_block1a42.PORTAADDR3 +address_a[3] => ram_block1a43.PORTAADDR3 +address_a[3] => ram_block1a44.PORTAADDR3 +address_a[3] => ram_block1a45.PORTAADDR3 +address_a[3] => ram_block1a46.PORTAADDR3 +address_a[3] => ram_block1a47.PORTAADDR3 +address_a[3] => ram_block1a48.PORTAADDR3 +address_a[3] => ram_block1a49.PORTAADDR3 +address_a[3] => ram_block1a50.PORTAADDR3 +address_a[3] => ram_block1a51.PORTAADDR3 +address_a[3] => ram_block1a52.PORTAADDR3 +address_a[3] => ram_block1a53.PORTAADDR3 +address_a[3] => ram_block1a54.PORTAADDR3 +address_a[3] => ram_block1a55.PORTAADDR3 +address_a[3] => ram_block1a56.PORTAADDR3 +address_a[3] => ram_block1a57.PORTAADDR3 +address_a[3] => ram_block1a58.PORTAADDR3 +address_a[3] => ram_block1a59.PORTAADDR3 +address_a[3] => ram_block1a60.PORTAADDR3 +address_a[3] => ram_block1a61.PORTAADDR3 +address_a[3] => ram_block1a62.PORTAADDR3 +address_a[3] => ram_block1a63.PORTAADDR3 +address_a[3] => ram_block1a64.PORTAADDR3 +address_a[3] => ram_block1a65.PORTAADDR3 +address_a[3] => ram_block1a66.PORTAADDR3 +address_a[3] => ram_block1a67.PORTAADDR3 +address_a[3] => ram_block1a68.PORTAADDR3 +address_a[3] => ram_block1a69.PORTAADDR3 +address_a[3] => ram_block1a70.PORTAADDR3 +address_a[3] => ram_block1a71.PORTAADDR3 +address_a[3] => ram_block1a72.PORTAADDR3 +address_a[3] => ram_block1a73.PORTAADDR3 +address_a[3] => ram_block1a74.PORTAADDR3 +address_a[3] => ram_block1a75.PORTAADDR3 +address_a[3] => ram_block1a76.PORTAADDR3 +address_a[3] => ram_block1a77.PORTAADDR3 +address_a[3] => ram_block1a78.PORTAADDR3 +address_a[3] => ram_block1a79.PORTAADDR3 +address_a[3] => ram_block1a80.PORTAADDR3 +address_a[3] => ram_block1a81.PORTAADDR3 +address_a[3] => ram_block1a82.PORTAADDR3 +address_a[3] => ram_block1a83.PORTAADDR3 +address_a[3] => ram_block1a84.PORTAADDR3 +address_a[3] => ram_block1a85.PORTAADDR3 +address_a[3] => ram_block1a86.PORTAADDR3 +address_a[3] => ram_block1a87.PORTAADDR3 +address_a[3] => ram_block1a88.PORTAADDR3 +address_a[3] => ram_block1a89.PORTAADDR3 +address_a[3] => ram_block1a90.PORTAADDR3 +address_a[3] => ram_block1a91.PORTAADDR3 +address_a[3] => ram_block1a92.PORTAADDR3 +address_a[3] => ram_block1a93.PORTAADDR3 +address_a[3] => ram_block1a94.PORTAADDR3 +address_a[3] => ram_block1a95.PORTAADDR3 +address_a[3] => ram_block1a96.PORTAADDR3 +address_a[3] => ram_block1a97.PORTAADDR3 +address_a[3] => ram_block1a98.PORTAADDR3 +address_a[3] => ram_block1a99.PORTAADDR3 +address_a[3] => ram_block1a100.PORTAADDR3 +address_a[3] => ram_block1a101.PORTAADDR3 +address_a[3] => ram_block1a102.PORTAADDR3 +address_a[3] => ram_block1a103.PORTAADDR3 +address_a[3] => ram_block1a104.PORTAADDR3 +address_a[3] => ram_block1a105.PORTAADDR3 +address_a[3] => ram_block1a106.PORTAADDR3 +address_a[3] => ram_block1a107.PORTAADDR3 +address_a[3] => ram_block1a108.PORTAADDR3 +address_a[3] => ram_block1a109.PORTAADDR3 +address_a[3] => ram_block1a110.PORTAADDR3 +address_a[3] => ram_block1a111.PORTAADDR3 +address_a[3] => ram_block1a112.PORTAADDR3 +address_a[3] => ram_block1a113.PORTAADDR3 +address_a[3] => ram_block1a114.PORTAADDR3 +address_a[3] => ram_block1a115.PORTAADDR3 +address_a[3] => ram_block1a116.PORTAADDR3 +address_a[3] => ram_block1a117.PORTAADDR3 +address_a[3] => ram_block1a118.PORTAADDR3 +address_a[3] => ram_block1a119.PORTAADDR3 +address_a[3] => ram_block1a120.PORTAADDR3 +address_a[3] => ram_block1a121.PORTAADDR3 +address_a[3] => ram_block1a122.PORTAADDR3 +address_a[3] => ram_block1a123.PORTAADDR3 +address_a[3] => ram_block1a124.PORTAADDR3 +address_a[3] => ram_block1a125.PORTAADDR3 +address_a[3] => ram_block1a126.PORTAADDR3 +address_a[3] => ram_block1a127.PORTAADDR3 +address_a[3] => ram_block1a128.PORTAADDR3 +address_a[3] => ram_block1a129.PORTAADDR3 +address_a[3] => ram_block1a130.PORTAADDR3 +address_a[3] => ram_block1a131.PORTAADDR3 +address_a[3] => ram_block1a132.PORTAADDR3 +address_a[3] => ram_block1a133.PORTAADDR3 +address_a[3] => ram_block1a134.PORTAADDR3 +address_a[3] => ram_block1a135.PORTAADDR3 +address_a[3] => ram_block1a136.PORTAADDR3 +address_a[3] => ram_block1a137.PORTAADDR3 +address_a[3] => ram_block1a138.PORTAADDR3 +address_a[3] => ram_block1a139.PORTAADDR3 +address_a[3] => ram_block1a140.PORTAADDR3 +address_a[3] => ram_block1a141.PORTAADDR3 +address_a[3] => ram_block1a142.PORTAADDR3 +address_a[3] => ram_block1a143.PORTAADDR3 +address_a[3] => ram_block1a144.PORTAADDR3 +address_a[3] => ram_block1a145.PORTAADDR3 +address_a[3] => ram_block1a146.PORTAADDR3 +address_a[3] => ram_block1a147.PORTAADDR3 +address_a[3] => ram_block1a148.PORTAADDR3 +address_a[3] => ram_block1a149.PORTAADDR3 +address_a[3] => ram_block1a150.PORTAADDR3 +address_a[3] => ram_block1a151.PORTAADDR3 +address_a[3] => ram_block1a152.PORTAADDR3 +address_a[3] => ram_block1a153.PORTAADDR3 +address_a[3] => ram_block1a154.PORTAADDR3 +address_a[3] => ram_block1a155.PORTAADDR3 +address_a[3] => ram_block1a156.PORTAADDR3 +address_a[3] => ram_block1a157.PORTAADDR3 +address_a[3] => ram_block1a158.PORTAADDR3 +address_a[3] => ram_block1a159.PORTAADDR3 +address_a[3] => ram_block1a160.PORTAADDR3 +address_a[3] => ram_block1a161.PORTAADDR3 +address_a[3] => ram_block1a162.PORTAADDR3 +address_a[3] => ram_block1a163.PORTAADDR3 +address_a[3] => ram_block1a164.PORTAADDR3 +address_a[3] => ram_block1a165.PORTAADDR3 +address_a[3] => ram_block1a166.PORTAADDR3 +address_a[3] => ram_block1a167.PORTAADDR3 +address_a[3] => ram_block1a168.PORTAADDR3 +address_a[3] => ram_block1a169.PORTAADDR3 +address_a[3] => ram_block1a170.PORTAADDR3 +address_a[3] => ram_block1a171.PORTAADDR3 +address_a[3] => ram_block1a172.PORTAADDR3 +address_a[3] => ram_block1a173.PORTAADDR3 +address_a[3] => ram_block1a174.PORTAADDR3 +address_a[3] => ram_block1a175.PORTAADDR3 +address_a[3] => ram_block1a176.PORTAADDR3 +address_a[3] => ram_block1a177.PORTAADDR3 +address_a[3] => ram_block1a178.PORTAADDR3 +address_a[3] => ram_block1a179.PORTAADDR3 +address_a[3] => ram_block1a180.PORTAADDR3 +address_a[3] => ram_block1a181.PORTAADDR3 +address_a[3] => ram_block1a182.PORTAADDR3 +address_a[3] => ram_block1a183.PORTAADDR3 +address_a[3] => ram_block1a184.PORTAADDR3 +address_a[3] => ram_block1a185.PORTAADDR3 +address_a[3] => ram_block1a186.PORTAADDR3 +address_a[3] => ram_block1a187.PORTAADDR3 +address_a[3] => ram_block1a188.PORTAADDR3 +address_a[3] => ram_block1a189.PORTAADDR3 +address_a[3] => ram_block1a190.PORTAADDR3 +address_a[3] => ram_block1a191.PORTAADDR3 +address_a[3] => ram_block1a192.PORTAADDR3 +address_a[3] => ram_block1a193.PORTAADDR3 +address_a[3] => ram_block1a194.PORTAADDR3 +address_a[3] => ram_block1a195.PORTAADDR3 +address_a[3] => ram_block1a196.PORTAADDR3 +address_a[3] => ram_block1a197.PORTAADDR3 +address_a[3] => ram_block1a198.PORTAADDR3 +address_a[3] => ram_block1a199.PORTAADDR3 +address_a[3] => ram_block1a200.PORTAADDR3 +address_a[3] => ram_block1a201.PORTAADDR3 +address_a[3] => ram_block1a202.PORTAADDR3 +address_a[3] => ram_block1a203.PORTAADDR3 +address_a[3] => ram_block1a204.PORTAADDR3 +address_a[3] => ram_block1a205.PORTAADDR3 +address_a[3] => ram_block1a206.PORTAADDR3 +address_a[3] => ram_block1a207.PORTAADDR3 +address_a[3] => ram_block1a208.PORTAADDR3 +address_a[3] => ram_block1a209.PORTAADDR3 +address_a[3] => ram_block1a210.PORTAADDR3 +address_a[3] => ram_block1a211.PORTAADDR3 +address_a[3] => ram_block1a212.PORTAADDR3 +address_a[3] => ram_block1a213.PORTAADDR3 +address_a[3] => ram_block1a214.PORTAADDR3 +address_a[3] => ram_block1a215.PORTAADDR3 +address_a[3] => ram_block1a216.PORTAADDR3 +address_a[3] => ram_block1a217.PORTAADDR3 +address_a[3] => ram_block1a218.PORTAADDR3 +address_a[3] => ram_block1a219.PORTAADDR3 +address_a[3] => ram_block1a220.PORTAADDR3 +address_a[3] => ram_block1a221.PORTAADDR3 +address_a[3] => ram_block1a222.PORTAADDR3 +address_a[3] => ram_block1a223.PORTAADDR3 +address_a[4] => ram_block1a0.PORTAADDR4 +address_a[4] => ram_block1a1.PORTAADDR4 +address_a[4] => ram_block1a2.PORTAADDR4 +address_a[4] => ram_block1a3.PORTAADDR4 +address_a[4] => ram_block1a4.PORTAADDR4 +address_a[4] => ram_block1a5.PORTAADDR4 +address_a[4] => ram_block1a6.PORTAADDR4 +address_a[4] => ram_block1a7.PORTAADDR4 +address_a[4] => ram_block1a8.PORTAADDR4 +address_a[4] => ram_block1a9.PORTAADDR4 +address_a[4] => ram_block1a10.PORTAADDR4 +address_a[4] => ram_block1a11.PORTAADDR4 +address_a[4] => ram_block1a12.PORTAADDR4 +address_a[4] => ram_block1a13.PORTAADDR4 +address_a[4] => ram_block1a14.PORTAADDR4 +address_a[4] => ram_block1a15.PORTAADDR4 +address_a[4] => ram_block1a16.PORTAADDR4 +address_a[4] => ram_block1a17.PORTAADDR4 +address_a[4] => ram_block1a18.PORTAADDR4 +address_a[4] => ram_block1a19.PORTAADDR4 +address_a[4] => ram_block1a20.PORTAADDR4 +address_a[4] => ram_block1a21.PORTAADDR4 +address_a[4] => ram_block1a22.PORTAADDR4 +address_a[4] => ram_block1a23.PORTAADDR4 +address_a[4] => ram_block1a24.PORTAADDR4 +address_a[4] => ram_block1a25.PORTAADDR4 +address_a[4] => ram_block1a26.PORTAADDR4 +address_a[4] => ram_block1a27.PORTAADDR4 +address_a[4] => ram_block1a28.PORTAADDR4 +address_a[4] => ram_block1a29.PORTAADDR4 +address_a[4] => ram_block1a30.PORTAADDR4 +address_a[4] => ram_block1a31.PORTAADDR4 +address_a[4] => ram_block1a32.PORTAADDR4 +address_a[4] => ram_block1a33.PORTAADDR4 +address_a[4] => ram_block1a34.PORTAADDR4 +address_a[4] => ram_block1a35.PORTAADDR4 +address_a[4] => ram_block1a36.PORTAADDR4 +address_a[4] => ram_block1a37.PORTAADDR4 +address_a[4] => ram_block1a38.PORTAADDR4 +address_a[4] => ram_block1a39.PORTAADDR4 +address_a[4] => ram_block1a40.PORTAADDR4 +address_a[4] => ram_block1a41.PORTAADDR4 +address_a[4] => ram_block1a42.PORTAADDR4 +address_a[4] => ram_block1a43.PORTAADDR4 +address_a[4] => ram_block1a44.PORTAADDR4 +address_a[4] => ram_block1a45.PORTAADDR4 +address_a[4] => ram_block1a46.PORTAADDR4 +address_a[4] => ram_block1a47.PORTAADDR4 +address_a[4] => ram_block1a48.PORTAADDR4 +address_a[4] => ram_block1a49.PORTAADDR4 +address_a[4] => ram_block1a50.PORTAADDR4 +address_a[4] => ram_block1a51.PORTAADDR4 +address_a[4] => ram_block1a52.PORTAADDR4 +address_a[4] => ram_block1a53.PORTAADDR4 +address_a[4] => ram_block1a54.PORTAADDR4 +address_a[4] => ram_block1a55.PORTAADDR4 +address_a[4] => ram_block1a56.PORTAADDR4 +address_a[4] => ram_block1a57.PORTAADDR4 +address_a[4] => ram_block1a58.PORTAADDR4 +address_a[4] => ram_block1a59.PORTAADDR4 +address_a[4] => ram_block1a60.PORTAADDR4 +address_a[4] => ram_block1a61.PORTAADDR4 +address_a[4] => ram_block1a62.PORTAADDR4 +address_a[4] => ram_block1a63.PORTAADDR4 +address_a[4] => ram_block1a64.PORTAADDR4 +address_a[4] => ram_block1a65.PORTAADDR4 +address_a[4] => ram_block1a66.PORTAADDR4 +address_a[4] => ram_block1a67.PORTAADDR4 +address_a[4] => ram_block1a68.PORTAADDR4 +address_a[4] => ram_block1a69.PORTAADDR4 +address_a[4] => ram_block1a70.PORTAADDR4 +address_a[4] => ram_block1a71.PORTAADDR4 +address_a[4] => ram_block1a72.PORTAADDR4 +address_a[4] => ram_block1a73.PORTAADDR4 +address_a[4] => ram_block1a74.PORTAADDR4 +address_a[4] => ram_block1a75.PORTAADDR4 +address_a[4] => ram_block1a76.PORTAADDR4 +address_a[4] => ram_block1a77.PORTAADDR4 +address_a[4] => ram_block1a78.PORTAADDR4 +address_a[4] => ram_block1a79.PORTAADDR4 +address_a[4] => ram_block1a80.PORTAADDR4 +address_a[4] => ram_block1a81.PORTAADDR4 +address_a[4] => ram_block1a82.PORTAADDR4 +address_a[4] => ram_block1a83.PORTAADDR4 +address_a[4] => ram_block1a84.PORTAADDR4 +address_a[4] => ram_block1a85.PORTAADDR4 +address_a[4] => ram_block1a86.PORTAADDR4 +address_a[4] => ram_block1a87.PORTAADDR4 +address_a[4] => ram_block1a88.PORTAADDR4 +address_a[4] => ram_block1a89.PORTAADDR4 +address_a[4] => ram_block1a90.PORTAADDR4 +address_a[4] => ram_block1a91.PORTAADDR4 +address_a[4] => ram_block1a92.PORTAADDR4 +address_a[4] => ram_block1a93.PORTAADDR4 +address_a[4] => ram_block1a94.PORTAADDR4 +address_a[4] => ram_block1a95.PORTAADDR4 +address_a[4] => ram_block1a96.PORTAADDR4 +address_a[4] => ram_block1a97.PORTAADDR4 +address_a[4] => ram_block1a98.PORTAADDR4 +address_a[4] => ram_block1a99.PORTAADDR4 +address_a[4] => ram_block1a100.PORTAADDR4 +address_a[4] => ram_block1a101.PORTAADDR4 +address_a[4] => ram_block1a102.PORTAADDR4 +address_a[4] => ram_block1a103.PORTAADDR4 +address_a[4] => ram_block1a104.PORTAADDR4 +address_a[4] => ram_block1a105.PORTAADDR4 +address_a[4] => ram_block1a106.PORTAADDR4 +address_a[4] => ram_block1a107.PORTAADDR4 +address_a[4] => ram_block1a108.PORTAADDR4 +address_a[4] => ram_block1a109.PORTAADDR4 +address_a[4] => ram_block1a110.PORTAADDR4 +address_a[4] => ram_block1a111.PORTAADDR4 +address_a[4] => ram_block1a112.PORTAADDR4 +address_a[4] => ram_block1a113.PORTAADDR4 +address_a[4] => ram_block1a114.PORTAADDR4 +address_a[4] => ram_block1a115.PORTAADDR4 +address_a[4] => ram_block1a116.PORTAADDR4 +address_a[4] => ram_block1a117.PORTAADDR4 +address_a[4] => ram_block1a118.PORTAADDR4 +address_a[4] => ram_block1a119.PORTAADDR4 +address_a[4] => ram_block1a120.PORTAADDR4 +address_a[4] => ram_block1a121.PORTAADDR4 +address_a[4] => ram_block1a122.PORTAADDR4 +address_a[4] => ram_block1a123.PORTAADDR4 +address_a[4] => ram_block1a124.PORTAADDR4 +address_a[4] => ram_block1a125.PORTAADDR4 +address_a[4] => ram_block1a126.PORTAADDR4 +address_a[4] => ram_block1a127.PORTAADDR4 +address_a[4] => ram_block1a128.PORTAADDR4 +address_a[4] => ram_block1a129.PORTAADDR4 +address_a[4] => ram_block1a130.PORTAADDR4 +address_a[4] => ram_block1a131.PORTAADDR4 +address_a[4] => ram_block1a132.PORTAADDR4 +address_a[4] => ram_block1a133.PORTAADDR4 +address_a[4] => ram_block1a134.PORTAADDR4 +address_a[4] => ram_block1a135.PORTAADDR4 +address_a[4] => ram_block1a136.PORTAADDR4 +address_a[4] => ram_block1a137.PORTAADDR4 +address_a[4] => ram_block1a138.PORTAADDR4 +address_a[4] => ram_block1a139.PORTAADDR4 +address_a[4] => ram_block1a140.PORTAADDR4 +address_a[4] => ram_block1a141.PORTAADDR4 +address_a[4] => ram_block1a142.PORTAADDR4 +address_a[4] => ram_block1a143.PORTAADDR4 +address_a[4] => ram_block1a144.PORTAADDR4 +address_a[4] => ram_block1a145.PORTAADDR4 +address_a[4] => ram_block1a146.PORTAADDR4 +address_a[4] => ram_block1a147.PORTAADDR4 +address_a[4] => ram_block1a148.PORTAADDR4 +address_a[4] => ram_block1a149.PORTAADDR4 +address_a[4] => ram_block1a150.PORTAADDR4 +address_a[4] => ram_block1a151.PORTAADDR4 +address_a[4] => ram_block1a152.PORTAADDR4 +address_a[4] => ram_block1a153.PORTAADDR4 +address_a[4] => ram_block1a154.PORTAADDR4 +address_a[4] => ram_block1a155.PORTAADDR4 +address_a[4] => ram_block1a156.PORTAADDR4 +address_a[4] => ram_block1a157.PORTAADDR4 +address_a[4] => ram_block1a158.PORTAADDR4 +address_a[4] => ram_block1a159.PORTAADDR4 +address_a[4] => ram_block1a160.PORTAADDR4 +address_a[4] => ram_block1a161.PORTAADDR4 +address_a[4] => ram_block1a162.PORTAADDR4 +address_a[4] => ram_block1a163.PORTAADDR4 +address_a[4] => ram_block1a164.PORTAADDR4 +address_a[4] => ram_block1a165.PORTAADDR4 +address_a[4] => ram_block1a166.PORTAADDR4 +address_a[4] => ram_block1a167.PORTAADDR4 +address_a[4] => ram_block1a168.PORTAADDR4 +address_a[4] => ram_block1a169.PORTAADDR4 +address_a[4] => ram_block1a170.PORTAADDR4 +address_a[4] => ram_block1a171.PORTAADDR4 +address_a[4] => ram_block1a172.PORTAADDR4 +address_a[4] => ram_block1a173.PORTAADDR4 +address_a[4] => ram_block1a174.PORTAADDR4 +address_a[4] => ram_block1a175.PORTAADDR4 +address_a[4] => ram_block1a176.PORTAADDR4 +address_a[4] => ram_block1a177.PORTAADDR4 +address_a[4] => ram_block1a178.PORTAADDR4 +address_a[4] => ram_block1a179.PORTAADDR4 +address_a[4] => ram_block1a180.PORTAADDR4 +address_a[4] => ram_block1a181.PORTAADDR4 +address_a[4] => ram_block1a182.PORTAADDR4 +address_a[4] => ram_block1a183.PORTAADDR4 +address_a[4] => ram_block1a184.PORTAADDR4 +address_a[4] => ram_block1a185.PORTAADDR4 +address_a[4] => ram_block1a186.PORTAADDR4 +address_a[4] => ram_block1a187.PORTAADDR4 +address_a[4] => ram_block1a188.PORTAADDR4 +address_a[4] => ram_block1a189.PORTAADDR4 +address_a[4] => ram_block1a190.PORTAADDR4 +address_a[4] => ram_block1a191.PORTAADDR4 +address_a[4] => ram_block1a192.PORTAADDR4 +address_a[4] => ram_block1a193.PORTAADDR4 +address_a[4] => ram_block1a194.PORTAADDR4 +address_a[4] => ram_block1a195.PORTAADDR4 +address_a[4] => ram_block1a196.PORTAADDR4 +address_a[4] => ram_block1a197.PORTAADDR4 +address_a[4] => ram_block1a198.PORTAADDR4 +address_a[4] => ram_block1a199.PORTAADDR4 +address_a[4] => ram_block1a200.PORTAADDR4 +address_a[4] => ram_block1a201.PORTAADDR4 +address_a[4] => ram_block1a202.PORTAADDR4 +address_a[4] => ram_block1a203.PORTAADDR4 +address_a[4] => ram_block1a204.PORTAADDR4 +address_a[4] => ram_block1a205.PORTAADDR4 +address_a[4] => ram_block1a206.PORTAADDR4 +address_a[4] => ram_block1a207.PORTAADDR4 +address_a[4] => ram_block1a208.PORTAADDR4 +address_a[4] => ram_block1a209.PORTAADDR4 +address_a[4] => ram_block1a210.PORTAADDR4 +address_a[4] => ram_block1a211.PORTAADDR4 +address_a[4] => ram_block1a212.PORTAADDR4 +address_a[4] => ram_block1a213.PORTAADDR4 +address_a[4] => ram_block1a214.PORTAADDR4 +address_a[4] => ram_block1a215.PORTAADDR4 +address_a[4] => ram_block1a216.PORTAADDR4 +address_a[4] => ram_block1a217.PORTAADDR4 +address_a[4] => ram_block1a218.PORTAADDR4 +address_a[4] => ram_block1a219.PORTAADDR4 +address_a[4] => ram_block1a220.PORTAADDR4 +address_a[4] => ram_block1a221.PORTAADDR4 +address_a[4] => ram_block1a222.PORTAADDR4 +address_a[4] => ram_block1a223.PORTAADDR4 +address_a[5] => ram_block1a0.PORTAADDR5 +address_a[5] => ram_block1a1.PORTAADDR5 +address_a[5] => ram_block1a2.PORTAADDR5 +address_a[5] => ram_block1a3.PORTAADDR5 +address_a[5] => ram_block1a4.PORTAADDR5 +address_a[5] => ram_block1a5.PORTAADDR5 +address_a[5] => ram_block1a6.PORTAADDR5 +address_a[5] => ram_block1a7.PORTAADDR5 +address_a[5] => ram_block1a8.PORTAADDR5 +address_a[5] => ram_block1a9.PORTAADDR5 +address_a[5] => ram_block1a10.PORTAADDR5 +address_a[5] => ram_block1a11.PORTAADDR5 +address_a[5] => ram_block1a12.PORTAADDR5 +address_a[5] => ram_block1a13.PORTAADDR5 +address_a[5] => ram_block1a14.PORTAADDR5 +address_a[5] => ram_block1a15.PORTAADDR5 +address_a[5] => ram_block1a16.PORTAADDR5 +address_a[5] => ram_block1a17.PORTAADDR5 +address_a[5] => ram_block1a18.PORTAADDR5 +address_a[5] => ram_block1a19.PORTAADDR5 +address_a[5] => ram_block1a20.PORTAADDR5 +address_a[5] => ram_block1a21.PORTAADDR5 +address_a[5] => ram_block1a22.PORTAADDR5 +address_a[5] => ram_block1a23.PORTAADDR5 +address_a[5] => ram_block1a24.PORTAADDR5 +address_a[5] => ram_block1a25.PORTAADDR5 +address_a[5] => ram_block1a26.PORTAADDR5 +address_a[5] => ram_block1a27.PORTAADDR5 +address_a[5] => ram_block1a28.PORTAADDR5 +address_a[5] => ram_block1a29.PORTAADDR5 +address_a[5] => ram_block1a30.PORTAADDR5 +address_a[5] => ram_block1a31.PORTAADDR5 +address_a[5] => ram_block1a32.PORTAADDR5 +address_a[5] => ram_block1a33.PORTAADDR5 +address_a[5] => ram_block1a34.PORTAADDR5 +address_a[5] => ram_block1a35.PORTAADDR5 +address_a[5] => ram_block1a36.PORTAADDR5 +address_a[5] => ram_block1a37.PORTAADDR5 +address_a[5] => ram_block1a38.PORTAADDR5 +address_a[5] => ram_block1a39.PORTAADDR5 +address_a[5] => ram_block1a40.PORTAADDR5 +address_a[5] => ram_block1a41.PORTAADDR5 +address_a[5] => ram_block1a42.PORTAADDR5 +address_a[5] => ram_block1a43.PORTAADDR5 +address_a[5] => ram_block1a44.PORTAADDR5 +address_a[5] => ram_block1a45.PORTAADDR5 +address_a[5] => ram_block1a46.PORTAADDR5 +address_a[5] => ram_block1a47.PORTAADDR5 +address_a[5] => ram_block1a48.PORTAADDR5 +address_a[5] => ram_block1a49.PORTAADDR5 +address_a[5] => ram_block1a50.PORTAADDR5 +address_a[5] => ram_block1a51.PORTAADDR5 +address_a[5] => ram_block1a52.PORTAADDR5 +address_a[5] => ram_block1a53.PORTAADDR5 +address_a[5] => ram_block1a54.PORTAADDR5 +address_a[5] => ram_block1a55.PORTAADDR5 +address_a[5] => ram_block1a56.PORTAADDR5 +address_a[5] => ram_block1a57.PORTAADDR5 +address_a[5] => ram_block1a58.PORTAADDR5 +address_a[5] => ram_block1a59.PORTAADDR5 +address_a[5] => ram_block1a60.PORTAADDR5 +address_a[5] => ram_block1a61.PORTAADDR5 +address_a[5] => ram_block1a62.PORTAADDR5 +address_a[5] => ram_block1a63.PORTAADDR5 +address_a[5] => ram_block1a64.PORTAADDR5 +address_a[5] => ram_block1a65.PORTAADDR5 +address_a[5] => ram_block1a66.PORTAADDR5 +address_a[5] => ram_block1a67.PORTAADDR5 +address_a[5] => ram_block1a68.PORTAADDR5 +address_a[5] => ram_block1a69.PORTAADDR5 +address_a[5] => ram_block1a70.PORTAADDR5 +address_a[5] => ram_block1a71.PORTAADDR5 +address_a[5] => ram_block1a72.PORTAADDR5 +address_a[5] => ram_block1a73.PORTAADDR5 +address_a[5] => ram_block1a74.PORTAADDR5 +address_a[5] => ram_block1a75.PORTAADDR5 +address_a[5] => ram_block1a76.PORTAADDR5 +address_a[5] => ram_block1a77.PORTAADDR5 +address_a[5] => ram_block1a78.PORTAADDR5 +address_a[5] => ram_block1a79.PORTAADDR5 +address_a[5] => ram_block1a80.PORTAADDR5 +address_a[5] => ram_block1a81.PORTAADDR5 +address_a[5] => ram_block1a82.PORTAADDR5 +address_a[5] => ram_block1a83.PORTAADDR5 +address_a[5] => ram_block1a84.PORTAADDR5 +address_a[5] => ram_block1a85.PORTAADDR5 +address_a[5] => ram_block1a86.PORTAADDR5 +address_a[5] => ram_block1a87.PORTAADDR5 +address_a[5] => ram_block1a88.PORTAADDR5 +address_a[5] => ram_block1a89.PORTAADDR5 +address_a[5] => ram_block1a90.PORTAADDR5 +address_a[5] => ram_block1a91.PORTAADDR5 +address_a[5] => ram_block1a92.PORTAADDR5 +address_a[5] => ram_block1a93.PORTAADDR5 +address_a[5] => ram_block1a94.PORTAADDR5 +address_a[5] => ram_block1a95.PORTAADDR5 +address_a[5] => ram_block1a96.PORTAADDR5 +address_a[5] => ram_block1a97.PORTAADDR5 +address_a[5] => ram_block1a98.PORTAADDR5 +address_a[5] => ram_block1a99.PORTAADDR5 +address_a[5] => ram_block1a100.PORTAADDR5 +address_a[5] => ram_block1a101.PORTAADDR5 +address_a[5] => ram_block1a102.PORTAADDR5 +address_a[5] => ram_block1a103.PORTAADDR5 +address_a[5] => ram_block1a104.PORTAADDR5 +address_a[5] => ram_block1a105.PORTAADDR5 +address_a[5] => ram_block1a106.PORTAADDR5 +address_a[5] => ram_block1a107.PORTAADDR5 +address_a[5] => ram_block1a108.PORTAADDR5 +address_a[5] => ram_block1a109.PORTAADDR5 +address_a[5] => ram_block1a110.PORTAADDR5 +address_a[5] => ram_block1a111.PORTAADDR5 +address_a[5] => ram_block1a112.PORTAADDR5 +address_a[5] => ram_block1a113.PORTAADDR5 +address_a[5] => ram_block1a114.PORTAADDR5 +address_a[5] => ram_block1a115.PORTAADDR5 +address_a[5] => ram_block1a116.PORTAADDR5 +address_a[5] => ram_block1a117.PORTAADDR5 +address_a[5] => ram_block1a118.PORTAADDR5 +address_a[5] => ram_block1a119.PORTAADDR5 +address_a[5] => ram_block1a120.PORTAADDR5 +address_a[5] => ram_block1a121.PORTAADDR5 +address_a[5] => ram_block1a122.PORTAADDR5 +address_a[5] => ram_block1a123.PORTAADDR5 +address_a[5] => ram_block1a124.PORTAADDR5 +address_a[5] => ram_block1a125.PORTAADDR5 +address_a[5] => ram_block1a126.PORTAADDR5 +address_a[5] => ram_block1a127.PORTAADDR5 +address_a[5] => ram_block1a128.PORTAADDR5 +address_a[5] => ram_block1a129.PORTAADDR5 +address_a[5] => ram_block1a130.PORTAADDR5 +address_a[5] => ram_block1a131.PORTAADDR5 +address_a[5] => ram_block1a132.PORTAADDR5 +address_a[5] => ram_block1a133.PORTAADDR5 +address_a[5] => ram_block1a134.PORTAADDR5 +address_a[5] => ram_block1a135.PORTAADDR5 +address_a[5] => ram_block1a136.PORTAADDR5 +address_a[5] => ram_block1a137.PORTAADDR5 +address_a[5] => ram_block1a138.PORTAADDR5 +address_a[5] => ram_block1a139.PORTAADDR5 +address_a[5] => ram_block1a140.PORTAADDR5 +address_a[5] => ram_block1a141.PORTAADDR5 +address_a[5] => ram_block1a142.PORTAADDR5 +address_a[5] => ram_block1a143.PORTAADDR5 +address_a[5] => ram_block1a144.PORTAADDR5 +address_a[5] => ram_block1a145.PORTAADDR5 +address_a[5] => ram_block1a146.PORTAADDR5 +address_a[5] => ram_block1a147.PORTAADDR5 +address_a[5] => ram_block1a148.PORTAADDR5 +address_a[5] => ram_block1a149.PORTAADDR5 +address_a[5] => ram_block1a150.PORTAADDR5 +address_a[5] => ram_block1a151.PORTAADDR5 +address_a[5] => ram_block1a152.PORTAADDR5 +address_a[5] => ram_block1a153.PORTAADDR5 +address_a[5] => ram_block1a154.PORTAADDR5 +address_a[5] => ram_block1a155.PORTAADDR5 +address_a[5] => ram_block1a156.PORTAADDR5 +address_a[5] => ram_block1a157.PORTAADDR5 +address_a[5] => ram_block1a158.PORTAADDR5 +address_a[5] => ram_block1a159.PORTAADDR5 +address_a[5] => ram_block1a160.PORTAADDR5 +address_a[5] => ram_block1a161.PORTAADDR5 +address_a[5] => ram_block1a162.PORTAADDR5 +address_a[5] => ram_block1a163.PORTAADDR5 +address_a[5] => ram_block1a164.PORTAADDR5 +address_a[5] => ram_block1a165.PORTAADDR5 +address_a[5] => ram_block1a166.PORTAADDR5 +address_a[5] => ram_block1a167.PORTAADDR5 +address_a[5] => ram_block1a168.PORTAADDR5 +address_a[5] => ram_block1a169.PORTAADDR5 +address_a[5] => ram_block1a170.PORTAADDR5 +address_a[5] => ram_block1a171.PORTAADDR5 +address_a[5] => ram_block1a172.PORTAADDR5 +address_a[5] => ram_block1a173.PORTAADDR5 +address_a[5] => ram_block1a174.PORTAADDR5 +address_a[5] => ram_block1a175.PORTAADDR5 +address_a[5] => ram_block1a176.PORTAADDR5 +address_a[5] => ram_block1a177.PORTAADDR5 +address_a[5] => ram_block1a178.PORTAADDR5 +address_a[5] => ram_block1a179.PORTAADDR5 +address_a[5] => ram_block1a180.PORTAADDR5 +address_a[5] => ram_block1a181.PORTAADDR5 +address_a[5] => ram_block1a182.PORTAADDR5 +address_a[5] => ram_block1a183.PORTAADDR5 +address_a[5] => ram_block1a184.PORTAADDR5 +address_a[5] => ram_block1a185.PORTAADDR5 +address_a[5] => ram_block1a186.PORTAADDR5 +address_a[5] => ram_block1a187.PORTAADDR5 +address_a[5] => ram_block1a188.PORTAADDR5 +address_a[5] => ram_block1a189.PORTAADDR5 +address_a[5] => ram_block1a190.PORTAADDR5 +address_a[5] => ram_block1a191.PORTAADDR5 +address_a[5] => ram_block1a192.PORTAADDR5 +address_a[5] => ram_block1a193.PORTAADDR5 +address_a[5] => ram_block1a194.PORTAADDR5 +address_a[5] => ram_block1a195.PORTAADDR5 +address_a[5] => ram_block1a196.PORTAADDR5 +address_a[5] => ram_block1a197.PORTAADDR5 +address_a[5] => ram_block1a198.PORTAADDR5 +address_a[5] => ram_block1a199.PORTAADDR5 +address_a[5] => ram_block1a200.PORTAADDR5 +address_a[5] => ram_block1a201.PORTAADDR5 +address_a[5] => ram_block1a202.PORTAADDR5 +address_a[5] => ram_block1a203.PORTAADDR5 +address_a[5] => ram_block1a204.PORTAADDR5 +address_a[5] => ram_block1a205.PORTAADDR5 +address_a[5] => ram_block1a206.PORTAADDR5 +address_a[5] => ram_block1a207.PORTAADDR5 +address_a[5] => ram_block1a208.PORTAADDR5 +address_a[5] => ram_block1a209.PORTAADDR5 +address_a[5] => ram_block1a210.PORTAADDR5 +address_a[5] => ram_block1a211.PORTAADDR5 +address_a[5] => ram_block1a212.PORTAADDR5 +address_a[5] => ram_block1a213.PORTAADDR5 +address_a[5] => ram_block1a214.PORTAADDR5 +address_a[5] => ram_block1a215.PORTAADDR5 +address_a[5] => ram_block1a216.PORTAADDR5 +address_a[5] => ram_block1a217.PORTAADDR5 +address_a[5] => ram_block1a218.PORTAADDR5 +address_a[5] => ram_block1a219.PORTAADDR5 +address_a[5] => ram_block1a220.PORTAADDR5 +address_a[5] => ram_block1a221.PORTAADDR5 +address_a[5] => ram_block1a222.PORTAADDR5 +address_a[5] => ram_block1a223.PORTAADDR5 +address_a[6] => ram_block1a0.PORTAADDR6 +address_a[6] => ram_block1a1.PORTAADDR6 +address_a[6] => ram_block1a2.PORTAADDR6 +address_a[6] => ram_block1a3.PORTAADDR6 +address_a[6] => ram_block1a4.PORTAADDR6 +address_a[6] => ram_block1a5.PORTAADDR6 +address_a[6] => ram_block1a6.PORTAADDR6 +address_a[6] => ram_block1a7.PORTAADDR6 +address_a[6] => ram_block1a8.PORTAADDR6 +address_a[6] => ram_block1a9.PORTAADDR6 +address_a[6] => ram_block1a10.PORTAADDR6 +address_a[6] => ram_block1a11.PORTAADDR6 +address_a[6] => ram_block1a12.PORTAADDR6 +address_a[6] => ram_block1a13.PORTAADDR6 +address_a[6] => ram_block1a14.PORTAADDR6 +address_a[6] => ram_block1a15.PORTAADDR6 +address_a[6] => ram_block1a16.PORTAADDR6 +address_a[6] => ram_block1a17.PORTAADDR6 +address_a[6] => ram_block1a18.PORTAADDR6 +address_a[6] => ram_block1a19.PORTAADDR6 +address_a[6] => ram_block1a20.PORTAADDR6 +address_a[6] => ram_block1a21.PORTAADDR6 +address_a[6] => ram_block1a22.PORTAADDR6 +address_a[6] => ram_block1a23.PORTAADDR6 +address_a[6] => ram_block1a24.PORTAADDR6 +address_a[6] => ram_block1a25.PORTAADDR6 +address_a[6] => ram_block1a26.PORTAADDR6 +address_a[6] => ram_block1a27.PORTAADDR6 +address_a[6] => ram_block1a28.PORTAADDR6 +address_a[6] => ram_block1a29.PORTAADDR6 +address_a[6] => ram_block1a30.PORTAADDR6 +address_a[6] => ram_block1a31.PORTAADDR6 +address_a[6] => ram_block1a32.PORTAADDR6 +address_a[6] => ram_block1a33.PORTAADDR6 +address_a[6] => ram_block1a34.PORTAADDR6 +address_a[6] => ram_block1a35.PORTAADDR6 +address_a[6] => ram_block1a36.PORTAADDR6 +address_a[6] => ram_block1a37.PORTAADDR6 +address_a[6] => ram_block1a38.PORTAADDR6 +address_a[6] => ram_block1a39.PORTAADDR6 +address_a[6] => ram_block1a40.PORTAADDR6 +address_a[6] => ram_block1a41.PORTAADDR6 +address_a[6] => ram_block1a42.PORTAADDR6 +address_a[6] => ram_block1a43.PORTAADDR6 +address_a[6] => ram_block1a44.PORTAADDR6 +address_a[6] => ram_block1a45.PORTAADDR6 +address_a[6] => ram_block1a46.PORTAADDR6 +address_a[6] => ram_block1a47.PORTAADDR6 +address_a[6] => ram_block1a48.PORTAADDR6 +address_a[6] => ram_block1a49.PORTAADDR6 +address_a[6] => ram_block1a50.PORTAADDR6 +address_a[6] => ram_block1a51.PORTAADDR6 +address_a[6] => ram_block1a52.PORTAADDR6 +address_a[6] => ram_block1a53.PORTAADDR6 +address_a[6] => ram_block1a54.PORTAADDR6 +address_a[6] => ram_block1a55.PORTAADDR6 +address_a[6] => ram_block1a56.PORTAADDR6 +address_a[6] => ram_block1a57.PORTAADDR6 +address_a[6] => ram_block1a58.PORTAADDR6 +address_a[6] => ram_block1a59.PORTAADDR6 +address_a[6] => ram_block1a60.PORTAADDR6 +address_a[6] => ram_block1a61.PORTAADDR6 +address_a[6] => ram_block1a62.PORTAADDR6 +address_a[6] => ram_block1a63.PORTAADDR6 +address_a[6] => ram_block1a64.PORTAADDR6 +address_a[6] => ram_block1a65.PORTAADDR6 +address_a[6] => ram_block1a66.PORTAADDR6 +address_a[6] => ram_block1a67.PORTAADDR6 +address_a[6] => ram_block1a68.PORTAADDR6 +address_a[6] => ram_block1a69.PORTAADDR6 +address_a[6] => ram_block1a70.PORTAADDR6 +address_a[6] => ram_block1a71.PORTAADDR6 +address_a[6] => ram_block1a72.PORTAADDR6 +address_a[6] => ram_block1a73.PORTAADDR6 +address_a[6] => ram_block1a74.PORTAADDR6 +address_a[6] => ram_block1a75.PORTAADDR6 +address_a[6] => ram_block1a76.PORTAADDR6 +address_a[6] => ram_block1a77.PORTAADDR6 +address_a[6] => ram_block1a78.PORTAADDR6 +address_a[6] => ram_block1a79.PORTAADDR6 +address_a[6] => ram_block1a80.PORTAADDR6 +address_a[6] => ram_block1a81.PORTAADDR6 +address_a[6] => ram_block1a82.PORTAADDR6 +address_a[6] => ram_block1a83.PORTAADDR6 +address_a[6] => ram_block1a84.PORTAADDR6 +address_a[6] => ram_block1a85.PORTAADDR6 +address_a[6] => ram_block1a86.PORTAADDR6 +address_a[6] => ram_block1a87.PORTAADDR6 +address_a[6] => ram_block1a88.PORTAADDR6 +address_a[6] => ram_block1a89.PORTAADDR6 +address_a[6] => ram_block1a90.PORTAADDR6 +address_a[6] => ram_block1a91.PORTAADDR6 +address_a[6] => ram_block1a92.PORTAADDR6 +address_a[6] => ram_block1a93.PORTAADDR6 +address_a[6] => ram_block1a94.PORTAADDR6 +address_a[6] => ram_block1a95.PORTAADDR6 +address_a[6] => ram_block1a96.PORTAADDR6 +address_a[6] => ram_block1a97.PORTAADDR6 +address_a[6] => ram_block1a98.PORTAADDR6 +address_a[6] => ram_block1a99.PORTAADDR6 +address_a[6] => ram_block1a100.PORTAADDR6 +address_a[6] => ram_block1a101.PORTAADDR6 +address_a[6] => ram_block1a102.PORTAADDR6 +address_a[6] => ram_block1a103.PORTAADDR6 +address_a[6] => ram_block1a104.PORTAADDR6 +address_a[6] => ram_block1a105.PORTAADDR6 +address_a[6] => ram_block1a106.PORTAADDR6 +address_a[6] => ram_block1a107.PORTAADDR6 +address_a[6] => ram_block1a108.PORTAADDR6 +address_a[6] => ram_block1a109.PORTAADDR6 +address_a[6] => ram_block1a110.PORTAADDR6 +address_a[6] => ram_block1a111.PORTAADDR6 +address_a[6] => ram_block1a112.PORTAADDR6 +address_a[6] => ram_block1a113.PORTAADDR6 +address_a[6] => ram_block1a114.PORTAADDR6 +address_a[6] => ram_block1a115.PORTAADDR6 +address_a[6] => ram_block1a116.PORTAADDR6 +address_a[6] => ram_block1a117.PORTAADDR6 +address_a[6] => ram_block1a118.PORTAADDR6 +address_a[6] => ram_block1a119.PORTAADDR6 +address_a[6] => ram_block1a120.PORTAADDR6 +address_a[6] => ram_block1a121.PORTAADDR6 +address_a[6] => ram_block1a122.PORTAADDR6 +address_a[6] => ram_block1a123.PORTAADDR6 +address_a[6] => ram_block1a124.PORTAADDR6 +address_a[6] => ram_block1a125.PORTAADDR6 +address_a[6] => ram_block1a126.PORTAADDR6 +address_a[6] => ram_block1a127.PORTAADDR6 +address_a[6] => ram_block1a128.PORTAADDR6 +address_a[6] => ram_block1a129.PORTAADDR6 +address_a[6] => ram_block1a130.PORTAADDR6 +address_a[6] => ram_block1a131.PORTAADDR6 +address_a[6] => ram_block1a132.PORTAADDR6 +address_a[6] => ram_block1a133.PORTAADDR6 +address_a[6] => ram_block1a134.PORTAADDR6 +address_a[6] => ram_block1a135.PORTAADDR6 +address_a[6] => ram_block1a136.PORTAADDR6 +address_a[6] => ram_block1a137.PORTAADDR6 +address_a[6] => ram_block1a138.PORTAADDR6 +address_a[6] => ram_block1a139.PORTAADDR6 +address_a[6] => ram_block1a140.PORTAADDR6 +address_a[6] => ram_block1a141.PORTAADDR6 +address_a[6] => ram_block1a142.PORTAADDR6 +address_a[6] => ram_block1a143.PORTAADDR6 +address_a[6] => ram_block1a144.PORTAADDR6 +address_a[6] => ram_block1a145.PORTAADDR6 +address_a[6] => ram_block1a146.PORTAADDR6 +address_a[6] => ram_block1a147.PORTAADDR6 +address_a[6] => ram_block1a148.PORTAADDR6 +address_a[6] => ram_block1a149.PORTAADDR6 +address_a[6] => ram_block1a150.PORTAADDR6 +address_a[6] => ram_block1a151.PORTAADDR6 +address_a[6] => ram_block1a152.PORTAADDR6 +address_a[6] => ram_block1a153.PORTAADDR6 +address_a[6] => ram_block1a154.PORTAADDR6 +address_a[6] => ram_block1a155.PORTAADDR6 +address_a[6] => ram_block1a156.PORTAADDR6 +address_a[6] => ram_block1a157.PORTAADDR6 +address_a[6] => ram_block1a158.PORTAADDR6 +address_a[6] => ram_block1a159.PORTAADDR6 +address_a[6] => ram_block1a160.PORTAADDR6 +address_a[6] => ram_block1a161.PORTAADDR6 +address_a[6] => ram_block1a162.PORTAADDR6 +address_a[6] => ram_block1a163.PORTAADDR6 +address_a[6] => ram_block1a164.PORTAADDR6 +address_a[6] => ram_block1a165.PORTAADDR6 +address_a[6] => ram_block1a166.PORTAADDR6 +address_a[6] => ram_block1a167.PORTAADDR6 +address_a[6] => ram_block1a168.PORTAADDR6 +address_a[6] => ram_block1a169.PORTAADDR6 +address_a[6] => ram_block1a170.PORTAADDR6 +address_a[6] => ram_block1a171.PORTAADDR6 +address_a[6] => ram_block1a172.PORTAADDR6 +address_a[6] => ram_block1a173.PORTAADDR6 +address_a[6] => ram_block1a174.PORTAADDR6 +address_a[6] => ram_block1a175.PORTAADDR6 +address_a[6] => ram_block1a176.PORTAADDR6 +address_a[6] => ram_block1a177.PORTAADDR6 +address_a[6] => ram_block1a178.PORTAADDR6 +address_a[6] => ram_block1a179.PORTAADDR6 +address_a[6] => ram_block1a180.PORTAADDR6 +address_a[6] => ram_block1a181.PORTAADDR6 +address_a[6] => ram_block1a182.PORTAADDR6 +address_a[6] => ram_block1a183.PORTAADDR6 +address_a[6] => ram_block1a184.PORTAADDR6 +address_a[6] => ram_block1a185.PORTAADDR6 +address_a[6] => ram_block1a186.PORTAADDR6 +address_a[6] => ram_block1a187.PORTAADDR6 +address_a[6] => ram_block1a188.PORTAADDR6 +address_a[6] => ram_block1a189.PORTAADDR6 +address_a[6] => ram_block1a190.PORTAADDR6 +address_a[6] => ram_block1a191.PORTAADDR6 +address_a[6] => ram_block1a192.PORTAADDR6 +address_a[6] => ram_block1a193.PORTAADDR6 +address_a[6] => ram_block1a194.PORTAADDR6 +address_a[6] => ram_block1a195.PORTAADDR6 +address_a[6] => ram_block1a196.PORTAADDR6 +address_a[6] => ram_block1a197.PORTAADDR6 +address_a[6] => ram_block1a198.PORTAADDR6 +address_a[6] => ram_block1a199.PORTAADDR6 +address_a[6] => ram_block1a200.PORTAADDR6 +address_a[6] => ram_block1a201.PORTAADDR6 +address_a[6] => ram_block1a202.PORTAADDR6 +address_a[6] => ram_block1a203.PORTAADDR6 +address_a[6] => ram_block1a204.PORTAADDR6 +address_a[6] => ram_block1a205.PORTAADDR6 +address_a[6] => ram_block1a206.PORTAADDR6 +address_a[6] => ram_block1a207.PORTAADDR6 +address_a[6] => ram_block1a208.PORTAADDR6 +address_a[6] => ram_block1a209.PORTAADDR6 +address_a[6] => ram_block1a210.PORTAADDR6 +address_a[6] => ram_block1a211.PORTAADDR6 +address_a[6] => ram_block1a212.PORTAADDR6 +address_a[6] => ram_block1a213.PORTAADDR6 +address_a[6] => ram_block1a214.PORTAADDR6 +address_a[6] => ram_block1a215.PORTAADDR6 +address_a[6] => ram_block1a216.PORTAADDR6 +address_a[6] => ram_block1a217.PORTAADDR6 +address_a[6] => ram_block1a218.PORTAADDR6 +address_a[6] => ram_block1a219.PORTAADDR6 +address_a[6] => ram_block1a220.PORTAADDR6 +address_a[6] => ram_block1a221.PORTAADDR6 +address_a[6] => ram_block1a222.PORTAADDR6 +address_a[6] => ram_block1a223.PORTAADDR6 +address_a[7] => ram_block1a0.PORTAADDR7 +address_a[7] => ram_block1a1.PORTAADDR7 +address_a[7] => ram_block1a2.PORTAADDR7 +address_a[7] => ram_block1a3.PORTAADDR7 +address_a[7] => ram_block1a4.PORTAADDR7 +address_a[7] => ram_block1a5.PORTAADDR7 +address_a[7] => ram_block1a6.PORTAADDR7 +address_a[7] => ram_block1a7.PORTAADDR7 +address_a[7] => ram_block1a8.PORTAADDR7 +address_a[7] => ram_block1a9.PORTAADDR7 +address_a[7] => ram_block1a10.PORTAADDR7 +address_a[7] => ram_block1a11.PORTAADDR7 +address_a[7] => ram_block1a12.PORTAADDR7 +address_a[7] => ram_block1a13.PORTAADDR7 +address_a[7] => ram_block1a14.PORTAADDR7 +address_a[7] => ram_block1a15.PORTAADDR7 +address_a[7] => ram_block1a16.PORTAADDR7 +address_a[7] => ram_block1a17.PORTAADDR7 +address_a[7] => ram_block1a18.PORTAADDR7 +address_a[7] => ram_block1a19.PORTAADDR7 +address_a[7] => ram_block1a20.PORTAADDR7 +address_a[7] => ram_block1a21.PORTAADDR7 +address_a[7] => ram_block1a22.PORTAADDR7 +address_a[7] => ram_block1a23.PORTAADDR7 +address_a[7] => ram_block1a24.PORTAADDR7 +address_a[7] => ram_block1a25.PORTAADDR7 +address_a[7] => ram_block1a26.PORTAADDR7 +address_a[7] => ram_block1a27.PORTAADDR7 +address_a[7] => ram_block1a28.PORTAADDR7 +address_a[7] => ram_block1a29.PORTAADDR7 +address_a[7] => ram_block1a30.PORTAADDR7 +address_a[7] => ram_block1a31.PORTAADDR7 +address_a[7] => ram_block1a32.PORTAADDR7 +address_a[7] => ram_block1a33.PORTAADDR7 +address_a[7] => ram_block1a34.PORTAADDR7 +address_a[7] => ram_block1a35.PORTAADDR7 +address_a[7] => ram_block1a36.PORTAADDR7 +address_a[7] => ram_block1a37.PORTAADDR7 +address_a[7] => ram_block1a38.PORTAADDR7 +address_a[7] => ram_block1a39.PORTAADDR7 +address_a[7] => ram_block1a40.PORTAADDR7 +address_a[7] => ram_block1a41.PORTAADDR7 +address_a[7] => ram_block1a42.PORTAADDR7 +address_a[7] => ram_block1a43.PORTAADDR7 +address_a[7] => ram_block1a44.PORTAADDR7 +address_a[7] => ram_block1a45.PORTAADDR7 +address_a[7] => ram_block1a46.PORTAADDR7 +address_a[7] => ram_block1a47.PORTAADDR7 +address_a[7] => ram_block1a48.PORTAADDR7 +address_a[7] => ram_block1a49.PORTAADDR7 +address_a[7] => ram_block1a50.PORTAADDR7 +address_a[7] => ram_block1a51.PORTAADDR7 +address_a[7] => ram_block1a52.PORTAADDR7 +address_a[7] => ram_block1a53.PORTAADDR7 +address_a[7] => ram_block1a54.PORTAADDR7 +address_a[7] => ram_block1a55.PORTAADDR7 +address_a[7] => ram_block1a56.PORTAADDR7 +address_a[7] => ram_block1a57.PORTAADDR7 +address_a[7] => ram_block1a58.PORTAADDR7 +address_a[7] => ram_block1a59.PORTAADDR7 +address_a[7] => ram_block1a60.PORTAADDR7 +address_a[7] => ram_block1a61.PORTAADDR7 +address_a[7] => ram_block1a62.PORTAADDR7 +address_a[7] => ram_block1a63.PORTAADDR7 +address_a[7] => ram_block1a64.PORTAADDR7 +address_a[7] => ram_block1a65.PORTAADDR7 +address_a[7] => ram_block1a66.PORTAADDR7 +address_a[7] => ram_block1a67.PORTAADDR7 +address_a[7] => ram_block1a68.PORTAADDR7 +address_a[7] => ram_block1a69.PORTAADDR7 +address_a[7] => ram_block1a70.PORTAADDR7 +address_a[7] => ram_block1a71.PORTAADDR7 +address_a[7] => ram_block1a72.PORTAADDR7 +address_a[7] => ram_block1a73.PORTAADDR7 +address_a[7] => ram_block1a74.PORTAADDR7 +address_a[7] => ram_block1a75.PORTAADDR7 +address_a[7] => ram_block1a76.PORTAADDR7 +address_a[7] => ram_block1a77.PORTAADDR7 +address_a[7] => ram_block1a78.PORTAADDR7 +address_a[7] => ram_block1a79.PORTAADDR7 +address_a[7] => ram_block1a80.PORTAADDR7 +address_a[7] => ram_block1a81.PORTAADDR7 +address_a[7] => ram_block1a82.PORTAADDR7 +address_a[7] => ram_block1a83.PORTAADDR7 +address_a[7] => ram_block1a84.PORTAADDR7 +address_a[7] => ram_block1a85.PORTAADDR7 +address_a[7] => ram_block1a86.PORTAADDR7 +address_a[7] => ram_block1a87.PORTAADDR7 +address_a[7] => ram_block1a88.PORTAADDR7 +address_a[7] => ram_block1a89.PORTAADDR7 +address_a[7] => ram_block1a90.PORTAADDR7 +address_a[7] => ram_block1a91.PORTAADDR7 +address_a[7] => ram_block1a92.PORTAADDR7 +address_a[7] => ram_block1a93.PORTAADDR7 +address_a[7] => ram_block1a94.PORTAADDR7 +address_a[7] => ram_block1a95.PORTAADDR7 +address_a[7] => ram_block1a96.PORTAADDR7 +address_a[7] => ram_block1a97.PORTAADDR7 +address_a[7] => ram_block1a98.PORTAADDR7 +address_a[7] => ram_block1a99.PORTAADDR7 +address_a[7] => ram_block1a100.PORTAADDR7 +address_a[7] => ram_block1a101.PORTAADDR7 +address_a[7] => ram_block1a102.PORTAADDR7 +address_a[7] => ram_block1a103.PORTAADDR7 +address_a[7] => ram_block1a104.PORTAADDR7 +address_a[7] => ram_block1a105.PORTAADDR7 +address_a[7] => ram_block1a106.PORTAADDR7 +address_a[7] => ram_block1a107.PORTAADDR7 +address_a[7] => ram_block1a108.PORTAADDR7 +address_a[7] => ram_block1a109.PORTAADDR7 +address_a[7] => ram_block1a110.PORTAADDR7 +address_a[7] => ram_block1a111.PORTAADDR7 +address_a[7] => ram_block1a112.PORTAADDR7 +address_a[7] => ram_block1a113.PORTAADDR7 +address_a[7] => ram_block1a114.PORTAADDR7 +address_a[7] => ram_block1a115.PORTAADDR7 +address_a[7] => ram_block1a116.PORTAADDR7 +address_a[7] => ram_block1a117.PORTAADDR7 +address_a[7] => ram_block1a118.PORTAADDR7 +address_a[7] => ram_block1a119.PORTAADDR7 +address_a[7] => ram_block1a120.PORTAADDR7 +address_a[7] => ram_block1a121.PORTAADDR7 +address_a[7] => ram_block1a122.PORTAADDR7 +address_a[7] => ram_block1a123.PORTAADDR7 +address_a[7] => ram_block1a124.PORTAADDR7 +address_a[7] => ram_block1a125.PORTAADDR7 +address_a[7] => ram_block1a126.PORTAADDR7 +address_a[7] => ram_block1a127.PORTAADDR7 +address_a[7] => ram_block1a128.PORTAADDR7 +address_a[7] => ram_block1a129.PORTAADDR7 +address_a[7] => ram_block1a130.PORTAADDR7 +address_a[7] => ram_block1a131.PORTAADDR7 +address_a[7] => ram_block1a132.PORTAADDR7 +address_a[7] => ram_block1a133.PORTAADDR7 +address_a[7] => ram_block1a134.PORTAADDR7 +address_a[7] => ram_block1a135.PORTAADDR7 +address_a[7] => ram_block1a136.PORTAADDR7 +address_a[7] => ram_block1a137.PORTAADDR7 +address_a[7] => ram_block1a138.PORTAADDR7 +address_a[7] => ram_block1a139.PORTAADDR7 +address_a[7] => ram_block1a140.PORTAADDR7 +address_a[7] => ram_block1a141.PORTAADDR7 +address_a[7] => ram_block1a142.PORTAADDR7 +address_a[7] => ram_block1a143.PORTAADDR7 +address_a[7] => ram_block1a144.PORTAADDR7 +address_a[7] => ram_block1a145.PORTAADDR7 +address_a[7] => ram_block1a146.PORTAADDR7 +address_a[7] => ram_block1a147.PORTAADDR7 +address_a[7] => ram_block1a148.PORTAADDR7 +address_a[7] => ram_block1a149.PORTAADDR7 +address_a[7] => ram_block1a150.PORTAADDR7 +address_a[7] => ram_block1a151.PORTAADDR7 +address_a[7] => ram_block1a152.PORTAADDR7 +address_a[7] => ram_block1a153.PORTAADDR7 +address_a[7] => ram_block1a154.PORTAADDR7 +address_a[7] => ram_block1a155.PORTAADDR7 +address_a[7] => ram_block1a156.PORTAADDR7 +address_a[7] => ram_block1a157.PORTAADDR7 +address_a[7] => ram_block1a158.PORTAADDR7 +address_a[7] => ram_block1a159.PORTAADDR7 +address_a[7] => ram_block1a160.PORTAADDR7 +address_a[7] => ram_block1a161.PORTAADDR7 +address_a[7] => ram_block1a162.PORTAADDR7 +address_a[7] => ram_block1a163.PORTAADDR7 +address_a[7] => ram_block1a164.PORTAADDR7 +address_a[7] => ram_block1a165.PORTAADDR7 +address_a[7] => ram_block1a166.PORTAADDR7 +address_a[7] => ram_block1a167.PORTAADDR7 +address_a[7] => ram_block1a168.PORTAADDR7 +address_a[7] => ram_block1a169.PORTAADDR7 +address_a[7] => ram_block1a170.PORTAADDR7 +address_a[7] => ram_block1a171.PORTAADDR7 +address_a[7] => ram_block1a172.PORTAADDR7 +address_a[7] => ram_block1a173.PORTAADDR7 +address_a[7] => ram_block1a174.PORTAADDR7 +address_a[7] => ram_block1a175.PORTAADDR7 +address_a[7] => ram_block1a176.PORTAADDR7 +address_a[7] => ram_block1a177.PORTAADDR7 +address_a[7] => ram_block1a178.PORTAADDR7 +address_a[7] => ram_block1a179.PORTAADDR7 +address_a[7] => ram_block1a180.PORTAADDR7 +address_a[7] => ram_block1a181.PORTAADDR7 +address_a[7] => ram_block1a182.PORTAADDR7 +address_a[7] => ram_block1a183.PORTAADDR7 +address_a[7] => ram_block1a184.PORTAADDR7 +address_a[7] => ram_block1a185.PORTAADDR7 +address_a[7] => ram_block1a186.PORTAADDR7 +address_a[7] => ram_block1a187.PORTAADDR7 +address_a[7] => ram_block1a188.PORTAADDR7 +address_a[7] => ram_block1a189.PORTAADDR7 +address_a[7] => ram_block1a190.PORTAADDR7 +address_a[7] => ram_block1a191.PORTAADDR7 +address_a[7] => ram_block1a192.PORTAADDR7 +address_a[7] => ram_block1a193.PORTAADDR7 +address_a[7] => ram_block1a194.PORTAADDR7 +address_a[7] => ram_block1a195.PORTAADDR7 +address_a[7] => ram_block1a196.PORTAADDR7 +address_a[7] => ram_block1a197.PORTAADDR7 +address_a[7] => ram_block1a198.PORTAADDR7 +address_a[7] => ram_block1a199.PORTAADDR7 +address_a[7] => ram_block1a200.PORTAADDR7 +address_a[7] => ram_block1a201.PORTAADDR7 +address_a[7] => ram_block1a202.PORTAADDR7 +address_a[7] => ram_block1a203.PORTAADDR7 +address_a[7] => ram_block1a204.PORTAADDR7 +address_a[7] => ram_block1a205.PORTAADDR7 +address_a[7] => ram_block1a206.PORTAADDR7 +address_a[7] => ram_block1a207.PORTAADDR7 +address_a[7] => ram_block1a208.PORTAADDR7 +address_a[7] => ram_block1a209.PORTAADDR7 +address_a[7] => ram_block1a210.PORTAADDR7 +address_a[7] => ram_block1a211.PORTAADDR7 +address_a[7] => ram_block1a212.PORTAADDR7 +address_a[7] => ram_block1a213.PORTAADDR7 +address_a[7] => ram_block1a214.PORTAADDR7 +address_a[7] => ram_block1a215.PORTAADDR7 +address_a[7] => ram_block1a216.PORTAADDR7 +address_a[7] => ram_block1a217.PORTAADDR7 +address_a[7] => ram_block1a218.PORTAADDR7 +address_a[7] => ram_block1a219.PORTAADDR7 +address_a[7] => ram_block1a220.PORTAADDR7 +address_a[7] => ram_block1a221.PORTAADDR7 +address_a[7] => ram_block1a222.PORTAADDR7 +address_a[7] => ram_block1a223.PORTAADDR7 +address_a[8] => ram_block1a0.PORTAADDR8 +address_a[8] => ram_block1a1.PORTAADDR8 +address_a[8] => ram_block1a2.PORTAADDR8 +address_a[8] => ram_block1a3.PORTAADDR8 +address_a[8] => ram_block1a4.PORTAADDR8 +address_a[8] => ram_block1a5.PORTAADDR8 +address_a[8] => ram_block1a6.PORTAADDR8 +address_a[8] => ram_block1a7.PORTAADDR8 +address_a[8] => ram_block1a8.PORTAADDR8 +address_a[8] => ram_block1a9.PORTAADDR8 +address_a[8] => ram_block1a10.PORTAADDR8 +address_a[8] => ram_block1a11.PORTAADDR8 +address_a[8] => ram_block1a12.PORTAADDR8 +address_a[8] => ram_block1a13.PORTAADDR8 +address_a[8] => ram_block1a14.PORTAADDR8 +address_a[8] => ram_block1a15.PORTAADDR8 +address_a[8] => ram_block1a16.PORTAADDR8 +address_a[8] => ram_block1a17.PORTAADDR8 +address_a[8] => ram_block1a18.PORTAADDR8 +address_a[8] => ram_block1a19.PORTAADDR8 +address_a[8] => ram_block1a20.PORTAADDR8 +address_a[8] => ram_block1a21.PORTAADDR8 +address_a[8] => ram_block1a22.PORTAADDR8 +address_a[8] => ram_block1a23.PORTAADDR8 +address_a[8] => ram_block1a24.PORTAADDR8 +address_a[8] => ram_block1a25.PORTAADDR8 +address_a[8] => ram_block1a26.PORTAADDR8 +address_a[8] => ram_block1a27.PORTAADDR8 +address_a[8] => ram_block1a28.PORTAADDR8 +address_a[8] => ram_block1a29.PORTAADDR8 +address_a[8] => ram_block1a30.PORTAADDR8 +address_a[8] => ram_block1a31.PORTAADDR8 +address_a[8] => ram_block1a32.PORTAADDR8 +address_a[8] => ram_block1a33.PORTAADDR8 +address_a[8] => ram_block1a34.PORTAADDR8 +address_a[8] => ram_block1a35.PORTAADDR8 +address_a[8] => ram_block1a36.PORTAADDR8 +address_a[8] => ram_block1a37.PORTAADDR8 +address_a[8] => ram_block1a38.PORTAADDR8 +address_a[8] => ram_block1a39.PORTAADDR8 +address_a[8] => ram_block1a40.PORTAADDR8 +address_a[8] => ram_block1a41.PORTAADDR8 +address_a[8] => ram_block1a42.PORTAADDR8 +address_a[8] => ram_block1a43.PORTAADDR8 +address_a[8] => ram_block1a44.PORTAADDR8 +address_a[8] => ram_block1a45.PORTAADDR8 +address_a[8] => ram_block1a46.PORTAADDR8 +address_a[8] => ram_block1a47.PORTAADDR8 +address_a[8] => ram_block1a48.PORTAADDR8 +address_a[8] => ram_block1a49.PORTAADDR8 +address_a[8] => ram_block1a50.PORTAADDR8 +address_a[8] => ram_block1a51.PORTAADDR8 +address_a[8] => ram_block1a52.PORTAADDR8 +address_a[8] => ram_block1a53.PORTAADDR8 +address_a[8] => ram_block1a54.PORTAADDR8 +address_a[8] => ram_block1a55.PORTAADDR8 +address_a[8] => ram_block1a56.PORTAADDR8 +address_a[8] => ram_block1a57.PORTAADDR8 +address_a[8] => ram_block1a58.PORTAADDR8 +address_a[8] => ram_block1a59.PORTAADDR8 +address_a[8] => ram_block1a60.PORTAADDR8 +address_a[8] => ram_block1a61.PORTAADDR8 +address_a[8] => ram_block1a62.PORTAADDR8 +address_a[8] => ram_block1a63.PORTAADDR8 +address_a[8] => ram_block1a64.PORTAADDR8 +address_a[8] => ram_block1a65.PORTAADDR8 +address_a[8] => ram_block1a66.PORTAADDR8 +address_a[8] => ram_block1a67.PORTAADDR8 +address_a[8] => ram_block1a68.PORTAADDR8 +address_a[8] => ram_block1a69.PORTAADDR8 +address_a[8] => ram_block1a70.PORTAADDR8 +address_a[8] => ram_block1a71.PORTAADDR8 +address_a[8] => ram_block1a72.PORTAADDR8 +address_a[8] => ram_block1a73.PORTAADDR8 +address_a[8] => ram_block1a74.PORTAADDR8 +address_a[8] => ram_block1a75.PORTAADDR8 +address_a[8] => ram_block1a76.PORTAADDR8 +address_a[8] => ram_block1a77.PORTAADDR8 +address_a[8] => ram_block1a78.PORTAADDR8 +address_a[8] => ram_block1a79.PORTAADDR8 +address_a[8] => ram_block1a80.PORTAADDR8 +address_a[8] => ram_block1a81.PORTAADDR8 +address_a[8] => ram_block1a82.PORTAADDR8 +address_a[8] => ram_block1a83.PORTAADDR8 +address_a[8] => ram_block1a84.PORTAADDR8 +address_a[8] => ram_block1a85.PORTAADDR8 +address_a[8] => ram_block1a86.PORTAADDR8 +address_a[8] => ram_block1a87.PORTAADDR8 +address_a[8] => ram_block1a88.PORTAADDR8 +address_a[8] => ram_block1a89.PORTAADDR8 +address_a[8] => ram_block1a90.PORTAADDR8 +address_a[8] => ram_block1a91.PORTAADDR8 +address_a[8] => ram_block1a92.PORTAADDR8 +address_a[8] => ram_block1a93.PORTAADDR8 +address_a[8] => ram_block1a94.PORTAADDR8 +address_a[8] => ram_block1a95.PORTAADDR8 +address_a[8] => ram_block1a96.PORTAADDR8 +address_a[8] => ram_block1a97.PORTAADDR8 +address_a[8] => ram_block1a98.PORTAADDR8 +address_a[8] => ram_block1a99.PORTAADDR8 +address_a[8] => ram_block1a100.PORTAADDR8 +address_a[8] => ram_block1a101.PORTAADDR8 +address_a[8] => ram_block1a102.PORTAADDR8 +address_a[8] => ram_block1a103.PORTAADDR8 +address_a[8] => ram_block1a104.PORTAADDR8 +address_a[8] => ram_block1a105.PORTAADDR8 +address_a[8] => ram_block1a106.PORTAADDR8 +address_a[8] => ram_block1a107.PORTAADDR8 +address_a[8] => ram_block1a108.PORTAADDR8 +address_a[8] => ram_block1a109.PORTAADDR8 +address_a[8] => ram_block1a110.PORTAADDR8 +address_a[8] => ram_block1a111.PORTAADDR8 +address_a[8] => ram_block1a112.PORTAADDR8 +address_a[8] => ram_block1a113.PORTAADDR8 +address_a[8] => ram_block1a114.PORTAADDR8 +address_a[8] => ram_block1a115.PORTAADDR8 +address_a[8] => ram_block1a116.PORTAADDR8 +address_a[8] => ram_block1a117.PORTAADDR8 +address_a[8] => ram_block1a118.PORTAADDR8 +address_a[8] => ram_block1a119.PORTAADDR8 +address_a[8] => ram_block1a120.PORTAADDR8 +address_a[8] => ram_block1a121.PORTAADDR8 +address_a[8] => ram_block1a122.PORTAADDR8 +address_a[8] => ram_block1a123.PORTAADDR8 +address_a[8] => ram_block1a124.PORTAADDR8 +address_a[8] => ram_block1a125.PORTAADDR8 +address_a[8] => ram_block1a126.PORTAADDR8 +address_a[8] => ram_block1a127.PORTAADDR8 +address_a[8] => ram_block1a128.PORTAADDR8 +address_a[8] => ram_block1a129.PORTAADDR8 +address_a[8] => ram_block1a130.PORTAADDR8 +address_a[8] => ram_block1a131.PORTAADDR8 +address_a[8] => ram_block1a132.PORTAADDR8 +address_a[8] => ram_block1a133.PORTAADDR8 +address_a[8] => ram_block1a134.PORTAADDR8 +address_a[8] => ram_block1a135.PORTAADDR8 +address_a[8] => ram_block1a136.PORTAADDR8 +address_a[8] => ram_block1a137.PORTAADDR8 +address_a[8] => ram_block1a138.PORTAADDR8 +address_a[8] => ram_block1a139.PORTAADDR8 +address_a[8] => ram_block1a140.PORTAADDR8 +address_a[8] => ram_block1a141.PORTAADDR8 +address_a[8] => ram_block1a142.PORTAADDR8 +address_a[8] => ram_block1a143.PORTAADDR8 +address_a[8] => ram_block1a144.PORTAADDR8 +address_a[8] => ram_block1a145.PORTAADDR8 +address_a[8] => ram_block1a146.PORTAADDR8 +address_a[8] => ram_block1a147.PORTAADDR8 +address_a[8] => ram_block1a148.PORTAADDR8 +address_a[8] => ram_block1a149.PORTAADDR8 +address_a[8] => ram_block1a150.PORTAADDR8 +address_a[8] => ram_block1a151.PORTAADDR8 +address_a[8] => ram_block1a152.PORTAADDR8 +address_a[8] => ram_block1a153.PORTAADDR8 +address_a[8] => ram_block1a154.PORTAADDR8 +address_a[8] => ram_block1a155.PORTAADDR8 +address_a[8] => ram_block1a156.PORTAADDR8 +address_a[8] => ram_block1a157.PORTAADDR8 +address_a[8] => ram_block1a158.PORTAADDR8 +address_a[8] => ram_block1a159.PORTAADDR8 +address_a[8] => ram_block1a160.PORTAADDR8 +address_a[8] => ram_block1a161.PORTAADDR8 +address_a[8] => ram_block1a162.PORTAADDR8 +address_a[8] => ram_block1a163.PORTAADDR8 +address_a[8] => ram_block1a164.PORTAADDR8 +address_a[8] => ram_block1a165.PORTAADDR8 +address_a[8] => ram_block1a166.PORTAADDR8 +address_a[8] => ram_block1a167.PORTAADDR8 +address_a[8] => ram_block1a168.PORTAADDR8 +address_a[8] => ram_block1a169.PORTAADDR8 +address_a[8] => ram_block1a170.PORTAADDR8 +address_a[8] => ram_block1a171.PORTAADDR8 +address_a[8] => ram_block1a172.PORTAADDR8 +address_a[8] => ram_block1a173.PORTAADDR8 +address_a[8] => ram_block1a174.PORTAADDR8 +address_a[8] => ram_block1a175.PORTAADDR8 +address_a[8] => ram_block1a176.PORTAADDR8 +address_a[8] => ram_block1a177.PORTAADDR8 +address_a[8] => ram_block1a178.PORTAADDR8 +address_a[8] => ram_block1a179.PORTAADDR8 +address_a[8] => ram_block1a180.PORTAADDR8 +address_a[8] => ram_block1a181.PORTAADDR8 +address_a[8] => ram_block1a182.PORTAADDR8 +address_a[8] => ram_block1a183.PORTAADDR8 +address_a[8] => ram_block1a184.PORTAADDR8 +address_a[8] => ram_block1a185.PORTAADDR8 +address_a[8] => ram_block1a186.PORTAADDR8 +address_a[8] => ram_block1a187.PORTAADDR8 +address_a[8] => ram_block1a188.PORTAADDR8 +address_a[8] => ram_block1a189.PORTAADDR8 +address_a[8] => ram_block1a190.PORTAADDR8 +address_a[8] => ram_block1a191.PORTAADDR8 +address_a[8] => ram_block1a192.PORTAADDR8 +address_a[8] => ram_block1a193.PORTAADDR8 +address_a[8] => ram_block1a194.PORTAADDR8 +address_a[8] => ram_block1a195.PORTAADDR8 +address_a[8] => ram_block1a196.PORTAADDR8 +address_a[8] => ram_block1a197.PORTAADDR8 +address_a[8] => ram_block1a198.PORTAADDR8 +address_a[8] => ram_block1a199.PORTAADDR8 +address_a[8] => ram_block1a200.PORTAADDR8 +address_a[8] => ram_block1a201.PORTAADDR8 +address_a[8] => ram_block1a202.PORTAADDR8 +address_a[8] => ram_block1a203.PORTAADDR8 +address_a[8] => ram_block1a204.PORTAADDR8 +address_a[8] => ram_block1a205.PORTAADDR8 +address_a[8] => ram_block1a206.PORTAADDR8 +address_a[8] => ram_block1a207.PORTAADDR8 +address_a[8] => ram_block1a208.PORTAADDR8 +address_a[8] => ram_block1a209.PORTAADDR8 +address_a[8] => ram_block1a210.PORTAADDR8 +address_a[8] => ram_block1a211.PORTAADDR8 +address_a[8] => ram_block1a212.PORTAADDR8 +address_a[8] => ram_block1a213.PORTAADDR8 +address_a[8] => ram_block1a214.PORTAADDR8 +address_a[8] => ram_block1a215.PORTAADDR8 +address_a[8] => ram_block1a216.PORTAADDR8 +address_a[8] => ram_block1a217.PORTAADDR8 +address_a[8] => ram_block1a218.PORTAADDR8 +address_a[8] => ram_block1a219.PORTAADDR8 +address_a[8] => ram_block1a220.PORTAADDR8 +address_a[8] => ram_block1a221.PORTAADDR8 +address_a[8] => ram_block1a222.PORTAADDR8 +address_a[8] => ram_block1a223.PORTAADDR8 +address_a[9] => ram_block1a0.PORTAADDR9 +address_a[9] => ram_block1a1.PORTAADDR9 +address_a[9] => ram_block1a2.PORTAADDR9 +address_a[9] => ram_block1a3.PORTAADDR9 +address_a[9] => ram_block1a4.PORTAADDR9 +address_a[9] => ram_block1a5.PORTAADDR9 +address_a[9] => ram_block1a6.PORTAADDR9 +address_a[9] => ram_block1a7.PORTAADDR9 +address_a[9] => ram_block1a8.PORTAADDR9 +address_a[9] => ram_block1a9.PORTAADDR9 +address_a[9] => ram_block1a10.PORTAADDR9 +address_a[9] => ram_block1a11.PORTAADDR9 +address_a[9] => ram_block1a12.PORTAADDR9 +address_a[9] => ram_block1a13.PORTAADDR9 +address_a[9] => ram_block1a14.PORTAADDR9 +address_a[9] => ram_block1a15.PORTAADDR9 +address_a[9] => ram_block1a16.PORTAADDR9 +address_a[9] => ram_block1a17.PORTAADDR9 +address_a[9] => ram_block1a18.PORTAADDR9 +address_a[9] => ram_block1a19.PORTAADDR9 +address_a[9] => ram_block1a20.PORTAADDR9 +address_a[9] => ram_block1a21.PORTAADDR9 +address_a[9] => ram_block1a22.PORTAADDR9 +address_a[9] => ram_block1a23.PORTAADDR9 +address_a[9] => ram_block1a24.PORTAADDR9 +address_a[9] => ram_block1a25.PORTAADDR9 +address_a[9] => ram_block1a26.PORTAADDR9 +address_a[9] => ram_block1a27.PORTAADDR9 +address_a[9] => ram_block1a28.PORTAADDR9 +address_a[9] => ram_block1a29.PORTAADDR9 +address_a[9] => ram_block1a30.PORTAADDR9 +address_a[9] => ram_block1a31.PORTAADDR9 +address_a[9] => ram_block1a32.PORTAADDR9 +address_a[9] => ram_block1a33.PORTAADDR9 +address_a[9] => ram_block1a34.PORTAADDR9 +address_a[9] => ram_block1a35.PORTAADDR9 +address_a[9] => ram_block1a36.PORTAADDR9 +address_a[9] => ram_block1a37.PORTAADDR9 +address_a[9] => ram_block1a38.PORTAADDR9 +address_a[9] => ram_block1a39.PORTAADDR9 +address_a[9] => ram_block1a40.PORTAADDR9 +address_a[9] => ram_block1a41.PORTAADDR9 +address_a[9] => ram_block1a42.PORTAADDR9 +address_a[9] => ram_block1a43.PORTAADDR9 +address_a[9] => ram_block1a44.PORTAADDR9 +address_a[9] => ram_block1a45.PORTAADDR9 +address_a[9] => ram_block1a46.PORTAADDR9 +address_a[9] => ram_block1a47.PORTAADDR9 +address_a[9] => ram_block1a48.PORTAADDR9 +address_a[9] => ram_block1a49.PORTAADDR9 +address_a[9] => ram_block1a50.PORTAADDR9 +address_a[9] => ram_block1a51.PORTAADDR9 +address_a[9] => ram_block1a52.PORTAADDR9 +address_a[9] => ram_block1a53.PORTAADDR9 +address_a[9] => ram_block1a54.PORTAADDR9 +address_a[9] => ram_block1a55.PORTAADDR9 +address_a[9] => ram_block1a56.PORTAADDR9 +address_a[9] => ram_block1a57.PORTAADDR9 +address_a[9] => ram_block1a58.PORTAADDR9 +address_a[9] => ram_block1a59.PORTAADDR9 +address_a[9] => ram_block1a60.PORTAADDR9 +address_a[9] => ram_block1a61.PORTAADDR9 +address_a[9] => ram_block1a62.PORTAADDR9 +address_a[9] => ram_block1a63.PORTAADDR9 +address_a[9] => ram_block1a64.PORTAADDR9 +address_a[9] => ram_block1a65.PORTAADDR9 +address_a[9] => ram_block1a66.PORTAADDR9 +address_a[9] => ram_block1a67.PORTAADDR9 +address_a[9] => ram_block1a68.PORTAADDR9 +address_a[9] => ram_block1a69.PORTAADDR9 +address_a[9] => ram_block1a70.PORTAADDR9 +address_a[9] => ram_block1a71.PORTAADDR9 +address_a[9] => ram_block1a72.PORTAADDR9 +address_a[9] => ram_block1a73.PORTAADDR9 +address_a[9] => ram_block1a74.PORTAADDR9 +address_a[9] => ram_block1a75.PORTAADDR9 +address_a[9] => ram_block1a76.PORTAADDR9 +address_a[9] => ram_block1a77.PORTAADDR9 +address_a[9] => ram_block1a78.PORTAADDR9 +address_a[9] => ram_block1a79.PORTAADDR9 +address_a[9] => ram_block1a80.PORTAADDR9 +address_a[9] => ram_block1a81.PORTAADDR9 +address_a[9] => ram_block1a82.PORTAADDR9 +address_a[9] => ram_block1a83.PORTAADDR9 +address_a[9] => ram_block1a84.PORTAADDR9 +address_a[9] => ram_block1a85.PORTAADDR9 +address_a[9] => ram_block1a86.PORTAADDR9 +address_a[9] => ram_block1a87.PORTAADDR9 +address_a[9] => ram_block1a88.PORTAADDR9 +address_a[9] => ram_block1a89.PORTAADDR9 +address_a[9] => ram_block1a90.PORTAADDR9 +address_a[9] => ram_block1a91.PORTAADDR9 +address_a[9] => ram_block1a92.PORTAADDR9 +address_a[9] => ram_block1a93.PORTAADDR9 +address_a[9] => ram_block1a94.PORTAADDR9 +address_a[9] => ram_block1a95.PORTAADDR9 +address_a[9] => ram_block1a96.PORTAADDR9 +address_a[9] => ram_block1a97.PORTAADDR9 +address_a[9] => ram_block1a98.PORTAADDR9 +address_a[9] => ram_block1a99.PORTAADDR9 +address_a[9] => ram_block1a100.PORTAADDR9 +address_a[9] => ram_block1a101.PORTAADDR9 +address_a[9] => ram_block1a102.PORTAADDR9 +address_a[9] => ram_block1a103.PORTAADDR9 +address_a[9] => ram_block1a104.PORTAADDR9 +address_a[9] => ram_block1a105.PORTAADDR9 +address_a[9] => ram_block1a106.PORTAADDR9 +address_a[9] => ram_block1a107.PORTAADDR9 +address_a[9] => ram_block1a108.PORTAADDR9 +address_a[9] => ram_block1a109.PORTAADDR9 +address_a[9] => ram_block1a110.PORTAADDR9 +address_a[9] => ram_block1a111.PORTAADDR9 +address_a[9] => ram_block1a112.PORTAADDR9 +address_a[9] => ram_block1a113.PORTAADDR9 +address_a[9] => ram_block1a114.PORTAADDR9 +address_a[9] => ram_block1a115.PORTAADDR9 +address_a[9] => ram_block1a116.PORTAADDR9 +address_a[9] => ram_block1a117.PORTAADDR9 +address_a[9] => ram_block1a118.PORTAADDR9 +address_a[9] => ram_block1a119.PORTAADDR9 +address_a[9] => ram_block1a120.PORTAADDR9 +address_a[9] => ram_block1a121.PORTAADDR9 +address_a[9] => ram_block1a122.PORTAADDR9 +address_a[9] => ram_block1a123.PORTAADDR9 +address_a[9] => ram_block1a124.PORTAADDR9 +address_a[9] => ram_block1a125.PORTAADDR9 +address_a[9] => ram_block1a126.PORTAADDR9 +address_a[9] => ram_block1a127.PORTAADDR9 +address_a[9] => ram_block1a128.PORTAADDR9 +address_a[9] => ram_block1a129.PORTAADDR9 +address_a[9] => ram_block1a130.PORTAADDR9 +address_a[9] => ram_block1a131.PORTAADDR9 +address_a[9] => ram_block1a132.PORTAADDR9 +address_a[9] => ram_block1a133.PORTAADDR9 +address_a[9] => ram_block1a134.PORTAADDR9 +address_a[9] => ram_block1a135.PORTAADDR9 +address_a[9] => ram_block1a136.PORTAADDR9 +address_a[9] => ram_block1a137.PORTAADDR9 +address_a[9] => ram_block1a138.PORTAADDR9 +address_a[9] => ram_block1a139.PORTAADDR9 +address_a[9] => ram_block1a140.PORTAADDR9 +address_a[9] => ram_block1a141.PORTAADDR9 +address_a[9] => ram_block1a142.PORTAADDR9 +address_a[9] => ram_block1a143.PORTAADDR9 +address_a[9] => ram_block1a144.PORTAADDR9 +address_a[9] => ram_block1a145.PORTAADDR9 +address_a[9] => ram_block1a146.PORTAADDR9 +address_a[9] => ram_block1a147.PORTAADDR9 +address_a[9] => ram_block1a148.PORTAADDR9 +address_a[9] => ram_block1a149.PORTAADDR9 +address_a[9] => ram_block1a150.PORTAADDR9 +address_a[9] => ram_block1a151.PORTAADDR9 +address_a[9] => ram_block1a152.PORTAADDR9 +address_a[9] => ram_block1a153.PORTAADDR9 +address_a[9] => ram_block1a154.PORTAADDR9 +address_a[9] => ram_block1a155.PORTAADDR9 +address_a[9] => ram_block1a156.PORTAADDR9 +address_a[9] => ram_block1a157.PORTAADDR9 +address_a[9] => ram_block1a158.PORTAADDR9 +address_a[9] => ram_block1a159.PORTAADDR9 +address_a[9] => ram_block1a160.PORTAADDR9 +address_a[9] => ram_block1a161.PORTAADDR9 +address_a[9] => ram_block1a162.PORTAADDR9 +address_a[9] => ram_block1a163.PORTAADDR9 +address_a[9] => ram_block1a164.PORTAADDR9 +address_a[9] => ram_block1a165.PORTAADDR9 +address_a[9] => ram_block1a166.PORTAADDR9 +address_a[9] => ram_block1a167.PORTAADDR9 +address_a[9] => ram_block1a168.PORTAADDR9 +address_a[9] => ram_block1a169.PORTAADDR9 +address_a[9] => ram_block1a170.PORTAADDR9 +address_a[9] => ram_block1a171.PORTAADDR9 +address_a[9] => ram_block1a172.PORTAADDR9 +address_a[9] => ram_block1a173.PORTAADDR9 +address_a[9] => ram_block1a174.PORTAADDR9 +address_a[9] => ram_block1a175.PORTAADDR9 +address_a[9] => ram_block1a176.PORTAADDR9 +address_a[9] => ram_block1a177.PORTAADDR9 +address_a[9] => ram_block1a178.PORTAADDR9 +address_a[9] => ram_block1a179.PORTAADDR9 +address_a[9] => ram_block1a180.PORTAADDR9 +address_a[9] => ram_block1a181.PORTAADDR9 +address_a[9] => ram_block1a182.PORTAADDR9 +address_a[9] => ram_block1a183.PORTAADDR9 +address_a[9] => ram_block1a184.PORTAADDR9 +address_a[9] => ram_block1a185.PORTAADDR9 +address_a[9] => ram_block1a186.PORTAADDR9 +address_a[9] => ram_block1a187.PORTAADDR9 +address_a[9] => ram_block1a188.PORTAADDR9 +address_a[9] => ram_block1a189.PORTAADDR9 +address_a[9] => ram_block1a190.PORTAADDR9 +address_a[9] => ram_block1a191.PORTAADDR9 +address_a[9] => ram_block1a192.PORTAADDR9 +address_a[9] => ram_block1a193.PORTAADDR9 +address_a[9] => ram_block1a194.PORTAADDR9 +address_a[9] => ram_block1a195.PORTAADDR9 +address_a[9] => ram_block1a196.PORTAADDR9 +address_a[9] => ram_block1a197.PORTAADDR9 +address_a[9] => ram_block1a198.PORTAADDR9 +address_a[9] => ram_block1a199.PORTAADDR9 +address_a[9] => ram_block1a200.PORTAADDR9 +address_a[9] => ram_block1a201.PORTAADDR9 +address_a[9] => ram_block1a202.PORTAADDR9 +address_a[9] => ram_block1a203.PORTAADDR9 +address_a[9] => ram_block1a204.PORTAADDR9 +address_a[9] => ram_block1a205.PORTAADDR9 +address_a[9] => ram_block1a206.PORTAADDR9 +address_a[9] => ram_block1a207.PORTAADDR9 +address_a[9] => ram_block1a208.PORTAADDR9 +address_a[9] => ram_block1a209.PORTAADDR9 +address_a[9] => ram_block1a210.PORTAADDR9 +address_a[9] => ram_block1a211.PORTAADDR9 +address_a[9] => ram_block1a212.PORTAADDR9 +address_a[9] => ram_block1a213.PORTAADDR9 +address_a[9] => ram_block1a214.PORTAADDR9 +address_a[9] => ram_block1a215.PORTAADDR9 +address_a[9] => ram_block1a216.PORTAADDR9 +address_a[9] => ram_block1a217.PORTAADDR9 +address_a[9] => ram_block1a218.PORTAADDR9 +address_a[9] => ram_block1a219.PORTAADDR9 +address_a[9] => ram_block1a220.PORTAADDR9 +address_a[9] => ram_block1a221.PORTAADDR9 +address_a[9] => ram_block1a222.PORTAADDR9 +address_a[9] => ram_block1a223.PORTAADDR9 +address_a[10] => ram_block1a0.PORTAADDR10 +address_a[10] => ram_block1a1.PORTAADDR10 +address_a[10] => ram_block1a2.PORTAADDR10 +address_a[10] => ram_block1a3.PORTAADDR10 +address_a[10] => ram_block1a4.PORTAADDR10 +address_a[10] => ram_block1a5.PORTAADDR10 +address_a[10] => ram_block1a6.PORTAADDR10 +address_a[10] => ram_block1a7.PORTAADDR10 +address_a[10] => ram_block1a8.PORTAADDR10 +address_a[10] => ram_block1a9.PORTAADDR10 +address_a[10] => ram_block1a10.PORTAADDR10 +address_a[10] => ram_block1a11.PORTAADDR10 +address_a[10] => ram_block1a12.PORTAADDR10 +address_a[10] => ram_block1a13.PORTAADDR10 +address_a[10] => ram_block1a14.PORTAADDR10 +address_a[10] => ram_block1a15.PORTAADDR10 +address_a[10] => ram_block1a16.PORTAADDR10 +address_a[10] => ram_block1a17.PORTAADDR10 +address_a[10] => ram_block1a18.PORTAADDR10 +address_a[10] => ram_block1a19.PORTAADDR10 +address_a[10] => ram_block1a20.PORTAADDR10 +address_a[10] => ram_block1a21.PORTAADDR10 +address_a[10] => ram_block1a22.PORTAADDR10 +address_a[10] => ram_block1a23.PORTAADDR10 +address_a[10] => ram_block1a24.PORTAADDR10 +address_a[10] => ram_block1a25.PORTAADDR10 +address_a[10] => ram_block1a26.PORTAADDR10 +address_a[10] => ram_block1a27.PORTAADDR10 +address_a[10] => ram_block1a28.PORTAADDR10 +address_a[10] => ram_block1a29.PORTAADDR10 +address_a[10] => ram_block1a30.PORTAADDR10 +address_a[10] => ram_block1a31.PORTAADDR10 +address_a[10] => ram_block1a32.PORTAADDR10 +address_a[10] => ram_block1a33.PORTAADDR10 +address_a[10] => ram_block1a34.PORTAADDR10 +address_a[10] => ram_block1a35.PORTAADDR10 +address_a[10] => ram_block1a36.PORTAADDR10 +address_a[10] => ram_block1a37.PORTAADDR10 +address_a[10] => ram_block1a38.PORTAADDR10 +address_a[10] => ram_block1a39.PORTAADDR10 +address_a[10] => ram_block1a40.PORTAADDR10 +address_a[10] => ram_block1a41.PORTAADDR10 +address_a[10] => ram_block1a42.PORTAADDR10 +address_a[10] => ram_block1a43.PORTAADDR10 +address_a[10] => ram_block1a44.PORTAADDR10 +address_a[10] => ram_block1a45.PORTAADDR10 +address_a[10] => ram_block1a46.PORTAADDR10 +address_a[10] => ram_block1a47.PORTAADDR10 +address_a[10] => ram_block1a48.PORTAADDR10 +address_a[10] => ram_block1a49.PORTAADDR10 +address_a[10] => ram_block1a50.PORTAADDR10 +address_a[10] => ram_block1a51.PORTAADDR10 +address_a[10] => ram_block1a52.PORTAADDR10 +address_a[10] => ram_block1a53.PORTAADDR10 +address_a[10] => ram_block1a54.PORTAADDR10 +address_a[10] => ram_block1a55.PORTAADDR10 +address_a[10] => ram_block1a56.PORTAADDR10 +address_a[10] => ram_block1a57.PORTAADDR10 +address_a[10] => ram_block1a58.PORTAADDR10 +address_a[10] => ram_block1a59.PORTAADDR10 +address_a[10] => ram_block1a60.PORTAADDR10 +address_a[10] => ram_block1a61.PORTAADDR10 +address_a[10] => ram_block1a62.PORTAADDR10 +address_a[10] => ram_block1a63.PORTAADDR10 +address_a[10] => ram_block1a64.PORTAADDR10 +address_a[10] => ram_block1a65.PORTAADDR10 +address_a[10] => ram_block1a66.PORTAADDR10 +address_a[10] => ram_block1a67.PORTAADDR10 +address_a[10] => ram_block1a68.PORTAADDR10 +address_a[10] => ram_block1a69.PORTAADDR10 +address_a[10] => ram_block1a70.PORTAADDR10 +address_a[10] => ram_block1a71.PORTAADDR10 +address_a[10] => ram_block1a72.PORTAADDR10 +address_a[10] => ram_block1a73.PORTAADDR10 +address_a[10] => ram_block1a74.PORTAADDR10 +address_a[10] => ram_block1a75.PORTAADDR10 +address_a[10] => ram_block1a76.PORTAADDR10 +address_a[10] => ram_block1a77.PORTAADDR10 +address_a[10] => ram_block1a78.PORTAADDR10 +address_a[10] => ram_block1a79.PORTAADDR10 +address_a[10] => ram_block1a80.PORTAADDR10 +address_a[10] => ram_block1a81.PORTAADDR10 +address_a[10] => ram_block1a82.PORTAADDR10 +address_a[10] => ram_block1a83.PORTAADDR10 +address_a[10] => ram_block1a84.PORTAADDR10 +address_a[10] => ram_block1a85.PORTAADDR10 +address_a[10] => ram_block1a86.PORTAADDR10 +address_a[10] => ram_block1a87.PORTAADDR10 +address_a[10] => ram_block1a88.PORTAADDR10 +address_a[10] => ram_block1a89.PORTAADDR10 +address_a[10] => ram_block1a90.PORTAADDR10 +address_a[10] => ram_block1a91.PORTAADDR10 +address_a[10] => ram_block1a92.PORTAADDR10 +address_a[10] => ram_block1a93.PORTAADDR10 +address_a[10] => ram_block1a94.PORTAADDR10 +address_a[10] => ram_block1a95.PORTAADDR10 +address_a[10] => ram_block1a96.PORTAADDR10 +address_a[10] => ram_block1a97.PORTAADDR10 +address_a[10] => ram_block1a98.PORTAADDR10 +address_a[10] => ram_block1a99.PORTAADDR10 +address_a[10] => ram_block1a100.PORTAADDR10 +address_a[10] => ram_block1a101.PORTAADDR10 +address_a[10] => ram_block1a102.PORTAADDR10 +address_a[10] => ram_block1a103.PORTAADDR10 +address_a[10] => ram_block1a104.PORTAADDR10 +address_a[10] => ram_block1a105.PORTAADDR10 +address_a[10] => ram_block1a106.PORTAADDR10 +address_a[10] => ram_block1a107.PORTAADDR10 +address_a[10] => ram_block1a108.PORTAADDR10 +address_a[10] => ram_block1a109.PORTAADDR10 +address_a[10] => ram_block1a110.PORTAADDR10 +address_a[10] => ram_block1a111.PORTAADDR10 +address_a[10] => ram_block1a112.PORTAADDR10 +address_a[10] => ram_block1a113.PORTAADDR10 +address_a[10] => ram_block1a114.PORTAADDR10 +address_a[10] => ram_block1a115.PORTAADDR10 +address_a[10] => ram_block1a116.PORTAADDR10 +address_a[10] => ram_block1a117.PORTAADDR10 +address_a[10] => ram_block1a118.PORTAADDR10 +address_a[10] => ram_block1a119.PORTAADDR10 +address_a[10] => ram_block1a120.PORTAADDR10 +address_a[10] => ram_block1a121.PORTAADDR10 +address_a[10] => ram_block1a122.PORTAADDR10 +address_a[10] => ram_block1a123.PORTAADDR10 +address_a[10] => ram_block1a124.PORTAADDR10 +address_a[10] => ram_block1a125.PORTAADDR10 +address_a[10] => ram_block1a126.PORTAADDR10 +address_a[10] => ram_block1a127.PORTAADDR10 +address_a[10] => ram_block1a128.PORTAADDR10 +address_a[10] => ram_block1a129.PORTAADDR10 +address_a[10] => ram_block1a130.PORTAADDR10 +address_a[10] => ram_block1a131.PORTAADDR10 +address_a[10] => ram_block1a132.PORTAADDR10 +address_a[10] => ram_block1a133.PORTAADDR10 +address_a[10] => ram_block1a134.PORTAADDR10 +address_a[10] => ram_block1a135.PORTAADDR10 +address_a[10] => ram_block1a136.PORTAADDR10 +address_a[10] => ram_block1a137.PORTAADDR10 +address_a[10] => ram_block1a138.PORTAADDR10 +address_a[10] => ram_block1a139.PORTAADDR10 +address_a[10] => ram_block1a140.PORTAADDR10 +address_a[10] => ram_block1a141.PORTAADDR10 +address_a[10] => ram_block1a142.PORTAADDR10 +address_a[10] => ram_block1a143.PORTAADDR10 +address_a[10] => ram_block1a144.PORTAADDR10 +address_a[10] => ram_block1a145.PORTAADDR10 +address_a[10] => ram_block1a146.PORTAADDR10 +address_a[10] => ram_block1a147.PORTAADDR10 +address_a[10] => ram_block1a148.PORTAADDR10 +address_a[10] => ram_block1a149.PORTAADDR10 +address_a[10] => ram_block1a150.PORTAADDR10 +address_a[10] => ram_block1a151.PORTAADDR10 +address_a[10] => ram_block1a152.PORTAADDR10 +address_a[10] => ram_block1a153.PORTAADDR10 +address_a[10] => ram_block1a154.PORTAADDR10 +address_a[10] => ram_block1a155.PORTAADDR10 +address_a[10] => ram_block1a156.PORTAADDR10 +address_a[10] => ram_block1a157.PORTAADDR10 +address_a[10] => ram_block1a158.PORTAADDR10 +address_a[10] => ram_block1a159.PORTAADDR10 +address_a[10] => ram_block1a160.PORTAADDR10 +address_a[10] => ram_block1a161.PORTAADDR10 +address_a[10] => ram_block1a162.PORTAADDR10 +address_a[10] => ram_block1a163.PORTAADDR10 +address_a[10] => ram_block1a164.PORTAADDR10 +address_a[10] => ram_block1a165.PORTAADDR10 +address_a[10] => ram_block1a166.PORTAADDR10 +address_a[10] => ram_block1a167.PORTAADDR10 +address_a[10] => ram_block1a168.PORTAADDR10 +address_a[10] => ram_block1a169.PORTAADDR10 +address_a[10] => ram_block1a170.PORTAADDR10 +address_a[10] => ram_block1a171.PORTAADDR10 +address_a[10] => ram_block1a172.PORTAADDR10 +address_a[10] => ram_block1a173.PORTAADDR10 +address_a[10] => ram_block1a174.PORTAADDR10 +address_a[10] => ram_block1a175.PORTAADDR10 +address_a[10] => ram_block1a176.PORTAADDR10 +address_a[10] => ram_block1a177.PORTAADDR10 +address_a[10] => ram_block1a178.PORTAADDR10 +address_a[10] => ram_block1a179.PORTAADDR10 +address_a[10] => ram_block1a180.PORTAADDR10 +address_a[10] => ram_block1a181.PORTAADDR10 +address_a[10] => ram_block1a182.PORTAADDR10 +address_a[10] => ram_block1a183.PORTAADDR10 +address_a[10] => ram_block1a184.PORTAADDR10 +address_a[10] => ram_block1a185.PORTAADDR10 +address_a[10] => ram_block1a186.PORTAADDR10 +address_a[10] => ram_block1a187.PORTAADDR10 +address_a[10] => ram_block1a188.PORTAADDR10 +address_a[10] => ram_block1a189.PORTAADDR10 +address_a[10] => ram_block1a190.PORTAADDR10 +address_a[10] => ram_block1a191.PORTAADDR10 +address_a[10] => ram_block1a192.PORTAADDR10 +address_a[10] => ram_block1a193.PORTAADDR10 +address_a[10] => ram_block1a194.PORTAADDR10 +address_a[10] => ram_block1a195.PORTAADDR10 +address_a[10] => ram_block1a196.PORTAADDR10 +address_a[10] => ram_block1a197.PORTAADDR10 +address_a[10] => ram_block1a198.PORTAADDR10 +address_a[10] => ram_block1a199.PORTAADDR10 +address_a[10] => ram_block1a200.PORTAADDR10 +address_a[10] => ram_block1a201.PORTAADDR10 +address_a[10] => ram_block1a202.PORTAADDR10 +address_a[10] => ram_block1a203.PORTAADDR10 +address_a[10] => ram_block1a204.PORTAADDR10 +address_a[10] => ram_block1a205.PORTAADDR10 +address_a[10] => ram_block1a206.PORTAADDR10 +address_a[10] => ram_block1a207.PORTAADDR10 +address_a[10] => ram_block1a208.PORTAADDR10 +address_a[10] => ram_block1a209.PORTAADDR10 +address_a[10] => ram_block1a210.PORTAADDR10 +address_a[10] => ram_block1a211.PORTAADDR10 +address_a[10] => ram_block1a212.PORTAADDR10 +address_a[10] => ram_block1a213.PORTAADDR10 +address_a[10] => ram_block1a214.PORTAADDR10 +address_a[10] => ram_block1a215.PORTAADDR10 +address_a[10] => ram_block1a216.PORTAADDR10 +address_a[10] => ram_block1a217.PORTAADDR10 +address_a[10] => ram_block1a218.PORTAADDR10 +address_a[10] => ram_block1a219.PORTAADDR10 +address_a[10] => ram_block1a220.PORTAADDR10 +address_a[10] => ram_block1a221.PORTAADDR10 +address_a[10] => ram_block1a222.PORTAADDR10 +address_a[10] => ram_block1a223.PORTAADDR10 +address_a[11] => ram_block1a0.PORTAADDR11 +address_a[11] => ram_block1a1.PORTAADDR11 +address_a[11] => ram_block1a2.PORTAADDR11 +address_a[11] => ram_block1a3.PORTAADDR11 +address_a[11] => ram_block1a4.PORTAADDR11 +address_a[11] => ram_block1a5.PORTAADDR11 +address_a[11] => ram_block1a6.PORTAADDR11 +address_a[11] => ram_block1a7.PORTAADDR11 +address_a[11] => ram_block1a8.PORTAADDR11 +address_a[11] => ram_block1a9.PORTAADDR11 +address_a[11] => ram_block1a10.PORTAADDR11 +address_a[11] => ram_block1a11.PORTAADDR11 +address_a[11] => ram_block1a12.PORTAADDR11 +address_a[11] => ram_block1a13.PORTAADDR11 +address_a[11] => ram_block1a14.PORTAADDR11 +address_a[11] => ram_block1a15.PORTAADDR11 +address_a[11] => ram_block1a16.PORTAADDR11 +address_a[11] => ram_block1a17.PORTAADDR11 +address_a[11] => ram_block1a18.PORTAADDR11 +address_a[11] => ram_block1a19.PORTAADDR11 +address_a[11] => ram_block1a20.PORTAADDR11 +address_a[11] => ram_block1a21.PORTAADDR11 +address_a[11] => ram_block1a22.PORTAADDR11 +address_a[11] => ram_block1a23.PORTAADDR11 +address_a[11] => ram_block1a24.PORTAADDR11 +address_a[11] => ram_block1a25.PORTAADDR11 +address_a[11] => ram_block1a26.PORTAADDR11 +address_a[11] => ram_block1a27.PORTAADDR11 +address_a[11] => ram_block1a28.PORTAADDR11 +address_a[11] => ram_block1a29.PORTAADDR11 +address_a[11] => ram_block1a30.PORTAADDR11 +address_a[11] => ram_block1a31.PORTAADDR11 +address_a[11] => ram_block1a32.PORTAADDR11 +address_a[11] => ram_block1a33.PORTAADDR11 +address_a[11] => ram_block1a34.PORTAADDR11 +address_a[11] => ram_block1a35.PORTAADDR11 +address_a[11] => ram_block1a36.PORTAADDR11 +address_a[11] => ram_block1a37.PORTAADDR11 +address_a[11] => ram_block1a38.PORTAADDR11 +address_a[11] => ram_block1a39.PORTAADDR11 +address_a[11] => ram_block1a40.PORTAADDR11 +address_a[11] => ram_block1a41.PORTAADDR11 +address_a[11] => ram_block1a42.PORTAADDR11 +address_a[11] => ram_block1a43.PORTAADDR11 +address_a[11] => ram_block1a44.PORTAADDR11 +address_a[11] => ram_block1a45.PORTAADDR11 +address_a[11] => ram_block1a46.PORTAADDR11 +address_a[11] => ram_block1a47.PORTAADDR11 +address_a[11] => ram_block1a48.PORTAADDR11 +address_a[11] => ram_block1a49.PORTAADDR11 +address_a[11] => ram_block1a50.PORTAADDR11 +address_a[11] => ram_block1a51.PORTAADDR11 +address_a[11] => ram_block1a52.PORTAADDR11 +address_a[11] => ram_block1a53.PORTAADDR11 +address_a[11] => ram_block1a54.PORTAADDR11 +address_a[11] => ram_block1a55.PORTAADDR11 +address_a[11] => ram_block1a56.PORTAADDR11 +address_a[11] => ram_block1a57.PORTAADDR11 +address_a[11] => ram_block1a58.PORTAADDR11 +address_a[11] => ram_block1a59.PORTAADDR11 +address_a[11] => ram_block1a60.PORTAADDR11 +address_a[11] => ram_block1a61.PORTAADDR11 +address_a[11] => ram_block1a62.PORTAADDR11 +address_a[11] => ram_block1a63.PORTAADDR11 +address_a[11] => ram_block1a64.PORTAADDR11 +address_a[11] => ram_block1a65.PORTAADDR11 +address_a[11] => ram_block1a66.PORTAADDR11 +address_a[11] => ram_block1a67.PORTAADDR11 +address_a[11] => ram_block1a68.PORTAADDR11 +address_a[11] => ram_block1a69.PORTAADDR11 +address_a[11] => ram_block1a70.PORTAADDR11 +address_a[11] => ram_block1a71.PORTAADDR11 +address_a[11] => ram_block1a72.PORTAADDR11 +address_a[11] => ram_block1a73.PORTAADDR11 +address_a[11] => ram_block1a74.PORTAADDR11 +address_a[11] => ram_block1a75.PORTAADDR11 +address_a[11] => ram_block1a76.PORTAADDR11 +address_a[11] => ram_block1a77.PORTAADDR11 +address_a[11] => ram_block1a78.PORTAADDR11 +address_a[11] => ram_block1a79.PORTAADDR11 +address_a[11] => ram_block1a80.PORTAADDR11 +address_a[11] => ram_block1a81.PORTAADDR11 +address_a[11] => ram_block1a82.PORTAADDR11 +address_a[11] => ram_block1a83.PORTAADDR11 +address_a[11] => ram_block1a84.PORTAADDR11 +address_a[11] => ram_block1a85.PORTAADDR11 +address_a[11] => ram_block1a86.PORTAADDR11 +address_a[11] => ram_block1a87.PORTAADDR11 +address_a[11] => ram_block1a88.PORTAADDR11 +address_a[11] => ram_block1a89.PORTAADDR11 +address_a[11] => ram_block1a90.PORTAADDR11 +address_a[11] => ram_block1a91.PORTAADDR11 +address_a[11] => ram_block1a92.PORTAADDR11 +address_a[11] => ram_block1a93.PORTAADDR11 +address_a[11] => ram_block1a94.PORTAADDR11 +address_a[11] => ram_block1a95.PORTAADDR11 +address_a[11] => ram_block1a96.PORTAADDR11 +address_a[11] => ram_block1a97.PORTAADDR11 +address_a[11] => ram_block1a98.PORTAADDR11 +address_a[11] => ram_block1a99.PORTAADDR11 +address_a[11] => ram_block1a100.PORTAADDR11 +address_a[11] => ram_block1a101.PORTAADDR11 +address_a[11] => ram_block1a102.PORTAADDR11 +address_a[11] => ram_block1a103.PORTAADDR11 +address_a[11] => ram_block1a104.PORTAADDR11 +address_a[11] => ram_block1a105.PORTAADDR11 +address_a[11] => ram_block1a106.PORTAADDR11 +address_a[11] => ram_block1a107.PORTAADDR11 +address_a[11] => ram_block1a108.PORTAADDR11 +address_a[11] => ram_block1a109.PORTAADDR11 +address_a[11] => ram_block1a110.PORTAADDR11 +address_a[11] => ram_block1a111.PORTAADDR11 +address_a[11] => ram_block1a112.PORTAADDR11 +address_a[11] => ram_block1a113.PORTAADDR11 +address_a[11] => ram_block1a114.PORTAADDR11 +address_a[11] => ram_block1a115.PORTAADDR11 +address_a[11] => ram_block1a116.PORTAADDR11 +address_a[11] => ram_block1a117.PORTAADDR11 +address_a[11] => ram_block1a118.PORTAADDR11 +address_a[11] => ram_block1a119.PORTAADDR11 +address_a[11] => ram_block1a120.PORTAADDR11 +address_a[11] => ram_block1a121.PORTAADDR11 +address_a[11] => ram_block1a122.PORTAADDR11 +address_a[11] => ram_block1a123.PORTAADDR11 +address_a[11] => ram_block1a124.PORTAADDR11 +address_a[11] => ram_block1a125.PORTAADDR11 +address_a[11] => ram_block1a126.PORTAADDR11 +address_a[11] => ram_block1a127.PORTAADDR11 +address_a[11] => ram_block1a128.PORTAADDR11 +address_a[11] => ram_block1a129.PORTAADDR11 +address_a[11] => ram_block1a130.PORTAADDR11 +address_a[11] => ram_block1a131.PORTAADDR11 +address_a[11] => ram_block1a132.PORTAADDR11 +address_a[11] => ram_block1a133.PORTAADDR11 +address_a[11] => ram_block1a134.PORTAADDR11 +address_a[11] => ram_block1a135.PORTAADDR11 +address_a[11] => ram_block1a136.PORTAADDR11 +address_a[11] => ram_block1a137.PORTAADDR11 +address_a[11] => ram_block1a138.PORTAADDR11 +address_a[11] => ram_block1a139.PORTAADDR11 +address_a[11] => ram_block1a140.PORTAADDR11 +address_a[11] => ram_block1a141.PORTAADDR11 +address_a[11] => ram_block1a142.PORTAADDR11 +address_a[11] => ram_block1a143.PORTAADDR11 +address_a[11] => ram_block1a144.PORTAADDR11 +address_a[11] => ram_block1a145.PORTAADDR11 +address_a[11] => ram_block1a146.PORTAADDR11 +address_a[11] => ram_block1a147.PORTAADDR11 +address_a[11] => ram_block1a148.PORTAADDR11 +address_a[11] => ram_block1a149.PORTAADDR11 +address_a[11] => ram_block1a150.PORTAADDR11 +address_a[11] => ram_block1a151.PORTAADDR11 +address_a[11] => ram_block1a152.PORTAADDR11 +address_a[11] => ram_block1a153.PORTAADDR11 +address_a[11] => ram_block1a154.PORTAADDR11 +address_a[11] => ram_block1a155.PORTAADDR11 +address_a[11] => ram_block1a156.PORTAADDR11 +address_a[11] => ram_block1a157.PORTAADDR11 +address_a[11] => ram_block1a158.PORTAADDR11 +address_a[11] => ram_block1a159.PORTAADDR11 +address_a[11] => ram_block1a160.PORTAADDR11 +address_a[11] => ram_block1a161.PORTAADDR11 +address_a[11] => ram_block1a162.PORTAADDR11 +address_a[11] => ram_block1a163.PORTAADDR11 +address_a[11] => ram_block1a164.PORTAADDR11 +address_a[11] => ram_block1a165.PORTAADDR11 +address_a[11] => ram_block1a166.PORTAADDR11 +address_a[11] => ram_block1a167.PORTAADDR11 +address_a[11] => ram_block1a168.PORTAADDR11 +address_a[11] => ram_block1a169.PORTAADDR11 +address_a[11] => ram_block1a170.PORTAADDR11 +address_a[11] => ram_block1a171.PORTAADDR11 +address_a[11] => ram_block1a172.PORTAADDR11 +address_a[11] => ram_block1a173.PORTAADDR11 +address_a[11] => ram_block1a174.PORTAADDR11 +address_a[11] => ram_block1a175.PORTAADDR11 +address_a[11] => ram_block1a176.PORTAADDR11 +address_a[11] => ram_block1a177.PORTAADDR11 +address_a[11] => ram_block1a178.PORTAADDR11 +address_a[11] => ram_block1a179.PORTAADDR11 +address_a[11] => ram_block1a180.PORTAADDR11 +address_a[11] => ram_block1a181.PORTAADDR11 +address_a[11] => ram_block1a182.PORTAADDR11 +address_a[11] => ram_block1a183.PORTAADDR11 +address_a[11] => ram_block1a184.PORTAADDR11 +address_a[11] => ram_block1a185.PORTAADDR11 +address_a[11] => ram_block1a186.PORTAADDR11 +address_a[11] => ram_block1a187.PORTAADDR11 +address_a[11] => ram_block1a188.PORTAADDR11 +address_a[11] => ram_block1a189.PORTAADDR11 +address_a[11] => ram_block1a190.PORTAADDR11 +address_a[11] => ram_block1a191.PORTAADDR11 +address_a[12] => ram_block1a0.PORTAADDR12 +address_a[12] => ram_block1a1.PORTAADDR12 +address_a[12] => ram_block1a2.PORTAADDR12 +address_a[12] => ram_block1a3.PORTAADDR12 +address_a[12] => ram_block1a4.PORTAADDR12 +address_a[12] => ram_block1a5.PORTAADDR12 +address_a[12] => ram_block1a6.PORTAADDR12 +address_a[12] => ram_block1a7.PORTAADDR12 +address_a[12] => ram_block1a8.PORTAADDR12 +address_a[12] => ram_block1a9.PORTAADDR12 +address_a[12] => ram_block1a10.PORTAADDR12 +address_a[12] => ram_block1a11.PORTAADDR12 +address_a[12] => ram_block1a12.PORTAADDR12 +address_a[12] => ram_block1a13.PORTAADDR12 +address_a[12] => ram_block1a14.PORTAADDR12 +address_a[12] => ram_block1a15.PORTAADDR12 +address_a[12] => ram_block1a16.PORTAADDR12 +address_a[12] => ram_block1a17.PORTAADDR12 +address_a[12] => ram_block1a18.PORTAADDR12 +address_a[12] => ram_block1a19.PORTAADDR12 +address_a[12] => ram_block1a20.PORTAADDR12 +address_a[12] => ram_block1a21.PORTAADDR12 +address_a[12] => ram_block1a22.PORTAADDR12 +address_a[12] => ram_block1a23.PORTAADDR12 +address_a[12] => ram_block1a24.PORTAADDR12 +address_a[12] => ram_block1a25.PORTAADDR12 +address_a[12] => ram_block1a26.PORTAADDR12 +address_a[12] => ram_block1a27.PORTAADDR12 +address_a[12] => ram_block1a28.PORTAADDR12 +address_a[12] => ram_block1a29.PORTAADDR12 +address_a[12] => ram_block1a30.PORTAADDR12 +address_a[12] => ram_block1a31.PORTAADDR12 +address_a[12] => ram_block1a32.PORTAADDR12 +address_a[12] => ram_block1a33.PORTAADDR12 +address_a[12] => ram_block1a34.PORTAADDR12 +address_a[12] => ram_block1a35.PORTAADDR12 +address_a[12] => ram_block1a36.PORTAADDR12 +address_a[12] => ram_block1a37.PORTAADDR12 +address_a[12] => ram_block1a38.PORTAADDR12 +address_a[12] => ram_block1a39.PORTAADDR12 +address_a[12] => ram_block1a40.PORTAADDR12 +address_a[12] => ram_block1a41.PORTAADDR12 +address_a[12] => ram_block1a42.PORTAADDR12 +address_a[12] => ram_block1a43.PORTAADDR12 +address_a[12] => ram_block1a44.PORTAADDR12 +address_a[12] => ram_block1a45.PORTAADDR12 +address_a[12] => ram_block1a46.PORTAADDR12 +address_a[12] => ram_block1a47.PORTAADDR12 +address_a[12] => ram_block1a48.PORTAADDR12 +address_a[12] => ram_block1a49.PORTAADDR12 +address_a[12] => ram_block1a50.PORTAADDR12 +address_a[12] => ram_block1a51.PORTAADDR12 +address_a[12] => ram_block1a52.PORTAADDR12 +address_a[12] => ram_block1a53.PORTAADDR12 +address_a[12] => ram_block1a54.PORTAADDR12 +address_a[12] => ram_block1a55.PORTAADDR12 +address_a[12] => ram_block1a56.PORTAADDR12 +address_a[12] => ram_block1a57.PORTAADDR12 +address_a[12] => ram_block1a58.PORTAADDR12 +address_a[12] => ram_block1a59.PORTAADDR12 +address_a[12] => ram_block1a60.PORTAADDR12 +address_a[12] => ram_block1a61.PORTAADDR12 +address_a[12] => ram_block1a62.PORTAADDR12 +address_a[12] => ram_block1a63.PORTAADDR12 +address_a[12] => ram_block1a64.PORTAADDR12 +address_a[12] => ram_block1a65.PORTAADDR12 +address_a[12] => ram_block1a66.PORTAADDR12 +address_a[12] => ram_block1a67.PORTAADDR12 +address_a[12] => ram_block1a68.PORTAADDR12 +address_a[12] => ram_block1a69.PORTAADDR12 +address_a[12] => ram_block1a70.PORTAADDR12 +address_a[12] => ram_block1a71.PORTAADDR12 +address_a[12] => ram_block1a72.PORTAADDR12 +address_a[12] => ram_block1a73.PORTAADDR12 +address_a[12] => ram_block1a74.PORTAADDR12 +address_a[12] => ram_block1a75.PORTAADDR12 +address_a[12] => ram_block1a76.PORTAADDR12 +address_a[12] => ram_block1a77.PORTAADDR12 +address_a[12] => ram_block1a78.PORTAADDR12 +address_a[12] => ram_block1a79.PORTAADDR12 +address_a[12] => ram_block1a80.PORTAADDR12 +address_a[12] => ram_block1a81.PORTAADDR12 +address_a[12] => ram_block1a82.PORTAADDR12 +address_a[12] => ram_block1a83.PORTAADDR12 +address_a[12] => ram_block1a84.PORTAADDR12 +address_a[12] => ram_block1a85.PORTAADDR12 +address_a[12] => ram_block1a86.PORTAADDR12 +address_a[12] => ram_block1a87.PORTAADDR12 +address_a[12] => ram_block1a88.PORTAADDR12 +address_a[12] => ram_block1a89.PORTAADDR12 +address_a[12] => ram_block1a90.PORTAADDR12 +address_a[12] => ram_block1a91.PORTAADDR12 +address_a[12] => ram_block1a92.PORTAADDR12 +address_a[12] => ram_block1a93.PORTAADDR12 +address_a[12] => ram_block1a94.PORTAADDR12 +address_a[12] => ram_block1a95.PORTAADDR12 +address_a[12] => ram_block1a96.PORTAADDR12 +address_a[12] => ram_block1a97.PORTAADDR12 +address_a[12] => ram_block1a98.PORTAADDR12 +address_a[12] => ram_block1a99.PORTAADDR12 +address_a[12] => ram_block1a100.PORTAADDR12 +address_a[12] => ram_block1a101.PORTAADDR12 +address_a[12] => ram_block1a102.PORTAADDR12 +address_a[12] => ram_block1a103.PORTAADDR12 +address_a[12] => ram_block1a104.PORTAADDR12 +address_a[12] => ram_block1a105.PORTAADDR12 +address_a[12] => ram_block1a106.PORTAADDR12 +address_a[12] => ram_block1a107.PORTAADDR12 +address_a[12] => ram_block1a108.PORTAADDR12 +address_a[12] => ram_block1a109.PORTAADDR12 +address_a[12] => ram_block1a110.PORTAADDR12 +address_a[12] => ram_block1a111.PORTAADDR12 +address_a[12] => ram_block1a112.PORTAADDR12 +address_a[12] => ram_block1a113.PORTAADDR12 +address_a[12] => ram_block1a114.PORTAADDR12 +address_a[12] => ram_block1a115.PORTAADDR12 +address_a[12] => ram_block1a116.PORTAADDR12 +address_a[12] => ram_block1a117.PORTAADDR12 +address_a[12] => ram_block1a118.PORTAADDR12 +address_a[12] => ram_block1a119.PORTAADDR12 +address_a[12] => ram_block1a120.PORTAADDR12 +address_a[12] => ram_block1a121.PORTAADDR12 +address_a[12] => ram_block1a122.PORTAADDR12 +address_a[12] => ram_block1a123.PORTAADDR12 +address_a[12] => ram_block1a124.PORTAADDR12 +address_a[12] => ram_block1a125.PORTAADDR12 +address_a[12] => ram_block1a126.PORTAADDR12 +address_a[12] => ram_block1a127.PORTAADDR12 +address_a[12] => ram_block1a128.PORTAADDR12 +address_a[12] => ram_block1a129.PORTAADDR12 +address_a[12] => ram_block1a130.PORTAADDR12 +address_a[12] => ram_block1a131.PORTAADDR12 +address_a[12] => ram_block1a132.PORTAADDR12 +address_a[12] => ram_block1a133.PORTAADDR12 +address_a[12] => ram_block1a134.PORTAADDR12 +address_a[12] => ram_block1a135.PORTAADDR12 +address_a[12] => ram_block1a136.PORTAADDR12 +address_a[12] => ram_block1a137.PORTAADDR12 +address_a[12] => ram_block1a138.PORTAADDR12 +address_a[12] => ram_block1a139.PORTAADDR12 +address_a[12] => ram_block1a140.PORTAADDR12 +address_a[12] => ram_block1a141.PORTAADDR12 +address_a[12] => ram_block1a142.PORTAADDR12 +address_a[12] => ram_block1a143.PORTAADDR12 +address_a[12] => ram_block1a144.PORTAADDR12 +address_a[12] => ram_block1a145.PORTAADDR12 +address_a[12] => ram_block1a146.PORTAADDR12 +address_a[12] => ram_block1a147.PORTAADDR12 +address_a[12] => ram_block1a148.PORTAADDR12 +address_a[12] => ram_block1a149.PORTAADDR12 +address_a[12] => ram_block1a150.PORTAADDR12 +address_a[12] => ram_block1a151.PORTAADDR12 +address_a[12] => ram_block1a152.PORTAADDR12 +address_a[12] => ram_block1a153.PORTAADDR12 +address_a[12] => ram_block1a154.PORTAADDR12 +address_a[12] => ram_block1a155.PORTAADDR12 +address_a[12] => ram_block1a156.PORTAADDR12 +address_a[12] => ram_block1a157.PORTAADDR12 +address_a[12] => ram_block1a158.PORTAADDR12 +address_a[12] => ram_block1a159.PORTAADDR12 +address_a[12] => ram_block1a160.PORTAADDR12 +address_a[12] => ram_block1a161.PORTAADDR12 +address_a[12] => ram_block1a162.PORTAADDR12 +address_a[12] => ram_block1a163.PORTAADDR12 +address_a[12] => ram_block1a164.PORTAADDR12 +address_a[12] => ram_block1a165.PORTAADDR12 +address_a[12] => ram_block1a166.PORTAADDR12 +address_a[12] => ram_block1a167.PORTAADDR12 +address_a[12] => ram_block1a168.PORTAADDR12 +address_a[12] => ram_block1a169.PORTAADDR12 +address_a[12] => ram_block1a170.PORTAADDR12 +address_a[12] => ram_block1a171.PORTAADDR12 +address_a[12] => ram_block1a172.PORTAADDR12 +address_a[12] => ram_block1a173.PORTAADDR12 +address_a[12] => ram_block1a174.PORTAADDR12 +address_a[12] => ram_block1a175.PORTAADDR12 +address_a[12] => ram_block1a176.PORTAADDR12 +address_a[12] => ram_block1a177.PORTAADDR12 +address_a[12] => ram_block1a178.PORTAADDR12 +address_a[12] => ram_block1a179.PORTAADDR12 +address_a[12] => ram_block1a180.PORTAADDR12 +address_a[12] => ram_block1a181.PORTAADDR12 +address_a[12] => ram_block1a182.PORTAADDR12 +address_a[12] => ram_block1a183.PORTAADDR12 +address_a[12] => ram_block1a184.PORTAADDR12 +address_a[12] => ram_block1a185.PORTAADDR12 +address_a[12] => ram_block1a186.PORTAADDR12 +address_a[12] => ram_block1a187.PORTAADDR12 +address_a[12] => ram_block1a188.PORTAADDR12 +address_a[12] => ram_block1a189.PORTAADDR12 +address_a[12] => ram_block1a190.PORTAADDR12 +address_a[12] => ram_block1a191.PORTAADDR12 +address_a[13] => address_reg_a[0].DATAIN +address_a[13] => decode_qsa:decode3.data[0] +address_a[14] => address_reg_a[1].DATAIN +address_a[14] => decode_qsa:decode3.data[1] +address_a[15] => address_reg_a[2].DATAIN +address_a[15] => decode_qsa:decode3.data[2] +byteena_a[0] => ram_block1a0.PORTABYTEENAMASKS +byteena_a[0] => ram_block1a1.PORTABYTEENAMASKS +byteena_a[0] => ram_block1a2.PORTABYTEENAMASKS +byteena_a[0] => ram_block1a3.PORTABYTEENAMASKS +byteena_a[0] => ram_block1a4.PORTABYTEENAMASKS +byteena_a[0] => ram_block1a5.PORTABYTEENAMASKS +byteena_a[0] => ram_block1a6.PORTABYTEENAMASKS +byteena_a[0] => ram_block1a7.PORTABYTEENAMASKS +byteena_a[0] => ram_block1a32.PORTABYTEENAMASKS +byteena_a[0] => ram_block1a33.PORTABYTEENAMASKS +byteena_a[0] => ram_block1a34.PORTABYTEENAMASKS +byteena_a[0] => ram_block1a35.PORTABYTEENAMASKS +byteena_a[0] => ram_block1a36.PORTABYTEENAMASKS +byteena_a[0] => ram_block1a37.PORTABYTEENAMASKS +byteena_a[0] => ram_block1a38.PORTABYTEENAMASKS +byteena_a[0] => ram_block1a39.PORTABYTEENAMASKS +byteena_a[0] => ram_block1a64.PORTABYTEENAMASKS +byteena_a[0] => ram_block1a65.PORTABYTEENAMASKS +byteena_a[0] => ram_block1a66.PORTABYTEENAMASKS +byteena_a[0] => ram_block1a67.PORTABYTEENAMASKS +byteena_a[0] => ram_block1a68.PORTABYTEENAMASKS +byteena_a[0] => ram_block1a69.PORTABYTEENAMASKS +byteena_a[0] => ram_block1a70.PORTABYTEENAMASKS +byteena_a[0] => ram_block1a71.PORTABYTEENAMASKS +byteena_a[0] => ram_block1a96.PORTABYTEENAMASKS +byteena_a[0] => ram_block1a97.PORTABYTEENAMASKS +byteena_a[0] => ram_block1a98.PORTABYTEENAMASKS +byteena_a[0] => ram_block1a99.PORTABYTEENAMASKS +byteena_a[0] => ram_block1a100.PORTABYTEENAMASKS +byteena_a[0] => ram_block1a101.PORTABYTEENAMASKS +byteena_a[0] => ram_block1a102.PORTABYTEENAMASKS +byteena_a[0] => ram_block1a103.PORTABYTEENAMASKS +byteena_a[0] => ram_block1a128.PORTABYTEENAMASKS +byteena_a[0] => ram_block1a129.PORTABYTEENAMASKS +byteena_a[0] => ram_block1a130.PORTABYTEENAMASKS +byteena_a[0] => ram_block1a131.PORTABYTEENAMASKS +byteena_a[0] => ram_block1a132.PORTABYTEENAMASKS +byteena_a[0] => ram_block1a133.PORTABYTEENAMASKS +byteena_a[0] => ram_block1a134.PORTABYTEENAMASKS +byteena_a[0] => ram_block1a135.PORTABYTEENAMASKS +byteena_a[0] => ram_block1a160.PORTABYTEENAMASKS +byteena_a[0] => ram_block1a161.PORTABYTEENAMASKS +byteena_a[0] => ram_block1a162.PORTABYTEENAMASKS +byteena_a[0] => ram_block1a163.PORTABYTEENAMASKS +byteena_a[0] => ram_block1a164.PORTABYTEENAMASKS +byteena_a[0] => ram_block1a165.PORTABYTEENAMASKS +byteena_a[0] => ram_block1a166.PORTABYTEENAMASKS +byteena_a[0] => ram_block1a167.PORTABYTEENAMASKS +byteena_a[0] => ram_block1a192.PORTABYTEENAMASKS +byteena_a[0] => ram_block1a193.PORTABYTEENAMASKS +byteena_a[0] => ram_block1a194.PORTABYTEENAMASKS +byteena_a[0] => ram_block1a195.PORTABYTEENAMASKS +byteena_a[0] => ram_block1a196.PORTABYTEENAMASKS +byteena_a[0] => ram_block1a197.PORTABYTEENAMASKS +byteena_a[0] => ram_block1a198.PORTABYTEENAMASKS +byteena_a[0] => ram_block1a199.PORTABYTEENAMASKS +byteena_a[1] => ram_block1a8.PORTABYTEENAMASKS +byteena_a[1] => ram_block1a9.PORTABYTEENAMASKS +byteena_a[1] => ram_block1a10.PORTABYTEENAMASKS +byteena_a[1] => ram_block1a11.PORTABYTEENAMASKS +byteena_a[1] => ram_block1a12.PORTABYTEENAMASKS +byteena_a[1] => ram_block1a13.PORTABYTEENAMASKS +byteena_a[1] => ram_block1a14.PORTABYTEENAMASKS +byteena_a[1] => ram_block1a15.PORTABYTEENAMASKS +byteena_a[1] => ram_block1a40.PORTABYTEENAMASKS +byteena_a[1] => ram_block1a41.PORTABYTEENAMASKS +byteena_a[1] => ram_block1a42.PORTABYTEENAMASKS +byteena_a[1] => ram_block1a43.PORTABYTEENAMASKS +byteena_a[1] => ram_block1a44.PORTABYTEENAMASKS +byteena_a[1] => ram_block1a45.PORTABYTEENAMASKS +byteena_a[1] => ram_block1a46.PORTABYTEENAMASKS +byteena_a[1] => ram_block1a47.PORTABYTEENAMASKS +byteena_a[1] => ram_block1a72.PORTABYTEENAMASKS +byteena_a[1] => ram_block1a73.PORTABYTEENAMASKS +byteena_a[1] => ram_block1a74.PORTABYTEENAMASKS +byteena_a[1] => ram_block1a75.PORTABYTEENAMASKS +byteena_a[1] => ram_block1a76.PORTABYTEENAMASKS +byteena_a[1] => ram_block1a77.PORTABYTEENAMASKS +byteena_a[1] => ram_block1a78.PORTABYTEENAMASKS +byteena_a[1] => ram_block1a79.PORTABYTEENAMASKS +byteena_a[1] => ram_block1a104.PORTABYTEENAMASKS +byteena_a[1] => ram_block1a105.PORTABYTEENAMASKS +byteena_a[1] => ram_block1a106.PORTABYTEENAMASKS +byteena_a[1] => ram_block1a107.PORTABYTEENAMASKS +byteena_a[1] => ram_block1a108.PORTABYTEENAMASKS +byteena_a[1] => ram_block1a109.PORTABYTEENAMASKS +byteena_a[1] => ram_block1a110.PORTABYTEENAMASKS +byteena_a[1] => ram_block1a111.PORTABYTEENAMASKS +byteena_a[1] => ram_block1a136.PORTABYTEENAMASKS +byteena_a[1] => ram_block1a137.PORTABYTEENAMASKS +byteena_a[1] => ram_block1a138.PORTABYTEENAMASKS +byteena_a[1] => ram_block1a139.PORTABYTEENAMASKS +byteena_a[1] => ram_block1a140.PORTABYTEENAMASKS +byteena_a[1] => ram_block1a141.PORTABYTEENAMASKS +byteena_a[1] => ram_block1a142.PORTABYTEENAMASKS +byteena_a[1] => ram_block1a143.PORTABYTEENAMASKS +byteena_a[1] => ram_block1a168.PORTABYTEENAMASKS +byteena_a[1] => ram_block1a169.PORTABYTEENAMASKS +byteena_a[1] => ram_block1a170.PORTABYTEENAMASKS +byteena_a[1] => ram_block1a171.PORTABYTEENAMASKS +byteena_a[1] => ram_block1a172.PORTABYTEENAMASKS +byteena_a[1] => ram_block1a173.PORTABYTEENAMASKS +byteena_a[1] => ram_block1a174.PORTABYTEENAMASKS +byteena_a[1] => ram_block1a175.PORTABYTEENAMASKS +byteena_a[1] => ram_block1a200.PORTABYTEENAMASKS +byteena_a[1] => ram_block1a201.PORTABYTEENAMASKS +byteena_a[1] => ram_block1a202.PORTABYTEENAMASKS +byteena_a[1] => ram_block1a203.PORTABYTEENAMASKS +byteena_a[1] => ram_block1a204.PORTABYTEENAMASKS +byteena_a[1] => ram_block1a205.PORTABYTEENAMASKS +byteena_a[1] => ram_block1a206.PORTABYTEENAMASKS +byteena_a[1] => ram_block1a207.PORTABYTEENAMASKS +byteena_a[2] => ram_block1a16.PORTABYTEENAMASKS +byteena_a[2] => ram_block1a17.PORTABYTEENAMASKS +byteena_a[2] => ram_block1a18.PORTABYTEENAMASKS +byteena_a[2] => ram_block1a19.PORTABYTEENAMASKS +byteena_a[2] => ram_block1a20.PORTABYTEENAMASKS +byteena_a[2] => ram_block1a21.PORTABYTEENAMASKS +byteena_a[2] => ram_block1a22.PORTABYTEENAMASKS +byteena_a[2] => ram_block1a23.PORTABYTEENAMASKS +byteena_a[2] => ram_block1a48.PORTABYTEENAMASKS +byteena_a[2] => ram_block1a49.PORTABYTEENAMASKS +byteena_a[2] => ram_block1a50.PORTABYTEENAMASKS +byteena_a[2] => ram_block1a51.PORTABYTEENAMASKS +byteena_a[2] => ram_block1a52.PORTABYTEENAMASKS +byteena_a[2] => ram_block1a53.PORTABYTEENAMASKS +byteena_a[2] => ram_block1a54.PORTABYTEENAMASKS +byteena_a[2] => ram_block1a55.PORTABYTEENAMASKS +byteena_a[2] => ram_block1a80.PORTABYTEENAMASKS +byteena_a[2] => ram_block1a81.PORTABYTEENAMASKS +byteena_a[2] => ram_block1a82.PORTABYTEENAMASKS +byteena_a[2] => ram_block1a83.PORTABYTEENAMASKS +byteena_a[2] => ram_block1a84.PORTABYTEENAMASKS +byteena_a[2] => ram_block1a85.PORTABYTEENAMASKS +byteena_a[2] => ram_block1a86.PORTABYTEENAMASKS +byteena_a[2] => ram_block1a87.PORTABYTEENAMASKS +byteena_a[2] => ram_block1a112.PORTABYTEENAMASKS +byteena_a[2] => ram_block1a113.PORTABYTEENAMASKS +byteena_a[2] => ram_block1a114.PORTABYTEENAMASKS +byteena_a[2] => ram_block1a115.PORTABYTEENAMASKS +byteena_a[2] => ram_block1a116.PORTABYTEENAMASKS +byteena_a[2] => ram_block1a117.PORTABYTEENAMASKS +byteena_a[2] => ram_block1a118.PORTABYTEENAMASKS +byteena_a[2] => ram_block1a119.PORTABYTEENAMASKS +byteena_a[2] => ram_block1a144.PORTABYTEENAMASKS +byteena_a[2] => ram_block1a145.PORTABYTEENAMASKS +byteena_a[2] => ram_block1a146.PORTABYTEENAMASKS +byteena_a[2] => ram_block1a147.PORTABYTEENAMASKS +byteena_a[2] => ram_block1a148.PORTABYTEENAMASKS +byteena_a[2] => ram_block1a149.PORTABYTEENAMASKS +byteena_a[2] => ram_block1a150.PORTABYTEENAMASKS +byteena_a[2] => ram_block1a151.PORTABYTEENAMASKS +byteena_a[2] => ram_block1a176.PORTABYTEENAMASKS +byteena_a[2] => ram_block1a177.PORTABYTEENAMASKS +byteena_a[2] => ram_block1a178.PORTABYTEENAMASKS +byteena_a[2] => ram_block1a179.PORTABYTEENAMASKS +byteena_a[2] => ram_block1a180.PORTABYTEENAMASKS +byteena_a[2] => ram_block1a181.PORTABYTEENAMASKS +byteena_a[2] => ram_block1a182.PORTABYTEENAMASKS +byteena_a[2] => ram_block1a183.PORTABYTEENAMASKS +byteena_a[2] => ram_block1a208.PORTABYTEENAMASKS +byteena_a[2] => ram_block1a209.PORTABYTEENAMASKS +byteena_a[2] => ram_block1a210.PORTABYTEENAMASKS +byteena_a[2] => ram_block1a211.PORTABYTEENAMASKS +byteena_a[2] => ram_block1a212.PORTABYTEENAMASKS +byteena_a[2] => ram_block1a213.PORTABYTEENAMASKS +byteena_a[2] => ram_block1a214.PORTABYTEENAMASKS +byteena_a[2] => ram_block1a215.PORTABYTEENAMASKS +byteena_a[3] => ram_block1a24.PORTABYTEENAMASKS +byteena_a[3] => ram_block1a25.PORTABYTEENAMASKS +byteena_a[3] => ram_block1a26.PORTABYTEENAMASKS +byteena_a[3] => ram_block1a27.PORTABYTEENAMASKS +byteena_a[3] => ram_block1a28.PORTABYTEENAMASKS +byteena_a[3] => ram_block1a29.PORTABYTEENAMASKS +byteena_a[3] => ram_block1a30.PORTABYTEENAMASKS +byteena_a[3] => ram_block1a31.PORTABYTEENAMASKS +byteena_a[3] => ram_block1a56.PORTABYTEENAMASKS +byteena_a[3] => ram_block1a57.PORTABYTEENAMASKS +byteena_a[3] => ram_block1a58.PORTABYTEENAMASKS +byteena_a[3] => ram_block1a59.PORTABYTEENAMASKS +byteena_a[3] => ram_block1a60.PORTABYTEENAMASKS +byteena_a[3] => ram_block1a61.PORTABYTEENAMASKS +byteena_a[3] => ram_block1a62.PORTABYTEENAMASKS +byteena_a[3] => ram_block1a63.PORTABYTEENAMASKS +byteena_a[3] => ram_block1a88.PORTABYTEENAMASKS +byteena_a[3] => ram_block1a89.PORTABYTEENAMASKS +byteena_a[3] => ram_block1a90.PORTABYTEENAMASKS +byteena_a[3] => ram_block1a91.PORTABYTEENAMASKS +byteena_a[3] => ram_block1a92.PORTABYTEENAMASKS +byteena_a[3] => ram_block1a93.PORTABYTEENAMASKS +byteena_a[3] => ram_block1a94.PORTABYTEENAMASKS +byteena_a[3] => ram_block1a95.PORTABYTEENAMASKS +byteena_a[3] => ram_block1a120.PORTABYTEENAMASKS +byteena_a[3] => ram_block1a121.PORTABYTEENAMASKS +byteena_a[3] => ram_block1a122.PORTABYTEENAMASKS +byteena_a[3] => ram_block1a123.PORTABYTEENAMASKS +byteena_a[3] => ram_block1a124.PORTABYTEENAMASKS +byteena_a[3] => ram_block1a125.PORTABYTEENAMASKS +byteena_a[3] => ram_block1a126.PORTABYTEENAMASKS +byteena_a[3] => ram_block1a127.PORTABYTEENAMASKS +byteena_a[3] => ram_block1a152.PORTABYTEENAMASKS +byteena_a[3] => ram_block1a153.PORTABYTEENAMASKS +byteena_a[3] => ram_block1a154.PORTABYTEENAMASKS +byteena_a[3] => ram_block1a155.PORTABYTEENAMASKS +byteena_a[3] => ram_block1a156.PORTABYTEENAMASKS +byteena_a[3] => ram_block1a157.PORTABYTEENAMASKS +byteena_a[3] => ram_block1a158.PORTABYTEENAMASKS +byteena_a[3] => ram_block1a159.PORTABYTEENAMASKS +byteena_a[3] => ram_block1a184.PORTABYTEENAMASKS +byteena_a[3] => ram_block1a185.PORTABYTEENAMASKS +byteena_a[3] => ram_block1a186.PORTABYTEENAMASKS +byteena_a[3] => ram_block1a187.PORTABYTEENAMASKS +byteena_a[3] => ram_block1a188.PORTABYTEENAMASKS +byteena_a[3] => ram_block1a189.PORTABYTEENAMASKS +byteena_a[3] => ram_block1a190.PORTABYTEENAMASKS +byteena_a[3] => ram_block1a191.PORTABYTEENAMASKS +byteena_a[3] => ram_block1a216.PORTABYTEENAMASKS +byteena_a[3] => ram_block1a217.PORTABYTEENAMASKS +byteena_a[3] => ram_block1a218.PORTABYTEENAMASKS +byteena_a[3] => ram_block1a219.PORTABYTEENAMASKS +byteena_a[3] => ram_block1a220.PORTABYTEENAMASKS +byteena_a[3] => ram_block1a221.PORTABYTEENAMASKS +byteena_a[3] => ram_block1a222.PORTABYTEENAMASKS +byteena_a[3] => ram_block1a223.PORTABYTEENAMASKS +clock0 => ram_block1a0.CLK0 +clock0 => ram_block1a1.CLK0 +clock0 => ram_block1a2.CLK0 +clock0 => ram_block1a3.CLK0 +clock0 => ram_block1a4.CLK0 +clock0 => ram_block1a5.CLK0 +clock0 => ram_block1a6.CLK0 +clock0 => ram_block1a7.CLK0 +clock0 => ram_block1a8.CLK0 +clock0 => ram_block1a9.CLK0 +clock0 => ram_block1a10.CLK0 +clock0 => ram_block1a11.CLK0 +clock0 => ram_block1a12.CLK0 +clock0 => ram_block1a13.CLK0 +clock0 => ram_block1a14.CLK0 +clock0 => ram_block1a15.CLK0 +clock0 => ram_block1a16.CLK0 +clock0 => ram_block1a17.CLK0 +clock0 => ram_block1a18.CLK0 +clock0 => ram_block1a19.CLK0 +clock0 => ram_block1a20.CLK0 +clock0 => ram_block1a21.CLK0 +clock0 => ram_block1a22.CLK0 +clock0 => ram_block1a23.CLK0 +clock0 => ram_block1a24.CLK0 +clock0 => ram_block1a25.CLK0 +clock0 => ram_block1a26.CLK0 +clock0 => ram_block1a27.CLK0 +clock0 => ram_block1a28.CLK0 +clock0 => ram_block1a29.CLK0 +clock0 => ram_block1a30.CLK0 +clock0 => ram_block1a31.CLK0 +clock0 => ram_block1a32.CLK0 +clock0 => ram_block1a33.CLK0 +clock0 => ram_block1a34.CLK0 +clock0 => ram_block1a35.CLK0 +clock0 => ram_block1a36.CLK0 +clock0 => ram_block1a37.CLK0 +clock0 => ram_block1a38.CLK0 +clock0 => ram_block1a39.CLK0 +clock0 => ram_block1a40.CLK0 +clock0 => ram_block1a41.CLK0 +clock0 => ram_block1a42.CLK0 +clock0 => ram_block1a43.CLK0 +clock0 => ram_block1a44.CLK0 +clock0 => ram_block1a45.CLK0 +clock0 => ram_block1a46.CLK0 +clock0 => ram_block1a47.CLK0 +clock0 => ram_block1a48.CLK0 +clock0 => ram_block1a49.CLK0 +clock0 => ram_block1a50.CLK0 +clock0 => ram_block1a51.CLK0 +clock0 => ram_block1a52.CLK0 +clock0 => ram_block1a53.CLK0 +clock0 => ram_block1a54.CLK0 +clock0 => ram_block1a55.CLK0 +clock0 => ram_block1a56.CLK0 +clock0 => ram_block1a57.CLK0 +clock0 => ram_block1a58.CLK0 +clock0 => ram_block1a59.CLK0 +clock0 => ram_block1a60.CLK0 +clock0 => ram_block1a61.CLK0 +clock0 => ram_block1a62.CLK0 +clock0 => ram_block1a63.CLK0 +clock0 => ram_block1a64.CLK0 +clock0 => ram_block1a65.CLK0 +clock0 => ram_block1a66.CLK0 +clock0 => ram_block1a67.CLK0 +clock0 => ram_block1a68.CLK0 +clock0 => ram_block1a69.CLK0 +clock0 => ram_block1a70.CLK0 +clock0 => ram_block1a71.CLK0 +clock0 => ram_block1a72.CLK0 +clock0 => ram_block1a73.CLK0 +clock0 => ram_block1a74.CLK0 +clock0 => ram_block1a75.CLK0 +clock0 => ram_block1a76.CLK0 +clock0 => ram_block1a77.CLK0 +clock0 => ram_block1a78.CLK0 +clock0 => ram_block1a79.CLK0 +clock0 => ram_block1a80.CLK0 +clock0 => ram_block1a81.CLK0 +clock0 => ram_block1a82.CLK0 +clock0 => ram_block1a83.CLK0 +clock0 => ram_block1a84.CLK0 +clock0 => ram_block1a85.CLK0 +clock0 => ram_block1a86.CLK0 +clock0 => ram_block1a87.CLK0 +clock0 => ram_block1a88.CLK0 +clock0 => ram_block1a89.CLK0 +clock0 => ram_block1a90.CLK0 +clock0 => ram_block1a91.CLK0 +clock0 => ram_block1a92.CLK0 +clock0 => ram_block1a93.CLK0 +clock0 => ram_block1a94.CLK0 +clock0 => ram_block1a95.CLK0 +clock0 => ram_block1a96.CLK0 +clock0 => ram_block1a97.CLK0 +clock0 => ram_block1a98.CLK0 +clock0 => ram_block1a99.CLK0 +clock0 => ram_block1a100.CLK0 +clock0 => ram_block1a101.CLK0 +clock0 => ram_block1a102.CLK0 +clock0 => ram_block1a103.CLK0 +clock0 => ram_block1a104.CLK0 +clock0 => ram_block1a105.CLK0 +clock0 => ram_block1a106.CLK0 +clock0 => ram_block1a107.CLK0 +clock0 => ram_block1a108.CLK0 +clock0 => ram_block1a109.CLK0 +clock0 => ram_block1a110.CLK0 +clock0 => ram_block1a111.CLK0 +clock0 => ram_block1a112.CLK0 +clock0 => ram_block1a113.CLK0 +clock0 => ram_block1a114.CLK0 +clock0 => ram_block1a115.CLK0 +clock0 => ram_block1a116.CLK0 +clock0 => ram_block1a117.CLK0 +clock0 => ram_block1a118.CLK0 +clock0 => ram_block1a119.CLK0 +clock0 => ram_block1a120.CLK0 +clock0 => ram_block1a121.CLK0 +clock0 => ram_block1a122.CLK0 +clock0 => ram_block1a123.CLK0 +clock0 => ram_block1a124.CLK0 +clock0 => ram_block1a125.CLK0 +clock0 => ram_block1a126.CLK0 +clock0 => ram_block1a127.CLK0 +clock0 => ram_block1a128.CLK0 +clock0 => ram_block1a129.CLK0 +clock0 => ram_block1a130.CLK0 +clock0 => ram_block1a131.CLK0 +clock0 => ram_block1a132.CLK0 +clock0 => ram_block1a133.CLK0 +clock0 => ram_block1a134.CLK0 +clock0 => ram_block1a135.CLK0 +clock0 => ram_block1a136.CLK0 +clock0 => ram_block1a137.CLK0 +clock0 => ram_block1a138.CLK0 +clock0 => ram_block1a139.CLK0 +clock0 => ram_block1a140.CLK0 +clock0 => ram_block1a141.CLK0 +clock0 => ram_block1a142.CLK0 +clock0 => ram_block1a143.CLK0 +clock0 => ram_block1a144.CLK0 +clock0 => ram_block1a145.CLK0 +clock0 => ram_block1a146.CLK0 +clock0 => ram_block1a147.CLK0 +clock0 => ram_block1a148.CLK0 +clock0 => ram_block1a149.CLK0 +clock0 => ram_block1a150.CLK0 +clock0 => ram_block1a151.CLK0 +clock0 => ram_block1a152.CLK0 +clock0 => ram_block1a153.CLK0 +clock0 => ram_block1a154.CLK0 +clock0 => ram_block1a155.CLK0 +clock0 => ram_block1a156.CLK0 +clock0 => ram_block1a157.CLK0 +clock0 => ram_block1a158.CLK0 +clock0 => ram_block1a159.CLK0 +clock0 => ram_block1a160.CLK0 +clock0 => ram_block1a161.CLK0 +clock0 => ram_block1a162.CLK0 +clock0 => ram_block1a163.CLK0 +clock0 => ram_block1a164.CLK0 +clock0 => ram_block1a165.CLK0 +clock0 => ram_block1a166.CLK0 +clock0 => ram_block1a167.CLK0 +clock0 => ram_block1a168.CLK0 +clock0 => ram_block1a169.CLK0 +clock0 => ram_block1a170.CLK0 +clock0 => ram_block1a171.CLK0 +clock0 => ram_block1a172.CLK0 +clock0 => ram_block1a173.CLK0 +clock0 => ram_block1a174.CLK0 +clock0 => ram_block1a175.CLK0 +clock0 => ram_block1a176.CLK0 +clock0 => ram_block1a177.CLK0 +clock0 => ram_block1a178.CLK0 +clock0 => ram_block1a179.CLK0 +clock0 => ram_block1a180.CLK0 +clock0 => ram_block1a181.CLK0 +clock0 => ram_block1a182.CLK0 +clock0 => ram_block1a183.CLK0 +clock0 => ram_block1a184.CLK0 +clock0 => ram_block1a185.CLK0 +clock0 => ram_block1a186.CLK0 +clock0 => ram_block1a187.CLK0 +clock0 => ram_block1a188.CLK0 +clock0 => ram_block1a189.CLK0 +clock0 => ram_block1a190.CLK0 +clock0 => ram_block1a191.CLK0 +clock0 => ram_block1a192.CLK0 +clock0 => ram_block1a193.CLK0 +clock0 => ram_block1a194.CLK0 +clock0 => ram_block1a195.CLK0 +clock0 => ram_block1a196.CLK0 +clock0 => ram_block1a197.CLK0 +clock0 => ram_block1a198.CLK0 +clock0 => ram_block1a199.CLK0 +clock0 => ram_block1a200.CLK0 +clock0 => ram_block1a201.CLK0 +clock0 => ram_block1a202.CLK0 +clock0 => ram_block1a203.CLK0 +clock0 => ram_block1a204.CLK0 +clock0 => ram_block1a205.CLK0 +clock0 => ram_block1a206.CLK0 +clock0 => ram_block1a207.CLK0 +clock0 => ram_block1a208.CLK0 +clock0 => ram_block1a209.CLK0 +clock0 => ram_block1a210.CLK0 +clock0 => ram_block1a211.CLK0 +clock0 => ram_block1a212.CLK0 +clock0 => ram_block1a213.CLK0 +clock0 => ram_block1a214.CLK0 +clock0 => ram_block1a215.CLK0 +clock0 => ram_block1a216.CLK0 +clock0 => ram_block1a217.CLK0 +clock0 => ram_block1a218.CLK0 +clock0 => ram_block1a219.CLK0 +clock0 => ram_block1a220.CLK0 +clock0 => ram_block1a221.CLK0 +clock0 => ram_block1a222.CLK0 +clock0 => ram_block1a223.CLK0 +clock0 => address_reg_a[2].CLK +clock0 => address_reg_a[1].CLK +clock0 => address_reg_a[0].CLK +clocken0 => ram_block1a0.ENA0 +clocken0 => ram_block1a1.ENA0 +clocken0 => ram_block1a2.ENA0 +clocken0 => ram_block1a3.ENA0 +clocken0 => ram_block1a4.ENA0 +clocken0 => ram_block1a5.ENA0 +clocken0 => ram_block1a6.ENA0 +clocken0 => ram_block1a7.ENA0 +clocken0 => ram_block1a8.ENA0 +clocken0 => ram_block1a9.ENA0 +clocken0 => ram_block1a10.ENA0 +clocken0 => ram_block1a11.ENA0 +clocken0 => ram_block1a12.ENA0 +clocken0 => ram_block1a13.ENA0 +clocken0 => ram_block1a14.ENA0 +clocken0 => ram_block1a15.ENA0 +clocken0 => ram_block1a16.ENA0 +clocken0 => ram_block1a17.ENA0 +clocken0 => ram_block1a18.ENA0 +clocken0 => ram_block1a19.ENA0 +clocken0 => ram_block1a20.ENA0 +clocken0 => ram_block1a21.ENA0 +clocken0 => ram_block1a22.ENA0 +clocken0 => ram_block1a23.ENA0 +clocken0 => ram_block1a24.ENA0 +clocken0 => ram_block1a25.ENA0 +clocken0 => ram_block1a26.ENA0 +clocken0 => ram_block1a27.ENA0 +clocken0 => ram_block1a28.ENA0 +clocken0 => ram_block1a29.ENA0 +clocken0 => ram_block1a30.ENA0 +clocken0 => ram_block1a31.ENA0 +clocken0 => ram_block1a32.ENA0 +clocken0 => ram_block1a33.ENA0 +clocken0 => ram_block1a34.ENA0 +clocken0 => ram_block1a35.ENA0 +clocken0 => ram_block1a36.ENA0 +clocken0 => ram_block1a37.ENA0 +clocken0 => ram_block1a38.ENA0 +clocken0 => ram_block1a39.ENA0 +clocken0 => ram_block1a40.ENA0 +clocken0 => ram_block1a41.ENA0 +clocken0 => ram_block1a42.ENA0 +clocken0 => ram_block1a43.ENA0 +clocken0 => ram_block1a44.ENA0 +clocken0 => ram_block1a45.ENA0 +clocken0 => ram_block1a46.ENA0 +clocken0 => ram_block1a47.ENA0 +clocken0 => ram_block1a48.ENA0 +clocken0 => ram_block1a49.ENA0 +clocken0 => ram_block1a50.ENA0 +clocken0 => ram_block1a51.ENA0 +clocken0 => ram_block1a52.ENA0 +clocken0 => ram_block1a53.ENA0 +clocken0 => ram_block1a54.ENA0 +clocken0 => ram_block1a55.ENA0 +clocken0 => ram_block1a56.ENA0 +clocken0 => ram_block1a57.ENA0 +clocken0 => ram_block1a58.ENA0 +clocken0 => ram_block1a59.ENA0 +clocken0 => ram_block1a60.ENA0 +clocken0 => ram_block1a61.ENA0 +clocken0 => ram_block1a62.ENA0 +clocken0 => ram_block1a63.ENA0 +clocken0 => ram_block1a64.ENA0 +clocken0 => ram_block1a65.ENA0 +clocken0 => ram_block1a66.ENA0 +clocken0 => ram_block1a67.ENA0 +clocken0 => ram_block1a68.ENA0 +clocken0 => ram_block1a69.ENA0 +clocken0 => ram_block1a70.ENA0 +clocken0 => ram_block1a71.ENA0 +clocken0 => ram_block1a72.ENA0 +clocken0 => ram_block1a73.ENA0 +clocken0 => ram_block1a74.ENA0 +clocken0 => ram_block1a75.ENA0 +clocken0 => ram_block1a76.ENA0 +clocken0 => ram_block1a77.ENA0 +clocken0 => ram_block1a78.ENA0 +clocken0 => ram_block1a79.ENA0 +clocken0 => ram_block1a80.ENA0 +clocken0 => ram_block1a81.ENA0 +clocken0 => ram_block1a82.ENA0 +clocken0 => ram_block1a83.ENA0 +clocken0 => ram_block1a84.ENA0 +clocken0 => ram_block1a85.ENA0 +clocken0 => ram_block1a86.ENA0 +clocken0 => ram_block1a87.ENA0 +clocken0 => ram_block1a88.ENA0 +clocken0 => ram_block1a89.ENA0 +clocken0 => ram_block1a90.ENA0 +clocken0 => ram_block1a91.ENA0 +clocken0 => ram_block1a92.ENA0 +clocken0 => ram_block1a93.ENA0 +clocken0 => ram_block1a94.ENA0 +clocken0 => ram_block1a95.ENA0 +clocken0 => ram_block1a96.ENA0 +clocken0 => ram_block1a97.ENA0 +clocken0 => ram_block1a98.ENA0 +clocken0 => ram_block1a99.ENA0 +clocken0 => ram_block1a100.ENA0 +clocken0 => ram_block1a101.ENA0 +clocken0 => ram_block1a102.ENA0 +clocken0 => ram_block1a103.ENA0 +clocken0 => ram_block1a104.ENA0 +clocken0 => ram_block1a105.ENA0 +clocken0 => ram_block1a106.ENA0 +clocken0 => ram_block1a107.ENA0 +clocken0 => ram_block1a108.ENA0 +clocken0 => ram_block1a109.ENA0 +clocken0 => ram_block1a110.ENA0 +clocken0 => ram_block1a111.ENA0 +clocken0 => ram_block1a112.ENA0 +clocken0 => ram_block1a113.ENA0 +clocken0 => ram_block1a114.ENA0 +clocken0 => ram_block1a115.ENA0 +clocken0 => ram_block1a116.ENA0 +clocken0 => ram_block1a117.ENA0 +clocken0 => ram_block1a118.ENA0 +clocken0 => ram_block1a119.ENA0 +clocken0 => ram_block1a120.ENA0 +clocken0 => ram_block1a121.ENA0 +clocken0 => ram_block1a122.ENA0 +clocken0 => ram_block1a123.ENA0 +clocken0 => ram_block1a124.ENA0 +clocken0 => ram_block1a125.ENA0 +clocken0 => ram_block1a126.ENA0 +clocken0 => ram_block1a127.ENA0 +clocken0 => ram_block1a128.ENA0 +clocken0 => ram_block1a129.ENA0 +clocken0 => ram_block1a130.ENA0 +clocken0 => ram_block1a131.ENA0 +clocken0 => ram_block1a132.ENA0 +clocken0 => ram_block1a133.ENA0 +clocken0 => ram_block1a134.ENA0 +clocken0 => ram_block1a135.ENA0 +clocken0 => ram_block1a136.ENA0 +clocken0 => ram_block1a137.ENA0 +clocken0 => ram_block1a138.ENA0 +clocken0 => ram_block1a139.ENA0 +clocken0 => ram_block1a140.ENA0 +clocken0 => ram_block1a141.ENA0 +clocken0 => ram_block1a142.ENA0 +clocken0 => ram_block1a143.ENA0 +clocken0 => ram_block1a144.ENA0 +clocken0 => ram_block1a145.ENA0 +clocken0 => ram_block1a146.ENA0 +clocken0 => ram_block1a147.ENA0 +clocken0 => ram_block1a148.ENA0 +clocken0 => ram_block1a149.ENA0 +clocken0 => ram_block1a150.ENA0 +clocken0 => ram_block1a151.ENA0 +clocken0 => ram_block1a152.ENA0 +clocken0 => ram_block1a153.ENA0 +clocken0 => ram_block1a154.ENA0 +clocken0 => ram_block1a155.ENA0 +clocken0 => ram_block1a156.ENA0 +clocken0 => ram_block1a157.ENA0 +clocken0 => ram_block1a158.ENA0 +clocken0 => ram_block1a159.ENA0 +clocken0 => ram_block1a160.ENA0 +clocken0 => ram_block1a161.ENA0 +clocken0 => ram_block1a162.ENA0 +clocken0 => ram_block1a163.ENA0 +clocken0 => ram_block1a164.ENA0 +clocken0 => ram_block1a165.ENA0 +clocken0 => ram_block1a166.ENA0 +clocken0 => ram_block1a167.ENA0 +clocken0 => ram_block1a168.ENA0 +clocken0 => ram_block1a169.ENA0 +clocken0 => ram_block1a170.ENA0 +clocken0 => ram_block1a171.ENA0 +clocken0 => ram_block1a172.ENA0 +clocken0 => ram_block1a173.ENA0 +clocken0 => ram_block1a174.ENA0 +clocken0 => ram_block1a175.ENA0 +clocken0 => ram_block1a176.ENA0 +clocken0 => ram_block1a177.ENA0 +clocken0 => ram_block1a178.ENA0 +clocken0 => ram_block1a179.ENA0 +clocken0 => ram_block1a180.ENA0 +clocken0 => ram_block1a181.ENA0 +clocken0 => ram_block1a182.ENA0 +clocken0 => ram_block1a183.ENA0 +clocken0 => ram_block1a184.ENA0 +clocken0 => ram_block1a185.ENA0 +clocken0 => ram_block1a186.ENA0 +clocken0 => ram_block1a187.ENA0 +clocken0 => ram_block1a188.ENA0 +clocken0 => ram_block1a189.ENA0 +clocken0 => ram_block1a190.ENA0 +clocken0 => ram_block1a191.ENA0 +clocken0 => ram_block1a192.ENA0 +clocken0 => ram_block1a193.ENA0 +clocken0 => ram_block1a194.ENA0 +clocken0 => ram_block1a195.ENA0 +clocken0 => ram_block1a196.ENA0 +clocken0 => ram_block1a197.ENA0 +clocken0 => ram_block1a198.ENA0 +clocken0 => ram_block1a199.ENA0 +clocken0 => ram_block1a200.ENA0 +clocken0 => ram_block1a201.ENA0 +clocken0 => ram_block1a202.ENA0 +clocken0 => ram_block1a203.ENA0 +clocken0 => ram_block1a204.ENA0 +clocken0 => ram_block1a205.ENA0 +clocken0 => ram_block1a206.ENA0 +clocken0 => ram_block1a207.ENA0 +clocken0 => ram_block1a208.ENA0 +clocken0 => ram_block1a209.ENA0 +clocken0 => ram_block1a210.ENA0 +clocken0 => ram_block1a211.ENA0 +clocken0 => ram_block1a212.ENA0 +clocken0 => ram_block1a213.ENA0 +clocken0 => ram_block1a214.ENA0 +clocken0 => ram_block1a215.ENA0 +clocken0 => ram_block1a216.ENA0 +clocken0 => ram_block1a217.ENA0 +clocken0 => ram_block1a218.ENA0 +clocken0 => ram_block1a219.ENA0 +clocken0 => ram_block1a220.ENA0 +clocken0 => ram_block1a221.ENA0 +clocken0 => ram_block1a222.ENA0 +clocken0 => ram_block1a223.ENA0 +clocken0 => address_reg_a[2].ENA +clocken0 => address_reg_a[1].ENA +clocken0 => address_reg_a[0].ENA +data_a[0] => ram_block1a0.PORTADATAIN +data_a[0] => ram_block1a32.PORTADATAIN +data_a[0] => ram_block1a64.PORTADATAIN +data_a[0] => ram_block1a96.PORTADATAIN +data_a[0] => ram_block1a128.PORTADATAIN +data_a[0] => ram_block1a160.PORTADATAIN +data_a[0] => ram_block1a192.PORTADATAIN +data_a[1] => ram_block1a1.PORTADATAIN +data_a[1] => ram_block1a33.PORTADATAIN +data_a[1] => ram_block1a65.PORTADATAIN +data_a[1] => ram_block1a97.PORTADATAIN +data_a[1] => ram_block1a129.PORTADATAIN +data_a[1] => ram_block1a161.PORTADATAIN +data_a[1] => ram_block1a193.PORTADATAIN +data_a[2] => ram_block1a2.PORTADATAIN +data_a[2] => ram_block1a34.PORTADATAIN +data_a[2] => ram_block1a66.PORTADATAIN +data_a[2] => ram_block1a98.PORTADATAIN +data_a[2] => ram_block1a130.PORTADATAIN +data_a[2] => ram_block1a162.PORTADATAIN +data_a[2] => ram_block1a194.PORTADATAIN +data_a[3] => ram_block1a3.PORTADATAIN +data_a[3] => ram_block1a35.PORTADATAIN +data_a[3] => ram_block1a67.PORTADATAIN +data_a[3] => ram_block1a99.PORTADATAIN +data_a[3] => ram_block1a131.PORTADATAIN +data_a[3] => ram_block1a163.PORTADATAIN +data_a[3] => ram_block1a195.PORTADATAIN +data_a[4] => ram_block1a4.PORTADATAIN +data_a[4] => ram_block1a36.PORTADATAIN +data_a[4] => ram_block1a68.PORTADATAIN +data_a[4] => ram_block1a100.PORTADATAIN +data_a[4] => ram_block1a132.PORTADATAIN +data_a[4] => ram_block1a164.PORTADATAIN +data_a[4] => ram_block1a196.PORTADATAIN +data_a[5] => ram_block1a5.PORTADATAIN +data_a[5] => ram_block1a37.PORTADATAIN +data_a[5] => ram_block1a69.PORTADATAIN +data_a[5] => ram_block1a101.PORTADATAIN +data_a[5] => ram_block1a133.PORTADATAIN +data_a[5] => ram_block1a165.PORTADATAIN +data_a[5] => ram_block1a197.PORTADATAIN +data_a[6] => ram_block1a6.PORTADATAIN +data_a[6] => ram_block1a38.PORTADATAIN +data_a[6] => ram_block1a70.PORTADATAIN +data_a[6] => ram_block1a102.PORTADATAIN +data_a[6] => ram_block1a134.PORTADATAIN +data_a[6] => ram_block1a166.PORTADATAIN +data_a[6] => ram_block1a198.PORTADATAIN +data_a[7] => ram_block1a7.PORTADATAIN +data_a[7] => ram_block1a39.PORTADATAIN +data_a[7] => ram_block1a71.PORTADATAIN +data_a[7] => ram_block1a103.PORTADATAIN +data_a[7] => ram_block1a135.PORTADATAIN +data_a[7] => ram_block1a167.PORTADATAIN +data_a[7] => ram_block1a199.PORTADATAIN +data_a[8] => ram_block1a8.PORTADATAIN +data_a[8] => ram_block1a40.PORTADATAIN +data_a[8] => ram_block1a72.PORTADATAIN +data_a[8] => ram_block1a104.PORTADATAIN +data_a[8] => ram_block1a136.PORTADATAIN +data_a[8] => ram_block1a168.PORTADATAIN +data_a[8] => ram_block1a200.PORTADATAIN +data_a[9] => ram_block1a9.PORTADATAIN +data_a[9] => ram_block1a41.PORTADATAIN +data_a[9] => ram_block1a73.PORTADATAIN +data_a[9] => ram_block1a105.PORTADATAIN +data_a[9] => ram_block1a137.PORTADATAIN +data_a[9] => ram_block1a169.PORTADATAIN +data_a[9] => ram_block1a201.PORTADATAIN +data_a[10] => ram_block1a10.PORTADATAIN +data_a[10] => ram_block1a42.PORTADATAIN +data_a[10] => ram_block1a74.PORTADATAIN +data_a[10] => ram_block1a106.PORTADATAIN +data_a[10] => ram_block1a138.PORTADATAIN +data_a[10] => ram_block1a170.PORTADATAIN +data_a[10] => ram_block1a202.PORTADATAIN +data_a[11] => ram_block1a11.PORTADATAIN +data_a[11] => ram_block1a43.PORTADATAIN +data_a[11] => ram_block1a75.PORTADATAIN +data_a[11] => ram_block1a107.PORTADATAIN +data_a[11] => ram_block1a139.PORTADATAIN +data_a[11] => ram_block1a171.PORTADATAIN +data_a[11] => ram_block1a203.PORTADATAIN +data_a[12] => ram_block1a12.PORTADATAIN +data_a[12] => ram_block1a44.PORTADATAIN +data_a[12] => ram_block1a76.PORTADATAIN +data_a[12] => ram_block1a108.PORTADATAIN +data_a[12] => ram_block1a140.PORTADATAIN +data_a[12] => ram_block1a172.PORTADATAIN +data_a[12] => ram_block1a204.PORTADATAIN +data_a[13] => ram_block1a13.PORTADATAIN +data_a[13] => ram_block1a45.PORTADATAIN +data_a[13] => ram_block1a77.PORTADATAIN +data_a[13] => ram_block1a109.PORTADATAIN +data_a[13] => ram_block1a141.PORTADATAIN +data_a[13] => ram_block1a173.PORTADATAIN +data_a[13] => ram_block1a205.PORTADATAIN +data_a[14] => ram_block1a14.PORTADATAIN +data_a[14] => ram_block1a46.PORTADATAIN +data_a[14] => ram_block1a78.PORTADATAIN +data_a[14] => ram_block1a110.PORTADATAIN +data_a[14] => ram_block1a142.PORTADATAIN +data_a[14] => ram_block1a174.PORTADATAIN +data_a[14] => ram_block1a206.PORTADATAIN +data_a[15] => ram_block1a15.PORTADATAIN +data_a[15] => ram_block1a47.PORTADATAIN +data_a[15] => ram_block1a79.PORTADATAIN +data_a[15] => ram_block1a111.PORTADATAIN +data_a[15] => ram_block1a143.PORTADATAIN +data_a[15] => ram_block1a175.PORTADATAIN +data_a[15] => ram_block1a207.PORTADATAIN +data_a[16] => ram_block1a16.PORTADATAIN +data_a[16] => ram_block1a48.PORTADATAIN +data_a[16] => ram_block1a80.PORTADATAIN +data_a[16] => ram_block1a112.PORTADATAIN +data_a[16] => ram_block1a144.PORTADATAIN +data_a[16] => ram_block1a176.PORTADATAIN +data_a[16] => ram_block1a208.PORTADATAIN +data_a[17] => ram_block1a17.PORTADATAIN +data_a[17] => ram_block1a49.PORTADATAIN +data_a[17] => ram_block1a81.PORTADATAIN +data_a[17] => ram_block1a113.PORTADATAIN +data_a[17] => ram_block1a145.PORTADATAIN +data_a[17] => ram_block1a177.PORTADATAIN +data_a[17] => ram_block1a209.PORTADATAIN +data_a[18] => ram_block1a18.PORTADATAIN +data_a[18] => ram_block1a50.PORTADATAIN +data_a[18] => ram_block1a82.PORTADATAIN +data_a[18] => ram_block1a114.PORTADATAIN +data_a[18] => ram_block1a146.PORTADATAIN +data_a[18] => ram_block1a178.PORTADATAIN +data_a[18] => ram_block1a210.PORTADATAIN +data_a[19] => ram_block1a19.PORTADATAIN +data_a[19] => ram_block1a51.PORTADATAIN +data_a[19] => ram_block1a83.PORTADATAIN +data_a[19] => ram_block1a115.PORTADATAIN +data_a[19] => ram_block1a147.PORTADATAIN +data_a[19] => ram_block1a179.PORTADATAIN +data_a[19] => ram_block1a211.PORTADATAIN +data_a[20] => ram_block1a20.PORTADATAIN +data_a[20] => ram_block1a52.PORTADATAIN +data_a[20] => ram_block1a84.PORTADATAIN +data_a[20] => ram_block1a116.PORTADATAIN +data_a[20] => ram_block1a148.PORTADATAIN +data_a[20] => ram_block1a180.PORTADATAIN +data_a[20] => ram_block1a212.PORTADATAIN +data_a[21] => ram_block1a21.PORTADATAIN +data_a[21] => ram_block1a53.PORTADATAIN +data_a[21] => ram_block1a85.PORTADATAIN +data_a[21] => ram_block1a117.PORTADATAIN +data_a[21] => ram_block1a149.PORTADATAIN +data_a[21] => ram_block1a181.PORTADATAIN +data_a[21] => ram_block1a213.PORTADATAIN +data_a[22] => ram_block1a22.PORTADATAIN +data_a[22] => ram_block1a54.PORTADATAIN +data_a[22] => ram_block1a86.PORTADATAIN +data_a[22] => ram_block1a118.PORTADATAIN +data_a[22] => ram_block1a150.PORTADATAIN +data_a[22] => ram_block1a182.PORTADATAIN +data_a[22] => ram_block1a214.PORTADATAIN +data_a[23] => ram_block1a23.PORTADATAIN +data_a[23] => ram_block1a55.PORTADATAIN +data_a[23] => ram_block1a87.PORTADATAIN +data_a[23] => ram_block1a119.PORTADATAIN +data_a[23] => ram_block1a151.PORTADATAIN +data_a[23] => ram_block1a183.PORTADATAIN +data_a[23] => ram_block1a215.PORTADATAIN +data_a[24] => ram_block1a24.PORTADATAIN +data_a[24] => ram_block1a56.PORTADATAIN +data_a[24] => ram_block1a88.PORTADATAIN +data_a[24] => ram_block1a120.PORTADATAIN +data_a[24] => ram_block1a152.PORTADATAIN +data_a[24] => ram_block1a184.PORTADATAIN +data_a[24] => ram_block1a216.PORTADATAIN +data_a[25] => ram_block1a25.PORTADATAIN +data_a[25] => ram_block1a57.PORTADATAIN +data_a[25] => ram_block1a89.PORTADATAIN +data_a[25] => ram_block1a121.PORTADATAIN +data_a[25] => ram_block1a153.PORTADATAIN +data_a[25] => ram_block1a185.PORTADATAIN +data_a[25] => ram_block1a217.PORTADATAIN +data_a[26] => ram_block1a26.PORTADATAIN +data_a[26] => ram_block1a58.PORTADATAIN +data_a[26] => ram_block1a90.PORTADATAIN +data_a[26] => ram_block1a122.PORTADATAIN +data_a[26] => ram_block1a154.PORTADATAIN +data_a[26] => ram_block1a186.PORTADATAIN +data_a[26] => ram_block1a218.PORTADATAIN +data_a[27] => ram_block1a27.PORTADATAIN +data_a[27] => ram_block1a59.PORTADATAIN +data_a[27] => ram_block1a91.PORTADATAIN +data_a[27] => ram_block1a123.PORTADATAIN +data_a[27] => ram_block1a155.PORTADATAIN +data_a[27] => ram_block1a187.PORTADATAIN +data_a[27] => ram_block1a219.PORTADATAIN +data_a[28] => ram_block1a28.PORTADATAIN +data_a[28] => ram_block1a60.PORTADATAIN +data_a[28] => ram_block1a92.PORTADATAIN +data_a[28] => ram_block1a124.PORTADATAIN +data_a[28] => ram_block1a156.PORTADATAIN +data_a[28] => ram_block1a188.PORTADATAIN +data_a[28] => ram_block1a220.PORTADATAIN +data_a[29] => ram_block1a29.PORTADATAIN +data_a[29] => ram_block1a61.PORTADATAIN +data_a[29] => ram_block1a93.PORTADATAIN +data_a[29] => ram_block1a125.PORTADATAIN +data_a[29] => ram_block1a157.PORTADATAIN +data_a[29] => ram_block1a189.PORTADATAIN +data_a[29] => ram_block1a221.PORTADATAIN +data_a[30] => ram_block1a30.PORTADATAIN +data_a[30] => ram_block1a62.PORTADATAIN +data_a[30] => ram_block1a94.PORTADATAIN +data_a[30] => ram_block1a126.PORTADATAIN +data_a[30] => ram_block1a158.PORTADATAIN +data_a[30] => ram_block1a190.PORTADATAIN +data_a[30] => ram_block1a222.PORTADATAIN +data_a[31] => ram_block1a31.PORTADATAIN +data_a[31] => ram_block1a63.PORTADATAIN +data_a[31] => ram_block1a95.PORTADATAIN +data_a[31] => ram_block1a127.PORTADATAIN +data_a[31] => ram_block1a159.PORTADATAIN +data_a[31] => ram_block1a191.PORTADATAIN +data_a[31] => ram_block1a223.PORTADATAIN +q_a[0] <= mux_nob:mux2.result[0] +q_a[1] <= mux_nob:mux2.result[1] +q_a[2] <= mux_nob:mux2.result[2] +q_a[3] <= mux_nob:mux2.result[3] +q_a[4] <= mux_nob:mux2.result[4] +q_a[5] <= mux_nob:mux2.result[5] +q_a[6] <= mux_nob:mux2.result[6] +q_a[7] <= mux_nob:mux2.result[7] +q_a[8] <= mux_nob:mux2.result[8] +q_a[9] <= mux_nob:mux2.result[9] +q_a[10] <= mux_nob:mux2.result[10] +q_a[11] <= mux_nob:mux2.result[11] +q_a[12] <= mux_nob:mux2.result[12] +q_a[13] <= mux_nob:mux2.result[13] +q_a[14] <= mux_nob:mux2.result[14] +q_a[15] <= mux_nob:mux2.result[15] +q_a[16] <= mux_nob:mux2.result[16] +q_a[17] <= mux_nob:mux2.result[17] +q_a[18] <= mux_nob:mux2.result[18] +q_a[19] <= mux_nob:mux2.result[19] +q_a[20] <= mux_nob:mux2.result[20] +q_a[21] <= mux_nob:mux2.result[21] +q_a[22] <= mux_nob:mux2.result[22] +q_a[23] <= mux_nob:mux2.result[23] +q_a[24] <= mux_nob:mux2.result[24] +q_a[25] <= mux_nob:mux2.result[25] +q_a[26] <= mux_nob:mux2.result[26] +q_a[27] <= mux_nob:mux2.result[27] +q_a[28] <= mux_nob:mux2.result[28] +q_a[29] <= mux_nob:mux2.result[29] +q_a[30] <= mux_nob:mux2.result[30] +q_a[31] <= mux_nob:mux2.result[31] +wren_a => decode_qsa:decode3.enable + + +|lights|nios_system:NiosII|nios_system_onchip_memory:onchip_memory|altsyncram:the_altsyncram|altsyncram_4ed1:auto_generated|decode_qsa:decode3 +data[0] => w_anode1849w[1].IN0 +data[0] => w_anode1866w[1].IN1 +data[0] => w_anode1876w[1].IN0 +data[0] => w_anode1886w[1].IN1 +data[0] => w_anode1896w[1].IN0 +data[0] => w_anode1906w[1].IN1 +data[0] => w_anode1916w[1].IN0 +data[0] => w_anode1926w[1].IN1 +data[1] => w_anode1849w[2].IN0 +data[1] => w_anode1866w[2].IN0 +data[1] => w_anode1876w[2].IN1 +data[1] => w_anode1886w[2].IN1 +data[1] => w_anode1896w[2].IN0 +data[1] => w_anode1906w[2].IN0 +data[1] => w_anode1916w[2].IN1 +data[1] => w_anode1926w[2].IN1 +data[2] => w_anode1849w[3].IN0 +data[2] => w_anode1866w[3].IN0 +data[2] => w_anode1876w[3].IN0 +data[2] => w_anode1886w[3].IN0 +data[2] => w_anode1896w[3].IN1 +data[2] => w_anode1906w[3].IN1 +data[2] => w_anode1916w[3].IN1 +data[2] => w_anode1926w[3].IN1 +enable => w_anode1849w[1].IN0 +enable => w_anode1866w[1].IN0 +enable => w_anode1876w[1].IN0 +enable => w_anode1886w[1].IN0 +enable => w_anode1896w[1].IN0 +enable => w_anode1906w[1].IN0 +enable => w_anode1916w[1].IN0 +enable => w_anode1926w[1].IN0 +eq[0] <= w_anode1849w[3].DB_MAX_OUTPUT_PORT_TYPE +eq[1] <= w_anode1866w[3].DB_MAX_OUTPUT_PORT_TYPE +eq[2] <= w_anode1876w[3].DB_MAX_OUTPUT_PORT_TYPE +eq[3] <= w_anode1886w[3].DB_MAX_OUTPUT_PORT_TYPE +eq[4] <= w_anode1896w[3].DB_MAX_OUTPUT_PORT_TYPE +eq[5] <= w_anode1906w[3].DB_MAX_OUTPUT_PORT_TYPE +eq[6] <= w_anode1916w[3].DB_MAX_OUTPUT_PORT_TYPE + + +|lights|nios_system:NiosII|nios_system_onchip_memory:onchip_memory|altsyncram:the_altsyncram|altsyncram_4ed1:auto_generated|mux_nob:mux2 +data[0] => _.IN0 +data[0] => _.IN0 +data[1] => _.IN0 +data[1] => _.IN0 +data[2] => _.IN0 +data[2] => _.IN0 +data[3] => _.IN0 +data[3] => _.IN0 +data[4] => _.IN0 +data[4] => _.IN0 +data[5] => _.IN0 +data[5] => _.IN0 +data[6] => _.IN0 +data[6] => _.IN0 +data[7] => _.IN0 +data[7] => _.IN0 +data[8] => _.IN0 +data[8] => _.IN0 +data[9] => _.IN0 +data[9] => _.IN0 +data[10] => _.IN0 +data[10] => _.IN0 +data[11] => _.IN0 +data[11] => _.IN0 +data[12] => _.IN0 +data[12] => _.IN0 +data[13] => _.IN0 +data[13] => _.IN0 +data[14] => _.IN0 +data[14] => _.IN0 +data[15] => _.IN0 +data[15] => _.IN0 +data[16] => _.IN0 +data[16] => _.IN0 +data[17] => _.IN0 +data[17] => _.IN0 +data[18] => _.IN0 +data[18] => _.IN0 +data[19] => _.IN0 +data[19] => _.IN0 +data[20] => _.IN0 +data[20] => _.IN0 +data[21] => _.IN0 +data[21] => _.IN0 +data[22] => _.IN0 +data[22] => _.IN0 +data[23] => _.IN0 +data[23] => _.IN0 +data[24] => _.IN0 +data[24] => _.IN0 +data[25] => _.IN0 +data[25] => _.IN0 +data[26] => _.IN0 +data[26] => _.IN0 +data[27] => _.IN0 +data[27] => _.IN0 +data[28] => _.IN0 +data[28] => _.IN0 +data[29] => _.IN0 +data[29] => _.IN0 +data[30] => _.IN0 +data[30] => _.IN0 +data[31] => _.IN0 +data[31] => _.IN0 +data[32] => _.IN0 +data[33] => _.IN0 +data[34] => _.IN0 +data[35] => _.IN0 +data[36] => _.IN0 +data[37] => _.IN0 +data[38] => _.IN0 +data[39] => _.IN0 +data[40] => _.IN0 +data[41] => _.IN0 +data[42] => _.IN0 +data[43] => _.IN0 +data[44] => _.IN0 +data[45] => _.IN0 +data[46] => _.IN0 +data[47] => _.IN0 +data[48] => _.IN0 +data[49] => _.IN0 +data[50] => _.IN0 +data[51] => _.IN0 +data[52] => _.IN0 +data[53] => _.IN0 +data[54] => _.IN0 +data[55] => _.IN0 +data[56] => _.IN0 +data[57] => _.IN0 +data[58] => _.IN0 +data[59] => _.IN0 +data[60] => _.IN0 +data[61] => _.IN0 +data[62] => _.IN0 +data[63] => _.IN0 +data[64] => _.IN1 +data[64] => _.IN1 +data[65] => _.IN1 +data[65] => _.IN1 +data[66] => _.IN1 +data[66] => _.IN1 +data[67] => _.IN1 +data[67] => _.IN1 +data[68] => _.IN1 +data[68] => _.IN1 +data[69] => _.IN1 +data[69] => _.IN1 +data[70] => _.IN1 +data[70] => _.IN1 +data[71] => _.IN1 +data[71] => _.IN1 +data[72] => _.IN1 +data[72] => _.IN1 +data[73] => _.IN1 +data[73] => _.IN1 +data[74] => _.IN1 +data[74] => _.IN1 +data[75] => _.IN1 +data[75] => _.IN1 +data[76] => _.IN1 +data[76] => _.IN1 +data[77] => _.IN1 +data[77] => _.IN1 +data[78] => _.IN1 +data[78] => _.IN1 +data[79] => _.IN1 +data[79] => _.IN1 +data[80] => _.IN1 +data[80] => _.IN1 +data[81] => _.IN1 +data[81] => _.IN1 +data[82] => _.IN1 +data[82] => _.IN1 +data[83] => _.IN1 +data[83] => _.IN1 +data[84] => _.IN1 +data[84] => _.IN1 +data[85] => _.IN1 +data[85] => _.IN1 +data[86] => _.IN1 +data[86] => _.IN1 +data[87] => _.IN1 +data[87] => _.IN1 +data[88] => _.IN1 +data[88] => _.IN1 +data[89] => _.IN1 +data[89] => _.IN1 +data[90] => _.IN1 +data[90] => _.IN1 +data[91] => _.IN1 +data[91] => _.IN1 +data[92] => _.IN1 +data[92] => _.IN1 +data[93] => _.IN1 +data[93] => _.IN1 +data[94] => _.IN1 +data[94] => _.IN1 +data[95] => _.IN1 +data[95] => _.IN1 +data[96] => _.IN0 +data[97] => _.IN0 +data[98] => _.IN0 +data[99] => _.IN0 +data[100] => _.IN0 +data[101] => _.IN0 +data[102] => _.IN0 +data[103] => _.IN0 +data[104] => _.IN0 +data[105] => _.IN0 +data[106] => _.IN0 +data[107] => _.IN0 +data[108] => _.IN0 +data[109] => _.IN0 +data[110] => _.IN0 +data[111] => _.IN0 +data[112] => _.IN0 +data[113] => _.IN0 +data[114] => _.IN0 +data[115] => _.IN0 +data[116] => _.IN0 +data[117] => _.IN0 +data[118] => _.IN0 +data[119] => _.IN0 +data[120] => _.IN0 +data[121] => _.IN0 +data[122] => _.IN0 +data[123] => _.IN0 +data[124] => _.IN0 +data[125] => _.IN0 +data[126] => _.IN0 +data[127] => _.IN0 +data[128] => _.IN0 +data[128] => _.IN0 +data[129] => _.IN0 +data[129] => _.IN0 +data[130] => _.IN0 +data[130] => _.IN0 +data[131] => _.IN0 +data[131] => _.IN0 +data[132] => _.IN0 +data[132] => _.IN0 +data[133] => _.IN0 +data[133] => _.IN0 +data[134] => _.IN0 +data[134] => _.IN0 +data[135] => _.IN0 +data[135] => _.IN0 +data[136] => _.IN0 +data[136] => _.IN0 +data[137] => _.IN0 +data[137] => _.IN0 +data[138] => _.IN0 +data[138] => _.IN0 +data[139] => _.IN0 +data[139] => _.IN0 +data[140] => _.IN0 +data[140] => _.IN0 +data[141] => _.IN0 +data[141] => _.IN0 +data[142] => _.IN0 +data[142] => _.IN0 +data[143] => _.IN0 +data[143] => _.IN0 +data[144] => _.IN0 +data[144] => _.IN0 +data[145] => _.IN0 +data[145] => _.IN0 +data[146] => _.IN0 +data[146] => _.IN0 +data[147] => _.IN0 +data[147] => _.IN0 +data[148] => _.IN0 +data[148] => _.IN0 +data[149] => _.IN0 +data[149] => _.IN0 +data[150] => _.IN0 +data[150] => _.IN0 +data[151] => _.IN0 +data[151] => _.IN0 +data[152] => _.IN0 +data[152] => _.IN0 +data[153] => _.IN0 +data[153] => _.IN0 +data[154] => _.IN0 +data[154] => _.IN0 +data[155] => _.IN0 +data[155] => _.IN0 +data[156] => _.IN0 +data[156] => _.IN0 +data[157] => _.IN0 +data[157] => _.IN0 +data[158] => _.IN0 +data[158] => _.IN0 +data[159] => _.IN0 +data[159] => _.IN0 +data[160] => _.IN0 +data[161] => _.IN0 +data[162] => _.IN0 +data[163] => _.IN0 +data[164] => _.IN0 +data[165] => _.IN0 +data[166] => _.IN0 +data[167] => _.IN0 +data[168] => _.IN0 +data[169] => _.IN0 +data[170] => _.IN0 +data[171] => _.IN0 +data[172] => _.IN0 +data[173] => _.IN0 +data[174] => _.IN0 +data[175] => _.IN0 +data[176] => _.IN0 +data[177] => _.IN0 +data[178] => _.IN0 +data[179] => _.IN0 +data[180] => _.IN0 +data[181] => _.IN0 +data[182] => _.IN0 +data[183] => _.IN0 +data[184] => _.IN0 +data[185] => _.IN0 +data[186] => _.IN0 +data[187] => _.IN0 +data[188] => _.IN0 +data[189] => _.IN0 +data[190] => _.IN0 +data[191] => _.IN0 +data[192] => _.IN1 +data[192] => _.IN1 +data[193] => _.IN1 +data[193] => _.IN1 +data[194] => _.IN1 +data[194] => _.IN1 +data[195] => _.IN1 +data[195] => _.IN1 +data[196] => _.IN1 +data[196] => _.IN1 +data[197] => _.IN1 +data[197] => _.IN1 +data[198] => _.IN1 +data[198] => _.IN1 +data[199] => _.IN1 +data[199] => _.IN1 +data[200] => _.IN1 +data[200] => _.IN1 +data[201] => _.IN1 +data[201] => _.IN1 +data[202] => _.IN1 +data[202] => _.IN1 +data[203] => _.IN1 +data[203] => _.IN1 +data[204] => _.IN1 +data[204] => _.IN1 +data[205] => _.IN1 +data[205] => _.IN1 +data[206] => _.IN1 +data[206] => _.IN1 +data[207] => _.IN1 +data[207] => _.IN1 +data[208] => _.IN1 +data[208] => _.IN1 +data[209] => _.IN1 +data[209] => _.IN1 +data[210] => _.IN1 +data[210] => _.IN1 +data[211] => _.IN1 +data[211] => _.IN1 +data[212] => _.IN1 +data[212] => _.IN1 +data[213] => _.IN1 +data[213] => _.IN1 +data[214] => _.IN1 +data[214] => _.IN1 +data[215] => _.IN1 +data[215] => _.IN1 +data[216] => _.IN1 +data[216] => _.IN1 +data[217] => _.IN1 +data[217] => _.IN1 +data[218] => _.IN1 +data[218] => _.IN1 +data[219] => _.IN1 +data[219] => _.IN1 +data[220] => _.IN1 +data[220] => _.IN1 +data[221] => _.IN1 +data[221] => _.IN1 +data[222] => _.IN1 +data[222] => _.IN1 +data[223] => _.IN1 +data[223] => _.IN1 +result[0] <= result_node[0].DB_MAX_OUTPUT_PORT_TYPE +result[1] <= result_node[1].DB_MAX_OUTPUT_PORT_TYPE +result[2] <= result_node[2].DB_MAX_OUTPUT_PORT_TYPE +result[3] <= result_node[3].DB_MAX_OUTPUT_PORT_TYPE +result[4] <= result_node[4].DB_MAX_OUTPUT_PORT_TYPE +result[5] <= result_node[5].DB_MAX_OUTPUT_PORT_TYPE +result[6] <= result_node[6].DB_MAX_OUTPUT_PORT_TYPE +result[7] <= result_node[7].DB_MAX_OUTPUT_PORT_TYPE +result[8] <= result_node[8].DB_MAX_OUTPUT_PORT_TYPE +result[9] <= result_node[9].DB_MAX_OUTPUT_PORT_TYPE +result[10] <= result_node[10].DB_MAX_OUTPUT_PORT_TYPE +result[11] <= result_node[11].DB_MAX_OUTPUT_PORT_TYPE +result[12] <= result_node[12].DB_MAX_OUTPUT_PORT_TYPE +result[13] <= result_node[13].DB_MAX_OUTPUT_PORT_TYPE +result[14] <= result_node[14].DB_MAX_OUTPUT_PORT_TYPE +result[15] <= result_node[15].DB_MAX_OUTPUT_PORT_TYPE +result[16] <= result_node[16].DB_MAX_OUTPUT_PORT_TYPE +result[17] <= result_node[17].DB_MAX_OUTPUT_PORT_TYPE +result[18] <= result_node[18].DB_MAX_OUTPUT_PORT_TYPE +result[19] <= result_node[19].DB_MAX_OUTPUT_PORT_TYPE +result[20] <= result_node[20].DB_MAX_OUTPUT_PORT_TYPE +result[21] <= result_node[21].DB_MAX_OUTPUT_PORT_TYPE +result[22] <= result_node[22].DB_MAX_OUTPUT_PORT_TYPE +result[23] <= result_node[23].DB_MAX_OUTPUT_PORT_TYPE +result[24] <= result_node[24].DB_MAX_OUTPUT_PORT_TYPE +result[25] <= result_node[25].DB_MAX_OUTPUT_PORT_TYPE +result[26] <= result_node[26].DB_MAX_OUTPUT_PORT_TYPE +result[27] <= result_node[27].DB_MAX_OUTPUT_PORT_TYPE +result[28] <= result_node[28].DB_MAX_OUTPUT_PORT_TYPE +result[29] <= result_node[29].DB_MAX_OUTPUT_PORT_TYPE +result[30] <= result_node[30].DB_MAX_OUTPUT_PORT_TYPE +result[31] <= result_node[31].DB_MAX_OUTPUT_PORT_TYPE +sel[0] => _.IN1 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN1 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN1 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN1 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN1 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN1 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN1 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN1 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN1 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN1 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN1 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN1 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN1 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN1 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN1 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN1 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN1 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN1 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN1 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN1 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN1 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN1 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN1 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN1 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN1 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN1 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN1 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN1 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN1 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN1 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN1 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN1 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN1 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN1 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN1 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN1 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN1 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN1 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN1 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN1 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN1 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN1 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN1 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN1 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN1 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN1 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN1 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN1 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN1 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN1 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN1 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN1 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN1 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN1 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN1 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN1 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN1 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN1 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN1 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN1 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN1 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN1 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN1 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN1 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[0] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[1] => _.IN0 +sel[2] => result_node[31].IN0 +sel[2] => _.IN0 +sel[2] => result_node[30].IN0 +sel[2] => _.IN0 +sel[2] => result_node[29].IN0 +sel[2] => _.IN0 +sel[2] => result_node[28].IN0 +sel[2] => _.IN0 +sel[2] => result_node[27].IN0 +sel[2] => _.IN0 +sel[2] => result_node[26].IN0 +sel[2] => _.IN0 +sel[2] => result_node[25].IN0 +sel[2] => _.IN0 +sel[2] => result_node[24].IN0 +sel[2] => _.IN0 +sel[2] => result_node[23].IN0 +sel[2] => _.IN0 +sel[2] => result_node[22].IN0 +sel[2] => _.IN0 +sel[2] => result_node[21].IN0 +sel[2] => _.IN0 +sel[2] => result_node[20].IN0 +sel[2] => _.IN0 +sel[2] => result_node[19].IN0 +sel[2] => _.IN0 +sel[2] => result_node[18].IN0 +sel[2] => _.IN0 +sel[2] => result_node[17].IN0 +sel[2] => _.IN0 +sel[2] => result_node[16].IN0 +sel[2] => _.IN0 +sel[2] => result_node[15].IN0 +sel[2] => _.IN0 +sel[2] => result_node[14].IN0 +sel[2] => _.IN0 +sel[2] => result_node[13].IN0 +sel[2] => _.IN0 +sel[2] => result_node[12].IN0 +sel[2] => _.IN0 +sel[2] => result_node[11].IN0 +sel[2] => _.IN0 +sel[2] => result_node[10].IN0 +sel[2] => _.IN0 +sel[2] => result_node[9].IN0 +sel[2] => _.IN0 +sel[2] => result_node[8].IN0 +sel[2] => _.IN0 +sel[2] => result_node[7].IN0 +sel[2] => _.IN0 +sel[2] => result_node[6].IN0 +sel[2] => _.IN0 +sel[2] => result_node[5].IN0 +sel[2] => _.IN0 +sel[2] => result_node[4].IN0 +sel[2] => _.IN0 +sel[2] => result_node[3].IN0 +sel[2] => _.IN0 +sel[2] => result_node[2].IN0 +sel[2] => _.IN0 +sel[2] => result_node[1].IN0 +sel[2] => _.IN0 +sel[2] => result_node[0].IN0 +sel[2] => _.IN0 + + +|lights|nios_system:NiosII|nios_system_jtag_uart:jtag_uart +av_address => ien_AF.OUTPUTSELECT +av_address => ien_AE.OUTPUTSELECT +av_address => ac.OUTPUTSELECT +av_address => fifo_wr.OUTPUTSELECT +av_address => woverflow.OUTPUTSELECT +av_address => rvalid.OUTPUTSELECT +av_address => read_0.DATAB +av_address => fifo_rd.IN1 +av_chipselect => av_waitrequest.IN1 +av_chipselect => always2.IN0 +av_chipselect => always2.IN0 +av_chipselect => fifo_rd.IN0 +av_read_n => always2.IN1 +av_read_n => av_waitrequest.IN0 +av_read_n => fifo_rd.IN1 +av_write_n => always2.IN1 +av_write_n => av_waitrequest.IN1 +av_writedata[0] => fifo_wdata[0].IN1 +av_writedata[1] => fifo_wdata[1].IN1 +av_writedata[2] => fifo_wdata[2].IN1 +av_writedata[3] => fifo_wdata[3].IN1 +av_writedata[4] => fifo_wdata[4].IN1 +av_writedata[5] => fifo_wdata[5].IN1 +av_writedata[6] => fifo_wdata[6].IN1 +av_writedata[7] => fifo_wdata[7].IN1 +av_writedata[8] => ~NO_FANOUT~ +av_writedata[9] => ~NO_FANOUT~ +av_writedata[10] => always2.IN1 +av_writedata[11] => ~NO_FANOUT~ +av_writedata[12] => ~NO_FANOUT~ +av_writedata[13] => ~NO_FANOUT~ +av_writedata[14] => ~NO_FANOUT~ +av_writedata[15] => ~NO_FANOUT~ +av_writedata[16] => ~NO_FANOUT~ +av_writedata[17] => ~NO_FANOUT~ +av_writedata[18] => ~NO_FANOUT~ +av_writedata[19] => ~NO_FANOUT~ +av_writedata[20] => ~NO_FANOUT~ +av_writedata[21] => ~NO_FANOUT~ +av_writedata[22] => ~NO_FANOUT~ +av_writedata[23] => ~NO_FANOUT~ +av_writedata[24] => ~NO_FANOUT~ +av_writedata[25] => ~NO_FANOUT~ +av_writedata[26] => ~NO_FANOUT~ +av_writedata[27] => ~NO_FANOUT~ +av_writedata[28] => ~NO_FANOUT~ +av_writedata[29] => ~NO_FANOUT~ +av_writedata[30] => ~NO_FANOUT~ +av_writedata[31] => ~NO_FANOUT~ +clk => clk.IN3 +rst_n => rst_n.IN2 +av_irq <= av_irq.DB_MAX_OUTPUT_PORT_TYPE +av_readdata[0] <= av_readdata.DB_MAX_OUTPUT_PORT_TYPE +av_readdata[1] <= av_readdata.DB_MAX_OUTPUT_PORT_TYPE +av_readdata[2] <= av_readdata.DB_MAX_OUTPUT_PORT_TYPE +av_readdata[3] <= av_readdata.DB_MAX_OUTPUT_PORT_TYPE +av_readdata[4] <= av_readdata.DB_MAX_OUTPUT_PORT_TYPE +av_readdata[5] <= av_readdata.DB_MAX_OUTPUT_PORT_TYPE +av_readdata[6] <= av_readdata.DB_MAX_OUTPUT_PORT_TYPE +av_readdata[7] <= av_readdata.DB_MAX_OUTPUT_PORT_TYPE +av_readdata[8] <= ipen_AF.DB_MAX_OUTPUT_PORT_TYPE +av_readdata[9] <= ipen_AE.DB_MAX_OUTPUT_PORT_TYPE +av_readdata[10] <= ac.DB_MAX_OUTPUT_PORT_TYPE +av_readdata[11] <= +av_readdata[12] <= nios_system_jtag_uart_scfifo_r:the_nios_system_jtag_uart_scfifo_r.fifo_EF +av_readdata[13] <= nios_system_jtag_uart_scfifo_w:the_nios_system_jtag_uart_scfifo_w.fifo_FF +av_readdata[14] <= woverflow.DB_MAX_OUTPUT_PORT_TYPE +av_readdata[15] <= rvalid.DB_MAX_OUTPUT_PORT_TYPE +av_readdata[16] <= av_readdata.DB_MAX_OUTPUT_PORT_TYPE +av_readdata[17] <= av_readdata.DB_MAX_OUTPUT_PORT_TYPE +av_readdata[18] <= av_readdata.DB_MAX_OUTPUT_PORT_TYPE +av_readdata[19] <= av_readdata.DB_MAX_OUTPUT_PORT_TYPE +av_readdata[20] <= av_readdata.DB_MAX_OUTPUT_PORT_TYPE +av_readdata[21] <= av_readdata.DB_MAX_OUTPUT_PORT_TYPE +av_readdata[22] <= av_readdata.DB_MAX_OUTPUT_PORT_TYPE +av_readdata[23] <= +av_readdata[24] <= +av_readdata[25] <= +av_readdata[26] <= +av_readdata[27] <= +av_readdata[28] <= +av_readdata[29] <= +av_readdata[30] <= +av_readdata[31] <= +av_waitrequest <= av_waitrequest~reg0.DB_MAX_OUTPUT_PORT_TYPE +dataavailable <= dataavailable~reg0.DB_MAX_OUTPUT_PORT_TYPE +readyfordata <= readyfordata~reg0.DB_MAX_OUTPUT_PORT_TYPE + + +|lights|nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_w:the_nios_system_jtag_uart_scfifo_w +clk => clk.IN1 +fifo_clear => fifo_clear.IN1 +fifo_wdata[0] => fifo_wdata[0].IN1 +fifo_wdata[1] => fifo_wdata[1].IN1 +fifo_wdata[2] => fifo_wdata[2].IN1 +fifo_wdata[3] => fifo_wdata[3].IN1 +fifo_wdata[4] => fifo_wdata[4].IN1 +fifo_wdata[5] => fifo_wdata[5].IN1 +fifo_wdata[6] => fifo_wdata[6].IN1 +fifo_wdata[7] => fifo_wdata[7].IN1 +fifo_wr => fifo_wr.IN1 +rd_wfifo => rd_wfifo.IN1 +fifo_FF <= scfifo:wfifo.full +r_dat[0] <= scfifo:wfifo.q +r_dat[1] <= scfifo:wfifo.q +r_dat[2] <= scfifo:wfifo.q +r_dat[3] <= scfifo:wfifo.q +r_dat[4] <= scfifo:wfifo.q +r_dat[5] <= scfifo:wfifo.q +r_dat[6] <= scfifo:wfifo.q +r_dat[7] <= scfifo:wfifo.q +wfifo_empty <= scfifo:wfifo.empty +wfifo_used[0] <= scfifo:wfifo.usedw +wfifo_used[1] <= scfifo:wfifo.usedw +wfifo_used[2] <= scfifo:wfifo.usedw +wfifo_used[3] <= scfifo:wfifo.usedw +wfifo_used[4] <= scfifo:wfifo.usedw +wfifo_used[5] <= scfifo:wfifo.usedw + + +|lights|nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_w:the_nios_system_jtag_uart_scfifo_w|scfifo:wfifo +data[0] => scfifo_jr21:auto_generated.data[0] +data[1] => scfifo_jr21:auto_generated.data[1] +data[2] => scfifo_jr21:auto_generated.data[2] +data[3] => scfifo_jr21:auto_generated.data[3] +data[4] => scfifo_jr21:auto_generated.data[4] +data[5] => scfifo_jr21:auto_generated.data[5] +data[6] => scfifo_jr21:auto_generated.data[6] +data[7] => scfifo_jr21:auto_generated.data[7] +q[0] <= scfifo_jr21:auto_generated.q[0] +q[1] <= scfifo_jr21:auto_generated.q[1] +q[2] <= scfifo_jr21:auto_generated.q[2] +q[3] <= scfifo_jr21:auto_generated.q[3] +q[4] <= scfifo_jr21:auto_generated.q[4] +q[5] <= scfifo_jr21:auto_generated.q[5] +q[6] <= scfifo_jr21:auto_generated.q[6] +q[7] <= scfifo_jr21:auto_generated.q[7] +wrreq => scfifo_jr21:auto_generated.wrreq +rdreq => scfifo_jr21:auto_generated.rdreq +clock => scfifo_jr21:auto_generated.clock +aclr => scfifo_jr21:auto_generated.aclr +sclr => ~NO_FANOUT~ +empty <= scfifo_jr21:auto_generated.empty +full <= scfifo_jr21:auto_generated.full +almost_full <= +almost_empty <= +usedw[0] <= scfifo_jr21:auto_generated.usedw[0] +usedw[1] <= scfifo_jr21:auto_generated.usedw[1] +usedw[2] <= scfifo_jr21:auto_generated.usedw[2] +usedw[3] <= scfifo_jr21:auto_generated.usedw[3] +usedw[4] <= scfifo_jr21:auto_generated.usedw[4] +usedw[5] <= scfifo_jr21:auto_generated.usedw[5] + + +|lights|nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_w:the_nios_system_jtag_uart_scfifo_w|scfifo:wfifo|scfifo_jr21:auto_generated +aclr => a_dpfifo_q131:dpfifo.aclr +clock => a_dpfifo_q131:dpfifo.clock +data[0] => a_dpfifo_q131:dpfifo.data[0] +data[1] => a_dpfifo_q131:dpfifo.data[1] +data[2] => a_dpfifo_q131:dpfifo.data[2] +data[3] => a_dpfifo_q131:dpfifo.data[3] +data[4] => a_dpfifo_q131:dpfifo.data[4] +data[5] => a_dpfifo_q131:dpfifo.data[5] +data[6] => a_dpfifo_q131:dpfifo.data[6] +data[7] => a_dpfifo_q131:dpfifo.data[7] +empty <= a_dpfifo_q131:dpfifo.empty +full <= a_dpfifo_q131:dpfifo.full +q[0] <= a_dpfifo_q131:dpfifo.q[0] +q[1] <= a_dpfifo_q131:dpfifo.q[1] +q[2] <= a_dpfifo_q131:dpfifo.q[2] +q[3] <= a_dpfifo_q131:dpfifo.q[3] +q[4] <= a_dpfifo_q131:dpfifo.q[4] +q[5] <= a_dpfifo_q131:dpfifo.q[5] +q[6] <= a_dpfifo_q131:dpfifo.q[6] +q[7] <= a_dpfifo_q131:dpfifo.q[7] +rdreq => a_dpfifo_q131:dpfifo.rreq +usedw[0] <= a_dpfifo_q131:dpfifo.usedw[0] +usedw[1] <= a_dpfifo_q131:dpfifo.usedw[1] +usedw[2] <= a_dpfifo_q131:dpfifo.usedw[2] +usedw[3] <= a_dpfifo_q131:dpfifo.usedw[3] +usedw[4] <= a_dpfifo_q131:dpfifo.usedw[4] +usedw[5] <= a_dpfifo_q131:dpfifo.usedw[5] +wrreq => a_dpfifo_q131:dpfifo.wreq + + +|lights|nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_w:the_nios_system_jtag_uart_scfifo_w|scfifo:wfifo|scfifo_jr21:auto_generated|a_dpfifo_q131:dpfifo +aclr => a_fefifo_7cf:fifo_state.aclr +aclr => cntr_1ob:rd_ptr_count.aclr +aclr => cntr_1ob:wr_ptr.aclr +clock => a_fefifo_7cf:fifo_state.clock +clock => dpram_nl21:FIFOram.inclock +clock => dpram_nl21:FIFOram.outclock +clock => cntr_1ob:rd_ptr_count.clock +clock => cntr_1ob:wr_ptr.clock +data[0] => dpram_nl21:FIFOram.data[0] +data[1] => dpram_nl21:FIFOram.data[1] +data[2] => dpram_nl21:FIFOram.data[2] +data[3] => dpram_nl21:FIFOram.data[3] +data[4] => dpram_nl21:FIFOram.data[4] +data[5] => dpram_nl21:FIFOram.data[5] +data[6] => dpram_nl21:FIFOram.data[6] +data[7] => dpram_nl21:FIFOram.data[7] +empty <= a_fefifo_7cf:fifo_state.empty +full <= a_fefifo_7cf:fifo_state.full +q[0] <= dpram_nl21:FIFOram.q[0] +q[1] <= dpram_nl21:FIFOram.q[1] +q[2] <= dpram_nl21:FIFOram.q[2] +q[3] <= dpram_nl21:FIFOram.q[3] +q[4] <= dpram_nl21:FIFOram.q[4] +q[5] <= dpram_nl21:FIFOram.q[5] +q[6] <= dpram_nl21:FIFOram.q[6] +q[7] <= dpram_nl21:FIFOram.q[7] +rreq => a_fefifo_7cf:fifo_state.rreq +rreq => _.IN0 +rreq => cntr_1ob:rd_ptr_count.cnt_en +sclr => a_fefifo_7cf:fifo_state.sclr +sclr => _.IN1 +sclr => _.IN0 +sclr => cntr_1ob:rd_ptr_count.sclr +sclr => cntr_1ob:wr_ptr.sclr +usedw[0] <= a_fefifo_7cf:fifo_state.usedw_out[0] +usedw[1] <= a_fefifo_7cf:fifo_state.usedw_out[1] +usedw[2] <= a_fefifo_7cf:fifo_state.usedw_out[2] +usedw[3] <= a_fefifo_7cf:fifo_state.usedw_out[3] +usedw[4] <= a_fefifo_7cf:fifo_state.usedw_out[4] +usedw[5] <= a_fefifo_7cf:fifo_state.usedw_out[5] +wreq => a_fefifo_7cf:fifo_state.wreq +wreq => dpram_nl21:FIFOram.wren +wreq => cntr_1ob:wr_ptr.cnt_en + + +|lights|nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_w:the_nios_system_jtag_uart_scfifo_w|scfifo:wfifo|scfifo_jr21:auto_generated|a_dpfifo_q131:dpfifo|a_fefifo_7cf:fifo_state +aclr => b_full.IN0 +aclr => b_non_empty.IN0 +aclr => cntr_do7:count_usedw.aclr +clock => cntr_do7:count_usedw.clock +clock => b_full.CLK +clock => b_non_empty.CLK +empty <= empty.DB_MAX_OUTPUT_PORT_TYPE +full <= b_full.DB_MAX_OUTPUT_PORT_TYPE +rreq => _.IN1 +rreq => _.IN0 +rreq => _.IN1 +rreq => _.IN1 +sclr => _.IN0 +sclr => _.IN0 +sclr => _.IN1 +sclr => _.IN0 +sclr => _.IN0 +sclr => cntr_do7:count_usedw.sclr +usedw_out[0] <= usedw[0].DB_MAX_OUTPUT_PORT_TYPE +usedw_out[1] <= usedw[1].DB_MAX_OUTPUT_PORT_TYPE +usedw_out[2] <= usedw[2].DB_MAX_OUTPUT_PORT_TYPE +usedw_out[3] <= usedw[3].DB_MAX_OUTPUT_PORT_TYPE +usedw_out[4] <= usedw[4].DB_MAX_OUTPUT_PORT_TYPE +usedw_out[5] <= usedw[5].DB_MAX_OUTPUT_PORT_TYPE +wreq => _.IN1 +wreq => _.IN1 +wreq => _.IN0 +wreq => _.IN0 +wreq => cntr_do7:count_usedw.updown + + +|lights|nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_w:the_nios_system_jtag_uart_scfifo_w|scfifo:wfifo|scfifo_jr21:auto_generated|a_dpfifo_q131:dpfifo|a_fefifo_7cf:fifo_state|cntr_do7:count_usedw +aclr => counter_reg_bit[5].IN0 +clock => counter_reg_bit[5].CLK +clock => counter_reg_bit[4].CLK +clock => counter_reg_bit[3].CLK +clock => counter_reg_bit[2].CLK +clock => counter_reg_bit[1].CLK +clock => counter_reg_bit[0].CLK +cnt_en => _.IN1 +q[0] <= counter_reg_bit[0].DB_MAX_OUTPUT_PORT_TYPE +q[1] <= counter_reg_bit[1].DB_MAX_OUTPUT_PORT_TYPE +q[2] <= counter_reg_bit[2].DB_MAX_OUTPUT_PORT_TYPE +q[3] <= counter_reg_bit[3].DB_MAX_OUTPUT_PORT_TYPE +q[4] <= counter_reg_bit[4].DB_MAX_OUTPUT_PORT_TYPE +q[5] <= counter_reg_bit[5].DB_MAX_OUTPUT_PORT_TYPE +sclr => _.IN0 +sclr => _.IN0 +sclr => _.IN0 +updown => counter_comb_bita0.DATAB +updown => counter_comb_bita1.DATAB +updown => counter_comb_bita2.DATAB +updown => counter_comb_bita3.DATAB +updown => counter_comb_bita4.DATAB +updown => counter_comb_bita5.DATAB + + +|lights|nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_w:the_nios_system_jtag_uart_scfifo_w|scfifo:wfifo|scfifo_jr21:auto_generated|a_dpfifo_q131:dpfifo|dpram_nl21:FIFOram +data[0] => altsyncram_r1m1:altsyncram1.data_a[0] +data[1] => altsyncram_r1m1:altsyncram1.data_a[1] +data[2] => altsyncram_r1m1:altsyncram1.data_a[2] +data[3] => altsyncram_r1m1:altsyncram1.data_a[3] +data[4] => altsyncram_r1m1:altsyncram1.data_a[4] +data[5] => altsyncram_r1m1:altsyncram1.data_a[5] +data[6] => altsyncram_r1m1:altsyncram1.data_a[6] +data[7] => altsyncram_r1m1:altsyncram1.data_a[7] +inclock => altsyncram_r1m1:altsyncram1.clock0 +outclock => altsyncram_r1m1:altsyncram1.clock1 +outclocken => altsyncram_r1m1:altsyncram1.clocken1 +q[0] <= altsyncram_r1m1:altsyncram1.q_b[0] +q[1] <= altsyncram_r1m1:altsyncram1.q_b[1] +q[2] <= altsyncram_r1m1:altsyncram1.q_b[2] +q[3] <= altsyncram_r1m1:altsyncram1.q_b[3] +q[4] <= altsyncram_r1m1:altsyncram1.q_b[4] +q[5] <= altsyncram_r1m1:altsyncram1.q_b[5] +q[6] <= altsyncram_r1m1:altsyncram1.q_b[6] +q[7] <= altsyncram_r1m1:altsyncram1.q_b[7] +rdaddress[0] => altsyncram_r1m1:altsyncram1.address_b[0] +rdaddress[1] => altsyncram_r1m1:altsyncram1.address_b[1] +rdaddress[2] => altsyncram_r1m1:altsyncram1.address_b[2] +rdaddress[3] => altsyncram_r1m1:altsyncram1.address_b[3] +rdaddress[4] => altsyncram_r1m1:altsyncram1.address_b[4] +rdaddress[5] => altsyncram_r1m1:altsyncram1.address_b[5] +wraddress[0] => altsyncram_r1m1:altsyncram1.address_a[0] +wraddress[1] => altsyncram_r1m1:altsyncram1.address_a[1] +wraddress[2] => altsyncram_r1m1:altsyncram1.address_a[2] +wraddress[3] => altsyncram_r1m1:altsyncram1.address_a[3] +wraddress[4] => altsyncram_r1m1:altsyncram1.address_a[4] +wraddress[5] => altsyncram_r1m1:altsyncram1.address_a[5] +wren => altsyncram_r1m1:altsyncram1.wren_a + + +|lights|nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_w:the_nios_system_jtag_uart_scfifo_w|scfifo:wfifo|scfifo_jr21:auto_generated|a_dpfifo_q131:dpfifo|dpram_nl21:FIFOram|altsyncram_r1m1:altsyncram1 +address_a[0] => ram_block2a0.PORTAADDR +address_a[0] => ram_block2a1.PORTAADDR +address_a[0] => ram_block2a2.PORTAADDR +address_a[0] => ram_block2a3.PORTAADDR +address_a[0] => ram_block2a4.PORTAADDR +address_a[0] => ram_block2a5.PORTAADDR +address_a[0] => ram_block2a6.PORTAADDR +address_a[0] => ram_block2a7.PORTAADDR +address_a[1] => ram_block2a0.PORTAADDR1 +address_a[1] => ram_block2a1.PORTAADDR1 +address_a[1] => ram_block2a2.PORTAADDR1 +address_a[1] => ram_block2a3.PORTAADDR1 +address_a[1] => ram_block2a4.PORTAADDR1 +address_a[1] => ram_block2a5.PORTAADDR1 +address_a[1] => ram_block2a6.PORTAADDR1 +address_a[1] => ram_block2a7.PORTAADDR1 +address_a[2] => ram_block2a0.PORTAADDR2 +address_a[2] => ram_block2a1.PORTAADDR2 +address_a[2] => ram_block2a2.PORTAADDR2 +address_a[2] => ram_block2a3.PORTAADDR2 +address_a[2] => ram_block2a4.PORTAADDR2 +address_a[2] => ram_block2a5.PORTAADDR2 +address_a[2] => ram_block2a6.PORTAADDR2 +address_a[2] => ram_block2a7.PORTAADDR2 +address_a[3] => ram_block2a0.PORTAADDR3 +address_a[3] => ram_block2a1.PORTAADDR3 +address_a[3] => ram_block2a2.PORTAADDR3 +address_a[3] => ram_block2a3.PORTAADDR3 +address_a[3] => ram_block2a4.PORTAADDR3 +address_a[3] => ram_block2a5.PORTAADDR3 +address_a[3] => ram_block2a6.PORTAADDR3 +address_a[3] => ram_block2a7.PORTAADDR3 +address_a[4] => ram_block2a0.PORTAADDR4 +address_a[4] => ram_block2a1.PORTAADDR4 +address_a[4] => ram_block2a2.PORTAADDR4 +address_a[4] => ram_block2a3.PORTAADDR4 +address_a[4] => ram_block2a4.PORTAADDR4 +address_a[4] => ram_block2a5.PORTAADDR4 +address_a[4] => ram_block2a6.PORTAADDR4 +address_a[4] => ram_block2a7.PORTAADDR4 +address_a[5] => ram_block2a0.PORTAADDR5 +address_a[5] => ram_block2a1.PORTAADDR5 +address_a[5] => ram_block2a2.PORTAADDR5 +address_a[5] => ram_block2a3.PORTAADDR5 +address_a[5] => ram_block2a4.PORTAADDR5 +address_a[5] => ram_block2a5.PORTAADDR5 +address_a[5] => ram_block2a6.PORTAADDR5 +address_a[5] => ram_block2a7.PORTAADDR5 +address_b[0] => ram_block2a0.PORTBADDR +address_b[0] => ram_block2a1.PORTBADDR +address_b[0] => ram_block2a2.PORTBADDR +address_b[0] => ram_block2a3.PORTBADDR +address_b[0] => ram_block2a4.PORTBADDR +address_b[0] => ram_block2a5.PORTBADDR +address_b[0] => ram_block2a6.PORTBADDR +address_b[0] => ram_block2a7.PORTBADDR +address_b[1] => ram_block2a0.PORTBADDR1 +address_b[1] => ram_block2a1.PORTBADDR1 +address_b[1] => ram_block2a2.PORTBADDR1 +address_b[1] => ram_block2a3.PORTBADDR1 +address_b[1] => ram_block2a4.PORTBADDR1 +address_b[1] => ram_block2a5.PORTBADDR1 +address_b[1] => ram_block2a6.PORTBADDR1 +address_b[1] => ram_block2a7.PORTBADDR1 +address_b[2] => ram_block2a0.PORTBADDR2 +address_b[2] => ram_block2a1.PORTBADDR2 +address_b[2] => ram_block2a2.PORTBADDR2 +address_b[2] => ram_block2a3.PORTBADDR2 +address_b[2] => ram_block2a4.PORTBADDR2 +address_b[2] => ram_block2a5.PORTBADDR2 +address_b[2] => ram_block2a6.PORTBADDR2 +address_b[2] => ram_block2a7.PORTBADDR2 +address_b[3] => ram_block2a0.PORTBADDR3 +address_b[3] => ram_block2a1.PORTBADDR3 +address_b[3] => ram_block2a2.PORTBADDR3 +address_b[3] => ram_block2a3.PORTBADDR3 +address_b[3] => ram_block2a4.PORTBADDR3 +address_b[3] => ram_block2a5.PORTBADDR3 +address_b[3] => ram_block2a6.PORTBADDR3 +address_b[3] => ram_block2a7.PORTBADDR3 +address_b[4] => ram_block2a0.PORTBADDR4 +address_b[4] => ram_block2a1.PORTBADDR4 +address_b[4] => ram_block2a2.PORTBADDR4 +address_b[4] => ram_block2a3.PORTBADDR4 +address_b[4] => ram_block2a4.PORTBADDR4 +address_b[4] => ram_block2a5.PORTBADDR4 +address_b[4] => ram_block2a6.PORTBADDR4 +address_b[4] => ram_block2a7.PORTBADDR4 +address_b[5] => ram_block2a0.PORTBADDR5 +address_b[5] => ram_block2a1.PORTBADDR5 +address_b[5] => ram_block2a2.PORTBADDR5 +address_b[5] => ram_block2a3.PORTBADDR5 +address_b[5] => ram_block2a4.PORTBADDR5 +address_b[5] => ram_block2a5.PORTBADDR5 +address_b[5] => ram_block2a6.PORTBADDR5 +address_b[5] => ram_block2a7.PORTBADDR5 +clock0 => ram_block2a0.CLK0 +clock0 => ram_block2a1.CLK0 +clock0 => ram_block2a2.CLK0 +clock0 => ram_block2a3.CLK0 +clock0 => ram_block2a4.CLK0 +clock0 => ram_block2a5.CLK0 +clock0 => ram_block2a6.CLK0 +clock0 => ram_block2a7.CLK0 +clock1 => ram_block2a0.CLK1 +clock1 => ram_block2a1.CLK1 +clock1 => ram_block2a2.CLK1 +clock1 => ram_block2a3.CLK1 +clock1 => ram_block2a4.CLK1 +clock1 => ram_block2a5.CLK1 +clock1 => ram_block2a6.CLK1 +clock1 => ram_block2a7.CLK1 +clocken1 => ram_block2a0.ENA1 +clocken1 => ram_block2a1.ENA1 +clocken1 => ram_block2a2.ENA1 +clocken1 => ram_block2a3.ENA1 +clocken1 => ram_block2a4.ENA1 +clocken1 => ram_block2a5.ENA1 +clocken1 => ram_block2a6.ENA1 +clocken1 => ram_block2a7.ENA1 +data_a[0] => ram_block2a0.PORTADATAIN +data_a[1] => ram_block2a1.PORTADATAIN +data_a[2] => ram_block2a2.PORTADATAIN +data_a[3] => ram_block2a3.PORTADATAIN +data_a[4] => ram_block2a4.PORTADATAIN +data_a[5] => ram_block2a5.PORTADATAIN +data_a[6] => ram_block2a6.PORTADATAIN +data_a[7] => ram_block2a7.PORTADATAIN +q_b[0] <= ram_block2a0.PORTBDATAOUT +q_b[1] <= ram_block2a1.PORTBDATAOUT +q_b[2] <= ram_block2a2.PORTBDATAOUT +q_b[3] <= ram_block2a3.PORTBDATAOUT +q_b[4] <= ram_block2a4.PORTBDATAOUT +q_b[5] <= ram_block2a5.PORTBDATAOUT +q_b[6] <= ram_block2a6.PORTBDATAOUT +q_b[7] <= ram_block2a7.PORTBDATAOUT +wren_a => ram_block2a0.PORTAWE +wren_a => ram_block2a0.ENA0 +wren_a => ram_block2a1.PORTAWE +wren_a => ram_block2a1.ENA0 +wren_a => ram_block2a2.PORTAWE +wren_a => ram_block2a2.ENA0 +wren_a => ram_block2a3.PORTAWE +wren_a => ram_block2a3.ENA0 +wren_a => ram_block2a4.PORTAWE +wren_a => ram_block2a4.ENA0 +wren_a => ram_block2a5.PORTAWE +wren_a => ram_block2a5.ENA0 +wren_a => ram_block2a6.PORTAWE +wren_a => ram_block2a6.ENA0 +wren_a => ram_block2a7.PORTAWE +wren_a => ram_block2a7.ENA0 + + +|lights|nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_w:the_nios_system_jtag_uart_scfifo_w|scfifo:wfifo|scfifo_jr21:auto_generated|a_dpfifo_q131:dpfifo|cntr_1ob:rd_ptr_count +aclr => counter_reg_bit[5].IN0 +clock => counter_reg_bit[5].CLK +clock => counter_reg_bit[4].CLK +clock => counter_reg_bit[3].CLK +clock => counter_reg_bit[2].CLK +clock => counter_reg_bit[1].CLK +clock => counter_reg_bit[0].CLK +cnt_en => _.IN1 +q[0] <= counter_reg_bit[0].DB_MAX_OUTPUT_PORT_TYPE +q[1] <= counter_reg_bit[1].DB_MAX_OUTPUT_PORT_TYPE +q[2] <= counter_reg_bit[2].DB_MAX_OUTPUT_PORT_TYPE +q[3] <= counter_reg_bit[3].DB_MAX_OUTPUT_PORT_TYPE +q[4] <= counter_reg_bit[4].DB_MAX_OUTPUT_PORT_TYPE +q[5] <= counter_reg_bit[5].DB_MAX_OUTPUT_PORT_TYPE +sclr => _.IN0 +sclr => _.IN0 +sclr => _.IN0 + + +|lights|nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_w:the_nios_system_jtag_uart_scfifo_w|scfifo:wfifo|scfifo_jr21:auto_generated|a_dpfifo_q131:dpfifo|cntr_1ob:wr_ptr +aclr => counter_reg_bit[5].IN0 +clock => counter_reg_bit[5].CLK +clock => counter_reg_bit[4].CLK +clock => counter_reg_bit[3].CLK +clock => counter_reg_bit[2].CLK +clock => counter_reg_bit[1].CLK +clock => counter_reg_bit[0].CLK +cnt_en => _.IN1 +q[0] <= counter_reg_bit[0].DB_MAX_OUTPUT_PORT_TYPE +q[1] <= counter_reg_bit[1].DB_MAX_OUTPUT_PORT_TYPE +q[2] <= counter_reg_bit[2].DB_MAX_OUTPUT_PORT_TYPE +q[3] <= counter_reg_bit[3].DB_MAX_OUTPUT_PORT_TYPE +q[4] <= counter_reg_bit[4].DB_MAX_OUTPUT_PORT_TYPE +q[5] <= counter_reg_bit[5].DB_MAX_OUTPUT_PORT_TYPE +sclr => _.IN0 +sclr => _.IN0 +sclr => _.IN0 + + +|lights|nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_r:the_nios_system_jtag_uart_scfifo_r +clk => clk.IN1 +fifo_clear => fifo_clear.IN1 +fifo_rd => fifo_rd.IN1 +rst_n => ~NO_FANOUT~ +t_dat[0] => t_dat[0].IN1 +t_dat[1] => t_dat[1].IN1 +t_dat[2] => t_dat[2].IN1 +t_dat[3] => t_dat[3].IN1 +t_dat[4] => t_dat[4].IN1 +t_dat[5] => t_dat[5].IN1 +t_dat[6] => t_dat[6].IN1 +t_dat[7] => t_dat[7].IN1 +wr_rfifo => wr_rfifo.IN1 +fifo_EF <= scfifo:rfifo.empty +fifo_rdata[0] <= scfifo:rfifo.q +fifo_rdata[1] <= scfifo:rfifo.q +fifo_rdata[2] <= scfifo:rfifo.q +fifo_rdata[3] <= scfifo:rfifo.q +fifo_rdata[4] <= scfifo:rfifo.q +fifo_rdata[5] <= scfifo:rfifo.q +fifo_rdata[6] <= scfifo:rfifo.q +fifo_rdata[7] <= scfifo:rfifo.q +rfifo_full <= scfifo:rfifo.full +rfifo_used[0] <= scfifo:rfifo.usedw +rfifo_used[1] <= scfifo:rfifo.usedw +rfifo_used[2] <= scfifo:rfifo.usedw +rfifo_used[3] <= scfifo:rfifo.usedw +rfifo_used[4] <= scfifo:rfifo.usedw +rfifo_used[5] <= scfifo:rfifo.usedw + + +|lights|nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_r:the_nios_system_jtag_uart_scfifo_r|scfifo:rfifo +data[0] => scfifo_jr21:auto_generated.data[0] +data[1] => scfifo_jr21:auto_generated.data[1] +data[2] => scfifo_jr21:auto_generated.data[2] +data[3] => scfifo_jr21:auto_generated.data[3] +data[4] => scfifo_jr21:auto_generated.data[4] +data[5] => scfifo_jr21:auto_generated.data[5] +data[6] => scfifo_jr21:auto_generated.data[6] +data[7] => scfifo_jr21:auto_generated.data[7] +q[0] <= scfifo_jr21:auto_generated.q[0] +q[1] <= scfifo_jr21:auto_generated.q[1] +q[2] <= scfifo_jr21:auto_generated.q[2] +q[3] <= scfifo_jr21:auto_generated.q[3] +q[4] <= scfifo_jr21:auto_generated.q[4] +q[5] <= scfifo_jr21:auto_generated.q[5] +q[6] <= scfifo_jr21:auto_generated.q[6] +q[7] <= scfifo_jr21:auto_generated.q[7] +wrreq => scfifo_jr21:auto_generated.wrreq +rdreq => scfifo_jr21:auto_generated.rdreq +clock => scfifo_jr21:auto_generated.clock +aclr => scfifo_jr21:auto_generated.aclr +sclr => ~NO_FANOUT~ +empty <= scfifo_jr21:auto_generated.empty +full <= scfifo_jr21:auto_generated.full +almost_full <= +almost_empty <= +usedw[0] <= scfifo_jr21:auto_generated.usedw[0] +usedw[1] <= scfifo_jr21:auto_generated.usedw[1] +usedw[2] <= scfifo_jr21:auto_generated.usedw[2] +usedw[3] <= scfifo_jr21:auto_generated.usedw[3] +usedw[4] <= scfifo_jr21:auto_generated.usedw[4] +usedw[5] <= scfifo_jr21:auto_generated.usedw[5] + + +|lights|nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_r:the_nios_system_jtag_uart_scfifo_r|scfifo:rfifo|scfifo_jr21:auto_generated +aclr => a_dpfifo_q131:dpfifo.aclr +clock => a_dpfifo_q131:dpfifo.clock +data[0] => a_dpfifo_q131:dpfifo.data[0] +data[1] => a_dpfifo_q131:dpfifo.data[1] +data[2] => a_dpfifo_q131:dpfifo.data[2] +data[3] => a_dpfifo_q131:dpfifo.data[3] +data[4] => a_dpfifo_q131:dpfifo.data[4] +data[5] => a_dpfifo_q131:dpfifo.data[5] +data[6] => a_dpfifo_q131:dpfifo.data[6] +data[7] => a_dpfifo_q131:dpfifo.data[7] +empty <= a_dpfifo_q131:dpfifo.empty +full <= a_dpfifo_q131:dpfifo.full +q[0] <= a_dpfifo_q131:dpfifo.q[0] +q[1] <= a_dpfifo_q131:dpfifo.q[1] +q[2] <= a_dpfifo_q131:dpfifo.q[2] +q[3] <= a_dpfifo_q131:dpfifo.q[3] +q[4] <= a_dpfifo_q131:dpfifo.q[4] +q[5] <= a_dpfifo_q131:dpfifo.q[5] +q[6] <= a_dpfifo_q131:dpfifo.q[6] +q[7] <= a_dpfifo_q131:dpfifo.q[7] +rdreq => a_dpfifo_q131:dpfifo.rreq +usedw[0] <= a_dpfifo_q131:dpfifo.usedw[0] +usedw[1] <= a_dpfifo_q131:dpfifo.usedw[1] +usedw[2] <= a_dpfifo_q131:dpfifo.usedw[2] +usedw[3] <= a_dpfifo_q131:dpfifo.usedw[3] +usedw[4] <= a_dpfifo_q131:dpfifo.usedw[4] +usedw[5] <= a_dpfifo_q131:dpfifo.usedw[5] +wrreq => a_dpfifo_q131:dpfifo.wreq + + +|lights|nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_r:the_nios_system_jtag_uart_scfifo_r|scfifo:rfifo|scfifo_jr21:auto_generated|a_dpfifo_q131:dpfifo +aclr => a_fefifo_7cf:fifo_state.aclr +aclr => cntr_1ob:rd_ptr_count.aclr +aclr => cntr_1ob:wr_ptr.aclr +clock => a_fefifo_7cf:fifo_state.clock +clock => dpram_nl21:FIFOram.inclock +clock => dpram_nl21:FIFOram.outclock +clock => cntr_1ob:rd_ptr_count.clock +clock => cntr_1ob:wr_ptr.clock +data[0] => dpram_nl21:FIFOram.data[0] +data[1] => dpram_nl21:FIFOram.data[1] +data[2] => dpram_nl21:FIFOram.data[2] +data[3] => dpram_nl21:FIFOram.data[3] +data[4] => dpram_nl21:FIFOram.data[4] +data[5] => dpram_nl21:FIFOram.data[5] +data[6] => dpram_nl21:FIFOram.data[6] +data[7] => dpram_nl21:FIFOram.data[7] +empty <= a_fefifo_7cf:fifo_state.empty +full <= a_fefifo_7cf:fifo_state.full +q[0] <= dpram_nl21:FIFOram.q[0] +q[1] <= dpram_nl21:FIFOram.q[1] +q[2] <= dpram_nl21:FIFOram.q[2] +q[3] <= dpram_nl21:FIFOram.q[3] +q[4] <= dpram_nl21:FIFOram.q[4] +q[5] <= dpram_nl21:FIFOram.q[5] +q[6] <= dpram_nl21:FIFOram.q[6] +q[7] <= dpram_nl21:FIFOram.q[7] +rreq => a_fefifo_7cf:fifo_state.rreq +rreq => _.IN0 +rreq => cntr_1ob:rd_ptr_count.cnt_en +sclr => a_fefifo_7cf:fifo_state.sclr +sclr => _.IN1 +sclr => _.IN0 +sclr => cntr_1ob:rd_ptr_count.sclr +sclr => cntr_1ob:wr_ptr.sclr +usedw[0] <= a_fefifo_7cf:fifo_state.usedw_out[0] +usedw[1] <= a_fefifo_7cf:fifo_state.usedw_out[1] +usedw[2] <= a_fefifo_7cf:fifo_state.usedw_out[2] +usedw[3] <= a_fefifo_7cf:fifo_state.usedw_out[3] +usedw[4] <= a_fefifo_7cf:fifo_state.usedw_out[4] +usedw[5] <= a_fefifo_7cf:fifo_state.usedw_out[5] +wreq => a_fefifo_7cf:fifo_state.wreq +wreq => dpram_nl21:FIFOram.wren +wreq => cntr_1ob:wr_ptr.cnt_en + + +|lights|nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_r:the_nios_system_jtag_uart_scfifo_r|scfifo:rfifo|scfifo_jr21:auto_generated|a_dpfifo_q131:dpfifo|a_fefifo_7cf:fifo_state +aclr => b_full.IN0 +aclr => b_non_empty.IN0 +aclr => cntr_do7:count_usedw.aclr +clock => cntr_do7:count_usedw.clock +clock => b_full.CLK +clock => b_non_empty.CLK +empty <= empty.DB_MAX_OUTPUT_PORT_TYPE +full <= b_full.DB_MAX_OUTPUT_PORT_TYPE +rreq => _.IN1 +rreq => _.IN0 +rreq => _.IN1 +rreq => _.IN1 +sclr => _.IN0 +sclr => _.IN0 +sclr => _.IN1 +sclr => _.IN0 +sclr => _.IN0 +sclr => cntr_do7:count_usedw.sclr +usedw_out[0] <= usedw[0].DB_MAX_OUTPUT_PORT_TYPE +usedw_out[1] <= usedw[1].DB_MAX_OUTPUT_PORT_TYPE +usedw_out[2] <= usedw[2].DB_MAX_OUTPUT_PORT_TYPE +usedw_out[3] <= usedw[3].DB_MAX_OUTPUT_PORT_TYPE +usedw_out[4] <= usedw[4].DB_MAX_OUTPUT_PORT_TYPE +usedw_out[5] <= usedw[5].DB_MAX_OUTPUT_PORT_TYPE +wreq => _.IN1 +wreq => _.IN1 +wreq => _.IN0 +wreq => _.IN0 +wreq => cntr_do7:count_usedw.updown + + +|lights|nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_r:the_nios_system_jtag_uart_scfifo_r|scfifo:rfifo|scfifo_jr21:auto_generated|a_dpfifo_q131:dpfifo|a_fefifo_7cf:fifo_state|cntr_do7:count_usedw +aclr => counter_reg_bit[5].IN0 +clock => counter_reg_bit[5].CLK +clock => counter_reg_bit[4].CLK +clock => counter_reg_bit[3].CLK +clock => counter_reg_bit[2].CLK +clock => counter_reg_bit[1].CLK +clock => counter_reg_bit[0].CLK +cnt_en => _.IN1 +q[0] <= counter_reg_bit[0].DB_MAX_OUTPUT_PORT_TYPE +q[1] <= counter_reg_bit[1].DB_MAX_OUTPUT_PORT_TYPE +q[2] <= counter_reg_bit[2].DB_MAX_OUTPUT_PORT_TYPE +q[3] <= counter_reg_bit[3].DB_MAX_OUTPUT_PORT_TYPE +q[4] <= counter_reg_bit[4].DB_MAX_OUTPUT_PORT_TYPE +q[5] <= counter_reg_bit[5].DB_MAX_OUTPUT_PORT_TYPE +sclr => _.IN0 +sclr => _.IN0 +sclr => _.IN0 +updown => counter_comb_bita0.DATAB +updown => counter_comb_bita1.DATAB +updown => counter_comb_bita2.DATAB +updown => counter_comb_bita3.DATAB +updown => counter_comb_bita4.DATAB +updown => counter_comb_bita5.DATAB + + +|lights|nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_r:the_nios_system_jtag_uart_scfifo_r|scfifo:rfifo|scfifo_jr21:auto_generated|a_dpfifo_q131:dpfifo|dpram_nl21:FIFOram +data[0] => altsyncram_r1m1:altsyncram1.data_a[0] +data[1] => altsyncram_r1m1:altsyncram1.data_a[1] +data[2] => altsyncram_r1m1:altsyncram1.data_a[2] +data[3] => altsyncram_r1m1:altsyncram1.data_a[3] +data[4] => altsyncram_r1m1:altsyncram1.data_a[4] +data[5] => altsyncram_r1m1:altsyncram1.data_a[5] +data[6] => altsyncram_r1m1:altsyncram1.data_a[6] +data[7] => altsyncram_r1m1:altsyncram1.data_a[7] +inclock => altsyncram_r1m1:altsyncram1.clock0 +outclock => altsyncram_r1m1:altsyncram1.clock1 +outclocken => altsyncram_r1m1:altsyncram1.clocken1 +q[0] <= altsyncram_r1m1:altsyncram1.q_b[0] +q[1] <= altsyncram_r1m1:altsyncram1.q_b[1] +q[2] <= altsyncram_r1m1:altsyncram1.q_b[2] +q[3] <= altsyncram_r1m1:altsyncram1.q_b[3] +q[4] <= altsyncram_r1m1:altsyncram1.q_b[4] +q[5] <= altsyncram_r1m1:altsyncram1.q_b[5] +q[6] <= altsyncram_r1m1:altsyncram1.q_b[6] +q[7] <= altsyncram_r1m1:altsyncram1.q_b[7] +rdaddress[0] => altsyncram_r1m1:altsyncram1.address_b[0] +rdaddress[1] => altsyncram_r1m1:altsyncram1.address_b[1] +rdaddress[2] => altsyncram_r1m1:altsyncram1.address_b[2] +rdaddress[3] => altsyncram_r1m1:altsyncram1.address_b[3] +rdaddress[4] => altsyncram_r1m1:altsyncram1.address_b[4] +rdaddress[5] => altsyncram_r1m1:altsyncram1.address_b[5] +wraddress[0] => altsyncram_r1m1:altsyncram1.address_a[0] +wraddress[1] => altsyncram_r1m1:altsyncram1.address_a[1] +wraddress[2] => altsyncram_r1m1:altsyncram1.address_a[2] +wraddress[3] => altsyncram_r1m1:altsyncram1.address_a[3] +wraddress[4] => altsyncram_r1m1:altsyncram1.address_a[4] +wraddress[5] => altsyncram_r1m1:altsyncram1.address_a[5] +wren => altsyncram_r1m1:altsyncram1.wren_a + + +|lights|nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_r:the_nios_system_jtag_uart_scfifo_r|scfifo:rfifo|scfifo_jr21:auto_generated|a_dpfifo_q131:dpfifo|dpram_nl21:FIFOram|altsyncram_r1m1:altsyncram1 +address_a[0] => ram_block2a0.PORTAADDR +address_a[0] => ram_block2a1.PORTAADDR +address_a[0] => ram_block2a2.PORTAADDR +address_a[0] => ram_block2a3.PORTAADDR +address_a[0] => ram_block2a4.PORTAADDR +address_a[0] => ram_block2a5.PORTAADDR +address_a[0] => ram_block2a6.PORTAADDR +address_a[0] => ram_block2a7.PORTAADDR +address_a[1] => ram_block2a0.PORTAADDR1 +address_a[1] => ram_block2a1.PORTAADDR1 +address_a[1] => ram_block2a2.PORTAADDR1 +address_a[1] => ram_block2a3.PORTAADDR1 +address_a[1] => ram_block2a4.PORTAADDR1 +address_a[1] => ram_block2a5.PORTAADDR1 +address_a[1] => ram_block2a6.PORTAADDR1 +address_a[1] => ram_block2a7.PORTAADDR1 +address_a[2] => ram_block2a0.PORTAADDR2 +address_a[2] => ram_block2a1.PORTAADDR2 +address_a[2] => ram_block2a2.PORTAADDR2 +address_a[2] => ram_block2a3.PORTAADDR2 +address_a[2] => ram_block2a4.PORTAADDR2 +address_a[2] => ram_block2a5.PORTAADDR2 +address_a[2] => ram_block2a6.PORTAADDR2 +address_a[2] => ram_block2a7.PORTAADDR2 +address_a[3] => ram_block2a0.PORTAADDR3 +address_a[3] => ram_block2a1.PORTAADDR3 +address_a[3] => ram_block2a2.PORTAADDR3 +address_a[3] => ram_block2a3.PORTAADDR3 +address_a[3] => ram_block2a4.PORTAADDR3 +address_a[3] => ram_block2a5.PORTAADDR3 +address_a[3] => ram_block2a6.PORTAADDR3 +address_a[3] => ram_block2a7.PORTAADDR3 +address_a[4] => ram_block2a0.PORTAADDR4 +address_a[4] => ram_block2a1.PORTAADDR4 +address_a[4] => ram_block2a2.PORTAADDR4 +address_a[4] => ram_block2a3.PORTAADDR4 +address_a[4] => ram_block2a4.PORTAADDR4 +address_a[4] => ram_block2a5.PORTAADDR4 +address_a[4] => ram_block2a6.PORTAADDR4 +address_a[4] => ram_block2a7.PORTAADDR4 +address_a[5] => ram_block2a0.PORTAADDR5 +address_a[5] => ram_block2a1.PORTAADDR5 +address_a[5] => ram_block2a2.PORTAADDR5 +address_a[5] => ram_block2a3.PORTAADDR5 +address_a[5] => ram_block2a4.PORTAADDR5 +address_a[5] => ram_block2a5.PORTAADDR5 +address_a[5] => ram_block2a6.PORTAADDR5 +address_a[5] => ram_block2a7.PORTAADDR5 +address_b[0] => ram_block2a0.PORTBADDR +address_b[0] => ram_block2a1.PORTBADDR +address_b[0] => ram_block2a2.PORTBADDR +address_b[0] => ram_block2a3.PORTBADDR +address_b[0] => ram_block2a4.PORTBADDR +address_b[0] => ram_block2a5.PORTBADDR +address_b[0] => ram_block2a6.PORTBADDR +address_b[0] => ram_block2a7.PORTBADDR +address_b[1] => ram_block2a0.PORTBADDR1 +address_b[1] => ram_block2a1.PORTBADDR1 +address_b[1] => ram_block2a2.PORTBADDR1 +address_b[1] => ram_block2a3.PORTBADDR1 +address_b[1] => ram_block2a4.PORTBADDR1 +address_b[1] => ram_block2a5.PORTBADDR1 +address_b[1] => ram_block2a6.PORTBADDR1 +address_b[1] => ram_block2a7.PORTBADDR1 +address_b[2] => ram_block2a0.PORTBADDR2 +address_b[2] => ram_block2a1.PORTBADDR2 +address_b[2] => ram_block2a2.PORTBADDR2 +address_b[2] => ram_block2a3.PORTBADDR2 +address_b[2] => ram_block2a4.PORTBADDR2 +address_b[2] => ram_block2a5.PORTBADDR2 +address_b[2] => ram_block2a6.PORTBADDR2 +address_b[2] => ram_block2a7.PORTBADDR2 +address_b[3] => ram_block2a0.PORTBADDR3 +address_b[3] => ram_block2a1.PORTBADDR3 +address_b[3] => ram_block2a2.PORTBADDR3 +address_b[3] => ram_block2a3.PORTBADDR3 +address_b[3] => ram_block2a4.PORTBADDR3 +address_b[3] => ram_block2a5.PORTBADDR3 +address_b[3] => ram_block2a6.PORTBADDR3 +address_b[3] => ram_block2a7.PORTBADDR3 +address_b[4] => ram_block2a0.PORTBADDR4 +address_b[4] => ram_block2a1.PORTBADDR4 +address_b[4] => ram_block2a2.PORTBADDR4 +address_b[4] => ram_block2a3.PORTBADDR4 +address_b[4] => ram_block2a4.PORTBADDR4 +address_b[4] => ram_block2a5.PORTBADDR4 +address_b[4] => ram_block2a6.PORTBADDR4 +address_b[4] => ram_block2a7.PORTBADDR4 +address_b[5] => ram_block2a0.PORTBADDR5 +address_b[5] => ram_block2a1.PORTBADDR5 +address_b[5] => ram_block2a2.PORTBADDR5 +address_b[5] => ram_block2a3.PORTBADDR5 +address_b[5] => ram_block2a4.PORTBADDR5 +address_b[5] => ram_block2a5.PORTBADDR5 +address_b[5] => ram_block2a6.PORTBADDR5 +address_b[5] => ram_block2a7.PORTBADDR5 +clock0 => ram_block2a0.CLK0 +clock0 => ram_block2a1.CLK0 +clock0 => ram_block2a2.CLK0 +clock0 => ram_block2a3.CLK0 +clock0 => ram_block2a4.CLK0 +clock0 => ram_block2a5.CLK0 +clock0 => ram_block2a6.CLK0 +clock0 => ram_block2a7.CLK0 +clock1 => ram_block2a0.CLK1 +clock1 => ram_block2a1.CLK1 +clock1 => ram_block2a2.CLK1 +clock1 => ram_block2a3.CLK1 +clock1 => ram_block2a4.CLK1 +clock1 => ram_block2a5.CLK1 +clock1 => ram_block2a6.CLK1 +clock1 => ram_block2a7.CLK1 +clocken1 => ram_block2a0.ENA1 +clocken1 => ram_block2a1.ENA1 +clocken1 => ram_block2a2.ENA1 +clocken1 => ram_block2a3.ENA1 +clocken1 => ram_block2a4.ENA1 +clocken1 => ram_block2a5.ENA1 +clocken1 => ram_block2a6.ENA1 +clocken1 => ram_block2a7.ENA1 +data_a[0] => ram_block2a0.PORTADATAIN +data_a[1] => ram_block2a1.PORTADATAIN +data_a[2] => ram_block2a2.PORTADATAIN +data_a[3] => ram_block2a3.PORTADATAIN +data_a[4] => ram_block2a4.PORTADATAIN +data_a[5] => ram_block2a5.PORTADATAIN +data_a[6] => ram_block2a6.PORTADATAIN +data_a[7] => ram_block2a7.PORTADATAIN +q_b[0] <= ram_block2a0.PORTBDATAOUT +q_b[1] <= ram_block2a1.PORTBDATAOUT +q_b[2] <= ram_block2a2.PORTBDATAOUT +q_b[3] <= ram_block2a3.PORTBDATAOUT +q_b[4] <= ram_block2a4.PORTBDATAOUT +q_b[5] <= ram_block2a5.PORTBDATAOUT +q_b[6] <= ram_block2a6.PORTBDATAOUT +q_b[7] <= ram_block2a7.PORTBDATAOUT +wren_a => ram_block2a0.PORTAWE +wren_a => ram_block2a0.ENA0 +wren_a => ram_block2a1.PORTAWE +wren_a => ram_block2a1.ENA0 +wren_a => ram_block2a2.PORTAWE +wren_a => ram_block2a2.ENA0 +wren_a => ram_block2a3.PORTAWE +wren_a => ram_block2a3.ENA0 +wren_a => ram_block2a4.PORTAWE +wren_a => ram_block2a4.ENA0 +wren_a => ram_block2a5.PORTAWE +wren_a => ram_block2a5.ENA0 +wren_a => ram_block2a6.PORTAWE +wren_a => ram_block2a6.ENA0 +wren_a => ram_block2a7.PORTAWE +wren_a => ram_block2a7.ENA0 + + +|lights|nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_r:the_nios_system_jtag_uart_scfifo_r|scfifo:rfifo|scfifo_jr21:auto_generated|a_dpfifo_q131:dpfifo|cntr_1ob:rd_ptr_count +aclr => counter_reg_bit[5].IN0 +clock => counter_reg_bit[5].CLK +clock => counter_reg_bit[4].CLK +clock => counter_reg_bit[3].CLK +clock => counter_reg_bit[2].CLK +clock => counter_reg_bit[1].CLK +clock => counter_reg_bit[0].CLK +cnt_en => _.IN1 +q[0] <= counter_reg_bit[0].DB_MAX_OUTPUT_PORT_TYPE +q[1] <= counter_reg_bit[1].DB_MAX_OUTPUT_PORT_TYPE +q[2] <= counter_reg_bit[2].DB_MAX_OUTPUT_PORT_TYPE +q[3] <= counter_reg_bit[3].DB_MAX_OUTPUT_PORT_TYPE +q[4] <= counter_reg_bit[4].DB_MAX_OUTPUT_PORT_TYPE +q[5] <= counter_reg_bit[5].DB_MAX_OUTPUT_PORT_TYPE +sclr => _.IN0 +sclr => _.IN0 +sclr => _.IN0 + + +|lights|nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_r:the_nios_system_jtag_uart_scfifo_r|scfifo:rfifo|scfifo_jr21:auto_generated|a_dpfifo_q131:dpfifo|cntr_1ob:wr_ptr +aclr => counter_reg_bit[5].IN0 +clock => counter_reg_bit[5].CLK +clock => counter_reg_bit[4].CLK +clock => counter_reg_bit[3].CLK +clock => counter_reg_bit[2].CLK +clock => counter_reg_bit[1].CLK +clock => counter_reg_bit[0].CLK +cnt_en => _.IN1 +q[0] <= counter_reg_bit[0].DB_MAX_OUTPUT_PORT_TYPE +q[1] <= counter_reg_bit[1].DB_MAX_OUTPUT_PORT_TYPE +q[2] <= counter_reg_bit[2].DB_MAX_OUTPUT_PORT_TYPE +q[3] <= counter_reg_bit[3].DB_MAX_OUTPUT_PORT_TYPE +q[4] <= counter_reg_bit[4].DB_MAX_OUTPUT_PORT_TYPE +q[5] <= counter_reg_bit[5].DB_MAX_OUTPUT_PORT_TYPE +sclr => _.IN0 +sclr => _.IN0 +sclr => _.IN0 + + +|lights|nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic +raw_tck => write_stalled.CLK +raw_tck => wdata[0].CLK +raw_tck => wdata[1].CLK +raw_tck => wdata[2].CLK +raw_tck => wdata[3].CLK +raw_tck => wdata[4].CLK +raw_tck => wdata[5].CLK +raw_tck => wdata[6].CLK +raw_tck => wdata[7].CLK +raw_tck => write.CLK +raw_tck => read.CLK +raw_tck => read_req.CLK +raw_tck => write_valid.CLK +raw_tck => count[0].CLK +raw_tck => count[1].CLK +raw_tck => count[2].CLK +raw_tck => count[3].CLK +raw_tck => count[4].CLK +raw_tck => count[5].CLK +raw_tck => count[6].CLK +raw_tck => count[7].CLK +raw_tck => count[8].CLK +raw_tck => count[9].CLK +raw_tck => state.CLK +raw_tck => user_saw_rvalid.CLK +raw_tck => td_shift[0].CLK +raw_tck => td_shift[1].CLK +raw_tck => td_shift[2].CLK +raw_tck => td_shift[3].CLK +raw_tck => td_shift[4].CLK +raw_tck => td_shift[5].CLK +raw_tck => td_shift[6].CLK +raw_tck => td_shift[7].CLK +raw_tck => td_shift[8].CLK +raw_tck => td_shift[9].CLK +raw_tck => td_shift[10].CLK +raw_tck => tck_t_dav.CLK +raw_tck => jupdate.CLK +raw_tck => tdo~reg0.CLK +tck => ~NO_FANOUT~ +tdi => td_shift.OUTPUTSELECT +tdi => count.OUTPUTSELECT +tdi => state.OUTPUTSELECT +tdi => wdata.DATAB +tdi => always0.IN1 +tdi => wdata.DATAB +tdi => td_shift.DATAB +rti => ~NO_FANOUT~ +shift => ~NO_FANOUT~ +update => ~NO_FANOUT~ +usr1 => always0.IN0 +clr => jupdate.ACLR +clr => tdo~reg0.ACLR +clr => write_stalled.ACLR +clr => wdata[0].ACLR +clr => wdata[1].ACLR +clr => wdata[2].ACLR +clr => wdata[3].ACLR +clr => wdata[4].ACLR +clr => wdata[5].ACLR +clr => wdata[6].ACLR +clr => wdata[7].ACLR +clr => write.ACLR +clr => read.ACLR +clr => read_req.ACLR +clr => write_valid.ACLR +clr => count[0].ACLR +clr => count[1].ACLR +clr => count[2].ACLR +clr => count[3].ACLR +clr => count[4].ACLR +clr => count[5].ACLR +clr => count[6].ACLR +clr => count[7].ACLR +clr => count[8].ACLR +clr => count[9].PRESET +clr => state.ACLR +clr => user_saw_rvalid.ACLR +clr => td_shift[0].ACLR +clr => td_shift[1].ACLR +clr => td_shift[2].ACLR +clr => td_shift[3].ACLR +clr => td_shift[4].ACLR +clr => td_shift[5].ACLR +clr => td_shift[6].ACLR +clr => td_shift[7].ACLR +clr => td_shift[8].ACLR +clr => td_shift[9].ACLR +clr => td_shift[10].ACLR +clr => tck_t_dav.ACLR +ena => always0.IN1 +ir_in[0] => Decoder1.IN0 +ir_in[0] => ir_out[0].DATAIN +tdo <= tdo~reg0.DB_MAX_OUTPUT_PORT_TYPE +irq <= +ir_out[0] <= ir_in[0].DB_MAX_OUTPUT_PORT_TYPE +jtag_state_cdr => state.OUTPUTSELECT +jtag_state_cdr => count.OUTPUTSELECT +jtag_state_cdr => count.OUTPUTSELECT +jtag_state_cdr => count.OUTPUTSELECT +jtag_state_cdr => count.OUTPUTSELECT +jtag_state_cdr => count.OUTPUTSELECT +jtag_state_cdr => count.OUTPUTSELECT +jtag_state_cdr => count.OUTPUTSELECT +jtag_state_cdr => count.OUTPUTSELECT +jtag_state_cdr => count.OUTPUTSELECT +jtag_state_cdr => count.OUTPUTSELECT +jtag_state_cdr => td_shift.OUTPUTSELECT +jtag_state_cdr => td_shift.OUTPUTSELECT +jtag_state_cdr => td_shift.OUTPUTSELECT +jtag_state_cdr => td_shift.OUTPUTSELECT +jtag_state_cdr => td_shift.OUTPUTSELECT +jtag_state_cdr => td_shift.OUTPUTSELECT +jtag_state_cdr => td_shift.OUTPUTSELECT +jtag_state_cdr => td_shift.OUTPUTSELECT +jtag_state_cdr => td_shift.OUTPUTSELECT +jtag_state_cdr => td_shift.OUTPUTSELECT +jtag_state_cdr => td_shift.OUTPUTSELECT +jtag_state_sdr => count.OUTPUTSELECT +jtag_state_sdr => count.OUTPUTSELECT +jtag_state_sdr => count.OUTPUTSELECT +jtag_state_sdr => count.OUTPUTSELECT +jtag_state_sdr => count.OUTPUTSELECT +jtag_state_sdr => count.OUTPUTSELECT +jtag_state_sdr => count.OUTPUTSELECT +jtag_state_sdr => count.OUTPUTSELECT +jtag_state_sdr => count.OUTPUTSELECT +jtag_state_sdr => count.OUTPUTSELECT +jtag_state_sdr => td_shift.OUTPUTSELECT +jtag_state_sdr => td_shift.OUTPUTSELECT +jtag_state_sdr => td_shift.OUTPUTSELECT +jtag_state_sdr => td_shift.OUTPUTSELECT +jtag_state_sdr => td_shift.OUTPUTSELECT +jtag_state_sdr => td_shift.OUTPUTSELECT +jtag_state_sdr => td_shift.OUTPUTSELECT +jtag_state_sdr => td_shift.OUTPUTSELECT +jtag_state_sdr => td_shift.OUTPUTSELECT +jtag_state_sdr => td_shift.OUTPUTSELECT +jtag_state_sdr => td_shift.OUTPUTSELECT +jtag_state_sdr => write.OUTPUTSELECT +jtag_state_sdr => wdata.OUTPUTSELECT +jtag_state_sdr => wdata.OUTPUTSELECT +jtag_state_sdr => wdata.OUTPUTSELECT +jtag_state_sdr => wdata.OUTPUTSELECT +jtag_state_sdr => wdata.OUTPUTSELECT +jtag_state_sdr => wdata.OUTPUTSELECT +jtag_state_sdr => wdata.OUTPUTSELECT +jtag_state_sdr => wdata.OUTPUTSELECT +jtag_state_sdr => user_saw_rvalid.OUTPUTSELECT +jtag_state_sdr => read.OUTPUTSELECT +jtag_state_sdr => write_valid.OUTPUTSELECT +jtag_state_sdr => read_req.OUTPUTSELECT +jtag_state_sdr => write_stalled.OUTPUTSELECT +jtag_state_sdr => state.OUTPUTSELECT +jtag_state_udr => jupdate.OUTPUTSELECT +clk => t_pause~reg0.CLK +clk => t_ena~reg0.CLK +clk => rdata[0].CLK +clk => rdata[1].CLK +clk => rdata[2].CLK +clk => rdata[3].CLK +clk => rdata[4].CLK +clk => rdata[5].CLK +clk => rdata[6].CLK +clk => rdata[7].CLK +clk => rvalid.CLK +clk => rvalid0.CLK +clk => r_ena1.CLK +clk => jupdate2.CLK +clk => jupdate1.CLK +clk => write2.CLK +clk => write1.CLK +clk => read2.CLK +clk => read1.CLK +clk => rst2.CLK +clk => rst1.CLK +rst_n => t_pause~reg0.ACLR +rst_n => t_ena~reg0.ACLR +rst_n => rdata[0].ACLR +rst_n => rdata[1].ACLR +rst_n => rdata[2].ACLR +rst_n => rdata[3].ACLR +rst_n => rdata[4].ACLR +rst_n => rdata[5].ACLR +rst_n => rdata[6].ACLR +rst_n => rdata[7].ACLR +rst_n => rvalid.ACLR +rst_n => rvalid0.ACLR +rst_n => r_ena1.ACLR +rst_n => jupdate2.ACLR +rst_n => jupdate1.ACLR +rst_n => write2.ACLR +rst_n => write1.ACLR +rst_n => read2.ACLR +rst_n => read1.ACLR +rst_n => rst2.PRESET +rst_n => rst1.PRESET +r_ena <= r_ena.DB_MAX_OUTPUT_PORT_TYPE +r_val => r_ena.IN1 +r_dat[0] => rdata[0].DATAIN +r_dat[1] => rdata[1].DATAIN +r_dat[2] => rdata[2].DATAIN +r_dat[3] => rdata[3].DATAIN +r_dat[4] => rdata[4].DATAIN +r_dat[5] => rdata[5].DATAIN +r_dat[6] => rdata[6].DATAIN +r_dat[7] => rdata[7].DATAIN +t_dav => always2.IN1 +t_dav => tck_t_dav.DATAIN +t_ena <= t_ena~reg0.DB_MAX_OUTPUT_PORT_TYPE +t_dat[0] <= t_dat[0].DB_MAX_OUTPUT_PORT_TYPE +t_dat[1] <= t_dat[1].DB_MAX_OUTPUT_PORT_TYPE +t_dat[2] <= t_dat[2].DB_MAX_OUTPUT_PORT_TYPE +t_dat[3] <= t_dat[3].DB_MAX_OUTPUT_PORT_TYPE +t_dat[4] <= t_dat[4].DB_MAX_OUTPUT_PORT_TYPE +t_dat[5] <= t_dat[5].DB_MAX_OUTPUT_PORT_TYPE +t_dat[6] <= t_dat[6].DB_MAX_OUTPUT_PORT_TYPE +t_dat[7] <= t_dat[7].DB_MAX_OUTPUT_PORT_TYPE +t_pause <= t_pause~reg0.DB_MAX_OUTPUT_PORT_TYPE + + +|lights|nios_system:NiosII|nios_system_LEDs:leds +address[0] => Equal0.IN31 +address[1] => Equal0.IN30 +chipselect => always0.IN0 +clk => data_out[0].CLK +clk => data_out[1].CLK +clk => data_out[2].CLK +clk => data_out[3].CLK +clk => data_out[4].CLK +clk => data_out[5].CLK +clk => data_out[6].CLK +clk => data_out[7].CLK +reset_n => data_out[0].ACLR +reset_n => data_out[1].ACLR +reset_n => data_out[2].ACLR +reset_n => data_out[3].ACLR +reset_n => data_out[4].ACLR +reset_n => data_out[5].ACLR +reset_n => data_out[6].ACLR +reset_n => data_out[7].ACLR +write_n => always0.IN1 +writedata[0] => data_out[0].DATAIN +writedata[1] => data_out[1].DATAIN +writedata[2] => data_out[2].DATAIN +writedata[3] => data_out[3].DATAIN +writedata[4] => data_out[4].DATAIN +writedata[5] => data_out[5].DATAIN +writedata[6] => data_out[6].DATAIN +writedata[7] => data_out[7].DATAIN +writedata[8] => ~NO_FANOUT~ +writedata[9] => ~NO_FANOUT~ +writedata[10] => ~NO_FANOUT~ +writedata[11] => ~NO_FANOUT~ +writedata[12] => ~NO_FANOUT~ +writedata[13] => ~NO_FANOUT~ +writedata[14] => ~NO_FANOUT~ +writedata[15] => ~NO_FANOUT~ +writedata[16] => ~NO_FANOUT~ +writedata[17] => ~NO_FANOUT~ +writedata[18] => ~NO_FANOUT~ +writedata[19] => ~NO_FANOUT~ +writedata[20] => ~NO_FANOUT~ +writedata[21] => ~NO_FANOUT~ +writedata[22] => ~NO_FANOUT~ +writedata[23] => ~NO_FANOUT~ +writedata[24] => ~NO_FANOUT~ +writedata[25] => ~NO_FANOUT~ +writedata[26] => ~NO_FANOUT~ +writedata[27] => ~NO_FANOUT~ +writedata[28] => ~NO_FANOUT~ +writedata[29] => ~NO_FANOUT~ +writedata[30] => ~NO_FANOUT~ +writedata[31] => ~NO_FANOUT~ +out_port[0] <= data_out[0].DB_MAX_OUTPUT_PORT_TYPE +out_port[1] <= data_out[1].DB_MAX_OUTPUT_PORT_TYPE +out_port[2] <= data_out[2].DB_MAX_OUTPUT_PORT_TYPE +out_port[3] <= data_out[3].DB_MAX_OUTPUT_PORT_TYPE +out_port[4] <= data_out[4].DB_MAX_OUTPUT_PORT_TYPE +out_port[5] <= data_out[5].DB_MAX_OUTPUT_PORT_TYPE +out_port[6] <= data_out[6].DB_MAX_OUTPUT_PORT_TYPE +out_port[7] <= data_out[7].DB_MAX_OUTPUT_PORT_TYPE +readdata[0] <= read_mux_out.DB_MAX_OUTPUT_PORT_TYPE +readdata[1] <= read_mux_out.DB_MAX_OUTPUT_PORT_TYPE +readdata[2] <= read_mux_out.DB_MAX_OUTPUT_PORT_TYPE +readdata[3] <= read_mux_out.DB_MAX_OUTPUT_PORT_TYPE +readdata[4] <= read_mux_out.DB_MAX_OUTPUT_PORT_TYPE +readdata[5] <= read_mux_out.DB_MAX_OUTPUT_PORT_TYPE +readdata[6] <= read_mux_out.DB_MAX_OUTPUT_PORT_TYPE +readdata[7] <= read_mux_out.DB_MAX_OUTPUT_PORT_TYPE +readdata[8] <= +readdata[9] <= +readdata[10] <= +readdata[11] <= +readdata[12] <= +readdata[13] <= +readdata[14] <= +readdata[15] <= +readdata[16] <= +readdata[17] <= +readdata[18] <= +readdata[19] <= +readdata[20] <= +readdata[21] <= +readdata[22] <= +readdata[23] <= +readdata[24] <= +readdata[25] <= +readdata[26] <= +readdata[27] <= +readdata[28] <= +readdata[29] <= +readdata[30] <= +readdata[31] <= + + +|lights|nios_system:NiosII|nios_system_LEDRs:ledrs +address[0] => Equal0.IN31 +address[1] => Equal0.IN30 +chipselect => always0.IN0 +clk => data_out[0].CLK +clk => data_out[1].CLK +clk => data_out[2].CLK +clk => data_out[3].CLK +clk => data_out[4].CLK +clk => data_out[5].CLK +clk => data_out[6].CLK +clk => data_out[7].CLK +clk => data_out[8].CLK +clk => data_out[9].CLK +clk => data_out[10].CLK +clk => data_out[11].CLK +clk => data_out[12].CLK +clk => data_out[13].CLK +clk => data_out[14].CLK +clk => data_out[15].CLK +clk => data_out[16].CLK +clk => data_out[17].CLK +reset_n => data_out[0].ACLR +reset_n => data_out[1].ACLR +reset_n => data_out[2].ACLR +reset_n => data_out[3].ACLR +reset_n => data_out[4].ACLR +reset_n => data_out[5].ACLR +reset_n => data_out[6].ACLR +reset_n => data_out[7].ACLR +reset_n => data_out[8].ACLR +reset_n => data_out[9].ACLR +reset_n => data_out[10].ACLR +reset_n => data_out[11].ACLR +reset_n => data_out[12].ACLR +reset_n => data_out[13].ACLR +reset_n => data_out[14].ACLR +reset_n => data_out[15].ACLR +reset_n => data_out[16].ACLR +reset_n => data_out[17].ACLR +write_n => always0.IN1 +writedata[0] => data_out[0].DATAIN +writedata[1] => data_out[1].DATAIN +writedata[2] => data_out[2].DATAIN +writedata[3] => data_out[3].DATAIN +writedata[4] => data_out[4].DATAIN +writedata[5] => data_out[5].DATAIN +writedata[6] => data_out[6].DATAIN +writedata[7] => data_out[7].DATAIN +writedata[8] => data_out[8].DATAIN +writedata[9] => data_out[9].DATAIN +writedata[10] => data_out[10].DATAIN +writedata[11] => data_out[11].DATAIN +writedata[12] => data_out[12].DATAIN +writedata[13] => data_out[13].DATAIN +writedata[14] => data_out[14].DATAIN +writedata[15] => data_out[15].DATAIN +writedata[16] => data_out[16].DATAIN +writedata[17] => data_out[17].DATAIN +writedata[18] => ~NO_FANOUT~ +writedata[19] => ~NO_FANOUT~ +writedata[20] => ~NO_FANOUT~ +writedata[21] => ~NO_FANOUT~ +writedata[22] => ~NO_FANOUT~ +writedata[23] => ~NO_FANOUT~ +writedata[24] => ~NO_FANOUT~ +writedata[25] => ~NO_FANOUT~ +writedata[26] => ~NO_FANOUT~ +writedata[27] => ~NO_FANOUT~ +writedata[28] => ~NO_FANOUT~ +writedata[29] => ~NO_FANOUT~ +writedata[30] => ~NO_FANOUT~ +writedata[31] => ~NO_FANOUT~ +out_port[0] <= data_out[0].DB_MAX_OUTPUT_PORT_TYPE +out_port[1] <= data_out[1].DB_MAX_OUTPUT_PORT_TYPE +out_port[2] <= data_out[2].DB_MAX_OUTPUT_PORT_TYPE +out_port[3] <= data_out[3].DB_MAX_OUTPUT_PORT_TYPE +out_port[4] <= data_out[4].DB_MAX_OUTPUT_PORT_TYPE +out_port[5] <= data_out[5].DB_MAX_OUTPUT_PORT_TYPE +out_port[6] <= data_out[6].DB_MAX_OUTPUT_PORT_TYPE +out_port[7] <= data_out[7].DB_MAX_OUTPUT_PORT_TYPE +out_port[8] <= data_out[8].DB_MAX_OUTPUT_PORT_TYPE +out_port[9] <= data_out[9].DB_MAX_OUTPUT_PORT_TYPE +out_port[10] <= data_out[10].DB_MAX_OUTPUT_PORT_TYPE +out_port[11] <= data_out[11].DB_MAX_OUTPUT_PORT_TYPE +out_port[12] <= data_out[12].DB_MAX_OUTPUT_PORT_TYPE +out_port[13] <= data_out[13].DB_MAX_OUTPUT_PORT_TYPE +out_port[14] <= data_out[14].DB_MAX_OUTPUT_PORT_TYPE +out_port[15] <= data_out[15].DB_MAX_OUTPUT_PORT_TYPE +out_port[16] <= data_out[16].DB_MAX_OUTPUT_PORT_TYPE +out_port[17] <= data_out[17].DB_MAX_OUTPUT_PORT_TYPE +readdata[0] <= read_mux_out.DB_MAX_OUTPUT_PORT_TYPE +readdata[1] <= read_mux_out.DB_MAX_OUTPUT_PORT_TYPE +readdata[2] <= read_mux_out.DB_MAX_OUTPUT_PORT_TYPE +readdata[3] <= read_mux_out.DB_MAX_OUTPUT_PORT_TYPE +readdata[4] <= read_mux_out.DB_MAX_OUTPUT_PORT_TYPE +readdata[5] <= read_mux_out.DB_MAX_OUTPUT_PORT_TYPE +readdata[6] <= read_mux_out.DB_MAX_OUTPUT_PORT_TYPE +readdata[7] <= read_mux_out.DB_MAX_OUTPUT_PORT_TYPE +readdata[8] <= read_mux_out.DB_MAX_OUTPUT_PORT_TYPE +readdata[9] <= read_mux_out.DB_MAX_OUTPUT_PORT_TYPE +readdata[10] <= read_mux_out.DB_MAX_OUTPUT_PORT_TYPE +readdata[11] <= read_mux_out.DB_MAX_OUTPUT_PORT_TYPE +readdata[12] <= read_mux_out.DB_MAX_OUTPUT_PORT_TYPE +readdata[13] <= read_mux_out.DB_MAX_OUTPUT_PORT_TYPE +readdata[14] <= read_mux_out.DB_MAX_OUTPUT_PORT_TYPE +readdata[15] <= read_mux_out.DB_MAX_OUTPUT_PORT_TYPE +readdata[16] <= read_mux_out.DB_MAX_OUTPUT_PORT_TYPE +readdata[17] <= read_mux_out.DB_MAX_OUTPUT_PORT_TYPE +readdata[18] <= +readdata[19] <= +readdata[20] <= +readdata[21] <= +readdata[22] <= +readdata[23] <= +readdata[24] <= +readdata[25] <= +readdata[26] <= +readdata[27] <= +readdata[28] <= +readdata[29] <= +readdata[30] <= +readdata[31] <= + + +|lights|nios_system:NiosII|nios_system_switches:switches +address[0] => Equal0.IN31 +address[1] => Equal0.IN30 +clk => readdata[0]~reg0.CLK +clk => readdata[1]~reg0.CLK +clk => readdata[2]~reg0.CLK +clk => readdata[3]~reg0.CLK +clk => readdata[4]~reg0.CLK +clk => readdata[5]~reg0.CLK +clk => readdata[6]~reg0.CLK +clk => readdata[7]~reg0.CLK +clk => readdata[8]~reg0.CLK +clk => readdata[9]~reg0.CLK +clk => readdata[10]~reg0.CLK +clk => readdata[11]~reg0.CLK +clk => readdata[12]~reg0.CLK +clk => readdata[13]~reg0.CLK +clk => readdata[14]~reg0.CLK +clk => readdata[15]~reg0.CLK +clk => readdata[16]~reg0.CLK +clk => readdata[17]~reg0.CLK +clk => readdata[18]~reg0.CLK +clk => readdata[19]~reg0.CLK +clk => readdata[20]~reg0.CLK +clk => readdata[21]~reg0.CLK +clk => readdata[22]~reg0.CLK +clk => readdata[23]~reg0.CLK +clk => readdata[24]~reg0.CLK +clk => readdata[25]~reg0.CLK +clk => readdata[26]~reg0.CLK +clk => readdata[27]~reg0.CLK +clk => readdata[28]~reg0.CLK +clk => readdata[29]~reg0.CLK +clk => readdata[30]~reg0.CLK +clk => readdata[31]~reg0.CLK +in_port[0] => read_mux_out[0].IN1 +in_port[1] => read_mux_out[1].IN1 +in_port[2] => read_mux_out[2].IN1 +in_port[3] => read_mux_out[3].IN1 +in_port[4] => read_mux_out[4].IN1 +in_port[5] => read_mux_out[5].IN1 +in_port[6] => read_mux_out[6].IN1 +in_port[7] => read_mux_out[7].IN1 +in_port[8] => read_mux_out[8].IN1 +in_port[9] => read_mux_out[9].IN1 +in_port[10] => read_mux_out[10].IN1 +in_port[11] => read_mux_out[11].IN1 +in_port[12] => read_mux_out[12].IN1 +in_port[13] => read_mux_out[13].IN1 +in_port[14] => read_mux_out[14].IN1 +in_port[15] => read_mux_out[15].IN1 +in_port[16] => read_mux_out[16].IN1 +in_port[17] => read_mux_out[17].IN1 +reset_n => readdata[0]~reg0.ACLR +reset_n => readdata[1]~reg0.ACLR +reset_n => readdata[2]~reg0.ACLR +reset_n => readdata[3]~reg0.ACLR +reset_n => readdata[4]~reg0.ACLR +reset_n => readdata[5]~reg0.ACLR +reset_n => readdata[6]~reg0.ACLR +reset_n => readdata[7]~reg0.ACLR +reset_n => readdata[8]~reg0.ACLR +reset_n => readdata[9]~reg0.ACLR +reset_n => readdata[10]~reg0.ACLR +reset_n => readdata[11]~reg0.ACLR +reset_n => readdata[12]~reg0.ACLR +reset_n => readdata[13]~reg0.ACLR +reset_n => readdata[14]~reg0.ACLR +reset_n => readdata[15]~reg0.ACLR +reset_n => readdata[16]~reg0.ACLR +reset_n => readdata[17]~reg0.ACLR +reset_n => readdata[18]~reg0.ACLR +reset_n => readdata[19]~reg0.ACLR +reset_n => readdata[20]~reg0.ACLR +reset_n => readdata[21]~reg0.ACLR +reset_n => readdata[22]~reg0.ACLR +reset_n => readdata[23]~reg0.ACLR +reset_n => readdata[24]~reg0.ACLR +reset_n => readdata[25]~reg0.ACLR +reset_n => readdata[26]~reg0.ACLR +reset_n => readdata[27]~reg0.ACLR +reset_n => readdata[28]~reg0.ACLR +reset_n => readdata[29]~reg0.ACLR +reset_n => readdata[30]~reg0.ACLR +reset_n => readdata[31]~reg0.ACLR +readdata[0] <= readdata[0]~reg0.DB_MAX_OUTPUT_PORT_TYPE +readdata[1] <= readdata[1]~reg0.DB_MAX_OUTPUT_PORT_TYPE +readdata[2] <= readdata[2]~reg0.DB_MAX_OUTPUT_PORT_TYPE +readdata[3] <= readdata[3]~reg0.DB_MAX_OUTPUT_PORT_TYPE +readdata[4] <= readdata[4]~reg0.DB_MAX_OUTPUT_PORT_TYPE +readdata[5] <= readdata[5]~reg0.DB_MAX_OUTPUT_PORT_TYPE +readdata[6] <= readdata[6]~reg0.DB_MAX_OUTPUT_PORT_TYPE +readdata[7] <= readdata[7]~reg0.DB_MAX_OUTPUT_PORT_TYPE +readdata[8] <= readdata[8]~reg0.DB_MAX_OUTPUT_PORT_TYPE +readdata[9] <= readdata[9]~reg0.DB_MAX_OUTPUT_PORT_TYPE +readdata[10] <= readdata[10]~reg0.DB_MAX_OUTPUT_PORT_TYPE +readdata[11] <= readdata[11]~reg0.DB_MAX_OUTPUT_PORT_TYPE +readdata[12] <= readdata[12]~reg0.DB_MAX_OUTPUT_PORT_TYPE +readdata[13] <= readdata[13]~reg0.DB_MAX_OUTPUT_PORT_TYPE +readdata[14] <= readdata[14]~reg0.DB_MAX_OUTPUT_PORT_TYPE +readdata[15] <= readdata[15]~reg0.DB_MAX_OUTPUT_PORT_TYPE +readdata[16] <= readdata[16]~reg0.DB_MAX_OUTPUT_PORT_TYPE +readdata[17] <= readdata[17]~reg0.DB_MAX_OUTPUT_PORT_TYPE +readdata[18] <= readdata[18]~reg0.DB_MAX_OUTPUT_PORT_TYPE +readdata[19] <= readdata[19]~reg0.DB_MAX_OUTPUT_PORT_TYPE +readdata[20] <= readdata[20]~reg0.DB_MAX_OUTPUT_PORT_TYPE +readdata[21] <= readdata[21]~reg0.DB_MAX_OUTPUT_PORT_TYPE +readdata[22] <= readdata[22]~reg0.DB_MAX_OUTPUT_PORT_TYPE +readdata[23] <= readdata[23]~reg0.DB_MAX_OUTPUT_PORT_TYPE +readdata[24] <= readdata[24]~reg0.DB_MAX_OUTPUT_PORT_TYPE +readdata[25] <= readdata[25]~reg0.DB_MAX_OUTPUT_PORT_TYPE +readdata[26] <= readdata[26]~reg0.DB_MAX_OUTPUT_PORT_TYPE +readdata[27] <= readdata[27]~reg0.DB_MAX_OUTPUT_PORT_TYPE +readdata[28] <= readdata[28]~reg0.DB_MAX_OUTPUT_PORT_TYPE +readdata[29] <= readdata[29]~reg0.DB_MAX_OUTPUT_PORT_TYPE +readdata[30] <= readdata[30]~reg0.DB_MAX_OUTPUT_PORT_TYPE +readdata[31] <= readdata[31]~reg0.DB_MAX_OUTPUT_PORT_TYPE + + +|lights|nios_system:NiosII|nios_system_push_switches:push_switches +address[0] => Equal0.IN31 +address[1] => Equal0.IN30 +clk => readdata[0]~reg0.CLK +clk => readdata[1]~reg0.CLK +clk => readdata[2]~reg0.CLK +clk => readdata[3]~reg0.CLK +clk => readdata[4]~reg0.CLK +clk => readdata[5]~reg0.CLK +clk => readdata[6]~reg0.CLK +clk => readdata[7]~reg0.CLK +clk => readdata[8]~reg0.CLK +clk => readdata[9]~reg0.CLK +clk => readdata[10]~reg0.CLK +clk => readdata[11]~reg0.CLK +clk => readdata[12]~reg0.CLK +clk => readdata[13]~reg0.CLK +clk => readdata[14]~reg0.CLK +clk => readdata[15]~reg0.CLK +clk => readdata[16]~reg0.CLK +clk => readdata[17]~reg0.CLK +clk => readdata[18]~reg0.CLK +clk => readdata[19]~reg0.CLK +clk => readdata[20]~reg0.CLK +clk => readdata[21]~reg0.CLK +clk => readdata[22]~reg0.CLK +clk => readdata[23]~reg0.CLK +clk => readdata[24]~reg0.CLK +clk => readdata[25]~reg0.CLK +clk => readdata[26]~reg0.CLK +clk => readdata[27]~reg0.CLK +clk => readdata[28]~reg0.CLK +clk => readdata[29]~reg0.CLK +clk => readdata[30]~reg0.CLK +clk => readdata[31]~reg0.CLK +in_port[0] => read_mux_out[0].IN1 +in_port[1] => read_mux_out[1].IN1 +in_port[2] => read_mux_out[2].IN1 +reset_n => readdata[0]~reg0.ACLR +reset_n => readdata[1]~reg0.ACLR +reset_n => readdata[2]~reg0.ACLR +reset_n => readdata[3]~reg0.ACLR +reset_n => readdata[4]~reg0.ACLR +reset_n => readdata[5]~reg0.ACLR +reset_n => readdata[6]~reg0.ACLR +reset_n => readdata[7]~reg0.ACLR +reset_n => readdata[8]~reg0.ACLR +reset_n => readdata[9]~reg0.ACLR +reset_n => readdata[10]~reg0.ACLR +reset_n => readdata[11]~reg0.ACLR +reset_n => readdata[12]~reg0.ACLR +reset_n => readdata[13]~reg0.ACLR +reset_n => readdata[14]~reg0.ACLR +reset_n => readdata[15]~reg0.ACLR +reset_n => readdata[16]~reg0.ACLR +reset_n => readdata[17]~reg0.ACLR +reset_n => readdata[18]~reg0.ACLR +reset_n => readdata[19]~reg0.ACLR +reset_n => readdata[20]~reg0.ACLR +reset_n => readdata[21]~reg0.ACLR +reset_n => readdata[22]~reg0.ACLR +reset_n => readdata[23]~reg0.ACLR +reset_n => readdata[24]~reg0.ACLR +reset_n => readdata[25]~reg0.ACLR +reset_n => readdata[26]~reg0.ACLR +reset_n => readdata[27]~reg0.ACLR +reset_n => readdata[28]~reg0.ACLR +reset_n => readdata[29]~reg0.ACLR +reset_n => readdata[30]~reg0.ACLR +reset_n => readdata[31]~reg0.ACLR +readdata[0] <= readdata[0]~reg0.DB_MAX_OUTPUT_PORT_TYPE +readdata[1] <= readdata[1]~reg0.DB_MAX_OUTPUT_PORT_TYPE +readdata[2] <= readdata[2]~reg0.DB_MAX_OUTPUT_PORT_TYPE +readdata[3] <= readdata[3]~reg0.DB_MAX_OUTPUT_PORT_TYPE +readdata[4] <= readdata[4]~reg0.DB_MAX_OUTPUT_PORT_TYPE +readdata[5] <= readdata[5]~reg0.DB_MAX_OUTPUT_PORT_TYPE +readdata[6] <= readdata[6]~reg0.DB_MAX_OUTPUT_PORT_TYPE +readdata[7] <= readdata[7]~reg0.DB_MAX_OUTPUT_PORT_TYPE +readdata[8] <= readdata[8]~reg0.DB_MAX_OUTPUT_PORT_TYPE +readdata[9] <= readdata[9]~reg0.DB_MAX_OUTPUT_PORT_TYPE +readdata[10] <= readdata[10]~reg0.DB_MAX_OUTPUT_PORT_TYPE +readdata[11] <= readdata[11]~reg0.DB_MAX_OUTPUT_PORT_TYPE +readdata[12] <= readdata[12]~reg0.DB_MAX_OUTPUT_PORT_TYPE +readdata[13] <= readdata[13]~reg0.DB_MAX_OUTPUT_PORT_TYPE +readdata[14] <= readdata[14]~reg0.DB_MAX_OUTPUT_PORT_TYPE +readdata[15] <= readdata[15]~reg0.DB_MAX_OUTPUT_PORT_TYPE +readdata[16] <= readdata[16]~reg0.DB_MAX_OUTPUT_PORT_TYPE +readdata[17] <= readdata[17]~reg0.DB_MAX_OUTPUT_PORT_TYPE +readdata[18] <= readdata[18]~reg0.DB_MAX_OUTPUT_PORT_TYPE +readdata[19] <= readdata[19]~reg0.DB_MAX_OUTPUT_PORT_TYPE +readdata[20] <= readdata[20]~reg0.DB_MAX_OUTPUT_PORT_TYPE +readdata[21] <= readdata[21]~reg0.DB_MAX_OUTPUT_PORT_TYPE +readdata[22] <= readdata[22]~reg0.DB_MAX_OUTPUT_PORT_TYPE +readdata[23] <= readdata[23]~reg0.DB_MAX_OUTPUT_PORT_TYPE +readdata[24] <= readdata[24]~reg0.DB_MAX_OUTPUT_PORT_TYPE +readdata[25] <= readdata[25]~reg0.DB_MAX_OUTPUT_PORT_TYPE +readdata[26] <= readdata[26]~reg0.DB_MAX_OUTPUT_PORT_TYPE +readdata[27] <= readdata[27]~reg0.DB_MAX_OUTPUT_PORT_TYPE +readdata[28] <= readdata[28]~reg0.DB_MAX_OUTPUT_PORT_TYPE +readdata[29] <= readdata[29]~reg0.DB_MAX_OUTPUT_PORT_TYPE +readdata[30] <= readdata[30]~reg0.DB_MAX_OUTPUT_PORT_TYPE +readdata[31] <= readdata[31]~reg0.DB_MAX_OUTPUT_PORT_TYPE + + +|lights|nios_system:NiosII|nios_system_hex0:hex0 +address[0] => Equal0.IN31 +address[1] => Equal0.IN30 +chipselect => always0.IN0 +clk => data_out[0].CLK +clk => data_out[1].CLK +clk => data_out[2].CLK +clk => data_out[3].CLK +clk => data_out[4].CLK +clk => data_out[5].CLK +clk => data_out[6].CLK +reset_n => data_out[0].ACLR +reset_n => data_out[1].ACLR +reset_n => data_out[2].ACLR +reset_n => data_out[3].ACLR +reset_n => data_out[4].ACLR +reset_n => data_out[5].ACLR +reset_n => data_out[6].ACLR +write_n => always0.IN1 +writedata[0] => data_out[0].DATAIN +writedata[1] => data_out[1].DATAIN +writedata[2] => data_out[2].DATAIN +writedata[3] => data_out[3].DATAIN +writedata[4] => data_out[4].DATAIN +writedata[5] => data_out[5].DATAIN +writedata[6] => data_out[6].DATAIN +writedata[7] => ~NO_FANOUT~ +writedata[8] => ~NO_FANOUT~ +writedata[9] => ~NO_FANOUT~ +writedata[10] => ~NO_FANOUT~ +writedata[11] => ~NO_FANOUT~ +writedata[12] => ~NO_FANOUT~ +writedata[13] => ~NO_FANOUT~ +writedata[14] => ~NO_FANOUT~ +writedata[15] => ~NO_FANOUT~ +writedata[16] => ~NO_FANOUT~ +writedata[17] => ~NO_FANOUT~ +writedata[18] => ~NO_FANOUT~ +writedata[19] => ~NO_FANOUT~ +writedata[20] => ~NO_FANOUT~ +writedata[21] => ~NO_FANOUT~ +writedata[22] => ~NO_FANOUT~ +writedata[23] => ~NO_FANOUT~ +writedata[24] => ~NO_FANOUT~ +writedata[25] => ~NO_FANOUT~ +writedata[26] => ~NO_FANOUT~ +writedata[27] => ~NO_FANOUT~ +writedata[28] => ~NO_FANOUT~ +writedata[29] => ~NO_FANOUT~ +writedata[30] => ~NO_FANOUT~ +writedata[31] => ~NO_FANOUT~ +out_port[0] <= data_out[0].DB_MAX_OUTPUT_PORT_TYPE +out_port[1] <= data_out[1].DB_MAX_OUTPUT_PORT_TYPE +out_port[2] <= data_out[2].DB_MAX_OUTPUT_PORT_TYPE +out_port[3] <= data_out[3].DB_MAX_OUTPUT_PORT_TYPE +out_port[4] <= data_out[4].DB_MAX_OUTPUT_PORT_TYPE +out_port[5] <= data_out[5].DB_MAX_OUTPUT_PORT_TYPE +out_port[6] <= data_out[6].DB_MAX_OUTPUT_PORT_TYPE +readdata[0] <= read_mux_out.DB_MAX_OUTPUT_PORT_TYPE +readdata[1] <= read_mux_out.DB_MAX_OUTPUT_PORT_TYPE +readdata[2] <= read_mux_out.DB_MAX_OUTPUT_PORT_TYPE +readdata[3] <= read_mux_out.DB_MAX_OUTPUT_PORT_TYPE +readdata[4] <= read_mux_out.DB_MAX_OUTPUT_PORT_TYPE +readdata[5] <= read_mux_out.DB_MAX_OUTPUT_PORT_TYPE +readdata[6] <= read_mux_out.DB_MAX_OUTPUT_PORT_TYPE +readdata[7] <= +readdata[8] <= +readdata[9] <= +readdata[10] <= +readdata[11] <= +readdata[12] <= +readdata[13] <= +readdata[14] <= +readdata[15] <= +readdata[16] <= +readdata[17] <= +readdata[18] <= +readdata[19] <= +readdata[20] <= +readdata[21] <= +readdata[22] <= +readdata[23] <= +readdata[24] <= +readdata[25] <= +readdata[26] <= +readdata[27] <= +readdata[28] <= +readdata[29] <= +readdata[30] <= +readdata[31] <= + + +|lights|nios_system:NiosII|nios_system_hex0:hex1 +address[0] => Equal0.IN31 +address[1] => Equal0.IN30 +chipselect => always0.IN0 +clk => data_out[0].CLK +clk => data_out[1].CLK +clk => data_out[2].CLK +clk => data_out[3].CLK +clk => data_out[4].CLK +clk => data_out[5].CLK +clk => data_out[6].CLK +reset_n => data_out[0].ACLR +reset_n => data_out[1].ACLR +reset_n => data_out[2].ACLR +reset_n => data_out[3].ACLR +reset_n => data_out[4].ACLR +reset_n => data_out[5].ACLR +reset_n => data_out[6].ACLR +write_n => always0.IN1 +writedata[0] => data_out[0].DATAIN +writedata[1] => data_out[1].DATAIN +writedata[2] => data_out[2].DATAIN +writedata[3] => data_out[3].DATAIN +writedata[4] => data_out[4].DATAIN +writedata[5] => data_out[5].DATAIN +writedata[6] => data_out[6].DATAIN +writedata[7] => ~NO_FANOUT~ +writedata[8] => ~NO_FANOUT~ +writedata[9] => ~NO_FANOUT~ +writedata[10] => ~NO_FANOUT~ +writedata[11] => ~NO_FANOUT~ +writedata[12] => ~NO_FANOUT~ +writedata[13] => ~NO_FANOUT~ +writedata[14] => ~NO_FANOUT~ +writedata[15] => ~NO_FANOUT~ +writedata[16] => ~NO_FANOUT~ +writedata[17] => ~NO_FANOUT~ +writedata[18] => ~NO_FANOUT~ +writedata[19] => ~NO_FANOUT~ +writedata[20] => ~NO_FANOUT~ +writedata[21] => ~NO_FANOUT~ +writedata[22] => ~NO_FANOUT~ +writedata[23] => ~NO_FANOUT~ +writedata[24] => ~NO_FANOUT~ +writedata[25] => ~NO_FANOUT~ +writedata[26] => ~NO_FANOUT~ +writedata[27] => ~NO_FANOUT~ +writedata[28] => ~NO_FANOUT~ +writedata[29] => ~NO_FANOUT~ +writedata[30] => ~NO_FANOUT~ +writedata[31] => ~NO_FANOUT~ +out_port[0] <= data_out[0].DB_MAX_OUTPUT_PORT_TYPE +out_port[1] <= data_out[1].DB_MAX_OUTPUT_PORT_TYPE +out_port[2] <= data_out[2].DB_MAX_OUTPUT_PORT_TYPE +out_port[3] <= data_out[3].DB_MAX_OUTPUT_PORT_TYPE +out_port[4] <= data_out[4].DB_MAX_OUTPUT_PORT_TYPE +out_port[5] <= data_out[5].DB_MAX_OUTPUT_PORT_TYPE +out_port[6] <= data_out[6].DB_MAX_OUTPUT_PORT_TYPE +readdata[0] <= read_mux_out.DB_MAX_OUTPUT_PORT_TYPE +readdata[1] <= read_mux_out.DB_MAX_OUTPUT_PORT_TYPE +readdata[2] <= read_mux_out.DB_MAX_OUTPUT_PORT_TYPE +readdata[3] <= read_mux_out.DB_MAX_OUTPUT_PORT_TYPE +readdata[4] <= read_mux_out.DB_MAX_OUTPUT_PORT_TYPE +readdata[5] <= read_mux_out.DB_MAX_OUTPUT_PORT_TYPE +readdata[6] <= read_mux_out.DB_MAX_OUTPUT_PORT_TYPE +readdata[7] <= +readdata[8] <= +readdata[9] <= +readdata[10] <= +readdata[11] <= +readdata[12] <= +readdata[13] <= +readdata[14] <= +readdata[15] <= +readdata[16] <= +readdata[17] <= +readdata[18] <= +readdata[19] <= +readdata[20] <= +readdata[21] <= +readdata[22] <= +readdata[23] <= +readdata[24] <= +readdata[25] <= +readdata[26] <= +readdata[27] <= +readdata[28] <= +readdata[29] <= +readdata[30] <= +readdata[31] <= + + +|lights|nios_system:NiosII|nios_system_hex0:hex2 +address[0] => Equal0.IN31 +address[1] => Equal0.IN30 +chipselect => always0.IN0 +clk => data_out[0].CLK +clk => data_out[1].CLK +clk => data_out[2].CLK +clk => data_out[3].CLK +clk => data_out[4].CLK +clk => data_out[5].CLK +clk => data_out[6].CLK +reset_n => data_out[0].ACLR +reset_n => data_out[1].ACLR +reset_n => data_out[2].ACLR +reset_n => data_out[3].ACLR +reset_n => data_out[4].ACLR +reset_n => data_out[5].ACLR +reset_n => data_out[6].ACLR +write_n => always0.IN1 +writedata[0] => data_out[0].DATAIN +writedata[1] => data_out[1].DATAIN +writedata[2] => data_out[2].DATAIN +writedata[3] => data_out[3].DATAIN +writedata[4] => data_out[4].DATAIN +writedata[5] => data_out[5].DATAIN +writedata[6] => data_out[6].DATAIN +writedata[7] => ~NO_FANOUT~ +writedata[8] => ~NO_FANOUT~ +writedata[9] => ~NO_FANOUT~ +writedata[10] => ~NO_FANOUT~ +writedata[11] => ~NO_FANOUT~ +writedata[12] => ~NO_FANOUT~ +writedata[13] => ~NO_FANOUT~ +writedata[14] => ~NO_FANOUT~ +writedata[15] => ~NO_FANOUT~ +writedata[16] => ~NO_FANOUT~ +writedata[17] => ~NO_FANOUT~ +writedata[18] => ~NO_FANOUT~ +writedata[19] => ~NO_FANOUT~ +writedata[20] => ~NO_FANOUT~ +writedata[21] => ~NO_FANOUT~ +writedata[22] => ~NO_FANOUT~ +writedata[23] => ~NO_FANOUT~ +writedata[24] => ~NO_FANOUT~ +writedata[25] => ~NO_FANOUT~ +writedata[26] => ~NO_FANOUT~ +writedata[27] => ~NO_FANOUT~ +writedata[28] => ~NO_FANOUT~ +writedata[29] => ~NO_FANOUT~ +writedata[30] => ~NO_FANOUT~ +writedata[31] => ~NO_FANOUT~ +out_port[0] <= data_out[0].DB_MAX_OUTPUT_PORT_TYPE +out_port[1] <= data_out[1].DB_MAX_OUTPUT_PORT_TYPE +out_port[2] <= data_out[2].DB_MAX_OUTPUT_PORT_TYPE +out_port[3] <= data_out[3].DB_MAX_OUTPUT_PORT_TYPE +out_port[4] <= data_out[4].DB_MAX_OUTPUT_PORT_TYPE +out_port[5] <= data_out[5].DB_MAX_OUTPUT_PORT_TYPE +out_port[6] <= data_out[6].DB_MAX_OUTPUT_PORT_TYPE +readdata[0] <= read_mux_out.DB_MAX_OUTPUT_PORT_TYPE +readdata[1] <= read_mux_out.DB_MAX_OUTPUT_PORT_TYPE +readdata[2] <= read_mux_out.DB_MAX_OUTPUT_PORT_TYPE +readdata[3] <= read_mux_out.DB_MAX_OUTPUT_PORT_TYPE +readdata[4] <= read_mux_out.DB_MAX_OUTPUT_PORT_TYPE +readdata[5] <= read_mux_out.DB_MAX_OUTPUT_PORT_TYPE +readdata[6] <= read_mux_out.DB_MAX_OUTPUT_PORT_TYPE +readdata[7] <= +readdata[8] <= +readdata[9] <= +readdata[10] <= +readdata[11] <= +readdata[12] <= +readdata[13] <= +readdata[14] <= +readdata[15] <= +readdata[16] <= +readdata[17] <= +readdata[18] <= +readdata[19] <= +readdata[20] <= +readdata[21] <= +readdata[22] <= +readdata[23] <= +readdata[24] <= +readdata[25] <= +readdata[26] <= +readdata[27] <= +readdata[28] <= +readdata[29] <= +readdata[30] <= +readdata[31] <= + + +|lights|nios_system:NiosII|nios_system_hex0:hex3 +address[0] => Equal0.IN31 +address[1] => Equal0.IN30 +chipselect => always0.IN0 +clk => data_out[0].CLK +clk => data_out[1].CLK +clk => data_out[2].CLK +clk => data_out[3].CLK +clk => data_out[4].CLK +clk => data_out[5].CLK +clk => data_out[6].CLK +reset_n => data_out[0].ACLR +reset_n => data_out[1].ACLR +reset_n => data_out[2].ACLR +reset_n => data_out[3].ACLR +reset_n => data_out[4].ACLR +reset_n => data_out[5].ACLR +reset_n => data_out[6].ACLR +write_n => always0.IN1 +writedata[0] => data_out[0].DATAIN +writedata[1] => data_out[1].DATAIN +writedata[2] => data_out[2].DATAIN +writedata[3] => data_out[3].DATAIN +writedata[4] => data_out[4].DATAIN +writedata[5] => data_out[5].DATAIN +writedata[6] => data_out[6].DATAIN +writedata[7] => ~NO_FANOUT~ +writedata[8] => ~NO_FANOUT~ +writedata[9] => ~NO_FANOUT~ +writedata[10] => ~NO_FANOUT~ +writedata[11] => ~NO_FANOUT~ +writedata[12] => ~NO_FANOUT~ +writedata[13] => ~NO_FANOUT~ +writedata[14] => ~NO_FANOUT~ +writedata[15] => ~NO_FANOUT~ +writedata[16] => ~NO_FANOUT~ +writedata[17] => ~NO_FANOUT~ +writedata[18] => ~NO_FANOUT~ +writedata[19] => ~NO_FANOUT~ +writedata[20] => ~NO_FANOUT~ +writedata[21] => ~NO_FANOUT~ +writedata[22] => ~NO_FANOUT~ +writedata[23] => ~NO_FANOUT~ +writedata[24] => ~NO_FANOUT~ +writedata[25] => ~NO_FANOUT~ +writedata[26] => ~NO_FANOUT~ +writedata[27] => ~NO_FANOUT~ +writedata[28] => ~NO_FANOUT~ +writedata[29] => ~NO_FANOUT~ +writedata[30] => ~NO_FANOUT~ +writedata[31] => ~NO_FANOUT~ +out_port[0] <= data_out[0].DB_MAX_OUTPUT_PORT_TYPE +out_port[1] <= data_out[1].DB_MAX_OUTPUT_PORT_TYPE +out_port[2] <= data_out[2].DB_MAX_OUTPUT_PORT_TYPE +out_port[3] <= data_out[3].DB_MAX_OUTPUT_PORT_TYPE +out_port[4] <= data_out[4].DB_MAX_OUTPUT_PORT_TYPE +out_port[5] <= data_out[5].DB_MAX_OUTPUT_PORT_TYPE +out_port[6] <= data_out[6].DB_MAX_OUTPUT_PORT_TYPE +readdata[0] <= read_mux_out.DB_MAX_OUTPUT_PORT_TYPE +readdata[1] <= read_mux_out.DB_MAX_OUTPUT_PORT_TYPE +readdata[2] <= read_mux_out.DB_MAX_OUTPUT_PORT_TYPE +readdata[3] <= read_mux_out.DB_MAX_OUTPUT_PORT_TYPE +readdata[4] <= read_mux_out.DB_MAX_OUTPUT_PORT_TYPE +readdata[5] <= read_mux_out.DB_MAX_OUTPUT_PORT_TYPE +readdata[6] <= read_mux_out.DB_MAX_OUTPUT_PORT_TYPE +readdata[7] <= +readdata[8] <= +readdata[9] <= +readdata[10] <= +readdata[11] <= +readdata[12] <= +readdata[13] <= +readdata[14] <= +readdata[15] <= +readdata[16] <= +readdata[17] <= +readdata[18] <= +readdata[19] <= +readdata[20] <= +readdata[21] <= +readdata[22] <= +readdata[23] <= +readdata[24] <= +readdata[25] <= +readdata[26] <= +readdata[27] <= +readdata[28] <= +readdata[29] <= +readdata[30] <= +readdata[31] <= + + +|lights|nios_system:NiosII|nios_system_hex0:hex4 +address[0] => Equal0.IN31 +address[1] => Equal0.IN30 +chipselect => always0.IN0 +clk => data_out[0].CLK +clk => data_out[1].CLK +clk => data_out[2].CLK +clk => data_out[3].CLK +clk => data_out[4].CLK +clk => data_out[5].CLK +clk => data_out[6].CLK +reset_n => data_out[0].ACLR +reset_n => data_out[1].ACLR +reset_n => data_out[2].ACLR +reset_n => data_out[3].ACLR +reset_n => data_out[4].ACLR +reset_n => data_out[5].ACLR +reset_n => data_out[6].ACLR +write_n => always0.IN1 +writedata[0] => data_out[0].DATAIN +writedata[1] => data_out[1].DATAIN +writedata[2] => data_out[2].DATAIN +writedata[3] => data_out[3].DATAIN +writedata[4] => data_out[4].DATAIN +writedata[5] => data_out[5].DATAIN +writedata[6] => data_out[6].DATAIN +writedata[7] => ~NO_FANOUT~ +writedata[8] => ~NO_FANOUT~ +writedata[9] => ~NO_FANOUT~ +writedata[10] => ~NO_FANOUT~ +writedata[11] => ~NO_FANOUT~ +writedata[12] => ~NO_FANOUT~ +writedata[13] => ~NO_FANOUT~ +writedata[14] => ~NO_FANOUT~ +writedata[15] => ~NO_FANOUT~ +writedata[16] => ~NO_FANOUT~ +writedata[17] => ~NO_FANOUT~ +writedata[18] => ~NO_FANOUT~ +writedata[19] => ~NO_FANOUT~ +writedata[20] => ~NO_FANOUT~ +writedata[21] => ~NO_FANOUT~ +writedata[22] => ~NO_FANOUT~ +writedata[23] => ~NO_FANOUT~ +writedata[24] => ~NO_FANOUT~ +writedata[25] => ~NO_FANOUT~ +writedata[26] => ~NO_FANOUT~ +writedata[27] => ~NO_FANOUT~ +writedata[28] => ~NO_FANOUT~ +writedata[29] => ~NO_FANOUT~ +writedata[30] => ~NO_FANOUT~ +writedata[31] => ~NO_FANOUT~ +out_port[0] <= data_out[0].DB_MAX_OUTPUT_PORT_TYPE +out_port[1] <= data_out[1].DB_MAX_OUTPUT_PORT_TYPE +out_port[2] <= data_out[2].DB_MAX_OUTPUT_PORT_TYPE +out_port[3] <= data_out[3].DB_MAX_OUTPUT_PORT_TYPE +out_port[4] <= data_out[4].DB_MAX_OUTPUT_PORT_TYPE +out_port[5] <= data_out[5].DB_MAX_OUTPUT_PORT_TYPE +out_port[6] <= data_out[6].DB_MAX_OUTPUT_PORT_TYPE +readdata[0] <= read_mux_out.DB_MAX_OUTPUT_PORT_TYPE +readdata[1] <= read_mux_out.DB_MAX_OUTPUT_PORT_TYPE +readdata[2] <= read_mux_out.DB_MAX_OUTPUT_PORT_TYPE +readdata[3] <= read_mux_out.DB_MAX_OUTPUT_PORT_TYPE +readdata[4] <= read_mux_out.DB_MAX_OUTPUT_PORT_TYPE +readdata[5] <= read_mux_out.DB_MAX_OUTPUT_PORT_TYPE +readdata[6] <= read_mux_out.DB_MAX_OUTPUT_PORT_TYPE +readdata[7] <= +readdata[8] <= +readdata[9] <= +readdata[10] <= +readdata[11] <= +readdata[12] <= +readdata[13] <= +readdata[14] <= +readdata[15] <= +readdata[16] <= +readdata[17] <= +readdata[18] <= +readdata[19] <= +readdata[20] <= +readdata[21] <= +readdata[22] <= +readdata[23] <= +readdata[24] <= +readdata[25] <= +readdata[26] <= +readdata[27] <= +readdata[28] <= +readdata[29] <= +readdata[30] <= +readdata[31] <= + + +|lights|nios_system:NiosII|nios_system_hex0:hex5 +address[0] => Equal0.IN31 +address[1] => Equal0.IN30 +chipselect => always0.IN0 +clk => data_out[0].CLK +clk => data_out[1].CLK +clk => data_out[2].CLK +clk => data_out[3].CLK +clk => data_out[4].CLK +clk => data_out[5].CLK +clk => data_out[6].CLK +reset_n => data_out[0].ACLR +reset_n => data_out[1].ACLR +reset_n => data_out[2].ACLR +reset_n => data_out[3].ACLR +reset_n => data_out[4].ACLR +reset_n => data_out[5].ACLR +reset_n => data_out[6].ACLR +write_n => always0.IN1 +writedata[0] => data_out[0].DATAIN +writedata[1] => data_out[1].DATAIN +writedata[2] => data_out[2].DATAIN +writedata[3] => data_out[3].DATAIN +writedata[4] => data_out[4].DATAIN +writedata[5] => data_out[5].DATAIN +writedata[6] => data_out[6].DATAIN +writedata[7] => ~NO_FANOUT~ +writedata[8] => ~NO_FANOUT~ +writedata[9] => ~NO_FANOUT~ +writedata[10] => ~NO_FANOUT~ +writedata[11] => ~NO_FANOUT~ +writedata[12] => ~NO_FANOUT~ +writedata[13] => ~NO_FANOUT~ +writedata[14] => ~NO_FANOUT~ +writedata[15] => ~NO_FANOUT~ +writedata[16] => ~NO_FANOUT~ +writedata[17] => ~NO_FANOUT~ +writedata[18] => ~NO_FANOUT~ +writedata[19] => ~NO_FANOUT~ +writedata[20] => ~NO_FANOUT~ +writedata[21] => ~NO_FANOUT~ +writedata[22] => ~NO_FANOUT~ +writedata[23] => ~NO_FANOUT~ +writedata[24] => ~NO_FANOUT~ +writedata[25] => ~NO_FANOUT~ +writedata[26] => ~NO_FANOUT~ +writedata[27] => ~NO_FANOUT~ +writedata[28] => ~NO_FANOUT~ +writedata[29] => ~NO_FANOUT~ +writedata[30] => ~NO_FANOUT~ +writedata[31] => ~NO_FANOUT~ +out_port[0] <= data_out[0].DB_MAX_OUTPUT_PORT_TYPE +out_port[1] <= data_out[1].DB_MAX_OUTPUT_PORT_TYPE +out_port[2] <= data_out[2].DB_MAX_OUTPUT_PORT_TYPE +out_port[3] <= data_out[3].DB_MAX_OUTPUT_PORT_TYPE +out_port[4] <= data_out[4].DB_MAX_OUTPUT_PORT_TYPE +out_port[5] <= data_out[5].DB_MAX_OUTPUT_PORT_TYPE +out_port[6] <= data_out[6].DB_MAX_OUTPUT_PORT_TYPE +readdata[0] <= read_mux_out.DB_MAX_OUTPUT_PORT_TYPE +readdata[1] <= read_mux_out.DB_MAX_OUTPUT_PORT_TYPE +readdata[2] <= read_mux_out.DB_MAX_OUTPUT_PORT_TYPE +readdata[3] <= read_mux_out.DB_MAX_OUTPUT_PORT_TYPE +readdata[4] <= read_mux_out.DB_MAX_OUTPUT_PORT_TYPE +readdata[5] <= read_mux_out.DB_MAX_OUTPUT_PORT_TYPE +readdata[6] <= read_mux_out.DB_MAX_OUTPUT_PORT_TYPE +readdata[7] <= +readdata[8] <= +readdata[9] <= +readdata[10] <= +readdata[11] <= +readdata[12] <= +readdata[13] <= +readdata[14] <= +readdata[15] <= +readdata[16] <= +readdata[17] <= +readdata[18] <= +readdata[19] <= +readdata[20] <= +readdata[21] <= +readdata[22] <= +readdata[23] <= +readdata[24] <= +readdata[25] <= +readdata[26] <= +readdata[27] <= +readdata[28] <= +readdata[29] <= +readdata[30] <= +readdata[31] <= + + +|lights|nios_system:NiosII|nios_system_hex0:hex6 +address[0] => Equal0.IN31 +address[1] => Equal0.IN30 +chipselect => always0.IN0 +clk => data_out[0].CLK +clk => data_out[1].CLK +clk => data_out[2].CLK +clk => data_out[3].CLK +clk => data_out[4].CLK +clk => data_out[5].CLK +clk => data_out[6].CLK +reset_n => data_out[0].ACLR +reset_n => data_out[1].ACLR +reset_n => data_out[2].ACLR +reset_n => data_out[3].ACLR +reset_n => data_out[4].ACLR +reset_n => data_out[5].ACLR +reset_n => data_out[6].ACLR +write_n => always0.IN1 +writedata[0] => data_out[0].DATAIN +writedata[1] => data_out[1].DATAIN +writedata[2] => data_out[2].DATAIN +writedata[3] => data_out[3].DATAIN +writedata[4] => data_out[4].DATAIN +writedata[5] => data_out[5].DATAIN +writedata[6] => data_out[6].DATAIN +writedata[7] => ~NO_FANOUT~ +writedata[8] => ~NO_FANOUT~ +writedata[9] => ~NO_FANOUT~ +writedata[10] => ~NO_FANOUT~ +writedata[11] => ~NO_FANOUT~ +writedata[12] => ~NO_FANOUT~ +writedata[13] => ~NO_FANOUT~ +writedata[14] => ~NO_FANOUT~ +writedata[15] => ~NO_FANOUT~ +writedata[16] => ~NO_FANOUT~ +writedata[17] => ~NO_FANOUT~ +writedata[18] => ~NO_FANOUT~ +writedata[19] => ~NO_FANOUT~ +writedata[20] => ~NO_FANOUT~ +writedata[21] => ~NO_FANOUT~ +writedata[22] => ~NO_FANOUT~ +writedata[23] => ~NO_FANOUT~ +writedata[24] => ~NO_FANOUT~ +writedata[25] => ~NO_FANOUT~ +writedata[26] => ~NO_FANOUT~ +writedata[27] => ~NO_FANOUT~ +writedata[28] => ~NO_FANOUT~ +writedata[29] => ~NO_FANOUT~ +writedata[30] => ~NO_FANOUT~ +writedata[31] => ~NO_FANOUT~ +out_port[0] <= data_out[0].DB_MAX_OUTPUT_PORT_TYPE +out_port[1] <= data_out[1].DB_MAX_OUTPUT_PORT_TYPE +out_port[2] <= data_out[2].DB_MAX_OUTPUT_PORT_TYPE +out_port[3] <= data_out[3].DB_MAX_OUTPUT_PORT_TYPE +out_port[4] <= data_out[4].DB_MAX_OUTPUT_PORT_TYPE +out_port[5] <= data_out[5].DB_MAX_OUTPUT_PORT_TYPE +out_port[6] <= data_out[6].DB_MAX_OUTPUT_PORT_TYPE +readdata[0] <= read_mux_out.DB_MAX_OUTPUT_PORT_TYPE +readdata[1] <= read_mux_out.DB_MAX_OUTPUT_PORT_TYPE +readdata[2] <= read_mux_out.DB_MAX_OUTPUT_PORT_TYPE +readdata[3] <= read_mux_out.DB_MAX_OUTPUT_PORT_TYPE +readdata[4] <= read_mux_out.DB_MAX_OUTPUT_PORT_TYPE +readdata[5] <= read_mux_out.DB_MAX_OUTPUT_PORT_TYPE +readdata[6] <= read_mux_out.DB_MAX_OUTPUT_PORT_TYPE +readdata[7] <= +readdata[8] <= +readdata[9] <= +readdata[10] <= +readdata[11] <= +readdata[12] <= +readdata[13] <= +readdata[14] <= +readdata[15] <= +readdata[16] <= +readdata[17] <= +readdata[18] <= +readdata[19] <= +readdata[20] <= +readdata[21] <= +readdata[22] <= +readdata[23] <= +readdata[24] <= +readdata[25] <= +readdata[26] <= +readdata[27] <= +readdata[28] <= +readdata[29] <= +readdata[30] <= +readdata[31] <= + + +|lights|nios_system:NiosII|nios_system_hex0:hex7 +address[0] => Equal0.IN31 +address[1] => Equal0.IN30 +chipselect => always0.IN0 +clk => data_out[0].CLK +clk => data_out[1].CLK +clk => data_out[2].CLK +clk => data_out[3].CLK +clk => data_out[4].CLK +clk => data_out[5].CLK +clk => data_out[6].CLK +reset_n => data_out[0].ACLR +reset_n => data_out[1].ACLR +reset_n => data_out[2].ACLR +reset_n => data_out[3].ACLR +reset_n => data_out[4].ACLR +reset_n => data_out[5].ACLR +reset_n => data_out[6].ACLR +write_n => always0.IN1 +writedata[0] => data_out[0].DATAIN +writedata[1] => data_out[1].DATAIN +writedata[2] => data_out[2].DATAIN +writedata[3] => data_out[3].DATAIN +writedata[4] => data_out[4].DATAIN +writedata[5] => data_out[5].DATAIN +writedata[6] => data_out[6].DATAIN +writedata[7] => ~NO_FANOUT~ +writedata[8] => ~NO_FANOUT~ +writedata[9] => ~NO_FANOUT~ +writedata[10] => ~NO_FANOUT~ +writedata[11] => ~NO_FANOUT~ +writedata[12] => ~NO_FANOUT~ +writedata[13] => ~NO_FANOUT~ +writedata[14] => ~NO_FANOUT~ +writedata[15] => ~NO_FANOUT~ +writedata[16] => ~NO_FANOUT~ +writedata[17] => ~NO_FANOUT~ +writedata[18] => ~NO_FANOUT~ +writedata[19] => ~NO_FANOUT~ +writedata[20] => ~NO_FANOUT~ +writedata[21] => ~NO_FANOUT~ +writedata[22] => ~NO_FANOUT~ +writedata[23] => ~NO_FANOUT~ +writedata[24] => ~NO_FANOUT~ +writedata[25] => ~NO_FANOUT~ +writedata[26] => ~NO_FANOUT~ +writedata[27] => ~NO_FANOUT~ +writedata[28] => ~NO_FANOUT~ +writedata[29] => ~NO_FANOUT~ +writedata[30] => ~NO_FANOUT~ +writedata[31] => ~NO_FANOUT~ +out_port[0] <= data_out[0].DB_MAX_OUTPUT_PORT_TYPE +out_port[1] <= data_out[1].DB_MAX_OUTPUT_PORT_TYPE +out_port[2] <= data_out[2].DB_MAX_OUTPUT_PORT_TYPE +out_port[3] <= data_out[3].DB_MAX_OUTPUT_PORT_TYPE +out_port[4] <= data_out[4].DB_MAX_OUTPUT_PORT_TYPE +out_port[5] <= data_out[5].DB_MAX_OUTPUT_PORT_TYPE +out_port[6] <= data_out[6].DB_MAX_OUTPUT_PORT_TYPE +readdata[0] <= read_mux_out.DB_MAX_OUTPUT_PORT_TYPE +readdata[1] <= read_mux_out.DB_MAX_OUTPUT_PORT_TYPE +readdata[2] <= read_mux_out.DB_MAX_OUTPUT_PORT_TYPE +readdata[3] <= read_mux_out.DB_MAX_OUTPUT_PORT_TYPE +readdata[4] <= read_mux_out.DB_MAX_OUTPUT_PORT_TYPE +readdata[5] <= read_mux_out.DB_MAX_OUTPUT_PORT_TYPE +readdata[6] <= read_mux_out.DB_MAX_OUTPUT_PORT_TYPE +readdata[7] <= +readdata[8] <= +readdata[9] <= +readdata[10] <= +readdata[11] <= +readdata[12] <= +readdata[13] <= +readdata[14] <= +readdata[15] <= +readdata[16] <= +readdata[17] <= +readdata[18] <= +readdata[19] <= +readdata[20] <= +readdata[21] <= +readdata[22] <= +readdata[23] <= +readdata[24] <= +readdata[25] <= +readdata[26] <= +readdata[27] <= +readdata[28] <= +readdata[29] <= +readdata[30] <= +readdata[31] <= + + +|lights|nios_system:NiosII|nios_system_lcd_16207_0:lcd_16207_0 +address[0] => LCD_RW.DATAIN +address[0] => LCD_data[7].OE +address[0] => LCD_data[6].OE +address[0] => LCD_data[5].OE +address[0] => LCD_data[4].OE +address[0] => LCD_data[3].OE +address[0] => LCD_data[2].OE +address[0] => LCD_data[1].OE +address[0] => LCD_data[0].OE +address[1] => LCD_RS.DATAIN +begintransfer => ~NO_FANOUT~ +clk => ~NO_FANOUT~ +read => LCD_E.IN0 +reset_n => ~NO_FANOUT~ +write => LCD_E.IN1 +writedata[0] => LCD_data[0].DATAIN +writedata[1] => LCD_data[1].DATAIN +writedata[2] => LCD_data[2].DATAIN +writedata[3] => LCD_data[3].DATAIN +writedata[4] => LCD_data[4].DATAIN +writedata[5] => LCD_data[5].DATAIN +writedata[6] => LCD_data[6].DATAIN +writedata[7] => LCD_data[7].DATAIN +LCD_E <= LCD_E.DB_MAX_OUTPUT_PORT_TYPE +LCD_RS <= address[1].DB_MAX_OUTPUT_PORT_TYPE +LCD_RW <= address[0].DB_MAX_OUTPUT_PORT_TYPE +LCD_data[0] <> LCD_data[0] +LCD_data[1] <> LCD_data[1] +LCD_data[2] <> LCD_data[2] +LCD_data[3] <> LCD_data[3] +LCD_data[4] <> LCD_data[4] +LCD_data[5] <> LCD_data[5] +LCD_data[6] <> LCD_data[6] +LCD_data[7] <> LCD_data[7] +readdata[0] <= readdata[0].DB_MAX_OUTPUT_PORT_TYPE +readdata[1] <= readdata[1].DB_MAX_OUTPUT_PORT_TYPE +readdata[2] <= readdata[2].DB_MAX_OUTPUT_PORT_TYPE +readdata[3] <= readdata[3].DB_MAX_OUTPUT_PORT_TYPE +readdata[4] <= readdata[4].DB_MAX_OUTPUT_PORT_TYPE +readdata[5] <= readdata[5].DB_MAX_OUTPUT_PORT_TYPE +readdata[6] <= readdata[6].DB_MAX_OUTPUT_PORT_TYPE +readdata[7] <= readdata[7].DB_MAX_OUTPUT_PORT_TYPE + + +|lights|nios_system:NiosII|nios_system_lcd_on:lcd_on +address[0] => Equal0.IN31 +address[1] => Equal0.IN30 +chipselect => always0.IN0 +clk => data_out.CLK +reset_n => data_out.ACLR +write_n => always0.IN1 +writedata[0] => data_out.DATAIN +writedata[1] => ~NO_FANOUT~ +writedata[2] => ~NO_FANOUT~ +writedata[3] => ~NO_FANOUT~ +writedata[4] => ~NO_FANOUT~ +writedata[5] => ~NO_FANOUT~ +writedata[6] => ~NO_FANOUT~ +writedata[7] => ~NO_FANOUT~ +writedata[8] => ~NO_FANOUT~ +writedata[9] => ~NO_FANOUT~ +writedata[10] => ~NO_FANOUT~ +writedata[11] => ~NO_FANOUT~ +writedata[12] => ~NO_FANOUT~ +writedata[13] => ~NO_FANOUT~ +writedata[14] => ~NO_FANOUT~ +writedata[15] => ~NO_FANOUT~ +writedata[16] => ~NO_FANOUT~ +writedata[17] => ~NO_FANOUT~ +writedata[18] => ~NO_FANOUT~ +writedata[19] => ~NO_FANOUT~ +writedata[20] => ~NO_FANOUT~ +writedata[21] => ~NO_FANOUT~ +writedata[22] => ~NO_FANOUT~ +writedata[23] => ~NO_FANOUT~ +writedata[24] => ~NO_FANOUT~ +writedata[25] => ~NO_FANOUT~ +writedata[26] => ~NO_FANOUT~ +writedata[27] => ~NO_FANOUT~ +writedata[28] => ~NO_FANOUT~ +writedata[29] => ~NO_FANOUT~ +writedata[30] => ~NO_FANOUT~ +writedata[31] => ~NO_FANOUT~ +out_port <= data_out.DB_MAX_OUTPUT_PORT_TYPE +readdata[0] <= read_mux_out.DB_MAX_OUTPUT_PORT_TYPE +readdata[1] <= +readdata[2] <= +readdata[3] <= +readdata[4] <= +readdata[5] <= +readdata[6] <= +readdata[7] <= +readdata[8] <= +readdata[9] <= +readdata[10] <= +readdata[11] <= +readdata[12] <= +readdata[13] <= +readdata[14] <= +readdata[15] <= +readdata[16] <= +readdata[17] <= +readdata[18] <= +readdata[19] <= +readdata[20] <= +readdata[21] <= +readdata[22] <= +readdata[23] <= +readdata[24] <= +readdata[25] <= +readdata[26] <= +readdata[27] <= +readdata[28] <= +readdata[29] <= +readdata[30] <= +readdata[31] <= + + +|lights|nios_system:NiosII|nios_system_lcd_on:lcd_blon +address[0] => Equal0.IN31 +address[1] => Equal0.IN30 +chipselect => always0.IN0 +clk => data_out.CLK +reset_n => data_out.ACLR +write_n => always0.IN1 +writedata[0] => data_out.DATAIN +writedata[1] => ~NO_FANOUT~ +writedata[2] => ~NO_FANOUT~ +writedata[3] => ~NO_FANOUT~ +writedata[4] => ~NO_FANOUT~ +writedata[5] => ~NO_FANOUT~ +writedata[6] => ~NO_FANOUT~ +writedata[7] => ~NO_FANOUT~ +writedata[8] => ~NO_FANOUT~ +writedata[9] => ~NO_FANOUT~ +writedata[10] => ~NO_FANOUT~ +writedata[11] => ~NO_FANOUT~ +writedata[12] => ~NO_FANOUT~ +writedata[13] => ~NO_FANOUT~ +writedata[14] => ~NO_FANOUT~ +writedata[15] => ~NO_FANOUT~ +writedata[16] => ~NO_FANOUT~ +writedata[17] => ~NO_FANOUT~ +writedata[18] => ~NO_FANOUT~ +writedata[19] => ~NO_FANOUT~ +writedata[20] => ~NO_FANOUT~ +writedata[21] => ~NO_FANOUT~ +writedata[22] => ~NO_FANOUT~ +writedata[23] => ~NO_FANOUT~ +writedata[24] => ~NO_FANOUT~ +writedata[25] => ~NO_FANOUT~ +writedata[26] => ~NO_FANOUT~ +writedata[27] => ~NO_FANOUT~ +writedata[28] => ~NO_FANOUT~ +writedata[29] => ~NO_FANOUT~ +writedata[30] => ~NO_FANOUT~ +writedata[31] => ~NO_FANOUT~ +out_port <= data_out.DB_MAX_OUTPUT_PORT_TYPE +readdata[0] <= read_mux_out.DB_MAX_OUTPUT_PORT_TYPE +readdata[1] <= +readdata[2] <= +readdata[3] <= +readdata[4] <= +readdata[5] <= +readdata[6] <= +readdata[7] <= +readdata[8] <= +readdata[9] <= +readdata[10] <= +readdata[11] <= +readdata[12] <= +readdata[13] <= +readdata[14] <= +readdata[15] <= +readdata[16] <= +readdata[17] <= +readdata[18] <= +readdata[19] <= +readdata[20] <= +readdata[21] <= +readdata[22] <= +readdata[23] <= +readdata[24] <= +readdata[25] <= +readdata[26] <= +readdata[27] <= +readdata[28] <= +readdata[29] <= +readdata[30] <= +readdata[31] <= + + +|lights|nios_system:NiosII|altera_merlin_master_translator:nios2_processor_instruction_master_translator +clk => read_accepted.CLK +reset => read_accepted.ACLR +uav_write <= +uav_read <= uav_read.DB_MAX_OUTPUT_PORT_TYPE +uav_address[0] <= av_address[0].DB_MAX_OUTPUT_PORT_TYPE +uav_address[1] <= av_address[1].DB_MAX_OUTPUT_PORT_TYPE +uav_address[2] <= av_address[2].DB_MAX_OUTPUT_PORT_TYPE +uav_address[3] <= av_address[3].DB_MAX_OUTPUT_PORT_TYPE +uav_address[4] <= av_address[4].DB_MAX_OUTPUT_PORT_TYPE +uav_address[5] <= av_address[5].DB_MAX_OUTPUT_PORT_TYPE +uav_address[6] <= av_address[6].DB_MAX_OUTPUT_PORT_TYPE +uav_address[7] <= av_address[7].DB_MAX_OUTPUT_PORT_TYPE +uav_address[8] <= av_address[8].DB_MAX_OUTPUT_PORT_TYPE +uav_address[9] <= av_address[9].DB_MAX_OUTPUT_PORT_TYPE +uav_address[10] <= av_address[10].DB_MAX_OUTPUT_PORT_TYPE +uav_address[11] <= av_address[11].DB_MAX_OUTPUT_PORT_TYPE +uav_address[12] <= av_address[12].DB_MAX_OUTPUT_PORT_TYPE +uav_address[13] <= av_address[13].DB_MAX_OUTPUT_PORT_TYPE +uav_address[14] <= av_address[14].DB_MAX_OUTPUT_PORT_TYPE +uav_address[15] <= av_address[15].DB_MAX_OUTPUT_PORT_TYPE +uav_address[16] <= av_address[16].DB_MAX_OUTPUT_PORT_TYPE +uav_address[17] <= av_address[17].DB_MAX_OUTPUT_PORT_TYPE +uav_address[18] <= av_address[18].DB_MAX_OUTPUT_PORT_TYPE +uav_burstcount[0] <= +uav_burstcount[1] <= +uav_burstcount[2] <= +uav_byteenable[0] <= av_byteenable[0].DB_MAX_OUTPUT_PORT_TYPE +uav_byteenable[1] <= av_byteenable[1].DB_MAX_OUTPUT_PORT_TYPE +uav_byteenable[2] <= av_byteenable[2].DB_MAX_OUTPUT_PORT_TYPE +uav_byteenable[3] <= av_byteenable[3].DB_MAX_OUTPUT_PORT_TYPE +uav_writedata[0] <= av_writedata[0].DB_MAX_OUTPUT_PORT_TYPE +uav_writedata[1] <= av_writedata[1].DB_MAX_OUTPUT_PORT_TYPE +uav_writedata[2] <= av_writedata[2].DB_MAX_OUTPUT_PORT_TYPE +uav_writedata[3] <= av_writedata[3].DB_MAX_OUTPUT_PORT_TYPE +uav_writedata[4] <= av_writedata[4].DB_MAX_OUTPUT_PORT_TYPE +uav_writedata[5] <= av_writedata[5].DB_MAX_OUTPUT_PORT_TYPE +uav_writedata[6] <= av_writedata[6].DB_MAX_OUTPUT_PORT_TYPE +uav_writedata[7] <= av_writedata[7].DB_MAX_OUTPUT_PORT_TYPE +uav_writedata[8] <= av_writedata[8].DB_MAX_OUTPUT_PORT_TYPE +uav_writedata[9] <= av_writedata[9].DB_MAX_OUTPUT_PORT_TYPE +uav_writedata[10] <= av_writedata[10].DB_MAX_OUTPUT_PORT_TYPE +uav_writedata[11] <= av_writedata[11].DB_MAX_OUTPUT_PORT_TYPE +uav_writedata[12] <= av_writedata[12].DB_MAX_OUTPUT_PORT_TYPE +uav_writedata[13] <= av_writedata[13].DB_MAX_OUTPUT_PORT_TYPE +uav_writedata[14] <= av_writedata[14].DB_MAX_OUTPUT_PORT_TYPE +uav_writedata[15] <= av_writedata[15].DB_MAX_OUTPUT_PORT_TYPE +uav_writedata[16] <= av_writedata[16].DB_MAX_OUTPUT_PORT_TYPE +uav_writedata[17] <= av_writedata[17].DB_MAX_OUTPUT_PORT_TYPE +uav_writedata[18] <= av_writedata[18].DB_MAX_OUTPUT_PORT_TYPE +uav_writedata[19] <= av_writedata[19].DB_MAX_OUTPUT_PORT_TYPE +uav_writedata[20] <= av_writedata[20].DB_MAX_OUTPUT_PORT_TYPE +uav_writedata[21] <= av_writedata[21].DB_MAX_OUTPUT_PORT_TYPE +uav_writedata[22] <= av_writedata[22].DB_MAX_OUTPUT_PORT_TYPE +uav_writedata[23] <= av_writedata[23].DB_MAX_OUTPUT_PORT_TYPE +uav_writedata[24] <= av_writedata[24].DB_MAX_OUTPUT_PORT_TYPE +uav_writedata[25] <= av_writedata[25].DB_MAX_OUTPUT_PORT_TYPE +uav_writedata[26] <= av_writedata[26].DB_MAX_OUTPUT_PORT_TYPE +uav_writedata[27] <= av_writedata[27].DB_MAX_OUTPUT_PORT_TYPE +uav_writedata[28] <= av_writedata[28].DB_MAX_OUTPUT_PORT_TYPE +uav_writedata[29] <= av_writedata[29].DB_MAX_OUTPUT_PORT_TYPE +uav_writedata[30] <= av_writedata[30].DB_MAX_OUTPUT_PORT_TYPE +uav_writedata[31] <= av_writedata[31].DB_MAX_OUTPUT_PORT_TYPE +uav_lock <= av_lock.DB_MAX_OUTPUT_PORT_TYPE +uav_debugaccess <= av_debugaccess.DB_MAX_OUTPUT_PORT_TYPE +uav_clken <= av_clken.DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[0] => av_readdata[0].DATAIN +uav_readdata[1] => av_readdata[1].DATAIN +uav_readdata[2] => av_readdata[2].DATAIN +uav_readdata[3] => av_readdata[3].DATAIN +uav_readdata[4] => av_readdata[4].DATAIN +uav_readdata[5] => av_readdata[5].DATAIN +uav_readdata[6] => av_readdata[6].DATAIN +uav_readdata[7] => av_readdata[7].DATAIN +uav_readdata[8] => av_readdata[8].DATAIN +uav_readdata[9] => av_readdata[9].DATAIN +uav_readdata[10] => av_readdata[10].DATAIN +uav_readdata[11] => av_readdata[11].DATAIN +uav_readdata[12] => av_readdata[12].DATAIN +uav_readdata[13] => av_readdata[13].DATAIN +uav_readdata[14] => av_readdata[14].DATAIN +uav_readdata[15] => av_readdata[15].DATAIN +uav_readdata[16] => av_readdata[16].DATAIN +uav_readdata[17] => av_readdata[17].DATAIN +uav_readdata[18] => av_readdata[18].DATAIN +uav_readdata[19] => av_readdata[19].DATAIN +uav_readdata[20] => av_readdata[20].DATAIN +uav_readdata[21] => av_readdata[21].DATAIN +uav_readdata[22] => av_readdata[22].DATAIN +uav_readdata[23] => av_readdata[23].DATAIN +uav_readdata[24] => av_readdata[24].DATAIN +uav_readdata[25] => av_readdata[25].DATAIN +uav_readdata[26] => av_readdata[26].DATAIN +uav_readdata[27] => av_readdata[27].DATAIN +uav_readdata[28] => av_readdata[28].DATAIN +uav_readdata[29] => av_readdata[29].DATAIN +uav_readdata[30] => av_readdata[30].DATAIN +uav_readdata[31] => av_readdata[31].DATAIN +uav_readdatavalid => always5.IN1 +uav_readdatavalid => av_readdatavalid.DATAIN +uav_readdatavalid => av_waitrequest.DATAB +uav_waitrequest => av_waitrequest.DATAA +uav_waitrequest => read_accepted.IN0 +uav_response[0] => ~NO_FANOUT~ +uav_response[1] => ~NO_FANOUT~ +uav_writeresponserequest <= +uav_writeresponsevalid => ~NO_FANOUT~ +av_write => ~NO_FANOUT~ +av_read => read_accepted.IN1 +av_read => av_waitrequest.OUTPUTSELECT +av_read => uav_read.IN1 +av_address[0] => uav_address[0].DATAIN +av_address[1] => uav_address[1].DATAIN +av_address[2] => uav_address[2].DATAIN +av_address[3] => uav_address[3].DATAIN +av_address[4] => uav_address[4].DATAIN +av_address[5] => uav_address[5].DATAIN +av_address[6] => uav_address[6].DATAIN +av_address[7] => uav_address[7].DATAIN +av_address[8] => uav_address[8].DATAIN +av_address[9] => uav_address[9].DATAIN +av_address[10] => uav_address[10].DATAIN +av_address[11] => uav_address[11].DATAIN +av_address[12] => uav_address[12].DATAIN +av_address[13] => uav_address[13].DATAIN +av_address[14] => uav_address[14].DATAIN +av_address[15] => uav_address[15].DATAIN +av_address[16] => uav_address[16].DATAIN +av_address[17] => uav_address[17].DATAIN +av_address[18] => uav_address[18].DATAIN +av_byteenable[0] => uav_byteenable[0].DATAIN +av_byteenable[1] => uav_byteenable[1].DATAIN +av_byteenable[2] => uav_byteenable[2].DATAIN +av_byteenable[3] => uav_byteenable[3].DATAIN +av_burstcount[0] => ~NO_FANOUT~ +av_writedata[0] => uav_writedata[0].DATAIN +av_writedata[1] => uav_writedata[1].DATAIN +av_writedata[2] => uav_writedata[2].DATAIN +av_writedata[3] => uav_writedata[3].DATAIN +av_writedata[4] => uav_writedata[4].DATAIN +av_writedata[5] => uav_writedata[5].DATAIN +av_writedata[6] => uav_writedata[6].DATAIN +av_writedata[7] => uav_writedata[7].DATAIN +av_writedata[8] => uav_writedata[8].DATAIN +av_writedata[9] => uav_writedata[9].DATAIN +av_writedata[10] => uav_writedata[10].DATAIN +av_writedata[11] => uav_writedata[11].DATAIN +av_writedata[12] => uav_writedata[12].DATAIN +av_writedata[13] => uav_writedata[13].DATAIN +av_writedata[14] => uav_writedata[14].DATAIN +av_writedata[15] => uav_writedata[15].DATAIN +av_writedata[16] => uav_writedata[16].DATAIN +av_writedata[17] => uav_writedata[17].DATAIN +av_writedata[18] => uav_writedata[18].DATAIN +av_writedata[19] => uav_writedata[19].DATAIN +av_writedata[20] => uav_writedata[20].DATAIN +av_writedata[21] => uav_writedata[21].DATAIN +av_writedata[22] => uav_writedata[22].DATAIN +av_writedata[23] => uav_writedata[23].DATAIN +av_writedata[24] => uav_writedata[24].DATAIN +av_writedata[25] => uav_writedata[25].DATAIN +av_writedata[26] => uav_writedata[26].DATAIN +av_writedata[27] => uav_writedata[27].DATAIN +av_writedata[28] => uav_writedata[28].DATAIN +av_writedata[29] => uav_writedata[29].DATAIN +av_writedata[30] => uav_writedata[30].DATAIN +av_writedata[31] => uav_writedata[31].DATAIN +av_begintransfer => ~NO_FANOUT~ +av_beginbursttransfer => ~NO_FANOUT~ +av_lock => uav_lock.DATAIN +av_chipselect => ~NO_FANOUT~ +av_debugaccess => uav_debugaccess.DATAIN +av_clken => uav_clken.DATAIN +av_readdata[0] <= uav_readdata[0].DB_MAX_OUTPUT_PORT_TYPE +av_readdata[1] <= uav_readdata[1].DB_MAX_OUTPUT_PORT_TYPE +av_readdata[2] <= uav_readdata[2].DB_MAX_OUTPUT_PORT_TYPE +av_readdata[3] <= uav_readdata[3].DB_MAX_OUTPUT_PORT_TYPE +av_readdata[4] <= uav_readdata[4].DB_MAX_OUTPUT_PORT_TYPE +av_readdata[5] <= uav_readdata[5].DB_MAX_OUTPUT_PORT_TYPE +av_readdata[6] <= uav_readdata[6].DB_MAX_OUTPUT_PORT_TYPE +av_readdata[7] <= uav_readdata[7].DB_MAX_OUTPUT_PORT_TYPE +av_readdata[8] <= uav_readdata[8].DB_MAX_OUTPUT_PORT_TYPE +av_readdata[9] <= uav_readdata[9].DB_MAX_OUTPUT_PORT_TYPE +av_readdata[10] <= uav_readdata[10].DB_MAX_OUTPUT_PORT_TYPE +av_readdata[11] <= uav_readdata[11].DB_MAX_OUTPUT_PORT_TYPE +av_readdata[12] <= uav_readdata[12].DB_MAX_OUTPUT_PORT_TYPE +av_readdata[13] <= uav_readdata[13].DB_MAX_OUTPUT_PORT_TYPE +av_readdata[14] <= uav_readdata[14].DB_MAX_OUTPUT_PORT_TYPE +av_readdata[15] <= uav_readdata[15].DB_MAX_OUTPUT_PORT_TYPE +av_readdata[16] <= uav_readdata[16].DB_MAX_OUTPUT_PORT_TYPE +av_readdata[17] <= uav_readdata[17].DB_MAX_OUTPUT_PORT_TYPE +av_readdata[18] <= uav_readdata[18].DB_MAX_OUTPUT_PORT_TYPE +av_readdata[19] <= uav_readdata[19].DB_MAX_OUTPUT_PORT_TYPE +av_readdata[20] <= uav_readdata[20].DB_MAX_OUTPUT_PORT_TYPE +av_readdata[21] <= uav_readdata[21].DB_MAX_OUTPUT_PORT_TYPE +av_readdata[22] <= uav_readdata[22].DB_MAX_OUTPUT_PORT_TYPE +av_readdata[23] <= uav_readdata[23].DB_MAX_OUTPUT_PORT_TYPE +av_readdata[24] <= uav_readdata[24].DB_MAX_OUTPUT_PORT_TYPE +av_readdata[25] <= uav_readdata[25].DB_MAX_OUTPUT_PORT_TYPE +av_readdata[26] <= uav_readdata[26].DB_MAX_OUTPUT_PORT_TYPE +av_readdata[27] <= uav_readdata[27].DB_MAX_OUTPUT_PORT_TYPE +av_readdata[28] <= uav_readdata[28].DB_MAX_OUTPUT_PORT_TYPE +av_readdata[29] <= uav_readdata[29].DB_MAX_OUTPUT_PORT_TYPE +av_readdata[30] <= uav_readdata[30].DB_MAX_OUTPUT_PORT_TYPE +av_readdata[31] <= uav_readdata[31].DB_MAX_OUTPUT_PORT_TYPE +av_readdatavalid <= uav_readdatavalid.DB_MAX_OUTPUT_PORT_TYPE +av_waitrequest <= av_waitrequest.DB_MAX_OUTPUT_PORT_TYPE +av_response[0] <= +av_response[1] <= +av_writeresponserequest => ~NO_FANOUT~ +av_writeresponsevalid <= + + +|lights|nios_system:NiosII|altera_merlin_master_translator:nios2_processor_data_master_translator +clk => end_begintransfer.CLK +clk => write_accepted.CLK +clk => read_accepted.CLK +reset => end_begintransfer.ACLR +reset => write_accepted.ACLR +reset => read_accepted.ACLR +uav_write <= uav_write.DB_MAX_OUTPUT_PORT_TYPE +uav_read <= uav_read.DB_MAX_OUTPUT_PORT_TYPE +uav_address[0] <= av_address[0].DB_MAX_OUTPUT_PORT_TYPE +uav_address[1] <= av_address[1].DB_MAX_OUTPUT_PORT_TYPE +uav_address[2] <= av_address[2].DB_MAX_OUTPUT_PORT_TYPE +uav_address[3] <= av_address[3].DB_MAX_OUTPUT_PORT_TYPE +uav_address[4] <= av_address[4].DB_MAX_OUTPUT_PORT_TYPE +uav_address[5] <= av_address[5].DB_MAX_OUTPUT_PORT_TYPE +uav_address[6] <= av_address[6].DB_MAX_OUTPUT_PORT_TYPE +uav_address[7] <= av_address[7].DB_MAX_OUTPUT_PORT_TYPE +uav_address[8] <= av_address[8].DB_MAX_OUTPUT_PORT_TYPE +uav_address[9] <= av_address[9].DB_MAX_OUTPUT_PORT_TYPE +uav_address[10] <= av_address[10].DB_MAX_OUTPUT_PORT_TYPE +uav_address[11] <= av_address[11].DB_MAX_OUTPUT_PORT_TYPE +uav_address[12] <= av_address[12].DB_MAX_OUTPUT_PORT_TYPE +uav_address[13] <= av_address[13].DB_MAX_OUTPUT_PORT_TYPE +uav_address[14] <= av_address[14].DB_MAX_OUTPUT_PORT_TYPE +uav_address[15] <= av_address[15].DB_MAX_OUTPUT_PORT_TYPE +uav_address[16] <= av_address[16].DB_MAX_OUTPUT_PORT_TYPE +uav_address[17] <= av_address[17].DB_MAX_OUTPUT_PORT_TYPE +uav_address[18] <= av_address[18].DB_MAX_OUTPUT_PORT_TYPE +uav_burstcount[0] <= +uav_burstcount[1] <= +uav_burstcount[2] <= +uav_byteenable[0] <= av_byteenable[0].DB_MAX_OUTPUT_PORT_TYPE +uav_byteenable[1] <= av_byteenable[1].DB_MAX_OUTPUT_PORT_TYPE +uav_byteenable[2] <= av_byteenable[2].DB_MAX_OUTPUT_PORT_TYPE +uav_byteenable[3] <= av_byteenable[3].DB_MAX_OUTPUT_PORT_TYPE +uav_writedata[0] <= av_writedata[0].DB_MAX_OUTPUT_PORT_TYPE +uav_writedata[1] <= av_writedata[1].DB_MAX_OUTPUT_PORT_TYPE +uav_writedata[2] <= av_writedata[2].DB_MAX_OUTPUT_PORT_TYPE +uav_writedata[3] <= av_writedata[3].DB_MAX_OUTPUT_PORT_TYPE +uav_writedata[4] <= av_writedata[4].DB_MAX_OUTPUT_PORT_TYPE +uav_writedata[5] <= av_writedata[5].DB_MAX_OUTPUT_PORT_TYPE +uav_writedata[6] <= av_writedata[6].DB_MAX_OUTPUT_PORT_TYPE +uav_writedata[7] <= av_writedata[7].DB_MAX_OUTPUT_PORT_TYPE +uav_writedata[8] <= av_writedata[8].DB_MAX_OUTPUT_PORT_TYPE +uav_writedata[9] <= av_writedata[9].DB_MAX_OUTPUT_PORT_TYPE +uav_writedata[10] <= av_writedata[10].DB_MAX_OUTPUT_PORT_TYPE +uav_writedata[11] <= av_writedata[11].DB_MAX_OUTPUT_PORT_TYPE +uav_writedata[12] <= av_writedata[12].DB_MAX_OUTPUT_PORT_TYPE +uav_writedata[13] <= av_writedata[13].DB_MAX_OUTPUT_PORT_TYPE +uav_writedata[14] <= av_writedata[14].DB_MAX_OUTPUT_PORT_TYPE +uav_writedata[15] <= av_writedata[15].DB_MAX_OUTPUT_PORT_TYPE +uav_writedata[16] <= av_writedata[16].DB_MAX_OUTPUT_PORT_TYPE +uav_writedata[17] <= av_writedata[17].DB_MAX_OUTPUT_PORT_TYPE +uav_writedata[18] <= av_writedata[18].DB_MAX_OUTPUT_PORT_TYPE +uav_writedata[19] <= av_writedata[19].DB_MAX_OUTPUT_PORT_TYPE +uav_writedata[20] <= av_writedata[20].DB_MAX_OUTPUT_PORT_TYPE +uav_writedata[21] <= av_writedata[21].DB_MAX_OUTPUT_PORT_TYPE +uav_writedata[22] <= av_writedata[22].DB_MAX_OUTPUT_PORT_TYPE +uav_writedata[23] <= av_writedata[23].DB_MAX_OUTPUT_PORT_TYPE +uav_writedata[24] <= av_writedata[24].DB_MAX_OUTPUT_PORT_TYPE +uav_writedata[25] <= av_writedata[25].DB_MAX_OUTPUT_PORT_TYPE +uav_writedata[26] <= av_writedata[26].DB_MAX_OUTPUT_PORT_TYPE +uav_writedata[27] <= av_writedata[27].DB_MAX_OUTPUT_PORT_TYPE +uav_writedata[28] <= av_writedata[28].DB_MAX_OUTPUT_PORT_TYPE +uav_writedata[29] <= av_writedata[29].DB_MAX_OUTPUT_PORT_TYPE +uav_writedata[30] <= av_writedata[30].DB_MAX_OUTPUT_PORT_TYPE +uav_writedata[31] <= av_writedata[31].DB_MAX_OUTPUT_PORT_TYPE +uav_lock <= av_lock.DB_MAX_OUTPUT_PORT_TYPE +uav_debugaccess <= av_debugaccess.DB_MAX_OUTPUT_PORT_TYPE +uav_clken <= av_clken.DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[0] => av_readdata[0].DATAIN +uav_readdata[1] => av_readdata[1].DATAIN +uav_readdata[2] => av_readdata[2].DATAIN +uav_readdata[3] => av_readdata[3].DATAIN +uav_readdata[4] => av_readdata[4].DATAIN +uav_readdata[5] => av_readdata[5].DATAIN +uav_readdata[6] => av_readdata[6].DATAIN +uav_readdata[7] => av_readdata[7].DATAIN +uav_readdata[8] => av_readdata[8].DATAIN +uav_readdata[9] => av_readdata[9].DATAIN +uav_readdata[10] => av_readdata[10].DATAIN +uav_readdata[11] => av_readdata[11].DATAIN +uav_readdata[12] => av_readdata[12].DATAIN +uav_readdata[13] => av_readdata[13].DATAIN +uav_readdata[14] => av_readdata[14].DATAIN +uav_readdata[15] => av_readdata[15].DATAIN +uav_readdata[16] => av_readdata[16].DATAIN +uav_readdata[17] => av_readdata[17].DATAIN +uav_readdata[18] => av_readdata[18].DATAIN +uav_readdata[19] => av_readdata[19].DATAIN +uav_readdata[20] => av_readdata[20].DATAIN +uav_readdata[21] => av_readdata[21].DATAIN +uav_readdata[22] => av_readdata[22].DATAIN +uav_readdata[23] => av_readdata[23].DATAIN +uav_readdata[24] => av_readdata[24].DATAIN +uav_readdata[25] => av_readdata[25].DATAIN +uav_readdata[26] => av_readdata[26].DATAIN +uav_readdata[27] => av_readdata[27].DATAIN +uav_readdata[28] => av_readdata[28].DATAIN +uav_readdata[29] => av_readdata[29].DATAIN +uav_readdata[30] => av_readdata[30].DATAIN +uav_readdata[31] => av_readdata[31].DATAIN +uav_readdatavalid => always5.IN1 +uav_readdatavalid => av_readdatavalid.DATAIN +uav_readdatavalid => av_waitrequest.DATAB +uav_waitrequest => av_waitrequest.IN1 +uav_waitrequest => always10.IN1 +uav_waitrequest => end_begintransfer.OUTPUTSELECT +uav_waitrequest => read_accepted.IN0 +uav_waitrequest => write_accepted.IN1 +uav_response[0] => ~NO_FANOUT~ +uav_response[1] => ~NO_FANOUT~ +uav_writeresponserequest <= +uav_writeresponsevalid => ~NO_FANOUT~ +av_write => av_waitrequest.OUTPUTSELECT +av_write => uav_write.IN1 +av_read => read_accepted.IN1 +av_read => av_waitrequest.OUTPUTSELECT +av_read => uav_read.IN1 +av_address[0] => uav_address[0].DATAIN +av_address[1] => uav_address[1].DATAIN +av_address[2] => uav_address[2].DATAIN +av_address[3] => uav_address[3].DATAIN +av_address[4] => uav_address[4].DATAIN +av_address[5] => uav_address[5].DATAIN +av_address[6] => uav_address[6].DATAIN +av_address[7] => uav_address[7].DATAIN +av_address[8] => uav_address[8].DATAIN +av_address[9] => uav_address[9].DATAIN +av_address[10] => uav_address[10].DATAIN +av_address[11] => uav_address[11].DATAIN +av_address[12] => uav_address[12].DATAIN +av_address[13] => uav_address[13].DATAIN +av_address[14] => uav_address[14].DATAIN +av_address[15] => uav_address[15].DATAIN +av_address[16] => uav_address[16].DATAIN +av_address[17] => uav_address[17].DATAIN +av_address[18] => uav_address[18].DATAIN +av_byteenable[0] => uav_byteenable[0].DATAIN +av_byteenable[1] => uav_byteenable[1].DATAIN +av_byteenable[2] => uav_byteenable[2].DATAIN +av_byteenable[3] => uav_byteenable[3].DATAIN +av_burstcount[0] => ~NO_FANOUT~ +av_writedata[0] => uav_writedata[0].DATAIN +av_writedata[1] => uav_writedata[1].DATAIN +av_writedata[2] => uav_writedata[2].DATAIN +av_writedata[3] => uav_writedata[3].DATAIN +av_writedata[4] => uav_writedata[4].DATAIN +av_writedata[5] => uav_writedata[5].DATAIN +av_writedata[6] => uav_writedata[6].DATAIN +av_writedata[7] => uav_writedata[7].DATAIN +av_writedata[8] => uav_writedata[8].DATAIN +av_writedata[9] => uav_writedata[9].DATAIN +av_writedata[10] => uav_writedata[10].DATAIN +av_writedata[11] => uav_writedata[11].DATAIN +av_writedata[12] => uav_writedata[12].DATAIN +av_writedata[13] => uav_writedata[13].DATAIN +av_writedata[14] => uav_writedata[14].DATAIN +av_writedata[15] => uav_writedata[15].DATAIN +av_writedata[16] => uav_writedata[16].DATAIN +av_writedata[17] => uav_writedata[17].DATAIN +av_writedata[18] => uav_writedata[18].DATAIN +av_writedata[19] => uav_writedata[19].DATAIN +av_writedata[20] => uav_writedata[20].DATAIN +av_writedata[21] => uav_writedata[21].DATAIN +av_writedata[22] => uav_writedata[22].DATAIN +av_writedata[23] => uav_writedata[23].DATAIN +av_writedata[24] => uav_writedata[24].DATAIN +av_writedata[25] => uav_writedata[25].DATAIN +av_writedata[26] => uav_writedata[26].DATAIN +av_writedata[27] => uav_writedata[27].DATAIN +av_writedata[28] => uav_writedata[28].DATAIN +av_writedata[29] => uav_writedata[29].DATAIN +av_writedata[30] => uav_writedata[30].DATAIN +av_writedata[31] => uav_writedata[31].DATAIN +av_begintransfer => ~NO_FANOUT~ +av_beginbursttransfer => ~NO_FANOUT~ +av_lock => uav_lock.DATAIN +av_chipselect => ~NO_FANOUT~ +av_debugaccess => uav_debugaccess.DATAIN +av_clken => uav_clken.DATAIN +av_readdata[0] <= uav_readdata[0].DB_MAX_OUTPUT_PORT_TYPE +av_readdata[1] <= uav_readdata[1].DB_MAX_OUTPUT_PORT_TYPE +av_readdata[2] <= uav_readdata[2].DB_MAX_OUTPUT_PORT_TYPE +av_readdata[3] <= uav_readdata[3].DB_MAX_OUTPUT_PORT_TYPE +av_readdata[4] <= uav_readdata[4].DB_MAX_OUTPUT_PORT_TYPE +av_readdata[5] <= uav_readdata[5].DB_MAX_OUTPUT_PORT_TYPE +av_readdata[6] <= uav_readdata[6].DB_MAX_OUTPUT_PORT_TYPE +av_readdata[7] <= uav_readdata[7].DB_MAX_OUTPUT_PORT_TYPE +av_readdata[8] <= uav_readdata[8].DB_MAX_OUTPUT_PORT_TYPE +av_readdata[9] <= uav_readdata[9].DB_MAX_OUTPUT_PORT_TYPE +av_readdata[10] <= uav_readdata[10].DB_MAX_OUTPUT_PORT_TYPE +av_readdata[11] <= uav_readdata[11].DB_MAX_OUTPUT_PORT_TYPE +av_readdata[12] <= uav_readdata[12].DB_MAX_OUTPUT_PORT_TYPE +av_readdata[13] <= uav_readdata[13].DB_MAX_OUTPUT_PORT_TYPE +av_readdata[14] <= uav_readdata[14].DB_MAX_OUTPUT_PORT_TYPE +av_readdata[15] <= uav_readdata[15].DB_MAX_OUTPUT_PORT_TYPE +av_readdata[16] <= uav_readdata[16].DB_MAX_OUTPUT_PORT_TYPE +av_readdata[17] <= uav_readdata[17].DB_MAX_OUTPUT_PORT_TYPE +av_readdata[18] <= uav_readdata[18].DB_MAX_OUTPUT_PORT_TYPE +av_readdata[19] <= uav_readdata[19].DB_MAX_OUTPUT_PORT_TYPE +av_readdata[20] <= uav_readdata[20].DB_MAX_OUTPUT_PORT_TYPE +av_readdata[21] <= uav_readdata[21].DB_MAX_OUTPUT_PORT_TYPE +av_readdata[22] <= uav_readdata[22].DB_MAX_OUTPUT_PORT_TYPE +av_readdata[23] <= uav_readdata[23].DB_MAX_OUTPUT_PORT_TYPE +av_readdata[24] <= uav_readdata[24].DB_MAX_OUTPUT_PORT_TYPE +av_readdata[25] <= uav_readdata[25].DB_MAX_OUTPUT_PORT_TYPE +av_readdata[26] <= uav_readdata[26].DB_MAX_OUTPUT_PORT_TYPE +av_readdata[27] <= uav_readdata[27].DB_MAX_OUTPUT_PORT_TYPE +av_readdata[28] <= uav_readdata[28].DB_MAX_OUTPUT_PORT_TYPE +av_readdata[29] <= uav_readdata[29].DB_MAX_OUTPUT_PORT_TYPE +av_readdata[30] <= uav_readdata[30].DB_MAX_OUTPUT_PORT_TYPE +av_readdata[31] <= uav_readdata[31].DB_MAX_OUTPUT_PORT_TYPE +av_readdatavalid <= uav_readdatavalid.DB_MAX_OUTPUT_PORT_TYPE +av_waitrequest <= av_waitrequest.DB_MAX_OUTPUT_PORT_TYPE +av_response[0] <= +av_response[1] <= +av_writeresponserequest => ~NO_FANOUT~ +av_writeresponsevalid <= + + +|lights|nios_system:NiosII|altera_merlin_slave_translator:nios2_processor_jtag_debug_module_translator +clk => in_transfer.CLK +clk => end_beginbursttransfer.CLK +clk => end_begintransfer.CLK +clk => av_chipselect_pre.CLK +clk => av_outputenable_pre.CLK +clk => read_latency_shift_reg[0].CLK +clk => av_readdata_pre[0].CLK +clk => av_readdata_pre[1].CLK +clk => av_readdata_pre[2].CLK +clk => av_readdata_pre[3].CLK +clk => av_readdata_pre[4].CLK +clk => av_readdata_pre[5].CLK +clk => av_readdata_pre[6].CLK +clk => av_readdata_pre[7].CLK +clk => av_readdata_pre[8].CLK +clk => av_readdata_pre[9].CLK +clk => av_readdata_pre[10].CLK +clk => av_readdata_pre[11].CLK +clk => av_readdata_pre[12].CLK +clk => av_readdata_pre[13].CLK +clk => av_readdata_pre[14].CLK +clk => av_readdata_pre[15].CLK +clk => av_readdata_pre[16].CLK +clk => av_readdata_pre[17].CLK +clk => av_readdata_pre[18].CLK +clk => av_readdata_pre[19].CLK +clk => av_readdata_pre[20].CLK +clk => av_readdata_pre[21].CLK +clk => av_readdata_pre[22].CLK +clk => av_readdata_pre[23].CLK +clk => av_readdata_pre[24].CLK +clk => av_readdata_pre[25].CLK +clk => av_readdata_pre[26].CLK +clk => av_readdata_pre[27].CLK +clk => av_readdata_pre[28].CLK +clk => av_readdata_pre[29].CLK +clk => av_readdata_pre[30].CLK +clk => av_readdata_pre[31].CLK +clk => waitrequest_reset_override.CLK +reset => in_transfer.ACLR +reset => end_beginbursttransfer.ACLR +reset => end_begintransfer.ACLR +reset => av_chipselect_pre.ACLR +reset => av_outputenable_pre.ACLR +reset => read_latency_shift_reg[0].ACLR +reset => av_readdata_pre[0].ACLR +reset => av_readdata_pre[1].ACLR +reset => av_readdata_pre[2].ACLR +reset => av_readdata_pre[3].ACLR +reset => av_readdata_pre[4].ACLR +reset => av_readdata_pre[5].ACLR +reset => av_readdata_pre[6].ACLR +reset => av_readdata_pre[7].ACLR +reset => av_readdata_pre[8].ACLR +reset => av_readdata_pre[9].ACLR +reset => av_readdata_pre[10].ACLR +reset => av_readdata_pre[11].ACLR +reset => av_readdata_pre[12].ACLR +reset => av_readdata_pre[13].ACLR +reset => av_readdata_pre[14].ACLR +reset => av_readdata_pre[15].ACLR +reset => av_readdata_pre[16].ACLR +reset => av_readdata_pre[17].ACLR +reset => av_readdata_pre[18].ACLR +reset => av_readdata_pre[19].ACLR +reset => av_readdata_pre[20].ACLR +reset => av_readdata_pre[21].ACLR +reset => av_readdata_pre[22].ACLR +reset => av_readdata_pre[23].ACLR +reset => av_readdata_pre[24].ACLR +reset => av_readdata_pre[25].ACLR +reset => av_readdata_pre[26].ACLR +reset => av_readdata_pre[27].ACLR +reset => av_readdata_pre[28].ACLR +reset => av_readdata_pre[29].ACLR +reset => av_readdata_pre[30].ACLR +reset => av_readdata_pre[31].ACLR +reset => waitrequest_reset_override.PRESET +uav_address[0] => ~NO_FANOUT~ +uav_address[1] => ~NO_FANOUT~ +uav_address[2] => av_address[0].DATAIN +uav_address[3] => av_address[1].DATAIN +uav_address[4] => av_address[2].DATAIN +uav_address[5] => av_address[3].DATAIN +uav_address[6] => av_address[4].DATAIN +uav_address[7] => av_address[5].DATAIN +uav_address[8] => av_address[6].DATAIN +uav_address[9] => av_address[7].DATAIN +uav_address[10] => av_address[8].DATAIN +uav_address[11] => ~NO_FANOUT~ +uav_address[12] => ~NO_FANOUT~ +uav_address[13] => ~NO_FANOUT~ +uav_address[14] => ~NO_FANOUT~ +uav_address[15] => ~NO_FANOUT~ +uav_address[16] => ~NO_FANOUT~ +uav_address[17] => ~NO_FANOUT~ +uav_address[18] => ~NO_FANOUT~ +uav_writedata[0] => av_writedata[0].DATAIN +uav_writedata[1] => av_writedata[1].DATAIN +uav_writedata[2] => av_writedata[2].DATAIN +uav_writedata[3] => av_writedata[3].DATAIN +uav_writedata[4] => av_writedata[4].DATAIN +uav_writedata[5] => av_writedata[5].DATAIN +uav_writedata[6] => av_writedata[6].DATAIN +uav_writedata[7] => av_writedata[7].DATAIN +uav_writedata[8] => av_writedata[8].DATAIN +uav_writedata[9] => av_writedata[9].DATAIN +uav_writedata[10] => av_writedata[10].DATAIN +uav_writedata[11] => av_writedata[11].DATAIN +uav_writedata[12] => av_writedata[12].DATAIN +uav_writedata[13] => av_writedata[13].DATAIN +uav_writedata[14] => av_writedata[14].DATAIN +uav_writedata[15] => av_writedata[15].DATAIN +uav_writedata[16] => av_writedata[16].DATAIN +uav_writedata[17] => av_writedata[17].DATAIN +uav_writedata[18] => av_writedata[18].DATAIN +uav_writedata[19] => av_writedata[19].DATAIN +uav_writedata[20] => av_writedata[20].DATAIN +uav_writedata[21] => av_writedata[21].DATAIN +uav_writedata[22] => av_writedata[22].DATAIN +uav_writedata[23] => av_writedata[23].DATAIN +uav_writedata[24] => av_writedata[24].DATAIN +uav_writedata[25] => av_writedata[25].DATAIN +uav_writedata[26] => av_writedata[26].DATAIN +uav_writedata[27] => av_writedata[27].DATAIN +uav_writedata[28] => av_writedata[28].DATAIN +uav_writedata[29] => av_writedata[29].DATAIN +uav_writedata[30] => av_writedata[30].DATAIN +uav_writedata[31] => av_writedata[31].DATAIN +uav_write => av_writebyteenable.IN0 +uav_write => av_writebyteenable.IN0 +uav_write => av_writebyteenable.IN0 +uav_write => av_writebyteenable.IN0 +uav_write => av_begintransfer.IN0 +uav_write => end_beginbursttransfer.IN1 +uav_write => always20.IN1 +uav_write => in_transfer.OUTPUTSELECT +uav_write => av_write.DATAIN +uav_read => read_latency_shift_reg.IN1 +uav_read => av_outputenable.OUTPUTSELECT +uav_read => av_begintransfer.IN1 +uav_read => av_beginbursttransfer.OUTPUTSELECT +uav_read => av_read.DATAIN +uav_burstcount[0] => Equal0.IN3 +uav_burstcount[1] => Equal0.IN2 +uav_burstcount[2] => av_burstcount[0].DATAIN +uav_burstcount[2] => Equal0.IN4 +uav_byteenable[0] => av_writebyteenable.IN1 +uav_byteenable[0] => av_byteenable[0].DATAIN +uav_byteenable[1] => av_writebyteenable.IN1 +uav_byteenable[1] => av_byteenable[1].DATAIN +uav_byteenable[2] => av_writebyteenable.IN1 +uav_byteenable[2] => av_byteenable[2].DATAIN +uav_byteenable[3] => av_writebyteenable.IN1 +uav_byteenable[3] => av_byteenable[3].DATAIN +uav_lock => av_lock.DATAIN +uav_debugaccess => av_debugaccess.DATAIN +uav_clken => ~NO_FANOUT~ +uav_readdatavalid <= read_latency_shift_reg[0].DB_MAX_OUTPUT_PORT_TYPE +uav_waitrequest <= av_waitrequest.DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[0] <= av_readdata_pre[0].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[1] <= av_readdata_pre[1].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[2] <= av_readdata_pre[2].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[3] <= av_readdata_pre[3].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[4] <= av_readdata_pre[4].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[5] <= av_readdata_pre[5].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[6] <= av_readdata_pre[6].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[7] <= av_readdata_pre[7].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[8] <= av_readdata_pre[8].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[9] <= av_readdata_pre[9].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[10] <= av_readdata_pre[10].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[11] <= av_readdata_pre[11].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[12] <= av_readdata_pre[12].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[13] <= av_readdata_pre[13].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[14] <= av_readdata_pre[14].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[15] <= av_readdata_pre[15].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[16] <= av_readdata_pre[16].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[17] <= av_readdata_pre[17].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[18] <= av_readdata_pre[18].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[19] <= av_readdata_pre[19].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[20] <= av_readdata_pre[20].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[21] <= av_readdata_pre[21].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[22] <= av_readdata_pre[22].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[23] <= av_readdata_pre[23].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[24] <= av_readdata_pre[24].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[25] <= av_readdata_pre[25].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[26] <= av_readdata_pre[26].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[27] <= av_readdata_pre[27].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[28] <= av_readdata_pre[28].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[29] <= av_readdata_pre[29].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[30] <= av_readdata_pre[30].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[31] <= av_readdata_pre[31].DB_MAX_OUTPUT_PORT_TYPE +uav_response[0] <= +uav_response[1] <= +uav_writeresponserequest => av_writeresponserequest.DATAIN +uav_writeresponsevalid <= av_writeresponsevalid.DB_MAX_OUTPUT_PORT_TYPE +av_address[0] <= uav_address[2].DB_MAX_OUTPUT_PORT_TYPE +av_address[1] <= uav_address[3].DB_MAX_OUTPUT_PORT_TYPE +av_address[2] <= uav_address[4].DB_MAX_OUTPUT_PORT_TYPE +av_address[3] <= uav_address[5].DB_MAX_OUTPUT_PORT_TYPE +av_address[4] <= uav_address[6].DB_MAX_OUTPUT_PORT_TYPE +av_address[5] <= uav_address[7].DB_MAX_OUTPUT_PORT_TYPE +av_address[6] <= uav_address[8].DB_MAX_OUTPUT_PORT_TYPE +av_address[7] <= uav_address[9].DB_MAX_OUTPUT_PORT_TYPE +av_address[8] <= uav_address[10].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[0] <= uav_writedata[0].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[1] <= uav_writedata[1].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[2] <= uav_writedata[2].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[3] <= uav_writedata[3].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[4] <= uav_writedata[4].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[5] <= uav_writedata[5].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[6] <= uav_writedata[6].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[7] <= uav_writedata[7].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[8] <= uav_writedata[8].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[9] <= uav_writedata[9].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[10] <= uav_writedata[10].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[11] <= uav_writedata[11].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[12] <= uav_writedata[12].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[13] <= uav_writedata[13].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[14] <= uav_writedata[14].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[15] <= uav_writedata[15].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[16] <= uav_writedata[16].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[17] <= uav_writedata[17].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[18] <= uav_writedata[18].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[19] <= uav_writedata[19].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[20] <= uav_writedata[20].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[21] <= uav_writedata[21].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[22] <= uav_writedata[22].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[23] <= uav_writedata[23].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[24] <= uav_writedata[24].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[25] <= uav_writedata[25].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[26] <= uav_writedata[26].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[27] <= uav_writedata[27].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[28] <= uav_writedata[28].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[29] <= uav_writedata[29].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[30] <= uav_writedata[30].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[31] <= uav_writedata[31].DB_MAX_OUTPUT_PORT_TYPE +av_write <= uav_write.DB_MAX_OUTPUT_PORT_TYPE +av_read <= uav_read.DB_MAX_OUTPUT_PORT_TYPE +av_burstcount[0] <= uav_burstcount[2].DB_MAX_OUTPUT_PORT_TYPE +av_byteenable[0] <= uav_byteenable[0].DB_MAX_OUTPUT_PORT_TYPE +av_byteenable[1] <= uav_byteenable[1].DB_MAX_OUTPUT_PORT_TYPE +av_byteenable[2] <= uav_byteenable[2].DB_MAX_OUTPUT_PORT_TYPE +av_byteenable[3] <= uav_byteenable[3].DB_MAX_OUTPUT_PORT_TYPE +av_writebyteenable[0] <= av_writebyteenable.DB_MAX_OUTPUT_PORT_TYPE +av_writebyteenable[1] <= av_writebyteenable.DB_MAX_OUTPUT_PORT_TYPE +av_writebyteenable[2] <= av_writebyteenable.DB_MAX_OUTPUT_PORT_TYPE +av_writebyteenable[3] <= av_writebyteenable.DB_MAX_OUTPUT_PORT_TYPE +av_begintransfer <= av_begintransfer.DB_MAX_OUTPUT_PORT_TYPE +av_chipselect <= av_chipselect.DB_MAX_OUTPUT_PORT_TYPE +av_beginbursttransfer <= av_beginbursttransfer.DB_MAX_OUTPUT_PORT_TYPE +av_lock <= uav_lock.DB_MAX_OUTPUT_PORT_TYPE +av_clken <= +av_debugaccess <= uav_debugaccess.DB_MAX_OUTPUT_PORT_TYPE +av_outputenable <= av_outputenable.DB_MAX_OUTPUT_PORT_TYPE +av_readdata[0] => av_readdata_pre[0].DATAIN +av_readdata[1] => av_readdata_pre[1].DATAIN +av_readdata[2] => av_readdata_pre[2].DATAIN +av_readdata[3] => av_readdata_pre[3].DATAIN +av_readdata[4] => av_readdata_pre[4].DATAIN +av_readdata[5] => av_readdata_pre[5].DATAIN +av_readdata[6] => av_readdata_pre[6].DATAIN +av_readdata[7] => av_readdata_pre[7].DATAIN +av_readdata[8] => av_readdata_pre[8].DATAIN +av_readdata[9] => av_readdata_pre[9].DATAIN +av_readdata[10] => av_readdata_pre[10].DATAIN +av_readdata[11] => av_readdata_pre[11].DATAIN +av_readdata[12] => av_readdata_pre[12].DATAIN +av_readdata[13] => av_readdata_pre[13].DATAIN +av_readdata[14] => av_readdata_pre[14].DATAIN +av_readdata[15] => av_readdata_pre[15].DATAIN +av_readdata[16] => av_readdata_pre[16].DATAIN +av_readdata[17] => av_readdata_pre[17].DATAIN +av_readdata[18] => av_readdata_pre[18].DATAIN +av_readdata[19] => av_readdata_pre[19].DATAIN +av_readdata[20] => av_readdata_pre[20].DATAIN +av_readdata[21] => av_readdata_pre[21].DATAIN +av_readdata[22] => av_readdata_pre[22].DATAIN +av_readdata[23] => av_readdata_pre[23].DATAIN +av_readdata[24] => av_readdata_pre[24].DATAIN +av_readdata[25] => av_readdata_pre[25].DATAIN +av_readdata[26] => av_readdata_pre[26].DATAIN +av_readdata[27] => av_readdata_pre[27].DATAIN +av_readdata[28] => av_readdata_pre[28].DATAIN +av_readdata[29] => av_readdata_pre[29].DATAIN +av_readdata[30] => av_readdata_pre[30].DATAIN +av_readdata[31] => av_readdata_pre[31].DATAIN +av_readdatavalid => ~NO_FANOUT~ +av_waitrequest => always18.IN1 +av_waitrequest => end_begintransfer.OUTPUTSELECT +av_waitrequest => uav_waitrequest.DATAIN +av_waitrequest => read_latency_shift_reg.IN1 +av_response[0] => ~NO_FANOUT~ +av_response[1] => ~NO_FANOUT~ +av_writeresponserequest <= uav_writeresponserequest.DB_MAX_OUTPUT_PORT_TYPE +av_writeresponsevalid => uav_writeresponsevalid.DATAIN + + +|lights|nios_system:NiosII|altera_merlin_slave_translator:onchip_memory_s1_translator +clk => in_transfer.CLK +clk => end_beginbursttransfer.CLK +clk => end_begintransfer.CLK +clk => av_chipselect_pre.CLK +clk => av_outputenable_pre.CLK +clk => read_latency_shift_reg[0].CLK +clk => waitrequest_reset_override.CLK +reset => in_transfer.ACLR +reset => end_beginbursttransfer.ACLR +reset => end_begintransfer.ACLR +reset => av_chipselect_pre.ACLR +reset => av_outputenable_pre.ACLR +reset => read_latency_shift_reg[0].ACLR +reset => waitrequest_reset_override.PRESET +uav_address[0] => ~NO_FANOUT~ +uav_address[1] => ~NO_FANOUT~ +uav_address[2] => av_address[0].DATAIN +uav_address[3] => av_address[1].DATAIN +uav_address[4] => av_address[2].DATAIN +uav_address[5] => av_address[3].DATAIN +uav_address[6] => av_address[4].DATAIN +uav_address[7] => av_address[5].DATAIN +uav_address[8] => av_address[6].DATAIN +uav_address[9] => av_address[7].DATAIN +uav_address[10] => av_address[8].DATAIN +uav_address[11] => av_address[9].DATAIN +uav_address[12] => av_address[10].DATAIN +uav_address[13] => av_address[11].DATAIN +uav_address[14] => av_address[12].DATAIN +uav_address[15] => av_address[13].DATAIN +uav_address[16] => av_address[14].DATAIN +uav_address[17] => av_address[15].DATAIN +uav_address[18] => ~NO_FANOUT~ +uav_writedata[0] => av_writedata[0].DATAIN +uav_writedata[1] => av_writedata[1].DATAIN +uav_writedata[2] => av_writedata[2].DATAIN +uav_writedata[3] => av_writedata[3].DATAIN +uav_writedata[4] => av_writedata[4].DATAIN +uav_writedata[5] => av_writedata[5].DATAIN +uav_writedata[6] => av_writedata[6].DATAIN +uav_writedata[7] => av_writedata[7].DATAIN +uav_writedata[8] => av_writedata[8].DATAIN +uav_writedata[9] => av_writedata[9].DATAIN +uav_writedata[10] => av_writedata[10].DATAIN +uav_writedata[11] => av_writedata[11].DATAIN +uav_writedata[12] => av_writedata[12].DATAIN +uav_writedata[13] => av_writedata[13].DATAIN +uav_writedata[14] => av_writedata[14].DATAIN +uav_writedata[15] => av_writedata[15].DATAIN +uav_writedata[16] => av_writedata[16].DATAIN +uav_writedata[17] => av_writedata[17].DATAIN +uav_writedata[18] => av_writedata[18].DATAIN +uav_writedata[19] => av_writedata[19].DATAIN +uav_writedata[20] => av_writedata[20].DATAIN +uav_writedata[21] => av_writedata[21].DATAIN +uav_writedata[22] => av_writedata[22].DATAIN +uav_writedata[23] => av_writedata[23].DATAIN +uav_writedata[24] => av_writedata[24].DATAIN +uav_writedata[25] => av_writedata[25].DATAIN +uav_writedata[26] => av_writedata[26].DATAIN +uav_writedata[27] => av_writedata[27].DATAIN +uav_writedata[28] => av_writedata[28].DATAIN +uav_writedata[29] => av_writedata[29].DATAIN +uav_writedata[30] => av_writedata[30].DATAIN +uav_writedata[31] => av_writedata[31].DATAIN +uav_write => av_writebyteenable.IN0 +uav_write => av_writebyteenable.IN0 +uav_write => av_writebyteenable.IN0 +uav_write => av_writebyteenable.IN0 +uav_write => av_begintransfer.IN0 +uav_write => end_beginbursttransfer.IN1 +uav_write => always20.IN1 +uav_write => in_transfer.OUTPUTSELECT +uav_write => av_write.DATAIN +uav_read => read_latency_shift_reg.IN1 +uav_read => av_outputenable.OUTPUTSELECT +uav_read => av_begintransfer.IN1 +uav_read => av_beginbursttransfer.OUTPUTSELECT +uav_read => av_read.DATAIN +uav_read => av_outputenable_pre.DATAIN +uav_burstcount[0] => Equal0.IN3 +uav_burstcount[1] => Equal0.IN2 +uav_burstcount[2] => av_burstcount[0].DATAIN +uav_burstcount[2] => Equal0.IN4 +uav_byteenable[0] => av_writebyteenable.IN1 +uav_byteenable[0] => av_byteenable[0].DATAIN +uav_byteenable[1] => av_writebyteenable.IN1 +uav_byteenable[1] => av_byteenable[1].DATAIN +uav_byteenable[2] => av_writebyteenable.IN1 +uav_byteenable[2] => av_byteenable[2].DATAIN +uav_byteenable[3] => av_writebyteenable.IN1 +uav_byteenable[3] => av_byteenable[3].DATAIN +uav_lock => av_lock.DATAIN +uav_debugaccess => av_debugaccess.DATAIN +uav_clken => ~NO_FANOUT~ +uav_readdatavalid <= read_latency_shift_reg[0].DB_MAX_OUTPUT_PORT_TYPE +uav_waitrequest <= waitrequest_reset_override.DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[0] <= av_readdata[0].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[1] <= av_readdata[1].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[2] <= av_readdata[2].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[3] <= av_readdata[3].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[4] <= av_readdata[4].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[5] <= av_readdata[5].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[6] <= av_readdata[6].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[7] <= av_readdata[7].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[8] <= av_readdata[8].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[9] <= av_readdata[9].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[10] <= av_readdata[10].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[11] <= av_readdata[11].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[12] <= av_readdata[12].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[13] <= av_readdata[13].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[14] <= av_readdata[14].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[15] <= av_readdata[15].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[16] <= av_readdata[16].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[17] <= av_readdata[17].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[18] <= av_readdata[18].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[19] <= av_readdata[19].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[20] <= av_readdata[20].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[21] <= av_readdata[21].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[22] <= av_readdata[22].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[23] <= av_readdata[23].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[24] <= av_readdata[24].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[25] <= av_readdata[25].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[26] <= av_readdata[26].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[27] <= av_readdata[27].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[28] <= av_readdata[28].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[29] <= av_readdata[29].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[30] <= av_readdata[30].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[31] <= av_readdata[31].DB_MAX_OUTPUT_PORT_TYPE +uav_response[0] <= +uav_response[1] <= +uav_writeresponserequest => av_writeresponserequest.DATAIN +uav_writeresponsevalid <= av_writeresponsevalid.DB_MAX_OUTPUT_PORT_TYPE +av_address[0] <= uav_address[2].DB_MAX_OUTPUT_PORT_TYPE +av_address[1] <= uav_address[3].DB_MAX_OUTPUT_PORT_TYPE +av_address[2] <= uav_address[4].DB_MAX_OUTPUT_PORT_TYPE +av_address[3] <= uav_address[5].DB_MAX_OUTPUT_PORT_TYPE +av_address[4] <= uav_address[6].DB_MAX_OUTPUT_PORT_TYPE +av_address[5] <= uav_address[7].DB_MAX_OUTPUT_PORT_TYPE +av_address[6] <= uav_address[8].DB_MAX_OUTPUT_PORT_TYPE +av_address[7] <= uav_address[9].DB_MAX_OUTPUT_PORT_TYPE +av_address[8] <= uav_address[10].DB_MAX_OUTPUT_PORT_TYPE +av_address[9] <= uav_address[11].DB_MAX_OUTPUT_PORT_TYPE +av_address[10] <= uav_address[12].DB_MAX_OUTPUT_PORT_TYPE +av_address[11] <= uav_address[13].DB_MAX_OUTPUT_PORT_TYPE +av_address[12] <= uav_address[14].DB_MAX_OUTPUT_PORT_TYPE +av_address[13] <= uav_address[15].DB_MAX_OUTPUT_PORT_TYPE +av_address[14] <= uav_address[16].DB_MAX_OUTPUT_PORT_TYPE +av_address[15] <= uav_address[17].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[0] <= uav_writedata[0].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[1] <= uav_writedata[1].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[2] <= uav_writedata[2].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[3] <= uav_writedata[3].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[4] <= uav_writedata[4].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[5] <= uav_writedata[5].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[6] <= uav_writedata[6].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[7] <= uav_writedata[7].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[8] <= uav_writedata[8].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[9] <= uav_writedata[9].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[10] <= uav_writedata[10].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[11] <= uav_writedata[11].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[12] <= uav_writedata[12].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[13] <= uav_writedata[13].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[14] <= uav_writedata[14].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[15] <= uav_writedata[15].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[16] <= uav_writedata[16].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[17] <= uav_writedata[17].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[18] <= uav_writedata[18].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[19] <= uav_writedata[19].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[20] <= uav_writedata[20].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[21] <= uav_writedata[21].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[22] <= uav_writedata[22].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[23] <= uav_writedata[23].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[24] <= uav_writedata[24].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[25] <= uav_writedata[25].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[26] <= uav_writedata[26].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[27] <= uav_writedata[27].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[28] <= uav_writedata[28].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[29] <= uav_writedata[29].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[30] <= uav_writedata[30].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[31] <= uav_writedata[31].DB_MAX_OUTPUT_PORT_TYPE +av_write <= uav_write.DB_MAX_OUTPUT_PORT_TYPE +av_read <= uav_read.DB_MAX_OUTPUT_PORT_TYPE +av_burstcount[0] <= uav_burstcount[2].DB_MAX_OUTPUT_PORT_TYPE +av_byteenable[0] <= uav_byteenable[0].DB_MAX_OUTPUT_PORT_TYPE +av_byteenable[1] <= uav_byteenable[1].DB_MAX_OUTPUT_PORT_TYPE +av_byteenable[2] <= uav_byteenable[2].DB_MAX_OUTPUT_PORT_TYPE +av_byteenable[3] <= uav_byteenable[3].DB_MAX_OUTPUT_PORT_TYPE +av_writebyteenable[0] <= av_writebyteenable.DB_MAX_OUTPUT_PORT_TYPE +av_writebyteenable[1] <= av_writebyteenable.DB_MAX_OUTPUT_PORT_TYPE +av_writebyteenable[2] <= av_writebyteenable.DB_MAX_OUTPUT_PORT_TYPE +av_writebyteenable[3] <= av_writebyteenable.DB_MAX_OUTPUT_PORT_TYPE +av_begintransfer <= av_begintransfer.DB_MAX_OUTPUT_PORT_TYPE +av_chipselect <= av_chipselect.DB_MAX_OUTPUT_PORT_TYPE +av_beginbursttransfer <= av_beginbursttransfer.DB_MAX_OUTPUT_PORT_TYPE +av_lock <= uav_lock.DB_MAX_OUTPUT_PORT_TYPE +av_clken <= +av_debugaccess <= uav_debugaccess.DB_MAX_OUTPUT_PORT_TYPE +av_outputenable <= av_outputenable.DB_MAX_OUTPUT_PORT_TYPE +av_readdata[0] => uav_readdata[0].DATAIN +av_readdata[1] => uav_readdata[1].DATAIN +av_readdata[2] => uav_readdata[2].DATAIN +av_readdata[3] => uav_readdata[3].DATAIN +av_readdata[4] => uav_readdata[4].DATAIN +av_readdata[5] => uav_readdata[5].DATAIN +av_readdata[6] => uav_readdata[6].DATAIN +av_readdata[7] => uav_readdata[7].DATAIN +av_readdata[8] => uav_readdata[8].DATAIN +av_readdata[9] => uav_readdata[9].DATAIN +av_readdata[10] => uav_readdata[10].DATAIN +av_readdata[11] => uav_readdata[11].DATAIN +av_readdata[12] => uav_readdata[12].DATAIN +av_readdata[13] => uav_readdata[13].DATAIN +av_readdata[14] => uav_readdata[14].DATAIN +av_readdata[15] => uav_readdata[15].DATAIN +av_readdata[16] => uav_readdata[16].DATAIN +av_readdata[17] => uav_readdata[17].DATAIN +av_readdata[18] => uav_readdata[18].DATAIN +av_readdata[19] => uav_readdata[19].DATAIN +av_readdata[20] => uav_readdata[20].DATAIN +av_readdata[21] => uav_readdata[21].DATAIN +av_readdata[22] => uav_readdata[22].DATAIN +av_readdata[23] => uav_readdata[23].DATAIN +av_readdata[24] => uav_readdata[24].DATAIN +av_readdata[25] => uav_readdata[25].DATAIN +av_readdata[26] => uav_readdata[26].DATAIN +av_readdata[27] => uav_readdata[27].DATAIN +av_readdata[28] => uav_readdata[28].DATAIN +av_readdata[29] => uav_readdata[29].DATAIN +av_readdata[30] => uav_readdata[30].DATAIN +av_readdata[31] => uav_readdata[31].DATAIN +av_readdatavalid => ~NO_FANOUT~ +av_waitrequest => ~NO_FANOUT~ +av_response[0] => ~NO_FANOUT~ +av_response[1] => ~NO_FANOUT~ +av_writeresponserequest <= uav_writeresponserequest.DB_MAX_OUTPUT_PORT_TYPE +av_writeresponsevalid => uav_writeresponsevalid.DATAIN + + +|lights|nios_system:NiosII|altera_merlin_slave_translator:leds_s1_translator +clk => in_transfer.CLK +clk => end_beginbursttransfer.CLK +clk => end_begintransfer.CLK +clk => av_chipselect_pre.CLK +clk => av_outputenable_pre.CLK +clk => read_latency_shift_reg[0].CLK +clk => av_readdata_pre[0].CLK +clk => av_readdata_pre[1].CLK +clk => av_readdata_pre[2].CLK +clk => av_readdata_pre[3].CLK +clk => av_readdata_pre[4].CLK +clk => av_readdata_pre[5].CLK +clk => av_readdata_pre[6].CLK +clk => av_readdata_pre[7].CLK +clk => av_readdata_pre[8].CLK +clk => av_readdata_pre[9].CLK +clk => av_readdata_pre[10].CLK +clk => av_readdata_pre[11].CLK +clk => av_readdata_pre[12].CLK +clk => av_readdata_pre[13].CLK +clk => av_readdata_pre[14].CLK +clk => av_readdata_pre[15].CLK +clk => av_readdata_pre[16].CLK +clk => av_readdata_pre[17].CLK +clk => av_readdata_pre[18].CLK +clk => av_readdata_pre[19].CLK +clk => av_readdata_pre[20].CLK +clk => av_readdata_pre[21].CLK +clk => av_readdata_pre[22].CLK +clk => av_readdata_pre[23].CLK +clk => av_readdata_pre[24].CLK +clk => av_readdata_pre[25].CLK +clk => av_readdata_pre[26].CLK +clk => av_readdata_pre[27].CLK +clk => av_readdata_pre[28].CLK +clk => av_readdata_pre[29].CLK +clk => av_readdata_pre[30].CLK +clk => av_readdata_pre[31].CLK +clk => waitrequest_reset_override.CLK +clk => wait_latency_counter[0].CLK +clk => wait_latency_counter[1].CLK +reset => in_transfer.ACLR +reset => end_beginbursttransfer.ACLR +reset => end_begintransfer.ACLR +reset => av_chipselect_pre.ACLR +reset => av_outputenable_pre.ACLR +reset => read_latency_shift_reg[0].ACLR +reset => av_readdata_pre[0].ACLR +reset => av_readdata_pre[1].ACLR +reset => av_readdata_pre[2].ACLR +reset => av_readdata_pre[3].ACLR +reset => av_readdata_pre[4].ACLR +reset => av_readdata_pre[5].ACLR +reset => av_readdata_pre[6].ACLR +reset => av_readdata_pre[7].ACLR +reset => av_readdata_pre[8].ACLR +reset => av_readdata_pre[9].ACLR +reset => av_readdata_pre[10].ACLR +reset => av_readdata_pre[11].ACLR +reset => av_readdata_pre[12].ACLR +reset => av_readdata_pre[13].ACLR +reset => av_readdata_pre[14].ACLR +reset => av_readdata_pre[15].ACLR +reset => av_readdata_pre[16].ACLR +reset => av_readdata_pre[17].ACLR +reset => av_readdata_pre[18].ACLR +reset => av_readdata_pre[19].ACLR +reset => av_readdata_pre[20].ACLR +reset => av_readdata_pre[21].ACLR +reset => av_readdata_pre[22].ACLR +reset => av_readdata_pre[23].ACLR +reset => av_readdata_pre[24].ACLR +reset => av_readdata_pre[25].ACLR +reset => av_readdata_pre[26].ACLR +reset => av_readdata_pre[27].ACLR +reset => av_readdata_pre[28].ACLR +reset => av_readdata_pre[29].ACLR +reset => av_readdata_pre[30].ACLR +reset => av_readdata_pre[31].ACLR +reset => waitrequest_reset_override.PRESET +reset => wait_latency_counter[0].ACLR +reset => wait_latency_counter[1].ACLR +uav_address[0] => ~NO_FANOUT~ +uav_address[1] => ~NO_FANOUT~ +uav_address[2] => av_address[0].DATAIN +uav_address[3] => av_address[1].DATAIN +uav_address[4] => ~NO_FANOUT~ +uav_address[5] => ~NO_FANOUT~ +uav_address[6] => ~NO_FANOUT~ +uav_address[7] => ~NO_FANOUT~ +uav_address[8] => ~NO_FANOUT~ +uav_address[9] => ~NO_FANOUT~ +uav_address[10] => ~NO_FANOUT~ +uav_address[11] => ~NO_FANOUT~ +uav_address[12] => ~NO_FANOUT~ +uav_address[13] => ~NO_FANOUT~ +uav_address[14] => ~NO_FANOUT~ +uav_address[15] => ~NO_FANOUT~ +uav_address[16] => ~NO_FANOUT~ +uav_address[17] => ~NO_FANOUT~ +uav_address[18] => ~NO_FANOUT~ +uav_writedata[0] => av_writedata[0].DATAIN +uav_writedata[1] => av_writedata[1].DATAIN +uav_writedata[2] => av_writedata[2].DATAIN +uav_writedata[3] => av_writedata[3].DATAIN +uav_writedata[4] => av_writedata[4].DATAIN +uav_writedata[5] => av_writedata[5].DATAIN +uav_writedata[6] => av_writedata[6].DATAIN +uav_writedata[7] => av_writedata[7].DATAIN +uav_writedata[8] => av_writedata[8].DATAIN +uav_writedata[9] => av_writedata[9].DATAIN +uav_writedata[10] => av_writedata[10].DATAIN +uav_writedata[11] => av_writedata[11].DATAIN +uav_writedata[12] => av_writedata[12].DATAIN +uav_writedata[13] => av_writedata[13].DATAIN +uav_writedata[14] => av_writedata[14].DATAIN +uav_writedata[15] => av_writedata[15].DATAIN +uav_writedata[16] => av_writedata[16].DATAIN +uav_writedata[17] => av_writedata[17].DATAIN +uav_writedata[18] => av_writedata[18].DATAIN +uav_writedata[19] => av_writedata[19].DATAIN +uav_writedata[20] => av_writedata[20].DATAIN +uav_writedata[21] => av_writedata[21].DATAIN +uav_writedata[22] => av_writedata[22].DATAIN +uav_writedata[23] => av_writedata[23].DATAIN +uav_writedata[24] => av_writedata[24].DATAIN +uav_writedata[25] => av_writedata[25].DATAIN +uav_writedata[26] => av_writedata[26].DATAIN +uav_writedata[27] => av_writedata[27].DATAIN +uav_writedata[28] => av_writedata[28].DATAIN +uav_writedata[29] => av_writedata[29].DATAIN +uav_writedata[30] => av_writedata[30].DATAIN +uav_writedata[31] => av_writedata[31].DATAIN +uav_write => av_writebyteenable.IN0 +uav_write => av_write.IN1 +uav_write => av_waitrequest_generated.OUTPUTSELECT +uav_write => av_begintransfer.IN0 +uav_write => end_beginbursttransfer.IN1 +uav_write => always20.IN1 +uav_write => in_transfer.OUTPUTSELECT +uav_read => av_read.IN1 +uav_read => read_latency_shift_reg.IN1 +uav_read => av_outputenable.OUTPUTSELECT +uav_read => av_begintransfer.IN1 +uav_read => av_beginbursttransfer.OUTPUTSELECT +uav_burstcount[0] => Equal2.IN3 +uav_burstcount[1] => Equal2.IN2 +uav_burstcount[2] => av_burstcount[0].DATAIN +uav_burstcount[2] => Equal2.IN4 +uav_byteenable[0] => av_writebyteenable.IN1 +uav_byteenable[0] => av_byteenable[0].DATAIN +uav_byteenable[1] => ~NO_FANOUT~ +uav_byteenable[2] => ~NO_FANOUT~ +uav_byteenable[3] => ~NO_FANOUT~ +uav_lock => av_lock.DATAIN +uav_debugaccess => av_debugaccess.DATAIN +uav_clken => ~NO_FANOUT~ +uav_readdatavalid <= read_latency_shift_reg[0].DB_MAX_OUTPUT_PORT_TYPE +uav_waitrequest <= uav_waitrequest.DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[0] <= av_readdata_pre[0].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[1] <= av_readdata_pre[1].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[2] <= av_readdata_pre[2].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[3] <= av_readdata_pre[3].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[4] <= av_readdata_pre[4].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[5] <= av_readdata_pre[5].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[6] <= av_readdata_pre[6].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[7] <= av_readdata_pre[7].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[8] <= av_readdata_pre[8].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[9] <= av_readdata_pre[9].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[10] <= av_readdata_pre[10].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[11] <= av_readdata_pre[11].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[12] <= av_readdata_pre[12].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[13] <= av_readdata_pre[13].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[14] <= av_readdata_pre[14].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[15] <= av_readdata_pre[15].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[16] <= av_readdata_pre[16].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[17] <= av_readdata_pre[17].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[18] <= av_readdata_pre[18].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[19] <= av_readdata_pre[19].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[20] <= av_readdata_pre[20].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[21] <= av_readdata_pre[21].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[22] <= av_readdata_pre[22].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[23] <= av_readdata_pre[23].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[24] <= av_readdata_pre[24].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[25] <= av_readdata_pre[25].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[26] <= av_readdata_pre[26].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[27] <= av_readdata_pre[27].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[28] <= av_readdata_pre[28].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[29] <= av_readdata_pre[29].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[30] <= av_readdata_pre[30].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[31] <= av_readdata_pre[31].DB_MAX_OUTPUT_PORT_TYPE +uav_response[0] <= +uav_response[1] <= +uav_writeresponserequest => av_writeresponserequest.DATAIN +uav_writeresponsevalid <= av_writeresponsevalid.DB_MAX_OUTPUT_PORT_TYPE +av_address[0] <= uav_address[2].DB_MAX_OUTPUT_PORT_TYPE +av_address[1] <= uav_address[3].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[0] <= uav_writedata[0].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[1] <= uav_writedata[1].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[2] <= uav_writedata[2].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[3] <= uav_writedata[3].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[4] <= uav_writedata[4].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[5] <= uav_writedata[5].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[6] <= uav_writedata[6].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[7] <= uav_writedata[7].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[8] <= uav_writedata[8].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[9] <= uav_writedata[9].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[10] <= uav_writedata[10].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[11] <= uav_writedata[11].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[12] <= uav_writedata[12].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[13] <= uav_writedata[13].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[14] <= uav_writedata[14].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[15] <= uav_writedata[15].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[16] <= uav_writedata[16].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[17] <= uav_writedata[17].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[18] <= uav_writedata[18].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[19] <= uav_writedata[19].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[20] <= uav_writedata[20].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[21] <= uav_writedata[21].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[22] <= uav_writedata[22].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[23] <= uav_writedata[23].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[24] <= uav_writedata[24].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[25] <= uav_writedata[25].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[26] <= uav_writedata[26].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[27] <= uav_writedata[27].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[28] <= uav_writedata[28].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[29] <= uav_writedata[29].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[30] <= uav_writedata[30].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[31] <= uav_writedata[31].DB_MAX_OUTPUT_PORT_TYPE +av_write <= av_write.DB_MAX_OUTPUT_PORT_TYPE +av_read <= av_read.DB_MAX_OUTPUT_PORT_TYPE +av_burstcount[0] <= uav_burstcount[2].DB_MAX_OUTPUT_PORT_TYPE +av_byteenable[0] <= uav_byteenable[0].DB_MAX_OUTPUT_PORT_TYPE +av_writebyteenable[0] <= av_writebyteenable.DB_MAX_OUTPUT_PORT_TYPE +av_begintransfer <= av_begintransfer.DB_MAX_OUTPUT_PORT_TYPE +av_chipselect <= av_chipselect.DB_MAX_OUTPUT_PORT_TYPE +av_beginbursttransfer <= av_beginbursttransfer.DB_MAX_OUTPUT_PORT_TYPE +av_lock <= uav_lock.DB_MAX_OUTPUT_PORT_TYPE +av_clken <= +av_debugaccess <= uav_debugaccess.DB_MAX_OUTPUT_PORT_TYPE +av_outputenable <= av_outputenable.DB_MAX_OUTPUT_PORT_TYPE +av_readdata[0] => av_readdata_pre[0].DATAIN +av_readdata[1] => av_readdata_pre[1].DATAIN +av_readdata[2] => av_readdata_pre[2].DATAIN +av_readdata[3] => av_readdata_pre[3].DATAIN +av_readdata[4] => av_readdata_pre[4].DATAIN +av_readdata[5] => av_readdata_pre[5].DATAIN +av_readdata[6] => av_readdata_pre[6].DATAIN +av_readdata[7] => av_readdata_pre[7].DATAIN +av_readdata[8] => av_readdata_pre[8].DATAIN +av_readdata[9] => av_readdata_pre[9].DATAIN +av_readdata[10] => av_readdata_pre[10].DATAIN +av_readdata[11] => av_readdata_pre[11].DATAIN +av_readdata[12] => av_readdata_pre[12].DATAIN +av_readdata[13] => av_readdata_pre[13].DATAIN +av_readdata[14] => av_readdata_pre[14].DATAIN +av_readdata[15] => av_readdata_pre[15].DATAIN +av_readdata[16] => av_readdata_pre[16].DATAIN +av_readdata[17] => av_readdata_pre[17].DATAIN +av_readdata[18] => av_readdata_pre[18].DATAIN +av_readdata[19] => av_readdata_pre[19].DATAIN +av_readdata[20] => av_readdata_pre[20].DATAIN +av_readdata[21] => av_readdata_pre[21].DATAIN +av_readdata[22] => av_readdata_pre[22].DATAIN +av_readdata[23] => av_readdata_pre[23].DATAIN +av_readdata[24] => av_readdata_pre[24].DATAIN +av_readdata[25] => av_readdata_pre[25].DATAIN +av_readdata[26] => av_readdata_pre[26].DATAIN +av_readdata[27] => av_readdata_pre[27].DATAIN +av_readdata[28] => av_readdata_pre[28].DATAIN +av_readdata[29] => av_readdata_pre[29].DATAIN +av_readdata[30] => av_readdata_pre[30].DATAIN +av_readdata[31] => av_readdata_pre[31].DATAIN +av_readdatavalid => ~NO_FANOUT~ +av_waitrequest => ~NO_FANOUT~ +av_response[0] => ~NO_FANOUT~ +av_response[1] => ~NO_FANOUT~ +av_writeresponserequest <= uav_writeresponserequest.DB_MAX_OUTPUT_PORT_TYPE +av_writeresponsevalid => uav_writeresponsevalid.DATAIN + + +|lights|nios_system:NiosII|altera_merlin_slave_translator:jtag_uart_avalon_jtag_slave_translator +clk => in_transfer.CLK +clk => end_beginbursttransfer.CLK +clk => end_begintransfer.CLK +clk => av_chipselect_pre.CLK +clk => av_outputenable_pre.CLK +clk => read_latency_shift_reg[0].CLK +clk => av_readdata_pre[0].CLK +clk => av_readdata_pre[1].CLK +clk => av_readdata_pre[2].CLK +clk => av_readdata_pre[3].CLK +clk => av_readdata_pre[4].CLK +clk => av_readdata_pre[5].CLK +clk => av_readdata_pre[6].CLK +clk => av_readdata_pre[7].CLK +clk => av_readdata_pre[8].CLK +clk => av_readdata_pre[9].CLK +clk => av_readdata_pre[10].CLK +clk => av_readdata_pre[11].CLK +clk => av_readdata_pre[12].CLK +clk => av_readdata_pre[13].CLK +clk => av_readdata_pre[14].CLK +clk => av_readdata_pre[15].CLK +clk => av_readdata_pre[16].CLK +clk => av_readdata_pre[17].CLK +clk => av_readdata_pre[18].CLK +clk => av_readdata_pre[19].CLK +clk => av_readdata_pre[20].CLK +clk => av_readdata_pre[21].CLK +clk => av_readdata_pre[22].CLK +clk => av_readdata_pre[23].CLK +clk => av_readdata_pre[24].CLK +clk => av_readdata_pre[25].CLK +clk => av_readdata_pre[26].CLK +clk => av_readdata_pre[27].CLK +clk => av_readdata_pre[28].CLK +clk => av_readdata_pre[29].CLK +clk => av_readdata_pre[30].CLK +clk => av_readdata_pre[31].CLK +clk => waitrequest_reset_override.CLK +reset => in_transfer.ACLR +reset => end_beginbursttransfer.ACLR +reset => end_begintransfer.ACLR +reset => av_chipselect_pre.ACLR +reset => av_outputenable_pre.ACLR +reset => read_latency_shift_reg[0].ACLR +reset => av_readdata_pre[0].ACLR +reset => av_readdata_pre[1].ACLR +reset => av_readdata_pre[2].ACLR +reset => av_readdata_pre[3].ACLR +reset => av_readdata_pre[4].ACLR +reset => av_readdata_pre[5].ACLR +reset => av_readdata_pre[6].ACLR +reset => av_readdata_pre[7].ACLR +reset => av_readdata_pre[8].ACLR +reset => av_readdata_pre[9].ACLR +reset => av_readdata_pre[10].ACLR +reset => av_readdata_pre[11].ACLR +reset => av_readdata_pre[12].ACLR +reset => av_readdata_pre[13].ACLR +reset => av_readdata_pre[14].ACLR +reset => av_readdata_pre[15].ACLR +reset => av_readdata_pre[16].ACLR +reset => av_readdata_pre[17].ACLR +reset => av_readdata_pre[18].ACLR +reset => av_readdata_pre[19].ACLR +reset => av_readdata_pre[20].ACLR +reset => av_readdata_pre[21].ACLR +reset => av_readdata_pre[22].ACLR +reset => av_readdata_pre[23].ACLR +reset => av_readdata_pre[24].ACLR +reset => av_readdata_pre[25].ACLR +reset => av_readdata_pre[26].ACLR +reset => av_readdata_pre[27].ACLR +reset => av_readdata_pre[28].ACLR +reset => av_readdata_pre[29].ACLR +reset => av_readdata_pre[30].ACLR +reset => av_readdata_pre[31].ACLR +reset => waitrequest_reset_override.PRESET +uav_address[0] => ~NO_FANOUT~ +uav_address[1] => ~NO_FANOUT~ +uav_address[2] => av_address[0].DATAIN +uav_address[3] => ~NO_FANOUT~ +uav_address[4] => ~NO_FANOUT~ +uav_address[5] => ~NO_FANOUT~ +uav_address[6] => ~NO_FANOUT~ +uav_address[7] => ~NO_FANOUT~ +uav_address[8] => ~NO_FANOUT~ +uav_address[9] => ~NO_FANOUT~ +uav_address[10] => ~NO_FANOUT~ +uav_address[11] => ~NO_FANOUT~ +uav_address[12] => ~NO_FANOUT~ +uav_address[13] => ~NO_FANOUT~ +uav_address[14] => ~NO_FANOUT~ +uav_address[15] => ~NO_FANOUT~ +uav_address[16] => ~NO_FANOUT~ +uav_address[17] => ~NO_FANOUT~ +uav_address[18] => ~NO_FANOUT~ +uav_writedata[0] => av_writedata[0].DATAIN +uav_writedata[1] => av_writedata[1].DATAIN +uav_writedata[2] => av_writedata[2].DATAIN +uav_writedata[3] => av_writedata[3].DATAIN +uav_writedata[4] => av_writedata[4].DATAIN +uav_writedata[5] => av_writedata[5].DATAIN +uav_writedata[6] => av_writedata[6].DATAIN +uav_writedata[7] => av_writedata[7].DATAIN +uav_writedata[8] => av_writedata[8].DATAIN +uav_writedata[9] => av_writedata[9].DATAIN +uav_writedata[10] => av_writedata[10].DATAIN +uav_writedata[11] => av_writedata[11].DATAIN +uav_writedata[12] => av_writedata[12].DATAIN +uav_writedata[13] => av_writedata[13].DATAIN +uav_writedata[14] => av_writedata[14].DATAIN +uav_writedata[15] => av_writedata[15].DATAIN +uav_writedata[16] => av_writedata[16].DATAIN +uav_writedata[17] => av_writedata[17].DATAIN +uav_writedata[18] => av_writedata[18].DATAIN +uav_writedata[19] => av_writedata[19].DATAIN +uav_writedata[20] => av_writedata[20].DATAIN +uav_writedata[21] => av_writedata[21].DATAIN +uav_writedata[22] => av_writedata[22].DATAIN +uav_writedata[23] => av_writedata[23].DATAIN +uav_writedata[24] => av_writedata[24].DATAIN +uav_writedata[25] => av_writedata[25].DATAIN +uav_writedata[26] => av_writedata[26].DATAIN +uav_writedata[27] => av_writedata[27].DATAIN +uav_writedata[28] => av_writedata[28].DATAIN +uav_writedata[29] => av_writedata[29].DATAIN +uav_writedata[30] => av_writedata[30].DATAIN +uav_writedata[31] => av_writedata[31].DATAIN +uav_write => av_writebyteenable.IN0 +uav_write => av_begintransfer.IN0 +uav_write => end_beginbursttransfer.IN1 +uav_write => always20.IN1 +uav_write => in_transfer.OUTPUTSELECT +uav_write => av_write.DATAIN +uav_read => read_latency_shift_reg.IN1 +uav_read => av_outputenable.OUTPUTSELECT +uav_read => av_begintransfer.IN1 +uav_read => av_beginbursttransfer.OUTPUTSELECT +uav_read => av_read.DATAIN +uav_burstcount[0] => Equal0.IN3 +uav_burstcount[1] => Equal0.IN2 +uav_burstcount[2] => av_burstcount[0].DATAIN +uav_burstcount[2] => Equal0.IN4 +uav_byteenable[0] => av_writebyteenable.IN1 +uav_byteenable[0] => av_byteenable[0].DATAIN +uav_byteenable[1] => ~NO_FANOUT~ +uav_byteenable[2] => ~NO_FANOUT~ +uav_byteenable[3] => ~NO_FANOUT~ +uav_lock => av_lock.DATAIN +uav_debugaccess => av_debugaccess.DATAIN +uav_clken => ~NO_FANOUT~ +uav_readdatavalid <= read_latency_shift_reg[0].DB_MAX_OUTPUT_PORT_TYPE +uav_waitrequest <= av_waitrequest.DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[0] <= av_readdata_pre[0].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[1] <= av_readdata_pre[1].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[2] <= av_readdata_pre[2].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[3] <= av_readdata_pre[3].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[4] <= av_readdata_pre[4].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[5] <= av_readdata_pre[5].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[6] <= av_readdata_pre[6].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[7] <= av_readdata_pre[7].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[8] <= av_readdata_pre[8].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[9] <= av_readdata_pre[9].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[10] <= av_readdata_pre[10].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[11] <= av_readdata_pre[11].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[12] <= av_readdata_pre[12].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[13] <= av_readdata_pre[13].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[14] <= av_readdata_pre[14].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[15] <= av_readdata_pre[15].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[16] <= av_readdata_pre[16].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[17] <= av_readdata_pre[17].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[18] <= av_readdata_pre[18].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[19] <= av_readdata_pre[19].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[20] <= av_readdata_pre[20].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[21] <= av_readdata_pre[21].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[22] <= av_readdata_pre[22].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[23] <= av_readdata_pre[23].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[24] <= av_readdata_pre[24].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[25] <= av_readdata_pre[25].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[26] <= av_readdata_pre[26].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[27] <= av_readdata_pre[27].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[28] <= av_readdata_pre[28].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[29] <= av_readdata_pre[29].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[30] <= av_readdata_pre[30].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[31] <= av_readdata_pre[31].DB_MAX_OUTPUT_PORT_TYPE +uav_response[0] <= +uav_response[1] <= +uav_writeresponserequest => av_writeresponserequest.DATAIN +uav_writeresponsevalid <= av_writeresponsevalid.DB_MAX_OUTPUT_PORT_TYPE +av_address[0] <= uav_address[2].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[0] <= uav_writedata[0].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[1] <= uav_writedata[1].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[2] <= uav_writedata[2].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[3] <= uav_writedata[3].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[4] <= uav_writedata[4].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[5] <= uav_writedata[5].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[6] <= uav_writedata[6].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[7] <= uav_writedata[7].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[8] <= uav_writedata[8].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[9] <= uav_writedata[9].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[10] <= uav_writedata[10].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[11] <= uav_writedata[11].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[12] <= uav_writedata[12].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[13] <= uav_writedata[13].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[14] <= uav_writedata[14].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[15] <= uav_writedata[15].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[16] <= uav_writedata[16].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[17] <= uav_writedata[17].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[18] <= uav_writedata[18].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[19] <= uav_writedata[19].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[20] <= uav_writedata[20].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[21] <= uav_writedata[21].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[22] <= uav_writedata[22].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[23] <= uav_writedata[23].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[24] <= uav_writedata[24].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[25] <= uav_writedata[25].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[26] <= uav_writedata[26].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[27] <= uav_writedata[27].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[28] <= uav_writedata[28].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[29] <= uav_writedata[29].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[30] <= uav_writedata[30].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[31] <= uav_writedata[31].DB_MAX_OUTPUT_PORT_TYPE +av_write <= uav_write.DB_MAX_OUTPUT_PORT_TYPE +av_read <= uav_read.DB_MAX_OUTPUT_PORT_TYPE +av_burstcount[0] <= uav_burstcount[2].DB_MAX_OUTPUT_PORT_TYPE +av_byteenable[0] <= uav_byteenable[0].DB_MAX_OUTPUT_PORT_TYPE +av_writebyteenable[0] <= av_writebyteenable.DB_MAX_OUTPUT_PORT_TYPE +av_begintransfer <= av_begintransfer.DB_MAX_OUTPUT_PORT_TYPE +av_chipselect <= av_chipselect.DB_MAX_OUTPUT_PORT_TYPE +av_beginbursttransfer <= av_beginbursttransfer.DB_MAX_OUTPUT_PORT_TYPE +av_lock <= uav_lock.DB_MAX_OUTPUT_PORT_TYPE +av_clken <= +av_debugaccess <= uav_debugaccess.DB_MAX_OUTPUT_PORT_TYPE +av_outputenable <= av_outputenable.DB_MAX_OUTPUT_PORT_TYPE +av_readdata[0] => av_readdata_pre[0].DATAIN +av_readdata[1] => av_readdata_pre[1].DATAIN +av_readdata[2] => av_readdata_pre[2].DATAIN +av_readdata[3] => av_readdata_pre[3].DATAIN +av_readdata[4] => av_readdata_pre[4].DATAIN +av_readdata[5] => av_readdata_pre[5].DATAIN +av_readdata[6] => av_readdata_pre[6].DATAIN +av_readdata[7] => av_readdata_pre[7].DATAIN +av_readdata[8] => av_readdata_pre[8].DATAIN +av_readdata[9] => av_readdata_pre[9].DATAIN +av_readdata[10] => av_readdata_pre[10].DATAIN +av_readdata[11] => av_readdata_pre[11].DATAIN +av_readdata[12] => av_readdata_pre[12].DATAIN +av_readdata[13] => av_readdata_pre[13].DATAIN +av_readdata[14] => av_readdata_pre[14].DATAIN +av_readdata[15] => av_readdata_pre[15].DATAIN +av_readdata[16] => av_readdata_pre[16].DATAIN +av_readdata[17] => av_readdata_pre[17].DATAIN +av_readdata[18] => av_readdata_pre[18].DATAIN +av_readdata[19] => av_readdata_pre[19].DATAIN +av_readdata[20] => av_readdata_pre[20].DATAIN +av_readdata[21] => av_readdata_pre[21].DATAIN +av_readdata[22] => av_readdata_pre[22].DATAIN +av_readdata[23] => av_readdata_pre[23].DATAIN +av_readdata[24] => av_readdata_pre[24].DATAIN +av_readdata[25] => av_readdata_pre[25].DATAIN +av_readdata[26] => av_readdata_pre[26].DATAIN +av_readdata[27] => av_readdata_pre[27].DATAIN +av_readdata[28] => av_readdata_pre[28].DATAIN +av_readdata[29] => av_readdata_pre[29].DATAIN +av_readdata[30] => av_readdata_pre[30].DATAIN +av_readdata[31] => av_readdata_pre[31].DATAIN +av_readdatavalid => ~NO_FANOUT~ +av_waitrequest => always18.IN1 +av_waitrequest => end_begintransfer.OUTPUTSELECT +av_waitrequest => uav_waitrequest.DATAIN +av_waitrequest => read_latency_shift_reg.IN1 +av_response[0] => ~NO_FANOUT~ +av_response[1] => ~NO_FANOUT~ +av_writeresponserequest <= uav_writeresponserequest.DB_MAX_OUTPUT_PORT_TYPE +av_writeresponsevalid => uav_writeresponsevalid.DATAIN + + +|lights|nios_system:NiosII|altera_merlin_slave_translator:ledrs_s1_translator +clk => in_transfer.CLK +clk => end_beginbursttransfer.CLK +clk => end_begintransfer.CLK +clk => av_chipselect_pre.CLK +clk => av_outputenable_pre.CLK +clk => read_latency_shift_reg[0].CLK +clk => av_readdata_pre[0].CLK +clk => av_readdata_pre[1].CLK +clk => av_readdata_pre[2].CLK +clk => av_readdata_pre[3].CLK +clk => av_readdata_pre[4].CLK +clk => av_readdata_pre[5].CLK +clk => av_readdata_pre[6].CLK +clk => av_readdata_pre[7].CLK +clk => av_readdata_pre[8].CLK +clk => av_readdata_pre[9].CLK +clk => av_readdata_pre[10].CLK +clk => av_readdata_pre[11].CLK +clk => av_readdata_pre[12].CLK +clk => av_readdata_pre[13].CLK +clk => av_readdata_pre[14].CLK +clk => av_readdata_pre[15].CLK +clk => av_readdata_pre[16].CLK +clk => av_readdata_pre[17].CLK +clk => av_readdata_pre[18].CLK +clk => av_readdata_pre[19].CLK +clk => av_readdata_pre[20].CLK +clk => av_readdata_pre[21].CLK +clk => av_readdata_pre[22].CLK +clk => av_readdata_pre[23].CLK +clk => av_readdata_pre[24].CLK +clk => av_readdata_pre[25].CLK +clk => av_readdata_pre[26].CLK +clk => av_readdata_pre[27].CLK +clk => av_readdata_pre[28].CLK +clk => av_readdata_pre[29].CLK +clk => av_readdata_pre[30].CLK +clk => av_readdata_pre[31].CLK +clk => waitrequest_reset_override.CLK +clk => wait_latency_counter[0].CLK +clk => wait_latency_counter[1].CLK +reset => in_transfer.ACLR +reset => end_beginbursttransfer.ACLR +reset => end_begintransfer.ACLR +reset => av_chipselect_pre.ACLR +reset => av_outputenable_pre.ACLR +reset => read_latency_shift_reg[0].ACLR +reset => av_readdata_pre[0].ACLR +reset => av_readdata_pre[1].ACLR +reset => av_readdata_pre[2].ACLR +reset => av_readdata_pre[3].ACLR +reset => av_readdata_pre[4].ACLR +reset => av_readdata_pre[5].ACLR +reset => av_readdata_pre[6].ACLR +reset => av_readdata_pre[7].ACLR +reset => av_readdata_pre[8].ACLR +reset => av_readdata_pre[9].ACLR +reset => av_readdata_pre[10].ACLR +reset => av_readdata_pre[11].ACLR +reset => av_readdata_pre[12].ACLR +reset => av_readdata_pre[13].ACLR +reset => av_readdata_pre[14].ACLR +reset => av_readdata_pre[15].ACLR +reset => av_readdata_pre[16].ACLR +reset => av_readdata_pre[17].ACLR +reset => av_readdata_pre[18].ACLR +reset => av_readdata_pre[19].ACLR +reset => av_readdata_pre[20].ACLR +reset => av_readdata_pre[21].ACLR +reset => av_readdata_pre[22].ACLR +reset => av_readdata_pre[23].ACLR +reset => av_readdata_pre[24].ACLR +reset => av_readdata_pre[25].ACLR +reset => av_readdata_pre[26].ACLR +reset => av_readdata_pre[27].ACLR +reset => av_readdata_pre[28].ACLR +reset => av_readdata_pre[29].ACLR +reset => av_readdata_pre[30].ACLR +reset => av_readdata_pre[31].ACLR +reset => waitrequest_reset_override.PRESET +reset => wait_latency_counter[0].ACLR +reset => wait_latency_counter[1].ACLR +uav_address[0] => ~NO_FANOUT~ +uav_address[1] => ~NO_FANOUT~ +uav_address[2] => av_address[0].DATAIN +uav_address[3] => av_address[1].DATAIN +uav_address[4] => ~NO_FANOUT~ +uav_address[5] => ~NO_FANOUT~ +uav_address[6] => ~NO_FANOUT~ +uav_address[7] => ~NO_FANOUT~ +uav_address[8] => ~NO_FANOUT~ +uav_address[9] => ~NO_FANOUT~ +uav_address[10] => ~NO_FANOUT~ +uav_address[11] => ~NO_FANOUT~ +uav_address[12] => ~NO_FANOUT~ +uav_address[13] => ~NO_FANOUT~ +uav_address[14] => ~NO_FANOUT~ +uav_address[15] => ~NO_FANOUT~ +uav_address[16] => ~NO_FANOUT~ +uav_address[17] => ~NO_FANOUT~ +uav_address[18] => ~NO_FANOUT~ +uav_writedata[0] => av_writedata[0].DATAIN +uav_writedata[1] => av_writedata[1].DATAIN +uav_writedata[2] => av_writedata[2].DATAIN +uav_writedata[3] => av_writedata[3].DATAIN +uav_writedata[4] => av_writedata[4].DATAIN +uav_writedata[5] => av_writedata[5].DATAIN +uav_writedata[6] => av_writedata[6].DATAIN +uav_writedata[7] => av_writedata[7].DATAIN +uav_writedata[8] => av_writedata[8].DATAIN +uav_writedata[9] => av_writedata[9].DATAIN +uav_writedata[10] => av_writedata[10].DATAIN +uav_writedata[11] => av_writedata[11].DATAIN +uav_writedata[12] => av_writedata[12].DATAIN +uav_writedata[13] => av_writedata[13].DATAIN +uav_writedata[14] => av_writedata[14].DATAIN +uav_writedata[15] => av_writedata[15].DATAIN +uav_writedata[16] => av_writedata[16].DATAIN +uav_writedata[17] => av_writedata[17].DATAIN +uav_writedata[18] => av_writedata[18].DATAIN +uav_writedata[19] => av_writedata[19].DATAIN +uav_writedata[20] => av_writedata[20].DATAIN +uav_writedata[21] => av_writedata[21].DATAIN +uav_writedata[22] => av_writedata[22].DATAIN +uav_writedata[23] => av_writedata[23].DATAIN +uav_writedata[24] => av_writedata[24].DATAIN +uav_writedata[25] => av_writedata[25].DATAIN +uav_writedata[26] => av_writedata[26].DATAIN +uav_writedata[27] => av_writedata[27].DATAIN +uav_writedata[28] => av_writedata[28].DATAIN +uav_writedata[29] => av_writedata[29].DATAIN +uav_writedata[30] => av_writedata[30].DATAIN +uav_writedata[31] => av_writedata[31].DATAIN +uav_write => av_writebyteenable.IN0 +uav_write => av_write.IN1 +uav_write => av_waitrequest_generated.OUTPUTSELECT +uav_write => av_begintransfer.IN0 +uav_write => end_beginbursttransfer.IN1 +uav_write => always20.IN1 +uav_write => in_transfer.OUTPUTSELECT +uav_read => av_read.IN1 +uav_read => read_latency_shift_reg.IN1 +uav_read => av_outputenable.OUTPUTSELECT +uav_read => av_begintransfer.IN1 +uav_read => av_beginbursttransfer.OUTPUTSELECT +uav_burstcount[0] => Equal2.IN3 +uav_burstcount[1] => Equal2.IN2 +uav_burstcount[2] => av_burstcount[0].DATAIN +uav_burstcount[2] => Equal2.IN4 +uav_byteenable[0] => av_writebyteenable.IN1 +uav_byteenable[0] => av_byteenable[0].DATAIN +uav_byteenable[1] => ~NO_FANOUT~ +uav_byteenable[2] => ~NO_FANOUT~ +uav_byteenable[3] => ~NO_FANOUT~ +uav_lock => av_lock.DATAIN +uav_debugaccess => av_debugaccess.DATAIN +uav_clken => ~NO_FANOUT~ +uav_readdatavalid <= read_latency_shift_reg[0].DB_MAX_OUTPUT_PORT_TYPE +uav_waitrequest <= uav_waitrequest.DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[0] <= av_readdata_pre[0].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[1] <= av_readdata_pre[1].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[2] <= av_readdata_pre[2].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[3] <= av_readdata_pre[3].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[4] <= av_readdata_pre[4].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[5] <= av_readdata_pre[5].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[6] <= av_readdata_pre[6].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[7] <= av_readdata_pre[7].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[8] <= av_readdata_pre[8].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[9] <= av_readdata_pre[9].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[10] <= av_readdata_pre[10].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[11] <= av_readdata_pre[11].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[12] <= av_readdata_pre[12].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[13] <= av_readdata_pre[13].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[14] <= av_readdata_pre[14].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[15] <= av_readdata_pre[15].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[16] <= av_readdata_pre[16].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[17] <= av_readdata_pre[17].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[18] <= av_readdata_pre[18].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[19] <= av_readdata_pre[19].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[20] <= av_readdata_pre[20].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[21] <= av_readdata_pre[21].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[22] <= av_readdata_pre[22].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[23] <= av_readdata_pre[23].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[24] <= av_readdata_pre[24].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[25] <= av_readdata_pre[25].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[26] <= av_readdata_pre[26].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[27] <= av_readdata_pre[27].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[28] <= av_readdata_pre[28].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[29] <= av_readdata_pre[29].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[30] <= av_readdata_pre[30].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[31] <= av_readdata_pre[31].DB_MAX_OUTPUT_PORT_TYPE +uav_response[0] <= +uav_response[1] <= +uav_writeresponserequest => av_writeresponserequest.DATAIN +uav_writeresponsevalid <= av_writeresponsevalid.DB_MAX_OUTPUT_PORT_TYPE +av_address[0] <= uav_address[2].DB_MAX_OUTPUT_PORT_TYPE +av_address[1] <= uav_address[3].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[0] <= uav_writedata[0].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[1] <= uav_writedata[1].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[2] <= uav_writedata[2].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[3] <= uav_writedata[3].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[4] <= uav_writedata[4].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[5] <= uav_writedata[5].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[6] <= uav_writedata[6].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[7] <= uav_writedata[7].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[8] <= uav_writedata[8].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[9] <= uav_writedata[9].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[10] <= uav_writedata[10].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[11] <= uav_writedata[11].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[12] <= uav_writedata[12].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[13] <= uav_writedata[13].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[14] <= uav_writedata[14].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[15] <= uav_writedata[15].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[16] <= uav_writedata[16].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[17] <= uav_writedata[17].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[18] <= uav_writedata[18].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[19] <= uav_writedata[19].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[20] <= uav_writedata[20].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[21] <= uav_writedata[21].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[22] <= uav_writedata[22].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[23] <= uav_writedata[23].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[24] <= uav_writedata[24].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[25] <= uav_writedata[25].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[26] <= uav_writedata[26].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[27] <= uav_writedata[27].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[28] <= uav_writedata[28].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[29] <= uav_writedata[29].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[30] <= uav_writedata[30].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[31] <= uav_writedata[31].DB_MAX_OUTPUT_PORT_TYPE +av_write <= av_write.DB_MAX_OUTPUT_PORT_TYPE +av_read <= av_read.DB_MAX_OUTPUT_PORT_TYPE +av_burstcount[0] <= uav_burstcount[2].DB_MAX_OUTPUT_PORT_TYPE +av_byteenable[0] <= uav_byteenable[0].DB_MAX_OUTPUT_PORT_TYPE +av_writebyteenable[0] <= av_writebyteenable.DB_MAX_OUTPUT_PORT_TYPE +av_begintransfer <= av_begintransfer.DB_MAX_OUTPUT_PORT_TYPE +av_chipselect <= av_chipselect.DB_MAX_OUTPUT_PORT_TYPE +av_beginbursttransfer <= av_beginbursttransfer.DB_MAX_OUTPUT_PORT_TYPE +av_lock <= uav_lock.DB_MAX_OUTPUT_PORT_TYPE +av_clken <= +av_debugaccess <= uav_debugaccess.DB_MAX_OUTPUT_PORT_TYPE +av_outputenable <= av_outputenable.DB_MAX_OUTPUT_PORT_TYPE +av_readdata[0] => av_readdata_pre[0].DATAIN +av_readdata[1] => av_readdata_pre[1].DATAIN +av_readdata[2] => av_readdata_pre[2].DATAIN +av_readdata[3] => av_readdata_pre[3].DATAIN +av_readdata[4] => av_readdata_pre[4].DATAIN +av_readdata[5] => av_readdata_pre[5].DATAIN +av_readdata[6] => av_readdata_pre[6].DATAIN +av_readdata[7] => av_readdata_pre[7].DATAIN +av_readdata[8] => av_readdata_pre[8].DATAIN +av_readdata[9] => av_readdata_pre[9].DATAIN +av_readdata[10] => av_readdata_pre[10].DATAIN +av_readdata[11] => av_readdata_pre[11].DATAIN +av_readdata[12] => av_readdata_pre[12].DATAIN +av_readdata[13] => av_readdata_pre[13].DATAIN +av_readdata[14] => av_readdata_pre[14].DATAIN +av_readdata[15] => av_readdata_pre[15].DATAIN +av_readdata[16] => av_readdata_pre[16].DATAIN +av_readdata[17] => av_readdata_pre[17].DATAIN +av_readdata[18] => av_readdata_pre[18].DATAIN +av_readdata[19] => av_readdata_pre[19].DATAIN +av_readdata[20] => av_readdata_pre[20].DATAIN +av_readdata[21] => av_readdata_pre[21].DATAIN +av_readdata[22] => av_readdata_pre[22].DATAIN +av_readdata[23] => av_readdata_pre[23].DATAIN +av_readdata[24] => av_readdata_pre[24].DATAIN +av_readdata[25] => av_readdata_pre[25].DATAIN +av_readdata[26] => av_readdata_pre[26].DATAIN +av_readdata[27] => av_readdata_pre[27].DATAIN +av_readdata[28] => av_readdata_pre[28].DATAIN +av_readdata[29] => av_readdata_pre[29].DATAIN +av_readdata[30] => av_readdata_pre[30].DATAIN +av_readdata[31] => av_readdata_pre[31].DATAIN +av_readdatavalid => ~NO_FANOUT~ +av_waitrequest => ~NO_FANOUT~ +av_response[0] => ~NO_FANOUT~ +av_response[1] => ~NO_FANOUT~ +av_writeresponserequest <= uav_writeresponserequest.DB_MAX_OUTPUT_PORT_TYPE +av_writeresponsevalid => uav_writeresponsevalid.DATAIN + + +|lights|nios_system:NiosII|altera_merlin_slave_translator:switches_s1_translator +clk => in_transfer.CLK +clk => end_beginbursttransfer.CLK +clk => end_begintransfer.CLK +clk => av_chipselect_pre.CLK +clk => av_outputenable_pre.CLK +clk => read_latency_shift_reg[0].CLK +clk => av_readdata_pre[0].CLK +clk => av_readdata_pre[1].CLK +clk => av_readdata_pre[2].CLK +clk => av_readdata_pre[3].CLK +clk => av_readdata_pre[4].CLK +clk => av_readdata_pre[5].CLK +clk => av_readdata_pre[6].CLK +clk => av_readdata_pre[7].CLK +clk => av_readdata_pre[8].CLK +clk => av_readdata_pre[9].CLK +clk => av_readdata_pre[10].CLK +clk => av_readdata_pre[11].CLK +clk => av_readdata_pre[12].CLK +clk => av_readdata_pre[13].CLK +clk => av_readdata_pre[14].CLK +clk => av_readdata_pre[15].CLK +clk => av_readdata_pre[16].CLK +clk => av_readdata_pre[17].CLK +clk => av_readdata_pre[18].CLK +clk => av_readdata_pre[19].CLK +clk => av_readdata_pre[20].CLK +clk => av_readdata_pre[21].CLK +clk => av_readdata_pre[22].CLK +clk => av_readdata_pre[23].CLK +clk => av_readdata_pre[24].CLK +clk => av_readdata_pre[25].CLK +clk => av_readdata_pre[26].CLK +clk => av_readdata_pre[27].CLK +clk => av_readdata_pre[28].CLK +clk => av_readdata_pre[29].CLK +clk => av_readdata_pre[30].CLK +clk => av_readdata_pre[31].CLK +clk => waitrequest_reset_override.CLK +clk => wait_latency_counter[0].CLK +clk => wait_latency_counter[1].CLK +reset => in_transfer.ACLR +reset => end_beginbursttransfer.ACLR +reset => end_begintransfer.ACLR +reset => av_chipselect_pre.ACLR +reset => av_outputenable_pre.ACLR +reset => read_latency_shift_reg[0].ACLR +reset => av_readdata_pre[0].ACLR +reset => av_readdata_pre[1].ACLR +reset => av_readdata_pre[2].ACLR +reset => av_readdata_pre[3].ACLR +reset => av_readdata_pre[4].ACLR +reset => av_readdata_pre[5].ACLR +reset => av_readdata_pre[6].ACLR +reset => av_readdata_pre[7].ACLR +reset => av_readdata_pre[8].ACLR +reset => av_readdata_pre[9].ACLR +reset => av_readdata_pre[10].ACLR +reset => av_readdata_pre[11].ACLR +reset => av_readdata_pre[12].ACLR +reset => av_readdata_pre[13].ACLR +reset => av_readdata_pre[14].ACLR +reset => av_readdata_pre[15].ACLR +reset => av_readdata_pre[16].ACLR +reset => av_readdata_pre[17].ACLR +reset => av_readdata_pre[18].ACLR +reset => av_readdata_pre[19].ACLR +reset => av_readdata_pre[20].ACLR +reset => av_readdata_pre[21].ACLR +reset => av_readdata_pre[22].ACLR +reset => av_readdata_pre[23].ACLR +reset => av_readdata_pre[24].ACLR +reset => av_readdata_pre[25].ACLR +reset => av_readdata_pre[26].ACLR +reset => av_readdata_pre[27].ACLR +reset => av_readdata_pre[28].ACLR +reset => av_readdata_pre[29].ACLR +reset => av_readdata_pre[30].ACLR +reset => av_readdata_pre[31].ACLR +reset => waitrequest_reset_override.PRESET +reset => wait_latency_counter[0].ACLR +reset => wait_latency_counter[1].ACLR +uav_address[0] => ~NO_FANOUT~ +uav_address[1] => ~NO_FANOUT~ +uav_address[2] => av_address[0].DATAIN +uav_address[3] => av_address[1].DATAIN +uav_address[4] => ~NO_FANOUT~ +uav_address[5] => ~NO_FANOUT~ +uav_address[6] => ~NO_FANOUT~ +uav_address[7] => ~NO_FANOUT~ +uav_address[8] => ~NO_FANOUT~ +uav_address[9] => ~NO_FANOUT~ +uav_address[10] => ~NO_FANOUT~ +uav_address[11] => ~NO_FANOUT~ +uav_address[12] => ~NO_FANOUT~ +uav_address[13] => ~NO_FANOUT~ +uav_address[14] => ~NO_FANOUT~ +uav_address[15] => ~NO_FANOUT~ +uav_address[16] => ~NO_FANOUT~ +uav_address[17] => ~NO_FANOUT~ +uav_address[18] => ~NO_FANOUT~ +uav_writedata[0] => av_writedata[0].DATAIN +uav_writedata[1] => av_writedata[1].DATAIN +uav_writedata[2] => av_writedata[2].DATAIN +uav_writedata[3] => av_writedata[3].DATAIN +uav_writedata[4] => av_writedata[4].DATAIN +uav_writedata[5] => av_writedata[5].DATAIN +uav_writedata[6] => av_writedata[6].DATAIN +uav_writedata[7] => av_writedata[7].DATAIN +uav_writedata[8] => av_writedata[8].DATAIN +uav_writedata[9] => av_writedata[9].DATAIN +uav_writedata[10] => av_writedata[10].DATAIN +uav_writedata[11] => av_writedata[11].DATAIN +uav_writedata[12] => av_writedata[12].DATAIN +uav_writedata[13] => av_writedata[13].DATAIN +uav_writedata[14] => av_writedata[14].DATAIN +uav_writedata[15] => av_writedata[15].DATAIN +uav_writedata[16] => av_writedata[16].DATAIN +uav_writedata[17] => av_writedata[17].DATAIN +uav_writedata[18] => av_writedata[18].DATAIN +uav_writedata[19] => av_writedata[19].DATAIN +uav_writedata[20] => av_writedata[20].DATAIN +uav_writedata[21] => av_writedata[21].DATAIN +uav_writedata[22] => av_writedata[22].DATAIN +uav_writedata[23] => av_writedata[23].DATAIN +uav_writedata[24] => av_writedata[24].DATAIN +uav_writedata[25] => av_writedata[25].DATAIN +uav_writedata[26] => av_writedata[26].DATAIN +uav_writedata[27] => av_writedata[27].DATAIN +uav_writedata[28] => av_writedata[28].DATAIN +uav_writedata[29] => av_writedata[29].DATAIN +uav_writedata[30] => av_writedata[30].DATAIN +uav_writedata[31] => av_writedata[31].DATAIN +uav_write => av_writebyteenable.IN0 +uav_write => av_write.IN1 +uav_write => av_waitrequest_generated.OUTPUTSELECT +uav_write => av_begintransfer.IN0 +uav_write => end_beginbursttransfer.IN1 +uav_write => always20.IN1 +uav_write => in_transfer.OUTPUTSELECT +uav_read => av_read.IN1 +uav_read => read_latency_shift_reg.IN1 +uav_read => av_outputenable.OUTPUTSELECT +uav_read => av_begintransfer.IN1 +uav_read => av_beginbursttransfer.OUTPUTSELECT +uav_burstcount[0] => Equal2.IN3 +uav_burstcount[1] => Equal2.IN2 +uav_burstcount[2] => av_burstcount[0].DATAIN +uav_burstcount[2] => Equal2.IN4 +uav_byteenable[0] => av_writebyteenable.IN1 +uav_byteenable[0] => av_byteenable[0].DATAIN +uav_byteenable[1] => ~NO_FANOUT~ +uav_byteenable[2] => ~NO_FANOUT~ +uav_byteenable[3] => ~NO_FANOUT~ +uav_lock => av_lock.DATAIN +uav_debugaccess => av_debugaccess.DATAIN +uav_clken => ~NO_FANOUT~ +uav_readdatavalid <= read_latency_shift_reg[0].DB_MAX_OUTPUT_PORT_TYPE +uav_waitrequest <= uav_waitrequest.DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[0] <= av_readdata_pre[0].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[1] <= av_readdata_pre[1].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[2] <= av_readdata_pre[2].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[3] <= av_readdata_pre[3].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[4] <= av_readdata_pre[4].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[5] <= av_readdata_pre[5].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[6] <= av_readdata_pre[6].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[7] <= av_readdata_pre[7].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[8] <= av_readdata_pre[8].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[9] <= av_readdata_pre[9].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[10] <= av_readdata_pre[10].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[11] <= av_readdata_pre[11].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[12] <= av_readdata_pre[12].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[13] <= av_readdata_pre[13].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[14] <= av_readdata_pre[14].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[15] <= av_readdata_pre[15].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[16] <= av_readdata_pre[16].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[17] <= av_readdata_pre[17].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[18] <= av_readdata_pre[18].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[19] <= av_readdata_pre[19].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[20] <= av_readdata_pre[20].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[21] <= av_readdata_pre[21].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[22] <= av_readdata_pre[22].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[23] <= av_readdata_pre[23].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[24] <= av_readdata_pre[24].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[25] <= av_readdata_pre[25].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[26] <= av_readdata_pre[26].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[27] <= av_readdata_pre[27].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[28] <= av_readdata_pre[28].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[29] <= av_readdata_pre[29].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[30] <= av_readdata_pre[30].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[31] <= av_readdata_pre[31].DB_MAX_OUTPUT_PORT_TYPE +uav_response[0] <= +uav_response[1] <= +uav_writeresponserequest => av_writeresponserequest.DATAIN +uav_writeresponsevalid <= av_writeresponsevalid.DB_MAX_OUTPUT_PORT_TYPE +av_address[0] <= uav_address[2].DB_MAX_OUTPUT_PORT_TYPE +av_address[1] <= uav_address[3].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[0] <= uav_writedata[0].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[1] <= uav_writedata[1].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[2] <= uav_writedata[2].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[3] <= uav_writedata[3].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[4] <= uav_writedata[4].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[5] <= uav_writedata[5].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[6] <= uav_writedata[6].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[7] <= uav_writedata[7].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[8] <= uav_writedata[8].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[9] <= uav_writedata[9].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[10] <= uav_writedata[10].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[11] <= uav_writedata[11].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[12] <= uav_writedata[12].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[13] <= uav_writedata[13].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[14] <= uav_writedata[14].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[15] <= uav_writedata[15].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[16] <= uav_writedata[16].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[17] <= uav_writedata[17].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[18] <= uav_writedata[18].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[19] <= uav_writedata[19].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[20] <= uav_writedata[20].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[21] <= uav_writedata[21].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[22] <= uav_writedata[22].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[23] <= uav_writedata[23].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[24] <= uav_writedata[24].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[25] <= uav_writedata[25].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[26] <= uav_writedata[26].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[27] <= uav_writedata[27].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[28] <= uav_writedata[28].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[29] <= uav_writedata[29].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[30] <= uav_writedata[30].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[31] <= uav_writedata[31].DB_MAX_OUTPUT_PORT_TYPE +av_write <= av_write.DB_MAX_OUTPUT_PORT_TYPE +av_read <= av_read.DB_MAX_OUTPUT_PORT_TYPE +av_burstcount[0] <= uav_burstcount[2].DB_MAX_OUTPUT_PORT_TYPE +av_byteenable[0] <= uav_byteenable[0].DB_MAX_OUTPUT_PORT_TYPE +av_writebyteenable[0] <= av_writebyteenable.DB_MAX_OUTPUT_PORT_TYPE +av_begintransfer <= av_begintransfer.DB_MAX_OUTPUT_PORT_TYPE +av_chipselect <= av_chipselect.DB_MAX_OUTPUT_PORT_TYPE +av_beginbursttransfer <= av_beginbursttransfer.DB_MAX_OUTPUT_PORT_TYPE +av_lock <= uav_lock.DB_MAX_OUTPUT_PORT_TYPE +av_clken <= +av_debugaccess <= uav_debugaccess.DB_MAX_OUTPUT_PORT_TYPE +av_outputenable <= av_outputenable.DB_MAX_OUTPUT_PORT_TYPE +av_readdata[0] => av_readdata_pre[0].DATAIN +av_readdata[1] => av_readdata_pre[1].DATAIN +av_readdata[2] => av_readdata_pre[2].DATAIN +av_readdata[3] => av_readdata_pre[3].DATAIN +av_readdata[4] => av_readdata_pre[4].DATAIN +av_readdata[5] => av_readdata_pre[5].DATAIN +av_readdata[6] => av_readdata_pre[6].DATAIN +av_readdata[7] => av_readdata_pre[7].DATAIN +av_readdata[8] => av_readdata_pre[8].DATAIN +av_readdata[9] => av_readdata_pre[9].DATAIN +av_readdata[10] => av_readdata_pre[10].DATAIN +av_readdata[11] => av_readdata_pre[11].DATAIN +av_readdata[12] => av_readdata_pre[12].DATAIN +av_readdata[13] => av_readdata_pre[13].DATAIN +av_readdata[14] => av_readdata_pre[14].DATAIN +av_readdata[15] => av_readdata_pre[15].DATAIN +av_readdata[16] => av_readdata_pre[16].DATAIN +av_readdata[17] => av_readdata_pre[17].DATAIN +av_readdata[18] => av_readdata_pre[18].DATAIN +av_readdata[19] => av_readdata_pre[19].DATAIN +av_readdata[20] => av_readdata_pre[20].DATAIN +av_readdata[21] => av_readdata_pre[21].DATAIN +av_readdata[22] => av_readdata_pre[22].DATAIN +av_readdata[23] => av_readdata_pre[23].DATAIN +av_readdata[24] => av_readdata_pre[24].DATAIN +av_readdata[25] => av_readdata_pre[25].DATAIN +av_readdata[26] => av_readdata_pre[26].DATAIN +av_readdata[27] => av_readdata_pre[27].DATAIN +av_readdata[28] => av_readdata_pre[28].DATAIN +av_readdata[29] => av_readdata_pre[29].DATAIN +av_readdata[30] => av_readdata_pre[30].DATAIN +av_readdata[31] => av_readdata_pre[31].DATAIN +av_readdatavalid => ~NO_FANOUT~ +av_waitrequest => ~NO_FANOUT~ +av_response[0] => ~NO_FANOUT~ +av_response[1] => ~NO_FANOUT~ +av_writeresponserequest <= uav_writeresponserequest.DB_MAX_OUTPUT_PORT_TYPE +av_writeresponsevalid => uav_writeresponsevalid.DATAIN + + +|lights|nios_system:NiosII|altera_merlin_slave_translator:push_switches_s1_translator +clk => in_transfer.CLK +clk => end_beginbursttransfer.CLK +clk => end_begintransfer.CLK +clk => av_chipselect_pre.CLK +clk => av_outputenable_pre.CLK +clk => read_latency_shift_reg[0].CLK +clk => av_readdata_pre[0].CLK +clk => av_readdata_pre[1].CLK +clk => av_readdata_pre[2].CLK +clk => av_readdata_pre[3].CLK +clk => av_readdata_pre[4].CLK +clk => av_readdata_pre[5].CLK +clk => av_readdata_pre[6].CLK +clk => av_readdata_pre[7].CLK +clk => av_readdata_pre[8].CLK +clk => av_readdata_pre[9].CLK +clk => av_readdata_pre[10].CLK +clk => av_readdata_pre[11].CLK +clk => av_readdata_pre[12].CLK +clk => av_readdata_pre[13].CLK +clk => av_readdata_pre[14].CLK +clk => av_readdata_pre[15].CLK +clk => av_readdata_pre[16].CLK +clk => av_readdata_pre[17].CLK +clk => av_readdata_pre[18].CLK +clk => av_readdata_pre[19].CLK +clk => av_readdata_pre[20].CLK +clk => av_readdata_pre[21].CLK +clk => av_readdata_pre[22].CLK +clk => av_readdata_pre[23].CLK +clk => av_readdata_pre[24].CLK +clk => av_readdata_pre[25].CLK +clk => av_readdata_pre[26].CLK +clk => av_readdata_pre[27].CLK +clk => av_readdata_pre[28].CLK +clk => av_readdata_pre[29].CLK +clk => av_readdata_pre[30].CLK +clk => av_readdata_pre[31].CLK +clk => waitrequest_reset_override.CLK +clk => wait_latency_counter[0].CLK +clk => wait_latency_counter[1].CLK +reset => in_transfer.ACLR +reset => end_beginbursttransfer.ACLR +reset => end_begintransfer.ACLR +reset => av_chipselect_pre.ACLR +reset => av_outputenable_pre.ACLR +reset => read_latency_shift_reg[0].ACLR +reset => av_readdata_pre[0].ACLR +reset => av_readdata_pre[1].ACLR +reset => av_readdata_pre[2].ACLR +reset => av_readdata_pre[3].ACLR +reset => av_readdata_pre[4].ACLR +reset => av_readdata_pre[5].ACLR +reset => av_readdata_pre[6].ACLR +reset => av_readdata_pre[7].ACLR +reset => av_readdata_pre[8].ACLR +reset => av_readdata_pre[9].ACLR +reset => av_readdata_pre[10].ACLR +reset => av_readdata_pre[11].ACLR +reset => av_readdata_pre[12].ACLR +reset => av_readdata_pre[13].ACLR +reset => av_readdata_pre[14].ACLR +reset => av_readdata_pre[15].ACLR +reset => av_readdata_pre[16].ACLR +reset => av_readdata_pre[17].ACLR +reset => av_readdata_pre[18].ACLR +reset => av_readdata_pre[19].ACLR +reset => av_readdata_pre[20].ACLR +reset => av_readdata_pre[21].ACLR +reset => av_readdata_pre[22].ACLR +reset => av_readdata_pre[23].ACLR +reset => av_readdata_pre[24].ACLR +reset => av_readdata_pre[25].ACLR +reset => av_readdata_pre[26].ACLR +reset => av_readdata_pre[27].ACLR +reset => av_readdata_pre[28].ACLR +reset => av_readdata_pre[29].ACLR +reset => av_readdata_pre[30].ACLR +reset => av_readdata_pre[31].ACLR +reset => waitrequest_reset_override.PRESET +reset => wait_latency_counter[0].ACLR +reset => wait_latency_counter[1].ACLR +uav_address[0] => ~NO_FANOUT~ +uav_address[1] => ~NO_FANOUT~ +uav_address[2] => av_address[0].DATAIN +uav_address[3] => av_address[1].DATAIN +uav_address[4] => ~NO_FANOUT~ +uav_address[5] => ~NO_FANOUT~ +uav_address[6] => ~NO_FANOUT~ +uav_address[7] => ~NO_FANOUT~ +uav_address[8] => ~NO_FANOUT~ +uav_address[9] => ~NO_FANOUT~ +uav_address[10] => ~NO_FANOUT~ +uav_address[11] => ~NO_FANOUT~ +uav_address[12] => ~NO_FANOUT~ +uav_address[13] => ~NO_FANOUT~ +uav_address[14] => ~NO_FANOUT~ +uav_address[15] => ~NO_FANOUT~ +uav_address[16] => ~NO_FANOUT~ +uav_address[17] => ~NO_FANOUT~ +uav_address[18] => ~NO_FANOUT~ +uav_writedata[0] => av_writedata[0].DATAIN +uav_writedata[1] => av_writedata[1].DATAIN +uav_writedata[2] => av_writedata[2].DATAIN +uav_writedata[3] => av_writedata[3].DATAIN +uav_writedata[4] => av_writedata[4].DATAIN +uav_writedata[5] => av_writedata[5].DATAIN +uav_writedata[6] => av_writedata[6].DATAIN +uav_writedata[7] => av_writedata[7].DATAIN +uav_writedata[8] => av_writedata[8].DATAIN +uav_writedata[9] => av_writedata[9].DATAIN +uav_writedata[10] => av_writedata[10].DATAIN +uav_writedata[11] => av_writedata[11].DATAIN +uav_writedata[12] => av_writedata[12].DATAIN +uav_writedata[13] => av_writedata[13].DATAIN +uav_writedata[14] => av_writedata[14].DATAIN +uav_writedata[15] => av_writedata[15].DATAIN +uav_writedata[16] => av_writedata[16].DATAIN +uav_writedata[17] => av_writedata[17].DATAIN +uav_writedata[18] => av_writedata[18].DATAIN +uav_writedata[19] => av_writedata[19].DATAIN +uav_writedata[20] => av_writedata[20].DATAIN +uav_writedata[21] => av_writedata[21].DATAIN +uav_writedata[22] => av_writedata[22].DATAIN +uav_writedata[23] => av_writedata[23].DATAIN +uav_writedata[24] => av_writedata[24].DATAIN +uav_writedata[25] => av_writedata[25].DATAIN +uav_writedata[26] => av_writedata[26].DATAIN +uav_writedata[27] => av_writedata[27].DATAIN +uav_writedata[28] => av_writedata[28].DATAIN +uav_writedata[29] => av_writedata[29].DATAIN +uav_writedata[30] => av_writedata[30].DATAIN +uav_writedata[31] => av_writedata[31].DATAIN +uav_write => av_writebyteenable.IN0 +uav_write => av_write.IN1 +uav_write => av_waitrequest_generated.OUTPUTSELECT +uav_write => av_begintransfer.IN0 +uav_write => end_beginbursttransfer.IN1 +uav_write => always20.IN1 +uav_write => in_transfer.OUTPUTSELECT +uav_read => av_read.IN1 +uav_read => read_latency_shift_reg.IN1 +uav_read => av_outputenable.OUTPUTSELECT +uav_read => av_begintransfer.IN1 +uav_read => av_beginbursttransfer.OUTPUTSELECT +uav_burstcount[0] => Equal2.IN3 +uav_burstcount[1] => Equal2.IN2 +uav_burstcount[2] => av_burstcount[0].DATAIN +uav_burstcount[2] => Equal2.IN4 +uav_byteenable[0] => av_writebyteenable.IN1 +uav_byteenable[0] => av_byteenable[0].DATAIN +uav_byteenable[1] => ~NO_FANOUT~ +uav_byteenable[2] => ~NO_FANOUT~ +uav_byteenable[3] => ~NO_FANOUT~ +uav_lock => av_lock.DATAIN +uav_debugaccess => av_debugaccess.DATAIN +uav_clken => ~NO_FANOUT~ +uav_readdatavalid <= read_latency_shift_reg[0].DB_MAX_OUTPUT_PORT_TYPE +uav_waitrequest <= uav_waitrequest.DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[0] <= av_readdata_pre[0].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[1] <= av_readdata_pre[1].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[2] <= av_readdata_pre[2].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[3] <= av_readdata_pre[3].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[4] <= av_readdata_pre[4].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[5] <= av_readdata_pre[5].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[6] <= av_readdata_pre[6].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[7] <= av_readdata_pre[7].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[8] <= av_readdata_pre[8].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[9] <= av_readdata_pre[9].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[10] <= av_readdata_pre[10].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[11] <= av_readdata_pre[11].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[12] <= av_readdata_pre[12].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[13] <= av_readdata_pre[13].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[14] <= av_readdata_pre[14].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[15] <= av_readdata_pre[15].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[16] <= av_readdata_pre[16].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[17] <= av_readdata_pre[17].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[18] <= av_readdata_pre[18].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[19] <= av_readdata_pre[19].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[20] <= av_readdata_pre[20].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[21] <= av_readdata_pre[21].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[22] <= av_readdata_pre[22].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[23] <= av_readdata_pre[23].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[24] <= av_readdata_pre[24].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[25] <= av_readdata_pre[25].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[26] <= av_readdata_pre[26].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[27] <= av_readdata_pre[27].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[28] <= av_readdata_pre[28].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[29] <= av_readdata_pre[29].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[30] <= av_readdata_pre[30].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[31] <= av_readdata_pre[31].DB_MAX_OUTPUT_PORT_TYPE +uav_response[0] <= +uav_response[1] <= +uav_writeresponserequest => av_writeresponserequest.DATAIN +uav_writeresponsevalid <= av_writeresponsevalid.DB_MAX_OUTPUT_PORT_TYPE +av_address[0] <= uav_address[2].DB_MAX_OUTPUT_PORT_TYPE +av_address[1] <= uav_address[3].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[0] <= uav_writedata[0].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[1] <= uav_writedata[1].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[2] <= uav_writedata[2].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[3] <= uav_writedata[3].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[4] <= uav_writedata[4].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[5] <= uav_writedata[5].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[6] <= uav_writedata[6].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[7] <= uav_writedata[7].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[8] <= uav_writedata[8].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[9] <= uav_writedata[9].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[10] <= uav_writedata[10].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[11] <= uav_writedata[11].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[12] <= uav_writedata[12].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[13] <= uav_writedata[13].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[14] <= uav_writedata[14].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[15] <= uav_writedata[15].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[16] <= uav_writedata[16].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[17] <= uav_writedata[17].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[18] <= uav_writedata[18].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[19] <= uav_writedata[19].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[20] <= uav_writedata[20].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[21] <= uav_writedata[21].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[22] <= uav_writedata[22].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[23] <= uav_writedata[23].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[24] <= uav_writedata[24].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[25] <= uav_writedata[25].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[26] <= uav_writedata[26].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[27] <= uav_writedata[27].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[28] <= uav_writedata[28].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[29] <= uav_writedata[29].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[30] <= uav_writedata[30].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[31] <= uav_writedata[31].DB_MAX_OUTPUT_PORT_TYPE +av_write <= av_write.DB_MAX_OUTPUT_PORT_TYPE +av_read <= av_read.DB_MAX_OUTPUT_PORT_TYPE +av_burstcount[0] <= uav_burstcount[2].DB_MAX_OUTPUT_PORT_TYPE +av_byteenable[0] <= uav_byteenable[0].DB_MAX_OUTPUT_PORT_TYPE +av_writebyteenable[0] <= av_writebyteenable.DB_MAX_OUTPUT_PORT_TYPE +av_begintransfer <= av_begintransfer.DB_MAX_OUTPUT_PORT_TYPE +av_chipselect <= av_chipselect.DB_MAX_OUTPUT_PORT_TYPE +av_beginbursttransfer <= av_beginbursttransfer.DB_MAX_OUTPUT_PORT_TYPE +av_lock <= uav_lock.DB_MAX_OUTPUT_PORT_TYPE +av_clken <= +av_debugaccess <= uav_debugaccess.DB_MAX_OUTPUT_PORT_TYPE +av_outputenable <= av_outputenable.DB_MAX_OUTPUT_PORT_TYPE +av_readdata[0] => av_readdata_pre[0].DATAIN +av_readdata[1] => av_readdata_pre[1].DATAIN +av_readdata[2] => av_readdata_pre[2].DATAIN +av_readdata[3] => av_readdata_pre[3].DATAIN +av_readdata[4] => av_readdata_pre[4].DATAIN +av_readdata[5] => av_readdata_pre[5].DATAIN +av_readdata[6] => av_readdata_pre[6].DATAIN +av_readdata[7] => av_readdata_pre[7].DATAIN +av_readdata[8] => av_readdata_pre[8].DATAIN +av_readdata[9] => av_readdata_pre[9].DATAIN +av_readdata[10] => av_readdata_pre[10].DATAIN +av_readdata[11] => av_readdata_pre[11].DATAIN +av_readdata[12] => av_readdata_pre[12].DATAIN +av_readdata[13] => av_readdata_pre[13].DATAIN +av_readdata[14] => av_readdata_pre[14].DATAIN +av_readdata[15] => av_readdata_pre[15].DATAIN +av_readdata[16] => av_readdata_pre[16].DATAIN +av_readdata[17] => av_readdata_pre[17].DATAIN +av_readdata[18] => av_readdata_pre[18].DATAIN +av_readdata[19] => av_readdata_pre[19].DATAIN +av_readdata[20] => av_readdata_pre[20].DATAIN +av_readdata[21] => av_readdata_pre[21].DATAIN +av_readdata[22] => av_readdata_pre[22].DATAIN +av_readdata[23] => av_readdata_pre[23].DATAIN +av_readdata[24] => av_readdata_pre[24].DATAIN +av_readdata[25] => av_readdata_pre[25].DATAIN +av_readdata[26] => av_readdata_pre[26].DATAIN +av_readdata[27] => av_readdata_pre[27].DATAIN +av_readdata[28] => av_readdata_pre[28].DATAIN +av_readdata[29] => av_readdata_pre[29].DATAIN +av_readdata[30] => av_readdata_pre[30].DATAIN +av_readdata[31] => av_readdata_pre[31].DATAIN +av_readdatavalid => ~NO_FANOUT~ +av_waitrequest => ~NO_FANOUT~ +av_response[0] => ~NO_FANOUT~ +av_response[1] => ~NO_FANOUT~ +av_writeresponserequest <= uav_writeresponserequest.DB_MAX_OUTPUT_PORT_TYPE +av_writeresponsevalid => uav_writeresponsevalid.DATAIN + + +|lights|nios_system:NiosII|altera_merlin_slave_translator:hex0_s1_translator +clk => in_transfer.CLK +clk => end_beginbursttransfer.CLK +clk => end_begintransfer.CLK +clk => av_chipselect_pre.CLK +clk => av_outputenable_pre.CLK +clk => read_latency_shift_reg[0].CLK +clk => av_readdata_pre[0].CLK +clk => av_readdata_pre[1].CLK +clk => av_readdata_pre[2].CLK +clk => av_readdata_pre[3].CLK +clk => av_readdata_pre[4].CLK +clk => av_readdata_pre[5].CLK +clk => av_readdata_pre[6].CLK +clk => av_readdata_pre[7].CLK +clk => av_readdata_pre[8].CLK +clk => av_readdata_pre[9].CLK +clk => av_readdata_pre[10].CLK +clk => av_readdata_pre[11].CLK +clk => av_readdata_pre[12].CLK +clk => av_readdata_pre[13].CLK +clk => av_readdata_pre[14].CLK +clk => av_readdata_pre[15].CLK +clk => av_readdata_pre[16].CLK +clk => av_readdata_pre[17].CLK +clk => av_readdata_pre[18].CLK +clk => av_readdata_pre[19].CLK +clk => av_readdata_pre[20].CLK +clk => av_readdata_pre[21].CLK +clk => av_readdata_pre[22].CLK +clk => av_readdata_pre[23].CLK +clk => av_readdata_pre[24].CLK +clk => av_readdata_pre[25].CLK +clk => av_readdata_pre[26].CLK +clk => av_readdata_pre[27].CLK +clk => av_readdata_pre[28].CLK +clk => av_readdata_pre[29].CLK +clk => av_readdata_pre[30].CLK +clk => av_readdata_pre[31].CLK +clk => waitrequest_reset_override.CLK +clk => wait_latency_counter[0].CLK +clk => wait_latency_counter[1].CLK +reset => in_transfer.ACLR +reset => end_beginbursttransfer.ACLR +reset => end_begintransfer.ACLR +reset => av_chipselect_pre.ACLR +reset => av_outputenable_pre.ACLR +reset => read_latency_shift_reg[0].ACLR +reset => av_readdata_pre[0].ACLR +reset => av_readdata_pre[1].ACLR +reset => av_readdata_pre[2].ACLR +reset => av_readdata_pre[3].ACLR +reset => av_readdata_pre[4].ACLR +reset => av_readdata_pre[5].ACLR +reset => av_readdata_pre[6].ACLR +reset => av_readdata_pre[7].ACLR +reset => av_readdata_pre[8].ACLR +reset => av_readdata_pre[9].ACLR +reset => av_readdata_pre[10].ACLR +reset => av_readdata_pre[11].ACLR +reset => av_readdata_pre[12].ACLR +reset => av_readdata_pre[13].ACLR +reset => av_readdata_pre[14].ACLR +reset => av_readdata_pre[15].ACLR +reset => av_readdata_pre[16].ACLR +reset => av_readdata_pre[17].ACLR +reset => av_readdata_pre[18].ACLR +reset => av_readdata_pre[19].ACLR +reset => av_readdata_pre[20].ACLR +reset => av_readdata_pre[21].ACLR +reset => av_readdata_pre[22].ACLR +reset => av_readdata_pre[23].ACLR +reset => av_readdata_pre[24].ACLR +reset => av_readdata_pre[25].ACLR +reset => av_readdata_pre[26].ACLR +reset => av_readdata_pre[27].ACLR +reset => av_readdata_pre[28].ACLR +reset => av_readdata_pre[29].ACLR +reset => av_readdata_pre[30].ACLR +reset => av_readdata_pre[31].ACLR +reset => waitrequest_reset_override.PRESET +reset => wait_latency_counter[0].ACLR +reset => wait_latency_counter[1].ACLR +uav_address[0] => ~NO_FANOUT~ +uav_address[1] => ~NO_FANOUT~ +uav_address[2] => av_address[0].DATAIN +uav_address[3] => av_address[1].DATAIN +uav_address[4] => ~NO_FANOUT~ +uav_address[5] => ~NO_FANOUT~ +uav_address[6] => ~NO_FANOUT~ +uav_address[7] => ~NO_FANOUT~ +uav_address[8] => ~NO_FANOUT~ +uav_address[9] => ~NO_FANOUT~ +uav_address[10] => ~NO_FANOUT~ +uav_address[11] => ~NO_FANOUT~ +uav_address[12] => ~NO_FANOUT~ +uav_address[13] => ~NO_FANOUT~ +uav_address[14] => ~NO_FANOUT~ +uav_address[15] => ~NO_FANOUT~ +uav_address[16] => ~NO_FANOUT~ +uav_address[17] => ~NO_FANOUT~ +uav_address[18] => ~NO_FANOUT~ +uav_writedata[0] => av_writedata[0].DATAIN +uav_writedata[1] => av_writedata[1].DATAIN +uav_writedata[2] => av_writedata[2].DATAIN +uav_writedata[3] => av_writedata[3].DATAIN +uav_writedata[4] => av_writedata[4].DATAIN +uav_writedata[5] => av_writedata[5].DATAIN +uav_writedata[6] => av_writedata[6].DATAIN +uav_writedata[7] => av_writedata[7].DATAIN +uav_writedata[8] => av_writedata[8].DATAIN +uav_writedata[9] => av_writedata[9].DATAIN +uav_writedata[10] => av_writedata[10].DATAIN +uav_writedata[11] => av_writedata[11].DATAIN +uav_writedata[12] => av_writedata[12].DATAIN +uav_writedata[13] => av_writedata[13].DATAIN +uav_writedata[14] => av_writedata[14].DATAIN +uav_writedata[15] => av_writedata[15].DATAIN +uav_writedata[16] => av_writedata[16].DATAIN +uav_writedata[17] => av_writedata[17].DATAIN +uav_writedata[18] => av_writedata[18].DATAIN +uav_writedata[19] => av_writedata[19].DATAIN +uav_writedata[20] => av_writedata[20].DATAIN +uav_writedata[21] => av_writedata[21].DATAIN +uav_writedata[22] => av_writedata[22].DATAIN +uav_writedata[23] => av_writedata[23].DATAIN +uav_writedata[24] => av_writedata[24].DATAIN +uav_writedata[25] => av_writedata[25].DATAIN +uav_writedata[26] => av_writedata[26].DATAIN +uav_writedata[27] => av_writedata[27].DATAIN +uav_writedata[28] => av_writedata[28].DATAIN +uav_writedata[29] => av_writedata[29].DATAIN +uav_writedata[30] => av_writedata[30].DATAIN +uav_writedata[31] => av_writedata[31].DATAIN +uav_write => av_writebyteenable.IN0 +uav_write => av_write.IN1 +uav_write => av_waitrequest_generated.OUTPUTSELECT +uav_write => av_begintransfer.IN0 +uav_write => end_beginbursttransfer.IN1 +uav_write => always20.IN1 +uav_write => in_transfer.OUTPUTSELECT +uav_read => av_read.IN1 +uav_read => read_latency_shift_reg.IN1 +uav_read => av_outputenable.OUTPUTSELECT +uav_read => av_begintransfer.IN1 +uav_read => av_beginbursttransfer.OUTPUTSELECT +uav_burstcount[0] => Equal2.IN3 +uav_burstcount[1] => Equal2.IN2 +uav_burstcount[2] => av_burstcount[0].DATAIN +uav_burstcount[2] => Equal2.IN4 +uav_byteenable[0] => av_writebyteenable.IN1 +uav_byteenable[0] => av_byteenable[0].DATAIN +uav_byteenable[1] => ~NO_FANOUT~ +uav_byteenable[2] => ~NO_FANOUT~ +uav_byteenable[3] => ~NO_FANOUT~ +uav_lock => av_lock.DATAIN +uav_debugaccess => av_debugaccess.DATAIN +uav_clken => ~NO_FANOUT~ +uav_readdatavalid <= read_latency_shift_reg[0].DB_MAX_OUTPUT_PORT_TYPE +uav_waitrequest <= uav_waitrequest.DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[0] <= av_readdata_pre[0].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[1] <= av_readdata_pre[1].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[2] <= av_readdata_pre[2].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[3] <= av_readdata_pre[3].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[4] <= av_readdata_pre[4].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[5] <= av_readdata_pre[5].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[6] <= av_readdata_pre[6].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[7] <= av_readdata_pre[7].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[8] <= av_readdata_pre[8].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[9] <= av_readdata_pre[9].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[10] <= av_readdata_pre[10].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[11] <= av_readdata_pre[11].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[12] <= av_readdata_pre[12].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[13] <= av_readdata_pre[13].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[14] <= av_readdata_pre[14].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[15] <= av_readdata_pre[15].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[16] <= av_readdata_pre[16].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[17] <= av_readdata_pre[17].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[18] <= av_readdata_pre[18].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[19] <= av_readdata_pre[19].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[20] <= av_readdata_pre[20].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[21] <= av_readdata_pre[21].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[22] <= av_readdata_pre[22].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[23] <= av_readdata_pre[23].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[24] <= av_readdata_pre[24].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[25] <= av_readdata_pre[25].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[26] <= av_readdata_pre[26].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[27] <= av_readdata_pre[27].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[28] <= av_readdata_pre[28].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[29] <= av_readdata_pre[29].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[30] <= av_readdata_pre[30].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[31] <= av_readdata_pre[31].DB_MAX_OUTPUT_PORT_TYPE +uav_response[0] <= +uav_response[1] <= +uav_writeresponserequest => av_writeresponserequest.DATAIN +uav_writeresponsevalid <= av_writeresponsevalid.DB_MAX_OUTPUT_PORT_TYPE +av_address[0] <= uav_address[2].DB_MAX_OUTPUT_PORT_TYPE +av_address[1] <= uav_address[3].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[0] <= uav_writedata[0].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[1] <= uav_writedata[1].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[2] <= uav_writedata[2].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[3] <= uav_writedata[3].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[4] <= uav_writedata[4].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[5] <= uav_writedata[5].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[6] <= uav_writedata[6].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[7] <= uav_writedata[7].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[8] <= uav_writedata[8].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[9] <= uav_writedata[9].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[10] <= uav_writedata[10].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[11] <= uav_writedata[11].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[12] <= uav_writedata[12].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[13] <= uav_writedata[13].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[14] <= uav_writedata[14].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[15] <= uav_writedata[15].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[16] <= uav_writedata[16].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[17] <= uav_writedata[17].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[18] <= uav_writedata[18].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[19] <= uav_writedata[19].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[20] <= uav_writedata[20].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[21] <= uav_writedata[21].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[22] <= uav_writedata[22].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[23] <= uav_writedata[23].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[24] <= uav_writedata[24].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[25] <= uav_writedata[25].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[26] <= uav_writedata[26].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[27] <= uav_writedata[27].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[28] <= uav_writedata[28].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[29] <= uav_writedata[29].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[30] <= uav_writedata[30].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[31] <= uav_writedata[31].DB_MAX_OUTPUT_PORT_TYPE +av_write <= av_write.DB_MAX_OUTPUT_PORT_TYPE +av_read <= av_read.DB_MAX_OUTPUT_PORT_TYPE +av_burstcount[0] <= uav_burstcount[2].DB_MAX_OUTPUT_PORT_TYPE +av_byteenable[0] <= uav_byteenable[0].DB_MAX_OUTPUT_PORT_TYPE +av_writebyteenable[0] <= av_writebyteenable.DB_MAX_OUTPUT_PORT_TYPE +av_begintransfer <= av_begintransfer.DB_MAX_OUTPUT_PORT_TYPE +av_chipselect <= av_chipselect.DB_MAX_OUTPUT_PORT_TYPE +av_beginbursttransfer <= av_beginbursttransfer.DB_MAX_OUTPUT_PORT_TYPE +av_lock <= uav_lock.DB_MAX_OUTPUT_PORT_TYPE +av_clken <= +av_debugaccess <= uav_debugaccess.DB_MAX_OUTPUT_PORT_TYPE +av_outputenable <= av_outputenable.DB_MAX_OUTPUT_PORT_TYPE +av_readdata[0] => av_readdata_pre[0].DATAIN +av_readdata[1] => av_readdata_pre[1].DATAIN +av_readdata[2] => av_readdata_pre[2].DATAIN +av_readdata[3] => av_readdata_pre[3].DATAIN +av_readdata[4] => av_readdata_pre[4].DATAIN +av_readdata[5] => av_readdata_pre[5].DATAIN +av_readdata[6] => av_readdata_pre[6].DATAIN +av_readdata[7] => av_readdata_pre[7].DATAIN +av_readdata[8] => av_readdata_pre[8].DATAIN +av_readdata[9] => av_readdata_pre[9].DATAIN +av_readdata[10] => av_readdata_pre[10].DATAIN +av_readdata[11] => av_readdata_pre[11].DATAIN +av_readdata[12] => av_readdata_pre[12].DATAIN +av_readdata[13] => av_readdata_pre[13].DATAIN +av_readdata[14] => av_readdata_pre[14].DATAIN +av_readdata[15] => av_readdata_pre[15].DATAIN +av_readdata[16] => av_readdata_pre[16].DATAIN +av_readdata[17] => av_readdata_pre[17].DATAIN +av_readdata[18] => av_readdata_pre[18].DATAIN +av_readdata[19] => av_readdata_pre[19].DATAIN +av_readdata[20] => av_readdata_pre[20].DATAIN +av_readdata[21] => av_readdata_pre[21].DATAIN +av_readdata[22] => av_readdata_pre[22].DATAIN +av_readdata[23] => av_readdata_pre[23].DATAIN +av_readdata[24] => av_readdata_pre[24].DATAIN +av_readdata[25] => av_readdata_pre[25].DATAIN +av_readdata[26] => av_readdata_pre[26].DATAIN +av_readdata[27] => av_readdata_pre[27].DATAIN +av_readdata[28] => av_readdata_pre[28].DATAIN +av_readdata[29] => av_readdata_pre[29].DATAIN +av_readdata[30] => av_readdata_pre[30].DATAIN +av_readdata[31] => av_readdata_pre[31].DATAIN +av_readdatavalid => ~NO_FANOUT~ +av_waitrequest => ~NO_FANOUT~ +av_response[0] => ~NO_FANOUT~ +av_response[1] => ~NO_FANOUT~ +av_writeresponserequest <= uav_writeresponserequest.DB_MAX_OUTPUT_PORT_TYPE +av_writeresponsevalid => uav_writeresponsevalid.DATAIN + + +|lights|nios_system:NiosII|altera_merlin_slave_translator:hex1_s1_translator +clk => in_transfer.CLK +clk => end_beginbursttransfer.CLK +clk => end_begintransfer.CLK +clk => av_chipselect_pre.CLK +clk => av_outputenable_pre.CLK +clk => read_latency_shift_reg[0].CLK +clk => av_readdata_pre[0].CLK +clk => av_readdata_pre[1].CLK +clk => av_readdata_pre[2].CLK +clk => av_readdata_pre[3].CLK +clk => av_readdata_pre[4].CLK +clk => av_readdata_pre[5].CLK +clk => av_readdata_pre[6].CLK +clk => av_readdata_pre[7].CLK +clk => av_readdata_pre[8].CLK +clk => av_readdata_pre[9].CLK +clk => av_readdata_pre[10].CLK +clk => av_readdata_pre[11].CLK +clk => av_readdata_pre[12].CLK +clk => av_readdata_pre[13].CLK +clk => av_readdata_pre[14].CLK +clk => av_readdata_pre[15].CLK +clk => av_readdata_pre[16].CLK +clk => av_readdata_pre[17].CLK +clk => av_readdata_pre[18].CLK +clk => av_readdata_pre[19].CLK +clk => av_readdata_pre[20].CLK +clk => av_readdata_pre[21].CLK +clk => av_readdata_pre[22].CLK +clk => av_readdata_pre[23].CLK +clk => av_readdata_pre[24].CLK +clk => av_readdata_pre[25].CLK +clk => av_readdata_pre[26].CLK +clk => av_readdata_pre[27].CLK +clk => av_readdata_pre[28].CLK +clk => av_readdata_pre[29].CLK +clk => av_readdata_pre[30].CLK +clk => av_readdata_pre[31].CLK +clk => waitrequest_reset_override.CLK +clk => wait_latency_counter[0].CLK +clk => wait_latency_counter[1].CLK +reset => in_transfer.ACLR +reset => end_beginbursttransfer.ACLR +reset => end_begintransfer.ACLR +reset => av_chipselect_pre.ACLR +reset => av_outputenable_pre.ACLR +reset => read_latency_shift_reg[0].ACLR +reset => av_readdata_pre[0].ACLR +reset => av_readdata_pre[1].ACLR +reset => av_readdata_pre[2].ACLR +reset => av_readdata_pre[3].ACLR +reset => av_readdata_pre[4].ACLR +reset => av_readdata_pre[5].ACLR +reset => av_readdata_pre[6].ACLR +reset => av_readdata_pre[7].ACLR +reset => av_readdata_pre[8].ACLR +reset => av_readdata_pre[9].ACLR +reset => av_readdata_pre[10].ACLR +reset => av_readdata_pre[11].ACLR +reset => av_readdata_pre[12].ACLR +reset => av_readdata_pre[13].ACLR +reset => av_readdata_pre[14].ACLR +reset => av_readdata_pre[15].ACLR +reset => av_readdata_pre[16].ACLR +reset => av_readdata_pre[17].ACLR +reset => av_readdata_pre[18].ACLR +reset => av_readdata_pre[19].ACLR +reset => av_readdata_pre[20].ACLR +reset => av_readdata_pre[21].ACLR +reset => av_readdata_pre[22].ACLR +reset => av_readdata_pre[23].ACLR +reset => av_readdata_pre[24].ACLR +reset => av_readdata_pre[25].ACLR +reset => av_readdata_pre[26].ACLR +reset => av_readdata_pre[27].ACLR +reset => av_readdata_pre[28].ACLR +reset => av_readdata_pre[29].ACLR +reset => av_readdata_pre[30].ACLR +reset => av_readdata_pre[31].ACLR +reset => waitrequest_reset_override.PRESET +reset => wait_latency_counter[0].ACLR +reset => wait_latency_counter[1].ACLR +uav_address[0] => ~NO_FANOUT~ +uav_address[1] => ~NO_FANOUT~ +uav_address[2] => av_address[0].DATAIN +uav_address[3] => av_address[1].DATAIN +uav_address[4] => ~NO_FANOUT~ +uav_address[5] => ~NO_FANOUT~ +uav_address[6] => ~NO_FANOUT~ +uav_address[7] => ~NO_FANOUT~ +uav_address[8] => ~NO_FANOUT~ +uav_address[9] => ~NO_FANOUT~ +uav_address[10] => ~NO_FANOUT~ +uav_address[11] => ~NO_FANOUT~ +uav_address[12] => ~NO_FANOUT~ +uav_address[13] => ~NO_FANOUT~ +uav_address[14] => ~NO_FANOUT~ +uav_address[15] => ~NO_FANOUT~ +uav_address[16] => ~NO_FANOUT~ +uav_address[17] => ~NO_FANOUT~ +uav_address[18] => ~NO_FANOUT~ +uav_writedata[0] => av_writedata[0].DATAIN +uav_writedata[1] => av_writedata[1].DATAIN +uav_writedata[2] => av_writedata[2].DATAIN +uav_writedata[3] => av_writedata[3].DATAIN +uav_writedata[4] => av_writedata[4].DATAIN +uav_writedata[5] => av_writedata[5].DATAIN +uav_writedata[6] => av_writedata[6].DATAIN +uav_writedata[7] => av_writedata[7].DATAIN +uav_writedata[8] => av_writedata[8].DATAIN +uav_writedata[9] => av_writedata[9].DATAIN +uav_writedata[10] => av_writedata[10].DATAIN +uav_writedata[11] => av_writedata[11].DATAIN +uav_writedata[12] => av_writedata[12].DATAIN +uav_writedata[13] => av_writedata[13].DATAIN +uav_writedata[14] => av_writedata[14].DATAIN +uav_writedata[15] => av_writedata[15].DATAIN +uav_writedata[16] => av_writedata[16].DATAIN +uav_writedata[17] => av_writedata[17].DATAIN +uav_writedata[18] => av_writedata[18].DATAIN +uav_writedata[19] => av_writedata[19].DATAIN +uav_writedata[20] => av_writedata[20].DATAIN +uav_writedata[21] => av_writedata[21].DATAIN +uav_writedata[22] => av_writedata[22].DATAIN +uav_writedata[23] => av_writedata[23].DATAIN +uav_writedata[24] => av_writedata[24].DATAIN +uav_writedata[25] => av_writedata[25].DATAIN +uav_writedata[26] => av_writedata[26].DATAIN +uav_writedata[27] => av_writedata[27].DATAIN +uav_writedata[28] => av_writedata[28].DATAIN +uav_writedata[29] => av_writedata[29].DATAIN +uav_writedata[30] => av_writedata[30].DATAIN +uav_writedata[31] => av_writedata[31].DATAIN +uav_write => av_writebyteenable.IN0 +uav_write => av_write.IN1 +uav_write => av_waitrequest_generated.OUTPUTSELECT +uav_write => av_begintransfer.IN0 +uav_write => end_beginbursttransfer.IN1 +uav_write => always20.IN1 +uav_write => in_transfer.OUTPUTSELECT +uav_read => av_read.IN1 +uav_read => read_latency_shift_reg.IN1 +uav_read => av_outputenable.OUTPUTSELECT +uav_read => av_begintransfer.IN1 +uav_read => av_beginbursttransfer.OUTPUTSELECT +uav_burstcount[0] => Equal2.IN3 +uav_burstcount[1] => Equal2.IN2 +uav_burstcount[2] => av_burstcount[0].DATAIN +uav_burstcount[2] => Equal2.IN4 +uav_byteenable[0] => av_writebyteenable.IN1 +uav_byteenable[0] => av_byteenable[0].DATAIN +uav_byteenable[1] => ~NO_FANOUT~ +uav_byteenable[2] => ~NO_FANOUT~ +uav_byteenable[3] => ~NO_FANOUT~ +uav_lock => av_lock.DATAIN +uav_debugaccess => av_debugaccess.DATAIN +uav_clken => ~NO_FANOUT~ +uav_readdatavalid <= read_latency_shift_reg[0].DB_MAX_OUTPUT_PORT_TYPE +uav_waitrequest <= uav_waitrequest.DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[0] <= av_readdata_pre[0].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[1] <= av_readdata_pre[1].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[2] <= av_readdata_pre[2].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[3] <= av_readdata_pre[3].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[4] <= av_readdata_pre[4].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[5] <= av_readdata_pre[5].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[6] <= av_readdata_pre[6].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[7] <= av_readdata_pre[7].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[8] <= av_readdata_pre[8].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[9] <= av_readdata_pre[9].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[10] <= av_readdata_pre[10].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[11] <= av_readdata_pre[11].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[12] <= av_readdata_pre[12].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[13] <= av_readdata_pre[13].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[14] <= av_readdata_pre[14].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[15] <= av_readdata_pre[15].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[16] <= av_readdata_pre[16].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[17] <= av_readdata_pre[17].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[18] <= av_readdata_pre[18].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[19] <= av_readdata_pre[19].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[20] <= av_readdata_pre[20].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[21] <= av_readdata_pre[21].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[22] <= av_readdata_pre[22].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[23] <= av_readdata_pre[23].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[24] <= av_readdata_pre[24].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[25] <= av_readdata_pre[25].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[26] <= av_readdata_pre[26].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[27] <= av_readdata_pre[27].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[28] <= av_readdata_pre[28].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[29] <= av_readdata_pre[29].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[30] <= av_readdata_pre[30].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[31] <= av_readdata_pre[31].DB_MAX_OUTPUT_PORT_TYPE +uav_response[0] <= +uav_response[1] <= +uav_writeresponserequest => av_writeresponserequest.DATAIN +uav_writeresponsevalid <= av_writeresponsevalid.DB_MAX_OUTPUT_PORT_TYPE +av_address[0] <= uav_address[2].DB_MAX_OUTPUT_PORT_TYPE +av_address[1] <= uav_address[3].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[0] <= uav_writedata[0].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[1] <= uav_writedata[1].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[2] <= uav_writedata[2].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[3] <= uav_writedata[3].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[4] <= uav_writedata[4].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[5] <= uav_writedata[5].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[6] <= uav_writedata[6].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[7] <= uav_writedata[7].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[8] <= uav_writedata[8].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[9] <= uav_writedata[9].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[10] <= uav_writedata[10].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[11] <= uav_writedata[11].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[12] <= uav_writedata[12].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[13] <= uav_writedata[13].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[14] <= uav_writedata[14].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[15] <= uav_writedata[15].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[16] <= uav_writedata[16].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[17] <= uav_writedata[17].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[18] <= uav_writedata[18].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[19] <= uav_writedata[19].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[20] <= uav_writedata[20].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[21] <= uav_writedata[21].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[22] <= uav_writedata[22].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[23] <= uav_writedata[23].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[24] <= uav_writedata[24].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[25] <= uav_writedata[25].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[26] <= uav_writedata[26].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[27] <= uav_writedata[27].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[28] <= uav_writedata[28].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[29] <= uav_writedata[29].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[30] <= uav_writedata[30].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[31] <= uav_writedata[31].DB_MAX_OUTPUT_PORT_TYPE +av_write <= av_write.DB_MAX_OUTPUT_PORT_TYPE +av_read <= av_read.DB_MAX_OUTPUT_PORT_TYPE +av_burstcount[0] <= uav_burstcount[2].DB_MAX_OUTPUT_PORT_TYPE +av_byteenable[0] <= uav_byteenable[0].DB_MAX_OUTPUT_PORT_TYPE +av_writebyteenable[0] <= av_writebyteenable.DB_MAX_OUTPUT_PORT_TYPE +av_begintransfer <= av_begintransfer.DB_MAX_OUTPUT_PORT_TYPE +av_chipselect <= av_chipselect.DB_MAX_OUTPUT_PORT_TYPE +av_beginbursttransfer <= av_beginbursttransfer.DB_MAX_OUTPUT_PORT_TYPE +av_lock <= uav_lock.DB_MAX_OUTPUT_PORT_TYPE +av_clken <= +av_debugaccess <= uav_debugaccess.DB_MAX_OUTPUT_PORT_TYPE +av_outputenable <= av_outputenable.DB_MAX_OUTPUT_PORT_TYPE +av_readdata[0] => av_readdata_pre[0].DATAIN +av_readdata[1] => av_readdata_pre[1].DATAIN +av_readdata[2] => av_readdata_pre[2].DATAIN +av_readdata[3] => av_readdata_pre[3].DATAIN +av_readdata[4] => av_readdata_pre[4].DATAIN +av_readdata[5] => av_readdata_pre[5].DATAIN +av_readdata[6] => av_readdata_pre[6].DATAIN +av_readdata[7] => av_readdata_pre[7].DATAIN +av_readdata[8] => av_readdata_pre[8].DATAIN +av_readdata[9] => av_readdata_pre[9].DATAIN +av_readdata[10] => av_readdata_pre[10].DATAIN +av_readdata[11] => av_readdata_pre[11].DATAIN +av_readdata[12] => av_readdata_pre[12].DATAIN +av_readdata[13] => av_readdata_pre[13].DATAIN +av_readdata[14] => av_readdata_pre[14].DATAIN +av_readdata[15] => av_readdata_pre[15].DATAIN +av_readdata[16] => av_readdata_pre[16].DATAIN +av_readdata[17] => av_readdata_pre[17].DATAIN +av_readdata[18] => av_readdata_pre[18].DATAIN +av_readdata[19] => av_readdata_pre[19].DATAIN +av_readdata[20] => av_readdata_pre[20].DATAIN +av_readdata[21] => av_readdata_pre[21].DATAIN +av_readdata[22] => av_readdata_pre[22].DATAIN +av_readdata[23] => av_readdata_pre[23].DATAIN +av_readdata[24] => av_readdata_pre[24].DATAIN +av_readdata[25] => av_readdata_pre[25].DATAIN +av_readdata[26] => av_readdata_pre[26].DATAIN +av_readdata[27] => av_readdata_pre[27].DATAIN +av_readdata[28] => av_readdata_pre[28].DATAIN +av_readdata[29] => av_readdata_pre[29].DATAIN +av_readdata[30] => av_readdata_pre[30].DATAIN +av_readdata[31] => av_readdata_pre[31].DATAIN +av_readdatavalid => ~NO_FANOUT~ +av_waitrequest => ~NO_FANOUT~ +av_response[0] => ~NO_FANOUT~ +av_response[1] => ~NO_FANOUT~ +av_writeresponserequest <= uav_writeresponserequest.DB_MAX_OUTPUT_PORT_TYPE +av_writeresponsevalid => uav_writeresponsevalid.DATAIN + + +|lights|nios_system:NiosII|altera_merlin_slave_translator:hex2_s1_translator +clk => in_transfer.CLK +clk => end_beginbursttransfer.CLK +clk => end_begintransfer.CLK +clk => av_chipselect_pre.CLK +clk => av_outputenable_pre.CLK +clk => read_latency_shift_reg[0].CLK +clk => av_readdata_pre[0].CLK +clk => av_readdata_pre[1].CLK +clk => av_readdata_pre[2].CLK +clk => av_readdata_pre[3].CLK +clk => av_readdata_pre[4].CLK +clk => av_readdata_pre[5].CLK +clk => av_readdata_pre[6].CLK +clk => av_readdata_pre[7].CLK +clk => av_readdata_pre[8].CLK +clk => av_readdata_pre[9].CLK +clk => av_readdata_pre[10].CLK +clk => av_readdata_pre[11].CLK +clk => av_readdata_pre[12].CLK +clk => av_readdata_pre[13].CLK +clk => av_readdata_pre[14].CLK +clk => av_readdata_pre[15].CLK +clk => av_readdata_pre[16].CLK +clk => av_readdata_pre[17].CLK +clk => av_readdata_pre[18].CLK +clk => av_readdata_pre[19].CLK +clk => av_readdata_pre[20].CLK +clk => av_readdata_pre[21].CLK +clk => av_readdata_pre[22].CLK +clk => av_readdata_pre[23].CLK +clk => av_readdata_pre[24].CLK +clk => av_readdata_pre[25].CLK +clk => av_readdata_pre[26].CLK +clk => av_readdata_pre[27].CLK +clk => av_readdata_pre[28].CLK +clk => av_readdata_pre[29].CLK +clk => av_readdata_pre[30].CLK +clk => av_readdata_pre[31].CLK +clk => waitrequest_reset_override.CLK +clk => wait_latency_counter[0].CLK +clk => wait_latency_counter[1].CLK +reset => in_transfer.ACLR +reset => end_beginbursttransfer.ACLR +reset => end_begintransfer.ACLR +reset => av_chipselect_pre.ACLR +reset => av_outputenable_pre.ACLR +reset => read_latency_shift_reg[0].ACLR +reset => av_readdata_pre[0].ACLR +reset => av_readdata_pre[1].ACLR +reset => av_readdata_pre[2].ACLR +reset => av_readdata_pre[3].ACLR +reset => av_readdata_pre[4].ACLR +reset => av_readdata_pre[5].ACLR +reset => av_readdata_pre[6].ACLR +reset => av_readdata_pre[7].ACLR +reset => av_readdata_pre[8].ACLR +reset => av_readdata_pre[9].ACLR +reset => av_readdata_pre[10].ACLR +reset => av_readdata_pre[11].ACLR +reset => av_readdata_pre[12].ACLR +reset => av_readdata_pre[13].ACLR +reset => av_readdata_pre[14].ACLR +reset => av_readdata_pre[15].ACLR +reset => av_readdata_pre[16].ACLR +reset => av_readdata_pre[17].ACLR +reset => av_readdata_pre[18].ACLR +reset => av_readdata_pre[19].ACLR +reset => av_readdata_pre[20].ACLR +reset => av_readdata_pre[21].ACLR +reset => av_readdata_pre[22].ACLR +reset => av_readdata_pre[23].ACLR +reset => av_readdata_pre[24].ACLR +reset => av_readdata_pre[25].ACLR +reset => av_readdata_pre[26].ACLR +reset => av_readdata_pre[27].ACLR +reset => av_readdata_pre[28].ACLR +reset => av_readdata_pre[29].ACLR +reset => av_readdata_pre[30].ACLR +reset => av_readdata_pre[31].ACLR +reset => waitrequest_reset_override.PRESET +reset => wait_latency_counter[0].ACLR +reset => wait_latency_counter[1].ACLR +uav_address[0] => ~NO_FANOUT~ +uav_address[1] => ~NO_FANOUT~ +uav_address[2] => av_address[0].DATAIN +uav_address[3] => av_address[1].DATAIN +uav_address[4] => ~NO_FANOUT~ +uav_address[5] => ~NO_FANOUT~ +uav_address[6] => ~NO_FANOUT~ +uav_address[7] => ~NO_FANOUT~ +uav_address[8] => ~NO_FANOUT~ +uav_address[9] => ~NO_FANOUT~ +uav_address[10] => ~NO_FANOUT~ +uav_address[11] => ~NO_FANOUT~ +uav_address[12] => ~NO_FANOUT~ +uav_address[13] => ~NO_FANOUT~ +uav_address[14] => ~NO_FANOUT~ +uav_address[15] => ~NO_FANOUT~ +uav_address[16] => ~NO_FANOUT~ +uav_address[17] => ~NO_FANOUT~ +uav_address[18] => ~NO_FANOUT~ +uav_writedata[0] => av_writedata[0].DATAIN +uav_writedata[1] => av_writedata[1].DATAIN +uav_writedata[2] => av_writedata[2].DATAIN +uav_writedata[3] => av_writedata[3].DATAIN +uav_writedata[4] => av_writedata[4].DATAIN +uav_writedata[5] => av_writedata[5].DATAIN +uav_writedata[6] => av_writedata[6].DATAIN +uav_writedata[7] => av_writedata[7].DATAIN +uav_writedata[8] => av_writedata[8].DATAIN +uav_writedata[9] => av_writedata[9].DATAIN +uav_writedata[10] => av_writedata[10].DATAIN +uav_writedata[11] => av_writedata[11].DATAIN +uav_writedata[12] => av_writedata[12].DATAIN +uav_writedata[13] => av_writedata[13].DATAIN +uav_writedata[14] => av_writedata[14].DATAIN +uav_writedata[15] => av_writedata[15].DATAIN +uav_writedata[16] => av_writedata[16].DATAIN +uav_writedata[17] => av_writedata[17].DATAIN +uav_writedata[18] => av_writedata[18].DATAIN +uav_writedata[19] => av_writedata[19].DATAIN +uav_writedata[20] => av_writedata[20].DATAIN +uav_writedata[21] => av_writedata[21].DATAIN +uav_writedata[22] => av_writedata[22].DATAIN +uav_writedata[23] => av_writedata[23].DATAIN +uav_writedata[24] => av_writedata[24].DATAIN +uav_writedata[25] => av_writedata[25].DATAIN +uav_writedata[26] => av_writedata[26].DATAIN +uav_writedata[27] => av_writedata[27].DATAIN +uav_writedata[28] => av_writedata[28].DATAIN +uav_writedata[29] => av_writedata[29].DATAIN +uav_writedata[30] => av_writedata[30].DATAIN +uav_writedata[31] => av_writedata[31].DATAIN +uav_write => av_writebyteenable.IN0 +uav_write => av_write.IN1 +uav_write => av_waitrequest_generated.OUTPUTSELECT +uav_write => av_begintransfer.IN0 +uav_write => end_beginbursttransfer.IN1 +uav_write => always20.IN1 +uav_write => in_transfer.OUTPUTSELECT +uav_read => av_read.IN1 +uav_read => read_latency_shift_reg.IN1 +uav_read => av_outputenable.OUTPUTSELECT +uav_read => av_begintransfer.IN1 +uav_read => av_beginbursttransfer.OUTPUTSELECT +uav_burstcount[0] => Equal2.IN3 +uav_burstcount[1] => Equal2.IN2 +uav_burstcount[2] => av_burstcount[0].DATAIN +uav_burstcount[2] => Equal2.IN4 +uav_byteenable[0] => av_writebyteenable.IN1 +uav_byteenable[0] => av_byteenable[0].DATAIN +uav_byteenable[1] => ~NO_FANOUT~ +uav_byteenable[2] => ~NO_FANOUT~ +uav_byteenable[3] => ~NO_FANOUT~ +uav_lock => av_lock.DATAIN +uav_debugaccess => av_debugaccess.DATAIN +uav_clken => ~NO_FANOUT~ +uav_readdatavalid <= read_latency_shift_reg[0].DB_MAX_OUTPUT_PORT_TYPE +uav_waitrequest <= uav_waitrequest.DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[0] <= av_readdata_pre[0].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[1] <= av_readdata_pre[1].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[2] <= av_readdata_pre[2].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[3] <= av_readdata_pre[3].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[4] <= av_readdata_pre[4].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[5] <= av_readdata_pre[5].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[6] <= av_readdata_pre[6].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[7] <= av_readdata_pre[7].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[8] <= av_readdata_pre[8].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[9] <= av_readdata_pre[9].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[10] <= av_readdata_pre[10].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[11] <= av_readdata_pre[11].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[12] <= av_readdata_pre[12].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[13] <= av_readdata_pre[13].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[14] <= av_readdata_pre[14].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[15] <= av_readdata_pre[15].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[16] <= av_readdata_pre[16].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[17] <= av_readdata_pre[17].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[18] <= av_readdata_pre[18].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[19] <= av_readdata_pre[19].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[20] <= av_readdata_pre[20].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[21] <= av_readdata_pre[21].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[22] <= av_readdata_pre[22].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[23] <= av_readdata_pre[23].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[24] <= av_readdata_pre[24].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[25] <= av_readdata_pre[25].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[26] <= av_readdata_pre[26].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[27] <= av_readdata_pre[27].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[28] <= av_readdata_pre[28].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[29] <= av_readdata_pre[29].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[30] <= av_readdata_pre[30].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[31] <= av_readdata_pre[31].DB_MAX_OUTPUT_PORT_TYPE +uav_response[0] <= +uav_response[1] <= +uav_writeresponserequest => av_writeresponserequest.DATAIN +uav_writeresponsevalid <= av_writeresponsevalid.DB_MAX_OUTPUT_PORT_TYPE +av_address[0] <= uav_address[2].DB_MAX_OUTPUT_PORT_TYPE +av_address[1] <= uav_address[3].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[0] <= uav_writedata[0].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[1] <= uav_writedata[1].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[2] <= uav_writedata[2].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[3] <= uav_writedata[3].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[4] <= uav_writedata[4].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[5] <= uav_writedata[5].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[6] <= uav_writedata[6].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[7] <= uav_writedata[7].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[8] <= uav_writedata[8].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[9] <= uav_writedata[9].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[10] <= uav_writedata[10].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[11] <= uav_writedata[11].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[12] <= uav_writedata[12].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[13] <= uav_writedata[13].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[14] <= uav_writedata[14].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[15] <= uav_writedata[15].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[16] <= uav_writedata[16].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[17] <= uav_writedata[17].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[18] <= uav_writedata[18].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[19] <= uav_writedata[19].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[20] <= uav_writedata[20].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[21] <= uav_writedata[21].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[22] <= uav_writedata[22].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[23] <= uav_writedata[23].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[24] <= uav_writedata[24].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[25] <= uav_writedata[25].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[26] <= uav_writedata[26].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[27] <= uav_writedata[27].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[28] <= uav_writedata[28].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[29] <= uav_writedata[29].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[30] <= uav_writedata[30].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[31] <= uav_writedata[31].DB_MAX_OUTPUT_PORT_TYPE +av_write <= av_write.DB_MAX_OUTPUT_PORT_TYPE +av_read <= av_read.DB_MAX_OUTPUT_PORT_TYPE +av_burstcount[0] <= uav_burstcount[2].DB_MAX_OUTPUT_PORT_TYPE +av_byteenable[0] <= uav_byteenable[0].DB_MAX_OUTPUT_PORT_TYPE +av_writebyteenable[0] <= av_writebyteenable.DB_MAX_OUTPUT_PORT_TYPE +av_begintransfer <= av_begintransfer.DB_MAX_OUTPUT_PORT_TYPE +av_chipselect <= av_chipselect.DB_MAX_OUTPUT_PORT_TYPE +av_beginbursttransfer <= av_beginbursttransfer.DB_MAX_OUTPUT_PORT_TYPE +av_lock <= uav_lock.DB_MAX_OUTPUT_PORT_TYPE +av_clken <= +av_debugaccess <= uav_debugaccess.DB_MAX_OUTPUT_PORT_TYPE +av_outputenable <= av_outputenable.DB_MAX_OUTPUT_PORT_TYPE +av_readdata[0] => av_readdata_pre[0].DATAIN +av_readdata[1] => av_readdata_pre[1].DATAIN +av_readdata[2] => av_readdata_pre[2].DATAIN +av_readdata[3] => av_readdata_pre[3].DATAIN +av_readdata[4] => av_readdata_pre[4].DATAIN +av_readdata[5] => av_readdata_pre[5].DATAIN +av_readdata[6] => av_readdata_pre[6].DATAIN +av_readdata[7] => av_readdata_pre[7].DATAIN +av_readdata[8] => av_readdata_pre[8].DATAIN +av_readdata[9] => av_readdata_pre[9].DATAIN +av_readdata[10] => av_readdata_pre[10].DATAIN +av_readdata[11] => av_readdata_pre[11].DATAIN +av_readdata[12] => av_readdata_pre[12].DATAIN +av_readdata[13] => av_readdata_pre[13].DATAIN +av_readdata[14] => av_readdata_pre[14].DATAIN +av_readdata[15] => av_readdata_pre[15].DATAIN +av_readdata[16] => av_readdata_pre[16].DATAIN +av_readdata[17] => av_readdata_pre[17].DATAIN +av_readdata[18] => av_readdata_pre[18].DATAIN +av_readdata[19] => av_readdata_pre[19].DATAIN +av_readdata[20] => av_readdata_pre[20].DATAIN +av_readdata[21] => av_readdata_pre[21].DATAIN +av_readdata[22] => av_readdata_pre[22].DATAIN +av_readdata[23] => av_readdata_pre[23].DATAIN +av_readdata[24] => av_readdata_pre[24].DATAIN +av_readdata[25] => av_readdata_pre[25].DATAIN +av_readdata[26] => av_readdata_pre[26].DATAIN +av_readdata[27] => av_readdata_pre[27].DATAIN +av_readdata[28] => av_readdata_pre[28].DATAIN +av_readdata[29] => av_readdata_pre[29].DATAIN +av_readdata[30] => av_readdata_pre[30].DATAIN +av_readdata[31] => av_readdata_pre[31].DATAIN +av_readdatavalid => ~NO_FANOUT~ +av_waitrequest => ~NO_FANOUT~ +av_response[0] => ~NO_FANOUT~ +av_response[1] => ~NO_FANOUT~ +av_writeresponserequest <= uav_writeresponserequest.DB_MAX_OUTPUT_PORT_TYPE +av_writeresponsevalid => uav_writeresponsevalid.DATAIN + + +|lights|nios_system:NiosII|altera_merlin_slave_translator:hex3_s1_translator +clk => in_transfer.CLK +clk => end_beginbursttransfer.CLK +clk => end_begintransfer.CLK +clk => av_chipselect_pre.CLK +clk => av_outputenable_pre.CLK +clk => read_latency_shift_reg[0].CLK +clk => av_readdata_pre[0].CLK +clk => av_readdata_pre[1].CLK +clk => av_readdata_pre[2].CLK +clk => av_readdata_pre[3].CLK +clk => av_readdata_pre[4].CLK +clk => av_readdata_pre[5].CLK +clk => av_readdata_pre[6].CLK +clk => av_readdata_pre[7].CLK +clk => av_readdata_pre[8].CLK +clk => av_readdata_pre[9].CLK +clk => av_readdata_pre[10].CLK +clk => av_readdata_pre[11].CLK +clk => av_readdata_pre[12].CLK +clk => av_readdata_pre[13].CLK +clk => av_readdata_pre[14].CLK +clk => av_readdata_pre[15].CLK +clk => av_readdata_pre[16].CLK +clk => av_readdata_pre[17].CLK +clk => av_readdata_pre[18].CLK +clk => av_readdata_pre[19].CLK +clk => av_readdata_pre[20].CLK +clk => av_readdata_pre[21].CLK +clk => av_readdata_pre[22].CLK +clk => av_readdata_pre[23].CLK +clk => av_readdata_pre[24].CLK +clk => av_readdata_pre[25].CLK +clk => av_readdata_pre[26].CLK +clk => av_readdata_pre[27].CLK +clk => av_readdata_pre[28].CLK +clk => av_readdata_pre[29].CLK +clk => av_readdata_pre[30].CLK +clk => av_readdata_pre[31].CLK +clk => waitrequest_reset_override.CLK +clk => wait_latency_counter[0].CLK +clk => wait_latency_counter[1].CLK +reset => in_transfer.ACLR +reset => end_beginbursttransfer.ACLR +reset => end_begintransfer.ACLR +reset => av_chipselect_pre.ACLR +reset => av_outputenable_pre.ACLR +reset => read_latency_shift_reg[0].ACLR +reset => av_readdata_pre[0].ACLR +reset => av_readdata_pre[1].ACLR +reset => av_readdata_pre[2].ACLR +reset => av_readdata_pre[3].ACLR +reset => av_readdata_pre[4].ACLR +reset => av_readdata_pre[5].ACLR +reset => av_readdata_pre[6].ACLR +reset => av_readdata_pre[7].ACLR +reset => av_readdata_pre[8].ACLR +reset => av_readdata_pre[9].ACLR +reset => av_readdata_pre[10].ACLR +reset => av_readdata_pre[11].ACLR +reset => av_readdata_pre[12].ACLR +reset => av_readdata_pre[13].ACLR +reset => av_readdata_pre[14].ACLR +reset => av_readdata_pre[15].ACLR +reset => av_readdata_pre[16].ACLR +reset => av_readdata_pre[17].ACLR +reset => av_readdata_pre[18].ACLR +reset => av_readdata_pre[19].ACLR +reset => av_readdata_pre[20].ACLR +reset => av_readdata_pre[21].ACLR +reset => av_readdata_pre[22].ACLR +reset => av_readdata_pre[23].ACLR +reset => av_readdata_pre[24].ACLR +reset => av_readdata_pre[25].ACLR +reset => av_readdata_pre[26].ACLR +reset => av_readdata_pre[27].ACLR +reset => av_readdata_pre[28].ACLR +reset => av_readdata_pre[29].ACLR +reset => av_readdata_pre[30].ACLR +reset => av_readdata_pre[31].ACLR +reset => waitrequest_reset_override.PRESET +reset => wait_latency_counter[0].ACLR +reset => wait_latency_counter[1].ACLR +uav_address[0] => ~NO_FANOUT~ +uav_address[1] => ~NO_FANOUT~ +uav_address[2] => av_address[0].DATAIN +uav_address[3] => av_address[1].DATAIN +uav_address[4] => ~NO_FANOUT~ +uav_address[5] => ~NO_FANOUT~ +uav_address[6] => ~NO_FANOUT~ +uav_address[7] => ~NO_FANOUT~ +uav_address[8] => ~NO_FANOUT~ +uav_address[9] => ~NO_FANOUT~ +uav_address[10] => ~NO_FANOUT~ +uav_address[11] => ~NO_FANOUT~ +uav_address[12] => ~NO_FANOUT~ +uav_address[13] => ~NO_FANOUT~ +uav_address[14] => ~NO_FANOUT~ +uav_address[15] => ~NO_FANOUT~ +uav_address[16] => ~NO_FANOUT~ +uav_address[17] => ~NO_FANOUT~ +uav_address[18] => ~NO_FANOUT~ +uav_writedata[0] => av_writedata[0].DATAIN +uav_writedata[1] => av_writedata[1].DATAIN +uav_writedata[2] => av_writedata[2].DATAIN +uav_writedata[3] => av_writedata[3].DATAIN +uav_writedata[4] => av_writedata[4].DATAIN +uav_writedata[5] => av_writedata[5].DATAIN +uav_writedata[6] => av_writedata[6].DATAIN +uav_writedata[7] => av_writedata[7].DATAIN +uav_writedata[8] => av_writedata[8].DATAIN +uav_writedata[9] => av_writedata[9].DATAIN +uav_writedata[10] => av_writedata[10].DATAIN +uav_writedata[11] => av_writedata[11].DATAIN +uav_writedata[12] => av_writedata[12].DATAIN +uav_writedata[13] => av_writedata[13].DATAIN +uav_writedata[14] => av_writedata[14].DATAIN +uav_writedata[15] => av_writedata[15].DATAIN +uav_writedata[16] => av_writedata[16].DATAIN +uav_writedata[17] => av_writedata[17].DATAIN +uav_writedata[18] => av_writedata[18].DATAIN +uav_writedata[19] => av_writedata[19].DATAIN +uav_writedata[20] => av_writedata[20].DATAIN +uav_writedata[21] => av_writedata[21].DATAIN +uav_writedata[22] => av_writedata[22].DATAIN +uav_writedata[23] => av_writedata[23].DATAIN +uav_writedata[24] => av_writedata[24].DATAIN +uav_writedata[25] => av_writedata[25].DATAIN +uav_writedata[26] => av_writedata[26].DATAIN +uav_writedata[27] => av_writedata[27].DATAIN +uav_writedata[28] => av_writedata[28].DATAIN +uav_writedata[29] => av_writedata[29].DATAIN +uav_writedata[30] => av_writedata[30].DATAIN +uav_writedata[31] => av_writedata[31].DATAIN +uav_write => av_writebyteenable.IN0 +uav_write => av_write.IN1 +uav_write => av_waitrequest_generated.OUTPUTSELECT +uav_write => av_begintransfer.IN0 +uav_write => end_beginbursttransfer.IN1 +uav_write => always20.IN1 +uav_write => in_transfer.OUTPUTSELECT +uav_read => av_read.IN1 +uav_read => read_latency_shift_reg.IN1 +uav_read => av_outputenable.OUTPUTSELECT +uav_read => av_begintransfer.IN1 +uav_read => av_beginbursttransfer.OUTPUTSELECT +uav_burstcount[0] => Equal2.IN3 +uav_burstcount[1] => Equal2.IN2 +uav_burstcount[2] => av_burstcount[0].DATAIN +uav_burstcount[2] => Equal2.IN4 +uav_byteenable[0] => av_writebyteenable.IN1 +uav_byteenable[0] => av_byteenable[0].DATAIN +uav_byteenable[1] => ~NO_FANOUT~ +uav_byteenable[2] => ~NO_FANOUT~ +uav_byteenable[3] => ~NO_FANOUT~ +uav_lock => av_lock.DATAIN +uav_debugaccess => av_debugaccess.DATAIN +uav_clken => ~NO_FANOUT~ +uav_readdatavalid <= read_latency_shift_reg[0].DB_MAX_OUTPUT_PORT_TYPE +uav_waitrequest <= uav_waitrequest.DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[0] <= av_readdata_pre[0].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[1] <= av_readdata_pre[1].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[2] <= av_readdata_pre[2].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[3] <= av_readdata_pre[3].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[4] <= av_readdata_pre[4].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[5] <= av_readdata_pre[5].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[6] <= av_readdata_pre[6].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[7] <= av_readdata_pre[7].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[8] <= av_readdata_pre[8].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[9] <= av_readdata_pre[9].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[10] <= av_readdata_pre[10].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[11] <= av_readdata_pre[11].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[12] <= av_readdata_pre[12].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[13] <= av_readdata_pre[13].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[14] <= av_readdata_pre[14].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[15] <= av_readdata_pre[15].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[16] <= av_readdata_pre[16].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[17] <= av_readdata_pre[17].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[18] <= av_readdata_pre[18].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[19] <= av_readdata_pre[19].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[20] <= av_readdata_pre[20].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[21] <= av_readdata_pre[21].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[22] <= av_readdata_pre[22].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[23] <= av_readdata_pre[23].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[24] <= av_readdata_pre[24].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[25] <= av_readdata_pre[25].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[26] <= av_readdata_pre[26].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[27] <= av_readdata_pre[27].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[28] <= av_readdata_pre[28].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[29] <= av_readdata_pre[29].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[30] <= av_readdata_pre[30].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[31] <= av_readdata_pre[31].DB_MAX_OUTPUT_PORT_TYPE +uav_response[0] <= +uav_response[1] <= +uav_writeresponserequest => av_writeresponserequest.DATAIN +uav_writeresponsevalid <= av_writeresponsevalid.DB_MAX_OUTPUT_PORT_TYPE +av_address[0] <= uav_address[2].DB_MAX_OUTPUT_PORT_TYPE +av_address[1] <= uav_address[3].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[0] <= uav_writedata[0].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[1] <= uav_writedata[1].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[2] <= uav_writedata[2].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[3] <= uav_writedata[3].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[4] <= uav_writedata[4].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[5] <= uav_writedata[5].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[6] <= uav_writedata[6].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[7] <= uav_writedata[7].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[8] <= uav_writedata[8].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[9] <= uav_writedata[9].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[10] <= uav_writedata[10].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[11] <= uav_writedata[11].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[12] <= uav_writedata[12].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[13] <= uav_writedata[13].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[14] <= uav_writedata[14].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[15] <= uav_writedata[15].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[16] <= uav_writedata[16].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[17] <= uav_writedata[17].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[18] <= uav_writedata[18].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[19] <= uav_writedata[19].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[20] <= uav_writedata[20].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[21] <= uav_writedata[21].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[22] <= uav_writedata[22].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[23] <= uav_writedata[23].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[24] <= uav_writedata[24].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[25] <= uav_writedata[25].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[26] <= uav_writedata[26].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[27] <= uav_writedata[27].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[28] <= uav_writedata[28].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[29] <= uav_writedata[29].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[30] <= uav_writedata[30].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[31] <= uav_writedata[31].DB_MAX_OUTPUT_PORT_TYPE +av_write <= av_write.DB_MAX_OUTPUT_PORT_TYPE +av_read <= av_read.DB_MAX_OUTPUT_PORT_TYPE +av_burstcount[0] <= uav_burstcount[2].DB_MAX_OUTPUT_PORT_TYPE +av_byteenable[0] <= uav_byteenable[0].DB_MAX_OUTPUT_PORT_TYPE +av_writebyteenable[0] <= av_writebyteenable.DB_MAX_OUTPUT_PORT_TYPE +av_begintransfer <= av_begintransfer.DB_MAX_OUTPUT_PORT_TYPE +av_chipselect <= av_chipselect.DB_MAX_OUTPUT_PORT_TYPE +av_beginbursttransfer <= av_beginbursttransfer.DB_MAX_OUTPUT_PORT_TYPE +av_lock <= uav_lock.DB_MAX_OUTPUT_PORT_TYPE +av_clken <= +av_debugaccess <= uav_debugaccess.DB_MAX_OUTPUT_PORT_TYPE +av_outputenable <= av_outputenable.DB_MAX_OUTPUT_PORT_TYPE +av_readdata[0] => av_readdata_pre[0].DATAIN +av_readdata[1] => av_readdata_pre[1].DATAIN +av_readdata[2] => av_readdata_pre[2].DATAIN +av_readdata[3] => av_readdata_pre[3].DATAIN +av_readdata[4] => av_readdata_pre[4].DATAIN +av_readdata[5] => av_readdata_pre[5].DATAIN +av_readdata[6] => av_readdata_pre[6].DATAIN +av_readdata[7] => av_readdata_pre[7].DATAIN +av_readdata[8] => av_readdata_pre[8].DATAIN +av_readdata[9] => av_readdata_pre[9].DATAIN +av_readdata[10] => av_readdata_pre[10].DATAIN +av_readdata[11] => av_readdata_pre[11].DATAIN +av_readdata[12] => av_readdata_pre[12].DATAIN +av_readdata[13] => av_readdata_pre[13].DATAIN +av_readdata[14] => av_readdata_pre[14].DATAIN +av_readdata[15] => av_readdata_pre[15].DATAIN +av_readdata[16] => av_readdata_pre[16].DATAIN +av_readdata[17] => av_readdata_pre[17].DATAIN +av_readdata[18] => av_readdata_pre[18].DATAIN +av_readdata[19] => av_readdata_pre[19].DATAIN +av_readdata[20] => av_readdata_pre[20].DATAIN +av_readdata[21] => av_readdata_pre[21].DATAIN +av_readdata[22] => av_readdata_pre[22].DATAIN +av_readdata[23] => av_readdata_pre[23].DATAIN +av_readdata[24] => av_readdata_pre[24].DATAIN +av_readdata[25] => av_readdata_pre[25].DATAIN +av_readdata[26] => av_readdata_pre[26].DATAIN +av_readdata[27] => av_readdata_pre[27].DATAIN +av_readdata[28] => av_readdata_pre[28].DATAIN +av_readdata[29] => av_readdata_pre[29].DATAIN +av_readdata[30] => av_readdata_pre[30].DATAIN +av_readdata[31] => av_readdata_pre[31].DATAIN +av_readdatavalid => ~NO_FANOUT~ +av_waitrequest => ~NO_FANOUT~ +av_response[0] => ~NO_FANOUT~ +av_response[1] => ~NO_FANOUT~ +av_writeresponserequest <= uav_writeresponserequest.DB_MAX_OUTPUT_PORT_TYPE +av_writeresponsevalid => uav_writeresponsevalid.DATAIN + + +|lights|nios_system:NiosII|altera_merlin_slave_translator:hex4_s1_translator +clk => in_transfer.CLK +clk => end_beginbursttransfer.CLK +clk => end_begintransfer.CLK +clk => av_chipselect_pre.CLK +clk => av_outputenable_pre.CLK +clk => read_latency_shift_reg[0].CLK +clk => av_readdata_pre[0].CLK +clk => av_readdata_pre[1].CLK +clk => av_readdata_pre[2].CLK +clk => av_readdata_pre[3].CLK +clk => av_readdata_pre[4].CLK +clk => av_readdata_pre[5].CLK +clk => av_readdata_pre[6].CLK +clk => av_readdata_pre[7].CLK +clk => av_readdata_pre[8].CLK +clk => av_readdata_pre[9].CLK +clk => av_readdata_pre[10].CLK +clk => av_readdata_pre[11].CLK +clk => av_readdata_pre[12].CLK +clk => av_readdata_pre[13].CLK +clk => av_readdata_pre[14].CLK +clk => av_readdata_pre[15].CLK +clk => av_readdata_pre[16].CLK +clk => av_readdata_pre[17].CLK +clk => av_readdata_pre[18].CLK +clk => av_readdata_pre[19].CLK +clk => av_readdata_pre[20].CLK +clk => av_readdata_pre[21].CLK +clk => av_readdata_pre[22].CLK +clk => av_readdata_pre[23].CLK +clk => av_readdata_pre[24].CLK +clk => av_readdata_pre[25].CLK +clk => av_readdata_pre[26].CLK +clk => av_readdata_pre[27].CLK +clk => av_readdata_pre[28].CLK +clk => av_readdata_pre[29].CLK +clk => av_readdata_pre[30].CLK +clk => av_readdata_pre[31].CLK +clk => waitrequest_reset_override.CLK +clk => wait_latency_counter[0].CLK +clk => wait_latency_counter[1].CLK +reset => in_transfer.ACLR +reset => end_beginbursttransfer.ACLR +reset => end_begintransfer.ACLR +reset => av_chipselect_pre.ACLR +reset => av_outputenable_pre.ACLR +reset => read_latency_shift_reg[0].ACLR +reset => av_readdata_pre[0].ACLR +reset => av_readdata_pre[1].ACLR +reset => av_readdata_pre[2].ACLR +reset => av_readdata_pre[3].ACLR +reset => av_readdata_pre[4].ACLR +reset => av_readdata_pre[5].ACLR +reset => av_readdata_pre[6].ACLR +reset => av_readdata_pre[7].ACLR +reset => av_readdata_pre[8].ACLR +reset => av_readdata_pre[9].ACLR +reset => av_readdata_pre[10].ACLR +reset => av_readdata_pre[11].ACLR +reset => av_readdata_pre[12].ACLR +reset => av_readdata_pre[13].ACLR +reset => av_readdata_pre[14].ACLR +reset => av_readdata_pre[15].ACLR +reset => av_readdata_pre[16].ACLR +reset => av_readdata_pre[17].ACLR +reset => av_readdata_pre[18].ACLR +reset => av_readdata_pre[19].ACLR +reset => av_readdata_pre[20].ACLR +reset => av_readdata_pre[21].ACLR +reset => av_readdata_pre[22].ACLR +reset => av_readdata_pre[23].ACLR +reset => av_readdata_pre[24].ACLR +reset => av_readdata_pre[25].ACLR +reset => av_readdata_pre[26].ACLR +reset => av_readdata_pre[27].ACLR +reset => av_readdata_pre[28].ACLR +reset => av_readdata_pre[29].ACLR +reset => av_readdata_pre[30].ACLR +reset => av_readdata_pre[31].ACLR +reset => waitrequest_reset_override.PRESET +reset => wait_latency_counter[0].ACLR +reset => wait_latency_counter[1].ACLR +uav_address[0] => ~NO_FANOUT~ +uav_address[1] => ~NO_FANOUT~ +uav_address[2] => av_address[0].DATAIN +uav_address[3] => av_address[1].DATAIN +uav_address[4] => ~NO_FANOUT~ +uav_address[5] => ~NO_FANOUT~ +uav_address[6] => ~NO_FANOUT~ +uav_address[7] => ~NO_FANOUT~ +uav_address[8] => ~NO_FANOUT~ +uav_address[9] => ~NO_FANOUT~ +uav_address[10] => ~NO_FANOUT~ +uav_address[11] => ~NO_FANOUT~ +uav_address[12] => ~NO_FANOUT~ +uav_address[13] => ~NO_FANOUT~ +uav_address[14] => ~NO_FANOUT~ +uav_address[15] => ~NO_FANOUT~ +uav_address[16] => ~NO_FANOUT~ +uav_address[17] => ~NO_FANOUT~ +uav_address[18] => ~NO_FANOUT~ +uav_writedata[0] => av_writedata[0].DATAIN +uav_writedata[1] => av_writedata[1].DATAIN +uav_writedata[2] => av_writedata[2].DATAIN +uav_writedata[3] => av_writedata[3].DATAIN +uav_writedata[4] => av_writedata[4].DATAIN +uav_writedata[5] => av_writedata[5].DATAIN +uav_writedata[6] => av_writedata[6].DATAIN +uav_writedata[7] => av_writedata[7].DATAIN +uav_writedata[8] => av_writedata[8].DATAIN +uav_writedata[9] => av_writedata[9].DATAIN +uav_writedata[10] => av_writedata[10].DATAIN +uav_writedata[11] => av_writedata[11].DATAIN +uav_writedata[12] => av_writedata[12].DATAIN +uav_writedata[13] => av_writedata[13].DATAIN +uav_writedata[14] => av_writedata[14].DATAIN +uav_writedata[15] => av_writedata[15].DATAIN +uav_writedata[16] => av_writedata[16].DATAIN +uav_writedata[17] => av_writedata[17].DATAIN +uav_writedata[18] => av_writedata[18].DATAIN +uav_writedata[19] => av_writedata[19].DATAIN +uav_writedata[20] => av_writedata[20].DATAIN +uav_writedata[21] => av_writedata[21].DATAIN +uav_writedata[22] => av_writedata[22].DATAIN +uav_writedata[23] => av_writedata[23].DATAIN +uav_writedata[24] => av_writedata[24].DATAIN +uav_writedata[25] => av_writedata[25].DATAIN +uav_writedata[26] => av_writedata[26].DATAIN +uav_writedata[27] => av_writedata[27].DATAIN +uav_writedata[28] => av_writedata[28].DATAIN +uav_writedata[29] => av_writedata[29].DATAIN +uav_writedata[30] => av_writedata[30].DATAIN +uav_writedata[31] => av_writedata[31].DATAIN +uav_write => av_writebyteenable.IN0 +uav_write => av_write.IN1 +uav_write => av_waitrequest_generated.OUTPUTSELECT +uav_write => av_begintransfer.IN0 +uav_write => end_beginbursttransfer.IN1 +uav_write => always20.IN1 +uav_write => in_transfer.OUTPUTSELECT +uav_read => av_read.IN1 +uav_read => read_latency_shift_reg.IN1 +uav_read => av_outputenable.OUTPUTSELECT +uav_read => av_begintransfer.IN1 +uav_read => av_beginbursttransfer.OUTPUTSELECT +uav_burstcount[0] => Equal2.IN3 +uav_burstcount[1] => Equal2.IN2 +uav_burstcount[2] => av_burstcount[0].DATAIN +uav_burstcount[2] => Equal2.IN4 +uav_byteenable[0] => av_writebyteenable.IN1 +uav_byteenable[0] => av_byteenable[0].DATAIN +uav_byteenable[1] => ~NO_FANOUT~ +uav_byteenable[2] => ~NO_FANOUT~ +uav_byteenable[3] => ~NO_FANOUT~ +uav_lock => av_lock.DATAIN +uav_debugaccess => av_debugaccess.DATAIN +uav_clken => ~NO_FANOUT~ +uav_readdatavalid <= read_latency_shift_reg[0].DB_MAX_OUTPUT_PORT_TYPE +uav_waitrequest <= uav_waitrequest.DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[0] <= av_readdata_pre[0].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[1] <= av_readdata_pre[1].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[2] <= av_readdata_pre[2].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[3] <= av_readdata_pre[3].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[4] <= av_readdata_pre[4].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[5] <= av_readdata_pre[5].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[6] <= av_readdata_pre[6].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[7] <= av_readdata_pre[7].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[8] <= av_readdata_pre[8].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[9] <= av_readdata_pre[9].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[10] <= av_readdata_pre[10].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[11] <= av_readdata_pre[11].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[12] <= av_readdata_pre[12].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[13] <= av_readdata_pre[13].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[14] <= av_readdata_pre[14].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[15] <= av_readdata_pre[15].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[16] <= av_readdata_pre[16].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[17] <= av_readdata_pre[17].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[18] <= av_readdata_pre[18].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[19] <= av_readdata_pre[19].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[20] <= av_readdata_pre[20].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[21] <= av_readdata_pre[21].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[22] <= av_readdata_pre[22].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[23] <= av_readdata_pre[23].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[24] <= av_readdata_pre[24].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[25] <= av_readdata_pre[25].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[26] <= av_readdata_pre[26].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[27] <= av_readdata_pre[27].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[28] <= av_readdata_pre[28].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[29] <= av_readdata_pre[29].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[30] <= av_readdata_pre[30].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[31] <= av_readdata_pre[31].DB_MAX_OUTPUT_PORT_TYPE +uav_response[0] <= +uav_response[1] <= +uav_writeresponserequest => av_writeresponserequest.DATAIN +uav_writeresponsevalid <= av_writeresponsevalid.DB_MAX_OUTPUT_PORT_TYPE +av_address[0] <= uav_address[2].DB_MAX_OUTPUT_PORT_TYPE +av_address[1] <= uav_address[3].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[0] <= uav_writedata[0].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[1] <= uav_writedata[1].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[2] <= uav_writedata[2].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[3] <= uav_writedata[3].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[4] <= uav_writedata[4].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[5] <= uav_writedata[5].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[6] <= uav_writedata[6].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[7] <= uav_writedata[7].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[8] <= uav_writedata[8].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[9] <= uav_writedata[9].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[10] <= uav_writedata[10].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[11] <= uav_writedata[11].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[12] <= uav_writedata[12].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[13] <= uav_writedata[13].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[14] <= uav_writedata[14].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[15] <= uav_writedata[15].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[16] <= uav_writedata[16].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[17] <= uav_writedata[17].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[18] <= uav_writedata[18].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[19] <= uav_writedata[19].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[20] <= uav_writedata[20].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[21] <= uav_writedata[21].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[22] <= uav_writedata[22].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[23] <= uav_writedata[23].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[24] <= uav_writedata[24].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[25] <= uav_writedata[25].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[26] <= uav_writedata[26].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[27] <= uav_writedata[27].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[28] <= uav_writedata[28].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[29] <= uav_writedata[29].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[30] <= uav_writedata[30].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[31] <= uav_writedata[31].DB_MAX_OUTPUT_PORT_TYPE +av_write <= av_write.DB_MAX_OUTPUT_PORT_TYPE +av_read <= av_read.DB_MAX_OUTPUT_PORT_TYPE +av_burstcount[0] <= uav_burstcount[2].DB_MAX_OUTPUT_PORT_TYPE +av_byteenable[0] <= uav_byteenable[0].DB_MAX_OUTPUT_PORT_TYPE +av_writebyteenable[0] <= av_writebyteenable.DB_MAX_OUTPUT_PORT_TYPE +av_begintransfer <= av_begintransfer.DB_MAX_OUTPUT_PORT_TYPE +av_chipselect <= av_chipselect.DB_MAX_OUTPUT_PORT_TYPE +av_beginbursttransfer <= av_beginbursttransfer.DB_MAX_OUTPUT_PORT_TYPE +av_lock <= uav_lock.DB_MAX_OUTPUT_PORT_TYPE +av_clken <= +av_debugaccess <= uav_debugaccess.DB_MAX_OUTPUT_PORT_TYPE +av_outputenable <= av_outputenable.DB_MAX_OUTPUT_PORT_TYPE +av_readdata[0] => av_readdata_pre[0].DATAIN +av_readdata[1] => av_readdata_pre[1].DATAIN +av_readdata[2] => av_readdata_pre[2].DATAIN +av_readdata[3] => av_readdata_pre[3].DATAIN +av_readdata[4] => av_readdata_pre[4].DATAIN +av_readdata[5] => av_readdata_pre[5].DATAIN +av_readdata[6] => av_readdata_pre[6].DATAIN +av_readdata[7] => av_readdata_pre[7].DATAIN +av_readdata[8] => av_readdata_pre[8].DATAIN +av_readdata[9] => av_readdata_pre[9].DATAIN +av_readdata[10] => av_readdata_pre[10].DATAIN +av_readdata[11] => av_readdata_pre[11].DATAIN +av_readdata[12] => av_readdata_pre[12].DATAIN +av_readdata[13] => av_readdata_pre[13].DATAIN +av_readdata[14] => av_readdata_pre[14].DATAIN +av_readdata[15] => av_readdata_pre[15].DATAIN +av_readdata[16] => av_readdata_pre[16].DATAIN +av_readdata[17] => av_readdata_pre[17].DATAIN +av_readdata[18] => av_readdata_pre[18].DATAIN +av_readdata[19] => av_readdata_pre[19].DATAIN +av_readdata[20] => av_readdata_pre[20].DATAIN +av_readdata[21] => av_readdata_pre[21].DATAIN +av_readdata[22] => av_readdata_pre[22].DATAIN +av_readdata[23] => av_readdata_pre[23].DATAIN +av_readdata[24] => av_readdata_pre[24].DATAIN +av_readdata[25] => av_readdata_pre[25].DATAIN +av_readdata[26] => av_readdata_pre[26].DATAIN +av_readdata[27] => av_readdata_pre[27].DATAIN +av_readdata[28] => av_readdata_pre[28].DATAIN +av_readdata[29] => av_readdata_pre[29].DATAIN +av_readdata[30] => av_readdata_pre[30].DATAIN +av_readdata[31] => av_readdata_pre[31].DATAIN +av_readdatavalid => ~NO_FANOUT~ +av_waitrequest => ~NO_FANOUT~ +av_response[0] => ~NO_FANOUT~ +av_response[1] => ~NO_FANOUT~ +av_writeresponserequest <= uav_writeresponserequest.DB_MAX_OUTPUT_PORT_TYPE +av_writeresponsevalid => uav_writeresponsevalid.DATAIN + + +|lights|nios_system:NiosII|altera_merlin_slave_translator:hex5_s1_translator +clk => in_transfer.CLK +clk => end_beginbursttransfer.CLK +clk => end_begintransfer.CLK +clk => av_chipselect_pre.CLK +clk => av_outputenable_pre.CLK +clk => read_latency_shift_reg[0].CLK +clk => av_readdata_pre[0].CLK +clk => av_readdata_pre[1].CLK +clk => av_readdata_pre[2].CLK +clk => av_readdata_pre[3].CLK +clk => av_readdata_pre[4].CLK +clk => av_readdata_pre[5].CLK +clk => av_readdata_pre[6].CLK +clk => av_readdata_pre[7].CLK +clk => av_readdata_pre[8].CLK +clk => av_readdata_pre[9].CLK +clk => av_readdata_pre[10].CLK +clk => av_readdata_pre[11].CLK +clk => av_readdata_pre[12].CLK +clk => av_readdata_pre[13].CLK +clk => av_readdata_pre[14].CLK +clk => av_readdata_pre[15].CLK +clk => av_readdata_pre[16].CLK +clk => av_readdata_pre[17].CLK +clk => av_readdata_pre[18].CLK +clk => av_readdata_pre[19].CLK +clk => av_readdata_pre[20].CLK +clk => av_readdata_pre[21].CLK +clk => av_readdata_pre[22].CLK +clk => av_readdata_pre[23].CLK +clk => av_readdata_pre[24].CLK +clk => av_readdata_pre[25].CLK +clk => av_readdata_pre[26].CLK +clk => av_readdata_pre[27].CLK +clk => av_readdata_pre[28].CLK +clk => av_readdata_pre[29].CLK +clk => av_readdata_pre[30].CLK +clk => av_readdata_pre[31].CLK +clk => waitrequest_reset_override.CLK +clk => wait_latency_counter[0].CLK +clk => wait_latency_counter[1].CLK +reset => in_transfer.ACLR +reset => end_beginbursttransfer.ACLR +reset => end_begintransfer.ACLR +reset => av_chipselect_pre.ACLR +reset => av_outputenable_pre.ACLR +reset => read_latency_shift_reg[0].ACLR +reset => av_readdata_pre[0].ACLR +reset => av_readdata_pre[1].ACLR +reset => av_readdata_pre[2].ACLR +reset => av_readdata_pre[3].ACLR +reset => av_readdata_pre[4].ACLR +reset => av_readdata_pre[5].ACLR +reset => av_readdata_pre[6].ACLR +reset => av_readdata_pre[7].ACLR +reset => av_readdata_pre[8].ACLR +reset => av_readdata_pre[9].ACLR +reset => av_readdata_pre[10].ACLR +reset => av_readdata_pre[11].ACLR +reset => av_readdata_pre[12].ACLR +reset => av_readdata_pre[13].ACLR +reset => av_readdata_pre[14].ACLR +reset => av_readdata_pre[15].ACLR +reset => av_readdata_pre[16].ACLR +reset => av_readdata_pre[17].ACLR +reset => av_readdata_pre[18].ACLR +reset => av_readdata_pre[19].ACLR +reset => av_readdata_pre[20].ACLR +reset => av_readdata_pre[21].ACLR +reset => av_readdata_pre[22].ACLR +reset => av_readdata_pre[23].ACLR +reset => av_readdata_pre[24].ACLR +reset => av_readdata_pre[25].ACLR +reset => av_readdata_pre[26].ACLR +reset => av_readdata_pre[27].ACLR +reset => av_readdata_pre[28].ACLR +reset => av_readdata_pre[29].ACLR +reset => av_readdata_pre[30].ACLR +reset => av_readdata_pre[31].ACLR +reset => waitrequest_reset_override.PRESET +reset => wait_latency_counter[0].ACLR +reset => wait_latency_counter[1].ACLR +uav_address[0] => ~NO_FANOUT~ +uav_address[1] => ~NO_FANOUT~ +uav_address[2] => av_address[0].DATAIN +uav_address[3] => av_address[1].DATAIN +uav_address[4] => ~NO_FANOUT~ +uav_address[5] => ~NO_FANOUT~ +uav_address[6] => ~NO_FANOUT~ +uav_address[7] => ~NO_FANOUT~ +uav_address[8] => ~NO_FANOUT~ +uav_address[9] => ~NO_FANOUT~ +uav_address[10] => ~NO_FANOUT~ +uav_address[11] => ~NO_FANOUT~ +uav_address[12] => ~NO_FANOUT~ +uav_address[13] => ~NO_FANOUT~ +uav_address[14] => ~NO_FANOUT~ +uav_address[15] => ~NO_FANOUT~ +uav_address[16] => ~NO_FANOUT~ +uav_address[17] => ~NO_FANOUT~ +uav_address[18] => ~NO_FANOUT~ +uav_writedata[0] => av_writedata[0].DATAIN +uav_writedata[1] => av_writedata[1].DATAIN +uav_writedata[2] => av_writedata[2].DATAIN +uav_writedata[3] => av_writedata[3].DATAIN +uav_writedata[4] => av_writedata[4].DATAIN +uav_writedata[5] => av_writedata[5].DATAIN +uav_writedata[6] => av_writedata[6].DATAIN +uav_writedata[7] => av_writedata[7].DATAIN +uav_writedata[8] => av_writedata[8].DATAIN +uav_writedata[9] => av_writedata[9].DATAIN +uav_writedata[10] => av_writedata[10].DATAIN +uav_writedata[11] => av_writedata[11].DATAIN +uav_writedata[12] => av_writedata[12].DATAIN +uav_writedata[13] => av_writedata[13].DATAIN +uav_writedata[14] => av_writedata[14].DATAIN +uav_writedata[15] => av_writedata[15].DATAIN +uav_writedata[16] => av_writedata[16].DATAIN +uav_writedata[17] => av_writedata[17].DATAIN +uav_writedata[18] => av_writedata[18].DATAIN +uav_writedata[19] => av_writedata[19].DATAIN +uav_writedata[20] => av_writedata[20].DATAIN +uav_writedata[21] => av_writedata[21].DATAIN +uav_writedata[22] => av_writedata[22].DATAIN +uav_writedata[23] => av_writedata[23].DATAIN +uav_writedata[24] => av_writedata[24].DATAIN +uav_writedata[25] => av_writedata[25].DATAIN +uav_writedata[26] => av_writedata[26].DATAIN +uav_writedata[27] => av_writedata[27].DATAIN +uav_writedata[28] => av_writedata[28].DATAIN +uav_writedata[29] => av_writedata[29].DATAIN +uav_writedata[30] => av_writedata[30].DATAIN +uav_writedata[31] => av_writedata[31].DATAIN +uav_write => av_writebyteenable.IN0 +uav_write => av_write.IN1 +uav_write => av_waitrequest_generated.OUTPUTSELECT +uav_write => av_begintransfer.IN0 +uav_write => end_beginbursttransfer.IN1 +uav_write => always20.IN1 +uav_write => in_transfer.OUTPUTSELECT +uav_read => av_read.IN1 +uav_read => read_latency_shift_reg.IN1 +uav_read => av_outputenable.OUTPUTSELECT +uav_read => av_begintransfer.IN1 +uav_read => av_beginbursttransfer.OUTPUTSELECT +uav_burstcount[0] => Equal2.IN3 +uav_burstcount[1] => Equal2.IN2 +uav_burstcount[2] => av_burstcount[0].DATAIN +uav_burstcount[2] => Equal2.IN4 +uav_byteenable[0] => av_writebyteenable.IN1 +uav_byteenable[0] => av_byteenable[0].DATAIN +uav_byteenable[1] => ~NO_FANOUT~ +uav_byteenable[2] => ~NO_FANOUT~ +uav_byteenable[3] => ~NO_FANOUT~ +uav_lock => av_lock.DATAIN +uav_debugaccess => av_debugaccess.DATAIN +uav_clken => ~NO_FANOUT~ +uav_readdatavalid <= read_latency_shift_reg[0].DB_MAX_OUTPUT_PORT_TYPE +uav_waitrequest <= uav_waitrequest.DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[0] <= av_readdata_pre[0].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[1] <= av_readdata_pre[1].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[2] <= av_readdata_pre[2].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[3] <= av_readdata_pre[3].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[4] <= av_readdata_pre[4].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[5] <= av_readdata_pre[5].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[6] <= av_readdata_pre[6].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[7] <= av_readdata_pre[7].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[8] <= av_readdata_pre[8].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[9] <= av_readdata_pre[9].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[10] <= av_readdata_pre[10].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[11] <= av_readdata_pre[11].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[12] <= av_readdata_pre[12].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[13] <= av_readdata_pre[13].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[14] <= av_readdata_pre[14].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[15] <= av_readdata_pre[15].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[16] <= av_readdata_pre[16].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[17] <= av_readdata_pre[17].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[18] <= av_readdata_pre[18].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[19] <= av_readdata_pre[19].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[20] <= av_readdata_pre[20].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[21] <= av_readdata_pre[21].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[22] <= av_readdata_pre[22].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[23] <= av_readdata_pre[23].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[24] <= av_readdata_pre[24].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[25] <= av_readdata_pre[25].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[26] <= av_readdata_pre[26].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[27] <= av_readdata_pre[27].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[28] <= av_readdata_pre[28].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[29] <= av_readdata_pre[29].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[30] <= av_readdata_pre[30].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[31] <= av_readdata_pre[31].DB_MAX_OUTPUT_PORT_TYPE +uav_response[0] <= +uav_response[1] <= +uav_writeresponserequest => av_writeresponserequest.DATAIN +uav_writeresponsevalid <= av_writeresponsevalid.DB_MAX_OUTPUT_PORT_TYPE +av_address[0] <= uav_address[2].DB_MAX_OUTPUT_PORT_TYPE +av_address[1] <= uav_address[3].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[0] <= uav_writedata[0].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[1] <= uav_writedata[1].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[2] <= uav_writedata[2].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[3] <= uav_writedata[3].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[4] <= uav_writedata[4].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[5] <= uav_writedata[5].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[6] <= uav_writedata[6].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[7] <= uav_writedata[7].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[8] <= uav_writedata[8].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[9] <= uav_writedata[9].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[10] <= uav_writedata[10].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[11] <= uav_writedata[11].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[12] <= uav_writedata[12].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[13] <= uav_writedata[13].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[14] <= uav_writedata[14].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[15] <= uav_writedata[15].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[16] <= uav_writedata[16].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[17] <= uav_writedata[17].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[18] <= uav_writedata[18].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[19] <= uav_writedata[19].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[20] <= uav_writedata[20].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[21] <= uav_writedata[21].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[22] <= uav_writedata[22].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[23] <= uav_writedata[23].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[24] <= uav_writedata[24].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[25] <= uav_writedata[25].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[26] <= uav_writedata[26].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[27] <= uav_writedata[27].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[28] <= uav_writedata[28].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[29] <= uav_writedata[29].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[30] <= uav_writedata[30].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[31] <= uav_writedata[31].DB_MAX_OUTPUT_PORT_TYPE +av_write <= av_write.DB_MAX_OUTPUT_PORT_TYPE +av_read <= av_read.DB_MAX_OUTPUT_PORT_TYPE +av_burstcount[0] <= uav_burstcount[2].DB_MAX_OUTPUT_PORT_TYPE +av_byteenable[0] <= uav_byteenable[0].DB_MAX_OUTPUT_PORT_TYPE +av_writebyteenable[0] <= av_writebyteenable.DB_MAX_OUTPUT_PORT_TYPE +av_begintransfer <= av_begintransfer.DB_MAX_OUTPUT_PORT_TYPE +av_chipselect <= av_chipselect.DB_MAX_OUTPUT_PORT_TYPE +av_beginbursttransfer <= av_beginbursttransfer.DB_MAX_OUTPUT_PORT_TYPE +av_lock <= uav_lock.DB_MAX_OUTPUT_PORT_TYPE +av_clken <= +av_debugaccess <= uav_debugaccess.DB_MAX_OUTPUT_PORT_TYPE +av_outputenable <= av_outputenable.DB_MAX_OUTPUT_PORT_TYPE +av_readdata[0] => av_readdata_pre[0].DATAIN +av_readdata[1] => av_readdata_pre[1].DATAIN +av_readdata[2] => av_readdata_pre[2].DATAIN +av_readdata[3] => av_readdata_pre[3].DATAIN +av_readdata[4] => av_readdata_pre[4].DATAIN +av_readdata[5] => av_readdata_pre[5].DATAIN +av_readdata[6] => av_readdata_pre[6].DATAIN +av_readdata[7] => av_readdata_pre[7].DATAIN +av_readdata[8] => av_readdata_pre[8].DATAIN +av_readdata[9] => av_readdata_pre[9].DATAIN +av_readdata[10] => av_readdata_pre[10].DATAIN +av_readdata[11] => av_readdata_pre[11].DATAIN +av_readdata[12] => av_readdata_pre[12].DATAIN +av_readdata[13] => av_readdata_pre[13].DATAIN +av_readdata[14] => av_readdata_pre[14].DATAIN +av_readdata[15] => av_readdata_pre[15].DATAIN +av_readdata[16] => av_readdata_pre[16].DATAIN +av_readdata[17] => av_readdata_pre[17].DATAIN +av_readdata[18] => av_readdata_pre[18].DATAIN +av_readdata[19] => av_readdata_pre[19].DATAIN +av_readdata[20] => av_readdata_pre[20].DATAIN +av_readdata[21] => av_readdata_pre[21].DATAIN +av_readdata[22] => av_readdata_pre[22].DATAIN +av_readdata[23] => av_readdata_pre[23].DATAIN +av_readdata[24] => av_readdata_pre[24].DATAIN +av_readdata[25] => av_readdata_pre[25].DATAIN +av_readdata[26] => av_readdata_pre[26].DATAIN +av_readdata[27] => av_readdata_pre[27].DATAIN +av_readdata[28] => av_readdata_pre[28].DATAIN +av_readdata[29] => av_readdata_pre[29].DATAIN +av_readdata[30] => av_readdata_pre[30].DATAIN +av_readdata[31] => av_readdata_pre[31].DATAIN +av_readdatavalid => ~NO_FANOUT~ +av_waitrequest => ~NO_FANOUT~ +av_response[0] => ~NO_FANOUT~ +av_response[1] => ~NO_FANOUT~ +av_writeresponserequest <= uav_writeresponserequest.DB_MAX_OUTPUT_PORT_TYPE +av_writeresponsevalid => uav_writeresponsevalid.DATAIN + + +|lights|nios_system:NiosII|altera_merlin_slave_translator:hex6_s1_translator +clk => in_transfer.CLK +clk => end_beginbursttransfer.CLK +clk => end_begintransfer.CLK +clk => av_chipselect_pre.CLK +clk => av_outputenable_pre.CLK +clk => read_latency_shift_reg[0].CLK +clk => av_readdata_pre[0].CLK +clk => av_readdata_pre[1].CLK +clk => av_readdata_pre[2].CLK +clk => av_readdata_pre[3].CLK +clk => av_readdata_pre[4].CLK +clk => av_readdata_pre[5].CLK +clk => av_readdata_pre[6].CLK +clk => av_readdata_pre[7].CLK +clk => av_readdata_pre[8].CLK +clk => av_readdata_pre[9].CLK +clk => av_readdata_pre[10].CLK +clk => av_readdata_pre[11].CLK +clk => av_readdata_pre[12].CLK +clk => av_readdata_pre[13].CLK +clk => av_readdata_pre[14].CLK +clk => av_readdata_pre[15].CLK +clk => av_readdata_pre[16].CLK +clk => av_readdata_pre[17].CLK +clk => av_readdata_pre[18].CLK +clk => av_readdata_pre[19].CLK +clk => av_readdata_pre[20].CLK +clk => av_readdata_pre[21].CLK +clk => av_readdata_pre[22].CLK +clk => av_readdata_pre[23].CLK +clk => av_readdata_pre[24].CLK +clk => av_readdata_pre[25].CLK +clk => av_readdata_pre[26].CLK +clk => av_readdata_pre[27].CLK +clk => av_readdata_pre[28].CLK +clk => av_readdata_pre[29].CLK +clk => av_readdata_pre[30].CLK +clk => av_readdata_pre[31].CLK +clk => waitrequest_reset_override.CLK +clk => wait_latency_counter[0].CLK +clk => wait_latency_counter[1].CLK +reset => in_transfer.ACLR +reset => end_beginbursttransfer.ACLR +reset => end_begintransfer.ACLR +reset => av_chipselect_pre.ACLR +reset => av_outputenable_pre.ACLR +reset => read_latency_shift_reg[0].ACLR +reset => av_readdata_pre[0].ACLR +reset => av_readdata_pre[1].ACLR +reset => av_readdata_pre[2].ACLR +reset => av_readdata_pre[3].ACLR +reset => av_readdata_pre[4].ACLR +reset => av_readdata_pre[5].ACLR +reset => av_readdata_pre[6].ACLR +reset => av_readdata_pre[7].ACLR +reset => av_readdata_pre[8].ACLR +reset => av_readdata_pre[9].ACLR +reset => av_readdata_pre[10].ACLR +reset => av_readdata_pre[11].ACLR +reset => av_readdata_pre[12].ACLR +reset => av_readdata_pre[13].ACLR +reset => av_readdata_pre[14].ACLR +reset => av_readdata_pre[15].ACLR +reset => av_readdata_pre[16].ACLR +reset => av_readdata_pre[17].ACLR +reset => av_readdata_pre[18].ACLR +reset => av_readdata_pre[19].ACLR +reset => av_readdata_pre[20].ACLR +reset => av_readdata_pre[21].ACLR +reset => av_readdata_pre[22].ACLR +reset => av_readdata_pre[23].ACLR +reset => av_readdata_pre[24].ACLR +reset => av_readdata_pre[25].ACLR +reset => av_readdata_pre[26].ACLR +reset => av_readdata_pre[27].ACLR +reset => av_readdata_pre[28].ACLR +reset => av_readdata_pre[29].ACLR +reset => av_readdata_pre[30].ACLR +reset => av_readdata_pre[31].ACLR +reset => waitrequest_reset_override.PRESET +reset => wait_latency_counter[0].ACLR +reset => wait_latency_counter[1].ACLR +uav_address[0] => ~NO_FANOUT~ +uav_address[1] => ~NO_FANOUT~ +uav_address[2] => av_address[0].DATAIN +uav_address[3] => av_address[1].DATAIN +uav_address[4] => ~NO_FANOUT~ +uav_address[5] => ~NO_FANOUT~ +uav_address[6] => ~NO_FANOUT~ +uav_address[7] => ~NO_FANOUT~ +uav_address[8] => ~NO_FANOUT~ +uav_address[9] => ~NO_FANOUT~ +uav_address[10] => ~NO_FANOUT~ +uav_address[11] => ~NO_FANOUT~ +uav_address[12] => ~NO_FANOUT~ +uav_address[13] => ~NO_FANOUT~ +uav_address[14] => ~NO_FANOUT~ +uav_address[15] => ~NO_FANOUT~ +uav_address[16] => ~NO_FANOUT~ +uav_address[17] => ~NO_FANOUT~ +uav_address[18] => ~NO_FANOUT~ +uav_writedata[0] => av_writedata[0].DATAIN +uav_writedata[1] => av_writedata[1].DATAIN +uav_writedata[2] => av_writedata[2].DATAIN +uav_writedata[3] => av_writedata[3].DATAIN +uav_writedata[4] => av_writedata[4].DATAIN +uav_writedata[5] => av_writedata[5].DATAIN +uav_writedata[6] => av_writedata[6].DATAIN +uav_writedata[7] => av_writedata[7].DATAIN +uav_writedata[8] => av_writedata[8].DATAIN +uav_writedata[9] => av_writedata[9].DATAIN +uav_writedata[10] => av_writedata[10].DATAIN +uav_writedata[11] => av_writedata[11].DATAIN +uav_writedata[12] => av_writedata[12].DATAIN +uav_writedata[13] => av_writedata[13].DATAIN +uav_writedata[14] => av_writedata[14].DATAIN +uav_writedata[15] => av_writedata[15].DATAIN +uav_writedata[16] => av_writedata[16].DATAIN +uav_writedata[17] => av_writedata[17].DATAIN +uav_writedata[18] => av_writedata[18].DATAIN +uav_writedata[19] => av_writedata[19].DATAIN +uav_writedata[20] => av_writedata[20].DATAIN +uav_writedata[21] => av_writedata[21].DATAIN +uav_writedata[22] => av_writedata[22].DATAIN +uav_writedata[23] => av_writedata[23].DATAIN +uav_writedata[24] => av_writedata[24].DATAIN +uav_writedata[25] => av_writedata[25].DATAIN +uav_writedata[26] => av_writedata[26].DATAIN +uav_writedata[27] => av_writedata[27].DATAIN +uav_writedata[28] => av_writedata[28].DATAIN +uav_writedata[29] => av_writedata[29].DATAIN +uav_writedata[30] => av_writedata[30].DATAIN +uav_writedata[31] => av_writedata[31].DATAIN +uav_write => av_writebyteenable.IN0 +uav_write => av_write.IN1 +uav_write => av_waitrequest_generated.OUTPUTSELECT +uav_write => av_begintransfer.IN0 +uav_write => end_beginbursttransfer.IN1 +uav_write => always20.IN1 +uav_write => in_transfer.OUTPUTSELECT +uav_read => av_read.IN1 +uav_read => read_latency_shift_reg.IN1 +uav_read => av_outputenable.OUTPUTSELECT +uav_read => av_begintransfer.IN1 +uav_read => av_beginbursttransfer.OUTPUTSELECT +uav_burstcount[0] => Equal2.IN3 +uav_burstcount[1] => Equal2.IN2 +uav_burstcount[2] => av_burstcount[0].DATAIN +uav_burstcount[2] => Equal2.IN4 +uav_byteenable[0] => av_writebyteenable.IN1 +uav_byteenable[0] => av_byteenable[0].DATAIN +uav_byteenable[1] => ~NO_FANOUT~ +uav_byteenable[2] => ~NO_FANOUT~ +uav_byteenable[3] => ~NO_FANOUT~ +uav_lock => av_lock.DATAIN +uav_debugaccess => av_debugaccess.DATAIN +uav_clken => ~NO_FANOUT~ +uav_readdatavalid <= read_latency_shift_reg[0].DB_MAX_OUTPUT_PORT_TYPE +uav_waitrequest <= uav_waitrequest.DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[0] <= av_readdata_pre[0].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[1] <= av_readdata_pre[1].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[2] <= av_readdata_pre[2].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[3] <= av_readdata_pre[3].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[4] <= av_readdata_pre[4].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[5] <= av_readdata_pre[5].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[6] <= av_readdata_pre[6].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[7] <= av_readdata_pre[7].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[8] <= av_readdata_pre[8].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[9] <= av_readdata_pre[9].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[10] <= av_readdata_pre[10].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[11] <= av_readdata_pre[11].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[12] <= av_readdata_pre[12].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[13] <= av_readdata_pre[13].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[14] <= av_readdata_pre[14].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[15] <= av_readdata_pre[15].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[16] <= av_readdata_pre[16].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[17] <= av_readdata_pre[17].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[18] <= av_readdata_pre[18].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[19] <= av_readdata_pre[19].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[20] <= av_readdata_pre[20].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[21] <= av_readdata_pre[21].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[22] <= av_readdata_pre[22].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[23] <= av_readdata_pre[23].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[24] <= av_readdata_pre[24].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[25] <= av_readdata_pre[25].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[26] <= av_readdata_pre[26].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[27] <= av_readdata_pre[27].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[28] <= av_readdata_pre[28].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[29] <= av_readdata_pre[29].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[30] <= av_readdata_pre[30].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[31] <= av_readdata_pre[31].DB_MAX_OUTPUT_PORT_TYPE +uav_response[0] <= +uav_response[1] <= +uav_writeresponserequest => av_writeresponserequest.DATAIN +uav_writeresponsevalid <= av_writeresponsevalid.DB_MAX_OUTPUT_PORT_TYPE +av_address[0] <= uav_address[2].DB_MAX_OUTPUT_PORT_TYPE +av_address[1] <= uav_address[3].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[0] <= uav_writedata[0].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[1] <= uav_writedata[1].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[2] <= uav_writedata[2].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[3] <= uav_writedata[3].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[4] <= uav_writedata[4].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[5] <= uav_writedata[5].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[6] <= uav_writedata[6].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[7] <= uav_writedata[7].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[8] <= uav_writedata[8].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[9] <= uav_writedata[9].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[10] <= uav_writedata[10].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[11] <= uav_writedata[11].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[12] <= uav_writedata[12].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[13] <= uav_writedata[13].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[14] <= uav_writedata[14].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[15] <= uav_writedata[15].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[16] <= uav_writedata[16].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[17] <= uav_writedata[17].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[18] <= uav_writedata[18].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[19] <= uav_writedata[19].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[20] <= uav_writedata[20].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[21] <= uav_writedata[21].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[22] <= uav_writedata[22].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[23] <= uav_writedata[23].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[24] <= uav_writedata[24].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[25] <= uav_writedata[25].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[26] <= uav_writedata[26].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[27] <= uav_writedata[27].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[28] <= uav_writedata[28].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[29] <= uav_writedata[29].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[30] <= uav_writedata[30].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[31] <= uav_writedata[31].DB_MAX_OUTPUT_PORT_TYPE +av_write <= av_write.DB_MAX_OUTPUT_PORT_TYPE +av_read <= av_read.DB_MAX_OUTPUT_PORT_TYPE +av_burstcount[0] <= uav_burstcount[2].DB_MAX_OUTPUT_PORT_TYPE +av_byteenable[0] <= uav_byteenable[0].DB_MAX_OUTPUT_PORT_TYPE +av_writebyteenable[0] <= av_writebyteenable.DB_MAX_OUTPUT_PORT_TYPE +av_begintransfer <= av_begintransfer.DB_MAX_OUTPUT_PORT_TYPE +av_chipselect <= av_chipselect.DB_MAX_OUTPUT_PORT_TYPE +av_beginbursttransfer <= av_beginbursttransfer.DB_MAX_OUTPUT_PORT_TYPE +av_lock <= uav_lock.DB_MAX_OUTPUT_PORT_TYPE +av_clken <= +av_debugaccess <= uav_debugaccess.DB_MAX_OUTPUT_PORT_TYPE +av_outputenable <= av_outputenable.DB_MAX_OUTPUT_PORT_TYPE +av_readdata[0] => av_readdata_pre[0].DATAIN +av_readdata[1] => av_readdata_pre[1].DATAIN +av_readdata[2] => av_readdata_pre[2].DATAIN +av_readdata[3] => av_readdata_pre[3].DATAIN +av_readdata[4] => av_readdata_pre[4].DATAIN +av_readdata[5] => av_readdata_pre[5].DATAIN +av_readdata[6] => av_readdata_pre[6].DATAIN +av_readdata[7] => av_readdata_pre[7].DATAIN +av_readdata[8] => av_readdata_pre[8].DATAIN +av_readdata[9] => av_readdata_pre[9].DATAIN +av_readdata[10] => av_readdata_pre[10].DATAIN +av_readdata[11] => av_readdata_pre[11].DATAIN +av_readdata[12] => av_readdata_pre[12].DATAIN +av_readdata[13] => av_readdata_pre[13].DATAIN +av_readdata[14] => av_readdata_pre[14].DATAIN +av_readdata[15] => av_readdata_pre[15].DATAIN +av_readdata[16] => av_readdata_pre[16].DATAIN +av_readdata[17] => av_readdata_pre[17].DATAIN +av_readdata[18] => av_readdata_pre[18].DATAIN +av_readdata[19] => av_readdata_pre[19].DATAIN +av_readdata[20] => av_readdata_pre[20].DATAIN +av_readdata[21] => av_readdata_pre[21].DATAIN +av_readdata[22] => av_readdata_pre[22].DATAIN +av_readdata[23] => av_readdata_pre[23].DATAIN +av_readdata[24] => av_readdata_pre[24].DATAIN +av_readdata[25] => av_readdata_pre[25].DATAIN +av_readdata[26] => av_readdata_pre[26].DATAIN +av_readdata[27] => av_readdata_pre[27].DATAIN +av_readdata[28] => av_readdata_pre[28].DATAIN +av_readdata[29] => av_readdata_pre[29].DATAIN +av_readdata[30] => av_readdata_pre[30].DATAIN +av_readdata[31] => av_readdata_pre[31].DATAIN +av_readdatavalid => ~NO_FANOUT~ +av_waitrequest => ~NO_FANOUT~ +av_response[0] => ~NO_FANOUT~ +av_response[1] => ~NO_FANOUT~ +av_writeresponserequest <= uav_writeresponserequest.DB_MAX_OUTPUT_PORT_TYPE +av_writeresponsevalid => uav_writeresponsevalid.DATAIN + + +|lights|nios_system:NiosII|altera_merlin_slave_translator:hex7_s1_translator +clk => in_transfer.CLK +clk => end_beginbursttransfer.CLK +clk => end_begintransfer.CLK +clk => av_chipselect_pre.CLK +clk => av_outputenable_pre.CLK +clk => read_latency_shift_reg[0].CLK +clk => av_readdata_pre[0].CLK +clk => av_readdata_pre[1].CLK +clk => av_readdata_pre[2].CLK +clk => av_readdata_pre[3].CLK +clk => av_readdata_pre[4].CLK +clk => av_readdata_pre[5].CLK +clk => av_readdata_pre[6].CLK +clk => av_readdata_pre[7].CLK +clk => av_readdata_pre[8].CLK +clk => av_readdata_pre[9].CLK +clk => av_readdata_pre[10].CLK +clk => av_readdata_pre[11].CLK +clk => av_readdata_pre[12].CLK +clk => av_readdata_pre[13].CLK +clk => av_readdata_pre[14].CLK +clk => av_readdata_pre[15].CLK +clk => av_readdata_pre[16].CLK +clk => av_readdata_pre[17].CLK +clk => av_readdata_pre[18].CLK +clk => av_readdata_pre[19].CLK +clk => av_readdata_pre[20].CLK +clk => av_readdata_pre[21].CLK +clk => av_readdata_pre[22].CLK +clk => av_readdata_pre[23].CLK +clk => av_readdata_pre[24].CLK +clk => av_readdata_pre[25].CLK +clk => av_readdata_pre[26].CLK +clk => av_readdata_pre[27].CLK +clk => av_readdata_pre[28].CLK +clk => av_readdata_pre[29].CLK +clk => av_readdata_pre[30].CLK +clk => av_readdata_pre[31].CLK +clk => waitrequest_reset_override.CLK +clk => wait_latency_counter[0].CLK +clk => wait_latency_counter[1].CLK +reset => in_transfer.ACLR +reset => end_beginbursttransfer.ACLR +reset => end_begintransfer.ACLR +reset => av_chipselect_pre.ACLR +reset => av_outputenable_pre.ACLR +reset => read_latency_shift_reg[0].ACLR +reset => av_readdata_pre[0].ACLR +reset => av_readdata_pre[1].ACLR +reset => av_readdata_pre[2].ACLR +reset => av_readdata_pre[3].ACLR +reset => av_readdata_pre[4].ACLR +reset => av_readdata_pre[5].ACLR +reset => av_readdata_pre[6].ACLR +reset => av_readdata_pre[7].ACLR +reset => av_readdata_pre[8].ACLR +reset => av_readdata_pre[9].ACLR +reset => av_readdata_pre[10].ACLR +reset => av_readdata_pre[11].ACLR +reset => av_readdata_pre[12].ACLR +reset => av_readdata_pre[13].ACLR +reset => av_readdata_pre[14].ACLR +reset => av_readdata_pre[15].ACLR +reset => av_readdata_pre[16].ACLR +reset => av_readdata_pre[17].ACLR +reset => av_readdata_pre[18].ACLR +reset => av_readdata_pre[19].ACLR +reset => av_readdata_pre[20].ACLR +reset => av_readdata_pre[21].ACLR +reset => av_readdata_pre[22].ACLR +reset => av_readdata_pre[23].ACLR +reset => av_readdata_pre[24].ACLR +reset => av_readdata_pre[25].ACLR +reset => av_readdata_pre[26].ACLR +reset => av_readdata_pre[27].ACLR +reset => av_readdata_pre[28].ACLR +reset => av_readdata_pre[29].ACLR +reset => av_readdata_pre[30].ACLR +reset => av_readdata_pre[31].ACLR +reset => waitrequest_reset_override.PRESET +reset => wait_latency_counter[0].ACLR +reset => wait_latency_counter[1].ACLR +uav_address[0] => ~NO_FANOUT~ +uav_address[1] => ~NO_FANOUT~ +uav_address[2] => av_address[0].DATAIN +uav_address[3] => av_address[1].DATAIN +uav_address[4] => ~NO_FANOUT~ +uav_address[5] => ~NO_FANOUT~ +uav_address[6] => ~NO_FANOUT~ +uav_address[7] => ~NO_FANOUT~ +uav_address[8] => ~NO_FANOUT~ +uav_address[9] => ~NO_FANOUT~ +uav_address[10] => ~NO_FANOUT~ +uav_address[11] => ~NO_FANOUT~ +uav_address[12] => ~NO_FANOUT~ +uav_address[13] => ~NO_FANOUT~ +uav_address[14] => ~NO_FANOUT~ +uav_address[15] => ~NO_FANOUT~ +uav_address[16] => ~NO_FANOUT~ +uav_address[17] => ~NO_FANOUT~ +uav_address[18] => ~NO_FANOUT~ +uav_writedata[0] => av_writedata[0].DATAIN +uav_writedata[1] => av_writedata[1].DATAIN +uav_writedata[2] => av_writedata[2].DATAIN +uav_writedata[3] => av_writedata[3].DATAIN +uav_writedata[4] => av_writedata[4].DATAIN +uav_writedata[5] => av_writedata[5].DATAIN +uav_writedata[6] => av_writedata[6].DATAIN +uav_writedata[7] => av_writedata[7].DATAIN +uav_writedata[8] => av_writedata[8].DATAIN +uav_writedata[9] => av_writedata[9].DATAIN +uav_writedata[10] => av_writedata[10].DATAIN +uav_writedata[11] => av_writedata[11].DATAIN +uav_writedata[12] => av_writedata[12].DATAIN +uav_writedata[13] => av_writedata[13].DATAIN +uav_writedata[14] => av_writedata[14].DATAIN +uav_writedata[15] => av_writedata[15].DATAIN +uav_writedata[16] => av_writedata[16].DATAIN +uav_writedata[17] => av_writedata[17].DATAIN +uav_writedata[18] => av_writedata[18].DATAIN +uav_writedata[19] => av_writedata[19].DATAIN +uav_writedata[20] => av_writedata[20].DATAIN +uav_writedata[21] => av_writedata[21].DATAIN +uav_writedata[22] => av_writedata[22].DATAIN +uav_writedata[23] => av_writedata[23].DATAIN +uav_writedata[24] => av_writedata[24].DATAIN +uav_writedata[25] => av_writedata[25].DATAIN +uav_writedata[26] => av_writedata[26].DATAIN +uav_writedata[27] => av_writedata[27].DATAIN +uav_writedata[28] => av_writedata[28].DATAIN +uav_writedata[29] => av_writedata[29].DATAIN +uav_writedata[30] => av_writedata[30].DATAIN +uav_writedata[31] => av_writedata[31].DATAIN +uav_write => av_writebyteenable.IN0 +uav_write => av_write.IN1 +uav_write => av_waitrequest_generated.OUTPUTSELECT +uav_write => av_begintransfer.IN0 +uav_write => end_beginbursttransfer.IN1 +uav_write => always20.IN1 +uav_write => in_transfer.OUTPUTSELECT +uav_read => av_read.IN1 +uav_read => read_latency_shift_reg.IN1 +uav_read => av_outputenable.OUTPUTSELECT +uav_read => av_begintransfer.IN1 +uav_read => av_beginbursttransfer.OUTPUTSELECT +uav_burstcount[0] => Equal2.IN3 +uav_burstcount[1] => Equal2.IN2 +uav_burstcount[2] => av_burstcount[0].DATAIN +uav_burstcount[2] => Equal2.IN4 +uav_byteenable[0] => av_writebyteenable.IN1 +uav_byteenable[0] => av_byteenable[0].DATAIN +uav_byteenable[1] => ~NO_FANOUT~ +uav_byteenable[2] => ~NO_FANOUT~ +uav_byteenable[3] => ~NO_FANOUT~ +uav_lock => av_lock.DATAIN +uav_debugaccess => av_debugaccess.DATAIN +uav_clken => ~NO_FANOUT~ +uav_readdatavalid <= read_latency_shift_reg[0].DB_MAX_OUTPUT_PORT_TYPE +uav_waitrequest <= uav_waitrequest.DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[0] <= av_readdata_pre[0].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[1] <= av_readdata_pre[1].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[2] <= av_readdata_pre[2].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[3] <= av_readdata_pre[3].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[4] <= av_readdata_pre[4].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[5] <= av_readdata_pre[5].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[6] <= av_readdata_pre[6].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[7] <= av_readdata_pre[7].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[8] <= av_readdata_pre[8].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[9] <= av_readdata_pre[9].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[10] <= av_readdata_pre[10].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[11] <= av_readdata_pre[11].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[12] <= av_readdata_pre[12].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[13] <= av_readdata_pre[13].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[14] <= av_readdata_pre[14].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[15] <= av_readdata_pre[15].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[16] <= av_readdata_pre[16].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[17] <= av_readdata_pre[17].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[18] <= av_readdata_pre[18].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[19] <= av_readdata_pre[19].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[20] <= av_readdata_pre[20].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[21] <= av_readdata_pre[21].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[22] <= av_readdata_pre[22].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[23] <= av_readdata_pre[23].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[24] <= av_readdata_pre[24].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[25] <= av_readdata_pre[25].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[26] <= av_readdata_pre[26].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[27] <= av_readdata_pre[27].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[28] <= av_readdata_pre[28].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[29] <= av_readdata_pre[29].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[30] <= av_readdata_pre[30].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[31] <= av_readdata_pre[31].DB_MAX_OUTPUT_PORT_TYPE +uav_response[0] <= +uav_response[1] <= +uav_writeresponserequest => av_writeresponserequest.DATAIN +uav_writeresponsevalid <= av_writeresponsevalid.DB_MAX_OUTPUT_PORT_TYPE +av_address[0] <= uav_address[2].DB_MAX_OUTPUT_PORT_TYPE +av_address[1] <= uav_address[3].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[0] <= uav_writedata[0].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[1] <= uav_writedata[1].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[2] <= uav_writedata[2].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[3] <= uav_writedata[3].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[4] <= uav_writedata[4].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[5] <= uav_writedata[5].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[6] <= uav_writedata[6].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[7] <= uav_writedata[7].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[8] <= uav_writedata[8].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[9] <= uav_writedata[9].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[10] <= uav_writedata[10].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[11] <= uav_writedata[11].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[12] <= uav_writedata[12].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[13] <= uav_writedata[13].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[14] <= uav_writedata[14].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[15] <= uav_writedata[15].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[16] <= uav_writedata[16].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[17] <= uav_writedata[17].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[18] <= uav_writedata[18].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[19] <= uav_writedata[19].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[20] <= uav_writedata[20].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[21] <= uav_writedata[21].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[22] <= uav_writedata[22].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[23] <= uav_writedata[23].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[24] <= uav_writedata[24].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[25] <= uav_writedata[25].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[26] <= uav_writedata[26].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[27] <= uav_writedata[27].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[28] <= uav_writedata[28].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[29] <= uav_writedata[29].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[30] <= uav_writedata[30].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[31] <= uav_writedata[31].DB_MAX_OUTPUT_PORT_TYPE +av_write <= av_write.DB_MAX_OUTPUT_PORT_TYPE +av_read <= av_read.DB_MAX_OUTPUT_PORT_TYPE +av_burstcount[0] <= uav_burstcount[2].DB_MAX_OUTPUT_PORT_TYPE +av_byteenable[0] <= uav_byteenable[0].DB_MAX_OUTPUT_PORT_TYPE +av_writebyteenable[0] <= av_writebyteenable.DB_MAX_OUTPUT_PORT_TYPE +av_begintransfer <= av_begintransfer.DB_MAX_OUTPUT_PORT_TYPE +av_chipselect <= av_chipselect.DB_MAX_OUTPUT_PORT_TYPE +av_beginbursttransfer <= av_beginbursttransfer.DB_MAX_OUTPUT_PORT_TYPE +av_lock <= uav_lock.DB_MAX_OUTPUT_PORT_TYPE +av_clken <= +av_debugaccess <= uav_debugaccess.DB_MAX_OUTPUT_PORT_TYPE +av_outputenable <= av_outputenable.DB_MAX_OUTPUT_PORT_TYPE +av_readdata[0] => av_readdata_pre[0].DATAIN +av_readdata[1] => av_readdata_pre[1].DATAIN +av_readdata[2] => av_readdata_pre[2].DATAIN +av_readdata[3] => av_readdata_pre[3].DATAIN +av_readdata[4] => av_readdata_pre[4].DATAIN +av_readdata[5] => av_readdata_pre[5].DATAIN +av_readdata[6] => av_readdata_pre[6].DATAIN +av_readdata[7] => av_readdata_pre[7].DATAIN +av_readdata[8] => av_readdata_pre[8].DATAIN +av_readdata[9] => av_readdata_pre[9].DATAIN +av_readdata[10] => av_readdata_pre[10].DATAIN +av_readdata[11] => av_readdata_pre[11].DATAIN +av_readdata[12] => av_readdata_pre[12].DATAIN +av_readdata[13] => av_readdata_pre[13].DATAIN +av_readdata[14] => av_readdata_pre[14].DATAIN +av_readdata[15] => av_readdata_pre[15].DATAIN +av_readdata[16] => av_readdata_pre[16].DATAIN +av_readdata[17] => av_readdata_pre[17].DATAIN +av_readdata[18] => av_readdata_pre[18].DATAIN +av_readdata[19] => av_readdata_pre[19].DATAIN +av_readdata[20] => av_readdata_pre[20].DATAIN +av_readdata[21] => av_readdata_pre[21].DATAIN +av_readdata[22] => av_readdata_pre[22].DATAIN +av_readdata[23] => av_readdata_pre[23].DATAIN +av_readdata[24] => av_readdata_pre[24].DATAIN +av_readdata[25] => av_readdata_pre[25].DATAIN +av_readdata[26] => av_readdata_pre[26].DATAIN +av_readdata[27] => av_readdata_pre[27].DATAIN +av_readdata[28] => av_readdata_pre[28].DATAIN +av_readdata[29] => av_readdata_pre[29].DATAIN +av_readdata[30] => av_readdata_pre[30].DATAIN +av_readdata[31] => av_readdata_pre[31].DATAIN +av_readdatavalid => ~NO_FANOUT~ +av_waitrequest => ~NO_FANOUT~ +av_response[0] => ~NO_FANOUT~ +av_response[1] => ~NO_FANOUT~ +av_writeresponserequest <= uav_writeresponserequest.DB_MAX_OUTPUT_PORT_TYPE +av_writeresponsevalid => uav_writeresponsevalid.DATAIN + + +|lights|nios_system:NiosII|altera_merlin_slave_translator:lcd_16207_0_control_slave_translator +clk => in_transfer.CLK +clk => end_beginbursttransfer.CLK +clk => end_begintransfer.CLK +clk => av_chipselect_pre.CLK +clk => av_outputenable_pre.CLK +clk => read_latency_shift_reg[0].CLK +clk => av_readdata_pre[0].CLK +clk => av_readdata_pre[1].CLK +clk => av_readdata_pre[2].CLK +clk => av_readdata_pre[3].CLK +clk => av_readdata_pre[4].CLK +clk => av_readdata_pre[5].CLK +clk => av_readdata_pre[6].CLK +clk => av_readdata_pre[7].CLK +clk => waitrequest_reset_override.CLK +clk => wait_latency_counter[0].CLK +clk => wait_latency_counter[1].CLK +clk => wait_latency_counter[2].CLK +clk => wait_latency_counter[3].CLK +clk => wait_latency_counter[4].CLK +clk => wait_latency_counter[5].CLK +reset => in_transfer.ACLR +reset => end_beginbursttransfer.ACLR +reset => end_begintransfer.ACLR +reset => av_chipselect_pre.ACLR +reset => av_outputenable_pre.ACLR +reset => read_latency_shift_reg[0].ACLR +reset => av_readdata_pre[0].ACLR +reset => av_readdata_pre[1].ACLR +reset => av_readdata_pre[2].ACLR +reset => av_readdata_pre[3].ACLR +reset => av_readdata_pre[4].ACLR +reset => av_readdata_pre[5].ACLR +reset => av_readdata_pre[6].ACLR +reset => av_readdata_pre[7].ACLR +reset => waitrequest_reset_override.PRESET +reset => wait_latency_counter[0].ACLR +reset => wait_latency_counter[1].ACLR +reset => wait_latency_counter[2].ACLR +reset => wait_latency_counter[3].ACLR +reset => wait_latency_counter[4].ACLR +reset => wait_latency_counter[5].ACLR +uav_address[0] => ~NO_FANOUT~ +uav_address[1] => ~NO_FANOUT~ +uav_address[2] => av_address[0].DATAIN +uav_address[3] => av_address[1].DATAIN +uav_address[4] => ~NO_FANOUT~ +uav_address[5] => ~NO_FANOUT~ +uav_address[6] => ~NO_FANOUT~ +uav_address[7] => ~NO_FANOUT~ +uav_address[8] => ~NO_FANOUT~ +uav_address[9] => ~NO_FANOUT~ +uav_address[10] => ~NO_FANOUT~ +uav_address[11] => ~NO_FANOUT~ +uav_address[12] => ~NO_FANOUT~ +uav_address[13] => ~NO_FANOUT~ +uav_address[14] => ~NO_FANOUT~ +uav_address[15] => ~NO_FANOUT~ +uav_address[16] => ~NO_FANOUT~ +uav_address[17] => ~NO_FANOUT~ +uav_address[18] => ~NO_FANOUT~ +uav_writedata[0] => av_writedata[0].DATAIN +uav_writedata[1] => av_writedata[1].DATAIN +uav_writedata[2] => av_writedata[2].DATAIN +uav_writedata[3] => av_writedata[3].DATAIN +uav_writedata[4] => av_writedata[4].DATAIN +uav_writedata[5] => av_writedata[5].DATAIN +uav_writedata[6] => av_writedata[6].DATAIN +uav_writedata[7] => av_writedata[7].DATAIN +uav_writedata[8] => ~NO_FANOUT~ +uav_writedata[9] => ~NO_FANOUT~ +uav_writedata[10] => ~NO_FANOUT~ +uav_writedata[11] => ~NO_FANOUT~ +uav_writedata[12] => ~NO_FANOUT~ +uav_writedata[13] => ~NO_FANOUT~ +uav_writedata[14] => ~NO_FANOUT~ +uav_writedata[15] => ~NO_FANOUT~ +uav_writedata[16] => ~NO_FANOUT~ +uav_writedata[17] => ~NO_FANOUT~ +uav_writedata[18] => ~NO_FANOUT~ +uav_writedata[19] => ~NO_FANOUT~ +uav_writedata[20] => ~NO_FANOUT~ +uav_writedata[21] => ~NO_FANOUT~ +uav_writedata[22] => ~NO_FANOUT~ +uav_writedata[23] => ~NO_FANOUT~ +uav_writedata[24] => ~NO_FANOUT~ +uav_writedata[25] => ~NO_FANOUT~ +uav_writedata[26] => ~NO_FANOUT~ +uav_writedata[27] => ~NO_FANOUT~ +uav_writedata[28] => ~NO_FANOUT~ +uav_writedata[29] => ~NO_FANOUT~ +uav_writedata[30] => ~NO_FANOUT~ +uav_writedata[31] => ~NO_FANOUT~ +uav_write => av_writebyteenable.IN0 +uav_write => av_write.IN1 +uav_write => av_waitrequest_generated.OUTPUTSELECT +uav_write => av_begintransfer.IN0 +uav_write => end_beginbursttransfer.IN1 +uav_write => always20.IN1 +uav_write => in_transfer.OUTPUTSELECT +uav_read => av_read.IN1 +uav_read => read_latency_shift_reg.IN1 +uav_read => av_outputenable.OUTPUTSELECT +uav_read => av_begintransfer.IN1 +uav_read => av_beginbursttransfer.OUTPUTSELECT +uav_burstcount[0] => Equal2.IN3 +uav_burstcount[1] => Equal2.IN2 +uav_burstcount[2] => av_burstcount[0].DATAIN +uav_burstcount[2] => Equal2.IN4 +uav_byteenable[0] => av_writebyteenable.IN1 +uav_byteenable[0] => av_byteenable[0].DATAIN +uav_byteenable[1] => ~NO_FANOUT~ +uav_byteenable[2] => ~NO_FANOUT~ +uav_byteenable[3] => ~NO_FANOUT~ +uav_lock => av_lock.DATAIN +uav_debugaccess => av_debugaccess.DATAIN +uav_clken => ~NO_FANOUT~ +uav_readdatavalid <= read_latency_shift_reg[0].DB_MAX_OUTPUT_PORT_TYPE +uav_waitrequest <= uav_waitrequest.DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[0] <= av_readdata_pre[0].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[1] <= av_readdata_pre[1].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[2] <= av_readdata_pre[2].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[3] <= av_readdata_pre[3].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[4] <= av_readdata_pre[4].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[5] <= av_readdata_pre[5].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[6] <= av_readdata_pre[6].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[7] <= av_readdata_pre[7].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[8] <= +uav_readdata[9] <= +uav_readdata[10] <= +uav_readdata[11] <= +uav_readdata[12] <= +uav_readdata[13] <= +uav_readdata[14] <= +uav_readdata[15] <= +uav_readdata[16] <= +uav_readdata[17] <= +uav_readdata[18] <= +uav_readdata[19] <= +uav_readdata[20] <= +uav_readdata[21] <= +uav_readdata[22] <= +uav_readdata[23] <= +uav_readdata[24] <= +uav_readdata[25] <= +uav_readdata[26] <= +uav_readdata[27] <= +uav_readdata[28] <= +uav_readdata[29] <= +uav_readdata[30] <= +uav_readdata[31] <= +uav_response[0] <= +uav_response[1] <= +uav_writeresponserequest => av_writeresponserequest.DATAIN +uav_writeresponsevalid <= av_writeresponsevalid.DB_MAX_OUTPUT_PORT_TYPE +av_address[0] <= uav_address[2].DB_MAX_OUTPUT_PORT_TYPE +av_address[1] <= uav_address[3].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[0] <= uav_writedata[0].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[1] <= uav_writedata[1].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[2] <= uav_writedata[2].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[3] <= uav_writedata[3].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[4] <= uav_writedata[4].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[5] <= uav_writedata[5].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[6] <= uav_writedata[6].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[7] <= uav_writedata[7].DB_MAX_OUTPUT_PORT_TYPE +av_write <= av_write.DB_MAX_OUTPUT_PORT_TYPE +av_read <= av_read.DB_MAX_OUTPUT_PORT_TYPE +av_burstcount[0] <= uav_burstcount[2].DB_MAX_OUTPUT_PORT_TYPE +av_byteenable[0] <= uav_byteenable[0].DB_MAX_OUTPUT_PORT_TYPE +av_writebyteenable[0] <= av_writebyteenable.DB_MAX_OUTPUT_PORT_TYPE +av_begintransfer <= av_begintransfer.DB_MAX_OUTPUT_PORT_TYPE +av_chipselect <= av_chipselect.DB_MAX_OUTPUT_PORT_TYPE +av_beginbursttransfer <= av_beginbursttransfer.DB_MAX_OUTPUT_PORT_TYPE +av_lock <= uav_lock.DB_MAX_OUTPUT_PORT_TYPE +av_clken <= +av_debugaccess <= uav_debugaccess.DB_MAX_OUTPUT_PORT_TYPE +av_outputenable <= av_outputenable.DB_MAX_OUTPUT_PORT_TYPE +av_readdata[0] => av_readdata_pre[0].DATAIN +av_readdata[1] => av_readdata_pre[1].DATAIN +av_readdata[2] => av_readdata_pre[2].DATAIN +av_readdata[3] => av_readdata_pre[3].DATAIN +av_readdata[4] => av_readdata_pre[4].DATAIN +av_readdata[5] => av_readdata_pre[5].DATAIN +av_readdata[6] => av_readdata_pre[6].DATAIN +av_readdata[7] => av_readdata_pre[7].DATAIN +av_readdatavalid => ~NO_FANOUT~ +av_waitrequest => ~NO_FANOUT~ +av_response[0] => ~NO_FANOUT~ +av_response[1] => ~NO_FANOUT~ +av_writeresponserequest <= uav_writeresponserequest.DB_MAX_OUTPUT_PORT_TYPE +av_writeresponsevalid => uav_writeresponsevalid.DATAIN + + +|lights|nios_system:NiosII|altera_merlin_slave_translator:lcd_on_s1_translator +clk => in_transfer.CLK +clk => end_beginbursttransfer.CLK +clk => end_begintransfer.CLK +clk => av_chipselect_pre.CLK +clk => av_outputenable_pre.CLK +clk => read_latency_shift_reg[0].CLK +clk => av_readdata_pre[0].CLK +clk => av_readdata_pre[1].CLK +clk => av_readdata_pre[2].CLK +clk => av_readdata_pre[3].CLK +clk => av_readdata_pre[4].CLK +clk => av_readdata_pre[5].CLK +clk => av_readdata_pre[6].CLK +clk => av_readdata_pre[7].CLK +clk => av_readdata_pre[8].CLK +clk => av_readdata_pre[9].CLK +clk => av_readdata_pre[10].CLK +clk => av_readdata_pre[11].CLK +clk => av_readdata_pre[12].CLK +clk => av_readdata_pre[13].CLK +clk => av_readdata_pre[14].CLK +clk => av_readdata_pre[15].CLK +clk => av_readdata_pre[16].CLK +clk => av_readdata_pre[17].CLK +clk => av_readdata_pre[18].CLK +clk => av_readdata_pre[19].CLK +clk => av_readdata_pre[20].CLK +clk => av_readdata_pre[21].CLK +clk => av_readdata_pre[22].CLK +clk => av_readdata_pre[23].CLK +clk => av_readdata_pre[24].CLK +clk => av_readdata_pre[25].CLK +clk => av_readdata_pre[26].CLK +clk => av_readdata_pre[27].CLK +clk => av_readdata_pre[28].CLK +clk => av_readdata_pre[29].CLK +clk => av_readdata_pre[30].CLK +clk => av_readdata_pre[31].CLK +clk => waitrequest_reset_override.CLK +clk => wait_latency_counter[0].CLK +clk => wait_latency_counter[1].CLK +reset => in_transfer.ACLR +reset => end_beginbursttransfer.ACLR +reset => end_begintransfer.ACLR +reset => av_chipselect_pre.ACLR +reset => av_outputenable_pre.ACLR +reset => read_latency_shift_reg[0].ACLR +reset => av_readdata_pre[0].ACLR +reset => av_readdata_pre[1].ACLR +reset => av_readdata_pre[2].ACLR +reset => av_readdata_pre[3].ACLR +reset => av_readdata_pre[4].ACLR +reset => av_readdata_pre[5].ACLR +reset => av_readdata_pre[6].ACLR +reset => av_readdata_pre[7].ACLR +reset => av_readdata_pre[8].ACLR +reset => av_readdata_pre[9].ACLR +reset => av_readdata_pre[10].ACLR +reset => av_readdata_pre[11].ACLR +reset => av_readdata_pre[12].ACLR +reset => av_readdata_pre[13].ACLR +reset => av_readdata_pre[14].ACLR +reset => av_readdata_pre[15].ACLR +reset => av_readdata_pre[16].ACLR +reset => av_readdata_pre[17].ACLR +reset => av_readdata_pre[18].ACLR +reset => av_readdata_pre[19].ACLR +reset => av_readdata_pre[20].ACLR +reset => av_readdata_pre[21].ACLR +reset => av_readdata_pre[22].ACLR +reset => av_readdata_pre[23].ACLR +reset => av_readdata_pre[24].ACLR +reset => av_readdata_pre[25].ACLR +reset => av_readdata_pre[26].ACLR +reset => av_readdata_pre[27].ACLR +reset => av_readdata_pre[28].ACLR +reset => av_readdata_pre[29].ACLR +reset => av_readdata_pre[30].ACLR +reset => av_readdata_pre[31].ACLR +reset => waitrequest_reset_override.PRESET +reset => wait_latency_counter[0].ACLR +reset => wait_latency_counter[1].ACLR +uav_address[0] => ~NO_FANOUT~ +uav_address[1] => ~NO_FANOUT~ +uav_address[2] => av_address[0].DATAIN +uav_address[3] => av_address[1].DATAIN +uav_address[4] => ~NO_FANOUT~ +uav_address[5] => ~NO_FANOUT~ +uav_address[6] => ~NO_FANOUT~ +uav_address[7] => ~NO_FANOUT~ +uav_address[8] => ~NO_FANOUT~ +uav_address[9] => ~NO_FANOUT~ +uav_address[10] => ~NO_FANOUT~ +uav_address[11] => ~NO_FANOUT~ +uav_address[12] => ~NO_FANOUT~ +uav_address[13] => ~NO_FANOUT~ +uav_address[14] => ~NO_FANOUT~ +uav_address[15] => ~NO_FANOUT~ +uav_address[16] => ~NO_FANOUT~ +uav_address[17] => ~NO_FANOUT~ +uav_address[18] => ~NO_FANOUT~ +uav_writedata[0] => av_writedata[0].DATAIN +uav_writedata[1] => av_writedata[1].DATAIN +uav_writedata[2] => av_writedata[2].DATAIN +uav_writedata[3] => av_writedata[3].DATAIN +uav_writedata[4] => av_writedata[4].DATAIN +uav_writedata[5] => av_writedata[5].DATAIN +uav_writedata[6] => av_writedata[6].DATAIN +uav_writedata[7] => av_writedata[7].DATAIN +uav_writedata[8] => av_writedata[8].DATAIN +uav_writedata[9] => av_writedata[9].DATAIN +uav_writedata[10] => av_writedata[10].DATAIN +uav_writedata[11] => av_writedata[11].DATAIN +uav_writedata[12] => av_writedata[12].DATAIN +uav_writedata[13] => av_writedata[13].DATAIN +uav_writedata[14] => av_writedata[14].DATAIN +uav_writedata[15] => av_writedata[15].DATAIN +uav_writedata[16] => av_writedata[16].DATAIN +uav_writedata[17] => av_writedata[17].DATAIN +uav_writedata[18] => av_writedata[18].DATAIN +uav_writedata[19] => av_writedata[19].DATAIN +uav_writedata[20] => av_writedata[20].DATAIN +uav_writedata[21] => av_writedata[21].DATAIN +uav_writedata[22] => av_writedata[22].DATAIN +uav_writedata[23] => av_writedata[23].DATAIN +uav_writedata[24] => av_writedata[24].DATAIN +uav_writedata[25] => av_writedata[25].DATAIN +uav_writedata[26] => av_writedata[26].DATAIN +uav_writedata[27] => av_writedata[27].DATAIN +uav_writedata[28] => av_writedata[28].DATAIN +uav_writedata[29] => av_writedata[29].DATAIN +uav_writedata[30] => av_writedata[30].DATAIN +uav_writedata[31] => av_writedata[31].DATAIN +uav_write => av_writebyteenable.IN0 +uav_write => av_write.IN1 +uav_write => av_waitrequest_generated.OUTPUTSELECT +uav_write => av_begintransfer.IN0 +uav_write => end_beginbursttransfer.IN1 +uav_write => always20.IN1 +uav_write => in_transfer.OUTPUTSELECT +uav_read => av_read.IN1 +uav_read => read_latency_shift_reg.IN1 +uav_read => av_outputenable.OUTPUTSELECT +uav_read => av_begintransfer.IN1 +uav_read => av_beginbursttransfer.OUTPUTSELECT +uav_burstcount[0] => Equal2.IN3 +uav_burstcount[1] => Equal2.IN2 +uav_burstcount[2] => av_burstcount[0].DATAIN +uav_burstcount[2] => Equal2.IN4 +uav_byteenable[0] => av_writebyteenable.IN1 +uav_byteenable[0] => av_byteenable[0].DATAIN +uav_byteenable[1] => ~NO_FANOUT~ +uav_byteenable[2] => ~NO_FANOUT~ +uav_byteenable[3] => ~NO_FANOUT~ +uav_lock => av_lock.DATAIN +uav_debugaccess => av_debugaccess.DATAIN +uav_clken => ~NO_FANOUT~ +uav_readdatavalid <= read_latency_shift_reg[0].DB_MAX_OUTPUT_PORT_TYPE +uav_waitrequest <= uav_waitrequest.DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[0] <= av_readdata_pre[0].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[1] <= av_readdata_pre[1].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[2] <= av_readdata_pre[2].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[3] <= av_readdata_pre[3].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[4] <= av_readdata_pre[4].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[5] <= av_readdata_pre[5].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[6] <= av_readdata_pre[6].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[7] <= av_readdata_pre[7].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[8] <= av_readdata_pre[8].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[9] <= av_readdata_pre[9].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[10] <= av_readdata_pre[10].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[11] <= av_readdata_pre[11].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[12] <= av_readdata_pre[12].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[13] <= av_readdata_pre[13].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[14] <= av_readdata_pre[14].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[15] <= av_readdata_pre[15].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[16] <= av_readdata_pre[16].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[17] <= av_readdata_pre[17].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[18] <= av_readdata_pre[18].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[19] <= av_readdata_pre[19].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[20] <= av_readdata_pre[20].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[21] <= av_readdata_pre[21].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[22] <= av_readdata_pre[22].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[23] <= av_readdata_pre[23].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[24] <= av_readdata_pre[24].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[25] <= av_readdata_pre[25].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[26] <= av_readdata_pre[26].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[27] <= av_readdata_pre[27].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[28] <= av_readdata_pre[28].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[29] <= av_readdata_pre[29].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[30] <= av_readdata_pre[30].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[31] <= av_readdata_pre[31].DB_MAX_OUTPUT_PORT_TYPE +uav_response[0] <= +uav_response[1] <= +uav_writeresponserequest => av_writeresponserequest.DATAIN +uav_writeresponsevalid <= av_writeresponsevalid.DB_MAX_OUTPUT_PORT_TYPE +av_address[0] <= uav_address[2].DB_MAX_OUTPUT_PORT_TYPE +av_address[1] <= uav_address[3].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[0] <= uav_writedata[0].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[1] <= uav_writedata[1].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[2] <= uav_writedata[2].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[3] <= uav_writedata[3].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[4] <= uav_writedata[4].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[5] <= uav_writedata[5].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[6] <= uav_writedata[6].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[7] <= uav_writedata[7].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[8] <= uav_writedata[8].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[9] <= uav_writedata[9].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[10] <= uav_writedata[10].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[11] <= uav_writedata[11].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[12] <= uav_writedata[12].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[13] <= uav_writedata[13].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[14] <= uav_writedata[14].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[15] <= uav_writedata[15].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[16] <= uav_writedata[16].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[17] <= uav_writedata[17].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[18] <= uav_writedata[18].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[19] <= uav_writedata[19].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[20] <= uav_writedata[20].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[21] <= uav_writedata[21].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[22] <= uav_writedata[22].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[23] <= uav_writedata[23].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[24] <= uav_writedata[24].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[25] <= uav_writedata[25].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[26] <= uav_writedata[26].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[27] <= uav_writedata[27].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[28] <= uav_writedata[28].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[29] <= uav_writedata[29].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[30] <= uav_writedata[30].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[31] <= uav_writedata[31].DB_MAX_OUTPUT_PORT_TYPE +av_write <= av_write.DB_MAX_OUTPUT_PORT_TYPE +av_read <= av_read.DB_MAX_OUTPUT_PORT_TYPE +av_burstcount[0] <= uav_burstcount[2].DB_MAX_OUTPUT_PORT_TYPE +av_byteenable[0] <= uav_byteenable[0].DB_MAX_OUTPUT_PORT_TYPE +av_writebyteenable[0] <= av_writebyteenable.DB_MAX_OUTPUT_PORT_TYPE +av_begintransfer <= av_begintransfer.DB_MAX_OUTPUT_PORT_TYPE +av_chipselect <= av_chipselect.DB_MAX_OUTPUT_PORT_TYPE +av_beginbursttransfer <= av_beginbursttransfer.DB_MAX_OUTPUT_PORT_TYPE +av_lock <= uav_lock.DB_MAX_OUTPUT_PORT_TYPE +av_clken <= +av_debugaccess <= uav_debugaccess.DB_MAX_OUTPUT_PORT_TYPE +av_outputenable <= av_outputenable.DB_MAX_OUTPUT_PORT_TYPE +av_readdata[0] => av_readdata_pre[0].DATAIN +av_readdata[1] => av_readdata_pre[1].DATAIN +av_readdata[2] => av_readdata_pre[2].DATAIN +av_readdata[3] => av_readdata_pre[3].DATAIN +av_readdata[4] => av_readdata_pre[4].DATAIN +av_readdata[5] => av_readdata_pre[5].DATAIN +av_readdata[6] => av_readdata_pre[6].DATAIN +av_readdata[7] => av_readdata_pre[7].DATAIN +av_readdata[8] => av_readdata_pre[8].DATAIN +av_readdata[9] => av_readdata_pre[9].DATAIN +av_readdata[10] => av_readdata_pre[10].DATAIN +av_readdata[11] => av_readdata_pre[11].DATAIN +av_readdata[12] => av_readdata_pre[12].DATAIN +av_readdata[13] => av_readdata_pre[13].DATAIN +av_readdata[14] => av_readdata_pre[14].DATAIN +av_readdata[15] => av_readdata_pre[15].DATAIN +av_readdata[16] => av_readdata_pre[16].DATAIN +av_readdata[17] => av_readdata_pre[17].DATAIN +av_readdata[18] => av_readdata_pre[18].DATAIN +av_readdata[19] => av_readdata_pre[19].DATAIN +av_readdata[20] => av_readdata_pre[20].DATAIN +av_readdata[21] => av_readdata_pre[21].DATAIN +av_readdata[22] => av_readdata_pre[22].DATAIN +av_readdata[23] => av_readdata_pre[23].DATAIN +av_readdata[24] => av_readdata_pre[24].DATAIN +av_readdata[25] => av_readdata_pre[25].DATAIN +av_readdata[26] => av_readdata_pre[26].DATAIN +av_readdata[27] => av_readdata_pre[27].DATAIN +av_readdata[28] => av_readdata_pre[28].DATAIN +av_readdata[29] => av_readdata_pre[29].DATAIN +av_readdata[30] => av_readdata_pre[30].DATAIN +av_readdata[31] => av_readdata_pre[31].DATAIN +av_readdatavalid => ~NO_FANOUT~ +av_waitrequest => ~NO_FANOUT~ +av_response[0] => ~NO_FANOUT~ +av_response[1] => ~NO_FANOUT~ +av_writeresponserequest <= uav_writeresponserequest.DB_MAX_OUTPUT_PORT_TYPE +av_writeresponsevalid => uav_writeresponsevalid.DATAIN + + +|lights|nios_system:NiosII|altera_merlin_slave_translator:lcd_blon_s1_translator +clk => in_transfer.CLK +clk => end_beginbursttransfer.CLK +clk => end_begintransfer.CLK +clk => av_chipselect_pre.CLK +clk => av_outputenable_pre.CLK +clk => read_latency_shift_reg[0].CLK +clk => av_readdata_pre[0].CLK +clk => av_readdata_pre[1].CLK +clk => av_readdata_pre[2].CLK +clk => av_readdata_pre[3].CLK +clk => av_readdata_pre[4].CLK +clk => av_readdata_pre[5].CLK +clk => av_readdata_pre[6].CLK +clk => av_readdata_pre[7].CLK +clk => av_readdata_pre[8].CLK +clk => av_readdata_pre[9].CLK +clk => av_readdata_pre[10].CLK +clk => av_readdata_pre[11].CLK +clk => av_readdata_pre[12].CLK +clk => av_readdata_pre[13].CLK +clk => av_readdata_pre[14].CLK +clk => av_readdata_pre[15].CLK +clk => av_readdata_pre[16].CLK +clk => av_readdata_pre[17].CLK +clk => av_readdata_pre[18].CLK +clk => av_readdata_pre[19].CLK +clk => av_readdata_pre[20].CLK +clk => av_readdata_pre[21].CLK +clk => av_readdata_pre[22].CLK +clk => av_readdata_pre[23].CLK +clk => av_readdata_pre[24].CLK +clk => av_readdata_pre[25].CLK +clk => av_readdata_pre[26].CLK +clk => av_readdata_pre[27].CLK +clk => av_readdata_pre[28].CLK +clk => av_readdata_pre[29].CLK +clk => av_readdata_pre[30].CLK +clk => av_readdata_pre[31].CLK +clk => waitrequest_reset_override.CLK +clk => wait_latency_counter[0].CLK +clk => wait_latency_counter[1].CLK +reset => in_transfer.ACLR +reset => end_beginbursttransfer.ACLR +reset => end_begintransfer.ACLR +reset => av_chipselect_pre.ACLR +reset => av_outputenable_pre.ACLR +reset => read_latency_shift_reg[0].ACLR +reset => av_readdata_pre[0].ACLR +reset => av_readdata_pre[1].ACLR +reset => av_readdata_pre[2].ACLR +reset => av_readdata_pre[3].ACLR +reset => av_readdata_pre[4].ACLR +reset => av_readdata_pre[5].ACLR +reset => av_readdata_pre[6].ACLR +reset => av_readdata_pre[7].ACLR +reset => av_readdata_pre[8].ACLR +reset => av_readdata_pre[9].ACLR +reset => av_readdata_pre[10].ACLR +reset => av_readdata_pre[11].ACLR +reset => av_readdata_pre[12].ACLR +reset => av_readdata_pre[13].ACLR +reset => av_readdata_pre[14].ACLR +reset => av_readdata_pre[15].ACLR +reset => av_readdata_pre[16].ACLR +reset => av_readdata_pre[17].ACLR +reset => av_readdata_pre[18].ACLR +reset => av_readdata_pre[19].ACLR +reset => av_readdata_pre[20].ACLR +reset => av_readdata_pre[21].ACLR +reset => av_readdata_pre[22].ACLR +reset => av_readdata_pre[23].ACLR +reset => av_readdata_pre[24].ACLR +reset => av_readdata_pre[25].ACLR +reset => av_readdata_pre[26].ACLR +reset => av_readdata_pre[27].ACLR +reset => av_readdata_pre[28].ACLR +reset => av_readdata_pre[29].ACLR +reset => av_readdata_pre[30].ACLR +reset => av_readdata_pre[31].ACLR +reset => waitrequest_reset_override.PRESET +reset => wait_latency_counter[0].ACLR +reset => wait_latency_counter[1].ACLR +uav_address[0] => ~NO_FANOUT~ +uav_address[1] => ~NO_FANOUT~ +uav_address[2] => av_address[0].DATAIN +uav_address[3] => av_address[1].DATAIN +uav_address[4] => ~NO_FANOUT~ +uav_address[5] => ~NO_FANOUT~ +uav_address[6] => ~NO_FANOUT~ +uav_address[7] => ~NO_FANOUT~ +uav_address[8] => ~NO_FANOUT~ +uav_address[9] => ~NO_FANOUT~ +uav_address[10] => ~NO_FANOUT~ +uav_address[11] => ~NO_FANOUT~ +uav_address[12] => ~NO_FANOUT~ +uav_address[13] => ~NO_FANOUT~ +uav_address[14] => ~NO_FANOUT~ +uav_address[15] => ~NO_FANOUT~ +uav_address[16] => ~NO_FANOUT~ +uav_address[17] => ~NO_FANOUT~ +uav_address[18] => ~NO_FANOUT~ +uav_writedata[0] => av_writedata[0].DATAIN +uav_writedata[1] => av_writedata[1].DATAIN +uav_writedata[2] => av_writedata[2].DATAIN +uav_writedata[3] => av_writedata[3].DATAIN +uav_writedata[4] => av_writedata[4].DATAIN +uav_writedata[5] => av_writedata[5].DATAIN +uav_writedata[6] => av_writedata[6].DATAIN +uav_writedata[7] => av_writedata[7].DATAIN +uav_writedata[8] => av_writedata[8].DATAIN +uav_writedata[9] => av_writedata[9].DATAIN +uav_writedata[10] => av_writedata[10].DATAIN +uav_writedata[11] => av_writedata[11].DATAIN +uav_writedata[12] => av_writedata[12].DATAIN +uav_writedata[13] => av_writedata[13].DATAIN +uav_writedata[14] => av_writedata[14].DATAIN +uav_writedata[15] => av_writedata[15].DATAIN +uav_writedata[16] => av_writedata[16].DATAIN +uav_writedata[17] => av_writedata[17].DATAIN +uav_writedata[18] => av_writedata[18].DATAIN +uav_writedata[19] => av_writedata[19].DATAIN +uav_writedata[20] => av_writedata[20].DATAIN +uav_writedata[21] => av_writedata[21].DATAIN +uav_writedata[22] => av_writedata[22].DATAIN +uav_writedata[23] => av_writedata[23].DATAIN +uav_writedata[24] => av_writedata[24].DATAIN +uav_writedata[25] => av_writedata[25].DATAIN +uav_writedata[26] => av_writedata[26].DATAIN +uav_writedata[27] => av_writedata[27].DATAIN +uav_writedata[28] => av_writedata[28].DATAIN +uav_writedata[29] => av_writedata[29].DATAIN +uav_writedata[30] => av_writedata[30].DATAIN +uav_writedata[31] => av_writedata[31].DATAIN +uav_write => av_writebyteenable.IN0 +uav_write => av_write.IN1 +uav_write => av_waitrequest_generated.OUTPUTSELECT +uav_write => av_begintransfer.IN0 +uav_write => end_beginbursttransfer.IN1 +uav_write => always20.IN1 +uav_write => in_transfer.OUTPUTSELECT +uav_read => av_read.IN1 +uav_read => read_latency_shift_reg.IN1 +uav_read => av_outputenable.OUTPUTSELECT +uav_read => av_begintransfer.IN1 +uav_read => av_beginbursttransfer.OUTPUTSELECT +uav_burstcount[0] => Equal2.IN3 +uav_burstcount[1] => Equal2.IN2 +uav_burstcount[2] => av_burstcount[0].DATAIN +uav_burstcount[2] => Equal2.IN4 +uav_byteenable[0] => av_writebyteenable.IN1 +uav_byteenable[0] => av_byteenable[0].DATAIN +uav_byteenable[1] => ~NO_FANOUT~ +uav_byteenable[2] => ~NO_FANOUT~ +uav_byteenable[3] => ~NO_FANOUT~ +uav_lock => av_lock.DATAIN +uav_debugaccess => av_debugaccess.DATAIN +uav_clken => ~NO_FANOUT~ +uav_readdatavalid <= read_latency_shift_reg[0].DB_MAX_OUTPUT_PORT_TYPE +uav_waitrequest <= uav_waitrequest.DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[0] <= av_readdata_pre[0].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[1] <= av_readdata_pre[1].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[2] <= av_readdata_pre[2].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[3] <= av_readdata_pre[3].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[4] <= av_readdata_pre[4].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[5] <= av_readdata_pre[5].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[6] <= av_readdata_pre[6].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[7] <= av_readdata_pre[7].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[8] <= av_readdata_pre[8].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[9] <= av_readdata_pre[9].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[10] <= av_readdata_pre[10].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[11] <= av_readdata_pre[11].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[12] <= av_readdata_pre[12].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[13] <= av_readdata_pre[13].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[14] <= av_readdata_pre[14].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[15] <= av_readdata_pre[15].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[16] <= av_readdata_pre[16].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[17] <= av_readdata_pre[17].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[18] <= av_readdata_pre[18].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[19] <= av_readdata_pre[19].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[20] <= av_readdata_pre[20].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[21] <= av_readdata_pre[21].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[22] <= av_readdata_pre[22].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[23] <= av_readdata_pre[23].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[24] <= av_readdata_pre[24].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[25] <= av_readdata_pre[25].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[26] <= av_readdata_pre[26].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[27] <= av_readdata_pre[27].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[28] <= av_readdata_pre[28].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[29] <= av_readdata_pre[29].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[30] <= av_readdata_pre[30].DB_MAX_OUTPUT_PORT_TYPE +uav_readdata[31] <= av_readdata_pre[31].DB_MAX_OUTPUT_PORT_TYPE +uav_response[0] <= +uav_response[1] <= +uav_writeresponserequest => av_writeresponserequest.DATAIN +uav_writeresponsevalid <= av_writeresponsevalid.DB_MAX_OUTPUT_PORT_TYPE +av_address[0] <= uav_address[2].DB_MAX_OUTPUT_PORT_TYPE +av_address[1] <= uav_address[3].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[0] <= uav_writedata[0].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[1] <= uav_writedata[1].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[2] <= uav_writedata[2].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[3] <= uav_writedata[3].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[4] <= uav_writedata[4].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[5] <= uav_writedata[5].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[6] <= uav_writedata[6].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[7] <= uav_writedata[7].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[8] <= uav_writedata[8].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[9] <= uav_writedata[9].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[10] <= uav_writedata[10].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[11] <= uav_writedata[11].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[12] <= uav_writedata[12].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[13] <= uav_writedata[13].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[14] <= uav_writedata[14].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[15] <= uav_writedata[15].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[16] <= uav_writedata[16].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[17] <= uav_writedata[17].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[18] <= uav_writedata[18].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[19] <= uav_writedata[19].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[20] <= uav_writedata[20].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[21] <= uav_writedata[21].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[22] <= uav_writedata[22].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[23] <= uav_writedata[23].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[24] <= uav_writedata[24].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[25] <= uav_writedata[25].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[26] <= uav_writedata[26].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[27] <= uav_writedata[27].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[28] <= uav_writedata[28].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[29] <= uav_writedata[29].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[30] <= uav_writedata[30].DB_MAX_OUTPUT_PORT_TYPE +av_writedata[31] <= uav_writedata[31].DB_MAX_OUTPUT_PORT_TYPE +av_write <= av_write.DB_MAX_OUTPUT_PORT_TYPE +av_read <= av_read.DB_MAX_OUTPUT_PORT_TYPE +av_burstcount[0] <= uav_burstcount[2].DB_MAX_OUTPUT_PORT_TYPE +av_byteenable[0] <= uav_byteenable[0].DB_MAX_OUTPUT_PORT_TYPE +av_writebyteenable[0] <= av_writebyteenable.DB_MAX_OUTPUT_PORT_TYPE +av_begintransfer <= av_begintransfer.DB_MAX_OUTPUT_PORT_TYPE +av_chipselect <= av_chipselect.DB_MAX_OUTPUT_PORT_TYPE +av_beginbursttransfer <= av_beginbursttransfer.DB_MAX_OUTPUT_PORT_TYPE +av_lock <= uav_lock.DB_MAX_OUTPUT_PORT_TYPE +av_clken <= +av_debugaccess <= uav_debugaccess.DB_MAX_OUTPUT_PORT_TYPE +av_outputenable <= av_outputenable.DB_MAX_OUTPUT_PORT_TYPE +av_readdata[0] => av_readdata_pre[0].DATAIN +av_readdata[1] => av_readdata_pre[1].DATAIN +av_readdata[2] => av_readdata_pre[2].DATAIN +av_readdata[3] => av_readdata_pre[3].DATAIN +av_readdata[4] => av_readdata_pre[4].DATAIN +av_readdata[5] => av_readdata_pre[5].DATAIN +av_readdata[6] => av_readdata_pre[6].DATAIN +av_readdata[7] => av_readdata_pre[7].DATAIN +av_readdata[8] => av_readdata_pre[8].DATAIN +av_readdata[9] => av_readdata_pre[9].DATAIN +av_readdata[10] => av_readdata_pre[10].DATAIN +av_readdata[11] => av_readdata_pre[11].DATAIN +av_readdata[12] => av_readdata_pre[12].DATAIN +av_readdata[13] => av_readdata_pre[13].DATAIN +av_readdata[14] => av_readdata_pre[14].DATAIN +av_readdata[15] => av_readdata_pre[15].DATAIN +av_readdata[16] => av_readdata_pre[16].DATAIN +av_readdata[17] => av_readdata_pre[17].DATAIN +av_readdata[18] => av_readdata_pre[18].DATAIN +av_readdata[19] => av_readdata_pre[19].DATAIN +av_readdata[20] => av_readdata_pre[20].DATAIN +av_readdata[21] => av_readdata_pre[21].DATAIN +av_readdata[22] => av_readdata_pre[22].DATAIN +av_readdata[23] => av_readdata_pre[23].DATAIN +av_readdata[24] => av_readdata_pre[24].DATAIN +av_readdata[25] => av_readdata_pre[25].DATAIN +av_readdata[26] => av_readdata_pre[26].DATAIN +av_readdata[27] => av_readdata_pre[27].DATAIN +av_readdata[28] => av_readdata_pre[28].DATAIN +av_readdata[29] => av_readdata_pre[29].DATAIN +av_readdata[30] => av_readdata_pre[30].DATAIN +av_readdata[31] => av_readdata_pre[31].DATAIN +av_readdatavalid => ~NO_FANOUT~ +av_waitrequest => ~NO_FANOUT~ +av_response[0] => ~NO_FANOUT~ +av_response[1] => ~NO_FANOUT~ +av_writeresponserequest <= uav_writeresponserequest.DB_MAX_OUTPUT_PORT_TYPE +av_writeresponsevalid => uav_writeresponsevalid.DATAIN + + +|lights|nios_system:NiosII|altera_merlin_master_agent:nios2_processor_instruction_master_translator_avalon_universal_master_0_agent +clk => hold_waitrequest.CLK +reset => hold_waitrequest.PRESET +av_address[0] => ~NO_FANOUT~ +av_address[1] => ~NO_FANOUT~ +av_address[2] => cp_data[38].DATAIN +av_address[3] => cp_data[39].DATAIN +av_address[4] => cp_data[40].DATAIN +av_address[5] => cp_data[41].DATAIN +av_address[6] => cp_data[42].DATAIN +av_address[7] => cp_data[43].DATAIN +av_address[8] => cp_data[44].DATAIN +av_address[9] => cp_data[45].DATAIN +av_address[10] => cp_data[46].DATAIN +av_address[11] => cp_data[47].DATAIN +av_address[12] => cp_data[48].DATAIN +av_address[13] => cp_data[49].DATAIN +av_address[14] => cp_data[50].DATAIN +av_address[15] => cp_data[51].DATAIN +av_address[16] => cp_data[52].DATAIN +av_address[17] => cp_data[53].DATAIN +av_address[18] => cp_data[54].DATAIN +av_write => cp_data.IN0 +av_write => always1.IN0 +av_write => cp_data[57].DATAIN +av_read => always1.IN1 +av_read => cp_data[58].DATAIN +av_writedata[0] => cp_data[0].DATAIN +av_writedata[1] => cp_data[1].DATAIN +av_writedata[2] => cp_data[2].DATAIN +av_writedata[3] => cp_data[3].DATAIN +av_writedata[4] => cp_data[4].DATAIN +av_writedata[5] => cp_data[5].DATAIN +av_writedata[6] => cp_data[6].DATAIN +av_writedata[7] => cp_data[7].DATAIN +av_writedata[8] => cp_data[8].DATAIN +av_writedata[9] => cp_data[9].DATAIN +av_writedata[10] => cp_data[10].DATAIN +av_writedata[11] => cp_data[11].DATAIN +av_writedata[12] => cp_data[12].DATAIN +av_writedata[13] => cp_data[13].DATAIN +av_writedata[14] => cp_data[14].DATAIN +av_writedata[15] => cp_data[15].DATAIN +av_writedata[16] => cp_data[16].DATAIN +av_writedata[17] => cp_data[17].DATAIN +av_writedata[18] => cp_data[18].DATAIN +av_writedata[19] => cp_data[19].DATAIN +av_writedata[20] => cp_data[20].DATAIN +av_writedata[21] => cp_data[21].DATAIN +av_writedata[22] => cp_data[22].DATAIN +av_writedata[23] => cp_data[23].DATAIN +av_writedata[24] => cp_data[24].DATAIN +av_writedata[25] => cp_data[25].DATAIN +av_writedata[26] => cp_data[26].DATAIN +av_writedata[27] => cp_data[27].DATAIN +av_writedata[28] => cp_data[28].DATAIN +av_writedata[29] => cp_data[29].DATAIN +av_writedata[30] => cp_data[30].DATAIN +av_writedata[31] => cp_data[31].DATAIN +av_readdata[0] <= rp_data[0].DB_MAX_OUTPUT_PORT_TYPE +av_readdata[1] <= rp_data[1].DB_MAX_OUTPUT_PORT_TYPE +av_readdata[2] <= rp_data[2].DB_MAX_OUTPUT_PORT_TYPE +av_readdata[3] <= rp_data[3].DB_MAX_OUTPUT_PORT_TYPE +av_readdata[4] <= rp_data[4].DB_MAX_OUTPUT_PORT_TYPE +av_readdata[5] <= rp_data[5].DB_MAX_OUTPUT_PORT_TYPE +av_readdata[6] <= rp_data[6].DB_MAX_OUTPUT_PORT_TYPE +av_readdata[7] <= rp_data[7].DB_MAX_OUTPUT_PORT_TYPE +av_readdata[8] <= rp_data[8].DB_MAX_OUTPUT_PORT_TYPE +av_readdata[9] <= rp_data[9].DB_MAX_OUTPUT_PORT_TYPE +av_readdata[10] <= rp_data[10].DB_MAX_OUTPUT_PORT_TYPE +av_readdata[11] <= rp_data[11].DB_MAX_OUTPUT_PORT_TYPE +av_readdata[12] <= rp_data[12].DB_MAX_OUTPUT_PORT_TYPE +av_readdata[13] <= rp_data[13].DB_MAX_OUTPUT_PORT_TYPE +av_readdata[14] <= rp_data[14].DB_MAX_OUTPUT_PORT_TYPE +av_readdata[15] <= rp_data[15].DB_MAX_OUTPUT_PORT_TYPE +av_readdata[16] <= rp_data[16].DB_MAX_OUTPUT_PORT_TYPE +av_readdata[17] <= rp_data[17].DB_MAX_OUTPUT_PORT_TYPE +av_readdata[18] <= rp_data[18].DB_MAX_OUTPUT_PORT_TYPE +av_readdata[19] <= rp_data[19].DB_MAX_OUTPUT_PORT_TYPE +av_readdata[20] <= rp_data[20].DB_MAX_OUTPUT_PORT_TYPE +av_readdata[21] <= rp_data[21].DB_MAX_OUTPUT_PORT_TYPE +av_readdata[22] <= rp_data[22].DB_MAX_OUTPUT_PORT_TYPE +av_readdata[23] <= rp_data[23].DB_MAX_OUTPUT_PORT_TYPE +av_readdata[24] <= rp_data[24].DB_MAX_OUTPUT_PORT_TYPE +av_readdata[25] <= rp_data[25].DB_MAX_OUTPUT_PORT_TYPE +av_readdata[26] <= rp_data[26].DB_MAX_OUTPUT_PORT_TYPE +av_readdata[27] <= rp_data[27].DB_MAX_OUTPUT_PORT_TYPE +av_readdata[28] <= rp_data[28].DB_MAX_OUTPUT_PORT_TYPE +av_readdata[29] <= rp_data[29].DB_MAX_OUTPUT_PORT_TYPE +av_readdata[30] <= rp_data[30].DB_MAX_OUTPUT_PORT_TYPE +av_readdata[31] <= rp_data[31].DB_MAX_OUTPUT_PORT_TYPE +av_waitrequest <= av_waitrequest.DB_MAX_OUTPUT_PORT_TYPE +av_readdatavalid <= av_readdatavalid.DB_MAX_OUTPUT_PORT_TYPE +av_byteenable[0] => cp_data[32].DATAIN +av_byteenable[1] => cp_data[33].DATAIN +av_byteenable[2] => cp_data[34].DATAIN +av_byteenable[3] => cp_data[35].DATAIN +av_burstcount[0] => cp_data[61].DATAIN +av_burstcount[1] => cp_data[62].DATAIN +av_burstcount[2] => cp_data[63].DATAIN +av_debugaccess => cp_data[87].DATAIN +av_lock => cp_data[59].DATAIN +av_response[0] <= +av_response[1] <= +av_writeresponserequest => cp_data.IN1 +av_writeresponsevalid <= av_writeresponsevalid.DB_MAX_OUTPUT_PORT_TYPE +cp_valid <= always1.DB_MAX_OUTPUT_PORT_TYPE +cp_data[0] <= av_writedata[0].DB_MAX_OUTPUT_PORT_TYPE +cp_data[1] <= av_writedata[1].DB_MAX_OUTPUT_PORT_TYPE +cp_data[2] <= av_writedata[2].DB_MAX_OUTPUT_PORT_TYPE +cp_data[3] <= av_writedata[3].DB_MAX_OUTPUT_PORT_TYPE +cp_data[4] <= av_writedata[4].DB_MAX_OUTPUT_PORT_TYPE +cp_data[5] <= av_writedata[5].DB_MAX_OUTPUT_PORT_TYPE +cp_data[6] <= av_writedata[6].DB_MAX_OUTPUT_PORT_TYPE +cp_data[7] <= av_writedata[7].DB_MAX_OUTPUT_PORT_TYPE +cp_data[8] <= av_writedata[8].DB_MAX_OUTPUT_PORT_TYPE +cp_data[9] <= av_writedata[9].DB_MAX_OUTPUT_PORT_TYPE +cp_data[10] <= av_writedata[10].DB_MAX_OUTPUT_PORT_TYPE +cp_data[11] <= av_writedata[11].DB_MAX_OUTPUT_PORT_TYPE +cp_data[12] <= av_writedata[12].DB_MAX_OUTPUT_PORT_TYPE +cp_data[13] <= av_writedata[13].DB_MAX_OUTPUT_PORT_TYPE +cp_data[14] <= av_writedata[14].DB_MAX_OUTPUT_PORT_TYPE +cp_data[15] <= av_writedata[15].DB_MAX_OUTPUT_PORT_TYPE +cp_data[16] <= av_writedata[16].DB_MAX_OUTPUT_PORT_TYPE +cp_data[17] <= av_writedata[17].DB_MAX_OUTPUT_PORT_TYPE +cp_data[18] <= av_writedata[18].DB_MAX_OUTPUT_PORT_TYPE +cp_data[19] <= av_writedata[19].DB_MAX_OUTPUT_PORT_TYPE +cp_data[20] <= av_writedata[20].DB_MAX_OUTPUT_PORT_TYPE +cp_data[21] <= av_writedata[21].DB_MAX_OUTPUT_PORT_TYPE +cp_data[22] <= av_writedata[22].DB_MAX_OUTPUT_PORT_TYPE +cp_data[23] <= av_writedata[23].DB_MAX_OUTPUT_PORT_TYPE +cp_data[24] <= av_writedata[24].DB_MAX_OUTPUT_PORT_TYPE +cp_data[25] <= av_writedata[25].DB_MAX_OUTPUT_PORT_TYPE +cp_data[26] <= av_writedata[26].DB_MAX_OUTPUT_PORT_TYPE +cp_data[27] <= av_writedata[27].DB_MAX_OUTPUT_PORT_TYPE +cp_data[28] <= av_writedata[28].DB_MAX_OUTPUT_PORT_TYPE +cp_data[29] <= av_writedata[29].DB_MAX_OUTPUT_PORT_TYPE +cp_data[30] <= av_writedata[30].DB_MAX_OUTPUT_PORT_TYPE +cp_data[31] <= av_writedata[31].DB_MAX_OUTPUT_PORT_TYPE +cp_data[32] <= av_byteenable[0].DB_MAX_OUTPUT_PORT_TYPE +cp_data[33] <= av_byteenable[1].DB_MAX_OUTPUT_PORT_TYPE +cp_data[34] <= av_byteenable[2].DB_MAX_OUTPUT_PORT_TYPE +cp_data[35] <= av_byteenable[3].DB_MAX_OUTPUT_PORT_TYPE +cp_data[36] <= +cp_data[37] <= +cp_data[38] <= av_address[2].DB_MAX_OUTPUT_PORT_TYPE +cp_data[39] <= av_address[3].DB_MAX_OUTPUT_PORT_TYPE +cp_data[40] <= av_address[4].DB_MAX_OUTPUT_PORT_TYPE +cp_data[41] <= av_address[5].DB_MAX_OUTPUT_PORT_TYPE +cp_data[42] <= av_address[6].DB_MAX_OUTPUT_PORT_TYPE +cp_data[43] <= av_address[7].DB_MAX_OUTPUT_PORT_TYPE +cp_data[44] <= av_address[8].DB_MAX_OUTPUT_PORT_TYPE +cp_data[45] <= av_address[9].DB_MAX_OUTPUT_PORT_TYPE +cp_data[46] <= av_address[10].DB_MAX_OUTPUT_PORT_TYPE +cp_data[47] <= av_address[11].DB_MAX_OUTPUT_PORT_TYPE +cp_data[48] <= av_address[12].DB_MAX_OUTPUT_PORT_TYPE +cp_data[49] <= av_address[13].DB_MAX_OUTPUT_PORT_TYPE +cp_data[50] <= av_address[14].DB_MAX_OUTPUT_PORT_TYPE +cp_data[51] <= av_address[15].DB_MAX_OUTPUT_PORT_TYPE +cp_data[52] <= av_address[16].DB_MAX_OUTPUT_PORT_TYPE +cp_data[53] <= av_address[17].DB_MAX_OUTPUT_PORT_TYPE +cp_data[54] <= av_address[18].DB_MAX_OUTPUT_PORT_TYPE +cp_data[55] <= +cp_data[56] <= cp_data.DB_MAX_OUTPUT_PORT_TYPE +cp_data[57] <= av_write.DB_MAX_OUTPUT_PORT_TYPE +cp_data[58] <= av_read.DB_MAX_OUTPUT_PORT_TYPE +cp_data[59] <= av_lock.DB_MAX_OUTPUT_PORT_TYPE +cp_data[60] <= +cp_data[61] <= av_burstcount[0].DB_MAX_OUTPUT_PORT_TYPE +cp_data[62] <= av_burstcount[1].DB_MAX_OUTPUT_PORT_TYPE +cp_data[63] <= av_burstcount[2].DB_MAX_OUTPUT_PORT_TYPE +cp_data[64] <= +cp_data[65] <= +cp_data[66] <= +cp_data[67] <= +cp_data[68] <= +cp_data[69] <= +cp_data[70] <= +cp_data[71] <= +cp_data[72] <= +cp_data[73] <= +cp_data[74] <= +cp_data[75] <= +cp_data[76] <= +cp_data[77] <= +cp_data[78] <= +cp_data[79] <= +cp_data[80] <= +cp_data[81] <= +cp_data[82] <= +cp_data[83] <= +cp_data[84] <= +cp_data[85] <= +cp_data[86] <= +cp_data[87] <= av_debugaccess.DB_MAX_OUTPUT_PORT_TYPE +cp_data[88] <= +cp_data[89] <= +cp_data[90] <= +cp_data[91] <= +cp_data[92] <= +cp_data[93] <= +cp_data[94] <= +cp_data[95] <= +cp_startofpacket <= +cp_endofpacket <= +cp_ready => av_waitrequest.IN1 +rp_valid => av_writeresponsevalid.DATAB +rp_valid => av_readdatavalid.DATAA +rp_data[0] => av_readdata[0].DATAIN +rp_data[1] => av_readdata[1].DATAIN +rp_data[2] => av_readdata[2].DATAIN +rp_data[3] => av_readdata[3].DATAIN +rp_data[4] => av_readdata[4].DATAIN +rp_data[5] => av_readdata[5].DATAIN +rp_data[6] => av_readdata[6].DATAIN +rp_data[7] => av_readdata[7].DATAIN +rp_data[8] => av_readdata[8].DATAIN +rp_data[9] => av_readdata[9].DATAIN +rp_data[10] => av_readdata[10].DATAIN +rp_data[11] => av_readdata[11].DATAIN +rp_data[12] => av_readdata[12].DATAIN +rp_data[13] => av_readdata[13].DATAIN +rp_data[14] => av_readdata[14].DATAIN +rp_data[15] => av_readdata[15].DATAIN +rp_data[16] => av_readdata[16].DATAIN +rp_data[17] => av_readdata[17].DATAIN +rp_data[18] => av_readdata[18].DATAIN +rp_data[19] => av_readdata[19].DATAIN +rp_data[20] => av_readdata[20].DATAIN +rp_data[21] => av_readdata[21].DATAIN +rp_data[22] => av_readdata[22].DATAIN +rp_data[23] => av_readdata[23].DATAIN +rp_data[24] => av_readdata[24].DATAIN +rp_data[25] => av_readdata[25].DATAIN +rp_data[26] => av_readdata[26].DATAIN +rp_data[27] => av_readdata[27].DATAIN +rp_data[28] => av_readdata[28].DATAIN +rp_data[29] => av_readdata[29].DATAIN +rp_data[30] => av_readdata[30].DATAIN +rp_data[31] => av_readdata[31].DATAIN +rp_data[32] => ~NO_FANOUT~ +rp_data[33] => ~NO_FANOUT~ +rp_data[34] => ~NO_FANOUT~ +rp_data[35] => ~NO_FANOUT~ +rp_data[36] => ~NO_FANOUT~ +rp_data[37] => ~NO_FANOUT~ +rp_data[38] => ~NO_FANOUT~ +rp_data[39] => ~NO_FANOUT~ +rp_data[40] => ~NO_FANOUT~ +rp_data[41] => ~NO_FANOUT~ +rp_data[42] => ~NO_FANOUT~ +rp_data[43] => ~NO_FANOUT~ +rp_data[44] => ~NO_FANOUT~ +rp_data[45] => ~NO_FANOUT~ +rp_data[46] => ~NO_FANOUT~ +rp_data[47] => ~NO_FANOUT~ +rp_data[48] => ~NO_FANOUT~ +rp_data[49] => ~NO_FANOUT~ +rp_data[50] => ~NO_FANOUT~ +rp_data[51] => ~NO_FANOUT~ +rp_data[52] => ~NO_FANOUT~ +rp_data[53] => ~NO_FANOUT~ +rp_data[54] => ~NO_FANOUT~ +rp_data[55] => ~NO_FANOUT~ +rp_data[56] => ~NO_FANOUT~ +rp_data[57] => av_writeresponsevalid.OUTPUTSELECT +rp_data[57] => av_readdatavalid.OUTPUTSELECT +rp_data[58] => ~NO_FANOUT~ +rp_data[59] => ~NO_FANOUT~ +rp_data[60] => ~NO_FANOUT~ +rp_data[61] => ~NO_FANOUT~ +rp_data[62] => ~NO_FANOUT~ +rp_data[63] => ~NO_FANOUT~ +rp_data[64] => ~NO_FANOUT~ +rp_data[65] => ~NO_FANOUT~ +rp_data[66] => ~NO_FANOUT~ +rp_data[67] => ~NO_FANOUT~ +rp_data[68] => ~NO_FANOUT~ +rp_data[69] => ~NO_FANOUT~ +rp_data[70] => ~NO_FANOUT~ +rp_data[71] => ~NO_FANOUT~ +rp_data[72] => ~NO_FANOUT~ +rp_data[73] => ~NO_FANOUT~ +rp_data[74] => ~NO_FANOUT~ +rp_data[75] => ~NO_FANOUT~ +rp_data[76] => ~NO_FANOUT~ +rp_data[77] => ~NO_FANOUT~ +rp_data[78] => ~NO_FANOUT~ +rp_data[79] => ~NO_FANOUT~ +rp_data[80] => ~NO_FANOUT~ +rp_data[81] => ~NO_FANOUT~ +rp_data[82] => ~NO_FANOUT~ +rp_data[83] => ~NO_FANOUT~ +rp_data[84] => ~NO_FANOUT~ +rp_data[85] => ~NO_FANOUT~ +rp_data[86] => ~NO_FANOUT~ +rp_data[87] => ~NO_FANOUT~ +rp_data[88] => ~NO_FANOUT~ +rp_data[89] => ~NO_FANOUT~ +rp_data[90] => ~NO_FANOUT~ +rp_data[91] => ~NO_FANOUT~ +rp_data[92] => ~NO_FANOUT~ +rp_data[93] => ~NO_FANOUT~ +rp_data[94] => ~NO_FANOUT~ +rp_data[95] => ~NO_FANOUT~ +rp_channel[0] => ~NO_FANOUT~ +rp_channel[1] => ~NO_FANOUT~ +rp_channel[2] => ~NO_FANOUT~ +rp_channel[3] => ~NO_FANOUT~ +rp_channel[4] => ~NO_FANOUT~ +rp_channel[5] => ~NO_FANOUT~ +rp_channel[6] => ~NO_FANOUT~ +rp_channel[7] => ~NO_FANOUT~ +rp_channel[8] => ~NO_FANOUT~ +rp_channel[9] => ~NO_FANOUT~ +rp_channel[10] => ~NO_FANOUT~ +rp_channel[11] => ~NO_FANOUT~ +rp_channel[12] => ~NO_FANOUT~ +rp_channel[13] => ~NO_FANOUT~ +rp_channel[14] => ~NO_FANOUT~ +rp_channel[15] => ~NO_FANOUT~ +rp_channel[16] => ~NO_FANOUT~ +rp_channel[17] => ~NO_FANOUT~ +rp_startofpacket => ~NO_FANOUT~ +rp_endofpacket => ~NO_FANOUT~ +rp_ready <= + + +|lights|nios_system:NiosII|altera_merlin_master_agent:nios2_processor_data_master_translator_avalon_universal_master_0_agent +clk => hold_waitrequest.CLK +reset => hold_waitrequest.PRESET +av_address[0] => ~NO_FANOUT~ +av_address[1] => ~NO_FANOUT~ +av_address[2] => cp_data[38].DATAIN +av_address[3] => cp_data[39].DATAIN +av_address[4] => cp_data[40].DATAIN +av_address[5] => cp_data[41].DATAIN +av_address[6] => cp_data[42].DATAIN +av_address[7] => cp_data[43].DATAIN +av_address[8] => cp_data[44].DATAIN +av_address[9] => cp_data[45].DATAIN +av_address[10] => cp_data[46].DATAIN +av_address[11] => cp_data[47].DATAIN +av_address[12] => cp_data[48].DATAIN +av_address[13] => cp_data[49].DATAIN +av_address[14] => cp_data[50].DATAIN +av_address[15] => cp_data[51].DATAIN +av_address[16] => cp_data[52].DATAIN +av_address[17] => cp_data[53].DATAIN +av_address[18] => cp_data[54].DATAIN +av_write => cp_data.IN0 +av_write => always1.IN0 +av_write => cp_data[57].DATAIN +av_read => always1.IN1 +av_read => cp_data[58].DATAIN +av_writedata[0] => cp_data[0].DATAIN +av_writedata[1] => cp_data[1].DATAIN +av_writedata[2] => cp_data[2].DATAIN +av_writedata[3] => cp_data[3].DATAIN +av_writedata[4] => cp_data[4].DATAIN +av_writedata[5] => cp_data[5].DATAIN +av_writedata[6] => cp_data[6].DATAIN +av_writedata[7] => cp_data[7].DATAIN +av_writedata[8] => cp_data[8].DATAIN +av_writedata[9] => cp_data[9].DATAIN +av_writedata[10] => cp_data[10].DATAIN +av_writedata[11] => cp_data[11].DATAIN +av_writedata[12] => cp_data[12].DATAIN +av_writedata[13] => cp_data[13].DATAIN +av_writedata[14] => cp_data[14].DATAIN +av_writedata[15] => cp_data[15].DATAIN +av_writedata[16] => cp_data[16].DATAIN +av_writedata[17] => cp_data[17].DATAIN +av_writedata[18] => cp_data[18].DATAIN +av_writedata[19] => cp_data[19].DATAIN +av_writedata[20] => cp_data[20].DATAIN +av_writedata[21] => cp_data[21].DATAIN +av_writedata[22] => cp_data[22].DATAIN +av_writedata[23] => cp_data[23].DATAIN +av_writedata[24] => cp_data[24].DATAIN +av_writedata[25] => cp_data[25].DATAIN +av_writedata[26] => cp_data[26].DATAIN +av_writedata[27] => cp_data[27].DATAIN +av_writedata[28] => cp_data[28].DATAIN +av_writedata[29] => cp_data[29].DATAIN +av_writedata[30] => cp_data[30].DATAIN +av_writedata[31] => cp_data[31].DATAIN +av_readdata[0] <= rp_data[0].DB_MAX_OUTPUT_PORT_TYPE +av_readdata[1] <= rp_data[1].DB_MAX_OUTPUT_PORT_TYPE +av_readdata[2] <= rp_data[2].DB_MAX_OUTPUT_PORT_TYPE +av_readdata[3] <= rp_data[3].DB_MAX_OUTPUT_PORT_TYPE +av_readdata[4] <= rp_data[4].DB_MAX_OUTPUT_PORT_TYPE +av_readdata[5] <= rp_data[5].DB_MAX_OUTPUT_PORT_TYPE +av_readdata[6] <= rp_data[6].DB_MAX_OUTPUT_PORT_TYPE +av_readdata[7] <= rp_data[7].DB_MAX_OUTPUT_PORT_TYPE +av_readdata[8] <= rp_data[8].DB_MAX_OUTPUT_PORT_TYPE +av_readdata[9] <= rp_data[9].DB_MAX_OUTPUT_PORT_TYPE +av_readdata[10] <= rp_data[10].DB_MAX_OUTPUT_PORT_TYPE +av_readdata[11] <= rp_data[11].DB_MAX_OUTPUT_PORT_TYPE +av_readdata[12] <= rp_data[12].DB_MAX_OUTPUT_PORT_TYPE +av_readdata[13] <= rp_data[13].DB_MAX_OUTPUT_PORT_TYPE +av_readdata[14] <= rp_data[14].DB_MAX_OUTPUT_PORT_TYPE +av_readdata[15] <= rp_data[15].DB_MAX_OUTPUT_PORT_TYPE +av_readdata[16] <= rp_data[16].DB_MAX_OUTPUT_PORT_TYPE +av_readdata[17] <= rp_data[17].DB_MAX_OUTPUT_PORT_TYPE +av_readdata[18] <= rp_data[18].DB_MAX_OUTPUT_PORT_TYPE +av_readdata[19] <= rp_data[19].DB_MAX_OUTPUT_PORT_TYPE +av_readdata[20] <= rp_data[20].DB_MAX_OUTPUT_PORT_TYPE +av_readdata[21] <= rp_data[21].DB_MAX_OUTPUT_PORT_TYPE +av_readdata[22] <= rp_data[22].DB_MAX_OUTPUT_PORT_TYPE +av_readdata[23] <= rp_data[23].DB_MAX_OUTPUT_PORT_TYPE +av_readdata[24] <= rp_data[24].DB_MAX_OUTPUT_PORT_TYPE +av_readdata[25] <= rp_data[25].DB_MAX_OUTPUT_PORT_TYPE +av_readdata[26] <= rp_data[26].DB_MAX_OUTPUT_PORT_TYPE +av_readdata[27] <= rp_data[27].DB_MAX_OUTPUT_PORT_TYPE +av_readdata[28] <= rp_data[28].DB_MAX_OUTPUT_PORT_TYPE +av_readdata[29] <= rp_data[29].DB_MAX_OUTPUT_PORT_TYPE +av_readdata[30] <= rp_data[30].DB_MAX_OUTPUT_PORT_TYPE +av_readdata[31] <= rp_data[31].DB_MAX_OUTPUT_PORT_TYPE +av_waitrequest <= av_waitrequest.DB_MAX_OUTPUT_PORT_TYPE +av_readdatavalid <= av_readdatavalid.DB_MAX_OUTPUT_PORT_TYPE +av_byteenable[0] => cp_data[32].DATAIN +av_byteenable[1] => cp_data[33].DATAIN +av_byteenable[2] => cp_data[34].DATAIN +av_byteenable[3] => cp_data[35].DATAIN +av_burstcount[0] => cp_data[61].DATAIN +av_burstcount[1] => cp_data[62].DATAIN +av_burstcount[2] => cp_data[63].DATAIN +av_debugaccess => cp_data[87].DATAIN +av_lock => cp_data[59].DATAIN +av_response[0] <= +av_response[1] <= +av_writeresponserequest => cp_data.IN1 +av_writeresponsevalid <= av_writeresponsevalid.DB_MAX_OUTPUT_PORT_TYPE +cp_valid <= always1.DB_MAX_OUTPUT_PORT_TYPE +cp_data[0] <= av_writedata[0].DB_MAX_OUTPUT_PORT_TYPE +cp_data[1] <= av_writedata[1].DB_MAX_OUTPUT_PORT_TYPE +cp_data[2] <= av_writedata[2].DB_MAX_OUTPUT_PORT_TYPE +cp_data[3] <= av_writedata[3].DB_MAX_OUTPUT_PORT_TYPE +cp_data[4] <= av_writedata[4].DB_MAX_OUTPUT_PORT_TYPE +cp_data[5] <= av_writedata[5].DB_MAX_OUTPUT_PORT_TYPE +cp_data[6] <= av_writedata[6].DB_MAX_OUTPUT_PORT_TYPE +cp_data[7] <= av_writedata[7].DB_MAX_OUTPUT_PORT_TYPE +cp_data[8] <= av_writedata[8].DB_MAX_OUTPUT_PORT_TYPE +cp_data[9] <= av_writedata[9].DB_MAX_OUTPUT_PORT_TYPE +cp_data[10] <= av_writedata[10].DB_MAX_OUTPUT_PORT_TYPE +cp_data[11] <= av_writedata[11].DB_MAX_OUTPUT_PORT_TYPE +cp_data[12] <= av_writedata[12].DB_MAX_OUTPUT_PORT_TYPE +cp_data[13] <= av_writedata[13].DB_MAX_OUTPUT_PORT_TYPE +cp_data[14] <= av_writedata[14].DB_MAX_OUTPUT_PORT_TYPE +cp_data[15] <= av_writedata[15].DB_MAX_OUTPUT_PORT_TYPE +cp_data[16] <= av_writedata[16].DB_MAX_OUTPUT_PORT_TYPE +cp_data[17] <= av_writedata[17].DB_MAX_OUTPUT_PORT_TYPE +cp_data[18] <= av_writedata[18].DB_MAX_OUTPUT_PORT_TYPE +cp_data[19] <= av_writedata[19].DB_MAX_OUTPUT_PORT_TYPE +cp_data[20] <= av_writedata[20].DB_MAX_OUTPUT_PORT_TYPE +cp_data[21] <= av_writedata[21].DB_MAX_OUTPUT_PORT_TYPE +cp_data[22] <= av_writedata[22].DB_MAX_OUTPUT_PORT_TYPE +cp_data[23] <= av_writedata[23].DB_MAX_OUTPUT_PORT_TYPE +cp_data[24] <= av_writedata[24].DB_MAX_OUTPUT_PORT_TYPE +cp_data[25] <= av_writedata[25].DB_MAX_OUTPUT_PORT_TYPE +cp_data[26] <= av_writedata[26].DB_MAX_OUTPUT_PORT_TYPE +cp_data[27] <= av_writedata[27].DB_MAX_OUTPUT_PORT_TYPE +cp_data[28] <= av_writedata[28].DB_MAX_OUTPUT_PORT_TYPE +cp_data[29] <= av_writedata[29].DB_MAX_OUTPUT_PORT_TYPE +cp_data[30] <= av_writedata[30].DB_MAX_OUTPUT_PORT_TYPE +cp_data[31] <= av_writedata[31].DB_MAX_OUTPUT_PORT_TYPE +cp_data[32] <= av_byteenable[0].DB_MAX_OUTPUT_PORT_TYPE +cp_data[33] <= av_byteenable[1].DB_MAX_OUTPUT_PORT_TYPE +cp_data[34] <= av_byteenable[2].DB_MAX_OUTPUT_PORT_TYPE +cp_data[35] <= av_byteenable[3].DB_MAX_OUTPUT_PORT_TYPE +cp_data[36] <= +cp_data[37] <= +cp_data[38] <= av_address[2].DB_MAX_OUTPUT_PORT_TYPE +cp_data[39] <= av_address[3].DB_MAX_OUTPUT_PORT_TYPE +cp_data[40] <= av_address[4].DB_MAX_OUTPUT_PORT_TYPE +cp_data[41] <= av_address[5].DB_MAX_OUTPUT_PORT_TYPE +cp_data[42] <= av_address[6].DB_MAX_OUTPUT_PORT_TYPE +cp_data[43] <= av_address[7].DB_MAX_OUTPUT_PORT_TYPE +cp_data[44] <= av_address[8].DB_MAX_OUTPUT_PORT_TYPE +cp_data[45] <= av_address[9].DB_MAX_OUTPUT_PORT_TYPE +cp_data[46] <= av_address[10].DB_MAX_OUTPUT_PORT_TYPE +cp_data[47] <= av_address[11].DB_MAX_OUTPUT_PORT_TYPE +cp_data[48] <= av_address[12].DB_MAX_OUTPUT_PORT_TYPE +cp_data[49] <= av_address[13].DB_MAX_OUTPUT_PORT_TYPE +cp_data[50] <= av_address[14].DB_MAX_OUTPUT_PORT_TYPE +cp_data[51] <= av_address[15].DB_MAX_OUTPUT_PORT_TYPE +cp_data[52] <= av_address[16].DB_MAX_OUTPUT_PORT_TYPE +cp_data[53] <= av_address[17].DB_MAX_OUTPUT_PORT_TYPE +cp_data[54] <= av_address[18].DB_MAX_OUTPUT_PORT_TYPE +cp_data[55] <= +cp_data[56] <= cp_data.DB_MAX_OUTPUT_PORT_TYPE +cp_data[57] <= av_write.DB_MAX_OUTPUT_PORT_TYPE +cp_data[58] <= av_read.DB_MAX_OUTPUT_PORT_TYPE +cp_data[59] <= av_lock.DB_MAX_OUTPUT_PORT_TYPE +cp_data[60] <= +cp_data[61] <= av_burstcount[0].DB_MAX_OUTPUT_PORT_TYPE +cp_data[62] <= av_burstcount[1].DB_MAX_OUTPUT_PORT_TYPE +cp_data[63] <= av_burstcount[2].DB_MAX_OUTPUT_PORT_TYPE +cp_data[64] <= +cp_data[65] <= +cp_data[66] <= +cp_data[67] <= +cp_data[68] <= +cp_data[69] <= +cp_data[70] <= +cp_data[71] <= +cp_data[72] <= +cp_data[73] <= +cp_data[74] <= +cp_data[75] <= +cp_data[76] <= +cp_data[77] <= +cp_data[78] <= +cp_data[79] <= +cp_data[80] <= +cp_data[81] <= +cp_data[82] <= +cp_data[83] <= +cp_data[84] <= +cp_data[85] <= +cp_data[86] <= +cp_data[87] <= av_debugaccess.DB_MAX_OUTPUT_PORT_TYPE +cp_data[88] <= +cp_data[89] <= +cp_data[90] <= +cp_data[91] <= +cp_data[92] <= +cp_data[93] <= +cp_data[94] <= +cp_data[95] <= +cp_startofpacket <= +cp_endofpacket <= +cp_ready => av_waitrequest.IN1 +rp_valid => av_writeresponsevalid.DATAB +rp_valid => av_readdatavalid.DATAA +rp_data[0] => av_readdata[0].DATAIN +rp_data[1] => av_readdata[1].DATAIN +rp_data[2] => av_readdata[2].DATAIN +rp_data[3] => av_readdata[3].DATAIN +rp_data[4] => av_readdata[4].DATAIN +rp_data[5] => av_readdata[5].DATAIN +rp_data[6] => av_readdata[6].DATAIN +rp_data[7] => av_readdata[7].DATAIN +rp_data[8] => av_readdata[8].DATAIN +rp_data[9] => av_readdata[9].DATAIN +rp_data[10] => av_readdata[10].DATAIN +rp_data[11] => av_readdata[11].DATAIN +rp_data[12] => av_readdata[12].DATAIN +rp_data[13] => av_readdata[13].DATAIN +rp_data[14] => av_readdata[14].DATAIN +rp_data[15] => av_readdata[15].DATAIN +rp_data[16] => av_readdata[16].DATAIN +rp_data[17] => av_readdata[17].DATAIN +rp_data[18] => av_readdata[18].DATAIN +rp_data[19] => av_readdata[19].DATAIN +rp_data[20] => av_readdata[20].DATAIN +rp_data[21] => av_readdata[21].DATAIN +rp_data[22] => av_readdata[22].DATAIN +rp_data[23] => av_readdata[23].DATAIN +rp_data[24] => av_readdata[24].DATAIN +rp_data[25] => av_readdata[25].DATAIN +rp_data[26] => av_readdata[26].DATAIN +rp_data[27] => av_readdata[27].DATAIN +rp_data[28] => av_readdata[28].DATAIN +rp_data[29] => av_readdata[29].DATAIN +rp_data[30] => av_readdata[30].DATAIN +rp_data[31] => av_readdata[31].DATAIN +rp_data[32] => ~NO_FANOUT~ +rp_data[33] => ~NO_FANOUT~ +rp_data[34] => ~NO_FANOUT~ +rp_data[35] => ~NO_FANOUT~ +rp_data[36] => ~NO_FANOUT~ +rp_data[37] => ~NO_FANOUT~ +rp_data[38] => ~NO_FANOUT~ +rp_data[39] => ~NO_FANOUT~ +rp_data[40] => ~NO_FANOUT~ +rp_data[41] => ~NO_FANOUT~ +rp_data[42] => ~NO_FANOUT~ +rp_data[43] => ~NO_FANOUT~ +rp_data[44] => ~NO_FANOUT~ +rp_data[45] => ~NO_FANOUT~ +rp_data[46] => ~NO_FANOUT~ +rp_data[47] => ~NO_FANOUT~ +rp_data[48] => ~NO_FANOUT~ +rp_data[49] => ~NO_FANOUT~ +rp_data[50] => ~NO_FANOUT~ +rp_data[51] => ~NO_FANOUT~ +rp_data[52] => ~NO_FANOUT~ +rp_data[53] => ~NO_FANOUT~ +rp_data[54] => ~NO_FANOUT~ +rp_data[55] => ~NO_FANOUT~ +rp_data[56] => ~NO_FANOUT~ +rp_data[57] => av_writeresponsevalid.OUTPUTSELECT +rp_data[57] => av_readdatavalid.OUTPUTSELECT +rp_data[58] => ~NO_FANOUT~ +rp_data[59] => ~NO_FANOUT~ +rp_data[60] => ~NO_FANOUT~ +rp_data[61] => ~NO_FANOUT~ +rp_data[62] => ~NO_FANOUT~ +rp_data[63] => ~NO_FANOUT~ +rp_data[64] => ~NO_FANOUT~ +rp_data[65] => ~NO_FANOUT~ +rp_data[66] => ~NO_FANOUT~ +rp_data[67] => ~NO_FANOUT~ +rp_data[68] => ~NO_FANOUT~ +rp_data[69] => ~NO_FANOUT~ +rp_data[70] => ~NO_FANOUT~ +rp_data[71] => ~NO_FANOUT~ +rp_data[72] => ~NO_FANOUT~ +rp_data[73] => ~NO_FANOUT~ +rp_data[74] => ~NO_FANOUT~ +rp_data[75] => ~NO_FANOUT~ +rp_data[76] => ~NO_FANOUT~ +rp_data[77] => ~NO_FANOUT~ +rp_data[78] => ~NO_FANOUT~ +rp_data[79] => ~NO_FANOUT~ +rp_data[80] => ~NO_FANOUT~ +rp_data[81] => ~NO_FANOUT~ +rp_data[82] => ~NO_FANOUT~ +rp_data[83] => ~NO_FANOUT~ +rp_data[84] => ~NO_FANOUT~ +rp_data[85] => ~NO_FANOUT~ +rp_data[86] => ~NO_FANOUT~ +rp_data[87] => ~NO_FANOUT~ +rp_data[88] => ~NO_FANOUT~ +rp_data[89] => ~NO_FANOUT~ +rp_data[90] => ~NO_FANOUT~ +rp_data[91] => ~NO_FANOUT~ +rp_data[92] => ~NO_FANOUT~ +rp_data[93] => ~NO_FANOUT~ +rp_data[94] => ~NO_FANOUT~ +rp_data[95] => ~NO_FANOUT~ +rp_channel[0] => ~NO_FANOUT~ +rp_channel[1] => ~NO_FANOUT~ +rp_channel[2] => ~NO_FANOUT~ +rp_channel[3] => ~NO_FANOUT~ +rp_channel[4] => ~NO_FANOUT~ +rp_channel[5] => ~NO_FANOUT~ +rp_channel[6] => ~NO_FANOUT~ +rp_channel[7] => ~NO_FANOUT~ +rp_channel[8] => ~NO_FANOUT~ +rp_channel[9] => ~NO_FANOUT~ +rp_channel[10] => ~NO_FANOUT~ +rp_channel[11] => ~NO_FANOUT~ +rp_channel[12] => ~NO_FANOUT~ +rp_channel[13] => ~NO_FANOUT~ +rp_channel[14] => ~NO_FANOUT~ +rp_channel[15] => ~NO_FANOUT~ +rp_channel[16] => ~NO_FANOUT~ +rp_channel[17] => ~NO_FANOUT~ +rp_startofpacket => ~NO_FANOUT~ +rp_endofpacket => ~NO_FANOUT~ +rp_ready <= + + +|lights|nios_system:NiosII|altera_merlin_slave_agent:nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent +clk => clk.IN1 +reset => reset.IN1 +m0_address[0] <= +m0_address[1] <= +m0_address[2] <= cp_data[38].DB_MAX_OUTPUT_PORT_TYPE +m0_address[3] <= cp_data[39].DB_MAX_OUTPUT_PORT_TYPE +m0_address[4] <= cp_data[40].DB_MAX_OUTPUT_PORT_TYPE +m0_address[5] <= cp_data[41].DB_MAX_OUTPUT_PORT_TYPE +m0_address[6] <= cp_data[42].DB_MAX_OUTPUT_PORT_TYPE +m0_address[7] <= cp_data[43].DB_MAX_OUTPUT_PORT_TYPE +m0_address[8] <= cp_data[44].DB_MAX_OUTPUT_PORT_TYPE +m0_address[9] <= cp_data[45].DB_MAX_OUTPUT_PORT_TYPE +m0_address[10] <= cp_data[46].DB_MAX_OUTPUT_PORT_TYPE +m0_address[11] <= cp_data[47].DB_MAX_OUTPUT_PORT_TYPE +m0_address[12] <= cp_data[48].DB_MAX_OUTPUT_PORT_TYPE +m0_address[13] <= cp_data[49].DB_MAX_OUTPUT_PORT_TYPE +m0_address[14] <= cp_data[50].DB_MAX_OUTPUT_PORT_TYPE +m0_address[15] <= cp_data[51].DB_MAX_OUTPUT_PORT_TYPE +m0_address[16] <= cp_data[52].DB_MAX_OUTPUT_PORT_TYPE +m0_address[17] <= cp_data[53].DB_MAX_OUTPUT_PORT_TYPE +m0_address[18] <= cp_data[54].DB_MAX_OUTPUT_PORT_TYPE +m0_burstcount[0] <= m0_burstcount.DB_MAX_OUTPUT_PORT_TYPE +m0_burstcount[1] <= m0_burstcount.DB_MAX_OUTPUT_PORT_TYPE +m0_burstcount[2] <= m0_burstcount.DB_MAX_OUTPUT_PORT_TYPE +m0_byteenable[0] <= cp_data[32].DB_MAX_OUTPUT_PORT_TYPE +m0_byteenable[1] <= cp_data[33].DB_MAX_OUTPUT_PORT_TYPE +m0_byteenable[2] <= cp_data[34].DB_MAX_OUTPUT_PORT_TYPE +m0_byteenable[3] <= cp_data[35].DB_MAX_OUTPUT_PORT_TYPE +m0_read <= m0_read.DB_MAX_OUTPUT_PORT_TYPE +m0_readdata[0] => rdata_fifo_src_data[0].DATAIN +m0_readdata[1] => rdata_fifo_src_data[1].DATAIN +m0_readdata[2] => rdata_fifo_src_data[2].DATAIN +m0_readdata[3] => rdata_fifo_src_data[3].DATAIN +m0_readdata[4] => rdata_fifo_src_data[4].DATAIN +m0_readdata[5] => rdata_fifo_src_data[5].DATAIN +m0_readdata[6] => rdata_fifo_src_data[6].DATAIN +m0_readdata[7] => rdata_fifo_src_data[7].DATAIN +m0_readdata[8] => rdata_fifo_src_data[8].DATAIN +m0_readdata[9] => rdata_fifo_src_data[9].DATAIN +m0_readdata[10] => rdata_fifo_src_data[10].DATAIN +m0_readdata[11] => rdata_fifo_src_data[11].DATAIN +m0_readdata[12] => rdata_fifo_src_data[12].DATAIN +m0_readdata[13] => rdata_fifo_src_data[13].DATAIN +m0_readdata[14] => rdata_fifo_src_data[14].DATAIN +m0_readdata[15] => rdata_fifo_src_data[15].DATAIN +m0_readdata[16] => rdata_fifo_src_data[16].DATAIN +m0_readdata[17] => rdata_fifo_src_data[17].DATAIN +m0_readdata[18] => rdata_fifo_src_data[18].DATAIN +m0_readdata[19] => rdata_fifo_src_data[19].DATAIN +m0_readdata[20] => rdata_fifo_src_data[20].DATAIN +m0_readdata[21] => rdata_fifo_src_data[21].DATAIN +m0_readdata[22] => rdata_fifo_src_data[22].DATAIN +m0_readdata[23] => rdata_fifo_src_data[23].DATAIN +m0_readdata[24] => rdata_fifo_src_data[24].DATAIN +m0_readdata[25] => rdata_fifo_src_data[25].DATAIN +m0_readdata[26] => rdata_fifo_src_data[26].DATAIN +m0_readdata[27] => rdata_fifo_src_data[27].DATAIN +m0_readdata[28] => rdata_fifo_src_data[28].DATAIN +m0_readdata[29] => rdata_fifo_src_data[29].DATAIN +m0_readdata[30] => rdata_fifo_src_data[30].DATAIN +m0_readdata[31] => rdata_fifo_src_data[31].DATAIN +m0_waitrequest => cp_ready.IN0 +m0_write <= m0_write.DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[0] <= cp_data[0].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[1] <= cp_data[1].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[2] <= cp_data[2].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[3] <= cp_data[3].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[4] <= cp_data[4].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[5] <= cp_data[5].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[6] <= cp_data[6].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[7] <= cp_data[7].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[8] <= cp_data[8].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[9] <= cp_data[9].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[10] <= cp_data[10].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[11] <= cp_data[11].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[12] <= cp_data[12].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[13] <= cp_data[13].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[14] <= cp_data[14].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[15] <= cp_data[15].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[16] <= cp_data[16].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[17] <= cp_data[17].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[18] <= cp_data[18].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[19] <= cp_data[19].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[20] <= cp_data[20].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[21] <= cp_data[21].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[22] <= cp_data[22].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[23] <= cp_data[23].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[24] <= cp_data[24].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[25] <= cp_data[25].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[26] <= cp_data[26].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[27] <= cp_data[27].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[28] <= cp_data[28].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[29] <= cp_data[29].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[30] <= cp_data[30].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[31] <= cp_data[31].DB_MAX_OUTPUT_PORT_TYPE +m0_readdatavalid => rdata_fifo_src_valid.IN0 +m0_debugaccess <= cp_data[87].DB_MAX_OUTPUT_PORT_TYPE +m0_lock <= m0_lock.DB_MAX_OUTPUT_PORT_TYPE +m0_response[0] => rdata_fifo_src_data[32].DATAIN +m0_response[1] => rdata_fifo_src_data[33].DATAIN +m0_writeresponserequest <= m0_writeresponserequest.DB_MAX_OUTPUT_PORT_TYPE +m0_writeresponsevalid => rdata_fifo_src_valid.IN1 +rf_source_data[0] <= +rf_source_data[1] <= +rf_source_data[2] <= +rf_source_data[3] <= +rf_source_data[4] <= +rf_source_data[5] <= +rf_source_data[6] <= +rf_source_data[7] <= +rf_source_data[8] <= +rf_source_data[9] <= +rf_source_data[10] <= +rf_source_data[11] <= +rf_source_data[12] <= +rf_source_data[13] <= +rf_source_data[14] <= +rf_source_data[15] <= +rf_source_data[16] <= +rf_source_data[17] <= +rf_source_data[18] <= +rf_source_data[19] <= +rf_source_data[20] <= +rf_source_data[21] <= +rf_source_data[22] <= +rf_source_data[23] <= +rf_source_data[24] <= +rf_source_data[25] <= +rf_source_data[26] <= +rf_source_data[27] <= +rf_source_data[28] <= +rf_source_data[29] <= +rf_source_data[30] <= +rf_source_data[31] <= +rf_source_data[32] <= cp_data[32].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[33] <= cp_data[33].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[34] <= cp_data[34].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[35] <= cp_data[35].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[36] <= cp_data[36].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[37] <= cp_data[37].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[38] <= cp_data[38].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[39] <= cp_data[39].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[40] <= cp_data[40].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[41] <= cp_data[41].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[42] <= cp_data[42].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[43] <= cp_data[43].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[44] <= cp_data[44].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[45] <= cp_data[45].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[46] <= cp_data[46].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[47] <= cp_data[47].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[48] <= cp_data[48].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[49] <= cp_data[49].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[50] <= cp_data[50].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[51] <= cp_data[51].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[52] <= cp_data[52].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[53] <= cp_data[53].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[54] <= cp_data[54].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[55] <= cp_data[55].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[56] <= cp_data[56].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[57] <= cp_data[57].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[58] <= cp_data[58].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[59] <= cp_data[59].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[60] <= cp_data[60].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[61] <= cp_data[61].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[62] <= cp_data[62].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[63] <= cp_data[63].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[64] <= cp_data[64].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[65] <= cp_data[65].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[66] <= cp_data[66].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[67] <= cp_data[67].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[68] <= cp_data[68].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[69] <= cp_data[69].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[70] <= cp_data[70].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[71] <= cp_data[71].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[72] <= cp_data[72].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[73] <= cp_data[73].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[74] <= cp_data[74].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[75] <= cp_data[75].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[76] <= cp_data[76].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[77] <= cp_data[77].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[78] <= cp_data[78].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[79] <= cp_data[79].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[80] <= cp_data[80].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[81] <= cp_data[81].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[82] <= cp_data[82].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[83] <= cp_data[83].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[84] <= cp_data[84].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[85] <= cp_data[85].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[86] <= cp_data[86].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[87] <= cp_data[87].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[88] <= +rf_source_data[89] <= +rf_source_data[90] <= cp_data[90].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[91] <= cp_data[91].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[92] <= cp_data[92].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[93] <= cp_data[93].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[94] <= cp_data[94].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[95] <= cp_data[95].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[96] <= nonposted_write_endofpacket.DB_MAX_OUTPUT_PORT_TYPE +rf_source_valid <= rf_source_valid.DB_MAX_OUTPUT_PORT_TYPE +rf_source_startofpacket <= cp_startofpacket.DB_MAX_OUTPUT_PORT_TYPE +rf_source_endofpacket <= cp_endofpacket.DB_MAX_OUTPUT_PORT_TYPE +rf_source_ready => cp_ready.IN1 +rf_source_ready => m0_write.IN1 +rf_source_ready => m0_lock.IN1 +rf_source_ready => rf_source_valid.IN1 +rf_source_ready => m0_read.IN1 +rf_sink_data[0] => ~NO_FANOUT~ +rf_sink_data[1] => ~NO_FANOUT~ +rf_sink_data[2] => ~NO_FANOUT~ +rf_sink_data[3] => ~NO_FANOUT~ +rf_sink_data[4] => ~NO_FANOUT~ +rf_sink_data[5] => ~NO_FANOUT~ +rf_sink_data[6] => ~NO_FANOUT~ +rf_sink_data[7] => ~NO_FANOUT~ +rf_sink_data[8] => ~NO_FANOUT~ +rf_sink_data[9] => ~NO_FANOUT~ +rf_sink_data[10] => ~NO_FANOUT~ +rf_sink_data[11] => ~NO_FANOUT~ +rf_sink_data[12] => ~NO_FANOUT~ +rf_sink_data[13] => ~NO_FANOUT~ +rf_sink_data[14] => ~NO_FANOUT~ +rf_sink_data[15] => ~NO_FANOUT~ +rf_sink_data[16] => ~NO_FANOUT~ +rf_sink_data[17] => ~NO_FANOUT~ +rf_sink_data[18] => ~NO_FANOUT~ +rf_sink_data[19] => ~NO_FANOUT~ +rf_sink_data[20] => ~NO_FANOUT~ +rf_sink_data[21] => ~NO_FANOUT~ +rf_sink_data[22] => ~NO_FANOUT~ +rf_sink_data[23] => ~NO_FANOUT~ +rf_sink_data[24] => ~NO_FANOUT~ +rf_sink_data[25] => ~NO_FANOUT~ +rf_sink_data[26] => ~NO_FANOUT~ +rf_sink_data[27] => ~NO_FANOUT~ +rf_sink_data[28] => ~NO_FANOUT~ +rf_sink_data[29] => ~NO_FANOUT~ +rf_sink_data[30] => ~NO_FANOUT~ +rf_sink_data[31] => ~NO_FANOUT~ +rf_sink_data[32] => rp_data[32].DATAIN +rf_sink_data[33] => rp_data[33].DATAIN +rf_sink_data[34] => rp_data[34].DATAIN +rf_sink_data[35] => rp_data[35].DATAIN +rf_sink_data[36] => rf_sink_addr[0].IN1 +rf_sink_data[37] => rf_sink_addr[1].IN1 +rf_sink_data[38] => rf_sink_addr[2].IN1 +rf_sink_data[39] => rf_sink_addr[3].IN1 +rf_sink_data[40] => rf_sink_addr[4].IN1 +rf_sink_data[41] => rf_sink_addr[5].IN1 +rf_sink_data[42] => rf_sink_addr[6].IN1 +rf_sink_data[43] => rf_sink_addr[7].IN1 +rf_sink_data[44] => rf_sink_addr[8].IN1 +rf_sink_data[45] => rf_sink_addr[9].IN1 +rf_sink_data[46] => rf_sink_addr[10].IN1 +rf_sink_data[47] => rf_sink_addr[11].IN1 +rf_sink_data[48] => rf_sink_addr[12].IN1 +rf_sink_data[49] => rf_sink_addr[13].IN1 +rf_sink_data[50] => rf_sink_addr[14].IN1 +rf_sink_data[51] => rf_sink_addr[15].IN1 +rf_sink_data[52] => rf_sink_addr[16].IN1 +rf_sink_data[53] => rf_sink_addr[17].IN1 +rf_sink_data[54] => rf_sink_addr[18].IN1 +rf_sink_data[55] => rf_sink_compressed.IN1 +rf_sink_data[56] => rp_data[56].DATAIN +rf_sink_data[57] => comb.OUTPUTSELECT +rf_sink_data[57] => rp_data[57].DATAIN +rf_sink_data[58] => rp_data.IN0 +rf_sink_data[59] => rp_data[59].DATAIN +rf_sink_data[60] => rp_data[60].DATAIN +rf_sink_data[61] => rf_sink_byte_cnt[0].IN1 +rf_sink_data[62] => rf_sink_byte_cnt[1].IN1 +rf_sink_data[63] => rf_sink_byte_cnt[2].IN1 +rf_sink_data[64] => rf_sink_burstwrap[0].IN1 +rf_sink_data[65] => rf_sink_burstwrap[1].IN1 +rf_sink_data[66] => rf_sink_burstwrap[2].IN1 +rf_sink_data[67] => rf_sink_burstsize[0].IN1 +rf_sink_data[68] => rf_sink_burstsize[1].IN1 +rf_sink_data[69] => rf_sink_burstsize[2].IN1 +rf_sink_data[70] => rp_data[70].DATAIN +rf_sink_data[71] => rp_data[71].DATAIN +rf_sink_data[72] => rp_data[72].DATAIN +rf_sink_data[73] => rp_data[73].DATAIN +rf_sink_data[74] => rp_data[74].DATAIN +rf_sink_data[75] => rp_data[75].DATAIN +rf_sink_data[76] => rp_data[81].DATAIN +rf_sink_data[77] => rp_data[82].DATAIN +rf_sink_data[78] => rp_data[83].DATAIN +rf_sink_data[79] => rp_data[84].DATAIN +rf_sink_data[80] => rp_data[85].DATAIN +rf_sink_data[81] => rp_data[76].DATAIN +rf_sink_data[82] => rp_data[77].DATAIN +rf_sink_data[83] => rp_data[78].DATAIN +rf_sink_data[84] => rp_data[79].DATAIN +rf_sink_data[85] => rp_data[80].DATAIN +rf_sink_data[86] => rp_data[86].DATAIN +rf_sink_data[87] => rp_data[87].DATAIN +rf_sink_data[88] => rp_data[88].DATAIN +rf_sink_data[89] => rp_data[89].DATAIN +rf_sink_data[90] => rp_data[90].DATAIN +rf_sink_data[91] => rp_data[91].DATAIN +rf_sink_data[92] => rp_data[92].DATAIN +rf_sink_data[93] => rp_data[93].DATAIN +rf_sink_data[94] => ~NO_FANOUT~ +rf_sink_data[95] => ~NO_FANOUT~ +rf_sink_data[96] => rdata_fifo_sink_ready.IN0 +rf_sink_data[96] => comb.IN0 +rf_sink_valid => rdata_fifo_sink_ready.IN1 +rf_sink_valid => comb.IN1 +rf_sink_startofpacket => comb.DATAA +rf_sink_endofpacket => rf_sink_endofpacket.IN1 +rf_sink_ready <= altera_merlin_burst_uncompressor:uncompressor.sink_ready +rdata_fifo_src_data[0] <= m0_readdata[0].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[1] <= m0_readdata[1].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[2] <= m0_readdata[2].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[3] <= m0_readdata[3].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[4] <= m0_readdata[4].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[5] <= m0_readdata[5].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[6] <= m0_readdata[6].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[7] <= m0_readdata[7].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[8] <= m0_readdata[8].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[9] <= m0_readdata[9].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[10] <= m0_readdata[10].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[11] <= m0_readdata[11].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[12] <= m0_readdata[12].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[13] <= m0_readdata[13].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[14] <= m0_readdata[14].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[15] <= m0_readdata[15].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[16] <= m0_readdata[16].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[17] <= m0_readdata[17].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[18] <= m0_readdata[18].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[19] <= m0_readdata[19].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[20] <= m0_readdata[20].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[21] <= m0_readdata[21].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[22] <= m0_readdata[22].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[23] <= m0_readdata[23].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[24] <= m0_readdata[24].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[25] <= m0_readdata[25].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[26] <= m0_readdata[26].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[27] <= m0_readdata[27].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[28] <= m0_readdata[28].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[29] <= m0_readdata[29].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[30] <= m0_readdata[30].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[31] <= m0_readdata[31].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[32] <= m0_response[0].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[33] <= m0_response[1].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_valid <= rdata_fifo_src_valid.DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_ready => ~NO_FANOUT~ +rdata_fifo_sink_data[0] => rp_data[0].DATAIN +rdata_fifo_sink_data[1] => rp_data[1].DATAIN +rdata_fifo_sink_data[2] => rp_data[2].DATAIN +rdata_fifo_sink_data[3] => rp_data[3].DATAIN +rdata_fifo_sink_data[4] => rp_data[4].DATAIN +rdata_fifo_sink_data[5] => rp_data[5].DATAIN +rdata_fifo_sink_data[6] => rp_data[6].DATAIN +rdata_fifo_sink_data[7] => rp_data[7].DATAIN +rdata_fifo_sink_data[8] => rp_data[8].DATAIN +rdata_fifo_sink_data[9] => rp_data[9].DATAIN +rdata_fifo_sink_data[10] => rp_data[10].DATAIN +rdata_fifo_sink_data[11] => rp_data[11].DATAIN +rdata_fifo_sink_data[12] => rp_data[12].DATAIN +rdata_fifo_sink_data[13] => rp_data[13].DATAIN +rdata_fifo_sink_data[14] => rp_data[14].DATAIN +rdata_fifo_sink_data[15] => rp_data[15].DATAIN +rdata_fifo_sink_data[16] => rp_data[16].DATAIN +rdata_fifo_sink_data[17] => rp_data[17].DATAIN +rdata_fifo_sink_data[18] => rp_data[18].DATAIN +rdata_fifo_sink_data[19] => rp_data[19].DATAIN +rdata_fifo_sink_data[20] => rp_data[20].DATAIN +rdata_fifo_sink_data[21] => rp_data[21].DATAIN +rdata_fifo_sink_data[22] => rp_data[22].DATAIN +rdata_fifo_sink_data[23] => rp_data[23].DATAIN +rdata_fifo_sink_data[24] => rp_data[24].DATAIN +rdata_fifo_sink_data[25] => rp_data[25].DATAIN +rdata_fifo_sink_data[26] => rp_data[26].DATAIN +rdata_fifo_sink_data[27] => rp_data[27].DATAIN +rdata_fifo_sink_data[28] => rp_data[28].DATAIN +rdata_fifo_sink_data[29] => rp_data[29].DATAIN +rdata_fifo_sink_data[30] => rp_data[30].DATAIN +rdata_fifo_sink_data[31] => rp_data[31].DATAIN +rdata_fifo_sink_data[32] => rp_data[94].DATAIN +rdata_fifo_sink_data[33] => rp_data[95].DATAIN +rdata_fifo_sink_valid => rp_valid.IN1 +rdata_fifo_sink_valid => rdata_fifo_sink_ready.IN0 +rdata_fifo_sink_valid => comb.IN1 +rdata_fifo_sink_ready <= rdata_fifo_sink_ready.DB_MAX_OUTPUT_PORT_TYPE +cp_ready <= cp_ready.DB_MAX_OUTPUT_PORT_TYPE +cp_valid => local_lock.IN0 +cp_valid => local_write.IN0 +cp_valid => local_read.IN0 +cp_valid => local_compressed_read.IN0 +cp_data[0] => m0_writedata[0].DATAIN +cp_data[1] => m0_writedata[1].DATAIN +cp_data[2] => m0_writedata[2].DATAIN +cp_data[3] => m0_writedata[3].DATAIN +cp_data[4] => m0_writedata[4].DATAIN +cp_data[5] => m0_writedata[5].DATAIN +cp_data[6] => m0_writedata[6].DATAIN +cp_data[7] => m0_writedata[7].DATAIN +cp_data[8] => m0_writedata[8].DATAIN +cp_data[9] => m0_writedata[9].DATAIN +cp_data[10] => m0_writedata[10].DATAIN +cp_data[11] => m0_writedata[11].DATAIN +cp_data[12] => m0_writedata[12].DATAIN +cp_data[13] => m0_writedata[13].DATAIN +cp_data[14] => m0_writedata[14].DATAIN +cp_data[15] => m0_writedata[15].DATAIN +cp_data[16] => m0_writedata[16].DATAIN +cp_data[17] => m0_writedata[17].DATAIN +cp_data[18] => m0_writedata[18].DATAIN +cp_data[19] => m0_writedata[19].DATAIN +cp_data[20] => m0_writedata[20].DATAIN +cp_data[21] => m0_writedata[21].DATAIN +cp_data[22] => m0_writedata[22].DATAIN +cp_data[23] => m0_writedata[23].DATAIN +cp_data[24] => m0_writedata[24].DATAIN +cp_data[25] => m0_writedata[25].DATAIN +cp_data[26] => m0_writedata[26].DATAIN +cp_data[27] => m0_writedata[27].DATAIN +cp_data[28] => m0_writedata[28].DATAIN +cp_data[29] => m0_writedata[29].DATAIN +cp_data[30] => m0_writedata[30].DATAIN +cp_data[31] => m0_writedata[31].DATAIN +cp_data[32] => rf_source_data[32].DATAIN +cp_data[32] => m0_byteenable[0].DATAIN +cp_data[33] => rf_source_data[33].DATAIN +cp_data[33] => m0_byteenable[1].DATAIN +cp_data[34] => rf_source_data[34].DATAIN +cp_data[34] => m0_byteenable[2].DATAIN +cp_data[35] => rf_source_data[35].DATAIN +cp_data[35] => m0_byteenable[3].DATAIN +cp_data[36] => rf_source_data[36].DATAIN +cp_data[37] => rf_source_data[37].DATAIN +cp_data[38] => rf_source_data[38].DATAIN +cp_data[38] => m0_address[2].DATAIN +cp_data[39] => rf_source_data[39].DATAIN +cp_data[39] => m0_address[3].DATAIN +cp_data[40] => rf_source_data[40].DATAIN +cp_data[40] => m0_address[4].DATAIN +cp_data[41] => rf_source_data[41].DATAIN +cp_data[41] => m0_address[5].DATAIN +cp_data[42] => rf_source_data[42].DATAIN +cp_data[42] => m0_address[6].DATAIN +cp_data[43] => rf_source_data[43].DATAIN +cp_data[43] => m0_address[7].DATAIN +cp_data[44] => rf_source_data[44].DATAIN +cp_data[44] => m0_address[8].DATAIN +cp_data[45] => rf_source_data[45].DATAIN +cp_data[45] => m0_address[9].DATAIN +cp_data[46] => rf_source_data[46].DATAIN +cp_data[46] => m0_address[10].DATAIN +cp_data[47] => rf_source_data[47].DATAIN +cp_data[47] => m0_address[11].DATAIN +cp_data[48] => rf_source_data[48].DATAIN +cp_data[48] => m0_address[12].DATAIN +cp_data[49] => rf_source_data[49].DATAIN +cp_data[49] => m0_address[13].DATAIN +cp_data[50] => rf_source_data[50].DATAIN +cp_data[50] => m0_address[14].DATAIN +cp_data[51] => rf_source_data[51].DATAIN +cp_data[51] => m0_address[15].DATAIN +cp_data[52] => rf_source_data[52].DATAIN +cp_data[52] => m0_address[16].DATAIN +cp_data[53] => rf_source_data[53].DATAIN +cp_data[53] => m0_address[17].DATAIN +cp_data[54] => rf_source_data[54].DATAIN +cp_data[54] => m0_address[18].DATAIN +cp_data[55] => local_compressed_read.IN1 +cp_data[55] => rf_source_data[55].DATAIN +cp_data[56] => rf_source_data[56].DATAIN +cp_data[56] => m0_writeresponserequest.IN1 +cp_data[56] => comb.IN1 +cp_data[57] => local_write.IN1 +cp_data[57] => rf_source_data[57].DATAIN +cp_data[58] => local_read.IN1 +cp_data[58] => rf_source_data[58].DATAIN +cp_data[59] => local_lock.IN1 +cp_data[59] => rf_source_data[59].DATAIN +cp_data[60] => rf_source_data[60].DATAIN +cp_data[61] => m0_burstcount.DATAA +cp_data[61] => rf_source_data[61].DATAIN +cp_data[62] => m0_burstcount.DATAA +cp_data[62] => rf_source_data[62].DATAIN +cp_data[63] => m0_burstcount.DATAA +cp_data[63] => rf_source_data[63].DATAIN +cp_data[64] => rf_source_data[64].DATAIN +cp_data[65] => rf_source_data[65].DATAIN +cp_data[66] => rf_source_data[66].DATAIN +cp_data[67] => rf_source_data[67].DATAIN +cp_data[68] => rf_source_data[68].DATAIN +cp_data[69] => rf_source_data[69].DATAIN +cp_data[70] => rf_source_data[70].DATAIN +cp_data[71] => rf_source_data[71].DATAIN +cp_data[72] => rf_source_data[72].DATAIN +cp_data[73] => rf_source_data[73].DATAIN +cp_data[74] => rf_source_data[74].DATAIN +cp_data[75] => rf_source_data[75].DATAIN +cp_data[76] => rf_source_data[76].DATAIN +cp_data[77] => rf_source_data[77].DATAIN +cp_data[78] => rf_source_data[78].DATAIN +cp_data[79] => rf_source_data[79].DATAIN +cp_data[80] => rf_source_data[80].DATAIN +cp_data[81] => rf_source_data[81].DATAIN +cp_data[82] => rf_source_data[82].DATAIN +cp_data[83] => rf_source_data[83].DATAIN +cp_data[84] => rf_source_data[84].DATAIN +cp_data[85] => rf_source_data[85].DATAIN +cp_data[86] => rf_source_data[86].DATAIN +cp_data[87] => rf_source_data[87].DATAIN +cp_data[87] => m0_debugaccess.DATAIN +cp_data[88] => ~NO_FANOUT~ +cp_data[89] => ~NO_FANOUT~ +cp_data[90] => rf_source_data[90].DATAIN +cp_data[91] => rf_source_data[91].DATAIN +cp_data[92] => rf_source_data[92].DATAIN +cp_data[93] => rf_source_data[93].DATAIN +cp_data[94] => rf_source_data[94].DATAIN +cp_data[95] => rf_source_data[95].DATAIN +cp_channel[0] => ~NO_FANOUT~ +cp_channel[1] => ~NO_FANOUT~ +cp_channel[2] => ~NO_FANOUT~ +cp_channel[3] => ~NO_FANOUT~ +cp_channel[4] => ~NO_FANOUT~ +cp_channel[5] => ~NO_FANOUT~ +cp_channel[6] => ~NO_FANOUT~ +cp_channel[7] => ~NO_FANOUT~ +cp_channel[8] => ~NO_FANOUT~ +cp_channel[9] => ~NO_FANOUT~ +cp_channel[10] => ~NO_FANOUT~ +cp_channel[11] => ~NO_FANOUT~ +cp_channel[12] => ~NO_FANOUT~ +cp_channel[13] => ~NO_FANOUT~ +cp_channel[14] => ~NO_FANOUT~ +cp_channel[15] => ~NO_FANOUT~ +cp_channel[16] => ~NO_FANOUT~ +cp_channel[17] => ~NO_FANOUT~ +cp_startofpacket => rf_source_startofpacket.DATAIN +cp_endofpacket => nonposted_write_endofpacket.IN1 +cp_endofpacket => rf_source_endofpacket.DATAIN +rp_ready => rp_ready.IN1 +rp_valid <= rp_valid.DB_MAX_OUTPUT_PORT_TYPE +rp_data[0] <= rdata_fifo_sink_data[0].DB_MAX_OUTPUT_PORT_TYPE +rp_data[1] <= rdata_fifo_sink_data[1].DB_MAX_OUTPUT_PORT_TYPE +rp_data[2] <= rdata_fifo_sink_data[2].DB_MAX_OUTPUT_PORT_TYPE +rp_data[3] <= rdata_fifo_sink_data[3].DB_MAX_OUTPUT_PORT_TYPE +rp_data[4] <= rdata_fifo_sink_data[4].DB_MAX_OUTPUT_PORT_TYPE +rp_data[5] <= rdata_fifo_sink_data[5].DB_MAX_OUTPUT_PORT_TYPE +rp_data[6] <= rdata_fifo_sink_data[6].DB_MAX_OUTPUT_PORT_TYPE +rp_data[7] <= rdata_fifo_sink_data[7].DB_MAX_OUTPUT_PORT_TYPE +rp_data[8] <= rdata_fifo_sink_data[8].DB_MAX_OUTPUT_PORT_TYPE +rp_data[9] <= rdata_fifo_sink_data[9].DB_MAX_OUTPUT_PORT_TYPE +rp_data[10] <= rdata_fifo_sink_data[10].DB_MAX_OUTPUT_PORT_TYPE +rp_data[11] <= rdata_fifo_sink_data[11].DB_MAX_OUTPUT_PORT_TYPE +rp_data[12] <= rdata_fifo_sink_data[12].DB_MAX_OUTPUT_PORT_TYPE +rp_data[13] <= rdata_fifo_sink_data[13].DB_MAX_OUTPUT_PORT_TYPE +rp_data[14] <= rdata_fifo_sink_data[14].DB_MAX_OUTPUT_PORT_TYPE +rp_data[15] <= rdata_fifo_sink_data[15].DB_MAX_OUTPUT_PORT_TYPE +rp_data[16] <= rdata_fifo_sink_data[16].DB_MAX_OUTPUT_PORT_TYPE +rp_data[17] <= rdata_fifo_sink_data[17].DB_MAX_OUTPUT_PORT_TYPE +rp_data[18] <= rdata_fifo_sink_data[18].DB_MAX_OUTPUT_PORT_TYPE +rp_data[19] <= rdata_fifo_sink_data[19].DB_MAX_OUTPUT_PORT_TYPE +rp_data[20] <= rdata_fifo_sink_data[20].DB_MAX_OUTPUT_PORT_TYPE +rp_data[21] <= rdata_fifo_sink_data[21].DB_MAX_OUTPUT_PORT_TYPE +rp_data[22] <= rdata_fifo_sink_data[22].DB_MAX_OUTPUT_PORT_TYPE +rp_data[23] <= rdata_fifo_sink_data[23].DB_MAX_OUTPUT_PORT_TYPE +rp_data[24] <= rdata_fifo_sink_data[24].DB_MAX_OUTPUT_PORT_TYPE +rp_data[25] <= rdata_fifo_sink_data[25].DB_MAX_OUTPUT_PORT_TYPE +rp_data[26] <= rdata_fifo_sink_data[26].DB_MAX_OUTPUT_PORT_TYPE +rp_data[27] <= rdata_fifo_sink_data[27].DB_MAX_OUTPUT_PORT_TYPE +rp_data[28] <= rdata_fifo_sink_data[28].DB_MAX_OUTPUT_PORT_TYPE +rp_data[29] <= rdata_fifo_sink_data[29].DB_MAX_OUTPUT_PORT_TYPE +rp_data[30] <= rdata_fifo_sink_data[30].DB_MAX_OUTPUT_PORT_TYPE +rp_data[31] <= rdata_fifo_sink_data[31].DB_MAX_OUTPUT_PORT_TYPE +rp_data[32] <= rf_sink_data[32].DB_MAX_OUTPUT_PORT_TYPE +rp_data[33] <= rf_sink_data[33].DB_MAX_OUTPUT_PORT_TYPE +rp_data[34] <= rf_sink_data[34].DB_MAX_OUTPUT_PORT_TYPE +rp_data[35] <= rf_sink_data[35].DB_MAX_OUTPUT_PORT_TYPE +rp_data[36] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[37] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[38] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[39] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[40] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[41] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[42] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[43] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[44] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[45] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[46] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[47] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[48] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[49] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[50] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[51] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[52] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[53] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[54] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[55] <= altera_merlin_burst_uncompressor:uncompressor.source_is_compressed +rp_data[56] <= rf_sink_data[56].DB_MAX_OUTPUT_PORT_TYPE +rp_data[57] <= rf_sink_data[57].DB_MAX_OUTPUT_PORT_TYPE +rp_data[58] <= rp_data.DB_MAX_OUTPUT_PORT_TYPE +rp_data[59] <= rf_sink_data[59].DB_MAX_OUTPUT_PORT_TYPE +rp_data[60] <= rf_sink_data[60].DB_MAX_OUTPUT_PORT_TYPE +rp_data[61] <= altera_merlin_burst_uncompressor:uncompressor.source_byte_cnt +rp_data[62] <= altera_merlin_burst_uncompressor:uncompressor.source_byte_cnt +rp_data[63] <= altera_merlin_burst_uncompressor:uncompressor.source_byte_cnt +rp_data[64] <= altera_merlin_burst_uncompressor:uncompressor.source_burstwrap +rp_data[65] <= altera_merlin_burst_uncompressor:uncompressor.source_burstwrap +rp_data[66] <= altera_merlin_burst_uncompressor:uncompressor.source_burstwrap +rp_data[67] <= altera_merlin_burst_uncompressor:uncompressor.source_burstsize +rp_data[68] <= altera_merlin_burst_uncompressor:uncompressor.source_burstsize +rp_data[69] <= altera_merlin_burst_uncompressor:uncompressor.source_burstsize +rp_data[70] <= rf_sink_data[70].DB_MAX_OUTPUT_PORT_TYPE +rp_data[71] <= rf_sink_data[71].DB_MAX_OUTPUT_PORT_TYPE +rp_data[72] <= rf_sink_data[72].DB_MAX_OUTPUT_PORT_TYPE +rp_data[73] <= rf_sink_data[73].DB_MAX_OUTPUT_PORT_TYPE +rp_data[74] <= rf_sink_data[74].DB_MAX_OUTPUT_PORT_TYPE +rp_data[75] <= rf_sink_data[75].DB_MAX_OUTPUT_PORT_TYPE +rp_data[76] <= rf_sink_data[81].DB_MAX_OUTPUT_PORT_TYPE +rp_data[77] <= rf_sink_data[82].DB_MAX_OUTPUT_PORT_TYPE +rp_data[78] <= rf_sink_data[83].DB_MAX_OUTPUT_PORT_TYPE +rp_data[79] <= rf_sink_data[84].DB_MAX_OUTPUT_PORT_TYPE +rp_data[80] <= rf_sink_data[85].DB_MAX_OUTPUT_PORT_TYPE +rp_data[81] <= rf_sink_data[76].DB_MAX_OUTPUT_PORT_TYPE +rp_data[82] <= rf_sink_data[77].DB_MAX_OUTPUT_PORT_TYPE +rp_data[83] <= rf_sink_data[78].DB_MAX_OUTPUT_PORT_TYPE +rp_data[84] <= rf_sink_data[79].DB_MAX_OUTPUT_PORT_TYPE +rp_data[85] <= rf_sink_data[80].DB_MAX_OUTPUT_PORT_TYPE +rp_data[86] <= rf_sink_data[86].DB_MAX_OUTPUT_PORT_TYPE +rp_data[87] <= rf_sink_data[87].DB_MAX_OUTPUT_PORT_TYPE +rp_data[88] <= rf_sink_data[88].DB_MAX_OUTPUT_PORT_TYPE +rp_data[89] <= rf_sink_data[89].DB_MAX_OUTPUT_PORT_TYPE +rp_data[90] <= rf_sink_data[90].DB_MAX_OUTPUT_PORT_TYPE +rp_data[91] <= rf_sink_data[91].DB_MAX_OUTPUT_PORT_TYPE +rp_data[92] <= rf_sink_data[92].DB_MAX_OUTPUT_PORT_TYPE +rp_data[93] <= rf_sink_data[93].DB_MAX_OUTPUT_PORT_TYPE +rp_data[94] <= rdata_fifo_sink_data[32].DB_MAX_OUTPUT_PORT_TYPE +rp_data[95] <= rdata_fifo_sink_data[33].DB_MAX_OUTPUT_PORT_TYPE +rp_startofpacket <= altera_merlin_burst_uncompressor:uncompressor.source_startofpacket +rp_endofpacket <= altera_merlin_burst_uncompressor:uncompressor.source_endofpacket + + +|lights|nios_system:NiosII|altera_merlin_slave_agent:nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor +clk => burst_uncompress_address_offset[0].CLK +clk => burst_uncompress_address_offset[1].CLK +clk => burst_uncompress_address_offset[2].CLK +clk => burst_uncompress_address_offset[3].CLK +clk => burst_uncompress_address_offset[4].CLK +clk => burst_uncompress_address_offset[5].CLK +clk => burst_uncompress_address_offset[6].CLK +clk => burst_uncompress_address_offset[7].CLK +clk => burst_uncompress_address_offset[8].CLK +clk => burst_uncompress_address_offset[9].CLK +clk => burst_uncompress_address_offset[10].CLK +clk => burst_uncompress_address_offset[11].CLK +clk => burst_uncompress_address_offset[12].CLK +clk => burst_uncompress_address_offset[13].CLK +clk => burst_uncompress_address_offset[14].CLK +clk => burst_uncompress_address_offset[15].CLK +clk => burst_uncompress_address_offset[16].CLK +clk => burst_uncompress_address_offset[17].CLK +clk => burst_uncompress_address_offset[18].CLK +clk => burst_uncompress_address_base[0].CLK +clk => burst_uncompress_address_base[1].CLK +clk => burst_uncompress_address_base[2].CLK +clk => burst_uncompress_address_base[3].CLK +clk => burst_uncompress_address_base[4].CLK +clk => burst_uncompress_address_base[5].CLK +clk => burst_uncompress_address_base[6].CLK +clk => burst_uncompress_address_base[7].CLK +clk => burst_uncompress_address_base[8].CLK +clk => burst_uncompress_address_base[9].CLK +clk => burst_uncompress_address_base[10].CLK +clk => burst_uncompress_address_base[11].CLK +clk => burst_uncompress_address_base[12].CLK +clk => burst_uncompress_address_base[13].CLK +clk => burst_uncompress_address_base[14].CLK +clk => burst_uncompress_address_base[15].CLK +clk => burst_uncompress_address_base[16].CLK +clk => burst_uncompress_address_base[17].CLK +clk => burst_uncompress_address_base[18].CLK +clk => burst_uncompress_byte_counter[0].CLK +clk => burst_uncompress_byte_counter[1].CLK +clk => burst_uncompress_byte_counter[2].CLK +clk => burst_uncompress_busy.CLK +reset => burst_uncompress_address_offset[0].ACLR +reset => burst_uncompress_address_offset[1].ACLR +reset => burst_uncompress_address_offset[2].ACLR +reset => burst_uncompress_address_offset[3].ACLR +reset => burst_uncompress_address_offset[4].ACLR +reset => burst_uncompress_address_offset[5].ACLR +reset => burst_uncompress_address_offset[6].ACLR +reset => burst_uncompress_address_offset[7].ACLR +reset => burst_uncompress_address_offset[8].ACLR +reset => burst_uncompress_address_offset[9].ACLR +reset => burst_uncompress_address_offset[10].ACLR +reset => burst_uncompress_address_offset[11].ACLR +reset => burst_uncompress_address_offset[12].ACLR +reset => burst_uncompress_address_offset[13].ACLR +reset => burst_uncompress_address_offset[14].ACLR +reset => burst_uncompress_address_offset[15].ACLR +reset => burst_uncompress_address_offset[16].ACLR +reset => burst_uncompress_address_offset[17].ACLR +reset => burst_uncompress_address_offset[18].ACLR +reset => burst_uncompress_address_base[0].ACLR +reset => burst_uncompress_address_base[1].ACLR +reset => burst_uncompress_address_base[2].ACLR +reset => burst_uncompress_address_base[3].ACLR +reset => burst_uncompress_address_base[4].ACLR +reset => burst_uncompress_address_base[5].ACLR +reset => burst_uncompress_address_base[6].ACLR +reset => burst_uncompress_address_base[7].ACLR +reset => burst_uncompress_address_base[8].ACLR +reset => burst_uncompress_address_base[9].ACLR +reset => burst_uncompress_address_base[10].ACLR +reset => burst_uncompress_address_base[11].ACLR +reset => burst_uncompress_address_base[12].ACLR +reset => burst_uncompress_address_base[13].ACLR +reset => burst_uncompress_address_base[14].ACLR +reset => burst_uncompress_address_base[15].ACLR +reset => burst_uncompress_address_base[16].ACLR +reset => burst_uncompress_address_base[17].ACLR +reset => burst_uncompress_address_base[18].ACLR +reset => burst_uncompress_byte_counter[0].ACLR +reset => burst_uncompress_byte_counter[1].ACLR +reset => burst_uncompress_byte_counter[2].ACLR +reset => burst_uncompress_busy.ACLR +sink_startofpacket => source_startofpacket.IN1 +sink_endofpacket => source_endofpacket.IN1 +sink_valid => first_packet_beat.IN1 +sink_valid => last_packet_beat.IN1 +sink_valid => last_packet_beat.IN1 +sink_valid => always0.IN1 +sink_valid => sink_ready.IN0 +sink_valid => source_valid.DATAIN +sink_ready <= sink_ready.DB_MAX_OUTPUT_PORT_TYPE +sink_addr[0] => burst_uncompress_address_base.IN0 +sink_addr[0] => comb.DATAB +sink_addr[0] => source_addr.DATAB +sink_addr[1] => burst_uncompress_address_base.IN0 +sink_addr[1] => comb.DATAB +sink_addr[1] => source_addr.DATAB +sink_addr[2] => burst_uncompress_address_base.IN0 +sink_addr[2] => comb.DATAB +sink_addr[2] => source_addr.DATAB +sink_addr[3] => burst_uncompress_address_base.IN0 +sink_addr[3] => comb.DATAB +sink_addr[3] => source_addr.DATAB +sink_addr[4] => burst_uncompress_address_base.IN0 +sink_addr[4] => comb.DATAB +sink_addr[4] => source_addr.DATAB +sink_addr[5] => burst_uncompress_address_base.IN0 +sink_addr[5] => comb.DATAB +sink_addr[5] => source_addr.DATAB +sink_addr[6] => burst_uncompress_address_base.IN0 +sink_addr[6] => comb.DATAB +sink_addr[6] => source_addr.DATAB +sink_addr[7] => burst_uncompress_address_base.IN0 +sink_addr[7] => comb.DATAB +sink_addr[7] => source_addr.DATAB +sink_addr[8] => burst_uncompress_address_base.IN0 +sink_addr[8] => comb.DATAB +sink_addr[8] => source_addr.DATAB +sink_addr[9] => burst_uncompress_address_base.IN0 +sink_addr[9] => comb.DATAB +sink_addr[9] => source_addr.DATAB +sink_addr[10] => burst_uncompress_address_base.IN0 +sink_addr[10] => comb.DATAB +sink_addr[10] => source_addr.DATAB +sink_addr[11] => burst_uncompress_address_base.IN0 +sink_addr[11] => comb.DATAB +sink_addr[11] => source_addr.DATAB +sink_addr[12] => burst_uncompress_address_base.IN0 +sink_addr[12] => comb.DATAB +sink_addr[12] => source_addr.DATAB +sink_addr[13] => burst_uncompress_address_base.IN0 +sink_addr[13] => comb.DATAB +sink_addr[13] => source_addr.DATAB +sink_addr[14] => burst_uncompress_address_base.IN0 +sink_addr[14] => comb.DATAB +sink_addr[14] => source_addr.DATAB +sink_addr[15] => burst_uncompress_address_base.IN0 +sink_addr[15] => comb.DATAB +sink_addr[15] => source_addr.DATAB +sink_addr[16] => burst_uncompress_address_base.IN0 +sink_addr[16] => comb.DATAB +sink_addr[16] => source_addr.DATAB +sink_addr[17] => burst_uncompress_address_base.IN0 +sink_addr[17] => comb.DATAB +sink_addr[17] => source_addr.DATAB +sink_addr[18] => burst_uncompress_address_base.IN0 +sink_addr[18] => comb.DATAB +sink_addr[18] => source_addr.DATAB +sink_burstwrap[0] => p1_burst_uncompress_address_offset[0].IN1 +sink_burstwrap[0] => source_burstwrap[0].DATAIN +sink_burstwrap[0] => burst_uncompress_address_base.IN1 +sink_burstwrap[1] => p1_burst_uncompress_address_offset[1].IN1 +sink_burstwrap[1] => source_burstwrap[1].DATAIN +sink_burstwrap[1] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[2].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[18].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[17].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[16].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[15].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[14].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[13].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[12].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[11].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[10].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[9].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[8].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[7].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[6].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[5].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[4].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[3].IN1 +sink_burstwrap[2] => source_burstwrap[2].DATAIN +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_byte_cnt[0] => source_byte_cnt.DATAB +sink_byte_cnt[0] => Add1.IN6 +sink_byte_cnt[0] => Equal1.IN2 +sink_byte_cnt[1] => source_byte_cnt.DATAB +sink_byte_cnt[1] => Add1.IN5 +sink_byte_cnt[1] => Equal1.IN1 +sink_byte_cnt[2] => source_byte_cnt.DATAB +sink_byte_cnt[2] => Add1.IN4 +sink_byte_cnt[2] => Equal1.IN0 +sink_is_compressed => last_packet_beat.IN1 +sink_burstsize[0] => Decoder0.IN2 +sink_burstsize[0] => source_burstsize[0].DATAIN +sink_burstsize[1] => Decoder0.IN1 +sink_burstsize[1] => source_burstsize[1].DATAIN +sink_burstsize[2] => Decoder0.IN0 +sink_burstsize[2] => source_burstsize[2].DATAIN +source_startofpacket <= source_startofpacket.DB_MAX_OUTPUT_PORT_TYPE +source_endofpacket <= source_endofpacket.DB_MAX_OUTPUT_PORT_TYPE +source_valid <= sink_valid.DB_MAX_OUTPUT_PORT_TYPE +source_ready => always1.IN1 +source_ready => sink_ready.IN1 +source_addr[0] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[1] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[2] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[3] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[4] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[5] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[6] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[7] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[8] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[9] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[10] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[11] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[12] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[13] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[14] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[15] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[16] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[17] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[18] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_burstwrap[0] <= sink_burstwrap[0].DB_MAX_OUTPUT_PORT_TYPE +source_burstwrap[1] <= sink_burstwrap[1].DB_MAX_OUTPUT_PORT_TYPE +source_burstwrap[2] <= sink_burstwrap[2].DB_MAX_OUTPUT_PORT_TYPE +source_byte_cnt[0] <= source_byte_cnt.DB_MAX_OUTPUT_PORT_TYPE +source_byte_cnt[1] <= source_byte_cnt.DB_MAX_OUTPUT_PORT_TYPE +source_byte_cnt[2] <= source_byte_cnt.DB_MAX_OUTPUT_PORT_TYPE +source_is_compressed <= +source_burstsize[0] <= sink_burstsize[0].DB_MAX_OUTPUT_PORT_TYPE +source_burstsize[1] <= sink_burstsize[1].DB_MAX_OUTPUT_PORT_TYPE +source_burstsize[2] <= sink_burstsize[2].DB_MAX_OUTPUT_PORT_TYPE + + +|lights|nios_system:NiosII|altera_avalon_sc_fifo:nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo +clk => csr_readdata[0]~reg0.CLK +clk => csr_readdata[1]~reg0.CLK +clk => csr_readdata[2]~reg0.CLK +clk => csr_readdata[3]~reg0.CLK +clk => csr_readdata[4]~reg0.CLK +clk => csr_readdata[5]~reg0.CLK +clk => csr_readdata[6]~reg0.CLK +clk => csr_readdata[7]~reg0.CLK +clk => csr_readdata[8]~reg0.CLK +clk => csr_readdata[9]~reg0.CLK +clk => csr_readdata[10]~reg0.CLK +clk => csr_readdata[11]~reg0.CLK +clk => csr_readdata[12]~reg0.CLK +clk => csr_readdata[13]~reg0.CLK +clk => csr_readdata[14]~reg0.CLK +clk => csr_readdata[15]~reg0.CLK +clk => csr_readdata[16]~reg0.CLK +clk => csr_readdata[17]~reg0.CLK +clk => csr_readdata[18]~reg0.CLK +clk => csr_readdata[19]~reg0.CLK +clk => csr_readdata[20]~reg0.CLK +clk => csr_readdata[21]~reg0.CLK +clk => csr_readdata[22]~reg0.CLK +clk => csr_readdata[23]~reg0.CLK +clk => csr_readdata[24]~reg0.CLK +clk => csr_readdata[25]~reg0.CLK +clk => csr_readdata[26]~reg0.CLK +clk => csr_readdata[27]~reg0.CLK +clk => csr_readdata[28]~reg0.CLK +clk => csr_readdata[29]~reg0.CLK +clk => csr_readdata[30]~reg0.CLK +clk => csr_readdata[31]~reg0.CLK +clk => mem_used[1].CLK +clk => mem_used[0].CLK +clk => mem[1][0].CLK +clk => mem[1][1].CLK +clk => mem[1][2].CLK +clk => mem[1][3].CLK +clk => mem[1][4].CLK +clk => mem[1][5].CLK +clk => mem[1][6].CLK +clk => mem[1][7].CLK +clk => mem[1][8].CLK +clk => mem[1][9].CLK +clk => mem[1][10].CLK +clk => mem[1][11].CLK +clk => mem[1][12].CLK +clk => mem[1][13].CLK +clk => mem[1][14].CLK +clk => mem[1][15].CLK +clk => mem[1][16].CLK +clk => mem[1][17].CLK +clk => mem[1][18].CLK +clk => mem[1][19].CLK +clk => mem[1][20].CLK +clk => mem[1][21].CLK +clk => mem[1][22].CLK +clk => mem[1][23].CLK +clk => mem[1][24].CLK +clk => mem[1][25].CLK +clk => mem[1][26].CLK +clk => mem[1][27].CLK +clk => mem[1][28].CLK +clk => mem[1][29].CLK +clk => mem[1][30].CLK +clk => mem[1][31].CLK +clk => mem[1][32].CLK +clk => mem[1][33].CLK +clk => mem[1][34].CLK +clk => mem[1][35].CLK +clk => mem[1][36].CLK +clk => mem[1][37].CLK +clk => mem[1][38].CLK +clk => mem[1][39].CLK +clk => mem[1][40].CLK +clk => mem[1][41].CLK +clk => mem[1][42].CLK +clk => mem[1][43].CLK +clk => mem[1][44].CLK +clk => mem[1][45].CLK +clk => mem[1][46].CLK +clk => mem[1][47].CLK +clk => mem[1][48].CLK +clk => mem[1][49].CLK +clk => mem[1][50].CLK +clk => mem[1][51].CLK +clk => mem[1][52].CLK +clk => mem[1][53].CLK +clk => mem[1][54].CLK +clk => mem[1][55].CLK +clk => mem[1][56].CLK +clk => mem[1][57].CLK +clk => mem[1][58].CLK +clk => mem[1][59].CLK +clk => mem[1][60].CLK +clk => mem[1][61].CLK +clk => mem[1][62].CLK +clk => mem[1][63].CLK +clk => mem[1][64].CLK +clk => mem[1][65].CLK +clk => mem[1][66].CLK +clk => mem[1][67].CLK +clk => mem[1][68].CLK +clk => mem[1][69].CLK +clk => mem[1][70].CLK +clk => mem[1][71].CLK +clk => mem[1][72].CLK +clk => mem[1][73].CLK +clk => mem[1][74].CLK +clk => mem[1][75].CLK +clk => mem[1][76].CLK +clk => mem[1][77].CLK +clk => mem[1][78].CLK +clk => mem[1][79].CLK +clk => mem[1][80].CLK +clk => mem[1][81].CLK +clk => mem[1][82].CLK +clk => mem[1][83].CLK +clk => mem[1][84].CLK +clk => mem[1][85].CLK +clk => mem[1][86].CLK +clk => mem[1][87].CLK +clk => mem[1][88].CLK +clk => mem[1][89].CLK +clk => mem[1][90].CLK +clk => mem[1][91].CLK +clk => mem[1][92].CLK +clk => mem[1][93].CLK +clk => mem[1][94].CLK +clk => mem[1][95].CLK +clk => mem[1][96].CLK +clk => mem[1][97].CLK +clk => mem[1][98].CLK +clk => mem[0][0].CLK +clk => mem[0][1].CLK +clk => mem[0][2].CLK +clk => mem[0][3].CLK +clk => mem[0][4].CLK +clk => mem[0][5].CLK +clk => mem[0][6].CLK +clk => mem[0][7].CLK +clk => mem[0][8].CLK +clk => mem[0][9].CLK +clk => mem[0][10].CLK +clk => mem[0][11].CLK +clk => mem[0][12].CLK +clk => mem[0][13].CLK +clk => mem[0][14].CLK +clk => mem[0][15].CLK +clk => mem[0][16].CLK +clk => mem[0][17].CLK +clk => mem[0][18].CLK +clk => mem[0][19].CLK +clk => mem[0][20].CLK +clk => mem[0][21].CLK +clk => mem[0][22].CLK +clk => mem[0][23].CLK +clk => mem[0][24].CLK +clk => mem[0][25].CLK +clk => mem[0][26].CLK +clk => mem[0][27].CLK +clk => mem[0][28].CLK +clk => mem[0][29].CLK +clk => mem[0][30].CLK +clk => mem[0][31].CLK +clk => mem[0][32].CLK +clk => mem[0][33].CLK +clk => mem[0][34].CLK +clk => mem[0][35].CLK +clk => mem[0][36].CLK +clk => mem[0][37].CLK +clk => mem[0][38].CLK +clk => mem[0][39].CLK +clk => mem[0][40].CLK +clk => mem[0][41].CLK +clk => mem[0][42].CLK +clk => mem[0][43].CLK +clk => mem[0][44].CLK +clk => mem[0][45].CLK +clk => mem[0][46].CLK +clk => mem[0][47].CLK +clk => mem[0][48].CLK +clk => mem[0][49].CLK +clk => mem[0][50].CLK +clk => mem[0][51].CLK +clk => mem[0][52].CLK +clk => mem[0][53].CLK +clk => mem[0][54].CLK +clk => mem[0][55].CLK +clk => mem[0][56].CLK +clk => mem[0][57].CLK +clk => mem[0][58].CLK +clk => mem[0][59].CLK +clk => mem[0][60].CLK +clk => mem[0][61].CLK +clk => mem[0][62].CLK +clk => mem[0][63].CLK +clk => mem[0][64].CLK +clk => mem[0][65].CLK +clk => mem[0][66].CLK +clk => mem[0][67].CLK +clk => mem[0][68].CLK +clk => mem[0][69].CLK +clk => mem[0][70].CLK +clk => mem[0][71].CLK +clk => mem[0][72].CLK +clk => mem[0][73].CLK +clk => mem[0][74].CLK +clk => mem[0][75].CLK +clk => mem[0][76].CLK +clk => mem[0][77].CLK +clk => mem[0][78].CLK +clk => mem[0][79].CLK +clk => mem[0][80].CLK +clk => mem[0][81].CLK +clk => mem[0][82].CLK +clk => mem[0][83].CLK +clk => mem[0][84].CLK +clk => mem[0][85].CLK +clk => mem[0][86].CLK +clk => mem[0][87].CLK +clk => mem[0][88].CLK +clk => mem[0][89].CLK +clk => mem[0][90].CLK +clk => mem[0][91].CLK +clk => mem[0][92].CLK +clk => mem[0][93].CLK +clk => mem[0][94].CLK +clk => mem[0][95].CLK +clk => mem[0][96].CLK +clk => mem[0][97].CLK +clk => mem[0][98].CLK +reset => csr_readdata[0]~reg0.ACLR +reset => csr_readdata[1]~reg0.ACLR +reset => csr_readdata[2]~reg0.ACLR +reset => csr_readdata[3]~reg0.ACLR +reset => csr_readdata[4]~reg0.ACLR +reset => csr_readdata[5]~reg0.ACLR +reset => csr_readdata[6]~reg0.ACLR +reset => csr_readdata[7]~reg0.ACLR +reset => csr_readdata[8]~reg0.ACLR +reset => csr_readdata[9]~reg0.ACLR +reset => csr_readdata[10]~reg0.ACLR +reset => csr_readdata[11]~reg0.ACLR +reset => csr_readdata[12]~reg0.ACLR +reset => csr_readdata[13]~reg0.ACLR +reset => csr_readdata[14]~reg0.ACLR +reset => csr_readdata[15]~reg0.ACLR +reset => csr_readdata[16]~reg0.ACLR +reset => csr_readdata[17]~reg0.ACLR +reset => csr_readdata[18]~reg0.ACLR +reset => csr_readdata[19]~reg0.ACLR +reset => csr_readdata[20]~reg0.ACLR +reset => csr_readdata[21]~reg0.ACLR +reset => csr_readdata[22]~reg0.ACLR +reset => csr_readdata[23]~reg0.ACLR +reset => csr_readdata[24]~reg0.ACLR +reset => csr_readdata[25]~reg0.ACLR +reset => csr_readdata[26]~reg0.ACLR +reset => csr_readdata[27]~reg0.ACLR +reset => csr_readdata[28]~reg0.ACLR +reset => csr_readdata[29]~reg0.ACLR +reset => csr_readdata[30]~reg0.ACLR +reset => csr_readdata[31]~reg0.ACLR +reset => mem_used[1].ACLR +reset => mem_used[0].ACLR +reset => mem[1][0].ACLR +reset => mem[1][1].ACLR +reset => mem[1][2].ACLR +reset => mem[1][3].ACLR +reset => mem[1][4].ACLR +reset => mem[1][5].ACLR +reset => mem[1][6].ACLR +reset => mem[1][7].ACLR +reset => mem[1][8].ACLR +reset => mem[1][9].ACLR +reset => mem[1][10].ACLR +reset => mem[1][11].ACLR +reset => mem[1][12].ACLR +reset => mem[1][13].ACLR +reset => mem[1][14].ACLR +reset => mem[1][15].ACLR +reset => mem[1][16].ACLR +reset => mem[1][17].ACLR +reset => mem[1][18].ACLR +reset => mem[1][19].ACLR +reset => mem[1][20].ACLR +reset => mem[1][21].ACLR +reset => mem[1][22].ACLR +reset => mem[1][23].ACLR +reset => mem[1][24].ACLR +reset => mem[1][25].ACLR +reset => mem[1][26].ACLR +reset => mem[1][27].ACLR +reset => mem[1][28].ACLR +reset => mem[1][29].ACLR +reset => mem[1][30].ACLR +reset => mem[1][31].ACLR +reset => mem[1][32].ACLR +reset => mem[1][33].ACLR +reset => mem[1][34].ACLR +reset => mem[1][35].ACLR +reset => mem[1][36].ACLR +reset => mem[1][37].ACLR +reset => mem[1][38].ACLR +reset => mem[1][39].ACLR +reset => mem[1][40].ACLR +reset => mem[1][41].ACLR +reset => mem[1][42].ACLR +reset => mem[1][43].ACLR +reset => mem[1][44].ACLR +reset => mem[1][45].ACLR +reset => mem[1][46].ACLR +reset => mem[1][47].ACLR +reset => mem[1][48].ACLR +reset => mem[1][49].ACLR +reset => mem[1][50].ACLR +reset => mem[1][51].ACLR +reset => mem[1][52].ACLR +reset => mem[1][53].ACLR +reset => mem[1][54].ACLR +reset => mem[1][55].ACLR +reset => mem[1][56].ACLR +reset => mem[1][57].ACLR +reset => mem[1][58].ACLR +reset => mem[1][59].ACLR +reset => mem[1][60].ACLR +reset => mem[1][61].ACLR +reset => mem[1][62].ACLR +reset => mem[1][63].ACLR +reset => mem[1][64].ACLR +reset => mem[1][65].ACLR +reset => mem[1][66].ACLR +reset => mem[1][67].ACLR +reset => mem[1][68].ACLR +reset => mem[1][69].ACLR +reset => mem[1][70].ACLR +reset => mem[1][71].ACLR +reset => mem[1][72].ACLR +reset => mem[1][73].ACLR +reset => mem[1][74].ACLR +reset => mem[1][75].ACLR +reset => mem[1][76].ACLR +reset => mem[1][77].ACLR +reset => mem[1][78].ACLR +reset => mem[1][79].ACLR +reset => mem[1][80].ACLR +reset => mem[1][81].ACLR +reset => mem[1][82].ACLR +reset => mem[1][83].ACLR +reset => mem[1][84].ACLR +reset => mem[1][85].ACLR +reset => mem[1][86].ACLR +reset => mem[1][87].ACLR +reset => mem[1][88].ACLR +reset => mem[1][89].ACLR +reset => mem[1][90].ACLR +reset => mem[1][91].ACLR +reset => mem[1][92].ACLR +reset => mem[1][93].ACLR +reset => mem[1][94].ACLR +reset => mem[1][95].ACLR +reset => mem[1][96].ACLR +reset => mem[1][97].ACLR +reset => mem[1][98].ACLR +reset => mem[0][0].ACLR +reset => mem[0][1].ACLR +reset => mem[0][2].ACLR +reset => mem[0][3].ACLR +reset => mem[0][4].ACLR +reset => mem[0][5].ACLR +reset => mem[0][6].ACLR +reset => mem[0][7].ACLR +reset => mem[0][8].ACLR +reset => mem[0][9].ACLR +reset => mem[0][10].ACLR +reset => mem[0][11].ACLR +reset => mem[0][12].ACLR +reset => mem[0][13].ACLR +reset => mem[0][14].ACLR +reset => mem[0][15].ACLR +reset => mem[0][16].ACLR +reset => mem[0][17].ACLR +reset => mem[0][18].ACLR +reset => mem[0][19].ACLR +reset => mem[0][20].ACLR +reset => mem[0][21].ACLR +reset => mem[0][22].ACLR +reset => mem[0][23].ACLR +reset => mem[0][24].ACLR +reset => mem[0][25].ACLR +reset => mem[0][26].ACLR +reset => mem[0][27].ACLR +reset => mem[0][28].ACLR +reset => mem[0][29].ACLR +reset => mem[0][30].ACLR +reset => mem[0][31].ACLR +reset => mem[0][32].ACLR +reset => mem[0][33].ACLR +reset => mem[0][34].ACLR +reset => mem[0][35].ACLR +reset => mem[0][36].ACLR +reset => mem[0][37].ACLR +reset => mem[0][38].ACLR +reset => mem[0][39].ACLR +reset => mem[0][40].ACLR +reset => mem[0][41].ACLR +reset => mem[0][42].ACLR +reset => mem[0][43].ACLR +reset => mem[0][44].ACLR +reset => mem[0][45].ACLR +reset => mem[0][46].ACLR +reset => mem[0][47].ACLR +reset => mem[0][48].ACLR +reset => mem[0][49].ACLR +reset => mem[0][50].ACLR +reset => mem[0][51].ACLR +reset => mem[0][52].ACLR +reset => mem[0][53].ACLR +reset => mem[0][54].ACLR +reset => mem[0][55].ACLR +reset => mem[0][56].ACLR +reset => mem[0][57].ACLR +reset => mem[0][58].ACLR +reset => mem[0][59].ACLR +reset => mem[0][60].ACLR +reset => mem[0][61].ACLR +reset => mem[0][62].ACLR +reset => mem[0][63].ACLR +reset => mem[0][64].ACLR +reset => mem[0][65].ACLR +reset => mem[0][66].ACLR +reset => mem[0][67].ACLR +reset => mem[0][68].ACLR +reset => mem[0][69].ACLR +reset => mem[0][70].ACLR +reset => mem[0][71].ACLR +reset => mem[0][72].ACLR +reset => mem[0][73].ACLR +reset => mem[0][74].ACLR +reset => mem[0][75].ACLR +reset => mem[0][76].ACLR +reset => mem[0][77].ACLR +reset => mem[0][78].ACLR +reset => mem[0][79].ACLR +reset => mem[0][80].ACLR +reset => mem[0][81].ACLR +reset => mem[0][82].ACLR +reset => mem[0][83].ACLR +reset => mem[0][84].ACLR +reset => mem[0][85].ACLR +reset => mem[0][86].ACLR +reset => mem[0][87].ACLR +reset => mem[0][88].ACLR +reset => mem[0][89].ACLR +reset => mem[0][90].ACLR +reset => mem[0][91].ACLR +reset => mem[0][92].ACLR +reset => mem[0][93].ACLR +reset => mem[0][94].ACLR +reset => mem[0][95].ACLR +reset => mem[0][96].ACLR +reset => mem[0][97].ACLR +reset => mem[0][98].ACLR +in_data[0] => mem.DATAB +in_data[1] => mem.DATAB +in_data[2] => mem.DATAB +in_data[3] => mem.DATAB +in_data[4] => mem.DATAB +in_data[5] => mem.DATAB +in_data[6] => mem.DATAB +in_data[7] => mem.DATAB +in_data[8] => mem.DATAB +in_data[9] => mem.DATAB +in_data[10] => mem.DATAB +in_data[11] => mem.DATAB +in_data[12] => mem.DATAB +in_data[13] => mem.DATAB +in_data[14] => mem.DATAB +in_data[15] => mem.DATAB +in_data[16] => mem.DATAB +in_data[17] => mem.DATAB +in_data[18] => mem.DATAB +in_data[19] => mem.DATAB +in_data[20] => mem.DATAB +in_data[21] => mem.DATAB +in_data[22] => mem.DATAB +in_data[23] => mem.DATAB +in_data[24] => mem.DATAB +in_data[25] => mem.DATAB +in_data[26] => mem.DATAB +in_data[27] => mem.DATAB +in_data[28] => mem.DATAB +in_data[29] => mem.DATAB +in_data[30] => mem.DATAB +in_data[31] => mem.DATAB +in_data[32] => mem.DATAB +in_data[33] => mem.DATAB +in_data[34] => mem.DATAB +in_data[35] => mem.DATAB +in_data[36] => mem.DATAB +in_data[37] => mem.DATAB +in_data[38] => mem.DATAB +in_data[39] => mem.DATAB +in_data[40] => mem.DATAB +in_data[41] => mem.DATAB +in_data[42] => mem.DATAB +in_data[43] => mem.DATAB +in_data[44] => mem.DATAB +in_data[45] => mem.DATAB +in_data[46] => mem.DATAB +in_data[47] => mem.DATAB +in_data[48] => mem.DATAB +in_data[49] => mem.DATAB +in_data[50] => mem.DATAB +in_data[51] => mem.DATAB +in_data[52] => mem.DATAB +in_data[53] => mem.DATAB +in_data[54] => mem.DATAB +in_data[55] => mem.DATAB +in_data[56] => mem.DATAB +in_data[57] => mem.DATAB +in_data[58] => mem.DATAB +in_data[59] => mem.DATAB +in_data[60] => mem.DATAB +in_data[61] => mem.DATAB +in_data[62] => mem.DATAB +in_data[63] => mem.DATAB +in_data[64] => mem.DATAB +in_data[65] => mem.DATAB +in_data[66] => mem.DATAB +in_data[67] => mem.DATAB +in_data[68] => mem.DATAB +in_data[69] => mem.DATAB +in_data[70] => mem.DATAB +in_data[71] => mem.DATAB +in_data[72] => mem.DATAB +in_data[73] => mem.DATAB +in_data[74] => mem.DATAB +in_data[75] => mem.DATAB +in_data[76] => mem.DATAB +in_data[77] => mem.DATAB +in_data[78] => mem.DATAB +in_data[79] => mem.DATAB +in_data[80] => mem.DATAB +in_data[81] => mem.DATAB +in_data[82] => mem.DATAB +in_data[83] => mem.DATAB +in_data[84] => mem.DATAB +in_data[85] => mem.DATAB +in_data[86] => mem.DATAB +in_data[87] => mem.DATAB +in_data[88] => mem.DATAB +in_data[89] => mem.DATAB +in_data[90] => mem.DATAB +in_data[91] => mem.DATAB +in_data[92] => mem.DATAB +in_data[93] => mem.DATAB +in_data[94] => mem.DATAB +in_data[95] => mem.DATAB +in_data[96] => mem.DATAB +in_valid => write.IN1 +in_startofpacket => mem.DATAB +in_endofpacket => mem.DATAB +in_empty[0] => ~NO_FANOUT~ +in_error[0] => out_error[0].DATAIN +in_error[0] => out_empty[0].DATAIN +in_channel[0] => out_channel[0].DATAIN +in_ready <= mem_used[1].DB_MAX_OUTPUT_PORT_TYPE +out_data[0] <= mem[0][0].DB_MAX_OUTPUT_PORT_TYPE +out_data[1] <= mem[0][1].DB_MAX_OUTPUT_PORT_TYPE +out_data[2] <= mem[0][2].DB_MAX_OUTPUT_PORT_TYPE +out_data[3] <= mem[0][3].DB_MAX_OUTPUT_PORT_TYPE +out_data[4] <= mem[0][4].DB_MAX_OUTPUT_PORT_TYPE +out_data[5] <= mem[0][5].DB_MAX_OUTPUT_PORT_TYPE +out_data[6] <= mem[0][6].DB_MAX_OUTPUT_PORT_TYPE +out_data[7] <= mem[0][7].DB_MAX_OUTPUT_PORT_TYPE +out_data[8] <= mem[0][8].DB_MAX_OUTPUT_PORT_TYPE +out_data[9] <= mem[0][9].DB_MAX_OUTPUT_PORT_TYPE +out_data[10] <= mem[0][10].DB_MAX_OUTPUT_PORT_TYPE +out_data[11] <= mem[0][11].DB_MAX_OUTPUT_PORT_TYPE +out_data[12] <= mem[0][12].DB_MAX_OUTPUT_PORT_TYPE +out_data[13] <= mem[0][13].DB_MAX_OUTPUT_PORT_TYPE +out_data[14] <= mem[0][14].DB_MAX_OUTPUT_PORT_TYPE +out_data[15] <= mem[0][15].DB_MAX_OUTPUT_PORT_TYPE +out_data[16] <= mem[0][16].DB_MAX_OUTPUT_PORT_TYPE +out_data[17] <= mem[0][17].DB_MAX_OUTPUT_PORT_TYPE +out_data[18] <= mem[0][18].DB_MAX_OUTPUT_PORT_TYPE +out_data[19] <= mem[0][19].DB_MAX_OUTPUT_PORT_TYPE +out_data[20] <= mem[0][20].DB_MAX_OUTPUT_PORT_TYPE +out_data[21] <= mem[0][21].DB_MAX_OUTPUT_PORT_TYPE +out_data[22] <= mem[0][22].DB_MAX_OUTPUT_PORT_TYPE +out_data[23] <= mem[0][23].DB_MAX_OUTPUT_PORT_TYPE +out_data[24] <= mem[0][24].DB_MAX_OUTPUT_PORT_TYPE +out_data[25] <= mem[0][25].DB_MAX_OUTPUT_PORT_TYPE +out_data[26] <= mem[0][26].DB_MAX_OUTPUT_PORT_TYPE +out_data[27] <= mem[0][27].DB_MAX_OUTPUT_PORT_TYPE +out_data[28] <= mem[0][28].DB_MAX_OUTPUT_PORT_TYPE +out_data[29] <= mem[0][29].DB_MAX_OUTPUT_PORT_TYPE +out_data[30] <= mem[0][30].DB_MAX_OUTPUT_PORT_TYPE +out_data[31] <= mem[0][31].DB_MAX_OUTPUT_PORT_TYPE +out_data[32] <= mem[0][32].DB_MAX_OUTPUT_PORT_TYPE +out_data[33] <= mem[0][33].DB_MAX_OUTPUT_PORT_TYPE +out_data[34] <= mem[0][34].DB_MAX_OUTPUT_PORT_TYPE +out_data[35] <= mem[0][35].DB_MAX_OUTPUT_PORT_TYPE +out_data[36] <= mem[0][36].DB_MAX_OUTPUT_PORT_TYPE +out_data[37] <= mem[0][37].DB_MAX_OUTPUT_PORT_TYPE +out_data[38] <= mem[0][38].DB_MAX_OUTPUT_PORT_TYPE +out_data[39] <= mem[0][39].DB_MAX_OUTPUT_PORT_TYPE +out_data[40] <= mem[0][40].DB_MAX_OUTPUT_PORT_TYPE +out_data[41] <= mem[0][41].DB_MAX_OUTPUT_PORT_TYPE +out_data[42] <= mem[0][42].DB_MAX_OUTPUT_PORT_TYPE +out_data[43] <= mem[0][43].DB_MAX_OUTPUT_PORT_TYPE +out_data[44] <= mem[0][44].DB_MAX_OUTPUT_PORT_TYPE +out_data[45] <= mem[0][45].DB_MAX_OUTPUT_PORT_TYPE +out_data[46] <= mem[0][46].DB_MAX_OUTPUT_PORT_TYPE +out_data[47] <= mem[0][47].DB_MAX_OUTPUT_PORT_TYPE +out_data[48] <= mem[0][48].DB_MAX_OUTPUT_PORT_TYPE +out_data[49] <= mem[0][49].DB_MAX_OUTPUT_PORT_TYPE +out_data[50] <= mem[0][50].DB_MAX_OUTPUT_PORT_TYPE +out_data[51] <= mem[0][51].DB_MAX_OUTPUT_PORT_TYPE +out_data[52] <= mem[0][52].DB_MAX_OUTPUT_PORT_TYPE +out_data[53] <= mem[0][53].DB_MAX_OUTPUT_PORT_TYPE +out_data[54] <= mem[0][54].DB_MAX_OUTPUT_PORT_TYPE +out_data[55] <= mem[0][55].DB_MAX_OUTPUT_PORT_TYPE +out_data[56] <= mem[0][56].DB_MAX_OUTPUT_PORT_TYPE +out_data[57] <= mem[0][57].DB_MAX_OUTPUT_PORT_TYPE +out_data[58] <= mem[0][58].DB_MAX_OUTPUT_PORT_TYPE +out_data[59] <= mem[0][59].DB_MAX_OUTPUT_PORT_TYPE +out_data[60] <= mem[0][60].DB_MAX_OUTPUT_PORT_TYPE +out_data[61] <= mem[0][61].DB_MAX_OUTPUT_PORT_TYPE +out_data[62] <= mem[0][62].DB_MAX_OUTPUT_PORT_TYPE +out_data[63] <= mem[0][63].DB_MAX_OUTPUT_PORT_TYPE +out_data[64] <= mem[0][64].DB_MAX_OUTPUT_PORT_TYPE +out_data[65] <= mem[0][65].DB_MAX_OUTPUT_PORT_TYPE +out_data[66] <= mem[0][66].DB_MAX_OUTPUT_PORT_TYPE +out_data[67] <= mem[0][67].DB_MAX_OUTPUT_PORT_TYPE +out_data[68] <= mem[0][68].DB_MAX_OUTPUT_PORT_TYPE +out_data[69] <= mem[0][69].DB_MAX_OUTPUT_PORT_TYPE +out_data[70] <= mem[0][70].DB_MAX_OUTPUT_PORT_TYPE +out_data[71] <= mem[0][71].DB_MAX_OUTPUT_PORT_TYPE +out_data[72] <= mem[0][72].DB_MAX_OUTPUT_PORT_TYPE +out_data[73] <= mem[0][73].DB_MAX_OUTPUT_PORT_TYPE +out_data[74] <= mem[0][74].DB_MAX_OUTPUT_PORT_TYPE +out_data[75] <= mem[0][75].DB_MAX_OUTPUT_PORT_TYPE +out_data[76] <= mem[0][76].DB_MAX_OUTPUT_PORT_TYPE +out_data[77] <= mem[0][77].DB_MAX_OUTPUT_PORT_TYPE +out_data[78] <= mem[0][78].DB_MAX_OUTPUT_PORT_TYPE +out_data[79] <= mem[0][79].DB_MAX_OUTPUT_PORT_TYPE +out_data[80] <= mem[0][80].DB_MAX_OUTPUT_PORT_TYPE +out_data[81] <= mem[0][81].DB_MAX_OUTPUT_PORT_TYPE +out_data[82] <= mem[0][82].DB_MAX_OUTPUT_PORT_TYPE +out_data[83] <= mem[0][83].DB_MAX_OUTPUT_PORT_TYPE +out_data[84] <= mem[0][84].DB_MAX_OUTPUT_PORT_TYPE +out_data[85] <= mem[0][85].DB_MAX_OUTPUT_PORT_TYPE +out_data[86] <= mem[0][86].DB_MAX_OUTPUT_PORT_TYPE +out_data[87] <= mem[0][87].DB_MAX_OUTPUT_PORT_TYPE +out_data[88] <= mem[0][88].DB_MAX_OUTPUT_PORT_TYPE +out_data[89] <= mem[0][89].DB_MAX_OUTPUT_PORT_TYPE +out_data[90] <= mem[0][90].DB_MAX_OUTPUT_PORT_TYPE +out_data[91] <= mem[0][91].DB_MAX_OUTPUT_PORT_TYPE +out_data[92] <= mem[0][92].DB_MAX_OUTPUT_PORT_TYPE +out_data[93] <= mem[0][93].DB_MAX_OUTPUT_PORT_TYPE +out_data[94] <= mem[0][94].DB_MAX_OUTPUT_PORT_TYPE +out_data[95] <= mem[0][95].DB_MAX_OUTPUT_PORT_TYPE +out_data[96] <= mem[0][96].DB_MAX_OUTPUT_PORT_TYPE +out_valid <= mem_used[0].DB_MAX_OUTPUT_PORT_TYPE +out_startofpacket <= mem[0][98].DB_MAX_OUTPUT_PORT_TYPE +out_endofpacket <= mem[0][97].DB_MAX_OUTPUT_PORT_TYPE +out_empty[0] <= in_error[0].DB_MAX_OUTPUT_PORT_TYPE +out_error[0] <= in_error[0].DB_MAX_OUTPUT_PORT_TYPE +out_channel[0] <= in_channel[0].DB_MAX_OUTPUT_PORT_TYPE +out_ready => internal_out_ready.IN1 +csr_address[0] => ~NO_FANOUT~ +csr_address[1] => ~NO_FANOUT~ +csr_write => ~NO_FANOUT~ +csr_read => csr_readdata[31]~reg0.ENA +csr_read => csr_readdata[30]~reg0.ENA +csr_read => csr_readdata[29]~reg0.ENA +csr_read => csr_readdata[28]~reg0.ENA +csr_read => csr_readdata[27]~reg0.ENA +csr_read => csr_readdata[26]~reg0.ENA +csr_read => csr_readdata[25]~reg0.ENA +csr_read => csr_readdata[24]~reg0.ENA +csr_read => csr_readdata[23]~reg0.ENA +csr_read => csr_readdata[22]~reg0.ENA +csr_read => csr_readdata[21]~reg0.ENA +csr_read => csr_readdata[20]~reg0.ENA +csr_read => csr_readdata[19]~reg0.ENA +csr_read => csr_readdata[18]~reg0.ENA +csr_read => csr_readdata[17]~reg0.ENA +csr_read => csr_readdata[16]~reg0.ENA +csr_read => csr_readdata[15]~reg0.ENA +csr_read => csr_readdata[14]~reg0.ENA +csr_read => csr_readdata[13]~reg0.ENA +csr_read => csr_readdata[12]~reg0.ENA +csr_read => csr_readdata[11]~reg0.ENA +csr_read => csr_readdata[10]~reg0.ENA +csr_read => csr_readdata[9]~reg0.ENA +csr_read => csr_readdata[8]~reg0.ENA +csr_read => csr_readdata[7]~reg0.ENA +csr_read => csr_readdata[6]~reg0.ENA +csr_read => csr_readdata[5]~reg0.ENA +csr_read => csr_readdata[4]~reg0.ENA +csr_read => csr_readdata[3]~reg0.ENA +csr_read => csr_readdata[2]~reg0.ENA +csr_read => csr_readdata[1]~reg0.ENA +csr_read => csr_readdata[0]~reg0.ENA +csr_writedata[0] => ~NO_FANOUT~ +csr_writedata[1] => ~NO_FANOUT~ +csr_writedata[2] => ~NO_FANOUT~ +csr_writedata[3] => ~NO_FANOUT~ +csr_writedata[4] => ~NO_FANOUT~ +csr_writedata[5] => ~NO_FANOUT~ +csr_writedata[6] => ~NO_FANOUT~ +csr_writedata[7] => ~NO_FANOUT~ +csr_writedata[8] => ~NO_FANOUT~ +csr_writedata[9] => ~NO_FANOUT~ +csr_writedata[10] => ~NO_FANOUT~ +csr_writedata[11] => ~NO_FANOUT~ +csr_writedata[12] => ~NO_FANOUT~ +csr_writedata[13] => ~NO_FANOUT~ +csr_writedata[14] => ~NO_FANOUT~ +csr_writedata[15] => ~NO_FANOUT~ +csr_writedata[16] => ~NO_FANOUT~ +csr_writedata[17] => ~NO_FANOUT~ +csr_writedata[18] => ~NO_FANOUT~ +csr_writedata[19] => ~NO_FANOUT~ +csr_writedata[20] => ~NO_FANOUT~ +csr_writedata[21] => ~NO_FANOUT~ +csr_writedata[22] => ~NO_FANOUT~ +csr_writedata[23] => ~NO_FANOUT~ +csr_writedata[24] => ~NO_FANOUT~ +csr_writedata[25] => ~NO_FANOUT~ +csr_writedata[26] => ~NO_FANOUT~ +csr_writedata[27] => ~NO_FANOUT~ +csr_writedata[28] => ~NO_FANOUT~ +csr_writedata[29] => ~NO_FANOUT~ +csr_writedata[30] => ~NO_FANOUT~ +csr_writedata[31] => ~NO_FANOUT~ +csr_readdata[0] <= csr_readdata[0]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[1] <= csr_readdata[1]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[2] <= csr_readdata[2]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[3] <= csr_readdata[3]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[4] <= csr_readdata[4]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[5] <= csr_readdata[5]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[6] <= csr_readdata[6]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[7] <= csr_readdata[7]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[8] <= csr_readdata[8]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[9] <= csr_readdata[9]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[10] <= csr_readdata[10]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[11] <= csr_readdata[11]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[12] <= csr_readdata[12]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[13] <= csr_readdata[13]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[14] <= csr_readdata[14]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[15] <= csr_readdata[15]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[16] <= csr_readdata[16]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[17] <= csr_readdata[17]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[18] <= csr_readdata[18]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[19] <= csr_readdata[19]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[20] <= csr_readdata[20]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[21] <= csr_readdata[21]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[22] <= csr_readdata[22]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[23] <= csr_readdata[23]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[24] <= csr_readdata[24]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[25] <= csr_readdata[25]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[26] <= csr_readdata[26]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[27] <= csr_readdata[27]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[28] <= csr_readdata[28]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[29] <= csr_readdata[29]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[30] <= csr_readdata[30]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[31] <= csr_readdata[31]~reg0.DB_MAX_OUTPUT_PORT_TYPE +almost_full_data <= +almost_empty_data <= + + +|lights|nios_system:NiosII|altera_merlin_slave_agent:onchip_memory_s1_translator_avalon_universal_slave_0_agent +clk => clk.IN1 +reset => reset.IN1 +m0_address[0] <= +m0_address[1] <= +m0_address[2] <= cp_data[38].DB_MAX_OUTPUT_PORT_TYPE +m0_address[3] <= cp_data[39].DB_MAX_OUTPUT_PORT_TYPE +m0_address[4] <= cp_data[40].DB_MAX_OUTPUT_PORT_TYPE +m0_address[5] <= cp_data[41].DB_MAX_OUTPUT_PORT_TYPE +m0_address[6] <= cp_data[42].DB_MAX_OUTPUT_PORT_TYPE +m0_address[7] <= cp_data[43].DB_MAX_OUTPUT_PORT_TYPE +m0_address[8] <= cp_data[44].DB_MAX_OUTPUT_PORT_TYPE +m0_address[9] <= cp_data[45].DB_MAX_OUTPUT_PORT_TYPE +m0_address[10] <= cp_data[46].DB_MAX_OUTPUT_PORT_TYPE +m0_address[11] <= cp_data[47].DB_MAX_OUTPUT_PORT_TYPE +m0_address[12] <= cp_data[48].DB_MAX_OUTPUT_PORT_TYPE +m0_address[13] <= cp_data[49].DB_MAX_OUTPUT_PORT_TYPE +m0_address[14] <= cp_data[50].DB_MAX_OUTPUT_PORT_TYPE +m0_address[15] <= cp_data[51].DB_MAX_OUTPUT_PORT_TYPE +m0_address[16] <= cp_data[52].DB_MAX_OUTPUT_PORT_TYPE +m0_address[17] <= cp_data[53].DB_MAX_OUTPUT_PORT_TYPE +m0_address[18] <= cp_data[54].DB_MAX_OUTPUT_PORT_TYPE +m0_burstcount[0] <= m0_burstcount.DB_MAX_OUTPUT_PORT_TYPE +m0_burstcount[1] <= m0_burstcount.DB_MAX_OUTPUT_PORT_TYPE +m0_burstcount[2] <= m0_burstcount.DB_MAX_OUTPUT_PORT_TYPE +m0_byteenable[0] <= cp_data[32].DB_MAX_OUTPUT_PORT_TYPE +m0_byteenable[1] <= cp_data[33].DB_MAX_OUTPUT_PORT_TYPE +m0_byteenable[2] <= cp_data[34].DB_MAX_OUTPUT_PORT_TYPE +m0_byteenable[3] <= cp_data[35].DB_MAX_OUTPUT_PORT_TYPE +m0_read <= m0_read.DB_MAX_OUTPUT_PORT_TYPE +m0_readdata[0] => rdata_fifo_src_data[0].DATAIN +m0_readdata[1] => rdata_fifo_src_data[1].DATAIN +m0_readdata[2] => rdata_fifo_src_data[2].DATAIN +m0_readdata[3] => rdata_fifo_src_data[3].DATAIN +m0_readdata[4] => rdata_fifo_src_data[4].DATAIN +m0_readdata[5] => rdata_fifo_src_data[5].DATAIN +m0_readdata[6] => rdata_fifo_src_data[6].DATAIN +m0_readdata[7] => rdata_fifo_src_data[7].DATAIN +m0_readdata[8] => rdata_fifo_src_data[8].DATAIN +m0_readdata[9] => rdata_fifo_src_data[9].DATAIN +m0_readdata[10] => rdata_fifo_src_data[10].DATAIN +m0_readdata[11] => rdata_fifo_src_data[11].DATAIN +m0_readdata[12] => rdata_fifo_src_data[12].DATAIN +m0_readdata[13] => rdata_fifo_src_data[13].DATAIN +m0_readdata[14] => rdata_fifo_src_data[14].DATAIN +m0_readdata[15] => rdata_fifo_src_data[15].DATAIN +m0_readdata[16] => rdata_fifo_src_data[16].DATAIN +m0_readdata[17] => rdata_fifo_src_data[17].DATAIN +m0_readdata[18] => rdata_fifo_src_data[18].DATAIN +m0_readdata[19] => rdata_fifo_src_data[19].DATAIN +m0_readdata[20] => rdata_fifo_src_data[20].DATAIN +m0_readdata[21] => rdata_fifo_src_data[21].DATAIN +m0_readdata[22] => rdata_fifo_src_data[22].DATAIN +m0_readdata[23] => rdata_fifo_src_data[23].DATAIN +m0_readdata[24] => rdata_fifo_src_data[24].DATAIN +m0_readdata[25] => rdata_fifo_src_data[25].DATAIN +m0_readdata[26] => rdata_fifo_src_data[26].DATAIN +m0_readdata[27] => rdata_fifo_src_data[27].DATAIN +m0_readdata[28] => rdata_fifo_src_data[28].DATAIN +m0_readdata[29] => rdata_fifo_src_data[29].DATAIN +m0_readdata[30] => rdata_fifo_src_data[30].DATAIN +m0_readdata[31] => rdata_fifo_src_data[31].DATAIN +m0_waitrequest => cp_ready.IN0 +m0_write <= m0_write.DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[0] <= cp_data[0].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[1] <= cp_data[1].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[2] <= cp_data[2].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[3] <= cp_data[3].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[4] <= cp_data[4].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[5] <= cp_data[5].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[6] <= cp_data[6].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[7] <= cp_data[7].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[8] <= cp_data[8].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[9] <= cp_data[9].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[10] <= cp_data[10].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[11] <= cp_data[11].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[12] <= cp_data[12].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[13] <= cp_data[13].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[14] <= cp_data[14].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[15] <= cp_data[15].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[16] <= cp_data[16].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[17] <= cp_data[17].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[18] <= cp_data[18].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[19] <= cp_data[19].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[20] <= cp_data[20].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[21] <= cp_data[21].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[22] <= cp_data[22].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[23] <= cp_data[23].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[24] <= cp_data[24].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[25] <= cp_data[25].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[26] <= cp_data[26].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[27] <= cp_data[27].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[28] <= cp_data[28].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[29] <= cp_data[29].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[30] <= cp_data[30].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[31] <= cp_data[31].DB_MAX_OUTPUT_PORT_TYPE +m0_readdatavalid => rdata_fifo_src_valid.IN0 +m0_debugaccess <= cp_data[87].DB_MAX_OUTPUT_PORT_TYPE +m0_lock <= m0_lock.DB_MAX_OUTPUT_PORT_TYPE +m0_response[0] => rdata_fifo_src_data[32].DATAIN +m0_response[1] => rdata_fifo_src_data[33].DATAIN +m0_writeresponserequest <= m0_writeresponserequest.DB_MAX_OUTPUT_PORT_TYPE +m0_writeresponsevalid => rdata_fifo_src_valid.IN1 +rf_source_data[0] <= +rf_source_data[1] <= +rf_source_data[2] <= +rf_source_data[3] <= +rf_source_data[4] <= +rf_source_data[5] <= +rf_source_data[6] <= +rf_source_data[7] <= +rf_source_data[8] <= +rf_source_data[9] <= +rf_source_data[10] <= +rf_source_data[11] <= +rf_source_data[12] <= +rf_source_data[13] <= +rf_source_data[14] <= +rf_source_data[15] <= +rf_source_data[16] <= +rf_source_data[17] <= +rf_source_data[18] <= +rf_source_data[19] <= +rf_source_data[20] <= +rf_source_data[21] <= +rf_source_data[22] <= +rf_source_data[23] <= +rf_source_data[24] <= +rf_source_data[25] <= +rf_source_data[26] <= +rf_source_data[27] <= +rf_source_data[28] <= +rf_source_data[29] <= +rf_source_data[30] <= +rf_source_data[31] <= +rf_source_data[32] <= cp_data[32].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[33] <= cp_data[33].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[34] <= cp_data[34].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[35] <= cp_data[35].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[36] <= cp_data[36].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[37] <= cp_data[37].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[38] <= cp_data[38].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[39] <= cp_data[39].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[40] <= cp_data[40].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[41] <= cp_data[41].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[42] <= cp_data[42].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[43] <= cp_data[43].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[44] <= cp_data[44].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[45] <= cp_data[45].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[46] <= cp_data[46].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[47] <= cp_data[47].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[48] <= cp_data[48].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[49] <= cp_data[49].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[50] <= cp_data[50].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[51] <= cp_data[51].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[52] <= cp_data[52].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[53] <= cp_data[53].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[54] <= cp_data[54].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[55] <= cp_data[55].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[56] <= cp_data[56].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[57] <= cp_data[57].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[58] <= cp_data[58].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[59] <= cp_data[59].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[60] <= cp_data[60].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[61] <= cp_data[61].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[62] <= cp_data[62].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[63] <= cp_data[63].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[64] <= cp_data[64].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[65] <= cp_data[65].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[66] <= cp_data[66].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[67] <= cp_data[67].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[68] <= cp_data[68].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[69] <= cp_data[69].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[70] <= cp_data[70].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[71] <= cp_data[71].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[72] <= cp_data[72].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[73] <= cp_data[73].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[74] <= cp_data[74].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[75] <= cp_data[75].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[76] <= cp_data[76].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[77] <= cp_data[77].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[78] <= cp_data[78].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[79] <= cp_data[79].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[80] <= cp_data[80].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[81] <= cp_data[81].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[82] <= cp_data[82].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[83] <= cp_data[83].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[84] <= cp_data[84].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[85] <= cp_data[85].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[86] <= cp_data[86].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[87] <= cp_data[87].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[88] <= +rf_source_data[89] <= +rf_source_data[90] <= cp_data[90].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[91] <= cp_data[91].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[92] <= cp_data[92].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[93] <= cp_data[93].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[94] <= cp_data[94].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[95] <= cp_data[95].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[96] <= nonposted_write_endofpacket.DB_MAX_OUTPUT_PORT_TYPE +rf_source_valid <= rf_source_valid.DB_MAX_OUTPUT_PORT_TYPE +rf_source_startofpacket <= cp_startofpacket.DB_MAX_OUTPUT_PORT_TYPE +rf_source_endofpacket <= cp_endofpacket.DB_MAX_OUTPUT_PORT_TYPE +rf_source_ready => cp_ready.IN1 +rf_source_ready => m0_write.IN1 +rf_source_ready => m0_lock.IN1 +rf_source_ready => rf_source_valid.IN1 +rf_source_ready => m0_read.IN1 +rf_sink_data[0] => ~NO_FANOUT~ +rf_sink_data[1] => ~NO_FANOUT~ +rf_sink_data[2] => ~NO_FANOUT~ +rf_sink_data[3] => ~NO_FANOUT~ +rf_sink_data[4] => ~NO_FANOUT~ +rf_sink_data[5] => ~NO_FANOUT~ +rf_sink_data[6] => ~NO_FANOUT~ +rf_sink_data[7] => ~NO_FANOUT~ +rf_sink_data[8] => ~NO_FANOUT~ +rf_sink_data[9] => ~NO_FANOUT~ +rf_sink_data[10] => ~NO_FANOUT~ +rf_sink_data[11] => ~NO_FANOUT~ +rf_sink_data[12] => ~NO_FANOUT~ +rf_sink_data[13] => ~NO_FANOUT~ +rf_sink_data[14] => ~NO_FANOUT~ +rf_sink_data[15] => ~NO_FANOUT~ +rf_sink_data[16] => ~NO_FANOUT~ +rf_sink_data[17] => ~NO_FANOUT~ +rf_sink_data[18] => ~NO_FANOUT~ +rf_sink_data[19] => ~NO_FANOUT~ +rf_sink_data[20] => ~NO_FANOUT~ +rf_sink_data[21] => ~NO_FANOUT~ +rf_sink_data[22] => ~NO_FANOUT~ +rf_sink_data[23] => ~NO_FANOUT~ +rf_sink_data[24] => ~NO_FANOUT~ +rf_sink_data[25] => ~NO_FANOUT~ +rf_sink_data[26] => ~NO_FANOUT~ +rf_sink_data[27] => ~NO_FANOUT~ +rf_sink_data[28] => ~NO_FANOUT~ +rf_sink_data[29] => ~NO_FANOUT~ +rf_sink_data[30] => ~NO_FANOUT~ +rf_sink_data[31] => ~NO_FANOUT~ +rf_sink_data[32] => rp_data[32].DATAIN +rf_sink_data[33] => rp_data[33].DATAIN +rf_sink_data[34] => rp_data[34].DATAIN +rf_sink_data[35] => rp_data[35].DATAIN +rf_sink_data[36] => rf_sink_addr[0].IN1 +rf_sink_data[37] => rf_sink_addr[1].IN1 +rf_sink_data[38] => rf_sink_addr[2].IN1 +rf_sink_data[39] => rf_sink_addr[3].IN1 +rf_sink_data[40] => rf_sink_addr[4].IN1 +rf_sink_data[41] => rf_sink_addr[5].IN1 +rf_sink_data[42] => rf_sink_addr[6].IN1 +rf_sink_data[43] => rf_sink_addr[7].IN1 +rf_sink_data[44] => rf_sink_addr[8].IN1 +rf_sink_data[45] => rf_sink_addr[9].IN1 +rf_sink_data[46] => rf_sink_addr[10].IN1 +rf_sink_data[47] => rf_sink_addr[11].IN1 +rf_sink_data[48] => rf_sink_addr[12].IN1 +rf_sink_data[49] => rf_sink_addr[13].IN1 +rf_sink_data[50] => rf_sink_addr[14].IN1 +rf_sink_data[51] => rf_sink_addr[15].IN1 +rf_sink_data[52] => rf_sink_addr[16].IN1 +rf_sink_data[53] => rf_sink_addr[17].IN1 +rf_sink_data[54] => rf_sink_addr[18].IN1 +rf_sink_data[55] => rf_sink_compressed.IN1 +rf_sink_data[56] => rp_data[56].DATAIN +rf_sink_data[57] => comb.OUTPUTSELECT +rf_sink_data[57] => rp_data[57].DATAIN +rf_sink_data[58] => rp_data.IN0 +rf_sink_data[59] => rp_data[59].DATAIN +rf_sink_data[60] => rp_data[60].DATAIN +rf_sink_data[61] => rf_sink_byte_cnt[0].IN1 +rf_sink_data[62] => rf_sink_byte_cnt[1].IN1 +rf_sink_data[63] => rf_sink_byte_cnt[2].IN1 +rf_sink_data[64] => rf_sink_burstwrap[0].IN1 +rf_sink_data[65] => rf_sink_burstwrap[1].IN1 +rf_sink_data[66] => rf_sink_burstwrap[2].IN1 +rf_sink_data[67] => rf_sink_burstsize[0].IN1 +rf_sink_data[68] => rf_sink_burstsize[1].IN1 +rf_sink_data[69] => rf_sink_burstsize[2].IN1 +rf_sink_data[70] => rp_data[70].DATAIN +rf_sink_data[71] => rp_data[71].DATAIN +rf_sink_data[72] => rp_data[72].DATAIN +rf_sink_data[73] => rp_data[73].DATAIN +rf_sink_data[74] => rp_data[74].DATAIN +rf_sink_data[75] => rp_data[75].DATAIN +rf_sink_data[76] => rp_data[81].DATAIN +rf_sink_data[77] => rp_data[82].DATAIN +rf_sink_data[78] => rp_data[83].DATAIN +rf_sink_data[79] => rp_data[84].DATAIN +rf_sink_data[80] => rp_data[85].DATAIN +rf_sink_data[81] => rp_data[76].DATAIN +rf_sink_data[82] => rp_data[77].DATAIN +rf_sink_data[83] => rp_data[78].DATAIN +rf_sink_data[84] => rp_data[79].DATAIN +rf_sink_data[85] => rp_data[80].DATAIN +rf_sink_data[86] => rp_data[86].DATAIN +rf_sink_data[87] => rp_data[87].DATAIN +rf_sink_data[88] => rp_data[88].DATAIN +rf_sink_data[89] => rp_data[89].DATAIN +rf_sink_data[90] => rp_data[90].DATAIN +rf_sink_data[91] => rp_data[91].DATAIN +rf_sink_data[92] => rp_data[92].DATAIN +rf_sink_data[93] => rp_data[93].DATAIN +rf_sink_data[94] => ~NO_FANOUT~ +rf_sink_data[95] => ~NO_FANOUT~ +rf_sink_data[96] => rdata_fifo_sink_ready.IN0 +rf_sink_data[96] => comb.IN0 +rf_sink_valid => rdata_fifo_sink_ready.IN1 +rf_sink_valid => comb.IN1 +rf_sink_startofpacket => comb.DATAA +rf_sink_endofpacket => rf_sink_endofpacket.IN1 +rf_sink_ready <= altera_merlin_burst_uncompressor:uncompressor.sink_ready +rdata_fifo_src_data[0] <= m0_readdata[0].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[1] <= m0_readdata[1].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[2] <= m0_readdata[2].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[3] <= m0_readdata[3].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[4] <= m0_readdata[4].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[5] <= m0_readdata[5].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[6] <= m0_readdata[6].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[7] <= m0_readdata[7].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[8] <= m0_readdata[8].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[9] <= m0_readdata[9].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[10] <= m0_readdata[10].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[11] <= m0_readdata[11].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[12] <= m0_readdata[12].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[13] <= m0_readdata[13].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[14] <= m0_readdata[14].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[15] <= m0_readdata[15].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[16] <= m0_readdata[16].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[17] <= m0_readdata[17].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[18] <= m0_readdata[18].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[19] <= m0_readdata[19].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[20] <= m0_readdata[20].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[21] <= m0_readdata[21].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[22] <= m0_readdata[22].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[23] <= m0_readdata[23].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[24] <= m0_readdata[24].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[25] <= m0_readdata[25].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[26] <= m0_readdata[26].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[27] <= m0_readdata[27].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[28] <= m0_readdata[28].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[29] <= m0_readdata[29].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[30] <= m0_readdata[30].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[31] <= m0_readdata[31].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[32] <= m0_response[0].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[33] <= m0_response[1].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_valid <= rdata_fifo_src_valid.DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_ready => ~NO_FANOUT~ +rdata_fifo_sink_data[0] => rp_data[0].DATAIN +rdata_fifo_sink_data[1] => rp_data[1].DATAIN +rdata_fifo_sink_data[2] => rp_data[2].DATAIN +rdata_fifo_sink_data[3] => rp_data[3].DATAIN +rdata_fifo_sink_data[4] => rp_data[4].DATAIN +rdata_fifo_sink_data[5] => rp_data[5].DATAIN +rdata_fifo_sink_data[6] => rp_data[6].DATAIN +rdata_fifo_sink_data[7] => rp_data[7].DATAIN +rdata_fifo_sink_data[8] => rp_data[8].DATAIN +rdata_fifo_sink_data[9] => rp_data[9].DATAIN +rdata_fifo_sink_data[10] => rp_data[10].DATAIN +rdata_fifo_sink_data[11] => rp_data[11].DATAIN +rdata_fifo_sink_data[12] => rp_data[12].DATAIN +rdata_fifo_sink_data[13] => rp_data[13].DATAIN +rdata_fifo_sink_data[14] => rp_data[14].DATAIN +rdata_fifo_sink_data[15] => rp_data[15].DATAIN +rdata_fifo_sink_data[16] => rp_data[16].DATAIN +rdata_fifo_sink_data[17] => rp_data[17].DATAIN +rdata_fifo_sink_data[18] => rp_data[18].DATAIN +rdata_fifo_sink_data[19] => rp_data[19].DATAIN +rdata_fifo_sink_data[20] => rp_data[20].DATAIN +rdata_fifo_sink_data[21] => rp_data[21].DATAIN +rdata_fifo_sink_data[22] => rp_data[22].DATAIN +rdata_fifo_sink_data[23] => rp_data[23].DATAIN +rdata_fifo_sink_data[24] => rp_data[24].DATAIN +rdata_fifo_sink_data[25] => rp_data[25].DATAIN +rdata_fifo_sink_data[26] => rp_data[26].DATAIN +rdata_fifo_sink_data[27] => rp_data[27].DATAIN +rdata_fifo_sink_data[28] => rp_data[28].DATAIN +rdata_fifo_sink_data[29] => rp_data[29].DATAIN +rdata_fifo_sink_data[30] => rp_data[30].DATAIN +rdata_fifo_sink_data[31] => rp_data[31].DATAIN +rdata_fifo_sink_data[32] => rp_data[94].DATAIN +rdata_fifo_sink_data[33] => rp_data[95].DATAIN +rdata_fifo_sink_valid => rp_valid.IN1 +rdata_fifo_sink_valid => rdata_fifo_sink_ready.IN0 +rdata_fifo_sink_valid => comb.IN1 +rdata_fifo_sink_ready <= rdata_fifo_sink_ready.DB_MAX_OUTPUT_PORT_TYPE +cp_ready <= cp_ready.DB_MAX_OUTPUT_PORT_TYPE +cp_valid => local_lock.IN0 +cp_valid => local_write.IN0 +cp_valid => local_read.IN0 +cp_valid => local_compressed_read.IN0 +cp_data[0] => m0_writedata[0].DATAIN +cp_data[1] => m0_writedata[1].DATAIN +cp_data[2] => m0_writedata[2].DATAIN +cp_data[3] => m0_writedata[3].DATAIN +cp_data[4] => m0_writedata[4].DATAIN +cp_data[5] => m0_writedata[5].DATAIN +cp_data[6] => m0_writedata[6].DATAIN +cp_data[7] => m0_writedata[7].DATAIN +cp_data[8] => m0_writedata[8].DATAIN +cp_data[9] => m0_writedata[9].DATAIN +cp_data[10] => m0_writedata[10].DATAIN +cp_data[11] => m0_writedata[11].DATAIN +cp_data[12] => m0_writedata[12].DATAIN +cp_data[13] => m0_writedata[13].DATAIN +cp_data[14] => m0_writedata[14].DATAIN +cp_data[15] => m0_writedata[15].DATAIN +cp_data[16] => m0_writedata[16].DATAIN +cp_data[17] => m0_writedata[17].DATAIN +cp_data[18] => m0_writedata[18].DATAIN +cp_data[19] => m0_writedata[19].DATAIN +cp_data[20] => m0_writedata[20].DATAIN +cp_data[21] => m0_writedata[21].DATAIN +cp_data[22] => m0_writedata[22].DATAIN +cp_data[23] => m0_writedata[23].DATAIN +cp_data[24] => m0_writedata[24].DATAIN +cp_data[25] => m0_writedata[25].DATAIN +cp_data[26] => m0_writedata[26].DATAIN +cp_data[27] => m0_writedata[27].DATAIN +cp_data[28] => m0_writedata[28].DATAIN +cp_data[29] => m0_writedata[29].DATAIN +cp_data[30] => m0_writedata[30].DATAIN +cp_data[31] => m0_writedata[31].DATAIN +cp_data[32] => rf_source_data[32].DATAIN +cp_data[32] => m0_byteenable[0].DATAIN +cp_data[33] => rf_source_data[33].DATAIN +cp_data[33] => m0_byteenable[1].DATAIN +cp_data[34] => rf_source_data[34].DATAIN +cp_data[34] => m0_byteenable[2].DATAIN +cp_data[35] => rf_source_data[35].DATAIN +cp_data[35] => m0_byteenable[3].DATAIN +cp_data[36] => rf_source_data[36].DATAIN +cp_data[37] => rf_source_data[37].DATAIN +cp_data[38] => rf_source_data[38].DATAIN +cp_data[38] => m0_address[2].DATAIN +cp_data[39] => rf_source_data[39].DATAIN +cp_data[39] => m0_address[3].DATAIN +cp_data[40] => rf_source_data[40].DATAIN +cp_data[40] => m0_address[4].DATAIN +cp_data[41] => rf_source_data[41].DATAIN +cp_data[41] => m0_address[5].DATAIN +cp_data[42] => rf_source_data[42].DATAIN +cp_data[42] => m0_address[6].DATAIN +cp_data[43] => rf_source_data[43].DATAIN +cp_data[43] => m0_address[7].DATAIN +cp_data[44] => rf_source_data[44].DATAIN +cp_data[44] => m0_address[8].DATAIN +cp_data[45] => rf_source_data[45].DATAIN +cp_data[45] => m0_address[9].DATAIN +cp_data[46] => rf_source_data[46].DATAIN +cp_data[46] => m0_address[10].DATAIN +cp_data[47] => rf_source_data[47].DATAIN +cp_data[47] => m0_address[11].DATAIN +cp_data[48] => rf_source_data[48].DATAIN +cp_data[48] => m0_address[12].DATAIN +cp_data[49] => rf_source_data[49].DATAIN +cp_data[49] => m0_address[13].DATAIN +cp_data[50] => rf_source_data[50].DATAIN +cp_data[50] => m0_address[14].DATAIN +cp_data[51] => rf_source_data[51].DATAIN +cp_data[51] => m0_address[15].DATAIN +cp_data[52] => rf_source_data[52].DATAIN +cp_data[52] => m0_address[16].DATAIN +cp_data[53] => rf_source_data[53].DATAIN +cp_data[53] => m0_address[17].DATAIN +cp_data[54] => rf_source_data[54].DATAIN +cp_data[54] => m0_address[18].DATAIN +cp_data[55] => local_compressed_read.IN1 +cp_data[55] => rf_source_data[55].DATAIN +cp_data[56] => rf_source_data[56].DATAIN +cp_data[56] => m0_writeresponserequest.IN1 +cp_data[56] => comb.IN1 +cp_data[57] => local_write.IN1 +cp_data[57] => rf_source_data[57].DATAIN +cp_data[58] => local_read.IN1 +cp_data[58] => rf_source_data[58].DATAIN +cp_data[59] => local_lock.IN1 +cp_data[59] => rf_source_data[59].DATAIN +cp_data[60] => rf_source_data[60].DATAIN +cp_data[61] => m0_burstcount.DATAA +cp_data[61] => rf_source_data[61].DATAIN +cp_data[62] => m0_burstcount.DATAA +cp_data[62] => rf_source_data[62].DATAIN +cp_data[63] => m0_burstcount.DATAA +cp_data[63] => rf_source_data[63].DATAIN +cp_data[64] => rf_source_data[64].DATAIN +cp_data[65] => rf_source_data[65].DATAIN +cp_data[66] => rf_source_data[66].DATAIN +cp_data[67] => rf_source_data[67].DATAIN +cp_data[68] => rf_source_data[68].DATAIN +cp_data[69] => rf_source_data[69].DATAIN +cp_data[70] => rf_source_data[70].DATAIN +cp_data[71] => rf_source_data[71].DATAIN +cp_data[72] => rf_source_data[72].DATAIN +cp_data[73] => rf_source_data[73].DATAIN +cp_data[74] => rf_source_data[74].DATAIN +cp_data[75] => rf_source_data[75].DATAIN +cp_data[76] => rf_source_data[76].DATAIN +cp_data[77] => rf_source_data[77].DATAIN +cp_data[78] => rf_source_data[78].DATAIN +cp_data[79] => rf_source_data[79].DATAIN +cp_data[80] => rf_source_data[80].DATAIN +cp_data[81] => rf_source_data[81].DATAIN +cp_data[82] => rf_source_data[82].DATAIN +cp_data[83] => rf_source_data[83].DATAIN +cp_data[84] => rf_source_data[84].DATAIN +cp_data[85] => rf_source_data[85].DATAIN +cp_data[86] => rf_source_data[86].DATAIN +cp_data[87] => rf_source_data[87].DATAIN +cp_data[87] => m0_debugaccess.DATAIN +cp_data[88] => ~NO_FANOUT~ +cp_data[89] => ~NO_FANOUT~ +cp_data[90] => rf_source_data[90].DATAIN +cp_data[91] => rf_source_data[91].DATAIN +cp_data[92] => rf_source_data[92].DATAIN +cp_data[93] => rf_source_data[93].DATAIN +cp_data[94] => rf_source_data[94].DATAIN +cp_data[95] => rf_source_data[95].DATAIN +cp_channel[0] => ~NO_FANOUT~ +cp_channel[1] => ~NO_FANOUT~ +cp_channel[2] => ~NO_FANOUT~ +cp_channel[3] => ~NO_FANOUT~ +cp_channel[4] => ~NO_FANOUT~ +cp_channel[5] => ~NO_FANOUT~ +cp_channel[6] => ~NO_FANOUT~ +cp_channel[7] => ~NO_FANOUT~ +cp_channel[8] => ~NO_FANOUT~ +cp_channel[9] => ~NO_FANOUT~ +cp_channel[10] => ~NO_FANOUT~ +cp_channel[11] => ~NO_FANOUT~ +cp_channel[12] => ~NO_FANOUT~ +cp_channel[13] => ~NO_FANOUT~ +cp_channel[14] => ~NO_FANOUT~ +cp_channel[15] => ~NO_FANOUT~ +cp_channel[16] => ~NO_FANOUT~ +cp_channel[17] => ~NO_FANOUT~ +cp_startofpacket => rf_source_startofpacket.DATAIN +cp_endofpacket => nonposted_write_endofpacket.IN1 +cp_endofpacket => rf_source_endofpacket.DATAIN +rp_ready => rp_ready.IN1 +rp_valid <= rp_valid.DB_MAX_OUTPUT_PORT_TYPE +rp_data[0] <= rdata_fifo_sink_data[0].DB_MAX_OUTPUT_PORT_TYPE +rp_data[1] <= rdata_fifo_sink_data[1].DB_MAX_OUTPUT_PORT_TYPE +rp_data[2] <= rdata_fifo_sink_data[2].DB_MAX_OUTPUT_PORT_TYPE +rp_data[3] <= rdata_fifo_sink_data[3].DB_MAX_OUTPUT_PORT_TYPE +rp_data[4] <= rdata_fifo_sink_data[4].DB_MAX_OUTPUT_PORT_TYPE +rp_data[5] <= rdata_fifo_sink_data[5].DB_MAX_OUTPUT_PORT_TYPE +rp_data[6] <= rdata_fifo_sink_data[6].DB_MAX_OUTPUT_PORT_TYPE +rp_data[7] <= rdata_fifo_sink_data[7].DB_MAX_OUTPUT_PORT_TYPE +rp_data[8] <= rdata_fifo_sink_data[8].DB_MAX_OUTPUT_PORT_TYPE +rp_data[9] <= rdata_fifo_sink_data[9].DB_MAX_OUTPUT_PORT_TYPE +rp_data[10] <= rdata_fifo_sink_data[10].DB_MAX_OUTPUT_PORT_TYPE +rp_data[11] <= rdata_fifo_sink_data[11].DB_MAX_OUTPUT_PORT_TYPE +rp_data[12] <= rdata_fifo_sink_data[12].DB_MAX_OUTPUT_PORT_TYPE +rp_data[13] <= rdata_fifo_sink_data[13].DB_MAX_OUTPUT_PORT_TYPE +rp_data[14] <= rdata_fifo_sink_data[14].DB_MAX_OUTPUT_PORT_TYPE +rp_data[15] <= rdata_fifo_sink_data[15].DB_MAX_OUTPUT_PORT_TYPE +rp_data[16] <= rdata_fifo_sink_data[16].DB_MAX_OUTPUT_PORT_TYPE +rp_data[17] <= rdata_fifo_sink_data[17].DB_MAX_OUTPUT_PORT_TYPE +rp_data[18] <= rdata_fifo_sink_data[18].DB_MAX_OUTPUT_PORT_TYPE +rp_data[19] <= rdata_fifo_sink_data[19].DB_MAX_OUTPUT_PORT_TYPE +rp_data[20] <= rdata_fifo_sink_data[20].DB_MAX_OUTPUT_PORT_TYPE +rp_data[21] <= rdata_fifo_sink_data[21].DB_MAX_OUTPUT_PORT_TYPE +rp_data[22] <= rdata_fifo_sink_data[22].DB_MAX_OUTPUT_PORT_TYPE +rp_data[23] <= rdata_fifo_sink_data[23].DB_MAX_OUTPUT_PORT_TYPE +rp_data[24] <= rdata_fifo_sink_data[24].DB_MAX_OUTPUT_PORT_TYPE +rp_data[25] <= rdata_fifo_sink_data[25].DB_MAX_OUTPUT_PORT_TYPE +rp_data[26] <= rdata_fifo_sink_data[26].DB_MAX_OUTPUT_PORT_TYPE +rp_data[27] <= rdata_fifo_sink_data[27].DB_MAX_OUTPUT_PORT_TYPE +rp_data[28] <= rdata_fifo_sink_data[28].DB_MAX_OUTPUT_PORT_TYPE +rp_data[29] <= rdata_fifo_sink_data[29].DB_MAX_OUTPUT_PORT_TYPE +rp_data[30] <= rdata_fifo_sink_data[30].DB_MAX_OUTPUT_PORT_TYPE +rp_data[31] <= rdata_fifo_sink_data[31].DB_MAX_OUTPUT_PORT_TYPE +rp_data[32] <= rf_sink_data[32].DB_MAX_OUTPUT_PORT_TYPE +rp_data[33] <= rf_sink_data[33].DB_MAX_OUTPUT_PORT_TYPE +rp_data[34] <= rf_sink_data[34].DB_MAX_OUTPUT_PORT_TYPE +rp_data[35] <= rf_sink_data[35].DB_MAX_OUTPUT_PORT_TYPE +rp_data[36] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[37] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[38] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[39] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[40] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[41] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[42] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[43] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[44] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[45] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[46] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[47] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[48] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[49] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[50] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[51] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[52] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[53] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[54] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[55] <= altera_merlin_burst_uncompressor:uncompressor.source_is_compressed +rp_data[56] <= rf_sink_data[56].DB_MAX_OUTPUT_PORT_TYPE +rp_data[57] <= rf_sink_data[57].DB_MAX_OUTPUT_PORT_TYPE +rp_data[58] <= rp_data.DB_MAX_OUTPUT_PORT_TYPE +rp_data[59] <= rf_sink_data[59].DB_MAX_OUTPUT_PORT_TYPE +rp_data[60] <= rf_sink_data[60].DB_MAX_OUTPUT_PORT_TYPE +rp_data[61] <= altera_merlin_burst_uncompressor:uncompressor.source_byte_cnt +rp_data[62] <= altera_merlin_burst_uncompressor:uncompressor.source_byte_cnt +rp_data[63] <= altera_merlin_burst_uncompressor:uncompressor.source_byte_cnt +rp_data[64] <= altera_merlin_burst_uncompressor:uncompressor.source_burstwrap +rp_data[65] <= altera_merlin_burst_uncompressor:uncompressor.source_burstwrap +rp_data[66] <= altera_merlin_burst_uncompressor:uncompressor.source_burstwrap +rp_data[67] <= altera_merlin_burst_uncompressor:uncompressor.source_burstsize +rp_data[68] <= altera_merlin_burst_uncompressor:uncompressor.source_burstsize +rp_data[69] <= altera_merlin_burst_uncompressor:uncompressor.source_burstsize +rp_data[70] <= rf_sink_data[70].DB_MAX_OUTPUT_PORT_TYPE +rp_data[71] <= rf_sink_data[71].DB_MAX_OUTPUT_PORT_TYPE +rp_data[72] <= rf_sink_data[72].DB_MAX_OUTPUT_PORT_TYPE +rp_data[73] <= rf_sink_data[73].DB_MAX_OUTPUT_PORT_TYPE +rp_data[74] <= rf_sink_data[74].DB_MAX_OUTPUT_PORT_TYPE +rp_data[75] <= rf_sink_data[75].DB_MAX_OUTPUT_PORT_TYPE +rp_data[76] <= rf_sink_data[81].DB_MAX_OUTPUT_PORT_TYPE +rp_data[77] <= rf_sink_data[82].DB_MAX_OUTPUT_PORT_TYPE +rp_data[78] <= rf_sink_data[83].DB_MAX_OUTPUT_PORT_TYPE +rp_data[79] <= rf_sink_data[84].DB_MAX_OUTPUT_PORT_TYPE +rp_data[80] <= rf_sink_data[85].DB_MAX_OUTPUT_PORT_TYPE +rp_data[81] <= rf_sink_data[76].DB_MAX_OUTPUT_PORT_TYPE +rp_data[82] <= rf_sink_data[77].DB_MAX_OUTPUT_PORT_TYPE +rp_data[83] <= rf_sink_data[78].DB_MAX_OUTPUT_PORT_TYPE +rp_data[84] <= rf_sink_data[79].DB_MAX_OUTPUT_PORT_TYPE +rp_data[85] <= rf_sink_data[80].DB_MAX_OUTPUT_PORT_TYPE +rp_data[86] <= rf_sink_data[86].DB_MAX_OUTPUT_PORT_TYPE +rp_data[87] <= rf_sink_data[87].DB_MAX_OUTPUT_PORT_TYPE +rp_data[88] <= rf_sink_data[88].DB_MAX_OUTPUT_PORT_TYPE +rp_data[89] <= rf_sink_data[89].DB_MAX_OUTPUT_PORT_TYPE +rp_data[90] <= rf_sink_data[90].DB_MAX_OUTPUT_PORT_TYPE +rp_data[91] <= rf_sink_data[91].DB_MAX_OUTPUT_PORT_TYPE +rp_data[92] <= rf_sink_data[92].DB_MAX_OUTPUT_PORT_TYPE +rp_data[93] <= rf_sink_data[93].DB_MAX_OUTPUT_PORT_TYPE +rp_data[94] <= rdata_fifo_sink_data[32].DB_MAX_OUTPUT_PORT_TYPE +rp_data[95] <= rdata_fifo_sink_data[33].DB_MAX_OUTPUT_PORT_TYPE +rp_startofpacket <= altera_merlin_burst_uncompressor:uncompressor.source_startofpacket +rp_endofpacket <= altera_merlin_burst_uncompressor:uncompressor.source_endofpacket + + +|lights|nios_system:NiosII|altera_merlin_slave_agent:onchip_memory_s1_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor +clk => burst_uncompress_address_offset[0].CLK +clk => burst_uncompress_address_offset[1].CLK +clk => burst_uncompress_address_offset[2].CLK +clk => burst_uncompress_address_offset[3].CLK +clk => burst_uncompress_address_offset[4].CLK +clk => burst_uncompress_address_offset[5].CLK +clk => burst_uncompress_address_offset[6].CLK +clk => burst_uncompress_address_offset[7].CLK +clk => burst_uncompress_address_offset[8].CLK +clk => burst_uncompress_address_offset[9].CLK +clk => burst_uncompress_address_offset[10].CLK +clk => burst_uncompress_address_offset[11].CLK +clk => burst_uncompress_address_offset[12].CLK +clk => burst_uncompress_address_offset[13].CLK +clk => burst_uncompress_address_offset[14].CLK +clk => burst_uncompress_address_offset[15].CLK +clk => burst_uncompress_address_offset[16].CLK +clk => burst_uncompress_address_offset[17].CLK +clk => burst_uncompress_address_offset[18].CLK +clk => burst_uncompress_address_base[0].CLK +clk => burst_uncompress_address_base[1].CLK +clk => burst_uncompress_address_base[2].CLK +clk => burst_uncompress_address_base[3].CLK +clk => burst_uncompress_address_base[4].CLK +clk => burst_uncompress_address_base[5].CLK +clk => burst_uncompress_address_base[6].CLK +clk => burst_uncompress_address_base[7].CLK +clk => burst_uncompress_address_base[8].CLK +clk => burst_uncompress_address_base[9].CLK +clk => burst_uncompress_address_base[10].CLK +clk => burst_uncompress_address_base[11].CLK +clk => burst_uncompress_address_base[12].CLK +clk => burst_uncompress_address_base[13].CLK +clk => burst_uncompress_address_base[14].CLK +clk => burst_uncompress_address_base[15].CLK +clk => burst_uncompress_address_base[16].CLK +clk => burst_uncompress_address_base[17].CLK +clk => burst_uncompress_address_base[18].CLK +clk => burst_uncompress_byte_counter[0].CLK +clk => burst_uncompress_byte_counter[1].CLK +clk => burst_uncompress_byte_counter[2].CLK +clk => burst_uncompress_busy.CLK +reset => burst_uncompress_address_offset[0].ACLR +reset => burst_uncompress_address_offset[1].ACLR +reset => burst_uncompress_address_offset[2].ACLR +reset => burst_uncompress_address_offset[3].ACLR +reset => burst_uncompress_address_offset[4].ACLR +reset => burst_uncompress_address_offset[5].ACLR +reset => burst_uncompress_address_offset[6].ACLR +reset => burst_uncompress_address_offset[7].ACLR +reset => burst_uncompress_address_offset[8].ACLR +reset => burst_uncompress_address_offset[9].ACLR +reset => burst_uncompress_address_offset[10].ACLR +reset => burst_uncompress_address_offset[11].ACLR +reset => burst_uncompress_address_offset[12].ACLR +reset => burst_uncompress_address_offset[13].ACLR +reset => burst_uncompress_address_offset[14].ACLR +reset => burst_uncompress_address_offset[15].ACLR +reset => burst_uncompress_address_offset[16].ACLR +reset => burst_uncompress_address_offset[17].ACLR +reset => burst_uncompress_address_offset[18].ACLR +reset => burst_uncompress_address_base[0].ACLR +reset => burst_uncompress_address_base[1].ACLR +reset => burst_uncompress_address_base[2].ACLR +reset => burst_uncompress_address_base[3].ACLR +reset => burst_uncompress_address_base[4].ACLR +reset => burst_uncompress_address_base[5].ACLR +reset => burst_uncompress_address_base[6].ACLR +reset => burst_uncompress_address_base[7].ACLR +reset => burst_uncompress_address_base[8].ACLR +reset => burst_uncompress_address_base[9].ACLR +reset => burst_uncompress_address_base[10].ACLR +reset => burst_uncompress_address_base[11].ACLR +reset => burst_uncompress_address_base[12].ACLR +reset => burst_uncompress_address_base[13].ACLR +reset => burst_uncompress_address_base[14].ACLR +reset => burst_uncompress_address_base[15].ACLR +reset => burst_uncompress_address_base[16].ACLR +reset => burst_uncompress_address_base[17].ACLR +reset => burst_uncompress_address_base[18].ACLR +reset => burst_uncompress_byte_counter[0].ACLR +reset => burst_uncompress_byte_counter[1].ACLR +reset => burst_uncompress_byte_counter[2].ACLR +reset => burst_uncompress_busy.ACLR +sink_startofpacket => source_startofpacket.IN1 +sink_endofpacket => source_endofpacket.IN1 +sink_valid => first_packet_beat.IN1 +sink_valid => last_packet_beat.IN1 +sink_valid => last_packet_beat.IN1 +sink_valid => always0.IN1 +sink_valid => sink_ready.IN0 +sink_valid => source_valid.DATAIN +sink_ready <= sink_ready.DB_MAX_OUTPUT_PORT_TYPE +sink_addr[0] => burst_uncompress_address_base.IN0 +sink_addr[0] => comb.DATAB +sink_addr[0] => source_addr.DATAB +sink_addr[1] => burst_uncompress_address_base.IN0 +sink_addr[1] => comb.DATAB +sink_addr[1] => source_addr.DATAB +sink_addr[2] => burst_uncompress_address_base.IN0 +sink_addr[2] => comb.DATAB +sink_addr[2] => source_addr.DATAB +sink_addr[3] => burst_uncompress_address_base.IN0 +sink_addr[3] => comb.DATAB +sink_addr[3] => source_addr.DATAB +sink_addr[4] => burst_uncompress_address_base.IN0 +sink_addr[4] => comb.DATAB +sink_addr[4] => source_addr.DATAB +sink_addr[5] => burst_uncompress_address_base.IN0 +sink_addr[5] => comb.DATAB +sink_addr[5] => source_addr.DATAB +sink_addr[6] => burst_uncompress_address_base.IN0 +sink_addr[6] => comb.DATAB +sink_addr[6] => source_addr.DATAB +sink_addr[7] => burst_uncompress_address_base.IN0 +sink_addr[7] => comb.DATAB +sink_addr[7] => source_addr.DATAB +sink_addr[8] => burst_uncompress_address_base.IN0 +sink_addr[8] => comb.DATAB +sink_addr[8] => source_addr.DATAB +sink_addr[9] => burst_uncompress_address_base.IN0 +sink_addr[9] => comb.DATAB +sink_addr[9] => source_addr.DATAB +sink_addr[10] => burst_uncompress_address_base.IN0 +sink_addr[10] => comb.DATAB +sink_addr[10] => source_addr.DATAB +sink_addr[11] => burst_uncompress_address_base.IN0 +sink_addr[11] => comb.DATAB +sink_addr[11] => source_addr.DATAB +sink_addr[12] => burst_uncompress_address_base.IN0 +sink_addr[12] => comb.DATAB +sink_addr[12] => source_addr.DATAB +sink_addr[13] => burst_uncompress_address_base.IN0 +sink_addr[13] => comb.DATAB +sink_addr[13] => source_addr.DATAB +sink_addr[14] => burst_uncompress_address_base.IN0 +sink_addr[14] => comb.DATAB +sink_addr[14] => source_addr.DATAB +sink_addr[15] => burst_uncompress_address_base.IN0 +sink_addr[15] => comb.DATAB +sink_addr[15] => source_addr.DATAB +sink_addr[16] => burst_uncompress_address_base.IN0 +sink_addr[16] => comb.DATAB +sink_addr[16] => source_addr.DATAB +sink_addr[17] => burst_uncompress_address_base.IN0 +sink_addr[17] => comb.DATAB +sink_addr[17] => source_addr.DATAB +sink_addr[18] => burst_uncompress_address_base.IN0 +sink_addr[18] => comb.DATAB +sink_addr[18] => source_addr.DATAB +sink_burstwrap[0] => p1_burst_uncompress_address_offset[0].IN1 +sink_burstwrap[0] => source_burstwrap[0].DATAIN +sink_burstwrap[0] => burst_uncompress_address_base.IN1 +sink_burstwrap[1] => p1_burst_uncompress_address_offset[1].IN1 +sink_burstwrap[1] => source_burstwrap[1].DATAIN +sink_burstwrap[1] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[2].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[18].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[17].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[16].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[15].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[14].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[13].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[12].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[11].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[10].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[9].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[8].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[7].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[6].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[5].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[4].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[3].IN1 +sink_burstwrap[2] => source_burstwrap[2].DATAIN +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_byte_cnt[0] => source_byte_cnt.DATAB +sink_byte_cnt[0] => Add1.IN6 +sink_byte_cnt[0] => Equal1.IN2 +sink_byte_cnt[1] => source_byte_cnt.DATAB +sink_byte_cnt[1] => Add1.IN5 +sink_byte_cnt[1] => Equal1.IN1 +sink_byte_cnt[2] => source_byte_cnt.DATAB +sink_byte_cnt[2] => Add1.IN4 +sink_byte_cnt[2] => Equal1.IN0 +sink_is_compressed => last_packet_beat.IN1 +sink_burstsize[0] => Decoder0.IN2 +sink_burstsize[0] => source_burstsize[0].DATAIN +sink_burstsize[1] => Decoder0.IN1 +sink_burstsize[1] => source_burstsize[1].DATAIN +sink_burstsize[2] => Decoder0.IN0 +sink_burstsize[2] => source_burstsize[2].DATAIN +source_startofpacket <= source_startofpacket.DB_MAX_OUTPUT_PORT_TYPE +source_endofpacket <= source_endofpacket.DB_MAX_OUTPUT_PORT_TYPE +source_valid <= sink_valid.DB_MAX_OUTPUT_PORT_TYPE +source_ready => always1.IN1 +source_ready => sink_ready.IN1 +source_addr[0] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[1] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[2] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[3] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[4] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[5] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[6] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[7] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[8] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[9] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[10] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[11] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[12] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[13] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[14] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[15] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[16] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[17] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[18] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_burstwrap[0] <= sink_burstwrap[0].DB_MAX_OUTPUT_PORT_TYPE +source_burstwrap[1] <= sink_burstwrap[1].DB_MAX_OUTPUT_PORT_TYPE +source_burstwrap[2] <= sink_burstwrap[2].DB_MAX_OUTPUT_PORT_TYPE +source_byte_cnt[0] <= source_byte_cnt.DB_MAX_OUTPUT_PORT_TYPE +source_byte_cnt[1] <= source_byte_cnt.DB_MAX_OUTPUT_PORT_TYPE +source_byte_cnt[2] <= source_byte_cnt.DB_MAX_OUTPUT_PORT_TYPE +source_is_compressed <= +source_burstsize[0] <= sink_burstsize[0].DB_MAX_OUTPUT_PORT_TYPE +source_burstsize[1] <= sink_burstsize[1].DB_MAX_OUTPUT_PORT_TYPE +source_burstsize[2] <= sink_burstsize[2].DB_MAX_OUTPUT_PORT_TYPE + + +|lights|nios_system:NiosII|altera_avalon_sc_fifo:onchip_memory_s1_translator_avalon_universal_slave_0_agent_rsp_fifo +clk => csr_readdata[0]~reg0.CLK +clk => csr_readdata[1]~reg0.CLK +clk => csr_readdata[2]~reg0.CLK +clk => csr_readdata[3]~reg0.CLK +clk => csr_readdata[4]~reg0.CLK +clk => csr_readdata[5]~reg0.CLK +clk => csr_readdata[6]~reg0.CLK +clk => csr_readdata[7]~reg0.CLK +clk => csr_readdata[8]~reg0.CLK +clk => csr_readdata[9]~reg0.CLK +clk => csr_readdata[10]~reg0.CLK +clk => csr_readdata[11]~reg0.CLK +clk => csr_readdata[12]~reg0.CLK +clk => csr_readdata[13]~reg0.CLK +clk => csr_readdata[14]~reg0.CLK +clk => csr_readdata[15]~reg0.CLK +clk => csr_readdata[16]~reg0.CLK +clk => csr_readdata[17]~reg0.CLK +clk => csr_readdata[18]~reg0.CLK +clk => csr_readdata[19]~reg0.CLK +clk => csr_readdata[20]~reg0.CLK +clk => csr_readdata[21]~reg0.CLK +clk => csr_readdata[22]~reg0.CLK +clk => csr_readdata[23]~reg0.CLK +clk => csr_readdata[24]~reg0.CLK +clk => csr_readdata[25]~reg0.CLK +clk => csr_readdata[26]~reg0.CLK +clk => csr_readdata[27]~reg0.CLK +clk => csr_readdata[28]~reg0.CLK +clk => csr_readdata[29]~reg0.CLK +clk => csr_readdata[30]~reg0.CLK +clk => csr_readdata[31]~reg0.CLK +clk => mem_used[1].CLK +clk => mem_used[0].CLK +clk => mem[1][0].CLK +clk => mem[1][1].CLK +clk => mem[1][2].CLK +clk => mem[1][3].CLK +clk => mem[1][4].CLK +clk => mem[1][5].CLK +clk => mem[1][6].CLK +clk => mem[1][7].CLK +clk => mem[1][8].CLK +clk => mem[1][9].CLK +clk => mem[1][10].CLK +clk => mem[1][11].CLK +clk => mem[1][12].CLK +clk => mem[1][13].CLK +clk => mem[1][14].CLK +clk => mem[1][15].CLK +clk => mem[1][16].CLK +clk => mem[1][17].CLK +clk => mem[1][18].CLK +clk => mem[1][19].CLK +clk => mem[1][20].CLK +clk => mem[1][21].CLK +clk => mem[1][22].CLK +clk => mem[1][23].CLK +clk => mem[1][24].CLK +clk => mem[1][25].CLK +clk => mem[1][26].CLK +clk => mem[1][27].CLK +clk => mem[1][28].CLK +clk => mem[1][29].CLK +clk => mem[1][30].CLK +clk => mem[1][31].CLK +clk => mem[1][32].CLK +clk => mem[1][33].CLK +clk => mem[1][34].CLK +clk => mem[1][35].CLK +clk => mem[1][36].CLK +clk => mem[1][37].CLK +clk => mem[1][38].CLK +clk => mem[1][39].CLK +clk => mem[1][40].CLK +clk => mem[1][41].CLK +clk => mem[1][42].CLK +clk => mem[1][43].CLK +clk => mem[1][44].CLK +clk => mem[1][45].CLK +clk => mem[1][46].CLK +clk => mem[1][47].CLK +clk => mem[1][48].CLK +clk => mem[1][49].CLK +clk => mem[1][50].CLK +clk => mem[1][51].CLK +clk => mem[1][52].CLK +clk => mem[1][53].CLK +clk => mem[1][54].CLK +clk => mem[1][55].CLK +clk => mem[1][56].CLK +clk => mem[1][57].CLK +clk => mem[1][58].CLK +clk => mem[1][59].CLK +clk => mem[1][60].CLK +clk => mem[1][61].CLK +clk => mem[1][62].CLK +clk => mem[1][63].CLK +clk => mem[1][64].CLK +clk => mem[1][65].CLK +clk => mem[1][66].CLK +clk => mem[1][67].CLK +clk => mem[1][68].CLK +clk => mem[1][69].CLK +clk => mem[1][70].CLK +clk => mem[1][71].CLK +clk => mem[1][72].CLK +clk => mem[1][73].CLK +clk => mem[1][74].CLK +clk => mem[1][75].CLK +clk => mem[1][76].CLK +clk => mem[1][77].CLK +clk => mem[1][78].CLK +clk => mem[1][79].CLK +clk => mem[1][80].CLK +clk => mem[1][81].CLK +clk => mem[1][82].CLK +clk => mem[1][83].CLK +clk => mem[1][84].CLK +clk => mem[1][85].CLK +clk => mem[1][86].CLK +clk => mem[1][87].CLK +clk => mem[1][88].CLK +clk => mem[1][89].CLK +clk => mem[1][90].CLK +clk => mem[1][91].CLK +clk => mem[1][92].CLK +clk => mem[1][93].CLK +clk => mem[1][94].CLK +clk => mem[1][95].CLK +clk => mem[1][96].CLK +clk => mem[1][97].CLK +clk => mem[1][98].CLK +clk => mem[0][0].CLK +clk => mem[0][1].CLK +clk => mem[0][2].CLK +clk => mem[0][3].CLK +clk => mem[0][4].CLK +clk => mem[0][5].CLK +clk => mem[0][6].CLK +clk => mem[0][7].CLK +clk => mem[0][8].CLK +clk => mem[0][9].CLK +clk => mem[0][10].CLK +clk => mem[0][11].CLK +clk => mem[0][12].CLK +clk => mem[0][13].CLK +clk => mem[0][14].CLK +clk => mem[0][15].CLK +clk => mem[0][16].CLK +clk => mem[0][17].CLK +clk => mem[0][18].CLK +clk => mem[0][19].CLK +clk => mem[0][20].CLK +clk => mem[0][21].CLK +clk => mem[0][22].CLK +clk => mem[0][23].CLK +clk => mem[0][24].CLK +clk => mem[0][25].CLK +clk => mem[0][26].CLK +clk => mem[0][27].CLK +clk => mem[0][28].CLK +clk => mem[0][29].CLK +clk => mem[0][30].CLK +clk => mem[0][31].CLK +clk => mem[0][32].CLK +clk => mem[0][33].CLK +clk => mem[0][34].CLK +clk => mem[0][35].CLK +clk => mem[0][36].CLK +clk => mem[0][37].CLK +clk => mem[0][38].CLK +clk => mem[0][39].CLK +clk => mem[0][40].CLK +clk => mem[0][41].CLK +clk => mem[0][42].CLK +clk => mem[0][43].CLK +clk => mem[0][44].CLK +clk => mem[0][45].CLK +clk => mem[0][46].CLK +clk => mem[0][47].CLK +clk => mem[0][48].CLK +clk => mem[0][49].CLK +clk => mem[0][50].CLK +clk => mem[0][51].CLK +clk => mem[0][52].CLK +clk => mem[0][53].CLK +clk => mem[0][54].CLK +clk => mem[0][55].CLK +clk => mem[0][56].CLK +clk => mem[0][57].CLK +clk => mem[0][58].CLK +clk => mem[0][59].CLK +clk => mem[0][60].CLK +clk => mem[0][61].CLK +clk => mem[0][62].CLK +clk => mem[0][63].CLK +clk => mem[0][64].CLK +clk => mem[0][65].CLK +clk => mem[0][66].CLK +clk => mem[0][67].CLK +clk => mem[0][68].CLK +clk => mem[0][69].CLK +clk => mem[0][70].CLK +clk => mem[0][71].CLK +clk => mem[0][72].CLK +clk => mem[0][73].CLK +clk => mem[0][74].CLK +clk => mem[0][75].CLK +clk => mem[0][76].CLK +clk => mem[0][77].CLK +clk => mem[0][78].CLK +clk => mem[0][79].CLK +clk => mem[0][80].CLK +clk => mem[0][81].CLK +clk => mem[0][82].CLK +clk => mem[0][83].CLK +clk => mem[0][84].CLK +clk => mem[0][85].CLK +clk => mem[0][86].CLK +clk => mem[0][87].CLK +clk => mem[0][88].CLK +clk => mem[0][89].CLK +clk => mem[0][90].CLK +clk => mem[0][91].CLK +clk => mem[0][92].CLK +clk => mem[0][93].CLK +clk => mem[0][94].CLK +clk => mem[0][95].CLK +clk => mem[0][96].CLK +clk => mem[0][97].CLK +clk => mem[0][98].CLK +reset => csr_readdata[0]~reg0.ACLR +reset => csr_readdata[1]~reg0.ACLR +reset => csr_readdata[2]~reg0.ACLR +reset => csr_readdata[3]~reg0.ACLR +reset => csr_readdata[4]~reg0.ACLR +reset => csr_readdata[5]~reg0.ACLR +reset => csr_readdata[6]~reg0.ACLR +reset => csr_readdata[7]~reg0.ACLR +reset => csr_readdata[8]~reg0.ACLR +reset => csr_readdata[9]~reg0.ACLR +reset => csr_readdata[10]~reg0.ACLR +reset => csr_readdata[11]~reg0.ACLR +reset => csr_readdata[12]~reg0.ACLR +reset => csr_readdata[13]~reg0.ACLR +reset => csr_readdata[14]~reg0.ACLR +reset => csr_readdata[15]~reg0.ACLR +reset => csr_readdata[16]~reg0.ACLR +reset => csr_readdata[17]~reg0.ACLR +reset => csr_readdata[18]~reg0.ACLR +reset => csr_readdata[19]~reg0.ACLR +reset => csr_readdata[20]~reg0.ACLR +reset => csr_readdata[21]~reg0.ACLR +reset => csr_readdata[22]~reg0.ACLR +reset => csr_readdata[23]~reg0.ACLR +reset => csr_readdata[24]~reg0.ACLR +reset => csr_readdata[25]~reg0.ACLR +reset => csr_readdata[26]~reg0.ACLR +reset => csr_readdata[27]~reg0.ACLR +reset => csr_readdata[28]~reg0.ACLR +reset => csr_readdata[29]~reg0.ACLR +reset => csr_readdata[30]~reg0.ACLR +reset => csr_readdata[31]~reg0.ACLR +reset => mem_used[1].ACLR +reset => mem_used[0].ACLR +reset => mem[1][0].ACLR +reset => mem[1][1].ACLR +reset => mem[1][2].ACLR +reset => mem[1][3].ACLR +reset => mem[1][4].ACLR +reset => mem[1][5].ACLR +reset => mem[1][6].ACLR +reset => mem[1][7].ACLR +reset => mem[1][8].ACLR +reset => mem[1][9].ACLR +reset => mem[1][10].ACLR +reset => mem[1][11].ACLR +reset => mem[1][12].ACLR +reset => mem[1][13].ACLR +reset => mem[1][14].ACLR +reset => mem[1][15].ACLR +reset => mem[1][16].ACLR +reset => mem[1][17].ACLR +reset => mem[1][18].ACLR +reset => mem[1][19].ACLR +reset => mem[1][20].ACLR +reset => mem[1][21].ACLR +reset => mem[1][22].ACLR +reset => mem[1][23].ACLR +reset => mem[1][24].ACLR +reset => mem[1][25].ACLR +reset => mem[1][26].ACLR +reset => mem[1][27].ACLR +reset => mem[1][28].ACLR +reset => mem[1][29].ACLR +reset => mem[1][30].ACLR +reset => mem[1][31].ACLR +reset => mem[1][32].ACLR +reset => mem[1][33].ACLR +reset => mem[1][34].ACLR +reset => mem[1][35].ACLR +reset => mem[1][36].ACLR +reset => mem[1][37].ACLR +reset => mem[1][38].ACLR +reset => mem[1][39].ACLR +reset => mem[1][40].ACLR +reset => mem[1][41].ACLR +reset => mem[1][42].ACLR +reset => mem[1][43].ACLR +reset => mem[1][44].ACLR +reset => mem[1][45].ACLR +reset => mem[1][46].ACLR +reset => mem[1][47].ACLR +reset => mem[1][48].ACLR +reset => mem[1][49].ACLR +reset => mem[1][50].ACLR +reset => mem[1][51].ACLR +reset => mem[1][52].ACLR +reset => mem[1][53].ACLR +reset => mem[1][54].ACLR +reset => mem[1][55].ACLR +reset => mem[1][56].ACLR +reset => mem[1][57].ACLR +reset => mem[1][58].ACLR +reset => mem[1][59].ACLR +reset => mem[1][60].ACLR +reset => mem[1][61].ACLR +reset => mem[1][62].ACLR +reset => mem[1][63].ACLR +reset => mem[1][64].ACLR +reset => mem[1][65].ACLR +reset => mem[1][66].ACLR +reset => mem[1][67].ACLR +reset => mem[1][68].ACLR +reset => mem[1][69].ACLR +reset => mem[1][70].ACLR +reset => mem[1][71].ACLR +reset => mem[1][72].ACLR +reset => mem[1][73].ACLR +reset => mem[1][74].ACLR +reset => mem[1][75].ACLR +reset => mem[1][76].ACLR +reset => mem[1][77].ACLR +reset => mem[1][78].ACLR +reset => mem[1][79].ACLR +reset => mem[1][80].ACLR +reset => mem[1][81].ACLR +reset => mem[1][82].ACLR +reset => mem[1][83].ACLR +reset => mem[1][84].ACLR +reset => mem[1][85].ACLR +reset => mem[1][86].ACLR +reset => mem[1][87].ACLR +reset => mem[1][88].ACLR +reset => mem[1][89].ACLR +reset => mem[1][90].ACLR +reset => mem[1][91].ACLR +reset => mem[1][92].ACLR +reset => mem[1][93].ACLR +reset => mem[1][94].ACLR +reset => mem[1][95].ACLR +reset => mem[1][96].ACLR +reset => mem[1][97].ACLR +reset => mem[1][98].ACLR +reset => mem[0][0].ACLR +reset => mem[0][1].ACLR +reset => mem[0][2].ACLR +reset => mem[0][3].ACLR +reset => mem[0][4].ACLR +reset => mem[0][5].ACLR +reset => mem[0][6].ACLR +reset => mem[0][7].ACLR +reset => mem[0][8].ACLR +reset => mem[0][9].ACLR +reset => mem[0][10].ACLR +reset => mem[0][11].ACLR +reset => mem[0][12].ACLR +reset => mem[0][13].ACLR +reset => mem[0][14].ACLR +reset => mem[0][15].ACLR +reset => mem[0][16].ACLR +reset => mem[0][17].ACLR +reset => mem[0][18].ACLR +reset => mem[0][19].ACLR +reset => mem[0][20].ACLR +reset => mem[0][21].ACLR +reset => mem[0][22].ACLR +reset => mem[0][23].ACLR +reset => mem[0][24].ACLR +reset => mem[0][25].ACLR +reset => mem[0][26].ACLR +reset => mem[0][27].ACLR +reset => mem[0][28].ACLR +reset => mem[0][29].ACLR +reset => mem[0][30].ACLR +reset => mem[0][31].ACLR +reset => mem[0][32].ACLR +reset => mem[0][33].ACLR +reset => mem[0][34].ACLR +reset => mem[0][35].ACLR +reset => mem[0][36].ACLR +reset => mem[0][37].ACLR +reset => mem[0][38].ACLR +reset => mem[0][39].ACLR +reset => mem[0][40].ACLR +reset => mem[0][41].ACLR +reset => mem[0][42].ACLR +reset => mem[0][43].ACLR +reset => mem[0][44].ACLR +reset => mem[0][45].ACLR +reset => mem[0][46].ACLR +reset => mem[0][47].ACLR +reset => mem[0][48].ACLR +reset => mem[0][49].ACLR +reset => mem[0][50].ACLR +reset => mem[0][51].ACLR +reset => mem[0][52].ACLR +reset => mem[0][53].ACLR +reset => mem[0][54].ACLR +reset => mem[0][55].ACLR +reset => mem[0][56].ACLR +reset => mem[0][57].ACLR +reset => mem[0][58].ACLR +reset => mem[0][59].ACLR +reset => mem[0][60].ACLR +reset => mem[0][61].ACLR +reset => mem[0][62].ACLR +reset => mem[0][63].ACLR +reset => mem[0][64].ACLR +reset => mem[0][65].ACLR +reset => mem[0][66].ACLR +reset => mem[0][67].ACLR +reset => mem[0][68].ACLR +reset => mem[0][69].ACLR +reset => mem[0][70].ACLR +reset => mem[0][71].ACLR +reset => mem[0][72].ACLR +reset => mem[0][73].ACLR +reset => mem[0][74].ACLR +reset => mem[0][75].ACLR +reset => mem[0][76].ACLR +reset => mem[0][77].ACLR +reset => mem[0][78].ACLR +reset => mem[0][79].ACLR +reset => mem[0][80].ACLR +reset => mem[0][81].ACLR +reset => mem[0][82].ACLR +reset => mem[0][83].ACLR +reset => mem[0][84].ACLR +reset => mem[0][85].ACLR +reset => mem[0][86].ACLR +reset => mem[0][87].ACLR +reset => mem[0][88].ACLR +reset => mem[0][89].ACLR +reset => mem[0][90].ACLR +reset => mem[0][91].ACLR +reset => mem[0][92].ACLR +reset => mem[0][93].ACLR +reset => mem[0][94].ACLR +reset => mem[0][95].ACLR +reset => mem[0][96].ACLR +reset => mem[0][97].ACLR +reset => mem[0][98].ACLR +in_data[0] => mem.DATAB +in_data[1] => mem.DATAB +in_data[2] => mem.DATAB +in_data[3] => mem.DATAB +in_data[4] => mem.DATAB +in_data[5] => mem.DATAB +in_data[6] => mem.DATAB +in_data[7] => mem.DATAB +in_data[8] => mem.DATAB +in_data[9] => mem.DATAB +in_data[10] => mem.DATAB +in_data[11] => mem.DATAB +in_data[12] => mem.DATAB +in_data[13] => mem.DATAB +in_data[14] => mem.DATAB +in_data[15] => mem.DATAB +in_data[16] => mem.DATAB +in_data[17] => mem.DATAB +in_data[18] => mem.DATAB +in_data[19] => mem.DATAB +in_data[20] => mem.DATAB +in_data[21] => mem.DATAB +in_data[22] => mem.DATAB +in_data[23] => mem.DATAB +in_data[24] => mem.DATAB +in_data[25] => mem.DATAB +in_data[26] => mem.DATAB +in_data[27] => mem.DATAB +in_data[28] => mem.DATAB +in_data[29] => mem.DATAB +in_data[30] => mem.DATAB +in_data[31] => mem.DATAB +in_data[32] => mem.DATAB +in_data[33] => mem.DATAB +in_data[34] => mem.DATAB +in_data[35] => mem.DATAB +in_data[36] => mem.DATAB +in_data[37] => mem.DATAB +in_data[38] => mem.DATAB +in_data[39] => mem.DATAB +in_data[40] => mem.DATAB +in_data[41] => mem.DATAB +in_data[42] => mem.DATAB +in_data[43] => mem.DATAB +in_data[44] => mem.DATAB +in_data[45] => mem.DATAB +in_data[46] => mem.DATAB +in_data[47] => mem.DATAB +in_data[48] => mem.DATAB +in_data[49] => mem.DATAB +in_data[50] => mem.DATAB +in_data[51] => mem.DATAB +in_data[52] => mem.DATAB +in_data[53] => mem.DATAB +in_data[54] => mem.DATAB +in_data[55] => mem.DATAB +in_data[56] => mem.DATAB +in_data[57] => mem.DATAB +in_data[58] => mem.DATAB +in_data[59] => mem.DATAB +in_data[60] => mem.DATAB +in_data[61] => mem.DATAB +in_data[62] => mem.DATAB +in_data[63] => mem.DATAB +in_data[64] => mem.DATAB +in_data[65] => mem.DATAB +in_data[66] => mem.DATAB +in_data[67] => mem.DATAB +in_data[68] => mem.DATAB +in_data[69] => mem.DATAB +in_data[70] => mem.DATAB +in_data[71] => mem.DATAB +in_data[72] => mem.DATAB +in_data[73] => mem.DATAB +in_data[74] => mem.DATAB +in_data[75] => mem.DATAB +in_data[76] => mem.DATAB +in_data[77] => mem.DATAB +in_data[78] => mem.DATAB +in_data[79] => mem.DATAB +in_data[80] => mem.DATAB +in_data[81] => mem.DATAB +in_data[82] => mem.DATAB +in_data[83] => mem.DATAB +in_data[84] => mem.DATAB +in_data[85] => mem.DATAB +in_data[86] => mem.DATAB +in_data[87] => mem.DATAB +in_data[88] => mem.DATAB +in_data[89] => mem.DATAB +in_data[90] => mem.DATAB +in_data[91] => mem.DATAB +in_data[92] => mem.DATAB +in_data[93] => mem.DATAB +in_data[94] => mem.DATAB +in_data[95] => mem.DATAB +in_data[96] => mem.DATAB +in_valid => write.IN1 +in_startofpacket => mem.DATAB +in_endofpacket => mem.DATAB +in_empty[0] => ~NO_FANOUT~ +in_error[0] => out_error[0].DATAIN +in_error[0] => out_empty[0].DATAIN +in_channel[0] => out_channel[0].DATAIN +in_ready <= mem_used[1].DB_MAX_OUTPUT_PORT_TYPE +out_data[0] <= mem[0][0].DB_MAX_OUTPUT_PORT_TYPE +out_data[1] <= mem[0][1].DB_MAX_OUTPUT_PORT_TYPE +out_data[2] <= mem[0][2].DB_MAX_OUTPUT_PORT_TYPE +out_data[3] <= mem[0][3].DB_MAX_OUTPUT_PORT_TYPE +out_data[4] <= mem[0][4].DB_MAX_OUTPUT_PORT_TYPE +out_data[5] <= mem[0][5].DB_MAX_OUTPUT_PORT_TYPE +out_data[6] <= mem[0][6].DB_MAX_OUTPUT_PORT_TYPE +out_data[7] <= mem[0][7].DB_MAX_OUTPUT_PORT_TYPE +out_data[8] <= mem[0][8].DB_MAX_OUTPUT_PORT_TYPE +out_data[9] <= mem[0][9].DB_MAX_OUTPUT_PORT_TYPE +out_data[10] <= mem[0][10].DB_MAX_OUTPUT_PORT_TYPE +out_data[11] <= mem[0][11].DB_MAX_OUTPUT_PORT_TYPE +out_data[12] <= mem[0][12].DB_MAX_OUTPUT_PORT_TYPE +out_data[13] <= mem[0][13].DB_MAX_OUTPUT_PORT_TYPE +out_data[14] <= mem[0][14].DB_MAX_OUTPUT_PORT_TYPE +out_data[15] <= mem[0][15].DB_MAX_OUTPUT_PORT_TYPE +out_data[16] <= mem[0][16].DB_MAX_OUTPUT_PORT_TYPE +out_data[17] <= mem[0][17].DB_MAX_OUTPUT_PORT_TYPE +out_data[18] <= mem[0][18].DB_MAX_OUTPUT_PORT_TYPE +out_data[19] <= mem[0][19].DB_MAX_OUTPUT_PORT_TYPE +out_data[20] <= mem[0][20].DB_MAX_OUTPUT_PORT_TYPE +out_data[21] <= mem[0][21].DB_MAX_OUTPUT_PORT_TYPE +out_data[22] <= mem[0][22].DB_MAX_OUTPUT_PORT_TYPE +out_data[23] <= mem[0][23].DB_MAX_OUTPUT_PORT_TYPE +out_data[24] <= mem[0][24].DB_MAX_OUTPUT_PORT_TYPE +out_data[25] <= mem[0][25].DB_MAX_OUTPUT_PORT_TYPE +out_data[26] <= mem[0][26].DB_MAX_OUTPUT_PORT_TYPE +out_data[27] <= mem[0][27].DB_MAX_OUTPUT_PORT_TYPE +out_data[28] <= mem[0][28].DB_MAX_OUTPUT_PORT_TYPE +out_data[29] <= mem[0][29].DB_MAX_OUTPUT_PORT_TYPE +out_data[30] <= mem[0][30].DB_MAX_OUTPUT_PORT_TYPE +out_data[31] <= mem[0][31].DB_MAX_OUTPUT_PORT_TYPE +out_data[32] <= mem[0][32].DB_MAX_OUTPUT_PORT_TYPE +out_data[33] <= mem[0][33].DB_MAX_OUTPUT_PORT_TYPE +out_data[34] <= mem[0][34].DB_MAX_OUTPUT_PORT_TYPE +out_data[35] <= mem[0][35].DB_MAX_OUTPUT_PORT_TYPE +out_data[36] <= mem[0][36].DB_MAX_OUTPUT_PORT_TYPE +out_data[37] <= mem[0][37].DB_MAX_OUTPUT_PORT_TYPE +out_data[38] <= mem[0][38].DB_MAX_OUTPUT_PORT_TYPE +out_data[39] <= mem[0][39].DB_MAX_OUTPUT_PORT_TYPE +out_data[40] <= mem[0][40].DB_MAX_OUTPUT_PORT_TYPE +out_data[41] <= mem[0][41].DB_MAX_OUTPUT_PORT_TYPE +out_data[42] <= mem[0][42].DB_MAX_OUTPUT_PORT_TYPE +out_data[43] <= mem[0][43].DB_MAX_OUTPUT_PORT_TYPE +out_data[44] <= mem[0][44].DB_MAX_OUTPUT_PORT_TYPE +out_data[45] <= mem[0][45].DB_MAX_OUTPUT_PORT_TYPE +out_data[46] <= mem[0][46].DB_MAX_OUTPUT_PORT_TYPE +out_data[47] <= mem[0][47].DB_MAX_OUTPUT_PORT_TYPE +out_data[48] <= mem[0][48].DB_MAX_OUTPUT_PORT_TYPE +out_data[49] <= mem[0][49].DB_MAX_OUTPUT_PORT_TYPE +out_data[50] <= mem[0][50].DB_MAX_OUTPUT_PORT_TYPE +out_data[51] <= mem[0][51].DB_MAX_OUTPUT_PORT_TYPE +out_data[52] <= mem[0][52].DB_MAX_OUTPUT_PORT_TYPE +out_data[53] <= mem[0][53].DB_MAX_OUTPUT_PORT_TYPE +out_data[54] <= mem[0][54].DB_MAX_OUTPUT_PORT_TYPE +out_data[55] <= mem[0][55].DB_MAX_OUTPUT_PORT_TYPE +out_data[56] <= mem[0][56].DB_MAX_OUTPUT_PORT_TYPE +out_data[57] <= mem[0][57].DB_MAX_OUTPUT_PORT_TYPE +out_data[58] <= mem[0][58].DB_MAX_OUTPUT_PORT_TYPE +out_data[59] <= mem[0][59].DB_MAX_OUTPUT_PORT_TYPE +out_data[60] <= mem[0][60].DB_MAX_OUTPUT_PORT_TYPE +out_data[61] <= mem[0][61].DB_MAX_OUTPUT_PORT_TYPE +out_data[62] <= mem[0][62].DB_MAX_OUTPUT_PORT_TYPE +out_data[63] <= mem[0][63].DB_MAX_OUTPUT_PORT_TYPE +out_data[64] <= mem[0][64].DB_MAX_OUTPUT_PORT_TYPE +out_data[65] <= mem[0][65].DB_MAX_OUTPUT_PORT_TYPE +out_data[66] <= mem[0][66].DB_MAX_OUTPUT_PORT_TYPE +out_data[67] <= mem[0][67].DB_MAX_OUTPUT_PORT_TYPE +out_data[68] <= mem[0][68].DB_MAX_OUTPUT_PORT_TYPE +out_data[69] <= mem[0][69].DB_MAX_OUTPUT_PORT_TYPE +out_data[70] <= mem[0][70].DB_MAX_OUTPUT_PORT_TYPE +out_data[71] <= mem[0][71].DB_MAX_OUTPUT_PORT_TYPE +out_data[72] <= mem[0][72].DB_MAX_OUTPUT_PORT_TYPE +out_data[73] <= mem[0][73].DB_MAX_OUTPUT_PORT_TYPE +out_data[74] <= mem[0][74].DB_MAX_OUTPUT_PORT_TYPE +out_data[75] <= mem[0][75].DB_MAX_OUTPUT_PORT_TYPE +out_data[76] <= mem[0][76].DB_MAX_OUTPUT_PORT_TYPE +out_data[77] <= mem[0][77].DB_MAX_OUTPUT_PORT_TYPE +out_data[78] <= mem[0][78].DB_MAX_OUTPUT_PORT_TYPE +out_data[79] <= mem[0][79].DB_MAX_OUTPUT_PORT_TYPE +out_data[80] <= mem[0][80].DB_MAX_OUTPUT_PORT_TYPE +out_data[81] <= mem[0][81].DB_MAX_OUTPUT_PORT_TYPE +out_data[82] <= mem[0][82].DB_MAX_OUTPUT_PORT_TYPE +out_data[83] <= mem[0][83].DB_MAX_OUTPUT_PORT_TYPE +out_data[84] <= mem[0][84].DB_MAX_OUTPUT_PORT_TYPE +out_data[85] <= mem[0][85].DB_MAX_OUTPUT_PORT_TYPE +out_data[86] <= mem[0][86].DB_MAX_OUTPUT_PORT_TYPE +out_data[87] <= mem[0][87].DB_MAX_OUTPUT_PORT_TYPE +out_data[88] <= mem[0][88].DB_MAX_OUTPUT_PORT_TYPE +out_data[89] <= mem[0][89].DB_MAX_OUTPUT_PORT_TYPE +out_data[90] <= mem[0][90].DB_MAX_OUTPUT_PORT_TYPE +out_data[91] <= mem[0][91].DB_MAX_OUTPUT_PORT_TYPE +out_data[92] <= mem[0][92].DB_MAX_OUTPUT_PORT_TYPE +out_data[93] <= mem[0][93].DB_MAX_OUTPUT_PORT_TYPE +out_data[94] <= mem[0][94].DB_MAX_OUTPUT_PORT_TYPE +out_data[95] <= mem[0][95].DB_MAX_OUTPUT_PORT_TYPE +out_data[96] <= mem[0][96].DB_MAX_OUTPUT_PORT_TYPE +out_valid <= mem_used[0].DB_MAX_OUTPUT_PORT_TYPE +out_startofpacket <= mem[0][98].DB_MAX_OUTPUT_PORT_TYPE +out_endofpacket <= mem[0][97].DB_MAX_OUTPUT_PORT_TYPE +out_empty[0] <= in_error[0].DB_MAX_OUTPUT_PORT_TYPE +out_error[0] <= in_error[0].DB_MAX_OUTPUT_PORT_TYPE +out_channel[0] <= in_channel[0].DB_MAX_OUTPUT_PORT_TYPE +out_ready => internal_out_ready.IN1 +csr_address[0] => ~NO_FANOUT~ +csr_address[1] => ~NO_FANOUT~ +csr_write => ~NO_FANOUT~ +csr_read => csr_readdata[31]~reg0.ENA +csr_read => csr_readdata[30]~reg0.ENA +csr_read => csr_readdata[29]~reg0.ENA +csr_read => csr_readdata[28]~reg0.ENA +csr_read => csr_readdata[27]~reg0.ENA +csr_read => csr_readdata[26]~reg0.ENA +csr_read => csr_readdata[25]~reg0.ENA +csr_read => csr_readdata[24]~reg0.ENA +csr_read => csr_readdata[23]~reg0.ENA +csr_read => csr_readdata[22]~reg0.ENA +csr_read => csr_readdata[21]~reg0.ENA +csr_read => csr_readdata[20]~reg0.ENA +csr_read => csr_readdata[19]~reg0.ENA +csr_read => csr_readdata[18]~reg0.ENA +csr_read => csr_readdata[17]~reg0.ENA +csr_read => csr_readdata[16]~reg0.ENA +csr_read => csr_readdata[15]~reg0.ENA +csr_read => csr_readdata[14]~reg0.ENA +csr_read => csr_readdata[13]~reg0.ENA +csr_read => csr_readdata[12]~reg0.ENA +csr_read => csr_readdata[11]~reg0.ENA +csr_read => csr_readdata[10]~reg0.ENA +csr_read => csr_readdata[9]~reg0.ENA +csr_read => csr_readdata[8]~reg0.ENA +csr_read => csr_readdata[7]~reg0.ENA +csr_read => csr_readdata[6]~reg0.ENA +csr_read => csr_readdata[5]~reg0.ENA +csr_read => csr_readdata[4]~reg0.ENA +csr_read => csr_readdata[3]~reg0.ENA +csr_read => csr_readdata[2]~reg0.ENA +csr_read => csr_readdata[1]~reg0.ENA +csr_read => csr_readdata[0]~reg0.ENA +csr_writedata[0] => ~NO_FANOUT~ +csr_writedata[1] => ~NO_FANOUT~ +csr_writedata[2] => ~NO_FANOUT~ +csr_writedata[3] => ~NO_FANOUT~ +csr_writedata[4] => ~NO_FANOUT~ +csr_writedata[5] => ~NO_FANOUT~ +csr_writedata[6] => ~NO_FANOUT~ +csr_writedata[7] => ~NO_FANOUT~ +csr_writedata[8] => ~NO_FANOUT~ +csr_writedata[9] => ~NO_FANOUT~ +csr_writedata[10] => ~NO_FANOUT~ +csr_writedata[11] => ~NO_FANOUT~ +csr_writedata[12] => ~NO_FANOUT~ +csr_writedata[13] => ~NO_FANOUT~ +csr_writedata[14] => ~NO_FANOUT~ +csr_writedata[15] => ~NO_FANOUT~ +csr_writedata[16] => ~NO_FANOUT~ +csr_writedata[17] => ~NO_FANOUT~ +csr_writedata[18] => ~NO_FANOUT~ +csr_writedata[19] => ~NO_FANOUT~ +csr_writedata[20] => ~NO_FANOUT~ +csr_writedata[21] => ~NO_FANOUT~ +csr_writedata[22] => ~NO_FANOUT~ +csr_writedata[23] => ~NO_FANOUT~ +csr_writedata[24] => ~NO_FANOUT~ +csr_writedata[25] => ~NO_FANOUT~ +csr_writedata[26] => ~NO_FANOUT~ +csr_writedata[27] => ~NO_FANOUT~ +csr_writedata[28] => ~NO_FANOUT~ +csr_writedata[29] => ~NO_FANOUT~ +csr_writedata[30] => ~NO_FANOUT~ +csr_writedata[31] => ~NO_FANOUT~ +csr_readdata[0] <= csr_readdata[0]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[1] <= csr_readdata[1]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[2] <= csr_readdata[2]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[3] <= csr_readdata[3]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[4] <= csr_readdata[4]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[5] <= csr_readdata[5]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[6] <= csr_readdata[6]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[7] <= csr_readdata[7]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[8] <= csr_readdata[8]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[9] <= csr_readdata[9]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[10] <= csr_readdata[10]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[11] <= csr_readdata[11]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[12] <= csr_readdata[12]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[13] <= csr_readdata[13]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[14] <= csr_readdata[14]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[15] <= csr_readdata[15]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[16] <= csr_readdata[16]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[17] <= csr_readdata[17]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[18] <= csr_readdata[18]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[19] <= csr_readdata[19]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[20] <= csr_readdata[20]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[21] <= csr_readdata[21]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[22] <= csr_readdata[22]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[23] <= csr_readdata[23]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[24] <= csr_readdata[24]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[25] <= csr_readdata[25]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[26] <= csr_readdata[26]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[27] <= csr_readdata[27]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[28] <= csr_readdata[28]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[29] <= csr_readdata[29]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[30] <= csr_readdata[30]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[31] <= csr_readdata[31]~reg0.DB_MAX_OUTPUT_PORT_TYPE +almost_full_data <= +almost_empty_data <= + + +|lights|nios_system:NiosII|altera_merlin_slave_agent:leds_s1_translator_avalon_universal_slave_0_agent +clk => clk.IN1 +reset => reset.IN1 +m0_address[0] <= +m0_address[1] <= +m0_address[2] <= cp_data[38].DB_MAX_OUTPUT_PORT_TYPE +m0_address[3] <= cp_data[39].DB_MAX_OUTPUT_PORT_TYPE +m0_address[4] <= cp_data[40].DB_MAX_OUTPUT_PORT_TYPE +m0_address[5] <= cp_data[41].DB_MAX_OUTPUT_PORT_TYPE +m0_address[6] <= cp_data[42].DB_MAX_OUTPUT_PORT_TYPE +m0_address[7] <= cp_data[43].DB_MAX_OUTPUT_PORT_TYPE +m0_address[8] <= cp_data[44].DB_MAX_OUTPUT_PORT_TYPE +m0_address[9] <= cp_data[45].DB_MAX_OUTPUT_PORT_TYPE +m0_address[10] <= cp_data[46].DB_MAX_OUTPUT_PORT_TYPE +m0_address[11] <= cp_data[47].DB_MAX_OUTPUT_PORT_TYPE +m0_address[12] <= cp_data[48].DB_MAX_OUTPUT_PORT_TYPE +m0_address[13] <= cp_data[49].DB_MAX_OUTPUT_PORT_TYPE +m0_address[14] <= cp_data[50].DB_MAX_OUTPUT_PORT_TYPE +m0_address[15] <= cp_data[51].DB_MAX_OUTPUT_PORT_TYPE +m0_address[16] <= cp_data[52].DB_MAX_OUTPUT_PORT_TYPE +m0_address[17] <= cp_data[53].DB_MAX_OUTPUT_PORT_TYPE +m0_address[18] <= cp_data[54].DB_MAX_OUTPUT_PORT_TYPE +m0_burstcount[0] <= m0_burstcount.DB_MAX_OUTPUT_PORT_TYPE +m0_burstcount[1] <= m0_burstcount.DB_MAX_OUTPUT_PORT_TYPE +m0_burstcount[2] <= m0_burstcount.DB_MAX_OUTPUT_PORT_TYPE +m0_byteenable[0] <= cp_data[32].DB_MAX_OUTPUT_PORT_TYPE +m0_byteenable[1] <= cp_data[33].DB_MAX_OUTPUT_PORT_TYPE +m0_byteenable[2] <= cp_data[34].DB_MAX_OUTPUT_PORT_TYPE +m0_byteenable[3] <= cp_data[35].DB_MAX_OUTPUT_PORT_TYPE +m0_read <= m0_read.DB_MAX_OUTPUT_PORT_TYPE +m0_readdata[0] => rdata_fifo_src_data[0].DATAIN +m0_readdata[1] => rdata_fifo_src_data[1].DATAIN +m0_readdata[2] => rdata_fifo_src_data[2].DATAIN +m0_readdata[3] => rdata_fifo_src_data[3].DATAIN +m0_readdata[4] => rdata_fifo_src_data[4].DATAIN +m0_readdata[5] => rdata_fifo_src_data[5].DATAIN +m0_readdata[6] => rdata_fifo_src_data[6].DATAIN +m0_readdata[7] => rdata_fifo_src_data[7].DATAIN +m0_readdata[8] => rdata_fifo_src_data[8].DATAIN +m0_readdata[9] => rdata_fifo_src_data[9].DATAIN +m0_readdata[10] => rdata_fifo_src_data[10].DATAIN +m0_readdata[11] => rdata_fifo_src_data[11].DATAIN +m0_readdata[12] => rdata_fifo_src_data[12].DATAIN +m0_readdata[13] => rdata_fifo_src_data[13].DATAIN +m0_readdata[14] => rdata_fifo_src_data[14].DATAIN +m0_readdata[15] => rdata_fifo_src_data[15].DATAIN +m0_readdata[16] => rdata_fifo_src_data[16].DATAIN +m0_readdata[17] => rdata_fifo_src_data[17].DATAIN +m0_readdata[18] => rdata_fifo_src_data[18].DATAIN +m0_readdata[19] => rdata_fifo_src_data[19].DATAIN +m0_readdata[20] => rdata_fifo_src_data[20].DATAIN +m0_readdata[21] => rdata_fifo_src_data[21].DATAIN +m0_readdata[22] => rdata_fifo_src_data[22].DATAIN +m0_readdata[23] => rdata_fifo_src_data[23].DATAIN +m0_readdata[24] => rdata_fifo_src_data[24].DATAIN +m0_readdata[25] => rdata_fifo_src_data[25].DATAIN +m0_readdata[26] => rdata_fifo_src_data[26].DATAIN +m0_readdata[27] => rdata_fifo_src_data[27].DATAIN +m0_readdata[28] => rdata_fifo_src_data[28].DATAIN +m0_readdata[29] => rdata_fifo_src_data[29].DATAIN +m0_readdata[30] => rdata_fifo_src_data[30].DATAIN +m0_readdata[31] => rdata_fifo_src_data[31].DATAIN +m0_waitrequest => cp_ready.IN0 +m0_write <= m0_write.DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[0] <= cp_data[0].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[1] <= cp_data[1].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[2] <= cp_data[2].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[3] <= cp_data[3].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[4] <= cp_data[4].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[5] <= cp_data[5].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[6] <= cp_data[6].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[7] <= cp_data[7].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[8] <= cp_data[8].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[9] <= cp_data[9].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[10] <= cp_data[10].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[11] <= cp_data[11].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[12] <= cp_data[12].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[13] <= cp_data[13].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[14] <= cp_data[14].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[15] <= cp_data[15].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[16] <= cp_data[16].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[17] <= cp_data[17].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[18] <= cp_data[18].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[19] <= cp_data[19].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[20] <= cp_data[20].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[21] <= cp_data[21].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[22] <= cp_data[22].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[23] <= cp_data[23].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[24] <= cp_data[24].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[25] <= cp_data[25].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[26] <= cp_data[26].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[27] <= cp_data[27].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[28] <= cp_data[28].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[29] <= cp_data[29].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[30] <= cp_data[30].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[31] <= cp_data[31].DB_MAX_OUTPUT_PORT_TYPE +m0_readdatavalid => rdata_fifo_src_valid.IN0 +m0_debugaccess <= cp_data[87].DB_MAX_OUTPUT_PORT_TYPE +m0_lock <= m0_lock.DB_MAX_OUTPUT_PORT_TYPE +m0_response[0] => rdata_fifo_src_data[32].DATAIN +m0_response[1] => rdata_fifo_src_data[33].DATAIN +m0_writeresponserequest <= m0_writeresponserequest.DB_MAX_OUTPUT_PORT_TYPE +m0_writeresponsevalid => rdata_fifo_src_valid.IN1 +rf_source_data[0] <= +rf_source_data[1] <= +rf_source_data[2] <= +rf_source_data[3] <= +rf_source_data[4] <= +rf_source_data[5] <= +rf_source_data[6] <= +rf_source_data[7] <= +rf_source_data[8] <= +rf_source_data[9] <= +rf_source_data[10] <= +rf_source_data[11] <= +rf_source_data[12] <= +rf_source_data[13] <= +rf_source_data[14] <= +rf_source_data[15] <= +rf_source_data[16] <= +rf_source_data[17] <= +rf_source_data[18] <= +rf_source_data[19] <= +rf_source_data[20] <= +rf_source_data[21] <= +rf_source_data[22] <= +rf_source_data[23] <= +rf_source_data[24] <= +rf_source_data[25] <= +rf_source_data[26] <= +rf_source_data[27] <= +rf_source_data[28] <= +rf_source_data[29] <= +rf_source_data[30] <= +rf_source_data[31] <= +rf_source_data[32] <= cp_data[32].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[33] <= cp_data[33].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[34] <= cp_data[34].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[35] <= cp_data[35].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[36] <= cp_data[36].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[37] <= cp_data[37].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[38] <= cp_data[38].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[39] <= cp_data[39].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[40] <= cp_data[40].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[41] <= cp_data[41].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[42] <= cp_data[42].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[43] <= cp_data[43].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[44] <= cp_data[44].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[45] <= cp_data[45].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[46] <= cp_data[46].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[47] <= cp_data[47].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[48] <= cp_data[48].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[49] <= cp_data[49].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[50] <= cp_data[50].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[51] <= cp_data[51].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[52] <= cp_data[52].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[53] <= cp_data[53].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[54] <= cp_data[54].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[55] <= cp_data[55].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[56] <= cp_data[56].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[57] <= cp_data[57].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[58] <= cp_data[58].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[59] <= cp_data[59].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[60] <= cp_data[60].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[61] <= cp_data[61].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[62] <= cp_data[62].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[63] <= cp_data[63].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[64] <= cp_data[64].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[65] <= cp_data[65].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[66] <= cp_data[66].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[67] <= cp_data[67].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[68] <= cp_data[68].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[69] <= cp_data[69].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[70] <= cp_data[70].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[71] <= cp_data[71].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[72] <= cp_data[72].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[73] <= cp_data[73].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[74] <= cp_data[74].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[75] <= cp_data[75].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[76] <= cp_data[76].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[77] <= cp_data[77].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[78] <= cp_data[78].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[79] <= cp_data[79].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[80] <= cp_data[80].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[81] <= cp_data[81].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[82] <= cp_data[82].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[83] <= cp_data[83].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[84] <= cp_data[84].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[85] <= cp_data[85].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[86] <= cp_data[86].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[87] <= cp_data[87].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[88] <= +rf_source_data[89] <= +rf_source_data[90] <= cp_data[90].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[91] <= cp_data[91].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[92] <= cp_data[92].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[93] <= cp_data[93].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[94] <= cp_data[94].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[95] <= cp_data[95].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[96] <= nonposted_write_endofpacket.DB_MAX_OUTPUT_PORT_TYPE +rf_source_valid <= rf_source_valid.DB_MAX_OUTPUT_PORT_TYPE +rf_source_startofpacket <= cp_startofpacket.DB_MAX_OUTPUT_PORT_TYPE +rf_source_endofpacket <= cp_endofpacket.DB_MAX_OUTPUT_PORT_TYPE +rf_source_ready => cp_ready.IN1 +rf_source_ready => m0_write.IN1 +rf_source_ready => m0_lock.IN1 +rf_source_ready => rf_source_valid.IN1 +rf_source_ready => m0_read.IN1 +rf_sink_data[0] => ~NO_FANOUT~ +rf_sink_data[1] => ~NO_FANOUT~ +rf_sink_data[2] => ~NO_FANOUT~ +rf_sink_data[3] => ~NO_FANOUT~ +rf_sink_data[4] => ~NO_FANOUT~ +rf_sink_data[5] => ~NO_FANOUT~ +rf_sink_data[6] => ~NO_FANOUT~ +rf_sink_data[7] => ~NO_FANOUT~ +rf_sink_data[8] => ~NO_FANOUT~ +rf_sink_data[9] => ~NO_FANOUT~ +rf_sink_data[10] => ~NO_FANOUT~ +rf_sink_data[11] => ~NO_FANOUT~ +rf_sink_data[12] => ~NO_FANOUT~ +rf_sink_data[13] => ~NO_FANOUT~ +rf_sink_data[14] => ~NO_FANOUT~ +rf_sink_data[15] => ~NO_FANOUT~ +rf_sink_data[16] => ~NO_FANOUT~ +rf_sink_data[17] => ~NO_FANOUT~ +rf_sink_data[18] => ~NO_FANOUT~ +rf_sink_data[19] => ~NO_FANOUT~ +rf_sink_data[20] => ~NO_FANOUT~ +rf_sink_data[21] => ~NO_FANOUT~ +rf_sink_data[22] => ~NO_FANOUT~ +rf_sink_data[23] => ~NO_FANOUT~ +rf_sink_data[24] => ~NO_FANOUT~ +rf_sink_data[25] => ~NO_FANOUT~ +rf_sink_data[26] => ~NO_FANOUT~ +rf_sink_data[27] => ~NO_FANOUT~ +rf_sink_data[28] => ~NO_FANOUT~ +rf_sink_data[29] => ~NO_FANOUT~ +rf_sink_data[30] => ~NO_FANOUT~ +rf_sink_data[31] => ~NO_FANOUT~ +rf_sink_data[32] => rp_data[32].DATAIN +rf_sink_data[33] => rp_data[33].DATAIN +rf_sink_data[34] => rp_data[34].DATAIN +rf_sink_data[35] => rp_data[35].DATAIN +rf_sink_data[36] => rf_sink_addr[0].IN1 +rf_sink_data[37] => rf_sink_addr[1].IN1 +rf_sink_data[38] => rf_sink_addr[2].IN1 +rf_sink_data[39] => rf_sink_addr[3].IN1 +rf_sink_data[40] => rf_sink_addr[4].IN1 +rf_sink_data[41] => rf_sink_addr[5].IN1 +rf_sink_data[42] => rf_sink_addr[6].IN1 +rf_sink_data[43] => rf_sink_addr[7].IN1 +rf_sink_data[44] => rf_sink_addr[8].IN1 +rf_sink_data[45] => rf_sink_addr[9].IN1 +rf_sink_data[46] => rf_sink_addr[10].IN1 +rf_sink_data[47] => rf_sink_addr[11].IN1 +rf_sink_data[48] => rf_sink_addr[12].IN1 +rf_sink_data[49] => rf_sink_addr[13].IN1 +rf_sink_data[50] => rf_sink_addr[14].IN1 +rf_sink_data[51] => rf_sink_addr[15].IN1 +rf_sink_data[52] => rf_sink_addr[16].IN1 +rf_sink_data[53] => rf_sink_addr[17].IN1 +rf_sink_data[54] => rf_sink_addr[18].IN1 +rf_sink_data[55] => rf_sink_compressed.IN1 +rf_sink_data[56] => rp_data[56].DATAIN +rf_sink_data[57] => comb.OUTPUTSELECT +rf_sink_data[57] => rp_data[57].DATAIN +rf_sink_data[58] => rp_data.IN0 +rf_sink_data[59] => rp_data[59].DATAIN +rf_sink_data[60] => rp_data[60].DATAIN +rf_sink_data[61] => rf_sink_byte_cnt[0].IN1 +rf_sink_data[62] => rf_sink_byte_cnt[1].IN1 +rf_sink_data[63] => rf_sink_byte_cnt[2].IN1 +rf_sink_data[64] => rf_sink_burstwrap[0].IN1 +rf_sink_data[65] => rf_sink_burstwrap[1].IN1 +rf_sink_data[66] => rf_sink_burstwrap[2].IN1 +rf_sink_data[67] => rf_sink_burstsize[0].IN1 +rf_sink_data[68] => rf_sink_burstsize[1].IN1 +rf_sink_data[69] => rf_sink_burstsize[2].IN1 +rf_sink_data[70] => rp_data[70].DATAIN +rf_sink_data[71] => rp_data[71].DATAIN +rf_sink_data[72] => rp_data[72].DATAIN +rf_sink_data[73] => rp_data[73].DATAIN +rf_sink_data[74] => rp_data[74].DATAIN +rf_sink_data[75] => rp_data[75].DATAIN +rf_sink_data[76] => rp_data[81].DATAIN +rf_sink_data[77] => rp_data[82].DATAIN +rf_sink_data[78] => rp_data[83].DATAIN +rf_sink_data[79] => rp_data[84].DATAIN +rf_sink_data[80] => rp_data[85].DATAIN +rf_sink_data[81] => rp_data[76].DATAIN +rf_sink_data[82] => rp_data[77].DATAIN +rf_sink_data[83] => rp_data[78].DATAIN +rf_sink_data[84] => rp_data[79].DATAIN +rf_sink_data[85] => rp_data[80].DATAIN +rf_sink_data[86] => rp_data[86].DATAIN +rf_sink_data[87] => rp_data[87].DATAIN +rf_sink_data[88] => rp_data[88].DATAIN +rf_sink_data[89] => rp_data[89].DATAIN +rf_sink_data[90] => rp_data[90].DATAIN +rf_sink_data[91] => rp_data[91].DATAIN +rf_sink_data[92] => rp_data[92].DATAIN +rf_sink_data[93] => rp_data[93].DATAIN +rf_sink_data[94] => ~NO_FANOUT~ +rf_sink_data[95] => ~NO_FANOUT~ +rf_sink_data[96] => rdata_fifo_sink_ready.IN0 +rf_sink_data[96] => comb.IN0 +rf_sink_valid => rdata_fifo_sink_ready.IN1 +rf_sink_valid => comb.IN1 +rf_sink_startofpacket => comb.DATAA +rf_sink_endofpacket => rf_sink_endofpacket.IN1 +rf_sink_ready <= altera_merlin_burst_uncompressor:uncompressor.sink_ready +rdata_fifo_src_data[0] <= m0_readdata[0].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[1] <= m0_readdata[1].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[2] <= m0_readdata[2].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[3] <= m0_readdata[3].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[4] <= m0_readdata[4].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[5] <= m0_readdata[5].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[6] <= m0_readdata[6].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[7] <= m0_readdata[7].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[8] <= m0_readdata[8].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[9] <= m0_readdata[9].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[10] <= m0_readdata[10].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[11] <= m0_readdata[11].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[12] <= m0_readdata[12].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[13] <= m0_readdata[13].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[14] <= m0_readdata[14].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[15] <= m0_readdata[15].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[16] <= m0_readdata[16].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[17] <= m0_readdata[17].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[18] <= m0_readdata[18].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[19] <= m0_readdata[19].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[20] <= m0_readdata[20].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[21] <= m0_readdata[21].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[22] <= m0_readdata[22].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[23] <= m0_readdata[23].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[24] <= m0_readdata[24].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[25] <= m0_readdata[25].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[26] <= m0_readdata[26].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[27] <= m0_readdata[27].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[28] <= m0_readdata[28].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[29] <= m0_readdata[29].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[30] <= m0_readdata[30].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[31] <= m0_readdata[31].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[32] <= m0_response[0].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[33] <= m0_response[1].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_valid <= rdata_fifo_src_valid.DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_ready => ~NO_FANOUT~ +rdata_fifo_sink_data[0] => rp_data[0].DATAIN +rdata_fifo_sink_data[1] => rp_data[1].DATAIN +rdata_fifo_sink_data[2] => rp_data[2].DATAIN +rdata_fifo_sink_data[3] => rp_data[3].DATAIN +rdata_fifo_sink_data[4] => rp_data[4].DATAIN +rdata_fifo_sink_data[5] => rp_data[5].DATAIN +rdata_fifo_sink_data[6] => rp_data[6].DATAIN +rdata_fifo_sink_data[7] => rp_data[7].DATAIN +rdata_fifo_sink_data[8] => rp_data[8].DATAIN +rdata_fifo_sink_data[9] => rp_data[9].DATAIN +rdata_fifo_sink_data[10] => rp_data[10].DATAIN +rdata_fifo_sink_data[11] => rp_data[11].DATAIN +rdata_fifo_sink_data[12] => rp_data[12].DATAIN +rdata_fifo_sink_data[13] => rp_data[13].DATAIN +rdata_fifo_sink_data[14] => rp_data[14].DATAIN +rdata_fifo_sink_data[15] => rp_data[15].DATAIN +rdata_fifo_sink_data[16] => rp_data[16].DATAIN +rdata_fifo_sink_data[17] => rp_data[17].DATAIN +rdata_fifo_sink_data[18] => rp_data[18].DATAIN +rdata_fifo_sink_data[19] => rp_data[19].DATAIN +rdata_fifo_sink_data[20] => rp_data[20].DATAIN +rdata_fifo_sink_data[21] => rp_data[21].DATAIN +rdata_fifo_sink_data[22] => rp_data[22].DATAIN +rdata_fifo_sink_data[23] => rp_data[23].DATAIN +rdata_fifo_sink_data[24] => rp_data[24].DATAIN +rdata_fifo_sink_data[25] => rp_data[25].DATAIN +rdata_fifo_sink_data[26] => rp_data[26].DATAIN +rdata_fifo_sink_data[27] => rp_data[27].DATAIN +rdata_fifo_sink_data[28] => rp_data[28].DATAIN +rdata_fifo_sink_data[29] => rp_data[29].DATAIN +rdata_fifo_sink_data[30] => rp_data[30].DATAIN +rdata_fifo_sink_data[31] => rp_data[31].DATAIN +rdata_fifo_sink_data[32] => rp_data[94].DATAIN +rdata_fifo_sink_data[33] => rp_data[95].DATAIN +rdata_fifo_sink_valid => rp_valid.IN1 +rdata_fifo_sink_valid => rdata_fifo_sink_ready.IN0 +rdata_fifo_sink_valid => comb.IN1 +rdata_fifo_sink_ready <= rdata_fifo_sink_ready.DB_MAX_OUTPUT_PORT_TYPE +cp_ready <= cp_ready.DB_MAX_OUTPUT_PORT_TYPE +cp_valid => local_lock.IN0 +cp_valid => local_write.IN0 +cp_valid => local_read.IN0 +cp_valid => local_compressed_read.IN0 +cp_data[0] => m0_writedata[0].DATAIN +cp_data[1] => m0_writedata[1].DATAIN +cp_data[2] => m0_writedata[2].DATAIN +cp_data[3] => m0_writedata[3].DATAIN +cp_data[4] => m0_writedata[4].DATAIN +cp_data[5] => m0_writedata[5].DATAIN +cp_data[6] => m0_writedata[6].DATAIN +cp_data[7] => m0_writedata[7].DATAIN +cp_data[8] => m0_writedata[8].DATAIN +cp_data[9] => m0_writedata[9].DATAIN +cp_data[10] => m0_writedata[10].DATAIN +cp_data[11] => m0_writedata[11].DATAIN +cp_data[12] => m0_writedata[12].DATAIN +cp_data[13] => m0_writedata[13].DATAIN +cp_data[14] => m0_writedata[14].DATAIN +cp_data[15] => m0_writedata[15].DATAIN +cp_data[16] => m0_writedata[16].DATAIN +cp_data[17] => m0_writedata[17].DATAIN +cp_data[18] => m0_writedata[18].DATAIN +cp_data[19] => m0_writedata[19].DATAIN +cp_data[20] => m0_writedata[20].DATAIN +cp_data[21] => m0_writedata[21].DATAIN +cp_data[22] => m0_writedata[22].DATAIN +cp_data[23] => m0_writedata[23].DATAIN +cp_data[24] => m0_writedata[24].DATAIN +cp_data[25] => m0_writedata[25].DATAIN +cp_data[26] => m0_writedata[26].DATAIN +cp_data[27] => m0_writedata[27].DATAIN +cp_data[28] => m0_writedata[28].DATAIN +cp_data[29] => m0_writedata[29].DATAIN +cp_data[30] => m0_writedata[30].DATAIN +cp_data[31] => m0_writedata[31].DATAIN +cp_data[32] => rf_source_data[32].DATAIN +cp_data[32] => m0_byteenable[0].DATAIN +cp_data[33] => rf_source_data[33].DATAIN +cp_data[33] => m0_byteenable[1].DATAIN +cp_data[34] => rf_source_data[34].DATAIN +cp_data[34] => m0_byteenable[2].DATAIN +cp_data[35] => rf_source_data[35].DATAIN +cp_data[35] => m0_byteenable[3].DATAIN +cp_data[36] => rf_source_data[36].DATAIN +cp_data[37] => rf_source_data[37].DATAIN +cp_data[38] => rf_source_data[38].DATAIN +cp_data[38] => m0_address[2].DATAIN +cp_data[39] => rf_source_data[39].DATAIN +cp_data[39] => m0_address[3].DATAIN +cp_data[40] => rf_source_data[40].DATAIN +cp_data[40] => m0_address[4].DATAIN +cp_data[41] => rf_source_data[41].DATAIN +cp_data[41] => m0_address[5].DATAIN +cp_data[42] => rf_source_data[42].DATAIN +cp_data[42] => m0_address[6].DATAIN +cp_data[43] => rf_source_data[43].DATAIN +cp_data[43] => m0_address[7].DATAIN +cp_data[44] => rf_source_data[44].DATAIN +cp_data[44] => m0_address[8].DATAIN +cp_data[45] => rf_source_data[45].DATAIN +cp_data[45] => m0_address[9].DATAIN +cp_data[46] => rf_source_data[46].DATAIN +cp_data[46] => m0_address[10].DATAIN +cp_data[47] => rf_source_data[47].DATAIN +cp_data[47] => m0_address[11].DATAIN +cp_data[48] => rf_source_data[48].DATAIN +cp_data[48] => m0_address[12].DATAIN +cp_data[49] => rf_source_data[49].DATAIN +cp_data[49] => m0_address[13].DATAIN +cp_data[50] => rf_source_data[50].DATAIN +cp_data[50] => m0_address[14].DATAIN +cp_data[51] => rf_source_data[51].DATAIN +cp_data[51] => m0_address[15].DATAIN +cp_data[52] => rf_source_data[52].DATAIN +cp_data[52] => m0_address[16].DATAIN +cp_data[53] => rf_source_data[53].DATAIN +cp_data[53] => m0_address[17].DATAIN +cp_data[54] => rf_source_data[54].DATAIN +cp_data[54] => m0_address[18].DATAIN +cp_data[55] => local_compressed_read.IN1 +cp_data[55] => rf_source_data[55].DATAIN +cp_data[56] => rf_source_data[56].DATAIN +cp_data[56] => m0_writeresponserequest.IN1 +cp_data[56] => comb.IN1 +cp_data[57] => local_write.IN1 +cp_data[57] => rf_source_data[57].DATAIN +cp_data[58] => local_read.IN1 +cp_data[58] => rf_source_data[58].DATAIN +cp_data[59] => local_lock.IN1 +cp_data[59] => rf_source_data[59].DATAIN +cp_data[60] => rf_source_data[60].DATAIN +cp_data[61] => m0_burstcount.DATAA +cp_data[61] => rf_source_data[61].DATAIN +cp_data[62] => m0_burstcount.DATAA +cp_data[62] => rf_source_data[62].DATAIN +cp_data[63] => m0_burstcount.DATAA +cp_data[63] => rf_source_data[63].DATAIN +cp_data[64] => rf_source_data[64].DATAIN +cp_data[65] => rf_source_data[65].DATAIN +cp_data[66] => rf_source_data[66].DATAIN +cp_data[67] => rf_source_data[67].DATAIN +cp_data[68] => rf_source_data[68].DATAIN +cp_data[69] => rf_source_data[69].DATAIN +cp_data[70] => rf_source_data[70].DATAIN +cp_data[71] => rf_source_data[71].DATAIN +cp_data[72] => rf_source_data[72].DATAIN +cp_data[73] => rf_source_data[73].DATAIN +cp_data[74] => rf_source_data[74].DATAIN +cp_data[75] => rf_source_data[75].DATAIN +cp_data[76] => rf_source_data[76].DATAIN +cp_data[77] => rf_source_data[77].DATAIN +cp_data[78] => rf_source_data[78].DATAIN +cp_data[79] => rf_source_data[79].DATAIN +cp_data[80] => rf_source_data[80].DATAIN +cp_data[81] => rf_source_data[81].DATAIN +cp_data[82] => rf_source_data[82].DATAIN +cp_data[83] => rf_source_data[83].DATAIN +cp_data[84] => rf_source_data[84].DATAIN +cp_data[85] => rf_source_data[85].DATAIN +cp_data[86] => rf_source_data[86].DATAIN +cp_data[87] => rf_source_data[87].DATAIN +cp_data[87] => m0_debugaccess.DATAIN +cp_data[88] => ~NO_FANOUT~ +cp_data[89] => ~NO_FANOUT~ +cp_data[90] => rf_source_data[90].DATAIN +cp_data[91] => rf_source_data[91].DATAIN +cp_data[92] => rf_source_data[92].DATAIN +cp_data[93] => rf_source_data[93].DATAIN +cp_data[94] => rf_source_data[94].DATAIN +cp_data[95] => rf_source_data[95].DATAIN +cp_channel[0] => ~NO_FANOUT~ +cp_channel[1] => ~NO_FANOUT~ +cp_channel[2] => ~NO_FANOUT~ +cp_channel[3] => ~NO_FANOUT~ +cp_channel[4] => ~NO_FANOUT~ +cp_channel[5] => ~NO_FANOUT~ +cp_channel[6] => ~NO_FANOUT~ +cp_channel[7] => ~NO_FANOUT~ +cp_channel[8] => ~NO_FANOUT~ +cp_channel[9] => ~NO_FANOUT~ +cp_channel[10] => ~NO_FANOUT~ +cp_channel[11] => ~NO_FANOUT~ +cp_channel[12] => ~NO_FANOUT~ +cp_channel[13] => ~NO_FANOUT~ +cp_channel[14] => ~NO_FANOUT~ +cp_channel[15] => ~NO_FANOUT~ +cp_channel[16] => ~NO_FANOUT~ +cp_channel[17] => ~NO_FANOUT~ +cp_startofpacket => rf_source_startofpacket.DATAIN +cp_endofpacket => nonposted_write_endofpacket.IN1 +cp_endofpacket => rf_source_endofpacket.DATAIN +rp_ready => rp_ready.IN1 +rp_valid <= rp_valid.DB_MAX_OUTPUT_PORT_TYPE +rp_data[0] <= rdata_fifo_sink_data[0].DB_MAX_OUTPUT_PORT_TYPE +rp_data[1] <= rdata_fifo_sink_data[1].DB_MAX_OUTPUT_PORT_TYPE +rp_data[2] <= rdata_fifo_sink_data[2].DB_MAX_OUTPUT_PORT_TYPE +rp_data[3] <= rdata_fifo_sink_data[3].DB_MAX_OUTPUT_PORT_TYPE +rp_data[4] <= rdata_fifo_sink_data[4].DB_MAX_OUTPUT_PORT_TYPE +rp_data[5] <= rdata_fifo_sink_data[5].DB_MAX_OUTPUT_PORT_TYPE +rp_data[6] <= rdata_fifo_sink_data[6].DB_MAX_OUTPUT_PORT_TYPE +rp_data[7] <= rdata_fifo_sink_data[7].DB_MAX_OUTPUT_PORT_TYPE +rp_data[8] <= rdata_fifo_sink_data[8].DB_MAX_OUTPUT_PORT_TYPE +rp_data[9] <= rdata_fifo_sink_data[9].DB_MAX_OUTPUT_PORT_TYPE +rp_data[10] <= rdata_fifo_sink_data[10].DB_MAX_OUTPUT_PORT_TYPE +rp_data[11] <= rdata_fifo_sink_data[11].DB_MAX_OUTPUT_PORT_TYPE +rp_data[12] <= rdata_fifo_sink_data[12].DB_MAX_OUTPUT_PORT_TYPE +rp_data[13] <= rdata_fifo_sink_data[13].DB_MAX_OUTPUT_PORT_TYPE +rp_data[14] <= rdata_fifo_sink_data[14].DB_MAX_OUTPUT_PORT_TYPE +rp_data[15] <= rdata_fifo_sink_data[15].DB_MAX_OUTPUT_PORT_TYPE +rp_data[16] <= rdata_fifo_sink_data[16].DB_MAX_OUTPUT_PORT_TYPE +rp_data[17] <= rdata_fifo_sink_data[17].DB_MAX_OUTPUT_PORT_TYPE +rp_data[18] <= rdata_fifo_sink_data[18].DB_MAX_OUTPUT_PORT_TYPE +rp_data[19] <= rdata_fifo_sink_data[19].DB_MAX_OUTPUT_PORT_TYPE +rp_data[20] <= rdata_fifo_sink_data[20].DB_MAX_OUTPUT_PORT_TYPE +rp_data[21] <= rdata_fifo_sink_data[21].DB_MAX_OUTPUT_PORT_TYPE +rp_data[22] <= rdata_fifo_sink_data[22].DB_MAX_OUTPUT_PORT_TYPE +rp_data[23] <= rdata_fifo_sink_data[23].DB_MAX_OUTPUT_PORT_TYPE +rp_data[24] <= rdata_fifo_sink_data[24].DB_MAX_OUTPUT_PORT_TYPE +rp_data[25] <= rdata_fifo_sink_data[25].DB_MAX_OUTPUT_PORT_TYPE +rp_data[26] <= rdata_fifo_sink_data[26].DB_MAX_OUTPUT_PORT_TYPE +rp_data[27] <= rdata_fifo_sink_data[27].DB_MAX_OUTPUT_PORT_TYPE +rp_data[28] <= rdata_fifo_sink_data[28].DB_MAX_OUTPUT_PORT_TYPE +rp_data[29] <= rdata_fifo_sink_data[29].DB_MAX_OUTPUT_PORT_TYPE +rp_data[30] <= rdata_fifo_sink_data[30].DB_MAX_OUTPUT_PORT_TYPE +rp_data[31] <= rdata_fifo_sink_data[31].DB_MAX_OUTPUT_PORT_TYPE +rp_data[32] <= rf_sink_data[32].DB_MAX_OUTPUT_PORT_TYPE +rp_data[33] <= rf_sink_data[33].DB_MAX_OUTPUT_PORT_TYPE +rp_data[34] <= rf_sink_data[34].DB_MAX_OUTPUT_PORT_TYPE +rp_data[35] <= rf_sink_data[35].DB_MAX_OUTPUT_PORT_TYPE +rp_data[36] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[37] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[38] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[39] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[40] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[41] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[42] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[43] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[44] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[45] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[46] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[47] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[48] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[49] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[50] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[51] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[52] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[53] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[54] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[55] <= altera_merlin_burst_uncompressor:uncompressor.source_is_compressed +rp_data[56] <= rf_sink_data[56].DB_MAX_OUTPUT_PORT_TYPE +rp_data[57] <= rf_sink_data[57].DB_MAX_OUTPUT_PORT_TYPE +rp_data[58] <= rp_data.DB_MAX_OUTPUT_PORT_TYPE +rp_data[59] <= rf_sink_data[59].DB_MAX_OUTPUT_PORT_TYPE +rp_data[60] <= rf_sink_data[60].DB_MAX_OUTPUT_PORT_TYPE +rp_data[61] <= altera_merlin_burst_uncompressor:uncompressor.source_byte_cnt +rp_data[62] <= altera_merlin_burst_uncompressor:uncompressor.source_byte_cnt +rp_data[63] <= altera_merlin_burst_uncompressor:uncompressor.source_byte_cnt +rp_data[64] <= altera_merlin_burst_uncompressor:uncompressor.source_burstwrap +rp_data[65] <= altera_merlin_burst_uncompressor:uncompressor.source_burstwrap +rp_data[66] <= altera_merlin_burst_uncompressor:uncompressor.source_burstwrap +rp_data[67] <= altera_merlin_burst_uncompressor:uncompressor.source_burstsize +rp_data[68] <= altera_merlin_burst_uncompressor:uncompressor.source_burstsize +rp_data[69] <= altera_merlin_burst_uncompressor:uncompressor.source_burstsize +rp_data[70] <= rf_sink_data[70].DB_MAX_OUTPUT_PORT_TYPE +rp_data[71] <= rf_sink_data[71].DB_MAX_OUTPUT_PORT_TYPE +rp_data[72] <= rf_sink_data[72].DB_MAX_OUTPUT_PORT_TYPE +rp_data[73] <= rf_sink_data[73].DB_MAX_OUTPUT_PORT_TYPE +rp_data[74] <= rf_sink_data[74].DB_MAX_OUTPUT_PORT_TYPE +rp_data[75] <= rf_sink_data[75].DB_MAX_OUTPUT_PORT_TYPE +rp_data[76] <= rf_sink_data[81].DB_MAX_OUTPUT_PORT_TYPE +rp_data[77] <= rf_sink_data[82].DB_MAX_OUTPUT_PORT_TYPE +rp_data[78] <= rf_sink_data[83].DB_MAX_OUTPUT_PORT_TYPE +rp_data[79] <= rf_sink_data[84].DB_MAX_OUTPUT_PORT_TYPE +rp_data[80] <= rf_sink_data[85].DB_MAX_OUTPUT_PORT_TYPE +rp_data[81] <= rf_sink_data[76].DB_MAX_OUTPUT_PORT_TYPE +rp_data[82] <= rf_sink_data[77].DB_MAX_OUTPUT_PORT_TYPE +rp_data[83] <= rf_sink_data[78].DB_MAX_OUTPUT_PORT_TYPE +rp_data[84] <= rf_sink_data[79].DB_MAX_OUTPUT_PORT_TYPE +rp_data[85] <= rf_sink_data[80].DB_MAX_OUTPUT_PORT_TYPE +rp_data[86] <= rf_sink_data[86].DB_MAX_OUTPUT_PORT_TYPE +rp_data[87] <= rf_sink_data[87].DB_MAX_OUTPUT_PORT_TYPE +rp_data[88] <= rf_sink_data[88].DB_MAX_OUTPUT_PORT_TYPE +rp_data[89] <= rf_sink_data[89].DB_MAX_OUTPUT_PORT_TYPE +rp_data[90] <= rf_sink_data[90].DB_MAX_OUTPUT_PORT_TYPE +rp_data[91] <= rf_sink_data[91].DB_MAX_OUTPUT_PORT_TYPE +rp_data[92] <= rf_sink_data[92].DB_MAX_OUTPUT_PORT_TYPE +rp_data[93] <= rf_sink_data[93].DB_MAX_OUTPUT_PORT_TYPE +rp_data[94] <= rdata_fifo_sink_data[32].DB_MAX_OUTPUT_PORT_TYPE +rp_data[95] <= rdata_fifo_sink_data[33].DB_MAX_OUTPUT_PORT_TYPE +rp_startofpacket <= altera_merlin_burst_uncompressor:uncompressor.source_startofpacket +rp_endofpacket <= altera_merlin_burst_uncompressor:uncompressor.source_endofpacket + + +|lights|nios_system:NiosII|altera_merlin_slave_agent:leds_s1_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor +clk => burst_uncompress_address_offset[0].CLK +clk => burst_uncompress_address_offset[1].CLK +clk => burst_uncompress_address_offset[2].CLK +clk => burst_uncompress_address_offset[3].CLK +clk => burst_uncompress_address_offset[4].CLK +clk => burst_uncompress_address_offset[5].CLK +clk => burst_uncompress_address_offset[6].CLK +clk => burst_uncompress_address_offset[7].CLK +clk => burst_uncompress_address_offset[8].CLK +clk => burst_uncompress_address_offset[9].CLK +clk => burst_uncompress_address_offset[10].CLK +clk => burst_uncompress_address_offset[11].CLK +clk => burst_uncompress_address_offset[12].CLK +clk => burst_uncompress_address_offset[13].CLK +clk => burst_uncompress_address_offset[14].CLK +clk => burst_uncompress_address_offset[15].CLK +clk => burst_uncompress_address_offset[16].CLK +clk => burst_uncompress_address_offset[17].CLK +clk => burst_uncompress_address_offset[18].CLK +clk => burst_uncompress_address_base[0].CLK +clk => burst_uncompress_address_base[1].CLK +clk => burst_uncompress_address_base[2].CLK +clk => burst_uncompress_address_base[3].CLK +clk => burst_uncompress_address_base[4].CLK +clk => burst_uncompress_address_base[5].CLK +clk => burst_uncompress_address_base[6].CLK +clk => burst_uncompress_address_base[7].CLK +clk => burst_uncompress_address_base[8].CLK +clk => burst_uncompress_address_base[9].CLK +clk => burst_uncompress_address_base[10].CLK +clk => burst_uncompress_address_base[11].CLK +clk => burst_uncompress_address_base[12].CLK +clk => burst_uncompress_address_base[13].CLK +clk => burst_uncompress_address_base[14].CLK +clk => burst_uncompress_address_base[15].CLK +clk => burst_uncompress_address_base[16].CLK +clk => burst_uncompress_address_base[17].CLK +clk => burst_uncompress_address_base[18].CLK +clk => burst_uncompress_byte_counter[0].CLK +clk => burst_uncompress_byte_counter[1].CLK +clk => burst_uncompress_byte_counter[2].CLK +clk => burst_uncompress_busy.CLK +reset => burst_uncompress_address_offset[0].ACLR +reset => burst_uncompress_address_offset[1].ACLR +reset => burst_uncompress_address_offset[2].ACLR +reset => burst_uncompress_address_offset[3].ACLR +reset => burst_uncompress_address_offset[4].ACLR +reset => burst_uncompress_address_offset[5].ACLR +reset => burst_uncompress_address_offset[6].ACLR +reset => burst_uncompress_address_offset[7].ACLR +reset => burst_uncompress_address_offset[8].ACLR +reset => burst_uncompress_address_offset[9].ACLR +reset => burst_uncompress_address_offset[10].ACLR +reset => burst_uncompress_address_offset[11].ACLR +reset => burst_uncompress_address_offset[12].ACLR +reset => burst_uncompress_address_offset[13].ACLR +reset => burst_uncompress_address_offset[14].ACLR +reset => burst_uncompress_address_offset[15].ACLR +reset => burst_uncompress_address_offset[16].ACLR +reset => burst_uncompress_address_offset[17].ACLR +reset => burst_uncompress_address_offset[18].ACLR +reset => burst_uncompress_address_base[0].ACLR +reset => burst_uncompress_address_base[1].ACLR +reset => burst_uncompress_address_base[2].ACLR +reset => burst_uncompress_address_base[3].ACLR +reset => burst_uncompress_address_base[4].ACLR +reset => burst_uncompress_address_base[5].ACLR +reset => burst_uncompress_address_base[6].ACLR +reset => burst_uncompress_address_base[7].ACLR +reset => burst_uncompress_address_base[8].ACLR +reset => burst_uncompress_address_base[9].ACLR +reset => burst_uncompress_address_base[10].ACLR +reset => burst_uncompress_address_base[11].ACLR +reset => burst_uncompress_address_base[12].ACLR +reset => burst_uncompress_address_base[13].ACLR +reset => burst_uncompress_address_base[14].ACLR +reset => burst_uncompress_address_base[15].ACLR +reset => burst_uncompress_address_base[16].ACLR +reset => burst_uncompress_address_base[17].ACLR +reset => burst_uncompress_address_base[18].ACLR +reset => burst_uncompress_byte_counter[0].ACLR +reset => burst_uncompress_byte_counter[1].ACLR +reset => burst_uncompress_byte_counter[2].ACLR +reset => burst_uncompress_busy.ACLR +sink_startofpacket => source_startofpacket.IN1 +sink_endofpacket => source_endofpacket.IN1 +sink_valid => first_packet_beat.IN1 +sink_valid => last_packet_beat.IN1 +sink_valid => last_packet_beat.IN1 +sink_valid => always0.IN1 +sink_valid => sink_ready.IN0 +sink_valid => source_valid.DATAIN +sink_ready <= sink_ready.DB_MAX_OUTPUT_PORT_TYPE +sink_addr[0] => burst_uncompress_address_base.IN0 +sink_addr[0] => comb.DATAB +sink_addr[0] => source_addr.DATAB +sink_addr[1] => burst_uncompress_address_base.IN0 +sink_addr[1] => comb.DATAB +sink_addr[1] => source_addr.DATAB +sink_addr[2] => burst_uncompress_address_base.IN0 +sink_addr[2] => comb.DATAB +sink_addr[2] => source_addr.DATAB +sink_addr[3] => burst_uncompress_address_base.IN0 +sink_addr[3] => comb.DATAB +sink_addr[3] => source_addr.DATAB +sink_addr[4] => burst_uncompress_address_base.IN0 +sink_addr[4] => comb.DATAB +sink_addr[4] => source_addr.DATAB +sink_addr[5] => burst_uncompress_address_base.IN0 +sink_addr[5] => comb.DATAB +sink_addr[5] => source_addr.DATAB +sink_addr[6] => burst_uncompress_address_base.IN0 +sink_addr[6] => comb.DATAB +sink_addr[6] => source_addr.DATAB +sink_addr[7] => burst_uncompress_address_base.IN0 +sink_addr[7] => comb.DATAB +sink_addr[7] => source_addr.DATAB +sink_addr[8] => burst_uncompress_address_base.IN0 +sink_addr[8] => comb.DATAB +sink_addr[8] => source_addr.DATAB +sink_addr[9] => burst_uncompress_address_base.IN0 +sink_addr[9] => comb.DATAB +sink_addr[9] => source_addr.DATAB +sink_addr[10] => burst_uncompress_address_base.IN0 +sink_addr[10] => comb.DATAB +sink_addr[10] => source_addr.DATAB +sink_addr[11] => burst_uncompress_address_base.IN0 +sink_addr[11] => comb.DATAB +sink_addr[11] => source_addr.DATAB +sink_addr[12] => burst_uncompress_address_base.IN0 +sink_addr[12] => comb.DATAB +sink_addr[12] => source_addr.DATAB +sink_addr[13] => burst_uncompress_address_base.IN0 +sink_addr[13] => comb.DATAB +sink_addr[13] => source_addr.DATAB +sink_addr[14] => burst_uncompress_address_base.IN0 +sink_addr[14] => comb.DATAB +sink_addr[14] => source_addr.DATAB +sink_addr[15] => burst_uncompress_address_base.IN0 +sink_addr[15] => comb.DATAB +sink_addr[15] => source_addr.DATAB +sink_addr[16] => burst_uncompress_address_base.IN0 +sink_addr[16] => comb.DATAB +sink_addr[16] => source_addr.DATAB +sink_addr[17] => burst_uncompress_address_base.IN0 +sink_addr[17] => comb.DATAB +sink_addr[17] => source_addr.DATAB +sink_addr[18] => burst_uncompress_address_base.IN0 +sink_addr[18] => comb.DATAB +sink_addr[18] => source_addr.DATAB +sink_burstwrap[0] => p1_burst_uncompress_address_offset[0].IN1 +sink_burstwrap[0] => source_burstwrap[0].DATAIN +sink_burstwrap[0] => burst_uncompress_address_base.IN1 +sink_burstwrap[1] => p1_burst_uncompress_address_offset[1].IN1 +sink_burstwrap[1] => source_burstwrap[1].DATAIN +sink_burstwrap[1] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[2].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[18].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[17].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[16].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[15].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[14].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[13].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[12].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[11].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[10].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[9].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[8].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[7].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[6].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[5].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[4].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[3].IN1 +sink_burstwrap[2] => source_burstwrap[2].DATAIN +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_byte_cnt[0] => source_byte_cnt.DATAB +sink_byte_cnt[0] => Add1.IN6 +sink_byte_cnt[0] => Equal1.IN2 +sink_byte_cnt[1] => source_byte_cnt.DATAB +sink_byte_cnt[1] => Add1.IN5 +sink_byte_cnt[1] => Equal1.IN1 +sink_byte_cnt[2] => source_byte_cnt.DATAB +sink_byte_cnt[2] => Add1.IN4 +sink_byte_cnt[2] => Equal1.IN0 +sink_is_compressed => last_packet_beat.IN1 +sink_burstsize[0] => Decoder0.IN2 +sink_burstsize[0] => source_burstsize[0].DATAIN +sink_burstsize[1] => Decoder0.IN1 +sink_burstsize[1] => source_burstsize[1].DATAIN +sink_burstsize[2] => Decoder0.IN0 +sink_burstsize[2] => source_burstsize[2].DATAIN +source_startofpacket <= source_startofpacket.DB_MAX_OUTPUT_PORT_TYPE +source_endofpacket <= source_endofpacket.DB_MAX_OUTPUT_PORT_TYPE +source_valid <= sink_valid.DB_MAX_OUTPUT_PORT_TYPE +source_ready => always1.IN1 +source_ready => sink_ready.IN1 +source_addr[0] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[1] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[2] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[3] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[4] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[5] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[6] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[7] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[8] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[9] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[10] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[11] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[12] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[13] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[14] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[15] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[16] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[17] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[18] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_burstwrap[0] <= sink_burstwrap[0].DB_MAX_OUTPUT_PORT_TYPE +source_burstwrap[1] <= sink_burstwrap[1].DB_MAX_OUTPUT_PORT_TYPE +source_burstwrap[2] <= sink_burstwrap[2].DB_MAX_OUTPUT_PORT_TYPE +source_byte_cnt[0] <= source_byte_cnt.DB_MAX_OUTPUT_PORT_TYPE +source_byte_cnt[1] <= source_byte_cnt.DB_MAX_OUTPUT_PORT_TYPE +source_byte_cnt[2] <= source_byte_cnt.DB_MAX_OUTPUT_PORT_TYPE +source_is_compressed <= +source_burstsize[0] <= sink_burstsize[0].DB_MAX_OUTPUT_PORT_TYPE +source_burstsize[1] <= sink_burstsize[1].DB_MAX_OUTPUT_PORT_TYPE +source_burstsize[2] <= sink_burstsize[2].DB_MAX_OUTPUT_PORT_TYPE + + +|lights|nios_system:NiosII|altera_avalon_sc_fifo:leds_s1_translator_avalon_universal_slave_0_agent_rsp_fifo +clk => csr_readdata[0]~reg0.CLK +clk => csr_readdata[1]~reg0.CLK +clk => csr_readdata[2]~reg0.CLK +clk => csr_readdata[3]~reg0.CLK +clk => csr_readdata[4]~reg0.CLK +clk => csr_readdata[5]~reg0.CLK +clk => csr_readdata[6]~reg0.CLK +clk => csr_readdata[7]~reg0.CLK +clk => csr_readdata[8]~reg0.CLK +clk => csr_readdata[9]~reg0.CLK +clk => csr_readdata[10]~reg0.CLK +clk => csr_readdata[11]~reg0.CLK +clk => csr_readdata[12]~reg0.CLK +clk => csr_readdata[13]~reg0.CLK +clk => csr_readdata[14]~reg0.CLK +clk => csr_readdata[15]~reg0.CLK +clk => csr_readdata[16]~reg0.CLK +clk => csr_readdata[17]~reg0.CLK +clk => csr_readdata[18]~reg0.CLK +clk => csr_readdata[19]~reg0.CLK +clk => csr_readdata[20]~reg0.CLK +clk => csr_readdata[21]~reg0.CLK +clk => csr_readdata[22]~reg0.CLK +clk => csr_readdata[23]~reg0.CLK +clk => csr_readdata[24]~reg0.CLK +clk => csr_readdata[25]~reg0.CLK +clk => csr_readdata[26]~reg0.CLK +clk => csr_readdata[27]~reg0.CLK +clk => csr_readdata[28]~reg0.CLK +clk => csr_readdata[29]~reg0.CLK +clk => csr_readdata[30]~reg0.CLK +clk => csr_readdata[31]~reg0.CLK +clk => mem_used[1].CLK +clk => mem_used[0].CLK +clk => mem[1][0].CLK +clk => mem[1][1].CLK +clk => mem[1][2].CLK +clk => mem[1][3].CLK +clk => mem[1][4].CLK +clk => mem[1][5].CLK +clk => mem[1][6].CLK +clk => mem[1][7].CLK +clk => mem[1][8].CLK +clk => mem[1][9].CLK +clk => mem[1][10].CLK +clk => mem[1][11].CLK +clk => mem[1][12].CLK +clk => mem[1][13].CLK +clk => mem[1][14].CLK +clk => mem[1][15].CLK +clk => mem[1][16].CLK +clk => mem[1][17].CLK +clk => mem[1][18].CLK +clk => mem[1][19].CLK +clk => mem[1][20].CLK +clk => mem[1][21].CLK +clk => mem[1][22].CLK +clk => mem[1][23].CLK +clk => mem[1][24].CLK +clk => mem[1][25].CLK +clk => mem[1][26].CLK +clk => mem[1][27].CLK +clk => mem[1][28].CLK +clk => mem[1][29].CLK +clk => mem[1][30].CLK +clk => mem[1][31].CLK +clk => mem[1][32].CLK +clk => mem[1][33].CLK +clk => mem[1][34].CLK +clk => mem[1][35].CLK +clk => mem[1][36].CLK +clk => mem[1][37].CLK +clk => mem[1][38].CLK +clk => mem[1][39].CLK +clk => mem[1][40].CLK +clk => mem[1][41].CLK +clk => mem[1][42].CLK +clk => mem[1][43].CLK +clk => mem[1][44].CLK +clk => mem[1][45].CLK +clk => mem[1][46].CLK +clk => mem[1][47].CLK +clk => mem[1][48].CLK +clk => mem[1][49].CLK +clk => mem[1][50].CLK +clk => mem[1][51].CLK +clk => mem[1][52].CLK +clk => mem[1][53].CLK +clk => mem[1][54].CLK +clk => mem[1][55].CLK +clk => mem[1][56].CLK +clk => mem[1][57].CLK +clk => mem[1][58].CLK +clk => mem[1][59].CLK +clk => mem[1][60].CLK +clk => mem[1][61].CLK +clk => mem[1][62].CLK +clk => mem[1][63].CLK +clk => mem[1][64].CLK +clk => mem[1][65].CLK +clk => mem[1][66].CLK +clk => mem[1][67].CLK +clk => mem[1][68].CLK +clk => mem[1][69].CLK +clk => mem[1][70].CLK +clk => mem[1][71].CLK +clk => mem[1][72].CLK +clk => mem[1][73].CLK +clk => mem[1][74].CLK +clk => mem[1][75].CLK +clk => mem[1][76].CLK +clk => mem[1][77].CLK +clk => mem[1][78].CLK +clk => mem[1][79].CLK +clk => mem[1][80].CLK +clk => mem[1][81].CLK +clk => mem[1][82].CLK +clk => mem[1][83].CLK +clk => mem[1][84].CLK +clk => mem[1][85].CLK +clk => mem[1][86].CLK +clk => mem[1][87].CLK +clk => mem[1][88].CLK +clk => mem[1][89].CLK +clk => mem[1][90].CLK +clk => mem[1][91].CLK +clk => mem[1][92].CLK +clk => mem[1][93].CLK +clk => mem[1][94].CLK +clk => mem[1][95].CLK +clk => mem[1][96].CLK +clk => mem[1][97].CLK +clk => mem[1][98].CLK +clk => mem[0][0].CLK +clk => mem[0][1].CLK +clk => mem[0][2].CLK +clk => mem[0][3].CLK +clk => mem[0][4].CLK +clk => mem[0][5].CLK +clk => mem[0][6].CLK +clk => mem[0][7].CLK +clk => mem[0][8].CLK +clk => mem[0][9].CLK +clk => mem[0][10].CLK +clk => mem[0][11].CLK +clk => mem[0][12].CLK +clk => mem[0][13].CLK +clk => mem[0][14].CLK +clk => mem[0][15].CLK +clk => mem[0][16].CLK +clk => mem[0][17].CLK +clk => mem[0][18].CLK +clk => mem[0][19].CLK +clk => mem[0][20].CLK +clk => mem[0][21].CLK +clk => mem[0][22].CLK +clk => mem[0][23].CLK +clk => mem[0][24].CLK +clk => mem[0][25].CLK +clk => mem[0][26].CLK +clk => mem[0][27].CLK +clk => mem[0][28].CLK +clk => mem[0][29].CLK +clk => mem[0][30].CLK +clk => mem[0][31].CLK +clk => mem[0][32].CLK +clk => mem[0][33].CLK +clk => mem[0][34].CLK +clk => mem[0][35].CLK +clk => mem[0][36].CLK +clk => mem[0][37].CLK +clk => mem[0][38].CLK +clk => mem[0][39].CLK +clk => mem[0][40].CLK +clk => mem[0][41].CLK +clk => mem[0][42].CLK +clk => mem[0][43].CLK +clk => mem[0][44].CLK +clk => mem[0][45].CLK +clk => mem[0][46].CLK +clk => mem[0][47].CLK +clk => mem[0][48].CLK +clk => mem[0][49].CLK +clk => mem[0][50].CLK +clk => mem[0][51].CLK +clk => mem[0][52].CLK +clk => mem[0][53].CLK +clk => mem[0][54].CLK +clk => mem[0][55].CLK +clk => mem[0][56].CLK +clk => mem[0][57].CLK +clk => mem[0][58].CLK +clk => mem[0][59].CLK +clk => mem[0][60].CLK +clk => mem[0][61].CLK +clk => mem[0][62].CLK +clk => mem[0][63].CLK +clk => mem[0][64].CLK +clk => mem[0][65].CLK +clk => mem[0][66].CLK +clk => mem[0][67].CLK +clk => mem[0][68].CLK +clk => mem[0][69].CLK +clk => mem[0][70].CLK +clk => mem[0][71].CLK +clk => mem[0][72].CLK +clk => mem[0][73].CLK +clk => mem[0][74].CLK +clk => mem[0][75].CLK +clk => mem[0][76].CLK +clk => mem[0][77].CLK +clk => mem[0][78].CLK +clk => mem[0][79].CLK +clk => mem[0][80].CLK +clk => mem[0][81].CLK +clk => mem[0][82].CLK +clk => mem[0][83].CLK +clk => mem[0][84].CLK +clk => mem[0][85].CLK +clk => mem[0][86].CLK +clk => mem[0][87].CLK +clk => mem[0][88].CLK +clk => mem[0][89].CLK +clk => mem[0][90].CLK +clk => mem[0][91].CLK +clk => mem[0][92].CLK +clk => mem[0][93].CLK +clk => mem[0][94].CLK +clk => mem[0][95].CLK +clk => mem[0][96].CLK +clk => mem[0][97].CLK +clk => mem[0][98].CLK +reset => csr_readdata[0]~reg0.ACLR +reset => csr_readdata[1]~reg0.ACLR +reset => csr_readdata[2]~reg0.ACLR +reset => csr_readdata[3]~reg0.ACLR +reset => csr_readdata[4]~reg0.ACLR +reset => csr_readdata[5]~reg0.ACLR +reset => csr_readdata[6]~reg0.ACLR +reset => csr_readdata[7]~reg0.ACLR +reset => csr_readdata[8]~reg0.ACLR +reset => csr_readdata[9]~reg0.ACLR +reset => csr_readdata[10]~reg0.ACLR +reset => csr_readdata[11]~reg0.ACLR +reset => csr_readdata[12]~reg0.ACLR +reset => csr_readdata[13]~reg0.ACLR +reset => csr_readdata[14]~reg0.ACLR +reset => csr_readdata[15]~reg0.ACLR +reset => csr_readdata[16]~reg0.ACLR +reset => csr_readdata[17]~reg0.ACLR +reset => csr_readdata[18]~reg0.ACLR +reset => csr_readdata[19]~reg0.ACLR +reset => csr_readdata[20]~reg0.ACLR +reset => csr_readdata[21]~reg0.ACLR +reset => csr_readdata[22]~reg0.ACLR +reset => csr_readdata[23]~reg0.ACLR +reset => csr_readdata[24]~reg0.ACLR +reset => csr_readdata[25]~reg0.ACLR +reset => csr_readdata[26]~reg0.ACLR +reset => csr_readdata[27]~reg0.ACLR +reset => csr_readdata[28]~reg0.ACLR +reset => csr_readdata[29]~reg0.ACLR +reset => csr_readdata[30]~reg0.ACLR +reset => csr_readdata[31]~reg0.ACLR +reset => mem_used[1].ACLR +reset => mem_used[0].ACLR +reset => mem[1][0].ACLR +reset => mem[1][1].ACLR +reset => mem[1][2].ACLR +reset => mem[1][3].ACLR +reset => mem[1][4].ACLR +reset => mem[1][5].ACLR +reset => mem[1][6].ACLR +reset => mem[1][7].ACLR +reset => mem[1][8].ACLR +reset => mem[1][9].ACLR +reset => mem[1][10].ACLR +reset => mem[1][11].ACLR +reset => mem[1][12].ACLR +reset => mem[1][13].ACLR +reset => mem[1][14].ACLR +reset => mem[1][15].ACLR +reset => mem[1][16].ACLR +reset => mem[1][17].ACLR +reset => mem[1][18].ACLR +reset => mem[1][19].ACLR +reset => mem[1][20].ACLR +reset => mem[1][21].ACLR +reset => mem[1][22].ACLR +reset => mem[1][23].ACLR +reset => mem[1][24].ACLR +reset => mem[1][25].ACLR +reset => mem[1][26].ACLR +reset => mem[1][27].ACLR +reset => mem[1][28].ACLR +reset => mem[1][29].ACLR +reset => mem[1][30].ACLR +reset => mem[1][31].ACLR +reset => mem[1][32].ACLR +reset => mem[1][33].ACLR +reset => mem[1][34].ACLR +reset => mem[1][35].ACLR +reset => mem[1][36].ACLR +reset => mem[1][37].ACLR +reset => mem[1][38].ACLR +reset => mem[1][39].ACLR +reset => mem[1][40].ACLR +reset => mem[1][41].ACLR +reset => mem[1][42].ACLR +reset => mem[1][43].ACLR +reset => mem[1][44].ACLR +reset => mem[1][45].ACLR +reset => mem[1][46].ACLR +reset => mem[1][47].ACLR +reset => mem[1][48].ACLR +reset => mem[1][49].ACLR +reset => mem[1][50].ACLR +reset => mem[1][51].ACLR +reset => mem[1][52].ACLR +reset => mem[1][53].ACLR +reset => mem[1][54].ACLR +reset => mem[1][55].ACLR +reset => mem[1][56].ACLR +reset => mem[1][57].ACLR +reset => mem[1][58].ACLR +reset => mem[1][59].ACLR +reset => mem[1][60].ACLR +reset => mem[1][61].ACLR +reset => mem[1][62].ACLR +reset => mem[1][63].ACLR +reset => mem[1][64].ACLR +reset => mem[1][65].ACLR +reset => mem[1][66].ACLR +reset => mem[1][67].ACLR +reset => mem[1][68].ACLR +reset => mem[1][69].ACLR +reset => mem[1][70].ACLR +reset => mem[1][71].ACLR +reset => mem[1][72].ACLR +reset => mem[1][73].ACLR +reset => mem[1][74].ACLR +reset => mem[1][75].ACLR +reset => mem[1][76].ACLR +reset => mem[1][77].ACLR +reset => mem[1][78].ACLR +reset => mem[1][79].ACLR +reset => mem[1][80].ACLR +reset => mem[1][81].ACLR +reset => mem[1][82].ACLR +reset => mem[1][83].ACLR +reset => mem[1][84].ACLR +reset => mem[1][85].ACLR +reset => mem[1][86].ACLR +reset => mem[1][87].ACLR +reset => mem[1][88].ACLR +reset => mem[1][89].ACLR +reset => mem[1][90].ACLR +reset => mem[1][91].ACLR +reset => mem[1][92].ACLR +reset => mem[1][93].ACLR +reset => mem[1][94].ACLR +reset => mem[1][95].ACLR +reset => mem[1][96].ACLR +reset => mem[1][97].ACLR +reset => mem[1][98].ACLR +reset => mem[0][0].ACLR +reset => mem[0][1].ACLR +reset => mem[0][2].ACLR +reset => mem[0][3].ACLR +reset => mem[0][4].ACLR +reset => mem[0][5].ACLR +reset => mem[0][6].ACLR +reset => mem[0][7].ACLR +reset => mem[0][8].ACLR +reset => mem[0][9].ACLR +reset => mem[0][10].ACLR +reset => mem[0][11].ACLR +reset => mem[0][12].ACLR +reset => mem[0][13].ACLR +reset => mem[0][14].ACLR +reset => mem[0][15].ACLR +reset => mem[0][16].ACLR +reset => mem[0][17].ACLR +reset => mem[0][18].ACLR +reset => mem[0][19].ACLR +reset => mem[0][20].ACLR +reset => mem[0][21].ACLR +reset => mem[0][22].ACLR +reset => mem[0][23].ACLR +reset => mem[0][24].ACLR +reset => mem[0][25].ACLR +reset => mem[0][26].ACLR +reset => mem[0][27].ACLR +reset => mem[0][28].ACLR +reset => mem[0][29].ACLR +reset => mem[0][30].ACLR +reset => mem[0][31].ACLR +reset => mem[0][32].ACLR +reset => mem[0][33].ACLR +reset => mem[0][34].ACLR +reset => mem[0][35].ACLR +reset => mem[0][36].ACLR +reset => mem[0][37].ACLR +reset => mem[0][38].ACLR +reset => mem[0][39].ACLR +reset => mem[0][40].ACLR +reset => mem[0][41].ACLR +reset => mem[0][42].ACLR +reset => mem[0][43].ACLR +reset => mem[0][44].ACLR +reset => mem[0][45].ACLR +reset => mem[0][46].ACLR +reset => mem[0][47].ACLR +reset => mem[0][48].ACLR +reset => mem[0][49].ACLR +reset => mem[0][50].ACLR +reset => mem[0][51].ACLR +reset => mem[0][52].ACLR +reset => mem[0][53].ACLR +reset => mem[0][54].ACLR +reset => mem[0][55].ACLR +reset => mem[0][56].ACLR +reset => mem[0][57].ACLR +reset => mem[0][58].ACLR +reset => mem[0][59].ACLR +reset => mem[0][60].ACLR +reset => mem[0][61].ACLR +reset => mem[0][62].ACLR +reset => mem[0][63].ACLR +reset => mem[0][64].ACLR +reset => mem[0][65].ACLR +reset => mem[0][66].ACLR +reset => mem[0][67].ACLR +reset => mem[0][68].ACLR +reset => mem[0][69].ACLR +reset => mem[0][70].ACLR +reset => mem[0][71].ACLR +reset => mem[0][72].ACLR +reset => mem[0][73].ACLR +reset => mem[0][74].ACLR +reset => mem[0][75].ACLR +reset => mem[0][76].ACLR +reset => mem[0][77].ACLR +reset => mem[0][78].ACLR +reset => mem[0][79].ACLR +reset => mem[0][80].ACLR +reset => mem[0][81].ACLR +reset => mem[0][82].ACLR +reset => mem[0][83].ACLR +reset => mem[0][84].ACLR +reset => mem[0][85].ACLR +reset => mem[0][86].ACLR +reset => mem[0][87].ACLR +reset => mem[0][88].ACLR +reset => mem[0][89].ACLR +reset => mem[0][90].ACLR +reset => mem[0][91].ACLR +reset => mem[0][92].ACLR +reset => mem[0][93].ACLR +reset => mem[0][94].ACLR +reset => mem[0][95].ACLR +reset => mem[0][96].ACLR +reset => mem[0][97].ACLR +reset => mem[0][98].ACLR +in_data[0] => mem.DATAB +in_data[1] => mem.DATAB +in_data[2] => mem.DATAB +in_data[3] => mem.DATAB +in_data[4] => mem.DATAB +in_data[5] => mem.DATAB +in_data[6] => mem.DATAB +in_data[7] => mem.DATAB +in_data[8] => mem.DATAB +in_data[9] => mem.DATAB +in_data[10] => mem.DATAB +in_data[11] => mem.DATAB +in_data[12] => mem.DATAB +in_data[13] => mem.DATAB +in_data[14] => mem.DATAB +in_data[15] => mem.DATAB +in_data[16] => mem.DATAB +in_data[17] => mem.DATAB +in_data[18] => mem.DATAB +in_data[19] => mem.DATAB +in_data[20] => mem.DATAB +in_data[21] => mem.DATAB +in_data[22] => mem.DATAB +in_data[23] => mem.DATAB +in_data[24] => mem.DATAB +in_data[25] => mem.DATAB +in_data[26] => mem.DATAB +in_data[27] => mem.DATAB +in_data[28] => mem.DATAB +in_data[29] => mem.DATAB +in_data[30] => mem.DATAB +in_data[31] => mem.DATAB +in_data[32] => mem.DATAB +in_data[33] => mem.DATAB +in_data[34] => mem.DATAB +in_data[35] => mem.DATAB +in_data[36] => mem.DATAB +in_data[37] => mem.DATAB +in_data[38] => mem.DATAB +in_data[39] => mem.DATAB +in_data[40] => mem.DATAB +in_data[41] => mem.DATAB +in_data[42] => mem.DATAB +in_data[43] => mem.DATAB +in_data[44] => mem.DATAB +in_data[45] => mem.DATAB +in_data[46] => mem.DATAB +in_data[47] => mem.DATAB +in_data[48] => mem.DATAB +in_data[49] => mem.DATAB +in_data[50] => mem.DATAB +in_data[51] => mem.DATAB +in_data[52] => mem.DATAB +in_data[53] => mem.DATAB +in_data[54] => mem.DATAB +in_data[55] => mem.DATAB +in_data[56] => mem.DATAB +in_data[57] => mem.DATAB +in_data[58] => mem.DATAB +in_data[59] => mem.DATAB +in_data[60] => mem.DATAB +in_data[61] => mem.DATAB +in_data[62] => mem.DATAB +in_data[63] => mem.DATAB +in_data[64] => mem.DATAB +in_data[65] => mem.DATAB +in_data[66] => mem.DATAB +in_data[67] => mem.DATAB +in_data[68] => mem.DATAB +in_data[69] => mem.DATAB +in_data[70] => mem.DATAB +in_data[71] => mem.DATAB +in_data[72] => mem.DATAB +in_data[73] => mem.DATAB +in_data[74] => mem.DATAB +in_data[75] => mem.DATAB +in_data[76] => mem.DATAB +in_data[77] => mem.DATAB +in_data[78] => mem.DATAB +in_data[79] => mem.DATAB +in_data[80] => mem.DATAB +in_data[81] => mem.DATAB +in_data[82] => mem.DATAB +in_data[83] => mem.DATAB +in_data[84] => mem.DATAB +in_data[85] => mem.DATAB +in_data[86] => mem.DATAB +in_data[87] => mem.DATAB +in_data[88] => mem.DATAB +in_data[89] => mem.DATAB +in_data[90] => mem.DATAB +in_data[91] => mem.DATAB +in_data[92] => mem.DATAB +in_data[93] => mem.DATAB +in_data[94] => mem.DATAB +in_data[95] => mem.DATAB +in_data[96] => mem.DATAB +in_valid => write.IN1 +in_startofpacket => mem.DATAB +in_endofpacket => mem.DATAB +in_empty[0] => ~NO_FANOUT~ +in_error[0] => out_error[0].DATAIN +in_error[0] => out_empty[0].DATAIN +in_channel[0] => out_channel[0].DATAIN +in_ready <= mem_used[1].DB_MAX_OUTPUT_PORT_TYPE +out_data[0] <= mem[0][0].DB_MAX_OUTPUT_PORT_TYPE +out_data[1] <= mem[0][1].DB_MAX_OUTPUT_PORT_TYPE +out_data[2] <= mem[0][2].DB_MAX_OUTPUT_PORT_TYPE +out_data[3] <= mem[0][3].DB_MAX_OUTPUT_PORT_TYPE +out_data[4] <= mem[0][4].DB_MAX_OUTPUT_PORT_TYPE +out_data[5] <= mem[0][5].DB_MAX_OUTPUT_PORT_TYPE +out_data[6] <= mem[0][6].DB_MAX_OUTPUT_PORT_TYPE +out_data[7] <= mem[0][7].DB_MAX_OUTPUT_PORT_TYPE +out_data[8] <= mem[0][8].DB_MAX_OUTPUT_PORT_TYPE +out_data[9] <= mem[0][9].DB_MAX_OUTPUT_PORT_TYPE +out_data[10] <= mem[0][10].DB_MAX_OUTPUT_PORT_TYPE +out_data[11] <= mem[0][11].DB_MAX_OUTPUT_PORT_TYPE +out_data[12] <= mem[0][12].DB_MAX_OUTPUT_PORT_TYPE +out_data[13] <= mem[0][13].DB_MAX_OUTPUT_PORT_TYPE +out_data[14] <= mem[0][14].DB_MAX_OUTPUT_PORT_TYPE +out_data[15] <= mem[0][15].DB_MAX_OUTPUT_PORT_TYPE +out_data[16] <= mem[0][16].DB_MAX_OUTPUT_PORT_TYPE +out_data[17] <= mem[0][17].DB_MAX_OUTPUT_PORT_TYPE +out_data[18] <= mem[0][18].DB_MAX_OUTPUT_PORT_TYPE +out_data[19] <= mem[0][19].DB_MAX_OUTPUT_PORT_TYPE +out_data[20] <= mem[0][20].DB_MAX_OUTPUT_PORT_TYPE +out_data[21] <= mem[0][21].DB_MAX_OUTPUT_PORT_TYPE +out_data[22] <= mem[0][22].DB_MAX_OUTPUT_PORT_TYPE +out_data[23] <= mem[0][23].DB_MAX_OUTPUT_PORT_TYPE +out_data[24] <= mem[0][24].DB_MAX_OUTPUT_PORT_TYPE +out_data[25] <= mem[0][25].DB_MAX_OUTPUT_PORT_TYPE +out_data[26] <= mem[0][26].DB_MAX_OUTPUT_PORT_TYPE +out_data[27] <= mem[0][27].DB_MAX_OUTPUT_PORT_TYPE +out_data[28] <= mem[0][28].DB_MAX_OUTPUT_PORT_TYPE +out_data[29] <= mem[0][29].DB_MAX_OUTPUT_PORT_TYPE +out_data[30] <= mem[0][30].DB_MAX_OUTPUT_PORT_TYPE +out_data[31] <= mem[0][31].DB_MAX_OUTPUT_PORT_TYPE +out_data[32] <= mem[0][32].DB_MAX_OUTPUT_PORT_TYPE +out_data[33] <= mem[0][33].DB_MAX_OUTPUT_PORT_TYPE +out_data[34] <= mem[0][34].DB_MAX_OUTPUT_PORT_TYPE +out_data[35] <= mem[0][35].DB_MAX_OUTPUT_PORT_TYPE +out_data[36] <= mem[0][36].DB_MAX_OUTPUT_PORT_TYPE +out_data[37] <= mem[0][37].DB_MAX_OUTPUT_PORT_TYPE +out_data[38] <= mem[0][38].DB_MAX_OUTPUT_PORT_TYPE +out_data[39] <= mem[0][39].DB_MAX_OUTPUT_PORT_TYPE +out_data[40] <= mem[0][40].DB_MAX_OUTPUT_PORT_TYPE +out_data[41] <= mem[0][41].DB_MAX_OUTPUT_PORT_TYPE +out_data[42] <= mem[0][42].DB_MAX_OUTPUT_PORT_TYPE +out_data[43] <= mem[0][43].DB_MAX_OUTPUT_PORT_TYPE +out_data[44] <= mem[0][44].DB_MAX_OUTPUT_PORT_TYPE +out_data[45] <= mem[0][45].DB_MAX_OUTPUT_PORT_TYPE +out_data[46] <= mem[0][46].DB_MAX_OUTPUT_PORT_TYPE +out_data[47] <= mem[0][47].DB_MAX_OUTPUT_PORT_TYPE +out_data[48] <= mem[0][48].DB_MAX_OUTPUT_PORT_TYPE +out_data[49] <= mem[0][49].DB_MAX_OUTPUT_PORT_TYPE +out_data[50] <= mem[0][50].DB_MAX_OUTPUT_PORT_TYPE +out_data[51] <= mem[0][51].DB_MAX_OUTPUT_PORT_TYPE +out_data[52] <= mem[0][52].DB_MAX_OUTPUT_PORT_TYPE +out_data[53] <= mem[0][53].DB_MAX_OUTPUT_PORT_TYPE +out_data[54] <= mem[0][54].DB_MAX_OUTPUT_PORT_TYPE +out_data[55] <= mem[0][55].DB_MAX_OUTPUT_PORT_TYPE +out_data[56] <= mem[0][56].DB_MAX_OUTPUT_PORT_TYPE +out_data[57] <= mem[0][57].DB_MAX_OUTPUT_PORT_TYPE +out_data[58] <= mem[0][58].DB_MAX_OUTPUT_PORT_TYPE +out_data[59] <= mem[0][59].DB_MAX_OUTPUT_PORT_TYPE +out_data[60] <= mem[0][60].DB_MAX_OUTPUT_PORT_TYPE +out_data[61] <= mem[0][61].DB_MAX_OUTPUT_PORT_TYPE +out_data[62] <= mem[0][62].DB_MAX_OUTPUT_PORT_TYPE +out_data[63] <= mem[0][63].DB_MAX_OUTPUT_PORT_TYPE +out_data[64] <= mem[0][64].DB_MAX_OUTPUT_PORT_TYPE +out_data[65] <= mem[0][65].DB_MAX_OUTPUT_PORT_TYPE +out_data[66] <= mem[0][66].DB_MAX_OUTPUT_PORT_TYPE +out_data[67] <= mem[0][67].DB_MAX_OUTPUT_PORT_TYPE +out_data[68] <= mem[0][68].DB_MAX_OUTPUT_PORT_TYPE +out_data[69] <= mem[0][69].DB_MAX_OUTPUT_PORT_TYPE +out_data[70] <= mem[0][70].DB_MAX_OUTPUT_PORT_TYPE +out_data[71] <= mem[0][71].DB_MAX_OUTPUT_PORT_TYPE +out_data[72] <= mem[0][72].DB_MAX_OUTPUT_PORT_TYPE +out_data[73] <= mem[0][73].DB_MAX_OUTPUT_PORT_TYPE +out_data[74] <= mem[0][74].DB_MAX_OUTPUT_PORT_TYPE +out_data[75] <= mem[0][75].DB_MAX_OUTPUT_PORT_TYPE +out_data[76] <= mem[0][76].DB_MAX_OUTPUT_PORT_TYPE +out_data[77] <= mem[0][77].DB_MAX_OUTPUT_PORT_TYPE +out_data[78] <= mem[0][78].DB_MAX_OUTPUT_PORT_TYPE +out_data[79] <= mem[0][79].DB_MAX_OUTPUT_PORT_TYPE +out_data[80] <= mem[0][80].DB_MAX_OUTPUT_PORT_TYPE +out_data[81] <= mem[0][81].DB_MAX_OUTPUT_PORT_TYPE +out_data[82] <= mem[0][82].DB_MAX_OUTPUT_PORT_TYPE +out_data[83] <= mem[0][83].DB_MAX_OUTPUT_PORT_TYPE +out_data[84] <= mem[0][84].DB_MAX_OUTPUT_PORT_TYPE +out_data[85] <= mem[0][85].DB_MAX_OUTPUT_PORT_TYPE +out_data[86] <= mem[0][86].DB_MAX_OUTPUT_PORT_TYPE +out_data[87] <= mem[0][87].DB_MAX_OUTPUT_PORT_TYPE +out_data[88] <= mem[0][88].DB_MAX_OUTPUT_PORT_TYPE +out_data[89] <= mem[0][89].DB_MAX_OUTPUT_PORT_TYPE +out_data[90] <= mem[0][90].DB_MAX_OUTPUT_PORT_TYPE +out_data[91] <= mem[0][91].DB_MAX_OUTPUT_PORT_TYPE +out_data[92] <= mem[0][92].DB_MAX_OUTPUT_PORT_TYPE +out_data[93] <= mem[0][93].DB_MAX_OUTPUT_PORT_TYPE +out_data[94] <= mem[0][94].DB_MAX_OUTPUT_PORT_TYPE +out_data[95] <= mem[0][95].DB_MAX_OUTPUT_PORT_TYPE +out_data[96] <= mem[0][96].DB_MAX_OUTPUT_PORT_TYPE +out_valid <= mem_used[0].DB_MAX_OUTPUT_PORT_TYPE +out_startofpacket <= mem[0][98].DB_MAX_OUTPUT_PORT_TYPE +out_endofpacket <= mem[0][97].DB_MAX_OUTPUT_PORT_TYPE +out_empty[0] <= in_error[0].DB_MAX_OUTPUT_PORT_TYPE +out_error[0] <= in_error[0].DB_MAX_OUTPUT_PORT_TYPE +out_channel[0] <= in_channel[0].DB_MAX_OUTPUT_PORT_TYPE +out_ready => internal_out_ready.IN1 +csr_address[0] => ~NO_FANOUT~ +csr_address[1] => ~NO_FANOUT~ +csr_write => ~NO_FANOUT~ +csr_read => csr_readdata[31]~reg0.ENA +csr_read => csr_readdata[30]~reg0.ENA +csr_read => csr_readdata[29]~reg0.ENA +csr_read => csr_readdata[28]~reg0.ENA +csr_read => csr_readdata[27]~reg0.ENA +csr_read => csr_readdata[26]~reg0.ENA +csr_read => csr_readdata[25]~reg0.ENA +csr_read => csr_readdata[24]~reg0.ENA +csr_read => csr_readdata[23]~reg0.ENA +csr_read => csr_readdata[22]~reg0.ENA +csr_read => csr_readdata[21]~reg0.ENA +csr_read => csr_readdata[20]~reg0.ENA +csr_read => csr_readdata[19]~reg0.ENA +csr_read => csr_readdata[18]~reg0.ENA +csr_read => csr_readdata[17]~reg0.ENA +csr_read => csr_readdata[16]~reg0.ENA +csr_read => csr_readdata[15]~reg0.ENA +csr_read => csr_readdata[14]~reg0.ENA +csr_read => csr_readdata[13]~reg0.ENA +csr_read => csr_readdata[12]~reg0.ENA +csr_read => csr_readdata[11]~reg0.ENA +csr_read => csr_readdata[10]~reg0.ENA +csr_read => csr_readdata[9]~reg0.ENA +csr_read => csr_readdata[8]~reg0.ENA +csr_read => csr_readdata[7]~reg0.ENA +csr_read => csr_readdata[6]~reg0.ENA +csr_read => csr_readdata[5]~reg0.ENA +csr_read => csr_readdata[4]~reg0.ENA +csr_read => csr_readdata[3]~reg0.ENA +csr_read => csr_readdata[2]~reg0.ENA +csr_read => csr_readdata[1]~reg0.ENA +csr_read => csr_readdata[0]~reg0.ENA +csr_writedata[0] => ~NO_FANOUT~ +csr_writedata[1] => ~NO_FANOUT~ +csr_writedata[2] => ~NO_FANOUT~ +csr_writedata[3] => ~NO_FANOUT~ +csr_writedata[4] => ~NO_FANOUT~ +csr_writedata[5] => ~NO_FANOUT~ +csr_writedata[6] => ~NO_FANOUT~ +csr_writedata[7] => ~NO_FANOUT~ +csr_writedata[8] => ~NO_FANOUT~ +csr_writedata[9] => ~NO_FANOUT~ +csr_writedata[10] => ~NO_FANOUT~ +csr_writedata[11] => ~NO_FANOUT~ +csr_writedata[12] => ~NO_FANOUT~ +csr_writedata[13] => ~NO_FANOUT~ +csr_writedata[14] => ~NO_FANOUT~ +csr_writedata[15] => ~NO_FANOUT~ +csr_writedata[16] => ~NO_FANOUT~ +csr_writedata[17] => ~NO_FANOUT~ +csr_writedata[18] => ~NO_FANOUT~ +csr_writedata[19] => ~NO_FANOUT~ +csr_writedata[20] => ~NO_FANOUT~ +csr_writedata[21] => ~NO_FANOUT~ +csr_writedata[22] => ~NO_FANOUT~ +csr_writedata[23] => ~NO_FANOUT~ +csr_writedata[24] => ~NO_FANOUT~ +csr_writedata[25] => ~NO_FANOUT~ +csr_writedata[26] => ~NO_FANOUT~ +csr_writedata[27] => ~NO_FANOUT~ +csr_writedata[28] => ~NO_FANOUT~ +csr_writedata[29] => ~NO_FANOUT~ +csr_writedata[30] => ~NO_FANOUT~ +csr_writedata[31] => ~NO_FANOUT~ +csr_readdata[0] <= csr_readdata[0]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[1] <= csr_readdata[1]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[2] <= csr_readdata[2]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[3] <= csr_readdata[3]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[4] <= csr_readdata[4]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[5] <= csr_readdata[5]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[6] <= csr_readdata[6]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[7] <= csr_readdata[7]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[8] <= csr_readdata[8]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[9] <= csr_readdata[9]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[10] <= csr_readdata[10]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[11] <= csr_readdata[11]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[12] <= csr_readdata[12]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[13] <= csr_readdata[13]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[14] <= csr_readdata[14]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[15] <= csr_readdata[15]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[16] <= csr_readdata[16]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[17] <= csr_readdata[17]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[18] <= csr_readdata[18]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[19] <= csr_readdata[19]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[20] <= csr_readdata[20]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[21] <= csr_readdata[21]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[22] <= csr_readdata[22]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[23] <= csr_readdata[23]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[24] <= csr_readdata[24]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[25] <= csr_readdata[25]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[26] <= csr_readdata[26]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[27] <= csr_readdata[27]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[28] <= csr_readdata[28]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[29] <= csr_readdata[29]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[30] <= csr_readdata[30]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[31] <= csr_readdata[31]~reg0.DB_MAX_OUTPUT_PORT_TYPE +almost_full_data <= +almost_empty_data <= + + +|lights|nios_system:NiosII|altera_merlin_slave_agent:jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent +clk => clk.IN1 +reset => reset.IN1 +m0_address[0] <= +m0_address[1] <= +m0_address[2] <= cp_data[38].DB_MAX_OUTPUT_PORT_TYPE +m0_address[3] <= cp_data[39].DB_MAX_OUTPUT_PORT_TYPE +m0_address[4] <= cp_data[40].DB_MAX_OUTPUT_PORT_TYPE +m0_address[5] <= cp_data[41].DB_MAX_OUTPUT_PORT_TYPE +m0_address[6] <= cp_data[42].DB_MAX_OUTPUT_PORT_TYPE +m0_address[7] <= cp_data[43].DB_MAX_OUTPUT_PORT_TYPE +m0_address[8] <= cp_data[44].DB_MAX_OUTPUT_PORT_TYPE +m0_address[9] <= cp_data[45].DB_MAX_OUTPUT_PORT_TYPE +m0_address[10] <= cp_data[46].DB_MAX_OUTPUT_PORT_TYPE +m0_address[11] <= cp_data[47].DB_MAX_OUTPUT_PORT_TYPE +m0_address[12] <= cp_data[48].DB_MAX_OUTPUT_PORT_TYPE +m0_address[13] <= cp_data[49].DB_MAX_OUTPUT_PORT_TYPE +m0_address[14] <= cp_data[50].DB_MAX_OUTPUT_PORT_TYPE +m0_address[15] <= cp_data[51].DB_MAX_OUTPUT_PORT_TYPE +m0_address[16] <= cp_data[52].DB_MAX_OUTPUT_PORT_TYPE +m0_address[17] <= cp_data[53].DB_MAX_OUTPUT_PORT_TYPE +m0_address[18] <= cp_data[54].DB_MAX_OUTPUT_PORT_TYPE +m0_burstcount[0] <= m0_burstcount.DB_MAX_OUTPUT_PORT_TYPE +m0_burstcount[1] <= m0_burstcount.DB_MAX_OUTPUT_PORT_TYPE +m0_burstcount[2] <= m0_burstcount.DB_MAX_OUTPUT_PORT_TYPE +m0_byteenable[0] <= cp_data[32].DB_MAX_OUTPUT_PORT_TYPE +m0_byteenable[1] <= cp_data[33].DB_MAX_OUTPUT_PORT_TYPE +m0_byteenable[2] <= cp_data[34].DB_MAX_OUTPUT_PORT_TYPE +m0_byteenable[3] <= cp_data[35].DB_MAX_OUTPUT_PORT_TYPE +m0_read <= m0_read.DB_MAX_OUTPUT_PORT_TYPE +m0_readdata[0] => rdata_fifo_src_data[0].DATAIN +m0_readdata[1] => rdata_fifo_src_data[1].DATAIN +m0_readdata[2] => rdata_fifo_src_data[2].DATAIN +m0_readdata[3] => rdata_fifo_src_data[3].DATAIN +m0_readdata[4] => rdata_fifo_src_data[4].DATAIN +m0_readdata[5] => rdata_fifo_src_data[5].DATAIN +m0_readdata[6] => rdata_fifo_src_data[6].DATAIN +m0_readdata[7] => rdata_fifo_src_data[7].DATAIN +m0_readdata[8] => rdata_fifo_src_data[8].DATAIN +m0_readdata[9] => rdata_fifo_src_data[9].DATAIN +m0_readdata[10] => rdata_fifo_src_data[10].DATAIN +m0_readdata[11] => rdata_fifo_src_data[11].DATAIN +m0_readdata[12] => rdata_fifo_src_data[12].DATAIN +m0_readdata[13] => rdata_fifo_src_data[13].DATAIN +m0_readdata[14] => rdata_fifo_src_data[14].DATAIN +m0_readdata[15] => rdata_fifo_src_data[15].DATAIN +m0_readdata[16] => rdata_fifo_src_data[16].DATAIN +m0_readdata[17] => rdata_fifo_src_data[17].DATAIN +m0_readdata[18] => rdata_fifo_src_data[18].DATAIN +m0_readdata[19] => rdata_fifo_src_data[19].DATAIN +m0_readdata[20] => rdata_fifo_src_data[20].DATAIN +m0_readdata[21] => rdata_fifo_src_data[21].DATAIN +m0_readdata[22] => rdata_fifo_src_data[22].DATAIN +m0_readdata[23] => rdata_fifo_src_data[23].DATAIN +m0_readdata[24] => rdata_fifo_src_data[24].DATAIN +m0_readdata[25] => rdata_fifo_src_data[25].DATAIN +m0_readdata[26] => rdata_fifo_src_data[26].DATAIN +m0_readdata[27] => rdata_fifo_src_data[27].DATAIN +m0_readdata[28] => rdata_fifo_src_data[28].DATAIN +m0_readdata[29] => rdata_fifo_src_data[29].DATAIN +m0_readdata[30] => rdata_fifo_src_data[30].DATAIN +m0_readdata[31] => rdata_fifo_src_data[31].DATAIN +m0_waitrequest => cp_ready.IN0 +m0_write <= m0_write.DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[0] <= cp_data[0].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[1] <= cp_data[1].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[2] <= cp_data[2].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[3] <= cp_data[3].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[4] <= cp_data[4].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[5] <= cp_data[5].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[6] <= cp_data[6].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[7] <= cp_data[7].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[8] <= cp_data[8].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[9] <= cp_data[9].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[10] <= cp_data[10].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[11] <= cp_data[11].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[12] <= cp_data[12].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[13] <= cp_data[13].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[14] <= cp_data[14].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[15] <= cp_data[15].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[16] <= cp_data[16].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[17] <= cp_data[17].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[18] <= cp_data[18].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[19] <= cp_data[19].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[20] <= cp_data[20].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[21] <= cp_data[21].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[22] <= cp_data[22].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[23] <= cp_data[23].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[24] <= cp_data[24].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[25] <= cp_data[25].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[26] <= cp_data[26].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[27] <= cp_data[27].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[28] <= cp_data[28].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[29] <= cp_data[29].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[30] <= cp_data[30].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[31] <= cp_data[31].DB_MAX_OUTPUT_PORT_TYPE +m0_readdatavalid => rdata_fifo_src_valid.IN0 +m0_debugaccess <= cp_data[87].DB_MAX_OUTPUT_PORT_TYPE +m0_lock <= m0_lock.DB_MAX_OUTPUT_PORT_TYPE +m0_response[0] => rdata_fifo_src_data[32].DATAIN +m0_response[1] => rdata_fifo_src_data[33].DATAIN +m0_writeresponserequest <= m0_writeresponserequest.DB_MAX_OUTPUT_PORT_TYPE +m0_writeresponsevalid => rdata_fifo_src_valid.IN1 +rf_source_data[0] <= +rf_source_data[1] <= +rf_source_data[2] <= +rf_source_data[3] <= +rf_source_data[4] <= +rf_source_data[5] <= +rf_source_data[6] <= +rf_source_data[7] <= +rf_source_data[8] <= +rf_source_data[9] <= +rf_source_data[10] <= +rf_source_data[11] <= +rf_source_data[12] <= +rf_source_data[13] <= +rf_source_data[14] <= +rf_source_data[15] <= +rf_source_data[16] <= +rf_source_data[17] <= +rf_source_data[18] <= +rf_source_data[19] <= +rf_source_data[20] <= +rf_source_data[21] <= +rf_source_data[22] <= +rf_source_data[23] <= +rf_source_data[24] <= +rf_source_data[25] <= +rf_source_data[26] <= +rf_source_data[27] <= +rf_source_data[28] <= +rf_source_data[29] <= +rf_source_data[30] <= +rf_source_data[31] <= +rf_source_data[32] <= cp_data[32].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[33] <= cp_data[33].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[34] <= cp_data[34].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[35] <= cp_data[35].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[36] <= cp_data[36].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[37] <= cp_data[37].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[38] <= cp_data[38].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[39] <= cp_data[39].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[40] <= cp_data[40].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[41] <= cp_data[41].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[42] <= cp_data[42].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[43] <= cp_data[43].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[44] <= cp_data[44].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[45] <= cp_data[45].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[46] <= cp_data[46].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[47] <= cp_data[47].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[48] <= cp_data[48].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[49] <= cp_data[49].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[50] <= cp_data[50].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[51] <= cp_data[51].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[52] <= cp_data[52].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[53] <= cp_data[53].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[54] <= cp_data[54].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[55] <= cp_data[55].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[56] <= cp_data[56].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[57] <= cp_data[57].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[58] <= cp_data[58].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[59] <= cp_data[59].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[60] <= cp_data[60].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[61] <= cp_data[61].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[62] <= cp_data[62].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[63] <= cp_data[63].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[64] <= cp_data[64].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[65] <= cp_data[65].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[66] <= cp_data[66].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[67] <= cp_data[67].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[68] <= cp_data[68].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[69] <= cp_data[69].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[70] <= cp_data[70].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[71] <= cp_data[71].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[72] <= cp_data[72].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[73] <= cp_data[73].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[74] <= cp_data[74].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[75] <= cp_data[75].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[76] <= cp_data[76].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[77] <= cp_data[77].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[78] <= cp_data[78].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[79] <= cp_data[79].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[80] <= cp_data[80].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[81] <= cp_data[81].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[82] <= cp_data[82].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[83] <= cp_data[83].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[84] <= cp_data[84].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[85] <= cp_data[85].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[86] <= cp_data[86].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[87] <= cp_data[87].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[88] <= +rf_source_data[89] <= +rf_source_data[90] <= cp_data[90].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[91] <= cp_data[91].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[92] <= cp_data[92].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[93] <= cp_data[93].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[94] <= cp_data[94].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[95] <= cp_data[95].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[96] <= nonposted_write_endofpacket.DB_MAX_OUTPUT_PORT_TYPE +rf_source_valid <= rf_source_valid.DB_MAX_OUTPUT_PORT_TYPE +rf_source_startofpacket <= cp_startofpacket.DB_MAX_OUTPUT_PORT_TYPE +rf_source_endofpacket <= cp_endofpacket.DB_MAX_OUTPUT_PORT_TYPE +rf_source_ready => cp_ready.IN1 +rf_source_ready => m0_write.IN1 +rf_source_ready => m0_lock.IN1 +rf_source_ready => rf_source_valid.IN1 +rf_source_ready => m0_read.IN1 +rf_sink_data[0] => ~NO_FANOUT~ +rf_sink_data[1] => ~NO_FANOUT~ +rf_sink_data[2] => ~NO_FANOUT~ +rf_sink_data[3] => ~NO_FANOUT~ +rf_sink_data[4] => ~NO_FANOUT~ +rf_sink_data[5] => ~NO_FANOUT~ +rf_sink_data[6] => ~NO_FANOUT~ +rf_sink_data[7] => ~NO_FANOUT~ +rf_sink_data[8] => ~NO_FANOUT~ +rf_sink_data[9] => ~NO_FANOUT~ +rf_sink_data[10] => ~NO_FANOUT~ +rf_sink_data[11] => ~NO_FANOUT~ +rf_sink_data[12] => ~NO_FANOUT~ +rf_sink_data[13] => ~NO_FANOUT~ +rf_sink_data[14] => ~NO_FANOUT~ +rf_sink_data[15] => ~NO_FANOUT~ +rf_sink_data[16] => ~NO_FANOUT~ +rf_sink_data[17] => ~NO_FANOUT~ +rf_sink_data[18] => ~NO_FANOUT~ +rf_sink_data[19] => ~NO_FANOUT~ +rf_sink_data[20] => ~NO_FANOUT~ +rf_sink_data[21] => ~NO_FANOUT~ +rf_sink_data[22] => ~NO_FANOUT~ +rf_sink_data[23] => ~NO_FANOUT~ +rf_sink_data[24] => ~NO_FANOUT~ +rf_sink_data[25] => ~NO_FANOUT~ +rf_sink_data[26] => ~NO_FANOUT~ +rf_sink_data[27] => ~NO_FANOUT~ +rf_sink_data[28] => ~NO_FANOUT~ +rf_sink_data[29] => ~NO_FANOUT~ +rf_sink_data[30] => ~NO_FANOUT~ +rf_sink_data[31] => ~NO_FANOUT~ +rf_sink_data[32] => rp_data[32].DATAIN +rf_sink_data[33] => rp_data[33].DATAIN +rf_sink_data[34] => rp_data[34].DATAIN +rf_sink_data[35] => rp_data[35].DATAIN +rf_sink_data[36] => rf_sink_addr[0].IN1 +rf_sink_data[37] => rf_sink_addr[1].IN1 +rf_sink_data[38] => rf_sink_addr[2].IN1 +rf_sink_data[39] => rf_sink_addr[3].IN1 +rf_sink_data[40] => rf_sink_addr[4].IN1 +rf_sink_data[41] => rf_sink_addr[5].IN1 +rf_sink_data[42] => rf_sink_addr[6].IN1 +rf_sink_data[43] => rf_sink_addr[7].IN1 +rf_sink_data[44] => rf_sink_addr[8].IN1 +rf_sink_data[45] => rf_sink_addr[9].IN1 +rf_sink_data[46] => rf_sink_addr[10].IN1 +rf_sink_data[47] => rf_sink_addr[11].IN1 +rf_sink_data[48] => rf_sink_addr[12].IN1 +rf_sink_data[49] => rf_sink_addr[13].IN1 +rf_sink_data[50] => rf_sink_addr[14].IN1 +rf_sink_data[51] => rf_sink_addr[15].IN1 +rf_sink_data[52] => rf_sink_addr[16].IN1 +rf_sink_data[53] => rf_sink_addr[17].IN1 +rf_sink_data[54] => rf_sink_addr[18].IN1 +rf_sink_data[55] => rf_sink_compressed.IN1 +rf_sink_data[56] => rp_data[56].DATAIN +rf_sink_data[57] => comb.OUTPUTSELECT +rf_sink_data[57] => rp_data[57].DATAIN +rf_sink_data[58] => rp_data.IN0 +rf_sink_data[59] => rp_data[59].DATAIN +rf_sink_data[60] => rp_data[60].DATAIN +rf_sink_data[61] => rf_sink_byte_cnt[0].IN1 +rf_sink_data[62] => rf_sink_byte_cnt[1].IN1 +rf_sink_data[63] => rf_sink_byte_cnt[2].IN1 +rf_sink_data[64] => rf_sink_burstwrap[0].IN1 +rf_sink_data[65] => rf_sink_burstwrap[1].IN1 +rf_sink_data[66] => rf_sink_burstwrap[2].IN1 +rf_sink_data[67] => rf_sink_burstsize[0].IN1 +rf_sink_data[68] => rf_sink_burstsize[1].IN1 +rf_sink_data[69] => rf_sink_burstsize[2].IN1 +rf_sink_data[70] => rp_data[70].DATAIN +rf_sink_data[71] => rp_data[71].DATAIN +rf_sink_data[72] => rp_data[72].DATAIN +rf_sink_data[73] => rp_data[73].DATAIN +rf_sink_data[74] => rp_data[74].DATAIN +rf_sink_data[75] => rp_data[75].DATAIN +rf_sink_data[76] => rp_data[81].DATAIN +rf_sink_data[77] => rp_data[82].DATAIN +rf_sink_data[78] => rp_data[83].DATAIN +rf_sink_data[79] => rp_data[84].DATAIN +rf_sink_data[80] => rp_data[85].DATAIN +rf_sink_data[81] => rp_data[76].DATAIN +rf_sink_data[82] => rp_data[77].DATAIN +rf_sink_data[83] => rp_data[78].DATAIN +rf_sink_data[84] => rp_data[79].DATAIN +rf_sink_data[85] => rp_data[80].DATAIN +rf_sink_data[86] => rp_data[86].DATAIN +rf_sink_data[87] => rp_data[87].DATAIN +rf_sink_data[88] => rp_data[88].DATAIN +rf_sink_data[89] => rp_data[89].DATAIN +rf_sink_data[90] => rp_data[90].DATAIN +rf_sink_data[91] => rp_data[91].DATAIN +rf_sink_data[92] => rp_data[92].DATAIN +rf_sink_data[93] => rp_data[93].DATAIN +rf_sink_data[94] => ~NO_FANOUT~ +rf_sink_data[95] => ~NO_FANOUT~ +rf_sink_data[96] => rdata_fifo_sink_ready.IN0 +rf_sink_data[96] => comb.IN0 +rf_sink_valid => rdata_fifo_sink_ready.IN1 +rf_sink_valid => comb.IN1 +rf_sink_startofpacket => comb.DATAA +rf_sink_endofpacket => rf_sink_endofpacket.IN1 +rf_sink_ready <= altera_merlin_burst_uncompressor:uncompressor.sink_ready +rdata_fifo_src_data[0] <= m0_readdata[0].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[1] <= m0_readdata[1].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[2] <= m0_readdata[2].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[3] <= m0_readdata[3].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[4] <= m0_readdata[4].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[5] <= m0_readdata[5].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[6] <= m0_readdata[6].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[7] <= m0_readdata[7].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[8] <= m0_readdata[8].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[9] <= m0_readdata[9].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[10] <= m0_readdata[10].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[11] <= m0_readdata[11].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[12] <= m0_readdata[12].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[13] <= m0_readdata[13].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[14] <= m0_readdata[14].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[15] <= m0_readdata[15].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[16] <= m0_readdata[16].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[17] <= m0_readdata[17].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[18] <= m0_readdata[18].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[19] <= m0_readdata[19].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[20] <= m0_readdata[20].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[21] <= m0_readdata[21].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[22] <= m0_readdata[22].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[23] <= m0_readdata[23].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[24] <= m0_readdata[24].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[25] <= m0_readdata[25].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[26] <= m0_readdata[26].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[27] <= m0_readdata[27].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[28] <= m0_readdata[28].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[29] <= m0_readdata[29].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[30] <= m0_readdata[30].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[31] <= m0_readdata[31].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[32] <= m0_response[0].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[33] <= m0_response[1].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_valid <= rdata_fifo_src_valid.DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_ready => ~NO_FANOUT~ +rdata_fifo_sink_data[0] => rp_data[0].DATAIN +rdata_fifo_sink_data[1] => rp_data[1].DATAIN +rdata_fifo_sink_data[2] => rp_data[2].DATAIN +rdata_fifo_sink_data[3] => rp_data[3].DATAIN +rdata_fifo_sink_data[4] => rp_data[4].DATAIN +rdata_fifo_sink_data[5] => rp_data[5].DATAIN +rdata_fifo_sink_data[6] => rp_data[6].DATAIN +rdata_fifo_sink_data[7] => rp_data[7].DATAIN +rdata_fifo_sink_data[8] => rp_data[8].DATAIN +rdata_fifo_sink_data[9] => rp_data[9].DATAIN +rdata_fifo_sink_data[10] => rp_data[10].DATAIN +rdata_fifo_sink_data[11] => rp_data[11].DATAIN +rdata_fifo_sink_data[12] => rp_data[12].DATAIN +rdata_fifo_sink_data[13] => rp_data[13].DATAIN +rdata_fifo_sink_data[14] => rp_data[14].DATAIN +rdata_fifo_sink_data[15] => rp_data[15].DATAIN +rdata_fifo_sink_data[16] => rp_data[16].DATAIN +rdata_fifo_sink_data[17] => rp_data[17].DATAIN +rdata_fifo_sink_data[18] => rp_data[18].DATAIN +rdata_fifo_sink_data[19] => rp_data[19].DATAIN +rdata_fifo_sink_data[20] => rp_data[20].DATAIN +rdata_fifo_sink_data[21] => rp_data[21].DATAIN +rdata_fifo_sink_data[22] => rp_data[22].DATAIN +rdata_fifo_sink_data[23] => rp_data[23].DATAIN +rdata_fifo_sink_data[24] => rp_data[24].DATAIN +rdata_fifo_sink_data[25] => rp_data[25].DATAIN +rdata_fifo_sink_data[26] => rp_data[26].DATAIN +rdata_fifo_sink_data[27] => rp_data[27].DATAIN +rdata_fifo_sink_data[28] => rp_data[28].DATAIN +rdata_fifo_sink_data[29] => rp_data[29].DATAIN +rdata_fifo_sink_data[30] => rp_data[30].DATAIN +rdata_fifo_sink_data[31] => rp_data[31].DATAIN +rdata_fifo_sink_data[32] => rp_data[94].DATAIN +rdata_fifo_sink_data[33] => rp_data[95].DATAIN +rdata_fifo_sink_valid => rp_valid.IN1 +rdata_fifo_sink_valid => rdata_fifo_sink_ready.IN0 +rdata_fifo_sink_valid => comb.IN1 +rdata_fifo_sink_ready <= rdata_fifo_sink_ready.DB_MAX_OUTPUT_PORT_TYPE +cp_ready <= cp_ready.DB_MAX_OUTPUT_PORT_TYPE +cp_valid => local_lock.IN0 +cp_valid => local_write.IN0 +cp_valid => local_read.IN0 +cp_valid => local_compressed_read.IN0 +cp_data[0] => m0_writedata[0].DATAIN +cp_data[1] => m0_writedata[1].DATAIN +cp_data[2] => m0_writedata[2].DATAIN +cp_data[3] => m0_writedata[3].DATAIN +cp_data[4] => m0_writedata[4].DATAIN +cp_data[5] => m0_writedata[5].DATAIN +cp_data[6] => m0_writedata[6].DATAIN +cp_data[7] => m0_writedata[7].DATAIN +cp_data[8] => m0_writedata[8].DATAIN +cp_data[9] => m0_writedata[9].DATAIN +cp_data[10] => m0_writedata[10].DATAIN +cp_data[11] => m0_writedata[11].DATAIN +cp_data[12] => m0_writedata[12].DATAIN +cp_data[13] => m0_writedata[13].DATAIN +cp_data[14] => m0_writedata[14].DATAIN +cp_data[15] => m0_writedata[15].DATAIN +cp_data[16] => m0_writedata[16].DATAIN +cp_data[17] => m0_writedata[17].DATAIN +cp_data[18] => m0_writedata[18].DATAIN +cp_data[19] => m0_writedata[19].DATAIN +cp_data[20] => m0_writedata[20].DATAIN +cp_data[21] => m0_writedata[21].DATAIN +cp_data[22] => m0_writedata[22].DATAIN +cp_data[23] => m0_writedata[23].DATAIN +cp_data[24] => m0_writedata[24].DATAIN +cp_data[25] => m0_writedata[25].DATAIN +cp_data[26] => m0_writedata[26].DATAIN +cp_data[27] => m0_writedata[27].DATAIN +cp_data[28] => m0_writedata[28].DATAIN +cp_data[29] => m0_writedata[29].DATAIN +cp_data[30] => m0_writedata[30].DATAIN +cp_data[31] => m0_writedata[31].DATAIN +cp_data[32] => rf_source_data[32].DATAIN +cp_data[32] => m0_byteenable[0].DATAIN +cp_data[33] => rf_source_data[33].DATAIN +cp_data[33] => m0_byteenable[1].DATAIN +cp_data[34] => rf_source_data[34].DATAIN +cp_data[34] => m0_byteenable[2].DATAIN +cp_data[35] => rf_source_data[35].DATAIN +cp_data[35] => m0_byteenable[3].DATAIN +cp_data[36] => rf_source_data[36].DATAIN +cp_data[37] => rf_source_data[37].DATAIN +cp_data[38] => rf_source_data[38].DATAIN +cp_data[38] => m0_address[2].DATAIN +cp_data[39] => rf_source_data[39].DATAIN +cp_data[39] => m0_address[3].DATAIN +cp_data[40] => rf_source_data[40].DATAIN +cp_data[40] => m0_address[4].DATAIN +cp_data[41] => rf_source_data[41].DATAIN +cp_data[41] => m0_address[5].DATAIN +cp_data[42] => rf_source_data[42].DATAIN +cp_data[42] => m0_address[6].DATAIN +cp_data[43] => rf_source_data[43].DATAIN +cp_data[43] => m0_address[7].DATAIN +cp_data[44] => rf_source_data[44].DATAIN +cp_data[44] => m0_address[8].DATAIN +cp_data[45] => rf_source_data[45].DATAIN +cp_data[45] => m0_address[9].DATAIN +cp_data[46] => rf_source_data[46].DATAIN +cp_data[46] => m0_address[10].DATAIN +cp_data[47] => rf_source_data[47].DATAIN +cp_data[47] => m0_address[11].DATAIN +cp_data[48] => rf_source_data[48].DATAIN +cp_data[48] => m0_address[12].DATAIN +cp_data[49] => rf_source_data[49].DATAIN +cp_data[49] => m0_address[13].DATAIN +cp_data[50] => rf_source_data[50].DATAIN +cp_data[50] => m0_address[14].DATAIN +cp_data[51] => rf_source_data[51].DATAIN +cp_data[51] => m0_address[15].DATAIN +cp_data[52] => rf_source_data[52].DATAIN +cp_data[52] => m0_address[16].DATAIN +cp_data[53] => rf_source_data[53].DATAIN +cp_data[53] => m0_address[17].DATAIN +cp_data[54] => rf_source_data[54].DATAIN +cp_data[54] => m0_address[18].DATAIN +cp_data[55] => local_compressed_read.IN1 +cp_data[55] => rf_source_data[55].DATAIN +cp_data[56] => rf_source_data[56].DATAIN +cp_data[56] => m0_writeresponserequest.IN1 +cp_data[56] => comb.IN1 +cp_data[57] => local_write.IN1 +cp_data[57] => rf_source_data[57].DATAIN +cp_data[58] => local_read.IN1 +cp_data[58] => rf_source_data[58].DATAIN +cp_data[59] => local_lock.IN1 +cp_data[59] => rf_source_data[59].DATAIN +cp_data[60] => rf_source_data[60].DATAIN +cp_data[61] => m0_burstcount.DATAA +cp_data[61] => rf_source_data[61].DATAIN +cp_data[62] => m0_burstcount.DATAA +cp_data[62] => rf_source_data[62].DATAIN +cp_data[63] => m0_burstcount.DATAA +cp_data[63] => rf_source_data[63].DATAIN +cp_data[64] => rf_source_data[64].DATAIN +cp_data[65] => rf_source_data[65].DATAIN +cp_data[66] => rf_source_data[66].DATAIN +cp_data[67] => rf_source_data[67].DATAIN +cp_data[68] => rf_source_data[68].DATAIN +cp_data[69] => rf_source_data[69].DATAIN +cp_data[70] => rf_source_data[70].DATAIN +cp_data[71] => rf_source_data[71].DATAIN +cp_data[72] => rf_source_data[72].DATAIN +cp_data[73] => rf_source_data[73].DATAIN +cp_data[74] => rf_source_data[74].DATAIN +cp_data[75] => rf_source_data[75].DATAIN +cp_data[76] => rf_source_data[76].DATAIN +cp_data[77] => rf_source_data[77].DATAIN +cp_data[78] => rf_source_data[78].DATAIN +cp_data[79] => rf_source_data[79].DATAIN +cp_data[80] => rf_source_data[80].DATAIN +cp_data[81] => rf_source_data[81].DATAIN +cp_data[82] => rf_source_data[82].DATAIN +cp_data[83] => rf_source_data[83].DATAIN +cp_data[84] => rf_source_data[84].DATAIN +cp_data[85] => rf_source_data[85].DATAIN +cp_data[86] => rf_source_data[86].DATAIN +cp_data[87] => rf_source_data[87].DATAIN +cp_data[87] => m0_debugaccess.DATAIN +cp_data[88] => ~NO_FANOUT~ +cp_data[89] => ~NO_FANOUT~ +cp_data[90] => rf_source_data[90].DATAIN +cp_data[91] => rf_source_data[91].DATAIN +cp_data[92] => rf_source_data[92].DATAIN +cp_data[93] => rf_source_data[93].DATAIN +cp_data[94] => rf_source_data[94].DATAIN +cp_data[95] => rf_source_data[95].DATAIN +cp_channel[0] => ~NO_FANOUT~ +cp_channel[1] => ~NO_FANOUT~ +cp_channel[2] => ~NO_FANOUT~ +cp_channel[3] => ~NO_FANOUT~ +cp_channel[4] => ~NO_FANOUT~ +cp_channel[5] => ~NO_FANOUT~ +cp_channel[6] => ~NO_FANOUT~ +cp_channel[7] => ~NO_FANOUT~ +cp_channel[8] => ~NO_FANOUT~ +cp_channel[9] => ~NO_FANOUT~ +cp_channel[10] => ~NO_FANOUT~ +cp_channel[11] => ~NO_FANOUT~ +cp_channel[12] => ~NO_FANOUT~ +cp_channel[13] => ~NO_FANOUT~ +cp_channel[14] => ~NO_FANOUT~ +cp_channel[15] => ~NO_FANOUT~ +cp_channel[16] => ~NO_FANOUT~ +cp_channel[17] => ~NO_FANOUT~ +cp_startofpacket => rf_source_startofpacket.DATAIN +cp_endofpacket => nonposted_write_endofpacket.IN1 +cp_endofpacket => rf_source_endofpacket.DATAIN +rp_ready => rp_ready.IN1 +rp_valid <= rp_valid.DB_MAX_OUTPUT_PORT_TYPE +rp_data[0] <= rdata_fifo_sink_data[0].DB_MAX_OUTPUT_PORT_TYPE +rp_data[1] <= rdata_fifo_sink_data[1].DB_MAX_OUTPUT_PORT_TYPE +rp_data[2] <= rdata_fifo_sink_data[2].DB_MAX_OUTPUT_PORT_TYPE +rp_data[3] <= rdata_fifo_sink_data[3].DB_MAX_OUTPUT_PORT_TYPE +rp_data[4] <= rdata_fifo_sink_data[4].DB_MAX_OUTPUT_PORT_TYPE +rp_data[5] <= rdata_fifo_sink_data[5].DB_MAX_OUTPUT_PORT_TYPE +rp_data[6] <= rdata_fifo_sink_data[6].DB_MAX_OUTPUT_PORT_TYPE +rp_data[7] <= rdata_fifo_sink_data[7].DB_MAX_OUTPUT_PORT_TYPE +rp_data[8] <= rdata_fifo_sink_data[8].DB_MAX_OUTPUT_PORT_TYPE +rp_data[9] <= rdata_fifo_sink_data[9].DB_MAX_OUTPUT_PORT_TYPE +rp_data[10] <= rdata_fifo_sink_data[10].DB_MAX_OUTPUT_PORT_TYPE +rp_data[11] <= rdata_fifo_sink_data[11].DB_MAX_OUTPUT_PORT_TYPE +rp_data[12] <= rdata_fifo_sink_data[12].DB_MAX_OUTPUT_PORT_TYPE +rp_data[13] <= rdata_fifo_sink_data[13].DB_MAX_OUTPUT_PORT_TYPE +rp_data[14] <= rdata_fifo_sink_data[14].DB_MAX_OUTPUT_PORT_TYPE +rp_data[15] <= rdata_fifo_sink_data[15].DB_MAX_OUTPUT_PORT_TYPE +rp_data[16] <= rdata_fifo_sink_data[16].DB_MAX_OUTPUT_PORT_TYPE +rp_data[17] <= rdata_fifo_sink_data[17].DB_MAX_OUTPUT_PORT_TYPE +rp_data[18] <= rdata_fifo_sink_data[18].DB_MAX_OUTPUT_PORT_TYPE +rp_data[19] <= rdata_fifo_sink_data[19].DB_MAX_OUTPUT_PORT_TYPE +rp_data[20] <= rdata_fifo_sink_data[20].DB_MAX_OUTPUT_PORT_TYPE +rp_data[21] <= rdata_fifo_sink_data[21].DB_MAX_OUTPUT_PORT_TYPE +rp_data[22] <= rdata_fifo_sink_data[22].DB_MAX_OUTPUT_PORT_TYPE +rp_data[23] <= rdata_fifo_sink_data[23].DB_MAX_OUTPUT_PORT_TYPE +rp_data[24] <= rdata_fifo_sink_data[24].DB_MAX_OUTPUT_PORT_TYPE +rp_data[25] <= rdata_fifo_sink_data[25].DB_MAX_OUTPUT_PORT_TYPE +rp_data[26] <= rdata_fifo_sink_data[26].DB_MAX_OUTPUT_PORT_TYPE +rp_data[27] <= rdata_fifo_sink_data[27].DB_MAX_OUTPUT_PORT_TYPE +rp_data[28] <= rdata_fifo_sink_data[28].DB_MAX_OUTPUT_PORT_TYPE +rp_data[29] <= rdata_fifo_sink_data[29].DB_MAX_OUTPUT_PORT_TYPE +rp_data[30] <= rdata_fifo_sink_data[30].DB_MAX_OUTPUT_PORT_TYPE +rp_data[31] <= rdata_fifo_sink_data[31].DB_MAX_OUTPUT_PORT_TYPE +rp_data[32] <= rf_sink_data[32].DB_MAX_OUTPUT_PORT_TYPE +rp_data[33] <= rf_sink_data[33].DB_MAX_OUTPUT_PORT_TYPE +rp_data[34] <= rf_sink_data[34].DB_MAX_OUTPUT_PORT_TYPE +rp_data[35] <= rf_sink_data[35].DB_MAX_OUTPUT_PORT_TYPE +rp_data[36] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[37] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[38] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[39] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[40] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[41] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[42] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[43] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[44] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[45] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[46] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[47] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[48] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[49] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[50] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[51] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[52] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[53] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[54] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[55] <= altera_merlin_burst_uncompressor:uncompressor.source_is_compressed +rp_data[56] <= rf_sink_data[56].DB_MAX_OUTPUT_PORT_TYPE +rp_data[57] <= rf_sink_data[57].DB_MAX_OUTPUT_PORT_TYPE +rp_data[58] <= rp_data.DB_MAX_OUTPUT_PORT_TYPE +rp_data[59] <= rf_sink_data[59].DB_MAX_OUTPUT_PORT_TYPE +rp_data[60] <= rf_sink_data[60].DB_MAX_OUTPUT_PORT_TYPE +rp_data[61] <= altera_merlin_burst_uncompressor:uncompressor.source_byte_cnt +rp_data[62] <= altera_merlin_burst_uncompressor:uncompressor.source_byte_cnt +rp_data[63] <= altera_merlin_burst_uncompressor:uncompressor.source_byte_cnt +rp_data[64] <= altera_merlin_burst_uncompressor:uncompressor.source_burstwrap +rp_data[65] <= altera_merlin_burst_uncompressor:uncompressor.source_burstwrap +rp_data[66] <= altera_merlin_burst_uncompressor:uncompressor.source_burstwrap +rp_data[67] <= altera_merlin_burst_uncompressor:uncompressor.source_burstsize +rp_data[68] <= altera_merlin_burst_uncompressor:uncompressor.source_burstsize +rp_data[69] <= altera_merlin_burst_uncompressor:uncompressor.source_burstsize +rp_data[70] <= rf_sink_data[70].DB_MAX_OUTPUT_PORT_TYPE +rp_data[71] <= rf_sink_data[71].DB_MAX_OUTPUT_PORT_TYPE +rp_data[72] <= rf_sink_data[72].DB_MAX_OUTPUT_PORT_TYPE +rp_data[73] <= rf_sink_data[73].DB_MAX_OUTPUT_PORT_TYPE +rp_data[74] <= rf_sink_data[74].DB_MAX_OUTPUT_PORT_TYPE +rp_data[75] <= rf_sink_data[75].DB_MAX_OUTPUT_PORT_TYPE +rp_data[76] <= rf_sink_data[81].DB_MAX_OUTPUT_PORT_TYPE +rp_data[77] <= rf_sink_data[82].DB_MAX_OUTPUT_PORT_TYPE +rp_data[78] <= rf_sink_data[83].DB_MAX_OUTPUT_PORT_TYPE +rp_data[79] <= rf_sink_data[84].DB_MAX_OUTPUT_PORT_TYPE +rp_data[80] <= rf_sink_data[85].DB_MAX_OUTPUT_PORT_TYPE +rp_data[81] <= rf_sink_data[76].DB_MAX_OUTPUT_PORT_TYPE +rp_data[82] <= rf_sink_data[77].DB_MAX_OUTPUT_PORT_TYPE +rp_data[83] <= rf_sink_data[78].DB_MAX_OUTPUT_PORT_TYPE +rp_data[84] <= rf_sink_data[79].DB_MAX_OUTPUT_PORT_TYPE +rp_data[85] <= rf_sink_data[80].DB_MAX_OUTPUT_PORT_TYPE +rp_data[86] <= rf_sink_data[86].DB_MAX_OUTPUT_PORT_TYPE +rp_data[87] <= rf_sink_data[87].DB_MAX_OUTPUT_PORT_TYPE +rp_data[88] <= rf_sink_data[88].DB_MAX_OUTPUT_PORT_TYPE +rp_data[89] <= rf_sink_data[89].DB_MAX_OUTPUT_PORT_TYPE +rp_data[90] <= rf_sink_data[90].DB_MAX_OUTPUT_PORT_TYPE +rp_data[91] <= rf_sink_data[91].DB_MAX_OUTPUT_PORT_TYPE +rp_data[92] <= rf_sink_data[92].DB_MAX_OUTPUT_PORT_TYPE +rp_data[93] <= rf_sink_data[93].DB_MAX_OUTPUT_PORT_TYPE +rp_data[94] <= rdata_fifo_sink_data[32].DB_MAX_OUTPUT_PORT_TYPE +rp_data[95] <= rdata_fifo_sink_data[33].DB_MAX_OUTPUT_PORT_TYPE +rp_startofpacket <= altera_merlin_burst_uncompressor:uncompressor.source_startofpacket +rp_endofpacket <= altera_merlin_burst_uncompressor:uncompressor.source_endofpacket + + +|lights|nios_system:NiosII|altera_merlin_slave_agent:jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor +clk => burst_uncompress_address_offset[0].CLK +clk => burst_uncompress_address_offset[1].CLK +clk => burst_uncompress_address_offset[2].CLK +clk => burst_uncompress_address_offset[3].CLK +clk => burst_uncompress_address_offset[4].CLK +clk => burst_uncompress_address_offset[5].CLK +clk => burst_uncompress_address_offset[6].CLK +clk => burst_uncompress_address_offset[7].CLK +clk => burst_uncompress_address_offset[8].CLK +clk => burst_uncompress_address_offset[9].CLK +clk => burst_uncompress_address_offset[10].CLK +clk => burst_uncompress_address_offset[11].CLK +clk => burst_uncompress_address_offset[12].CLK +clk => burst_uncompress_address_offset[13].CLK +clk => burst_uncompress_address_offset[14].CLK +clk => burst_uncompress_address_offset[15].CLK +clk => burst_uncompress_address_offset[16].CLK +clk => burst_uncompress_address_offset[17].CLK +clk => burst_uncompress_address_offset[18].CLK +clk => burst_uncompress_address_base[0].CLK +clk => burst_uncompress_address_base[1].CLK +clk => burst_uncompress_address_base[2].CLK +clk => burst_uncompress_address_base[3].CLK +clk => burst_uncompress_address_base[4].CLK +clk => burst_uncompress_address_base[5].CLK +clk => burst_uncompress_address_base[6].CLK +clk => burst_uncompress_address_base[7].CLK +clk => burst_uncompress_address_base[8].CLK +clk => burst_uncompress_address_base[9].CLK +clk => burst_uncompress_address_base[10].CLK +clk => burst_uncompress_address_base[11].CLK +clk => burst_uncompress_address_base[12].CLK +clk => burst_uncompress_address_base[13].CLK +clk => burst_uncompress_address_base[14].CLK +clk => burst_uncompress_address_base[15].CLK +clk => burst_uncompress_address_base[16].CLK +clk => burst_uncompress_address_base[17].CLK +clk => burst_uncompress_address_base[18].CLK +clk => burst_uncompress_byte_counter[0].CLK +clk => burst_uncompress_byte_counter[1].CLK +clk => burst_uncompress_byte_counter[2].CLK +clk => burst_uncompress_busy.CLK +reset => burst_uncompress_address_offset[0].ACLR +reset => burst_uncompress_address_offset[1].ACLR +reset => burst_uncompress_address_offset[2].ACLR +reset => burst_uncompress_address_offset[3].ACLR +reset => burst_uncompress_address_offset[4].ACLR +reset => burst_uncompress_address_offset[5].ACLR +reset => burst_uncompress_address_offset[6].ACLR +reset => burst_uncompress_address_offset[7].ACLR +reset => burst_uncompress_address_offset[8].ACLR +reset => burst_uncompress_address_offset[9].ACLR +reset => burst_uncompress_address_offset[10].ACLR +reset => burst_uncompress_address_offset[11].ACLR +reset => burst_uncompress_address_offset[12].ACLR +reset => burst_uncompress_address_offset[13].ACLR +reset => burst_uncompress_address_offset[14].ACLR +reset => burst_uncompress_address_offset[15].ACLR +reset => burst_uncompress_address_offset[16].ACLR +reset => burst_uncompress_address_offset[17].ACLR +reset => burst_uncompress_address_offset[18].ACLR +reset => burst_uncompress_address_base[0].ACLR +reset => burst_uncompress_address_base[1].ACLR +reset => burst_uncompress_address_base[2].ACLR +reset => burst_uncompress_address_base[3].ACLR +reset => burst_uncompress_address_base[4].ACLR +reset => burst_uncompress_address_base[5].ACLR +reset => burst_uncompress_address_base[6].ACLR +reset => burst_uncompress_address_base[7].ACLR +reset => burst_uncompress_address_base[8].ACLR +reset => burst_uncompress_address_base[9].ACLR +reset => burst_uncompress_address_base[10].ACLR +reset => burst_uncompress_address_base[11].ACLR +reset => burst_uncompress_address_base[12].ACLR +reset => burst_uncompress_address_base[13].ACLR +reset => burst_uncompress_address_base[14].ACLR +reset => burst_uncompress_address_base[15].ACLR +reset => burst_uncompress_address_base[16].ACLR +reset => burst_uncompress_address_base[17].ACLR +reset => burst_uncompress_address_base[18].ACLR +reset => burst_uncompress_byte_counter[0].ACLR +reset => burst_uncompress_byte_counter[1].ACLR +reset => burst_uncompress_byte_counter[2].ACLR +reset => burst_uncompress_busy.ACLR +sink_startofpacket => source_startofpacket.IN1 +sink_endofpacket => source_endofpacket.IN1 +sink_valid => first_packet_beat.IN1 +sink_valid => last_packet_beat.IN1 +sink_valid => last_packet_beat.IN1 +sink_valid => always0.IN1 +sink_valid => sink_ready.IN0 +sink_valid => source_valid.DATAIN +sink_ready <= sink_ready.DB_MAX_OUTPUT_PORT_TYPE +sink_addr[0] => burst_uncompress_address_base.IN0 +sink_addr[0] => comb.DATAB +sink_addr[0] => source_addr.DATAB +sink_addr[1] => burst_uncompress_address_base.IN0 +sink_addr[1] => comb.DATAB +sink_addr[1] => source_addr.DATAB +sink_addr[2] => burst_uncompress_address_base.IN0 +sink_addr[2] => comb.DATAB +sink_addr[2] => source_addr.DATAB +sink_addr[3] => burst_uncompress_address_base.IN0 +sink_addr[3] => comb.DATAB +sink_addr[3] => source_addr.DATAB +sink_addr[4] => burst_uncompress_address_base.IN0 +sink_addr[4] => comb.DATAB +sink_addr[4] => source_addr.DATAB +sink_addr[5] => burst_uncompress_address_base.IN0 +sink_addr[5] => comb.DATAB +sink_addr[5] => source_addr.DATAB +sink_addr[6] => burst_uncompress_address_base.IN0 +sink_addr[6] => comb.DATAB +sink_addr[6] => source_addr.DATAB +sink_addr[7] => burst_uncompress_address_base.IN0 +sink_addr[7] => comb.DATAB +sink_addr[7] => source_addr.DATAB +sink_addr[8] => burst_uncompress_address_base.IN0 +sink_addr[8] => comb.DATAB +sink_addr[8] => source_addr.DATAB +sink_addr[9] => burst_uncompress_address_base.IN0 +sink_addr[9] => comb.DATAB +sink_addr[9] => source_addr.DATAB +sink_addr[10] => burst_uncompress_address_base.IN0 +sink_addr[10] => comb.DATAB +sink_addr[10] => source_addr.DATAB +sink_addr[11] => burst_uncompress_address_base.IN0 +sink_addr[11] => comb.DATAB +sink_addr[11] => source_addr.DATAB +sink_addr[12] => burst_uncompress_address_base.IN0 +sink_addr[12] => comb.DATAB +sink_addr[12] => source_addr.DATAB +sink_addr[13] => burst_uncompress_address_base.IN0 +sink_addr[13] => comb.DATAB +sink_addr[13] => source_addr.DATAB +sink_addr[14] => burst_uncompress_address_base.IN0 +sink_addr[14] => comb.DATAB +sink_addr[14] => source_addr.DATAB +sink_addr[15] => burst_uncompress_address_base.IN0 +sink_addr[15] => comb.DATAB +sink_addr[15] => source_addr.DATAB +sink_addr[16] => burst_uncompress_address_base.IN0 +sink_addr[16] => comb.DATAB +sink_addr[16] => source_addr.DATAB +sink_addr[17] => burst_uncompress_address_base.IN0 +sink_addr[17] => comb.DATAB +sink_addr[17] => source_addr.DATAB +sink_addr[18] => burst_uncompress_address_base.IN0 +sink_addr[18] => comb.DATAB +sink_addr[18] => source_addr.DATAB +sink_burstwrap[0] => p1_burst_uncompress_address_offset[0].IN1 +sink_burstwrap[0] => source_burstwrap[0].DATAIN +sink_burstwrap[0] => burst_uncompress_address_base.IN1 +sink_burstwrap[1] => p1_burst_uncompress_address_offset[1].IN1 +sink_burstwrap[1] => source_burstwrap[1].DATAIN +sink_burstwrap[1] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[2].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[18].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[17].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[16].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[15].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[14].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[13].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[12].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[11].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[10].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[9].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[8].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[7].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[6].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[5].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[4].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[3].IN1 +sink_burstwrap[2] => source_burstwrap[2].DATAIN +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_byte_cnt[0] => source_byte_cnt.DATAB +sink_byte_cnt[0] => Add1.IN6 +sink_byte_cnt[0] => Equal1.IN2 +sink_byte_cnt[1] => source_byte_cnt.DATAB +sink_byte_cnt[1] => Add1.IN5 +sink_byte_cnt[1] => Equal1.IN1 +sink_byte_cnt[2] => source_byte_cnt.DATAB +sink_byte_cnt[2] => Add1.IN4 +sink_byte_cnt[2] => Equal1.IN0 +sink_is_compressed => last_packet_beat.IN1 +sink_burstsize[0] => Decoder0.IN2 +sink_burstsize[0] => source_burstsize[0].DATAIN +sink_burstsize[1] => Decoder0.IN1 +sink_burstsize[1] => source_burstsize[1].DATAIN +sink_burstsize[2] => Decoder0.IN0 +sink_burstsize[2] => source_burstsize[2].DATAIN +source_startofpacket <= source_startofpacket.DB_MAX_OUTPUT_PORT_TYPE +source_endofpacket <= source_endofpacket.DB_MAX_OUTPUT_PORT_TYPE +source_valid <= sink_valid.DB_MAX_OUTPUT_PORT_TYPE +source_ready => always1.IN1 +source_ready => sink_ready.IN1 +source_addr[0] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[1] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[2] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[3] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[4] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[5] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[6] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[7] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[8] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[9] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[10] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[11] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[12] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[13] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[14] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[15] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[16] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[17] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[18] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_burstwrap[0] <= sink_burstwrap[0].DB_MAX_OUTPUT_PORT_TYPE +source_burstwrap[1] <= sink_burstwrap[1].DB_MAX_OUTPUT_PORT_TYPE +source_burstwrap[2] <= sink_burstwrap[2].DB_MAX_OUTPUT_PORT_TYPE +source_byte_cnt[0] <= source_byte_cnt.DB_MAX_OUTPUT_PORT_TYPE +source_byte_cnt[1] <= source_byte_cnt.DB_MAX_OUTPUT_PORT_TYPE +source_byte_cnt[2] <= source_byte_cnt.DB_MAX_OUTPUT_PORT_TYPE +source_is_compressed <= +source_burstsize[0] <= sink_burstsize[0].DB_MAX_OUTPUT_PORT_TYPE +source_burstsize[1] <= sink_burstsize[1].DB_MAX_OUTPUT_PORT_TYPE +source_burstsize[2] <= sink_burstsize[2].DB_MAX_OUTPUT_PORT_TYPE + + +|lights|nios_system:NiosII|altera_avalon_sc_fifo:jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rsp_fifo +clk => csr_readdata[0]~reg0.CLK +clk => csr_readdata[1]~reg0.CLK +clk => csr_readdata[2]~reg0.CLK +clk => csr_readdata[3]~reg0.CLK +clk => csr_readdata[4]~reg0.CLK +clk => csr_readdata[5]~reg0.CLK +clk => csr_readdata[6]~reg0.CLK +clk => csr_readdata[7]~reg0.CLK +clk => csr_readdata[8]~reg0.CLK +clk => csr_readdata[9]~reg0.CLK +clk => csr_readdata[10]~reg0.CLK +clk => csr_readdata[11]~reg0.CLK +clk => csr_readdata[12]~reg0.CLK +clk => csr_readdata[13]~reg0.CLK +clk => csr_readdata[14]~reg0.CLK +clk => csr_readdata[15]~reg0.CLK +clk => csr_readdata[16]~reg0.CLK +clk => csr_readdata[17]~reg0.CLK +clk => csr_readdata[18]~reg0.CLK +clk => csr_readdata[19]~reg0.CLK +clk => csr_readdata[20]~reg0.CLK +clk => csr_readdata[21]~reg0.CLK +clk => csr_readdata[22]~reg0.CLK +clk => csr_readdata[23]~reg0.CLK +clk => csr_readdata[24]~reg0.CLK +clk => csr_readdata[25]~reg0.CLK +clk => csr_readdata[26]~reg0.CLK +clk => csr_readdata[27]~reg0.CLK +clk => csr_readdata[28]~reg0.CLK +clk => csr_readdata[29]~reg0.CLK +clk => csr_readdata[30]~reg0.CLK +clk => csr_readdata[31]~reg0.CLK +clk => mem_used[1].CLK +clk => mem_used[0].CLK +clk => mem[1][0].CLK +clk => mem[1][1].CLK +clk => mem[1][2].CLK +clk => mem[1][3].CLK +clk => mem[1][4].CLK +clk => mem[1][5].CLK +clk => mem[1][6].CLK +clk => mem[1][7].CLK +clk => mem[1][8].CLK +clk => mem[1][9].CLK +clk => mem[1][10].CLK +clk => mem[1][11].CLK +clk => mem[1][12].CLK +clk => mem[1][13].CLK +clk => mem[1][14].CLK +clk => mem[1][15].CLK +clk => mem[1][16].CLK +clk => mem[1][17].CLK +clk => mem[1][18].CLK +clk => mem[1][19].CLK +clk => mem[1][20].CLK +clk => mem[1][21].CLK +clk => mem[1][22].CLK +clk => mem[1][23].CLK +clk => mem[1][24].CLK +clk => mem[1][25].CLK +clk => mem[1][26].CLK +clk => mem[1][27].CLK +clk => mem[1][28].CLK +clk => mem[1][29].CLK +clk => mem[1][30].CLK +clk => mem[1][31].CLK +clk => mem[1][32].CLK +clk => mem[1][33].CLK +clk => mem[1][34].CLK +clk => mem[1][35].CLK +clk => mem[1][36].CLK +clk => mem[1][37].CLK +clk => mem[1][38].CLK +clk => mem[1][39].CLK +clk => mem[1][40].CLK +clk => mem[1][41].CLK +clk => mem[1][42].CLK +clk => mem[1][43].CLK +clk => mem[1][44].CLK +clk => mem[1][45].CLK +clk => mem[1][46].CLK +clk => mem[1][47].CLK +clk => mem[1][48].CLK +clk => mem[1][49].CLK +clk => mem[1][50].CLK +clk => mem[1][51].CLK +clk => mem[1][52].CLK +clk => mem[1][53].CLK +clk => mem[1][54].CLK +clk => mem[1][55].CLK +clk => mem[1][56].CLK +clk => mem[1][57].CLK +clk => mem[1][58].CLK +clk => mem[1][59].CLK +clk => mem[1][60].CLK +clk => mem[1][61].CLK +clk => mem[1][62].CLK +clk => mem[1][63].CLK +clk => mem[1][64].CLK +clk => mem[1][65].CLK +clk => mem[1][66].CLK +clk => mem[1][67].CLK +clk => mem[1][68].CLK +clk => mem[1][69].CLK +clk => mem[1][70].CLK +clk => mem[1][71].CLK +clk => mem[1][72].CLK +clk => mem[1][73].CLK +clk => mem[1][74].CLK +clk => mem[1][75].CLK +clk => mem[1][76].CLK +clk => mem[1][77].CLK +clk => mem[1][78].CLK +clk => mem[1][79].CLK +clk => mem[1][80].CLK +clk => mem[1][81].CLK +clk => mem[1][82].CLK +clk => mem[1][83].CLK +clk => mem[1][84].CLK +clk => mem[1][85].CLK +clk => mem[1][86].CLK +clk => mem[1][87].CLK +clk => mem[1][88].CLK +clk => mem[1][89].CLK +clk => mem[1][90].CLK +clk => mem[1][91].CLK +clk => mem[1][92].CLK +clk => mem[1][93].CLK +clk => mem[1][94].CLK +clk => mem[1][95].CLK +clk => mem[1][96].CLK +clk => mem[1][97].CLK +clk => mem[1][98].CLK +clk => mem[0][0].CLK +clk => mem[0][1].CLK +clk => mem[0][2].CLK +clk => mem[0][3].CLK +clk => mem[0][4].CLK +clk => mem[0][5].CLK +clk => mem[0][6].CLK +clk => mem[0][7].CLK +clk => mem[0][8].CLK +clk => mem[0][9].CLK +clk => mem[0][10].CLK +clk => mem[0][11].CLK +clk => mem[0][12].CLK +clk => mem[0][13].CLK +clk => mem[0][14].CLK +clk => mem[0][15].CLK +clk => mem[0][16].CLK +clk => mem[0][17].CLK +clk => mem[0][18].CLK +clk => mem[0][19].CLK +clk => mem[0][20].CLK +clk => mem[0][21].CLK +clk => mem[0][22].CLK +clk => mem[0][23].CLK +clk => mem[0][24].CLK +clk => mem[0][25].CLK +clk => mem[0][26].CLK +clk => mem[0][27].CLK +clk => mem[0][28].CLK +clk => mem[0][29].CLK +clk => mem[0][30].CLK +clk => mem[0][31].CLK +clk => mem[0][32].CLK +clk => mem[0][33].CLK +clk => mem[0][34].CLK +clk => mem[0][35].CLK +clk => mem[0][36].CLK +clk => mem[0][37].CLK +clk => mem[0][38].CLK +clk => mem[0][39].CLK +clk => mem[0][40].CLK +clk => mem[0][41].CLK +clk => mem[0][42].CLK +clk => mem[0][43].CLK +clk => mem[0][44].CLK +clk => mem[0][45].CLK +clk => mem[0][46].CLK +clk => mem[0][47].CLK +clk => mem[0][48].CLK +clk => mem[0][49].CLK +clk => mem[0][50].CLK +clk => mem[0][51].CLK +clk => mem[0][52].CLK +clk => mem[0][53].CLK +clk => mem[0][54].CLK +clk => mem[0][55].CLK +clk => mem[0][56].CLK +clk => mem[0][57].CLK +clk => mem[0][58].CLK +clk => mem[0][59].CLK +clk => mem[0][60].CLK +clk => mem[0][61].CLK +clk => mem[0][62].CLK +clk => mem[0][63].CLK +clk => mem[0][64].CLK +clk => mem[0][65].CLK +clk => mem[0][66].CLK +clk => mem[0][67].CLK +clk => mem[0][68].CLK +clk => mem[0][69].CLK +clk => mem[0][70].CLK +clk => mem[0][71].CLK +clk => mem[0][72].CLK +clk => mem[0][73].CLK +clk => mem[0][74].CLK +clk => mem[0][75].CLK +clk => mem[0][76].CLK +clk => mem[0][77].CLK +clk => mem[0][78].CLK +clk => mem[0][79].CLK +clk => mem[0][80].CLK +clk => mem[0][81].CLK +clk => mem[0][82].CLK +clk => mem[0][83].CLK +clk => mem[0][84].CLK +clk => mem[0][85].CLK +clk => mem[0][86].CLK +clk => mem[0][87].CLK +clk => mem[0][88].CLK +clk => mem[0][89].CLK +clk => mem[0][90].CLK +clk => mem[0][91].CLK +clk => mem[0][92].CLK +clk => mem[0][93].CLK +clk => mem[0][94].CLK +clk => mem[0][95].CLK +clk => mem[0][96].CLK +clk => mem[0][97].CLK +clk => mem[0][98].CLK +reset => csr_readdata[0]~reg0.ACLR +reset => csr_readdata[1]~reg0.ACLR +reset => csr_readdata[2]~reg0.ACLR +reset => csr_readdata[3]~reg0.ACLR +reset => csr_readdata[4]~reg0.ACLR +reset => csr_readdata[5]~reg0.ACLR +reset => csr_readdata[6]~reg0.ACLR +reset => csr_readdata[7]~reg0.ACLR +reset => csr_readdata[8]~reg0.ACLR +reset => csr_readdata[9]~reg0.ACLR +reset => csr_readdata[10]~reg0.ACLR +reset => csr_readdata[11]~reg0.ACLR +reset => csr_readdata[12]~reg0.ACLR +reset => csr_readdata[13]~reg0.ACLR +reset => csr_readdata[14]~reg0.ACLR +reset => csr_readdata[15]~reg0.ACLR +reset => csr_readdata[16]~reg0.ACLR +reset => csr_readdata[17]~reg0.ACLR +reset => csr_readdata[18]~reg0.ACLR +reset => csr_readdata[19]~reg0.ACLR +reset => csr_readdata[20]~reg0.ACLR +reset => csr_readdata[21]~reg0.ACLR +reset => csr_readdata[22]~reg0.ACLR +reset => csr_readdata[23]~reg0.ACLR +reset => csr_readdata[24]~reg0.ACLR +reset => csr_readdata[25]~reg0.ACLR +reset => csr_readdata[26]~reg0.ACLR +reset => csr_readdata[27]~reg0.ACLR +reset => csr_readdata[28]~reg0.ACLR +reset => csr_readdata[29]~reg0.ACLR +reset => csr_readdata[30]~reg0.ACLR +reset => csr_readdata[31]~reg0.ACLR +reset => mem_used[1].ACLR +reset => mem_used[0].ACLR +reset => mem[1][0].ACLR +reset => mem[1][1].ACLR +reset => mem[1][2].ACLR +reset => mem[1][3].ACLR +reset => mem[1][4].ACLR +reset => mem[1][5].ACLR +reset => mem[1][6].ACLR +reset => mem[1][7].ACLR +reset => mem[1][8].ACLR +reset => mem[1][9].ACLR +reset => mem[1][10].ACLR +reset => mem[1][11].ACLR +reset => mem[1][12].ACLR +reset => mem[1][13].ACLR +reset => mem[1][14].ACLR +reset => mem[1][15].ACLR +reset => mem[1][16].ACLR +reset => mem[1][17].ACLR +reset => mem[1][18].ACLR +reset => mem[1][19].ACLR +reset => mem[1][20].ACLR +reset => mem[1][21].ACLR +reset => mem[1][22].ACLR +reset => mem[1][23].ACLR +reset => mem[1][24].ACLR +reset => mem[1][25].ACLR +reset => mem[1][26].ACLR +reset => mem[1][27].ACLR +reset => mem[1][28].ACLR +reset => mem[1][29].ACLR +reset => mem[1][30].ACLR +reset => mem[1][31].ACLR +reset => mem[1][32].ACLR +reset => mem[1][33].ACLR +reset => mem[1][34].ACLR +reset => mem[1][35].ACLR +reset => mem[1][36].ACLR +reset => mem[1][37].ACLR +reset => mem[1][38].ACLR +reset => mem[1][39].ACLR +reset => mem[1][40].ACLR +reset => mem[1][41].ACLR +reset => mem[1][42].ACLR +reset => mem[1][43].ACLR +reset => mem[1][44].ACLR +reset => mem[1][45].ACLR +reset => mem[1][46].ACLR +reset => mem[1][47].ACLR +reset => mem[1][48].ACLR +reset => mem[1][49].ACLR +reset => mem[1][50].ACLR +reset => mem[1][51].ACLR +reset => mem[1][52].ACLR +reset => mem[1][53].ACLR +reset => mem[1][54].ACLR +reset => mem[1][55].ACLR +reset => mem[1][56].ACLR +reset => mem[1][57].ACLR +reset => mem[1][58].ACLR +reset => mem[1][59].ACLR +reset => mem[1][60].ACLR +reset => mem[1][61].ACLR +reset => mem[1][62].ACLR +reset => mem[1][63].ACLR +reset => mem[1][64].ACLR +reset => mem[1][65].ACLR +reset => mem[1][66].ACLR +reset => mem[1][67].ACLR +reset => mem[1][68].ACLR +reset => mem[1][69].ACLR +reset => mem[1][70].ACLR +reset => mem[1][71].ACLR +reset => mem[1][72].ACLR +reset => mem[1][73].ACLR +reset => mem[1][74].ACLR +reset => mem[1][75].ACLR +reset => mem[1][76].ACLR +reset => mem[1][77].ACLR +reset => mem[1][78].ACLR +reset => mem[1][79].ACLR +reset => mem[1][80].ACLR +reset => mem[1][81].ACLR +reset => mem[1][82].ACLR +reset => mem[1][83].ACLR +reset => mem[1][84].ACLR +reset => mem[1][85].ACLR +reset => mem[1][86].ACLR +reset => mem[1][87].ACLR +reset => mem[1][88].ACLR +reset => mem[1][89].ACLR +reset => mem[1][90].ACLR +reset => mem[1][91].ACLR +reset => mem[1][92].ACLR +reset => mem[1][93].ACLR +reset => mem[1][94].ACLR +reset => mem[1][95].ACLR +reset => mem[1][96].ACLR +reset => mem[1][97].ACLR +reset => mem[1][98].ACLR +reset => mem[0][0].ACLR +reset => mem[0][1].ACLR +reset => mem[0][2].ACLR +reset => mem[0][3].ACLR +reset => mem[0][4].ACLR +reset => mem[0][5].ACLR +reset => mem[0][6].ACLR +reset => mem[0][7].ACLR +reset => mem[0][8].ACLR +reset => mem[0][9].ACLR +reset => mem[0][10].ACLR +reset => mem[0][11].ACLR +reset => mem[0][12].ACLR +reset => mem[0][13].ACLR +reset => mem[0][14].ACLR +reset => mem[0][15].ACLR +reset => mem[0][16].ACLR +reset => mem[0][17].ACLR +reset => mem[0][18].ACLR +reset => mem[0][19].ACLR +reset => mem[0][20].ACLR +reset => mem[0][21].ACLR +reset => mem[0][22].ACLR +reset => mem[0][23].ACLR +reset => mem[0][24].ACLR +reset => mem[0][25].ACLR +reset => mem[0][26].ACLR +reset => mem[0][27].ACLR +reset => mem[0][28].ACLR +reset => mem[0][29].ACLR +reset => mem[0][30].ACLR +reset => mem[0][31].ACLR +reset => mem[0][32].ACLR +reset => mem[0][33].ACLR +reset => mem[0][34].ACLR +reset => mem[0][35].ACLR +reset => mem[0][36].ACLR +reset => mem[0][37].ACLR +reset => mem[0][38].ACLR +reset => mem[0][39].ACLR +reset => mem[0][40].ACLR +reset => mem[0][41].ACLR +reset => mem[0][42].ACLR +reset => mem[0][43].ACLR +reset => mem[0][44].ACLR +reset => mem[0][45].ACLR +reset => mem[0][46].ACLR +reset => mem[0][47].ACLR +reset => mem[0][48].ACLR +reset => mem[0][49].ACLR +reset => mem[0][50].ACLR +reset => mem[0][51].ACLR +reset => mem[0][52].ACLR +reset => mem[0][53].ACLR +reset => mem[0][54].ACLR +reset => mem[0][55].ACLR +reset => mem[0][56].ACLR +reset => mem[0][57].ACLR +reset => mem[0][58].ACLR +reset => mem[0][59].ACLR +reset => mem[0][60].ACLR +reset => mem[0][61].ACLR +reset => mem[0][62].ACLR +reset => mem[0][63].ACLR +reset => mem[0][64].ACLR +reset => mem[0][65].ACLR +reset => mem[0][66].ACLR +reset => mem[0][67].ACLR +reset => mem[0][68].ACLR +reset => mem[0][69].ACLR +reset => mem[0][70].ACLR +reset => mem[0][71].ACLR +reset => mem[0][72].ACLR +reset => mem[0][73].ACLR +reset => mem[0][74].ACLR +reset => mem[0][75].ACLR +reset => mem[0][76].ACLR +reset => mem[0][77].ACLR +reset => mem[0][78].ACLR +reset => mem[0][79].ACLR +reset => mem[0][80].ACLR +reset => mem[0][81].ACLR +reset => mem[0][82].ACLR +reset => mem[0][83].ACLR +reset => mem[0][84].ACLR +reset => mem[0][85].ACLR +reset => mem[0][86].ACLR +reset => mem[0][87].ACLR +reset => mem[0][88].ACLR +reset => mem[0][89].ACLR +reset => mem[0][90].ACLR +reset => mem[0][91].ACLR +reset => mem[0][92].ACLR +reset => mem[0][93].ACLR +reset => mem[0][94].ACLR +reset => mem[0][95].ACLR +reset => mem[0][96].ACLR +reset => mem[0][97].ACLR +reset => mem[0][98].ACLR +in_data[0] => mem.DATAB +in_data[1] => mem.DATAB +in_data[2] => mem.DATAB +in_data[3] => mem.DATAB +in_data[4] => mem.DATAB +in_data[5] => mem.DATAB +in_data[6] => mem.DATAB +in_data[7] => mem.DATAB +in_data[8] => mem.DATAB +in_data[9] => mem.DATAB +in_data[10] => mem.DATAB +in_data[11] => mem.DATAB +in_data[12] => mem.DATAB +in_data[13] => mem.DATAB +in_data[14] => mem.DATAB +in_data[15] => mem.DATAB +in_data[16] => mem.DATAB +in_data[17] => mem.DATAB +in_data[18] => mem.DATAB +in_data[19] => mem.DATAB +in_data[20] => mem.DATAB +in_data[21] => mem.DATAB +in_data[22] => mem.DATAB +in_data[23] => mem.DATAB +in_data[24] => mem.DATAB +in_data[25] => mem.DATAB +in_data[26] => mem.DATAB +in_data[27] => mem.DATAB +in_data[28] => mem.DATAB +in_data[29] => mem.DATAB +in_data[30] => mem.DATAB +in_data[31] => mem.DATAB +in_data[32] => mem.DATAB +in_data[33] => mem.DATAB +in_data[34] => mem.DATAB +in_data[35] => mem.DATAB +in_data[36] => mem.DATAB +in_data[37] => mem.DATAB +in_data[38] => mem.DATAB +in_data[39] => mem.DATAB +in_data[40] => mem.DATAB +in_data[41] => mem.DATAB +in_data[42] => mem.DATAB +in_data[43] => mem.DATAB +in_data[44] => mem.DATAB +in_data[45] => mem.DATAB +in_data[46] => mem.DATAB +in_data[47] => mem.DATAB +in_data[48] => mem.DATAB +in_data[49] => mem.DATAB +in_data[50] => mem.DATAB +in_data[51] => mem.DATAB +in_data[52] => mem.DATAB +in_data[53] => mem.DATAB +in_data[54] => mem.DATAB +in_data[55] => mem.DATAB +in_data[56] => mem.DATAB +in_data[57] => mem.DATAB +in_data[58] => mem.DATAB +in_data[59] => mem.DATAB +in_data[60] => mem.DATAB +in_data[61] => mem.DATAB +in_data[62] => mem.DATAB +in_data[63] => mem.DATAB +in_data[64] => mem.DATAB +in_data[65] => mem.DATAB +in_data[66] => mem.DATAB +in_data[67] => mem.DATAB +in_data[68] => mem.DATAB +in_data[69] => mem.DATAB +in_data[70] => mem.DATAB +in_data[71] => mem.DATAB +in_data[72] => mem.DATAB +in_data[73] => mem.DATAB +in_data[74] => mem.DATAB +in_data[75] => mem.DATAB +in_data[76] => mem.DATAB +in_data[77] => mem.DATAB +in_data[78] => mem.DATAB +in_data[79] => mem.DATAB +in_data[80] => mem.DATAB +in_data[81] => mem.DATAB +in_data[82] => mem.DATAB +in_data[83] => mem.DATAB +in_data[84] => mem.DATAB +in_data[85] => mem.DATAB +in_data[86] => mem.DATAB +in_data[87] => mem.DATAB +in_data[88] => mem.DATAB +in_data[89] => mem.DATAB +in_data[90] => mem.DATAB +in_data[91] => mem.DATAB +in_data[92] => mem.DATAB +in_data[93] => mem.DATAB +in_data[94] => mem.DATAB +in_data[95] => mem.DATAB +in_data[96] => mem.DATAB +in_valid => write.IN1 +in_startofpacket => mem.DATAB +in_endofpacket => mem.DATAB +in_empty[0] => ~NO_FANOUT~ +in_error[0] => out_error[0].DATAIN +in_error[0] => out_empty[0].DATAIN +in_channel[0] => out_channel[0].DATAIN +in_ready <= mem_used[1].DB_MAX_OUTPUT_PORT_TYPE +out_data[0] <= mem[0][0].DB_MAX_OUTPUT_PORT_TYPE +out_data[1] <= mem[0][1].DB_MAX_OUTPUT_PORT_TYPE +out_data[2] <= mem[0][2].DB_MAX_OUTPUT_PORT_TYPE +out_data[3] <= mem[0][3].DB_MAX_OUTPUT_PORT_TYPE +out_data[4] <= mem[0][4].DB_MAX_OUTPUT_PORT_TYPE +out_data[5] <= mem[0][5].DB_MAX_OUTPUT_PORT_TYPE +out_data[6] <= mem[0][6].DB_MAX_OUTPUT_PORT_TYPE +out_data[7] <= mem[0][7].DB_MAX_OUTPUT_PORT_TYPE +out_data[8] <= mem[0][8].DB_MAX_OUTPUT_PORT_TYPE +out_data[9] <= mem[0][9].DB_MAX_OUTPUT_PORT_TYPE +out_data[10] <= mem[0][10].DB_MAX_OUTPUT_PORT_TYPE +out_data[11] <= mem[0][11].DB_MAX_OUTPUT_PORT_TYPE +out_data[12] <= mem[0][12].DB_MAX_OUTPUT_PORT_TYPE +out_data[13] <= mem[0][13].DB_MAX_OUTPUT_PORT_TYPE +out_data[14] <= mem[0][14].DB_MAX_OUTPUT_PORT_TYPE +out_data[15] <= mem[0][15].DB_MAX_OUTPUT_PORT_TYPE +out_data[16] <= mem[0][16].DB_MAX_OUTPUT_PORT_TYPE +out_data[17] <= mem[0][17].DB_MAX_OUTPUT_PORT_TYPE +out_data[18] <= mem[0][18].DB_MAX_OUTPUT_PORT_TYPE +out_data[19] <= mem[0][19].DB_MAX_OUTPUT_PORT_TYPE +out_data[20] <= mem[0][20].DB_MAX_OUTPUT_PORT_TYPE +out_data[21] <= mem[0][21].DB_MAX_OUTPUT_PORT_TYPE +out_data[22] <= mem[0][22].DB_MAX_OUTPUT_PORT_TYPE +out_data[23] <= mem[0][23].DB_MAX_OUTPUT_PORT_TYPE +out_data[24] <= mem[0][24].DB_MAX_OUTPUT_PORT_TYPE +out_data[25] <= mem[0][25].DB_MAX_OUTPUT_PORT_TYPE +out_data[26] <= mem[0][26].DB_MAX_OUTPUT_PORT_TYPE +out_data[27] <= mem[0][27].DB_MAX_OUTPUT_PORT_TYPE +out_data[28] <= mem[0][28].DB_MAX_OUTPUT_PORT_TYPE +out_data[29] <= mem[0][29].DB_MAX_OUTPUT_PORT_TYPE +out_data[30] <= mem[0][30].DB_MAX_OUTPUT_PORT_TYPE +out_data[31] <= mem[0][31].DB_MAX_OUTPUT_PORT_TYPE +out_data[32] <= mem[0][32].DB_MAX_OUTPUT_PORT_TYPE +out_data[33] <= mem[0][33].DB_MAX_OUTPUT_PORT_TYPE +out_data[34] <= mem[0][34].DB_MAX_OUTPUT_PORT_TYPE +out_data[35] <= mem[0][35].DB_MAX_OUTPUT_PORT_TYPE +out_data[36] <= mem[0][36].DB_MAX_OUTPUT_PORT_TYPE +out_data[37] <= mem[0][37].DB_MAX_OUTPUT_PORT_TYPE +out_data[38] <= mem[0][38].DB_MAX_OUTPUT_PORT_TYPE +out_data[39] <= mem[0][39].DB_MAX_OUTPUT_PORT_TYPE +out_data[40] <= mem[0][40].DB_MAX_OUTPUT_PORT_TYPE +out_data[41] <= mem[0][41].DB_MAX_OUTPUT_PORT_TYPE +out_data[42] <= mem[0][42].DB_MAX_OUTPUT_PORT_TYPE +out_data[43] <= mem[0][43].DB_MAX_OUTPUT_PORT_TYPE +out_data[44] <= mem[0][44].DB_MAX_OUTPUT_PORT_TYPE +out_data[45] <= mem[0][45].DB_MAX_OUTPUT_PORT_TYPE +out_data[46] <= mem[0][46].DB_MAX_OUTPUT_PORT_TYPE +out_data[47] <= mem[0][47].DB_MAX_OUTPUT_PORT_TYPE +out_data[48] <= mem[0][48].DB_MAX_OUTPUT_PORT_TYPE +out_data[49] <= mem[0][49].DB_MAX_OUTPUT_PORT_TYPE +out_data[50] <= mem[0][50].DB_MAX_OUTPUT_PORT_TYPE +out_data[51] <= mem[0][51].DB_MAX_OUTPUT_PORT_TYPE +out_data[52] <= mem[0][52].DB_MAX_OUTPUT_PORT_TYPE +out_data[53] <= mem[0][53].DB_MAX_OUTPUT_PORT_TYPE +out_data[54] <= mem[0][54].DB_MAX_OUTPUT_PORT_TYPE +out_data[55] <= mem[0][55].DB_MAX_OUTPUT_PORT_TYPE +out_data[56] <= mem[0][56].DB_MAX_OUTPUT_PORT_TYPE +out_data[57] <= mem[0][57].DB_MAX_OUTPUT_PORT_TYPE +out_data[58] <= mem[0][58].DB_MAX_OUTPUT_PORT_TYPE +out_data[59] <= mem[0][59].DB_MAX_OUTPUT_PORT_TYPE +out_data[60] <= mem[0][60].DB_MAX_OUTPUT_PORT_TYPE +out_data[61] <= mem[0][61].DB_MAX_OUTPUT_PORT_TYPE +out_data[62] <= mem[0][62].DB_MAX_OUTPUT_PORT_TYPE +out_data[63] <= mem[0][63].DB_MAX_OUTPUT_PORT_TYPE +out_data[64] <= mem[0][64].DB_MAX_OUTPUT_PORT_TYPE +out_data[65] <= mem[0][65].DB_MAX_OUTPUT_PORT_TYPE +out_data[66] <= mem[0][66].DB_MAX_OUTPUT_PORT_TYPE +out_data[67] <= mem[0][67].DB_MAX_OUTPUT_PORT_TYPE +out_data[68] <= mem[0][68].DB_MAX_OUTPUT_PORT_TYPE +out_data[69] <= mem[0][69].DB_MAX_OUTPUT_PORT_TYPE +out_data[70] <= mem[0][70].DB_MAX_OUTPUT_PORT_TYPE +out_data[71] <= mem[0][71].DB_MAX_OUTPUT_PORT_TYPE +out_data[72] <= mem[0][72].DB_MAX_OUTPUT_PORT_TYPE +out_data[73] <= mem[0][73].DB_MAX_OUTPUT_PORT_TYPE +out_data[74] <= mem[0][74].DB_MAX_OUTPUT_PORT_TYPE +out_data[75] <= mem[0][75].DB_MAX_OUTPUT_PORT_TYPE +out_data[76] <= mem[0][76].DB_MAX_OUTPUT_PORT_TYPE +out_data[77] <= mem[0][77].DB_MAX_OUTPUT_PORT_TYPE +out_data[78] <= mem[0][78].DB_MAX_OUTPUT_PORT_TYPE +out_data[79] <= mem[0][79].DB_MAX_OUTPUT_PORT_TYPE +out_data[80] <= mem[0][80].DB_MAX_OUTPUT_PORT_TYPE +out_data[81] <= mem[0][81].DB_MAX_OUTPUT_PORT_TYPE +out_data[82] <= mem[0][82].DB_MAX_OUTPUT_PORT_TYPE +out_data[83] <= mem[0][83].DB_MAX_OUTPUT_PORT_TYPE +out_data[84] <= mem[0][84].DB_MAX_OUTPUT_PORT_TYPE +out_data[85] <= mem[0][85].DB_MAX_OUTPUT_PORT_TYPE +out_data[86] <= mem[0][86].DB_MAX_OUTPUT_PORT_TYPE +out_data[87] <= mem[0][87].DB_MAX_OUTPUT_PORT_TYPE +out_data[88] <= mem[0][88].DB_MAX_OUTPUT_PORT_TYPE +out_data[89] <= mem[0][89].DB_MAX_OUTPUT_PORT_TYPE +out_data[90] <= mem[0][90].DB_MAX_OUTPUT_PORT_TYPE +out_data[91] <= mem[0][91].DB_MAX_OUTPUT_PORT_TYPE +out_data[92] <= mem[0][92].DB_MAX_OUTPUT_PORT_TYPE +out_data[93] <= mem[0][93].DB_MAX_OUTPUT_PORT_TYPE +out_data[94] <= mem[0][94].DB_MAX_OUTPUT_PORT_TYPE +out_data[95] <= mem[0][95].DB_MAX_OUTPUT_PORT_TYPE +out_data[96] <= mem[0][96].DB_MAX_OUTPUT_PORT_TYPE +out_valid <= mem_used[0].DB_MAX_OUTPUT_PORT_TYPE +out_startofpacket <= mem[0][98].DB_MAX_OUTPUT_PORT_TYPE +out_endofpacket <= mem[0][97].DB_MAX_OUTPUT_PORT_TYPE +out_empty[0] <= in_error[0].DB_MAX_OUTPUT_PORT_TYPE +out_error[0] <= in_error[0].DB_MAX_OUTPUT_PORT_TYPE +out_channel[0] <= in_channel[0].DB_MAX_OUTPUT_PORT_TYPE +out_ready => internal_out_ready.IN1 +csr_address[0] => ~NO_FANOUT~ +csr_address[1] => ~NO_FANOUT~ +csr_write => ~NO_FANOUT~ +csr_read => csr_readdata[31]~reg0.ENA +csr_read => csr_readdata[30]~reg0.ENA +csr_read => csr_readdata[29]~reg0.ENA +csr_read => csr_readdata[28]~reg0.ENA +csr_read => csr_readdata[27]~reg0.ENA +csr_read => csr_readdata[26]~reg0.ENA +csr_read => csr_readdata[25]~reg0.ENA +csr_read => csr_readdata[24]~reg0.ENA +csr_read => csr_readdata[23]~reg0.ENA +csr_read => csr_readdata[22]~reg0.ENA +csr_read => csr_readdata[21]~reg0.ENA +csr_read => csr_readdata[20]~reg0.ENA +csr_read => csr_readdata[19]~reg0.ENA +csr_read => csr_readdata[18]~reg0.ENA +csr_read => csr_readdata[17]~reg0.ENA +csr_read => csr_readdata[16]~reg0.ENA +csr_read => csr_readdata[15]~reg0.ENA +csr_read => csr_readdata[14]~reg0.ENA +csr_read => csr_readdata[13]~reg0.ENA +csr_read => csr_readdata[12]~reg0.ENA +csr_read => csr_readdata[11]~reg0.ENA +csr_read => csr_readdata[10]~reg0.ENA +csr_read => csr_readdata[9]~reg0.ENA +csr_read => csr_readdata[8]~reg0.ENA +csr_read => csr_readdata[7]~reg0.ENA +csr_read => csr_readdata[6]~reg0.ENA +csr_read => csr_readdata[5]~reg0.ENA +csr_read => csr_readdata[4]~reg0.ENA +csr_read => csr_readdata[3]~reg0.ENA +csr_read => csr_readdata[2]~reg0.ENA +csr_read => csr_readdata[1]~reg0.ENA +csr_read => csr_readdata[0]~reg0.ENA +csr_writedata[0] => ~NO_FANOUT~ +csr_writedata[1] => ~NO_FANOUT~ +csr_writedata[2] => ~NO_FANOUT~ +csr_writedata[3] => ~NO_FANOUT~ +csr_writedata[4] => ~NO_FANOUT~ +csr_writedata[5] => ~NO_FANOUT~ +csr_writedata[6] => ~NO_FANOUT~ +csr_writedata[7] => ~NO_FANOUT~ +csr_writedata[8] => ~NO_FANOUT~ +csr_writedata[9] => ~NO_FANOUT~ +csr_writedata[10] => ~NO_FANOUT~ +csr_writedata[11] => ~NO_FANOUT~ +csr_writedata[12] => ~NO_FANOUT~ +csr_writedata[13] => ~NO_FANOUT~ +csr_writedata[14] => ~NO_FANOUT~ +csr_writedata[15] => ~NO_FANOUT~ +csr_writedata[16] => ~NO_FANOUT~ +csr_writedata[17] => ~NO_FANOUT~ +csr_writedata[18] => ~NO_FANOUT~ +csr_writedata[19] => ~NO_FANOUT~ +csr_writedata[20] => ~NO_FANOUT~ +csr_writedata[21] => ~NO_FANOUT~ +csr_writedata[22] => ~NO_FANOUT~ +csr_writedata[23] => ~NO_FANOUT~ +csr_writedata[24] => ~NO_FANOUT~ +csr_writedata[25] => ~NO_FANOUT~ +csr_writedata[26] => ~NO_FANOUT~ +csr_writedata[27] => ~NO_FANOUT~ +csr_writedata[28] => ~NO_FANOUT~ +csr_writedata[29] => ~NO_FANOUT~ +csr_writedata[30] => ~NO_FANOUT~ +csr_writedata[31] => ~NO_FANOUT~ +csr_readdata[0] <= csr_readdata[0]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[1] <= csr_readdata[1]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[2] <= csr_readdata[2]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[3] <= csr_readdata[3]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[4] <= csr_readdata[4]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[5] <= csr_readdata[5]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[6] <= csr_readdata[6]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[7] <= csr_readdata[7]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[8] <= csr_readdata[8]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[9] <= csr_readdata[9]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[10] <= csr_readdata[10]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[11] <= csr_readdata[11]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[12] <= csr_readdata[12]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[13] <= csr_readdata[13]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[14] <= csr_readdata[14]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[15] <= csr_readdata[15]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[16] <= csr_readdata[16]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[17] <= csr_readdata[17]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[18] <= csr_readdata[18]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[19] <= csr_readdata[19]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[20] <= csr_readdata[20]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[21] <= csr_readdata[21]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[22] <= csr_readdata[22]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[23] <= csr_readdata[23]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[24] <= csr_readdata[24]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[25] <= csr_readdata[25]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[26] <= csr_readdata[26]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[27] <= csr_readdata[27]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[28] <= csr_readdata[28]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[29] <= csr_readdata[29]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[30] <= csr_readdata[30]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[31] <= csr_readdata[31]~reg0.DB_MAX_OUTPUT_PORT_TYPE +almost_full_data <= +almost_empty_data <= + + +|lights|nios_system:NiosII|altera_merlin_slave_agent:ledrs_s1_translator_avalon_universal_slave_0_agent +clk => clk.IN1 +reset => reset.IN1 +m0_address[0] <= +m0_address[1] <= +m0_address[2] <= cp_data[38].DB_MAX_OUTPUT_PORT_TYPE +m0_address[3] <= cp_data[39].DB_MAX_OUTPUT_PORT_TYPE +m0_address[4] <= cp_data[40].DB_MAX_OUTPUT_PORT_TYPE +m0_address[5] <= cp_data[41].DB_MAX_OUTPUT_PORT_TYPE +m0_address[6] <= cp_data[42].DB_MAX_OUTPUT_PORT_TYPE +m0_address[7] <= cp_data[43].DB_MAX_OUTPUT_PORT_TYPE +m0_address[8] <= cp_data[44].DB_MAX_OUTPUT_PORT_TYPE +m0_address[9] <= cp_data[45].DB_MAX_OUTPUT_PORT_TYPE +m0_address[10] <= cp_data[46].DB_MAX_OUTPUT_PORT_TYPE +m0_address[11] <= cp_data[47].DB_MAX_OUTPUT_PORT_TYPE +m0_address[12] <= cp_data[48].DB_MAX_OUTPUT_PORT_TYPE +m0_address[13] <= cp_data[49].DB_MAX_OUTPUT_PORT_TYPE +m0_address[14] <= cp_data[50].DB_MAX_OUTPUT_PORT_TYPE +m0_address[15] <= cp_data[51].DB_MAX_OUTPUT_PORT_TYPE +m0_address[16] <= cp_data[52].DB_MAX_OUTPUT_PORT_TYPE +m0_address[17] <= cp_data[53].DB_MAX_OUTPUT_PORT_TYPE +m0_address[18] <= cp_data[54].DB_MAX_OUTPUT_PORT_TYPE +m0_burstcount[0] <= m0_burstcount.DB_MAX_OUTPUT_PORT_TYPE +m0_burstcount[1] <= m0_burstcount.DB_MAX_OUTPUT_PORT_TYPE +m0_burstcount[2] <= m0_burstcount.DB_MAX_OUTPUT_PORT_TYPE +m0_byteenable[0] <= cp_data[32].DB_MAX_OUTPUT_PORT_TYPE +m0_byteenable[1] <= cp_data[33].DB_MAX_OUTPUT_PORT_TYPE +m0_byteenable[2] <= cp_data[34].DB_MAX_OUTPUT_PORT_TYPE +m0_byteenable[3] <= cp_data[35].DB_MAX_OUTPUT_PORT_TYPE +m0_read <= m0_read.DB_MAX_OUTPUT_PORT_TYPE +m0_readdata[0] => rdata_fifo_src_data[0].DATAIN +m0_readdata[1] => rdata_fifo_src_data[1].DATAIN +m0_readdata[2] => rdata_fifo_src_data[2].DATAIN +m0_readdata[3] => rdata_fifo_src_data[3].DATAIN +m0_readdata[4] => rdata_fifo_src_data[4].DATAIN +m0_readdata[5] => rdata_fifo_src_data[5].DATAIN +m0_readdata[6] => rdata_fifo_src_data[6].DATAIN +m0_readdata[7] => rdata_fifo_src_data[7].DATAIN +m0_readdata[8] => rdata_fifo_src_data[8].DATAIN +m0_readdata[9] => rdata_fifo_src_data[9].DATAIN +m0_readdata[10] => rdata_fifo_src_data[10].DATAIN +m0_readdata[11] => rdata_fifo_src_data[11].DATAIN +m0_readdata[12] => rdata_fifo_src_data[12].DATAIN +m0_readdata[13] => rdata_fifo_src_data[13].DATAIN +m0_readdata[14] => rdata_fifo_src_data[14].DATAIN +m0_readdata[15] => rdata_fifo_src_data[15].DATAIN +m0_readdata[16] => rdata_fifo_src_data[16].DATAIN +m0_readdata[17] => rdata_fifo_src_data[17].DATAIN +m0_readdata[18] => rdata_fifo_src_data[18].DATAIN +m0_readdata[19] => rdata_fifo_src_data[19].DATAIN +m0_readdata[20] => rdata_fifo_src_data[20].DATAIN +m0_readdata[21] => rdata_fifo_src_data[21].DATAIN +m0_readdata[22] => rdata_fifo_src_data[22].DATAIN +m0_readdata[23] => rdata_fifo_src_data[23].DATAIN +m0_readdata[24] => rdata_fifo_src_data[24].DATAIN +m0_readdata[25] => rdata_fifo_src_data[25].DATAIN +m0_readdata[26] => rdata_fifo_src_data[26].DATAIN +m0_readdata[27] => rdata_fifo_src_data[27].DATAIN +m0_readdata[28] => rdata_fifo_src_data[28].DATAIN +m0_readdata[29] => rdata_fifo_src_data[29].DATAIN +m0_readdata[30] => rdata_fifo_src_data[30].DATAIN +m0_readdata[31] => rdata_fifo_src_data[31].DATAIN +m0_waitrequest => cp_ready.IN0 +m0_write <= m0_write.DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[0] <= cp_data[0].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[1] <= cp_data[1].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[2] <= cp_data[2].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[3] <= cp_data[3].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[4] <= cp_data[4].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[5] <= cp_data[5].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[6] <= cp_data[6].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[7] <= cp_data[7].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[8] <= cp_data[8].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[9] <= cp_data[9].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[10] <= cp_data[10].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[11] <= cp_data[11].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[12] <= cp_data[12].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[13] <= cp_data[13].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[14] <= cp_data[14].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[15] <= cp_data[15].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[16] <= cp_data[16].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[17] <= cp_data[17].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[18] <= cp_data[18].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[19] <= cp_data[19].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[20] <= cp_data[20].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[21] <= cp_data[21].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[22] <= cp_data[22].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[23] <= cp_data[23].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[24] <= cp_data[24].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[25] <= cp_data[25].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[26] <= cp_data[26].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[27] <= cp_data[27].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[28] <= cp_data[28].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[29] <= cp_data[29].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[30] <= cp_data[30].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[31] <= cp_data[31].DB_MAX_OUTPUT_PORT_TYPE +m0_readdatavalid => rdata_fifo_src_valid.IN0 +m0_debugaccess <= cp_data[87].DB_MAX_OUTPUT_PORT_TYPE +m0_lock <= m0_lock.DB_MAX_OUTPUT_PORT_TYPE +m0_response[0] => rdata_fifo_src_data[32].DATAIN +m0_response[1] => rdata_fifo_src_data[33].DATAIN +m0_writeresponserequest <= m0_writeresponserequest.DB_MAX_OUTPUT_PORT_TYPE +m0_writeresponsevalid => rdata_fifo_src_valid.IN1 +rf_source_data[0] <= +rf_source_data[1] <= +rf_source_data[2] <= +rf_source_data[3] <= +rf_source_data[4] <= +rf_source_data[5] <= +rf_source_data[6] <= +rf_source_data[7] <= +rf_source_data[8] <= +rf_source_data[9] <= +rf_source_data[10] <= +rf_source_data[11] <= +rf_source_data[12] <= +rf_source_data[13] <= +rf_source_data[14] <= +rf_source_data[15] <= +rf_source_data[16] <= +rf_source_data[17] <= +rf_source_data[18] <= +rf_source_data[19] <= +rf_source_data[20] <= +rf_source_data[21] <= +rf_source_data[22] <= +rf_source_data[23] <= +rf_source_data[24] <= +rf_source_data[25] <= +rf_source_data[26] <= +rf_source_data[27] <= +rf_source_data[28] <= +rf_source_data[29] <= +rf_source_data[30] <= +rf_source_data[31] <= +rf_source_data[32] <= cp_data[32].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[33] <= cp_data[33].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[34] <= cp_data[34].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[35] <= cp_data[35].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[36] <= cp_data[36].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[37] <= cp_data[37].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[38] <= cp_data[38].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[39] <= cp_data[39].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[40] <= cp_data[40].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[41] <= cp_data[41].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[42] <= cp_data[42].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[43] <= cp_data[43].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[44] <= cp_data[44].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[45] <= cp_data[45].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[46] <= cp_data[46].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[47] <= cp_data[47].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[48] <= cp_data[48].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[49] <= cp_data[49].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[50] <= cp_data[50].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[51] <= cp_data[51].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[52] <= cp_data[52].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[53] <= cp_data[53].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[54] <= cp_data[54].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[55] <= cp_data[55].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[56] <= cp_data[56].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[57] <= cp_data[57].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[58] <= cp_data[58].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[59] <= cp_data[59].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[60] <= cp_data[60].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[61] <= cp_data[61].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[62] <= cp_data[62].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[63] <= cp_data[63].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[64] <= cp_data[64].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[65] <= cp_data[65].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[66] <= cp_data[66].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[67] <= cp_data[67].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[68] <= cp_data[68].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[69] <= cp_data[69].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[70] <= cp_data[70].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[71] <= cp_data[71].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[72] <= cp_data[72].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[73] <= cp_data[73].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[74] <= cp_data[74].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[75] <= cp_data[75].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[76] <= cp_data[76].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[77] <= cp_data[77].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[78] <= cp_data[78].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[79] <= cp_data[79].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[80] <= cp_data[80].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[81] <= cp_data[81].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[82] <= cp_data[82].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[83] <= cp_data[83].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[84] <= cp_data[84].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[85] <= cp_data[85].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[86] <= cp_data[86].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[87] <= cp_data[87].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[88] <= +rf_source_data[89] <= +rf_source_data[90] <= cp_data[90].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[91] <= cp_data[91].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[92] <= cp_data[92].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[93] <= cp_data[93].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[94] <= cp_data[94].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[95] <= cp_data[95].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[96] <= nonposted_write_endofpacket.DB_MAX_OUTPUT_PORT_TYPE +rf_source_valid <= rf_source_valid.DB_MAX_OUTPUT_PORT_TYPE +rf_source_startofpacket <= cp_startofpacket.DB_MAX_OUTPUT_PORT_TYPE +rf_source_endofpacket <= cp_endofpacket.DB_MAX_OUTPUT_PORT_TYPE +rf_source_ready => cp_ready.IN1 +rf_source_ready => m0_write.IN1 +rf_source_ready => m0_lock.IN1 +rf_source_ready => rf_source_valid.IN1 +rf_source_ready => m0_read.IN1 +rf_sink_data[0] => ~NO_FANOUT~ +rf_sink_data[1] => ~NO_FANOUT~ +rf_sink_data[2] => ~NO_FANOUT~ +rf_sink_data[3] => ~NO_FANOUT~ +rf_sink_data[4] => ~NO_FANOUT~ +rf_sink_data[5] => ~NO_FANOUT~ +rf_sink_data[6] => ~NO_FANOUT~ +rf_sink_data[7] => ~NO_FANOUT~ +rf_sink_data[8] => ~NO_FANOUT~ +rf_sink_data[9] => ~NO_FANOUT~ +rf_sink_data[10] => ~NO_FANOUT~ +rf_sink_data[11] => ~NO_FANOUT~ +rf_sink_data[12] => ~NO_FANOUT~ +rf_sink_data[13] => ~NO_FANOUT~ +rf_sink_data[14] => ~NO_FANOUT~ +rf_sink_data[15] => ~NO_FANOUT~ +rf_sink_data[16] => ~NO_FANOUT~ +rf_sink_data[17] => ~NO_FANOUT~ +rf_sink_data[18] => ~NO_FANOUT~ +rf_sink_data[19] => ~NO_FANOUT~ +rf_sink_data[20] => ~NO_FANOUT~ +rf_sink_data[21] => ~NO_FANOUT~ +rf_sink_data[22] => ~NO_FANOUT~ +rf_sink_data[23] => ~NO_FANOUT~ +rf_sink_data[24] => ~NO_FANOUT~ +rf_sink_data[25] => ~NO_FANOUT~ +rf_sink_data[26] => ~NO_FANOUT~ +rf_sink_data[27] => ~NO_FANOUT~ +rf_sink_data[28] => ~NO_FANOUT~ +rf_sink_data[29] => ~NO_FANOUT~ +rf_sink_data[30] => ~NO_FANOUT~ +rf_sink_data[31] => ~NO_FANOUT~ +rf_sink_data[32] => rp_data[32].DATAIN +rf_sink_data[33] => rp_data[33].DATAIN +rf_sink_data[34] => rp_data[34].DATAIN +rf_sink_data[35] => rp_data[35].DATAIN +rf_sink_data[36] => rf_sink_addr[0].IN1 +rf_sink_data[37] => rf_sink_addr[1].IN1 +rf_sink_data[38] => rf_sink_addr[2].IN1 +rf_sink_data[39] => rf_sink_addr[3].IN1 +rf_sink_data[40] => rf_sink_addr[4].IN1 +rf_sink_data[41] => rf_sink_addr[5].IN1 +rf_sink_data[42] => rf_sink_addr[6].IN1 +rf_sink_data[43] => rf_sink_addr[7].IN1 +rf_sink_data[44] => rf_sink_addr[8].IN1 +rf_sink_data[45] => rf_sink_addr[9].IN1 +rf_sink_data[46] => rf_sink_addr[10].IN1 +rf_sink_data[47] => rf_sink_addr[11].IN1 +rf_sink_data[48] => rf_sink_addr[12].IN1 +rf_sink_data[49] => rf_sink_addr[13].IN1 +rf_sink_data[50] => rf_sink_addr[14].IN1 +rf_sink_data[51] => rf_sink_addr[15].IN1 +rf_sink_data[52] => rf_sink_addr[16].IN1 +rf_sink_data[53] => rf_sink_addr[17].IN1 +rf_sink_data[54] => rf_sink_addr[18].IN1 +rf_sink_data[55] => rf_sink_compressed.IN1 +rf_sink_data[56] => rp_data[56].DATAIN +rf_sink_data[57] => comb.OUTPUTSELECT +rf_sink_data[57] => rp_data[57].DATAIN +rf_sink_data[58] => rp_data.IN0 +rf_sink_data[59] => rp_data[59].DATAIN +rf_sink_data[60] => rp_data[60].DATAIN +rf_sink_data[61] => rf_sink_byte_cnt[0].IN1 +rf_sink_data[62] => rf_sink_byte_cnt[1].IN1 +rf_sink_data[63] => rf_sink_byte_cnt[2].IN1 +rf_sink_data[64] => rf_sink_burstwrap[0].IN1 +rf_sink_data[65] => rf_sink_burstwrap[1].IN1 +rf_sink_data[66] => rf_sink_burstwrap[2].IN1 +rf_sink_data[67] => rf_sink_burstsize[0].IN1 +rf_sink_data[68] => rf_sink_burstsize[1].IN1 +rf_sink_data[69] => rf_sink_burstsize[2].IN1 +rf_sink_data[70] => rp_data[70].DATAIN +rf_sink_data[71] => rp_data[71].DATAIN +rf_sink_data[72] => rp_data[72].DATAIN +rf_sink_data[73] => rp_data[73].DATAIN +rf_sink_data[74] => rp_data[74].DATAIN +rf_sink_data[75] => rp_data[75].DATAIN +rf_sink_data[76] => rp_data[81].DATAIN +rf_sink_data[77] => rp_data[82].DATAIN +rf_sink_data[78] => rp_data[83].DATAIN +rf_sink_data[79] => rp_data[84].DATAIN +rf_sink_data[80] => rp_data[85].DATAIN +rf_sink_data[81] => rp_data[76].DATAIN +rf_sink_data[82] => rp_data[77].DATAIN +rf_sink_data[83] => rp_data[78].DATAIN +rf_sink_data[84] => rp_data[79].DATAIN +rf_sink_data[85] => rp_data[80].DATAIN +rf_sink_data[86] => rp_data[86].DATAIN +rf_sink_data[87] => rp_data[87].DATAIN +rf_sink_data[88] => rp_data[88].DATAIN +rf_sink_data[89] => rp_data[89].DATAIN +rf_sink_data[90] => rp_data[90].DATAIN +rf_sink_data[91] => rp_data[91].DATAIN +rf_sink_data[92] => rp_data[92].DATAIN +rf_sink_data[93] => rp_data[93].DATAIN +rf_sink_data[94] => ~NO_FANOUT~ +rf_sink_data[95] => ~NO_FANOUT~ +rf_sink_data[96] => rdata_fifo_sink_ready.IN0 +rf_sink_data[96] => comb.IN0 +rf_sink_valid => rdata_fifo_sink_ready.IN1 +rf_sink_valid => comb.IN1 +rf_sink_startofpacket => comb.DATAA +rf_sink_endofpacket => rf_sink_endofpacket.IN1 +rf_sink_ready <= altera_merlin_burst_uncompressor:uncompressor.sink_ready +rdata_fifo_src_data[0] <= m0_readdata[0].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[1] <= m0_readdata[1].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[2] <= m0_readdata[2].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[3] <= m0_readdata[3].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[4] <= m0_readdata[4].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[5] <= m0_readdata[5].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[6] <= m0_readdata[6].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[7] <= m0_readdata[7].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[8] <= m0_readdata[8].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[9] <= m0_readdata[9].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[10] <= m0_readdata[10].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[11] <= m0_readdata[11].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[12] <= m0_readdata[12].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[13] <= m0_readdata[13].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[14] <= m0_readdata[14].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[15] <= m0_readdata[15].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[16] <= m0_readdata[16].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[17] <= m0_readdata[17].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[18] <= m0_readdata[18].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[19] <= m0_readdata[19].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[20] <= m0_readdata[20].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[21] <= m0_readdata[21].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[22] <= m0_readdata[22].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[23] <= m0_readdata[23].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[24] <= m0_readdata[24].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[25] <= m0_readdata[25].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[26] <= m0_readdata[26].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[27] <= m0_readdata[27].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[28] <= m0_readdata[28].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[29] <= m0_readdata[29].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[30] <= m0_readdata[30].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[31] <= m0_readdata[31].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[32] <= m0_response[0].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[33] <= m0_response[1].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_valid <= rdata_fifo_src_valid.DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_ready => ~NO_FANOUT~ +rdata_fifo_sink_data[0] => rp_data[0].DATAIN +rdata_fifo_sink_data[1] => rp_data[1].DATAIN +rdata_fifo_sink_data[2] => rp_data[2].DATAIN +rdata_fifo_sink_data[3] => rp_data[3].DATAIN +rdata_fifo_sink_data[4] => rp_data[4].DATAIN +rdata_fifo_sink_data[5] => rp_data[5].DATAIN +rdata_fifo_sink_data[6] => rp_data[6].DATAIN +rdata_fifo_sink_data[7] => rp_data[7].DATAIN +rdata_fifo_sink_data[8] => rp_data[8].DATAIN +rdata_fifo_sink_data[9] => rp_data[9].DATAIN +rdata_fifo_sink_data[10] => rp_data[10].DATAIN +rdata_fifo_sink_data[11] => rp_data[11].DATAIN +rdata_fifo_sink_data[12] => rp_data[12].DATAIN +rdata_fifo_sink_data[13] => rp_data[13].DATAIN +rdata_fifo_sink_data[14] => rp_data[14].DATAIN +rdata_fifo_sink_data[15] => rp_data[15].DATAIN +rdata_fifo_sink_data[16] => rp_data[16].DATAIN +rdata_fifo_sink_data[17] => rp_data[17].DATAIN +rdata_fifo_sink_data[18] => rp_data[18].DATAIN +rdata_fifo_sink_data[19] => rp_data[19].DATAIN +rdata_fifo_sink_data[20] => rp_data[20].DATAIN +rdata_fifo_sink_data[21] => rp_data[21].DATAIN +rdata_fifo_sink_data[22] => rp_data[22].DATAIN +rdata_fifo_sink_data[23] => rp_data[23].DATAIN +rdata_fifo_sink_data[24] => rp_data[24].DATAIN +rdata_fifo_sink_data[25] => rp_data[25].DATAIN +rdata_fifo_sink_data[26] => rp_data[26].DATAIN +rdata_fifo_sink_data[27] => rp_data[27].DATAIN +rdata_fifo_sink_data[28] => rp_data[28].DATAIN +rdata_fifo_sink_data[29] => rp_data[29].DATAIN +rdata_fifo_sink_data[30] => rp_data[30].DATAIN +rdata_fifo_sink_data[31] => rp_data[31].DATAIN +rdata_fifo_sink_data[32] => rp_data[94].DATAIN +rdata_fifo_sink_data[33] => rp_data[95].DATAIN +rdata_fifo_sink_valid => rp_valid.IN1 +rdata_fifo_sink_valid => rdata_fifo_sink_ready.IN0 +rdata_fifo_sink_valid => comb.IN1 +rdata_fifo_sink_ready <= rdata_fifo_sink_ready.DB_MAX_OUTPUT_PORT_TYPE +cp_ready <= cp_ready.DB_MAX_OUTPUT_PORT_TYPE +cp_valid => local_lock.IN0 +cp_valid => local_write.IN0 +cp_valid => local_read.IN0 +cp_valid => local_compressed_read.IN0 +cp_data[0] => m0_writedata[0].DATAIN +cp_data[1] => m0_writedata[1].DATAIN +cp_data[2] => m0_writedata[2].DATAIN +cp_data[3] => m0_writedata[3].DATAIN +cp_data[4] => m0_writedata[4].DATAIN +cp_data[5] => m0_writedata[5].DATAIN +cp_data[6] => m0_writedata[6].DATAIN +cp_data[7] => m0_writedata[7].DATAIN +cp_data[8] => m0_writedata[8].DATAIN +cp_data[9] => m0_writedata[9].DATAIN +cp_data[10] => m0_writedata[10].DATAIN +cp_data[11] => m0_writedata[11].DATAIN +cp_data[12] => m0_writedata[12].DATAIN +cp_data[13] => m0_writedata[13].DATAIN +cp_data[14] => m0_writedata[14].DATAIN +cp_data[15] => m0_writedata[15].DATAIN +cp_data[16] => m0_writedata[16].DATAIN +cp_data[17] => m0_writedata[17].DATAIN +cp_data[18] => m0_writedata[18].DATAIN +cp_data[19] => m0_writedata[19].DATAIN +cp_data[20] => m0_writedata[20].DATAIN +cp_data[21] => m0_writedata[21].DATAIN +cp_data[22] => m0_writedata[22].DATAIN +cp_data[23] => m0_writedata[23].DATAIN +cp_data[24] => m0_writedata[24].DATAIN +cp_data[25] => m0_writedata[25].DATAIN +cp_data[26] => m0_writedata[26].DATAIN +cp_data[27] => m0_writedata[27].DATAIN +cp_data[28] => m0_writedata[28].DATAIN +cp_data[29] => m0_writedata[29].DATAIN +cp_data[30] => m0_writedata[30].DATAIN +cp_data[31] => m0_writedata[31].DATAIN +cp_data[32] => rf_source_data[32].DATAIN +cp_data[32] => m0_byteenable[0].DATAIN +cp_data[33] => rf_source_data[33].DATAIN +cp_data[33] => m0_byteenable[1].DATAIN +cp_data[34] => rf_source_data[34].DATAIN +cp_data[34] => m0_byteenable[2].DATAIN +cp_data[35] => rf_source_data[35].DATAIN +cp_data[35] => m0_byteenable[3].DATAIN +cp_data[36] => rf_source_data[36].DATAIN +cp_data[37] => rf_source_data[37].DATAIN +cp_data[38] => rf_source_data[38].DATAIN +cp_data[38] => m0_address[2].DATAIN +cp_data[39] => rf_source_data[39].DATAIN +cp_data[39] => m0_address[3].DATAIN +cp_data[40] => rf_source_data[40].DATAIN +cp_data[40] => m0_address[4].DATAIN +cp_data[41] => rf_source_data[41].DATAIN +cp_data[41] => m0_address[5].DATAIN +cp_data[42] => rf_source_data[42].DATAIN +cp_data[42] => m0_address[6].DATAIN +cp_data[43] => rf_source_data[43].DATAIN +cp_data[43] => m0_address[7].DATAIN +cp_data[44] => rf_source_data[44].DATAIN +cp_data[44] => m0_address[8].DATAIN +cp_data[45] => rf_source_data[45].DATAIN +cp_data[45] => m0_address[9].DATAIN +cp_data[46] => rf_source_data[46].DATAIN +cp_data[46] => m0_address[10].DATAIN +cp_data[47] => rf_source_data[47].DATAIN +cp_data[47] => m0_address[11].DATAIN +cp_data[48] => rf_source_data[48].DATAIN +cp_data[48] => m0_address[12].DATAIN +cp_data[49] => rf_source_data[49].DATAIN +cp_data[49] => m0_address[13].DATAIN +cp_data[50] => rf_source_data[50].DATAIN +cp_data[50] => m0_address[14].DATAIN +cp_data[51] => rf_source_data[51].DATAIN +cp_data[51] => m0_address[15].DATAIN +cp_data[52] => rf_source_data[52].DATAIN +cp_data[52] => m0_address[16].DATAIN +cp_data[53] => rf_source_data[53].DATAIN +cp_data[53] => m0_address[17].DATAIN +cp_data[54] => rf_source_data[54].DATAIN +cp_data[54] => m0_address[18].DATAIN +cp_data[55] => local_compressed_read.IN1 +cp_data[55] => rf_source_data[55].DATAIN +cp_data[56] => rf_source_data[56].DATAIN +cp_data[56] => m0_writeresponserequest.IN1 +cp_data[56] => comb.IN1 +cp_data[57] => local_write.IN1 +cp_data[57] => rf_source_data[57].DATAIN +cp_data[58] => local_read.IN1 +cp_data[58] => rf_source_data[58].DATAIN +cp_data[59] => local_lock.IN1 +cp_data[59] => rf_source_data[59].DATAIN +cp_data[60] => rf_source_data[60].DATAIN +cp_data[61] => m0_burstcount.DATAA +cp_data[61] => rf_source_data[61].DATAIN +cp_data[62] => m0_burstcount.DATAA +cp_data[62] => rf_source_data[62].DATAIN +cp_data[63] => m0_burstcount.DATAA +cp_data[63] => rf_source_data[63].DATAIN +cp_data[64] => rf_source_data[64].DATAIN +cp_data[65] => rf_source_data[65].DATAIN +cp_data[66] => rf_source_data[66].DATAIN +cp_data[67] => rf_source_data[67].DATAIN +cp_data[68] => rf_source_data[68].DATAIN +cp_data[69] => rf_source_data[69].DATAIN +cp_data[70] => rf_source_data[70].DATAIN +cp_data[71] => rf_source_data[71].DATAIN +cp_data[72] => rf_source_data[72].DATAIN +cp_data[73] => rf_source_data[73].DATAIN +cp_data[74] => rf_source_data[74].DATAIN +cp_data[75] => rf_source_data[75].DATAIN +cp_data[76] => rf_source_data[76].DATAIN +cp_data[77] => rf_source_data[77].DATAIN +cp_data[78] => rf_source_data[78].DATAIN +cp_data[79] => rf_source_data[79].DATAIN +cp_data[80] => rf_source_data[80].DATAIN +cp_data[81] => rf_source_data[81].DATAIN +cp_data[82] => rf_source_data[82].DATAIN +cp_data[83] => rf_source_data[83].DATAIN +cp_data[84] => rf_source_data[84].DATAIN +cp_data[85] => rf_source_data[85].DATAIN +cp_data[86] => rf_source_data[86].DATAIN +cp_data[87] => rf_source_data[87].DATAIN +cp_data[87] => m0_debugaccess.DATAIN +cp_data[88] => ~NO_FANOUT~ +cp_data[89] => ~NO_FANOUT~ +cp_data[90] => rf_source_data[90].DATAIN +cp_data[91] => rf_source_data[91].DATAIN +cp_data[92] => rf_source_data[92].DATAIN +cp_data[93] => rf_source_data[93].DATAIN +cp_data[94] => rf_source_data[94].DATAIN +cp_data[95] => rf_source_data[95].DATAIN +cp_channel[0] => ~NO_FANOUT~ +cp_channel[1] => ~NO_FANOUT~ +cp_channel[2] => ~NO_FANOUT~ +cp_channel[3] => ~NO_FANOUT~ +cp_channel[4] => ~NO_FANOUT~ +cp_channel[5] => ~NO_FANOUT~ +cp_channel[6] => ~NO_FANOUT~ +cp_channel[7] => ~NO_FANOUT~ +cp_channel[8] => ~NO_FANOUT~ +cp_channel[9] => ~NO_FANOUT~ +cp_channel[10] => ~NO_FANOUT~ +cp_channel[11] => ~NO_FANOUT~ +cp_channel[12] => ~NO_FANOUT~ +cp_channel[13] => ~NO_FANOUT~ +cp_channel[14] => ~NO_FANOUT~ +cp_channel[15] => ~NO_FANOUT~ +cp_channel[16] => ~NO_FANOUT~ +cp_channel[17] => ~NO_FANOUT~ +cp_startofpacket => rf_source_startofpacket.DATAIN +cp_endofpacket => nonposted_write_endofpacket.IN1 +cp_endofpacket => rf_source_endofpacket.DATAIN +rp_ready => rp_ready.IN1 +rp_valid <= rp_valid.DB_MAX_OUTPUT_PORT_TYPE +rp_data[0] <= rdata_fifo_sink_data[0].DB_MAX_OUTPUT_PORT_TYPE +rp_data[1] <= rdata_fifo_sink_data[1].DB_MAX_OUTPUT_PORT_TYPE +rp_data[2] <= rdata_fifo_sink_data[2].DB_MAX_OUTPUT_PORT_TYPE +rp_data[3] <= rdata_fifo_sink_data[3].DB_MAX_OUTPUT_PORT_TYPE +rp_data[4] <= rdata_fifo_sink_data[4].DB_MAX_OUTPUT_PORT_TYPE +rp_data[5] <= rdata_fifo_sink_data[5].DB_MAX_OUTPUT_PORT_TYPE +rp_data[6] <= rdata_fifo_sink_data[6].DB_MAX_OUTPUT_PORT_TYPE +rp_data[7] <= rdata_fifo_sink_data[7].DB_MAX_OUTPUT_PORT_TYPE +rp_data[8] <= rdata_fifo_sink_data[8].DB_MAX_OUTPUT_PORT_TYPE +rp_data[9] <= rdata_fifo_sink_data[9].DB_MAX_OUTPUT_PORT_TYPE +rp_data[10] <= rdata_fifo_sink_data[10].DB_MAX_OUTPUT_PORT_TYPE +rp_data[11] <= rdata_fifo_sink_data[11].DB_MAX_OUTPUT_PORT_TYPE +rp_data[12] <= rdata_fifo_sink_data[12].DB_MAX_OUTPUT_PORT_TYPE +rp_data[13] <= rdata_fifo_sink_data[13].DB_MAX_OUTPUT_PORT_TYPE +rp_data[14] <= rdata_fifo_sink_data[14].DB_MAX_OUTPUT_PORT_TYPE +rp_data[15] <= rdata_fifo_sink_data[15].DB_MAX_OUTPUT_PORT_TYPE +rp_data[16] <= rdata_fifo_sink_data[16].DB_MAX_OUTPUT_PORT_TYPE +rp_data[17] <= rdata_fifo_sink_data[17].DB_MAX_OUTPUT_PORT_TYPE +rp_data[18] <= rdata_fifo_sink_data[18].DB_MAX_OUTPUT_PORT_TYPE +rp_data[19] <= rdata_fifo_sink_data[19].DB_MAX_OUTPUT_PORT_TYPE +rp_data[20] <= rdata_fifo_sink_data[20].DB_MAX_OUTPUT_PORT_TYPE +rp_data[21] <= rdata_fifo_sink_data[21].DB_MAX_OUTPUT_PORT_TYPE +rp_data[22] <= rdata_fifo_sink_data[22].DB_MAX_OUTPUT_PORT_TYPE +rp_data[23] <= rdata_fifo_sink_data[23].DB_MAX_OUTPUT_PORT_TYPE +rp_data[24] <= rdata_fifo_sink_data[24].DB_MAX_OUTPUT_PORT_TYPE +rp_data[25] <= rdata_fifo_sink_data[25].DB_MAX_OUTPUT_PORT_TYPE +rp_data[26] <= rdata_fifo_sink_data[26].DB_MAX_OUTPUT_PORT_TYPE +rp_data[27] <= rdata_fifo_sink_data[27].DB_MAX_OUTPUT_PORT_TYPE +rp_data[28] <= rdata_fifo_sink_data[28].DB_MAX_OUTPUT_PORT_TYPE +rp_data[29] <= rdata_fifo_sink_data[29].DB_MAX_OUTPUT_PORT_TYPE +rp_data[30] <= rdata_fifo_sink_data[30].DB_MAX_OUTPUT_PORT_TYPE +rp_data[31] <= rdata_fifo_sink_data[31].DB_MAX_OUTPUT_PORT_TYPE +rp_data[32] <= rf_sink_data[32].DB_MAX_OUTPUT_PORT_TYPE +rp_data[33] <= rf_sink_data[33].DB_MAX_OUTPUT_PORT_TYPE +rp_data[34] <= rf_sink_data[34].DB_MAX_OUTPUT_PORT_TYPE +rp_data[35] <= rf_sink_data[35].DB_MAX_OUTPUT_PORT_TYPE +rp_data[36] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[37] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[38] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[39] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[40] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[41] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[42] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[43] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[44] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[45] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[46] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[47] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[48] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[49] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[50] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[51] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[52] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[53] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[54] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[55] <= altera_merlin_burst_uncompressor:uncompressor.source_is_compressed +rp_data[56] <= rf_sink_data[56].DB_MAX_OUTPUT_PORT_TYPE +rp_data[57] <= rf_sink_data[57].DB_MAX_OUTPUT_PORT_TYPE +rp_data[58] <= rp_data.DB_MAX_OUTPUT_PORT_TYPE +rp_data[59] <= rf_sink_data[59].DB_MAX_OUTPUT_PORT_TYPE +rp_data[60] <= rf_sink_data[60].DB_MAX_OUTPUT_PORT_TYPE +rp_data[61] <= altera_merlin_burst_uncompressor:uncompressor.source_byte_cnt +rp_data[62] <= altera_merlin_burst_uncompressor:uncompressor.source_byte_cnt +rp_data[63] <= altera_merlin_burst_uncompressor:uncompressor.source_byte_cnt +rp_data[64] <= altera_merlin_burst_uncompressor:uncompressor.source_burstwrap +rp_data[65] <= altera_merlin_burst_uncompressor:uncompressor.source_burstwrap +rp_data[66] <= altera_merlin_burst_uncompressor:uncompressor.source_burstwrap +rp_data[67] <= altera_merlin_burst_uncompressor:uncompressor.source_burstsize +rp_data[68] <= altera_merlin_burst_uncompressor:uncompressor.source_burstsize +rp_data[69] <= altera_merlin_burst_uncompressor:uncompressor.source_burstsize +rp_data[70] <= rf_sink_data[70].DB_MAX_OUTPUT_PORT_TYPE +rp_data[71] <= rf_sink_data[71].DB_MAX_OUTPUT_PORT_TYPE +rp_data[72] <= rf_sink_data[72].DB_MAX_OUTPUT_PORT_TYPE +rp_data[73] <= rf_sink_data[73].DB_MAX_OUTPUT_PORT_TYPE +rp_data[74] <= rf_sink_data[74].DB_MAX_OUTPUT_PORT_TYPE +rp_data[75] <= rf_sink_data[75].DB_MAX_OUTPUT_PORT_TYPE +rp_data[76] <= rf_sink_data[81].DB_MAX_OUTPUT_PORT_TYPE +rp_data[77] <= rf_sink_data[82].DB_MAX_OUTPUT_PORT_TYPE +rp_data[78] <= rf_sink_data[83].DB_MAX_OUTPUT_PORT_TYPE +rp_data[79] <= rf_sink_data[84].DB_MAX_OUTPUT_PORT_TYPE +rp_data[80] <= rf_sink_data[85].DB_MAX_OUTPUT_PORT_TYPE +rp_data[81] <= rf_sink_data[76].DB_MAX_OUTPUT_PORT_TYPE +rp_data[82] <= rf_sink_data[77].DB_MAX_OUTPUT_PORT_TYPE +rp_data[83] <= rf_sink_data[78].DB_MAX_OUTPUT_PORT_TYPE +rp_data[84] <= rf_sink_data[79].DB_MAX_OUTPUT_PORT_TYPE +rp_data[85] <= rf_sink_data[80].DB_MAX_OUTPUT_PORT_TYPE +rp_data[86] <= rf_sink_data[86].DB_MAX_OUTPUT_PORT_TYPE +rp_data[87] <= rf_sink_data[87].DB_MAX_OUTPUT_PORT_TYPE +rp_data[88] <= rf_sink_data[88].DB_MAX_OUTPUT_PORT_TYPE +rp_data[89] <= rf_sink_data[89].DB_MAX_OUTPUT_PORT_TYPE +rp_data[90] <= rf_sink_data[90].DB_MAX_OUTPUT_PORT_TYPE +rp_data[91] <= rf_sink_data[91].DB_MAX_OUTPUT_PORT_TYPE +rp_data[92] <= rf_sink_data[92].DB_MAX_OUTPUT_PORT_TYPE +rp_data[93] <= rf_sink_data[93].DB_MAX_OUTPUT_PORT_TYPE +rp_data[94] <= rdata_fifo_sink_data[32].DB_MAX_OUTPUT_PORT_TYPE +rp_data[95] <= rdata_fifo_sink_data[33].DB_MAX_OUTPUT_PORT_TYPE +rp_startofpacket <= altera_merlin_burst_uncompressor:uncompressor.source_startofpacket +rp_endofpacket <= altera_merlin_burst_uncompressor:uncompressor.source_endofpacket + + +|lights|nios_system:NiosII|altera_merlin_slave_agent:ledrs_s1_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor +clk => burst_uncompress_address_offset[0].CLK +clk => burst_uncompress_address_offset[1].CLK +clk => burst_uncompress_address_offset[2].CLK +clk => burst_uncompress_address_offset[3].CLK +clk => burst_uncompress_address_offset[4].CLK +clk => burst_uncompress_address_offset[5].CLK +clk => burst_uncompress_address_offset[6].CLK +clk => burst_uncompress_address_offset[7].CLK +clk => burst_uncompress_address_offset[8].CLK +clk => burst_uncompress_address_offset[9].CLK +clk => burst_uncompress_address_offset[10].CLK +clk => burst_uncompress_address_offset[11].CLK +clk => burst_uncompress_address_offset[12].CLK +clk => burst_uncompress_address_offset[13].CLK +clk => burst_uncompress_address_offset[14].CLK +clk => burst_uncompress_address_offset[15].CLK +clk => burst_uncompress_address_offset[16].CLK +clk => burst_uncompress_address_offset[17].CLK +clk => burst_uncompress_address_offset[18].CLK +clk => burst_uncompress_address_base[0].CLK +clk => burst_uncompress_address_base[1].CLK +clk => burst_uncompress_address_base[2].CLK +clk => burst_uncompress_address_base[3].CLK +clk => burst_uncompress_address_base[4].CLK +clk => burst_uncompress_address_base[5].CLK +clk => burst_uncompress_address_base[6].CLK +clk => burst_uncompress_address_base[7].CLK +clk => burst_uncompress_address_base[8].CLK +clk => burst_uncompress_address_base[9].CLK +clk => burst_uncompress_address_base[10].CLK +clk => burst_uncompress_address_base[11].CLK +clk => burst_uncompress_address_base[12].CLK +clk => burst_uncompress_address_base[13].CLK +clk => burst_uncompress_address_base[14].CLK +clk => burst_uncompress_address_base[15].CLK +clk => burst_uncompress_address_base[16].CLK +clk => burst_uncompress_address_base[17].CLK +clk => burst_uncompress_address_base[18].CLK +clk => burst_uncompress_byte_counter[0].CLK +clk => burst_uncompress_byte_counter[1].CLK +clk => burst_uncompress_byte_counter[2].CLK +clk => burst_uncompress_busy.CLK +reset => burst_uncompress_address_offset[0].ACLR +reset => burst_uncompress_address_offset[1].ACLR +reset => burst_uncompress_address_offset[2].ACLR +reset => burst_uncompress_address_offset[3].ACLR +reset => burst_uncompress_address_offset[4].ACLR +reset => burst_uncompress_address_offset[5].ACLR +reset => burst_uncompress_address_offset[6].ACLR +reset => burst_uncompress_address_offset[7].ACLR +reset => burst_uncompress_address_offset[8].ACLR +reset => burst_uncompress_address_offset[9].ACLR +reset => burst_uncompress_address_offset[10].ACLR +reset => burst_uncompress_address_offset[11].ACLR +reset => burst_uncompress_address_offset[12].ACLR +reset => burst_uncompress_address_offset[13].ACLR +reset => burst_uncompress_address_offset[14].ACLR +reset => burst_uncompress_address_offset[15].ACLR +reset => burst_uncompress_address_offset[16].ACLR +reset => burst_uncompress_address_offset[17].ACLR +reset => burst_uncompress_address_offset[18].ACLR +reset => burst_uncompress_address_base[0].ACLR +reset => burst_uncompress_address_base[1].ACLR +reset => burst_uncompress_address_base[2].ACLR +reset => burst_uncompress_address_base[3].ACLR +reset => burst_uncompress_address_base[4].ACLR +reset => burst_uncompress_address_base[5].ACLR +reset => burst_uncompress_address_base[6].ACLR +reset => burst_uncompress_address_base[7].ACLR +reset => burst_uncompress_address_base[8].ACLR +reset => burst_uncompress_address_base[9].ACLR +reset => burst_uncompress_address_base[10].ACLR +reset => burst_uncompress_address_base[11].ACLR +reset => burst_uncompress_address_base[12].ACLR +reset => burst_uncompress_address_base[13].ACLR +reset => burst_uncompress_address_base[14].ACLR +reset => burst_uncompress_address_base[15].ACLR +reset => burst_uncompress_address_base[16].ACLR +reset => burst_uncompress_address_base[17].ACLR +reset => burst_uncompress_address_base[18].ACLR +reset => burst_uncompress_byte_counter[0].ACLR +reset => burst_uncompress_byte_counter[1].ACLR +reset => burst_uncompress_byte_counter[2].ACLR +reset => burst_uncompress_busy.ACLR +sink_startofpacket => source_startofpacket.IN1 +sink_endofpacket => source_endofpacket.IN1 +sink_valid => first_packet_beat.IN1 +sink_valid => last_packet_beat.IN1 +sink_valid => last_packet_beat.IN1 +sink_valid => always0.IN1 +sink_valid => sink_ready.IN0 +sink_valid => source_valid.DATAIN +sink_ready <= sink_ready.DB_MAX_OUTPUT_PORT_TYPE +sink_addr[0] => burst_uncompress_address_base.IN0 +sink_addr[0] => comb.DATAB +sink_addr[0] => source_addr.DATAB +sink_addr[1] => burst_uncompress_address_base.IN0 +sink_addr[1] => comb.DATAB +sink_addr[1] => source_addr.DATAB +sink_addr[2] => burst_uncompress_address_base.IN0 +sink_addr[2] => comb.DATAB +sink_addr[2] => source_addr.DATAB +sink_addr[3] => burst_uncompress_address_base.IN0 +sink_addr[3] => comb.DATAB +sink_addr[3] => source_addr.DATAB +sink_addr[4] => burst_uncompress_address_base.IN0 +sink_addr[4] => comb.DATAB +sink_addr[4] => source_addr.DATAB +sink_addr[5] => burst_uncompress_address_base.IN0 +sink_addr[5] => comb.DATAB +sink_addr[5] => source_addr.DATAB +sink_addr[6] => burst_uncompress_address_base.IN0 +sink_addr[6] => comb.DATAB +sink_addr[6] => source_addr.DATAB +sink_addr[7] => burst_uncompress_address_base.IN0 +sink_addr[7] => comb.DATAB +sink_addr[7] => source_addr.DATAB +sink_addr[8] => burst_uncompress_address_base.IN0 +sink_addr[8] => comb.DATAB +sink_addr[8] => source_addr.DATAB +sink_addr[9] => burst_uncompress_address_base.IN0 +sink_addr[9] => comb.DATAB +sink_addr[9] => source_addr.DATAB +sink_addr[10] => burst_uncompress_address_base.IN0 +sink_addr[10] => comb.DATAB +sink_addr[10] => source_addr.DATAB +sink_addr[11] => burst_uncompress_address_base.IN0 +sink_addr[11] => comb.DATAB +sink_addr[11] => source_addr.DATAB +sink_addr[12] => burst_uncompress_address_base.IN0 +sink_addr[12] => comb.DATAB +sink_addr[12] => source_addr.DATAB +sink_addr[13] => burst_uncompress_address_base.IN0 +sink_addr[13] => comb.DATAB +sink_addr[13] => source_addr.DATAB +sink_addr[14] => burst_uncompress_address_base.IN0 +sink_addr[14] => comb.DATAB +sink_addr[14] => source_addr.DATAB +sink_addr[15] => burst_uncompress_address_base.IN0 +sink_addr[15] => comb.DATAB +sink_addr[15] => source_addr.DATAB +sink_addr[16] => burst_uncompress_address_base.IN0 +sink_addr[16] => comb.DATAB +sink_addr[16] => source_addr.DATAB +sink_addr[17] => burst_uncompress_address_base.IN0 +sink_addr[17] => comb.DATAB +sink_addr[17] => source_addr.DATAB +sink_addr[18] => burst_uncompress_address_base.IN0 +sink_addr[18] => comb.DATAB +sink_addr[18] => source_addr.DATAB +sink_burstwrap[0] => p1_burst_uncompress_address_offset[0].IN1 +sink_burstwrap[0] => source_burstwrap[0].DATAIN +sink_burstwrap[0] => burst_uncompress_address_base.IN1 +sink_burstwrap[1] => p1_burst_uncompress_address_offset[1].IN1 +sink_burstwrap[1] => source_burstwrap[1].DATAIN +sink_burstwrap[1] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[2].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[18].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[17].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[16].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[15].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[14].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[13].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[12].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[11].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[10].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[9].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[8].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[7].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[6].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[5].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[4].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[3].IN1 +sink_burstwrap[2] => source_burstwrap[2].DATAIN +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_byte_cnt[0] => source_byte_cnt.DATAB +sink_byte_cnt[0] => Add1.IN6 +sink_byte_cnt[0] => Equal1.IN2 +sink_byte_cnt[1] => source_byte_cnt.DATAB +sink_byte_cnt[1] => Add1.IN5 +sink_byte_cnt[1] => Equal1.IN1 +sink_byte_cnt[2] => source_byte_cnt.DATAB +sink_byte_cnt[2] => Add1.IN4 +sink_byte_cnt[2] => Equal1.IN0 +sink_is_compressed => last_packet_beat.IN1 +sink_burstsize[0] => Decoder0.IN2 +sink_burstsize[0] => source_burstsize[0].DATAIN +sink_burstsize[1] => Decoder0.IN1 +sink_burstsize[1] => source_burstsize[1].DATAIN +sink_burstsize[2] => Decoder0.IN0 +sink_burstsize[2] => source_burstsize[2].DATAIN +source_startofpacket <= source_startofpacket.DB_MAX_OUTPUT_PORT_TYPE +source_endofpacket <= source_endofpacket.DB_MAX_OUTPUT_PORT_TYPE +source_valid <= sink_valid.DB_MAX_OUTPUT_PORT_TYPE +source_ready => always1.IN1 +source_ready => sink_ready.IN1 +source_addr[0] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[1] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[2] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[3] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[4] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[5] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[6] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[7] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[8] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[9] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[10] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[11] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[12] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[13] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[14] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[15] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[16] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[17] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[18] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_burstwrap[0] <= sink_burstwrap[0].DB_MAX_OUTPUT_PORT_TYPE +source_burstwrap[1] <= sink_burstwrap[1].DB_MAX_OUTPUT_PORT_TYPE +source_burstwrap[2] <= sink_burstwrap[2].DB_MAX_OUTPUT_PORT_TYPE +source_byte_cnt[0] <= source_byte_cnt.DB_MAX_OUTPUT_PORT_TYPE +source_byte_cnt[1] <= source_byte_cnt.DB_MAX_OUTPUT_PORT_TYPE +source_byte_cnt[2] <= source_byte_cnt.DB_MAX_OUTPUT_PORT_TYPE +source_is_compressed <= +source_burstsize[0] <= sink_burstsize[0].DB_MAX_OUTPUT_PORT_TYPE +source_burstsize[1] <= sink_burstsize[1].DB_MAX_OUTPUT_PORT_TYPE +source_burstsize[2] <= sink_burstsize[2].DB_MAX_OUTPUT_PORT_TYPE + + +|lights|nios_system:NiosII|altera_avalon_sc_fifo:ledrs_s1_translator_avalon_universal_slave_0_agent_rsp_fifo +clk => csr_readdata[0]~reg0.CLK +clk => csr_readdata[1]~reg0.CLK +clk => csr_readdata[2]~reg0.CLK +clk => csr_readdata[3]~reg0.CLK +clk => csr_readdata[4]~reg0.CLK +clk => csr_readdata[5]~reg0.CLK +clk => csr_readdata[6]~reg0.CLK +clk => csr_readdata[7]~reg0.CLK +clk => csr_readdata[8]~reg0.CLK +clk => csr_readdata[9]~reg0.CLK +clk => csr_readdata[10]~reg0.CLK +clk => csr_readdata[11]~reg0.CLK +clk => csr_readdata[12]~reg0.CLK +clk => csr_readdata[13]~reg0.CLK +clk => csr_readdata[14]~reg0.CLK +clk => csr_readdata[15]~reg0.CLK +clk => csr_readdata[16]~reg0.CLK +clk => csr_readdata[17]~reg0.CLK +clk => csr_readdata[18]~reg0.CLK +clk => csr_readdata[19]~reg0.CLK +clk => csr_readdata[20]~reg0.CLK +clk => csr_readdata[21]~reg0.CLK +clk => csr_readdata[22]~reg0.CLK +clk => csr_readdata[23]~reg0.CLK +clk => csr_readdata[24]~reg0.CLK +clk => csr_readdata[25]~reg0.CLK +clk => csr_readdata[26]~reg0.CLK +clk => csr_readdata[27]~reg0.CLK +clk => csr_readdata[28]~reg0.CLK +clk => csr_readdata[29]~reg0.CLK +clk => csr_readdata[30]~reg0.CLK +clk => csr_readdata[31]~reg0.CLK +clk => mem_used[1].CLK +clk => mem_used[0].CLK +clk => mem[1][0].CLK +clk => mem[1][1].CLK +clk => mem[1][2].CLK +clk => mem[1][3].CLK +clk => mem[1][4].CLK +clk => mem[1][5].CLK +clk => mem[1][6].CLK +clk => mem[1][7].CLK +clk => mem[1][8].CLK +clk => mem[1][9].CLK +clk => mem[1][10].CLK +clk => mem[1][11].CLK +clk => mem[1][12].CLK +clk => mem[1][13].CLK +clk => mem[1][14].CLK +clk => mem[1][15].CLK +clk => mem[1][16].CLK +clk => mem[1][17].CLK +clk => mem[1][18].CLK +clk => mem[1][19].CLK +clk => mem[1][20].CLK +clk => mem[1][21].CLK +clk => mem[1][22].CLK +clk => mem[1][23].CLK +clk => mem[1][24].CLK +clk => mem[1][25].CLK +clk => mem[1][26].CLK +clk => mem[1][27].CLK +clk => mem[1][28].CLK +clk => mem[1][29].CLK +clk => mem[1][30].CLK +clk => mem[1][31].CLK +clk => mem[1][32].CLK +clk => mem[1][33].CLK +clk => mem[1][34].CLK +clk => mem[1][35].CLK +clk => mem[1][36].CLK +clk => mem[1][37].CLK +clk => mem[1][38].CLK +clk => mem[1][39].CLK +clk => mem[1][40].CLK +clk => mem[1][41].CLK +clk => mem[1][42].CLK +clk => mem[1][43].CLK +clk => mem[1][44].CLK +clk => mem[1][45].CLK +clk => mem[1][46].CLK +clk => mem[1][47].CLK +clk => mem[1][48].CLK +clk => mem[1][49].CLK +clk => mem[1][50].CLK +clk => mem[1][51].CLK +clk => mem[1][52].CLK +clk => mem[1][53].CLK +clk => mem[1][54].CLK +clk => mem[1][55].CLK +clk => mem[1][56].CLK +clk => mem[1][57].CLK +clk => mem[1][58].CLK +clk => mem[1][59].CLK +clk => mem[1][60].CLK +clk => mem[1][61].CLK +clk => mem[1][62].CLK +clk => mem[1][63].CLK +clk => mem[1][64].CLK +clk => mem[1][65].CLK +clk => mem[1][66].CLK +clk => mem[1][67].CLK +clk => mem[1][68].CLK +clk => mem[1][69].CLK +clk => mem[1][70].CLK +clk => mem[1][71].CLK +clk => mem[1][72].CLK +clk => mem[1][73].CLK +clk => mem[1][74].CLK +clk => mem[1][75].CLK +clk => mem[1][76].CLK +clk => mem[1][77].CLK +clk => mem[1][78].CLK +clk => mem[1][79].CLK +clk => mem[1][80].CLK +clk => mem[1][81].CLK +clk => mem[1][82].CLK +clk => mem[1][83].CLK +clk => mem[1][84].CLK +clk => mem[1][85].CLK +clk => mem[1][86].CLK +clk => mem[1][87].CLK +clk => mem[1][88].CLK +clk => mem[1][89].CLK +clk => mem[1][90].CLK +clk => mem[1][91].CLK +clk => mem[1][92].CLK +clk => mem[1][93].CLK +clk => mem[1][94].CLK +clk => mem[1][95].CLK +clk => mem[1][96].CLK +clk => mem[1][97].CLK +clk => mem[1][98].CLK +clk => mem[0][0].CLK +clk => mem[0][1].CLK +clk => mem[0][2].CLK +clk => mem[0][3].CLK +clk => mem[0][4].CLK +clk => mem[0][5].CLK +clk => mem[0][6].CLK +clk => mem[0][7].CLK +clk => mem[0][8].CLK +clk => mem[0][9].CLK +clk => mem[0][10].CLK +clk => mem[0][11].CLK +clk => mem[0][12].CLK +clk => mem[0][13].CLK +clk => mem[0][14].CLK +clk => mem[0][15].CLK +clk => mem[0][16].CLK +clk => mem[0][17].CLK +clk => mem[0][18].CLK +clk => mem[0][19].CLK +clk => mem[0][20].CLK +clk => mem[0][21].CLK +clk => mem[0][22].CLK +clk => mem[0][23].CLK +clk => mem[0][24].CLK +clk => mem[0][25].CLK +clk => mem[0][26].CLK +clk => mem[0][27].CLK +clk => mem[0][28].CLK +clk => mem[0][29].CLK +clk => mem[0][30].CLK +clk => mem[0][31].CLK +clk => mem[0][32].CLK +clk => mem[0][33].CLK +clk => mem[0][34].CLK +clk => mem[0][35].CLK +clk => mem[0][36].CLK +clk => mem[0][37].CLK +clk => mem[0][38].CLK +clk => mem[0][39].CLK +clk => mem[0][40].CLK +clk => mem[0][41].CLK +clk => mem[0][42].CLK +clk => mem[0][43].CLK +clk => mem[0][44].CLK +clk => mem[0][45].CLK +clk => mem[0][46].CLK +clk => mem[0][47].CLK +clk => mem[0][48].CLK +clk => mem[0][49].CLK +clk => mem[0][50].CLK +clk => mem[0][51].CLK +clk => mem[0][52].CLK +clk => mem[0][53].CLK +clk => mem[0][54].CLK +clk => mem[0][55].CLK +clk => mem[0][56].CLK +clk => mem[0][57].CLK +clk => mem[0][58].CLK +clk => mem[0][59].CLK +clk => mem[0][60].CLK +clk => mem[0][61].CLK +clk => mem[0][62].CLK +clk => mem[0][63].CLK +clk => mem[0][64].CLK +clk => mem[0][65].CLK +clk => mem[0][66].CLK +clk => mem[0][67].CLK +clk => mem[0][68].CLK +clk => mem[0][69].CLK +clk => mem[0][70].CLK +clk => mem[0][71].CLK +clk => mem[0][72].CLK +clk => mem[0][73].CLK +clk => mem[0][74].CLK +clk => mem[0][75].CLK +clk => mem[0][76].CLK +clk => mem[0][77].CLK +clk => mem[0][78].CLK +clk => mem[0][79].CLK +clk => mem[0][80].CLK +clk => mem[0][81].CLK +clk => mem[0][82].CLK +clk => mem[0][83].CLK +clk => mem[0][84].CLK +clk => mem[0][85].CLK +clk => mem[0][86].CLK +clk => mem[0][87].CLK +clk => mem[0][88].CLK +clk => mem[0][89].CLK +clk => mem[0][90].CLK +clk => mem[0][91].CLK +clk => mem[0][92].CLK +clk => mem[0][93].CLK +clk => mem[0][94].CLK +clk => mem[0][95].CLK +clk => mem[0][96].CLK +clk => mem[0][97].CLK +clk => mem[0][98].CLK +reset => csr_readdata[0]~reg0.ACLR +reset => csr_readdata[1]~reg0.ACLR +reset => csr_readdata[2]~reg0.ACLR +reset => csr_readdata[3]~reg0.ACLR +reset => csr_readdata[4]~reg0.ACLR +reset => csr_readdata[5]~reg0.ACLR +reset => csr_readdata[6]~reg0.ACLR +reset => csr_readdata[7]~reg0.ACLR +reset => csr_readdata[8]~reg0.ACLR +reset => csr_readdata[9]~reg0.ACLR +reset => csr_readdata[10]~reg0.ACLR +reset => csr_readdata[11]~reg0.ACLR +reset => csr_readdata[12]~reg0.ACLR +reset => csr_readdata[13]~reg0.ACLR +reset => csr_readdata[14]~reg0.ACLR +reset => csr_readdata[15]~reg0.ACLR +reset => csr_readdata[16]~reg0.ACLR +reset => csr_readdata[17]~reg0.ACLR +reset => csr_readdata[18]~reg0.ACLR +reset => csr_readdata[19]~reg0.ACLR +reset => csr_readdata[20]~reg0.ACLR +reset => csr_readdata[21]~reg0.ACLR +reset => csr_readdata[22]~reg0.ACLR +reset => csr_readdata[23]~reg0.ACLR +reset => csr_readdata[24]~reg0.ACLR +reset => csr_readdata[25]~reg0.ACLR +reset => csr_readdata[26]~reg0.ACLR +reset => csr_readdata[27]~reg0.ACLR +reset => csr_readdata[28]~reg0.ACLR +reset => csr_readdata[29]~reg0.ACLR +reset => csr_readdata[30]~reg0.ACLR +reset => csr_readdata[31]~reg0.ACLR +reset => mem_used[1].ACLR +reset => mem_used[0].ACLR +reset => mem[1][0].ACLR +reset => mem[1][1].ACLR +reset => mem[1][2].ACLR +reset => mem[1][3].ACLR +reset => mem[1][4].ACLR +reset => mem[1][5].ACLR +reset => mem[1][6].ACLR +reset => mem[1][7].ACLR +reset => mem[1][8].ACLR +reset => mem[1][9].ACLR +reset => mem[1][10].ACLR +reset => mem[1][11].ACLR +reset => mem[1][12].ACLR +reset => mem[1][13].ACLR +reset => mem[1][14].ACLR +reset => mem[1][15].ACLR +reset => mem[1][16].ACLR +reset => mem[1][17].ACLR +reset => mem[1][18].ACLR +reset => mem[1][19].ACLR +reset => mem[1][20].ACLR +reset => mem[1][21].ACLR +reset => mem[1][22].ACLR +reset => mem[1][23].ACLR +reset => mem[1][24].ACLR +reset => mem[1][25].ACLR +reset => mem[1][26].ACLR +reset => mem[1][27].ACLR +reset => mem[1][28].ACLR +reset => mem[1][29].ACLR +reset => mem[1][30].ACLR +reset => mem[1][31].ACLR +reset => mem[1][32].ACLR +reset => mem[1][33].ACLR +reset => mem[1][34].ACLR +reset => mem[1][35].ACLR +reset => mem[1][36].ACLR +reset => mem[1][37].ACLR +reset => mem[1][38].ACLR +reset => mem[1][39].ACLR +reset => mem[1][40].ACLR +reset => mem[1][41].ACLR +reset => mem[1][42].ACLR +reset => mem[1][43].ACLR +reset => mem[1][44].ACLR +reset => mem[1][45].ACLR +reset => mem[1][46].ACLR +reset => mem[1][47].ACLR +reset => mem[1][48].ACLR +reset => mem[1][49].ACLR +reset => mem[1][50].ACLR +reset => mem[1][51].ACLR +reset => mem[1][52].ACLR +reset => mem[1][53].ACLR +reset => mem[1][54].ACLR +reset => mem[1][55].ACLR +reset => mem[1][56].ACLR +reset => mem[1][57].ACLR +reset => mem[1][58].ACLR +reset => mem[1][59].ACLR +reset => mem[1][60].ACLR +reset => mem[1][61].ACLR +reset => mem[1][62].ACLR +reset => mem[1][63].ACLR +reset => mem[1][64].ACLR +reset => mem[1][65].ACLR +reset => mem[1][66].ACLR +reset => mem[1][67].ACLR +reset => mem[1][68].ACLR +reset => mem[1][69].ACLR +reset => mem[1][70].ACLR +reset => mem[1][71].ACLR +reset => mem[1][72].ACLR +reset => mem[1][73].ACLR +reset => mem[1][74].ACLR +reset => mem[1][75].ACLR +reset => mem[1][76].ACLR +reset => mem[1][77].ACLR +reset => mem[1][78].ACLR +reset => mem[1][79].ACLR +reset => mem[1][80].ACLR +reset => mem[1][81].ACLR +reset => mem[1][82].ACLR +reset => mem[1][83].ACLR +reset => mem[1][84].ACLR +reset => mem[1][85].ACLR +reset => mem[1][86].ACLR +reset => mem[1][87].ACLR +reset => mem[1][88].ACLR +reset => mem[1][89].ACLR +reset => mem[1][90].ACLR +reset => mem[1][91].ACLR +reset => mem[1][92].ACLR +reset => mem[1][93].ACLR +reset => mem[1][94].ACLR +reset => mem[1][95].ACLR +reset => mem[1][96].ACLR +reset => mem[1][97].ACLR +reset => mem[1][98].ACLR +reset => mem[0][0].ACLR +reset => mem[0][1].ACLR +reset => mem[0][2].ACLR +reset => mem[0][3].ACLR +reset => mem[0][4].ACLR +reset => mem[0][5].ACLR +reset => mem[0][6].ACLR +reset => mem[0][7].ACLR +reset => mem[0][8].ACLR +reset => mem[0][9].ACLR +reset => mem[0][10].ACLR +reset => mem[0][11].ACLR +reset => mem[0][12].ACLR +reset => mem[0][13].ACLR +reset => mem[0][14].ACLR +reset => mem[0][15].ACLR +reset => mem[0][16].ACLR +reset => mem[0][17].ACLR +reset => mem[0][18].ACLR +reset => mem[0][19].ACLR +reset => mem[0][20].ACLR +reset => mem[0][21].ACLR +reset => mem[0][22].ACLR +reset => mem[0][23].ACLR +reset => mem[0][24].ACLR +reset => mem[0][25].ACLR +reset => mem[0][26].ACLR +reset => mem[0][27].ACLR +reset => mem[0][28].ACLR +reset => mem[0][29].ACLR +reset => mem[0][30].ACLR +reset => mem[0][31].ACLR +reset => mem[0][32].ACLR +reset => mem[0][33].ACLR +reset => mem[0][34].ACLR +reset => mem[0][35].ACLR +reset => mem[0][36].ACLR +reset => mem[0][37].ACLR +reset => mem[0][38].ACLR +reset => mem[0][39].ACLR +reset => mem[0][40].ACLR +reset => mem[0][41].ACLR +reset => mem[0][42].ACLR +reset => mem[0][43].ACLR +reset => mem[0][44].ACLR +reset => mem[0][45].ACLR +reset => mem[0][46].ACLR +reset => mem[0][47].ACLR +reset => mem[0][48].ACLR +reset => mem[0][49].ACLR +reset => mem[0][50].ACLR +reset => mem[0][51].ACLR +reset => mem[0][52].ACLR +reset => mem[0][53].ACLR +reset => mem[0][54].ACLR +reset => mem[0][55].ACLR +reset => mem[0][56].ACLR +reset => mem[0][57].ACLR +reset => mem[0][58].ACLR +reset => mem[0][59].ACLR +reset => mem[0][60].ACLR +reset => mem[0][61].ACLR +reset => mem[0][62].ACLR +reset => mem[0][63].ACLR +reset => mem[0][64].ACLR +reset => mem[0][65].ACLR +reset => mem[0][66].ACLR +reset => mem[0][67].ACLR +reset => mem[0][68].ACLR +reset => mem[0][69].ACLR +reset => mem[0][70].ACLR +reset => mem[0][71].ACLR +reset => mem[0][72].ACLR +reset => mem[0][73].ACLR +reset => mem[0][74].ACLR +reset => mem[0][75].ACLR +reset => mem[0][76].ACLR +reset => mem[0][77].ACLR +reset => mem[0][78].ACLR +reset => mem[0][79].ACLR +reset => mem[0][80].ACLR +reset => mem[0][81].ACLR +reset => mem[0][82].ACLR +reset => mem[0][83].ACLR +reset => mem[0][84].ACLR +reset => mem[0][85].ACLR +reset => mem[0][86].ACLR +reset => mem[0][87].ACLR +reset => mem[0][88].ACLR +reset => mem[0][89].ACLR +reset => mem[0][90].ACLR +reset => mem[0][91].ACLR +reset => mem[0][92].ACLR +reset => mem[0][93].ACLR +reset => mem[0][94].ACLR +reset => mem[0][95].ACLR +reset => mem[0][96].ACLR +reset => mem[0][97].ACLR +reset => mem[0][98].ACLR +in_data[0] => mem.DATAB +in_data[1] => mem.DATAB +in_data[2] => mem.DATAB +in_data[3] => mem.DATAB +in_data[4] => mem.DATAB +in_data[5] => mem.DATAB +in_data[6] => mem.DATAB +in_data[7] => mem.DATAB +in_data[8] => mem.DATAB +in_data[9] => mem.DATAB +in_data[10] => mem.DATAB +in_data[11] => mem.DATAB +in_data[12] => mem.DATAB +in_data[13] => mem.DATAB +in_data[14] => mem.DATAB +in_data[15] => mem.DATAB +in_data[16] => mem.DATAB +in_data[17] => mem.DATAB +in_data[18] => mem.DATAB +in_data[19] => mem.DATAB +in_data[20] => mem.DATAB +in_data[21] => mem.DATAB +in_data[22] => mem.DATAB +in_data[23] => mem.DATAB +in_data[24] => mem.DATAB +in_data[25] => mem.DATAB +in_data[26] => mem.DATAB +in_data[27] => mem.DATAB +in_data[28] => mem.DATAB +in_data[29] => mem.DATAB +in_data[30] => mem.DATAB +in_data[31] => mem.DATAB +in_data[32] => mem.DATAB +in_data[33] => mem.DATAB +in_data[34] => mem.DATAB +in_data[35] => mem.DATAB +in_data[36] => mem.DATAB +in_data[37] => mem.DATAB +in_data[38] => mem.DATAB +in_data[39] => mem.DATAB +in_data[40] => mem.DATAB +in_data[41] => mem.DATAB +in_data[42] => mem.DATAB +in_data[43] => mem.DATAB +in_data[44] => mem.DATAB +in_data[45] => mem.DATAB +in_data[46] => mem.DATAB +in_data[47] => mem.DATAB +in_data[48] => mem.DATAB +in_data[49] => mem.DATAB +in_data[50] => mem.DATAB +in_data[51] => mem.DATAB +in_data[52] => mem.DATAB +in_data[53] => mem.DATAB +in_data[54] => mem.DATAB +in_data[55] => mem.DATAB +in_data[56] => mem.DATAB +in_data[57] => mem.DATAB +in_data[58] => mem.DATAB +in_data[59] => mem.DATAB +in_data[60] => mem.DATAB +in_data[61] => mem.DATAB +in_data[62] => mem.DATAB +in_data[63] => mem.DATAB +in_data[64] => mem.DATAB +in_data[65] => mem.DATAB +in_data[66] => mem.DATAB +in_data[67] => mem.DATAB +in_data[68] => mem.DATAB +in_data[69] => mem.DATAB +in_data[70] => mem.DATAB +in_data[71] => mem.DATAB +in_data[72] => mem.DATAB +in_data[73] => mem.DATAB +in_data[74] => mem.DATAB +in_data[75] => mem.DATAB +in_data[76] => mem.DATAB +in_data[77] => mem.DATAB +in_data[78] => mem.DATAB +in_data[79] => mem.DATAB +in_data[80] => mem.DATAB +in_data[81] => mem.DATAB +in_data[82] => mem.DATAB +in_data[83] => mem.DATAB +in_data[84] => mem.DATAB +in_data[85] => mem.DATAB +in_data[86] => mem.DATAB +in_data[87] => mem.DATAB +in_data[88] => mem.DATAB +in_data[89] => mem.DATAB +in_data[90] => mem.DATAB +in_data[91] => mem.DATAB +in_data[92] => mem.DATAB +in_data[93] => mem.DATAB +in_data[94] => mem.DATAB +in_data[95] => mem.DATAB +in_data[96] => mem.DATAB +in_valid => write.IN1 +in_startofpacket => mem.DATAB +in_endofpacket => mem.DATAB +in_empty[0] => ~NO_FANOUT~ +in_error[0] => out_error[0].DATAIN +in_error[0] => out_empty[0].DATAIN +in_channel[0] => out_channel[0].DATAIN +in_ready <= mem_used[1].DB_MAX_OUTPUT_PORT_TYPE +out_data[0] <= mem[0][0].DB_MAX_OUTPUT_PORT_TYPE +out_data[1] <= mem[0][1].DB_MAX_OUTPUT_PORT_TYPE +out_data[2] <= mem[0][2].DB_MAX_OUTPUT_PORT_TYPE +out_data[3] <= mem[0][3].DB_MAX_OUTPUT_PORT_TYPE +out_data[4] <= mem[0][4].DB_MAX_OUTPUT_PORT_TYPE +out_data[5] <= mem[0][5].DB_MAX_OUTPUT_PORT_TYPE +out_data[6] <= mem[0][6].DB_MAX_OUTPUT_PORT_TYPE +out_data[7] <= mem[0][7].DB_MAX_OUTPUT_PORT_TYPE +out_data[8] <= mem[0][8].DB_MAX_OUTPUT_PORT_TYPE +out_data[9] <= mem[0][9].DB_MAX_OUTPUT_PORT_TYPE +out_data[10] <= mem[0][10].DB_MAX_OUTPUT_PORT_TYPE +out_data[11] <= mem[0][11].DB_MAX_OUTPUT_PORT_TYPE +out_data[12] <= mem[0][12].DB_MAX_OUTPUT_PORT_TYPE +out_data[13] <= mem[0][13].DB_MAX_OUTPUT_PORT_TYPE +out_data[14] <= mem[0][14].DB_MAX_OUTPUT_PORT_TYPE +out_data[15] <= mem[0][15].DB_MAX_OUTPUT_PORT_TYPE +out_data[16] <= mem[0][16].DB_MAX_OUTPUT_PORT_TYPE +out_data[17] <= mem[0][17].DB_MAX_OUTPUT_PORT_TYPE +out_data[18] <= mem[0][18].DB_MAX_OUTPUT_PORT_TYPE +out_data[19] <= mem[0][19].DB_MAX_OUTPUT_PORT_TYPE +out_data[20] <= mem[0][20].DB_MAX_OUTPUT_PORT_TYPE +out_data[21] <= mem[0][21].DB_MAX_OUTPUT_PORT_TYPE +out_data[22] <= mem[0][22].DB_MAX_OUTPUT_PORT_TYPE +out_data[23] <= mem[0][23].DB_MAX_OUTPUT_PORT_TYPE +out_data[24] <= mem[0][24].DB_MAX_OUTPUT_PORT_TYPE +out_data[25] <= mem[0][25].DB_MAX_OUTPUT_PORT_TYPE +out_data[26] <= mem[0][26].DB_MAX_OUTPUT_PORT_TYPE +out_data[27] <= mem[0][27].DB_MAX_OUTPUT_PORT_TYPE +out_data[28] <= mem[0][28].DB_MAX_OUTPUT_PORT_TYPE +out_data[29] <= mem[0][29].DB_MAX_OUTPUT_PORT_TYPE +out_data[30] <= mem[0][30].DB_MAX_OUTPUT_PORT_TYPE +out_data[31] <= mem[0][31].DB_MAX_OUTPUT_PORT_TYPE +out_data[32] <= mem[0][32].DB_MAX_OUTPUT_PORT_TYPE +out_data[33] <= mem[0][33].DB_MAX_OUTPUT_PORT_TYPE +out_data[34] <= mem[0][34].DB_MAX_OUTPUT_PORT_TYPE +out_data[35] <= mem[0][35].DB_MAX_OUTPUT_PORT_TYPE +out_data[36] <= mem[0][36].DB_MAX_OUTPUT_PORT_TYPE +out_data[37] <= mem[0][37].DB_MAX_OUTPUT_PORT_TYPE +out_data[38] <= mem[0][38].DB_MAX_OUTPUT_PORT_TYPE +out_data[39] <= mem[0][39].DB_MAX_OUTPUT_PORT_TYPE +out_data[40] <= mem[0][40].DB_MAX_OUTPUT_PORT_TYPE +out_data[41] <= mem[0][41].DB_MAX_OUTPUT_PORT_TYPE +out_data[42] <= mem[0][42].DB_MAX_OUTPUT_PORT_TYPE +out_data[43] <= mem[0][43].DB_MAX_OUTPUT_PORT_TYPE +out_data[44] <= mem[0][44].DB_MAX_OUTPUT_PORT_TYPE +out_data[45] <= mem[0][45].DB_MAX_OUTPUT_PORT_TYPE +out_data[46] <= mem[0][46].DB_MAX_OUTPUT_PORT_TYPE +out_data[47] <= mem[0][47].DB_MAX_OUTPUT_PORT_TYPE +out_data[48] <= mem[0][48].DB_MAX_OUTPUT_PORT_TYPE +out_data[49] <= mem[0][49].DB_MAX_OUTPUT_PORT_TYPE +out_data[50] <= mem[0][50].DB_MAX_OUTPUT_PORT_TYPE +out_data[51] <= mem[0][51].DB_MAX_OUTPUT_PORT_TYPE +out_data[52] <= mem[0][52].DB_MAX_OUTPUT_PORT_TYPE +out_data[53] <= mem[0][53].DB_MAX_OUTPUT_PORT_TYPE +out_data[54] <= mem[0][54].DB_MAX_OUTPUT_PORT_TYPE +out_data[55] <= mem[0][55].DB_MAX_OUTPUT_PORT_TYPE +out_data[56] <= mem[0][56].DB_MAX_OUTPUT_PORT_TYPE +out_data[57] <= mem[0][57].DB_MAX_OUTPUT_PORT_TYPE +out_data[58] <= mem[0][58].DB_MAX_OUTPUT_PORT_TYPE +out_data[59] <= mem[0][59].DB_MAX_OUTPUT_PORT_TYPE +out_data[60] <= mem[0][60].DB_MAX_OUTPUT_PORT_TYPE +out_data[61] <= mem[0][61].DB_MAX_OUTPUT_PORT_TYPE +out_data[62] <= mem[0][62].DB_MAX_OUTPUT_PORT_TYPE +out_data[63] <= mem[0][63].DB_MAX_OUTPUT_PORT_TYPE +out_data[64] <= mem[0][64].DB_MAX_OUTPUT_PORT_TYPE +out_data[65] <= mem[0][65].DB_MAX_OUTPUT_PORT_TYPE +out_data[66] <= mem[0][66].DB_MAX_OUTPUT_PORT_TYPE +out_data[67] <= mem[0][67].DB_MAX_OUTPUT_PORT_TYPE +out_data[68] <= mem[0][68].DB_MAX_OUTPUT_PORT_TYPE +out_data[69] <= mem[0][69].DB_MAX_OUTPUT_PORT_TYPE +out_data[70] <= mem[0][70].DB_MAX_OUTPUT_PORT_TYPE +out_data[71] <= mem[0][71].DB_MAX_OUTPUT_PORT_TYPE +out_data[72] <= mem[0][72].DB_MAX_OUTPUT_PORT_TYPE +out_data[73] <= mem[0][73].DB_MAX_OUTPUT_PORT_TYPE +out_data[74] <= mem[0][74].DB_MAX_OUTPUT_PORT_TYPE +out_data[75] <= mem[0][75].DB_MAX_OUTPUT_PORT_TYPE +out_data[76] <= mem[0][76].DB_MAX_OUTPUT_PORT_TYPE +out_data[77] <= mem[0][77].DB_MAX_OUTPUT_PORT_TYPE +out_data[78] <= mem[0][78].DB_MAX_OUTPUT_PORT_TYPE +out_data[79] <= mem[0][79].DB_MAX_OUTPUT_PORT_TYPE +out_data[80] <= mem[0][80].DB_MAX_OUTPUT_PORT_TYPE +out_data[81] <= mem[0][81].DB_MAX_OUTPUT_PORT_TYPE +out_data[82] <= mem[0][82].DB_MAX_OUTPUT_PORT_TYPE +out_data[83] <= mem[0][83].DB_MAX_OUTPUT_PORT_TYPE +out_data[84] <= mem[0][84].DB_MAX_OUTPUT_PORT_TYPE +out_data[85] <= mem[0][85].DB_MAX_OUTPUT_PORT_TYPE +out_data[86] <= mem[0][86].DB_MAX_OUTPUT_PORT_TYPE +out_data[87] <= mem[0][87].DB_MAX_OUTPUT_PORT_TYPE +out_data[88] <= mem[0][88].DB_MAX_OUTPUT_PORT_TYPE +out_data[89] <= mem[0][89].DB_MAX_OUTPUT_PORT_TYPE +out_data[90] <= mem[0][90].DB_MAX_OUTPUT_PORT_TYPE +out_data[91] <= mem[0][91].DB_MAX_OUTPUT_PORT_TYPE +out_data[92] <= mem[0][92].DB_MAX_OUTPUT_PORT_TYPE +out_data[93] <= mem[0][93].DB_MAX_OUTPUT_PORT_TYPE +out_data[94] <= mem[0][94].DB_MAX_OUTPUT_PORT_TYPE +out_data[95] <= mem[0][95].DB_MAX_OUTPUT_PORT_TYPE +out_data[96] <= mem[0][96].DB_MAX_OUTPUT_PORT_TYPE +out_valid <= mem_used[0].DB_MAX_OUTPUT_PORT_TYPE +out_startofpacket <= mem[0][98].DB_MAX_OUTPUT_PORT_TYPE +out_endofpacket <= mem[0][97].DB_MAX_OUTPUT_PORT_TYPE +out_empty[0] <= in_error[0].DB_MAX_OUTPUT_PORT_TYPE +out_error[0] <= in_error[0].DB_MAX_OUTPUT_PORT_TYPE +out_channel[0] <= in_channel[0].DB_MAX_OUTPUT_PORT_TYPE +out_ready => internal_out_ready.IN1 +csr_address[0] => ~NO_FANOUT~ +csr_address[1] => ~NO_FANOUT~ +csr_write => ~NO_FANOUT~ +csr_read => csr_readdata[31]~reg0.ENA +csr_read => csr_readdata[30]~reg0.ENA +csr_read => csr_readdata[29]~reg0.ENA +csr_read => csr_readdata[28]~reg0.ENA +csr_read => csr_readdata[27]~reg0.ENA +csr_read => csr_readdata[26]~reg0.ENA +csr_read => csr_readdata[25]~reg0.ENA +csr_read => csr_readdata[24]~reg0.ENA +csr_read => csr_readdata[23]~reg0.ENA +csr_read => csr_readdata[22]~reg0.ENA +csr_read => csr_readdata[21]~reg0.ENA +csr_read => csr_readdata[20]~reg0.ENA +csr_read => csr_readdata[19]~reg0.ENA +csr_read => csr_readdata[18]~reg0.ENA +csr_read => csr_readdata[17]~reg0.ENA +csr_read => csr_readdata[16]~reg0.ENA +csr_read => csr_readdata[15]~reg0.ENA +csr_read => csr_readdata[14]~reg0.ENA +csr_read => csr_readdata[13]~reg0.ENA +csr_read => csr_readdata[12]~reg0.ENA +csr_read => csr_readdata[11]~reg0.ENA +csr_read => csr_readdata[10]~reg0.ENA +csr_read => csr_readdata[9]~reg0.ENA +csr_read => csr_readdata[8]~reg0.ENA +csr_read => csr_readdata[7]~reg0.ENA +csr_read => csr_readdata[6]~reg0.ENA +csr_read => csr_readdata[5]~reg0.ENA +csr_read => csr_readdata[4]~reg0.ENA +csr_read => csr_readdata[3]~reg0.ENA +csr_read => csr_readdata[2]~reg0.ENA +csr_read => csr_readdata[1]~reg0.ENA +csr_read => csr_readdata[0]~reg0.ENA +csr_writedata[0] => ~NO_FANOUT~ +csr_writedata[1] => ~NO_FANOUT~ +csr_writedata[2] => ~NO_FANOUT~ +csr_writedata[3] => ~NO_FANOUT~ +csr_writedata[4] => ~NO_FANOUT~ +csr_writedata[5] => ~NO_FANOUT~ +csr_writedata[6] => ~NO_FANOUT~ +csr_writedata[7] => ~NO_FANOUT~ +csr_writedata[8] => ~NO_FANOUT~ +csr_writedata[9] => ~NO_FANOUT~ +csr_writedata[10] => ~NO_FANOUT~ +csr_writedata[11] => ~NO_FANOUT~ +csr_writedata[12] => ~NO_FANOUT~ +csr_writedata[13] => ~NO_FANOUT~ +csr_writedata[14] => ~NO_FANOUT~ +csr_writedata[15] => ~NO_FANOUT~ +csr_writedata[16] => ~NO_FANOUT~ +csr_writedata[17] => ~NO_FANOUT~ +csr_writedata[18] => ~NO_FANOUT~ +csr_writedata[19] => ~NO_FANOUT~ +csr_writedata[20] => ~NO_FANOUT~ +csr_writedata[21] => ~NO_FANOUT~ +csr_writedata[22] => ~NO_FANOUT~ +csr_writedata[23] => ~NO_FANOUT~ +csr_writedata[24] => ~NO_FANOUT~ +csr_writedata[25] => ~NO_FANOUT~ +csr_writedata[26] => ~NO_FANOUT~ +csr_writedata[27] => ~NO_FANOUT~ +csr_writedata[28] => ~NO_FANOUT~ +csr_writedata[29] => ~NO_FANOUT~ +csr_writedata[30] => ~NO_FANOUT~ +csr_writedata[31] => ~NO_FANOUT~ +csr_readdata[0] <= csr_readdata[0]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[1] <= csr_readdata[1]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[2] <= csr_readdata[2]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[3] <= csr_readdata[3]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[4] <= csr_readdata[4]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[5] <= csr_readdata[5]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[6] <= csr_readdata[6]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[7] <= csr_readdata[7]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[8] <= csr_readdata[8]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[9] <= csr_readdata[9]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[10] <= csr_readdata[10]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[11] <= csr_readdata[11]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[12] <= csr_readdata[12]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[13] <= csr_readdata[13]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[14] <= csr_readdata[14]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[15] <= csr_readdata[15]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[16] <= csr_readdata[16]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[17] <= csr_readdata[17]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[18] <= csr_readdata[18]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[19] <= csr_readdata[19]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[20] <= csr_readdata[20]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[21] <= csr_readdata[21]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[22] <= csr_readdata[22]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[23] <= csr_readdata[23]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[24] <= csr_readdata[24]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[25] <= csr_readdata[25]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[26] <= csr_readdata[26]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[27] <= csr_readdata[27]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[28] <= csr_readdata[28]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[29] <= csr_readdata[29]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[30] <= csr_readdata[30]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[31] <= csr_readdata[31]~reg0.DB_MAX_OUTPUT_PORT_TYPE +almost_full_data <= +almost_empty_data <= + + +|lights|nios_system:NiosII|altera_merlin_slave_agent:switches_s1_translator_avalon_universal_slave_0_agent +clk => clk.IN1 +reset => reset.IN1 +m0_address[0] <= +m0_address[1] <= +m0_address[2] <= cp_data[38].DB_MAX_OUTPUT_PORT_TYPE +m0_address[3] <= cp_data[39].DB_MAX_OUTPUT_PORT_TYPE +m0_address[4] <= cp_data[40].DB_MAX_OUTPUT_PORT_TYPE +m0_address[5] <= cp_data[41].DB_MAX_OUTPUT_PORT_TYPE +m0_address[6] <= cp_data[42].DB_MAX_OUTPUT_PORT_TYPE +m0_address[7] <= cp_data[43].DB_MAX_OUTPUT_PORT_TYPE +m0_address[8] <= cp_data[44].DB_MAX_OUTPUT_PORT_TYPE +m0_address[9] <= cp_data[45].DB_MAX_OUTPUT_PORT_TYPE +m0_address[10] <= cp_data[46].DB_MAX_OUTPUT_PORT_TYPE +m0_address[11] <= cp_data[47].DB_MAX_OUTPUT_PORT_TYPE +m0_address[12] <= cp_data[48].DB_MAX_OUTPUT_PORT_TYPE +m0_address[13] <= cp_data[49].DB_MAX_OUTPUT_PORT_TYPE +m0_address[14] <= cp_data[50].DB_MAX_OUTPUT_PORT_TYPE +m0_address[15] <= cp_data[51].DB_MAX_OUTPUT_PORT_TYPE +m0_address[16] <= cp_data[52].DB_MAX_OUTPUT_PORT_TYPE +m0_address[17] <= cp_data[53].DB_MAX_OUTPUT_PORT_TYPE +m0_address[18] <= cp_data[54].DB_MAX_OUTPUT_PORT_TYPE +m0_burstcount[0] <= m0_burstcount.DB_MAX_OUTPUT_PORT_TYPE +m0_burstcount[1] <= m0_burstcount.DB_MAX_OUTPUT_PORT_TYPE +m0_burstcount[2] <= m0_burstcount.DB_MAX_OUTPUT_PORT_TYPE +m0_byteenable[0] <= cp_data[32].DB_MAX_OUTPUT_PORT_TYPE +m0_byteenable[1] <= cp_data[33].DB_MAX_OUTPUT_PORT_TYPE +m0_byteenable[2] <= cp_data[34].DB_MAX_OUTPUT_PORT_TYPE +m0_byteenable[3] <= cp_data[35].DB_MAX_OUTPUT_PORT_TYPE +m0_read <= m0_read.DB_MAX_OUTPUT_PORT_TYPE +m0_readdata[0] => rdata_fifo_src_data[0].DATAIN +m0_readdata[1] => rdata_fifo_src_data[1].DATAIN +m0_readdata[2] => rdata_fifo_src_data[2].DATAIN +m0_readdata[3] => rdata_fifo_src_data[3].DATAIN +m0_readdata[4] => rdata_fifo_src_data[4].DATAIN +m0_readdata[5] => rdata_fifo_src_data[5].DATAIN +m0_readdata[6] => rdata_fifo_src_data[6].DATAIN +m0_readdata[7] => rdata_fifo_src_data[7].DATAIN +m0_readdata[8] => rdata_fifo_src_data[8].DATAIN +m0_readdata[9] => rdata_fifo_src_data[9].DATAIN +m0_readdata[10] => rdata_fifo_src_data[10].DATAIN +m0_readdata[11] => rdata_fifo_src_data[11].DATAIN +m0_readdata[12] => rdata_fifo_src_data[12].DATAIN +m0_readdata[13] => rdata_fifo_src_data[13].DATAIN +m0_readdata[14] => rdata_fifo_src_data[14].DATAIN +m0_readdata[15] => rdata_fifo_src_data[15].DATAIN +m0_readdata[16] => rdata_fifo_src_data[16].DATAIN +m0_readdata[17] => rdata_fifo_src_data[17].DATAIN +m0_readdata[18] => rdata_fifo_src_data[18].DATAIN +m0_readdata[19] => rdata_fifo_src_data[19].DATAIN +m0_readdata[20] => rdata_fifo_src_data[20].DATAIN +m0_readdata[21] => rdata_fifo_src_data[21].DATAIN +m0_readdata[22] => rdata_fifo_src_data[22].DATAIN +m0_readdata[23] => rdata_fifo_src_data[23].DATAIN +m0_readdata[24] => rdata_fifo_src_data[24].DATAIN +m0_readdata[25] => rdata_fifo_src_data[25].DATAIN +m0_readdata[26] => rdata_fifo_src_data[26].DATAIN +m0_readdata[27] => rdata_fifo_src_data[27].DATAIN +m0_readdata[28] => rdata_fifo_src_data[28].DATAIN +m0_readdata[29] => rdata_fifo_src_data[29].DATAIN +m0_readdata[30] => rdata_fifo_src_data[30].DATAIN +m0_readdata[31] => rdata_fifo_src_data[31].DATAIN +m0_waitrequest => cp_ready.IN0 +m0_write <= m0_write.DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[0] <= cp_data[0].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[1] <= cp_data[1].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[2] <= cp_data[2].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[3] <= cp_data[3].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[4] <= cp_data[4].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[5] <= cp_data[5].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[6] <= cp_data[6].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[7] <= cp_data[7].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[8] <= cp_data[8].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[9] <= cp_data[9].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[10] <= cp_data[10].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[11] <= cp_data[11].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[12] <= cp_data[12].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[13] <= cp_data[13].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[14] <= cp_data[14].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[15] <= cp_data[15].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[16] <= cp_data[16].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[17] <= cp_data[17].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[18] <= cp_data[18].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[19] <= cp_data[19].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[20] <= cp_data[20].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[21] <= cp_data[21].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[22] <= cp_data[22].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[23] <= cp_data[23].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[24] <= cp_data[24].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[25] <= cp_data[25].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[26] <= cp_data[26].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[27] <= cp_data[27].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[28] <= cp_data[28].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[29] <= cp_data[29].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[30] <= cp_data[30].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[31] <= cp_data[31].DB_MAX_OUTPUT_PORT_TYPE +m0_readdatavalid => rdata_fifo_src_valid.IN0 +m0_debugaccess <= cp_data[87].DB_MAX_OUTPUT_PORT_TYPE +m0_lock <= m0_lock.DB_MAX_OUTPUT_PORT_TYPE +m0_response[0] => rdata_fifo_src_data[32].DATAIN +m0_response[1] => rdata_fifo_src_data[33].DATAIN +m0_writeresponserequest <= m0_writeresponserequest.DB_MAX_OUTPUT_PORT_TYPE +m0_writeresponsevalid => rdata_fifo_src_valid.IN1 +rf_source_data[0] <= +rf_source_data[1] <= +rf_source_data[2] <= +rf_source_data[3] <= +rf_source_data[4] <= +rf_source_data[5] <= +rf_source_data[6] <= +rf_source_data[7] <= +rf_source_data[8] <= +rf_source_data[9] <= +rf_source_data[10] <= +rf_source_data[11] <= +rf_source_data[12] <= +rf_source_data[13] <= +rf_source_data[14] <= +rf_source_data[15] <= +rf_source_data[16] <= +rf_source_data[17] <= +rf_source_data[18] <= +rf_source_data[19] <= +rf_source_data[20] <= +rf_source_data[21] <= +rf_source_data[22] <= +rf_source_data[23] <= +rf_source_data[24] <= +rf_source_data[25] <= +rf_source_data[26] <= +rf_source_data[27] <= +rf_source_data[28] <= +rf_source_data[29] <= +rf_source_data[30] <= +rf_source_data[31] <= +rf_source_data[32] <= cp_data[32].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[33] <= cp_data[33].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[34] <= cp_data[34].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[35] <= cp_data[35].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[36] <= cp_data[36].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[37] <= cp_data[37].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[38] <= cp_data[38].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[39] <= cp_data[39].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[40] <= cp_data[40].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[41] <= cp_data[41].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[42] <= cp_data[42].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[43] <= cp_data[43].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[44] <= cp_data[44].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[45] <= cp_data[45].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[46] <= cp_data[46].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[47] <= cp_data[47].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[48] <= cp_data[48].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[49] <= cp_data[49].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[50] <= cp_data[50].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[51] <= cp_data[51].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[52] <= cp_data[52].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[53] <= cp_data[53].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[54] <= cp_data[54].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[55] <= cp_data[55].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[56] <= cp_data[56].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[57] <= cp_data[57].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[58] <= cp_data[58].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[59] <= cp_data[59].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[60] <= cp_data[60].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[61] <= cp_data[61].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[62] <= cp_data[62].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[63] <= cp_data[63].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[64] <= cp_data[64].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[65] <= cp_data[65].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[66] <= cp_data[66].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[67] <= cp_data[67].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[68] <= cp_data[68].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[69] <= cp_data[69].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[70] <= cp_data[70].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[71] <= cp_data[71].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[72] <= cp_data[72].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[73] <= cp_data[73].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[74] <= cp_data[74].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[75] <= cp_data[75].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[76] <= cp_data[76].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[77] <= cp_data[77].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[78] <= cp_data[78].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[79] <= cp_data[79].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[80] <= cp_data[80].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[81] <= cp_data[81].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[82] <= cp_data[82].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[83] <= cp_data[83].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[84] <= cp_data[84].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[85] <= cp_data[85].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[86] <= cp_data[86].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[87] <= cp_data[87].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[88] <= +rf_source_data[89] <= +rf_source_data[90] <= cp_data[90].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[91] <= cp_data[91].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[92] <= cp_data[92].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[93] <= cp_data[93].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[94] <= cp_data[94].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[95] <= cp_data[95].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[96] <= nonposted_write_endofpacket.DB_MAX_OUTPUT_PORT_TYPE +rf_source_valid <= rf_source_valid.DB_MAX_OUTPUT_PORT_TYPE +rf_source_startofpacket <= cp_startofpacket.DB_MAX_OUTPUT_PORT_TYPE +rf_source_endofpacket <= cp_endofpacket.DB_MAX_OUTPUT_PORT_TYPE +rf_source_ready => cp_ready.IN1 +rf_source_ready => m0_write.IN1 +rf_source_ready => m0_lock.IN1 +rf_source_ready => rf_source_valid.IN1 +rf_source_ready => m0_read.IN1 +rf_sink_data[0] => ~NO_FANOUT~ +rf_sink_data[1] => ~NO_FANOUT~ +rf_sink_data[2] => ~NO_FANOUT~ +rf_sink_data[3] => ~NO_FANOUT~ +rf_sink_data[4] => ~NO_FANOUT~ +rf_sink_data[5] => ~NO_FANOUT~ +rf_sink_data[6] => ~NO_FANOUT~ +rf_sink_data[7] => ~NO_FANOUT~ +rf_sink_data[8] => ~NO_FANOUT~ +rf_sink_data[9] => ~NO_FANOUT~ +rf_sink_data[10] => ~NO_FANOUT~ +rf_sink_data[11] => ~NO_FANOUT~ +rf_sink_data[12] => ~NO_FANOUT~ +rf_sink_data[13] => ~NO_FANOUT~ +rf_sink_data[14] => ~NO_FANOUT~ +rf_sink_data[15] => ~NO_FANOUT~ +rf_sink_data[16] => ~NO_FANOUT~ +rf_sink_data[17] => ~NO_FANOUT~ +rf_sink_data[18] => ~NO_FANOUT~ +rf_sink_data[19] => ~NO_FANOUT~ +rf_sink_data[20] => ~NO_FANOUT~ +rf_sink_data[21] => ~NO_FANOUT~ +rf_sink_data[22] => ~NO_FANOUT~ +rf_sink_data[23] => ~NO_FANOUT~ +rf_sink_data[24] => ~NO_FANOUT~ +rf_sink_data[25] => ~NO_FANOUT~ +rf_sink_data[26] => ~NO_FANOUT~ +rf_sink_data[27] => ~NO_FANOUT~ +rf_sink_data[28] => ~NO_FANOUT~ +rf_sink_data[29] => ~NO_FANOUT~ +rf_sink_data[30] => ~NO_FANOUT~ +rf_sink_data[31] => ~NO_FANOUT~ +rf_sink_data[32] => rp_data[32].DATAIN +rf_sink_data[33] => rp_data[33].DATAIN +rf_sink_data[34] => rp_data[34].DATAIN +rf_sink_data[35] => rp_data[35].DATAIN +rf_sink_data[36] => rf_sink_addr[0].IN1 +rf_sink_data[37] => rf_sink_addr[1].IN1 +rf_sink_data[38] => rf_sink_addr[2].IN1 +rf_sink_data[39] => rf_sink_addr[3].IN1 +rf_sink_data[40] => rf_sink_addr[4].IN1 +rf_sink_data[41] => rf_sink_addr[5].IN1 +rf_sink_data[42] => rf_sink_addr[6].IN1 +rf_sink_data[43] => rf_sink_addr[7].IN1 +rf_sink_data[44] => rf_sink_addr[8].IN1 +rf_sink_data[45] => rf_sink_addr[9].IN1 +rf_sink_data[46] => rf_sink_addr[10].IN1 +rf_sink_data[47] => rf_sink_addr[11].IN1 +rf_sink_data[48] => rf_sink_addr[12].IN1 +rf_sink_data[49] => rf_sink_addr[13].IN1 +rf_sink_data[50] => rf_sink_addr[14].IN1 +rf_sink_data[51] => rf_sink_addr[15].IN1 +rf_sink_data[52] => rf_sink_addr[16].IN1 +rf_sink_data[53] => rf_sink_addr[17].IN1 +rf_sink_data[54] => rf_sink_addr[18].IN1 +rf_sink_data[55] => rf_sink_compressed.IN1 +rf_sink_data[56] => rp_data[56].DATAIN +rf_sink_data[57] => comb.OUTPUTSELECT +rf_sink_data[57] => rp_data[57].DATAIN +rf_sink_data[58] => rp_data.IN0 +rf_sink_data[59] => rp_data[59].DATAIN +rf_sink_data[60] => rp_data[60].DATAIN +rf_sink_data[61] => rf_sink_byte_cnt[0].IN1 +rf_sink_data[62] => rf_sink_byte_cnt[1].IN1 +rf_sink_data[63] => rf_sink_byte_cnt[2].IN1 +rf_sink_data[64] => rf_sink_burstwrap[0].IN1 +rf_sink_data[65] => rf_sink_burstwrap[1].IN1 +rf_sink_data[66] => rf_sink_burstwrap[2].IN1 +rf_sink_data[67] => rf_sink_burstsize[0].IN1 +rf_sink_data[68] => rf_sink_burstsize[1].IN1 +rf_sink_data[69] => rf_sink_burstsize[2].IN1 +rf_sink_data[70] => rp_data[70].DATAIN +rf_sink_data[71] => rp_data[71].DATAIN +rf_sink_data[72] => rp_data[72].DATAIN +rf_sink_data[73] => rp_data[73].DATAIN +rf_sink_data[74] => rp_data[74].DATAIN +rf_sink_data[75] => rp_data[75].DATAIN +rf_sink_data[76] => rp_data[81].DATAIN +rf_sink_data[77] => rp_data[82].DATAIN +rf_sink_data[78] => rp_data[83].DATAIN +rf_sink_data[79] => rp_data[84].DATAIN +rf_sink_data[80] => rp_data[85].DATAIN +rf_sink_data[81] => rp_data[76].DATAIN +rf_sink_data[82] => rp_data[77].DATAIN +rf_sink_data[83] => rp_data[78].DATAIN +rf_sink_data[84] => rp_data[79].DATAIN +rf_sink_data[85] => rp_data[80].DATAIN +rf_sink_data[86] => rp_data[86].DATAIN +rf_sink_data[87] => rp_data[87].DATAIN +rf_sink_data[88] => rp_data[88].DATAIN +rf_sink_data[89] => rp_data[89].DATAIN +rf_sink_data[90] => rp_data[90].DATAIN +rf_sink_data[91] => rp_data[91].DATAIN +rf_sink_data[92] => rp_data[92].DATAIN +rf_sink_data[93] => rp_data[93].DATAIN +rf_sink_data[94] => ~NO_FANOUT~ +rf_sink_data[95] => ~NO_FANOUT~ +rf_sink_data[96] => rdata_fifo_sink_ready.IN0 +rf_sink_data[96] => comb.IN0 +rf_sink_valid => rdata_fifo_sink_ready.IN1 +rf_sink_valid => comb.IN1 +rf_sink_startofpacket => comb.DATAA +rf_sink_endofpacket => rf_sink_endofpacket.IN1 +rf_sink_ready <= altera_merlin_burst_uncompressor:uncompressor.sink_ready +rdata_fifo_src_data[0] <= m0_readdata[0].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[1] <= m0_readdata[1].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[2] <= m0_readdata[2].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[3] <= m0_readdata[3].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[4] <= m0_readdata[4].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[5] <= m0_readdata[5].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[6] <= m0_readdata[6].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[7] <= m0_readdata[7].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[8] <= m0_readdata[8].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[9] <= m0_readdata[9].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[10] <= m0_readdata[10].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[11] <= m0_readdata[11].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[12] <= m0_readdata[12].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[13] <= m0_readdata[13].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[14] <= m0_readdata[14].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[15] <= m0_readdata[15].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[16] <= m0_readdata[16].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[17] <= m0_readdata[17].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[18] <= m0_readdata[18].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[19] <= m0_readdata[19].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[20] <= m0_readdata[20].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[21] <= m0_readdata[21].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[22] <= m0_readdata[22].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[23] <= m0_readdata[23].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[24] <= m0_readdata[24].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[25] <= m0_readdata[25].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[26] <= m0_readdata[26].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[27] <= m0_readdata[27].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[28] <= m0_readdata[28].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[29] <= m0_readdata[29].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[30] <= m0_readdata[30].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[31] <= m0_readdata[31].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[32] <= m0_response[0].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[33] <= m0_response[1].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_valid <= rdata_fifo_src_valid.DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_ready => ~NO_FANOUT~ +rdata_fifo_sink_data[0] => rp_data[0].DATAIN +rdata_fifo_sink_data[1] => rp_data[1].DATAIN +rdata_fifo_sink_data[2] => rp_data[2].DATAIN +rdata_fifo_sink_data[3] => rp_data[3].DATAIN +rdata_fifo_sink_data[4] => rp_data[4].DATAIN +rdata_fifo_sink_data[5] => rp_data[5].DATAIN +rdata_fifo_sink_data[6] => rp_data[6].DATAIN +rdata_fifo_sink_data[7] => rp_data[7].DATAIN +rdata_fifo_sink_data[8] => rp_data[8].DATAIN +rdata_fifo_sink_data[9] => rp_data[9].DATAIN +rdata_fifo_sink_data[10] => rp_data[10].DATAIN +rdata_fifo_sink_data[11] => rp_data[11].DATAIN +rdata_fifo_sink_data[12] => rp_data[12].DATAIN +rdata_fifo_sink_data[13] => rp_data[13].DATAIN +rdata_fifo_sink_data[14] => rp_data[14].DATAIN +rdata_fifo_sink_data[15] => rp_data[15].DATAIN +rdata_fifo_sink_data[16] => rp_data[16].DATAIN +rdata_fifo_sink_data[17] => rp_data[17].DATAIN +rdata_fifo_sink_data[18] => rp_data[18].DATAIN +rdata_fifo_sink_data[19] => rp_data[19].DATAIN +rdata_fifo_sink_data[20] => rp_data[20].DATAIN +rdata_fifo_sink_data[21] => rp_data[21].DATAIN +rdata_fifo_sink_data[22] => rp_data[22].DATAIN +rdata_fifo_sink_data[23] => rp_data[23].DATAIN +rdata_fifo_sink_data[24] => rp_data[24].DATAIN +rdata_fifo_sink_data[25] => rp_data[25].DATAIN +rdata_fifo_sink_data[26] => rp_data[26].DATAIN +rdata_fifo_sink_data[27] => rp_data[27].DATAIN +rdata_fifo_sink_data[28] => rp_data[28].DATAIN +rdata_fifo_sink_data[29] => rp_data[29].DATAIN +rdata_fifo_sink_data[30] => rp_data[30].DATAIN +rdata_fifo_sink_data[31] => rp_data[31].DATAIN +rdata_fifo_sink_data[32] => rp_data[94].DATAIN +rdata_fifo_sink_data[33] => rp_data[95].DATAIN +rdata_fifo_sink_valid => rp_valid.IN1 +rdata_fifo_sink_valid => rdata_fifo_sink_ready.IN0 +rdata_fifo_sink_valid => comb.IN1 +rdata_fifo_sink_ready <= rdata_fifo_sink_ready.DB_MAX_OUTPUT_PORT_TYPE +cp_ready <= cp_ready.DB_MAX_OUTPUT_PORT_TYPE +cp_valid => local_lock.IN0 +cp_valid => local_write.IN0 +cp_valid => local_read.IN0 +cp_valid => local_compressed_read.IN0 +cp_data[0] => m0_writedata[0].DATAIN +cp_data[1] => m0_writedata[1].DATAIN +cp_data[2] => m0_writedata[2].DATAIN +cp_data[3] => m0_writedata[3].DATAIN +cp_data[4] => m0_writedata[4].DATAIN +cp_data[5] => m0_writedata[5].DATAIN +cp_data[6] => m0_writedata[6].DATAIN +cp_data[7] => m0_writedata[7].DATAIN +cp_data[8] => m0_writedata[8].DATAIN +cp_data[9] => m0_writedata[9].DATAIN +cp_data[10] => m0_writedata[10].DATAIN +cp_data[11] => m0_writedata[11].DATAIN +cp_data[12] => m0_writedata[12].DATAIN +cp_data[13] => m0_writedata[13].DATAIN +cp_data[14] => m0_writedata[14].DATAIN +cp_data[15] => m0_writedata[15].DATAIN +cp_data[16] => m0_writedata[16].DATAIN +cp_data[17] => m0_writedata[17].DATAIN +cp_data[18] => m0_writedata[18].DATAIN +cp_data[19] => m0_writedata[19].DATAIN +cp_data[20] => m0_writedata[20].DATAIN +cp_data[21] => m0_writedata[21].DATAIN +cp_data[22] => m0_writedata[22].DATAIN +cp_data[23] => m0_writedata[23].DATAIN +cp_data[24] => m0_writedata[24].DATAIN +cp_data[25] => m0_writedata[25].DATAIN +cp_data[26] => m0_writedata[26].DATAIN +cp_data[27] => m0_writedata[27].DATAIN +cp_data[28] => m0_writedata[28].DATAIN +cp_data[29] => m0_writedata[29].DATAIN +cp_data[30] => m0_writedata[30].DATAIN +cp_data[31] => m0_writedata[31].DATAIN +cp_data[32] => rf_source_data[32].DATAIN +cp_data[32] => m0_byteenable[0].DATAIN +cp_data[33] => rf_source_data[33].DATAIN +cp_data[33] => m0_byteenable[1].DATAIN +cp_data[34] => rf_source_data[34].DATAIN +cp_data[34] => m0_byteenable[2].DATAIN +cp_data[35] => rf_source_data[35].DATAIN +cp_data[35] => m0_byteenable[3].DATAIN +cp_data[36] => rf_source_data[36].DATAIN +cp_data[37] => rf_source_data[37].DATAIN +cp_data[38] => rf_source_data[38].DATAIN +cp_data[38] => m0_address[2].DATAIN +cp_data[39] => rf_source_data[39].DATAIN +cp_data[39] => m0_address[3].DATAIN +cp_data[40] => rf_source_data[40].DATAIN +cp_data[40] => m0_address[4].DATAIN +cp_data[41] => rf_source_data[41].DATAIN +cp_data[41] => m0_address[5].DATAIN +cp_data[42] => rf_source_data[42].DATAIN +cp_data[42] => m0_address[6].DATAIN +cp_data[43] => rf_source_data[43].DATAIN +cp_data[43] => m0_address[7].DATAIN +cp_data[44] => rf_source_data[44].DATAIN +cp_data[44] => m0_address[8].DATAIN +cp_data[45] => rf_source_data[45].DATAIN +cp_data[45] => m0_address[9].DATAIN +cp_data[46] => rf_source_data[46].DATAIN +cp_data[46] => m0_address[10].DATAIN +cp_data[47] => rf_source_data[47].DATAIN +cp_data[47] => m0_address[11].DATAIN +cp_data[48] => rf_source_data[48].DATAIN +cp_data[48] => m0_address[12].DATAIN +cp_data[49] => rf_source_data[49].DATAIN +cp_data[49] => m0_address[13].DATAIN +cp_data[50] => rf_source_data[50].DATAIN +cp_data[50] => m0_address[14].DATAIN +cp_data[51] => rf_source_data[51].DATAIN +cp_data[51] => m0_address[15].DATAIN +cp_data[52] => rf_source_data[52].DATAIN +cp_data[52] => m0_address[16].DATAIN +cp_data[53] => rf_source_data[53].DATAIN +cp_data[53] => m0_address[17].DATAIN +cp_data[54] => rf_source_data[54].DATAIN +cp_data[54] => m0_address[18].DATAIN +cp_data[55] => local_compressed_read.IN1 +cp_data[55] => rf_source_data[55].DATAIN +cp_data[56] => rf_source_data[56].DATAIN +cp_data[56] => m0_writeresponserequest.IN1 +cp_data[56] => comb.IN1 +cp_data[57] => local_write.IN1 +cp_data[57] => rf_source_data[57].DATAIN +cp_data[58] => local_read.IN1 +cp_data[58] => rf_source_data[58].DATAIN +cp_data[59] => local_lock.IN1 +cp_data[59] => rf_source_data[59].DATAIN +cp_data[60] => rf_source_data[60].DATAIN +cp_data[61] => m0_burstcount.DATAA +cp_data[61] => rf_source_data[61].DATAIN +cp_data[62] => m0_burstcount.DATAA +cp_data[62] => rf_source_data[62].DATAIN +cp_data[63] => m0_burstcount.DATAA +cp_data[63] => rf_source_data[63].DATAIN +cp_data[64] => rf_source_data[64].DATAIN +cp_data[65] => rf_source_data[65].DATAIN +cp_data[66] => rf_source_data[66].DATAIN +cp_data[67] => rf_source_data[67].DATAIN +cp_data[68] => rf_source_data[68].DATAIN +cp_data[69] => rf_source_data[69].DATAIN +cp_data[70] => rf_source_data[70].DATAIN +cp_data[71] => rf_source_data[71].DATAIN +cp_data[72] => rf_source_data[72].DATAIN +cp_data[73] => rf_source_data[73].DATAIN +cp_data[74] => rf_source_data[74].DATAIN +cp_data[75] => rf_source_data[75].DATAIN +cp_data[76] => rf_source_data[76].DATAIN +cp_data[77] => rf_source_data[77].DATAIN +cp_data[78] => rf_source_data[78].DATAIN +cp_data[79] => rf_source_data[79].DATAIN +cp_data[80] => rf_source_data[80].DATAIN +cp_data[81] => rf_source_data[81].DATAIN +cp_data[82] => rf_source_data[82].DATAIN +cp_data[83] => rf_source_data[83].DATAIN +cp_data[84] => rf_source_data[84].DATAIN +cp_data[85] => rf_source_data[85].DATAIN +cp_data[86] => rf_source_data[86].DATAIN +cp_data[87] => rf_source_data[87].DATAIN +cp_data[87] => m0_debugaccess.DATAIN +cp_data[88] => ~NO_FANOUT~ +cp_data[89] => ~NO_FANOUT~ +cp_data[90] => rf_source_data[90].DATAIN +cp_data[91] => rf_source_data[91].DATAIN +cp_data[92] => rf_source_data[92].DATAIN +cp_data[93] => rf_source_data[93].DATAIN +cp_data[94] => rf_source_data[94].DATAIN +cp_data[95] => rf_source_data[95].DATAIN +cp_channel[0] => ~NO_FANOUT~ +cp_channel[1] => ~NO_FANOUT~ +cp_channel[2] => ~NO_FANOUT~ +cp_channel[3] => ~NO_FANOUT~ +cp_channel[4] => ~NO_FANOUT~ +cp_channel[5] => ~NO_FANOUT~ +cp_channel[6] => ~NO_FANOUT~ +cp_channel[7] => ~NO_FANOUT~ +cp_channel[8] => ~NO_FANOUT~ +cp_channel[9] => ~NO_FANOUT~ +cp_channel[10] => ~NO_FANOUT~ +cp_channel[11] => ~NO_FANOUT~ +cp_channel[12] => ~NO_FANOUT~ +cp_channel[13] => ~NO_FANOUT~ +cp_channel[14] => ~NO_FANOUT~ +cp_channel[15] => ~NO_FANOUT~ +cp_channel[16] => ~NO_FANOUT~ +cp_channel[17] => ~NO_FANOUT~ +cp_startofpacket => rf_source_startofpacket.DATAIN +cp_endofpacket => nonposted_write_endofpacket.IN1 +cp_endofpacket => rf_source_endofpacket.DATAIN +rp_ready => rp_ready.IN1 +rp_valid <= rp_valid.DB_MAX_OUTPUT_PORT_TYPE +rp_data[0] <= rdata_fifo_sink_data[0].DB_MAX_OUTPUT_PORT_TYPE +rp_data[1] <= rdata_fifo_sink_data[1].DB_MAX_OUTPUT_PORT_TYPE +rp_data[2] <= rdata_fifo_sink_data[2].DB_MAX_OUTPUT_PORT_TYPE +rp_data[3] <= rdata_fifo_sink_data[3].DB_MAX_OUTPUT_PORT_TYPE +rp_data[4] <= rdata_fifo_sink_data[4].DB_MAX_OUTPUT_PORT_TYPE +rp_data[5] <= rdata_fifo_sink_data[5].DB_MAX_OUTPUT_PORT_TYPE +rp_data[6] <= rdata_fifo_sink_data[6].DB_MAX_OUTPUT_PORT_TYPE +rp_data[7] <= rdata_fifo_sink_data[7].DB_MAX_OUTPUT_PORT_TYPE +rp_data[8] <= rdata_fifo_sink_data[8].DB_MAX_OUTPUT_PORT_TYPE +rp_data[9] <= rdata_fifo_sink_data[9].DB_MAX_OUTPUT_PORT_TYPE +rp_data[10] <= rdata_fifo_sink_data[10].DB_MAX_OUTPUT_PORT_TYPE +rp_data[11] <= rdata_fifo_sink_data[11].DB_MAX_OUTPUT_PORT_TYPE +rp_data[12] <= rdata_fifo_sink_data[12].DB_MAX_OUTPUT_PORT_TYPE +rp_data[13] <= rdata_fifo_sink_data[13].DB_MAX_OUTPUT_PORT_TYPE +rp_data[14] <= rdata_fifo_sink_data[14].DB_MAX_OUTPUT_PORT_TYPE +rp_data[15] <= rdata_fifo_sink_data[15].DB_MAX_OUTPUT_PORT_TYPE +rp_data[16] <= rdata_fifo_sink_data[16].DB_MAX_OUTPUT_PORT_TYPE +rp_data[17] <= rdata_fifo_sink_data[17].DB_MAX_OUTPUT_PORT_TYPE +rp_data[18] <= rdata_fifo_sink_data[18].DB_MAX_OUTPUT_PORT_TYPE +rp_data[19] <= rdata_fifo_sink_data[19].DB_MAX_OUTPUT_PORT_TYPE +rp_data[20] <= rdata_fifo_sink_data[20].DB_MAX_OUTPUT_PORT_TYPE +rp_data[21] <= rdata_fifo_sink_data[21].DB_MAX_OUTPUT_PORT_TYPE +rp_data[22] <= rdata_fifo_sink_data[22].DB_MAX_OUTPUT_PORT_TYPE +rp_data[23] <= rdata_fifo_sink_data[23].DB_MAX_OUTPUT_PORT_TYPE +rp_data[24] <= rdata_fifo_sink_data[24].DB_MAX_OUTPUT_PORT_TYPE +rp_data[25] <= rdata_fifo_sink_data[25].DB_MAX_OUTPUT_PORT_TYPE +rp_data[26] <= rdata_fifo_sink_data[26].DB_MAX_OUTPUT_PORT_TYPE +rp_data[27] <= rdata_fifo_sink_data[27].DB_MAX_OUTPUT_PORT_TYPE +rp_data[28] <= rdata_fifo_sink_data[28].DB_MAX_OUTPUT_PORT_TYPE +rp_data[29] <= rdata_fifo_sink_data[29].DB_MAX_OUTPUT_PORT_TYPE +rp_data[30] <= rdata_fifo_sink_data[30].DB_MAX_OUTPUT_PORT_TYPE +rp_data[31] <= rdata_fifo_sink_data[31].DB_MAX_OUTPUT_PORT_TYPE +rp_data[32] <= rf_sink_data[32].DB_MAX_OUTPUT_PORT_TYPE +rp_data[33] <= rf_sink_data[33].DB_MAX_OUTPUT_PORT_TYPE +rp_data[34] <= rf_sink_data[34].DB_MAX_OUTPUT_PORT_TYPE +rp_data[35] <= rf_sink_data[35].DB_MAX_OUTPUT_PORT_TYPE +rp_data[36] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[37] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[38] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[39] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[40] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[41] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[42] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[43] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[44] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[45] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[46] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[47] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[48] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[49] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[50] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[51] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[52] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[53] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[54] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[55] <= altera_merlin_burst_uncompressor:uncompressor.source_is_compressed +rp_data[56] <= rf_sink_data[56].DB_MAX_OUTPUT_PORT_TYPE +rp_data[57] <= rf_sink_data[57].DB_MAX_OUTPUT_PORT_TYPE +rp_data[58] <= rp_data.DB_MAX_OUTPUT_PORT_TYPE +rp_data[59] <= rf_sink_data[59].DB_MAX_OUTPUT_PORT_TYPE +rp_data[60] <= rf_sink_data[60].DB_MAX_OUTPUT_PORT_TYPE +rp_data[61] <= altera_merlin_burst_uncompressor:uncompressor.source_byte_cnt +rp_data[62] <= altera_merlin_burst_uncompressor:uncompressor.source_byte_cnt +rp_data[63] <= altera_merlin_burst_uncompressor:uncompressor.source_byte_cnt +rp_data[64] <= altera_merlin_burst_uncompressor:uncompressor.source_burstwrap +rp_data[65] <= altera_merlin_burst_uncompressor:uncompressor.source_burstwrap +rp_data[66] <= altera_merlin_burst_uncompressor:uncompressor.source_burstwrap +rp_data[67] <= altera_merlin_burst_uncompressor:uncompressor.source_burstsize +rp_data[68] <= altera_merlin_burst_uncompressor:uncompressor.source_burstsize +rp_data[69] <= altera_merlin_burst_uncompressor:uncompressor.source_burstsize +rp_data[70] <= rf_sink_data[70].DB_MAX_OUTPUT_PORT_TYPE +rp_data[71] <= rf_sink_data[71].DB_MAX_OUTPUT_PORT_TYPE +rp_data[72] <= rf_sink_data[72].DB_MAX_OUTPUT_PORT_TYPE +rp_data[73] <= rf_sink_data[73].DB_MAX_OUTPUT_PORT_TYPE +rp_data[74] <= rf_sink_data[74].DB_MAX_OUTPUT_PORT_TYPE +rp_data[75] <= rf_sink_data[75].DB_MAX_OUTPUT_PORT_TYPE +rp_data[76] <= rf_sink_data[81].DB_MAX_OUTPUT_PORT_TYPE +rp_data[77] <= rf_sink_data[82].DB_MAX_OUTPUT_PORT_TYPE +rp_data[78] <= rf_sink_data[83].DB_MAX_OUTPUT_PORT_TYPE +rp_data[79] <= rf_sink_data[84].DB_MAX_OUTPUT_PORT_TYPE +rp_data[80] <= rf_sink_data[85].DB_MAX_OUTPUT_PORT_TYPE +rp_data[81] <= rf_sink_data[76].DB_MAX_OUTPUT_PORT_TYPE +rp_data[82] <= rf_sink_data[77].DB_MAX_OUTPUT_PORT_TYPE +rp_data[83] <= rf_sink_data[78].DB_MAX_OUTPUT_PORT_TYPE +rp_data[84] <= rf_sink_data[79].DB_MAX_OUTPUT_PORT_TYPE +rp_data[85] <= rf_sink_data[80].DB_MAX_OUTPUT_PORT_TYPE +rp_data[86] <= rf_sink_data[86].DB_MAX_OUTPUT_PORT_TYPE +rp_data[87] <= rf_sink_data[87].DB_MAX_OUTPUT_PORT_TYPE +rp_data[88] <= rf_sink_data[88].DB_MAX_OUTPUT_PORT_TYPE +rp_data[89] <= rf_sink_data[89].DB_MAX_OUTPUT_PORT_TYPE +rp_data[90] <= rf_sink_data[90].DB_MAX_OUTPUT_PORT_TYPE +rp_data[91] <= rf_sink_data[91].DB_MAX_OUTPUT_PORT_TYPE +rp_data[92] <= rf_sink_data[92].DB_MAX_OUTPUT_PORT_TYPE +rp_data[93] <= rf_sink_data[93].DB_MAX_OUTPUT_PORT_TYPE +rp_data[94] <= rdata_fifo_sink_data[32].DB_MAX_OUTPUT_PORT_TYPE +rp_data[95] <= rdata_fifo_sink_data[33].DB_MAX_OUTPUT_PORT_TYPE +rp_startofpacket <= altera_merlin_burst_uncompressor:uncompressor.source_startofpacket +rp_endofpacket <= altera_merlin_burst_uncompressor:uncompressor.source_endofpacket + + +|lights|nios_system:NiosII|altera_merlin_slave_agent:switches_s1_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor +clk => burst_uncompress_address_offset[0].CLK +clk => burst_uncompress_address_offset[1].CLK +clk => burst_uncompress_address_offset[2].CLK +clk => burst_uncompress_address_offset[3].CLK +clk => burst_uncompress_address_offset[4].CLK +clk => burst_uncompress_address_offset[5].CLK +clk => burst_uncompress_address_offset[6].CLK +clk => burst_uncompress_address_offset[7].CLK +clk => burst_uncompress_address_offset[8].CLK +clk => burst_uncompress_address_offset[9].CLK +clk => burst_uncompress_address_offset[10].CLK +clk => burst_uncompress_address_offset[11].CLK +clk => burst_uncompress_address_offset[12].CLK +clk => burst_uncompress_address_offset[13].CLK +clk => burst_uncompress_address_offset[14].CLK +clk => burst_uncompress_address_offset[15].CLK +clk => burst_uncompress_address_offset[16].CLK +clk => burst_uncompress_address_offset[17].CLK +clk => burst_uncompress_address_offset[18].CLK +clk => burst_uncompress_address_base[0].CLK +clk => burst_uncompress_address_base[1].CLK +clk => burst_uncompress_address_base[2].CLK +clk => burst_uncompress_address_base[3].CLK +clk => burst_uncompress_address_base[4].CLK +clk => burst_uncompress_address_base[5].CLK +clk => burst_uncompress_address_base[6].CLK +clk => burst_uncompress_address_base[7].CLK +clk => burst_uncompress_address_base[8].CLK +clk => burst_uncompress_address_base[9].CLK +clk => burst_uncompress_address_base[10].CLK +clk => burst_uncompress_address_base[11].CLK +clk => burst_uncompress_address_base[12].CLK +clk => burst_uncompress_address_base[13].CLK +clk => burst_uncompress_address_base[14].CLK +clk => burst_uncompress_address_base[15].CLK +clk => burst_uncompress_address_base[16].CLK +clk => burst_uncompress_address_base[17].CLK +clk => burst_uncompress_address_base[18].CLK +clk => burst_uncompress_byte_counter[0].CLK +clk => burst_uncompress_byte_counter[1].CLK +clk => burst_uncompress_byte_counter[2].CLK +clk => burst_uncompress_busy.CLK +reset => burst_uncompress_address_offset[0].ACLR +reset => burst_uncompress_address_offset[1].ACLR +reset => burst_uncompress_address_offset[2].ACLR +reset => burst_uncompress_address_offset[3].ACLR +reset => burst_uncompress_address_offset[4].ACLR +reset => burst_uncompress_address_offset[5].ACLR +reset => burst_uncompress_address_offset[6].ACLR +reset => burst_uncompress_address_offset[7].ACLR +reset => burst_uncompress_address_offset[8].ACLR +reset => burst_uncompress_address_offset[9].ACLR +reset => burst_uncompress_address_offset[10].ACLR +reset => burst_uncompress_address_offset[11].ACLR +reset => burst_uncompress_address_offset[12].ACLR +reset => burst_uncompress_address_offset[13].ACLR +reset => burst_uncompress_address_offset[14].ACLR +reset => burst_uncompress_address_offset[15].ACLR +reset => burst_uncompress_address_offset[16].ACLR +reset => burst_uncompress_address_offset[17].ACLR +reset => burst_uncompress_address_offset[18].ACLR +reset => burst_uncompress_address_base[0].ACLR +reset => burst_uncompress_address_base[1].ACLR +reset => burst_uncompress_address_base[2].ACLR +reset => burst_uncompress_address_base[3].ACLR +reset => burst_uncompress_address_base[4].ACLR +reset => burst_uncompress_address_base[5].ACLR +reset => burst_uncompress_address_base[6].ACLR +reset => burst_uncompress_address_base[7].ACLR +reset => burst_uncompress_address_base[8].ACLR +reset => burst_uncompress_address_base[9].ACLR +reset => burst_uncompress_address_base[10].ACLR +reset => burst_uncompress_address_base[11].ACLR +reset => burst_uncompress_address_base[12].ACLR +reset => burst_uncompress_address_base[13].ACLR +reset => burst_uncompress_address_base[14].ACLR +reset => burst_uncompress_address_base[15].ACLR +reset => burst_uncompress_address_base[16].ACLR +reset => burst_uncompress_address_base[17].ACLR +reset => burst_uncompress_address_base[18].ACLR +reset => burst_uncompress_byte_counter[0].ACLR +reset => burst_uncompress_byte_counter[1].ACLR +reset => burst_uncompress_byte_counter[2].ACLR +reset => burst_uncompress_busy.ACLR +sink_startofpacket => source_startofpacket.IN1 +sink_endofpacket => source_endofpacket.IN1 +sink_valid => first_packet_beat.IN1 +sink_valid => last_packet_beat.IN1 +sink_valid => last_packet_beat.IN1 +sink_valid => always0.IN1 +sink_valid => sink_ready.IN0 +sink_valid => source_valid.DATAIN +sink_ready <= sink_ready.DB_MAX_OUTPUT_PORT_TYPE +sink_addr[0] => burst_uncompress_address_base.IN0 +sink_addr[0] => comb.DATAB +sink_addr[0] => source_addr.DATAB +sink_addr[1] => burst_uncompress_address_base.IN0 +sink_addr[1] => comb.DATAB +sink_addr[1] => source_addr.DATAB +sink_addr[2] => burst_uncompress_address_base.IN0 +sink_addr[2] => comb.DATAB +sink_addr[2] => source_addr.DATAB +sink_addr[3] => burst_uncompress_address_base.IN0 +sink_addr[3] => comb.DATAB +sink_addr[3] => source_addr.DATAB +sink_addr[4] => burst_uncompress_address_base.IN0 +sink_addr[4] => comb.DATAB +sink_addr[4] => source_addr.DATAB +sink_addr[5] => burst_uncompress_address_base.IN0 +sink_addr[5] => comb.DATAB +sink_addr[5] => source_addr.DATAB +sink_addr[6] => burst_uncompress_address_base.IN0 +sink_addr[6] => comb.DATAB +sink_addr[6] => source_addr.DATAB +sink_addr[7] => burst_uncompress_address_base.IN0 +sink_addr[7] => comb.DATAB +sink_addr[7] => source_addr.DATAB +sink_addr[8] => burst_uncompress_address_base.IN0 +sink_addr[8] => comb.DATAB +sink_addr[8] => source_addr.DATAB +sink_addr[9] => burst_uncompress_address_base.IN0 +sink_addr[9] => comb.DATAB +sink_addr[9] => source_addr.DATAB +sink_addr[10] => burst_uncompress_address_base.IN0 +sink_addr[10] => comb.DATAB +sink_addr[10] => source_addr.DATAB +sink_addr[11] => burst_uncompress_address_base.IN0 +sink_addr[11] => comb.DATAB +sink_addr[11] => source_addr.DATAB +sink_addr[12] => burst_uncompress_address_base.IN0 +sink_addr[12] => comb.DATAB +sink_addr[12] => source_addr.DATAB +sink_addr[13] => burst_uncompress_address_base.IN0 +sink_addr[13] => comb.DATAB +sink_addr[13] => source_addr.DATAB +sink_addr[14] => burst_uncompress_address_base.IN0 +sink_addr[14] => comb.DATAB +sink_addr[14] => source_addr.DATAB +sink_addr[15] => burst_uncompress_address_base.IN0 +sink_addr[15] => comb.DATAB +sink_addr[15] => source_addr.DATAB +sink_addr[16] => burst_uncompress_address_base.IN0 +sink_addr[16] => comb.DATAB +sink_addr[16] => source_addr.DATAB +sink_addr[17] => burst_uncompress_address_base.IN0 +sink_addr[17] => comb.DATAB +sink_addr[17] => source_addr.DATAB +sink_addr[18] => burst_uncompress_address_base.IN0 +sink_addr[18] => comb.DATAB +sink_addr[18] => source_addr.DATAB +sink_burstwrap[0] => p1_burst_uncompress_address_offset[0].IN1 +sink_burstwrap[0] => source_burstwrap[0].DATAIN +sink_burstwrap[0] => burst_uncompress_address_base.IN1 +sink_burstwrap[1] => p1_burst_uncompress_address_offset[1].IN1 +sink_burstwrap[1] => source_burstwrap[1].DATAIN +sink_burstwrap[1] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[2].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[18].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[17].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[16].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[15].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[14].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[13].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[12].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[11].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[10].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[9].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[8].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[7].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[6].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[5].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[4].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[3].IN1 +sink_burstwrap[2] => source_burstwrap[2].DATAIN +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_byte_cnt[0] => source_byte_cnt.DATAB +sink_byte_cnt[0] => Add1.IN6 +sink_byte_cnt[0] => Equal1.IN2 +sink_byte_cnt[1] => source_byte_cnt.DATAB +sink_byte_cnt[1] => Add1.IN5 +sink_byte_cnt[1] => Equal1.IN1 +sink_byte_cnt[2] => source_byte_cnt.DATAB +sink_byte_cnt[2] => Add1.IN4 +sink_byte_cnt[2] => Equal1.IN0 +sink_is_compressed => last_packet_beat.IN1 +sink_burstsize[0] => Decoder0.IN2 +sink_burstsize[0] => source_burstsize[0].DATAIN +sink_burstsize[1] => Decoder0.IN1 +sink_burstsize[1] => source_burstsize[1].DATAIN +sink_burstsize[2] => Decoder0.IN0 +sink_burstsize[2] => source_burstsize[2].DATAIN +source_startofpacket <= source_startofpacket.DB_MAX_OUTPUT_PORT_TYPE +source_endofpacket <= source_endofpacket.DB_MAX_OUTPUT_PORT_TYPE +source_valid <= sink_valid.DB_MAX_OUTPUT_PORT_TYPE +source_ready => always1.IN1 +source_ready => sink_ready.IN1 +source_addr[0] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[1] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[2] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[3] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[4] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[5] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[6] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[7] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[8] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[9] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[10] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[11] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[12] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[13] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[14] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[15] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[16] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[17] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[18] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_burstwrap[0] <= sink_burstwrap[0].DB_MAX_OUTPUT_PORT_TYPE +source_burstwrap[1] <= sink_burstwrap[1].DB_MAX_OUTPUT_PORT_TYPE +source_burstwrap[2] <= sink_burstwrap[2].DB_MAX_OUTPUT_PORT_TYPE +source_byte_cnt[0] <= source_byte_cnt.DB_MAX_OUTPUT_PORT_TYPE +source_byte_cnt[1] <= source_byte_cnt.DB_MAX_OUTPUT_PORT_TYPE +source_byte_cnt[2] <= source_byte_cnt.DB_MAX_OUTPUT_PORT_TYPE +source_is_compressed <= +source_burstsize[0] <= sink_burstsize[0].DB_MAX_OUTPUT_PORT_TYPE +source_burstsize[1] <= sink_burstsize[1].DB_MAX_OUTPUT_PORT_TYPE +source_burstsize[2] <= sink_burstsize[2].DB_MAX_OUTPUT_PORT_TYPE + + +|lights|nios_system:NiosII|altera_avalon_sc_fifo:switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo +clk => csr_readdata[0]~reg0.CLK +clk => csr_readdata[1]~reg0.CLK +clk => csr_readdata[2]~reg0.CLK +clk => csr_readdata[3]~reg0.CLK +clk => csr_readdata[4]~reg0.CLK +clk => csr_readdata[5]~reg0.CLK +clk => csr_readdata[6]~reg0.CLK +clk => csr_readdata[7]~reg0.CLK +clk => csr_readdata[8]~reg0.CLK +clk => csr_readdata[9]~reg0.CLK +clk => csr_readdata[10]~reg0.CLK +clk => csr_readdata[11]~reg0.CLK +clk => csr_readdata[12]~reg0.CLK +clk => csr_readdata[13]~reg0.CLK +clk => csr_readdata[14]~reg0.CLK +clk => csr_readdata[15]~reg0.CLK +clk => csr_readdata[16]~reg0.CLK +clk => csr_readdata[17]~reg0.CLK +clk => csr_readdata[18]~reg0.CLK +clk => csr_readdata[19]~reg0.CLK +clk => csr_readdata[20]~reg0.CLK +clk => csr_readdata[21]~reg0.CLK +clk => csr_readdata[22]~reg0.CLK +clk => csr_readdata[23]~reg0.CLK +clk => csr_readdata[24]~reg0.CLK +clk => csr_readdata[25]~reg0.CLK +clk => csr_readdata[26]~reg0.CLK +clk => csr_readdata[27]~reg0.CLK +clk => csr_readdata[28]~reg0.CLK +clk => csr_readdata[29]~reg0.CLK +clk => csr_readdata[30]~reg0.CLK +clk => csr_readdata[31]~reg0.CLK +clk => mem_used[1].CLK +clk => mem_used[0].CLK +clk => mem[1][0].CLK +clk => mem[1][1].CLK +clk => mem[1][2].CLK +clk => mem[1][3].CLK +clk => mem[1][4].CLK +clk => mem[1][5].CLK +clk => mem[1][6].CLK +clk => mem[1][7].CLK +clk => mem[1][8].CLK +clk => mem[1][9].CLK +clk => mem[1][10].CLK +clk => mem[1][11].CLK +clk => mem[1][12].CLK +clk => mem[1][13].CLK +clk => mem[1][14].CLK +clk => mem[1][15].CLK +clk => mem[1][16].CLK +clk => mem[1][17].CLK +clk => mem[1][18].CLK +clk => mem[1][19].CLK +clk => mem[1][20].CLK +clk => mem[1][21].CLK +clk => mem[1][22].CLK +clk => mem[1][23].CLK +clk => mem[1][24].CLK +clk => mem[1][25].CLK +clk => mem[1][26].CLK +clk => mem[1][27].CLK +clk => mem[1][28].CLK +clk => mem[1][29].CLK +clk => mem[1][30].CLK +clk => mem[1][31].CLK +clk => mem[1][32].CLK +clk => mem[1][33].CLK +clk => mem[1][34].CLK +clk => mem[1][35].CLK +clk => mem[1][36].CLK +clk => mem[1][37].CLK +clk => mem[1][38].CLK +clk => mem[1][39].CLK +clk => mem[1][40].CLK +clk => mem[1][41].CLK +clk => mem[1][42].CLK +clk => mem[1][43].CLK +clk => mem[1][44].CLK +clk => mem[1][45].CLK +clk => mem[1][46].CLK +clk => mem[1][47].CLK +clk => mem[1][48].CLK +clk => mem[1][49].CLK +clk => mem[1][50].CLK +clk => mem[1][51].CLK +clk => mem[1][52].CLK +clk => mem[1][53].CLK +clk => mem[1][54].CLK +clk => mem[1][55].CLK +clk => mem[1][56].CLK +clk => mem[1][57].CLK +clk => mem[1][58].CLK +clk => mem[1][59].CLK +clk => mem[1][60].CLK +clk => mem[1][61].CLK +clk => mem[1][62].CLK +clk => mem[1][63].CLK +clk => mem[1][64].CLK +clk => mem[1][65].CLK +clk => mem[1][66].CLK +clk => mem[1][67].CLK +clk => mem[1][68].CLK +clk => mem[1][69].CLK +clk => mem[1][70].CLK +clk => mem[1][71].CLK +clk => mem[1][72].CLK +clk => mem[1][73].CLK +clk => mem[1][74].CLK +clk => mem[1][75].CLK +clk => mem[1][76].CLK +clk => mem[1][77].CLK +clk => mem[1][78].CLK +clk => mem[1][79].CLK +clk => mem[1][80].CLK +clk => mem[1][81].CLK +clk => mem[1][82].CLK +clk => mem[1][83].CLK +clk => mem[1][84].CLK +clk => mem[1][85].CLK +clk => mem[1][86].CLK +clk => mem[1][87].CLK +clk => mem[1][88].CLK +clk => mem[1][89].CLK +clk => mem[1][90].CLK +clk => mem[1][91].CLK +clk => mem[1][92].CLK +clk => mem[1][93].CLK +clk => mem[1][94].CLK +clk => mem[1][95].CLK +clk => mem[1][96].CLK +clk => mem[1][97].CLK +clk => mem[1][98].CLK +clk => mem[0][0].CLK +clk => mem[0][1].CLK +clk => mem[0][2].CLK +clk => mem[0][3].CLK +clk => mem[0][4].CLK +clk => mem[0][5].CLK +clk => mem[0][6].CLK +clk => mem[0][7].CLK +clk => mem[0][8].CLK +clk => mem[0][9].CLK +clk => mem[0][10].CLK +clk => mem[0][11].CLK +clk => mem[0][12].CLK +clk => mem[0][13].CLK +clk => mem[0][14].CLK +clk => mem[0][15].CLK +clk => mem[0][16].CLK +clk => mem[0][17].CLK +clk => mem[0][18].CLK +clk => mem[0][19].CLK +clk => mem[0][20].CLK +clk => mem[0][21].CLK +clk => mem[0][22].CLK +clk => mem[0][23].CLK +clk => mem[0][24].CLK +clk => mem[0][25].CLK +clk => mem[0][26].CLK +clk => mem[0][27].CLK +clk => mem[0][28].CLK +clk => mem[0][29].CLK +clk => mem[0][30].CLK +clk => mem[0][31].CLK +clk => mem[0][32].CLK +clk => mem[0][33].CLK +clk => mem[0][34].CLK +clk => mem[0][35].CLK +clk => mem[0][36].CLK +clk => mem[0][37].CLK +clk => mem[0][38].CLK +clk => mem[0][39].CLK +clk => mem[0][40].CLK +clk => mem[0][41].CLK +clk => mem[0][42].CLK +clk => mem[0][43].CLK +clk => mem[0][44].CLK +clk => mem[0][45].CLK +clk => mem[0][46].CLK +clk => mem[0][47].CLK +clk => mem[0][48].CLK +clk => mem[0][49].CLK +clk => mem[0][50].CLK +clk => mem[0][51].CLK +clk => mem[0][52].CLK +clk => mem[0][53].CLK +clk => mem[0][54].CLK +clk => mem[0][55].CLK +clk => mem[0][56].CLK +clk => mem[0][57].CLK +clk => mem[0][58].CLK +clk => mem[0][59].CLK +clk => mem[0][60].CLK +clk => mem[0][61].CLK +clk => mem[0][62].CLK +clk => mem[0][63].CLK +clk => mem[0][64].CLK +clk => mem[0][65].CLK +clk => mem[0][66].CLK +clk => mem[0][67].CLK +clk => mem[0][68].CLK +clk => mem[0][69].CLK +clk => mem[0][70].CLK +clk => mem[0][71].CLK +clk => mem[0][72].CLK +clk => mem[0][73].CLK +clk => mem[0][74].CLK +clk => mem[0][75].CLK +clk => mem[0][76].CLK +clk => mem[0][77].CLK +clk => mem[0][78].CLK +clk => mem[0][79].CLK +clk => mem[0][80].CLK +clk => mem[0][81].CLK +clk => mem[0][82].CLK +clk => mem[0][83].CLK +clk => mem[0][84].CLK +clk => mem[0][85].CLK +clk => mem[0][86].CLK +clk => mem[0][87].CLK +clk => mem[0][88].CLK +clk => mem[0][89].CLK +clk => mem[0][90].CLK +clk => mem[0][91].CLK +clk => mem[0][92].CLK +clk => mem[0][93].CLK +clk => mem[0][94].CLK +clk => mem[0][95].CLK +clk => mem[0][96].CLK +clk => mem[0][97].CLK +clk => mem[0][98].CLK +reset => csr_readdata[0]~reg0.ACLR +reset => csr_readdata[1]~reg0.ACLR +reset => csr_readdata[2]~reg0.ACLR +reset => csr_readdata[3]~reg0.ACLR +reset => csr_readdata[4]~reg0.ACLR +reset => csr_readdata[5]~reg0.ACLR +reset => csr_readdata[6]~reg0.ACLR +reset => csr_readdata[7]~reg0.ACLR +reset => csr_readdata[8]~reg0.ACLR +reset => csr_readdata[9]~reg0.ACLR +reset => csr_readdata[10]~reg0.ACLR +reset => csr_readdata[11]~reg0.ACLR +reset => csr_readdata[12]~reg0.ACLR +reset => csr_readdata[13]~reg0.ACLR +reset => csr_readdata[14]~reg0.ACLR +reset => csr_readdata[15]~reg0.ACLR +reset => csr_readdata[16]~reg0.ACLR +reset => csr_readdata[17]~reg0.ACLR +reset => csr_readdata[18]~reg0.ACLR +reset => csr_readdata[19]~reg0.ACLR +reset => csr_readdata[20]~reg0.ACLR +reset => csr_readdata[21]~reg0.ACLR +reset => csr_readdata[22]~reg0.ACLR +reset => csr_readdata[23]~reg0.ACLR +reset => csr_readdata[24]~reg0.ACLR +reset => csr_readdata[25]~reg0.ACLR +reset => csr_readdata[26]~reg0.ACLR +reset => csr_readdata[27]~reg0.ACLR +reset => csr_readdata[28]~reg0.ACLR +reset => csr_readdata[29]~reg0.ACLR +reset => csr_readdata[30]~reg0.ACLR +reset => csr_readdata[31]~reg0.ACLR +reset => mem_used[1].ACLR +reset => mem_used[0].ACLR +reset => mem[1][0].ACLR +reset => mem[1][1].ACLR +reset => mem[1][2].ACLR +reset => mem[1][3].ACLR +reset => mem[1][4].ACLR +reset => mem[1][5].ACLR +reset => mem[1][6].ACLR +reset => mem[1][7].ACLR +reset => mem[1][8].ACLR +reset => mem[1][9].ACLR +reset => mem[1][10].ACLR +reset => mem[1][11].ACLR +reset => mem[1][12].ACLR +reset => mem[1][13].ACLR +reset => mem[1][14].ACLR +reset => mem[1][15].ACLR +reset => mem[1][16].ACLR +reset => mem[1][17].ACLR +reset => mem[1][18].ACLR +reset => mem[1][19].ACLR +reset => mem[1][20].ACLR +reset => mem[1][21].ACLR +reset => mem[1][22].ACLR +reset => mem[1][23].ACLR +reset => mem[1][24].ACLR +reset => mem[1][25].ACLR +reset => mem[1][26].ACLR +reset => mem[1][27].ACLR +reset => mem[1][28].ACLR +reset => mem[1][29].ACLR +reset => mem[1][30].ACLR +reset => mem[1][31].ACLR +reset => mem[1][32].ACLR +reset => mem[1][33].ACLR +reset => mem[1][34].ACLR +reset => mem[1][35].ACLR +reset => mem[1][36].ACLR +reset => mem[1][37].ACLR +reset => mem[1][38].ACLR +reset => mem[1][39].ACLR +reset => mem[1][40].ACLR +reset => mem[1][41].ACLR +reset => mem[1][42].ACLR +reset => mem[1][43].ACLR +reset => mem[1][44].ACLR +reset => mem[1][45].ACLR +reset => mem[1][46].ACLR +reset => mem[1][47].ACLR +reset => mem[1][48].ACLR +reset => mem[1][49].ACLR +reset => mem[1][50].ACLR +reset => mem[1][51].ACLR +reset => mem[1][52].ACLR +reset => mem[1][53].ACLR +reset => mem[1][54].ACLR +reset => mem[1][55].ACLR +reset => mem[1][56].ACLR +reset => mem[1][57].ACLR +reset => mem[1][58].ACLR +reset => mem[1][59].ACLR +reset => mem[1][60].ACLR +reset => mem[1][61].ACLR +reset => mem[1][62].ACLR +reset => mem[1][63].ACLR +reset => mem[1][64].ACLR +reset => mem[1][65].ACLR +reset => mem[1][66].ACLR +reset => mem[1][67].ACLR +reset => mem[1][68].ACLR +reset => mem[1][69].ACLR +reset => mem[1][70].ACLR +reset => mem[1][71].ACLR +reset => mem[1][72].ACLR +reset => mem[1][73].ACLR +reset => mem[1][74].ACLR +reset => mem[1][75].ACLR +reset => mem[1][76].ACLR +reset => mem[1][77].ACLR +reset => mem[1][78].ACLR +reset => mem[1][79].ACLR +reset => mem[1][80].ACLR +reset => mem[1][81].ACLR +reset => mem[1][82].ACLR +reset => mem[1][83].ACLR +reset => mem[1][84].ACLR +reset => mem[1][85].ACLR +reset => mem[1][86].ACLR +reset => mem[1][87].ACLR +reset => mem[1][88].ACLR +reset => mem[1][89].ACLR +reset => mem[1][90].ACLR +reset => mem[1][91].ACLR +reset => mem[1][92].ACLR +reset => mem[1][93].ACLR +reset => mem[1][94].ACLR +reset => mem[1][95].ACLR +reset => mem[1][96].ACLR +reset => mem[1][97].ACLR +reset => mem[1][98].ACLR +reset => mem[0][0].ACLR +reset => mem[0][1].ACLR +reset => mem[0][2].ACLR +reset => mem[0][3].ACLR +reset => mem[0][4].ACLR +reset => mem[0][5].ACLR +reset => mem[0][6].ACLR +reset => mem[0][7].ACLR +reset => mem[0][8].ACLR +reset => mem[0][9].ACLR +reset => mem[0][10].ACLR +reset => mem[0][11].ACLR +reset => mem[0][12].ACLR +reset => mem[0][13].ACLR +reset => mem[0][14].ACLR +reset => mem[0][15].ACLR +reset => mem[0][16].ACLR +reset => mem[0][17].ACLR +reset => mem[0][18].ACLR +reset => mem[0][19].ACLR +reset => mem[0][20].ACLR +reset => mem[0][21].ACLR +reset => mem[0][22].ACLR +reset => mem[0][23].ACLR +reset => mem[0][24].ACLR +reset => mem[0][25].ACLR +reset => mem[0][26].ACLR +reset => mem[0][27].ACLR +reset => mem[0][28].ACLR +reset => mem[0][29].ACLR +reset => mem[0][30].ACLR +reset => mem[0][31].ACLR +reset => mem[0][32].ACLR +reset => mem[0][33].ACLR +reset => mem[0][34].ACLR +reset => mem[0][35].ACLR +reset => mem[0][36].ACLR +reset => mem[0][37].ACLR +reset => mem[0][38].ACLR +reset => mem[0][39].ACLR +reset => mem[0][40].ACLR +reset => mem[0][41].ACLR +reset => mem[0][42].ACLR +reset => mem[0][43].ACLR +reset => mem[0][44].ACLR +reset => mem[0][45].ACLR +reset => mem[0][46].ACLR +reset => mem[0][47].ACLR +reset => mem[0][48].ACLR +reset => mem[0][49].ACLR +reset => mem[0][50].ACLR +reset => mem[0][51].ACLR +reset => mem[0][52].ACLR +reset => mem[0][53].ACLR +reset => mem[0][54].ACLR +reset => mem[0][55].ACLR +reset => mem[0][56].ACLR +reset => mem[0][57].ACLR +reset => mem[0][58].ACLR +reset => mem[0][59].ACLR +reset => mem[0][60].ACLR +reset => mem[0][61].ACLR +reset => mem[0][62].ACLR +reset => mem[0][63].ACLR +reset => mem[0][64].ACLR +reset => mem[0][65].ACLR +reset => mem[0][66].ACLR +reset => mem[0][67].ACLR +reset => mem[0][68].ACLR +reset => mem[0][69].ACLR +reset => mem[0][70].ACLR +reset => mem[0][71].ACLR +reset => mem[0][72].ACLR +reset => mem[0][73].ACLR +reset => mem[0][74].ACLR +reset => mem[0][75].ACLR +reset => mem[0][76].ACLR +reset => mem[0][77].ACLR +reset => mem[0][78].ACLR +reset => mem[0][79].ACLR +reset => mem[0][80].ACLR +reset => mem[0][81].ACLR +reset => mem[0][82].ACLR +reset => mem[0][83].ACLR +reset => mem[0][84].ACLR +reset => mem[0][85].ACLR +reset => mem[0][86].ACLR +reset => mem[0][87].ACLR +reset => mem[0][88].ACLR +reset => mem[0][89].ACLR +reset => mem[0][90].ACLR +reset => mem[0][91].ACLR +reset => mem[0][92].ACLR +reset => mem[0][93].ACLR +reset => mem[0][94].ACLR +reset => mem[0][95].ACLR +reset => mem[0][96].ACLR +reset => mem[0][97].ACLR +reset => mem[0][98].ACLR +in_data[0] => mem.DATAB +in_data[1] => mem.DATAB +in_data[2] => mem.DATAB +in_data[3] => mem.DATAB +in_data[4] => mem.DATAB +in_data[5] => mem.DATAB +in_data[6] => mem.DATAB +in_data[7] => mem.DATAB +in_data[8] => mem.DATAB +in_data[9] => mem.DATAB +in_data[10] => mem.DATAB +in_data[11] => mem.DATAB +in_data[12] => mem.DATAB +in_data[13] => mem.DATAB +in_data[14] => mem.DATAB +in_data[15] => mem.DATAB +in_data[16] => mem.DATAB +in_data[17] => mem.DATAB +in_data[18] => mem.DATAB +in_data[19] => mem.DATAB +in_data[20] => mem.DATAB +in_data[21] => mem.DATAB +in_data[22] => mem.DATAB +in_data[23] => mem.DATAB +in_data[24] => mem.DATAB +in_data[25] => mem.DATAB +in_data[26] => mem.DATAB +in_data[27] => mem.DATAB +in_data[28] => mem.DATAB +in_data[29] => mem.DATAB +in_data[30] => mem.DATAB +in_data[31] => mem.DATAB +in_data[32] => mem.DATAB +in_data[33] => mem.DATAB +in_data[34] => mem.DATAB +in_data[35] => mem.DATAB +in_data[36] => mem.DATAB +in_data[37] => mem.DATAB +in_data[38] => mem.DATAB +in_data[39] => mem.DATAB +in_data[40] => mem.DATAB +in_data[41] => mem.DATAB +in_data[42] => mem.DATAB +in_data[43] => mem.DATAB +in_data[44] => mem.DATAB +in_data[45] => mem.DATAB +in_data[46] => mem.DATAB +in_data[47] => mem.DATAB +in_data[48] => mem.DATAB +in_data[49] => mem.DATAB +in_data[50] => mem.DATAB +in_data[51] => mem.DATAB +in_data[52] => mem.DATAB +in_data[53] => mem.DATAB +in_data[54] => mem.DATAB +in_data[55] => mem.DATAB +in_data[56] => mem.DATAB +in_data[57] => mem.DATAB +in_data[58] => mem.DATAB +in_data[59] => mem.DATAB +in_data[60] => mem.DATAB +in_data[61] => mem.DATAB +in_data[62] => mem.DATAB +in_data[63] => mem.DATAB +in_data[64] => mem.DATAB +in_data[65] => mem.DATAB +in_data[66] => mem.DATAB +in_data[67] => mem.DATAB +in_data[68] => mem.DATAB +in_data[69] => mem.DATAB +in_data[70] => mem.DATAB +in_data[71] => mem.DATAB +in_data[72] => mem.DATAB +in_data[73] => mem.DATAB +in_data[74] => mem.DATAB +in_data[75] => mem.DATAB +in_data[76] => mem.DATAB +in_data[77] => mem.DATAB +in_data[78] => mem.DATAB +in_data[79] => mem.DATAB +in_data[80] => mem.DATAB +in_data[81] => mem.DATAB +in_data[82] => mem.DATAB +in_data[83] => mem.DATAB +in_data[84] => mem.DATAB +in_data[85] => mem.DATAB +in_data[86] => mem.DATAB +in_data[87] => mem.DATAB +in_data[88] => mem.DATAB +in_data[89] => mem.DATAB +in_data[90] => mem.DATAB +in_data[91] => mem.DATAB +in_data[92] => mem.DATAB +in_data[93] => mem.DATAB +in_data[94] => mem.DATAB +in_data[95] => mem.DATAB +in_data[96] => mem.DATAB +in_valid => write.IN1 +in_startofpacket => mem.DATAB +in_endofpacket => mem.DATAB +in_empty[0] => ~NO_FANOUT~ +in_error[0] => out_error[0].DATAIN +in_error[0] => out_empty[0].DATAIN +in_channel[0] => out_channel[0].DATAIN +in_ready <= mem_used[1].DB_MAX_OUTPUT_PORT_TYPE +out_data[0] <= mem[0][0].DB_MAX_OUTPUT_PORT_TYPE +out_data[1] <= mem[0][1].DB_MAX_OUTPUT_PORT_TYPE +out_data[2] <= mem[0][2].DB_MAX_OUTPUT_PORT_TYPE +out_data[3] <= mem[0][3].DB_MAX_OUTPUT_PORT_TYPE +out_data[4] <= mem[0][4].DB_MAX_OUTPUT_PORT_TYPE +out_data[5] <= mem[0][5].DB_MAX_OUTPUT_PORT_TYPE +out_data[6] <= mem[0][6].DB_MAX_OUTPUT_PORT_TYPE +out_data[7] <= mem[0][7].DB_MAX_OUTPUT_PORT_TYPE +out_data[8] <= mem[0][8].DB_MAX_OUTPUT_PORT_TYPE +out_data[9] <= mem[0][9].DB_MAX_OUTPUT_PORT_TYPE +out_data[10] <= mem[0][10].DB_MAX_OUTPUT_PORT_TYPE +out_data[11] <= mem[0][11].DB_MAX_OUTPUT_PORT_TYPE +out_data[12] <= mem[0][12].DB_MAX_OUTPUT_PORT_TYPE +out_data[13] <= mem[0][13].DB_MAX_OUTPUT_PORT_TYPE +out_data[14] <= mem[0][14].DB_MAX_OUTPUT_PORT_TYPE +out_data[15] <= mem[0][15].DB_MAX_OUTPUT_PORT_TYPE +out_data[16] <= mem[0][16].DB_MAX_OUTPUT_PORT_TYPE +out_data[17] <= mem[0][17].DB_MAX_OUTPUT_PORT_TYPE +out_data[18] <= mem[0][18].DB_MAX_OUTPUT_PORT_TYPE +out_data[19] <= mem[0][19].DB_MAX_OUTPUT_PORT_TYPE +out_data[20] <= mem[0][20].DB_MAX_OUTPUT_PORT_TYPE +out_data[21] <= mem[0][21].DB_MAX_OUTPUT_PORT_TYPE +out_data[22] <= mem[0][22].DB_MAX_OUTPUT_PORT_TYPE +out_data[23] <= mem[0][23].DB_MAX_OUTPUT_PORT_TYPE +out_data[24] <= mem[0][24].DB_MAX_OUTPUT_PORT_TYPE +out_data[25] <= mem[0][25].DB_MAX_OUTPUT_PORT_TYPE +out_data[26] <= mem[0][26].DB_MAX_OUTPUT_PORT_TYPE +out_data[27] <= mem[0][27].DB_MAX_OUTPUT_PORT_TYPE +out_data[28] <= mem[0][28].DB_MAX_OUTPUT_PORT_TYPE +out_data[29] <= mem[0][29].DB_MAX_OUTPUT_PORT_TYPE +out_data[30] <= mem[0][30].DB_MAX_OUTPUT_PORT_TYPE +out_data[31] <= mem[0][31].DB_MAX_OUTPUT_PORT_TYPE +out_data[32] <= mem[0][32].DB_MAX_OUTPUT_PORT_TYPE +out_data[33] <= mem[0][33].DB_MAX_OUTPUT_PORT_TYPE +out_data[34] <= mem[0][34].DB_MAX_OUTPUT_PORT_TYPE +out_data[35] <= mem[0][35].DB_MAX_OUTPUT_PORT_TYPE +out_data[36] <= mem[0][36].DB_MAX_OUTPUT_PORT_TYPE +out_data[37] <= mem[0][37].DB_MAX_OUTPUT_PORT_TYPE +out_data[38] <= mem[0][38].DB_MAX_OUTPUT_PORT_TYPE +out_data[39] <= mem[0][39].DB_MAX_OUTPUT_PORT_TYPE +out_data[40] <= mem[0][40].DB_MAX_OUTPUT_PORT_TYPE +out_data[41] <= mem[0][41].DB_MAX_OUTPUT_PORT_TYPE +out_data[42] <= mem[0][42].DB_MAX_OUTPUT_PORT_TYPE +out_data[43] <= mem[0][43].DB_MAX_OUTPUT_PORT_TYPE +out_data[44] <= mem[0][44].DB_MAX_OUTPUT_PORT_TYPE +out_data[45] <= mem[0][45].DB_MAX_OUTPUT_PORT_TYPE +out_data[46] <= mem[0][46].DB_MAX_OUTPUT_PORT_TYPE +out_data[47] <= mem[0][47].DB_MAX_OUTPUT_PORT_TYPE +out_data[48] <= mem[0][48].DB_MAX_OUTPUT_PORT_TYPE +out_data[49] <= mem[0][49].DB_MAX_OUTPUT_PORT_TYPE +out_data[50] <= mem[0][50].DB_MAX_OUTPUT_PORT_TYPE +out_data[51] <= mem[0][51].DB_MAX_OUTPUT_PORT_TYPE +out_data[52] <= mem[0][52].DB_MAX_OUTPUT_PORT_TYPE +out_data[53] <= mem[0][53].DB_MAX_OUTPUT_PORT_TYPE +out_data[54] <= mem[0][54].DB_MAX_OUTPUT_PORT_TYPE +out_data[55] <= mem[0][55].DB_MAX_OUTPUT_PORT_TYPE +out_data[56] <= mem[0][56].DB_MAX_OUTPUT_PORT_TYPE +out_data[57] <= mem[0][57].DB_MAX_OUTPUT_PORT_TYPE +out_data[58] <= mem[0][58].DB_MAX_OUTPUT_PORT_TYPE +out_data[59] <= mem[0][59].DB_MAX_OUTPUT_PORT_TYPE +out_data[60] <= mem[0][60].DB_MAX_OUTPUT_PORT_TYPE +out_data[61] <= mem[0][61].DB_MAX_OUTPUT_PORT_TYPE +out_data[62] <= mem[0][62].DB_MAX_OUTPUT_PORT_TYPE +out_data[63] <= mem[0][63].DB_MAX_OUTPUT_PORT_TYPE +out_data[64] <= mem[0][64].DB_MAX_OUTPUT_PORT_TYPE +out_data[65] <= mem[0][65].DB_MAX_OUTPUT_PORT_TYPE +out_data[66] <= mem[0][66].DB_MAX_OUTPUT_PORT_TYPE +out_data[67] <= mem[0][67].DB_MAX_OUTPUT_PORT_TYPE +out_data[68] <= mem[0][68].DB_MAX_OUTPUT_PORT_TYPE +out_data[69] <= mem[0][69].DB_MAX_OUTPUT_PORT_TYPE +out_data[70] <= mem[0][70].DB_MAX_OUTPUT_PORT_TYPE +out_data[71] <= mem[0][71].DB_MAX_OUTPUT_PORT_TYPE +out_data[72] <= mem[0][72].DB_MAX_OUTPUT_PORT_TYPE +out_data[73] <= mem[0][73].DB_MAX_OUTPUT_PORT_TYPE +out_data[74] <= mem[0][74].DB_MAX_OUTPUT_PORT_TYPE +out_data[75] <= mem[0][75].DB_MAX_OUTPUT_PORT_TYPE +out_data[76] <= mem[0][76].DB_MAX_OUTPUT_PORT_TYPE +out_data[77] <= mem[0][77].DB_MAX_OUTPUT_PORT_TYPE +out_data[78] <= mem[0][78].DB_MAX_OUTPUT_PORT_TYPE +out_data[79] <= mem[0][79].DB_MAX_OUTPUT_PORT_TYPE +out_data[80] <= mem[0][80].DB_MAX_OUTPUT_PORT_TYPE +out_data[81] <= mem[0][81].DB_MAX_OUTPUT_PORT_TYPE +out_data[82] <= mem[0][82].DB_MAX_OUTPUT_PORT_TYPE +out_data[83] <= mem[0][83].DB_MAX_OUTPUT_PORT_TYPE +out_data[84] <= mem[0][84].DB_MAX_OUTPUT_PORT_TYPE +out_data[85] <= mem[0][85].DB_MAX_OUTPUT_PORT_TYPE +out_data[86] <= mem[0][86].DB_MAX_OUTPUT_PORT_TYPE +out_data[87] <= mem[0][87].DB_MAX_OUTPUT_PORT_TYPE +out_data[88] <= mem[0][88].DB_MAX_OUTPUT_PORT_TYPE +out_data[89] <= mem[0][89].DB_MAX_OUTPUT_PORT_TYPE +out_data[90] <= mem[0][90].DB_MAX_OUTPUT_PORT_TYPE +out_data[91] <= mem[0][91].DB_MAX_OUTPUT_PORT_TYPE +out_data[92] <= mem[0][92].DB_MAX_OUTPUT_PORT_TYPE +out_data[93] <= mem[0][93].DB_MAX_OUTPUT_PORT_TYPE +out_data[94] <= mem[0][94].DB_MAX_OUTPUT_PORT_TYPE +out_data[95] <= mem[0][95].DB_MAX_OUTPUT_PORT_TYPE +out_data[96] <= mem[0][96].DB_MAX_OUTPUT_PORT_TYPE +out_valid <= mem_used[0].DB_MAX_OUTPUT_PORT_TYPE +out_startofpacket <= mem[0][98].DB_MAX_OUTPUT_PORT_TYPE +out_endofpacket <= mem[0][97].DB_MAX_OUTPUT_PORT_TYPE +out_empty[0] <= in_error[0].DB_MAX_OUTPUT_PORT_TYPE +out_error[0] <= in_error[0].DB_MAX_OUTPUT_PORT_TYPE +out_channel[0] <= in_channel[0].DB_MAX_OUTPUT_PORT_TYPE +out_ready => internal_out_ready.IN1 +csr_address[0] => ~NO_FANOUT~ +csr_address[1] => ~NO_FANOUT~ +csr_write => ~NO_FANOUT~ +csr_read => csr_readdata[31]~reg0.ENA +csr_read => csr_readdata[30]~reg0.ENA +csr_read => csr_readdata[29]~reg0.ENA +csr_read => csr_readdata[28]~reg0.ENA +csr_read => csr_readdata[27]~reg0.ENA +csr_read => csr_readdata[26]~reg0.ENA +csr_read => csr_readdata[25]~reg0.ENA +csr_read => csr_readdata[24]~reg0.ENA +csr_read => csr_readdata[23]~reg0.ENA +csr_read => csr_readdata[22]~reg0.ENA +csr_read => csr_readdata[21]~reg0.ENA +csr_read => csr_readdata[20]~reg0.ENA +csr_read => csr_readdata[19]~reg0.ENA +csr_read => csr_readdata[18]~reg0.ENA +csr_read => csr_readdata[17]~reg0.ENA +csr_read => csr_readdata[16]~reg0.ENA +csr_read => csr_readdata[15]~reg0.ENA +csr_read => csr_readdata[14]~reg0.ENA +csr_read => csr_readdata[13]~reg0.ENA +csr_read => csr_readdata[12]~reg0.ENA +csr_read => csr_readdata[11]~reg0.ENA +csr_read => csr_readdata[10]~reg0.ENA +csr_read => csr_readdata[9]~reg0.ENA +csr_read => csr_readdata[8]~reg0.ENA +csr_read => csr_readdata[7]~reg0.ENA +csr_read => csr_readdata[6]~reg0.ENA +csr_read => csr_readdata[5]~reg0.ENA +csr_read => csr_readdata[4]~reg0.ENA +csr_read => csr_readdata[3]~reg0.ENA +csr_read => csr_readdata[2]~reg0.ENA +csr_read => csr_readdata[1]~reg0.ENA +csr_read => csr_readdata[0]~reg0.ENA +csr_writedata[0] => ~NO_FANOUT~ +csr_writedata[1] => ~NO_FANOUT~ +csr_writedata[2] => ~NO_FANOUT~ +csr_writedata[3] => ~NO_FANOUT~ +csr_writedata[4] => ~NO_FANOUT~ +csr_writedata[5] => ~NO_FANOUT~ +csr_writedata[6] => ~NO_FANOUT~ +csr_writedata[7] => ~NO_FANOUT~ +csr_writedata[8] => ~NO_FANOUT~ +csr_writedata[9] => ~NO_FANOUT~ +csr_writedata[10] => ~NO_FANOUT~ +csr_writedata[11] => ~NO_FANOUT~ +csr_writedata[12] => ~NO_FANOUT~ +csr_writedata[13] => ~NO_FANOUT~ +csr_writedata[14] => ~NO_FANOUT~ +csr_writedata[15] => ~NO_FANOUT~ +csr_writedata[16] => ~NO_FANOUT~ +csr_writedata[17] => ~NO_FANOUT~ +csr_writedata[18] => ~NO_FANOUT~ +csr_writedata[19] => ~NO_FANOUT~ +csr_writedata[20] => ~NO_FANOUT~ +csr_writedata[21] => ~NO_FANOUT~ +csr_writedata[22] => ~NO_FANOUT~ +csr_writedata[23] => ~NO_FANOUT~ +csr_writedata[24] => ~NO_FANOUT~ +csr_writedata[25] => ~NO_FANOUT~ +csr_writedata[26] => ~NO_FANOUT~ +csr_writedata[27] => ~NO_FANOUT~ +csr_writedata[28] => ~NO_FANOUT~ +csr_writedata[29] => ~NO_FANOUT~ +csr_writedata[30] => ~NO_FANOUT~ +csr_writedata[31] => ~NO_FANOUT~ +csr_readdata[0] <= csr_readdata[0]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[1] <= csr_readdata[1]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[2] <= csr_readdata[2]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[3] <= csr_readdata[3]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[4] <= csr_readdata[4]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[5] <= csr_readdata[5]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[6] <= csr_readdata[6]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[7] <= csr_readdata[7]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[8] <= csr_readdata[8]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[9] <= csr_readdata[9]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[10] <= csr_readdata[10]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[11] <= csr_readdata[11]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[12] <= csr_readdata[12]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[13] <= csr_readdata[13]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[14] <= csr_readdata[14]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[15] <= csr_readdata[15]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[16] <= csr_readdata[16]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[17] <= csr_readdata[17]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[18] <= csr_readdata[18]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[19] <= csr_readdata[19]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[20] <= csr_readdata[20]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[21] <= csr_readdata[21]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[22] <= csr_readdata[22]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[23] <= csr_readdata[23]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[24] <= csr_readdata[24]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[25] <= csr_readdata[25]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[26] <= csr_readdata[26]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[27] <= csr_readdata[27]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[28] <= csr_readdata[28]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[29] <= csr_readdata[29]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[30] <= csr_readdata[30]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[31] <= csr_readdata[31]~reg0.DB_MAX_OUTPUT_PORT_TYPE +almost_full_data <= +almost_empty_data <= + + +|lights|nios_system:NiosII|altera_merlin_slave_agent:push_switches_s1_translator_avalon_universal_slave_0_agent +clk => clk.IN1 +reset => reset.IN1 +m0_address[0] <= +m0_address[1] <= +m0_address[2] <= cp_data[38].DB_MAX_OUTPUT_PORT_TYPE +m0_address[3] <= cp_data[39].DB_MAX_OUTPUT_PORT_TYPE +m0_address[4] <= cp_data[40].DB_MAX_OUTPUT_PORT_TYPE +m0_address[5] <= cp_data[41].DB_MAX_OUTPUT_PORT_TYPE +m0_address[6] <= cp_data[42].DB_MAX_OUTPUT_PORT_TYPE +m0_address[7] <= cp_data[43].DB_MAX_OUTPUT_PORT_TYPE +m0_address[8] <= cp_data[44].DB_MAX_OUTPUT_PORT_TYPE +m0_address[9] <= cp_data[45].DB_MAX_OUTPUT_PORT_TYPE +m0_address[10] <= cp_data[46].DB_MAX_OUTPUT_PORT_TYPE +m0_address[11] <= cp_data[47].DB_MAX_OUTPUT_PORT_TYPE +m0_address[12] <= cp_data[48].DB_MAX_OUTPUT_PORT_TYPE +m0_address[13] <= cp_data[49].DB_MAX_OUTPUT_PORT_TYPE +m0_address[14] <= cp_data[50].DB_MAX_OUTPUT_PORT_TYPE +m0_address[15] <= cp_data[51].DB_MAX_OUTPUT_PORT_TYPE +m0_address[16] <= cp_data[52].DB_MAX_OUTPUT_PORT_TYPE +m0_address[17] <= cp_data[53].DB_MAX_OUTPUT_PORT_TYPE +m0_address[18] <= cp_data[54].DB_MAX_OUTPUT_PORT_TYPE +m0_burstcount[0] <= m0_burstcount.DB_MAX_OUTPUT_PORT_TYPE +m0_burstcount[1] <= m0_burstcount.DB_MAX_OUTPUT_PORT_TYPE +m0_burstcount[2] <= m0_burstcount.DB_MAX_OUTPUT_PORT_TYPE +m0_byteenable[0] <= cp_data[32].DB_MAX_OUTPUT_PORT_TYPE +m0_byteenable[1] <= cp_data[33].DB_MAX_OUTPUT_PORT_TYPE +m0_byteenable[2] <= cp_data[34].DB_MAX_OUTPUT_PORT_TYPE +m0_byteenable[3] <= cp_data[35].DB_MAX_OUTPUT_PORT_TYPE +m0_read <= m0_read.DB_MAX_OUTPUT_PORT_TYPE +m0_readdata[0] => rdata_fifo_src_data[0].DATAIN +m0_readdata[1] => rdata_fifo_src_data[1].DATAIN +m0_readdata[2] => rdata_fifo_src_data[2].DATAIN +m0_readdata[3] => rdata_fifo_src_data[3].DATAIN +m0_readdata[4] => rdata_fifo_src_data[4].DATAIN +m0_readdata[5] => rdata_fifo_src_data[5].DATAIN +m0_readdata[6] => rdata_fifo_src_data[6].DATAIN +m0_readdata[7] => rdata_fifo_src_data[7].DATAIN +m0_readdata[8] => rdata_fifo_src_data[8].DATAIN +m0_readdata[9] => rdata_fifo_src_data[9].DATAIN +m0_readdata[10] => rdata_fifo_src_data[10].DATAIN +m0_readdata[11] => rdata_fifo_src_data[11].DATAIN +m0_readdata[12] => rdata_fifo_src_data[12].DATAIN +m0_readdata[13] => rdata_fifo_src_data[13].DATAIN +m0_readdata[14] => rdata_fifo_src_data[14].DATAIN +m0_readdata[15] => rdata_fifo_src_data[15].DATAIN +m0_readdata[16] => rdata_fifo_src_data[16].DATAIN +m0_readdata[17] => rdata_fifo_src_data[17].DATAIN +m0_readdata[18] => rdata_fifo_src_data[18].DATAIN +m0_readdata[19] => rdata_fifo_src_data[19].DATAIN +m0_readdata[20] => rdata_fifo_src_data[20].DATAIN +m0_readdata[21] => rdata_fifo_src_data[21].DATAIN +m0_readdata[22] => rdata_fifo_src_data[22].DATAIN +m0_readdata[23] => rdata_fifo_src_data[23].DATAIN +m0_readdata[24] => rdata_fifo_src_data[24].DATAIN +m0_readdata[25] => rdata_fifo_src_data[25].DATAIN +m0_readdata[26] => rdata_fifo_src_data[26].DATAIN +m0_readdata[27] => rdata_fifo_src_data[27].DATAIN +m0_readdata[28] => rdata_fifo_src_data[28].DATAIN +m0_readdata[29] => rdata_fifo_src_data[29].DATAIN +m0_readdata[30] => rdata_fifo_src_data[30].DATAIN +m0_readdata[31] => rdata_fifo_src_data[31].DATAIN +m0_waitrequest => cp_ready.IN0 +m0_write <= m0_write.DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[0] <= cp_data[0].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[1] <= cp_data[1].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[2] <= cp_data[2].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[3] <= cp_data[3].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[4] <= cp_data[4].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[5] <= cp_data[5].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[6] <= cp_data[6].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[7] <= cp_data[7].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[8] <= cp_data[8].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[9] <= cp_data[9].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[10] <= cp_data[10].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[11] <= cp_data[11].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[12] <= cp_data[12].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[13] <= cp_data[13].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[14] <= cp_data[14].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[15] <= cp_data[15].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[16] <= cp_data[16].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[17] <= cp_data[17].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[18] <= cp_data[18].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[19] <= cp_data[19].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[20] <= cp_data[20].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[21] <= cp_data[21].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[22] <= cp_data[22].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[23] <= cp_data[23].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[24] <= cp_data[24].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[25] <= cp_data[25].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[26] <= cp_data[26].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[27] <= cp_data[27].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[28] <= cp_data[28].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[29] <= cp_data[29].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[30] <= cp_data[30].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[31] <= cp_data[31].DB_MAX_OUTPUT_PORT_TYPE +m0_readdatavalid => rdata_fifo_src_valid.IN0 +m0_debugaccess <= cp_data[87].DB_MAX_OUTPUT_PORT_TYPE +m0_lock <= m0_lock.DB_MAX_OUTPUT_PORT_TYPE +m0_response[0] => rdata_fifo_src_data[32].DATAIN +m0_response[1] => rdata_fifo_src_data[33].DATAIN +m0_writeresponserequest <= m0_writeresponserequest.DB_MAX_OUTPUT_PORT_TYPE +m0_writeresponsevalid => rdata_fifo_src_valid.IN1 +rf_source_data[0] <= +rf_source_data[1] <= +rf_source_data[2] <= +rf_source_data[3] <= +rf_source_data[4] <= +rf_source_data[5] <= +rf_source_data[6] <= +rf_source_data[7] <= +rf_source_data[8] <= +rf_source_data[9] <= +rf_source_data[10] <= +rf_source_data[11] <= +rf_source_data[12] <= +rf_source_data[13] <= +rf_source_data[14] <= +rf_source_data[15] <= +rf_source_data[16] <= +rf_source_data[17] <= +rf_source_data[18] <= +rf_source_data[19] <= +rf_source_data[20] <= +rf_source_data[21] <= +rf_source_data[22] <= +rf_source_data[23] <= +rf_source_data[24] <= +rf_source_data[25] <= +rf_source_data[26] <= +rf_source_data[27] <= +rf_source_data[28] <= +rf_source_data[29] <= +rf_source_data[30] <= +rf_source_data[31] <= +rf_source_data[32] <= cp_data[32].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[33] <= cp_data[33].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[34] <= cp_data[34].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[35] <= cp_data[35].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[36] <= cp_data[36].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[37] <= cp_data[37].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[38] <= cp_data[38].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[39] <= cp_data[39].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[40] <= cp_data[40].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[41] <= cp_data[41].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[42] <= cp_data[42].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[43] <= cp_data[43].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[44] <= cp_data[44].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[45] <= cp_data[45].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[46] <= cp_data[46].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[47] <= cp_data[47].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[48] <= cp_data[48].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[49] <= cp_data[49].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[50] <= cp_data[50].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[51] <= cp_data[51].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[52] <= cp_data[52].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[53] <= cp_data[53].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[54] <= cp_data[54].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[55] <= cp_data[55].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[56] <= cp_data[56].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[57] <= cp_data[57].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[58] <= cp_data[58].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[59] <= cp_data[59].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[60] <= cp_data[60].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[61] <= cp_data[61].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[62] <= cp_data[62].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[63] <= cp_data[63].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[64] <= cp_data[64].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[65] <= cp_data[65].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[66] <= cp_data[66].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[67] <= cp_data[67].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[68] <= cp_data[68].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[69] <= cp_data[69].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[70] <= cp_data[70].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[71] <= cp_data[71].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[72] <= cp_data[72].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[73] <= cp_data[73].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[74] <= cp_data[74].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[75] <= cp_data[75].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[76] <= cp_data[76].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[77] <= cp_data[77].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[78] <= cp_data[78].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[79] <= cp_data[79].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[80] <= cp_data[80].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[81] <= cp_data[81].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[82] <= cp_data[82].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[83] <= cp_data[83].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[84] <= cp_data[84].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[85] <= cp_data[85].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[86] <= cp_data[86].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[87] <= cp_data[87].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[88] <= +rf_source_data[89] <= +rf_source_data[90] <= cp_data[90].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[91] <= cp_data[91].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[92] <= cp_data[92].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[93] <= cp_data[93].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[94] <= cp_data[94].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[95] <= cp_data[95].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[96] <= nonposted_write_endofpacket.DB_MAX_OUTPUT_PORT_TYPE +rf_source_valid <= rf_source_valid.DB_MAX_OUTPUT_PORT_TYPE +rf_source_startofpacket <= cp_startofpacket.DB_MAX_OUTPUT_PORT_TYPE +rf_source_endofpacket <= cp_endofpacket.DB_MAX_OUTPUT_PORT_TYPE +rf_source_ready => cp_ready.IN1 +rf_source_ready => m0_write.IN1 +rf_source_ready => m0_lock.IN1 +rf_source_ready => rf_source_valid.IN1 +rf_source_ready => m0_read.IN1 +rf_sink_data[0] => ~NO_FANOUT~ +rf_sink_data[1] => ~NO_FANOUT~ +rf_sink_data[2] => ~NO_FANOUT~ +rf_sink_data[3] => ~NO_FANOUT~ +rf_sink_data[4] => ~NO_FANOUT~ +rf_sink_data[5] => ~NO_FANOUT~ +rf_sink_data[6] => ~NO_FANOUT~ +rf_sink_data[7] => ~NO_FANOUT~ +rf_sink_data[8] => ~NO_FANOUT~ +rf_sink_data[9] => ~NO_FANOUT~ +rf_sink_data[10] => ~NO_FANOUT~ +rf_sink_data[11] => ~NO_FANOUT~ +rf_sink_data[12] => ~NO_FANOUT~ +rf_sink_data[13] => ~NO_FANOUT~ +rf_sink_data[14] => ~NO_FANOUT~ +rf_sink_data[15] => ~NO_FANOUT~ +rf_sink_data[16] => ~NO_FANOUT~ +rf_sink_data[17] => ~NO_FANOUT~ +rf_sink_data[18] => ~NO_FANOUT~ +rf_sink_data[19] => ~NO_FANOUT~ +rf_sink_data[20] => ~NO_FANOUT~ +rf_sink_data[21] => ~NO_FANOUT~ +rf_sink_data[22] => ~NO_FANOUT~ +rf_sink_data[23] => ~NO_FANOUT~ +rf_sink_data[24] => ~NO_FANOUT~ +rf_sink_data[25] => ~NO_FANOUT~ +rf_sink_data[26] => ~NO_FANOUT~ +rf_sink_data[27] => ~NO_FANOUT~ +rf_sink_data[28] => ~NO_FANOUT~ +rf_sink_data[29] => ~NO_FANOUT~ +rf_sink_data[30] => ~NO_FANOUT~ +rf_sink_data[31] => ~NO_FANOUT~ +rf_sink_data[32] => rp_data[32].DATAIN +rf_sink_data[33] => rp_data[33].DATAIN +rf_sink_data[34] => rp_data[34].DATAIN +rf_sink_data[35] => rp_data[35].DATAIN +rf_sink_data[36] => rf_sink_addr[0].IN1 +rf_sink_data[37] => rf_sink_addr[1].IN1 +rf_sink_data[38] => rf_sink_addr[2].IN1 +rf_sink_data[39] => rf_sink_addr[3].IN1 +rf_sink_data[40] => rf_sink_addr[4].IN1 +rf_sink_data[41] => rf_sink_addr[5].IN1 +rf_sink_data[42] => rf_sink_addr[6].IN1 +rf_sink_data[43] => rf_sink_addr[7].IN1 +rf_sink_data[44] => rf_sink_addr[8].IN1 +rf_sink_data[45] => rf_sink_addr[9].IN1 +rf_sink_data[46] => rf_sink_addr[10].IN1 +rf_sink_data[47] => rf_sink_addr[11].IN1 +rf_sink_data[48] => rf_sink_addr[12].IN1 +rf_sink_data[49] => rf_sink_addr[13].IN1 +rf_sink_data[50] => rf_sink_addr[14].IN1 +rf_sink_data[51] => rf_sink_addr[15].IN1 +rf_sink_data[52] => rf_sink_addr[16].IN1 +rf_sink_data[53] => rf_sink_addr[17].IN1 +rf_sink_data[54] => rf_sink_addr[18].IN1 +rf_sink_data[55] => rf_sink_compressed.IN1 +rf_sink_data[56] => rp_data[56].DATAIN +rf_sink_data[57] => comb.OUTPUTSELECT +rf_sink_data[57] => rp_data[57].DATAIN +rf_sink_data[58] => rp_data.IN0 +rf_sink_data[59] => rp_data[59].DATAIN +rf_sink_data[60] => rp_data[60].DATAIN +rf_sink_data[61] => rf_sink_byte_cnt[0].IN1 +rf_sink_data[62] => rf_sink_byte_cnt[1].IN1 +rf_sink_data[63] => rf_sink_byte_cnt[2].IN1 +rf_sink_data[64] => rf_sink_burstwrap[0].IN1 +rf_sink_data[65] => rf_sink_burstwrap[1].IN1 +rf_sink_data[66] => rf_sink_burstwrap[2].IN1 +rf_sink_data[67] => rf_sink_burstsize[0].IN1 +rf_sink_data[68] => rf_sink_burstsize[1].IN1 +rf_sink_data[69] => rf_sink_burstsize[2].IN1 +rf_sink_data[70] => rp_data[70].DATAIN +rf_sink_data[71] => rp_data[71].DATAIN +rf_sink_data[72] => rp_data[72].DATAIN +rf_sink_data[73] => rp_data[73].DATAIN +rf_sink_data[74] => rp_data[74].DATAIN +rf_sink_data[75] => rp_data[75].DATAIN +rf_sink_data[76] => rp_data[81].DATAIN +rf_sink_data[77] => rp_data[82].DATAIN +rf_sink_data[78] => rp_data[83].DATAIN +rf_sink_data[79] => rp_data[84].DATAIN +rf_sink_data[80] => rp_data[85].DATAIN +rf_sink_data[81] => rp_data[76].DATAIN +rf_sink_data[82] => rp_data[77].DATAIN +rf_sink_data[83] => rp_data[78].DATAIN +rf_sink_data[84] => rp_data[79].DATAIN +rf_sink_data[85] => rp_data[80].DATAIN +rf_sink_data[86] => rp_data[86].DATAIN +rf_sink_data[87] => rp_data[87].DATAIN +rf_sink_data[88] => rp_data[88].DATAIN +rf_sink_data[89] => rp_data[89].DATAIN +rf_sink_data[90] => rp_data[90].DATAIN +rf_sink_data[91] => rp_data[91].DATAIN +rf_sink_data[92] => rp_data[92].DATAIN +rf_sink_data[93] => rp_data[93].DATAIN +rf_sink_data[94] => ~NO_FANOUT~ +rf_sink_data[95] => ~NO_FANOUT~ +rf_sink_data[96] => rdata_fifo_sink_ready.IN0 +rf_sink_data[96] => comb.IN0 +rf_sink_valid => rdata_fifo_sink_ready.IN1 +rf_sink_valid => comb.IN1 +rf_sink_startofpacket => comb.DATAA +rf_sink_endofpacket => rf_sink_endofpacket.IN1 +rf_sink_ready <= altera_merlin_burst_uncompressor:uncompressor.sink_ready +rdata_fifo_src_data[0] <= m0_readdata[0].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[1] <= m0_readdata[1].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[2] <= m0_readdata[2].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[3] <= m0_readdata[3].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[4] <= m0_readdata[4].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[5] <= m0_readdata[5].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[6] <= m0_readdata[6].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[7] <= m0_readdata[7].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[8] <= m0_readdata[8].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[9] <= m0_readdata[9].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[10] <= m0_readdata[10].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[11] <= m0_readdata[11].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[12] <= m0_readdata[12].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[13] <= m0_readdata[13].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[14] <= m0_readdata[14].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[15] <= m0_readdata[15].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[16] <= m0_readdata[16].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[17] <= m0_readdata[17].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[18] <= m0_readdata[18].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[19] <= m0_readdata[19].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[20] <= m0_readdata[20].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[21] <= m0_readdata[21].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[22] <= m0_readdata[22].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[23] <= m0_readdata[23].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[24] <= m0_readdata[24].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[25] <= m0_readdata[25].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[26] <= m0_readdata[26].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[27] <= m0_readdata[27].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[28] <= m0_readdata[28].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[29] <= m0_readdata[29].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[30] <= m0_readdata[30].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[31] <= m0_readdata[31].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[32] <= m0_response[0].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[33] <= m0_response[1].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_valid <= rdata_fifo_src_valid.DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_ready => ~NO_FANOUT~ +rdata_fifo_sink_data[0] => rp_data[0].DATAIN +rdata_fifo_sink_data[1] => rp_data[1].DATAIN +rdata_fifo_sink_data[2] => rp_data[2].DATAIN +rdata_fifo_sink_data[3] => rp_data[3].DATAIN +rdata_fifo_sink_data[4] => rp_data[4].DATAIN +rdata_fifo_sink_data[5] => rp_data[5].DATAIN +rdata_fifo_sink_data[6] => rp_data[6].DATAIN +rdata_fifo_sink_data[7] => rp_data[7].DATAIN +rdata_fifo_sink_data[8] => rp_data[8].DATAIN +rdata_fifo_sink_data[9] => rp_data[9].DATAIN +rdata_fifo_sink_data[10] => rp_data[10].DATAIN +rdata_fifo_sink_data[11] => rp_data[11].DATAIN +rdata_fifo_sink_data[12] => rp_data[12].DATAIN +rdata_fifo_sink_data[13] => rp_data[13].DATAIN +rdata_fifo_sink_data[14] => rp_data[14].DATAIN +rdata_fifo_sink_data[15] => rp_data[15].DATAIN +rdata_fifo_sink_data[16] => rp_data[16].DATAIN +rdata_fifo_sink_data[17] => rp_data[17].DATAIN +rdata_fifo_sink_data[18] => rp_data[18].DATAIN +rdata_fifo_sink_data[19] => rp_data[19].DATAIN +rdata_fifo_sink_data[20] => rp_data[20].DATAIN +rdata_fifo_sink_data[21] => rp_data[21].DATAIN +rdata_fifo_sink_data[22] => rp_data[22].DATAIN +rdata_fifo_sink_data[23] => rp_data[23].DATAIN +rdata_fifo_sink_data[24] => rp_data[24].DATAIN +rdata_fifo_sink_data[25] => rp_data[25].DATAIN +rdata_fifo_sink_data[26] => rp_data[26].DATAIN +rdata_fifo_sink_data[27] => rp_data[27].DATAIN +rdata_fifo_sink_data[28] => rp_data[28].DATAIN +rdata_fifo_sink_data[29] => rp_data[29].DATAIN +rdata_fifo_sink_data[30] => rp_data[30].DATAIN +rdata_fifo_sink_data[31] => rp_data[31].DATAIN +rdata_fifo_sink_data[32] => rp_data[94].DATAIN +rdata_fifo_sink_data[33] => rp_data[95].DATAIN +rdata_fifo_sink_valid => rp_valid.IN1 +rdata_fifo_sink_valid => rdata_fifo_sink_ready.IN0 +rdata_fifo_sink_valid => comb.IN1 +rdata_fifo_sink_ready <= rdata_fifo_sink_ready.DB_MAX_OUTPUT_PORT_TYPE +cp_ready <= cp_ready.DB_MAX_OUTPUT_PORT_TYPE +cp_valid => local_lock.IN0 +cp_valid => local_write.IN0 +cp_valid => local_read.IN0 +cp_valid => local_compressed_read.IN0 +cp_data[0] => m0_writedata[0].DATAIN +cp_data[1] => m0_writedata[1].DATAIN +cp_data[2] => m0_writedata[2].DATAIN +cp_data[3] => m0_writedata[3].DATAIN +cp_data[4] => m0_writedata[4].DATAIN +cp_data[5] => m0_writedata[5].DATAIN +cp_data[6] => m0_writedata[6].DATAIN +cp_data[7] => m0_writedata[7].DATAIN +cp_data[8] => m0_writedata[8].DATAIN +cp_data[9] => m0_writedata[9].DATAIN +cp_data[10] => m0_writedata[10].DATAIN +cp_data[11] => m0_writedata[11].DATAIN +cp_data[12] => m0_writedata[12].DATAIN +cp_data[13] => m0_writedata[13].DATAIN +cp_data[14] => m0_writedata[14].DATAIN +cp_data[15] => m0_writedata[15].DATAIN +cp_data[16] => m0_writedata[16].DATAIN +cp_data[17] => m0_writedata[17].DATAIN +cp_data[18] => m0_writedata[18].DATAIN +cp_data[19] => m0_writedata[19].DATAIN +cp_data[20] => m0_writedata[20].DATAIN +cp_data[21] => m0_writedata[21].DATAIN +cp_data[22] => m0_writedata[22].DATAIN +cp_data[23] => m0_writedata[23].DATAIN +cp_data[24] => m0_writedata[24].DATAIN +cp_data[25] => m0_writedata[25].DATAIN +cp_data[26] => m0_writedata[26].DATAIN +cp_data[27] => m0_writedata[27].DATAIN +cp_data[28] => m0_writedata[28].DATAIN +cp_data[29] => m0_writedata[29].DATAIN +cp_data[30] => m0_writedata[30].DATAIN +cp_data[31] => m0_writedata[31].DATAIN +cp_data[32] => rf_source_data[32].DATAIN +cp_data[32] => m0_byteenable[0].DATAIN +cp_data[33] => rf_source_data[33].DATAIN +cp_data[33] => m0_byteenable[1].DATAIN +cp_data[34] => rf_source_data[34].DATAIN +cp_data[34] => m0_byteenable[2].DATAIN +cp_data[35] => rf_source_data[35].DATAIN +cp_data[35] => m0_byteenable[3].DATAIN +cp_data[36] => rf_source_data[36].DATAIN +cp_data[37] => rf_source_data[37].DATAIN +cp_data[38] => rf_source_data[38].DATAIN +cp_data[38] => m0_address[2].DATAIN +cp_data[39] => rf_source_data[39].DATAIN +cp_data[39] => m0_address[3].DATAIN +cp_data[40] => rf_source_data[40].DATAIN +cp_data[40] => m0_address[4].DATAIN +cp_data[41] => rf_source_data[41].DATAIN +cp_data[41] => m0_address[5].DATAIN +cp_data[42] => rf_source_data[42].DATAIN +cp_data[42] => m0_address[6].DATAIN +cp_data[43] => rf_source_data[43].DATAIN +cp_data[43] => m0_address[7].DATAIN +cp_data[44] => rf_source_data[44].DATAIN +cp_data[44] => m0_address[8].DATAIN +cp_data[45] => rf_source_data[45].DATAIN +cp_data[45] => m0_address[9].DATAIN +cp_data[46] => rf_source_data[46].DATAIN +cp_data[46] => m0_address[10].DATAIN +cp_data[47] => rf_source_data[47].DATAIN +cp_data[47] => m0_address[11].DATAIN +cp_data[48] => rf_source_data[48].DATAIN +cp_data[48] => m0_address[12].DATAIN +cp_data[49] => rf_source_data[49].DATAIN +cp_data[49] => m0_address[13].DATAIN +cp_data[50] => rf_source_data[50].DATAIN +cp_data[50] => m0_address[14].DATAIN +cp_data[51] => rf_source_data[51].DATAIN +cp_data[51] => m0_address[15].DATAIN +cp_data[52] => rf_source_data[52].DATAIN +cp_data[52] => m0_address[16].DATAIN +cp_data[53] => rf_source_data[53].DATAIN +cp_data[53] => m0_address[17].DATAIN +cp_data[54] => rf_source_data[54].DATAIN +cp_data[54] => m0_address[18].DATAIN +cp_data[55] => local_compressed_read.IN1 +cp_data[55] => rf_source_data[55].DATAIN +cp_data[56] => rf_source_data[56].DATAIN +cp_data[56] => m0_writeresponserequest.IN1 +cp_data[56] => comb.IN1 +cp_data[57] => local_write.IN1 +cp_data[57] => rf_source_data[57].DATAIN +cp_data[58] => local_read.IN1 +cp_data[58] => rf_source_data[58].DATAIN +cp_data[59] => local_lock.IN1 +cp_data[59] => rf_source_data[59].DATAIN +cp_data[60] => rf_source_data[60].DATAIN +cp_data[61] => m0_burstcount.DATAA +cp_data[61] => rf_source_data[61].DATAIN +cp_data[62] => m0_burstcount.DATAA +cp_data[62] => rf_source_data[62].DATAIN +cp_data[63] => m0_burstcount.DATAA +cp_data[63] => rf_source_data[63].DATAIN +cp_data[64] => rf_source_data[64].DATAIN +cp_data[65] => rf_source_data[65].DATAIN +cp_data[66] => rf_source_data[66].DATAIN +cp_data[67] => rf_source_data[67].DATAIN +cp_data[68] => rf_source_data[68].DATAIN +cp_data[69] => rf_source_data[69].DATAIN +cp_data[70] => rf_source_data[70].DATAIN +cp_data[71] => rf_source_data[71].DATAIN +cp_data[72] => rf_source_data[72].DATAIN +cp_data[73] => rf_source_data[73].DATAIN +cp_data[74] => rf_source_data[74].DATAIN +cp_data[75] => rf_source_data[75].DATAIN +cp_data[76] => rf_source_data[76].DATAIN +cp_data[77] => rf_source_data[77].DATAIN +cp_data[78] => rf_source_data[78].DATAIN +cp_data[79] => rf_source_data[79].DATAIN +cp_data[80] => rf_source_data[80].DATAIN +cp_data[81] => rf_source_data[81].DATAIN +cp_data[82] => rf_source_data[82].DATAIN +cp_data[83] => rf_source_data[83].DATAIN +cp_data[84] => rf_source_data[84].DATAIN +cp_data[85] => rf_source_data[85].DATAIN +cp_data[86] => rf_source_data[86].DATAIN +cp_data[87] => rf_source_data[87].DATAIN +cp_data[87] => m0_debugaccess.DATAIN +cp_data[88] => ~NO_FANOUT~ +cp_data[89] => ~NO_FANOUT~ +cp_data[90] => rf_source_data[90].DATAIN +cp_data[91] => rf_source_data[91].DATAIN +cp_data[92] => rf_source_data[92].DATAIN +cp_data[93] => rf_source_data[93].DATAIN +cp_data[94] => rf_source_data[94].DATAIN +cp_data[95] => rf_source_data[95].DATAIN +cp_channel[0] => ~NO_FANOUT~ +cp_channel[1] => ~NO_FANOUT~ +cp_channel[2] => ~NO_FANOUT~ +cp_channel[3] => ~NO_FANOUT~ +cp_channel[4] => ~NO_FANOUT~ +cp_channel[5] => ~NO_FANOUT~ +cp_channel[6] => ~NO_FANOUT~ +cp_channel[7] => ~NO_FANOUT~ +cp_channel[8] => ~NO_FANOUT~ +cp_channel[9] => ~NO_FANOUT~ +cp_channel[10] => ~NO_FANOUT~ +cp_channel[11] => ~NO_FANOUT~ +cp_channel[12] => ~NO_FANOUT~ +cp_channel[13] => ~NO_FANOUT~ +cp_channel[14] => ~NO_FANOUT~ +cp_channel[15] => ~NO_FANOUT~ +cp_channel[16] => ~NO_FANOUT~ +cp_channel[17] => ~NO_FANOUT~ +cp_startofpacket => rf_source_startofpacket.DATAIN +cp_endofpacket => nonposted_write_endofpacket.IN1 +cp_endofpacket => rf_source_endofpacket.DATAIN +rp_ready => rp_ready.IN1 +rp_valid <= rp_valid.DB_MAX_OUTPUT_PORT_TYPE +rp_data[0] <= rdata_fifo_sink_data[0].DB_MAX_OUTPUT_PORT_TYPE +rp_data[1] <= rdata_fifo_sink_data[1].DB_MAX_OUTPUT_PORT_TYPE +rp_data[2] <= rdata_fifo_sink_data[2].DB_MAX_OUTPUT_PORT_TYPE +rp_data[3] <= rdata_fifo_sink_data[3].DB_MAX_OUTPUT_PORT_TYPE +rp_data[4] <= rdata_fifo_sink_data[4].DB_MAX_OUTPUT_PORT_TYPE +rp_data[5] <= rdata_fifo_sink_data[5].DB_MAX_OUTPUT_PORT_TYPE +rp_data[6] <= rdata_fifo_sink_data[6].DB_MAX_OUTPUT_PORT_TYPE +rp_data[7] <= rdata_fifo_sink_data[7].DB_MAX_OUTPUT_PORT_TYPE +rp_data[8] <= rdata_fifo_sink_data[8].DB_MAX_OUTPUT_PORT_TYPE +rp_data[9] <= rdata_fifo_sink_data[9].DB_MAX_OUTPUT_PORT_TYPE +rp_data[10] <= rdata_fifo_sink_data[10].DB_MAX_OUTPUT_PORT_TYPE +rp_data[11] <= rdata_fifo_sink_data[11].DB_MAX_OUTPUT_PORT_TYPE +rp_data[12] <= rdata_fifo_sink_data[12].DB_MAX_OUTPUT_PORT_TYPE +rp_data[13] <= rdata_fifo_sink_data[13].DB_MAX_OUTPUT_PORT_TYPE +rp_data[14] <= rdata_fifo_sink_data[14].DB_MAX_OUTPUT_PORT_TYPE +rp_data[15] <= rdata_fifo_sink_data[15].DB_MAX_OUTPUT_PORT_TYPE +rp_data[16] <= rdata_fifo_sink_data[16].DB_MAX_OUTPUT_PORT_TYPE +rp_data[17] <= rdata_fifo_sink_data[17].DB_MAX_OUTPUT_PORT_TYPE +rp_data[18] <= rdata_fifo_sink_data[18].DB_MAX_OUTPUT_PORT_TYPE +rp_data[19] <= rdata_fifo_sink_data[19].DB_MAX_OUTPUT_PORT_TYPE +rp_data[20] <= rdata_fifo_sink_data[20].DB_MAX_OUTPUT_PORT_TYPE +rp_data[21] <= rdata_fifo_sink_data[21].DB_MAX_OUTPUT_PORT_TYPE +rp_data[22] <= rdata_fifo_sink_data[22].DB_MAX_OUTPUT_PORT_TYPE +rp_data[23] <= rdata_fifo_sink_data[23].DB_MAX_OUTPUT_PORT_TYPE +rp_data[24] <= rdata_fifo_sink_data[24].DB_MAX_OUTPUT_PORT_TYPE +rp_data[25] <= rdata_fifo_sink_data[25].DB_MAX_OUTPUT_PORT_TYPE +rp_data[26] <= rdata_fifo_sink_data[26].DB_MAX_OUTPUT_PORT_TYPE +rp_data[27] <= rdata_fifo_sink_data[27].DB_MAX_OUTPUT_PORT_TYPE +rp_data[28] <= rdata_fifo_sink_data[28].DB_MAX_OUTPUT_PORT_TYPE +rp_data[29] <= rdata_fifo_sink_data[29].DB_MAX_OUTPUT_PORT_TYPE +rp_data[30] <= rdata_fifo_sink_data[30].DB_MAX_OUTPUT_PORT_TYPE +rp_data[31] <= rdata_fifo_sink_data[31].DB_MAX_OUTPUT_PORT_TYPE +rp_data[32] <= rf_sink_data[32].DB_MAX_OUTPUT_PORT_TYPE +rp_data[33] <= rf_sink_data[33].DB_MAX_OUTPUT_PORT_TYPE +rp_data[34] <= rf_sink_data[34].DB_MAX_OUTPUT_PORT_TYPE +rp_data[35] <= rf_sink_data[35].DB_MAX_OUTPUT_PORT_TYPE +rp_data[36] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[37] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[38] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[39] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[40] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[41] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[42] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[43] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[44] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[45] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[46] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[47] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[48] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[49] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[50] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[51] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[52] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[53] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[54] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[55] <= altera_merlin_burst_uncompressor:uncompressor.source_is_compressed +rp_data[56] <= rf_sink_data[56].DB_MAX_OUTPUT_PORT_TYPE +rp_data[57] <= rf_sink_data[57].DB_MAX_OUTPUT_PORT_TYPE +rp_data[58] <= rp_data.DB_MAX_OUTPUT_PORT_TYPE +rp_data[59] <= rf_sink_data[59].DB_MAX_OUTPUT_PORT_TYPE +rp_data[60] <= rf_sink_data[60].DB_MAX_OUTPUT_PORT_TYPE +rp_data[61] <= altera_merlin_burst_uncompressor:uncompressor.source_byte_cnt +rp_data[62] <= altera_merlin_burst_uncompressor:uncompressor.source_byte_cnt +rp_data[63] <= altera_merlin_burst_uncompressor:uncompressor.source_byte_cnt +rp_data[64] <= altera_merlin_burst_uncompressor:uncompressor.source_burstwrap +rp_data[65] <= altera_merlin_burst_uncompressor:uncompressor.source_burstwrap +rp_data[66] <= altera_merlin_burst_uncompressor:uncompressor.source_burstwrap +rp_data[67] <= altera_merlin_burst_uncompressor:uncompressor.source_burstsize +rp_data[68] <= altera_merlin_burst_uncompressor:uncompressor.source_burstsize +rp_data[69] <= altera_merlin_burst_uncompressor:uncompressor.source_burstsize +rp_data[70] <= rf_sink_data[70].DB_MAX_OUTPUT_PORT_TYPE +rp_data[71] <= rf_sink_data[71].DB_MAX_OUTPUT_PORT_TYPE +rp_data[72] <= rf_sink_data[72].DB_MAX_OUTPUT_PORT_TYPE +rp_data[73] <= rf_sink_data[73].DB_MAX_OUTPUT_PORT_TYPE +rp_data[74] <= rf_sink_data[74].DB_MAX_OUTPUT_PORT_TYPE +rp_data[75] <= rf_sink_data[75].DB_MAX_OUTPUT_PORT_TYPE +rp_data[76] <= rf_sink_data[81].DB_MAX_OUTPUT_PORT_TYPE +rp_data[77] <= rf_sink_data[82].DB_MAX_OUTPUT_PORT_TYPE +rp_data[78] <= rf_sink_data[83].DB_MAX_OUTPUT_PORT_TYPE +rp_data[79] <= rf_sink_data[84].DB_MAX_OUTPUT_PORT_TYPE +rp_data[80] <= rf_sink_data[85].DB_MAX_OUTPUT_PORT_TYPE +rp_data[81] <= rf_sink_data[76].DB_MAX_OUTPUT_PORT_TYPE +rp_data[82] <= rf_sink_data[77].DB_MAX_OUTPUT_PORT_TYPE +rp_data[83] <= rf_sink_data[78].DB_MAX_OUTPUT_PORT_TYPE +rp_data[84] <= rf_sink_data[79].DB_MAX_OUTPUT_PORT_TYPE +rp_data[85] <= rf_sink_data[80].DB_MAX_OUTPUT_PORT_TYPE +rp_data[86] <= rf_sink_data[86].DB_MAX_OUTPUT_PORT_TYPE +rp_data[87] <= rf_sink_data[87].DB_MAX_OUTPUT_PORT_TYPE +rp_data[88] <= rf_sink_data[88].DB_MAX_OUTPUT_PORT_TYPE +rp_data[89] <= rf_sink_data[89].DB_MAX_OUTPUT_PORT_TYPE +rp_data[90] <= rf_sink_data[90].DB_MAX_OUTPUT_PORT_TYPE +rp_data[91] <= rf_sink_data[91].DB_MAX_OUTPUT_PORT_TYPE +rp_data[92] <= rf_sink_data[92].DB_MAX_OUTPUT_PORT_TYPE +rp_data[93] <= rf_sink_data[93].DB_MAX_OUTPUT_PORT_TYPE +rp_data[94] <= rdata_fifo_sink_data[32].DB_MAX_OUTPUT_PORT_TYPE +rp_data[95] <= rdata_fifo_sink_data[33].DB_MAX_OUTPUT_PORT_TYPE +rp_startofpacket <= altera_merlin_burst_uncompressor:uncompressor.source_startofpacket +rp_endofpacket <= altera_merlin_burst_uncompressor:uncompressor.source_endofpacket + + +|lights|nios_system:NiosII|altera_merlin_slave_agent:push_switches_s1_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor +clk => burst_uncompress_address_offset[0].CLK +clk => burst_uncompress_address_offset[1].CLK +clk => burst_uncompress_address_offset[2].CLK +clk => burst_uncompress_address_offset[3].CLK +clk => burst_uncompress_address_offset[4].CLK +clk => burst_uncompress_address_offset[5].CLK +clk => burst_uncompress_address_offset[6].CLK +clk => burst_uncompress_address_offset[7].CLK +clk => burst_uncompress_address_offset[8].CLK +clk => burst_uncompress_address_offset[9].CLK +clk => burst_uncompress_address_offset[10].CLK +clk => burst_uncompress_address_offset[11].CLK +clk => burst_uncompress_address_offset[12].CLK +clk => burst_uncompress_address_offset[13].CLK +clk => burst_uncompress_address_offset[14].CLK +clk => burst_uncompress_address_offset[15].CLK +clk => burst_uncompress_address_offset[16].CLK +clk => burst_uncompress_address_offset[17].CLK +clk => burst_uncompress_address_offset[18].CLK +clk => burst_uncompress_address_base[0].CLK +clk => burst_uncompress_address_base[1].CLK +clk => burst_uncompress_address_base[2].CLK +clk => burst_uncompress_address_base[3].CLK +clk => burst_uncompress_address_base[4].CLK +clk => burst_uncompress_address_base[5].CLK +clk => burst_uncompress_address_base[6].CLK +clk => burst_uncompress_address_base[7].CLK +clk => burst_uncompress_address_base[8].CLK +clk => burst_uncompress_address_base[9].CLK +clk => burst_uncompress_address_base[10].CLK +clk => burst_uncompress_address_base[11].CLK +clk => burst_uncompress_address_base[12].CLK +clk => burst_uncompress_address_base[13].CLK +clk => burst_uncompress_address_base[14].CLK +clk => burst_uncompress_address_base[15].CLK +clk => burst_uncompress_address_base[16].CLK +clk => burst_uncompress_address_base[17].CLK +clk => burst_uncompress_address_base[18].CLK +clk => burst_uncompress_byte_counter[0].CLK +clk => burst_uncompress_byte_counter[1].CLK +clk => burst_uncompress_byte_counter[2].CLK +clk => burst_uncompress_busy.CLK +reset => burst_uncompress_address_offset[0].ACLR +reset => burst_uncompress_address_offset[1].ACLR +reset => burst_uncompress_address_offset[2].ACLR +reset => burst_uncompress_address_offset[3].ACLR +reset => burst_uncompress_address_offset[4].ACLR +reset => burst_uncompress_address_offset[5].ACLR +reset => burst_uncompress_address_offset[6].ACLR +reset => burst_uncompress_address_offset[7].ACLR +reset => burst_uncompress_address_offset[8].ACLR +reset => burst_uncompress_address_offset[9].ACLR +reset => burst_uncompress_address_offset[10].ACLR +reset => burst_uncompress_address_offset[11].ACLR +reset => burst_uncompress_address_offset[12].ACLR +reset => burst_uncompress_address_offset[13].ACLR +reset => burst_uncompress_address_offset[14].ACLR +reset => burst_uncompress_address_offset[15].ACLR +reset => burst_uncompress_address_offset[16].ACLR +reset => burst_uncompress_address_offset[17].ACLR +reset => burst_uncompress_address_offset[18].ACLR +reset => burst_uncompress_address_base[0].ACLR +reset => burst_uncompress_address_base[1].ACLR +reset => burst_uncompress_address_base[2].ACLR +reset => burst_uncompress_address_base[3].ACLR +reset => burst_uncompress_address_base[4].ACLR +reset => burst_uncompress_address_base[5].ACLR +reset => burst_uncompress_address_base[6].ACLR +reset => burst_uncompress_address_base[7].ACLR +reset => burst_uncompress_address_base[8].ACLR +reset => burst_uncompress_address_base[9].ACLR +reset => burst_uncompress_address_base[10].ACLR +reset => burst_uncompress_address_base[11].ACLR +reset => burst_uncompress_address_base[12].ACLR +reset => burst_uncompress_address_base[13].ACLR +reset => burst_uncompress_address_base[14].ACLR +reset => burst_uncompress_address_base[15].ACLR +reset => burst_uncompress_address_base[16].ACLR +reset => burst_uncompress_address_base[17].ACLR +reset => burst_uncompress_address_base[18].ACLR +reset => burst_uncompress_byte_counter[0].ACLR +reset => burst_uncompress_byte_counter[1].ACLR +reset => burst_uncompress_byte_counter[2].ACLR +reset => burst_uncompress_busy.ACLR +sink_startofpacket => source_startofpacket.IN1 +sink_endofpacket => source_endofpacket.IN1 +sink_valid => first_packet_beat.IN1 +sink_valid => last_packet_beat.IN1 +sink_valid => last_packet_beat.IN1 +sink_valid => always0.IN1 +sink_valid => sink_ready.IN0 +sink_valid => source_valid.DATAIN +sink_ready <= sink_ready.DB_MAX_OUTPUT_PORT_TYPE +sink_addr[0] => burst_uncompress_address_base.IN0 +sink_addr[0] => comb.DATAB +sink_addr[0] => source_addr.DATAB +sink_addr[1] => burst_uncompress_address_base.IN0 +sink_addr[1] => comb.DATAB +sink_addr[1] => source_addr.DATAB +sink_addr[2] => burst_uncompress_address_base.IN0 +sink_addr[2] => comb.DATAB +sink_addr[2] => source_addr.DATAB +sink_addr[3] => burst_uncompress_address_base.IN0 +sink_addr[3] => comb.DATAB +sink_addr[3] => source_addr.DATAB +sink_addr[4] => burst_uncompress_address_base.IN0 +sink_addr[4] => comb.DATAB +sink_addr[4] => source_addr.DATAB +sink_addr[5] => burst_uncompress_address_base.IN0 +sink_addr[5] => comb.DATAB +sink_addr[5] => source_addr.DATAB +sink_addr[6] => burst_uncompress_address_base.IN0 +sink_addr[6] => comb.DATAB +sink_addr[6] => source_addr.DATAB +sink_addr[7] => burst_uncompress_address_base.IN0 +sink_addr[7] => comb.DATAB +sink_addr[7] => source_addr.DATAB +sink_addr[8] => burst_uncompress_address_base.IN0 +sink_addr[8] => comb.DATAB +sink_addr[8] => source_addr.DATAB +sink_addr[9] => burst_uncompress_address_base.IN0 +sink_addr[9] => comb.DATAB +sink_addr[9] => source_addr.DATAB +sink_addr[10] => burst_uncompress_address_base.IN0 +sink_addr[10] => comb.DATAB +sink_addr[10] => source_addr.DATAB +sink_addr[11] => burst_uncompress_address_base.IN0 +sink_addr[11] => comb.DATAB +sink_addr[11] => source_addr.DATAB +sink_addr[12] => burst_uncompress_address_base.IN0 +sink_addr[12] => comb.DATAB +sink_addr[12] => source_addr.DATAB +sink_addr[13] => burst_uncompress_address_base.IN0 +sink_addr[13] => comb.DATAB +sink_addr[13] => source_addr.DATAB +sink_addr[14] => burst_uncompress_address_base.IN0 +sink_addr[14] => comb.DATAB +sink_addr[14] => source_addr.DATAB +sink_addr[15] => burst_uncompress_address_base.IN0 +sink_addr[15] => comb.DATAB +sink_addr[15] => source_addr.DATAB +sink_addr[16] => burst_uncompress_address_base.IN0 +sink_addr[16] => comb.DATAB +sink_addr[16] => source_addr.DATAB +sink_addr[17] => burst_uncompress_address_base.IN0 +sink_addr[17] => comb.DATAB +sink_addr[17] => source_addr.DATAB +sink_addr[18] => burst_uncompress_address_base.IN0 +sink_addr[18] => comb.DATAB +sink_addr[18] => source_addr.DATAB +sink_burstwrap[0] => p1_burst_uncompress_address_offset[0].IN1 +sink_burstwrap[0] => source_burstwrap[0].DATAIN +sink_burstwrap[0] => burst_uncompress_address_base.IN1 +sink_burstwrap[1] => p1_burst_uncompress_address_offset[1].IN1 +sink_burstwrap[1] => source_burstwrap[1].DATAIN +sink_burstwrap[1] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[2].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[18].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[17].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[16].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[15].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[14].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[13].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[12].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[11].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[10].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[9].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[8].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[7].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[6].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[5].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[4].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[3].IN1 +sink_burstwrap[2] => source_burstwrap[2].DATAIN +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_byte_cnt[0] => source_byte_cnt.DATAB +sink_byte_cnt[0] => Add1.IN6 +sink_byte_cnt[0] => Equal1.IN2 +sink_byte_cnt[1] => source_byte_cnt.DATAB +sink_byte_cnt[1] => Add1.IN5 +sink_byte_cnt[1] => Equal1.IN1 +sink_byte_cnt[2] => source_byte_cnt.DATAB +sink_byte_cnt[2] => Add1.IN4 +sink_byte_cnt[2] => Equal1.IN0 +sink_is_compressed => last_packet_beat.IN1 +sink_burstsize[0] => Decoder0.IN2 +sink_burstsize[0] => source_burstsize[0].DATAIN +sink_burstsize[1] => Decoder0.IN1 +sink_burstsize[1] => source_burstsize[1].DATAIN +sink_burstsize[2] => Decoder0.IN0 +sink_burstsize[2] => source_burstsize[2].DATAIN +source_startofpacket <= source_startofpacket.DB_MAX_OUTPUT_PORT_TYPE +source_endofpacket <= source_endofpacket.DB_MAX_OUTPUT_PORT_TYPE +source_valid <= sink_valid.DB_MAX_OUTPUT_PORT_TYPE +source_ready => always1.IN1 +source_ready => sink_ready.IN1 +source_addr[0] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[1] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[2] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[3] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[4] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[5] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[6] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[7] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[8] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[9] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[10] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[11] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[12] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[13] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[14] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[15] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[16] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[17] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[18] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_burstwrap[0] <= sink_burstwrap[0].DB_MAX_OUTPUT_PORT_TYPE +source_burstwrap[1] <= sink_burstwrap[1].DB_MAX_OUTPUT_PORT_TYPE +source_burstwrap[2] <= sink_burstwrap[2].DB_MAX_OUTPUT_PORT_TYPE +source_byte_cnt[0] <= source_byte_cnt.DB_MAX_OUTPUT_PORT_TYPE +source_byte_cnt[1] <= source_byte_cnt.DB_MAX_OUTPUT_PORT_TYPE +source_byte_cnt[2] <= source_byte_cnt.DB_MAX_OUTPUT_PORT_TYPE +source_is_compressed <= +source_burstsize[0] <= sink_burstsize[0].DB_MAX_OUTPUT_PORT_TYPE +source_burstsize[1] <= sink_burstsize[1].DB_MAX_OUTPUT_PORT_TYPE +source_burstsize[2] <= sink_burstsize[2].DB_MAX_OUTPUT_PORT_TYPE + + +|lights|nios_system:NiosII|altera_avalon_sc_fifo:push_switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo +clk => csr_readdata[0]~reg0.CLK +clk => csr_readdata[1]~reg0.CLK +clk => csr_readdata[2]~reg0.CLK +clk => csr_readdata[3]~reg0.CLK +clk => csr_readdata[4]~reg0.CLK +clk => csr_readdata[5]~reg0.CLK +clk => csr_readdata[6]~reg0.CLK +clk => csr_readdata[7]~reg0.CLK +clk => csr_readdata[8]~reg0.CLK +clk => csr_readdata[9]~reg0.CLK +clk => csr_readdata[10]~reg0.CLK +clk => csr_readdata[11]~reg0.CLK +clk => csr_readdata[12]~reg0.CLK +clk => csr_readdata[13]~reg0.CLK +clk => csr_readdata[14]~reg0.CLK +clk => csr_readdata[15]~reg0.CLK +clk => csr_readdata[16]~reg0.CLK +clk => csr_readdata[17]~reg0.CLK +clk => csr_readdata[18]~reg0.CLK +clk => csr_readdata[19]~reg0.CLK +clk => csr_readdata[20]~reg0.CLK +clk => csr_readdata[21]~reg0.CLK +clk => csr_readdata[22]~reg0.CLK +clk => csr_readdata[23]~reg0.CLK +clk => csr_readdata[24]~reg0.CLK +clk => csr_readdata[25]~reg0.CLK +clk => csr_readdata[26]~reg0.CLK +clk => csr_readdata[27]~reg0.CLK +clk => csr_readdata[28]~reg0.CLK +clk => csr_readdata[29]~reg0.CLK +clk => csr_readdata[30]~reg0.CLK +clk => csr_readdata[31]~reg0.CLK +clk => mem_used[1].CLK +clk => mem_used[0].CLK +clk => mem[1][0].CLK +clk => mem[1][1].CLK +clk => mem[1][2].CLK +clk => mem[1][3].CLK +clk => mem[1][4].CLK +clk => mem[1][5].CLK +clk => mem[1][6].CLK +clk => mem[1][7].CLK +clk => mem[1][8].CLK +clk => mem[1][9].CLK +clk => mem[1][10].CLK +clk => mem[1][11].CLK +clk => mem[1][12].CLK +clk => mem[1][13].CLK +clk => mem[1][14].CLK +clk => mem[1][15].CLK +clk => mem[1][16].CLK +clk => mem[1][17].CLK +clk => mem[1][18].CLK +clk => mem[1][19].CLK +clk => mem[1][20].CLK +clk => mem[1][21].CLK +clk => mem[1][22].CLK +clk => mem[1][23].CLK +clk => mem[1][24].CLK +clk => mem[1][25].CLK +clk => mem[1][26].CLK +clk => mem[1][27].CLK +clk => mem[1][28].CLK +clk => mem[1][29].CLK +clk => mem[1][30].CLK +clk => mem[1][31].CLK +clk => mem[1][32].CLK +clk => mem[1][33].CLK +clk => mem[1][34].CLK +clk => mem[1][35].CLK +clk => mem[1][36].CLK +clk => mem[1][37].CLK +clk => mem[1][38].CLK +clk => mem[1][39].CLK +clk => mem[1][40].CLK +clk => mem[1][41].CLK +clk => mem[1][42].CLK +clk => mem[1][43].CLK +clk => mem[1][44].CLK +clk => mem[1][45].CLK +clk => mem[1][46].CLK +clk => mem[1][47].CLK +clk => mem[1][48].CLK +clk => mem[1][49].CLK +clk => mem[1][50].CLK +clk => mem[1][51].CLK +clk => mem[1][52].CLK +clk => mem[1][53].CLK +clk => mem[1][54].CLK +clk => mem[1][55].CLK +clk => mem[1][56].CLK +clk => mem[1][57].CLK +clk => mem[1][58].CLK +clk => mem[1][59].CLK +clk => mem[1][60].CLK +clk => mem[1][61].CLK +clk => mem[1][62].CLK +clk => mem[1][63].CLK +clk => mem[1][64].CLK +clk => mem[1][65].CLK +clk => mem[1][66].CLK +clk => mem[1][67].CLK +clk => mem[1][68].CLK +clk => mem[1][69].CLK +clk => mem[1][70].CLK +clk => mem[1][71].CLK +clk => mem[1][72].CLK +clk => mem[1][73].CLK +clk => mem[1][74].CLK +clk => mem[1][75].CLK +clk => mem[1][76].CLK +clk => mem[1][77].CLK +clk => mem[1][78].CLK +clk => mem[1][79].CLK +clk => mem[1][80].CLK +clk => mem[1][81].CLK +clk => mem[1][82].CLK +clk => mem[1][83].CLK +clk => mem[1][84].CLK +clk => mem[1][85].CLK +clk => mem[1][86].CLK +clk => mem[1][87].CLK +clk => mem[1][88].CLK +clk => mem[1][89].CLK +clk => mem[1][90].CLK +clk => mem[1][91].CLK +clk => mem[1][92].CLK +clk => mem[1][93].CLK +clk => mem[1][94].CLK +clk => mem[1][95].CLK +clk => mem[1][96].CLK +clk => mem[1][97].CLK +clk => mem[1][98].CLK +clk => mem[0][0].CLK +clk => mem[0][1].CLK +clk => mem[0][2].CLK +clk => mem[0][3].CLK +clk => mem[0][4].CLK +clk => mem[0][5].CLK +clk => mem[0][6].CLK +clk => mem[0][7].CLK +clk => mem[0][8].CLK +clk => mem[0][9].CLK +clk => mem[0][10].CLK +clk => mem[0][11].CLK +clk => mem[0][12].CLK +clk => mem[0][13].CLK +clk => mem[0][14].CLK +clk => mem[0][15].CLK +clk => mem[0][16].CLK +clk => mem[0][17].CLK +clk => mem[0][18].CLK +clk => mem[0][19].CLK +clk => mem[0][20].CLK +clk => mem[0][21].CLK +clk => mem[0][22].CLK +clk => mem[0][23].CLK +clk => mem[0][24].CLK +clk => mem[0][25].CLK +clk => mem[0][26].CLK +clk => mem[0][27].CLK +clk => mem[0][28].CLK +clk => mem[0][29].CLK +clk => mem[0][30].CLK +clk => mem[0][31].CLK +clk => mem[0][32].CLK +clk => mem[0][33].CLK +clk => mem[0][34].CLK +clk => mem[0][35].CLK +clk => mem[0][36].CLK +clk => mem[0][37].CLK +clk => mem[0][38].CLK +clk => mem[0][39].CLK +clk => mem[0][40].CLK +clk => mem[0][41].CLK +clk => mem[0][42].CLK +clk => mem[0][43].CLK +clk => mem[0][44].CLK +clk => mem[0][45].CLK +clk => mem[0][46].CLK +clk => mem[0][47].CLK +clk => mem[0][48].CLK +clk => mem[0][49].CLK +clk => mem[0][50].CLK +clk => mem[0][51].CLK +clk => mem[0][52].CLK +clk => mem[0][53].CLK +clk => mem[0][54].CLK +clk => mem[0][55].CLK +clk => mem[0][56].CLK +clk => mem[0][57].CLK +clk => mem[0][58].CLK +clk => mem[0][59].CLK +clk => mem[0][60].CLK +clk => mem[0][61].CLK +clk => mem[0][62].CLK +clk => mem[0][63].CLK +clk => mem[0][64].CLK +clk => mem[0][65].CLK +clk => mem[0][66].CLK +clk => mem[0][67].CLK +clk => mem[0][68].CLK +clk => mem[0][69].CLK +clk => mem[0][70].CLK +clk => mem[0][71].CLK +clk => mem[0][72].CLK +clk => mem[0][73].CLK +clk => mem[0][74].CLK +clk => mem[0][75].CLK +clk => mem[0][76].CLK +clk => mem[0][77].CLK +clk => mem[0][78].CLK +clk => mem[0][79].CLK +clk => mem[0][80].CLK +clk => mem[0][81].CLK +clk => mem[0][82].CLK +clk => mem[0][83].CLK +clk => mem[0][84].CLK +clk => mem[0][85].CLK +clk => mem[0][86].CLK +clk => mem[0][87].CLK +clk => mem[0][88].CLK +clk => mem[0][89].CLK +clk => mem[0][90].CLK +clk => mem[0][91].CLK +clk => mem[0][92].CLK +clk => mem[0][93].CLK +clk => mem[0][94].CLK +clk => mem[0][95].CLK +clk => mem[0][96].CLK +clk => mem[0][97].CLK +clk => mem[0][98].CLK +reset => csr_readdata[0]~reg0.ACLR +reset => csr_readdata[1]~reg0.ACLR +reset => csr_readdata[2]~reg0.ACLR +reset => csr_readdata[3]~reg0.ACLR +reset => csr_readdata[4]~reg0.ACLR +reset => csr_readdata[5]~reg0.ACLR +reset => csr_readdata[6]~reg0.ACLR +reset => csr_readdata[7]~reg0.ACLR +reset => csr_readdata[8]~reg0.ACLR +reset => csr_readdata[9]~reg0.ACLR +reset => csr_readdata[10]~reg0.ACLR +reset => csr_readdata[11]~reg0.ACLR +reset => csr_readdata[12]~reg0.ACLR +reset => csr_readdata[13]~reg0.ACLR +reset => csr_readdata[14]~reg0.ACLR +reset => csr_readdata[15]~reg0.ACLR +reset => csr_readdata[16]~reg0.ACLR +reset => csr_readdata[17]~reg0.ACLR +reset => csr_readdata[18]~reg0.ACLR +reset => csr_readdata[19]~reg0.ACLR +reset => csr_readdata[20]~reg0.ACLR +reset => csr_readdata[21]~reg0.ACLR +reset => csr_readdata[22]~reg0.ACLR +reset => csr_readdata[23]~reg0.ACLR +reset => csr_readdata[24]~reg0.ACLR +reset => csr_readdata[25]~reg0.ACLR +reset => csr_readdata[26]~reg0.ACLR +reset => csr_readdata[27]~reg0.ACLR +reset => csr_readdata[28]~reg0.ACLR +reset => csr_readdata[29]~reg0.ACLR +reset => csr_readdata[30]~reg0.ACLR +reset => csr_readdata[31]~reg0.ACLR +reset => mem_used[1].ACLR +reset => mem_used[0].ACLR +reset => mem[1][0].ACLR +reset => mem[1][1].ACLR +reset => mem[1][2].ACLR +reset => mem[1][3].ACLR +reset => mem[1][4].ACLR +reset => mem[1][5].ACLR +reset => mem[1][6].ACLR +reset => mem[1][7].ACLR +reset => mem[1][8].ACLR +reset => mem[1][9].ACLR +reset => mem[1][10].ACLR +reset => mem[1][11].ACLR +reset => mem[1][12].ACLR +reset => mem[1][13].ACLR +reset => mem[1][14].ACLR +reset => mem[1][15].ACLR +reset => mem[1][16].ACLR +reset => mem[1][17].ACLR +reset => mem[1][18].ACLR +reset => mem[1][19].ACLR +reset => mem[1][20].ACLR +reset => mem[1][21].ACLR +reset => mem[1][22].ACLR +reset => mem[1][23].ACLR +reset => mem[1][24].ACLR +reset => mem[1][25].ACLR +reset => mem[1][26].ACLR +reset => mem[1][27].ACLR +reset => mem[1][28].ACLR +reset => mem[1][29].ACLR +reset => mem[1][30].ACLR +reset => mem[1][31].ACLR +reset => mem[1][32].ACLR +reset => mem[1][33].ACLR +reset => mem[1][34].ACLR +reset => mem[1][35].ACLR +reset => mem[1][36].ACLR +reset => mem[1][37].ACLR +reset => mem[1][38].ACLR +reset => mem[1][39].ACLR +reset => mem[1][40].ACLR +reset => mem[1][41].ACLR +reset => mem[1][42].ACLR +reset => mem[1][43].ACLR +reset => mem[1][44].ACLR +reset => mem[1][45].ACLR +reset => mem[1][46].ACLR +reset => mem[1][47].ACLR +reset => mem[1][48].ACLR +reset => mem[1][49].ACLR +reset => mem[1][50].ACLR +reset => mem[1][51].ACLR +reset => mem[1][52].ACLR +reset => mem[1][53].ACLR +reset => mem[1][54].ACLR +reset => mem[1][55].ACLR +reset => mem[1][56].ACLR +reset => mem[1][57].ACLR +reset => mem[1][58].ACLR +reset => mem[1][59].ACLR +reset => mem[1][60].ACLR +reset => mem[1][61].ACLR +reset => mem[1][62].ACLR +reset => mem[1][63].ACLR +reset => mem[1][64].ACLR +reset => mem[1][65].ACLR +reset => mem[1][66].ACLR +reset => mem[1][67].ACLR +reset => mem[1][68].ACLR +reset => mem[1][69].ACLR +reset => mem[1][70].ACLR +reset => mem[1][71].ACLR +reset => mem[1][72].ACLR +reset => mem[1][73].ACLR +reset => mem[1][74].ACLR +reset => mem[1][75].ACLR +reset => mem[1][76].ACLR +reset => mem[1][77].ACLR +reset => mem[1][78].ACLR +reset => mem[1][79].ACLR +reset => mem[1][80].ACLR +reset => mem[1][81].ACLR +reset => mem[1][82].ACLR +reset => mem[1][83].ACLR +reset => mem[1][84].ACLR +reset => mem[1][85].ACLR +reset => mem[1][86].ACLR +reset => mem[1][87].ACLR +reset => mem[1][88].ACLR +reset => mem[1][89].ACLR +reset => mem[1][90].ACLR +reset => mem[1][91].ACLR +reset => mem[1][92].ACLR +reset => mem[1][93].ACLR +reset => mem[1][94].ACLR +reset => mem[1][95].ACLR +reset => mem[1][96].ACLR +reset => mem[1][97].ACLR +reset => mem[1][98].ACLR +reset => mem[0][0].ACLR +reset => mem[0][1].ACLR +reset => mem[0][2].ACLR +reset => mem[0][3].ACLR +reset => mem[0][4].ACLR +reset => mem[0][5].ACLR +reset => mem[0][6].ACLR +reset => mem[0][7].ACLR +reset => mem[0][8].ACLR +reset => mem[0][9].ACLR +reset => mem[0][10].ACLR +reset => mem[0][11].ACLR +reset => mem[0][12].ACLR +reset => mem[0][13].ACLR +reset => mem[0][14].ACLR +reset => mem[0][15].ACLR +reset => mem[0][16].ACLR +reset => mem[0][17].ACLR +reset => mem[0][18].ACLR +reset => mem[0][19].ACLR +reset => mem[0][20].ACLR +reset => mem[0][21].ACLR +reset => mem[0][22].ACLR +reset => mem[0][23].ACLR +reset => mem[0][24].ACLR +reset => mem[0][25].ACLR +reset => mem[0][26].ACLR +reset => mem[0][27].ACLR +reset => mem[0][28].ACLR +reset => mem[0][29].ACLR +reset => mem[0][30].ACLR +reset => mem[0][31].ACLR +reset => mem[0][32].ACLR +reset => mem[0][33].ACLR +reset => mem[0][34].ACLR +reset => mem[0][35].ACLR +reset => mem[0][36].ACLR +reset => mem[0][37].ACLR +reset => mem[0][38].ACLR +reset => mem[0][39].ACLR +reset => mem[0][40].ACLR +reset => mem[0][41].ACLR +reset => mem[0][42].ACLR +reset => mem[0][43].ACLR +reset => mem[0][44].ACLR +reset => mem[0][45].ACLR +reset => mem[0][46].ACLR +reset => mem[0][47].ACLR +reset => mem[0][48].ACLR +reset => mem[0][49].ACLR +reset => mem[0][50].ACLR +reset => mem[0][51].ACLR +reset => mem[0][52].ACLR +reset => mem[0][53].ACLR +reset => mem[0][54].ACLR +reset => mem[0][55].ACLR +reset => mem[0][56].ACLR +reset => mem[0][57].ACLR +reset => mem[0][58].ACLR +reset => mem[0][59].ACLR +reset => mem[0][60].ACLR +reset => mem[0][61].ACLR +reset => mem[0][62].ACLR +reset => mem[0][63].ACLR +reset => mem[0][64].ACLR +reset => mem[0][65].ACLR +reset => mem[0][66].ACLR +reset => mem[0][67].ACLR +reset => mem[0][68].ACLR +reset => mem[0][69].ACLR +reset => mem[0][70].ACLR +reset => mem[0][71].ACLR +reset => mem[0][72].ACLR +reset => mem[0][73].ACLR +reset => mem[0][74].ACLR +reset => mem[0][75].ACLR +reset => mem[0][76].ACLR +reset => mem[0][77].ACLR +reset => mem[0][78].ACLR +reset => mem[0][79].ACLR +reset => mem[0][80].ACLR +reset => mem[0][81].ACLR +reset => mem[0][82].ACLR +reset => mem[0][83].ACLR +reset => mem[0][84].ACLR +reset => mem[0][85].ACLR +reset => mem[0][86].ACLR +reset => mem[0][87].ACLR +reset => mem[0][88].ACLR +reset => mem[0][89].ACLR +reset => mem[0][90].ACLR +reset => mem[0][91].ACLR +reset => mem[0][92].ACLR +reset => mem[0][93].ACLR +reset => mem[0][94].ACLR +reset => mem[0][95].ACLR +reset => mem[0][96].ACLR +reset => mem[0][97].ACLR +reset => mem[0][98].ACLR +in_data[0] => mem.DATAB +in_data[1] => mem.DATAB +in_data[2] => mem.DATAB +in_data[3] => mem.DATAB +in_data[4] => mem.DATAB +in_data[5] => mem.DATAB +in_data[6] => mem.DATAB +in_data[7] => mem.DATAB +in_data[8] => mem.DATAB +in_data[9] => mem.DATAB +in_data[10] => mem.DATAB +in_data[11] => mem.DATAB +in_data[12] => mem.DATAB +in_data[13] => mem.DATAB +in_data[14] => mem.DATAB +in_data[15] => mem.DATAB +in_data[16] => mem.DATAB +in_data[17] => mem.DATAB +in_data[18] => mem.DATAB +in_data[19] => mem.DATAB +in_data[20] => mem.DATAB +in_data[21] => mem.DATAB +in_data[22] => mem.DATAB +in_data[23] => mem.DATAB +in_data[24] => mem.DATAB +in_data[25] => mem.DATAB +in_data[26] => mem.DATAB +in_data[27] => mem.DATAB +in_data[28] => mem.DATAB +in_data[29] => mem.DATAB +in_data[30] => mem.DATAB +in_data[31] => mem.DATAB +in_data[32] => mem.DATAB +in_data[33] => mem.DATAB +in_data[34] => mem.DATAB +in_data[35] => mem.DATAB +in_data[36] => mem.DATAB +in_data[37] => mem.DATAB +in_data[38] => mem.DATAB +in_data[39] => mem.DATAB +in_data[40] => mem.DATAB +in_data[41] => mem.DATAB +in_data[42] => mem.DATAB +in_data[43] => mem.DATAB +in_data[44] => mem.DATAB +in_data[45] => mem.DATAB +in_data[46] => mem.DATAB +in_data[47] => mem.DATAB +in_data[48] => mem.DATAB +in_data[49] => mem.DATAB +in_data[50] => mem.DATAB +in_data[51] => mem.DATAB +in_data[52] => mem.DATAB +in_data[53] => mem.DATAB +in_data[54] => mem.DATAB +in_data[55] => mem.DATAB +in_data[56] => mem.DATAB +in_data[57] => mem.DATAB +in_data[58] => mem.DATAB +in_data[59] => mem.DATAB +in_data[60] => mem.DATAB +in_data[61] => mem.DATAB +in_data[62] => mem.DATAB +in_data[63] => mem.DATAB +in_data[64] => mem.DATAB +in_data[65] => mem.DATAB +in_data[66] => mem.DATAB +in_data[67] => mem.DATAB +in_data[68] => mem.DATAB +in_data[69] => mem.DATAB +in_data[70] => mem.DATAB +in_data[71] => mem.DATAB +in_data[72] => mem.DATAB +in_data[73] => mem.DATAB +in_data[74] => mem.DATAB +in_data[75] => mem.DATAB +in_data[76] => mem.DATAB +in_data[77] => mem.DATAB +in_data[78] => mem.DATAB +in_data[79] => mem.DATAB +in_data[80] => mem.DATAB +in_data[81] => mem.DATAB +in_data[82] => mem.DATAB +in_data[83] => mem.DATAB +in_data[84] => mem.DATAB +in_data[85] => mem.DATAB +in_data[86] => mem.DATAB +in_data[87] => mem.DATAB +in_data[88] => mem.DATAB +in_data[89] => mem.DATAB +in_data[90] => mem.DATAB +in_data[91] => mem.DATAB +in_data[92] => mem.DATAB +in_data[93] => mem.DATAB +in_data[94] => mem.DATAB +in_data[95] => mem.DATAB +in_data[96] => mem.DATAB +in_valid => write.IN1 +in_startofpacket => mem.DATAB +in_endofpacket => mem.DATAB +in_empty[0] => ~NO_FANOUT~ +in_error[0] => out_error[0].DATAIN +in_error[0] => out_empty[0].DATAIN +in_channel[0] => out_channel[0].DATAIN +in_ready <= mem_used[1].DB_MAX_OUTPUT_PORT_TYPE +out_data[0] <= mem[0][0].DB_MAX_OUTPUT_PORT_TYPE +out_data[1] <= mem[0][1].DB_MAX_OUTPUT_PORT_TYPE +out_data[2] <= mem[0][2].DB_MAX_OUTPUT_PORT_TYPE +out_data[3] <= mem[0][3].DB_MAX_OUTPUT_PORT_TYPE +out_data[4] <= mem[0][4].DB_MAX_OUTPUT_PORT_TYPE +out_data[5] <= mem[0][5].DB_MAX_OUTPUT_PORT_TYPE +out_data[6] <= mem[0][6].DB_MAX_OUTPUT_PORT_TYPE +out_data[7] <= mem[0][7].DB_MAX_OUTPUT_PORT_TYPE +out_data[8] <= mem[0][8].DB_MAX_OUTPUT_PORT_TYPE +out_data[9] <= mem[0][9].DB_MAX_OUTPUT_PORT_TYPE +out_data[10] <= mem[0][10].DB_MAX_OUTPUT_PORT_TYPE +out_data[11] <= mem[0][11].DB_MAX_OUTPUT_PORT_TYPE +out_data[12] <= mem[0][12].DB_MAX_OUTPUT_PORT_TYPE +out_data[13] <= mem[0][13].DB_MAX_OUTPUT_PORT_TYPE +out_data[14] <= mem[0][14].DB_MAX_OUTPUT_PORT_TYPE +out_data[15] <= mem[0][15].DB_MAX_OUTPUT_PORT_TYPE +out_data[16] <= mem[0][16].DB_MAX_OUTPUT_PORT_TYPE +out_data[17] <= mem[0][17].DB_MAX_OUTPUT_PORT_TYPE +out_data[18] <= mem[0][18].DB_MAX_OUTPUT_PORT_TYPE +out_data[19] <= mem[0][19].DB_MAX_OUTPUT_PORT_TYPE +out_data[20] <= mem[0][20].DB_MAX_OUTPUT_PORT_TYPE +out_data[21] <= mem[0][21].DB_MAX_OUTPUT_PORT_TYPE +out_data[22] <= mem[0][22].DB_MAX_OUTPUT_PORT_TYPE +out_data[23] <= mem[0][23].DB_MAX_OUTPUT_PORT_TYPE +out_data[24] <= mem[0][24].DB_MAX_OUTPUT_PORT_TYPE +out_data[25] <= mem[0][25].DB_MAX_OUTPUT_PORT_TYPE +out_data[26] <= mem[0][26].DB_MAX_OUTPUT_PORT_TYPE +out_data[27] <= mem[0][27].DB_MAX_OUTPUT_PORT_TYPE +out_data[28] <= mem[0][28].DB_MAX_OUTPUT_PORT_TYPE +out_data[29] <= mem[0][29].DB_MAX_OUTPUT_PORT_TYPE +out_data[30] <= mem[0][30].DB_MAX_OUTPUT_PORT_TYPE +out_data[31] <= mem[0][31].DB_MAX_OUTPUT_PORT_TYPE +out_data[32] <= mem[0][32].DB_MAX_OUTPUT_PORT_TYPE +out_data[33] <= mem[0][33].DB_MAX_OUTPUT_PORT_TYPE +out_data[34] <= mem[0][34].DB_MAX_OUTPUT_PORT_TYPE +out_data[35] <= mem[0][35].DB_MAX_OUTPUT_PORT_TYPE +out_data[36] <= mem[0][36].DB_MAX_OUTPUT_PORT_TYPE +out_data[37] <= mem[0][37].DB_MAX_OUTPUT_PORT_TYPE +out_data[38] <= mem[0][38].DB_MAX_OUTPUT_PORT_TYPE +out_data[39] <= mem[0][39].DB_MAX_OUTPUT_PORT_TYPE +out_data[40] <= mem[0][40].DB_MAX_OUTPUT_PORT_TYPE +out_data[41] <= mem[0][41].DB_MAX_OUTPUT_PORT_TYPE +out_data[42] <= mem[0][42].DB_MAX_OUTPUT_PORT_TYPE +out_data[43] <= mem[0][43].DB_MAX_OUTPUT_PORT_TYPE +out_data[44] <= mem[0][44].DB_MAX_OUTPUT_PORT_TYPE +out_data[45] <= mem[0][45].DB_MAX_OUTPUT_PORT_TYPE +out_data[46] <= mem[0][46].DB_MAX_OUTPUT_PORT_TYPE +out_data[47] <= mem[0][47].DB_MAX_OUTPUT_PORT_TYPE +out_data[48] <= mem[0][48].DB_MAX_OUTPUT_PORT_TYPE +out_data[49] <= mem[0][49].DB_MAX_OUTPUT_PORT_TYPE +out_data[50] <= mem[0][50].DB_MAX_OUTPUT_PORT_TYPE +out_data[51] <= mem[0][51].DB_MAX_OUTPUT_PORT_TYPE +out_data[52] <= mem[0][52].DB_MAX_OUTPUT_PORT_TYPE +out_data[53] <= mem[0][53].DB_MAX_OUTPUT_PORT_TYPE +out_data[54] <= mem[0][54].DB_MAX_OUTPUT_PORT_TYPE +out_data[55] <= mem[0][55].DB_MAX_OUTPUT_PORT_TYPE +out_data[56] <= mem[0][56].DB_MAX_OUTPUT_PORT_TYPE +out_data[57] <= mem[0][57].DB_MAX_OUTPUT_PORT_TYPE +out_data[58] <= mem[0][58].DB_MAX_OUTPUT_PORT_TYPE +out_data[59] <= mem[0][59].DB_MAX_OUTPUT_PORT_TYPE +out_data[60] <= mem[0][60].DB_MAX_OUTPUT_PORT_TYPE +out_data[61] <= mem[0][61].DB_MAX_OUTPUT_PORT_TYPE +out_data[62] <= mem[0][62].DB_MAX_OUTPUT_PORT_TYPE +out_data[63] <= mem[0][63].DB_MAX_OUTPUT_PORT_TYPE +out_data[64] <= mem[0][64].DB_MAX_OUTPUT_PORT_TYPE +out_data[65] <= mem[0][65].DB_MAX_OUTPUT_PORT_TYPE +out_data[66] <= mem[0][66].DB_MAX_OUTPUT_PORT_TYPE +out_data[67] <= mem[0][67].DB_MAX_OUTPUT_PORT_TYPE +out_data[68] <= mem[0][68].DB_MAX_OUTPUT_PORT_TYPE +out_data[69] <= mem[0][69].DB_MAX_OUTPUT_PORT_TYPE +out_data[70] <= mem[0][70].DB_MAX_OUTPUT_PORT_TYPE +out_data[71] <= mem[0][71].DB_MAX_OUTPUT_PORT_TYPE +out_data[72] <= mem[0][72].DB_MAX_OUTPUT_PORT_TYPE +out_data[73] <= mem[0][73].DB_MAX_OUTPUT_PORT_TYPE +out_data[74] <= mem[0][74].DB_MAX_OUTPUT_PORT_TYPE +out_data[75] <= mem[0][75].DB_MAX_OUTPUT_PORT_TYPE +out_data[76] <= mem[0][76].DB_MAX_OUTPUT_PORT_TYPE +out_data[77] <= mem[0][77].DB_MAX_OUTPUT_PORT_TYPE +out_data[78] <= mem[0][78].DB_MAX_OUTPUT_PORT_TYPE +out_data[79] <= mem[0][79].DB_MAX_OUTPUT_PORT_TYPE +out_data[80] <= mem[0][80].DB_MAX_OUTPUT_PORT_TYPE +out_data[81] <= mem[0][81].DB_MAX_OUTPUT_PORT_TYPE +out_data[82] <= mem[0][82].DB_MAX_OUTPUT_PORT_TYPE +out_data[83] <= mem[0][83].DB_MAX_OUTPUT_PORT_TYPE +out_data[84] <= mem[0][84].DB_MAX_OUTPUT_PORT_TYPE +out_data[85] <= mem[0][85].DB_MAX_OUTPUT_PORT_TYPE +out_data[86] <= mem[0][86].DB_MAX_OUTPUT_PORT_TYPE +out_data[87] <= mem[0][87].DB_MAX_OUTPUT_PORT_TYPE +out_data[88] <= mem[0][88].DB_MAX_OUTPUT_PORT_TYPE +out_data[89] <= mem[0][89].DB_MAX_OUTPUT_PORT_TYPE +out_data[90] <= mem[0][90].DB_MAX_OUTPUT_PORT_TYPE +out_data[91] <= mem[0][91].DB_MAX_OUTPUT_PORT_TYPE +out_data[92] <= mem[0][92].DB_MAX_OUTPUT_PORT_TYPE +out_data[93] <= mem[0][93].DB_MAX_OUTPUT_PORT_TYPE +out_data[94] <= mem[0][94].DB_MAX_OUTPUT_PORT_TYPE +out_data[95] <= mem[0][95].DB_MAX_OUTPUT_PORT_TYPE +out_data[96] <= mem[0][96].DB_MAX_OUTPUT_PORT_TYPE +out_valid <= mem_used[0].DB_MAX_OUTPUT_PORT_TYPE +out_startofpacket <= mem[0][98].DB_MAX_OUTPUT_PORT_TYPE +out_endofpacket <= mem[0][97].DB_MAX_OUTPUT_PORT_TYPE +out_empty[0] <= in_error[0].DB_MAX_OUTPUT_PORT_TYPE +out_error[0] <= in_error[0].DB_MAX_OUTPUT_PORT_TYPE +out_channel[0] <= in_channel[0].DB_MAX_OUTPUT_PORT_TYPE +out_ready => internal_out_ready.IN1 +csr_address[0] => ~NO_FANOUT~ +csr_address[1] => ~NO_FANOUT~ +csr_write => ~NO_FANOUT~ +csr_read => csr_readdata[31]~reg0.ENA +csr_read => csr_readdata[30]~reg0.ENA +csr_read => csr_readdata[29]~reg0.ENA +csr_read => csr_readdata[28]~reg0.ENA +csr_read => csr_readdata[27]~reg0.ENA +csr_read => csr_readdata[26]~reg0.ENA +csr_read => csr_readdata[25]~reg0.ENA +csr_read => csr_readdata[24]~reg0.ENA +csr_read => csr_readdata[23]~reg0.ENA +csr_read => csr_readdata[22]~reg0.ENA +csr_read => csr_readdata[21]~reg0.ENA +csr_read => csr_readdata[20]~reg0.ENA +csr_read => csr_readdata[19]~reg0.ENA +csr_read => csr_readdata[18]~reg0.ENA +csr_read => csr_readdata[17]~reg0.ENA +csr_read => csr_readdata[16]~reg0.ENA +csr_read => csr_readdata[15]~reg0.ENA +csr_read => csr_readdata[14]~reg0.ENA +csr_read => csr_readdata[13]~reg0.ENA +csr_read => csr_readdata[12]~reg0.ENA +csr_read => csr_readdata[11]~reg0.ENA +csr_read => csr_readdata[10]~reg0.ENA +csr_read => csr_readdata[9]~reg0.ENA +csr_read => csr_readdata[8]~reg0.ENA +csr_read => csr_readdata[7]~reg0.ENA +csr_read => csr_readdata[6]~reg0.ENA +csr_read => csr_readdata[5]~reg0.ENA +csr_read => csr_readdata[4]~reg0.ENA +csr_read => csr_readdata[3]~reg0.ENA +csr_read => csr_readdata[2]~reg0.ENA +csr_read => csr_readdata[1]~reg0.ENA +csr_read => csr_readdata[0]~reg0.ENA +csr_writedata[0] => ~NO_FANOUT~ +csr_writedata[1] => ~NO_FANOUT~ +csr_writedata[2] => ~NO_FANOUT~ +csr_writedata[3] => ~NO_FANOUT~ +csr_writedata[4] => ~NO_FANOUT~ +csr_writedata[5] => ~NO_FANOUT~ +csr_writedata[6] => ~NO_FANOUT~ +csr_writedata[7] => ~NO_FANOUT~ +csr_writedata[8] => ~NO_FANOUT~ +csr_writedata[9] => ~NO_FANOUT~ +csr_writedata[10] => ~NO_FANOUT~ +csr_writedata[11] => ~NO_FANOUT~ +csr_writedata[12] => ~NO_FANOUT~ +csr_writedata[13] => ~NO_FANOUT~ +csr_writedata[14] => ~NO_FANOUT~ +csr_writedata[15] => ~NO_FANOUT~ +csr_writedata[16] => ~NO_FANOUT~ +csr_writedata[17] => ~NO_FANOUT~ +csr_writedata[18] => ~NO_FANOUT~ +csr_writedata[19] => ~NO_FANOUT~ +csr_writedata[20] => ~NO_FANOUT~ +csr_writedata[21] => ~NO_FANOUT~ +csr_writedata[22] => ~NO_FANOUT~ +csr_writedata[23] => ~NO_FANOUT~ +csr_writedata[24] => ~NO_FANOUT~ +csr_writedata[25] => ~NO_FANOUT~ +csr_writedata[26] => ~NO_FANOUT~ +csr_writedata[27] => ~NO_FANOUT~ +csr_writedata[28] => ~NO_FANOUT~ +csr_writedata[29] => ~NO_FANOUT~ +csr_writedata[30] => ~NO_FANOUT~ +csr_writedata[31] => ~NO_FANOUT~ +csr_readdata[0] <= csr_readdata[0]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[1] <= csr_readdata[1]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[2] <= csr_readdata[2]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[3] <= csr_readdata[3]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[4] <= csr_readdata[4]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[5] <= csr_readdata[5]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[6] <= csr_readdata[6]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[7] <= csr_readdata[7]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[8] <= csr_readdata[8]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[9] <= csr_readdata[9]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[10] <= csr_readdata[10]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[11] <= csr_readdata[11]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[12] <= csr_readdata[12]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[13] <= csr_readdata[13]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[14] <= csr_readdata[14]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[15] <= csr_readdata[15]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[16] <= csr_readdata[16]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[17] <= csr_readdata[17]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[18] <= csr_readdata[18]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[19] <= csr_readdata[19]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[20] <= csr_readdata[20]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[21] <= csr_readdata[21]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[22] <= csr_readdata[22]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[23] <= csr_readdata[23]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[24] <= csr_readdata[24]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[25] <= csr_readdata[25]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[26] <= csr_readdata[26]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[27] <= csr_readdata[27]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[28] <= csr_readdata[28]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[29] <= csr_readdata[29]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[30] <= csr_readdata[30]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[31] <= csr_readdata[31]~reg0.DB_MAX_OUTPUT_PORT_TYPE +almost_full_data <= +almost_empty_data <= + + +|lights|nios_system:NiosII|altera_merlin_slave_agent:hex0_s1_translator_avalon_universal_slave_0_agent +clk => clk.IN1 +reset => reset.IN1 +m0_address[0] <= +m0_address[1] <= +m0_address[2] <= cp_data[38].DB_MAX_OUTPUT_PORT_TYPE +m0_address[3] <= cp_data[39].DB_MAX_OUTPUT_PORT_TYPE +m0_address[4] <= cp_data[40].DB_MAX_OUTPUT_PORT_TYPE +m0_address[5] <= cp_data[41].DB_MAX_OUTPUT_PORT_TYPE +m0_address[6] <= cp_data[42].DB_MAX_OUTPUT_PORT_TYPE +m0_address[7] <= cp_data[43].DB_MAX_OUTPUT_PORT_TYPE +m0_address[8] <= cp_data[44].DB_MAX_OUTPUT_PORT_TYPE +m0_address[9] <= cp_data[45].DB_MAX_OUTPUT_PORT_TYPE +m0_address[10] <= cp_data[46].DB_MAX_OUTPUT_PORT_TYPE +m0_address[11] <= cp_data[47].DB_MAX_OUTPUT_PORT_TYPE +m0_address[12] <= cp_data[48].DB_MAX_OUTPUT_PORT_TYPE +m0_address[13] <= cp_data[49].DB_MAX_OUTPUT_PORT_TYPE +m0_address[14] <= cp_data[50].DB_MAX_OUTPUT_PORT_TYPE +m0_address[15] <= cp_data[51].DB_MAX_OUTPUT_PORT_TYPE +m0_address[16] <= cp_data[52].DB_MAX_OUTPUT_PORT_TYPE +m0_address[17] <= cp_data[53].DB_MAX_OUTPUT_PORT_TYPE +m0_address[18] <= cp_data[54].DB_MAX_OUTPUT_PORT_TYPE +m0_burstcount[0] <= m0_burstcount.DB_MAX_OUTPUT_PORT_TYPE +m0_burstcount[1] <= m0_burstcount.DB_MAX_OUTPUT_PORT_TYPE +m0_burstcount[2] <= m0_burstcount.DB_MAX_OUTPUT_PORT_TYPE +m0_byteenable[0] <= cp_data[32].DB_MAX_OUTPUT_PORT_TYPE +m0_byteenable[1] <= cp_data[33].DB_MAX_OUTPUT_PORT_TYPE +m0_byteenable[2] <= cp_data[34].DB_MAX_OUTPUT_PORT_TYPE +m0_byteenable[3] <= cp_data[35].DB_MAX_OUTPUT_PORT_TYPE +m0_read <= m0_read.DB_MAX_OUTPUT_PORT_TYPE +m0_readdata[0] => rdata_fifo_src_data[0].DATAIN +m0_readdata[1] => rdata_fifo_src_data[1].DATAIN +m0_readdata[2] => rdata_fifo_src_data[2].DATAIN +m0_readdata[3] => rdata_fifo_src_data[3].DATAIN +m0_readdata[4] => rdata_fifo_src_data[4].DATAIN +m0_readdata[5] => rdata_fifo_src_data[5].DATAIN +m0_readdata[6] => rdata_fifo_src_data[6].DATAIN +m0_readdata[7] => rdata_fifo_src_data[7].DATAIN +m0_readdata[8] => rdata_fifo_src_data[8].DATAIN +m0_readdata[9] => rdata_fifo_src_data[9].DATAIN +m0_readdata[10] => rdata_fifo_src_data[10].DATAIN +m0_readdata[11] => rdata_fifo_src_data[11].DATAIN +m0_readdata[12] => rdata_fifo_src_data[12].DATAIN +m0_readdata[13] => rdata_fifo_src_data[13].DATAIN +m0_readdata[14] => rdata_fifo_src_data[14].DATAIN +m0_readdata[15] => rdata_fifo_src_data[15].DATAIN +m0_readdata[16] => rdata_fifo_src_data[16].DATAIN +m0_readdata[17] => rdata_fifo_src_data[17].DATAIN +m0_readdata[18] => rdata_fifo_src_data[18].DATAIN +m0_readdata[19] => rdata_fifo_src_data[19].DATAIN +m0_readdata[20] => rdata_fifo_src_data[20].DATAIN +m0_readdata[21] => rdata_fifo_src_data[21].DATAIN +m0_readdata[22] => rdata_fifo_src_data[22].DATAIN +m0_readdata[23] => rdata_fifo_src_data[23].DATAIN +m0_readdata[24] => rdata_fifo_src_data[24].DATAIN +m0_readdata[25] => rdata_fifo_src_data[25].DATAIN +m0_readdata[26] => rdata_fifo_src_data[26].DATAIN +m0_readdata[27] => rdata_fifo_src_data[27].DATAIN +m0_readdata[28] => rdata_fifo_src_data[28].DATAIN +m0_readdata[29] => rdata_fifo_src_data[29].DATAIN +m0_readdata[30] => rdata_fifo_src_data[30].DATAIN +m0_readdata[31] => rdata_fifo_src_data[31].DATAIN +m0_waitrequest => cp_ready.IN0 +m0_write <= m0_write.DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[0] <= cp_data[0].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[1] <= cp_data[1].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[2] <= cp_data[2].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[3] <= cp_data[3].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[4] <= cp_data[4].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[5] <= cp_data[5].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[6] <= cp_data[6].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[7] <= cp_data[7].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[8] <= cp_data[8].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[9] <= cp_data[9].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[10] <= cp_data[10].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[11] <= cp_data[11].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[12] <= cp_data[12].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[13] <= cp_data[13].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[14] <= cp_data[14].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[15] <= cp_data[15].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[16] <= cp_data[16].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[17] <= cp_data[17].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[18] <= cp_data[18].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[19] <= cp_data[19].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[20] <= cp_data[20].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[21] <= cp_data[21].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[22] <= cp_data[22].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[23] <= cp_data[23].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[24] <= cp_data[24].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[25] <= cp_data[25].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[26] <= cp_data[26].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[27] <= cp_data[27].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[28] <= cp_data[28].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[29] <= cp_data[29].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[30] <= cp_data[30].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[31] <= cp_data[31].DB_MAX_OUTPUT_PORT_TYPE +m0_readdatavalid => rdata_fifo_src_valid.IN0 +m0_debugaccess <= cp_data[87].DB_MAX_OUTPUT_PORT_TYPE +m0_lock <= m0_lock.DB_MAX_OUTPUT_PORT_TYPE +m0_response[0] => rdata_fifo_src_data[32].DATAIN +m0_response[1] => rdata_fifo_src_data[33].DATAIN +m0_writeresponserequest <= m0_writeresponserequest.DB_MAX_OUTPUT_PORT_TYPE +m0_writeresponsevalid => rdata_fifo_src_valid.IN1 +rf_source_data[0] <= +rf_source_data[1] <= +rf_source_data[2] <= +rf_source_data[3] <= +rf_source_data[4] <= +rf_source_data[5] <= +rf_source_data[6] <= +rf_source_data[7] <= +rf_source_data[8] <= +rf_source_data[9] <= +rf_source_data[10] <= +rf_source_data[11] <= +rf_source_data[12] <= +rf_source_data[13] <= +rf_source_data[14] <= +rf_source_data[15] <= +rf_source_data[16] <= +rf_source_data[17] <= +rf_source_data[18] <= +rf_source_data[19] <= +rf_source_data[20] <= +rf_source_data[21] <= +rf_source_data[22] <= +rf_source_data[23] <= +rf_source_data[24] <= +rf_source_data[25] <= +rf_source_data[26] <= +rf_source_data[27] <= +rf_source_data[28] <= +rf_source_data[29] <= +rf_source_data[30] <= +rf_source_data[31] <= +rf_source_data[32] <= cp_data[32].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[33] <= cp_data[33].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[34] <= cp_data[34].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[35] <= cp_data[35].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[36] <= cp_data[36].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[37] <= cp_data[37].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[38] <= cp_data[38].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[39] <= cp_data[39].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[40] <= cp_data[40].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[41] <= cp_data[41].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[42] <= cp_data[42].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[43] <= cp_data[43].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[44] <= cp_data[44].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[45] <= cp_data[45].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[46] <= cp_data[46].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[47] <= cp_data[47].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[48] <= cp_data[48].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[49] <= cp_data[49].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[50] <= cp_data[50].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[51] <= cp_data[51].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[52] <= cp_data[52].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[53] <= cp_data[53].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[54] <= cp_data[54].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[55] <= cp_data[55].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[56] <= cp_data[56].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[57] <= cp_data[57].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[58] <= cp_data[58].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[59] <= cp_data[59].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[60] <= cp_data[60].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[61] <= cp_data[61].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[62] <= cp_data[62].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[63] <= cp_data[63].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[64] <= cp_data[64].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[65] <= cp_data[65].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[66] <= cp_data[66].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[67] <= cp_data[67].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[68] <= cp_data[68].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[69] <= cp_data[69].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[70] <= cp_data[70].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[71] <= cp_data[71].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[72] <= cp_data[72].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[73] <= cp_data[73].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[74] <= cp_data[74].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[75] <= cp_data[75].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[76] <= cp_data[76].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[77] <= cp_data[77].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[78] <= cp_data[78].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[79] <= cp_data[79].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[80] <= cp_data[80].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[81] <= cp_data[81].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[82] <= cp_data[82].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[83] <= cp_data[83].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[84] <= cp_data[84].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[85] <= cp_data[85].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[86] <= cp_data[86].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[87] <= cp_data[87].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[88] <= +rf_source_data[89] <= +rf_source_data[90] <= cp_data[90].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[91] <= cp_data[91].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[92] <= cp_data[92].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[93] <= cp_data[93].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[94] <= cp_data[94].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[95] <= cp_data[95].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[96] <= nonposted_write_endofpacket.DB_MAX_OUTPUT_PORT_TYPE +rf_source_valid <= rf_source_valid.DB_MAX_OUTPUT_PORT_TYPE +rf_source_startofpacket <= cp_startofpacket.DB_MAX_OUTPUT_PORT_TYPE +rf_source_endofpacket <= cp_endofpacket.DB_MAX_OUTPUT_PORT_TYPE +rf_source_ready => cp_ready.IN1 +rf_source_ready => m0_write.IN1 +rf_source_ready => m0_lock.IN1 +rf_source_ready => rf_source_valid.IN1 +rf_source_ready => m0_read.IN1 +rf_sink_data[0] => ~NO_FANOUT~ +rf_sink_data[1] => ~NO_FANOUT~ +rf_sink_data[2] => ~NO_FANOUT~ +rf_sink_data[3] => ~NO_FANOUT~ +rf_sink_data[4] => ~NO_FANOUT~ +rf_sink_data[5] => ~NO_FANOUT~ +rf_sink_data[6] => ~NO_FANOUT~ +rf_sink_data[7] => ~NO_FANOUT~ +rf_sink_data[8] => ~NO_FANOUT~ +rf_sink_data[9] => ~NO_FANOUT~ +rf_sink_data[10] => ~NO_FANOUT~ +rf_sink_data[11] => ~NO_FANOUT~ +rf_sink_data[12] => ~NO_FANOUT~ +rf_sink_data[13] => ~NO_FANOUT~ +rf_sink_data[14] => ~NO_FANOUT~ +rf_sink_data[15] => ~NO_FANOUT~ +rf_sink_data[16] => ~NO_FANOUT~ +rf_sink_data[17] => ~NO_FANOUT~ +rf_sink_data[18] => ~NO_FANOUT~ +rf_sink_data[19] => ~NO_FANOUT~ +rf_sink_data[20] => ~NO_FANOUT~ +rf_sink_data[21] => ~NO_FANOUT~ +rf_sink_data[22] => ~NO_FANOUT~ +rf_sink_data[23] => ~NO_FANOUT~ +rf_sink_data[24] => ~NO_FANOUT~ +rf_sink_data[25] => ~NO_FANOUT~ +rf_sink_data[26] => ~NO_FANOUT~ +rf_sink_data[27] => ~NO_FANOUT~ +rf_sink_data[28] => ~NO_FANOUT~ +rf_sink_data[29] => ~NO_FANOUT~ +rf_sink_data[30] => ~NO_FANOUT~ +rf_sink_data[31] => ~NO_FANOUT~ +rf_sink_data[32] => rp_data[32].DATAIN +rf_sink_data[33] => rp_data[33].DATAIN +rf_sink_data[34] => rp_data[34].DATAIN +rf_sink_data[35] => rp_data[35].DATAIN +rf_sink_data[36] => rf_sink_addr[0].IN1 +rf_sink_data[37] => rf_sink_addr[1].IN1 +rf_sink_data[38] => rf_sink_addr[2].IN1 +rf_sink_data[39] => rf_sink_addr[3].IN1 +rf_sink_data[40] => rf_sink_addr[4].IN1 +rf_sink_data[41] => rf_sink_addr[5].IN1 +rf_sink_data[42] => rf_sink_addr[6].IN1 +rf_sink_data[43] => rf_sink_addr[7].IN1 +rf_sink_data[44] => rf_sink_addr[8].IN1 +rf_sink_data[45] => rf_sink_addr[9].IN1 +rf_sink_data[46] => rf_sink_addr[10].IN1 +rf_sink_data[47] => rf_sink_addr[11].IN1 +rf_sink_data[48] => rf_sink_addr[12].IN1 +rf_sink_data[49] => rf_sink_addr[13].IN1 +rf_sink_data[50] => rf_sink_addr[14].IN1 +rf_sink_data[51] => rf_sink_addr[15].IN1 +rf_sink_data[52] => rf_sink_addr[16].IN1 +rf_sink_data[53] => rf_sink_addr[17].IN1 +rf_sink_data[54] => rf_sink_addr[18].IN1 +rf_sink_data[55] => rf_sink_compressed.IN1 +rf_sink_data[56] => rp_data[56].DATAIN +rf_sink_data[57] => comb.OUTPUTSELECT +rf_sink_data[57] => rp_data[57].DATAIN +rf_sink_data[58] => rp_data.IN0 +rf_sink_data[59] => rp_data[59].DATAIN +rf_sink_data[60] => rp_data[60].DATAIN +rf_sink_data[61] => rf_sink_byte_cnt[0].IN1 +rf_sink_data[62] => rf_sink_byte_cnt[1].IN1 +rf_sink_data[63] => rf_sink_byte_cnt[2].IN1 +rf_sink_data[64] => rf_sink_burstwrap[0].IN1 +rf_sink_data[65] => rf_sink_burstwrap[1].IN1 +rf_sink_data[66] => rf_sink_burstwrap[2].IN1 +rf_sink_data[67] => rf_sink_burstsize[0].IN1 +rf_sink_data[68] => rf_sink_burstsize[1].IN1 +rf_sink_data[69] => rf_sink_burstsize[2].IN1 +rf_sink_data[70] => rp_data[70].DATAIN +rf_sink_data[71] => rp_data[71].DATAIN +rf_sink_data[72] => rp_data[72].DATAIN +rf_sink_data[73] => rp_data[73].DATAIN +rf_sink_data[74] => rp_data[74].DATAIN +rf_sink_data[75] => rp_data[75].DATAIN +rf_sink_data[76] => rp_data[81].DATAIN +rf_sink_data[77] => rp_data[82].DATAIN +rf_sink_data[78] => rp_data[83].DATAIN +rf_sink_data[79] => rp_data[84].DATAIN +rf_sink_data[80] => rp_data[85].DATAIN +rf_sink_data[81] => rp_data[76].DATAIN +rf_sink_data[82] => rp_data[77].DATAIN +rf_sink_data[83] => rp_data[78].DATAIN +rf_sink_data[84] => rp_data[79].DATAIN +rf_sink_data[85] => rp_data[80].DATAIN +rf_sink_data[86] => rp_data[86].DATAIN +rf_sink_data[87] => rp_data[87].DATAIN +rf_sink_data[88] => rp_data[88].DATAIN +rf_sink_data[89] => rp_data[89].DATAIN +rf_sink_data[90] => rp_data[90].DATAIN +rf_sink_data[91] => rp_data[91].DATAIN +rf_sink_data[92] => rp_data[92].DATAIN +rf_sink_data[93] => rp_data[93].DATAIN +rf_sink_data[94] => ~NO_FANOUT~ +rf_sink_data[95] => ~NO_FANOUT~ +rf_sink_data[96] => rdata_fifo_sink_ready.IN0 +rf_sink_data[96] => comb.IN0 +rf_sink_valid => rdata_fifo_sink_ready.IN1 +rf_sink_valid => comb.IN1 +rf_sink_startofpacket => comb.DATAA +rf_sink_endofpacket => rf_sink_endofpacket.IN1 +rf_sink_ready <= altera_merlin_burst_uncompressor:uncompressor.sink_ready +rdata_fifo_src_data[0] <= m0_readdata[0].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[1] <= m0_readdata[1].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[2] <= m0_readdata[2].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[3] <= m0_readdata[3].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[4] <= m0_readdata[4].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[5] <= m0_readdata[5].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[6] <= m0_readdata[6].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[7] <= m0_readdata[7].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[8] <= m0_readdata[8].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[9] <= m0_readdata[9].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[10] <= m0_readdata[10].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[11] <= m0_readdata[11].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[12] <= m0_readdata[12].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[13] <= m0_readdata[13].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[14] <= m0_readdata[14].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[15] <= m0_readdata[15].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[16] <= m0_readdata[16].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[17] <= m0_readdata[17].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[18] <= m0_readdata[18].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[19] <= m0_readdata[19].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[20] <= m0_readdata[20].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[21] <= m0_readdata[21].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[22] <= m0_readdata[22].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[23] <= m0_readdata[23].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[24] <= m0_readdata[24].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[25] <= m0_readdata[25].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[26] <= m0_readdata[26].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[27] <= m0_readdata[27].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[28] <= m0_readdata[28].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[29] <= m0_readdata[29].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[30] <= m0_readdata[30].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[31] <= m0_readdata[31].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[32] <= m0_response[0].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[33] <= m0_response[1].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_valid <= rdata_fifo_src_valid.DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_ready => ~NO_FANOUT~ +rdata_fifo_sink_data[0] => rp_data[0].DATAIN +rdata_fifo_sink_data[1] => rp_data[1].DATAIN +rdata_fifo_sink_data[2] => rp_data[2].DATAIN +rdata_fifo_sink_data[3] => rp_data[3].DATAIN +rdata_fifo_sink_data[4] => rp_data[4].DATAIN +rdata_fifo_sink_data[5] => rp_data[5].DATAIN +rdata_fifo_sink_data[6] => rp_data[6].DATAIN +rdata_fifo_sink_data[7] => rp_data[7].DATAIN +rdata_fifo_sink_data[8] => rp_data[8].DATAIN +rdata_fifo_sink_data[9] => rp_data[9].DATAIN +rdata_fifo_sink_data[10] => rp_data[10].DATAIN +rdata_fifo_sink_data[11] => rp_data[11].DATAIN +rdata_fifo_sink_data[12] => rp_data[12].DATAIN +rdata_fifo_sink_data[13] => rp_data[13].DATAIN +rdata_fifo_sink_data[14] => rp_data[14].DATAIN +rdata_fifo_sink_data[15] => rp_data[15].DATAIN +rdata_fifo_sink_data[16] => rp_data[16].DATAIN +rdata_fifo_sink_data[17] => rp_data[17].DATAIN +rdata_fifo_sink_data[18] => rp_data[18].DATAIN +rdata_fifo_sink_data[19] => rp_data[19].DATAIN +rdata_fifo_sink_data[20] => rp_data[20].DATAIN +rdata_fifo_sink_data[21] => rp_data[21].DATAIN +rdata_fifo_sink_data[22] => rp_data[22].DATAIN +rdata_fifo_sink_data[23] => rp_data[23].DATAIN +rdata_fifo_sink_data[24] => rp_data[24].DATAIN +rdata_fifo_sink_data[25] => rp_data[25].DATAIN +rdata_fifo_sink_data[26] => rp_data[26].DATAIN +rdata_fifo_sink_data[27] => rp_data[27].DATAIN +rdata_fifo_sink_data[28] => rp_data[28].DATAIN +rdata_fifo_sink_data[29] => rp_data[29].DATAIN +rdata_fifo_sink_data[30] => rp_data[30].DATAIN +rdata_fifo_sink_data[31] => rp_data[31].DATAIN +rdata_fifo_sink_data[32] => rp_data[94].DATAIN +rdata_fifo_sink_data[33] => rp_data[95].DATAIN +rdata_fifo_sink_valid => rp_valid.IN1 +rdata_fifo_sink_valid => rdata_fifo_sink_ready.IN0 +rdata_fifo_sink_valid => comb.IN1 +rdata_fifo_sink_ready <= rdata_fifo_sink_ready.DB_MAX_OUTPUT_PORT_TYPE +cp_ready <= cp_ready.DB_MAX_OUTPUT_PORT_TYPE +cp_valid => local_lock.IN0 +cp_valid => local_write.IN0 +cp_valid => local_read.IN0 +cp_valid => local_compressed_read.IN0 +cp_data[0] => m0_writedata[0].DATAIN +cp_data[1] => m0_writedata[1].DATAIN +cp_data[2] => m0_writedata[2].DATAIN +cp_data[3] => m0_writedata[3].DATAIN +cp_data[4] => m0_writedata[4].DATAIN +cp_data[5] => m0_writedata[5].DATAIN +cp_data[6] => m0_writedata[6].DATAIN +cp_data[7] => m0_writedata[7].DATAIN +cp_data[8] => m0_writedata[8].DATAIN +cp_data[9] => m0_writedata[9].DATAIN +cp_data[10] => m0_writedata[10].DATAIN +cp_data[11] => m0_writedata[11].DATAIN +cp_data[12] => m0_writedata[12].DATAIN +cp_data[13] => m0_writedata[13].DATAIN +cp_data[14] => m0_writedata[14].DATAIN +cp_data[15] => m0_writedata[15].DATAIN +cp_data[16] => m0_writedata[16].DATAIN +cp_data[17] => m0_writedata[17].DATAIN +cp_data[18] => m0_writedata[18].DATAIN +cp_data[19] => m0_writedata[19].DATAIN +cp_data[20] => m0_writedata[20].DATAIN +cp_data[21] => m0_writedata[21].DATAIN +cp_data[22] => m0_writedata[22].DATAIN +cp_data[23] => m0_writedata[23].DATAIN +cp_data[24] => m0_writedata[24].DATAIN +cp_data[25] => m0_writedata[25].DATAIN +cp_data[26] => m0_writedata[26].DATAIN +cp_data[27] => m0_writedata[27].DATAIN +cp_data[28] => m0_writedata[28].DATAIN +cp_data[29] => m0_writedata[29].DATAIN +cp_data[30] => m0_writedata[30].DATAIN +cp_data[31] => m0_writedata[31].DATAIN +cp_data[32] => rf_source_data[32].DATAIN +cp_data[32] => m0_byteenable[0].DATAIN +cp_data[33] => rf_source_data[33].DATAIN +cp_data[33] => m0_byteenable[1].DATAIN +cp_data[34] => rf_source_data[34].DATAIN +cp_data[34] => m0_byteenable[2].DATAIN +cp_data[35] => rf_source_data[35].DATAIN +cp_data[35] => m0_byteenable[3].DATAIN +cp_data[36] => rf_source_data[36].DATAIN +cp_data[37] => rf_source_data[37].DATAIN +cp_data[38] => rf_source_data[38].DATAIN +cp_data[38] => m0_address[2].DATAIN +cp_data[39] => rf_source_data[39].DATAIN +cp_data[39] => m0_address[3].DATAIN +cp_data[40] => rf_source_data[40].DATAIN +cp_data[40] => m0_address[4].DATAIN +cp_data[41] => rf_source_data[41].DATAIN +cp_data[41] => m0_address[5].DATAIN +cp_data[42] => rf_source_data[42].DATAIN +cp_data[42] => m0_address[6].DATAIN +cp_data[43] => rf_source_data[43].DATAIN +cp_data[43] => m0_address[7].DATAIN +cp_data[44] => rf_source_data[44].DATAIN +cp_data[44] => m0_address[8].DATAIN +cp_data[45] => rf_source_data[45].DATAIN +cp_data[45] => m0_address[9].DATAIN +cp_data[46] => rf_source_data[46].DATAIN +cp_data[46] => m0_address[10].DATAIN +cp_data[47] => rf_source_data[47].DATAIN +cp_data[47] => m0_address[11].DATAIN +cp_data[48] => rf_source_data[48].DATAIN +cp_data[48] => m0_address[12].DATAIN +cp_data[49] => rf_source_data[49].DATAIN +cp_data[49] => m0_address[13].DATAIN +cp_data[50] => rf_source_data[50].DATAIN +cp_data[50] => m0_address[14].DATAIN +cp_data[51] => rf_source_data[51].DATAIN +cp_data[51] => m0_address[15].DATAIN +cp_data[52] => rf_source_data[52].DATAIN +cp_data[52] => m0_address[16].DATAIN +cp_data[53] => rf_source_data[53].DATAIN +cp_data[53] => m0_address[17].DATAIN +cp_data[54] => rf_source_data[54].DATAIN +cp_data[54] => m0_address[18].DATAIN +cp_data[55] => local_compressed_read.IN1 +cp_data[55] => rf_source_data[55].DATAIN +cp_data[56] => rf_source_data[56].DATAIN +cp_data[56] => m0_writeresponserequest.IN1 +cp_data[56] => comb.IN1 +cp_data[57] => local_write.IN1 +cp_data[57] => rf_source_data[57].DATAIN +cp_data[58] => local_read.IN1 +cp_data[58] => rf_source_data[58].DATAIN +cp_data[59] => local_lock.IN1 +cp_data[59] => rf_source_data[59].DATAIN +cp_data[60] => rf_source_data[60].DATAIN +cp_data[61] => m0_burstcount.DATAA +cp_data[61] => rf_source_data[61].DATAIN +cp_data[62] => m0_burstcount.DATAA +cp_data[62] => rf_source_data[62].DATAIN +cp_data[63] => m0_burstcount.DATAA +cp_data[63] => rf_source_data[63].DATAIN +cp_data[64] => rf_source_data[64].DATAIN +cp_data[65] => rf_source_data[65].DATAIN +cp_data[66] => rf_source_data[66].DATAIN +cp_data[67] => rf_source_data[67].DATAIN +cp_data[68] => rf_source_data[68].DATAIN +cp_data[69] => rf_source_data[69].DATAIN +cp_data[70] => rf_source_data[70].DATAIN +cp_data[71] => rf_source_data[71].DATAIN +cp_data[72] => rf_source_data[72].DATAIN +cp_data[73] => rf_source_data[73].DATAIN +cp_data[74] => rf_source_data[74].DATAIN +cp_data[75] => rf_source_data[75].DATAIN +cp_data[76] => rf_source_data[76].DATAIN +cp_data[77] => rf_source_data[77].DATAIN +cp_data[78] => rf_source_data[78].DATAIN +cp_data[79] => rf_source_data[79].DATAIN +cp_data[80] => rf_source_data[80].DATAIN +cp_data[81] => rf_source_data[81].DATAIN +cp_data[82] => rf_source_data[82].DATAIN +cp_data[83] => rf_source_data[83].DATAIN +cp_data[84] => rf_source_data[84].DATAIN +cp_data[85] => rf_source_data[85].DATAIN +cp_data[86] => rf_source_data[86].DATAIN +cp_data[87] => rf_source_data[87].DATAIN +cp_data[87] => m0_debugaccess.DATAIN +cp_data[88] => ~NO_FANOUT~ +cp_data[89] => ~NO_FANOUT~ +cp_data[90] => rf_source_data[90].DATAIN +cp_data[91] => rf_source_data[91].DATAIN +cp_data[92] => rf_source_data[92].DATAIN +cp_data[93] => rf_source_data[93].DATAIN +cp_data[94] => rf_source_data[94].DATAIN +cp_data[95] => rf_source_data[95].DATAIN +cp_channel[0] => ~NO_FANOUT~ +cp_channel[1] => ~NO_FANOUT~ +cp_channel[2] => ~NO_FANOUT~ +cp_channel[3] => ~NO_FANOUT~ +cp_channel[4] => ~NO_FANOUT~ +cp_channel[5] => ~NO_FANOUT~ +cp_channel[6] => ~NO_FANOUT~ +cp_channel[7] => ~NO_FANOUT~ +cp_channel[8] => ~NO_FANOUT~ +cp_channel[9] => ~NO_FANOUT~ +cp_channel[10] => ~NO_FANOUT~ +cp_channel[11] => ~NO_FANOUT~ +cp_channel[12] => ~NO_FANOUT~ +cp_channel[13] => ~NO_FANOUT~ +cp_channel[14] => ~NO_FANOUT~ +cp_channel[15] => ~NO_FANOUT~ +cp_channel[16] => ~NO_FANOUT~ +cp_channel[17] => ~NO_FANOUT~ +cp_startofpacket => rf_source_startofpacket.DATAIN +cp_endofpacket => nonposted_write_endofpacket.IN1 +cp_endofpacket => rf_source_endofpacket.DATAIN +rp_ready => rp_ready.IN1 +rp_valid <= rp_valid.DB_MAX_OUTPUT_PORT_TYPE +rp_data[0] <= rdata_fifo_sink_data[0].DB_MAX_OUTPUT_PORT_TYPE +rp_data[1] <= rdata_fifo_sink_data[1].DB_MAX_OUTPUT_PORT_TYPE +rp_data[2] <= rdata_fifo_sink_data[2].DB_MAX_OUTPUT_PORT_TYPE +rp_data[3] <= rdata_fifo_sink_data[3].DB_MAX_OUTPUT_PORT_TYPE +rp_data[4] <= rdata_fifo_sink_data[4].DB_MAX_OUTPUT_PORT_TYPE +rp_data[5] <= rdata_fifo_sink_data[5].DB_MAX_OUTPUT_PORT_TYPE +rp_data[6] <= rdata_fifo_sink_data[6].DB_MAX_OUTPUT_PORT_TYPE +rp_data[7] <= rdata_fifo_sink_data[7].DB_MAX_OUTPUT_PORT_TYPE +rp_data[8] <= rdata_fifo_sink_data[8].DB_MAX_OUTPUT_PORT_TYPE +rp_data[9] <= rdata_fifo_sink_data[9].DB_MAX_OUTPUT_PORT_TYPE +rp_data[10] <= rdata_fifo_sink_data[10].DB_MAX_OUTPUT_PORT_TYPE +rp_data[11] <= rdata_fifo_sink_data[11].DB_MAX_OUTPUT_PORT_TYPE +rp_data[12] <= rdata_fifo_sink_data[12].DB_MAX_OUTPUT_PORT_TYPE +rp_data[13] <= rdata_fifo_sink_data[13].DB_MAX_OUTPUT_PORT_TYPE +rp_data[14] <= rdata_fifo_sink_data[14].DB_MAX_OUTPUT_PORT_TYPE +rp_data[15] <= rdata_fifo_sink_data[15].DB_MAX_OUTPUT_PORT_TYPE +rp_data[16] <= rdata_fifo_sink_data[16].DB_MAX_OUTPUT_PORT_TYPE +rp_data[17] <= rdata_fifo_sink_data[17].DB_MAX_OUTPUT_PORT_TYPE +rp_data[18] <= rdata_fifo_sink_data[18].DB_MAX_OUTPUT_PORT_TYPE +rp_data[19] <= rdata_fifo_sink_data[19].DB_MAX_OUTPUT_PORT_TYPE +rp_data[20] <= rdata_fifo_sink_data[20].DB_MAX_OUTPUT_PORT_TYPE +rp_data[21] <= rdata_fifo_sink_data[21].DB_MAX_OUTPUT_PORT_TYPE +rp_data[22] <= rdata_fifo_sink_data[22].DB_MAX_OUTPUT_PORT_TYPE +rp_data[23] <= rdata_fifo_sink_data[23].DB_MAX_OUTPUT_PORT_TYPE +rp_data[24] <= rdata_fifo_sink_data[24].DB_MAX_OUTPUT_PORT_TYPE +rp_data[25] <= rdata_fifo_sink_data[25].DB_MAX_OUTPUT_PORT_TYPE +rp_data[26] <= rdata_fifo_sink_data[26].DB_MAX_OUTPUT_PORT_TYPE +rp_data[27] <= rdata_fifo_sink_data[27].DB_MAX_OUTPUT_PORT_TYPE +rp_data[28] <= rdata_fifo_sink_data[28].DB_MAX_OUTPUT_PORT_TYPE +rp_data[29] <= rdata_fifo_sink_data[29].DB_MAX_OUTPUT_PORT_TYPE +rp_data[30] <= rdata_fifo_sink_data[30].DB_MAX_OUTPUT_PORT_TYPE +rp_data[31] <= rdata_fifo_sink_data[31].DB_MAX_OUTPUT_PORT_TYPE +rp_data[32] <= rf_sink_data[32].DB_MAX_OUTPUT_PORT_TYPE +rp_data[33] <= rf_sink_data[33].DB_MAX_OUTPUT_PORT_TYPE +rp_data[34] <= rf_sink_data[34].DB_MAX_OUTPUT_PORT_TYPE +rp_data[35] <= rf_sink_data[35].DB_MAX_OUTPUT_PORT_TYPE +rp_data[36] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[37] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[38] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[39] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[40] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[41] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[42] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[43] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[44] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[45] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[46] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[47] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[48] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[49] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[50] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[51] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[52] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[53] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[54] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[55] <= altera_merlin_burst_uncompressor:uncompressor.source_is_compressed +rp_data[56] <= rf_sink_data[56].DB_MAX_OUTPUT_PORT_TYPE +rp_data[57] <= rf_sink_data[57].DB_MAX_OUTPUT_PORT_TYPE +rp_data[58] <= rp_data.DB_MAX_OUTPUT_PORT_TYPE +rp_data[59] <= rf_sink_data[59].DB_MAX_OUTPUT_PORT_TYPE +rp_data[60] <= rf_sink_data[60].DB_MAX_OUTPUT_PORT_TYPE +rp_data[61] <= altera_merlin_burst_uncompressor:uncompressor.source_byte_cnt +rp_data[62] <= altera_merlin_burst_uncompressor:uncompressor.source_byte_cnt +rp_data[63] <= altera_merlin_burst_uncompressor:uncompressor.source_byte_cnt +rp_data[64] <= altera_merlin_burst_uncompressor:uncompressor.source_burstwrap +rp_data[65] <= altera_merlin_burst_uncompressor:uncompressor.source_burstwrap +rp_data[66] <= altera_merlin_burst_uncompressor:uncompressor.source_burstwrap +rp_data[67] <= altera_merlin_burst_uncompressor:uncompressor.source_burstsize +rp_data[68] <= altera_merlin_burst_uncompressor:uncompressor.source_burstsize +rp_data[69] <= altera_merlin_burst_uncompressor:uncompressor.source_burstsize +rp_data[70] <= rf_sink_data[70].DB_MAX_OUTPUT_PORT_TYPE +rp_data[71] <= rf_sink_data[71].DB_MAX_OUTPUT_PORT_TYPE +rp_data[72] <= rf_sink_data[72].DB_MAX_OUTPUT_PORT_TYPE +rp_data[73] <= rf_sink_data[73].DB_MAX_OUTPUT_PORT_TYPE +rp_data[74] <= rf_sink_data[74].DB_MAX_OUTPUT_PORT_TYPE +rp_data[75] <= rf_sink_data[75].DB_MAX_OUTPUT_PORT_TYPE +rp_data[76] <= rf_sink_data[81].DB_MAX_OUTPUT_PORT_TYPE +rp_data[77] <= rf_sink_data[82].DB_MAX_OUTPUT_PORT_TYPE +rp_data[78] <= rf_sink_data[83].DB_MAX_OUTPUT_PORT_TYPE +rp_data[79] <= rf_sink_data[84].DB_MAX_OUTPUT_PORT_TYPE +rp_data[80] <= rf_sink_data[85].DB_MAX_OUTPUT_PORT_TYPE +rp_data[81] <= rf_sink_data[76].DB_MAX_OUTPUT_PORT_TYPE +rp_data[82] <= rf_sink_data[77].DB_MAX_OUTPUT_PORT_TYPE +rp_data[83] <= rf_sink_data[78].DB_MAX_OUTPUT_PORT_TYPE +rp_data[84] <= rf_sink_data[79].DB_MAX_OUTPUT_PORT_TYPE +rp_data[85] <= rf_sink_data[80].DB_MAX_OUTPUT_PORT_TYPE +rp_data[86] <= rf_sink_data[86].DB_MAX_OUTPUT_PORT_TYPE +rp_data[87] <= rf_sink_data[87].DB_MAX_OUTPUT_PORT_TYPE +rp_data[88] <= rf_sink_data[88].DB_MAX_OUTPUT_PORT_TYPE +rp_data[89] <= rf_sink_data[89].DB_MAX_OUTPUT_PORT_TYPE +rp_data[90] <= rf_sink_data[90].DB_MAX_OUTPUT_PORT_TYPE +rp_data[91] <= rf_sink_data[91].DB_MAX_OUTPUT_PORT_TYPE +rp_data[92] <= rf_sink_data[92].DB_MAX_OUTPUT_PORT_TYPE +rp_data[93] <= rf_sink_data[93].DB_MAX_OUTPUT_PORT_TYPE +rp_data[94] <= rdata_fifo_sink_data[32].DB_MAX_OUTPUT_PORT_TYPE +rp_data[95] <= rdata_fifo_sink_data[33].DB_MAX_OUTPUT_PORT_TYPE +rp_startofpacket <= altera_merlin_burst_uncompressor:uncompressor.source_startofpacket +rp_endofpacket <= altera_merlin_burst_uncompressor:uncompressor.source_endofpacket + + +|lights|nios_system:NiosII|altera_merlin_slave_agent:hex0_s1_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor +clk => burst_uncompress_address_offset[0].CLK +clk => burst_uncompress_address_offset[1].CLK +clk => burst_uncompress_address_offset[2].CLK +clk => burst_uncompress_address_offset[3].CLK +clk => burst_uncompress_address_offset[4].CLK +clk => burst_uncompress_address_offset[5].CLK +clk => burst_uncompress_address_offset[6].CLK +clk => burst_uncompress_address_offset[7].CLK +clk => burst_uncompress_address_offset[8].CLK +clk => burst_uncompress_address_offset[9].CLK +clk => burst_uncompress_address_offset[10].CLK +clk => burst_uncompress_address_offset[11].CLK +clk => burst_uncompress_address_offset[12].CLK +clk => burst_uncompress_address_offset[13].CLK +clk => burst_uncompress_address_offset[14].CLK +clk => burst_uncompress_address_offset[15].CLK +clk => burst_uncompress_address_offset[16].CLK +clk => burst_uncompress_address_offset[17].CLK +clk => burst_uncompress_address_offset[18].CLK +clk => burst_uncompress_address_base[0].CLK +clk => burst_uncompress_address_base[1].CLK +clk => burst_uncompress_address_base[2].CLK +clk => burst_uncompress_address_base[3].CLK +clk => burst_uncompress_address_base[4].CLK +clk => burst_uncompress_address_base[5].CLK +clk => burst_uncompress_address_base[6].CLK +clk => burst_uncompress_address_base[7].CLK +clk => burst_uncompress_address_base[8].CLK +clk => burst_uncompress_address_base[9].CLK +clk => burst_uncompress_address_base[10].CLK +clk => burst_uncompress_address_base[11].CLK +clk => burst_uncompress_address_base[12].CLK +clk => burst_uncompress_address_base[13].CLK +clk => burst_uncompress_address_base[14].CLK +clk => burst_uncompress_address_base[15].CLK +clk => burst_uncompress_address_base[16].CLK +clk => burst_uncompress_address_base[17].CLK +clk => burst_uncompress_address_base[18].CLK +clk => burst_uncompress_byte_counter[0].CLK +clk => burst_uncompress_byte_counter[1].CLK +clk => burst_uncompress_byte_counter[2].CLK +clk => burst_uncompress_busy.CLK +reset => burst_uncompress_address_offset[0].ACLR +reset => burst_uncompress_address_offset[1].ACLR +reset => burst_uncompress_address_offset[2].ACLR +reset => burst_uncompress_address_offset[3].ACLR +reset => burst_uncompress_address_offset[4].ACLR +reset => burst_uncompress_address_offset[5].ACLR +reset => burst_uncompress_address_offset[6].ACLR +reset => burst_uncompress_address_offset[7].ACLR +reset => burst_uncompress_address_offset[8].ACLR +reset => burst_uncompress_address_offset[9].ACLR +reset => burst_uncompress_address_offset[10].ACLR +reset => burst_uncompress_address_offset[11].ACLR +reset => burst_uncompress_address_offset[12].ACLR +reset => burst_uncompress_address_offset[13].ACLR +reset => burst_uncompress_address_offset[14].ACLR +reset => burst_uncompress_address_offset[15].ACLR +reset => burst_uncompress_address_offset[16].ACLR +reset => burst_uncompress_address_offset[17].ACLR +reset => burst_uncompress_address_offset[18].ACLR +reset => burst_uncompress_address_base[0].ACLR +reset => burst_uncompress_address_base[1].ACLR +reset => burst_uncompress_address_base[2].ACLR +reset => burst_uncompress_address_base[3].ACLR +reset => burst_uncompress_address_base[4].ACLR +reset => burst_uncompress_address_base[5].ACLR +reset => burst_uncompress_address_base[6].ACLR +reset => burst_uncompress_address_base[7].ACLR +reset => burst_uncompress_address_base[8].ACLR +reset => burst_uncompress_address_base[9].ACLR +reset => burst_uncompress_address_base[10].ACLR +reset => burst_uncompress_address_base[11].ACLR +reset => burst_uncompress_address_base[12].ACLR +reset => burst_uncompress_address_base[13].ACLR +reset => burst_uncompress_address_base[14].ACLR +reset => burst_uncompress_address_base[15].ACLR +reset => burst_uncompress_address_base[16].ACLR +reset => burst_uncompress_address_base[17].ACLR +reset => burst_uncompress_address_base[18].ACLR +reset => burst_uncompress_byte_counter[0].ACLR +reset => burst_uncompress_byte_counter[1].ACLR +reset => burst_uncompress_byte_counter[2].ACLR +reset => burst_uncompress_busy.ACLR +sink_startofpacket => source_startofpacket.IN1 +sink_endofpacket => source_endofpacket.IN1 +sink_valid => first_packet_beat.IN1 +sink_valid => last_packet_beat.IN1 +sink_valid => last_packet_beat.IN1 +sink_valid => always0.IN1 +sink_valid => sink_ready.IN0 +sink_valid => source_valid.DATAIN +sink_ready <= sink_ready.DB_MAX_OUTPUT_PORT_TYPE +sink_addr[0] => burst_uncompress_address_base.IN0 +sink_addr[0] => comb.DATAB +sink_addr[0] => source_addr.DATAB +sink_addr[1] => burst_uncompress_address_base.IN0 +sink_addr[1] => comb.DATAB +sink_addr[1] => source_addr.DATAB +sink_addr[2] => burst_uncompress_address_base.IN0 +sink_addr[2] => comb.DATAB +sink_addr[2] => source_addr.DATAB +sink_addr[3] => burst_uncompress_address_base.IN0 +sink_addr[3] => comb.DATAB +sink_addr[3] => source_addr.DATAB +sink_addr[4] => burst_uncompress_address_base.IN0 +sink_addr[4] => comb.DATAB +sink_addr[4] => source_addr.DATAB +sink_addr[5] => burst_uncompress_address_base.IN0 +sink_addr[5] => comb.DATAB +sink_addr[5] => source_addr.DATAB +sink_addr[6] => burst_uncompress_address_base.IN0 +sink_addr[6] => comb.DATAB +sink_addr[6] => source_addr.DATAB +sink_addr[7] => burst_uncompress_address_base.IN0 +sink_addr[7] => comb.DATAB +sink_addr[7] => source_addr.DATAB +sink_addr[8] => burst_uncompress_address_base.IN0 +sink_addr[8] => comb.DATAB +sink_addr[8] => source_addr.DATAB +sink_addr[9] => burst_uncompress_address_base.IN0 +sink_addr[9] => comb.DATAB +sink_addr[9] => source_addr.DATAB +sink_addr[10] => burst_uncompress_address_base.IN0 +sink_addr[10] => comb.DATAB +sink_addr[10] => source_addr.DATAB +sink_addr[11] => burst_uncompress_address_base.IN0 +sink_addr[11] => comb.DATAB +sink_addr[11] => source_addr.DATAB +sink_addr[12] => burst_uncompress_address_base.IN0 +sink_addr[12] => comb.DATAB +sink_addr[12] => source_addr.DATAB +sink_addr[13] => burst_uncompress_address_base.IN0 +sink_addr[13] => comb.DATAB +sink_addr[13] => source_addr.DATAB +sink_addr[14] => burst_uncompress_address_base.IN0 +sink_addr[14] => comb.DATAB +sink_addr[14] => source_addr.DATAB +sink_addr[15] => burst_uncompress_address_base.IN0 +sink_addr[15] => comb.DATAB +sink_addr[15] => source_addr.DATAB +sink_addr[16] => burst_uncompress_address_base.IN0 +sink_addr[16] => comb.DATAB +sink_addr[16] => source_addr.DATAB +sink_addr[17] => burst_uncompress_address_base.IN0 +sink_addr[17] => comb.DATAB +sink_addr[17] => source_addr.DATAB +sink_addr[18] => burst_uncompress_address_base.IN0 +sink_addr[18] => comb.DATAB +sink_addr[18] => source_addr.DATAB +sink_burstwrap[0] => p1_burst_uncompress_address_offset[0].IN1 +sink_burstwrap[0] => source_burstwrap[0].DATAIN +sink_burstwrap[0] => burst_uncompress_address_base.IN1 +sink_burstwrap[1] => p1_burst_uncompress_address_offset[1].IN1 +sink_burstwrap[1] => source_burstwrap[1].DATAIN +sink_burstwrap[1] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[2].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[18].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[17].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[16].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[15].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[14].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[13].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[12].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[11].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[10].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[9].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[8].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[7].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[6].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[5].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[4].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[3].IN1 +sink_burstwrap[2] => source_burstwrap[2].DATAIN +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_byte_cnt[0] => source_byte_cnt.DATAB +sink_byte_cnt[0] => Add1.IN6 +sink_byte_cnt[0] => Equal1.IN2 +sink_byte_cnt[1] => source_byte_cnt.DATAB +sink_byte_cnt[1] => Add1.IN5 +sink_byte_cnt[1] => Equal1.IN1 +sink_byte_cnt[2] => source_byte_cnt.DATAB +sink_byte_cnt[2] => Add1.IN4 +sink_byte_cnt[2] => Equal1.IN0 +sink_is_compressed => last_packet_beat.IN1 +sink_burstsize[0] => Decoder0.IN2 +sink_burstsize[0] => source_burstsize[0].DATAIN +sink_burstsize[1] => Decoder0.IN1 +sink_burstsize[1] => source_burstsize[1].DATAIN +sink_burstsize[2] => Decoder0.IN0 +sink_burstsize[2] => source_burstsize[2].DATAIN +source_startofpacket <= source_startofpacket.DB_MAX_OUTPUT_PORT_TYPE +source_endofpacket <= source_endofpacket.DB_MAX_OUTPUT_PORT_TYPE +source_valid <= sink_valid.DB_MAX_OUTPUT_PORT_TYPE +source_ready => always1.IN1 +source_ready => sink_ready.IN1 +source_addr[0] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[1] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[2] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[3] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[4] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[5] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[6] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[7] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[8] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[9] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[10] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[11] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[12] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[13] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[14] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[15] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[16] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[17] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[18] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_burstwrap[0] <= sink_burstwrap[0].DB_MAX_OUTPUT_PORT_TYPE +source_burstwrap[1] <= sink_burstwrap[1].DB_MAX_OUTPUT_PORT_TYPE +source_burstwrap[2] <= sink_burstwrap[2].DB_MAX_OUTPUT_PORT_TYPE +source_byte_cnt[0] <= source_byte_cnt.DB_MAX_OUTPUT_PORT_TYPE +source_byte_cnt[1] <= source_byte_cnt.DB_MAX_OUTPUT_PORT_TYPE +source_byte_cnt[2] <= source_byte_cnt.DB_MAX_OUTPUT_PORT_TYPE +source_is_compressed <= +source_burstsize[0] <= sink_burstsize[0].DB_MAX_OUTPUT_PORT_TYPE +source_burstsize[1] <= sink_burstsize[1].DB_MAX_OUTPUT_PORT_TYPE +source_burstsize[2] <= sink_burstsize[2].DB_MAX_OUTPUT_PORT_TYPE + + +|lights|nios_system:NiosII|altera_avalon_sc_fifo:hex0_s1_translator_avalon_universal_slave_0_agent_rsp_fifo +clk => csr_readdata[0]~reg0.CLK +clk => csr_readdata[1]~reg0.CLK +clk => csr_readdata[2]~reg0.CLK +clk => csr_readdata[3]~reg0.CLK +clk => csr_readdata[4]~reg0.CLK +clk => csr_readdata[5]~reg0.CLK +clk => csr_readdata[6]~reg0.CLK +clk => csr_readdata[7]~reg0.CLK +clk => csr_readdata[8]~reg0.CLK +clk => csr_readdata[9]~reg0.CLK +clk => csr_readdata[10]~reg0.CLK +clk => csr_readdata[11]~reg0.CLK +clk => csr_readdata[12]~reg0.CLK +clk => csr_readdata[13]~reg0.CLK +clk => csr_readdata[14]~reg0.CLK +clk => csr_readdata[15]~reg0.CLK +clk => csr_readdata[16]~reg0.CLK +clk => csr_readdata[17]~reg0.CLK +clk => csr_readdata[18]~reg0.CLK +clk => csr_readdata[19]~reg0.CLK +clk => csr_readdata[20]~reg0.CLK +clk => csr_readdata[21]~reg0.CLK +clk => csr_readdata[22]~reg0.CLK +clk => csr_readdata[23]~reg0.CLK +clk => csr_readdata[24]~reg0.CLK +clk => csr_readdata[25]~reg0.CLK +clk => csr_readdata[26]~reg0.CLK +clk => csr_readdata[27]~reg0.CLK +clk => csr_readdata[28]~reg0.CLK +clk => csr_readdata[29]~reg0.CLK +clk => csr_readdata[30]~reg0.CLK +clk => csr_readdata[31]~reg0.CLK +clk => mem_used[1].CLK +clk => mem_used[0].CLK +clk => mem[1][0].CLK +clk => mem[1][1].CLK +clk => mem[1][2].CLK +clk => mem[1][3].CLK +clk => mem[1][4].CLK +clk => mem[1][5].CLK +clk => mem[1][6].CLK +clk => mem[1][7].CLK +clk => mem[1][8].CLK +clk => mem[1][9].CLK +clk => mem[1][10].CLK +clk => mem[1][11].CLK +clk => mem[1][12].CLK +clk => mem[1][13].CLK +clk => mem[1][14].CLK +clk => mem[1][15].CLK +clk => mem[1][16].CLK +clk => mem[1][17].CLK +clk => mem[1][18].CLK +clk => mem[1][19].CLK +clk => mem[1][20].CLK +clk => mem[1][21].CLK +clk => mem[1][22].CLK +clk => mem[1][23].CLK +clk => mem[1][24].CLK +clk => mem[1][25].CLK +clk => mem[1][26].CLK +clk => mem[1][27].CLK +clk => mem[1][28].CLK +clk => mem[1][29].CLK +clk => mem[1][30].CLK +clk => mem[1][31].CLK +clk => mem[1][32].CLK +clk => mem[1][33].CLK +clk => mem[1][34].CLK +clk => mem[1][35].CLK +clk => mem[1][36].CLK +clk => mem[1][37].CLK +clk => mem[1][38].CLK +clk => mem[1][39].CLK +clk => mem[1][40].CLK +clk => mem[1][41].CLK +clk => mem[1][42].CLK +clk => mem[1][43].CLK +clk => mem[1][44].CLK +clk => mem[1][45].CLK +clk => mem[1][46].CLK +clk => mem[1][47].CLK +clk => mem[1][48].CLK +clk => mem[1][49].CLK +clk => mem[1][50].CLK +clk => mem[1][51].CLK +clk => mem[1][52].CLK +clk => mem[1][53].CLK +clk => mem[1][54].CLK +clk => mem[1][55].CLK +clk => mem[1][56].CLK +clk => mem[1][57].CLK +clk => mem[1][58].CLK +clk => mem[1][59].CLK +clk => mem[1][60].CLK +clk => mem[1][61].CLK +clk => mem[1][62].CLK +clk => mem[1][63].CLK +clk => mem[1][64].CLK +clk => mem[1][65].CLK +clk => mem[1][66].CLK +clk => mem[1][67].CLK +clk => mem[1][68].CLK +clk => mem[1][69].CLK +clk => mem[1][70].CLK +clk => mem[1][71].CLK +clk => mem[1][72].CLK +clk => mem[1][73].CLK +clk => mem[1][74].CLK +clk => mem[1][75].CLK +clk => mem[1][76].CLK +clk => mem[1][77].CLK +clk => mem[1][78].CLK +clk => mem[1][79].CLK +clk => mem[1][80].CLK +clk => mem[1][81].CLK +clk => mem[1][82].CLK +clk => mem[1][83].CLK +clk => mem[1][84].CLK +clk => mem[1][85].CLK +clk => mem[1][86].CLK +clk => mem[1][87].CLK +clk => mem[1][88].CLK +clk => mem[1][89].CLK +clk => mem[1][90].CLK +clk => mem[1][91].CLK +clk => mem[1][92].CLK +clk => mem[1][93].CLK +clk => mem[1][94].CLK +clk => mem[1][95].CLK +clk => mem[1][96].CLK +clk => mem[1][97].CLK +clk => mem[1][98].CLK +clk => mem[0][0].CLK +clk => mem[0][1].CLK +clk => mem[0][2].CLK +clk => mem[0][3].CLK +clk => mem[0][4].CLK +clk => mem[0][5].CLK +clk => mem[0][6].CLK +clk => mem[0][7].CLK +clk => mem[0][8].CLK +clk => mem[0][9].CLK +clk => mem[0][10].CLK +clk => mem[0][11].CLK +clk => mem[0][12].CLK +clk => mem[0][13].CLK +clk => mem[0][14].CLK +clk => mem[0][15].CLK +clk => mem[0][16].CLK +clk => mem[0][17].CLK +clk => mem[0][18].CLK +clk => mem[0][19].CLK +clk => mem[0][20].CLK +clk => mem[0][21].CLK +clk => mem[0][22].CLK +clk => mem[0][23].CLK +clk => mem[0][24].CLK +clk => mem[0][25].CLK +clk => mem[0][26].CLK +clk => mem[0][27].CLK +clk => mem[0][28].CLK +clk => mem[0][29].CLK +clk => mem[0][30].CLK +clk => mem[0][31].CLK +clk => mem[0][32].CLK +clk => mem[0][33].CLK +clk => mem[0][34].CLK +clk => mem[0][35].CLK +clk => mem[0][36].CLK +clk => mem[0][37].CLK +clk => mem[0][38].CLK +clk => mem[0][39].CLK +clk => mem[0][40].CLK +clk => mem[0][41].CLK +clk => mem[0][42].CLK +clk => mem[0][43].CLK +clk => mem[0][44].CLK +clk => mem[0][45].CLK +clk => mem[0][46].CLK +clk => mem[0][47].CLK +clk => mem[0][48].CLK +clk => mem[0][49].CLK +clk => mem[0][50].CLK +clk => mem[0][51].CLK +clk => mem[0][52].CLK +clk => mem[0][53].CLK +clk => mem[0][54].CLK +clk => mem[0][55].CLK +clk => mem[0][56].CLK +clk => mem[0][57].CLK +clk => mem[0][58].CLK +clk => mem[0][59].CLK +clk => mem[0][60].CLK +clk => mem[0][61].CLK +clk => mem[0][62].CLK +clk => mem[0][63].CLK +clk => mem[0][64].CLK +clk => mem[0][65].CLK +clk => mem[0][66].CLK +clk => mem[0][67].CLK +clk => mem[0][68].CLK +clk => mem[0][69].CLK +clk => mem[0][70].CLK +clk => mem[0][71].CLK +clk => mem[0][72].CLK +clk => mem[0][73].CLK +clk => mem[0][74].CLK +clk => mem[0][75].CLK +clk => mem[0][76].CLK +clk => mem[0][77].CLK +clk => mem[0][78].CLK +clk => mem[0][79].CLK +clk => mem[0][80].CLK +clk => mem[0][81].CLK +clk => mem[0][82].CLK +clk => mem[0][83].CLK +clk => mem[0][84].CLK +clk => mem[0][85].CLK +clk => mem[0][86].CLK +clk => mem[0][87].CLK +clk => mem[0][88].CLK +clk => mem[0][89].CLK +clk => mem[0][90].CLK +clk => mem[0][91].CLK +clk => mem[0][92].CLK +clk => mem[0][93].CLK +clk => mem[0][94].CLK +clk => mem[0][95].CLK +clk => mem[0][96].CLK +clk => mem[0][97].CLK +clk => mem[0][98].CLK +reset => csr_readdata[0]~reg0.ACLR +reset => csr_readdata[1]~reg0.ACLR +reset => csr_readdata[2]~reg0.ACLR +reset => csr_readdata[3]~reg0.ACLR +reset => csr_readdata[4]~reg0.ACLR +reset => csr_readdata[5]~reg0.ACLR +reset => csr_readdata[6]~reg0.ACLR +reset => csr_readdata[7]~reg0.ACLR +reset => csr_readdata[8]~reg0.ACLR +reset => csr_readdata[9]~reg0.ACLR +reset => csr_readdata[10]~reg0.ACLR +reset => csr_readdata[11]~reg0.ACLR +reset => csr_readdata[12]~reg0.ACLR +reset => csr_readdata[13]~reg0.ACLR +reset => csr_readdata[14]~reg0.ACLR +reset => csr_readdata[15]~reg0.ACLR +reset => csr_readdata[16]~reg0.ACLR +reset => csr_readdata[17]~reg0.ACLR +reset => csr_readdata[18]~reg0.ACLR +reset => csr_readdata[19]~reg0.ACLR +reset => csr_readdata[20]~reg0.ACLR +reset => csr_readdata[21]~reg0.ACLR +reset => csr_readdata[22]~reg0.ACLR +reset => csr_readdata[23]~reg0.ACLR +reset => csr_readdata[24]~reg0.ACLR +reset => csr_readdata[25]~reg0.ACLR +reset => csr_readdata[26]~reg0.ACLR +reset => csr_readdata[27]~reg0.ACLR +reset => csr_readdata[28]~reg0.ACLR +reset => csr_readdata[29]~reg0.ACLR +reset => csr_readdata[30]~reg0.ACLR +reset => csr_readdata[31]~reg0.ACLR +reset => mem_used[1].ACLR +reset => mem_used[0].ACLR +reset => mem[1][0].ACLR +reset => mem[1][1].ACLR +reset => mem[1][2].ACLR +reset => mem[1][3].ACLR +reset => mem[1][4].ACLR +reset => mem[1][5].ACLR +reset => mem[1][6].ACLR +reset => mem[1][7].ACLR +reset => mem[1][8].ACLR +reset => mem[1][9].ACLR +reset => mem[1][10].ACLR +reset => mem[1][11].ACLR +reset => mem[1][12].ACLR +reset => mem[1][13].ACLR +reset => mem[1][14].ACLR +reset => mem[1][15].ACLR +reset => mem[1][16].ACLR +reset => mem[1][17].ACLR +reset => mem[1][18].ACLR +reset => mem[1][19].ACLR +reset => mem[1][20].ACLR +reset => mem[1][21].ACLR +reset => mem[1][22].ACLR +reset => mem[1][23].ACLR +reset => mem[1][24].ACLR +reset => mem[1][25].ACLR +reset => mem[1][26].ACLR +reset => mem[1][27].ACLR +reset => mem[1][28].ACLR +reset => mem[1][29].ACLR +reset => mem[1][30].ACLR +reset => mem[1][31].ACLR +reset => mem[1][32].ACLR +reset => mem[1][33].ACLR +reset => mem[1][34].ACLR +reset => mem[1][35].ACLR +reset => mem[1][36].ACLR +reset => mem[1][37].ACLR +reset => mem[1][38].ACLR +reset => mem[1][39].ACLR +reset => mem[1][40].ACLR +reset => mem[1][41].ACLR +reset => mem[1][42].ACLR +reset => mem[1][43].ACLR +reset => mem[1][44].ACLR +reset => mem[1][45].ACLR +reset => mem[1][46].ACLR +reset => mem[1][47].ACLR +reset => mem[1][48].ACLR +reset => mem[1][49].ACLR +reset => mem[1][50].ACLR +reset => mem[1][51].ACLR +reset => mem[1][52].ACLR +reset => mem[1][53].ACLR +reset => mem[1][54].ACLR +reset => mem[1][55].ACLR +reset => mem[1][56].ACLR +reset => mem[1][57].ACLR +reset => mem[1][58].ACLR +reset => mem[1][59].ACLR +reset => mem[1][60].ACLR +reset => mem[1][61].ACLR +reset => mem[1][62].ACLR +reset => mem[1][63].ACLR +reset => mem[1][64].ACLR +reset => mem[1][65].ACLR +reset => mem[1][66].ACLR +reset => mem[1][67].ACLR +reset => mem[1][68].ACLR +reset => mem[1][69].ACLR +reset => mem[1][70].ACLR +reset => mem[1][71].ACLR +reset => mem[1][72].ACLR +reset => mem[1][73].ACLR +reset => mem[1][74].ACLR +reset => mem[1][75].ACLR +reset => mem[1][76].ACLR +reset => mem[1][77].ACLR +reset => mem[1][78].ACLR +reset => mem[1][79].ACLR +reset => mem[1][80].ACLR +reset => mem[1][81].ACLR +reset => mem[1][82].ACLR +reset => mem[1][83].ACLR +reset => mem[1][84].ACLR +reset => mem[1][85].ACLR +reset => mem[1][86].ACLR +reset => mem[1][87].ACLR +reset => mem[1][88].ACLR +reset => mem[1][89].ACLR +reset => mem[1][90].ACLR +reset => mem[1][91].ACLR +reset => mem[1][92].ACLR +reset => mem[1][93].ACLR +reset => mem[1][94].ACLR +reset => mem[1][95].ACLR +reset => mem[1][96].ACLR +reset => mem[1][97].ACLR +reset => mem[1][98].ACLR +reset => mem[0][0].ACLR +reset => mem[0][1].ACLR +reset => mem[0][2].ACLR +reset => mem[0][3].ACLR +reset => mem[0][4].ACLR +reset => mem[0][5].ACLR +reset => mem[0][6].ACLR +reset => mem[0][7].ACLR +reset => mem[0][8].ACLR +reset => mem[0][9].ACLR +reset => mem[0][10].ACLR +reset => mem[0][11].ACLR +reset => mem[0][12].ACLR +reset => mem[0][13].ACLR +reset => mem[0][14].ACLR +reset => mem[0][15].ACLR +reset => mem[0][16].ACLR +reset => mem[0][17].ACLR +reset => mem[0][18].ACLR +reset => mem[0][19].ACLR +reset => mem[0][20].ACLR +reset => mem[0][21].ACLR +reset => mem[0][22].ACLR +reset => mem[0][23].ACLR +reset => mem[0][24].ACLR +reset => mem[0][25].ACLR +reset => mem[0][26].ACLR +reset => mem[0][27].ACLR +reset => mem[0][28].ACLR +reset => mem[0][29].ACLR +reset => mem[0][30].ACLR +reset => mem[0][31].ACLR +reset => mem[0][32].ACLR +reset => mem[0][33].ACLR +reset => mem[0][34].ACLR +reset => mem[0][35].ACLR +reset => mem[0][36].ACLR +reset => mem[0][37].ACLR +reset => mem[0][38].ACLR +reset => mem[0][39].ACLR +reset => mem[0][40].ACLR +reset => mem[0][41].ACLR +reset => mem[0][42].ACLR +reset => mem[0][43].ACLR +reset => mem[0][44].ACLR +reset => mem[0][45].ACLR +reset => mem[0][46].ACLR +reset => mem[0][47].ACLR +reset => mem[0][48].ACLR +reset => mem[0][49].ACLR +reset => mem[0][50].ACLR +reset => mem[0][51].ACLR +reset => mem[0][52].ACLR +reset => mem[0][53].ACLR +reset => mem[0][54].ACLR +reset => mem[0][55].ACLR +reset => mem[0][56].ACLR +reset => mem[0][57].ACLR +reset => mem[0][58].ACLR +reset => mem[0][59].ACLR +reset => mem[0][60].ACLR +reset => mem[0][61].ACLR +reset => mem[0][62].ACLR +reset => mem[0][63].ACLR +reset => mem[0][64].ACLR +reset => mem[0][65].ACLR +reset => mem[0][66].ACLR +reset => mem[0][67].ACLR +reset => mem[0][68].ACLR +reset => mem[0][69].ACLR +reset => mem[0][70].ACLR +reset => mem[0][71].ACLR +reset => mem[0][72].ACLR +reset => mem[0][73].ACLR +reset => mem[0][74].ACLR +reset => mem[0][75].ACLR +reset => mem[0][76].ACLR +reset => mem[0][77].ACLR +reset => mem[0][78].ACLR +reset => mem[0][79].ACLR +reset => mem[0][80].ACLR +reset => mem[0][81].ACLR +reset => mem[0][82].ACLR +reset => mem[0][83].ACLR +reset => mem[0][84].ACLR +reset => mem[0][85].ACLR +reset => mem[0][86].ACLR +reset => mem[0][87].ACLR +reset => mem[0][88].ACLR +reset => mem[0][89].ACLR +reset => mem[0][90].ACLR +reset => mem[0][91].ACLR +reset => mem[0][92].ACLR +reset => mem[0][93].ACLR +reset => mem[0][94].ACLR +reset => mem[0][95].ACLR +reset => mem[0][96].ACLR +reset => mem[0][97].ACLR +reset => mem[0][98].ACLR +in_data[0] => mem.DATAB +in_data[1] => mem.DATAB +in_data[2] => mem.DATAB +in_data[3] => mem.DATAB +in_data[4] => mem.DATAB +in_data[5] => mem.DATAB +in_data[6] => mem.DATAB +in_data[7] => mem.DATAB +in_data[8] => mem.DATAB +in_data[9] => mem.DATAB +in_data[10] => mem.DATAB +in_data[11] => mem.DATAB +in_data[12] => mem.DATAB +in_data[13] => mem.DATAB +in_data[14] => mem.DATAB +in_data[15] => mem.DATAB +in_data[16] => mem.DATAB +in_data[17] => mem.DATAB +in_data[18] => mem.DATAB +in_data[19] => mem.DATAB +in_data[20] => mem.DATAB +in_data[21] => mem.DATAB +in_data[22] => mem.DATAB +in_data[23] => mem.DATAB +in_data[24] => mem.DATAB +in_data[25] => mem.DATAB +in_data[26] => mem.DATAB +in_data[27] => mem.DATAB +in_data[28] => mem.DATAB +in_data[29] => mem.DATAB +in_data[30] => mem.DATAB +in_data[31] => mem.DATAB +in_data[32] => mem.DATAB +in_data[33] => mem.DATAB +in_data[34] => mem.DATAB +in_data[35] => mem.DATAB +in_data[36] => mem.DATAB +in_data[37] => mem.DATAB +in_data[38] => mem.DATAB +in_data[39] => mem.DATAB +in_data[40] => mem.DATAB +in_data[41] => mem.DATAB +in_data[42] => mem.DATAB +in_data[43] => mem.DATAB +in_data[44] => mem.DATAB +in_data[45] => mem.DATAB +in_data[46] => mem.DATAB +in_data[47] => mem.DATAB +in_data[48] => mem.DATAB +in_data[49] => mem.DATAB +in_data[50] => mem.DATAB +in_data[51] => mem.DATAB +in_data[52] => mem.DATAB +in_data[53] => mem.DATAB +in_data[54] => mem.DATAB +in_data[55] => mem.DATAB +in_data[56] => mem.DATAB +in_data[57] => mem.DATAB +in_data[58] => mem.DATAB +in_data[59] => mem.DATAB +in_data[60] => mem.DATAB +in_data[61] => mem.DATAB +in_data[62] => mem.DATAB +in_data[63] => mem.DATAB +in_data[64] => mem.DATAB +in_data[65] => mem.DATAB +in_data[66] => mem.DATAB +in_data[67] => mem.DATAB +in_data[68] => mem.DATAB +in_data[69] => mem.DATAB +in_data[70] => mem.DATAB +in_data[71] => mem.DATAB +in_data[72] => mem.DATAB +in_data[73] => mem.DATAB +in_data[74] => mem.DATAB +in_data[75] => mem.DATAB +in_data[76] => mem.DATAB +in_data[77] => mem.DATAB +in_data[78] => mem.DATAB +in_data[79] => mem.DATAB +in_data[80] => mem.DATAB +in_data[81] => mem.DATAB +in_data[82] => mem.DATAB +in_data[83] => mem.DATAB +in_data[84] => mem.DATAB +in_data[85] => mem.DATAB +in_data[86] => mem.DATAB +in_data[87] => mem.DATAB +in_data[88] => mem.DATAB +in_data[89] => mem.DATAB +in_data[90] => mem.DATAB +in_data[91] => mem.DATAB +in_data[92] => mem.DATAB +in_data[93] => mem.DATAB +in_data[94] => mem.DATAB +in_data[95] => mem.DATAB +in_data[96] => mem.DATAB +in_valid => write.IN1 +in_startofpacket => mem.DATAB +in_endofpacket => mem.DATAB +in_empty[0] => ~NO_FANOUT~ +in_error[0] => out_error[0].DATAIN +in_error[0] => out_empty[0].DATAIN +in_channel[0] => out_channel[0].DATAIN +in_ready <= mem_used[1].DB_MAX_OUTPUT_PORT_TYPE +out_data[0] <= mem[0][0].DB_MAX_OUTPUT_PORT_TYPE +out_data[1] <= mem[0][1].DB_MAX_OUTPUT_PORT_TYPE +out_data[2] <= mem[0][2].DB_MAX_OUTPUT_PORT_TYPE +out_data[3] <= mem[0][3].DB_MAX_OUTPUT_PORT_TYPE +out_data[4] <= mem[0][4].DB_MAX_OUTPUT_PORT_TYPE +out_data[5] <= mem[0][5].DB_MAX_OUTPUT_PORT_TYPE +out_data[6] <= mem[0][6].DB_MAX_OUTPUT_PORT_TYPE +out_data[7] <= mem[0][7].DB_MAX_OUTPUT_PORT_TYPE +out_data[8] <= mem[0][8].DB_MAX_OUTPUT_PORT_TYPE +out_data[9] <= mem[0][9].DB_MAX_OUTPUT_PORT_TYPE +out_data[10] <= mem[0][10].DB_MAX_OUTPUT_PORT_TYPE +out_data[11] <= mem[0][11].DB_MAX_OUTPUT_PORT_TYPE +out_data[12] <= mem[0][12].DB_MAX_OUTPUT_PORT_TYPE +out_data[13] <= mem[0][13].DB_MAX_OUTPUT_PORT_TYPE +out_data[14] <= mem[0][14].DB_MAX_OUTPUT_PORT_TYPE +out_data[15] <= mem[0][15].DB_MAX_OUTPUT_PORT_TYPE +out_data[16] <= mem[0][16].DB_MAX_OUTPUT_PORT_TYPE +out_data[17] <= mem[0][17].DB_MAX_OUTPUT_PORT_TYPE +out_data[18] <= mem[0][18].DB_MAX_OUTPUT_PORT_TYPE +out_data[19] <= mem[0][19].DB_MAX_OUTPUT_PORT_TYPE +out_data[20] <= mem[0][20].DB_MAX_OUTPUT_PORT_TYPE +out_data[21] <= mem[0][21].DB_MAX_OUTPUT_PORT_TYPE +out_data[22] <= mem[0][22].DB_MAX_OUTPUT_PORT_TYPE +out_data[23] <= mem[0][23].DB_MAX_OUTPUT_PORT_TYPE +out_data[24] <= mem[0][24].DB_MAX_OUTPUT_PORT_TYPE +out_data[25] <= mem[0][25].DB_MAX_OUTPUT_PORT_TYPE +out_data[26] <= mem[0][26].DB_MAX_OUTPUT_PORT_TYPE +out_data[27] <= mem[0][27].DB_MAX_OUTPUT_PORT_TYPE +out_data[28] <= mem[0][28].DB_MAX_OUTPUT_PORT_TYPE +out_data[29] <= mem[0][29].DB_MAX_OUTPUT_PORT_TYPE +out_data[30] <= mem[0][30].DB_MAX_OUTPUT_PORT_TYPE +out_data[31] <= mem[0][31].DB_MAX_OUTPUT_PORT_TYPE +out_data[32] <= mem[0][32].DB_MAX_OUTPUT_PORT_TYPE +out_data[33] <= mem[0][33].DB_MAX_OUTPUT_PORT_TYPE +out_data[34] <= mem[0][34].DB_MAX_OUTPUT_PORT_TYPE +out_data[35] <= mem[0][35].DB_MAX_OUTPUT_PORT_TYPE +out_data[36] <= mem[0][36].DB_MAX_OUTPUT_PORT_TYPE +out_data[37] <= mem[0][37].DB_MAX_OUTPUT_PORT_TYPE +out_data[38] <= mem[0][38].DB_MAX_OUTPUT_PORT_TYPE +out_data[39] <= mem[0][39].DB_MAX_OUTPUT_PORT_TYPE +out_data[40] <= mem[0][40].DB_MAX_OUTPUT_PORT_TYPE +out_data[41] <= mem[0][41].DB_MAX_OUTPUT_PORT_TYPE +out_data[42] <= mem[0][42].DB_MAX_OUTPUT_PORT_TYPE +out_data[43] <= mem[0][43].DB_MAX_OUTPUT_PORT_TYPE +out_data[44] <= mem[0][44].DB_MAX_OUTPUT_PORT_TYPE +out_data[45] <= mem[0][45].DB_MAX_OUTPUT_PORT_TYPE +out_data[46] <= mem[0][46].DB_MAX_OUTPUT_PORT_TYPE +out_data[47] <= mem[0][47].DB_MAX_OUTPUT_PORT_TYPE +out_data[48] <= mem[0][48].DB_MAX_OUTPUT_PORT_TYPE +out_data[49] <= mem[0][49].DB_MAX_OUTPUT_PORT_TYPE +out_data[50] <= mem[0][50].DB_MAX_OUTPUT_PORT_TYPE +out_data[51] <= mem[0][51].DB_MAX_OUTPUT_PORT_TYPE +out_data[52] <= mem[0][52].DB_MAX_OUTPUT_PORT_TYPE +out_data[53] <= mem[0][53].DB_MAX_OUTPUT_PORT_TYPE +out_data[54] <= mem[0][54].DB_MAX_OUTPUT_PORT_TYPE +out_data[55] <= mem[0][55].DB_MAX_OUTPUT_PORT_TYPE +out_data[56] <= mem[0][56].DB_MAX_OUTPUT_PORT_TYPE +out_data[57] <= mem[0][57].DB_MAX_OUTPUT_PORT_TYPE +out_data[58] <= mem[0][58].DB_MAX_OUTPUT_PORT_TYPE +out_data[59] <= mem[0][59].DB_MAX_OUTPUT_PORT_TYPE +out_data[60] <= mem[0][60].DB_MAX_OUTPUT_PORT_TYPE +out_data[61] <= mem[0][61].DB_MAX_OUTPUT_PORT_TYPE +out_data[62] <= mem[0][62].DB_MAX_OUTPUT_PORT_TYPE +out_data[63] <= mem[0][63].DB_MAX_OUTPUT_PORT_TYPE +out_data[64] <= mem[0][64].DB_MAX_OUTPUT_PORT_TYPE +out_data[65] <= mem[0][65].DB_MAX_OUTPUT_PORT_TYPE +out_data[66] <= mem[0][66].DB_MAX_OUTPUT_PORT_TYPE +out_data[67] <= mem[0][67].DB_MAX_OUTPUT_PORT_TYPE +out_data[68] <= mem[0][68].DB_MAX_OUTPUT_PORT_TYPE +out_data[69] <= mem[0][69].DB_MAX_OUTPUT_PORT_TYPE +out_data[70] <= mem[0][70].DB_MAX_OUTPUT_PORT_TYPE +out_data[71] <= mem[0][71].DB_MAX_OUTPUT_PORT_TYPE +out_data[72] <= mem[0][72].DB_MAX_OUTPUT_PORT_TYPE +out_data[73] <= mem[0][73].DB_MAX_OUTPUT_PORT_TYPE +out_data[74] <= mem[0][74].DB_MAX_OUTPUT_PORT_TYPE +out_data[75] <= mem[0][75].DB_MAX_OUTPUT_PORT_TYPE +out_data[76] <= mem[0][76].DB_MAX_OUTPUT_PORT_TYPE +out_data[77] <= mem[0][77].DB_MAX_OUTPUT_PORT_TYPE +out_data[78] <= mem[0][78].DB_MAX_OUTPUT_PORT_TYPE +out_data[79] <= mem[0][79].DB_MAX_OUTPUT_PORT_TYPE +out_data[80] <= mem[0][80].DB_MAX_OUTPUT_PORT_TYPE +out_data[81] <= mem[0][81].DB_MAX_OUTPUT_PORT_TYPE +out_data[82] <= mem[0][82].DB_MAX_OUTPUT_PORT_TYPE +out_data[83] <= mem[0][83].DB_MAX_OUTPUT_PORT_TYPE +out_data[84] <= mem[0][84].DB_MAX_OUTPUT_PORT_TYPE +out_data[85] <= mem[0][85].DB_MAX_OUTPUT_PORT_TYPE +out_data[86] <= mem[0][86].DB_MAX_OUTPUT_PORT_TYPE +out_data[87] <= mem[0][87].DB_MAX_OUTPUT_PORT_TYPE +out_data[88] <= mem[0][88].DB_MAX_OUTPUT_PORT_TYPE +out_data[89] <= mem[0][89].DB_MAX_OUTPUT_PORT_TYPE +out_data[90] <= mem[0][90].DB_MAX_OUTPUT_PORT_TYPE +out_data[91] <= mem[0][91].DB_MAX_OUTPUT_PORT_TYPE +out_data[92] <= mem[0][92].DB_MAX_OUTPUT_PORT_TYPE +out_data[93] <= mem[0][93].DB_MAX_OUTPUT_PORT_TYPE +out_data[94] <= mem[0][94].DB_MAX_OUTPUT_PORT_TYPE +out_data[95] <= mem[0][95].DB_MAX_OUTPUT_PORT_TYPE +out_data[96] <= mem[0][96].DB_MAX_OUTPUT_PORT_TYPE +out_valid <= mem_used[0].DB_MAX_OUTPUT_PORT_TYPE +out_startofpacket <= mem[0][98].DB_MAX_OUTPUT_PORT_TYPE +out_endofpacket <= mem[0][97].DB_MAX_OUTPUT_PORT_TYPE +out_empty[0] <= in_error[0].DB_MAX_OUTPUT_PORT_TYPE +out_error[0] <= in_error[0].DB_MAX_OUTPUT_PORT_TYPE +out_channel[0] <= in_channel[0].DB_MAX_OUTPUT_PORT_TYPE +out_ready => internal_out_ready.IN1 +csr_address[0] => ~NO_FANOUT~ +csr_address[1] => ~NO_FANOUT~ +csr_write => ~NO_FANOUT~ +csr_read => csr_readdata[31]~reg0.ENA +csr_read => csr_readdata[30]~reg0.ENA +csr_read => csr_readdata[29]~reg0.ENA +csr_read => csr_readdata[28]~reg0.ENA +csr_read => csr_readdata[27]~reg0.ENA +csr_read => csr_readdata[26]~reg0.ENA +csr_read => csr_readdata[25]~reg0.ENA +csr_read => csr_readdata[24]~reg0.ENA +csr_read => csr_readdata[23]~reg0.ENA +csr_read => csr_readdata[22]~reg0.ENA +csr_read => csr_readdata[21]~reg0.ENA +csr_read => csr_readdata[20]~reg0.ENA +csr_read => csr_readdata[19]~reg0.ENA +csr_read => csr_readdata[18]~reg0.ENA +csr_read => csr_readdata[17]~reg0.ENA +csr_read => csr_readdata[16]~reg0.ENA +csr_read => csr_readdata[15]~reg0.ENA +csr_read => csr_readdata[14]~reg0.ENA +csr_read => csr_readdata[13]~reg0.ENA +csr_read => csr_readdata[12]~reg0.ENA +csr_read => csr_readdata[11]~reg0.ENA +csr_read => csr_readdata[10]~reg0.ENA +csr_read => csr_readdata[9]~reg0.ENA +csr_read => csr_readdata[8]~reg0.ENA +csr_read => csr_readdata[7]~reg0.ENA +csr_read => csr_readdata[6]~reg0.ENA +csr_read => csr_readdata[5]~reg0.ENA +csr_read => csr_readdata[4]~reg0.ENA +csr_read => csr_readdata[3]~reg0.ENA +csr_read => csr_readdata[2]~reg0.ENA +csr_read => csr_readdata[1]~reg0.ENA +csr_read => csr_readdata[0]~reg0.ENA +csr_writedata[0] => ~NO_FANOUT~ +csr_writedata[1] => ~NO_FANOUT~ +csr_writedata[2] => ~NO_FANOUT~ +csr_writedata[3] => ~NO_FANOUT~ +csr_writedata[4] => ~NO_FANOUT~ +csr_writedata[5] => ~NO_FANOUT~ +csr_writedata[6] => ~NO_FANOUT~ +csr_writedata[7] => ~NO_FANOUT~ +csr_writedata[8] => ~NO_FANOUT~ +csr_writedata[9] => ~NO_FANOUT~ +csr_writedata[10] => ~NO_FANOUT~ +csr_writedata[11] => ~NO_FANOUT~ +csr_writedata[12] => ~NO_FANOUT~ +csr_writedata[13] => ~NO_FANOUT~ +csr_writedata[14] => ~NO_FANOUT~ +csr_writedata[15] => ~NO_FANOUT~ +csr_writedata[16] => ~NO_FANOUT~ +csr_writedata[17] => ~NO_FANOUT~ +csr_writedata[18] => ~NO_FANOUT~ +csr_writedata[19] => ~NO_FANOUT~ +csr_writedata[20] => ~NO_FANOUT~ +csr_writedata[21] => ~NO_FANOUT~ +csr_writedata[22] => ~NO_FANOUT~ +csr_writedata[23] => ~NO_FANOUT~ +csr_writedata[24] => ~NO_FANOUT~ +csr_writedata[25] => ~NO_FANOUT~ +csr_writedata[26] => ~NO_FANOUT~ +csr_writedata[27] => ~NO_FANOUT~ +csr_writedata[28] => ~NO_FANOUT~ +csr_writedata[29] => ~NO_FANOUT~ +csr_writedata[30] => ~NO_FANOUT~ +csr_writedata[31] => ~NO_FANOUT~ +csr_readdata[0] <= csr_readdata[0]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[1] <= csr_readdata[1]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[2] <= csr_readdata[2]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[3] <= csr_readdata[3]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[4] <= csr_readdata[4]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[5] <= csr_readdata[5]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[6] <= csr_readdata[6]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[7] <= csr_readdata[7]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[8] <= csr_readdata[8]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[9] <= csr_readdata[9]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[10] <= csr_readdata[10]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[11] <= csr_readdata[11]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[12] <= csr_readdata[12]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[13] <= csr_readdata[13]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[14] <= csr_readdata[14]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[15] <= csr_readdata[15]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[16] <= csr_readdata[16]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[17] <= csr_readdata[17]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[18] <= csr_readdata[18]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[19] <= csr_readdata[19]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[20] <= csr_readdata[20]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[21] <= csr_readdata[21]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[22] <= csr_readdata[22]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[23] <= csr_readdata[23]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[24] <= csr_readdata[24]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[25] <= csr_readdata[25]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[26] <= csr_readdata[26]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[27] <= csr_readdata[27]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[28] <= csr_readdata[28]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[29] <= csr_readdata[29]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[30] <= csr_readdata[30]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[31] <= csr_readdata[31]~reg0.DB_MAX_OUTPUT_PORT_TYPE +almost_full_data <= +almost_empty_data <= + + +|lights|nios_system:NiosII|altera_merlin_slave_agent:hex1_s1_translator_avalon_universal_slave_0_agent +clk => clk.IN1 +reset => reset.IN1 +m0_address[0] <= +m0_address[1] <= +m0_address[2] <= cp_data[38].DB_MAX_OUTPUT_PORT_TYPE +m0_address[3] <= cp_data[39].DB_MAX_OUTPUT_PORT_TYPE +m0_address[4] <= cp_data[40].DB_MAX_OUTPUT_PORT_TYPE +m0_address[5] <= cp_data[41].DB_MAX_OUTPUT_PORT_TYPE +m0_address[6] <= cp_data[42].DB_MAX_OUTPUT_PORT_TYPE +m0_address[7] <= cp_data[43].DB_MAX_OUTPUT_PORT_TYPE +m0_address[8] <= cp_data[44].DB_MAX_OUTPUT_PORT_TYPE +m0_address[9] <= cp_data[45].DB_MAX_OUTPUT_PORT_TYPE +m0_address[10] <= cp_data[46].DB_MAX_OUTPUT_PORT_TYPE +m0_address[11] <= cp_data[47].DB_MAX_OUTPUT_PORT_TYPE +m0_address[12] <= cp_data[48].DB_MAX_OUTPUT_PORT_TYPE +m0_address[13] <= cp_data[49].DB_MAX_OUTPUT_PORT_TYPE +m0_address[14] <= cp_data[50].DB_MAX_OUTPUT_PORT_TYPE +m0_address[15] <= cp_data[51].DB_MAX_OUTPUT_PORT_TYPE +m0_address[16] <= cp_data[52].DB_MAX_OUTPUT_PORT_TYPE +m0_address[17] <= cp_data[53].DB_MAX_OUTPUT_PORT_TYPE +m0_address[18] <= cp_data[54].DB_MAX_OUTPUT_PORT_TYPE +m0_burstcount[0] <= m0_burstcount.DB_MAX_OUTPUT_PORT_TYPE +m0_burstcount[1] <= m0_burstcount.DB_MAX_OUTPUT_PORT_TYPE +m0_burstcount[2] <= m0_burstcount.DB_MAX_OUTPUT_PORT_TYPE +m0_byteenable[0] <= cp_data[32].DB_MAX_OUTPUT_PORT_TYPE +m0_byteenable[1] <= cp_data[33].DB_MAX_OUTPUT_PORT_TYPE +m0_byteenable[2] <= cp_data[34].DB_MAX_OUTPUT_PORT_TYPE +m0_byteenable[3] <= cp_data[35].DB_MAX_OUTPUT_PORT_TYPE +m0_read <= m0_read.DB_MAX_OUTPUT_PORT_TYPE +m0_readdata[0] => rdata_fifo_src_data[0].DATAIN +m0_readdata[1] => rdata_fifo_src_data[1].DATAIN +m0_readdata[2] => rdata_fifo_src_data[2].DATAIN +m0_readdata[3] => rdata_fifo_src_data[3].DATAIN +m0_readdata[4] => rdata_fifo_src_data[4].DATAIN +m0_readdata[5] => rdata_fifo_src_data[5].DATAIN +m0_readdata[6] => rdata_fifo_src_data[6].DATAIN +m0_readdata[7] => rdata_fifo_src_data[7].DATAIN +m0_readdata[8] => rdata_fifo_src_data[8].DATAIN +m0_readdata[9] => rdata_fifo_src_data[9].DATAIN +m0_readdata[10] => rdata_fifo_src_data[10].DATAIN +m0_readdata[11] => rdata_fifo_src_data[11].DATAIN +m0_readdata[12] => rdata_fifo_src_data[12].DATAIN +m0_readdata[13] => rdata_fifo_src_data[13].DATAIN +m0_readdata[14] => rdata_fifo_src_data[14].DATAIN +m0_readdata[15] => rdata_fifo_src_data[15].DATAIN +m0_readdata[16] => rdata_fifo_src_data[16].DATAIN +m0_readdata[17] => rdata_fifo_src_data[17].DATAIN +m0_readdata[18] => rdata_fifo_src_data[18].DATAIN +m0_readdata[19] => rdata_fifo_src_data[19].DATAIN +m0_readdata[20] => rdata_fifo_src_data[20].DATAIN +m0_readdata[21] => rdata_fifo_src_data[21].DATAIN +m0_readdata[22] => rdata_fifo_src_data[22].DATAIN +m0_readdata[23] => rdata_fifo_src_data[23].DATAIN +m0_readdata[24] => rdata_fifo_src_data[24].DATAIN +m0_readdata[25] => rdata_fifo_src_data[25].DATAIN +m0_readdata[26] => rdata_fifo_src_data[26].DATAIN +m0_readdata[27] => rdata_fifo_src_data[27].DATAIN +m0_readdata[28] => rdata_fifo_src_data[28].DATAIN +m0_readdata[29] => rdata_fifo_src_data[29].DATAIN +m0_readdata[30] => rdata_fifo_src_data[30].DATAIN +m0_readdata[31] => rdata_fifo_src_data[31].DATAIN +m0_waitrequest => cp_ready.IN0 +m0_write <= m0_write.DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[0] <= cp_data[0].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[1] <= cp_data[1].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[2] <= cp_data[2].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[3] <= cp_data[3].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[4] <= cp_data[4].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[5] <= cp_data[5].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[6] <= cp_data[6].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[7] <= cp_data[7].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[8] <= cp_data[8].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[9] <= cp_data[9].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[10] <= cp_data[10].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[11] <= cp_data[11].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[12] <= cp_data[12].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[13] <= cp_data[13].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[14] <= cp_data[14].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[15] <= cp_data[15].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[16] <= cp_data[16].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[17] <= cp_data[17].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[18] <= cp_data[18].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[19] <= cp_data[19].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[20] <= cp_data[20].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[21] <= cp_data[21].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[22] <= cp_data[22].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[23] <= cp_data[23].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[24] <= cp_data[24].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[25] <= cp_data[25].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[26] <= cp_data[26].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[27] <= cp_data[27].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[28] <= cp_data[28].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[29] <= cp_data[29].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[30] <= cp_data[30].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[31] <= cp_data[31].DB_MAX_OUTPUT_PORT_TYPE +m0_readdatavalid => rdata_fifo_src_valid.IN0 +m0_debugaccess <= cp_data[87].DB_MAX_OUTPUT_PORT_TYPE +m0_lock <= m0_lock.DB_MAX_OUTPUT_PORT_TYPE +m0_response[0] => rdata_fifo_src_data[32].DATAIN +m0_response[1] => rdata_fifo_src_data[33].DATAIN +m0_writeresponserequest <= m0_writeresponserequest.DB_MAX_OUTPUT_PORT_TYPE +m0_writeresponsevalid => rdata_fifo_src_valid.IN1 +rf_source_data[0] <= +rf_source_data[1] <= +rf_source_data[2] <= +rf_source_data[3] <= +rf_source_data[4] <= +rf_source_data[5] <= +rf_source_data[6] <= +rf_source_data[7] <= +rf_source_data[8] <= +rf_source_data[9] <= +rf_source_data[10] <= +rf_source_data[11] <= +rf_source_data[12] <= +rf_source_data[13] <= +rf_source_data[14] <= +rf_source_data[15] <= +rf_source_data[16] <= +rf_source_data[17] <= +rf_source_data[18] <= +rf_source_data[19] <= +rf_source_data[20] <= +rf_source_data[21] <= +rf_source_data[22] <= +rf_source_data[23] <= +rf_source_data[24] <= +rf_source_data[25] <= +rf_source_data[26] <= +rf_source_data[27] <= +rf_source_data[28] <= +rf_source_data[29] <= +rf_source_data[30] <= +rf_source_data[31] <= +rf_source_data[32] <= cp_data[32].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[33] <= cp_data[33].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[34] <= cp_data[34].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[35] <= cp_data[35].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[36] <= cp_data[36].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[37] <= cp_data[37].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[38] <= cp_data[38].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[39] <= cp_data[39].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[40] <= cp_data[40].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[41] <= cp_data[41].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[42] <= cp_data[42].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[43] <= cp_data[43].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[44] <= cp_data[44].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[45] <= cp_data[45].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[46] <= cp_data[46].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[47] <= cp_data[47].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[48] <= cp_data[48].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[49] <= cp_data[49].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[50] <= cp_data[50].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[51] <= cp_data[51].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[52] <= cp_data[52].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[53] <= cp_data[53].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[54] <= cp_data[54].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[55] <= cp_data[55].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[56] <= cp_data[56].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[57] <= cp_data[57].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[58] <= cp_data[58].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[59] <= cp_data[59].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[60] <= cp_data[60].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[61] <= cp_data[61].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[62] <= cp_data[62].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[63] <= cp_data[63].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[64] <= cp_data[64].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[65] <= cp_data[65].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[66] <= cp_data[66].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[67] <= cp_data[67].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[68] <= cp_data[68].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[69] <= cp_data[69].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[70] <= cp_data[70].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[71] <= cp_data[71].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[72] <= cp_data[72].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[73] <= cp_data[73].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[74] <= cp_data[74].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[75] <= cp_data[75].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[76] <= cp_data[76].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[77] <= cp_data[77].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[78] <= cp_data[78].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[79] <= cp_data[79].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[80] <= cp_data[80].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[81] <= cp_data[81].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[82] <= cp_data[82].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[83] <= cp_data[83].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[84] <= cp_data[84].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[85] <= cp_data[85].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[86] <= cp_data[86].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[87] <= cp_data[87].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[88] <= +rf_source_data[89] <= +rf_source_data[90] <= cp_data[90].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[91] <= cp_data[91].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[92] <= cp_data[92].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[93] <= cp_data[93].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[94] <= cp_data[94].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[95] <= cp_data[95].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[96] <= nonposted_write_endofpacket.DB_MAX_OUTPUT_PORT_TYPE +rf_source_valid <= rf_source_valid.DB_MAX_OUTPUT_PORT_TYPE +rf_source_startofpacket <= cp_startofpacket.DB_MAX_OUTPUT_PORT_TYPE +rf_source_endofpacket <= cp_endofpacket.DB_MAX_OUTPUT_PORT_TYPE +rf_source_ready => cp_ready.IN1 +rf_source_ready => m0_write.IN1 +rf_source_ready => m0_lock.IN1 +rf_source_ready => rf_source_valid.IN1 +rf_source_ready => m0_read.IN1 +rf_sink_data[0] => ~NO_FANOUT~ +rf_sink_data[1] => ~NO_FANOUT~ +rf_sink_data[2] => ~NO_FANOUT~ +rf_sink_data[3] => ~NO_FANOUT~ +rf_sink_data[4] => ~NO_FANOUT~ +rf_sink_data[5] => ~NO_FANOUT~ +rf_sink_data[6] => ~NO_FANOUT~ +rf_sink_data[7] => ~NO_FANOUT~ +rf_sink_data[8] => ~NO_FANOUT~ +rf_sink_data[9] => ~NO_FANOUT~ +rf_sink_data[10] => ~NO_FANOUT~ +rf_sink_data[11] => ~NO_FANOUT~ +rf_sink_data[12] => ~NO_FANOUT~ +rf_sink_data[13] => ~NO_FANOUT~ +rf_sink_data[14] => ~NO_FANOUT~ +rf_sink_data[15] => ~NO_FANOUT~ +rf_sink_data[16] => ~NO_FANOUT~ +rf_sink_data[17] => ~NO_FANOUT~ +rf_sink_data[18] => ~NO_FANOUT~ +rf_sink_data[19] => ~NO_FANOUT~ +rf_sink_data[20] => ~NO_FANOUT~ +rf_sink_data[21] => ~NO_FANOUT~ +rf_sink_data[22] => ~NO_FANOUT~ +rf_sink_data[23] => ~NO_FANOUT~ +rf_sink_data[24] => ~NO_FANOUT~ +rf_sink_data[25] => ~NO_FANOUT~ +rf_sink_data[26] => ~NO_FANOUT~ +rf_sink_data[27] => ~NO_FANOUT~ +rf_sink_data[28] => ~NO_FANOUT~ +rf_sink_data[29] => ~NO_FANOUT~ +rf_sink_data[30] => ~NO_FANOUT~ +rf_sink_data[31] => ~NO_FANOUT~ +rf_sink_data[32] => rp_data[32].DATAIN +rf_sink_data[33] => rp_data[33].DATAIN +rf_sink_data[34] => rp_data[34].DATAIN +rf_sink_data[35] => rp_data[35].DATAIN +rf_sink_data[36] => rf_sink_addr[0].IN1 +rf_sink_data[37] => rf_sink_addr[1].IN1 +rf_sink_data[38] => rf_sink_addr[2].IN1 +rf_sink_data[39] => rf_sink_addr[3].IN1 +rf_sink_data[40] => rf_sink_addr[4].IN1 +rf_sink_data[41] => rf_sink_addr[5].IN1 +rf_sink_data[42] => rf_sink_addr[6].IN1 +rf_sink_data[43] => rf_sink_addr[7].IN1 +rf_sink_data[44] => rf_sink_addr[8].IN1 +rf_sink_data[45] => rf_sink_addr[9].IN1 +rf_sink_data[46] => rf_sink_addr[10].IN1 +rf_sink_data[47] => rf_sink_addr[11].IN1 +rf_sink_data[48] => rf_sink_addr[12].IN1 +rf_sink_data[49] => rf_sink_addr[13].IN1 +rf_sink_data[50] => rf_sink_addr[14].IN1 +rf_sink_data[51] => rf_sink_addr[15].IN1 +rf_sink_data[52] => rf_sink_addr[16].IN1 +rf_sink_data[53] => rf_sink_addr[17].IN1 +rf_sink_data[54] => rf_sink_addr[18].IN1 +rf_sink_data[55] => rf_sink_compressed.IN1 +rf_sink_data[56] => rp_data[56].DATAIN +rf_sink_data[57] => comb.OUTPUTSELECT +rf_sink_data[57] => rp_data[57].DATAIN +rf_sink_data[58] => rp_data.IN0 +rf_sink_data[59] => rp_data[59].DATAIN +rf_sink_data[60] => rp_data[60].DATAIN +rf_sink_data[61] => rf_sink_byte_cnt[0].IN1 +rf_sink_data[62] => rf_sink_byte_cnt[1].IN1 +rf_sink_data[63] => rf_sink_byte_cnt[2].IN1 +rf_sink_data[64] => rf_sink_burstwrap[0].IN1 +rf_sink_data[65] => rf_sink_burstwrap[1].IN1 +rf_sink_data[66] => rf_sink_burstwrap[2].IN1 +rf_sink_data[67] => rf_sink_burstsize[0].IN1 +rf_sink_data[68] => rf_sink_burstsize[1].IN1 +rf_sink_data[69] => rf_sink_burstsize[2].IN1 +rf_sink_data[70] => rp_data[70].DATAIN +rf_sink_data[71] => rp_data[71].DATAIN +rf_sink_data[72] => rp_data[72].DATAIN +rf_sink_data[73] => rp_data[73].DATAIN +rf_sink_data[74] => rp_data[74].DATAIN +rf_sink_data[75] => rp_data[75].DATAIN +rf_sink_data[76] => rp_data[81].DATAIN +rf_sink_data[77] => rp_data[82].DATAIN +rf_sink_data[78] => rp_data[83].DATAIN +rf_sink_data[79] => rp_data[84].DATAIN +rf_sink_data[80] => rp_data[85].DATAIN +rf_sink_data[81] => rp_data[76].DATAIN +rf_sink_data[82] => rp_data[77].DATAIN +rf_sink_data[83] => rp_data[78].DATAIN +rf_sink_data[84] => rp_data[79].DATAIN +rf_sink_data[85] => rp_data[80].DATAIN +rf_sink_data[86] => rp_data[86].DATAIN +rf_sink_data[87] => rp_data[87].DATAIN +rf_sink_data[88] => rp_data[88].DATAIN +rf_sink_data[89] => rp_data[89].DATAIN +rf_sink_data[90] => rp_data[90].DATAIN +rf_sink_data[91] => rp_data[91].DATAIN +rf_sink_data[92] => rp_data[92].DATAIN +rf_sink_data[93] => rp_data[93].DATAIN +rf_sink_data[94] => ~NO_FANOUT~ +rf_sink_data[95] => ~NO_FANOUT~ +rf_sink_data[96] => rdata_fifo_sink_ready.IN0 +rf_sink_data[96] => comb.IN0 +rf_sink_valid => rdata_fifo_sink_ready.IN1 +rf_sink_valid => comb.IN1 +rf_sink_startofpacket => comb.DATAA +rf_sink_endofpacket => rf_sink_endofpacket.IN1 +rf_sink_ready <= altera_merlin_burst_uncompressor:uncompressor.sink_ready +rdata_fifo_src_data[0] <= m0_readdata[0].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[1] <= m0_readdata[1].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[2] <= m0_readdata[2].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[3] <= m0_readdata[3].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[4] <= m0_readdata[4].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[5] <= m0_readdata[5].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[6] <= m0_readdata[6].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[7] <= m0_readdata[7].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[8] <= m0_readdata[8].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[9] <= m0_readdata[9].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[10] <= m0_readdata[10].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[11] <= m0_readdata[11].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[12] <= m0_readdata[12].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[13] <= m0_readdata[13].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[14] <= m0_readdata[14].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[15] <= m0_readdata[15].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[16] <= m0_readdata[16].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[17] <= m0_readdata[17].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[18] <= m0_readdata[18].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[19] <= m0_readdata[19].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[20] <= m0_readdata[20].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[21] <= m0_readdata[21].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[22] <= m0_readdata[22].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[23] <= m0_readdata[23].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[24] <= m0_readdata[24].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[25] <= m0_readdata[25].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[26] <= m0_readdata[26].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[27] <= m0_readdata[27].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[28] <= m0_readdata[28].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[29] <= m0_readdata[29].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[30] <= m0_readdata[30].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[31] <= m0_readdata[31].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[32] <= m0_response[0].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[33] <= m0_response[1].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_valid <= rdata_fifo_src_valid.DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_ready => ~NO_FANOUT~ +rdata_fifo_sink_data[0] => rp_data[0].DATAIN +rdata_fifo_sink_data[1] => rp_data[1].DATAIN +rdata_fifo_sink_data[2] => rp_data[2].DATAIN +rdata_fifo_sink_data[3] => rp_data[3].DATAIN +rdata_fifo_sink_data[4] => rp_data[4].DATAIN +rdata_fifo_sink_data[5] => rp_data[5].DATAIN +rdata_fifo_sink_data[6] => rp_data[6].DATAIN +rdata_fifo_sink_data[7] => rp_data[7].DATAIN +rdata_fifo_sink_data[8] => rp_data[8].DATAIN +rdata_fifo_sink_data[9] => rp_data[9].DATAIN +rdata_fifo_sink_data[10] => rp_data[10].DATAIN +rdata_fifo_sink_data[11] => rp_data[11].DATAIN +rdata_fifo_sink_data[12] => rp_data[12].DATAIN +rdata_fifo_sink_data[13] => rp_data[13].DATAIN +rdata_fifo_sink_data[14] => rp_data[14].DATAIN +rdata_fifo_sink_data[15] => rp_data[15].DATAIN +rdata_fifo_sink_data[16] => rp_data[16].DATAIN +rdata_fifo_sink_data[17] => rp_data[17].DATAIN +rdata_fifo_sink_data[18] => rp_data[18].DATAIN +rdata_fifo_sink_data[19] => rp_data[19].DATAIN +rdata_fifo_sink_data[20] => rp_data[20].DATAIN +rdata_fifo_sink_data[21] => rp_data[21].DATAIN +rdata_fifo_sink_data[22] => rp_data[22].DATAIN +rdata_fifo_sink_data[23] => rp_data[23].DATAIN +rdata_fifo_sink_data[24] => rp_data[24].DATAIN +rdata_fifo_sink_data[25] => rp_data[25].DATAIN +rdata_fifo_sink_data[26] => rp_data[26].DATAIN +rdata_fifo_sink_data[27] => rp_data[27].DATAIN +rdata_fifo_sink_data[28] => rp_data[28].DATAIN +rdata_fifo_sink_data[29] => rp_data[29].DATAIN +rdata_fifo_sink_data[30] => rp_data[30].DATAIN +rdata_fifo_sink_data[31] => rp_data[31].DATAIN +rdata_fifo_sink_data[32] => rp_data[94].DATAIN +rdata_fifo_sink_data[33] => rp_data[95].DATAIN +rdata_fifo_sink_valid => rp_valid.IN1 +rdata_fifo_sink_valid => rdata_fifo_sink_ready.IN0 +rdata_fifo_sink_valid => comb.IN1 +rdata_fifo_sink_ready <= rdata_fifo_sink_ready.DB_MAX_OUTPUT_PORT_TYPE +cp_ready <= cp_ready.DB_MAX_OUTPUT_PORT_TYPE +cp_valid => local_lock.IN0 +cp_valid => local_write.IN0 +cp_valid => local_read.IN0 +cp_valid => local_compressed_read.IN0 +cp_data[0] => m0_writedata[0].DATAIN +cp_data[1] => m0_writedata[1].DATAIN +cp_data[2] => m0_writedata[2].DATAIN +cp_data[3] => m0_writedata[3].DATAIN +cp_data[4] => m0_writedata[4].DATAIN +cp_data[5] => m0_writedata[5].DATAIN +cp_data[6] => m0_writedata[6].DATAIN +cp_data[7] => m0_writedata[7].DATAIN +cp_data[8] => m0_writedata[8].DATAIN +cp_data[9] => m0_writedata[9].DATAIN +cp_data[10] => m0_writedata[10].DATAIN +cp_data[11] => m0_writedata[11].DATAIN +cp_data[12] => m0_writedata[12].DATAIN +cp_data[13] => m0_writedata[13].DATAIN +cp_data[14] => m0_writedata[14].DATAIN +cp_data[15] => m0_writedata[15].DATAIN +cp_data[16] => m0_writedata[16].DATAIN +cp_data[17] => m0_writedata[17].DATAIN +cp_data[18] => m0_writedata[18].DATAIN +cp_data[19] => m0_writedata[19].DATAIN +cp_data[20] => m0_writedata[20].DATAIN +cp_data[21] => m0_writedata[21].DATAIN +cp_data[22] => m0_writedata[22].DATAIN +cp_data[23] => m0_writedata[23].DATAIN +cp_data[24] => m0_writedata[24].DATAIN +cp_data[25] => m0_writedata[25].DATAIN +cp_data[26] => m0_writedata[26].DATAIN +cp_data[27] => m0_writedata[27].DATAIN +cp_data[28] => m0_writedata[28].DATAIN +cp_data[29] => m0_writedata[29].DATAIN +cp_data[30] => m0_writedata[30].DATAIN +cp_data[31] => m0_writedata[31].DATAIN +cp_data[32] => rf_source_data[32].DATAIN +cp_data[32] => m0_byteenable[0].DATAIN +cp_data[33] => rf_source_data[33].DATAIN +cp_data[33] => m0_byteenable[1].DATAIN +cp_data[34] => rf_source_data[34].DATAIN +cp_data[34] => m0_byteenable[2].DATAIN +cp_data[35] => rf_source_data[35].DATAIN +cp_data[35] => m0_byteenable[3].DATAIN +cp_data[36] => rf_source_data[36].DATAIN +cp_data[37] => rf_source_data[37].DATAIN +cp_data[38] => rf_source_data[38].DATAIN +cp_data[38] => m0_address[2].DATAIN +cp_data[39] => rf_source_data[39].DATAIN +cp_data[39] => m0_address[3].DATAIN +cp_data[40] => rf_source_data[40].DATAIN +cp_data[40] => m0_address[4].DATAIN +cp_data[41] => rf_source_data[41].DATAIN +cp_data[41] => m0_address[5].DATAIN +cp_data[42] => rf_source_data[42].DATAIN +cp_data[42] => m0_address[6].DATAIN +cp_data[43] => rf_source_data[43].DATAIN +cp_data[43] => m0_address[7].DATAIN +cp_data[44] => rf_source_data[44].DATAIN +cp_data[44] => m0_address[8].DATAIN +cp_data[45] => rf_source_data[45].DATAIN +cp_data[45] => m0_address[9].DATAIN +cp_data[46] => rf_source_data[46].DATAIN +cp_data[46] => m0_address[10].DATAIN +cp_data[47] => rf_source_data[47].DATAIN +cp_data[47] => m0_address[11].DATAIN +cp_data[48] => rf_source_data[48].DATAIN +cp_data[48] => m0_address[12].DATAIN +cp_data[49] => rf_source_data[49].DATAIN +cp_data[49] => m0_address[13].DATAIN +cp_data[50] => rf_source_data[50].DATAIN +cp_data[50] => m0_address[14].DATAIN +cp_data[51] => rf_source_data[51].DATAIN +cp_data[51] => m0_address[15].DATAIN +cp_data[52] => rf_source_data[52].DATAIN +cp_data[52] => m0_address[16].DATAIN +cp_data[53] => rf_source_data[53].DATAIN +cp_data[53] => m0_address[17].DATAIN +cp_data[54] => rf_source_data[54].DATAIN +cp_data[54] => m0_address[18].DATAIN +cp_data[55] => local_compressed_read.IN1 +cp_data[55] => rf_source_data[55].DATAIN +cp_data[56] => rf_source_data[56].DATAIN +cp_data[56] => m0_writeresponserequest.IN1 +cp_data[56] => comb.IN1 +cp_data[57] => local_write.IN1 +cp_data[57] => rf_source_data[57].DATAIN +cp_data[58] => local_read.IN1 +cp_data[58] => rf_source_data[58].DATAIN +cp_data[59] => local_lock.IN1 +cp_data[59] => rf_source_data[59].DATAIN +cp_data[60] => rf_source_data[60].DATAIN +cp_data[61] => m0_burstcount.DATAA +cp_data[61] => rf_source_data[61].DATAIN +cp_data[62] => m0_burstcount.DATAA +cp_data[62] => rf_source_data[62].DATAIN +cp_data[63] => m0_burstcount.DATAA +cp_data[63] => rf_source_data[63].DATAIN +cp_data[64] => rf_source_data[64].DATAIN +cp_data[65] => rf_source_data[65].DATAIN +cp_data[66] => rf_source_data[66].DATAIN +cp_data[67] => rf_source_data[67].DATAIN +cp_data[68] => rf_source_data[68].DATAIN +cp_data[69] => rf_source_data[69].DATAIN +cp_data[70] => rf_source_data[70].DATAIN +cp_data[71] => rf_source_data[71].DATAIN +cp_data[72] => rf_source_data[72].DATAIN +cp_data[73] => rf_source_data[73].DATAIN +cp_data[74] => rf_source_data[74].DATAIN +cp_data[75] => rf_source_data[75].DATAIN +cp_data[76] => rf_source_data[76].DATAIN +cp_data[77] => rf_source_data[77].DATAIN +cp_data[78] => rf_source_data[78].DATAIN +cp_data[79] => rf_source_data[79].DATAIN +cp_data[80] => rf_source_data[80].DATAIN +cp_data[81] => rf_source_data[81].DATAIN +cp_data[82] => rf_source_data[82].DATAIN +cp_data[83] => rf_source_data[83].DATAIN +cp_data[84] => rf_source_data[84].DATAIN +cp_data[85] => rf_source_data[85].DATAIN +cp_data[86] => rf_source_data[86].DATAIN +cp_data[87] => rf_source_data[87].DATAIN +cp_data[87] => m0_debugaccess.DATAIN +cp_data[88] => ~NO_FANOUT~ +cp_data[89] => ~NO_FANOUT~ +cp_data[90] => rf_source_data[90].DATAIN +cp_data[91] => rf_source_data[91].DATAIN +cp_data[92] => rf_source_data[92].DATAIN +cp_data[93] => rf_source_data[93].DATAIN +cp_data[94] => rf_source_data[94].DATAIN +cp_data[95] => rf_source_data[95].DATAIN +cp_channel[0] => ~NO_FANOUT~ +cp_channel[1] => ~NO_FANOUT~ +cp_channel[2] => ~NO_FANOUT~ +cp_channel[3] => ~NO_FANOUT~ +cp_channel[4] => ~NO_FANOUT~ +cp_channel[5] => ~NO_FANOUT~ +cp_channel[6] => ~NO_FANOUT~ +cp_channel[7] => ~NO_FANOUT~ +cp_channel[8] => ~NO_FANOUT~ +cp_channel[9] => ~NO_FANOUT~ +cp_channel[10] => ~NO_FANOUT~ +cp_channel[11] => ~NO_FANOUT~ +cp_channel[12] => ~NO_FANOUT~ +cp_channel[13] => ~NO_FANOUT~ +cp_channel[14] => ~NO_FANOUT~ +cp_channel[15] => ~NO_FANOUT~ +cp_channel[16] => ~NO_FANOUT~ +cp_channel[17] => ~NO_FANOUT~ +cp_startofpacket => rf_source_startofpacket.DATAIN +cp_endofpacket => nonposted_write_endofpacket.IN1 +cp_endofpacket => rf_source_endofpacket.DATAIN +rp_ready => rp_ready.IN1 +rp_valid <= rp_valid.DB_MAX_OUTPUT_PORT_TYPE +rp_data[0] <= rdata_fifo_sink_data[0].DB_MAX_OUTPUT_PORT_TYPE +rp_data[1] <= rdata_fifo_sink_data[1].DB_MAX_OUTPUT_PORT_TYPE +rp_data[2] <= rdata_fifo_sink_data[2].DB_MAX_OUTPUT_PORT_TYPE +rp_data[3] <= rdata_fifo_sink_data[3].DB_MAX_OUTPUT_PORT_TYPE +rp_data[4] <= rdata_fifo_sink_data[4].DB_MAX_OUTPUT_PORT_TYPE +rp_data[5] <= rdata_fifo_sink_data[5].DB_MAX_OUTPUT_PORT_TYPE +rp_data[6] <= rdata_fifo_sink_data[6].DB_MAX_OUTPUT_PORT_TYPE +rp_data[7] <= rdata_fifo_sink_data[7].DB_MAX_OUTPUT_PORT_TYPE +rp_data[8] <= rdata_fifo_sink_data[8].DB_MAX_OUTPUT_PORT_TYPE +rp_data[9] <= rdata_fifo_sink_data[9].DB_MAX_OUTPUT_PORT_TYPE +rp_data[10] <= rdata_fifo_sink_data[10].DB_MAX_OUTPUT_PORT_TYPE +rp_data[11] <= rdata_fifo_sink_data[11].DB_MAX_OUTPUT_PORT_TYPE +rp_data[12] <= rdata_fifo_sink_data[12].DB_MAX_OUTPUT_PORT_TYPE +rp_data[13] <= rdata_fifo_sink_data[13].DB_MAX_OUTPUT_PORT_TYPE +rp_data[14] <= rdata_fifo_sink_data[14].DB_MAX_OUTPUT_PORT_TYPE +rp_data[15] <= rdata_fifo_sink_data[15].DB_MAX_OUTPUT_PORT_TYPE +rp_data[16] <= rdata_fifo_sink_data[16].DB_MAX_OUTPUT_PORT_TYPE +rp_data[17] <= rdata_fifo_sink_data[17].DB_MAX_OUTPUT_PORT_TYPE +rp_data[18] <= rdata_fifo_sink_data[18].DB_MAX_OUTPUT_PORT_TYPE +rp_data[19] <= rdata_fifo_sink_data[19].DB_MAX_OUTPUT_PORT_TYPE +rp_data[20] <= rdata_fifo_sink_data[20].DB_MAX_OUTPUT_PORT_TYPE +rp_data[21] <= rdata_fifo_sink_data[21].DB_MAX_OUTPUT_PORT_TYPE +rp_data[22] <= rdata_fifo_sink_data[22].DB_MAX_OUTPUT_PORT_TYPE +rp_data[23] <= rdata_fifo_sink_data[23].DB_MAX_OUTPUT_PORT_TYPE +rp_data[24] <= rdata_fifo_sink_data[24].DB_MAX_OUTPUT_PORT_TYPE +rp_data[25] <= rdata_fifo_sink_data[25].DB_MAX_OUTPUT_PORT_TYPE +rp_data[26] <= rdata_fifo_sink_data[26].DB_MAX_OUTPUT_PORT_TYPE +rp_data[27] <= rdata_fifo_sink_data[27].DB_MAX_OUTPUT_PORT_TYPE +rp_data[28] <= rdata_fifo_sink_data[28].DB_MAX_OUTPUT_PORT_TYPE +rp_data[29] <= rdata_fifo_sink_data[29].DB_MAX_OUTPUT_PORT_TYPE +rp_data[30] <= rdata_fifo_sink_data[30].DB_MAX_OUTPUT_PORT_TYPE +rp_data[31] <= rdata_fifo_sink_data[31].DB_MAX_OUTPUT_PORT_TYPE +rp_data[32] <= rf_sink_data[32].DB_MAX_OUTPUT_PORT_TYPE +rp_data[33] <= rf_sink_data[33].DB_MAX_OUTPUT_PORT_TYPE +rp_data[34] <= rf_sink_data[34].DB_MAX_OUTPUT_PORT_TYPE +rp_data[35] <= rf_sink_data[35].DB_MAX_OUTPUT_PORT_TYPE +rp_data[36] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[37] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[38] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[39] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[40] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[41] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[42] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[43] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[44] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[45] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[46] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[47] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[48] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[49] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[50] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[51] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[52] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[53] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[54] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[55] <= altera_merlin_burst_uncompressor:uncompressor.source_is_compressed +rp_data[56] <= rf_sink_data[56].DB_MAX_OUTPUT_PORT_TYPE +rp_data[57] <= rf_sink_data[57].DB_MAX_OUTPUT_PORT_TYPE +rp_data[58] <= rp_data.DB_MAX_OUTPUT_PORT_TYPE +rp_data[59] <= rf_sink_data[59].DB_MAX_OUTPUT_PORT_TYPE +rp_data[60] <= rf_sink_data[60].DB_MAX_OUTPUT_PORT_TYPE +rp_data[61] <= altera_merlin_burst_uncompressor:uncompressor.source_byte_cnt +rp_data[62] <= altera_merlin_burst_uncompressor:uncompressor.source_byte_cnt +rp_data[63] <= altera_merlin_burst_uncompressor:uncompressor.source_byte_cnt +rp_data[64] <= altera_merlin_burst_uncompressor:uncompressor.source_burstwrap +rp_data[65] <= altera_merlin_burst_uncompressor:uncompressor.source_burstwrap +rp_data[66] <= altera_merlin_burst_uncompressor:uncompressor.source_burstwrap +rp_data[67] <= altera_merlin_burst_uncompressor:uncompressor.source_burstsize +rp_data[68] <= altera_merlin_burst_uncompressor:uncompressor.source_burstsize +rp_data[69] <= altera_merlin_burst_uncompressor:uncompressor.source_burstsize +rp_data[70] <= rf_sink_data[70].DB_MAX_OUTPUT_PORT_TYPE +rp_data[71] <= rf_sink_data[71].DB_MAX_OUTPUT_PORT_TYPE +rp_data[72] <= rf_sink_data[72].DB_MAX_OUTPUT_PORT_TYPE +rp_data[73] <= rf_sink_data[73].DB_MAX_OUTPUT_PORT_TYPE +rp_data[74] <= rf_sink_data[74].DB_MAX_OUTPUT_PORT_TYPE +rp_data[75] <= rf_sink_data[75].DB_MAX_OUTPUT_PORT_TYPE +rp_data[76] <= rf_sink_data[81].DB_MAX_OUTPUT_PORT_TYPE +rp_data[77] <= rf_sink_data[82].DB_MAX_OUTPUT_PORT_TYPE +rp_data[78] <= rf_sink_data[83].DB_MAX_OUTPUT_PORT_TYPE +rp_data[79] <= rf_sink_data[84].DB_MAX_OUTPUT_PORT_TYPE +rp_data[80] <= rf_sink_data[85].DB_MAX_OUTPUT_PORT_TYPE +rp_data[81] <= rf_sink_data[76].DB_MAX_OUTPUT_PORT_TYPE +rp_data[82] <= rf_sink_data[77].DB_MAX_OUTPUT_PORT_TYPE +rp_data[83] <= rf_sink_data[78].DB_MAX_OUTPUT_PORT_TYPE +rp_data[84] <= rf_sink_data[79].DB_MAX_OUTPUT_PORT_TYPE +rp_data[85] <= rf_sink_data[80].DB_MAX_OUTPUT_PORT_TYPE +rp_data[86] <= rf_sink_data[86].DB_MAX_OUTPUT_PORT_TYPE +rp_data[87] <= rf_sink_data[87].DB_MAX_OUTPUT_PORT_TYPE +rp_data[88] <= rf_sink_data[88].DB_MAX_OUTPUT_PORT_TYPE +rp_data[89] <= rf_sink_data[89].DB_MAX_OUTPUT_PORT_TYPE +rp_data[90] <= rf_sink_data[90].DB_MAX_OUTPUT_PORT_TYPE +rp_data[91] <= rf_sink_data[91].DB_MAX_OUTPUT_PORT_TYPE +rp_data[92] <= rf_sink_data[92].DB_MAX_OUTPUT_PORT_TYPE +rp_data[93] <= rf_sink_data[93].DB_MAX_OUTPUT_PORT_TYPE +rp_data[94] <= rdata_fifo_sink_data[32].DB_MAX_OUTPUT_PORT_TYPE +rp_data[95] <= rdata_fifo_sink_data[33].DB_MAX_OUTPUT_PORT_TYPE +rp_startofpacket <= altera_merlin_burst_uncompressor:uncompressor.source_startofpacket +rp_endofpacket <= altera_merlin_burst_uncompressor:uncompressor.source_endofpacket + + +|lights|nios_system:NiosII|altera_merlin_slave_agent:hex1_s1_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor +clk => burst_uncompress_address_offset[0].CLK +clk => burst_uncompress_address_offset[1].CLK +clk => burst_uncompress_address_offset[2].CLK +clk => burst_uncompress_address_offset[3].CLK +clk => burst_uncompress_address_offset[4].CLK +clk => burst_uncompress_address_offset[5].CLK +clk => burst_uncompress_address_offset[6].CLK +clk => burst_uncompress_address_offset[7].CLK +clk => burst_uncompress_address_offset[8].CLK +clk => burst_uncompress_address_offset[9].CLK +clk => burst_uncompress_address_offset[10].CLK +clk => burst_uncompress_address_offset[11].CLK +clk => burst_uncompress_address_offset[12].CLK +clk => burst_uncompress_address_offset[13].CLK +clk => burst_uncompress_address_offset[14].CLK +clk => burst_uncompress_address_offset[15].CLK +clk => burst_uncompress_address_offset[16].CLK +clk => burst_uncompress_address_offset[17].CLK +clk => burst_uncompress_address_offset[18].CLK +clk => burst_uncompress_address_base[0].CLK +clk => burst_uncompress_address_base[1].CLK +clk => burst_uncompress_address_base[2].CLK +clk => burst_uncompress_address_base[3].CLK +clk => burst_uncompress_address_base[4].CLK +clk => burst_uncompress_address_base[5].CLK +clk => burst_uncompress_address_base[6].CLK +clk => burst_uncompress_address_base[7].CLK +clk => burst_uncompress_address_base[8].CLK +clk => burst_uncompress_address_base[9].CLK +clk => burst_uncompress_address_base[10].CLK +clk => burst_uncompress_address_base[11].CLK +clk => burst_uncompress_address_base[12].CLK +clk => burst_uncompress_address_base[13].CLK +clk => burst_uncompress_address_base[14].CLK +clk => burst_uncompress_address_base[15].CLK +clk => burst_uncompress_address_base[16].CLK +clk => burst_uncompress_address_base[17].CLK +clk => burst_uncompress_address_base[18].CLK +clk => burst_uncompress_byte_counter[0].CLK +clk => burst_uncompress_byte_counter[1].CLK +clk => burst_uncompress_byte_counter[2].CLK +clk => burst_uncompress_busy.CLK +reset => burst_uncompress_address_offset[0].ACLR +reset => burst_uncompress_address_offset[1].ACLR +reset => burst_uncompress_address_offset[2].ACLR +reset => burst_uncompress_address_offset[3].ACLR +reset => burst_uncompress_address_offset[4].ACLR +reset => burst_uncompress_address_offset[5].ACLR +reset => burst_uncompress_address_offset[6].ACLR +reset => burst_uncompress_address_offset[7].ACLR +reset => burst_uncompress_address_offset[8].ACLR +reset => burst_uncompress_address_offset[9].ACLR +reset => burst_uncompress_address_offset[10].ACLR +reset => burst_uncompress_address_offset[11].ACLR +reset => burst_uncompress_address_offset[12].ACLR +reset => burst_uncompress_address_offset[13].ACLR +reset => burst_uncompress_address_offset[14].ACLR +reset => burst_uncompress_address_offset[15].ACLR +reset => burst_uncompress_address_offset[16].ACLR +reset => burst_uncompress_address_offset[17].ACLR +reset => burst_uncompress_address_offset[18].ACLR +reset => burst_uncompress_address_base[0].ACLR +reset => burst_uncompress_address_base[1].ACLR +reset => burst_uncompress_address_base[2].ACLR +reset => burst_uncompress_address_base[3].ACLR +reset => burst_uncompress_address_base[4].ACLR +reset => burst_uncompress_address_base[5].ACLR +reset => burst_uncompress_address_base[6].ACLR +reset => burst_uncompress_address_base[7].ACLR +reset => burst_uncompress_address_base[8].ACLR +reset => burst_uncompress_address_base[9].ACLR +reset => burst_uncompress_address_base[10].ACLR +reset => burst_uncompress_address_base[11].ACLR +reset => burst_uncompress_address_base[12].ACLR +reset => burst_uncompress_address_base[13].ACLR +reset => burst_uncompress_address_base[14].ACLR +reset => burst_uncompress_address_base[15].ACLR +reset => burst_uncompress_address_base[16].ACLR +reset => burst_uncompress_address_base[17].ACLR +reset => burst_uncompress_address_base[18].ACLR +reset => burst_uncompress_byte_counter[0].ACLR +reset => burst_uncompress_byte_counter[1].ACLR +reset => burst_uncompress_byte_counter[2].ACLR +reset => burst_uncompress_busy.ACLR +sink_startofpacket => source_startofpacket.IN1 +sink_endofpacket => source_endofpacket.IN1 +sink_valid => first_packet_beat.IN1 +sink_valid => last_packet_beat.IN1 +sink_valid => last_packet_beat.IN1 +sink_valid => always0.IN1 +sink_valid => sink_ready.IN0 +sink_valid => source_valid.DATAIN +sink_ready <= sink_ready.DB_MAX_OUTPUT_PORT_TYPE +sink_addr[0] => burst_uncompress_address_base.IN0 +sink_addr[0] => comb.DATAB +sink_addr[0] => source_addr.DATAB +sink_addr[1] => burst_uncompress_address_base.IN0 +sink_addr[1] => comb.DATAB +sink_addr[1] => source_addr.DATAB +sink_addr[2] => burst_uncompress_address_base.IN0 +sink_addr[2] => comb.DATAB +sink_addr[2] => source_addr.DATAB +sink_addr[3] => burst_uncompress_address_base.IN0 +sink_addr[3] => comb.DATAB +sink_addr[3] => source_addr.DATAB +sink_addr[4] => burst_uncompress_address_base.IN0 +sink_addr[4] => comb.DATAB +sink_addr[4] => source_addr.DATAB +sink_addr[5] => burst_uncompress_address_base.IN0 +sink_addr[5] => comb.DATAB +sink_addr[5] => source_addr.DATAB +sink_addr[6] => burst_uncompress_address_base.IN0 +sink_addr[6] => comb.DATAB +sink_addr[6] => source_addr.DATAB +sink_addr[7] => burst_uncompress_address_base.IN0 +sink_addr[7] => comb.DATAB +sink_addr[7] => source_addr.DATAB +sink_addr[8] => burst_uncompress_address_base.IN0 +sink_addr[8] => comb.DATAB +sink_addr[8] => source_addr.DATAB +sink_addr[9] => burst_uncompress_address_base.IN0 +sink_addr[9] => comb.DATAB +sink_addr[9] => source_addr.DATAB +sink_addr[10] => burst_uncompress_address_base.IN0 +sink_addr[10] => comb.DATAB +sink_addr[10] => source_addr.DATAB +sink_addr[11] => burst_uncompress_address_base.IN0 +sink_addr[11] => comb.DATAB +sink_addr[11] => source_addr.DATAB +sink_addr[12] => burst_uncompress_address_base.IN0 +sink_addr[12] => comb.DATAB +sink_addr[12] => source_addr.DATAB +sink_addr[13] => burst_uncompress_address_base.IN0 +sink_addr[13] => comb.DATAB +sink_addr[13] => source_addr.DATAB +sink_addr[14] => burst_uncompress_address_base.IN0 +sink_addr[14] => comb.DATAB +sink_addr[14] => source_addr.DATAB +sink_addr[15] => burst_uncompress_address_base.IN0 +sink_addr[15] => comb.DATAB +sink_addr[15] => source_addr.DATAB +sink_addr[16] => burst_uncompress_address_base.IN0 +sink_addr[16] => comb.DATAB +sink_addr[16] => source_addr.DATAB +sink_addr[17] => burst_uncompress_address_base.IN0 +sink_addr[17] => comb.DATAB +sink_addr[17] => source_addr.DATAB +sink_addr[18] => burst_uncompress_address_base.IN0 +sink_addr[18] => comb.DATAB +sink_addr[18] => source_addr.DATAB +sink_burstwrap[0] => p1_burst_uncompress_address_offset[0].IN1 +sink_burstwrap[0] => source_burstwrap[0].DATAIN +sink_burstwrap[0] => burst_uncompress_address_base.IN1 +sink_burstwrap[1] => p1_burst_uncompress_address_offset[1].IN1 +sink_burstwrap[1] => source_burstwrap[1].DATAIN +sink_burstwrap[1] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[2].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[18].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[17].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[16].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[15].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[14].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[13].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[12].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[11].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[10].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[9].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[8].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[7].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[6].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[5].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[4].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[3].IN1 +sink_burstwrap[2] => source_burstwrap[2].DATAIN +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_byte_cnt[0] => source_byte_cnt.DATAB +sink_byte_cnt[0] => Add1.IN6 +sink_byte_cnt[0] => Equal1.IN2 +sink_byte_cnt[1] => source_byte_cnt.DATAB +sink_byte_cnt[1] => Add1.IN5 +sink_byte_cnt[1] => Equal1.IN1 +sink_byte_cnt[2] => source_byte_cnt.DATAB +sink_byte_cnt[2] => Add1.IN4 +sink_byte_cnt[2] => Equal1.IN0 +sink_is_compressed => last_packet_beat.IN1 +sink_burstsize[0] => Decoder0.IN2 +sink_burstsize[0] => source_burstsize[0].DATAIN +sink_burstsize[1] => Decoder0.IN1 +sink_burstsize[1] => source_burstsize[1].DATAIN +sink_burstsize[2] => Decoder0.IN0 +sink_burstsize[2] => source_burstsize[2].DATAIN +source_startofpacket <= source_startofpacket.DB_MAX_OUTPUT_PORT_TYPE +source_endofpacket <= source_endofpacket.DB_MAX_OUTPUT_PORT_TYPE +source_valid <= sink_valid.DB_MAX_OUTPUT_PORT_TYPE +source_ready => always1.IN1 +source_ready => sink_ready.IN1 +source_addr[0] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[1] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[2] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[3] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[4] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[5] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[6] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[7] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[8] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[9] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[10] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[11] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[12] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[13] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[14] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[15] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[16] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[17] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[18] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_burstwrap[0] <= sink_burstwrap[0].DB_MAX_OUTPUT_PORT_TYPE +source_burstwrap[1] <= sink_burstwrap[1].DB_MAX_OUTPUT_PORT_TYPE +source_burstwrap[2] <= sink_burstwrap[2].DB_MAX_OUTPUT_PORT_TYPE +source_byte_cnt[0] <= source_byte_cnt.DB_MAX_OUTPUT_PORT_TYPE +source_byte_cnt[1] <= source_byte_cnt.DB_MAX_OUTPUT_PORT_TYPE +source_byte_cnt[2] <= source_byte_cnt.DB_MAX_OUTPUT_PORT_TYPE +source_is_compressed <= +source_burstsize[0] <= sink_burstsize[0].DB_MAX_OUTPUT_PORT_TYPE +source_burstsize[1] <= sink_burstsize[1].DB_MAX_OUTPUT_PORT_TYPE +source_burstsize[2] <= sink_burstsize[2].DB_MAX_OUTPUT_PORT_TYPE + + +|lights|nios_system:NiosII|altera_avalon_sc_fifo:hex1_s1_translator_avalon_universal_slave_0_agent_rsp_fifo +clk => csr_readdata[0]~reg0.CLK +clk => csr_readdata[1]~reg0.CLK +clk => csr_readdata[2]~reg0.CLK +clk => csr_readdata[3]~reg0.CLK +clk => csr_readdata[4]~reg0.CLK +clk => csr_readdata[5]~reg0.CLK +clk => csr_readdata[6]~reg0.CLK +clk => csr_readdata[7]~reg0.CLK +clk => csr_readdata[8]~reg0.CLK +clk => csr_readdata[9]~reg0.CLK +clk => csr_readdata[10]~reg0.CLK +clk => csr_readdata[11]~reg0.CLK +clk => csr_readdata[12]~reg0.CLK +clk => csr_readdata[13]~reg0.CLK +clk => csr_readdata[14]~reg0.CLK +clk => csr_readdata[15]~reg0.CLK +clk => csr_readdata[16]~reg0.CLK +clk => csr_readdata[17]~reg0.CLK +clk => csr_readdata[18]~reg0.CLK +clk => csr_readdata[19]~reg0.CLK +clk => csr_readdata[20]~reg0.CLK +clk => csr_readdata[21]~reg0.CLK +clk => csr_readdata[22]~reg0.CLK +clk => csr_readdata[23]~reg0.CLK +clk => csr_readdata[24]~reg0.CLK +clk => csr_readdata[25]~reg0.CLK +clk => csr_readdata[26]~reg0.CLK +clk => csr_readdata[27]~reg0.CLK +clk => csr_readdata[28]~reg0.CLK +clk => csr_readdata[29]~reg0.CLK +clk => csr_readdata[30]~reg0.CLK +clk => csr_readdata[31]~reg0.CLK +clk => mem_used[1].CLK +clk => mem_used[0].CLK +clk => mem[1][0].CLK +clk => mem[1][1].CLK +clk => mem[1][2].CLK +clk => mem[1][3].CLK +clk => mem[1][4].CLK +clk => mem[1][5].CLK +clk => mem[1][6].CLK +clk => mem[1][7].CLK +clk => mem[1][8].CLK +clk => mem[1][9].CLK +clk => mem[1][10].CLK +clk => mem[1][11].CLK +clk => mem[1][12].CLK +clk => mem[1][13].CLK +clk => mem[1][14].CLK +clk => mem[1][15].CLK +clk => mem[1][16].CLK +clk => mem[1][17].CLK +clk => mem[1][18].CLK +clk => mem[1][19].CLK +clk => mem[1][20].CLK +clk => mem[1][21].CLK +clk => mem[1][22].CLK +clk => mem[1][23].CLK +clk => mem[1][24].CLK +clk => mem[1][25].CLK +clk => mem[1][26].CLK +clk => mem[1][27].CLK +clk => mem[1][28].CLK +clk => mem[1][29].CLK +clk => mem[1][30].CLK +clk => mem[1][31].CLK +clk => mem[1][32].CLK +clk => mem[1][33].CLK +clk => mem[1][34].CLK +clk => mem[1][35].CLK +clk => mem[1][36].CLK +clk => mem[1][37].CLK +clk => mem[1][38].CLK +clk => mem[1][39].CLK +clk => mem[1][40].CLK +clk => mem[1][41].CLK +clk => mem[1][42].CLK +clk => mem[1][43].CLK +clk => mem[1][44].CLK +clk => mem[1][45].CLK +clk => mem[1][46].CLK +clk => mem[1][47].CLK +clk => mem[1][48].CLK +clk => mem[1][49].CLK +clk => mem[1][50].CLK +clk => mem[1][51].CLK +clk => mem[1][52].CLK +clk => mem[1][53].CLK +clk => mem[1][54].CLK +clk => mem[1][55].CLK +clk => mem[1][56].CLK +clk => mem[1][57].CLK +clk => mem[1][58].CLK +clk => mem[1][59].CLK +clk => mem[1][60].CLK +clk => mem[1][61].CLK +clk => mem[1][62].CLK +clk => mem[1][63].CLK +clk => mem[1][64].CLK +clk => mem[1][65].CLK +clk => mem[1][66].CLK +clk => mem[1][67].CLK +clk => mem[1][68].CLK +clk => mem[1][69].CLK +clk => mem[1][70].CLK +clk => mem[1][71].CLK +clk => mem[1][72].CLK +clk => mem[1][73].CLK +clk => mem[1][74].CLK +clk => mem[1][75].CLK +clk => mem[1][76].CLK +clk => mem[1][77].CLK +clk => mem[1][78].CLK +clk => mem[1][79].CLK +clk => mem[1][80].CLK +clk => mem[1][81].CLK +clk => mem[1][82].CLK +clk => mem[1][83].CLK +clk => mem[1][84].CLK +clk => mem[1][85].CLK +clk => mem[1][86].CLK +clk => mem[1][87].CLK +clk => mem[1][88].CLK +clk => mem[1][89].CLK +clk => mem[1][90].CLK +clk => mem[1][91].CLK +clk => mem[1][92].CLK +clk => mem[1][93].CLK +clk => mem[1][94].CLK +clk => mem[1][95].CLK +clk => mem[1][96].CLK +clk => mem[1][97].CLK +clk => mem[1][98].CLK +clk => mem[0][0].CLK +clk => mem[0][1].CLK +clk => mem[0][2].CLK +clk => mem[0][3].CLK +clk => mem[0][4].CLK +clk => mem[0][5].CLK +clk => mem[0][6].CLK +clk => mem[0][7].CLK +clk => mem[0][8].CLK +clk => mem[0][9].CLK +clk => mem[0][10].CLK +clk => mem[0][11].CLK +clk => mem[0][12].CLK +clk => mem[0][13].CLK +clk => mem[0][14].CLK +clk => mem[0][15].CLK +clk => mem[0][16].CLK +clk => mem[0][17].CLK +clk => mem[0][18].CLK +clk => mem[0][19].CLK +clk => mem[0][20].CLK +clk => mem[0][21].CLK +clk => mem[0][22].CLK +clk => mem[0][23].CLK +clk => mem[0][24].CLK +clk => mem[0][25].CLK +clk => mem[0][26].CLK +clk => mem[0][27].CLK +clk => mem[0][28].CLK +clk => mem[0][29].CLK +clk => mem[0][30].CLK +clk => mem[0][31].CLK +clk => mem[0][32].CLK +clk => mem[0][33].CLK +clk => mem[0][34].CLK +clk => mem[0][35].CLK +clk => mem[0][36].CLK +clk => mem[0][37].CLK +clk => mem[0][38].CLK +clk => mem[0][39].CLK +clk => mem[0][40].CLK +clk => mem[0][41].CLK +clk => mem[0][42].CLK +clk => mem[0][43].CLK +clk => mem[0][44].CLK +clk => mem[0][45].CLK +clk => mem[0][46].CLK +clk => mem[0][47].CLK +clk => mem[0][48].CLK +clk => mem[0][49].CLK +clk => mem[0][50].CLK +clk => mem[0][51].CLK +clk => mem[0][52].CLK +clk => mem[0][53].CLK +clk => mem[0][54].CLK +clk => mem[0][55].CLK +clk => mem[0][56].CLK +clk => mem[0][57].CLK +clk => mem[0][58].CLK +clk => mem[0][59].CLK +clk => mem[0][60].CLK +clk => mem[0][61].CLK +clk => mem[0][62].CLK +clk => mem[0][63].CLK +clk => mem[0][64].CLK +clk => mem[0][65].CLK +clk => mem[0][66].CLK +clk => mem[0][67].CLK +clk => mem[0][68].CLK +clk => mem[0][69].CLK +clk => mem[0][70].CLK +clk => mem[0][71].CLK +clk => mem[0][72].CLK +clk => mem[0][73].CLK +clk => mem[0][74].CLK +clk => mem[0][75].CLK +clk => mem[0][76].CLK +clk => mem[0][77].CLK +clk => mem[0][78].CLK +clk => mem[0][79].CLK +clk => mem[0][80].CLK +clk => mem[0][81].CLK +clk => mem[0][82].CLK +clk => mem[0][83].CLK +clk => mem[0][84].CLK +clk => mem[0][85].CLK +clk => mem[0][86].CLK +clk => mem[0][87].CLK +clk => mem[0][88].CLK +clk => mem[0][89].CLK +clk => mem[0][90].CLK +clk => mem[0][91].CLK +clk => mem[0][92].CLK +clk => mem[0][93].CLK +clk => mem[0][94].CLK +clk => mem[0][95].CLK +clk => mem[0][96].CLK +clk => mem[0][97].CLK +clk => mem[0][98].CLK +reset => csr_readdata[0]~reg0.ACLR +reset => csr_readdata[1]~reg0.ACLR +reset => csr_readdata[2]~reg0.ACLR +reset => csr_readdata[3]~reg0.ACLR +reset => csr_readdata[4]~reg0.ACLR +reset => csr_readdata[5]~reg0.ACLR +reset => csr_readdata[6]~reg0.ACLR +reset => csr_readdata[7]~reg0.ACLR +reset => csr_readdata[8]~reg0.ACLR +reset => csr_readdata[9]~reg0.ACLR +reset => csr_readdata[10]~reg0.ACLR +reset => csr_readdata[11]~reg0.ACLR +reset => csr_readdata[12]~reg0.ACLR +reset => csr_readdata[13]~reg0.ACLR +reset => csr_readdata[14]~reg0.ACLR +reset => csr_readdata[15]~reg0.ACLR +reset => csr_readdata[16]~reg0.ACLR +reset => csr_readdata[17]~reg0.ACLR +reset => csr_readdata[18]~reg0.ACLR +reset => csr_readdata[19]~reg0.ACLR +reset => csr_readdata[20]~reg0.ACLR +reset => csr_readdata[21]~reg0.ACLR +reset => csr_readdata[22]~reg0.ACLR +reset => csr_readdata[23]~reg0.ACLR +reset => csr_readdata[24]~reg0.ACLR +reset => csr_readdata[25]~reg0.ACLR +reset => csr_readdata[26]~reg0.ACLR +reset => csr_readdata[27]~reg0.ACLR +reset => csr_readdata[28]~reg0.ACLR +reset => csr_readdata[29]~reg0.ACLR +reset => csr_readdata[30]~reg0.ACLR +reset => csr_readdata[31]~reg0.ACLR +reset => mem_used[1].ACLR +reset => mem_used[0].ACLR +reset => mem[1][0].ACLR +reset => mem[1][1].ACLR +reset => mem[1][2].ACLR +reset => mem[1][3].ACLR +reset => mem[1][4].ACLR +reset => mem[1][5].ACLR +reset => mem[1][6].ACLR +reset => mem[1][7].ACLR +reset => mem[1][8].ACLR +reset => mem[1][9].ACLR +reset => mem[1][10].ACLR +reset => mem[1][11].ACLR +reset => mem[1][12].ACLR +reset => mem[1][13].ACLR +reset => mem[1][14].ACLR +reset => mem[1][15].ACLR +reset => mem[1][16].ACLR +reset => mem[1][17].ACLR +reset => mem[1][18].ACLR +reset => mem[1][19].ACLR +reset => mem[1][20].ACLR +reset => mem[1][21].ACLR +reset => mem[1][22].ACLR +reset => mem[1][23].ACLR +reset => mem[1][24].ACLR +reset => mem[1][25].ACLR +reset => mem[1][26].ACLR +reset => mem[1][27].ACLR +reset => mem[1][28].ACLR +reset => mem[1][29].ACLR +reset => mem[1][30].ACLR +reset => mem[1][31].ACLR +reset => mem[1][32].ACLR +reset => mem[1][33].ACLR +reset => mem[1][34].ACLR +reset => mem[1][35].ACLR +reset => mem[1][36].ACLR +reset => mem[1][37].ACLR +reset => mem[1][38].ACLR +reset => mem[1][39].ACLR +reset => mem[1][40].ACLR +reset => mem[1][41].ACLR +reset => mem[1][42].ACLR +reset => mem[1][43].ACLR +reset => mem[1][44].ACLR +reset => mem[1][45].ACLR +reset => mem[1][46].ACLR +reset => mem[1][47].ACLR +reset => mem[1][48].ACLR +reset => mem[1][49].ACLR +reset => mem[1][50].ACLR +reset => mem[1][51].ACLR +reset => mem[1][52].ACLR +reset => mem[1][53].ACLR +reset => mem[1][54].ACLR +reset => mem[1][55].ACLR +reset => mem[1][56].ACLR +reset => mem[1][57].ACLR +reset => mem[1][58].ACLR +reset => mem[1][59].ACLR +reset => mem[1][60].ACLR +reset => mem[1][61].ACLR +reset => mem[1][62].ACLR +reset => mem[1][63].ACLR +reset => mem[1][64].ACLR +reset => mem[1][65].ACLR +reset => mem[1][66].ACLR +reset => mem[1][67].ACLR +reset => mem[1][68].ACLR +reset => mem[1][69].ACLR +reset => mem[1][70].ACLR +reset => mem[1][71].ACLR +reset => mem[1][72].ACLR +reset => mem[1][73].ACLR +reset => mem[1][74].ACLR +reset => mem[1][75].ACLR +reset => mem[1][76].ACLR +reset => mem[1][77].ACLR +reset => mem[1][78].ACLR +reset => mem[1][79].ACLR +reset => mem[1][80].ACLR +reset => mem[1][81].ACLR +reset => mem[1][82].ACLR +reset => mem[1][83].ACLR +reset => mem[1][84].ACLR +reset => mem[1][85].ACLR +reset => mem[1][86].ACLR +reset => mem[1][87].ACLR +reset => mem[1][88].ACLR +reset => mem[1][89].ACLR +reset => mem[1][90].ACLR +reset => mem[1][91].ACLR +reset => mem[1][92].ACLR +reset => mem[1][93].ACLR +reset => mem[1][94].ACLR +reset => mem[1][95].ACLR +reset => mem[1][96].ACLR +reset => mem[1][97].ACLR +reset => mem[1][98].ACLR +reset => mem[0][0].ACLR +reset => mem[0][1].ACLR +reset => mem[0][2].ACLR +reset => mem[0][3].ACLR +reset => mem[0][4].ACLR +reset => mem[0][5].ACLR +reset => mem[0][6].ACLR +reset => mem[0][7].ACLR +reset => mem[0][8].ACLR +reset => mem[0][9].ACLR +reset => mem[0][10].ACLR +reset => mem[0][11].ACLR +reset => mem[0][12].ACLR +reset => mem[0][13].ACLR +reset => mem[0][14].ACLR +reset => mem[0][15].ACLR +reset => mem[0][16].ACLR +reset => mem[0][17].ACLR +reset => mem[0][18].ACLR +reset => mem[0][19].ACLR +reset => mem[0][20].ACLR +reset => mem[0][21].ACLR +reset => mem[0][22].ACLR +reset => mem[0][23].ACLR +reset => mem[0][24].ACLR +reset => mem[0][25].ACLR +reset => mem[0][26].ACLR +reset => mem[0][27].ACLR +reset => mem[0][28].ACLR +reset => mem[0][29].ACLR +reset => mem[0][30].ACLR +reset => mem[0][31].ACLR +reset => mem[0][32].ACLR +reset => mem[0][33].ACLR +reset => mem[0][34].ACLR +reset => mem[0][35].ACLR +reset => mem[0][36].ACLR +reset => mem[0][37].ACLR +reset => mem[0][38].ACLR +reset => mem[0][39].ACLR +reset => mem[0][40].ACLR +reset => mem[0][41].ACLR +reset => mem[0][42].ACLR +reset => mem[0][43].ACLR +reset => mem[0][44].ACLR +reset => mem[0][45].ACLR +reset => mem[0][46].ACLR +reset => mem[0][47].ACLR +reset => mem[0][48].ACLR +reset => mem[0][49].ACLR +reset => mem[0][50].ACLR +reset => mem[0][51].ACLR +reset => mem[0][52].ACLR +reset => mem[0][53].ACLR +reset => mem[0][54].ACLR +reset => mem[0][55].ACLR +reset => mem[0][56].ACLR +reset => mem[0][57].ACLR +reset => mem[0][58].ACLR +reset => mem[0][59].ACLR +reset => mem[0][60].ACLR +reset => mem[0][61].ACLR +reset => mem[0][62].ACLR +reset => mem[0][63].ACLR +reset => mem[0][64].ACLR +reset => mem[0][65].ACLR +reset => mem[0][66].ACLR +reset => mem[0][67].ACLR +reset => mem[0][68].ACLR +reset => mem[0][69].ACLR +reset => mem[0][70].ACLR +reset => mem[0][71].ACLR +reset => mem[0][72].ACLR +reset => mem[0][73].ACLR +reset => mem[0][74].ACLR +reset => mem[0][75].ACLR +reset => mem[0][76].ACLR +reset => mem[0][77].ACLR +reset => mem[0][78].ACLR +reset => mem[0][79].ACLR +reset => mem[0][80].ACLR +reset => mem[0][81].ACLR +reset => mem[0][82].ACLR +reset => mem[0][83].ACLR +reset => mem[0][84].ACLR +reset => mem[0][85].ACLR +reset => mem[0][86].ACLR +reset => mem[0][87].ACLR +reset => mem[0][88].ACLR +reset => mem[0][89].ACLR +reset => mem[0][90].ACLR +reset => mem[0][91].ACLR +reset => mem[0][92].ACLR +reset => mem[0][93].ACLR +reset => mem[0][94].ACLR +reset => mem[0][95].ACLR +reset => mem[0][96].ACLR +reset => mem[0][97].ACLR +reset => mem[0][98].ACLR +in_data[0] => mem.DATAB +in_data[1] => mem.DATAB +in_data[2] => mem.DATAB +in_data[3] => mem.DATAB +in_data[4] => mem.DATAB +in_data[5] => mem.DATAB +in_data[6] => mem.DATAB +in_data[7] => mem.DATAB +in_data[8] => mem.DATAB +in_data[9] => mem.DATAB +in_data[10] => mem.DATAB +in_data[11] => mem.DATAB +in_data[12] => mem.DATAB +in_data[13] => mem.DATAB +in_data[14] => mem.DATAB +in_data[15] => mem.DATAB +in_data[16] => mem.DATAB +in_data[17] => mem.DATAB +in_data[18] => mem.DATAB +in_data[19] => mem.DATAB +in_data[20] => mem.DATAB +in_data[21] => mem.DATAB +in_data[22] => mem.DATAB +in_data[23] => mem.DATAB +in_data[24] => mem.DATAB +in_data[25] => mem.DATAB +in_data[26] => mem.DATAB +in_data[27] => mem.DATAB +in_data[28] => mem.DATAB +in_data[29] => mem.DATAB +in_data[30] => mem.DATAB +in_data[31] => mem.DATAB +in_data[32] => mem.DATAB +in_data[33] => mem.DATAB +in_data[34] => mem.DATAB +in_data[35] => mem.DATAB +in_data[36] => mem.DATAB +in_data[37] => mem.DATAB +in_data[38] => mem.DATAB +in_data[39] => mem.DATAB +in_data[40] => mem.DATAB +in_data[41] => mem.DATAB +in_data[42] => mem.DATAB +in_data[43] => mem.DATAB +in_data[44] => mem.DATAB +in_data[45] => mem.DATAB +in_data[46] => mem.DATAB +in_data[47] => mem.DATAB +in_data[48] => mem.DATAB +in_data[49] => mem.DATAB +in_data[50] => mem.DATAB +in_data[51] => mem.DATAB +in_data[52] => mem.DATAB +in_data[53] => mem.DATAB +in_data[54] => mem.DATAB +in_data[55] => mem.DATAB +in_data[56] => mem.DATAB +in_data[57] => mem.DATAB +in_data[58] => mem.DATAB +in_data[59] => mem.DATAB +in_data[60] => mem.DATAB +in_data[61] => mem.DATAB +in_data[62] => mem.DATAB +in_data[63] => mem.DATAB +in_data[64] => mem.DATAB +in_data[65] => mem.DATAB +in_data[66] => mem.DATAB +in_data[67] => mem.DATAB +in_data[68] => mem.DATAB +in_data[69] => mem.DATAB +in_data[70] => mem.DATAB +in_data[71] => mem.DATAB +in_data[72] => mem.DATAB +in_data[73] => mem.DATAB +in_data[74] => mem.DATAB +in_data[75] => mem.DATAB +in_data[76] => mem.DATAB +in_data[77] => mem.DATAB +in_data[78] => mem.DATAB +in_data[79] => mem.DATAB +in_data[80] => mem.DATAB +in_data[81] => mem.DATAB +in_data[82] => mem.DATAB +in_data[83] => mem.DATAB +in_data[84] => mem.DATAB +in_data[85] => mem.DATAB +in_data[86] => mem.DATAB +in_data[87] => mem.DATAB +in_data[88] => mem.DATAB +in_data[89] => mem.DATAB +in_data[90] => mem.DATAB +in_data[91] => mem.DATAB +in_data[92] => mem.DATAB +in_data[93] => mem.DATAB +in_data[94] => mem.DATAB +in_data[95] => mem.DATAB +in_data[96] => mem.DATAB +in_valid => write.IN1 +in_startofpacket => mem.DATAB +in_endofpacket => mem.DATAB +in_empty[0] => ~NO_FANOUT~ +in_error[0] => out_error[0].DATAIN +in_error[0] => out_empty[0].DATAIN +in_channel[0] => out_channel[0].DATAIN +in_ready <= mem_used[1].DB_MAX_OUTPUT_PORT_TYPE +out_data[0] <= mem[0][0].DB_MAX_OUTPUT_PORT_TYPE +out_data[1] <= mem[0][1].DB_MAX_OUTPUT_PORT_TYPE +out_data[2] <= mem[0][2].DB_MAX_OUTPUT_PORT_TYPE +out_data[3] <= mem[0][3].DB_MAX_OUTPUT_PORT_TYPE +out_data[4] <= mem[0][4].DB_MAX_OUTPUT_PORT_TYPE +out_data[5] <= mem[0][5].DB_MAX_OUTPUT_PORT_TYPE +out_data[6] <= mem[0][6].DB_MAX_OUTPUT_PORT_TYPE +out_data[7] <= mem[0][7].DB_MAX_OUTPUT_PORT_TYPE +out_data[8] <= mem[0][8].DB_MAX_OUTPUT_PORT_TYPE +out_data[9] <= mem[0][9].DB_MAX_OUTPUT_PORT_TYPE +out_data[10] <= mem[0][10].DB_MAX_OUTPUT_PORT_TYPE +out_data[11] <= mem[0][11].DB_MAX_OUTPUT_PORT_TYPE +out_data[12] <= mem[0][12].DB_MAX_OUTPUT_PORT_TYPE +out_data[13] <= mem[0][13].DB_MAX_OUTPUT_PORT_TYPE +out_data[14] <= mem[0][14].DB_MAX_OUTPUT_PORT_TYPE +out_data[15] <= mem[0][15].DB_MAX_OUTPUT_PORT_TYPE +out_data[16] <= mem[0][16].DB_MAX_OUTPUT_PORT_TYPE +out_data[17] <= mem[0][17].DB_MAX_OUTPUT_PORT_TYPE +out_data[18] <= mem[0][18].DB_MAX_OUTPUT_PORT_TYPE +out_data[19] <= mem[0][19].DB_MAX_OUTPUT_PORT_TYPE +out_data[20] <= mem[0][20].DB_MAX_OUTPUT_PORT_TYPE +out_data[21] <= mem[0][21].DB_MAX_OUTPUT_PORT_TYPE +out_data[22] <= mem[0][22].DB_MAX_OUTPUT_PORT_TYPE +out_data[23] <= mem[0][23].DB_MAX_OUTPUT_PORT_TYPE +out_data[24] <= mem[0][24].DB_MAX_OUTPUT_PORT_TYPE +out_data[25] <= mem[0][25].DB_MAX_OUTPUT_PORT_TYPE +out_data[26] <= mem[0][26].DB_MAX_OUTPUT_PORT_TYPE +out_data[27] <= mem[0][27].DB_MAX_OUTPUT_PORT_TYPE +out_data[28] <= mem[0][28].DB_MAX_OUTPUT_PORT_TYPE +out_data[29] <= mem[0][29].DB_MAX_OUTPUT_PORT_TYPE +out_data[30] <= mem[0][30].DB_MAX_OUTPUT_PORT_TYPE +out_data[31] <= mem[0][31].DB_MAX_OUTPUT_PORT_TYPE +out_data[32] <= mem[0][32].DB_MAX_OUTPUT_PORT_TYPE +out_data[33] <= mem[0][33].DB_MAX_OUTPUT_PORT_TYPE +out_data[34] <= mem[0][34].DB_MAX_OUTPUT_PORT_TYPE +out_data[35] <= mem[0][35].DB_MAX_OUTPUT_PORT_TYPE +out_data[36] <= mem[0][36].DB_MAX_OUTPUT_PORT_TYPE +out_data[37] <= mem[0][37].DB_MAX_OUTPUT_PORT_TYPE +out_data[38] <= mem[0][38].DB_MAX_OUTPUT_PORT_TYPE +out_data[39] <= mem[0][39].DB_MAX_OUTPUT_PORT_TYPE +out_data[40] <= mem[0][40].DB_MAX_OUTPUT_PORT_TYPE +out_data[41] <= mem[0][41].DB_MAX_OUTPUT_PORT_TYPE +out_data[42] <= mem[0][42].DB_MAX_OUTPUT_PORT_TYPE +out_data[43] <= mem[0][43].DB_MAX_OUTPUT_PORT_TYPE +out_data[44] <= mem[0][44].DB_MAX_OUTPUT_PORT_TYPE +out_data[45] <= mem[0][45].DB_MAX_OUTPUT_PORT_TYPE +out_data[46] <= mem[0][46].DB_MAX_OUTPUT_PORT_TYPE +out_data[47] <= mem[0][47].DB_MAX_OUTPUT_PORT_TYPE +out_data[48] <= mem[0][48].DB_MAX_OUTPUT_PORT_TYPE +out_data[49] <= mem[0][49].DB_MAX_OUTPUT_PORT_TYPE +out_data[50] <= mem[0][50].DB_MAX_OUTPUT_PORT_TYPE +out_data[51] <= mem[0][51].DB_MAX_OUTPUT_PORT_TYPE +out_data[52] <= mem[0][52].DB_MAX_OUTPUT_PORT_TYPE +out_data[53] <= mem[0][53].DB_MAX_OUTPUT_PORT_TYPE +out_data[54] <= mem[0][54].DB_MAX_OUTPUT_PORT_TYPE +out_data[55] <= mem[0][55].DB_MAX_OUTPUT_PORT_TYPE +out_data[56] <= mem[0][56].DB_MAX_OUTPUT_PORT_TYPE +out_data[57] <= mem[0][57].DB_MAX_OUTPUT_PORT_TYPE +out_data[58] <= mem[0][58].DB_MAX_OUTPUT_PORT_TYPE +out_data[59] <= mem[0][59].DB_MAX_OUTPUT_PORT_TYPE +out_data[60] <= mem[0][60].DB_MAX_OUTPUT_PORT_TYPE +out_data[61] <= mem[0][61].DB_MAX_OUTPUT_PORT_TYPE +out_data[62] <= mem[0][62].DB_MAX_OUTPUT_PORT_TYPE +out_data[63] <= mem[0][63].DB_MAX_OUTPUT_PORT_TYPE +out_data[64] <= mem[0][64].DB_MAX_OUTPUT_PORT_TYPE +out_data[65] <= mem[0][65].DB_MAX_OUTPUT_PORT_TYPE +out_data[66] <= mem[0][66].DB_MAX_OUTPUT_PORT_TYPE +out_data[67] <= mem[0][67].DB_MAX_OUTPUT_PORT_TYPE +out_data[68] <= mem[0][68].DB_MAX_OUTPUT_PORT_TYPE +out_data[69] <= mem[0][69].DB_MAX_OUTPUT_PORT_TYPE +out_data[70] <= mem[0][70].DB_MAX_OUTPUT_PORT_TYPE +out_data[71] <= mem[0][71].DB_MAX_OUTPUT_PORT_TYPE +out_data[72] <= mem[0][72].DB_MAX_OUTPUT_PORT_TYPE +out_data[73] <= mem[0][73].DB_MAX_OUTPUT_PORT_TYPE +out_data[74] <= mem[0][74].DB_MAX_OUTPUT_PORT_TYPE +out_data[75] <= mem[0][75].DB_MAX_OUTPUT_PORT_TYPE +out_data[76] <= mem[0][76].DB_MAX_OUTPUT_PORT_TYPE +out_data[77] <= mem[0][77].DB_MAX_OUTPUT_PORT_TYPE +out_data[78] <= mem[0][78].DB_MAX_OUTPUT_PORT_TYPE +out_data[79] <= mem[0][79].DB_MAX_OUTPUT_PORT_TYPE +out_data[80] <= mem[0][80].DB_MAX_OUTPUT_PORT_TYPE +out_data[81] <= mem[0][81].DB_MAX_OUTPUT_PORT_TYPE +out_data[82] <= mem[0][82].DB_MAX_OUTPUT_PORT_TYPE +out_data[83] <= mem[0][83].DB_MAX_OUTPUT_PORT_TYPE +out_data[84] <= mem[0][84].DB_MAX_OUTPUT_PORT_TYPE +out_data[85] <= mem[0][85].DB_MAX_OUTPUT_PORT_TYPE +out_data[86] <= mem[0][86].DB_MAX_OUTPUT_PORT_TYPE +out_data[87] <= mem[0][87].DB_MAX_OUTPUT_PORT_TYPE +out_data[88] <= mem[0][88].DB_MAX_OUTPUT_PORT_TYPE +out_data[89] <= mem[0][89].DB_MAX_OUTPUT_PORT_TYPE +out_data[90] <= mem[0][90].DB_MAX_OUTPUT_PORT_TYPE +out_data[91] <= mem[0][91].DB_MAX_OUTPUT_PORT_TYPE +out_data[92] <= mem[0][92].DB_MAX_OUTPUT_PORT_TYPE +out_data[93] <= mem[0][93].DB_MAX_OUTPUT_PORT_TYPE +out_data[94] <= mem[0][94].DB_MAX_OUTPUT_PORT_TYPE +out_data[95] <= mem[0][95].DB_MAX_OUTPUT_PORT_TYPE +out_data[96] <= mem[0][96].DB_MAX_OUTPUT_PORT_TYPE +out_valid <= mem_used[0].DB_MAX_OUTPUT_PORT_TYPE +out_startofpacket <= mem[0][98].DB_MAX_OUTPUT_PORT_TYPE +out_endofpacket <= mem[0][97].DB_MAX_OUTPUT_PORT_TYPE +out_empty[0] <= in_error[0].DB_MAX_OUTPUT_PORT_TYPE +out_error[0] <= in_error[0].DB_MAX_OUTPUT_PORT_TYPE +out_channel[0] <= in_channel[0].DB_MAX_OUTPUT_PORT_TYPE +out_ready => internal_out_ready.IN1 +csr_address[0] => ~NO_FANOUT~ +csr_address[1] => ~NO_FANOUT~ +csr_write => ~NO_FANOUT~ +csr_read => csr_readdata[31]~reg0.ENA +csr_read => csr_readdata[30]~reg0.ENA +csr_read => csr_readdata[29]~reg0.ENA +csr_read => csr_readdata[28]~reg0.ENA +csr_read => csr_readdata[27]~reg0.ENA +csr_read => csr_readdata[26]~reg0.ENA +csr_read => csr_readdata[25]~reg0.ENA +csr_read => csr_readdata[24]~reg0.ENA +csr_read => csr_readdata[23]~reg0.ENA +csr_read => csr_readdata[22]~reg0.ENA +csr_read => csr_readdata[21]~reg0.ENA +csr_read => csr_readdata[20]~reg0.ENA +csr_read => csr_readdata[19]~reg0.ENA +csr_read => csr_readdata[18]~reg0.ENA +csr_read => csr_readdata[17]~reg0.ENA +csr_read => csr_readdata[16]~reg0.ENA +csr_read => csr_readdata[15]~reg0.ENA +csr_read => csr_readdata[14]~reg0.ENA +csr_read => csr_readdata[13]~reg0.ENA +csr_read => csr_readdata[12]~reg0.ENA +csr_read => csr_readdata[11]~reg0.ENA +csr_read => csr_readdata[10]~reg0.ENA +csr_read => csr_readdata[9]~reg0.ENA +csr_read => csr_readdata[8]~reg0.ENA +csr_read => csr_readdata[7]~reg0.ENA +csr_read => csr_readdata[6]~reg0.ENA +csr_read => csr_readdata[5]~reg0.ENA +csr_read => csr_readdata[4]~reg0.ENA +csr_read => csr_readdata[3]~reg0.ENA +csr_read => csr_readdata[2]~reg0.ENA +csr_read => csr_readdata[1]~reg0.ENA +csr_read => csr_readdata[0]~reg0.ENA +csr_writedata[0] => ~NO_FANOUT~ +csr_writedata[1] => ~NO_FANOUT~ +csr_writedata[2] => ~NO_FANOUT~ +csr_writedata[3] => ~NO_FANOUT~ +csr_writedata[4] => ~NO_FANOUT~ +csr_writedata[5] => ~NO_FANOUT~ +csr_writedata[6] => ~NO_FANOUT~ +csr_writedata[7] => ~NO_FANOUT~ +csr_writedata[8] => ~NO_FANOUT~ +csr_writedata[9] => ~NO_FANOUT~ +csr_writedata[10] => ~NO_FANOUT~ +csr_writedata[11] => ~NO_FANOUT~ +csr_writedata[12] => ~NO_FANOUT~ +csr_writedata[13] => ~NO_FANOUT~ +csr_writedata[14] => ~NO_FANOUT~ +csr_writedata[15] => ~NO_FANOUT~ +csr_writedata[16] => ~NO_FANOUT~ +csr_writedata[17] => ~NO_FANOUT~ +csr_writedata[18] => ~NO_FANOUT~ +csr_writedata[19] => ~NO_FANOUT~ +csr_writedata[20] => ~NO_FANOUT~ +csr_writedata[21] => ~NO_FANOUT~ +csr_writedata[22] => ~NO_FANOUT~ +csr_writedata[23] => ~NO_FANOUT~ +csr_writedata[24] => ~NO_FANOUT~ +csr_writedata[25] => ~NO_FANOUT~ +csr_writedata[26] => ~NO_FANOUT~ +csr_writedata[27] => ~NO_FANOUT~ +csr_writedata[28] => ~NO_FANOUT~ +csr_writedata[29] => ~NO_FANOUT~ +csr_writedata[30] => ~NO_FANOUT~ +csr_writedata[31] => ~NO_FANOUT~ +csr_readdata[0] <= csr_readdata[0]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[1] <= csr_readdata[1]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[2] <= csr_readdata[2]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[3] <= csr_readdata[3]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[4] <= csr_readdata[4]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[5] <= csr_readdata[5]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[6] <= csr_readdata[6]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[7] <= csr_readdata[7]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[8] <= csr_readdata[8]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[9] <= csr_readdata[9]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[10] <= csr_readdata[10]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[11] <= csr_readdata[11]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[12] <= csr_readdata[12]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[13] <= csr_readdata[13]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[14] <= csr_readdata[14]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[15] <= csr_readdata[15]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[16] <= csr_readdata[16]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[17] <= csr_readdata[17]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[18] <= csr_readdata[18]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[19] <= csr_readdata[19]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[20] <= csr_readdata[20]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[21] <= csr_readdata[21]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[22] <= csr_readdata[22]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[23] <= csr_readdata[23]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[24] <= csr_readdata[24]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[25] <= csr_readdata[25]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[26] <= csr_readdata[26]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[27] <= csr_readdata[27]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[28] <= csr_readdata[28]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[29] <= csr_readdata[29]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[30] <= csr_readdata[30]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[31] <= csr_readdata[31]~reg0.DB_MAX_OUTPUT_PORT_TYPE +almost_full_data <= +almost_empty_data <= + + +|lights|nios_system:NiosII|altera_merlin_slave_agent:hex2_s1_translator_avalon_universal_slave_0_agent +clk => clk.IN1 +reset => reset.IN1 +m0_address[0] <= +m0_address[1] <= +m0_address[2] <= cp_data[38].DB_MAX_OUTPUT_PORT_TYPE +m0_address[3] <= cp_data[39].DB_MAX_OUTPUT_PORT_TYPE +m0_address[4] <= cp_data[40].DB_MAX_OUTPUT_PORT_TYPE +m0_address[5] <= cp_data[41].DB_MAX_OUTPUT_PORT_TYPE +m0_address[6] <= cp_data[42].DB_MAX_OUTPUT_PORT_TYPE +m0_address[7] <= cp_data[43].DB_MAX_OUTPUT_PORT_TYPE +m0_address[8] <= cp_data[44].DB_MAX_OUTPUT_PORT_TYPE +m0_address[9] <= cp_data[45].DB_MAX_OUTPUT_PORT_TYPE +m0_address[10] <= cp_data[46].DB_MAX_OUTPUT_PORT_TYPE +m0_address[11] <= cp_data[47].DB_MAX_OUTPUT_PORT_TYPE +m0_address[12] <= cp_data[48].DB_MAX_OUTPUT_PORT_TYPE +m0_address[13] <= cp_data[49].DB_MAX_OUTPUT_PORT_TYPE +m0_address[14] <= cp_data[50].DB_MAX_OUTPUT_PORT_TYPE +m0_address[15] <= cp_data[51].DB_MAX_OUTPUT_PORT_TYPE +m0_address[16] <= cp_data[52].DB_MAX_OUTPUT_PORT_TYPE +m0_address[17] <= cp_data[53].DB_MAX_OUTPUT_PORT_TYPE +m0_address[18] <= cp_data[54].DB_MAX_OUTPUT_PORT_TYPE +m0_burstcount[0] <= m0_burstcount.DB_MAX_OUTPUT_PORT_TYPE +m0_burstcount[1] <= m0_burstcount.DB_MAX_OUTPUT_PORT_TYPE +m0_burstcount[2] <= m0_burstcount.DB_MAX_OUTPUT_PORT_TYPE +m0_byteenable[0] <= cp_data[32].DB_MAX_OUTPUT_PORT_TYPE +m0_byteenable[1] <= cp_data[33].DB_MAX_OUTPUT_PORT_TYPE +m0_byteenable[2] <= cp_data[34].DB_MAX_OUTPUT_PORT_TYPE +m0_byteenable[3] <= cp_data[35].DB_MAX_OUTPUT_PORT_TYPE +m0_read <= m0_read.DB_MAX_OUTPUT_PORT_TYPE +m0_readdata[0] => rdata_fifo_src_data[0].DATAIN +m0_readdata[1] => rdata_fifo_src_data[1].DATAIN +m0_readdata[2] => rdata_fifo_src_data[2].DATAIN +m0_readdata[3] => rdata_fifo_src_data[3].DATAIN +m0_readdata[4] => rdata_fifo_src_data[4].DATAIN +m0_readdata[5] => rdata_fifo_src_data[5].DATAIN +m0_readdata[6] => rdata_fifo_src_data[6].DATAIN +m0_readdata[7] => rdata_fifo_src_data[7].DATAIN +m0_readdata[8] => rdata_fifo_src_data[8].DATAIN +m0_readdata[9] => rdata_fifo_src_data[9].DATAIN +m0_readdata[10] => rdata_fifo_src_data[10].DATAIN +m0_readdata[11] => rdata_fifo_src_data[11].DATAIN +m0_readdata[12] => rdata_fifo_src_data[12].DATAIN +m0_readdata[13] => rdata_fifo_src_data[13].DATAIN +m0_readdata[14] => rdata_fifo_src_data[14].DATAIN +m0_readdata[15] => rdata_fifo_src_data[15].DATAIN +m0_readdata[16] => rdata_fifo_src_data[16].DATAIN +m0_readdata[17] => rdata_fifo_src_data[17].DATAIN +m0_readdata[18] => rdata_fifo_src_data[18].DATAIN +m0_readdata[19] => rdata_fifo_src_data[19].DATAIN +m0_readdata[20] => rdata_fifo_src_data[20].DATAIN +m0_readdata[21] => rdata_fifo_src_data[21].DATAIN +m0_readdata[22] => rdata_fifo_src_data[22].DATAIN +m0_readdata[23] => rdata_fifo_src_data[23].DATAIN +m0_readdata[24] => rdata_fifo_src_data[24].DATAIN +m0_readdata[25] => rdata_fifo_src_data[25].DATAIN +m0_readdata[26] => rdata_fifo_src_data[26].DATAIN +m0_readdata[27] => rdata_fifo_src_data[27].DATAIN +m0_readdata[28] => rdata_fifo_src_data[28].DATAIN +m0_readdata[29] => rdata_fifo_src_data[29].DATAIN +m0_readdata[30] => rdata_fifo_src_data[30].DATAIN +m0_readdata[31] => rdata_fifo_src_data[31].DATAIN +m0_waitrequest => cp_ready.IN0 +m0_write <= m0_write.DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[0] <= cp_data[0].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[1] <= cp_data[1].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[2] <= cp_data[2].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[3] <= cp_data[3].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[4] <= cp_data[4].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[5] <= cp_data[5].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[6] <= cp_data[6].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[7] <= cp_data[7].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[8] <= cp_data[8].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[9] <= cp_data[9].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[10] <= cp_data[10].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[11] <= cp_data[11].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[12] <= cp_data[12].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[13] <= cp_data[13].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[14] <= cp_data[14].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[15] <= cp_data[15].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[16] <= cp_data[16].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[17] <= cp_data[17].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[18] <= cp_data[18].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[19] <= cp_data[19].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[20] <= cp_data[20].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[21] <= cp_data[21].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[22] <= cp_data[22].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[23] <= cp_data[23].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[24] <= cp_data[24].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[25] <= cp_data[25].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[26] <= cp_data[26].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[27] <= cp_data[27].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[28] <= cp_data[28].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[29] <= cp_data[29].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[30] <= cp_data[30].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[31] <= cp_data[31].DB_MAX_OUTPUT_PORT_TYPE +m0_readdatavalid => rdata_fifo_src_valid.IN0 +m0_debugaccess <= cp_data[87].DB_MAX_OUTPUT_PORT_TYPE +m0_lock <= m0_lock.DB_MAX_OUTPUT_PORT_TYPE +m0_response[0] => rdata_fifo_src_data[32].DATAIN +m0_response[1] => rdata_fifo_src_data[33].DATAIN +m0_writeresponserequest <= m0_writeresponserequest.DB_MAX_OUTPUT_PORT_TYPE +m0_writeresponsevalid => rdata_fifo_src_valid.IN1 +rf_source_data[0] <= +rf_source_data[1] <= +rf_source_data[2] <= +rf_source_data[3] <= +rf_source_data[4] <= +rf_source_data[5] <= +rf_source_data[6] <= +rf_source_data[7] <= +rf_source_data[8] <= +rf_source_data[9] <= +rf_source_data[10] <= +rf_source_data[11] <= +rf_source_data[12] <= +rf_source_data[13] <= +rf_source_data[14] <= +rf_source_data[15] <= +rf_source_data[16] <= +rf_source_data[17] <= +rf_source_data[18] <= +rf_source_data[19] <= +rf_source_data[20] <= +rf_source_data[21] <= +rf_source_data[22] <= +rf_source_data[23] <= +rf_source_data[24] <= +rf_source_data[25] <= +rf_source_data[26] <= +rf_source_data[27] <= +rf_source_data[28] <= +rf_source_data[29] <= +rf_source_data[30] <= +rf_source_data[31] <= +rf_source_data[32] <= cp_data[32].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[33] <= cp_data[33].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[34] <= cp_data[34].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[35] <= cp_data[35].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[36] <= cp_data[36].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[37] <= cp_data[37].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[38] <= cp_data[38].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[39] <= cp_data[39].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[40] <= cp_data[40].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[41] <= cp_data[41].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[42] <= cp_data[42].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[43] <= cp_data[43].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[44] <= cp_data[44].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[45] <= cp_data[45].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[46] <= cp_data[46].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[47] <= cp_data[47].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[48] <= cp_data[48].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[49] <= cp_data[49].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[50] <= cp_data[50].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[51] <= cp_data[51].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[52] <= cp_data[52].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[53] <= cp_data[53].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[54] <= cp_data[54].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[55] <= cp_data[55].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[56] <= cp_data[56].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[57] <= cp_data[57].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[58] <= cp_data[58].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[59] <= cp_data[59].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[60] <= cp_data[60].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[61] <= cp_data[61].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[62] <= cp_data[62].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[63] <= cp_data[63].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[64] <= cp_data[64].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[65] <= cp_data[65].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[66] <= cp_data[66].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[67] <= cp_data[67].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[68] <= cp_data[68].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[69] <= cp_data[69].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[70] <= cp_data[70].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[71] <= cp_data[71].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[72] <= cp_data[72].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[73] <= cp_data[73].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[74] <= cp_data[74].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[75] <= cp_data[75].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[76] <= cp_data[76].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[77] <= cp_data[77].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[78] <= cp_data[78].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[79] <= cp_data[79].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[80] <= cp_data[80].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[81] <= cp_data[81].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[82] <= cp_data[82].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[83] <= cp_data[83].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[84] <= cp_data[84].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[85] <= cp_data[85].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[86] <= cp_data[86].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[87] <= cp_data[87].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[88] <= +rf_source_data[89] <= +rf_source_data[90] <= cp_data[90].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[91] <= cp_data[91].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[92] <= cp_data[92].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[93] <= cp_data[93].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[94] <= cp_data[94].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[95] <= cp_data[95].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[96] <= nonposted_write_endofpacket.DB_MAX_OUTPUT_PORT_TYPE +rf_source_valid <= rf_source_valid.DB_MAX_OUTPUT_PORT_TYPE +rf_source_startofpacket <= cp_startofpacket.DB_MAX_OUTPUT_PORT_TYPE +rf_source_endofpacket <= cp_endofpacket.DB_MAX_OUTPUT_PORT_TYPE +rf_source_ready => cp_ready.IN1 +rf_source_ready => m0_write.IN1 +rf_source_ready => m0_lock.IN1 +rf_source_ready => rf_source_valid.IN1 +rf_source_ready => m0_read.IN1 +rf_sink_data[0] => ~NO_FANOUT~ +rf_sink_data[1] => ~NO_FANOUT~ +rf_sink_data[2] => ~NO_FANOUT~ +rf_sink_data[3] => ~NO_FANOUT~ +rf_sink_data[4] => ~NO_FANOUT~ +rf_sink_data[5] => ~NO_FANOUT~ +rf_sink_data[6] => ~NO_FANOUT~ +rf_sink_data[7] => ~NO_FANOUT~ +rf_sink_data[8] => ~NO_FANOUT~ +rf_sink_data[9] => ~NO_FANOUT~ +rf_sink_data[10] => ~NO_FANOUT~ +rf_sink_data[11] => ~NO_FANOUT~ +rf_sink_data[12] => ~NO_FANOUT~ +rf_sink_data[13] => ~NO_FANOUT~ +rf_sink_data[14] => ~NO_FANOUT~ +rf_sink_data[15] => ~NO_FANOUT~ +rf_sink_data[16] => ~NO_FANOUT~ +rf_sink_data[17] => ~NO_FANOUT~ +rf_sink_data[18] => ~NO_FANOUT~ +rf_sink_data[19] => ~NO_FANOUT~ +rf_sink_data[20] => ~NO_FANOUT~ +rf_sink_data[21] => ~NO_FANOUT~ +rf_sink_data[22] => ~NO_FANOUT~ +rf_sink_data[23] => ~NO_FANOUT~ +rf_sink_data[24] => ~NO_FANOUT~ +rf_sink_data[25] => ~NO_FANOUT~ +rf_sink_data[26] => ~NO_FANOUT~ +rf_sink_data[27] => ~NO_FANOUT~ +rf_sink_data[28] => ~NO_FANOUT~ +rf_sink_data[29] => ~NO_FANOUT~ +rf_sink_data[30] => ~NO_FANOUT~ +rf_sink_data[31] => ~NO_FANOUT~ +rf_sink_data[32] => rp_data[32].DATAIN +rf_sink_data[33] => rp_data[33].DATAIN +rf_sink_data[34] => rp_data[34].DATAIN +rf_sink_data[35] => rp_data[35].DATAIN +rf_sink_data[36] => rf_sink_addr[0].IN1 +rf_sink_data[37] => rf_sink_addr[1].IN1 +rf_sink_data[38] => rf_sink_addr[2].IN1 +rf_sink_data[39] => rf_sink_addr[3].IN1 +rf_sink_data[40] => rf_sink_addr[4].IN1 +rf_sink_data[41] => rf_sink_addr[5].IN1 +rf_sink_data[42] => rf_sink_addr[6].IN1 +rf_sink_data[43] => rf_sink_addr[7].IN1 +rf_sink_data[44] => rf_sink_addr[8].IN1 +rf_sink_data[45] => rf_sink_addr[9].IN1 +rf_sink_data[46] => rf_sink_addr[10].IN1 +rf_sink_data[47] => rf_sink_addr[11].IN1 +rf_sink_data[48] => rf_sink_addr[12].IN1 +rf_sink_data[49] => rf_sink_addr[13].IN1 +rf_sink_data[50] => rf_sink_addr[14].IN1 +rf_sink_data[51] => rf_sink_addr[15].IN1 +rf_sink_data[52] => rf_sink_addr[16].IN1 +rf_sink_data[53] => rf_sink_addr[17].IN1 +rf_sink_data[54] => rf_sink_addr[18].IN1 +rf_sink_data[55] => rf_sink_compressed.IN1 +rf_sink_data[56] => rp_data[56].DATAIN +rf_sink_data[57] => comb.OUTPUTSELECT +rf_sink_data[57] => rp_data[57].DATAIN +rf_sink_data[58] => rp_data.IN0 +rf_sink_data[59] => rp_data[59].DATAIN +rf_sink_data[60] => rp_data[60].DATAIN +rf_sink_data[61] => rf_sink_byte_cnt[0].IN1 +rf_sink_data[62] => rf_sink_byte_cnt[1].IN1 +rf_sink_data[63] => rf_sink_byte_cnt[2].IN1 +rf_sink_data[64] => rf_sink_burstwrap[0].IN1 +rf_sink_data[65] => rf_sink_burstwrap[1].IN1 +rf_sink_data[66] => rf_sink_burstwrap[2].IN1 +rf_sink_data[67] => rf_sink_burstsize[0].IN1 +rf_sink_data[68] => rf_sink_burstsize[1].IN1 +rf_sink_data[69] => rf_sink_burstsize[2].IN1 +rf_sink_data[70] => rp_data[70].DATAIN +rf_sink_data[71] => rp_data[71].DATAIN +rf_sink_data[72] => rp_data[72].DATAIN +rf_sink_data[73] => rp_data[73].DATAIN +rf_sink_data[74] => rp_data[74].DATAIN +rf_sink_data[75] => rp_data[75].DATAIN +rf_sink_data[76] => rp_data[81].DATAIN +rf_sink_data[77] => rp_data[82].DATAIN +rf_sink_data[78] => rp_data[83].DATAIN +rf_sink_data[79] => rp_data[84].DATAIN +rf_sink_data[80] => rp_data[85].DATAIN +rf_sink_data[81] => rp_data[76].DATAIN +rf_sink_data[82] => rp_data[77].DATAIN +rf_sink_data[83] => rp_data[78].DATAIN +rf_sink_data[84] => rp_data[79].DATAIN +rf_sink_data[85] => rp_data[80].DATAIN +rf_sink_data[86] => rp_data[86].DATAIN +rf_sink_data[87] => rp_data[87].DATAIN +rf_sink_data[88] => rp_data[88].DATAIN +rf_sink_data[89] => rp_data[89].DATAIN +rf_sink_data[90] => rp_data[90].DATAIN +rf_sink_data[91] => rp_data[91].DATAIN +rf_sink_data[92] => rp_data[92].DATAIN +rf_sink_data[93] => rp_data[93].DATAIN +rf_sink_data[94] => ~NO_FANOUT~ +rf_sink_data[95] => ~NO_FANOUT~ +rf_sink_data[96] => rdata_fifo_sink_ready.IN0 +rf_sink_data[96] => comb.IN0 +rf_sink_valid => rdata_fifo_sink_ready.IN1 +rf_sink_valid => comb.IN1 +rf_sink_startofpacket => comb.DATAA +rf_sink_endofpacket => rf_sink_endofpacket.IN1 +rf_sink_ready <= altera_merlin_burst_uncompressor:uncompressor.sink_ready +rdata_fifo_src_data[0] <= m0_readdata[0].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[1] <= m0_readdata[1].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[2] <= m0_readdata[2].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[3] <= m0_readdata[3].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[4] <= m0_readdata[4].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[5] <= m0_readdata[5].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[6] <= m0_readdata[6].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[7] <= m0_readdata[7].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[8] <= m0_readdata[8].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[9] <= m0_readdata[9].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[10] <= m0_readdata[10].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[11] <= m0_readdata[11].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[12] <= m0_readdata[12].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[13] <= m0_readdata[13].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[14] <= m0_readdata[14].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[15] <= m0_readdata[15].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[16] <= m0_readdata[16].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[17] <= m0_readdata[17].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[18] <= m0_readdata[18].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[19] <= m0_readdata[19].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[20] <= m0_readdata[20].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[21] <= m0_readdata[21].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[22] <= m0_readdata[22].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[23] <= m0_readdata[23].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[24] <= m0_readdata[24].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[25] <= m0_readdata[25].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[26] <= m0_readdata[26].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[27] <= m0_readdata[27].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[28] <= m0_readdata[28].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[29] <= m0_readdata[29].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[30] <= m0_readdata[30].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[31] <= m0_readdata[31].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[32] <= m0_response[0].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[33] <= m0_response[1].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_valid <= rdata_fifo_src_valid.DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_ready => ~NO_FANOUT~ +rdata_fifo_sink_data[0] => rp_data[0].DATAIN +rdata_fifo_sink_data[1] => rp_data[1].DATAIN +rdata_fifo_sink_data[2] => rp_data[2].DATAIN +rdata_fifo_sink_data[3] => rp_data[3].DATAIN +rdata_fifo_sink_data[4] => rp_data[4].DATAIN +rdata_fifo_sink_data[5] => rp_data[5].DATAIN +rdata_fifo_sink_data[6] => rp_data[6].DATAIN +rdata_fifo_sink_data[7] => rp_data[7].DATAIN +rdata_fifo_sink_data[8] => rp_data[8].DATAIN +rdata_fifo_sink_data[9] => rp_data[9].DATAIN +rdata_fifo_sink_data[10] => rp_data[10].DATAIN +rdata_fifo_sink_data[11] => rp_data[11].DATAIN +rdata_fifo_sink_data[12] => rp_data[12].DATAIN +rdata_fifo_sink_data[13] => rp_data[13].DATAIN +rdata_fifo_sink_data[14] => rp_data[14].DATAIN +rdata_fifo_sink_data[15] => rp_data[15].DATAIN +rdata_fifo_sink_data[16] => rp_data[16].DATAIN +rdata_fifo_sink_data[17] => rp_data[17].DATAIN +rdata_fifo_sink_data[18] => rp_data[18].DATAIN +rdata_fifo_sink_data[19] => rp_data[19].DATAIN +rdata_fifo_sink_data[20] => rp_data[20].DATAIN +rdata_fifo_sink_data[21] => rp_data[21].DATAIN +rdata_fifo_sink_data[22] => rp_data[22].DATAIN +rdata_fifo_sink_data[23] => rp_data[23].DATAIN +rdata_fifo_sink_data[24] => rp_data[24].DATAIN +rdata_fifo_sink_data[25] => rp_data[25].DATAIN +rdata_fifo_sink_data[26] => rp_data[26].DATAIN +rdata_fifo_sink_data[27] => rp_data[27].DATAIN +rdata_fifo_sink_data[28] => rp_data[28].DATAIN +rdata_fifo_sink_data[29] => rp_data[29].DATAIN +rdata_fifo_sink_data[30] => rp_data[30].DATAIN +rdata_fifo_sink_data[31] => rp_data[31].DATAIN +rdata_fifo_sink_data[32] => rp_data[94].DATAIN +rdata_fifo_sink_data[33] => rp_data[95].DATAIN +rdata_fifo_sink_valid => rp_valid.IN1 +rdata_fifo_sink_valid => rdata_fifo_sink_ready.IN0 +rdata_fifo_sink_valid => comb.IN1 +rdata_fifo_sink_ready <= rdata_fifo_sink_ready.DB_MAX_OUTPUT_PORT_TYPE +cp_ready <= cp_ready.DB_MAX_OUTPUT_PORT_TYPE +cp_valid => local_lock.IN0 +cp_valid => local_write.IN0 +cp_valid => local_read.IN0 +cp_valid => local_compressed_read.IN0 +cp_data[0] => m0_writedata[0].DATAIN +cp_data[1] => m0_writedata[1].DATAIN +cp_data[2] => m0_writedata[2].DATAIN +cp_data[3] => m0_writedata[3].DATAIN +cp_data[4] => m0_writedata[4].DATAIN +cp_data[5] => m0_writedata[5].DATAIN +cp_data[6] => m0_writedata[6].DATAIN +cp_data[7] => m0_writedata[7].DATAIN +cp_data[8] => m0_writedata[8].DATAIN +cp_data[9] => m0_writedata[9].DATAIN +cp_data[10] => m0_writedata[10].DATAIN +cp_data[11] => m0_writedata[11].DATAIN +cp_data[12] => m0_writedata[12].DATAIN +cp_data[13] => m0_writedata[13].DATAIN +cp_data[14] => m0_writedata[14].DATAIN +cp_data[15] => m0_writedata[15].DATAIN +cp_data[16] => m0_writedata[16].DATAIN +cp_data[17] => m0_writedata[17].DATAIN +cp_data[18] => m0_writedata[18].DATAIN +cp_data[19] => m0_writedata[19].DATAIN +cp_data[20] => m0_writedata[20].DATAIN +cp_data[21] => m0_writedata[21].DATAIN +cp_data[22] => m0_writedata[22].DATAIN +cp_data[23] => m0_writedata[23].DATAIN +cp_data[24] => m0_writedata[24].DATAIN +cp_data[25] => m0_writedata[25].DATAIN +cp_data[26] => m0_writedata[26].DATAIN +cp_data[27] => m0_writedata[27].DATAIN +cp_data[28] => m0_writedata[28].DATAIN +cp_data[29] => m0_writedata[29].DATAIN +cp_data[30] => m0_writedata[30].DATAIN +cp_data[31] => m0_writedata[31].DATAIN +cp_data[32] => rf_source_data[32].DATAIN +cp_data[32] => m0_byteenable[0].DATAIN +cp_data[33] => rf_source_data[33].DATAIN +cp_data[33] => m0_byteenable[1].DATAIN +cp_data[34] => rf_source_data[34].DATAIN +cp_data[34] => m0_byteenable[2].DATAIN +cp_data[35] => rf_source_data[35].DATAIN +cp_data[35] => m0_byteenable[3].DATAIN +cp_data[36] => rf_source_data[36].DATAIN +cp_data[37] => rf_source_data[37].DATAIN +cp_data[38] => rf_source_data[38].DATAIN +cp_data[38] => m0_address[2].DATAIN +cp_data[39] => rf_source_data[39].DATAIN +cp_data[39] => m0_address[3].DATAIN +cp_data[40] => rf_source_data[40].DATAIN +cp_data[40] => m0_address[4].DATAIN +cp_data[41] => rf_source_data[41].DATAIN +cp_data[41] => m0_address[5].DATAIN +cp_data[42] => rf_source_data[42].DATAIN +cp_data[42] => m0_address[6].DATAIN +cp_data[43] => rf_source_data[43].DATAIN +cp_data[43] => m0_address[7].DATAIN +cp_data[44] => rf_source_data[44].DATAIN +cp_data[44] => m0_address[8].DATAIN +cp_data[45] => rf_source_data[45].DATAIN +cp_data[45] => m0_address[9].DATAIN +cp_data[46] => rf_source_data[46].DATAIN +cp_data[46] => m0_address[10].DATAIN +cp_data[47] => rf_source_data[47].DATAIN +cp_data[47] => m0_address[11].DATAIN +cp_data[48] => rf_source_data[48].DATAIN +cp_data[48] => m0_address[12].DATAIN +cp_data[49] => rf_source_data[49].DATAIN +cp_data[49] => m0_address[13].DATAIN +cp_data[50] => rf_source_data[50].DATAIN +cp_data[50] => m0_address[14].DATAIN +cp_data[51] => rf_source_data[51].DATAIN +cp_data[51] => m0_address[15].DATAIN +cp_data[52] => rf_source_data[52].DATAIN +cp_data[52] => m0_address[16].DATAIN +cp_data[53] => rf_source_data[53].DATAIN +cp_data[53] => m0_address[17].DATAIN +cp_data[54] => rf_source_data[54].DATAIN +cp_data[54] => m0_address[18].DATAIN +cp_data[55] => local_compressed_read.IN1 +cp_data[55] => rf_source_data[55].DATAIN +cp_data[56] => rf_source_data[56].DATAIN +cp_data[56] => m0_writeresponserequest.IN1 +cp_data[56] => comb.IN1 +cp_data[57] => local_write.IN1 +cp_data[57] => rf_source_data[57].DATAIN +cp_data[58] => local_read.IN1 +cp_data[58] => rf_source_data[58].DATAIN +cp_data[59] => local_lock.IN1 +cp_data[59] => rf_source_data[59].DATAIN +cp_data[60] => rf_source_data[60].DATAIN +cp_data[61] => m0_burstcount.DATAA +cp_data[61] => rf_source_data[61].DATAIN +cp_data[62] => m0_burstcount.DATAA +cp_data[62] => rf_source_data[62].DATAIN +cp_data[63] => m0_burstcount.DATAA +cp_data[63] => rf_source_data[63].DATAIN +cp_data[64] => rf_source_data[64].DATAIN +cp_data[65] => rf_source_data[65].DATAIN +cp_data[66] => rf_source_data[66].DATAIN +cp_data[67] => rf_source_data[67].DATAIN +cp_data[68] => rf_source_data[68].DATAIN +cp_data[69] => rf_source_data[69].DATAIN +cp_data[70] => rf_source_data[70].DATAIN +cp_data[71] => rf_source_data[71].DATAIN +cp_data[72] => rf_source_data[72].DATAIN +cp_data[73] => rf_source_data[73].DATAIN +cp_data[74] => rf_source_data[74].DATAIN +cp_data[75] => rf_source_data[75].DATAIN +cp_data[76] => rf_source_data[76].DATAIN +cp_data[77] => rf_source_data[77].DATAIN +cp_data[78] => rf_source_data[78].DATAIN +cp_data[79] => rf_source_data[79].DATAIN +cp_data[80] => rf_source_data[80].DATAIN +cp_data[81] => rf_source_data[81].DATAIN +cp_data[82] => rf_source_data[82].DATAIN +cp_data[83] => rf_source_data[83].DATAIN +cp_data[84] => rf_source_data[84].DATAIN +cp_data[85] => rf_source_data[85].DATAIN +cp_data[86] => rf_source_data[86].DATAIN +cp_data[87] => rf_source_data[87].DATAIN +cp_data[87] => m0_debugaccess.DATAIN +cp_data[88] => ~NO_FANOUT~ +cp_data[89] => ~NO_FANOUT~ +cp_data[90] => rf_source_data[90].DATAIN +cp_data[91] => rf_source_data[91].DATAIN +cp_data[92] => rf_source_data[92].DATAIN +cp_data[93] => rf_source_data[93].DATAIN +cp_data[94] => rf_source_data[94].DATAIN +cp_data[95] => rf_source_data[95].DATAIN +cp_channel[0] => ~NO_FANOUT~ +cp_channel[1] => ~NO_FANOUT~ +cp_channel[2] => ~NO_FANOUT~ +cp_channel[3] => ~NO_FANOUT~ +cp_channel[4] => ~NO_FANOUT~ +cp_channel[5] => ~NO_FANOUT~ +cp_channel[6] => ~NO_FANOUT~ +cp_channel[7] => ~NO_FANOUT~ +cp_channel[8] => ~NO_FANOUT~ +cp_channel[9] => ~NO_FANOUT~ +cp_channel[10] => ~NO_FANOUT~ +cp_channel[11] => ~NO_FANOUT~ +cp_channel[12] => ~NO_FANOUT~ +cp_channel[13] => ~NO_FANOUT~ +cp_channel[14] => ~NO_FANOUT~ +cp_channel[15] => ~NO_FANOUT~ +cp_channel[16] => ~NO_FANOUT~ +cp_channel[17] => ~NO_FANOUT~ +cp_startofpacket => rf_source_startofpacket.DATAIN +cp_endofpacket => nonposted_write_endofpacket.IN1 +cp_endofpacket => rf_source_endofpacket.DATAIN +rp_ready => rp_ready.IN1 +rp_valid <= rp_valid.DB_MAX_OUTPUT_PORT_TYPE +rp_data[0] <= rdata_fifo_sink_data[0].DB_MAX_OUTPUT_PORT_TYPE +rp_data[1] <= rdata_fifo_sink_data[1].DB_MAX_OUTPUT_PORT_TYPE +rp_data[2] <= rdata_fifo_sink_data[2].DB_MAX_OUTPUT_PORT_TYPE +rp_data[3] <= rdata_fifo_sink_data[3].DB_MAX_OUTPUT_PORT_TYPE +rp_data[4] <= rdata_fifo_sink_data[4].DB_MAX_OUTPUT_PORT_TYPE +rp_data[5] <= rdata_fifo_sink_data[5].DB_MAX_OUTPUT_PORT_TYPE +rp_data[6] <= rdata_fifo_sink_data[6].DB_MAX_OUTPUT_PORT_TYPE +rp_data[7] <= rdata_fifo_sink_data[7].DB_MAX_OUTPUT_PORT_TYPE +rp_data[8] <= rdata_fifo_sink_data[8].DB_MAX_OUTPUT_PORT_TYPE +rp_data[9] <= rdata_fifo_sink_data[9].DB_MAX_OUTPUT_PORT_TYPE +rp_data[10] <= rdata_fifo_sink_data[10].DB_MAX_OUTPUT_PORT_TYPE +rp_data[11] <= rdata_fifo_sink_data[11].DB_MAX_OUTPUT_PORT_TYPE +rp_data[12] <= rdata_fifo_sink_data[12].DB_MAX_OUTPUT_PORT_TYPE +rp_data[13] <= rdata_fifo_sink_data[13].DB_MAX_OUTPUT_PORT_TYPE +rp_data[14] <= rdata_fifo_sink_data[14].DB_MAX_OUTPUT_PORT_TYPE +rp_data[15] <= rdata_fifo_sink_data[15].DB_MAX_OUTPUT_PORT_TYPE +rp_data[16] <= rdata_fifo_sink_data[16].DB_MAX_OUTPUT_PORT_TYPE +rp_data[17] <= rdata_fifo_sink_data[17].DB_MAX_OUTPUT_PORT_TYPE +rp_data[18] <= rdata_fifo_sink_data[18].DB_MAX_OUTPUT_PORT_TYPE +rp_data[19] <= rdata_fifo_sink_data[19].DB_MAX_OUTPUT_PORT_TYPE +rp_data[20] <= rdata_fifo_sink_data[20].DB_MAX_OUTPUT_PORT_TYPE +rp_data[21] <= rdata_fifo_sink_data[21].DB_MAX_OUTPUT_PORT_TYPE +rp_data[22] <= rdata_fifo_sink_data[22].DB_MAX_OUTPUT_PORT_TYPE +rp_data[23] <= rdata_fifo_sink_data[23].DB_MAX_OUTPUT_PORT_TYPE +rp_data[24] <= rdata_fifo_sink_data[24].DB_MAX_OUTPUT_PORT_TYPE +rp_data[25] <= rdata_fifo_sink_data[25].DB_MAX_OUTPUT_PORT_TYPE +rp_data[26] <= rdata_fifo_sink_data[26].DB_MAX_OUTPUT_PORT_TYPE +rp_data[27] <= rdata_fifo_sink_data[27].DB_MAX_OUTPUT_PORT_TYPE +rp_data[28] <= rdata_fifo_sink_data[28].DB_MAX_OUTPUT_PORT_TYPE +rp_data[29] <= rdata_fifo_sink_data[29].DB_MAX_OUTPUT_PORT_TYPE +rp_data[30] <= rdata_fifo_sink_data[30].DB_MAX_OUTPUT_PORT_TYPE +rp_data[31] <= rdata_fifo_sink_data[31].DB_MAX_OUTPUT_PORT_TYPE +rp_data[32] <= rf_sink_data[32].DB_MAX_OUTPUT_PORT_TYPE +rp_data[33] <= rf_sink_data[33].DB_MAX_OUTPUT_PORT_TYPE +rp_data[34] <= rf_sink_data[34].DB_MAX_OUTPUT_PORT_TYPE +rp_data[35] <= rf_sink_data[35].DB_MAX_OUTPUT_PORT_TYPE +rp_data[36] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[37] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[38] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[39] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[40] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[41] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[42] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[43] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[44] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[45] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[46] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[47] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[48] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[49] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[50] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[51] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[52] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[53] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[54] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[55] <= altera_merlin_burst_uncompressor:uncompressor.source_is_compressed +rp_data[56] <= rf_sink_data[56].DB_MAX_OUTPUT_PORT_TYPE +rp_data[57] <= rf_sink_data[57].DB_MAX_OUTPUT_PORT_TYPE +rp_data[58] <= rp_data.DB_MAX_OUTPUT_PORT_TYPE +rp_data[59] <= rf_sink_data[59].DB_MAX_OUTPUT_PORT_TYPE +rp_data[60] <= rf_sink_data[60].DB_MAX_OUTPUT_PORT_TYPE +rp_data[61] <= altera_merlin_burst_uncompressor:uncompressor.source_byte_cnt +rp_data[62] <= altera_merlin_burst_uncompressor:uncompressor.source_byte_cnt +rp_data[63] <= altera_merlin_burst_uncompressor:uncompressor.source_byte_cnt +rp_data[64] <= altera_merlin_burst_uncompressor:uncompressor.source_burstwrap +rp_data[65] <= altera_merlin_burst_uncompressor:uncompressor.source_burstwrap +rp_data[66] <= altera_merlin_burst_uncompressor:uncompressor.source_burstwrap +rp_data[67] <= altera_merlin_burst_uncompressor:uncompressor.source_burstsize +rp_data[68] <= altera_merlin_burst_uncompressor:uncompressor.source_burstsize +rp_data[69] <= altera_merlin_burst_uncompressor:uncompressor.source_burstsize +rp_data[70] <= rf_sink_data[70].DB_MAX_OUTPUT_PORT_TYPE +rp_data[71] <= rf_sink_data[71].DB_MAX_OUTPUT_PORT_TYPE +rp_data[72] <= rf_sink_data[72].DB_MAX_OUTPUT_PORT_TYPE +rp_data[73] <= rf_sink_data[73].DB_MAX_OUTPUT_PORT_TYPE +rp_data[74] <= rf_sink_data[74].DB_MAX_OUTPUT_PORT_TYPE +rp_data[75] <= rf_sink_data[75].DB_MAX_OUTPUT_PORT_TYPE +rp_data[76] <= rf_sink_data[81].DB_MAX_OUTPUT_PORT_TYPE +rp_data[77] <= rf_sink_data[82].DB_MAX_OUTPUT_PORT_TYPE +rp_data[78] <= rf_sink_data[83].DB_MAX_OUTPUT_PORT_TYPE +rp_data[79] <= rf_sink_data[84].DB_MAX_OUTPUT_PORT_TYPE +rp_data[80] <= rf_sink_data[85].DB_MAX_OUTPUT_PORT_TYPE +rp_data[81] <= rf_sink_data[76].DB_MAX_OUTPUT_PORT_TYPE +rp_data[82] <= rf_sink_data[77].DB_MAX_OUTPUT_PORT_TYPE +rp_data[83] <= rf_sink_data[78].DB_MAX_OUTPUT_PORT_TYPE +rp_data[84] <= rf_sink_data[79].DB_MAX_OUTPUT_PORT_TYPE +rp_data[85] <= rf_sink_data[80].DB_MAX_OUTPUT_PORT_TYPE +rp_data[86] <= rf_sink_data[86].DB_MAX_OUTPUT_PORT_TYPE +rp_data[87] <= rf_sink_data[87].DB_MAX_OUTPUT_PORT_TYPE +rp_data[88] <= rf_sink_data[88].DB_MAX_OUTPUT_PORT_TYPE +rp_data[89] <= rf_sink_data[89].DB_MAX_OUTPUT_PORT_TYPE +rp_data[90] <= rf_sink_data[90].DB_MAX_OUTPUT_PORT_TYPE +rp_data[91] <= rf_sink_data[91].DB_MAX_OUTPUT_PORT_TYPE +rp_data[92] <= rf_sink_data[92].DB_MAX_OUTPUT_PORT_TYPE +rp_data[93] <= rf_sink_data[93].DB_MAX_OUTPUT_PORT_TYPE +rp_data[94] <= rdata_fifo_sink_data[32].DB_MAX_OUTPUT_PORT_TYPE +rp_data[95] <= rdata_fifo_sink_data[33].DB_MAX_OUTPUT_PORT_TYPE +rp_startofpacket <= altera_merlin_burst_uncompressor:uncompressor.source_startofpacket +rp_endofpacket <= altera_merlin_burst_uncompressor:uncompressor.source_endofpacket + + +|lights|nios_system:NiosII|altera_merlin_slave_agent:hex2_s1_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor +clk => burst_uncompress_address_offset[0].CLK +clk => burst_uncompress_address_offset[1].CLK +clk => burst_uncompress_address_offset[2].CLK +clk => burst_uncompress_address_offset[3].CLK +clk => burst_uncompress_address_offset[4].CLK +clk => burst_uncompress_address_offset[5].CLK +clk => burst_uncompress_address_offset[6].CLK +clk => burst_uncompress_address_offset[7].CLK +clk => burst_uncompress_address_offset[8].CLK +clk => burst_uncompress_address_offset[9].CLK +clk => burst_uncompress_address_offset[10].CLK +clk => burst_uncompress_address_offset[11].CLK +clk => burst_uncompress_address_offset[12].CLK +clk => burst_uncompress_address_offset[13].CLK +clk => burst_uncompress_address_offset[14].CLK +clk => burst_uncompress_address_offset[15].CLK +clk => burst_uncompress_address_offset[16].CLK +clk => burst_uncompress_address_offset[17].CLK +clk => burst_uncompress_address_offset[18].CLK +clk => burst_uncompress_address_base[0].CLK +clk => burst_uncompress_address_base[1].CLK +clk => burst_uncompress_address_base[2].CLK +clk => burst_uncompress_address_base[3].CLK +clk => burst_uncompress_address_base[4].CLK +clk => burst_uncompress_address_base[5].CLK +clk => burst_uncompress_address_base[6].CLK +clk => burst_uncompress_address_base[7].CLK +clk => burst_uncompress_address_base[8].CLK +clk => burst_uncompress_address_base[9].CLK +clk => burst_uncompress_address_base[10].CLK +clk => burst_uncompress_address_base[11].CLK +clk => burst_uncompress_address_base[12].CLK +clk => burst_uncompress_address_base[13].CLK +clk => burst_uncompress_address_base[14].CLK +clk => burst_uncompress_address_base[15].CLK +clk => burst_uncompress_address_base[16].CLK +clk => burst_uncompress_address_base[17].CLK +clk => burst_uncompress_address_base[18].CLK +clk => burst_uncompress_byte_counter[0].CLK +clk => burst_uncompress_byte_counter[1].CLK +clk => burst_uncompress_byte_counter[2].CLK +clk => burst_uncompress_busy.CLK +reset => burst_uncompress_address_offset[0].ACLR +reset => burst_uncompress_address_offset[1].ACLR +reset => burst_uncompress_address_offset[2].ACLR +reset => burst_uncompress_address_offset[3].ACLR +reset => burst_uncompress_address_offset[4].ACLR +reset => burst_uncompress_address_offset[5].ACLR +reset => burst_uncompress_address_offset[6].ACLR +reset => burst_uncompress_address_offset[7].ACLR +reset => burst_uncompress_address_offset[8].ACLR +reset => burst_uncompress_address_offset[9].ACLR +reset => burst_uncompress_address_offset[10].ACLR +reset => burst_uncompress_address_offset[11].ACLR +reset => burst_uncompress_address_offset[12].ACLR +reset => burst_uncompress_address_offset[13].ACLR +reset => burst_uncompress_address_offset[14].ACLR +reset => burst_uncompress_address_offset[15].ACLR +reset => burst_uncompress_address_offset[16].ACLR +reset => burst_uncompress_address_offset[17].ACLR +reset => burst_uncompress_address_offset[18].ACLR +reset => burst_uncompress_address_base[0].ACLR +reset => burst_uncompress_address_base[1].ACLR +reset => burst_uncompress_address_base[2].ACLR +reset => burst_uncompress_address_base[3].ACLR +reset => burst_uncompress_address_base[4].ACLR +reset => burst_uncompress_address_base[5].ACLR +reset => burst_uncompress_address_base[6].ACLR +reset => burst_uncompress_address_base[7].ACLR +reset => burst_uncompress_address_base[8].ACLR +reset => burst_uncompress_address_base[9].ACLR +reset => burst_uncompress_address_base[10].ACLR +reset => burst_uncompress_address_base[11].ACLR +reset => burst_uncompress_address_base[12].ACLR +reset => burst_uncompress_address_base[13].ACLR +reset => burst_uncompress_address_base[14].ACLR +reset => burst_uncompress_address_base[15].ACLR +reset => burst_uncompress_address_base[16].ACLR +reset => burst_uncompress_address_base[17].ACLR +reset => burst_uncompress_address_base[18].ACLR +reset => burst_uncompress_byte_counter[0].ACLR +reset => burst_uncompress_byte_counter[1].ACLR +reset => burst_uncompress_byte_counter[2].ACLR +reset => burst_uncompress_busy.ACLR +sink_startofpacket => source_startofpacket.IN1 +sink_endofpacket => source_endofpacket.IN1 +sink_valid => first_packet_beat.IN1 +sink_valid => last_packet_beat.IN1 +sink_valid => last_packet_beat.IN1 +sink_valid => always0.IN1 +sink_valid => sink_ready.IN0 +sink_valid => source_valid.DATAIN +sink_ready <= sink_ready.DB_MAX_OUTPUT_PORT_TYPE +sink_addr[0] => burst_uncompress_address_base.IN0 +sink_addr[0] => comb.DATAB +sink_addr[0] => source_addr.DATAB +sink_addr[1] => burst_uncompress_address_base.IN0 +sink_addr[1] => comb.DATAB +sink_addr[1] => source_addr.DATAB +sink_addr[2] => burst_uncompress_address_base.IN0 +sink_addr[2] => comb.DATAB +sink_addr[2] => source_addr.DATAB +sink_addr[3] => burst_uncompress_address_base.IN0 +sink_addr[3] => comb.DATAB +sink_addr[3] => source_addr.DATAB +sink_addr[4] => burst_uncompress_address_base.IN0 +sink_addr[4] => comb.DATAB +sink_addr[4] => source_addr.DATAB +sink_addr[5] => burst_uncompress_address_base.IN0 +sink_addr[5] => comb.DATAB +sink_addr[5] => source_addr.DATAB +sink_addr[6] => burst_uncompress_address_base.IN0 +sink_addr[6] => comb.DATAB +sink_addr[6] => source_addr.DATAB +sink_addr[7] => burst_uncompress_address_base.IN0 +sink_addr[7] => comb.DATAB +sink_addr[7] => source_addr.DATAB +sink_addr[8] => burst_uncompress_address_base.IN0 +sink_addr[8] => comb.DATAB +sink_addr[8] => source_addr.DATAB +sink_addr[9] => burst_uncompress_address_base.IN0 +sink_addr[9] => comb.DATAB +sink_addr[9] => source_addr.DATAB +sink_addr[10] => burst_uncompress_address_base.IN0 +sink_addr[10] => comb.DATAB +sink_addr[10] => source_addr.DATAB +sink_addr[11] => burst_uncompress_address_base.IN0 +sink_addr[11] => comb.DATAB +sink_addr[11] => source_addr.DATAB +sink_addr[12] => burst_uncompress_address_base.IN0 +sink_addr[12] => comb.DATAB +sink_addr[12] => source_addr.DATAB +sink_addr[13] => burst_uncompress_address_base.IN0 +sink_addr[13] => comb.DATAB +sink_addr[13] => source_addr.DATAB +sink_addr[14] => burst_uncompress_address_base.IN0 +sink_addr[14] => comb.DATAB +sink_addr[14] => source_addr.DATAB +sink_addr[15] => burst_uncompress_address_base.IN0 +sink_addr[15] => comb.DATAB +sink_addr[15] => source_addr.DATAB +sink_addr[16] => burst_uncompress_address_base.IN0 +sink_addr[16] => comb.DATAB +sink_addr[16] => source_addr.DATAB +sink_addr[17] => burst_uncompress_address_base.IN0 +sink_addr[17] => comb.DATAB +sink_addr[17] => source_addr.DATAB +sink_addr[18] => burst_uncompress_address_base.IN0 +sink_addr[18] => comb.DATAB +sink_addr[18] => source_addr.DATAB +sink_burstwrap[0] => p1_burst_uncompress_address_offset[0].IN1 +sink_burstwrap[0] => source_burstwrap[0].DATAIN +sink_burstwrap[0] => burst_uncompress_address_base.IN1 +sink_burstwrap[1] => p1_burst_uncompress_address_offset[1].IN1 +sink_burstwrap[1] => source_burstwrap[1].DATAIN +sink_burstwrap[1] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[2].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[18].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[17].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[16].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[15].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[14].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[13].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[12].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[11].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[10].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[9].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[8].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[7].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[6].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[5].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[4].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[3].IN1 +sink_burstwrap[2] => source_burstwrap[2].DATAIN +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_byte_cnt[0] => source_byte_cnt.DATAB +sink_byte_cnt[0] => Add1.IN6 +sink_byte_cnt[0] => Equal1.IN2 +sink_byte_cnt[1] => source_byte_cnt.DATAB +sink_byte_cnt[1] => Add1.IN5 +sink_byte_cnt[1] => Equal1.IN1 +sink_byte_cnt[2] => source_byte_cnt.DATAB +sink_byte_cnt[2] => Add1.IN4 +sink_byte_cnt[2] => Equal1.IN0 +sink_is_compressed => last_packet_beat.IN1 +sink_burstsize[0] => Decoder0.IN2 +sink_burstsize[0] => source_burstsize[0].DATAIN +sink_burstsize[1] => Decoder0.IN1 +sink_burstsize[1] => source_burstsize[1].DATAIN +sink_burstsize[2] => Decoder0.IN0 +sink_burstsize[2] => source_burstsize[2].DATAIN +source_startofpacket <= source_startofpacket.DB_MAX_OUTPUT_PORT_TYPE +source_endofpacket <= source_endofpacket.DB_MAX_OUTPUT_PORT_TYPE +source_valid <= sink_valid.DB_MAX_OUTPUT_PORT_TYPE +source_ready => always1.IN1 +source_ready => sink_ready.IN1 +source_addr[0] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[1] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[2] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[3] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[4] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[5] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[6] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[7] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[8] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[9] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[10] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[11] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[12] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[13] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[14] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[15] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[16] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[17] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[18] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_burstwrap[0] <= sink_burstwrap[0].DB_MAX_OUTPUT_PORT_TYPE +source_burstwrap[1] <= sink_burstwrap[1].DB_MAX_OUTPUT_PORT_TYPE +source_burstwrap[2] <= sink_burstwrap[2].DB_MAX_OUTPUT_PORT_TYPE +source_byte_cnt[0] <= source_byte_cnt.DB_MAX_OUTPUT_PORT_TYPE +source_byte_cnt[1] <= source_byte_cnt.DB_MAX_OUTPUT_PORT_TYPE +source_byte_cnt[2] <= source_byte_cnt.DB_MAX_OUTPUT_PORT_TYPE +source_is_compressed <= +source_burstsize[0] <= sink_burstsize[0].DB_MAX_OUTPUT_PORT_TYPE +source_burstsize[1] <= sink_burstsize[1].DB_MAX_OUTPUT_PORT_TYPE +source_burstsize[2] <= sink_burstsize[2].DB_MAX_OUTPUT_PORT_TYPE + + +|lights|nios_system:NiosII|altera_avalon_sc_fifo:hex2_s1_translator_avalon_universal_slave_0_agent_rsp_fifo +clk => csr_readdata[0]~reg0.CLK +clk => csr_readdata[1]~reg0.CLK +clk => csr_readdata[2]~reg0.CLK +clk => csr_readdata[3]~reg0.CLK +clk => csr_readdata[4]~reg0.CLK +clk => csr_readdata[5]~reg0.CLK +clk => csr_readdata[6]~reg0.CLK +clk => csr_readdata[7]~reg0.CLK +clk => csr_readdata[8]~reg0.CLK +clk => csr_readdata[9]~reg0.CLK +clk => csr_readdata[10]~reg0.CLK +clk => csr_readdata[11]~reg0.CLK +clk => csr_readdata[12]~reg0.CLK +clk => csr_readdata[13]~reg0.CLK +clk => csr_readdata[14]~reg0.CLK +clk => csr_readdata[15]~reg0.CLK +clk => csr_readdata[16]~reg0.CLK +clk => csr_readdata[17]~reg0.CLK +clk => csr_readdata[18]~reg0.CLK +clk => csr_readdata[19]~reg0.CLK +clk => csr_readdata[20]~reg0.CLK +clk => csr_readdata[21]~reg0.CLK +clk => csr_readdata[22]~reg0.CLK +clk => csr_readdata[23]~reg0.CLK +clk => csr_readdata[24]~reg0.CLK +clk => csr_readdata[25]~reg0.CLK +clk => csr_readdata[26]~reg0.CLK +clk => csr_readdata[27]~reg0.CLK +clk => csr_readdata[28]~reg0.CLK +clk => csr_readdata[29]~reg0.CLK +clk => csr_readdata[30]~reg0.CLK +clk => csr_readdata[31]~reg0.CLK +clk => mem_used[1].CLK +clk => mem_used[0].CLK +clk => mem[1][0].CLK +clk => mem[1][1].CLK +clk => mem[1][2].CLK +clk => mem[1][3].CLK +clk => mem[1][4].CLK +clk => mem[1][5].CLK +clk => mem[1][6].CLK +clk => mem[1][7].CLK +clk => mem[1][8].CLK +clk => mem[1][9].CLK +clk => mem[1][10].CLK +clk => mem[1][11].CLK +clk => mem[1][12].CLK +clk => mem[1][13].CLK +clk => mem[1][14].CLK +clk => mem[1][15].CLK +clk => mem[1][16].CLK +clk => mem[1][17].CLK +clk => mem[1][18].CLK +clk => mem[1][19].CLK +clk => mem[1][20].CLK +clk => mem[1][21].CLK +clk => mem[1][22].CLK +clk => mem[1][23].CLK +clk => mem[1][24].CLK +clk => mem[1][25].CLK +clk => mem[1][26].CLK +clk => mem[1][27].CLK +clk => mem[1][28].CLK +clk => mem[1][29].CLK +clk => mem[1][30].CLK +clk => mem[1][31].CLK +clk => mem[1][32].CLK +clk => mem[1][33].CLK +clk => mem[1][34].CLK +clk => mem[1][35].CLK +clk => mem[1][36].CLK +clk => mem[1][37].CLK +clk => mem[1][38].CLK +clk => mem[1][39].CLK +clk => mem[1][40].CLK +clk => mem[1][41].CLK +clk => mem[1][42].CLK +clk => mem[1][43].CLK +clk => mem[1][44].CLK +clk => mem[1][45].CLK +clk => mem[1][46].CLK +clk => mem[1][47].CLK +clk => mem[1][48].CLK +clk => mem[1][49].CLK +clk => mem[1][50].CLK +clk => mem[1][51].CLK +clk => mem[1][52].CLK +clk => mem[1][53].CLK +clk => mem[1][54].CLK +clk => mem[1][55].CLK +clk => mem[1][56].CLK +clk => mem[1][57].CLK +clk => mem[1][58].CLK +clk => mem[1][59].CLK +clk => mem[1][60].CLK +clk => mem[1][61].CLK +clk => mem[1][62].CLK +clk => mem[1][63].CLK +clk => mem[1][64].CLK +clk => mem[1][65].CLK +clk => mem[1][66].CLK +clk => mem[1][67].CLK +clk => mem[1][68].CLK +clk => mem[1][69].CLK +clk => mem[1][70].CLK +clk => mem[1][71].CLK +clk => mem[1][72].CLK +clk => mem[1][73].CLK +clk => mem[1][74].CLK +clk => mem[1][75].CLK +clk => mem[1][76].CLK +clk => mem[1][77].CLK +clk => mem[1][78].CLK +clk => mem[1][79].CLK +clk => mem[1][80].CLK +clk => mem[1][81].CLK +clk => mem[1][82].CLK +clk => mem[1][83].CLK +clk => mem[1][84].CLK +clk => mem[1][85].CLK +clk => mem[1][86].CLK +clk => mem[1][87].CLK +clk => mem[1][88].CLK +clk => mem[1][89].CLK +clk => mem[1][90].CLK +clk => mem[1][91].CLK +clk => mem[1][92].CLK +clk => mem[1][93].CLK +clk => mem[1][94].CLK +clk => mem[1][95].CLK +clk => mem[1][96].CLK +clk => mem[1][97].CLK +clk => mem[1][98].CLK +clk => mem[0][0].CLK +clk => mem[0][1].CLK +clk => mem[0][2].CLK +clk => mem[0][3].CLK +clk => mem[0][4].CLK +clk => mem[0][5].CLK +clk => mem[0][6].CLK +clk => mem[0][7].CLK +clk => mem[0][8].CLK +clk => mem[0][9].CLK +clk => mem[0][10].CLK +clk => mem[0][11].CLK +clk => mem[0][12].CLK +clk => mem[0][13].CLK +clk => mem[0][14].CLK +clk => mem[0][15].CLK +clk => mem[0][16].CLK +clk => mem[0][17].CLK +clk => mem[0][18].CLK +clk => mem[0][19].CLK +clk => mem[0][20].CLK +clk => mem[0][21].CLK +clk => mem[0][22].CLK +clk => mem[0][23].CLK +clk => mem[0][24].CLK +clk => mem[0][25].CLK +clk => mem[0][26].CLK +clk => mem[0][27].CLK +clk => mem[0][28].CLK +clk => mem[0][29].CLK +clk => mem[0][30].CLK +clk => mem[0][31].CLK +clk => mem[0][32].CLK +clk => mem[0][33].CLK +clk => mem[0][34].CLK +clk => mem[0][35].CLK +clk => mem[0][36].CLK +clk => mem[0][37].CLK +clk => mem[0][38].CLK +clk => mem[0][39].CLK +clk => mem[0][40].CLK +clk => mem[0][41].CLK +clk => mem[0][42].CLK +clk => mem[0][43].CLK +clk => mem[0][44].CLK +clk => mem[0][45].CLK +clk => mem[0][46].CLK +clk => mem[0][47].CLK +clk => mem[0][48].CLK +clk => mem[0][49].CLK +clk => mem[0][50].CLK +clk => mem[0][51].CLK +clk => mem[0][52].CLK +clk => mem[0][53].CLK +clk => mem[0][54].CLK +clk => mem[0][55].CLK +clk => mem[0][56].CLK +clk => mem[0][57].CLK +clk => mem[0][58].CLK +clk => mem[0][59].CLK +clk => mem[0][60].CLK +clk => mem[0][61].CLK +clk => mem[0][62].CLK +clk => mem[0][63].CLK +clk => mem[0][64].CLK +clk => mem[0][65].CLK +clk => mem[0][66].CLK +clk => mem[0][67].CLK +clk => mem[0][68].CLK +clk => mem[0][69].CLK +clk => mem[0][70].CLK +clk => mem[0][71].CLK +clk => mem[0][72].CLK +clk => mem[0][73].CLK +clk => mem[0][74].CLK +clk => mem[0][75].CLK +clk => mem[0][76].CLK +clk => mem[0][77].CLK +clk => mem[0][78].CLK +clk => mem[0][79].CLK +clk => mem[0][80].CLK +clk => mem[0][81].CLK +clk => mem[0][82].CLK +clk => mem[0][83].CLK +clk => mem[0][84].CLK +clk => mem[0][85].CLK +clk => mem[0][86].CLK +clk => mem[0][87].CLK +clk => mem[0][88].CLK +clk => mem[0][89].CLK +clk => mem[0][90].CLK +clk => mem[0][91].CLK +clk => mem[0][92].CLK +clk => mem[0][93].CLK +clk => mem[0][94].CLK +clk => mem[0][95].CLK +clk => mem[0][96].CLK +clk => mem[0][97].CLK +clk => mem[0][98].CLK +reset => csr_readdata[0]~reg0.ACLR +reset => csr_readdata[1]~reg0.ACLR +reset => csr_readdata[2]~reg0.ACLR +reset => csr_readdata[3]~reg0.ACLR +reset => csr_readdata[4]~reg0.ACLR +reset => csr_readdata[5]~reg0.ACLR +reset => csr_readdata[6]~reg0.ACLR +reset => csr_readdata[7]~reg0.ACLR +reset => csr_readdata[8]~reg0.ACLR +reset => csr_readdata[9]~reg0.ACLR +reset => csr_readdata[10]~reg0.ACLR +reset => csr_readdata[11]~reg0.ACLR +reset => csr_readdata[12]~reg0.ACLR +reset => csr_readdata[13]~reg0.ACLR +reset => csr_readdata[14]~reg0.ACLR +reset => csr_readdata[15]~reg0.ACLR +reset => csr_readdata[16]~reg0.ACLR +reset => csr_readdata[17]~reg0.ACLR +reset => csr_readdata[18]~reg0.ACLR +reset => csr_readdata[19]~reg0.ACLR +reset => csr_readdata[20]~reg0.ACLR +reset => csr_readdata[21]~reg0.ACLR +reset => csr_readdata[22]~reg0.ACLR +reset => csr_readdata[23]~reg0.ACLR +reset => csr_readdata[24]~reg0.ACLR +reset => csr_readdata[25]~reg0.ACLR +reset => csr_readdata[26]~reg0.ACLR +reset => csr_readdata[27]~reg0.ACLR +reset => csr_readdata[28]~reg0.ACLR +reset => csr_readdata[29]~reg0.ACLR +reset => csr_readdata[30]~reg0.ACLR +reset => csr_readdata[31]~reg0.ACLR +reset => mem_used[1].ACLR +reset => mem_used[0].ACLR +reset => mem[1][0].ACLR +reset => mem[1][1].ACLR +reset => mem[1][2].ACLR +reset => mem[1][3].ACLR +reset => mem[1][4].ACLR +reset => mem[1][5].ACLR +reset => mem[1][6].ACLR +reset => mem[1][7].ACLR +reset => mem[1][8].ACLR +reset => mem[1][9].ACLR +reset => mem[1][10].ACLR +reset => mem[1][11].ACLR +reset => mem[1][12].ACLR +reset => mem[1][13].ACLR +reset => mem[1][14].ACLR +reset => mem[1][15].ACLR +reset => mem[1][16].ACLR +reset => mem[1][17].ACLR +reset => mem[1][18].ACLR +reset => mem[1][19].ACLR +reset => mem[1][20].ACLR +reset => mem[1][21].ACLR +reset => mem[1][22].ACLR +reset => mem[1][23].ACLR +reset => mem[1][24].ACLR +reset => mem[1][25].ACLR +reset => mem[1][26].ACLR +reset => mem[1][27].ACLR +reset => mem[1][28].ACLR +reset => mem[1][29].ACLR +reset => mem[1][30].ACLR +reset => mem[1][31].ACLR +reset => mem[1][32].ACLR +reset => mem[1][33].ACLR +reset => mem[1][34].ACLR +reset => mem[1][35].ACLR +reset => mem[1][36].ACLR +reset => mem[1][37].ACLR +reset => mem[1][38].ACLR +reset => mem[1][39].ACLR +reset => mem[1][40].ACLR +reset => mem[1][41].ACLR +reset => mem[1][42].ACLR +reset => mem[1][43].ACLR +reset => mem[1][44].ACLR +reset => mem[1][45].ACLR +reset => mem[1][46].ACLR +reset => mem[1][47].ACLR +reset => mem[1][48].ACLR +reset => mem[1][49].ACLR +reset => mem[1][50].ACLR +reset => mem[1][51].ACLR +reset => mem[1][52].ACLR +reset => mem[1][53].ACLR +reset => mem[1][54].ACLR +reset => mem[1][55].ACLR +reset => mem[1][56].ACLR +reset => mem[1][57].ACLR +reset => mem[1][58].ACLR +reset => mem[1][59].ACLR +reset => mem[1][60].ACLR +reset => mem[1][61].ACLR +reset => mem[1][62].ACLR +reset => mem[1][63].ACLR +reset => mem[1][64].ACLR +reset => mem[1][65].ACLR +reset => mem[1][66].ACLR +reset => mem[1][67].ACLR +reset => mem[1][68].ACLR +reset => mem[1][69].ACLR +reset => mem[1][70].ACLR +reset => mem[1][71].ACLR +reset => mem[1][72].ACLR +reset => mem[1][73].ACLR +reset => mem[1][74].ACLR +reset => mem[1][75].ACLR +reset => mem[1][76].ACLR +reset => mem[1][77].ACLR +reset => mem[1][78].ACLR +reset => mem[1][79].ACLR +reset => mem[1][80].ACLR +reset => mem[1][81].ACLR +reset => mem[1][82].ACLR +reset => mem[1][83].ACLR +reset => mem[1][84].ACLR +reset => mem[1][85].ACLR +reset => mem[1][86].ACLR +reset => mem[1][87].ACLR +reset => mem[1][88].ACLR +reset => mem[1][89].ACLR +reset => mem[1][90].ACLR +reset => mem[1][91].ACLR +reset => mem[1][92].ACLR +reset => mem[1][93].ACLR +reset => mem[1][94].ACLR +reset => mem[1][95].ACLR +reset => mem[1][96].ACLR +reset => mem[1][97].ACLR +reset => mem[1][98].ACLR +reset => mem[0][0].ACLR +reset => mem[0][1].ACLR +reset => mem[0][2].ACLR +reset => mem[0][3].ACLR +reset => mem[0][4].ACLR +reset => mem[0][5].ACLR +reset => mem[0][6].ACLR +reset => mem[0][7].ACLR +reset => mem[0][8].ACLR +reset => mem[0][9].ACLR +reset => mem[0][10].ACLR +reset => mem[0][11].ACLR +reset => mem[0][12].ACLR +reset => mem[0][13].ACLR +reset => mem[0][14].ACLR +reset => mem[0][15].ACLR +reset => mem[0][16].ACLR +reset => mem[0][17].ACLR +reset => mem[0][18].ACLR +reset => mem[0][19].ACLR +reset => mem[0][20].ACLR +reset => mem[0][21].ACLR +reset => mem[0][22].ACLR +reset => mem[0][23].ACLR +reset => mem[0][24].ACLR +reset => mem[0][25].ACLR +reset => mem[0][26].ACLR +reset => mem[0][27].ACLR +reset => mem[0][28].ACLR +reset => mem[0][29].ACLR +reset => mem[0][30].ACLR +reset => mem[0][31].ACLR +reset => mem[0][32].ACLR +reset => mem[0][33].ACLR +reset => mem[0][34].ACLR +reset => mem[0][35].ACLR +reset => mem[0][36].ACLR +reset => mem[0][37].ACLR +reset => mem[0][38].ACLR +reset => mem[0][39].ACLR +reset => mem[0][40].ACLR +reset => mem[0][41].ACLR +reset => mem[0][42].ACLR +reset => mem[0][43].ACLR +reset => mem[0][44].ACLR +reset => mem[0][45].ACLR +reset => mem[0][46].ACLR +reset => mem[0][47].ACLR +reset => mem[0][48].ACLR +reset => mem[0][49].ACLR +reset => mem[0][50].ACLR +reset => mem[0][51].ACLR +reset => mem[0][52].ACLR +reset => mem[0][53].ACLR +reset => mem[0][54].ACLR +reset => mem[0][55].ACLR +reset => mem[0][56].ACLR +reset => mem[0][57].ACLR +reset => mem[0][58].ACLR +reset => mem[0][59].ACLR +reset => mem[0][60].ACLR +reset => mem[0][61].ACLR +reset => mem[0][62].ACLR +reset => mem[0][63].ACLR +reset => mem[0][64].ACLR +reset => mem[0][65].ACLR +reset => mem[0][66].ACLR +reset => mem[0][67].ACLR +reset => mem[0][68].ACLR +reset => mem[0][69].ACLR +reset => mem[0][70].ACLR +reset => mem[0][71].ACLR +reset => mem[0][72].ACLR +reset => mem[0][73].ACLR +reset => mem[0][74].ACLR +reset => mem[0][75].ACLR +reset => mem[0][76].ACLR +reset => mem[0][77].ACLR +reset => mem[0][78].ACLR +reset => mem[0][79].ACLR +reset => mem[0][80].ACLR +reset => mem[0][81].ACLR +reset => mem[0][82].ACLR +reset => mem[0][83].ACLR +reset => mem[0][84].ACLR +reset => mem[0][85].ACLR +reset => mem[0][86].ACLR +reset => mem[0][87].ACLR +reset => mem[0][88].ACLR +reset => mem[0][89].ACLR +reset => mem[0][90].ACLR +reset => mem[0][91].ACLR +reset => mem[0][92].ACLR +reset => mem[0][93].ACLR +reset => mem[0][94].ACLR +reset => mem[0][95].ACLR +reset => mem[0][96].ACLR +reset => mem[0][97].ACLR +reset => mem[0][98].ACLR +in_data[0] => mem.DATAB +in_data[1] => mem.DATAB +in_data[2] => mem.DATAB +in_data[3] => mem.DATAB +in_data[4] => mem.DATAB +in_data[5] => mem.DATAB +in_data[6] => mem.DATAB +in_data[7] => mem.DATAB +in_data[8] => mem.DATAB +in_data[9] => mem.DATAB +in_data[10] => mem.DATAB +in_data[11] => mem.DATAB +in_data[12] => mem.DATAB +in_data[13] => mem.DATAB +in_data[14] => mem.DATAB +in_data[15] => mem.DATAB +in_data[16] => mem.DATAB +in_data[17] => mem.DATAB +in_data[18] => mem.DATAB +in_data[19] => mem.DATAB +in_data[20] => mem.DATAB +in_data[21] => mem.DATAB +in_data[22] => mem.DATAB +in_data[23] => mem.DATAB +in_data[24] => mem.DATAB +in_data[25] => mem.DATAB +in_data[26] => mem.DATAB +in_data[27] => mem.DATAB +in_data[28] => mem.DATAB +in_data[29] => mem.DATAB +in_data[30] => mem.DATAB +in_data[31] => mem.DATAB +in_data[32] => mem.DATAB +in_data[33] => mem.DATAB +in_data[34] => mem.DATAB +in_data[35] => mem.DATAB +in_data[36] => mem.DATAB +in_data[37] => mem.DATAB +in_data[38] => mem.DATAB +in_data[39] => mem.DATAB +in_data[40] => mem.DATAB +in_data[41] => mem.DATAB +in_data[42] => mem.DATAB +in_data[43] => mem.DATAB +in_data[44] => mem.DATAB +in_data[45] => mem.DATAB +in_data[46] => mem.DATAB +in_data[47] => mem.DATAB +in_data[48] => mem.DATAB +in_data[49] => mem.DATAB +in_data[50] => mem.DATAB +in_data[51] => mem.DATAB +in_data[52] => mem.DATAB +in_data[53] => mem.DATAB +in_data[54] => mem.DATAB +in_data[55] => mem.DATAB +in_data[56] => mem.DATAB +in_data[57] => mem.DATAB +in_data[58] => mem.DATAB +in_data[59] => mem.DATAB +in_data[60] => mem.DATAB +in_data[61] => mem.DATAB +in_data[62] => mem.DATAB +in_data[63] => mem.DATAB +in_data[64] => mem.DATAB +in_data[65] => mem.DATAB +in_data[66] => mem.DATAB +in_data[67] => mem.DATAB +in_data[68] => mem.DATAB +in_data[69] => mem.DATAB +in_data[70] => mem.DATAB +in_data[71] => mem.DATAB +in_data[72] => mem.DATAB +in_data[73] => mem.DATAB +in_data[74] => mem.DATAB +in_data[75] => mem.DATAB +in_data[76] => mem.DATAB +in_data[77] => mem.DATAB +in_data[78] => mem.DATAB +in_data[79] => mem.DATAB +in_data[80] => mem.DATAB +in_data[81] => mem.DATAB +in_data[82] => mem.DATAB +in_data[83] => mem.DATAB +in_data[84] => mem.DATAB +in_data[85] => mem.DATAB +in_data[86] => mem.DATAB +in_data[87] => mem.DATAB +in_data[88] => mem.DATAB +in_data[89] => mem.DATAB +in_data[90] => mem.DATAB +in_data[91] => mem.DATAB +in_data[92] => mem.DATAB +in_data[93] => mem.DATAB +in_data[94] => mem.DATAB +in_data[95] => mem.DATAB +in_data[96] => mem.DATAB +in_valid => write.IN1 +in_startofpacket => mem.DATAB +in_endofpacket => mem.DATAB +in_empty[0] => ~NO_FANOUT~ +in_error[0] => out_error[0].DATAIN +in_error[0] => out_empty[0].DATAIN +in_channel[0] => out_channel[0].DATAIN +in_ready <= mem_used[1].DB_MAX_OUTPUT_PORT_TYPE +out_data[0] <= mem[0][0].DB_MAX_OUTPUT_PORT_TYPE +out_data[1] <= mem[0][1].DB_MAX_OUTPUT_PORT_TYPE +out_data[2] <= mem[0][2].DB_MAX_OUTPUT_PORT_TYPE +out_data[3] <= mem[0][3].DB_MAX_OUTPUT_PORT_TYPE +out_data[4] <= mem[0][4].DB_MAX_OUTPUT_PORT_TYPE +out_data[5] <= mem[0][5].DB_MAX_OUTPUT_PORT_TYPE +out_data[6] <= mem[0][6].DB_MAX_OUTPUT_PORT_TYPE +out_data[7] <= mem[0][7].DB_MAX_OUTPUT_PORT_TYPE +out_data[8] <= mem[0][8].DB_MAX_OUTPUT_PORT_TYPE +out_data[9] <= mem[0][9].DB_MAX_OUTPUT_PORT_TYPE +out_data[10] <= mem[0][10].DB_MAX_OUTPUT_PORT_TYPE +out_data[11] <= mem[0][11].DB_MAX_OUTPUT_PORT_TYPE +out_data[12] <= mem[0][12].DB_MAX_OUTPUT_PORT_TYPE +out_data[13] <= mem[0][13].DB_MAX_OUTPUT_PORT_TYPE +out_data[14] <= mem[0][14].DB_MAX_OUTPUT_PORT_TYPE +out_data[15] <= mem[0][15].DB_MAX_OUTPUT_PORT_TYPE +out_data[16] <= mem[0][16].DB_MAX_OUTPUT_PORT_TYPE +out_data[17] <= mem[0][17].DB_MAX_OUTPUT_PORT_TYPE +out_data[18] <= mem[0][18].DB_MAX_OUTPUT_PORT_TYPE +out_data[19] <= mem[0][19].DB_MAX_OUTPUT_PORT_TYPE +out_data[20] <= mem[0][20].DB_MAX_OUTPUT_PORT_TYPE +out_data[21] <= mem[0][21].DB_MAX_OUTPUT_PORT_TYPE +out_data[22] <= mem[0][22].DB_MAX_OUTPUT_PORT_TYPE +out_data[23] <= mem[0][23].DB_MAX_OUTPUT_PORT_TYPE +out_data[24] <= mem[0][24].DB_MAX_OUTPUT_PORT_TYPE +out_data[25] <= mem[0][25].DB_MAX_OUTPUT_PORT_TYPE +out_data[26] <= mem[0][26].DB_MAX_OUTPUT_PORT_TYPE +out_data[27] <= mem[0][27].DB_MAX_OUTPUT_PORT_TYPE +out_data[28] <= mem[0][28].DB_MAX_OUTPUT_PORT_TYPE +out_data[29] <= mem[0][29].DB_MAX_OUTPUT_PORT_TYPE +out_data[30] <= mem[0][30].DB_MAX_OUTPUT_PORT_TYPE +out_data[31] <= mem[0][31].DB_MAX_OUTPUT_PORT_TYPE +out_data[32] <= mem[0][32].DB_MAX_OUTPUT_PORT_TYPE +out_data[33] <= mem[0][33].DB_MAX_OUTPUT_PORT_TYPE +out_data[34] <= mem[0][34].DB_MAX_OUTPUT_PORT_TYPE +out_data[35] <= mem[0][35].DB_MAX_OUTPUT_PORT_TYPE +out_data[36] <= mem[0][36].DB_MAX_OUTPUT_PORT_TYPE +out_data[37] <= mem[0][37].DB_MAX_OUTPUT_PORT_TYPE +out_data[38] <= mem[0][38].DB_MAX_OUTPUT_PORT_TYPE +out_data[39] <= mem[0][39].DB_MAX_OUTPUT_PORT_TYPE +out_data[40] <= mem[0][40].DB_MAX_OUTPUT_PORT_TYPE +out_data[41] <= mem[0][41].DB_MAX_OUTPUT_PORT_TYPE +out_data[42] <= mem[0][42].DB_MAX_OUTPUT_PORT_TYPE +out_data[43] <= mem[0][43].DB_MAX_OUTPUT_PORT_TYPE +out_data[44] <= mem[0][44].DB_MAX_OUTPUT_PORT_TYPE +out_data[45] <= mem[0][45].DB_MAX_OUTPUT_PORT_TYPE +out_data[46] <= mem[0][46].DB_MAX_OUTPUT_PORT_TYPE +out_data[47] <= mem[0][47].DB_MAX_OUTPUT_PORT_TYPE +out_data[48] <= mem[0][48].DB_MAX_OUTPUT_PORT_TYPE +out_data[49] <= mem[0][49].DB_MAX_OUTPUT_PORT_TYPE +out_data[50] <= mem[0][50].DB_MAX_OUTPUT_PORT_TYPE +out_data[51] <= mem[0][51].DB_MAX_OUTPUT_PORT_TYPE +out_data[52] <= mem[0][52].DB_MAX_OUTPUT_PORT_TYPE +out_data[53] <= mem[0][53].DB_MAX_OUTPUT_PORT_TYPE +out_data[54] <= mem[0][54].DB_MAX_OUTPUT_PORT_TYPE +out_data[55] <= mem[0][55].DB_MAX_OUTPUT_PORT_TYPE +out_data[56] <= mem[0][56].DB_MAX_OUTPUT_PORT_TYPE +out_data[57] <= mem[0][57].DB_MAX_OUTPUT_PORT_TYPE +out_data[58] <= mem[0][58].DB_MAX_OUTPUT_PORT_TYPE +out_data[59] <= mem[0][59].DB_MAX_OUTPUT_PORT_TYPE +out_data[60] <= mem[0][60].DB_MAX_OUTPUT_PORT_TYPE +out_data[61] <= mem[0][61].DB_MAX_OUTPUT_PORT_TYPE +out_data[62] <= mem[0][62].DB_MAX_OUTPUT_PORT_TYPE +out_data[63] <= mem[0][63].DB_MAX_OUTPUT_PORT_TYPE +out_data[64] <= mem[0][64].DB_MAX_OUTPUT_PORT_TYPE +out_data[65] <= mem[0][65].DB_MAX_OUTPUT_PORT_TYPE +out_data[66] <= mem[0][66].DB_MAX_OUTPUT_PORT_TYPE +out_data[67] <= mem[0][67].DB_MAX_OUTPUT_PORT_TYPE +out_data[68] <= mem[0][68].DB_MAX_OUTPUT_PORT_TYPE +out_data[69] <= mem[0][69].DB_MAX_OUTPUT_PORT_TYPE +out_data[70] <= mem[0][70].DB_MAX_OUTPUT_PORT_TYPE +out_data[71] <= mem[0][71].DB_MAX_OUTPUT_PORT_TYPE +out_data[72] <= mem[0][72].DB_MAX_OUTPUT_PORT_TYPE +out_data[73] <= mem[0][73].DB_MAX_OUTPUT_PORT_TYPE +out_data[74] <= mem[0][74].DB_MAX_OUTPUT_PORT_TYPE +out_data[75] <= mem[0][75].DB_MAX_OUTPUT_PORT_TYPE +out_data[76] <= mem[0][76].DB_MAX_OUTPUT_PORT_TYPE +out_data[77] <= mem[0][77].DB_MAX_OUTPUT_PORT_TYPE +out_data[78] <= mem[0][78].DB_MAX_OUTPUT_PORT_TYPE +out_data[79] <= mem[0][79].DB_MAX_OUTPUT_PORT_TYPE +out_data[80] <= mem[0][80].DB_MAX_OUTPUT_PORT_TYPE +out_data[81] <= mem[0][81].DB_MAX_OUTPUT_PORT_TYPE +out_data[82] <= mem[0][82].DB_MAX_OUTPUT_PORT_TYPE +out_data[83] <= mem[0][83].DB_MAX_OUTPUT_PORT_TYPE +out_data[84] <= mem[0][84].DB_MAX_OUTPUT_PORT_TYPE +out_data[85] <= mem[0][85].DB_MAX_OUTPUT_PORT_TYPE +out_data[86] <= mem[0][86].DB_MAX_OUTPUT_PORT_TYPE +out_data[87] <= mem[0][87].DB_MAX_OUTPUT_PORT_TYPE +out_data[88] <= mem[0][88].DB_MAX_OUTPUT_PORT_TYPE +out_data[89] <= mem[0][89].DB_MAX_OUTPUT_PORT_TYPE +out_data[90] <= mem[0][90].DB_MAX_OUTPUT_PORT_TYPE +out_data[91] <= mem[0][91].DB_MAX_OUTPUT_PORT_TYPE +out_data[92] <= mem[0][92].DB_MAX_OUTPUT_PORT_TYPE +out_data[93] <= mem[0][93].DB_MAX_OUTPUT_PORT_TYPE +out_data[94] <= mem[0][94].DB_MAX_OUTPUT_PORT_TYPE +out_data[95] <= mem[0][95].DB_MAX_OUTPUT_PORT_TYPE +out_data[96] <= mem[0][96].DB_MAX_OUTPUT_PORT_TYPE +out_valid <= mem_used[0].DB_MAX_OUTPUT_PORT_TYPE +out_startofpacket <= mem[0][98].DB_MAX_OUTPUT_PORT_TYPE +out_endofpacket <= mem[0][97].DB_MAX_OUTPUT_PORT_TYPE +out_empty[0] <= in_error[0].DB_MAX_OUTPUT_PORT_TYPE +out_error[0] <= in_error[0].DB_MAX_OUTPUT_PORT_TYPE +out_channel[0] <= in_channel[0].DB_MAX_OUTPUT_PORT_TYPE +out_ready => internal_out_ready.IN1 +csr_address[0] => ~NO_FANOUT~ +csr_address[1] => ~NO_FANOUT~ +csr_write => ~NO_FANOUT~ +csr_read => csr_readdata[31]~reg0.ENA +csr_read => csr_readdata[30]~reg0.ENA +csr_read => csr_readdata[29]~reg0.ENA +csr_read => csr_readdata[28]~reg0.ENA +csr_read => csr_readdata[27]~reg0.ENA +csr_read => csr_readdata[26]~reg0.ENA +csr_read => csr_readdata[25]~reg0.ENA +csr_read => csr_readdata[24]~reg0.ENA +csr_read => csr_readdata[23]~reg0.ENA +csr_read => csr_readdata[22]~reg0.ENA +csr_read => csr_readdata[21]~reg0.ENA +csr_read => csr_readdata[20]~reg0.ENA +csr_read => csr_readdata[19]~reg0.ENA +csr_read => csr_readdata[18]~reg0.ENA +csr_read => csr_readdata[17]~reg0.ENA +csr_read => csr_readdata[16]~reg0.ENA +csr_read => csr_readdata[15]~reg0.ENA +csr_read => csr_readdata[14]~reg0.ENA +csr_read => csr_readdata[13]~reg0.ENA +csr_read => csr_readdata[12]~reg0.ENA +csr_read => csr_readdata[11]~reg0.ENA +csr_read => csr_readdata[10]~reg0.ENA +csr_read => csr_readdata[9]~reg0.ENA +csr_read => csr_readdata[8]~reg0.ENA +csr_read => csr_readdata[7]~reg0.ENA +csr_read => csr_readdata[6]~reg0.ENA +csr_read => csr_readdata[5]~reg0.ENA +csr_read => csr_readdata[4]~reg0.ENA +csr_read => csr_readdata[3]~reg0.ENA +csr_read => csr_readdata[2]~reg0.ENA +csr_read => csr_readdata[1]~reg0.ENA +csr_read => csr_readdata[0]~reg0.ENA +csr_writedata[0] => ~NO_FANOUT~ +csr_writedata[1] => ~NO_FANOUT~ +csr_writedata[2] => ~NO_FANOUT~ +csr_writedata[3] => ~NO_FANOUT~ +csr_writedata[4] => ~NO_FANOUT~ +csr_writedata[5] => ~NO_FANOUT~ +csr_writedata[6] => ~NO_FANOUT~ +csr_writedata[7] => ~NO_FANOUT~ +csr_writedata[8] => ~NO_FANOUT~ +csr_writedata[9] => ~NO_FANOUT~ +csr_writedata[10] => ~NO_FANOUT~ +csr_writedata[11] => ~NO_FANOUT~ +csr_writedata[12] => ~NO_FANOUT~ +csr_writedata[13] => ~NO_FANOUT~ +csr_writedata[14] => ~NO_FANOUT~ +csr_writedata[15] => ~NO_FANOUT~ +csr_writedata[16] => ~NO_FANOUT~ +csr_writedata[17] => ~NO_FANOUT~ +csr_writedata[18] => ~NO_FANOUT~ +csr_writedata[19] => ~NO_FANOUT~ +csr_writedata[20] => ~NO_FANOUT~ +csr_writedata[21] => ~NO_FANOUT~ +csr_writedata[22] => ~NO_FANOUT~ +csr_writedata[23] => ~NO_FANOUT~ +csr_writedata[24] => ~NO_FANOUT~ +csr_writedata[25] => ~NO_FANOUT~ +csr_writedata[26] => ~NO_FANOUT~ +csr_writedata[27] => ~NO_FANOUT~ +csr_writedata[28] => ~NO_FANOUT~ +csr_writedata[29] => ~NO_FANOUT~ +csr_writedata[30] => ~NO_FANOUT~ +csr_writedata[31] => ~NO_FANOUT~ +csr_readdata[0] <= csr_readdata[0]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[1] <= csr_readdata[1]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[2] <= csr_readdata[2]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[3] <= csr_readdata[3]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[4] <= csr_readdata[4]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[5] <= csr_readdata[5]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[6] <= csr_readdata[6]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[7] <= csr_readdata[7]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[8] <= csr_readdata[8]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[9] <= csr_readdata[9]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[10] <= csr_readdata[10]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[11] <= csr_readdata[11]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[12] <= csr_readdata[12]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[13] <= csr_readdata[13]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[14] <= csr_readdata[14]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[15] <= csr_readdata[15]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[16] <= csr_readdata[16]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[17] <= csr_readdata[17]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[18] <= csr_readdata[18]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[19] <= csr_readdata[19]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[20] <= csr_readdata[20]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[21] <= csr_readdata[21]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[22] <= csr_readdata[22]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[23] <= csr_readdata[23]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[24] <= csr_readdata[24]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[25] <= csr_readdata[25]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[26] <= csr_readdata[26]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[27] <= csr_readdata[27]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[28] <= csr_readdata[28]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[29] <= csr_readdata[29]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[30] <= csr_readdata[30]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[31] <= csr_readdata[31]~reg0.DB_MAX_OUTPUT_PORT_TYPE +almost_full_data <= +almost_empty_data <= + + +|lights|nios_system:NiosII|altera_merlin_slave_agent:hex3_s1_translator_avalon_universal_slave_0_agent +clk => clk.IN1 +reset => reset.IN1 +m0_address[0] <= +m0_address[1] <= +m0_address[2] <= cp_data[38].DB_MAX_OUTPUT_PORT_TYPE +m0_address[3] <= cp_data[39].DB_MAX_OUTPUT_PORT_TYPE +m0_address[4] <= cp_data[40].DB_MAX_OUTPUT_PORT_TYPE +m0_address[5] <= cp_data[41].DB_MAX_OUTPUT_PORT_TYPE +m0_address[6] <= cp_data[42].DB_MAX_OUTPUT_PORT_TYPE +m0_address[7] <= cp_data[43].DB_MAX_OUTPUT_PORT_TYPE +m0_address[8] <= cp_data[44].DB_MAX_OUTPUT_PORT_TYPE +m0_address[9] <= cp_data[45].DB_MAX_OUTPUT_PORT_TYPE +m0_address[10] <= cp_data[46].DB_MAX_OUTPUT_PORT_TYPE +m0_address[11] <= cp_data[47].DB_MAX_OUTPUT_PORT_TYPE +m0_address[12] <= cp_data[48].DB_MAX_OUTPUT_PORT_TYPE +m0_address[13] <= cp_data[49].DB_MAX_OUTPUT_PORT_TYPE +m0_address[14] <= cp_data[50].DB_MAX_OUTPUT_PORT_TYPE +m0_address[15] <= cp_data[51].DB_MAX_OUTPUT_PORT_TYPE +m0_address[16] <= cp_data[52].DB_MAX_OUTPUT_PORT_TYPE +m0_address[17] <= cp_data[53].DB_MAX_OUTPUT_PORT_TYPE +m0_address[18] <= cp_data[54].DB_MAX_OUTPUT_PORT_TYPE +m0_burstcount[0] <= m0_burstcount.DB_MAX_OUTPUT_PORT_TYPE +m0_burstcount[1] <= m0_burstcount.DB_MAX_OUTPUT_PORT_TYPE +m0_burstcount[2] <= m0_burstcount.DB_MAX_OUTPUT_PORT_TYPE +m0_byteenable[0] <= cp_data[32].DB_MAX_OUTPUT_PORT_TYPE +m0_byteenable[1] <= cp_data[33].DB_MAX_OUTPUT_PORT_TYPE +m0_byteenable[2] <= cp_data[34].DB_MAX_OUTPUT_PORT_TYPE +m0_byteenable[3] <= cp_data[35].DB_MAX_OUTPUT_PORT_TYPE +m0_read <= m0_read.DB_MAX_OUTPUT_PORT_TYPE +m0_readdata[0] => rdata_fifo_src_data[0].DATAIN +m0_readdata[1] => rdata_fifo_src_data[1].DATAIN +m0_readdata[2] => rdata_fifo_src_data[2].DATAIN +m0_readdata[3] => rdata_fifo_src_data[3].DATAIN +m0_readdata[4] => rdata_fifo_src_data[4].DATAIN +m0_readdata[5] => rdata_fifo_src_data[5].DATAIN +m0_readdata[6] => rdata_fifo_src_data[6].DATAIN +m0_readdata[7] => rdata_fifo_src_data[7].DATAIN +m0_readdata[8] => rdata_fifo_src_data[8].DATAIN +m0_readdata[9] => rdata_fifo_src_data[9].DATAIN +m0_readdata[10] => rdata_fifo_src_data[10].DATAIN +m0_readdata[11] => rdata_fifo_src_data[11].DATAIN +m0_readdata[12] => rdata_fifo_src_data[12].DATAIN +m0_readdata[13] => rdata_fifo_src_data[13].DATAIN +m0_readdata[14] => rdata_fifo_src_data[14].DATAIN +m0_readdata[15] => rdata_fifo_src_data[15].DATAIN +m0_readdata[16] => rdata_fifo_src_data[16].DATAIN +m0_readdata[17] => rdata_fifo_src_data[17].DATAIN +m0_readdata[18] => rdata_fifo_src_data[18].DATAIN +m0_readdata[19] => rdata_fifo_src_data[19].DATAIN +m0_readdata[20] => rdata_fifo_src_data[20].DATAIN +m0_readdata[21] => rdata_fifo_src_data[21].DATAIN +m0_readdata[22] => rdata_fifo_src_data[22].DATAIN +m0_readdata[23] => rdata_fifo_src_data[23].DATAIN +m0_readdata[24] => rdata_fifo_src_data[24].DATAIN +m0_readdata[25] => rdata_fifo_src_data[25].DATAIN +m0_readdata[26] => rdata_fifo_src_data[26].DATAIN +m0_readdata[27] => rdata_fifo_src_data[27].DATAIN +m0_readdata[28] => rdata_fifo_src_data[28].DATAIN +m0_readdata[29] => rdata_fifo_src_data[29].DATAIN +m0_readdata[30] => rdata_fifo_src_data[30].DATAIN +m0_readdata[31] => rdata_fifo_src_data[31].DATAIN +m0_waitrequest => cp_ready.IN0 +m0_write <= m0_write.DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[0] <= cp_data[0].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[1] <= cp_data[1].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[2] <= cp_data[2].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[3] <= cp_data[3].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[4] <= cp_data[4].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[5] <= cp_data[5].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[6] <= cp_data[6].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[7] <= cp_data[7].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[8] <= cp_data[8].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[9] <= cp_data[9].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[10] <= cp_data[10].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[11] <= cp_data[11].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[12] <= cp_data[12].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[13] <= cp_data[13].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[14] <= cp_data[14].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[15] <= cp_data[15].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[16] <= cp_data[16].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[17] <= cp_data[17].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[18] <= cp_data[18].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[19] <= cp_data[19].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[20] <= cp_data[20].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[21] <= cp_data[21].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[22] <= cp_data[22].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[23] <= cp_data[23].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[24] <= cp_data[24].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[25] <= cp_data[25].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[26] <= cp_data[26].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[27] <= cp_data[27].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[28] <= cp_data[28].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[29] <= cp_data[29].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[30] <= cp_data[30].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[31] <= cp_data[31].DB_MAX_OUTPUT_PORT_TYPE +m0_readdatavalid => rdata_fifo_src_valid.IN0 +m0_debugaccess <= cp_data[87].DB_MAX_OUTPUT_PORT_TYPE +m0_lock <= m0_lock.DB_MAX_OUTPUT_PORT_TYPE +m0_response[0] => rdata_fifo_src_data[32].DATAIN +m0_response[1] => rdata_fifo_src_data[33].DATAIN +m0_writeresponserequest <= m0_writeresponserequest.DB_MAX_OUTPUT_PORT_TYPE +m0_writeresponsevalid => rdata_fifo_src_valid.IN1 +rf_source_data[0] <= +rf_source_data[1] <= +rf_source_data[2] <= +rf_source_data[3] <= +rf_source_data[4] <= +rf_source_data[5] <= +rf_source_data[6] <= +rf_source_data[7] <= +rf_source_data[8] <= +rf_source_data[9] <= +rf_source_data[10] <= +rf_source_data[11] <= +rf_source_data[12] <= +rf_source_data[13] <= +rf_source_data[14] <= +rf_source_data[15] <= +rf_source_data[16] <= +rf_source_data[17] <= +rf_source_data[18] <= +rf_source_data[19] <= +rf_source_data[20] <= +rf_source_data[21] <= +rf_source_data[22] <= +rf_source_data[23] <= +rf_source_data[24] <= +rf_source_data[25] <= +rf_source_data[26] <= +rf_source_data[27] <= +rf_source_data[28] <= +rf_source_data[29] <= +rf_source_data[30] <= +rf_source_data[31] <= +rf_source_data[32] <= cp_data[32].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[33] <= cp_data[33].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[34] <= cp_data[34].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[35] <= cp_data[35].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[36] <= cp_data[36].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[37] <= cp_data[37].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[38] <= cp_data[38].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[39] <= cp_data[39].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[40] <= cp_data[40].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[41] <= cp_data[41].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[42] <= cp_data[42].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[43] <= cp_data[43].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[44] <= cp_data[44].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[45] <= cp_data[45].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[46] <= cp_data[46].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[47] <= cp_data[47].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[48] <= cp_data[48].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[49] <= cp_data[49].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[50] <= cp_data[50].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[51] <= cp_data[51].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[52] <= cp_data[52].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[53] <= cp_data[53].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[54] <= cp_data[54].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[55] <= cp_data[55].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[56] <= cp_data[56].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[57] <= cp_data[57].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[58] <= cp_data[58].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[59] <= cp_data[59].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[60] <= cp_data[60].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[61] <= cp_data[61].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[62] <= cp_data[62].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[63] <= cp_data[63].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[64] <= cp_data[64].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[65] <= cp_data[65].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[66] <= cp_data[66].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[67] <= cp_data[67].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[68] <= cp_data[68].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[69] <= cp_data[69].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[70] <= cp_data[70].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[71] <= cp_data[71].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[72] <= cp_data[72].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[73] <= cp_data[73].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[74] <= cp_data[74].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[75] <= cp_data[75].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[76] <= cp_data[76].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[77] <= cp_data[77].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[78] <= cp_data[78].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[79] <= cp_data[79].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[80] <= cp_data[80].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[81] <= cp_data[81].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[82] <= cp_data[82].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[83] <= cp_data[83].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[84] <= cp_data[84].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[85] <= cp_data[85].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[86] <= cp_data[86].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[87] <= cp_data[87].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[88] <= +rf_source_data[89] <= +rf_source_data[90] <= cp_data[90].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[91] <= cp_data[91].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[92] <= cp_data[92].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[93] <= cp_data[93].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[94] <= cp_data[94].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[95] <= cp_data[95].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[96] <= nonposted_write_endofpacket.DB_MAX_OUTPUT_PORT_TYPE +rf_source_valid <= rf_source_valid.DB_MAX_OUTPUT_PORT_TYPE +rf_source_startofpacket <= cp_startofpacket.DB_MAX_OUTPUT_PORT_TYPE +rf_source_endofpacket <= cp_endofpacket.DB_MAX_OUTPUT_PORT_TYPE +rf_source_ready => cp_ready.IN1 +rf_source_ready => m0_write.IN1 +rf_source_ready => m0_lock.IN1 +rf_source_ready => rf_source_valid.IN1 +rf_source_ready => m0_read.IN1 +rf_sink_data[0] => ~NO_FANOUT~ +rf_sink_data[1] => ~NO_FANOUT~ +rf_sink_data[2] => ~NO_FANOUT~ +rf_sink_data[3] => ~NO_FANOUT~ +rf_sink_data[4] => ~NO_FANOUT~ +rf_sink_data[5] => ~NO_FANOUT~ +rf_sink_data[6] => ~NO_FANOUT~ +rf_sink_data[7] => ~NO_FANOUT~ +rf_sink_data[8] => ~NO_FANOUT~ +rf_sink_data[9] => ~NO_FANOUT~ +rf_sink_data[10] => ~NO_FANOUT~ +rf_sink_data[11] => ~NO_FANOUT~ +rf_sink_data[12] => ~NO_FANOUT~ +rf_sink_data[13] => ~NO_FANOUT~ +rf_sink_data[14] => ~NO_FANOUT~ +rf_sink_data[15] => ~NO_FANOUT~ +rf_sink_data[16] => ~NO_FANOUT~ +rf_sink_data[17] => ~NO_FANOUT~ +rf_sink_data[18] => ~NO_FANOUT~ +rf_sink_data[19] => ~NO_FANOUT~ +rf_sink_data[20] => ~NO_FANOUT~ +rf_sink_data[21] => ~NO_FANOUT~ +rf_sink_data[22] => ~NO_FANOUT~ +rf_sink_data[23] => ~NO_FANOUT~ +rf_sink_data[24] => ~NO_FANOUT~ +rf_sink_data[25] => ~NO_FANOUT~ +rf_sink_data[26] => ~NO_FANOUT~ +rf_sink_data[27] => ~NO_FANOUT~ +rf_sink_data[28] => ~NO_FANOUT~ +rf_sink_data[29] => ~NO_FANOUT~ +rf_sink_data[30] => ~NO_FANOUT~ +rf_sink_data[31] => ~NO_FANOUT~ +rf_sink_data[32] => rp_data[32].DATAIN +rf_sink_data[33] => rp_data[33].DATAIN +rf_sink_data[34] => rp_data[34].DATAIN +rf_sink_data[35] => rp_data[35].DATAIN +rf_sink_data[36] => rf_sink_addr[0].IN1 +rf_sink_data[37] => rf_sink_addr[1].IN1 +rf_sink_data[38] => rf_sink_addr[2].IN1 +rf_sink_data[39] => rf_sink_addr[3].IN1 +rf_sink_data[40] => rf_sink_addr[4].IN1 +rf_sink_data[41] => rf_sink_addr[5].IN1 +rf_sink_data[42] => rf_sink_addr[6].IN1 +rf_sink_data[43] => rf_sink_addr[7].IN1 +rf_sink_data[44] => rf_sink_addr[8].IN1 +rf_sink_data[45] => rf_sink_addr[9].IN1 +rf_sink_data[46] => rf_sink_addr[10].IN1 +rf_sink_data[47] => rf_sink_addr[11].IN1 +rf_sink_data[48] => rf_sink_addr[12].IN1 +rf_sink_data[49] => rf_sink_addr[13].IN1 +rf_sink_data[50] => rf_sink_addr[14].IN1 +rf_sink_data[51] => rf_sink_addr[15].IN1 +rf_sink_data[52] => rf_sink_addr[16].IN1 +rf_sink_data[53] => rf_sink_addr[17].IN1 +rf_sink_data[54] => rf_sink_addr[18].IN1 +rf_sink_data[55] => rf_sink_compressed.IN1 +rf_sink_data[56] => rp_data[56].DATAIN +rf_sink_data[57] => comb.OUTPUTSELECT +rf_sink_data[57] => rp_data[57].DATAIN +rf_sink_data[58] => rp_data.IN0 +rf_sink_data[59] => rp_data[59].DATAIN +rf_sink_data[60] => rp_data[60].DATAIN +rf_sink_data[61] => rf_sink_byte_cnt[0].IN1 +rf_sink_data[62] => rf_sink_byte_cnt[1].IN1 +rf_sink_data[63] => rf_sink_byte_cnt[2].IN1 +rf_sink_data[64] => rf_sink_burstwrap[0].IN1 +rf_sink_data[65] => rf_sink_burstwrap[1].IN1 +rf_sink_data[66] => rf_sink_burstwrap[2].IN1 +rf_sink_data[67] => rf_sink_burstsize[0].IN1 +rf_sink_data[68] => rf_sink_burstsize[1].IN1 +rf_sink_data[69] => rf_sink_burstsize[2].IN1 +rf_sink_data[70] => rp_data[70].DATAIN +rf_sink_data[71] => rp_data[71].DATAIN +rf_sink_data[72] => rp_data[72].DATAIN +rf_sink_data[73] => rp_data[73].DATAIN +rf_sink_data[74] => rp_data[74].DATAIN +rf_sink_data[75] => rp_data[75].DATAIN +rf_sink_data[76] => rp_data[81].DATAIN +rf_sink_data[77] => rp_data[82].DATAIN +rf_sink_data[78] => rp_data[83].DATAIN +rf_sink_data[79] => rp_data[84].DATAIN +rf_sink_data[80] => rp_data[85].DATAIN +rf_sink_data[81] => rp_data[76].DATAIN +rf_sink_data[82] => rp_data[77].DATAIN +rf_sink_data[83] => rp_data[78].DATAIN +rf_sink_data[84] => rp_data[79].DATAIN +rf_sink_data[85] => rp_data[80].DATAIN +rf_sink_data[86] => rp_data[86].DATAIN +rf_sink_data[87] => rp_data[87].DATAIN +rf_sink_data[88] => rp_data[88].DATAIN +rf_sink_data[89] => rp_data[89].DATAIN +rf_sink_data[90] => rp_data[90].DATAIN +rf_sink_data[91] => rp_data[91].DATAIN +rf_sink_data[92] => rp_data[92].DATAIN +rf_sink_data[93] => rp_data[93].DATAIN +rf_sink_data[94] => ~NO_FANOUT~ +rf_sink_data[95] => ~NO_FANOUT~ +rf_sink_data[96] => rdata_fifo_sink_ready.IN0 +rf_sink_data[96] => comb.IN0 +rf_sink_valid => rdata_fifo_sink_ready.IN1 +rf_sink_valid => comb.IN1 +rf_sink_startofpacket => comb.DATAA +rf_sink_endofpacket => rf_sink_endofpacket.IN1 +rf_sink_ready <= altera_merlin_burst_uncompressor:uncompressor.sink_ready +rdata_fifo_src_data[0] <= m0_readdata[0].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[1] <= m0_readdata[1].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[2] <= m0_readdata[2].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[3] <= m0_readdata[3].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[4] <= m0_readdata[4].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[5] <= m0_readdata[5].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[6] <= m0_readdata[6].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[7] <= m0_readdata[7].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[8] <= m0_readdata[8].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[9] <= m0_readdata[9].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[10] <= m0_readdata[10].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[11] <= m0_readdata[11].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[12] <= m0_readdata[12].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[13] <= m0_readdata[13].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[14] <= m0_readdata[14].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[15] <= m0_readdata[15].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[16] <= m0_readdata[16].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[17] <= m0_readdata[17].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[18] <= m0_readdata[18].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[19] <= m0_readdata[19].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[20] <= m0_readdata[20].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[21] <= m0_readdata[21].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[22] <= m0_readdata[22].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[23] <= m0_readdata[23].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[24] <= m0_readdata[24].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[25] <= m0_readdata[25].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[26] <= m0_readdata[26].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[27] <= m0_readdata[27].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[28] <= m0_readdata[28].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[29] <= m0_readdata[29].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[30] <= m0_readdata[30].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[31] <= m0_readdata[31].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[32] <= m0_response[0].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[33] <= m0_response[1].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_valid <= rdata_fifo_src_valid.DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_ready => ~NO_FANOUT~ +rdata_fifo_sink_data[0] => rp_data[0].DATAIN +rdata_fifo_sink_data[1] => rp_data[1].DATAIN +rdata_fifo_sink_data[2] => rp_data[2].DATAIN +rdata_fifo_sink_data[3] => rp_data[3].DATAIN +rdata_fifo_sink_data[4] => rp_data[4].DATAIN +rdata_fifo_sink_data[5] => rp_data[5].DATAIN +rdata_fifo_sink_data[6] => rp_data[6].DATAIN +rdata_fifo_sink_data[7] => rp_data[7].DATAIN +rdata_fifo_sink_data[8] => rp_data[8].DATAIN +rdata_fifo_sink_data[9] => rp_data[9].DATAIN +rdata_fifo_sink_data[10] => rp_data[10].DATAIN +rdata_fifo_sink_data[11] => rp_data[11].DATAIN +rdata_fifo_sink_data[12] => rp_data[12].DATAIN +rdata_fifo_sink_data[13] => rp_data[13].DATAIN +rdata_fifo_sink_data[14] => rp_data[14].DATAIN +rdata_fifo_sink_data[15] => rp_data[15].DATAIN +rdata_fifo_sink_data[16] => rp_data[16].DATAIN +rdata_fifo_sink_data[17] => rp_data[17].DATAIN +rdata_fifo_sink_data[18] => rp_data[18].DATAIN +rdata_fifo_sink_data[19] => rp_data[19].DATAIN +rdata_fifo_sink_data[20] => rp_data[20].DATAIN +rdata_fifo_sink_data[21] => rp_data[21].DATAIN +rdata_fifo_sink_data[22] => rp_data[22].DATAIN +rdata_fifo_sink_data[23] => rp_data[23].DATAIN +rdata_fifo_sink_data[24] => rp_data[24].DATAIN +rdata_fifo_sink_data[25] => rp_data[25].DATAIN +rdata_fifo_sink_data[26] => rp_data[26].DATAIN +rdata_fifo_sink_data[27] => rp_data[27].DATAIN +rdata_fifo_sink_data[28] => rp_data[28].DATAIN +rdata_fifo_sink_data[29] => rp_data[29].DATAIN +rdata_fifo_sink_data[30] => rp_data[30].DATAIN +rdata_fifo_sink_data[31] => rp_data[31].DATAIN +rdata_fifo_sink_data[32] => rp_data[94].DATAIN +rdata_fifo_sink_data[33] => rp_data[95].DATAIN +rdata_fifo_sink_valid => rp_valid.IN1 +rdata_fifo_sink_valid => rdata_fifo_sink_ready.IN0 +rdata_fifo_sink_valid => comb.IN1 +rdata_fifo_sink_ready <= rdata_fifo_sink_ready.DB_MAX_OUTPUT_PORT_TYPE +cp_ready <= cp_ready.DB_MAX_OUTPUT_PORT_TYPE +cp_valid => local_lock.IN0 +cp_valid => local_write.IN0 +cp_valid => local_read.IN0 +cp_valid => local_compressed_read.IN0 +cp_data[0] => m0_writedata[0].DATAIN +cp_data[1] => m0_writedata[1].DATAIN +cp_data[2] => m0_writedata[2].DATAIN +cp_data[3] => m0_writedata[3].DATAIN +cp_data[4] => m0_writedata[4].DATAIN +cp_data[5] => m0_writedata[5].DATAIN +cp_data[6] => m0_writedata[6].DATAIN +cp_data[7] => m0_writedata[7].DATAIN +cp_data[8] => m0_writedata[8].DATAIN +cp_data[9] => m0_writedata[9].DATAIN +cp_data[10] => m0_writedata[10].DATAIN +cp_data[11] => m0_writedata[11].DATAIN +cp_data[12] => m0_writedata[12].DATAIN +cp_data[13] => m0_writedata[13].DATAIN +cp_data[14] => m0_writedata[14].DATAIN +cp_data[15] => m0_writedata[15].DATAIN +cp_data[16] => m0_writedata[16].DATAIN +cp_data[17] => m0_writedata[17].DATAIN +cp_data[18] => m0_writedata[18].DATAIN +cp_data[19] => m0_writedata[19].DATAIN +cp_data[20] => m0_writedata[20].DATAIN +cp_data[21] => m0_writedata[21].DATAIN +cp_data[22] => m0_writedata[22].DATAIN +cp_data[23] => m0_writedata[23].DATAIN +cp_data[24] => m0_writedata[24].DATAIN +cp_data[25] => m0_writedata[25].DATAIN +cp_data[26] => m0_writedata[26].DATAIN +cp_data[27] => m0_writedata[27].DATAIN +cp_data[28] => m0_writedata[28].DATAIN +cp_data[29] => m0_writedata[29].DATAIN +cp_data[30] => m0_writedata[30].DATAIN +cp_data[31] => m0_writedata[31].DATAIN +cp_data[32] => rf_source_data[32].DATAIN +cp_data[32] => m0_byteenable[0].DATAIN +cp_data[33] => rf_source_data[33].DATAIN +cp_data[33] => m0_byteenable[1].DATAIN +cp_data[34] => rf_source_data[34].DATAIN +cp_data[34] => m0_byteenable[2].DATAIN +cp_data[35] => rf_source_data[35].DATAIN +cp_data[35] => m0_byteenable[3].DATAIN +cp_data[36] => rf_source_data[36].DATAIN +cp_data[37] => rf_source_data[37].DATAIN +cp_data[38] => rf_source_data[38].DATAIN +cp_data[38] => m0_address[2].DATAIN +cp_data[39] => rf_source_data[39].DATAIN +cp_data[39] => m0_address[3].DATAIN +cp_data[40] => rf_source_data[40].DATAIN +cp_data[40] => m0_address[4].DATAIN +cp_data[41] => rf_source_data[41].DATAIN +cp_data[41] => m0_address[5].DATAIN +cp_data[42] => rf_source_data[42].DATAIN +cp_data[42] => m0_address[6].DATAIN +cp_data[43] => rf_source_data[43].DATAIN +cp_data[43] => m0_address[7].DATAIN +cp_data[44] => rf_source_data[44].DATAIN +cp_data[44] => m0_address[8].DATAIN +cp_data[45] => rf_source_data[45].DATAIN +cp_data[45] => m0_address[9].DATAIN +cp_data[46] => rf_source_data[46].DATAIN +cp_data[46] => m0_address[10].DATAIN +cp_data[47] => rf_source_data[47].DATAIN +cp_data[47] => m0_address[11].DATAIN +cp_data[48] => rf_source_data[48].DATAIN +cp_data[48] => m0_address[12].DATAIN +cp_data[49] => rf_source_data[49].DATAIN +cp_data[49] => m0_address[13].DATAIN +cp_data[50] => rf_source_data[50].DATAIN +cp_data[50] => m0_address[14].DATAIN +cp_data[51] => rf_source_data[51].DATAIN +cp_data[51] => m0_address[15].DATAIN +cp_data[52] => rf_source_data[52].DATAIN +cp_data[52] => m0_address[16].DATAIN +cp_data[53] => rf_source_data[53].DATAIN +cp_data[53] => m0_address[17].DATAIN +cp_data[54] => rf_source_data[54].DATAIN +cp_data[54] => m0_address[18].DATAIN +cp_data[55] => local_compressed_read.IN1 +cp_data[55] => rf_source_data[55].DATAIN +cp_data[56] => rf_source_data[56].DATAIN +cp_data[56] => m0_writeresponserequest.IN1 +cp_data[56] => comb.IN1 +cp_data[57] => local_write.IN1 +cp_data[57] => rf_source_data[57].DATAIN +cp_data[58] => local_read.IN1 +cp_data[58] => rf_source_data[58].DATAIN +cp_data[59] => local_lock.IN1 +cp_data[59] => rf_source_data[59].DATAIN +cp_data[60] => rf_source_data[60].DATAIN +cp_data[61] => m0_burstcount.DATAA +cp_data[61] => rf_source_data[61].DATAIN +cp_data[62] => m0_burstcount.DATAA +cp_data[62] => rf_source_data[62].DATAIN +cp_data[63] => m0_burstcount.DATAA +cp_data[63] => rf_source_data[63].DATAIN +cp_data[64] => rf_source_data[64].DATAIN +cp_data[65] => rf_source_data[65].DATAIN +cp_data[66] => rf_source_data[66].DATAIN +cp_data[67] => rf_source_data[67].DATAIN +cp_data[68] => rf_source_data[68].DATAIN +cp_data[69] => rf_source_data[69].DATAIN +cp_data[70] => rf_source_data[70].DATAIN +cp_data[71] => rf_source_data[71].DATAIN +cp_data[72] => rf_source_data[72].DATAIN +cp_data[73] => rf_source_data[73].DATAIN +cp_data[74] => rf_source_data[74].DATAIN +cp_data[75] => rf_source_data[75].DATAIN +cp_data[76] => rf_source_data[76].DATAIN +cp_data[77] => rf_source_data[77].DATAIN +cp_data[78] => rf_source_data[78].DATAIN +cp_data[79] => rf_source_data[79].DATAIN +cp_data[80] => rf_source_data[80].DATAIN +cp_data[81] => rf_source_data[81].DATAIN +cp_data[82] => rf_source_data[82].DATAIN +cp_data[83] => rf_source_data[83].DATAIN +cp_data[84] => rf_source_data[84].DATAIN +cp_data[85] => rf_source_data[85].DATAIN +cp_data[86] => rf_source_data[86].DATAIN +cp_data[87] => rf_source_data[87].DATAIN +cp_data[87] => m0_debugaccess.DATAIN +cp_data[88] => ~NO_FANOUT~ +cp_data[89] => ~NO_FANOUT~ +cp_data[90] => rf_source_data[90].DATAIN +cp_data[91] => rf_source_data[91].DATAIN +cp_data[92] => rf_source_data[92].DATAIN +cp_data[93] => rf_source_data[93].DATAIN +cp_data[94] => rf_source_data[94].DATAIN +cp_data[95] => rf_source_data[95].DATAIN +cp_channel[0] => ~NO_FANOUT~ +cp_channel[1] => ~NO_FANOUT~ +cp_channel[2] => ~NO_FANOUT~ +cp_channel[3] => ~NO_FANOUT~ +cp_channel[4] => ~NO_FANOUT~ +cp_channel[5] => ~NO_FANOUT~ +cp_channel[6] => ~NO_FANOUT~ +cp_channel[7] => ~NO_FANOUT~ +cp_channel[8] => ~NO_FANOUT~ +cp_channel[9] => ~NO_FANOUT~ +cp_channel[10] => ~NO_FANOUT~ +cp_channel[11] => ~NO_FANOUT~ +cp_channel[12] => ~NO_FANOUT~ +cp_channel[13] => ~NO_FANOUT~ +cp_channel[14] => ~NO_FANOUT~ +cp_channel[15] => ~NO_FANOUT~ +cp_channel[16] => ~NO_FANOUT~ +cp_channel[17] => ~NO_FANOUT~ +cp_startofpacket => rf_source_startofpacket.DATAIN +cp_endofpacket => nonposted_write_endofpacket.IN1 +cp_endofpacket => rf_source_endofpacket.DATAIN +rp_ready => rp_ready.IN1 +rp_valid <= rp_valid.DB_MAX_OUTPUT_PORT_TYPE +rp_data[0] <= rdata_fifo_sink_data[0].DB_MAX_OUTPUT_PORT_TYPE +rp_data[1] <= rdata_fifo_sink_data[1].DB_MAX_OUTPUT_PORT_TYPE +rp_data[2] <= rdata_fifo_sink_data[2].DB_MAX_OUTPUT_PORT_TYPE +rp_data[3] <= rdata_fifo_sink_data[3].DB_MAX_OUTPUT_PORT_TYPE +rp_data[4] <= rdata_fifo_sink_data[4].DB_MAX_OUTPUT_PORT_TYPE +rp_data[5] <= rdata_fifo_sink_data[5].DB_MAX_OUTPUT_PORT_TYPE +rp_data[6] <= rdata_fifo_sink_data[6].DB_MAX_OUTPUT_PORT_TYPE +rp_data[7] <= rdata_fifo_sink_data[7].DB_MAX_OUTPUT_PORT_TYPE +rp_data[8] <= rdata_fifo_sink_data[8].DB_MAX_OUTPUT_PORT_TYPE +rp_data[9] <= rdata_fifo_sink_data[9].DB_MAX_OUTPUT_PORT_TYPE +rp_data[10] <= rdata_fifo_sink_data[10].DB_MAX_OUTPUT_PORT_TYPE +rp_data[11] <= rdata_fifo_sink_data[11].DB_MAX_OUTPUT_PORT_TYPE +rp_data[12] <= rdata_fifo_sink_data[12].DB_MAX_OUTPUT_PORT_TYPE +rp_data[13] <= rdata_fifo_sink_data[13].DB_MAX_OUTPUT_PORT_TYPE +rp_data[14] <= rdata_fifo_sink_data[14].DB_MAX_OUTPUT_PORT_TYPE +rp_data[15] <= rdata_fifo_sink_data[15].DB_MAX_OUTPUT_PORT_TYPE +rp_data[16] <= rdata_fifo_sink_data[16].DB_MAX_OUTPUT_PORT_TYPE +rp_data[17] <= rdata_fifo_sink_data[17].DB_MAX_OUTPUT_PORT_TYPE +rp_data[18] <= rdata_fifo_sink_data[18].DB_MAX_OUTPUT_PORT_TYPE +rp_data[19] <= rdata_fifo_sink_data[19].DB_MAX_OUTPUT_PORT_TYPE +rp_data[20] <= rdata_fifo_sink_data[20].DB_MAX_OUTPUT_PORT_TYPE +rp_data[21] <= rdata_fifo_sink_data[21].DB_MAX_OUTPUT_PORT_TYPE +rp_data[22] <= rdata_fifo_sink_data[22].DB_MAX_OUTPUT_PORT_TYPE +rp_data[23] <= rdata_fifo_sink_data[23].DB_MAX_OUTPUT_PORT_TYPE +rp_data[24] <= rdata_fifo_sink_data[24].DB_MAX_OUTPUT_PORT_TYPE +rp_data[25] <= rdata_fifo_sink_data[25].DB_MAX_OUTPUT_PORT_TYPE +rp_data[26] <= rdata_fifo_sink_data[26].DB_MAX_OUTPUT_PORT_TYPE +rp_data[27] <= rdata_fifo_sink_data[27].DB_MAX_OUTPUT_PORT_TYPE +rp_data[28] <= rdata_fifo_sink_data[28].DB_MAX_OUTPUT_PORT_TYPE +rp_data[29] <= rdata_fifo_sink_data[29].DB_MAX_OUTPUT_PORT_TYPE +rp_data[30] <= rdata_fifo_sink_data[30].DB_MAX_OUTPUT_PORT_TYPE +rp_data[31] <= rdata_fifo_sink_data[31].DB_MAX_OUTPUT_PORT_TYPE +rp_data[32] <= rf_sink_data[32].DB_MAX_OUTPUT_PORT_TYPE +rp_data[33] <= rf_sink_data[33].DB_MAX_OUTPUT_PORT_TYPE +rp_data[34] <= rf_sink_data[34].DB_MAX_OUTPUT_PORT_TYPE +rp_data[35] <= rf_sink_data[35].DB_MAX_OUTPUT_PORT_TYPE +rp_data[36] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[37] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[38] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[39] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[40] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[41] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[42] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[43] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[44] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[45] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[46] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[47] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[48] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[49] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[50] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[51] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[52] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[53] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[54] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[55] <= altera_merlin_burst_uncompressor:uncompressor.source_is_compressed +rp_data[56] <= rf_sink_data[56].DB_MAX_OUTPUT_PORT_TYPE +rp_data[57] <= rf_sink_data[57].DB_MAX_OUTPUT_PORT_TYPE +rp_data[58] <= rp_data.DB_MAX_OUTPUT_PORT_TYPE +rp_data[59] <= rf_sink_data[59].DB_MAX_OUTPUT_PORT_TYPE +rp_data[60] <= rf_sink_data[60].DB_MAX_OUTPUT_PORT_TYPE +rp_data[61] <= altera_merlin_burst_uncompressor:uncompressor.source_byte_cnt +rp_data[62] <= altera_merlin_burst_uncompressor:uncompressor.source_byte_cnt +rp_data[63] <= altera_merlin_burst_uncompressor:uncompressor.source_byte_cnt +rp_data[64] <= altera_merlin_burst_uncompressor:uncompressor.source_burstwrap +rp_data[65] <= altera_merlin_burst_uncompressor:uncompressor.source_burstwrap +rp_data[66] <= altera_merlin_burst_uncompressor:uncompressor.source_burstwrap +rp_data[67] <= altera_merlin_burst_uncompressor:uncompressor.source_burstsize +rp_data[68] <= altera_merlin_burst_uncompressor:uncompressor.source_burstsize +rp_data[69] <= altera_merlin_burst_uncompressor:uncompressor.source_burstsize +rp_data[70] <= rf_sink_data[70].DB_MAX_OUTPUT_PORT_TYPE +rp_data[71] <= rf_sink_data[71].DB_MAX_OUTPUT_PORT_TYPE +rp_data[72] <= rf_sink_data[72].DB_MAX_OUTPUT_PORT_TYPE +rp_data[73] <= rf_sink_data[73].DB_MAX_OUTPUT_PORT_TYPE +rp_data[74] <= rf_sink_data[74].DB_MAX_OUTPUT_PORT_TYPE +rp_data[75] <= rf_sink_data[75].DB_MAX_OUTPUT_PORT_TYPE +rp_data[76] <= rf_sink_data[81].DB_MAX_OUTPUT_PORT_TYPE +rp_data[77] <= rf_sink_data[82].DB_MAX_OUTPUT_PORT_TYPE +rp_data[78] <= rf_sink_data[83].DB_MAX_OUTPUT_PORT_TYPE +rp_data[79] <= rf_sink_data[84].DB_MAX_OUTPUT_PORT_TYPE +rp_data[80] <= rf_sink_data[85].DB_MAX_OUTPUT_PORT_TYPE +rp_data[81] <= rf_sink_data[76].DB_MAX_OUTPUT_PORT_TYPE +rp_data[82] <= rf_sink_data[77].DB_MAX_OUTPUT_PORT_TYPE +rp_data[83] <= rf_sink_data[78].DB_MAX_OUTPUT_PORT_TYPE +rp_data[84] <= rf_sink_data[79].DB_MAX_OUTPUT_PORT_TYPE +rp_data[85] <= rf_sink_data[80].DB_MAX_OUTPUT_PORT_TYPE +rp_data[86] <= rf_sink_data[86].DB_MAX_OUTPUT_PORT_TYPE +rp_data[87] <= rf_sink_data[87].DB_MAX_OUTPUT_PORT_TYPE +rp_data[88] <= rf_sink_data[88].DB_MAX_OUTPUT_PORT_TYPE +rp_data[89] <= rf_sink_data[89].DB_MAX_OUTPUT_PORT_TYPE +rp_data[90] <= rf_sink_data[90].DB_MAX_OUTPUT_PORT_TYPE +rp_data[91] <= rf_sink_data[91].DB_MAX_OUTPUT_PORT_TYPE +rp_data[92] <= rf_sink_data[92].DB_MAX_OUTPUT_PORT_TYPE +rp_data[93] <= rf_sink_data[93].DB_MAX_OUTPUT_PORT_TYPE +rp_data[94] <= rdata_fifo_sink_data[32].DB_MAX_OUTPUT_PORT_TYPE +rp_data[95] <= rdata_fifo_sink_data[33].DB_MAX_OUTPUT_PORT_TYPE +rp_startofpacket <= altera_merlin_burst_uncompressor:uncompressor.source_startofpacket +rp_endofpacket <= altera_merlin_burst_uncompressor:uncompressor.source_endofpacket + + +|lights|nios_system:NiosII|altera_merlin_slave_agent:hex3_s1_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor +clk => burst_uncompress_address_offset[0].CLK +clk => burst_uncompress_address_offset[1].CLK +clk => burst_uncompress_address_offset[2].CLK +clk => burst_uncompress_address_offset[3].CLK +clk => burst_uncompress_address_offset[4].CLK +clk => burst_uncompress_address_offset[5].CLK +clk => burst_uncompress_address_offset[6].CLK +clk => burst_uncompress_address_offset[7].CLK +clk => burst_uncompress_address_offset[8].CLK +clk => burst_uncompress_address_offset[9].CLK +clk => burst_uncompress_address_offset[10].CLK +clk => burst_uncompress_address_offset[11].CLK +clk => burst_uncompress_address_offset[12].CLK +clk => burst_uncompress_address_offset[13].CLK +clk => burst_uncompress_address_offset[14].CLK +clk => burst_uncompress_address_offset[15].CLK +clk => burst_uncompress_address_offset[16].CLK +clk => burst_uncompress_address_offset[17].CLK +clk => burst_uncompress_address_offset[18].CLK +clk => burst_uncompress_address_base[0].CLK +clk => burst_uncompress_address_base[1].CLK +clk => burst_uncompress_address_base[2].CLK +clk => burst_uncompress_address_base[3].CLK +clk => burst_uncompress_address_base[4].CLK +clk => burst_uncompress_address_base[5].CLK +clk => burst_uncompress_address_base[6].CLK +clk => burst_uncompress_address_base[7].CLK +clk => burst_uncompress_address_base[8].CLK +clk => burst_uncompress_address_base[9].CLK +clk => burst_uncompress_address_base[10].CLK +clk => burst_uncompress_address_base[11].CLK +clk => burst_uncompress_address_base[12].CLK +clk => burst_uncompress_address_base[13].CLK +clk => burst_uncompress_address_base[14].CLK +clk => burst_uncompress_address_base[15].CLK +clk => burst_uncompress_address_base[16].CLK +clk => burst_uncompress_address_base[17].CLK +clk => burst_uncompress_address_base[18].CLK +clk => burst_uncompress_byte_counter[0].CLK +clk => burst_uncompress_byte_counter[1].CLK +clk => burst_uncompress_byte_counter[2].CLK +clk => burst_uncompress_busy.CLK +reset => burst_uncompress_address_offset[0].ACLR +reset => burst_uncompress_address_offset[1].ACLR +reset => burst_uncompress_address_offset[2].ACLR +reset => burst_uncompress_address_offset[3].ACLR +reset => burst_uncompress_address_offset[4].ACLR +reset => burst_uncompress_address_offset[5].ACLR +reset => burst_uncompress_address_offset[6].ACLR +reset => burst_uncompress_address_offset[7].ACLR +reset => burst_uncompress_address_offset[8].ACLR +reset => burst_uncompress_address_offset[9].ACLR +reset => burst_uncompress_address_offset[10].ACLR +reset => burst_uncompress_address_offset[11].ACLR +reset => burst_uncompress_address_offset[12].ACLR +reset => burst_uncompress_address_offset[13].ACLR +reset => burst_uncompress_address_offset[14].ACLR +reset => burst_uncompress_address_offset[15].ACLR +reset => burst_uncompress_address_offset[16].ACLR +reset => burst_uncompress_address_offset[17].ACLR +reset => burst_uncompress_address_offset[18].ACLR +reset => burst_uncompress_address_base[0].ACLR +reset => burst_uncompress_address_base[1].ACLR +reset => burst_uncompress_address_base[2].ACLR +reset => burst_uncompress_address_base[3].ACLR +reset => burst_uncompress_address_base[4].ACLR +reset => burst_uncompress_address_base[5].ACLR +reset => burst_uncompress_address_base[6].ACLR +reset => burst_uncompress_address_base[7].ACLR +reset => burst_uncompress_address_base[8].ACLR +reset => burst_uncompress_address_base[9].ACLR +reset => burst_uncompress_address_base[10].ACLR +reset => burst_uncompress_address_base[11].ACLR +reset => burst_uncompress_address_base[12].ACLR +reset => burst_uncompress_address_base[13].ACLR +reset => burst_uncompress_address_base[14].ACLR +reset => burst_uncompress_address_base[15].ACLR +reset => burst_uncompress_address_base[16].ACLR +reset => burst_uncompress_address_base[17].ACLR +reset => burst_uncompress_address_base[18].ACLR +reset => burst_uncompress_byte_counter[0].ACLR +reset => burst_uncompress_byte_counter[1].ACLR +reset => burst_uncompress_byte_counter[2].ACLR +reset => burst_uncompress_busy.ACLR +sink_startofpacket => source_startofpacket.IN1 +sink_endofpacket => source_endofpacket.IN1 +sink_valid => first_packet_beat.IN1 +sink_valid => last_packet_beat.IN1 +sink_valid => last_packet_beat.IN1 +sink_valid => always0.IN1 +sink_valid => sink_ready.IN0 +sink_valid => source_valid.DATAIN +sink_ready <= sink_ready.DB_MAX_OUTPUT_PORT_TYPE +sink_addr[0] => burst_uncompress_address_base.IN0 +sink_addr[0] => comb.DATAB +sink_addr[0] => source_addr.DATAB +sink_addr[1] => burst_uncompress_address_base.IN0 +sink_addr[1] => comb.DATAB +sink_addr[1] => source_addr.DATAB +sink_addr[2] => burst_uncompress_address_base.IN0 +sink_addr[2] => comb.DATAB +sink_addr[2] => source_addr.DATAB +sink_addr[3] => burst_uncompress_address_base.IN0 +sink_addr[3] => comb.DATAB +sink_addr[3] => source_addr.DATAB +sink_addr[4] => burst_uncompress_address_base.IN0 +sink_addr[4] => comb.DATAB +sink_addr[4] => source_addr.DATAB +sink_addr[5] => burst_uncompress_address_base.IN0 +sink_addr[5] => comb.DATAB +sink_addr[5] => source_addr.DATAB +sink_addr[6] => burst_uncompress_address_base.IN0 +sink_addr[6] => comb.DATAB +sink_addr[6] => source_addr.DATAB +sink_addr[7] => burst_uncompress_address_base.IN0 +sink_addr[7] => comb.DATAB +sink_addr[7] => source_addr.DATAB +sink_addr[8] => burst_uncompress_address_base.IN0 +sink_addr[8] => comb.DATAB +sink_addr[8] => source_addr.DATAB +sink_addr[9] => burst_uncompress_address_base.IN0 +sink_addr[9] => comb.DATAB +sink_addr[9] => source_addr.DATAB +sink_addr[10] => burst_uncompress_address_base.IN0 +sink_addr[10] => comb.DATAB +sink_addr[10] => source_addr.DATAB +sink_addr[11] => burst_uncompress_address_base.IN0 +sink_addr[11] => comb.DATAB +sink_addr[11] => source_addr.DATAB +sink_addr[12] => burst_uncompress_address_base.IN0 +sink_addr[12] => comb.DATAB +sink_addr[12] => source_addr.DATAB +sink_addr[13] => burst_uncompress_address_base.IN0 +sink_addr[13] => comb.DATAB +sink_addr[13] => source_addr.DATAB +sink_addr[14] => burst_uncompress_address_base.IN0 +sink_addr[14] => comb.DATAB +sink_addr[14] => source_addr.DATAB +sink_addr[15] => burst_uncompress_address_base.IN0 +sink_addr[15] => comb.DATAB +sink_addr[15] => source_addr.DATAB +sink_addr[16] => burst_uncompress_address_base.IN0 +sink_addr[16] => comb.DATAB +sink_addr[16] => source_addr.DATAB +sink_addr[17] => burst_uncompress_address_base.IN0 +sink_addr[17] => comb.DATAB +sink_addr[17] => source_addr.DATAB +sink_addr[18] => burst_uncompress_address_base.IN0 +sink_addr[18] => comb.DATAB +sink_addr[18] => source_addr.DATAB +sink_burstwrap[0] => p1_burst_uncompress_address_offset[0].IN1 +sink_burstwrap[0] => source_burstwrap[0].DATAIN +sink_burstwrap[0] => burst_uncompress_address_base.IN1 +sink_burstwrap[1] => p1_burst_uncompress_address_offset[1].IN1 +sink_burstwrap[1] => source_burstwrap[1].DATAIN +sink_burstwrap[1] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[2].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[18].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[17].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[16].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[15].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[14].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[13].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[12].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[11].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[10].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[9].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[8].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[7].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[6].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[5].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[4].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[3].IN1 +sink_burstwrap[2] => source_burstwrap[2].DATAIN +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_byte_cnt[0] => source_byte_cnt.DATAB +sink_byte_cnt[0] => Add1.IN6 +sink_byte_cnt[0] => Equal1.IN2 +sink_byte_cnt[1] => source_byte_cnt.DATAB +sink_byte_cnt[1] => Add1.IN5 +sink_byte_cnt[1] => Equal1.IN1 +sink_byte_cnt[2] => source_byte_cnt.DATAB +sink_byte_cnt[2] => Add1.IN4 +sink_byte_cnt[2] => Equal1.IN0 +sink_is_compressed => last_packet_beat.IN1 +sink_burstsize[0] => Decoder0.IN2 +sink_burstsize[0] => source_burstsize[0].DATAIN +sink_burstsize[1] => Decoder0.IN1 +sink_burstsize[1] => source_burstsize[1].DATAIN +sink_burstsize[2] => Decoder0.IN0 +sink_burstsize[2] => source_burstsize[2].DATAIN +source_startofpacket <= source_startofpacket.DB_MAX_OUTPUT_PORT_TYPE +source_endofpacket <= source_endofpacket.DB_MAX_OUTPUT_PORT_TYPE +source_valid <= sink_valid.DB_MAX_OUTPUT_PORT_TYPE +source_ready => always1.IN1 +source_ready => sink_ready.IN1 +source_addr[0] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[1] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[2] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[3] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[4] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[5] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[6] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[7] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[8] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[9] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[10] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[11] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[12] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[13] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[14] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[15] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[16] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[17] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[18] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_burstwrap[0] <= sink_burstwrap[0].DB_MAX_OUTPUT_PORT_TYPE +source_burstwrap[1] <= sink_burstwrap[1].DB_MAX_OUTPUT_PORT_TYPE +source_burstwrap[2] <= sink_burstwrap[2].DB_MAX_OUTPUT_PORT_TYPE +source_byte_cnt[0] <= source_byte_cnt.DB_MAX_OUTPUT_PORT_TYPE +source_byte_cnt[1] <= source_byte_cnt.DB_MAX_OUTPUT_PORT_TYPE +source_byte_cnt[2] <= source_byte_cnt.DB_MAX_OUTPUT_PORT_TYPE +source_is_compressed <= +source_burstsize[0] <= sink_burstsize[0].DB_MAX_OUTPUT_PORT_TYPE +source_burstsize[1] <= sink_burstsize[1].DB_MAX_OUTPUT_PORT_TYPE +source_burstsize[2] <= sink_burstsize[2].DB_MAX_OUTPUT_PORT_TYPE + + +|lights|nios_system:NiosII|altera_avalon_sc_fifo:hex3_s1_translator_avalon_universal_slave_0_agent_rsp_fifo +clk => csr_readdata[0]~reg0.CLK +clk => csr_readdata[1]~reg0.CLK +clk => csr_readdata[2]~reg0.CLK +clk => csr_readdata[3]~reg0.CLK +clk => csr_readdata[4]~reg0.CLK +clk => csr_readdata[5]~reg0.CLK +clk => csr_readdata[6]~reg0.CLK +clk => csr_readdata[7]~reg0.CLK +clk => csr_readdata[8]~reg0.CLK +clk => csr_readdata[9]~reg0.CLK +clk => csr_readdata[10]~reg0.CLK +clk => csr_readdata[11]~reg0.CLK +clk => csr_readdata[12]~reg0.CLK +clk => csr_readdata[13]~reg0.CLK +clk => csr_readdata[14]~reg0.CLK +clk => csr_readdata[15]~reg0.CLK +clk => csr_readdata[16]~reg0.CLK +clk => csr_readdata[17]~reg0.CLK +clk => csr_readdata[18]~reg0.CLK +clk => csr_readdata[19]~reg0.CLK +clk => csr_readdata[20]~reg0.CLK +clk => csr_readdata[21]~reg0.CLK +clk => csr_readdata[22]~reg0.CLK +clk => csr_readdata[23]~reg0.CLK +clk => csr_readdata[24]~reg0.CLK +clk => csr_readdata[25]~reg0.CLK +clk => csr_readdata[26]~reg0.CLK +clk => csr_readdata[27]~reg0.CLK +clk => csr_readdata[28]~reg0.CLK +clk => csr_readdata[29]~reg0.CLK +clk => csr_readdata[30]~reg0.CLK +clk => csr_readdata[31]~reg0.CLK +clk => mem_used[1].CLK +clk => mem_used[0].CLK +clk => mem[1][0].CLK +clk => mem[1][1].CLK +clk => mem[1][2].CLK +clk => mem[1][3].CLK +clk => mem[1][4].CLK +clk => mem[1][5].CLK +clk => mem[1][6].CLK +clk => mem[1][7].CLK +clk => mem[1][8].CLK +clk => mem[1][9].CLK +clk => mem[1][10].CLK +clk => mem[1][11].CLK +clk => mem[1][12].CLK +clk => mem[1][13].CLK +clk => mem[1][14].CLK +clk => mem[1][15].CLK +clk => mem[1][16].CLK +clk => mem[1][17].CLK +clk => mem[1][18].CLK +clk => mem[1][19].CLK +clk => mem[1][20].CLK +clk => mem[1][21].CLK +clk => mem[1][22].CLK +clk => mem[1][23].CLK +clk => mem[1][24].CLK +clk => mem[1][25].CLK +clk => mem[1][26].CLK +clk => mem[1][27].CLK +clk => mem[1][28].CLK +clk => mem[1][29].CLK +clk => mem[1][30].CLK +clk => mem[1][31].CLK +clk => mem[1][32].CLK +clk => mem[1][33].CLK +clk => mem[1][34].CLK +clk => mem[1][35].CLK +clk => mem[1][36].CLK +clk => mem[1][37].CLK +clk => mem[1][38].CLK +clk => mem[1][39].CLK +clk => mem[1][40].CLK +clk => mem[1][41].CLK +clk => mem[1][42].CLK +clk => mem[1][43].CLK +clk => mem[1][44].CLK +clk => mem[1][45].CLK +clk => mem[1][46].CLK +clk => mem[1][47].CLK +clk => mem[1][48].CLK +clk => mem[1][49].CLK +clk => mem[1][50].CLK +clk => mem[1][51].CLK +clk => mem[1][52].CLK +clk => mem[1][53].CLK +clk => mem[1][54].CLK +clk => mem[1][55].CLK +clk => mem[1][56].CLK +clk => mem[1][57].CLK +clk => mem[1][58].CLK +clk => mem[1][59].CLK +clk => mem[1][60].CLK +clk => mem[1][61].CLK +clk => mem[1][62].CLK +clk => mem[1][63].CLK +clk => mem[1][64].CLK +clk => mem[1][65].CLK +clk => mem[1][66].CLK +clk => mem[1][67].CLK +clk => mem[1][68].CLK +clk => mem[1][69].CLK +clk => mem[1][70].CLK +clk => mem[1][71].CLK +clk => mem[1][72].CLK +clk => mem[1][73].CLK +clk => mem[1][74].CLK +clk => mem[1][75].CLK +clk => mem[1][76].CLK +clk => mem[1][77].CLK +clk => mem[1][78].CLK +clk => mem[1][79].CLK +clk => mem[1][80].CLK +clk => mem[1][81].CLK +clk => mem[1][82].CLK +clk => mem[1][83].CLK +clk => mem[1][84].CLK +clk => mem[1][85].CLK +clk => mem[1][86].CLK +clk => mem[1][87].CLK +clk => mem[1][88].CLK +clk => mem[1][89].CLK +clk => mem[1][90].CLK +clk => mem[1][91].CLK +clk => mem[1][92].CLK +clk => mem[1][93].CLK +clk => mem[1][94].CLK +clk => mem[1][95].CLK +clk => mem[1][96].CLK +clk => mem[1][97].CLK +clk => mem[1][98].CLK +clk => mem[0][0].CLK +clk => mem[0][1].CLK +clk => mem[0][2].CLK +clk => mem[0][3].CLK +clk => mem[0][4].CLK +clk => mem[0][5].CLK +clk => mem[0][6].CLK +clk => mem[0][7].CLK +clk => mem[0][8].CLK +clk => mem[0][9].CLK +clk => mem[0][10].CLK +clk => mem[0][11].CLK +clk => mem[0][12].CLK +clk => mem[0][13].CLK +clk => mem[0][14].CLK +clk => mem[0][15].CLK +clk => mem[0][16].CLK +clk => mem[0][17].CLK +clk => mem[0][18].CLK +clk => mem[0][19].CLK +clk => mem[0][20].CLK +clk => mem[0][21].CLK +clk => mem[0][22].CLK +clk => mem[0][23].CLK +clk => mem[0][24].CLK +clk => mem[0][25].CLK +clk => mem[0][26].CLK +clk => mem[0][27].CLK +clk => mem[0][28].CLK +clk => mem[0][29].CLK +clk => mem[0][30].CLK +clk => mem[0][31].CLK +clk => mem[0][32].CLK +clk => mem[0][33].CLK +clk => mem[0][34].CLK +clk => mem[0][35].CLK +clk => mem[0][36].CLK +clk => mem[0][37].CLK +clk => mem[0][38].CLK +clk => mem[0][39].CLK +clk => mem[0][40].CLK +clk => mem[0][41].CLK +clk => mem[0][42].CLK +clk => mem[0][43].CLK +clk => mem[0][44].CLK +clk => mem[0][45].CLK +clk => mem[0][46].CLK +clk => mem[0][47].CLK +clk => mem[0][48].CLK +clk => mem[0][49].CLK +clk => mem[0][50].CLK +clk => mem[0][51].CLK +clk => mem[0][52].CLK +clk => mem[0][53].CLK +clk => mem[0][54].CLK +clk => mem[0][55].CLK +clk => mem[0][56].CLK +clk => mem[0][57].CLK +clk => mem[0][58].CLK +clk => mem[0][59].CLK +clk => mem[0][60].CLK +clk => mem[0][61].CLK +clk => mem[0][62].CLK +clk => mem[0][63].CLK +clk => mem[0][64].CLK +clk => mem[0][65].CLK +clk => mem[0][66].CLK +clk => mem[0][67].CLK +clk => mem[0][68].CLK +clk => mem[0][69].CLK +clk => mem[0][70].CLK +clk => mem[0][71].CLK +clk => mem[0][72].CLK +clk => mem[0][73].CLK +clk => mem[0][74].CLK +clk => mem[0][75].CLK +clk => mem[0][76].CLK +clk => mem[0][77].CLK +clk => mem[0][78].CLK +clk => mem[0][79].CLK +clk => mem[0][80].CLK +clk => mem[0][81].CLK +clk => mem[0][82].CLK +clk => mem[0][83].CLK +clk => mem[0][84].CLK +clk => mem[0][85].CLK +clk => mem[0][86].CLK +clk => mem[0][87].CLK +clk => mem[0][88].CLK +clk => mem[0][89].CLK +clk => mem[0][90].CLK +clk => mem[0][91].CLK +clk => mem[0][92].CLK +clk => mem[0][93].CLK +clk => mem[0][94].CLK +clk => mem[0][95].CLK +clk => mem[0][96].CLK +clk => mem[0][97].CLK +clk => mem[0][98].CLK +reset => csr_readdata[0]~reg0.ACLR +reset => csr_readdata[1]~reg0.ACLR +reset => csr_readdata[2]~reg0.ACLR +reset => csr_readdata[3]~reg0.ACLR +reset => csr_readdata[4]~reg0.ACLR +reset => csr_readdata[5]~reg0.ACLR +reset => csr_readdata[6]~reg0.ACLR +reset => csr_readdata[7]~reg0.ACLR +reset => csr_readdata[8]~reg0.ACLR +reset => csr_readdata[9]~reg0.ACLR +reset => csr_readdata[10]~reg0.ACLR +reset => csr_readdata[11]~reg0.ACLR +reset => csr_readdata[12]~reg0.ACLR +reset => csr_readdata[13]~reg0.ACLR +reset => csr_readdata[14]~reg0.ACLR +reset => csr_readdata[15]~reg0.ACLR +reset => csr_readdata[16]~reg0.ACLR +reset => csr_readdata[17]~reg0.ACLR +reset => csr_readdata[18]~reg0.ACLR +reset => csr_readdata[19]~reg0.ACLR +reset => csr_readdata[20]~reg0.ACLR +reset => csr_readdata[21]~reg0.ACLR +reset => csr_readdata[22]~reg0.ACLR +reset => csr_readdata[23]~reg0.ACLR +reset => csr_readdata[24]~reg0.ACLR +reset => csr_readdata[25]~reg0.ACLR +reset => csr_readdata[26]~reg0.ACLR +reset => csr_readdata[27]~reg0.ACLR +reset => csr_readdata[28]~reg0.ACLR +reset => csr_readdata[29]~reg0.ACLR +reset => csr_readdata[30]~reg0.ACLR +reset => csr_readdata[31]~reg0.ACLR +reset => mem_used[1].ACLR +reset => mem_used[0].ACLR +reset => mem[1][0].ACLR +reset => mem[1][1].ACLR +reset => mem[1][2].ACLR +reset => mem[1][3].ACLR +reset => mem[1][4].ACLR +reset => mem[1][5].ACLR +reset => mem[1][6].ACLR +reset => mem[1][7].ACLR +reset => mem[1][8].ACLR +reset => mem[1][9].ACLR +reset => mem[1][10].ACLR +reset => mem[1][11].ACLR +reset => mem[1][12].ACLR +reset => mem[1][13].ACLR +reset => mem[1][14].ACLR +reset => mem[1][15].ACLR +reset => mem[1][16].ACLR +reset => mem[1][17].ACLR +reset => mem[1][18].ACLR +reset => mem[1][19].ACLR +reset => mem[1][20].ACLR +reset => mem[1][21].ACLR +reset => mem[1][22].ACLR +reset => mem[1][23].ACLR +reset => mem[1][24].ACLR +reset => mem[1][25].ACLR +reset => mem[1][26].ACLR +reset => mem[1][27].ACLR +reset => mem[1][28].ACLR +reset => mem[1][29].ACLR +reset => mem[1][30].ACLR +reset => mem[1][31].ACLR +reset => mem[1][32].ACLR +reset => mem[1][33].ACLR +reset => mem[1][34].ACLR +reset => mem[1][35].ACLR +reset => mem[1][36].ACLR +reset => mem[1][37].ACLR +reset => mem[1][38].ACLR +reset => mem[1][39].ACLR +reset => mem[1][40].ACLR +reset => mem[1][41].ACLR +reset => mem[1][42].ACLR +reset => mem[1][43].ACLR +reset => mem[1][44].ACLR +reset => mem[1][45].ACLR +reset => mem[1][46].ACLR +reset => mem[1][47].ACLR +reset => mem[1][48].ACLR +reset => mem[1][49].ACLR +reset => mem[1][50].ACLR +reset => mem[1][51].ACLR +reset => mem[1][52].ACLR +reset => mem[1][53].ACLR +reset => mem[1][54].ACLR +reset => mem[1][55].ACLR +reset => mem[1][56].ACLR +reset => mem[1][57].ACLR +reset => mem[1][58].ACLR +reset => mem[1][59].ACLR +reset => mem[1][60].ACLR +reset => mem[1][61].ACLR +reset => mem[1][62].ACLR +reset => mem[1][63].ACLR +reset => mem[1][64].ACLR +reset => mem[1][65].ACLR +reset => mem[1][66].ACLR +reset => mem[1][67].ACLR +reset => mem[1][68].ACLR +reset => mem[1][69].ACLR +reset => mem[1][70].ACLR +reset => mem[1][71].ACLR +reset => mem[1][72].ACLR +reset => mem[1][73].ACLR +reset => mem[1][74].ACLR +reset => mem[1][75].ACLR +reset => mem[1][76].ACLR +reset => mem[1][77].ACLR +reset => mem[1][78].ACLR +reset => mem[1][79].ACLR +reset => mem[1][80].ACLR +reset => mem[1][81].ACLR +reset => mem[1][82].ACLR +reset => mem[1][83].ACLR +reset => mem[1][84].ACLR +reset => mem[1][85].ACLR +reset => mem[1][86].ACLR +reset => mem[1][87].ACLR +reset => mem[1][88].ACLR +reset => mem[1][89].ACLR +reset => mem[1][90].ACLR +reset => mem[1][91].ACLR +reset => mem[1][92].ACLR +reset => mem[1][93].ACLR +reset => mem[1][94].ACLR +reset => mem[1][95].ACLR +reset => mem[1][96].ACLR +reset => mem[1][97].ACLR +reset => mem[1][98].ACLR +reset => mem[0][0].ACLR +reset => mem[0][1].ACLR +reset => mem[0][2].ACLR +reset => mem[0][3].ACLR +reset => mem[0][4].ACLR +reset => mem[0][5].ACLR +reset => mem[0][6].ACLR +reset => mem[0][7].ACLR +reset => mem[0][8].ACLR +reset => mem[0][9].ACLR +reset => mem[0][10].ACLR +reset => mem[0][11].ACLR +reset => mem[0][12].ACLR +reset => mem[0][13].ACLR +reset => mem[0][14].ACLR +reset => mem[0][15].ACLR +reset => mem[0][16].ACLR +reset => mem[0][17].ACLR +reset => mem[0][18].ACLR +reset => mem[0][19].ACLR +reset => mem[0][20].ACLR +reset => mem[0][21].ACLR +reset => mem[0][22].ACLR +reset => mem[0][23].ACLR +reset => mem[0][24].ACLR +reset => mem[0][25].ACLR +reset => mem[0][26].ACLR +reset => mem[0][27].ACLR +reset => mem[0][28].ACLR +reset => mem[0][29].ACLR +reset => mem[0][30].ACLR +reset => mem[0][31].ACLR +reset => mem[0][32].ACLR +reset => mem[0][33].ACLR +reset => mem[0][34].ACLR +reset => mem[0][35].ACLR +reset => mem[0][36].ACLR +reset => mem[0][37].ACLR +reset => mem[0][38].ACLR +reset => mem[0][39].ACLR +reset => mem[0][40].ACLR +reset => mem[0][41].ACLR +reset => mem[0][42].ACLR +reset => mem[0][43].ACLR +reset => mem[0][44].ACLR +reset => mem[0][45].ACLR +reset => mem[0][46].ACLR +reset => mem[0][47].ACLR +reset => mem[0][48].ACLR +reset => mem[0][49].ACLR +reset => mem[0][50].ACLR +reset => mem[0][51].ACLR +reset => mem[0][52].ACLR +reset => mem[0][53].ACLR +reset => mem[0][54].ACLR +reset => mem[0][55].ACLR +reset => mem[0][56].ACLR +reset => mem[0][57].ACLR +reset => mem[0][58].ACLR +reset => mem[0][59].ACLR +reset => mem[0][60].ACLR +reset => mem[0][61].ACLR +reset => mem[0][62].ACLR +reset => mem[0][63].ACLR +reset => mem[0][64].ACLR +reset => mem[0][65].ACLR +reset => mem[0][66].ACLR +reset => mem[0][67].ACLR +reset => mem[0][68].ACLR +reset => mem[0][69].ACLR +reset => mem[0][70].ACLR +reset => mem[0][71].ACLR +reset => mem[0][72].ACLR +reset => mem[0][73].ACLR +reset => mem[0][74].ACLR +reset => mem[0][75].ACLR +reset => mem[0][76].ACLR +reset => mem[0][77].ACLR +reset => mem[0][78].ACLR +reset => mem[0][79].ACLR +reset => mem[0][80].ACLR +reset => mem[0][81].ACLR +reset => mem[0][82].ACLR +reset => mem[0][83].ACLR +reset => mem[0][84].ACLR +reset => mem[0][85].ACLR +reset => mem[0][86].ACLR +reset => mem[0][87].ACLR +reset => mem[0][88].ACLR +reset => mem[0][89].ACLR +reset => mem[0][90].ACLR +reset => mem[0][91].ACLR +reset => mem[0][92].ACLR +reset => mem[0][93].ACLR +reset => mem[0][94].ACLR +reset => mem[0][95].ACLR +reset => mem[0][96].ACLR +reset => mem[0][97].ACLR +reset => mem[0][98].ACLR +in_data[0] => mem.DATAB +in_data[1] => mem.DATAB +in_data[2] => mem.DATAB +in_data[3] => mem.DATAB +in_data[4] => mem.DATAB +in_data[5] => mem.DATAB +in_data[6] => mem.DATAB +in_data[7] => mem.DATAB +in_data[8] => mem.DATAB +in_data[9] => mem.DATAB +in_data[10] => mem.DATAB +in_data[11] => mem.DATAB +in_data[12] => mem.DATAB +in_data[13] => mem.DATAB +in_data[14] => mem.DATAB +in_data[15] => mem.DATAB +in_data[16] => mem.DATAB +in_data[17] => mem.DATAB +in_data[18] => mem.DATAB +in_data[19] => mem.DATAB +in_data[20] => mem.DATAB +in_data[21] => mem.DATAB +in_data[22] => mem.DATAB +in_data[23] => mem.DATAB +in_data[24] => mem.DATAB +in_data[25] => mem.DATAB +in_data[26] => mem.DATAB +in_data[27] => mem.DATAB +in_data[28] => mem.DATAB +in_data[29] => mem.DATAB +in_data[30] => mem.DATAB +in_data[31] => mem.DATAB +in_data[32] => mem.DATAB +in_data[33] => mem.DATAB +in_data[34] => mem.DATAB +in_data[35] => mem.DATAB +in_data[36] => mem.DATAB +in_data[37] => mem.DATAB +in_data[38] => mem.DATAB +in_data[39] => mem.DATAB +in_data[40] => mem.DATAB +in_data[41] => mem.DATAB +in_data[42] => mem.DATAB +in_data[43] => mem.DATAB +in_data[44] => mem.DATAB +in_data[45] => mem.DATAB +in_data[46] => mem.DATAB +in_data[47] => mem.DATAB +in_data[48] => mem.DATAB +in_data[49] => mem.DATAB +in_data[50] => mem.DATAB +in_data[51] => mem.DATAB +in_data[52] => mem.DATAB +in_data[53] => mem.DATAB +in_data[54] => mem.DATAB +in_data[55] => mem.DATAB +in_data[56] => mem.DATAB +in_data[57] => mem.DATAB +in_data[58] => mem.DATAB +in_data[59] => mem.DATAB +in_data[60] => mem.DATAB +in_data[61] => mem.DATAB +in_data[62] => mem.DATAB +in_data[63] => mem.DATAB +in_data[64] => mem.DATAB +in_data[65] => mem.DATAB +in_data[66] => mem.DATAB +in_data[67] => mem.DATAB +in_data[68] => mem.DATAB +in_data[69] => mem.DATAB +in_data[70] => mem.DATAB +in_data[71] => mem.DATAB +in_data[72] => mem.DATAB +in_data[73] => mem.DATAB +in_data[74] => mem.DATAB +in_data[75] => mem.DATAB +in_data[76] => mem.DATAB +in_data[77] => mem.DATAB +in_data[78] => mem.DATAB +in_data[79] => mem.DATAB +in_data[80] => mem.DATAB +in_data[81] => mem.DATAB +in_data[82] => mem.DATAB +in_data[83] => mem.DATAB +in_data[84] => mem.DATAB +in_data[85] => mem.DATAB +in_data[86] => mem.DATAB +in_data[87] => mem.DATAB +in_data[88] => mem.DATAB +in_data[89] => mem.DATAB +in_data[90] => mem.DATAB +in_data[91] => mem.DATAB +in_data[92] => mem.DATAB +in_data[93] => mem.DATAB +in_data[94] => mem.DATAB +in_data[95] => mem.DATAB +in_data[96] => mem.DATAB +in_valid => write.IN1 +in_startofpacket => mem.DATAB +in_endofpacket => mem.DATAB +in_empty[0] => ~NO_FANOUT~ +in_error[0] => out_error[0].DATAIN +in_error[0] => out_empty[0].DATAIN +in_channel[0] => out_channel[0].DATAIN +in_ready <= mem_used[1].DB_MAX_OUTPUT_PORT_TYPE +out_data[0] <= mem[0][0].DB_MAX_OUTPUT_PORT_TYPE +out_data[1] <= mem[0][1].DB_MAX_OUTPUT_PORT_TYPE +out_data[2] <= mem[0][2].DB_MAX_OUTPUT_PORT_TYPE +out_data[3] <= mem[0][3].DB_MAX_OUTPUT_PORT_TYPE +out_data[4] <= mem[0][4].DB_MAX_OUTPUT_PORT_TYPE +out_data[5] <= mem[0][5].DB_MAX_OUTPUT_PORT_TYPE +out_data[6] <= mem[0][6].DB_MAX_OUTPUT_PORT_TYPE +out_data[7] <= mem[0][7].DB_MAX_OUTPUT_PORT_TYPE +out_data[8] <= mem[0][8].DB_MAX_OUTPUT_PORT_TYPE +out_data[9] <= mem[0][9].DB_MAX_OUTPUT_PORT_TYPE +out_data[10] <= mem[0][10].DB_MAX_OUTPUT_PORT_TYPE +out_data[11] <= mem[0][11].DB_MAX_OUTPUT_PORT_TYPE +out_data[12] <= mem[0][12].DB_MAX_OUTPUT_PORT_TYPE +out_data[13] <= mem[0][13].DB_MAX_OUTPUT_PORT_TYPE +out_data[14] <= mem[0][14].DB_MAX_OUTPUT_PORT_TYPE +out_data[15] <= mem[0][15].DB_MAX_OUTPUT_PORT_TYPE +out_data[16] <= mem[0][16].DB_MAX_OUTPUT_PORT_TYPE +out_data[17] <= mem[0][17].DB_MAX_OUTPUT_PORT_TYPE +out_data[18] <= mem[0][18].DB_MAX_OUTPUT_PORT_TYPE +out_data[19] <= mem[0][19].DB_MAX_OUTPUT_PORT_TYPE +out_data[20] <= mem[0][20].DB_MAX_OUTPUT_PORT_TYPE +out_data[21] <= mem[0][21].DB_MAX_OUTPUT_PORT_TYPE +out_data[22] <= mem[0][22].DB_MAX_OUTPUT_PORT_TYPE +out_data[23] <= mem[0][23].DB_MAX_OUTPUT_PORT_TYPE +out_data[24] <= mem[0][24].DB_MAX_OUTPUT_PORT_TYPE +out_data[25] <= mem[0][25].DB_MAX_OUTPUT_PORT_TYPE +out_data[26] <= mem[0][26].DB_MAX_OUTPUT_PORT_TYPE +out_data[27] <= mem[0][27].DB_MAX_OUTPUT_PORT_TYPE +out_data[28] <= mem[0][28].DB_MAX_OUTPUT_PORT_TYPE +out_data[29] <= mem[0][29].DB_MAX_OUTPUT_PORT_TYPE +out_data[30] <= mem[0][30].DB_MAX_OUTPUT_PORT_TYPE +out_data[31] <= mem[0][31].DB_MAX_OUTPUT_PORT_TYPE +out_data[32] <= mem[0][32].DB_MAX_OUTPUT_PORT_TYPE +out_data[33] <= mem[0][33].DB_MAX_OUTPUT_PORT_TYPE +out_data[34] <= mem[0][34].DB_MAX_OUTPUT_PORT_TYPE +out_data[35] <= mem[0][35].DB_MAX_OUTPUT_PORT_TYPE +out_data[36] <= mem[0][36].DB_MAX_OUTPUT_PORT_TYPE +out_data[37] <= mem[0][37].DB_MAX_OUTPUT_PORT_TYPE +out_data[38] <= mem[0][38].DB_MAX_OUTPUT_PORT_TYPE +out_data[39] <= mem[0][39].DB_MAX_OUTPUT_PORT_TYPE +out_data[40] <= mem[0][40].DB_MAX_OUTPUT_PORT_TYPE +out_data[41] <= mem[0][41].DB_MAX_OUTPUT_PORT_TYPE +out_data[42] <= mem[0][42].DB_MAX_OUTPUT_PORT_TYPE +out_data[43] <= mem[0][43].DB_MAX_OUTPUT_PORT_TYPE +out_data[44] <= mem[0][44].DB_MAX_OUTPUT_PORT_TYPE +out_data[45] <= mem[0][45].DB_MAX_OUTPUT_PORT_TYPE +out_data[46] <= mem[0][46].DB_MAX_OUTPUT_PORT_TYPE +out_data[47] <= mem[0][47].DB_MAX_OUTPUT_PORT_TYPE +out_data[48] <= mem[0][48].DB_MAX_OUTPUT_PORT_TYPE +out_data[49] <= mem[0][49].DB_MAX_OUTPUT_PORT_TYPE +out_data[50] <= mem[0][50].DB_MAX_OUTPUT_PORT_TYPE +out_data[51] <= mem[0][51].DB_MAX_OUTPUT_PORT_TYPE +out_data[52] <= mem[0][52].DB_MAX_OUTPUT_PORT_TYPE +out_data[53] <= mem[0][53].DB_MAX_OUTPUT_PORT_TYPE +out_data[54] <= mem[0][54].DB_MAX_OUTPUT_PORT_TYPE +out_data[55] <= mem[0][55].DB_MAX_OUTPUT_PORT_TYPE +out_data[56] <= mem[0][56].DB_MAX_OUTPUT_PORT_TYPE +out_data[57] <= mem[0][57].DB_MAX_OUTPUT_PORT_TYPE +out_data[58] <= mem[0][58].DB_MAX_OUTPUT_PORT_TYPE +out_data[59] <= mem[0][59].DB_MAX_OUTPUT_PORT_TYPE +out_data[60] <= mem[0][60].DB_MAX_OUTPUT_PORT_TYPE +out_data[61] <= mem[0][61].DB_MAX_OUTPUT_PORT_TYPE +out_data[62] <= mem[0][62].DB_MAX_OUTPUT_PORT_TYPE +out_data[63] <= mem[0][63].DB_MAX_OUTPUT_PORT_TYPE +out_data[64] <= mem[0][64].DB_MAX_OUTPUT_PORT_TYPE +out_data[65] <= mem[0][65].DB_MAX_OUTPUT_PORT_TYPE +out_data[66] <= mem[0][66].DB_MAX_OUTPUT_PORT_TYPE +out_data[67] <= mem[0][67].DB_MAX_OUTPUT_PORT_TYPE +out_data[68] <= mem[0][68].DB_MAX_OUTPUT_PORT_TYPE +out_data[69] <= mem[0][69].DB_MAX_OUTPUT_PORT_TYPE +out_data[70] <= mem[0][70].DB_MAX_OUTPUT_PORT_TYPE +out_data[71] <= mem[0][71].DB_MAX_OUTPUT_PORT_TYPE +out_data[72] <= mem[0][72].DB_MAX_OUTPUT_PORT_TYPE +out_data[73] <= mem[0][73].DB_MAX_OUTPUT_PORT_TYPE +out_data[74] <= mem[0][74].DB_MAX_OUTPUT_PORT_TYPE +out_data[75] <= mem[0][75].DB_MAX_OUTPUT_PORT_TYPE +out_data[76] <= mem[0][76].DB_MAX_OUTPUT_PORT_TYPE +out_data[77] <= mem[0][77].DB_MAX_OUTPUT_PORT_TYPE +out_data[78] <= mem[0][78].DB_MAX_OUTPUT_PORT_TYPE +out_data[79] <= mem[0][79].DB_MAX_OUTPUT_PORT_TYPE +out_data[80] <= mem[0][80].DB_MAX_OUTPUT_PORT_TYPE +out_data[81] <= mem[0][81].DB_MAX_OUTPUT_PORT_TYPE +out_data[82] <= mem[0][82].DB_MAX_OUTPUT_PORT_TYPE +out_data[83] <= mem[0][83].DB_MAX_OUTPUT_PORT_TYPE +out_data[84] <= mem[0][84].DB_MAX_OUTPUT_PORT_TYPE +out_data[85] <= mem[0][85].DB_MAX_OUTPUT_PORT_TYPE +out_data[86] <= mem[0][86].DB_MAX_OUTPUT_PORT_TYPE +out_data[87] <= mem[0][87].DB_MAX_OUTPUT_PORT_TYPE +out_data[88] <= mem[0][88].DB_MAX_OUTPUT_PORT_TYPE +out_data[89] <= mem[0][89].DB_MAX_OUTPUT_PORT_TYPE +out_data[90] <= mem[0][90].DB_MAX_OUTPUT_PORT_TYPE +out_data[91] <= mem[0][91].DB_MAX_OUTPUT_PORT_TYPE +out_data[92] <= mem[0][92].DB_MAX_OUTPUT_PORT_TYPE +out_data[93] <= mem[0][93].DB_MAX_OUTPUT_PORT_TYPE +out_data[94] <= mem[0][94].DB_MAX_OUTPUT_PORT_TYPE +out_data[95] <= mem[0][95].DB_MAX_OUTPUT_PORT_TYPE +out_data[96] <= mem[0][96].DB_MAX_OUTPUT_PORT_TYPE +out_valid <= mem_used[0].DB_MAX_OUTPUT_PORT_TYPE +out_startofpacket <= mem[0][98].DB_MAX_OUTPUT_PORT_TYPE +out_endofpacket <= mem[0][97].DB_MAX_OUTPUT_PORT_TYPE +out_empty[0] <= in_error[0].DB_MAX_OUTPUT_PORT_TYPE +out_error[0] <= in_error[0].DB_MAX_OUTPUT_PORT_TYPE +out_channel[0] <= in_channel[0].DB_MAX_OUTPUT_PORT_TYPE +out_ready => internal_out_ready.IN1 +csr_address[0] => ~NO_FANOUT~ +csr_address[1] => ~NO_FANOUT~ +csr_write => ~NO_FANOUT~ +csr_read => csr_readdata[31]~reg0.ENA +csr_read => csr_readdata[30]~reg0.ENA +csr_read => csr_readdata[29]~reg0.ENA +csr_read => csr_readdata[28]~reg0.ENA +csr_read => csr_readdata[27]~reg0.ENA +csr_read => csr_readdata[26]~reg0.ENA +csr_read => csr_readdata[25]~reg0.ENA +csr_read => csr_readdata[24]~reg0.ENA +csr_read => csr_readdata[23]~reg0.ENA +csr_read => csr_readdata[22]~reg0.ENA +csr_read => csr_readdata[21]~reg0.ENA +csr_read => csr_readdata[20]~reg0.ENA +csr_read => csr_readdata[19]~reg0.ENA +csr_read => csr_readdata[18]~reg0.ENA +csr_read => csr_readdata[17]~reg0.ENA +csr_read => csr_readdata[16]~reg0.ENA +csr_read => csr_readdata[15]~reg0.ENA +csr_read => csr_readdata[14]~reg0.ENA +csr_read => csr_readdata[13]~reg0.ENA +csr_read => csr_readdata[12]~reg0.ENA +csr_read => csr_readdata[11]~reg0.ENA +csr_read => csr_readdata[10]~reg0.ENA +csr_read => csr_readdata[9]~reg0.ENA +csr_read => csr_readdata[8]~reg0.ENA +csr_read => csr_readdata[7]~reg0.ENA +csr_read => csr_readdata[6]~reg0.ENA +csr_read => csr_readdata[5]~reg0.ENA +csr_read => csr_readdata[4]~reg0.ENA +csr_read => csr_readdata[3]~reg0.ENA +csr_read => csr_readdata[2]~reg0.ENA +csr_read => csr_readdata[1]~reg0.ENA +csr_read => csr_readdata[0]~reg0.ENA +csr_writedata[0] => ~NO_FANOUT~ +csr_writedata[1] => ~NO_FANOUT~ +csr_writedata[2] => ~NO_FANOUT~ +csr_writedata[3] => ~NO_FANOUT~ +csr_writedata[4] => ~NO_FANOUT~ +csr_writedata[5] => ~NO_FANOUT~ +csr_writedata[6] => ~NO_FANOUT~ +csr_writedata[7] => ~NO_FANOUT~ +csr_writedata[8] => ~NO_FANOUT~ +csr_writedata[9] => ~NO_FANOUT~ +csr_writedata[10] => ~NO_FANOUT~ +csr_writedata[11] => ~NO_FANOUT~ +csr_writedata[12] => ~NO_FANOUT~ +csr_writedata[13] => ~NO_FANOUT~ +csr_writedata[14] => ~NO_FANOUT~ +csr_writedata[15] => ~NO_FANOUT~ +csr_writedata[16] => ~NO_FANOUT~ +csr_writedata[17] => ~NO_FANOUT~ +csr_writedata[18] => ~NO_FANOUT~ +csr_writedata[19] => ~NO_FANOUT~ +csr_writedata[20] => ~NO_FANOUT~ +csr_writedata[21] => ~NO_FANOUT~ +csr_writedata[22] => ~NO_FANOUT~ +csr_writedata[23] => ~NO_FANOUT~ +csr_writedata[24] => ~NO_FANOUT~ +csr_writedata[25] => ~NO_FANOUT~ +csr_writedata[26] => ~NO_FANOUT~ +csr_writedata[27] => ~NO_FANOUT~ +csr_writedata[28] => ~NO_FANOUT~ +csr_writedata[29] => ~NO_FANOUT~ +csr_writedata[30] => ~NO_FANOUT~ +csr_writedata[31] => ~NO_FANOUT~ +csr_readdata[0] <= csr_readdata[0]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[1] <= csr_readdata[1]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[2] <= csr_readdata[2]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[3] <= csr_readdata[3]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[4] <= csr_readdata[4]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[5] <= csr_readdata[5]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[6] <= csr_readdata[6]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[7] <= csr_readdata[7]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[8] <= csr_readdata[8]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[9] <= csr_readdata[9]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[10] <= csr_readdata[10]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[11] <= csr_readdata[11]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[12] <= csr_readdata[12]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[13] <= csr_readdata[13]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[14] <= csr_readdata[14]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[15] <= csr_readdata[15]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[16] <= csr_readdata[16]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[17] <= csr_readdata[17]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[18] <= csr_readdata[18]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[19] <= csr_readdata[19]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[20] <= csr_readdata[20]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[21] <= csr_readdata[21]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[22] <= csr_readdata[22]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[23] <= csr_readdata[23]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[24] <= csr_readdata[24]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[25] <= csr_readdata[25]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[26] <= csr_readdata[26]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[27] <= csr_readdata[27]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[28] <= csr_readdata[28]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[29] <= csr_readdata[29]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[30] <= csr_readdata[30]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[31] <= csr_readdata[31]~reg0.DB_MAX_OUTPUT_PORT_TYPE +almost_full_data <= +almost_empty_data <= + + +|lights|nios_system:NiosII|altera_merlin_slave_agent:hex4_s1_translator_avalon_universal_slave_0_agent +clk => clk.IN1 +reset => reset.IN1 +m0_address[0] <= +m0_address[1] <= +m0_address[2] <= cp_data[38].DB_MAX_OUTPUT_PORT_TYPE +m0_address[3] <= cp_data[39].DB_MAX_OUTPUT_PORT_TYPE +m0_address[4] <= cp_data[40].DB_MAX_OUTPUT_PORT_TYPE +m0_address[5] <= cp_data[41].DB_MAX_OUTPUT_PORT_TYPE +m0_address[6] <= cp_data[42].DB_MAX_OUTPUT_PORT_TYPE +m0_address[7] <= cp_data[43].DB_MAX_OUTPUT_PORT_TYPE +m0_address[8] <= cp_data[44].DB_MAX_OUTPUT_PORT_TYPE +m0_address[9] <= cp_data[45].DB_MAX_OUTPUT_PORT_TYPE +m0_address[10] <= cp_data[46].DB_MAX_OUTPUT_PORT_TYPE +m0_address[11] <= cp_data[47].DB_MAX_OUTPUT_PORT_TYPE +m0_address[12] <= cp_data[48].DB_MAX_OUTPUT_PORT_TYPE +m0_address[13] <= cp_data[49].DB_MAX_OUTPUT_PORT_TYPE +m0_address[14] <= cp_data[50].DB_MAX_OUTPUT_PORT_TYPE +m0_address[15] <= cp_data[51].DB_MAX_OUTPUT_PORT_TYPE +m0_address[16] <= cp_data[52].DB_MAX_OUTPUT_PORT_TYPE +m0_address[17] <= cp_data[53].DB_MAX_OUTPUT_PORT_TYPE +m0_address[18] <= cp_data[54].DB_MAX_OUTPUT_PORT_TYPE +m0_burstcount[0] <= m0_burstcount.DB_MAX_OUTPUT_PORT_TYPE +m0_burstcount[1] <= m0_burstcount.DB_MAX_OUTPUT_PORT_TYPE +m0_burstcount[2] <= m0_burstcount.DB_MAX_OUTPUT_PORT_TYPE +m0_byteenable[0] <= cp_data[32].DB_MAX_OUTPUT_PORT_TYPE +m0_byteenable[1] <= cp_data[33].DB_MAX_OUTPUT_PORT_TYPE +m0_byteenable[2] <= cp_data[34].DB_MAX_OUTPUT_PORT_TYPE +m0_byteenable[3] <= cp_data[35].DB_MAX_OUTPUT_PORT_TYPE +m0_read <= m0_read.DB_MAX_OUTPUT_PORT_TYPE +m0_readdata[0] => rdata_fifo_src_data[0].DATAIN +m0_readdata[1] => rdata_fifo_src_data[1].DATAIN +m0_readdata[2] => rdata_fifo_src_data[2].DATAIN +m0_readdata[3] => rdata_fifo_src_data[3].DATAIN +m0_readdata[4] => rdata_fifo_src_data[4].DATAIN +m0_readdata[5] => rdata_fifo_src_data[5].DATAIN +m0_readdata[6] => rdata_fifo_src_data[6].DATAIN +m0_readdata[7] => rdata_fifo_src_data[7].DATAIN +m0_readdata[8] => rdata_fifo_src_data[8].DATAIN +m0_readdata[9] => rdata_fifo_src_data[9].DATAIN +m0_readdata[10] => rdata_fifo_src_data[10].DATAIN +m0_readdata[11] => rdata_fifo_src_data[11].DATAIN +m0_readdata[12] => rdata_fifo_src_data[12].DATAIN +m0_readdata[13] => rdata_fifo_src_data[13].DATAIN +m0_readdata[14] => rdata_fifo_src_data[14].DATAIN +m0_readdata[15] => rdata_fifo_src_data[15].DATAIN +m0_readdata[16] => rdata_fifo_src_data[16].DATAIN +m0_readdata[17] => rdata_fifo_src_data[17].DATAIN +m0_readdata[18] => rdata_fifo_src_data[18].DATAIN +m0_readdata[19] => rdata_fifo_src_data[19].DATAIN +m0_readdata[20] => rdata_fifo_src_data[20].DATAIN +m0_readdata[21] => rdata_fifo_src_data[21].DATAIN +m0_readdata[22] => rdata_fifo_src_data[22].DATAIN +m0_readdata[23] => rdata_fifo_src_data[23].DATAIN +m0_readdata[24] => rdata_fifo_src_data[24].DATAIN +m0_readdata[25] => rdata_fifo_src_data[25].DATAIN +m0_readdata[26] => rdata_fifo_src_data[26].DATAIN +m0_readdata[27] => rdata_fifo_src_data[27].DATAIN +m0_readdata[28] => rdata_fifo_src_data[28].DATAIN +m0_readdata[29] => rdata_fifo_src_data[29].DATAIN +m0_readdata[30] => rdata_fifo_src_data[30].DATAIN +m0_readdata[31] => rdata_fifo_src_data[31].DATAIN +m0_waitrequest => cp_ready.IN0 +m0_write <= m0_write.DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[0] <= cp_data[0].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[1] <= cp_data[1].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[2] <= cp_data[2].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[3] <= cp_data[3].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[4] <= cp_data[4].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[5] <= cp_data[5].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[6] <= cp_data[6].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[7] <= cp_data[7].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[8] <= cp_data[8].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[9] <= cp_data[9].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[10] <= cp_data[10].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[11] <= cp_data[11].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[12] <= cp_data[12].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[13] <= cp_data[13].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[14] <= cp_data[14].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[15] <= cp_data[15].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[16] <= cp_data[16].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[17] <= cp_data[17].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[18] <= cp_data[18].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[19] <= cp_data[19].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[20] <= cp_data[20].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[21] <= cp_data[21].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[22] <= cp_data[22].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[23] <= cp_data[23].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[24] <= cp_data[24].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[25] <= cp_data[25].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[26] <= cp_data[26].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[27] <= cp_data[27].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[28] <= cp_data[28].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[29] <= cp_data[29].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[30] <= cp_data[30].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[31] <= cp_data[31].DB_MAX_OUTPUT_PORT_TYPE +m0_readdatavalid => rdata_fifo_src_valid.IN0 +m0_debugaccess <= cp_data[87].DB_MAX_OUTPUT_PORT_TYPE +m0_lock <= m0_lock.DB_MAX_OUTPUT_PORT_TYPE +m0_response[0] => rdata_fifo_src_data[32].DATAIN +m0_response[1] => rdata_fifo_src_data[33].DATAIN +m0_writeresponserequest <= m0_writeresponserequest.DB_MAX_OUTPUT_PORT_TYPE +m0_writeresponsevalid => rdata_fifo_src_valid.IN1 +rf_source_data[0] <= +rf_source_data[1] <= +rf_source_data[2] <= +rf_source_data[3] <= +rf_source_data[4] <= +rf_source_data[5] <= +rf_source_data[6] <= +rf_source_data[7] <= +rf_source_data[8] <= +rf_source_data[9] <= +rf_source_data[10] <= +rf_source_data[11] <= +rf_source_data[12] <= +rf_source_data[13] <= +rf_source_data[14] <= +rf_source_data[15] <= +rf_source_data[16] <= +rf_source_data[17] <= +rf_source_data[18] <= +rf_source_data[19] <= +rf_source_data[20] <= +rf_source_data[21] <= +rf_source_data[22] <= +rf_source_data[23] <= +rf_source_data[24] <= +rf_source_data[25] <= +rf_source_data[26] <= +rf_source_data[27] <= +rf_source_data[28] <= +rf_source_data[29] <= +rf_source_data[30] <= +rf_source_data[31] <= +rf_source_data[32] <= cp_data[32].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[33] <= cp_data[33].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[34] <= cp_data[34].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[35] <= cp_data[35].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[36] <= cp_data[36].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[37] <= cp_data[37].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[38] <= cp_data[38].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[39] <= cp_data[39].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[40] <= cp_data[40].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[41] <= cp_data[41].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[42] <= cp_data[42].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[43] <= cp_data[43].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[44] <= cp_data[44].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[45] <= cp_data[45].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[46] <= cp_data[46].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[47] <= cp_data[47].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[48] <= cp_data[48].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[49] <= cp_data[49].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[50] <= cp_data[50].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[51] <= cp_data[51].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[52] <= cp_data[52].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[53] <= cp_data[53].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[54] <= cp_data[54].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[55] <= cp_data[55].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[56] <= cp_data[56].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[57] <= cp_data[57].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[58] <= cp_data[58].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[59] <= cp_data[59].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[60] <= cp_data[60].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[61] <= cp_data[61].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[62] <= cp_data[62].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[63] <= cp_data[63].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[64] <= cp_data[64].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[65] <= cp_data[65].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[66] <= cp_data[66].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[67] <= cp_data[67].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[68] <= cp_data[68].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[69] <= cp_data[69].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[70] <= cp_data[70].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[71] <= cp_data[71].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[72] <= cp_data[72].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[73] <= cp_data[73].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[74] <= cp_data[74].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[75] <= cp_data[75].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[76] <= cp_data[76].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[77] <= cp_data[77].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[78] <= cp_data[78].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[79] <= cp_data[79].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[80] <= cp_data[80].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[81] <= cp_data[81].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[82] <= cp_data[82].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[83] <= cp_data[83].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[84] <= cp_data[84].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[85] <= cp_data[85].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[86] <= cp_data[86].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[87] <= cp_data[87].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[88] <= +rf_source_data[89] <= +rf_source_data[90] <= cp_data[90].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[91] <= cp_data[91].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[92] <= cp_data[92].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[93] <= cp_data[93].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[94] <= cp_data[94].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[95] <= cp_data[95].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[96] <= nonposted_write_endofpacket.DB_MAX_OUTPUT_PORT_TYPE +rf_source_valid <= rf_source_valid.DB_MAX_OUTPUT_PORT_TYPE +rf_source_startofpacket <= cp_startofpacket.DB_MAX_OUTPUT_PORT_TYPE +rf_source_endofpacket <= cp_endofpacket.DB_MAX_OUTPUT_PORT_TYPE +rf_source_ready => cp_ready.IN1 +rf_source_ready => m0_write.IN1 +rf_source_ready => m0_lock.IN1 +rf_source_ready => rf_source_valid.IN1 +rf_source_ready => m0_read.IN1 +rf_sink_data[0] => ~NO_FANOUT~ +rf_sink_data[1] => ~NO_FANOUT~ +rf_sink_data[2] => ~NO_FANOUT~ +rf_sink_data[3] => ~NO_FANOUT~ +rf_sink_data[4] => ~NO_FANOUT~ +rf_sink_data[5] => ~NO_FANOUT~ +rf_sink_data[6] => ~NO_FANOUT~ +rf_sink_data[7] => ~NO_FANOUT~ +rf_sink_data[8] => ~NO_FANOUT~ +rf_sink_data[9] => ~NO_FANOUT~ +rf_sink_data[10] => ~NO_FANOUT~ +rf_sink_data[11] => ~NO_FANOUT~ +rf_sink_data[12] => ~NO_FANOUT~ +rf_sink_data[13] => ~NO_FANOUT~ +rf_sink_data[14] => ~NO_FANOUT~ +rf_sink_data[15] => ~NO_FANOUT~ +rf_sink_data[16] => ~NO_FANOUT~ +rf_sink_data[17] => ~NO_FANOUT~ +rf_sink_data[18] => ~NO_FANOUT~ +rf_sink_data[19] => ~NO_FANOUT~ +rf_sink_data[20] => ~NO_FANOUT~ +rf_sink_data[21] => ~NO_FANOUT~ +rf_sink_data[22] => ~NO_FANOUT~ +rf_sink_data[23] => ~NO_FANOUT~ +rf_sink_data[24] => ~NO_FANOUT~ +rf_sink_data[25] => ~NO_FANOUT~ +rf_sink_data[26] => ~NO_FANOUT~ +rf_sink_data[27] => ~NO_FANOUT~ +rf_sink_data[28] => ~NO_FANOUT~ +rf_sink_data[29] => ~NO_FANOUT~ +rf_sink_data[30] => ~NO_FANOUT~ +rf_sink_data[31] => ~NO_FANOUT~ +rf_sink_data[32] => rp_data[32].DATAIN +rf_sink_data[33] => rp_data[33].DATAIN +rf_sink_data[34] => rp_data[34].DATAIN +rf_sink_data[35] => rp_data[35].DATAIN +rf_sink_data[36] => rf_sink_addr[0].IN1 +rf_sink_data[37] => rf_sink_addr[1].IN1 +rf_sink_data[38] => rf_sink_addr[2].IN1 +rf_sink_data[39] => rf_sink_addr[3].IN1 +rf_sink_data[40] => rf_sink_addr[4].IN1 +rf_sink_data[41] => rf_sink_addr[5].IN1 +rf_sink_data[42] => rf_sink_addr[6].IN1 +rf_sink_data[43] => rf_sink_addr[7].IN1 +rf_sink_data[44] => rf_sink_addr[8].IN1 +rf_sink_data[45] => rf_sink_addr[9].IN1 +rf_sink_data[46] => rf_sink_addr[10].IN1 +rf_sink_data[47] => rf_sink_addr[11].IN1 +rf_sink_data[48] => rf_sink_addr[12].IN1 +rf_sink_data[49] => rf_sink_addr[13].IN1 +rf_sink_data[50] => rf_sink_addr[14].IN1 +rf_sink_data[51] => rf_sink_addr[15].IN1 +rf_sink_data[52] => rf_sink_addr[16].IN1 +rf_sink_data[53] => rf_sink_addr[17].IN1 +rf_sink_data[54] => rf_sink_addr[18].IN1 +rf_sink_data[55] => rf_sink_compressed.IN1 +rf_sink_data[56] => rp_data[56].DATAIN +rf_sink_data[57] => comb.OUTPUTSELECT +rf_sink_data[57] => rp_data[57].DATAIN +rf_sink_data[58] => rp_data.IN0 +rf_sink_data[59] => rp_data[59].DATAIN +rf_sink_data[60] => rp_data[60].DATAIN +rf_sink_data[61] => rf_sink_byte_cnt[0].IN1 +rf_sink_data[62] => rf_sink_byte_cnt[1].IN1 +rf_sink_data[63] => rf_sink_byte_cnt[2].IN1 +rf_sink_data[64] => rf_sink_burstwrap[0].IN1 +rf_sink_data[65] => rf_sink_burstwrap[1].IN1 +rf_sink_data[66] => rf_sink_burstwrap[2].IN1 +rf_sink_data[67] => rf_sink_burstsize[0].IN1 +rf_sink_data[68] => rf_sink_burstsize[1].IN1 +rf_sink_data[69] => rf_sink_burstsize[2].IN1 +rf_sink_data[70] => rp_data[70].DATAIN +rf_sink_data[71] => rp_data[71].DATAIN +rf_sink_data[72] => rp_data[72].DATAIN +rf_sink_data[73] => rp_data[73].DATAIN +rf_sink_data[74] => rp_data[74].DATAIN +rf_sink_data[75] => rp_data[75].DATAIN +rf_sink_data[76] => rp_data[81].DATAIN +rf_sink_data[77] => rp_data[82].DATAIN +rf_sink_data[78] => rp_data[83].DATAIN +rf_sink_data[79] => rp_data[84].DATAIN +rf_sink_data[80] => rp_data[85].DATAIN +rf_sink_data[81] => rp_data[76].DATAIN +rf_sink_data[82] => rp_data[77].DATAIN +rf_sink_data[83] => rp_data[78].DATAIN +rf_sink_data[84] => rp_data[79].DATAIN +rf_sink_data[85] => rp_data[80].DATAIN +rf_sink_data[86] => rp_data[86].DATAIN +rf_sink_data[87] => rp_data[87].DATAIN +rf_sink_data[88] => rp_data[88].DATAIN +rf_sink_data[89] => rp_data[89].DATAIN +rf_sink_data[90] => rp_data[90].DATAIN +rf_sink_data[91] => rp_data[91].DATAIN +rf_sink_data[92] => rp_data[92].DATAIN +rf_sink_data[93] => rp_data[93].DATAIN +rf_sink_data[94] => ~NO_FANOUT~ +rf_sink_data[95] => ~NO_FANOUT~ +rf_sink_data[96] => rdata_fifo_sink_ready.IN0 +rf_sink_data[96] => comb.IN0 +rf_sink_valid => rdata_fifo_sink_ready.IN1 +rf_sink_valid => comb.IN1 +rf_sink_startofpacket => comb.DATAA +rf_sink_endofpacket => rf_sink_endofpacket.IN1 +rf_sink_ready <= altera_merlin_burst_uncompressor:uncompressor.sink_ready +rdata_fifo_src_data[0] <= m0_readdata[0].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[1] <= m0_readdata[1].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[2] <= m0_readdata[2].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[3] <= m0_readdata[3].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[4] <= m0_readdata[4].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[5] <= m0_readdata[5].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[6] <= m0_readdata[6].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[7] <= m0_readdata[7].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[8] <= m0_readdata[8].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[9] <= m0_readdata[9].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[10] <= m0_readdata[10].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[11] <= m0_readdata[11].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[12] <= m0_readdata[12].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[13] <= m0_readdata[13].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[14] <= m0_readdata[14].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[15] <= m0_readdata[15].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[16] <= m0_readdata[16].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[17] <= m0_readdata[17].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[18] <= m0_readdata[18].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[19] <= m0_readdata[19].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[20] <= m0_readdata[20].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[21] <= m0_readdata[21].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[22] <= m0_readdata[22].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[23] <= m0_readdata[23].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[24] <= m0_readdata[24].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[25] <= m0_readdata[25].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[26] <= m0_readdata[26].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[27] <= m0_readdata[27].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[28] <= m0_readdata[28].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[29] <= m0_readdata[29].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[30] <= m0_readdata[30].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[31] <= m0_readdata[31].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[32] <= m0_response[0].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[33] <= m0_response[1].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_valid <= rdata_fifo_src_valid.DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_ready => ~NO_FANOUT~ +rdata_fifo_sink_data[0] => rp_data[0].DATAIN +rdata_fifo_sink_data[1] => rp_data[1].DATAIN +rdata_fifo_sink_data[2] => rp_data[2].DATAIN +rdata_fifo_sink_data[3] => rp_data[3].DATAIN +rdata_fifo_sink_data[4] => rp_data[4].DATAIN +rdata_fifo_sink_data[5] => rp_data[5].DATAIN +rdata_fifo_sink_data[6] => rp_data[6].DATAIN +rdata_fifo_sink_data[7] => rp_data[7].DATAIN +rdata_fifo_sink_data[8] => rp_data[8].DATAIN +rdata_fifo_sink_data[9] => rp_data[9].DATAIN +rdata_fifo_sink_data[10] => rp_data[10].DATAIN +rdata_fifo_sink_data[11] => rp_data[11].DATAIN +rdata_fifo_sink_data[12] => rp_data[12].DATAIN +rdata_fifo_sink_data[13] => rp_data[13].DATAIN +rdata_fifo_sink_data[14] => rp_data[14].DATAIN +rdata_fifo_sink_data[15] => rp_data[15].DATAIN +rdata_fifo_sink_data[16] => rp_data[16].DATAIN +rdata_fifo_sink_data[17] => rp_data[17].DATAIN +rdata_fifo_sink_data[18] => rp_data[18].DATAIN +rdata_fifo_sink_data[19] => rp_data[19].DATAIN +rdata_fifo_sink_data[20] => rp_data[20].DATAIN +rdata_fifo_sink_data[21] => rp_data[21].DATAIN +rdata_fifo_sink_data[22] => rp_data[22].DATAIN +rdata_fifo_sink_data[23] => rp_data[23].DATAIN +rdata_fifo_sink_data[24] => rp_data[24].DATAIN +rdata_fifo_sink_data[25] => rp_data[25].DATAIN +rdata_fifo_sink_data[26] => rp_data[26].DATAIN +rdata_fifo_sink_data[27] => rp_data[27].DATAIN +rdata_fifo_sink_data[28] => rp_data[28].DATAIN +rdata_fifo_sink_data[29] => rp_data[29].DATAIN +rdata_fifo_sink_data[30] => rp_data[30].DATAIN +rdata_fifo_sink_data[31] => rp_data[31].DATAIN +rdata_fifo_sink_data[32] => rp_data[94].DATAIN +rdata_fifo_sink_data[33] => rp_data[95].DATAIN +rdata_fifo_sink_valid => rp_valid.IN1 +rdata_fifo_sink_valid => rdata_fifo_sink_ready.IN0 +rdata_fifo_sink_valid => comb.IN1 +rdata_fifo_sink_ready <= rdata_fifo_sink_ready.DB_MAX_OUTPUT_PORT_TYPE +cp_ready <= cp_ready.DB_MAX_OUTPUT_PORT_TYPE +cp_valid => local_lock.IN0 +cp_valid => local_write.IN0 +cp_valid => local_read.IN0 +cp_valid => local_compressed_read.IN0 +cp_data[0] => m0_writedata[0].DATAIN +cp_data[1] => m0_writedata[1].DATAIN +cp_data[2] => m0_writedata[2].DATAIN +cp_data[3] => m0_writedata[3].DATAIN +cp_data[4] => m0_writedata[4].DATAIN +cp_data[5] => m0_writedata[5].DATAIN +cp_data[6] => m0_writedata[6].DATAIN +cp_data[7] => m0_writedata[7].DATAIN +cp_data[8] => m0_writedata[8].DATAIN +cp_data[9] => m0_writedata[9].DATAIN +cp_data[10] => m0_writedata[10].DATAIN +cp_data[11] => m0_writedata[11].DATAIN +cp_data[12] => m0_writedata[12].DATAIN +cp_data[13] => m0_writedata[13].DATAIN +cp_data[14] => m0_writedata[14].DATAIN +cp_data[15] => m0_writedata[15].DATAIN +cp_data[16] => m0_writedata[16].DATAIN +cp_data[17] => m0_writedata[17].DATAIN +cp_data[18] => m0_writedata[18].DATAIN +cp_data[19] => m0_writedata[19].DATAIN +cp_data[20] => m0_writedata[20].DATAIN +cp_data[21] => m0_writedata[21].DATAIN +cp_data[22] => m0_writedata[22].DATAIN +cp_data[23] => m0_writedata[23].DATAIN +cp_data[24] => m0_writedata[24].DATAIN +cp_data[25] => m0_writedata[25].DATAIN +cp_data[26] => m0_writedata[26].DATAIN +cp_data[27] => m0_writedata[27].DATAIN +cp_data[28] => m0_writedata[28].DATAIN +cp_data[29] => m0_writedata[29].DATAIN +cp_data[30] => m0_writedata[30].DATAIN +cp_data[31] => m0_writedata[31].DATAIN +cp_data[32] => rf_source_data[32].DATAIN +cp_data[32] => m0_byteenable[0].DATAIN +cp_data[33] => rf_source_data[33].DATAIN +cp_data[33] => m0_byteenable[1].DATAIN +cp_data[34] => rf_source_data[34].DATAIN +cp_data[34] => m0_byteenable[2].DATAIN +cp_data[35] => rf_source_data[35].DATAIN +cp_data[35] => m0_byteenable[3].DATAIN +cp_data[36] => rf_source_data[36].DATAIN +cp_data[37] => rf_source_data[37].DATAIN +cp_data[38] => rf_source_data[38].DATAIN +cp_data[38] => m0_address[2].DATAIN +cp_data[39] => rf_source_data[39].DATAIN +cp_data[39] => m0_address[3].DATAIN +cp_data[40] => rf_source_data[40].DATAIN +cp_data[40] => m0_address[4].DATAIN +cp_data[41] => rf_source_data[41].DATAIN +cp_data[41] => m0_address[5].DATAIN +cp_data[42] => rf_source_data[42].DATAIN +cp_data[42] => m0_address[6].DATAIN +cp_data[43] => rf_source_data[43].DATAIN +cp_data[43] => m0_address[7].DATAIN +cp_data[44] => rf_source_data[44].DATAIN +cp_data[44] => m0_address[8].DATAIN +cp_data[45] => rf_source_data[45].DATAIN +cp_data[45] => m0_address[9].DATAIN +cp_data[46] => rf_source_data[46].DATAIN +cp_data[46] => m0_address[10].DATAIN +cp_data[47] => rf_source_data[47].DATAIN +cp_data[47] => m0_address[11].DATAIN +cp_data[48] => rf_source_data[48].DATAIN +cp_data[48] => m0_address[12].DATAIN +cp_data[49] => rf_source_data[49].DATAIN +cp_data[49] => m0_address[13].DATAIN +cp_data[50] => rf_source_data[50].DATAIN +cp_data[50] => m0_address[14].DATAIN +cp_data[51] => rf_source_data[51].DATAIN +cp_data[51] => m0_address[15].DATAIN +cp_data[52] => rf_source_data[52].DATAIN +cp_data[52] => m0_address[16].DATAIN +cp_data[53] => rf_source_data[53].DATAIN +cp_data[53] => m0_address[17].DATAIN +cp_data[54] => rf_source_data[54].DATAIN +cp_data[54] => m0_address[18].DATAIN +cp_data[55] => local_compressed_read.IN1 +cp_data[55] => rf_source_data[55].DATAIN +cp_data[56] => rf_source_data[56].DATAIN +cp_data[56] => m0_writeresponserequest.IN1 +cp_data[56] => comb.IN1 +cp_data[57] => local_write.IN1 +cp_data[57] => rf_source_data[57].DATAIN +cp_data[58] => local_read.IN1 +cp_data[58] => rf_source_data[58].DATAIN +cp_data[59] => local_lock.IN1 +cp_data[59] => rf_source_data[59].DATAIN +cp_data[60] => rf_source_data[60].DATAIN +cp_data[61] => m0_burstcount.DATAA +cp_data[61] => rf_source_data[61].DATAIN +cp_data[62] => m0_burstcount.DATAA +cp_data[62] => rf_source_data[62].DATAIN +cp_data[63] => m0_burstcount.DATAA +cp_data[63] => rf_source_data[63].DATAIN +cp_data[64] => rf_source_data[64].DATAIN +cp_data[65] => rf_source_data[65].DATAIN +cp_data[66] => rf_source_data[66].DATAIN +cp_data[67] => rf_source_data[67].DATAIN +cp_data[68] => rf_source_data[68].DATAIN +cp_data[69] => rf_source_data[69].DATAIN +cp_data[70] => rf_source_data[70].DATAIN +cp_data[71] => rf_source_data[71].DATAIN +cp_data[72] => rf_source_data[72].DATAIN +cp_data[73] => rf_source_data[73].DATAIN +cp_data[74] => rf_source_data[74].DATAIN +cp_data[75] => rf_source_data[75].DATAIN +cp_data[76] => rf_source_data[76].DATAIN +cp_data[77] => rf_source_data[77].DATAIN +cp_data[78] => rf_source_data[78].DATAIN +cp_data[79] => rf_source_data[79].DATAIN +cp_data[80] => rf_source_data[80].DATAIN +cp_data[81] => rf_source_data[81].DATAIN +cp_data[82] => rf_source_data[82].DATAIN +cp_data[83] => rf_source_data[83].DATAIN +cp_data[84] => rf_source_data[84].DATAIN +cp_data[85] => rf_source_data[85].DATAIN +cp_data[86] => rf_source_data[86].DATAIN +cp_data[87] => rf_source_data[87].DATAIN +cp_data[87] => m0_debugaccess.DATAIN +cp_data[88] => ~NO_FANOUT~ +cp_data[89] => ~NO_FANOUT~ +cp_data[90] => rf_source_data[90].DATAIN +cp_data[91] => rf_source_data[91].DATAIN +cp_data[92] => rf_source_data[92].DATAIN +cp_data[93] => rf_source_data[93].DATAIN +cp_data[94] => rf_source_data[94].DATAIN +cp_data[95] => rf_source_data[95].DATAIN +cp_channel[0] => ~NO_FANOUT~ +cp_channel[1] => ~NO_FANOUT~ +cp_channel[2] => ~NO_FANOUT~ +cp_channel[3] => ~NO_FANOUT~ +cp_channel[4] => ~NO_FANOUT~ +cp_channel[5] => ~NO_FANOUT~ +cp_channel[6] => ~NO_FANOUT~ +cp_channel[7] => ~NO_FANOUT~ +cp_channel[8] => ~NO_FANOUT~ +cp_channel[9] => ~NO_FANOUT~ +cp_channel[10] => ~NO_FANOUT~ +cp_channel[11] => ~NO_FANOUT~ +cp_channel[12] => ~NO_FANOUT~ +cp_channel[13] => ~NO_FANOUT~ +cp_channel[14] => ~NO_FANOUT~ +cp_channel[15] => ~NO_FANOUT~ +cp_channel[16] => ~NO_FANOUT~ +cp_channel[17] => ~NO_FANOUT~ +cp_startofpacket => rf_source_startofpacket.DATAIN +cp_endofpacket => nonposted_write_endofpacket.IN1 +cp_endofpacket => rf_source_endofpacket.DATAIN +rp_ready => rp_ready.IN1 +rp_valid <= rp_valid.DB_MAX_OUTPUT_PORT_TYPE +rp_data[0] <= rdata_fifo_sink_data[0].DB_MAX_OUTPUT_PORT_TYPE +rp_data[1] <= rdata_fifo_sink_data[1].DB_MAX_OUTPUT_PORT_TYPE +rp_data[2] <= rdata_fifo_sink_data[2].DB_MAX_OUTPUT_PORT_TYPE +rp_data[3] <= rdata_fifo_sink_data[3].DB_MAX_OUTPUT_PORT_TYPE +rp_data[4] <= rdata_fifo_sink_data[4].DB_MAX_OUTPUT_PORT_TYPE +rp_data[5] <= rdata_fifo_sink_data[5].DB_MAX_OUTPUT_PORT_TYPE +rp_data[6] <= rdata_fifo_sink_data[6].DB_MAX_OUTPUT_PORT_TYPE +rp_data[7] <= rdata_fifo_sink_data[7].DB_MAX_OUTPUT_PORT_TYPE +rp_data[8] <= rdata_fifo_sink_data[8].DB_MAX_OUTPUT_PORT_TYPE +rp_data[9] <= rdata_fifo_sink_data[9].DB_MAX_OUTPUT_PORT_TYPE +rp_data[10] <= rdata_fifo_sink_data[10].DB_MAX_OUTPUT_PORT_TYPE +rp_data[11] <= rdata_fifo_sink_data[11].DB_MAX_OUTPUT_PORT_TYPE +rp_data[12] <= rdata_fifo_sink_data[12].DB_MAX_OUTPUT_PORT_TYPE +rp_data[13] <= rdata_fifo_sink_data[13].DB_MAX_OUTPUT_PORT_TYPE +rp_data[14] <= rdata_fifo_sink_data[14].DB_MAX_OUTPUT_PORT_TYPE +rp_data[15] <= rdata_fifo_sink_data[15].DB_MAX_OUTPUT_PORT_TYPE +rp_data[16] <= rdata_fifo_sink_data[16].DB_MAX_OUTPUT_PORT_TYPE +rp_data[17] <= rdata_fifo_sink_data[17].DB_MAX_OUTPUT_PORT_TYPE +rp_data[18] <= rdata_fifo_sink_data[18].DB_MAX_OUTPUT_PORT_TYPE +rp_data[19] <= rdata_fifo_sink_data[19].DB_MAX_OUTPUT_PORT_TYPE +rp_data[20] <= rdata_fifo_sink_data[20].DB_MAX_OUTPUT_PORT_TYPE +rp_data[21] <= rdata_fifo_sink_data[21].DB_MAX_OUTPUT_PORT_TYPE +rp_data[22] <= rdata_fifo_sink_data[22].DB_MAX_OUTPUT_PORT_TYPE +rp_data[23] <= rdata_fifo_sink_data[23].DB_MAX_OUTPUT_PORT_TYPE +rp_data[24] <= rdata_fifo_sink_data[24].DB_MAX_OUTPUT_PORT_TYPE +rp_data[25] <= rdata_fifo_sink_data[25].DB_MAX_OUTPUT_PORT_TYPE +rp_data[26] <= rdata_fifo_sink_data[26].DB_MAX_OUTPUT_PORT_TYPE +rp_data[27] <= rdata_fifo_sink_data[27].DB_MAX_OUTPUT_PORT_TYPE +rp_data[28] <= rdata_fifo_sink_data[28].DB_MAX_OUTPUT_PORT_TYPE +rp_data[29] <= rdata_fifo_sink_data[29].DB_MAX_OUTPUT_PORT_TYPE +rp_data[30] <= rdata_fifo_sink_data[30].DB_MAX_OUTPUT_PORT_TYPE +rp_data[31] <= rdata_fifo_sink_data[31].DB_MAX_OUTPUT_PORT_TYPE +rp_data[32] <= rf_sink_data[32].DB_MAX_OUTPUT_PORT_TYPE +rp_data[33] <= rf_sink_data[33].DB_MAX_OUTPUT_PORT_TYPE +rp_data[34] <= rf_sink_data[34].DB_MAX_OUTPUT_PORT_TYPE +rp_data[35] <= rf_sink_data[35].DB_MAX_OUTPUT_PORT_TYPE +rp_data[36] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[37] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[38] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[39] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[40] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[41] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[42] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[43] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[44] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[45] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[46] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[47] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[48] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[49] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[50] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[51] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[52] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[53] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[54] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[55] <= altera_merlin_burst_uncompressor:uncompressor.source_is_compressed +rp_data[56] <= rf_sink_data[56].DB_MAX_OUTPUT_PORT_TYPE +rp_data[57] <= rf_sink_data[57].DB_MAX_OUTPUT_PORT_TYPE +rp_data[58] <= rp_data.DB_MAX_OUTPUT_PORT_TYPE +rp_data[59] <= rf_sink_data[59].DB_MAX_OUTPUT_PORT_TYPE +rp_data[60] <= rf_sink_data[60].DB_MAX_OUTPUT_PORT_TYPE +rp_data[61] <= altera_merlin_burst_uncompressor:uncompressor.source_byte_cnt +rp_data[62] <= altera_merlin_burst_uncompressor:uncompressor.source_byte_cnt +rp_data[63] <= altera_merlin_burst_uncompressor:uncompressor.source_byte_cnt +rp_data[64] <= altera_merlin_burst_uncompressor:uncompressor.source_burstwrap +rp_data[65] <= altera_merlin_burst_uncompressor:uncompressor.source_burstwrap +rp_data[66] <= altera_merlin_burst_uncompressor:uncompressor.source_burstwrap +rp_data[67] <= altera_merlin_burst_uncompressor:uncompressor.source_burstsize +rp_data[68] <= altera_merlin_burst_uncompressor:uncompressor.source_burstsize +rp_data[69] <= altera_merlin_burst_uncompressor:uncompressor.source_burstsize +rp_data[70] <= rf_sink_data[70].DB_MAX_OUTPUT_PORT_TYPE +rp_data[71] <= rf_sink_data[71].DB_MAX_OUTPUT_PORT_TYPE +rp_data[72] <= rf_sink_data[72].DB_MAX_OUTPUT_PORT_TYPE +rp_data[73] <= rf_sink_data[73].DB_MAX_OUTPUT_PORT_TYPE +rp_data[74] <= rf_sink_data[74].DB_MAX_OUTPUT_PORT_TYPE +rp_data[75] <= rf_sink_data[75].DB_MAX_OUTPUT_PORT_TYPE +rp_data[76] <= rf_sink_data[81].DB_MAX_OUTPUT_PORT_TYPE +rp_data[77] <= rf_sink_data[82].DB_MAX_OUTPUT_PORT_TYPE +rp_data[78] <= rf_sink_data[83].DB_MAX_OUTPUT_PORT_TYPE +rp_data[79] <= rf_sink_data[84].DB_MAX_OUTPUT_PORT_TYPE +rp_data[80] <= rf_sink_data[85].DB_MAX_OUTPUT_PORT_TYPE +rp_data[81] <= rf_sink_data[76].DB_MAX_OUTPUT_PORT_TYPE +rp_data[82] <= rf_sink_data[77].DB_MAX_OUTPUT_PORT_TYPE +rp_data[83] <= rf_sink_data[78].DB_MAX_OUTPUT_PORT_TYPE +rp_data[84] <= rf_sink_data[79].DB_MAX_OUTPUT_PORT_TYPE +rp_data[85] <= rf_sink_data[80].DB_MAX_OUTPUT_PORT_TYPE +rp_data[86] <= rf_sink_data[86].DB_MAX_OUTPUT_PORT_TYPE +rp_data[87] <= rf_sink_data[87].DB_MAX_OUTPUT_PORT_TYPE +rp_data[88] <= rf_sink_data[88].DB_MAX_OUTPUT_PORT_TYPE +rp_data[89] <= rf_sink_data[89].DB_MAX_OUTPUT_PORT_TYPE +rp_data[90] <= rf_sink_data[90].DB_MAX_OUTPUT_PORT_TYPE +rp_data[91] <= rf_sink_data[91].DB_MAX_OUTPUT_PORT_TYPE +rp_data[92] <= rf_sink_data[92].DB_MAX_OUTPUT_PORT_TYPE +rp_data[93] <= rf_sink_data[93].DB_MAX_OUTPUT_PORT_TYPE +rp_data[94] <= rdata_fifo_sink_data[32].DB_MAX_OUTPUT_PORT_TYPE +rp_data[95] <= rdata_fifo_sink_data[33].DB_MAX_OUTPUT_PORT_TYPE +rp_startofpacket <= altera_merlin_burst_uncompressor:uncompressor.source_startofpacket +rp_endofpacket <= altera_merlin_burst_uncompressor:uncompressor.source_endofpacket + + +|lights|nios_system:NiosII|altera_merlin_slave_agent:hex4_s1_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor +clk => burst_uncompress_address_offset[0].CLK +clk => burst_uncompress_address_offset[1].CLK +clk => burst_uncompress_address_offset[2].CLK +clk => burst_uncompress_address_offset[3].CLK +clk => burst_uncompress_address_offset[4].CLK +clk => burst_uncompress_address_offset[5].CLK +clk => burst_uncompress_address_offset[6].CLK +clk => burst_uncompress_address_offset[7].CLK +clk => burst_uncompress_address_offset[8].CLK +clk => burst_uncompress_address_offset[9].CLK +clk => burst_uncompress_address_offset[10].CLK +clk => burst_uncompress_address_offset[11].CLK +clk => burst_uncompress_address_offset[12].CLK +clk => burst_uncompress_address_offset[13].CLK +clk => burst_uncompress_address_offset[14].CLK +clk => burst_uncompress_address_offset[15].CLK +clk => burst_uncompress_address_offset[16].CLK +clk => burst_uncompress_address_offset[17].CLK +clk => burst_uncompress_address_offset[18].CLK +clk => burst_uncompress_address_base[0].CLK +clk => burst_uncompress_address_base[1].CLK +clk => burst_uncompress_address_base[2].CLK +clk => burst_uncompress_address_base[3].CLK +clk => burst_uncompress_address_base[4].CLK +clk => burst_uncompress_address_base[5].CLK +clk => burst_uncompress_address_base[6].CLK +clk => burst_uncompress_address_base[7].CLK +clk => burst_uncompress_address_base[8].CLK +clk => burst_uncompress_address_base[9].CLK +clk => burst_uncompress_address_base[10].CLK +clk => burst_uncompress_address_base[11].CLK +clk => burst_uncompress_address_base[12].CLK +clk => burst_uncompress_address_base[13].CLK +clk => burst_uncompress_address_base[14].CLK +clk => burst_uncompress_address_base[15].CLK +clk => burst_uncompress_address_base[16].CLK +clk => burst_uncompress_address_base[17].CLK +clk => burst_uncompress_address_base[18].CLK +clk => burst_uncompress_byte_counter[0].CLK +clk => burst_uncompress_byte_counter[1].CLK +clk => burst_uncompress_byte_counter[2].CLK +clk => burst_uncompress_busy.CLK +reset => burst_uncompress_address_offset[0].ACLR +reset => burst_uncompress_address_offset[1].ACLR +reset => burst_uncompress_address_offset[2].ACLR +reset => burst_uncompress_address_offset[3].ACLR +reset => burst_uncompress_address_offset[4].ACLR +reset => burst_uncompress_address_offset[5].ACLR +reset => burst_uncompress_address_offset[6].ACLR +reset => burst_uncompress_address_offset[7].ACLR +reset => burst_uncompress_address_offset[8].ACLR +reset => burst_uncompress_address_offset[9].ACLR +reset => burst_uncompress_address_offset[10].ACLR +reset => burst_uncompress_address_offset[11].ACLR +reset => burst_uncompress_address_offset[12].ACLR +reset => burst_uncompress_address_offset[13].ACLR +reset => burst_uncompress_address_offset[14].ACLR +reset => burst_uncompress_address_offset[15].ACLR +reset => burst_uncompress_address_offset[16].ACLR +reset => burst_uncompress_address_offset[17].ACLR +reset => burst_uncompress_address_offset[18].ACLR +reset => burst_uncompress_address_base[0].ACLR +reset => burst_uncompress_address_base[1].ACLR +reset => burst_uncompress_address_base[2].ACLR +reset => burst_uncompress_address_base[3].ACLR +reset => burst_uncompress_address_base[4].ACLR +reset => burst_uncompress_address_base[5].ACLR +reset => burst_uncompress_address_base[6].ACLR +reset => burst_uncompress_address_base[7].ACLR +reset => burst_uncompress_address_base[8].ACLR +reset => burst_uncompress_address_base[9].ACLR +reset => burst_uncompress_address_base[10].ACLR +reset => burst_uncompress_address_base[11].ACLR +reset => burst_uncompress_address_base[12].ACLR +reset => burst_uncompress_address_base[13].ACLR +reset => burst_uncompress_address_base[14].ACLR +reset => burst_uncompress_address_base[15].ACLR +reset => burst_uncompress_address_base[16].ACLR +reset => burst_uncompress_address_base[17].ACLR +reset => burst_uncompress_address_base[18].ACLR +reset => burst_uncompress_byte_counter[0].ACLR +reset => burst_uncompress_byte_counter[1].ACLR +reset => burst_uncompress_byte_counter[2].ACLR +reset => burst_uncompress_busy.ACLR +sink_startofpacket => source_startofpacket.IN1 +sink_endofpacket => source_endofpacket.IN1 +sink_valid => first_packet_beat.IN1 +sink_valid => last_packet_beat.IN1 +sink_valid => last_packet_beat.IN1 +sink_valid => always0.IN1 +sink_valid => sink_ready.IN0 +sink_valid => source_valid.DATAIN +sink_ready <= sink_ready.DB_MAX_OUTPUT_PORT_TYPE +sink_addr[0] => burst_uncompress_address_base.IN0 +sink_addr[0] => comb.DATAB +sink_addr[0] => source_addr.DATAB +sink_addr[1] => burst_uncompress_address_base.IN0 +sink_addr[1] => comb.DATAB +sink_addr[1] => source_addr.DATAB +sink_addr[2] => burst_uncompress_address_base.IN0 +sink_addr[2] => comb.DATAB +sink_addr[2] => source_addr.DATAB +sink_addr[3] => burst_uncompress_address_base.IN0 +sink_addr[3] => comb.DATAB +sink_addr[3] => source_addr.DATAB +sink_addr[4] => burst_uncompress_address_base.IN0 +sink_addr[4] => comb.DATAB +sink_addr[4] => source_addr.DATAB +sink_addr[5] => burst_uncompress_address_base.IN0 +sink_addr[5] => comb.DATAB +sink_addr[5] => source_addr.DATAB +sink_addr[6] => burst_uncompress_address_base.IN0 +sink_addr[6] => comb.DATAB +sink_addr[6] => source_addr.DATAB +sink_addr[7] => burst_uncompress_address_base.IN0 +sink_addr[7] => comb.DATAB +sink_addr[7] => source_addr.DATAB +sink_addr[8] => burst_uncompress_address_base.IN0 +sink_addr[8] => comb.DATAB +sink_addr[8] => source_addr.DATAB +sink_addr[9] => burst_uncompress_address_base.IN0 +sink_addr[9] => comb.DATAB +sink_addr[9] => source_addr.DATAB +sink_addr[10] => burst_uncompress_address_base.IN0 +sink_addr[10] => comb.DATAB +sink_addr[10] => source_addr.DATAB +sink_addr[11] => burst_uncompress_address_base.IN0 +sink_addr[11] => comb.DATAB +sink_addr[11] => source_addr.DATAB +sink_addr[12] => burst_uncompress_address_base.IN0 +sink_addr[12] => comb.DATAB +sink_addr[12] => source_addr.DATAB +sink_addr[13] => burst_uncompress_address_base.IN0 +sink_addr[13] => comb.DATAB +sink_addr[13] => source_addr.DATAB +sink_addr[14] => burst_uncompress_address_base.IN0 +sink_addr[14] => comb.DATAB +sink_addr[14] => source_addr.DATAB +sink_addr[15] => burst_uncompress_address_base.IN0 +sink_addr[15] => comb.DATAB +sink_addr[15] => source_addr.DATAB +sink_addr[16] => burst_uncompress_address_base.IN0 +sink_addr[16] => comb.DATAB +sink_addr[16] => source_addr.DATAB +sink_addr[17] => burst_uncompress_address_base.IN0 +sink_addr[17] => comb.DATAB +sink_addr[17] => source_addr.DATAB +sink_addr[18] => burst_uncompress_address_base.IN0 +sink_addr[18] => comb.DATAB +sink_addr[18] => source_addr.DATAB +sink_burstwrap[0] => p1_burst_uncompress_address_offset[0].IN1 +sink_burstwrap[0] => source_burstwrap[0].DATAIN +sink_burstwrap[0] => burst_uncompress_address_base.IN1 +sink_burstwrap[1] => p1_burst_uncompress_address_offset[1].IN1 +sink_burstwrap[1] => source_burstwrap[1].DATAIN +sink_burstwrap[1] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[2].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[18].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[17].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[16].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[15].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[14].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[13].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[12].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[11].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[10].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[9].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[8].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[7].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[6].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[5].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[4].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[3].IN1 +sink_burstwrap[2] => source_burstwrap[2].DATAIN +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_byte_cnt[0] => source_byte_cnt.DATAB +sink_byte_cnt[0] => Add1.IN6 +sink_byte_cnt[0] => Equal1.IN2 +sink_byte_cnt[1] => source_byte_cnt.DATAB +sink_byte_cnt[1] => Add1.IN5 +sink_byte_cnt[1] => Equal1.IN1 +sink_byte_cnt[2] => source_byte_cnt.DATAB +sink_byte_cnt[2] => Add1.IN4 +sink_byte_cnt[2] => Equal1.IN0 +sink_is_compressed => last_packet_beat.IN1 +sink_burstsize[0] => Decoder0.IN2 +sink_burstsize[0] => source_burstsize[0].DATAIN +sink_burstsize[1] => Decoder0.IN1 +sink_burstsize[1] => source_burstsize[1].DATAIN +sink_burstsize[2] => Decoder0.IN0 +sink_burstsize[2] => source_burstsize[2].DATAIN +source_startofpacket <= source_startofpacket.DB_MAX_OUTPUT_PORT_TYPE +source_endofpacket <= source_endofpacket.DB_MAX_OUTPUT_PORT_TYPE +source_valid <= sink_valid.DB_MAX_OUTPUT_PORT_TYPE +source_ready => always1.IN1 +source_ready => sink_ready.IN1 +source_addr[0] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[1] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[2] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[3] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[4] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[5] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[6] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[7] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[8] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[9] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[10] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[11] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[12] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[13] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[14] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[15] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[16] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[17] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[18] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_burstwrap[0] <= sink_burstwrap[0].DB_MAX_OUTPUT_PORT_TYPE +source_burstwrap[1] <= sink_burstwrap[1].DB_MAX_OUTPUT_PORT_TYPE +source_burstwrap[2] <= sink_burstwrap[2].DB_MAX_OUTPUT_PORT_TYPE +source_byte_cnt[0] <= source_byte_cnt.DB_MAX_OUTPUT_PORT_TYPE +source_byte_cnt[1] <= source_byte_cnt.DB_MAX_OUTPUT_PORT_TYPE +source_byte_cnt[2] <= source_byte_cnt.DB_MAX_OUTPUT_PORT_TYPE +source_is_compressed <= +source_burstsize[0] <= sink_burstsize[0].DB_MAX_OUTPUT_PORT_TYPE +source_burstsize[1] <= sink_burstsize[1].DB_MAX_OUTPUT_PORT_TYPE +source_burstsize[2] <= sink_burstsize[2].DB_MAX_OUTPUT_PORT_TYPE + + +|lights|nios_system:NiosII|altera_avalon_sc_fifo:hex4_s1_translator_avalon_universal_slave_0_agent_rsp_fifo +clk => csr_readdata[0]~reg0.CLK +clk => csr_readdata[1]~reg0.CLK +clk => csr_readdata[2]~reg0.CLK +clk => csr_readdata[3]~reg0.CLK +clk => csr_readdata[4]~reg0.CLK +clk => csr_readdata[5]~reg0.CLK +clk => csr_readdata[6]~reg0.CLK +clk => csr_readdata[7]~reg0.CLK +clk => csr_readdata[8]~reg0.CLK +clk => csr_readdata[9]~reg0.CLK +clk => csr_readdata[10]~reg0.CLK +clk => csr_readdata[11]~reg0.CLK +clk => csr_readdata[12]~reg0.CLK +clk => csr_readdata[13]~reg0.CLK +clk => csr_readdata[14]~reg0.CLK +clk => csr_readdata[15]~reg0.CLK +clk => csr_readdata[16]~reg0.CLK +clk => csr_readdata[17]~reg0.CLK +clk => csr_readdata[18]~reg0.CLK +clk => csr_readdata[19]~reg0.CLK +clk => csr_readdata[20]~reg0.CLK +clk => csr_readdata[21]~reg0.CLK +clk => csr_readdata[22]~reg0.CLK +clk => csr_readdata[23]~reg0.CLK +clk => csr_readdata[24]~reg0.CLK +clk => csr_readdata[25]~reg0.CLK +clk => csr_readdata[26]~reg0.CLK +clk => csr_readdata[27]~reg0.CLK +clk => csr_readdata[28]~reg0.CLK +clk => csr_readdata[29]~reg0.CLK +clk => csr_readdata[30]~reg0.CLK +clk => csr_readdata[31]~reg0.CLK +clk => mem_used[1].CLK +clk => mem_used[0].CLK +clk => mem[1][0].CLK +clk => mem[1][1].CLK +clk => mem[1][2].CLK +clk => mem[1][3].CLK +clk => mem[1][4].CLK +clk => mem[1][5].CLK +clk => mem[1][6].CLK +clk => mem[1][7].CLK +clk => mem[1][8].CLK +clk => mem[1][9].CLK +clk => mem[1][10].CLK +clk => mem[1][11].CLK +clk => mem[1][12].CLK +clk => mem[1][13].CLK +clk => mem[1][14].CLK +clk => mem[1][15].CLK +clk => mem[1][16].CLK +clk => mem[1][17].CLK +clk => mem[1][18].CLK +clk => mem[1][19].CLK +clk => mem[1][20].CLK +clk => mem[1][21].CLK +clk => mem[1][22].CLK +clk => mem[1][23].CLK +clk => mem[1][24].CLK +clk => mem[1][25].CLK +clk => mem[1][26].CLK +clk => mem[1][27].CLK +clk => mem[1][28].CLK +clk => mem[1][29].CLK +clk => mem[1][30].CLK +clk => mem[1][31].CLK +clk => mem[1][32].CLK +clk => mem[1][33].CLK +clk => mem[1][34].CLK +clk => mem[1][35].CLK +clk => mem[1][36].CLK +clk => mem[1][37].CLK +clk => mem[1][38].CLK +clk => mem[1][39].CLK +clk => mem[1][40].CLK +clk => mem[1][41].CLK +clk => mem[1][42].CLK +clk => mem[1][43].CLK +clk => mem[1][44].CLK +clk => mem[1][45].CLK +clk => mem[1][46].CLK +clk => mem[1][47].CLK +clk => mem[1][48].CLK +clk => mem[1][49].CLK +clk => mem[1][50].CLK +clk => mem[1][51].CLK +clk => mem[1][52].CLK +clk => mem[1][53].CLK +clk => mem[1][54].CLK +clk => mem[1][55].CLK +clk => mem[1][56].CLK +clk => mem[1][57].CLK +clk => mem[1][58].CLK +clk => mem[1][59].CLK +clk => mem[1][60].CLK +clk => mem[1][61].CLK +clk => mem[1][62].CLK +clk => mem[1][63].CLK +clk => mem[1][64].CLK +clk => mem[1][65].CLK +clk => mem[1][66].CLK +clk => mem[1][67].CLK +clk => mem[1][68].CLK +clk => mem[1][69].CLK +clk => mem[1][70].CLK +clk => mem[1][71].CLK +clk => mem[1][72].CLK +clk => mem[1][73].CLK +clk => mem[1][74].CLK +clk => mem[1][75].CLK +clk => mem[1][76].CLK +clk => mem[1][77].CLK +clk => mem[1][78].CLK +clk => mem[1][79].CLK +clk => mem[1][80].CLK +clk => mem[1][81].CLK +clk => mem[1][82].CLK +clk => mem[1][83].CLK +clk => mem[1][84].CLK +clk => mem[1][85].CLK +clk => mem[1][86].CLK +clk => mem[1][87].CLK +clk => mem[1][88].CLK +clk => mem[1][89].CLK +clk => mem[1][90].CLK +clk => mem[1][91].CLK +clk => mem[1][92].CLK +clk => mem[1][93].CLK +clk => mem[1][94].CLK +clk => mem[1][95].CLK +clk => mem[1][96].CLK +clk => mem[1][97].CLK +clk => mem[1][98].CLK +clk => mem[0][0].CLK +clk => mem[0][1].CLK +clk => mem[0][2].CLK +clk => mem[0][3].CLK +clk => mem[0][4].CLK +clk => mem[0][5].CLK +clk => mem[0][6].CLK +clk => mem[0][7].CLK +clk => mem[0][8].CLK +clk => mem[0][9].CLK +clk => mem[0][10].CLK +clk => mem[0][11].CLK +clk => mem[0][12].CLK +clk => mem[0][13].CLK +clk => mem[0][14].CLK +clk => mem[0][15].CLK +clk => mem[0][16].CLK +clk => mem[0][17].CLK +clk => mem[0][18].CLK +clk => mem[0][19].CLK +clk => mem[0][20].CLK +clk => mem[0][21].CLK +clk => mem[0][22].CLK +clk => mem[0][23].CLK +clk => mem[0][24].CLK +clk => mem[0][25].CLK +clk => mem[0][26].CLK +clk => mem[0][27].CLK +clk => mem[0][28].CLK +clk => mem[0][29].CLK +clk => mem[0][30].CLK +clk => mem[0][31].CLK +clk => mem[0][32].CLK +clk => mem[0][33].CLK +clk => mem[0][34].CLK +clk => mem[0][35].CLK +clk => mem[0][36].CLK +clk => mem[0][37].CLK +clk => mem[0][38].CLK +clk => mem[0][39].CLK +clk => mem[0][40].CLK +clk => mem[0][41].CLK +clk => mem[0][42].CLK +clk => mem[0][43].CLK +clk => mem[0][44].CLK +clk => mem[0][45].CLK +clk => mem[0][46].CLK +clk => mem[0][47].CLK +clk => mem[0][48].CLK +clk => mem[0][49].CLK +clk => mem[0][50].CLK +clk => mem[0][51].CLK +clk => mem[0][52].CLK +clk => mem[0][53].CLK +clk => mem[0][54].CLK +clk => mem[0][55].CLK +clk => mem[0][56].CLK +clk => mem[0][57].CLK +clk => mem[0][58].CLK +clk => mem[0][59].CLK +clk => mem[0][60].CLK +clk => mem[0][61].CLK +clk => mem[0][62].CLK +clk => mem[0][63].CLK +clk => mem[0][64].CLK +clk => mem[0][65].CLK +clk => mem[0][66].CLK +clk => mem[0][67].CLK +clk => mem[0][68].CLK +clk => mem[0][69].CLK +clk => mem[0][70].CLK +clk => mem[0][71].CLK +clk => mem[0][72].CLK +clk => mem[0][73].CLK +clk => mem[0][74].CLK +clk => mem[0][75].CLK +clk => mem[0][76].CLK +clk => mem[0][77].CLK +clk => mem[0][78].CLK +clk => mem[0][79].CLK +clk => mem[0][80].CLK +clk => mem[0][81].CLK +clk => mem[0][82].CLK +clk => mem[0][83].CLK +clk => mem[0][84].CLK +clk => mem[0][85].CLK +clk => mem[0][86].CLK +clk => mem[0][87].CLK +clk => mem[0][88].CLK +clk => mem[0][89].CLK +clk => mem[0][90].CLK +clk => mem[0][91].CLK +clk => mem[0][92].CLK +clk => mem[0][93].CLK +clk => mem[0][94].CLK +clk => mem[0][95].CLK +clk => mem[0][96].CLK +clk => mem[0][97].CLK +clk => mem[0][98].CLK +reset => csr_readdata[0]~reg0.ACLR +reset => csr_readdata[1]~reg0.ACLR +reset => csr_readdata[2]~reg0.ACLR +reset => csr_readdata[3]~reg0.ACLR +reset => csr_readdata[4]~reg0.ACLR +reset => csr_readdata[5]~reg0.ACLR +reset => csr_readdata[6]~reg0.ACLR +reset => csr_readdata[7]~reg0.ACLR +reset => csr_readdata[8]~reg0.ACLR +reset => csr_readdata[9]~reg0.ACLR +reset => csr_readdata[10]~reg0.ACLR +reset => csr_readdata[11]~reg0.ACLR +reset => csr_readdata[12]~reg0.ACLR +reset => csr_readdata[13]~reg0.ACLR +reset => csr_readdata[14]~reg0.ACLR +reset => csr_readdata[15]~reg0.ACLR +reset => csr_readdata[16]~reg0.ACLR +reset => csr_readdata[17]~reg0.ACLR +reset => csr_readdata[18]~reg0.ACLR +reset => csr_readdata[19]~reg0.ACLR +reset => csr_readdata[20]~reg0.ACLR +reset => csr_readdata[21]~reg0.ACLR +reset => csr_readdata[22]~reg0.ACLR +reset => csr_readdata[23]~reg0.ACLR +reset => csr_readdata[24]~reg0.ACLR +reset => csr_readdata[25]~reg0.ACLR +reset => csr_readdata[26]~reg0.ACLR +reset => csr_readdata[27]~reg0.ACLR +reset => csr_readdata[28]~reg0.ACLR +reset => csr_readdata[29]~reg0.ACLR +reset => csr_readdata[30]~reg0.ACLR +reset => csr_readdata[31]~reg0.ACLR +reset => mem_used[1].ACLR +reset => mem_used[0].ACLR +reset => mem[1][0].ACLR +reset => mem[1][1].ACLR +reset => mem[1][2].ACLR +reset => mem[1][3].ACLR +reset => mem[1][4].ACLR +reset => mem[1][5].ACLR +reset => mem[1][6].ACLR +reset => mem[1][7].ACLR +reset => mem[1][8].ACLR +reset => mem[1][9].ACLR +reset => mem[1][10].ACLR +reset => mem[1][11].ACLR +reset => mem[1][12].ACLR +reset => mem[1][13].ACLR +reset => mem[1][14].ACLR +reset => mem[1][15].ACLR +reset => mem[1][16].ACLR +reset => mem[1][17].ACLR +reset => mem[1][18].ACLR +reset => mem[1][19].ACLR +reset => mem[1][20].ACLR +reset => mem[1][21].ACLR +reset => mem[1][22].ACLR +reset => mem[1][23].ACLR +reset => mem[1][24].ACLR +reset => mem[1][25].ACLR +reset => mem[1][26].ACLR +reset => mem[1][27].ACLR +reset => mem[1][28].ACLR +reset => mem[1][29].ACLR +reset => mem[1][30].ACLR +reset => mem[1][31].ACLR +reset => mem[1][32].ACLR +reset => mem[1][33].ACLR +reset => mem[1][34].ACLR +reset => mem[1][35].ACLR +reset => mem[1][36].ACLR +reset => mem[1][37].ACLR +reset => mem[1][38].ACLR +reset => mem[1][39].ACLR +reset => mem[1][40].ACLR +reset => mem[1][41].ACLR +reset => mem[1][42].ACLR +reset => mem[1][43].ACLR +reset => mem[1][44].ACLR +reset => mem[1][45].ACLR +reset => mem[1][46].ACLR +reset => mem[1][47].ACLR +reset => mem[1][48].ACLR +reset => mem[1][49].ACLR +reset => mem[1][50].ACLR +reset => mem[1][51].ACLR +reset => mem[1][52].ACLR +reset => mem[1][53].ACLR +reset => mem[1][54].ACLR +reset => mem[1][55].ACLR +reset => mem[1][56].ACLR +reset => mem[1][57].ACLR +reset => mem[1][58].ACLR +reset => mem[1][59].ACLR +reset => mem[1][60].ACLR +reset => mem[1][61].ACLR +reset => mem[1][62].ACLR +reset => mem[1][63].ACLR +reset => mem[1][64].ACLR +reset => mem[1][65].ACLR +reset => mem[1][66].ACLR +reset => mem[1][67].ACLR +reset => mem[1][68].ACLR +reset => mem[1][69].ACLR +reset => mem[1][70].ACLR +reset => mem[1][71].ACLR +reset => mem[1][72].ACLR +reset => mem[1][73].ACLR +reset => mem[1][74].ACLR +reset => mem[1][75].ACLR +reset => mem[1][76].ACLR +reset => mem[1][77].ACLR +reset => mem[1][78].ACLR +reset => mem[1][79].ACLR +reset => mem[1][80].ACLR +reset => mem[1][81].ACLR +reset => mem[1][82].ACLR +reset => mem[1][83].ACLR +reset => mem[1][84].ACLR +reset => mem[1][85].ACLR +reset => mem[1][86].ACLR +reset => mem[1][87].ACLR +reset => mem[1][88].ACLR +reset => mem[1][89].ACLR +reset => mem[1][90].ACLR +reset => mem[1][91].ACLR +reset => mem[1][92].ACLR +reset => mem[1][93].ACLR +reset => mem[1][94].ACLR +reset => mem[1][95].ACLR +reset => mem[1][96].ACLR +reset => mem[1][97].ACLR +reset => mem[1][98].ACLR +reset => mem[0][0].ACLR +reset => mem[0][1].ACLR +reset => mem[0][2].ACLR +reset => mem[0][3].ACLR +reset => mem[0][4].ACLR +reset => mem[0][5].ACLR +reset => mem[0][6].ACLR +reset => mem[0][7].ACLR +reset => mem[0][8].ACLR +reset => mem[0][9].ACLR +reset => mem[0][10].ACLR +reset => mem[0][11].ACLR +reset => mem[0][12].ACLR +reset => mem[0][13].ACLR +reset => mem[0][14].ACLR +reset => mem[0][15].ACLR +reset => mem[0][16].ACLR +reset => mem[0][17].ACLR +reset => mem[0][18].ACLR +reset => mem[0][19].ACLR +reset => mem[0][20].ACLR +reset => mem[0][21].ACLR +reset => mem[0][22].ACLR +reset => mem[0][23].ACLR +reset => mem[0][24].ACLR +reset => mem[0][25].ACLR +reset => mem[0][26].ACLR +reset => mem[0][27].ACLR +reset => mem[0][28].ACLR +reset => mem[0][29].ACLR +reset => mem[0][30].ACLR +reset => mem[0][31].ACLR +reset => mem[0][32].ACLR +reset => mem[0][33].ACLR +reset => mem[0][34].ACLR +reset => mem[0][35].ACLR +reset => mem[0][36].ACLR +reset => mem[0][37].ACLR +reset => mem[0][38].ACLR +reset => mem[0][39].ACLR +reset => mem[0][40].ACLR +reset => mem[0][41].ACLR +reset => mem[0][42].ACLR +reset => mem[0][43].ACLR +reset => mem[0][44].ACLR +reset => mem[0][45].ACLR +reset => mem[0][46].ACLR +reset => mem[0][47].ACLR +reset => mem[0][48].ACLR +reset => mem[0][49].ACLR +reset => mem[0][50].ACLR +reset => mem[0][51].ACLR +reset => mem[0][52].ACLR +reset => mem[0][53].ACLR +reset => mem[0][54].ACLR +reset => mem[0][55].ACLR +reset => mem[0][56].ACLR +reset => mem[0][57].ACLR +reset => mem[0][58].ACLR +reset => mem[0][59].ACLR +reset => mem[0][60].ACLR +reset => mem[0][61].ACLR +reset => mem[0][62].ACLR +reset => mem[0][63].ACLR +reset => mem[0][64].ACLR +reset => mem[0][65].ACLR +reset => mem[0][66].ACLR +reset => mem[0][67].ACLR +reset => mem[0][68].ACLR +reset => mem[0][69].ACLR +reset => mem[0][70].ACLR +reset => mem[0][71].ACLR +reset => mem[0][72].ACLR +reset => mem[0][73].ACLR +reset => mem[0][74].ACLR +reset => mem[0][75].ACLR +reset => mem[0][76].ACLR +reset => mem[0][77].ACLR +reset => mem[0][78].ACLR +reset => mem[0][79].ACLR +reset => mem[0][80].ACLR +reset => mem[0][81].ACLR +reset => mem[0][82].ACLR +reset => mem[0][83].ACLR +reset => mem[0][84].ACLR +reset => mem[0][85].ACLR +reset => mem[0][86].ACLR +reset => mem[0][87].ACLR +reset => mem[0][88].ACLR +reset => mem[0][89].ACLR +reset => mem[0][90].ACLR +reset => mem[0][91].ACLR +reset => mem[0][92].ACLR +reset => mem[0][93].ACLR +reset => mem[0][94].ACLR +reset => mem[0][95].ACLR +reset => mem[0][96].ACLR +reset => mem[0][97].ACLR +reset => mem[0][98].ACLR +in_data[0] => mem.DATAB +in_data[1] => mem.DATAB +in_data[2] => mem.DATAB +in_data[3] => mem.DATAB +in_data[4] => mem.DATAB +in_data[5] => mem.DATAB +in_data[6] => mem.DATAB +in_data[7] => mem.DATAB +in_data[8] => mem.DATAB +in_data[9] => mem.DATAB +in_data[10] => mem.DATAB +in_data[11] => mem.DATAB +in_data[12] => mem.DATAB +in_data[13] => mem.DATAB +in_data[14] => mem.DATAB +in_data[15] => mem.DATAB +in_data[16] => mem.DATAB +in_data[17] => mem.DATAB +in_data[18] => mem.DATAB +in_data[19] => mem.DATAB +in_data[20] => mem.DATAB +in_data[21] => mem.DATAB +in_data[22] => mem.DATAB +in_data[23] => mem.DATAB +in_data[24] => mem.DATAB +in_data[25] => mem.DATAB +in_data[26] => mem.DATAB +in_data[27] => mem.DATAB +in_data[28] => mem.DATAB +in_data[29] => mem.DATAB +in_data[30] => mem.DATAB +in_data[31] => mem.DATAB +in_data[32] => mem.DATAB +in_data[33] => mem.DATAB +in_data[34] => mem.DATAB +in_data[35] => mem.DATAB +in_data[36] => mem.DATAB +in_data[37] => mem.DATAB +in_data[38] => mem.DATAB +in_data[39] => mem.DATAB +in_data[40] => mem.DATAB +in_data[41] => mem.DATAB +in_data[42] => mem.DATAB +in_data[43] => mem.DATAB +in_data[44] => mem.DATAB +in_data[45] => mem.DATAB +in_data[46] => mem.DATAB +in_data[47] => mem.DATAB +in_data[48] => mem.DATAB +in_data[49] => mem.DATAB +in_data[50] => mem.DATAB +in_data[51] => mem.DATAB +in_data[52] => mem.DATAB +in_data[53] => mem.DATAB +in_data[54] => mem.DATAB +in_data[55] => mem.DATAB +in_data[56] => mem.DATAB +in_data[57] => mem.DATAB +in_data[58] => mem.DATAB +in_data[59] => mem.DATAB +in_data[60] => mem.DATAB +in_data[61] => mem.DATAB +in_data[62] => mem.DATAB +in_data[63] => mem.DATAB +in_data[64] => mem.DATAB +in_data[65] => mem.DATAB +in_data[66] => mem.DATAB +in_data[67] => mem.DATAB +in_data[68] => mem.DATAB +in_data[69] => mem.DATAB +in_data[70] => mem.DATAB +in_data[71] => mem.DATAB +in_data[72] => mem.DATAB +in_data[73] => mem.DATAB +in_data[74] => mem.DATAB +in_data[75] => mem.DATAB +in_data[76] => mem.DATAB +in_data[77] => mem.DATAB +in_data[78] => mem.DATAB +in_data[79] => mem.DATAB +in_data[80] => mem.DATAB +in_data[81] => mem.DATAB +in_data[82] => mem.DATAB +in_data[83] => mem.DATAB +in_data[84] => mem.DATAB +in_data[85] => mem.DATAB +in_data[86] => mem.DATAB +in_data[87] => mem.DATAB +in_data[88] => mem.DATAB +in_data[89] => mem.DATAB +in_data[90] => mem.DATAB +in_data[91] => mem.DATAB +in_data[92] => mem.DATAB +in_data[93] => mem.DATAB +in_data[94] => mem.DATAB +in_data[95] => mem.DATAB +in_data[96] => mem.DATAB +in_valid => write.IN1 +in_startofpacket => mem.DATAB +in_endofpacket => mem.DATAB +in_empty[0] => ~NO_FANOUT~ +in_error[0] => out_error[0].DATAIN +in_error[0] => out_empty[0].DATAIN +in_channel[0] => out_channel[0].DATAIN +in_ready <= mem_used[1].DB_MAX_OUTPUT_PORT_TYPE +out_data[0] <= mem[0][0].DB_MAX_OUTPUT_PORT_TYPE +out_data[1] <= mem[0][1].DB_MAX_OUTPUT_PORT_TYPE +out_data[2] <= mem[0][2].DB_MAX_OUTPUT_PORT_TYPE +out_data[3] <= mem[0][3].DB_MAX_OUTPUT_PORT_TYPE +out_data[4] <= mem[0][4].DB_MAX_OUTPUT_PORT_TYPE +out_data[5] <= mem[0][5].DB_MAX_OUTPUT_PORT_TYPE +out_data[6] <= mem[0][6].DB_MAX_OUTPUT_PORT_TYPE +out_data[7] <= mem[0][7].DB_MAX_OUTPUT_PORT_TYPE +out_data[8] <= mem[0][8].DB_MAX_OUTPUT_PORT_TYPE +out_data[9] <= mem[0][9].DB_MAX_OUTPUT_PORT_TYPE +out_data[10] <= mem[0][10].DB_MAX_OUTPUT_PORT_TYPE +out_data[11] <= mem[0][11].DB_MAX_OUTPUT_PORT_TYPE +out_data[12] <= mem[0][12].DB_MAX_OUTPUT_PORT_TYPE +out_data[13] <= mem[0][13].DB_MAX_OUTPUT_PORT_TYPE +out_data[14] <= mem[0][14].DB_MAX_OUTPUT_PORT_TYPE +out_data[15] <= mem[0][15].DB_MAX_OUTPUT_PORT_TYPE +out_data[16] <= mem[0][16].DB_MAX_OUTPUT_PORT_TYPE +out_data[17] <= mem[0][17].DB_MAX_OUTPUT_PORT_TYPE +out_data[18] <= mem[0][18].DB_MAX_OUTPUT_PORT_TYPE +out_data[19] <= mem[0][19].DB_MAX_OUTPUT_PORT_TYPE +out_data[20] <= mem[0][20].DB_MAX_OUTPUT_PORT_TYPE +out_data[21] <= mem[0][21].DB_MAX_OUTPUT_PORT_TYPE +out_data[22] <= mem[0][22].DB_MAX_OUTPUT_PORT_TYPE +out_data[23] <= mem[0][23].DB_MAX_OUTPUT_PORT_TYPE +out_data[24] <= mem[0][24].DB_MAX_OUTPUT_PORT_TYPE +out_data[25] <= mem[0][25].DB_MAX_OUTPUT_PORT_TYPE +out_data[26] <= mem[0][26].DB_MAX_OUTPUT_PORT_TYPE +out_data[27] <= mem[0][27].DB_MAX_OUTPUT_PORT_TYPE +out_data[28] <= mem[0][28].DB_MAX_OUTPUT_PORT_TYPE +out_data[29] <= mem[0][29].DB_MAX_OUTPUT_PORT_TYPE +out_data[30] <= mem[0][30].DB_MAX_OUTPUT_PORT_TYPE +out_data[31] <= mem[0][31].DB_MAX_OUTPUT_PORT_TYPE +out_data[32] <= mem[0][32].DB_MAX_OUTPUT_PORT_TYPE +out_data[33] <= mem[0][33].DB_MAX_OUTPUT_PORT_TYPE +out_data[34] <= mem[0][34].DB_MAX_OUTPUT_PORT_TYPE +out_data[35] <= mem[0][35].DB_MAX_OUTPUT_PORT_TYPE +out_data[36] <= mem[0][36].DB_MAX_OUTPUT_PORT_TYPE +out_data[37] <= mem[0][37].DB_MAX_OUTPUT_PORT_TYPE +out_data[38] <= mem[0][38].DB_MAX_OUTPUT_PORT_TYPE +out_data[39] <= mem[0][39].DB_MAX_OUTPUT_PORT_TYPE +out_data[40] <= mem[0][40].DB_MAX_OUTPUT_PORT_TYPE +out_data[41] <= mem[0][41].DB_MAX_OUTPUT_PORT_TYPE +out_data[42] <= mem[0][42].DB_MAX_OUTPUT_PORT_TYPE +out_data[43] <= mem[0][43].DB_MAX_OUTPUT_PORT_TYPE +out_data[44] <= mem[0][44].DB_MAX_OUTPUT_PORT_TYPE +out_data[45] <= mem[0][45].DB_MAX_OUTPUT_PORT_TYPE +out_data[46] <= mem[0][46].DB_MAX_OUTPUT_PORT_TYPE +out_data[47] <= mem[0][47].DB_MAX_OUTPUT_PORT_TYPE +out_data[48] <= mem[0][48].DB_MAX_OUTPUT_PORT_TYPE +out_data[49] <= mem[0][49].DB_MAX_OUTPUT_PORT_TYPE +out_data[50] <= mem[0][50].DB_MAX_OUTPUT_PORT_TYPE +out_data[51] <= mem[0][51].DB_MAX_OUTPUT_PORT_TYPE +out_data[52] <= mem[0][52].DB_MAX_OUTPUT_PORT_TYPE +out_data[53] <= mem[0][53].DB_MAX_OUTPUT_PORT_TYPE +out_data[54] <= mem[0][54].DB_MAX_OUTPUT_PORT_TYPE +out_data[55] <= mem[0][55].DB_MAX_OUTPUT_PORT_TYPE +out_data[56] <= mem[0][56].DB_MAX_OUTPUT_PORT_TYPE +out_data[57] <= mem[0][57].DB_MAX_OUTPUT_PORT_TYPE +out_data[58] <= mem[0][58].DB_MAX_OUTPUT_PORT_TYPE +out_data[59] <= mem[0][59].DB_MAX_OUTPUT_PORT_TYPE +out_data[60] <= mem[0][60].DB_MAX_OUTPUT_PORT_TYPE +out_data[61] <= mem[0][61].DB_MAX_OUTPUT_PORT_TYPE +out_data[62] <= mem[0][62].DB_MAX_OUTPUT_PORT_TYPE +out_data[63] <= mem[0][63].DB_MAX_OUTPUT_PORT_TYPE +out_data[64] <= mem[0][64].DB_MAX_OUTPUT_PORT_TYPE +out_data[65] <= mem[0][65].DB_MAX_OUTPUT_PORT_TYPE +out_data[66] <= mem[0][66].DB_MAX_OUTPUT_PORT_TYPE +out_data[67] <= mem[0][67].DB_MAX_OUTPUT_PORT_TYPE +out_data[68] <= mem[0][68].DB_MAX_OUTPUT_PORT_TYPE +out_data[69] <= mem[0][69].DB_MAX_OUTPUT_PORT_TYPE +out_data[70] <= mem[0][70].DB_MAX_OUTPUT_PORT_TYPE +out_data[71] <= mem[0][71].DB_MAX_OUTPUT_PORT_TYPE +out_data[72] <= mem[0][72].DB_MAX_OUTPUT_PORT_TYPE +out_data[73] <= mem[0][73].DB_MAX_OUTPUT_PORT_TYPE +out_data[74] <= mem[0][74].DB_MAX_OUTPUT_PORT_TYPE +out_data[75] <= mem[0][75].DB_MAX_OUTPUT_PORT_TYPE +out_data[76] <= mem[0][76].DB_MAX_OUTPUT_PORT_TYPE +out_data[77] <= mem[0][77].DB_MAX_OUTPUT_PORT_TYPE +out_data[78] <= mem[0][78].DB_MAX_OUTPUT_PORT_TYPE +out_data[79] <= mem[0][79].DB_MAX_OUTPUT_PORT_TYPE +out_data[80] <= mem[0][80].DB_MAX_OUTPUT_PORT_TYPE +out_data[81] <= mem[0][81].DB_MAX_OUTPUT_PORT_TYPE +out_data[82] <= mem[0][82].DB_MAX_OUTPUT_PORT_TYPE +out_data[83] <= mem[0][83].DB_MAX_OUTPUT_PORT_TYPE +out_data[84] <= mem[0][84].DB_MAX_OUTPUT_PORT_TYPE +out_data[85] <= mem[0][85].DB_MAX_OUTPUT_PORT_TYPE +out_data[86] <= mem[0][86].DB_MAX_OUTPUT_PORT_TYPE +out_data[87] <= mem[0][87].DB_MAX_OUTPUT_PORT_TYPE +out_data[88] <= mem[0][88].DB_MAX_OUTPUT_PORT_TYPE +out_data[89] <= mem[0][89].DB_MAX_OUTPUT_PORT_TYPE +out_data[90] <= mem[0][90].DB_MAX_OUTPUT_PORT_TYPE +out_data[91] <= mem[0][91].DB_MAX_OUTPUT_PORT_TYPE +out_data[92] <= mem[0][92].DB_MAX_OUTPUT_PORT_TYPE +out_data[93] <= mem[0][93].DB_MAX_OUTPUT_PORT_TYPE +out_data[94] <= mem[0][94].DB_MAX_OUTPUT_PORT_TYPE +out_data[95] <= mem[0][95].DB_MAX_OUTPUT_PORT_TYPE +out_data[96] <= mem[0][96].DB_MAX_OUTPUT_PORT_TYPE +out_valid <= mem_used[0].DB_MAX_OUTPUT_PORT_TYPE +out_startofpacket <= mem[0][98].DB_MAX_OUTPUT_PORT_TYPE +out_endofpacket <= mem[0][97].DB_MAX_OUTPUT_PORT_TYPE +out_empty[0] <= in_error[0].DB_MAX_OUTPUT_PORT_TYPE +out_error[0] <= in_error[0].DB_MAX_OUTPUT_PORT_TYPE +out_channel[0] <= in_channel[0].DB_MAX_OUTPUT_PORT_TYPE +out_ready => internal_out_ready.IN1 +csr_address[0] => ~NO_FANOUT~ +csr_address[1] => ~NO_FANOUT~ +csr_write => ~NO_FANOUT~ +csr_read => csr_readdata[31]~reg0.ENA +csr_read => csr_readdata[30]~reg0.ENA +csr_read => csr_readdata[29]~reg0.ENA +csr_read => csr_readdata[28]~reg0.ENA +csr_read => csr_readdata[27]~reg0.ENA +csr_read => csr_readdata[26]~reg0.ENA +csr_read => csr_readdata[25]~reg0.ENA +csr_read => csr_readdata[24]~reg0.ENA +csr_read => csr_readdata[23]~reg0.ENA +csr_read => csr_readdata[22]~reg0.ENA +csr_read => csr_readdata[21]~reg0.ENA +csr_read => csr_readdata[20]~reg0.ENA +csr_read => csr_readdata[19]~reg0.ENA +csr_read => csr_readdata[18]~reg0.ENA +csr_read => csr_readdata[17]~reg0.ENA +csr_read => csr_readdata[16]~reg0.ENA +csr_read => csr_readdata[15]~reg0.ENA +csr_read => csr_readdata[14]~reg0.ENA +csr_read => csr_readdata[13]~reg0.ENA +csr_read => csr_readdata[12]~reg0.ENA +csr_read => csr_readdata[11]~reg0.ENA +csr_read => csr_readdata[10]~reg0.ENA +csr_read => csr_readdata[9]~reg0.ENA +csr_read => csr_readdata[8]~reg0.ENA +csr_read => csr_readdata[7]~reg0.ENA +csr_read => csr_readdata[6]~reg0.ENA +csr_read => csr_readdata[5]~reg0.ENA +csr_read => csr_readdata[4]~reg0.ENA +csr_read => csr_readdata[3]~reg0.ENA +csr_read => csr_readdata[2]~reg0.ENA +csr_read => csr_readdata[1]~reg0.ENA +csr_read => csr_readdata[0]~reg0.ENA +csr_writedata[0] => ~NO_FANOUT~ +csr_writedata[1] => ~NO_FANOUT~ +csr_writedata[2] => ~NO_FANOUT~ +csr_writedata[3] => ~NO_FANOUT~ +csr_writedata[4] => ~NO_FANOUT~ +csr_writedata[5] => ~NO_FANOUT~ +csr_writedata[6] => ~NO_FANOUT~ +csr_writedata[7] => ~NO_FANOUT~ +csr_writedata[8] => ~NO_FANOUT~ +csr_writedata[9] => ~NO_FANOUT~ +csr_writedata[10] => ~NO_FANOUT~ +csr_writedata[11] => ~NO_FANOUT~ +csr_writedata[12] => ~NO_FANOUT~ +csr_writedata[13] => ~NO_FANOUT~ +csr_writedata[14] => ~NO_FANOUT~ +csr_writedata[15] => ~NO_FANOUT~ +csr_writedata[16] => ~NO_FANOUT~ +csr_writedata[17] => ~NO_FANOUT~ +csr_writedata[18] => ~NO_FANOUT~ +csr_writedata[19] => ~NO_FANOUT~ +csr_writedata[20] => ~NO_FANOUT~ +csr_writedata[21] => ~NO_FANOUT~ +csr_writedata[22] => ~NO_FANOUT~ +csr_writedata[23] => ~NO_FANOUT~ +csr_writedata[24] => ~NO_FANOUT~ +csr_writedata[25] => ~NO_FANOUT~ +csr_writedata[26] => ~NO_FANOUT~ +csr_writedata[27] => ~NO_FANOUT~ +csr_writedata[28] => ~NO_FANOUT~ +csr_writedata[29] => ~NO_FANOUT~ +csr_writedata[30] => ~NO_FANOUT~ +csr_writedata[31] => ~NO_FANOUT~ +csr_readdata[0] <= csr_readdata[0]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[1] <= csr_readdata[1]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[2] <= csr_readdata[2]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[3] <= csr_readdata[3]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[4] <= csr_readdata[4]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[5] <= csr_readdata[5]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[6] <= csr_readdata[6]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[7] <= csr_readdata[7]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[8] <= csr_readdata[8]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[9] <= csr_readdata[9]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[10] <= csr_readdata[10]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[11] <= csr_readdata[11]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[12] <= csr_readdata[12]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[13] <= csr_readdata[13]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[14] <= csr_readdata[14]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[15] <= csr_readdata[15]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[16] <= csr_readdata[16]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[17] <= csr_readdata[17]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[18] <= csr_readdata[18]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[19] <= csr_readdata[19]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[20] <= csr_readdata[20]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[21] <= csr_readdata[21]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[22] <= csr_readdata[22]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[23] <= csr_readdata[23]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[24] <= csr_readdata[24]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[25] <= csr_readdata[25]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[26] <= csr_readdata[26]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[27] <= csr_readdata[27]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[28] <= csr_readdata[28]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[29] <= csr_readdata[29]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[30] <= csr_readdata[30]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[31] <= csr_readdata[31]~reg0.DB_MAX_OUTPUT_PORT_TYPE +almost_full_data <= +almost_empty_data <= + + +|lights|nios_system:NiosII|altera_merlin_slave_agent:hex5_s1_translator_avalon_universal_slave_0_agent +clk => clk.IN1 +reset => reset.IN1 +m0_address[0] <= +m0_address[1] <= +m0_address[2] <= cp_data[38].DB_MAX_OUTPUT_PORT_TYPE +m0_address[3] <= cp_data[39].DB_MAX_OUTPUT_PORT_TYPE +m0_address[4] <= cp_data[40].DB_MAX_OUTPUT_PORT_TYPE +m0_address[5] <= cp_data[41].DB_MAX_OUTPUT_PORT_TYPE +m0_address[6] <= cp_data[42].DB_MAX_OUTPUT_PORT_TYPE +m0_address[7] <= cp_data[43].DB_MAX_OUTPUT_PORT_TYPE +m0_address[8] <= cp_data[44].DB_MAX_OUTPUT_PORT_TYPE +m0_address[9] <= cp_data[45].DB_MAX_OUTPUT_PORT_TYPE +m0_address[10] <= cp_data[46].DB_MAX_OUTPUT_PORT_TYPE +m0_address[11] <= cp_data[47].DB_MAX_OUTPUT_PORT_TYPE +m0_address[12] <= cp_data[48].DB_MAX_OUTPUT_PORT_TYPE +m0_address[13] <= cp_data[49].DB_MAX_OUTPUT_PORT_TYPE +m0_address[14] <= cp_data[50].DB_MAX_OUTPUT_PORT_TYPE +m0_address[15] <= cp_data[51].DB_MAX_OUTPUT_PORT_TYPE +m0_address[16] <= cp_data[52].DB_MAX_OUTPUT_PORT_TYPE +m0_address[17] <= cp_data[53].DB_MAX_OUTPUT_PORT_TYPE +m0_address[18] <= cp_data[54].DB_MAX_OUTPUT_PORT_TYPE +m0_burstcount[0] <= m0_burstcount.DB_MAX_OUTPUT_PORT_TYPE +m0_burstcount[1] <= m0_burstcount.DB_MAX_OUTPUT_PORT_TYPE +m0_burstcount[2] <= m0_burstcount.DB_MAX_OUTPUT_PORT_TYPE +m0_byteenable[0] <= cp_data[32].DB_MAX_OUTPUT_PORT_TYPE +m0_byteenable[1] <= cp_data[33].DB_MAX_OUTPUT_PORT_TYPE +m0_byteenable[2] <= cp_data[34].DB_MAX_OUTPUT_PORT_TYPE +m0_byteenable[3] <= cp_data[35].DB_MAX_OUTPUT_PORT_TYPE +m0_read <= m0_read.DB_MAX_OUTPUT_PORT_TYPE +m0_readdata[0] => rdata_fifo_src_data[0].DATAIN +m0_readdata[1] => rdata_fifo_src_data[1].DATAIN +m0_readdata[2] => rdata_fifo_src_data[2].DATAIN +m0_readdata[3] => rdata_fifo_src_data[3].DATAIN +m0_readdata[4] => rdata_fifo_src_data[4].DATAIN +m0_readdata[5] => rdata_fifo_src_data[5].DATAIN +m0_readdata[6] => rdata_fifo_src_data[6].DATAIN +m0_readdata[7] => rdata_fifo_src_data[7].DATAIN +m0_readdata[8] => rdata_fifo_src_data[8].DATAIN +m0_readdata[9] => rdata_fifo_src_data[9].DATAIN +m0_readdata[10] => rdata_fifo_src_data[10].DATAIN +m0_readdata[11] => rdata_fifo_src_data[11].DATAIN +m0_readdata[12] => rdata_fifo_src_data[12].DATAIN +m0_readdata[13] => rdata_fifo_src_data[13].DATAIN +m0_readdata[14] => rdata_fifo_src_data[14].DATAIN +m0_readdata[15] => rdata_fifo_src_data[15].DATAIN +m0_readdata[16] => rdata_fifo_src_data[16].DATAIN +m0_readdata[17] => rdata_fifo_src_data[17].DATAIN +m0_readdata[18] => rdata_fifo_src_data[18].DATAIN +m0_readdata[19] => rdata_fifo_src_data[19].DATAIN +m0_readdata[20] => rdata_fifo_src_data[20].DATAIN +m0_readdata[21] => rdata_fifo_src_data[21].DATAIN +m0_readdata[22] => rdata_fifo_src_data[22].DATAIN +m0_readdata[23] => rdata_fifo_src_data[23].DATAIN +m0_readdata[24] => rdata_fifo_src_data[24].DATAIN +m0_readdata[25] => rdata_fifo_src_data[25].DATAIN +m0_readdata[26] => rdata_fifo_src_data[26].DATAIN +m0_readdata[27] => rdata_fifo_src_data[27].DATAIN +m0_readdata[28] => rdata_fifo_src_data[28].DATAIN +m0_readdata[29] => rdata_fifo_src_data[29].DATAIN +m0_readdata[30] => rdata_fifo_src_data[30].DATAIN +m0_readdata[31] => rdata_fifo_src_data[31].DATAIN +m0_waitrequest => cp_ready.IN0 +m0_write <= m0_write.DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[0] <= cp_data[0].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[1] <= cp_data[1].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[2] <= cp_data[2].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[3] <= cp_data[3].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[4] <= cp_data[4].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[5] <= cp_data[5].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[6] <= cp_data[6].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[7] <= cp_data[7].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[8] <= cp_data[8].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[9] <= cp_data[9].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[10] <= cp_data[10].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[11] <= cp_data[11].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[12] <= cp_data[12].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[13] <= cp_data[13].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[14] <= cp_data[14].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[15] <= cp_data[15].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[16] <= cp_data[16].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[17] <= cp_data[17].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[18] <= cp_data[18].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[19] <= cp_data[19].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[20] <= cp_data[20].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[21] <= cp_data[21].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[22] <= cp_data[22].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[23] <= cp_data[23].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[24] <= cp_data[24].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[25] <= cp_data[25].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[26] <= cp_data[26].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[27] <= cp_data[27].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[28] <= cp_data[28].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[29] <= cp_data[29].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[30] <= cp_data[30].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[31] <= cp_data[31].DB_MAX_OUTPUT_PORT_TYPE +m0_readdatavalid => rdata_fifo_src_valid.IN0 +m0_debugaccess <= cp_data[87].DB_MAX_OUTPUT_PORT_TYPE +m0_lock <= m0_lock.DB_MAX_OUTPUT_PORT_TYPE +m0_response[0] => rdata_fifo_src_data[32].DATAIN +m0_response[1] => rdata_fifo_src_data[33].DATAIN +m0_writeresponserequest <= m0_writeresponserequest.DB_MAX_OUTPUT_PORT_TYPE +m0_writeresponsevalid => rdata_fifo_src_valid.IN1 +rf_source_data[0] <= +rf_source_data[1] <= +rf_source_data[2] <= +rf_source_data[3] <= +rf_source_data[4] <= +rf_source_data[5] <= +rf_source_data[6] <= +rf_source_data[7] <= +rf_source_data[8] <= +rf_source_data[9] <= +rf_source_data[10] <= +rf_source_data[11] <= +rf_source_data[12] <= +rf_source_data[13] <= +rf_source_data[14] <= +rf_source_data[15] <= +rf_source_data[16] <= +rf_source_data[17] <= +rf_source_data[18] <= +rf_source_data[19] <= +rf_source_data[20] <= +rf_source_data[21] <= +rf_source_data[22] <= +rf_source_data[23] <= +rf_source_data[24] <= +rf_source_data[25] <= +rf_source_data[26] <= +rf_source_data[27] <= +rf_source_data[28] <= +rf_source_data[29] <= +rf_source_data[30] <= +rf_source_data[31] <= +rf_source_data[32] <= cp_data[32].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[33] <= cp_data[33].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[34] <= cp_data[34].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[35] <= cp_data[35].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[36] <= cp_data[36].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[37] <= cp_data[37].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[38] <= cp_data[38].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[39] <= cp_data[39].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[40] <= cp_data[40].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[41] <= cp_data[41].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[42] <= cp_data[42].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[43] <= cp_data[43].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[44] <= cp_data[44].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[45] <= cp_data[45].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[46] <= cp_data[46].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[47] <= cp_data[47].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[48] <= cp_data[48].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[49] <= cp_data[49].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[50] <= cp_data[50].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[51] <= cp_data[51].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[52] <= cp_data[52].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[53] <= cp_data[53].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[54] <= cp_data[54].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[55] <= cp_data[55].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[56] <= cp_data[56].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[57] <= cp_data[57].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[58] <= cp_data[58].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[59] <= cp_data[59].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[60] <= cp_data[60].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[61] <= cp_data[61].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[62] <= cp_data[62].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[63] <= cp_data[63].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[64] <= cp_data[64].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[65] <= cp_data[65].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[66] <= cp_data[66].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[67] <= cp_data[67].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[68] <= cp_data[68].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[69] <= cp_data[69].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[70] <= cp_data[70].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[71] <= cp_data[71].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[72] <= cp_data[72].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[73] <= cp_data[73].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[74] <= cp_data[74].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[75] <= cp_data[75].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[76] <= cp_data[76].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[77] <= cp_data[77].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[78] <= cp_data[78].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[79] <= cp_data[79].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[80] <= cp_data[80].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[81] <= cp_data[81].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[82] <= cp_data[82].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[83] <= cp_data[83].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[84] <= cp_data[84].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[85] <= cp_data[85].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[86] <= cp_data[86].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[87] <= cp_data[87].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[88] <= +rf_source_data[89] <= +rf_source_data[90] <= cp_data[90].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[91] <= cp_data[91].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[92] <= cp_data[92].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[93] <= cp_data[93].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[94] <= cp_data[94].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[95] <= cp_data[95].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[96] <= nonposted_write_endofpacket.DB_MAX_OUTPUT_PORT_TYPE +rf_source_valid <= rf_source_valid.DB_MAX_OUTPUT_PORT_TYPE +rf_source_startofpacket <= cp_startofpacket.DB_MAX_OUTPUT_PORT_TYPE +rf_source_endofpacket <= cp_endofpacket.DB_MAX_OUTPUT_PORT_TYPE +rf_source_ready => cp_ready.IN1 +rf_source_ready => m0_write.IN1 +rf_source_ready => m0_lock.IN1 +rf_source_ready => rf_source_valid.IN1 +rf_source_ready => m0_read.IN1 +rf_sink_data[0] => ~NO_FANOUT~ +rf_sink_data[1] => ~NO_FANOUT~ +rf_sink_data[2] => ~NO_FANOUT~ +rf_sink_data[3] => ~NO_FANOUT~ +rf_sink_data[4] => ~NO_FANOUT~ +rf_sink_data[5] => ~NO_FANOUT~ +rf_sink_data[6] => ~NO_FANOUT~ +rf_sink_data[7] => ~NO_FANOUT~ +rf_sink_data[8] => ~NO_FANOUT~ +rf_sink_data[9] => ~NO_FANOUT~ +rf_sink_data[10] => ~NO_FANOUT~ +rf_sink_data[11] => ~NO_FANOUT~ +rf_sink_data[12] => ~NO_FANOUT~ +rf_sink_data[13] => ~NO_FANOUT~ +rf_sink_data[14] => ~NO_FANOUT~ +rf_sink_data[15] => ~NO_FANOUT~ +rf_sink_data[16] => ~NO_FANOUT~ +rf_sink_data[17] => ~NO_FANOUT~ +rf_sink_data[18] => ~NO_FANOUT~ +rf_sink_data[19] => ~NO_FANOUT~ +rf_sink_data[20] => ~NO_FANOUT~ +rf_sink_data[21] => ~NO_FANOUT~ +rf_sink_data[22] => ~NO_FANOUT~ +rf_sink_data[23] => ~NO_FANOUT~ +rf_sink_data[24] => ~NO_FANOUT~ +rf_sink_data[25] => ~NO_FANOUT~ +rf_sink_data[26] => ~NO_FANOUT~ +rf_sink_data[27] => ~NO_FANOUT~ +rf_sink_data[28] => ~NO_FANOUT~ +rf_sink_data[29] => ~NO_FANOUT~ +rf_sink_data[30] => ~NO_FANOUT~ +rf_sink_data[31] => ~NO_FANOUT~ +rf_sink_data[32] => rp_data[32].DATAIN +rf_sink_data[33] => rp_data[33].DATAIN +rf_sink_data[34] => rp_data[34].DATAIN +rf_sink_data[35] => rp_data[35].DATAIN +rf_sink_data[36] => rf_sink_addr[0].IN1 +rf_sink_data[37] => rf_sink_addr[1].IN1 +rf_sink_data[38] => rf_sink_addr[2].IN1 +rf_sink_data[39] => rf_sink_addr[3].IN1 +rf_sink_data[40] => rf_sink_addr[4].IN1 +rf_sink_data[41] => rf_sink_addr[5].IN1 +rf_sink_data[42] => rf_sink_addr[6].IN1 +rf_sink_data[43] => rf_sink_addr[7].IN1 +rf_sink_data[44] => rf_sink_addr[8].IN1 +rf_sink_data[45] => rf_sink_addr[9].IN1 +rf_sink_data[46] => rf_sink_addr[10].IN1 +rf_sink_data[47] => rf_sink_addr[11].IN1 +rf_sink_data[48] => rf_sink_addr[12].IN1 +rf_sink_data[49] => rf_sink_addr[13].IN1 +rf_sink_data[50] => rf_sink_addr[14].IN1 +rf_sink_data[51] => rf_sink_addr[15].IN1 +rf_sink_data[52] => rf_sink_addr[16].IN1 +rf_sink_data[53] => rf_sink_addr[17].IN1 +rf_sink_data[54] => rf_sink_addr[18].IN1 +rf_sink_data[55] => rf_sink_compressed.IN1 +rf_sink_data[56] => rp_data[56].DATAIN +rf_sink_data[57] => comb.OUTPUTSELECT +rf_sink_data[57] => rp_data[57].DATAIN +rf_sink_data[58] => rp_data.IN0 +rf_sink_data[59] => rp_data[59].DATAIN +rf_sink_data[60] => rp_data[60].DATAIN +rf_sink_data[61] => rf_sink_byte_cnt[0].IN1 +rf_sink_data[62] => rf_sink_byte_cnt[1].IN1 +rf_sink_data[63] => rf_sink_byte_cnt[2].IN1 +rf_sink_data[64] => rf_sink_burstwrap[0].IN1 +rf_sink_data[65] => rf_sink_burstwrap[1].IN1 +rf_sink_data[66] => rf_sink_burstwrap[2].IN1 +rf_sink_data[67] => rf_sink_burstsize[0].IN1 +rf_sink_data[68] => rf_sink_burstsize[1].IN1 +rf_sink_data[69] => rf_sink_burstsize[2].IN1 +rf_sink_data[70] => rp_data[70].DATAIN +rf_sink_data[71] => rp_data[71].DATAIN +rf_sink_data[72] => rp_data[72].DATAIN +rf_sink_data[73] => rp_data[73].DATAIN +rf_sink_data[74] => rp_data[74].DATAIN +rf_sink_data[75] => rp_data[75].DATAIN +rf_sink_data[76] => rp_data[81].DATAIN +rf_sink_data[77] => rp_data[82].DATAIN +rf_sink_data[78] => rp_data[83].DATAIN +rf_sink_data[79] => rp_data[84].DATAIN +rf_sink_data[80] => rp_data[85].DATAIN +rf_sink_data[81] => rp_data[76].DATAIN +rf_sink_data[82] => rp_data[77].DATAIN +rf_sink_data[83] => rp_data[78].DATAIN +rf_sink_data[84] => rp_data[79].DATAIN +rf_sink_data[85] => rp_data[80].DATAIN +rf_sink_data[86] => rp_data[86].DATAIN +rf_sink_data[87] => rp_data[87].DATAIN +rf_sink_data[88] => rp_data[88].DATAIN +rf_sink_data[89] => rp_data[89].DATAIN +rf_sink_data[90] => rp_data[90].DATAIN +rf_sink_data[91] => rp_data[91].DATAIN +rf_sink_data[92] => rp_data[92].DATAIN +rf_sink_data[93] => rp_data[93].DATAIN +rf_sink_data[94] => ~NO_FANOUT~ +rf_sink_data[95] => ~NO_FANOUT~ +rf_sink_data[96] => rdata_fifo_sink_ready.IN0 +rf_sink_data[96] => comb.IN0 +rf_sink_valid => rdata_fifo_sink_ready.IN1 +rf_sink_valid => comb.IN1 +rf_sink_startofpacket => comb.DATAA +rf_sink_endofpacket => rf_sink_endofpacket.IN1 +rf_sink_ready <= altera_merlin_burst_uncompressor:uncompressor.sink_ready +rdata_fifo_src_data[0] <= m0_readdata[0].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[1] <= m0_readdata[1].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[2] <= m0_readdata[2].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[3] <= m0_readdata[3].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[4] <= m0_readdata[4].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[5] <= m0_readdata[5].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[6] <= m0_readdata[6].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[7] <= m0_readdata[7].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[8] <= m0_readdata[8].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[9] <= m0_readdata[9].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[10] <= m0_readdata[10].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[11] <= m0_readdata[11].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[12] <= m0_readdata[12].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[13] <= m0_readdata[13].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[14] <= m0_readdata[14].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[15] <= m0_readdata[15].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[16] <= m0_readdata[16].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[17] <= m0_readdata[17].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[18] <= m0_readdata[18].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[19] <= m0_readdata[19].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[20] <= m0_readdata[20].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[21] <= m0_readdata[21].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[22] <= m0_readdata[22].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[23] <= m0_readdata[23].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[24] <= m0_readdata[24].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[25] <= m0_readdata[25].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[26] <= m0_readdata[26].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[27] <= m0_readdata[27].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[28] <= m0_readdata[28].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[29] <= m0_readdata[29].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[30] <= m0_readdata[30].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[31] <= m0_readdata[31].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[32] <= m0_response[0].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[33] <= m0_response[1].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_valid <= rdata_fifo_src_valid.DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_ready => ~NO_FANOUT~ +rdata_fifo_sink_data[0] => rp_data[0].DATAIN +rdata_fifo_sink_data[1] => rp_data[1].DATAIN +rdata_fifo_sink_data[2] => rp_data[2].DATAIN +rdata_fifo_sink_data[3] => rp_data[3].DATAIN +rdata_fifo_sink_data[4] => rp_data[4].DATAIN +rdata_fifo_sink_data[5] => rp_data[5].DATAIN +rdata_fifo_sink_data[6] => rp_data[6].DATAIN +rdata_fifo_sink_data[7] => rp_data[7].DATAIN +rdata_fifo_sink_data[8] => rp_data[8].DATAIN +rdata_fifo_sink_data[9] => rp_data[9].DATAIN +rdata_fifo_sink_data[10] => rp_data[10].DATAIN +rdata_fifo_sink_data[11] => rp_data[11].DATAIN +rdata_fifo_sink_data[12] => rp_data[12].DATAIN +rdata_fifo_sink_data[13] => rp_data[13].DATAIN +rdata_fifo_sink_data[14] => rp_data[14].DATAIN +rdata_fifo_sink_data[15] => rp_data[15].DATAIN +rdata_fifo_sink_data[16] => rp_data[16].DATAIN +rdata_fifo_sink_data[17] => rp_data[17].DATAIN +rdata_fifo_sink_data[18] => rp_data[18].DATAIN +rdata_fifo_sink_data[19] => rp_data[19].DATAIN +rdata_fifo_sink_data[20] => rp_data[20].DATAIN +rdata_fifo_sink_data[21] => rp_data[21].DATAIN +rdata_fifo_sink_data[22] => rp_data[22].DATAIN +rdata_fifo_sink_data[23] => rp_data[23].DATAIN +rdata_fifo_sink_data[24] => rp_data[24].DATAIN +rdata_fifo_sink_data[25] => rp_data[25].DATAIN +rdata_fifo_sink_data[26] => rp_data[26].DATAIN +rdata_fifo_sink_data[27] => rp_data[27].DATAIN +rdata_fifo_sink_data[28] => rp_data[28].DATAIN +rdata_fifo_sink_data[29] => rp_data[29].DATAIN +rdata_fifo_sink_data[30] => rp_data[30].DATAIN +rdata_fifo_sink_data[31] => rp_data[31].DATAIN +rdata_fifo_sink_data[32] => rp_data[94].DATAIN +rdata_fifo_sink_data[33] => rp_data[95].DATAIN +rdata_fifo_sink_valid => rp_valid.IN1 +rdata_fifo_sink_valid => rdata_fifo_sink_ready.IN0 +rdata_fifo_sink_valid => comb.IN1 +rdata_fifo_sink_ready <= rdata_fifo_sink_ready.DB_MAX_OUTPUT_PORT_TYPE +cp_ready <= cp_ready.DB_MAX_OUTPUT_PORT_TYPE +cp_valid => local_lock.IN0 +cp_valid => local_write.IN0 +cp_valid => local_read.IN0 +cp_valid => local_compressed_read.IN0 +cp_data[0] => m0_writedata[0].DATAIN +cp_data[1] => m0_writedata[1].DATAIN +cp_data[2] => m0_writedata[2].DATAIN +cp_data[3] => m0_writedata[3].DATAIN +cp_data[4] => m0_writedata[4].DATAIN +cp_data[5] => m0_writedata[5].DATAIN +cp_data[6] => m0_writedata[6].DATAIN +cp_data[7] => m0_writedata[7].DATAIN +cp_data[8] => m0_writedata[8].DATAIN +cp_data[9] => m0_writedata[9].DATAIN +cp_data[10] => m0_writedata[10].DATAIN +cp_data[11] => m0_writedata[11].DATAIN +cp_data[12] => m0_writedata[12].DATAIN +cp_data[13] => m0_writedata[13].DATAIN +cp_data[14] => m0_writedata[14].DATAIN +cp_data[15] => m0_writedata[15].DATAIN +cp_data[16] => m0_writedata[16].DATAIN +cp_data[17] => m0_writedata[17].DATAIN +cp_data[18] => m0_writedata[18].DATAIN +cp_data[19] => m0_writedata[19].DATAIN +cp_data[20] => m0_writedata[20].DATAIN +cp_data[21] => m0_writedata[21].DATAIN +cp_data[22] => m0_writedata[22].DATAIN +cp_data[23] => m0_writedata[23].DATAIN +cp_data[24] => m0_writedata[24].DATAIN +cp_data[25] => m0_writedata[25].DATAIN +cp_data[26] => m0_writedata[26].DATAIN +cp_data[27] => m0_writedata[27].DATAIN +cp_data[28] => m0_writedata[28].DATAIN +cp_data[29] => m0_writedata[29].DATAIN +cp_data[30] => m0_writedata[30].DATAIN +cp_data[31] => m0_writedata[31].DATAIN +cp_data[32] => rf_source_data[32].DATAIN +cp_data[32] => m0_byteenable[0].DATAIN +cp_data[33] => rf_source_data[33].DATAIN +cp_data[33] => m0_byteenable[1].DATAIN +cp_data[34] => rf_source_data[34].DATAIN +cp_data[34] => m0_byteenable[2].DATAIN +cp_data[35] => rf_source_data[35].DATAIN +cp_data[35] => m0_byteenable[3].DATAIN +cp_data[36] => rf_source_data[36].DATAIN +cp_data[37] => rf_source_data[37].DATAIN +cp_data[38] => rf_source_data[38].DATAIN +cp_data[38] => m0_address[2].DATAIN +cp_data[39] => rf_source_data[39].DATAIN +cp_data[39] => m0_address[3].DATAIN +cp_data[40] => rf_source_data[40].DATAIN +cp_data[40] => m0_address[4].DATAIN +cp_data[41] => rf_source_data[41].DATAIN +cp_data[41] => m0_address[5].DATAIN +cp_data[42] => rf_source_data[42].DATAIN +cp_data[42] => m0_address[6].DATAIN +cp_data[43] => rf_source_data[43].DATAIN +cp_data[43] => m0_address[7].DATAIN +cp_data[44] => rf_source_data[44].DATAIN +cp_data[44] => m0_address[8].DATAIN +cp_data[45] => rf_source_data[45].DATAIN +cp_data[45] => m0_address[9].DATAIN +cp_data[46] => rf_source_data[46].DATAIN +cp_data[46] => m0_address[10].DATAIN +cp_data[47] => rf_source_data[47].DATAIN +cp_data[47] => m0_address[11].DATAIN +cp_data[48] => rf_source_data[48].DATAIN +cp_data[48] => m0_address[12].DATAIN +cp_data[49] => rf_source_data[49].DATAIN +cp_data[49] => m0_address[13].DATAIN +cp_data[50] => rf_source_data[50].DATAIN +cp_data[50] => m0_address[14].DATAIN +cp_data[51] => rf_source_data[51].DATAIN +cp_data[51] => m0_address[15].DATAIN +cp_data[52] => rf_source_data[52].DATAIN +cp_data[52] => m0_address[16].DATAIN +cp_data[53] => rf_source_data[53].DATAIN +cp_data[53] => m0_address[17].DATAIN +cp_data[54] => rf_source_data[54].DATAIN +cp_data[54] => m0_address[18].DATAIN +cp_data[55] => local_compressed_read.IN1 +cp_data[55] => rf_source_data[55].DATAIN +cp_data[56] => rf_source_data[56].DATAIN +cp_data[56] => m0_writeresponserequest.IN1 +cp_data[56] => comb.IN1 +cp_data[57] => local_write.IN1 +cp_data[57] => rf_source_data[57].DATAIN +cp_data[58] => local_read.IN1 +cp_data[58] => rf_source_data[58].DATAIN +cp_data[59] => local_lock.IN1 +cp_data[59] => rf_source_data[59].DATAIN +cp_data[60] => rf_source_data[60].DATAIN +cp_data[61] => m0_burstcount.DATAA +cp_data[61] => rf_source_data[61].DATAIN +cp_data[62] => m0_burstcount.DATAA +cp_data[62] => rf_source_data[62].DATAIN +cp_data[63] => m0_burstcount.DATAA +cp_data[63] => rf_source_data[63].DATAIN +cp_data[64] => rf_source_data[64].DATAIN +cp_data[65] => rf_source_data[65].DATAIN +cp_data[66] => rf_source_data[66].DATAIN +cp_data[67] => rf_source_data[67].DATAIN +cp_data[68] => rf_source_data[68].DATAIN +cp_data[69] => rf_source_data[69].DATAIN +cp_data[70] => rf_source_data[70].DATAIN +cp_data[71] => rf_source_data[71].DATAIN +cp_data[72] => rf_source_data[72].DATAIN +cp_data[73] => rf_source_data[73].DATAIN +cp_data[74] => rf_source_data[74].DATAIN +cp_data[75] => rf_source_data[75].DATAIN +cp_data[76] => rf_source_data[76].DATAIN +cp_data[77] => rf_source_data[77].DATAIN +cp_data[78] => rf_source_data[78].DATAIN +cp_data[79] => rf_source_data[79].DATAIN +cp_data[80] => rf_source_data[80].DATAIN +cp_data[81] => rf_source_data[81].DATAIN +cp_data[82] => rf_source_data[82].DATAIN +cp_data[83] => rf_source_data[83].DATAIN +cp_data[84] => rf_source_data[84].DATAIN +cp_data[85] => rf_source_data[85].DATAIN +cp_data[86] => rf_source_data[86].DATAIN +cp_data[87] => rf_source_data[87].DATAIN +cp_data[87] => m0_debugaccess.DATAIN +cp_data[88] => ~NO_FANOUT~ +cp_data[89] => ~NO_FANOUT~ +cp_data[90] => rf_source_data[90].DATAIN +cp_data[91] => rf_source_data[91].DATAIN +cp_data[92] => rf_source_data[92].DATAIN +cp_data[93] => rf_source_data[93].DATAIN +cp_data[94] => rf_source_data[94].DATAIN +cp_data[95] => rf_source_data[95].DATAIN +cp_channel[0] => ~NO_FANOUT~ +cp_channel[1] => ~NO_FANOUT~ +cp_channel[2] => ~NO_FANOUT~ +cp_channel[3] => ~NO_FANOUT~ +cp_channel[4] => ~NO_FANOUT~ +cp_channel[5] => ~NO_FANOUT~ +cp_channel[6] => ~NO_FANOUT~ +cp_channel[7] => ~NO_FANOUT~ +cp_channel[8] => ~NO_FANOUT~ +cp_channel[9] => ~NO_FANOUT~ +cp_channel[10] => ~NO_FANOUT~ +cp_channel[11] => ~NO_FANOUT~ +cp_channel[12] => ~NO_FANOUT~ +cp_channel[13] => ~NO_FANOUT~ +cp_channel[14] => ~NO_FANOUT~ +cp_channel[15] => ~NO_FANOUT~ +cp_channel[16] => ~NO_FANOUT~ +cp_channel[17] => ~NO_FANOUT~ +cp_startofpacket => rf_source_startofpacket.DATAIN +cp_endofpacket => nonposted_write_endofpacket.IN1 +cp_endofpacket => rf_source_endofpacket.DATAIN +rp_ready => rp_ready.IN1 +rp_valid <= rp_valid.DB_MAX_OUTPUT_PORT_TYPE +rp_data[0] <= rdata_fifo_sink_data[0].DB_MAX_OUTPUT_PORT_TYPE +rp_data[1] <= rdata_fifo_sink_data[1].DB_MAX_OUTPUT_PORT_TYPE +rp_data[2] <= rdata_fifo_sink_data[2].DB_MAX_OUTPUT_PORT_TYPE +rp_data[3] <= rdata_fifo_sink_data[3].DB_MAX_OUTPUT_PORT_TYPE +rp_data[4] <= rdata_fifo_sink_data[4].DB_MAX_OUTPUT_PORT_TYPE +rp_data[5] <= rdata_fifo_sink_data[5].DB_MAX_OUTPUT_PORT_TYPE +rp_data[6] <= rdata_fifo_sink_data[6].DB_MAX_OUTPUT_PORT_TYPE +rp_data[7] <= rdata_fifo_sink_data[7].DB_MAX_OUTPUT_PORT_TYPE +rp_data[8] <= rdata_fifo_sink_data[8].DB_MAX_OUTPUT_PORT_TYPE +rp_data[9] <= rdata_fifo_sink_data[9].DB_MAX_OUTPUT_PORT_TYPE +rp_data[10] <= rdata_fifo_sink_data[10].DB_MAX_OUTPUT_PORT_TYPE +rp_data[11] <= rdata_fifo_sink_data[11].DB_MAX_OUTPUT_PORT_TYPE +rp_data[12] <= rdata_fifo_sink_data[12].DB_MAX_OUTPUT_PORT_TYPE +rp_data[13] <= rdata_fifo_sink_data[13].DB_MAX_OUTPUT_PORT_TYPE +rp_data[14] <= rdata_fifo_sink_data[14].DB_MAX_OUTPUT_PORT_TYPE +rp_data[15] <= rdata_fifo_sink_data[15].DB_MAX_OUTPUT_PORT_TYPE +rp_data[16] <= rdata_fifo_sink_data[16].DB_MAX_OUTPUT_PORT_TYPE +rp_data[17] <= rdata_fifo_sink_data[17].DB_MAX_OUTPUT_PORT_TYPE +rp_data[18] <= rdata_fifo_sink_data[18].DB_MAX_OUTPUT_PORT_TYPE +rp_data[19] <= rdata_fifo_sink_data[19].DB_MAX_OUTPUT_PORT_TYPE +rp_data[20] <= rdata_fifo_sink_data[20].DB_MAX_OUTPUT_PORT_TYPE +rp_data[21] <= rdata_fifo_sink_data[21].DB_MAX_OUTPUT_PORT_TYPE +rp_data[22] <= rdata_fifo_sink_data[22].DB_MAX_OUTPUT_PORT_TYPE +rp_data[23] <= rdata_fifo_sink_data[23].DB_MAX_OUTPUT_PORT_TYPE +rp_data[24] <= rdata_fifo_sink_data[24].DB_MAX_OUTPUT_PORT_TYPE +rp_data[25] <= rdata_fifo_sink_data[25].DB_MAX_OUTPUT_PORT_TYPE +rp_data[26] <= rdata_fifo_sink_data[26].DB_MAX_OUTPUT_PORT_TYPE +rp_data[27] <= rdata_fifo_sink_data[27].DB_MAX_OUTPUT_PORT_TYPE +rp_data[28] <= rdata_fifo_sink_data[28].DB_MAX_OUTPUT_PORT_TYPE +rp_data[29] <= rdata_fifo_sink_data[29].DB_MAX_OUTPUT_PORT_TYPE +rp_data[30] <= rdata_fifo_sink_data[30].DB_MAX_OUTPUT_PORT_TYPE +rp_data[31] <= rdata_fifo_sink_data[31].DB_MAX_OUTPUT_PORT_TYPE +rp_data[32] <= rf_sink_data[32].DB_MAX_OUTPUT_PORT_TYPE +rp_data[33] <= rf_sink_data[33].DB_MAX_OUTPUT_PORT_TYPE +rp_data[34] <= rf_sink_data[34].DB_MAX_OUTPUT_PORT_TYPE +rp_data[35] <= rf_sink_data[35].DB_MAX_OUTPUT_PORT_TYPE +rp_data[36] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[37] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[38] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[39] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[40] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[41] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[42] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[43] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[44] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[45] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[46] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[47] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[48] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[49] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[50] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[51] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[52] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[53] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[54] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[55] <= altera_merlin_burst_uncompressor:uncompressor.source_is_compressed +rp_data[56] <= rf_sink_data[56].DB_MAX_OUTPUT_PORT_TYPE +rp_data[57] <= rf_sink_data[57].DB_MAX_OUTPUT_PORT_TYPE +rp_data[58] <= rp_data.DB_MAX_OUTPUT_PORT_TYPE +rp_data[59] <= rf_sink_data[59].DB_MAX_OUTPUT_PORT_TYPE +rp_data[60] <= rf_sink_data[60].DB_MAX_OUTPUT_PORT_TYPE +rp_data[61] <= altera_merlin_burst_uncompressor:uncompressor.source_byte_cnt +rp_data[62] <= altera_merlin_burst_uncompressor:uncompressor.source_byte_cnt +rp_data[63] <= altera_merlin_burst_uncompressor:uncompressor.source_byte_cnt +rp_data[64] <= altera_merlin_burst_uncompressor:uncompressor.source_burstwrap +rp_data[65] <= altera_merlin_burst_uncompressor:uncompressor.source_burstwrap +rp_data[66] <= altera_merlin_burst_uncompressor:uncompressor.source_burstwrap +rp_data[67] <= altera_merlin_burst_uncompressor:uncompressor.source_burstsize +rp_data[68] <= altera_merlin_burst_uncompressor:uncompressor.source_burstsize +rp_data[69] <= altera_merlin_burst_uncompressor:uncompressor.source_burstsize +rp_data[70] <= rf_sink_data[70].DB_MAX_OUTPUT_PORT_TYPE +rp_data[71] <= rf_sink_data[71].DB_MAX_OUTPUT_PORT_TYPE +rp_data[72] <= rf_sink_data[72].DB_MAX_OUTPUT_PORT_TYPE +rp_data[73] <= rf_sink_data[73].DB_MAX_OUTPUT_PORT_TYPE +rp_data[74] <= rf_sink_data[74].DB_MAX_OUTPUT_PORT_TYPE +rp_data[75] <= rf_sink_data[75].DB_MAX_OUTPUT_PORT_TYPE +rp_data[76] <= rf_sink_data[81].DB_MAX_OUTPUT_PORT_TYPE +rp_data[77] <= rf_sink_data[82].DB_MAX_OUTPUT_PORT_TYPE +rp_data[78] <= rf_sink_data[83].DB_MAX_OUTPUT_PORT_TYPE +rp_data[79] <= rf_sink_data[84].DB_MAX_OUTPUT_PORT_TYPE +rp_data[80] <= rf_sink_data[85].DB_MAX_OUTPUT_PORT_TYPE +rp_data[81] <= rf_sink_data[76].DB_MAX_OUTPUT_PORT_TYPE +rp_data[82] <= rf_sink_data[77].DB_MAX_OUTPUT_PORT_TYPE +rp_data[83] <= rf_sink_data[78].DB_MAX_OUTPUT_PORT_TYPE +rp_data[84] <= rf_sink_data[79].DB_MAX_OUTPUT_PORT_TYPE +rp_data[85] <= rf_sink_data[80].DB_MAX_OUTPUT_PORT_TYPE +rp_data[86] <= rf_sink_data[86].DB_MAX_OUTPUT_PORT_TYPE +rp_data[87] <= rf_sink_data[87].DB_MAX_OUTPUT_PORT_TYPE +rp_data[88] <= rf_sink_data[88].DB_MAX_OUTPUT_PORT_TYPE +rp_data[89] <= rf_sink_data[89].DB_MAX_OUTPUT_PORT_TYPE +rp_data[90] <= rf_sink_data[90].DB_MAX_OUTPUT_PORT_TYPE +rp_data[91] <= rf_sink_data[91].DB_MAX_OUTPUT_PORT_TYPE +rp_data[92] <= rf_sink_data[92].DB_MAX_OUTPUT_PORT_TYPE +rp_data[93] <= rf_sink_data[93].DB_MAX_OUTPUT_PORT_TYPE +rp_data[94] <= rdata_fifo_sink_data[32].DB_MAX_OUTPUT_PORT_TYPE +rp_data[95] <= rdata_fifo_sink_data[33].DB_MAX_OUTPUT_PORT_TYPE +rp_startofpacket <= altera_merlin_burst_uncompressor:uncompressor.source_startofpacket +rp_endofpacket <= altera_merlin_burst_uncompressor:uncompressor.source_endofpacket + + +|lights|nios_system:NiosII|altera_merlin_slave_agent:hex5_s1_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor +clk => burst_uncompress_address_offset[0].CLK +clk => burst_uncompress_address_offset[1].CLK +clk => burst_uncompress_address_offset[2].CLK +clk => burst_uncompress_address_offset[3].CLK +clk => burst_uncompress_address_offset[4].CLK +clk => burst_uncompress_address_offset[5].CLK +clk => burst_uncompress_address_offset[6].CLK +clk => burst_uncompress_address_offset[7].CLK +clk => burst_uncompress_address_offset[8].CLK +clk => burst_uncompress_address_offset[9].CLK +clk => burst_uncompress_address_offset[10].CLK +clk => burst_uncompress_address_offset[11].CLK +clk => burst_uncompress_address_offset[12].CLK +clk => burst_uncompress_address_offset[13].CLK +clk => burst_uncompress_address_offset[14].CLK +clk => burst_uncompress_address_offset[15].CLK +clk => burst_uncompress_address_offset[16].CLK +clk => burst_uncompress_address_offset[17].CLK +clk => burst_uncompress_address_offset[18].CLK +clk => burst_uncompress_address_base[0].CLK +clk => burst_uncompress_address_base[1].CLK +clk => burst_uncompress_address_base[2].CLK +clk => burst_uncompress_address_base[3].CLK +clk => burst_uncompress_address_base[4].CLK +clk => burst_uncompress_address_base[5].CLK +clk => burst_uncompress_address_base[6].CLK +clk => burst_uncompress_address_base[7].CLK +clk => burst_uncompress_address_base[8].CLK +clk => burst_uncompress_address_base[9].CLK +clk => burst_uncompress_address_base[10].CLK +clk => burst_uncompress_address_base[11].CLK +clk => burst_uncompress_address_base[12].CLK +clk => burst_uncompress_address_base[13].CLK +clk => burst_uncompress_address_base[14].CLK +clk => burst_uncompress_address_base[15].CLK +clk => burst_uncompress_address_base[16].CLK +clk => burst_uncompress_address_base[17].CLK +clk => burst_uncompress_address_base[18].CLK +clk => burst_uncompress_byte_counter[0].CLK +clk => burst_uncompress_byte_counter[1].CLK +clk => burst_uncompress_byte_counter[2].CLK +clk => burst_uncompress_busy.CLK +reset => burst_uncompress_address_offset[0].ACLR +reset => burst_uncompress_address_offset[1].ACLR +reset => burst_uncompress_address_offset[2].ACLR +reset => burst_uncompress_address_offset[3].ACLR +reset => burst_uncompress_address_offset[4].ACLR +reset => burst_uncompress_address_offset[5].ACLR +reset => burst_uncompress_address_offset[6].ACLR +reset => burst_uncompress_address_offset[7].ACLR +reset => burst_uncompress_address_offset[8].ACLR +reset => burst_uncompress_address_offset[9].ACLR +reset => burst_uncompress_address_offset[10].ACLR +reset => burst_uncompress_address_offset[11].ACLR +reset => burst_uncompress_address_offset[12].ACLR +reset => burst_uncompress_address_offset[13].ACLR +reset => burst_uncompress_address_offset[14].ACLR +reset => burst_uncompress_address_offset[15].ACLR +reset => burst_uncompress_address_offset[16].ACLR +reset => burst_uncompress_address_offset[17].ACLR +reset => burst_uncompress_address_offset[18].ACLR +reset => burst_uncompress_address_base[0].ACLR +reset => burst_uncompress_address_base[1].ACLR +reset => burst_uncompress_address_base[2].ACLR +reset => burst_uncompress_address_base[3].ACLR +reset => burst_uncompress_address_base[4].ACLR +reset => burst_uncompress_address_base[5].ACLR +reset => burst_uncompress_address_base[6].ACLR +reset => burst_uncompress_address_base[7].ACLR +reset => burst_uncompress_address_base[8].ACLR +reset => burst_uncompress_address_base[9].ACLR +reset => burst_uncompress_address_base[10].ACLR +reset => burst_uncompress_address_base[11].ACLR +reset => burst_uncompress_address_base[12].ACLR +reset => burst_uncompress_address_base[13].ACLR +reset => burst_uncompress_address_base[14].ACLR +reset => burst_uncompress_address_base[15].ACLR +reset => burst_uncompress_address_base[16].ACLR +reset => burst_uncompress_address_base[17].ACLR +reset => burst_uncompress_address_base[18].ACLR +reset => burst_uncompress_byte_counter[0].ACLR +reset => burst_uncompress_byte_counter[1].ACLR +reset => burst_uncompress_byte_counter[2].ACLR +reset => burst_uncompress_busy.ACLR +sink_startofpacket => source_startofpacket.IN1 +sink_endofpacket => source_endofpacket.IN1 +sink_valid => first_packet_beat.IN1 +sink_valid => last_packet_beat.IN1 +sink_valid => last_packet_beat.IN1 +sink_valid => always0.IN1 +sink_valid => sink_ready.IN0 +sink_valid => source_valid.DATAIN +sink_ready <= sink_ready.DB_MAX_OUTPUT_PORT_TYPE +sink_addr[0] => burst_uncompress_address_base.IN0 +sink_addr[0] => comb.DATAB +sink_addr[0] => source_addr.DATAB +sink_addr[1] => burst_uncompress_address_base.IN0 +sink_addr[1] => comb.DATAB +sink_addr[1] => source_addr.DATAB +sink_addr[2] => burst_uncompress_address_base.IN0 +sink_addr[2] => comb.DATAB +sink_addr[2] => source_addr.DATAB +sink_addr[3] => burst_uncompress_address_base.IN0 +sink_addr[3] => comb.DATAB +sink_addr[3] => source_addr.DATAB +sink_addr[4] => burst_uncompress_address_base.IN0 +sink_addr[4] => comb.DATAB +sink_addr[4] => source_addr.DATAB +sink_addr[5] => burst_uncompress_address_base.IN0 +sink_addr[5] => comb.DATAB +sink_addr[5] => source_addr.DATAB +sink_addr[6] => burst_uncompress_address_base.IN0 +sink_addr[6] => comb.DATAB +sink_addr[6] => source_addr.DATAB +sink_addr[7] => burst_uncompress_address_base.IN0 +sink_addr[7] => comb.DATAB +sink_addr[7] => source_addr.DATAB +sink_addr[8] => burst_uncompress_address_base.IN0 +sink_addr[8] => comb.DATAB +sink_addr[8] => source_addr.DATAB +sink_addr[9] => burst_uncompress_address_base.IN0 +sink_addr[9] => comb.DATAB +sink_addr[9] => source_addr.DATAB +sink_addr[10] => burst_uncompress_address_base.IN0 +sink_addr[10] => comb.DATAB +sink_addr[10] => source_addr.DATAB +sink_addr[11] => burst_uncompress_address_base.IN0 +sink_addr[11] => comb.DATAB +sink_addr[11] => source_addr.DATAB +sink_addr[12] => burst_uncompress_address_base.IN0 +sink_addr[12] => comb.DATAB +sink_addr[12] => source_addr.DATAB +sink_addr[13] => burst_uncompress_address_base.IN0 +sink_addr[13] => comb.DATAB +sink_addr[13] => source_addr.DATAB +sink_addr[14] => burst_uncompress_address_base.IN0 +sink_addr[14] => comb.DATAB +sink_addr[14] => source_addr.DATAB +sink_addr[15] => burst_uncompress_address_base.IN0 +sink_addr[15] => comb.DATAB +sink_addr[15] => source_addr.DATAB +sink_addr[16] => burst_uncompress_address_base.IN0 +sink_addr[16] => comb.DATAB +sink_addr[16] => source_addr.DATAB +sink_addr[17] => burst_uncompress_address_base.IN0 +sink_addr[17] => comb.DATAB +sink_addr[17] => source_addr.DATAB +sink_addr[18] => burst_uncompress_address_base.IN0 +sink_addr[18] => comb.DATAB +sink_addr[18] => source_addr.DATAB +sink_burstwrap[0] => p1_burst_uncompress_address_offset[0].IN1 +sink_burstwrap[0] => source_burstwrap[0].DATAIN +sink_burstwrap[0] => burst_uncompress_address_base.IN1 +sink_burstwrap[1] => p1_burst_uncompress_address_offset[1].IN1 +sink_burstwrap[1] => source_burstwrap[1].DATAIN +sink_burstwrap[1] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[2].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[18].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[17].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[16].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[15].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[14].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[13].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[12].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[11].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[10].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[9].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[8].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[7].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[6].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[5].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[4].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[3].IN1 +sink_burstwrap[2] => source_burstwrap[2].DATAIN +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_byte_cnt[0] => source_byte_cnt.DATAB +sink_byte_cnt[0] => Add1.IN6 +sink_byte_cnt[0] => Equal1.IN2 +sink_byte_cnt[1] => source_byte_cnt.DATAB +sink_byte_cnt[1] => Add1.IN5 +sink_byte_cnt[1] => Equal1.IN1 +sink_byte_cnt[2] => source_byte_cnt.DATAB +sink_byte_cnt[2] => Add1.IN4 +sink_byte_cnt[2] => Equal1.IN0 +sink_is_compressed => last_packet_beat.IN1 +sink_burstsize[0] => Decoder0.IN2 +sink_burstsize[0] => source_burstsize[0].DATAIN +sink_burstsize[1] => Decoder0.IN1 +sink_burstsize[1] => source_burstsize[1].DATAIN +sink_burstsize[2] => Decoder0.IN0 +sink_burstsize[2] => source_burstsize[2].DATAIN +source_startofpacket <= source_startofpacket.DB_MAX_OUTPUT_PORT_TYPE +source_endofpacket <= source_endofpacket.DB_MAX_OUTPUT_PORT_TYPE +source_valid <= sink_valid.DB_MAX_OUTPUT_PORT_TYPE +source_ready => always1.IN1 +source_ready => sink_ready.IN1 +source_addr[0] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[1] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[2] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[3] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[4] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[5] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[6] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[7] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[8] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[9] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[10] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[11] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[12] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[13] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[14] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[15] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[16] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[17] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[18] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_burstwrap[0] <= sink_burstwrap[0].DB_MAX_OUTPUT_PORT_TYPE +source_burstwrap[1] <= sink_burstwrap[1].DB_MAX_OUTPUT_PORT_TYPE +source_burstwrap[2] <= sink_burstwrap[2].DB_MAX_OUTPUT_PORT_TYPE +source_byte_cnt[0] <= source_byte_cnt.DB_MAX_OUTPUT_PORT_TYPE +source_byte_cnt[1] <= source_byte_cnt.DB_MAX_OUTPUT_PORT_TYPE +source_byte_cnt[2] <= source_byte_cnt.DB_MAX_OUTPUT_PORT_TYPE +source_is_compressed <= +source_burstsize[0] <= sink_burstsize[0].DB_MAX_OUTPUT_PORT_TYPE +source_burstsize[1] <= sink_burstsize[1].DB_MAX_OUTPUT_PORT_TYPE +source_burstsize[2] <= sink_burstsize[2].DB_MAX_OUTPUT_PORT_TYPE + + +|lights|nios_system:NiosII|altera_avalon_sc_fifo:hex5_s1_translator_avalon_universal_slave_0_agent_rsp_fifo +clk => csr_readdata[0]~reg0.CLK +clk => csr_readdata[1]~reg0.CLK +clk => csr_readdata[2]~reg0.CLK +clk => csr_readdata[3]~reg0.CLK +clk => csr_readdata[4]~reg0.CLK +clk => csr_readdata[5]~reg0.CLK +clk => csr_readdata[6]~reg0.CLK +clk => csr_readdata[7]~reg0.CLK +clk => csr_readdata[8]~reg0.CLK +clk => csr_readdata[9]~reg0.CLK +clk => csr_readdata[10]~reg0.CLK +clk => csr_readdata[11]~reg0.CLK +clk => csr_readdata[12]~reg0.CLK +clk => csr_readdata[13]~reg0.CLK +clk => csr_readdata[14]~reg0.CLK +clk => csr_readdata[15]~reg0.CLK +clk => csr_readdata[16]~reg0.CLK +clk => csr_readdata[17]~reg0.CLK +clk => csr_readdata[18]~reg0.CLK +clk => csr_readdata[19]~reg0.CLK +clk => csr_readdata[20]~reg0.CLK +clk => csr_readdata[21]~reg0.CLK +clk => csr_readdata[22]~reg0.CLK +clk => csr_readdata[23]~reg0.CLK +clk => csr_readdata[24]~reg0.CLK +clk => csr_readdata[25]~reg0.CLK +clk => csr_readdata[26]~reg0.CLK +clk => csr_readdata[27]~reg0.CLK +clk => csr_readdata[28]~reg0.CLK +clk => csr_readdata[29]~reg0.CLK +clk => csr_readdata[30]~reg0.CLK +clk => csr_readdata[31]~reg0.CLK +clk => mem_used[1].CLK +clk => mem_used[0].CLK +clk => mem[1][0].CLK +clk => mem[1][1].CLK +clk => mem[1][2].CLK +clk => mem[1][3].CLK +clk => mem[1][4].CLK +clk => mem[1][5].CLK +clk => mem[1][6].CLK +clk => mem[1][7].CLK +clk => mem[1][8].CLK +clk => mem[1][9].CLK +clk => mem[1][10].CLK +clk => mem[1][11].CLK +clk => mem[1][12].CLK +clk => mem[1][13].CLK +clk => mem[1][14].CLK +clk => mem[1][15].CLK +clk => mem[1][16].CLK +clk => mem[1][17].CLK +clk => mem[1][18].CLK +clk => mem[1][19].CLK +clk => mem[1][20].CLK +clk => mem[1][21].CLK +clk => mem[1][22].CLK +clk => mem[1][23].CLK +clk => mem[1][24].CLK +clk => mem[1][25].CLK +clk => mem[1][26].CLK +clk => mem[1][27].CLK +clk => mem[1][28].CLK +clk => mem[1][29].CLK +clk => mem[1][30].CLK +clk => mem[1][31].CLK +clk => mem[1][32].CLK +clk => mem[1][33].CLK +clk => mem[1][34].CLK +clk => mem[1][35].CLK +clk => mem[1][36].CLK +clk => mem[1][37].CLK +clk => mem[1][38].CLK +clk => mem[1][39].CLK +clk => mem[1][40].CLK +clk => mem[1][41].CLK +clk => mem[1][42].CLK +clk => mem[1][43].CLK +clk => mem[1][44].CLK +clk => mem[1][45].CLK +clk => mem[1][46].CLK +clk => mem[1][47].CLK +clk => mem[1][48].CLK +clk => mem[1][49].CLK +clk => mem[1][50].CLK +clk => mem[1][51].CLK +clk => mem[1][52].CLK +clk => mem[1][53].CLK +clk => mem[1][54].CLK +clk => mem[1][55].CLK +clk => mem[1][56].CLK +clk => mem[1][57].CLK +clk => mem[1][58].CLK +clk => mem[1][59].CLK +clk => mem[1][60].CLK +clk => mem[1][61].CLK +clk => mem[1][62].CLK +clk => mem[1][63].CLK +clk => mem[1][64].CLK +clk => mem[1][65].CLK +clk => mem[1][66].CLK +clk => mem[1][67].CLK +clk => mem[1][68].CLK +clk => mem[1][69].CLK +clk => mem[1][70].CLK +clk => mem[1][71].CLK +clk => mem[1][72].CLK +clk => mem[1][73].CLK +clk => mem[1][74].CLK +clk => mem[1][75].CLK +clk => mem[1][76].CLK +clk => mem[1][77].CLK +clk => mem[1][78].CLK +clk => mem[1][79].CLK +clk => mem[1][80].CLK +clk => mem[1][81].CLK +clk => mem[1][82].CLK +clk => mem[1][83].CLK +clk => mem[1][84].CLK +clk => mem[1][85].CLK +clk => mem[1][86].CLK +clk => mem[1][87].CLK +clk => mem[1][88].CLK +clk => mem[1][89].CLK +clk => mem[1][90].CLK +clk => mem[1][91].CLK +clk => mem[1][92].CLK +clk => mem[1][93].CLK +clk => mem[1][94].CLK +clk => mem[1][95].CLK +clk => mem[1][96].CLK +clk => mem[1][97].CLK +clk => mem[1][98].CLK +clk => mem[0][0].CLK +clk => mem[0][1].CLK +clk => mem[0][2].CLK +clk => mem[0][3].CLK +clk => mem[0][4].CLK +clk => mem[0][5].CLK +clk => mem[0][6].CLK +clk => mem[0][7].CLK +clk => mem[0][8].CLK +clk => mem[0][9].CLK +clk => mem[0][10].CLK +clk => mem[0][11].CLK +clk => mem[0][12].CLK +clk => mem[0][13].CLK +clk => mem[0][14].CLK +clk => mem[0][15].CLK +clk => mem[0][16].CLK +clk => mem[0][17].CLK +clk => mem[0][18].CLK +clk => mem[0][19].CLK +clk => mem[0][20].CLK +clk => mem[0][21].CLK +clk => mem[0][22].CLK +clk => mem[0][23].CLK +clk => mem[0][24].CLK +clk => mem[0][25].CLK +clk => mem[0][26].CLK +clk => mem[0][27].CLK +clk => mem[0][28].CLK +clk => mem[0][29].CLK +clk => mem[0][30].CLK +clk => mem[0][31].CLK +clk => mem[0][32].CLK +clk => mem[0][33].CLK +clk => mem[0][34].CLK +clk => mem[0][35].CLK +clk => mem[0][36].CLK +clk => mem[0][37].CLK +clk => mem[0][38].CLK +clk => mem[0][39].CLK +clk => mem[0][40].CLK +clk => mem[0][41].CLK +clk => mem[0][42].CLK +clk => mem[0][43].CLK +clk => mem[0][44].CLK +clk => mem[0][45].CLK +clk => mem[0][46].CLK +clk => mem[0][47].CLK +clk => mem[0][48].CLK +clk => mem[0][49].CLK +clk => mem[0][50].CLK +clk => mem[0][51].CLK +clk => mem[0][52].CLK +clk => mem[0][53].CLK +clk => mem[0][54].CLK +clk => mem[0][55].CLK +clk => mem[0][56].CLK +clk => mem[0][57].CLK +clk => mem[0][58].CLK +clk => mem[0][59].CLK +clk => mem[0][60].CLK +clk => mem[0][61].CLK +clk => mem[0][62].CLK +clk => mem[0][63].CLK +clk => mem[0][64].CLK +clk => mem[0][65].CLK +clk => mem[0][66].CLK +clk => mem[0][67].CLK +clk => mem[0][68].CLK +clk => mem[0][69].CLK +clk => mem[0][70].CLK +clk => mem[0][71].CLK +clk => mem[0][72].CLK +clk => mem[0][73].CLK +clk => mem[0][74].CLK +clk => mem[0][75].CLK +clk => mem[0][76].CLK +clk => mem[0][77].CLK +clk => mem[0][78].CLK +clk => mem[0][79].CLK +clk => mem[0][80].CLK +clk => mem[0][81].CLK +clk => mem[0][82].CLK +clk => mem[0][83].CLK +clk => mem[0][84].CLK +clk => mem[0][85].CLK +clk => mem[0][86].CLK +clk => mem[0][87].CLK +clk => mem[0][88].CLK +clk => mem[0][89].CLK +clk => mem[0][90].CLK +clk => mem[0][91].CLK +clk => mem[0][92].CLK +clk => mem[0][93].CLK +clk => mem[0][94].CLK +clk => mem[0][95].CLK +clk => mem[0][96].CLK +clk => mem[0][97].CLK +clk => mem[0][98].CLK +reset => csr_readdata[0]~reg0.ACLR +reset => csr_readdata[1]~reg0.ACLR +reset => csr_readdata[2]~reg0.ACLR +reset => csr_readdata[3]~reg0.ACLR +reset => csr_readdata[4]~reg0.ACLR +reset => csr_readdata[5]~reg0.ACLR +reset => csr_readdata[6]~reg0.ACLR +reset => csr_readdata[7]~reg0.ACLR +reset => csr_readdata[8]~reg0.ACLR +reset => csr_readdata[9]~reg0.ACLR +reset => csr_readdata[10]~reg0.ACLR +reset => csr_readdata[11]~reg0.ACLR +reset => csr_readdata[12]~reg0.ACLR +reset => csr_readdata[13]~reg0.ACLR +reset => csr_readdata[14]~reg0.ACLR +reset => csr_readdata[15]~reg0.ACLR +reset => csr_readdata[16]~reg0.ACLR +reset => csr_readdata[17]~reg0.ACLR +reset => csr_readdata[18]~reg0.ACLR +reset => csr_readdata[19]~reg0.ACLR +reset => csr_readdata[20]~reg0.ACLR +reset => csr_readdata[21]~reg0.ACLR +reset => csr_readdata[22]~reg0.ACLR +reset => csr_readdata[23]~reg0.ACLR +reset => csr_readdata[24]~reg0.ACLR +reset => csr_readdata[25]~reg0.ACLR +reset => csr_readdata[26]~reg0.ACLR +reset => csr_readdata[27]~reg0.ACLR +reset => csr_readdata[28]~reg0.ACLR +reset => csr_readdata[29]~reg0.ACLR +reset => csr_readdata[30]~reg0.ACLR +reset => csr_readdata[31]~reg0.ACLR +reset => mem_used[1].ACLR +reset => mem_used[0].ACLR +reset => mem[1][0].ACLR +reset => mem[1][1].ACLR +reset => mem[1][2].ACLR +reset => mem[1][3].ACLR +reset => mem[1][4].ACLR +reset => mem[1][5].ACLR +reset => mem[1][6].ACLR +reset => mem[1][7].ACLR +reset => mem[1][8].ACLR +reset => mem[1][9].ACLR +reset => mem[1][10].ACLR +reset => mem[1][11].ACLR +reset => mem[1][12].ACLR +reset => mem[1][13].ACLR +reset => mem[1][14].ACLR +reset => mem[1][15].ACLR +reset => mem[1][16].ACLR +reset => mem[1][17].ACLR +reset => mem[1][18].ACLR +reset => mem[1][19].ACLR +reset => mem[1][20].ACLR +reset => mem[1][21].ACLR +reset => mem[1][22].ACLR +reset => mem[1][23].ACLR +reset => mem[1][24].ACLR +reset => mem[1][25].ACLR +reset => mem[1][26].ACLR +reset => mem[1][27].ACLR +reset => mem[1][28].ACLR +reset => mem[1][29].ACLR +reset => mem[1][30].ACLR +reset => mem[1][31].ACLR +reset => mem[1][32].ACLR +reset => mem[1][33].ACLR +reset => mem[1][34].ACLR +reset => mem[1][35].ACLR +reset => mem[1][36].ACLR +reset => mem[1][37].ACLR +reset => mem[1][38].ACLR +reset => mem[1][39].ACLR +reset => mem[1][40].ACLR +reset => mem[1][41].ACLR +reset => mem[1][42].ACLR +reset => mem[1][43].ACLR +reset => mem[1][44].ACLR +reset => mem[1][45].ACLR +reset => mem[1][46].ACLR +reset => mem[1][47].ACLR +reset => mem[1][48].ACLR +reset => mem[1][49].ACLR +reset => mem[1][50].ACLR +reset => mem[1][51].ACLR +reset => mem[1][52].ACLR +reset => mem[1][53].ACLR +reset => mem[1][54].ACLR +reset => mem[1][55].ACLR +reset => mem[1][56].ACLR +reset => mem[1][57].ACLR +reset => mem[1][58].ACLR +reset => mem[1][59].ACLR +reset => mem[1][60].ACLR +reset => mem[1][61].ACLR +reset => mem[1][62].ACLR +reset => mem[1][63].ACLR +reset => mem[1][64].ACLR +reset => mem[1][65].ACLR +reset => mem[1][66].ACLR +reset => mem[1][67].ACLR +reset => mem[1][68].ACLR +reset => mem[1][69].ACLR +reset => mem[1][70].ACLR +reset => mem[1][71].ACLR +reset => mem[1][72].ACLR +reset => mem[1][73].ACLR +reset => mem[1][74].ACLR +reset => mem[1][75].ACLR +reset => mem[1][76].ACLR +reset => mem[1][77].ACLR +reset => mem[1][78].ACLR +reset => mem[1][79].ACLR +reset => mem[1][80].ACLR +reset => mem[1][81].ACLR +reset => mem[1][82].ACLR +reset => mem[1][83].ACLR +reset => mem[1][84].ACLR +reset => mem[1][85].ACLR +reset => mem[1][86].ACLR +reset => mem[1][87].ACLR +reset => mem[1][88].ACLR +reset => mem[1][89].ACLR +reset => mem[1][90].ACLR +reset => mem[1][91].ACLR +reset => mem[1][92].ACLR +reset => mem[1][93].ACLR +reset => mem[1][94].ACLR +reset => mem[1][95].ACLR +reset => mem[1][96].ACLR +reset => mem[1][97].ACLR +reset => mem[1][98].ACLR +reset => mem[0][0].ACLR +reset => mem[0][1].ACLR +reset => mem[0][2].ACLR +reset => mem[0][3].ACLR +reset => mem[0][4].ACLR +reset => mem[0][5].ACLR +reset => mem[0][6].ACLR +reset => mem[0][7].ACLR +reset => mem[0][8].ACLR +reset => mem[0][9].ACLR +reset => mem[0][10].ACLR +reset => mem[0][11].ACLR +reset => mem[0][12].ACLR +reset => mem[0][13].ACLR +reset => mem[0][14].ACLR +reset => mem[0][15].ACLR +reset => mem[0][16].ACLR +reset => mem[0][17].ACLR +reset => mem[0][18].ACLR +reset => mem[0][19].ACLR +reset => mem[0][20].ACLR +reset => mem[0][21].ACLR +reset => mem[0][22].ACLR +reset => mem[0][23].ACLR +reset => mem[0][24].ACLR +reset => mem[0][25].ACLR +reset => mem[0][26].ACLR +reset => mem[0][27].ACLR +reset => mem[0][28].ACLR +reset => mem[0][29].ACLR +reset => mem[0][30].ACLR +reset => mem[0][31].ACLR +reset => mem[0][32].ACLR +reset => mem[0][33].ACLR +reset => mem[0][34].ACLR +reset => mem[0][35].ACLR +reset => mem[0][36].ACLR +reset => mem[0][37].ACLR +reset => mem[0][38].ACLR +reset => mem[0][39].ACLR +reset => mem[0][40].ACLR +reset => mem[0][41].ACLR +reset => mem[0][42].ACLR +reset => mem[0][43].ACLR +reset => mem[0][44].ACLR +reset => mem[0][45].ACLR +reset => mem[0][46].ACLR +reset => mem[0][47].ACLR +reset => mem[0][48].ACLR +reset => mem[0][49].ACLR +reset => mem[0][50].ACLR +reset => mem[0][51].ACLR +reset => mem[0][52].ACLR +reset => mem[0][53].ACLR +reset => mem[0][54].ACLR +reset => mem[0][55].ACLR +reset => mem[0][56].ACLR +reset => mem[0][57].ACLR +reset => mem[0][58].ACLR +reset => mem[0][59].ACLR +reset => mem[0][60].ACLR +reset => mem[0][61].ACLR +reset => mem[0][62].ACLR +reset => mem[0][63].ACLR +reset => mem[0][64].ACLR +reset => mem[0][65].ACLR +reset => mem[0][66].ACLR +reset => mem[0][67].ACLR +reset => mem[0][68].ACLR +reset => mem[0][69].ACLR +reset => mem[0][70].ACLR +reset => mem[0][71].ACLR +reset => mem[0][72].ACLR +reset => mem[0][73].ACLR +reset => mem[0][74].ACLR +reset => mem[0][75].ACLR +reset => mem[0][76].ACLR +reset => mem[0][77].ACLR +reset => mem[0][78].ACLR +reset => mem[0][79].ACLR +reset => mem[0][80].ACLR +reset => mem[0][81].ACLR +reset => mem[0][82].ACLR +reset => mem[0][83].ACLR +reset => mem[0][84].ACLR +reset => mem[0][85].ACLR +reset => mem[0][86].ACLR +reset => mem[0][87].ACLR +reset => mem[0][88].ACLR +reset => mem[0][89].ACLR +reset => mem[0][90].ACLR +reset => mem[0][91].ACLR +reset => mem[0][92].ACLR +reset => mem[0][93].ACLR +reset => mem[0][94].ACLR +reset => mem[0][95].ACLR +reset => mem[0][96].ACLR +reset => mem[0][97].ACLR +reset => mem[0][98].ACLR +in_data[0] => mem.DATAB +in_data[1] => mem.DATAB +in_data[2] => mem.DATAB +in_data[3] => mem.DATAB +in_data[4] => mem.DATAB +in_data[5] => mem.DATAB +in_data[6] => mem.DATAB +in_data[7] => mem.DATAB +in_data[8] => mem.DATAB +in_data[9] => mem.DATAB +in_data[10] => mem.DATAB +in_data[11] => mem.DATAB +in_data[12] => mem.DATAB +in_data[13] => mem.DATAB +in_data[14] => mem.DATAB +in_data[15] => mem.DATAB +in_data[16] => mem.DATAB +in_data[17] => mem.DATAB +in_data[18] => mem.DATAB +in_data[19] => mem.DATAB +in_data[20] => mem.DATAB +in_data[21] => mem.DATAB +in_data[22] => mem.DATAB +in_data[23] => mem.DATAB +in_data[24] => mem.DATAB +in_data[25] => mem.DATAB +in_data[26] => mem.DATAB +in_data[27] => mem.DATAB +in_data[28] => mem.DATAB +in_data[29] => mem.DATAB +in_data[30] => mem.DATAB +in_data[31] => mem.DATAB +in_data[32] => mem.DATAB +in_data[33] => mem.DATAB +in_data[34] => mem.DATAB +in_data[35] => mem.DATAB +in_data[36] => mem.DATAB +in_data[37] => mem.DATAB +in_data[38] => mem.DATAB +in_data[39] => mem.DATAB +in_data[40] => mem.DATAB +in_data[41] => mem.DATAB +in_data[42] => mem.DATAB +in_data[43] => mem.DATAB +in_data[44] => mem.DATAB +in_data[45] => mem.DATAB +in_data[46] => mem.DATAB +in_data[47] => mem.DATAB +in_data[48] => mem.DATAB +in_data[49] => mem.DATAB +in_data[50] => mem.DATAB +in_data[51] => mem.DATAB +in_data[52] => mem.DATAB +in_data[53] => mem.DATAB +in_data[54] => mem.DATAB +in_data[55] => mem.DATAB +in_data[56] => mem.DATAB +in_data[57] => mem.DATAB +in_data[58] => mem.DATAB +in_data[59] => mem.DATAB +in_data[60] => mem.DATAB +in_data[61] => mem.DATAB +in_data[62] => mem.DATAB +in_data[63] => mem.DATAB +in_data[64] => mem.DATAB +in_data[65] => mem.DATAB +in_data[66] => mem.DATAB +in_data[67] => mem.DATAB +in_data[68] => mem.DATAB +in_data[69] => mem.DATAB +in_data[70] => mem.DATAB +in_data[71] => mem.DATAB +in_data[72] => mem.DATAB +in_data[73] => mem.DATAB +in_data[74] => mem.DATAB +in_data[75] => mem.DATAB +in_data[76] => mem.DATAB +in_data[77] => mem.DATAB +in_data[78] => mem.DATAB +in_data[79] => mem.DATAB +in_data[80] => mem.DATAB +in_data[81] => mem.DATAB +in_data[82] => mem.DATAB +in_data[83] => mem.DATAB +in_data[84] => mem.DATAB +in_data[85] => mem.DATAB +in_data[86] => mem.DATAB +in_data[87] => mem.DATAB +in_data[88] => mem.DATAB +in_data[89] => mem.DATAB +in_data[90] => mem.DATAB +in_data[91] => mem.DATAB +in_data[92] => mem.DATAB +in_data[93] => mem.DATAB +in_data[94] => mem.DATAB +in_data[95] => mem.DATAB +in_data[96] => mem.DATAB +in_valid => write.IN1 +in_startofpacket => mem.DATAB +in_endofpacket => mem.DATAB +in_empty[0] => ~NO_FANOUT~ +in_error[0] => out_error[0].DATAIN +in_error[0] => out_empty[0].DATAIN +in_channel[0] => out_channel[0].DATAIN +in_ready <= mem_used[1].DB_MAX_OUTPUT_PORT_TYPE +out_data[0] <= mem[0][0].DB_MAX_OUTPUT_PORT_TYPE +out_data[1] <= mem[0][1].DB_MAX_OUTPUT_PORT_TYPE +out_data[2] <= mem[0][2].DB_MAX_OUTPUT_PORT_TYPE +out_data[3] <= mem[0][3].DB_MAX_OUTPUT_PORT_TYPE +out_data[4] <= mem[0][4].DB_MAX_OUTPUT_PORT_TYPE +out_data[5] <= mem[0][5].DB_MAX_OUTPUT_PORT_TYPE +out_data[6] <= mem[0][6].DB_MAX_OUTPUT_PORT_TYPE +out_data[7] <= mem[0][7].DB_MAX_OUTPUT_PORT_TYPE +out_data[8] <= mem[0][8].DB_MAX_OUTPUT_PORT_TYPE +out_data[9] <= mem[0][9].DB_MAX_OUTPUT_PORT_TYPE +out_data[10] <= mem[0][10].DB_MAX_OUTPUT_PORT_TYPE +out_data[11] <= mem[0][11].DB_MAX_OUTPUT_PORT_TYPE +out_data[12] <= mem[0][12].DB_MAX_OUTPUT_PORT_TYPE +out_data[13] <= mem[0][13].DB_MAX_OUTPUT_PORT_TYPE +out_data[14] <= mem[0][14].DB_MAX_OUTPUT_PORT_TYPE +out_data[15] <= mem[0][15].DB_MAX_OUTPUT_PORT_TYPE +out_data[16] <= mem[0][16].DB_MAX_OUTPUT_PORT_TYPE +out_data[17] <= mem[0][17].DB_MAX_OUTPUT_PORT_TYPE +out_data[18] <= mem[0][18].DB_MAX_OUTPUT_PORT_TYPE +out_data[19] <= mem[0][19].DB_MAX_OUTPUT_PORT_TYPE +out_data[20] <= mem[0][20].DB_MAX_OUTPUT_PORT_TYPE +out_data[21] <= mem[0][21].DB_MAX_OUTPUT_PORT_TYPE +out_data[22] <= mem[0][22].DB_MAX_OUTPUT_PORT_TYPE +out_data[23] <= mem[0][23].DB_MAX_OUTPUT_PORT_TYPE +out_data[24] <= mem[0][24].DB_MAX_OUTPUT_PORT_TYPE +out_data[25] <= mem[0][25].DB_MAX_OUTPUT_PORT_TYPE +out_data[26] <= mem[0][26].DB_MAX_OUTPUT_PORT_TYPE +out_data[27] <= mem[0][27].DB_MAX_OUTPUT_PORT_TYPE +out_data[28] <= mem[0][28].DB_MAX_OUTPUT_PORT_TYPE +out_data[29] <= mem[0][29].DB_MAX_OUTPUT_PORT_TYPE +out_data[30] <= mem[0][30].DB_MAX_OUTPUT_PORT_TYPE +out_data[31] <= mem[0][31].DB_MAX_OUTPUT_PORT_TYPE +out_data[32] <= mem[0][32].DB_MAX_OUTPUT_PORT_TYPE +out_data[33] <= mem[0][33].DB_MAX_OUTPUT_PORT_TYPE +out_data[34] <= mem[0][34].DB_MAX_OUTPUT_PORT_TYPE +out_data[35] <= mem[0][35].DB_MAX_OUTPUT_PORT_TYPE +out_data[36] <= mem[0][36].DB_MAX_OUTPUT_PORT_TYPE +out_data[37] <= mem[0][37].DB_MAX_OUTPUT_PORT_TYPE +out_data[38] <= mem[0][38].DB_MAX_OUTPUT_PORT_TYPE +out_data[39] <= mem[0][39].DB_MAX_OUTPUT_PORT_TYPE +out_data[40] <= mem[0][40].DB_MAX_OUTPUT_PORT_TYPE +out_data[41] <= mem[0][41].DB_MAX_OUTPUT_PORT_TYPE +out_data[42] <= mem[0][42].DB_MAX_OUTPUT_PORT_TYPE +out_data[43] <= mem[0][43].DB_MAX_OUTPUT_PORT_TYPE +out_data[44] <= mem[0][44].DB_MAX_OUTPUT_PORT_TYPE +out_data[45] <= mem[0][45].DB_MAX_OUTPUT_PORT_TYPE +out_data[46] <= mem[0][46].DB_MAX_OUTPUT_PORT_TYPE +out_data[47] <= mem[0][47].DB_MAX_OUTPUT_PORT_TYPE +out_data[48] <= mem[0][48].DB_MAX_OUTPUT_PORT_TYPE +out_data[49] <= mem[0][49].DB_MAX_OUTPUT_PORT_TYPE +out_data[50] <= mem[0][50].DB_MAX_OUTPUT_PORT_TYPE +out_data[51] <= mem[0][51].DB_MAX_OUTPUT_PORT_TYPE +out_data[52] <= mem[0][52].DB_MAX_OUTPUT_PORT_TYPE +out_data[53] <= mem[0][53].DB_MAX_OUTPUT_PORT_TYPE +out_data[54] <= mem[0][54].DB_MAX_OUTPUT_PORT_TYPE +out_data[55] <= mem[0][55].DB_MAX_OUTPUT_PORT_TYPE +out_data[56] <= mem[0][56].DB_MAX_OUTPUT_PORT_TYPE +out_data[57] <= mem[0][57].DB_MAX_OUTPUT_PORT_TYPE +out_data[58] <= mem[0][58].DB_MAX_OUTPUT_PORT_TYPE +out_data[59] <= mem[0][59].DB_MAX_OUTPUT_PORT_TYPE +out_data[60] <= mem[0][60].DB_MAX_OUTPUT_PORT_TYPE +out_data[61] <= mem[0][61].DB_MAX_OUTPUT_PORT_TYPE +out_data[62] <= mem[0][62].DB_MAX_OUTPUT_PORT_TYPE +out_data[63] <= mem[0][63].DB_MAX_OUTPUT_PORT_TYPE +out_data[64] <= mem[0][64].DB_MAX_OUTPUT_PORT_TYPE +out_data[65] <= mem[0][65].DB_MAX_OUTPUT_PORT_TYPE +out_data[66] <= mem[0][66].DB_MAX_OUTPUT_PORT_TYPE +out_data[67] <= mem[0][67].DB_MAX_OUTPUT_PORT_TYPE +out_data[68] <= mem[0][68].DB_MAX_OUTPUT_PORT_TYPE +out_data[69] <= mem[0][69].DB_MAX_OUTPUT_PORT_TYPE +out_data[70] <= mem[0][70].DB_MAX_OUTPUT_PORT_TYPE +out_data[71] <= mem[0][71].DB_MAX_OUTPUT_PORT_TYPE +out_data[72] <= mem[0][72].DB_MAX_OUTPUT_PORT_TYPE +out_data[73] <= mem[0][73].DB_MAX_OUTPUT_PORT_TYPE +out_data[74] <= mem[0][74].DB_MAX_OUTPUT_PORT_TYPE +out_data[75] <= mem[0][75].DB_MAX_OUTPUT_PORT_TYPE +out_data[76] <= mem[0][76].DB_MAX_OUTPUT_PORT_TYPE +out_data[77] <= mem[0][77].DB_MAX_OUTPUT_PORT_TYPE +out_data[78] <= mem[0][78].DB_MAX_OUTPUT_PORT_TYPE +out_data[79] <= mem[0][79].DB_MAX_OUTPUT_PORT_TYPE +out_data[80] <= mem[0][80].DB_MAX_OUTPUT_PORT_TYPE +out_data[81] <= mem[0][81].DB_MAX_OUTPUT_PORT_TYPE +out_data[82] <= mem[0][82].DB_MAX_OUTPUT_PORT_TYPE +out_data[83] <= mem[0][83].DB_MAX_OUTPUT_PORT_TYPE +out_data[84] <= mem[0][84].DB_MAX_OUTPUT_PORT_TYPE +out_data[85] <= mem[0][85].DB_MAX_OUTPUT_PORT_TYPE +out_data[86] <= mem[0][86].DB_MAX_OUTPUT_PORT_TYPE +out_data[87] <= mem[0][87].DB_MAX_OUTPUT_PORT_TYPE +out_data[88] <= mem[0][88].DB_MAX_OUTPUT_PORT_TYPE +out_data[89] <= mem[0][89].DB_MAX_OUTPUT_PORT_TYPE +out_data[90] <= mem[0][90].DB_MAX_OUTPUT_PORT_TYPE +out_data[91] <= mem[0][91].DB_MAX_OUTPUT_PORT_TYPE +out_data[92] <= mem[0][92].DB_MAX_OUTPUT_PORT_TYPE +out_data[93] <= mem[0][93].DB_MAX_OUTPUT_PORT_TYPE +out_data[94] <= mem[0][94].DB_MAX_OUTPUT_PORT_TYPE +out_data[95] <= mem[0][95].DB_MAX_OUTPUT_PORT_TYPE +out_data[96] <= mem[0][96].DB_MAX_OUTPUT_PORT_TYPE +out_valid <= mem_used[0].DB_MAX_OUTPUT_PORT_TYPE +out_startofpacket <= mem[0][98].DB_MAX_OUTPUT_PORT_TYPE +out_endofpacket <= mem[0][97].DB_MAX_OUTPUT_PORT_TYPE +out_empty[0] <= in_error[0].DB_MAX_OUTPUT_PORT_TYPE +out_error[0] <= in_error[0].DB_MAX_OUTPUT_PORT_TYPE +out_channel[0] <= in_channel[0].DB_MAX_OUTPUT_PORT_TYPE +out_ready => internal_out_ready.IN1 +csr_address[0] => ~NO_FANOUT~ +csr_address[1] => ~NO_FANOUT~ +csr_write => ~NO_FANOUT~ +csr_read => csr_readdata[31]~reg0.ENA +csr_read => csr_readdata[30]~reg0.ENA +csr_read => csr_readdata[29]~reg0.ENA +csr_read => csr_readdata[28]~reg0.ENA +csr_read => csr_readdata[27]~reg0.ENA +csr_read => csr_readdata[26]~reg0.ENA +csr_read => csr_readdata[25]~reg0.ENA +csr_read => csr_readdata[24]~reg0.ENA +csr_read => csr_readdata[23]~reg0.ENA +csr_read => csr_readdata[22]~reg0.ENA +csr_read => csr_readdata[21]~reg0.ENA +csr_read => csr_readdata[20]~reg0.ENA +csr_read => csr_readdata[19]~reg0.ENA +csr_read => csr_readdata[18]~reg0.ENA +csr_read => csr_readdata[17]~reg0.ENA +csr_read => csr_readdata[16]~reg0.ENA +csr_read => csr_readdata[15]~reg0.ENA +csr_read => csr_readdata[14]~reg0.ENA +csr_read => csr_readdata[13]~reg0.ENA +csr_read => csr_readdata[12]~reg0.ENA +csr_read => csr_readdata[11]~reg0.ENA +csr_read => csr_readdata[10]~reg0.ENA +csr_read => csr_readdata[9]~reg0.ENA +csr_read => csr_readdata[8]~reg0.ENA +csr_read => csr_readdata[7]~reg0.ENA +csr_read => csr_readdata[6]~reg0.ENA +csr_read => csr_readdata[5]~reg0.ENA +csr_read => csr_readdata[4]~reg0.ENA +csr_read => csr_readdata[3]~reg0.ENA +csr_read => csr_readdata[2]~reg0.ENA +csr_read => csr_readdata[1]~reg0.ENA +csr_read => csr_readdata[0]~reg0.ENA +csr_writedata[0] => ~NO_FANOUT~ +csr_writedata[1] => ~NO_FANOUT~ +csr_writedata[2] => ~NO_FANOUT~ +csr_writedata[3] => ~NO_FANOUT~ +csr_writedata[4] => ~NO_FANOUT~ +csr_writedata[5] => ~NO_FANOUT~ +csr_writedata[6] => ~NO_FANOUT~ +csr_writedata[7] => ~NO_FANOUT~ +csr_writedata[8] => ~NO_FANOUT~ +csr_writedata[9] => ~NO_FANOUT~ +csr_writedata[10] => ~NO_FANOUT~ +csr_writedata[11] => ~NO_FANOUT~ +csr_writedata[12] => ~NO_FANOUT~ +csr_writedata[13] => ~NO_FANOUT~ +csr_writedata[14] => ~NO_FANOUT~ +csr_writedata[15] => ~NO_FANOUT~ +csr_writedata[16] => ~NO_FANOUT~ +csr_writedata[17] => ~NO_FANOUT~ +csr_writedata[18] => ~NO_FANOUT~ +csr_writedata[19] => ~NO_FANOUT~ +csr_writedata[20] => ~NO_FANOUT~ +csr_writedata[21] => ~NO_FANOUT~ +csr_writedata[22] => ~NO_FANOUT~ +csr_writedata[23] => ~NO_FANOUT~ +csr_writedata[24] => ~NO_FANOUT~ +csr_writedata[25] => ~NO_FANOUT~ +csr_writedata[26] => ~NO_FANOUT~ +csr_writedata[27] => ~NO_FANOUT~ +csr_writedata[28] => ~NO_FANOUT~ +csr_writedata[29] => ~NO_FANOUT~ +csr_writedata[30] => ~NO_FANOUT~ +csr_writedata[31] => ~NO_FANOUT~ +csr_readdata[0] <= csr_readdata[0]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[1] <= csr_readdata[1]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[2] <= csr_readdata[2]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[3] <= csr_readdata[3]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[4] <= csr_readdata[4]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[5] <= csr_readdata[5]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[6] <= csr_readdata[6]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[7] <= csr_readdata[7]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[8] <= csr_readdata[8]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[9] <= csr_readdata[9]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[10] <= csr_readdata[10]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[11] <= csr_readdata[11]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[12] <= csr_readdata[12]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[13] <= csr_readdata[13]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[14] <= csr_readdata[14]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[15] <= csr_readdata[15]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[16] <= csr_readdata[16]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[17] <= csr_readdata[17]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[18] <= csr_readdata[18]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[19] <= csr_readdata[19]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[20] <= csr_readdata[20]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[21] <= csr_readdata[21]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[22] <= csr_readdata[22]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[23] <= csr_readdata[23]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[24] <= csr_readdata[24]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[25] <= csr_readdata[25]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[26] <= csr_readdata[26]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[27] <= csr_readdata[27]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[28] <= csr_readdata[28]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[29] <= csr_readdata[29]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[30] <= csr_readdata[30]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[31] <= csr_readdata[31]~reg0.DB_MAX_OUTPUT_PORT_TYPE +almost_full_data <= +almost_empty_data <= + + +|lights|nios_system:NiosII|altera_merlin_slave_agent:hex6_s1_translator_avalon_universal_slave_0_agent +clk => clk.IN1 +reset => reset.IN1 +m0_address[0] <= +m0_address[1] <= +m0_address[2] <= cp_data[38].DB_MAX_OUTPUT_PORT_TYPE +m0_address[3] <= cp_data[39].DB_MAX_OUTPUT_PORT_TYPE +m0_address[4] <= cp_data[40].DB_MAX_OUTPUT_PORT_TYPE +m0_address[5] <= cp_data[41].DB_MAX_OUTPUT_PORT_TYPE +m0_address[6] <= cp_data[42].DB_MAX_OUTPUT_PORT_TYPE +m0_address[7] <= cp_data[43].DB_MAX_OUTPUT_PORT_TYPE +m0_address[8] <= cp_data[44].DB_MAX_OUTPUT_PORT_TYPE +m0_address[9] <= cp_data[45].DB_MAX_OUTPUT_PORT_TYPE +m0_address[10] <= cp_data[46].DB_MAX_OUTPUT_PORT_TYPE +m0_address[11] <= cp_data[47].DB_MAX_OUTPUT_PORT_TYPE +m0_address[12] <= cp_data[48].DB_MAX_OUTPUT_PORT_TYPE +m0_address[13] <= cp_data[49].DB_MAX_OUTPUT_PORT_TYPE +m0_address[14] <= cp_data[50].DB_MAX_OUTPUT_PORT_TYPE +m0_address[15] <= cp_data[51].DB_MAX_OUTPUT_PORT_TYPE +m0_address[16] <= cp_data[52].DB_MAX_OUTPUT_PORT_TYPE +m0_address[17] <= cp_data[53].DB_MAX_OUTPUT_PORT_TYPE +m0_address[18] <= cp_data[54].DB_MAX_OUTPUT_PORT_TYPE +m0_burstcount[0] <= m0_burstcount.DB_MAX_OUTPUT_PORT_TYPE +m0_burstcount[1] <= m0_burstcount.DB_MAX_OUTPUT_PORT_TYPE +m0_burstcount[2] <= m0_burstcount.DB_MAX_OUTPUT_PORT_TYPE +m0_byteenable[0] <= cp_data[32].DB_MAX_OUTPUT_PORT_TYPE +m0_byteenable[1] <= cp_data[33].DB_MAX_OUTPUT_PORT_TYPE +m0_byteenable[2] <= cp_data[34].DB_MAX_OUTPUT_PORT_TYPE +m0_byteenable[3] <= cp_data[35].DB_MAX_OUTPUT_PORT_TYPE +m0_read <= m0_read.DB_MAX_OUTPUT_PORT_TYPE +m0_readdata[0] => rdata_fifo_src_data[0].DATAIN +m0_readdata[1] => rdata_fifo_src_data[1].DATAIN +m0_readdata[2] => rdata_fifo_src_data[2].DATAIN +m0_readdata[3] => rdata_fifo_src_data[3].DATAIN +m0_readdata[4] => rdata_fifo_src_data[4].DATAIN +m0_readdata[5] => rdata_fifo_src_data[5].DATAIN +m0_readdata[6] => rdata_fifo_src_data[6].DATAIN +m0_readdata[7] => rdata_fifo_src_data[7].DATAIN +m0_readdata[8] => rdata_fifo_src_data[8].DATAIN +m0_readdata[9] => rdata_fifo_src_data[9].DATAIN +m0_readdata[10] => rdata_fifo_src_data[10].DATAIN +m0_readdata[11] => rdata_fifo_src_data[11].DATAIN +m0_readdata[12] => rdata_fifo_src_data[12].DATAIN +m0_readdata[13] => rdata_fifo_src_data[13].DATAIN +m0_readdata[14] => rdata_fifo_src_data[14].DATAIN +m0_readdata[15] => rdata_fifo_src_data[15].DATAIN +m0_readdata[16] => rdata_fifo_src_data[16].DATAIN +m0_readdata[17] => rdata_fifo_src_data[17].DATAIN +m0_readdata[18] => rdata_fifo_src_data[18].DATAIN +m0_readdata[19] => rdata_fifo_src_data[19].DATAIN +m0_readdata[20] => rdata_fifo_src_data[20].DATAIN +m0_readdata[21] => rdata_fifo_src_data[21].DATAIN +m0_readdata[22] => rdata_fifo_src_data[22].DATAIN +m0_readdata[23] => rdata_fifo_src_data[23].DATAIN +m0_readdata[24] => rdata_fifo_src_data[24].DATAIN +m0_readdata[25] => rdata_fifo_src_data[25].DATAIN +m0_readdata[26] => rdata_fifo_src_data[26].DATAIN +m0_readdata[27] => rdata_fifo_src_data[27].DATAIN +m0_readdata[28] => rdata_fifo_src_data[28].DATAIN +m0_readdata[29] => rdata_fifo_src_data[29].DATAIN +m0_readdata[30] => rdata_fifo_src_data[30].DATAIN +m0_readdata[31] => rdata_fifo_src_data[31].DATAIN +m0_waitrequest => cp_ready.IN0 +m0_write <= m0_write.DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[0] <= cp_data[0].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[1] <= cp_data[1].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[2] <= cp_data[2].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[3] <= cp_data[3].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[4] <= cp_data[4].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[5] <= cp_data[5].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[6] <= cp_data[6].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[7] <= cp_data[7].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[8] <= cp_data[8].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[9] <= cp_data[9].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[10] <= cp_data[10].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[11] <= cp_data[11].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[12] <= cp_data[12].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[13] <= cp_data[13].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[14] <= cp_data[14].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[15] <= cp_data[15].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[16] <= cp_data[16].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[17] <= cp_data[17].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[18] <= cp_data[18].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[19] <= cp_data[19].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[20] <= cp_data[20].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[21] <= cp_data[21].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[22] <= cp_data[22].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[23] <= cp_data[23].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[24] <= cp_data[24].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[25] <= cp_data[25].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[26] <= cp_data[26].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[27] <= cp_data[27].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[28] <= cp_data[28].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[29] <= cp_data[29].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[30] <= cp_data[30].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[31] <= cp_data[31].DB_MAX_OUTPUT_PORT_TYPE +m0_readdatavalid => rdata_fifo_src_valid.IN0 +m0_debugaccess <= cp_data[87].DB_MAX_OUTPUT_PORT_TYPE +m0_lock <= m0_lock.DB_MAX_OUTPUT_PORT_TYPE +m0_response[0] => rdata_fifo_src_data[32].DATAIN +m0_response[1] => rdata_fifo_src_data[33].DATAIN +m0_writeresponserequest <= m0_writeresponserequest.DB_MAX_OUTPUT_PORT_TYPE +m0_writeresponsevalid => rdata_fifo_src_valid.IN1 +rf_source_data[0] <= +rf_source_data[1] <= +rf_source_data[2] <= +rf_source_data[3] <= +rf_source_data[4] <= +rf_source_data[5] <= +rf_source_data[6] <= +rf_source_data[7] <= +rf_source_data[8] <= +rf_source_data[9] <= +rf_source_data[10] <= +rf_source_data[11] <= +rf_source_data[12] <= +rf_source_data[13] <= +rf_source_data[14] <= +rf_source_data[15] <= +rf_source_data[16] <= +rf_source_data[17] <= +rf_source_data[18] <= +rf_source_data[19] <= +rf_source_data[20] <= +rf_source_data[21] <= +rf_source_data[22] <= +rf_source_data[23] <= +rf_source_data[24] <= +rf_source_data[25] <= +rf_source_data[26] <= +rf_source_data[27] <= +rf_source_data[28] <= +rf_source_data[29] <= +rf_source_data[30] <= +rf_source_data[31] <= +rf_source_data[32] <= cp_data[32].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[33] <= cp_data[33].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[34] <= cp_data[34].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[35] <= cp_data[35].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[36] <= cp_data[36].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[37] <= cp_data[37].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[38] <= cp_data[38].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[39] <= cp_data[39].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[40] <= cp_data[40].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[41] <= cp_data[41].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[42] <= cp_data[42].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[43] <= cp_data[43].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[44] <= cp_data[44].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[45] <= cp_data[45].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[46] <= cp_data[46].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[47] <= cp_data[47].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[48] <= cp_data[48].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[49] <= cp_data[49].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[50] <= cp_data[50].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[51] <= cp_data[51].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[52] <= cp_data[52].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[53] <= cp_data[53].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[54] <= cp_data[54].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[55] <= cp_data[55].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[56] <= cp_data[56].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[57] <= cp_data[57].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[58] <= cp_data[58].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[59] <= cp_data[59].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[60] <= cp_data[60].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[61] <= cp_data[61].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[62] <= cp_data[62].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[63] <= cp_data[63].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[64] <= cp_data[64].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[65] <= cp_data[65].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[66] <= cp_data[66].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[67] <= cp_data[67].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[68] <= cp_data[68].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[69] <= cp_data[69].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[70] <= cp_data[70].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[71] <= cp_data[71].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[72] <= cp_data[72].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[73] <= cp_data[73].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[74] <= cp_data[74].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[75] <= cp_data[75].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[76] <= cp_data[76].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[77] <= cp_data[77].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[78] <= cp_data[78].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[79] <= cp_data[79].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[80] <= cp_data[80].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[81] <= cp_data[81].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[82] <= cp_data[82].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[83] <= cp_data[83].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[84] <= cp_data[84].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[85] <= cp_data[85].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[86] <= cp_data[86].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[87] <= cp_data[87].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[88] <= +rf_source_data[89] <= +rf_source_data[90] <= cp_data[90].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[91] <= cp_data[91].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[92] <= cp_data[92].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[93] <= cp_data[93].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[94] <= cp_data[94].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[95] <= cp_data[95].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[96] <= nonposted_write_endofpacket.DB_MAX_OUTPUT_PORT_TYPE +rf_source_valid <= rf_source_valid.DB_MAX_OUTPUT_PORT_TYPE +rf_source_startofpacket <= cp_startofpacket.DB_MAX_OUTPUT_PORT_TYPE +rf_source_endofpacket <= cp_endofpacket.DB_MAX_OUTPUT_PORT_TYPE +rf_source_ready => cp_ready.IN1 +rf_source_ready => m0_write.IN1 +rf_source_ready => m0_lock.IN1 +rf_source_ready => rf_source_valid.IN1 +rf_source_ready => m0_read.IN1 +rf_sink_data[0] => ~NO_FANOUT~ +rf_sink_data[1] => ~NO_FANOUT~ +rf_sink_data[2] => ~NO_FANOUT~ +rf_sink_data[3] => ~NO_FANOUT~ +rf_sink_data[4] => ~NO_FANOUT~ +rf_sink_data[5] => ~NO_FANOUT~ +rf_sink_data[6] => ~NO_FANOUT~ +rf_sink_data[7] => ~NO_FANOUT~ +rf_sink_data[8] => ~NO_FANOUT~ +rf_sink_data[9] => ~NO_FANOUT~ +rf_sink_data[10] => ~NO_FANOUT~ +rf_sink_data[11] => ~NO_FANOUT~ +rf_sink_data[12] => ~NO_FANOUT~ +rf_sink_data[13] => ~NO_FANOUT~ +rf_sink_data[14] => ~NO_FANOUT~ +rf_sink_data[15] => ~NO_FANOUT~ +rf_sink_data[16] => ~NO_FANOUT~ +rf_sink_data[17] => ~NO_FANOUT~ +rf_sink_data[18] => ~NO_FANOUT~ +rf_sink_data[19] => ~NO_FANOUT~ +rf_sink_data[20] => ~NO_FANOUT~ +rf_sink_data[21] => ~NO_FANOUT~ +rf_sink_data[22] => ~NO_FANOUT~ +rf_sink_data[23] => ~NO_FANOUT~ +rf_sink_data[24] => ~NO_FANOUT~ +rf_sink_data[25] => ~NO_FANOUT~ +rf_sink_data[26] => ~NO_FANOUT~ +rf_sink_data[27] => ~NO_FANOUT~ +rf_sink_data[28] => ~NO_FANOUT~ +rf_sink_data[29] => ~NO_FANOUT~ +rf_sink_data[30] => ~NO_FANOUT~ +rf_sink_data[31] => ~NO_FANOUT~ +rf_sink_data[32] => rp_data[32].DATAIN +rf_sink_data[33] => rp_data[33].DATAIN +rf_sink_data[34] => rp_data[34].DATAIN +rf_sink_data[35] => rp_data[35].DATAIN +rf_sink_data[36] => rf_sink_addr[0].IN1 +rf_sink_data[37] => rf_sink_addr[1].IN1 +rf_sink_data[38] => rf_sink_addr[2].IN1 +rf_sink_data[39] => rf_sink_addr[3].IN1 +rf_sink_data[40] => rf_sink_addr[4].IN1 +rf_sink_data[41] => rf_sink_addr[5].IN1 +rf_sink_data[42] => rf_sink_addr[6].IN1 +rf_sink_data[43] => rf_sink_addr[7].IN1 +rf_sink_data[44] => rf_sink_addr[8].IN1 +rf_sink_data[45] => rf_sink_addr[9].IN1 +rf_sink_data[46] => rf_sink_addr[10].IN1 +rf_sink_data[47] => rf_sink_addr[11].IN1 +rf_sink_data[48] => rf_sink_addr[12].IN1 +rf_sink_data[49] => rf_sink_addr[13].IN1 +rf_sink_data[50] => rf_sink_addr[14].IN1 +rf_sink_data[51] => rf_sink_addr[15].IN1 +rf_sink_data[52] => rf_sink_addr[16].IN1 +rf_sink_data[53] => rf_sink_addr[17].IN1 +rf_sink_data[54] => rf_sink_addr[18].IN1 +rf_sink_data[55] => rf_sink_compressed.IN1 +rf_sink_data[56] => rp_data[56].DATAIN +rf_sink_data[57] => comb.OUTPUTSELECT +rf_sink_data[57] => rp_data[57].DATAIN +rf_sink_data[58] => rp_data.IN0 +rf_sink_data[59] => rp_data[59].DATAIN +rf_sink_data[60] => rp_data[60].DATAIN +rf_sink_data[61] => rf_sink_byte_cnt[0].IN1 +rf_sink_data[62] => rf_sink_byte_cnt[1].IN1 +rf_sink_data[63] => rf_sink_byte_cnt[2].IN1 +rf_sink_data[64] => rf_sink_burstwrap[0].IN1 +rf_sink_data[65] => rf_sink_burstwrap[1].IN1 +rf_sink_data[66] => rf_sink_burstwrap[2].IN1 +rf_sink_data[67] => rf_sink_burstsize[0].IN1 +rf_sink_data[68] => rf_sink_burstsize[1].IN1 +rf_sink_data[69] => rf_sink_burstsize[2].IN1 +rf_sink_data[70] => rp_data[70].DATAIN +rf_sink_data[71] => rp_data[71].DATAIN +rf_sink_data[72] => rp_data[72].DATAIN +rf_sink_data[73] => rp_data[73].DATAIN +rf_sink_data[74] => rp_data[74].DATAIN +rf_sink_data[75] => rp_data[75].DATAIN +rf_sink_data[76] => rp_data[81].DATAIN +rf_sink_data[77] => rp_data[82].DATAIN +rf_sink_data[78] => rp_data[83].DATAIN +rf_sink_data[79] => rp_data[84].DATAIN +rf_sink_data[80] => rp_data[85].DATAIN +rf_sink_data[81] => rp_data[76].DATAIN +rf_sink_data[82] => rp_data[77].DATAIN +rf_sink_data[83] => rp_data[78].DATAIN +rf_sink_data[84] => rp_data[79].DATAIN +rf_sink_data[85] => rp_data[80].DATAIN +rf_sink_data[86] => rp_data[86].DATAIN +rf_sink_data[87] => rp_data[87].DATAIN +rf_sink_data[88] => rp_data[88].DATAIN +rf_sink_data[89] => rp_data[89].DATAIN +rf_sink_data[90] => rp_data[90].DATAIN +rf_sink_data[91] => rp_data[91].DATAIN +rf_sink_data[92] => rp_data[92].DATAIN +rf_sink_data[93] => rp_data[93].DATAIN +rf_sink_data[94] => ~NO_FANOUT~ +rf_sink_data[95] => ~NO_FANOUT~ +rf_sink_data[96] => rdata_fifo_sink_ready.IN0 +rf_sink_data[96] => comb.IN0 +rf_sink_valid => rdata_fifo_sink_ready.IN1 +rf_sink_valid => comb.IN1 +rf_sink_startofpacket => comb.DATAA +rf_sink_endofpacket => rf_sink_endofpacket.IN1 +rf_sink_ready <= altera_merlin_burst_uncompressor:uncompressor.sink_ready +rdata_fifo_src_data[0] <= m0_readdata[0].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[1] <= m0_readdata[1].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[2] <= m0_readdata[2].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[3] <= m0_readdata[3].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[4] <= m0_readdata[4].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[5] <= m0_readdata[5].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[6] <= m0_readdata[6].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[7] <= m0_readdata[7].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[8] <= m0_readdata[8].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[9] <= m0_readdata[9].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[10] <= m0_readdata[10].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[11] <= m0_readdata[11].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[12] <= m0_readdata[12].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[13] <= m0_readdata[13].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[14] <= m0_readdata[14].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[15] <= m0_readdata[15].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[16] <= m0_readdata[16].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[17] <= m0_readdata[17].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[18] <= m0_readdata[18].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[19] <= m0_readdata[19].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[20] <= m0_readdata[20].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[21] <= m0_readdata[21].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[22] <= m0_readdata[22].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[23] <= m0_readdata[23].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[24] <= m0_readdata[24].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[25] <= m0_readdata[25].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[26] <= m0_readdata[26].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[27] <= m0_readdata[27].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[28] <= m0_readdata[28].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[29] <= m0_readdata[29].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[30] <= m0_readdata[30].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[31] <= m0_readdata[31].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[32] <= m0_response[0].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[33] <= m0_response[1].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_valid <= rdata_fifo_src_valid.DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_ready => ~NO_FANOUT~ +rdata_fifo_sink_data[0] => rp_data[0].DATAIN +rdata_fifo_sink_data[1] => rp_data[1].DATAIN +rdata_fifo_sink_data[2] => rp_data[2].DATAIN +rdata_fifo_sink_data[3] => rp_data[3].DATAIN +rdata_fifo_sink_data[4] => rp_data[4].DATAIN +rdata_fifo_sink_data[5] => rp_data[5].DATAIN +rdata_fifo_sink_data[6] => rp_data[6].DATAIN +rdata_fifo_sink_data[7] => rp_data[7].DATAIN +rdata_fifo_sink_data[8] => rp_data[8].DATAIN +rdata_fifo_sink_data[9] => rp_data[9].DATAIN +rdata_fifo_sink_data[10] => rp_data[10].DATAIN +rdata_fifo_sink_data[11] => rp_data[11].DATAIN +rdata_fifo_sink_data[12] => rp_data[12].DATAIN +rdata_fifo_sink_data[13] => rp_data[13].DATAIN +rdata_fifo_sink_data[14] => rp_data[14].DATAIN +rdata_fifo_sink_data[15] => rp_data[15].DATAIN +rdata_fifo_sink_data[16] => rp_data[16].DATAIN +rdata_fifo_sink_data[17] => rp_data[17].DATAIN +rdata_fifo_sink_data[18] => rp_data[18].DATAIN +rdata_fifo_sink_data[19] => rp_data[19].DATAIN +rdata_fifo_sink_data[20] => rp_data[20].DATAIN +rdata_fifo_sink_data[21] => rp_data[21].DATAIN +rdata_fifo_sink_data[22] => rp_data[22].DATAIN +rdata_fifo_sink_data[23] => rp_data[23].DATAIN +rdata_fifo_sink_data[24] => rp_data[24].DATAIN +rdata_fifo_sink_data[25] => rp_data[25].DATAIN +rdata_fifo_sink_data[26] => rp_data[26].DATAIN +rdata_fifo_sink_data[27] => rp_data[27].DATAIN +rdata_fifo_sink_data[28] => rp_data[28].DATAIN +rdata_fifo_sink_data[29] => rp_data[29].DATAIN +rdata_fifo_sink_data[30] => rp_data[30].DATAIN +rdata_fifo_sink_data[31] => rp_data[31].DATAIN +rdata_fifo_sink_data[32] => rp_data[94].DATAIN +rdata_fifo_sink_data[33] => rp_data[95].DATAIN +rdata_fifo_sink_valid => rp_valid.IN1 +rdata_fifo_sink_valid => rdata_fifo_sink_ready.IN0 +rdata_fifo_sink_valid => comb.IN1 +rdata_fifo_sink_ready <= rdata_fifo_sink_ready.DB_MAX_OUTPUT_PORT_TYPE +cp_ready <= cp_ready.DB_MAX_OUTPUT_PORT_TYPE +cp_valid => local_lock.IN0 +cp_valid => local_write.IN0 +cp_valid => local_read.IN0 +cp_valid => local_compressed_read.IN0 +cp_data[0] => m0_writedata[0].DATAIN +cp_data[1] => m0_writedata[1].DATAIN +cp_data[2] => m0_writedata[2].DATAIN +cp_data[3] => m0_writedata[3].DATAIN +cp_data[4] => m0_writedata[4].DATAIN +cp_data[5] => m0_writedata[5].DATAIN +cp_data[6] => m0_writedata[6].DATAIN +cp_data[7] => m0_writedata[7].DATAIN +cp_data[8] => m0_writedata[8].DATAIN +cp_data[9] => m0_writedata[9].DATAIN +cp_data[10] => m0_writedata[10].DATAIN +cp_data[11] => m0_writedata[11].DATAIN +cp_data[12] => m0_writedata[12].DATAIN +cp_data[13] => m0_writedata[13].DATAIN +cp_data[14] => m0_writedata[14].DATAIN +cp_data[15] => m0_writedata[15].DATAIN +cp_data[16] => m0_writedata[16].DATAIN +cp_data[17] => m0_writedata[17].DATAIN +cp_data[18] => m0_writedata[18].DATAIN +cp_data[19] => m0_writedata[19].DATAIN +cp_data[20] => m0_writedata[20].DATAIN +cp_data[21] => m0_writedata[21].DATAIN +cp_data[22] => m0_writedata[22].DATAIN +cp_data[23] => m0_writedata[23].DATAIN +cp_data[24] => m0_writedata[24].DATAIN +cp_data[25] => m0_writedata[25].DATAIN +cp_data[26] => m0_writedata[26].DATAIN +cp_data[27] => m0_writedata[27].DATAIN +cp_data[28] => m0_writedata[28].DATAIN +cp_data[29] => m0_writedata[29].DATAIN +cp_data[30] => m0_writedata[30].DATAIN +cp_data[31] => m0_writedata[31].DATAIN +cp_data[32] => rf_source_data[32].DATAIN +cp_data[32] => m0_byteenable[0].DATAIN +cp_data[33] => rf_source_data[33].DATAIN +cp_data[33] => m0_byteenable[1].DATAIN +cp_data[34] => rf_source_data[34].DATAIN +cp_data[34] => m0_byteenable[2].DATAIN +cp_data[35] => rf_source_data[35].DATAIN +cp_data[35] => m0_byteenable[3].DATAIN +cp_data[36] => rf_source_data[36].DATAIN +cp_data[37] => rf_source_data[37].DATAIN +cp_data[38] => rf_source_data[38].DATAIN +cp_data[38] => m0_address[2].DATAIN +cp_data[39] => rf_source_data[39].DATAIN +cp_data[39] => m0_address[3].DATAIN +cp_data[40] => rf_source_data[40].DATAIN +cp_data[40] => m0_address[4].DATAIN +cp_data[41] => rf_source_data[41].DATAIN +cp_data[41] => m0_address[5].DATAIN +cp_data[42] => rf_source_data[42].DATAIN +cp_data[42] => m0_address[6].DATAIN +cp_data[43] => rf_source_data[43].DATAIN +cp_data[43] => m0_address[7].DATAIN +cp_data[44] => rf_source_data[44].DATAIN +cp_data[44] => m0_address[8].DATAIN +cp_data[45] => rf_source_data[45].DATAIN +cp_data[45] => m0_address[9].DATAIN +cp_data[46] => rf_source_data[46].DATAIN +cp_data[46] => m0_address[10].DATAIN +cp_data[47] => rf_source_data[47].DATAIN +cp_data[47] => m0_address[11].DATAIN +cp_data[48] => rf_source_data[48].DATAIN +cp_data[48] => m0_address[12].DATAIN +cp_data[49] => rf_source_data[49].DATAIN +cp_data[49] => m0_address[13].DATAIN +cp_data[50] => rf_source_data[50].DATAIN +cp_data[50] => m0_address[14].DATAIN +cp_data[51] => rf_source_data[51].DATAIN +cp_data[51] => m0_address[15].DATAIN +cp_data[52] => rf_source_data[52].DATAIN +cp_data[52] => m0_address[16].DATAIN +cp_data[53] => rf_source_data[53].DATAIN +cp_data[53] => m0_address[17].DATAIN +cp_data[54] => rf_source_data[54].DATAIN +cp_data[54] => m0_address[18].DATAIN +cp_data[55] => local_compressed_read.IN1 +cp_data[55] => rf_source_data[55].DATAIN +cp_data[56] => rf_source_data[56].DATAIN +cp_data[56] => m0_writeresponserequest.IN1 +cp_data[56] => comb.IN1 +cp_data[57] => local_write.IN1 +cp_data[57] => rf_source_data[57].DATAIN +cp_data[58] => local_read.IN1 +cp_data[58] => rf_source_data[58].DATAIN +cp_data[59] => local_lock.IN1 +cp_data[59] => rf_source_data[59].DATAIN +cp_data[60] => rf_source_data[60].DATAIN +cp_data[61] => m0_burstcount.DATAA +cp_data[61] => rf_source_data[61].DATAIN +cp_data[62] => m0_burstcount.DATAA +cp_data[62] => rf_source_data[62].DATAIN +cp_data[63] => m0_burstcount.DATAA +cp_data[63] => rf_source_data[63].DATAIN +cp_data[64] => rf_source_data[64].DATAIN +cp_data[65] => rf_source_data[65].DATAIN +cp_data[66] => rf_source_data[66].DATAIN +cp_data[67] => rf_source_data[67].DATAIN +cp_data[68] => rf_source_data[68].DATAIN +cp_data[69] => rf_source_data[69].DATAIN +cp_data[70] => rf_source_data[70].DATAIN +cp_data[71] => rf_source_data[71].DATAIN +cp_data[72] => rf_source_data[72].DATAIN +cp_data[73] => rf_source_data[73].DATAIN +cp_data[74] => rf_source_data[74].DATAIN +cp_data[75] => rf_source_data[75].DATAIN +cp_data[76] => rf_source_data[76].DATAIN +cp_data[77] => rf_source_data[77].DATAIN +cp_data[78] => rf_source_data[78].DATAIN +cp_data[79] => rf_source_data[79].DATAIN +cp_data[80] => rf_source_data[80].DATAIN +cp_data[81] => rf_source_data[81].DATAIN +cp_data[82] => rf_source_data[82].DATAIN +cp_data[83] => rf_source_data[83].DATAIN +cp_data[84] => rf_source_data[84].DATAIN +cp_data[85] => rf_source_data[85].DATAIN +cp_data[86] => rf_source_data[86].DATAIN +cp_data[87] => rf_source_data[87].DATAIN +cp_data[87] => m0_debugaccess.DATAIN +cp_data[88] => ~NO_FANOUT~ +cp_data[89] => ~NO_FANOUT~ +cp_data[90] => rf_source_data[90].DATAIN +cp_data[91] => rf_source_data[91].DATAIN +cp_data[92] => rf_source_data[92].DATAIN +cp_data[93] => rf_source_data[93].DATAIN +cp_data[94] => rf_source_data[94].DATAIN +cp_data[95] => rf_source_data[95].DATAIN +cp_channel[0] => ~NO_FANOUT~ +cp_channel[1] => ~NO_FANOUT~ +cp_channel[2] => ~NO_FANOUT~ +cp_channel[3] => ~NO_FANOUT~ +cp_channel[4] => ~NO_FANOUT~ +cp_channel[5] => ~NO_FANOUT~ +cp_channel[6] => ~NO_FANOUT~ +cp_channel[7] => ~NO_FANOUT~ +cp_channel[8] => ~NO_FANOUT~ +cp_channel[9] => ~NO_FANOUT~ +cp_channel[10] => ~NO_FANOUT~ +cp_channel[11] => ~NO_FANOUT~ +cp_channel[12] => ~NO_FANOUT~ +cp_channel[13] => ~NO_FANOUT~ +cp_channel[14] => ~NO_FANOUT~ +cp_channel[15] => ~NO_FANOUT~ +cp_channel[16] => ~NO_FANOUT~ +cp_channel[17] => ~NO_FANOUT~ +cp_startofpacket => rf_source_startofpacket.DATAIN +cp_endofpacket => nonposted_write_endofpacket.IN1 +cp_endofpacket => rf_source_endofpacket.DATAIN +rp_ready => rp_ready.IN1 +rp_valid <= rp_valid.DB_MAX_OUTPUT_PORT_TYPE +rp_data[0] <= rdata_fifo_sink_data[0].DB_MAX_OUTPUT_PORT_TYPE +rp_data[1] <= rdata_fifo_sink_data[1].DB_MAX_OUTPUT_PORT_TYPE +rp_data[2] <= rdata_fifo_sink_data[2].DB_MAX_OUTPUT_PORT_TYPE +rp_data[3] <= rdata_fifo_sink_data[3].DB_MAX_OUTPUT_PORT_TYPE +rp_data[4] <= rdata_fifo_sink_data[4].DB_MAX_OUTPUT_PORT_TYPE +rp_data[5] <= rdata_fifo_sink_data[5].DB_MAX_OUTPUT_PORT_TYPE +rp_data[6] <= rdata_fifo_sink_data[6].DB_MAX_OUTPUT_PORT_TYPE +rp_data[7] <= rdata_fifo_sink_data[7].DB_MAX_OUTPUT_PORT_TYPE +rp_data[8] <= rdata_fifo_sink_data[8].DB_MAX_OUTPUT_PORT_TYPE +rp_data[9] <= rdata_fifo_sink_data[9].DB_MAX_OUTPUT_PORT_TYPE +rp_data[10] <= rdata_fifo_sink_data[10].DB_MAX_OUTPUT_PORT_TYPE +rp_data[11] <= rdata_fifo_sink_data[11].DB_MAX_OUTPUT_PORT_TYPE +rp_data[12] <= rdata_fifo_sink_data[12].DB_MAX_OUTPUT_PORT_TYPE +rp_data[13] <= rdata_fifo_sink_data[13].DB_MAX_OUTPUT_PORT_TYPE +rp_data[14] <= rdata_fifo_sink_data[14].DB_MAX_OUTPUT_PORT_TYPE +rp_data[15] <= rdata_fifo_sink_data[15].DB_MAX_OUTPUT_PORT_TYPE +rp_data[16] <= rdata_fifo_sink_data[16].DB_MAX_OUTPUT_PORT_TYPE +rp_data[17] <= rdata_fifo_sink_data[17].DB_MAX_OUTPUT_PORT_TYPE +rp_data[18] <= rdata_fifo_sink_data[18].DB_MAX_OUTPUT_PORT_TYPE +rp_data[19] <= rdata_fifo_sink_data[19].DB_MAX_OUTPUT_PORT_TYPE +rp_data[20] <= rdata_fifo_sink_data[20].DB_MAX_OUTPUT_PORT_TYPE +rp_data[21] <= rdata_fifo_sink_data[21].DB_MAX_OUTPUT_PORT_TYPE +rp_data[22] <= rdata_fifo_sink_data[22].DB_MAX_OUTPUT_PORT_TYPE +rp_data[23] <= rdata_fifo_sink_data[23].DB_MAX_OUTPUT_PORT_TYPE +rp_data[24] <= rdata_fifo_sink_data[24].DB_MAX_OUTPUT_PORT_TYPE +rp_data[25] <= rdata_fifo_sink_data[25].DB_MAX_OUTPUT_PORT_TYPE +rp_data[26] <= rdata_fifo_sink_data[26].DB_MAX_OUTPUT_PORT_TYPE +rp_data[27] <= rdata_fifo_sink_data[27].DB_MAX_OUTPUT_PORT_TYPE +rp_data[28] <= rdata_fifo_sink_data[28].DB_MAX_OUTPUT_PORT_TYPE +rp_data[29] <= rdata_fifo_sink_data[29].DB_MAX_OUTPUT_PORT_TYPE +rp_data[30] <= rdata_fifo_sink_data[30].DB_MAX_OUTPUT_PORT_TYPE +rp_data[31] <= rdata_fifo_sink_data[31].DB_MAX_OUTPUT_PORT_TYPE +rp_data[32] <= rf_sink_data[32].DB_MAX_OUTPUT_PORT_TYPE +rp_data[33] <= rf_sink_data[33].DB_MAX_OUTPUT_PORT_TYPE +rp_data[34] <= rf_sink_data[34].DB_MAX_OUTPUT_PORT_TYPE +rp_data[35] <= rf_sink_data[35].DB_MAX_OUTPUT_PORT_TYPE +rp_data[36] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[37] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[38] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[39] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[40] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[41] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[42] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[43] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[44] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[45] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[46] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[47] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[48] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[49] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[50] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[51] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[52] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[53] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[54] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[55] <= altera_merlin_burst_uncompressor:uncompressor.source_is_compressed +rp_data[56] <= rf_sink_data[56].DB_MAX_OUTPUT_PORT_TYPE +rp_data[57] <= rf_sink_data[57].DB_MAX_OUTPUT_PORT_TYPE +rp_data[58] <= rp_data.DB_MAX_OUTPUT_PORT_TYPE +rp_data[59] <= rf_sink_data[59].DB_MAX_OUTPUT_PORT_TYPE +rp_data[60] <= rf_sink_data[60].DB_MAX_OUTPUT_PORT_TYPE +rp_data[61] <= altera_merlin_burst_uncompressor:uncompressor.source_byte_cnt +rp_data[62] <= altera_merlin_burst_uncompressor:uncompressor.source_byte_cnt +rp_data[63] <= altera_merlin_burst_uncompressor:uncompressor.source_byte_cnt +rp_data[64] <= altera_merlin_burst_uncompressor:uncompressor.source_burstwrap +rp_data[65] <= altera_merlin_burst_uncompressor:uncompressor.source_burstwrap +rp_data[66] <= altera_merlin_burst_uncompressor:uncompressor.source_burstwrap +rp_data[67] <= altera_merlin_burst_uncompressor:uncompressor.source_burstsize +rp_data[68] <= altera_merlin_burst_uncompressor:uncompressor.source_burstsize +rp_data[69] <= altera_merlin_burst_uncompressor:uncompressor.source_burstsize +rp_data[70] <= rf_sink_data[70].DB_MAX_OUTPUT_PORT_TYPE +rp_data[71] <= rf_sink_data[71].DB_MAX_OUTPUT_PORT_TYPE +rp_data[72] <= rf_sink_data[72].DB_MAX_OUTPUT_PORT_TYPE +rp_data[73] <= rf_sink_data[73].DB_MAX_OUTPUT_PORT_TYPE +rp_data[74] <= rf_sink_data[74].DB_MAX_OUTPUT_PORT_TYPE +rp_data[75] <= rf_sink_data[75].DB_MAX_OUTPUT_PORT_TYPE +rp_data[76] <= rf_sink_data[81].DB_MAX_OUTPUT_PORT_TYPE +rp_data[77] <= rf_sink_data[82].DB_MAX_OUTPUT_PORT_TYPE +rp_data[78] <= rf_sink_data[83].DB_MAX_OUTPUT_PORT_TYPE +rp_data[79] <= rf_sink_data[84].DB_MAX_OUTPUT_PORT_TYPE +rp_data[80] <= rf_sink_data[85].DB_MAX_OUTPUT_PORT_TYPE +rp_data[81] <= rf_sink_data[76].DB_MAX_OUTPUT_PORT_TYPE +rp_data[82] <= rf_sink_data[77].DB_MAX_OUTPUT_PORT_TYPE +rp_data[83] <= rf_sink_data[78].DB_MAX_OUTPUT_PORT_TYPE +rp_data[84] <= rf_sink_data[79].DB_MAX_OUTPUT_PORT_TYPE +rp_data[85] <= rf_sink_data[80].DB_MAX_OUTPUT_PORT_TYPE +rp_data[86] <= rf_sink_data[86].DB_MAX_OUTPUT_PORT_TYPE +rp_data[87] <= rf_sink_data[87].DB_MAX_OUTPUT_PORT_TYPE +rp_data[88] <= rf_sink_data[88].DB_MAX_OUTPUT_PORT_TYPE +rp_data[89] <= rf_sink_data[89].DB_MAX_OUTPUT_PORT_TYPE +rp_data[90] <= rf_sink_data[90].DB_MAX_OUTPUT_PORT_TYPE +rp_data[91] <= rf_sink_data[91].DB_MAX_OUTPUT_PORT_TYPE +rp_data[92] <= rf_sink_data[92].DB_MAX_OUTPUT_PORT_TYPE +rp_data[93] <= rf_sink_data[93].DB_MAX_OUTPUT_PORT_TYPE +rp_data[94] <= rdata_fifo_sink_data[32].DB_MAX_OUTPUT_PORT_TYPE +rp_data[95] <= rdata_fifo_sink_data[33].DB_MAX_OUTPUT_PORT_TYPE +rp_startofpacket <= altera_merlin_burst_uncompressor:uncompressor.source_startofpacket +rp_endofpacket <= altera_merlin_burst_uncompressor:uncompressor.source_endofpacket + + +|lights|nios_system:NiosII|altera_merlin_slave_agent:hex6_s1_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor +clk => burst_uncompress_address_offset[0].CLK +clk => burst_uncompress_address_offset[1].CLK +clk => burst_uncompress_address_offset[2].CLK +clk => burst_uncompress_address_offset[3].CLK +clk => burst_uncompress_address_offset[4].CLK +clk => burst_uncompress_address_offset[5].CLK +clk => burst_uncompress_address_offset[6].CLK +clk => burst_uncompress_address_offset[7].CLK +clk => burst_uncompress_address_offset[8].CLK +clk => burst_uncompress_address_offset[9].CLK +clk => burst_uncompress_address_offset[10].CLK +clk => burst_uncompress_address_offset[11].CLK +clk => burst_uncompress_address_offset[12].CLK +clk => burst_uncompress_address_offset[13].CLK +clk => burst_uncompress_address_offset[14].CLK +clk => burst_uncompress_address_offset[15].CLK +clk => burst_uncompress_address_offset[16].CLK +clk => burst_uncompress_address_offset[17].CLK +clk => burst_uncompress_address_offset[18].CLK +clk => burst_uncompress_address_base[0].CLK +clk => burst_uncompress_address_base[1].CLK +clk => burst_uncompress_address_base[2].CLK +clk => burst_uncompress_address_base[3].CLK +clk => burst_uncompress_address_base[4].CLK +clk => burst_uncompress_address_base[5].CLK +clk => burst_uncompress_address_base[6].CLK +clk => burst_uncompress_address_base[7].CLK +clk => burst_uncompress_address_base[8].CLK +clk => burst_uncompress_address_base[9].CLK +clk => burst_uncompress_address_base[10].CLK +clk => burst_uncompress_address_base[11].CLK +clk => burst_uncompress_address_base[12].CLK +clk => burst_uncompress_address_base[13].CLK +clk => burst_uncompress_address_base[14].CLK +clk => burst_uncompress_address_base[15].CLK +clk => burst_uncompress_address_base[16].CLK +clk => burst_uncompress_address_base[17].CLK +clk => burst_uncompress_address_base[18].CLK +clk => burst_uncompress_byte_counter[0].CLK +clk => burst_uncompress_byte_counter[1].CLK +clk => burst_uncompress_byte_counter[2].CLK +clk => burst_uncompress_busy.CLK +reset => burst_uncompress_address_offset[0].ACLR +reset => burst_uncompress_address_offset[1].ACLR +reset => burst_uncompress_address_offset[2].ACLR +reset => burst_uncompress_address_offset[3].ACLR +reset => burst_uncompress_address_offset[4].ACLR +reset => burst_uncompress_address_offset[5].ACLR +reset => burst_uncompress_address_offset[6].ACLR +reset => burst_uncompress_address_offset[7].ACLR +reset => burst_uncompress_address_offset[8].ACLR +reset => burst_uncompress_address_offset[9].ACLR +reset => burst_uncompress_address_offset[10].ACLR +reset => burst_uncompress_address_offset[11].ACLR +reset => burst_uncompress_address_offset[12].ACLR +reset => burst_uncompress_address_offset[13].ACLR +reset => burst_uncompress_address_offset[14].ACLR +reset => burst_uncompress_address_offset[15].ACLR +reset => burst_uncompress_address_offset[16].ACLR +reset => burst_uncompress_address_offset[17].ACLR +reset => burst_uncompress_address_offset[18].ACLR +reset => burst_uncompress_address_base[0].ACLR +reset => burst_uncompress_address_base[1].ACLR +reset => burst_uncompress_address_base[2].ACLR +reset => burst_uncompress_address_base[3].ACLR +reset => burst_uncompress_address_base[4].ACLR +reset => burst_uncompress_address_base[5].ACLR +reset => burst_uncompress_address_base[6].ACLR +reset => burst_uncompress_address_base[7].ACLR +reset => burst_uncompress_address_base[8].ACLR +reset => burst_uncompress_address_base[9].ACLR +reset => burst_uncompress_address_base[10].ACLR +reset => burst_uncompress_address_base[11].ACLR +reset => burst_uncompress_address_base[12].ACLR +reset => burst_uncompress_address_base[13].ACLR +reset => burst_uncompress_address_base[14].ACLR +reset => burst_uncompress_address_base[15].ACLR +reset => burst_uncompress_address_base[16].ACLR +reset => burst_uncompress_address_base[17].ACLR +reset => burst_uncompress_address_base[18].ACLR +reset => burst_uncompress_byte_counter[0].ACLR +reset => burst_uncompress_byte_counter[1].ACLR +reset => burst_uncompress_byte_counter[2].ACLR +reset => burst_uncompress_busy.ACLR +sink_startofpacket => source_startofpacket.IN1 +sink_endofpacket => source_endofpacket.IN1 +sink_valid => first_packet_beat.IN1 +sink_valid => last_packet_beat.IN1 +sink_valid => last_packet_beat.IN1 +sink_valid => always0.IN1 +sink_valid => sink_ready.IN0 +sink_valid => source_valid.DATAIN +sink_ready <= sink_ready.DB_MAX_OUTPUT_PORT_TYPE +sink_addr[0] => burst_uncompress_address_base.IN0 +sink_addr[0] => comb.DATAB +sink_addr[0] => source_addr.DATAB +sink_addr[1] => burst_uncompress_address_base.IN0 +sink_addr[1] => comb.DATAB +sink_addr[1] => source_addr.DATAB +sink_addr[2] => burst_uncompress_address_base.IN0 +sink_addr[2] => comb.DATAB +sink_addr[2] => source_addr.DATAB +sink_addr[3] => burst_uncompress_address_base.IN0 +sink_addr[3] => comb.DATAB +sink_addr[3] => source_addr.DATAB +sink_addr[4] => burst_uncompress_address_base.IN0 +sink_addr[4] => comb.DATAB +sink_addr[4] => source_addr.DATAB +sink_addr[5] => burst_uncompress_address_base.IN0 +sink_addr[5] => comb.DATAB +sink_addr[5] => source_addr.DATAB +sink_addr[6] => burst_uncompress_address_base.IN0 +sink_addr[6] => comb.DATAB +sink_addr[6] => source_addr.DATAB +sink_addr[7] => burst_uncompress_address_base.IN0 +sink_addr[7] => comb.DATAB +sink_addr[7] => source_addr.DATAB +sink_addr[8] => burst_uncompress_address_base.IN0 +sink_addr[8] => comb.DATAB +sink_addr[8] => source_addr.DATAB +sink_addr[9] => burst_uncompress_address_base.IN0 +sink_addr[9] => comb.DATAB +sink_addr[9] => source_addr.DATAB +sink_addr[10] => burst_uncompress_address_base.IN0 +sink_addr[10] => comb.DATAB +sink_addr[10] => source_addr.DATAB +sink_addr[11] => burst_uncompress_address_base.IN0 +sink_addr[11] => comb.DATAB +sink_addr[11] => source_addr.DATAB +sink_addr[12] => burst_uncompress_address_base.IN0 +sink_addr[12] => comb.DATAB +sink_addr[12] => source_addr.DATAB +sink_addr[13] => burst_uncompress_address_base.IN0 +sink_addr[13] => comb.DATAB +sink_addr[13] => source_addr.DATAB +sink_addr[14] => burst_uncompress_address_base.IN0 +sink_addr[14] => comb.DATAB +sink_addr[14] => source_addr.DATAB +sink_addr[15] => burst_uncompress_address_base.IN0 +sink_addr[15] => comb.DATAB +sink_addr[15] => source_addr.DATAB +sink_addr[16] => burst_uncompress_address_base.IN0 +sink_addr[16] => comb.DATAB +sink_addr[16] => source_addr.DATAB +sink_addr[17] => burst_uncompress_address_base.IN0 +sink_addr[17] => comb.DATAB +sink_addr[17] => source_addr.DATAB +sink_addr[18] => burst_uncompress_address_base.IN0 +sink_addr[18] => comb.DATAB +sink_addr[18] => source_addr.DATAB +sink_burstwrap[0] => p1_burst_uncompress_address_offset[0].IN1 +sink_burstwrap[0] => source_burstwrap[0].DATAIN +sink_burstwrap[0] => burst_uncompress_address_base.IN1 +sink_burstwrap[1] => p1_burst_uncompress_address_offset[1].IN1 +sink_burstwrap[1] => source_burstwrap[1].DATAIN +sink_burstwrap[1] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[2].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[18].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[17].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[16].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[15].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[14].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[13].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[12].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[11].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[10].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[9].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[8].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[7].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[6].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[5].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[4].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[3].IN1 +sink_burstwrap[2] => source_burstwrap[2].DATAIN +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_byte_cnt[0] => source_byte_cnt.DATAB +sink_byte_cnt[0] => Add1.IN6 +sink_byte_cnt[0] => Equal1.IN2 +sink_byte_cnt[1] => source_byte_cnt.DATAB +sink_byte_cnt[1] => Add1.IN5 +sink_byte_cnt[1] => Equal1.IN1 +sink_byte_cnt[2] => source_byte_cnt.DATAB +sink_byte_cnt[2] => Add1.IN4 +sink_byte_cnt[2] => Equal1.IN0 +sink_is_compressed => last_packet_beat.IN1 +sink_burstsize[0] => Decoder0.IN2 +sink_burstsize[0] => source_burstsize[0].DATAIN +sink_burstsize[1] => Decoder0.IN1 +sink_burstsize[1] => source_burstsize[1].DATAIN +sink_burstsize[2] => Decoder0.IN0 +sink_burstsize[2] => source_burstsize[2].DATAIN +source_startofpacket <= source_startofpacket.DB_MAX_OUTPUT_PORT_TYPE +source_endofpacket <= source_endofpacket.DB_MAX_OUTPUT_PORT_TYPE +source_valid <= sink_valid.DB_MAX_OUTPUT_PORT_TYPE +source_ready => always1.IN1 +source_ready => sink_ready.IN1 +source_addr[0] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[1] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[2] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[3] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[4] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[5] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[6] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[7] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[8] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[9] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[10] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[11] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[12] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[13] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[14] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[15] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[16] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[17] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[18] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_burstwrap[0] <= sink_burstwrap[0].DB_MAX_OUTPUT_PORT_TYPE +source_burstwrap[1] <= sink_burstwrap[1].DB_MAX_OUTPUT_PORT_TYPE +source_burstwrap[2] <= sink_burstwrap[2].DB_MAX_OUTPUT_PORT_TYPE +source_byte_cnt[0] <= source_byte_cnt.DB_MAX_OUTPUT_PORT_TYPE +source_byte_cnt[1] <= source_byte_cnt.DB_MAX_OUTPUT_PORT_TYPE +source_byte_cnt[2] <= source_byte_cnt.DB_MAX_OUTPUT_PORT_TYPE +source_is_compressed <= +source_burstsize[0] <= sink_burstsize[0].DB_MAX_OUTPUT_PORT_TYPE +source_burstsize[1] <= sink_burstsize[1].DB_MAX_OUTPUT_PORT_TYPE +source_burstsize[2] <= sink_burstsize[2].DB_MAX_OUTPUT_PORT_TYPE + + +|lights|nios_system:NiosII|altera_avalon_sc_fifo:hex6_s1_translator_avalon_universal_slave_0_agent_rsp_fifo +clk => csr_readdata[0]~reg0.CLK +clk => csr_readdata[1]~reg0.CLK +clk => csr_readdata[2]~reg0.CLK +clk => csr_readdata[3]~reg0.CLK +clk => csr_readdata[4]~reg0.CLK +clk => csr_readdata[5]~reg0.CLK +clk => csr_readdata[6]~reg0.CLK +clk => csr_readdata[7]~reg0.CLK +clk => csr_readdata[8]~reg0.CLK +clk => csr_readdata[9]~reg0.CLK +clk => csr_readdata[10]~reg0.CLK +clk => csr_readdata[11]~reg0.CLK +clk => csr_readdata[12]~reg0.CLK +clk => csr_readdata[13]~reg0.CLK +clk => csr_readdata[14]~reg0.CLK +clk => csr_readdata[15]~reg0.CLK +clk => csr_readdata[16]~reg0.CLK +clk => csr_readdata[17]~reg0.CLK +clk => csr_readdata[18]~reg0.CLK +clk => csr_readdata[19]~reg0.CLK +clk => csr_readdata[20]~reg0.CLK +clk => csr_readdata[21]~reg0.CLK +clk => csr_readdata[22]~reg0.CLK +clk => csr_readdata[23]~reg0.CLK +clk => csr_readdata[24]~reg0.CLK +clk => csr_readdata[25]~reg0.CLK +clk => csr_readdata[26]~reg0.CLK +clk => csr_readdata[27]~reg0.CLK +clk => csr_readdata[28]~reg0.CLK +clk => csr_readdata[29]~reg0.CLK +clk => csr_readdata[30]~reg0.CLK +clk => csr_readdata[31]~reg0.CLK +clk => mem_used[1].CLK +clk => mem_used[0].CLK +clk => mem[1][0].CLK +clk => mem[1][1].CLK +clk => mem[1][2].CLK +clk => mem[1][3].CLK +clk => mem[1][4].CLK +clk => mem[1][5].CLK +clk => mem[1][6].CLK +clk => mem[1][7].CLK +clk => mem[1][8].CLK +clk => mem[1][9].CLK +clk => mem[1][10].CLK +clk => mem[1][11].CLK +clk => mem[1][12].CLK +clk => mem[1][13].CLK +clk => mem[1][14].CLK +clk => mem[1][15].CLK +clk => mem[1][16].CLK +clk => mem[1][17].CLK +clk => mem[1][18].CLK +clk => mem[1][19].CLK +clk => mem[1][20].CLK +clk => mem[1][21].CLK +clk => mem[1][22].CLK +clk => mem[1][23].CLK +clk => mem[1][24].CLK +clk => mem[1][25].CLK +clk => mem[1][26].CLK +clk => mem[1][27].CLK +clk => mem[1][28].CLK +clk => mem[1][29].CLK +clk => mem[1][30].CLK +clk => mem[1][31].CLK +clk => mem[1][32].CLK +clk => mem[1][33].CLK +clk => mem[1][34].CLK +clk => mem[1][35].CLK +clk => mem[1][36].CLK +clk => mem[1][37].CLK +clk => mem[1][38].CLK +clk => mem[1][39].CLK +clk => mem[1][40].CLK +clk => mem[1][41].CLK +clk => mem[1][42].CLK +clk => mem[1][43].CLK +clk => mem[1][44].CLK +clk => mem[1][45].CLK +clk => mem[1][46].CLK +clk => mem[1][47].CLK +clk => mem[1][48].CLK +clk => mem[1][49].CLK +clk => mem[1][50].CLK +clk => mem[1][51].CLK +clk => mem[1][52].CLK +clk => mem[1][53].CLK +clk => mem[1][54].CLK +clk => mem[1][55].CLK +clk => mem[1][56].CLK +clk => mem[1][57].CLK +clk => mem[1][58].CLK +clk => mem[1][59].CLK +clk => mem[1][60].CLK +clk => mem[1][61].CLK +clk => mem[1][62].CLK +clk => mem[1][63].CLK +clk => mem[1][64].CLK +clk => mem[1][65].CLK +clk => mem[1][66].CLK +clk => mem[1][67].CLK +clk => mem[1][68].CLK +clk => mem[1][69].CLK +clk => mem[1][70].CLK +clk => mem[1][71].CLK +clk => mem[1][72].CLK +clk => mem[1][73].CLK +clk => mem[1][74].CLK +clk => mem[1][75].CLK +clk => mem[1][76].CLK +clk => mem[1][77].CLK +clk => mem[1][78].CLK +clk => mem[1][79].CLK +clk => mem[1][80].CLK +clk => mem[1][81].CLK +clk => mem[1][82].CLK +clk => mem[1][83].CLK +clk => mem[1][84].CLK +clk => mem[1][85].CLK +clk => mem[1][86].CLK +clk => mem[1][87].CLK +clk => mem[1][88].CLK +clk => mem[1][89].CLK +clk => mem[1][90].CLK +clk => mem[1][91].CLK +clk => mem[1][92].CLK +clk => mem[1][93].CLK +clk => mem[1][94].CLK +clk => mem[1][95].CLK +clk => mem[1][96].CLK +clk => mem[1][97].CLK +clk => mem[1][98].CLK +clk => mem[0][0].CLK +clk => mem[0][1].CLK +clk => mem[0][2].CLK +clk => mem[0][3].CLK +clk => mem[0][4].CLK +clk => mem[0][5].CLK +clk => mem[0][6].CLK +clk => mem[0][7].CLK +clk => mem[0][8].CLK +clk => mem[0][9].CLK +clk => mem[0][10].CLK +clk => mem[0][11].CLK +clk => mem[0][12].CLK +clk => mem[0][13].CLK +clk => mem[0][14].CLK +clk => mem[0][15].CLK +clk => mem[0][16].CLK +clk => mem[0][17].CLK +clk => mem[0][18].CLK +clk => mem[0][19].CLK +clk => mem[0][20].CLK +clk => mem[0][21].CLK +clk => mem[0][22].CLK +clk => mem[0][23].CLK +clk => mem[0][24].CLK +clk => mem[0][25].CLK +clk => mem[0][26].CLK +clk => mem[0][27].CLK +clk => mem[0][28].CLK +clk => mem[0][29].CLK +clk => mem[0][30].CLK +clk => mem[0][31].CLK +clk => mem[0][32].CLK +clk => mem[0][33].CLK +clk => mem[0][34].CLK +clk => mem[0][35].CLK +clk => mem[0][36].CLK +clk => mem[0][37].CLK +clk => mem[0][38].CLK +clk => mem[0][39].CLK +clk => mem[0][40].CLK +clk => mem[0][41].CLK +clk => mem[0][42].CLK +clk => mem[0][43].CLK +clk => mem[0][44].CLK +clk => mem[0][45].CLK +clk => mem[0][46].CLK +clk => mem[0][47].CLK +clk => mem[0][48].CLK +clk => mem[0][49].CLK +clk => mem[0][50].CLK +clk => mem[0][51].CLK +clk => mem[0][52].CLK +clk => mem[0][53].CLK +clk => mem[0][54].CLK +clk => mem[0][55].CLK +clk => mem[0][56].CLK +clk => mem[0][57].CLK +clk => mem[0][58].CLK +clk => mem[0][59].CLK +clk => mem[0][60].CLK +clk => mem[0][61].CLK +clk => mem[0][62].CLK +clk => mem[0][63].CLK +clk => mem[0][64].CLK +clk => mem[0][65].CLK +clk => mem[0][66].CLK +clk => mem[0][67].CLK +clk => mem[0][68].CLK +clk => mem[0][69].CLK +clk => mem[0][70].CLK +clk => mem[0][71].CLK +clk => mem[0][72].CLK +clk => mem[0][73].CLK +clk => mem[0][74].CLK +clk => mem[0][75].CLK +clk => mem[0][76].CLK +clk => mem[0][77].CLK +clk => mem[0][78].CLK +clk => mem[0][79].CLK +clk => mem[0][80].CLK +clk => mem[0][81].CLK +clk => mem[0][82].CLK +clk => mem[0][83].CLK +clk => mem[0][84].CLK +clk => mem[0][85].CLK +clk => mem[0][86].CLK +clk => mem[0][87].CLK +clk => mem[0][88].CLK +clk => mem[0][89].CLK +clk => mem[0][90].CLK +clk => mem[0][91].CLK +clk => mem[0][92].CLK +clk => mem[0][93].CLK +clk => mem[0][94].CLK +clk => mem[0][95].CLK +clk => mem[0][96].CLK +clk => mem[0][97].CLK +clk => mem[0][98].CLK +reset => csr_readdata[0]~reg0.ACLR +reset => csr_readdata[1]~reg0.ACLR +reset => csr_readdata[2]~reg0.ACLR +reset => csr_readdata[3]~reg0.ACLR +reset => csr_readdata[4]~reg0.ACLR +reset => csr_readdata[5]~reg0.ACLR +reset => csr_readdata[6]~reg0.ACLR +reset => csr_readdata[7]~reg0.ACLR +reset => csr_readdata[8]~reg0.ACLR +reset => csr_readdata[9]~reg0.ACLR +reset => csr_readdata[10]~reg0.ACLR +reset => csr_readdata[11]~reg0.ACLR +reset => csr_readdata[12]~reg0.ACLR +reset => csr_readdata[13]~reg0.ACLR +reset => csr_readdata[14]~reg0.ACLR +reset => csr_readdata[15]~reg0.ACLR +reset => csr_readdata[16]~reg0.ACLR +reset => csr_readdata[17]~reg0.ACLR +reset => csr_readdata[18]~reg0.ACLR +reset => csr_readdata[19]~reg0.ACLR +reset => csr_readdata[20]~reg0.ACLR +reset => csr_readdata[21]~reg0.ACLR +reset => csr_readdata[22]~reg0.ACLR +reset => csr_readdata[23]~reg0.ACLR +reset => csr_readdata[24]~reg0.ACLR +reset => csr_readdata[25]~reg0.ACLR +reset => csr_readdata[26]~reg0.ACLR +reset => csr_readdata[27]~reg0.ACLR +reset => csr_readdata[28]~reg0.ACLR +reset => csr_readdata[29]~reg0.ACLR +reset => csr_readdata[30]~reg0.ACLR +reset => csr_readdata[31]~reg0.ACLR +reset => mem_used[1].ACLR +reset => mem_used[0].ACLR +reset => mem[1][0].ACLR +reset => mem[1][1].ACLR +reset => mem[1][2].ACLR +reset => mem[1][3].ACLR +reset => mem[1][4].ACLR +reset => mem[1][5].ACLR +reset => mem[1][6].ACLR +reset => mem[1][7].ACLR +reset => mem[1][8].ACLR +reset => mem[1][9].ACLR +reset => mem[1][10].ACLR +reset => mem[1][11].ACLR +reset => mem[1][12].ACLR +reset => mem[1][13].ACLR +reset => mem[1][14].ACLR +reset => mem[1][15].ACLR +reset => mem[1][16].ACLR +reset => mem[1][17].ACLR +reset => mem[1][18].ACLR +reset => mem[1][19].ACLR +reset => mem[1][20].ACLR +reset => mem[1][21].ACLR +reset => mem[1][22].ACLR +reset => mem[1][23].ACLR +reset => mem[1][24].ACLR +reset => mem[1][25].ACLR +reset => mem[1][26].ACLR +reset => mem[1][27].ACLR +reset => mem[1][28].ACLR +reset => mem[1][29].ACLR +reset => mem[1][30].ACLR +reset => mem[1][31].ACLR +reset => mem[1][32].ACLR +reset => mem[1][33].ACLR +reset => mem[1][34].ACLR +reset => mem[1][35].ACLR +reset => mem[1][36].ACLR +reset => mem[1][37].ACLR +reset => mem[1][38].ACLR +reset => mem[1][39].ACLR +reset => mem[1][40].ACLR +reset => mem[1][41].ACLR +reset => mem[1][42].ACLR +reset => mem[1][43].ACLR +reset => mem[1][44].ACLR +reset => mem[1][45].ACLR +reset => mem[1][46].ACLR +reset => mem[1][47].ACLR +reset => mem[1][48].ACLR +reset => mem[1][49].ACLR +reset => mem[1][50].ACLR +reset => mem[1][51].ACLR +reset => mem[1][52].ACLR +reset => mem[1][53].ACLR +reset => mem[1][54].ACLR +reset => mem[1][55].ACLR +reset => mem[1][56].ACLR +reset => mem[1][57].ACLR +reset => mem[1][58].ACLR +reset => mem[1][59].ACLR +reset => mem[1][60].ACLR +reset => mem[1][61].ACLR +reset => mem[1][62].ACLR +reset => mem[1][63].ACLR +reset => mem[1][64].ACLR +reset => mem[1][65].ACLR +reset => mem[1][66].ACLR +reset => mem[1][67].ACLR +reset => mem[1][68].ACLR +reset => mem[1][69].ACLR +reset => mem[1][70].ACLR +reset => mem[1][71].ACLR +reset => mem[1][72].ACLR +reset => mem[1][73].ACLR +reset => mem[1][74].ACLR +reset => mem[1][75].ACLR +reset => mem[1][76].ACLR +reset => mem[1][77].ACLR +reset => mem[1][78].ACLR +reset => mem[1][79].ACLR +reset => mem[1][80].ACLR +reset => mem[1][81].ACLR +reset => mem[1][82].ACLR +reset => mem[1][83].ACLR +reset => mem[1][84].ACLR +reset => mem[1][85].ACLR +reset => mem[1][86].ACLR +reset => mem[1][87].ACLR +reset => mem[1][88].ACLR +reset => mem[1][89].ACLR +reset => mem[1][90].ACLR +reset => mem[1][91].ACLR +reset => mem[1][92].ACLR +reset => mem[1][93].ACLR +reset => mem[1][94].ACLR +reset => mem[1][95].ACLR +reset => mem[1][96].ACLR +reset => mem[1][97].ACLR +reset => mem[1][98].ACLR +reset => mem[0][0].ACLR +reset => mem[0][1].ACLR +reset => mem[0][2].ACLR +reset => mem[0][3].ACLR +reset => mem[0][4].ACLR +reset => mem[0][5].ACLR +reset => mem[0][6].ACLR +reset => mem[0][7].ACLR +reset => mem[0][8].ACLR +reset => mem[0][9].ACLR +reset => mem[0][10].ACLR +reset => mem[0][11].ACLR +reset => mem[0][12].ACLR +reset => mem[0][13].ACLR +reset => mem[0][14].ACLR +reset => mem[0][15].ACLR +reset => mem[0][16].ACLR +reset => mem[0][17].ACLR +reset => mem[0][18].ACLR +reset => mem[0][19].ACLR +reset => mem[0][20].ACLR +reset => mem[0][21].ACLR +reset => mem[0][22].ACLR +reset => mem[0][23].ACLR +reset => mem[0][24].ACLR +reset => mem[0][25].ACLR +reset => mem[0][26].ACLR +reset => mem[0][27].ACLR +reset => mem[0][28].ACLR +reset => mem[0][29].ACLR +reset => mem[0][30].ACLR +reset => mem[0][31].ACLR +reset => mem[0][32].ACLR +reset => mem[0][33].ACLR +reset => mem[0][34].ACLR +reset => mem[0][35].ACLR +reset => mem[0][36].ACLR +reset => mem[0][37].ACLR +reset => mem[0][38].ACLR +reset => mem[0][39].ACLR +reset => mem[0][40].ACLR +reset => mem[0][41].ACLR +reset => mem[0][42].ACLR +reset => mem[0][43].ACLR +reset => mem[0][44].ACLR +reset => mem[0][45].ACLR +reset => mem[0][46].ACLR +reset => mem[0][47].ACLR +reset => mem[0][48].ACLR +reset => mem[0][49].ACLR +reset => mem[0][50].ACLR +reset => mem[0][51].ACLR +reset => mem[0][52].ACLR +reset => mem[0][53].ACLR +reset => mem[0][54].ACLR +reset => mem[0][55].ACLR +reset => mem[0][56].ACLR +reset => mem[0][57].ACLR +reset => mem[0][58].ACLR +reset => mem[0][59].ACLR +reset => mem[0][60].ACLR +reset => mem[0][61].ACLR +reset => mem[0][62].ACLR +reset => mem[0][63].ACLR +reset => mem[0][64].ACLR +reset => mem[0][65].ACLR +reset => mem[0][66].ACLR +reset => mem[0][67].ACLR +reset => mem[0][68].ACLR +reset => mem[0][69].ACLR +reset => mem[0][70].ACLR +reset => mem[0][71].ACLR +reset => mem[0][72].ACLR +reset => mem[0][73].ACLR +reset => mem[0][74].ACLR +reset => mem[0][75].ACLR +reset => mem[0][76].ACLR +reset => mem[0][77].ACLR +reset => mem[0][78].ACLR +reset => mem[0][79].ACLR +reset => mem[0][80].ACLR +reset => mem[0][81].ACLR +reset => mem[0][82].ACLR +reset => mem[0][83].ACLR +reset => mem[0][84].ACLR +reset => mem[0][85].ACLR +reset => mem[0][86].ACLR +reset => mem[0][87].ACLR +reset => mem[0][88].ACLR +reset => mem[0][89].ACLR +reset => mem[0][90].ACLR +reset => mem[0][91].ACLR +reset => mem[0][92].ACLR +reset => mem[0][93].ACLR +reset => mem[0][94].ACLR +reset => mem[0][95].ACLR +reset => mem[0][96].ACLR +reset => mem[0][97].ACLR +reset => mem[0][98].ACLR +in_data[0] => mem.DATAB +in_data[1] => mem.DATAB +in_data[2] => mem.DATAB +in_data[3] => mem.DATAB +in_data[4] => mem.DATAB +in_data[5] => mem.DATAB +in_data[6] => mem.DATAB +in_data[7] => mem.DATAB +in_data[8] => mem.DATAB +in_data[9] => mem.DATAB +in_data[10] => mem.DATAB +in_data[11] => mem.DATAB +in_data[12] => mem.DATAB +in_data[13] => mem.DATAB +in_data[14] => mem.DATAB +in_data[15] => mem.DATAB +in_data[16] => mem.DATAB +in_data[17] => mem.DATAB +in_data[18] => mem.DATAB +in_data[19] => mem.DATAB +in_data[20] => mem.DATAB +in_data[21] => mem.DATAB +in_data[22] => mem.DATAB +in_data[23] => mem.DATAB +in_data[24] => mem.DATAB +in_data[25] => mem.DATAB +in_data[26] => mem.DATAB +in_data[27] => mem.DATAB +in_data[28] => mem.DATAB +in_data[29] => mem.DATAB +in_data[30] => mem.DATAB +in_data[31] => mem.DATAB +in_data[32] => mem.DATAB +in_data[33] => mem.DATAB +in_data[34] => mem.DATAB +in_data[35] => mem.DATAB +in_data[36] => mem.DATAB +in_data[37] => mem.DATAB +in_data[38] => mem.DATAB +in_data[39] => mem.DATAB +in_data[40] => mem.DATAB +in_data[41] => mem.DATAB +in_data[42] => mem.DATAB +in_data[43] => mem.DATAB +in_data[44] => mem.DATAB +in_data[45] => mem.DATAB +in_data[46] => mem.DATAB +in_data[47] => mem.DATAB +in_data[48] => mem.DATAB +in_data[49] => mem.DATAB +in_data[50] => mem.DATAB +in_data[51] => mem.DATAB +in_data[52] => mem.DATAB +in_data[53] => mem.DATAB +in_data[54] => mem.DATAB +in_data[55] => mem.DATAB +in_data[56] => mem.DATAB +in_data[57] => mem.DATAB +in_data[58] => mem.DATAB +in_data[59] => mem.DATAB +in_data[60] => mem.DATAB +in_data[61] => mem.DATAB +in_data[62] => mem.DATAB +in_data[63] => mem.DATAB +in_data[64] => mem.DATAB +in_data[65] => mem.DATAB +in_data[66] => mem.DATAB +in_data[67] => mem.DATAB +in_data[68] => mem.DATAB +in_data[69] => mem.DATAB +in_data[70] => mem.DATAB +in_data[71] => mem.DATAB +in_data[72] => mem.DATAB +in_data[73] => mem.DATAB +in_data[74] => mem.DATAB +in_data[75] => mem.DATAB +in_data[76] => mem.DATAB +in_data[77] => mem.DATAB +in_data[78] => mem.DATAB +in_data[79] => mem.DATAB +in_data[80] => mem.DATAB +in_data[81] => mem.DATAB +in_data[82] => mem.DATAB +in_data[83] => mem.DATAB +in_data[84] => mem.DATAB +in_data[85] => mem.DATAB +in_data[86] => mem.DATAB +in_data[87] => mem.DATAB +in_data[88] => mem.DATAB +in_data[89] => mem.DATAB +in_data[90] => mem.DATAB +in_data[91] => mem.DATAB +in_data[92] => mem.DATAB +in_data[93] => mem.DATAB +in_data[94] => mem.DATAB +in_data[95] => mem.DATAB +in_data[96] => mem.DATAB +in_valid => write.IN1 +in_startofpacket => mem.DATAB +in_endofpacket => mem.DATAB +in_empty[0] => ~NO_FANOUT~ +in_error[0] => out_error[0].DATAIN +in_error[0] => out_empty[0].DATAIN +in_channel[0] => out_channel[0].DATAIN +in_ready <= mem_used[1].DB_MAX_OUTPUT_PORT_TYPE +out_data[0] <= mem[0][0].DB_MAX_OUTPUT_PORT_TYPE +out_data[1] <= mem[0][1].DB_MAX_OUTPUT_PORT_TYPE +out_data[2] <= mem[0][2].DB_MAX_OUTPUT_PORT_TYPE +out_data[3] <= mem[0][3].DB_MAX_OUTPUT_PORT_TYPE +out_data[4] <= mem[0][4].DB_MAX_OUTPUT_PORT_TYPE +out_data[5] <= mem[0][5].DB_MAX_OUTPUT_PORT_TYPE +out_data[6] <= mem[0][6].DB_MAX_OUTPUT_PORT_TYPE +out_data[7] <= mem[0][7].DB_MAX_OUTPUT_PORT_TYPE +out_data[8] <= mem[0][8].DB_MAX_OUTPUT_PORT_TYPE +out_data[9] <= mem[0][9].DB_MAX_OUTPUT_PORT_TYPE +out_data[10] <= mem[0][10].DB_MAX_OUTPUT_PORT_TYPE +out_data[11] <= mem[0][11].DB_MAX_OUTPUT_PORT_TYPE +out_data[12] <= mem[0][12].DB_MAX_OUTPUT_PORT_TYPE +out_data[13] <= mem[0][13].DB_MAX_OUTPUT_PORT_TYPE +out_data[14] <= mem[0][14].DB_MAX_OUTPUT_PORT_TYPE +out_data[15] <= mem[0][15].DB_MAX_OUTPUT_PORT_TYPE +out_data[16] <= mem[0][16].DB_MAX_OUTPUT_PORT_TYPE +out_data[17] <= mem[0][17].DB_MAX_OUTPUT_PORT_TYPE +out_data[18] <= mem[0][18].DB_MAX_OUTPUT_PORT_TYPE +out_data[19] <= mem[0][19].DB_MAX_OUTPUT_PORT_TYPE +out_data[20] <= mem[0][20].DB_MAX_OUTPUT_PORT_TYPE +out_data[21] <= mem[0][21].DB_MAX_OUTPUT_PORT_TYPE +out_data[22] <= mem[0][22].DB_MAX_OUTPUT_PORT_TYPE +out_data[23] <= mem[0][23].DB_MAX_OUTPUT_PORT_TYPE +out_data[24] <= mem[0][24].DB_MAX_OUTPUT_PORT_TYPE +out_data[25] <= mem[0][25].DB_MAX_OUTPUT_PORT_TYPE +out_data[26] <= mem[0][26].DB_MAX_OUTPUT_PORT_TYPE +out_data[27] <= mem[0][27].DB_MAX_OUTPUT_PORT_TYPE +out_data[28] <= mem[0][28].DB_MAX_OUTPUT_PORT_TYPE +out_data[29] <= mem[0][29].DB_MAX_OUTPUT_PORT_TYPE +out_data[30] <= mem[0][30].DB_MAX_OUTPUT_PORT_TYPE +out_data[31] <= mem[0][31].DB_MAX_OUTPUT_PORT_TYPE +out_data[32] <= mem[0][32].DB_MAX_OUTPUT_PORT_TYPE +out_data[33] <= mem[0][33].DB_MAX_OUTPUT_PORT_TYPE +out_data[34] <= mem[0][34].DB_MAX_OUTPUT_PORT_TYPE +out_data[35] <= mem[0][35].DB_MAX_OUTPUT_PORT_TYPE +out_data[36] <= mem[0][36].DB_MAX_OUTPUT_PORT_TYPE +out_data[37] <= mem[0][37].DB_MAX_OUTPUT_PORT_TYPE +out_data[38] <= mem[0][38].DB_MAX_OUTPUT_PORT_TYPE +out_data[39] <= mem[0][39].DB_MAX_OUTPUT_PORT_TYPE +out_data[40] <= mem[0][40].DB_MAX_OUTPUT_PORT_TYPE +out_data[41] <= mem[0][41].DB_MAX_OUTPUT_PORT_TYPE +out_data[42] <= mem[0][42].DB_MAX_OUTPUT_PORT_TYPE +out_data[43] <= mem[0][43].DB_MAX_OUTPUT_PORT_TYPE +out_data[44] <= mem[0][44].DB_MAX_OUTPUT_PORT_TYPE +out_data[45] <= mem[0][45].DB_MAX_OUTPUT_PORT_TYPE +out_data[46] <= mem[0][46].DB_MAX_OUTPUT_PORT_TYPE +out_data[47] <= mem[0][47].DB_MAX_OUTPUT_PORT_TYPE +out_data[48] <= mem[0][48].DB_MAX_OUTPUT_PORT_TYPE +out_data[49] <= mem[0][49].DB_MAX_OUTPUT_PORT_TYPE +out_data[50] <= mem[0][50].DB_MAX_OUTPUT_PORT_TYPE +out_data[51] <= mem[0][51].DB_MAX_OUTPUT_PORT_TYPE +out_data[52] <= mem[0][52].DB_MAX_OUTPUT_PORT_TYPE +out_data[53] <= mem[0][53].DB_MAX_OUTPUT_PORT_TYPE +out_data[54] <= mem[0][54].DB_MAX_OUTPUT_PORT_TYPE +out_data[55] <= mem[0][55].DB_MAX_OUTPUT_PORT_TYPE +out_data[56] <= mem[0][56].DB_MAX_OUTPUT_PORT_TYPE +out_data[57] <= mem[0][57].DB_MAX_OUTPUT_PORT_TYPE +out_data[58] <= mem[0][58].DB_MAX_OUTPUT_PORT_TYPE +out_data[59] <= mem[0][59].DB_MAX_OUTPUT_PORT_TYPE +out_data[60] <= mem[0][60].DB_MAX_OUTPUT_PORT_TYPE +out_data[61] <= mem[0][61].DB_MAX_OUTPUT_PORT_TYPE +out_data[62] <= mem[0][62].DB_MAX_OUTPUT_PORT_TYPE +out_data[63] <= mem[0][63].DB_MAX_OUTPUT_PORT_TYPE +out_data[64] <= mem[0][64].DB_MAX_OUTPUT_PORT_TYPE +out_data[65] <= mem[0][65].DB_MAX_OUTPUT_PORT_TYPE +out_data[66] <= mem[0][66].DB_MAX_OUTPUT_PORT_TYPE +out_data[67] <= mem[0][67].DB_MAX_OUTPUT_PORT_TYPE +out_data[68] <= mem[0][68].DB_MAX_OUTPUT_PORT_TYPE +out_data[69] <= mem[0][69].DB_MAX_OUTPUT_PORT_TYPE +out_data[70] <= mem[0][70].DB_MAX_OUTPUT_PORT_TYPE +out_data[71] <= mem[0][71].DB_MAX_OUTPUT_PORT_TYPE +out_data[72] <= mem[0][72].DB_MAX_OUTPUT_PORT_TYPE +out_data[73] <= mem[0][73].DB_MAX_OUTPUT_PORT_TYPE +out_data[74] <= mem[0][74].DB_MAX_OUTPUT_PORT_TYPE +out_data[75] <= mem[0][75].DB_MAX_OUTPUT_PORT_TYPE +out_data[76] <= mem[0][76].DB_MAX_OUTPUT_PORT_TYPE +out_data[77] <= mem[0][77].DB_MAX_OUTPUT_PORT_TYPE +out_data[78] <= mem[0][78].DB_MAX_OUTPUT_PORT_TYPE +out_data[79] <= mem[0][79].DB_MAX_OUTPUT_PORT_TYPE +out_data[80] <= mem[0][80].DB_MAX_OUTPUT_PORT_TYPE +out_data[81] <= mem[0][81].DB_MAX_OUTPUT_PORT_TYPE +out_data[82] <= mem[0][82].DB_MAX_OUTPUT_PORT_TYPE +out_data[83] <= mem[0][83].DB_MAX_OUTPUT_PORT_TYPE +out_data[84] <= mem[0][84].DB_MAX_OUTPUT_PORT_TYPE +out_data[85] <= mem[0][85].DB_MAX_OUTPUT_PORT_TYPE +out_data[86] <= mem[0][86].DB_MAX_OUTPUT_PORT_TYPE +out_data[87] <= mem[0][87].DB_MAX_OUTPUT_PORT_TYPE +out_data[88] <= mem[0][88].DB_MAX_OUTPUT_PORT_TYPE +out_data[89] <= mem[0][89].DB_MAX_OUTPUT_PORT_TYPE +out_data[90] <= mem[0][90].DB_MAX_OUTPUT_PORT_TYPE +out_data[91] <= mem[0][91].DB_MAX_OUTPUT_PORT_TYPE +out_data[92] <= mem[0][92].DB_MAX_OUTPUT_PORT_TYPE +out_data[93] <= mem[0][93].DB_MAX_OUTPUT_PORT_TYPE +out_data[94] <= mem[0][94].DB_MAX_OUTPUT_PORT_TYPE +out_data[95] <= mem[0][95].DB_MAX_OUTPUT_PORT_TYPE +out_data[96] <= mem[0][96].DB_MAX_OUTPUT_PORT_TYPE +out_valid <= mem_used[0].DB_MAX_OUTPUT_PORT_TYPE +out_startofpacket <= mem[0][98].DB_MAX_OUTPUT_PORT_TYPE +out_endofpacket <= mem[0][97].DB_MAX_OUTPUT_PORT_TYPE +out_empty[0] <= in_error[0].DB_MAX_OUTPUT_PORT_TYPE +out_error[0] <= in_error[0].DB_MAX_OUTPUT_PORT_TYPE +out_channel[0] <= in_channel[0].DB_MAX_OUTPUT_PORT_TYPE +out_ready => internal_out_ready.IN1 +csr_address[0] => ~NO_FANOUT~ +csr_address[1] => ~NO_FANOUT~ +csr_write => ~NO_FANOUT~ +csr_read => csr_readdata[31]~reg0.ENA +csr_read => csr_readdata[30]~reg0.ENA +csr_read => csr_readdata[29]~reg0.ENA +csr_read => csr_readdata[28]~reg0.ENA +csr_read => csr_readdata[27]~reg0.ENA +csr_read => csr_readdata[26]~reg0.ENA +csr_read => csr_readdata[25]~reg0.ENA +csr_read => csr_readdata[24]~reg0.ENA +csr_read => csr_readdata[23]~reg0.ENA +csr_read => csr_readdata[22]~reg0.ENA +csr_read => csr_readdata[21]~reg0.ENA +csr_read => csr_readdata[20]~reg0.ENA +csr_read => csr_readdata[19]~reg0.ENA +csr_read => csr_readdata[18]~reg0.ENA +csr_read => csr_readdata[17]~reg0.ENA +csr_read => csr_readdata[16]~reg0.ENA +csr_read => csr_readdata[15]~reg0.ENA +csr_read => csr_readdata[14]~reg0.ENA +csr_read => csr_readdata[13]~reg0.ENA +csr_read => csr_readdata[12]~reg0.ENA +csr_read => csr_readdata[11]~reg0.ENA +csr_read => csr_readdata[10]~reg0.ENA +csr_read => csr_readdata[9]~reg0.ENA +csr_read => csr_readdata[8]~reg0.ENA +csr_read => csr_readdata[7]~reg0.ENA +csr_read => csr_readdata[6]~reg0.ENA +csr_read => csr_readdata[5]~reg0.ENA +csr_read => csr_readdata[4]~reg0.ENA +csr_read => csr_readdata[3]~reg0.ENA +csr_read => csr_readdata[2]~reg0.ENA +csr_read => csr_readdata[1]~reg0.ENA +csr_read => csr_readdata[0]~reg0.ENA +csr_writedata[0] => ~NO_FANOUT~ +csr_writedata[1] => ~NO_FANOUT~ +csr_writedata[2] => ~NO_FANOUT~ +csr_writedata[3] => ~NO_FANOUT~ +csr_writedata[4] => ~NO_FANOUT~ +csr_writedata[5] => ~NO_FANOUT~ +csr_writedata[6] => ~NO_FANOUT~ +csr_writedata[7] => ~NO_FANOUT~ +csr_writedata[8] => ~NO_FANOUT~ +csr_writedata[9] => ~NO_FANOUT~ +csr_writedata[10] => ~NO_FANOUT~ +csr_writedata[11] => ~NO_FANOUT~ +csr_writedata[12] => ~NO_FANOUT~ +csr_writedata[13] => ~NO_FANOUT~ +csr_writedata[14] => ~NO_FANOUT~ +csr_writedata[15] => ~NO_FANOUT~ +csr_writedata[16] => ~NO_FANOUT~ +csr_writedata[17] => ~NO_FANOUT~ +csr_writedata[18] => ~NO_FANOUT~ +csr_writedata[19] => ~NO_FANOUT~ +csr_writedata[20] => ~NO_FANOUT~ +csr_writedata[21] => ~NO_FANOUT~ +csr_writedata[22] => ~NO_FANOUT~ +csr_writedata[23] => ~NO_FANOUT~ +csr_writedata[24] => ~NO_FANOUT~ +csr_writedata[25] => ~NO_FANOUT~ +csr_writedata[26] => ~NO_FANOUT~ +csr_writedata[27] => ~NO_FANOUT~ +csr_writedata[28] => ~NO_FANOUT~ +csr_writedata[29] => ~NO_FANOUT~ +csr_writedata[30] => ~NO_FANOUT~ +csr_writedata[31] => ~NO_FANOUT~ +csr_readdata[0] <= csr_readdata[0]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[1] <= csr_readdata[1]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[2] <= csr_readdata[2]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[3] <= csr_readdata[3]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[4] <= csr_readdata[4]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[5] <= csr_readdata[5]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[6] <= csr_readdata[6]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[7] <= csr_readdata[7]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[8] <= csr_readdata[8]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[9] <= csr_readdata[9]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[10] <= csr_readdata[10]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[11] <= csr_readdata[11]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[12] <= csr_readdata[12]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[13] <= csr_readdata[13]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[14] <= csr_readdata[14]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[15] <= csr_readdata[15]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[16] <= csr_readdata[16]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[17] <= csr_readdata[17]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[18] <= csr_readdata[18]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[19] <= csr_readdata[19]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[20] <= csr_readdata[20]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[21] <= csr_readdata[21]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[22] <= csr_readdata[22]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[23] <= csr_readdata[23]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[24] <= csr_readdata[24]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[25] <= csr_readdata[25]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[26] <= csr_readdata[26]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[27] <= csr_readdata[27]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[28] <= csr_readdata[28]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[29] <= csr_readdata[29]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[30] <= csr_readdata[30]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[31] <= csr_readdata[31]~reg0.DB_MAX_OUTPUT_PORT_TYPE +almost_full_data <= +almost_empty_data <= + + +|lights|nios_system:NiosII|altera_merlin_slave_agent:hex7_s1_translator_avalon_universal_slave_0_agent +clk => clk.IN1 +reset => reset.IN1 +m0_address[0] <= +m0_address[1] <= +m0_address[2] <= cp_data[38].DB_MAX_OUTPUT_PORT_TYPE +m0_address[3] <= cp_data[39].DB_MAX_OUTPUT_PORT_TYPE +m0_address[4] <= cp_data[40].DB_MAX_OUTPUT_PORT_TYPE +m0_address[5] <= cp_data[41].DB_MAX_OUTPUT_PORT_TYPE +m0_address[6] <= cp_data[42].DB_MAX_OUTPUT_PORT_TYPE +m0_address[7] <= cp_data[43].DB_MAX_OUTPUT_PORT_TYPE +m0_address[8] <= cp_data[44].DB_MAX_OUTPUT_PORT_TYPE +m0_address[9] <= cp_data[45].DB_MAX_OUTPUT_PORT_TYPE +m0_address[10] <= cp_data[46].DB_MAX_OUTPUT_PORT_TYPE +m0_address[11] <= cp_data[47].DB_MAX_OUTPUT_PORT_TYPE +m0_address[12] <= cp_data[48].DB_MAX_OUTPUT_PORT_TYPE +m0_address[13] <= cp_data[49].DB_MAX_OUTPUT_PORT_TYPE +m0_address[14] <= cp_data[50].DB_MAX_OUTPUT_PORT_TYPE +m0_address[15] <= cp_data[51].DB_MAX_OUTPUT_PORT_TYPE +m0_address[16] <= cp_data[52].DB_MAX_OUTPUT_PORT_TYPE +m0_address[17] <= cp_data[53].DB_MAX_OUTPUT_PORT_TYPE +m0_address[18] <= cp_data[54].DB_MAX_OUTPUT_PORT_TYPE +m0_burstcount[0] <= m0_burstcount.DB_MAX_OUTPUT_PORT_TYPE +m0_burstcount[1] <= m0_burstcount.DB_MAX_OUTPUT_PORT_TYPE +m0_burstcount[2] <= m0_burstcount.DB_MAX_OUTPUT_PORT_TYPE +m0_byteenable[0] <= cp_data[32].DB_MAX_OUTPUT_PORT_TYPE +m0_byteenable[1] <= cp_data[33].DB_MAX_OUTPUT_PORT_TYPE +m0_byteenable[2] <= cp_data[34].DB_MAX_OUTPUT_PORT_TYPE +m0_byteenable[3] <= cp_data[35].DB_MAX_OUTPUT_PORT_TYPE +m0_read <= m0_read.DB_MAX_OUTPUT_PORT_TYPE +m0_readdata[0] => rdata_fifo_src_data[0].DATAIN +m0_readdata[1] => rdata_fifo_src_data[1].DATAIN +m0_readdata[2] => rdata_fifo_src_data[2].DATAIN +m0_readdata[3] => rdata_fifo_src_data[3].DATAIN +m0_readdata[4] => rdata_fifo_src_data[4].DATAIN +m0_readdata[5] => rdata_fifo_src_data[5].DATAIN +m0_readdata[6] => rdata_fifo_src_data[6].DATAIN +m0_readdata[7] => rdata_fifo_src_data[7].DATAIN +m0_readdata[8] => rdata_fifo_src_data[8].DATAIN +m0_readdata[9] => rdata_fifo_src_data[9].DATAIN +m0_readdata[10] => rdata_fifo_src_data[10].DATAIN +m0_readdata[11] => rdata_fifo_src_data[11].DATAIN +m0_readdata[12] => rdata_fifo_src_data[12].DATAIN +m0_readdata[13] => rdata_fifo_src_data[13].DATAIN +m0_readdata[14] => rdata_fifo_src_data[14].DATAIN +m0_readdata[15] => rdata_fifo_src_data[15].DATAIN +m0_readdata[16] => rdata_fifo_src_data[16].DATAIN +m0_readdata[17] => rdata_fifo_src_data[17].DATAIN +m0_readdata[18] => rdata_fifo_src_data[18].DATAIN +m0_readdata[19] => rdata_fifo_src_data[19].DATAIN +m0_readdata[20] => rdata_fifo_src_data[20].DATAIN +m0_readdata[21] => rdata_fifo_src_data[21].DATAIN +m0_readdata[22] => rdata_fifo_src_data[22].DATAIN +m0_readdata[23] => rdata_fifo_src_data[23].DATAIN +m0_readdata[24] => rdata_fifo_src_data[24].DATAIN +m0_readdata[25] => rdata_fifo_src_data[25].DATAIN +m0_readdata[26] => rdata_fifo_src_data[26].DATAIN +m0_readdata[27] => rdata_fifo_src_data[27].DATAIN +m0_readdata[28] => rdata_fifo_src_data[28].DATAIN +m0_readdata[29] => rdata_fifo_src_data[29].DATAIN +m0_readdata[30] => rdata_fifo_src_data[30].DATAIN +m0_readdata[31] => rdata_fifo_src_data[31].DATAIN +m0_waitrequest => cp_ready.IN0 +m0_write <= m0_write.DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[0] <= cp_data[0].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[1] <= cp_data[1].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[2] <= cp_data[2].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[3] <= cp_data[3].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[4] <= cp_data[4].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[5] <= cp_data[5].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[6] <= cp_data[6].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[7] <= cp_data[7].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[8] <= cp_data[8].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[9] <= cp_data[9].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[10] <= cp_data[10].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[11] <= cp_data[11].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[12] <= cp_data[12].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[13] <= cp_data[13].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[14] <= cp_data[14].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[15] <= cp_data[15].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[16] <= cp_data[16].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[17] <= cp_data[17].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[18] <= cp_data[18].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[19] <= cp_data[19].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[20] <= cp_data[20].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[21] <= cp_data[21].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[22] <= cp_data[22].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[23] <= cp_data[23].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[24] <= cp_data[24].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[25] <= cp_data[25].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[26] <= cp_data[26].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[27] <= cp_data[27].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[28] <= cp_data[28].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[29] <= cp_data[29].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[30] <= cp_data[30].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[31] <= cp_data[31].DB_MAX_OUTPUT_PORT_TYPE +m0_readdatavalid => rdata_fifo_src_valid.IN0 +m0_debugaccess <= cp_data[87].DB_MAX_OUTPUT_PORT_TYPE +m0_lock <= m0_lock.DB_MAX_OUTPUT_PORT_TYPE +m0_response[0] => rdata_fifo_src_data[32].DATAIN +m0_response[1] => rdata_fifo_src_data[33].DATAIN +m0_writeresponserequest <= m0_writeresponserequest.DB_MAX_OUTPUT_PORT_TYPE +m0_writeresponsevalid => rdata_fifo_src_valid.IN1 +rf_source_data[0] <= +rf_source_data[1] <= +rf_source_data[2] <= +rf_source_data[3] <= +rf_source_data[4] <= +rf_source_data[5] <= +rf_source_data[6] <= +rf_source_data[7] <= +rf_source_data[8] <= +rf_source_data[9] <= +rf_source_data[10] <= +rf_source_data[11] <= +rf_source_data[12] <= +rf_source_data[13] <= +rf_source_data[14] <= +rf_source_data[15] <= +rf_source_data[16] <= +rf_source_data[17] <= +rf_source_data[18] <= +rf_source_data[19] <= +rf_source_data[20] <= +rf_source_data[21] <= +rf_source_data[22] <= +rf_source_data[23] <= +rf_source_data[24] <= +rf_source_data[25] <= +rf_source_data[26] <= +rf_source_data[27] <= +rf_source_data[28] <= +rf_source_data[29] <= +rf_source_data[30] <= +rf_source_data[31] <= +rf_source_data[32] <= cp_data[32].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[33] <= cp_data[33].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[34] <= cp_data[34].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[35] <= cp_data[35].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[36] <= cp_data[36].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[37] <= cp_data[37].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[38] <= cp_data[38].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[39] <= cp_data[39].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[40] <= cp_data[40].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[41] <= cp_data[41].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[42] <= cp_data[42].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[43] <= cp_data[43].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[44] <= cp_data[44].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[45] <= cp_data[45].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[46] <= cp_data[46].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[47] <= cp_data[47].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[48] <= cp_data[48].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[49] <= cp_data[49].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[50] <= cp_data[50].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[51] <= cp_data[51].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[52] <= cp_data[52].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[53] <= cp_data[53].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[54] <= cp_data[54].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[55] <= cp_data[55].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[56] <= cp_data[56].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[57] <= cp_data[57].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[58] <= cp_data[58].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[59] <= cp_data[59].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[60] <= cp_data[60].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[61] <= cp_data[61].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[62] <= cp_data[62].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[63] <= cp_data[63].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[64] <= cp_data[64].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[65] <= cp_data[65].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[66] <= cp_data[66].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[67] <= cp_data[67].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[68] <= cp_data[68].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[69] <= cp_data[69].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[70] <= cp_data[70].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[71] <= cp_data[71].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[72] <= cp_data[72].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[73] <= cp_data[73].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[74] <= cp_data[74].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[75] <= cp_data[75].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[76] <= cp_data[76].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[77] <= cp_data[77].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[78] <= cp_data[78].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[79] <= cp_data[79].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[80] <= cp_data[80].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[81] <= cp_data[81].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[82] <= cp_data[82].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[83] <= cp_data[83].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[84] <= cp_data[84].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[85] <= cp_data[85].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[86] <= cp_data[86].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[87] <= cp_data[87].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[88] <= +rf_source_data[89] <= +rf_source_data[90] <= cp_data[90].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[91] <= cp_data[91].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[92] <= cp_data[92].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[93] <= cp_data[93].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[94] <= cp_data[94].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[95] <= cp_data[95].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[96] <= nonposted_write_endofpacket.DB_MAX_OUTPUT_PORT_TYPE +rf_source_valid <= rf_source_valid.DB_MAX_OUTPUT_PORT_TYPE +rf_source_startofpacket <= cp_startofpacket.DB_MAX_OUTPUT_PORT_TYPE +rf_source_endofpacket <= cp_endofpacket.DB_MAX_OUTPUT_PORT_TYPE +rf_source_ready => cp_ready.IN1 +rf_source_ready => m0_write.IN1 +rf_source_ready => m0_lock.IN1 +rf_source_ready => rf_source_valid.IN1 +rf_source_ready => m0_read.IN1 +rf_sink_data[0] => ~NO_FANOUT~ +rf_sink_data[1] => ~NO_FANOUT~ +rf_sink_data[2] => ~NO_FANOUT~ +rf_sink_data[3] => ~NO_FANOUT~ +rf_sink_data[4] => ~NO_FANOUT~ +rf_sink_data[5] => ~NO_FANOUT~ +rf_sink_data[6] => ~NO_FANOUT~ +rf_sink_data[7] => ~NO_FANOUT~ +rf_sink_data[8] => ~NO_FANOUT~ +rf_sink_data[9] => ~NO_FANOUT~ +rf_sink_data[10] => ~NO_FANOUT~ +rf_sink_data[11] => ~NO_FANOUT~ +rf_sink_data[12] => ~NO_FANOUT~ +rf_sink_data[13] => ~NO_FANOUT~ +rf_sink_data[14] => ~NO_FANOUT~ +rf_sink_data[15] => ~NO_FANOUT~ +rf_sink_data[16] => ~NO_FANOUT~ +rf_sink_data[17] => ~NO_FANOUT~ +rf_sink_data[18] => ~NO_FANOUT~ +rf_sink_data[19] => ~NO_FANOUT~ +rf_sink_data[20] => ~NO_FANOUT~ +rf_sink_data[21] => ~NO_FANOUT~ +rf_sink_data[22] => ~NO_FANOUT~ +rf_sink_data[23] => ~NO_FANOUT~ +rf_sink_data[24] => ~NO_FANOUT~ +rf_sink_data[25] => ~NO_FANOUT~ +rf_sink_data[26] => ~NO_FANOUT~ +rf_sink_data[27] => ~NO_FANOUT~ +rf_sink_data[28] => ~NO_FANOUT~ +rf_sink_data[29] => ~NO_FANOUT~ +rf_sink_data[30] => ~NO_FANOUT~ +rf_sink_data[31] => ~NO_FANOUT~ +rf_sink_data[32] => rp_data[32].DATAIN +rf_sink_data[33] => rp_data[33].DATAIN +rf_sink_data[34] => rp_data[34].DATAIN +rf_sink_data[35] => rp_data[35].DATAIN +rf_sink_data[36] => rf_sink_addr[0].IN1 +rf_sink_data[37] => rf_sink_addr[1].IN1 +rf_sink_data[38] => rf_sink_addr[2].IN1 +rf_sink_data[39] => rf_sink_addr[3].IN1 +rf_sink_data[40] => rf_sink_addr[4].IN1 +rf_sink_data[41] => rf_sink_addr[5].IN1 +rf_sink_data[42] => rf_sink_addr[6].IN1 +rf_sink_data[43] => rf_sink_addr[7].IN1 +rf_sink_data[44] => rf_sink_addr[8].IN1 +rf_sink_data[45] => rf_sink_addr[9].IN1 +rf_sink_data[46] => rf_sink_addr[10].IN1 +rf_sink_data[47] => rf_sink_addr[11].IN1 +rf_sink_data[48] => rf_sink_addr[12].IN1 +rf_sink_data[49] => rf_sink_addr[13].IN1 +rf_sink_data[50] => rf_sink_addr[14].IN1 +rf_sink_data[51] => rf_sink_addr[15].IN1 +rf_sink_data[52] => rf_sink_addr[16].IN1 +rf_sink_data[53] => rf_sink_addr[17].IN1 +rf_sink_data[54] => rf_sink_addr[18].IN1 +rf_sink_data[55] => rf_sink_compressed.IN1 +rf_sink_data[56] => rp_data[56].DATAIN +rf_sink_data[57] => comb.OUTPUTSELECT +rf_sink_data[57] => rp_data[57].DATAIN +rf_sink_data[58] => rp_data.IN0 +rf_sink_data[59] => rp_data[59].DATAIN +rf_sink_data[60] => rp_data[60].DATAIN +rf_sink_data[61] => rf_sink_byte_cnt[0].IN1 +rf_sink_data[62] => rf_sink_byte_cnt[1].IN1 +rf_sink_data[63] => rf_sink_byte_cnt[2].IN1 +rf_sink_data[64] => rf_sink_burstwrap[0].IN1 +rf_sink_data[65] => rf_sink_burstwrap[1].IN1 +rf_sink_data[66] => rf_sink_burstwrap[2].IN1 +rf_sink_data[67] => rf_sink_burstsize[0].IN1 +rf_sink_data[68] => rf_sink_burstsize[1].IN1 +rf_sink_data[69] => rf_sink_burstsize[2].IN1 +rf_sink_data[70] => rp_data[70].DATAIN +rf_sink_data[71] => rp_data[71].DATAIN +rf_sink_data[72] => rp_data[72].DATAIN +rf_sink_data[73] => rp_data[73].DATAIN +rf_sink_data[74] => rp_data[74].DATAIN +rf_sink_data[75] => rp_data[75].DATAIN +rf_sink_data[76] => rp_data[81].DATAIN +rf_sink_data[77] => rp_data[82].DATAIN +rf_sink_data[78] => rp_data[83].DATAIN +rf_sink_data[79] => rp_data[84].DATAIN +rf_sink_data[80] => rp_data[85].DATAIN +rf_sink_data[81] => rp_data[76].DATAIN +rf_sink_data[82] => rp_data[77].DATAIN +rf_sink_data[83] => rp_data[78].DATAIN +rf_sink_data[84] => rp_data[79].DATAIN +rf_sink_data[85] => rp_data[80].DATAIN +rf_sink_data[86] => rp_data[86].DATAIN +rf_sink_data[87] => rp_data[87].DATAIN +rf_sink_data[88] => rp_data[88].DATAIN +rf_sink_data[89] => rp_data[89].DATAIN +rf_sink_data[90] => rp_data[90].DATAIN +rf_sink_data[91] => rp_data[91].DATAIN +rf_sink_data[92] => rp_data[92].DATAIN +rf_sink_data[93] => rp_data[93].DATAIN +rf_sink_data[94] => ~NO_FANOUT~ +rf_sink_data[95] => ~NO_FANOUT~ +rf_sink_data[96] => rdata_fifo_sink_ready.IN0 +rf_sink_data[96] => comb.IN0 +rf_sink_valid => rdata_fifo_sink_ready.IN1 +rf_sink_valid => comb.IN1 +rf_sink_startofpacket => comb.DATAA +rf_sink_endofpacket => rf_sink_endofpacket.IN1 +rf_sink_ready <= altera_merlin_burst_uncompressor:uncompressor.sink_ready +rdata_fifo_src_data[0] <= m0_readdata[0].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[1] <= m0_readdata[1].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[2] <= m0_readdata[2].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[3] <= m0_readdata[3].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[4] <= m0_readdata[4].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[5] <= m0_readdata[5].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[6] <= m0_readdata[6].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[7] <= m0_readdata[7].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[8] <= m0_readdata[8].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[9] <= m0_readdata[9].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[10] <= m0_readdata[10].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[11] <= m0_readdata[11].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[12] <= m0_readdata[12].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[13] <= m0_readdata[13].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[14] <= m0_readdata[14].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[15] <= m0_readdata[15].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[16] <= m0_readdata[16].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[17] <= m0_readdata[17].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[18] <= m0_readdata[18].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[19] <= m0_readdata[19].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[20] <= m0_readdata[20].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[21] <= m0_readdata[21].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[22] <= m0_readdata[22].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[23] <= m0_readdata[23].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[24] <= m0_readdata[24].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[25] <= m0_readdata[25].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[26] <= m0_readdata[26].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[27] <= m0_readdata[27].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[28] <= m0_readdata[28].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[29] <= m0_readdata[29].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[30] <= m0_readdata[30].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[31] <= m0_readdata[31].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[32] <= m0_response[0].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[33] <= m0_response[1].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_valid <= rdata_fifo_src_valid.DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_ready => ~NO_FANOUT~ +rdata_fifo_sink_data[0] => rp_data[0].DATAIN +rdata_fifo_sink_data[1] => rp_data[1].DATAIN +rdata_fifo_sink_data[2] => rp_data[2].DATAIN +rdata_fifo_sink_data[3] => rp_data[3].DATAIN +rdata_fifo_sink_data[4] => rp_data[4].DATAIN +rdata_fifo_sink_data[5] => rp_data[5].DATAIN +rdata_fifo_sink_data[6] => rp_data[6].DATAIN +rdata_fifo_sink_data[7] => rp_data[7].DATAIN +rdata_fifo_sink_data[8] => rp_data[8].DATAIN +rdata_fifo_sink_data[9] => rp_data[9].DATAIN +rdata_fifo_sink_data[10] => rp_data[10].DATAIN +rdata_fifo_sink_data[11] => rp_data[11].DATAIN +rdata_fifo_sink_data[12] => rp_data[12].DATAIN +rdata_fifo_sink_data[13] => rp_data[13].DATAIN +rdata_fifo_sink_data[14] => rp_data[14].DATAIN +rdata_fifo_sink_data[15] => rp_data[15].DATAIN +rdata_fifo_sink_data[16] => rp_data[16].DATAIN +rdata_fifo_sink_data[17] => rp_data[17].DATAIN +rdata_fifo_sink_data[18] => rp_data[18].DATAIN +rdata_fifo_sink_data[19] => rp_data[19].DATAIN +rdata_fifo_sink_data[20] => rp_data[20].DATAIN +rdata_fifo_sink_data[21] => rp_data[21].DATAIN +rdata_fifo_sink_data[22] => rp_data[22].DATAIN +rdata_fifo_sink_data[23] => rp_data[23].DATAIN +rdata_fifo_sink_data[24] => rp_data[24].DATAIN +rdata_fifo_sink_data[25] => rp_data[25].DATAIN +rdata_fifo_sink_data[26] => rp_data[26].DATAIN +rdata_fifo_sink_data[27] => rp_data[27].DATAIN +rdata_fifo_sink_data[28] => rp_data[28].DATAIN +rdata_fifo_sink_data[29] => rp_data[29].DATAIN +rdata_fifo_sink_data[30] => rp_data[30].DATAIN +rdata_fifo_sink_data[31] => rp_data[31].DATAIN +rdata_fifo_sink_data[32] => rp_data[94].DATAIN +rdata_fifo_sink_data[33] => rp_data[95].DATAIN +rdata_fifo_sink_valid => rp_valid.IN1 +rdata_fifo_sink_valid => rdata_fifo_sink_ready.IN0 +rdata_fifo_sink_valid => comb.IN1 +rdata_fifo_sink_ready <= rdata_fifo_sink_ready.DB_MAX_OUTPUT_PORT_TYPE +cp_ready <= cp_ready.DB_MAX_OUTPUT_PORT_TYPE +cp_valid => local_lock.IN0 +cp_valid => local_write.IN0 +cp_valid => local_read.IN0 +cp_valid => local_compressed_read.IN0 +cp_data[0] => m0_writedata[0].DATAIN +cp_data[1] => m0_writedata[1].DATAIN +cp_data[2] => m0_writedata[2].DATAIN +cp_data[3] => m0_writedata[3].DATAIN +cp_data[4] => m0_writedata[4].DATAIN +cp_data[5] => m0_writedata[5].DATAIN +cp_data[6] => m0_writedata[6].DATAIN +cp_data[7] => m0_writedata[7].DATAIN +cp_data[8] => m0_writedata[8].DATAIN +cp_data[9] => m0_writedata[9].DATAIN +cp_data[10] => m0_writedata[10].DATAIN +cp_data[11] => m0_writedata[11].DATAIN +cp_data[12] => m0_writedata[12].DATAIN +cp_data[13] => m0_writedata[13].DATAIN +cp_data[14] => m0_writedata[14].DATAIN +cp_data[15] => m0_writedata[15].DATAIN +cp_data[16] => m0_writedata[16].DATAIN +cp_data[17] => m0_writedata[17].DATAIN +cp_data[18] => m0_writedata[18].DATAIN +cp_data[19] => m0_writedata[19].DATAIN +cp_data[20] => m0_writedata[20].DATAIN +cp_data[21] => m0_writedata[21].DATAIN +cp_data[22] => m0_writedata[22].DATAIN +cp_data[23] => m0_writedata[23].DATAIN +cp_data[24] => m0_writedata[24].DATAIN +cp_data[25] => m0_writedata[25].DATAIN +cp_data[26] => m0_writedata[26].DATAIN +cp_data[27] => m0_writedata[27].DATAIN +cp_data[28] => m0_writedata[28].DATAIN +cp_data[29] => m0_writedata[29].DATAIN +cp_data[30] => m0_writedata[30].DATAIN +cp_data[31] => m0_writedata[31].DATAIN +cp_data[32] => rf_source_data[32].DATAIN +cp_data[32] => m0_byteenable[0].DATAIN +cp_data[33] => rf_source_data[33].DATAIN +cp_data[33] => m0_byteenable[1].DATAIN +cp_data[34] => rf_source_data[34].DATAIN +cp_data[34] => m0_byteenable[2].DATAIN +cp_data[35] => rf_source_data[35].DATAIN +cp_data[35] => m0_byteenable[3].DATAIN +cp_data[36] => rf_source_data[36].DATAIN +cp_data[37] => rf_source_data[37].DATAIN +cp_data[38] => rf_source_data[38].DATAIN +cp_data[38] => m0_address[2].DATAIN +cp_data[39] => rf_source_data[39].DATAIN +cp_data[39] => m0_address[3].DATAIN +cp_data[40] => rf_source_data[40].DATAIN +cp_data[40] => m0_address[4].DATAIN +cp_data[41] => rf_source_data[41].DATAIN +cp_data[41] => m0_address[5].DATAIN +cp_data[42] => rf_source_data[42].DATAIN +cp_data[42] => m0_address[6].DATAIN +cp_data[43] => rf_source_data[43].DATAIN +cp_data[43] => m0_address[7].DATAIN +cp_data[44] => rf_source_data[44].DATAIN +cp_data[44] => m0_address[8].DATAIN +cp_data[45] => rf_source_data[45].DATAIN +cp_data[45] => m0_address[9].DATAIN +cp_data[46] => rf_source_data[46].DATAIN +cp_data[46] => m0_address[10].DATAIN +cp_data[47] => rf_source_data[47].DATAIN +cp_data[47] => m0_address[11].DATAIN +cp_data[48] => rf_source_data[48].DATAIN +cp_data[48] => m0_address[12].DATAIN +cp_data[49] => rf_source_data[49].DATAIN +cp_data[49] => m0_address[13].DATAIN +cp_data[50] => rf_source_data[50].DATAIN +cp_data[50] => m0_address[14].DATAIN +cp_data[51] => rf_source_data[51].DATAIN +cp_data[51] => m0_address[15].DATAIN +cp_data[52] => rf_source_data[52].DATAIN +cp_data[52] => m0_address[16].DATAIN +cp_data[53] => rf_source_data[53].DATAIN +cp_data[53] => m0_address[17].DATAIN +cp_data[54] => rf_source_data[54].DATAIN +cp_data[54] => m0_address[18].DATAIN +cp_data[55] => local_compressed_read.IN1 +cp_data[55] => rf_source_data[55].DATAIN +cp_data[56] => rf_source_data[56].DATAIN +cp_data[56] => m0_writeresponserequest.IN1 +cp_data[56] => comb.IN1 +cp_data[57] => local_write.IN1 +cp_data[57] => rf_source_data[57].DATAIN +cp_data[58] => local_read.IN1 +cp_data[58] => rf_source_data[58].DATAIN +cp_data[59] => local_lock.IN1 +cp_data[59] => rf_source_data[59].DATAIN +cp_data[60] => rf_source_data[60].DATAIN +cp_data[61] => m0_burstcount.DATAA +cp_data[61] => rf_source_data[61].DATAIN +cp_data[62] => m0_burstcount.DATAA +cp_data[62] => rf_source_data[62].DATAIN +cp_data[63] => m0_burstcount.DATAA +cp_data[63] => rf_source_data[63].DATAIN +cp_data[64] => rf_source_data[64].DATAIN +cp_data[65] => rf_source_data[65].DATAIN +cp_data[66] => rf_source_data[66].DATAIN +cp_data[67] => rf_source_data[67].DATAIN +cp_data[68] => rf_source_data[68].DATAIN +cp_data[69] => rf_source_data[69].DATAIN +cp_data[70] => rf_source_data[70].DATAIN +cp_data[71] => rf_source_data[71].DATAIN +cp_data[72] => rf_source_data[72].DATAIN +cp_data[73] => rf_source_data[73].DATAIN +cp_data[74] => rf_source_data[74].DATAIN +cp_data[75] => rf_source_data[75].DATAIN +cp_data[76] => rf_source_data[76].DATAIN +cp_data[77] => rf_source_data[77].DATAIN +cp_data[78] => rf_source_data[78].DATAIN +cp_data[79] => rf_source_data[79].DATAIN +cp_data[80] => rf_source_data[80].DATAIN +cp_data[81] => rf_source_data[81].DATAIN +cp_data[82] => rf_source_data[82].DATAIN +cp_data[83] => rf_source_data[83].DATAIN +cp_data[84] => rf_source_data[84].DATAIN +cp_data[85] => rf_source_data[85].DATAIN +cp_data[86] => rf_source_data[86].DATAIN +cp_data[87] => rf_source_data[87].DATAIN +cp_data[87] => m0_debugaccess.DATAIN +cp_data[88] => ~NO_FANOUT~ +cp_data[89] => ~NO_FANOUT~ +cp_data[90] => rf_source_data[90].DATAIN +cp_data[91] => rf_source_data[91].DATAIN +cp_data[92] => rf_source_data[92].DATAIN +cp_data[93] => rf_source_data[93].DATAIN +cp_data[94] => rf_source_data[94].DATAIN +cp_data[95] => rf_source_data[95].DATAIN +cp_channel[0] => ~NO_FANOUT~ +cp_channel[1] => ~NO_FANOUT~ +cp_channel[2] => ~NO_FANOUT~ +cp_channel[3] => ~NO_FANOUT~ +cp_channel[4] => ~NO_FANOUT~ +cp_channel[5] => ~NO_FANOUT~ +cp_channel[6] => ~NO_FANOUT~ +cp_channel[7] => ~NO_FANOUT~ +cp_channel[8] => ~NO_FANOUT~ +cp_channel[9] => ~NO_FANOUT~ +cp_channel[10] => ~NO_FANOUT~ +cp_channel[11] => ~NO_FANOUT~ +cp_channel[12] => ~NO_FANOUT~ +cp_channel[13] => ~NO_FANOUT~ +cp_channel[14] => ~NO_FANOUT~ +cp_channel[15] => ~NO_FANOUT~ +cp_channel[16] => ~NO_FANOUT~ +cp_channel[17] => ~NO_FANOUT~ +cp_startofpacket => rf_source_startofpacket.DATAIN +cp_endofpacket => nonposted_write_endofpacket.IN1 +cp_endofpacket => rf_source_endofpacket.DATAIN +rp_ready => rp_ready.IN1 +rp_valid <= rp_valid.DB_MAX_OUTPUT_PORT_TYPE +rp_data[0] <= rdata_fifo_sink_data[0].DB_MAX_OUTPUT_PORT_TYPE +rp_data[1] <= rdata_fifo_sink_data[1].DB_MAX_OUTPUT_PORT_TYPE +rp_data[2] <= rdata_fifo_sink_data[2].DB_MAX_OUTPUT_PORT_TYPE +rp_data[3] <= rdata_fifo_sink_data[3].DB_MAX_OUTPUT_PORT_TYPE +rp_data[4] <= rdata_fifo_sink_data[4].DB_MAX_OUTPUT_PORT_TYPE +rp_data[5] <= rdata_fifo_sink_data[5].DB_MAX_OUTPUT_PORT_TYPE +rp_data[6] <= rdata_fifo_sink_data[6].DB_MAX_OUTPUT_PORT_TYPE +rp_data[7] <= rdata_fifo_sink_data[7].DB_MAX_OUTPUT_PORT_TYPE +rp_data[8] <= rdata_fifo_sink_data[8].DB_MAX_OUTPUT_PORT_TYPE +rp_data[9] <= rdata_fifo_sink_data[9].DB_MAX_OUTPUT_PORT_TYPE +rp_data[10] <= rdata_fifo_sink_data[10].DB_MAX_OUTPUT_PORT_TYPE +rp_data[11] <= rdata_fifo_sink_data[11].DB_MAX_OUTPUT_PORT_TYPE +rp_data[12] <= rdata_fifo_sink_data[12].DB_MAX_OUTPUT_PORT_TYPE +rp_data[13] <= rdata_fifo_sink_data[13].DB_MAX_OUTPUT_PORT_TYPE +rp_data[14] <= rdata_fifo_sink_data[14].DB_MAX_OUTPUT_PORT_TYPE +rp_data[15] <= rdata_fifo_sink_data[15].DB_MAX_OUTPUT_PORT_TYPE +rp_data[16] <= rdata_fifo_sink_data[16].DB_MAX_OUTPUT_PORT_TYPE +rp_data[17] <= rdata_fifo_sink_data[17].DB_MAX_OUTPUT_PORT_TYPE +rp_data[18] <= rdata_fifo_sink_data[18].DB_MAX_OUTPUT_PORT_TYPE +rp_data[19] <= rdata_fifo_sink_data[19].DB_MAX_OUTPUT_PORT_TYPE +rp_data[20] <= rdata_fifo_sink_data[20].DB_MAX_OUTPUT_PORT_TYPE +rp_data[21] <= rdata_fifo_sink_data[21].DB_MAX_OUTPUT_PORT_TYPE +rp_data[22] <= rdata_fifo_sink_data[22].DB_MAX_OUTPUT_PORT_TYPE +rp_data[23] <= rdata_fifo_sink_data[23].DB_MAX_OUTPUT_PORT_TYPE +rp_data[24] <= rdata_fifo_sink_data[24].DB_MAX_OUTPUT_PORT_TYPE +rp_data[25] <= rdata_fifo_sink_data[25].DB_MAX_OUTPUT_PORT_TYPE +rp_data[26] <= rdata_fifo_sink_data[26].DB_MAX_OUTPUT_PORT_TYPE +rp_data[27] <= rdata_fifo_sink_data[27].DB_MAX_OUTPUT_PORT_TYPE +rp_data[28] <= rdata_fifo_sink_data[28].DB_MAX_OUTPUT_PORT_TYPE +rp_data[29] <= rdata_fifo_sink_data[29].DB_MAX_OUTPUT_PORT_TYPE +rp_data[30] <= rdata_fifo_sink_data[30].DB_MAX_OUTPUT_PORT_TYPE +rp_data[31] <= rdata_fifo_sink_data[31].DB_MAX_OUTPUT_PORT_TYPE +rp_data[32] <= rf_sink_data[32].DB_MAX_OUTPUT_PORT_TYPE +rp_data[33] <= rf_sink_data[33].DB_MAX_OUTPUT_PORT_TYPE +rp_data[34] <= rf_sink_data[34].DB_MAX_OUTPUT_PORT_TYPE +rp_data[35] <= rf_sink_data[35].DB_MAX_OUTPUT_PORT_TYPE +rp_data[36] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[37] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[38] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[39] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[40] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[41] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[42] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[43] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[44] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[45] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[46] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[47] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[48] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[49] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[50] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[51] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[52] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[53] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[54] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[55] <= altera_merlin_burst_uncompressor:uncompressor.source_is_compressed +rp_data[56] <= rf_sink_data[56].DB_MAX_OUTPUT_PORT_TYPE +rp_data[57] <= rf_sink_data[57].DB_MAX_OUTPUT_PORT_TYPE +rp_data[58] <= rp_data.DB_MAX_OUTPUT_PORT_TYPE +rp_data[59] <= rf_sink_data[59].DB_MAX_OUTPUT_PORT_TYPE +rp_data[60] <= rf_sink_data[60].DB_MAX_OUTPUT_PORT_TYPE +rp_data[61] <= altera_merlin_burst_uncompressor:uncompressor.source_byte_cnt +rp_data[62] <= altera_merlin_burst_uncompressor:uncompressor.source_byte_cnt +rp_data[63] <= altera_merlin_burst_uncompressor:uncompressor.source_byte_cnt +rp_data[64] <= altera_merlin_burst_uncompressor:uncompressor.source_burstwrap +rp_data[65] <= altera_merlin_burst_uncompressor:uncompressor.source_burstwrap +rp_data[66] <= altera_merlin_burst_uncompressor:uncompressor.source_burstwrap +rp_data[67] <= altera_merlin_burst_uncompressor:uncompressor.source_burstsize +rp_data[68] <= altera_merlin_burst_uncompressor:uncompressor.source_burstsize +rp_data[69] <= altera_merlin_burst_uncompressor:uncompressor.source_burstsize +rp_data[70] <= rf_sink_data[70].DB_MAX_OUTPUT_PORT_TYPE +rp_data[71] <= rf_sink_data[71].DB_MAX_OUTPUT_PORT_TYPE +rp_data[72] <= rf_sink_data[72].DB_MAX_OUTPUT_PORT_TYPE +rp_data[73] <= rf_sink_data[73].DB_MAX_OUTPUT_PORT_TYPE +rp_data[74] <= rf_sink_data[74].DB_MAX_OUTPUT_PORT_TYPE +rp_data[75] <= rf_sink_data[75].DB_MAX_OUTPUT_PORT_TYPE +rp_data[76] <= rf_sink_data[81].DB_MAX_OUTPUT_PORT_TYPE +rp_data[77] <= rf_sink_data[82].DB_MAX_OUTPUT_PORT_TYPE +rp_data[78] <= rf_sink_data[83].DB_MAX_OUTPUT_PORT_TYPE +rp_data[79] <= rf_sink_data[84].DB_MAX_OUTPUT_PORT_TYPE +rp_data[80] <= rf_sink_data[85].DB_MAX_OUTPUT_PORT_TYPE +rp_data[81] <= rf_sink_data[76].DB_MAX_OUTPUT_PORT_TYPE +rp_data[82] <= rf_sink_data[77].DB_MAX_OUTPUT_PORT_TYPE +rp_data[83] <= rf_sink_data[78].DB_MAX_OUTPUT_PORT_TYPE +rp_data[84] <= rf_sink_data[79].DB_MAX_OUTPUT_PORT_TYPE +rp_data[85] <= rf_sink_data[80].DB_MAX_OUTPUT_PORT_TYPE +rp_data[86] <= rf_sink_data[86].DB_MAX_OUTPUT_PORT_TYPE +rp_data[87] <= rf_sink_data[87].DB_MAX_OUTPUT_PORT_TYPE +rp_data[88] <= rf_sink_data[88].DB_MAX_OUTPUT_PORT_TYPE +rp_data[89] <= rf_sink_data[89].DB_MAX_OUTPUT_PORT_TYPE +rp_data[90] <= rf_sink_data[90].DB_MAX_OUTPUT_PORT_TYPE +rp_data[91] <= rf_sink_data[91].DB_MAX_OUTPUT_PORT_TYPE +rp_data[92] <= rf_sink_data[92].DB_MAX_OUTPUT_PORT_TYPE +rp_data[93] <= rf_sink_data[93].DB_MAX_OUTPUT_PORT_TYPE +rp_data[94] <= rdata_fifo_sink_data[32].DB_MAX_OUTPUT_PORT_TYPE +rp_data[95] <= rdata_fifo_sink_data[33].DB_MAX_OUTPUT_PORT_TYPE +rp_startofpacket <= altera_merlin_burst_uncompressor:uncompressor.source_startofpacket +rp_endofpacket <= altera_merlin_burst_uncompressor:uncompressor.source_endofpacket + + +|lights|nios_system:NiosII|altera_merlin_slave_agent:hex7_s1_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor +clk => burst_uncompress_address_offset[0].CLK +clk => burst_uncompress_address_offset[1].CLK +clk => burst_uncompress_address_offset[2].CLK +clk => burst_uncompress_address_offset[3].CLK +clk => burst_uncompress_address_offset[4].CLK +clk => burst_uncompress_address_offset[5].CLK +clk => burst_uncompress_address_offset[6].CLK +clk => burst_uncompress_address_offset[7].CLK +clk => burst_uncompress_address_offset[8].CLK +clk => burst_uncompress_address_offset[9].CLK +clk => burst_uncompress_address_offset[10].CLK +clk => burst_uncompress_address_offset[11].CLK +clk => burst_uncompress_address_offset[12].CLK +clk => burst_uncompress_address_offset[13].CLK +clk => burst_uncompress_address_offset[14].CLK +clk => burst_uncompress_address_offset[15].CLK +clk => burst_uncompress_address_offset[16].CLK +clk => burst_uncompress_address_offset[17].CLK +clk => burst_uncompress_address_offset[18].CLK +clk => burst_uncompress_address_base[0].CLK +clk => burst_uncompress_address_base[1].CLK +clk => burst_uncompress_address_base[2].CLK +clk => burst_uncompress_address_base[3].CLK +clk => burst_uncompress_address_base[4].CLK +clk => burst_uncompress_address_base[5].CLK +clk => burst_uncompress_address_base[6].CLK +clk => burst_uncompress_address_base[7].CLK +clk => burst_uncompress_address_base[8].CLK +clk => burst_uncompress_address_base[9].CLK +clk => burst_uncompress_address_base[10].CLK +clk => burst_uncompress_address_base[11].CLK +clk => burst_uncompress_address_base[12].CLK +clk => burst_uncompress_address_base[13].CLK +clk => burst_uncompress_address_base[14].CLK +clk => burst_uncompress_address_base[15].CLK +clk => burst_uncompress_address_base[16].CLK +clk => burst_uncompress_address_base[17].CLK +clk => burst_uncompress_address_base[18].CLK +clk => burst_uncompress_byte_counter[0].CLK +clk => burst_uncompress_byte_counter[1].CLK +clk => burst_uncompress_byte_counter[2].CLK +clk => burst_uncompress_busy.CLK +reset => burst_uncompress_address_offset[0].ACLR +reset => burst_uncompress_address_offset[1].ACLR +reset => burst_uncompress_address_offset[2].ACLR +reset => burst_uncompress_address_offset[3].ACLR +reset => burst_uncompress_address_offset[4].ACLR +reset => burst_uncompress_address_offset[5].ACLR +reset => burst_uncompress_address_offset[6].ACLR +reset => burst_uncompress_address_offset[7].ACLR +reset => burst_uncompress_address_offset[8].ACLR +reset => burst_uncompress_address_offset[9].ACLR +reset => burst_uncompress_address_offset[10].ACLR +reset => burst_uncompress_address_offset[11].ACLR +reset => burst_uncompress_address_offset[12].ACLR +reset => burst_uncompress_address_offset[13].ACLR +reset => burst_uncompress_address_offset[14].ACLR +reset => burst_uncompress_address_offset[15].ACLR +reset => burst_uncompress_address_offset[16].ACLR +reset => burst_uncompress_address_offset[17].ACLR +reset => burst_uncompress_address_offset[18].ACLR +reset => burst_uncompress_address_base[0].ACLR +reset => burst_uncompress_address_base[1].ACLR +reset => burst_uncompress_address_base[2].ACLR +reset => burst_uncompress_address_base[3].ACLR +reset => burst_uncompress_address_base[4].ACLR +reset => burst_uncompress_address_base[5].ACLR +reset => burst_uncompress_address_base[6].ACLR +reset => burst_uncompress_address_base[7].ACLR +reset => burst_uncompress_address_base[8].ACLR +reset => burst_uncompress_address_base[9].ACLR +reset => burst_uncompress_address_base[10].ACLR +reset => burst_uncompress_address_base[11].ACLR +reset => burst_uncompress_address_base[12].ACLR +reset => burst_uncompress_address_base[13].ACLR +reset => burst_uncompress_address_base[14].ACLR +reset => burst_uncompress_address_base[15].ACLR +reset => burst_uncompress_address_base[16].ACLR +reset => burst_uncompress_address_base[17].ACLR +reset => burst_uncompress_address_base[18].ACLR +reset => burst_uncompress_byte_counter[0].ACLR +reset => burst_uncompress_byte_counter[1].ACLR +reset => burst_uncompress_byte_counter[2].ACLR +reset => burst_uncompress_busy.ACLR +sink_startofpacket => source_startofpacket.IN1 +sink_endofpacket => source_endofpacket.IN1 +sink_valid => first_packet_beat.IN1 +sink_valid => last_packet_beat.IN1 +sink_valid => last_packet_beat.IN1 +sink_valid => always0.IN1 +sink_valid => sink_ready.IN0 +sink_valid => source_valid.DATAIN +sink_ready <= sink_ready.DB_MAX_OUTPUT_PORT_TYPE +sink_addr[0] => burst_uncompress_address_base.IN0 +sink_addr[0] => comb.DATAB +sink_addr[0] => source_addr.DATAB +sink_addr[1] => burst_uncompress_address_base.IN0 +sink_addr[1] => comb.DATAB +sink_addr[1] => source_addr.DATAB +sink_addr[2] => burst_uncompress_address_base.IN0 +sink_addr[2] => comb.DATAB +sink_addr[2] => source_addr.DATAB +sink_addr[3] => burst_uncompress_address_base.IN0 +sink_addr[3] => comb.DATAB +sink_addr[3] => source_addr.DATAB +sink_addr[4] => burst_uncompress_address_base.IN0 +sink_addr[4] => comb.DATAB +sink_addr[4] => source_addr.DATAB +sink_addr[5] => burst_uncompress_address_base.IN0 +sink_addr[5] => comb.DATAB +sink_addr[5] => source_addr.DATAB +sink_addr[6] => burst_uncompress_address_base.IN0 +sink_addr[6] => comb.DATAB +sink_addr[6] => source_addr.DATAB +sink_addr[7] => burst_uncompress_address_base.IN0 +sink_addr[7] => comb.DATAB +sink_addr[7] => source_addr.DATAB +sink_addr[8] => burst_uncompress_address_base.IN0 +sink_addr[8] => comb.DATAB +sink_addr[8] => source_addr.DATAB +sink_addr[9] => burst_uncompress_address_base.IN0 +sink_addr[9] => comb.DATAB +sink_addr[9] => source_addr.DATAB +sink_addr[10] => burst_uncompress_address_base.IN0 +sink_addr[10] => comb.DATAB +sink_addr[10] => source_addr.DATAB +sink_addr[11] => burst_uncompress_address_base.IN0 +sink_addr[11] => comb.DATAB +sink_addr[11] => source_addr.DATAB +sink_addr[12] => burst_uncompress_address_base.IN0 +sink_addr[12] => comb.DATAB +sink_addr[12] => source_addr.DATAB +sink_addr[13] => burst_uncompress_address_base.IN0 +sink_addr[13] => comb.DATAB +sink_addr[13] => source_addr.DATAB +sink_addr[14] => burst_uncompress_address_base.IN0 +sink_addr[14] => comb.DATAB +sink_addr[14] => source_addr.DATAB +sink_addr[15] => burst_uncompress_address_base.IN0 +sink_addr[15] => comb.DATAB +sink_addr[15] => source_addr.DATAB +sink_addr[16] => burst_uncompress_address_base.IN0 +sink_addr[16] => comb.DATAB +sink_addr[16] => source_addr.DATAB +sink_addr[17] => burst_uncompress_address_base.IN0 +sink_addr[17] => comb.DATAB +sink_addr[17] => source_addr.DATAB +sink_addr[18] => burst_uncompress_address_base.IN0 +sink_addr[18] => comb.DATAB +sink_addr[18] => source_addr.DATAB +sink_burstwrap[0] => p1_burst_uncompress_address_offset[0].IN1 +sink_burstwrap[0] => source_burstwrap[0].DATAIN +sink_burstwrap[0] => burst_uncompress_address_base.IN1 +sink_burstwrap[1] => p1_burst_uncompress_address_offset[1].IN1 +sink_burstwrap[1] => source_burstwrap[1].DATAIN +sink_burstwrap[1] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[2].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[18].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[17].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[16].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[15].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[14].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[13].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[12].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[11].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[10].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[9].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[8].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[7].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[6].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[5].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[4].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[3].IN1 +sink_burstwrap[2] => source_burstwrap[2].DATAIN +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_byte_cnt[0] => source_byte_cnt.DATAB +sink_byte_cnt[0] => Add1.IN6 +sink_byte_cnt[0] => Equal1.IN2 +sink_byte_cnt[1] => source_byte_cnt.DATAB +sink_byte_cnt[1] => Add1.IN5 +sink_byte_cnt[1] => Equal1.IN1 +sink_byte_cnt[2] => source_byte_cnt.DATAB +sink_byte_cnt[2] => Add1.IN4 +sink_byte_cnt[2] => Equal1.IN0 +sink_is_compressed => last_packet_beat.IN1 +sink_burstsize[0] => Decoder0.IN2 +sink_burstsize[0] => source_burstsize[0].DATAIN +sink_burstsize[1] => Decoder0.IN1 +sink_burstsize[1] => source_burstsize[1].DATAIN +sink_burstsize[2] => Decoder0.IN0 +sink_burstsize[2] => source_burstsize[2].DATAIN +source_startofpacket <= source_startofpacket.DB_MAX_OUTPUT_PORT_TYPE +source_endofpacket <= source_endofpacket.DB_MAX_OUTPUT_PORT_TYPE +source_valid <= sink_valid.DB_MAX_OUTPUT_PORT_TYPE +source_ready => always1.IN1 +source_ready => sink_ready.IN1 +source_addr[0] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[1] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[2] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[3] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[4] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[5] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[6] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[7] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[8] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[9] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[10] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[11] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[12] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[13] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[14] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[15] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[16] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[17] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[18] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_burstwrap[0] <= sink_burstwrap[0].DB_MAX_OUTPUT_PORT_TYPE +source_burstwrap[1] <= sink_burstwrap[1].DB_MAX_OUTPUT_PORT_TYPE +source_burstwrap[2] <= sink_burstwrap[2].DB_MAX_OUTPUT_PORT_TYPE +source_byte_cnt[0] <= source_byte_cnt.DB_MAX_OUTPUT_PORT_TYPE +source_byte_cnt[1] <= source_byte_cnt.DB_MAX_OUTPUT_PORT_TYPE +source_byte_cnt[2] <= source_byte_cnt.DB_MAX_OUTPUT_PORT_TYPE +source_is_compressed <= +source_burstsize[0] <= sink_burstsize[0].DB_MAX_OUTPUT_PORT_TYPE +source_burstsize[1] <= sink_burstsize[1].DB_MAX_OUTPUT_PORT_TYPE +source_burstsize[2] <= sink_burstsize[2].DB_MAX_OUTPUT_PORT_TYPE + + +|lights|nios_system:NiosII|altera_avalon_sc_fifo:hex7_s1_translator_avalon_universal_slave_0_agent_rsp_fifo +clk => csr_readdata[0]~reg0.CLK +clk => csr_readdata[1]~reg0.CLK +clk => csr_readdata[2]~reg0.CLK +clk => csr_readdata[3]~reg0.CLK +clk => csr_readdata[4]~reg0.CLK +clk => csr_readdata[5]~reg0.CLK +clk => csr_readdata[6]~reg0.CLK +clk => csr_readdata[7]~reg0.CLK +clk => csr_readdata[8]~reg0.CLK +clk => csr_readdata[9]~reg0.CLK +clk => csr_readdata[10]~reg0.CLK +clk => csr_readdata[11]~reg0.CLK +clk => csr_readdata[12]~reg0.CLK +clk => csr_readdata[13]~reg0.CLK +clk => csr_readdata[14]~reg0.CLK +clk => csr_readdata[15]~reg0.CLK +clk => csr_readdata[16]~reg0.CLK +clk => csr_readdata[17]~reg0.CLK +clk => csr_readdata[18]~reg0.CLK +clk => csr_readdata[19]~reg0.CLK +clk => csr_readdata[20]~reg0.CLK +clk => csr_readdata[21]~reg0.CLK +clk => csr_readdata[22]~reg0.CLK +clk => csr_readdata[23]~reg0.CLK +clk => csr_readdata[24]~reg0.CLK +clk => csr_readdata[25]~reg0.CLK +clk => csr_readdata[26]~reg0.CLK +clk => csr_readdata[27]~reg0.CLK +clk => csr_readdata[28]~reg0.CLK +clk => csr_readdata[29]~reg0.CLK +clk => csr_readdata[30]~reg0.CLK +clk => csr_readdata[31]~reg0.CLK +clk => mem_used[1].CLK +clk => mem_used[0].CLK +clk => mem[1][0].CLK +clk => mem[1][1].CLK +clk => mem[1][2].CLK +clk => mem[1][3].CLK +clk => mem[1][4].CLK +clk => mem[1][5].CLK +clk => mem[1][6].CLK +clk => mem[1][7].CLK +clk => mem[1][8].CLK +clk => mem[1][9].CLK +clk => mem[1][10].CLK +clk => mem[1][11].CLK +clk => mem[1][12].CLK +clk => mem[1][13].CLK +clk => mem[1][14].CLK +clk => mem[1][15].CLK +clk => mem[1][16].CLK +clk => mem[1][17].CLK +clk => mem[1][18].CLK +clk => mem[1][19].CLK +clk => mem[1][20].CLK +clk => mem[1][21].CLK +clk => mem[1][22].CLK +clk => mem[1][23].CLK +clk => mem[1][24].CLK +clk => mem[1][25].CLK +clk => mem[1][26].CLK +clk => mem[1][27].CLK +clk => mem[1][28].CLK +clk => mem[1][29].CLK +clk => mem[1][30].CLK +clk => mem[1][31].CLK +clk => mem[1][32].CLK +clk => mem[1][33].CLK +clk => mem[1][34].CLK +clk => mem[1][35].CLK +clk => mem[1][36].CLK +clk => mem[1][37].CLK +clk => mem[1][38].CLK +clk => mem[1][39].CLK +clk => mem[1][40].CLK +clk => mem[1][41].CLK +clk => mem[1][42].CLK +clk => mem[1][43].CLK +clk => mem[1][44].CLK +clk => mem[1][45].CLK +clk => mem[1][46].CLK +clk => mem[1][47].CLK +clk => mem[1][48].CLK +clk => mem[1][49].CLK +clk => mem[1][50].CLK +clk => mem[1][51].CLK +clk => mem[1][52].CLK +clk => mem[1][53].CLK +clk => mem[1][54].CLK +clk => mem[1][55].CLK +clk => mem[1][56].CLK +clk => mem[1][57].CLK +clk => mem[1][58].CLK +clk => mem[1][59].CLK +clk => mem[1][60].CLK +clk => mem[1][61].CLK +clk => mem[1][62].CLK +clk => mem[1][63].CLK +clk => mem[1][64].CLK +clk => mem[1][65].CLK +clk => mem[1][66].CLK +clk => mem[1][67].CLK +clk => mem[1][68].CLK +clk => mem[1][69].CLK +clk => mem[1][70].CLK +clk => mem[1][71].CLK +clk => mem[1][72].CLK +clk => mem[1][73].CLK +clk => mem[1][74].CLK +clk => mem[1][75].CLK +clk => mem[1][76].CLK +clk => mem[1][77].CLK +clk => mem[1][78].CLK +clk => mem[1][79].CLK +clk => mem[1][80].CLK +clk => mem[1][81].CLK +clk => mem[1][82].CLK +clk => mem[1][83].CLK +clk => mem[1][84].CLK +clk => mem[1][85].CLK +clk => mem[1][86].CLK +clk => mem[1][87].CLK +clk => mem[1][88].CLK +clk => mem[1][89].CLK +clk => mem[1][90].CLK +clk => mem[1][91].CLK +clk => mem[1][92].CLK +clk => mem[1][93].CLK +clk => mem[1][94].CLK +clk => mem[1][95].CLK +clk => mem[1][96].CLK +clk => mem[1][97].CLK +clk => mem[1][98].CLK +clk => mem[0][0].CLK +clk => mem[0][1].CLK +clk => mem[0][2].CLK +clk => mem[0][3].CLK +clk => mem[0][4].CLK +clk => mem[0][5].CLK +clk => mem[0][6].CLK +clk => mem[0][7].CLK +clk => mem[0][8].CLK +clk => mem[0][9].CLK +clk => mem[0][10].CLK +clk => mem[0][11].CLK +clk => mem[0][12].CLK +clk => mem[0][13].CLK +clk => mem[0][14].CLK +clk => mem[0][15].CLK +clk => mem[0][16].CLK +clk => mem[0][17].CLK +clk => mem[0][18].CLK +clk => mem[0][19].CLK +clk => mem[0][20].CLK +clk => mem[0][21].CLK +clk => mem[0][22].CLK +clk => mem[0][23].CLK +clk => mem[0][24].CLK +clk => mem[0][25].CLK +clk => mem[0][26].CLK +clk => mem[0][27].CLK +clk => mem[0][28].CLK +clk => mem[0][29].CLK +clk => mem[0][30].CLK +clk => mem[0][31].CLK +clk => mem[0][32].CLK +clk => mem[0][33].CLK +clk => mem[0][34].CLK +clk => mem[0][35].CLK +clk => mem[0][36].CLK +clk => mem[0][37].CLK +clk => mem[0][38].CLK +clk => mem[0][39].CLK +clk => mem[0][40].CLK +clk => mem[0][41].CLK +clk => mem[0][42].CLK +clk => mem[0][43].CLK +clk => mem[0][44].CLK +clk => mem[0][45].CLK +clk => mem[0][46].CLK +clk => mem[0][47].CLK +clk => mem[0][48].CLK +clk => mem[0][49].CLK +clk => mem[0][50].CLK +clk => mem[0][51].CLK +clk => mem[0][52].CLK +clk => mem[0][53].CLK +clk => mem[0][54].CLK +clk => mem[0][55].CLK +clk => mem[0][56].CLK +clk => mem[0][57].CLK +clk => mem[0][58].CLK +clk => mem[0][59].CLK +clk => mem[0][60].CLK +clk => mem[0][61].CLK +clk => mem[0][62].CLK +clk => mem[0][63].CLK +clk => mem[0][64].CLK +clk => mem[0][65].CLK +clk => mem[0][66].CLK +clk => mem[0][67].CLK +clk => mem[0][68].CLK +clk => mem[0][69].CLK +clk => mem[0][70].CLK +clk => mem[0][71].CLK +clk => mem[0][72].CLK +clk => mem[0][73].CLK +clk => mem[0][74].CLK +clk => mem[0][75].CLK +clk => mem[0][76].CLK +clk => mem[0][77].CLK +clk => mem[0][78].CLK +clk => mem[0][79].CLK +clk => mem[0][80].CLK +clk => mem[0][81].CLK +clk => mem[0][82].CLK +clk => mem[0][83].CLK +clk => mem[0][84].CLK +clk => mem[0][85].CLK +clk => mem[0][86].CLK +clk => mem[0][87].CLK +clk => mem[0][88].CLK +clk => mem[0][89].CLK +clk => mem[0][90].CLK +clk => mem[0][91].CLK +clk => mem[0][92].CLK +clk => mem[0][93].CLK +clk => mem[0][94].CLK +clk => mem[0][95].CLK +clk => mem[0][96].CLK +clk => mem[0][97].CLK +clk => mem[0][98].CLK +reset => csr_readdata[0]~reg0.ACLR +reset => csr_readdata[1]~reg0.ACLR +reset => csr_readdata[2]~reg0.ACLR +reset => csr_readdata[3]~reg0.ACLR +reset => csr_readdata[4]~reg0.ACLR +reset => csr_readdata[5]~reg0.ACLR +reset => csr_readdata[6]~reg0.ACLR +reset => csr_readdata[7]~reg0.ACLR +reset => csr_readdata[8]~reg0.ACLR +reset => csr_readdata[9]~reg0.ACLR +reset => csr_readdata[10]~reg0.ACLR +reset => csr_readdata[11]~reg0.ACLR +reset => csr_readdata[12]~reg0.ACLR +reset => csr_readdata[13]~reg0.ACLR +reset => csr_readdata[14]~reg0.ACLR +reset => csr_readdata[15]~reg0.ACLR +reset => csr_readdata[16]~reg0.ACLR +reset => csr_readdata[17]~reg0.ACLR +reset => csr_readdata[18]~reg0.ACLR +reset => csr_readdata[19]~reg0.ACLR +reset => csr_readdata[20]~reg0.ACLR +reset => csr_readdata[21]~reg0.ACLR +reset => csr_readdata[22]~reg0.ACLR +reset => csr_readdata[23]~reg0.ACLR +reset => csr_readdata[24]~reg0.ACLR +reset => csr_readdata[25]~reg0.ACLR +reset => csr_readdata[26]~reg0.ACLR +reset => csr_readdata[27]~reg0.ACLR +reset => csr_readdata[28]~reg0.ACLR +reset => csr_readdata[29]~reg0.ACLR +reset => csr_readdata[30]~reg0.ACLR +reset => csr_readdata[31]~reg0.ACLR +reset => mem_used[1].ACLR +reset => mem_used[0].ACLR +reset => mem[1][0].ACLR +reset => mem[1][1].ACLR +reset => mem[1][2].ACLR +reset => mem[1][3].ACLR +reset => mem[1][4].ACLR +reset => mem[1][5].ACLR +reset => mem[1][6].ACLR +reset => mem[1][7].ACLR +reset => mem[1][8].ACLR +reset => mem[1][9].ACLR +reset => mem[1][10].ACLR +reset => mem[1][11].ACLR +reset => mem[1][12].ACLR +reset => mem[1][13].ACLR +reset => mem[1][14].ACLR +reset => mem[1][15].ACLR +reset => mem[1][16].ACLR +reset => mem[1][17].ACLR +reset => mem[1][18].ACLR +reset => mem[1][19].ACLR +reset => mem[1][20].ACLR +reset => mem[1][21].ACLR +reset => mem[1][22].ACLR +reset => mem[1][23].ACLR +reset => mem[1][24].ACLR +reset => mem[1][25].ACLR +reset => mem[1][26].ACLR +reset => mem[1][27].ACLR +reset => mem[1][28].ACLR +reset => mem[1][29].ACLR +reset => mem[1][30].ACLR +reset => mem[1][31].ACLR +reset => mem[1][32].ACLR +reset => mem[1][33].ACLR +reset => mem[1][34].ACLR +reset => mem[1][35].ACLR +reset => mem[1][36].ACLR +reset => mem[1][37].ACLR +reset => mem[1][38].ACLR +reset => mem[1][39].ACLR +reset => mem[1][40].ACLR +reset => mem[1][41].ACLR +reset => mem[1][42].ACLR +reset => mem[1][43].ACLR +reset => mem[1][44].ACLR +reset => mem[1][45].ACLR +reset => mem[1][46].ACLR +reset => mem[1][47].ACLR +reset => mem[1][48].ACLR +reset => mem[1][49].ACLR +reset => mem[1][50].ACLR +reset => mem[1][51].ACLR +reset => mem[1][52].ACLR +reset => mem[1][53].ACLR +reset => mem[1][54].ACLR +reset => mem[1][55].ACLR +reset => mem[1][56].ACLR +reset => mem[1][57].ACLR +reset => mem[1][58].ACLR +reset => mem[1][59].ACLR +reset => mem[1][60].ACLR +reset => mem[1][61].ACLR +reset => mem[1][62].ACLR +reset => mem[1][63].ACLR +reset => mem[1][64].ACLR +reset => mem[1][65].ACLR +reset => mem[1][66].ACLR +reset => mem[1][67].ACLR +reset => mem[1][68].ACLR +reset => mem[1][69].ACLR +reset => mem[1][70].ACLR +reset => mem[1][71].ACLR +reset => mem[1][72].ACLR +reset => mem[1][73].ACLR +reset => mem[1][74].ACLR +reset => mem[1][75].ACLR +reset => mem[1][76].ACLR +reset => mem[1][77].ACLR +reset => mem[1][78].ACLR +reset => mem[1][79].ACLR +reset => mem[1][80].ACLR +reset => mem[1][81].ACLR +reset => mem[1][82].ACLR +reset => mem[1][83].ACLR +reset => mem[1][84].ACLR +reset => mem[1][85].ACLR +reset => mem[1][86].ACLR +reset => mem[1][87].ACLR +reset => mem[1][88].ACLR +reset => mem[1][89].ACLR +reset => mem[1][90].ACLR +reset => mem[1][91].ACLR +reset => mem[1][92].ACLR +reset => mem[1][93].ACLR +reset => mem[1][94].ACLR +reset => mem[1][95].ACLR +reset => mem[1][96].ACLR +reset => mem[1][97].ACLR +reset => mem[1][98].ACLR +reset => mem[0][0].ACLR +reset => mem[0][1].ACLR +reset => mem[0][2].ACLR +reset => mem[0][3].ACLR +reset => mem[0][4].ACLR +reset => mem[0][5].ACLR +reset => mem[0][6].ACLR +reset => mem[0][7].ACLR +reset => mem[0][8].ACLR +reset => mem[0][9].ACLR +reset => mem[0][10].ACLR +reset => mem[0][11].ACLR +reset => mem[0][12].ACLR +reset => mem[0][13].ACLR +reset => mem[0][14].ACLR +reset => mem[0][15].ACLR +reset => mem[0][16].ACLR +reset => mem[0][17].ACLR +reset => mem[0][18].ACLR +reset => mem[0][19].ACLR +reset => mem[0][20].ACLR +reset => mem[0][21].ACLR +reset => mem[0][22].ACLR +reset => mem[0][23].ACLR +reset => mem[0][24].ACLR +reset => mem[0][25].ACLR +reset => mem[0][26].ACLR +reset => mem[0][27].ACLR +reset => mem[0][28].ACLR +reset => mem[0][29].ACLR +reset => mem[0][30].ACLR +reset => mem[0][31].ACLR +reset => mem[0][32].ACLR +reset => mem[0][33].ACLR +reset => mem[0][34].ACLR +reset => mem[0][35].ACLR +reset => mem[0][36].ACLR +reset => mem[0][37].ACLR +reset => mem[0][38].ACLR +reset => mem[0][39].ACLR +reset => mem[0][40].ACLR +reset => mem[0][41].ACLR +reset => mem[0][42].ACLR +reset => mem[0][43].ACLR +reset => mem[0][44].ACLR +reset => mem[0][45].ACLR +reset => mem[0][46].ACLR +reset => mem[0][47].ACLR +reset => mem[0][48].ACLR +reset => mem[0][49].ACLR +reset => mem[0][50].ACLR +reset => mem[0][51].ACLR +reset => mem[0][52].ACLR +reset => mem[0][53].ACLR +reset => mem[0][54].ACLR +reset => mem[0][55].ACLR +reset => mem[0][56].ACLR +reset => mem[0][57].ACLR +reset => mem[0][58].ACLR +reset => mem[0][59].ACLR +reset => mem[0][60].ACLR +reset => mem[0][61].ACLR +reset => mem[0][62].ACLR +reset => mem[0][63].ACLR +reset => mem[0][64].ACLR +reset => mem[0][65].ACLR +reset => mem[0][66].ACLR +reset => mem[0][67].ACLR +reset => mem[0][68].ACLR +reset => mem[0][69].ACLR +reset => mem[0][70].ACLR +reset => mem[0][71].ACLR +reset => mem[0][72].ACLR +reset => mem[0][73].ACLR +reset => mem[0][74].ACLR +reset => mem[0][75].ACLR +reset => mem[0][76].ACLR +reset => mem[0][77].ACLR +reset => mem[0][78].ACLR +reset => mem[0][79].ACLR +reset => mem[0][80].ACLR +reset => mem[0][81].ACLR +reset => mem[0][82].ACLR +reset => mem[0][83].ACLR +reset => mem[0][84].ACLR +reset => mem[0][85].ACLR +reset => mem[0][86].ACLR +reset => mem[0][87].ACLR +reset => mem[0][88].ACLR +reset => mem[0][89].ACLR +reset => mem[0][90].ACLR +reset => mem[0][91].ACLR +reset => mem[0][92].ACLR +reset => mem[0][93].ACLR +reset => mem[0][94].ACLR +reset => mem[0][95].ACLR +reset => mem[0][96].ACLR +reset => mem[0][97].ACLR +reset => mem[0][98].ACLR +in_data[0] => mem.DATAB +in_data[1] => mem.DATAB +in_data[2] => mem.DATAB +in_data[3] => mem.DATAB +in_data[4] => mem.DATAB +in_data[5] => mem.DATAB +in_data[6] => mem.DATAB +in_data[7] => mem.DATAB +in_data[8] => mem.DATAB +in_data[9] => mem.DATAB +in_data[10] => mem.DATAB +in_data[11] => mem.DATAB +in_data[12] => mem.DATAB +in_data[13] => mem.DATAB +in_data[14] => mem.DATAB +in_data[15] => mem.DATAB +in_data[16] => mem.DATAB +in_data[17] => mem.DATAB +in_data[18] => mem.DATAB +in_data[19] => mem.DATAB +in_data[20] => mem.DATAB +in_data[21] => mem.DATAB +in_data[22] => mem.DATAB +in_data[23] => mem.DATAB +in_data[24] => mem.DATAB +in_data[25] => mem.DATAB +in_data[26] => mem.DATAB +in_data[27] => mem.DATAB +in_data[28] => mem.DATAB +in_data[29] => mem.DATAB +in_data[30] => mem.DATAB +in_data[31] => mem.DATAB +in_data[32] => mem.DATAB +in_data[33] => mem.DATAB +in_data[34] => mem.DATAB +in_data[35] => mem.DATAB +in_data[36] => mem.DATAB +in_data[37] => mem.DATAB +in_data[38] => mem.DATAB +in_data[39] => mem.DATAB +in_data[40] => mem.DATAB +in_data[41] => mem.DATAB +in_data[42] => mem.DATAB +in_data[43] => mem.DATAB +in_data[44] => mem.DATAB +in_data[45] => mem.DATAB +in_data[46] => mem.DATAB +in_data[47] => mem.DATAB +in_data[48] => mem.DATAB +in_data[49] => mem.DATAB +in_data[50] => mem.DATAB +in_data[51] => mem.DATAB +in_data[52] => mem.DATAB +in_data[53] => mem.DATAB +in_data[54] => mem.DATAB +in_data[55] => mem.DATAB +in_data[56] => mem.DATAB +in_data[57] => mem.DATAB +in_data[58] => mem.DATAB +in_data[59] => mem.DATAB +in_data[60] => mem.DATAB +in_data[61] => mem.DATAB +in_data[62] => mem.DATAB +in_data[63] => mem.DATAB +in_data[64] => mem.DATAB +in_data[65] => mem.DATAB +in_data[66] => mem.DATAB +in_data[67] => mem.DATAB +in_data[68] => mem.DATAB +in_data[69] => mem.DATAB +in_data[70] => mem.DATAB +in_data[71] => mem.DATAB +in_data[72] => mem.DATAB +in_data[73] => mem.DATAB +in_data[74] => mem.DATAB +in_data[75] => mem.DATAB +in_data[76] => mem.DATAB +in_data[77] => mem.DATAB +in_data[78] => mem.DATAB +in_data[79] => mem.DATAB +in_data[80] => mem.DATAB +in_data[81] => mem.DATAB +in_data[82] => mem.DATAB +in_data[83] => mem.DATAB +in_data[84] => mem.DATAB +in_data[85] => mem.DATAB +in_data[86] => mem.DATAB +in_data[87] => mem.DATAB +in_data[88] => mem.DATAB +in_data[89] => mem.DATAB +in_data[90] => mem.DATAB +in_data[91] => mem.DATAB +in_data[92] => mem.DATAB +in_data[93] => mem.DATAB +in_data[94] => mem.DATAB +in_data[95] => mem.DATAB +in_data[96] => mem.DATAB +in_valid => write.IN1 +in_startofpacket => mem.DATAB +in_endofpacket => mem.DATAB +in_empty[0] => ~NO_FANOUT~ +in_error[0] => out_error[0].DATAIN +in_error[0] => out_empty[0].DATAIN +in_channel[0] => out_channel[0].DATAIN +in_ready <= mem_used[1].DB_MAX_OUTPUT_PORT_TYPE +out_data[0] <= mem[0][0].DB_MAX_OUTPUT_PORT_TYPE +out_data[1] <= mem[0][1].DB_MAX_OUTPUT_PORT_TYPE +out_data[2] <= mem[0][2].DB_MAX_OUTPUT_PORT_TYPE +out_data[3] <= mem[0][3].DB_MAX_OUTPUT_PORT_TYPE +out_data[4] <= mem[0][4].DB_MAX_OUTPUT_PORT_TYPE +out_data[5] <= mem[0][5].DB_MAX_OUTPUT_PORT_TYPE +out_data[6] <= mem[0][6].DB_MAX_OUTPUT_PORT_TYPE +out_data[7] <= mem[0][7].DB_MAX_OUTPUT_PORT_TYPE +out_data[8] <= mem[0][8].DB_MAX_OUTPUT_PORT_TYPE +out_data[9] <= mem[0][9].DB_MAX_OUTPUT_PORT_TYPE +out_data[10] <= mem[0][10].DB_MAX_OUTPUT_PORT_TYPE +out_data[11] <= mem[0][11].DB_MAX_OUTPUT_PORT_TYPE +out_data[12] <= mem[0][12].DB_MAX_OUTPUT_PORT_TYPE +out_data[13] <= mem[0][13].DB_MAX_OUTPUT_PORT_TYPE +out_data[14] <= mem[0][14].DB_MAX_OUTPUT_PORT_TYPE +out_data[15] <= mem[0][15].DB_MAX_OUTPUT_PORT_TYPE +out_data[16] <= mem[0][16].DB_MAX_OUTPUT_PORT_TYPE +out_data[17] <= mem[0][17].DB_MAX_OUTPUT_PORT_TYPE +out_data[18] <= mem[0][18].DB_MAX_OUTPUT_PORT_TYPE +out_data[19] <= mem[0][19].DB_MAX_OUTPUT_PORT_TYPE +out_data[20] <= mem[0][20].DB_MAX_OUTPUT_PORT_TYPE +out_data[21] <= mem[0][21].DB_MAX_OUTPUT_PORT_TYPE +out_data[22] <= mem[0][22].DB_MAX_OUTPUT_PORT_TYPE +out_data[23] <= mem[0][23].DB_MAX_OUTPUT_PORT_TYPE +out_data[24] <= mem[0][24].DB_MAX_OUTPUT_PORT_TYPE +out_data[25] <= mem[0][25].DB_MAX_OUTPUT_PORT_TYPE +out_data[26] <= mem[0][26].DB_MAX_OUTPUT_PORT_TYPE +out_data[27] <= mem[0][27].DB_MAX_OUTPUT_PORT_TYPE +out_data[28] <= mem[0][28].DB_MAX_OUTPUT_PORT_TYPE +out_data[29] <= mem[0][29].DB_MAX_OUTPUT_PORT_TYPE +out_data[30] <= mem[0][30].DB_MAX_OUTPUT_PORT_TYPE +out_data[31] <= mem[0][31].DB_MAX_OUTPUT_PORT_TYPE +out_data[32] <= mem[0][32].DB_MAX_OUTPUT_PORT_TYPE +out_data[33] <= mem[0][33].DB_MAX_OUTPUT_PORT_TYPE +out_data[34] <= mem[0][34].DB_MAX_OUTPUT_PORT_TYPE +out_data[35] <= mem[0][35].DB_MAX_OUTPUT_PORT_TYPE +out_data[36] <= mem[0][36].DB_MAX_OUTPUT_PORT_TYPE +out_data[37] <= mem[0][37].DB_MAX_OUTPUT_PORT_TYPE +out_data[38] <= mem[0][38].DB_MAX_OUTPUT_PORT_TYPE +out_data[39] <= mem[0][39].DB_MAX_OUTPUT_PORT_TYPE +out_data[40] <= mem[0][40].DB_MAX_OUTPUT_PORT_TYPE +out_data[41] <= mem[0][41].DB_MAX_OUTPUT_PORT_TYPE +out_data[42] <= mem[0][42].DB_MAX_OUTPUT_PORT_TYPE +out_data[43] <= mem[0][43].DB_MAX_OUTPUT_PORT_TYPE +out_data[44] <= mem[0][44].DB_MAX_OUTPUT_PORT_TYPE +out_data[45] <= mem[0][45].DB_MAX_OUTPUT_PORT_TYPE +out_data[46] <= mem[0][46].DB_MAX_OUTPUT_PORT_TYPE +out_data[47] <= mem[0][47].DB_MAX_OUTPUT_PORT_TYPE +out_data[48] <= mem[0][48].DB_MAX_OUTPUT_PORT_TYPE +out_data[49] <= mem[0][49].DB_MAX_OUTPUT_PORT_TYPE +out_data[50] <= mem[0][50].DB_MAX_OUTPUT_PORT_TYPE +out_data[51] <= mem[0][51].DB_MAX_OUTPUT_PORT_TYPE +out_data[52] <= mem[0][52].DB_MAX_OUTPUT_PORT_TYPE +out_data[53] <= mem[0][53].DB_MAX_OUTPUT_PORT_TYPE +out_data[54] <= mem[0][54].DB_MAX_OUTPUT_PORT_TYPE +out_data[55] <= mem[0][55].DB_MAX_OUTPUT_PORT_TYPE +out_data[56] <= mem[0][56].DB_MAX_OUTPUT_PORT_TYPE +out_data[57] <= mem[0][57].DB_MAX_OUTPUT_PORT_TYPE +out_data[58] <= mem[0][58].DB_MAX_OUTPUT_PORT_TYPE +out_data[59] <= mem[0][59].DB_MAX_OUTPUT_PORT_TYPE +out_data[60] <= mem[0][60].DB_MAX_OUTPUT_PORT_TYPE +out_data[61] <= mem[0][61].DB_MAX_OUTPUT_PORT_TYPE +out_data[62] <= mem[0][62].DB_MAX_OUTPUT_PORT_TYPE +out_data[63] <= mem[0][63].DB_MAX_OUTPUT_PORT_TYPE +out_data[64] <= mem[0][64].DB_MAX_OUTPUT_PORT_TYPE +out_data[65] <= mem[0][65].DB_MAX_OUTPUT_PORT_TYPE +out_data[66] <= mem[0][66].DB_MAX_OUTPUT_PORT_TYPE +out_data[67] <= mem[0][67].DB_MAX_OUTPUT_PORT_TYPE +out_data[68] <= mem[0][68].DB_MAX_OUTPUT_PORT_TYPE +out_data[69] <= mem[0][69].DB_MAX_OUTPUT_PORT_TYPE +out_data[70] <= mem[0][70].DB_MAX_OUTPUT_PORT_TYPE +out_data[71] <= mem[0][71].DB_MAX_OUTPUT_PORT_TYPE +out_data[72] <= mem[0][72].DB_MAX_OUTPUT_PORT_TYPE +out_data[73] <= mem[0][73].DB_MAX_OUTPUT_PORT_TYPE +out_data[74] <= mem[0][74].DB_MAX_OUTPUT_PORT_TYPE +out_data[75] <= mem[0][75].DB_MAX_OUTPUT_PORT_TYPE +out_data[76] <= mem[0][76].DB_MAX_OUTPUT_PORT_TYPE +out_data[77] <= mem[0][77].DB_MAX_OUTPUT_PORT_TYPE +out_data[78] <= mem[0][78].DB_MAX_OUTPUT_PORT_TYPE +out_data[79] <= mem[0][79].DB_MAX_OUTPUT_PORT_TYPE +out_data[80] <= mem[0][80].DB_MAX_OUTPUT_PORT_TYPE +out_data[81] <= mem[0][81].DB_MAX_OUTPUT_PORT_TYPE +out_data[82] <= mem[0][82].DB_MAX_OUTPUT_PORT_TYPE +out_data[83] <= mem[0][83].DB_MAX_OUTPUT_PORT_TYPE +out_data[84] <= mem[0][84].DB_MAX_OUTPUT_PORT_TYPE +out_data[85] <= mem[0][85].DB_MAX_OUTPUT_PORT_TYPE +out_data[86] <= mem[0][86].DB_MAX_OUTPUT_PORT_TYPE +out_data[87] <= mem[0][87].DB_MAX_OUTPUT_PORT_TYPE +out_data[88] <= mem[0][88].DB_MAX_OUTPUT_PORT_TYPE +out_data[89] <= mem[0][89].DB_MAX_OUTPUT_PORT_TYPE +out_data[90] <= mem[0][90].DB_MAX_OUTPUT_PORT_TYPE +out_data[91] <= mem[0][91].DB_MAX_OUTPUT_PORT_TYPE +out_data[92] <= mem[0][92].DB_MAX_OUTPUT_PORT_TYPE +out_data[93] <= mem[0][93].DB_MAX_OUTPUT_PORT_TYPE +out_data[94] <= mem[0][94].DB_MAX_OUTPUT_PORT_TYPE +out_data[95] <= mem[0][95].DB_MAX_OUTPUT_PORT_TYPE +out_data[96] <= mem[0][96].DB_MAX_OUTPUT_PORT_TYPE +out_valid <= mem_used[0].DB_MAX_OUTPUT_PORT_TYPE +out_startofpacket <= mem[0][98].DB_MAX_OUTPUT_PORT_TYPE +out_endofpacket <= mem[0][97].DB_MAX_OUTPUT_PORT_TYPE +out_empty[0] <= in_error[0].DB_MAX_OUTPUT_PORT_TYPE +out_error[0] <= in_error[0].DB_MAX_OUTPUT_PORT_TYPE +out_channel[0] <= in_channel[0].DB_MAX_OUTPUT_PORT_TYPE +out_ready => internal_out_ready.IN1 +csr_address[0] => ~NO_FANOUT~ +csr_address[1] => ~NO_FANOUT~ +csr_write => ~NO_FANOUT~ +csr_read => csr_readdata[31]~reg0.ENA +csr_read => csr_readdata[30]~reg0.ENA +csr_read => csr_readdata[29]~reg0.ENA +csr_read => csr_readdata[28]~reg0.ENA +csr_read => csr_readdata[27]~reg0.ENA +csr_read => csr_readdata[26]~reg0.ENA +csr_read => csr_readdata[25]~reg0.ENA +csr_read => csr_readdata[24]~reg0.ENA +csr_read => csr_readdata[23]~reg0.ENA +csr_read => csr_readdata[22]~reg0.ENA +csr_read => csr_readdata[21]~reg0.ENA +csr_read => csr_readdata[20]~reg0.ENA +csr_read => csr_readdata[19]~reg0.ENA +csr_read => csr_readdata[18]~reg0.ENA +csr_read => csr_readdata[17]~reg0.ENA +csr_read => csr_readdata[16]~reg0.ENA +csr_read => csr_readdata[15]~reg0.ENA +csr_read => csr_readdata[14]~reg0.ENA +csr_read => csr_readdata[13]~reg0.ENA +csr_read => csr_readdata[12]~reg0.ENA +csr_read => csr_readdata[11]~reg0.ENA +csr_read => csr_readdata[10]~reg0.ENA +csr_read => csr_readdata[9]~reg0.ENA +csr_read => csr_readdata[8]~reg0.ENA +csr_read => csr_readdata[7]~reg0.ENA +csr_read => csr_readdata[6]~reg0.ENA +csr_read => csr_readdata[5]~reg0.ENA +csr_read => csr_readdata[4]~reg0.ENA +csr_read => csr_readdata[3]~reg0.ENA +csr_read => csr_readdata[2]~reg0.ENA +csr_read => csr_readdata[1]~reg0.ENA +csr_read => csr_readdata[0]~reg0.ENA +csr_writedata[0] => ~NO_FANOUT~ +csr_writedata[1] => ~NO_FANOUT~ +csr_writedata[2] => ~NO_FANOUT~ +csr_writedata[3] => ~NO_FANOUT~ +csr_writedata[4] => ~NO_FANOUT~ +csr_writedata[5] => ~NO_FANOUT~ +csr_writedata[6] => ~NO_FANOUT~ +csr_writedata[7] => ~NO_FANOUT~ +csr_writedata[8] => ~NO_FANOUT~ +csr_writedata[9] => ~NO_FANOUT~ +csr_writedata[10] => ~NO_FANOUT~ +csr_writedata[11] => ~NO_FANOUT~ +csr_writedata[12] => ~NO_FANOUT~ +csr_writedata[13] => ~NO_FANOUT~ +csr_writedata[14] => ~NO_FANOUT~ +csr_writedata[15] => ~NO_FANOUT~ +csr_writedata[16] => ~NO_FANOUT~ +csr_writedata[17] => ~NO_FANOUT~ +csr_writedata[18] => ~NO_FANOUT~ +csr_writedata[19] => ~NO_FANOUT~ +csr_writedata[20] => ~NO_FANOUT~ +csr_writedata[21] => ~NO_FANOUT~ +csr_writedata[22] => ~NO_FANOUT~ +csr_writedata[23] => ~NO_FANOUT~ +csr_writedata[24] => ~NO_FANOUT~ +csr_writedata[25] => ~NO_FANOUT~ +csr_writedata[26] => ~NO_FANOUT~ +csr_writedata[27] => ~NO_FANOUT~ +csr_writedata[28] => ~NO_FANOUT~ +csr_writedata[29] => ~NO_FANOUT~ +csr_writedata[30] => ~NO_FANOUT~ +csr_writedata[31] => ~NO_FANOUT~ +csr_readdata[0] <= csr_readdata[0]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[1] <= csr_readdata[1]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[2] <= csr_readdata[2]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[3] <= csr_readdata[3]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[4] <= csr_readdata[4]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[5] <= csr_readdata[5]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[6] <= csr_readdata[6]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[7] <= csr_readdata[7]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[8] <= csr_readdata[8]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[9] <= csr_readdata[9]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[10] <= csr_readdata[10]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[11] <= csr_readdata[11]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[12] <= csr_readdata[12]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[13] <= csr_readdata[13]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[14] <= csr_readdata[14]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[15] <= csr_readdata[15]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[16] <= csr_readdata[16]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[17] <= csr_readdata[17]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[18] <= csr_readdata[18]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[19] <= csr_readdata[19]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[20] <= csr_readdata[20]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[21] <= csr_readdata[21]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[22] <= csr_readdata[22]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[23] <= csr_readdata[23]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[24] <= csr_readdata[24]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[25] <= csr_readdata[25]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[26] <= csr_readdata[26]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[27] <= csr_readdata[27]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[28] <= csr_readdata[28]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[29] <= csr_readdata[29]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[30] <= csr_readdata[30]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[31] <= csr_readdata[31]~reg0.DB_MAX_OUTPUT_PORT_TYPE +almost_full_data <= +almost_empty_data <= + + +|lights|nios_system:NiosII|altera_merlin_slave_agent:lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent +clk => clk.IN1 +reset => reset.IN1 +m0_address[0] <= +m0_address[1] <= +m0_address[2] <= cp_data[38].DB_MAX_OUTPUT_PORT_TYPE +m0_address[3] <= cp_data[39].DB_MAX_OUTPUT_PORT_TYPE +m0_address[4] <= cp_data[40].DB_MAX_OUTPUT_PORT_TYPE +m0_address[5] <= cp_data[41].DB_MAX_OUTPUT_PORT_TYPE +m0_address[6] <= cp_data[42].DB_MAX_OUTPUT_PORT_TYPE +m0_address[7] <= cp_data[43].DB_MAX_OUTPUT_PORT_TYPE +m0_address[8] <= cp_data[44].DB_MAX_OUTPUT_PORT_TYPE +m0_address[9] <= cp_data[45].DB_MAX_OUTPUT_PORT_TYPE +m0_address[10] <= cp_data[46].DB_MAX_OUTPUT_PORT_TYPE +m0_address[11] <= cp_data[47].DB_MAX_OUTPUT_PORT_TYPE +m0_address[12] <= cp_data[48].DB_MAX_OUTPUT_PORT_TYPE +m0_address[13] <= cp_data[49].DB_MAX_OUTPUT_PORT_TYPE +m0_address[14] <= cp_data[50].DB_MAX_OUTPUT_PORT_TYPE +m0_address[15] <= cp_data[51].DB_MAX_OUTPUT_PORT_TYPE +m0_address[16] <= cp_data[52].DB_MAX_OUTPUT_PORT_TYPE +m0_address[17] <= cp_data[53].DB_MAX_OUTPUT_PORT_TYPE +m0_address[18] <= cp_data[54].DB_MAX_OUTPUT_PORT_TYPE +m0_burstcount[0] <= m0_burstcount.DB_MAX_OUTPUT_PORT_TYPE +m0_burstcount[1] <= m0_burstcount.DB_MAX_OUTPUT_PORT_TYPE +m0_burstcount[2] <= m0_burstcount.DB_MAX_OUTPUT_PORT_TYPE +m0_byteenable[0] <= cp_data[32].DB_MAX_OUTPUT_PORT_TYPE +m0_byteenable[1] <= cp_data[33].DB_MAX_OUTPUT_PORT_TYPE +m0_byteenable[2] <= cp_data[34].DB_MAX_OUTPUT_PORT_TYPE +m0_byteenable[3] <= cp_data[35].DB_MAX_OUTPUT_PORT_TYPE +m0_read <= m0_read.DB_MAX_OUTPUT_PORT_TYPE +m0_readdata[0] => rdata_fifo_src_data[0].DATAIN +m0_readdata[1] => rdata_fifo_src_data[1].DATAIN +m0_readdata[2] => rdata_fifo_src_data[2].DATAIN +m0_readdata[3] => rdata_fifo_src_data[3].DATAIN +m0_readdata[4] => rdata_fifo_src_data[4].DATAIN +m0_readdata[5] => rdata_fifo_src_data[5].DATAIN +m0_readdata[6] => rdata_fifo_src_data[6].DATAIN +m0_readdata[7] => rdata_fifo_src_data[7].DATAIN +m0_readdata[8] => rdata_fifo_src_data[8].DATAIN +m0_readdata[9] => rdata_fifo_src_data[9].DATAIN +m0_readdata[10] => rdata_fifo_src_data[10].DATAIN +m0_readdata[11] => rdata_fifo_src_data[11].DATAIN +m0_readdata[12] => rdata_fifo_src_data[12].DATAIN +m0_readdata[13] => rdata_fifo_src_data[13].DATAIN +m0_readdata[14] => rdata_fifo_src_data[14].DATAIN +m0_readdata[15] => rdata_fifo_src_data[15].DATAIN +m0_readdata[16] => rdata_fifo_src_data[16].DATAIN +m0_readdata[17] => rdata_fifo_src_data[17].DATAIN +m0_readdata[18] => rdata_fifo_src_data[18].DATAIN +m0_readdata[19] => rdata_fifo_src_data[19].DATAIN +m0_readdata[20] => rdata_fifo_src_data[20].DATAIN +m0_readdata[21] => rdata_fifo_src_data[21].DATAIN +m0_readdata[22] => rdata_fifo_src_data[22].DATAIN +m0_readdata[23] => rdata_fifo_src_data[23].DATAIN +m0_readdata[24] => rdata_fifo_src_data[24].DATAIN +m0_readdata[25] => rdata_fifo_src_data[25].DATAIN +m0_readdata[26] => rdata_fifo_src_data[26].DATAIN +m0_readdata[27] => rdata_fifo_src_data[27].DATAIN +m0_readdata[28] => rdata_fifo_src_data[28].DATAIN +m0_readdata[29] => rdata_fifo_src_data[29].DATAIN +m0_readdata[30] => rdata_fifo_src_data[30].DATAIN +m0_readdata[31] => rdata_fifo_src_data[31].DATAIN +m0_waitrequest => cp_ready.IN0 +m0_write <= m0_write.DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[0] <= cp_data[0].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[1] <= cp_data[1].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[2] <= cp_data[2].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[3] <= cp_data[3].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[4] <= cp_data[4].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[5] <= cp_data[5].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[6] <= cp_data[6].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[7] <= cp_data[7].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[8] <= cp_data[8].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[9] <= cp_data[9].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[10] <= cp_data[10].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[11] <= cp_data[11].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[12] <= cp_data[12].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[13] <= cp_data[13].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[14] <= cp_data[14].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[15] <= cp_data[15].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[16] <= cp_data[16].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[17] <= cp_data[17].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[18] <= cp_data[18].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[19] <= cp_data[19].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[20] <= cp_data[20].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[21] <= cp_data[21].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[22] <= cp_data[22].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[23] <= cp_data[23].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[24] <= cp_data[24].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[25] <= cp_data[25].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[26] <= cp_data[26].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[27] <= cp_data[27].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[28] <= cp_data[28].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[29] <= cp_data[29].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[30] <= cp_data[30].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[31] <= cp_data[31].DB_MAX_OUTPUT_PORT_TYPE +m0_readdatavalid => rdata_fifo_src_valid.IN0 +m0_debugaccess <= cp_data[87].DB_MAX_OUTPUT_PORT_TYPE +m0_lock <= m0_lock.DB_MAX_OUTPUT_PORT_TYPE +m0_response[0] => rdata_fifo_src_data[32].DATAIN +m0_response[1] => rdata_fifo_src_data[33].DATAIN +m0_writeresponserequest <= m0_writeresponserequest.DB_MAX_OUTPUT_PORT_TYPE +m0_writeresponsevalid => rdata_fifo_src_valid.IN1 +rf_source_data[0] <= +rf_source_data[1] <= +rf_source_data[2] <= +rf_source_data[3] <= +rf_source_data[4] <= +rf_source_data[5] <= +rf_source_data[6] <= +rf_source_data[7] <= +rf_source_data[8] <= +rf_source_data[9] <= +rf_source_data[10] <= +rf_source_data[11] <= +rf_source_data[12] <= +rf_source_data[13] <= +rf_source_data[14] <= +rf_source_data[15] <= +rf_source_data[16] <= +rf_source_data[17] <= +rf_source_data[18] <= +rf_source_data[19] <= +rf_source_data[20] <= +rf_source_data[21] <= +rf_source_data[22] <= +rf_source_data[23] <= +rf_source_data[24] <= +rf_source_data[25] <= +rf_source_data[26] <= +rf_source_data[27] <= +rf_source_data[28] <= +rf_source_data[29] <= +rf_source_data[30] <= +rf_source_data[31] <= +rf_source_data[32] <= cp_data[32].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[33] <= cp_data[33].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[34] <= cp_data[34].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[35] <= cp_data[35].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[36] <= cp_data[36].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[37] <= cp_data[37].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[38] <= cp_data[38].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[39] <= cp_data[39].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[40] <= cp_data[40].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[41] <= cp_data[41].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[42] <= cp_data[42].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[43] <= cp_data[43].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[44] <= cp_data[44].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[45] <= cp_data[45].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[46] <= cp_data[46].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[47] <= cp_data[47].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[48] <= cp_data[48].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[49] <= cp_data[49].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[50] <= cp_data[50].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[51] <= cp_data[51].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[52] <= cp_data[52].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[53] <= cp_data[53].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[54] <= cp_data[54].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[55] <= cp_data[55].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[56] <= cp_data[56].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[57] <= cp_data[57].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[58] <= cp_data[58].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[59] <= cp_data[59].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[60] <= cp_data[60].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[61] <= cp_data[61].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[62] <= cp_data[62].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[63] <= cp_data[63].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[64] <= cp_data[64].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[65] <= cp_data[65].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[66] <= cp_data[66].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[67] <= cp_data[67].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[68] <= cp_data[68].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[69] <= cp_data[69].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[70] <= cp_data[70].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[71] <= cp_data[71].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[72] <= cp_data[72].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[73] <= cp_data[73].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[74] <= cp_data[74].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[75] <= cp_data[75].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[76] <= cp_data[76].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[77] <= cp_data[77].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[78] <= cp_data[78].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[79] <= cp_data[79].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[80] <= cp_data[80].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[81] <= cp_data[81].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[82] <= cp_data[82].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[83] <= cp_data[83].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[84] <= cp_data[84].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[85] <= cp_data[85].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[86] <= cp_data[86].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[87] <= cp_data[87].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[88] <= +rf_source_data[89] <= +rf_source_data[90] <= cp_data[90].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[91] <= cp_data[91].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[92] <= cp_data[92].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[93] <= cp_data[93].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[94] <= cp_data[94].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[95] <= cp_data[95].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[96] <= nonposted_write_endofpacket.DB_MAX_OUTPUT_PORT_TYPE +rf_source_valid <= rf_source_valid.DB_MAX_OUTPUT_PORT_TYPE +rf_source_startofpacket <= cp_startofpacket.DB_MAX_OUTPUT_PORT_TYPE +rf_source_endofpacket <= cp_endofpacket.DB_MAX_OUTPUT_PORT_TYPE +rf_source_ready => cp_ready.IN1 +rf_source_ready => m0_write.IN1 +rf_source_ready => m0_lock.IN1 +rf_source_ready => rf_source_valid.IN1 +rf_source_ready => m0_read.IN1 +rf_sink_data[0] => ~NO_FANOUT~ +rf_sink_data[1] => ~NO_FANOUT~ +rf_sink_data[2] => ~NO_FANOUT~ +rf_sink_data[3] => ~NO_FANOUT~ +rf_sink_data[4] => ~NO_FANOUT~ +rf_sink_data[5] => ~NO_FANOUT~ +rf_sink_data[6] => ~NO_FANOUT~ +rf_sink_data[7] => ~NO_FANOUT~ +rf_sink_data[8] => ~NO_FANOUT~ +rf_sink_data[9] => ~NO_FANOUT~ +rf_sink_data[10] => ~NO_FANOUT~ +rf_sink_data[11] => ~NO_FANOUT~ +rf_sink_data[12] => ~NO_FANOUT~ +rf_sink_data[13] => ~NO_FANOUT~ +rf_sink_data[14] => ~NO_FANOUT~ +rf_sink_data[15] => ~NO_FANOUT~ +rf_sink_data[16] => ~NO_FANOUT~ +rf_sink_data[17] => ~NO_FANOUT~ +rf_sink_data[18] => ~NO_FANOUT~ +rf_sink_data[19] => ~NO_FANOUT~ +rf_sink_data[20] => ~NO_FANOUT~ +rf_sink_data[21] => ~NO_FANOUT~ +rf_sink_data[22] => ~NO_FANOUT~ +rf_sink_data[23] => ~NO_FANOUT~ +rf_sink_data[24] => ~NO_FANOUT~ +rf_sink_data[25] => ~NO_FANOUT~ +rf_sink_data[26] => ~NO_FANOUT~ +rf_sink_data[27] => ~NO_FANOUT~ +rf_sink_data[28] => ~NO_FANOUT~ +rf_sink_data[29] => ~NO_FANOUT~ +rf_sink_data[30] => ~NO_FANOUT~ +rf_sink_data[31] => ~NO_FANOUT~ +rf_sink_data[32] => rp_data[32].DATAIN +rf_sink_data[33] => rp_data[33].DATAIN +rf_sink_data[34] => rp_data[34].DATAIN +rf_sink_data[35] => rp_data[35].DATAIN +rf_sink_data[36] => rf_sink_addr[0].IN1 +rf_sink_data[37] => rf_sink_addr[1].IN1 +rf_sink_data[38] => rf_sink_addr[2].IN1 +rf_sink_data[39] => rf_sink_addr[3].IN1 +rf_sink_data[40] => rf_sink_addr[4].IN1 +rf_sink_data[41] => rf_sink_addr[5].IN1 +rf_sink_data[42] => rf_sink_addr[6].IN1 +rf_sink_data[43] => rf_sink_addr[7].IN1 +rf_sink_data[44] => rf_sink_addr[8].IN1 +rf_sink_data[45] => rf_sink_addr[9].IN1 +rf_sink_data[46] => rf_sink_addr[10].IN1 +rf_sink_data[47] => rf_sink_addr[11].IN1 +rf_sink_data[48] => rf_sink_addr[12].IN1 +rf_sink_data[49] => rf_sink_addr[13].IN1 +rf_sink_data[50] => rf_sink_addr[14].IN1 +rf_sink_data[51] => rf_sink_addr[15].IN1 +rf_sink_data[52] => rf_sink_addr[16].IN1 +rf_sink_data[53] => rf_sink_addr[17].IN1 +rf_sink_data[54] => rf_sink_addr[18].IN1 +rf_sink_data[55] => rf_sink_compressed.IN1 +rf_sink_data[56] => rp_data[56].DATAIN +rf_sink_data[57] => comb.OUTPUTSELECT +rf_sink_data[57] => rp_data[57].DATAIN +rf_sink_data[58] => rp_data.IN0 +rf_sink_data[59] => rp_data[59].DATAIN +rf_sink_data[60] => rp_data[60].DATAIN +rf_sink_data[61] => rf_sink_byte_cnt[0].IN1 +rf_sink_data[62] => rf_sink_byte_cnt[1].IN1 +rf_sink_data[63] => rf_sink_byte_cnt[2].IN1 +rf_sink_data[64] => rf_sink_burstwrap[0].IN1 +rf_sink_data[65] => rf_sink_burstwrap[1].IN1 +rf_sink_data[66] => rf_sink_burstwrap[2].IN1 +rf_sink_data[67] => rf_sink_burstsize[0].IN1 +rf_sink_data[68] => rf_sink_burstsize[1].IN1 +rf_sink_data[69] => rf_sink_burstsize[2].IN1 +rf_sink_data[70] => rp_data[70].DATAIN +rf_sink_data[71] => rp_data[71].DATAIN +rf_sink_data[72] => rp_data[72].DATAIN +rf_sink_data[73] => rp_data[73].DATAIN +rf_sink_data[74] => rp_data[74].DATAIN +rf_sink_data[75] => rp_data[75].DATAIN +rf_sink_data[76] => rp_data[81].DATAIN +rf_sink_data[77] => rp_data[82].DATAIN +rf_sink_data[78] => rp_data[83].DATAIN +rf_sink_data[79] => rp_data[84].DATAIN +rf_sink_data[80] => rp_data[85].DATAIN +rf_sink_data[81] => rp_data[76].DATAIN +rf_sink_data[82] => rp_data[77].DATAIN +rf_sink_data[83] => rp_data[78].DATAIN +rf_sink_data[84] => rp_data[79].DATAIN +rf_sink_data[85] => rp_data[80].DATAIN +rf_sink_data[86] => rp_data[86].DATAIN +rf_sink_data[87] => rp_data[87].DATAIN +rf_sink_data[88] => rp_data[88].DATAIN +rf_sink_data[89] => rp_data[89].DATAIN +rf_sink_data[90] => rp_data[90].DATAIN +rf_sink_data[91] => rp_data[91].DATAIN +rf_sink_data[92] => rp_data[92].DATAIN +rf_sink_data[93] => rp_data[93].DATAIN +rf_sink_data[94] => ~NO_FANOUT~ +rf_sink_data[95] => ~NO_FANOUT~ +rf_sink_data[96] => rdata_fifo_sink_ready.IN0 +rf_sink_data[96] => comb.IN0 +rf_sink_valid => rdata_fifo_sink_ready.IN1 +rf_sink_valid => comb.IN1 +rf_sink_startofpacket => comb.DATAA +rf_sink_endofpacket => rf_sink_endofpacket.IN1 +rf_sink_ready <= altera_merlin_burst_uncompressor:uncompressor.sink_ready +rdata_fifo_src_data[0] <= m0_readdata[0].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[1] <= m0_readdata[1].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[2] <= m0_readdata[2].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[3] <= m0_readdata[3].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[4] <= m0_readdata[4].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[5] <= m0_readdata[5].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[6] <= m0_readdata[6].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[7] <= m0_readdata[7].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[8] <= m0_readdata[8].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[9] <= m0_readdata[9].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[10] <= m0_readdata[10].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[11] <= m0_readdata[11].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[12] <= m0_readdata[12].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[13] <= m0_readdata[13].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[14] <= m0_readdata[14].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[15] <= m0_readdata[15].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[16] <= m0_readdata[16].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[17] <= m0_readdata[17].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[18] <= m0_readdata[18].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[19] <= m0_readdata[19].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[20] <= m0_readdata[20].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[21] <= m0_readdata[21].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[22] <= m0_readdata[22].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[23] <= m0_readdata[23].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[24] <= m0_readdata[24].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[25] <= m0_readdata[25].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[26] <= m0_readdata[26].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[27] <= m0_readdata[27].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[28] <= m0_readdata[28].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[29] <= m0_readdata[29].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[30] <= m0_readdata[30].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[31] <= m0_readdata[31].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[32] <= m0_response[0].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[33] <= m0_response[1].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_valid <= rdata_fifo_src_valid.DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_ready => ~NO_FANOUT~ +rdata_fifo_sink_data[0] => rp_data[0].DATAIN +rdata_fifo_sink_data[1] => rp_data[1].DATAIN +rdata_fifo_sink_data[2] => rp_data[2].DATAIN +rdata_fifo_sink_data[3] => rp_data[3].DATAIN +rdata_fifo_sink_data[4] => rp_data[4].DATAIN +rdata_fifo_sink_data[5] => rp_data[5].DATAIN +rdata_fifo_sink_data[6] => rp_data[6].DATAIN +rdata_fifo_sink_data[7] => rp_data[7].DATAIN +rdata_fifo_sink_data[8] => rp_data[8].DATAIN +rdata_fifo_sink_data[9] => rp_data[9].DATAIN +rdata_fifo_sink_data[10] => rp_data[10].DATAIN +rdata_fifo_sink_data[11] => rp_data[11].DATAIN +rdata_fifo_sink_data[12] => rp_data[12].DATAIN +rdata_fifo_sink_data[13] => rp_data[13].DATAIN +rdata_fifo_sink_data[14] => rp_data[14].DATAIN +rdata_fifo_sink_data[15] => rp_data[15].DATAIN +rdata_fifo_sink_data[16] => rp_data[16].DATAIN +rdata_fifo_sink_data[17] => rp_data[17].DATAIN +rdata_fifo_sink_data[18] => rp_data[18].DATAIN +rdata_fifo_sink_data[19] => rp_data[19].DATAIN +rdata_fifo_sink_data[20] => rp_data[20].DATAIN +rdata_fifo_sink_data[21] => rp_data[21].DATAIN +rdata_fifo_sink_data[22] => rp_data[22].DATAIN +rdata_fifo_sink_data[23] => rp_data[23].DATAIN +rdata_fifo_sink_data[24] => rp_data[24].DATAIN +rdata_fifo_sink_data[25] => rp_data[25].DATAIN +rdata_fifo_sink_data[26] => rp_data[26].DATAIN +rdata_fifo_sink_data[27] => rp_data[27].DATAIN +rdata_fifo_sink_data[28] => rp_data[28].DATAIN +rdata_fifo_sink_data[29] => rp_data[29].DATAIN +rdata_fifo_sink_data[30] => rp_data[30].DATAIN +rdata_fifo_sink_data[31] => rp_data[31].DATAIN +rdata_fifo_sink_data[32] => rp_data[94].DATAIN +rdata_fifo_sink_data[33] => rp_data[95].DATAIN +rdata_fifo_sink_valid => rp_valid.IN1 +rdata_fifo_sink_valid => rdata_fifo_sink_ready.IN0 +rdata_fifo_sink_valid => comb.IN1 +rdata_fifo_sink_ready <= rdata_fifo_sink_ready.DB_MAX_OUTPUT_PORT_TYPE +cp_ready <= cp_ready.DB_MAX_OUTPUT_PORT_TYPE +cp_valid => local_lock.IN0 +cp_valid => local_write.IN0 +cp_valid => local_read.IN0 +cp_valid => local_compressed_read.IN0 +cp_data[0] => m0_writedata[0].DATAIN +cp_data[1] => m0_writedata[1].DATAIN +cp_data[2] => m0_writedata[2].DATAIN +cp_data[3] => m0_writedata[3].DATAIN +cp_data[4] => m0_writedata[4].DATAIN +cp_data[5] => m0_writedata[5].DATAIN +cp_data[6] => m0_writedata[6].DATAIN +cp_data[7] => m0_writedata[7].DATAIN +cp_data[8] => m0_writedata[8].DATAIN +cp_data[9] => m0_writedata[9].DATAIN +cp_data[10] => m0_writedata[10].DATAIN +cp_data[11] => m0_writedata[11].DATAIN +cp_data[12] => m0_writedata[12].DATAIN +cp_data[13] => m0_writedata[13].DATAIN +cp_data[14] => m0_writedata[14].DATAIN +cp_data[15] => m0_writedata[15].DATAIN +cp_data[16] => m0_writedata[16].DATAIN +cp_data[17] => m0_writedata[17].DATAIN +cp_data[18] => m0_writedata[18].DATAIN +cp_data[19] => m0_writedata[19].DATAIN +cp_data[20] => m0_writedata[20].DATAIN +cp_data[21] => m0_writedata[21].DATAIN +cp_data[22] => m0_writedata[22].DATAIN +cp_data[23] => m0_writedata[23].DATAIN +cp_data[24] => m0_writedata[24].DATAIN +cp_data[25] => m0_writedata[25].DATAIN +cp_data[26] => m0_writedata[26].DATAIN +cp_data[27] => m0_writedata[27].DATAIN +cp_data[28] => m0_writedata[28].DATAIN +cp_data[29] => m0_writedata[29].DATAIN +cp_data[30] => m0_writedata[30].DATAIN +cp_data[31] => m0_writedata[31].DATAIN +cp_data[32] => rf_source_data[32].DATAIN +cp_data[32] => m0_byteenable[0].DATAIN +cp_data[33] => rf_source_data[33].DATAIN +cp_data[33] => m0_byteenable[1].DATAIN +cp_data[34] => rf_source_data[34].DATAIN +cp_data[34] => m0_byteenable[2].DATAIN +cp_data[35] => rf_source_data[35].DATAIN +cp_data[35] => m0_byteenable[3].DATAIN +cp_data[36] => rf_source_data[36].DATAIN +cp_data[37] => rf_source_data[37].DATAIN +cp_data[38] => rf_source_data[38].DATAIN +cp_data[38] => m0_address[2].DATAIN +cp_data[39] => rf_source_data[39].DATAIN +cp_data[39] => m0_address[3].DATAIN +cp_data[40] => rf_source_data[40].DATAIN +cp_data[40] => m0_address[4].DATAIN +cp_data[41] => rf_source_data[41].DATAIN +cp_data[41] => m0_address[5].DATAIN +cp_data[42] => rf_source_data[42].DATAIN +cp_data[42] => m0_address[6].DATAIN +cp_data[43] => rf_source_data[43].DATAIN +cp_data[43] => m0_address[7].DATAIN +cp_data[44] => rf_source_data[44].DATAIN +cp_data[44] => m0_address[8].DATAIN +cp_data[45] => rf_source_data[45].DATAIN +cp_data[45] => m0_address[9].DATAIN +cp_data[46] => rf_source_data[46].DATAIN +cp_data[46] => m0_address[10].DATAIN +cp_data[47] => rf_source_data[47].DATAIN +cp_data[47] => m0_address[11].DATAIN +cp_data[48] => rf_source_data[48].DATAIN +cp_data[48] => m0_address[12].DATAIN +cp_data[49] => rf_source_data[49].DATAIN +cp_data[49] => m0_address[13].DATAIN +cp_data[50] => rf_source_data[50].DATAIN +cp_data[50] => m0_address[14].DATAIN +cp_data[51] => rf_source_data[51].DATAIN +cp_data[51] => m0_address[15].DATAIN +cp_data[52] => rf_source_data[52].DATAIN +cp_data[52] => m0_address[16].DATAIN +cp_data[53] => rf_source_data[53].DATAIN +cp_data[53] => m0_address[17].DATAIN +cp_data[54] => rf_source_data[54].DATAIN +cp_data[54] => m0_address[18].DATAIN +cp_data[55] => local_compressed_read.IN1 +cp_data[55] => rf_source_data[55].DATAIN +cp_data[56] => rf_source_data[56].DATAIN +cp_data[56] => m0_writeresponserequest.IN1 +cp_data[56] => comb.IN1 +cp_data[57] => local_write.IN1 +cp_data[57] => rf_source_data[57].DATAIN +cp_data[58] => local_read.IN1 +cp_data[58] => rf_source_data[58].DATAIN +cp_data[59] => local_lock.IN1 +cp_data[59] => rf_source_data[59].DATAIN +cp_data[60] => rf_source_data[60].DATAIN +cp_data[61] => m0_burstcount.DATAA +cp_data[61] => rf_source_data[61].DATAIN +cp_data[62] => m0_burstcount.DATAA +cp_data[62] => rf_source_data[62].DATAIN +cp_data[63] => m0_burstcount.DATAA +cp_data[63] => rf_source_data[63].DATAIN +cp_data[64] => rf_source_data[64].DATAIN +cp_data[65] => rf_source_data[65].DATAIN +cp_data[66] => rf_source_data[66].DATAIN +cp_data[67] => rf_source_data[67].DATAIN +cp_data[68] => rf_source_data[68].DATAIN +cp_data[69] => rf_source_data[69].DATAIN +cp_data[70] => rf_source_data[70].DATAIN +cp_data[71] => rf_source_data[71].DATAIN +cp_data[72] => rf_source_data[72].DATAIN +cp_data[73] => rf_source_data[73].DATAIN +cp_data[74] => rf_source_data[74].DATAIN +cp_data[75] => rf_source_data[75].DATAIN +cp_data[76] => rf_source_data[76].DATAIN +cp_data[77] => rf_source_data[77].DATAIN +cp_data[78] => rf_source_data[78].DATAIN +cp_data[79] => rf_source_data[79].DATAIN +cp_data[80] => rf_source_data[80].DATAIN +cp_data[81] => rf_source_data[81].DATAIN +cp_data[82] => rf_source_data[82].DATAIN +cp_data[83] => rf_source_data[83].DATAIN +cp_data[84] => rf_source_data[84].DATAIN +cp_data[85] => rf_source_data[85].DATAIN +cp_data[86] => rf_source_data[86].DATAIN +cp_data[87] => rf_source_data[87].DATAIN +cp_data[87] => m0_debugaccess.DATAIN +cp_data[88] => ~NO_FANOUT~ +cp_data[89] => ~NO_FANOUT~ +cp_data[90] => rf_source_data[90].DATAIN +cp_data[91] => rf_source_data[91].DATAIN +cp_data[92] => rf_source_data[92].DATAIN +cp_data[93] => rf_source_data[93].DATAIN +cp_data[94] => rf_source_data[94].DATAIN +cp_data[95] => rf_source_data[95].DATAIN +cp_channel[0] => ~NO_FANOUT~ +cp_channel[1] => ~NO_FANOUT~ +cp_channel[2] => ~NO_FANOUT~ +cp_channel[3] => ~NO_FANOUT~ +cp_channel[4] => ~NO_FANOUT~ +cp_channel[5] => ~NO_FANOUT~ +cp_channel[6] => ~NO_FANOUT~ +cp_channel[7] => ~NO_FANOUT~ +cp_channel[8] => ~NO_FANOUT~ +cp_channel[9] => ~NO_FANOUT~ +cp_channel[10] => ~NO_FANOUT~ +cp_channel[11] => ~NO_FANOUT~ +cp_channel[12] => ~NO_FANOUT~ +cp_channel[13] => ~NO_FANOUT~ +cp_channel[14] => ~NO_FANOUT~ +cp_channel[15] => ~NO_FANOUT~ +cp_channel[16] => ~NO_FANOUT~ +cp_channel[17] => ~NO_FANOUT~ +cp_startofpacket => rf_source_startofpacket.DATAIN +cp_endofpacket => nonposted_write_endofpacket.IN1 +cp_endofpacket => rf_source_endofpacket.DATAIN +rp_ready => rp_ready.IN1 +rp_valid <= rp_valid.DB_MAX_OUTPUT_PORT_TYPE +rp_data[0] <= rdata_fifo_sink_data[0].DB_MAX_OUTPUT_PORT_TYPE +rp_data[1] <= rdata_fifo_sink_data[1].DB_MAX_OUTPUT_PORT_TYPE +rp_data[2] <= rdata_fifo_sink_data[2].DB_MAX_OUTPUT_PORT_TYPE +rp_data[3] <= rdata_fifo_sink_data[3].DB_MAX_OUTPUT_PORT_TYPE +rp_data[4] <= rdata_fifo_sink_data[4].DB_MAX_OUTPUT_PORT_TYPE +rp_data[5] <= rdata_fifo_sink_data[5].DB_MAX_OUTPUT_PORT_TYPE +rp_data[6] <= rdata_fifo_sink_data[6].DB_MAX_OUTPUT_PORT_TYPE +rp_data[7] <= rdata_fifo_sink_data[7].DB_MAX_OUTPUT_PORT_TYPE +rp_data[8] <= rdata_fifo_sink_data[8].DB_MAX_OUTPUT_PORT_TYPE +rp_data[9] <= rdata_fifo_sink_data[9].DB_MAX_OUTPUT_PORT_TYPE +rp_data[10] <= rdata_fifo_sink_data[10].DB_MAX_OUTPUT_PORT_TYPE +rp_data[11] <= rdata_fifo_sink_data[11].DB_MAX_OUTPUT_PORT_TYPE +rp_data[12] <= rdata_fifo_sink_data[12].DB_MAX_OUTPUT_PORT_TYPE +rp_data[13] <= rdata_fifo_sink_data[13].DB_MAX_OUTPUT_PORT_TYPE +rp_data[14] <= rdata_fifo_sink_data[14].DB_MAX_OUTPUT_PORT_TYPE +rp_data[15] <= rdata_fifo_sink_data[15].DB_MAX_OUTPUT_PORT_TYPE +rp_data[16] <= rdata_fifo_sink_data[16].DB_MAX_OUTPUT_PORT_TYPE +rp_data[17] <= rdata_fifo_sink_data[17].DB_MAX_OUTPUT_PORT_TYPE +rp_data[18] <= rdata_fifo_sink_data[18].DB_MAX_OUTPUT_PORT_TYPE +rp_data[19] <= rdata_fifo_sink_data[19].DB_MAX_OUTPUT_PORT_TYPE +rp_data[20] <= rdata_fifo_sink_data[20].DB_MAX_OUTPUT_PORT_TYPE +rp_data[21] <= rdata_fifo_sink_data[21].DB_MAX_OUTPUT_PORT_TYPE +rp_data[22] <= rdata_fifo_sink_data[22].DB_MAX_OUTPUT_PORT_TYPE +rp_data[23] <= rdata_fifo_sink_data[23].DB_MAX_OUTPUT_PORT_TYPE +rp_data[24] <= rdata_fifo_sink_data[24].DB_MAX_OUTPUT_PORT_TYPE +rp_data[25] <= rdata_fifo_sink_data[25].DB_MAX_OUTPUT_PORT_TYPE +rp_data[26] <= rdata_fifo_sink_data[26].DB_MAX_OUTPUT_PORT_TYPE +rp_data[27] <= rdata_fifo_sink_data[27].DB_MAX_OUTPUT_PORT_TYPE +rp_data[28] <= rdata_fifo_sink_data[28].DB_MAX_OUTPUT_PORT_TYPE +rp_data[29] <= rdata_fifo_sink_data[29].DB_MAX_OUTPUT_PORT_TYPE +rp_data[30] <= rdata_fifo_sink_data[30].DB_MAX_OUTPUT_PORT_TYPE +rp_data[31] <= rdata_fifo_sink_data[31].DB_MAX_OUTPUT_PORT_TYPE +rp_data[32] <= rf_sink_data[32].DB_MAX_OUTPUT_PORT_TYPE +rp_data[33] <= rf_sink_data[33].DB_MAX_OUTPUT_PORT_TYPE +rp_data[34] <= rf_sink_data[34].DB_MAX_OUTPUT_PORT_TYPE +rp_data[35] <= rf_sink_data[35].DB_MAX_OUTPUT_PORT_TYPE +rp_data[36] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[37] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[38] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[39] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[40] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[41] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[42] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[43] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[44] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[45] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[46] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[47] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[48] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[49] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[50] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[51] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[52] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[53] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[54] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[55] <= altera_merlin_burst_uncompressor:uncompressor.source_is_compressed +rp_data[56] <= rf_sink_data[56].DB_MAX_OUTPUT_PORT_TYPE +rp_data[57] <= rf_sink_data[57].DB_MAX_OUTPUT_PORT_TYPE +rp_data[58] <= rp_data.DB_MAX_OUTPUT_PORT_TYPE +rp_data[59] <= rf_sink_data[59].DB_MAX_OUTPUT_PORT_TYPE +rp_data[60] <= rf_sink_data[60].DB_MAX_OUTPUT_PORT_TYPE +rp_data[61] <= altera_merlin_burst_uncompressor:uncompressor.source_byte_cnt +rp_data[62] <= altera_merlin_burst_uncompressor:uncompressor.source_byte_cnt +rp_data[63] <= altera_merlin_burst_uncompressor:uncompressor.source_byte_cnt +rp_data[64] <= altera_merlin_burst_uncompressor:uncompressor.source_burstwrap +rp_data[65] <= altera_merlin_burst_uncompressor:uncompressor.source_burstwrap +rp_data[66] <= altera_merlin_burst_uncompressor:uncompressor.source_burstwrap +rp_data[67] <= altera_merlin_burst_uncompressor:uncompressor.source_burstsize +rp_data[68] <= altera_merlin_burst_uncompressor:uncompressor.source_burstsize +rp_data[69] <= altera_merlin_burst_uncompressor:uncompressor.source_burstsize +rp_data[70] <= rf_sink_data[70].DB_MAX_OUTPUT_PORT_TYPE +rp_data[71] <= rf_sink_data[71].DB_MAX_OUTPUT_PORT_TYPE +rp_data[72] <= rf_sink_data[72].DB_MAX_OUTPUT_PORT_TYPE +rp_data[73] <= rf_sink_data[73].DB_MAX_OUTPUT_PORT_TYPE +rp_data[74] <= rf_sink_data[74].DB_MAX_OUTPUT_PORT_TYPE +rp_data[75] <= rf_sink_data[75].DB_MAX_OUTPUT_PORT_TYPE +rp_data[76] <= rf_sink_data[81].DB_MAX_OUTPUT_PORT_TYPE +rp_data[77] <= rf_sink_data[82].DB_MAX_OUTPUT_PORT_TYPE +rp_data[78] <= rf_sink_data[83].DB_MAX_OUTPUT_PORT_TYPE +rp_data[79] <= rf_sink_data[84].DB_MAX_OUTPUT_PORT_TYPE +rp_data[80] <= rf_sink_data[85].DB_MAX_OUTPUT_PORT_TYPE +rp_data[81] <= rf_sink_data[76].DB_MAX_OUTPUT_PORT_TYPE +rp_data[82] <= rf_sink_data[77].DB_MAX_OUTPUT_PORT_TYPE +rp_data[83] <= rf_sink_data[78].DB_MAX_OUTPUT_PORT_TYPE +rp_data[84] <= rf_sink_data[79].DB_MAX_OUTPUT_PORT_TYPE +rp_data[85] <= rf_sink_data[80].DB_MAX_OUTPUT_PORT_TYPE +rp_data[86] <= rf_sink_data[86].DB_MAX_OUTPUT_PORT_TYPE +rp_data[87] <= rf_sink_data[87].DB_MAX_OUTPUT_PORT_TYPE +rp_data[88] <= rf_sink_data[88].DB_MAX_OUTPUT_PORT_TYPE +rp_data[89] <= rf_sink_data[89].DB_MAX_OUTPUT_PORT_TYPE +rp_data[90] <= rf_sink_data[90].DB_MAX_OUTPUT_PORT_TYPE +rp_data[91] <= rf_sink_data[91].DB_MAX_OUTPUT_PORT_TYPE +rp_data[92] <= rf_sink_data[92].DB_MAX_OUTPUT_PORT_TYPE +rp_data[93] <= rf_sink_data[93].DB_MAX_OUTPUT_PORT_TYPE +rp_data[94] <= rdata_fifo_sink_data[32].DB_MAX_OUTPUT_PORT_TYPE +rp_data[95] <= rdata_fifo_sink_data[33].DB_MAX_OUTPUT_PORT_TYPE +rp_startofpacket <= altera_merlin_burst_uncompressor:uncompressor.source_startofpacket +rp_endofpacket <= altera_merlin_burst_uncompressor:uncompressor.source_endofpacket + + +|lights|nios_system:NiosII|altera_merlin_slave_agent:lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor +clk => burst_uncompress_address_offset[0].CLK +clk => burst_uncompress_address_offset[1].CLK +clk => burst_uncompress_address_offset[2].CLK +clk => burst_uncompress_address_offset[3].CLK +clk => burst_uncompress_address_offset[4].CLK +clk => burst_uncompress_address_offset[5].CLK +clk => burst_uncompress_address_offset[6].CLK +clk => burst_uncompress_address_offset[7].CLK +clk => burst_uncompress_address_offset[8].CLK +clk => burst_uncompress_address_offset[9].CLK +clk => burst_uncompress_address_offset[10].CLK +clk => burst_uncompress_address_offset[11].CLK +clk => burst_uncompress_address_offset[12].CLK +clk => burst_uncompress_address_offset[13].CLK +clk => burst_uncompress_address_offset[14].CLK +clk => burst_uncompress_address_offset[15].CLK +clk => burst_uncompress_address_offset[16].CLK +clk => burst_uncompress_address_offset[17].CLK +clk => burst_uncompress_address_offset[18].CLK +clk => burst_uncompress_address_base[0].CLK +clk => burst_uncompress_address_base[1].CLK +clk => burst_uncompress_address_base[2].CLK +clk => burst_uncompress_address_base[3].CLK +clk => burst_uncompress_address_base[4].CLK +clk => burst_uncompress_address_base[5].CLK +clk => burst_uncompress_address_base[6].CLK +clk => burst_uncompress_address_base[7].CLK +clk => burst_uncompress_address_base[8].CLK +clk => burst_uncompress_address_base[9].CLK +clk => burst_uncompress_address_base[10].CLK +clk => burst_uncompress_address_base[11].CLK +clk => burst_uncompress_address_base[12].CLK +clk => burst_uncompress_address_base[13].CLK +clk => burst_uncompress_address_base[14].CLK +clk => burst_uncompress_address_base[15].CLK +clk => burst_uncompress_address_base[16].CLK +clk => burst_uncompress_address_base[17].CLK +clk => burst_uncompress_address_base[18].CLK +clk => burst_uncompress_byte_counter[0].CLK +clk => burst_uncompress_byte_counter[1].CLK +clk => burst_uncompress_byte_counter[2].CLK +clk => burst_uncompress_busy.CLK +reset => burst_uncompress_address_offset[0].ACLR +reset => burst_uncompress_address_offset[1].ACLR +reset => burst_uncompress_address_offset[2].ACLR +reset => burst_uncompress_address_offset[3].ACLR +reset => burst_uncompress_address_offset[4].ACLR +reset => burst_uncompress_address_offset[5].ACLR +reset => burst_uncompress_address_offset[6].ACLR +reset => burst_uncompress_address_offset[7].ACLR +reset => burst_uncompress_address_offset[8].ACLR +reset => burst_uncompress_address_offset[9].ACLR +reset => burst_uncompress_address_offset[10].ACLR +reset => burst_uncompress_address_offset[11].ACLR +reset => burst_uncompress_address_offset[12].ACLR +reset => burst_uncompress_address_offset[13].ACLR +reset => burst_uncompress_address_offset[14].ACLR +reset => burst_uncompress_address_offset[15].ACLR +reset => burst_uncompress_address_offset[16].ACLR +reset => burst_uncompress_address_offset[17].ACLR +reset => burst_uncompress_address_offset[18].ACLR +reset => burst_uncompress_address_base[0].ACLR +reset => burst_uncompress_address_base[1].ACLR +reset => burst_uncompress_address_base[2].ACLR +reset => burst_uncompress_address_base[3].ACLR +reset => burst_uncompress_address_base[4].ACLR +reset => burst_uncompress_address_base[5].ACLR +reset => burst_uncompress_address_base[6].ACLR +reset => burst_uncompress_address_base[7].ACLR +reset => burst_uncompress_address_base[8].ACLR +reset => burst_uncompress_address_base[9].ACLR +reset => burst_uncompress_address_base[10].ACLR +reset => burst_uncompress_address_base[11].ACLR +reset => burst_uncompress_address_base[12].ACLR +reset => burst_uncompress_address_base[13].ACLR +reset => burst_uncompress_address_base[14].ACLR +reset => burst_uncompress_address_base[15].ACLR +reset => burst_uncompress_address_base[16].ACLR +reset => burst_uncompress_address_base[17].ACLR +reset => burst_uncompress_address_base[18].ACLR +reset => burst_uncompress_byte_counter[0].ACLR +reset => burst_uncompress_byte_counter[1].ACLR +reset => burst_uncompress_byte_counter[2].ACLR +reset => burst_uncompress_busy.ACLR +sink_startofpacket => source_startofpacket.IN1 +sink_endofpacket => source_endofpacket.IN1 +sink_valid => first_packet_beat.IN1 +sink_valid => last_packet_beat.IN1 +sink_valid => last_packet_beat.IN1 +sink_valid => always0.IN1 +sink_valid => sink_ready.IN0 +sink_valid => source_valid.DATAIN +sink_ready <= sink_ready.DB_MAX_OUTPUT_PORT_TYPE +sink_addr[0] => burst_uncompress_address_base.IN0 +sink_addr[0] => comb.DATAB +sink_addr[0] => source_addr.DATAB +sink_addr[1] => burst_uncompress_address_base.IN0 +sink_addr[1] => comb.DATAB +sink_addr[1] => source_addr.DATAB +sink_addr[2] => burst_uncompress_address_base.IN0 +sink_addr[2] => comb.DATAB +sink_addr[2] => source_addr.DATAB +sink_addr[3] => burst_uncompress_address_base.IN0 +sink_addr[3] => comb.DATAB +sink_addr[3] => source_addr.DATAB +sink_addr[4] => burst_uncompress_address_base.IN0 +sink_addr[4] => comb.DATAB +sink_addr[4] => source_addr.DATAB +sink_addr[5] => burst_uncompress_address_base.IN0 +sink_addr[5] => comb.DATAB +sink_addr[5] => source_addr.DATAB +sink_addr[6] => burst_uncompress_address_base.IN0 +sink_addr[6] => comb.DATAB +sink_addr[6] => source_addr.DATAB +sink_addr[7] => burst_uncompress_address_base.IN0 +sink_addr[7] => comb.DATAB +sink_addr[7] => source_addr.DATAB +sink_addr[8] => burst_uncompress_address_base.IN0 +sink_addr[8] => comb.DATAB +sink_addr[8] => source_addr.DATAB +sink_addr[9] => burst_uncompress_address_base.IN0 +sink_addr[9] => comb.DATAB +sink_addr[9] => source_addr.DATAB +sink_addr[10] => burst_uncompress_address_base.IN0 +sink_addr[10] => comb.DATAB +sink_addr[10] => source_addr.DATAB +sink_addr[11] => burst_uncompress_address_base.IN0 +sink_addr[11] => comb.DATAB +sink_addr[11] => source_addr.DATAB +sink_addr[12] => burst_uncompress_address_base.IN0 +sink_addr[12] => comb.DATAB +sink_addr[12] => source_addr.DATAB +sink_addr[13] => burst_uncompress_address_base.IN0 +sink_addr[13] => comb.DATAB +sink_addr[13] => source_addr.DATAB +sink_addr[14] => burst_uncompress_address_base.IN0 +sink_addr[14] => comb.DATAB +sink_addr[14] => source_addr.DATAB +sink_addr[15] => burst_uncompress_address_base.IN0 +sink_addr[15] => comb.DATAB +sink_addr[15] => source_addr.DATAB +sink_addr[16] => burst_uncompress_address_base.IN0 +sink_addr[16] => comb.DATAB +sink_addr[16] => source_addr.DATAB +sink_addr[17] => burst_uncompress_address_base.IN0 +sink_addr[17] => comb.DATAB +sink_addr[17] => source_addr.DATAB +sink_addr[18] => burst_uncompress_address_base.IN0 +sink_addr[18] => comb.DATAB +sink_addr[18] => source_addr.DATAB +sink_burstwrap[0] => p1_burst_uncompress_address_offset[0].IN1 +sink_burstwrap[0] => source_burstwrap[0].DATAIN +sink_burstwrap[0] => burst_uncompress_address_base.IN1 +sink_burstwrap[1] => p1_burst_uncompress_address_offset[1].IN1 +sink_burstwrap[1] => source_burstwrap[1].DATAIN +sink_burstwrap[1] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[2].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[18].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[17].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[16].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[15].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[14].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[13].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[12].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[11].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[10].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[9].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[8].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[7].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[6].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[5].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[4].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[3].IN1 +sink_burstwrap[2] => source_burstwrap[2].DATAIN +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_byte_cnt[0] => source_byte_cnt.DATAB +sink_byte_cnt[0] => Add1.IN6 +sink_byte_cnt[0] => Equal1.IN2 +sink_byte_cnt[1] => source_byte_cnt.DATAB +sink_byte_cnt[1] => Add1.IN5 +sink_byte_cnt[1] => Equal1.IN1 +sink_byte_cnt[2] => source_byte_cnt.DATAB +sink_byte_cnt[2] => Add1.IN4 +sink_byte_cnt[2] => Equal1.IN0 +sink_is_compressed => last_packet_beat.IN1 +sink_burstsize[0] => Decoder0.IN2 +sink_burstsize[0] => source_burstsize[0].DATAIN +sink_burstsize[1] => Decoder0.IN1 +sink_burstsize[1] => source_burstsize[1].DATAIN +sink_burstsize[2] => Decoder0.IN0 +sink_burstsize[2] => source_burstsize[2].DATAIN +source_startofpacket <= source_startofpacket.DB_MAX_OUTPUT_PORT_TYPE +source_endofpacket <= source_endofpacket.DB_MAX_OUTPUT_PORT_TYPE +source_valid <= sink_valid.DB_MAX_OUTPUT_PORT_TYPE +source_ready => always1.IN1 +source_ready => sink_ready.IN1 +source_addr[0] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[1] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[2] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[3] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[4] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[5] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[6] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[7] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[8] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[9] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[10] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[11] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[12] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[13] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[14] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[15] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[16] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[17] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[18] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_burstwrap[0] <= sink_burstwrap[0].DB_MAX_OUTPUT_PORT_TYPE +source_burstwrap[1] <= sink_burstwrap[1].DB_MAX_OUTPUT_PORT_TYPE +source_burstwrap[2] <= sink_burstwrap[2].DB_MAX_OUTPUT_PORT_TYPE +source_byte_cnt[0] <= source_byte_cnt.DB_MAX_OUTPUT_PORT_TYPE +source_byte_cnt[1] <= source_byte_cnt.DB_MAX_OUTPUT_PORT_TYPE +source_byte_cnt[2] <= source_byte_cnt.DB_MAX_OUTPUT_PORT_TYPE +source_is_compressed <= +source_burstsize[0] <= sink_burstsize[0].DB_MAX_OUTPUT_PORT_TYPE +source_burstsize[1] <= sink_burstsize[1].DB_MAX_OUTPUT_PORT_TYPE +source_burstsize[2] <= sink_burstsize[2].DB_MAX_OUTPUT_PORT_TYPE + + +|lights|nios_system:NiosII|altera_avalon_sc_fifo:lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rsp_fifo +clk => csr_readdata[0]~reg0.CLK +clk => csr_readdata[1]~reg0.CLK +clk => csr_readdata[2]~reg0.CLK +clk => csr_readdata[3]~reg0.CLK +clk => csr_readdata[4]~reg0.CLK +clk => csr_readdata[5]~reg0.CLK +clk => csr_readdata[6]~reg0.CLK +clk => csr_readdata[7]~reg0.CLK +clk => csr_readdata[8]~reg0.CLK +clk => csr_readdata[9]~reg0.CLK +clk => csr_readdata[10]~reg0.CLK +clk => csr_readdata[11]~reg0.CLK +clk => csr_readdata[12]~reg0.CLK +clk => csr_readdata[13]~reg0.CLK +clk => csr_readdata[14]~reg0.CLK +clk => csr_readdata[15]~reg0.CLK +clk => csr_readdata[16]~reg0.CLK +clk => csr_readdata[17]~reg0.CLK +clk => csr_readdata[18]~reg0.CLK +clk => csr_readdata[19]~reg0.CLK +clk => csr_readdata[20]~reg0.CLK +clk => csr_readdata[21]~reg0.CLK +clk => csr_readdata[22]~reg0.CLK +clk => csr_readdata[23]~reg0.CLK +clk => csr_readdata[24]~reg0.CLK +clk => csr_readdata[25]~reg0.CLK +clk => csr_readdata[26]~reg0.CLK +clk => csr_readdata[27]~reg0.CLK +clk => csr_readdata[28]~reg0.CLK +clk => csr_readdata[29]~reg0.CLK +clk => csr_readdata[30]~reg0.CLK +clk => csr_readdata[31]~reg0.CLK +clk => mem_used[1].CLK +clk => mem_used[0].CLK +clk => mem[1][0].CLK +clk => mem[1][1].CLK +clk => mem[1][2].CLK +clk => mem[1][3].CLK +clk => mem[1][4].CLK +clk => mem[1][5].CLK +clk => mem[1][6].CLK +clk => mem[1][7].CLK +clk => mem[1][8].CLK +clk => mem[1][9].CLK +clk => mem[1][10].CLK +clk => mem[1][11].CLK +clk => mem[1][12].CLK +clk => mem[1][13].CLK +clk => mem[1][14].CLK +clk => mem[1][15].CLK +clk => mem[1][16].CLK +clk => mem[1][17].CLK +clk => mem[1][18].CLK +clk => mem[1][19].CLK +clk => mem[1][20].CLK +clk => mem[1][21].CLK +clk => mem[1][22].CLK +clk => mem[1][23].CLK +clk => mem[1][24].CLK +clk => mem[1][25].CLK +clk => mem[1][26].CLK +clk => mem[1][27].CLK +clk => mem[1][28].CLK +clk => mem[1][29].CLK +clk => mem[1][30].CLK +clk => mem[1][31].CLK +clk => mem[1][32].CLK +clk => mem[1][33].CLK +clk => mem[1][34].CLK +clk => mem[1][35].CLK +clk => mem[1][36].CLK +clk => mem[1][37].CLK +clk => mem[1][38].CLK +clk => mem[1][39].CLK +clk => mem[1][40].CLK +clk => mem[1][41].CLK +clk => mem[1][42].CLK +clk => mem[1][43].CLK +clk => mem[1][44].CLK +clk => mem[1][45].CLK +clk => mem[1][46].CLK +clk => mem[1][47].CLK +clk => mem[1][48].CLK +clk => mem[1][49].CLK +clk => mem[1][50].CLK +clk => mem[1][51].CLK +clk => mem[1][52].CLK +clk => mem[1][53].CLK +clk => mem[1][54].CLK +clk => mem[1][55].CLK +clk => mem[1][56].CLK +clk => mem[1][57].CLK +clk => mem[1][58].CLK +clk => mem[1][59].CLK +clk => mem[1][60].CLK +clk => mem[1][61].CLK +clk => mem[1][62].CLK +clk => mem[1][63].CLK +clk => mem[1][64].CLK +clk => mem[1][65].CLK +clk => mem[1][66].CLK +clk => mem[1][67].CLK +clk => mem[1][68].CLK +clk => mem[1][69].CLK +clk => mem[1][70].CLK +clk => mem[1][71].CLK +clk => mem[1][72].CLK +clk => mem[1][73].CLK +clk => mem[1][74].CLK +clk => mem[1][75].CLK +clk => mem[1][76].CLK +clk => mem[1][77].CLK +clk => mem[1][78].CLK +clk => mem[1][79].CLK +clk => mem[1][80].CLK +clk => mem[1][81].CLK +clk => mem[1][82].CLK +clk => mem[1][83].CLK +clk => mem[1][84].CLK +clk => mem[1][85].CLK +clk => mem[1][86].CLK +clk => mem[1][87].CLK +clk => mem[1][88].CLK +clk => mem[1][89].CLK +clk => mem[1][90].CLK +clk => mem[1][91].CLK +clk => mem[1][92].CLK +clk => mem[1][93].CLK +clk => mem[1][94].CLK +clk => mem[1][95].CLK +clk => mem[1][96].CLK +clk => mem[1][97].CLK +clk => mem[1][98].CLK +clk => mem[0][0].CLK +clk => mem[0][1].CLK +clk => mem[0][2].CLK +clk => mem[0][3].CLK +clk => mem[0][4].CLK +clk => mem[0][5].CLK +clk => mem[0][6].CLK +clk => mem[0][7].CLK +clk => mem[0][8].CLK +clk => mem[0][9].CLK +clk => mem[0][10].CLK +clk => mem[0][11].CLK +clk => mem[0][12].CLK +clk => mem[0][13].CLK +clk => mem[0][14].CLK +clk => mem[0][15].CLK +clk => mem[0][16].CLK +clk => mem[0][17].CLK +clk => mem[0][18].CLK +clk => mem[0][19].CLK +clk => mem[0][20].CLK +clk => mem[0][21].CLK +clk => mem[0][22].CLK +clk => mem[0][23].CLK +clk => mem[0][24].CLK +clk => mem[0][25].CLK +clk => mem[0][26].CLK +clk => mem[0][27].CLK +clk => mem[0][28].CLK +clk => mem[0][29].CLK +clk => mem[0][30].CLK +clk => mem[0][31].CLK +clk => mem[0][32].CLK +clk => mem[0][33].CLK +clk => mem[0][34].CLK +clk => mem[0][35].CLK +clk => mem[0][36].CLK +clk => mem[0][37].CLK +clk => mem[0][38].CLK +clk => mem[0][39].CLK +clk => mem[0][40].CLK +clk => mem[0][41].CLK +clk => mem[0][42].CLK +clk => mem[0][43].CLK +clk => mem[0][44].CLK +clk => mem[0][45].CLK +clk => mem[0][46].CLK +clk => mem[0][47].CLK +clk => mem[0][48].CLK +clk => mem[0][49].CLK +clk => mem[0][50].CLK +clk => mem[0][51].CLK +clk => mem[0][52].CLK +clk => mem[0][53].CLK +clk => mem[0][54].CLK +clk => mem[0][55].CLK +clk => mem[0][56].CLK +clk => mem[0][57].CLK +clk => mem[0][58].CLK +clk => mem[0][59].CLK +clk => mem[0][60].CLK +clk => mem[0][61].CLK +clk => mem[0][62].CLK +clk => mem[0][63].CLK +clk => mem[0][64].CLK +clk => mem[0][65].CLK +clk => mem[0][66].CLK +clk => mem[0][67].CLK +clk => mem[0][68].CLK +clk => mem[0][69].CLK +clk => mem[0][70].CLK +clk => mem[0][71].CLK +clk => mem[0][72].CLK +clk => mem[0][73].CLK +clk => mem[0][74].CLK +clk => mem[0][75].CLK +clk => mem[0][76].CLK +clk => mem[0][77].CLK +clk => mem[0][78].CLK +clk => mem[0][79].CLK +clk => mem[0][80].CLK +clk => mem[0][81].CLK +clk => mem[0][82].CLK +clk => mem[0][83].CLK +clk => mem[0][84].CLK +clk => mem[0][85].CLK +clk => mem[0][86].CLK +clk => mem[0][87].CLK +clk => mem[0][88].CLK +clk => mem[0][89].CLK +clk => mem[0][90].CLK +clk => mem[0][91].CLK +clk => mem[0][92].CLK +clk => mem[0][93].CLK +clk => mem[0][94].CLK +clk => mem[0][95].CLK +clk => mem[0][96].CLK +clk => mem[0][97].CLK +clk => mem[0][98].CLK +reset => csr_readdata[0]~reg0.ACLR +reset => csr_readdata[1]~reg0.ACLR +reset => csr_readdata[2]~reg0.ACLR +reset => csr_readdata[3]~reg0.ACLR +reset => csr_readdata[4]~reg0.ACLR +reset => csr_readdata[5]~reg0.ACLR +reset => csr_readdata[6]~reg0.ACLR +reset => csr_readdata[7]~reg0.ACLR +reset => csr_readdata[8]~reg0.ACLR +reset => csr_readdata[9]~reg0.ACLR +reset => csr_readdata[10]~reg0.ACLR +reset => csr_readdata[11]~reg0.ACLR +reset => csr_readdata[12]~reg0.ACLR +reset => csr_readdata[13]~reg0.ACLR +reset => csr_readdata[14]~reg0.ACLR +reset => csr_readdata[15]~reg0.ACLR +reset => csr_readdata[16]~reg0.ACLR +reset => csr_readdata[17]~reg0.ACLR +reset => csr_readdata[18]~reg0.ACLR +reset => csr_readdata[19]~reg0.ACLR +reset => csr_readdata[20]~reg0.ACLR +reset => csr_readdata[21]~reg0.ACLR +reset => csr_readdata[22]~reg0.ACLR +reset => csr_readdata[23]~reg0.ACLR +reset => csr_readdata[24]~reg0.ACLR +reset => csr_readdata[25]~reg0.ACLR +reset => csr_readdata[26]~reg0.ACLR +reset => csr_readdata[27]~reg0.ACLR +reset => csr_readdata[28]~reg0.ACLR +reset => csr_readdata[29]~reg0.ACLR +reset => csr_readdata[30]~reg0.ACLR +reset => csr_readdata[31]~reg0.ACLR +reset => mem_used[1].ACLR +reset => mem_used[0].ACLR +reset => mem[1][0].ACLR +reset => mem[1][1].ACLR +reset => mem[1][2].ACLR +reset => mem[1][3].ACLR +reset => mem[1][4].ACLR +reset => mem[1][5].ACLR +reset => mem[1][6].ACLR +reset => mem[1][7].ACLR +reset => mem[1][8].ACLR +reset => mem[1][9].ACLR +reset => mem[1][10].ACLR +reset => mem[1][11].ACLR +reset => mem[1][12].ACLR +reset => mem[1][13].ACLR +reset => mem[1][14].ACLR +reset => mem[1][15].ACLR +reset => mem[1][16].ACLR +reset => mem[1][17].ACLR +reset => mem[1][18].ACLR +reset => mem[1][19].ACLR +reset => mem[1][20].ACLR +reset => mem[1][21].ACLR +reset => mem[1][22].ACLR +reset => mem[1][23].ACLR +reset => mem[1][24].ACLR +reset => mem[1][25].ACLR +reset => mem[1][26].ACLR +reset => mem[1][27].ACLR +reset => mem[1][28].ACLR +reset => mem[1][29].ACLR +reset => mem[1][30].ACLR +reset => mem[1][31].ACLR +reset => mem[1][32].ACLR +reset => mem[1][33].ACLR +reset => mem[1][34].ACLR +reset => mem[1][35].ACLR +reset => mem[1][36].ACLR +reset => mem[1][37].ACLR +reset => mem[1][38].ACLR +reset => mem[1][39].ACLR +reset => mem[1][40].ACLR +reset => mem[1][41].ACLR +reset => mem[1][42].ACLR +reset => mem[1][43].ACLR +reset => mem[1][44].ACLR +reset => mem[1][45].ACLR +reset => mem[1][46].ACLR +reset => mem[1][47].ACLR +reset => mem[1][48].ACLR +reset => mem[1][49].ACLR +reset => mem[1][50].ACLR +reset => mem[1][51].ACLR +reset => mem[1][52].ACLR +reset => mem[1][53].ACLR +reset => mem[1][54].ACLR +reset => mem[1][55].ACLR +reset => mem[1][56].ACLR +reset => mem[1][57].ACLR +reset => mem[1][58].ACLR +reset => mem[1][59].ACLR +reset => mem[1][60].ACLR +reset => mem[1][61].ACLR +reset => mem[1][62].ACLR +reset => mem[1][63].ACLR +reset => mem[1][64].ACLR +reset => mem[1][65].ACLR +reset => mem[1][66].ACLR +reset => mem[1][67].ACLR +reset => mem[1][68].ACLR +reset => mem[1][69].ACLR +reset => mem[1][70].ACLR +reset => mem[1][71].ACLR +reset => mem[1][72].ACLR +reset => mem[1][73].ACLR +reset => mem[1][74].ACLR +reset => mem[1][75].ACLR +reset => mem[1][76].ACLR +reset => mem[1][77].ACLR +reset => mem[1][78].ACLR +reset => mem[1][79].ACLR +reset => mem[1][80].ACLR +reset => mem[1][81].ACLR +reset => mem[1][82].ACLR +reset => mem[1][83].ACLR +reset => mem[1][84].ACLR +reset => mem[1][85].ACLR +reset => mem[1][86].ACLR +reset => mem[1][87].ACLR +reset => mem[1][88].ACLR +reset => mem[1][89].ACLR +reset => mem[1][90].ACLR +reset => mem[1][91].ACLR +reset => mem[1][92].ACLR +reset => mem[1][93].ACLR +reset => mem[1][94].ACLR +reset => mem[1][95].ACLR +reset => mem[1][96].ACLR +reset => mem[1][97].ACLR +reset => mem[1][98].ACLR +reset => mem[0][0].ACLR +reset => mem[0][1].ACLR +reset => mem[0][2].ACLR +reset => mem[0][3].ACLR +reset => mem[0][4].ACLR +reset => mem[0][5].ACLR +reset => mem[0][6].ACLR +reset => mem[0][7].ACLR +reset => mem[0][8].ACLR +reset => mem[0][9].ACLR +reset => mem[0][10].ACLR +reset => mem[0][11].ACLR +reset => mem[0][12].ACLR +reset => mem[0][13].ACLR +reset => mem[0][14].ACLR +reset => mem[0][15].ACLR +reset => mem[0][16].ACLR +reset => mem[0][17].ACLR +reset => mem[0][18].ACLR +reset => mem[0][19].ACLR +reset => mem[0][20].ACLR +reset => mem[0][21].ACLR +reset => mem[0][22].ACLR +reset => mem[0][23].ACLR +reset => mem[0][24].ACLR +reset => mem[0][25].ACLR +reset => mem[0][26].ACLR +reset => mem[0][27].ACLR +reset => mem[0][28].ACLR +reset => mem[0][29].ACLR +reset => mem[0][30].ACLR +reset => mem[0][31].ACLR +reset => mem[0][32].ACLR +reset => mem[0][33].ACLR +reset => mem[0][34].ACLR +reset => mem[0][35].ACLR +reset => mem[0][36].ACLR +reset => mem[0][37].ACLR +reset => mem[0][38].ACLR +reset => mem[0][39].ACLR +reset => mem[0][40].ACLR +reset => mem[0][41].ACLR +reset => mem[0][42].ACLR +reset => mem[0][43].ACLR +reset => mem[0][44].ACLR +reset => mem[0][45].ACLR +reset => mem[0][46].ACLR +reset => mem[0][47].ACLR +reset => mem[0][48].ACLR +reset => mem[0][49].ACLR +reset => mem[0][50].ACLR +reset => mem[0][51].ACLR +reset => mem[0][52].ACLR +reset => mem[0][53].ACLR +reset => mem[0][54].ACLR +reset => mem[0][55].ACLR +reset => mem[0][56].ACLR +reset => mem[0][57].ACLR +reset => mem[0][58].ACLR +reset => mem[0][59].ACLR +reset => mem[0][60].ACLR +reset => mem[0][61].ACLR +reset => mem[0][62].ACLR +reset => mem[0][63].ACLR +reset => mem[0][64].ACLR +reset => mem[0][65].ACLR +reset => mem[0][66].ACLR +reset => mem[0][67].ACLR +reset => mem[0][68].ACLR +reset => mem[0][69].ACLR +reset => mem[0][70].ACLR +reset => mem[0][71].ACLR +reset => mem[0][72].ACLR +reset => mem[0][73].ACLR +reset => mem[0][74].ACLR +reset => mem[0][75].ACLR +reset => mem[0][76].ACLR +reset => mem[0][77].ACLR +reset => mem[0][78].ACLR +reset => mem[0][79].ACLR +reset => mem[0][80].ACLR +reset => mem[0][81].ACLR +reset => mem[0][82].ACLR +reset => mem[0][83].ACLR +reset => mem[0][84].ACLR +reset => mem[0][85].ACLR +reset => mem[0][86].ACLR +reset => mem[0][87].ACLR +reset => mem[0][88].ACLR +reset => mem[0][89].ACLR +reset => mem[0][90].ACLR +reset => mem[0][91].ACLR +reset => mem[0][92].ACLR +reset => mem[0][93].ACLR +reset => mem[0][94].ACLR +reset => mem[0][95].ACLR +reset => mem[0][96].ACLR +reset => mem[0][97].ACLR +reset => mem[0][98].ACLR +in_data[0] => mem.DATAB +in_data[1] => mem.DATAB +in_data[2] => mem.DATAB +in_data[3] => mem.DATAB +in_data[4] => mem.DATAB +in_data[5] => mem.DATAB +in_data[6] => mem.DATAB +in_data[7] => mem.DATAB +in_data[8] => mem.DATAB +in_data[9] => mem.DATAB +in_data[10] => mem.DATAB +in_data[11] => mem.DATAB +in_data[12] => mem.DATAB +in_data[13] => mem.DATAB +in_data[14] => mem.DATAB +in_data[15] => mem.DATAB +in_data[16] => mem.DATAB +in_data[17] => mem.DATAB +in_data[18] => mem.DATAB +in_data[19] => mem.DATAB +in_data[20] => mem.DATAB +in_data[21] => mem.DATAB +in_data[22] => mem.DATAB +in_data[23] => mem.DATAB +in_data[24] => mem.DATAB +in_data[25] => mem.DATAB +in_data[26] => mem.DATAB +in_data[27] => mem.DATAB +in_data[28] => mem.DATAB +in_data[29] => mem.DATAB +in_data[30] => mem.DATAB +in_data[31] => mem.DATAB +in_data[32] => mem.DATAB +in_data[33] => mem.DATAB +in_data[34] => mem.DATAB +in_data[35] => mem.DATAB +in_data[36] => mem.DATAB +in_data[37] => mem.DATAB +in_data[38] => mem.DATAB +in_data[39] => mem.DATAB +in_data[40] => mem.DATAB +in_data[41] => mem.DATAB +in_data[42] => mem.DATAB +in_data[43] => mem.DATAB +in_data[44] => mem.DATAB +in_data[45] => mem.DATAB +in_data[46] => mem.DATAB +in_data[47] => mem.DATAB +in_data[48] => mem.DATAB +in_data[49] => mem.DATAB +in_data[50] => mem.DATAB +in_data[51] => mem.DATAB +in_data[52] => mem.DATAB +in_data[53] => mem.DATAB +in_data[54] => mem.DATAB +in_data[55] => mem.DATAB +in_data[56] => mem.DATAB +in_data[57] => mem.DATAB +in_data[58] => mem.DATAB +in_data[59] => mem.DATAB +in_data[60] => mem.DATAB +in_data[61] => mem.DATAB +in_data[62] => mem.DATAB +in_data[63] => mem.DATAB +in_data[64] => mem.DATAB +in_data[65] => mem.DATAB +in_data[66] => mem.DATAB +in_data[67] => mem.DATAB +in_data[68] => mem.DATAB +in_data[69] => mem.DATAB +in_data[70] => mem.DATAB +in_data[71] => mem.DATAB +in_data[72] => mem.DATAB +in_data[73] => mem.DATAB +in_data[74] => mem.DATAB +in_data[75] => mem.DATAB +in_data[76] => mem.DATAB +in_data[77] => mem.DATAB +in_data[78] => mem.DATAB +in_data[79] => mem.DATAB +in_data[80] => mem.DATAB +in_data[81] => mem.DATAB +in_data[82] => mem.DATAB +in_data[83] => mem.DATAB +in_data[84] => mem.DATAB +in_data[85] => mem.DATAB +in_data[86] => mem.DATAB +in_data[87] => mem.DATAB +in_data[88] => mem.DATAB +in_data[89] => mem.DATAB +in_data[90] => mem.DATAB +in_data[91] => mem.DATAB +in_data[92] => mem.DATAB +in_data[93] => mem.DATAB +in_data[94] => mem.DATAB +in_data[95] => mem.DATAB +in_data[96] => mem.DATAB +in_valid => write.IN1 +in_startofpacket => mem.DATAB +in_endofpacket => mem.DATAB +in_empty[0] => ~NO_FANOUT~ +in_error[0] => out_error[0].DATAIN +in_error[0] => out_empty[0].DATAIN +in_channel[0] => out_channel[0].DATAIN +in_ready <= mem_used[1].DB_MAX_OUTPUT_PORT_TYPE +out_data[0] <= mem[0][0].DB_MAX_OUTPUT_PORT_TYPE +out_data[1] <= mem[0][1].DB_MAX_OUTPUT_PORT_TYPE +out_data[2] <= mem[0][2].DB_MAX_OUTPUT_PORT_TYPE +out_data[3] <= mem[0][3].DB_MAX_OUTPUT_PORT_TYPE +out_data[4] <= mem[0][4].DB_MAX_OUTPUT_PORT_TYPE +out_data[5] <= mem[0][5].DB_MAX_OUTPUT_PORT_TYPE +out_data[6] <= mem[0][6].DB_MAX_OUTPUT_PORT_TYPE +out_data[7] <= mem[0][7].DB_MAX_OUTPUT_PORT_TYPE +out_data[8] <= mem[0][8].DB_MAX_OUTPUT_PORT_TYPE +out_data[9] <= mem[0][9].DB_MAX_OUTPUT_PORT_TYPE +out_data[10] <= mem[0][10].DB_MAX_OUTPUT_PORT_TYPE +out_data[11] <= mem[0][11].DB_MAX_OUTPUT_PORT_TYPE +out_data[12] <= mem[0][12].DB_MAX_OUTPUT_PORT_TYPE +out_data[13] <= mem[0][13].DB_MAX_OUTPUT_PORT_TYPE +out_data[14] <= mem[0][14].DB_MAX_OUTPUT_PORT_TYPE +out_data[15] <= mem[0][15].DB_MAX_OUTPUT_PORT_TYPE +out_data[16] <= mem[0][16].DB_MAX_OUTPUT_PORT_TYPE +out_data[17] <= mem[0][17].DB_MAX_OUTPUT_PORT_TYPE +out_data[18] <= mem[0][18].DB_MAX_OUTPUT_PORT_TYPE +out_data[19] <= mem[0][19].DB_MAX_OUTPUT_PORT_TYPE +out_data[20] <= mem[0][20].DB_MAX_OUTPUT_PORT_TYPE +out_data[21] <= mem[0][21].DB_MAX_OUTPUT_PORT_TYPE +out_data[22] <= mem[0][22].DB_MAX_OUTPUT_PORT_TYPE +out_data[23] <= mem[0][23].DB_MAX_OUTPUT_PORT_TYPE +out_data[24] <= mem[0][24].DB_MAX_OUTPUT_PORT_TYPE +out_data[25] <= mem[0][25].DB_MAX_OUTPUT_PORT_TYPE +out_data[26] <= mem[0][26].DB_MAX_OUTPUT_PORT_TYPE +out_data[27] <= mem[0][27].DB_MAX_OUTPUT_PORT_TYPE +out_data[28] <= mem[0][28].DB_MAX_OUTPUT_PORT_TYPE +out_data[29] <= mem[0][29].DB_MAX_OUTPUT_PORT_TYPE +out_data[30] <= mem[0][30].DB_MAX_OUTPUT_PORT_TYPE +out_data[31] <= mem[0][31].DB_MAX_OUTPUT_PORT_TYPE +out_data[32] <= mem[0][32].DB_MAX_OUTPUT_PORT_TYPE +out_data[33] <= mem[0][33].DB_MAX_OUTPUT_PORT_TYPE +out_data[34] <= mem[0][34].DB_MAX_OUTPUT_PORT_TYPE +out_data[35] <= mem[0][35].DB_MAX_OUTPUT_PORT_TYPE +out_data[36] <= mem[0][36].DB_MAX_OUTPUT_PORT_TYPE +out_data[37] <= mem[0][37].DB_MAX_OUTPUT_PORT_TYPE +out_data[38] <= mem[0][38].DB_MAX_OUTPUT_PORT_TYPE +out_data[39] <= mem[0][39].DB_MAX_OUTPUT_PORT_TYPE +out_data[40] <= mem[0][40].DB_MAX_OUTPUT_PORT_TYPE +out_data[41] <= mem[0][41].DB_MAX_OUTPUT_PORT_TYPE +out_data[42] <= mem[0][42].DB_MAX_OUTPUT_PORT_TYPE +out_data[43] <= mem[0][43].DB_MAX_OUTPUT_PORT_TYPE +out_data[44] <= mem[0][44].DB_MAX_OUTPUT_PORT_TYPE +out_data[45] <= mem[0][45].DB_MAX_OUTPUT_PORT_TYPE +out_data[46] <= mem[0][46].DB_MAX_OUTPUT_PORT_TYPE +out_data[47] <= mem[0][47].DB_MAX_OUTPUT_PORT_TYPE +out_data[48] <= mem[0][48].DB_MAX_OUTPUT_PORT_TYPE +out_data[49] <= mem[0][49].DB_MAX_OUTPUT_PORT_TYPE +out_data[50] <= mem[0][50].DB_MAX_OUTPUT_PORT_TYPE +out_data[51] <= mem[0][51].DB_MAX_OUTPUT_PORT_TYPE +out_data[52] <= mem[0][52].DB_MAX_OUTPUT_PORT_TYPE +out_data[53] <= mem[0][53].DB_MAX_OUTPUT_PORT_TYPE +out_data[54] <= mem[0][54].DB_MAX_OUTPUT_PORT_TYPE +out_data[55] <= mem[0][55].DB_MAX_OUTPUT_PORT_TYPE +out_data[56] <= mem[0][56].DB_MAX_OUTPUT_PORT_TYPE +out_data[57] <= mem[0][57].DB_MAX_OUTPUT_PORT_TYPE +out_data[58] <= mem[0][58].DB_MAX_OUTPUT_PORT_TYPE +out_data[59] <= mem[0][59].DB_MAX_OUTPUT_PORT_TYPE +out_data[60] <= mem[0][60].DB_MAX_OUTPUT_PORT_TYPE +out_data[61] <= mem[0][61].DB_MAX_OUTPUT_PORT_TYPE +out_data[62] <= mem[0][62].DB_MAX_OUTPUT_PORT_TYPE +out_data[63] <= mem[0][63].DB_MAX_OUTPUT_PORT_TYPE +out_data[64] <= mem[0][64].DB_MAX_OUTPUT_PORT_TYPE +out_data[65] <= mem[0][65].DB_MAX_OUTPUT_PORT_TYPE +out_data[66] <= mem[0][66].DB_MAX_OUTPUT_PORT_TYPE +out_data[67] <= mem[0][67].DB_MAX_OUTPUT_PORT_TYPE +out_data[68] <= mem[0][68].DB_MAX_OUTPUT_PORT_TYPE +out_data[69] <= mem[0][69].DB_MAX_OUTPUT_PORT_TYPE +out_data[70] <= mem[0][70].DB_MAX_OUTPUT_PORT_TYPE +out_data[71] <= mem[0][71].DB_MAX_OUTPUT_PORT_TYPE +out_data[72] <= mem[0][72].DB_MAX_OUTPUT_PORT_TYPE +out_data[73] <= mem[0][73].DB_MAX_OUTPUT_PORT_TYPE +out_data[74] <= mem[0][74].DB_MAX_OUTPUT_PORT_TYPE +out_data[75] <= mem[0][75].DB_MAX_OUTPUT_PORT_TYPE +out_data[76] <= mem[0][76].DB_MAX_OUTPUT_PORT_TYPE +out_data[77] <= mem[0][77].DB_MAX_OUTPUT_PORT_TYPE +out_data[78] <= mem[0][78].DB_MAX_OUTPUT_PORT_TYPE +out_data[79] <= mem[0][79].DB_MAX_OUTPUT_PORT_TYPE +out_data[80] <= mem[0][80].DB_MAX_OUTPUT_PORT_TYPE +out_data[81] <= mem[0][81].DB_MAX_OUTPUT_PORT_TYPE +out_data[82] <= mem[0][82].DB_MAX_OUTPUT_PORT_TYPE +out_data[83] <= mem[0][83].DB_MAX_OUTPUT_PORT_TYPE +out_data[84] <= mem[0][84].DB_MAX_OUTPUT_PORT_TYPE +out_data[85] <= mem[0][85].DB_MAX_OUTPUT_PORT_TYPE +out_data[86] <= mem[0][86].DB_MAX_OUTPUT_PORT_TYPE +out_data[87] <= mem[0][87].DB_MAX_OUTPUT_PORT_TYPE +out_data[88] <= mem[0][88].DB_MAX_OUTPUT_PORT_TYPE +out_data[89] <= mem[0][89].DB_MAX_OUTPUT_PORT_TYPE +out_data[90] <= mem[0][90].DB_MAX_OUTPUT_PORT_TYPE +out_data[91] <= mem[0][91].DB_MAX_OUTPUT_PORT_TYPE +out_data[92] <= mem[0][92].DB_MAX_OUTPUT_PORT_TYPE +out_data[93] <= mem[0][93].DB_MAX_OUTPUT_PORT_TYPE +out_data[94] <= mem[0][94].DB_MAX_OUTPUT_PORT_TYPE +out_data[95] <= mem[0][95].DB_MAX_OUTPUT_PORT_TYPE +out_data[96] <= mem[0][96].DB_MAX_OUTPUT_PORT_TYPE +out_valid <= mem_used[0].DB_MAX_OUTPUT_PORT_TYPE +out_startofpacket <= mem[0][98].DB_MAX_OUTPUT_PORT_TYPE +out_endofpacket <= mem[0][97].DB_MAX_OUTPUT_PORT_TYPE +out_empty[0] <= in_error[0].DB_MAX_OUTPUT_PORT_TYPE +out_error[0] <= in_error[0].DB_MAX_OUTPUT_PORT_TYPE +out_channel[0] <= in_channel[0].DB_MAX_OUTPUT_PORT_TYPE +out_ready => internal_out_ready.IN1 +csr_address[0] => ~NO_FANOUT~ +csr_address[1] => ~NO_FANOUT~ +csr_write => ~NO_FANOUT~ +csr_read => csr_readdata[31]~reg0.ENA +csr_read => csr_readdata[30]~reg0.ENA +csr_read => csr_readdata[29]~reg0.ENA +csr_read => csr_readdata[28]~reg0.ENA +csr_read => csr_readdata[27]~reg0.ENA +csr_read => csr_readdata[26]~reg0.ENA +csr_read => csr_readdata[25]~reg0.ENA +csr_read => csr_readdata[24]~reg0.ENA +csr_read => csr_readdata[23]~reg0.ENA +csr_read => csr_readdata[22]~reg0.ENA +csr_read => csr_readdata[21]~reg0.ENA +csr_read => csr_readdata[20]~reg0.ENA +csr_read => csr_readdata[19]~reg0.ENA +csr_read => csr_readdata[18]~reg0.ENA +csr_read => csr_readdata[17]~reg0.ENA +csr_read => csr_readdata[16]~reg0.ENA +csr_read => csr_readdata[15]~reg0.ENA +csr_read => csr_readdata[14]~reg0.ENA +csr_read => csr_readdata[13]~reg0.ENA +csr_read => csr_readdata[12]~reg0.ENA +csr_read => csr_readdata[11]~reg0.ENA +csr_read => csr_readdata[10]~reg0.ENA +csr_read => csr_readdata[9]~reg0.ENA +csr_read => csr_readdata[8]~reg0.ENA +csr_read => csr_readdata[7]~reg0.ENA +csr_read => csr_readdata[6]~reg0.ENA +csr_read => csr_readdata[5]~reg0.ENA +csr_read => csr_readdata[4]~reg0.ENA +csr_read => csr_readdata[3]~reg0.ENA +csr_read => csr_readdata[2]~reg0.ENA +csr_read => csr_readdata[1]~reg0.ENA +csr_read => csr_readdata[0]~reg0.ENA +csr_writedata[0] => ~NO_FANOUT~ +csr_writedata[1] => ~NO_FANOUT~ +csr_writedata[2] => ~NO_FANOUT~ +csr_writedata[3] => ~NO_FANOUT~ +csr_writedata[4] => ~NO_FANOUT~ +csr_writedata[5] => ~NO_FANOUT~ +csr_writedata[6] => ~NO_FANOUT~ +csr_writedata[7] => ~NO_FANOUT~ +csr_writedata[8] => ~NO_FANOUT~ +csr_writedata[9] => ~NO_FANOUT~ +csr_writedata[10] => ~NO_FANOUT~ +csr_writedata[11] => ~NO_FANOUT~ +csr_writedata[12] => ~NO_FANOUT~ +csr_writedata[13] => ~NO_FANOUT~ +csr_writedata[14] => ~NO_FANOUT~ +csr_writedata[15] => ~NO_FANOUT~ +csr_writedata[16] => ~NO_FANOUT~ +csr_writedata[17] => ~NO_FANOUT~ +csr_writedata[18] => ~NO_FANOUT~ +csr_writedata[19] => ~NO_FANOUT~ +csr_writedata[20] => ~NO_FANOUT~ +csr_writedata[21] => ~NO_FANOUT~ +csr_writedata[22] => ~NO_FANOUT~ +csr_writedata[23] => ~NO_FANOUT~ +csr_writedata[24] => ~NO_FANOUT~ +csr_writedata[25] => ~NO_FANOUT~ +csr_writedata[26] => ~NO_FANOUT~ +csr_writedata[27] => ~NO_FANOUT~ +csr_writedata[28] => ~NO_FANOUT~ +csr_writedata[29] => ~NO_FANOUT~ +csr_writedata[30] => ~NO_FANOUT~ +csr_writedata[31] => ~NO_FANOUT~ +csr_readdata[0] <= csr_readdata[0]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[1] <= csr_readdata[1]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[2] <= csr_readdata[2]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[3] <= csr_readdata[3]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[4] <= csr_readdata[4]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[5] <= csr_readdata[5]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[6] <= csr_readdata[6]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[7] <= csr_readdata[7]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[8] <= csr_readdata[8]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[9] <= csr_readdata[9]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[10] <= csr_readdata[10]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[11] <= csr_readdata[11]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[12] <= csr_readdata[12]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[13] <= csr_readdata[13]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[14] <= csr_readdata[14]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[15] <= csr_readdata[15]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[16] <= csr_readdata[16]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[17] <= csr_readdata[17]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[18] <= csr_readdata[18]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[19] <= csr_readdata[19]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[20] <= csr_readdata[20]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[21] <= csr_readdata[21]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[22] <= csr_readdata[22]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[23] <= csr_readdata[23]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[24] <= csr_readdata[24]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[25] <= csr_readdata[25]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[26] <= csr_readdata[26]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[27] <= csr_readdata[27]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[28] <= csr_readdata[28]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[29] <= csr_readdata[29]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[30] <= csr_readdata[30]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[31] <= csr_readdata[31]~reg0.DB_MAX_OUTPUT_PORT_TYPE +almost_full_data <= +almost_empty_data <= + + +|lights|nios_system:NiosII|altera_merlin_slave_agent:lcd_on_s1_translator_avalon_universal_slave_0_agent +clk => clk.IN1 +reset => reset.IN1 +m0_address[0] <= +m0_address[1] <= +m0_address[2] <= cp_data[38].DB_MAX_OUTPUT_PORT_TYPE +m0_address[3] <= cp_data[39].DB_MAX_OUTPUT_PORT_TYPE +m0_address[4] <= cp_data[40].DB_MAX_OUTPUT_PORT_TYPE +m0_address[5] <= cp_data[41].DB_MAX_OUTPUT_PORT_TYPE +m0_address[6] <= cp_data[42].DB_MAX_OUTPUT_PORT_TYPE +m0_address[7] <= cp_data[43].DB_MAX_OUTPUT_PORT_TYPE +m0_address[8] <= cp_data[44].DB_MAX_OUTPUT_PORT_TYPE +m0_address[9] <= cp_data[45].DB_MAX_OUTPUT_PORT_TYPE +m0_address[10] <= cp_data[46].DB_MAX_OUTPUT_PORT_TYPE +m0_address[11] <= cp_data[47].DB_MAX_OUTPUT_PORT_TYPE +m0_address[12] <= cp_data[48].DB_MAX_OUTPUT_PORT_TYPE +m0_address[13] <= cp_data[49].DB_MAX_OUTPUT_PORT_TYPE +m0_address[14] <= cp_data[50].DB_MAX_OUTPUT_PORT_TYPE +m0_address[15] <= cp_data[51].DB_MAX_OUTPUT_PORT_TYPE +m0_address[16] <= cp_data[52].DB_MAX_OUTPUT_PORT_TYPE +m0_address[17] <= cp_data[53].DB_MAX_OUTPUT_PORT_TYPE +m0_address[18] <= cp_data[54].DB_MAX_OUTPUT_PORT_TYPE +m0_burstcount[0] <= m0_burstcount.DB_MAX_OUTPUT_PORT_TYPE +m0_burstcount[1] <= m0_burstcount.DB_MAX_OUTPUT_PORT_TYPE +m0_burstcount[2] <= m0_burstcount.DB_MAX_OUTPUT_PORT_TYPE +m0_byteenable[0] <= cp_data[32].DB_MAX_OUTPUT_PORT_TYPE +m0_byteenable[1] <= cp_data[33].DB_MAX_OUTPUT_PORT_TYPE +m0_byteenable[2] <= cp_data[34].DB_MAX_OUTPUT_PORT_TYPE +m0_byteenable[3] <= cp_data[35].DB_MAX_OUTPUT_PORT_TYPE +m0_read <= m0_read.DB_MAX_OUTPUT_PORT_TYPE +m0_readdata[0] => rdata_fifo_src_data[0].DATAIN +m0_readdata[1] => rdata_fifo_src_data[1].DATAIN +m0_readdata[2] => rdata_fifo_src_data[2].DATAIN +m0_readdata[3] => rdata_fifo_src_data[3].DATAIN +m0_readdata[4] => rdata_fifo_src_data[4].DATAIN +m0_readdata[5] => rdata_fifo_src_data[5].DATAIN +m0_readdata[6] => rdata_fifo_src_data[6].DATAIN +m0_readdata[7] => rdata_fifo_src_data[7].DATAIN +m0_readdata[8] => rdata_fifo_src_data[8].DATAIN +m0_readdata[9] => rdata_fifo_src_data[9].DATAIN +m0_readdata[10] => rdata_fifo_src_data[10].DATAIN +m0_readdata[11] => rdata_fifo_src_data[11].DATAIN +m0_readdata[12] => rdata_fifo_src_data[12].DATAIN +m0_readdata[13] => rdata_fifo_src_data[13].DATAIN +m0_readdata[14] => rdata_fifo_src_data[14].DATAIN +m0_readdata[15] => rdata_fifo_src_data[15].DATAIN +m0_readdata[16] => rdata_fifo_src_data[16].DATAIN +m0_readdata[17] => rdata_fifo_src_data[17].DATAIN +m0_readdata[18] => rdata_fifo_src_data[18].DATAIN +m0_readdata[19] => rdata_fifo_src_data[19].DATAIN +m0_readdata[20] => rdata_fifo_src_data[20].DATAIN +m0_readdata[21] => rdata_fifo_src_data[21].DATAIN +m0_readdata[22] => rdata_fifo_src_data[22].DATAIN +m0_readdata[23] => rdata_fifo_src_data[23].DATAIN +m0_readdata[24] => rdata_fifo_src_data[24].DATAIN +m0_readdata[25] => rdata_fifo_src_data[25].DATAIN +m0_readdata[26] => rdata_fifo_src_data[26].DATAIN +m0_readdata[27] => rdata_fifo_src_data[27].DATAIN +m0_readdata[28] => rdata_fifo_src_data[28].DATAIN +m0_readdata[29] => rdata_fifo_src_data[29].DATAIN +m0_readdata[30] => rdata_fifo_src_data[30].DATAIN +m0_readdata[31] => rdata_fifo_src_data[31].DATAIN +m0_waitrequest => cp_ready.IN0 +m0_write <= m0_write.DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[0] <= cp_data[0].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[1] <= cp_data[1].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[2] <= cp_data[2].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[3] <= cp_data[3].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[4] <= cp_data[4].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[5] <= cp_data[5].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[6] <= cp_data[6].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[7] <= cp_data[7].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[8] <= cp_data[8].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[9] <= cp_data[9].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[10] <= cp_data[10].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[11] <= cp_data[11].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[12] <= cp_data[12].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[13] <= cp_data[13].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[14] <= cp_data[14].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[15] <= cp_data[15].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[16] <= cp_data[16].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[17] <= cp_data[17].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[18] <= cp_data[18].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[19] <= cp_data[19].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[20] <= cp_data[20].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[21] <= cp_data[21].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[22] <= cp_data[22].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[23] <= cp_data[23].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[24] <= cp_data[24].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[25] <= cp_data[25].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[26] <= cp_data[26].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[27] <= cp_data[27].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[28] <= cp_data[28].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[29] <= cp_data[29].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[30] <= cp_data[30].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[31] <= cp_data[31].DB_MAX_OUTPUT_PORT_TYPE +m0_readdatavalid => rdata_fifo_src_valid.IN0 +m0_debugaccess <= cp_data[87].DB_MAX_OUTPUT_PORT_TYPE +m0_lock <= m0_lock.DB_MAX_OUTPUT_PORT_TYPE +m0_response[0] => rdata_fifo_src_data[32].DATAIN +m0_response[1] => rdata_fifo_src_data[33].DATAIN +m0_writeresponserequest <= m0_writeresponserequest.DB_MAX_OUTPUT_PORT_TYPE +m0_writeresponsevalid => rdata_fifo_src_valid.IN1 +rf_source_data[0] <= +rf_source_data[1] <= +rf_source_data[2] <= +rf_source_data[3] <= +rf_source_data[4] <= +rf_source_data[5] <= +rf_source_data[6] <= +rf_source_data[7] <= +rf_source_data[8] <= +rf_source_data[9] <= +rf_source_data[10] <= +rf_source_data[11] <= +rf_source_data[12] <= +rf_source_data[13] <= +rf_source_data[14] <= +rf_source_data[15] <= +rf_source_data[16] <= +rf_source_data[17] <= +rf_source_data[18] <= +rf_source_data[19] <= +rf_source_data[20] <= +rf_source_data[21] <= +rf_source_data[22] <= +rf_source_data[23] <= +rf_source_data[24] <= +rf_source_data[25] <= +rf_source_data[26] <= +rf_source_data[27] <= +rf_source_data[28] <= +rf_source_data[29] <= +rf_source_data[30] <= +rf_source_data[31] <= +rf_source_data[32] <= cp_data[32].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[33] <= cp_data[33].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[34] <= cp_data[34].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[35] <= cp_data[35].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[36] <= cp_data[36].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[37] <= cp_data[37].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[38] <= cp_data[38].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[39] <= cp_data[39].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[40] <= cp_data[40].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[41] <= cp_data[41].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[42] <= cp_data[42].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[43] <= cp_data[43].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[44] <= cp_data[44].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[45] <= cp_data[45].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[46] <= cp_data[46].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[47] <= cp_data[47].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[48] <= cp_data[48].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[49] <= cp_data[49].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[50] <= cp_data[50].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[51] <= cp_data[51].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[52] <= cp_data[52].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[53] <= cp_data[53].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[54] <= cp_data[54].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[55] <= cp_data[55].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[56] <= cp_data[56].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[57] <= cp_data[57].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[58] <= cp_data[58].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[59] <= cp_data[59].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[60] <= cp_data[60].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[61] <= cp_data[61].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[62] <= cp_data[62].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[63] <= cp_data[63].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[64] <= cp_data[64].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[65] <= cp_data[65].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[66] <= cp_data[66].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[67] <= cp_data[67].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[68] <= cp_data[68].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[69] <= cp_data[69].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[70] <= cp_data[70].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[71] <= cp_data[71].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[72] <= cp_data[72].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[73] <= cp_data[73].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[74] <= cp_data[74].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[75] <= cp_data[75].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[76] <= cp_data[76].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[77] <= cp_data[77].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[78] <= cp_data[78].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[79] <= cp_data[79].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[80] <= cp_data[80].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[81] <= cp_data[81].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[82] <= cp_data[82].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[83] <= cp_data[83].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[84] <= cp_data[84].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[85] <= cp_data[85].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[86] <= cp_data[86].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[87] <= cp_data[87].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[88] <= +rf_source_data[89] <= +rf_source_data[90] <= cp_data[90].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[91] <= cp_data[91].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[92] <= cp_data[92].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[93] <= cp_data[93].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[94] <= cp_data[94].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[95] <= cp_data[95].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[96] <= nonposted_write_endofpacket.DB_MAX_OUTPUT_PORT_TYPE +rf_source_valid <= rf_source_valid.DB_MAX_OUTPUT_PORT_TYPE +rf_source_startofpacket <= cp_startofpacket.DB_MAX_OUTPUT_PORT_TYPE +rf_source_endofpacket <= cp_endofpacket.DB_MAX_OUTPUT_PORT_TYPE +rf_source_ready => cp_ready.IN1 +rf_source_ready => m0_write.IN1 +rf_source_ready => m0_lock.IN1 +rf_source_ready => rf_source_valid.IN1 +rf_source_ready => m0_read.IN1 +rf_sink_data[0] => ~NO_FANOUT~ +rf_sink_data[1] => ~NO_FANOUT~ +rf_sink_data[2] => ~NO_FANOUT~ +rf_sink_data[3] => ~NO_FANOUT~ +rf_sink_data[4] => ~NO_FANOUT~ +rf_sink_data[5] => ~NO_FANOUT~ +rf_sink_data[6] => ~NO_FANOUT~ +rf_sink_data[7] => ~NO_FANOUT~ +rf_sink_data[8] => ~NO_FANOUT~ +rf_sink_data[9] => ~NO_FANOUT~ +rf_sink_data[10] => ~NO_FANOUT~ +rf_sink_data[11] => ~NO_FANOUT~ +rf_sink_data[12] => ~NO_FANOUT~ +rf_sink_data[13] => ~NO_FANOUT~ +rf_sink_data[14] => ~NO_FANOUT~ +rf_sink_data[15] => ~NO_FANOUT~ +rf_sink_data[16] => ~NO_FANOUT~ +rf_sink_data[17] => ~NO_FANOUT~ +rf_sink_data[18] => ~NO_FANOUT~ +rf_sink_data[19] => ~NO_FANOUT~ +rf_sink_data[20] => ~NO_FANOUT~ +rf_sink_data[21] => ~NO_FANOUT~ +rf_sink_data[22] => ~NO_FANOUT~ +rf_sink_data[23] => ~NO_FANOUT~ +rf_sink_data[24] => ~NO_FANOUT~ +rf_sink_data[25] => ~NO_FANOUT~ +rf_sink_data[26] => ~NO_FANOUT~ +rf_sink_data[27] => ~NO_FANOUT~ +rf_sink_data[28] => ~NO_FANOUT~ +rf_sink_data[29] => ~NO_FANOUT~ +rf_sink_data[30] => ~NO_FANOUT~ +rf_sink_data[31] => ~NO_FANOUT~ +rf_sink_data[32] => rp_data[32].DATAIN +rf_sink_data[33] => rp_data[33].DATAIN +rf_sink_data[34] => rp_data[34].DATAIN +rf_sink_data[35] => rp_data[35].DATAIN +rf_sink_data[36] => rf_sink_addr[0].IN1 +rf_sink_data[37] => rf_sink_addr[1].IN1 +rf_sink_data[38] => rf_sink_addr[2].IN1 +rf_sink_data[39] => rf_sink_addr[3].IN1 +rf_sink_data[40] => rf_sink_addr[4].IN1 +rf_sink_data[41] => rf_sink_addr[5].IN1 +rf_sink_data[42] => rf_sink_addr[6].IN1 +rf_sink_data[43] => rf_sink_addr[7].IN1 +rf_sink_data[44] => rf_sink_addr[8].IN1 +rf_sink_data[45] => rf_sink_addr[9].IN1 +rf_sink_data[46] => rf_sink_addr[10].IN1 +rf_sink_data[47] => rf_sink_addr[11].IN1 +rf_sink_data[48] => rf_sink_addr[12].IN1 +rf_sink_data[49] => rf_sink_addr[13].IN1 +rf_sink_data[50] => rf_sink_addr[14].IN1 +rf_sink_data[51] => rf_sink_addr[15].IN1 +rf_sink_data[52] => rf_sink_addr[16].IN1 +rf_sink_data[53] => rf_sink_addr[17].IN1 +rf_sink_data[54] => rf_sink_addr[18].IN1 +rf_sink_data[55] => rf_sink_compressed.IN1 +rf_sink_data[56] => rp_data[56].DATAIN +rf_sink_data[57] => comb.OUTPUTSELECT +rf_sink_data[57] => rp_data[57].DATAIN +rf_sink_data[58] => rp_data.IN0 +rf_sink_data[59] => rp_data[59].DATAIN +rf_sink_data[60] => rp_data[60].DATAIN +rf_sink_data[61] => rf_sink_byte_cnt[0].IN1 +rf_sink_data[62] => rf_sink_byte_cnt[1].IN1 +rf_sink_data[63] => rf_sink_byte_cnt[2].IN1 +rf_sink_data[64] => rf_sink_burstwrap[0].IN1 +rf_sink_data[65] => rf_sink_burstwrap[1].IN1 +rf_sink_data[66] => rf_sink_burstwrap[2].IN1 +rf_sink_data[67] => rf_sink_burstsize[0].IN1 +rf_sink_data[68] => rf_sink_burstsize[1].IN1 +rf_sink_data[69] => rf_sink_burstsize[2].IN1 +rf_sink_data[70] => rp_data[70].DATAIN +rf_sink_data[71] => rp_data[71].DATAIN +rf_sink_data[72] => rp_data[72].DATAIN +rf_sink_data[73] => rp_data[73].DATAIN +rf_sink_data[74] => rp_data[74].DATAIN +rf_sink_data[75] => rp_data[75].DATAIN +rf_sink_data[76] => rp_data[81].DATAIN +rf_sink_data[77] => rp_data[82].DATAIN +rf_sink_data[78] => rp_data[83].DATAIN +rf_sink_data[79] => rp_data[84].DATAIN +rf_sink_data[80] => rp_data[85].DATAIN +rf_sink_data[81] => rp_data[76].DATAIN +rf_sink_data[82] => rp_data[77].DATAIN +rf_sink_data[83] => rp_data[78].DATAIN +rf_sink_data[84] => rp_data[79].DATAIN +rf_sink_data[85] => rp_data[80].DATAIN +rf_sink_data[86] => rp_data[86].DATAIN +rf_sink_data[87] => rp_data[87].DATAIN +rf_sink_data[88] => rp_data[88].DATAIN +rf_sink_data[89] => rp_data[89].DATAIN +rf_sink_data[90] => rp_data[90].DATAIN +rf_sink_data[91] => rp_data[91].DATAIN +rf_sink_data[92] => rp_data[92].DATAIN +rf_sink_data[93] => rp_data[93].DATAIN +rf_sink_data[94] => ~NO_FANOUT~ +rf_sink_data[95] => ~NO_FANOUT~ +rf_sink_data[96] => rdata_fifo_sink_ready.IN0 +rf_sink_data[96] => comb.IN0 +rf_sink_valid => rdata_fifo_sink_ready.IN1 +rf_sink_valid => comb.IN1 +rf_sink_startofpacket => comb.DATAA +rf_sink_endofpacket => rf_sink_endofpacket.IN1 +rf_sink_ready <= altera_merlin_burst_uncompressor:uncompressor.sink_ready +rdata_fifo_src_data[0] <= m0_readdata[0].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[1] <= m0_readdata[1].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[2] <= m0_readdata[2].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[3] <= m0_readdata[3].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[4] <= m0_readdata[4].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[5] <= m0_readdata[5].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[6] <= m0_readdata[6].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[7] <= m0_readdata[7].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[8] <= m0_readdata[8].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[9] <= m0_readdata[9].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[10] <= m0_readdata[10].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[11] <= m0_readdata[11].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[12] <= m0_readdata[12].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[13] <= m0_readdata[13].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[14] <= m0_readdata[14].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[15] <= m0_readdata[15].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[16] <= m0_readdata[16].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[17] <= m0_readdata[17].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[18] <= m0_readdata[18].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[19] <= m0_readdata[19].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[20] <= m0_readdata[20].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[21] <= m0_readdata[21].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[22] <= m0_readdata[22].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[23] <= m0_readdata[23].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[24] <= m0_readdata[24].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[25] <= m0_readdata[25].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[26] <= m0_readdata[26].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[27] <= m0_readdata[27].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[28] <= m0_readdata[28].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[29] <= m0_readdata[29].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[30] <= m0_readdata[30].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[31] <= m0_readdata[31].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[32] <= m0_response[0].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[33] <= m0_response[1].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_valid <= rdata_fifo_src_valid.DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_ready => ~NO_FANOUT~ +rdata_fifo_sink_data[0] => rp_data[0].DATAIN +rdata_fifo_sink_data[1] => rp_data[1].DATAIN +rdata_fifo_sink_data[2] => rp_data[2].DATAIN +rdata_fifo_sink_data[3] => rp_data[3].DATAIN +rdata_fifo_sink_data[4] => rp_data[4].DATAIN +rdata_fifo_sink_data[5] => rp_data[5].DATAIN +rdata_fifo_sink_data[6] => rp_data[6].DATAIN +rdata_fifo_sink_data[7] => rp_data[7].DATAIN +rdata_fifo_sink_data[8] => rp_data[8].DATAIN +rdata_fifo_sink_data[9] => rp_data[9].DATAIN +rdata_fifo_sink_data[10] => rp_data[10].DATAIN +rdata_fifo_sink_data[11] => rp_data[11].DATAIN +rdata_fifo_sink_data[12] => rp_data[12].DATAIN +rdata_fifo_sink_data[13] => rp_data[13].DATAIN +rdata_fifo_sink_data[14] => rp_data[14].DATAIN +rdata_fifo_sink_data[15] => rp_data[15].DATAIN +rdata_fifo_sink_data[16] => rp_data[16].DATAIN +rdata_fifo_sink_data[17] => rp_data[17].DATAIN +rdata_fifo_sink_data[18] => rp_data[18].DATAIN +rdata_fifo_sink_data[19] => rp_data[19].DATAIN +rdata_fifo_sink_data[20] => rp_data[20].DATAIN +rdata_fifo_sink_data[21] => rp_data[21].DATAIN +rdata_fifo_sink_data[22] => rp_data[22].DATAIN +rdata_fifo_sink_data[23] => rp_data[23].DATAIN +rdata_fifo_sink_data[24] => rp_data[24].DATAIN +rdata_fifo_sink_data[25] => rp_data[25].DATAIN +rdata_fifo_sink_data[26] => rp_data[26].DATAIN +rdata_fifo_sink_data[27] => rp_data[27].DATAIN +rdata_fifo_sink_data[28] => rp_data[28].DATAIN +rdata_fifo_sink_data[29] => rp_data[29].DATAIN +rdata_fifo_sink_data[30] => rp_data[30].DATAIN +rdata_fifo_sink_data[31] => rp_data[31].DATAIN +rdata_fifo_sink_data[32] => rp_data[94].DATAIN +rdata_fifo_sink_data[33] => rp_data[95].DATAIN +rdata_fifo_sink_valid => rp_valid.IN1 +rdata_fifo_sink_valid => rdata_fifo_sink_ready.IN0 +rdata_fifo_sink_valid => comb.IN1 +rdata_fifo_sink_ready <= rdata_fifo_sink_ready.DB_MAX_OUTPUT_PORT_TYPE +cp_ready <= cp_ready.DB_MAX_OUTPUT_PORT_TYPE +cp_valid => local_lock.IN0 +cp_valid => local_write.IN0 +cp_valid => local_read.IN0 +cp_valid => local_compressed_read.IN0 +cp_data[0] => m0_writedata[0].DATAIN +cp_data[1] => m0_writedata[1].DATAIN +cp_data[2] => m0_writedata[2].DATAIN +cp_data[3] => m0_writedata[3].DATAIN +cp_data[4] => m0_writedata[4].DATAIN +cp_data[5] => m0_writedata[5].DATAIN +cp_data[6] => m0_writedata[6].DATAIN +cp_data[7] => m0_writedata[7].DATAIN +cp_data[8] => m0_writedata[8].DATAIN +cp_data[9] => m0_writedata[9].DATAIN +cp_data[10] => m0_writedata[10].DATAIN +cp_data[11] => m0_writedata[11].DATAIN +cp_data[12] => m0_writedata[12].DATAIN +cp_data[13] => m0_writedata[13].DATAIN +cp_data[14] => m0_writedata[14].DATAIN +cp_data[15] => m0_writedata[15].DATAIN +cp_data[16] => m0_writedata[16].DATAIN +cp_data[17] => m0_writedata[17].DATAIN +cp_data[18] => m0_writedata[18].DATAIN +cp_data[19] => m0_writedata[19].DATAIN +cp_data[20] => m0_writedata[20].DATAIN +cp_data[21] => m0_writedata[21].DATAIN +cp_data[22] => m0_writedata[22].DATAIN +cp_data[23] => m0_writedata[23].DATAIN +cp_data[24] => m0_writedata[24].DATAIN +cp_data[25] => m0_writedata[25].DATAIN +cp_data[26] => m0_writedata[26].DATAIN +cp_data[27] => m0_writedata[27].DATAIN +cp_data[28] => m0_writedata[28].DATAIN +cp_data[29] => m0_writedata[29].DATAIN +cp_data[30] => m0_writedata[30].DATAIN +cp_data[31] => m0_writedata[31].DATAIN +cp_data[32] => rf_source_data[32].DATAIN +cp_data[32] => m0_byteenable[0].DATAIN +cp_data[33] => rf_source_data[33].DATAIN +cp_data[33] => m0_byteenable[1].DATAIN +cp_data[34] => rf_source_data[34].DATAIN +cp_data[34] => m0_byteenable[2].DATAIN +cp_data[35] => rf_source_data[35].DATAIN +cp_data[35] => m0_byteenable[3].DATAIN +cp_data[36] => rf_source_data[36].DATAIN +cp_data[37] => rf_source_data[37].DATAIN +cp_data[38] => rf_source_data[38].DATAIN +cp_data[38] => m0_address[2].DATAIN +cp_data[39] => rf_source_data[39].DATAIN +cp_data[39] => m0_address[3].DATAIN +cp_data[40] => rf_source_data[40].DATAIN +cp_data[40] => m0_address[4].DATAIN +cp_data[41] => rf_source_data[41].DATAIN +cp_data[41] => m0_address[5].DATAIN +cp_data[42] => rf_source_data[42].DATAIN +cp_data[42] => m0_address[6].DATAIN +cp_data[43] => rf_source_data[43].DATAIN +cp_data[43] => m0_address[7].DATAIN +cp_data[44] => rf_source_data[44].DATAIN +cp_data[44] => m0_address[8].DATAIN +cp_data[45] => rf_source_data[45].DATAIN +cp_data[45] => m0_address[9].DATAIN +cp_data[46] => rf_source_data[46].DATAIN +cp_data[46] => m0_address[10].DATAIN +cp_data[47] => rf_source_data[47].DATAIN +cp_data[47] => m0_address[11].DATAIN +cp_data[48] => rf_source_data[48].DATAIN +cp_data[48] => m0_address[12].DATAIN +cp_data[49] => rf_source_data[49].DATAIN +cp_data[49] => m0_address[13].DATAIN +cp_data[50] => rf_source_data[50].DATAIN +cp_data[50] => m0_address[14].DATAIN +cp_data[51] => rf_source_data[51].DATAIN +cp_data[51] => m0_address[15].DATAIN +cp_data[52] => rf_source_data[52].DATAIN +cp_data[52] => m0_address[16].DATAIN +cp_data[53] => rf_source_data[53].DATAIN +cp_data[53] => m0_address[17].DATAIN +cp_data[54] => rf_source_data[54].DATAIN +cp_data[54] => m0_address[18].DATAIN +cp_data[55] => local_compressed_read.IN1 +cp_data[55] => rf_source_data[55].DATAIN +cp_data[56] => rf_source_data[56].DATAIN +cp_data[56] => m0_writeresponserequest.IN1 +cp_data[56] => comb.IN1 +cp_data[57] => local_write.IN1 +cp_data[57] => rf_source_data[57].DATAIN +cp_data[58] => local_read.IN1 +cp_data[58] => rf_source_data[58].DATAIN +cp_data[59] => local_lock.IN1 +cp_data[59] => rf_source_data[59].DATAIN +cp_data[60] => rf_source_data[60].DATAIN +cp_data[61] => m0_burstcount.DATAA +cp_data[61] => rf_source_data[61].DATAIN +cp_data[62] => m0_burstcount.DATAA +cp_data[62] => rf_source_data[62].DATAIN +cp_data[63] => m0_burstcount.DATAA +cp_data[63] => rf_source_data[63].DATAIN +cp_data[64] => rf_source_data[64].DATAIN +cp_data[65] => rf_source_data[65].DATAIN +cp_data[66] => rf_source_data[66].DATAIN +cp_data[67] => rf_source_data[67].DATAIN +cp_data[68] => rf_source_data[68].DATAIN +cp_data[69] => rf_source_data[69].DATAIN +cp_data[70] => rf_source_data[70].DATAIN +cp_data[71] => rf_source_data[71].DATAIN +cp_data[72] => rf_source_data[72].DATAIN +cp_data[73] => rf_source_data[73].DATAIN +cp_data[74] => rf_source_data[74].DATAIN +cp_data[75] => rf_source_data[75].DATAIN +cp_data[76] => rf_source_data[76].DATAIN +cp_data[77] => rf_source_data[77].DATAIN +cp_data[78] => rf_source_data[78].DATAIN +cp_data[79] => rf_source_data[79].DATAIN +cp_data[80] => rf_source_data[80].DATAIN +cp_data[81] => rf_source_data[81].DATAIN +cp_data[82] => rf_source_data[82].DATAIN +cp_data[83] => rf_source_data[83].DATAIN +cp_data[84] => rf_source_data[84].DATAIN +cp_data[85] => rf_source_data[85].DATAIN +cp_data[86] => rf_source_data[86].DATAIN +cp_data[87] => rf_source_data[87].DATAIN +cp_data[87] => m0_debugaccess.DATAIN +cp_data[88] => ~NO_FANOUT~ +cp_data[89] => ~NO_FANOUT~ +cp_data[90] => rf_source_data[90].DATAIN +cp_data[91] => rf_source_data[91].DATAIN +cp_data[92] => rf_source_data[92].DATAIN +cp_data[93] => rf_source_data[93].DATAIN +cp_data[94] => rf_source_data[94].DATAIN +cp_data[95] => rf_source_data[95].DATAIN +cp_channel[0] => ~NO_FANOUT~ +cp_channel[1] => ~NO_FANOUT~ +cp_channel[2] => ~NO_FANOUT~ +cp_channel[3] => ~NO_FANOUT~ +cp_channel[4] => ~NO_FANOUT~ +cp_channel[5] => ~NO_FANOUT~ +cp_channel[6] => ~NO_FANOUT~ +cp_channel[7] => ~NO_FANOUT~ +cp_channel[8] => ~NO_FANOUT~ +cp_channel[9] => ~NO_FANOUT~ +cp_channel[10] => ~NO_FANOUT~ +cp_channel[11] => ~NO_FANOUT~ +cp_channel[12] => ~NO_FANOUT~ +cp_channel[13] => ~NO_FANOUT~ +cp_channel[14] => ~NO_FANOUT~ +cp_channel[15] => ~NO_FANOUT~ +cp_channel[16] => ~NO_FANOUT~ +cp_channel[17] => ~NO_FANOUT~ +cp_startofpacket => rf_source_startofpacket.DATAIN +cp_endofpacket => nonposted_write_endofpacket.IN1 +cp_endofpacket => rf_source_endofpacket.DATAIN +rp_ready => rp_ready.IN1 +rp_valid <= rp_valid.DB_MAX_OUTPUT_PORT_TYPE +rp_data[0] <= rdata_fifo_sink_data[0].DB_MAX_OUTPUT_PORT_TYPE +rp_data[1] <= rdata_fifo_sink_data[1].DB_MAX_OUTPUT_PORT_TYPE +rp_data[2] <= rdata_fifo_sink_data[2].DB_MAX_OUTPUT_PORT_TYPE +rp_data[3] <= rdata_fifo_sink_data[3].DB_MAX_OUTPUT_PORT_TYPE +rp_data[4] <= rdata_fifo_sink_data[4].DB_MAX_OUTPUT_PORT_TYPE +rp_data[5] <= rdata_fifo_sink_data[5].DB_MAX_OUTPUT_PORT_TYPE +rp_data[6] <= rdata_fifo_sink_data[6].DB_MAX_OUTPUT_PORT_TYPE +rp_data[7] <= rdata_fifo_sink_data[7].DB_MAX_OUTPUT_PORT_TYPE +rp_data[8] <= rdata_fifo_sink_data[8].DB_MAX_OUTPUT_PORT_TYPE +rp_data[9] <= rdata_fifo_sink_data[9].DB_MAX_OUTPUT_PORT_TYPE +rp_data[10] <= rdata_fifo_sink_data[10].DB_MAX_OUTPUT_PORT_TYPE +rp_data[11] <= rdata_fifo_sink_data[11].DB_MAX_OUTPUT_PORT_TYPE +rp_data[12] <= rdata_fifo_sink_data[12].DB_MAX_OUTPUT_PORT_TYPE +rp_data[13] <= rdata_fifo_sink_data[13].DB_MAX_OUTPUT_PORT_TYPE +rp_data[14] <= rdata_fifo_sink_data[14].DB_MAX_OUTPUT_PORT_TYPE +rp_data[15] <= rdata_fifo_sink_data[15].DB_MAX_OUTPUT_PORT_TYPE +rp_data[16] <= rdata_fifo_sink_data[16].DB_MAX_OUTPUT_PORT_TYPE +rp_data[17] <= rdata_fifo_sink_data[17].DB_MAX_OUTPUT_PORT_TYPE +rp_data[18] <= rdata_fifo_sink_data[18].DB_MAX_OUTPUT_PORT_TYPE +rp_data[19] <= rdata_fifo_sink_data[19].DB_MAX_OUTPUT_PORT_TYPE +rp_data[20] <= rdata_fifo_sink_data[20].DB_MAX_OUTPUT_PORT_TYPE +rp_data[21] <= rdata_fifo_sink_data[21].DB_MAX_OUTPUT_PORT_TYPE +rp_data[22] <= rdata_fifo_sink_data[22].DB_MAX_OUTPUT_PORT_TYPE +rp_data[23] <= rdata_fifo_sink_data[23].DB_MAX_OUTPUT_PORT_TYPE +rp_data[24] <= rdata_fifo_sink_data[24].DB_MAX_OUTPUT_PORT_TYPE +rp_data[25] <= rdata_fifo_sink_data[25].DB_MAX_OUTPUT_PORT_TYPE +rp_data[26] <= rdata_fifo_sink_data[26].DB_MAX_OUTPUT_PORT_TYPE +rp_data[27] <= rdata_fifo_sink_data[27].DB_MAX_OUTPUT_PORT_TYPE +rp_data[28] <= rdata_fifo_sink_data[28].DB_MAX_OUTPUT_PORT_TYPE +rp_data[29] <= rdata_fifo_sink_data[29].DB_MAX_OUTPUT_PORT_TYPE +rp_data[30] <= rdata_fifo_sink_data[30].DB_MAX_OUTPUT_PORT_TYPE +rp_data[31] <= rdata_fifo_sink_data[31].DB_MAX_OUTPUT_PORT_TYPE +rp_data[32] <= rf_sink_data[32].DB_MAX_OUTPUT_PORT_TYPE +rp_data[33] <= rf_sink_data[33].DB_MAX_OUTPUT_PORT_TYPE +rp_data[34] <= rf_sink_data[34].DB_MAX_OUTPUT_PORT_TYPE +rp_data[35] <= rf_sink_data[35].DB_MAX_OUTPUT_PORT_TYPE +rp_data[36] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[37] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[38] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[39] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[40] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[41] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[42] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[43] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[44] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[45] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[46] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[47] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[48] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[49] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[50] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[51] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[52] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[53] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[54] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[55] <= altera_merlin_burst_uncompressor:uncompressor.source_is_compressed +rp_data[56] <= rf_sink_data[56].DB_MAX_OUTPUT_PORT_TYPE +rp_data[57] <= rf_sink_data[57].DB_MAX_OUTPUT_PORT_TYPE +rp_data[58] <= rp_data.DB_MAX_OUTPUT_PORT_TYPE +rp_data[59] <= rf_sink_data[59].DB_MAX_OUTPUT_PORT_TYPE +rp_data[60] <= rf_sink_data[60].DB_MAX_OUTPUT_PORT_TYPE +rp_data[61] <= altera_merlin_burst_uncompressor:uncompressor.source_byte_cnt +rp_data[62] <= altera_merlin_burst_uncompressor:uncompressor.source_byte_cnt +rp_data[63] <= altera_merlin_burst_uncompressor:uncompressor.source_byte_cnt +rp_data[64] <= altera_merlin_burst_uncompressor:uncompressor.source_burstwrap +rp_data[65] <= altera_merlin_burst_uncompressor:uncompressor.source_burstwrap +rp_data[66] <= altera_merlin_burst_uncompressor:uncompressor.source_burstwrap +rp_data[67] <= altera_merlin_burst_uncompressor:uncompressor.source_burstsize +rp_data[68] <= altera_merlin_burst_uncompressor:uncompressor.source_burstsize +rp_data[69] <= altera_merlin_burst_uncompressor:uncompressor.source_burstsize +rp_data[70] <= rf_sink_data[70].DB_MAX_OUTPUT_PORT_TYPE +rp_data[71] <= rf_sink_data[71].DB_MAX_OUTPUT_PORT_TYPE +rp_data[72] <= rf_sink_data[72].DB_MAX_OUTPUT_PORT_TYPE +rp_data[73] <= rf_sink_data[73].DB_MAX_OUTPUT_PORT_TYPE +rp_data[74] <= rf_sink_data[74].DB_MAX_OUTPUT_PORT_TYPE +rp_data[75] <= rf_sink_data[75].DB_MAX_OUTPUT_PORT_TYPE +rp_data[76] <= rf_sink_data[81].DB_MAX_OUTPUT_PORT_TYPE +rp_data[77] <= rf_sink_data[82].DB_MAX_OUTPUT_PORT_TYPE +rp_data[78] <= rf_sink_data[83].DB_MAX_OUTPUT_PORT_TYPE +rp_data[79] <= rf_sink_data[84].DB_MAX_OUTPUT_PORT_TYPE +rp_data[80] <= rf_sink_data[85].DB_MAX_OUTPUT_PORT_TYPE +rp_data[81] <= rf_sink_data[76].DB_MAX_OUTPUT_PORT_TYPE +rp_data[82] <= rf_sink_data[77].DB_MAX_OUTPUT_PORT_TYPE +rp_data[83] <= rf_sink_data[78].DB_MAX_OUTPUT_PORT_TYPE +rp_data[84] <= rf_sink_data[79].DB_MAX_OUTPUT_PORT_TYPE +rp_data[85] <= rf_sink_data[80].DB_MAX_OUTPUT_PORT_TYPE +rp_data[86] <= rf_sink_data[86].DB_MAX_OUTPUT_PORT_TYPE +rp_data[87] <= rf_sink_data[87].DB_MAX_OUTPUT_PORT_TYPE +rp_data[88] <= rf_sink_data[88].DB_MAX_OUTPUT_PORT_TYPE +rp_data[89] <= rf_sink_data[89].DB_MAX_OUTPUT_PORT_TYPE +rp_data[90] <= rf_sink_data[90].DB_MAX_OUTPUT_PORT_TYPE +rp_data[91] <= rf_sink_data[91].DB_MAX_OUTPUT_PORT_TYPE +rp_data[92] <= rf_sink_data[92].DB_MAX_OUTPUT_PORT_TYPE +rp_data[93] <= rf_sink_data[93].DB_MAX_OUTPUT_PORT_TYPE +rp_data[94] <= rdata_fifo_sink_data[32].DB_MAX_OUTPUT_PORT_TYPE +rp_data[95] <= rdata_fifo_sink_data[33].DB_MAX_OUTPUT_PORT_TYPE +rp_startofpacket <= altera_merlin_burst_uncompressor:uncompressor.source_startofpacket +rp_endofpacket <= altera_merlin_burst_uncompressor:uncompressor.source_endofpacket + + +|lights|nios_system:NiosII|altera_merlin_slave_agent:lcd_on_s1_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor +clk => burst_uncompress_address_offset[0].CLK +clk => burst_uncompress_address_offset[1].CLK +clk => burst_uncompress_address_offset[2].CLK +clk => burst_uncompress_address_offset[3].CLK +clk => burst_uncompress_address_offset[4].CLK +clk => burst_uncompress_address_offset[5].CLK +clk => burst_uncompress_address_offset[6].CLK +clk => burst_uncompress_address_offset[7].CLK +clk => burst_uncompress_address_offset[8].CLK +clk => burst_uncompress_address_offset[9].CLK +clk => burst_uncompress_address_offset[10].CLK +clk => burst_uncompress_address_offset[11].CLK +clk => burst_uncompress_address_offset[12].CLK +clk => burst_uncompress_address_offset[13].CLK +clk => burst_uncompress_address_offset[14].CLK +clk => burst_uncompress_address_offset[15].CLK +clk => burst_uncompress_address_offset[16].CLK +clk => burst_uncompress_address_offset[17].CLK +clk => burst_uncompress_address_offset[18].CLK +clk => burst_uncompress_address_base[0].CLK +clk => burst_uncompress_address_base[1].CLK +clk => burst_uncompress_address_base[2].CLK +clk => burst_uncompress_address_base[3].CLK +clk => burst_uncompress_address_base[4].CLK +clk => burst_uncompress_address_base[5].CLK +clk => burst_uncompress_address_base[6].CLK +clk => burst_uncompress_address_base[7].CLK +clk => burst_uncompress_address_base[8].CLK +clk => burst_uncompress_address_base[9].CLK +clk => burst_uncompress_address_base[10].CLK +clk => burst_uncompress_address_base[11].CLK +clk => burst_uncompress_address_base[12].CLK +clk => burst_uncompress_address_base[13].CLK +clk => burst_uncompress_address_base[14].CLK +clk => burst_uncompress_address_base[15].CLK +clk => burst_uncompress_address_base[16].CLK +clk => burst_uncompress_address_base[17].CLK +clk => burst_uncompress_address_base[18].CLK +clk => burst_uncompress_byte_counter[0].CLK +clk => burst_uncompress_byte_counter[1].CLK +clk => burst_uncompress_byte_counter[2].CLK +clk => burst_uncompress_busy.CLK +reset => burst_uncompress_address_offset[0].ACLR +reset => burst_uncompress_address_offset[1].ACLR +reset => burst_uncompress_address_offset[2].ACLR +reset => burst_uncompress_address_offset[3].ACLR +reset => burst_uncompress_address_offset[4].ACLR +reset => burst_uncompress_address_offset[5].ACLR +reset => burst_uncompress_address_offset[6].ACLR +reset => burst_uncompress_address_offset[7].ACLR +reset => burst_uncompress_address_offset[8].ACLR +reset => burst_uncompress_address_offset[9].ACLR +reset => burst_uncompress_address_offset[10].ACLR +reset => burst_uncompress_address_offset[11].ACLR +reset => burst_uncompress_address_offset[12].ACLR +reset => burst_uncompress_address_offset[13].ACLR +reset => burst_uncompress_address_offset[14].ACLR +reset => burst_uncompress_address_offset[15].ACLR +reset => burst_uncompress_address_offset[16].ACLR +reset => burst_uncompress_address_offset[17].ACLR +reset => burst_uncompress_address_offset[18].ACLR +reset => burst_uncompress_address_base[0].ACLR +reset => burst_uncompress_address_base[1].ACLR +reset => burst_uncompress_address_base[2].ACLR +reset => burst_uncompress_address_base[3].ACLR +reset => burst_uncompress_address_base[4].ACLR +reset => burst_uncompress_address_base[5].ACLR +reset => burst_uncompress_address_base[6].ACLR +reset => burst_uncompress_address_base[7].ACLR +reset => burst_uncompress_address_base[8].ACLR +reset => burst_uncompress_address_base[9].ACLR +reset => burst_uncompress_address_base[10].ACLR +reset => burst_uncompress_address_base[11].ACLR +reset => burst_uncompress_address_base[12].ACLR +reset => burst_uncompress_address_base[13].ACLR +reset => burst_uncompress_address_base[14].ACLR +reset => burst_uncompress_address_base[15].ACLR +reset => burst_uncompress_address_base[16].ACLR +reset => burst_uncompress_address_base[17].ACLR +reset => burst_uncompress_address_base[18].ACLR +reset => burst_uncompress_byte_counter[0].ACLR +reset => burst_uncompress_byte_counter[1].ACLR +reset => burst_uncompress_byte_counter[2].ACLR +reset => burst_uncompress_busy.ACLR +sink_startofpacket => source_startofpacket.IN1 +sink_endofpacket => source_endofpacket.IN1 +sink_valid => first_packet_beat.IN1 +sink_valid => last_packet_beat.IN1 +sink_valid => last_packet_beat.IN1 +sink_valid => always0.IN1 +sink_valid => sink_ready.IN0 +sink_valid => source_valid.DATAIN +sink_ready <= sink_ready.DB_MAX_OUTPUT_PORT_TYPE +sink_addr[0] => burst_uncompress_address_base.IN0 +sink_addr[0] => comb.DATAB +sink_addr[0] => source_addr.DATAB +sink_addr[1] => burst_uncompress_address_base.IN0 +sink_addr[1] => comb.DATAB +sink_addr[1] => source_addr.DATAB +sink_addr[2] => burst_uncompress_address_base.IN0 +sink_addr[2] => comb.DATAB +sink_addr[2] => source_addr.DATAB +sink_addr[3] => burst_uncompress_address_base.IN0 +sink_addr[3] => comb.DATAB +sink_addr[3] => source_addr.DATAB +sink_addr[4] => burst_uncompress_address_base.IN0 +sink_addr[4] => comb.DATAB +sink_addr[4] => source_addr.DATAB +sink_addr[5] => burst_uncompress_address_base.IN0 +sink_addr[5] => comb.DATAB +sink_addr[5] => source_addr.DATAB +sink_addr[6] => burst_uncompress_address_base.IN0 +sink_addr[6] => comb.DATAB +sink_addr[6] => source_addr.DATAB +sink_addr[7] => burst_uncompress_address_base.IN0 +sink_addr[7] => comb.DATAB +sink_addr[7] => source_addr.DATAB +sink_addr[8] => burst_uncompress_address_base.IN0 +sink_addr[8] => comb.DATAB +sink_addr[8] => source_addr.DATAB +sink_addr[9] => burst_uncompress_address_base.IN0 +sink_addr[9] => comb.DATAB +sink_addr[9] => source_addr.DATAB +sink_addr[10] => burst_uncompress_address_base.IN0 +sink_addr[10] => comb.DATAB +sink_addr[10] => source_addr.DATAB +sink_addr[11] => burst_uncompress_address_base.IN0 +sink_addr[11] => comb.DATAB +sink_addr[11] => source_addr.DATAB +sink_addr[12] => burst_uncompress_address_base.IN0 +sink_addr[12] => comb.DATAB +sink_addr[12] => source_addr.DATAB +sink_addr[13] => burst_uncompress_address_base.IN0 +sink_addr[13] => comb.DATAB +sink_addr[13] => source_addr.DATAB +sink_addr[14] => burst_uncompress_address_base.IN0 +sink_addr[14] => comb.DATAB +sink_addr[14] => source_addr.DATAB +sink_addr[15] => burst_uncompress_address_base.IN0 +sink_addr[15] => comb.DATAB +sink_addr[15] => source_addr.DATAB +sink_addr[16] => burst_uncompress_address_base.IN0 +sink_addr[16] => comb.DATAB +sink_addr[16] => source_addr.DATAB +sink_addr[17] => burst_uncompress_address_base.IN0 +sink_addr[17] => comb.DATAB +sink_addr[17] => source_addr.DATAB +sink_addr[18] => burst_uncompress_address_base.IN0 +sink_addr[18] => comb.DATAB +sink_addr[18] => source_addr.DATAB +sink_burstwrap[0] => p1_burst_uncompress_address_offset[0].IN1 +sink_burstwrap[0] => source_burstwrap[0].DATAIN +sink_burstwrap[0] => burst_uncompress_address_base.IN1 +sink_burstwrap[1] => p1_burst_uncompress_address_offset[1].IN1 +sink_burstwrap[1] => source_burstwrap[1].DATAIN +sink_burstwrap[1] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[2].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[18].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[17].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[16].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[15].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[14].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[13].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[12].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[11].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[10].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[9].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[8].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[7].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[6].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[5].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[4].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[3].IN1 +sink_burstwrap[2] => source_burstwrap[2].DATAIN +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_byte_cnt[0] => source_byte_cnt.DATAB +sink_byte_cnt[0] => Add1.IN6 +sink_byte_cnt[0] => Equal1.IN2 +sink_byte_cnt[1] => source_byte_cnt.DATAB +sink_byte_cnt[1] => Add1.IN5 +sink_byte_cnt[1] => Equal1.IN1 +sink_byte_cnt[2] => source_byte_cnt.DATAB +sink_byte_cnt[2] => Add1.IN4 +sink_byte_cnt[2] => Equal1.IN0 +sink_is_compressed => last_packet_beat.IN1 +sink_burstsize[0] => Decoder0.IN2 +sink_burstsize[0] => source_burstsize[0].DATAIN +sink_burstsize[1] => Decoder0.IN1 +sink_burstsize[1] => source_burstsize[1].DATAIN +sink_burstsize[2] => Decoder0.IN0 +sink_burstsize[2] => source_burstsize[2].DATAIN +source_startofpacket <= source_startofpacket.DB_MAX_OUTPUT_PORT_TYPE +source_endofpacket <= source_endofpacket.DB_MAX_OUTPUT_PORT_TYPE +source_valid <= sink_valid.DB_MAX_OUTPUT_PORT_TYPE +source_ready => always1.IN1 +source_ready => sink_ready.IN1 +source_addr[0] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[1] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[2] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[3] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[4] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[5] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[6] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[7] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[8] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[9] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[10] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[11] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[12] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[13] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[14] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[15] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[16] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[17] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[18] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_burstwrap[0] <= sink_burstwrap[0].DB_MAX_OUTPUT_PORT_TYPE +source_burstwrap[1] <= sink_burstwrap[1].DB_MAX_OUTPUT_PORT_TYPE +source_burstwrap[2] <= sink_burstwrap[2].DB_MAX_OUTPUT_PORT_TYPE +source_byte_cnt[0] <= source_byte_cnt.DB_MAX_OUTPUT_PORT_TYPE +source_byte_cnt[1] <= source_byte_cnt.DB_MAX_OUTPUT_PORT_TYPE +source_byte_cnt[2] <= source_byte_cnt.DB_MAX_OUTPUT_PORT_TYPE +source_is_compressed <= +source_burstsize[0] <= sink_burstsize[0].DB_MAX_OUTPUT_PORT_TYPE +source_burstsize[1] <= sink_burstsize[1].DB_MAX_OUTPUT_PORT_TYPE +source_burstsize[2] <= sink_burstsize[2].DB_MAX_OUTPUT_PORT_TYPE + + +|lights|nios_system:NiosII|altera_avalon_sc_fifo:lcd_on_s1_translator_avalon_universal_slave_0_agent_rsp_fifo +clk => csr_readdata[0]~reg0.CLK +clk => csr_readdata[1]~reg0.CLK +clk => csr_readdata[2]~reg0.CLK +clk => csr_readdata[3]~reg0.CLK +clk => csr_readdata[4]~reg0.CLK +clk => csr_readdata[5]~reg0.CLK +clk => csr_readdata[6]~reg0.CLK +clk => csr_readdata[7]~reg0.CLK +clk => csr_readdata[8]~reg0.CLK +clk => csr_readdata[9]~reg0.CLK +clk => csr_readdata[10]~reg0.CLK +clk => csr_readdata[11]~reg0.CLK +clk => csr_readdata[12]~reg0.CLK +clk => csr_readdata[13]~reg0.CLK +clk => csr_readdata[14]~reg0.CLK +clk => csr_readdata[15]~reg0.CLK +clk => csr_readdata[16]~reg0.CLK +clk => csr_readdata[17]~reg0.CLK +clk => csr_readdata[18]~reg0.CLK +clk => csr_readdata[19]~reg0.CLK +clk => csr_readdata[20]~reg0.CLK +clk => csr_readdata[21]~reg0.CLK +clk => csr_readdata[22]~reg0.CLK +clk => csr_readdata[23]~reg0.CLK +clk => csr_readdata[24]~reg0.CLK +clk => csr_readdata[25]~reg0.CLK +clk => csr_readdata[26]~reg0.CLK +clk => csr_readdata[27]~reg0.CLK +clk => csr_readdata[28]~reg0.CLK +clk => csr_readdata[29]~reg0.CLK +clk => csr_readdata[30]~reg0.CLK +clk => csr_readdata[31]~reg0.CLK +clk => mem_used[1].CLK +clk => mem_used[0].CLK +clk => mem[1][0].CLK +clk => mem[1][1].CLK +clk => mem[1][2].CLK +clk => mem[1][3].CLK +clk => mem[1][4].CLK +clk => mem[1][5].CLK +clk => mem[1][6].CLK +clk => mem[1][7].CLK +clk => mem[1][8].CLK +clk => mem[1][9].CLK +clk => mem[1][10].CLK +clk => mem[1][11].CLK +clk => mem[1][12].CLK +clk => mem[1][13].CLK +clk => mem[1][14].CLK +clk => mem[1][15].CLK +clk => mem[1][16].CLK +clk => mem[1][17].CLK +clk => mem[1][18].CLK +clk => mem[1][19].CLK +clk => mem[1][20].CLK +clk => mem[1][21].CLK +clk => mem[1][22].CLK +clk => mem[1][23].CLK +clk => mem[1][24].CLK +clk => mem[1][25].CLK +clk => mem[1][26].CLK +clk => mem[1][27].CLK +clk => mem[1][28].CLK +clk => mem[1][29].CLK +clk => mem[1][30].CLK +clk => mem[1][31].CLK +clk => mem[1][32].CLK +clk => mem[1][33].CLK +clk => mem[1][34].CLK +clk => mem[1][35].CLK +clk => mem[1][36].CLK +clk => mem[1][37].CLK +clk => mem[1][38].CLK +clk => mem[1][39].CLK +clk => mem[1][40].CLK +clk => mem[1][41].CLK +clk => mem[1][42].CLK +clk => mem[1][43].CLK +clk => mem[1][44].CLK +clk => mem[1][45].CLK +clk => mem[1][46].CLK +clk => mem[1][47].CLK +clk => mem[1][48].CLK +clk => mem[1][49].CLK +clk => mem[1][50].CLK +clk => mem[1][51].CLK +clk => mem[1][52].CLK +clk => mem[1][53].CLK +clk => mem[1][54].CLK +clk => mem[1][55].CLK +clk => mem[1][56].CLK +clk => mem[1][57].CLK +clk => mem[1][58].CLK +clk => mem[1][59].CLK +clk => mem[1][60].CLK +clk => mem[1][61].CLK +clk => mem[1][62].CLK +clk => mem[1][63].CLK +clk => mem[1][64].CLK +clk => mem[1][65].CLK +clk => mem[1][66].CLK +clk => mem[1][67].CLK +clk => mem[1][68].CLK +clk => mem[1][69].CLK +clk => mem[1][70].CLK +clk => mem[1][71].CLK +clk => mem[1][72].CLK +clk => mem[1][73].CLK +clk => mem[1][74].CLK +clk => mem[1][75].CLK +clk => mem[1][76].CLK +clk => mem[1][77].CLK +clk => mem[1][78].CLK +clk => mem[1][79].CLK +clk => mem[1][80].CLK +clk => mem[1][81].CLK +clk => mem[1][82].CLK +clk => mem[1][83].CLK +clk => mem[1][84].CLK +clk => mem[1][85].CLK +clk => mem[1][86].CLK +clk => mem[1][87].CLK +clk => mem[1][88].CLK +clk => mem[1][89].CLK +clk => mem[1][90].CLK +clk => mem[1][91].CLK +clk => mem[1][92].CLK +clk => mem[1][93].CLK +clk => mem[1][94].CLK +clk => mem[1][95].CLK +clk => mem[1][96].CLK +clk => mem[1][97].CLK +clk => mem[1][98].CLK +clk => mem[0][0].CLK +clk => mem[0][1].CLK +clk => mem[0][2].CLK +clk => mem[0][3].CLK +clk => mem[0][4].CLK +clk => mem[0][5].CLK +clk => mem[0][6].CLK +clk => mem[0][7].CLK +clk => mem[0][8].CLK +clk => mem[0][9].CLK +clk => mem[0][10].CLK +clk => mem[0][11].CLK +clk => mem[0][12].CLK +clk => mem[0][13].CLK +clk => mem[0][14].CLK +clk => mem[0][15].CLK +clk => mem[0][16].CLK +clk => mem[0][17].CLK +clk => mem[0][18].CLK +clk => mem[0][19].CLK +clk => mem[0][20].CLK +clk => mem[0][21].CLK +clk => mem[0][22].CLK +clk => mem[0][23].CLK +clk => mem[0][24].CLK +clk => mem[0][25].CLK +clk => mem[0][26].CLK +clk => mem[0][27].CLK +clk => mem[0][28].CLK +clk => mem[0][29].CLK +clk => mem[0][30].CLK +clk => mem[0][31].CLK +clk => mem[0][32].CLK +clk => mem[0][33].CLK +clk => mem[0][34].CLK +clk => mem[0][35].CLK +clk => mem[0][36].CLK +clk => mem[0][37].CLK +clk => mem[0][38].CLK +clk => mem[0][39].CLK +clk => mem[0][40].CLK +clk => mem[0][41].CLK +clk => mem[0][42].CLK +clk => mem[0][43].CLK +clk => mem[0][44].CLK +clk => mem[0][45].CLK +clk => mem[0][46].CLK +clk => mem[0][47].CLK +clk => mem[0][48].CLK +clk => mem[0][49].CLK +clk => mem[0][50].CLK +clk => mem[0][51].CLK +clk => mem[0][52].CLK +clk => mem[0][53].CLK +clk => mem[0][54].CLK +clk => mem[0][55].CLK +clk => mem[0][56].CLK +clk => mem[0][57].CLK +clk => mem[0][58].CLK +clk => mem[0][59].CLK +clk => mem[0][60].CLK +clk => mem[0][61].CLK +clk => mem[0][62].CLK +clk => mem[0][63].CLK +clk => mem[0][64].CLK +clk => mem[0][65].CLK +clk => mem[0][66].CLK +clk => mem[0][67].CLK +clk => mem[0][68].CLK +clk => mem[0][69].CLK +clk => mem[0][70].CLK +clk => mem[0][71].CLK +clk => mem[0][72].CLK +clk => mem[0][73].CLK +clk => mem[0][74].CLK +clk => mem[0][75].CLK +clk => mem[0][76].CLK +clk => mem[0][77].CLK +clk => mem[0][78].CLK +clk => mem[0][79].CLK +clk => mem[0][80].CLK +clk => mem[0][81].CLK +clk => mem[0][82].CLK +clk => mem[0][83].CLK +clk => mem[0][84].CLK +clk => mem[0][85].CLK +clk => mem[0][86].CLK +clk => mem[0][87].CLK +clk => mem[0][88].CLK +clk => mem[0][89].CLK +clk => mem[0][90].CLK +clk => mem[0][91].CLK +clk => mem[0][92].CLK +clk => mem[0][93].CLK +clk => mem[0][94].CLK +clk => mem[0][95].CLK +clk => mem[0][96].CLK +clk => mem[0][97].CLK +clk => mem[0][98].CLK +reset => csr_readdata[0]~reg0.ACLR +reset => csr_readdata[1]~reg0.ACLR +reset => csr_readdata[2]~reg0.ACLR +reset => csr_readdata[3]~reg0.ACLR +reset => csr_readdata[4]~reg0.ACLR +reset => csr_readdata[5]~reg0.ACLR +reset => csr_readdata[6]~reg0.ACLR +reset => csr_readdata[7]~reg0.ACLR +reset => csr_readdata[8]~reg0.ACLR +reset => csr_readdata[9]~reg0.ACLR +reset => csr_readdata[10]~reg0.ACLR +reset => csr_readdata[11]~reg0.ACLR +reset => csr_readdata[12]~reg0.ACLR +reset => csr_readdata[13]~reg0.ACLR +reset => csr_readdata[14]~reg0.ACLR +reset => csr_readdata[15]~reg0.ACLR +reset => csr_readdata[16]~reg0.ACLR +reset => csr_readdata[17]~reg0.ACLR +reset => csr_readdata[18]~reg0.ACLR +reset => csr_readdata[19]~reg0.ACLR +reset => csr_readdata[20]~reg0.ACLR +reset => csr_readdata[21]~reg0.ACLR +reset => csr_readdata[22]~reg0.ACLR +reset => csr_readdata[23]~reg0.ACLR +reset => csr_readdata[24]~reg0.ACLR +reset => csr_readdata[25]~reg0.ACLR +reset => csr_readdata[26]~reg0.ACLR +reset => csr_readdata[27]~reg0.ACLR +reset => csr_readdata[28]~reg0.ACLR +reset => csr_readdata[29]~reg0.ACLR +reset => csr_readdata[30]~reg0.ACLR +reset => csr_readdata[31]~reg0.ACLR +reset => mem_used[1].ACLR +reset => mem_used[0].ACLR +reset => mem[1][0].ACLR +reset => mem[1][1].ACLR +reset => mem[1][2].ACLR +reset => mem[1][3].ACLR +reset => mem[1][4].ACLR +reset => mem[1][5].ACLR +reset => mem[1][6].ACLR +reset => mem[1][7].ACLR +reset => mem[1][8].ACLR +reset => mem[1][9].ACLR +reset => mem[1][10].ACLR +reset => mem[1][11].ACLR +reset => mem[1][12].ACLR +reset => mem[1][13].ACLR +reset => mem[1][14].ACLR +reset => mem[1][15].ACLR +reset => mem[1][16].ACLR +reset => mem[1][17].ACLR +reset => mem[1][18].ACLR +reset => mem[1][19].ACLR +reset => mem[1][20].ACLR +reset => mem[1][21].ACLR +reset => mem[1][22].ACLR +reset => mem[1][23].ACLR +reset => mem[1][24].ACLR +reset => mem[1][25].ACLR +reset => mem[1][26].ACLR +reset => mem[1][27].ACLR +reset => mem[1][28].ACLR +reset => mem[1][29].ACLR +reset => mem[1][30].ACLR +reset => mem[1][31].ACLR +reset => mem[1][32].ACLR +reset => mem[1][33].ACLR +reset => mem[1][34].ACLR +reset => mem[1][35].ACLR +reset => mem[1][36].ACLR +reset => mem[1][37].ACLR +reset => mem[1][38].ACLR +reset => mem[1][39].ACLR +reset => mem[1][40].ACLR +reset => mem[1][41].ACLR +reset => mem[1][42].ACLR +reset => mem[1][43].ACLR +reset => mem[1][44].ACLR +reset => mem[1][45].ACLR +reset => mem[1][46].ACLR +reset => mem[1][47].ACLR +reset => mem[1][48].ACLR +reset => mem[1][49].ACLR +reset => mem[1][50].ACLR +reset => mem[1][51].ACLR +reset => mem[1][52].ACLR +reset => mem[1][53].ACLR +reset => mem[1][54].ACLR +reset => mem[1][55].ACLR +reset => mem[1][56].ACLR +reset => mem[1][57].ACLR +reset => mem[1][58].ACLR +reset => mem[1][59].ACLR +reset => mem[1][60].ACLR +reset => mem[1][61].ACLR +reset => mem[1][62].ACLR +reset => mem[1][63].ACLR +reset => mem[1][64].ACLR +reset => mem[1][65].ACLR +reset => mem[1][66].ACLR +reset => mem[1][67].ACLR +reset => mem[1][68].ACLR +reset => mem[1][69].ACLR +reset => mem[1][70].ACLR +reset => mem[1][71].ACLR +reset => mem[1][72].ACLR +reset => mem[1][73].ACLR +reset => mem[1][74].ACLR +reset => mem[1][75].ACLR +reset => mem[1][76].ACLR +reset => mem[1][77].ACLR +reset => mem[1][78].ACLR +reset => mem[1][79].ACLR +reset => mem[1][80].ACLR +reset => mem[1][81].ACLR +reset => mem[1][82].ACLR +reset => mem[1][83].ACLR +reset => mem[1][84].ACLR +reset => mem[1][85].ACLR +reset => mem[1][86].ACLR +reset => mem[1][87].ACLR +reset => mem[1][88].ACLR +reset => mem[1][89].ACLR +reset => mem[1][90].ACLR +reset => mem[1][91].ACLR +reset => mem[1][92].ACLR +reset => mem[1][93].ACLR +reset => mem[1][94].ACLR +reset => mem[1][95].ACLR +reset => mem[1][96].ACLR +reset => mem[1][97].ACLR +reset => mem[1][98].ACLR +reset => mem[0][0].ACLR +reset => mem[0][1].ACLR +reset => mem[0][2].ACLR +reset => mem[0][3].ACLR +reset => mem[0][4].ACLR +reset => mem[0][5].ACLR +reset => mem[0][6].ACLR +reset => mem[0][7].ACLR +reset => mem[0][8].ACLR +reset => mem[0][9].ACLR +reset => mem[0][10].ACLR +reset => mem[0][11].ACLR +reset => mem[0][12].ACLR +reset => mem[0][13].ACLR +reset => mem[0][14].ACLR +reset => mem[0][15].ACLR +reset => mem[0][16].ACLR +reset => mem[0][17].ACLR +reset => mem[0][18].ACLR +reset => mem[0][19].ACLR +reset => mem[0][20].ACLR +reset => mem[0][21].ACLR +reset => mem[0][22].ACLR +reset => mem[0][23].ACLR +reset => mem[0][24].ACLR +reset => mem[0][25].ACLR +reset => mem[0][26].ACLR +reset => mem[0][27].ACLR +reset => mem[0][28].ACLR +reset => mem[0][29].ACLR +reset => mem[0][30].ACLR +reset => mem[0][31].ACLR +reset => mem[0][32].ACLR +reset => mem[0][33].ACLR +reset => mem[0][34].ACLR +reset => mem[0][35].ACLR +reset => mem[0][36].ACLR +reset => mem[0][37].ACLR +reset => mem[0][38].ACLR +reset => mem[0][39].ACLR +reset => mem[0][40].ACLR +reset => mem[0][41].ACLR +reset => mem[0][42].ACLR +reset => mem[0][43].ACLR +reset => mem[0][44].ACLR +reset => mem[0][45].ACLR +reset => mem[0][46].ACLR +reset => mem[0][47].ACLR +reset => mem[0][48].ACLR +reset => mem[0][49].ACLR +reset => mem[0][50].ACLR +reset => mem[0][51].ACLR +reset => mem[0][52].ACLR +reset => mem[0][53].ACLR +reset => mem[0][54].ACLR +reset => mem[0][55].ACLR +reset => mem[0][56].ACLR +reset => mem[0][57].ACLR +reset => mem[0][58].ACLR +reset => mem[0][59].ACLR +reset => mem[0][60].ACLR +reset => mem[0][61].ACLR +reset => mem[0][62].ACLR +reset => mem[0][63].ACLR +reset => mem[0][64].ACLR +reset => mem[0][65].ACLR +reset => mem[0][66].ACLR +reset => mem[0][67].ACLR +reset => mem[0][68].ACLR +reset => mem[0][69].ACLR +reset => mem[0][70].ACLR +reset => mem[0][71].ACLR +reset => mem[0][72].ACLR +reset => mem[0][73].ACLR +reset => mem[0][74].ACLR +reset => mem[0][75].ACLR +reset => mem[0][76].ACLR +reset => mem[0][77].ACLR +reset => mem[0][78].ACLR +reset => mem[0][79].ACLR +reset => mem[0][80].ACLR +reset => mem[0][81].ACLR +reset => mem[0][82].ACLR +reset => mem[0][83].ACLR +reset => mem[0][84].ACLR +reset => mem[0][85].ACLR +reset => mem[0][86].ACLR +reset => mem[0][87].ACLR +reset => mem[0][88].ACLR +reset => mem[0][89].ACLR +reset => mem[0][90].ACLR +reset => mem[0][91].ACLR +reset => mem[0][92].ACLR +reset => mem[0][93].ACLR +reset => mem[0][94].ACLR +reset => mem[0][95].ACLR +reset => mem[0][96].ACLR +reset => mem[0][97].ACLR +reset => mem[0][98].ACLR +in_data[0] => mem.DATAB +in_data[1] => mem.DATAB +in_data[2] => mem.DATAB +in_data[3] => mem.DATAB +in_data[4] => mem.DATAB +in_data[5] => mem.DATAB +in_data[6] => mem.DATAB +in_data[7] => mem.DATAB +in_data[8] => mem.DATAB +in_data[9] => mem.DATAB +in_data[10] => mem.DATAB +in_data[11] => mem.DATAB +in_data[12] => mem.DATAB +in_data[13] => mem.DATAB +in_data[14] => mem.DATAB +in_data[15] => mem.DATAB +in_data[16] => mem.DATAB +in_data[17] => mem.DATAB +in_data[18] => mem.DATAB +in_data[19] => mem.DATAB +in_data[20] => mem.DATAB +in_data[21] => mem.DATAB +in_data[22] => mem.DATAB +in_data[23] => mem.DATAB +in_data[24] => mem.DATAB +in_data[25] => mem.DATAB +in_data[26] => mem.DATAB +in_data[27] => mem.DATAB +in_data[28] => mem.DATAB +in_data[29] => mem.DATAB +in_data[30] => mem.DATAB +in_data[31] => mem.DATAB +in_data[32] => mem.DATAB +in_data[33] => mem.DATAB +in_data[34] => mem.DATAB +in_data[35] => mem.DATAB +in_data[36] => mem.DATAB +in_data[37] => mem.DATAB +in_data[38] => mem.DATAB +in_data[39] => mem.DATAB +in_data[40] => mem.DATAB +in_data[41] => mem.DATAB +in_data[42] => mem.DATAB +in_data[43] => mem.DATAB +in_data[44] => mem.DATAB +in_data[45] => mem.DATAB +in_data[46] => mem.DATAB +in_data[47] => mem.DATAB +in_data[48] => mem.DATAB +in_data[49] => mem.DATAB +in_data[50] => mem.DATAB +in_data[51] => mem.DATAB +in_data[52] => mem.DATAB +in_data[53] => mem.DATAB +in_data[54] => mem.DATAB +in_data[55] => mem.DATAB +in_data[56] => mem.DATAB +in_data[57] => mem.DATAB +in_data[58] => mem.DATAB +in_data[59] => mem.DATAB +in_data[60] => mem.DATAB +in_data[61] => mem.DATAB +in_data[62] => mem.DATAB +in_data[63] => mem.DATAB +in_data[64] => mem.DATAB +in_data[65] => mem.DATAB +in_data[66] => mem.DATAB +in_data[67] => mem.DATAB +in_data[68] => mem.DATAB +in_data[69] => mem.DATAB +in_data[70] => mem.DATAB +in_data[71] => mem.DATAB +in_data[72] => mem.DATAB +in_data[73] => mem.DATAB +in_data[74] => mem.DATAB +in_data[75] => mem.DATAB +in_data[76] => mem.DATAB +in_data[77] => mem.DATAB +in_data[78] => mem.DATAB +in_data[79] => mem.DATAB +in_data[80] => mem.DATAB +in_data[81] => mem.DATAB +in_data[82] => mem.DATAB +in_data[83] => mem.DATAB +in_data[84] => mem.DATAB +in_data[85] => mem.DATAB +in_data[86] => mem.DATAB +in_data[87] => mem.DATAB +in_data[88] => mem.DATAB +in_data[89] => mem.DATAB +in_data[90] => mem.DATAB +in_data[91] => mem.DATAB +in_data[92] => mem.DATAB +in_data[93] => mem.DATAB +in_data[94] => mem.DATAB +in_data[95] => mem.DATAB +in_data[96] => mem.DATAB +in_valid => write.IN1 +in_startofpacket => mem.DATAB +in_endofpacket => mem.DATAB +in_empty[0] => ~NO_FANOUT~ +in_error[0] => out_error[0].DATAIN +in_error[0] => out_empty[0].DATAIN +in_channel[0] => out_channel[0].DATAIN +in_ready <= mem_used[1].DB_MAX_OUTPUT_PORT_TYPE +out_data[0] <= mem[0][0].DB_MAX_OUTPUT_PORT_TYPE +out_data[1] <= mem[0][1].DB_MAX_OUTPUT_PORT_TYPE +out_data[2] <= mem[0][2].DB_MAX_OUTPUT_PORT_TYPE +out_data[3] <= mem[0][3].DB_MAX_OUTPUT_PORT_TYPE +out_data[4] <= mem[0][4].DB_MAX_OUTPUT_PORT_TYPE +out_data[5] <= mem[0][5].DB_MAX_OUTPUT_PORT_TYPE +out_data[6] <= mem[0][6].DB_MAX_OUTPUT_PORT_TYPE +out_data[7] <= mem[0][7].DB_MAX_OUTPUT_PORT_TYPE +out_data[8] <= mem[0][8].DB_MAX_OUTPUT_PORT_TYPE +out_data[9] <= mem[0][9].DB_MAX_OUTPUT_PORT_TYPE +out_data[10] <= mem[0][10].DB_MAX_OUTPUT_PORT_TYPE +out_data[11] <= mem[0][11].DB_MAX_OUTPUT_PORT_TYPE +out_data[12] <= mem[0][12].DB_MAX_OUTPUT_PORT_TYPE +out_data[13] <= mem[0][13].DB_MAX_OUTPUT_PORT_TYPE +out_data[14] <= mem[0][14].DB_MAX_OUTPUT_PORT_TYPE +out_data[15] <= mem[0][15].DB_MAX_OUTPUT_PORT_TYPE +out_data[16] <= mem[0][16].DB_MAX_OUTPUT_PORT_TYPE +out_data[17] <= mem[0][17].DB_MAX_OUTPUT_PORT_TYPE +out_data[18] <= mem[0][18].DB_MAX_OUTPUT_PORT_TYPE +out_data[19] <= mem[0][19].DB_MAX_OUTPUT_PORT_TYPE +out_data[20] <= mem[0][20].DB_MAX_OUTPUT_PORT_TYPE +out_data[21] <= mem[0][21].DB_MAX_OUTPUT_PORT_TYPE +out_data[22] <= mem[0][22].DB_MAX_OUTPUT_PORT_TYPE +out_data[23] <= mem[0][23].DB_MAX_OUTPUT_PORT_TYPE +out_data[24] <= mem[0][24].DB_MAX_OUTPUT_PORT_TYPE +out_data[25] <= mem[0][25].DB_MAX_OUTPUT_PORT_TYPE +out_data[26] <= mem[0][26].DB_MAX_OUTPUT_PORT_TYPE +out_data[27] <= mem[0][27].DB_MAX_OUTPUT_PORT_TYPE +out_data[28] <= mem[0][28].DB_MAX_OUTPUT_PORT_TYPE +out_data[29] <= mem[0][29].DB_MAX_OUTPUT_PORT_TYPE +out_data[30] <= mem[0][30].DB_MAX_OUTPUT_PORT_TYPE +out_data[31] <= mem[0][31].DB_MAX_OUTPUT_PORT_TYPE +out_data[32] <= mem[0][32].DB_MAX_OUTPUT_PORT_TYPE +out_data[33] <= mem[0][33].DB_MAX_OUTPUT_PORT_TYPE +out_data[34] <= mem[0][34].DB_MAX_OUTPUT_PORT_TYPE +out_data[35] <= mem[0][35].DB_MAX_OUTPUT_PORT_TYPE +out_data[36] <= mem[0][36].DB_MAX_OUTPUT_PORT_TYPE +out_data[37] <= mem[0][37].DB_MAX_OUTPUT_PORT_TYPE +out_data[38] <= mem[0][38].DB_MAX_OUTPUT_PORT_TYPE +out_data[39] <= mem[0][39].DB_MAX_OUTPUT_PORT_TYPE +out_data[40] <= mem[0][40].DB_MAX_OUTPUT_PORT_TYPE +out_data[41] <= mem[0][41].DB_MAX_OUTPUT_PORT_TYPE +out_data[42] <= mem[0][42].DB_MAX_OUTPUT_PORT_TYPE +out_data[43] <= mem[0][43].DB_MAX_OUTPUT_PORT_TYPE +out_data[44] <= mem[0][44].DB_MAX_OUTPUT_PORT_TYPE +out_data[45] <= mem[0][45].DB_MAX_OUTPUT_PORT_TYPE +out_data[46] <= mem[0][46].DB_MAX_OUTPUT_PORT_TYPE +out_data[47] <= mem[0][47].DB_MAX_OUTPUT_PORT_TYPE +out_data[48] <= mem[0][48].DB_MAX_OUTPUT_PORT_TYPE +out_data[49] <= mem[0][49].DB_MAX_OUTPUT_PORT_TYPE +out_data[50] <= mem[0][50].DB_MAX_OUTPUT_PORT_TYPE +out_data[51] <= mem[0][51].DB_MAX_OUTPUT_PORT_TYPE +out_data[52] <= mem[0][52].DB_MAX_OUTPUT_PORT_TYPE +out_data[53] <= mem[0][53].DB_MAX_OUTPUT_PORT_TYPE +out_data[54] <= mem[0][54].DB_MAX_OUTPUT_PORT_TYPE +out_data[55] <= mem[0][55].DB_MAX_OUTPUT_PORT_TYPE +out_data[56] <= mem[0][56].DB_MAX_OUTPUT_PORT_TYPE +out_data[57] <= mem[0][57].DB_MAX_OUTPUT_PORT_TYPE +out_data[58] <= mem[0][58].DB_MAX_OUTPUT_PORT_TYPE +out_data[59] <= mem[0][59].DB_MAX_OUTPUT_PORT_TYPE +out_data[60] <= mem[0][60].DB_MAX_OUTPUT_PORT_TYPE +out_data[61] <= mem[0][61].DB_MAX_OUTPUT_PORT_TYPE +out_data[62] <= mem[0][62].DB_MAX_OUTPUT_PORT_TYPE +out_data[63] <= mem[0][63].DB_MAX_OUTPUT_PORT_TYPE +out_data[64] <= mem[0][64].DB_MAX_OUTPUT_PORT_TYPE +out_data[65] <= mem[0][65].DB_MAX_OUTPUT_PORT_TYPE +out_data[66] <= mem[0][66].DB_MAX_OUTPUT_PORT_TYPE +out_data[67] <= mem[0][67].DB_MAX_OUTPUT_PORT_TYPE +out_data[68] <= mem[0][68].DB_MAX_OUTPUT_PORT_TYPE +out_data[69] <= mem[0][69].DB_MAX_OUTPUT_PORT_TYPE +out_data[70] <= mem[0][70].DB_MAX_OUTPUT_PORT_TYPE +out_data[71] <= mem[0][71].DB_MAX_OUTPUT_PORT_TYPE +out_data[72] <= mem[0][72].DB_MAX_OUTPUT_PORT_TYPE +out_data[73] <= mem[0][73].DB_MAX_OUTPUT_PORT_TYPE +out_data[74] <= mem[0][74].DB_MAX_OUTPUT_PORT_TYPE +out_data[75] <= mem[0][75].DB_MAX_OUTPUT_PORT_TYPE +out_data[76] <= mem[0][76].DB_MAX_OUTPUT_PORT_TYPE +out_data[77] <= mem[0][77].DB_MAX_OUTPUT_PORT_TYPE +out_data[78] <= mem[0][78].DB_MAX_OUTPUT_PORT_TYPE +out_data[79] <= mem[0][79].DB_MAX_OUTPUT_PORT_TYPE +out_data[80] <= mem[0][80].DB_MAX_OUTPUT_PORT_TYPE +out_data[81] <= mem[0][81].DB_MAX_OUTPUT_PORT_TYPE +out_data[82] <= mem[0][82].DB_MAX_OUTPUT_PORT_TYPE +out_data[83] <= mem[0][83].DB_MAX_OUTPUT_PORT_TYPE +out_data[84] <= mem[0][84].DB_MAX_OUTPUT_PORT_TYPE +out_data[85] <= mem[0][85].DB_MAX_OUTPUT_PORT_TYPE +out_data[86] <= mem[0][86].DB_MAX_OUTPUT_PORT_TYPE +out_data[87] <= mem[0][87].DB_MAX_OUTPUT_PORT_TYPE +out_data[88] <= mem[0][88].DB_MAX_OUTPUT_PORT_TYPE +out_data[89] <= mem[0][89].DB_MAX_OUTPUT_PORT_TYPE +out_data[90] <= mem[0][90].DB_MAX_OUTPUT_PORT_TYPE +out_data[91] <= mem[0][91].DB_MAX_OUTPUT_PORT_TYPE +out_data[92] <= mem[0][92].DB_MAX_OUTPUT_PORT_TYPE +out_data[93] <= mem[0][93].DB_MAX_OUTPUT_PORT_TYPE +out_data[94] <= mem[0][94].DB_MAX_OUTPUT_PORT_TYPE +out_data[95] <= mem[0][95].DB_MAX_OUTPUT_PORT_TYPE +out_data[96] <= mem[0][96].DB_MAX_OUTPUT_PORT_TYPE +out_valid <= mem_used[0].DB_MAX_OUTPUT_PORT_TYPE +out_startofpacket <= mem[0][98].DB_MAX_OUTPUT_PORT_TYPE +out_endofpacket <= mem[0][97].DB_MAX_OUTPUT_PORT_TYPE +out_empty[0] <= in_error[0].DB_MAX_OUTPUT_PORT_TYPE +out_error[0] <= in_error[0].DB_MAX_OUTPUT_PORT_TYPE +out_channel[0] <= in_channel[0].DB_MAX_OUTPUT_PORT_TYPE +out_ready => internal_out_ready.IN1 +csr_address[0] => ~NO_FANOUT~ +csr_address[1] => ~NO_FANOUT~ +csr_write => ~NO_FANOUT~ +csr_read => csr_readdata[31]~reg0.ENA +csr_read => csr_readdata[30]~reg0.ENA +csr_read => csr_readdata[29]~reg0.ENA +csr_read => csr_readdata[28]~reg0.ENA +csr_read => csr_readdata[27]~reg0.ENA +csr_read => csr_readdata[26]~reg0.ENA +csr_read => csr_readdata[25]~reg0.ENA +csr_read => csr_readdata[24]~reg0.ENA +csr_read => csr_readdata[23]~reg0.ENA +csr_read => csr_readdata[22]~reg0.ENA +csr_read => csr_readdata[21]~reg0.ENA +csr_read => csr_readdata[20]~reg0.ENA +csr_read => csr_readdata[19]~reg0.ENA +csr_read => csr_readdata[18]~reg0.ENA +csr_read => csr_readdata[17]~reg0.ENA +csr_read => csr_readdata[16]~reg0.ENA +csr_read => csr_readdata[15]~reg0.ENA +csr_read => csr_readdata[14]~reg0.ENA +csr_read => csr_readdata[13]~reg0.ENA +csr_read => csr_readdata[12]~reg0.ENA +csr_read => csr_readdata[11]~reg0.ENA +csr_read => csr_readdata[10]~reg0.ENA +csr_read => csr_readdata[9]~reg0.ENA +csr_read => csr_readdata[8]~reg0.ENA +csr_read => csr_readdata[7]~reg0.ENA +csr_read => csr_readdata[6]~reg0.ENA +csr_read => csr_readdata[5]~reg0.ENA +csr_read => csr_readdata[4]~reg0.ENA +csr_read => csr_readdata[3]~reg0.ENA +csr_read => csr_readdata[2]~reg0.ENA +csr_read => csr_readdata[1]~reg0.ENA +csr_read => csr_readdata[0]~reg0.ENA +csr_writedata[0] => ~NO_FANOUT~ +csr_writedata[1] => ~NO_FANOUT~ +csr_writedata[2] => ~NO_FANOUT~ +csr_writedata[3] => ~NO_FANOUT~ +csr_writedata[4] => ~NO_FANOUT~ +csr_writedata[5] => ~NO_FANOUT~ +csr_writedata[6] => ~NO_FANOUT~ +csr_writedata[7] => ~NO_FANOUT~ +csr_writedata[8] => ~NO_FANOUT~ +csr_writedata[9] => ~NO_FANOUT~ +csr_writedata[10] => ~NO_FANOUT~ +csr_writedata[11] => ~NO_FANOUT~ +csr_writedata[12] => ~NO_FANOUT~ +csr_writedata[13] => ~NO_FANOUT~ +csr_writedata[14] => ~NO_FANOUT~ +csr_writedata[15] => ~NO_FANOUT~ +csr_writedata[16] => ~NO_FANOUT~ +csr_writedata[17] => ~NO_FANOUT~ +csr_writedata[18] => ~NO_FANOUT~ +csr_writedata[19] => ~NO_FANOUT~ +csr_writedata[20] => ~NO_FANOUT~ +csr_writedata[21] => ~NO_FANOUT~ +csr_writedata[22] => ~NO_FANOUT~ +csr_writedata[23] => ~NO_FANOUT~ +csr_writedata[24] => ~NO_FANOUT~ +csr_writedata[25] => ~NO_FANOUT~ +csr_writedata[26] => ~NO_FANOUT~ +csr_writedata[27] => ~NO_FANOUT~ +csr_writedata[28] => ~NO_FANOUT~ +csr_writedata[29] => ~NO_FANOUT~ +csr_writedata[30] => ~NO_FANOUT~ +csr_writedata[31] => ~NO_FANOUT~ +csr_readdata[0] <= csr_readdata[0]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[1] <= csr_readdata[1]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[2] <= csr_readdata[2]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[3] <= csr_readdata[3]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[4] <= csr_readdata[4]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[5] <= csr_readdata[5]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[6] <= csr_readdata[6]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[7] <= csr_readdata[7]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[8] <= csr_readdata[8]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[9] <= csr_readdata[9]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[10] <= csr_readdata[10]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[11] <= csr_readdata[11]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[12] <= csr_readdata[12]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[13] <= csr_readdata[13]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[14] <= csr_readdata[14]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[15] <= csr_readdata[15]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[16] <= csr_readdata[16]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[17] <= csr_readdata[17]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[18] <= csr_readdata[18]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[19] <= csr_readdata[19]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[20] <= csr_readdata[20]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[21] <= csr_readdata[21]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[22] <= csr_readdata[22]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[23] <= csr_readdata[23]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[24] <= csr_readdata[24]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[25] <= csr_readdata[25]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[26] <= csr_readdata[26]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[27] <= csr_readdata[27]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[28] <= csr_readdata[28]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[29] <= csr_readdata[29]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[30] <= csr_readdata[30]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[31] <= csr_readdata[31]~reg0.DB_MAX_OUTPUT_PORT_TYPE +almost_full_data <= +almost_empty_data <= + + +|lights|nios_system:NiosII|altera_merlin_slave_agent:lcd_blon_s1_translator_avalon_universal_slave_0_agent +clk => clk.IN1 +reset => reset.IN1 +m0_address[0] <= +m0_address[1] <= +m0_address[2] <= cp_data[38].DB_MAX_OUTPUT_PORT_TYPE +m0_address[3] <= cp_data[39].DB_MAX_OUTPUT_PORT_TYPE +m0_address[4] <= cp_data[40].DB_MAX_OUTPUT_PORT_TYPE +m0_address[5] <= cp_data[41].DB_MAX_OUTPUT_PORT_TYPE +m0_address[6] <= cp_data[42].DB_MAX_OUTPUT_PORT_TYPE +m0_address[7] <= cp_data[43].DB_MAX_OUTPUT_PORT_TYPE +m0_address[8] <= cp_data[44].DB_MAX_OUTPUT_PORT_TYPE +m0_address[9] <= cp_data[45].DB_MAX_OUTPUT_PORT_TYPE +m0_address[10] <= cp_data[46].DB_MAX_OUTPUT_PORT_TYPE +m0_address[11] <= cp_data[47].DB_MAX_OUTPUT_PORT_TYPE +m0_address[12] <= cp_data[48].DB_MAX_OUTPUT_PORT_TYPE +m0_address[13] <= cp_data[49].DB_MAX_OUTPUT_PORT_TYPE +m0_address[14] <= cp_data[50].DB_MAX_OUTPUT_PORT_TYPE +m0_address[15] <= cp_data[51].DB_MAX_OUTPUT_PORT_TYPE +m0_address[16] <= cp_data[52].DB_MAX_OUTPUT_PORT_TYPE +m0_address[17] <= cp_data[53].DB_MAX_OUTPUT_PORT_TYPE +m0_address[18] <= cp_data[54].DB_MAX_OUTPUT_PORT_TYPE +m0_burstcount[0] <= m0_burstcount.DB_MAX_OUTPUT_PORT_TYPE +m0_burstcount[1] <= m0_burstcount.DB_MAX_OUTPUT_PORT_TYPE +m0_burstcount[2] <= m0_burstcount.DB_MAX_OUTPUT_PORT_TYPE +m0_byteenable[0] <= cp_data[32].DB_MAX_OUTPUT_PORT_TYPE +m0_byteenable[1] <= cp_data[33].DB_MAX_OUTPUT_PORT_TYPE +m0_byteenable[2] <= cp_data[34].DB_MAX_OUTPUT_PORT_TYPE +m0_byteenable[3] <= cp_data[35].DB_MAX_OUTPUT_PORT_TYPE +m0_read <= m0_read.DB_MAX_OUTPUT_PORT_TYPE +m0_readdata[0] => rdata_fifo_src_data[0].DATAIN +m0_readdata[1] => rdata_fifo_src_data[1].DATAIN +m0_readdata[2] => rdata_fifo_src_data[2].DATAIN +m0_readdata[3] => rdata_fifo_src_data[3].DATAIN +m0_readdata[4] => rdata_fifo_src_data[4].DATAIN +m0_readdata[5] => rdata_fifo_src_data[5].DATAIN +m0_readdata[6] => rdata_fifo_src_data[6].DATAIN +m0_readdata[7] => rdata_fifo_src_data[7].DATAIN +m0_readdata[8] => rdata_fifo_src_data[8].DATAIN +m0_readdata[9] => rdata_fifo_src_data[9].DATAIN +m0_readdata[10] => rdata_fifo_src_data[10].DATAIN +m0_readdata[11] => rdata_fifo_src_data[11].DATAIN +m0_readdata[12] => rdata_fifo_src_data[12].DATAIN +m0_readdata[13] => rdata_fifo_src_data[13].DATAIN +m0_readdata[14] => rdata_fifo_src_data[14].DATAIN +m0_readdata[15] => rdata_fifo_src_data[15].DATAIN +m0_readdata[16] => rdata_fifo_src_data[16].DATAIN +m0_readdata[17] => rdata_fifo_src_data[17].DATAIN +m0_readdata[18] => rdata_fifo_src_data[18].DATAIN +m0_readdata[19] => rdata_fifo_src_data[19].DATAIN +m0_readdata[20] => rdata_fifo_src_data[20].DATAIN +m0_readdata[21] => rdata_fifo_src_data[21].DATAIN +m0_readdata[22] => rdata_fifo_src_data[22].DATAIN +m0_readdata[23] => rdata_fifo_src_data[23].DATAIN +m0_readdata[24] => rdata_fifo_src_data[24].DATAIN +m0_readdata[25] => rdata_fifo_src_data[25].DATAIN +m0_readdata[26] => rdata_fifo_src_data[26].DATAIN +m0_readdata[27] => rdata_fifo_src_data[27].DATAIN +m0_readdata[28] => rdata_fifo_src_data[28].DATAIN +m0_readdata[29] => rdata_fifo_src_data[29].DATAIN +m0_readdata[30] => rdata_fifo_src_data[30].DATAIN +m0_readdata[31] => rdata_fifo_src_data[31].DATAIN +m0_waitrequest => cp_ready.IN0 +m0_write <= m0_write.DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[0] <= cp_data[0].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[1] <= cp_data[1].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[2] <= cp_data[2].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[3] <= cp_data[3].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[4] <= cp_data[4].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[5] <= cp_data[5].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[6] <= cp_data[6].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[7] <= cp_data[7].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[8] <= cp_data[8].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[9] <= cp_data[9].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[10] <= cp_data[10].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[11] <= cp_data[11].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[12] <= cp_data[12].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[13] <= cp_data[13].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[14] <= cp_data[14].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[15] <= cp_data[15].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[16] <= cp_data[16].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[17] <= cp_data[17].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[18] <= cp_data[18].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[19] <= cp_data[19].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[20] <= cp_data[20].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[21] <= cp_data[21].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[22] <= cp_data[22].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[23] <= cp_data[23].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[24] <= cp_data[24].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[25] <= cp_data[25].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[26] <= cp_data[26].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[27] <= cp_data[27].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[28] <= cp_data[28].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[29] <= cp_data[29].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[30] <= cp_data[30].DB_MAX_OUTPUT_PORT_TYPE +m0_writedata[31] <= cp_data[31].DB_MAX_OUTPUT_PORT_TYPE +m0_readdatavalid => rdata_fifo_src_valid.IN0 +m0_debugaccess <= cp_data[87].DB_MAX_OUTPUT_PORT_TYPE +m0_lock <= m0_lock.DB_MAX_OUTPUT_PORT_TYPE +m0_response[0] => rdata_fifo_src_data[32].DATAIN +m0_response[1] => rdata_fifo_src_data[33].DATAIN +m0_writeresponserequest <= m0_writeresponserequest.DB_MAX_OUTPUT_PORT_TYPE +m0_writeresponsevalid => rdata_fifo_src_valid.IN1 +rf_source_data[0] <= +rf_source_data[1] <= +rf_source_data[2] <= +rf_source_data[3] <= +rf_source_data[4] <= +rf_source_data[5] <= +rf_source_data[6] <= +rf_source_data[7] <= +rf_source_data[8] <= +rf_source_data[9] <= +rf_source_data[10] <= +rf_source_data[11] <= +rf_source_data[12] <= +rf_source_data[13] <= +rf_source_data[14] <= +rf_source_data[15] <= +rf_source_data[16] <= +rf_source_data[17] <= +rf_source_data[18] <= +rf_source_data[19] <= +rf_source_data[20] <= +rf_source_data[21] <= +rf_source_data[22] <= +rf_source_data[23] <= +rf_source_data[24] <= +rf_source_data[25] <= +rf_source_data[26] <= +rf_source_data[27] <= +rf_source_data[28] <= +rf_source_data[29] <= +rf_source_data[30] <= +rf_source_data[31] <= +rf_source_data[32] <= cp_data[32].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[33] <= cp_data[33].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[34] <= cp_data[34].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[35] <= cp_data[35].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[36] <= cp_data[36].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[37] <= cp_data[37].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[38] <= cp_data[38].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[39] <= cp_data[39].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[40] <= cp_data[40].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[41] <= cp_data[41].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[42] <= cp_data[42].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[43] <= cp_data[43].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[44] <= cp_data[44].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[45] <= cp_data[45].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[46] <= cp_data[46].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[47] <= cp_data[47].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[48] <= cp_data[48].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[49] <= cp_data[49].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[50] <= cp_data[50].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[51] <= cp_data[51].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[52] <= cp_data[52].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[53] <= cp_data[53].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[54] <= cp_data[54].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[55] <= cp_data[55].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[56] <= cp_data[56].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[57] <= cp_data[57].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[58] <= cp_data[58].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[59] <= cp_data[59].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[60] <= cp_data[60].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[61] <= cp_data[61].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[62] <= cp_data[62].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[63] <= cp_data[63].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[64] <= cp_data[64].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[65] <= cp_data[65].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[66] <= cp_data[66].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[67] <= cp_data[67].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[68] <= cp_data[68].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[69] <= cp_data[69].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[70] <= cp_data[70].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[71] <= cp_data[71].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[72] <= cp_data[72].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[73] <= cp_data[73].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[74] <= cp_data[74].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[75] <= cp_data[75].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[76] <= cp_data[76].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[77] <= cp_data[77].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[78] <= cp_data[78].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[79] <= cp_data[79].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[80] <= cp_data[80].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[81] <= cp_data[81].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[82] <= cp_data[82].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[83] <= cp_data[83].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[84] <= cp_data[84].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[85] <= cp_data[85].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[86] <= cp_data[86].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[87] <= cp_data[87].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[88] <= +rf_source_data[89] <= +rf_source_data[90] <= cp_data[90].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[91] <= cp_data[91].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[92] <= cp_data[92].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[93] <= cp_data[93].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[94] <= cp_data[94].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[95] <= cp_data[95].DB_MAX_OUTPUT_PORT_TYPE +rf_source_data[96] <= nonposted_write_endofpacket.DB_MAX_OUTPUT_PORT_TYPE +rf_source_valid <= rf_source_valid.DB_MAX_OUTPUT_PORT_TYPE +rf_source_startofpacket <= cp_startofpacket.DB_MAX_OUTPUT_PORT_TYPE +rf_source_endofpacket <= cp_endofpacket.DB_MAX_OUTPUT_PORT_TYPE +rf_source_ready => cp_ready.IN1 +rf_source_ready => m0_write.IN1 +rf_source_ready => m0_lock.IN1 +rf_source_ready => rf_source_valid.IN1 +rf_source_ready => m0_read.IN1 +rf_sink_data[0] => ~NO_FANOUT~ +rf_sink_data[1] => ~NO_FANOUT~ +rf_sink_data[2] => ~NO_FANOUT~ +rf_sink_data[3] => ~NO_FANOUT~ +rf_sink_data[4] => ~NO_FANOUT~ +rf_sink_data[5] => ~NO_FANOUT~ +rf_sink_data[6] => ~NO_FANOUT~ +rf_sink_data[7] => ~NO_FANOUT~ +rf_sink_data[8] => ~NO_FANOUT~ +rf_sink_data[9] => ~NO_FANOUT~ +rf_sink_data[10] => ~NO_FANOUT~ +rf_sink_data[11] => ~NO_FANOUT~ +rf_sink_data[12] => ~NO_FANOUT~ +rf_sink_data[13] => ~NO_FANOUT~ +rf_sink_data[14] => ~NO_FANOUT~ +rf_sink_data[15] => ~NO_FANOUT~ +rf_sink_data[16] => ~NO_FANOUT~ +rf_sink_data[17] => ~NO_FANOUT~ +rf_sink_data[18] => ~NO_FANOUT~ +rf_sink_data[19] => ~NO_FANOUT~ +rf_sink_data[20] => ~NO_FANOUT~ +rf_sink_data[21] => ~NO_FANOUT~ +rf_sink_data[22] => ~NO_FANOUT~ +rf_sink_data[23] => ~NO_FANOUT~ +rf_sink_data[24] => ~NO_FANOUT~ +rf_sink_data[25] => ~NO_FANOUT~ +rf_sink_data[26] => ~NO_FANOUT~ +rf_sink_data[27] => ~NO_FANOUT~ +rf_sink_data[28] => ~NO_FANOUT~ +rf_sink_data[29] => ~NO_FANOUT~ +rf_sink_data[30] => ~NO_FANOUT~ +rf_sink_data[31] => ~NO_FANOUT~ +rf_sink_data[32] => rp_data[32].DATAIN +rf_sink_data[33] => rp_data[33].DATAIN +rf_sink_data[34] => rp_data[34].DATAIN +rf_sink_data[35] => rp_data[35].DATAIN +rf_sink_data[36] => rf_sink_addr[0].IN1 +rf_sink_data[37] => rf_sink_addr[1].IN1 +rf_sink_data[38] => rf_sink_addr[2].IN1 +rf_sink_data[39] => rf_sink_addr[3].IN1 +rf_sink_data[40] => rf_sink_addr[4].IN1 +rf_sink_data[41] => rf_sink_addr[5].IN1 +rf_sink_data[42] => rf_sink_addr[6].IN1 +rf_sink_data[43] => rf_sink_addr[7].IN1 +rf_sink_data[44] => rf_sink_addr[8].IN1 +rf_sink_data[45] => rf_sink_addr[9].IN1 +rf_sink_data[46] => rf_sink_addr[10].IN1 +rf_sink_data[47] => rf_sink_addr[11].IN1 +rf_sink_data[48] => rf_sink_addr[12].IN1 +rf_sink_data[49] => rf_sink_addr[13].IN1 +rf_sink_data[50] => rf_sink_addr[14].IN1 +rf_sink_data[51] => rf_sink_addr[15].IN1 +rf_sink_data[52] => rf_sink_addr[16].IN1 +rf_sink_data[53] => rf_sink_addr[17].IN1 +rf_sink_data[54] => rf_sink_addr[18].IN1 +rf_sink_data[55] => rf_sink_compressed.IN1 +rf_sink_data[56] => rp_data[56].DATAIN +rf_sink_data[57] => comb.OUTPUTSELECT +rf_sink_data[57] => rp_data[57].DATAIN +rf_sink_data[58] => rp_data.IN0 +rf_sink_data[59] => rp_data[59].DATAIN +rf_sink_data[60] => rp_data[60].DATAIN +rf_sink_data[61] => rf_sink_byte_cnt[0].IN1 +rf_sink_data[62] => rf_sink_byte_cnt[1].IN1 +rf_sink_data[63] => rf_sink_byte_cnt[2].IN1 +rf_sink_data[64] => rf_sink_burstwrap[0].IN1 +rf_sink_data[65] => rf_sink_burstwrap[1].IN1 +rf_sink_data[66] => rf_sink_burstwrap[2].IN1 +rf_sink_data[67] => rf_sink_burstsize[0].IN1 +rf_sink_data[68] => rf_sink_burstsize[1].IN1 +rf_sink_data[69] => rf_sink_burstsize[2].IN1 +rf_sink_data[70] => rp_data[70].DATAIN +rf_sink_data[71] => rp_data[71].DATAIN +rf_sink_data[72] => rp_data[72].DATAIN +rf_sink_data[73] => rp_data[73].DATAIN +rf_sink_data[74] => rp_data[74].DATAIN +rf_sink_data[75] => rp_data[75].DATAIN +rf_sink_data[76] => rp_data[81].DATAIN +rf_sink_data[77] => rp_data[82].DATAIN +rf_sink_data[78] => rp_data[83].DATAIN +rf_sink_data[79] => rp_data[84].DATAIN +rf_sink_data[80] => rp_data[85].DATAIN +rf_sink_data[81] => rp_data[76].DATAIN +rf_sink_data[82] => rp_data[77].DATAIN +rf_sink_data[83] => rp_data[78].DATAIN +rf_sink_data[84] => rp_data[79].DATAIN +rf_sink_data[85] => rp_data[80].DATAIN +rf_sink_data[86] => rp_data[86].DATAIN +rf_sink_data[87] => rp_data[87].DATAIN +rf_sink_data[88] => rp_data[88].DATAIN +rf_sink_data[89] => rp_data[89].DATAIN +rf_sink_data[90] => rp_data[90].DATAIN +rf_sink_data[91] => rp_data[91].DATAIN +rf_sink_data[92] => rp_data[92].DATAIN +rf_sink_data[93] => rp_data[93].DATAIN +rf_sink_data[94] => ~NO_FANOUT~ +rf_sink_data[95] => ~NO_FANOUT~ +rf_sink_data[96] => rdata_fifo_sink_ready.IN0 +rf_sink_data[96] => comb.IN0 +rf_sink_valid => rdata_fifo_sink_ready.IN1 +rf_sink_valid => comb.IN1 +rf_sink_startofpacket => comb.DATAA +rf_sink_endofpacket => rf_sink_endofpacket.IN1 +rf_sink_ready <= altera_merlin_burst_uncompressor:uncompressor.sink_ready +rdata_fifo_src_data[0] <= m0_readdata[0].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[1] <= m0_readdata[1].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[2] <= m0_readdata[2].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[3] <= m0_readdata[3].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[4] <= m0_readdata[4].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[5] <= m0_readdata[5].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[6] <= m0_readdata[6].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[7] <= m0_readdata[7].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[8] <= m0_readdata[8].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[9] <= m0_readdata[9].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[10] <= m0_readdata[10].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[11] <= m0_readdata[11].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[12] <= m0_readdata[12].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[13] <= m0_readdata[13].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[14] <= m0_readdata[14].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[15] <= m0_readdata[15].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[16] <= m0_readdata[16].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[17] <= m0_readdata[17].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[18] <= m0_readdata[18].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[19] <= m0_readdata[19].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[20] <= m0_readdata[20].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[21] <= m0_readdata[21].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[22] <= m0_readdata[22].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[23] <= m0_readdata[23].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[24] <= m0_readdata[24].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[25] <= m0_readdata[25].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[26] <= m0_readdata[26].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[27] <= m0_readdata[27].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[28] <= m0_readdata[28].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[29] <= m0_readdata[29].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[30] <= m0_readdata[30].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[31] <= m0_readdata[31].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[32] <= m0_response[0].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_data[33] <= m0_response[1].DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_valid <= rdata_fifo_src_valid.DB_MAX_OUTPUT_PORT_TYPE +rdata_fifo_src_ready => ~NO_FANOUT~ +rdata_fifo_sink_data[0] => rp_data[0].DATAIN +rdata_fifo_sink_data[1] => rp_data[1].DATAIN +rdata_fifo_sink_data[2] => rp_data[2].DATAIN +rdata_fifo_sink_data[3] => rp_data[3].DATAIN +rdata_fifo_sink_data[4] => rp_data[4].DATAIN +rdata_fifo_sink_data[5] => rp_data[5].DATAIN +rdata_fifo_sink_data[6] => rp_data[6].DATAIN +rdata_fifo_sink_data[7] => rp_data[7].DATAIN +rdata_fifo_sink_data[8] => rp_data[8].DATAIN +rdata_fifo_sink_data[9] => rp_data[9].DATAIN +rdata_fifo_sink_data[10] => rp_data[10].DATAIN +rdata_fifo_sink_data[11] => rp_data[11].DATAIN +rdata_fifo_sink_data[12] => rp_data[12].DATAIN +rdata_fifo_sink_data[13] => rp_data[13].DATAIN +rdata_fifo_sink_data[14] => rp_data[14].DATAIN +rdata_fifo_sink_data[15] => rp_data[15].DATAIN +rdata_fifo_sink_data[16] => rp_data[16].DATAIN +rdata_fifo_sink_data[17] => rp_data[17].DATAIN +rdata_fifo_sink_data[18] => rp_data[18].DATAIN +rdata_fifo_sink_data[19] => rp_data[19].DATAIN +rdata_fifo_sink_data[20] => rp_data[20].DATAIN +rdata_fifo_sink_data[21] => rp_data[21].DATAIN +rdata_fifo_sink_data[22] => rp_data[22].DATAIN +rdata_fifo_sink_data[23] => rp_data[23].DATAIN +rdata_fifo_sink_data[24] => rp_data[24].DATAIN +rdata_fifo_sink_data[25] => rp_data[25].DATAIN +rdata_fifo_sink_data[26] => rp_data[26].DATAIN +rdata_fifo_sink_data[27] => rp_data[27].DATAIN +rdata_fifo_sink_data[28] => rp_data[28].DATAIN +rdata_fifo_sink_data[29] => rp_data[29].DATAIN +rdata_fifo_sink_data[30] => rp_data[30].DATAIN +rdata_fifo_sink_data[31] => rp_data[31].DATAIN +rdata_fifo_sink_data[32] => rp_data[94].DATAIN +rdata_fifo_sink_data[33] => rp_data[95].DATAIN +rdata_fifo_sink_valid => rp_valid.IN1 +rdata_fifo_sink_valid => rdata_fifo_sink_ready.IN0 +rdata_fifo_sink_valid => comb.IN1 +rdata_fifo_sink_ready <= rdata_fifo_sink_ready.DB_MAX_OUTPUT_PORT_TYPE +cp_ready <= cp_ready.DB_MAX_OUTPUT_PORT_TYPE +cp_valid => local_lock.IN0 +cp_valid => local_write.IN0 +cp_valid => local_read.IN0 +cp_valid => local_compressed_read.IN0 +cp_data[0] => m0_writedata[0].DATAIN +cp_data[1] => m0_writedata[1].DATAIN +cp_data[2] => m0_writedata[2].DATAIN +cp_data[3] => m0_writedata[3].DATAIN +cp_data[4] => m0_writedata[4].DATAIN +cp_data[5] => m0_writedata[5].DATAIN +cp_data[6] => m0_writedata[6].DATAIN +cp_data[7] => m0_writedata[7].DATAIN +cp_data[8] => m0_writedata[8].DATAIN +cp_data[9] => m0_writedata[9].DATAIN +cp_data[10] => m0_writedata[10].DATAIN +cp_data[11] => m0_writedata[11].DATAIN +cp_data[12] => m0_writedata[12].DATAIN +cp_data[13] => m0_writedata[13].DATAIN +cp_data[14] => m0_writedata[14].DATAIN +cp_data[15] => m0_writedata[15].DATAIN +cp_data[16] => m0_writedata[16].DATAIN +cp_data[17] => m0_writedata[17].DATAIN +cp_data[18] => m0_writedata[18].DATAIN +cp_data[19] => m0_writedata[19].DATAIN +cp_data[20] => m0_writedata[20].DATAIN +cp_data[21] => m0_writedata[21].DATAIN +cp_data[22] => m0_writedata[22].DATAIN +cp_data[23] => m0_writedata[23].DATAIN +cp_data[24] => m0_writedata[24].DATAIN +cp_data[25] => m0_writedata[25].DATAIN +cp_data[26] => m0_writedata[26].DATAIN +cp_data[27] => m0_writedata[27].DATAIN +cp_data[28] => m0_writedata[28].DATAIN +cp_data[29] => m0_writedata[29].DATAIN +cp_data[30] => m0_writedata[30].DATAIN +cp_data[31] => m0_writedata[31].DATAIN +cp_data[32] => rf_source_data[32].DATAIN +cp_data[32] => m0_byteenable[0].DATAIN +cp_data[33] => rf_source_data[33].DATAIN +cp_data[33] => m0_byteenable[1].DATAIN +cp_data[34] => rf_source_data[34].DATAIN +cp_data[34] => m0_byteenable[2].DATAIN +cp_data[35] => rf_source_data[35].DATAIN +cp_data[35] => m0_byteenable[3].DATAIN +cp_data[36] => rf_source_data[36].DATAIN +cp_data[37] => rf_source_data[37].DATAIN +cp_data[38] => rf_source_data[38].DATAIN +cp_data[38] => m0_address[2].DATAIN +cp_data[39] => rf_source_data[39].DATAIN +cp_data[39] => m0_address[3].DATAIN +cp_data[40] => rf_source_data[40].DATAIN +cp_data[40] => m0_address[4].DATAIN +cp_data[41] => rf_source_data[41].DATAIN +cp_data[41] => m0_address[5].DATAIN +cp_data[42] => rf_source_data[42].DATAIN +cp_data[42] => m0_address[6].DATAIN +cp_data[43] => rf_source_data[43].DATAIN +cp_data[43] => m0_address[7].DATAIN +cp_data[44] => rf_source_data[44].DATAIN +cp_data[44] => m0_address[8].DATAIN +cp_data[45] => rf_source_data[45].DATAIN +cp_data[45] => m0_address[9].DATAIN +cp_data[46] => rf_source_data[46].DATAIN +cp_data[46] => m0_address[10].DATAIN +cp_data[47] => rf_source_data[47].DATAIN +cp_data[47] => m0_address[11].DATAIN +cp_data[48] => rf_source_data[48].DATAIN +cp_data[48] => m0_address[12].DATAIN +cp_data[49] => rf_source_data[49].DATAIN +cp_data[49] => m0_address[13].DATAIN +cp_data[50] => rf_source_data[50].DATAIN +cp_data[50] => m0_address[14].DATAIN +cp_data[51] => rf_source_data[51].DATAIN +cp_data[51] => m0_address[15].DATAIN +cp_data[52] => rf_source_data[52].DATAIN +cp_data[52] => m0_address[16].DATAIN +cp_data[53] => rf_source_data[53].DATAIN +cp_data[53] => m0_address[17].DATAIN +cp_data[54] => rf_source_data[54].DATAIN +cp_data[54] => m0_address[18].DATAIN +cp_data[55] => local_compressed_read.IN1 +cp_data[55] => rf_source_data[55].DATAIN +cp_data[56] => rf_source_data[56].DATAIN +cp_data[56] => m0_writeresponserequest.IN1 +cp_data[56] => comb.IN1 +cp_data[57] => local_write.IN1 +cp_data[57] => rf_source_data[57].DATAIN +cp_data[58] => local_read.IN1 +cp_data[58] => rf_source_data[58].DATAIN +cp_data[59] => local_lock.IN1 +cp_data[59] => rf_source_data[59].DATAIN +cp_data[60] => rf_source_data[60].DATAIN +cp_data[61] => m0_burstcount.DATAA +cp_data[61] => rf_source_data[61].DATAIN +cp_data[62] => m0_burstcount.DATAA +cp_data[62] => rf_source_data[62].DATAIN +cp_data[63] => m0_burstcount.DATAA +cp_data[63] => rf_source_data[63].DATAIN +cp_data[64] => rf_source_data[64].DATAIN +cp_data[65] => rf_source_data[65].DATAIN +cp_data[66] => rf_source_data[66].DATAIN +cp_data[67] => rf_source_data[67].DATAIN +cp_data[68] => rf_source_data[68].DATAIN +cp_data[69] => rf_source_data[69].DATAIN +cp_data[70] => rf_source_data[70].DATAIN +cp_data[71] => rf_source_data[71].DATAIN +cp_data[72] => rf_source_data[72].DATAIN +cp_data[73] => rf_source_data[73].DATAIN +cp_data[74] => rf_source_data[74].DATAIN +cp_data[75] => rf_source_data[75].DATAIN +cp_data[76] => rf_source_data[76].DATAIN +cp_data[77] => rf_source_data[77].DATAIN +cp_data[78] => rf_source_data[78].DATAIN +cp_data[79] => rf_source_data[79].DATAIN +cp_data[80] => rf_source_data[80].DATAIN +cp_data[81] => rf_source_data[81].DATAIN +cp_data[82] => rf_source_data[82].DATAIN +cp_data[83] => rf_source_data[83].DATAIN +cp_data[84] => rf_source_data[84].DATAIN +cp_data[85] => rf_source_data[85].DATAIN +cp_data[86] => rf_source_data[86].DATAIN +cp_data[87] => rf_source_data[87].DATAIN +cp_data[87] => m0_debugaccess.DATAIN +cp_data[88] => ~NO_FANOUT~ +cp_data[89] => ~NO_FANOUT~ +cp_data[90] => rf_source_data[90].DATAIN +cp_data[91] => rf_source_data[91].DATAIN +cp_data[92] => rf_source_data[92].DATAIN +cp_data[93] => rf_source_data[93].DATAIN +cp_data[94] => rf_source_data[94].DATAIN +cp_data[95] => rf_source_data[95].DATAIN +cp_channel[0] => ~NO_FANOUT~ +cp_channel[1] => ~NO_FANOUT~ +cp_channel[2] => ~NO_FANOUT~ +cp_channel[3] => ~NO_FANOUT~ +cp_channel[4] => ~NO_FANOUT~ +cp_channel[5] => ~NO_FANOUT~ +cp_channel[6] => ~NO_FANOUT~ +cp_channel[7] => ~NO_FANOUT~ +cp_channel[8] => ~NO_FANOUT~ +cp_channel[9] => ~NO_FANOUT~ +cp_channel[10] => ~NO_FANOUT~ +cp_channel[11] => ~NO_FANOUT~ +cp_channel[12] => ~NO_FANOUT~ +cp_channel[13] => ~NO_FANOUT~ +cp_channel[14] => ~NO_FANOUT~ +cp_channel[15] => ~NO_FANOUT~ +cp_channel[16] => ~NO_FANOUT~ +cp_channel[17] => ~NO_FANOUT~ +cp_startofpacket => rf_source_startofpacket.DATAIN +cp_endofpacket => nonposted_write_endofpacket.IN1 +cp_endofpacket => rf_source_endofpacket.DATAIN +rp_ready => rp_ready.IN1 +rp_valid <= rp_valid.DB_MAX_OUTPUT_PORT_TYPE +rp_data[0] <= rdata_fifo_sink_data[0].DB_MAX_OUTPUT_PORT_TYPE +rp_data[1] <= rdata_fifo_sink_data[1].DB_MAX_OUTPUT_PORT_TYPE +rp_data[2] <= rdata_fifo_sink_data[2].DB_MAX_OUTPUT_PORT_TYPE +rp_data[3] <= rdata_fifo_sink_data[3].DB_MAX_OUTPUT_PORT_TYPE +rp_data[4] <= rdata_fifo_sink_data[4].DB_MAX_OUTPUT_PORT_TYPE +rp_data[5] <= rdata_fifo_sink_data[5].DB_MAX_OUTPUT_PORT_TYPE +rp_data[6] <= rdata_fifo_sink_data[6].DB_MAX_OUTPUT_PORT_TYPE +rp_data[7] <= rdata_fifo_sink_data[7].DB_MAX_OUTPUT_PORT_TYPE +rp_data[8] <= rdata_fifo_sink_data[8].DB_MAX_OUTPUT_PORT_TYPE +rp_data[9] <= rdata_fifo_sink_data[9].DB_MAX_OUTPUT_PORT_TYPE +rp_data[10] <= rdata_fifo_sink_data[10].DB_MAX_OUTPUT_PORT_TYPE +rp_data[11] <= rdata_fifo_sink_data[11].DB_MAX_OUTPUT_PORT_TYPE +rp_data[12] <= rdata_fifo_sink_data[12].DB_MAX_OUTPUT_PORT_TYPE +rp_data[13] <= rdata_fifo_sink_data[13].DB_MAX_OUTPUT_PORT_TYPE +rp_data[14] <= rdata_fifo_sink_data[14].DB_MAX_OUTPUT_PORT_TYPE +rp_data[15] <= rdata_fifo_sink_data[15].DB_MAX_OUTPUT_PORT_TYPE +rp_data[16] <= rdata_fifo_sink_data[16].DB_MAX_OUTPUT_PORT_TYPE +rp_data[17] <= rdata_fifo_sink_data[17].DB_MAX_OUTPUT_PORT_TYPE +rp_data[18] <= rdata_fifo_sink_data[18].DB_MAX_OUTPUT_PORT_TYPE +rp_data[19] <= rdata_fifo_sink_data[19].DB_MAX_OUTPUT_PORT_TYPE +rp_data[20] <= rdata_fifo_sink_data[20].DB_MAX_OUTPUT_PORT_TYPE +rp_data[21] <= rdata_fifo_sink_data[21].DB_MAX_OUTPUT_PORT_TYPE +rp_data[22] <= rdata_fifo_sink_data[22].DB_MAX_OUTPUT_PORT_TYPE +rp_data[23] <= rdata_fifo_sink_data[23].DB_MAX_OUTPUT_PORT_TYPE +rp_data[24] <= rdata_fifo_sink_data[24].DB_MAX_OUTPUT_PORT_TYPE +rp_data[25] <= rdata_fifo_sink_data[25].DB_MAX_OUTPUT_PORT_TYPE +rp_data[26] <= rdata_fifo_sink_data[26].DB_MAX_OUTPUT_PORT_TYPE +rp_data[27] <= rdata_fifo_sink_data[27].DB_MAX_OUTPUT_PORT_TYPE +rp_data[28] <= rdata_fifo_sink_data[28].DB_MAX_OUTPUT_PORT_TYPE +rp_data[29] <= rdata_fifo_sink_data[29].DB_MAX_OUTPUT_PORT_TYPE +rp_data[30] <= rdata_fifo_sink_data[30].DB_MAX_OUTPUT_PORT_TYPE +rp_data[31] <= rdata_fifo_sink_data[31].DB_MAX_OUTPUT_PORT_TYPE +rp_data[32] <= rf_sink_data[32].DB_MAX_OUTPUT_PORT_TYPE +rp_data[33] <= rf_sink_data[33].DB_MAX_OUTPUT_PORT_TYPE +rp_data[34] <= rf_sink_data[34].DB_MAX_OUTPUT_PORT_TYPE +rp_data[35] <= rf_sink_data[35].DB_MAX_OUTPUT_PORT_TYPE +rp_data[36] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[37] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[38] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[39] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[40] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[41] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[42] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[43] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[44] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[45] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[46] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[47] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[48] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[49] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[50] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[51] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[52] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[53] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[54] <= altera_merlin_burst_uncompressor:uncompressor.source_addr +rp_data[55] <= altera_merlin_burst_uncompressor:uncompressor.source_is_compressed +rp_data[56] <= rf_sink_data[56].DB_MAX_OUTPUT_PORT_TYPE +rp_data[57] <= rf_sink_data[57].DB_MAX_OUTPUT_PORT_TYPE +rp_data[58] <= rp_data.DB_MAX_OUTPUT_PORT_TYPE +rp_data[59] <= rf_sink_data[59].DB_MAX_OUTPUT_PORT_TYPE +rp_data[60] <= rf_sink_data[60].DB_MAX_OUTPUT_PORT_TYPE +rp_data[61] <= altera_merlin_burst_uncompressor:uncompressor.source_byte_cnt +rp_data[62] <= altera_merlin_burst_uncompressor:uncompressor.source_byte_cnt +rp_data[63] <= altera_merlin_burst_uncompressor:uncompressor.source_byte_cnt +rp_data[64] <= altera_merlin_burst_uncompressor:uncompressor.source_burstwrap +rp_data[65] <= altera_merlin_burst_uncompressor:uncompressor.source_burstwrap +rp_data[66] <= altera_merlin_burst_uncompressor:uncompressor.source_burstwrap +rp_data[67] <= altera_merlin_burst_uncompressor:uncompressor.source_burstsize +rp_data[68] <= altera_merlin_burst_uncompressor:uncompressor.source_burstsize +rp_data[69] <= altera_merlin_burst_uncompressor:uncompressor.source_burstsize +rp_data[70] <= rf_sink_data[70].DB_MAX_OUTPUT_PORT_TYPE +rp_data[71] <= rf_sink_data[71].DB_MAX_OUTPUT_PORT_TYPE +rp_data[72] <= rf_sink_data[72].DB_MAX_OUTPUT_PORT_TYPE +rp_data[73] <= rf_sink_data[73].DB_MAX_OUTPUT_PORT_TYPE +rp_data[74] <= rf_sink_data[74].DB_MAX_OUTPUT_PORT_TYPE +rp_data[75] <= rf_sink_data[75].DB_MAX_OUTPUT_PORT_TYPE +rp_data[76] <= rf_sink_data[81].DB_MAX_OUTPUT_PORT_TYPE +rp_data[77] <= rf_sink_data[82].DB_MAX_OUTPUT_PORT_TYPE +rp_data[78] <= rf_sink_data[83].DB_MAX_OUTPUT_PORT_TYPE +rp_data[79] <= rf_sink_data[84].DB_MAX_OUTPUT_PORT_TYPE +rp_data[80] <= rf_sink_data[85].DB_MAX_OUTPUT_PORT_TYPE +rp_data[81] <= rf_sink_data[76].DB_MAX_OUTPUT_PORT_TYPE +rp_data[82] <= rf_sink_data[77].DB_MAX_OUTPUT_PORT_TYPE +rp_data[83] <= rf_sink_data[78].DB_MAX_OUTPUT_PORT_TYPE +rp_data[84] <= rf_sink_data[79].DB_MAX_OUTPUT_PORT_TYPE +rp_data[85] <= rf_sink_data[80].DB_MAX_OUTPUT_PORT_TYPE +rp_data[86] <= rf_sink_data[86].DB_MAX_OUTPUT_PORT_TYPE +rp_data[87] <= rf_sink_data[87].DB_MAX_OUTPUT_PORT_TYPE +rp_data[88] <= rf_sink_data[88].DB_MAX_OUTPUT_PORT_TYPE +rp_data[89] <= rf_sink_data[89].DB_MAX_OUTPUT_PORT_TYPE +rp_data[90] <= rf_sink_data[90].DB_MAX_OUTPUT_PORT_TYPE +rp_data[91] <= rf_sink_data[91].DB_MAX_OUTPUT_PORT_TYPE +rp_data[92] <= rf_sink_data[92].DB_MAX_OUTPUT_PORT_TYPE +rp_data[93] <= rf_sink_data[93].DB_MAX_OUTPUT_PORT_TYPE +rp_data[94] <= rdata_fifo_sink_data[32].DB_MAX_OUTPUT_PORT_TYPE +rp_data[95] <= rdata_fifo_sink_data[33].DB_MAX_OUTPUT_PORT_TYPE +rp_startofpacket <= altera_merlin_burst_uncompressor:uncompressor.source_startofpacket +rp_endofpacket <= altera_merlin_burst_uncompressor:uncompressor.source_endofpacket + + +|lights|nios_system:NiosII|altera_merlin_slave_agent:lcd_blon_s1_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor +clk => burst_uncompress_address_offset[0].CLK +clk => burst_uncompress_address_offset[1].CLK +clk => burst_uncompress_address_offset[2].CLK +clk => burst_uncompress_address_offset[3].CLK +clk => burst_uncompress_address_offset[4].CLK +clk => burst_uncompress_address_offset[5].CLK +clk => burst_uncompress_address_offset[6].CLK +clk => burst_uncompress_address_offset[7].CLK +clk => burst_uncompress_address_offset[8].CLK +clk => burst_uncompress_address_offset[9].CLK +clk => burst_uncompress_address_offset[10].CLK +clk => burst_uncompress_address_offset[11].CLK +clk => burst_uncompress_address_offset[12].CLK +clk => burst_uncompress_address_offset[13].CLK +clk => burst_uncompress_address_offset[14].CLK +clk => burst_uncompress_address_offset[15].CLK +clk => burst_uncompress_address_offset[16].CLK +clk => burst_uncompress_address_offset[17].CLK +clk => burst_uncompress_address_offset[18].CLK +clk => burst_uncompress_address_base[0].CLK +clk => burst_uncompress_address_base[1].CLK +clk => burst_uncompress_address_base[2].CLK +clk => burst_uncompress_address_base[3].CLK +clk => burst_uncompress_address_base[4].CLK +clk => burst_uncompress_address_base[5].CLK +clk => burst_uncompress_address_base[6].CLK +clk => burst_uncompress_address_base[7].CLK +clk => burst_uncompress_address_base[8].CLK +clk => burst_uncompress_address_base[9].CLK +clk => burst_uncompress_address_base[10].CLK +clk => burst_uncompress_address_base[11].CLK +clk => burst_uncompress_address_base[12].CLK +clk => burst_uncompress_address_base[13].CLK +clk => burst_uncompress_address_base[14].CLK +clk => burst_uncompress_address_base[15].CLK +clk => burst_uncompress_address_base[16].CLK +clk => burst_uncompress_address_base[17].CLK +clk => burst_uncompress_address_base[18].CLK +clk => burst_uncompress_byte_counter[0].CLK +clk => burst_uncompress_byte_counter[1].CLK +clk => burst_uncompress_byte_counter[2].CLK +clk => burst_uncompress_busy.CLK +reset => burst_uncompress_address_offset[0].ACLR +reset => burst_uncompress_address_offset[1].ACLR +reset => burst_uncompress_address_offset[2].ACLR +reset => burst_uncompress_address_offset[3].ACLR +reset => burst_uncompress_address_offset[4].ACLR +reset => burst_uncompress_address_offset[5].ACLR +reset => burst_uncompress_address_offset[6].ACLR +reset => burst_uncompress_address_offset[7].ACLR +reset => burst_uncompress_address_offset[8].ACLR +reset => burst_uncompress_address_offset[9].ACLR +reset => burst_uncompress_address_offset[10].ACLR +reset => burst_uncompress_address_offset[11].ACLR +reset => burst_uncompress_address_offset[12].ACLR +reset => burst_uncompress_address_offset[13].ACLR +reset => burst_uncompress_address_offset[14].ACLR +reset => burst_uncompress_address_offset[15].ACLR +reset => burst_uncompress_address_offset[16].ACLR +reset => burst_uncompress_address_offset[17].ACLR +reset => burst_uncompress_address_offset[18].ACLR +reset => burst_uncompress_address_base[0].ACLR +reset => burst_uncompress_address_base[1].ACLR +reset => burst_uncompress_address_base[2].ACLR +reset => burst_uncompress_address_base[3].ACLR +reset => burst_uncompress_address_base[4].ACLR +reset => burst_uncompress_address_base[5].ACLR +reset => burst_uncompress_address_base[6].ACLR +reset => burst_uncompress_address_base[7].ACLR +reset => burst_uncompress_address_base[8].ACLR +reset => burst_uncompress_address_base[9].ACLR +reset => burst_uncompress_address_base[10].ACLR +reset => burst_uncompress_address_base[11].ACLR +reset => burst_uncompress_address_base[12].ACLR +reset => burst_uncompress_address_base[13].ACLR +reset => burst_uncompress_address_base[14].ACLR +reset => burst_uncompress_address_base[15].ACLR +reset => burst_uncompress_address_base[16].ACLR +reset => burst_uncompress_address_base[17].ACLR +reset => burst_uncompress_address_base[18].ACLR +reset => burst_uncompress_byte_counter[0].ACLR +reset => burst_uncompress_byte_counter[1].ACLR +reset => burst_uncompress_byte_counter[2].ACLR +reset => burst_uncompress_busy.ACLR +sink_startofpacket => source_startofpacket.IN1 +sink_endofpacket => source_endofpacket.IN1 +sink_valid => first_packet_beat.IN1 +sink_valid => last_packet_beat.IN1 +sink_valid => last_packet_beat.IN1 +sink_valid => always0.IN1 +sink_valid => sink_ready.IN0 +sink_valid => source_valid.DATAIN +sink_ready <= sink_ready.DB_MAX_OUTPUT_PORT_TYPE +sink_addr[0] => burst_uncompress_address_base.IN0 +sink_addr[0] => comb.DATAB +sink_addr[0] => source_addr.DATAB +sink_addr[1] => burst_uncompress_address_base.IN0 +sink_addr[1] => comb.DATAB +sink_addr[1] => source_addr.DATAB +sink_addr[2] => burst_uncompress_address_base.IN0 +sink_addr[2] => comb.DATAB +sink_addr[2] => source_addr.DATAB +sink_addr[3] => burst_uncompress_address_base.IN0 +sink_addr[3] => comb.DATAB +sink_addr[3] => source_addr.DATAB +sink_addr[4] => burst_uncompress_address_base.IN0 +sink_addr[4] => comb.DATAB +sink_addr[4] => source_addr.DATAB +sink_addr[5] => burst_uncompress_address_base.IN0 +sink_addr[5] => comb.DATAB +sink_addr[5] => source_addr.DATAB +sink_addr[6] => burst_uncompress_address_base.IN0 +sink_addr[6] => comb.DATAB +sink_addr[6] => source_addr.DATAB +sink_addr[7] => burst_uncompress_address_base.IN0 +sink_addr[7] => comb.DATAB +sink_addr[7] => source_addr.DATAB +sink_addr[8] => burst_uncompress_address_base.IN0 +sink_addr[8] => comb.DATAB +sink_addr[8] => source_addr.DATAB +sink_addr[9] => burst_uncompress_address_base.IN0 +sink_addr[9] => comb.DATAB +sink_addr[9] => source_addr.DATAB +sink_addr[10] => burst_uncompress_address_base.IN0 +sink_addr[10] => comb.DATAB +sink_addr[10] => source_addr.DATAB +sink_addr[11] => burst_uncompress_address_base.IN0 +sink_addr[11] => comb.DATAB +sink_addr[11] => source_addr.DATAB +sink_addr[12] => burst_uncompress_address_base.IN0 +sink_addr[12] => comb.DATAB +sink_addr[12] => source_addr.DATAB +sink_addr[13] => burst_uncompress_address_base.IN0 +sink_addr[13] => comb.DATAB +sink_addr[13] => source_addr.DATAB +sink_addr[14] => burst_uncompress_address_base.IN0 +sink_addr[14] => comb.DATAB +sink_addr[14] => source_addr.DATAB +sink_addr[15] => burst_uncompress_address_base.IN0 +sink_addr[15] => comb.DATAB +sink_addr[15] => source_addr.DATAB +sink_addr[16] => burst_uncompress_address_base.IN0 +sink_addr[16] => comb.DATAB +sink_addr[16] => source_addr.DATAB +sink_addr[17] => burst_uncompress_address_base.IN0 +sink_addr[17] => comb.DATAB +sink_addr[17] => source_addr.DATAB +sink_addr[18] => burst_uncompress_address_base.IN0 +sink_addr[18] => comb.DATAB +sink_addr[18] => source_addr.DATAB +sink_burstwrap[0] => p1_burst_uncompress_address_offset[0].IN1 +sink_burstwrap[0] => source_burstwrap[0].DATAIN +sink_burstwrap[0] => burst_uncompress_address_base.IN1 +sink_burstwrap[1] => p1_burst_uncompress_address_offset[1].IN1 +sink_burstwrap[1] => source_burstwrap[1].DATAIN +sink_burstwrap[1] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[2].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[18].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[17].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[16].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[15].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[14].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[13].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[12].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[11].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[10].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[9].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[8].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[7].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[6].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[5].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[4].IN1 +sink_burstwrap[2] => p1_burst_uncompress_address_offset[3].IN1 +sink_burstwrap[2] => source_burstwrap[2].DATAIN +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_burstwrap[2] => burst_uncompress_address_base.IN1 +sink_byte_cnt[0] => source_byte_cnt.DATAB +sink_byte_cnt[0] => Add1.IN6 +sink_byte_cnt[0] => Equal1.IN2 +sink_byte_cnt[1] => source_byte_cnt.DATAB +sink_byte_cnt[1] => Add1.IN5 +sink_byte_cnt[1] => Equal1.IN1 +sink_byte_cnt[2] => source_byte_cnt.DATAB +sink_byte_cnt[2] => Add1.IN4 +sink_byte_cnt[2] => Equal1.IN0 +sink_is_compressed => last_packet_beat.IN1 +sink_burstsize[0] => Decoder0.IN2 +sink_burstsize[0] => source_burstsize[0].DATAIN +sink_burstsize[1] => Decoder0.IN1 +sink_burstsize[1] => source_burstsize[1].DATAIN +sink_burstsize[2] => Decoder0.IN0 +sink_burstsize[2] => source_burstsize[2].DATAIN +source_startofpacket <= source_startofpacket.DB_MAX_OUTPUT_PORT_TYPE +source_endofpacket <= source_endofpacket.DB_MAX_OUTPUT_PORT_TYPE +source_valid <= sink_valid.DB_MAX_OUTPUT_PORT_TYPE +source_ready => always1.IN1 +source_ready => sink_ready.IN1 +source_addr[0] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[1] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[2] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[3] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[4] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[5] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[6] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[7] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[8] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[9] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[10] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[11] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[12] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[13] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[14] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[15] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[16] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[17] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_addr[18] <= source_addr.DB_MAX_OUTPUT_PORT_TYPE +source_burstwrap[0] <= sink_burstwrap[0].DB_MAX_OUTPUT_PORT_TYPE +source_burstwrap[1] <= sink_burstwrap[1].DB_MAX_OUTPUT_PORT_TYPE +source_burstwrap[2] <= sink_burstwrap[2].DB_MAX_OUTPUT_PORT_TYPE +source_byte_cnt[0] <= source_byte_cnt.DB_MAX_OUTPUT_PORT_TYPE +source_byte_cnt[1] <= source_byte_cnt.DB_MAX_OUTPUT_PORT_TYPE +source_byte_cnt[2] <= source_byte_cnt.DB_MAX_OUTPUT_PORT_TYPE +source_is_compressed <= +source_burstsize[0] <= sink_burstsize[0].DB_MAX_OUTPUT_PORT_TYPE +source_burstsize[1] <= sink_burstsize[1].DB_MAX_OUTPUT_PORT_TYPE +source_burstsize[2] <= sink_burstsize[2].DB_MAX_OUTPUT_PORT_TYPE + + +|lights|nios_system:NiosII|altera_avalon_sc_fifo:lcd_blon_s1_translator_avalon_universal_slave_0_agent_rsp_fifo +clk => csr_readdata[0]~reg0.CLK +clk => csr_readdata[1]~reg0.CLK +clk => csr_readdata[2]~reg0.CLK +clk => csr_readdata[3]~reg0.CLK +clk => csr_readdata[4]~reg0.CLK +clk => csr_readdata[5]~reg0.CLK +clk => csr_readdata[6]~reg0.CLK +clk => csr_readdata[7]~reg0.CLK +clk => csr_readdata[8]~reg0.CLK +clk => csr_readdata[9]~reg0.CLK +clk => csr_readdata[10]~reg0.CLK +clk => csr_readdata[11]~reg0.CLK +clk => csr_readdata[12]~reg0.CLK +clk => csr_readdata[13]~reg0.CLK +clk => csr_readdata[14]~reg0.CLK +clk => csr_readdata[15]~reg0.CLK +clk => csr_readdata[16]~reg0.CLK +clk => csr_readdata[17]~reg0.CLK +clk => csr_readdata[18]~reg0.CLK +clk => csr_readdata[19]~reg0.CLK +clk => csr_readdata[20]~reg0.CLK +clk => csr_readdata[21]~reg0.CLK +clk => csr_readdata[22]~reg0.CLK +clk => csr_readdata[23]~reg0.CLK +clk => csr_readdata[24]~reg0.CLK +clk => csr_readdata[25]~reg0.CLK +clk => csr_readdata[26]~reg0.CLK +clk => csr_readdata[27]~reg0.CLK +clk => csr_readdata[28]~reg0.CLK +clk => csr_readdata[29]~reg0.CLK +clk => csr_readdata[30]~reg0.CLK +clk => csr_readdata[31]~reg0.CLK +clk => mem_used[1].CLK +clk => mem_used[0].CLK +clk => mem[1][0].CLK +clk => mem[1][1].CLK +clk => mem[1][2].CLK +clk => mem[1][3].CLK +clk => mem[1][4].CLK +clk => mem[1][5].CLK +clk => mem[1][6].CLK +clk => mem[1][7].CLK +clk => mem[1][8].CLK +clk => mem[1][9].CLK +clk => mem[1][10].CLK +clk => mem[1][11].CLK +clk => mem[1][12].CLK +clk => mem[1][13].CLK +clk => mem[1][14].CLK +clk => mem[1][15].CLK +clk => mem[1][16].CLK +clk => mem[1][17].CLK +clk => mem[1][18].CLK +clk => mem[1][19].CLK +clk => mem[1][20].CLK +clk => mem[1][21].CLK +clk => mem[1][22].CLK +clk => mem[1][23].CLK +clk => mem[1][24].CLK +clk => mem[1][25].CLK +clk => mem[1][26].CLK +clk => mem[1][27].CLK +clk => mem[1][28].CLK +clk => mem[1][29].CLK +clk => mem[1][30].CLK +clk => mem[1][31].CLK +clk => mem[1][32].CLK +clk => mem[1][33].CLK +clk => mem[1][34].CLK +clk => mem[1][35].CLK +clk => mem[1][36].CLK +clk => mem[1][37].CLK +clk => mem[1][38].CLK +clk => mem[1][39].CLK +clk => mem[1][40].CLK +clk => mem[1][41].CLK +clk => mem[1][42].CLK +clk => mem[1][43].CLK +clk => mem[1][44].CLK +clk => mem[1][45].CLK +clk => mem[1][46].CLK +clk => mem[1][47].CLK +clk => mem[1][48].CLK +clk => mem[1][49].CLK +clk => mem[1][50].CLK +clk => mem[1][51].CLK +clk => mem[1][52].CLK +clk => mem[1][53].CLK +clk => mem[1][54].CLK +clk => mem[1][55].CLK +clk => mem[1][56].CLK +clk => mem[1][57].CLK +clk => mem[1][58].CLK +clk => mem[1][59].CLK +clk => mem[1][60].CLK +clk => mem[1][61].CLK +clk => mem[1][62].CLK +clk => mem[1][63].CLK +clk => mem[1][64].CLK +clk => mem[1][65].CLK +clk => mem[1][66].CLK +clk => mem[1][67].CLK +clk => mem[1][68].CLK +clk => mem[1][69].CLK +clk => mem[1][70].CLK +clk => mem[1][71].CLK +clk => mem[1][72].CLK +clk => mem[1][73].CLK +clk => mem[1][74].CLK +clk => mem[1][75].CLK +clk => mem[1][76].CLK +clk => mem[1][77].CLK +clk => mem[1][78].CLK +clk => mem[1][79].CLK +clk => mem[1][80].CLK +clk => mem[1][81].CLK +clk => mem[1][82].CLK +clk => mem[1][83].CLK +clk => mem[1][84].CLK +clk => mem[1][85].CLK +clk => mem[1][86].CLK +clk => mem[1][87].CLK +clk => mem[1][88].CLK +clk => mem[1][89].CLK +clk => mem[1][90].CLK +clk => mem[1][91].CLK +clk => mem[1][92].CLK +clk => mem[1][93].CLK +clk => mem[1][94].CLK +clk => mem[1][95].CLK +clk => mem[1][96].CLK +clk => mem[1][97].CLK +clk => mem[1][98].CLK +clk => mem[0][0].CLK +clk => mem[0][1].CLK +clk => mem[0][2].CLK +clk => mem[0][3].CLK +clk => mem[0][4].CLK +clk => mem[0][5].CLK +clk => mem[0][6].CLK +clk => mem[0][7].CLK +clk => mem[0][8].CLK +clk => mem[0][9].CLK +clk => mem[0][10].CLK +clk => mem[0][11].CLK +clk => mem[0][12].CLK +clk => mem[0][13].CLK +clk => mem[0][14].CLK +clk => mem[0][15].CLK +clk => mem[0][16].CLK +clk => mem[0][17].CLK +clk => mem[0][18].CLK +clk => mem[0][19].CLK +clk => mem[0][20].CLK +clk => mem[0][21].CLK +clk => mem[0][22].CLK +clk => mem[0][23].CLK +clk => mem[0][24].CLK +clk => mem[0][25].CLK +clk => mem[0][26].CLK +clk => mem[0][27].CLK +clk => mem[0][28].CLK +clk => mem[0][29].CLK +clk => mem[0][30].CLK +clk => mem[0][31].CLK +clk => mem[0][32].CLK +clk => mem[0][33].CLK +clk => mem[0][34].CLK +clk => mem[0][35].CLK +clk => mem[0][36].CLK +clk => mem[0][37].CLK +clk => mem[0][38].CLK +clk => mem[0][39].CLK +clk => mem[0][40].CLK +clk => mem[0][41].CLK +clk => mem[0][42].CLK +clk => mem[0][43].CLK +clk => mem[0][44].CLK +clk => mem[0][45].CLK +clk => mem[0][46].CLK +clk => mem[0][47].CLK +clk => mem[0][48].CLK +clk => mem[0][49].CLK +clk => mem[0][50].CLK +clk => mem[0][51].CLK +clk => mem[0][52].CLK +clk => mem[0][53].CLK +clk => mem[0][54].CLK +clk => mem[0][55].CLK +clk => mem[0][56].CLK +clk => mem[0][57].CLK +clk => mem[0][58].CLK +clk => mem[0][59].CLK +clk => mem[0][60].CLK +clk => mem[0][61].CLK +clk => mem[0][62].CLK +clk => mem[0][63].CLK +clk => mem[0][64].CLK +clk => mem[0][65].CLK +clk => mem[0][66].CLK +clk => mem[0][67].CLK +clk => mem[0][68].CLK +clk => mem[0][69].CLK +clk => mem[0][70].CLK +clk => mem[0][71].CLK +clk => mem[0][72].CLK +clk => mem[0][73].CLK +clk => mem[0][74].CLK +clk => mem[0][75].CLK +clk => mem[0][76].CLK +clk => mem[0][77].CLK +clk => mem[0][78].CLK +clk => mem[0][79].CLK +clk => mem[0][80].CLK +clk => mem[0][81].CLK +clk => mem[0][82].CLK +clk => mem[0][83].CLK +clk => mem[0][84].CLK +clk => mem[0][85].CLK +clk => mem[0][86].CLK +clk => mem[0][87].CLK +clk => mem[0][88].CLK +clk => mem[0][89].CLK +clk => mem[0][90].CLK +clk => mem[0][91].CLK +clk => mem[0][92].CLK +clk => mem[0][93].CLK +clk => mem[0][94].CLK +clk => mem[0][95].CLK +clk => mem[0][96].CLK +clk => mem[0][97].CLK +clk => mem[0][98].CLK +reset => csr_readdata[0]~reg0.ACLR +reset => csr_readdata[1]~reg0.ACLR +reset => csr_readdata[2]~reg0.ACLR +reset => csr_readdata[3]~reg0.ACLR +reset => csr_readdata[4]~reg0.ACLR +reset => csr_readdata[5]~reg0.ACLR +reset => csr_readdata[6]~reg0.ACLR +reset => csr_readdata[7]~reg0.ACLR +reset => csr_readdata[8]~reg0.ACLR +reset => csr_readdata[9]~reg0.ACLR +reset => csr_readdata[10]~reg0.ACLR +reset => csr_readdata[11]~reg0.ACLR +reset => csr_readdata[12]~reg0.ACLR +reset => csr_readdata[13]~reg0.ACLR +reset => csr_readdata[14]~reg0.ACLR +reset => csr_readdata[15]~reg0.ACLR +reset => csr_readdata[16]~reg0.ACLR +reset => csr_readdata[17]~reg0.ACLR +reset => csr_readdata[18]~reg0.ACLR +reset => csr_readdata[19]~reg0.ACLR +reset => csr_readdata[20]~reg0.ACLR +reset => csr_readdata[21]~reg0.ACLR +reset => csr_readdata[22]~reg0.ACLR +reset => csr_readdata[23]~reg0.ACLR +reset => csr_readdata[24]~reg0.ACLR +reset => csr_readdata[25]~reg0.ACLR +reset => csr_readdata[26]~reg0.ACLR +reset => csr_readdata[27]~reg0.ACLR +reset => csr_readdata[28]~reg0.ACLR +reset => csr_readdata[29]~reg0.ACLR +reset => csr_readdata[30]~reg0.ACLR +reset => csr_readdata[31]~reg0.ACLR +reset => mem_used[1].ACLR +reset => mem_used[0].ACLR +reset => mem[1][0].ACLR +reset => mem[1][1].ACLR +reset => mem[1][2].ACLR +reset => mem[1][3].ACLR +reset => mem[1][4].ACLR +reset => mem[1][5].ACLR +reset => mem[1][6].ACLR +reset => mem[1][7].ACLR +reset => mem[1][8].ACLR +reset => mem[1][9].ACLR +reset => mem[1][10].ACLR +reset => mem[1][11].ACLR +reset => mem[1][12].ACLR +reset => mem[1][13].ACLR +reset => mem[1][14].ACLR +reset => mem[1][15].ACLR +reset => mem[1][16].ACLR +reset => mem[1][17].ACLR +reset => mem[1][18].ACLR +reset => mem[1][19].ACLR +reset => mem[1][20].ACLR +reset => mem[1][21].ACLR +reset => mem[1][22].ACLR +reset => mem[1][23].ACLR +reset => mem[1][24].ACLR +reset => mem[1][25].ACLR +reset => mem[1][26].ACLR +reset => mem[1][27].ACLR +reset => mem[1][28].ACLR +reset => mem[1][29].ACLR +reset => mem[1][30].ACLR +reset => mem[1][31].ACLR +reset => mem[1][32].ACLR +reset => mem[1][33].ACLR +reset => mem[1][34].ACLR +reset => mem[1][35].ACLR +reset => mem[1][36].ACLR +reset => mem[1][37].ACLR +reset => mem[1][38].ACLR +reset => mem[1][39].ACLR +reset => mem[1][40].ACLR +reset => mem[1][41].ACLR +reset => mem[1][42].ACLR +reset => mem[1][43].ACLR +reset => mem[1][44].ACLR +reset => mem[1][45].ACLR +reset => mem[1][46].ACLR +reset => mem[1][47].ACLR +reset => mem[1][48].ACLR +reset => mem[1][49].ACLR +reset => mem[1][50].ACLR +reset => mem[1][51].ACLR +reset => mem[1][52].ACLR +reset => mem[1][53].ACLR +reset => mem[1][54].ACLR +reset => mem[1][55].ACLR +reset => mem[1][56].ACLR +reset => mem[1][57].ACLR +reset => mem[1][58].ACLR +reset => mem[1][59].ACLR +reset => mem[1][60].ACLR +reset => mem[1][61].ACLR +reset => mem[1][62].ACLR +reset => mem[1][63].ACLR +reset => mem[1][64].ACLR +reset => mem[1][65].ACLR +reset => mem[1][66].ACLR +reset => mem[1][67].ACLR +reset => mem[1][68].ACLR +reset => mem[1][69].ACLR +reset => mem[1][70].ACLR +reset => mem[1][71].ACLR +reset => mem[1][72].ACLR +reset => mem[1][73].ACLR +reset => mem[1][74].ACLR +reset => mem[1][75].ACLR +reset => mem[1][76].ACLR +reset => mem[1][77].ACLR +reset => mem[1][78].ACLR +reset => mem[1][79].ACLR +reset => mem[1][80].ACLR +reset => mem[1][81].ACLR +reset => mem[1][82].ACLR +reset => mem[1][83].ACLR +reset => mem[1][84].ACLR +reset => mem[1][85].ACLR +reset => mem[1][86].ACLR +reset => mem[1][87].ACLR +reset => mem[1][88].ACLR +reset => mem[1][89].ACLR +reset => mem[1][90].ACLR +reset => mem[1][91].ACLR +reset => mem[1][92].ACLR +reset => mem[1][93].ACLR +reset => mem[1][94].ACLR +reset => mem[1][95].ACLR +reset => mem[1][96].ACLR +reset => mem[1][97].ACLR +reset => mem[1][98].ACLR +reset => mem[0][0].ACLR +reset => mem[0][1].ACLR +reset => mem[0][2].ACLR +reset => mem[0][3].ACLR +reset => mem[0][4].ACLR +reset => mem[0][5].ACLR +reset => mem[0][6].ACLR +reset => mem[0][7].ACLR +reset => mem[0][8].ACLR +reset => mem[0][9].ACLR +reset => mem[0][10].ACLR +reset => mem[0][11].ACLR +reset => mem[0][12].ACLR +reset => mem[0][13].ACLR +reset => mem[0][14].ACLR +reset => mem[0][15].ACLR +reset => mem[0][16].ACLR +reset => mem[0][17].ACLR +reset => mem[0][18].ACLR +reset => mem[0][19].ACLR +reset => mem[0][20].ACLR +reset => mem[0][21].ACLR +reset => mem[0][22].ACLR +reset => mem[0][23].ACLR +reset => mem[0][24].ACLR +reset => mem[0][25].ACLR +reset => mem[0][26].ACLR +reset => mem[0][27].ACLR +reset => mem[0][28].ACLR +reset => mem[0][29].ACLR +reset => mem[0][30].ACLR +reset => mem[0][31].ACLR +reset => mem[0][32].ACLR +reset => mem[0][33].ACLR +reset => mem[0][34].ACLR +reset => mem[0][35].ACLR +reset => mem[0][36].ACLR +reset => mem[0][37].ACLR +reset => mem[0][38].ACLR +reset => mem[0][39].ACLR +reset => mem[0][40].ACLR +reset => mem[0][41].ACLR +reset => mem[0][42].ACLR +reset => mem[0][43].ACLR +reset => mem[0][44].ACLR +reset => mem[0][45].ACLR +reset => mem[0][46].ACLR +reset => mem[0][47].ACLR +reset => mem[0][48].ACLR +reset => mem[0][49].ACLR +reset => mem[0][50].ACLR +reset => mem[0][51].ACLR +reset => mem[0][52].ACLR +reset => mem[0][53].ACLR +reset => mem[0][54].ACLR +reset => mem[0][55].ACLR +reset => mem[0][56].ACLR +reset => mem[0][57].ACLR +reset => mem[0][58].ACLR +reset => mem[0][59].ACLR +reset => mem[0][60].ACLR +reset => mem[0][61].ACLR +reset => mem[0][62].ACLR +reset => mem[0][63].ACLR +reset => mem[0][64].ACLR +reset => mem[0][65].ACLR +reset => mem[0][66].ACLR +reset => mem[0][67].ACLR +reset => mem[0][68].ACLR +reset => mem[0][69].ACLR +reset => mem[0][70].ACLR +reset => mem[0][71].ACLR +reset => mem[0][72].ACLR +reset => mem[0][73].ACLR +reset => mem[0][74].ACLR +reset => mem[0][75].ACLR +reset => mem[0][76].ACLR +reset => mem[0][77].ACLR +reset => mem[0][78].ACLR +reset => mem[0][79].ACLR +reset => mem[0][80].ACLR +reset => mem[0][81].ACLR +reset => mem[0][82].ACLR +reset => mem[0][83].ACLR +reset => mem[0][84].ACLR +reset => mem[0][85].ACLR +reset => mem[0][86].ACLR +reset => mem[0][87].ACLR +reset => mem[0][88].ACLR +reset => mem[0][89].ACLR +reset => mem[0][90].ACLR +reset => mem[0][91].ACLR +reset => mem[0][92].ACLR +reset => mem[0][93].ACLR +reset => mem[0][94].ACLR +reset => mem[0][95].ACLR +reset => mem[0][96].ACLR +reset => mem[0][97].ACLR +reset => mem[0][98].ACLR +in_data[0] => mem.DATAB +in_data[1] => mem.DATAB +in_data[2] => mem.DATAB +in_data[3] => mem.DATAB +in_data[4] => mem.DATAB +in_data[5] => mem.DATAB +in_data[6] => mem.DATAB +in_data[7] => mem.DATAB +in_data[8] => mem.DATAB +in_data[9] => mem.DATAB +in_data[10] => mem.DATAB +in_data[11] => mem.DATAB +in_data[12] => mem.DATAB +in_data[13] => mem.DATAB +in_data[14] => mem.DATAB +in_data[15] => mem.DATAB +in_data[16] => mem.DATAB +in_data[17] => mem.DATAB +in_data[18] => mem.DATAB +in_data[19] => mem.DATAB +in_data[20] => mem.DATAB +in_data[21] => mem.DATAB +in_data[22] => mem.DATAB +in_data[23] => mem.DATAB +in_data[24] => mem.DATAB +in_data[25] => mem.DATAB +in_data[26] => mem.DATAB +in_data[27] => mem.DATAB +in_data[28] => mem.DATAB +in_data[29] => mem.DATAB +in_data[30] => mem.DATAB +in_data[31] => mem.DATAB +in_data[32] => mem.DATAB +in_data[33] => mem.DATAB +in_data[34] => mem.DATAB +in_data[35] => mem.DATAB +in_data[36] => mem.DATAB +in_data[37] => mem.DATAB +in_data[38] => mem.DATAB +in_data[39] => mem.DATAB +in_data[40] => mem.DATAB +in_data[41] => mem.DATAB +in_data[42] => mem.DATAB +in_data[43] => mem.DATAB +in_data[44] => mem.DATAB +in_data[45] => mem.DATAB +in_data[46] => mem.DATAB +in_data[47] => mem.DATAB +in_data[48] => mem.DATAB +in_data[49] => mem.DATAB +in_data[50] => mem.DATAB +in_data[51] => mem.DATAB +in_data[52] => mem.DATAB +in_data[53] => mem.DATAB +in_data[54] => mem.DATAB +in_data[55] => mem.DATAB +in_data[56] => mem.DATAB +in_data[57] => mem.DATAB +in_data[58] => mem.DATAB +in_data[59] => mem.DATAB +in_data[60] => mem.DATAB +in_data[61] => mem.DATAB +in_data[62] => mem.DATAB +in_data[63] => mem.DATAB +in_data[64] => mem.DATAB +in_data[65] => mem.DATAB +in_data[66] => mem.DATAB +in_data[67] => mem.DATAB +in_data[68] => mem.DATAB +in_data[69] => mem.DATAB +in_data[70] => mem.DATAB +in_data[71] => mem.DATAB +in_data[72] => mem.DATAB +in_data[73] => mem.DATAB +in_data[74] => mem.DATAB +in_data[75] => mem.DATAB +in_data[76] => mem.DATAB +in_data[77] => mem.DATAB +in_data[78] => mem.DATAB +in_data[79] => mem.DATAB +in_data[80] => mem.DATAB +in_data[81] => mem.DATAB +in_data[82] => mem.DATAB +in_data[83] => mem.DATAB +in_data[84] => mem.DATAB +in_data[85] => mem.DATAB +in_data[86] => mem.DATAB +in_data[87] => mem.DATAB +in_data[88] => mem.DATAB +in_data[89] => mem.DATAB +in_data[90] => mem.DATAB +in_data[91] => mem.DATAB +in_data[92] => mem.DATAB +in_data[93] => mem.DATAB +in_data[94] => mem.DATAB +in_data[95] => mem.DATAB +in_data[96] => mem.DATAB +in_valid => write.IN1 +in_startofpacket => mem.DATAB +in_endofpacket => mem.DATAB +in_empty[0] => ~NO_FANOUT~ +in_error[0] => out_error[0].DATAIN +in_error[0] => out_empty[0].DATAIN +in_channel[0] => out_channel[0].DATAIN +in_ready <= mem_used[1].DB_MAX_OUTPUT_PORT_TYPE +out_data[0] <= mem[0][0].DB_MAX_OUTPUT_PORT_TYPE +out_data[1] <= mem[0][1].DB_MAX_OUTPUT_PORT_TYPE +out_data[2] <= mem[0][2].DB_MAX_OUTPUT_PORT_TYPE +out_data[3] <= mem[0][3].DB_MAX_OUTPUT_PORT_TYPE +out_data[4] <= mem[0][4].DB_MAX_OUTPUT_PORT_TYPE +out_data[5] <= mem[0][5].DB_MAX_OUTPUT_PORT_TYPE +out_data[6] <= mem[0][6].DB_MAX_OUTPUT_PORT_TYPE +out_data[7] <= mem[0][7].DB_MAX_OUTPUT_PORT_TYPE +out_data[8] <= mem[0][8].DB_MAX_OUTPUT_PORT_TYPE +out_data[9] <= mem[0][9].DB_MAX_OUTPUT_PORT_TYPE +out_data[10] <= mem[0][10].DB_MAX_OUTPUT_PORT_TYPE +out_data[11] <= mem[0][11].DB_MAX_OUTPUT_PORT_TYPE +out_data[12] <= mem[0][12].DB_MAX_OUTPUT_PORT_TYPE +out_data[13] <= mem[0][13].DB_MAX_OUTPUT_PORT_TYPE +out_data[14] <= mem[0][14].DB_MAX_OUTPUT_PORT_TYPE +out_data[15] <= mem[0][15].DB_MAX_OUTPUT_PORT_TYPE +out_data[16] <= mem[0][16].DB_MAX_OUTPUT_PORT_TYPE +out_data[17] <= mem[0][17].DB_MAX_OUTPUT_PORT_TYPE +out_data[18] <= mem[0][18].DB_MAX_OUTPUT_PORT_TYPE +out_data[19] <= mem[0][19].DB_MAX_OUTPUT_PORT_TYPE +out_data[20] <= mem[0][20].DB_MAX_OUTPUT_PORT_TYPE +out_data[21] <= mem[0][21].DB_MAX_OUTPUT_PORT_TYPE +out_data[22] <= mem[0][22].DB_MAX_OUTPUT_PORT_TYPE +out_data[23] <= mem[0][23].DB_MAX_OUTPUT_PORT_TYPE +out_data[24] <= mem[0][24].DB_MAX_OUTPUT_PORT_TYPE +out_data[25] <= mem[0][25].DB_MAX_OUTPUT_PORT_TYPE +out_data[26] <= mem[0][26].DB_MAX_OUTPUT_PORT_TYPE +out_data[27] <= mem[0][27].DB_MAX_OUTPUT_PORT_TYPE +out_data[28] <= mem[0][28].DB_MAX_OUTPUT_PORT_TYPE +out_data[29] <= mem[0][29].DB_MAX_OUTPUT_PORT_TYPE +out_data[30] <= mem[0][30].DB_MAX_OUTPUT_PORT_TYPE +out_data[31] <= mem[0][31].DB_MAX_OUTPUT_PORT_TYPE +out_data[32] <= mem[0][32].DB_MAX_OUTPUT_PORT_TYPE +out_data[33] <= mem[0][33].DB_MAX_OUTPUT_PORT_TYPE +out_data[34] <= mem[0][34].DB_MAX_OUTPUT_PORT_TYPE +out_data[35] <= mem[0][35].DB_MAX_OUTPUT_PORT_TYPE +out_data[36] <= mem[0][36].DB_MAX_OUTPUT_PORT_TYPE +out_data[37] <= mem[0][37].DB_MAX_OUTPUT_PORT_TYPE +out_data[38] <= mem[0][38].DB_MAX_OUTPUT_PORT_TYPE +out_data[39] <= mem[0][39].DB_MAX_OUTPUT_PORT_TYPE +out_data[40] <= mem[0][40].DB_MAX_OUTPUT_PORT_TYPE +out_data[41] <= mem[0][41].DB_MAX_OUTPUT_PORT_TYPE +out_data[42] <= mem[0][42].DB_MAX_OUTPUT_PORT_TYPE +out_data[43] <= mem[0][43].DB_MAX_OUTPUT_PORT_TYPE +out_data[44] <= mem[0][44].DB_MAX_OUTPUT_PORT_TYPE +out_data[45] <= mem[0][45].DB_MAX_OUTPUT_PORT_TYPE +out_data[46] <= mem[0][46].DB_MAX_OUTPUT_PORT_TYPE +out_data[47] <= mem[0][47].DB_MAX_OUTPUT_PORT_TYPE +out_data[48] <= mem[0][48].DB_MAX_OUTPUT_PORT_TYPE +out_data[49] <= mem[0][49].DB_MAX_OUTPUT_PORT_TYPE +out_data[50] <= mem[0][50].DB_MAX_OUTPUT_PORT_TYPE +out_data[51] <= mem[0][51].DB_MAX_OUTPUT_PORT_TYPE +out_data[52] <= mem[0][52].DB_MAX_OUTPUT_PORT_TYPE +out_data[53] <= mem[0][53].DB_MAX_OUTPUT_PORT_TYPE +out_data[54] <= mem[0][54].DB_MAX_OUTPUT_PORT_TYPE +out_data[55] <= mem[0][55].DB_MAX_OUTPUT_PORT_TYPE +out_data[56] <= mem[0][56].DB_MAX_OUTPUT_PORT_TYPE +out_data[57] <= mem[0][57].DB_MAX_OUTPUT_PORT_TYPE +out_data[58] <= mem[0][58].DB_MAX_OUTPUT_PORT_TYPE +out_data[59] <= mem[0][59].DB_MAX_OUTPUT_PORT_TYPE +out_data[60] <= mem[0][60].DB_MAX_OUTPUT_PORT_TYPE +out_data[61] <= mem[0][61].DB_MAX_OUTPUT_PORT_TYPE +out_data[62] <= mem[0][62].DB_MAX_OUTPUT_PORT_TYPE +out_data[63] <= mem[0][63].DB_MAX_OUTPUT_PORT_TYPE +out_data[64] <= mem[0][64].DB_MAX_OUTPUT_PORT_TYPE +out_data[65] <= mem[0][65].DB_MAX_OUTPUT_PORT_TYPE +out_data[66] <= mem[0][66].DB_MAX_OUTPUT_PORT_TYPE +out_data[67] <= mem[0][67].DB_MAX_OUTPUT_PORT_TYPE +out_data[68] <= mem[0][68].DB_MAX_OUTPUT_PORT_TYPE +out_data[69] <= mem[0][69].DB_MAX_OUTPUT_PORT_TYPE +out_data[70] <= mem[0][70].DB_MAX_OUTPUT_PORT_TYPE +out_data[71] <= mem[0][71].DB_MAX_OUTPUT_PORT_TYPE +out_data[72] <= mem[0][72].DB_MAX_OUTPUT_PORT_TYPE +out_data[73] <= mem[0][73].DB_MAX_OUTPUT_PORT_TYPE +out_data[74] <= mem[0][74].DB_MAX_OUTPUT_PORT_TYPE +out_data[75] <= mem[0][75].DB_MAX_OUTPUT_PORT_TYPE +out_data[76] <= mem[0][76].DB_MAX_OUTPUT_PORT_TYPE +out_data[77] <= mem[0][77].DB_MAX_OUTPUT_PORT_TYPE +out_data[78] <= mem[0][78].DB_MAX_OUTPUT_PORT_TYPE +out_data[79] <= mem[0][79].DB_MAX_OUTPUT_PORT_TYPE +out_data[80] <= mem[0][80].DB_MAX_OUTPUT_PORT_TYPE +out_data[81] <= mem[0][81].DB_MAX_OUTPUT_PORT_TYPE +out_data[82] <= mem[0][82].DB_MAX_OUTPUT_PORT_TYPE +out_data[83] <= mem[0][83].DB_MAX_OUTPUT_PORT_TYPE +out_data[84] <= mem[0][84].DB_MAX_OUTPUT_PORT_TYPE +out_data[85] <= mem[0][85].DB_MAX_OUTPUT_PORT_TYPE +out_data[86] <= mem[0][86].DB_MAX_OUTPUT_PORT_TYPE +out_data[87] <= mem[0][87].DB_MAX_OUTPUT_PORT_TYPE +out_data[88] <= mem[0][88].DB_MAX_OUTPUT_PORT_TYPE +out_data[89] <= mem[0][89].DB_MAX_OUTPUT_PORT_TYPE +out_data[90] <= mem[0][90].DB_MAX_OUTPUT_PORT_TYPE +out_data[91] <= mem[0][91].DB_MAX_OUTPUT_PORT_TYPE +out_data[92] <= mem[0][92].DB_MAX_OUTPUT_PORT_TYPE +out_data[93] <= mem[0][93].DB_MAX_OUTPUT_PORT_TYPE +out_data[94] <= mem[0][94].DB_MAX_OUTPUT_PORT_TYPE +out_data[95] <= mem[0][95].DB_MAX_OUTPUT_PORT_TYPE +out_data[96] <= mem[0][96].DB_MAX_OUTPUT_PORT_TYPE +out_valid <= mem_used[0].DB_MAX_OUTPUT_PORT_TYPE +out_startofpacket <= mem[0][98].DB_MAX_OUTPUT_PORT_TYPE +out_endofpacket <= mem[0][97].DB_MAX_OUTPUT_PORT_TYPE +out_empty[0] <= in_error[0].DB_MAX_OUTPUT_PORT_TYPE +out_error[0] <= in_error[0].DB_MAX_OUTPUT_PORT_TYPE +out_channel[0] <= in_channel[0].DB_MAX_OUTPUT_PORT_TYPE +out_ready => internal_out_ready.IN1 +csr_address[0] => ~NO_FANOUT~ +csr_address[1] => ~NO_FANOUT~ +csr_write => ~NO_FANOUT~ +csr_read => csr_readdata[31]~reg0.ENA +csr_read => csr_readdata[30]~reg0.ENA +csr_read => csr_readdata[29]~reg0.ENA +csr_read => csr_readdata[28]~reg0.ENA +csr_read => csr_readdata[27]~reg0.ENA +csr_read => csr_readdata[26]~reg0.ENA +csr_read => csr_readdata[25]~reg0.ENA +csr_read => csr_readdata[24]~reg0.ENA +csr_read => csr_readdata[23]~reg0.ENA +csr_read => csr_readdata[22]~reg0.ENA +csr_read => csr_readdata[21]~reg0.ENA +csr_read => csr_readdata[20]~reg0.ENA +csr_read => csr_readdata[19]~reg0.ENA +csr_read => csr_readdata[18]~reg0.ENA +csr_read => csr_readdata[17]~reg0.ENA +csr_read => csr_readdata[16]~reg0.ENA +csr_read => csr_readdata[15]~reg0.ENA +csr_read => csr_readdata[14]~reg0.ENA +csr_read => csr_readdata[13]~reg0.ENA +csr_read => csr_readdata[12]~reg0.ENA +csr_read => csr_readdata[11]~reg0.ENA +csr_read => csr_readdata[10]~reg0.ENA +csr_read => csr_readdata[9]~reg0.ENA +csr_read => csr_readdata[8]~reg0.ENA +csr_read => csr_readdata[7]~reg0.ENA +csr_read => csr_readdata[6]~reg0.ENA +csr_read => csr_readdata[5]~reg0.ENA +csr_read => csr_readdata[4]~reg0.ENA +csr_read => csr_readdata[3]~reg0.ENA +csr_read => csr_readdata[2]~reg0.ENA +csr_read => csr_readdata[1]~reg0.ENA +csr_read => csr_readdata[0]~reg0.ENA +csr_writedata[0] => ~NO_FANOUT~ +csr_writedata[1] => ~NO_FANOUT~ +csr_writedata[2] => ~NO_FANOUT~ +csr_writedata[3] => ~NO_FANOUT~ +csr_writedata[4] => ~NO_FANOUT~ +csr_writedata[5] => ~NO_FANOUT~ +csr_writedata[6] => ~NO_FANOUT~ +csr_writedata[7] => ~NO_FANOUT~ +csr_writedata[8] => ~NO_FANOUT~ +csr_writedata[9] => ~NO_FANOUT~ +csr_writedata[10] => ~NO_FANOUT~ +csr_writedata[11] => ~NO_FANOUT~ +csr_writedata[12] => ~NO_FANOUT~ +csr_writedata[13] => ~NO_FANOUT~ +csr_writedata[14] => ~NO_FANOUT~ +csr_writedata[15] => ~NO_FANOUT~ +csr_writedata[16] => ~NO_FANOUT~ +csr_writedata[17] => ~NO_FANOUT~ +csr_writedata[18] => ~NO_FANOUT~ +csr_writedata[19] => ~NO_FANOUT~ +csr_writedata[20] => ~NO_FANOUT~ +csr_writedata[21] => ~NO_FANOUT~ +csr_writedata[22] => ~NO_FANOUT~ +csr_writedata[23] => ~NO_FANOUT~ +csr_writedata[24] => ~NO_FANOUT~ +csr_writedata[25] => ~NO_FANOUT~ +csr_writedata[26] => ~NO_FANOUT~ +csr_writedata[27] => ~NO_FANOUT~ +csr_writedata[28] => ~NO_FANOUT~ +csr_writedata[29] => ~NO_FANOUT~ +csr_writedata[30] => ~NO_FANOUT~ +csr_writedata[31] => ~NO_FANOUT~ +csr_readdata[0] <= csr_readdata[0]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[1] <= csr_readdata[1]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[2] <= csr_readdata[2]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[3] <= csr_readdata[3]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[4] <= csr_readdata[4]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[5] <= csr_readdata[5]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[6] <= csr_readdata[6]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[7] <= csr_readdata[7]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[8] <= csr_readdata[8]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[9] <= csr_readdata[9]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[10] <= csr_readdata[10]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[11] <= csr_readdata[11]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[12] <= csr_readdata[12]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[13] <= csr_readdata[13]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[14] <= csr_readdata[14]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[15] <= csr_readdata[15]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[16] <= csr_readdata[16]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[17] <= csr_readdata[17]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[18] <= csr_readdata[18]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[19] <= csr_readdata[19]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[20] <= csr_readdata[20]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[21] <= csr_readdata[21]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[22] <= csr_readdata[22]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[23] <= csr_readdata[23]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[24] <= csr_readdata[24]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[25] <= csr_readdata[25]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[26] <= csr_readdata[26]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[27] <= csr_readdata[27]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[28] <= csr_readdata[28]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[29] <= csr_readdata[29]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[30] <= csr_readdata[30]~reg0.DB_MAX_OUTPUT_PORT_TYPE +csr_readdata[31] <= csr_readdata[31]~reg0.DB_MAX_OUTPUT_PORT_TYPE +almost_full_data <= +almost_empty_data <= + + +|lights|nios_system:NiosII|nios_system_addr_router:addr_router +clk => ~NO_FANOUT~ +reset => ~NO_FANOUT~ +sink_valid => src_valid.DATAIN +sink_data[0] => src_data[0].DATAIN +sink_data[1] => src_data[1].DATAIN +sink_data[2] => src_data[2].DATAIN +sink_data[3] => src_data[3].DATAIN +sink_data[4] => src_data[4].DATAIN +sink_data[5] => src_data[5].DATAIN +sink_data[6] => src_data[6].DATAIN +sink_data[7] => src_data[7].DATAIN +sink_data[8] => src_data[8].DATAIN +sink_data[9] => src_data[9].DATAIN +sink_data[10] => src_data[10].DATAIN +sink_data[11] => src_data[11].DATAIN +sink_data[12] => src_data[12].DATAIN +sink_data[13] => src_data[13].DATAIN +sink_data[14] => src_data[14].DATAIN +sink_data[15] => src_data[15].DATAIN +sink_data[16] => src_data[16].DATAIN +sink_data[17] => src_data[17].DATAIN +sink_data[18] => src_data[18].DATAIN +sink_data[19] => src_data[19].DATAIN +sink_data[20] => src_data[20].DATAIN +sink_data[21] => src_data[21].DATAIN +sink_data[22] => src_data[22].DATAIN +sink_data[23] => src_data[23].DATAIN +sink_data[24] => src_data[24].DATAIN +sink_data[25] => src_data[25].DATAIN +sink_data[26] => src_data[26].DATAIN +sink_data[27] => src_data[27].DATAIN +sink_data[28] => src_data[28].DATAIN +sink_data[29] => src_data[29].DATAIN +sink_data[30] => src_data[30].DATAIN +sink_data[31] => src_data[31].DATAIN +sink_data[32] => src_data[32].DATAIN +sink_data[33] => src_data[33].DATAIN +sink_data[34] => src_data[34].DATAIN +sink_data[35] => src_data[35].DATAIN +sink_data[36] => src_data[36].DATAIN +sink_data[37] => src_data[37].DATAIN +sink_data[38] => src_data[38].DATAIN +sink_data[39] => src_data[39].DATAIN +sink_data[40] => src_data[40].DATAIN +sink_data[41] => src_data[41].DATAIN +sink_data[42] => src_data[42].DATAIN +sink_data[43] => src_data[43].DATAIN +sink_data[44] => src_data[44].DATAIN +sink_data[45] => src_data[45].DATAIN +sink_data[46] => src_data[46].DATAIN +sink_data[47] => src_data[47].DATAIN +sink_data[47] => Equal0.IN1 +sink_data[48] => src_data[48].DATAIN +sink_data[48] => Equal0.IN7 +sink_data[49] => src_data[49].DATAIN +sink_data[49] => Equal0.IN6 +sink_data[50] => src_data[50].DATAIN +sink_data[50] => Equal0.IN5 +sink_data[51] => src_data[51].DATAIN +sink_data[51] => Equal0.IN4 +sink_data[52] => src_data[52].DATAIN +sink_data[52] => Equal0.IN3 +sink_data[53] => src_data[53].DATAIN +sink_data[53] => Equal0.IN2 +sink_data[54] => src_data[54].DATAIN +sink_data[54] => src_channel.OUTPUTSELECT +sink_data[54] => src_channel.OUTPUTSELECT +sink_data[54] => src_channel.OUTPUTSELECT +sink_data[54] => src_channel.OUTPUTSELECT +sink_data[54] => src_channel.OUTPUTSELECT +sink_data[54] => src_channel.OUTPUTSELECT +sink_data[54] => src_channel.OUTPUTSELECT +sink_data[54] => src_channel.OUTPUTSELECT +sink_data[54] => src_channel.OUTPUTSELECT +sink_data[54] => src_channel.OUTPUTSELECT +sink_data[54] => src_channel.OUTPUTSELECT +sink_data[54] => src_channel.OUTPUTSELECT +sink_data[54] => src_channel.OUTPUTSELECT +sink_data[54] => src_channel.OUTPUTSELECT +sink_data[54] => src_channel.OUTPUTSELECT +sink_data[54] => src_channel.OUTPUTSELECT +sink_data[54] => src_channel.OUTPUTSELECT +sink_data[54] => src_channel.OUTPUTSELECT +sink_data[54] => src_data.OUTPUTSELECT +sink_data[54] => src_data.OUTPUTSELECT +sink_data[54] => src_data.OUTPUTSELECT +sink_data[54] => src_data.OUTPUTSELECT +sink_data[54] => src_data.OUTPUTSELECT +sink_data[54] => Equal0.IN0 +sink_data[55] => src_data[55].DATAIN +sink_data[56] => src_data[56].DATAIN +sink_data[57] => src_data[57].DATAIN +sink_data[58] => src_data[58].DATAIN +sink_data[59] => src_data[59].DATAIN +sink_data[60] => src_data[60].DATAIN +sink_data[61] => src_data[61].DATAIN +sink_data[62] => src_data[62].DATAIN +sink_data[63] => src_data[63].DATAIN +sink_data[64] => src_data[64].DATAIN +sink_data[65] => src_data[65].DATAIN +sink_data[66] => src_data[66].DATAIN +sink_data[67] => src_data[67].DATAIN +sink_data[68] => src_data[68].DATAIN +sink_data[69] => src_data[69].DATAIN +sink_data[70] => src_data[70].DATAIN +sink_data[71] => src_data[71].DATAIN +sink_data[72] => src_data[72].DATAIN +sink_data[73] => src_data[73].DATAIN +sink_data[74] => src_data[74].DATAIN +sink_data[75] => src_data[75].DATAIN +sink_data[76] => src_data[76].DATAIN +sink_data[77] => src_data[77].DATAIN +sink_data[78] => src_data[78].DATAIN +sink_data[79] => src_data[79].DATAIN +sink_data[80] => src_data[80].DATAIN +sink_data[81] => ~NO_FANOUT~ +sink_data[82] => ~NO_FANOUT~ +sink_data[83] => ~NO_FANOUT~ +sink_data[84] => ~NO_FANOUT~ +sink_data[85] => ~NO_FANOUT~ +sink_data[86] => src_data[86].DATAIN +sink_data[87] => src_data[87].DATAIN +sink_data[88] => src_data[88].DATAIN +sink_data[89] => src_data[89].DATAIN +sink_data[90] => src_data[90].DATAIN +sink_data[91] => src_data[91].DATAIN +sink_data[92] => src_data[92].DATAIN +sink_data[93] => src_data[93].DATAIN +sink_data[94] => src_data[94].DATAIN +sink_data[95] => src_data[95].DATAIN +sink_startofpacket => src_startofpacket.DATAIN +sink_endofpacket => src_endofpacket.DATAIN +sink_ready <= src_ready.DB_MAX_OUTPUT_PORT_TYPE +src_valid <= sink_valid.DB_MAX_OUTPUT_PORT_TYPE +src_data[0] <= sink_data[0].DB_MAX_OUTPUT_PORT_TYPE +src_data[1] <= sink_data[1].DB_MAX_OUTPUT_PORT_TYPE +src_data[2] <= sink_data[2].DB_MAX_OUTPUT_PORT_TYPE +src_data[3] <= sink_data[3].DB_MAX_OUTPUT_PORT_TYPE +src_data[4] <= sink_data[4].DB_MAX_OUTPUT_PORT_TYPE +src_data[5] <= sink_data[5].DB_MAX_OUTPUT_PORT_TYPE +src_data[6] <= sink_data[6].DB_MAX_OUTPUT_PORT_TYPE +src_data[7] <= sink_data[7].DB_MAX_OUTPUT_PORT_TYPE +src_data[8] <= sink_data[8].DB_MAX_OUTPUT_PORT_TYPE +src_data[9] <= sink_data[9].DB_MAX_OUTPUT_PORT_TYPE +src_data[10] <= sink_data[10].DB_MAX_OUTPUT_PORT_TYPE +src_data[11] <= sink_data[11].DB_MAX_OUTPUT_PORT_TYPE +src_data[12] <= sink_data[12].DB_MAX_OUTPUT_PORT_TYPE +src_data[13] <= sink_data[13].DB_MAX_OUTPUT_PORT_TYPE +src_data[14] <= sink_data[14].DB_MAX_OUTPUT_PORT_TYPE +src_data[15] <= sink_data[15].DB_MAX_OUTPUT_PORT_TYPE +src_data[16] <= sink_data[16].DB_MAX_OUTPUT_PORT_TYPE +src_data[17] <= sink_data[17].DB_MAX_OUTPUT_PORT_TYPE +src_data[18] <= sink_data[18].DB_MAX_OUTPUT_PORT_TYPE +src_data[19] <= sink_data[19].DB_MAX_OUTPUT_PORT_TYPE +src_data[20] <= sink_data[20].DB_MAX_OUTPUT_PORT_TYPE +src_data[21] <= sink_data[21].DB_MAX_OUTPUT_PORT_TYPE +src_data[22] <= sink_data[22].DB_MAX_OUTPUT_PORT_TYPE +src_data[23] <= sink_data[23].DB_MAX_OUTPUT_PORT_TYPE +src_data[24] <= sink_data[24].DB_MAX_OUTPUT_PORT_TYPE +src_data[25] <= sink_data[25].DB_MAX_OUTPUT_PORT_TYPE +src_data[26] <= sink_data[26].DB_MAX_OUTPUT_PORT_TYPE +src_data[27] <= sink_data[27].DB_MAX_OUTPUT_PORT_TYPE +src_data[28] <= sink_data[28].DB_MAX_OUTPUT_PORT_TYPE +src_data[29] <= sink_data[29].DB_MAX_OUTPUT_PORT_TYPE +src_data[30] <= sink_data[30].DB_MAX_OUTPUT_PORT_TYPE +src_data[31] <= sink_data[31].DB_MAX_OUTPUT_PORT_TYPE +src_data[32] <= sink_data[32].DB_MAX_OUTPUT_PORT_TYPE +src_data[33] <= sink_data[33].DB_MAX_OUTPUT_PORT_TYPE +src_data[34] <= sink_data[34].DB_MAX_OUTPUT_PORT_TYPE +src_data[35] <= sink_data[35].DB_MAX_OUTPUT_PORT_TYPE +src_data[36] <= sink_data[36].DB_MAX_OUTPUT_PORT_TYPE +src_data[37] <= sink_data[37].DB_MAX_OUTPUT_PORT_TYPE +src_data[38] <= sink_data[38].DB_MAX_OUTPUT_PORT_TYPE +src_data[39] <= sink_data[39].DB_MAX_OUTPUT_PORT_TYPE +src_data[40] <= sink_data[40].DB_MAX_OUTPUT_PORT_TYPE +src_data[41] <= sink_data[41].DB_MAX_OUTPUT_PORT_TYPE +src_data[42] <= sink_data[42].DB_MAX_OUTPUT_PORT_TYPE +src_data[43] <= sink_data[43].DB_MAX_OUTPUT_PORT_TYPE +src_data[44] <= sink_data[44].DB_MAX_OUTPUT_PORT_TYPE +src_data[45] <= sink_data[45].DB_MAX_OUTPUT_PORT_TYPE +src_data[46] <= sink_data[46].DB_MAX_OUTPUT_PORT_TYPE +src_data[47] <= sink_data[47].DB_MAX_OUTPUT_PORT_TYPE +src_data[48] <= sink_data[48].DB_MAX_OUTPUT_PORT_TYPE +src_data[49] <= sink_data[49].DB_MAX_OUTPUT_PORT_TYPE +src_data[50] <= sink_data[50].DB_MAX_OUTPUT_PORT_TYPE +src_data[51] <= sink_data[51].DB_MAX_OUTPUT_PORT_TYPE +src_data[52] <= sink_data[52].DB_MAX_OUTPUT_PORT_TYPE +src_data[53] <= sink_data[53].DB_MAX_OUTPUT_PORT_TYPE +src_data[54] <= sink_data[54].DB_MAX_OUTPUT_PORT_TYPE +src_data[55] <= sink_data[55].DB_MAX_OUTPUT_PORT_TYPE +src_data[56] <= sink_data[56].DB_MAX_OUTPUT_PORT_TYPE +src_data[57] <= sink_data[57].DB_MAX_OUTPUT_PORT_TYPE +src_data[58] <= sink_data[58].DB_MAX_OUTPUT_PORT_TYPE +src_data[59] <= sink_data[59].DB_MAX_OUTPUT_PORT_TYPE +src_data[60] <= sink_data[60].DB_MAX_OUTPUT_PORT_TYPE +src_data[61] <= sink_data[61].DB_MAX_OUTPUT_PORT_TYPE +src_data[62] <= sink_data[62].DB_MAX_OUTPUT_PORT_TYPE +src_data[63] <= sink_data[63].DB_MAX_OUTPUT_PORT_TYPE +src_data[64] <= sink_data[64].DB_MAX_OUTPUT_PORT_TYPE +src_data[65] <= sink_data[65].DB_MAX_OUTPUT_PORT_TYPE +src_data[66] <= sink_data[66].DB_MAX_OUTPUT_PORT_TYPE +src_data[67] <= sink_data[67].DB_MAX_OUTPUT_PORT_TYPE +src_data[68] <= sink_data[68].DB_MAX_OUTPUT_PORT_TYPE +src_data[69] <= sink_data[69].DB_MAX_OUTPUT_PORT_TYPE +src_data[70] <= sink_data[70].DB_MAX_OUTPUT_PORT_TYPE +src_data[71] <= sink_data[71].DB_MAX_OUTPUT_PORT_TYPE +src_data[72] <= sink_data[72].DB_MAX_OUTPUT_PORT_TYPE +src_data[73] <= sink_data[73].DB_MAX_OUTPUT_PORT_TYPE +src_data[74] <= sink_data[74].DB_MAX_OUTPUT_PORT_TYPE +src_data[75] <= sink_data[75].DB_MAX_OUTPUT_PORT_TYPE +src_data[76] <= sink_data[76].DB_MAX_OUTPUT_PORT_TYPE +src_data[77] <= sink_data[77].DB_MAX_OUTPUT_PORT_TYPE +src_data[78] <= sink_data[78].DB_MAX_OUTPUT_PORT_TYPE +src_data[79] <= sink_data[79].DB_MAX_OUTPUT_PORT_TYPE +src_data[80] <= sink_data[80].DB_MAX_OUTPUT_PORT_TYPE +src_data[81] <= src_data.DB_MAX_OUTPUT_PORT_TYPE +src_data[82] <= src_data.DB_MAX_OUTPUT_PORT_TYPE +src_data[83] <= src_data.DB_MAX_OUTPUT_PORT_TYPE +src_data[84] <= src_data.DB_MAX_OUTPUT_PORT_TYPE +src_data[85] <= src_data.DB_MAX_OUTPUT_PORT_TYPE +src_data[86] <= sink_data[86].DB_MAX_OUTPUT_PORT_TYPE +src_data[87] <= sink_data[87].DB_MAX_OUTPUT_PORT_TYPE +src_data[88] <= sink_data[88].DB_MAX_OUTPUT_PORT_TYPE +src_data[89] <= sink_data[89].DB_MAX_OUTPUT_PORT_TYPE +src_data[90] <= sink_data[90].DB_MAX_OUTPUT_PORT_TYPE +src_data[91] <= sink_data[91].DB_MAX_OUTPUT_PORT_TYPE +src_data[92] <= sink_data[92].DB_MAX_OUTPUT_PORT_TYPE +src_data[93] <= sink_data[93].DB_MAX_OUTPUT_PORT_TYPE +src_data[94] <= sink_data[94].DB_MAX_OUTPUT_PORT_TYPE +src_data[95] <= sink_data[95].DB_MAX_OUTPUT_PORT_TYPE +src_channel[0] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[1] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[2] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[3] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[4] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[5] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[6] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[7] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[8] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[9] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[10] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[11] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[12] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[13] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[14] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[15] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[16] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[17] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_startofpacket <= sink_startofpacket.DB_MAX_OUTPUT_PORT_TYPE +src_endofpacket <= sink_endofpacket.DB_MAX_OUTPUT_PORT_TYPE +src_ready => sink_ready.DATAIN + + +|lights|nios_system:NiosII|nios_system_addr_router:addr_router|nios_system_addr_router_default_decode:the_default_decode +default_destination_id[0] <= +default_destination_id[1] <= +default_destination_id[2] <= +default_destination_id[3] <= +default_destination_id[4] <= +default_wr_channel[0] <= +default_wr_channel[1] <= +default_wr_channel[2] <= +default_wr_channel[3] <= +default_wr_channel[4] <= +default_wr_channel[5] <= +default_wr_channel[6] <= +default_wr_channel[7] <= +default_wr_channel[8] <= +default_wr_channel[9] <= +default_wr_channel[10] <= +default_wr_channel[11] <= +default_wr_channel[12] <= +default_wr_channel[13] <= +default_wr_channel[14] <= +default_wr_channel[15] <= +default_wr_channel[16] <= +default_wr_channel[17] <= +default_rd_channel[0] <= +default_rd_channel[1] <= +default_rd_channel[2] <= +default_rd_channel[3] <= +default_rd_channel[4] <= +default_rd_channel[5] <= +default_rd_channel[6] <= +default_rd_channel[7] <= +default_rd_channel[8] <= +default_rd_channel[9] <= +default_rd_channel[10] <= +default_rd_channel[11] <= +default_rd_channel[12] <= +default_rd_channel[13] <= +default_rd_channel[14] <= +default_rd_channel[15] <= +default_rd_channel[16] <= +default_rd_channel[17] <= +default_src_channel[0] <= +default_src_channel[1] <= +default_src_channel[2] <= +default_src_channel[3] <= +default_src_channel[4] <= +default_src_channel[5] <= +default_src_channel[6] <= +default_src_channel[7] <= +default_src_channel[8] <= +default_src_channel[9] <= +default_src_channel[10] <= +default_src_channel[11] <= +default_src_channel[12] <= +default_src_channel[13] <= +default_src_channel[14] <= +default_src_channel[15] <= +default_src_channel[16] <= +default_src_channel[17] <= + + +|lights|nios_system:NiosII|nios_system_addr_router_001:addr_router_001 +clk => ~NO_FANOUT~ +reset => ~NO_FANOUT~ +sink_valid => src_valid.DATAIN +sink_data[0] => src_data[0].DATAIN +sink_data[1] => src_data[1].DATAIN +sink_data[2] => src_data[2].DATAIN +sink_data[3] => src_data[3].DATAIN +sink_data[4] => src_data[4].DATAIN +sink_data[5] => src_data[5].DATAIN +sink_data[6] => src_data[6].DATAIN +sink_data[7] => src_data[7].DATAIN +sink_data[8] => src_data[8].DATAIN +sink_data[9] => src_data[9].DATAIN +sink_data[10] => src_data[10].DATAIN +sink_data[11] => src_data[11].DATAIN +sink_data[12] => src_data[12].DATAIN +sink_data[13] => src_data[13].DATAIN +sink_data[14] => src_data[14].DATAIN +sink_data[15] => src_data[15].DATAIN +sink_data[16] => src_data[16].DATAIN +sink_data[17] => src_data[17].DATAIN +sink_data[18] => src_data[18].DATAIN +sink_data[19] => src_data[19].DATAIN +sink_data[20] => src_data[20].DATAIN +sink_data[21] => src_data[21].DATAIN +sink_data[22] => src_data[22].DATAIN +sink_data[23] => src_data[23].DATAIN +sink_data[24] => src_data[24].DATAIN +sink_data[25] => src_data[25].DATAIN +sink_data[26] => src_data[26].DATAIN +sink_data[27] => src_data[27].DATAIN +sink_data[28] => src_data[28].DATAIN +sink_data[29] => src_data[29].DATAIN +sink_data[30] => src_data[30].DATAIN +sink_data[31] => src_data[31].DATAIN +sink_data[32] => src_data[32].DATAIN +sink_data[33] => src_data[33].DATAIN +sink_data[34] => src_data[34].DATAIN +sink_data[35] => src_data[35].DATAIN +sink_data[36] => src_data[36].DATAIN +sink_data[37] => src_data[37].DATAIN +sink_data[38] => src_data[38].DATAIN +sink_data[39] => src_data[39].DATAIN +sink_data[39] => Equal16.IN15 +sink_data[40] => src_data[40].DATAIN +sink_data[40] => Equal1.IN2 +sink_data[40] => Equal2.IN14 +sink_data[40] => Equal3.IN3 +sink_data[40] => Equal4.IN14 +sink_data[40] => Equal5.IN3 +sink_data[40] => Equal6.IN14 +sink_data[40] => Equal7.IN4 +sink_data[40] => Equal8.IN14 +sink_data[40] => Equal9.IN3 +sink_data[40] => Equal10.IN14 +sink_data[40] => Equal11.IN4 +sink_data[40] => Equal12.IN14 +sink_data[40] => Equal13.IN4 +sink_data[40] => Equal14.IN14 +sink_data[40] => Equal15.IN5 +sink_data[40] => Equal16.IN14 +sink_data[41] => src_data[41].DATAIN +sink_data[41] => Equal1.IN14 +sink_data[41] => Equal2.IN2 +sink_data[41] => Equal3.IN2 +sink_data[41] => Equal4.IN13 +sink_data[41] => Equal5.IN14 +sink_data[41] => Equal6.IN3 +sink_data[41] => Equal7.IN3 +sink_data[41] => Equal8.IN13 +sink_data[41] => Equal9.IN14 +sink_data[41] => Equal10.IN3 +sink_data[41] => Equal11.IN3 +sink_data[41] => Equal12.IN13 +sink_data[41] => Equal13.IN14 +sink_data[41] => Equal14.IN4 +sink_data[41] => Equal15.IN4 +sink_data[41] => Equal16.IN13 +sink_data[42] => src_data[42].DATAIN +sink_data[42] => Equal1.IN13 +sink_data[42] => Equal2.IN13 +sink_data[42] => Equal3.IN14 +sink_data[42] => Equal4.IN2 +sink_data[42] => Equal5.IN2 +sink_data[42] => Equal6.IN2 +sink_data[42] => Equal7.IN2 +sink_data[42] => Equal8.IN12 +sink_data[42] => Equal9.IN13 +sink_data[42] => Equal10.IN13 +sink_data[42] => Equal11.IN14 +sink_data[42] => Equal12.IN3 +sink_data[42] => Equal13.IN3 +sink_data[42] => Equal14.IN3 +sink_data[42] => Equal15.IN3 +sink_data[42] => Equal16.IN12 +sink_data[43] => src_data[43].DATAIN +sink_data[43] => Equal1.IN12 +sink_data[43] => Equal2.IN12 +sink_data[43] => Equal3.IN13 +sink_data[43] => Equal4.IN12 +sink_data[43] => Equal5.IN13 +sink_data[43] => Equal6.IN13 +sink_data[43] => Equal7.IN14 +sink_data[43] => Equal8.IN2 +sink_data[43] => Equal9.IN2 +sink_data[43] => Equal10.IN2 +sink_data[43] => Equal11.IN2 +sink_data[43] => Equal12.IN2 +sink_data[43] => Equal13.IN2 +sink_data[43] => Equal14.IN2 +sink_data[43] => Equal15.IN2 +sink_data[43] => Equal16.IN11 +sink_data[44] => src_data[44].DATAIN +sink_data[44] => Equal1.IN11 +sink_data[44] => Equal2.IN11 +sink_data[44] => Equal3.IN12 +sink_data[44] => Equal4.IN11 +sink_data[44] => Equal5.IN12 +sink_data[44] => Equal6.IN12 +sink_data[44] => Equal7.IN13 +sink_data[44] => Equal8.IN11 +sink_data[44] => Equal9.IN12 +sink_data[44] => Equal10.IN12 +sink_data[44] => Equal11.IN13 +sink_data[44] => Equal12.IN12 +sink_data[44] => Equal13.IN13 +sink_data[44] => Equal14.IN13 +sink_data[44] => Equal15.IN14 +sink_data[44] => Equal16.IN2 +sink_data[45] => src_data[45].DATAIN +sink_data[45] => Equal1.IN10 +sink_data[45] => Equal2.IN10 +sink_data[45] => Equal3.IN11 +sink_data[45] => Equal4.IN10 +sink_data[45] => Equal5.IN11 +sink_data[45] => Equal6.IN11 +sink_data[45] => Equal7.IN12 +sink_data[45] => Equal8.IN10 +sink_data[45] => Equal9.IN11 +sink_data[45] => Equal10.IN11 +sink_data[45] => Equal11.IN12 +sink_data[45] => Equal12.IN11 +sink_data[45] => Equal13.IN12 +sink_data[45] => Equal14.IN12 +sink_data[45] => Equal15.IN13 +sink_data[45] => Equal16.IN10 +sink_data[46] => src_data[46].DATAIN +sink_data[46] => Equal1.IN9 +sink_data[46] => Equal2.IN9 +sink_data[46] => Equal3.IN10 +sink_data[46] => Equal4.IN9 +sink_data[46] => Equal5.IN10 +sink_data[46] => Equal6.IN10 +sink_data[46] => Equal7.IN11 +sink_data[46] => Equal8.IN9 +sink_data[46] => Equal9.IN10 +sink_data[46] => Equal10.IN10 +sink_data[46] => Equal11.IN11 +sink_data[46] => Equal12.IN10 +sink_data[46] => Equal13.IN11 +sink_data[46] => Equal14.IN11 +sink_data[46] => Equal15.IN12 +sink_data[46] => Equal16.IN9 +sink_data[47] => src_data[47].DATAIN +sink_data[47] => Equal0.IN1 +sink_data[47] => Equal1.IN8 +sink_data[47] => Equal2.IN8 +sink_data[47] => Equal3.IN9 +sink_data[47] => Equal4.IN8 +sink_data[47] => Equal5.IN9 +sink_data[47] => Equal6.IN9 +sink_data[47] => Equal7.IN10 +sink_data[47] => Equal8.IN8 +sink_data[47] => Equal9.IN9 +sink_data[47] => Equal10.IN9 +sink_data[47] => Equal11.IN10 +sink_data[47] => Equal12.IN9 +sink_data[47] => Equal13.IN10 +sink_data[47] => Equal14.IN10 +sink_data[47] => Equal15.IN11 +sink_data[47] => Equal16.IN8 +sink_data[48] => src_data[48].DATAIN +sink_data[48] => Equal0.IN7 +sink_data[48] => Equal1.IN1 +sink_data[48] => Equal2.IN1 +sink_data[48] => Equal3.IN1 +sink_data[48] => Equal4.IN1 +sink_data[48] => Equal5.IN1 +sink_data[48] => Equal6.IN1 +sink_data[48] => Equal7.IN1 +sink_data[48] => Equal8.IN1 +sink_data[48] => Equal9.IN1 +sink_data[48] => Equal10.IN1 +sink_data[48] => Equal11.IN1 +sink_data[48] => Equal12.IN1 +sink_data[48] => Equal13.IN1 +sink_data[48] => Equal14.IN1 +sink_data[48] => Equal15.IN1 +sink_data[48] => Equal16.IN1 +sink_data[49] => src_data[49].DATAIN +sink_data[49] => Equal0.IN6 +sink_data[49] => Equal1.IN7 +sink_data[49] => Equal2.IN7 +sink_data[49] => Equal3.IN8 +sink_data[49] => Equal4.IN7 +sink_data[49] => Equal5.IN8 +sink_data[49] => Equal6.IN8 +sink_data[49] => Equal7.IN9 +sink_data[49] => Equal8.IN7 +sink_data[49] => Equal9.IN8 +sink_data[49] => Equal10.IN8 +sink_data[49] => Equal11.IN9 +sink_data[49] => Equal12.IN8 +sink_data[49] => Equal13.IN9 +sink_data[49] => Equal14.IN9 +sink_data[49] => Equal15.IN10 +sink_data[49] => Equal16.IN7 +sink_data[50] => src_data[50].DATAIN +sink_data[50] => Equal0.IN5 +sink_data[50] => Equal1.IN6 +sink_data[50] => Equal2.IN6 +sink_data[50] => Equal3.IN7 +sink_data[50] => Equal4.IN6 +sink_data[50] => Equal5.IN7 +sink_data[50] => Equal6.IN7 +sink_data[50] => Equal7.IN8 +sink_data[50] => Equal8.IN6 +sink_data[50] => Equal9.IN7 +sink_data[50] => Equal10.IN7 +sink_data[50] => Equal11.IN8 +sink_data[50] => Equal12.IN7 +sink_data[50] => Equal13.IN8 +sink_data[50] => Equal14.IN8 +sink_data[50] => Equal15.IN9 +sink_data[50] => Equal16.IN6 +sink_data[51] => src_data[51].DATAIN +sink_data[51] => Equal0.IN4 +sink_data[51] => Equal1.IN5 +sink_data[51] => Equal2.IN5 +sink_data[51] => Equal3.IN6 +sink_data[51] => Equal4.IN5 +sink_data[51] => Equal5.IN6 +sink_data[51] => Equal6.IN6 +sink_data[51] => Equal7.IN7 +sink_data[51] => Equal8.IN5 +sink_data[51] => Equal9.IN6 +sink_data[51] => Equal10.IN6 +sink_data[51] => Equal11.IN7 +sink_data[51] => Equal12.IN6 +sink_data[51] => Equal13.IN7 +sink_data[51] => Equal14.IN7 +sink_data[51] => Equal15.IN8 +sink_data[51] => Equal16.IN5 +sink_data[52] => src_data[52].DATAIN +sink_data[52] => Equal0.IN3 +sink_data[52] => Equal1.IN4 +sink_data[52] => Equal2.IN4 +sink_data[52] => Equal3.IN5 +sink_data[52] => Equal4.IN4 +sink_data[52] => Equal5.IN5 +sink_data[52] => Equal6.IN5 +sink_data[52] => Equal7.IN6 +sink_data[52] => Equal8.IN4 +sink_data[52] => Equal9.IN5 +sink_data[52] => Equal10.IN5 +sink_data[52] => Equal11.IN6 +sink_data[52] => Equal12.IN5 +sink_data[52] => Equal13.IN6 +sink_data[52] => Equal14.IN6 +sink_data[52] => Equal15.IN7 +sink_data[52] => Equal16.IN4 +sink_data[53] => src_data[53].DATAIN +sink_data[53] => Equal0.IN2 +sink_data[53] => Equal1.IN3 +sink_data[53] => Equal2.IN3 +sink_data[53] => Equal3.IN4 +sink_data[53] => Equal4.IN3 +sink_data[53] => Equal5.IN4 +sink_data[53] => Equal6.IN4 +sink_data[53] => Equal7.IN5 +sink_data[53] => Equal8.IN3 +sink_data[53] => Equal9.IN4 +sink_data[53] => Equal10.IN4 +sink_data[53] => Equal11.IN5 +sink_data[53] => Equal12.IN4 +sink_data[53] => Equal13.IN5 +sink_data[53] => Equal14.IN5 +sink_data[53] => Equal15.IN6 +sink_data[53] => Equal16.IN3 +sink_data[54] => src_data[54].DATAIN +sink_data[54] => src_channel.OUTPUTSELECT +sink_data[54] => src_channel.OUTPUTSELECT +sink_data[54] => src_channel.OUTPUTSELECT +sink_data[54] => src_channel.OUTPUTSELECT +sink_data[54] => src_channel.OUTPUTSELECT +sink_data[54] => src_channel.OUTPUTSELECT +sink_data[54] => src_channel.OUTPUTSELECT +sink_data[54] => src_channel.OUTPUTSELECT +sink_data[54] => src_channel.OUTPUTSELECT +sink_data[54] => src_channel.OUTPUTSELECT +sink_data[54] => src_channel.OUTPUTSELECT +sink_data[54] => src_channel.OUTPUTSELECT +sink_data[54] => src_channel.OUTPUTSELECT +sink_data[54] => src_channel.OUTPUTSELECT +sink_data[54] => src_channel.OUTPUTSELECT +sink_data[54] => src_channel.OUTPUTSELECT +sink_data[54] => src_channel.OUTPUTSELECT +sink_data[54] => src_channel.OUTPUTSELECT +sink_data[54] => src_data.OUTPUTSELECT +sink_data[54] => src_data.OUTPUTSELECT +sink_data[54] => src_data.OUTPUTSELECT +sink_data[54] => src_data.OUTPUTSELECT +sink_data[54] => src_data.OUTPUTSELECT +sink_data[54] => Equal0.IN0 +sink_data[54] => Equal1.IN0 +sink_data[54] => Equal2.IN0 +sink_data[54] => Equal3.IN0 +sink_data[54] => Equal4.IN0 +sink_data[54] => Equal5.IN0 +sink_data[54] => Equal6.IN0 +sink_data[54] => Equal7.IN0 +sink_data[54] => Equal8.IN0 +sink_data[54] => Equal9.IN0 +sink_data[54] => Equal10.IN0 +sink_data[54] => Equal11.IN0 +sink_data[54] => Equal12.IN0 +sink_data[54] => Equal13.IN0 +sink_data[54] => Equal14.IN0 +sink_data[54] => Equal15.IN0 +sink_data[54] => Equal16.IN0 +sink_data[55] => src_data[55].DATAIN +sink_data[56] => src_data[56].DATAIN +sink_data[57] => src_data[57].DATAIN +sink_data[58] => src_data[58].DATAIN +sink_data[59] => src_data[59].DATAIN +sink_data[60] => src_data[60].DATAIN +sink_data[61] => src_data[61].DATAIN +sink_data[62] => src_data[62].DATAIN +sink_data[63] => src_data[63].DATAIN +sink_data[64] => src_data[64].DATAIN +sink_data[65] => src_data[65].DATAIN +sink_data[66] => src_data[66].DATAIN +sink_data[67] => src_data[67].DATAIN +sink_data[68] => src_data[68].DATAIN +sink_data[69] => src_data[69].DATAIN +sink_data[70] => src_data[70].DATAIN +sink_data[71] => src_data[71].DATAIN +sink_data[72] => src_data[72].DATAIN +sink_data[73] => src_data[73].DATAIN +sink_data[74] => src_data[74].DATAIN +sink_data[75] => src_data[75].DATAIN +sink_data[76] => src_data[76].DATAIN +sink_data[77] => src_data[77].DATAIN +sink_data[78] => src_data[78].DATAIN +sink_data[79] => src_data[79].DATAIN +sink_data[80] => src_data[80].DATAIN +sink_data[81] => ~NO_FANOUT~ +sink_data[82] => ~NO_FANOUT~ +sink_data[83] => ~NO_FANOUT~ +sink_data[84] => ~NO_FANOUT~ +sink_data[85] => ~NO_FANOUT~ +sink_data[86] => src_data[86].DATAIN +sink_data[87] => src_data[87].DATAIN +sink_data[88] => src_data[88].DATAIN +sink_data[89] => src_data[89].DATAIN +sink_data[90] => src_data[90].DATAIN +sink_data[91] => src_data[91].DATAIN +sink_data[92] => src_data[92].DATAIN +sink_data[93] => src_data[93].DATAIN +sink_data[94] => src_data[94].DATAIN +sink_data[95] => src_data[95].DATAIN +sink_startofpacket => src_startofpacket.DATAIN +sink_endofpacket => src_endofpacket.DATAIN +sink_ready <= src_ready.DB_MAX_OUTPUT_PORT_TYPE +src_valid <= sink_valid.DB_MAX_OUTPUT_PORT_TYPE +src_data[0] <= sink_data[0].DB_MAX_OUTPUT_PORT_TYPE +src_data[1] <= sink_data[1].DB_MAX_OUTPUT_PORT_TYPE +src_data[2] <= sink_data[2].DB_MAX_OUTPUT_PORT_TYPE +src_data[3] <= sink_data[3].DB_MAX_OUTPUT_PORT_TYPE +src_data[4] <= sink_data[4].DB_MAX_OUTPUT_PORT_TYPE +src_data[5] <= sink_data[5].DB_MAX_OUTPUT_PORT_TYPE +src_data[6] <= sink_data[6].DB_MAX_OUTPUT_PORT_TYPE +src_data[7] <= sink_data[7].DB_MAX_OUTPUT_PORT_TYPE +src_data[8] <= sink_data[8].DB_MAX_OUTPUT_PORT_TYPE +src_data[9] <= sink_data[9].DB_MAX_OUTPUT_PORT_TYPE +src_data[10] <= sink_data[10].DB_MAX_OUTPUT_PORT_TYPE +src_data[11] <= sink_data[11].DB_MAX_OUTPUT_PORT_TYPE +src_data[12] <= sink_data[12].DB_MAX_OUTPUT_PORT_TYPE +src_data[13] <= sink_data[13].DB_MAX_OUTPUT_PORT_TYPE +src_data[14] <= sink_data[14].DB_MAX_OUTPUT_PORT_TYPE +src_data[15] <= sink_data[15].DB_MAX_OUTPUT_PORT_TYPE +src_data[16] <= sink_data[16].DB_MAX_OUTPUT_PORT_TYPE +src_data[17] <= sink_data[17].DB_MAX_OUTPUT_PORT_TYPE +src_data[18] <= sink_data[18].DB_MAX_OUTPUT_PORT_TYPE +src_data[19] <= sink_data[19].DB_MAX_OUTPUT_PORT_TYPE +src_data[20] <= sink_data[20].DB_MAX_OUTPUT_PORT_TYPE +src_data[21] <= sink_data[21].DB_MAX_OUTPUT_PORT_TYPE +src_data[22] <= sink_data[22].DB_MAX_OUTPUT_PORT_TYPE +src_data[23] <= sink_data[23].DB_MAX_OUTPUT_PORT_TYPE +src_data[24] <= sink_data[24].DB_MAX_OUTPUT_PORT_TYPE +src_data[25] <= sink_data[25].DB_MAX_OUTPUT_PORT_TYPE +src_data[26] <= sink_data[26].DB_MAX_OUTPUT_PORT_TYPE +src_data[27] <= sink_data[27].DB_MAX_OUTPUT_PORT_TYPE +src_data[28] <= sink_data[28].DB_MAX_OUTPUT_PORT_TYPE +src_data[29] <= sink_data[29].DB_MAX_OUTPUT_PORT_TYPE +src_data[30] <= sink_data[30].DB_MAX_OUTPUT_PORT_TYPE +src_data[31] <= sink_data[31].DB_MAX_OUTPUT_PORT_TYPE +src_data[32] <= sink_data[32].DB_MAX_OUTPUT_PORT_TYPE +src_data[33] <= sink_data[33].DB_MAX_OUTPUT_PORT_TYPE +src_data[34] <= sink_data[34].DB_MAX_OUTPUT_PORT_TYPE +src_data[35] <= sink_data[35].DB_MAX_OUTPUT_PORT_TYPE +src_data[36] <= sink_data[36].DB_MAX_OUTPUT_PORT_TYPE +src_data[37] <= sink_data[37].DB_MAX_OUTPUT_PORT_TYPE +src_data[38] <= sink_data[38].DB_MAX_OUTPUT_PORT_TYPE +src_data[39] <= sink_data[39].DB_MAX_OUTPUT_PORT_TYPE +src_data[40] <= sink_data[40].DB_MAX_OUTPUT_PORT_TYPE +src_data[41] <= sink_data[41].DB_MAX_OUTPUT_PORT_TYPE +src_data[42] <= sink_data[42].DB_MAX_OUTPUT_PORT_TYPE +src_data[43] <= sink_data[43].DB_MAX_OUTPUT_PORT_TYPE +src_data[44] <= sink_data[44].DB_MAX_OUTPUT_PORT_TYPE +src_data[45] <= sink_data[45].DB_MAX_OUTPUT_PORT_TYPE +src_data[46] <= sink_data[46].DB_MAX_OUTPUT_PORT_TYPE +src_data[47] <= sink_data[47].DB_MAX_OUTPUT_PORT_TYPE +src_data[48] <= sink_data[48].DB_MAX_OUTPUT_PORT_TYPE +src_data[49] <= sink_data[49].DB_MAX_OUTPUT_PORT_TYPE +src_data[50] <= sink_data[50].DB_MAX_OUTPUT_PORT_TYPE +src_data[51] <= sink_data[51].DB_MAX_OUTPUT_PORT_TYPE +src_data[52] <= sink_data[52].DB_MAX_OUTPUT_PORT_TYPE +src_data[53] <= sink_data[53].DB_MAX_OUTPUT_PORT_TYPE +src_data[54] <= sink_data[54].DB_MAX_OUTPUT_PORT_TYPE +src_data[55] <= sink_data[55].DB_MAX_OUTPUT_PORT_TYPE +src_data[56] <= sink_data[56].DB_MAX_OUTPUT_PORT_TYPE +src_data[57] <= sink_data[57].DB_MAX_OUTPUT_PORT_TYPE +src_data[58] <= sink_data[58].DB_MAX_OUTPUT_PORT_TYPE +src_data[59] <= sink_data[59].DB_MAX_OUTPUT_PORT_TYPE +src_data[60] <= sink_data[60].DB_MAX_OUTPUT_PORT_TYPE +src_data[61] <= sink_data[61].DB_MAX_OUTPUT_PORT_TYPE +src_data[62] <= sink_data[62].DB_MAX_OUTPUT_PORT_TYPE +src_data[63] <= sink_data[63].DB_MAX_OUTPUT_PORT_TYPE +src_data[64] <= sink_data[64].DB_MAX_OUTPUT_PORT_TYPE +src_data[65] <= sink_data[65].DB_MAX_OUTPUT_PORT_TYPE +src_data[66] <= sink_data[66].DB_MAX_OUTPUT_PORT_TYPE +src_data[67] <= sink_data[67].DB_MAX_OUTPUT_PORT_TYPE +src_data[68] <= sink_data[68].DB_MAX_OUTPUT_PORT_TYPE +src_data[69] <= sink_data[69].DB_MAX_OUTPUT_PORT_TYPE +src_data[70] <= sink_data[70].DB_MAX_OUTPUT_PORT_TYPE +src_data[71] <= sink_data[71].DB_MAX_OUTPUT_PORT_TYPE +src_data[72] <= sink_data[72].DB_MAX_OUTPUT_PORT_TYPE +src_data[73] <= sink_data[73].DB_MAX_OUTPUT_PORT_TYPE +src_data[74] <= sink_data[74].DB_MAX_OUTPUT_PORT_TYPE +src_data[75] <= sink_data[75].DB_MAX_OUTPUT_PORT_TYPE +src_data[76] <= sink_data[76].DB_MAX_OUTPUT_PORT_TYPE +src_data[77] <= sink_data[77].DB_MAX_OUTPUT_PORT_TYPE +src_data[78] <= sink_data[78].DB_MAX_OUTPUT_PORT_TYPE +src_data[79] <= sink_data[79].DB_MAX_OUTPUT_PORT_TYPE +src_data[80] <= sink_data[80].DB_MAX_OUTPUT_PORT_TYPE +src_data[81] <= src_data.DB_MAX_OUTPUT_PORT_TYPE +src_data[82] <= src_data.DB_MAX_OUTPUT_PORT_TYPE +src_data[83] <= src_data.DB_MAX_OUTPUT_PORT_TYPE +src_data[84] <= src_data.DB_MAX_OUTPUT_PORT_TYPE +src_data[85] <= src_data.DB_MAX_OUTPUT_PORT_TYPE +src_data[86] <= sink_data[86].DB_MAX_OUTPUT_PORT_TYPE +src_data[87] <= sink_data[87].DB_MAX_OUTPUT_PORT_TYPE +src_data[88] <= sink_data[88].DB_MAX_OUTPUT_PORT_TYPE +src_data[89] <= sink_data[89].DB_MAX_OUTPUT_PORT_TYPE +src_data[90] <= sink_data[90].DB_MAX_OUTPUT_PORT_TYPE +src_data[91] <= sink_data[91].DB_MAX_OUTPUT_PORT_TYPE +src_data[92] <= sink_data[92].DB_MAX_OUTPUT_PORT_TYPE +src_data[93] <= sink_data[93].DB_MAX_OUTPUT_PORT_TYPE +src_data[94] <= sink_data[94].DB_MAX_OUTPUT_PORT_TYPE +src_data[95] <= sink_data[95].DB_MAX_OUTPUT_PORT_TYPE +src_channel[0] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[1] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[2] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[3] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[4] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[5] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[6] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[7] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[8] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[9] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[10] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[11] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[12] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[13] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[14] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[15] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[16] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[17] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_startofpacket <= sink_startofpacket.DB_MAX_OUTPUT_PORT_TYPE +src_endofpacket <= sink_endofpacket.DB_MAX_OUTPUT_PORT_TYPE +src_ready => sink_ready.DATAIN + + +|lights|nios_system:NiosII|nios_system_addr_router_001:addr_router_001|nios_system_addr_router_001_default_decode:the_default_decode +default_destination_id[0] <= +default_destination_id[1] <= +default_destination_id[2] <= +default_destination_id[3] <= +default_destination_id[4] <= +default_wr_channel[0] <= +default_wr_channel[1] <= +default_wr_channel[2] <= +default_wr_channel[3] <= +default_wr_channel[4] <= +default_wr_channel[5] <= +default_wr_channel[6] <= +default_wr_channel[7] <= +default_wr_channel[8] <= +default_wr_channel[9] <= +default_wr_channel[10] <= +default_wr_channel[11] <= +default_wr_channel[12] <= +default_wr_channel[13] <= +default_wr_channel[14] <= +default_wr_channel[15] <= +default_wr_channel[16] <= +default_wr_channel[17] <= +default_rd_channel[0] <= +default_rd_channel[1] <= +default_rd_channel[2] <= +default_rd_channel[3] <= +default_rd_channel[4] <= +default_rd_channel[5] <= +default_rd_channel[6] <= +default_rd_channel[7] <= +default_rd_channel[8] <= +default_rd_channel[9] <= +default_rd_channel[10] <= +default_rd_channel[11] <= +default_rd_channel[12] <= +default_rd_channel[13] <= +default_rd_channel[14] <= +default_rd_channel[15] <= +default_rd_channel[16] <= +default_rd_channel[17] <= +default_src_channel[0] <= +default_src_channel[1] <= +default_src_channel[2] <= +default_src_channel[3] <= +default_src_channel[4] <= +default_src_channel[5] <= +default_src_channel[6] <= +default_src_channel[7] <= +default_src_channel[8] <= +default_src_channel[9] <= +default_src_channel[10] <= +default_src_channel[11] <= +default_src_channel[12] <= +default_src_channel[13] <= +default_src_channel[14] <= +default_src_channel[15] <= +default_src_channel[16] <= +default_src_channel[17] <= + + +|lights|nios_system:NiosII|nios_system_id_router:id_router +clk => ~NO_FANOUT~ +reset => ~NO_FANOUT~ +sink_valid => src_valid.DATAIN +sink_data[0] => src_data[0].DATAIN +sink_data[1] => src_data[1].DATAIN +sink_data[2] => src_data[2].DATAIN +sink_data[3] => src_data[3].DATAIN +sink_data[4] => src_data[4].DATAIN +sink_data[5] => src_data[5].DATAIN +sink_data[6] => src_data[6].DATAIN +sink_data[7] => src_data[7].DATAIN +sink_data[8] => src_data[8].DATAIN +sink_data[9] => src_data[9].DATAIN +sink_data[10] => src_data[10].DATAIN +sink_data[11] => src_data[11].DATAIN +sink_data[12] => src_data[12].DATAIN +sink_data[13] => src_data[13].DATAIN +sink_data[14] => src_data[14].DATAIN +sink_data[15] => src_data[15].DATAIN +sink_data[16] => src_data[16].DATAIN +sink_data[17] => src_data[17].DATAIN +sink_data[18] => src_data[18].DATAIN +sink_data[19] => src_data[19].DATAIN +sink_data[20] => src_data[20].DATAIN +sink_data[21] => src_data[21].DATAIN +sink_data[22] => src_data[22].DATAIN +sink_data[23] => src_data[23].DATAIN +sink_data[24] => src_data[24].DATAIN +sink_data[25] => src_data[25].DATAIN +sink_data[26] => src_data[26].DATAIN +sink_data[27] => src_data[27].DATAIN +sink_data[28] => src_data[28].DATAIN +sink_data[29] => src_data[29].DATAIN +sink_data[30] => src_data[30].DATAIN +sink_data[31] => src_data[31].DATAIN +sink_data[32] => src_data[32].DATAIN +sink_data[33] => src_data[33].DATAIN +sink_data[34] => src_data[34].DATAIN +sink_data[35] => src_data[35].DATAIN +sink_data[36] => src_data[36].DATAIN +sink_data[37] => src_data[37].DATAIN +sink_data[38] => src_data[38].DATAIN +sink_data[39] => src_data[39].DATAIN +sink_data[40] => src_data[40].DATAIN +sink_data[41] => src_data[41].DATAIN +sink_data[42] => src_data[42].DATAIN +sink_data[43] => src_data[43].DATAIN +sink_data[44] => src_data[44].DATAIN +sink_data[45] => src_data[45].DATAIN +sink_data[46] => src_data[46].DATAIN +sink_data[47] => src_data[47].DATAIN +sink_data[48] => src_data[48].DATAIN +sink_data[49] => src_data[49].DATAIN +sink_data[50] => src_data[50].DATAIN +sink_data[51] => src_data[51].DATAIN +sink_data[52] => src_data[52].DATAIN +sink_data[53] => src_data[53].DATAIN +sink_data[54] => src_data[54].DATAIN +sink_data[55] => src_data[55].DATAIN +sink_data[56] => src_data[56].DATAIN +sink_data[57] => src_data[57].DATAIN +sink_data[58] => src_data[58].DATAIN +sink_data[59] => src_data[59].DATAIN +sink_data[60] => src_data[60].DATAIN +sink_data[61] => src_data[61].DATAIN +sink_data[62] => src_data[62].DATAIN +sink_data[63] => src_data[63].DATAIN +sink_data[64] => src_data[64].DATAIN +sink_data[65] => src_data[65].DATAIN +sink_data[66] => src_data[66].DATAIN +sink_data[67] => src_data[67].DATAIN +sink_data[68] => src_data[68].DATAIN +sink_data[69] => src_data[69].DATAIN +sink_data[70] => src_data[70].DATAIN +sink_data[71] => src_data[71].DATAIN +sink_data[72] => src_data[72].DATAIN +sink_data[73] => src_data[73].DATAIN +sink_data[74] => src_data[74].DATAIN +sink_data[75] => src_data[75].DATAIN +sink_data[76] => src_data[76].DATAIN +sink_data[77] => src_data[77].DATAIN +sink_data[78] => src_data[78].DATAIN +sink_data[79] => src_data[79].DATAIN +sink_data[80] => src_data[80].DATAIN +sink_data[81] => src_data[81].DATAIN +sink_data[81] => Equal0.IN0 +sink_data[81] => Equal1.IN31 +sink_data[82] => src_data[82].DATAIN +sink_data[82] => Equal0.IN31 +sink_data[82] => Equal1.IN30 +sink_data[83] => src_data[83].DATAIN +sink_data[83] => Equal0.IN30 +sink_data[83] => Equal1.IN29 +sink_data[84] => src_data[84].DATAIN +sink_data[84] => Equal0.IN29 +sink_data[84] => Equal1.IN28 +sink_data[85] => src_data[85].DATAIN +sink_data[85] => Equal0.IN28 +sink_data[85] => Equal1.IN27 +sink_data[86] => src_data[86].DATAIN +sink_data[87] => src_data[87].DATAIN +sink_data[88] => src_data[88].DATAIN +sink_data[89] => src_data[89].DATAIN +sink_data[90] => src_data[90].DATAIN +sink_data[91] => src_data[91].DATAIN +sink_data[92] => src_data[92].DATAIN +sink_data[93] => src_data[93].DATAIN +sink_data[94] => src_data[94].DATAIN +sink_data[95] => src_data[95].DATAIN +sink_startofpacket => src_startofpacket.DATAIN +sink_endofpacket => src_endofpacket.DATAIN +sink_ready <= src_ready.DB_MAX_OUTPUT_PORT_TYPE +src_valid <= sink_valid.DB_MAX_OUTPUT_PORT_TYPE +src_data[0] <= sink_data[0].DB_MAX_OUTPUT_PORT_TYPE +src_data[1] <= sink_data[1].DB_MAX_OUTPUT_PORT_TYPE +src_data[2] <= sink_data[2].DB_MAX_OUTPUT_PORT_TYPE +src_data[3] <= sink_data[3].DB_MAX_OUTPUT_PORT_TYPE +src_data[4] <= sink_data[4].DB_MAX_OUTPUT_PORT_TYPE +src_data[5] <= sink_data[5].DB_MAX_OUTPUT_PORT_TYPE +src_data[6] <= sink_data[6].DB_MAX_OUTPUT_PORT_TYPE +src_data[7] <= sink_data[7].DB_MAX_OUTPUT_PORT_TYPE +src_data[8] <= sink_data[8].DB_MAX_OUTPUT_PORT_TYPE +src_data[9] <= sink_data[9].DB_MAX_OUTPUT_PORT_TYPE +src_data[10] <= sink_data[10].DB_MAX_OUTPUT_PORT_TYPE +src_data[11] <= sink_data[11].DB_MAX_OUTPUT_PORT_TYPE +src_data[12] <= sink_data[12].DB_MAX_OUTPUT_PORT_TYPE +src_data[13] <= sink_data[13].DB_MAX_OUTPUT_PORT_TYPE +src_data[14] <= sink_data[14].DB_MAX_OUTPUT_PORT_TYPE +src_data[15] <= sink_data[15].DB_MAX_OUTPUT_PORT_TYPE +src_data[16] <= sink_data[16].DB_MAX_OUTPUT_PORT_TYPE +src_data[17] <= sink_data[17].DB_MAX_OUTPUT_PORT_TYPE +src_data[18] <= sink_data[18].DB_MAX_OUTPUT_PORT_TYPE +src_data[19] <= sink_data[19].DB_MAX_OUTPUT_PORT_TYPE +src_data[20] <= sink_data[20].DB_MAX_OUTPUT_PORT_TYPE +src_data[21] <= sink_data[21].DB_MAX_OUTPUT_PORT_TYPE +src_data[22] <= sink_data[22].DB_MAX_OUTPUT_PORT_TYPE +src_data[23] <= sink_data[23].DB_MAX_OUTPUT_PORT_TYPE +src_data[24] <= sink_data[24].DB_MAX_OUTPUT_PORT_TYPE +src_data[25] <= sink_data[25].DB_MAX_OUTPUT_PORT_TYPE +src_data[26] <= sink_data[26].DB_MAX_OUTPUT_PORT_TYPE +src_data[27] <= sink_data[27].DB_MAX_OUTPUT_PORT_TYPE +src_data[28] <= sink_data[28].DB_MAX_OUTPUT_PORT_TYPE +src_data[29] <= sink_data[29].DB_MAX_OUTPUT_PORT_TYPE +src_data[30] <= sink_data[30].DB_MAX_OUTPUT_PORT_TYPE +src_data[31] <= sink_data[31].DB_MAX_OUTPUT_PORT_TYPE +src_data[32] <= sink_data[32].DB_MAX_OUTPUT_PORT_TYPE +src_data[33] <= sink_data[33].DB_MAX_OUTPUT_PORT_TYPE +src_data[34] <= sink_data[34].DB_MAX_OUTPUT_PORT_TYPE +src_data[35] <= sink_data[35].DB_MAX_OUTPUT_PORT_TYPE +src_data[36] <= sink_data[36].DB_MAX_OUTPUT_PORT_TYPE +src_data[37] <= sink_data[37].DB_MAX_OUTPUT_PORT_TYPE +src_data[38] <= sink_data[38].DB_MAX_OUTPUT_PORT_TYPE +src_data[39] <= sink_data[39].DB_MAX_OUTPUT_PORT_TYPE +src_data[40] <= sink_data[40].DB_MAX_OUTPUT_PORT_TYPE +src_data[41] <= sink_data[41].DB_MAX_OUTPUT_PORT_TYPE +src_data[42] <= sink_data[42].DB_MAX_OUTPUT_PORT_TYPE +src_data[43] <= sink_data[43].DB_MAX_OUTPUT_PORT_TYPE +src_data[44] <= sink_data[44].DB_MAX_OUTPUT_PORT_TYPE +src_data[45] <= sink_data[45].DB_MAX_OUTPUT_PORT_TYPE +src_data[46] <= sink_data[46].DB_MAX_OUTPUT_PORT_TYPE +src_data[47] <= sink_data[47].DB_MAX_OUTPUT_PORT_TYPE +src_data[48] <= sink_data[48].DB_MAX_OUTPUT_PORT_TYPE +src_data[49] <= sink_data[49].DB_MAX_OUTPUT_PORT_TYPE +src_data[50] <= sink_data[50].DB_MAX_OUTPUT_PORT_TYPE +src_data[51] <= sink_data[51].DB_MAX_OUTPUT_PORT_TYPE +src_data[52] <= sink_data[52].DB_MAX_OUTPUT_PORT_TYPE +src_data[53] <= sink_data[53].DB_MAX_OUTPUT_PORT_TYPE +src_data[54] <= sink_data[54].DB_MAX_OUTPUT_PORT_TYPE +src_data[55] <= sink_data[55].DB_MAX_OUTPUT_PORT_TYPE +src_data[56] <= sink_data[56].DB_MAX_OUTPUT_PORT_TYPE +src_data[57] <= sink_data[57].DB_MAX_OUTPUT_PORT_TYPE +src_data[58] <= sink_data[58].DB_MAX_OUTPUT_PORT_TYPE +src_data[59] <= sink_data[59].DB_MAX_OUTPUT_PORT_TYPE +src_data[60] <= sink_data[60].DB_MAX_OUTPUT_PORT_TYPE +src_data[61] <= sink_data[61].DB_MAX_OUTPUT_PORT_TYPE +src_data[62] <= sink_data[62].DB_MAX_OUTPUT_PORT_TYPE +src_data[63] <= sink_data[63].DB_MAX_OUTPUT_PORT_TYPE +src_data[64] <= sink_data[64].DB_MAX_OUTPUT_PORT_TYPE +src_data[65] <= sink_data[65].DB_MAX_OUTPUT_PORT_TYPE +src_data[66] <= sink_data[66].DB_MAX_OUTPUT_PORT_TYPE +src_data[67] <= sink_data[67].DB_MAX_OUTPUT_PORT_TYPE +src_data[68] <= sink_data[68].DB_MAX_OUTPUT_PORT_TYPE +src_data[69] <= sink_data[69].DB_MAX_OUTPUT_PORT_TYPE +src_data[70] <= sink_data[70].DB_MAX_OUTPUT_PORT_TYPE +src_data[71] <= sink_data[71].DB_MAX_OUTPUT_PORT_TYPE +src_data[72] <= sink_data[72].DB_MAX_OUTPUT_PORT_TYPE +src_data[73] <= sink_data[73].DB_MAX_OUTPUT_PORT_TYPE +src_data[74] <= sink_data[74].DB_MAX_OUTPUT_PORT_TYPE +src_data[75] <= sink_data[75].DB_MAX_OUTPUT_PORT_TYPE +src_data[76] <= sink_data[76].DB_MAX_OUTPUT_PORT_TYPE +src_data[77] <= sink_data[77].DB_MAX_OUTPUT_PORT_TYPE +src_data[78] <= sink_data[78].DB_MAX_OUTPUT_PORT_TYPE +src_data[79] <= sink_data[79].DB_MAX_OUTPUT_PORT_TYPE +src_data[80] <= sink_data[80].DB_MAX_OUTPUT_PORT_TYPE +src_data[81] <= sink_data[81].DB_MAX_OUTPUT_PORT_TYPE +src_data[82] <= sink_data[82].DB_MAX_OUTPUT_PORT_TYPE +src_data[83] <= sink_data[83].DB_MAX_OUTPUT_PORT_TYPE +src_data[84] <= sink_data[84].DB_MAX_OUTPUT_PORT_TYPE +src_data[85] <= sink_data[85].DB_MAX_OUTPUT_PORT_TYPE +src_data[86] <= sink_data[86].DB_MAX_OUTPUT_PORT_TYPE +src_data[87] <= sink_data[87].DB_MAX_OUTPUT_PORT_TYPE +src_data[88] <= sink_data[88].DB_MAX_OUTPUT_PORT_TYPE +src_data[89] <= sink_data[89].DB_MAX_OUTPUT_PORT_TYPE +src_data[90] <= sink_data[90].DB_MAX_OUTPUT_PORT_TYPE +src_data[91] <= sink_data[91].DB_MAX_OUTPUT_PORT_TYPE +src_data[92] <= sink_data[92].DB_MAX_OUTPUT_PORT_TYPE +src_data[93] <= sink_data[93].DB_MAX_OUTPUT_PORT_TYPE +src_data[94] <= sink_data[94].DB_MAX_OUTPUT_PORT_TYPE +src_data[95] <= sink_data[95].DB_MAX_OUTPUT_PORT_TYPE +src_channel[0] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[1] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[2] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[3] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[4] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[5] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[6] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[7] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[8] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[9] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[10] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[11] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[12] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[13] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[14] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[15] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[16] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[17] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_startofpacket <= sink_startofpacket.DB_MAX_OUTPUT_PORT_TYPE +src_endofpacket <= sink_endofpacket.DB_MAX_OUTPUT_PORT_TYPE +src_ready => sink_ready.DATAIN + + +|lights|nios_system:NiosII|nios_system_id_router:id_router|nios_system_id_router_default_decode:the_default_decode +default_destination_id[0] <= +default_destination_id[1] <= +default_destination_id[2] <= +default_destination_id[3] <= +default_destination_id[4] <= +default_wr_channel[0] <= +default_wr_channel[1] <= +default_wr_channel[2] <= +default_wr_channel[3] <= +default_wr_channel[4] <= +default_wr_channel[5] <= +default_wr_channel[6] <= +default_wr_channel[7] <= +default_wr_channel[8] <= +default_wr_channel[9] <= +default_wr_channel[10] <= +default_wr_channel[11] <= +default_wr_channel[12] <= +default_wr_channel[13] <= +default_wr_channel[14] <= +default_wr_channel[15] <= +default_wr_channel[16] <= +default_wr_channel[17] <= +default_rd_channel[0] <= +default_rd_channel[1] <= +default_rd_channel[2] <= +default_rd_channel[3] <= +default_rd_channel[4] <= +default_rd_channel[5] <= +default_rd_channel[6] <= +default_rd_channel[7] <= +default_rd_channel[8] <= +default_rd_channel[9] <= +default_rd_channel[10] <= +default_rd_channel[11] <= +default_rd_channel[12] <= +default_rd_channel[13] <= +default_rd_channel[14] <= +default_rd_channel[15] <= +default_rd_channel[16] <= +default_rd_channel[17] <= +default_src_channel[0] <= +default_src_channel[1] <= +default_src_channel[2] <= +default_src_channel[3] <= +default_src_channel[4] <= +default_src_channel[5] <= +default_src_channel[6] <= +default_src_channel[7] <= +default_src_channel[8] <= +default_src_channel[9] <= +default_src_channel[10] <= +default_src_channel[11] <= +default_src_channel[12] <= +default_src_channel[13] <= +default_src_channel[14] <= +default_src_channel[15] <= +default_src_channel[16] <= +default_src_channel[17] <= + + +|lights|nios_system:NiosII|nios_system_id_router:id_router_001 +clk => ~NO_FANOUT~ +reset => ~NO_FANOUT~ +sink_valid => src_valid.DATAIN +sink_data[0] => src_data[0].DATAIN +sink_data[1] => src_data[1].DATAIN +sink_data[2] => src_data[2].DATAIN +sink_data[3] => src_data[3].DATAIN +sink_data[4] => src_data[4].DATAIN +sink_data[5] => src_data[5].DATAIN +sink_data[6] => src_data[6].DATAIN +sink_data[7] => src_data[7].DATAIN +sink_data[8] => src_data[8].DATAIN +sink_data[9] => src_data[9].DATAIN +sink_data[10] => src_data[10].DATAIN +sink_data[11] => src_data[11].DATAIN +sink_data[12] => src_data[12].DATAIN +sink_data[13] => src_data[13].DATAIN +sink_data[14] => src_data[14].DATAIN +sink_data[15] => src_data[15].DATAIN +sink_data[16] => src_data[16].DATAIN +sink_data[17] => src_data[17].DATAIN +sink_data[18] => src_data[18].DATAIN +sink_data[19] => src_data[19].DATAIN +sink_data[20] => src_data[20].DATAIN +sink_data[21] => src_data[21].DATAIN +sink_data[22] => src_data[22].DATAIN +sink_data[23] => src_data[23].DATAIN +sink_data[24] => src_data[24].DATAIN +sink_data[25] => src_data[25].DATAIN +sink_data[26] => src_data[26].DATAIN +sink_data[27] => src_data[27].DATAIN +sink_data[28] => src_data[28].DATAIN +sink_data[29] => src_data[29].DATAIN +sink_data[30] => src_data[30].DATAIN +sink_data[31] => src_data[31].DATAIN +sink_data[32] => src_data[32].DATAIN +sink_data[33] => src_data[33].DATAIN +sink_data[34] => src_data[34].DATAIN +sink_data[35] => src_data[35].DATAIN +sink_data[36] => src_data[36].DATAIN +sink_data[37] => src_data[37].DATAIN +sink_data[38] => src_data[38].DATAIN +sink_data[39] => src_data[39].DATAIN +sink_data[40] => src_data[40].DATAIN +sink_data[41] => src_data[41].DATAIN +sink_data[42] => src_data[42].DATAIN +sink_data[43] => src_data[43].DATAIN +sink_data[44] => src_data[44].DATAIN +sink_data[45] => src_data[45].DATAIN +sink_data[46] => src_data[46].DATAIN +sink_data[47] => src_data[47].DATAIN +sink_data[48] => src_data[48].DATAIN +sink_data[49] => src_data[49].DATAIN +sink_data[50] => src_data[50].DATAIN +sink_data[51] => src_data[51].DATAIN +sink_data[52] => src_data[52].DATAIN +sink_data[53] => src_data[53].DATAIN +sink_data[54] => src_data[54].DATAIN +sink_data[55] => src_data[55].DATAIN +sink_data[56] => src_data[56].DATAIN +sink_data[57] => src_data[57].DATAIN +sink_data[58] => src_data[58].DATAIN +sink_data[59] => src_data[59].DATAIN +sink_data[60] => src_data[60].DATAIN +sink_data[61] => src_data[61].DATAIN +sink_data[62] => src_data[62].DATAIN +sink_data[63] => src_data[63].DATAIN +sink_data[64] => src_data[64].DATAIN +sink_data[65] => src_data[65].DATAIN +sink_data[66] => src_data[66].DATAIN +sink_data[67] => src_data[67].DATAIN +sink_data[68] => src_data[68].DATAIN +sink_data[69] => src_data[69].DATAIN +sink_data[70] => src_data[70].DATAIN +sink_data[71] => src_data[71].DATAIN +sink_data[72] => src_data[72].DATAIN +sink_data[73] => src_data[73].DATAIN +sink_data[74] => src_data[74].DATAIN +sink_data[75] => src_data[75].DATAIN +sink_data[76] => src_data[76].DATAIN +sink_data[77] => src_data[77].DATAIN +sink_data[78] => src_data[78].DATAIN +sink_data[79] => src_data[79].DATAIN +sink_data[80] => src_data[80].DATAIN +sink_data[81] => src_data[81].DATAIN +sink_data[81] => Equal0.IN0 +sink_data[81] => Equal1.IN31 +sink_data[82] => src_data[82].DATAIN +sink_data[82] => Equal0.IN31 +sink_data[82] => Equal1.IN30 +sink_data[83] => src_data[83].DATAIN +sink_data[83] => Equal0.IN30 +sink_data[83] => Equal1.IN29 +sink_data[84] => src_data[84].DATAIN +sink_data[84] => Equal0.IN29 +sink_data[84] => Equal1.IN28 +sink_data[85] => src_data[85].DATAIN +sink_data[85] => Equal0.IN28 +sink_data[85] => Equal1.IN27 +sink_data[86] => src_data[86].DATAIN +sink_data[87] => src_data[87].DATAIN +sink_data[88] => src_data[88].DATAIN +sink_data[89] => src_data[89].DATAIN +sink_data[90] => src_data[90].DATAIN +sink_data[91] => src_data[91].DATAIN +sink_data[92] => src_data[92].DATAIN +sink_data[93] => src_data[93].DATAIN +sink_data[94] => src_data[94].DATAIN +sink_data[95] => src_data[95].DATAIN +sink_startofpacket => src_startofpacket.DATAIN +sink_endofpacket => src_endofpacket.DATAIN +sink_ready <= src_ready.DB_MAX_OUTPUT_PORT_TYPE +src_valid <= sink_valid.DB_MAX_OUTPUT_PORT_TYPE +src_data[0] <= sink_data[0].DB_MAX_OUTPUT_PORT_TYPE +src_data[1] <= sink_data[1].DB_MAX_OUTPUT_PORT_TYPE +src_data[2] <= sink_data[2].DB_MAX_OUTPUT_PORT_TYPE +src_data[3] <= sink_data[3].DB_MAX_OUTPUT_PORT_TYPE +src_data[4] <= sink_data[4].DB_MAX_OUTPUT_PORT_TYPE +src_data[5] <= sink_data[5].DB_MAX_OUTPUT_PORT_TYPE +src_data[6] <= sink_data[6].DB_MAX_OUTPUT_PORT_TYPE +src_data[7] <= sink_data[7].DB_MAX_OUTPUT_PORT_TYPE +src_data[8] <= sink_data[8].DB_MAX_OUTPUT_PORT_TYPE +src_data[9] <= sink_data[9].DB_MAX_OUTPUT_PORT_TYPE +src_data[10] <= sink_data[10].DB_MAX_OUTPUT_PORT_TYPE +src_data[11] <= sink_data[11].DB_MAX_OUTPUT_PORT_TYPE +src_data[12] <= sink_data[12].DB_MAX_OUTPUT_PORT_TYPE +src_data[13] <= sink_data[13].DB_MAX_OUTPUT_PORT_TYPE +src_data[14] <= sink_data[14].DB_MAX_OUTPUT_PORT_TYPE +src_data[15] <= sink_data[15].DB_MAX_OUTPUT_PORT_TYPE +src_data[16] <= sink_data[16].DB_MAX_OUTPUT_PORT_TYPE +src_data[17] <= sink_data[17].DB_MAX_OUTPUT_PORT_TYPE +src_data[18] <= sink_data[18].DB_MAX_OUTPUT_PORT_TYPE +src_data[19] <= sink_data[19].DB_MAX_OUTPUT_PORT_TYPE +src_data[20] <= sink_data[20].DB_MAX_OUTPUT_PORT_TYPE +src_data[21] <= sink_data[21].DB_MAX_OUTPUT_PORT_TYPE +src_data[22] <= sink_data[22].DB_MAX_OUTPUT_PORT_TYPE +src_data[23] <= sink_data[23].DB_MAX_OUTPUT_PORT_TYPE +src_data[24] <= sink_data[24].DB_MAX_OUTPUT_PORT_TYPE +src_data[25] <= sink_data[25].DB_MAX_OUTPUT_PORT_TYPE +src_data[26] <= sink_data[26].DB_MAX_OUTPUT_PORT_TYPE +src_data[27] <= sink_data[27].DB_MAX_OUTPUT_PORT_TYPE +src_data[28] <= sink_data[28].DB_MAX_OUTPUT_PORT_TYPE +src_data[29] <= sink_data[29].DB_MAX_OUTPUT_PORT_TYPE +src_data[30] <= sink_data[30].DB_MAX_OUTPUT_PORT_TYPE +src_data[31] <= sink_data[31].DB_MAX_OUTPUT_PORT_TYPE +src_data[32] <= sink_data[32].DB_MAX_OUTPUT_PORT_TYPE +src_data[33] <= sink_data[33].DB_MAX_OUTPUT_PORT_TYPE +src_data[34] <= sink_data[34].DB_MAX_OUTPUT_PORT_TYPE +src_data[35] <= sink_data[35].DB_MAX_OUTPUT_PORT_TYPE +src_data[36] <= sink_data[36].DB_MAX_OUTPUT_PORT_TYPE +src_data[37] <= sink_data[37].DB_MAX_OUTPUT_PORT_TYPE +src_data[38] <= sink_data[38].DB_MAX_OUTPUT_PORT_TYPE +src_data[39] <= sink_data[39].DB_MAX_OUTPUT_PORT_TYPE +src_data[40] <= sink_data[40].DB_MAX_OUTPUT_PORT_TYPE +src_data[41] <= sink_data[41].DB_MAX_OUTPUT_PORT_TYPE +src_data[42] <= sink_data[42].DB_MAX_OUTPUT_PORT_TYPE +src_data[43] <= sink_data[43].DB_MAX_OUTPUT_PORT_TYPE +src_data[44] <= sink_data[44].DB_MAX_OUTPUT_PORT_TYPE +src_data[45] <= sink_data[45].DB_MAX_OUTPUT_PORT_TYPE +src_data[46] <= sink_data[46].DB_MAX_OUTPUT_PORT_TYPE +src_data[47] <= sink_data[47].DB_MAX_OUTPUT_PORT_TYPE +src_data[48] <= sink_data[48].DB_MAX_OUTPUT_PORT_TYPE +src_data[49] <= sink_data[49].DB_MAX_OUTPUT_PORT_TYPE +src_data[50] <= sink_data[50].DB_MAX_OUTPUT_PORT_TYPE +src_data[51] <= sink_data[51].DB_MAX_OUTPUT_PORT_TYPE +src_data[52] <= sink_data[52].DB_MAX_OUTPUT_PORT_TYPE +src_data[53] <= sink_data[53].DB_MAX_OUTPUT_PORT_TYPE +src_data[54] <= sink_data[54].DB_MAX_OUTPUT_PORT_TYPE +src_data[55] <= sink_data[55].DB_MAX_OUTPUT_PORT_TYPE +src_data[56] <= sink_data[56].DB_MAX_OUTPUT_PORT_TYPE +src_data[57] <= sink_data[57].DB_MAX_OUTPUT_PORT_TYPE +src_data[58] <= sink_data[58].DB_MAX_OUTPUT_PORT_TYPE +src_data[59] <= sink_data[59].DB_MAX_OUTPUT_PORT_TYPE +src_data[60] <= sink_data[60].DB_MAX_OUTPUT_PORT_TYPE +src_data[61] <= sink_data[61].DB_MAX_OUTPUT_PORT_TYPE +src_data[62] <= sink_data[62].DB_MAX_OUTPUT_PORT_TYPE +src_data[63] <= sink_data[63].DB_MAX_OUTPUT_PORT_TYPE +src_data[64] <= sink_data[64].DB_MAX_OUTPUT_PORT_TYPE +src_data[65] <= sink_data[65].DB_MAX_OUTPUT_PORT_TYPE +src_data[66] <= sink_data[66].DB_MAX_OUTPUT_PORT_TYPE +src_data[67] <= sink_data[67].DB_MAX_OUTPUT_PORT_TYPE +src_data[68] <= sink_data[68].DB_MAX_OUTPUT_PORT_TYPE +src_data[69] <= sink_data[69].DB_MAX_OUTPUT_PORT_TYPE +src_data[70] <= sink_data[70].DB_MAX_OUTPUT_PORT_TYPE +src_data[71] <= sink_data[71].DB_MAX_OUTPUT_PORT_TYPE +src_data[72] <= sink_data[72].DB_MAX_OUTPUT_PORT_TYPE +src_data[73] <= sink_data[73].DB_MAX_OUTPUT_PORT_TYPE +src_data[74] <= sink_data[74].DB_MAX_OUTPUT_PORT_TYPE +src_data[75] <= sink_data[75].DB_MAX_OUTPUT_PORT_TYPE +src_data[76] <= sink_data[76].DB_MAX_OUTPUT_PORT_TYPE +src_data[77] <= sink_data[77].DB_MAX_OUTPUT_PORT_TYPE +src_data[78] <= sink_data[78].DB_MAX_OUTPUT_PORT_TYPE +src_data[79] <= sink_data[79].DB_MAX_OUTPUT_PORT_TYPE +src_data[80] <= sink_data[80].DB_MAX_OUTPUT_PORT_TYPE +src_data[81] <= sink_data[81].DB_MAX_OUTPUT_PORT_TYPE +src_data[82] <= sink_data[82].DB_MAX_OUTPUT_PORT_TYPE +src_data[83] <= sink_data[83].DB_MAX_OUTPUT_PORT_TYPE +src_data[84] <= sink_data[84].DB_MAX_OUTPUT_PORT_TYPE +src_data[85] <= sink_data[85].DB_MAX_OUTPUT_PORT_TYPE +src_data[86] <= sink_data[86].DB_MAX_OUTPUT_PORT_TYPE +src_data[87] <= sink_data[87].DB_MAX_OUTPUT_PORT_TYPE +src_data[88] <= sink_data[88].DB_MAX_OUTPUT_PORT_TYPE +src_data[89] <= sink_data[89].DB_MAX_OUTPUT_PORT_TYPE +src_data[90] <= sink_data[90].DB_MAX_OUTPUT_PORT_TYPE +src_data[91] <= sink_data[91].DB_MAX_OUTPUT_PORT_TYPE +src_data[92] <= sink_data[92].DB_MAX_OUTPUT_PORT_TYPE +src_data[93] <= sink_data[93].DB_MAX_OUTPUT_PORT_TYPE +src_data[94] <= sink_data[94].DB_MAX_OUTPUT_PORT_TYPE +src_data[95] <= sink_data[95].DB_MAX_OUTPUT_PORT_TYPE +src_channel[0] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[1] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[2] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[3] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[4] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[5] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[6] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[7] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[8] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[9] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[10] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[11] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[12] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[13] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[14] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[15] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[16] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[17] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_startofpacket <= sink_startofpacket.DB_MAX_OUTPUT_PORT_TYPE +src_endofpacket <= sink_endofpacket.DB_MAX_OUTPUT_PORT_TYPE +src_ready => sink_ready.DATAIN + + +|lights|nios_system:NiosII|nios_system_id_router:id_router_001|nios_system_id_router_default_decode:the_default_decode +default_destination_id[0] <= +default_destination_id[1] <= +default_destination_id[2] <= +default_destination_id[3] <= +default_destination_id[4] <= +default_wr_channel[0] <= +default_wr_channel[1] <= +default_wr_channel[2] <= +default_wr_channel[3] <= +default_wr_channel[4] <= +default_wr_channel[5] <= +default_wr_channel[6] <= +default_wr_channel[7] <= +default_wr_channel[8] <= +default_wr_channel[9] <= +default_wr_channel[10] <= +default_wr_channel[11] <= +default_wr_channel[12] <= +default_wr_channel[13] <= +default_wr_channel[14] <= +default_wr_channel[15] <= +default_wr_channel[16] <= +default_wr_channel[17] <= +default_rd_channel[0] <= +default_rd_channel[1] <= +default_rd_channel[2] <= +default_rd_channel[3] <= +default_rd_channel[4] <= +default_rd_channel[5] <= +default_rd_channel[6] <= +default_rd_channel[7] <= +default_rd_channel[8] <= +default_rd_channel[9] <= +default_rd_channel[10] <= +default_rd_channel[11] <= +default_rd_channel[12] <= +default_rd_channel[13] <= +default_rd_channel[14] <= +default_rd_channel[15] <= +default_rd_channel[16] <= +default_rd_channel[17] <= +default_src_channel[0] <= +default_src_channel[1] <= +default_src_channel[2] <= +default_src_channel[3] <= +default_src_channel[4] <= +default_src_channel[5] <= +default_src_channel[6] <= +default_src_channel[7] <= +default_src_channel[8] <= +default_src_channel[9] <= +default_src_channel[10] <= +default_src_channel[11] <= +default_src_channel[12] <= +default_src_channel[13] <= +default_src_channel[14] <= +default_src_channel[15] <= +default_src_channel[16] <= +default_src_channel[17] <= + + +|lights|nios_system:NiosII|nios_system_id_router_002:id_router_002 +clk => ~NO_FANOUT~ +reset => ~NO_FANOUT~ +sink_valid => src_valid.DATAIN +sink_data[0] => src_data[0].DATAIN +sink_data[1] => src_data[1].DATAIN +sink_data[2] => src_data[2].DATAIN +sink_data[3] => src_data[3].DATAIN +sink_data[4] => src_data[4].DATAIN +sink_data[5] => src_data[5].DATAIN +sink_data[6] => src_data[6].DATAIN +sink_data[7] => src_data[7].DATAIN +sink_data[8] => src_data[8].DATAIN +sink_data[9] => src_data[9].DATAIN +sink_data[10] => src_data[10].DATAIN +sink_data[11] => src_data[11].DATAIN +sink_data[12] => src_data[12].DATAIN +sink_data[13] => src_data[13].DATAIN +sink_data[14] => src_data[14].DATAIN +sink_data[15] => src_data[15].DATAIN +sink_data[16] => src_data[16].DATAIN +sink_data[17] => src_data[17].DATAIN +sink_data[18] => src_data[18].DATAIN +sink_data[19] => src_data[19].DATAIN +sink_data[20] => src_data[20].DATAIN +sink_data[21] => src_data[21].DATAIN +sink_data[22] => src_data[22].DATAIN +sink_data[23] => src_data[23].DATAIN +sink_data[24] => src_data[24].DATAIN +sink_data[25] => src_data[25].DATAIN +sink_data[26] => src_data[26].DATAIN +sink_data[27] => src_data[27].DATAIN +sink_data[28] => src_data[28].DATAIN +sink_data[29] => src_data[29].DATAIN +sink_data[30] => src_data[30].DATAIN +sink_data[31] => src_data[31].DATAIN +sink_data[32] => src_data[32].DATAIN +sink_data[33] => src_data[33].DATAIN +sink_data[34] => src_data[34].DATAIN +sink_data[35] => src_data[35].DATAIN +sink_data[36] => src_data[36].DATAIN +sink_data[37] => src_data[37].DATAIN +sink_data[38] => src_data[38].DATAIN +sink_data[39] => src_data[39].DATAIN +sink_data[40] => src_data[40].DATAIN +sink_data[41] => src_data[41].DATAIN +sink_data[42] => src_data[42].DATAIN +sink_data[43] => src_data[43].DATAIN +sink_data[44] => src_data[44].DATAIN +sink_data[45] => src_data[45].DATAIN +sink_data[46] => src_data[46].DATAIN +sink_data[47] => src_data[47].DATAIN +sink_data[48] => src_data[48].DATAIN +sink_data[49] => src_data[49].DATAIN +sink_data[50] => src_data[50].DATAIN +sink_data[51] => src_data[51].DATAIN +sink_data[52] => src_data[52].DATAIN +sink_data[53] => src_data[53].DATAIN +sink_data[54] => src_data[54].DATAIN +sink_data[55] => src_data[55].DATAIN +sink_data[56] => src_data[56].DATAIN +sink_data[57] => src_data[57].DATAIN +sink_data[58] => src_data[58].DATAIN +sink_data[59] => src_data[59].DATAIN +sink_data[60] => src_data[60].DATAIN +sink_data[61] => src_data[61].DATAIN +sink_data[62] => src_data[62].DATAIN +sink_data[63] => src_data[63].DATAIN +sink_data[64] => src_data[64].DATAIN +sink_data[65] => src_data[65].DATAIN +sink_data[66] => src_data[66].DATAIN +sink_data[67] => src_data[67].DATAIN +sink_data[68] => src_data[68].DATAIN +sink_data[69] => src_data[69].DATAIN +sink_data[70] => src_data[70].DATAIN +sink_data[71] => src_data[71].DATAIN +sink_data[72] => src_data[72].DATAIN +sink_data[73] => src_data[73].DATAIN +sink_data[74] => src_data[74].DATAIN +sink_data[75] => src_data[75].DATAIN +sink_data[76] => src_data[76].DATAIN +sink_data[77] => src_data[77].DATAIN +sink_data[78] => src_data[78].DATAIN +sink_data[79] => src_data[79].DATAIN +sink_data[80] => src_data[80].DATAIN +sink_data[81] => src_data[81].DATAIN +sink_data[81] => Equal0.IN31 +sink_data[82] => src_data[82].DATAIN +sink_data[82] => Equal0.IN30 +sink_data[83] => src_data[83].DATAIN +sink_data[83] => Equal0.IN29 +sink_data[84] => src_data[84].DATAIN +sink_data[84] => Equal0.IN28 +sink_data[85] => src_data[85].DATAIN +sink_data[85] => Equal0.IN27 +sink_data[86] => src_data[86].DATAIN +sink_data[87] => src_data[87].DATAIN +sink_data[88] => src_data[88].DATAIN +sink_data[89] => src_data[89].DATAIN +sink_data[90] => src_data[90].DATAIN +sink_data[91] => src_data[91].DATAIN +sink_data[92] => src_data[92].DATAIN +sink_data[93] => src_data[93].DATAIN +sink_data[94] => src_data[94].DATAIN +sink_data[95] => src_data[95].DATAIN +sink_startofpacket => src_startofpacket.DATAIN +sink_endofpacket => src_endofpacket.DATAIN +sink_ready <= src_ready.DB_MAX_OUTPUT_PORT_TYPE +src_valid <= sink_valid.DB_MAX_OUTPUT_PORT_TYPE +src_data[0] <= sink_data[0].DB_MAX_OUTPUT_PORT_TYPE +src_data[1] <= sink_data[1].DB_MAX_OUTPUT_PORT_TYPE +src_data[2] <= sink_data[2].DB_MAX_OUTPUT_PORT_TYPE +src_data[3] <= sink_data[3].DB_MAX_OUTPUT_PORT_TYPE +src_data[4] <= sink_data[4].DB_MAX_OUTPUT_PORT_TYPE +src_data[5] <= sink_data[5].DB_MAX_OUTPUT_PORT_TYPE +src_data[6] <= sink_data[6].DB_MAX_OUTPUT_PORT_TYPE +src_data[7] <= sink_data[7].DB_MAX_OUTPUT_PORT_TYPE +src_data[8] <= sink_data[8].DB_MAX_OUTPUT_PORT_TYPE +src_data[9] <= sink_data[9].DB_MAX_OUTPUT_PORT_TYPE +src_data[10] <= sink_data[10].DB_MAX_OUTPUT_PORT_TYPE +src_data[11] <= sink_data[11].DB_MAX_OUTPUT_PORT_TYPE +src_data[12] <= sink_data[12].DB_MAX_OUTPUT_PORT_TYPE +src_data[13] <= sink_data[13].DB_MAX_OUTPUT_PORT_TYPE +src_data[14] <= sink_data[14].DB_MAX_OUTPUT_PORT_TYPE +src_data[15] <= sink_data[15].DB_MAX_OUTPUT_PORT_TYPE +src_data[16] <= sink_data[16].DB_MAX_OUTPUT_PORT_TYPE +src_data[17] <= sink_data[17].DB_MAX_OUTPUT_PORT_TYPE +src_data[18] <= sink_data[18].DB_MAX_OUTPUT_PORT_TYPE +src_data[19] <= sink_data[19].DB_MAX_OUTPUT_PORT_TYPE +src_data[20] <= sink_data[20].DB_MAX_OUTPUT_PORT_TYPE +src_data[21] <= sink_data[21].DB_MAX_OUTPUT_PORT_TYPE +src_data[22] <= sink_data[22].DB_MAX_OUTPUT_PORT_TYPE +src_data[23] <= sink_data[23].DB_MAX_OUTPUT_PORT_TYPE +src_data[24] <= sink_data[24].DB_MAX_OUTPUT_PORT_TYPE +src_data[25] <= sink_data[25].DB_MAX_OUTPUT_PORT_TYPE +src_data[26] <= sink_data[26].DB_MAX_OUTPUT_PORT_TYPE +src_data[27] <= sink_data[27].DB_MAX_OUTPUT_PORT_TYPE +src_data[28] <= sink_data[28].DB_MAX_OUTPUT_PORT_TYPE +src_data[29] <= sink_data[29].DB_MAX_OUTPUT_PORT_TYPE +src_data[30] <= sink_data[30].DB_MAX_OUTPUT_PORT_TYPE +src_data[31] <= sink_data[31].DB_MAX_OUTPUT_PORT_TYPE +src_data[32] <= sink_data[32].DB_MAX_OUTPUT_PORT_TYPE +src_data[33] <= sink_data[33].DB_MAX_OUTPUT_PORT_TYPE +src_data[34] <= sink_data[34].DB_MAX_OUTPUT_PORT_TYPE +src_data[35] <= sink_data[35].DB_MAX_OUTPUT_PORT_TYPE +src_data[36] <= sink_data[36].DB_MAX_OUTPUT_PORT_TYPE +src_data[37] <= sink_data[37].DB_MAX_OUTPUT_PORT_TYPE +src_data[38] <= sink_data[38].DB_MAX_OUTPUT_PORT_TYPE +src_data[39] <= sink_data[39].DB_MAX_OUTPUT_PORT_TYPE +src_data[40] <= sink_data[40].DB_MAX_OUTPUT_PORT_TYPE +src_data[41] <= sink_data[41].DB_MAX_OUTPUT_PORT_TYPE +src_data[42] <= sink_data[42].DB_MAX_OUTPUT_PORT_TYPE +src_data[43] <= sink_data[43].DB_MAX_OUTPUT_PORT_TYPE +src_data[44] <= sink_data[44].DB_MAX_OUTPUT_PORT_TYPE +src_data[45] <= sink_data[45].DB_MAX_OUTPUT_PORT_TYPE +src_data[46] <= sink_data[46].DB_MAX_OUTPUT_PORT_TYPE +src_data[47] <= sink_data[47].DB_MAX_OUTPUT_PORT_TYPE +src_data[48] <= sink_data[48].DB_MAX_OUTPUT_PORT_TYPE +src_data[49] <= sink_data[49].DB_MAX_OUTPUT_PORT_TYPE +src_data[50] <= sink_data[50].DB_MAX_OUTPUT_PORT_TYPE +src_data[51] <= sink_data[51].DB_MAX_OUTPUT_PORT_TYPE +src_data[52] <= sink_data[52].DB_MAX_OUTPUT_PORT_TYPE +src_data[53] <= sink_data[53].DB_MAX_OUTPUT_PORT_TYPE +src_data[54] <= sink_data[54].DB_MAX_OUTPUT_PORT_TYPE +src_data[55] <= sink_data[55].DB_MAX_OUTPUT_PORT_TYPE +src_data[56] <= sink_data[56].DB_MAX_OUTPUT_PORT_TYPE +src_data[57] <= sink_data[57].DB_MAX_OUTPUT_PORT_TYPE +src_data[58] <= sink_data[58].DB_MAX_OUTPUT_PORT_TYPE +src_data[59] <= sink_data[59].DB_MAX_OUTPUT_PORT_TYPE +src_data[60] <= sink_data[60].DB_MAX_OUTPUT_PORT_TYPE +src_data[61] <= sink_data[61].DB_MAX_OUTPUT_PORT_TYPE +src_data[62] <= sink_data[62].DB_MAX_OUTPUT_PORT_TYPE +src_data[63] <= sink_data[63].DB_MAX_OUTPUT_PORT_TYPE +src_data[64] <= sink_data[64].DB_MAX_OUTPUT_PORT_TYPE +src_data[65] <= sink_data[65].DB_MAX_OUTPUT_PORT_TYPE +src_data[66] <= sink_data[66].DB_MAX_OUTPUT_PORT_TYPE +src_data[67] <= sink_data[67].DB_MAX_OUTPUT_PORT_TYPE +src_data[68] <= sink_data[68].DB_MAX_OUTPUT_PORT_TYPE +src_data[69] <= sink_data[69].DB_MAX_OUTPUT_PORT_TYPE +src_data[70] <= sink_data[70].DB_MAX_OUTPUT_PORT_TYPE +src_data[71] <= sink_data[71].DB_MAX_OUTPUT_PORT_TYPE +src_data[72] <= sink_data[72].DB_MAX_OUTPUT_PORT_TYPE +src_data[73] <= sink_data[73].DB_MAX_OUTPUT_PORT_TYPE +src_data[74] <= sink_data[74].DB_MAX_OUTPUT_PORT_TYPE +src_data[75] <= sink_data[75].DB_MAX_OUTPUT_PORT_TYPE +src_data[76] <= sink_data[76].DB_MAX_OUTPUT_PORT_TYPE +src_data[77] <= sink_data[77].DB_MAX_OUTPUT_PORT_TYPE +src_data[78] <= sink_data[78].DB_MAX_OUTPUT_PORT_TYPE +src_data[79] <= sink_data[79].DB_MAX_OUTPUT_PORT_TYPE +src_data[80] <= sink_data[80].DB_MAX_OUTPUT_PORT_TYPE +src_data[81] <= sink_data[81].DB_MAX_OUTPUT_PORT_TYPE +src_data[82] <= sink_data[82].DB_MAX_OUTPUT_PORT_TYPE +src_data[83] <= sink_data[83].DB_MAX_OUTPUT_PORT_TYPE +src_data[84] <= sink_data[84].DB_MAX_OUTPUT_PORT_TYPE +src_data[85] <= sink_data[85].DB_MAX_OUTPUT_PORT_TYPE +src_data[86] <= sink_data[86].DB_MAX_OUTPUT_PORT_TYPE +src_data[87] <= sink_data[87].DB_MAX_OUTPUT_PORT_TYPE +src_data[88] <= sink_data[88].DB_MAX_OUTPUT_PORT_TYPE +src_data[89] <= sink_data[89].DB_MAX_OUTPUT_PORT_TYPE +src_data[90] <= sink_data[90].DB_MAX_OUTPUT_PORT_TYPE +src_data[91] <= sink_data[91].DB_MAX_OUTPUT_PORT_TYPE +src_data[92] <= sink_data[92].DB_MAX_OUTPUT_PORT_TYPE +src_data[93] <= sink_data[93].DB_MAX_OUTPUT_PORT_TYPE +src_data[94] <= sink_data[94].DB_MAX_OUTPUT_PORT_TYPE +src_data[95] <= sink_data[95].DB_MAX_OUTPUT_PORT_TYPE +src_channel[0] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[1] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[2] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[3] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[4] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[5] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[6] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[7] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[8] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[9] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[10] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[11] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[12] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[13] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[14] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[15] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[16] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[17] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_startofpacket <= sink_startofpacket.DB_MAX_OUTPUT_PORT_TYPE +src_endofpacket <= sink_endofpacket.DB_MAX_OUTPUT_PORT_TYPE +src_ready => sink_ready.DATAIN + + +|lights|nios_system:NiosII|nios_system_id_router_002:id_router_002|nios_system_id_router_002_default_decode:the_default_decode +default_destination_id[0] <= +default_destination_id[1] <= +default_destination_id[2] <= +default_destination_id[3] <= +default_destination_id[4] <= +default_wr_channel[0] <= +default_wr_channel[1] <= +default_wr_channel[2] <= +default_wr_channel[3] <= +default_wr_channel[4] <= +default_wr_channel[5] <= +default_wr_channel[6] <= +default_wr_channel[7] <= +default_wr_channel[8] <= +default_wr_channel[9] <= +default_wr_channel[10] <= +default_wr_channel[11] <= +default_wr_channel[12] <= +default_wr_channel[13] <= +default_wr_channel[14] <= +default_wr_channel[15] <= +default_wr_channel[16] <= +default_wr_channel[17] <= +default_rd_channel[0] <= +default_rd_channel[1] <= +default_rd_channel[2] <= +default_rd_channel[3] <= +default_rd_channel[4] <= +default_rd_channel[5] <= +default_rd_channel[6] <= +default_rd_channel[7] <= +default_rd_channel[8] <= +default_rd_channel[9] <= +default_rd_channel[10] <= +default_rd_channel[11] <= +default_rd_channel[12] <= +default_rd_channel[13] <= +default_rd_channel[14] <= +default_rd_channel[15] <= +default_rd_channel[16] <= +default_rd_channel[17] <= +default_src_channel[0] <= +default_src_channel[1] <= +default_src_channel[2] <= +default_src_channel[3] <= +default_src_channel[4] <= +default_src_channel[5] <= +default_src_channel[6] <= +default_src_channel[7] <= +default_src_channel[8] <= +default_src_channel[9] <= +default_src_channel[10] <= +default_src_channel[11] <= +default_src_channel[12] <= +default_src_channel[13] <= +default_src_channel[14] <= +default_src_channel[15] <= +default_src_channel[16] <= +default_src_channel[17] <= + + +|lights|nios_system:NiosII|nios_system_id_router_002:id_router_003 +clk => ~NO_FANOUT~ +reset => ~NO_FANOUT~ +sink_valid => src_valid.DATAIN +sink_data[0] => src_data[0].DATAIN +sink_data[1] => src_data[1].DATAIN +sink_data[2] => src_data[2].DATAIN +sink_data[3] => src_data[3].DATAIN +sink_data[4] => src_data[4].DATAIN +sink_data[5] => src_data[5].DATAIN +sink_data[6] => src_data[6].DATAIN +sink_data[7] => src_data[7].DATAIN +sink_data[8] => src_data[8].DATAIN +sink_data[9] => src_data[9].DATAIN +sink_data[10] => src_data[10].DATAIN +sink_data[11] => src_data[11].DATAIN +sink_data[12] => src_data[12].DATAIN +sink_data[13] => src_data[13].DATAIN +sink_data[14] => src_data[14].DATAIN +sink_data[15] => src_data[15].DATAIN +sink_data[16] => src_data[16].DATAIN +sink_data[17] => src_data[17].DATAIN +sink_data[18] => src_data[18].DATAIN +sink_data[19] => src_data[19].DATAIN +sink_data[20] => src_data[20].DATAIN +sink_data[21] => src_data[21].DATAIN +sink_data[22] => src_data[22].DATAIN +sink_data[23] => src_data[23].DATAIN +sink_data[24] => src_data[24].DATAIN +sink_data[25] => src_data[25].DATAIN +sink_data[26] => src_data[26].DATAIN +sink_data[27] => src_data[27].DATAIN +sink_data[28] => src_data[28].DATAIN +sink_data[29] => src_data[29].DATAIN +sink_data[30] => src_data[30].DATAIN +sink_data[31] => src_data[31].DATAIN +sink_data[32] => src_data[32].DATAIN +sink_data[33] => src_data[33].DATAIN +sink_data[34] => src_data[34].DATAIN +sink_data[35] => src_data[35].DATAIN +sink_data[36] => src_data[36].DATAIN +sink_data[37] => src_data[37].DATAIN +sink_data[38] => src_data[38].DATAIN +sink_data[39] => src_data[39].DATAIN +sink_data[40] => src_data[40].DATAIN +sink_data[41] => src_data[41].DATAIN +sink_data[42] => src_data[42].DATAIN +sink_data[43] => src_data[43].DATAIN +sink_data[44] => src_data[44].DATAIN +sink_data[45] => src_data[45].DATAIN +sink_data[46] => src_data[46].DATAIN +sink_data[47] => src_data[47].DATAIN +sink_data[48] => src_data[48].DATAIN +sink_data[49] => src_data[49].DATAIN +sink_data[50] => src_data[50].DATAIN +sink_data[51] => src_data[51].DATAIN +sink_data[52] => src_data[52].DATAIN +sink_data[53] => src_data[53].DATAIN +sink_data[54] => src_data[54].DATAIN +sink_data[55] => src_data[55].DATAIN +sink_data[56] => src_data[56].DATAIN +sink_data[57] => src_data[57].DATAIN +sink_data[58] => src_data[58].DATAIN +sink_data[59] => src_data[59].DATAIN +sink_data[60] => src_data[60].DATAIN +sink_data[61] => src_data[61].DATAIN +sink_data[62] => src_data[62].DATAIN +sink_data[63] => src_data[63].DATAIN +sink_data[64] => src_data[64].DATAIN +sink_data[65] => src_data[65].DATAIN +sink_data[66] => src_data[66].DATAIN +sink_data[67] => src_data[67].DATAIN +sink_data[68] => src_data[68].DATAIN +sink_data[69] => src_data[69].DATAIN +sink_data[70] => src_data[70].DATAIN +sink_data[71] => src_data[71].DATAIN +sink_data[72] => src_data[72].DATAIN +sink_data[73] => src_data[73].DATAIN +sink_data[74] => src_data[74].DATAIN +sink_data[75] => src_data[75].DATAIN +sink_data[76] => src_data[76].DATAIN +sink_data[77] => src_data[77].DATAIN +sink_data[78] => src_data[78].DATAIN +sink_data[79] => src_data[79].DATAIN +sink_data[80] => src_data[80].DATAIN +sink_data[81] => src_data[81].DATAIN +sink_data[81] => Equal0.IN31 +sink_data[82] => src_data[82].DATAIN +sink_data[82] => Equal0.IN30 +sink_data[83] => src_data[83].DATAIN +sink_data[83] => Equal0.IN29 +sink_data[84] => src_data[84].DATAIN +sink_data[84] => Equal0.IN28 +sink_data[85] => src_data[85].DATAIN +sink_data[85] => Equal0.IN27 +sink_data[86] => src_data[86].DATAIN +sink_data[87] => src_data[87].DATAIN +sink_data[88] => src_data[88].DATAIN +sink_data[89] => src_data[89].DATAIN +sink_data[90] => src_data[90].DATAIN +sink_data[91] => src_data[91].DATAIN +sink_data[92] => src_data[92].DATAIN +sink_data[93] => src_data[93].DATAIN +sink_data[94] => src_data[94].DATAIN +sink_data[95] => src_data[95].DATAIN +sink_startofpacket => src_startofpacket.DATAIN +sink_endofpacket => src_endofpacket.DATAIN +sink_ready <= src_ready.DB_MAX_OUTPUT_PORT_TYPE +src_valid <= sink_valid.DB_MAX_OUTPUT_PORT_TYPE +src_data[0] <= sink_data[0].DB_MAX_OUTPUT_PORT_TYPE +src_data[1] <= sink_data[1].DB_MAX_OUTPUT_PORT_TYPE +src_data[2] <= sink_data[2].DB_MAX_OUTPUT_PORT_TYPE +src_data[3] <= sink_data[3].DB_MAX_OUTPUT_PORT_TYPE +src_data[4] <= sink_data[4].DB_MAX_OUTPUT_PORT_TYPE +src_data[5] <= sink_data[5].DB_MAX_OUTPUT_PORT_TYPE +src_data[6] <= sink_data[6].DB_MAX_OUTPUT_PORT_TYPE +src_data[7] <= sink_data[7].DB_MAX_OUTPUT_PORT_TYPE +src_data[8] <= sink_data[8].DB_MAX_OUTPUT_PORT_TYPE +src_data[9] <= sink_data[9].DB_MAX_OUTPUT_PORT_TYPE +src_data[10] <= sink_data[10].DB_MAX_OUTPUT_PORT_TYPE +src_data[11] <= sink_data[11].DB_MAX_OUTPUT_PORT_TYPE +src_data[12] <= sink_data[12].DB_MAX_OUTPUT_PORT_TYPE +src_data[13] <= sink_data[13].DB_MAX_OUTPUT_PORT_TYPE +src_data[14] <= sink_data[14].DB_MAX_OUTPUT_PORT_TYPE +src_data[15] <= sink_data[15].DB_MAX_OUTPUT_PORT_TYPE +src_data[16] <= sink_data[16].DB_MAX_OUTPUT_PORT_TYPE +src_data[17] <= sink_data[17].DB_MAX_OUTPUT_PORT_TYPE +src_data[18] <= sink_data[18].DB_MAX_OUTPUT_PORT_TYPE +src_data[19] <= sink_data[19].DB_MAX_OUTPUT_PORT_TYPE +src_data[20] <= sink_data[20].DB_MAX_OUTPUT_PORT_TYPE +src_data[21] <= sink_data[21].DB_MAX_OUTPUT_PORT_TYPE +src_data[22] <= sink_data[22].DB_MAX_OUTPUT_PORT_TYPE +src_data[23] <= sink_data[23].DB_MAX_OUTPUT_PORT_TYPE +src_data[24] <= sink_data[24].DB_MAX_OUTPUT_PORT_TYPE +src_data[25] <= sink_data[25].DB_MAX_OUTPUT_PORT_TYPE +src_data[26] <= sink_data[26].DB_MAX_OUTPUT_PORT_TYPE +src_data[27] <= sink_data[27].DB_MAX_OUTPUT_PORT_TYPE +src_data[28] <= sink_data[28].DB_MAX_OUTPUT_PORT_TYPE +src_data[29] <= sink_data[29].DB_MAX_OUTPUT_PORT_TYPE +src_data[30] <= sink_data[30].DB_MAX_OUTPUT_PORT_TYPE +src_data[31] <= sink_data[31].DB_MAX_OUTPUT_PORT_TYPE +src_data[32] <= sink_data[32].DB_MAX_OUTPUT_PORT_TYPE +src_data[33] <= sink_data[33].DB_MAX_OUTPUT_PORT_TYPE +src_data[34] <= sink_data[34].DB_MAX_OUTPUT_PORT_TYPE +src_data[35] <= sink_data[35].DB_MAX_OUTPUT_PORT_TYPE +src_data[36] <= sink_data[36].DB_MAX_OUTPUT_PORT_TYPE +src_data[37] <= sink_data[37].DB_MAX_OUTPUT_PORT_TYPE +src_data[38] <= sink_data[38].DB_MAX_OUTPUT_PORT_TYPE +src_data[39] <= sink_data[39].DB_MAX_OUTPUT_PORT_TYPE +src_data[40] <= sink_data[40].DB_MAX_OUTPUT_PORT_TYPE +src_data[41] <= sink_data[41].DB_MAX_OUTPUT_PORT_TYPE +src_data[42] <= sink_data[42].DB_MAX_OUTPUT_PORT_TYPE +src_data[43] <= sink_data[43].DB_MAX_OUTPUT_PORT_TYPE +src_data[44] <= sink_data[44].DB_MAX_OUTPUT_PORT_TYPE +src_data[45] <= sink_data[45].DB_MAX_OUTPUT_PORT_TYPE +src_data[46] <= sink_data[46].DB_MAX_OUTPUT_PORT_TYPE +src_data[47] <= sink_data[47].DB_MAX_OUTPUT_PORT_TYPE +src_data[48] <= sink_data[48].DB_MAX_OUTPUT_PORT_TYPE +src_data[49] <= sink_data[49].DB_MAX_OUTPUT_PORT_TYPE +src_data[50] <= sink_data[50].DB_MAX_OUTPUT_PORT_TYPE +src_data[51] <= sink_data[51].DB_MAX_OUTPUT_PORT_TYPE +src_data[52] <= sink_data[52].DB_MAX_OUTPUT_PORT_TYPE +src_data[53] <= sink_data[53].DB_MAX_OUTPUT_PORT_TYPE +src_data[54] <= sink_data[54].DB_MAX_OUTPUT_PORT_TYPE +src_data[55] <= sink_data[55].DB_MAX_OUTPUT_PORT_TYPE +src_data[56] <= sink_data[56].DB_MAX_OUTPUT_PORT_TYPE +src_data[57] <= sink_data[57].DB_MAX_OUTPUT_PORT_TYPE +src_data[58] <= sink_data[58].DB_MAX_OUTPUT_PORT_TYPE +src_data[59] <= sink_data[59].DB_MAX_OUTPUT_PORT_TYPE +src_data[60] <= sink_data[60].DB_MAX_OUTPUT_PORT_TYPE +src_data[61] <= sink_data[61].DB_MAX_OUTPUT_PORT_TYPE +src_data[62] <= sink_data[62].DB_MAX_OUTPUT_PORT_TYPE +src_data[63] <= sink_data[63].DB_MAX_OUTPUT_PORT_TYPE +src_data[64] <= sink_data[64].DB_MAX_OUTPUT_PORT_TYPE +src_data[65] <= sink_data[65].DB_MAX_OUTPUT_PORT_TYPE +src_data[66] <= sink_data[66].DB_MAX_OUTPUT_PORT_TYPE +src_data[67] <= sink_data[67].DB_MAX_OUTPUT_PORT_TYPE +src_data[68] <= sink_data[68].DB_MAX_OUTPUT_PORT_TYPE +src_data[69] <= sink_data[69].DB_MAX_OUTPUT_PORT_TYPE +src_data[70] <= sink_data[70].DB_MAX_OUTPUT_PORT_TYPE +src_data[71] <= sink_data[71].DB_MAX_OUTPUT_PORT_TYPE +src_data[72] <= sink_data[72].DB_MAX_OUTPUT_PORT_TYPE +src_data[73] <= sink_data[73].DB_MAX_OUTPUT_PORT_TYPE +src_data[74] <= sink_data[74].DB_MAX_OUTPUT_PORT_TYPE +src_data[75] <= sink_data[75].DB_MAX_OUTPUT_PORT_TYPE +src_data[76] <= sink_data[76].DB_MAX_OUTPUT_PORT_TYPE +src_data[77] <= sink_data[77].DB_MAX_OUTPUT_PORT_TYPE +src_data[78] <= sink_data[78].DB_MAX_OUTPUT_PORT_TYPE +src_data[79] <= sink_data[79].DB_MAX_OUTPUT_PORT_TYPE +src_data[80] <= sink_data[80].DB_MAX_OUTPUT_PORT_TYPE +src_data[81] <= sink_data[81].DB_MAX_OUTPUT_PORT_TYPE +src_data[82] <= sink_data[82].DB_MAX_OUTPUT_PORT_TYPE +src_data[83] <= sink_data[83].DB_MAX_OUTPUT_PORT_TYPE +src_data[84] <= sink_data[84].DB_MAX_OUTPUT_PORT_TYPE +src_data[85] <= sink_data[85].DB_MAX_OUTPUT_PORT_TYPE +src_data[86] <= sink_data[86].DB_MAX_OUTPUT_PORT_TYPE +src_data[87] <= sink_data[87].DB_MAX_OUTPUT_PORT_TYPE +src_data[88] <= sink_data[88].DB_MAX_OUTPUT_PORT_TYPE +src_data[89] <= sink_data[89].DB_MAX_OUTPUT_PORT_TYPE +src_data[90] <= sink_data[90].DB_MAX_OUTPUT_PORT_TYPE +src_data[91] <= sink_data[91].DB_MAX_OUTPUT_PORT_TYPE +src_data[92] <= sink_data[92].DB_MAX_OUTPUT_PORT_TYPE +src_data[93] <= sink_data[93].DB_MAX_OUTPUT_PORT_TYPE +src_data[94] <= sink_data[94].DB_MAX_OUTPUT_PORT_TYPE +src_data[95] <= sink_data[95].DB_MAX_OUTPUT_PORT_TYPE +src_channel[0] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[1] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[2] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[3] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[4] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[5] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[6] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[7] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[8] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[9] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[10] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[11] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[12] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[13] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[14] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[15] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[16] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[17] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_startofpacket <= sink_startofpacket.DB_MAX_OUTPUT_PORT_TYPE +src_endofpacket <= sink_endofpacket.DB_MAX_OUTPUT_PORT_TYPE +src_ready => sink_ready.DATAIN + + +|lights|nios_system:NiosII|nios_system_id_router_002:id_router_003|nios_system_id_router_002_default_decode:the_default_decode +default_destination_id[0] <= +default_destination_id[1] <= +default_destination_id[2] <= +default_destination_id[3] <= +default_destination_id[4] <= +default_wr_channel[0] <= +default_wr_channel[1] <= +default_wr_channel[2] <= +default_wr_channel[3] <= +default_wr_channel[4] <= +default_wr_channel[5] <= +default_wr_channel[6] <= +default_wr_channel[7] <= +default_wr_channel[8] <= +default_wr_channel[9] <= +default_wr_channel[10] <= +default_wr_channel[11] <= +default_wr_channel[12] <= +default_wr_channel[13] <= +default_wr_channel[14] <= +default_wr_channel[15] <= +default_wr_channel[16] <= +default_wr_channel[17] <= +default_rd_channel[0] <= +default_rd_channel[1] <= +default_rd_channel[2] <= +default_rd_channel[3] <= +default_rd_channel[4] <= +default_rd_channel[5] <= +default_rd_channel[6] <= +default_rd_channel[7] <= +default_rd_channel[8] <= +default_rd_channel[9] <= +default_rd_channel[10] <= +default_rd_channel[11] <= +default_rd_channel[12] <= +default_rd_channel[13] <= +default_rd_channel[14] <= +default_rd_channel[15] <= +default_rd_channel[16] <= +default_rd_channel[17] <= +default_src_channel[0] <= +default_src_channel[1] <= +default_src_channel[2] <= +default_src_channel[3] <= +default_src_channel[4] <= +default_src_channel[5] <= +default_src_channel[6] <= +default_src_channel[7] <= +default_src_channel[8] <= +default_src_channel[9] <= +default_src_channel[10] <= +default_src_channel[11] <= +default_src_channel[12] <= +default_src_channel[13] <= +default_src_channel[14] <= +default_src_channel[15] <= +default_src_channel[16] <= +default_src_channel[17] <= + + +|lights|nios_system:NiosII|nios_system_id_router_002:id_router_004 +clk => ~NO_FANOUT~ +reset => ~NO_FANOUT~ +sink_valid => src_valid.DATAIN +sink_data[0] => src_data[0].DATAIN +sink_data[1] => src_data[1].DATAIN +sink_data[2] => src_data[2].DATAIN +sink_data[3] => src_data[3].DATAIN +sink_data[4] => src_data[4].DATAIN +sink_data[5] => src_data[5].DATAIN +sink_data[6] => src_data[6].DATAIN +sink_data[7] => src_data[7].DATAIN +sink_data[8] => src_data[8].DATAIN +sink_data[9] => src_data[9].DATAIN +sink_data[10] => src_data[10].DATAIN +sink_data[11] => src_data[11].DATAIN +sink_data[12] => src_data[12].DATAIN +sink_data[13] => src_data[13].DATAIN +sink_data[14] => src_data[14].DATAIN +sink_data[15] => src_data[15].DATAIN +sink_data[16] => src_data[16].DATAIN +sink_data[17] => src_data[17].DATAIN +sink_data[18] => src_data[18].DATAIN +sink_data[19] => src_data[19].DATAIN +sink_data[20] => src_data[20].DATAIN +sink_data[21] => src_data[21].DATAIN +sink_data[22] => src_data[22].DATAIN +sink_data[23] => src_data[23].DATAIN +sink_data[24] => src_data[24].DATAIN +sink_data[25] => src_data[25].DATAIN +sink_data[26] => src_data[26].DATAIN +sink_data[27] => src_data[27].DATAIN +sink_data[28] => src_data[28].DATAIN +sink_data[29] => src_data[29].DATAIN +sink_data[30] => src_data[30].DATAIN +sink_data[31] => src_data[31].DATAIN +sink_data[32] => src_data[32].DATAIN +sink_data[33] => src_data[33].DATAIN +sink_data[34] => src_data[34].DATAIN +sink_data[35] => src_data[35].DATAIN +sink_data[36] => src_data[36].DATAIN +sink_data[37] => src_data[37].DATAIN +sink_data[38] => src_data[38].DATAIN +sink_data[39] => src_data[39].DATAIN +sink_data[40] => src_data[40].DATAIN +sink_data[41] => src_data[41].DATAIN +sink_data[42] => src_data[42].DATAIN +sink_data[43] => src_data[43].DATAIN +sink_data[44] => src_data[44].DATAIN +sink_data[45] => src_data[45].DATAIN +sink_data[46] => src_data[46].DATAIN +sink_data[47] => src_data[47].DATAIN +sink_data[48] => src_data[48].DATAIN +sink_data[49] => src_data[49].DATAIN +sink_data[50] => src_data[50].DATAIN +sink_data[51] => src_data[51].DATAIN +sink_data[52] => src_data[52].DATAIN +sink_data[53] => src_data[53].DATAIN +sink_data[54] => src_data[54].DATAIN +sink_data[55] => src_data[55].DATAIN +sink_data[56] => src_data[56].DATAIN +sink_data[57] => src_data[57].DATAIN +sink_data[58] => src_data[58].DATAIN +sink_data[59] => src_data[59].DATAIN +sink_data[60] => src_data[60].DATAIN +sink_data[61] => src_data[61].DATAIN +sink_data[62] => src_data[62].DATAIN +sink_data[63] => src_data[63].DATAIN +sink_data[64] => src_data[64].DATAIN +sink_data[65] => src_data[65].DATAIN +sink_data[66] => src_data[66].DATAIN +sink_data[67] => src_data[67].DATAIN +sink_data[68] => src_data[68].DATAIN +sink_data[69] => src_data[69].DATAIN +sink_data[70] => src_data[70].DATAIN +sink_data[71] => src_data[71].DATAIN +sink_data[72] => src_data[72].DATAIN +sink_data[73] => src_data[73].DATAIN +sink_data[74] => src_data[74].DATAIN +sink_data[75] => src_data[75].DATAIN +sink_data[76] => src_data[76].DATAIN +sink_data[77] => src_data[77].DATAIN +sink_data[78] => src_data[78].DATAIN +sink_data[79] => src_data[79].DATAIN +sink_data[80] => src_data[80].DATAIN +sink_data[81] => src_data[81].DATAIN +sink_data[81] => Equal0.IN31 +sink_data[82] => src_data[82].DATAIN +sink_data[82] => Equal0.IN30 +sink_data[83] => src_data[83].DATAIN +sink_data[83] => Equal0.IN29 +sink_data[84] => src_data[84].DATAIN +sink_data[84] => Equal0.IN28 +sink_data[85] => src_data[85].DATAIN +sink_data[85] => Equal0.IN27 +sink_data[86] => src_data[86].DATAIN +sink_data[87] => src_data[87].DATAIN +sink_data[88] => src_data[88].DATAIN +sink_data[89] => src_data[89].DATAIN +sink_data[90] => src_data[90].DATAIN +sink_data[91] => src_data[91].DATAIN +sink_data[92] => src_data[92].DATAIN +sink_data[93] => src_data[93].DATAIN +sink_data[94] => src_data[94].DATAIN +sink_data[95] => src_data[95].DATAIN +sink_startofpacket => src_startofpacket.DATAIN +sink_endofpacket => src_endofpacket.DATAIN +sink_ready <= src_ready.DB_MAX_OUTPUT_PORT_TYPE +src_valid <= sink_valid.DB_MAX_OUTPUT_PORT_TYPE +src_data[0] <= sink_data[0].DB_MAX_OUTPUT_PORT_TYPE +src_data[1] <= sink_data[1].DB_MAX_OUTPUT_PORT_TYPE +src_data[2] <= sink_data[2].DB_MAX_OUTPUT_PORT_TYPE +src_data[3] <= sink_data[3].DB_MAX_OUTPUT_PORT_TYPE +src_data[4] <= sink_data[4].DB_MAX_OUTPUT_PORT_TYPE +src_data[5] <= sink_data[5].DB_MAX_OUTPUT_PORT_TYPE +src_data[6] <= sink_data[6].DB_MAX_OUTPUT_PORT_TYPE +src_data[7] <= sink_data[7].DB_MAX_OUTPUT_PORT_TYPE +src_data[8] <= sink_data[8].DB_MAX_OUTPUT_PORT_TYPE +src_data[9] <= sink_data[9].DB_MAX_OUTPUT_PORT_TYPE +src_data[10] <= sink_data[10].DB_MAX_OUTPUT_PORT_TYPE +src_data[11] <= sink_data[11].DB_MAX_OUTPUT_PORT_TYPE +src_data[12] <= sink_data[12].DB_MAX_OUTPUT_PORT_TYPE +src_data[13] <= sink_data[13].DB_MAX_OUTPUT_PORT_TYPE +src_data[14] <= sink_data[14].DB_MAX_OUTPUT_PORT_TYPE +src_data[15] <= sink_data[15].DB_MAX_OUTPUT_PORT_TYPE +src_data[16] <= sink_data[16].DB_MAX_OUTPUT_PORT_TYPE +src_data[17] <= sink_data[17].DB_MAX_OUTPUT_PORT_TYPE +src_data[18] <= sink_data[18].DB_MAX_OUTPUT_PORT_TYPE +src_data[19] <= sink_data[19].DB_MAX_OUTPUT_PORT_TYPE +src_data[20] <= sink_data[20].DB_MAX_OUTPUT_PORT_TYPE +src_data[21] <= sink_data[21].DB_MAX_OUTPUT_PORT_TYPE +src_data[22] <= sink_data[22].DB_MAX_OUTPUT_PORT_TYPE +src_data[23] <= sink_data[23].DB_MAX_OUTPUT_PORT_TYPE +src_data[24] <= sink_data[24].DB_MAX_OUTPUT_PORT_TYPE +src_data[25] <= sink_data[25].DB_MAX_OUTPUT_PORT_TYPE +src_data[26] <= sink_data[26].DB_MAX_OUTPUT_PORT_TYPE +src_data[27] <= sink_data[27].DB_MAX_OUTPUT_PORT_TYPE +src_data[28] <= sink_data[28].DB_MAX_OUTPUT_PORT_TYPE +src_data[29] <= sink_data[29].DB_MAX_OUTPUT_PORT_TYPE +src_data[30] <= sink_data[30].DB_MAX_OUTPUT_PORT_TYPE +src_data[31] <= sink_data[31].DB_MAX_OUTPUT_PORT_TYPE +src_data[32] <= sink_data[32].DB_MAX_OUTPUT_PORT_TYPE +src_data[33] <= sink_data[33].DB_MAX_OUTPUT_PORT_TYPE +src_data[34] <= sink_data[34].DB_MAX_OUTPUT_PORT_TYPE +src_data[35] <= sink_data[35].DB_MAX_OUTPUT_PORT_TYPE +src_data[36] <= sink_data[36].DB_MAX_OUTPUT_PORT_TYPE +src_data[37] <= sink_data[37].DB_MAX_OUTPUT_PORT_TYPE +src_data[38] <= sink_data[38].DB_MAX_OUTPUT_PORT_TYPE +src_data[39] <= sink_data[39].DB_MAX_OUTPUT_PORT_TYPE +src_data[40] <= sink_data[40].DB_MAX_OUTPUT_PORT_TYPE +src_data[41] <= sink_data[41].DB_MAX_OUTPUT_PORT_TYPE +src_data[42] <= sink_data[42].DB_MAX_OUTPUT_PORT_TYPE +src_data[43] <= sink_data[43].DB_MAX_OUTPUT_PORT_TYPE +src_data[44] <= sink_data[44].DB_MAX_OUTPUT_PORT_TYPE +src_data[45] <= sink_data[45].DB_MAX_OUTPUT_PORT_TYPE +src_data[46] <= sink_data[46].DB_MAX_OUTPUT_PORT_TYPE +src_data[47] <= sink_data[47].DB_MAX_OUTPUT_PORT_TYPE +src_data[48] <= sink_data[48].DB_MAX_OUTPUT_PORT_TYPE +src_data[49] <= sink_data[49].DB_MAX_OUTPUT_PORT_TYPE +src_data[50] <= sink_data[50].DB_MAX_OUTPUT_PORT_TYPE +src_data[51] <= sink_data[51].DB_MAX_OUTPUT_PORT_TYPE +src_data[52] <= sink_data[52].DB_MAX_OUTPUT_PORT_TYPE +src_data[53] <= sink_data[53].DB_MAX_OUTPUT_PORT_TYPE +src_data[54] <= sink_data[54].DB_MAX_OUTPUT_PORT_TYPE +src_data[55] <= sink_data[55].DB_MAX_OUTPUT_PORT_TYPE +src_data[56] <= sink_data[56].DB_MAX_OUTPUT_PORT_TYPE +src_data[57] <= sink_data[57].DB_MAX_OUTPUT_PORT_TYPE +src_data[58] <= sink_data[58].DB_MAX_OUTPUT_PORT_TYPE +src_data[59] <= sink_data[59].DB_MAX_OUTPUT_PORT_TYPE +src_data[60] <= sink_data[60].DB_MAX_OUTPUT_PORT_TYPE +src_data[61] <= sink_data[61].DB_MAX_OUTPUT_PORT_TYPE +src_data[62] <= sink_data[62].DB_MAX_OUTPUT_PORT_TYPE +src_data[63] <= sink_data[63].DB_MAX_OUTPUT_PORT_TYPE +src_data[64] <= sink_data[64].DB_MAX_OUTPUT_PORT_TYPE +src_data[65] <= sink_data[65].DB_MAX_OUTPUT_PORT_TYPE +src_data[66] <= sink_data[66].DB_MAX_OUTPUT_PORT_TYPE +src_data[67] <= sink_data[67].DB_MAX_OUTPUT_PORT_TYPE +src_data[68] <= sink_data[68].DB_MAX_OUTPUT_PORT_TYPE +src_data[69] <= sink_data[69].DB_MAX_OUTPUT_PORT_TYPE +src_data[70] <= sink_data[70].DB_MAX_OUTPUT_PORT_TYPE +src_data[71] <= sink_data[71].DB_MAX_OUTPUT_PORT_TYPE +src_data[72] <= sink_data[72].DB_MAX_OUTPUT_PORT_TYPE +src_data[73] <= sink_data[73].DB_MAX_OUTPUT_PORT_TYPE +src_data[74] <= sink_data[74].DB_MAX_OUTPUT_PORT_TYPE +src_data[75] <= sink_data[75].DB_MAX_OUTPUT_PORT_TYPE +src_data[76] <= sink_data[76].DB_MAX_OUTPUT_PORT_TYPE +src_data[77] <= sink_data[77].DB_MAX_OUTPUT_PORT_TYPE +src_data[78] <= sink_data[78].DB_MAX_OUTPUT_PORT_TYPE +src_data[79] <= sink_data[79].DB_MAX_OUTPUT_PORT_TYPE +src_data[80] <= sink_data[80].DB_MAX_OUTPUT_PORT_TYPE +src_data[81] <= sink_data[81].DB_MAX_OUTPUT_PORT_TYPE +src_data[82] <= sink_data[82].DB_MAX_OUTPUT_PORT_TYPE +src_data[83] <= sink_data[83].DB_MAX_OUTPUT_PORT_TYPE +src_data[84] <= sink_data[84].DB_MAX_OUTPUT_PORT_TYPE +src_data[85] <= sink_data[85].DB_MAX_OUTPUT_PORT_TYPE +src_data[86] <= sink_data[86].DB_MAX_OUTPUT_PORT_TYPE +src_data[87] <= sink_data[87].DB_MAX_OUTPUT_PORT_TYPE +src_data[88] <= sink_data[88].DB_MAX_OUTPUT_PORT_TYPE +src_data[89] <= sink_data[89].DB_MAX_OUTPUT_PORT_TYPE +src_data[90] <= sink_data[90].DB_MAX_OUTPUT_PORT_TYPE +src_data[91] <= sink_data[91].DB_MAX_OUTPUT_PORT_TYPE +src_data[92] <= sink_data[92].DB_MAX_OUTPUT_PORT_TYPE +src_data[93] <= sink_data[93].DB_MAX_OUTPUT_PORT_TYPE +src_data[94] <= sink_data[94].DB_MAX_OUTPUT_PORT_TYPE +src_data[95] <= sink_data[95].DB_MAX_OUTPUT_PORT_TYPE +src_channel[0] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[1] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[2] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[3] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[4] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[5] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[6] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[7] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[8] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[9] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[10] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[11] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[12] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[13] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[14] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[15] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[16] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[17] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_startofpacket <= sink_startofpacket.DB_MAX_OUTPUT_PORT_TYPE +src_endofpacket <= sink_endofpacket.DB_MAX_OUTPUT_PORT_TYPE +src_ready => sink_ready.DATAIN + + +|lights|nios_system:NiosII|nios_system_id_router_002:id_router_004|nios_system_id_router_002_default_decode:the_default_decode +default_destination_id[0] <= +default_destination_id[1] <= +default_destination_id[2] <= +default_destination_id[3] <= +default_destination_id[4] <= +default_wr_channel[0] <= +default_wr_channel[1] <= +default_wr_channel[2] <= +default_wr_channel[3] <= +default_wr_channel[4] <= +default_wr_channel[5] <= +default_wr_channel[6] <= +default_wr_channel[7] <= +default_wr_channel[8] <= +default_wr_channel[9] <= +default_wr_channel[10] <= +default_wr_channel[11] <= +default_wr_channel[12] <= +default_wr_channel[13] <= +default_wr_channel[14] <= +default_wr_channel[15] <= +default_wr_channel[16] <= +default_wr_channel[17] <= +default_rd_channel[0] <= +default_rd_channel[1] <= +default_rd_channel[2] <= +default_rd_channel[3] <= +default_rd_channel[4] <= +default_rd_channel[5] <= +default_rd_channel[6] <= +default_rd_channel[7] <= +default_rd_channel[8] <= +default_rd_channel[9] <= +default_rd_channel[10] <= +default_rd_channel[11] <= +default_rd_channel[12] <= +default_rd_channel[13] <= +default_rd_channel[14] <= +default_rd_channel[15] <= +default_rd_channel[16] <= +default_rd_channel[17] <= +default_src_channel[0] <= +default_src_channel[1] <= +default_src_channel[2] <= +default_src_channel[3] <= +default_src_channel[4] <= +default_src_channel[5] <= +default_src_channel[6] <= +default_src_channel[7] <= +default_src_channel[8] <= +default_src_channel[9] <= +default_src_channel[10] <= +default_src_channel[11] <= +default_src_channel[12] <= +default_src_channel[13] <= +default_src_channel[14] <= +default_src_channel[15] <= +default_src_channel[16] <= +default_src_channel[17] <= + + +|lights|nios_system:NiosII|nios_system_id_router_002:id_router_005 +clk => ~NO_FANOUT~ +reset => ~NO_FANOUT~ +sink_valid => src_valid.DATAIN +sink_data[0] => src_data[0].DATAIN +sink_data[1] => src_data[1].DATAIN +sink_data[2] => src_data[2].DATAIN +sink_data[3] => src_data[3].DATAIN +sink_data[4] => src_data[4].DATAIN +sink_data[5] => src_data[5].DATAIN +sink_data[6] => src_data[6].DATAIN +sink_data[7] => src_data[7].DATAIN +sink_data[8] => src_data[8].DATAIN +sink_data[9] => src_data[9].DATAIN +sink_data[10] => src_data[10].DATAIN +sink_data[11] => src_data[11].DATAIN +sink_data[12] => src_data[12].DATAIN +sink_data[13] => src_data[13].DATAIN +sink_data[14] => src_data[14].DATAIN +sink_data[15] => src_data[15].DATAIN +sink_data[16] => src_data[16].DATAIN +sink_data[17] => src_data[17].DATAIN +sink_data[18] => src_data[18].DATAIN +sink_data[19] => src_data[19].DATAIN +sink_data[20] => src_data[20].DATAIN +sink_data[21] => src_data[21].DATAIN +sink_data[22] => src_data[22].DATAIN +sink_data[23] => src_data[23].DATAIN +sink_data[24] => src_data[24].DATAIN +sink_data[25] => src_data[25].DATAIN +sink_data[26] => src_data[26].DATAIN +sink_data[27] => src_data[27].DATAIN +sink_data[28] => src_data[28].DATAIN +sink_data[29] => src_data[29].DATAIN +sink_data[30] => src_data[30].DATAIN +sink_data[31] => src_data[31].DATAIN +sink_data[32] => src_data[32].DATAIN +sink_data[33] => src_data[33].DATAIN +sink_data[34] => src_data[34].DATAIN +sink_data[35] => src_data[35].DATAIN +sink_data[36] => src_data[36].DATAIN +sink_data[37] => src_data[37].DATAIN +sink_data[38] => src_data[38].DATAIN +sink_data[39] => src_data[39].DATAIN +sink_data[40] => src_data[40].DATAIN +sink_data[41] => src_data[41].DATAIN +sink_data[42] => src_data[42].DATAIN +sink_data[43] => src_data[43].DATAIN +sink_data[44] => src_data[44].DATAIN +sink_data[45] => src_data[45].DATAIN +sink_data[46] => src_data[46].DATAIN +sink_data[47] => src_data[47].DATAIN +sink_data[48] => src_data[48].DATAIN +sink_data[49] => src_data[49].DATAIN +sink_data[50] => src_data[50].DATAIN +sink_data[51] => src_data[51].DATAIN +sink_data[52] => src_data[52].DATAIN +sink_data[53] => src_data[53].DATAIN +sink_data[54] => src_data[54].DATAIN +sink_data[55] => src_data[55].DATAIN +sink_data[56] => src_data[56].DATAIN +sink_data[57] => src_data[57].DATAIN +sink_data[58] => src_data[58].DATAIN +sink_data[59] => src_data[59].DATAIN +sink_data[60] => src_data[60].DATAIN +sink_data[61] => src_data[61].DATAIN +sink_data[62] => src_data[62].DATAIN +sink_data[63] => src_data[63].DATAIN +sink_data[64] => src_data[64].DATAIN +sink_data[65] => src_data[65].DATAIN +sink_data[66] => src_data[66].DATAIN +sink_data[67] => src_data[67].DATAIN +sink_data[68] => src_data[68].DATAIN +sink_data[69] => src_data[69].DATAIN +sink_data[70] => src_data[70].DATAIN +sink_data[71] => src_data[71].DATAIN +sink_data[72] => src_data[72].DATAIN +sink_data[73] => src_data[73].DATAIN +sink_data[74] => src_data[74].DATAIN +sink_data[75] => src_data[75].DATAIN +sink_data[76] => src_data[76].DATAIN +sink_data[77] => src_data[77].DATAIN +sink_data[78] => src_data[78].DATAIN +sink_data[79] => src_data[79].DATAIN +sink_data[80] => src_data[80].DATAIN +sink_data[81] => src_data[81].DATAIN +sink_data[81] => Equal0.IN31 +sink_data[82] => src_data[82].DATAIN +sink_data[82] => Equal0.IN30 +sink_data[83] => src_data[83].DATAIN +sink_data[83] => Equal0.IN29 +sink_data[84] => src_data[84].DATAIN +sink_data[84] => Equal0.IN28 +sink_data[85] => src_data[85].DATAIN +sink_data[85] => Equal0.IN27 +sink_data[86] => src_data[86].DATAIN +sink_data[87] => src_data[87].DATAIN +sink_data[88] => src_data[88].DATAIN +sink_data[89] => src_data[89].DATAIN +sink_data[90] => src_data[90].DATAIN +sink_data[91] => src_data[91].DATAIN +sink_data[92] => src_data[92].DATAIN +sink_data[93] => src_data[93].DATAIN +sink_data[94] => src_data[94].DATAIN +sink_data[95] => src_data[95].DATAIN +sink_startofpacket => src_startofpacket.DATAIN +sink_endofpacket => src_endofpacket.DATAIN +sink_ready <= src_ready.DB_MAX_OUTPUT_PORT_TYPE +src_valid <= sink_valid.DB_MAX_OUTPUT_PORT_TYPE +src_data[0] <= sink_data[0].DB_MAX_OUTPUT_PORT_TYPE +src_data[1] <= sink_data[1].DB_MAX_OUTPUT_PORT_TYPE +src_data[2] <= sink_data[2].DB_MAX_OUTPUT_PORT_TYPE +src_data[3] <= sink_data[3].DB_MAX_OUTPUT_PORT_TYPE +src_data[4] <= sink_data[4].DB_MAX_OUTPUT_PORT_TYPE +src_data[5] <= sink_data[5].DB_MAX_OUTPUT_PORT_TYPE +src_data[6] <= sink_data[6].DB_MAX_OUTPUT_PORT_TYPE +src_data[7] <= sink_data[7].DB_MAX_OUTPUT_PORT_TYPE +src_data[8] <= sink_data[8].DB_MAX_OUTPUT_PORT_TYPE +src_data[9] <= sink_data[9].DB_MAX_OUTPUT_PORT_TYPE +src_data[10] <= sink_data[10].DB_MAX_OUTPUT_PORT_TYPE +src_data[11] <= sink_data[11].DB_MAX_OUTPUT_PORT_TYPE +src_data[12] <= sink_data[12].DB_MAX_OUTPUT_PORT_TYPE +src_data[13] <= sink_data[13].DB_MAX_OUTPUT_PORT_TYPE +src_data[14] <= sink_data[14].DB_MAX_OUTPUT_PORT_TYPE +src_data[15] <= sink_data[15].DB_MAX_OUTPUT_PORT_TYPE +src_data[16] <= sink_data[16].DB_MAX_OUTPUT_PORT_TYPE +src_data[17] <= sink_data[17].DB_MAX_OUTPUT_PORT_TYPE +src_data[18] <= sink_data[18].DB_MAX_OUTPUT_PORT_TYPE +src_data[19] <= sink_data[19].DB_MAX_OUTPUT_PORT_TYPE +src_data[20] <= sink_data[20].DB_MAX_OUTPUT_PORT_TYPE +src_data[21] <= sink_data[21].DB_MAX_OUTPUT_PORT_TYPE +src_data[22] <= sink_data[22].DB_MAX_OUTPUT_PORT_TYPE +src_data[23] <= sink_data[23].DB_MAX_OUTPUT_PORT_TYPE +src_data[24] <= sink_data[24].DB_MAX_OUTPUT_PORT_TYPE +src_data[25] <= sink_data[25].DB_MAX_OUTPUT_PORT_TYPE +src_data[26] <= sink_data[26].DB_MAX_OUTPUT_PORT_TYPE +src_data[27] <= sink_data[27].DB_MAX_OUTPUT_PORT_TYPE +src_data[28] <= sink_data[28].DB_MAX_OUTPUT_PORT_TYPE +src_data[29] <= sink_data[29].DB_MAX_OUTPUT_PORT_TYPE +src_data[30] <= sink_data[30].DB_MAX_OUTPUT_PORT_TYPE +src_data[31] <= sink_data[31].DB_MAX_OUTPUT_PORT_TYPE +src_data[32] <= sink_data[32].DB_MAX_OUTPUT_PORT_TYPE +src_data[33] <= sink_data[33].DB_MAX_OUTPUT_PORT_TYPE +src_data[34] <= sink_data[34].DB_MAX_OUTPUT_PORT_TYPE +src_data[35] <= sink_data[35].DB_MAX_OUTPUT_PORT_TYPE +src_data[36] <= sink_data[36].DB_MAX_OUTPUT_PORT_TYPE +src_data[37] <= sink_data[37].DB_MAX_OUTPUT_PORT_TYPE +src_data[38] <= sink_data[38].DB_MAX_OUTPUT_PORT_TYPE +src_data[39] <= sink_data[39].DB_MAX_OUTPUT_PORT_TYPE +src_data[40] <= sink_data[40].DB_MAX_OUTPUT_PORT_TYPE +src_data[41] <= sink_data[41].DB_MAX_OUTPUT_PORT_TYPE +src_data[42] <= sink_data[42].DB_MAX_OUTPUT_PORT_TYPE +src_data[43] <= sink_data[43].DB_MAX_OUTPUT_PORT_TYPE +src_data[44] <= sink_data[44].DB_MAX_OUTPUT_PORT_TYPE +src_data[45] <= sink_data[45].DB_MAX_OUTPUT_PORT_TYPE +src_data[46] <= sink_data[46].DB_MAX_OUTPUT_PORT_TYPE +src_data[47] <= sink_data[47].DB_MAX_OUTPUT_PORT_TYPE +src_data[48] <= sink_data[48].DB_MAX_OUTPUT_PORT_TYPE +src_data[49] <= sink_data[49].DB_MAX_OUTPUT_PORT_TYPE +src_data[50] <= sink_data[50].DB_MAX_OUTPUT_PORT_TYPE +src_data[51] <= sink_data[51].DB_MAX_OUTPUT_PORT_TYPE +src_data[52] <= sink_data[52].DB_MAX_OUTPUT_PORT_TYPE +src_data[53] <= sink_data[53].DB_MAX_OUTPUT_PORT_TYPE +src_data[54] <= sink_data[54].DB_MAX_OUTPUT_PORT_TYPE +src_data[55] <= sink_data[55].DB_MAX_OUTPUT_PORT_TYPE +src_data[56] <= sink_data[56].DB_MAX_OUTPUT_PORT_TYPE +src_data[57] <= sink_data[57].DB_MAX_OUTPUT_PORT_TYPE +src_data[58] <= sink_data[58].DB_MAX_OUTPUT_PORT_TYPE +src_data[59] <= sink_data[59].DB_MAX_OUTPUT_PORT_TYPE +src_data[60] <= sink_data[60].DB_MAX_OUTPUT_PORT_TYPE +src_data[61] <= sink_data[61].DB_MAX_OUTPUT_PORT_TYPE +src_data[62] <= sink_data[62].DB_MAX_OUTPUT_PORT_TYPE +src_data[63] <= sink_data[63].DB_MAX_OUTPUT_PORT_TYPE +src_data[64] <= sink_data[64].DB_MAX_OUTPUT_PORT_TYPE +src_data[65] <= sink_data[65].DB_MAX_OUTPUT_PORT_TYPE +src_data[66] <= sink_data[66].DB_MAX_OUTPUT_PORT_TYPE +src_data[67] <= sink_data[67].DB_MAX_OUTPUT_PORT_TYPE +src_data[68] <= sink_data[68].DB_MAX_OUTPUT_PORT_TYPE +src_data[69] <= sink_data[69].DB_MAX_OUTPUT_PORT_TYPE +src_data[70] <= sink_data[70].DB_MAX_OUTPUT_PORT_TYPE +src_data[71] <= sink_data[71].DB_MAX_OUTPUT_PORT_TYPE +src_data[72] <= sink_data[72].DB_MAX_OUTPUT_PORT_TYPE +src_data[73] <= sink_data[73].DB_MAX_OUTPUT_PORT_TYPE +src_data[74] <= sink_data[74].DB_MAX_OUTPUT_PORT_TYPE +src_data[75] <= sink_data[75].DB_MAX_OUTPUT_PORT_TYPE +src_data[76] <= sink_data[76].DB_MAX_OUTPUT_PORT_TYPE +src_data[77] <= sink_data[77].DB_MAX_OUTPUT_PORT_TYPE +src_data[78] <= sink_data[78].DB_MAX_OUTPUT_PORT_TYPE +src_data[79] <= sink_data[79].DB_MAX_OUTPUT_PORT_TYPE +src_data[80] <= sink_data[80].DB_MAX_OUTPUT_PORT_TYPE +src_data[81] <= sink_data[81].DB_MAX_OUTPUT_PORT_TYPE +src_data[82] <= sink_data[82].DB_MAX_OUTPUT_PORT_TYPE +src_data[83] <= sink_data[83].DB_MAX_OUTPUT_PORT_TYPE +src_data[84] <= sink_data[84].DB_MAX_OUTPUT_PORT_TYPE +src_data[85] <= sink_data[85].DB_MAX_OUTPUT_PORT_TYPE +src_data[86] <= sink_data[86].DB_MAX_OUTPUT_PORT_TYPE +src_data[87] <= sink_data[87].DB_MAX_OUTPUT_PORT_TYPE +src_data[88] <= sink_data[88].DB_MAX_OUTPUT_PORT_TYPE +src_data[89] <= sink_data[89].DB_MAX_OUTPUT_PORT_TYPE +src_data[90] <= sink_data[90].DB_MAX_OUTPUT_PORT_TYPE +src_data[91] <= sink_data[91].DB_MAX_OUTPUT_PORT_TYPE +src_data[92] <= sink_data[92].DB_MAX_OUTPUT_PORT_TYPE +src_data[93] <= sink_data[93].DB_MAX_OUTPUT_PORT_TYPE +src_data[94] <= sink_data[94].DB_MAX_OUTPUT_PORT_TYPE +src_data[95] <= sink_data[95].DB_MAX_OUTPUT_PORT_TYPE +src_channel[0] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[1] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[2] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[3] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[4] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[5] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[6] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[7] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[8] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[9] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[10] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[11] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[12] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[13] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[14] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[15] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[16] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[17] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_startofpacket <= sink_startofpacket.DB_MAX_OUTPUT_PORT_TYPE +src_endofpacket <= sink_endofpacket.DB_MAX_OUTPUT_PORT_TYPE +src_ready => sink_ready.DATAIN + + +|lights|nios_system:NiosII|nios_system_id_router_002:id_router_005|nios_system_id_router_002_default_decode:the_default_decode +default_destination_id[0] <= +default_destination_id[1] <= +default_destination_id[2] <= +default_destination_id[3] <= +default_destination_id[4] <= +default_wr_channel[0] <= +default_wr_channel[1] <= +default_wr_channel[2] <= +default_wr_channel[3] <= +default_wr_channel[4] <= +default_wr_channel[5] <= +default_wr_channel[6] <= +default_wr_channel[7] <= +default_wr_channel[8] <= +default_wr_channel[9] <= +default_wr_channel[10] <= +default_wr_channel[11] <= +default_wr_channel[12] <= +default_wr_channel[13] <= +default_wr_channel[14] <= +default_wr_channel[15] <= +default_wr_channel[16] <= +default_wr_channel[17] <= +default_rd_channel[0] <= +default_rd_channel[1] <= +default_rd_channel[2] <= +default_rd_channel[3] <= +default_rd_channel[4] <= +default_rd_channel[5] <= +default_rd_channel[6] <= +default_rd_channel[7] <= +default_rd_channel[8] <= +default_rd_channel[9] <= +default_rd_channel[10] <= +default_rd_channel[11] <= +default_rd_channel[12] <= +default_rd_channel[13] <= +default_rd_channel[14] <= +default_rd_channel[15] <= +default_rd_channel[16] <= +default_rd_channel[17] <= +default_src_channel[0] <= +default_src_channel[1] <= +default_src_channel[2] <= +default_src_channel[3] <= +default_src_channel[4] <= +default_src_channel[5] <= +default_src_channel[6] <= +default_src_channel[7] <= +default_src_channel[8] <= +default_src_channel[9] <= +default_src_channel[10] <= +default_src_channel[11] <= +default_src_channel[12] <= +default_src_channel[13] <= +default_src_channel[14] <= +default_src_channel[15] <= +default_src_channel[16] <= +default_src_channel[17] <= + + +|lights|nios_system:NiosII|nios_system_id_router_002:id_router_006 +clk => ~NO_FANOUT~ +reset => ~NO_FANOUT~ +sink_valid => src_valid.DATAIN +sink_data[0] => src_data[0].DATAIN +sink_data[1] => src_data[1].DATAIN +sink_data[2] => src_data[2].DATAIN +sink_data[3] => src_data[3].DATAIN +sink_data[4] => src_data[4].DATAIN +sink_data[5] => src_data[5].DATAIN +sink_data[6] => src_data[6].DATAIN +sink_data[7] => src_data[7].DATAIN +sink_data[8] => src_data[8].DATAIN +sink_data[9] => src_data[9].DATAIN +sink_data[10] => src_data[10].DATAIN +sink_data[11] => src_data[11].DATAIN +sink_data[12] => src_data[12].DATAIN +sink_data[13] => src_data[13].DATAIN +sink_data[14] => src_data[14].DATAIN +sink_data[15] => src_data[15].DATAIN +sink_data[16] => src_data[16].DATAIN +sink_data[17] => src_data[17].DATAIN +sink_data[18] => src_data[18].DATAIN +sink_data[19] => src_data[19].DATAIN +sink_data[20] => src_data[20].DATAIN +sink_data[21] => src_data[21].DATAIN +sink_data[22] => src_data[22].DATAIN +sink_data[23] => src_data[23].DATAIN +sink_data[24] => src_data[24].DATAIN +sink_data[25] => src_data[25].DATAIN +sink_data[26] => src_data[26].DATAIN +sink_data[27] => src_data[27].DATAIN +sink_data[28] => src_data[28].DATAIN +sink_data[29] => src_data[29].DATAIN +sink_data[30] => src_data[30].DATAIN +sink_data[31] => src_data[31].DATAIN +sink_data[32] => src_data[32].DATAIN +sink_data[33] => src_data[33].DATAIN +sink_data[34] => src_data[34].DATAIN +sink_data[35] => src_data[35].DATAIN +sink_data[36] => src_data[36].DATAIN +sink_data[37] => src_data[37].DATAIN +sink_data[38] => src_data[38].DATAIN +sink_data[39] => src_data[39].DATAIN +sink_data[40] => src_data[40].DATAIN +sink_data[41] => src_data[41].DATAIN +sink_data[42] => src_data[42].DATAIN +sink_data[43] => src_data[43].DATAIN +sink_data[44] => src_data[44].DATAIN +sink_data[45] => src_data[45].DATAIN +sink_data[46] => src_data[46].DATAIN +sink_data[47] => src_data[47].DATAIN +sink_data[48] => src_data[48].DATAIN +sink_data[49] => src_data[49].DATAIN +sink_data[50] => src_data[50].DATAIN +sink_data[51] => src_data[51].DATAIN +sink_data[52] => src_data[52].DATAIN +sink_data[53] => src_data[53].DATAIN +sink_data[54] => src_data[54].DATAIN +sink_data[55] => src_data[55].DATAIN +sink_data[56] => src_data[56].DATAIN +sink_data[57] => src_data[57].DATAIN +sink_data[58] => src_data[58].DATAIN +sink_data[59] => src_data[59].DATAIN +sink_data[60] => src_data[60].DATAIN +sink_data[61] => src_data[61].DATAIN +sink_data[62] => src_data[62].DATAIN +sink_data[63] => src_data[63].DATAIN +sink_data[64] => src_data[64].DATAIN +sink_data[65] => src_data[65].DATAIN +sink_data[66] => src_data[66].DATAIN +sink_data[67] => src_data[67].DATAIN +sink_data[68] => src_data[68].DATAIN +sink_data[69] => src_data[69].DATAIN +sink_data[70] => src_data[70].DATAIN +sink_data[71] => src_data[71].DATAIN +sink_data[72] => src_data[72].DATAIN +sink_data[73] => src_data[73].DATAIN +sink_data[74] => src_data[74].DATAIN +sink_data[75] => src_data[75].DATAIN +sink_data[76] => src_data[76].DATAIN +sink_data[77] => src_data[77].DATAIN +sink_data[78] => src_data[78].DATAIN +sink_data[79] => src_data[79].DATAIN +sink_data[80] => src_data[80].DATAIN +sink_data[81] => src_data[81].DATAIN +sink_data[81] => Equal0.IN31 +sink_data[82] => src_data[82].DATAIN +sink_data[82] => Equal0.IN30 +sink_data[83] => src_data[83].DATAIN +sink_data[83] => Equal0.IN29 +sink_data[84] => src_data[84].DATAIN +sink_data[84] => Equal0.IN28 +sink_data[85] => src_data[85].DATAIN +sink_data[85] => Equal0.IN27 +sink_data[86] => src_data[86].DATAIN +sink_data[87] => src_data[87].DATAIN +sink_data[88] => src_data[88].DATAIN +sink_data[89] => src_data[89].DATAIN +sink_data[90] => src_data[90].DATAIN +sink_data[91] => src_data[91].DATAIN +sink_data[92] => src_data[92].DATAIN +sink_data[93] => src_data[93].DATAIN +sink_data[94] => src_data[94].DATAIN +sink_data[95] => src_data[95].DATAIN +sink_startofpacket => src_startofpacket.DATAIN +sink_endofpacket => src_endofpacket.DATAIN +sink_ready <= src_ready.DB_MAX_OUTPUT_PORT_TYPE +src_valid <= sink_valid.DB_MAX_OUTPUT_PORT_TYPE +src_data[0] <= sink_data[0].DB_MAX_OUTPUT_PORT_TYPE +src_data[1] <= sink_data[1].DB_MAX_OUTPUT_PORT_TYPE +src_data[2] <= sink_data[2].DB_MAX_OUTPUT_PORT_TYPE +src_data[3] <= sink_data[3].DB_MAX_OUTPUT_PORT_TYPE +src_data[4] <= sink_data[4].DB_MAX_OUTPUT_PORT_TYPE +src_data[5] <= sink_data[5].DB_MAX_OUTPUT_PORT_TYPE +src_data[6] <= sink_data[6].DB_MAX_OUTPUT_PORT_TYPE +src_data[7] <= sink_data[7].DB_MAX_OUTPUT_PORT_TYPE +src_data[8] <= sink_data[8].DB_MAX_OUTPUT_PORT_TYPE +src_data[9] <= sink_data[9].DB_MAX_OUTPUT_PORT_TYPE +src_data[10] <= sink_data[10].DB_MAX_OUTPUT_PORT_TYPE +src_data[11] <= sink_data[11].DB_MAX_OUTPUT_PORT_TYPE +src_data[12] <= sink_data[12].DB_MAX_OUTPUT_PORT_TYPE +src_data[13] <= sink_data[13].DB_MAX_OUTPUT_PORT_TYPE +src_data[14] <= sink_data[14].DB_MAX_OUTPUT_PORT_TYPE +src_data[15] <= sink_data[15].DB_MAX_OUTPUT_PORT_TYPE +src_data[16] <= sink_data[16].DB_MAX_OUTPUT_PORT_TYPE +src_data[17] <= sink_data[17].DB_MAX_OUTPUT_PORT_TYPE +src_data[18] <= sink_data[18].DB_MAX_OUTPUT_PORT_TYPE +src_data[19] <= sink_data[19].DB_MAX_OUTPUT_PORT_TYPE +src_data[20] <= sink_data[20].DB_MAX_OUTPUT_PORT_TYPE +src_data[21] <= sink_data[21].DB_MAX_OUTPUT_PORT_TYPE +src_data[22] <= sink_data[22].DB_MAX_OUTPUT_PORT_TYPE +src_data[23] <= sink_data[23].DB_MAX_OUTPUT_PORT_TYPE +src_data[24] <= sink_data[24].DB_MAX_OUTPUT_PORT_TYPE +src_data[25] <= sink_data[25].DB_MAX_OUTPUT_PORT_TYPE +src_data[26] <= sink_data[26].DB_MAX_OUTPUT_PORT_TYPE +src_data[27] <= sink_data[27].DB_MAX_OUTPUT_PORT_TYPE +src_data[28] <= sink_data[28].DB_MAX_OUTPUT_PORT_TYPE +src_data[29] <= sink_data[29].DB_MAX_OUTPUT_PORT_TYPE +src_data[30] <= sink_data[30].DB_MAX_OUTPUT_PORT_TYPE +src_data[31] <= sink_data[31].DB_MAX_OUTPUT_PORT_TYPE +src_data[32] <= sink_data[32].DB_MAX_OUTPUT_PORT_TYPE +src_data[33] <= sink_data[33].DB_MAX_OUTPUT_PORT_TYPE +src_data[34] <= sink_data[34].DB_MAX_OUTPUT_PORT_TYPE +src_data[35] <= sink_data[35].DB_MAX_OUTPUT_PORT_TYPE +src_data[36] <= sink_data[36].DB_MAX_OUTPUT_PORT_TYPE +src_data[37] <= sink_data[37].DB_MAX_OUTPUT_PORT_TYPE +src_data[38] <= sink_data[38].DB_MAX_OUTPUT_PORT_TYPE +src_data[39] <= sink_data[39].DB_MAX_OUTPUT_PORT_TYPE +src_data[40] <= sink_data[40].DB_MAX_OUTPUT_PORT_TYPE +src_data[41] <= sink_data[41].DB_MAX_OUTPUT_PORT_TYPE +src_data[42] <= sink_data[42].DB_MAX_OUTPUT_PORT_TYPE +src_data[43] <= sink_data[43].DB_MAX_OUTPUT_PORT_TYPE +src_data[44] <= sink_data[44].DB_MAX_OUTPUT_PORT_TYPE +src_data[45] <= sink_data[45].DB_MAX_OUTPUT_PORT_TYPE +src_data[46] <= sink_data[46].DB_MAX_OUTPUT_PORT_TYPE +src_data[47] <= sink_data[47].DB_MAX_OUTPUT_PORT_TYPE +src_data[48] <= sink_data[48].DB_MAX_OUTPUT_PORT_TYPE +src_data[49] <= sink_data[49].DB_MAX_OUTPUT_PORT_TYPE +src_data[50] <= sink_data[50].DB_MAX_OUTPUT_PORT_TYPE +src_data[51] <= sink_data[51].DB_MAX_OUTPUT_PORT_TYPE +src_data[52] <= sink_data[52].DB_MAX_OUTPUT_PORT_TYPE +src_data[53] <= sink_data[53].DB_MAX_OUTPUT_PORT_TYPE +src_data[54] <= sink_data[54].DB_MAX_OUTPUT_PORT_TYPE +src_data[55] <= sink_data[55].DB_MAX_OUTPUT_PORT_TYPE +src_data[56] <= sink_data[56].DB_MAX_OUTPUT_PORT_TYPE +src_data[57] <= sink_data[57].DB_MAX_OUTPUT_PORT_TYPE +src_data[58] <= sink_data[58].DB_MAX_OUTPUT_PORT_TYPE +src_data[59] <= sink_data[59].DB_MAX_OUTPUT_PORT_TYPE +src_data[60] <= sink_data[60].DB_MAX_OUTPUT_PORT_TYPE +src_data[61] <= sink_data[61].DB_MAX_OUTPUT_PORT_TYPE +src_data[62] <= sink_data[62].DB_MAX_OUTPUT_PORT_TYPE +src_data[63] <= sink_data[63].DB_MAX_OUTPUT_PORT_TYPE +src_data[64] <= sink_data[64].DB_MAX_OUTPUT_PORT_TYPE +src_data[65] <= sink_data[65].DB_MAX_OUTPUT_PORT_TYPE +src_data[66] <= sink_data[66].DB_MAX_OUTPUT_PORT_TYPE +src_data[67] <= sink_data[67].DB_MAX_OUTPUT_PORT_TYPE +src_data[68] <= sink_data[68].DB_MAX_OUTPUT_PORT_TYPE +src_data[69] <= sink_data[69].DB_MAX_OUTPUT_PORT_TYPE +src_data[70] <= sink_data[70].DB_MAX_OUTPUT_PORT_TYPE +src_data[71] <= sink_data[71].DB_MAX_OUTPUT_PORT_TYPE +src_data[72] <= sink_data[72].DB_MAX_OUTPUT_PORT_TYPE +src_data[73] <= sink_data[73].DB_MAX_OUTPUT_PORT_TYPE +src_data[74] <= sink_data[74].DB_MAX_OUTPUT_PORT_TYPE +src_data[75] <= sink_data[75].DB_MAX_OUTPUT_PORT_TYPE +src_data[76] <= sink_data[76].DB_MAX_OUTPUT_PORT_TYPE +src_data[77] <= sink_data[77].DB_MAX_OUTPUT_PORT_TYPE +src_data[78] <= sink_data[78].DB_MAX_OUTPUT_PORT_TYPE +src_data[79] <= sink_data[79].DB_MAX_OUTPUT_PORT_TYPE +src_data[80] <= sink_data[80].DB_MAX_OUTPUT_PORT_TYPE +src_data[81] <= sink_data[81].DB_MAX_OUTPUT_PORT_TYPE +src_data[82] <= sink_data[82].DB_MAX_OUTPUT_PORT_TYPE +src_data[83] <= sink_data[83].DB_MAX_OUTPUT_PORT_TYPE +src_data[84] <= sink_data[84].DB_MAX_OUTPUT_PORT_TYPE +src_data[85] <= sink_data[85].DB_MAX_OUTPUT_PORT_TYPE +src_data[86] <= sink_data[86].DB_MAX_OUTPUT_PORT_TYPE +src_data[87] <= sink_data[87].DB_MAX_OUTPUT_PORT_TYPE +src_data[88] <= sink_data[88].DB_MAX_OUTPUT_PORT_TYPE +src_data[89] <= sink_data[89].DB_MAX_OUTPUT_PORT_TYPE +src_data[90] <= sink_data[90].DB_MAX_OUTPUT_PORT_TYPE +src_data[91] <= sink_data[91].DB_MAX_OUTPUT_PORT_TYPE +src_data[92] <= sink_data[92].DB_MAX_OUTPUT_PORT_TYPE +src_data[93] <= sink_data[93].DB_MAX_OUTPUT_PORT_TYPE +src_data[94] <= sink_data[94].DB_MAX_OUTPUT_PORT_TYPE +src_data[95] <= sink_data[95].DB_MAX_OUTPUT_PORT_TYPE +src_channel[0] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[1] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[2] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[3] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[4] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[5] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[6] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[7] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[8] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[9] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[10] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[11] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[12] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[13] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[14] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[15] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[16] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[17] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_startofpacket <= sink_startofpacket.DB_MAX_OUTPUT_PORT_TYPE +src_endofpacket <= sink_endofpacket.DB_MAX_OUTPUT_PORT_TYPE +src_ready => sink_ready.DATAIN + + +|lights|nios_system:NiosII|nios_system_id_router_002:id_router_006|nios_system_id_router_002_default_decode:the_default_decode +default_destination_id[0] <= +default_destination_id[1] <= +default_destination_id[2] <= +default_destination_id[3] <= +default_destination_id[4] <= +default_wr_channel[0] <= +default_wr_channel[1] <= +default_wr_channel[2] <= +default_wr_channel[3] <= +default_wr_channel[4] <= +default_wr_channel[5] <= +default_wr_channel[6] <= +default_wr_channel[7] <= +default_wr_channel[8] <= +default_wr_channel[9] <= +default_wr_channel[10] <= +default_wr_channel[11] <= +default_wr_channel[12] <= +default_wr_channel[13] <= +default_wr_channel[14] <= +default_wr_channel[15] <= +default_wr_channel[16] <= +default_wr_channel[17] <= +default_rd_channel[0] <= +default_rd_channel[1] <= +default_rd_channel[2] <= +default_rd_channel[3] <= +default_rd_channel[4] <= +default_rd_channel[5] <= +default_rd_channel[6] <= +default_rd_channel[7] <= +default_rd_channel[8] <= +default_rd_channel[9] <= +default_rd_channel[10] <= +default_rd_channel[11] <= +default_rd_channel[12] <= +default_rd_channel[13] <= +default_rd_channel[14] <= +default_rd_channel[15] <= +default_rd_channel[16] <= +default_rd_channel[17] <= +default_src_channel[0] <= +default_src_channel[1] <= +default_src_channel[2] <= +default_src_channel[3] <= +default_src_channel[4] <= +default_src_channel[5] <= +default_src_channel[6] <= +default_src_channel[7] <= +default_src_channel[8] <= +default_src_channel[9] <= +default_src_channel[10] <= +default_src_channel[11] <= +default_src_channel[12] <= +default_src_channel[13] <= +default_src_channel[14] <= +default_src_channel[15] <= +default_src_channel[16] <= +default_src_channel[17] <= + + +|lights|nios_system:NiosII|nios_system_id_router_002:id_router_007 +clk => ~NO_FANOUT~ +reset => ~NO_FANOUT~ +sink_valid => src_valid.DATAIN +sink_data[0] => src_data[0].DATAIN +sink_data[1] => src_data[1].DATAIN +sink_data[2] => src_data[2].DATAIN +sink_data[3] => src_data[3].DATAIN +sink_data[4] => src_data[4].DATAIN +sink_data[5] => src_data[5].DATAIN +sink_data[6] => src_data[6].DATAIN +sink_data[7] => src_data[7].DATAIN +sink_data[8] => src_data[8].DATAIN +sink_data[9] => src_data[9].DATAIN +sink_data[10] => src_data[10].DATAIN +sink_data[11] => src_data[11].DATAIN +sink_data[12] => src_data[12].DATAIN +sink_data[13] => src_data[13].DATAIN +sink_data[14] => src_data[14].DATAIN +sink_data[15] => src_data[15].DATAIN +sink_data[16] => src_data[16].DATAIN +sink_data[17] => src_data[17].DATAIN +sink_data[18] => src_data[18].DATAIN +sink_data[19] => src_data[19].DATAIN +sink_data[20] => src_data[20].DATAIN +sink_data[21] => src_data[21].DATAIN +sink_data[22] => src_data[22].DATAIN +sink_data[23] => src_data[23].DATAIN +sink_data[24] => src_data[24].DATAIN +sink_data[25] => src_data[25].DATAIN +sink_data[26] => src_data[26].DATAIN +sink_data[27] => src_data[27].DATAIN +sink_data[28] => src_data[28].DATAIN +sink_data[29] => src_data[29].DATAIN +sink_data[30] => src_data[30].DATAIN +sink_data[31] => src_data[31].DATAIN +sink_data[32] => src_data[32].DATAIN +sink_data[33] => src_data[33].DATAIN +sink_data[34] => src_data[34].DATAIN +sink_data[35] => src_data[35].DATAIN +sink_data[36] => src_data[36].DATAIN +sink_data[37] => src_data[37].DATAIN +sink_data[38] => src_data[38].DATAIN +sink_data[39] => src_data[39].DATAIN +sink_data[40] => src_data[40].DATAIN +sink_data[41] => src_data[41].DATAIN +sink_data[42] => src_data[42].DATAIN +sink_data[43] => src_data[43].DATAIN +sink_data[44] => src_data[44].DATAIN +sink_data[45] => src_data[45].DATAIN +sink_data[46] => src_data[46].DATAIN +sink_data[47] => src_data[47].DATAIN +sink_data[48] => src_data[48].DATAIN +sink_data[49] => src_data[49].DATAIN +sink_data[50] => src_data[50].DATAIN +sink_data[51] => src_data[51].DATAIN +sink_data[52] => src_data[52].DATAIN +sink_data[53] => src_data[53].DATAIN +sink_data[54] => src_data[54].DATAIN +sink_data[55] => src_data[55].DATAIN +sink_data[56] => src_data[56].DATAIN +sink_data[57] => src_data[57].DATAIN +sink_data[58] => src_data[58].DATAIN +sink_data[59] => src_data[59].DATAIN +sink_data[60] => src_data[60].DATAIN +sink_data[61] => src_data[61].DATAIN +sink_data[62] => src_data[62].DATAIN +sink_data[63] => src_data[63].DATAIN +sink_data[64] => src_data[64].DATAIN +sink_data[65] => src_data[65].DATAIN +sink_data[66] => src_data[66].DATAIN +sink_data[67] => src_data[67].DATAIN +sink_data[68] => src_data[68].DATAIN +sink_data[69] => src_data[69].DATAIN +sink_data[70] => src_data[70].DATAIN +sink_data[71] => src_data[71].DATAIN +sink_data[72] => src_data[72].DATAIN +sink_data[73] => src_data[73].DATAIN +sink_data[74] => src_data[74].DATAIN +sink_data[75] => src_data[75].DATAIN +sink_data[76] => src_data[76].DATAIN +sink_data[77] => src_data[77].DATAIN +sink_data[78] => src_data[78].DATAIN +sink_data[79] => src_data[79].DATAIN +sink_data[80] => src_data[80].DATAIN +sink_data[81] => src_data[81].DATAIN +sink_data[81] => Equal0.IN31 +sink_data[82] => src_data[82].DATAIN +sink_data[82] => Equal0.IN30 +sink_data[83] => src_data[83].DATAIN +sink_data[83] => Equal0.IN29 +sink_data[84] => src_data[84].DATAIN +sink_data[84] => Equal0.IN28 +sink_data[85] => src_data[85].DATAIN +sink_data[85] => Equal0.IN27 +sink_data[86] => src_data[86].DATAIN +sink_data[87] => src_data[87].DATAIN +sink_data[88] => src_data[88].DATAIN +sink_data[89] => src_data[89].DATAIN +sink_data[90] => src_data[90].DATAIN +sink_data[91] => src_data[91].DATAIN +sink_data[92] => src_data[92].DATAIN +sink_data[93] => src_data[93].DATAIN +sink_data[94] => src_data[94].DATAIN +sink_data[95] => src_data[95].DATAIN +sink_startofpacket => src_startofpacket.DATAIN +sink_endofpacket => src_endofpacket.DATAIN +sink_ready <= src_ready.DB_MAX_OUTPUT_PORT_TYPE +src_valid <= sink_valid.DB_MAX_OUTPUT_PORT_TYPE +src_data[0] <= sink_data[0].DB_MAX_OUTPUT_PORT_TYPE +src_data[1] <= sink_data[1].DB_MAX_OUTPUT_PORT_TYPE +src_data[2] <= sink_data[2].DB_MAX_OUTPUT_PORT_TYPE +src_data[3] <= sink_data[3].DB_MAX_OUTPUT_PORT_TYPE +src_data[4] <= sink_data[4].DB_MAX_OUTPUT_PORT_TYPE +src_data[5] <= sink_data[5].DB_MAX_OUTPUT_PORT_TYPE +src_data[6] <= sink_data[6].DB_MAX_OUTPUT_PORT_TYPE +src_data[7] <= sink_data[7].DB_MAX_OUTPUT_PORT_TYPE +src_data[8] <= sink_data[8].DB_MAX_OUTPUT_PORT_TYPE +src_data[9] <= sink_data[9].DB_MAX_OUTPUT_PORT_TYPE +src_data[10] <= sink_data[10].DB_MAX_OUTPUT_PORT_TYPE +src_data[11] <= sink_data[11].DB_MAX_OUTPUT_PORT_TYPE +src_data[12] <= sink_data[12].DB_MAX_OUTPUT_PORT_TYPE +src_data[13] <= sink_data[13].DB_MAX_OUTPUT_PORT_TYPE +src_data[14] <= sink_data[14].DB_MAX_OUTPUT_PORT_TYPE +src_data[15] <= sink_data[15].DB_MAX_OUTPUT_PORT_TYPE +src_data[16] <= sink_data[16].DB_MAX_OUTPUT_PORT_TYPE +src_data[17] <= sink_data[17].DB_MAX_OUTPUT_PORT_TYPE +src_data[18] <= sink_data[18].DB_MAX_OUTPUT_PORT_TYPE +src_data[19] <= sink_data[19].DB_MAX_OUTPUT_PORT_TYPE +src_data[20] <= sink_data[20].DB_MAX_OUTPUT_PORT_TYPE +src_data[21] <= sink_data[21].DB_MAX_OUTPUT_PORT_TYPE +src_data[22] <= sink_data[22].DB_MAX_OUTPUT_PORT_TYPE +src_data[23] <= sink_data[23].DB_MAX_OUTPUT_PORT_TYPE +src_data[24] <= sink_data[24].DB_MAX_OUTPUT_PORT_TYPE +src_data[25] <= sink_data[25].DB_MAX_OUTPUT_PORT_TYPE +src_data[26] <= sink_data[26].DB_MAX_OUTPUT_PORT_TYPE +src_data[27] <= sink_data[27].DB_MAX_OUTPUT_PORT_TYPE +src_data[28] <= sink_data[28].DB_MAX_OUTPUT_PORT_TYPE +src_data[29] <= sink_data[29].DB_MAX_OUTPUT_PORT_TYPE +src_data[30] <= sink_data[30].DB_MAX_OUTPUT_PORT_TYPE +src_data[31] <= sink_data[31].DB_MAX_OUTPUT_PORT_TYPE +src_data[32] <= sink_data[32].DB_MAX_OUTPUT_PORT_TYPE +src_data[33] <= sink_data[33].DB_MAX_OUTPUT_PORT_TYPE +src_data[34] <= sink_data[34].DB_MAX_OUTPUT_PORT_TYPE +src_data[35] <= sink_data[35].DB_MAX_OUTPUT_PORT_TYPE +src_data[36] <= sink_data[36].DB_MAX_OUTPUT_PORT_TYPE +src_data[37] <= sink_data[37].DB_MAX_OUTPUT_PORT_TYPE +src_data[38] <= sink_data[38].DB_MAX_OUTPUT_PORT_TYPE +src_data[39] <= sink_data[39].DB_MAX_OUTPUT_PORT_TYPE +src_data[40] <= sink_data[40].DB_MAX_OUTPUT_PORT_TYPE +src_data[41] <= sink_data[41].DB_MAX_OUTPUT_PORT_TYPE +src_data[42] <= sink_data[42].DB_MAX_OUTPUT_PORT_TYPE +src_data[43] <= sink_data[43].DB_MAX_OUTPUT_PORT_TYPE +src_data[44] <= sink_data[44].DB_MAX_OUTPUT_PORT_TYPE +src_data[45] <= sink_data[45].DB_MAX_OUTPUT_PORT_TYPE +src_data[46] <= sink_data[46].DB_MAX_OUTPUT_PORT_TYPE +src_data[47] <= sink_data[47].DB_MAX_OUTPUT_PORT_TYPE +src_data[48] <= sink_data[48].DB_MAX_OUTPUT_PORT_TYPE +src_data[49] <= sink_data[49].DB_MAX_OUTPUT_PORT_TYPE +src_data[50] <= sink_data[50].DB_MAX_OUTPUT_PORT_TYPE +src_data[51] <= sink_data[51].DB_MAX_OUTPUT_PORT_TYPE +src_data[52] <= sink_data[52].DB_MAX_OUTPUT_PORT_TYPE +src_data[53] <= sink_data[53].DB_MAX_OUTPUT_PORT_TYPE +src_data[54] <= sink_data[54].DB_MAX_OUTPUT_PORT_TYPE +src_data[55] <= sink_data[55].DB_MAX_OUTPUT_PORT_TYPE +src_data[56] <= sink_data[56].DB_MAX_OUTPUT_PORT_TYPE +src_data[57] <= sink_data[57].DB_MAX_OUTPUT_PORT_TYPE +src_data[58] <= sink_data[58].DB_MAX_OUTPUT_PORT_TYPE +src_data[59] <= sink_data[59].DB_MAX_OUTPUT_PORT_TYPE +src_data[60] <= sink_data[60].DB_MAX_OUTPUT_PORT_TYPE +src_data[61] <= sink_data[61].DB_MAX_OUTPUT_PORT_TYPE +src_data[62] <= sink_data[62].DB_MAX_OUTPUT_PORT_TYPE +src_data[63] <= sink_data[63].DB_MAX_OUTPUT_PORT_TYPE +src_data[64] <= sink_data[64].DB_MAX_OUTPUT_PORT_TYPE +src_data[65] <= sink_data[65].DB_MAX_OUTPUT_PORT_TYPE +src_data[66] <= sink_data[66].DB_MAX_OUTPUT_PORT_TYPE +src_data[67] <= sink_data[67].DB_MAX_OUTPUT_PORT_TYPE +src_data[68] <= sink_data[68].DB_MAX_OUTPUT_PORT_TYPE +src_data[69] <= sink_data[69].DB_MAX_OUTPUT_PORT_TYPE +src_data[70] <= sink_data[70].DB_MAX_OUTPUT_PORT_TYPE +src_data[71] <= sink_data[71].DB_MAX_OUTPUT_PORT_TYPE +src_data[72] <= sink_data[72].DB_MAX_OUTPUT_PORT_TYPE +src_data[73] <= sink_data[73].DB_MAX_OUTPUT_PORT_TYPE +src_data[74] <= sink_data[74].DB_MAX_OUTPUT_PORT_TYPE +src_data[75] <= sink_data[75].DB_MAX_OUTPUT_PORT_TYPE +src_data[76] <= sink_data[76].DB_MAX_OUTPUT_PORT_TYPE +src_data[77] <= sink_data[77].DB_MAX_OUTPUT_PORT_TYPE +src_data[78] <= sink_data[78].DB_MAX_OUTPUT_PORT_TYPE +src_data[79] <= sink_data[79].DB_MAX_OUTPUT_PORT_TYPE +src_data[80] <= sink_data[80].DB_MAX_OUTPUT_PORT_TYPE +src_data[81] <= sink_data[81].DB_MAX_OUTPUT_PORT_TYPE +src_data[82] <= sink_data[82].DB_MAX_OUTPUT_PORT_TYPE +src_data[83] <= sink_data[83].DB_MAX_OUTPUT_PORT_TYPE +src_data[84] <= sink_data[84].DB_MAX_OUTPUT_PORT_TYPE +src_data[85] <= sink_data[85].DB_MAX_OUTPUT_PORT_TYPE +src_data[86] <= sink_data[86].DB_MAX_OUTPUT_PORT_TYPE +src_data[87] <= sink_data[87].DB_MAX_OUTPUT_PORT_TYPE +src_data[88] <= sink_data[88].DB_MAX_OUTPUT_PORT_TYPE +src_data[89] <= sink_data[89].DB_MAX_OUTPUT_PORT_TYPE +src_data[90] <= sink_data[90].DB_MAX_OUTPUT_PORT_TYPE +src_data[91] <= sink_data[91].DB_MAX_OUTPUT_PORT_TYPE +src_data[92] <= sink_data[92].DB_MAX_OUTPUT_PORT_TYPE +src_data[93] <= sink_data[93].DB_MAX_OUTPUT_PORT_TYPE +src_data[94] <= sink_data[94].DB_MAX_OUTPUT_PORT_TYPE +src_data[95] <= sink_data[95].DB_MAX_OUTPUT_PORT_TYPE +src_channel[0] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[1] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[2] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[3] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[4] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[5] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[6] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[7] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[8] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[9] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[10] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[11] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[12] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[13] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[14] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[15] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[16] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[17] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_startofpacket <= sink_startofpacket.DB_MAX_OUTPUT_PORT_TYPE +src_endofpacket <= sink_endofpacket.DB_MAX_OUTPUT_PORT_TYPE +src_ready => sink_ready.DATAIN + + +|lights|nios_system:NiosII|nios_system_id_router_002:id_router_007|nios_system_id_router_002_default_decode:the_default_decode +default_destination_id[0] <= +default_destination_id[1] <= +default_destination_id[2] <= +default_destination_id[3] <= +default_destination_id[4] <= +default_wr_channel[0] <= +default_wr_channel[1] <= +default_wr_channel[2] <= +default_wr_channel[3] <= +default_wr_channel[4] <= +default_wr_channel[5] <= +default_wr_channel[6] <= +default_wr_channel[7] <= +default_wr_channel[8] <= +default_wr_channel[9] <= +default_wr_channel[10] <= +default_wr_channel[11] <= +default_wr_channel[12] <= +default_wr_channel[13] <= +default_wr_channel[14] <= +default_wr_channel[15] <= +default_wr_channel[16] <= +default_wr_channel[17] <= +default_rd_channel[0] <= +default_rd_channel[1] <= +default_rd_channel[2] <= +default_rd_channel[3] <= +default_rd_channel[4] <= +default_rd_channel[5] <= +default_rd_channel[6] <= +default_rd_channel[7] <= +default_rd_channel[8] <= +default_rd_channel[9] <= +default_rd_channel[10] <= +default_rd_channel[11] <= +default_rd_channel[12] <= +default_rd_channel[13] <= +default_rd_channel[14] <= +default_rd_channel[15] <= +default_rd_channel[16] <= +default_rd_channel[17] <= +default_src_channel[0] <= +default_src_channel[1] <= +default_src_channel[2] <= +default_src_channel[3] <= +default_src_channel[4] <= +default_src_channel[5] <= +default_src_channel[6] <= +default_src_channel[7] <= +default_src_channel[8] <= +default_src_channel[9] <= +default_src_channel[10] <= +default_src_channel[11] <= +default_src_channel[12] <= +default_src_channel[13] <= +default_src_channel[14] <= +default_src_channel[15] <= +default_src_channel[16] <= +default_src_channel[17] <= + + +|lights|nios_system:NiosII|nios_system_id_router_002:id_router_008 +clk => ~NO_FANOUT~ +reset => ~NO_FANOUT~ +sink_valid => src_valid.DATAIN +sink_data[0] => src_data[0].DATAIN +sink_data[1] => src_data[1].DATAIN +sink_data[2] => src_data[2].DATAIN +sink_data[3] => src_data[3].DATAIN +sink_data[4] => src_data[4].DATAIN +sink_data[5] => src_data[5].DATAIN +sink_data[6] => src_data[6].DATAIN +sink_data[7] => src_data[7].DATAIN +sink_data[8] => src_data[8].DATAIN +sink_data[9] => src_data[9].DATAIN +sink_data[10] => src_data[10].DATAIN +sink_data[11] => src_data[11].DATAIN +sink_data[12] => src_data[12].DATAIN +sink_data[13] => src_data[13].DATAIN +sink_data[14] => src_data[14].DATAIN +sink_data[15] => src_data[15].DATAIN +sink_data[16] => src_data[16].DATAIN +sink_data[17] => src_data[17].DATAIN +sink_data[18] => src_data[18].DATAIN +sink_data[19] => src_data[19].DATAIN +sink_data[20] => src_data[20].DATAIN +sink_data[21] => src_data[21].DATAIN +sink_data[22] => src_data[22].DATAIN +sink_data[23] => src_data[23].DATAIN +sink_data[24] => src_data[24].DATAIN +sink_data[25] => src_data[25].DATAIN +sink_data[26] => src_data[26].DATAIN +sink_data[27] => src_data[27].DATAIN +sink_data[28] => src_data[28].DATAIN +sink_data[29] => src_data[29].DATAIN +sink_data[30] => src_data[30].DATAIN +sink_data[31] => src_data[31].DATAIN +sink_data[32] => src_data[32].DATAIN +sink_data[33] => src_data[33].DATAIN +sink_data[34] => src_data[34].DATAIN +sink_data[35] => src_data[35].DATAIN +sink_data[36] => src_data[36].DATAIN +sink_data[37] => src_data[37].DATAIN +sink_data[38] => src_data[38].DATAIN +sink_data[39] => src_data[39].DATAIN +sink_data[40] => src_data[40].DATAIN +sink_data[41] => src_data[41].DATAIN +sink_data[42] => src_data[42].DATAIN +sink_data[43] => src_data[43].DATAIN +sink_data[44] => src_data[44].DATAIN +sink_data[45] => src_data[45].DATAIN +sink_data[46] => src_data[46].DATAIN +sink_data[47] => src_data[47].DATAIN +sink_data[48] => src_data[48].DATAIN +sink_data[49] => src_data[49].DATAIN +sink_data[50] => src_data[50].DATAIN +sink_data[51] => src_data[51].DATAIN +sink_data[52] => src_data[52].DATAIN +sink_data[53] => src_data[53].DATAIN +sink_data[54] => src_data[54].DATAIN +sink_data[55] => src_data[55].DATAIN +sink_data[56] => src_data[56].DATAIN +sink_data[57] => src_data[57].DATAIN +sink_data[58] => src_data[58].DATAIN +sink_data[59] => src_data[59].DATAIN +sink_data[60] => src_data[60].DATAIN +sink_data[61] => src_data[61].DATAIN +sink_data[62] => src_data[62].DATAIN +sink_data[63] => src_data[63].DATAIN +sink_data[64] => src_data[64].DATAIN +sink_data[65] => src_data[65].DATAIN +sink_data[66] => src_data[66].DATAIN +sink_data[67] => src_data[67].DATAIN +sink_data[68] => src_data[68].DATAIN +sink_data[69] => src_data[69].DATAIN +sink_data[70] => src_data[70].DATAIN +sink_data[71] => src_data[71].DATAIN +sink_data[72] => src_data[72].DATAIN +sink_data[73] => src_data[73].DATAIN +sink_data[74] => src_data[74].DATAIN +sink_data[75] => src_data[75].DATAIN +sink_data[76] => src_data[76].DATAIN +sink_data[77] => src_data[77].DATAIN +sink_data[78] => src_data[78].DATAIN +sink_data[79] => src_data[79].DATAIN +sink_data[80] => src_data[80].DATAIN +sink_data[81] => src_data[81].DATAIN +sink_data[81] => Equal0.IN31 +sink_data[82] => src_data[82].DATAIN +sink_data[82] => Equal0.IN30 +sink_data[83] => src_data[83].DATAIN +sink_data[83] => Equal0.IN29 +sink_data[84] => src_data[84].DATAIN +sink_data[84] => Equal0.IN28 +sink_data[85] => src_data[85].DATAIN +sink_data[85] => Equal0.IN27 +sink_data[86] => src_data[86].DATAIN +sink_data[87] => src_data[87].DATAIN +sink_data[88] => src_data[88].DATAIN +sink_data[89] => src_data[89].DATAIN +sink_data[90] => src_data[90].DATAIN +sink_data[91] => src_data[91].DATAIN +sink_data[92] => src_data[92].DATAIN +sink_data[93] => src_data[93].DATAIN +sink_data[94] => src_data[94].DATAIN +sink_data[95] => src_data[95].DATAIN +sink_startofpacket => src_startofpacket.DATAIN +sink_endofpacket => src_endofpacket.DATAIN +sink_ready <= src_ready.DB_MAX_OUTPUT_PORT_TYPE +src_valid <= sink_valid.DB_MAX_OUTPUT_PORT_TYPE +src_data[0] <= sink_data[0].DB_MAX_OUTPUT_PORT_TYPE +src_data[1] <= sink_data[1].DB_MAX_OUTPUT_PORT_TYPE +src_data[2] <= sink_data[2].DB_MAX_OUTPUT_PORT_TYPE +src_data[3] <= sink_data[3].DB_MAX_OUTPUT_PORT_TYPE +src_data[4] <= sink_data[4].DB_MAX_OUTPUT_PORT_TYPE +src_data[5] <= sink_data[5].DB_MAX_OUTPUT_PORT_TYPE +src_data[6] <= sink_data[6].DB_MAX_OUTPUT_PORT_TYPE +src_data[7] <= sink_data[7].DB_MAX_OUTPUT_PORT_TYPE +src_data[8] <= sink_data[8].DB_MAX_OUTPUT_PORT_TYPE +src_data[9] <= sink_data[9].DB_MAX_OUTPUT_PORT_TYPE +src_data[10] <= sink_data[10].DB_MAX_OUTPUT_PORT_TYPE +src_data[11] <= sink_data[11].DB_MAX_OUTPUT_PORT_TYPE +src_data[12] <= sink_data[12].DB_MAX_OUTPUT_PORT_TYPE +src_data[13] <= sink_data[13].DB_MAX_OUTPUT_PORT_TYPE +src_data[14] <= sink_data[14].DB_MAX_OUTPUT_PORT_TYPE +src_data[15] <= sink_data[15].DB_MAX_OUTPUT_PORT_TYPE +src_data[16] <= sink_data[16].DB_MAX_OUTPUT_PORT_TYPE +src_data[17] <= sink_data[17].DB_MAX_OUTPUT_PORT_TYPE +src_data[18] <= sink_data[18].DB_MAX_OUTPUT_PORT_TYPE +src_data[19] <= sink_data[19].DB_MAX_OUTPUT_PORT_TYPE +src_data[20] <= sink_data[20].DB_MAX_OUTPUT_PORT_TYPE +src_data[21] <= sink_data[21].DB_MAX_OUTPUT_PORT_TYPE +src_data[22] <= sink_data[22].DB_MAX_OUTPUT_PORT_TYPE +src_data[23] <= sink_data[23].DB_MAX_OUTPUT_PORT_TYPE +src_data[24] <= sink_data[24].DB_MAX_OUTPUT_PORT_TYPE +src_data[25] <= sink_data[25].DB_MAX_OUTPUT_PORT_TYPE +src_data[26] <= sink_data[26].DB_MAX_OUTPUT_PORT_TYPE +src_data[27] <= sink_data[27].DB_MAX_OUTPUT_PORT_TYPE +src_data[28] <= sink_data[28].DB_MAX_OUTPUT_PORT_TYPE +src_data[29] <= sink_data[29].DB_MAX_OUTPUT_PORT_TYPE +src_data[30] <= sink_data[30].DB_MAX_OUTPUT_PORT_TYPE +src_data[31] <= sink_data[31].DB_MAX_OUTPUT_PORT_TYPE +src_data[32] <= sink_data[32].DB_MAX_OUTPUT_PORT_TYPE +src_data[33] <= sink_data[33].DB_MAX_OUTPUT_PORT_TYPE +src_data[34] <= sink_data[34].DB_MAX_OUTPUT_PORT_TYPE +src_data[35] <= sink_data[35].DB_MAX_OUTPUT_PORT_TYPE +src_data[36] <= sink_data[36].DB_MAX_OUTPUT_PORT_TYPE +src_data[37] <= sink_data[37].DB_MAX_OUTPUT_PORT_TYPE +src_data[38] <= sink_data[38].DB_MAX_OUTPUT_PORT_TYPE +src_data[39] <= sink_data[39].DB_MAX_OUTPUT_PORT_TYPE +src_data[40] <= sink_data[40].DB_MAX_OUTPUT_PORT_TYPE +src_data[41] <= sink_data[41].DB_MAX_OUTPUT_PORT_TYPE +src_data[42] <= sink_data[42].DB_MAX_OUTPUT_PORT_TYPE +src_data[43] <= sink_data[43].DB_MAX_OUTPUT_PORT_TYPE +src_data[44] <= sink_data[44].DB_MAX_OUTPUT_PORT_TYPE +src_data[45] <= sink_data[45].DB_MAX_OUTPUT_PORT_TYPE +src_data[46] <= sink_data[46].DB_MAX_OUTPUT_PORT_TYPE +src_data[47] <= sink_data[47].DB_MAX_OUTPUT_PORT_TYPE +src_data[48] <= sink_data[48].DB_MAX_OUTPUT_PORT_TYPE +src_data[49] <= sink_data[49].DB_MAX_OUTPUT_PORT_TYPE +src_data[50] <= sink_data[50].DB_MAX_OUTPUT_PORT_TYPE +src_data[51] <= sink_data[51].DB_MAX_OUTPUT_PORT_TYPE +src_data[52] <= sink_data[52].DB_MAX_OUTPUT_PORT_TYPE +src_data[53] <= sink_data[53].DB_MAX_OUTPUT_PORT_TYPE +src_data[54] <= sink_data[54].DB_MAX_OUTPUT_PORT_TYPE +src_data[55] <= sink_data[55].DB_MAX_OUTPUT_PORT_TYPE +src_data[56] <= sink_data[56].DB_MAX_OUTPUT_PORT_TYPE +src_data[57] <= sink_data[57].DB_MAX_OUTPUT_PORT_TYPE +src_data[58] <= sink_data[58].DB_MAX_OUTPUT_PORT_TYPE +src_data[59] <= sink_data[59].DB_MAX_OUTPUT_PORT_TYPE +src_data[60] <= sink_data[60].DB_MAX_OUTPUT_PORT_TYPE +src_data[61] <= sink_data[61].DB_MAX_OUTPUT_PORT_TYPE +src_data[62] <= sink_data[62].DB_MAX_OUTPUT_PORT_TYPE +src_data[63] <= sink_data[63].DB_MAX_OUTPUT_PORT_TYPE +src_data[64] <= sink_data[64].DB_MAX_OUTPUT_PORT_TYPE +src_data[65] <= sink_data[65].DB_MAX_OUTPUT_PORT_TYPE +src_data[66] <= sink_data[66].DB_MAX_OUTPUT_PORT_TYPE +src_data[67] <= sink_data[67].DB_MAX_OUTPUT_PORT_TYPE +src_data[68] <= sink_data[68].DB_MAX_OUTPUT_PORT_TYPE +src_data[69] <= sink_data[69].DB_MAX_OUTPUT_PORT_TYPE +src_data[70] <= sink_data[70].DB_MAX_OUTPUT_PORT_TYPE +src_data[71] <= sink_data[71].DB_MAX_OUTPUT_PORT_TYPE +src_data[72] <= sink_data[72].DB_MAX_OUTPUT_PORT_TYPE +src_data[73] <= sink_data[73].DB_MAX_OUTPUT_PORT_TYPE +src_data[74] <= sink_data[74].DB_MAX_OUTPUT_PORT_TYPE +src_data[75] <= sink_data[75].DB_MAX_OUTPUT_PORT_TYPE +src_data[76] <= sink_data[76].DB_MAX_OUTPUT_PORT_TYPE +src_data[77] <= sink_data[77].DB_MAX_OUTPUT_PORT_TYPE +src_data[78] <= sink_data[78].DB_MAX_OUTPUT_PORT_TYPE +src_data[79] <= sink_data[79].DB_MAX_OUTPUT_PORT_TYPE +src_data[80] <= sink_data[80].DB_MAX_OUTPUT_PORT_TYPE +src_data[81] <= sink_data[81].DB_MAX_OUTPUT_PORT_TYPE +src_data[82] <= sink_data[82].DB_MAX_OUTPUT_PORT_TYPE +src_data[83] <= sink_data[83].DB_MAX_OUTPUT_PORT_TYPE +src_data[84] <= sink_data[84].DB_MAX_OUTPUT_PORT_TYPE +src_data[85] <= sink_data[85].DB_MAX_OUTPUT_PORT_TYPE +src_data[86] <= sink_data[86].DB_MAX_OUTPUT_PORT_TYPE +src_data[87] <= sink_data[87].DB_MAX_OUTPUT_PORT_TYPE +src_data[88] <= sink_data[88].DB_MAX_OUTPUT_PORT_TYPE +src_data[89] <= sink_data[89].DB_MAX_OUTPUT_PORT_TYPE +src_data[90] <= sink_data[90].DB_MAX_OUTPUT_PORT_TYPE +src_data[91] <= sink_data[91].DB_MAX_OUTPUT_PORT_TYPE +src_data[92] <= sink_data[92].DB_MAX_OUTPUT_PORT_TYPE +src_data[93] <= sink_data[93].DB_MAX_OUTPUT_PORT_TYPE +src_data[94] <= sink_data[94].DB_MAX_OUTPUT_PORT_TYPE +src_data[95] <= sink_data[95].DB_MAX_OUTPUT_PORT_TYPE +src_channel[0] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[1] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[2] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[3] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[4] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[5] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[6] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[7] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[8] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[9] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[10] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[11] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[12] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[13] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[14] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[15] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[16] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[17] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_startofpacket <= sink_startofpacket.DB_MAX_OUTPUT_PORT_TYPE +src_endofpacket <= sink_endofpacket.DB_MAX_OUTPUT_PORT_TYPE +src_ready => sink_ready.DATAIN + + +|lights|nios_system:NiosII|nios_system_id_router_002:id_router_008|nios_system_id_router_002_default_decode:the_default_decode +default_destination_id[0] <= +default_destination_id[1] <= +default_destination_id[2] <= +default_destination_id[3] <= +default_destination_id[4] <= +default_wr_channel[0] <= +default_wr_channel[1] <= +default_wr_channel[2] <= +default_wr_channel[3] <= +default_wr_channel[4] <= +default_wr_channel[5] <= +default_wr_channel[6] <= +default_wr_channel[7] <= +default_wr_channel[8] <= +default_wr_channel[9] <= +default_wr_channel[10] <= +default_wr_channel[11] <= +default_wr_channel[12] <= +default_wr_channel[13] <= +default_wr_channel[14] <= +default_wr_channel[15] <= +default_wr_channel[16] <= +default_wr_channel[17] <= +default_rd_channel[0] <= +default_rd_channel[1] <= +default_rd_channel[2] <= +default_rd_channel[3] <= +default_rd_channel[4] <= +default_rd_channel[5] <= +default_rd_channel[6] <= +default_rd_channel[7] <= +default_rd_channel[8] <= +default_rd_channel[9] <= +default_rd_channel[10] <= +default_rd_channel[11] <= +default_rd_channel[12] <= +default_rd_channel[13] <= +default_rd_channel[14] <= +default_rd_channel[15] <= +default_rd_channel[16] <= +default_rd_channel[17] <= +default_src_channel[0] <= +default_src_channel[1] <= +default_src_channel[2] <= +default_src_channel[3] <= +default_src_channel[4] <= +default_src_channel[5] <= +default_src_channel[6] <= +default_src_channel[7] <= +default_src_channel[8] <= +default_src_channel[9] <= +default_src_channel[10] <= +default_src_channel[11] <= +default_src_channel[12] <= +default_src_channel[13] <= +default_src_channel[14] <= +default_src_channel[15] <= +default_src_channel[16] <= +default_src_channel[17] <= + + +|lights|nios_system:NiosII|nios_system_id_router_002:id_router_009 +clk => ~NO_FANOUT~ +reset => ~NO_FANOUT~ +sink_valid => src_valid.DATAIN +sink_data[0] => src_data[0].DATAIN +sink_data[1] => src_data[1].DATAIN +sink_data[2] => src_data[2].DATAIN +sink_data[3] => src_data[3].DATAIN +sink_data[4] => src_data[4].DATAIN +sink_data[5] => src_data[5].DATAIN +sink_data[6] => src_data[6].DATAIN +sink_data[7] => src_data[7].DATAIN +sink_data[8] => src_data[8].DATAIN +sink_data[9] => src_data[9].DATAIN +sink_data[10] => src_data[10].DATAIN +sink_data[11] => src_data[11].DATAIN +sink_data[12] => src_data[12].DATAIN +sink_data[13] => src_data[13].DATAIN +sink_data[14] => src_data[14].DATAIN +sink_data[15] => src_data[15].DATAIN +sink_data[16] => src_data[16].DATAIN +sink_data[17] => src_data[17].DATAIN +sink_data[18] => src_data[18].DATAIN +sink_data[19] => src_data[19].DATAIN +sink_data[20] => src_data[20].DATAIN +sink_data[21] => src_data[21].DATAIN +sink_data[22] => src_data[22].DATAIN +sink_data[23] => src_data[23].DATAIN +sink_data[24] => src_data[24].DATAIN +sink_data[25] => src_data[25].DATAIN +sink_data[26] => src_data[26].DATAIN +sink_data[27] => src_data[27].DATAIN +sink_data[28] => src_data[28].DATAIN +sink_data[29] => src_data[29].DATAIN +sink_data[30] => src_data[30].DATAIN +sink_data[31] => src_data[31].DATAIN +sink_data[32] => src_data[32].DATAIN +sink_data[33] => src_data[33].DATAIN +sink_data[34] => src_data[34].DATAIN +sink_data[35] => src_data[35].DATAIN +sink_data[36] => src_data[36].DATAIN +sink_data[37] => src_data[37].DATAIN +sink_data[38] => src_data[38].DATAIN +sink_data[39] => src_data[39].DATAIN +sink_data[40] => src_data[40].DATAIN +sink_data[41] => src_data[41].DATAIN +sink_data[42] => src_data[42].DATAIN +sink_data[43] => src_data[43].DATAIN +sink_data[44] => src_data[44].DATAIN +sink_data[45] => src_data[45].DATAIN +sink_data[46] => src_data[46].DATAIN +sink_data[47] => src_data[47].DATAIN +sink_data[48] => src_data[48].DATAIN +sink_data[49] => src_data[49].DATAIN +sink_data[50] => src_data[50].DATAIN +sink_data[51] => src_data[51].DATAIN +sink_data[52] => src_data[52].DATAIN +sink_data[53] => src_data[53].DATAIN +sink_data[54] => src_data[54].DATAIN +sink_data[55] => src_data[55].DATAIN +sink_data[56] => src_data[56].DATAIN +sink_data[57] => src_data[57].DATAIN +sink_data[58] => src_data[58].DATAIN +sink_data[59] => src_data[59].DATAIN +sink_data[60] => src_data[60].DATAIN +sink_data[61] => src_data[61].DATAIN +sink_data[62] => src_data[62].DATAIN +sink_data[63] => src_data[63].DATAIN +sink_data[64] => src_data[64].DATAIN +sink_data[65] => src_data[65].DATAIN +sink_data[66] => src_data[66].DATAIN +sink_data[67] => src_data[67].DATAIN +sink_data[68] => src_data[68].DATAIN +sink_data[69] => src_data[69].DATAIN +sink_data[70] => src_data[70].DATAIN +sink_data[71] => src_data[71].DATAIN +sink_data[72] => src_data[72].DATAIN +sink_data[73] => src_data[73].DATAIN +sink_data[74] => src_data[74].DATAIN +sink_data[75] => src_data[75].DATAIN +sink_data[76] => src_data[76].DATAIN +sink_data[77] => src_data[77].DATAIN +sink_data[78] => src_data[78].DATAIN +sink_data[79] => src_data[79].DATAIN +sink_data[80] => src_data[80].DATAIN +sink_data[81] => src_data[81].DATAIN +sink_data[81] => Equal0.IN31 +sink_data[82] => src_data[82].DATAIN +sink_data[82] => Equal0.IN30 +sink_data[83] => src_data[83].DATAIN +sink_data[83] => Equal0.IN29 +sink_data[84] => src_data[84].DATAIN +sink_data[84] => Equal0.IN28 +sink_data[85] => src_data[85].DATAIN +sink_data[85] => Equal0.IN27 +sink_data[86] => src_data[86].DATAIN +sink_data[87] => src_data[87].DATAIN +sink_data[88] => src_data[88].DATAIN +sink_data[89] => src_data[89].DATAIN +sink_data[90] => src_data[90].DATAIN +sink_data[91] => src_data[91].DATAIN +sink_data[92] => src_data[92].DATAIN +sink_data[93] => src_data[93].DATAIN +sink_data[94] => src_data[94].DATAIN +sink_data[95] => src_data[95].DATAIN +sink_startofpacket => src_startofpacket.DATAIN +sink_endofpacket => src_endofpacket.DATAIN +sink_ready <= src_ready.DB_MAX_OUTPUT_PORT_TYPE +src_valid <= sink_valid.DB_MAX_OUTPUT_PORT_TYPE +src_data[0] <= sink_data[0].DB_MAX_OUTPUT_PORT_TYPE +src_data[1] <= sink_data[1].DB_MAX_OUTPUT_PORT_TYPE +src_data[2] <= sink_data[2].DB_MAX_OUTPUT_PORT_TYPE +src_data[3] <= sink_data[3].DB_MAX_OUTPUT_PORT_TYPE +src_data[4] <= sink_data[4].DB_MAX_OUTPUT_PORT_TYPE +src_data[5] <= sink_data[5].DB_MAX_OUTPUT_PORT_TYPE +src_data[6] <= sink_data[6].DB_MAX_OUTPUT_PORT_TYPE +src_data[7] <= sink_data[7].DB_MAX_OUTPUT_PORT_TYPE +src_data[8] <= sink_data[8].DB_MAX_OUTPUT_PORT_TYPE +src_data[9] <= sink_data[9].DB_MAX_OUTPUT_PORT_TYPE +src_data[10] <= sink_data[10].DB_MAX_OUTPUT_PORT_TYPE +src_data[11] <= sink_data[11].DB_MAX_OUTPUT_PORT_TYPE +src_data[12] <= sink_data[12].DB_MAX_OUTPUT_PORT_TYPE +src_data[13] <= sink_data[13].DB_MAX_OUTPUT_PORT_TYPE +src_data[14] <= sink_data[14].DB_MAX_OUTPUT_PORT_TYPE +src_data[15] <= sink_data[15].DB_MAX_OUTPUT_PORT_TYPE +src_data[16] <= sink_data[16].DB_MAX_OUTPUT_PORT_TYPE +src_data[17] <= sink_data[17].DB_MAX_OUTPUT_PORT_TYPE +src_data[18] <= sink_data[18].DB_MAX_OUTPUT_PORT_TYPE +src_data[19] <= sink_data[19].DB_MAX_OUTPUT_PORT_TYPE +src_data[20] <= sink_data[20].DB_MAX_OUTPUT_PORT_TYPE +src_data[21] <= sink_data[21].DB_MAX_OUTPUT_PORT_TYPE +src_data[22] <= sink_data[22].DB_MAX_OUTPUT_PORT_TYPE +src_data[23] <= sink_data[23].DB_MAX_OUTPUT_PORT_TYPE +src_data[24] <= sink_data[24].DB_MAX_OUTPUT_PORT_TYPE +src_data[25] <= sink_data[25].DB_MAX_OUTPUT_PORT_TYPE +src_data[26] <= sink_data[26].DB_MAX_OUTPUT_PORT_TYPE +src_data[27] <= sink_data[27].DB_MAX_OUTPUT_PORT_TYPE +src_data[28] <= sink_data[28].DB_MAX_OUTPUT_PORT_TYPE +src_data[29] <= sink_data[29].DB_MAX_OUTPUT_PORT_TYPE +src_data[30] <= sink_data[30].DB_MAX_OUTPUT_PORT_TYPE +src_data[31] <= sink_data[31].DB_MAX_OUTPUT_PORT_TYPE +src_data[32] <= sink_data[32].DB_MAX_OUTPUT_PORT_TYPE +src_data[33] <= sink_data[33].DB_MAX_OUTPUT_PORT_TYPE +src_data[34] <= sink_data[34].DB_MAX_OUTPUT_PORT_TYPE +src_data[35] <= sink_data[35].DB_MAX_OUTPUT_PORT_TYPE +src_data[36] <= sink_data[36].DB_MAX_OUTPUT_PORT_TYPE +src_data[37] <= sink_data[37].DB_MAX_OUTPUT_PORT_TYPE +src_data[38] <= sink_data[38].DB_MAX_OUTPUT_PORT_TYPE +src_data[39] <= sink_data[39].DB_MAX_OUTPUT_PORT_TYPE +src_data[40] <= sink_data[40].DB_MAX_OUTPUT_PORT_TYPE +src_data[41] <= sink_data[41].DB_MAX_OUTPUT_PORT_TYPE +src_data[42] <= sink_data[42].DB_MAX_OUTPUT_PORT_TYPE +src_data[43] <= sink_data[43].DB_MAX_OUTPUT_PORT_TYPE +src_data[44] <= sink_data[44].DB_MAX_OUTPUT_PORT_TYPE +src_data[45] <= sink_data[45].DB_MAX_OUTPUT_PORT_TYPE +src_data[46] <= sink_data[46].DB_MAX_OUTPUT_PORT_TYPE +src_data[47] <= sink_data[47].DB_MAX_OUTPUT_PORT_TYPE +src_data[48] <= sink_data[48].DB_MAX_OUTPUT_PORT_TYPE +src_data[49] <= sink_data[49].DB_MAX_OUTPUT_PORT_TYPE +src_data[50] <= sink_data[50].DB_MAX_OUTPUT_PORT_TYPE +src_data[51] <= sink_data[51].DB_MAX_OUTPUT_PORT_TYPE +src_data[52] <= sink_data[52].DB_MAX_OUTPUT_PORT_TYPE +src_data[53] <= sink_data[53].DB_MAX_OUTPUT_PORT_TYPE +src_data[54] <= sink_data[54].DB_MAX_OUTPUT_PORT_TYPE +src_data[55] <= sink_data[55].DB_MAX_OUTPUT_PORT_TYPE +src_data[56] <= sink_data[56].DB_MAX_OUTPUT_PORT_TYPE +src_data[57] <= sink_data[57].DB_MAX_OUTPUT_PORT_TYPE +src_data[58] <= sink_data[58].DB_MAX_OUTPUT_PORT_TYPE +src_data[59] <= sink_data[59].DB_MAX_OUTPUT_PORT_TYPE +src_data[60] <= sink_data[60].DB_MAX_OUTPUT_PORT_TYPE +src_data[61] <= sink_data[61].DB_MAX_OUTPUT_PORT_TYPE +src_data[62] <= sink_data[62].DB_MAX_OUTPUT_PORT_TYPE +src_data[63] <= sink_data[63].DB_MAX_OUTPUT_PORT_TYPE +src_data[64] <= sink_data[64].DB_MAX_OUTPUT_PORT_TYPE +src_data[65] <= sink_data[65].DB_MAX_OUTPUT_PORT_TYPE +src_data[66] <= sink_data[66].DB_MAX_OUTPUT_PORT_TYPE +src_data[67] <= sink_data[67].DB_MAX_OUTPUT_PORT_TYPE +src_data[68] <= sink_data[68].DB_MAX_OUTPUT_PORT_TYPE +src_data[69] <= sink_data[69].DB_MAX_OUTPUT_PORT_TYPE +src_data[70] <= sink_data[70].DB_MAX_OUTPUT_PORT_TYPE +src_data[71] <= sink_data[71].DB_MAX_OUTPUT_PORT_TYPE +src_data[72] <= sink_data[72].DB_MAX_OUTPUT_PORT_TYPE +src_data[73] <= sink_data[73].DB_MAX_OUTPUT_PORT_TYPE +src_data[74] <= sink_data[74].DB_MAX_OUTPUT_PORT_TYPE +src_data[75] <= sink_data[75].DB_MAX_OUTPUT_PORT_TYPE +src_data[76] <= sink_data[76].DB_MAX_OUTPUT_PORT_TYPE +src_data[77] <= sink_data[77].DB_MAX_OUTPUT_PORT_TYPE +src_data[78] <= sink_data[78].DB_MAX_OUTPUT_PORT_TYPE +src_data[79] <= sink_data[79].DB_MAX_OUTPUT_PORT_TYPE +src_data[80] <= sink_data[80].DB_MAX_OUTPUT_PORT_TYPE +src_data[81] <= sink_data[81].DB_MAX_OUTPUT_PORT_TYPE +src_data[82] <= sink_data[82].DB_MAX_OUTPUT_PORT_TYPE +src_data[83] <= sink_data[83].DB_MAX_OUTPUT_PORT_TYPE +src_data[84] <= sink_data[84].DB_MAX_OUTPUT_PORT_TYPE +src_data[85] <= sink_data[85].DB_MAX_OUTPUT_PORT_TYPE +src_data[86] <= sink_data[86].DB_MAX_OUTPUT_PORT_TYPE +src_data[87] <= sink_data[87].DB_MAX_OUTPUT_PORT_TYPE +src_data[88] <= sink_data[88].DB_MAX_OUTPUT_PORT_TYPE +src_data[89] <= sink_data[89].DB_MAX_OUTPUT_PORT_TYPE +src_data[90] <= sink_data[90].DB_MAX_OUTPUT_PORT_TYPE +src_data[91] <= sink_data[91].DB_MAX_OUTPUT_PORT_TYPE +src_data[92] <= sink_data[92].DB_MAX_OUTPUT_PORT_TYPE +src_data[93] <= sink_data[93].DB_MAX_OUTPUT_PORT_TYPE +src_data[94] <= sink_data[94].DB_MAX_OUTPUT_PORT_TYPE +src_data[95] <= sink_data[95].DB_MAX_OUTPUT_PORT_TYPE +src_channel[0] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[1] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[2] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[3] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[4] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[5] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[6] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[7] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[8] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[9] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[10] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[11] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[12] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[13] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[14] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[15] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[16] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[17] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_startofpacket <= sink_startofpacket.DB_MAX_OUTPUT_PORT_TYPE +src_endofpacket <= sink_endofpacket.DB_MAX_OUTPUT_PORT_TYPE +src_ready => sink_ready.DATAIN + + +|lights|nios_system:NiosII|nios_system_id_router_002:id_router_009|nios_system_id_router_002_default_decode:the_default_decode +default_destination_id[0] <= +default_destination_id[1] <= +default_destination_id[2] <= +default_destination_id[3] <= +default_destination_id[4] <= +default_wr_channel[0] <= +default_wr_channel[1] <= +default_wr_channel[2] <= +default_wr_channel[3] <= +default_wr_channel[4] <= +default_wr_channel[5] <= +default_wr_channel[6] <= +default_wr_channel[7] <= +default_wr_channel[8] <= +default_wr_channel[9] <= +default_wr_channel[10] <= +default_wr_channel[11] <= +default_wr_channel[12] <= +default_wr_channel[13] <= +default_wr_channel[14] <= +default_wr_channel[15] <= +default_wr_channel[16] <= +default_wr_channel[17] <= +default_rd_channel[0] <= +default_rd_channel[1] <= +default_rd_channel[2] <= +default_rd_channel[3] <= +default_rd_channel[4] <= +default_rd_channel[5] <= +default_rd_channel[6] <= +default_rd_channel[7] <= +default_rd_channel[8] <= +default_rd_channel[9] <= +default_rd_channel[10] <= +default_rd_channel[11] <= +default_rd_channel[12] <= +default_rd_channel[13] <= +default_rd_channel[14] <= +default_rd_channel[15] <= +default_rd_channel[16] <= +default_rd_channel[17] <= +default_src_channel[0] <= +default_src_channel[1] <= +default_src_channel[2] <= +default_src_channel[3] <= +default_src_channel[4] <= +default_src_channel[5] <= +default_src_channel[6] <= +default_src_channel[7] <= +default_src_channel[8] <= +default_src_channel[9] <= +default_src_channel[10] <= +default_src_channel[11] <= +default_src_channel[12] <= +default_src_channel[13] <= +default_src_channel[14] <= +default_src_channel[15] <= +default_src_channel[16] <= +default_src_channel[17] <= + + +|lights|nios_system:NiosII|nios_system_id_router_002:id_router_010 +clk => ~NO_FANOUT~ +reset => ~NO_FANOUT~ +sink_valid => src_valid.DATAIN +sink_data[0] => src_data[0].DATAIN +sink_data[1] => src_data[1].DATAIN +sink_data[2] => src_data[2].DATAIN +sink_data[3] => src_data[3].DATAIN +sink_data[4] => src_data[4].DATAIN +sink_data[5] => src_data[5].DATAIN +sink_data[6] => src_data[6].DATAIN +sink_data[7] => src_data[7].DATAIN +sink_data[8] => src_data[8].DATAIN +sink_data[9] => src_data[9].DATAIN +sink_data[10] => src_data[10].DATAIN +sink_data[11] => src_data[11].DATAIN +sink_data[12] => src_data[12].DATAIN +sink_data[13] => src_data[13].DATAIN +sink_data[14] => src_data[14].DATAIN +sink_data[15] => src_data[15].DATAIN +sink_data[16] => src_data[16].DATAIN +sink_data[17] => src_data[17].DATAIN +sink_data[18] => src_data[18].DATAIN +sink_data[19] => src_data[19].DATAIN +sink_data[20] => src_data[20].DATAIN +sink_data[21] => src_data[21].DATAIN +sink_data[22] => src_data[22].DATAIN +sink_data[23] => src_data[23].DATAIN +sink_data[24] => src_data[24].DATAIN +sink_data[25] => src_data[25].DATAIN +sink_data[26] => src_data[26].DATAIN +sink_data[27] => src_data[27].DATAIN +sink_data[28] => src_data[28].DATAIN +sink_data[29] => src_data[29].DATAIN +sink_data[30] => src_data[30].DATAIN +sink_data[31] => src_data[31].DATAIN +sink_data[32] => src_data[32].DATAIN +sink_data[33] => src_data[33].DATAIN +sink_data[34] => src_data[34].DATAIN +sink_data[35] => src_data[35].DATAIN +sink_data[36] => src_data[36].DATAIN +sink_data[37] => src_data[37].DATAIN +sink_data[38] => src_data[38].DATAIN +sink_data[39] => src_data[39].DATAIN +sink_data[40] => src_data[40].DATAIN +sink_data[41] => src_data[41].DATAIN +sink_data[42] => src_data[42].DATAIN +sink_data[43] => src_data[43].DATAIN +sink_data[44] => src_data[44].DATAIN +sink_data[45] => src_data[45].DATAIN +sink_data[46] => src_data[46].DATAIN +sink_data[47] => src_data[47].DATAIN +sink_data[48] => src_data[48].DATAIN +sink_data[49] => src_data[49].DATAIN +sink_data[50] => src_data[50].DATAIN +sink_data[51] => src_data[51].DATAIN +sink_data[52] => src_data[52].DATAIN +sink_data[53] => src_data[53].DATAIN +sink_data[54] => src_data[54].DATAIN +sink_data[55] => src_data[55].DATAIN +sink_data[56] => src_data[56].DATAIN +sink_data[57] => src_data[57].DATAIN +sink_data[58] => src_data[58].DATAIN +sink_data[59] => src_data[59].DATAIN +sink_data[60] => src_data[60].DATAIN +sink_data[61] => src_data[61].DATAIN +sink_data[62] => src_data[62].DATAIN +sink_data[63] => src_data[63].DATAIN +sink_data[64] => src_data[64].DATAIN +sink_data[65] => src_data[65].DATAIN +sink_data[66] => src_data[66].DATAIN +sink_data[67] => src_data[67].DATAIN +sink_data[68] => src_data[68].DATAIN +sink_data[69] => src_data[69].DATAIN +sink_data[70] => src_data[70].DATAIN +sink_data[71] => src_data[71].DATAIN +sink_data[72] => src_data[72].DATAIN +sink_data[73] => src_data[73].DATAIN +sink_data[74] => src_data[74].DATAIN +sink_data[75] => src_data[75].DATAIN +sink_data[76] => src_data[76].DATAIN +sink_data[77] => src_data[77].DATAIN +sink_data[78] => src_data[78].DATAIN +sink_data[79] => src_data[79].DATAIN +sink_data[80] => src_data[80].DATAIN +sink_data[81] => src_data[81].DATAIN +sink_data[81] => Equal0.IN31 +sink_data[82] => src_data[82].DATAIN +sink_data[82] => Equal0.IN30 +sink_data[83] => src_data[83].DATAIN +sink_data[83] => Equal0.IN29 +sink_data[84] => src_data[84].DATAIN +sink_data[84] => Equal0.IN28 +sink_data[85] => src_data[85].DATAIN +sink_data[85] => Equal0.IN27 +sink_data[86] => src_data[86].DATAIN +sink_data[87] => src_data[87].DATAIN +sink_data[88] => src_data[88].DATAIN +sink_data[89] => src_data[89].DATAIN +sink_data[90] => src_data[90].DATAIN +sink_data[91] => src_data[91].DATAIN +sink_data[92] => src_data[92].DATAIN +sink_data[93] => src_data[93].DATAIN +sink_data[94] => src_data[94].DATAIN +sink_data[95] => src_data[95].DATAIN +sink_startofpacket => src_startofpacket.DATAIN +sink_endofpacket => src_endofpacket.DATAIN +sink_ready <= src_ready.DB_MAX_OUTPUT_PORT_TYPE +src_valid <= sink_valid.DB_MAX_OUTPUT_PORT_TYPE +src_data[0] <= sink_data[0].DB_MAX_OUTPUT_PORT_TYPE +src_data[1] <= sink_data[1].DB_MAX_OUTPUT_PORT_TYPE +src_data[2] <= sink_data[2].DB_MAX_OUTPUT_PORT_TYPE +src_data[3] <= sink_data[3].DB_MAX_OUTPUT_PORT_TYPE +src_data[4] <= sink_data[4].DB_MAX_OUTPUT_PORT_TYPE +src_data[5] <= sink_data[5].DB_MAX_OUTPUT_PORT_TYPE +src_data[6] <= sink_data[6].DB_MAX_OUTPUT_PORT_TYPE +src_data[7] <= sink_data[7].DB_MAX_OUTPUT_PORT_TYPE +src_data[8] <= sink_data[8].DB_MAX_OUTPUT_PORT_TYPE +src_data[9] <= sink_data[9].DB_MAX_OUTPUT_PORT_TYPE +src_data[10] <= sink_data[10].DB_MAX_OUTPUT_PORT_TYPE +src_data[11] <= sink_data[11].DB_MAX_OUTPUT_PORT_TYPE +src_data[12] <= sink_data[12].DB_MAX_OUTPUT_PORT_TYPE +src_data[13] <= sink_data[13].DB_MAX_OUTPUT_PORT_TYPE +src_data[14] <= sink_data[14].DB_MAX_OUTPUT_PORT_TYPE +src_data[15] <= sink_data[15].DB_MAX_OUTPUT_PORT_TYPE +src_data[16] <= sink_data[16].DB_MAX_OUTPUT_PORT_TYPE +src_data[17] <= sink_data[17].DB_MAX_OUTPUT_PORT_TYPE +src_data[18] <= sink_data[18].DB_MAX_OUTPUT_PORT_TYPE +src_data[19] <= sink_data[19].DB_MAX_OUTPUT_PORT_TYPE +src_data[20] <= sink_data[20].DB_MAX_OUTPUT_PORT_TYPE +src_data[21] <= sink_data[21].DB_MAX_OUTPUT_PORT_TYPE +src_data[22] <= sink_data[22].DB_MAX_OUTPUT_PORT_TYPE +src_data[23] <= sink_data[23].DB_MAX_OUTPUT_PORT_TYPE +src_data[24] <= sink_data[24].DB_MAX_OUTPUT_PORT_TYPE +src_data[25] <= sink_data[25].DB_MAX_OUTPUT_PORT_TYPE +src_data[26] <= sink_data[26].DB_MAX_OUTPUT_PORT_TYPE +src_data[27] <= sink_data[27].DB_MAX_OUTPUT_PORT_TYPE +src_data[28] <= sink_data[28].DB_MAX_OUTPUT_PORT_TYPE +src_data[29] <= sink_data[29].DB_MAX_OUTPUT_PORT_TYPE +src_data[30] <= sink_data[30].DB_MAX_OUTPUT_PORT_TYPE +src_data[31] <= sink_data[31].DB_MAX_OUTPUT_PORT_TYPE +src_data[32] <= sink_data[32].DB_MAX_OUTPUT_PORT_TYPE +src_data[33] <= sink_data[33].DB_MAX_OUTPUT_PORT_TYPE +src_data[34] <= sink_data[34].DB_MAX_OUTPUT_PORT_TYPE +src_data[35] <= sink_data[35].DB_MAX_OUTPUT_PORT_TYPE +src_data[36] <= sink_data[36].DB_MAX_OUTPUT_PORT_TYPE +src_data[37] <= sink_data[37].DB_MAX_OUTPUT_PORT_TYPE +src_data[38] <= sink_data[38].DB_MAX_OUTPUT_PORT_TYPE +src_data[39] <= sink_data[39].DB_MAX_OUTPUT_PORT_TYPE +src_data[40] <= sink_data[40].DB_MAX_OUTPUT_PORT_TYPE +src_data[41] <= sink_data[41].DB_MAX_OUTPUT_PORT_TYPE +src_data[42] <= sink_data[42].DB_MAX_OUTPUT_PORT_TYPE +src_data[43] <= sink_data[43].DB_MAX_OUTPUT_PORT_TYPE +src_data[44] <= sink_data[44].DB_MAX_OUTPUT_PORT_TYPE +src_data[45] <= sink_data[45].DB_MAX_OUTPUT_PORT_TYPE +src_data[46] <= sink_data[46].DB_MAX_OUTPUT_PORT_TYPE +src_data[47] <= sink_data[47].DB_MAX_OUTPUT_PORT_TYPE +src_data[48] <= sink_data[48].DB_MAX_OUTPUT_PORT_TYPE +src_data[49] <= sink_data[49].DB_MAX_OUTPUT_PORT_TYPE +src_data[50] <= sink_data[50].DB_MAX_OUTPUT_PORT_TYPE +src_data[51] <= sink_data[51].DB_MAX_OUTPUT_PORT_TYPE +src_data[52] <= sink_data[52].DB_MAX_OUTPUT_PORT_TYPE +src_data[53] <= sink_data[53].DB_MAX_OUTPUT_PORT_TYPE +src_data[54] <= sink_data[54].DB_MAX_OUTPUT_PORT_TYPE +src_data[55] <= sink_data[55].DB_MAX_OUTPUT_PORT_TYPE +src_data[56] <= sink_data[56].DB_MAX_OUTPUT_PORT_TYPE +src_data[57] <= sink_data[57].DB_MAX_OUTPUT_PORT_TYPE +src_data[58] <= sink_data[58].DB_MAX_OUTPUT_PORT_TYPE +src_data[59] <= sink_data[59].DB_MAX_OUTPUT_PORT_TYPE +src_data[60] <= sink_data[60].DB_MAX_OUTPUT_PORT_TYPE +src_data[61] <= sink_data[61].DB_MAX_OUTPUT_PORT_TYPE +src_data[62] <= sink_data[62].DB_MAX_OUTPUT_PORT_TYPE +src_data[63] <= sink_data[63].DB_MAX_OUTPUT_PORT_TYPE +src_data[64] <= sink_data[64].DB_MAX_OUTPUT_PORT_TYPE +src_data[65] <= sink_data[65].DB_MAX_OUTPUT_PORT_TYPE +src_data[66] <= sink_data[66].DB_MAX_OUTPUT_PORT_TYPE +src_data[67] <= sink_data[67].DB_MAX_OUTPUT_PORT_TYPE +src_data[68] <= sink_data[68].DB_MAX_OUTPUT_PORT_TYPE +src_data[69] <= sink_data[69].DB_MAX_OUTPUT_PORT_TYPE +src_data[70] <= sink_data[70].DB_MAX_OUTPUT_PORT_TYPE +src_data[71] <= sink_data[71].DB_MAX_OUTPUT_PORT_TYPE +src_data[72] <= sink_data[72].DB_MAX_OUTPUT_PORT_TYPE +src_data[73] <= sink_data[73].DB_MAX_OUTPUT_PORT_TYPE +src_data[74] <= sink_data[74].DB_MAX_OUTPUT_PORT_TYPE +src_data[75] <= sink_data[75].DB_MAX_OUTPUT_PORT_TYPE +src_data[76] <= sink_data[76].DB_MAX_OUTPUT_PORT_TYPE +src_data[77] <= sink_data[77].DB_MAX_OUTPUT_PORT_TYPE +src_data[78] <= sink_data[78].DB_MAX_OUTPUT_PORT_TYPE +src_data[79] <= sink_data[79].DB_MAX_OUTPUT_PORT_TYPE +src_data[80] <= sink_data[80].DB_MAX_OUTPUT_PORT_TYPE +src_data[81] <= sink_data[81].DB_MAX_OUTPUT_PORT_TYPE +src_data[82] <= sink_data[82].DB_MAX_OUTPUT_PORT_TYPE +src_data[83] <= sink_data[83].DB_MAX_OUTPUT_PORT_TYPE +src_data[84] <= sink_data[84].DB_MAX_OUTPUT_PORT_TYPE +src_data[85] <= sink_data[85].DB_MAX_OUTPUT_PORT_TYPE +src_data[86] <= sink_data[86].DB_MAX_OUTPUT_PORT_TYPE +src_data[87] <= sink_data[87].DB_MAX_OUTPUT_PORT_TYPE +src_data[88] <= sink_data[88].DB_MAX_OUTPUT_PORT_TYPE +src_data[89] <= sink_data[89].DB_MAX_OUTPUT_PORT_TYPE +src_data[90] <= sink_data[90].DB_MAX_OUTPUT_PORT_TYPE +src_data[91] <= sink_data[91].DB_MAX_OUTPUT_PORT_TYPE +src_data[92] <= sink_data[92].DB_MAX_OUTPUT_PORT_TYPE +src_data[93] <= sink_data[93].DB_MAX_OUTPUT_PORT_TYPE +src_data[94] <= sink_data[94].DB_MAX_OUTPUT_PORT_TYPE +src_data[95] <= sink_data[95].DB_MAX_OUTPUT_PORT_TYPE +src_channel[0] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[1] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[2] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[3] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[4] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[5] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[6] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[7] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[8] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[9] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[10] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[11] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[12] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[13] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[14] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[15] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[16] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[17] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_startofpacket <= sink_startofpacket.DB_MAX_OUTPUT_PORT_TYPE +src_endofpacket <= sink_endofpacket.DB_MAX_OUTPUT_PORT_TYPE +src_ready => sink_ready.DATAIN + + +|lights|nios_system:NiosII|nios_system_id_router_002:id_router_010|nios_system_id_router_002_default_decode:the_default_decode +default_destination_id[0] <= +default_destination_id[1] <= +default_destination_id[2] <= +default_destination_id[3] <= +default_destination_id[4] <= +default_wr_channel[0] <= +default_wr_channel[1] <= +default_wr_channel[2] <= +default_wr_channel[3] <= +default_wr_channel[4] <= +default_wr_channel[5] <= +default_wr_channel[6] <= +default_wr_channel[7] <= +default_wr_channel[8] <= +default_wr_channel[9] <= +default_wr_channel[10] <= +default_wr_channel[11] <= +default_wr_channel[12] <= +default_wr_channel[13] <= +default_wr_channel[14] <= +default_wr_channel[15] <= +default_wr_channel[16] <= +default_wr_channel[17] <= +default_rd_channel[0] <= +default_rd_channel[1] <= +default_rd_channel[2] <= +default_rd_channel[3] <= +default_rd_channel[4] <= +default_rd_channel[5] <= +default_rd_channel[6] <= +default_rd_channel[7] <= +default_rd_channel[8] <= +default_rd_channel[9] <= +default_rd_channel[10] <= +default_rd_channel[11] <= +default_rd_channel[12] <= +default_rd_channel[13] <= +default_rd_channel[14] <= +default_rd_channel[15] <= +default_rd_channel[16] <= +default_rd_channel[17] <= +default_src_channel[0] <= +default_src_channel[1] <= +default_src_channel[2] <= +default_src_channel[3] <= +default_src_channel[4] <= +default_src_channel[5] <= +default_src_channel[6] <= +default_src_channel[7] <= +default_src_channel[8] <= +default_src_channel[9] <= +default_src_channel[10] <= +default_src_channel[11] <= +default_src_channel[12] <= +default_src_channel[13] <= +default_src_channel[14] <= +default_src_channel[15] <= +default_src_channel[16] <= +default_src_channel[17] <= + + +|lights|nios_system:NiosII|nios_system_id_router_002:id_router_011 +clk => ~NO_FANOUT~ +reset => ~NO_FANOUT~ +sink_valid => src_valid.DATAIN +sink_data[0] => src_data[0].DATAIN +sink_data[1] => src_data[1].DATAIN +sink_data[2] => src_data[2].DATAIN +sink_data[3] => src_data[3].DATAIN +sink_data[4] => src_data[4].DATAIN +sink_data[5] => src_data[5].DATAIN +sink_data[6] => src_data[6].DATAIN +sink_data[7] => src_data[7].DATAIN +sink_data[8] => src_data[8].DATAIN +sink_data[9] => src_data[9].DATAIN +sink_data[10] => src_data[10].DATAIN +sink_data[11] => src_data[11].DATAIN +sink_data[12] => src_data[12].DATAIN +sink_data[13] => src_data[13].DATAIN +sink_data[14] => src_data[14].DATAIN +sink_data[15] => src_data[15].DATAIN +sink_data[16] => src_data[16].DATAIN +sink_data[17] => src_data[17].DATAIN +sink_data[18] => src_data[18].DATAIN +sink_data[19] => src_data[19].DATAIN +sink_data[20] => src_data[20].DATAIN +sink_data[21] => src_data[21].DATAIN +sink_data[22] => src_data[22].DATAIN +sink_data[23] => src_data[23].DATAIN +sink_data[24] => src_data[24].DATAIN +sink_data[25] => src_data[25].DATAIN +sink_data[26] => src_data[26].DATAIN +sink_data[27] => src_data[27].DATAIN +sink_data[28] => src_data[28].DATAIN +sink_data[29] => src_data[29].DATAIN +sink_data[30] => src_data[30].DATAIN +sink_data[31] => src_data[31].DATAIN +sink_data[32] => src_data[32].DATAIN +sink_data[33] => src_data[33].DATAIN +sink_data[34] => src_data[34].DATAIN +sink_data[35] => src_data[35].DATAIN +sink_data[36] => src_data[36].DATAIN +sink_data[37] => src_data[37].DATAIN +sink_data[38] => src_data[38].DATAIN +sink_data[39] => src_data[39].DATAIN +sink_data[40] => src_data[40].DATAIN +sink_data[41] => src_data[41].DATAIN +sink_data[42] => src_data[42].DATAIN +sink_data[43] => src_data[43].DATAIN +sink_data[44] => src_data[44].DATAIN +sink_data[45] => src_data[45].DATAIN +sink_data[46] => src_data[46].DATAIN +sink_data[47] => src_data[47].DATAIN +sink_data[48] => src_data[48].DATAIN +sink_data[49] => src_data[49].DATAIN +sink_data[50] => src_data[50].DATAIN +sink_data[51] => src_data[51].DATAIN +sink_data[52] => src_data[52].DATAIN +sink_data[53] => src_data[53].DATAIN +sink_data[54] => src_data[54].DATAIN +sink_data[55] => src_data[55].DATAIN +sink_data[56] => src_data[56].DATAIN +sink_data[57] => src_data[57].DATAIN +sink_data[58] => src_data[58].DATAIN +sink_data[59] => src_data[59].DATAIN +sink_data[60] => src_data[60].DATAIN +sink_data[61] => src_data[61].DATAIN +sink_data[62] => src_data[62].DATAIN +sink_data[63] => src_data[63].DATAIN +sink_data[64] => src_data[64].DATAIN +sink_data[65] => src_data[65].DATAIN +sink_data[66] => src_data[66].DATAIN +sink_data[67] => src_data[67].DATAIN +sink_data[68] => src_data[68].DATAIN +sink_data[69] => src_data[69].DATAIN +sink_data[70] => src_data[70].DATAIN +sink_data[71] => src_data[71].DATAIN +sink_data[72] => src_data[72].DATAIN +sink_data[73] => src_data[73].DATAIN +sink_data[74] => src_data[74].DATAIN +sink_data[75] => src_data[75].DATAIN +sink_data[76] => src_data[76].DATAIN +sink_data[77] => src_data[77].DATAIN +sink_data[78] => src_data[78].DATAIN +sink_data[79] => src_data[79].DATAIN +sink_data[80] => src_data[80].DATAIN +sink_data[81] => src_data[81].DATAIN +sink_data[81] => Equal0.IN31 +sink_data[82] => src_data[82].DATAIN +sink_data[82] => Equal0.IN30 +sink_data[83] => src_data[83].DATAIN +sink_data[83] => Equal0.IN29 +sink_data[84] => src_data[84].DATAIN +sink_data[84] => Equal0.IN28 +sink_data[85] => src_data[85].DATAIN +sink_data[85] => Equal0.IN27 +sink_data[86] => src_data[86].DATAIN +sink_data[87] => src_data[87].DATAIN +sink_data[88] => src_data[88].DATAIN +sink_data[89] => src_data[89].DATAIN +sink_data[90] => src_data[90].DATAIN +sink_data[91] => src_data[91].DATAIN +sink_data[92] => src_data[92].DATAIN +sink_data[93] => src_data[93].DATAIN +sink_data[94] => src_data[94].DATAIN +sink_data[95] => src_data[95].DATAIN +sink_startofpacket => src_startofpacket.DATAIN +sink_endofpacket => src_endofpacket.DATAIN +sink_ready <= src_ready.DB_MAX_OUTPUT_PORT_TYPE +src_valid <= sink_valid.DB_MAX_OUTPUT_PORT_TYPE +src_data[0] <= sink_data[0].DB_MAX_OUTPUT_PORT_TYPE +src_data[1] <= sink_data[1].DB_MAX_OUTPUT_PORT_TYPE +src_data[2] <= sink_data[2].DB_MAX_OUTPUT_PORT_TYPE +src_data[3] <= sink_data[3].DB_MAX_OUTPUT_PORT_TYPE +src_data[4] <= sink_data[4].DB_MAX_OUTPUT_PORT_TYPE +src_data[5] <= sink_data[5].DB_MAX_OUTPUT_PORT_TYPE +src_data[6] <= sink_data[6].DB_MAX_OUTPUT_PORT_TYPE +src_data[7] <= sink_data[7].DB_MAX_OUTPUT_PORT_TYPE +src_data[8] <= sink_data[8].DB_MAX_OUTPUT_PORT_TYPE +src_data[9] <= sink_data[9].DB_MAX_OUTPUT_PORT_TYPE +src_data[10] <= sink_data[10].DB_MAX_OUTPUT_PORT_TYPE +src_data[11] <= sink_data[11].DB_MAX_OUTPUT_PORT_TYPE +src_data[12] <= sink_data[12].DB_MAX_OUTPUT_PORT_TYPE +src_data[13] <= sink_data[13].DB_MAX_OUTPUT_PORT_TYPE +src_data[14] <= sink_data[14].DB_MAX_OUTPUT_PORT_TYPE +src_data[15] <= sink_data[15].DB_MAX_OUTPUT_PORT_TYPE +src_data[16] <= sink_data[16].DB_MAX_OUTPUT_PORT_TYPE +src_data[17] <= sink_data[17].DB_MAX_OUTPUT_PORT_TYPE +src_data[18] <= sink_data[18].DB_MAX_OUTPUT_PORT_TYPE +src_data[19] <= sink_data[19].DB_MAX_OUTPUT_PORT_TYPE +src_data[20] <= sink_data[20].DB_MAX_OUTPUT_PORT_TYPE +src_data[21] <= sink_data[21].DB_MAX_OUTPUT_PORT_TYPE +src_data[22] <= sink_data[22].DB_MAX_OUTPUT_PORT_TYPE +src_data[23] <= sink_data[23].DB_MAX_OUTPUT_PORT_TYPE +src_data[24] <= sink_data[24].DB_MAX_OUTPUT_PORT_TYPE +src_data[25] <= sink_data[25].DB_MAX_OUTPUT_PORT_TYPE +src_data[26] <= sink_data[26].DB_MAX_OUTPUT_PORT_TYPE +src_data[27] <= sink_data[27].DB_MAX_OUTPUT_PORT_TYPE +src_data[28] <= sink_data[28].DB_MAX_OUTPUT_PORT_TYPE +src_data[29] <= sink_data[29].DB_MAX_OUTPUT_PORT_TYPE +src_data[30] <= sink_data[30].DB_MAX_OUTPUT_PORT_TYPE +src_data[31] <= sink_data[31].DB_MAX_OUTPUT_PORT_TYPE +src_data[32] <= sink_data[32].DB_MAX_OUTPUT_PORT_TYPE +src_data[33] <= sink_data[33].DB_MAX_OUTPUT_PORT_TYPE +src_data[34] <= sink_data[34].DB_MAX_OUTPUT_PORT_TYPE +src_data[35] <= sink_data[35].DB_MAX_OUTPUT_PORT_TYPE +src_data[36] <= sink_data[36].DB_MAX_OUTPUT_PORT_TYPE +src_data[37] <= sink_data[37].DB_MAX_OUTPUT_PORT_TYPE +src_data[38] <= sink_data[38].DB_MAX_OUTPUT_PORT_TYPE +src_data[39] <= sink_data[39].DB_MAX_OUTPUT_PORT_TYPE +src_data[40] <= sink_data[40].DB_MAX_OUTPUT_PORT_TYPE +src_data[41] <= sink_data[41].DB_MAX_OUTPUT_PORT_TYPE +src_data[42] <= sink_data[42].DB_MAX_OUTPUT_PORT_TYPE +src_data[43] <= sink_data[43].DB_MAX_OUTPUT_PORT_TYPE +src_data[44] <= sink_data[44].DB_MAX_OUTPUT_PORT_TYPE +src_data[45] <= sink_data[45].DB_MAX_OUTPUT_PORT_TYPE +src_data[46] <= sink_data[46].DB_MAX_OUTPUT_PORT_TYPE +src_data[47] <= sink_data[47].DB_MAX_OUTPUT_PORT_TYPE +src_data[48] <= sink_data[48].DB_MAX_OUTPUT_PORT_TYPE +src_data[49] <= sink_data[49].DB_MAX_OUTPUT_PORT_TYPE +src_data[50] <= sink_data[50].DB_MAX_OUTPUT_PORT_TYPE +src_data[51] <= sink_data[51].DB_MAX_OUTPUT_PORT_TYPE +src_data[52] <= sink_data[52].DB_MAX_OUTPUT_PORT_TYPE +src_data[53] <= sink_data[53].DB_MAX_OUTPUT_PORT_TYPE +src_data[54] <= sink_data[54].DB_MAX_OUTPUT_PORT_TYPE +src_data[55] <= sink_data[55].DB_MAX_OUTPUT_PORT_TYPE +src_data[56] <= sink_data[56].DB_MAX_OUTPUT_PORT_TYPE +src_data[57] <= sink_data[57].DB_MAX_OUTPUT_PORT_TYPE +src_data[58] <= sink_data[58].DB_MAX_OUTPUT_PORT_TYPE +src_data[59] <= sink_data[59].DB_MAX_OUTPUT_PORT_TYPE +src_data[60] <= sink_data[60].DB_MAX_OUTPUT_PORT_TYPE +src_data[61] <= sink_data[61].DB_MAX_OUTPUT_PORT_TYPE +src_data[62] <= sink_data[62].DB_MAX_OUTPUT_PORT_TYPE +src_data[63] <= sink_data[63].DB_MAX_OUTPUT_PORT_TYPE +src_data[64] <= sink_data[64].DB_MAX_OUTPUT_PORT_TYPE +src_data[65] <= sink_data[65].DB_MAX_OUTPUT_PORT_TYPE +src_data[66] <= sink_data[66].DB_MAX_OUTPUT_PORT_TYPE +src_data[67] <= sink_data[67].DB_MAX_OUTPUT_PORT_TYPE +src_data[68] <= sink_data[68].DB_MAX_OUTPUT_PORT_TYPE +src_data[69] <= sink_data[69].DB_MAX_OUTPUT_PORT_TYPE +src_data[70] <= sink_data[70].DB_MAX_OUTPUT_PORT_TYPE +src_data[71] <= sink_data[71].DB_MAX_OUTPUT_PORT_TYPE +src_data[72] <= sink_data[72].DB_MAX_OUTPUT_PORT_TYPE +src_data[73] <= sink_data[73].DB_MAX_OUTPUT_PORT_TYPE +src_data[74] <= sink_data[74].DB_MAX_OUTPUT_PORT_TYPE +src_data[75] <= sink_data[75].DB_MAX_OUTPUT_PORT_TYPE +src_data[76] <= sink_data[76].DB_MAX_OUTPUT_PORT_TYPE +src_data[77] <= sink_data[77].DB_MAX_OUTPUT_PORT_TYPE +src_data[78] <= sink_data[78].DB_MAX_OUTPUT_PORT_TYPE +src_data[79] <= sink_data[79].DB_MAX_OUTPUT_PORT_TYPE +src_data[80] <= sink_data[80].DB_MAX_OUTPUT_PORT_TYPE +src_data[81] <= sink_data[81].DB_MAX_OUTPUT_PORT_TYPE +src_data[82] <= sink_data[82].DB_MAX_OUTPUT_PORT_TYPE +src_data[83] <= sink_data[83].DB_MAX_OUTPUT_PORT_TYPE +src_data[84] <= sink_data[84].DB_MAX_OUTPUT_PORT_TYPE +src_data[85] <= sink_data[85].DB_MAX_OUTPUT_PORT_TYPE +src_data[86] <= sink_data[86].DB_MAX_OUTPUT_PORT_TYPE +src_data[87] <= sink_data[87].DB_MAX_OUTPUT_PORT_TYPE +src_data[88] <= sink_data[88].DB_MAX_OUTPUT_PORT_TYPE +src_data[89] <= sink_data[89].DB_MAX_OUTPUT_PORT_TYPE +src_data[90] <= sink_data[90].DB_MAX_OUTPUT_PORT_TYPE +src_data[91] <= sink_data[91].DB_MAX_OUTPUT_PORT_TYPE +src_data[92] <= sink_data[92].DB_MAX_OUTPUT_PORT_TYPE +src_data[93] <= sink_data[93].DB_MAX_OUTPUT_PORT_TYPE +src_data[94] <= sink_data[94].DB_MAX_OUTPUT_PORT_TYPE +src_data[95] <= sink_data[95].DB_MAX_OUTPUT_PORT_TYPE +src_channel[0] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[1] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[2] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[3] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[4] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[5] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[6] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[7] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[8] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[9] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[10] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[11] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[12] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[13] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[14] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[15] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[16] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[17] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_startofpacket <= sink_startofpacket.DB_MAX_OUTPUT_PORT_TYPE +src_endofpacket <= sink_endofpacket.DB_MAX_OUTPUT_PORT_TYPE +src_ready => sink_ready.DATAIN + + +|lights|nios_system:NiosII|nios_system_id_router_002:id_router_011|nios_system_id_router_002_default_decode:the_default_decode +default_destination_id[0] <= +default_destination_id[1] <= +default_destination_id[2] <= +default_destination_id[3] <= +default_destination_id[4] <= +default_wr_channel[0] <= +default_wr_channel[1] <= +default_wr_channel[2] <= +default_wr_channel[3] <= +default_wr_channel[4] <= +default_wr_channel[5] <= +default_wr_channel[6] <= +default_wr_channel[7] <= +default_wr_channel[8] <= +default_wr_channel[9] <= +default_wr_channel[10] <= +default_wr_channel[11] <= +default_wr_channel[12] <= +default_wr_channel[13] <= +default_wr_channel[14] <= +default_wr_channel[15] <= +default_wr_channel[16] <= +default_wr_channel[17] <= +default_rd_channel[0] <= +default_rd_channel[1] <= +default_rd_channel[2] <= +default_rd_channel[3] <= +default_rd_channel[4] <= +default_rd_channel[5] <= +default_rd_channel[6] <= +default_rd_channel[7] <= +default_rd_channel[8] <= +default_rd_channel[9] <= +default_rd_channel[10] <= +default_rd_channel[11] <= +default_rd_channel[12] <= +default_rd_channel[13] <= +default_rd_channel[14] <= +default_rd_channel[15] <= +default_rd_channel[16] <= +default_rd_channel[17] <= +default_src_channel[0] <= +default_src_channel[1] <= +default_src_channel[2] <= +default_src_channel[3] <= +default_src_channel[4] <= +default_src_channel[5] <= +default_src_channel[6] <= +default_src_channel[7] <= +default_src_channel[8] <= +default_src_channel[9] <= +default_src_channel[10] <= +default_src_channel[11] <= +default_src_channel[12] <= +default_src_channel[13] <= +default_src_channel[14] <= +default_src_channel[15] <= +default_src_channel[16] <= +default_src_channel[17] <= + + +|lights|nios_system:NiosII|nios_system_id_router_002:id_router_012 +clk => ~NO_FANOUT~ +reset => ~NO_FANOUT~ +sink_valid => src_valid.DATAIN +sink_data[0] => src_data[0].DATAIN +sink_data[1] => src_data[1].DATAIN +sink_data[2] => src_data[2].DATAIN +sink_data[3] => src_data[3].DATAIN +sink_data[4] => src_data[4].DATAIN +sink_data[5] => src_data[5].DATAIN +sink_data[6] => src_data[6].DATAIN +sink_data[7] => src_data[7].DATAIN +sink_data[8] => src_data[8].DATAIN +sink_data[9] => src_data[9].DATAIN +sink_data[10] => src_data[10].DATAIN +sink_data[11] => src_data[11].DATAIN +sink_data[12] => src_data[12].DATAIN +sink_data[13] => src_data[13].DATAIN +sink_data[14] => src_data[14].DATAIN +sink_data[15] => src_data[15].DATAIN +sink_data[16] => src_data[16].DATAIN +sink_data[17] => src_data[17].DATAIN +sink_data[18] => src_data[18].DATAIN +sink_data[19] => src_data[19].DATAIN +sink_data[20] => src_data[20].DATAIN +sink_data[21] => src_data[21].DATAIN +sink_data[22] => src_data[22].DATAIN +sink_data[23] => src_data[23].DATAIN +sink_data[24] => src_data[24].DATAIN +sink_data[25] => src_data[25].DATAIN +sink_data[26] => src_data[26].DATAIN +sink_data[27] => src_data[27].DATAIN +sink_data[28] => src_data[28].DATAIN +sink_data[29] => src_data[29].DATAIN +sink_data[30] => src_data[30].DATAIN +sink_data[31] => src_data[31].DATAIN +sink_data[32] => src_data[32].DATAIN +sink_data[33] => src_data[33].DATAIN +sink_data[34] => src_data[34].DATAIN +sink_data[35] => src_data[35].DATAIN +sink_data[36] => src_data[36].DATAIN +sink_data[37] => src_data[37].DATAIN +sink_data[38] => src_data[38].DATAIN +sink_data[39] => src_data[39].DATAIN +sink_data[40] => src_data[40].DATAIN +sink_data[41] => src_data[41].DATAIN +sink_data[42] => src_data[42].DATAIN +sink_data[43] => src_data[43].DATAIN +sink_data[44] => src_data[44].DATAIN +sink_data[45] => src_data[45].DATAIN +sink_data[46] => src_data[46].DATAIN +sink_data[47] => src_data[47].DATAIN +sink_data[48] => src_data[48].DATAIN +sink_data[49] => src_data[49].DATAIN +sink_data[50] => src_data[50].DATAIN +sink_data[51] => src_data[51].DATAIN +sink_data[52] => src_data[52].DATAIN +sink_data[53] => src_data[53].DATAIN +sink_data[54] => src_data[54].DATAIN +sink_data[55] => src_data[55].DATAIN +sink_data[56] => src_data[56].DATAIN +sink_data[57] => src_data[57].DATAIN +sink_data[58] => src_data[58].DATAIN +sink_data[59] => src_data[59].DATAIN +sink_data[60] => src_data[60].DATAIN +sink_data[61] => src_data[61].DATAIN +sink_data[62] => src_data[62].DATAIN +sink_data[63] => src_data[63].DATAIN +sink_data[64] => src_data[64].DATAIN +sink_data[65] => src_data[65].DATAIN +sink_data[66] => src_data[66].DATAIN +sink_data[67] => src_data[67].DATAIN +sink_data[68] => src_data[68].DATAIN +sink_data[69] => src_data[69].DATAIN +sink_data[70] => src_data[70].DATAIN +sink_data[71] => src_data[71].DATAIN +sink_data[72] => src_data[72].DATAIN +sink_data[73] => src_data[73].DATAIN +sink_data[74] => src_data[74].DATAIN +sink_data[75] => src_data[75].DATAIN +sink_data[76] => src_data[76].DATAIN +sink_data[77] => src_data[77].DATAIN +sink_data[78] => src_data[78].DATAIN +sink_data[79] => src_data[79].DATAIN +sink_data[80] => src_data[80].DATAIN +sink_data[81] => src_data[81].DATAIN +sink_data[81] => Equal0.IN31 +sink_data[82] => src_data[82].DATAIN +sink_data[82] => Equal0.IN30 +sink_data[83] => src_data[83].DATAIN +sink_data[83] => Equal0.IN29 +sink_data[84] => src_data[84].DATAIN +sink_data[84] => Equal0.IN28 +sink_data[85] => src_data[85].DATAIN +sink_data[85] => Equal0.IN27 +sink_data[86] => src_data[86].DATAIN +sink_data[87] => src_data[87].DATAIN +sink_data[88] => src_data[88].DATAIN +sink_data[89] => src_data[89].DATAIN +sink_data[90] => src_data[90].DATAIN +sink_data[91] => src_data[91].DATAIN +sink_data[92] => src_data[92].DATAIN +sink_data[93] => src_data[93].DATAIN +sink_data[94] => src_data[94].DATAIN +sink_data[95] => src_data[95].DATAIN +sink_startofpacket => src_startofpacket.DATAIN +sink_endofpacket => src_endofpacket.DATAIN +sink_ready <= src_ready.DB_MAX_OUTPUT_PORT_TYPE +src_valid <= sink_valid.DB_MAX_OUTPUT_PORT_TYPE +src_data[0] <= sink_data[0].DB_MAX_OUTPUT_PORT_TYPE +src_data[1] <= sink_data[1].DB_MAX_OUTPUT_PORT_TYPE +src_data[2] <= sink_data[2].DB_MAX_OUTPUT_PORT_TYPE +src_data[3] <= sink_data[3].DB_MAX_OUTPUT_PORT_TYPE +src_data[4] <= sink_data[4].DB_MAX_OUTPUT_PORT_TYPE +src_data[5] <= sink_data[5].DB_MAX_OUTPUT_PORT_TYPE +src_data[6] <= sink_data[6].DB_MAX_OUTPUT_PORT_TYPE +src_data[7] <= sink_data[7].DB_MAX_OUTPUT_PORT_TYPE +src_data[8] <= sink_data[8].DB_MAX_OUTPUT_PORT_TYPE +src_data[9] <= sink_data[9].DB_MAX_OUTPUT_PORT_TYPE +src_data[10] <= sink_data[10].DB_MAX_OUTPUT_PORT_TYPE +src_data[11] <= sink_data[11].DB_MAX_OUTPUT_PORT_TYPE +src_data[12] <= sink_data[12].DB_MAX_OUTPUT_PORT_TYPE +src_data[13] <= sink_data[13].DB_MAX_OUTPUT_PORT_TYPE +src_data[14] <= sink_data[14].DB_MAX_OUTPUT_PORT_TYPE +src_data[15] <= sink_data[15].DB_MAX_OUTPUT_PORT_TYPE +src_data[16] <= sink_data[16].DB_MAX_OUTPUT_PORT_TYPE +src_data[17] <= sink_data[17].DB_MAX_OUTPUT_PORT_TYPE +src_data[18] <= sink_data[18].DB_MAX_OUTPUT_PORT_TYPE +src_data[19] <= sink_data[19].DB_MAX_OUTPUT_PORT_TYPE +src_data[20] <= sink_data[20].DB_MAX_OUTPUT_PORT_TYPE +src_data[21] <= sink_data[21].DB_MAX_OUTPUT_PORT_TYPE +src_data[22] <= sink_data[22].DB_MAX_OUTPUT_PORT_TYPE +src_data[23] <= sink_data[23].DB_MAX_OUTPUT_PORT_TYPE +src_data[24] <= sink_data[24].DB_MAX_OUTPUT_PORT_TYPE +src_data[25] <= sink_data[25].DB_MAX_OUTPUT_PORT_TYPE +src_data[26] <= sink_data[26].DB_MAX_OUTPUT_PORT_TYPE +src_data[27] <= sink_data[27].DB_MAX_OUTPUT_PORT_TYPE +src_data[28] <= sink_data[28].DB_MAX_OUTPUT_PORT_TYPE +src_data[29] <= sink_data[29].DB_MAX_OUTPUT_PORT_TYPE +src_data[30] <= sink_data[30].DB_MAX_OUTPUT_PORT_TYPE +src_data[31] <= sink_data[31].DB_MAX_OUTPUT_PORT_TYPE +src_data[32] <= sink_data[32].DB_MAX_OUTPUT_PORT_TYPE +src_data[33] <= sink_data[33].DB_MAX_OUTPUT_PORT_TYPE +src_data[34] <= sink_data[34].DB_MAX_OUTPUT_PORT_TYPE +src_data[35] <= sink_data[35].DB_MAX_OUTPUT_PORT_TYPE +src_data[36] <= sink_data[36].DB_MAX_OUTPUT_PORT_TYPE +src_data[37] <= sink_data[37].DB_MAX_OUTPUT_PORT_TYPE +src_data[38] <= sink_data[38].DB_MAX_OUTPUT_PORT_TYPE +src_data[39] <= sink_data[39].DB_MAX_OUTPUT_PORT_TYPE +src_data[40] <= sink_data[40].DB_MAX_OUTPUT_PORT_TYPE +src_data[41] <= sink_data[41].DB_MAX_OUTPUT_PORT_TYPE +src_data[42] <= sink_data[42].DB_MAX_OUTPUT_PORT_TYPE +src_data[43] <= sink_data[43].DB_MAX_OUTPUT_PORT_TYPE +src_data[44] <= sink_data[44].DB_MAX_OUTPUT_PORT_TYPE +src_data[45] <= sink_data[45].DB_MAX_OUTPUT_PORT_TYPE +src_data[46] <= sink_data[46].DB_MAX_OUTPUT_PORT_TYPE +src_data[47] <= sink_data[47].DB_MAX_OUTPUT_PORT_TYPE +src_data[48] <= sink_data[48].DB_MAX_OUTPUT_PORT_TYPE +src_data[49] <= sink_data[49].DB_MAX_OUTPUT_PORT_TYPE +src_data[50] <= sink_data[50].DB_MAX_OUTPUT_PORT_TYPE +src_data[51] <= sink_data[51].DB_MAX_OUTPUT_PORT_TYPE +src_data[52] <= sink_data[52].DB_MAX_OUTPUT_PORT_TYPE +src_data[53] <= sink_data[53].DB_MAX_OUTPUT_PORT_TYPE +src_data[54] <= sink_data[54].DB_MAX_OUTPUT_PORT_TYPE +src_data[55] <= sink_data[55].DB_MAX_OUTPUT_PORT_TYPE +src_data[56] <= sink_data[56].DB_MAX_OUTPUT_PORT_TYPE +src_data[57] <= sink_data[57].DB_MAX_OUTPUT_PORT_TYPE +src_data[58] <= sink_data[58].DB_MAX_OUTPUT_PORT_TYPE +src_data[59] <= sink_data[59].DB_MAX_OUTPUT_PORT_TYPE +src_data[60] <= sink_data[60].DB_MAX_OUTPUT_PORT_TYPE +src_data[61] <= sink_data[61].DB_MAX_OUTPUT_PORT_TYPE +src_data[62] <= sink_data[62].DB_MAX_OUTPUT_PORT_TYPE +src_data[63] <= sink_data[63].DB_MAX_OUTPUT_PORT_TYPE +src_data[64] <= sink_data[64].DB_MAX_OUTPUT_PORT_TYPE +src_data[65] <= sink_data[65].DB_MAX_OUTPUT_PORT_TYPE +src_data[66] <= sink_data[66].DB_MAX_OUTPUT_PORT_TYPE +src_data[67] <= sink_data[67].DB_MAX_OUTPUT_PORT_TYPE +src_data[68] <= sink_data[68].DB_MAX_OUTPUT_PORT_TYPE +src_data[69] <= sink_data[69].DB_MAX_OUTPUT_PORT_TYPE +src_data[70] <= sink_data[70].DB_MAX_OUTPUT_PORT_TYPE +src_data[71] <= sink_data[71].DB_MAX_OUTPUT_PORT_TYPE +src_data[72] <= sink_data[72].DB_MAX_OUTPUT_PORT_TYPE +src_data[73] <= sink_data[73].DB_MAX_OUTPUT_PORT_TYPE +src_data[74] <= sink_data[74].DB_MAX_OUTPUT_PORT_TYPE +src_data[75] <= sink_data[75].DB_MAX_OUTPUT_PORT_TYPE +src_data[76] <= sink_data[76].DB_MAX_OUTPUT_PORT_TYPE +src_data[77] <= sink_data[77].DB_MAX_OUTPUT_PORT_TYPE +src_data[78] <= sink_data[78].DB_MAX_OUTPUT_PORT_TYPE +src_data[79] <= sink_data[79].DB_MAX_OUTPUT_PORT_TYPE +src_data[80] <= sink_data[80].DB_MAX_OUTPUT_PORT_TYPE +src_data[81] <= sink_data[81].DB_MAX_OUTPUT_PORT_TYPE +src_data[82] <= sink_data[82].DB_MAX_OUTPUT_PORT_TYPE +src_data[83] <= sink_data[83].DB_MAX_OUTPUT_PORT_TYPE +src_data[84] <= sink_data[84].DB_MAX_OUTPUT_PORT_TYPE +src_data[85] <= sink_data[85].DB_MAX_OUTPUT_PORT_TYPE +src_data[86] <= sink_data[86].DB_MAX_OUTPUT_PORT_TYPE +src_data[87] <= sink_data[87].DB_MAX_OUTPUT_PORT_TYPE +src_data[88] <= sink_data[88].DB_MAX_OUTPUT_PORT_TYPE +src_data[89] <= sink_data[89].DB_MAX_OUTPUT_PORT_TYPE +src_data[90] <= sink_data[90].DB_MAX_OUTPUT_PORT_TYPE +src_data[91] <= sink_data[91].DB_MAX_OUTPUT_PORT_TYPE +src_data[92] <= sink_data[92].DB_MAX_OUTPUT_PORT_TYPE +src_data[93] <= sink_data[93].DB_MAX_OUTPUT_PORT_TYPE +src_data[94] <= sink_data[94].DB_MAX_OUTPUT_PORT_TYPE +src_data[95] <= sink_data[95].DB_MAX_OUTPUT_PORT_TYPE +src_channel[0] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[1] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[2] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[3] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[4] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[5] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[6] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[7] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[8] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[9] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[10] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[11] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[12] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[13] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[14] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[15] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[16] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[17] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_startofpacket <= sink_startofpacket.DB_MAX_OUTPUT_PORT_TYPE +src_endofpacket <= sink_endofpacket.DB_MAX_OUTPUT_PORT_TYPE +src_ready => sink_ready.DATAIN + + +|lights|nios_system:NiosII|nios_system_id_router_002:id_router_012|nios_system_id_router_002_default_decode:the_default_decode +default_destination_id[0] <= +default_destination_id[1] <= +default_destination_id[2] <= +default_destination_id[3] <= +default_destination_id[4] <= +default_wr_channel[0] <= +default_wr_channel[1] <= +default_wr_channel[2] <= +default_wr_channel[3] <= +default_wr_channel[4] <= +default_wr_channel[5] <= +default_wr_channel[6] <= +default_wr_channel[7] <= +default_wr_channel[8] <= +default_wr_channel[9] <= +default_wr_channel[10] <= +default_wr_channel[11] <= +default_wr_channel[12] <= +default_wr_channel[13] <= +default_wr_channel[14] <= +default_wr_channel[15] <= +default_wr_channel[16] <= +default_wr_channel[17] <= +default_rd_channel[0] <= +default_rd_channel[1] <= +default_rd_channel[2] <= +default_rd_channel[3] <= +default_rd_channel[4] <= +default_rd_channel[5] <= +default_rd_channel[6] <= +default_rd_channel[7] <= +default_rd_channel[8] <= +default_rd_channel[9] <= +default_rd_channel[10] <= +default_rd_channel[11] <= +default_rd_channel[12] <= +default_rd_channel[13] <= +default_rd_channel[14] <= +default_rd_channel[15] <= +default_rd_channel[16] <= +default_rd_channel[17] <= +default_src_channel[0] <= +default_src_channel[1] <= +default_src_channel[2] <= +default_src_channel[3] <= +default_src_channel[4] <= +default_src_channel[5] <= +default_src_channel[6] <= +default_src_channel[7] <= +default_src_channel[8] <= +default_src_channel[9] <= +default_src_channel[10] <= +default_src_channel[11] <= +default_src_channel[12] <= +default_src_channel[13] <= +default_src_channel[14] <= +default_src_channel[15] <= +default_src_channel[16] <= +default_src_channel[17] <= + + +|lights|nios_system:NiosII|nios_system_id_router_002:id_router_013 +clk => ~NO_FANOUT~ +reset => ~NO_FANOUT~ +sink_valid => src_valid.DATAIN +sink_data[0] => src_data[0].DATAIN +sink_data[1] => src_data[1].DATAIN +sink_data[2] => src_data[2].DATAIN +sink_data[3] => src_data[3].DATAIN +sink_data[4] => src_data[4].DATAIN +sink_data[5] => src_data[5].DATAIN +sink_data[6] => src_data[6].DATAIN +sink_data[7] => src_data[7].DATAIN +sink_data[8] => src_data[8].DATAIN +sink_data[9] => src_data[9].DATAIN +sink_data[10] => src_data[10].DATAIN +sink_data[11] => src_data[11].DATAIN +sink_data[12] => src_data[12].DATAIN +sink_data[13] => src_data[13].DATAIN +sink_data[14] => src_data[14].DATAIN +sink_data[15] => src_data[15].DATAIN +sink_data[16] => src_data[16].DATAIN +sink_data[17] => src_data[17].DATAIN +sink_data[18] => src_data[18].DATAIN +sink_data[19] => src_data[19].DATAIN +sink_data[20] => src_data[20].DATAIN +sink_data[21] => src_data[21].DATAIN +sink_data[22] => src_data[22].DATAIN +sink_data[23] => src_data[23].DATAIN +sink_data[24] => src_data[24].DATAIN +sink_data[25] => src_data[25].DATAIN +sink_data[26] => src_data[26].DATAIN +sink_data[27] => src_data[27].DATAIN +sink_data[28] => src_data[28].DATAIN +sink_data[29] => src_data[29].DATAIN +sink_data[30] => src_data[30].DATAIN +sink_data[31] => src_data[31].DATAIN +sink_data[32] => src_data[32].DATAIN +sink_data[33] => src_data[33].DATAIN +sink_data[34] => src_data[34].DATAIN +sink_data[35] => src_data[35].DATAIN +sink_data[36] => src_data[36].DATAIN +sink_data[37] => src_data[37].DATAIN +sink_data[38] => src_data[38].DATAIN +sink_data[39] => src_data[39].DATAIN +sink_data[40] => src_data[40].DATAIN +sink_data[41] => src_data[41].DATAIN +sink_data[42] => src_data[42].DATAIN +sink_data[43] => src_data[43].DATAIN +sink_data[44] => src_data[44].DATAIN +sink_data[45] => src_data[45].DATAIN +sink_data[46] => src_data[46].DATAIN +sink_data[47] => src_data[47].DATAIN +sink_data[48] => src_data[48].DATAIN +sink_data[49] => src_data[49].DATAIN +sink_data[50] => src_data[50].DATAIN +sink_data[51] => src_data[51].DATAIN +sink_data[52] => src_data[52].DATAIN +sink_data[53] => src_data[53].DATAIN +sink_data[54] => src_data[54].DATAIN +sink_data[55] => src_data[55].DATAIN +sink_data[56] => src_data[56].DATAIN +sink_data[57] => src_data[57].DATAIN +sink_data[58] => src_data[58].DATAIN +sink_data[59] => src_data[59].DATAIN +sink_data[60] => src_data[60].DATAIN +sink_data[61] => src_data[61].DATAIN +sink_data[62] => src_data[62].DATAIN +sink_data[63] => src_data[63].DATAIN +sink_data[64] => src_data[64].DATAIN +sink_data[65] => src_data[65].DATAIN +sink_data[66] => src_data[66].DATAIN +sink_data[67] => src_data[67].DATAIN +sink_data[68] => src_data[68].DATAIN +sink_data[69] => src_data[69].DATAIN +sink_data[70] => src_data[70].DATAIN +sink_data[71] => src_data[71].DATAIN +sink_data[72] => src_data[72].DATAIN +sink_data[73] => src_data[73].DATAIN +sink_data[74] => src_data[74].DATAIN +sink_data[75] => src_data[75].DATAIN +sink_data[76] => src_data[76].DATAIN +sink_data[77] => src_data[77].DATAIN +sink_data[78] => src_data[78].DATAIN +sink_data[79] => src_data[79].DATAIN +sink_data[80] => src_data[80].DATAIN +sink_data[81] => src_data[81].DATAIN +sink_data[81] => Equal0.IN31 +sink_data[82] => src_data[82].DATAIN +sink_data[82] => Equal0.IN30 +sink_data[83] => src_data[83].DATAIN +sink_data[83] => Equal0.IN29 +sink_data[84] => src_data[84].DATAIN +sink_data[84] => Equal0.IN28 +sink_data[85] => src_data[85].DATAIN +sink_data[85] => Equal0.IN27 +sink_data[86] => src_data[86].DATAIN +sink_data[87] => src_data[87].DATAIN +sink_data[88] => src_data[88].DATAIN +sink_data[89] => src_data[89].DATAIN +sink_data[90] => src_data[90].DATAIN +sink_data[91] => src_data[91].DATAIN +sink_data[92] => src_data[92].DATAIN +sink_data[93] => src_data[93].DATAIN +sink_data[94] => src_data[94].DATAIN +sink_data[95] => src_data[95].DATAIN +sink_startofpacket => src_startofpacket.DATAIN +sink_endofpacket => src_endofpacket.DATAIN +sink_ready <= src_ready.DB_MAX_OUTPUT_PORT_TYPE +src_valid <= sink_valid.DB_MAX_OUTPUT_PORT_TYPE +src_data[0] <= sink_data[0].DB_MAX_OUTPUT_PORT_TYPE +src_data[1] <= sink_data[1].DB_MAX_OUTPUT_PORT_TYPE +src_data[2] <= sink_data[2].DB_MAX_OUTPUT_PORT_TYPE +src_data[3] <= sink_data[3].DB_MAX_OUTPUT_PORT_TYPE +src_data[4] <= sink_data[4].DB_MAX_OUTPUT_PORT_TYPE +src_data[5] <= sink_data[5].DB_MAX_OUTPUT_PORT_TYPE +src_data[6] <= sink_data[6].DB_MAX_OUTPUT_PORT_TYPE +src_data[7] <= sink_data[7].DB_MAX_OUTPUT_PORT_TYPE +src_data[8] <= sink_data[8].DB_MAX_OUTPUT_PORT_TYPE +src_data[9] <= sink_data[9].DB_MAX_OUTPUT_PORT_TYPE +src_data[10] <= sink_data[10].DB_MAX_OUTPUT_PORT_TYPE +src_data[11] <= sink_data[11].DB_MAX_OUTPUT_PORT_TYPE +src_data[12] <= sink_data[12].DB_MAX_OUTPUT_PORT_TYPE +src_data[13] <= sink_data[13].DB_MAX_OUTPUT_PORT_TYPE +src_data[14] <= sink_data[14].DB_MAX_OUTPUT_PORT_TYPE +src_data[15] <= sink_data[15].DB_MAX_OUTPUT_PORT_TYPE +src_data[16] <= sink_data[16].DB_MAX_OUTPUT_PORT_TYPE +src_data[17] <= sink_data[17].DB_MAX_OUTPUT_PORT_TYPE +src_data[18] <= sink_data[18].DB_MAX_OUTPUT_PORT_TYPE +src_data[19] <= sink_data[19].DB_MAX_OUTPUT_PORT_TYPE +src_data[20] <= sink_data[20].DB_MAX_OUTPUT_PORT_TYPE +src_data[21] <= sink_data[21].DB_MAX_OUTPUT_PORT_TYPE +src_data[22] <= sink_data[22].DB_MAX_OUTPUT_PORT_TYPE +src_data[23] <= sink_data[23].DB_MAX_OUTPUT_PORT_TYPE +src_data[24] <= sink_data[24].DB_MAX_OUTPUT_PORT_TYPE +src_data[25] <= sink_data[25].DB_MAX_OUTPUT_PORT_TYPE +src_data[26] <= sink_data[26].DB_MAX_OUTPUT_PORT_TYPE +src_data[27] <= sink_data[27].DB_MAX_OUTPUT_PORT_TYPE +src_data[28] <= sink_data[28].DB_MAX_OUTPUT_PORT_TYPE +src_data[29] <= sink_data[29].DB_MAX_OUTPUT_PORT_TYPE +src_data[30] <= sink_data[30].DB_MAX_OUTPUT_PORT_TYPE +src_data[31] <= sink_data[31].DB_MAX_OUTPUT_PORT_TYPE +src_data[32] <= sink_data[32].DB_MAX_OUTPUT_PORT_TYPE +src_data[33] <= sink_data[33].DB_MAX_OUTPUT_PORT_TYPE +src_data[34] <= sink_data[34].DB_MAX_OUTPUT_PORT_TYPE +src_data[35] <= sink_data[35].DB_MAX_OUTPUT_PORT_TYPE +src_data[36] <= sink_data[36].DB_MAX_OUTPUT_PORT_TYPE +src_data[37] <= sink_data[37].DB_MAX_OUTPUT_PORT_TYPE +src_data[38] <= sink_data[38].DB_MAX_OUTPUT_PORT_TYPE +src_data[39] <= sink_data[39].DB_MAX_OUTPUT_PORT_TYPE +src_data[40] <= sink_data[40].DB_MAX_OUTPUT_PORT_TYPE +src_data[41] <= sink_data[41].DB_MAX_OUTPUT_PORT_TYPE +src_data[42] <= sink_data[42].DB_MAX_OUTPUT_PORT_TYPE +src_data[43] <= sink_data[43].DB_MAX_OUTPUT_PORT_TYPE +src_data[44] <= sink_data[44].DB_MAX_OUTPUT_PORT_TYPE +src_data[45] <= sink_data[45].DB_MAX_OUTPUT_PORT_TYPE +src_data[46] <= sink_data[46].DB_MAX_OUTPUT_PORT_TYPE +src_data[47] <= sink_data[47].DB_MAX_OUTPUT_PORT_TYPE +src_data[48] <= sink_data[48].DB_MAX_OUTPUT_PORT_TYPE +src_data[49] <= sink_data[49].DB_MAX_OUTPUT_PORT_TYPE +src_data[50] <= sink_data[50].DB_MAX_OUTPUT_PORT_TYPE +src_data[51] <= sink_data[51].DB_MAX_OUTPUT_PORT_TYPE +src_data[52] <= sink_data[52].DB_MAX_OUTPUT_PORT_TYPE +src_data[53] <= sink_data[53].DB_MAX_OUTPUT_PORT_TYPE +src_data[54] <= sink_data[54].DB_MAX_OUTPUT_PORT_TYPE +src_data[55] <= sink_data[55].DB_MAX_OUTPUT_PORT_TYPE +src_data[56] <= sink_data[56].DB_MAX_OUTPUT_PORT_TYPE +src_data[57] <= sink_data[57].DB_MAX_OUTPUT_PORT_TYPE +src_data[58] <= sink_data[58].DB_MAX_OUTPUT_PORT_TYPE +src_data[59] <= sink_data[59].DB_MAX_OUTPUT_PORT_TYPE +src_data[60] <= sink_data[60].DB_MAX_OUTPUT_PORT_TYPE +src_data[61] <= sink_data[61].DB_MAX_OUTPUT_PORT_TYPE +src_data[62] <= sink_data[62].DB_MAX_OUTPUT_PORT_TYPE +src_data[63] <= sink_data[63].DB_MAX_OUTPUT_PORT_TYPE +src_data[64] <= sink_data[64].DB_MAX_OUTPUT_PORT_TYPE +src_data[65] <= sink_data[65].DB_MAX_OUTPUT_PORT_TYPE +src_data[66] <= sink_data[66].DB_MAX_OUTPUT_PORT_TYPE +src_data[67] <= sink_data[67].DB_MAX_OUTPUT_PORT_TYPE +src_data[68] <= sink_data[68].DB_MAX_OUTPUT_PORT_TYPE +src_data[69] <= sink_data[69].DB_MAX_OUTPUT_PORT_TYPE +src_data[70] <= sink_data[70].DB_MAX_OUTPUT_PORT_TYPE +src_data[71] <= sink_data[71].DB_MAX_OUTPUT_PORT_TYPE +src_data[72] <= sink_data[72].DB_MAX_OUTPUT_PORT_TYPE +src_data[73] <= sink_data[73].DB_MAX_OUTPUT_PORT_TYPE +src_data[74] <= sink_data[74].DB_MAX_OUTPUT_PORT_TYPE +src_data[75] <= sink_data[75].DB_MAX_OUTPUT_PORT_TYPE +src_data[76] <= sink_data[76].DB_MAX_OUTPUT_PORT_TYPE +src_data[77] <= sink_data[77].DB_MAX_OUTPUT_PORT_TYPE +src_data[78] <= sink_data[78].DB_MAX_OUTPUT_PORT_TYPE +src_data[79] <= sink_data[79].DB_MAX_OUTPUT_PORT_TYPE +src_data[80] <= sink_data[80].DB_MAX_OUTPUT_PORT_TYPE +src_data[81] <= sink_data[81].DB_MAX_OUTPUT_PORT_TYPE +src_data[82] <= sink_data[82].DB_MAX_OUTPUT_PORT_TYPE +src_data[83] <= sink_data[83].DB_MAX_OUTPUT_PORT_TYPE +src_data[84] <= sink_data[84].DB_MAX_OUTPUT_PORT_TYPE +src_data[85] <= sink_data[85].DB_MAX_OUTPUT_PORT_TYPE +src_data[86] <= sink_data[86].DB_MAX_OUTPUT_PORT_TYPE +src_data[87] <= sink_data[87].DB_MAX_OUTPUT_PORT_TYPE +src_data[88] <= sink_data[88].DB_MAX_OUTPUT_PORT_TYPE +src_data[89] <= sink_data[89].DB_MAX_OUTPUT_PORT_TYPE +src_data[90] <= sink_data[90].DB_MAX_OUTPUT_PORT_TYPE +src_data[91] <= sink_data[91].DB_MAX_OUTPUT_PORT_TYPE +src_data[92] <= sink_data[92].DB_MAX_OUTPUT_PORT_TYPE +src_data[93] <= sink_data[93].DB_MAX_OUTPUT_PORT_TYPE +src_data[94] <= sink_data[94].DB_MAX_OUTPUT_PORT_TYPE +src_data[95] <= sink_data[95].DB_MAX_OUTPUT_PORT_TYPE +src_channel[0] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[1] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[2] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[3] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[4] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[5] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[6] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[7] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[8] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[9] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[10] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[11] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[12] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[13] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[14] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[15] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[16] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[17] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_startofpacket <= sink_startofpacket.DB_MAX_OUTPUT_PORT_TYPE +src_endofpacket <= sink_endofpacket.DB_MAX_OUTPUT_PORT_TYPE +src_ready => sink_ready.DATAIN + + +|lights|nios_system:NiosII|nios_system_id_router_002:id_router_013|nios_system_id_router_002_default_decode:the_default_decode +default_destination_id[0] <= +default_destination_id[1] <= +default_destination_id[2] <= +default_destination_id[3] <= +default_destination_id[4] <= +default_wr_channel[0] <= +default_wr_channel[1] <= +default_wr_channel[2] <= +default_wr_channel[3] <= +default_wr_channel[4] <= +default_wr_channel[5] <= +default_wr_channel[6] <= +default_wr_channel[7] <= +default_wr_channel[8] <= +default_wr_channel[9] <= +default_wr_channel[10] <= +default_wr_channel[11] <= +default_wr_channel[12] <= +default_wr_channel[13] <= +default_wr_channel[14] <= +default_wr_channel[15] <= +default_wr_channel[16] <= +default_wr_channel[17] <= +default_rd_channel[0] <= +default_rd_channel[1] <= +default_rd_channel[2] <= +default_rd_channel[3] <= +default_rd_channel[4] <= +default_rd_channel[5] <= +default_rd_channel[6] <= +default_rd_channel[7] <= +default_rd_channel[8] <= +default_rd_channel[9] <= +default_rd_channel[10] <= +default_rd_channel[11] <= +default_rd_channel[12] <= +default_rd_channel[13] <= +default_rd_channel[14] <= +default_rd_channel[15] <= +default_rd_channel[16] <= +default_rd_channel[17] <= +default_src_channel[0] <= +default_src_channel[1] <= +default_src_channel[2] <= +default_src_channel[3] <= +default_src_channel[4] <= +default_src_channel[5] <= +default_src_channel[6] <= +default_src_channel[7] <= +default_src_channel[8] <= +default_src_channel[9] <= +default_src_channel[10] <= +default_src_channel[11] <= +default_src_channel[12] <= +default_src_channel[13] <= +default_src_channel[14] <= +default_src_channel[15] <= +default_src_channel[16] <= +default_src_channel[17] <= + + +|lights|nios_system:NiosII|nios_system_id_router_002:id_router_014 +clk => ~NO_FANOUT~ +reset => ~NO_FANOUT~ +sink_valid => src_valid.DATAIN +sink_data[0] => src_data[0].DATAIN +sink_data[1] => src_data[1].DATAIN +sink_data[2] => src_data[2].DATAIN +sink_data[3] => src_data[3].DATAIN +sink_data[4] => src_data[4].DATAIN +sink_data[5] => src_data[5].DATAIN +sink_data[6] => src_data[6].DATAIN +sink_data[7] => src_data[7].DATAIN +sink_data[8] => src_data[8].DATAIN +sink_data[9] => src_data[9].DATAIN +sink_data[10] => src_data[10].DATAIN +sink_data[11] => src_data[11].DATAIN +sink_data[12] => src_data[12].DATAIN +sink_data[13] => src_data[13].DATAIN +sink_data[14] => src_data[14].DATAIN +sink_data[15] => src_data[15].DATAIN +sink_data[16] => src_data[16].DATAIN +sink_data[17] => src_data[17].DATAIN +sink_data[18] => src_data[18].DATAIN +sink_data[19] => src_data[19].DATAIN +sink_data[20] => src_data[20].DATAIN +sink_data[21] => src_data[21].DATAIN +sink_data[22] => src_data[22].DATAIN +sink_data[23] => src_data[23].DATAIN +sink_data[24] => src_data[24].DATAIN +sink_data[25] => src_data[25].DATAIN +sink_data[26] => src_data[26].DATAIN +sink_data[27] => src_data[27].DATAIN +sink_data[28] => src_data[28].DATAIN +sink_data[29] => src_data[29].DATAIN +sink_data[30] => src_data[30].DATAIN +sink_data[31] => src_data[31].DATAIN +sink_data[32] => src_data[32].DATAIN +sink_data[33] => src_data[33].DATAIN +sink_data[34] => src_data[34].DATAIN +sink_data[35] => src_data[35].DATAIN +sink_data[36] => src_data[36].DATAIN +sink_data[37] => src_data[37].DATAIN +sink_data[38] => src_data[38].DATAIN +sink_data[39] => src_data[39].DATAIN +sink_data[40] => src_data[40].DATAIN +sink_data[41] => src_data[41].DATAIN +sink_data[42] => src_data[42].DATAIN +sink_data[43] => src_data[43].DATAIN +sink_data[44] => src_data[44].DATAIN +sink_data[45] => src_data[45].DATAIN +sink_data[46] => src_data[46].DATAIN +sink_data[47] => src_data[47].DATAIN +sink_data[48] => src_data[48].DATAIN +sink_data[49] => src_data[49].DATAIN +sink_data[50] => src_data[50].DATAIN +sink_data[51] => src_data[51].DATAIN +sink_data[52] => src_data[52].DATAIN +sink_data[53] => src_data[53].DATAIN +sink_data[54] => src_data[54].DATAIN +sink_data[55] => src_data[55].DATAIN +sink_data[56] => src_data[56].DATAIN +sink_data[57] => src_data[57].DATAIN +sink_data[58] => src_data[58].DATAIN +sink_data[59] => src_data[59].DATAIN +sink_data[60] => src_data[60].DATAIN +sink_data[61] => src_data[61].DATAIN +sink_data[62] => src_data[62].DATAIN +sink_data[63] => src_data[63].DATAIN +sink_data[64] => src_data[64].DATAIN +sink_data[65] => src_data[65].DATAIN +sink_data[66] => src_data[66].DATAIN +sink_data[67] => src_data[67].DATAIN +sink_data[68] => src_data[68].DATAIN +sink_data[69] => src_data[69].DATAIN +sink_data[70] => src_data[70].DATAIN +sink_data[71] => src_data[71].DATAIN +sink_data[72] => src_data[72].DATAIN +sink_data[73] => src_data[73].DATAIN +sink_data[74] => src_data[74].DATAIN +sink_data[75] => src_data[75].DATAIN +sink_data[76] => src_data[76].DATAIN +sink_data[77] => src_data[77].DATAIN +sink_data[78] => src_data[78].DATAIN +sink_data[79] => src_data[79].DATAIN +sink_data[80] => src_data[80].DATAIN +sink_data[81] => src_data[81].DATAIN +sink_data[81] => Equal0.IN31 +sink_data[82] => src_data[82].DATAIN +sink_data[82] => Equal0.IN30 +sink_data[83] => src_data[83].DATAIN +sink_data[83] => Equal0.IN29 +sink_data[84] => src_data[84].DATAIN +sink_data[84] => Equal0.IN28 +sink_data[85] => src_data[85].DATAIN +sink_data[85] => Equal0.IN27 +sink_data[86] => src_data[86].DATAIN +sink_data[87] => src_data[87].DATAIN +sink_data[88] => src_data[88].DATAIN +sink_data[89] => src_data[89].DATAIN +sink_data[90] => src_data[90].DATAIN +sink_data[91] => src_data[91].DATAIN +sink_data[92] => src_data[92].DATAIN +sink_data[93] => src_data[93].DATAIN +sink_data[94] => src_data[94].DATAIN +sink_data[95] => src_data[95].DATAIN +sink_startofpacket => src_startofpacket.DATAIN +sink_endofpacket => src_endofpacket.DATAIN +sink_ready <= src_ready.DB_MAX_OUTPUT_PORT_TYPE +src_valid <= sink_valid.DB_MAX_OUTPUT_PORT_TYPE +src_data[0] <= sink_data[0].DB_MAX_OUTPUT_PORT_TYPE +src_data[1] <= sink_data[1].DB_MAX_OUTPUT_PORT_TYPE +src_data[2] <= sink_data[2].DB_MAX_OUTPUT_PORT_TYPE +src_data[3] <= sink_data[3].DB_MAX_OUTPUT_PORT_TYPE +src_data[4] <= sink_data[4].DB_MAX_OUTPUT_PORT_TYPE +src_data[5] <= sink_data[5].DB_MAX_OUTPUT_PORT_TYPE +src_data[6] <= sink_data[6].DB_MAX_OUTPUT_PORT_TYPE +src_data[7] <= sink_data[7].DB_MAX_OUTPUT_PORT_TYPE +src_data[8] <= sink_data[8].DB_MAX_OUTPUT_PORT_TYPE +src_data[9] <= sink_data[9].DB_MAX_OUTPUT_PORT_TYPE +src_data[10] <= sink_data[10].DB_MAX_OUTPUT_PORT_TYPE +src_data[11] <= sink_data[11].DB_MAX_OUTPUT_PORT_TYPE +src_data[12] <= sink_data[12].DB_MAX_OUTPUT_PORT_TYPE +src_data[13] <= sink_data[13].DB_MAX_OUTPUT_PORT_TYPE +src_data[14] <= sink_data[14].DB_MAX_OUTPUT_PORT_TYPE +src_data[15] <= sink_data[15].DB_MAX_OUTPUT_PORT_TYPE +src_data[16] <= sink_data[16].DB_MAX_OUTPUT_PORT_TYPE +src_data[17] <= sink_data[17].DB_MAX_OUTPUT_PORT_TYPE +src_data[18] <= sink_data[18].DB_MAX_OUTPUT_PORT_TYPE +src_data[19] <= sink_data[19].DB_MAX_OUTPUT_PORT_TYPE +src_data[20] <= sink_data[20].DB_MAX_OUTPUT_PORT_TYPE +src_data[21] <= sink_data[21].DB_MAX_OUTPUT_PORT_TYPE +src_data[22] <= sink_data[22].DB_MAX_OUTPUT_PORT_TYPE +src_data[23] <= sink_data[23].DB_MAX_OUTPUT_PORT_TYPE +src_data[24] <= sink_data[24].DB_MAX_OUTPUT_PORT_TYPE +src_data[25] <= sink_data[25].DB_MAX_OUTPUT_PORT_TYPE +src_data[26] <= sink_data[26].DB_MAX_OUTPUT_PORT_TYPE +src_data[27] <= sink_data[27].DB_MAX_OUTPUT_PORT_TYPE +src_data[28] <= sink_data[28].DB_MAX_OUTPUT_PORT_TYPE +src_data[29] <= sink_data[29].DB_MAX_OUTPUT_PORT_TYPE +src_data[30] <= sink_data[30].DB_MAX_OUTPUT_PORT_TYPE +src_data[31] <= sink_data[31].DB_MAX_OUTPUT_PORT_TYPE +src_data[32] <= sink_data[32].DB_MAX_OUTPUT_PORT_TYPE +src_data[33] <= sink_data[33].DB_MAX_OUTPUT_PORT_TYPE +src_data[34] <= sink_data[34].DB_MAX_OUTPUT_PORT_TYPE +src_data[35] <= sink_data[35].DB_MAX_OUTPUT_PORT_TYPE +src_data[36] <= sink_data[36].DB_MAX_OUTPUT_PORT_TYPE +src_data[37] <= sink_data[37].DB_MAX_OUTPUT_PORT_TYPE +src_data[38] <= sink_data[38].DB_MAX_OUTPUT_PORT_TYPE +src_data[39] <= sink_data[39].DB_MAX_OUTPUT_PORT_TYPE +src_data[40] <= sink_data[40].DB_MAX_OUTPUT_PORT_TYPE +src_data[41] <= sink_data[41].DB_MAX_OUTPUT_PORT_TYPE +src_data[42] <= sink_data[42].DB_MAX_OUTPUT_PORT_TYPE +src_data[43] <= sink_data[43].DB_MAX_OUTPUT_PORT_TYPE +src_data[44] <= sink_data[44].DB_MAX_OUTPUT_PORT_TYPE +src_data[45] <= sink_data[45].DB_MAX_OUTPUT_PORT_TYPE +src_data[46] <= sink_data[46].DB_MAX_OUTPUT_PORT_TYPE +src_data[47] <= sink_data[47].DB_MAX_OUTPUT_PORT_TYPE +src_data[48] <= sink_data[48].DB_MAX_OUTPUT_PORT_TYPE +src_data[49] <= sink_data[49].DB_MAX_OUTPUT_PORT_TYPE +src_data[50] <= sink_data[50].DB_MAX_OUTPUT_PORT_TYPE +src_data[51] <= sink_data[51].DB_MAX_OUTPUT_PORT_TYPE +src_data[52] <= sink_data[52].DB_MAX_OUTPUT_PORT_TYPE +src_data[53] <= sink_data[53].DB_MAX_OUTPUT_PORT_TYPE +src_data[54] <= sink_data[54].DB_MAX_OUTPUT_PORT_TYPE +src_data[55] <= sink_data[55].DB_MAX_OUTPUT_PORT_TYPE +src_data[56] <= sink_data[56].DB_MAX_OUTPUT_PORT_TYPE +src_data[57] <= sink_data[57].DB_MAX_OUTPUT_PORT_TYPE +src_data[58] <= sink_data[58].DB_MAX_OUTPUT_PORT_TYPE +src_data[59] <= sink_data[59].DB_MAX_OUTPUT_PORT_TYPE +src_data[60] <= sink_data[60].DB_MAX_OUTPUT_PORT_TYPE +src_data[61] <= sink_data[61].DB_MAX_OUTPUT_PORT_TYPE +src_data[62] <= sink_data[62].DB_MAX_OUTPUT_PORT_TYPE +src_data[63] <= sink_data[63].DB_MAX_OUTPUT_PORT_TYPE +src_data[64] <= sink_data[64].DB_MAX_OUTPUT_PORT_TYPE +src_data[65] <= sink_data[65].DB_MAX_OUTPUT_PORT_TYPE +src_data[66] <= sink_data[66].DB_MAX_OUTPUT_PORT_TYPE +src_data[67] <= sink_data[67].DB_MAX_OUTPUT_PORT_TYPE +src_data[68] <= sink_data[68].DB_MAX_OUTPUT_PORT_TYPE +src_data[69] <= sink_data[69].DB_MAX_OUTPUT_PORT_TYPE +src_data[70] <= sink_data[70].DB_MAX_OUTPUT_PORT_TYPE +src_data[71] <= sink_data[71].DB_MAX_OUTPUT_PORT_TYPE +src_data[72] <= sink_data[72].DB_MAX_OUTPUT_PORT_TYPE +src_data[73] <= sink_data[73].DB_MAX_OUTPUT_PORT_TYPE +src_data[74] <= sink_data[74].DB_MAX_OUTPUT_PORT_TYPE +src_data[75] <= sink_data[75].DB_MAX_OUTPUT_PORT_TYPE +src_data[76] <= sink_data[76].DB_MAX_OUTPUT_PORT_TYPE +src_data[77] <= sink_data[77].DB_MAX_OUTPUT_PORT_TYPE +src_data[78] <= sink_data[78].DB_MAX_OUTPUT_PORT_TYPE +src_data[79] <= sink_data[79].DB_MAX_OUTPUT_PORT_TYPE +src_data[80] <= sink_data[80].DB_MAX_OUTPUT_PORT_TYPE +src_data[81] <= sink_data[81].DB_MAX_OUTPUT_PORT_TYPE +src_data[82] <= sink_data[82].DB_MAX_OUTPUT_PORT_TYPE +src_data[83] <= sink_data[83].DB_MAX_OUTPUT_PORT_TYPE +src_data[84] <= sink_data[84].DB_MAX_OUTPUT_PORT_TYPE +src_data[85] <= sink_data[85].DB_MAX_OUTPUT_PORT_TYPE +src_data[86] <= sink_data[86].DB_MAX_OUTPUT_PORT_TYPE +src_data[87] <= sink_data[87].DB_MAX_OUTPUT_PORT_TYPE +src_data[88] <= sink_data[88].DB_MAX_OUTPUT_PORT_TYPE +src_data[89] <= sink_data[89].DB_MAX_OUTPUT_PORT_TYPE +src_data[90] <= sink_data[90].DB_MAX_OUTPUT_PORT_TYPE +src_data[91] <= sink_data[91].DB_MAX_OUTPUT_PORT_TYPE +src_data[92] <= sink_data[92].DB_MAX_OUTPUT_PORT_TYPE +src_data[93] <= sink_data[93].DB_MAX_OUTPUT_PORT_TYPE +src_data[94] <= sink_data[94].DB_MAX_OUTPUT_PORT_TYPE +src_data[95] <= sink_data[95].DB_MAX_OUTPUT_PORT_TYPE +src_channel[0] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[1] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[2] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[3] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[4] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[5] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[6] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[7] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[8] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[9] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[10] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[11] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[12] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[13] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[14] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[15] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[16] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[17] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_startofpacket <= sink_startofpacket.DB_MAX_OUTPUT_PORT_TYPE +src_endofpacket <= sink_endofpacket.DB_MAX_OUTPUT_PORT_TYPE +src_ready => sink_ready.DATAIN + + +|lights|nios_system:NiosII|nios_system_id_router_002:id_router_014|nios_system_id_router_002_default_decode:the_default_decode +default_destination_id[0] <= +default_destination_id[1] <= +default_destination_id[2] <= +default_destination_id[3] <= +default_destination_id[4] <= +default_wr_channel[0] <= +default_wr_channel[1] <= +default_wr_channel[2] <= +default_wr_channel[3] <= +default_wr_channel[4] <= +default_wr_channel[5] <= +default_wr_channel[6] <= +default_wr_channel[7] <= +default_wr_channel[8] <= +default_wr_channel[9] <= +default_wr_channel[10] <= +default_wr_channel[11] <= +default_wr_channel[12] <= +default_wr_channel[13] <= +default_wr_channel[14] <= +default_wr_channel[15] <= +default_wr_channel[16] <= +default_wr_channel[17] <= +default_rd_channel[0] <= +default_rd_channel[1] <= +default_rd_channel[2] <= +default_rd_channel[3] <= +default_rd_channel[4] <= +default_rd_channel[5] <= +default_rd_channel[6] <= +default_rd_channel[7] <= +default_rd_channel[8] <= +default_rd_channel[9] <= +default_rd_channel[10] <= +default_rd_channel[11] <= +default_rd_channel[12] <= +default_rd_channel[13] <= +default_rd_channel[14] <= +default_rd_channel[15] <= +default_rd_channel[16] <= +default_rd_channel[17] <= +default_src_channel[0] <= +default_src_channel[1] <= +default_src_channel[2] <= +default_src_channel[3] <= +default_src_channel[4] <= +default_src_channel[5] <= +default_src_channel[6] <= +default_src_channel[7] <= +default_src_channel[8] <= +default_src_channel[9] <= +default_src_channel[10] <= +default_src_channel[11] <= +default_src_channel[12] <= +default_src_channel[13] <= +default_src_channel[14] <= +default_src_channel[15] <= +default_src_channel[16] <= +default_src_channel[17] <= + + +|lights|nios_system:NiosII|nios_system_id_router_002:id_router_015 +clk => ~NO_FANOUT~ +reset => ~NO_FANOUT~ +sink_valid => src_valid.DATAIN +sink_data[0] => src_data[0].DATAIN +sink_data[1] => src_data[1].DATAIN +sink_data[2] => src_data[2].DATAIN +sink_data[3] => src_data[3].DATAIN +sink_data[4] => src_data[4].DATAIN +sink_data[5] => src_data[5].DATAIN +sink_data[6] => src_data[6].DATAIN +sink_data[7] => src_data[7].DATAIN +sink_data[8] => src_data[8].DATAIN +sink_data[9] => src_data[9].DATAIN +sink_data[10] => src_data[10].DATAIN +sink_data[11] => src_data[11].DATAIN +sink_data[12] => src_data[12].DATAIN +sink_data[13] => src_data[13].DATAIN +sink_data[14] => src_data[14].DATAIN +sink_data[15] => src_data[15].DATAIN +sink_data[16] => src_data[16].DATAIN +sink_data[17] => src_data[17].DATAIN +sink_data[18] => src_data[18].DATAIN +sink_data[19] => src_data[19].DATAIN +sink_data[20] => src_data[20].DATAIN +sink_data[21] => src_data[21].DATAIN +sink_data[22] => src_data[22].DATAIN +sink_data[23] => src_data[23].DATAIN +sink_data[24] => src_data[24].DATAIN +sink_data[25] => src_data[25].DATAIN +sink_data[26] => src_data[26].DATAIN +sink_data[27] => src_data[27].DATAIN +sink_data[28] => src_data[28].DATAIN +sink_data[29] => src_data[29].DATAIN +sink_data[30] => src_data[30].DATAIN +sink_data[31] => src_data[31].DATAIN +sink_data[32] => src_data[32].DATAIN +sink_data[33] => src_data[33].DATAIN +sink_data[34] => src_data[34].DATAIN +sink_data[35] => src_data[35].DATAIN +sink_data[36] => src_data[36].DATAIN +sink_data[37] => src_data[37].DATAIN +sink_data[38] => src_data[38].DATAIN +sink_data[39] => src_data[39].DATAIN +sink_data[40] => src_data[40].DATAIN +sink_data[41] => src_data[41].DATAIN +sink_data[42] => src_data[42].DATAIN +sink_data[43] => src_data[43].DATAIN +sink_data[44] => src_data[44].DATAIN +sink_data[45] => src_data[45].DATAIN +sink_data[46] => src_data[46].DATAIN +sink_data[47] => src_data[47].DATAIN +sink_data[48] => src_data[48].DATAIN +sink_data[49] => src_data[49].DATAIN +sink_data[50] => src_data[50].DATAIN +sink_data[51] => src_data[51].DATAIN +sink_data[52] => src_data[52].DATAIN +sink_data[53] => src_data[53].DATAIN +sink_data[54] => src_data[54].DATAIN +sink_data[55] => src_data[55].DATAIN +sink_data[56] => src_data[56].DATAIN +sink_data[57] => src_data[57].DATAIN +sink_data[58] => src_data[58].DATAIN +sink_data[59] => src_data[59].DATAIN +sink_data[60] => src_data[60].DATAIN +sink_data[61] => src_data[61].DATAIN +sink_data[62] => src_data[62].DATAIN +sink_data[63] => src_data[63].DATAIN +sink_data[64] => src_data[64].DATAIN +sink_data[65] => src_data[65].DATAIN +sink_data[66] => src_data[66].DATAIN +sink_data[67] => src_data[67].DATAIN +sink_data[68] => src_data[68].DATAIN +sink_data[69] => src_data[69].DATAIN +sink_data[70] => src_data[70].DATAIN +sink_data[71] => src_data[71].DATAIN +sink_data[72] => src_data[72].DATAIN +sink_data[73] => src_data[73].DATAIN +sink_data[74] => src_data[74].DATAIN +sink_data[75] => src_data[75].DATAIN +sink_data[76] => src_data[76].DATAIN +sink_data[77] => src_data[77].DATAIN +sink_data[78] => src_data[78].DATAIN +sink_data[79] => src_data[79].DATAIN +sink_data[80] => src_data[80].DATAIN +sink_data[81] => src_data[81].DATAIN +sink_data[81] => Equal0.IN31 +sink_data[82] => src_data[82].DATAIN +sink_data[82] => Equal0.IN30 +sink_data[83] => src_data[83].DATAIN +sink_data[83] => Equal0.IN29 +sink_data[84] => src_data[84].DATAIN +sink_data[84] => Equal0.IN28 +sink_data[85] => src_data[85].DATAIN +sink_data[85] => Equal0.IN27 +sink_data[86] => src_data[86].DATAIN +sink_data[87] => src_data[87].DATAIN +sink_data[88] => src_data[88].DATAIN +sink_data[89] => src_data[89].DATAIN +sink_data[90] => src_data[90].DATAIN +sink_data[91] => src_data[91].DATAIN +sink_data[92] => src_data[92].DATAIN +sink_data[93] => src_data[93].DATAIN +sink_data[94] => src_data[94].DATAIN +sink_data[95] => src_data[95].DATAIN +sink_startofpacket => src_startofpacket.DATAIN +sink_endofpacket => src_endofpacket.DATAIN +sink_ready <= src_ready.DB_MAX_OUTPUT_PORT_TYPE +src_valid <= sink_valid.DB_MAX_OUTPUT_PORT_TYPE +src_data[0] <= sink_data[0].DB_MAX_OUTPUT_PORT_TYPE +src_data[1] <= sink_data[1].DB_MAX_OUTPUT_PORT_TYPE +src_data[2] <= sink_data[2].DB_MAX_OUTPUT_PORT_TYPE +src_data[3] <= sink_data[3].DB_MAX_OUTPUT_PORT_TYPE +src_data[4] <= sink_data[4].DB_MAX_OUTPUT_PORT_TYPE +src_data[5] <= sink_data[5].DB_MAX_OUTPUT_PORT_TYPE +src_data[6] <= sink_data[6].DB_MAX_OUTPUT_PORT_TYPE +src_data[7] <= sink_data[7].DB_MAX_OUTPUT_PORT_TYPE +src_data[8] <= sink_data[8].DB_MAX_OUTPUT_PORT_TYPE +src_data[9] <= sink_data[9].DB_MAX_OUTPUT_PORT_TYPE +src_data[10] <= sink_data[10].DB_MAX_OUTPUT_PORT_TYPE +src_data[11] <= sink_data[11].DB_MAX_OUTPUT_PORT_TYPE +src_data[12] <= sink_data[12].DB_MAX_OUTPUT_PORT_TYPE +src_data[13] <= sink_data[13].DB_MAX_OUTPUT_PORT_TYPE +src_data[14] <= sink_data[14].DB_MAX_OUTPUT_PORT_TYPE +src_data[15] <= sink_data[15].DB_MAX_OUTPUT_PORT_TYPE +src_data[16] <= sink_data[16].DB_MAX_OUTPUT_PORT_TYPE +src_data[17] <= sink_data[17].DB_MAX_OUTPUT_PORT_TYPE +src_data[18] <= sink_data[18].DB_MAX_OUTPUT_PORT_TYPE +src_data[19] <= sink_data[19].DB_MAX_OUTPUT_PORT_TYPE +src_data[20] <= sink_data[20].DB_MAX_OUTPUT_PORT_TYPE +src_data[21] <= sink_data[21].DB_MAX_OUTPUT_PORT_TYPE +src_data[22] <= sink_data[22].DB_MAX_OUTPUT_PORT_TYPE +src_data[23] <= sink_data[23].DB_MAX_OUTPUT_PORT_TYPE +src_data[24] <= sink_data[24].DB_MAX_OUTPUT_PORT_TYPE +src_data[25] <= sink_data[25].DB_MAX_OUTPUT_PORT_TYPE +src_data[26] <= sink_data[26].DB_MAX_OUTPUT_PORT_TYPE +src_data[27] <= sink_data[27].DB_MAX_OUTPUT_PORT_TYPE +src_data[28] <= sink_data[28].DB_MAX_OUTPUT_PORT_TYPE +src_data[29] <= sink_data[29].DB_MAX_OUTPUT_PORT_TYPE +src_data[30] <= sink_data[30].DB_MAX_OUTPUT_PORT_TYPE +src_data[31] <= sink_data[31].DB_MAX_OUTPUT_PORT_TYPE +src_data[32] <= sink_data[32].DB_MAX_OUTPUT_PORT_TYPE +src_data[33] <= sink_data[33].DB_MAX_OUTPUT_PORT_TYPE +src_data[34] <= sink_data[34].DB_MAX_OUTPUT_PORT_TYPE +src_data[35] <= sink_data[35].DB_MAX_OUTPUT_PORT_TYPE +src_data[36] <= sink_data[36].DB_MAX_OUTPUT_PORT_TYPE +src_data[37] <= sink_data[37].DB_MAX_OUTPUT_PORT_TYPE +src_data[38] <= sink_data[38].DB_MAX_OUTPUT_PORT_TYPE +src_data[39] <= sink_data[39].DB_MAX_OUTPUT_PORT_TYPE +src_data[40] <= sink_data[40].DB_MAX_OUTPUT_PORT_TYPE +src_data[41] <= sink_data[41].DB_MAX_OUTPUT_PORT_TYPE +src_data[42] <= sink_data[42].DB_MAX_OUTPUT_PORT_TYPE +src_data[43] <= sink_data[43].DB_MAX_OUTPUT_PORT_TYPE +src_data[44] <= sink_data[44].DB_MAX_OUTPUT_PORT_TYPE +src_data[45] <= sink_data[45].DB_MAX_OUTPUT_PORT_TYPE +src_data[46] <= sink_data[46].DB_MAX_OUTPUT_PORT_TYPE +src_data[47] <= sink_data[47].DB_MAX_OUTPUT_PORT_TYPE +src_data[48] <= sink_data[48].DB_MAX_OUTPUT_PORT_TYPE +src_data[49] <= sink_data[49].DB_MAX_OUTPUT_PORT_TYPE +src_data[50] <= sink_data[50].DB_MAX_OUTPUT_PORT_TYPE +src_data[51] <= sink_data[51].DB_MAX_OUTPUT_PORT_TYPE +src_data[52] <= sink_data[52].DB_MAX_OUTPUT_PORT_TYPE +src_data[53] <= sink_data[53].DB_MAX_OUTPUT_PORT_TYPE +src_data[54] <= sink_data[54].DB_MAX_OUTPUT_PORT_TYPE +src_data[55] <= sink_data[55].DB_MAX_OUTPUT_PORT_TYPE +src_data[56] <= sink_data[56].DB_MAX_OUTPUT_PORT_TYPE +src_data[57] <= sink_data[57].DB_MAX_OUTPUT_PORT_TYPE +src_data[58] <= sink_data[58].DB_MAX_OUTPUT_PORT_TYPE +src_data[59] <= sink_data[59].DB_MAX_OUTPUT_PORT_TYPE +src_data[60] <= sink_data[60].DB_MAX_OUTPUT_PORT_TYPE +src_data[61] <= sink_data[61].DB_MAX_OUTPUT_PORT_TYPE +src_data[62] <= sink_data[62].DB_MAX_OUTPUT_PORT_TYPE +src_data[63] <= sink_data[63].DB_MAX_OUTPUT_PORT_TYPE +src_data[64] <= sink_data[64].DB_MAX_OUTPUT_PORT_TYPE +src_data[65] <= sink_data[65].DB_MAX_OUTPUT_PORT_TYPE +src_data[66] <= sink_data[66].DB_MAX_OUTPUT_PORT_TYPE +src_data[67] <= sink_data[67].DB_MAX_OUTPUT_PORT_TYPE +src_data[68] <= sink_data[68].DB_MAX_OUTPUT_PORT_TYPE +src_data[69] <= sink_data[69].DB_MAX_OUTPUT_PORT_TYPE +src_data[70] <= sink_data[70].DB_MAX_OUTPUT_PORT_TYPE +src_data[71] <= sink_data[71].DB_MAX_OUTPUT_PORT_TYPE +src_data[72] <= sink_data[72].DB_MAX_OUTPUT_PORT_TYPE +src_data[73] <= sink_data[73].DB_MAX_OUTPUT_PORT_TYPE +src_data[74] <= sink_data[74].DB_MAX_OUTPUT_PORT_TYPE +src_data[75] <= sink_data[75].DB_MAX_OUTPUT_PORT_TYPE +src_data[76] <= sink_data[76].DB_MAX_OUTPUT_PORT_TYPE +src_data[77] <= sink_data[77].DB_MAX_OUTPUT_PORT_TYPE +src_data[78] <= sink_data[78].DB_MAX_OUTPUT_PORT_TYPE +src_data[79] <= sink_data[79].DB_MAX_OUTPUT_PORT_TYPE +src_data[80] <= sink_data[80].DB_MAX_OUTPUT_PORT_TYPE +src_data[81] <= sink_data[81].DB_MAX_OUTPUT_PORT_TYPE +src_data[82] <= sink_data[82].DB_MAX_OUTPUT_PORT_TYPE +src_data[83] <= sink_data[83].DB_MAX_OUTPUT_PORT_TYPE +src_data[84] <= sink_data[84].DB_MAX_OUTPUT_PORT_TYPE +src_data[85] <= sink_data[85].DB_MAX_OUTPUT_PORT_TYPE +src_data[86] <= sink_data[86].DB_MAX_OUTPUT_PORT_TYPE +src_data[87] <= sink_data[87].DB_MAX_OUTPUT_PORT_TYPE +src_data[88] <= sink_data[88].DB_MAX_OUTPUT_PORT_TYPE +src_data[89] <= sink_data[89].DB_MAX_OUTPUT_PORT_TYPE +src_data[90] <= sink_data[90].DB_MAX_OUTPUT_PORT_TYPE +src_data[91] <= sink_data[91].DB_MAX_OUTPUT_PORT_TYPE +src_data[92] <= sink_data[92].DB_MAX_OUTPUT_PORT_TYPE +src_data[93] <= sink_data[93].DB_MAX_OUTPUT_PORT_TYPE +src_data[94] <= sink_data[94].DB_MAX_OUTPUT_PORT_TYPE +src_data[95] <= sink_data[95].DB_MAX_OUTPUT_PORT_TYPE +src_channel[0] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[1] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[2] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[3] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[4] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[5] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[6] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[7] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[8] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[9] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[10] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[11] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[12] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[13] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[14] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[15] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[16] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[17] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_startofpacket <= sink_startofpacket.DB_MAX_OUTPUT_PORT_TYPE +src_endofpacket <= sink_endofpacket.DB_MAX_OUTPUT_PORT_TYPE +src_ready => sink_ready.DATAIN + + +|lights|nios_system:NiosII|nios_system_id_router_002:id_router_015|nios_system_id_router_002_default_decode:the_default_decode +default_destination_id[0] <= +default_destination_id[1] <= +default_destination_id[2] <= +default_destination_id[3] <= +default_destination_id[4] <= +default_wr_channel[0] <= +default_wr_channel[1] <= +default_wr_channel[2] <= +default_wr_channel[3] <= +default_wr_channel[4] <= +default_wr_channel[5] <= +default_wr_channel[6] <= +default_wr_channel[7] <= +default_wr_channel[8] <= +default_wr_channel[9] <= +default_wr_channel[10] <= +default_wr_channel[11] <= +default_wr_channel[12] <= +default_wr_channel[13] <= +default_wr_channel[14] <= +default_wr_channel[15] <= +default_wr_channel[16] <= +default_wr_channel[17] <= +default_rd_channel[0] <= +default_rd_channel[1] <= +default_rd_channel[2] <= +default_rd_channel[3] <= +default_rd_channel[4] <= +default_rd_channel[5] <= +default_rd_channel[6] <= +default_rd_channel[7] <= +default_rd_channel[8] <= +default_rd_channel[9] <= +default_rd_channel[10] <= +default_rd_channel[11] <= +default_rd_channel[12] <= +default_rd_channel[13] <= +default_rd_channel[14] <= +default_rd_channel[15] <= +default_rd_channel[16] <= +default_rd_channel[17] <= +default_src_channel[0] <= +default_src_channel[1] <= +default_src_channel[2] <= +default_src_channel[3] <= +default_src_channel[4] <= +default_src_channel[5] <= +default_src_channel[6] <= +default_src_channel[7] <= +default_src_channel[8] <= +default_src_channel[9] <= +default_src_channel[10] <= +default_src_channel[11] <= +default_src_channel[12] <= +default_src_channel[13] <= +default_src_channel[14] <= +default_src_channel[15] <= +default_src_channel[16] <= +default_src_channel[17] <= + + +|lights|nios_system:NiosII|nios_system_id_router_002:id_router_016 +clk => ~NO_FANOUT~ +reset => ~NO_FANOUT~ +sink_valid => src_valid.DATAIN +sink_data[0] => src_data[0].DATAIN +sink_data[1] => src_data[1].DATAIN +sink_data[2] => src_data[2].DATAIN +sink_data[3] => src_data[3].DATAIN +sink_data[4] => src_data[4].DATAIN +sink_data[5] => src_data[5].DATAIN +sink_data[6] => src_data[6].DATAIN +sink_data[7] => src_data[7].DATAIN +sink_data[8] => src_data[8].DATAIN +sink_data[9] => src_data[9].DATAIN +sink_data[10] => src_data[10].DATAIN +sink_data[11] => src_data[11].DATAIN +sink_data[12] => src_data[12].DATAIN +sink_data[13] => src_data[13].DATAIN +sink_data[14] => src_data[14].DATAIN +sink_data[15] => src_data[15].DATAIN +sink_data[16] => src_data[16].DATAIN +sink_data[17] => src_data[17].DATAIN +sink_data[18] => src_data[18].DATAIN +sink_data[19] => src_data[19].DATAIN +sink_data[20] => src_data[20].DATAIN +sink_data[21] => src_data[21].DATAIN +sink_data[22] => src_data[22].DATAIN +sink_data[23] => src_data[23].DATAIN +sink_data[24] => src_data[24].DATAIN +sink_data[25] => src_data[25].DATAIN +sink_data[26] => src_data[26].DATAIN +sink_data[27] => src_data[27].DATAIN +sink_data[28] => src_data[28].DATAIN +sink_data[29] => src_data[29].DATAIN +sink_data[30] => src_data[30].DATAIN +sink_data[31] => src_data[31].DATAIN +sink_data[32] => src_data[32].DATAIN +sink_data[33] => src_data[33].DATAIN +sink_data[34] => src_data[34].DATAIN +sink_data[35] => src_data[35].DATAIN +sink_data[36] => src_data[36].DATAIN +sink_data[37] => src_data[37].DATAIN +sink_data[38] => src_data[38].DATAIN +sink_data[39] => src_data[39].DATAIN +sink_data[40] => src_data[40].DATAIN +sink_data[41] => src_data[41].DATAIN +sink_data[42] => src_data[42].DATAIN +sink_data[43] => src_data[43].DATAIN +sink_data[44] => src_data[44].DATAIN +sink_data[45] => src_data[45].DATAIN +sink_data[46] => src_data[46].DATAIN +sink_data[47] => src_data[47].DATAIN +sink_data[48] => src_data[48].DATAIN +sink_data[49] => src_data[49].DATAIN +sink_data[50] => src_data[50].DATAIN +sink_data[51] => src_data[51].DATAIN +sink_data[52] => src_data[52].DATAIN +sink_data[53] => src_data[53].DATAIN +sink_data[54] => src_data[54].DATAIN +sink_data[55] => src_data[55].DATAIN +sink_data[56] => src_data[56].DATAIN +sink_data[57] => src_data[57].DATAIN +sink_data[58] => src_data[58].DATAIN +sink_data[59] => src_data[59].DATAIN +sink_data[60] => src_data[60].DATAIN +sink_data[61] => src_data[61].DATAIN +sink_data[62] => src_data[62].DATAIN +sink_data[63] => src_data[63].DATAIN +sink_data[64] => src_data[64].DATAIN +sink_data[65] => src_data[65].DATAIN +sink_data[66] => src_data[66].DATAIN +sink_data[67] => src_data[67].DATAIN +sink_data[68] => src_data[68].DATAIN +sink_data[69] => src_data[69].DATAIN +sink_data[70] => src_data[70].DATAIN +sink_data[71] => src_data[71].DATAIN +sink_data[72] => src_data[72].DATAIN +sink_data[73] => src_data[73].DATAIN +sink_data[74] => src_data[74].DATAIN +sink_data[75] => src_data[75].DATAIN +sink_data[76] => src_data[76].DATAIN +sink_data[77] => src_data[77].DATAIN +sink_data[78] => src_data[78].DATAIN +sink_data[79] => src_data[79].DATAIN +sink_data[80] => src_data[80].DATAIN +sink_data[81] => src_data[81].DATAIN +sink_data[81] => Equal0.IN31 +sink_data[82] => src_data[82].DATAIN +sink_data[82] => Equal0.IN30 +sink_data[83] => src_data[83].DATAIN +sink_data[83] => Equal0.IN29 +sink_data[84] => src_data[84].DATAIN +sink_data[84] => Equal0.IN28 +sink_data[85] => src_data[85].DATAIN +sink_data[85] => Equal0.IN27 +sink_data[86] => src_data[86].DATAIN +sink_data[87] => src_data[87].DATAIN +sink_data[88] => src_data[88].DATAIN +sink_data[89] => src_data[89].DATAIN +sink_data[90] => src_data[90].DATAIN +sink_data[91] => src_data[91].DATAIN +sink_data[92] => src_data[92].DATAIN +sink_data[93] => src_data[93].DATAIN +sink_data[94] => src_data[94].DATAIN +sink_data[95] => src_data[95].DATAIN +sink_startofpacket => src_startofpacket.DATAIN +sink_endofpacket => src_endofpacket.DATAIN +sink_ready <= src_ready.DB_MAX_OUTPUT_PORT_TYPE +src_valid <= sink_valid.DB_MAX_OUTPUT_PORT_TYPE +src_data[0] <= sink_data[0].DB_MAX_OUTPUT_PORT_TYPE +src_data[1] <= sink_data[1].DB_MAX_OUTPUT_PORT_TYPE +src_data[2] <= sink_data[2].DB_MAX_OUTPUT_PORT_TYPE +src_data[3] <= sink_data[3].DB_MAX_OUTPUT_PORT_TYPE +src_data[4] <= sink_data[4].DB_MAX_OUTPUT_PORT_TYPE +src_data[5] <= sink_data[5].DB_MAX_OUTPUT_PORT_TYPE +src_data[6] <= sink_data[6].DB_MAX_OUTPUT_PORT_TYPE +src_data[7] <= sink_data[7].DB_MAX_OUTPUT_PORT_TYPE +src_data[8] <= sink_data[8].DB_MAX_OUTPUT_PORT_TYPE +src_data[9] <= sink_data[9].DB_MAX_OUTPUT_PORT_TYPE +src_data[10] <= sink_data[10].DB_MAX_OUTPUT_PORT_TYPE +src_data[11] <= sink_data[11].DB_MAX_OUTPUT_PORT_TYPE +src_data[12] <= sink_data[12].DB_MAX_OUTPUT_PORT_TYPE +src_data[13] <= sink_data[13].DB_MAX_OUTPUT_PORT_TYPE +src_data[14] <= sink_data[14].DB_MAX_OUTPUT_PORT_TYPE +src_data[15] <= sink_data[15].DB_MAX_OUTPUT_PORT_TYPE +src_data[16] <= sink_data[16].DB_MAX_OUTPUT_PORT_TYPE +src_data[17] <= sink_data[17].DB_MAX_OUTPUT_PORT_TYPE +src_data[18] <= sink_data[18].DB_MAX_OUTPUT_PORT_TYPE +src_data[19] <= sink_data[19].DB_MAX_OUTPUT_PORT_TYPE +src_data[20] <= sink_data[20].DB_MAX_OUTPUT_PORT_TYPE +src_data[21] <= sink_data[21].DB_MAX_OUTPUT_PORT_TYPE +src_data[22] <= sink_data[22].DB_MAX_OUTPUT_PORT_TYPE +src_data[23] <= sink_data[23].DB_MAX_OUTPUT_PORT_TYPE +src_data[24] <= sink_data[24].DB_MAX_OUTPUT_PORT_TYPE +src_data[25] <= sink_data[25].DB_MAX_OUTPUT_PORT_TYPE +src_data[26] <= sink_data[26].DB_MAX_OUTPUT_PORT_TYPE +src_data[27] <= sink_data[27].DB_MAX_OUTPUT_PORT_TYPE +src_data[28] <= sink_data[28].DB_MAX_OUTPUT_PORT_TYPE +src_data[29] <= sink_data[29].DB_MAX_OUTPUT_PORT_TYPE +src_data[30] <= sink_data[30].DB_MAX_OUTPUT_PORT_TYPE +src_data[31] <= sink_data[31].DB_MAX_OUTPUT_PORT_TYPE +src_data[32] <= sink_data[32].DB_MAX_OUTPUT_PORT_TYPE +src_data[33] <= sink_data[33].DB_MAX_OUTPUT_PORT_TYPE +src_data[34] <= sink_data[34].DB_MAX_OUTPUT_PORT_TYPE +src_data[35] <= sink_data[35].DB_MAX_OUTPUT_PORT_TYPE +src_data[36] <= sink_data[36].DB_MAX_OUTPUT_PORT_TYPE +src_data[37] <= sink_data[37].DB_MAX_OUTPUT_PORT_TYPE +src_data[38] <= sink_data[38].DB_MAX_OUTPUT_PORT_TYPE +src_data[39] <= sink_data[39].DB_MAX_OUTPUT_PORT_TYPE +src_data[40] <= sink_data[40].DB_MAX_OUTPUT_PORT_TYPE +src_data[41] <= sink_data[41].DB_MAX_OUTPUT_PORT_TYPE +src_data[42] <= sink_data[42].DB_MAX_OUTPUT_PORT_TYPE +src_data[43] <= sink_data[43].DB_MAX_OUTPUT_PORT_TYPE +src_data[44] <= sink_data[44].DB_MAX_OUTPUT_PORT_TYPE +src_data[45] <= sink_data[45].DB_MAX_OUTPUT_PORT_TYPE +src_data[46] <= sink_data[46].DB_MAX_OUTPUT_PORT_TYPE +src_data[47] <= sink_data[47].DB_MAX_OUTPUT_PORT_TYPE +src_data[48] <= sink_data[48].DB_MAX_OUTPUT_PORT_TYPE +src_data[49] <= sink_data[49].DB_MAX_OUTPUT_PORT_TYPE +src_data[50] <= sink_data[50].DB_MAX_OUTPUT_PORT_TYPE +src_data[51] <= sink_data[51].DB_MAX_OUTPUT_PORT_TYPE +src_data[52] <= sink_data[52].DB_MAX_OUTPUT_PORT_TYPE +src_data[53] <= sink_data[53].DB_MAX_OUTPUT_PORT_TYPE +src_data[54] <= sink_data[54].DB_MAX_OUTPUT_PORT_TYPE +src_data[55] <= sink_data[55].DB_MAX_OUTPUT_PORT_TYPE +src_data[56] <= sink_data[56].DB_MAX_OUTPUT_PORT_TYPE +src_data[57] <= sink_data[57].DB_MAX_OUTPUT_PORT_TYPE +src_data[58] <= sink_data[58].DB_MAX_OUTPUT_PORT_TYPE +src_data[59] <= sink_data[59].DB_MAX_OUTPUT_PORT_TYPE +src_data[60] <= sink_data[60].DB_MAX_OUTPUT_PORT_TYPE +src_data[61] <= sink_data[61].DB_MAX_OUTPUT_PORT_TYPE +src_data[62] <= sink_data[62].DB_MAX_OUTPUT_PORT_TYPE +src_data[63] <= sink_data[63].DB_MAX_OUTPUT_PORT_TYPE +src_data[64] <= sink_data[64].DB_MAX_OUTPUT_PORT_TYPE +src_data[65] <= sink_data[65].DB_MAX_OUTPUT_PORT_TYPE +src_data[66] <= sink_data[66].DB_MAX_OUTPUT_PORT_TYPE +src_data[67] <= sink_data[67].DB_MAX_OUTPUT_PORT_TYPE +src_data[68] <= sink_data[68].DB_MAX_OUTPUT_PORT_TYPE +src_data[69] <= sink_data[69].DB_MAX_OUTPUT_PORT_TYPE +src_data[70] <= sink_data[70].DB_MAX_OUTPUT_PORT_TYPE +src_data[71] <= sink_data[71].DB_MAX_OUTPUT_PORT_TYPE +src_data[72] <= sink_data[72].DB_MAX_OUTPUT_PORT_TYPE +src_data[73] <= sink_data[73].DB_MAX_OUTPUT_PORT_TYPE +src_data[74] <= sink_data[74].DB_MAX_OUTPUT_PORT_TYPE +src_data[75] <= sink_data[75].DB_MAX_OUTPUT_PORT_TYPE +src_data[76] <= sink_data[76].DB_MAX_OUTPUT_PORT_TYPE +src_data[77] <= sink_data[77].DB_MAX_OUTPUT_PORT_TYPE +src_data[78] <= sink_data[78].DB_MAX_OUTPUT_PORT_TYPE +src_data[79] <= sink_data[79].DB_MAX_OUTPUT_PORT_TYPE +src_data[80] <= sink_data[80].DB_MAX_OUTPUT_PORT_TYPE +src_data[81] <= sink_data[81].DB_MAX_OUTPUT_PORT_TYPE +src_data[82] <= sink_data[82].DB_MAX_OUTPUT_PORT_TYPE +src_data[83] <= sink_data[83].DB_MAX_OUTPUT_PORT_TYPE +src_data[84] <= sink_data[84].DB_MAX_OUTPUT_PORT_TYPE +src_data[85] <= sink_data[85].DB_MAX_OUTPUT_PORT_TYPE +src_data[86] <= sink_data[86].DB_MAX_OUTPUT_PORT_TYPE +src_data[87] <= sink_data[87].DB_MAX_OUTPUT_PORT_TYPE +src_data[88] <= sink_data[88].DB_MAX_OUTPUT_PORT_TYPE +src_data[89] <= sink_data[89].DB_MAX_OUTPUT_PORT_TYPE +src_data[90] <= sink_data[90].DB_MAX_OUTPUT_PORT_TYPE +src_data[91] <= sink_data[91].DB_MAX_OUTPUT_PORT_TYPE +src_data[92] <= sink_data[92].DB_MAX_OUTPUT_PORT_TYPE +src_data[93] <= sink_data[93].DB_MAX_OUTPUT_PORT_TYPE +src_data[94] <= sink_data[94].DB_MAX_OUTPUT_PORT_TYPE +src_data[95] <= sink_data[95].DB_MAX_OUTPUT_PORT_TYPE +src_channel[0] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[1] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[2] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[3] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[4] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[5] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[6] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[7] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[8] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[9] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[10] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[11] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[12] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[13] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[14] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[15] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[16] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[17] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_startofpacket <= sink_startofpacket.DB_MAX_OUTPUT_PORT_TYPE +src_endofpacket <= sink_endofpacket.DB_MAX_OUTPUT_PORT_TYPE +src_ready => sink_ready.DATAIN + + +|lights|nios_system:NiosII|nios_system_id_router_002:id_router_016|nios_system_id_router_002_default_decode:the_default_decode +default_destination_id[0] <= +default_destination_id[1] <= +default_destination_id[2] <= +default_destination_id[3] <= +default_destination_id[4] <= +default_wr_channel[0] <= +default_wr_channel[1] <= +default_wr_channel[2] <= +default_wr_channel[3] <= +default_wr_channel[4] <= +default_wr_channel[5] <= +default_wr_channel[6] <= +default_wr_channel[7] <= +default_wr_channel[8] <= +default_wr_channel[9] <= +default_wr_channel[10] <= +default_wr_channel[11] <= +default_wr_channel[12] <= +default_wr_channel[13] <= +default_wr_channel[14] <= +default_wr_channel[15] <= +default_wr_channel[16] <= +default_wr_channel[17] <= +default_rd_channel[0] <= +default_rd_channel[1] <= +default_rd_channel[2] <= +default_rd_channel[3] <= +default_rd_channel[4] <= +default_rd_channel[5] <= +default_rd_channel[6] <= +default_rd_channel[7] <= +default_rd_channel[8] <= +default_rd_channel[9] <= +default_rd_channel[10] <= +default_rd_channel[11] <= +default_rd_channel[12] <= +default_rd_channel[13] <= +default_rd_channel[14] <= +default_rd_channel[15] <= +default_rd_channel[16] <= +default_rd_channel[17] <= +default_src_channel[0] <= +default_src_channel[1] <= +default_src_channel[2] <= +default_src_channel[3] <= +default_src_channel[4] <= +default_src_channel[5] <= +default_src_channel[6] <= +default_src_channel[7] <= +default_src_channel[8] <= +default_src_channel[9] <= +default_src_channel[10] <= +default_src_channel[11] <= +default_src_channel[12] <= +default_src_channel[13] <= +default_src_channel[14] <= +default_src_channel[15] <= +default_src_channel[16] <= +default_src_channel[17] <= + + +|lights|nios_system:NiosII|nios_system_id_router_002:id_router_017 +clk => ~NO_FANOUT~ +reset => ~NO_FANOUT~ +sink_valid => src_valid.DATAIN +sink_data[0] => src_data[0].DATAIN +sink_data[1] => src_data[1].DATAIN +sink_data[2] => src_data[2].DATAIN +sink_data[3] => src_data[3].DATAIN +sink_data[4] => src_data[4].DATAIN +sink_data[5] => src_data[5].DATAIN +sink_data[6] => src_data[6].DATAIN +sink_data[7] => src_data[7].DATAIN +sink_data[8] => src_data[8].DATAIN +sink_data[9] => src_data[9].DATAIN +sink_data[10] => src_data[10].DATAIN +sink_data[11] => src_data[11].DATAIN +sink_data[12] => src_data[12].DATAIN +sink_data[13] => src_data[13].DATAIN +sink_data[14] => src_data[14].DATAIN +sink_data[15] => src_data[15].DATAIN +sink_data[16] => src_data[16].DATAIN +sink_data[17] => src_data[17].DATAIN +sink_data[18] => src_data[18].DATAIN +sink_data[19] => src_data[19].DATAIN +sink_data[20] => src_data[20].DATAIN +sink_data[21] => src_data[21].DATAIN +sink_data[22] => src_data[22].DATAIN +sink_data[23] => src_data[23].DATAIN +sink_data[24] => src_data[24].DATAIN +sink_data[25] => src_data[25].DATAIN +sink_data[26] => src_data[26].DATAIN +sink_data[27] => src_data[27].DATAIN +sink_data[28] => src_data[28].DATAIN +sink_data[29] => src_data[29].DATAIN +sink_data[30] => src_data[30].DATAIN +sink_data[31] => src_data[31].DATAIN +sink_data[32] => src_data[32].DATAIN +sink_data[33] => src_data[33].DATAIN +sink_data[34] => src_data[34].DATAIN +sink_data[35] => src_data[35].DATAIN +sink_data[36] => src_data[36].DATAIN +sink_data[37] => src_data[37].DATAIN +sink_data[38] => src_data[38].DATAIN +sink_data[39] => src_data[39].DATAIN +sink_data[40] => src_data[40].DATAIN +sink_data[41] => src_data[41].DATAIN +sink_data[42] => src_data[42].DATAIN +sink_data[43] => src_data[43].DATAIN +sink_data[44] => src_data[44].DATAIN +sink_data[45] => src_data[45].DATAIN +sink_data[46] => src_data[46].DATAIN +sink_data[47] => src_data[47].DATAIN +sink_data[48] => src_data[48].DATAIN +sink_data[49] => src_data[49].DATAIN +sink_data[50] => src_data[50].DATAIN +sink_data[51] => src_data[51].DATAIN +sink_data[52] => src_data[52].DATAIN +sink_data[53] => src_data[53].DATAIN +sink_data[54] => src_data[54].DATAIN +sink_data[55] => src_data[55].DATAIN +sink_data[56] => src_data[56].DATAIN +sink_data[57] => src_data[57].DATAIN +sink_data[58] => src_data[58].DATAIN +sink_data[59] => src_data[59].DATAIN +sink_data[60] => src_data[60].DATAIN +sink_data[61] => src_data[61].DATAIN +sink_data[62] => src_data[62].DATAIN +sink_data[63] => src_data[63].DATAIN +sink_data[64] => src_data[64].DATAIN +sink_data[65] => src_data[65].DATAIN +sink_data[66] => src_data[66].DATAIN +sink_data[67] => src_data[67].DATAIN +sink_data[68] => src_data[68].DATAIN +sink_data[69] => src_data[69].DATAIN +sink_data[70] => src_data[70].DATAIN +sink_data[71] => src_data[71].DATAIN +sink_data[72] => src_data[72].DATAIN +sink_data[73] => src_data[73].DATAIN +sink_data[74] => src_data[74].DATAIN +sink_data[75] => src_data[75].DATAIN +sink_data[76] => src_data[76].DATAIN +sink_data[77] => src_data[77].DATAIN +sink_data[78] => src_data[78].DATAIN +sink_data[79] => src_data[79].DATAIN +sink_data[80] => src_data[80].DATAIN +sink_data[81] => src_data[81].DATAIN +sink_data[81] => Equal0.IN31 +sink_data[82] => src_data[82].DATAIN +sink_data[82] => Equal0.IN30 +sink_data[83] => src_data[83].DATAIN +sink_data[83] => Equal0.IN29 +sink_data[84] => src_data[84].DATAIN +sink_data[84] => Equal0.IN28 +sink_data[85] => src_data[85].DATAIN +sink_data[85] => Equal0.IN27 +sink_data[86] => src_data[86].DATAIN +sink_data[87] => src_data[87].DATAIN +sink_data[88] => src_data[88].DATAIN +sink_data[89] => src_data[89].DATAIN +sink_data[90] => src_data[90].DATAIN +sink_data[91] => src_data[91].DATAIN +sink_data[92] => src_data[92].DATAIN +sink_data[93] => src_data[93].DATAIN +sink_data[94] => src_data[94].DATAIN +sink_data[95] => src_data[95].DATAIN +sink_startofpacket => src_startofpacket.DATAIN +sink_endofpacket => src_endofpacket.DATAIN +sink_ready <= src_ready.DB_MAX_OUTPUT_PORT_TYPE +src_valid <= sink_valid.DB_MAX_OUTPUT_PORT_TYPE +src_data[0] <= sink_data[0].DB_MAX_OUTPUT_PORT_TYPE +src_data[1] <= sink_data[1].DB_MAX_OUTPUT_PORT_TYPE +src_data[2] <= sink_data[2].DB_MAX_OUTPUT_PORT_TYPE +src_data[3] <= sink_data[3].DB_MAX_OUTPUT_PORT_TYPE +src_data[4] <= sink_data[4].DB_MAX_OUTPUT_PORT_TYPE +src_data[5] <= sink_data[5].DB_MAX_OUTPUT_PORT_TYPE +src_data[6] <= sink_data[6].DB_MAX_OUTPUT_PORT_TYPE +src_data[7] <= sink_data[7].DB_MAX_OUTPUT_PORT_TYPE +src_data[8] <= sink_data[8].DB_MAX_OUTPUT_PORT_TYPE +src_data[9] <= sink_data[9].DB_MAX_OUTPUT_PORT_TYPE +src_data[10] <= sink_data[10].DB_MAX_OUTPUT_PORT_TYPE +src_data[11] <= sink_data[11].DB_MAX_OUTPUT_PORT_TYPE +src_data[12] <= sink_data[12].DB_MAX_OUTPUT_PORT_TYPE +src_data[13] <= sink_data[13].DB_MAX_OUTPUT_PORT_TYPE +src_data[14] <= sink_data[14].DB_MAX_OUTPUT_PORT_TYPE +src_data[15] <= sink_data[15].DB_MAX_OUTPUT_PORT_TYPE +src_data[16] <= sink_data[16].DB_MAX_OUTPUT_PORT_TYPE +src_data[17] <= sink_data[17].DB_MAX_OUTPUT_PORT_TYPE +src_data[18] <= sink_data[18].DB_MAX_OUTPUT_PORT_TYPE +src_data[19] <= sink_data[19].DB_MAX_OUTPUT_PORT_TYPE +src_data[20] <= sink_data[20].DB_MAX_OUTPUT_PORT_TYPE +src_data[21] <= sink_data[21].DB_MAX_OUTPUT_PORT_TYPE +src_data[22] <= sink_data[22].DB_MAX_OUTPUT_PORT_TYPE +src_data[23] <= sink_data[23].DB_MAX_OUTPUT_PORT_TYPE +src_data[24] <= sink_data[24].DB_MAX_OUTPUT_PORT_TYPE +src_data[25] <= sink_data[25].DB_MAX_OUTPUT_PORT_TYPE +src_data[26] <= sink_data[26].DB_MAX_OUTPUT_PORT_TYPE +src_data[27] <= sink_data[27].DB_MAX_OUTPUT_PORT_TYPE +src_data[28] <= sink_data[28].DB_MAX_OUTPUT_PORT_TYPE +src_data[29] <= sink_data[29].DB_MAX_OUTPUT_PORT_TYPE +src_data[30] <= sink_data[30].DB_MAX_OUTPUT_PORT_TYPE +src_data[31] <= sink_data[31].DB_MAX_OUTPUT_PORT_TYPE +src_data[32] <= sink_data[32].DB_MAX_OUTPUT_PORT_TYPE +src_data[33] <= sink_data[33].DB_MAX_OUTPUT_PORT_TYPE +src_data[34] <= sink_data[34].DB_MAX_OUTPUT_PORT_TYPE +src_data[35] <= sink_data[35].DB_MAX_OUTPUT_PORT_TYPE +src_data[36] <= sink_data[36].DB_MAX_OUTPUT_PORT_TYPE +src_data[37] <= sink_data[37].DB_MAX_OUTPUT_PORT_TYPE +src_data[38] <= sink_data[38].DB_MAX_OUTPUT_PORT_TYPE +src_data[39] <= sink_data[39].DB_MAX_OUTPUT_PORT_TYPE +src_data[40] <= sink_data[40].DB_MAX_OUTPUT_PORT_TYPE +src_data[41] <= sink_data[41].DB_MAX_OUTPUT_PORT_TYPE +src_data[42] <= sink_data[42].DB_MAX_OUTPUT_PORT_TYPE +src_data[43] <= sink_data[43].DB_MAX_OUTPUT_PORT_TYPE +src_data[44] <= sink_data[44].DB_MAX_OUTPUT_PORT_TYPE +src_data[45] <= sink_data[45].DB_MAX_OUTPUT_PORT_TYPE +src_data[46] <= sink_data[46].DB_MAX_OUTPUT_PORT_TYPE +src_data[47] <= sink_data[47].DB_MAX_OUTPUT_PORT_TYPE +src_data[48] <= sink_data[48].DB_MAX_OUTPUT_PORT_TYPE +src_data[49] <= sink_data[49].DB_MAX_OUTPUT_PORT_TYPE +src_data[50] <= sink_data[50].DB_MAX_OUTPUT_PORT_TYPE +src_data[51] <= sink_data[51].DB_MAX_OUTPUT_PORT_TYPE +src_data[52] <= sink_data[52].DB_MAX_OUTPUT_PORT_TYPE +src_data[53] <= sink_data[53].DB_MAX_OUTPUT_PORT_TYPE +src_data[54] <= sink_data[54].DB_MAX_OUTPUT_PORT_TYPE +src_data[55] <= sink_data[55].DB_MAX_OUTPUT_PORT_TYPE +src_data[56] <= sink_data[56].DB_MAX_OUTPUT_PORT_TYPE +src_data[57] <= sink_data[57].DB_MAX_OUTPUT_PORT_TYPE +src_data[58] <= sink_data[58].DB_MAX_OUTPUT_PORT_TYPE +src_data[59] <= sink_data[59].DB_MAX_OUTPUT_PORT_TYPE +src_data[60] <= sink_data[60].DB_MAX_OUTPUT_PORT_TYPE +src_data[61] <= sink_data[61].DB_MAX_OUTPUT_PORT_TYPE +src_data[62] <= sink_data[62].DB_MAX_OUTPUT_PORT_TYPE +src_data[63] <= sink_data[63].DB_MAX_OUTPUT_PORT_TYPE +src_data[64] <= sink_data[64].DB_MAX_OUTPUT_PORT_TYPE +src_data[65] <= sink_data[65].DB_MAX_OUTPUT_PORT_TYPE +src_data[66] <= sink_data[66].DB_MAX_OUTPUT_PORT_TYPE +src_data[67] <= sink_data[67].DB_MAX_OUTPUT_PORT_TYPE +src_data[68] <= sink_data[68].DB_MAX_OUTPUT_PORT_TYPE +src_data[69] <= sink_data[69].DB_MAX_OUTPUT_PORT_TYPE +src_data[70] <= sink_data[70].DB_MAX_OUTPUT_PORT_TYPE +src_data[71] <= sink_data[71].DB_MAX_OUTPUT_PORT_TYPE +src_data[72] <= sink_data[72].DB_MAX_OUTPUT_PORT_TYPE +src_data[73] <= sink_data[73].DB_MAX_OUTPUT_PORT_TYPE +src_data[74] <= sink_data[74].DB_MAX_OUTPUT_PORT_TYPE +src_data[75] <= sink_data[75].DB_MAX_OUTPUT_PORT_TYPE +src_data[76] <= sink_data[76].DB_MAX_OUTPUT_PORT_TYPE +src_data[77] <= sink_data[77].DB_MAX_OUTPUT_PORT_TYPE +src_data[78] <= sink_data[78].DB_MAX_OUTPUT_PORT_TYPE +src_data[79] <= sink_data[79].DB_MAX_OUTPUT_PORT_TYPE +src_data[80] <= sink_data[80].DB_MAX_OUTPUT_PORT_TYPE +src_data[81] <= sink_data[81].DB_MAX_OUTPUT_PORT_TYPE +src_data[82] <= sink_data[82].DB_MAX_OUTPUT_PORT_TYPE +src_data[83] <= sink_data[83].DB_MAX_OUTPUT_PORT_TYPE +src_data[84] <= sink_data[84].DB_MAX_OUTPUT_PORT_TYPE +src_data[85] <= sink_data[85].DB_MAX_OUTPUT_PORT_TYPE +src_data[86] <= sink_data[86].DB_MAX_OUTPUT_PORT_TYPE +src_data[87] <= sink_data[87].DB_MAX_OUTPUT_PORT_TYPE +src_data[88] <= sink_data[88].DB_MAX_OUTPUT_PORT_TYPE +src_data[89] <= sink_data[89].DB_MAX_OUTPUT_PORT_TYPE +src_data[90] <= sink_data[90].DB_MAX_OUTPUT_PORT_TYPE +src_data[91] <= sink_data[91].DB_MAX_OUTPUT_PORT_TYPE +src_data[92] <= sink_data[92].DB_MAX_OUTPUT_PORT_TYPE +src_data[93] <= sink_data[93].DB_MAX_OUTPUT_PORT_TYPE +src_data[94] <= sink_data[94].DB_MAX_OUTPUT_PORT_TYPE +src_data[95] <= sink_data[95].DB_MAX_OUTPUT_PORT_TYPE +src_channel[0] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[1] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[2] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[3] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[4] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[5] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[6] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[7] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[8] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[9] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[10] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[11] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[12] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[13] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[14] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[15] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[16] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_channel[17] <= src_channel.DB_MAX_OUTPUT_PORT_TYPE +src_startofpacket <= sink_startofpacket.DB_MAX_OUTPUT_PORT_TYPE +src_endofpacket <= sink_endofpacket.DB_MAX_OUTPUT_PORT_TYPE +src_ready => sink_ready.DATAIN + + +|lights|nios_system:NiosII|nios_system_id_router_002:id_router_017|nios_system_id_router_002_default_decode:the_default_decode +default_destination_id[0] <= +default_destination_id[1] <= +default_destination_id[2] <= +default_destination_id[3] <= +default_destination_id[4] <= +default_wr_channel[0] <= +default_wr_channel[1] <= +default_wr_channel[2] <= +default_wr_channel[3] <= +default_wr_channel[4] <= +default_wr_channel[5] <= +default_wr_channel[6] <= +default_wr_channel[7] <= +default_wr_channel[8] <= +default_wr_channel[9] <= +default_wr_channel[10] <= +default_wr_channel[11] <= +default_wr_channel[12] <= +default_wr_channel[13] <= +default_wr_channel[14] <= +default_wr_channel[15] <= +default_wr_channel[16] <= +default_wr_channel[17] <= +default_rd_channel[0] <= +default_rd_channel[1] <= +default_rd_channel[2] <= +default_rd_channel[3] <= +default_rd_channel[4] <= +default_rd_channel[5] <= +default_rd_channel[6] <= +default_rd_channel[7] <= +default_rd_channel[8] <= +default_rd_channel[9] <= +default_rd_channel[10] <= +default_rd_channel[11] <= +default_rd_channel[12] <= +default_rd_channel[13] <= +default_rd_channel[14] <= +default_rd_channel[15] <= +default_rd_channel[16] <= +default_rd_channel[17] <= +default_src_channel[0] <= +default_src_channel[1] <= +default_src_channel[2] <= +default_src_channel[3] <= +default_src_channel[4] <= +default_src_channel[5] <= +default_src_channel[6] <= +default_src_channel[7] <= +default_src_channel[8] <= +default_src_channel[9] <= +default_src_channel[10] <= +default_src_channel[11] <= +default_src_channel[12] <= +default_src_channel[13] <= +default_src_channel[14] <= +default_src_channel[15] <= +default_src_channel[16] <= +default_src_channel[17] <= + + +|lights|nios_system:NiosII|altera_reset_controller:rst_controller +reset_in0 => merged_reset.IN0 +reset_in1 => merged_reset.IN1 +reset_in2 => merged_reset.IN1 +reset_in3 => merged_reset.IN1 +reset_in4 => merged_reset.IN1 +reset_in5 => merged_reset.IN1 +reset_in6 => merged_reset.IN1 +reset_in7 => merged_reset.IN1 +reset_in8 => merged_reset.IN1 +reset_in9 => merged_reset.IN1 +reset_in10 => merged_reset.IN1 +reset_in11 => merged_reset.IN1 +reset_in12 => merged_reset.IN1 +reset_in13 => merged_reset.IN1 +reset_in14 => merged_reset.IN1 +reset_in15 => merged_reset.IN1 +clk => clk.IN1 +reset_out <= r_sync_rst.DB_MAX_OUTPUT_PORT_TYPE +reset_req <= r_early_rst.DB_MAX_OUTPUT_PORT_TYPE + + +|lights|nios_system:NiosII|altera_reset_controller:rst_controller|altera_reset_synchronizer:alt_rst_sync_uq1 +reset_in => altera_reset_synchronizer_int_chain_out.PRESET +reset_in => altera_reset_synchronizer_int_chain[0].PRESET +reset_in => altera_reset_synchronizer_int_chain[1].PRESET +clk => altera_reset_synchronizer_int_chain_out.CLK +clk => altera_reset_synchronizer_int_chain[0].CLK +clk => altera_reset_synchronizer_int_chain[1].CLK +reset_out <= altera_reset_synchronizer_int_chain_out.DB_MAX_OUTPUT_PORT_TYPE + + +|lights|nios_system:NiosII|nios_system_cmd_xbar_demux:cmd_xbar_demux +sink_valid[0] => src0_valid.IN0 +sink_valid[0] => src1_valid.IN0 +sink_data[0] => src1_data[0].DATAIN +sink_data[0] => src0_data[0].DATAIN +sink_data[1] => src1_data[1].DATAIN +sink_data[1] => src0_data[1].DATAIN +sink_data[2] => src1_data[2].DATAIN +sink_data[2] => src0_data[2].DATAIN +sink_data[3] => src1_data[3].DATAIN +sink_data[3] => src0_data[3].DATAIN +sink_data[4] => src1_data[4].DATAIN +sink_data[4] => src0_data[4].DATAIN +sink_data[5] => src1_data[5].DATAIN +sink_data[5] => src0_data[5].DATAIN +sink_data[6] => src1_data[6].DATAIN +sink_data[6] => src0_data[6].DATAIN +sink_data[7] => src1_data[7].DATAIN +sink_data[7] => src0_data[7].DATAIN +sink_data[8] => src1_data[8].DATAIN +sink_data[8] => src0_data[8].DATAIN +sink_data[9] => src1_data[9].DATAIN +sink_data[9] => src0_data[9].DATAIN +sink_data[10] => src1_data[10].DATAIN +sink_data[10] => src0_data[10].DATAIN +sink_data[11] => src1_data[11].DATAIN +sink_data[11] => src0_data[11].DATAIN +sink_data[12] => src1_data[12].DATAIN +sink_data[12] => src0_data[12].DATAIN +sink_data[13] => src1_data[13].DATAIN +sink_data[13] => src0_data[13].DATAIN +sink_data[14] => src1_data[14].DATAIN +sink_data[14] => src0_data[14].DATAIN +sink_data[15] => src1_data[15].DATAIN +sink_data[15] => src0_data[15].DATAIN +sink_data[16] => src1_data[16].DATAIN +sink_data[16] => src0_data[16].DATAIN +sink_data[17] => src1_data[17].DATAIN +sink_data[17] => src0_data[17].DATAIN +sink_data[18] => src1_data[18].DATAIN +sink_data[18] => src0_data[18].DATAIN +sink_data[19] => src1_data[19].DATAIN +sink_data[19] => src0_data[19].DATAIN +sink_data[20] => src1_data[20].DATAIN +sink_data[20] => src0_data[20].DATAIN +sink_data[21] => src1_data[21].DATAIN +sink_data[21] => src0_data[21].DATAIN +sink_data[22] => src1_data[22].DATAIN +sink_data[22] => src0_data[22].DATAIN +sink_data[23] => src1_data[23].DATAIN +sink_data[23] => src0_data[23].DATAIN +sink_data[24] => src1_data[24].DATAIN +sink_data[24] => src0_data[24].DATAIN +sink_data[25] => src1_data[25].DATAIN +sink_data[25] => src0_data[25].DATAIN +sink_data[26] => src1_data[26].DATAIN +sink_data[26] => src0_data[26].DATAIN +sink_data[27] => src1_data[27].DATAIN +sink_data[27] => src0_data[27].DATAIN +sink_data[28] => src1_data[28].DATAIN +sink_data[28] => src0_data[28].DATAIN +sink_data[29] => src1_data[29].DATAIN +sink_data[29] => src0_data[29].DATAIN +sink_data[30] => src1_data[30].DATAIN +sink_data[30] => src0_data[30].DATAIN +sink_data[31] => src1_data[31].DATAIN +sink_data[31] => src0_data[31].DATAIN +sink_data[32] => src1_data[32].DATAIN +sink_data[32] => src0_data[32].DATAIN +sink_data[33] => src1_data[33].DATAIN +sink_data[33] => src0_data[33].DATAIN +sink_data[34] => src1_data[34].DATAIN +sink_data[34] => src0_data[34].DATAIN +sink_data[35] => src1_data[35].DATAIN +sink_data[35] => src0_data[35].DATAIN +sink_data[36] => src1_data[36].DATAIN +sink_data[36] => src0_data[36].DATAIN +sink_data[37] => src1_data[37].DATAIN +sink_data[37] => src0_data[37].DATAIN +sink_data[38] => src1_data[38].DATAIN +sink_data[38] => src0_data[38].DATAIN +sink_data[39] => src1_data[39].DATAIN +sink_data[39] => src0_data[39].DATAIN +sink_data[40] => src1_data[40].DATAIN +sink_data[40] => src0_data[40].DATAIN +sink_data[41] => src1_data[41].DATAIN +sink_data[41] => src0_data[41].DATAIN +sink_data[42] => src1_data[42].DATAIN +sink_data[42] => src0_data[42].DATAIN +sink_data[43] => src1_data[43].DATAIN +sink_data[43] => src0_data[43].DATAIN +sink_data[44] => src1_data[44].DATAIN +sink_data[44] => src0_data[44].DATAIN +sink_data[45] => src1_data[45].DATAIN +sink_data[45] => src0_data[45].DATAIN +sink_data[46] => src1_data[46].DATAIN +sink_data[46] => src0_data[46].DATAIN +sink_data[47] => src1_data[47].DATAIN +sink_data[47] => src0_data[47].DATAIN +sink_data[48] => src1_data[48].DATAIN +sink_data[48] => src0_data[48].DATAIN +sink_data[49] => src1_data[49].DATAIN +sink_data[49] => src0_data[49].DATAIN +sink_data[50] => src1_data[50].DATAIN +sink_data[50] => src0_data[50].DATAIN +sink_data[51] => src1_data[51].DATAIN +sink_data[51] => src0_data[51].DATAIN +sink_data[52] => src1_data[52].DATAIN +sink_data[52] => src0_data[52].DATAIN +sink_data[53] => src1_data[53].DATAIN +sink_data[53] => src0_data[53].DATAIN +sink_data[54] => src1_data[54].DATAIN +sink_data[54] => src0_data[54].DATAIN +sink_data[55] => src1_data[55].DATAIN +sink_data[55] => src0_data[55].DATAIN +sink_data[56] => src1_data[56].DATAIN +sink_data[56] => src0_data[56].DATAIN +sink_data[57] => src1_data[57].DATAIN +sink_data[57] => src0_data[57].DATAIN +sink_data[58] => src1_data[58].DATAIN +sink_data[58] => src0_data[58].DATAIN +sink_data[59] => src1_data[59].DATAIN +sink_data[59] => src0_data[59].DATAIN +sink_data[60] => src1_data[60].DATAIN +sink_data[60] => src0_data[60].DATAIN +sink_data[61] => src1_data[61].DATAIN +sink_data[61] => src0_data[61].DATAIN +sink_data[62] => src1_data[62].DATAIN +sink_data[62] => src0_data[62].DATAIN +sink_data[63] => src1_data[63].DATAIN +sink_data[63] => src0_data[63].DATAIN +sink_data[64] => src1_data[64].DATAIN +sink_data[64] => src0_data[64].DATAIN +sink_data[65] => src1_data[65].DATAIN +sink_data[65] => src0_data[65].DATAIN +sink_data[66] => src1_data[66].DATAIN +sink_data[66] => src0_data[66].DATAIN +sink_data[67] => src1_data[67].DATAIN +sink_data[67] => src0_data[67].DATAIN +sink_data[68] => src1_data[68].DATAIN +sink_data[68] => src0_data[68].DATAIN +sink_data[69] => src1_data[69].DATAIN +sink_data[69] => src0_data[69].DATAIN +sink_data[70] => src1_data[70].DATAIN +sink_data[70] => src0_data[70].DATAIN +sink_data[71] => src1_data[71].DATAIN +sink_data[71] => src0_data[71].DATAIN +sink_data[72] => src1_data[72].DATAIN +sink_data[72] => src0_data[72].DATAIN +sink_data[73] => src1_data[73].DATAIN +sink_data[73] => src0_data[73].DATAIN +sink_data[74] => src1_data[74].DATAIN +sink_data[74] => src0_data[74].DATAIN +sink_data[75] => src1_data[75].DATAIN +sink_data[75] => src0_data[75].DATAIN +sink_data[76] => src1_data[76].DATAIN +sink_data[76] => src0_data[76].DATAIN +sink_data[77] => src1_data[77].DATAIN +sink_data[77] => src0_data[77].DATAIN +sink_data[78] => src1_data[78].DATAIN +sink_data[78] => src0_data[78].DATAIN +sink_data[79] => src1_data[79].DATAIN +sink_data[79] => src0_data[79].DATAIN +sink_data[80] => src1_data[80].DATAIN +sink_data[80] => src0_data[80].DATAIN +sink_data[81] => src1_data[81].DATAIN +sink_data[81] => src0_data[81].DATAIN +sink_data[82] => src1_data[82].DATAIN +sink_data[82] => src0_data[82].DATAIN +sink_data[83] => src1_data[83].DATAIN +sink_data[83] => src0_data[83].DATAIN +sink_data[84] => src1_data[84].DATAIN +sink_data[84] => src0_data[84].DATAIN +sink_data[85] => src1_data[85].DATAIN +sink_data[85] => src0_data[85].DATAIN +sink_data[86] => src1_data[86].DATAIN +sink_data[86] => src0_data[86].DATAIN +sink_data[87] => src1_data[87].DATAIN +sink_data[87] => src0_data[87].DATAIN +sink_data[88] => src1_data[88].DATAIN +sink_data[88] => src0_data[88].DATAIN +sink_data[89] => src1_data[89].DATAIN +sink_data[89] => src0_data[89].DATAIN +sink_data[90] => src1_data[90].DATAIN +sink_data[90] => src0_data[90].DATAIN +sink_data[91] => src1_data[91].DATAIN +sink_data[91] => src0_data[91].DATAIN +sink_data[92] => src1_data[92].DATAIN +sink_data[92] => src0_data[92].DATAIN +sink_data[93] => src1_data[93].DATAIN +sink_data[93] => src0_data[93].DATAIN +sink_data[94] => src1_data[94].DATAIN +sink_data[94] => src0_data[94].DATAIN +sink_data[95] => src1_data[95].DATAIN +sink_data[95] => src0_data[95].DATAIN +sink_channel[0] => src0_valid.IN1 +sink_channel[0] => sink_ready.IN0 +sink_channel[1] => src1_valid.IN1 +sink_channel[1] => sink_ready.IN0 +sink_channel[2] => src1_channel[0].DATAIN +sink_channel[2] => src0_channel[0].DATAIN +sink_channel[3] => src1_channel[1].DATAIN +sink_channel[3] => src0_channel[1].DATAIN +sink_channel[4] => src1_channel[2].DATAIN +sink_channel[4] => src0_channel[2].DATAIN +sink_channel[5] => src1_channel[3].DATAIN +sink_channel[5] => src0_channel[3].DATAIN +sink_channel[6] => src1_channel[4].DATAIN +sink_channel[6] => src0_channel[4].DATAIN +sink_channel[7] => src1_channel[5].DATAIN +sink_channel[7] => src0_channel[5].DATAIN +sink_channel[8] => src1_channel[6].DATAIN +sink_channel[8] => src0_channel[6].DATAIN +sink_channel[9] => src1_channel[7].DATAIN +sink_channel[9] => src0_channel[7].DATAIN +sink_channel[10] => src1_channel[8].DATAIN +sink_channel[10] => src0_channel[8].DATAIN +sink_channel[11] => src1_channel[9].DATAIN +sink_channel[11] => src0_channel[9].DATAIN +sink_channel[12] => src1_channel[10].DATAIN +sink_channel[12] => src0_channel[10].DATAIN +sink_channel[13] => src1_channel[11].DATAIN +sink_channel[13] => src0_channel[11].DATAIN +sink_channel[14] => src1_channel[12].DATAIN +sink_channel[14] => src0_channel[12].DATAIN +sink_channel[15] => src1_channel[13].DATAIN +sink_channel[15] => src0_channel[13].DATAIN +sink_channel[16] => src1_channel[14].DATAIN +sink_channel[16] => src0_channel[14].DATAIN +sink_channel[17] => src1_channel[15].DATAIN +sink_channel[17] => src0_channel[15].DATAIN +sink_startofpacket => src1_startofpacket.DATAIN +sink_startofpacket => src0_startofpacket.DATAIN +sink_endofpacket => src1_endofpacket.DATAIN +sink_endofpacket => src0_endofpacket.DATAIN +sink_ready <= WideOr0.DB_MAX_OUTPUT_PORT_TYPE +src0_valid <= src0_valid.DB_MAX_OUTPUT_PORT_TYPE +src0_data[0] <= sink_data[0].DB_MAX_OUTPUT_PORT_TYPE +src0_data[1] <= sink_data[1].DB_MAX_OUTPUT_PORT_TYPE +src0_data[2] <= sink_data[2].DB_MAX_OUTPUT_PORT_TYPE +src0_data[3] <= sink_data[3].DB_MAX_OUTPUT_PORT_TYPE +src0_data[4] <= sink_data[4].DB_MAX_OUTPUT_PORT_TYPE +src0_data[5] <= sink_data[5].DB_MAX_OUTPUT_PORT_TYPE +src0_data[6] <= sink_data[6].DB_MAX_OUTPUT_PORT_TYPE +src0_data[7] <= sink_data[7].DB_MAX_OUTPUT_PORT_TYPE +src0_data[8] <= sink_data[8].DB_MAX_OUTPUT_PORT_TYPE +src0_data[9] <= sink_data[9].DB_MAX_OUTPUT_PORT_TYPE +src0_data[10] <= sink_data[10].DB_MAX_OUTPUT_PORT_TYPE +src0_data[11] <= sink_data[11].DB_MAX_OUTPUT_PORT_TYPE +src0_data[12] <= sink_data[12].DB_MAX_OUTPUT_PORT_TYPE +src0_data[13] <= sink_data[13].DB_MAX_OUTPUT_PORT_TYPE +src0_data[14] <= sink_data[14].DB_MAX_OUTPUT_PORT_TYPE +src0_data[15] <= sink_data[15].DB_MAX_OUTPUT_PORT_TYPE +src0_data[16] <= sink_data[16].DB_MAX_OUTPUT_PORT_TYPE +src0_data[17] <= sink_data[17].DB_MAX_OUTPUT_PORT_TYPE +src0_data[18] <= sink_data[18].DB_MAX_OUTPUT_PORT_TYPE +src0_data[19] <= sink_data[19].DB_MAX_OUTPUT_PORT_TYPE +src0_data[20] <= sink_data[20].DB_MAX_OUTPUT_PORT_TYPE +src0_data[21] <= sink_data[21].DB_MAX_OUTPUT_PORT_TYPE +src0_data[22] <= sink_data[22].DB_MAX_OUTPUT_PORT_TYPE +src0_data[23] <= sink_data[23].DB_MAX_OUTPUT_PORT_TYPE +src0_data[24] <= sink_data[24].DB_MAX_OUTPUT_PORT_TYPE +src0_data[25] <= sink_data[25].DB_MAX_OUTPUT_PORT_TYPE +src0_data[26] <= sink_data[26].DB_MAX_OUTPUT_PORT_TYPE +src0_data[27] <= sink_data[27].DB_MAX_OUTPUT_PORT_TYPE +src0_data[28] <= sink_data[28].DB_MAX_OUTPUT_PORT_TYPE +src0_data[29] <= sink_data[29].DB_MAX_OUTPUT_PORT_TYPE +src0_data[30] <= sink_data[30].DB_MAX_OUTPUT_PORT_TYPE +src0_data[31] <= sink_data[31].DB_MAX_OUTPUT_PORT_TYPE +src0_data[32] <= sink_data[32].DB_MAX_OUTPUT_PORT_TYPE +src0_data[33] <= sink_data[33].DB_MAX_OUTPUT_PORT_TYPE +src0_data[34] <= sink_data[34].DB_MAX_OUTPUT_PORT_TYPE +src0_data[35] <= sink_data[35].DB_MAX_OUTPUT_PORT_TYPE +src0_data[36] <= sink_data[36].DB_MAX_OUTPUT_PORT_TYPE +src0_data[37] <= sink_data[37].DB_MAX_OUTPUT_PORT_TYPE +src0_data[38] <= sink_data[38].DB_MAX_OUTPUT_PORT_TYPE +src0_data[39] <= sink_data[39].DB_MAX_OUTPUT_PORT_TYPE +src0_data[40] <= sink_data[40].DB_MAX_OUTPUT_PORT_TYPE +src0_data[41] <= sink_data[41].DB_MAX_OUTPUT_PORT_TYPE +src0_data[42] <= sink_data[42].DB_MAX_OUTPUT_PORT_TYPE +src0_data[43] <= sink_data[43].DB_MAX_OUTPUT_PORT_TYPE +src0_data[44] <= sink_data[44].DB_MAX_OUTPUT_PORT_TYPE +src0_data[45] <= sink_data[45].DB_MAX_OUTPUT_PORT_TYPE +src0_data[46] <= sink_data[46].DB_MAX_OUTPUT_PORT_TYPE +src0_data[47] <= sink_data[47].DB_MAX_OUTPUT_PORT_TYPE +src0_data[48] <= sink_data[48].DB_MAX_OUTPUT_PORT_TYPE +src0_data[49] <= sink_data[49].DB_MAX_OUTPUT_PORT_TYPE +src0_data[50] <= sink_data[50].DB_MAX_OUTPUT_PORT_TYPE +src0_data[51] <= sink_data[51].DB_MAX_OUTPUT_PORT_TYPE +src0_data[52] <= sink_data[52].DB_MAX_OUTPUT_PORT_TYPE +src0_data[53] <= sink_data[53].DB_MAX_OUTPUT_PORT_TYPE +src0_data[54] <= sink_data[54].DB_MAX_OUTPUT_PORT_TYPE +src0_data[55] <= sink_data[55].DB_MAX_OUTPUT_PORT_TYPE +src0_data[56] <= sink_data[56].DB_MAX_OUTPUT_PORT_TYPE +src0_data[57] <= sink_data[57].DB_MAX_OUTPUT_PORT_TYPE +src0_data[58] <= sink_data[58].DB_MAX_OUTPUT_PORT_TYPE +src0_data[59] <= sink_data[59].DB_MAX_OUTPUT_PORT_TYPE +src0_data[60] <= sink_data[60].DB_MAX_OUTPUT_PORT_TYPE +src0_data[61] <= sink_data[61].DB_MAX_OUTPUT_PORT_TYPE +src0_data[62] <= sink_data[62].DB_MAX_OUTPUT_PORT_TYPE +src0_data[63] <= sink_data[63].DB_MAX_OUTPUT_PORT_TYPE +src0_data[64] <= sink_data[64].DB_MAX_OUTPUT_PORT_TYPE +src0_data[65] <= sink_data[65].DB_MAX_OUTPUT_PORT_TYPE +src0_data[66] <= sink_data[66].DB_MAX_OUTPUT_PORT_TYPE +src0_data[67] <= sink_data[67].DB_MAX_OUTPUT_PORT_TYPE +src0_data[68] <= sink_data[68].DB_MAX_OUTPUT_PORT_TYPE +src0_data[69] <= sink_data[69].DB_MAX_OUTPUT_PORT_TYPE +src0_data[70] <= sink_data[70].DB_MAX_OUTPUT_PORT_TYPE +src0_data[71] <= sink_data[71].DB_MAX_OUTPUT_PORT_TYPE +src0_data[72] <= sink_data[72].DB_MAX_OUTPUT_PORT_TYPE +src0_data[73] <= sink_data[73].DB_MAX_OUTPUT_PORT_TYPE +src0_data[74] <= sink_data[74].DB_MAX_OUTPUT_PORT_TYPE +src0_data[75] <= sink_data[75].DB_MAX_OUTPUT_PORT_TYPE +src0_data[76] <= sink_data[76].DB_MAX_OUTPUT_PORT_TYPE +src0_data[77] <= sink_data[77].DB_MAX_OUTPUT_PORT_TYPE +src0_data[78] <= sink_data[78].DB_MAX_OUTPUT_PORT_TYPE +src0_data[79] <= sink_data[79].DB_MAX_OUTPUT_PORT_TYPE +src0_data[80] <= sink_data[80].DB_MAX_OUTPUT_PORT_TYPE +src0_data[81] <= sink_data[81].DB_MAX_OUTPUT_PORT_TYPE +src0_data[82] <= sink_data[82].DB_MAX_OUTPUT_PORT_TYPE +src0_data[83] <= sink_data[83].DB_MAX_OUTPUT_PORT_TYPE +src0_data[84] <= sink_data[84].DB_MAX_OUTPUT_PORT_TYPE +src0_data[85] <= sink_data[85].DB_MAX_OUTPUT_PORT_TYPE +src0_data[86] <= sink_data[86].DB_MAX_OUTPUT_PORT_TYPE +src0_data[87] <= sink_data[87].DB_MAX_OUTPUT_PORT_TYPE +src0_data[88] <= sink_data[88].DB_MAX_OUTPUT_PORT_TYPE +src0_data[89] <= sink_data[89].DB_MAX_OUTPUT_PORT_TYPE +src0_data[90] <= sink_data[90].DB_MAX_OUTPUT_PORT_TYPE +src0_data[91] <= sink_data[91].DB_MAX_OUTPUT_PORT_TYPE +src0_data[92] <= sink_data[92].DB_MAX_OUTPUT_PORT_TYPE +src0_data[93] <= sink_data[93].DB_MAX_OUTPUT_PORT_TYPE +src0_data[94] <= sink_data[94].DB_MAX_OUTPUT_PORT_TYPE +src0_data[95] <= sink_data[95].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[0] <= sink_channel[2].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[1] <= sink_channel[3].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[2] <= sink_channel[4].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[3] <= sink_channel[5].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[4] <= sink_channel[6].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[5] <= sink_channel[7].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[6] <= sink_channel[8].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[7] <= sink_channel[9].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[8] <= sink_channel[10].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[9] <= sink_channel[11].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[10] <= sink_channel[12].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[11] <= sink_channel[13].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[12] <= sink_channel[14].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[13] <= sink_channel[15].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[14] <= sink_channel[16].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[15] <= sink_channel[17].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[16] <= +src0_channel[17] <= +src0_startofpacket <= sink_startofpacket.DB_MAX_OUTPUT_PORT_TYPE +src0_endofpacket <= sink_endofpacket.DB_MAX_OUTPUT_PORT_TYPE +src0_ready => sink_ready.IN1 +src1_valid <= src1_valid.DB_MAX_OUTPUT_PORT_TYPE +src1_data[0] <= sink_data[0].DB_MAX_OUTPUT_PORT_TYPE +src1_data[1] <= sink_data[1].DB_MAX_OUTPUT_PORT_TYPE +src1_data[2] <= sink_data[2].DB_MAX_OUTPUT_PORT_TYPE +src1_data[3] <= sink_data[3].DB_MAX_OUTPUT_PORT_TYPE +src1_data[4] <= sink_data[4].DB_MAX_OUTPUT_PORT_TYPE +src1_data[5] <= sink_data[5].DB_MAX_OUTPUT_PORT_TYPE +src1_data[6] <= sink_data[6].DB_MAX_OUTPUT_PORT_TYPE +src1_data[7] <= sink_data[7].DB_MAX_OUTPUT_PORT_TYPE +src1_data[8] <= sink_data[8].DB_MAX_OUTPUT_PORT_TYPE +src1_data[9] <= sink_data[9].DB_MAX_OUTPUT_PORT_TYPE +src1_data[10] <= sink_data[10].DB_MAX_OUTPUT_PORT_TYPE +src1_data[11] <= sink_data[11].DB_MAX_OUTPUT_PORT_TYPE +src1_data[12] <= sink_data[12].DB_MAX_OUTPUT_PORT_TYPE +src1_data[13] <= sink_data[13].DB_MAX_OUTPUT_PORT_TYPE +src1_data[14] <= sink_data[14].DB_MAX_OUTPUT_PORT_TYPE +src1_data[15] <= sink_data[15].DB_MAX_OUTPUT_PORT_TYPE +src1_data[16] <= sink_data[16].DB_MAX_OUTPUT_PORT_TYPE +src1_data[17] <= sink_data[17].DB_MAX_OUTPUT_PORT_TYPE +src1_data[18] <= sink_data[18].DB_MAX_OUTPUT_PORT_TYPE +src1_data[19] <= sink_data[19].DB_MAX_OUTPUT_PORT_TYPE +src1_data[20] <= sink_data[20].DB_MAX_OUTPUT_PORT_TYPE +src1_data[21] <= sink_data[21].DB_MAX_OUTPUT_PORT_TYPE +src1_data[22] <= sink_data[22].DB_MAX_OUTPUT_PORT_TYPE +src1_data[23] <= sink_data[23].DB_MAX_OUTPUT_PORT_TYPE +src1_data[24] <= sink_data[24].DB_MAX_OUTPUT_PORT_TYPE +src1_data[25] <= sink_data[25].DB_MAX_OUTPUT_PORT_TYPE +src1_data[26] <= sink_data[26].DB_MAX_OUTPUT_PORT_TYPE +src1_data[27] <= sink_data[27].DB_MAX_OUTPUT_PORT_TYPE +src1_data[28] <= sink_data[28].DB_MAX_OUTPUT_PORT_TYPE +src1_data[29] <= sink_data[29].DB_MAX_OUTPUT_PORT_TYPE +src1_data[30] <= sink_data[30].DB_MAX_OUTPUT_PORT_TYPE +src1_data[31] <= sink_data[31].DB_MAX_OUTPUT_PORT_TYPE +src1_data[32] <= sink_data[32].DB_MAX_OUTPUT_PORT_TYPE +src1_data[33] <= sink_data[33].DB_MAX_OUTPUT_PORT_TYPE +src1_data[34] <= sink_data[34].DB_MAX_OUTPUT_PORT_TYPE +src1_data[35] <= sink_data[35].DB_MAX_OUTPUT_PORT_TYPE +src1_data[36] <= sink_data[36].DB_MAX_OUTPUT_PORT_TYPE +src1_data[37] <= sink_data[37].DB_MAX_OUTPUT_PORT_TYPE +src1_data[38] <= sink_data[38].DB_MAX_OUTPUT_PORT_TYPE +src1_data[39] <= sink_data[39].DB_MAX_OUTPUT_PORT_TYPE +src1_data[40] <= sink_data[40].DB_MAX_OUTPUT_PORT_TYPE +src1_data[41] <= sink_data[41].DB_MAX_OUTPUT_PORT_TYPE +src1_data[42] <= sink_data[42].DB_MAX_OUTPUT_PORT_TYPE +src1_data[43] <= sink_data[43].DB_MAX_OUTPUT_PORT_TYPE +src1_data[44] <= sink_data[44].DB_MAX_OUTPUT_PORT_TYPE +src1_data[45] <= sink_data[45].DB_MAX_OUTPUT_PORT_TYPE +src1_data[46] <= sink_data[46].DB_MAX_OUTPUT_PORT_TYPE +src1_data[47] <= sink_data[47].DB_MAX_OUTPUT_PORT_TYPE +src1_data[48] <= sink_data[48].DB_MAX_OUTPUT_PORT_TYPE +src1_data[49] <= sink_data[49].DB_MAX_OUTPUT_PORT_TYPE +src1_data[50] <= sink_data[50].DB_MAX_OUTPUT_PORT_TYPE +src1_data[51] <= sink_data[51].DB_MAX_OUTPUT_PORT_TYPE +src1_data[52] <= sink_data[52].DB_MAX_OUTPUT_PORT_TYPE +src1_data[53] <= sink_data[53].DB_MAX_OUTPUT_PORT_TYPE +src1_data[54] <= sink_data[54].DB_MAX_OUTPUT_PORT_TYPE +src1_data[55] <= sink_data[55].DB_MAX_OUTPUT_PORT_TYPE +src1_data[56] <= sink_data[56].DB_MAX_OUTPUT_PORT_TYPE +src1_data[57] <= sink_data[57].DB_MAX_OUTPUT_PORT_TYPE +src1_data[58] <= sink_data[58].DB_MAX_OUTPUT_PORT_TYPE +src1_data[59] <= sink_data[59].DB_MAX_OUTPUT_PORT_TYPE +src1_data[60] <= sink_data[60].DB_MAX_OUTPUT_PORT_TYPE +src1_data[61] <= sink_data[61].DB_MAX_OUTPUT_PORT_TYPE +src1_data[62] <= sink_data[62].DB_MAX_OUTPUT_PORT_TYPE +src1_data[63] <= sink_data[63].DB_MAX_OUTPUT_PORT_TYPE +src1_data[64] <= sink_data[64].DB_MAX_OUTPUT_PORT_TYPE +src1_data[65] <= sink_data[65].DB_MAX_OUTPUT_PORT_TYPE +src1_data[66] <= sink_data[66].DB_MAX_OUTPUT_PORT_TYPE +src1_data[67] <= sink_data[67].DB_MAX_OUTPUT_PORT_TYPE +src1_data[68] <= sink_data[68].DB_MAX_OUTPUT_PORT_TYPE +src1_data[69] <= sink_data[69].DB_MAX_OUTPUT_PORT_TYPE +src1_data[70] <= sink_data[70].DB_MAX_OUTPUT_PORT_TYPE +src1_data[71] <= sink_data[71].DB_MAX_OUTPUT_PORT_TYPE +src1_data[72] <= sink_data[72].DB_MAX_OUTPUT_PORT_TYPE +src1_data[73] <= sink_data[73].DB_MAX_OUTPUT_PORT_TYPE +src1_data[74] <= sink_data[74].DB_MAX_OUTPUT_PORT_TYPE +src1_data[75] <= sink_data[75].DB_MAX_OUTPUT_PORT_TYPE +src1_data[76] <= sink_data[76].DB_MAX_OUTPUT_PORT_TYPE +src1_data[77] <= sink_data[77].DB_MAX_OUTPUT_PORT_TYPE +src1_data[78] <= sink_data[78].DB_MAX_OUTPUT_PORT_TYPE +src1_data[79] <= sink_data[79].DB_MAX_OUTPUT_PORT_TYPE +src1_data[80] <= sink_data[80].DB_MAX_OUTPUT_PORT_TYPE +src1_data[81] <= sink_data[81].DB_MAX_OUTPUT_PORT_TYPE +src1_data[82] <= sink_data[82].DB_MAX_OUTPUT_PORT_TYPE +src1_data[83] <= sink_data[83].DB_MAX_OUTPUT_PORT_TYPE +src1_data[84] <= sink_data[84].DB_MAX_OUTPUT_PORT_TYPE +src1_data[85] <= sink_data[85].DB_MAX_OUTPUT_PORT_TYPE +src1_data[86] <= sink_data[86].DB_MAX_OUTPUT_PORT_TYPE +src1_data[87] <= sink_data[87].DB_MAX_OUTPUT_PORT_TYPE +src1_data[88] <= sink_data[88].DB_MAX_OUTPUT_PORT_TYPE +src1_data[89] <= sink_data[89].DB_MAX_OUTPUT_PORT_TYPE +src1_data[90] <= sink_data[90].DB_MAX_OUTPUT_PORT_TYPE +src1_data[91] <= sink_data[91].DB_MAX_OUTPUT_PORT_TYPE +src1_data[92] <= sink_data[92].DB_MAX_OUTPUT_PORT_TYPE +src1_data[93] <= sink_data[93].DB_MAX_OUTPUT_PORT_TYPE +src1_data[94] <= sink_data[94].DB_MAX_OUTPUT_PORT_TYPE +src1_data[95] <= sink_data[95].DB_MAX_OUTPUT_PORT_TYPE +src1_channel[0] <= sink_channel[2].DB_MAX_OUTPUT_PORT_TYPE +src1_channel[1] <= sink_channel[3].DB_MAX_OUTPUT_PORT_TYPE +src1_channel[2] <= sink_channel[4].DB_MAX_OUTPUT_PORT_TYPE +src1_channel[3] <= sink_channel[5].DB_MAX_OUTPUT_PORT_TYPE +src1_channel[4] <= sink_channel[6].DB_MAX_OUTPUT_PORT_TYPE +src1_channel[5] <= sink_channel[7].DB_MAX_OUTPUT_PORT_TYPE +src1_channel[6] <= sink_channel[8].DB_MAX_OUTPUT_PORT_TYPE +src1_channel[7] <= sink_channel[9].DB_MAX_OUTPUT_PORT_TYPE +src1_channel[8] <= sink_channel[10].DB_MAX_OUTPUT_PORT_TYPE +src1_channel[9] <= sink_channel[11].DB_MAX_OUTPUT_PORT_TYPE +src1_channel[10] <= sink_channel[12].DB_MAX_OUTPUT_PORT_TYPE +src1_channel[11] <= sink_channel[13].DB_MAX_OUTPUT_PORT_TYPE +src1_channel[12] <= sink_channel[14].DB_MAX_OUTPUT_PORT_TYPE +src1_channel[13] <= sink_channel[15].DB_MAX_OUTPUT_PORT_TYPE +src1_channel[14] <= sink_channel[16].DB_MAX_OUTPUT_PORT_TYPE +src1_channel[15] <= sink_channel[17].DB_MAX_OUTPUT_PORT_TYPE +src1_channel[16] <= +src1_channel[17] <= +src1_startofpacket <= sink_startofpacket.DB_MAX_OUTPUT_PORT_TYPE +src1_endofpacket <= sink_endofpacket.DB_MAX_OUTPUT_PORT_TYPE +src1_ready => sink_ready.IN1 +clk => ~NO_FANOUT~ +reset => ~NO_FANOUT~ + + +|lights|nios_system:NiosII|nios_system_cmd_xbar_demux_001:cmd_xbar_demux_001 +sink_valid[0] => src0_valid.IN0 +sink_valid[0] => src1_valid.IN0 +sink_valid[0] => src2_valid.IN0 +sink_valid[0] => src3_valid.IN0 +sink_valid[0] => src4_valid.IN0 +sink_valid[0] => src5_valid.IN0 +sink_valid[0] => src6_valid.IN0 +sink_valid[0] => src7_valid.IN0 +sink_valid[0] => src8_valid.IN0 +sink_valid[0] => src9_valid.IN0 +sink_valid[0] => src10_valid.IN0 +sink_valid[0] => src11_valid.IN0 +sink_valid[0] => src12_valid.IN0 +sink_valid[0] => src13_valid.IN0 +sink_valid[0] => src14_valid.IN0 +sink_valid[0] => src15_valid.IN0 +sink_valid[0] => src16_valid.IN0 +sink_valid[0] => src17_valid.IN0 +sink_data[0] => src17_data[0].DATAIN +sink_data[0] => src0_data[0].DATAIN +sink_data[0] => src1_data[0].DATAIN +sink_data[0] => src2_data[0].DATAIN +sink_data[0] => src3_data[0].DATAIN +sink_data[0] => src4_data[0].DATAIN +sink_data[0] => src5_data[0].DATAIN +sink_data[0] => src6_data[0].DATAIN +sink_data[0] => src7_data[0].DATAIN +sink_data[0] => src8_data[0].DATAIN +sink_data[0] => src9_data[0].DATAIN +sink_data[0] => src10_data[0].DATAIN +sink_data[0] => src11_data[0].DATAIN +sink_data[0] => src12_data[0].DATAIN +sink_data[0] => src13_data[0].DATAIN +sink_data[0] => src14_data[0].DATAIN +sink_data[0] => src15_data[0].DATAIN +sink_data[0] => src16_data[0].DATAIN +sink_data[1] => src17_data[1].DATAIN +sink_data[1] => src0_data[1].DATAIN +sink_data[1] => src1_data[1].DATAIN +sink_data[1] => src2_data[1].DATAIN +sink_data[1] => src3_data[1].DATAIN +sink_data[1] => src4_data[1].DATAIN +sink_data[1] => src5_data[1].DATAIN +sink_data[1] => src6_data[1].DATAIN +sink_data[1] => src7_data[1].DATAIN +sink_data[1] => src8_data[1].DATAIN +sink_data[1] => src9_data[1].DATAIN +sink_data[1] => src10_data[1].DATAIN +sink_data[1] => src11_data[1].DATAIN +sink_data[1] => src12_data[1].DATAIN +sink_data[1] => src13_data[1].DATAIN +sink_data[1] => src14_data[1].DATAIN +sink_data[1] => src15_data[1].DATAIN +sink_data[1] => src16_data[1].DATAIN +sink_data[2] => src17_data[2].DATAIN +sink_data[2] => src0_data[2].DATAIN +sink_data[2] => src1_data[2].DATAIN +sink_data[2] => src2_data[2].DATAIN +sink_data[2] => src3_data[2].DATAIN +sink_data[2] => src4_data[2].DATAIN +sink_data[2] => src5_data[2].DATAIN +sink_data[2] => src6_data[2].DATAIN +sink_data[2] => src7_data[2].DATAIN +sink_data[2] => src8_data[2].DATAIN +sink_data[2] => src9_data[2].DATAIN +sink_data[2] => src10_data[2].DATAIN +sink_data[2] => src11_data[2].DATAIN +sink_data[2] => src12_data[2].DATAIN +sink_data[2] => src13_data[2].DATAIN +sink_data[2] => src14_data[2].DATAIN +sink_data[2] => src15_data[2].DATAIN +sink_data[2] => src16_data[2].DATAIN +sink_data[3] => src17_data[3].DATAIN +sink_data[3] => src0_data[3].DATAIN +sink_data[3] => src1_data[3].DATAIN +sink_data[3] => src2_data[3].DATAIN +sink_data[3] => src3_data[3].DATAIN +sink_data[3] => src4_data[3].DATAIN +sink_data[3] => src5_data[3].DATAIN +sink_data[3] => src6_data[3].DATAIN +sink_data[3] => src7_data[3].DATAIN +sink_data[3] => src8_data[3].DATAIN +sink_data[3] => src9_data[3].DATAIN +sink_data[3] => src10_data[3].DATAIN +sink_data[3] => src11_data[3].DATAIN +sink_data[3] => src12_data[3].DATAIN +sink_data[3] => src13_data[3].DATAIN +sink_data[3] => src14_data[3].DATAIN +sink_data[3] => src15_data[3].DATAIN +sink_data[3] => src16_data[3].DATAIN +sink_data[4] => src17_data[4].DATAIN +sink_data[4] => src0_data[4].DATAIN +sink_data[4] => src1_data[4].DATAIN +sink_data[4] => src2_data[4].DATAIN +sink_data[4] => src3_data[4].DATAIN +sink_data[4] => src4_data[4].DATAIN +sink_data[4] => src5_data[4].DATAIN +sink_data[4] => src6_data[4].DATAIN +sink_data[4] => src7_data[4].DATAIN +sink_data[4] => src8_data[4].DATAIN +sink_data[4] => src9_data[4].DATAIN +sink_data[4] => src10_data[4].DATAIN +sink_data[4] => src11_data[4].DATAIN +sink_data[4] => src12_data[4].DATAIN +sink_data[4] => src13_data[4].DATAIN +sink_data[4] => src14_data[4].DATAIN +sink_data[4] => src15_data[4].DATAIN +sink_data[4] => src16_data[4].DATAIN +sink_data[5] => src17_data[5].DATAIN +sink_data[5] => src0_data[5].DATAIN +sink_data[5] => src1_data[5].DATAIN +sink_data[5] => src2_data[5].DATAIN +sink_data[5] => src3_data[5].DATAIN +sink_data[5] => src4_data[5].DATAIN +sink_data[5] => src5_data[5].DATAIN +sink_data[5] => src6_data[5].DATAIN +sink_data[5] => src7_data[5].DATAIN +sink_data[5] => src8_data[5].DATAIN +sink_data[5] => src9_data[5].DATAIN +sink_data[5] => src10_data[5].DATAIN +sink_data[5] => src11_data[5].DATAIN +sink_data[5] => src12_data[5].DATAIN +sink_data[5] => src13_data[5].DATAIN +sink_data[5] => src14_data[5].DATAIN +sink_data[5] => src15_data[5].DATAIN +sink_data[5] => src16_data[5].DATAIN +sink_data[6] => src17_data[6].DATAIN +sink_data[6] => src0_data[6].DATAIN +sink_data[6] => src1_data[6].DATAIN +sink_data[6] => src2_data[6].DATAIN +sink_data[6] => src3_data[6].DATAIN +sink_data[6] => src4_data[6].DATAIN +sink_data[6] => src5_data[6].DATAIN +sink_data[6] => src6_data[6].DATAIN +sink_data[6] => src7_data[6].DATAIN +sink_data[6] => src8_data[6].DATAIN +sink_data[6] => src9_data[6].DATAIN +sink_data[6] => src10_data[6].DATAIN +sink_data[6] => src11_data[6].DATAIN +sink_data[6] => src12_data[6].DATAIN +sink_data[6] => src13_data[6].DATAIN +sink_data[6] => src14_data[6].DATAIN +sink_data[6] => src15_data[6].DATAIN +sink_data[6] => src16_data[6].DATAIN +sink_data[7] => src17_data[7].DATAIN +sink_data[7] => src0_data[7].DATAIN +sink_data[7] => src1_data[7].DATAIN +sink_data[7] => src2_data[7].DATAIN +sink_data[7] => src3_data[7].DATAIN +sink_data[7] => src4_data[7].DATAIN +sink_data[7] => src5_data[7].DATAIN +sink_data[7] => src6_data[7].DATAIN +sink_data[7] => src7_data[7].DATAIN +sink_data[7] => src8_data[7].DATAIN +sink_data[7] => src9_data[7].DATAIN +sink_data[7] => src10_data[7].DATAIN +sink_data[7] => src11_data[7].DATAIN +sink_data[7] => src12_data[7].DATAIN +sink_data[7] => src13_data[7].DATAIN +sink_data[7] => src14_data[7].DATAIN +sink_data[7] => src15_data[7].DATAIN +sink_data[7] => src16_data[7].DATAIN +sink_data[8] => src17_data[8].DATAIN +sink_data[8] => src0_data[8].DATAIN +sink_data[8] => src1_data[8].DATAIN +sink_data[8] => src2_data[8].DATAIN +sink_data[8] => src3_data[8].DATAIN +sink_data[8] => src4_data[8].DATAIN +sink_data[8] => src5_data[8].DATAIN +sink_data[8] => src6_data[8].DATAIN +sink_data[8] => src7_data[8].DATAIN +sink_data[8] => src8_data[8].DATAIN +sink_data[8] => src9_data[8].DATAIN +sink_data[8] => src10_data[8].DATAIN +sink_data[8] => src11_data[8].DATAIN +sink_data[8] => src12_data[8].DATAIN +sink_data[8] => src13_data[8].DATAIN +sink_data[8] => src14_data[8].DATAIN +sink_data[8] => src15_data[8].DATAIN +sink_data[8] => src16_data[8].DATAIN +sink_data[9] => src17_data[9].DATAIN +sink_data[9] => src0_data[9].DATAIN +sink_data[9] => src1_data[9].DATAIN +sink_data[9] => src2_data[9].DATAIN +sink_data[9] => src3_data[9].DATAIN +sink_data[9] => src4_data[9].DATAIN +sink_data[9] => src5_data[9].DATAIN +sink_data[9] => src6_data[9].DATAIN +sink_data[9] => src7_data[9].DATAIN +sink_data[9] => src8_data[9].DATAIN +sink_data[9] => src9_data[9].DATAIN +sink_data[9] => src10_data[9].DATAIN +sink_data[9] => src11_data[9].DATAIN +sink_data[9] => src12_data[9].DATAIN +sink_data[9] => src13_data[9].DATAIN +sink_data[9] => src14_data[9].DATAIN +sink_data[9] => src15_data[9].DATAIN +sink_data[9] => src16_data[9].DATAIN +sink_data[10] => src17_data[10].DATAIN +sink_data[10] => src0_data[10].DATAIN +sink_data[10] => src1_data[10].DATAIN +sink_data[10] => src2_data[10].DATAIN +sink_data[10] => src3_data[10].DATAIN +sink_data[10] => src4_data[10].DATAIN +sink_data[10] => src5_data[10].DATAIN +sink_data[10] => src6_data[10].DATAIN +sink_data[10] => src7_data[10].DATAIN +sink_data[10] => src8_data[10].DATAIN +sink_data[10] => src9_data[10].DATAIN +sink_data[10] => src10_data[10].DATAIN +sink_data[10] => src11_data[10].DATAIN +sink_data[10] => src12_data[10].DATAIN +sink_data[10] => src13_data[10].DATAIN +sink_data[10] => src14_data[10].DATAIN +sink_data[10] => src15_data[10].DATAIN +sink_data[10] => src16_data[10].DATAIN +sink_data[11] => src17_data[11].DATAIN +sink_data[11] => src0_data[11].DATAIN +sink_data[11] => src1_data[11].DATAIN +sink_data[11] => src2_data[11].DATAIN +sink_data[11] => src3_data[11].DATAIN +sink_data[11] => src4_data[11].DATAIN +sink_data[11] => src5_data[11].DATAIN +sink_data[11] => src6_data[11].DATAIN +sink_data[11] => src7_data[11].DATAIN +sink_data[11] => src8_data[11].DATAIN +sink_data[11] => src9_data[11].DATAIN +sink_data[11] => src10_data[11].DATAIN +sink_data[11] => src11_data[11].DATAIN +sink_data[11] => src12_data[11].DATAIN +sink_data[11] => src13_data[11].DATAIN +sink_data[11] => src14_data[11].DATAIN +sink_data[11] => src15_data[11].DATAIN +sink_data[11] => src16_data[11].DATAIN +sink_data[12] => src17_data[12].DATAIN +sink_data[12] => src0_data[12].DATAIN +sink_data[12] => src1_data[12].DATAIN +sink_data[12] => src2_data[12].DATAIN +sink_data[12] => src3_data[12].DATAIN +sink_data[12] => src4_data[12].DATAIN +sink_data[12] => src5_data[12].DATAIN +sink_data[12] => src6_data[12].DATAIN +sink_data[12] => src7_data[12].DATAIN +sink_data[12] => src8_data[12].DATAIN +sink_data[12] => src9_data[12].DATAIN +sink_data[12] => src10_data[12].DATAIN +sink_data[12] => src11_data[12].DATAIN +sink_data[12] => src12_data[12].DATAIN +sink_data[12] => src13_data[12].DATAIN +sink_data[12] => src14_data[12].DATAIN +sink_data[12] => src15_data[12].DATAIN +sink_data[12] => src16_data[12].DATAIN +sink_data[13] => src17_data[13].DATAIN +sink_data[13] => src0_data[13].DATAIN +sink_data[13] => src1_data[13].DATAIN +sink_data[13] => src2_data[13].DATAIN +sink_data[13] => src3_data[13].DATAIN +sink_data[13] => src4_data[13].DATAIN +sink_data[13] => src5_data[13].DATAIN +sink_data[13] => src6_data[13].DATAIN +sink_data[13] => src7_data[13].DATAIN +sink_data[13] => src8_data[13].DATAIN +sink_data[13] => src9_data[13].DATAIN +sink_data[13] => src10_data[13].DATAIN +sink_data[13] => src11_data[13].DATAIN +sink_data[13] => src12_data[13].DATAIN +sink_data[13] => src13_data[13].DATAIN +sink_data[13] => src14_data[13].DATAIN +sink_data[13] => src15_data[13].DATAIN +sink_data[13] => src16_data[13].DATAIN +sink_data[14] => src17_data[14].DATAIN +sink_data[14] => src0_data[14].DATAIN +sink_data[14] => src1_data[14].DATAIN +sink_data[14] => src2_data[14].DATAIN +sink_data[14] => src3_data[14].DATAIN +sink_data[14] => src4_data[14].DATAIN +sink_data[14] => src5_data[14].DATAIN +sink_data[14] => src6_data[14].DATAIN +sink_data[14] => src7_data[14].DATAIN +sink_data[14] => src8_data[14].DATAIN +sink_data[14] => src9_data[14].DATAIN +sink_data[14] => src10_data[14].DATAIN +sink_data[14] => src11_data[14].DATAIN +sink_data[14] => src12_data[14].DATAIN +sink_data[14] => src13_data[14].DATAIN +sink_data[14] => src14_data[14].DATAIN +sink_data[14] => src15_data[14].DATAIN +sink_data[14] => src16_data[14].DATAIN +sink_data[15] => src17_data[15].DATAIN +sink_data[15] => src0_data[15].DATAIN +sink_data[15] => src1_data[15].DATAIN +sink_data[15] => src2_data[15].DATAIN +sink_data[15] => src3_data[15].DATAIN +sink_data[15] => src4_data[15].DATAIN +sink_data[15] => src5_data[15].DATAIN +sink_data[15] => src6_data[15].DATAIN +sink_data[15] => src7_data[15].DATAIN +sink_data[15] => src8_data[15].DATAIN +sink_data[15] => src9_data[15].DATAIN +sink_data[15] => src10_data[15].DATAIN +sink_data[15] => src11_data[15].DATAIN +sink_data[15] => src12_data[15].DATAIN +sink_data[15] => src13_data[15].DATAIN +sink_data[15] => src14_data[15].DATAIN +sink_data[15] => src15_data[15].DATAIN +sink_data[15] => src16_data[15].DATAIN +sink_data[16] => src17_data[16].DATAIN +sink_data[16] => src0_data[16].DATAIN +sink_data[16] => src1_data[16].DATAIN +sink_data[16] => src2_data[16].DATAIN +sink_data[16] => src3_data[16].DATAIN +sink_data[16] => src4_data[16].DATAIN +sink_data[16] => src5_data[16].DATAIN +sink_data[16] => src6_data[16].DATAIN +sink_data[16] => src7_data[16].DATAIN +sink_data[16] => src8_data[16].DATAIN +sink_data[16] => src9_data[16].DATAIN +sink_data[16] => src10_data[16].DATAIN +sink_data[16] => src11_data[16].DATAIN +sink_data[16] => src12_data[16].DATAIN +sink_data[16] => src13_data[16].DATAIN +sink_data[16] => src14_data[16].DATAIN +sink_data[16] => src15_data[16].DATAIN +sink_data[16] => src16_data[16].DATAIN +sink_data[17] => src17_data[17].DATAIN +sink_data[17] => src0_data[17].DATAIN +sink_data[17] => src1_data[17].DATAIN +sink_data[17] => src2_data[17].DATAIN +sink_data[17] => src3_data[17].DATAIN +sink_data[17] => src4_data[17].DATAIN +sink_data[17] => src5_data[17].DATAIN +sink_data[17] => src6_data[17].DATAIN +sink_data[17] => src7_data[17].DATAIN +sink_data[17] => src8_data[17].DATAIN +sink_data[17] => src9_data[17].DATAIN +sink_data[17] => src10_data[17].DATAIN +sink_data[17] => src11_data[17].DATAIN +sink_data[17] => src12_data[17].DATAIN +sink_data[17] => src13_data[17].DATAIN +sink_data[17] => src14_data[17].DATAIN +sink_data[17] => src15_data[17].DATAIN +sink_data[17] => src16_data[17].DATAIN +sink_data[18] => src17_data[18].DATAIN +sink_data[18] => src0_data[18].DATAIN +sink_data[18] => src1_data[18].DATAIN +sink_data[18] => src2_data[18].DATAIN +sink_data[18] => src3_data[18].DATAIN +sink_data[18] => src4_data[18].DATAIN +sink_data[18] => src5_data[18].DATAIN +sink_data[18] => src6_data[18].DATAIN +sink_data[18] => src7_data[18].DATAIN +sink_data[18] => src8_data[18].DATAIN +sink_data[18] => src9_data[18].DATAIN +sink_data[18] => src10_data[18].DATAIN +sink_data[18] => src11_data[18].DATAIN +sink_data[18] => src12_data[18].DATAIN +sink_data[18] => src13_data[18].DATAIN +sink_data[18] => src14_data[18].DATAIN +sink_data[18] => src15_data[18].DATAIN +sink_data[18] => src16_data[18].DATAIN +sink_data[19] => src17_data[19].DATAIN +sink_data[19] => src0_data[19].DATAIN +sink_data[19] => src1_data[19].DATAIN +sink_data[19] => src2_data[19].DATAIN +sink_data[19] => src3_data[19].DATAIN +sink_data[19] => src4_data[19].DATAIN +sink_data[19] => src5_data[19].DATAIN +sink_data[19] => src6_data[19].DATAIN +sink_data[19] => src7_data[19].DATAIN +sink_data[19] => src8_data[19].DATAIN +sink_data[19] => src9_data[19].DATAIN +sink_data[19] => src10_data[19].DATAIN +sink_data[19] => src11_data[19].DATAIN +sink_data[19] => src12_data[19].DATAIN +sink_data[19] => src13_data[19].DATAIN +sink_data[19] => src14_data[19].DATAIN +sink_data[19] => src15_data[19].DATAIN +sink_data[19] => src16_data[19].DATAIN +sink_data[20] => src17_data[20].DATAIN +sink_data[20] => src0_data[20].DATAIN +sink_data[20] => src1_data[20].DATAIN +sink_data[20] => src2_data[20].DATAIN +sink_data[20] => src3_data[20].DATAIN +sink_data[20] => src4_data[20].DATAIN +sink_data[20] => src5_data[20].DATAIN +sink_data[20] => src6_data[20].DATAIN +sink_data[20] => src7_data[20].DATAIN +sink_data[20] => src8_data[20].DATAIN +sink_data[20] => src9_data[20].DATAIN +sink_data[20] => src10_data[20].DATAIN +sink_data[20] => src11_data[20].DATAIN +sink_data[20] => src12_data[20].DATAIN +sink_data[20] => src13_data[20].DATAIN +sink_data[20] => src14_data[20].DATAIN +sink_data[20] => src15_data[20].DATAIN +sink_data[20] => src16_data[20].DATAIN +sink_data[21] => src17_data[21].DATAIN +sink_data[21] => src0_data[21].DATAIN +sink_data[21] => src1_data[21].DATAIN +sink_data[21] => src2_data[21].DATAIN +sink_data[21] => src3_data[21].DATAIN +sink_data[21] => src4_data[21].DATAIN +sink_data[21] => src5_data[21].DATAIN +sink_data[21] => src6_data[21].DATAIN +sink_data[21] => src7_data[21].DATAIN +sink_data[21] => src8_data[21].DATAIN +sink_data[21] => src9_data[21].DATAIN +sink_data[21] => src10_data[21].DATAIN +sink_data[21] => src11_data[21].DATAIN +sink_data[21] => src12_data[21].DATAIN +sink_data[21] => src13_data[21].DATAIN +sink_data[21] => src14_data[21].DATAIN +sink_data[21] => src15_data[21].DATAIN +sink_data[21] => src16_data[21].DATAIN +sink_data[22] => src17_data[22].DATAIN +sink_data[22] => src0_data[22].DATAIN +sink_data[22] => src1_data[22].DATAIN +sink_data[22] => src2_data[22].DATAIN +sink_data[22] => src3_data[22].DATAIN +sink_data[22] => src4_data[22].DATAIN +sink_data[22] => src5_data[22].DATAIN +sink_data[22] => src6_data[22].DATAIN +sink_data[22] => src7_data[22].DATAIN +sink_data[22] => src8_data[22].DATAIN +sink_data[22] => src9_data[22].DATAIN +sink_data[22] => src10_data[22].DATAIN +sink_data[22] => src11_data[22].DATAIN +sink_data[22] => src12_data[22].DATAIN +sink_data[22] => src13_data[22].DATAIN +sink_data[22] => src14_data[22].DATAIN +sink_data[22] => src15_data[22].DATAIN +sink_data[22] => src16_data[22].DATAIN +sink_data[23] => src17_data[23].DATAIN +sink_data[23] => src0_data[23].DATAIN +sink_data[23] => src1_data[23].DATAIN +sink_data[23] => src2_data[23].DATAIN +sink_data[23] => src3_data[23].DATAIN +sink_data[23] => src4_data[23].DATAIN +sink_data[23] => src5_data[23].DATAIN +sink_data[23] => src6_data[23].DATAIN +sink_data[23] => src7_data[23].DATAIN +sink_data[23] => src8_data[23].DATAIN +sink_data[23] => src9_data[23].DATAIN +sink_data[23] => src10_data[23].DATAIN +sink_data[23] => src11_data[23].DATAIN +sink_data[23] => src12_data[23].DATAIN +sink_data[23] => src13_data[23].DATAIN +sink_data[23] => src14_data[23].DATAIN +sink_data[23] => src15_data[23].DATAIN +sink_data[23] => src16_data[23].DATAIN +sink_data[24] => src17_data[24].DATAIN +sink_data[24] => src0_data[24].DATAIN +sink_data[24] => src1_data[24].DATAIN +sink_data[24] => src2_data[24].DATAIN +sink_data[24] => src3_data[24].DATAIN +sink_data[24] => src4_data[24].DATAIN +sink_data[24] => src5_data[24].DATAIN +sink_data[24] => src6_data[24].DATAIN +sink_data[24] => src7_data[24].DATAIN +sink_data[24] => src8_data[24].DATAIN +sink_data[24] => src9_data[24].DATAIN +sink_data[24] => src10_data[24].DATAIN +sink_data[24] => src11_data[24].DATAIN +sink_data[24] => src12_data[24].DATAIN +sink_data[24] => src13_data[24].DATAIN +sink_data[24] => src14_data[24].DATAIN +sink_data[24] => src15_data[24].DATAIN +sink_data[24] => src16_data[24].DATAIN +sink_data[25] => src17_data[25].DATAIN +sink_data[25] => src0_data[25].DATAIN +sink_data[25] => src1_data[25].DATAIN +sink_data[25] => src2_data[25].DATAIN +sink_data[25] => src3_data[25].DATAIN +sink_data[25] => src4_data[25].DATAIN +sink_data[25] => src5_data[25].DATAIN +sink_data[25] => src6_data[25].DATAIN +sink_data[25] => src7_data[25].DATAIN +sink_data[25] => src8_data[25].DATAIN +sink_data[25] => src9_data[25].DATAIN +sink_data[25] => src10_data[25].DATAIN +sink_data[25] => src11_data[25].DATAIN +sink_data[25] => src12_data[25].DATAIN +sink_data[25] => src13_data[25].DATAIN +sink_data[25] => src14_data[25].DATAIN +sink_data[25] => src15_data[25].DATAIN +sink_data[25] => src16_data[25].DATAIN +sink_data[26] => src17_data[26].DATAIN +sink_data[26] => src0_data[26].DATAIN +sink_data[26] => src1_data[26].DATAIN +sink_data[26] => src2_data[26].DATAIN +sink_data[26] => src3_data[26].DATAIN +sink_data[26] => src4_data[26].DATAIN +sink_data[26] => src5_data[26].DATAIN +sink_data[26] => src6_data[26].DATAIN +sink_data[26] => src7_data[26].DATAIN +sink_data[26] => src8_data[26].DATAIN +sink_data[26] => src9_data[26].DATAIN +sink_data[26] => src10_data[26].DATAIN +sink_data[26] => src11_data[26].DATAIN +sink_data[26] => src12_data[26].DATAIN +sink_data[26] => src13_data[26].DATAIN +sink_data[26] => src14_data[26].DATAIN +sink_data[26] => src15_data[26].DATAIN +sink_data[26] => src16_data[26].DATAIN +sink_data[27] => src17_data[27].DATAIN +sink_data[27] => src0_data[27].DATAIN +sink_data[27] => src1_data[27].DATAIN +sink_data[27] => src2_data[27].DATAIN +sink_data[27] => src3_data[27].DATAIN +sink_data[27] => src4_data[27].DATAIN +sink_data[27] => src5_data[27].DATAIN +sink_data[27] => src6_data[27].DATAIN +sink_data[27] => src7_data[27].DATAIN +sink_data[27] => src8_data[27].DATAIN +sink_data[27] => src9_data[27].DATAIN +sink_data[27] => src10_data[27].DATAIN +sink_data[27] => src11_data[27].DATAIN +sink_data[27] => src12_data[27].DATAIN +sink_data[27] => src13_data[27].DATAIN +sink_data[27] => src14_data[27].DATAIN +sink_data[27] => src15_data[27].DATAIN +sink_data[27] => src16_data[27].DATAIN +sink_data[28] => src17_data[28].DATAIN +sink_data[28] => src0_data[28].DATAIN +sink_data[28] => src1_data[28].DATAIN +sink_data[28] => src2_data[28].DATAIN +sink_data[28] => src3_data[28].DATAIN +sink_data[28] => src4_data[28].DATAIN +sink_data[28] => src5_data[28].DATAIN +sink_data[28] => src6_data[28].DATAIN +sink_data[28] => src7_data[28].DATAIN +sink_data[28] => src8_data[28].DATAIN +sink_data[28] => src9_data[28].DATAIN +sink_data[28] => src10_data[28].DATAIN +sink_data[28] => src11_data[28].DATAIN +sink_data[28] => src12_data[28].DATAIN +sink_data[28] => src13_data[28].DATAIN +sink_data[28] => src14_data[28].DATAIN +sink_data[28] => src15_data[28].DATAIN +sink_data[28] => src16_data[28].DATAIN +sink_data[29] => src17_data[29].DATAIN +sink_data[29] => src0_data[29].DATAIN +sink_data[29] => src1_data[29].DATAIN +sink_data[29] => src2_data[29].DATAIN +sink_data[29] => src3_data[29].DATAIN +sink_data[29] => src4_data[29].DATAIN +sink_data[29] => src5_data[29].DATAIN +sink_data[29] => src6_data[29].DATAIN +sink_data[29] => src7_data[29].DATAIN +sink_data[29] => src8_data[29].DATAIN +sink_data[29] => src9_data[29].DATAIN +sink_data[29] => src10_data[29].DATAIN +sink_data[29] => src11_data[29].DATAIN +sink_data[29] => src12_data[29].DATAIN +sink_data[29] => src13_data[29].DATAIN +sink_data[29] => src14_data[29].DATAIN +sink_data[29] => src15_data[29].DATAIN +sink_data[29] => src16_data[29].DATAIN +sink_data[30] => src17_data[30].DATAIN +sink_data[30] => src0_data[30].DATAIN +sink_data[30] => src1_data[30].DATAIN +sink_data[30] => src2_data[30].DATAIN +sink_data[30] => src3_data[30].DATAIN +sink_data[30] => src4_data[30].DATAIN +sink_data[30] => src5_data[30].DATAIN +sink_data[30] => src6_data[30].DATAIN +sink_data[30] => src7_data[30].DATAIN +sink_data[30] => src8_data[30].DATAIN +sink_data[30] => src9_data[30].DATAIN +sink_data[30] => src10_data[30].DATAIN +sink_data[30] => src11_data[30].DATAIN +sink_data[30] => src12_data[30].DATAIN +sink_data[30] => src13_data[30].DATAIN +sink_data[30] => src14_data[30].DATAIN +sink_data[30] => src15_data[30].DATAIN +sink_data[30] => src16_data[30].DATAIN +sink_data[31] => src17_data[31].DATAIN +sink_data[31] => src0_data[31].DATAIN +sink_data[31] => src1_data[31].DATAIN +sink_data[31] => src2_data[31].DATAIN +sink_data[31] => src3_data[31].DATAIN +sink_data[31] => src4_data[31].DATAIN +sink_data[31] => src5_data[31].DATAIN +sink_data[31] => src6_data[31].DATAIN +sink_data[31] => src7_data[31].DATAIN +sink_data[31] => src8_data[31].DATAIN +sink_data[31] => src9_data[31].DATAIN +sink_data[31] => src10_data[31].DATAIN +sink_data[31] => src11_data[31].DATAIN +sink_data[31] => src12_data[31].DATAIN +sink_data[31] => src13_data[31].DATAIN +sink_data[31] => src14_data[31].DATAIN +sink_data[31] => src15_data[31].DATAIN +sink_data[31] => src16_data[31].DATAIN +sink_data[32] => src17_data[32].DATAIN +sink_data[32] => src0_data[32].DATAIN +sink_data[32] => src1_data[32].DATAIN +sink_data[32] => src2_data[32].DATAIN +sink_data[32] => src3_data[32].DATAIN +sink_data[32] => src4_data[32].DATAIN +sink_data[32] => src5_data[32].DATAIN +sink_data[32] => src6_data[32].DATAIN +sink_data[32] => src7_data[32].DATAIN +sink_data[32] => src8_data[32].DATAIN +sink_data[32] => src9_data[32].DATAIN +sink_data[32] => src10_data[32].DATAIN +sink_data[32] => src11_data[32].DATAIN +sink_data[32] => src12_data[32].DATAIN +sink_data[32] => src13_data[32].DATAIN +sink_data[32] => src14_data[32].DATAIN +sink_data[32] => src15_data[32].DATAIN +sink_data[32] => src16_data[32].DATAIN +sink_data[33] => src17_data[33].DATAIN +sink_data[33] => src0_data[33].DATAIN +sink_data[33] => src1_data[33].DATAIN +sink_data[33] => src2_data[33].DATAIN +sink_data[33] => src3_data[33].DATAIN +sink_data[33] => src4_data[33].DATAIN +sink_data[33] => src5_data[33].DATAIN +sink_data[33] => src6_data[33].DATAIN +sink_data[33] => src7_data[33].DATAIN +sink_data[33] => src8_data[33].DATAIN +sink_data[33] => src9_data[33].DATAIN +sink_data[33] => src10_data[33].DATAIN +sink_data[33] => src11_data[33].DATAIN +sink_data[33] => src12_data[33].DATAIN +sink_data[33] => src13_data[33].DATAIN +sink_data[33] => src14_data[33].DATAIN +sink_data[33] => src15_data[33].DATAIN +sink_data[33] => src16_data[33].DATAIN +sink_data[34] => src17_data[34].DATAIN +sink_data[34] => src0_data[34].DATAIN +sink_data[34] => src1_data[34].DATAIN +sink_data[34] => src2_data[34].DATAIN +sink_data[34] => src3_data[34].DATAIN +sink_data[34] => src4_data[34].DATAIN +sink_data[34] => src5_data[34].DATAIN +sink_data[34] => src6_data[34].DATAIN +sink_data[34] => src7_data[34].DATAIN +sink_data[34] => src8_data[34].DATAIN +sink_data[34] => src9_data[34].DATAIN +sink_data[34] => src10_data[34].DATAIN +sink_data[34] => src11_data[34].DATAIN +sink_data[34] => src12_data[34].DATAIN +sink_data[34] => src13_data[34].DATAIN +sink_data[34] => src14_data[34].DATAIN +sink_data[34] => src15_data[34].DATAIN +sink_data[34] => src16_data[34].DATAIN +sink_data[35] => src17_data[35].DATAIN +sink_data[35] => src0_data[35].DATAIN +sink_data[35] => src1_data[35].DATAIN +sink_data[35] => src2_data[35].DATAIN +sink_data[35] => src3_data[35].DATAIN +sink_data[35] => src4_data[35].DATAIN +sink_data[35] => src5_data[35].DATAIN +sink_data[35] => src6_data[35].DATAIN +sink_data[35] => src7_data[35].DATAIN +sink_data[35] => src8_data[35].DATAIN +sink_data[35] => src9_data[35].DATAIN +sink_data[35] => src10_data[35].DATAIN +sink_data[35] => src11_data[35].DATAIN +sink_data[35] => src12_data[35].DATAIN +sink_data[35] => src13_data[35].DATAIN +sink_data[35] => src14_data[35].DATAIN +sink_data[35] => src15_data[35].DATAIN +sink_data[35] => src16_data[35].DATAIN +sink_data[36] => src17_data[36].DATAIN +sink_data[36] => src0_data[36].DATAIN +sink_data[36] => src1_data[36].DATAIN +sink_data[36] => src2_data[36].DATAIN +sink_data[36] => src3_data[36].DATAIN +sink_data[36] => src4_data[36].DATAIN +sink_data[36] => src5_data[36].DATAIN +sink_data[36] => src6_data[36].DATAIN +sink_data[36] => src7_data[36].DATAIN +sink_data[36] => src8_data[36].DATAIN +sink_data[36] => src9_data[36].DATAIN +sink_data[36] => src10_data[36].DATAIN +sink_data[36] => src11_data[36].DATAIN +sink_data[36] => src12_data[36].DATAIN +sink_data[36] => src13_data[36].DATAIN +sink_data[36] => src14_data[36].DATAIN +sink_data[36] => src15_data[36].DATAIN +sink_data[36] => src16_data[36].DATAIN +sink_data[37] => src17_data[37].DATAIN +sink_data[37] => src0_data[37].DATAIN +sink_data[37] => src1_data[37].DATAIN +sink_data[37] => src2_data[37].DATAIN +sink_data[37] => src3_data[37].DATAIN +sink_data[37] => src4_data[37].DATAIN +sink_data[37] => src5_data[37].DATAIN +sink_data[37] => src6_data[37].DATAIN +sink_data[37] => src7_data[37].DATAIN +sink_data[37] => src8_data[37].DATAIN +sink_data[37] => src9_data[37].DATAIN +sink_data[37] => src10_data[37].DATAIN +sink_data[37] => src11_data[37].DATAIN +sink_data[37] => src12_data[37].DATAIN +sink_data[37] => src13_data[37].DATAIN +sink_data[37] => src14_data[37].DATAIN +sink_data[37] => src15_data[37].DATAIN +sink_data[37] => src16_data[37].DATAIN +sink_data[38] => src17_data[38].DATAIN +sink_data[38] => src0_data[38].DATAIN +sink_data[38] => src1_data[38].DATAIN +sink_data[38] => src2_data[38].DATAIN +sink_data[38] => src3_data[38].DATAIN +sink_data[38] => src4_data[38].DATAIN +sink_data[38] => src5_data[38].DATAIN +sink_data[38] => src6_data[38].DATAIN +sink_data[38] => src7_data[38].DATAIN +sink_data[38] => src8_data[38].DATAIN +sink_data[38] => src9_data[38].DATAIN +sink_data[38] => src10_data[38].DATAIN +sink_data[38] => src11_data[38].DATAIN +sink_data[38] => src12_data[38].DATAIN +sink_data[38] => src13_data[38].DATAIN +sink_data[38] => src14_data[38].DATAIN +sink_data[38] => src15_data[38].DATAIN +sink_data[38] => src16_data[38].DATAIN +sink_data[39] => src17_data[39].DATAIN +sink_data[39] => src0_data[39].DATAIN +sink_data[39] => src1_data[39].DATAIN +sink_data[39] => src2_data[39].DATAIN +sink_data[39] => src3_data[39].DATAIN +sink_data[39] => src4_data[39].DATAIN +sink_data[39] => src5_data[39].DATAIN +sink_data[39] => src6_data[39].DATAIN +sink_data[39] => src7_data[39].DATAIN +sink_data[39] => src8_data[39].DATAIN +sink_data[39] => src9_data[39].DATAIN +sink_data[39] => src10_data[39].DATAIN +sink_data[39] => src11_data[39].DATAIN +sink_data[39] => src12_data[39].DATAIN +sink_data[39] => src13_data[39].DATAIN +sink_data[39] => src14_data[39].DATAIN +sink_data[39] => src15_data[39].DATAIN +sink_data[39] => src16_data[39].DATAIN +sink_data[40] => src17_data[40].DATAIN +sink_data[40] => src0_data[40].DATAIN +sink_data[40] => src1_data[40].DATAIN +sink_data[40] => src2_data[40].DATAIN +sink_data[40] => src3_data[40].DATAIN +sink_data[40] => src4_data[40].DATAIN +sink_data[40] => src5_data[40].DATAIN +sink_data[40] => src6_data[40].DATAIN +sink_data[40] => src7_data[40].DATAIN +sink_data[40] => src8_data[40].DATAIN +sink_data[40] => src9_data[40].DATAIN +sink_data[40] => src10_data[40].DATAIN +sink_data[40] => src11_data[40].DATAIN +sink_data[40] => src12_data[40].DATAIN +sink_data[40] => src13_data[40].DATAIN +sink_data[40] => src14_data[40].DATAIN +sink_data[40] => src15_data[40].DATAIN +sink_data[40] => src16_data[40].DATAIN +sink_data[41] => src17_data[41].DATAIN +sink_data[41] => src0_data[41].DATAIN +sink_data[41] => src1_data[41].DATAIN +sink_data[41] => src2_data[41].DATAIN +sink_data[41] => src3_data[41].DATAIN +sink_data[41] => src4_data[41].DATAIN +sink_data[41] => src5_data[41].DATAIN +sink_data[41] => src6_data[41].DATAIN +sink_data[41] => src7_data[41].DATAIN +sink_data[41] => src8_data[41].DATAIN +sink_data[41] => src9_data[41].DATAIN +sink_data[41] => src10_data[41].DATAIN +sink_data[41] => src11_data[41].DATAIN +sink_data[41] => src12_data[41].DATAIN +sink_data[41] => src13_data[41].DATAIN +sink_data[41] => src14_data[41].DATAIN +sink_data[41] => src15_data[41].DATAIN +sink_data[41] => src16_data[41].DATAIN +sink_data[42] => src17_data[42].DATAIN +sink_data[42] => src0_data[42].DATAIN +sink_data[42] => src1_data[42].DATAIN +sink_data[42] => src2_data[42].DATAIN +sink_data[42] => src3_data[42].DATAIN +sink_data[42] => src4_data[42].DATAIN +sink_data[42] => src5_data[42].DATAIN +sink_data[42] => src6_data[42].DATAIN +sink_data[42] => src7_data[42].DATAIN +sink_data[42] => src8_data[42].DATAIN +sink_data[42] => src9_data[42].DATAIN +sink_data[42] => src10_data[42].DATAIN +sink_data[42] => src11_data[42].DATAIN +sink_data[42] => src12_data[42].DATAIN +sink_data[42] => src13_data[42].DATAIN +sink_data[42] => src14_data[42].DATAIN +sink_data[42] => src15_data[42].DATAIN +sink_data[42] => src16_data[42].DATAIN +sink_data[43] => src17_data[43].DATAIN +sink_data[43] => src0_data[43].DATAIN +sink_data[43] => src1_data[43].DATAIN +sink_data[43] => src2_data[43].DATAIN +sink_data[43] => src3_data[43].DATAIN +sink_data[43] => src4_data[43].DATAIN +sink_data[43] => src5_data[43].DATAIN +sink_data[43] => src6_data[43].DATAIN +sink_data[43] => src7_data[43].DATAIN +sink_data[43] => src8_data[43].DATAIN +sink_data[43] => src9_data[43].DATAIN +sink_data[43] => src10_data[43].DATAIN +sink_data[43] => src11_data[43].DATAIN +sink_data[43] => src12_data[43].DATAIN +sink_data[43] => src13_data[43].DATAIN +sink_data[43] => src14_data[43].DATAIN +sink_data[43] => src15_data[43].DATAIN +sink_data[43] => src16_data[43].DATAIN +sink_data[44] => src17_data[44].DATAIN +sink_data[44] => src0_data[44].DATAIN +sink_data[44] => src1_data[44].DATAIN +sink_data[44] => src2_data[44].DATAIN +sink_data[44] => src3_data[44].DATAIN +sink_data[44] => src4_data[44].DATAIN +sink_data[44] => src5_data[44].DATAIN +sink_data[44] => src6_data[44].DATAIN +sink_data[44] => src7_data[44].DATAIN +sink_data[44] => src8_data[44].DATAIN +sink_data[44] => src9_data[44].DATAIN +sink_data[44] => src10_data[44].DATAIN +sink_data[44] => src11_data[44].DATAIN +sink_data[44] => src12_data[44].DATAIN +sink_data[44] => src13_data[44].DATAIN +sink_data[44] => src14_data[44].DATAIN +sink_data[44] => src15_data[44].DATAIN +sink_data[44] => src16_data[44].DATAIN +sink_data[45] => src17_data[45].DATAIN +sink_data[45] => src0_data[45].DATAIN +sink_data[45] => src1_data[45].DATAIN +sink_data[45] => src2_data[45].DATAIN +sink_data[45] => src3_data[45].DATAIN +sink_data[45] => src4_data[45].DATAIN +sink_data[45] => src5_data[45].DATAIN +sink_data[45] => src6_data[45].DATAIN +sink_data[45] => src7_data[45].DATAIN +sink_data[45] => src8_data[45].DATAIN +sink_data[45] => src9_data[45].DATAIN +sink_data[45] => src10_data[45].DATAIN +sink_data[45] => src11_data[45].DATAIN +sink_data[45] => src12_data[45].DATAIN +sink_data[45] => src13_data[45].DATAIN +sink_data[45] => src14_data[45].DATAIN +sink_data[45] => src15_data[45].DATAIN +sink_data[45] => src16_data[45].DATAIN +sink_data[46] => src17_data[46].DATAIN +sink_data[46] => src0_data[46].DATAIN +sink_data[46] => src1_data[46].DATAIN +sink_data[46] => src2_data[46].DATAIN +sink_data[46] => src3_data[46].DATAIN +sink_data[46] => src4_data[46].DATAIN +sink_data[46] => src5_data[46].DATAIN +sink_data[46] => src6_data[46].DATAIN +sink_data[46] => src7_data[46].DATAIN +sink_data[46] => src8_data[46].DATAIN +sink_data[46] => src9_data[46].DATAIN +sink_data[46] => src10_data[46].DATAIN +sink_data[46] => src11_data[46].DATAIN +sink_data[46] => src12_data[46].DATAIN +sink_data[46] => src13_data[46].DATAIN +sink_data[46] => src14_data[46].DATAIN +sink_data[46] => src15_data[46].DATAIN +sink_data[46] => src16_data[46].DATAIN +sink_data[47] => src17_data[47].DATAIN +sink_data[47] => src0_data[47].DATAIN +sink_data[47] => src1_data[47].DATAIN +sink_data[47] => src2_data[47].DATAIN +sink_data[47] => src3_data[47].DATAIN +sink_data[47] => src4_data[47].DATAIN +sink_data[47] => src5_data[47].DATAIN +sink_data[47] => src6_data[47].DATAIN +sink_data[47] => src7_data[47].DATAIN +sink_data[47] => src8_data[47].DATAIN +sink_data[47] => src9_data[47].DATAIN +sink_data[47] => src10_data[47].DATAIN +sink_data[47] => src11_data[47].DATAIN +sink_data[47] => src12_data[47].DATAIN +sink_data[47] => src13_data[47].DATAIN +sink_data[47] => src14_data[47].DATAIN +sink_data[47] => src15_data[47].DATAIN +sink_data[47] => src16_data[47].DATAIN +sink_data[48] => src17_data[48].DATAIN +sink_data[48] => src0_data[48].DATAIN +sink_data[48] => src1_data[48].DATAIN +sink_data[48] => src2_data[48].DATAIN +sink_data[48] => src3_data[48].DATAIN +sink_data[48] => src4_data[48].DATAIN +sink_data[48] => src5_data[48].DATAIN +sink_data[48] => src6_data[48].DATAIN +sink_data[48] => src7_data[48].DATAIN +sink_data[48] => src8_data[48].DATAIN +sink_data[48] => src9_data[48].DATAIN +sink_data[48] => src10_data[48].DATAIN +sink_data[48] => src11_data[48].DATAIN +sink_data[48] => src12_data[48].DATAIN +sink_data[48] => src13_data[48].DATAIN +sink_data[48] => src14_data[48].DATAIN +sink_data[48] => src15_data[48].DATAIN +sink_data[48] => src16_data[48].DATAIN +sink_data[49] => src17_data[49].DATAIN +sink_data[49] => src0_data[49].DATAIN +sink_data[49] => src1_data[49].DATAIN +sink_data[49] => src2_data[49].DATAIN +sink_data[49] => src3_data[49].DATAIN +sink_data[49] => src4_data[49].DATAIN +sink_data[49] => src5_data[49].DATAIN +sink_data[49] => src6_data[49].DATAIN +sink_data[49] => src7_data[49].DATAIN +sink_data[49] => src8_data[49].DATAIN +sink_data[49] => src9_data[49].DATAIN +sink_data[49] => src10_data[49].DATAIN +sink_data[49] => src11_data[49].DATAIN +sink_data[49] => src12_data[49].DATAIN +sink_data[49] => src13_data[49].DATAIN +sink_data[49] => src14_data[49].DATAIN +sink_data[49] => src15_data[49].DATAIN +sink_data[49] => src16_data[49].DATAIN +sink_data[50] => src17_data[50].DATAIN +sink_data[50] => src0_data[50].DATAIN +sink_data[50] => src1_data[50].DATAIN +sink_data[50] => src2_data[50].DATAIN +sink_data[50] => src3_data[50].DATAIN +sink_data[50] => src4_data[50].DATAIN +sink_data[50] => src5_data[50].DATAIN +sink_data[50] => src6_data[50].DATAIN +sink_data[50] => src7_data[50].DATAIN +sink_data[50] => src8_data[50].DATAIN +sink_data[50] => src9_data[50].DATAIN +sink_data[50] => src10_data[50].DATAIN +sink_data[50] => src11_data[50].DATAIN +sink_data[50] => src12_data[50].DATAIN +sink_data[50] => src13_data[50].DATAIN +sink_data[50] => src14_data[50].DATAIN +sink_data[50] => src15_data[50].DATAIN +sink_data[50] => src16_data[50].DATAIN +sink_data[51] => src17_data[51].DATAIN +sink_data[51] => src0_data[51].DATAIN +sink_data[51] => src1_data[51].DATAIN +sink_data[51] => src2_data[51].DATAIN +sink_data[51] => src3_data[51].DATAIN +sink_data[51] => src4_data[51].DATAIN +sink_data[51] => src5_data[51].DATAIN +sink_data[51] => src6_data[51].DATAIN +sink_data[51] => src7_data[51].DATAIN +sink_data[51] => src8_data[51].DATAIN +sink_data[51] => src9_data[51].DATAIN +sink_data[51] => src10_data[51].DATAIN +sink_data[51] => src11_data[51].DATAIN +sink_data[51] => src12_data[51].DATAIN +sink_data[51] => src13_data[51].DATAIN +sink_data[51] => src14_data[51].DATAIN +sink_data[51] => src15_data[51].DATAIN +sink_data[51] => src16_data[51].DATAIN +sink_data[52] => src17_data[52].DATAIN +sink_data[52] => src0_data[52].DATAIN +sink_data[52] => src1_data[52].DATAIN +sink_data[52] => src2_data[52].DATAIN +sink_data[52] => src3_data[52].DATAIN +sink_data[52] => src4_data[52].DATAIN +sink_data[52] => src5_data[52].DATAIN +sink_data[52] => src6_data[52].DATAIN +sink_data[52] => src7_data[52].DATAIN +sink_data[52] => src8_data[52].DATAIN +sink_data[52] => src9_data[52].DATAIN +sink_data[52] => src10_data[52].DATAIN +sink_data[52] => src11_data[52].DATAIN +sink_data[52] => src12_data[52].DATAIN +sink_data[52] => src13_data[52].DATAIN +sink_data[52] => src14_data[52].DATAIN +sink_data[52] => src15_data[52].DATAIN +sink_data[52] => src16_data[52].DATAIN +sink_data[53] => src17_data[53].DATAIN +sink_data[53] => src0_data[53].DATAIN +sink_data[53] => src1_data[53].DATAIN +sink_data[53] => src2_data[53].DATAIN +sink_data[53] => src3_data[53].DATAIN +sink_data[53] => src4_data[53].DATAIN +sink_data[53] => src5_data[53].DATAIN +sink_data[53] => src6_data[53].DATAIN +sink_data[53] => src7_data[53].DATAIN +sink_data[53] => src8_data[53].DATAIN +sink_data[53] => src9_data[53].DATAIN +sink_data[53] => src10_data[53].DATAIN +sink_data[53] => src11_data[53].DATAIN +sink_data[53] => src12_data[53].DATAIN +sink_data[53] => src13_data[53].DATAIN +sink_data[53] => src14_data[53].DATAIN +sink_data[53] => src15_data[53].DATAIN +sink_data[53] => src16_data[53].DATAIN +sink_data[54] => src17_data[54].DATAIN +sink_data[54] => src0_data[54].DATAIN +sink_data[54] => src1_data[54].DATAIN +sink_data[54] => src2_data[54].DATAIN +sink_data[54] => src3_data[54].DATAIN +sink_data[54] => src4_data[54].DATAIN +sink_data[54] => src5_data[54].DATAIN +sink_data[54] => src6_data[54].DATAIN +sink_data[54] => src7_data[54].DATAIN +sink_data[54] => src8_data[54].DATAIN +sink_data[54] => src9_data[54].DATAIN +sink_data[54] => src10_data[54].DATAIN +sink_data[54] => src11_data[54].DATAIN +sink_data[54] => src12_data[54].DATAIN +sink_data[54] => src13_data[54].DATAIN +sink_data[54] => src14_data[54].DATAIN +sink_data[54] => src15_data[54].DATAIN +sink_data[54] => src16_data[54].DATAIN +sink_data[55] => src17_data[55].DATAIN +sink_data[55] => src0_data[55].DATAIN +sink_data[55] => src1_data[55].DATAIN +sink_data[55] => src2_data[55].DATAIN +sink_data[55] => src3_data[55].DATAIN +sink_data[55] => src4_data[55].DATAIN +sink_data[55] => src5_data[55].DATAIN +sink_data[55] => src6_data[55].DATAIN +sink_data[55] => src7_data[55].DATAIN +sink_data[55] => src8_data[55].DATAIN +sink_data[55] => src9_data[55].DATAIN +sink_data[55] => src10_data[55].DATAIN +sink_data[55] => src11_data[55].DATAIN +sink_data[55] => src12_data[55].DATAIN +sink_data[55] => src13_data[55].DATAIN +sink_data[55] => src14_data[55].DATAIN +sink_data[55] => src15_data[55].DATAIN +sink_data[55] => src16_data[55].DATAIN +sink_data[56] => src17_data[56].DATAIN +sink_data[56] => src0_data[56].DATAIN +sink_data[56] => src1_data[56].DATAIN +sink_data[56] => src2_data[56].DATAIN +sink_data[56] => src3_data[56].DATAIN +sink_data[56] => src4_data[56].DATAIN +sink_data[56] => src5_data[56].DATAIN +sink_data[56] => src6_data[56].DATAIN +sink_data[56] => src7_data[56].DATAIN +sink_data[56] => src8_data[56].DATAIN +sink_data[56] => src9_data[56].DATAIN +sink_data[56] => src10_data[56].DATAIN +sink_data[56] => src11_data[56].DATAIN +sink_data[56] => src12_data[56].DATAIN +sink_data[56] => src13_data[56].DATAIN +sink_data[56] => src14_data[56].DATAIN +sink_data[56] => src15_data[56].DATAIN +sink_data[56] => src16_data[56].DATAIN +sink_data[57] => src17_data[57].DATAIN +sink_data[57] => src0_data[57].DATAIN +sink_data[57] => src1_data[57].DATAIN +sink_data[57] => src2_data[57].DATAIN +sink_data[57] => src3_data[57].DATAIN +sink_data[57] => src4_data[57].DATAIN +sink_data[57] => src5_data[57].DATAIN +sink_data[57] => src6_data[57].DATAIN +sink_data[57] => src7_data[57].DATAIN +sink_data[57] => src8_data[57].DATAIN +sink_data[57] => src9_data[57].DATAIN +sink_data[57] => src10_data[57].DATAIN +sink_data[57] => src11_data[57].DATAIN +sink_data[57] => src12_data[57].DATAIN +sink_data[57] => src13_data[57].DATAIN +sink_data[57] => src14_data[57].DATAIN +sink_data[57] => src15_data[57].DATAIN +sink_data[57] => src16_data[57].DATAIN +sink_data[58] => src17_data[58].DATAIN +sink_data[58] => src0_data[58].DATAIN +sink_data[58] => src1_data[58].DATAIN +sink_data[58] => src2_data[58].DATAIN +sink_data[58] => src3_data[58].DATAIN +sink_data[58] => src4_data[58].DATAIN +sink_data[58] => src5_data[58].DATAIN +sink_data[58] => src6_data[58].DATAIN +sink_data[58] => src7_data[58].DATAIN +sink_data[58] => src8_data[58].DATAIN +sink_data[58] => src9_data[58].DATAIN +sink_data[58] => src10_data[58].DATAIN +sink_data[58] => src11_data[58].DATAIN +sink_data[58] => src12_data[58].DATAIN +sink_data[58] => src13_data[58].DATAIN +sink_data[58] => src14_data[58].DATAIN +sink_data[58] => src15_data[58].DATAIN +sink_data[58] => src16_data[58].DATAIN +sink_data[59] => src17_data[59].DATAIN +sink_data[59] => src0_data[59].DATAIN +sink_data[59] => src1_data[59].DATAIN +sink_data[59] => src2_data[59].DATAIN +sink_data[59] => src3_data[59].DATAIN +sink_data[59] => src4_data[59].DATAIN +sink_data[59] => src5_data[59].DATAIN +sink_data[59] => src6_data[59].DATAIN +sink_data[59] => src7_data[59].DATAIN +sink_data[59] => src8_data[59].DATAIN +sink_data[59] => src9_data[59].DATAIN +sink_data[59] => src10_data[59].DATAIN +sink_data[59] => src11_data[59].DATAIN +sink_data[59] => src12_data[59].DATAIN +sink_data[59] => src13_data[59].DATAIN +sink_data[59] => src14_data[59].DATAIN +sink_data[59] => src15_data[59].DATAIN +sink_data[59] => src16_data[59].DATAIN +sink_data[60] => src17_data[60].DATAIN +sink_data[60] => src0_data[60].DATAIN +sink_data[60] => src1_data[60].DATAIN +sink_data[60] => src2_data[60].DATAIN +sink_data[60] => src3_data[60].DATAIN +sink_data[60] => src4_data[60].DATAIN +sink_data[60] => src5_data[60].DATAIN +sink_data[60] => src6_data[60].DATAIN +sink_data[60] => src7_data[60].DATAIN +sink_data[60] => src8_data[60].DATAIN +sink_data[60] => src9_data[60].DATAIN +sink_data[60] => src10_data[60].DATAIN +sink_data[60] => src11_data[60].DATAIN +sink_data[60] => src12_data[60].DATAIN +sink_data[60] => src13_data[60].DATAIN +sink_data[60] => src14_data[60].DATAIN +sink_data[60] => src15_data[60].DATAIN +sink_data[60] => src16_data[60].DATAIN +sink_data[61] => src17_data[61].DATAIN +sink_data[61] => src0_data[61].DATAIN +sink_data[61] => src1_data[61].DATAIN +sink_data[61] => src2_data[61].DATAIN +sink_data[61] => src3_data[61].DATAIN +sink_data[61] => src4_data[61].DATAIN +sink_data[61] => src5_data[61].DATAIN +sink_data[61] => src6_data[61].DATAIN +sink_data[61] => src7_data[61].DATAIN +sink_data[61] => src8_data[61].DATAIN +sink_data[61] => src9_data[61].DATAIN +sink_data[61] => src10_data[61].DATAIN +sink_data[61] => src11_data[61].DATAIN +sink_data[61] => src12_data[61].DATAIN +sink_data[61] => src13_data[61].DATAIN +sink_data[61] => src14_data[61].DATAIN +sink_data[61] => src15_data[61].DATAIN +sink_data[61] => src16_data[61].DATAIN +sink_data[62] => src17_data[62].DATAIN +sink_data[62] => src0_data[62].DATAIN +sink_data[62] => src1_data[62].DATAIN +sink_data[62] => src2_data[62].DATAIN +sink_data[62] => src3_data[62].DATAIN +sink_data[62] => src4_data[62].DATAIN +sink_data[62] => src5_data[62].DATAIN +sink_data[62] => src6_data[62].DATAIN +sink_data[62] => src7_data[62].DATAIN +sink_data[62] => src8_data[62].DATAIN +sink_data[62] => src9_data[62].DATAIN +sink_data[62] => src10_data[62].DATAIN +sink_data[62] => src11_data[62].DATAIN +sink_data[62] => src12_data[62].DATAIN +sink_data[62] => src13_data[62].DATAIN +sink_data[62] => src14_data[62].DATAIN +sink_data[62] => src15_data[62].DATAIN +sink_data[62] => src16_data[62].DATAIN +sink_data[63] => src17_data[63].DATAIN +sink_data[63] => src0_data[63].DATAIN +sink_data[63] => src1_data[63].DATAIN +sink_data[63] => src2_data[63].DATAIN +sink_data[63] => src3_data[63].DATAIN +sink_data[63] => src4_data[63].DATAIN +sink_data[63] => src5_data[63].DATAIN +sink_data[63] => src6_data[63].DATAIN +sink_data[63] => src7_data[63].DATAIN +sink_data[63] => src8_data[63].DATAIN +sink_data[63] => src9_data[63].DATAIN +sink_data[63] => src10_data[63].DATAIN +sink_data[63] => src11_data[63].DATAIN +sink_data[63] => src12_data[63].DATAIN +sink_data[63] => src13_data[63].DATAIN +sink_data[63] => src14_data[63].DATAIN +sink_data[63] => src15_data[63].DATAIN +sink_data[63] => src16_data[63].DATAIN +sink_data[64] => src17_data[64].DATAIN +sink_data[64] => src0_data[64].DATAIN +sink_data[64] => src1_data[64].DATAIN +sink_data[64] => src2_data[64].DATAIN +sink_data[64] => src3_data[64].DATAIN +sink_data[64] => src4_data[64].DATAIN +sink_data[64] => src5_data[64].DATAIN +sink_data[64] => src6_data[64].DATAIN +sink_data[64] => src7_data[64].DATAIN +sink_data[64] => src8_data[64].DATAIN +sink_data[64] => src9_data[64].DATAIN +sink_data[64] => src10_data[64].DATAIN +sink_data[64] => src11_data[64].DATAIN +sink_data[64] => src12_data[64].DATAIN +sink_data[64] => src13_data[64].DATAIN +sink_data[64] => src14_data[64].DATAIN +sink_data[64] => src15_data[64].DATAIN +sink_data[64] => src16_data[64].DATAIN +sink_data[65] => src17_data[65].DATAIN +sink_data[65] => src0_data[65].DATAIN +sink_data[65] => src1_data[65].DATAIN +sink_data[65] => src2_data[65].DATAIN +sink_data[65] => src3_data[65].DATAIN +sink_data[65] => src4_data[65].DATAIN +sink_data[65] => src5_data[65].DATAIN +sink_data[65] => src6_data[65].DATAIN +sink_data[65] => src7_data[65].DATAIN +sink_data[65] => src8_data[65].DATAIN +sink_data[65] => src9_data[65].DATAIN +sink_data[65] => src10_data[65].DATAIN +sink_data[65] => src11_data[65].DATAIN +sink_data[65] => src12_data[65].DATAIN +sink_data[65] => src13_data[65].DATAIN +sink_data[65] => src14_data[65].DATAIN +sink_data[65] => src15_data[65].DATAIN +sink_data[65] => src16_data[65].DATAIN +sink_data[66] => src17_data[66].DATAIN +sink_data[66] => src0_data[66].DATAIN +sink_data[66] => src1_data[66].DATAIN +sink_data[66] => src2_data[66].DATAIN +sink_data[66] => src3_data[66].DATAIN +sink_data[66] => src4_data[66].DATAIN +sink_data[66] => src5_data[66].DATAIN +sink_data[66] => src6_data[66].DATAIN +sink_data[66] => src7_data[66].DATAIN +sink_data[66] => src8_data[66].DATAIN +sink_data[66] => src9_data[66].DATAIN +sink_data[66] => src10_data[66].DATAIN +sink_data[66] => src11_data[66].DATAIN +sink_data[66] => src12_data[66].DATAIN +sink_data[66] => src13_data[66].DATAIN +sink_data[66] => src14_data[66].DATAIN +sink_data[66] => src15_data[66].DATAIN +sink_data[66] => src16_data[66].DATAIN +sink_data[67] => src17_data[67].DATAIN +sink_data[67] => src0_data[67].DATAIN +sink_data[67] => src1_data[67].DATAIN +sink_data[67] => src2_data[67].DATAIN +sink_data[67] => src3_data[67].DATAIN +sink_data[67] => src4_data[67].DATAIN +sink_data[67] => src5_data[67].DATAIN +sink_data[67] => src6_data[67].DATAIN +sink_data[67] => src7_data[67].DATAIN +sink_data[67] => src8_data[67].DATAIN +sink_data[67] => src9_data[67].DATAIN +sink_data[67] => src10_data[67].DATAIN +sink_data[67] => src11_data[67].DATAIN +sink_data[67] => src12_data[67].DATAIN +sink_data[67] => src13_data[67].DATAIN +sink_data[67] => src14_data[67].DATAIN +sink_data[67] => src15_data[67].DATAIN +sink_data[67] => src16_data[67].DATAIN +sink_data[68] => src17_data[68].DATAIN +sink_data[68] => src0_data[68].DATAIN +sink_data[68] => src1_data[68].DATAIN +sink_data[68] => src2_data[68].DATAIN +sink_data[68] => src3_data[68].DATAIN +sink_data[68] => src4_data[68].DATAIN +sink_data[68] => src5_data[68].DATAIN +sink_data[68] => src6_data[68].DATAIN +sink_data[68] => src7_data[68].DATAIN +sink_data[68] => src8_data[68].DATAIN +sink_data[68] => src9_data[68].DATAIN +sink_data[68] => src10_data[68].DATAIN +sink_data[68] => src11_data[68].DATAIN +sink_data[68] => src12_data[68].DATAIN +sink_data[68] => src13_data[68].DATAIN +sink_data[68] => src14_data[68].DATAIN +sink_data[68] => src15_data[68].DATAIN +sink_data[68] => src16_data[68].DATAIN +sink_data[69] => src17_data[69].DATAIN +sink_data[69] => src0_data[69].DATAIN +sink_data[69] => src1_data[69].DATAIN +sink_data[69] => src2_data[69].DATAIN +sink_data[69] => src3_data[69].DATAIN +sink_data[69] => src4_data[69].DATAIN +sink_data[69] => src5_data[69].DATAIN +sink_data[69] => src6_data[69].DATAIN +sink_data[69] => src7_data[69].DATAIN +sink_data[69] => src8_data[69].DATAIN +sink_data[69] => src9_data[69].DATAIN +sink_data[69] => src10_data[69].DATAIN +sink_data[69] => src11_data[69].DATAIN +sink_data[69] => src12_data[69].DATAIN +sink_data[69] => src13_data[69].DATAIN +sink_data[69] => src14_data[69].DATAIN +sink_data[69] => src15_data[69].DATAIN +sink_data[69] => src16_data[69].DATAIN +sink_data[70] => src17_data[70].DATAIN +sink_data[70] => src0_data[70].DATAIN +sink_data[70] => src1_data[70].DATAIN +sink_data[70] => src2_data[70].DATAIN +sink_data[70] => src3_data[70].DATAIN +sink_data[70] => src4_data[70].DATAIN +sink_data[70] => src5_data[70].DATAIN +sink_data[70] => src6_data[70].DATAIN +sink_data[70] => src7_data[70].DATAIN +sink_data[70] => src8_data[70].DATAIN +sink_data[70] => src9_data[70].DATAIN +sink_data[70] => src10_data[70].DATAIN +sink_data[70] => src11_data[70].DATAIN +sink_data[70] => src12_data[70].DATAIN +sink_data[70] => src13_data[70].DATAIN +sink_data[70] => src14_data[70].DATAIN +sink_data[70] => src15_data[70].DATAIN +sink_data[70] => src16_data[70].DATAIN +sink_data[71] => src17_data[71].DATAIN +sink_data[71] => src0_data[71].DATAIN +sink_data[71] => src1_data[71].DATAIN +sink_data[71] => src2_data[71].DATAIN +sink_data[71] => src3_data[71].DATAIN +sink_data[71] => src4_data[71].DATAIN +sink_data[71] => src5_data[71].DATAIN +sink_data[71] => src6_data[71].DATAIN +sink_data[71] => src7_data[71].DATAIN +sink_data[71] => src8_data[71].DATAIN +sink_data[71] => src9_data[71].DATAIN +sink_data[71] => src10_data[71].DATAIN +sink_data[71] => src11_data[71].DATAIN +sink_data[71] => src12_data[71].DATAIN +sink_data[71] => src13_data[71].DATAIN +sink_data[71] => src14_data[71].DATAIN +sink_data[71] => src15_data[71].DATAIN +sink_data[71] => src16_data[71].DATAIN +sink_data[72] => src17_data[72].DATAIN +sink_data[72] => src0_data[72].DATAIN +sink_data[72] => src1_data[72].DATAIN +sink_data[72] => src2_data[72].DATAIN +sink_data[72] => src3_data[72].DATAIN +sink_data[72] => src4_data[72].DATAIN +sink_data[72] => src5_data[72].DATAIN +sink_data[72] => src6_data[72].DATAIN +sink_data[72] => src7_data[72].DATAIN +sink_data[72] => src8_data[72].DATAIN +sink_data[72] => src9_data[72].DATAIN +sink_data[72] => src10_data[72].DATAIN +sink_data[72] => src11_data[72].DATAIN +sink_data[72] => src12_data[72].DATAIN +sink_data[72] => src13_data[72].DATAIN +sink_data[72] => src14_data[72].DATAIN +sink_data[72] => src15_data[72].DATAIN +sink_data[72] => src16_data[72].DATAIN +sink_data[73] => src17_data[73].DATAIN +sink_data[73] => src0_data[73].DATAIN +sink_data[73] => src1_data[73].DATAIN +sink_data[73] => src2_data[73].DATAIN +sink_data[73] => src3_data[73].DATAIN +sink_data[73] => src4_data[73].DATAIN +sink_data[73] => src5_data[73].DATAIN +sink_data[73] => src6_data[73].DATAIN +sink_data[73] => src7_data[73].DATAIN +sink_data[73] => src8_data[73].DATAIN +sink_data[73] => src9_data[73].DATAIN +sink_data[73] => src10_data[73].DATAIN +sink_data[73] => src11_data[73].DATAIN +sink_data[73] => src12_data[73].DATAIN +sink_data[73] => src13_data[73].DATAIN +sink_data[73] => src14_data[73].DATAIN +sink_data[73] => src15_data[73].DATAIN +sink_data[73] => src16_data[73].DATAIN +sink_data[74] => src17_data[74].DATAIN +sink_data[74] => src0_data[74].DATAIN +sink_data[74] => src1_data[74].DATAIN +sink_data[74] => src2_data[74].DATAIN +sink_data[74] => src3_data[74].DATAIN +sink_data[74] => src4_data[74].DATAIN +sink_data[74] => src5_data[74].DATAIN +sink_data[74] => src6_data[74].DATAIN +sink_data[74] => src7_data[74].DATAIN +sink_data[74] => src8_data[74].DATAIN +sink_data[74] => src9_data[74].DATAIN +sink_data[74] => src10_data[74].DATAIN +sink_data[74] => src11_data[74].DATAIN +sink_data[74] => src12_data[74].DATAIN +sink_data[74] => src13_data[74].DATAIN +sink_data[74] => src14_data[74].DATAIN +sink_data[74] => src15_data[74].DATAIN +sink_data[74] => src16_data[74].DATAIN +sink_data[75] => src17_data[75].DATAIN +sink_data[75] => src0_data[75].DATAIN +sink_data[75] => src1_data[75].DATAIN +sink_data[75] => src2_data[75].DATAIN +sink_data[75] => src3_data[75].DATAIN +sink_data[75] => src4_data[75].DATAIN +sink_data[75] => src5_data[75].DATAIN +sink_data[75] => src6_data[75].DATAIN +sink_data[75] => src7_data[75].DATAIN +sink_data[75] => src8_data[75].DATAIN +sink_data[75] => src9_data[75].DATAIN +sink_data[75] => src10_data[75].DATAIN +sink_data[75] => src11_data[75].DATAIN +sink_data[75] => src12_data[75].DATAIN +sink_data[75] => src13_data[75].DATAIN +sink_data[75] => src14_data[75].DATAIN +sink_data[75] => src15_data[75].DATAIN +sink_data[75] => src16_data[75].DATAIN +sink_data[76] => src17_data[76].DATAIN +sink_data[76] => src0_data[76].DATAIN +sink_data[76] => src1_data[76].DATAIN +sink_data[76] => src2_data[76].DATAIN +sink_data[76] => src3_data[76].DATAIN +sink_data[76] => src4_data[76].DATAIN +sink_data[76] => src5_data[76].DATAIN +sink_data[76] => src6_data[76].DATAIN +sink_data[76] => src7_data[76].DATAIN +sink_data[76] => src8_data[76].DATAIN +sink_data[76] => src9_data[76].DATAIN +sink_data[76] => src10_data[76].DATAIN +sink_data[76] => src11_data[76].DATAIN +sink_data[76] => src12_data[76].DATAIN +sink_data[76] => src13_data[76].DATAIN +sink_data[76] => src14_data[76].DATAIN +sink_data[76] => src15_data[76].DATAIN +sink_data[76] => src16_data[76].DATAIN +sink_data[77] => src17_data[77].DATAIN +sink_data[77] => src0_data[77].DATAIN +sink_data[77] => src1_data[77].DATAIN +sink_data[77] => src2_data[77].DATAIN +sink_data[77] => src3_data[77].DATAIN +sink_data[77] => src4_data[77].DATAIN +sink_data[77] => src5_data[77].DATAIN +sink_data[77] => src6_data[77].DATAIN +sink_data[77] => src7_data[77].DATAIN +sink_data[77] => src8_data[77].DATAIN +sink_data[77] => src9_data[77].DATAIN +sink_data[77] => src10_data[77].DATAIN +sink_data[77] => src11_data[77].DATAIN +sink_data[77] => src12_data[77].DATAIN +sink_data[77] => src13_data[77].DATAIN +sink_data[77] => src14_data[77].DATAIN +sink_data[77] => src15_data[77].DATAIN +sink_data[77] => src16_data[77].DATAIN +sink_data[78] => src17_data[78].DATAIN +sink_data[78] => src0_data[78].DATAIN +sink_data[78] => src1_data[78].DATAIN +sink_data[78] => src2_data[78].DATAIN +sink_data[78] => src3_data[78].DATAIN +sink_data[78] => src4_data[78].DATAIN +sink_data[78] => src5_data[78].DATAIN +sink_data[78] => src6_data[78].DATAIN +sink_data[78] => src7_data[78].DATAIN +sink_data[78] => src8_data[78].DATAIN +sink_data[78] => src9_data[78].DATAIN +sink_data[78] => src10_data[78].DATAIN +sink_data[78] => src11_data[78].DATAIN +sink_data[78] => src12_data[78].DATAIN +sink_data[78] => src13_data[78].DATAIN +sink_data[78] => src14_data[78].DATAIN +sink_data[78] => src15_data[78].DATAIN +sink_data[78] => src16_data[78].DATAIN +sink_data[79] => src17_data[79].DATAIN +sink_data[79] => src0_data[79].DATAIN +sink_data[79] => src1_data[79].DATAIN +sink_data[79] => src2_data[79].DATAIN +sink_data[79] => src3_data[79].DATAIN +sink_data[79] => src4_data[79].DATAIN +sink_data[79] => src5_data[79].DATAIN +sink_data[79] => src6_data[79].DATAIN +sink_data[79] => src7_data[79].DATAIN +sink_data[79] => src8_data[79].DATAIN +sink_data[79] => src9_data[79].DATAIN +sink_data[79] => src10_data[79].DATAIN +sink_data[79] => src11_data[79].DATAIN +sink_data[79] => src12_data[79].DATAIN +sink_data[79] => src13_data[79].DATAIN +sink_data[79] => src14_data[79].DATAIN +sink_data[79] => src15_data[79].DATAIN +sink_data[79] => src16_data[79].DATAIN +sink_data[80] => src17_data[80].DATAIN +sink_data[80] => src0_data[80].DATAIN +sink_data[80] => src1_data[80].DATAIN +sink_data[80] => src2_data[80].DATAIN +sink_data[80] => src3_data[80].DATAIN +sink_data[80] => src4_data[80].DATAIN +sink_data[80] => src5_data[80].DATAIN +sink_data[80] => src6_data[80].DATAIN +sink_data[80] => src7_data[80].DATAIN +sink_data[80] => src8_data[80].DATAIN +sink_data[80] => src9_data[80].DATAIN +sink_data[80] => src10_data[80].DATAIN +sink_data[80] => src11_data[80].DATAIN +sink_data[80] => src12_data[80].DATAIN +sink_data[80] => src13_data[80].DATAIN +sink_data[80] => src14_data[80].DATAIN +sink_data[80] => src15_data[80].DATAIN +sink_data[80] => src16_data[80].DATAIN +sink_data[81] => src17_data[81].DATAIN +sink_data[81] => src0_data[81].DATAIN +sink_data[81] => src1_data[81].DATAIN +sink_data[81] => src2_data[81].DATAIN +sink_data[81] => src3_data[81].DATAIN +sink_data[81] => src4_data[81].DATAIN +sink_data[81] => src5_data[81].DATAIN +sink_data[81] => src6_data[81].DATAIN +sink_data[81] => src7_data[81].DATAIN +sink_data[81] => src8_data[81].DATAIN +sink_data[81] => src9_data[81].DATAIN +sink_data[81] => src10_data[81].DATAIN +sink_data[81] => src11_data[81].DATAIN +sink_data[81] => src12_data[81].DATAIN +sink_data[81] => src13_data[81].DATAIN +sink_data[81] => src14_data[81].DATAIN +sink_data[81] => src15_data[81].DATAIN +sink_data[81] => src16_data[81].DATAIN +sink_data[82] => src17_data[82].DATAIN +sink_data[82] => src0_data[82].DATAIN +sink_data[82] => src1_data[82].DATAIN +sink_data[82] => src2_data[82].DATAIN +sink_data[82] => src3_data[82].DATAIN +sink_data[82] => src4_data[82].DATAIN +sink_data[82] => src5_data[82].DATAIN +sink_data[82] => src6_data[82].DATAIN +sink_data[82] => src7_data[82].DATAIN +sink_data[82] => src8_data[82].DATAIN +sink_data[82] => src9_data[82].DATAIN +sink_data[82] => src10_data[82].DATAIN +sink_data[82] => src11_data[82].DATAIN +sink_data[82] => src12_data[82].DATAIN +sink_data[82] => src13_data[82].DATAIN +sink_data[82] => src14_data[82].DATAIN +sink_data[82] => src15_data[82].DATAIN +sink_data[82] => src16_data[82].DATAIN +sink_data[83] => src17_data[83].DATAIN +sink_data[83] => src0_data[83].DATAIN +sink_data[83] => src1_data[83].DATAIN +sink_data[83] => src2_data[83].DATAIN +sink_data[83] => src3_data[83].DATAIN +sink_data[83] => src4_data[83].DATAIN +sink_data[83] => src5_data[83].DATAIN +sink_data[83] => src6_data[83].DATAIN +sink_data[83] => src7_data[83].DATAIN +sink_data[83] => src8_data[83].DATAIN +sink_data[83] => src9_data[83].DATAIN +sink_data[83] => src10_data[83].DATAIN +sink_data[83] => src11_data[83].DATAIN +sink_data[83] => src12_data[83].DATAIN +sink_data[83] => src13_data[83].DATAIN +sink_data[83] => src14_data[83].DATAIN +sink_data[83] => src15_data[83].DATAIN +sink_data[83] => src16_data[83].DATAIN +sink_data[84] => src17_data[84].DATAIN +sink_data[84] => src0_data[84].DATAIN +sink_data[84] => src1_data[84].DATAIN +sink_data[84] => src2_data[84].DATAIN +sink_data[84] => src3_data[84].DATAIN +sink_data[84] => src4_data[84].DATAIN +sink_data[84] => src5_data[84].DATAIN +sink_data[84] => src6_data[84].DATAIN +sink_data[84] => src7_data[84].DATAIN +sink_data[84] => src8_data[84].DATAIN +sink_data[84] => src9_data[84].DATAIN +sink_data[84] => src10_data[84].DATAIN +sink_data[84] => src11_data[84].DATAIN +sink_data[84] => src12_data[84].DATAIN +sink_data[84] => src13_data[84].DATAIN +sink_data[84] => src14_data[84].DATAIN +sink_data[84] => src15_data[84].DATAIN +sink_data[84] => src16_data[84].DATAIN +sink_data[85] => src17_data[85].DATAIN +sink_data[85] => src0_data[85].DATAIN +sink_data[85] => src1_data[85].DATAIN +sink_data[85] => src2_data[85].DATAIN +sink_data[85] => src3_data[85].DATAIN +sink_data[85] => src4_data[85].DATAIN +sink_data[85] => src5_data[85].DATAIN +sink_data[85] => src6_data[85].DATAIN +sink_data[85] => src7_data[85].DATAIN +sink_data[85] => src8_data[85].DATAIN +sink_data[85] => src9_data[85].DATAIN +sink_data[85] => src10_data[85].DATAIN +sink_data[85] => src11_data[85].DATAIN +sink_data[85] => src12_data[85].DATAIN +sink_data[85] => src13_data[85].DATAIN +sink_data[85] => src14_data[85].DATAIN +sink_data[85] => src15_data[85].DATAIN +sink_data[85] => src16_data[85].DATAIN +sink_data[86] => src17_data[86].DATAIN +sink_data[86] => src0_data[86].DATAIN +sink_data[86] => src1_data[86].DATAIN +sink_data[86] => src2_data[86].DATAIN +sink_data[86] => src3_data[86].DATAIN +sink_data[86] => src4_data[86].DATAIN +sink_data[86] => src5_data[86].DATAIN +sink_data[86] => src6_data[86].DATAIN +sink_data[86] => src7_data[86].DATAIN +sink_data[86] => src8_data[86].DATAIN +sink_data[86] => src9_data[86].DATAIN +sink_data[86] => src10_data[86].DATAIN +sink_data[86] => src11_data[86].DATAIN +sink_data[86] => src12_data[86].DATAIN +sink_data[86] => src13_data[86].DATAIN +sink_data[86] => src14_data[86].DATAIN +sink_data[86] => src15_data[86].DATAIN +sink_data[86] => src16_data[86].DATAIN +sink_data[87] => src17_data[87].DATAIN +sink_data[87] => src0_data[87].DATAIN +sink_data[87] => src1_data[87].DATAIN +sink_data[87] => src2_data[87].DATAIN +sink_data[87] => src3_data[87].DATAIN +sink_data[87] => src4_data[87].DATAIN +sink_data[87] => src5_data[87].DATAIN +sink_data[87] => src6_data[87].DATAIN +sink_data[87] => src7_data[87].DATAIN +sink_data[87] => src8_data[87].DATAIN +sink_data[87] => src9_data[87].DATAIN +sink_data[87] => src10_data[87].DATAIN +sink_data[87] => src11_data[87].DATAIN +sink_data[87] => src12_data[87].DATAIN +sink_data[87] => src13_data[87].DATAIN +sink_data[87] => src14_data[87].DATAIN +sink_data[87] => src15_data[87].DATAIN +sink_data[87] => src16_data[87].DATAIN +sink_data[88] => src17_data[88].DATAIN +sink_data[88] => src0_data[88].DATAIN +sink_data[88] => src1_data[88].DATAIN +sink_data[88] => src2_data[88].DATAIN +sink_data[88] => src3_data[88].DATAIN +sink_data[88] => src4_data[88].DATAIN +sink_data[88] => src5_data[88].DATAIN +sink_data[88] => src6_data[88].DATAIN +sink_data[88] => src7_data[88].DATAIN +sink_data[88] => src8_data[88].DATAIN +sink_data[88] => src9_data[88].DATAIN +sink_data[88] => src10_data[88].DATAIN +sink_data[88] => src11_data[88].DATAIN +sink_data[88] => src12_data[88].DATAIN +sink_data[88] => src13_data[88].DATAIN +sink_data[88] => src14_data[88].DATAIN +sink_data[88] => src15_data[88].DATAIN +sink_data[88] => src16_data[88].DATAIN +sink_data[89] => src17_data[89].DATAIN +sink_data[89] => src0_data[89].DATAIN +sink_data[89] => src1_data[89].DATAIN +sink_data[89] => src2_data[89].DATAIN +sink_data[89] => src3_data[89].DATAIN +sink_data[89] => src4_data[89].DATAIN +sink_data[89] => src5_data[89].DATAIN +sink_data[89] => src6_data[89].DATAIN +sink_data[89] => src7_data[89].DATAIN +sink_data[89] => src8_data[89].DATAIN +sink_data[89] => src9_data[89].DATAIN +sink_data[89] => src10_data[89].DATAIN +sink_data[89] => src11_data[89].DATAIN +sink_data[89] => src12_data[89].DATAIN +sink_data[89] => src13_data[89].DATAIN +sink_data[89] => src14_data[89].DATAIN +sink_data[89] => src15_data[89].DATAIN +sink_data[89] => src16_data[89].DATAIN +sink_data[90] => src17_data[90].DATAIN +sink_data[90] => src0_data[90].DATAIN +sink_data[90] => src1_data[90].DATAIN +sink_data[90] => src2_data[90].DATAIN +sink_data[90] => src3_data[90].DATAIN +sink_data[90] => src4_data[90].DATAIN +sink_data[90] => src5_data[90].DATAIN +sink_data[90] => src6_data[90].DATAIN +sink_data[90] => src7_data[90].DATAIN +sink_data[90] => src8_data[90].DATAIN +sink_data[90] => src9_data[90].DATAIN +sink_data[90] => src10_data[90].DATAIN +sink_data[90] => src11_data[90].DATAIN +sink_data[90] => src12_data[90].DATAIN +sink_data[90] => src13_data[90].DATAIN +sink_data[90] => src14_data[90].DATAIN +sink_data[90] => src15_data[90].DATAIN +sink_data[90] => src16_data[90].DATAIN +sink_data[91] => src17_data[91].DATAIN +sink_data[91] => src0_data[91].DATAIN +sink_data[91] => src1_data[91].DATAIN +sink_data[91] => src2_data[91].DATAIN +sink_data[91] => src3_data[91].DATAIN +sink_data[91] => src4_data[91].DATAIN +sink_data[91] => src5_data[91].DATAIN +sink_data[91] => src6_data[91].DATAIN +sink_data[91] => src7_data[91].DATAIN +sink_data[91] => src8_data[91].DATAIN +sink_data[91] => src9_data[91].DATAIN +sink_data[91] => src10_data[91].DATAIN +sink_data[91] => src11_data[91].DATAIN +sink_data[91] => src12_data[91].DATAIN +sink_data[91] => src13_data[91].DATAIN +sink_data[91] => src14_data[91].DATAIN +sink_data[91] => src15_data[91].DATAIN +sink_data[91] => src16_data[91].DATAIN +sink_data[92] => src17_data[92].DATAIN +sink_data[92] => src0_data[92].DATAIN +sink_data[92] => src1_data[92].DATAIN +sink_data[92] => src2_data[92].DATAIN +sink_data[92] => src3_data[92].DATAIN +sink_data[92] => src4_data[92].DATAIN +sink_data[92] => src5_data[92].DATAIN +sink_data[92] => src6_data[92].DATAIN +sink_data[92] => src7_data[92].DATAIN +sink_data[92] => src8_data[92].DATAIN +sink_data[92] => src9_data[92].DATAIN +sink_data[92] => src10_data[92].DATAIN +sink_data[92] => src11_data[92].DATAIN +sink_data[92] => src12_data[92].DATAIN +sink_data[92] => src13_data[92].DATAIN +sink_data[92] => src14_data[92].DATAIN +sink_data[92] => src15_data[92].DATAIN +sink_data[92] => src16_data[92].DATAIN +sink_data[93] => src17_data[93].DATAIN +sink_data[93] => src0_data[93].DATAIN +sink_data[93] => src1_data[93].DATAIN +sink_data[93] => src2_data[93].DATAIN +sink_data[93] => src3_data[93].DATAIN +sink_data[93] => src4_data[93].DATAIN +sink_data[93] => src5_data[93].DATAIN +sink_data[93] => src6_data[93].DATAIN +sink_data[93] => src7_data[93].DATAIN +sink_data[93] => src8_data[93].DATAIN +sink_data[93] => src9_data[93].DATAIN +sink_data[93] => src10_data[93].DATAIN +sink_data[93] => src11_data[93].DATAIN +sink_data[93] => src12_data[93].DATAIN +sink_data[93] => src13_data[93].DATAIN +sink_data[93] => src14_data[93].DATAIN +sink_data[93] => src15_data[93].DATAIN +sink_data[93] => src16_data[93].DATAIN +sink_data[94] => src17_data[94].DATAIN +sink_data[94] => src0_data[94].DATAIN +sink_data[94] => src1_data[94].DATAIN +sink_data[94] => src2_data[94].DATAIN +sink_data[94] => src3_data[94].DATAIN +sink_data[94] => src4_data[94].DATAIN +sink_data[94] => src5_data[94].DATAIN +sink_data[94] => src6_data[94].DATAIN +sink_data[94] => src7_data[94].DATAIN +sink_data[94] => src8_data[94].DATAIN +sink_data[94] => src9_data[94].DATAIN +sink_data[94] => src10_data[94].DATAIN +sink_data[94] => src11_data[94].DATAIN +sink_data[94] => src12_data[94].DATAIN +sink_data[94] => src13_data[94].DATAIN +sink_data[94] => src14_data[94].DATAIN +sink_data[94] => src15_data[94].DATAIN +sink_data[94] => src16_data[94].DATAIN +sink_data[95] => src17_data[95].DATAIN +sink_data[95] => src0_data[95].DATAIN +sink_data[95] => src1_data[95].DATAIN +sink_data[95] => src2_data[95].DATAIN +sink_data[95] => src3_data[95].DATAIN +sink_data[95] => src4_data[95].DATAIN +sink_data[95] => src5_data[95].DATAIN +sink_data[95] => src6_data[95].DATAIN +sink_data[95] => src7_data[95].DATAIN +sink_data[95] => src8_data[95].DATAIN +sink_data[95] => src9_data[95].DATAIN +sink_data[95] => src10_data[95].DATAIN +sink_data[95] => src11_data[95].DATAIN +sink_data[95] => src12_data[95].DATAIN +sink_data[95] => src13_data[95].DATAIN +sink_data[95] => src14_data[95].DATAIN +sink_data[95] => src15_data[95].DATAIN +sink_data[95] => src16_data[95].DATAIN +sink_channel[0] => src0_valid.IN1 +sink_channel[0] => sink_ready.IN0 +sink_channel[1] => src1_valid.IN1 +sink_channel[1] => sink_ready.IN0 +sink_channel[2] => src2_valid.IN1 +sink_channel[2] => sink_ready.IN0 +sink_channel[3] => src3_valid.IN1 +sink_channel[3] => sink_ready.IN0 +sink_channel[4] => src4_valid.IN1 +sink_channel[4] => sink_ready.IN0 +sink_channel[5] => src5_valid.IN1 +sink_channel[5] => sink_ready.IN0 +sink_channel[6] => src6_valid.IN1 +sink_channel[6] => sink_ready.IN0 +sink_channel[7] => src7_valid.IN1 +sink_channel[7] => sink_ready.IN0 +sink_channel[8] => src8_valid.IN1 +sink_channel[8] => sink_ready.IN0 +sink_channel[9] => src9_valid.IN1 +sink_channel[9] => sink_ready.IN0 +sink_channel[10] => src10_valid.IN1 +sink_channel[10] => sink_ready.IN0 +sink_channel[11] => src11_valid.IN1 +sink_channel[11] => sink_ready.IN0 +sink_channel[12] => src12_valid.IN1 +sink_channel[12] => sink_ready.IN0 +sink_channel[13] => src13_valid.IN1 +sink_channel[13] => sink_ready.IN0 +sink_channel[14] => src14_valid.IN1 +sink_channel[14] => sink_ready.IN0 +sink_channel[15] => src15_valid.IN1 +sink_channel[15] => sink_ready.IN0 +sink_channel[16] => src16_valid.IN1 +sink_channel[16] => sink_ready.IN0 +sink_channel[17] => src17_valid.IN1 +sink_channel[17] => sink_ready.IN0 +sink_startofpacket => src17_startofpacket.DATAIN +sink_startofpacket => src0_startofpacket.DATAIN +sink_startofpacket => src1_startofpacket.DATAIN +sink_startofpacket => src2_startofpacket.DATAIN +sink_startofpacket => src3_startofpacket.DATAIN +sink_startofpacket => src4_startofpacket.DATAIN +sink_startofpacket => src5_startofpacket.DATAIN +sink_startofpacket => src6_startofpacket.DATAIN +sink_startofpacket => src7_startofpacket.DATAIN +sink_startofpacket => src8_startofpacket.DATAIN +sink_startofpacket => src9_startofpacket.DATAIN +sink_startofpacket => src10_startofpacket.DATAIN +sink_startofpacket => src11_startofpacket.DATAIN +sink_startofpacket => src12_startofpacket.DATAIN +sink_startofpacket => src13_startofpacket.DATAIN +sink_startofpacket => src14_startofpacket.DATAIN +sink_startofpacket => src15_startofpacket.DATAIN +sink_startofpacket => src16_startofpacket.DATAIN +sink_endofpacket => src17_endofpacket.DATAIN +sink_endofpacket => src0_endofpacket.DATAIN +sink_endofpacket => src1_endofpacket.DATAIN +sink_endofpacket => src2_endofpacket.DATAIN +sink_endofpacket => src3_endofpacket.DATAIN +sink_endofpacket => src4_endofpacket.DATAIN +sink_endofpacket => src5_endofpacket.DATAIN +sink_endofpacket => src6_endofpacket.DATAIN +sink_endofpacket => src7_endofpacket.DATAIN +sink_endofpacket => src8_endofpacket.DATAIN +sink_endofpacket => src9_endofpacket.DATAIN +sink_endofpacket => src10_endofpacket.DATAIN +sink_endofpacket => src11_endofpacket.DATAIN +sink_endofpacket => src12_endofpacket.DATAIN +sink_endofpacket => src13_endofpacket.DATAIN +sink_endofpacket => src14_endofpacket.DATAIN +sink_endofpacket => src15_endofpacket.DATAIN +sink_endofpacket => src16_endofpacket.DATAIN +sink_ready <= WideOr0.DB_MAX_OUTPUT_PORT_TYPE +src0_valid <= src0_valid.DB_MAX_OUTPUT_PORT_TYPE +src0_data[0] <= sink_data[0].DB_MAX_OUTPUT_PORT_TYPE +src0_data[1] <= sink_data[1].DB_MAX_OUTPUT_PORT_TYPE +src0_data[2] <= sink_data[2].DB_MAX_OUTPUT_PORT_TYPE +src0_data[3] <= sink_data[3].DB_MAX_OUTPUT_PORT_TYPE +src0_data[4] <= sink_data[4].DB_MAX_OUTPUT_PORT_TYPE +src0_data[5] <= sink_data[5].DB_MAX_OUTPUT_PORT_TYPE +src0_data[6] <= sink_data[6].DB_MAX_OUTPUT_PORT_TYPE +src0_data[7] <= sink_data[7].DB_MAX_OUTPUT_PORT_TYPE +src0_data[8] <= sink_data[8].DB_MAX_OUTPUT_PORT_TYPE +src0_data[9] <= sink_data[9].DB_MAX_OUTPUT_PORT_TYPE +src0_data[10] <= sink_data[10].DB_MAX_OUTPUT_PORT_TYPE +src0_data[11] <= sink_data[11].DB_MAX_OUTPUT_PORT_TYPE +src0_data[12] <= sink_data[12].DB_MAX_OUTPUT_PORT_TYPE +src0_data[13] <= sink_data[13].DB_MAX_OUTPUT_PORT_TYPE +src0_data[14] <= sink_data[14].DB_MAX_OUTPUT_PORT_TYPE +src0_data[15] <= sink_data[15].DB_MAX_OUTPUT_PORT_TYPE +src0_data[16] <= sink_data[16].DB_MAX_OUTPUT_PORT_TYPE +src0_data[17] <= sink_data[17].DB_MAX_OUTPUT_PORT_TYPE +src0_data[18] <= sink_data[18].DB_MAX_OUTPUT_PORT_TYPE +src0_data[19] <= sink_data[19].DB_MAX_OUTPUT_PORT_TYPE +src0_data[20] <= sink_data[20].DB_MAX_OUTPUT_PORT_TYPE +src0_data[21] <= sink_data[21].DB_MAX_OUTPUT_PORT_TYPE +src0_data[22] <= sink_data[22].DB_MAX_OUTPUT_PORT_TYPE +src0_data[23] <= sink_data[23].DB_MAX_OUTPUT_PORT_TYPE +src0_data[24] <= sink_data[24].DB_MAX_OUTPUT_PORT_TYPE +src0_data[25] <= sink_data[25].DB_MAX_OUTPUT_PORT_TYPE +src0_data[26] <= sink_data[26].DB_MAX_OUTPUT_PORT_TYPE +src0_data[27] <= sink_data[27].DB_MAX_OUTPUT_PORT_TYPE +src0_data[28] <= sink_data[28].DB_MAX_OUTPUT_PORT_TYPE +src0_data[29] <= sink_data[29].DB_MAX_OUTPUT_PORT_TYPE +src0_data[30] <= sink_data[30].DB_MAX_OUTPUT_PORT_TYPE +src0_data[31] <= sink_data[31].DB_MAX_OUTPUT_PORT_TYPE +src0_data[32] <= sink_data[32].DB_MAX_OUTPUT_PORT_TYPE +src0_data[33] <= sink_data[33].DB_MAX_OUTPUT_PORT_TYPE +src0_data[34] <= sink_data[34].DB_MAX_OUTPUT_PORT_TYPE +src0_data[35] <= sink_data[35].DB_MAX_OUTPUT_PORT_TYPE +src0_data[36] <= sink_data[36].DB_MAX_OUTPUT_PORT_TYPE +src0_data[37] <= sink_data[37].DB_MAX_OUTPUT_PORT_TYPE +src0_data[38] <= sink_data[38].DB_MAX_OUTPUT_PORT_TYPE +src0_data[39] <= sink_data[39].DB_MAX_OUTPUT_PORT_TYPE +src0_data[40] <= sink_data[40].DB_MAX_OUTPUT_PORT_TYPE +src0_data[41] <= sink_data[41].DB_MAX_OUTPUT_PORT_TYPE +src0_data[42] <= sink_data[42].DB_MAX_OUTPUT_PORT_TYPE +src0_data[43] <= sink_data[43].DB_MAX_OUTPUT_PORT_TYPE +src0_data[44] <= sink_data[44].DB_MAX_OUTPUT_PORT_TYPE +src0_data[45] <= sink_data[45].DB_MAX_OUTPUT_PORT_TYPE +src0_data[46] <= sink_data[46].DB_MAX_OUTPUT_PORT_TYPE +src0_data[47] <= sink_data[47].DB_MAX_OUTPUT_PORT_TYPE +src0_data[48] <= sink_data[48].DB_MAX_OUTPUT_PORT_TYPE +src0_data[49] <= sink_data[49].DB_MAX_OUTPUT_PORT_TYPE +src0_data[50] <= sink_data[50].DB_MAX_OUTPUT_PORT_TYPE +src0_data[51] <= sink_data[51].DB_MAX_OUTPUT_PORT_TYPE +src0_data[52] <= sink_data[52].DB_MAX_OUTPUT_PORT_TYPE +src0_data[53] <= sink_data[53].DB_MAX_OUTPUT_PORT_TYPE +src0_data[54] <= sink_data[54].DB_MAX_OUTPUT_PORT_TYPE +src0_data[55] <= sink_data[55].DB_MAX_OUTPUT_PORT_TYPE +src0_data[56] <= sink_data[56].DB_MAX_OUTPUT_PORT_TYPE +src0_data[57] <= sink_data[57].DB_MAX_OUTPUT_PORT_TYPE +src0_data[58] <= sink_data[58].DB_MAX_OUTPUT_PORT_TYPE +src0_data[59] <= sink_data[59].DB_MAX_OUTPUT_PORT_TYPE +src0_data[60] <= sink_data[60].DB_MAX_OUTPUT_PORT_TYPE +src0_data[61] <= sink_data[61].DB_MAX_OUTPUT_PORT_TYPE +src0_data[62] <= sink_data[62].DB_MAX_OUTPUT_PORT_TYPE +src0_data[63] <= sink_data[63].DB_MAX_OUTPUT_PORT_TYPE +src0_data[64] <= sink_data[64].DB_MAX_OUTPUT_PORT_TYPE +src0_data[65] <= sink_data[65].DB_MAX_OUTPUT_PORT_TYPE +src0_data[66] <= sink_data[66].DB_MAX_OUTPUT_PORT_TYPE +src0_data[67] <= sink_data[67].DB_MAX_OUTPUT_PORT_TYPE +src0_data[68] <= sink_data[68].DB_MAX_OUTPUT_PORT_TYPE +src0_data[69] <= sink_data[69].DB_MAX_OUTPUT_PORT_TYPE +src0_data[70] <= sink_data[70].DB_MAX_OUTPUT_PORT_TYPE +src0_data[71] <= sink_data[71].DB_MAX_OUTPUT_PORT_TYPE +src0_data[72] <= sink_data[72].DB_MAX_OUTPUT_PORT_TYPE +src0_data[73] <= sink_data[73].DB_MAX_OUTPUT_PORT_TYPE +src0_data[74] <= sink_data[74].DB_MAX_OUTPUT_PORT_TYPE +src0_data[75] <= sink_data[75].DB_MAX_OUTPUT_PORT_TYPE +src0_data[76] <= sink_data[76].DB_MAX_OUTPUT_PORT_TYPE +src0_data[77] <= sink_data[77].DB_MAX_OUTPUT_PORT_TYPE +src0_data[78] <= sink_data[78].DB_MAX_OUTPUT_PORT_TYPE +src0_data[79] <= sink_data[79].DB_MAX_OUTPUT_PORT_TYPE +src0_data[80] <= sink_data[80].DB_MAX_OUTPUT_PORT_TYPE +src0_data[81] <= sink_data[81].DB_MAX_OUTPUT_PORT_TYPE +src0_data[82] <= sink_data[82].DB_MAX_OUTPUT_PORT_TYPE +src0_data[83] <= sink_data[83].DB_MAX_OUTPUT_PORT_TYPE +src0_data[84] <= sink_data[84].DB_MAX_OUTPUT_PORT_TYPE +src0_data[85] <= sink_data[85].DB_MAX_OUTPUT_PORT_TYPE +src0_data[86] <= sink_data[86].DB_MAX_OUTPUT_PORT_TYPE +src0_data[87] <= sink_data[87].DB_MAX_OUTPUT_PORT_TYPE +src0_data[88] <= sink_data[88].DB_MAX_OUTPUT_PORT_TYPE +src0_data[89] <= sink_data[89].DB_MAX_OUTPUT_PORT_TYPE +src0_data[90] <= sink_data[90].DB_MAX_OUTPUT_PORT_TYPE +src0_data[91] <= sink_data[91].DB_MAX_OUTPUT_PORT_TYPE +src0_data[92] <= sink_data[92].DB_MAX_OUTPUT_PORT_TYPE +src0_data[93] <= sink_data[93].DB_MAX_OUTPUT_PORT_TYPE +src0_data[94] <= sink_data[94].DB_MAX_OUTPUT_PORT_TYPE +src0_data[95] <= sink_data[95].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[0] <= +src0_channel[1] <= +src0_channel[2] <= +src0_channel[3] <= +src0_channel[4] <= +src0_channel[5] <= +src0_channel[6] <= +src0_channel[7] <= +src0_channel[8] <= +src0_channel[9] <= +src0_channel[10] <= +src0_channel[11] <= +src0_channel[12] <= +src0_channel[13] <= +src0_channel[14] <= +src0_channel[15] <= +src0_channel[16] <= +src0_channel[17] <= +src0_startofpacket <= sink_startofpacket.DB_MAX_OUTPUT_PORT_TYPE +src0_endofpacket <= sink_endofpacket.DB_MAX_OUTPUT_PORT_TYPE +src0_ready => sink_ready.IN1 +src1_valid <= src1_valid.DB_MAX_OUTPUT_PORT_TYPE +src1_data[0] <= sink_data[0].DB_MAX_OUTPUT_PORT_TYPE +src1_data[1] <= sink_data[1].DB_MAX_OUTPUT_PORT_TYPE +src1_data[2] <= sink_data[2].DB_MAX_OUTPUT_PORT_TYPE +src1_data[3] <= sink_data[3].DB_MAX_OUTPUT_PORT_TYPE +src1_data[4] <= sink_data[4].DB_MAX_OUTPUT_PORT_TYPE +src1_data[5] <= sink_data[5].DB_MAX_OUTPUT_PORT_TYPE +src1_data[6] <= sink_data[6].DB_MAX_OUTPUT_PORT_TYPE +src1_data[7] <= sink_data[7].DB_MAX_OUTPUT_PORT_TYPE +src1_data[8] <= sink_data[8].DB_MAX_OUTPUT_PORT_TYPE +src1_data[9] <= sink_data[9].DB_MAX_OUTPUT_PORT_TYPE +src1_data[10] <= sink_data[10].DB_MAX_OUTPUT_PORT_TYPE +src1_data[11] <= sink_data[11].DB_MAX_OUTPUT_PORT_TYPE +src1_data[12] <= sink_data[12].DB_MAX_OUTPUT_PORT_TYPE +src1_data[13] <= sink_data[13].DB_MAX_OUTPUT_PORT_TYPE +src1_data[14] <= sink_data[14].DB_MAX_OUTPUT_PORT_TYPE +src1_data[15] <= sink_data[15].DB_MAX_OUTPUT_PORT_TYPE +src1_data[16] <= sink_data[16].DB_MAX_OUTPUT_PORT_TYPE +src1_data[17] <= sink_data[17].DB_MAX_OUTPUT_PORT_TYPE +src1_data[18] <= sink_data[18].DB_MAX_OUTPUT_PORT_TYPE +src1_data[19] <= sink_data[19].DB_MAX_OUTPUT_PORT_TYPE +src1_data[20] <= sink_data[20].DB_MAX_OUTPUT_PORT_TYPE +src1_data[21] <= sink_data[21].DB_MAX_OUTPUT_PORT_TYPE +src1_data[22] <= sink_data[22].DB_MAX_OUTPUT_PORT_TYPE +src1_data[23] <= sink_data[23].DB_MAX_OUTPUT_PORT_TYPE +src1_data[24] <= sink_data[24].DB_MAX_OUTPUT_PORT_TYPE +src1_data[25] <= sink_data[25].DB_MAX_OUTPUT_PORT_TYPE +src1_data[26] <= sink_data[26].DB_MAX_OUTPUT_PORT_TYPE +src1_data[27] <= sink_data[27].DB_MAX_OUTPUT_PORT_TYPE +src1_data[28] <= sink_data[28].DB_MAX_OUTPUT_PORT_TYPE +src1_data[29] <= sink_data[29].DB_MAX_OUTPUT_PORT_TYPE +src1_data[30] <= sink_data[30].DB_MAX_OUTPUT_PORT_TYPE +src1_data[31] <= sink_data[31].DB_MAX_OUTPUT_PORT_TYPE +src1_data[32] <= sink_data[32].DB_MAX_OUTPUT_PORT_TYPE +src1_data[33] <= sink_data[33].DB_MAX_OUTPUT_PORT_TYPE +src1_data[34] <= sink_data[34].DB_MAX_OUTPUT_PORT_TYPE +src1_data[35] <= sink_data[35].DB_MAX_OUTPUT_PORT_TYPE +src1_data[36] <= sink_data[36].DB_MAX_OUTPUT_PORT_TYPE +src1_data[37] <= sink_data[37].DB_MAX_OUTPUT_PORT_TYPE +src1_data[38] <= sink_data[38].DB_MAX_OUTPUT_PORT_TYPE +src1_data[39] <= sink_data[39].DB_MAX_OUTPUT_PORT_TYPE +src1_data[40] <= sink_data[40].DB_MAX_OUTPUT_PORT_TYPE +src1_data[41] <= sink_data[41].DB_MAX_OUTPUT_PORT_TYPE +src1_data[42] <= sink_data[42].DB_MAX_OUTPUT_PORT_TYPE +src1_data[43] <= sink_data[43].DB_MAX_OUTPUT_PORT_TYPE +src1_data[44] <= sink_data[44].DB_MAX_OUTPUT_PORT_TYPE +src1_data[45] <= sink_data[45].DB_MAX_OUTPUT_PORT_TYPE +src1_data[46] <= sink_data[46].DB_MAX_OUTPUT_PORT_TYPE +src1_data[47] <= sink_data[47].DB_MAX_OUTPUT_PORT_TYPE +src1_data[48] <= sink_data[48].DB_MAX_OUTPUT_PORT_TYPE +src1_data[49] <= sink_data[49].DB_MAX_OUTPUT_PORT_TYPE +src1_data[50] <= sink_data[50].DB_MAX_OUTPUT_PORT_TYPE +src1_data[51] <= sink_data[51].DB_MAX_OUTPUT_PORT_TYPE +src1_data[52] <= sink_data[52].DB_MAX_OUTPUT_PORT_TYPE +src1_data[53] <= sink_data[53].DB_MAX_OUTPUT_PORT_TYPE +src1_data[54] <= sink_data[54].DB_MAX_OUTPUT_PORT_TYPE +src1_data[55] <= sink_data[55].DB_MAX_OUTPUT_PORT_TYPE +src1_data[56] <= sink_data[56].DB_MAX_OUTPUT_PORT_TYPE +src1_data[57] <= sink_data[57].DB_MAX_OUTPUT_PORT_TYPE +src1_data[58] <= sink_data[58].DB_MAX_OUTPUT_PORT_TYPE +src1_data[59] <= sink_data[59].DB_MAX_OUTPUT_PORT_TYPE +src1_data[60] <= sink_data[60].DB_MAX_OUTPUT_PORT_TYPE +src1_data[61] <= sink_data[61].DB_MAX_OUTPUT_PORT_TYPE +src1_data[62] <= sink_data[62].DB_MAX_OUTPUT_PORT_TYPE +src1_data[63] <= sink_data[63].DB_MAX_OUTPUT_PORT_TYPE +src1_data[64] <= sink_data[64].DB_MAX_OUTPUT_PORT_TYPE +src1_data[65] <= sink_data[65].DB_MAX_OUTPUT_PORT_TYPE +src1_data[66] <= sink_data[66].DB_MAX_OUTPUT_PORT_TYPE +src1_data[67] <= sink_data[67].DB_MAX_OUTPUT_PORT_TYPE +src1_data[68] <= sink_data[68].DB_MAX_OUTPUT_PORT_TYPE +src1_data[69] <= sink_data[69].DB_MAX_OUTPUT_PORT_TYPE +src1_data[70] <= sink_data[70].DB_MAX_OUTPUT_PORT_TYPE +src1_data[71] <= sink_data[71].DB_MAX_OUTPUT_PORT_TYPE +src1_data[72] <= sink_data[72].DB_MAX_OUTPUT_PORT_TYPE +src1_data[73] <= sink_data[73].DB_MAX_OUTPUT_PORT_TYPE +src1_data[74] <= sink_data[74].DB_MAX_OUTPUT_PORT_TYPE +src1_data[75] <= sink_data[75].DB_MAX_OUTPUT_PORT_TYPE +src1_data[76] <= sink_data[76].DB_MAX_OUTPUT_PORT_TYPE +src1_data[77] <= sink_data[77].DB_MAX_OUTPUT_PORT_TYPE +src1_data[78] <= sink_data[78].DB_MAX_OUTPUT_PORT_TYPE +src1_data[79] <= sink_data[79].DB_MAX_OUTPUT_PORT_TYPE +src1_data[80] <= sink_data[80].DB_MAX_OUTPUT_PORT_TYPE +src1_data[81] <= sink_data[81].DB_MAX_OUTPUT_PORT_TYPE +src1_data[82] <= sink_data[82].DB_MAX_OUTPUT_PORT_TYPE +src1_data[83] <= sink_data[83].DB_MAX_OUTPUT_PORT_TYPE +src1_data[84] <= sink_data[84].DB_MAX_OUTPUT_PORT_TYPE +src1_data[85] <= sink_data[85].DB_MAX_OUTPUT_PORT_TYPE +src1_data[86] <= sink_data[86].DB_MAX_OUTPUT_PORT_TYPE +src1_data[87] <= sink_data[87].DB_MAX_OUTPUT_PORT_TYPE +src1_data[88] <= sink_data[88].DB_MAX_OUTPUT_PORT_TYPE +src1_data[89] <= sink_data[89].DB_MAX_OUTPUT_PORT_TYPE +src1_data[90] <= sink_data[90].DB_MAX_OUTPUT_PORT_TYPE +src1_data[91] <= sink_data[91].DB_MAX_OUTPUT_PORT_TYPE +src1_data[92] <= sink_data[92].DB_MAX_OUTPUT_PORT_TYPE +src1_data[93] <= sink_data[93].DB_MAX_OUTPUT_PORT_TYPE +src1_data[94] <= sink_data[94].DB_MAX_OUTPUT_PORT_TYPE +src1_data[95] <= sink_data[95].DB_MAX_OUTPUT_PORT_TYPE +src1_channel[0] <= +src1_channel[1] <= +src1_channel[2] <= +src1_channel[3] <= +src1_channel[4] <= +src1_channel[5] <= +src1_channel[6] <= +src1_channel[7] <= +src1_channel[8] <= +src1_channel[9] <= +src1_channel[10] <= +src1_channel[11] <= +src1_channel[12] <= +src1_channel[13] <= +src1_channel[14] <= +src1_channel[15] <= +src1_channel[16] <= +src1_channel[17] <= +src1_startofpacket <= sink_startofpacket.DB_MAX_OUTPUT_PORT_TYPE +src1_endofpacket <= sink_endofpacket.DB_MAX_OUTPUT_PORT_TYPE +src1_ready => sink_ready.IN1 +src2_valid <= src2_valid.DB_MAX_OUTPUT_PORT_TYPE +src2_data[0] <= sink_data[0].DB_MAX_OUTPUT_PORT_TYPE +src2_data[1] <= sink_data[1].DB_MAX_OUTPUT_PORT_TYPE +src2_data[2] <= sink_data[2].DB_MAX_OUTPUT_PORT_TYPE +src2_data[3] <= sink_data[3].DB_MAX_OUTPUT_PORT_TYPE +src2_data[4] <= sink_data[4].DB_MAX_OUTPUT_PORT_TYPE +src2_data[5] <= sink_data[5].DB_MAX_OUTPUT_PORT_TYPE +src2_data[6] <= sink_data[6].DB_MAX_OUTPUT_PORT_TYPE +src2_data[7] <= sink_data[7].DB_MAX_OUTPUT_PORT_TYPE +src2_data[8] <= sink_data[8].DB_MAX_OUTPUT_PORT_TYPE +src2_data[9] <= sink_data[9].DB_MAX_OUTPUT_PORT_TYPE +src2_data[10] <= sink_data[10].DB_MAX_OUTPUT_PORT_TYPE +src2_data[11] <= sink_data[11].DB_MAX_OUTPUT_PORT_TYPE +src2_data[12] <= sink_data[12].DB_MAX_OUTPUT_PORT_TYPE +src2_data[13] <= sink_data[13].DB_MAX_OUTPUT_PORT_TYPE +src2_data[14] <= sink_data[14].DB_MAX_OUTPUT_PORT_TYPE +src2_data[15] <= sink_data[15].DB_MAX_OUTPUT_PORT_TYPE +src2_data[16] <= sink_data[16].DB_MAX_OUTPUT_PORT_TYPE +src2_data[17] <= sink_data[17].DB_MAX_OUTPUT_PORT_TYPE +src2_data[18] <= sink_data[18].DB_MAX_OUTPUT_PORT_TYPE +src2_data[19] <= sink_data[19].DB_MAX_OUTPUT_PORT_TYPE +src2_data[20] <= sink_data[20].DB_MAX_OUTPUT_PORT_TYPE +src2_data[21] <= sink_data[21].DB_MAX_OUTPUT_PORT_TYPE +src2_data[22] <= sink_data[22].DB_MAX_OUTPUT_PORT_TYPE +src2_data[23] <= sink_data[23].DB_MAX_OUTPUT_PORT_TYPE +src2_data[24] <= sink_data[24].DB_MAX_OUTPUT_PORT_TYPE +src2_data[25] <= sink_data[25].DB_MAX_OUTPUT_PORT_TYPE +src2_data[26] <= sink_data[26].DB_MAX_OUTPUT_PORT_TYPE +src2_data[27] <= sink_data[27].DB_MAX_OUTPUT_PORT_TYPE +src2_data[28] <= sink_data[28].DB_MAX_OUTPUT_PORT_TYPE +src2_data[29] <= sink_data[29].DB_MAX_OUTPUT_PORT_TYPE +src2_data[30] <= sink_data[30].DB_MAX_OUTPUT_PORT_TYPE +src2_data[31] <= sink_data[31].DB_MAX_OUTPUT_PORT_TYPE +src2_data[32] <= sink_data[32].DB_MAX_OUTPUT_PORT_TYPE +src2_data[33] <= sink_data[33].DB_MAX_OUTPUT_PORT_TYPE +src2_data[34] <= sink_data[34].DB_MAX_OUTPUT_PORT_TYPE +src2_data[35] <= sink_data[35].DB_MAX_OUTPUT_PORT_TYPE +src2_data[36] <= sink_data[36].DB_MAX_OUTPUT_PORT_TYPE +src2_data[37] <= sink_data[37].DB_MAX_OUTPUT_PORT_TYPE +src2_data[38] <= sink_data[38].DB_MAX_OUTPUT_PORT_TYPE +src2_data[39] <= sink_data[39].DB_MAX_OUTPUT_PORT_TYPE +src2_data[40] <= sink_data[40].DB_MAX_OUTPUT_PORT_TYPE +src2_data[41] <= sink_data[41].DB_MAX_OUTPUT_PORT_TYPE +src2_data[42] <= sink_data[42].DB_MAX_OUTPUT_PORT_TYPE +src2_data[43] <= sink_data[43].DB_MAX_OUTPUT_PORT_TYPE +src2_data[44] <= sink_data[44].DB_MAX_OUTPUT_PORT_TYPE +src2_data[45] <= sink_data[45].DB_MAX_OUTPUT_PORT_TYPE +src2_data[46] <= sink_data[46].DB_MAX_OUTPUT_PORT_TYPE +src2_data[47] <= sink_data[47].DB_MAX_OUTPUT_PORT_TYPE +src2_data[48] <= sink_data[48].DB_MAX_OUTPUT_PORT_TYPE +src2_data[49] <= sink_data[49].DB_MAX_OUTPUT_PORT_TYPE +src2_data[50] <= sink_data[50].DB_MAX_OUTPUT_PORT_TYPE +src2_data[51] <= sink_data[51].DB_MAX_OUTPUT_PORT_TYPE +src2_data[52] <= sink_data[52].DB_MAX_OUTPUT_PORT_TYPE +src2_data[53] <= sink_data[53].DB_MAX_OUTPUT_PORT_TYPE +src2_data[54] <= sink_data[54].DB_MAX_OUTPUT_PORT_TYPE +src2_data[55] <= sink_data[55].DB_MAX_OUTPUT_PORT_TYPE +src2_data[56] <= sink_data[56].DB_MAX_OUTPUT_PORT_TYPE +src2_data[57] <= sink_data[57].DB_MAX_OUTPUT_PORT_TYPE +src2_data[58] <= sink_data[58].DB_MAX_OUTPUT_PORT_TYPE +src2_data[59] <= sink_data[59].DB_MAX_OUTPUT_PORT_TYPE +src2_data[60] <= sink_data[60].DB_MAX_OUTPUT_PORT_TYPE +src2_data[61] <= sink_data[61].DB_MAX_OUTPUT_PORT_TYPE +src2_data[62] <= sink_data[62].DB_MAX_OUTPUT_PORT_TYPE +src2_data[63] <= sink_data[63].DB_MAX_OUTPUT_PORT_TYPE +src2_data[64] <= sink_data[64].DB_MAX_OUTPUT_PORT_TYPE +src2_data[65] <= sink_data[65].DB_MAX_OUTPUT_PORT_TYPE +src2_data[66] <= sink_data[66].DB_MAX_OUTPUT_PORT_TYPE +src2_data[67] <= sink_data[67].DB_MAX_OUTPUT_PORT_TYPE +src2_data[68] <= sink_data[68].DB_MAX_OUTPUT_PORT_TYPE +src2_data[69] <= sink_data[69].DB_MAX_OUTPUT_PORT_TYPE +src2_data[70] <= sink_data[70].DB_MAX_OUTPUT_PORT_TYPE +src2_data[71] <= sink_data[71].DB_MAX_OUTPUT_PORT_TYPE +src2_data[72] <= sink_data[72].DB_MAX_OUTPUT_PORT_TYPE +src2_data[73] <= sink_data[73].DB_MAX_OUTPUT_PORT_TYPE +src2_data[74] <= sink_data[74].DB_MAX_OUTPUT_PORT_TYPE +src2_data[75] <= sink_data[75].DB_MAX_OUTPUT_PORT_TYPE +src2_data[76] <= sink_data[76].DB_MAX_OUTPUT_PORT_TYPE +src2_data[77] <= sink_data[77].DB_MAX_OUTPUT_PORT_TYPE +src2_data[78] <= sink_data[78].DB_MAX_OUTPUT_PORT_TYPE +src2_data[79] <= sink_data[79].DB_MAX_OUTPUT_PORT_TYPE +src2_data[80] <= sink_data[80].DB_MAX_OUTPUT_PORT_TYPE +src2_data[81] <= sink_data[81].DB_MAX_OUTPUT_PORT_TYPE +src2_data[82] <= sink_data[82].DB_MAX_OUTPUT_PORT_TYPE +src2_data[83] <= sink_data[83].DB_MAX_OUTPUT_PORT_TYPE +src2_data[84] <= sink_data[84].DB_MAX_OUTPUT_PORT_TYPE +src2_data[85] <= sink_data[85].DB_MAX_OUTPUT_PORT_TYPE +src2_data[86] <= sink_data[86].DB_MAX_OUTPUT_PORT_TYPE +src2_data[87] <= sink_data[87].DB_MAX_OUTPUT_PORT_TYPE +src2_data[88] <= sink_data[88].DB_MAX_OUTPUT_PORT_TYPE +src2_data[89] <= sink_data[89].DB_MAX_OUTPUT_PORT_TYPE +src2_data[90] <= sink_data[90].DB_MAX_OUTPUT_PORT_TYPE +src2_data[91] <= sink_data[91].DB_MAX_OUTPUT_PORT_TYPE +src2_data[92] <= sink_data[92].DB_MAX_OUTPUT_PORT_TYPE +src2_data[93] <= sink_data[93].DB_MAX_OUTPUT_PORT_TYPE +src2_data[94] <= sink_data[94].DB_MAX_OUTPUT_PORT_TYPE +src2_data[95] <= sink_data[95].DB_MAX_OUTPUT_PORT_TYPE +src2_channel[0] <= +src2_channel[1] <= +src2_channel[2] <= +src2_channel[3] <= +src2_channel[4] <= +src2_channel[5] <= +src2_channel[6] <= +src2_channel[7] <= +src2_channel[8] <= +src2_channel[9] <= +src2_channel[10] <= +src2_channel[11] <= +src2_channel[12] <= +src2_channel[13] <= +src2_channel[14] <= +src2_channel[15] <= +src2_channel[16] <= +src2_channel[17] <= +src2_startofpacket <= sink_startofpacket.DB_MAX_OUTPUT_PORT_TYPE +src2_endofpacket <= sink_endofpacket.DB_MAX_OUTPUT_PORT_TYPE +src2_ready => sink_ready.IN1 +src3_valid <= src3_valid.DB_MAX_OUTPUT_PORT_TYPE +src3_data[0] <= sink_data[0].DB_MAX_OUTPUT_PORT_TYPE +src3_data[1] <= sink_data[1].DB_MAX_OUTPUT_PORT_TYPE +src3_data[2] <= sink_data[2].DB_MAX_OUTPUT_PORT_TYPE +src3_data[3] <= sink_data[3].DB_MAX_OUTPUT_PORT_TYPE +src3_data[4] <= sink_data[4].DB_MAX_OUTPUT_PORT_TYPE +src3_data[5] <= sink_data[5].DB_MAX_OUTPUT_PORT_TYPE +src3_data[6] <= sink_data[6].DB_MAX_OUTPUT_PORT_TYPE +src3_data[7] <= sink_data[7].DB_MAX_OUTPUT_PORT_TYPE +src3_data[8] <= sink_data[8].DB_MAX_OUTPUT_PORT_TYPE +src3_data[9] <= sink_data[9].DB_MAX_OUTPUT_PORT_TYPE +src3_data[10] <= sink_data[10].DB_MAX_OUTPUT_PORT_TYPE +src3_data[11] <= sink_data[11].DB_MAX_OUTPUT_PORT_TYPE +src3_data[12] <= sink_data[12].DB_MAX_OUTPUT_PORT_TYPE +src3_data[13] <= sink_data[13].DB_MAX_OUTPUT_PORT_TYPE +src3_data[14] <= sink_data[14].DB_MAX_OUTPUT_PORT_TYPE +src3_data[15] <= sink_data[15].DB_MAX_OUTPUT_PORT_TYPE +src3_data[16] <= sink_data[16].DB_MAX_OUTPUT_PORT_TYPE +src3_data[17] <= sink_data[17].DB_MAX_OUTPUT_PORT_TYPE +src3_data[18] <= sink_data[18].DB_MAX_OUTPUT_PORT_TYPE +src3_data[19] <= sink_data[19].DB_MAX_OUTPUT_PORT_TYPE +src3_data[20] <= sink_data[20].DB_MAX_OUTPUT_PORT_TYPE +src3_data[21] <= sink_data[21].DB_MAX_OUTPUT_PORT_TYPE +src3_data[22] <= sink_data[22].DB_MAX_OUTPUT_PORT_TYPE +src3_data[23] <= sink_data[23].DB_MAX_OUTPUT_PORT_TYPE +src3_data[24] <= sink_data[24].DB_MAX_OUTPUT_PORT_TYPE +src3_data[25] <= sink_data[25].DB_MAX_OUTPUT_PORT_TYPE +src3_data[26] <= sink_data[26].DB_MAX_OUTPUT_PORT_TYPE +src3_data[27] <= sink_data[27].DB_MAX_OUTPUT_PORT_TYPE +src3_data[28] <= sink_data[28].DB_MAX_OUTPUT_PORT_TYPE +src3_data[29] <= sink_data[29].DB_MAX_OUTPUT_PORT_TYPE +src3_data[30] <= sink_data[30].DB_MAX_OUTPUT_PORT_TYPE +src3_data[31] <= sink_data[31].DB_MAX_OUTPUT_PORT_TYPE +src3_data[32] <= sink_data[32].DB_MAX_OUTPUT_PORT_TYPE +src3_data[33] <= sink_data[33].DB_MAX_OUTPUT_PORT_TYPE +src3_data[34] <= sink_data[34].DB_MAX_OUTPUT_PORT_TYPE +src3_data[35] <= sink_data[35].DB_MAX_OUTPUT_PORT_TYPE +src3_data[36] <= sink_data[36].DB_MAX_OUTPUT_PORT_TYPE +src3_data[37] <= sink_data[37].DB_MAX_OUTPUT_PORT_TYPE +src3_data[38] <= sink_data[38].DB_MAX_OUTPUT_PORT_TYPE +src3_data[39] <= sink_data[39].DB_MAX_OUTPUT_PORT_TYPE +src3_data[40] <= sink_data[40].DB_MAX_OUTPUT_PORT_TYPE +src3_data[41] <= sink_data[41].DB_MAX_OUTPUT_PORT_TYPE +src3_data[42] <= sink_data[42].DB_MAX_OUTPUT_PORT_TYPE +src3_data[43] <= sink_data[43].DB_MAX_OUTPUT_PORT_TYPE +src3_data[44] <= sink_data[44].DB_MAX_OUTPUT_PORT_TYPE +src3_data[45] <= sink_data[45].DB_MAX_OUTPUT_PORT_TYPE +src3_data[46] <= sink_data[46].DB_MAX_OUTPUT_PORT_TYPE +src3_data[47] <= sink_data[47].DB_MAX_OUTPUT_PORT_TYPE +src3_data[48] <= sink_data[48].DB_MAX_OUTPUT_PORT_TYPE +src3_data[49] <= sink_data[49].DB_MAX_OUTPUT_PORT_TYPE +src3_data[50] <= sink_data[50].DB_MAX_OUTPUT_PORT_TYPE +src3_data[51] <= sink_data[51].DB_MAX_OUTPUT_PORT_TYPE +src3_data[52] <= sink_data[52].DB_MAX_OUTPUT_PORT_TYPE +src3_data[53] <= sink_data[53].DB_MAX_OUTPUT_PORT_TYPE +src3_data[54] <= sink_data[54].DB_MAX_OUTPUT_PORT_TYPE +src3_data[55] <= sink_data[55].DB_MAX_OUTPUT_PORT_TYPE +src3_data[56] <= sink_data[56].DB_MAX_OUTPUT_PORT_TYPE +src3_data[57] <= sink_data[57].DB_MAX_OUTPUT_PORT_TYPE +src3_data[58] <= sink_data[58].DB_MAX_OUTPUT_PORT_TYPE +src3_data[59] <= sink_data[59].DB_MAX_OUTPUT_PORT_TYPE +src3_data[60] <= sink_data[60].DB_MAX_OUTPUT_PORT_TYPE +src3_data[61] <= sink_data[61].DB_MAX_OUTPUT_PORT_TYPE +src3_data[62] <= sink_data[62].DB_MAX_OUTPUT_PORT_TYPE +src3_data[63] <= sink_data[63].DB_MAX_OUTPUT_PORT_TYPE +src3_data[64] <= sink_data[64].DB_MAX_OUTPUT_PORT_TYPE +src3_data[65] <= sink_data[65].DB_MAX_OUTPUT_PORT_TYPE +src3_data[66] <= sink_data[66].DB_MAX_OUTPUT_PORT_TYPE +src3_data[67] <= sink_data[67].DB_MAX_OUTPUT_PORT_TYPE +src3_data[68] <= sink_data[68].DB_MAX_OUTPUT_PORT_TYPE +src3_data[69] <= sink_data[69].DB_MAX_OUTPUT_PORT_TYPE +src3_data[70] <= sink_data[70].DB_MAX_OUTPUT_PORT_TYPE +src3_data[71] <= sink_data[71].DB_MAX_OUTPUT_PORT_TYPE +src3_data[72] <= sink_data[72].DB_MAX_OUTPUT_PORT_TYPE +src3_data[73] <= sink_data[73].DB_MAX_OUTPUT_PORT_TYPE +src3_data[74] <= sink_data[74].DB_MAX_OUTPUT_PORT_TYPE +src3_data[75] <= sink_data[75].DB_MAX_OUTPUT_PORT_TYPE +src3_data[76] <= sink_data[76].DB_MAX_OUTPUT_PORT_TYPE +src3_data[77] <= sink_data[77].DB_MAX_OUTPUT_PORT_TYPE +src3_data[78] <= sink_data[78].DB_MAX_OUTPUT_PORT_TYPE +src3_data[79] <= sink_data[79].DB_MAX_OUTPUT_PORT_TYPE +src3_data[80] <= sink_data[80].DB_MAX_OUTPUT_PORT_TYPE +src3_data[81] <= sink_data[81].DB_MAX_OUTPUT_PORT_TYPE +src3_data[82] <= sink_data[82].DB_MAX_OUTPUT_PORT_TYPE +src3_data[83] <= sink_data[83].DB_MAX_OUTPUT_PORT_TYPE +src3_data[84] <= sink_data[84].DB_MAX_OUTPUT_PORT_TYPE +src3_data[85] <= sink_data[85].DB_MAX_OUTPUT_PORT_TYPE +src3_data[86] <= sink_data[86].DB_MAX_OUTPUT_PORT_TYPE +src3_data[87] <= sink_data[87].DB_MAX_OUTPUT_PORT_TYPE +src3_data[88] <= sink_data[88].DB_MAX_OUTPUT_PORT_TYPE +src3_data[89] <= sink_data[89].DB_MAX_OUTPUT_PORT_TYPE +src3_data[90] <= sink_data[90].DB_MAX_OUTPUT_PORT_TYPE +src3_data[91] <= sink_data[91].DB_MAX_OUTPUT_PORT_TYPE +src3_data[92] <= sink_data[92].DB_MAX_OUTPUT_PORT_TYPE +src3_data[93] <= sink_data[93].DB_MAX_OUTPUT_PORT_TYPE +src3_data[94] <= sink_data[94].DB_MAX_OUTPUT_PORT_TYPE +src3_data[95] <= sink_data[95].DB_MAX_OUTPUT_PORT_TYPE +src3_channel[0] <= +src3_channel[1] <= +src3_channel[2] <= +src3_channel[3] <= +src3_channel[4] <= +src3_channel[5] <= +src3_channel[6] <= +src3_channel[7] <= +src3_channel[8] <= +src3_channel[9] <= +src3_channel[10] <= +src3_channel[11] <= +src3_channel[12] <= +src3_channel[13] <= +src3_channel[14] <= +src3_channel[15] <= +src3_channel[16] <= +src3_channel[17] <= +src3_startofpacket <= sink_startofpacket.DB_MAX_OUTPUT_PORT_TYPE +src3_endofpacket <= sink_endofpacket.DB_MAX_OUTPUT_PORT_TYPE +src3_ready => sink_ready.IN1 +src4_valid <= src4_valid.DB_MAX_OUTPUT_PORT_TYPE +src4_data[0] <= sink_data[0].DB_MAX_OUTPUT_PORT_TYPE +src4_data[1] <= sink_data[1].DB_MAX_OUTPUT_PORT_TYPE +src4_data[2] <= sink_data[2].DB_MAX_OUTPUT_PORT_TYPE +src4_data[3] <= sink_data[3].DB_MAX_OUTPUT_PORT_TYPE +src4_data[4] <= sink_data[4].DB_MAX_OUTPUT_PORT_TYPE +src4_data[5] <= sink_data[5].DB_MAX_OUTPUT_PORT_TYPE +src4_data[6] <= sink_data[6].DB_MAX_OUTPUT_PORT_TYPE +src4_data[7] <= sink_data[7].DB_MAX_OUTPUT_PORT_TYPE +src4_data[8] <= sink_data[8].DB_MAX_OUTPUT_PORT_TYPE +src4_data[9] <= sink_data[9].DB_MAX_OUTPUT_PORT_TYPE +src4_data[10] <= sink_data[10].DB_MAX_OUTPUT_PORT_TYPE +src4_data[11] <= sink_data[11].DB_MAX_OUTPUT_PORT_TYPE +src4_data[12] <= sink_data[12].DB_MAX_OUTPUT_PORT_TYPE +src4_data[13] <= sink_data[13].DB_MAX_OUTPUT_PORT_TYPE +src4_data[14] <= sink_data[14].DB_MAX_OUTPUT_PORT_TYPE +src4_data[15] <= sink_data[15].DB_MAX_OUTPUT_PORT_TYPE +src4_data[16] <= sink_data[16].DB_MAX_OUTPUT_PORT_TYPE +src4_data[17] <= sink_data[17].DB_MAX_OUTPUT_PORT_TYPE +src4_data[18] <= sink_data[18].DB_MAX_OUTPUT_PORT_TYPE +src4_data[19] <= sink_data[19].DB_MAX_OUTPUT_PORT_TYPE +src4_data[20] <= sink_data[20].DB_MAX_OUTPUT_PORT_TYPE +src4_data[21] <= sink_data[21].DB_MAX_OUTPUT_PORT_TYPE +src4_data[22] <= sink_data[22].DB_MAX_OUTPUT_PORT_TYPE +src4_data[23] <= sink_data[23].DB_MAX_OUTPUT_PORT_TYPE +src4_data[24] <= sink_data[24].DB_MAX_OUTPUT_PORT_TYPE +src4_data[25] <= sink_data[25].DB_MAX_OUTPUT_PORT_TYPE +src4_data[26] <= sink_data[26].DB_MAX_OUTPUT_PORT_TYPE +src4_data[27] <= sink_data[27].DB_MAX_OUTPUT_PORT_TYPE +src4_data[28] <= sink_data[28].DB_MAX_OUTPUT_PORT_TYPE +src4_data[29] <= sink_data[29].DB_MAX_OUTPUT_PORT_TYPE +src4_data[30] <= sink_data[30].DB_MAX_OUTPUT_PORT_TYPE +src4_data[31] <= sink_data[31].DB_MAX_OUTPUT_PORT_TYPE +src4_data[32] <= sink_data[32].DB_MAX_OUTPUT_PORT_TYPE +src4_data[33] <= sink_data[33].DB_MAX_OUTPUT_PORT_TYPE +src4_data[34] <= sink_data[34].DB_MAX_OUTPUT_PORT_TYPE +src4_data[35] <= sink_data[35].DB_MAX_OUTPUT_PORT_TYPE +src4_data[36] <= sink_data[36].DB_MAX_OUTPUT_PORT_TYPE +src4_data[37] <= sink_data[37].DB_MAX_OUTPUT_PORT_TYPE +src4_data[38] <= sink_data[38].DB_MAX_OUTPUT_PORT_TYPE +src4_data[39] <= sink_data[39].DB_MAX_OUTPUT_PORT_TYPE +src4_data[40] <= sink_data[40].DB_MAX_OUTPUT_PORT_TYPE +src4_data[41] <= sink_data[41].DB_MAX_OUTPUT_PORT_TYPE +src4_data[42] <= sink_data[42].DB_MAX_OUTPUT_PORT_TYPE +src4_data[43] <= sink_data[43].DB_MAX_OUTPUT_PORT_TYPE +src4_data[44] <= sink_data[44].DB_MAX_OUTPUT_PORT_TYPE +src4_data[45] <= sink_data[45].DB_MAX_OUTPUT_PORT_TYPE +src4_data[46] <= sink_data[46].DB_MAX_OUTPUT_PORT_TYPE +src4_data[47] <= sink_data[47].DB_MAX_OUTPUT_PORT_TYPE +src4_data[48] <= sink_data[48].DB_MAX_OUTPUT_PORT_TYPE +src4_data[49] <= sink_data[49].DB_MAX_OUTPUT_PORT_TYPE +src4_data[50] <= sink_data[50].DB_MAX_OUTPUT_PORT_TYPE +src4_data[51] <= sink_data[51].DB_MAX_OUTPUT_PORT_TYPE +src4_data[52] <= sink_data[52].DB_MAX_OUTPUT_PORT_TYPE +src4_data[53] <= sink_data[53].DB_MAX_OUTPUT_PORT_TYPE +src4_data[54] <= sink_data[54].DB_MAX_OUTPUT_PORT_TYPE +src4_data[55] <= sink_data[55].DB_MAX_OUTPUT_PORT_TYPE +src4_data[56] <= sink_data[56].DB_MAX_OUTPUT_PORT_TYPE +src4_data[57] <= sink_data[57].DB_MAX_OUTPUT_PORT_TYPE +src4_data[58] <= sink_data[58].DB_MAX_OUTPUT_PORT_TYPE +src4_data[59] <= sink_data[59].DB_MAX_OUTPUT_PORT_TYPE +src4_data[60] <= sink_data[60].DB_MAX_OUTPUT_PORT_TYPE +src4_data[61] <= sink_data[61].DB_MAX_OUTPUT_PORT_TYPE +src4_data[62] <= sink_data[62].DB_MAX_OUTPUT_PORT_TYPE +src4_data[63] <= sink_data[63].DB_MAX_OUTPUT_PORT_TYPE +src4_data[64] <= sink_data[64].DB_MAX_OUTPUT_PORT_TYPE +src4_data[65] <= sink_data[65].DB_MAX_OUTPUT_PORT_TYPE +src4_data[66] <= sink_data[66].DB_MAX_OUTPUT_PORT_TYPE +src4_data[67] <= sink_data[67].DB_MAX_OUTPUT_PORT_TYPE +src4_data[68] <= sink_data[68].DB_MAX_OUTPUT_PORT_TYPE +src4_data[69] <= sink_data[69].DB_MAX_OUTPUT_PORT_TYPE +src4_data[70] <= sink_data[70].DB_MAX_OUTPUT_PORT_TYPE +src4_data[71] <= sink_data[71].DB_MAX_OUTPUT_PORT_TYPE +src4_data[72] <= sink_data[72].DB_MAX_OUTPUT_PORT_TYPE +src4_data[73] <= sink_data[73].DB_MAX_OUTPUT_PORT_TYPE +src4_data[74] <= sink_data[74].DB_MAX_OUTPUT_PORT_TYPE +src4_data[75] <= sink_data[75].DB_MAX_OUTPUT_PORT_TYPE +src4_data[76] <= sink_data[76].DB_MAX_OUTPUT_PORT_TYPE +src4_data[77] <= sink_data[77].DB_MAX_OUTPUT_PORT_TYPE +src4_data[78] <= sink_data[78].DB_MAX_OUTPUT_PORT_TYPE +src4_data[79] <= sink_data[79].DB_MAX_OUTPUT_PORT_TYPE +src4_data[80] <= sink_data[80].DB_MAX_OUTPUT_PORT_TYPE +src4_data[81] <= sink_data[81].DB_MAX_OUTPUT_PORT_TYPE +src4_data[82] <= sink_data[82].DB_MAX_OUTPUT_PORT_TYPE +src4_data[83] <= sink_data[83].DB_MAX_OUTPUT_PORT_TYPE +src4_data[84] <= sink_data[84].DB_MAX_OUTPUT_PORT_TYPE +src4_data[85] <= sink_data[85].DB_MAX_OUTPUT_PORT_TYPE +src4_data[86] <= sink_data[86].DB_MAX_OUTPUT_PORT_TYPE +src4_data[87] <= sink_data[87].DB_MAX_OUTPUT_PORT_TYPE +src4_data[88] <= sink_data[88].DB_MAX_OUTPUT_PORT_TYPE +src4_data[89] <= sink_data[89].DB_MAX_OUTPUT_PORT_TYPE +src4_data[90] <= sink_data[90].DB_MAX_OUTPUT_PORT_TYPE +src4_data[91] <= sink_data[91].DB_MAX_OUTPUT_PORT_TYPE +src4_data[92] <= sink_data[92].DB_MAX_OUTPUT_PORT_TYPE +src4_data[93] <= sink_data[93].DB_MAX_OUTPUT_PORT_TYPE +src4_data[94] <= sink_data[94].DB_MAX_OUTPUT_PORT_TYPE +src4_data[95] <= sink_data[95].DB_MAX_OUTPUT_PORT_TYPE +src4_channel[0] <= +src4_channel[1] <= +src4_channel[2] <= +src4_channel[3] <= +src4_channel[4] <= +src4_channel[5] <= +src4_channel[6] <= +src4_channel[7] <= +src4_channel[8] <= +src4_channel[9] <= +src4_channel[10] <= +src4_channel[11] <= +src4_channel[12] <= +src4_channel[13] <= +src4_channel[14] <= +src4_channel[15] <= +src4_channel[16] <= +src4_channel[17] <= +src4_startofpacket <= sink_startofpacket.DB_MAX_OUTPUT_PORT_TYPE +src4_endofpacket <= sink_endofpacket.DB_MAX_OUTPUT_PORT_TYPE +src4_ready => sink_ready.IN1 +src5_valid <= src5_valid.DB_MAX_OUTPUT_PORT_TYPE +src5_data[0] <= sink_data[0].DB_MAX_OUTPUT_PORT_TYPE +src5_data[1] <= sink_data[1].DB_MAX_OUTPUT_PORT_TYPE +src5_data[2] <= sink_data[2].DB_MAX_OUTPUT_PORT_TYPE +src5_data[3] <= sink_data[3].DB_MAX_OUTPUT_PORT_TYPE +src5_data[4] <= sink_data[4].DB_MAX_OUTPUT_PORT_TYPE +src5_data[5] <= sink_data[5].DB_MAX_OUTPUT_PORT_TYPE +src5_data[6] <= sink_data[6].DB_MAX_OUTPUT_PORT_TYPE +src5_data[7] <= sink_data[7].DB_MAX_OUTPUT_PORT_TYPE +src5_data[8] <= sink_data[8].DB_MAX_OUTPUT_PORT_TYPE +src5_data[9] <= sink_data[9].DB_MAX_OUTPUT_PORT_TYPE +src5_data[10] <= sink_data[10].DB_MAX_OUTPUT_PORT_TYPE +src5_data[11] <= sink_data[11].DB_MAX_OUTPUT_PORT_TYPE +src5_data[12] <= sink_data[12].DB_MAX_OUTPUT_PORT_TYPE +src5_data[13] <= sink_data[13].DB_MAX_OUTPUT_PORT_TYPE +src5_data[14] <= sink_data[14].DB_MAX_OUTPUT_PORT_TYPE +src5_data[15] <= sink_data[15].DB_MAX_OUTPUT_PORT_TYPE +src5_data[16] <= sink_data[16].DB_MAX_OUTPUT_PORT_TYPE +src5_data[17] <= sink_data[17].DB_MAX_OUTPUT_PORT_TYPE +src5_data[18] <= sink_data[18].DB_MAX_OUTPUT_PORT_TYPE +src5_data[19] <= sink_data[19].DB_MAX_OUTPUT_PORT_TYPE +src5_data[20] <= sink_data[20].DB_MAX_OUTPUT_PORT_TYPE +src5_data[21] <= sink_data[21].DB_MAX_OUTPUT_PORT_TYPE +src5_data[22] <= sink_data[22].DB_MAX_OUTPUT_PORT_TYPE +src5_data[23] <= sink_data[23].DB_MAX_OUTPUT_PORT_TYPE +src5_data[24] <= sink_data[24].DB_MAX_OUTPUT_PORT_TYPE +src5_data[25] <= sink_data[25].DB_MAX_OUTPUT_PORT_TYPE +src5_data[26] <= sink_data[26].DB_MAX_OUTPUT_PORT_TYPE +src5_data[27] <= sink_data[27].DB_MAX_OUTPUT_PORT_TYPE +src5_data[28] <= sink_data[28].DB_MAX_OUTPUT_PORT_TYPE +src5_data[29] <= sink_data[29].DB_MAX_OUTPUT_PORT_TYPE +src5_data[30] <= sink_data[30].DB_MAX_OUTPUT_PORT_TYPE +src5_data[31] <= sink_data[31].DB_MAX_OUTPUT_PORT_TYPE +src5_data[32] <= sink_data[32].DB_MAX_OUTPUT_PORT_TYPE +src5_data[33] <= sink_data[33].DB_MAX_OUTPUT_PORT_TYPE +src5_data[34] <= sink_data[34].DB_MAX_OUTPUT_PORT_TYPE +src5_data[35] <= sink_data[35].DB_MAX_OUTPUT_PORT_TYPE +src5_data[36] <= sink_data[36].DB_MAX_OUTPUT_PORT_TYPE +src5_data[37] <= sink_data[37].DB_MAX_OUTPUT_PORT_TYPE +src5_data[38] <= sink_data[38].DB_MAX_OUTPUT_PORT_TYPE +src5_data[39] <= sink_data[39].DB_MAX_OUTPUT_PORT_TYPE +src5_data[40] <= sink_data[40].DB_MAX_OUTPUT_PORT_TYPE +src5_data[41] <= sink_data[41].DB_MAX_OUTPUT_PORT_TYPE +src5_data[42] <= sink_data[42].DB_MAX_OUTPUT_PORT_TYPE +src5_data[43] <= sink_data[43].DB_MAX_OUTPUT_PORT_TYPE +src5_data[44] <= sink_data[44].DB_MAX_OUTPUT_PORT_TYPE +src5_data[45] <= sink_data[45].DB_MAX_OUTPUT_PORT_TYPE +src5_data[46] <= sink_data[46].DB_MAX_OUTPUT_PORT_TYPE +src5_data[47] <= sink_data[47].DB_MAX_OUTPUT_PORT_TYPE +src5_data[48] <= sink_data[48].DB_MAX_OUTPUT_PORT_TYPE +src5_data[49] <= sink_data[49].DB_MAX_OUTPUT_PORT_TYPE +src5_data[50] <= sink_data[50].DB_MAX_OUTPUT_PORT_TYPE +src5_data[51] <= sink_data[51].DB_MAX_OUTPUT_PORT_TYPE +src5_data[52] <= sink_data[52].DB_MAX_OUTPUT_PORT_TYPE +src5_data[53] <= sink_data[53].DB_MAX_OUTPUT_PORT_TYPE +src5_data[54] <= sink_data[54].DB_MAX_OUTPUT_PORT_TYPE +src5_data[55] <= sink_data[55].DB_MAX_OUTPUT_PORT_TYPE +src5_data[56] <= sink_data[56].DB_MAX_OUTPUT_PORT_TYPE +src5_data[57] <= sink_data[57].DB_MAX_OUTPUT_PORT_TYPE +src5_data[58] <= sink_data[58].DB_MAX_OUTPUT_PORT_TYPE +src5_data[59] <= sink_data[59].DB_MAX_OUTPUT_PORT_TYPE +src5_data[60] <= sink_data[60].DB_MAX_OUTPUT_PORT_TYPE +src5_data[61] <= sink_data[61].DB_MAX_OUTPUT_PORT_TYPE +src5_data[62] <= sink_data[62].DB_MAX_OUTPUT_PORT_TYPE +src5_data[63] <= sink_data[63].DB_MAX_OUTPUT_PORT_TYPE +src5_data[64] <= sink_data[64].DB_MAX_OUTPUT_PORT_TYPE +src5_data[65] <= sink_data[65].DB_MAX_OUTPUT_PORT_TYPE +src5_data[66] <= sink_data[66].DB_MAX_OUTPUT_PORT_TYPE +src5_data[67] <= sink_data[67].DB_MAX_OUTPUT_PORT_TYPE +src5_data[68] <= sink_data[68].DB_MAX_OUTPUT_PORT_TYPE +src5_data[69] <= sink_data[69].DB_MAX_OUTPUT_PORT_TYPE +src5_data[70] <= sink_data[70].DB_MAX_OUTPUT_PORT_TYPE +src5_data[71] <= sink_data[71].DB_MAX_OUTPUT_PORT_TYPE +src5_data[72] <= sink_data[72].DB_MAX_OUTPUT_PORT_TYPE +src5_data[73] <= sink_data[73].DB_MAX_OUTPUT_PORT_TYPE +src5_data[74] <= sink_data[74].DB_MAX_OUTPUT_PORT_TYPE +src5_data[75] <= sink_data[75].DB_MAX_OUTPUT_PORT_TYPE +src5_data[76] <= sink_data[76].DB_MAX_OUTPUT_PORT_TYPE +src5_data[77] <= sink_data[77].DB_MAX_OUTPUT_PORT_TYPE +src5_data[78] <= sink_data[78].DB_MAX_OUTPUT_PORT_TYPE +src5_data[79] <= sink_data[79].DB_MAX_OUTPUT_PORT_TYPE +src5_data[80] <= sink_data[80].DB_MAX_OUTPUT_PORT_TYPE +src5_data[81] <= sink_data[81].DB_MAX_OUTPUT_PORT_TYPE +src5_data[82] <= sink_data[82].DB_MAX_OUTPUT_PORT_TYPE +src5_data[83] <= sink_data[83].DB_MAX_OUTPUT_PORT_TYPE +src5_data[84] <= sink_data[84].DB_MAX_OUTPUT_PORT_TYPE +src5_data[85] <= sink_data[85].DB_MAX_OUTPUT_PORT_TYPE +src5_data[86] <= sink_data[86].DB_MAX_OUTPUT_PORT_TYPE +src5_data[87] <= sink_data[87].DB_MAX_OUTPUT_PORT_TYPE +src5_data[88] <= sink_data[88].DB_MAX_OUTPUT_PORT_TYPE +src5_data[89] <= sink_data[89].DB_MAX_OUTPUT_PORT_TYPE +src5_data[90] <= sink_data[90].DB_MAX_OUTPUT_PORT_TYPE +src5_data[91] <= sink_data[91].DB_MAX_OUTPUT_PORT_TYPE +src5_data[92] <= sink_data[92].DB_MAX_OUTPUT_PORT_TYPE +src5_data[93] <= sink_data[93].DB_MAX_OUTPUT_PORT_TYPE +src5_data[94] <= sink_data[94].DB_MAX_OUTPUT_PORT_TYPE +src5_data[95] <= sink_data[95].DB_MAX_OUTPUT_PORT_TYPE +src5_channel[0] <= +src5_channel[1] <= +src5_channel[2] <= +src5_channel[3] <= +src5_channel[4] <= +src5_channel[5] <= +src5_channel[6] <= +src5_channel[7] <= +src5_channel[8] <= +src5_channel[9] <= +src5_channel[10] <= +src5_channel[11] <= +src5_channel[12] <= +src5_channel[13] <= +src5_channel[14] <= +src5_channel[15] <= +src5_channel[16] <= +src5_channel[17] <= +src5_startofpacket <= sink_startofpacket.DB_MAX_OUTPUT_PORT_TYPE +src5_endofpacket <= sink_endofpacket.DB_MAX_OUTPUT_PORT_TYPE +src5_ready => sink_ready.IN1 +src6_valid <= src6_valid.DB_MAX_OUTPUT_PORT_TYPE +src6_data[0] <= sink_data[0].DB_MAX_OUTPUT_PORT_TYPE +src6_data[1] <= sink_data[1].DB_MAX_OUTPUT_PORT_TYPE +src6_data[2] <= sink_data[2].DB_MAX_OUTPUT_PORT_TYPE +src6_data[3] <= sink_data[3].DB_MAX_OUTPUT_PORT_TYPE +src6_data[4] <= sink_data[4].DB_MAX_OUTPUT_PORT_TYPE +src6_data[5] <= sink_data[5].DB_MAX_OUTPUT_PORT_TYPE +src6_data[6] <= sink_data[6].DB_MAX_OUTPUT_PORT_TYPE +src6_data[7] <= sink_data[7].DB_MAX_OUTPUT_PORT_TYPE +src6_data[8] <= sink_data[8].DB_MAX_OUTPUT_PORT_TYPE +src6_data[9] <= sink_data[9].DB_MAX_OUTPUT_PORT_TYPE +src6_data[10] <= sink_data[10].DB_MAX_OUTPUT_PORT_TYPE +src6_data[11] <= sink_data[11].DB_MAX_OUTPUT_PORT_TYPE +src6_data[12] <= sink_data[12].DB_MAX_OUTPUT_PORT_TYPE +src6_data[13] <= sink_data[13].DB_MAX_OUTPUT_PORT_TYPE +src6_data[14] <= sink_data[14].DB_MAX_OUTPUT_PORT_TYPE +src6_data[15] <= sink_data[15].DB_MAX_OUTPUT_PORT_TYPE +src6_data[16] <= sink_data[16].DB_MAX_OUTPUT_PORT_TYPE +src6_data[17] <= sink_data[17].DB_MAX_OUTPUT_PORT_TYPE +src6_data[18] <= sink_data[18].DB_MAX_OUTPUT_PORT_TYPE +src6_data[19] <= sink_data[19].DB_MAX_OUTPUT_PORT_TYPE +src6_data[20] <= sink_data[20].DB_MAX_OUTPUT_PORT_TYPE +src6_data[21] <= sink_data[21].DB_MAX_OUTPUT_PORT_TYPE +src6_data[22] <= sink_data[22].DB_MAX_OUTPUT_PORT_TYPE +src6_data[23] <= sink_data[23].DB_MAX_OUTPUT_PORT_TYPE +src6_data[24] <= sink_data[24].DB_MAX_OUTPUT_PORT_TYPE +src6_data[25] <= sink_data[25].DB_MAX_OUTPUT_PORT_TYPE +src6_data[26] <= sink_data[26].DB_MAX_OUTPUT_PORT_TYPE +src6_data[27] <= sink_data[27].DB_MAX_OUTPUT_PORT_TYPE +src6_data[28] <= sink_data[28].DB_MAX_OUTPUT_PORT_TYPE +src6_data[29] <= sink_data[29].DB_MAX_OUTPUT_PORT_TYPE +src6_data[30] <= sink_data[30].DB_MAX_OUTPUT_PORT_TYPE +src6_data[31] <= sink_data[31].DB_MAX_OUTPUT_PORT_TYPE +src6_data[32] <= sink_data[32].DB_MAX_OUTPUT_PORT_TYPE +src6_data[33] <= sink_data[33].DB_MAX_OUTPUT_PORT_TYPE +src6_data[34] <= sink_data[34].DB_MAX_OUTPUT_PORT_TYPE +src6_data[35] <= sink_data[35].DB_MAX_OUTPUT_PORT_TYPE +src6_data[36] <= sink_data[36].DB_MAX_OUTPUT_PORT_TYPE +src6_data[37] <= sink_data[37].DB_MAX_OUTPUT_PORT_TYPE +src6_data[38] <= sink_data[38].DB_MAX_OUTPUT_PORT_TYPE +src6_data[39] <= sink_data[39].DB_MAX_OUTPUT_PORT_TYPE +src6_data[40] <= sink_data[40].DB_MAX_OUTPUT_PORT_TYPE +src6_data[41] <= sink_data[41].DB_MAX_OUTPUT_PORT_TYPE +src6_data[42] <= sink_data[42].DB_MAX_OUTPUT_PORT_TYPE +src6_data[43] <= sink_data[43].DB_MAX_OUTPUT_PORT_TYPE +src6_data[44] <= sink_data[44].DB_MAX_OUTPUT_PORT_TYPE +src6_data[45] <= sink_data[45].DB_MAX_OUTPUT_PORT_TYPE +src6_data[46] <= sink_data[46].DB_MAX_OUTPUT_PORT_TYPE +src6_data[47] <= sink_data[47].DB_MAX_OUTPUT_PORT_TYPE +src6_data[48] <= sink_data[48].DB_MAX_OUTPUT_PORT_TYPE +src6_data[49] <= sink_data[49].DB_MAX_OUTPUT_PORT_TYPE +src6_data[50] <= sink_data[50].DB_MAX_OUTPUT_PORT_TYPE +src6_data[51] <= sink_data[51].DB_MAX_OUTPUT_PORT_TYPE +src6_data[52] <= sink_data[52].DB_MAX_OUTPUT_PORT_TYPE +src6_data[53] <= sink_data[53].DB_MAX_OUTPUT_PORT_TYPE +src6_data[54] <= sink_data[54].DB_MAX_OUTPUT_PORT_TYPE +src6_data[55] <= sink_data[55].DB_MAX_OUTPUT_PORT_TYPE +src6_data[56] <= sink_data[56].DB_MAX_OUTPUT_PORT_TYPE +src6_data[57] <= sink_data[57].DB_MAX_OUTPUT_PORT_TYPE +src6_data[58] <= sink_data[58].DB_MAX_OUTPUT_PORT_TYPE +src6_data[59] <= sink_data[59].DB_MAX_OUTPUT_PORT_TYPE +src6_data[60] <= sink_data[60].DB_MAX_OUTPUT_PORT_TYPE +src6_data[61] <= sink_data[61].DB_MAX_OUTPUT_PORT_TYPE +src6_data[62] <= sink_data[62].DB_MAX_OUTPUT_PORT_TYPE +src6_data[63] <= sink_data[63].DB_MAX_OUTPUT_PORT_TYPE +src6_data[64] <= sink_data[64].DB_MAX_OUTPUT_PORT_TYPE +src6_data[65] <= sink_data[65].DB_MAX_OUTPUT_PORT_TYPE +src6_data[66] <= sink_data[66].DB_MAX_OUTPUT_PORT_TYPE +src6_data[67] <= sink_data[67].DB_MAX_OUTPUT_PORT_TYPE +src6_data[68] <= sink_data[68].DB_MAX_OUTPUT_PORT_TYPE +src6_data[69] <= sink_data[69].DB_MAX_OUTPUT_PORT_TYPE +src6_data[70] <= sink_data[70].DB_MAX_OUTPUT_PORT_TYPE +src6_data[71] <= sink_data[71].DB_MAX_OUTPUT_PORT_TYPE +src6_data[72] <= sink_data[72].DB_MAX_OUTPUT_PORT_TYPE +src6_data[73] <= sink_data[73].DB_MAX_OUTPUT_PORT_TYPE +src6_data[74] <= sink_data[74].DB_MAX_OUTPUT_PORT_TYPE +src6_data[75] <= sink_data[75].DB_MAX_OUTPUT_PORT_TYPE +src6_data[76] <= sink_data[76].DB_MAX_OUTPUT_PORT_TYPE +src6_data[77] <= sink_data[77].DB_MAX_OUTPUT_PORT_TYPE +src6_data[78] <= sink_data[78].DB_MAX_OUTPUT_PORT_TYPE +src6_data[79] <= sink_data[79].DB_MAX_OUTPUT_PORT_TYPE +src6_data[80] <= sink_data[80].DB_MAX_OUTPUT_PORT_TYPE +src6_data[81] <= sink_data[81].DB_MAX_OUTPUT_PORT_TYPE +src6_data[82] <= sink_data[82].DB_MAX_OUTPUT_PORT_TYPE +src6_data[83] <= sink_data[83].DB_MAX_OUTPUT_PORT_TYPE +src6_data[84] <= sink_data[84].DB_MAX_OUTPUT_PORT_TYPE +src6_data[85] <= sink_data[85].DB_MAX_OUTPUT_PORT_TYPE +src6_data[86] <= sink_data[86].DB_MAX_OUTPUT_PORT_TYPE +src6_data[87] <= sink_data[87].DB_MAX_OUTPUT_PORT_TYPE +src6_data[88] <= sink_data[88].DB_MAX_OUTPUT_PORT_TYPE +src6_data[89] <= sink_data[89].DB_MAX_OUTPUT_PORT_TYPE +src6_data[90] <= sink_data[90].DB_MAX_OUTPUT_PORT_TYPE +src6_data[91] <= sink_data[91].DB_MAX_OUTPUT_PORT_TYPE +src6_data[92] <= sink_data[92].DB_MAX_OUTPUT_PORT_TYPE +src6_data[93] <= sink_data[93].DB_MAX_OUTPUT_PORT_TYPE +src6_data[94] <= sink_data[94].DB_MAX_OUTPUT_PORT_TYPE +src6_data[95] <= sink_data[95].DB_MAX_OUTPUT_PORT_TYPE +src6_channel[0] <= +src6_channel[1] <= +src6_channel[2] <= +src6_channel[3] <= +src6_channel[4] <= +src6_channel[5] <= +src6_channel[6] <= +src6_channel[7] <= +src6_channel[8] <= +src6_channel[9] <= +src6_channel[10] <= +src6_channel[11] <= +src6_channel[12] <= +src6_channel[13] <= +src6_channel[14] <= +src6_channel[15] <= +src6_channel[16] <= +src6_channel[17] <= +src6_startofpacket <= sink_startofpacket.DB_MAX_OUTPUT_PORT_TYPE +src6_endofpacket <= sink_endofpacket.DB_MAX_OUTPUT_PORT_TYPE +src6_ready => sink_ready.IN1 +src7_valid <= src7_valid.DB_MAX_OUTPUT_PORT_TYPE +src7_data[0] <= sink_data[0].DB_MAX_OUTPUT_PORT_TYPE +src7_data[1] <= sink_data[1].DB_MAX_OUTPUT_PORT_TYPE +src7_data[2] <= sink_data[2].DB_MAX_OUTPUT_PORT_TYPE +src7_data[3] <= sink_data[3].DB_MAX_OUTPUT_PORT_TYPE +src7_data[4] <= sink_data[4].DB_MAX_OUTPUT_PORT_TYPE +src7_data[5] <= sink_data[5].DB_MAX_OUTPUT_PORT_TYPE +src7_data[6] <= sink_data[6].DB_MAX_OUTPUT_PORT_TYPE +src7_data[7] <= sink_data[7].DB_MAX_OUTPUT_PORT_TYPE +src7_data[8] <= sink_data[8].DB_MAX_OUTPUT_PORT_TYPE +src7_data[9] <= sink_data[9].DB_MAX_OUTPUT_PORT_TYPE +src7_data[10] <= sink_data[10].DB_MAX_OUTPUT_PORT_TYPE +src7_data[11] <= sink_data[11].DB_MAX_OUTPUT_PORT_TYPE +src7_data[12] <= sink_data[12].DB_MAX_OUTPUT_PORT_TYPE +src7_data[13] <= sink_data[13].DB_MAX_OUTPUT_PORT_TYPE +src7_data[14] <= sink_data[14].DB_MAX_OUTPUT_PORT_TYPE +src7_data[15] <= sink_data[15].DB_MAX_OUTPUT_PORT_TYPE +src7_data[16] <= sink_data[16].DB_MAX_OUTPUT_PORT_TYPE +src7_data[17] <= sink_data[17].DB_MAX_OUTPUT_PORT_TYPE +src7_data[18] <= sink_data[18].DB_MAX_OUTPUT_PORT_TYPE +src7_data[19] <= sink_data[19].DB_MAX_OUTPUT_PORT_TYPE +src7_data[20] <= sink_data[20].DB_MAX_OUTPUT_PORT_TYPE +src7_data[21] <= sink_data[21].DB_MAX_OUTPUT_PORT_TYPE +src7_data[22] <= sink_data[22].DB_MAX_OUTPUT_PORT_TYPE +src7_data[23] <= sink_data[23].DB_MAX_OUTPUT_PORT_TYPE +src7_data[24] <= sink_data[24].DB_MAX_OUTPUT_PORT_TYPE +src7_data[25] <= sink_data[25].DB_MAX_OUTPUT_PORT_TYPE +src7_data[26] <= sink_data[26].DB_MAX_OUTPUT_PORT_TYPE +src7_data[27] <= sink_data[27].DB_MAX_OUTPUT_PORT_TYPE +src7_data[28] <= sink_data[28].DB_MAX_OUTPUT_PORT_TYPE +src7_data[29] <= sink_data[29].DB_MAX_OUTPUT_PORT_TYPE +src7_data[30] <= sink_data[30].DB_MAX_OUTPUT_PORT_TYPE +src7_data[31] <= sink_data[31].DB_MAX_OUTPUT_PORT_TYPE +src7_data[32] <= sink_data[32].DB_MAX_OUTPUT_PORT_TYPE +src7_data[33] <= sink_data[33].DB_MAX_OUTPUT_PORT_TYPE +src7_data[34] <= sink_data[34].DB_MAX_OUTPUT_PORT_TYPE +src7_data[35] <= sink_data[35].DB_MAX_OUTPUT_PORT_TYPE +src7_data[36] <= sink_data[36].DB_MAX_OUTPUT_PORT_TYPE +src7_data[37] <= sink_data[37].DB_MAX_OUTPUT_PORT_TYPE +src7_data[38] <= sink_data[38].DB_MAX_OUTPUT_PORT_TYPE +src7_data[39] <= sink_data[39].DB_MAX_OUTPUT_PORT_TYPE +src7_data[40] <= sink_data[40].DB_MAX_OUTPUT_PORT_TYPE +src7_data[41] <= sink_data[41].DB_MAX_OUTPUT_PORT_TYPE +src7_data[42] <= sink_data[42].DB_MAX_OUTPUT_PORT_TYPE +src7_data[43] <= sink_data[43].DB_MAX_OUTPUT_PORT_TYPE +src7_data[44] <= sink_data[44].DB_MAX_OUTPUT_PORT_TYPE +src7_data[45] <= sink_data[45].DB_MAX_OUTPUT_PORT_TYPE +src7_data[46] <= sink_data[46].DB_MAX_OUTPUT_PORT_TYPE +src7_data[47] <= sink_data[47].DB_MAX_OUTPUT_PORT_TYPE +src7_data[48] <= sink_data[48].DB_MAX_OUTPUT_PORT_TYPE +src7_data[49] <= sink_data[49].DB_MAX_OUTPUT_PORT_TYPE +src7_data[50] <= sink_data[50].DB_MAX_OUTPUT_PORT_TYPE +src7_data[51] <= sink_data[51].DB_MAX_OUTPUT_PORT_TYPE +src7_data[52] <= sink_data[52].DB_MAX_OUTPUT_PORT_TYPE +src7_data[53] <= sink_data[53].DB_MAX_OUTPUT_PORT_TYPE +src7_data[54] <= sink_data[54].DB_MAX_OUTPUT_PORT_TYPE +src7_data[55] <= sink_data[55].DB_MAX_OUTPUT_PORT_TYPE +src7_data[56] <= sink_data[56].DB_MAX_OUTPUT_PORT_TYPE +src7_data[57] <= sink_data[57].DB_MAX_OUTPUT_PORT_TYPE +src7_data[58] <= sink_data[58].DB_MAX_OUTPUT_PORT_TYPE +src7_data[59] <= sink_data[59].DB_MAX_OUTPUT_PORT_TYPE +src7_data[60] <= sink_data[60].DB_MAX_OUTPUT_PORT_TYPE +src7_data[61] <= sink_data[61].DB_MAX_OUTPUT_PORT_TYPE +src7_data[62] <= sink_data[62].DB_MAX_OUTPUT_PORT_TYPE +src7_data[63] <= sink_data[63].DB_MAX_OUTPUT_PORT_TYPE +src7_data[64] <= sink_data[64].DB_MAX_OUTPUT_PORT_TYPE +src7_data[65] <= sink_data[65].DB_MAX_OUTPUT_PORT_TYPE +src7_data[66] <= sink_data[66].DB_MAX_OUTPUT_PORT_TYPE +src7_data[67] <= sink_data[67].DB_MAX_OUTPUT_PORT_TYPE +src7_data[68] <= sink_data[68].DB_MAX_OUTPUT_PORT_TYPE +src7_data[69] <= sink_data[69].DB_MAX_OUTPUT_PORT_TYPE +src7_data[70] <= sink_data[70].DB_MAX_OUTPUT_PORT_TYPE +src7_data[71] <= sink_data[71].DB_MAX_OUTPUT_PORT_TYPE +src7_data[72] <= sink_data[72].DB_MAX_OUTPUT_PORT_TYPE +src7_data[73] <= sink_data[73].DB_MAX_OUTPUT_PORT_TYPE +src7_data[74] <= sink_data[74].DB_MAX_OUTPUT_PORT_TYPE +src7_data[75] <= sink_data[75].DB_MAX_OUTPUT_PORT_TYPE +src7_data[76] <= sink_data[76].DB_MAX_OUTPUT_PORT_TYPE +src7_data[77] <= sink_data[77].DB_MAX_OUTPUT_PORT_TYPE +src7_data[78] <= sink_data[78].DB_MAX_OUTPUT_PORT_TYPE +src7_data[79] <= sink_data[79].DB_MAX_OUTPUT_PORT_TYPE +src7_data[80] <= sink_data[80].DB_MAX_OUTPUT_PORT_TYPE +src7_data[81] <= sink_data[81].DB_MAX_OUTPUT_PORT_TYPE +src7_data[82] <= sink_data[82].DB_MAX_OUTPUT_PORT_TYPE +src7_data[83] <= sink_data[83].DB_MAX_OUTPUT_PORT_TYPE +src7_data[84] <= sink_data[84].DB_MAX_OUTPUT_PORT_TYPE +src7_data[85] <= sink_data[85].DB_MAX_OUTPUT_PORT_TYPE +src7_data[86] <= sink_data[86].DB_MAX_OUTPUT_PORT_TYPE +src7_data[87] <= sink_data[87].DB_MAX_OUTPUT_PORT_TYPE +src7_data[88] <= sink_data[88].DB_MAX_OUTPUT_PORT_TYPE +src7_data[89] <= sink_data[89].DB_MAX_OUTPUT_PORT_TYPE +src7_data[90] <= sink_data[90].DB_MAX_OUTPUT_PORT_TYPE +src7_data[91] <= sink_data[91].DB_MAX_OUTPUT_PORT_TYPE +src7_data[92] <= sink_data[92].DB_MAX_OUTPUT_PORT_TYPE +src7_data[93] <= sink_data[93].DB_MAX_OUTPUT_PORT_TYPE +src7_data[94] <= sink_data[94].DB_MAX_OUTPUT_PORT_TYPE +src7_data[95] <= sink_data[95].DB_MAX_OUTPUT_PORT_TYPE +src7_channel[0] <= +src7_channel[1] <= +src7_channel[2] <= +src7_channel[3] <= +src7_channel[4] <= +src7_channel[5] <= +src7_channel[6] <= +src7_channel[7] <= +src7_channel[8] <= +src7_channel[9] <= +src7_channel[10] <= +src7_channel[11] <= +src7_channel[12] <= +src7_channel[13] <= +src7_channel[14] <= +src7_channel[15] <= +src7_channel[16] <= +src7_channel[17] <= +src7_startofpacket <= sink_startofpacket.DB_MAX_OUTPUT_PORT_TYPE +src7_endofpacket <= sink_endofpacket.DB_MAX_OUTPUT_PORT_TYPE +src7_ready => sink_ready.IN1 +src8_valid <= src8_valid.DB_MAX_OUTPUT_PORT_TYPE +src8_data[0] <= sink_data[0].DB_MAX_OUTPUT_PORT_TYPE +src8_data[1] <= sink_data[1].DB_MAX_OUTPUT_PORT_TYPE +src8_data[2] <= sink_data[2].DB_MAX_OUTPUT_PORT_TYPE +src8_data[3] <= sink_data[3].DB_MAX_OUTPUT_PORT_TYPE +src8_data[4] <= sink_data[4].DB_MAX_OUTPUT_PORT_TYPE +src8_data[5] <= sink_data[5].DB_MAX_OUTPUT_PORT_TYPE +src8_data[6] <= sink_data[6].DB_MAX_OUTPUT_PORT_TYPE +src8_data[7] <= sink_data[7].DB_MAX_OUTPUT_PORT_TYPE +src8_data[8] <= sink_data[8].DB_MAX_OUTPUT_PORT_TYPE +src8_data[9] <= sink_data[9].DB_MAX_OUTPUT_PORT_TYPE +src8_data[10] <= sink_data[10].DB_MAX_OUTPUT_PORT_TYPE +src8_data[11] <= sink_data[11].DB_MAX_OUTPUT_PORT_TYPE +src8_data[12] <= sink_data[12].DB_MAX_OUTPUT_PORT_TYPE +src8_data[13] <= sink_data[13].DB_MAX_OUTPUT_PORT_TYPE +src8_data[14] <= sink_data[14].DB_MAX_OUTPUT_PORT_TYPE +src8_data[15] <= sink_data[15].DB_MAX_OUTPUT_PORT_TYPE +src8_data[16] <= sink_data[16].DB_MAX_OUTPUT_PORT_TYPE +src8_data[17] <= sink_data[17].DB_MAX_OUTPUT_PORT_TYPE +src8_data[18] <= sink_data[18].DB_MAX_OUTPUT_PORT_TYPE +src8_data[19] <= sink_data[19].DB_MAX_OUTPUT_PORT_TYPE +src8_data[20] <= sink_data[20].DB_MAX_OUTPUT_PORT_TYPE +src8_data[21] <= sink_data[21].DB_MAX_OUTPUT_PORT_TYPE +src8_data[22] <= sink_data[22].DB_MAX_OUTPUT_PORT_TYPE +src8_data[23] <= sink_data[23].DB_MAX_OUTPUT_PORT_TYPE +src8_data[24] <= sink_data[24].DB_MAX_OUTPUT_PORT_TYPE +src8_data[25] <= sink_data[25].DB_MAX_OUTPUT_PORT_TYPE +src8_data[26] <= sink_data[26].DB_MAX_OUTPUT_PORT_TYPE +src8_data[27] <= sink_data[27].DB_MAX_OUTPUT_PORT_TYPE +src8_data[28] <= sink_data[28].DB_MAX_OUTPUT_PORT_TYPE +src8_data[29] <= sink_data[29].DB_MAX_OUTPUT_PORT_TYPE +src8_data[30] <= sink_data[30].DB_MAX_OUTPUT_PORT_TYPE +src8_data[31] <= sink_data[31].DB_MAX_OUTPUT_PORT_TYPE +src8_data[32] <= sink_data[32].DB_MAX_OUTPUT_PORT_TYPE +src8_data[33] <= sink_data[33].DB_MAX_OUTPUT_PORT_TYPE +src8_data[34] <= sink_data[34].DB_MAX_OUTPUT_PORT_TYPE +src8_data[35] <= sink_data[35].DB_MAX_OUTPUT_PORT_TYPE +src8_data[36] <= sink_data[36].DB_MAX_OUTPUT_PORT_TYPE +src8_data[37] <= sink_data[37].DB_MAX_OUTPUT_PORT_TYPE +src8_data[38] <= sink_data[38].DB_MAX_OUTPUT_PORT_TYPE +src8_data[39] <= sink_data[39].DB_MAX_OUTPUT_PORT_TYPE +src8_data[40] <= sink_data[40].DB_MAX_OUTPUT_PORT_TYPE +src8_data[41] <= sink_data[41].DB_MAX_OUTPUT_PORT_TYPE +src8_data[42] <= sink_data[42].DB_MAX_OUTPUT_PORT_TYPE +src8_data[43] <= sink_data[43].DB_MAX_OUTPUT_PORT_TYPE +src8_data[44] <= sink_data[44].DB_MAX_OUTPUT_PORT_TYPE +src8_data[45] <= sink_data[45].DB_MAX_OUTPUT_PORT_TYPE +src8_data[46] <= sink_data[46].DB_MAX_OUTPUT_PORT_TYPE +src8_data[47] <= sink_data[47].DB_MAX_OUTPUT_PORT_TYPE +src8_data[48] <= sink_data[48].DB_MAX_OUTPUT_PORT_TYPE +src8_data[49] <= sink_data[49].DB_MAX_OUTPUT_PORT_TYPE +src8_data[50] <= sink_data[50].DB_MAX_OUTPUT_PORT_TYPE +src8_data[51] <= sink_data[51].DB_MAX_OUTPUT_PORT_TYPE +src8_data[52] <= sink_data[52].DB_MAX_OUTPUT_PORT_TYPE +src8_data[53] <= sink_data[53].DB_MAX_OUTPUT_PORT_TYPE +src8_data[54] <= sink_data[54].DB_MAX_OUTPUT_PORT_TYPE +src8_data[55] <= sink_data[55].DB_MAX_OUTPUT_PORT_TYPE +src8_data[56] <= sink_data[56].DB_MAX_OUTPUT_PORT_TYPE +src8_data[57] <= sink_data[57].DB_MAX_OUTPUT_PORT_TYPE +src8_data[58] <= sink_data[58].DB_MAX_OUTPUT_PORT_TYPE +src8_data[59] <= sink_data[59].DB_MAX_OUTPUT_PORT_TYPE +src8_data[60] <= sink_data[60].DB_MAX_OUTPUT_PORT_TYPE +src8_data[61] <= sink_data[61].DB_MAX_OUTPUT_PORT_TYPE +src8_data[62] <= sink_data[62].DB_MAX_OUTPUT_PORT_TYPE +src8_data[63] <= sink_data[63].DB_MAX_OUTPUT_PORT_TYPE +src8_data[64] <= sink_data[64].DB_MAX_OUTPUT_PORT_TYPE +src8_data[65] <= sink_data[65].DB_MAX_OUTPUT_PORT_TYPE +src8_data[66] <= sink_data[66].DB_MAX_OUTPUT_PORT_TYPE +src8_data[67] <= sink_data[67].DB_MAX_OUTPUT_PORT_TYPE +src8_data[68] <= sink_data[68].DB_MAX_OUTPUT_PORT_TYPE +src8_data[69] <= sink_data[69].DB_MAX_OUTPUT_PORT_TYPE +src8_data[70] <= sink_data[70].DB_MAX_OUTPUT_PORT_TYPE +src8_data[71] <= sink_data[71].DB_MAX_OUTPUT_PORT_TYPE +src8_data[72] <= sink_data[72].DB_MAX_OUTPUT_PORT_TYPE +src8_data[73] <= sink_data[73].DB_MAX_OUTPUT_PORT_TYPE +src8_data[74] <= sink_data[74].DB_MAX_OUTPUT_PORT_TYPE +src8_data[75] <= sink_data[75].DB_MAX_OUTPUT_PORT_TYPE +src8_data[76] <= sink_data[76].DB_MAX_OUTPUT_PORT_TYPE +src8_data[77] <= sink_data[77].DB_MAX_OUTPUT_PORT_TYPE +src8_data[78] <= sink_data[78].DB_MAX_OUTPUT_PORT_TYPE +src8_data[79] <= sink_data[79].DB_MAX_OUTPUT_PORT_TYPE +src8_data[80] <= sink_data[80].DB_MAX_OUTPUT_PORT_TYPE +src8_data[81] <= sink_data[81].DB_MAX_OUTPUT_PORT_TYPE +src8_data[82] <= sink_data[82].DB_MAX_OUTPUT_PORT_TYPE +src8_data[83] <= sink_data[83].DB_MAX_OUTPUT_PORT_TYPE +src8_data[84] <= sink_data[84].DB_MAX_OUTPUT_PORT_TYPE +src8_data[85] <= sink_data[85].DB_MAX_OUTPUT_PORT_TYPE +src8_data[86] <= sink_data[86].DB_MAX_OUTPUT_PORT_TYPE +src8_data[87] <= sink_data[87].DB_MAX_OUTPUT_PORT_TYPE +src8_data[88] <= sink_data[88].DB_MAX_OUTPUT_PORT_TYPE +src8_data[89] <= sink_data[89].DB_MAX_OUTPUT_PORT_TYPE +src8_data[90] <= sink_data[90].DB_MAX_OUTPUT_PORT_TYPE +src8_data[91] <= sink_data[91].DB_MAX_OUTPUT_PORT_TYPE +src8_data[92] <= sink_data[92].DB_MAX_OUTPUT_PORT_TYPE +src8_data[93] <= sink_data[93].DB_MAX_OUTPUT_PORT_TYPE +src8_data[94] <= sink_data[94].DB_MAX_OUTPUT_PORT_TYPE +src8_data[95] <= sink_data[95].DB_MAX_OUTPUT_PORT_TYPE +src8_channel[0] <= +src8_channel[1] <= +src8_channel[2] <= +src8_channel[3] <= +src8_channel[4] <= +src8_channel[5] <= +src8_channel[6] <= +src8_channel[7] <= +src8_channel[8] <= +src8_channel[9] <= +src8_channel[10] <= +src8_channel[11] <= +src8_channel[12] <= +src8_channel[13] <= +src8_channel[14] <= +src8_channel[15] <= +src8_channel[16] <= +src8_channel[17] <= +src8_startofpacket <= sink_startofpacket.DB_MAX_OUTPUT_PORT_TYPE +src8_endofpacket <= sink_endofpacket.DB_MAX_OUTPUT_PORT_TYPE +src8_ready => sink_ready.IN1 +src9_valid <= src9_valid.DB_MAX_OUTPUT_PORT_TYPE +src9_data[0] <= sink_data[0].DB_MAX_OUTPUT_PORT_TYPE +src9_data[1] <= sink_data[1].DB_MAX_OUTPUT_PORT_TYPE +src9_data[2] <= sink_data[2].DB_MAX_OUTPUT_PORT_TYPE +src9_data[3] <= sink_data[3].DB_MAX_OUTPUT_PORT_TYPE +src9_data[4] <= sink_data[4].DB_MAX_OUTPUT_PORT_TYPE +src9_data[5] <= sink_data[5].DB_MAX_OUTPUT_PORT_TYPE +src9_data[6] <= sink_data[6].DB_MAX_OUTPUT_PORT_TYPE +src9_data[7] <= sink_data[7].DB_MAX_OUTPUT_PORT_TYPE +src9_data[8] <= sink_data[8].DB_MAX_OUTPUT_PORT_TYPE +src9_data[9] <= sink_data[9].DB_MAX_OUTPUT_PORT_TYPE +src9_data[10] <= sink_data[10].DB_MAX_OUTPUT_PORT_TYPE +src9_data[11] <= sink_data[11].DB_MAX_OUTPUT_PORT_TYPE +src9_data[12] <= sink_data[12].DB_MAX_OUTPUT_PORT_TYPE +src9_data[13] <= sink_data[13].DB_MAX_OUTPUT_PORT_TYPE +src9_data[14] <= sink_data[14].DB_MAX_OUTPUT_PORT_TYPE +src9_data[15] <= sink_data[15].DB_MAX_OUTPUT_PORT_TYPE +src9_data[16] <= sink_data[16].DB_MAX_OUTPUT_PORT_TYPE +src9_data[17] <= sink_data[17].DB_MAX_OUTPUT_PORT_TYPE +src9_data[18] <= sink_data[18].DB_MAX_OUTPUT_PORT_TYPE +src9_data[19] <= sink_data[19].DB_MAX_OUTPUT_PORT_TYPE +src9_data[20] <= sink_data[20].DB_MAX_OUTPUT_PORT_TYPE +src9_data[21] <= sink_data[21].DB_MAX_OUTPUT_PORT_TYPE +src9_data[22] <= sink_data[22].DB_MAX_OUTPUT_PORT_TYPE +src9_data[23] <= sink_data[23].DB_MAX_OUTPUT_PORT_TYPE +src9_data[24] <= sink_data[24].DB_MAX_OUTPUT_PORT_TYPE +src9_data[25] <= sink_data[25].DB_MAX_OUTPUT_PORT_TYPE +src9_data[26] <= sink_data[26].DB_MAX_OUTPUT_PORT_TYPE +src9_data[27] <= sink_data[27].DB_MAX_OUTPUT_PORT_TYPE +src9_data[28] <= sink_data[28].DB_MAX_OUTPUT_PORT_TYPE +src9_data[29] <= sink_data[29].DB_MAX_OUTPUT_PORT_TYPE +src9_data[30] <= sink_data[30].DB_MAX_OUTPUT_PORT_TYPE +src9_data[31] <= sink_data[31].DB_MAX_OUTPUT_PORT_TYPE +src9_data[32] <= sink_data[32].DB_MAX_OUTPUT_PORT_TYPE +src9_data[33] <= sink_data[33].DB_MAX_OUTPUT_PORT_TYPE +src9_data[34] <= sink_data[34].DB_MAX_OUTPUT_PORT_TYPE +src9_data[35] <= sink_data[35].DB_MAX_OUTPUT_PORT_TYPE +src9_data[36] <= sink_data[36].DB_MAX_OUTPUT_PORT_TYPE +src9_data[37] <= sink_data[37].DB_MAX_OUTPUT_PORT_TYPE +src9_data[38] <= sink_data[38].DB_MAX_OUTPUT_PORT_TYPE +src9_data[39] <= sink_data[39].DB_MAX_OUTPUT_PORT_TYPE +src9_data[40] <= sink_data[40].DB_MAX_OUTPUT_PORT_TYPE +src9_data[41] <= sink_data[41].DB_MAX_OUTPUT_PORT_TYPE +src9_data[42] <= sink_data[42].DB_MAX_OUTPUT_PORT_TYPE +src9_data[43] <= sink_data[43].DB_MAX_OUTPUT_PORT_TYPE +src9_data[44] <= sink_data[44].DB_MAX_OUTPUT_PORT_TYPE +src9_data[45] <= sink_data[45].DB_MAX_OUTPUT_PORT_TYPE +src9_data[46] <= sink_data[46].DB_MAX_OUTPUT_PORT_TYPE +src9_data[47] <= sink_data[47].DB_MAX_OUTPUT_PORT_TYPE +src9_data[48] <= sink_data[48].DB_MAX_OUTPUT_PORT_TYPE +src9_data[49] <= sink_data[49].DB_MAX_OUTPUT_PORT_TYPE +src9_data[50] <= sink_data[50].DB_MAX_OUTPUT_PORT_TYPE +src9_data[51] <= sink_data[51].DB_MAX_OUTPUT_PORT_TYPE +src9_data[52] <= sink_data[52].DB_MAX_OUTPUT_PORT_TYPE +src9_data[53] <= sink_data[53].DB_MAX_OUTPUT_PORT_TYPE +src9_data[54] <= sink_data[54].DB_MAX_OUTPUT_PORT_TYPE +src9_data[55] <= sink_data[55].DB_MAX_OUTPUT_PORT_TYPE +src9_data[56] <= sink_data[56].DB_MAX_OUTPUT_PORT_TYPE +src9_data[57] <= sink_data[57].DB_MAX_OUTPUT_PORT_TYPE +src9_data[58] <= sink_data[58].DB_MAX_OUTPUT_PORT_TYPE +src9_data[59] <= sink_data[59].DB_MAX_OUTPUT_PORT_TYPE +src9_data[60] <= sink_data[60].DB_MAX_OUTPUT_PORT_TYPE +src9_data[61] <= sink_data[61].DB_MAX_OUTPUT_PORT_TYPE +src9_data[62] <= sink_data[62].DB_MAX_OUTPUT_PORT_TYPE +src9_data[63] <= sink_data[63].DB_MAX_OUTPUT_PORT_TYPE +src9_data[64] <= sink_data[64].DB_MAX_OUTPUT_PORT_TYPE +src9_data[65] <= sink_data[65].DB_MAX_OUTPUT_PORT_TYPE +src9_data[66] <= sink_data[66].DB_MAX_OUTPUT_PORT_TYPE +src9_data[67] <= sink_data[67].DB_MAX_OUTPUT_PORT_TYPE +src9_data[68] <= sink_data[68].DB_MAX_OUTPUT_PORT_TYPE +src9_data[69] <= sink_data[69].DB_MAX_OUTPUT_PORT_TYPE +src9_data[70] <= sink_data[70].DB_MAX_OUTPUT_PORT_TYPE +src9_data[71] <= sink_data[71].DB_MAX_OUTPUT_PORT_TYPE +src9_data[72] <= sink_data[72].DB_MAX_OUTPUT_PORT_TYPE +src9_data[73] <= sink_data[73].DB_MAX_OUTPUT_PORT_TYPE +src9_data[74] <= sink_data[74].DB_MAX_OUTPUT_PORT_TYPE +src9_data[75] <= sink_data[75].DB_MAX_OUTPUT_PORT_TYPE +src9_data[76] <= sink_data[76].DB_MAX_OUTPUT_PORT_TYPE +src9_data[77] <= sink_data[77].DB_MAX_OUTPUT_PORT_TYPE +src9_data[78] <= sink_data[78].DB_MAX_OUTPUT_PORT_TYPE +src9_data[79] <= sink_data[79].DB_MAX_OUTPUT_PORT_TYPE +src9_data[80] <= sink_data[80].DB_MAX_OUTPUT_PORT_TYPE +src9_data[81] <= sink_data[81].DB_MAX_OUTPUT_PORT_TYPE +src9_data[82] <= sink_data[82].DB_MAX_OUTPUT_PORT_TYPE +src9_data[83] <= sink_data[83].DB_MAX_OUTPUT_PORT_TYPE +src9_data[84] <= sink_data[84].DB_MAX_OUTPUT_PORT_TYPE +src9_data[85] <= sink_data[85].DB_MAX_OUTPUT_PORT_TYPE +src9_data[86] <= sink_data[86].DB_MAX_OUTPUT_PORT_TYPE +src9_data[87] <= sink_data[87].DB_MAX_OUTPUT_PORT_TYPE +src9_data[88] <= sink_data[88].DB_MAX_OUTPUT_PORT_TYPE +src9_data[89] <= sink_data[89].DB_MAX_OUTPUT_PORT_TYPE +src9_data[90] <= sink_data[90].DB_MAX_OUTPUT_PORT_TYPE +src9_data[91] <= sink_data[91].DB_MAX_OUTPUT_PORT_TYPE +src9_data[92] <= sink_data[92].DB_MAX_OUTPUT_PORT_TYPE +src9_data[93] <= sink_data[93].DB_MAX_OUTPUT_PORT_TYPE +src9_data[94] <= sink_data[94].DB_MAX_OUTPUT_PORT_TYPE +src9_data[95] <= sink_data[95].DB_MAX_OUTPUT_PORT_TYPE +src9_channel[0] <= +src9_channel[1] <= +src9_channel[2] <= +src9_channel[3] <= +src9_channel[4] <= +src9_channel[5] <= +src9_channel[6] <= +src9_channel[7] <= +src9_channel[8] <= +src9_channel[9] <= +src9_channel[10] <= +src9_channel[11] <= +src9_channel[12] <= +src9_channel[13] <= +src9_channel[14] <= +src9_channel[15] <= +src9_channel[16] <= +src9_channel[17] <= +src9_startofpacket <= sink_startofpacket.DB_MAX_OUTPUT_PORT_TYPE +src9_endofpacket <= sink_endofpacket.DB_MAX_OUTPUT_PORT_TYPE +src9_ready => sink_ready.IN1 +src10_valid <= src10_valid.DB_MAX_OUTPUT_PORT_TYPE +src10_data[0] <= sink_data[0].DB_MAX_OUTPUT_PORT_TYPE +src10_data[1] <= sink_data[1].DB_MAX_OUTPUT_PORT_TYPE +src10_data[2] <= sink_data[2].DB_MAX_OUTPUT_PORT_TYPE +src10_data[3] <= sink_data[3].DB_MAX_OUTPUT_PORT_TYPE +src10_data[4] <= sink_data[4].DB_MAX_OUTPUT_PORT_TYPE +src10_data[5] <= sink_data[5].DB_MAX_OUTPUT_PORT_TYPE +src10_data[6] <= sink_data[6].DB_MAX_OUTPUT_PORT_TYPE +src10_data[7] <= sink_data[7].DB_MAX_OUTPUT_PORT_TYPE +src10_data[8] <= sink_data[8].DB_MAX_OUTPUT_PORT_TYPE +src10_data[9] <= sink_data[9].DB_MAX_OUTPUT_PORT_TYPE +src10_data[10] <= sink_data[10].DB_MAX_OUTPUT_PORT_TYPE +src10_data[11] <= sink_data[11].DB_MAX_OUTPUT_PORT_TYPE +src10_data[12] <= sink_data[12].DB_MAX_OUTPUT_PORT_TYPE +src10_data[13] <= sink_data[13].DB_MAX_OUTPUT_PORT_TYPE +src10_data[14] <= sink_data[14].DB_MAX_OUTPUT_PORT_TYPE +src10_data[15] <= sink_data[15].DB_MAX_OUTPUT_PORT_TYPE +src10_data[16] <= sink_data[16].DB_MAX_OUTPUT_PORT_TYPE +src10_data[17] <= sink_data[17].DB_MAX_OUTPUT_PORT_TYPE +src10_data[18] <= sink_data[18].DB_MAX_OUTPUT_PORT_TYPE +src10_data[19] <= sink_data[19].DB_MAX_OUTPUT_PORT_TYPE +src10_data[20] <= sink_data[20].DB_MAX_OUTPUT_PORT_TYPE +src10_data[21] <= sink_data[21].DB_MAX_OUTPUT_PORT_TYPE +src10_data[22] <= sink_data[22].DB_MAX_OUTPUT_PORT_TYPE +src10_data[23] <= sink_data[23].DB_MAX_OUTPUT_PORT_TYPE +src10_data[24] <= sink_data[24].DB_MAX_OUTPUT_PORT_TYPE +src10_data[25] <= sink_data[25].DB_MAX_OUTPUT_PORT_TYPE +src10_data[26] <= sink_data[26].DB_MAX_OUTPUT_PORT_TYPE +src10_data[27] <= sink_data[27].DB_MAX_OUTPUT_PORT_TYPE +src10_data[28] <= sink_data[28].DB_MAX_OUTPUT_PORT_TYPE +src10_data[29] <= sink_data[29].DB_MAX_OUTPUT_PORT_TYPE +src10_data[30] <= sink_data[30].DB_MAX_OUTPUT_PORT_TYPE +src10_data[31] <= sink_data[31].DB_MAX_OUTPUT_PORT_TYPE +src10_data[32] <= sink_data[32].DB_MAX_OUTPUT_PORT_TYPE +src10_data[33] <= sink_data[33].DB_MAX_OUTPUT_PORT_TYPE +src10_data[34] <= sink_data[34].DB_MAX_OUTPUT_PORT_TYPE +src10_data[35] <= sink_data[35].DB_MAX_OUTPUT_PORT_TYPE +src10_data[36] <= sink_data[36].DB_MAX_OUTPUT_PORT_TYPE +src10_data[37] <= sink_data[37].DB_MAX_OUTPUT_PORT_TYPE +src10_data[38] <= sink_data[38].DB_MAX_OUTPUT_PORT_TYPE +src10_data[39] <= sink_data[39].DB_MAX_OUTPUT_PORT_TYPE +src10_data[40] <= sink_data[40].DB_MAX_OUTPUT_PORT_TYPE +src10_data[41] <= sink_data[41].DB_MAX_OUTPUT_PORT_TYPE +src10_data[42] <= sink_data[42].DB_MAX_OUTPUT_PORT_TYPE +src10_data[43] <= sink_data[43].DB_MAX_OUTPUT_PORT_TYPE +src10_data[44] <= sink_data[44].DB_MAX_OUTPUT_PORT_TYPE +src10_data[45] <= sink_data[45].DB_MAX_OUTPUT_PORT_TYPE +src10_data[46] <= sink_data[46].DB_MAX_OUTPUT_PORT_TYPE +src10_data[47] <= sink_data[47].DB_MAX_OUTPUT_PORT_TYPE +src10_data[48] <= sink_data[48].DB_MAX_OUTPUT_PORT_TYPE +src10_data[49] <= sink_data[49].DB_MAX_OUTPUT_PORT_TYPE +src10_data[50] <= sink_data[50].DB_MAX_OUTPUT_PORT_TYPE +src10_data[51] <= sink_data[51].DB_MAX_OUTPUT_PORT_TYPE +src10_data[52] <= sink_data[52].DB_MAX_OUTPUT_PORT_TYPE +src10_data[53] <= sink_data[53].DB_MAX_OUTPUT_PORT_TYPE +src10_data[54] <= sink_data[54].DB_MAX_OUTPUT_PORT_TYPE +src10_data[55] <= sink_data[55].DB_MAX_OUTPUT_PORT_TYPE +src10_data[56] <= sink_data[56].DB_MAX_OUTPUT_PORT_TYPE +src10_data[57] <= sink_data[57].DB_MAX_OUTPUT_PORT_TYPE +src10_data[58] <= sink_data[58].DB_MAX_OUTPUT_PORT_TYPE +src10_data[59] <= sink_data[59].DB_MAX_OUTPUT_PORT_TYPE +src10_data[60] <= sink_data[60].DB_MAX_OUTPUT_PORT_TYPE +src10_data[61] <= sink_data[61].DB_MAX_OUTPUT_PORT_TYPE +src10_data[62] <= sink_data[62].DB_MAX_OUTPUT_PORT_TYPE +src10_data[63] <= sink_data[63].DB_MAX_OUTPUT_PORT_TYPE +src10_data[64] <= sink_data[64].DB_MAX_OUTPUT_PORT_TYPE +src10_data[65] <= sink_data[65].DB_MAX_OUTPUT_PORT_TYPE +src10_data[66] <= sink_data[66].DB_MAX_OUTPUT_PORT_TYPE +src10_data[67] <= sink_data[67].DB_MAX_OUTPUT_PORT_TYPE +src10_data[68] <= sink_data[68].DB_MAX_OUTPUT_PORT_TYPE +src10_data[69] <= sink_data[69].DB_MAX_OUTPUT_PORT_TYPE +src10_data[70] <= sink_data[70].DB_MAX_OUTPUT_PORT_TYPE +src10_data[71] <= sink_data[71].DB_MAX_OUTPUT_PORT_TYPE +src10_data[72] <= sink_data[72].DB_MAX_OUTPUT_PORT_TYPE +src10_data[73] <= sink_data[73].DB_MAX_OUTPUT_PORT_TYPE +src10_data[74] <= sink_data[74].DB_MAX_OUTPUT_PORT_TYPE +src10_data[75] <= sink_data[75].DB_MAX_OUTPUT_PORT_TYPE +src10_data[76] <= sink_data[76].DB_MAX_OUTPUT_PORT_TYPE +src10_data[77] <= sink_data[77].DB_MAX_OUTPUT_PORT_TYPE +src10_data[78] <= sink_data[78].DB_MAX_OUTPUT_PORT_TYPE +src10_data[79] <= sink_data[79].DB_MAX_OUTPUT_PORT_TYPE +src10_data[80] <= sink_data[80].DB_MAX_OUTPUT_PORT_TYPE +src10_data[81] <= sink_data[81].DB_MAX_OUTPUT_PORT_TYPE +src10_data[82] <= sink_data[82].DB_MAX_OUTPUT_PORT_TYPE +src10_data[83] <= sink_data[83].DB_MAX_OUTPUT_PORT_TYPE +src10_data[84] <= sink_data[84].DB_MAX_OUTPUT_PORT_TYPE +src10_data[85] <= sink_data[85].DB_MAX_OUTPUT_PORT_TYPE +src10_data[86] <= sink_data[86].DB_MAX_OUTPUT_PORT_TYPE +src10_data[87] <= sink_data[87].DB_MAX_OUTPUT_PORT_TYPE +src10_data[88] <= sink_data[88].DB_MAX_OUTPUT_PORT_TYPE +src10_data[89] <= sink_data[89].DB_MAX_OUTPUT_PORT_TYPE +src10_data[90] <= sink_data[90].DB_MAX_OUTPUT_PORT_TYPE +src10_data[91] <= sink_data[91].DB_MAX_OUTPUT_PORT_TYPE +src10_data[92] <= sink_data[92].DB_MAX_OUTPUT_PORT_TYPE +src10_data[93] <= sink_data[93].DB_MAX_OUTPUT_PORT_TYPE +src10_data[94] <= sink_data[94].DB_MAX_OUTPUT_PORT_TYPE +src10_data[95] <= sink_data[95].DB_MAX_OUTPUT_PORT_TYPE +src10_channel[0] <= +src10_channel[1] <= +src10_channel[2] <= +src10_channel[3] <= +src10_channel[4] <= +src10_channel[5] <= +src10_channel[6] <= +src10_channel[7] <= +src10_channel[8] <= +src10_channel[9] <= +src10_channel[10] <= +src10_channel[11] <= +src10_channel[12] <= +src10_channel[13] <= +src10_channel[14] <= +src10_channel[15] <= +src10_channel[16] <= +src10_channel[17] <= +src10_startofpacket <= sink_startofpacket.DB_MAX_OUTPUT_PORT_TYPE +src10_endofpacket <= sink_endofpacket.DB_MAX_OUTPUT_PORT_TYPE +src10_ready => sink_ready.IN1 +src11_valid <= src11_valid.DB_MAX_OUTPUT_PORT_TYPE +src11_data[0] <= sink_data[0].DB_MAX_OUTPUT_PORT_TYPE +src11_data[1] <= sink_data[1].DB_MAX_OUTPUT_PORT_TYPE +src11_data[2] <= sink_data[2].DB_MAX_OUTPUT_PORT_TYPE +src11_data[3] <= sink_data[3].DB_MAX_OUTPUT_PORT_TYPE +src11_data[4] <= sink_data[4].DB_MAX_OUTPUT_PORT_TYPE +src11_data[5] <= sink_data[5].DB_MAX_OUTPUT_PORT_TYPE +src11_data[6] <= sink_data[6].DB_MAX_OUTPUT_PORT_TYPE +src11_data[7] <= sink_data[7].DB_MAX_OUTPUT_PORT_TYPE +src11_data[8] <= sink_data[8].DB_MAX_OUTPUT_PORT_TYPE +src11_data[9] <= sink_data[9].DB_MAX_OUTPUT_PORT_TYPE +src11_data[10] <= sink_data[10].DB_MAX_OUTPUT_PORT_TYPE +src11_data[11] <= sink_data[11].DB_MAX_OUTPUT_PORT_TYPE +src11_data[12] <= sink_data[12].DB_MAX_OUTPUT_PORT_TYPE +src11_data[13] <= sink_data[13].DB_MAX_OUTPUT_PORT_TYPE +src11_data[14] <= sink_data[14].DB_MAX_OUTPUT_PORT_TYPE +src11_data[15] <= sink_data[15].DB_MAX_OUTPUT_PORT_TYPE +src11_data[16] <= sink_data[16].DB_MAX_OUTPUT_PORT_TYPE +src11_data[17] <= sink_data[17].DB_MAX_OUTPUT_PORT_TYPE +src11_data[18] <= sink_data[18].DB_MAX_OUTPUT_PORT_TYPE +src11_data[19] <= sink_data[19].DB_MAX_OUTPUT_PORT_TYPE +src11_data[20] <= sink_data[20].DB_MAX_OUTPUT_PORT_TYPE +src11_data[21] <= sink_data[21].DB_MAX_OUTPUT_PORT_TYPE +src11_data[22] <= sink_data[22].DB_MAX_OUTPUT_PORT_TYPE +src11_data[23] <= sink_data[23].DB_MAX_OUTPUT_PORT_TYPE +src11_data[24] <= sink_data[24].DB_MAX_OUTPUT_PORT_TYPE +src11_data[25] <= sink_data[25].DB_MAX_OUTPUT_PORT_TYPE +src11_data[26] <= sink_data[26].DB_MAX_OUTPUT_PORT_TYPE +src11_data[27] <= sink_data[27].DB_MAX_OUTPUT_PORT_TYPE +src11_data[28] <= sink_data[28].DB_MAX_OUTPUT_PORT_TYPE +src11_data[29] <= sink_data[29].DB_MAX_OUTPUT_PORT_TYPE +src11_data[30] <= sink_data[30].DB_MAX_OUTPUT_PORT_TYPE +src11_data[31] <= sink_data[31].DB_MAX_OUTPUT_PORT_TYPE +src11_data[32] <= sink_data[32].DB_MAX_OUTPUT_PORT_TYPE +src11_data[33] <= sink_data[33].DB_MAX_OUTPUT_PORT_TYPE +src11_data[34] <= sink_data[34].DB_MAX_OUTPUT_PORT_TYPE +src11_data[35] <= sink_data[35].DB_MAX_OUTPUT_PORT_TYPE +src11_data[36] <= sink_data[36].DB_MAX_OUTPUT_PORT_TYPE +src11_data[37] <= sink_data[37].DB_MAX_OUTPUT_PORT_TYPE +src11_data[38] <= sink_data[38].DB_MAX_OUTPUT_PORT_TYPE +src11_data[39] <= sink_data[39].DB_MAX_OUTPUT_PORT_TYPE +src11_data[40] <= sink_data[40].DB_MAX_OUTPUT_PORT_TYPE +src11_data[41] <= sink_data[41].DB_MAX_OUTPUT_PORT_TYPE +src11_data[42] <= sink_data[42].DB_MAX_OUTPUT_PORT_TYPE +src11_data[43] <= sink_data[43].DB_MAX_OUTPUT_PORT_TYPE +src11_data[44] <= sink_data[44].DB_MAX_OUTPUT_PORT_TYPE +src11_data[45] <= sink_data[45].DB_MAX_OUTPUT_PORT_TYPE +src11_data[46] <= sink_data[46].DB_MAX_OUTPUT_PORT_TYPE +src11_data[47] <= sink_data[47].DB_MAX_OUTPUT_PORT_TYPE +src11_data[48] <= sink_data[48].DB_MAX_OUTPUT_PORT_TYPE +src11_data[49] <= sink_data[49].DB_MAX_OUTPUT_PORT_TYPE +src11_data[50] <= sink_data[50].DB_MAX_OUTPUT_PORT_TYPE +src11_data[51] <= sink_data[51].DB_MAX_OUTPUT_PORT_TYPE +src11_data[52] <= sink_data[52].DB_MAX_OUTPUT_PORT_TYPE +src11_data[53] <= sink_data[53].DB_MAX_OUTPUT_PORT_TYPE +src11_data[54] <= sink_data[54].DB_MAX_OUTPUT_PORT_TYPE +src11_data[55] <= sink_data[55].DB_MAX_OUTPUT_PORT_TYPE +src11_data[56] <= sink_data[56].DB_MAX_OUTPUT_PORT_TYPE +src11_data[57] <= sink_data[57].DB_MAX_OUTPUT_PORT_TYPE +src11_data[58] <= sink_data[58].DB_MAX_OUTPUT_PORT_TYPE +src11_data[59] <= sink_data[59].DB_MAX_OUTPUT_PORT_TYPE +src11_data[60] <= sink_data[60].DB_MAX_OUTPUT_PORT_TYPE +src11_data[61] <= sink_data[61].DB_MAX_OUTPUT_PORT_TYPE +src11_data[62] <= sink_data[62].DB_MAX_OUTPUT_PORT_TYPE +src11_data[63] <= sink_data[63].DB_MAX_OUTPUT_PORT_TYPE +src11_data[64] <= sink_data[64].DB_MAX_OUTPUT_PORT_TYPE +src11_data[65] <= sink_data[65].DB_MAX_OUTPUT_PORT_TYPE +src11_data[66] <= sink_data[66].DB_MAX_OUTPUT_PORT_TYPE +src11_data[67] <= sink_data[67].DB_MAX_OUTPUT_PORT_TYPE +src11_data[68] <= sink_data[68].DB_MAX_OUTPUT_PORT_TYPE +src11_data[69] <= sink_data[69].DB_MAX_OUTPUT_PORT_TYPE +src11_data[70] <= sink_data[70].DB_MAX_OUTPUT_PORT_TYPE +src11_data[71] <= sink_data[71].DB_MAX_OUTPUT_PORT_TYPE +src11_data[72] <= sink_data[72].DB_MAX_OUTPUT_PORT_TYPE +src11_data[73] <= sink_data[73].DB_MAX_OUTPUT_PORT_TYPE +src11_data[74] <= sink_data[74].DB_MAX_OUTPUT_PORT_TYPE +src11_data[75] <= sink_data[75].DB_MAX_OUTPUT_PORT_TYPE +src11_data[76] <= sink_data[76].DB_MAX_OUTPUT_PORT_TYPE +src11_data[77] <= sink_data[77].DB_MAX_OUTPUT_PORT_TYPE +src11_data[78] <= sink_data[78].DB_MAX_OUTPUT_PORT_TYPE +src11_data[79] <= sink_data[79].DB_MAX_OUTPUT_PORT_TYPE +src11_data[80] <= sink_data[80].DB_MAX_OUTPUT_PORT_TYPE +src11_data[81] <= sink_data[81].DB_MAX_OUTPUT_PORT_TYPE +src11_data[82] <= sink_data[82].DB_MAX_OUTPUT_PORT_TYPE +src11_data[83] <= sink_data[83].DB_MAX_OUTPUT_PORT_TYPE +src11_data[84] <= sink_data[84].DB_MAX_OUTPUT_PORT_TYPE +src11_data[85] <= sink_data[85].DB_MAX_OUTPUT_PORT_TYPE +src11_data[86] <= sink_data[86].DB_MAX_OUTPUT_PORT_TYPE +src11_data[87] <= sink_data[87].DB_MAX_OUTPUT_PORT_TYPE +src11_data[88] <= sink_data[88].DB_MAX_OUTPUT_PORT_TYPE +src11_data[89] <= sink_data[89].DB_MAX_OUTPUT_PORT_TYPE +src11_data[90] <= sink_data[90].DB_MAX_OUTPUT_PORT_TYPE +src11_data[91] <= sink_data[91].DB_MAX_OUTPUT_PORT_TYPE +src11_data[92] <= sink_data[92].DB_MAX_OUTPUT_PORT_TYPE +src11_data[93] <= sink_data[93].DB_MAX_OUTPUT_PORT_TYPE +src11_data[94] <= sink_data[94].DB_MAX_OUTPUT_PORT_TYPE +src11_data[95] <= sink_data[95].DB_MAX_OUTPUT_PORT_TYPE +src11_channel[0] <= +src11_channel[1] <= +src11_channel[2] <= +src11_channel[3] <= +src11_channel[4] <= +src11_channel[5] <= +src11_channel[6] <= +src11_channel[7] <= +src11_channel[8] <= +src11_channel[9] <= +src11_channel[10] <= +src11_channel[11] <= +src11_channel[12] <= +src11_channel[13] <= +src11_channel[14] <= +src11_channel[15] <= +src11_channel[16] <= +src11_channel[17] <= +src11_startofpacket <= sink_startofpacket.DB_MAX_OUTPUT_PORT_TYPE +src11_endofpacket <= sink_endofpacket.DB_MAX_OUTPUT_PORT_TYPE +src11_ready => sink_ready.IN1 +src12_valid <= src12_valid.DB_MAX_OUTPUT_PORT_TYPE +src12_data[0] <= sink_data[0].DB_MAX_OUTPUT_PORT_TYPE +src12_data[1] <= sink_data[1].DB_MAX_OUTPUT_PORT_TYPE +src12_data[2] <= sink_data[2].DB_MAX_OUTPUT_PORT_TYPE +src12_data[3] <= sink_data[3].DB_MAX_OUTPUT_PORT_TYPE +src12_data[4] <= sink_data[4].DB_MAX_OUTPUT_PORT_TYPE +src12_data[5] <= sink_data[5].DB_MAX_OUTPUT_PORT_TYPE +src12_data[6] <= sink_data[6].DB_MAX_OUTPUT_PORT_TYPE +src12_data[7] <= sink_data[7].DB_MAX_OUTPUT_PORT_TYPE +src12_data[8] <= sink_data[8].DB_MAX_OUTPUT_PORT_TYPE +src12_data[9] <= sink_data[9].DB_MAX_OUTPUT_PORT_TYPE +src12_data[10] <= sink_data[10].DB_MAX_OUTPUT_PORT_TYPE +src12_data[11] <= sink_data[11].DB_MAX_OUTPUT_PORT_TYPE +src12_data[12] <= sink_data[12].DB_MAX_OUTPUT_PORT_TYPE +src12_data[13] <= sink_data[13].DB_MAX_OUTPUT_PORT_TYPE +src12_data[14] <= sink_data[14].DB_MAX_OUTPUT_PORT_TYPE +src12_data[15] <= sink_data[15].DB_MAX_OUTPUT_PORT_TYPE +src12_data[16] <= sink_data[16].DB_MAX_OUTPUT_PORT_TYPE +src12_data[17] <= sink_data[17].DB_MAX_OUTPUT_PORT_TYPE +src12_data[18] <= sink_data[18].DB_MAX_OUTPUT_PORT_TYPE +src12_data[19] <= sink_data[19].DB_MAX_OUTPUT_PORT_TYPE +src12_data[20] <= sink_data[20].DB_MAX_OUTPUT_PORT_TYPE +src12_data[21] <= sink_data[21].DB_MAX_OUTPUT_PORT_TYPE +src12_data[22] <= sink_data[22].DB_MAX_OUTPUT_PORT_TYPE +src12_data[23] <= sink_data[23].DB_MAX_OUTPUT_PORT_TYPE +src12_data[24] <= sink_data[24].DB_MAX_OUTPUT_PORT_TYPE +src12_data[25] <= sink_data[25].DB_MAX_OUTPUT_PORT_TYPE +src12_data[26] <= sink_data[26].DB_MAX_OUTPUT_PORT_TYPE +src12_data[27] <= sink_data[27].DB_MAX_OUTPUT_PORT_TYPE +src12_data[28] <= sink_data[28].DB_MAX_OUTPUT_PORT_TYPE +src12_data[29] <= sink_data[29].DB_MAX_OUTPUT_PORT_TYPE +src12_data[30] <= sink_data[30].DB_MAX_OUTPUT_PORT_TYPE +src12_data[31] <= sink_data[31].DB_MAX_OUTPUT_PORT_TYPE +src12_data[32] <= sink_data[32].DB_MAX_OUTPUT_PORT_TYPE +src12_data[33] <= sink_data[33].DB_MAX_OUTPUT_PORT_TYPE +src12_data[34] <= sink_data[34].DB_MAX_OUTPUT_PORT_TYPE +src12_data[35] <= sink_data[35].DB_MAX_OUTPUT_PORT_TYPE +src12_data[36] <= sink_data[36].DB_MAX_OUTPUT_PORT_TYPE +src12_data[37] <= sink_data[37].DB_MAX_OUTPUT_PORT_TYPE +src12_data[38] <= sink_data[38].DB_MAX_OUTPUT_PORT_TYPE +src12_data[39] <= sink_data[39].DB_MAX_OUTPUT_PORT_TYPE +src12_data[40] <= sink_data[40].DB_MAX_OUTPUT_PORT_TYPE +src12_data[41] <= sink_data[41].DB_MAX_OUTPUT_PORT_TYPE +src12_data[42] <= sink_data[42].DB_MAX_OUTPUT_PORT_TYPE +src12_data[43] <= sink_data[43].DB_MAX_OUTPUT_PORT_TYPE +src12_data[44] <= sink_data[44].DB_MAX_OUTPUT_PORT_TYPE +src12_data[45] <= sink_data[45].DB_MAX_OUTPUT_PORT_TYPE +src12_data[46] <= sink_data[46].DB_MAX_OUTPUT_PORT_TYPE +src12_data[47] <= sink_data[47].DB_MAX_OUTPUT_PORT_TYPE +src12_data[48] <= sink_data[48].DB_MAX_OUTPUT_PORT_TYPE +src12_data[49] <= sink_data[49].DB_MAX_OUTPUT_PORT_TYPE +src12_data[50] <= sink_data[50].DB_MAX_OUTPUT_PORT_TYPE +src12_data[51] <= sink_data[51].DB_MAX_OUTPUT_PORT_TYPE +src12_data[52] <= sink_data[52].DB_MAX_OUTPUT_PORT_TYPE +src12_data[53] <= sink_data[53].DB_MAX_OUTPUT_PORT_TYPE +src12_data[54] <= sink_data[54].DB_MAX_OUTPUT_PORT_TYPE +src12_data[55] <= sink_data[55].DB_MAX_OUTPUT_PORT_TYPE +src12_data[56] <= sink_data[56].DB_MAX_OUTPUT_PORT_TYPE +src12_data[57] <= sink_data[57].DB_MAX_OUTPUT_PORT_TYPE +src12_data[58] <= sink_data[58].DB_MAX_OUTPUT_PORT_TYPE +src12_data[59] <= sink_data[59].DB_MAX_OUTPUT_PORT_TYPE +src12_data[60] <= sink_data[60].DB_MAX_OUTPUT_PORT_TYPE +src12_data[61] <= sink_data[61].DB_MAX_OUTPUT_PORT_TYPE +src12_data[62] <= sink_data[62].DB_MAX_OUTPUT_PORT_TYPE +src12_data[63] <= sink_data[63].DB_MAX_OUTPUT_PORT_TYPE +src12_data[64] <= sink_data[64].DB_MAX_OUTPUT_PORT_TYPE +src12_data[65] <= sink_data[65].DB_MAX_OUTPUT_PORT_TYPE +src12_data[66] <= sink_data[66].DB_MAX_OUTPUT_PORT_TYPE +src12_data[67] <= sink_data[67].DB_MAX_OUTPUT_PORT_TYPE +src12_data[68] <= sink_data[68].DB_MAX_OUTPUT_PORT_TYPE +src12_data[69] <= sink_data[69].DB_MAX_OUTPUT_PORT_TYPE +src12_data[70] <= sink_data[70].DB_MAX_OUTPUT_PORT_TYPE +src12_data[71] <= sink_data[71].DB_MAX_OUTPUT_PORT_TYPE +src12_data[72] <= sink_data[72].DB_MAX_OUTPUT_PORT_TYPE +src12_data[73] <= sink_data[73].DB_MAX_OUTPUT_PORT_TYPE +src12_data[74] <= sink_data[74].DB_MAX_OUTPUT_PORT_TYPE +src12_data[75] <= sink_data[75].DB_MAX_OUTPUT_PORT_TYPE +src12_data[76] <= sink_data[76].DB_MAX_OUTPUT_PORT_TYPE +src12_data[77] <= sink_data[77].DB_MAX_OUTPUT_PORT_TYPE +src12_data[78] <= sink_data[78].DB_MAX_OUTPUT_PORT_TYPE +src12_data[79] <= sink_data[79].DB_MAX_OUTPUT_PORT_TYPE +src12_data[80] <= sink_data[80].DB_MAX_OUTPUT_PORT_TYPE +src12_data[81] <= sink_data[81].DB_MAX_OUTPUT_PORT_TYPE +src12_data[82] <= sink_data[82].DB_MAX_OUTPUT_PORT_TYPE +src12_data[83] <= sink_data[83].DB_MAX_OUTPUT_PORT_TYPE +src12_data[84] <= sink_data[84].DB_MAX_OUTPUT_PORT_TYPE +src12_data[85] <= sink_data[85].DB_MAX_OUTPUT_PORT_TYPE +src12_data[86] <= sink_data[86].DB_MAX_OUTPUT_PORT_TYPE +src12_data[87] <= sink_data[87].DB_MAX_OUTPUT_PORT_TYPE +src12_data[88] <= sink_data[88].DB_MAX_OUTPUT_PORT_TYPE +src12_data[89] <= sink_data[89].DB_MAX_OUTPUT_PORT_TYPE +src12_data[90] <= sink_data[90].DB_MAX_OUTPUT_PORT_TYPE +src12_data[91] <= sink_data[91].DB_MAX_OUTPUT_PORT_TYPE +src12_data[92] <= sink_data[92].DB_MAX_OUTPUT_PORT_TYPE +src12_data[93] <= sink_data[93].DB_MAX_OUTPUT_PORT_TYPE +src12_data[94] <= sink_data[94].DB_MAX_OUTPUT_PORT_TYPE +src12_data[95] <= sink_data[95].DB_MAX_OUTPUT_PORT_TYPE +src12_channel[0] <= +src12_channel[1] <= +src12_channel[2] <= +src12_channel[3] <= +src12_channel[4] <= +src12_channel[5] <= +src12_channel[6] <= +src12_channel[7] <= +src12_channel[8] <= +src12_channel[9] <= +src12_channel[10] <= +src12_channel[11] <= +src12_channel[12] <= +src12_channel[13] <= +src12_channel[14] <= +src12_channel[15] <= +src12_channel[16] <= +src12_channel[17] <= +src12_startofpacket <= sink_startofpacket.DB_MAX_OUTPUT_PORT_TYPE +src12_endofpacket <= sink_endofpacket.DB_MAX_OUTPUT_PORT_TYPE +src12_ready => sink_ready.IN1 +src13_valid <= src13_valid.DB_MAX_OUTPUT_PORT_TYPE +src13_data[0] <= sink_data[0].DB_MAX_OUTPUT_PORT_TYPE +src13_data[1] <= sink_data[1].DB_MAX_OUTPUT_PORT_TYPE +src13_data[2] <= sink_data[2].DB_MAX_OUTPUT_PORT_TYPE +src13_data[3] <= sink_data[3].DB_MAX_OUTPUT_PORT_TYPE +src13_data[4] <= sink_data[4].DB_MAX_OUTPUT_PORT_TYPE +src13_data[5] <= sink_data[5].DB_MAX_OUTPUT_PORT_TYPE +src13_data[6] <= sink_data[6].DB_MAX_OUTPUT_PORT_TYPE +src13_data[7] <= sink_data[7].DB_MAX_OUTPUT_PORT_TYPE +src13_data[8] <= sink_data[8].DB_MAX_OUTPUT_PORT_TYPE +src13_data[9] <= sink_data[9].DB_MAX_OUTPUT_PORT_TYPE +src13_data[10] <= sink_data[10].DB_MAX_OUTPUT_PORT_TYPE +src13_data[11] <= sink_data[11].DB_MAX_OUTPUT_PORT_TYPE +src13_data[12] <= sink_data[12].DB_MAX_OUTPUT_PORT_TYPE +src13_data[13] <= sink_data[13].DB_MAX_OUTPUT_PORT_TYPE +src13_data[14] <= sink_data[14].DB_MAX_OUTPUT_PORT_TYPE +src13_data[15] <= sink_data[15].DB_MAX_OUTPUT_PORT_TYPE +src13_data[16] <= sink_data[16].DB_MAX_OUTPUT_PORT_TYPE +src13_data[17] <= sink_data[17].DB_MAX_OUTPUT_PORT_TYPE +src13_data[18] <= sink_data[18].DB_MAX_OUTPUT_PORT_TYPE +src13_data[19] <= sink_data[19].DB_MAX_OUTPUT_PORT_TYPE +src13_data[20] <= sink_data[20].DB_MAX_OUTPUT_PORT_TYPE +src13_data[21] <= sink_data[21].DB_MAX_OUTPUT_PORT_TYPE +src13_data[22] <= sink_data[22].DB_MAX_OUTPUT_PORT_TYPE +src13_data[23] <= sink_data[23].DB_MAX_OUTPUT_PORT_TYPE +src13_data[24] <= sink_data[24].DB_MAX_OUTPUT_PORT_TYPE +src13_data[25] <= sink_data[25].DB_MAX_OUTPUT_PORT_TYPE +src13_data[26] <= sink_data[26].DB_MAX_OUTPUT_PORT_TYPE +src13_data[27] <= sink_data[27].DB_MAX_OUTPUT_PORT_TYPE +src13_data[28] <= sink_data[28].DB_MAX_OUTPUT_PORT_TYPE +src13_data[29] <= sink_data[29].DB_MAX_OUTPUT_PORT_TYPE +src13_data[30] <= sink_data[30].DB_MAX_OUTPUT_PORT_TYPE +src13_data[31] <= sink_data[31].DB_MAX_OUTPUT_PORT_TYPE +src13_data[32] <= sink_data[32].DB_MAX_OUTPUT_PORT_TYPE +src13_data[33] <= sink_data[33].DB_MAX_OUTPUT_PORT_TYPE +src13_data[34] <= sink_data[34].DB_MAX_OUTPUT_PORT_TYPE +src13_data[35] <= sink_data[35].DB_MAX_OUTPUT_PORT_TYPE +src13_data[36] <= sink_data[36].DB_MAX_OUTPUT_PORT_TYPE +src13_data[37] <= sink_data[37].DB_MAX_OUTPUT_PORT_TYPE +src13_data[38] <= sink_data[38].DB_MAX_OUTPUT_PORT_TYPE +src13_data[39] <= sink_data[39].DB_MAX_OUTPUT_PORT_TYPE +src13_data[40] <= sink_data[40].DB_MAX_OUTPUT_PORT_TYPE +src13_data[41] <= sink_data[41].DB_MAX_OUTPUT_PORT_TYPE +src13_data[42] <= sink_data[42].DB_MAX_OUTPUT_PORT_TYPE +src13_data[43] <= sink_data[43].DB_MAX_OUTPUT_PORT_TYPE +src13_data[44] <= sink_data[44].DB_MAX_OUTPUT_PORT_TYPE +src13_data[45] <= sink_data[45].DB_MAX_OUTPUT_PORT_TYPE +src13_data[46] <= sink_data[46].DB_MAX_OUTPUT_PORT_TYPE +src13_data[47] <= sink_data[47].DB_MAX_OUTPUT_PORT_TYPE +src13_data[48] <= sink_data[48].DB_MAX_OUTPUT_PORT_TYPE +src13_data[49] <= sink_data[49].DB_MAX_OUTPUT_PORT_TYPE +src13_data[50] <= sink_data[50].DB_MAX_OUTPUT_PORT_TYPE +src13_data[51] <= sink_data[51].DB_MAX_OUTPUT_PORT_TYPE +src13_data[52] <= sink_data[52].DB_MAX_OUTPUT_PORT_TYPE +src13_data[53] <= sink_data[53].DB_MAX_OUTPUT_PORT_TYPE +src13_data[54] <= sink_data[54].DB_MAX_OUTPUT_PORT_TYPE +src13_data[55] <= sink_data[55].DB_MAX_OUTPUT_PORT_TYPE +src13_data[56] <= sink_data[56].DB_MAX_OUTPUT_PORT_TYPE +src13_data[57] <= sink_data[57].DB_MAX_OUTPUT_PORT_TYPE +src13_data[58] <= sink_data[58].DB_MAX_OUTPUT_PORT_TYPE +src13_data[59] <= sink_data[59].DB_MAX_OUTPUT_PORT_TYPE +src13_data[60] <= sink_data[60].DB_MAX_OUTPUT_PORT_TYPE +src13_data[61] <= sink_data[61].DB_MAX_OUTPUT_PORT_TYPE +src13_data[62] <= sink_data[62].DB_MAX_OUTPUT_PORT_TYPE +src13_data[63] <= sink_data[63].DB_MAX_OUTPUT_PORT_TYPE +src13_data[64] <= sink_data[64].DB_MAX_OUTPUT_PORT_TYPE +src13_data[65] <= sink_data[65].DB_MAX_OUTPUT_PORT_TYPE +src13_data[66] <= sink_data[66].DB_MAX_OUTPUT_PORT_TYPE +src13_data[67] <= sink_data[67].DB_MAX_OUTPUT_PORT_TYPE +src13_data[68] <= sink_data[68].DB_MAX_OUTPUT_PORT_TYPE +src13_data[69] <= sink_data[69].DB_MAX_OUTPUT_PORT_TYPE +src13_data[70] <= sink_data[70].DB_MAX_OUTPUT_PORT_TYPE +src13_data[71] <= sink_data[71].DB_MAX_OUTPUT_PORT_TYPE +src13_data[72] <= sink_data[72].DB_MAX_OUTPUT_PORT_TYPE +src13_data[73] <= sink_data[73].DB_MAX_OUTPUT_PORT_TYPE +src13_data[74] <= sink_data[74].DB_MAX_OUTPUT_PORT_TYPE +src13_data[75] <= sink_data[75].DB_MAX_OUTPUT_PORT_TYPE +src13_data[76] <= sink_data[76].DB_MAX_OUTPUT_PORT_TYPE +src13_data[77] <= sink_data[77].DB_MAX_OUTPUT_PORT_TYPE +src13_data[78] <= sink_data[78].DB_MAX_OUTPUT_PORT_TYPE +src13_data[79] <= sink_data[79].DB_MAX_OUTPUT_PORT_TYPE +src13_data[80] <= sink_data[80].DB_MAX_OUTPUT_PORT_TYPE +src13_data[81] <= sink_data[81].DB_MAX_OUTPUT_PORT_TYPE +src13_data[82] <= sink_data[82].DB_MAX_OUTPUT_PORT_TYPE +src13_data[83] <= sink_data[83].DB_MAX_OUTPUT_PORT_TYPE +src13_data[84] <= sink_data[84].DB_MAX_OUTPUT_PORT_TYPE +src13_data[85] <= sink_data[85].DB_MAX_OUTPUT_PORT_TYPE +src13_data[86] <= sink_data[86].DB_MAX_OUTPUT_PORT_TYPE +src13_data[87] <= sink_data[87].DB_MAX_OUTPUT_PORT_TYPE +src13_data[88] <= sink_data[88].DB_MAX_OUTPUT_PORT_TYPE +src13_data[89] <= sink_data[89].DB_MAX_OUTPUT_PORT_TYPE +src13_data[90] <= sink_data[90].DB_MAX_OUTPUT_PORT_TYPE +src13_data[91] <= sink_data[91].DB_MAX_OUTPUT_PORT_TYPE +src13_data[92] <= sink_data[92].DB_MAX_OUTPUT_PORT_TYPE +src13_data[93] <= sink_data[93].DB_MAX_OUTPUT_PORT_TYPE +src13_data[94] <= sink_data[94].DB_MAX_OUTPUT_PORT_TYPE +src13_data[95] <= sink_data[95].DB_MAX_OUTPUT_PORT_TYPE +src13_channel[0] <= +src13_channel[1] <= +src13_channel[2] <= +src13_channel[3] <= +src13_channel[4] <= +src13_channel[5] <= +src13_channel[6] <= +src13_channel[7] <= +src13_channel[8] <= +src13_channel[9] <= +src13_channel[10] <= +src13_channel[11] <= +src13_channel[12] <= +src13_channel[13] <= +src13_channel[14] <= +src13_channel[15] <= +src13_channel[16] <= +src13_channel[17] <= +src13_startofpacket <= sink_startofpacket.DB_MAX_OUTPUT_PORT_TYPE +src13_endofpacket <= sink_endofpacket.DB_MAX_OUTPUT_PORT_TYPE +src13_ready => sink_ready.IN1 +src14_valid <= src14_valid.DB_MAX_OUTPUT_PORT_TYPE +src14_data[0] <= sink_data[0].DB_MAX_OUTPUT_PORT_TYPE +src14_data[1] <= sink_data[1].DB_MAX_OUTPUT_PORT_TYPE +src14_data[2] <= sink_data[2].DB_MAX_OUTPUT_PORT_TYPE +src14_data[3] <= sink_data[3].DB_MAX_OUTPUT_PORT_TYPE +src14_data[4] <= sink_data[4].DB_MAX_OUTPUT_PORT_TYPE +src14_data[5] <= sink_data[5].DB_MAX_OUTPUT_PORT_TYPE +src14_data[6] <= sink_data[6].DB_MAX_OUTPUT_PORT_TYPE +src14_data[7] <= sink_data[7].DB_MAX_OUTPUT_PORT_TYPE +src14_data[8] <= sink_data[8].DB_MAX_OUTPUT_PORT_TYPE +src14_data[9] <= sink_data[9].DB_MAX_OUTPUT_PORT_TYPE +src14_data[10] <= sink_data[10].DB_MAX_OUTPUT_PORT_TYPE +src14_data[11] <= sink_data[11].DB_MAX_OUTPUT_PORT_TYPE +src14_data[12] <= sink_data[12].DB_MAX_OUTPUT_PORT_TYPE +src14_data[13] <= sink_data[13].DB_MAX_OUTPUT_PORT_TYPE +src14_data[14] <= sink_data[14].DB_MAX_OUTPUT_PORT_TYPE +src14_data[15] <= sink_data[15].DB_MAX_OUTPUT_PORT_TYPE +src14_data[16] <= sink_data[16].DB_MAX_OUTPUT_PORT_TYPE +src14_data[17] <= sink_data[17].DB_MAX_OUTPUT_PORT_TYPE +src14_data[18] <= sink_data[18].DB_MAX_OUTPUT_PORT_TYPE +src14_data[19] <= sink_data[19].DB_MAX_OUTPUT_PORT_TYPE +src14_data[20] <= sink_data[20].DB_MAX_OUTPUT_PORT_TYPE +src14_data[21] <= sink_data[21].DB_MAX_OUTPUT_PORT_TYPE +src14_data[22] <= sink_data[22].DB_MAX_OUTPUT_PORT_TYPE +src14_data[23] <= sink_data[23].DB_MAX_OUTPUT_PORT_TYPE +src14_data[24] <= sink_data[24].DB_MAX_OUTPUT_PORT_TYPE +src14_data[25] <= sink_data[25].DB_MAX_OUTPUT_PORT_TYPE +src14_data[26] <= sink_data[26].DB_MAX_OUTPUT_PORT_TYPE +src14_data[27] <= sink_data[27].DB_MAX_OUTPUT_PORT_TYPE +src14_data[28] <= sink_data[28].DB_MAX_OUTPUT_PORT_TYPE +src14_data[29] <= sink_data[29].DB_MAX_OUTPUT_PORT_TYPE +src14_data[30] <= sink_data[30].DB_MAX_OUTPUT_PORT_TYPE +src14_data[31] <= sink_data[31].DB_MAX_OUTPUT_PORT_TYPE +src14_data[32] <= sink_data[32].DB_MAX_OUTPUT_PORT_TYPE +src14_data[33] <= sink_data[33].DB_MAX_OUTPUT_PORT_TYPE +src14_data[34] <= sink_data[34].DB_MAX_OUTPUT_PORT_TYPE +src14_data[35] <= sink_data[35].DB_MAX_OUTPUT_PORT_TYPE +src14_data[36] <= sink_data[36].DB_MAX_OUTPUT_PORT_TYPE +src14_data[37] <= sink_data[37].DB_MAX_OUTPUT_PORT_TYPE +src14_data[38] <= sink_data[38].DB_MAX_OUTPUT_PORT_TYPE +src14_data[39] <= sink_data[39].DB_MAX_OUTPUT_PORT_TYPE +src14_data[40] <= sink_data[40].DB_MAX_OUTPUT_PORT_TYPE +src14_data[41] <= sink_data[41].DB_MAX_OUTPUT_PORT_TYPE +src14_data[42] <= sink_data[42].DB_MAX_OUTPUT_PORT_TYPE +src14_data[43] <= sink_data[43].DB_MAX_OUTPUT_PORT_TYPE +src14_data[44] <= sink_data[44].DB_MAX_OUTPUT_PORT_TYPE +src14_data[45] <= sink_data[45].DB_MAX_OUTPUT_PORT_TYPE +src14_data[46] <= sink_data[46].DB_MAX_OUTPUT_PORT_TYPE +src14_data[47] <= sink_data[47].DB_MAX_OUTPUT_PORT_TYPE +src14_data[48] <= sink_data[48].DB_MAX_OUTPUT_PORT_TYPE +src14_data[49] <= sink_data[49].DB_MAX_OUTPUT_PORT_TYPE +src14_data[50] <= sink_data[50].DB_MAX_OUTPUT_PORT_TYPE +src14_data[51] <= sink_data[51].DB_MAX_OUTPUT_PORT_TYPE +src14_data[52] <= sink_data[52].DB_MAX_OUTPUT_PORT_TYPE +src14_data[53] <= sink_data[53].DB_MAX_OUTPUT_PORT_TYPE +src14_data[54] <= sink_data[54].DB_MAX_OUTPUT_PORT_TYPE +src14_data[55] <= sink_data[55].DB_MAX_OUTPUT_PORT_TYPE +src14_data[56] <= sink_data[56].DB_MAX_OUTPUT_PORT_TYPE +src14_data[57] <= sink_data[57].DB_MAX_OUTPUT_PORT_TYPE +src14_data[58] <= sink_data[58].DB_MAX_OUTPUT_PORT_TYPE +src14_data[59] <= sink_data[59].DB_MAX_OUTPUT_PORT_TYPE +src14_data[60] <= sink_data[60].DB_MAX_OUTPUT_PORT_TYPE +src14_data[61] <= sink_data[61].DB_MAX_OUTPUT_PORT_TYPE +src14_data[62] <= sink_data[62].DB_MAX_OUTPUT_PORT_TYPE +src14_data[63] <= sink_data[63].DB_MAX_OUTPUT_PORT_TYPE +src14_data[64] <= sink_data[64].DB_MAX_OUTPUT_PORT_TYPE +src14_data[65] <= sink_data[65].DB_MAX_OUTPUT_PORT_TYPE +src14_data[66] <= sink_data[66].DB_MAX_OUTPUT_PORT_TYPE +src14_data[67] <= sink_data[67].DB_MAX_OUTPUT_PORT_TYPE +src14_data[68] <= sink_data[68].DB_MAX_OUTPUT_PORT_TYPE +src14_data[69] <= sink_data[69].DB_MAX_OUTPUT_PORT_TYPE +src14_data[70] <= sink_data[70].DB_MAX_OUTPUT_PORT_TYPE +src14_data[71] <= sink_data[71].DB_MAX_OUTPUT_PORT_TYPE +src14_data[72] <= sink_data[72].DB_MAX_OUTPUT_PORT_TYPE +src14_data[73] <= sink_data[73].DB_MAX_OUTPUT_PORT_TYPE +src14_data[74] <= sink_data[74].DB_MAX_OUTPUT_PORT_TYPE +src14_data[75] <= sink_data[75].DB_MAX_OUTPUT_PORT_TYPE +src14_data[76] <= sink_data[76].DB_MAX_OUTPUT_PORT_TYPE +src14_data[77] <= sink_data[77].DB_MAX_OUTPUT_PORT_TYPE +src14_data[78] <= sink_data[78].DB_MAX_OUTPUT_PORT_TYPE +src14_data[79] <= sink_data[79].DB_MAX_OUTPUT_PORT_TYPE +src14_data[80] <= sink_data[80].DB_MAX_OUTPUT_PORT_TYPE +src14_data[81] <= sink_data[81].DB_MAX_OUTPUT_PORT_TYPE +src14_data[82] <= sink_data[82].DB_MAX_OUTPUT_PORT_TYPE +src14_data[83] <= sink_data[83].DB_MAX_OUTPUT_PORT_TYPE +src14_data[84] <= sink_data[84].DB_MAX_OUTPUT_PORT_TYPE +src14_data[85] <= sink_data[85].DB_MAX_OUTPUT_PORT_TYPE +src14_data[86] <= sink_data[86].DB_MAX_OUTPUT_PORT_TYPE +src14_data[87] <= sink_data[87].DB_MAX_OUTPUT_PORT_TYPE +src14_data[88] <= sink_data[88].DB_MAX_OUTPUT_PORT_TYPE +src14_data[89] <= sink_data[89].DB_MAX_OUTPUT_PORT_TYPE +src14_data[90] <= sink_data[90].DB_MAX_OUTPUT_PORT_TYPE +src14_data[91] <= sink_data[91].DB_MAX_OUTPUT_PORT_TYPE +src14_data[92] <= sink_data[92].DB_MAX_OUTPUT_PORT_TYPE +src14_data[93] <= sink_data[93].DB_MAX_OUTPUT_PORT_TYPE +src14_data[94] <= sink_data[94].DB_MAX_OUTPUT_PORT_TYPE +src14_data[95] <= sink_data[95].DB_MAX_OUTPUT_PORT_TYPE +src14_channel[0] <= +src14_channel[1] <= +src14_channel[2] <= +src14_channel[3] <= +src14_channel[4] <= +src14_channel[5] <= +src14_channel[6] <= +src14_channel[7] <= +src14_channel[8] <= +src14_channel[9] <= +src14_channel[10] <= +src14_channel[11] <= +src14_channel[12] <= +src14_channel[13] <= +src14_channel[14] <= +src14_channel[15] <= +src14_channel[16] <= +src14_channel[17] <= +src14_startofpacket <= sink_startofpacket.DB_MAX_OUTPUT_PORT_TYPE +src14_endofpacket <= sink_endofpacket.DB_MAX_OUTPUT_PORT_TYPE +src14_ready => sink_ready.IN1 +src15_valid <= src15_valid.DB_MAX_OUTPUT_PORT_TYPE +src15_data[0] <= sink_data[0].DB_MAX_OUTPUT_PORT_TYPE +src15_data[1] <= sink_data[1].DB_MAX_OUTPUT_PORT_TYPE +src15_data[2] <= sink_data[2].DB_MAX_OUTPUT_PORT_TYPE +src15_data[3] <= sink_data[3].DB_MAX_OUTPUT_PORT_TYPE +src15_data[4] <= sink_data[4].DB_MAX_OUTPUT_PORT_TYPE +src15_data[5] <= sink_data[5].DB_MAX_OUTPUT_PORT_TYPE +src15_data[6] <= sink_data[6].DB_MAX_OUTPUT_PORT_TYPE +src15_data[7] <= sink_data[7].DB_MAX_OUTPUT_PORT_TYPE +src15_data[8] <= sink_data[8].DB_MAX_OUTPUT_PORT_TYPE +src15_data[9] <= sink_data[9].DB_MAX_OUTPUT_PORT_TYPE +src15_data[10] <= sink_data[10].DB_MAX_OUTPUT_PORT_TYPE +src15_data[11] <= sink_data[11].DB_MAX_OUTPUT_PORT_TYPE +src15_data[12] <= sink_data[12].DB_MAX_OUTPUT_PORT_TYPE +src15_data[13] <= sink_data[13].DB_MAX_OUTPUT_PORT_TYPE +src15_data[14] <= sink_data[14].DB_MAX_OUTPUT_PORT_TYPE +src15_data[15] <= sink_data[15].DB_MAX_OUTPUT_PORT_TYPE +src15_data[16] <= sink_data[16].DB_MAX_OUTPUT_PORT_TYPE +src15_data[17] <= sink_data[17].DB_MAX_OUTPUT_PORT_TYPE +src15_data[18] <= sink_data[18].DB_MAX_OUTPUT_PORT_TYPE +src15_data[19] <= sink_data[19].DB_MAX_OUTPUT_PORT_TYPE +src15_data[20] <= sink_data[20].DB_MAX_OUTPUT_PORT_TYPE +src15_data[21] <= sink_data[21].DB_MAX_OUTPUT_PORT_TYPE +src15_data[22] <= sink_data[22].DB_MAX_OUTPUT_PORT_TYPE +src15_data[23] <= sink_data[23].DB_MAX_OUTPUT_PORT_TYPE +src15_data[24] <= sink_data[24].DB_MAX_OUTPUT_PORT_TYPE +src15_data[25] <= sink_data[25].DB_MAX_OUTPUT_PORT_TYPE +src15_data[26] <= sink_data[26].DB_MAX_OUTPUT_PORT_TYPE +src15_data[27] <= sink_data[27].DB_MAX_OUTPUT_PORT_TYPE +src15_data[28] <= sink_data[28].DB_MAX_OUTPUT_PORT_TYPE +src15_data[29] <= sink_data[29].DB_MAX_OUTPUT_PORT_TYPE +src15_data[30] <= sink_data[30].DB_MAX_OUTPUT_PORT_TYPE +src15_data[31] <= sink_data[31].DB_MAX_OUTPUT_PORT_TYPE +src15_data[32] <= sink_data[32].DB_MAX_OUTPUT_PORT_TYPE +src15_data[33] <= sink_data[33].DB_MAX_OUTPUT_PORT_TYPE +src15_data[34] <= sink_data[34].DB_MAX_OUTPUT_PORT_TYPE +src15_data[35] <= sink_data[35].DB_MAX_OUTPUT_PORT_TYPE +src15_data[36] <= sink_data[36].DB_MAX_OUTPUT_PORT_TYPE +src15_data[37] <= sink_data[37].DB_MAX_OUTPUT_PORT_TYPE +src15_data[38] <= sink_data[38].DB_MAX_OUTPUT_PORT_TYPE +src15_data[39] <= sink_data[39].DB_MAX_OUTPUT_PORT_TYPE +src15_data[40] <= sink_data[40].DB_MAX_OUTPUT_PORT_TYPE +src15_data[41] <= sink_data[41].DB_MAX_OUTPUT_PORT_TYPE +src15_data[42] <= sink_data[42].DB_MAX_OUTPUT_PORT_TYPE +src15_data[43] <= sink_data[43].DB_MAX_OUTPUT_PORT_TYPE +src15_data[44] <= sink_data[44].DB_MAX_OUTPUT_PORT_TYPE +src15_data[45] <= sink_data[45].DB_MAX_OUTPUT_PORT_TYPE +src15_data[46] <= sink_data[46].DB_MAX_OUTPUT_PORT_TYPE +src15_data[47] <= sink_data[47].DB_MAX_OUTPUT_PORT_TYPE +src15_data[48] <= sink_data[48].DB_MAX_OUTPUT_PORT_TYPE +src15_data[49] <= sink_data[49].DB_MAX_OUTPUT_PORT_TYPE +src15_data[50] <= sink_data[50].DB_MAX_OUTPUT_PORT_TYPE +src15_data[51] <= sink_data[51].DB_MAX_OUTPUT_PORT_TYPE +src15_data[52] <= sink_data[52].DB_MAX_OUTPUT_PORT_TYPE +src15_data[53] <= sink_data[53].DB_MAX_OUTPUT_PORT_TYPE +src15_data[54] <= sink_data[54].DB_MAX_OUTPUT_PORT_TYPE +src15_data[55] <= sink_data[55].DB_MAX_OUTPUT_PORT_TYPE +src15_data[56] <= sink_data[56].DB_MAX_OUTPUT_PORT_TYPE +src15_data[57] <= sink_data[57].DB_MAX_OUTPUT_PORT_TYPE +src15_data[58] <= sink_data[58].DB_MAX_OUTPUT_PORT_TYPE +src15_data[59] <= sink_data[59].DB_MAX_OUTPUT_PORT_TYPE +src15_data[60] <= sink_data[60].DB_MAX_OUTPUT_PORT_TYPE +src15_data[61] <= sink_data[61].DB_MAX_OUTPUT_PORT_TYPE +src15_data[62] <= sink_data[62].DB_MAX_OUTPUT_PORT_TYPE +src15_data[63] <= sink_data[63].DB_MAX_OUTPUT_PORT_TYPE +src15_data[64] <= sink_data[64].DB_MAX_OUTPUT_PORT_TYPE +src15_data[65] <= sink_data[65].DB_MAX_OUTPUT_PORT_TYPE +src15_data[66] <= sink_data[66].DB_MAX_OUTPUT_PORT_TYPE +src15_data[67] <= sink_data[67].DB_MAX_OUTPUT_PORT_TYPE +src15_data[68] <= sink_data[68].DB_MAX_OUTPUT_PORT_TYPE +src15_data[69] <= sink_data[69].DB_MAX_OUTPUT_PORT_TYPE +src15_data[70] <= sink_data[70].DB_MAX_OUTPUT_PORT_TYPE +src15_data[71] <= sink_data[71].DB_MAX_OUTPUT_PORT_TYPE +src15_data[72] <= sink_data[72].DB_MAX_OUTPUT_PORT_TYPE +src15_data[73] <= sink_data[73].DB_MAX_OUTPUT_PORT_TYPE +src15_data[74] <= sink_data[74].DB_MAX_OUTPUT_PORT_TYPE +src15_data[75] <= sink_data[75].DB_MAX_OUTPUT_PORT_TYPE +src15_data[76] <= sink_data[76].DB_MAX_OUTPUT_PORT_TYPE +src15_data[77] <= sink_data[77].DB_MAX_OUTPUT_PORT_TYPE +src15_data[78] <= sink_data[78].DB_MAX_OUTPUT_PORT_TYPE +src15_data[79] <= sink_data[79].DB_MAX_OUTPUT_PORT_TYPE +src15_data[80] <= sink_data[80].DB_MAX_OUTPUT_PORT_TYPE +src15_data[81] <= sink_data[81].DB_MAX_OUTPUT_PORT_TYPE +src15_data[82] <= sink_data[82].DB_MAX_OUTPUT_PORT_TYPE +src15_data[83] <= sink_data[83].DB_MAX_OUTPUT_PORT_TYPE +src15_data[84] <= sink_data[84].DB_MAX_OUTPUT_PORT_TYPE +src15_data[85] <= sink_data[85].DB_MAX_OUTPUT_PORT_TYPE +src15_data[86] <= sink_data[86].DB_MAX_OUTPUT_PORT_TYPE +src15_data[87] <= sink_data[87].DB_MAX_OUTPUT_PORT_TYPE +src15_data[88] <= sink_data[88].DB_MAX_OUTPUT_PORT_TYPE +src15_data[89] <= sink_data[89].DB_MAX_OUTPUT_PORT_TYPE +src15_data[90] <= sink_data[90].DB_MAX_OUTPUT_PORT_TYPE +src15_data[91] <= sink_data[91].DB_MAX_OUTPUT_PORT_TYPE +src15_data[92] <= sink_data[92].DB_MAX_OUTPUT_PORT_TYPE +src15_data[93] <= sink_data[93].DB_MAX_OUTPUT_PORT_TYPE +src15_data[94] <= sink_data[94].DB_MAX_OUTPUT_PORT_TYPE +src15_data[95] <= sink_data[95].DB_MAX_OUTPUT_PORT_TYPE +src15_channel[0] <= +src15_channel[1] <= +src15_channel[2] <= +src15_channel[3] <= +src15_channel[4] <= +src15_channel[5] <= +src15_channel[6] <= +src15_channel[7] <= +src15_channel[8] <= +src15_channel[9] <= +src15_channel[10] <= +src15_channel[11] <= +src15_channel[12] <= +src15_channel[13] <= +src15_channel[14] <= +src15_channel[15] <= +src15_channel[16] <= +src15_channel[17] <= +src15_startofpacket <= sink_startofpacket.DB_MAX_OUTPUT_PORT_TYPE +src15_endofpacket <= sink_endofpacket.DB_MAX_OUTPUT_PORT_TYPE +src15_ready => sink_ready.IN1 +src16_valid <= src16_valid.DB_MAX_OUTPUT_PORT_TYPE +src16_data[0] <= sink_data[0].DB_MAX_OUTPUT_PORT_TYPE +src16_data[1] <= sink_data[1].DB_MAX_OUTPUT_PORT_TYPE +src16_data[2] <= sink_data[2].DB_MAX_OUTPUT_PORT_TYPE +src16_data[3] <= sink_data[3].DB_MAX_OUTPUT_PORT_TYPE +src16_data[4] <= sink_data[4].DB_MAX_OUTPUT_PORT_TYPE +src16_data[5] <= sink_data[5].DB_MAX_OUTPUT_PORT_TYPE +src16_data[6] <= sink_data[6].DB_MAX_OUTPUT_PORT_TYPE +src16_data[7] <= sink_data[7].DB_MAX_OUTPUT_PORT_TYPE +src16_data[8] <= sink_data[8].DB_MAX_OUTPUT_PORT_TYPE +src16_data[9] <= sink_data[9].DB_MAX_OUTPUT_PORT_TYPE +src16_data[10] <= sink_data[10].DB_MAX_OUTPUT_PORT_TYPE +src16_data[11] <= sink_data[11].DB_MAX_OUTPUT_PORT_TYPE +src16_data[12] <= sink_data[12].DB_MAX_OUTPUT_PORT_TYPE +src16_data[13] <= sink_data[13].DB_MAX_OUTPUT_PORT_TYPE +src16_data[14] <= sink_data[14].DB_MAX_OUTPUT_PORT_TYPE +src16_data[15] <= sink_data[15].DB_MAX_OUTPUT_PORT_TYPE +src16_data[16] <= sink_data[16].DB_MAX_OUTPUT_PORT_TYPE +src16_data[17] <= sink_data[17].DB_MAX_OUTPUT_PORT_TYPE +src16_data[18] <= sink_data[18].DB_MAX_OUTPUT_PORT_TYPE +src16_data[19] <= sink_data[19].DB_MAX_OUTPUT_PORT_TYPE +src16_data[20] <= sink_data[20].DB_MAX_OUTPUT_PORT_TYPE +src16_data[21] <= sink_data[21].DB_MAX_OUTPUT_PORT_TYPE +src16_data[22] <= sink_data[22].DB_MAX_OUTPUT_PORT_TYPE +src16_data[23] <= sink_data[23].DB_MAX_OUTPUT_PORT_TYPE +src16_data[24] <= sink_data[24].DB_MAX_OUTPUT_PORT_TYPE +src16_data[25] <= sink_data[25].DB_MAX_OUTPUT_PORT_TYPE +src16_data[26] <= sink_data[26].DB_MAX_OUTPUT_PORT_TYPE +src16_data[27] <= sink_data[27].DB_MAX_OUTPUT_PORT_TYPE +src16_data[28] <= sink_data[28].DB_MAX_OUTPUT_PORT_TYPE +src16_data[29] <= sink_data[29].DB_MAX_OUTPUT_PORT_TYPE +src16_data[30] <= sink_data[30].DB_MAX_OUTPUT_PORT_TYPE +src16_data[31] <= sink_data[31].DB_MAX_OUTPUT_PORT_TYPE +src16_data[32] <= sink_data[32].DB_MAX_OUTPUT_PORT_TYPE +src16_data[33] <= sink_data[33].DB_MAX_OUTPUT_PORT_TYPE +src16_data[34] <= sink_data[34].DB_MAX_OUTPUT_PORT_TYPE +src16_data[35] <= sink_data[35].DB_MAX_OUTPUT_PORT_TYPE +src16_data[36] <= sink_data[36].DB_MAX_OUTPUT_PORT_TYPE +src16_data[37] <= sink_data[37].DB_MAX_OUTPUT_PORT_TYPE +src16_data[38] <= sink_data[38].DB_MAX_OUTPUT_PORT_TYPE +src16_data[39] <= sink_data[39].DB_MAX_OUTPUT_PORT_TYPE +src16_data[40] <= sink_data[40].DB_MAX_OUTPUT_PORT_TYPE +src16_data[41] <= sink_data[41].DB_MAX_OUTPUT_PORT_TYPE +src16_data[42] <= sink_data[42].DB_MAX_OUTPUT_PORT_TYPE +src16_data[43] <= sink_data[43].DB_MAX_OUTPUT_PORT_TYPE +src16_data[44] <= sink_data[44].DB_MAX_OUTPUT_PORT_TYPE +src16_data[45] <= sink_data[45].DB_MAX_OUTPUT_PORT_TYPE +src16_data[46] <= sink_data[46].DB_MAX_OUTPUT_PORT_TYPE +src16_data[47] <= sink_data[47].DB_MAX_OUTPUT_PORT_TYPE +src16_data[48] <= sink_data[48].DB_MAX_OUTPUT_PORT_TYPE +src16_data[49] <= sink_data[49].DB_MAX_OUTPUT_PORT_TYPE +src16_data[50] <= sink_data[50].DB_MAX_OUTPUT_PORT_TYPE +src16_data[51] <= sink_data[51].DB_MAX_OUTPUT_PORT_TYPE +src16_data[52] <= sink_data[52].DB_MAX_OUTPUT_PORT_TYPE +src16_data[53] <= sink_data[53].DB_MAX_OUTPUT_PORT_TYPE +src16_data[54] <= sink_data[54].DB_MAX_OUTPUT_PORT_TYPE +src16_data[55] <= sink_data[55].DB_MAX_OUTPUT_PORT_TYPE +src16_data[56] <= sink_data[56].DB_MAX_OUTPUT_PORT_TYPE +src16_data[57] <= sink_data[57].DB_MAX_OUTPUT_PORT_TYPE +src16_data[58] <= sink_data[58].DB_MAX_OUTPUT_PORT_TYPE +src16_data[59] <= sink_data[59].DB_MAX_OUTPUT_PORT_TYPE +src16_data[60] <= sink_data[60].DB_MAX_OUTPUT_PORT_TYPE +src16_data[61] <= sink_data[61].DB_MAX_OUTPUT_PORT_TYPE +src16_data[62] <= sink_data[62].DB_MAX_OUTPUT_PORT_TYPE +src16_data[63] <= sink_data[63].DB_MAX_OUTPUT_PORT_TYPE +src16_data[64] <= sink_data[64].DB_MAX_OUTPUT_PORT_TYPE +src16_data[65] <= sink_data[65].DB_MAX_OUTPUT_PORT_TYPE +src16_data[66] <= sink_data[66].DB_MAX_OUTPUT_PORT_TYPE +src16_data[67] <= sink_data[67].DB_MAX_OUTPUT_PORT_TYPE +src16_data[68] <= sink_data[68].DB_MAX_OUTPUT_PORT_TYPE +src16_data[69] <= sink_data[69].DB_MAX_OUTPUT_PORT_TYPE +src16_data[70] <= sink_data[70].DB_MAX_OUTPUT_PORT_TYPE +src16_data[71] <= sink_data[71].DB_MAX_OUTPUT_PORT_TYPE +src16_data[72] <= sink_data[72].DB_MAX_OUTPUT_PORT_TYPE +src16_data[73] <= sink_data[73].DB_MAX_OUTPUT_PORT_TYPE +src16_data[74] <= sink_data[74].DB_MAX_OUTPUT_PORT_TYPE +src16_data[75] <= sink_data[75].DB_MAX_OUTPUT_PORT_TYPE +src16_data[76] <= sink_data[76].DB_MAX_OUTPUT_PORT_TYPE +src16_data[77] <= sink_data[77].DB_MAX_OUTPUT_PORT_TYPE +src16_data[78] <= sink_data[78].DB_MAX_OUTPUT_PORT_TYPE +src16_data[79] <= sink_data[79].DB_MAX_OUTPUT_PORT_TYPE +src16_data[80] <= sink_data[80].DB_MAX_OUTPUT_PORT_TYPE +src16_data[81] <= sink_data[81].DB_MAX_OUTPUT_PORT_TYPE +src16_data[82] <= sink_data[82].DB_MAX_OUTPUT_PORT_TYPE +src16_data[83] <= sink_data[83].DB_MAX_OUTPUT_PORT_TYPE +src16_data[84] <= sink_data[84].DB_MAX_OUTPUT_PORT_TYPE +src16_data[85] <= sink_data[85].DB_MAX_OUTPUT_PORT_TYPE +src16_data[86] <= sink_data[86].DB_MAX_OUTPUT_PORT_TYPE +src16_data[87] <= sink_data[87].DB_MAX_OUTPUT_PORT_TYPE +src16_data[88] <= sink_data[88].DB_MAX_OUTPUT_PORT_TYPE +src16_data[89] <= sink_data[89].DB_MAX_OUTPUT_PORT_TYPE +src16_data[90] <= sink_data[90].DB_MAX_OUTPUT_PORT_TYPE +src16_data[91] <= sink_data[91].DB_MAX_OUTPUT_PORT_TYPE +src16_data[92] <= sink_data[92].DB_MAX_OUTPUT_PORT_TYPE +src16_data[93] <= sink_data[93].DB_MAX_OUTPUT_PORT_TYPE +src16_data[94] <= sink_data[94].DB_MAX_OUTPUT_PORT_TYPE +src16_data[95] <= sink_data[95].DB_MAX_OUTPUT_PORT_TYPE +src16_channel[0] <= +src16_channel[1] <= +src16_channel[2] <= +src16_channel[3] <= +src16_channel[4] <= +src16_channel[5] <= +src16_channel[6] <= +src16_channel[7] <= +src16_channel[8] <= +src16_channel[9] <= +src16_channel[10] <= +src16_channel[11] <= +src16_channel[12] <= +src16_channel[13] <= +src16_channel[14] <= +src16_channel[15] <= +src16_channel[16] <= +src16_channel[17] <= +src16_startofpacket <= sink_startofpacket.DB_MAX_OUTPUT_PORT_TYPE +src16_endofpacket <= sink_endofpacket.DB_MAX_OUTPUT_PORT_TYPE +src16_ready => sink_ready.IN1 +src17_valid <= src17_valid.DB_MAX_OUTPUT_PORT_TYPE +src17_data[0] <= sink_data[0].DB_MAX_OUTPUT_PORT_TYPE +src17_data[1] <= sink_data[1].DB_MAX_OUTPUT_PORT_TYPE +src17_data[2] <= sink_data[2].DB_MAX_OUTPUT_PORT_TYPE +src17_data[3] <= sink_data[3].DB_MAX_OUTPUT_PORT_TYPE +src17_data[4] <= sink_data[4].DB_MAX_OUTPUT_PORT_TYPE +src17_data[5] <= sink_data[5].DB_MAX_OUTPUT_PORT_TYPE +src17_data[6] <= sink_data[6].DB_MAX_OUTPUT_PORT_TYPE +src17_data[7] <= sink_data[7].DB_MAX_OUTPUT_PORT_TYPE +src17_data[8] <= sink_data[8].DB_MAX_OUTPUT_PORT_TYPE +src17_data[9] <= sink_data[9].DB_MAX_OUTPUT_PORT_TYPE +src17_data[10] <= sink_data[10].DB_MAX_OUTPUT_PORT_TYPE +src17_data[11] <= sink_data[11].DB_MAX_OUTPUT_PORT_TYPE +src17_data[12] <= sink_data[12].DB_MAX_OUTPUT_PORT_TYPE +src17_data[13] <= sink_data[13].DB_MAX_OUTPUT_PORT_TYPE +src17_data[14] <= sink_data[14].DB_MAX_OUTPUT_PORT_TYPE +src17_data[15] <= sink_data[15].DB_MAX_OUTPUT_PORT_TYPE +src17_data[16] <= sink_data[16].DB_MAX_OUTPUT_PORT_TYPE +src17_data[17] <= sink_data[17].DB_MAX_OUTPUT_PORT_TYPE +src17_data[18] <= sink_data[18].DB_MAX_OUTPUT_PORT_TYPE +src17_data[19] <= sink_data[19].DB_MAX_OUTPUT_PORT_TYPE +src17_data[20] <= sink_data[20].DB_MAX_OUTPUT_PORT_TYPE +src17_data[21] <= sink_data[21].DB_MAX_OUTPUT_PORT_TYPE +src17_data[22] <= sink_data[22].DB_MAX_OUTPUT_PORT_TYPE +src17_data[23] <= sink_data[23].DB_MAX_OUTPUT_PORT_TYPE +src17_data[24] <= sink_data[24].DB_MAX_OUTPUT_PORT_TYPE +src17_data[25] <= sink_data[25].DB_MAX_OUTPUT_PORT_TYPE +src17_data[26] <= sink_data[26].DB_MAX_OUTPUT_PORT_TYPE +src17_data[27] <= sink_data[27].DB_MAX_OUTPUT_PORT_TYPE +src17_data[28] <= sink_data[28].DB_MAX_OUTPUT_PORT_TYPE +src17_data[29] <= sink_data[29].DB_MAX_OUTPUT_PORT_TYPE +src17_data[30] <= sink_data[30].DB_MAX_OUTPUT_PORT_TYPE +src17_data[31] <= sink_data[31].DB_MAX_OUTPUT_PORT_TYPE +src17_data[32] <= sink_data[32].DB_MAX_OUTPUT_PORT_TYPE +src17_data[33] <= sink_data[33].DB_MAX_OUTPUT_PORT_TYPE +src17_data[34] <= sink_data[34].DB_MAX_OUTPUT_PORT_TYPE +src17_data[35] <= sink_data[35].DB_MAX_OUTPUT_PORT_TYPE +src17_data[36] <= sink_data[36].DB_MAX_OUTPUT_PORT_TYPE +src17_data[37] <= sink_data[37].DB_MAX_OUTPUT_PORT_TYPE +src17_data[38] <= sink_data[38].DB_MAX_OUTPUT_PORT_TYPE +src17_data[39] <= sink_data[39].DB_MAX_OUTPUT_PORT_TYPE +src17_data[40] <= sink_data[40].DB_MAX_OUTPUT_PORT_TYPE +src17_data[41] <= sink_data[41].DB_MAX_OUTPUT_PORT_TYPE +src17_data[42] <= sink_data[42].DB_MAX_OUTPUT_PORT_TYPE +src17_data[43] <= sink_data[43].DB_MAX_OUTPUT_PORT_TYPE +src17_data[44] <= sink_data[44].DB_MAX_OUTPUT_PORT_TYPE +src17_data[45] <= sink_data[45].DB_MAX_OUTPUT_PORT_TYPE +src17_data[46] <= sink_data[46].DB_MAX_OUTPUT_PORT_TYPE +src17_data[47] <= sink_data[47].DB_MAX_OUTPUT_PORT_TYPE +src17_data[48] <= sink_data[48].DB_MAX_OUTPUT_PORT_TYPE +src17_data[49] <= sink_data[49].DB_MAX_OUTPUT_PORT_TYPE +src17_data[50] <= sink_data[50].DB_MAX_OUTPUT_PORT_TYPE +src17_data[51] <= sink_data[51].DB_MAX_OUTPUT_PORT_TYPE +src17_data[52] <= sink_data[52].DB_MAX_OUTPUT_PORT_TYPE +src17_data[53] <= sink_data[53].DB_MAX_OUTPUT_PORT_TYPE +src17_data[54] <= sink_data[54].DB_MAX_OUTPUT_PORT_TYPE +src17_data[55] <= sink_data[55].DB_MAX_OUTPUT_PORT_TYPE +src17_data[56] <= sink_data[56].DB_MAX_OUTPUT_PORT_TYPE +src17_data[57] <= sink_data[57].DB_MAX_OUTPUT_PORT_TYPE +src17_data[58] <= sink_data[58].DB_MAX_OUTPUT_PORT_TYPE +src17_data[59] <= sink_data[59].DB_MAX_OUTPUT_PORT_TYPE +src17_data[60] <= sink_data[60].DB_MAX_OUTPUT_PORT_TYPE +src17_data[61] <= sink_data[61].DB_MAX_OUTPUT_PORT_TYPE +src17_data[62] <= sink_data[62].DB_MAX_OUTPUT_PORT_TYPE +src17_data[63] <= sink_data[63].DB_MAX_OUTPUT_PORT_TYPE +src17_data[64] <= sink_data[64].DB_MAX_OUTPUT_PORT_TYPE +src17_data[65] <= sink_data[65].DB_MAX_OUTPUT_PORT_TYPE +src17_data[66] <= sink_data[66].DB_MAX_OUTPUT_PORT_TYPE +src17_data[67] <= sink_data[67].DB_MAX_OUTPUT_PORT_TYPE +src17_data[68] <= sink_data[68].DB_MAX_OUTPUT_PORT_TYPE +src17_data[69] <= sink_data[69].DB_MAX_OUTPUT_PORT_TYPE +src17_data[70] <= sink_data[70].DB_MAX_OUTPUT_PORT_TYPE +src17_data[71] <= sink_data[71].DB_MAX_OUTPUT_PORT_TYPE +src17_data[72] <= sink_data[72].DB_MAX_OUTPUT_PORT_TYPE +src17_data[73] <= sink_data[73].DB_MAX_OUTPUT_PORT_TYPE +src17_data[74] <= sink_data[74].DB_MAX_OUTPUT_PORT_TYPE +src17_data[75] <= sink_data[75].DB_MAX_OUTPUT_PORT_TYPE +src17_data[76] <= sink_data[76].DB_MAX_OUTPUT_PORT_TYPE +src17_data[77] <= sink_data[77].DB_MAX_OUTPUT_PORT_TYPE +src17_data[78] <= sink_data[78].DB_MAX_OUTPUT_PORT_TYPE +src17_data[79] <= sink_data[79].DB_MAX_OUTPUT_PORT_TYPE +src17_data[80] <= sink_data[80].DB_MAX_OUTPUT_PORT_TYPE +src17_data[81] <= sink_data[81].DB_MAX_OUTPUT_PORT_TYPE +src17_data[82] <= sink_data[82].DB_MAX_OUTPUT_PORT_TYPE +src17_data[83] <= sink_data[83].DB_MAX_OUTPUT_PORT_TYPE +src17_data[84] <= sink_data[84].DB_MAX_OUTPUT_PORT_TYPE +src17_data[85] <= sink_data[85].DB_MAX_OUTPUT_PORT_TYPE +src17_data[86] <= sink_data[86].DB_MAX_OUTPUT_PORT_TYPE +src17_data[87] <= sink_data[87].DB_MAX_OUTPUT_PORT_TYPE +src17_data[88] <= sink_data[88].DB_MAX_OUTPUT_PORT_TYPE +src17_data[89] <= sink_data[89].DB_MAX_OUTPUT_PORT_TYPE +src17_data[90] <= sink_data[90].DB_MAX_OUTPUT_PORT_TYPE +src17_data[91] <= sink_data[91].DB_MAX_OUTPUT_PORT_TYPE +src17_data[92] <= sink_data[92].DB_MAX_OUTPUT_PORT_TYPE +src17_data[93] <= sink_data[93].DB_MAX_OUTPUT_PORT_TYPE +src17_data[94] <= sink_data[94].DB_MAX_OUTPUT_PORT_TYPE +src17_data[95] <= sink_data[95].DB_MAX_OUTPUT_PORT_TYPE +src17_channel[0] <= +src17_channel[1] <= +src17_channel[2] <= +src17_channel[3] <= +src17_channel[4] <= +src17_channel[5] <= +src17_channel[6] <= +src17_channel[7] <= +src17_channel[8] <= +src17_channel[9] <= +src17_channel[10] <= +src17_channel[11] <= +src17_channel[12] <= +src17_channel[13] <= +src17_channel[14] <= +src17_channel[15] <= +src17_channel[16] <= +src17_channel[17] <= +src17_startofpacket <= sink_startofpacket.DB_MAX_OUTPUT_PORT_TYPE +src17_endofpacket <= sink_endofpacket.DB_MAX_OUTPUT_PORT_TYPE +src17_ready => sink_ready.IN1 +clk => ~NO_FANOUT~ +reset => ~NO_FANOUT~ + + +|lights|nios_system:NiosII|nios_system_cmd_xbar_mux:cmd_xbar_mux +sink0_valid => request.IN1 +sink0_valid => src_valid.IN1 +sink0_data[0] => src_payload.IN1 +sink0_data[1] => src_payload.IN1 +sink0_data[2] => src_payload.IN1 +sink0_data[3] => src_payload.IN1 +sink0_data[4] => src_payload.IN1 +sink0_data[5] => src_payload.IN1 +sink0_data[6] => src_payload.IN1 +sink0_data[7] => src_payload.IN1 +sink0_data[8] => src_payload.IN1 +sink0_data[9] => src_payload.IN1 +sink0_data[10] => src_payload.IN1 +sink0_data[11] => src_payload.IN1 +sink0_data[12] => src_payload.IN1 +sink0_data[13] => src_payload.IN1 +sink0_data[14] => src_payload.IN1 +sink0_data[15] => src_payload.IN1 +sink0_data[16] => src_payload.IN1 +sink0_data[17] => src_payload.IN1 +sink0_data[18] => src_payload.IN1 +sink0_data[19] => src_payload.IN1 +sink0_data[20] => src_payload.IN1 +sink0_data[21] => src_payload.IN1 +sink0_data[22] => src_payload.IN1 +sink0_data[23] => src_payload.IN1 +sink0_data[24] => src_payload.IN1 +sink0_data[25] => src_payload.IN1 +sink0_data[26] => src_payload.IN1 +sink0_data[27] => src_payload.IN1 +sink0_data[28] => src_payload.IN1 +sink0_data[29] => src_payload.IN1 +sink0_data[30] => src_payload.IN1 +sink0_data[31] => src_payload.IN1 +sink0_data[32] => src_payload.IN1 +sink0_data[33] => src_payload.IN1 +sink0_data[34] => src_payload.IN1 +sink0_data[35] => src_payload.IN1 +sink0_data[36] => src_payload.IN1 +sink0_data[37] => src_payload.IN1 +sink0_data[38] => src_payload.IN1 +sink0_data[39] => src_payload.IN1 +sink0_data[40] => src_payload.IN1 +sink0_data[41] => src_payload.IN1 +sink0_data[42] => src_payload.IN1 +sink0_data[43] => src_payload.IN1 +sink0_data[44] => src_payload.IN1 +sink0_data[45] => src_payload.IN1 +sink0_data[46] => src_payload.IN1 +sink0_data[47] => src_payload.IN1 +sink0_data[48] => src_payload.IN1 +sink0_data[49] => src_payload.IN1 +sink0_data[50] => src_payload.IN1 +sink0_data[51] => src_payload.IN1 +sink0_data[52] => src_payload.IN1 +sink0_data[53] => src_payload.IN1 +sink0_data[54] => src_payload.IN1 +sink0_data[55] => src_payload.IN1 +sink0_data[56] => src_payload.IN1 +sink0_data[57] => src_payload.IN1 +sink0_data[58] => src_payload.IN1 +sink0_data[59] => locked.IN1 +sink0_data[59] => src_payload.IN1 +sink0_data[60] => src_payload.IN1 +sink0_data[61] => src_payload.IN1 +sink0_data[62] => src_payload.IN1 +sink0_data[63] => src_payload.IN1 +sink0_data[64] => src_payload.IN1 +sink0_data[65] => src_payload.IN1 +sink0_data[66] => src_payload.IN1 +sink0_data[67] => src_payload.IN1 +sink0_data[68] => src_payload.IN1 +sink0_data[69] => src_payload.IN1 +sink0_data[70] => src_payload.IN1 +sink0_data[71] => src_payload.IN1 +sink0_data[72] => src_payload.IN1 +sink0_data[73] => src_payload.IN1 +sink0_data[74] => src_payload.IN1 +sink0_data[75] => src_payload.IN1 +sink0_data[76] => src_payload.IN1 +sink0_data[77] => src_payload.IN1 +sink0_data[78] => src_payload.IN1 +sink0_data[79] => src_payload.IN1 +sink0_data[80] => src_payload.IN1 +sink0_data[81] => src_payload.IN1 +sink0_data[82] => src_payload.IN1 +sink0_data[83] => src_payload.IN1 +sink0_data[84] => src_payload.IN1 +sink0_data[85] => src_payload.IN1 +sink0_data[86] => src_payload.IN1 +sink0_data[87] => src_payload.IN1 +sink0_data[88] => src_payload.IN1 +sink0_data[89] => src_payload.IN1 +sink0_data[90] => src_payload.IN1 +sink0_data[91] => src_payload.IN1 +sink0_data[92] => src_payload.IN1 +sink0_data[93] => src_payload.IN1 +sink0_data[94] => src_payload.IN1 +sink0_data[95] => src_payload.IN1 +sink0_channel[0] => src_payload.IN1 +sink0_channel[1] => src_payload.IN1 +sink0_channel[2] => src_payload.IN1 +sink0_channel[3] => src_payload.IN1 +sink0_channel[4] => src_payload.IN1 +sink0_channel[5] => src_payload.IN1 +sink0_channel[6] => src_payload.IN1 +sink0_channel[7] => src_payload.IN1 +sink0_channel[8] => src_payload.IN1 +sink0_channel[9] => src_payload.IN1 +sink0_channel[10] => src_payload.IN1 +sink0_channel[11] => src_payload.IN1 +sink0_channel[12] => src_payload.IN1 +sink0_channel[13] => src_payload.IN1 +sink0_channel[14] => src_payload.IN1 +sink0_channel[15] => src_payload.IN1 +sink0_channel[16] => src_payload.IN1 +sink0_channel[17] => src_payload.IN1 +sink0_startofpacket => src_payload.IN1 +sink0_endofpacket => src_payload.IN1 +sink0_ready <= sink0_ready.DB_MAX_OUTPUT_PORT_TYPE +sink1_valid => request.IN1 +sink1_valid => src_valid.IN1 +sink1_data[0] => src_payload.IN1 +sink1_data[1] => src_payload.IN1 +sink1_data[2] => src_payload.IN1 +sink1_data[3] => src_payload.IN1 +sink1_data[4] => src_payload.IN1 +sink1_data[5] => src_payload.IN1 +sink1_data[6] => src_payload.IN1 +sink1_data[7] => src_payload.IN1 +sink1_data[8] => src_payload.IN1 +sink1_data[9] => src_payload.IN1 +sink1_data[10] => src_payload.IN1 +sink1_data[11] => src_payload.IN1 +sink1_data[12] => src_payload.IN1 +sink1_data[13] => src_payload.IN1 +sink1_data[14] => src_payload.IN1 +sink1_data[15] => src_payload.IN1 +sink1_data[16] => src_payload.IN1 +sink1_data[17] => src_payload.IN1 +sink1_data[18] => src_payload.IN1 +sink1_data[19] => src_payload.IN1 +sink1_data[20] => src_payload.IN1 +sink1_data[21] => src_payload.IN1 +sink1_data[22] => src_payload.IN1 +sink1_data[23] => src_payload.IN1 +sink1_data[24] => src_payload.IN1 +sink1_data[25] => src_payload.IN1 +sink1_data[26] => src_payload.IN1 +sink1_data[27] => src_payload.IN1 +sink1_data[28] => src_payload.IN1 +sink1_data[29] => src_payload.IN1 +sink1_data[30] => src_payload.IN1 +sink1_data[31] => src_payload.IN1 +sink1_data[32] => src_payload.IN1 +sink1_data[33] => src_payload.IN1 +sink1_data[34] => src_payload.IN1 +sink1_data[35] => src_payload.IN1 +sink1_data[36] => src_payload.IN1 +sink1_data[37] => src_payload.IN1 +sink1_data[38] => src_payload.IN1 +sink1_data[39] => src_payload.IN1 +sink1_data[40] => src_payload.IN1 +sink1_data[41] => src_payload.IN1 +sink1_data[42] => src_payload.IN1 +sink1_data[43] => src_payload.IN1 +sink1_data[44] => src_payload.IN1 +sink1_data[45] => src_payload.IN1 +sink1_data[46] => src_payload.IN1 +sink1_data[47] => src_payload.IN1 +sink1_data[48] => src_payload.IN1 +sink1_data[49] => src_payload.IN1 +sink1_data[50] => src_payload.IN1 +sink1_data[51] => src_payload.IN1 +sink1_data[52] => src_payload.IN1 +sink1_data[53] => src_payload.IN1 +sink1_data[54] => src_payload.IN1 +sink1_data[55] => src_payload.IN1 +sink1_data[56] => src_payload.IN1 +sink1_data[57] => src_payload.IN1 +sink1_data[58] => src_payload.IN1 +sink1_data[59] => locked.IN1 +sink1_data[59] => src_payload.IN1 +sink1_data[60] => src_payload.IN1 +sink1_data[61] => src_payload.IN1 +sink1_data[62] => src_payload.IN1 +sink1_data[63] => src_payload.IN1 +sink1_data[64] => src_payload.IN1 +sink1_data[65] => src_payload.IN1 +sink1_data[66] => src_payload.IN1 +sink1_data[67] => src_payload.IN1 +sink1_data[68] => src_payload.IN1 +sink1_data[69] => src_payload.IN1 +sink1_data[70] => src_payload.IN1 +sink1_data[71] => src_payload.IN1 +sink1_data[72] => src_payload.IN1 +sink1_data[73] => src_payload.IN1 +sink1_data[74] => src_payload.IN1 +sink1_data[75] => src_payload.IN1 +sink1_data[76] => src_payload.IN1 +sink1_data[77] => src_payload.IN1 +sink1_data[78] => src_payload.IN1 +sink1_data[79] => src_payload.IN1 +sink1_data[80] => src_payload.IN1 +sink1_data[81] => src_payload.IN1 +sink1_data[82] => src_payload.IN1 +sink1_data[83] => src_payload.IN1 +sink1_data[84] => src_payload.IN1 +sink1_data[85] => src_payload.IN1 +sink1_data[86] => src_payload.IN1 +sink1_data[87] => src_payload.IN1 +sink1_data[88] => src_payload.IN1 +sink1_data[89] => src_payload.IN1 +sink1_data[90] => src_payload.IN1 +sink1_data[91] => src_payload.IN1 +sink1_data[92] => src_payload.IN1 +sink1_data[93] => src_payload.IN1 +sink1_data[94] => src_payload.IN1 +sink1_data[95] => src_payload.IN1 +sink1_channel[0] => src_payload.IN1 +sink1_channel[1] => src_payload.IN1 +sink1_channel[2] => src_payload.IN1 +sink1_channel[3] => src_payload.IN1 +sink1_channel[4] => src_payload.IN1 +sink1_channel[5] => src_payload.IN1 +sink1_channel[6] => src_payload.IN1 +sink1_channel[7] => src_payload.IN1 +sink1_channel[8] => src_payload.IN1 +sink1_channel[9] => src_payload.IN1 +sink1_channel[10] => src_payload.IN1 +sink1_channel[11] => src_payload.IN1 +sink1_channel[12] => src_payload.IN1 +sink1_channel[13] => src_payload.IN1 +sink1_channel[14] => src_payload.IN1 +sink1_channel[15] => src_payload.IN1 +sink1_channel[16] => src_payload.IN1 +sink1_channel[17] => src_payload.IN1 +sink1_startofpacket => src_payload.IN1 +sink1_endofpacket => src_payload.IN1 +sink1_ready <= sink1_ready.DB_MAX_OUTPUT_PORT_TYPE +src_valid <= src_valid.DB_MAX_OUTPUT_PORT_TYPE +src_data[0] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[1] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[2] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[3] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[4] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[5] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[6] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[7] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[8] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[9] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[10] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[11] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[12] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[13] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[14] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[15] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[16] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[17] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[18] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[19] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[20] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[21] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[22] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[23] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[24] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[25] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[26] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[27] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[28] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[29] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[30] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[31] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[32] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[33] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[34] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[35] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[36] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[37] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[38] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[39] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[40] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[41] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[42] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[43] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[44] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[45] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[46] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[47] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[48] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[49] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[50] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[51] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[52] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[53] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[54] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[55] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[56] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[57] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[58] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[59] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[60] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[61] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[62] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[63] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[64] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[65] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[66] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[67] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[68] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[69] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[70] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[71] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[72] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[73] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[74] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[75] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[76] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[77] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[78] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[79] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[80] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[81] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[82] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[83] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[84] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[85] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[86] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[87] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[88] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[89] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[90] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[91] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[92] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[93] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[94] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[95] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_channel[0] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_channel[1] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_channel[2] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_channel[3] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_channel[4] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_channel[5] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_channel[6] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_channel[7] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_channel[8] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_channel[9] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_channel[10] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_channel[11] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_channel[12] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_channel[13] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_channel[14] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_channel[15] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_channel[16] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_channel[17] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_startofpacket <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_endofpacket <= src_payload[0].DB_MAX_OUTPUT_PORT_TYPE +src_ready => last_cycle.IN0 +src_ready => sink0_ready.IN1 +src_ready => sink1_ready.IN1 +clk => clk.IN1 +reset => reset.IN1 + + +|lights|nios_system:NiosII|nios_system_cmd_xbar_mux:cmd_xbar_mux|altera_merlin_arbitrator:arb +clk => top_priority_reg[0].CLK +clk => top_priority_reg[1].CLK +reset => top_priority_reg[0].PRESET +reset => top_priority_reg[1].ACLR +request[0] => grant_double_vector[0].IN1 +request[0] => grant_double_vector[2].IN1 +request[0] => WideOr0.IN0 +request[0] => _.IN1 +request[0] => _.IN1 +request[1] => grant_double_vector[1].IN1 +request[1] => grant_double_vector[3].IN1 +request[1] => WideOr0.IN1 +request[1] => _.IN1 +request[1] => _.IN1 +grant[0] <= grant.DB_MAX_OUTPUT_PORT_TYPE +grant[1] <= grant.DB_MAX_OUTPUT_PORT_TYPE +increment_top_priority => top_priority_reg.OUTPUTSELECT +increment_top_priority => top_priority_reg.OUTPUTSELECT +save_top_priority => ~NO_FANOUT~ + + +|lights|nios_system:NiosII|nios_system_cmd_xbar_mux:cmd_xbar_mux|altera_merlin_arbitrator:arb|altera_merlin_arb_adder:adder +a[0] => sum.IN0 +a[0] => full_adder.cout[0].IN0 +a[1] => cout.IN0 +a[1] => cout.IN0 +a[2] => cout.IN0 +a[2] => cout.IN0 +a[3] => sum.IN0 +b[0] => sum.IN1 +b[0] => full_adder.cout[0].IN1 +b[1] => cout.IN1 +b[1] => cout.IN1 +b[2] => cout.IN1 +b[2] => cout.IN1 +b[3] => sum.IN1 +sum[0] <= sum.DB_MAX_OUTPUT_PORT_TYPE +sum[1] <= sum.DB_MAX_OUTPUT_PORT_TYPE +sum[2] <= sum.DB_MAX_OUTPUT_PORT_TYPE +sum[3] <= sum.DB_MAX_OUTPUT_PORT_TYPE + + +|lights|nios_system:NiosII|nios_system_cmd_xbar_mux:cmd_xbar_mux_001 +sink0_valid => request.IN1 +sink0_valid => src_valid.IN1 +sink0_data[0] => src_payload.IN1 +sink0_data[1] => src_payload.IN1 +sink0_data[2] => src_payload.IN1 +sink0_data[3] => src_payload.IN1 +sink0_data[4] => src_payload.IN1 +sink0_data[5] => src_payload.IN1 +sink0_data[6] => src_payload.IN1 +sink0_data[7] => src_payload.IN1 +sink0_data[8] => src_payload.IN1 +sink0_data[9] => src_payload.IN1 +sink0_data[10] => src_payload.IN1 +sink0_data[11] => src_payload.IN1 +sink0_data[12] => src_payload.IN1 +sink0_data[13] => src_payload.IN1 +sink0_data[14] => src_payload.IN1 +sink0_data[15] => src_payload.IN1 +sink0_data[16] => src_payload.IN1 +sink0_data[17] => src_payload.IN1 +sink0_data[18] => src_payload.IN1 +sink0_data[19] => src_payload.IN1 +sink0_data[20] => src_payload.IN1 +sink0_data[21] => src_payload.IN1 +sink0_data[22] => src_payload.IN1 +sink0_data[23] => src_payload.IN1 +sink0_data[24] => src_payload.IN1 +sink0_data[25] => src_payload.IN1 +sink0_data[26] => src_payload.IN1 +sink0_data[27] => src_payload.IN1 +sink0_data[28] => src_payload.IN1 +sink0_data[29] => src_payload.IN1 +sink0_data[30] => src_payload.IN1 +sink0_data[31] => src_payload.IN1 +sink0_data[32] => src_payload.IN1 +sink0_data[33] => src_payload.IN1 +sink0_data[34] => src_payload.IN1 +sink0_data[35] => src_payload.IN1 +sink0_data[36] => src_payload.IN1 +sink0_data[37] => src_payload.IN1 +sink0_data[38] => src_payload.IN1 +sink0_data[39] => src_payload.IN1 +sink0_data[40] => src_payload.IN1 +sink0_data[41] => src_payload.IN1 +sink0_data[42] => src_payload.IN1 +sink0_data[43] => src_payload.IN1 +sink0_data[44] => src_payload.IN1 +sink0_data[45] => src_payload.IN1 +sink0_data[46] => src_payload.IN1 +sink0_data[47] => src_payload.IN1 +sink0_data[48] => src_payload.IN1 +sink0_data[49] => src_payload.IN1 +sink0_data[50] => src_payload.IN1 +sink0_data[51] => src_payload.IN1 +sink0_data[52] => src_payload.IN1 +sink0_data[53] => src_payload.IN1 +sink0_data[54] => src_payload.IN1 +sink0_data[55] => src_payload.IN1 +sink0_data[56] => src_payload.IN1 +sink0_data[57] => src_payload.IN1 +sink0_data[58] => src_payload.IN1 +sink0_data[59] => locked.IN1 +sink0_data[59] => src_payload.IN1 +sink0_data[60] => src_payload.IN1 +sink0_data[61] => src_payload.IN1 +sink0_data[62] => src_payload.IN1 +sink0_data[63] => src_payload.IN1 +sink0_data[64] => src_payload.IN1 +sink0_data[65] => src_payload.IN1 +sink0_data[66] => src_payload.IN1 +sink0_data[67] => src_payload.IN1 +sink0_data[68] => src_payload.IN1 +sink0_data[69] => src_payload.IN1 +sink0_data[70] => src_payload.IN1 +sink0_data[71] => src_payload.IN1 +sink0_data[72] => src_payload.IN1 +sink0_data[73] => src_payload.IN1 +sink0_data[74] => src_payload.IN1 +sink0_data[75] => src_payload.IN1 +sink0_data[76] => src_payload.IN1 +sink0_data[77] => src_payload.IN1 +sink0_data[78] => src_payload.IN1 +sink0_data[79] => src_payload.IN1 +sink0_data[80] => src_payload.IN1 +sink0_data[81] => src_payload.IN1 +sink0_data[82] => src_payload.IN1 +sink0_data[83] => src_payload.IN1 +sink0_data[84] => src_payload.IN1 +sink0_data[85] => src_payload.IN1 +sink0_data[86] => src_payload.IN1 +sink0_data[87] => src_payload.IN1 +sink0_data[88] => src_payload.IN1 +sink0_data[89] => src_payload.IN1 +sink0_data[90] => src_payload.IN1 +sink0_data[91] => src_payload.IN1 +sink0_data[92] => src_payload.IN1 +sink0_data[93] => src_payload.IN1 +sink0_data[94] => src_payload.IN1 +sink0_data[95] => src_payload.IN1 +sink0_channel[0] => src_payload.IN1 +sink0_channel[1] => src_payload.IN1 +sink0_channel[2] => src_payload.IN1 +sink0_channel[3] => src_payload.IN1 +sink0_channel[4] => src_payload.IN1 +sink0_channel[5] => src_payload.IN1 +sink0_channel[6] => src_payload.IN1 +sink0_channel[7] => src_payload.IN1 +sink0_channel[8] => src_payload.IN1 +sink0_channel[9] => src_payload.IN1 +sink0_channel[10] => src_payload.IN1 +sink0_channel[11] => src_payload.IN1 +sink0_channel[12] => src_payload.IN1 +sink0_channel[13] => src_payload.IN1 +sink0_channel[14] => src_payload.IN1 +sink0_channel[15] => src_payload.IN1 +sink0_channel[16] => src_payload.IN1 +sink0_channel[17] => src_payload.IN1 +sink0_startofpacket => src_payload.IN1 +sink0_endofpacket => src_payload.IN1 +sink0_ready <= sink0_ready.DB_MAX_OUTPUT_PORT_TYPE +sink1_valid => request.IN1 +sink1_valid => src_valid.IN1 +sink1_data[0] => src_payload.IN1 +sink1_data[1] => src_payload.IN1 +sink1_data[2] => src_payload.IN1 +sink1_data[3] => src_payload.IN1 +sink1_data[4] => src_payload.IN1 +sink1_data[5] => src_payload.IN1 +sink1_data[6] => src_payload.IN1 +sink1_data[7] => src_payload.IN1 +sink1_data[8] => src_payload.IN1 +sink1_data[9] => src_payload.IN1 +sink1_data[10] => src_payload.IN1 +sink1_data[11] => src_payload.IN1 +sink1_data[12] => src_payload.IN1 +sink1_data[13] => src_payload.IN1 +sink1_data[14] => src_payload.IN1 +sink1_data[15] => src_payload.IN1 +sink1_data[16] => src_payload.IN1 +sink1_data[17] => src_payload.IN1 +sink1_data[18] => src_payload.IN1 +sink1_data[19] => src_payload.IN1 +sink1_data[20] => src_payload.IN1 +sink1_data[21] => src_payload.IN1 +sink1_data[22] => src_payload.IN1 +sink1_data[23] => src_payload.IN1 +sink1_data[24] => src_payload.IN1 +sink1_data[25] => src_payload.IN1 +sink1_data[26] => src_payload.IN1 +sink1_data[27] => src_payload.IN1 +sink1_data[28] => src_payload.IN1 +sink1_data[29] => src_payload.IN1 +sink1_data[30] => src_payload.IN1 +sink1_data[31] => src_payload.IN1 +sink1_data[32] => src_payload.IN1 +sink1_data[33] => src_payload.IN1 +sink1_data[34] => src_payload.IN1 +sink1_data[35] => src_payload.IN1 +sink1_data[36] => src_payload.IN1 +sink1_data[37] => src_payload.IN1 +sink1_data[38] => src_payload.IN1 +sink1_data[39] => src_payload.IN1 +sink1_data[40] => src_payload.IN1 +sink1_data[41] => src_payload.IN1 +sink1_data[42] => src_payload.IN1 +sink1_data[43] => src_payload.IN1 +sink1_data[44] => src_payload.IN1 +sink1_data[45] => src_payload.IN1 +sink1_data[46] => src_payload.IN1 +sink1_data[47] => src_payload.IN1 +sink1_data[48] => src_payload.IN1 +sink1_data[49] => src_payload.IN1 +sink1_data[50] => src_payload.IN1 +sink1_data[51] => src_payload.IN1 +sink1_data[52] => src_payload.IN1 +sink1_data[53] => src_payload.IN1 +sink1_data[54] => src_payload.IN1 +sink1_data[55] => src_payload.IN1 +sink1_data[56] => src_payload.IN1 +sink1_data[57] => src_payload.IN1 +sink1_data[58] => src_payload.IN1 +sink1_data[59] => locked.IN1 +sink1_data[59] => src_payload.IN1 +sink1_data[60] => src_payload.IN1 +sink1_data[61] => src_payload.IN1 +sink1_data[62] => src_payload.IN1 +sink1_data[63] => src_payload.IN1 +sink1_data[64] => src_payload.IN1 +sink1_data[65] => src_payload.IN1 +sink1_data[66] => src_payload.IN1 +sink1_data[67] => src_payload.IN1 +sink1_data[68] => src_payload.IN1 +sink1_data[69] => src_payload.IN1 +sink1_data[70] => src_payload.IN1 +sink1_data[71] => src_payload.IN1 +sink1_data[72] => src_payload.IN1 +sink1_data[73] => src_payload.IN1 +sink1_data[74] => src_payload.IN1 +sink1_data[75] => src_payload.IN1 +sink1_data[76] => src_payload.IN1 +sink1_data[77] => src_payload.IN1 +sink1_data[78] => src_payload.IN1 +sink1_data[79] => src_payload.IN1 +sink1_data[80] => src_payload.IN1 +sink1_data[81] => src_payload.IN1 +sink1_data[82] => src_payload.IN1 +sink1_data[83] => src_payload.IN1 +sink1_data[84] => src_payload.IN1 +sink1_data[85] => src_payload.IN1 +sink1_data[86] => src_payload.IN1 +sink1_data[87] => src_payload.IN1 +sink1_data[88] => src_payload.IN1 +sink1_data[89] => src_payload.IN1 +sink1_data[90] => src_payload.IN1 +sink1_data[91] => src_payload.IN1 +sink1_data[92] => src_payload.IN1 +sink1_data[93] => src_payload.IN1 +sink1_data[94] => src_payload.IN1 +sink1_data[95] => src_payload.IN1 +sink1_channel[0] => src_payload.IN1 +sink1_channel[1] => src_payload.IN1 +sink1_channel[2] => src_payload.IN1 +sink1_channel[3] => src_payload.IN1 +sink1_channel[4] => src_payload.IN1 +sink1_channel[5] => src_payload.IN1 +sink1_channel[6] => src_payload.IN1 +sink1_channel[7] => src_payload.IN1 +sink1_channel[8] => src_payload.IN1 +sink1_channel[9] => src_payload.IN1 +sink1_channel[10] => src_payload.IN1 +sink1_channel[11] => src_payload.IN1 +sink1_channel[12] => src_payload.IN1 +sink1_channel[13] => src_payload.IN1 +sink1_channel[14] => src_payload.IN1 +sink1_channel[15] => src_payload.IN1 +sink1_channel[16] => src_payload.IN1 +sink1_channel[17] => src_payload.IN1 +sink1_startofpacket => src_payload.IN1 +sink1_endofpacket => src_payload.IN1 +sink1_ready <= sink1_ready.DB_MAX_OUTPUT_PORT_TYPE +src_valid <= src_valid.DB_MAX_OUTPUT_PORT_TYPE +src_data[0] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[1] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[2] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[3] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[4] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[5] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[6] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[7] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[8] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[9] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[10] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[11] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[12] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[13] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[14] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[15] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[16] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[17] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[18] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[19] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[20] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[21] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[22] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[23] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[24] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[25] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[26] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[27] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[28] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[29] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[30] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[31] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[32] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[33] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[34] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[35] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[36] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[37] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[38] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[39] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[40] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[41] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[42] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[43] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[44] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[45] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[46] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[47] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[48] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[49] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[50] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[51] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[52] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[53] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[54] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[55] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[56] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[57] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[58] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[59] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[60] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[61] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[62] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[63] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[64] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[65] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[66] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[67] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[68] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[69] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[70] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[71] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[72] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[73] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[74] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[75] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[76] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[77] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[78] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[79] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[80] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[81] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[82] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[83] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[84] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[85] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[86] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[87] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[88] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[89] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[90] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[91] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[92] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[93] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[94] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[95] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_channel[0] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_channel[1] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_channel[2] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_channel[3] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_channel[4] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_channel[5] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_channel[6] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_channel[7] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_channel[8] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_channel[9] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_channel[10] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_channel[11] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_channel[12] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_channel[13] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_channel[14] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_channel[15] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_channel[16] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_channel[17] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_startofpacket <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_endofpacket <= src_payload[0].DB_MAX_OUTPUT_PORT_TYPE +src_ready => last_cycle.IN0 +src_ready => sink0_ready.IN1 +src_ready => sink1_ready.IN1 +clk => clk.IN1 +reset => reset.IN1 + + +|lights|nios_system:NiosII|nios_system_cmd_xbar_mux:cmd_xbar_mux_001|altera_merlin_arbitrator:arb +clk => top_priority_reg[0].CLK +clk => top_priority_reg[1].CLK +reset => top_priority_reg[0].PRESET +reset => top_priority_reg[1].ACLR +request[0] => grant_double_vector[0].IN1 +request[0] => grant_double_vector[2].IN1 +request[0] => WideOr0.IN0 +request[0] => _.IN1 +request[0] => _.IN1 +request[1] => grant_double_vector[1].IN1 +request[1] => grant_double_vector[3].IN1 +request[1] => WideOr0.IN1 +request[1] => _.IN1 +request[1] => _.IN1 +grant[0] <= grant.DB_MAX_OUTPUT_PORT_TYPE +grant[1] <= grant.DB_MAX_OUTPUT_PORT_TYPE +increment_top_priority => top_priority_reg.OUTPUTSELECT +increment_top_priority => top_priority_reg.OUTPUTSELECT +save_top_priority => ~NO_FANOUT~ + + +|lights|nios_system:NiosII|nios_system_cmd_xbar_mux:cmd_xbar_mux_001|altera_merlin_arbitrator:arb|altera_merlin_arb_adder:adder +a[0] => sum.IN0 +a[0] => full_adder.cout[0].IN0 +a[1] => cout.IN0 +a[1] => cout.IN0 +a[2] => cout.IN0 +a[2] => cout.IN0 +a[3] => sum.IN0 +b[0] => sum.IN1 +b[0] => full_adder.cout[0].IN1 +b[1] => cout.IN1 +b[1] => cout.IN1 +b[2] => cout.IN1 +b[2] => cout.IN1 +b[3] => sum.IN1 +sum[0] <= sum.DB_MAX_OUTPUT_PORT_TYPE +sum[1] <= sum.DB_MAX_OUTPUT_PORT_TYPE +sum[2] <= sum.DB_MAX_OUTPUT_PORT_TYPE +sum[3] <= sum.DB_MAX_OUTPUT_PORT_TYPE + + +|lights|nios_system:NiosII|nios_system_cmd_xbar_demux:rsp_xbar_demux +sink_valid[0] => src0_valid.IN0 +sink_valid[0] => src1_valid.IN0 +sink_data[0] => src1_data[0].DATAIN +sink_data[0] => src0_data[0].DATAIN +sink_data[1] => src1_data[1].DATAIN +sink_data[1] => src0_data[1].DATAIN +sink_data[2] => src1_data[2].DATAIN +sink_data[2] => src0_data[2].DATAIN +sink_data[3] => src1_data[3].DATAIN +sink_data[3] => src0_data[3].DATAIN +sink_data[4] => src1_data[4].DATAIN +sink_data[4] => src0_data[4].DATAIN +sink_data[5] => src1_data[5].DATAIN +sink_data[5] => src0_data[5].DATAIN +sink_data[6] => src1_data[6].DATAIN +sink_data[6] => src0_data[6].DATAIN +sink_data[7] => src1_data[7].DATAIN +sink_data[7] => src0_data[7].DATAIN +sink_data[8] => src1_data[8].DATAIN +sink_data[8] => src0_data[8].DATAIN +sink_data[9] => src1_data[9].DATAIN +sink_data[9] => src0_data[9].DATAIN +sink_data[10] => src1_data[10].DATAIN +sink_data[10] => src0_data[10].DATAIN +sink_data[11] => src1_data[11].DATAIN +sink_data[11] => src0_data[11].DATAIN +sink_data[12] => src1_data[12].DATAIN +sink_data[12] => src0_data[12].DATAIN +sink_data[13] => src1_data[13].DATAIN +sink_data[13] => src0_data[13].DATAIN +sink_data[14] => src1_data[14].DATAIN +sink_data[14] => src0_data[14].DATAIN +sink_data[15] => src1_data[15].DATAIN +sink_data[15] => src0_data[15].DATAIN +sink_data[16] => src1_data[16].DATAIN +sink_data[16] => src0_data[16].DATAIN +sink_data[17] => src1_data[17].DATAIN +sink_data[17] => src0_data[17].DATAIN +sink_data[18] => src1_data[18].DATAIN +sink_data[18] => src0_data[18].DATAIN +sink_data[19] => src1_data[19].DATAIN +sink_data[19] => src0_data[19].DATAIN +sink_data[20] => src1_data[20].DATAIN +sink_data[20] => src0_data[20].DATAIN +sink_data[21] => src1_data[21].DATAIN +sink_data[21] => src0_data[21].DATAIN +sink_data[22] => src1_data[22].DATAIN +sink_data[22] => src0_data[22].DATAIN +sink_data[23] => src1_data[23].DATAIN +sink_data[23] => src0_data[23].DATAIN +sink_data[24] => src1_data[24].DATAIN +sink_data[24] => src0_data[24].DATAIN +sink_data[25] => src1_data[25].DATAIN +sink_data[25] => src0_data[25].DATAIN +sink_data[26] => src1_data[26].DATAIN +sink_data[26] => src0_data[26].DATAIN +sink_data[27] => src1_data[27].DATAIN +sink_data[27] => src0_data[27].DATAIN +sink_data[28] => src1_data[28].DATAIN +sink_data[28] => src0_data[28].DATAIN +sink_data[29] => src1_data[29].DATAIN +sink_data[29] => src0_data[29].DATAIN +sink_data[30] => src1_data[30].DATAIN +sink_data[30] => src0_data[30].DATAIN +sink_data[31] => src1_data[31].DATAIN +sink_data[31] => src0_data[31].DATAIN +sink_data[32] => src1_data[32].DATAIN +sink_data[32] => src0_data[32].DATAIN +sink_data[33] => src1_data[33].DATAIN +sink_data[33] => src0_data[33].DATAIN +sink_data[34] => src1_data[34].DATAIN +sink_data[34] => src0_data[34].DATAIN +sink_data[35] => src1_data[35].DATAIN +sink_data[35] => src0_data[35].DATAIN +sink_data[36] => src1_data[36].DATAIN +sink_data[36] => src0_data[36].DATAIN +sink_data[37] => src1_data[37].DATAIN +sink_data[37] => src0_data[37].DATAIN +sink_data[38] => src1_data[38].DATAIN +sink_data[38] => src0_data[38].DATAIN +sink_data[39] => src1_data[39].DATAIN +sink_data[39] => src0_data[39].DATAIN +sink_data[40] => src1_data[40].DATAIN +sink_data[40] => src0_data[40].DATAIN +sink_data[41] => src1_data[41].DATAIN +sink_data[41] => src0_data[41].DATAIN +sink_data[42] => src1_data[42].DATAIN +sink_data[42] => src0_data[42].DATAIN +sink_data[43] => src1_data[43].DATAIN +sink_data[43] => src0_data[43].DATAIN +sink_data[44] => src1_data[44].DATAIN +sink_data[44] => src0_data[44].DATAIN +sink_data[45] => src1_data[45].DATAIN +sink_data[45] => src0_data[45].DATAIN +sink_data[46] => src1_data[46].DATAIN +sink_data[46] => src0_data[46].DATAIN +sink_data[47] => src1_data[47].DATAIN +sink_data[47] => src0_data[47].DATAIN +sink_data[48] => src1_data[48].DATAIN +sink_data[48] => src0_data[48].DATAIN +sink_data[49] => src1_data[49].DATAIN +sink_data[49] => src0_data[49].DATAIN +sink_data[50] => src1_data[50].DATAIN +sink_data[50] => src0_data[50].DATAIN +sink_data[51] => src1_data[51].DATAIN +sink_data[51] => src0_data[51].DATAIN +sink_data[52] => src1_data[52].DATAIN +sink_data[52] => src0_data[52].DATAIN +sink_data[53] => src1_data[53].DATAIN +sink_data[53] => src0_data[53].DATAIN +sink_data[54] => src1_data[54].DATAIN +sink_data[54] => src0_data[54].DATAIN +sink_data[55] => src1_data[55].DATAIN +sink_data[55] => src0_data[55].DATAIN +sink_data[56] => src1_data[56].DATAIN +sink_data[56] => src0_data[56].DATAIN +sink_data[57] => src1_data[57].DATAIN +sink_data[57] => src0_data[57].DATAIN +sink_data[58] => src1_data[58].DATAIN +sink_data[58] => src0_data[58].DATAIN +sink_data[59] => src1_data[59].DATAIN +sink_data[59] => src0_data[59].DATAIN +sink_data[60] => src1_data[60].DATAIN +sink_data[60] => src0_data[60].DATAIN +sink_data[61] => src1_data[61].DATAIN +sink_data[61] => src0_data[61].DATAIN +sink_data[62] => src1_data[62].DATAIN +sink_data[62] => src0_data[62].DATAIN +sink_data[63] => src1_data[63].DATAIN +sink_data[63] => src0_data[63].DATAIN +sink_data[64] => src1_data[64].DATAIN +sink_data[64] => src0_data[64].DATAIN +sink_data[65] => src1_data[65].DATAIN +sink_data[65] => src0_data[65].DATAIN +sink_data[66] => src1_data[66].DATAIN +sink_data[66] => src0_data[66].DATAIN +sink_data[67] => src1_data[67].DATAIN +sink_data[67] => src0_data[67].DATAIN +sink_data[68] => src1_data[68].DATAIN +sink_data[68] => src0_data[68].DATAIN +sink_data[69] => src1_data[69].DATAIN +sink_data[69] => src0_data[69].DATAIN +sink_data[70] => src1_data[70].DATAIN +sink_data[70] => src0_data[70].DATAIN +sink_data[71] => src1_data[71].DATAIN +sink_data[71] => src0_data[71].DATAIN +sink_data[72] => src1_data[72].DATAIN +sink_data[72] => src0_data[72].DATAIN +sink_data[73] => src1_data[73].DATAIN +sink_data[73] => src0_data[73].DATAIN +sink_data[74] => src1_data[74].DATAIN +sink_data[74] => src0_data[74].DATAIN +sink_data[75] => src1_data[75].DATAIN +sink_data[75] => src0_data[75].DATAIN +sink_data[76] => src1_data[76].DATAIN +sink_data[76] => src0_data[76].DATAIN +sink_data[77] => src1_data[77].DATAIN +sink_data[77] => src0_data[77].DATAIN +sink_data[78] => src1_data[78].DATAIN +sink_data[78] => src0_data[78].DATAIN +sink_data[79] => src1_data[79].DATAIN +sink_data[79] => src0_data[79].DATAIN +sink_data[80] => src1_data[80].DATAIN +sink_data[80] => src0_data[80].DATAIN +sink_data[81] => src1_data[81].DATAIN +sink_data[81] => src0_data[81].DATAIN +sink_data[82] => src1_data[82].DATAIN +sink_data[82] => src0_data[82].DATAIN +sink_data[83] => src1_data[83].DATAIN +sink_data[83] => src0_data[83].DATAIN +sink_data[84] => src1_data[84].DATAIN +sink_data[84] => src0_data[84].DATAIN +sink_data[85] => src1_data[85].DATAIN +sink_data[85] => src0_data[85].DATAIN +sink_data[86] => src1_data[86].DATAIN +sink_data[86] => src0_data[86].DATAIN +sink_data[87] => src1_data[87].DATAIN +sink_data[87] => src0_data[87].DATAIN +sink_data[88] => src1_data[88].DATAIN +sink_data[88] => src0_data[88].DATAIN +sink_data[89] => src1_data[89].DATAIN +sink_data[89] => src0_data[89].DATAIN +sink_data[90] => src1_data[90].DATAIN +sink_data[90] => src0_data[90].DATAIN +sink_data[91] => src1_data[91].DATAIN +sink_data[91] => src0_data[91].DATAIN +sink_data[92] => src1_data[92].DATAIN +sink_data[92] => src0_data[92].DATAIN +sink_data[93] => src1_data[93].DATAIN +sink_data[93] => src0_data[93].DATAIN +sink_data[94] => src1_data[94].DATAIN +sink_data[94] => src0_data[94].DATAIN +sink_data[95] => src1_data[95].DATAIN +sink_data[95] => src0_data[95].DATAIN +sink_channel[0] => src0_valid.IN1 +sink_channel[0] => sink_ready.IN0 +sink_channel[1] => src1_valid.IN1 +sink_channel[1] => sink_ready.IN0 +sink_channel[2] => src1_channel[0].DATAIN +sink_channel[2] => src0_channel[0].DATAIN +sink_channel[3] => src1_channel[1].DATAIN +sink_channel[3] => src0_channel[1].DATAIN +sink_channel[4] => src1_channel[2].DATAIN +sink_channel[4] => src0_channel[2].DATAIN +sink_channel[5] => src1_channel[3].DATAIN +sink_channel[5] => src0_channel[3].DATAIN +sink_channel[6] => src1_channel[4].DATAIN +sink_channel[6] => src0_channel[4].DATAIN +sink_channel[7] => src1_channel[5].DATAIN +sink_channel[7] => src0_channel[5].DATAIN +sink_channel[8] => src1_channel[6].DATAIN +sink_channel[8] => src0_channel[6].DATAIN +sink_channel[9] => src1_channel[7].DATAIN +sink_channel[9] => src0_channel[7].DATAIN +sink_channel[10] => src1_channel[8].DATAIN +sink_channel[10] => src0_channel[8].DATAIN +sink_channel[11] => src1_channel[9].DATAIN +sink_channel[11] => src0_channel[9].DATAIN +sink_channel[12] => src1_channel[10].DATAIN +sink_channel[12] => src0_channel[10].DATAIN +sink_channel[13] => src1_channel[11].DATAIN +sink_channel[13] => src0_channel[11].DATAIN +sink_channel[14] => src1_channel[12].DATAIN +sink_channel[14] => src0_channel[12].DATAIN +sink_channel[15] => src1_channel[13].DATAIN +sink_channel[15] => src0_channel[13].DATAIN +sink_channel[16] => src1_channel[14].DATAIN +sink_channel[16] => src0_channel[14].DATAIN +sink_channel[17] => src1_channel[15].DATAIN +sink_channel[17] => src0_channel[15].DATAIN +sink_startofpacket => src1_startofpacket.DATAIN +sink_startofpacket => src0_startofpacket.DATAIN +sink_endofpacket => src1_endofpacket.DATAIN +sink_endofpacket => src0_endofpacket.DATAIN +sink_ready <= WideOr0.DB_MAX_OUTPUT_PORT_TYPE +src0_valid <= src0_valid.DB_MAX_OUTPUT_PORT_TYPE +src0_data[0] <= sink_data[0].DB_MAX_OUTPUT_PORT_TYPE +src0_data[1] <= sink_data[1].DB_MAX_OUTPUT_PORT_TYPE +src0_data[2] <= sink_data[2].DB_MAX_OUTPUT_PORT_TYPE +src0_data[3] <= sink_data[3].DB_MAX_OUTPUT_PORT_TYPE +src0_data[4] <= sink_data[4].DB_MAX_OUTPUT_PORT_TYPE +src0_data[5] <= sink_data[5].DB_MAX_OUTPUT_PORT_TYPE +src0_data[6] <= sink_data[6].DB_MAX_OUTPUT_PORT_TYPE +src0_data[7] <= sink_data[7].DB_MAX_OUTPUT_PORT_TYPE +src0_data[8] <= sink_data[8].DB_MAX_OUTPUT_PORT_TYPE +src0_data[9] <= sink_data[9].DB_MAX_OUTPUT_PORT_TYPE +src0_data[10] <= sink_data[10].DB_MAX_OUTPUT_PORT_TYPE +src0_data[11] <= sink_data[11].DB_MAX_OUTPUT_PORT_TYPE +src0_data[12] <= sink_data[12].DB_MAX_OUTPUT_PORT_TYPE +src0_data[13] <= sink_data[13].DB_MAX_OUTPUT_PORT_TYPE +src0_data[14] <= sink_data[14].DB_MAX_OUTPUT_PORT_TYPE +src0_data[15] <= sink_data[15].DB_MAX_OUTPUT_PORT_TYPE +src0_data[16] <= sink_data[16].DB_MAX_OUTPUT_PORT_TYPE +src0_data[17] <= sink_data[17].DB_MAX_OUTPUT_PORT_TYPE +src0_data[18] <= sink_data[18].DB_MAX_OUTPUT_PORT_TYPE +src0_data[19] <= sink_data[19].DB_MAX_OUTPUT_PORT_TYPE +src0_data[20] <= sink_data[20].DB_MAX_OUTPUT_PORT_TYPE +src0_data[21] <= sink_data[21].DB_MAX_OUTPUT_PORT_TYPE +src0_data[22] <= sink_data[22].DB_MAX_OUTPUT_PORT_TYPE +src0_data[23] <= sink_data[23].DB_MAX_OUTPUT_PORT_TYPE +src0_data[24] <= sink_data[24].DB_MAX_OUTPUT_PORT_TYPE +src0_data[25] <= sink_data[25].DB_MAX_OUTPUT_PORT_TYPE +src0_data[26] <= sink_data[26].DB_MAX_OUTPUT_PORT_TYPE +src0_data[27] <= sink_data[27].DB_MAX_OUTPUT_PORT_TYPE +src0_data[28] <= sink_data[28].DB_MAX_OUTPUT_PORT_TYPE +src0_data[29] <= sink_data[29].DB_MAX_OUTPUT_PORT_TYPE +src0_data[30] <= sink_data[30].DB_MAX_OUTPUT_PORT_TYPE +src0_data[31] <= sink_data[31].DB_MAX_OUTPUT_PORT_TYPE +src0_data[32] <= sink_data[32].DB_MAX_OUTPUT_PORT_TYPE +src0_data[33] <= sink_data[33].DB_MAX_OUTPUT_PORT_TYPE +src0_data[34] <= sink_data[34].DB_MAX_OUTPUT_PORT_TYPE +src0_data[35] <= sink_data[35].DB_MAX_OUTPUT_PORT_TYPE +src0_data[36] <= sink_data[36].DB_MAX_OUTPUT_PORT_TYPE +src0_data[37] <= sink_data[37].DB_MAX_OUTPUT_PORT_TYPE +src0_data[38] <= sink_data[38].DB_MAX_OUTPUT_PORT_TYPE +src0_data[39] <= sink_data[39].DB_MAX_OUTPUT_PORT_TYPE +src0_data[40] <= sink_data[40].DB_MAX_OUTPUT_PORT_TYPE +src0_data[41] <= sink_data[41].DB_MAX_OUTPUT_PORT_TYPE +src0_data[42] <= sink_data[42].DB_MAX_OUTPUT_PORT_TYPE +src0_data[43] <= sink_data[43].DB_MAX_OUTPUT_PORT_TYPE +src0_data[44] <= sink_data[44].DB_MAX_OUTPUT_PORT_TYPE +src0_data[45] <= sink_data[45].DB_MAX_OUTPUT_PORT_TYPE +src0_data[46] <= sink_data[46].DB_MAX_OUTPUT_PORT_TYPE +src0_data[47] <= sink_data[47].DB_MAX_OUTPUT_PORT_TYPE +src0_data[48] <= sink_data[48].DB_MAX_OUTPUT_PORT_TYPE +src0_data[49] <= sink_data[49].DB_MAX_OUTPUT_PORT_TYPE +src0_data[50] <= sink_data[50].DB_MAX_OUTPUT_PORT_TYPE +src0_data[51] <= sink_data[51].DB_MAX_OUTPUT_PORT_TYPE +src0_data[52] <= sink_data[52].DB_MAX_OUTPUT_PORT_TYPE +src0_data[53] <= sink_data[53].DB_MAX_OUTPUT_PORT_TYPE +src0_data[54] <= sink_data[54].DB_MAX_OUTPUT_PORT_TYPE +src0_data[55] <= sink_data[55].DB_MAX_OUTPUT_PORT_TYPE +src0_data[56] <= sink_data[56].DB_MAX_OUTPUT_PORT_TYPE +src0_data[57] <= sink_data[57].DB_MAX_OUTPUT_PORT_TYPE +src0_data[58] <= sink_data[58].DB_MAX_OUTPUT_PORT_TYPE +src0_data[59] <= sink_data[59].DB_MAX_OUTPUT_PORT_TYPE +src0_data[60] <= sink_data[60].DB_MAX_OUTPUT_PORT_TYPE +src0_data[61] <= sink_data[61].DB_MAX_OUTPUT_PORT_TYPE +src0_data[62] <= sink_data[62].DB_MAX_OUTPUT_PORT_TYPE +src0_data[63] <= sink_data[63].DB_MAX_OUTPUT_PORT_TYPE +src0_data[64] <= sink_data[64].DB_MAX_OUTPUT_PORT_TYPE +src0_data[65] <= sink_data[65].DB_MAX_OUTPUT_PORT_TYPE +src0_data[66] <= sink_data[66].DB_MAX_OUTPUT_PORT_TYPE +src0_data[67] <= sink_data[67].DB_MAX_OUTPUT_PORT_TYPE +src0_data[68] <= sink_data[68].DB_MAX_OUTPUT_PORT_TYPE +src0_data[69] <= sink_data[69].DB_MAX_OUTPUT_PORT_TYPE +src0_data[70] <= sink_data[70].DB_MAX_OUTPUT_PORT_TYPE +src0_data[71] <= sink_data[71].DB_MAX_OUTPUT_PORT_TYPE +src0_data[72] <= sink_data[72].DB_MAX_OUTPUT_PORT_TYPE +src0_data[73] <= sink_data[73].DB_MAX_OUTPUT_PORT_TYPE +src0_data[74] <= sink_data[74].DB_MAX_OUTPUT_PORT_TYPE +src0_data[75] <= sink_data[75].DB_MAX_OUTPUT_PORT_TYPE +src0_data[76] <= sink_data[76].DB_MAX_OUTPUT_PORT_TYPE +src0_data[77] <= sink_data[77].DB_MAX_OUTPUT_PORT_TYPE +src0_data[78] <= sink_data[78].DB_MAX_OUTPUT_PORT_TYPE +src0_data[79] <= sink_data[79].DB_MAX_OUTPUT_PORT_TYPE +src0_data[80] <= sink_data[80].DB_MAX_OUTPUT_PORT_TYPE +src0_data[81] <= sink_data[81].DB_MAX_OUTPUT_PORT_TYPE +src0_data[82] <= sink_data[82].DB_MAX_OUTPUT_PORT_TYPE +src0_data[83] <= sink_data[83].DB_MAX_OUTPUT_PORT_TYPE +src0_data[84] <= sink_data[84].DB_MAX_OUTPUT_PORT_TYPE +src0_data[85] <= sink_data[85].DB_MAX_OUTPUT_PORT_TYPE +src0_data[86] <= sink_data[86].DB_MAX_OUTPUT_PORT_TYPE +src0_data[87] <= sink_data[87].DB_MAX_OUTPUT_PORT_TYPE +src0_data[88] <= sink_data[88].DB_MAX_OUTPUT_PORT_TYPE +src0_data[89] <= sink_data[89].DB_MAX_OUTPUT_PORT_TYPE +src0_data[90] <= sink_data[90].DB_MAX_OUTPUT_PORT_TYPE +src0_data[91] <= sink_data[91].DB_MAX_OUTPUT_PORT_TYPE +src0_data[92] <= sink_data[92].DB_MAX_OUTPUT_PORT_TYPE +src0_data[93] <= sink_data[93].DB_MAX_OUTPUT_PORT_TYPE +src0_data[94] <= sink_data[94].DB_MAX_OUTPUT_PORT_TYPE +src0_data[95] <= sink_data[95].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[0] <= sink_channel[2].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[1] <= sink_channel[3].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[2] <= sink_channel[4].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[3] <= sink_channel[5].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[4] <= sink_channel[6].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[5] <= sink_channel[7].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[6] <= sink_channel[8].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[7] <= sink_channel[9].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[8] <= sink_channel[10].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[9] <= sink_channel[11].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[10] <= sink_channel[12].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[11] <= sink_channel[13].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[12] <= sink_channel[14].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[13] <= sink_channel[15].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[14] <= sink_channel[16].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[15] <= sink_channel[17].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[16] <= +src0_channel[17] <= +src0_startofpacket <= sink_startofpacket.DB_MAX_OUTPUT_PORT_TYPE +src0_endofpacket <= sink_endofpacket.DB_MAX_OUTPUT_PORT_TYPE +src0_ready => sink_ready.IN1 +src1_valid <= src1_valid.DB_MAX_OUTPUT_PORT_TYPE +src1_data[0] <= sink_data[0].DB_MAX_OUTPUT_PORT_TYPE +src1_data[1] <= sink_data[1].DB_MAX_OUTPUT_PORT_TYPE +src1_data[2] <= sink_data[2].DB_MAX_OUTPUT_PORT_TYPE +src1_data[3] <= sink_data[3].DB_MAX_OUTPUT_PORT_TYPE +src1_data[4] <= sink_data[4].DB_MAX_OUTPUT_PORT_TYPE +src1_data[5] <= sink_data[5].DB_MAX_OUTPUT_PORT_TYPE +src1_data[6] <= sink_data[6].DB_MAX_OUTPUT_PORT_TYPE +src1_data[7] <= sink_data[7].DB_MAX_OUTPUT_PORT_TYPE +src1_data[8] <= sink_data[8].DB_MAX_OUTPUT_PORT_TYPE +src1_data[9] <= sink_data[9].DB_MAX_OUTPUT_PORT_TYPE +src1_data[10] <= sink_data[10].DB_MAX_OUTPUT_PORT_TYPE +src1_data[11] <= sink_data[11].DB_MAX_OUTPUT_PORT_TYPE +src1_data[12] <= sink_data[12].DB_MAX_OUTPUT_PORT_TYPE +src1_data[13] <= sink_data[13].DB_MAX_OUTPUT_PORT_TYPE +src1_data[14] <= sink_data[14].DB_MAX_OUTPUT_PORT_TYPE +src1_data[15] <= sink_data[15].DB_MAX_OUTPUT_PORT_TYPE +src1_data[16] <= sink_data[16].DB_MAX_OUTPUT_PORT_TYPE +src1_data[17] <= sink_data[17].DB_MAX_OUTPUT_PORT_TYPE +src1_data[18] <= sink_data[18].DB_MAX_OUTPUT_PORT_TYPE +src1_data[19] <= sink_data[19].DB_MAX_OUTPUT_PORT_TYPE +src1_data[20] <= sink_data[20].DB_MAX_OUTPUT_PORT_TYPE +src1_data[21] <= sink_data[21].DB_MAX_OUTPUT_PORT_TYPE +src1_data[22] <= sink_data[22].DB_MAX_OUTPUT_PORT_TYPE +src1_data[23] <= sink_data[23].DB_MAX_OUTPUT_PORT_TYPE +src1_data[24] <= sink_data[24].DB_MAX_OUTPUT_PORT_TYPE +src1_data[25] <= sink_data[25].DB_MAX_OUTPUT_PORT_TYPE +src1_data[26] <= sink_data[26].DB_MAX_OUTPUT_PORT_TYPE +src1_data[27] <= sink_data[27].DB_MAX_OUTPUT_PORT_TYPE +src1_data[28] <= sink_data[28].DB_MAX_OUTPUT_PORT_TYPE +src1_data[29] <= sink_data[29].DB_MAX_OUTPUT_PORT_TYPE +src1_data[30] <= sink_data[30].DB_MAX_OUTPUT_PORT_TYPE +src1_data[31] <= sink_data[31].DB_MAX_OUTPUT_PORT_TYPE +src1_data[32] <= sink_data[32].DB_MAX_OUTPUT_PORT_TYPE +src1_data[33] <= sink_data[33].DB_MAX_OUTPUT_PORT_TYPE +src1_data[34] <= sink_data[34].DB_MAX_OUTPUT_PORT_TYPE +src1_data[35] <= sink_data[35].DB_MAX_OUTPUT_PORT_TYPE +src1_data[36] <= sink_data[36].DB_MAX_OUTPUT_PORT_TYPE +src1_data[37] <= sink_data[37].DB_MAX_OUTPUT_PORT_TYPE +src1_data[38] <= sink_data[38].DB_MAX_OUTPUT_PORT_TYPE +src1_data[39] <= sink_data[39].DB_MAX_OUTPUT_PORT_TYPE +src1_data[40] <= sink_data[40].DB_MAX_OUTPUT_PORT_TYPE +src1_data[41] <= sink_data[41].DB_MAX_OUTPUT_PORT_TYPE +src1_data[42] <= sink_data[42].DB_MAX_OUTPUT_PORT_TYPE +src1_data[43] <= sink_data[43].DB_MAX_OUTPUT_PORT_TYPE +src1_data[44] <= sink_data[44].DB_MAX_OUTPUT_PORT_TYPE +src1_data[45] <= sink_data[45].DB_MAX_OUTPUT_PORT_TYPE +src1_data[46] <= sink_data[46].DB_MAX_OUTPUT_PORT_TYPE +src1_data[47] <= sink_data[47].DB_MAX_OUTPUT_PORT_TYPE +src1_data[48] <= sink_data[48].DB_MAX_OUTPUT_PORT_TYPE +src1_data[49] <= sink_data[49].DB_MAX_OUTPUT_PORT_TYPE +src1_data[50] <= sink_data[50].DB_MAX_OUTPUT_PORT_TYPE +src1_data[51] <= sink_data[51].DB_MAX_OUTPUT_PORT_TYPE +src1_data[52] <= sink_data[52].DB_MAX_OUTPUT_PORT_TYPE +src1_data[53] <= sink_data[53].DB_MAX_OUTPUT_PORT_TYPE +src1_data[54] <= sink_data[54].DB_MAX_OUTPUT_PORT_TYPE +src1_data[55] <= sink_data[55].DB_MAX_OUTPUT_PORT_TYPE +src1_data[56] <= sink_data[56].DB_MAX_OUTPUT_PORT_TYPE +src1_data[57] <= sink_data[57].DB_MAX_OUTPUT_PORT_TYPE +src1_data[58] <= sink_data[58].DB_MAX_OUTPUT_PORT_TYPE +src1_data[59] <= sink_data[59].DB_MAX_OUTPUT_PORT_TYPE +src1_data[60] <= sink_data[60].DB_MAX_OUTPUT_PORT_TYPE +src1_data[61] <= sink_data[61].DB_MAX_OUTPUT_PORT_TYPE +src1_data[62] <= sink_data[62].DB_MAX_OUTPUT_PORT_TYPE +src1_data[63] <= sink_data[63].DB_MAX_OUTPUT_PORT_TYPE +src1_data[64] <= sink_data[64].DB_MAX_OUTPUT_PORT_TYPE +src1_data[65] <= sink_data[65].DB_MAX_OUTPUT_PORT_TYPE +src1_data[66] <= sink_data[66].DB_MAX_OUTPUT_PORT_TYPE +src1_data[67] <= sink_data[67].DB_MAX_OUTPUT_PORT_TYPE +src1_data[68] <= sink_data[68].DB_MAX_OUTPUT_PORT_TYPE +src1_data[69] <= sink_data[69].DB_MAX_OUTPUT_PORT_TYPE +src1_data[70] <= sink_data[70].DB_MAX_OUTPUT_PORT_TYPE +src1_data[71] <= sink_data[71].DB_MAX_OUTPUT_PORT_TYPE +src1_data[72] <= sink_data[72].DB_MAX_OUTPUT_PORT_TYPE +src1_data[73] <= sink_data[73].DB_MAX_OUTPUT_PORT_TYPE +src1_data[74] <= sink_data[74].DB_MAX_OUTPUT_PORT_TYPE +src1_data[75] <= sink_data[75].DB_MAX_OUTPUT_PORT_TYPE +src1_data[76] <= sink_data[76].DB_MAX_OUTPUT_PORT_TYPE +src1_data[77] <= sink_data[77].DB_MAX_OUTPUT_PORT_TYPE +src1_data[78] <= sink_data[78].DB_MAX_OUTPUT_PORT_TYPE +src1_data[79] <= sink_data[79].DB_MAX_OUTPUT_PORT_TYPE +src1_data[80] <= sink_data[80].DB_MAX_OUTPUT_PORT_TYPE +src1_data[81] <= sink_data[81].DB_MAX_OUTPUT_PORT_TYPE +src1_data[82] <= sink_data[82].DB_MAX_OUTPUT_PORT_TYPE +src1_data[83] <= sink_data[83].DB_MAX_OUTPUT_PORT_TYPE +src1_data[84] <= sink_data[84].DB_MAX_OUTPUT_PORT_TYPE +src1_data[85] <= sink_data[85].DB_MAX_OUTPUT_PORT_TYPE +src1_data[86] <= sink_data[86].DB_MAX_OUTPUT_PORT_TYPE +src1_data[87] <= sink_data[87].DB_MAX_OUTPUT_PORT_TYPE +src1_data[88] <= sink_data[88].DB_MAX_OUTPUT_PORT_TYPE +src1_data[89] <= sink_data[89].DB_MAX_OUTPUT_PORT_TYPE +src1_data[90] <= sink_data[90].DB_MAX_OUTPUT_PORT_TYPE +src1_data[91] <= sink_data[91].DB_MAX_OUTPUT_PORT_TYPE +src1_data[92] <= sink_data[92].DB_MAX_OUTPUT_PORT_TYPE +src1_data[93] <= sink_data[93].DB_MAX_OUTPUT_PORT_TYPE +src1_data[94] <= sink_data[94].DB_MAX_OUTPUT_PORT_TYPE +src1_data[95] <= sink_data[95].DB_MAX_OUTPUT_PORT_TYPE +src1_channel[0] <= sink_channel[2].DB_MAX_OUTPUT_PORT_TYPE +src1_channel[1] <= sink_channel[3].DB_MAX_OUTPUT_PORT_TYPE +src1_channel[2] <= sink_channel[4].DB_MAX_OUTPUT_PORT_TYPE +src1_channel[3] <= sink_channel[5].DB_MAX_OUTPUT_PORT_TYPE +src1_channel[4] <= sink_channel[6].DB_MAX_OUTPUT_PORT_TYPE +src1_channel[5] <= sink_channel[7].DB_MAX_OUTPUT_PORT_TYPE +src1_channel[6] <= sink_channel[8].DB_MAX_OUTPUT_PORT_TYPE +src1_channel[7] <= sink_channel[9].DB_MAX_OUTPUT_PORT_TYPE +src1_channel[8] <= sink_channel[10].DB_MAX_OUTPUT_PORT_TYPE +src1_channel[9] <= sink_channel[11].DB_MAX_OUTPUT_PORT_TYPE +src1_channel[10] <= sink_channel[12].DB_MAX_OUTPUT_PORT_TYPE +src1_channel[11] <= sink_channel[13].DB_MAX_OUTPUT_PORT_TYPE +src1_channel[12] <= sink_channel[14].DB_MAX_OUTPUT_PORT_TYPE +src1_channel[13] <= sink_channel[15].DB_MAX_OUTPUT_PORT_TYPE +src1_channel[14] <= sink_channel[16].DB_MAX_OUTPUT_PORT_TYPE +src1_channel[15] <= sink_channel[17].DB_MAX_OUTPUT_PORT_TYPE +src1_channel[16] <= +src1_channel[17] <= +src1_startofpacket <= sink_startofpacket.DB_MAX_OUTPUT_PORT_TYPE +src1_endofpacket <= sink_endofpacket.DB_MAX_OUTPUT_PORT_TYPE +src1_ready => sink_ready.IN1 +clk => ~NO_FANOUT~ +reset => ~NO_FANOUT~ + + +|lights|nios_system:NiosII|nios_system_cmd_xbar_demux:rsp_xbar_demux_001 +sink_valid[0] => src0_valid.IN0 +sink_valid[0] => src1_valid.IN0 +sink_data[0] => src1_data[0].DATAIN +sink_data[0] => src0_data[0].DATAIN +sink_data[1] => src1_data[1].DATAIN +sink_data[1] => src0_data[1].DATAIN +sink_data[2] => src1_data[2].DATAIN +sink_data[2] => src0_data[2].DATAIN +sink_data[3] => src1_data[3].DATAIN +sink_data[3] => src0_data[3].DATAIN +sink_data[4] => src1_data[4].DATAIN +sink_data[4] => src0_data[4].DATAIN +sink_data[5] => src1_data[5].DATAIN +sink_data[5] => src0_data[5].DATAIN +sink_data[6] => src1_data[6].DATAIN +sink_data[6] => src0_data[6].DATAIN +sink_data[7] => src1_data[7].DATAIN +sink_data[7] => src0_data[7].DATAIN +sink_data[8] => src1_data[8].DATAIN +sink_data[8] => src0_data[8].DATAIN +sink_data[9] => src1_data[9].DATAIN +sink_data[9] => src0_data[9].DATAIN +sink_data[10] => src1_data[10].DATAIN +sink_data[10] => src0_data[10].DATAIN +sink_data[11] => src1_data[11].DATAIN +sink_data[11] => src0_data[11].DATAIN +sink_data[12] => src1_data[12].DATAIN +sink_data[12] => src0_data[12].DATAIN +sink_data[13] => src1_data[13].DATAIN +sink_data[13] => src0_data[13].DATAIN +sink_data[14] => src1_data[14].DATAIN +sink_data[14] => src0_data[14].DATAIN +sink_data[15] => src1_data[15].DATAIN +sink_data[15] => src0_data[15].DATAIN +sink_data[16] => src1_data[16].DATAIN +sink_data[16] => src0_data[16].DATAIN +sink_data[17] => src1_data[17].DATAIN +sink_data[17] => src0_data[17].DATAIN +sink_data[18] => src1_data[18].DATAIN +sink_data[18] => src0_data[18].DATAIN +sink_data[19] => src1_data[19].DATAIN +sink_data[19] => src0_data[19].DATAIN +sink_data[20] => src1_data[20].DATAIN +sink_data[20] => src0_data[20].DATAIN +sink_data[21] => src1_data[21].DATAIN +sink_data[21] => src0_data[21].DATAIN +sink_data[22] => src1_data[22].DATAIN +sink_data[22] => src0_data[22].DATAIN +sink_data[23] => src1_data[23].DATAIN +sink_data[23] => src0_data[23].DATAIN +sink_data[24] => src1_data[24].DATAIN +sink_data[24] => src0_data[24].DATAIN +sink_data[25] => src1_data[25].DATAIN +sink_data[25] => src0_data[25].DATAIN +sink_data[26] => src1_data[26].DATAIN +sink_data[26] => src0_data[26].DATAIN +sink_data[27] => src1_data[27].DATAIN +sink_data[27] => src0_data[27].DATAIN +sink_data[28] => src1_data[28].DATAIN +sink_data[28] => src0_data[28].DATAIN +sink_data[29] => src1_data[29].DATAIN +sink_data[29] => src0_data[29].DATAIN +sink_data[30] => src1_data[30].DATAIN +sink_data[30] => src0_data[30].DATAIN +sink_data[31] => src1_data[31].DATAIN +sink_data[31] => src0_data[31].DATAIN +sink_data[32] => src1_data[32].DATAIN +sink_data[32] => src0_data[32].DATAIN +sink_data[33] => src1_data[33].DATAIN +sink_data[33] => src0_data[33].DATAIN +sink_data[34] => src1_data[34].DATAIN +sink_data[34] => src0_data[34].DATAIN +sink_data[35] => src1_data[35].DATAIN +sink_data[35] => src0_data[35].DATAIN +sink_data[36] => src1_data[36].DATAIN +sink_data[36] => src0_data[36].DATAIN +sink_data[37] => src1_data[37].DATAIN +sink_data[37] => src0_data[37].DATAIN +sink_data[38] => src1_data[38].DATAIN +sink_data[38] => src0_data[38].DATAIN +sink_data[39] => src1_data[39].DATAIN +sink_data[39] => src0_data[39].DATAIN +sink_data[40] => src1_data[40].DATAIN +sink_data[40] => src0_data[40].DATAIN +sink_data[41] => src1_data[41].DATAIN +sink_data[41] => src0_data[41].DATAIN +sink_data[42] => src1_data[42].DATAIN +sink_data[42] => src0_data[42].DATAIN +sink_data[43] => src1_data[43].DATAIN +sink_data[43] => src0_data[43].DATAIN +sink_data[44] => src1_data[44].DATAIN +sink_data[44] => src0_data[44].DATAIN +sink_data[45] => src1_data[45].DATAIN +sink_data[45] => src0_data[45].DATAIN +sink_data[46] => src1_data[46].DATAIN +sink_data[46] => src0_data[46].DATAIN +sink_data[47] => src1_data[47].DATAIN +sink_data[47] => src0_data[47].DATAIN +sink_data[48] => src1_data[48].DATAIN +sink_data[48] => src0_data[48].DATAIN +sink_data[49] => src1_data[49].DATAIN +sink_data[49] => src0_data[49].DATAIN +sink_data[50] => src1_data[50].DATAIN +sink_data[50] => src0_data[50].DATAIN +sink_data[51] => src1_data[51].DATAIN +sink_data[51] => src0_data[51].DATAIN +sink_data[52] => src1_data[52].DATAIN +sink_data[52] => src0_data[52].DATAIN +sink_data[53] => src1_data[53].DATAIN +sink_data[53] => src0_data[53].DATAIN +sink_data[54] => src1_data[54].DATAIN +sink_data[54] => src0_data[54].DATAIN +sink_data[55] => src1_data[55].DATAIN +sink_data[55] => src0_data[55].DATAIN +sink_data[56] => src1_data[56].DATAIN +sink_data[56] => src0_data[56].DATAIN +sink_data[57] => src1_data[57].DATAIN +sink_data[57] => src0_data[57].DATAIN +sink_data[58] => src1_data[58].DATAIN +sink_data[58] => src0_data[58].DATAIN +sink_data[59] => src1_data[59].DATAIN +sink_data[59] => src0_data[59].DATAIN +sink_data[60] => src1_data[60].DATAIN +sink_data[60] => src0_data[60].DATAIN +sink_data[61] => src1_data[61].DATAIN +sink_data[61] => src0_data[61].DATAIN +sink_data[62] => src1_data[62].DATAIN +sink_data[62] => src0_data[62].DATAIN +sink_data[63] => src1_data[63].DATAIN +sink_data[63] => src0_data[63].DATAIN +sink_data[64] => src1_data[64].DATAIN +sink_data[64] => src0_data[64].DATAIN +sink_data[65] => src1_data[65].DATAIN +sink_data[65] => src0_data[65].DATAIN +sink_data[66] => src1_data[66].DATAIN +sink_data[66] => src0_data[66].DATAIN +sink_data[67] => src1_data[67].DATAIN +sink_data[67] => src0_data[67].DATAIN +sink_data[68] => src1_data[68].DATAIN +sink_data[68] => src0_data[68].DATAIN +sink_data[69] => src1_data[69].DATAIN +sink_data[69] => src0_data[69].DATAIN +sink_data[70] => src1_data[70].DATAIN +sink_data[70] => src0_data[70].DATAIN +sink_data[71] => src1_data[71].DATAIN +sink_data[71] => src0_data[71].DATAIN +sink_data[72] => src1_data[72].DATAIN +sink_data[72] => src0_data[72].DATAIN +sink_data[73] => src1_data[73].DATAIN +sink_data[73] => src0_data[73].DATAIN +sink_data[74] => src1_data[74].DATAIN +sink_data[74] => src0_data[74].DATAIN +sink_data[75] => src1_data[75].DATAIN +sink_data[75] => src0_data[75].DATAIN +sink_data[76] => src1_data[76].DATAIN +sink_data[76] => src0_data[76].DATAIN +sink_data[77] => src1_data[77].DATAIN +sink_data[77] => src0_data[77].DATAIN +sink_data[78] => src1_data[78].DATAIN +sink_data[78] => src0_data[78].DATAIN +sink_data[79] => src1_data[79].DATAIN +sink_data[79] => src0_data[79].DATAIN +sink_data[80] => src1_data[80].DATAIN +sink_data[80] => src0_data[80].DATAIN +sink_data[81] => src1_data[81].DATAIN +sink_data[81] => src0_data[81].DATAIN +sink_data[82] => src1_data[82].DATAIN +sink_data[82] => src0_data[82].DATAIN +sink_data[83] => src1_data[83].DATAIN +sink_data[83] => src0_data[83].DATAIN +sink_data[84] => src1_data[84].DATAIN +sink_data[84] => src0_data[84].DATAIN +sink_data[85] => src1_data[85].DATAIN +sink_data[85] => src0_data[85].DATAIN +sink_data[86] => src1_data[86].DATAIN +sink_data[86] => src0_data[86].DATAIN +sink_data[87] => src1_data[87].DATAIN +sink_data[87] => src0_data[87].DATAIN +sink_data[88] => src1_data[88].DATAIN +sink_data[88] => src0_data[88].DATAIN +sink_data[89] => src1_data[89].DATAIN +sink_data[89] => src0_data[89].DATAIN +sink_data[90] => src1_data[90].DATAIN +sink_data[90] => src0_data[90].DATAIN +sink_data[91] => src1_data[91].DATAIN +sink_data[91] => src0_data[91].DATAIN +sink_data[92] => src1_data[92].DATAIN +sink_data[92] => src0_data[92].DATAIN +sink_data[93] => src1_data[93].DATAIN +sink_data[93] => src0_data[93].DATAIN +sink_data[94] => src1_data[94].DATAIN +sink_data[94] => src0_data[94].DATAIN +sink_data[95] => src1_data[95].DATAIN +sink_data[95] => src0_data[95].DATAIN +sink_channel[0] => src0_valid.IN1 +sink_channel[0] => sink_ready.IN0 +sink_channel[1] => src1_valid.IN1 +sink_channel[1] => sink_ready.IN0 +sink_channel[2] => src1_channel[0].DATAIN +sink_channel[2] => src0_channel[0].DATAIN +sink_channel[3] => src1_channel[1].DATAIN +sink_channel[3] => src0_channel[1].DATAIN +sink_channel[4] => src1_channel[2].DATAIN +sink_channel[4] => src0_channel[2].DATAIN +sink_channel[5] => src1_channel[3].DATAIN +sink_channel[5] => src0_channel[3].DATAIN +sink_channel[6] => src1_channel[4].DATAIN +sink_channel[6] => src0_channel[4].DATAIN +sink_channel[7] => src1_channel[5].DATAIN +sink_channel[7] => src0_channel[5].DATAIN +sink_channel[8] => src1_channel[6].DATAIN +sink_channel[8] => src0_channel[6].DATAIN +sink_channel[9] => src1_channel[7].DATAIN +sink_channel[9] => src0_channel[7].DATAIN +sink_channel[10] => src1_channel[8].DATAIN +sink_channel[10] => src0_channel[8].DATAIN +sink_channel[11] => src1_channel[9].DATAIN +sink_channel[11] => src0_channel[9].DATAIN +sink_channel[12] => src1_channel[10].DATAIN +sink_channel[12] => src0_channel[10].DATAIN +sink_channel[13] => src1_channel[11].DATAIN +sink_channel[13] => src0_channel[11].DATAIN +sink_channel[14] => src1_channel[12].DATAIN +sink_channel[14] => src0_channel[12].DATAIN +sink_channel[15] => src1_channel[13].DATAIN +sink_channel[15] => src0_channel[13].DATAIN +sink_channel[16] => src1_channel[14].DATAIN +sink_channel[16] => src0_channel[14].DATAIN +sink_channel[17] => src1_channel[15].DATAIN +sink_channel[17] => src0_channel[15].DATAIN +sink_startofpacket => src1_startofpacket.DATAIN +sink_startofpacket => src0_startofpacket.DATAIN +sink_endofpacket => src1_endofpacket.DATAIN +sink_endofpacket => src0_endofpacket.DATAIN +sink_ready <= WideOr0.DB_MAX_OUTPUT_PORT_TYPE +src0_valid <= src0_valid.DB_MAX_OUTPUT_PORT_TYPE +src0_data[0] <= sink_data[0].DB_MAX_OUTPUT_PORT_TYPE +src0_data[1] <= sink_data[1].DB_MAX_OUTPUT_PORT_TYPE +src0_data[2] <= sink_data[2].DB_MAX_OUTPUT_PORT_TYPE +src0_data[3] <= sink_data[3].DB_MAX_OUTPUT_PORT_TYPE +src0_data[4] <= sink_data[4].DB_MAX_OUTPUT_PORT_TYPE +src0_data[5] <= sink_data[5].DB_MAX_OUTPUT_PORT_TYPE +src0_data[6] <= sink_data[6].DB_MAX_OUTPUT_PORT_TYPE +src0_data[7] <= sink_data[7].DB_MAX_OUTPUT_PORT_TYPE +src0_data[8] <= sink_data[8].DB_MAX_OUTPUT_PORT_TYPE +src0_data[9] <= sink_data[9].DB_MAX_OUTPUT_PORT_TYPE +src0_data[10] <= sink_data[10].DB_MAX_OUTPUT_PORT_TYPE +src0_data[11] <= sink_data[11].DB_MAX_OUTPUT_PORT_TYPE +src0_data[12] <= sink_data[12].DB_MAX_OUTPUT_PORT_TYPE +src0_data[13] <= sink_data[13].DB_MAX_OUTPUT_PORT_TYPE +src0_data[14] <= sink_data[14].DB_MAX_OUTPUT_PORT_TYPE +src0_data[15] <= sink_data[15].DB_MAX_OUTPUT_PORT_TYPE +src0_data[16] <= sink_data[16].DB_MAX_OUTPUT_PORT_TYPE +src0_data[17] <= sink_data[17].DB_MAX_OUTPUT_PORT_TYPE +src0_data[18] <= sink_data[18].DB_MAX_OUTPUT_PORT_TYPE +src0_data[19] <= sink_data[19].DB_MAX_OUTPUT_PORT_TYPE +src0_data[20] <= sink_data[20].DB_MAX_OUTPUT_PORT_TYPE +src0_data[21] <= sink_data[21].DB_MAX_OUTPUT_PORT_TYPE +src0_data[22] <= sink_data[22].DB_MAX_OUTPUT_PORT_TYPE +src0_data[23] <= sink_data[23].DB_MAX_OUTPUT_PORT_TYPE +src0_data[24] <= sink_data[24].DB_MAX_OUTPUT_PORT_TYPE +src0_data[25] <= sink_data[25].DB_MAX_OUTPUT_PORT_TYPE +src0_data[26] <= sink_data[26].DB_MAX_OUTPUT_PORT_TYPE +src0_data[27] <= sink_data[27].DB_MAX_OUTPUT_PORT_TYPE +src0_data[28] <= sink_data[28].DB_MAX_OUTPUT_PORT_TYPE +src0_data[29] <= sink_data[29].DB_MAX_OUTPUT_PORT_TYPE +src0_data[30] <= sink_data[30].DB_MAX_OUTPUT_PORT_TYPE +src0_data[31] <= sink_data[31].DB_MAX_OUTPUT_PORT_TYPE +src0_data[32] <= sink_data[32].DB_MAX_OUTPUT_PORT_TYPE +src0_data[33] <= sink_data[33].DB_MAX_OUTPUT_PORT_TYPE +src0_data[34] <= sink_data[34].DB_MAX_OUTPUT_PORT_TYPE +src0_data[35] <= sink_data[35].DB_MAX_OUTPUT_PORT_TYPE +src0_data[36] <= sink_data[36].DB_MAX_OUTPUT_PORT_TYPE +src0_data[37] <= sink_data[37].DB_MAX_OUTPUT_PORT_TYPE +src0_data[38] <= sink_data[38].DB_MAX_OUTPUT_PORT_TYPE +src0_data[39] <= sink_data[39].DB_MAX_OUTPUT_PORT_TYPE +src0_data[40] <= sink_data[40].DB_MAX_OUTPUT_PORT_TYPE +src0_data[41] <= sink_data[41].DB_MAX_OUTPUT_PORT_TYPE +src0_data[42] <= sink_data[42].DB_MAX_OUTPUT_PORT_TYPE +src0_data[43] <= sink_data[43].DB_MAX_OUTPUT_PORT_TYPE +src0_data[44] <= sink_data[44].DB_MAX_OUTPUT_PORT_TYPE +src0_data[45] <= sink_data[45].DB_MAX_OUTPUT_PORT_TYPE +src0_data[46] <= sink_data[46].DB_MAX_OUTPUT_PORT_TYPE +src0_data[47] <= sink_data[47].DB_MAX_OUTPUT_PORT_TYPE +src0_data[48] <= sink_data[48].DB_MAX_OUTPUT_PORT_TYPE +src0_data[49] <= sink_data[49].DB_MAX_OUTPUT_PORT_TYPE +src0_data[50] <= sink_data[50].DB_MAX_OUTPUT_PORT_TYPE +src0_data[51] <= sink_data[51].DB_MAX_OUTPUT_PORT_TYPE +src0_data[52] <= sink_data[52].DB_MAX_OUTPUT_PORT_TYPE +src0_data[53] <= sink_data[53].DB_MAX_OUTPUT_PORT_TYPE +src0_data[54] <= sink_data[54].DB_MAX_OUTPUT_PORT_TYPE +src0_data[55] <= sink_data[55].DB_MAX_OUTPUT_PORT_TYPE +src0_data[56] <= sink_data[56].DB_MAX_OUTPUT_PORT_TYPE +src0_data[57] <= sink_data[57].DB_MAX_OUTPUT_PORT_TYPE +src0_data[58] <= sink_data[58].DB_MAX_OUTPUT_PORT_TYPE +src0_data[59] <= sink_data[59].DB_MAX_OUTPUT_PORT_TYPE +src0_data[60] <= sink_data[60].DB_MAX_OUTPUT_PORT_TYPE +src0_data[61] <= sink_data[61].DB_MAX_OUTPUT_PORT_TYPE +src0_data[62] <= sink_data[62].DB_MAX_OUTPUT_PORT_TYPE +src0_data[63] <= sink_data[63].DB_MAX_OUTPUT_PORT_TYPE +src0_data[64] <= sink_data[64].DB_MAX_OUTPUT_PORT_TYPE +src0_data[65] <= sink_data[65].DB_MAX_OUTPUT_PORT_TYPE +src0_data[66] <= sink_data[66].DB_MAX_OUTPUT_PORT_TYPE +src0_data[67] <= sink_data[67].DB_MAX_OUTPUT_PORT_TYPE +src0_data[68] <= sink_data[68].DB_MAX_OUTPUT_PORT_TYPE +src0_data[69] <= sink_data[69].DB_MAX_OUTPUT_PORT_TYPE +src0_data[70] <= sink_data[70].DB_MAX_OUTPUT_PORT_TYPE +src0_data[71] <= sink_data[71].DB_MAX_OUTPUT_PORT_TYPE +src0_data[72] <= sink_data[72].DB_MAX_OUTPUT_PORT_TYPE +src0_data[73] <= sink_data[73].DB_MAX_OUTPUT_PORT_TYPE +src0_data[74] <= sink_data[74].DB_MAX_OUTPUT_PORT_TYPE +src0_data[75] <= sink_data[75].DB_MAX_OUTPUT_PORT_TYPE +src0_data[76] <= sink_data[76].DB_MAX_OUTPUT_PORT_TYPE +src0_data[77] <= sink_data[77].DB_MAX_OUTPUT_PORT_TYPE +src0_data[78] <= sink_data[78].DB_MAX_OUTPUT_PORT_TYPE +src0_data[79] <= sink_data[79].DB_MAX_OUTPUT_PORT_TYPE +src0_data[80] <= sink_data[80].DB_MAX_OUTPUT_PORT_TYPE +src0_data[81] <= sink_data[81].DB_MAX_OUTPUT_PORT_TYPE +src0_data[82] <= sink_data[82].DB_MAX_OUTPUT_PORT_TYPE +src0_data[83] <= sink_data[83].DB_MAX_OUTPUT_PORT_TYPE +src0_data[84] <= sink_data[84].DB_MAX_OUTPUT_PORT_TYPE +src0_data[85] <= sink_data[85].DB_MAX_OUTPUT_PORT_TYPE +src0_data[86] <= sink_data[86].DB_MAX_OUTPUT_PORT_TYPE +src0_data[87] <= sink_data[87].DB_MAX_OUTPUT_PORT_TYPE +src0_data[88] <= sink_data[88].DB_MAX_OUTPUT_PORT_TYPE +src0_data[89] <= sink_data[89].DB_MAX_OUTPUT_PORT_TYPE +src0_data[90] <= sink_data[90].DB_MAX_OUTPUT_PORT_TYPE +src0_data[91] <= sink_data[91].DB_MAX_OUTPUT_PORT_TYPE +src0_data[92] <= sink_data[92].DB_MAX_OUTPUT_PORT_TYPE +src0_data[93] <= sink_data[93].DB_MAX_OUTPUT_PORT_TYPE +src0_data[94] <= sink_data[94].DB_MAX_OUTPUT_PORT_TYPE +src0_data[95] <= sink_data[95].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[0] <= sink_channel[2].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[1] <= sink_channel[3].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[2] <= sink_channel[4].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[3] <= sink_channel[5].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[4] <= sink_channel[6].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[5] <= sink_channel[7].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[6] <= sink_channel[8].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[7] <= sink_channel[9].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[8] <= sink_channel[10].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[9] <= sink_channel[11].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[10] <= sink_channel[12].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[11] <= sink_channel[13].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[12] <= sink_channel[14].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[13] <= sink_channel[15].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[14] <= sink_channel[16].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[15] <= sink_channel[17].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[16] <= +src0_channel[17] <= +src0_startofpacket <= sink_startofpacket.DB_MAX_OUTPUT_PORT_TYPE +src0_endofpacket <= sink_endofpacket.DB_MAX_OUTPUT_PORT_TYPE +src0_ready => sink_ready.IN1 +src1_valid <= src1_valid.DB_MAX_OUTPUT_PORT_TYPE +src1_data[0] <= sink_data[0].DB_MAX_OUTPUT_PORT_TYPE +src1_data[1] <= sink_data[1].DB_MAX_OUTPUT_PORT_TYPE +src1_data[2] <= sink_data[2].DB_MAX_OUTPUT_PORT_TYPE +src1_data[3] <= sink_data[3].DB_MAX_OUTPUT_PORT_TYPE +src1_data[4] <= sink_data[4].DB_MAX_OUTPUT_PORT_TYPE +src1_data[5] <= sink_data[5].DB_MAX_OUTPUT_PORT_TYPE +src1_data[6] <= sink_data[6].DB_MAX_OUTPUT_PORT_TYPE +src1_data[7] <= sink_data[7].DB_MAX_OUTPUT_PORT_TYPE +src1_data[8] <= sink_data[8].DB_MAX_OUTPUT_PORT_TYPE +src1_data[9] <= sink_data[9].DB_MAX_OUTPUT_PORT_TYPE +src1_data[10] <= sink_data[10].DB_MAX_OUTPUT_PORT_TYPE +src1_data[11] <= sink_data[11].DB_MAX_OUTPUT_PORT_TYPE +src1_data[12] <= sink_data[12].DB_MAX_OUTPUT_PORT_TYPE +src1_data[13] <= sink_data[13].DB_MAX_OUTPUT_PORT_TYPE +src1_data[14] <= sink_data[14].DB_MAX_OUTPUT_PORT_TYPE +src1_data[15] <= sink_data[15].DB_MAX_OUTPUT_PORT_TYPE +src1_data[16] <= sink_data[16].DB_MAX_OUTPUT_PORT_TYPE +src1_data[17] <= sink_data[17].DB_MAX_OUTPUT_PORT_TYPE +src1_data[18] <= sink_data[18].DB_MAX_OUTPUT_PORT_TYPE +src1_data[19] <= sink_data[19].DB_MAX_OUTPUT_PORT_TYPE +src1_data[20] <= sink_data[20].DB_MAX_OUTPUT_PORT_TYPE +src1_data[21] <= sink_data[21].DB_MAX_OUTPUT_PORT_TYPE +src1_data[22] <= sink_data[22].DB_MAX_OUTPUT_PORT_TYPE +src1_data[23] <= sink_data[23].DB_MAX_OUTPUT_PORT_TYPE +src1_data[24] <= sink_data[24].DB_MAX_OUTPUT_PORT_TYPE +src1_data[25] <= sink_data[25].DB_MAX_OUTPUT_PORT_TYPE +src1_data[26] <= sink_data[26].DB_MAX_OUTPUT_PORT_TYPE +src1_data[27] <= sink_data[27].DB_MAX_OUTPUT_PORT_TYPE +src1_data[28] <= sink_data[28].DB_MAX_OUTPUT_PORT_TYPE +src1_data[29] <= sink_data[29].DB_MAX_OUTPUT_PORT_TYPE +src1_data[30] <= sink_data[30].DB_MAX_OUTPUT_PORT_TYPE +src1_data[31] <= sink_data[31].DB_MAX_OUTPUT_PORT_TYPE +src1_data[32] <= sink_data[32].DB_MAX_OUTPUT_PORT_TYPE +src1_data[33] <= sink_data[33].DB_MAX_OUTPUT_PORT_TYPE +src1_data[34] <= sink_data[34].DB_MAX_OUTPUT_PORT_TYPE +src1_data[35] <= sink_data[35].DB_MAX_OUTPUT_PORT_TYPE +src1_data[36] <= sink_data[36].DB_MAX_OUTPUT_PORT_TYPE +src1_data[37] <= sink_data[37].DB_MAX_OUTPUT_PORT_TYPE +src1_data[38] <= sink_data[38].DB_MAX_OUTPUT_PORT_TYPE +src1_data[39] <= sink_data[39].DB_MAX_OUTPUT_PORT_TYPE +src1_data[40] <= sink_data[40].DB_MAX_OUTPUT_PORT_TYPE +src1_data[41] <= sink_data[41].DB_MAX_OUTPUT_PORT_TYPE +src1_data[42] <= sink_data[42].DB_MAX_OUTPUT_PORT_TYPE +src1_data[43] <= sink_data[43].DB_MAX_OUTPUT_PORT_TYPE +src1_data[44] <= sink_data[44].DB_MAX_OUTPUT_PORT_TYPE +src1_data[45] <= sink_data[45].DB_MAX_OUTPUT_PORT_TYPE +src1_data[46] <= sink_data[46].DB_MAX_OUTPUT_PORT_TYPE +src1_data[47] <= sink_data[47].DB_MAX_OUTPUT_PORT_TYPE +src1_data[48] <= sink_data[48].DB_MAX_OUTPUT_PORT_TYPE +src1_data[49] <= sink_data[49].DB_MAX_OUTPUT_PORT_TYPE +src1_data[50] <= sink_data[50].DB_MAX_OUTPUT_PORT_TYPE +src1_data[51] <= sink_data[51].DB_MAX_OUTPUT_PORT_TYPE +src1_data[52] <= sink_data[52].DB_MAX_OUTPUT_PORT_TYPE +src1_data[53] <= sink_data[53].DB_MAX_OUTPUT_PORT_TYPE +src1_data[54] <= sink_data[54].DB_MAX_OUTPUT_PORT_TYPE +src1_data[55] <= sink_data[55].DB_MAX_OUTPUT_PORT_TYPE +src1_data[56] <= sink_data[56].DB_MAX_OUTPUT_PORT_TYPE +src1_data[57] <= sink_data[57].DB_MAX_OUTPUT_PORT_TYPE +src1_data[58] <= sink_data[58].DB_MAX_OUTPUT_PORT_TYPE +src1_data[59] <= sink_data[59].DB_MAX_OUTPUT_PORT_TYPE +src1_data[60] <= sink_data[60].DB_MAX_OUTPUT_PORT_TYPE +src1_data[61] <= sink_data[61].DB_MAX_OUTPUT_PORT_TYPE +src1_data[62] <= sink_data[62].DB_MAX_OUTPUT_PORT_TYPE +src1_data[63] <= sink_data[63].DB_MAX_OUTPUT_PORT_TYPE +src1_data[64] <= sink_data[64].DB_MAX_OUTPUT_PORT_TYPE +src1_data[65] <= sink_data[65].DB_MAX_OUTPUT_PORT_TYPE +src1_data[66] <= sink_data[66].DB_MAX_OUTPUT_PORT_TYPE +src1_data[67] <= sink_data[67].DB_MAX_OUTPUT_PORT_TYPE +src1_data[68] <= sink_data[68].DB_MAX_OUTPUT_PORT_TYPE +src1_data[69] <= sink_data[69].DB_MAX_OUTPUT_PORT_TYPE +src1_data[70] <= sink_data[70].DB_MAX_OUTPUT_PORT_TYPE +src1_data[71] <= sink_data[71].DB_MAX_OUTPUT_PORT_TYPE +src1_data[72] <= sink_data[72].DB_MAX_OUTPUT_PORT_TYPE +src1_data[73] <= sink_data[73].DB_MAX_OUTPUT_PORT_TYPE +src1_data[74] <= sink_data[74].DB_MAX_OUTPUT_PORT_TYPE +src1_data[75] <= sink_data[75].DB_MAX_OUTPUT_PORT_TYPE +src1_data[76] <= sink_data[76].DB_MAX_OUTPUT_PORT_TYPE +src1_data[77] <= sink_data[77].DB_MAX_OUTPUT_PORT_TYPE +src1_data[78] <= sink_data[78].DB_MAX_OUTPUT_PORT_TYPE +src1_data[79] <= sink_data[79].DB_MAX_OUTPUT_PORT_TYPE +src1_data[80] <= sink_data[80].DB_MAX_OUTPUT_PORT_TYPE +src1_data[81] <= sink_data[81].DB_MAX_OUTPUT_PORT_TYPE +src1_data[82] <= sink_data[82].DB_MAX_OUTPUT_PORT_TYPE +src1_data[83] <= sink_data[83].DB_MAX_OUTPUT_PORT_TYPE +src1_data[84] <= sink_data[84].DB_MAX_OUTPUT_PORT_TYPE +src1_data[85] <= sink_data[85].DB_MAX_OUTPUT_PORT_TYPE +src1_data[86] <= sink_data[86].DB_MAX_OUTPUT_PORT_TYPE +src1_data[87] <= sink_data[87].DB_MAX_OUTPUT_PORT_TYPE +src1_data[88] <= sink_data[88].DB_MAX_OUTPUT_PORT_TYPE +src1_data[89] <= sink_data[89].DB_MAX_OUTPUT_PORT_TYPE +src1_data[90] <= sink_data[90].DB_MAX_OUTPUT_PORT_TYPE +src1_data[91] <= sink_data[91].DB_MAX_OUTPUT_PORT_TYPE +src1_data[92] <= sink_data[92].DB_MAX_OUTPUT_PORT_TYPE +src1_data[93] <= sink_data[93].DB_MAX_OUTPUT_PORT_TYPE +src1_data[94] <= sink_data[94].DB_MAX_OUTPUT_PORT_TYPE +src1_data[95] <= sink_data[95].DB_MAX_OUTPUT_PORT_TYPE +src1_channel[0] <= sink_channel[2].DB_MAX_OUTPUT_PORT_TYPE +src1_channel[1] <= sink_channel[3].DB_MAX_OUTPUT_PORT_TYPE +src1_channel[2] <= sink_channel[4].DB_MAX_OUTPUT_PORT_TYPE +src1_channel[3] <= sink_channel[5].DB_MAX_OUTPUT_PORT_TYPE +src1_channel[4] <= sink_channel[6].DB_MAX_OUTPUT_PORT_TYPE +src1_channel[5] <= sink_channel[7].DB_MAX_OUTPUT_PORT_TYPE +src1_channel[6] <= sink_channel[8].DB_MAX_OUTPUT_PORT_TYPE +src1_channel[7] <= sink_channel[9].DB_MAX_OUTPUT_PORT_TYPE +src1_channel[8] <= sink_channel[10].DB_MAX_OUTPUT_PORT_TYPE +src1_channel[9] <= sink_channel[11].DB_MAX_OUTPUT_PORT_TYPE +src1_channel[10] <= sink_channel[12].DB_MAX_OUTPUT_PORT_TYPE +src1_channel[11] <= sink_channel[13].DB_MAX_OUTPUT_PORT_TYPE +src1_channel[12] <= sink_channel[14].DB_MAX_OUTPUT_PORT_TYPE +src1_channel[13] <= sink_channel[15].DB_MAX_OUTPUT_PORT_TYPE +src1_channel[14] <= sink_channel[16].DB_MAX_OUTPUT_PORT_TYPE +src1_channel[15] <= sink_channel[17].DB_MAX_OUTPUT_PORT_TYPE +src1_channel[16] <= +src1_channel[17] <= +src1_startofpacket <= sink_startofpacket.DB_MAX_OUTPUT_PORT_TYPE +src1_endofpacket <= sink_endofpacket.DB_MAX_OUTPUT_PORT_TYPE +src1_ready => sink_ready.IN1 +clk => ~NO_FANOUT~ +reset => ~NO_FANOUT~ + + +|lights|nios_system:NiosII|nios_system_rsp_xbar_demux_002:rsp_xbar_demux_002 +sink_valid[0] => src0_valid.IN0 +sink_data[0] => src0_data[0].DATAIN +sink_data[1] => src0_data[1].DATAIN +sink_data[2] => src0_data[2].DATAIN +sink_data[3] => src0_data[3].DATAIN +sink_data[4] => src0_data[4].DATAIN +sink_data[5] => src0_data[5].DATAIN +sink_data[6] => src0_data[6].DATAIN +sink_data[7] => src0_data[7].DATAIN +sink_data[8] => src0_data[8].DATAIN +sink_data[9] => src0_data[9].DATAIN +sink_data[10] => src0_data[10].DATAIN +sink_data[11] => src0_data[11].DATAIN +sink_data[12] => src0_data[12].DATAIN +sink_data[13] => src0_data[13].DATAIN +sink_data[14] => src0_data[14].DATAIN +sink_data[15] => src0_data[15].DATAIN +sink_data[16] => src0_data[16].DATAIN +sink_data[17] => src0_data[17].DATAIN +sink_data[18] => src0_data[18].DATAIN +sink_data[19] => src0_data[19].DATAIN +sink_data[20] => src0_data[20].DATAIN +sink_data[21] => src0_data[21].DATAIN +sink_data[22] => src0_data[22].DATAIN +sink_data[23] => src0_data[23].DATAIN +sink_data[24] => src0_data[24].DATAIN +sink_data[25] => src0_data[25].DATAIN +sink_data[26] => src0_data[26].DATAIN +sink_data[27] => src0_data[27].DATAIN +sink_data[28] => src0_data[28].DATAIN +sink_data[29] => src0_data[29].DATAIN +sink_data[30] => src0_data[30].DATAIN +sink_data[31] => src0_data[31].DATAIN +sink_data[32] => src0_data[32].DATAIN +sink_data[33] => src0_data[33].DATAIN +sink_data[34] => src0_data[34].DATAIN +sink_data[35] => src0_data[35].DATAIN +sink_data[36] => src0_data[36].DATAIN +sink_data[37] => src0_data[37].DATAIN +sink_data[38] => src0_data[38].DATAIN +sink_data[39] => src0_data[39].DATAIN +sink_data[40] => src0_data[40].DATAIN +sink_data[41] => src0_data[41].DATAIN +sink_data[42] => src0_data[42].DATAIN +sink_data[43] => src0_data[43].DATAIN +sink_data[44] => src0_data[44].DATAIN +sink_data[45] => src0_data[45].DATAIN +sink_data[46] => src0_data[46].DATAIN +sink_data[47] => src0_data[47].DATAIN +sink_data[48] => src0_data[48].DATAIN +sink_data[49] => src0_data[49].DATAIN +sink_data[50] => src0_data[50].DATAIN +sink_data[51] => src0_data[51].DATAIN +sink_data[52] => src0_data[52].DATAIN +sink_data[53] => src0_data[53].DATAIN +sink_data[54] => src0_data[54].DATAIN +sink_data[55] => src0_data[55].DATAIN +sink_data[56] => src0_data[56].DATAIN +sink_data[57] => src0_data[57].DATAIN +sink_data[58] => src0_data[58].DATAIN +sink_data[59] => src0_data[59].DATAIN +sink_data[60] => src0_data[60].DATAIN +sink_data[61] => src0_data[61].DATAIN +sink_data[62] => src0_data[62].DATAIN +sink_data[63] => src0_data[63].DATAIN +sink_data[64] => src0_data[64].DATAIN +sink_data[65] => src0_data[65].DATAIN +sink_data[66] => src0_data[66].DATAIN +sink_data[67] => src0_data[67].DATAIN +sink_data[68] => src0_data[68].DATAIN +sink_data[69] => src0_data[69].DATAIN +sink_data[70] => src0_data[70].DATAIN +sink_data[71] => src0_data[71].DATAIN +sink_data[72] => src0_data[72].DATAIN +sink_data[73] => src0_data[73].DATAIN +sink_data[74] => src0_data[74].DATAIN +sink_data[75] => src0_data[75].DATAIN +sink_data[76] => src0_data[76].DATAIN +sink_data[77] => src0_data[77].DATAIN +sink_data[78] => src0_data[78].DATAIN +sink_data[79] => src0_data[79].DATAIN +sink_data[80] => src0_data[80].DATAIN +sink_data[81] => src0_data[81].DATAIN +sink_data[82] => src0_data[82].DATAIN +sink_data[83] => src0_data[83].DATAIN +sink_data[84] => src0_data[84].DATAIN +sink_data[85] => src0_data[85].DATAIN +sink_data[86] => src0_data[86].DATAIN +sink_data[87] => src0_data[87].DATAIN +sink_data[88] => src0_data[88].DATAIN +sink_data[89] => src0_data[89].DATAIN +sink_data[90] => src0_data[90].DATAIN +sink_data[91] => src0_data[91].DATAIN +sink_data[92] => src0_data[92].DATAIN +sink_data[93] => src0_data[93].DATAIN +sink_data[94] => src0_data[94].DATAIN +sink_data[95] => src0_data[95].DATAIN +sink_channel[0] => src0_valid.IN1 +sink_channel[0] => sink_ready.IN0 +sink_channel[1] => src0_channel[0].DATAIN +sink_channel[2] => src0_channel[1].DATAIN +sink_channel[3] => src0_channel[2].DATAIN +sink_channel[4] => src0_channel[3].DATAIN +sink_channel[5] => src0_channel[4].DATAIN +sink_channel[6] => src0_channel[5].DATAIN +sink_channel[7] => src0_channel[6].DATAIN +sink_channel[8] => src0_channel[7].DATAIN +sink_channel[9] => src0_channel[8].DATAIN +sink_channel[10] => src0_channel[9].DATAIN +sink_channel[11] => src0_channel[10].DATAIN +sink_channel[12] => src0_channel[11].DATAIN +sink_channel[13] => src0_channel[12].DATAIN +sink_channel[14] => src0_channel[13].DATAIN +sink_channel[15] => src0_channel[14].DATAIN +sink_channel[16] => src0_channel[15].DATAIN +sink_channel[17] => src0_channel[16].DATAIN +sink_startofpacket => src0_startofpacket.DATAIN +sink_endofpacket => src0_endofpacket.DATAIN +sink_ready <= sink_ready.DB_MAX_OUTPUT_PORT_TYPE +src0_valid <= src0_valid.DB_MAX_OUTPUT_PORT_TYPE +src0_data[0] <= sink_data[0].DB_MAX_OUTPUT_PORT_TYPE +src0_data[1] <= sink_data[1].DB_MAX_OUTPUT_PORT_TYPE +src0_data[2] <= sink_data[2].DB_MAX_OUTPUT_PORT_TYPE +src0_data[3] <= sink_data[3].DB_MAX_OUTPUT_PORT_TYPE +src0_data[4] <= sink_data[4].DB_MAX_OUTPUT_PORT_TYPE +src0_data[5] <= sink_data[5].DB_MAX_OUTPUT_PORT_TYPE +src0_data[6] <= sink_data[6].DB_MAX_OUTPUT_PORT_TYPE +src0_data[7] <= sink_data[7].DB_MAX_OUTPUT_PORT_TYPE +src0_data[8] <= sink_data[8].DB_MAX_OUTPUT_PORT_TYPE +src0_data[9] <= sink_data[9].DB_MAX_OUTPUT_PORT_TYPE +src0_data[10] <= sink_data[10].DB_MAX_OUTPUT_PORT_TYPE +src0_data[11] <= sink_data[11].DB_MAX_OUTPUT_PORT_TYPE +src0_data[12] <= sink_data[12].DB_MAX_OUTPUT_PORT_TYPE +src0_data[13] <= sink_data[13].DB_MAX_OUTPUT_PORT_TYPE +src0_data[14] <= sink_data[14].DB_MAX_OUTPUT_PORT_TYPE +src0_data[15] <= sink_data[15].DB_MAX_OUTPUT_PORT_TYPE +src0_data[16] <= sink_data[16].DB_MAX_OUTPUT_PORT_TYPE +src0_data[17] <= sink_data[17].DB_MAX_OUTPUT_PORT_TYPE +src0_data[18] <= sink_data[18].DB_MAX_OUTPUT_PORT_TYPE +src0_data[19] <= sink_data[19].DB_MAX_OUTPUT_PORT_TYPE +src0_data[20] <= sink_data[20].DB_MAX_OUTPUT_PORT_TYPE +src0_data[21] <= sink_data[21].DB_MAX_OUTPUT_PORT_TYPE +src0_data[22] <= sink_data[22].DB_MAX_OUTPUT_PORT_TYPE +src0_data[23] <= sink_data[23].DB_MAX_OUTPUT_PORT_TYPE +src0_data[24] <= sink_data[24].DB_MAX_OUTPUT_PORT_TYPE +src0_data[25] <= sink_data[25].DB_MAX_OUTPUT_PORT_TYPE +src0_data[26] <= sink_data[26].DB_MAX_OUTPUT_PORT_TYPE +src0_data[27] <= sink_data[27].DB_MAX_OUTPUT_PORT_TYPE +src0_data[28] <= sink_data[28].DB_MAX_OUTPUT_PORT_TYPE +src0_data[29] <= sink_data[29].DB_MAX_OUTPUT_PORT_TYPE +src0_data[30] <= sink_data[30].DB_MAX_OUTPUT_PORT_TYPE +src0_data[31] <= sink_data[31].DB_MAX_OUTPUT_PORT_TYPE +src0_data[32] <= sink_data[32].DB_MAX_OUTPUT_PORT_TYPE +src0_data[33] <= sink_data[33].DB_MAX_OUTPUT_PORT_TYPE +src0_data[34] <= sink_data[34].DB_MAX_OUTPUT_PORT_TYPE +src0_data[35] <= sink_data[35].DB_MAX_OUTPUT_PORT_TYPE +src0_data[36] <= sink_data[36].DB_MAX_OUTPUT_PORT_TYPE +src0_data[37] <= sink_data[37].DB_MAX_OUTPUT_PORT_TYPE +src0_data[38] <= sink_data[38].DB_MAX_OUTPUT_PORT_TYPE +src0_data[39] <= sink_data[39].DB_MAX_OUTPUT_PORT_TYPE +src0_data[40] <= sink_data[40].DB_MAX_OUTPUT_PORT_TYPE +src0_data[41] <= sink_data[41].DB_MAX_OUTPUT_PORT_TYPE +src0_data[42] <= sink_data[42].DB_MAX_OUTPUT_PORT_TYPE +src0_data[43] <= sink_data[43].DB_MAX_OUTPUT_PORT_TYPE +src0_data[44] <= sink_data[44].DB_MAX_OUTPUT_PORT_TYPE +src0_data[45] <= sink_data[45].DB_MAX_OUTPUT_PORT_TYPE +src0_data[46] <= sink_data[46].DB_MAX_OUTPUT_PORT_TYPE +src0_data[47] <= sink_data[47].DB_MAX_OUTPUT_PORT_TYPE +src0_data[48] <= sink_data[48].DB_MAX_OUTPUT_PORT_TYPE +src0_data[49] <= sink_data[49].DB_MAX_OUTPUT_PORT_TYPE +src0_data[50] <= sink_data[50].DB_MAX_OUTPUT_PORT_TYPE +src0_data[51] <= sink_data[51].DB_MAX_OUTPUT_PORT_TYPE +src0_data[52] <= sink_data[52].DB_MAX_OUTPUT_PORT_TYPE +src0_data[53] <= sink_data[53].DB_MAX_OUTPUT_PORT_TYPE +src0_data[54] <= sink_data[54].DB_MAX_OUTPUT_PORT_TYPE +src0_data[55] <= sink_data[55].DB_MAX_OUTPUT_PORT_TYPE +src0_data[56] <= sink_data[56].DB_MAX_OUTPUT_PORT_TYPE +src0_data[57] <= sink_data[57].DB_MAX_OUTPUT_PORT_TYPE +src0_data[58] <= sink_data[58].DB_MAX_OUTPUT_PORT_TYPE +src0_data[59] <= sink_data[59].DB_MAX_OUTPUT_PORT_TYPE +src0_data[60] <= sink_data[60].DB_MAX_OUTPUT_PORT_TYPE +src0_data[61] <= sink_data[61].DB_MAX_OUTPUT_PORT_TYPE +src0_data[62] <= sink_data[62].DB_MAX_OUTPUT_PORT_TYPE +src0_data[63] <= sink_data[63].DB_MAX_OUTPUT_PORT_TYPE +src0_data[64] <= sink_data[64].DB_MAX_OUTPUT_PORT_TYPE +src0_data[65] <= sink_data[65].DB_MAX_OUTPUT_PORT_TYPE +src0_data[66] <= sink_data[66].DB_MAX_OUTPUT_PORT_TYPE +src0_data[67] <= sink_data[67].DB_MAX_OUTPUT_PORT_TYPE +src0_data[68] <= sink_data[68].DB_MAX_OUTPUT_PORT_TYPE +src0_data[69] <= sink_data[69].DB_MAX_OUTPUT_PORT_TYPE +src0_data[70] <= sink_data[70].DB_MAX_OUTPUT_PORT_TYPE +src0_data[71] <= sink_data[71].DB_MAX_OUTPUT_PORT_TYPE +src0_data[72] <= sink_data[72].DB_MAX_OUTPUT_PORT_TYPE +src0_data[73] <= sink_data[73].DB_MAX_OUTPUT_PORT_TYPE +src0_data[74] <= sink_data[74].DB_MAX_OUTPUT_PORT_TYPE +src0_data[75] <= sink_data[75].DB_MAX_OUTPUT_PORT_TYPE +src0_data[76] <= sink_data[76].DB_MAX_OUTPUT_PORT_TYPE +src0_data[77] <= sink_data[77].DB_MAX_OUTPUT_PORT_TYPE +src0_data[78] <= sink_data[78].DB_MAX_OUTPUT_PORT_TYPE +src0_data[79] <= sink_data[79].DB_MAX_OUTPUT_PORT_TYPE +src0_data[80] <= sink_data[80].DB_MAX_OUTPUT_PORT_TYPE +src0_data[81] <= sink_data[81].DB_MAX_OUTPUT_PORT_TYPE +src0_data[82] <= sink_data[82].DB_MAX_OUTPUT_PORT_TYPE +src0_data[83] <= sink_data[83].DB_MAX_OUTPUT_PORT_TYPE +src0_data[84] <= sink_data[84].DB_MAX_OUTPUT_PORT_TYPE +src0_data[85] <= sink_data[85].DB_MAX_OUTPUT_PORT_TYPE +src0_data[86] <= sink_data[86].DB_MAX_OUTPUT_PORT_TYPE +src0_data[87] <= sink_data[87].DB_MAX_OUTPUT_PORT_TYPE +src0_data[88] <= sink_data[88].DB_MAX_OUTPUT_PORT_TYPE +src0_data[89] <= sink_data[89].DB_MAX_OUTPUT_PORT_TYPE +src0_data[90] <= sink_data[90].DB_MAX_OUTPUT_PORT_TYPE +src0_data[91] <= sink_data[91].DB_MAX_OUTPUT_PORT_TYPE +src0_data[92] <= sink_data[92].DB_MAX_OUTPUT_PORT_TYPE +src0_data[93] <= sink_data[93].DB_MAX_OUTPUT_PORT_TYPE +src0_data[94] <= sink_data[94].DB_MAX_OUTPUT_PORT_TYPE +src0_data[95] <= sink_data[95].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[0] <= sink_channel[1].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[1] <= sink_channel[2].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[2] <= sink_channel[3].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[3] <= sink_channel[4].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[4] <= sink_channel[5].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[5] <= sink_channel[6].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[6] <= sink_channel[7].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[7] <= sink_channel[8].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[8] <= sink_channel[9].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[9] <= sink_channel[10].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[10] <= sink_channel[11].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[11] <= sink_channel[12].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[12] <= sink_channel[13].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[13] <= sink_channel[14].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[14] <= sink_channel[15].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[15] <= sink_channel[16].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[16] <= sink_channel[17].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[17] <= +src0_startofpacket <= sink_startofpacket.DB_MAX_OUTPUT_PORT_TYPE +src0_endofpacket <= sink_endofpacket.DB_MAX_OUTPUT_PORT_TYPE +src0_ready => sink_ready.IN1 +clk => ~NO_FANOUT~ +reset => ~NO_FANOUT~ + + +|lights|nios_system:NiosII|nios_system_rsp_xbar_demux_002:rsp_xbar_demux_003 +sink_valid[0] => src0_valid.IN0 +sink_data[0] => src0_data[0].DATAIN +sink_data[1] => src0_data[1].DATAIN +sink_data[2] => src0_data[2].DATAIN +sink_data[3] => src0_data[3].DATAIN +sink_data[4] => src0_data[4].DATAIN +sink_data[5] => src0_data[5].DATAIN +sink_data[6] => src0_data[6].DATAIN +sink_data[7] => src0_data[7].DATAIN +sink_data[8] => src0_data[8].DATAIN +sink_data[9] => src0_data[9].DATAIN +sink_data[10] => src0_data[10].DATAIN +sink_data[11] => src0_data[11].DATAIN +sink_data[12] => src0_data[12].DATAIN +sink_data[13] => src0_data[13].DATAIN +sink_data[14] => src0_data[14].DATAIN +sink_data[15] => src0_data[15].DATAIN +sink_data[16] => src0_data[16].DATAIN +sink_data[17] => src0_data[17].DATAIN +sink_data[18] => src0_data[18].DATAIN +sink_data[19] => src0_data[19].DATAIN +sink_data[20] => src0_data[20].DATAIN +sink_data[21] => src0_data[21].DATAIN +sink_data[22] => src0_data[22].DATAIN +sink_data[23] => src0_data[23].DATAIN +sink_data[24] => src0_data[24].DATAIN +sink_data[25] => src0_data[25].DATAIN +sink_data[26] => src0_data[26].DATAIN +sink_data[27] => src0_data[27].DATAIN +sink_data[28] => src0_data[28].DATAIN +sink_data[29] => src0_data[29].DATAIN +sink_data[30] => src0_data[30].DATAIN +sink_data[31] => src0_data[31].DATAIN +sink_data[32] => src0_data[32].DATAIN +sink_data[33] => src0_data[33].DATAIN +sink_data[34] => src0_data[34].DATAIN +sink_data[35] => src0_data[35].DATAIN +sink_data[36] => src0_data[36].DATAIN +sink_data[37] => src0_data[37].DATAIN +sink_data[38] => src0_data[38].DATAIN +sink_data[39] => src0_data[39].DATAIN +sink_data[40] => src0_data[40].DATAIN +sink_data[41] => src0_data[41].DATAIN +sink_data[42] => src0_data[42].DATAIN +sink_data[43] => src0_data[43].DATAIN +sink_data[44] => src0_data[44].DATAIN +sink_data[45] => src0_data[45].DATAIN +sink_data[46] => src0_data[46].DATAIN +sink_data[47] => src0_data[47].DATAIN +sink_data[48] => src0_data[48].DATAIN +sink_data[49] => src0_data[49].DATAIN +sink_data[50] => src0_data[50].DATAIN +sink_data[51] => src0_data[51].DATAIN +sink_data[52] => src0_data[52].DATAIN +sink_data[53] => src0_data[53].DATAIN +sink_data[54] => src0_data[54].DATAIN +sink_data[55] => src0_data[55].DATAIN +sink_data[56] => src0_data[56].DATAIN +sink_data[57] => src0_data[57].DATAIN +sink_data[58] => src0_data[58].DATAIN +sink_data[59] => src0_data[59].DATAIN +sink_data[60] => src0_data[60].DATAIN +sink_data[61] => src0_data[61].DATAIN +sink_data[62] => src0_data[62].DATAIN +sink_data[63] => src0_data[63].DATAIN +sink_data[64] => src0_data[64].DATAIN +sink_data[65] => src0_data[65].DATAIN +sink_data[66] => src0_data[66].DATAIN +sink_data[67] => src0_data[67].DATAIN +sink_data[68] => src0_data[68].DATAIN +sink_data[69] => src0_data[69].DATAIN +sink_data[70] => src0_data[70].DATAIN +sink_data[71] => src0_data[71].DATAIN +sink_data[72] => src0_data[72].DATAIN +sink_data[73] => src0_data[73].DATAIN +sink_data[74] => src0_data[74].DATAIN +sink_data[75] => src0_data[75].DATAIN +sink_data[76] => src0_data[76].DATAIN +sink_data[77] => src0_data[77].DATAIN +sink_data[78] => src0_data[78].DATAIN +sink_data[79] => src0_data[79].DATAIN +sink_data[80] => src0_data[80].DATAIN +sink_data[81] => src0_data[81].DATAIN +sink_data[82] => src0_data[82].DATAIN +sink_data[83] => src0_data[83].DATAIN +sink_data[84] => src0_data[84].DATAIN +sink_data[85] => src0_data[85].DATAIN +sink_data[86] => src0_data[86].DATAIN +sink_data[87] => src0_data[87].DATAIN +sink_data[88] => src0_data[88].DATAIN +sink_data[89] => src0_data[89].DATAIN +sink_data[90] => src0_data[90].DATAIN +sink_data[91] => src0_data[91].DATAIN +sink_data[92] => src0_data[92].DATAIN +sink_data[93] => src0_data[93].DATAIN +sink_data[94] => src0_data[94].DATAIN +sink_data[95] => src0_data[95].DATAIN +sink_channel[0] => src0_valid.IN1 +sink_channel[0] => sink_ready.IN0 +sink_channel[1] => src0_channel[0].DATAIN +sink_channel[2] => src0_channel[1].DATAIN +sink_channel[3] => src0_channel[2].DATAIN +sink_channel[4] => src0_channel[3].DATAIN +sink_channel[5] => src0_channel[4].DATAIN +sink_channel[6] => src0_channel[5].DATAIN +sink_channel[7] => src0_channel[6].DATAIN +sink_channel[8] => src0_channel[7].DATAIN +sink_channel[9] => src0_channel[8].DATAIN +sink_channel[10] => src0_channel[9].DATAIN +sink_channel[11] => src0_channel[10].DATAIN +sink_channel[12] => src0_channel[11].DATAIN +sink_channel[13] => src0_channel[12].DATAIN +sink_channel[14] => src0_channel[13].DATAIN +sink_channel[15] => src0_channel[14].DATAIN +sink_channel[16] => src0_channel[15].DATAIN +sink_channel[17] => src0_channel[16].DATAIN +sink_startofpacket => src0_startofpacket.DATAIN +sink_endofpacket => src0_endofpacket.DATAIN +sink_ready <= sink_ready.DB_MAX_OUTPUT_PORT_TYPE +src0_valid <= src0_valid.DB_MAX_OUTPUT_PORT_TYPE +src0_data[0] <= sink_data[0].DB_MAX_OUTPUT_PORT_TYPE +src0_data[1] <= sink_data[1].DB_MAX_OUTPUT_PORT_TYPE +src0_data[2] <= sink_data[2].DB_MAX_OUTPUT_PORT_TYPE +src0_data[3] <= sink_data[3].DB_MAX_OUTPUT_PORT_TYPE +src0_data[4] <= sink_data[4].DB_MAX_OUTPUT_PORT_TYPE +src0_data[5] <= sink_data[5].DB_MAX_OUTPUT_PORT_TYPE +src0_data[6] <= sink_data[6].DB_MAX_OUTPUT_PORT_TYPE +src0_data[7] <= sink_data[7].DB_MAX_OUTPUT_PORT_TYPE +src0_data[8] <= sink_data[8].DB_MAX_OUTPUT_PORT_TYPE +src0_data[9] <= sink_data[9].DB_MAX_OUTPUT_PORT_TYPE +src0_data[10] <= sink_data[10].DB_MAX_OUTPUT_PORT_TYPE +src0_data[11] <= sink_data[11].DB_MAX_OUTPUT_PORT_TYPE +src0_data[12] <= sink_data[12].DB_MAX_OUTPUT_PORT_TYPE +src0_data[13] <= sink_data[13].DB_MAX_OUTPUT_PORT_TYPE +src0_data[14] <= sink_data[14].DB_MAX_OUTPUT_PORT_TYPE +src0_data[15] <= sink_data[15].DB_MAX_OUTPUT_PORT_TYPE +src0_data[16] <= sink_data[16].DB_MAX_OUTPUT_PORT_TYPE +src0_data[17] <= sink_data[17].DB_MAX_OUTPUT_PORT_TYPE +src0_data[18] <= sink_data[18].DB_MAX_OUTPUT_PORT_TYPE +src0_data[19] <= sink_data[19].DB_MAX_OUTPUT_PORT_TYPE +src0_data[20] <= sink_data[20].DB_MAX_OUTPUT_PORT_TYPE +src0_data[21] <= sink_data[21].DB_MAX_OUTPUT_PORT_TYPE +src0_data[22] <= sink_data[22].DB_MAX_OUTPUT_PORT_TYPE +src0_data[23] <= sink_data[23].DB_MAX_OUTPUT_PORT_TYPE +src0_data[24] <= sink_data[24].DB_MAX_OUTPUT_PORT_TYPE +src0_data[25] <= sink_data[25].DB_MAX_OUTPUT_PORT_TYPE +src0_data[26] <= sink_data[26].DB_MAX_OUTPUT_PORT_TYPE +src0_data[27] <= sink_data[27].DB_MAX_OUTPUT_PORT_TYPE +src0_data[28] <= sink_data[28].DB_MAX_OUTPUT_PORT_TYPE +src0_data[29] <= sink_data[29].DB_MAX_OUTPUT_PORT_TYPE +src0_data[30] <= sink_data[30].DB_MAX_OUTPUT_PORT_TYPE +src0_data[31] <= sink_data[31].DB_MAX_OUTPUT_PORT_TYPE +src0_data[32] <= sink_data[32].DB_MAX_OUTPUT_PORT_TYPE +src0_data[33] <= sink_data[33].DB_MAX_OUTPUT_PORT_TYPE +src0_data[34] <= sink_data[34].DB_MAX_OUTPUT_PORT_TYPE +src0_data[35] <= sink_data[35].DB_MAX_OUTPUT_PORT_TYPE +src0_data[36] <= sink_data[36].DB_MAX_OUTPUT_PORT_TYPE +src0_data[37] <= sink_data[37].DB_MAX_OUTPUT_PORT_TYPE +src0_data[38] <= sink_data[38].DB_MAX_OUTPUT_PORT_TYPE +src0_data[39] <= sink_data[39].DB_MAX_OUTPUT_PORT_TYPE +src0_data[40] <= sink_data[40].DB_MAX_OUTPUT_PORT_TYPE +src0_data[41] <= sink_data[41].DB_MAX_OUTPUT_PORT_TYPE +src0_data[42] <= sink_data[42].DB_MAX_OUTPUT_PORT_TYPE +src0_data[43] <= sink_data[43].DB_MAX_OUTPUT_PORT_TYPE +src0_data[44] <= sink_data[44].DB_MAX_OUTPUT_PORT_TYPE +src0_data[45] <= sink_data[45].DB_MAX_OUTPUT_PORT_TYPE +src0_data[46] <= sink_data[46].DB_MAX_OUTPUT_PORT_TYPE +src0_data[47] <= sink_data[47].DB_MAX_OUTPUT_PORT_TYPE +src0_data[48] <= sink_data[48].DB_MAX_OUTPUT_PORT_TYPE +src0_data[49] <= sink_data[49].DB_MAX_OUTPUT_PORT_TYPE +src0_data[50] <= sink_data[50].DB_MAX_OUTPUT_PORT_TYPE +src0_data[51] <= sink_data[51].DB_MAX_OUTPUT_PORT_TYPE +src0_data[52] <= sink_data[52].DB_MAX_OUTPUT_PORT_TYPE +src0_data[53] <= sink_data[53].DB_MAX_OUTPUT_PORT_TYPE +src0_data[54] <= sink_data[54].DB_MAX_OUTPUT_PORT_TYPE +src0_data[55] <= sink_data[55].DB_MAX_OUTPUT_PORT_TYPE +src0_data[56] <= sink_data[56].DB_MAX_OUTPUT_PORT_TYPE +src0_data[57] <= sink_data[57].DB_MAX_OUTPUT_PORT_TYPE +src0_data[58] <= sink_data[58].DB_MAX_OUTPUT_PORT_TYPE +src0_data[59] <= sink_data[59].DB_MAX_OUTPUT_PORT_TYPE +src0_data[60] <= sink_data[60].DB_MAX_OUTPUT_PORT_TYPE +src0_data[61] <= sink_data[61].DB_MAX_OUTPUT_PORT_TYPE +src0_data[62] <= sink_data[62].DB_MAX_OUTPUT_PORT_TYPE +src0_data[63] <= sink_data[63].DB_MAX_OUTPUT_PORT_TYPE +src0_data[64] <= sink_data[64].DB_MAX_OUTPUT_PORT_TYPE +src0_data[65] <= sink_data[65].DB_MAX_OUTPUT_PORT_TYPE +src0_data[66] <= sink_data[66].DB_MAX_OUTPUT_PORT_TYPE +src0_data[67] <= sink_data[67].DB_MAX_OUTPUT_PORT_TYPE +src0_data[68] <= sink_data[68].DB_MAX_OUTPUT_PORT_TYPE +src0_data[69] <= sink_data[69].DB_MAX_OUTPUT_PORT_TYPE +src0_data[70] <= sink_data[70].DB_MAX_OUTPUT_PORT_TYPE +src0_data[71] <= sink_data[71].DB_MAX_OUTPUT_PORT_TYPE +src0_data[72] <= sink_data[72].DB_MAX_OUTPUT_PORT_TYPE +src0_data[73] <= sink_data[73].DB_MAX_OUTPUT_PORT_TYPE +src0_data[74] <= sink_data[74].DB_MAX_OUTPUT_PORT_TYPE +src0_data[75] <= sink_data[75].DB_MAX_OUTPUT_PORT_TYPE +src0_data[76] <= sink_data[76].DB_MAX_OUTPUT_PORT_TYPE +src0_data[77] <= sink_data[77].DB_MAX_OUTPUT_PORT_TYPE +src0_data[78] <= sink_data[78].DB_MAX_OUTPUT_PORT_TYPE +src0_data[79] <= sink_data[79].DB_MAX_OUTPUT_PORT_TYPE +src0_data[80] <= sink_data[80].DB_MAX_OUTPUT_PORT_TYPE +src0_data[81] <= sink_data[81].DB_MAX_OUTPUT_PORT_TYPE +src0_data[82] <= sink_data[82].DB_MAX_OUTPUT_PORT_TYPE +src0_data[83] <= sink_data[83].DB_MAX_OUTPUT_PORT_TYPE +src0_data[84] <= sink_data[84].DB_MAX_OUTPUT_PORT_TYPE +src0_data[85] <= sink_data[85].DB_MAX_OUTPUT_PORT_TYPE +src0_data[86] <= sink_data[86].DB_MAX_OUTPUT_PORT_TYPE +src0_data[87] <= sink_data[87].DB_MAX_OUTPUT_PORT_TYPE +src0_data[88] <= sink_data[88].DB_MAX_OUTPUT_PORT_TYPE +src0_data[89] <= sink_data[89].DB_MAX_OUTPUT_PORT_TYPE +src0_data[90] <= sink_data[90].DB_MAX_OUTPUT_PORT_TYPE +src0_data[91] <= sink_data[91].DB_MAX_OUTPUT_PORT_TYPE +src0_data[92] <= sink_data[92].DB_MAX_OUTPUT_PORT_TYPE +src0_data[93] <= sink_data[93].DB_MAX_OUTPUT_PORT_TYPE +src0_data[94] <= sink_data[94].DB_MAX_OUTPUT_PORT_TYPE +src0_data[95] <= sink_data[95].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[0] <= sink_channel[1].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[1] <= sink_channel[2].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[2] <= sink_channel[3].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[3] <= sink_channel[4].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[4] <= sink_channel[5].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[5] <= sink_channel[6].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[6] <= sink_channel[7].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[7] <= sink_channel[8].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[8] <= sink_channel[9].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[9] <= sink_channel[10].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[10] <= sink_channel[11].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[11] <= sink_channel[12].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[12] <= sink_channel[13].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[13] <= sink_channel[14].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[14] <= sink_channel[15].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[15] <= sink_channel[16].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[16] <= sink_channel[17].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[17] <= +src0_startofpacket <= sink_startofpacket.DB_MAX_OUTPUT_PORT_TYPE +src0_endofpacket <= sink_endofpacket.DB_MAX_OUTPUT_PORT_TYPE +src0_ready => sink_ready.IN1 +clk => ~NO_FANOUT~ +reset => ~NO_FANOUT~ + + +|lights|nios_system:NiosII|nios_system_rsp_xbar_demux_002:rsp_xbar_demux_004 +sink_valid[0] => src0_valid.IN0 +sink_data[0] => src0_data[0].DATAIN +sink_data[1] => src0_data[1].DATAIN +sink_data[2] => src0_data[2].DATAIN +sink_data[3] => src0_data[3].DATAIN +sink_data[4] => src0_data[4].DATAIN +sink_data[5] => src0_data[5].DATAIN +sink_data[6] => src0_data[6].DATAIN +sink_data[7] => src0_data[7].DATAIN +sink_data[8] => src0_data[8].DATAIN +sink_data[9] => src0_data[9].DATAIN +sink_data[10] => src0_data[10].DATAIN +sink_data[11] => src0_data[11].DATAIN +sink_data[12] => src0_data[12].DATAIN +sink_data[13] => src0_data[13].DATAIN +sink_data[14] => src0_data[14].DATAIN +sink_data[15] => src0_data[15].DATAIN +sink_data[16] => src0_data[16].DATAIN +sink_data[17] => src0_data[17].DATAIN +sink_data[18] => src0_data[18].DATAIN +sink_data[19] => src0_data[19].DATAIN +sink_data[20] => src0_data[20].DATAIN +sink_data[21] => src0_data[21].DATAIN +sink_data[22] => src0_data[22].DATAIN +sink_data[23] => src0_data[23].DATAIN +sink_data[24] => src0_data[24].DATAIN +sink_data[25] => src0_data[25].DATAIN +sink_data[26] => src0_data[26].DATAIN +sink_data[27] => src0_data[27].DATAIN +sink_data[28] => src0_data[28].DATAIN +sink_data[29] => src0_data[29].DATAIN +sink_data[30] => src0_data[30].DATAIN +sink_data[31] => src0_data[31].DATAIN +sink_data[32] => src0_data[32].DATAIN +sink_data[33] => src0_data[33].DATAIN +sink_data[34] => src0_data[34].DATAIN +sink_data[35] => src0_data[35].DATAIN +sink_data[36] => src0_data[36].DATAIN +sink_data[37] => src0_data[37].DATAIN +sink_data[38] => src0_data[38].DATAIN +sink_data[39] => src0_data[39].DATAIN +sink_data[40] => src0_data[40].DATAIN +sink_data[41] => src0_data[41].DATAIN +sink_data[42] => src0_data[42].DATAIN +sink_data[43] => src0_data[43].DATAIN +sink_data[44] => src0_data[44].DATAIN +sink_data[45] => src0_data[45].DATAIN +sink_data[46] => src0_data[46].DATAIN +sink_data[47] => src0_data[47].DATAIN +sink_data[48] => src0_data[48].DATAIN +sink_data[49] => src0_data[49].DATAIN +sink_data[50] => src0_data[50].DATAIN +sink_data[51] => src0_data[51].DATAIN +sink_data[52] => src0_data[52].DATAIN +sink_data[53] => src0_data[53].DATAIN +sink_data[54] => src0_data[54].DATAIN +sink_data[55] => src0_data[55].DATAIN +sink_data[56] => src0_data[56].DATAIN +sink_data[57] => src0_data[57].DATAIN +sink_data[58] => src0_data[58].DATAIN +sink_data[59] => src0_data[59].DATAIN +sink_data[60] => src0_data[60].DATAIN +sink_data[61] => src0_data[61].DATAIN +sink_data[62] => src0_data[62].DATAIN +sink_data[63] => src0_data[63].DATAIN +sink_data[64] => src0_data[64].DATAIN +sink_data[65] => src0_data[65].DATAIN +sink_data[66] => src0_data[66].DATAIN +sink_data[67] => src0_data[67].DATAIN +sink_data[68] => src0_data[68].DATAIN +sink_data[69] => src0_data[69].DATAIN +sink_data[70] => src0_data[70].DATAIN +sink_data[71] => src0_data[71].DATAIN +sink_data[72] => src0_data[72].DATAIN +sink_data[73] => src0_data[73].DATAIN +sink_data[74] => src0_data[74].DATAIN +sink_data[75] => src0_data[75].DATAIN +sink_data[76] => src0_data[76].DATAIN +sink_data[77] => src0_data[77].DATAIN +sink_data[78] => src0_data[78].DATAIN +sink_data[79] => src0_data[79].DATAIN +sink_data[80] => src0_data[80].DATAIN +sink_data[81] => src0_data[81].DATAIN +sink_data[82] => src0_data[82].DATAIN +sink_data[83] => src0_data[83].DATAIN +sink_data[84] => src0_data[84].DATAIN +sink_data[85] => src0_data[85].DATAIN +sink_data[86] => src0_data[86].DATAIN +sink_data[87] => src0_data[87].DATAIN +sink_data[88] => src0_data[88].DATAIN +sink_data[89] => src0_data[89].DATAIN +sink_data[90] => src0_data[90].DATAIN +sink_data[91] => src0_data[91].DATAIN +sink_data[92] => src0_data[92].DATAIN +sink_data[93] => src0_data[93].DATAIN +sink_data[94] => src0_data[94].DATAIN +sink_data[95] => src0_data[95].DATAIN +sink_channel[0] => src0_valid.IN1 +sink_channel[0] => sink_ready.IN0 +sink_channel[1] => src0_channel[0].DATAIN +sink_channel[2] => src0_channel[1].DATAIN +sink_channel[3] => src0_channel[2].DATAIN +sink_channel[4] => src0_channel[3].DATAIN +sink_channel[5] => src0_channel[4].DATAIN +sink_channel[6] => src0_channel[5].DATAIN +sink_channel[7] => src0_channel[6].DATAIN +sink_channel[8] => src0_channel[7].DATAIN +sink_channel[9] => src0_channel[8].DATAIN +sink_channel[10] => src0_channel[9].DATAIN +sink_channel[11] => src0_channel[10].DATAIN +sink_channel[12] => src0_channel[11].DATAIN +sink_channel[13] => src0_channel[12].DATAIN +sink_channel[14] => src0_channel[13].DATAIN +sink_channel[15] => src0_channel[14].DATAIN +sink_channel[16] => src0_channel[15].DATAIN +sink_channel[17] => src0_channel[16].DATAIN +sink_startofpacket => src0_startofpacket.DATAIN +sink_endofpacket => src0_endofpacket.DATAIN +sink_ready <= sink_ready.DB_MAX_OUTPUT_PORT_TYPE +src0_valid <= src0_valid.DB_MAX_OUTPUT_PORT_TYPE +src0_data[0] <= sink_data[0].DB_MAX_OUTPUT_PORT_TYPE +src0_data[1] <= sink_data[1].DB_MAX_OUTPUT_PORT_TYPE +src0_data[2] <= sink_data[2].DB_MAX_OUTPUT_PORT_TYPE +src0_data[3] <= sink_data[3].DB_MAX_OUTPUT_PORT_TYPE +src0_data[4] <= sink_data[4].DB_MAX_OUTPUT_PORT_TYPE +src0_data[5] <= sink_data[5].DB_MAX_OUTPUT_PORT_TYPE +src0_data[6] <= sink_data[6].DB_MAX_OUTPUT_PORT_TYPE +src0_data[7] <= sink_data[7].DB_MAX_OUTPUT_PORT_TYPE +src0_data[8] <= sink_data[8].DB_MAX_OUTPUT_PORT_TYPE +src0_data[9] <= sink_data[9].DB_MAX_OUTPUT_PORT_TYPE +src0_data[10] <= sink_data[10].DB_MAX_OUTPUT_PORT_TYPE +src0_data[11] <= sink_data[11].DB_MAX_OUTPUT_PORT_TYPE +src0_data[12] <= sink_data[12].DB_MAX_OUTPUT_PORT_TYPE +src0_data[13] <= sink_data[13].DB_MAX_OUTPUT_PORT_TYPE +src0_data[14] <= sink_data[14].DB_MAX_OUTPUT_PORT_TYPE +src0_data[15] <= sink_data[15].DB_MAX_OUTPUT_PORT_TYPE +src0_data[16] <= sink_data[16].DB_MAX_OUTPUT_PORT_TYPE +src0_data[17] <= sink_data[17].DB_MAX_OUTPUT_PORT_TYPE +src0_data[18] <= sink_data[18].DB_MAX_OUTPUT_PORT_TYPE +src0_data[19] <= sink_data[19].DB_MAX_OUTPUT_PORT_TYPE +src0_data[20] <= sink_data[20].DB_MAX_OUTPUT_PORT_TYPE +src0_data[21] <= sink_data[21].DB_MAX_OUTPUT_PORT_TYPE +src0_data[22] <= sink_data[22].DB_MAX_OUTPUT_PORT_TYPE +src0_data[23] <= sink_data[23].DB_MAX_OUTPUT_PORT_TYPE +src0_data[24] <= sink_data[24].DB_MAX_OUTPUT_PORT_TYPE +src0_data[25] <= sink_data[25].DB_MAX_OUTPUT_PORT_TYPE +src0_data[26] <= sink_data[26].DB_MAX_OUTPUT_PORT_TYPE +src0_data[27] <= sink_data[27].DB_MAX_OUTPUT_PORT_TYPE +src0_data[28] <= sink_data[28].DB_MAX_OUTPUT_PORT_TYPE +src0_data[29] <= sink_data[29].DB_MAX_OUTPUT_PORT_TYPE +src0_data[30] <= sink_data[30].DB_MAX_OUTPUT_PORT_TYPE +src0_data[31] <= sink_data[31].DB_MAX_OUTPUT_PORT_TYPE +src0_data[32] <= sink_data[32].DB_MAX_OUTPUT_PORT_TYPE +src0_data[33] <= sink_data[33].DB_MAX_OUTPUT_PORT_TYPE +src0_data[34] <= sink_data[34].DB_MAX_OUTPUT_PORT_TYPE +src0_data[35] <= sink_data[35].DB_MAX_OUTPUT_PORT_TYPE +src0_data[36] <= sink_data[36].DB_MAX_OUTPUT_PORT_TYPE +src0_data[37] <= sink_data[37].DB_MAX_OUTPUT_PORT_TYPE +src0_data[38] <= sink_data[38].DB_MAX_OUTPUT_PORT_TYPE +src0_data[39] <= sink_data[39].DB_MAX_OUTPUT_PORT_TYPE +src0_data[40] <= sink_data[40].DB_MAX_OUTPUT_PORT_TYPE +src0_data[41] <= sink_data[41].DB_MAX_OUTPUT_PORT_TYPE +src0_data[42] <= sink_data[42].DB_MAX_OUTPUT_PORT_TYPE +src0_data[43] <= sink_data[43].DB_MAX_OUTPUT_PORT_TYPE +src0_data[44] <= sink_data[44].DB_MAX_OUTPUT_PORT_TYPE +src0_data[45] <= sink_data[45].DB_MAX_OUTPUT_PORT_TYPE +src0_data[46] <= sink_data[46].DB_MAX_OUTPUT_PORT_TYPE +src0_data[47] <= sink_data[47].DB_MAX_OUTPUT_PORT_TYPE +src0_data[48] <= sink_data[48].DB_MAX_OUTPUT_PORT_TYPE +src0_data[49] <= sink_data[49].DB_MAX_OUTPUT_PORT_TYPE +src0_data[50] <= sink_data[50].DB_MAX_OUTPUT_PORT_TYPE +src0_data[51] <= sink_data[51].DB_MAX_OUTPUT_PORT_TYPE +src0_data[52] <= sink_data[52].DB_MAX_OUTPUT_PORT_TYPE +src0_data[53] <= sink_data[53].DB_MAX_OUTPUT_PORT_TYPE +src0_data[54] <= sink_data[54].DB_MAX_OUTPUT_PORT_TYPE +src0_data[55] <= sink_data[55].DB_MAX_OUTPUT_PORT_TYPE +src0_data[56] <= sink_data[56].DB_MAX_OUTPUT_PORT_TYPE +src0_data[57] <= sink_data[57].DB_MAX_OUTPUT_PORT_TYPE +src0_data[58] <= sink_data[58].DB_MAX_OUTPUT_PORT_TYPE +src0_data[59] <= sink_data[59].DB_MAX_OUTPUT_PORT_TYPE +src0_data[60] <= sink_data[60].DB_MAX_OUTPUT_PORT_TYPE +src0_data[61] <= sink_data[61].DB_MAX_OUTPUT_PORT_TYPE +src0_data[62] <= sink_data[62].DB_MAX_OUTPUT_PORT_TYPE +src0_data[63] <= sink_data[63].DB_MAX_OUTPUT_PORT_TYPE +src0_data[64] <= sink_data[64].DB_MAX_OUTPUT_PORT_TYPE +src0_data[65] <= sink_data[65].DB_MAX_OUTPUT_PORT_TYPE +src0_data[66] <= sink_data[66].DB_MAX_OUTPUT_PORT_TYPE +src0_data[67] <= sink_data[67].DB_MAX_OUTPUT_PORT_TYPE +src0_data[68] <= sink_data[68].DB_MAX_OUTPUT_PORT_TYPE +src0_data[69] <= sink_data[69].DB_MAX_OUTPUT_PORT_TYPE +src0_data[70] <= sink_data[70].DB_MAX_OUTPUT_PORT_TYPE +src0_data[71] <= sink_data[71].DB_MAX_OUTPUT_PORT_TYPE +src0_data[72] <= sink_data[72].DB_MAX_OUTPUT_PORT_TYPE +src0_data[73] <= sink_data[73].DB_MAX_OUTPUT_PORT_TYPE +src0_data[74] <= sink_data[74].DB_MAX_OUTPUT_PORT_TYPE +src0_data[75] <= sink_data[75].DB_MAX_OUTPUT_PORT_TYPE +src0_data[76] <= sink_data[76].DB_MAX_OUTPUT_PORT_TYPE +src0_data[77] <= sink_data[77].DB_MAX_OUTPUT_PORT_TYPE +src0_data[78] <= sink_data[78].DB_MAX_OUTPUT_PORT_TYPE +src0_data[79] <= sink_data[79].DB_MAX_OUTPUT_PORT_TYPE +src0_data[80] <= sink_data[80].DB_MAX_OUTPUT_PORT_TYPE +src0_data[81] <= sink_data[81].DB_MAX_OUTPUT_PORT_TYPE +src0_data[82] <= sink_data[82].DB_MAX_OUTPUT_PORT_TYPE +src0_data[83] <= sink_data[83].DB_MAX_OUTPUT_PORT_TYPE +src0_data[84] <= sink_data[84].DB_MAX_OUTPUT_PORT_TYPE +src0_data[85] <= sink_data[85].DB_MAX_OUTPUT_PORT_TYPE +src0_data[86] <= sink_data[86].DB_MAX_OUTPUT_PORT_TYPE +src0_data[87] <= sink_data[87].DB_MAX_OUTPUT_PORT_TYPE +src0_data[88] <= sink_data[88].DB_MAX_OUTPUT_PORT_TYPE +src0_data[89] <= sink_data[89].DB_MAX_OUTPUT_PORT_TYPE +src0_data[90] <= sink_data[90].DB_MAX_OUTPUT_PORT_TYPE +src0_data[91] <= sink_data[91].DB_MAX_OUTPUT_PORT_TYPE +src0_data[92] <= sink_data[92].DB_MAX_OUTPUT_PORT_TYPE +src0_data[93] <= sink_data[93].DB_MAX_OUTPUT_PORT_TYPE +src0_data[94] <= sink_data[94].DB_MAX_OUTPUT_PORT_TYPE +src0_data[95] <= sink_data[95].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[0] <= sink_channel[1].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[1] <= sink_channel[2].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[2] <= sink_channel[3].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[3] <= sink_channel[4].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[4] <= sink_channel[5].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[5] <= sink_channel[6].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[6] <= sink_channel[7].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[7] <= sink_channel[8].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[8] <= sink_channel[9].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[9] <= sink_channel[10].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[10] <= sink_channel[11].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[11] <= sink_channel[12].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[12] <= sink_channel[13].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[13] <= sink_channel[14].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[14] <= sink_channel[15].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[15] <= sink_channel[16].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[16] <= sink_channel[17].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[17] <= +src0_startofpacket <= sink_startofpacket.DB_MAX_OUTPUT_PORT_TYPE +src0_endofpacket <= sink_endofpacket.DB_MAX_OUTPUT_PORT_TYPE +src0_ready => sink_ready.IN1 +clk => ~NO_FANOUT~ +reset => ~NO_FANOUT~ + + +|lights|nios_system:NiosII|nios_system_rsp_xbar_demux_002:rsp_xbar_demux_005 +sink_valid[0] => src0_valid.IN0 +sink_data[0] => src0_data[0].DATAIN +sink_data[1] => src0_data[1].DATAIN +sink_data[2] => src0_data[2].DATAIN +sink_data[3] => src0_data[3].DATAIN +sink_data[4] => src0_data[4].DATAIN +sink_data[5] => src0_data[5].DATAIN +sink_data[6] => src0_data[6].DATAIN +sink_data[7] => src0_data[7].DATAIN +sink_data[8] => src0_data[8].DATAIN +sink_data[9] => src0_data[9].DATAIN +sink_data[10] => src0_data[10].DATAIN +sink_data[11] => src0_data[11].DATAIN +sink_data[12] => src0_data[12].DATAIN +sink_data[13] => src0_data[13].DATAIN +sink_data[14] => src0_data[14].DATAIN +sink_data[15] => src0_data[15].DATAIN +sink_data[16] => src0_data[16].DATAIN +sink_data[17] => src0_data[17].DATAIN +sink_data[18] => src0_data[18].DATAIN +sink_data[19] => src0_data[19].DATAIN +sink_data[20] => src0_data[20].DATAIN +sink_data[21] => src0_data[21].DATAIN +sink_data[22] => src0_data[22].DATAIN +sink_data[23] => src0_data[23].DATAIN +sink_data[24] => src0_data[24].DATAIN +sink_data[25] => src0_data[25].DATAIN +sink_data[26] => src0_data[26].DATAIN +sink_data[27] => src0_data[27].DATAIN +sink_data[28] => src0_data[28].DATAIN +sink_data[29] => src0_data[29].DATAIN +sink_data[30] => src0_data[30].DATAIN +sink_data[31] => src0_data[31].DATAIN +sink_data[32] => src0_data[32].DATAIN +sink_data[33] => src0_data[33].DATAIN +sink_data[34] => src0_data[34].DATAIN +sink_data[35] => src0_data[35].DATAIN +sink_data[36] => src0_data[36].DATAIN +sink_data[37] => src0_data[37].DATAIN +sink_data[38] => src0_data[38].DATAIN +sink_data[39] => src0_data[39].DATAIN +sink_data[40] => src0_data[40].DATAIN +sink_data[41] => src0_data[41].DATAIN +sink_data[42] => src0_data[42].DATAIN +sink_data[43] => src0_data[43].DATAIN +sink_data[44] => src0_data[44].DATAIN +sink_data[45] => src0_data[45].DATAIN +sink_data[46] => src0_data[46].DATAIN +sink_data[47] => src0_data[47].DATAIN +sink_data[48] => src0_data[48].DATAIN +sink_data[49] => src0_data[49].DATAIN +sink_data[50] => src0_data[50].DATAIN +sink_data[51] => src0_data[51].DATAIN +sink_data[52] => src0_data[52].DATAIN +sink_data[53] => src0_data[53].DATAIN +sink_data[54] => src0_data[54].DATAIN +sink_data[55] => src0_data[55].DATAIN +sink_data[56] => src0_data[56].DATAIN +sink_data[57] => src0_data[57].DATAIN +sink_data[58] => src0_data[58].DATAIN +sink_data[59] => src0_data[59].DATAIN +sink_data[60] => src0_data[60].DATAIN +sink_data[61] => src0_data[61].DATAIN +sink_data[62] => src0_data[62].DATAIN +sink_data[63] => src0_data[63].DATAIN +sink_data[64] => src0_data[64].DATAIN +sink_data[65] => src0_data[65].DATAIN +sink_data[66] => src0_data[66].DATAIN +sink_data[67] => src0_data[67].DATAIN +sink_data[68] => src0_data[68].DATAIN +sink_data[69] => src0_data[69].DATAIN +sink_data[70] => src0_data[70].DATAIN +sink_data[71] => src0_data[71].DATAIN +sink_data[72] => src0_data[72].DATAIN +sink_data[73] => src0_data[73].DATAIN +sink_data[74] => src0_data[74].DATAIN +sink_data[75] => src0_data[75].DATAIN +sink_data[76] => src0_data[76].DATAIN +sink_data[77] => src0_data[77].DATAIN +sink_data[78] => src0_data[78].DATAIN +sink_data[79] => src0_data[79].DATAIN +sink_data[80] => src0_data[80].DATAIN +sink_data[81] => src0_data[81].DATAIN +sink_data[82] => src0_data[82].DATAIN +sink_data[83] => src0_data[83].DATAIN +sink_data[84] => src0_data[84].DATAIN +sink_data[85] => src0_data[85].DATAIN +sink_data[86] => src0_data[86].DATAIN +sink_data[87] => src0_data[87].DATAIN +sink_data[88] => src0_data[88].DATAIN +sink_data[89] => src0_data[89].DATAIN +sink_data[90] => src0_data[90].DATAIN +sink_data[91] => src0_data[91].DATAIN +sink_data[92] => src0_data[92].DATAIN +sink_data[93] => src0_data[93].DATAIN +sink_data[94] => src0_data[94].DATAIN +sink_data[95] => src0_data[95].DATAIN +sink_channel[0] => src0_valid.IN1 +sink_channel[0] => sink_ready.IN0 +sink_channel[1] => src0_channel[0].DATAIN +sink_channel[2] => src0_channel[1].DATAIN +sink_channel[3] => src0_channel[2].DATAIN +sink_channel[4] => src0_channel[3].DATAIN +sink_channel[5] => src0_channel[4].DATAIN +sink_channel[6] => src0_channel[5].DATAIN +sink_channel[7] => src0_channel[6].DATAIN +sink_channel[8] => src0_channel[7].DATAIN +sink_channel[9] => src0_channel[8].DATAIN +sink_channel[10] => src0_channel[9].DATAIN +sink_channel[11] => src0_channel[10].DATAIN +sink_channel[12] => src0_channel[11].DATAIN +sink_channel[13] => src0_channel[12].DATAIN +sink_channel[14] => src0_channel[13].DATAIN +sink_channel[15] => src0_channel[14].DATAIN +sink_channel[16] => src0_channel[15].DATAIN +sink_channel[17] => src0_channel[16].DATAIN +sink_startofpacket => src0_startofpacket.DATAIN +sink_endofpacket => src0_endofpacket.DATAIN +sink_ready <= sink_ready.DB_MAX_OUTPUT_PORT_TYPE +src0_valid <= src0_valid.DB_MAX_OUTPUT_PORT_TYPE +src0_data[0] <= sink_data[0].DB_MAX_OUTPUT_PORT_TYPE +src0_data[1] <= sink_data[1].DB_MAX_OUTPUT_PORT_TYPE +src0_data[2] <= sink_data[2].DB_MAX_OUTPUT_PORT_TYPE +src0_data[3] <= sink_data[3].DB_MAX_OUTPUT_PORT_TYPE +src0_data[4] <= sink_data[4].DB_MAX_OUTPUT_PORT_TYPE +src0_data[5] <= sink_data[5].DB_MAX_OUTPUT_PORT_TYPE +src0_data[6] <= sink_data[6].DB_MAX_OUTPUT_PORT_TYPE +src0_data[7] <= sink_data[7].DB_MAX_OUTPUT_PORT_TYPE +src0_data[8] <= sink_data[8].DB_MAX_OUTPUT_PORT_TYPE +src0_data[9] <= sink_data[9].DB_MAX_OUTPUT_PORT_TYPE +src0_data[10] <= sink_data[10].DB_MAX_OUTPUT_PORT_TYPE +src0_data[11] <= sink_data[11].DB_MAX_OUTPUT_PORT_TYPE +src0_data[12] <= sink_data[12].DB_MAX_OUTPUT_PORT_TYPE +src0_data[13] <= sink_data[13].DB_MAX_OUTPUT_PORT_TYPE +src0_data[14] <= sink_data[14].DB_MAX_OUTPUT_PORT_TYPE +src0_data[15] <= sink_data[15].DB_MAX_OUTPUT_PORT_TYPE +src0_data[16] <= sink_data[16].DB_MAX_OUTPUT_PORT_TYPE +src0_data[17] <= sink_data[17].DB_MAX_OUTPUT_PORT_TYPE +src0_data[18] <= sink_data[18].DB_MAX_OUTPUT_PORT_TYPE +src0_data[19] <= sink_data[19].DB_MAX_OUTPUT_PORT_TYPE +src0_data[20] <= sink_data[20].DB_MAX_OUTPUT_PORT_TYPE +src0_data[21] <= sink_data[21].DB_MAX_OUTPUT_PORT_TYPE +src0_data[22] <= sink_data[22].DB_MAX_OUTPUT_PORT_TYPE +src0_data[23] <= sink_data[23].DB_MAX_OUTPUT_PORT_TYPE +src0_data[24] <= sink_data[24].DB_MAX_OUTPUT_PORT_TYPE +src0_data[25] <= sink_data[25].DB_MAX_OUTPUT_PORT_TYPE +src0_data[26] <= sink_data[26].DB_MAX_OUTPUT_PORT_TYPE +src0_data[27] <= sink_data[27].DB_MAX_OUTPUT_PORT_TYPE +src0_data[28] <= sink_data[28].DB_MAX_OUTPUT_PORT_TYPE +src0_data[29] <= sink_data[29].DB_MAX_OUTPUT_PORT_TYPE +src0_data[30] <= sink_data[30].DB_MAX_OUTPUT_PORT_TYPE +src0_data[31] <= sink_data[31].DB_MAX_OUTPUT_PORT_TYPE +src0_data[32] <= sink_data[32].DB_MAX_OUTPUT_PORT_TYPE +src0_data[33] <= sink_data[33].DB_MAX_OUTPUT_PORT_TYPE +src0_data[34] <= sink_data[34].DB_MAX_OUTPUT_PORT_TYPE +src0_data[35] <= sink_data[35].DB_MAX_OUTPUT_PORT_TYPE +src0_data[36] <= sink_data[36].DB_MAX_OUTPUT_PORT_TYPE +src0_data[37] <= sink_data[37].DB_MAX_OUTPUT_PORT_TYPE +src0_data[38] <= sink_data[38].DB_MAX_OUTPUT_PORT_TYPE +src0_data[39] <= sink_data[39].DB_MAX_OUTPUT_PORT_TYPE +src0_data[40] <= sink_data[40].DB_MAX_OUTPUT_PORT_TYPE +src0_data[41] <= sink_data[41].DB_MAX_OUTPUT_PORT_TYPE +src0_data[42] <= sink_data[42].DB_MAX_OUTPUT_PORT_TYPE +src0_data[43] <= sink_data[43].DB_MAX_OUTPUT_PORT_TYPE +src0_data[44] <= sink_data[44].DB_MAX_OUTPUT_PORT_TYPE +src0_data[45] <= sink_data[45].DB_MAX_OUTPUT_PORT_TYPE +src0_data[46] <= sink_data[46].DB_MAX_OUTPUT_PORT_TYPE +src0_data[47] <= sink_data[47].DB_MAX_OUTPUT_PORT_TYPE +src0_data[48] <= sink_data[48].DB_MAX_OUTPUT_PORT_TYPE +src0_data[49] <= sink_data[49].DB_MAX_OUTPUT_PORT_TYPE +src0_data[50] <= sink_data[50].DB_MAX_OUTPUT_PORT_TYPE +src0_data[51] <= sink_data[51].DB_MAX_OUTPUT_PORT_TYPE +src0_data[52] <= sink_data[52].DB_MAX_OUTPUT_PORT_TYPE +src0_data[53] <= sink_data[53].DB_MAX_OUTPUT_PORT_TYPE +src0_data[54] <= sink_data[54].DB_MAX_OUTPUT_PORT_TYPE +src0_data[55] <= sink_data[55].DB_MAX_OUTPUT_PORT_TYPE +src0_data[56] <= sink_data[56].DB_MAX_OUTPUT_PORT_TYPE +src0_data[57] <= sink_data[57].DB_MAX_OUTPUT_PORT_TYPE +src0_data[58] <= sink_data[58].DB_MAX_OUTPUT_PORT_TYPE +src0_data[59] <= sink_data[59].DB_MAX_OUTPUT_PORT_TYPE +src0_data[60] <= sink_data[60].DB_MAX_OUTPUT_PORT_TYPE +src0_data[61] <= sink_data[61].DB_MAX_OUTPUT_PORT_TYPE +src0_data[62] <= sink_data[62].DB_MAX_OUTPUT_PORT_TYPE +src0_data[63] <= sink_data[63].DB_MAX_OUTPUT_PORT_TYPE +src0_data[64] <= sink_data[64].DB_MAX_OUTPUT_PORT_TYPE +src0_data[65] <= sink_data[65].DB_MAX_OUTPUT_PORT_TYPE +src0_data[66] <= sink_data[66].DB_MAX_OUTPUT_PORT_TYPE +src0_data[67] <= sink_data[67].DB_MAX_OUTPUT_PORT_TYPE +src0_data[68] <= sink_data[68].DB_MAX_OUTPUT_PORT_TYPE +src0_data[69] <= sink_data[69].DB_MAX_OUTPUT_PORT_TYPE +src0_data[70] <= sink_data[70].DB_MAX_OUTPUT_PORT_TYPE +src0_data[71] <= sink_data[71].DB_MAX_OUTPUT_PORT_TYPE +src0_data[72] <= sink_data[72].DB_MAX_OUTPUT_PORT_TYPE +src0_data[73] <= sink_data[73].DB_MAX_OUTPUT_PORT_TYPE +src0_data[74] <= sink_data[74].DB_MAX_OUTPUT_PORT_TYPE +src0_data[75] <= sink_data[75].DB_MAX_OUTPUT_PORT_TYPE +src0_data[76] <= sink_data[76].DB_MAX_OUTPUT_PORT_TYPE +src0_data[77] <= sink_data[77].DB_MAX_OUTPUT_PORT_TYPE +src0_data[78] <= sink_data[78].DB_MAX_OUTPUT_PORT_TYPE +src0_data[79] <= sink_data[79].DB_MAX_OUTPUT_PORT_TYPE +src0_data[80] <= sink_data[80].DB_MAX_OUTPUT_PORT_TYPE +src0_data[81] <= sink_data[81].DB_MAX_OUTPUT_PORT_TYPE +src0_data[82] <= sink_data[82].DB_MAX_OUTPUT_PORT_TYPE +src0_data[83] <= sink_data[83].DB_MAX_OUTPUT_PORT_TYPE +src0_data[84] <= sink_data[84].DB_MAX_OUTPUT_PORT_TYPE +src0_data[85] <= sink_data[85].DB_MAX_OUTPUT_PORT_TYPE +src0_data[86] <= sink_data[86].DB_MAX_OUTPUT_PORT_TYPE +src0_data[87] <= sink_data[87].DB_MAX_OUTPUT_PORT_TYPE +src0_data[88] <= sink_data[88].DB_MAX_OUTPUT_PORT_TYPE +src0_data[89] <= sink_data[89].DB_MAX_OUTPUT_PORT_TYPE +src0_data[90] <= sink_data[90].DB_MAX_OUTPUT_PORT_TYPE +src0_data[91] <= sink_data[91].DB_MAX_OUTPUT_PORT_TYPE +src0_data[92] <= sink_data[92].DB_MAX_OUTPUT_PORT_TYPE +src0_data[93] <= sink_data[93].DB_MAX_OUTPUT_PORT_TYPE +src0_data[94] <= sink_data[94].DB_MAX_OUTPUT_PORT_TYPE +src0_data[95] <= sink_data[95].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[0] <= sink_channel[1].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[1] <= sink_channel[2].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[2] <= sink_channel[3].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[3] <= sink_channel[4].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[4] <= sink_channel[5].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[5] <= sink_channel[6].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[6] <= sink_channel[7].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[7] <= sink_channel[8].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[8] <= sink_channel[9].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[9] <= sink_channel[10].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[10] <= sink_channel[11].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[11] <= sink_channel[12].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[12] <= sink_channel[13].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[13] <= sink_channel[14].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[14] <= sink_channel[15].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[15] <= sink_channel[16].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[16] <= sink_channel[17].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[17] <= +src0_startofpacket <= sink_startofpacket.DB_MAX_OUTPUT_PORT_TYPE +src0_endofpacket <= sink_endofpacket.DB_MAX_OUTPUT_PORT_TYPE +src0_ready => sink_ready.IN1 +clk => ~NO_FANOUT~ +reset => ~NO_FANOUT~ + + +|lights|nios_system:NiosII|nios_system_rsp_xbar_demux_002:rsp_xbar_demux_006 +sink_valid[0] => src0_valid.IN0 +sink_data[0] => src0_data[0].DATAIN +sink_data[1] => src0_data[1].DATAIN +sink_data[2] => src0_data[2].DATAIN +sink_data[3] => src0_data[3].DATAIN +sink_data[4] => src0_data[4].DATAIN +sink_data[5] => src0_data[5].DATAIN +sink_data[6] => src0_data[6].DATAIN +sink_data[7] => src0_data[7].DATAIN +sink_data[8] => src0_data[8].DATAIN +sink_data[9] => src0_data[9].DATAIN +sink_data[10] => src0_data[10].DATAIN +sink_data[11] => src0_data[11].DATAIN +sink_data[12] => src0_data[12].DATAIN +sink_data[13] => src0_data[13].DATAIN +sink_data[14] => src0_data[14].DATAIN +sink_data[15] => src0_data[15].DATAIN +sink_data[16] => src0_data[16].DATAIN +sink_data[17] => src0_data[17].DATAIN +sink_data[18] => src0_data[18].DATAIN +sink_data[19] => src0_data[19].DATAIN +sink_data[20] => src0_data[20].DATAIN +sink_data[21] => src0_data[21].DATAIN +sink_data[22] => src0_data[22].DATAIN +sink_data[23] => src0_data[23].DATAIN +sink_data[24] => src0_data[24].DATAIN +sink_data[25] => src0_data[25].DATAIN +sink_data[26] => src0_data[26].DATAIN +sink_data[27] => src0_data[27].DATAIN +sink_data[28] => src0_data[28].DATAIN +sink_data[29] => src0_data[29].DATAIN +sink_data[30] => src0_data[30].DATAIN +sink_data[31] => src0_data[31].DATAIN +sink_data[32] => src0_data[32].DATAIN +sink_data[33] => src0_data[33].DATAIN +sink_data[34] => src0_data[34].DATAIN +sink_data[35] => src0_data[35].DATAIN +sink_data[36] => src0_data[36].DATAIN +sink_data[37] => src0_data[37].DATAIN +sink_data[38] => src0_data[38].DATAIN +sink_data[39] => src0_data[39].DATAIN +sink_data[40] => src0_data[40].DATAIN +sink_data[41] => src0_data[41].DATAIN +sink_data[42] => src0_data[42].DATAIN +sink_data[43] => src0_data[43].DATAIN +sink_data[44] => src0_data[44].DATAIN +sink_data[45] => src0_data[45].DATAIN +sink_data[46] => src0_data[46].DATAIN +sink_data[47] => src0_data[47].DATAIN +sink_data[48] => src0_data[48].DATAIN +sink_data[49] => src0_data[49].DATAIN +sink_data[50] => src0_data[50].DATAIN +sink_data[51] => src0_data[51].DATAIN +sink_data[52] => src0_data[52].DATAIN +sink_data[53] => src0_data[53].DATAIN +sink_data[54] => src0_data[54].DATAIN +sink_data[55] => src0_data[55].DATAIN +sink_data[56] => src0_data[56].DATAIN +sink_data[57] => src0_data[57].DATAIN +sink_data[58] => src0_data[58].DATAIN +sink_data[59] => src0_data[59].DATAIN +sink_data[60] => src0_data[60].DATAIN +sink_data[61] => src0_data[61].DATAIN +sink_data[62] => src0_data[62].DATAIN +sink_data[63] => src0_data[63].DATAIN +sink_data[64] => src0_data[64].DATAIN +sink_data[65] => src0_data[65].DATAIN +sink_data[66] => src0_data[66].DATAIN +sink_data[67] => src0_data[67].DATAIN +sink_data[68] => src0_data[68].DATAIN +sink_data[69] => src0_data[69].DATAIN +sink_data[70] => src0_data[70].DATAIN +sink_data[71] => src0_data[71].DATAIN +sink_data[72] => src0_data[72].DATAIN +sink_data[73] => src0_data[73].DATAIN +sink_data[74] => src0_data[74].DATAIN +sink_data[75] => src0_data[75].DATAIN +sink_data[76] => src0_data[76].DATAIN +sink_data[77] => src0_data[77].DATAIN +sink_data[78] => src0_data[78].DATAIN +sink_data[79] => src0_data[79].DATAIN +sink_data[80] => src0_data[80].DATAIN +sink_data[81] => src0_data[81].DATAIN +sink_data[82] => src0_data[82].DATAIN +sink_data[83] => src0_data[83].DATAIN +sink_data[84] => src0_data[84].DATAIN +sink_data[85] => src0_data[85].DATAIN +sink_data[86] => src0_data[86].DATAIN +sink_data[87] => src0_data[87].DATAIN +sink_data[88] => src0_data[88].DATAIN +sink_data[89] => src0_data[89].DATAIN +sink_data[90] => src0_data[90].DATAIN +sink_data[91] => src0_data[91].DATAIN +sink_data[92] => src0_data[92].DATAIN +sink_data[93] => src0_data[93].DATAIN +sink_data[94] => src0_data[94].DATAIN +sink_data[95] => src0_data[95].DATAIN +sink_channel[0] => src0_valid.IN1 +sink_channel[0] => sink_ready.IN0 +sink_channel[1] => src0_channel[0].DATAIN +sink_channel[2] => src0_channel[1].DATAIN +sink_channel[3] => src0_channel[2].DATAIN +sink_channel[4] => src0_channel[3].DATAIN +sink_channel[5] => src0_channel[4].DATAIN +sink_channel[6] => src0_channel[5].DATAIN +sink_channel[7] => src0_channel[6].DATAIN +sink_channel[8] => src0_channel[7].DATAIN +sink_channel[9] => src0_channel[8].DATAIN +sink_channel[10] => src0_channel[9].DATAIN +sink_channel[11] => src0_channel[10].DATAIN +sink_channel[12] => src0_channel[11].DATAIN +sink_channel[13] => src0_channel[12].DATAIN +sink_channel[14] => src0_channel[13].DATAIN +sink_channel[15] => src0_channel[14].DATAIN +sink_channel[16] => src0_channel[15].DATAIN +sink_channel[17] => src0_channel[16].DATAIN +sink_startofpacket => src0_startofpacket.DATAIN +sink_endofpacket => src0_endofpacket.DATAIN +sink_ready <= sink_ready.DB_MAX_OUTPUT_PORT_TYPE +src0_valid <= src0_valid.DB_MAX_OUTPUT_PORT_TYPE +src0_data[0] <= sink_data[0].DB_MAX_OUTPUT_PORT_TYPE +src0_data[1] <= sink_data[1].DB_MAX_OUTPUT_PORT_TYPE +src0_data[2] <= sink_data[2].DB_MAX_OUTPUT_PORT_TYPE +src0_data[3] <= sink_data[3].DB_MAX_OUTPUT_PORT_TYPE +src0_data[4] <= sink_data[4].DB_MAX_OUTPUT_PORT_TYPE +src0_data[5] <= sink_data[5].DB_MAX_OUTPUT_PORT_TYPE +src0_data[6] <= sink_data[6].DB_MAX_OUTPUT_PORT_TYPE +src0_data[7] <= sink_data[7].DB_MAX_OUTPUT_PORT_TYPE +src0_data[8] <= sink_data[8].DB_MAX_OUTPUT_PORT_TYPE +src0_data[9] <= sink_data[9].DB_MAX_OUTPUT_PORT_TYPE +src0_data[10] <= sink_data[10].DB_MAX_OUTPUT_PORT_TYPE +src0_data[11] <= sink_data[11].DB_MAX_OUTPUT_PORT_TYPE +src0_data[12] <= sink_data[12].DB_MAX_OUTPUT_PORT_TYPE +src0_data[13] <= sink_data[13].DB_MAX_OUTPUT_PORT_TYPE +src0_data[14] <= sink_data[14].DB_MAX_OUTPUT_PORT_TYPE +src0_data[15] <= sink_data[15].DB_MAX_OUTPUT_PORT_TYPE +src0_data[16] <= sink_data[16].DB_MAX_OUTPUT_PORT_TYPE +src0_data[17] <= sink_data[17].DB_MAX_OUTPUT_PORT_TYPE +src0_data[18] <= sink_data[18].DB_MAX_OUTPUT_PORT_TYPE +src0_data[19] <= sink_data[19].DB_MAX_OUTPUT_PORT_TYPE +src0_data[20] <= sink_data[20].DB_MAX_OUTPUT_PORT_TYPE +src0_data[21] <= sink_data[21].DB_MAX_OUTPUT_PORT_TYPE +src0_data[22] <= sink_data[22].DB_MAX_OUTPUT_PORT_TYPE +src0_data[23] <= sink_data[23].DB_MAX_OUTPUT_PORT_TYPE +src0_data[24] <= sink_data[24].DB_MAX_OUTPUT_PORT_TYPE +src0_data[25] <= sink_data[25].DB_MAX_OUTPUT_PORT_TYPE +src0_data[26] <= sink_data[26].DB_MAX_OUTPUT_PORT_TYPE +src0_data[27] <= sink_data[27].DB_MAX_OUTPUT_PORT_TYPE +src0_data[28] <= sink_data[28].DB_MAX_OUTPUT_PORT_TYPE +src0_data[29] <= sink_data[29].DB_MAX_OUTPUT_PORT_TYPE +src0_data[30] <= sink_data[30].DB_MAX_OUTPUT_PORT_TYPE +src0_data[31] <= sink_data[31].DB_MAX_OUTPUT_PORT_TYPE +src0_data[32] <= sink_data[32].DB_MAX_OUTPUT_PORT_TYPE +src0_data[33] <= sink_data[33].DB_MAX_OUTPUT_PORT_TYPE +src0_data[34] <= sink_data[34].DB_MAX_OUTPUT_PORT_TYPE +src0_data[35] <= sink_data[35].DB_MAX_OUTPUT_PORT_TYPE +src0_data[36] <= sink_data[36].DB_MAX_OUTPUT_PORT_TYPE +src0_data[37] <= sink_data[37].DB_MAX_OUTPUT_PORT_TYPE +src0_data[38] <= sink_data[38].DB_MAX_OUTPUT_PORT_TYPE +src0_data[39] <= sink_data[39].DB_MAX_OUTPUT_PORT_TYPE +src0_data[40] <= sink_data[40].DB_MAX_OUTPUT_PORT_TYPE +src0_data[41] <= sink_data[41].DB_MAX_OUTPUT_PORT_TYPE +src0_data[42] <= sink_data[42].DB_MAX_OUTPUT_PORT_TYPE +src0_data[43] <= sink_data[43].DB_MAX_OUTPUT_PORT_TYPE +src0_data[44] <= sink_data[44].DB_MAX_OUTPUT_PORT_TYPE +src0_data[45] <= sink_data[45].DB_MAX_OUTPUT_PORT_TYPE +src0_data[46] <= sink_data[46].DB_MAX_OUTPUT_PORT_TYPE +src0_data[47] <= sink_data[47].DB_MAX_OUTPUT_PORT_TYPE +src0_data[48] <= sink_data[48].DB_MAX_OUTPUT_PORT_TYPE +src0_data[49] <= sink_data[49].DB_MAX_OUTPUT_PORT_TYPE +src0_data[50] <= sink_data[50].DB_MAX_OUTPUT_PORT_TYPE +src0_data[51] <= sink_data[51].DB_MAX_OUTPUT_PORT_TYPE +src0_data[52] <= sink_data[52].DB_MAX_OUTPUT_PORT_TYPE +src0_data[53] <= sink_data[53].DB_MAX_OUTPUT_PORT_TYPE +src0_data[54] <= sink_data[54].DB_MAX_OUTPUT_PORT_TYPE +src0_data[55] <= sink_data[55].DB_MAX_OUTPUT_PORT_TYPE +src0_data[56] <= sink_data[56].DB_MAX_OUTPUT_PORT_TYPE +src0_data[57] <= sink_data[57].DB_MAX_OUTPUT_PORT_TYPE +src0_data[58] <= sink_data[58].DB_MAX_OUTPUT_PORT_TYPE +src0_data[59] <= sink_data[59].DB_MAX_OUTPUT_PORT_TYPE +src0_data[60] <= sink_data[60].DB_MAX_OUTPUT_PORT_TYPE +src0_data[61] <= sink_data[61].DB_MAX_OUTPUT_PORT_TYPE +src0_data[62] <= sink_data[62].DB_MAX_OUTPUT_PORT_TYPE +src0_data[63] <= sink_data[63].DB_MAX_OUTPUT_PORT_TYPE +src0_data[64] <= sink_data[64].DB_MAX_OUTPUT_PORT_TYPE +src0_data[65] <= sink_data[65].DB_MAX_OUTPUT_PORT_TYPE +src0_data[66] <= sink_data[66].DB_MAX_OUTPUT_PORT_TYPE +src0_data[67] <= sink_data[67].DB_MAX_OUTPUT_PORT_TYPE +src0_data[68] <= sink_data[68].DB_MAX_OUTPUT_PORT_TYPE +src0_data[69] <= sink_data[69].DB_MAX_OUTPUT_PORT_TYPE +src0_data[70] <= sink_data[70].DB_MAX_OUTPUT_PORT_TYPE +src0_data[71] <= sink_data[71].DB_MAX_OUTPUT_PORT_TYPE +src0_data[72] <= sink_data[72].DB_MAX_OUTPUT_PORT_TYPE +src0_data[73] <= sink_data[73].DB_MAX_OUTPUT_PORT_TYPE +src0_data[74] <= sink_data[74].DB_MAX_OUTPUT_PORT_TYPE +src0_data[75] <= sink_data[75].DB_MAX_OUTPUT_PORT_TYPE +src0_data[76] <= sink_data[76].DB_MAX_OUTPUT_PORT_TYPE +src0_data[77] <= sink_data[77].DB_MAX_OUTPUT_PORT_TYPE +src0_data[78] <= sink_data[78].DB_MAX_OUTPUT_PORT_TYPE +src0_data[79] <= sink_data[79].DB_MAX_OUTPUT_PORT_TYPE +src0_data[80] <= sink_data[80].DB_MAX_OUTPUT_PORT_TYPE +src0_data[81] <= sink_data[81].DB_MAX_OUTPUT_PORT_TYPE +src0_data[82] <= sink_data[82].DB_MAX_OUTPUT_PORT_TYPE +src0_data[83] <= sink_data[83].DB_MAX_OUTPUT_PORT_TYPE +src0_data[84] <= sink_data[84].DB_MAX_OUTPUT_PORT_TYPE +src0_data[85] <= sink_data[85].DB_MAX_OUTPUT_PORT_TYPE +src0_data[86] <= sink_data[86].DB_MAX_OUTPUT_PORT_TYPE +src0_data[87] <= sink_data[87].DB_MAX_OUTPUT_PORT_TYPE +src0_data[88] <= sink_data[88].DB_MAX_OUTPUT_PORT_TYPE +src0_data[89] <= sink_data[89].DB_MAX_OUTPUT_PORT_TYPE +src0_data[90] <= sink_data[90].DB_MAX_OUTPUT_PORT_TYPE +src0_data[91] <= sink_data[91].DB_MAX_OUTPUT_PORT_TYPE +src0_data[92] <= sink_data[92].DB_MAX_OUTPUT_PORT_TYPE +src0_data[93] <= sink_data[93].DB_MAX_OUTPUT_PORT_TYPE +src0_data[94] <= sink_data[94].DB_MAX_OUTPUT_PORT_TYPE +src0_data[95] <= sink_data[95].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[0] <= sink_channel[1].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[1] <= sink_channel[2].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[2] <= sink_channel[3].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[3] <= sink_channel[4].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[4] <= sink_channel[5].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[5] <= sink_channel[6].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[6] <= sink_channel[7].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[7] <= sink_channel[8].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[8] <= sink_channel[9].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[9] <= sink_channel[10].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[10] <= sink_channel[11].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[11] <= sink_channel[12].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[12] <= sink_channel[13].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[13] <= sink_channel[14].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[14] <= sink_channel[15].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[15] <= sink_channel[16].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[16] <= sink_channel[17].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[17] <= +src0_startofpacket <= sink_startofpacket.DB_MAX_OUTPUT_PORT_TYPE +src0_endofpacket <= sink_endofpacket.DB_MAX_OUTPUT_PORT_TYPE +src0_ready => sink_ready.IN1 +clk => ~NO_FANOUT~ +reset => ~NO_FANOUT~ + + +|lights|nios_system:NiosII|nios_system_rsp_xbar_demux_002:rsp_xbar_demux_007 +sink_valid[0] => src0_valid.IN0 +sink_data[0] => src0_data[0].DATAIN +sink_data[1] => src0_data[1].DATAIN +sink_data[2] => src0_data[2].DATAIN +sink_data[3] => src0_data[3].DATAIN +sink_data[4] => src0_data[4].DATAIN +sink_data[5] => src0_data[5].DATAIN +sink_data[6] => src0_data[6].DATAIN +sink_data[7] => src0_data[7].DATAIN +sink_data[8] => src0_data[8].DATAIN +sink_data[9] => src0_data[9].DATAIN +sink_data[10] => src0_data[10].DATAIN +sink_data[11] => src0_data[11].DATAIN +sink_data[12] => src0_data[12].DATAIN +sink_data[13] => src0_data[13].DATAIN +sink_data[14] => src0_data[14].DATAIN +sink_data[15] => src0_data[15].DATAIN +sink_data[16] => src0_data[16].DATAIN +sink_data[17] => src0_data[17].DATAIN +sink_data[18] => src0_data[18].DATAIN +sink_data[19] => src0_data[19].DATAIN +sink_data[20] => src0_data[20].DATAIN +sink_data[21] => src0_data[21].DATAIN +sink_data[22] => src0_data[22].DATAIN +sink_data[23] => src0_data[23].DATAIN +sink_data[24] => src0_data[24].DATAIN +sink_data[25] => src0_data[25].DATAIN +sink_data[26] => src0_data[26].DATAIN +sink_data[27] => src0_data[27].DATAIN +sink_data[28] => src0_data[28].DATAIN +sink_data[29] => src0_data[29].DATAIN +sink_data[30] => src0_data[30].DATAIN +sink_data[31] => src0_data[31].DATAIN +sink_data[32] => src0_data[32].DATAIN +sink_data[33] => src0_data[33].DATAIN +sink_data[34] => src0_data[34].DATAIN +sink_data[35] => src0_data[35].DATAIN +sink_data[36] => src0_data[36].DATAIN +sink_data[37] => src0_data[37].DATAIN +sink_data[38] => src0_data[38].DATAIN +sink_data[39] => src0_data[39].DATAIN +sink_data[40] => src0_data[40].DATAIN +sink_data[41] => src0_data[41].DATAIN +sink_data[42] => src0_data[42].DATAIN +sink_data[43] => src0_data[43].DATAIN +sink_data[44] => src0_data[44].DATAIN +sink_data[45] => src0_data[45].DATAIN +sink_data[46] => src0_data[46].DATAIN +sink_data[47] => src0_data[47].DATAIN +sink_data[48] => src0_data[48].DATAIN +sink_data[49] => src0_data[49].DATAIN +sink_data[50] => src0_data[50].DATAIN +sink_data[51] => src0_data[51].DATAIN +sink_data[52] => src0_data[52].DATAIN +sink_data[53] => src0_data[53].DATAIN +sink_data[54] => src0_data[54].DATAIN +sink_data[55] => src0_data[55].DATAIN +sink_data[56] => src0_data[56].DATAIN +sink_data[57] => src0_data[57].DATAIN +sink_data[58] => src0_data[58].DATAIN +sink_data[59] => src0_data[59].DATAIN +sink_data[60] => src0_data[60].DATAIN +sink_data[61] => src0_data[61].DATAIN +sink_data[62] => src0_data[62].DATAIN +sink_data[63] => src0_data[63].DATAIN +sink_data[64] => src0_data[64].DATAIN +sink_data[65] => src0_data[65].DATAIN +sink_data[66] => src0_data[66].DATAIN +sink_data[67] => src0_data[67].DATAIN +sink_data[68] => src0_data[68].DATAIN +sink_data[69] => src0_data[69].DATAIN +sink_data[70] => src0_data[70].DATAIN +sink_data[71] => src0_data[71].DATAIN +sink_data[72] => src0_data[72].DATAIN +sink_data[73] => src0_data[73].DATAIN +sink_data[74] => src0_data[74].DATAIN +sink_data[75] => src0_data[75].DATAIN +sink_data[76] => src0_data[76].DATAIN +sink_data[77] => src0_data[77].DATAIN +sink_data[78] => src0_data[78].DATAIN +sink_data[79] => src0_data[79].DATAIN +sink_data[80] => src0_data[80].DATAIN +sink_data[81] => src0_data[81].DATAIN +sink_data[82] => src0_data[82].DATAIN +sink_data[83] => src0_data[83].DATAIN +sink_data[84] => src0_data[84].DATAIN +sink_data[85] => src0_data[85].DATAIN +sink_data[86] => src0_data[86].DATAIN +sink_data[87] => src0_data[87].DATAIN +sink_data[88] => src0_data[88].DATAIN +sink_data[89] => src0_data[89].DATAIN +sink_data[90] => src0_data[90].DATAIN +sink_data[91] => src0_data[91].DATAIN +sink_data[92] => src0_data[92].DATAIN +sink_data[93] => src0_data[93].DATAIN +sink_data[94] => src0_data[94].DATAIN +sink_data[95] => src0_data[95].DATAIN +sink_channel[0] => src0_valid.IN1 +sink_channel[0] => sink_ready.IN0 +sink_channel[1] => src0_channel[0].DATAIN +sink_channel[2] => src0_channel[1].DATAIN +sink_channel[3] => src0_channel[2].DATAIN +sink_channel[4] => src0_channel[3].DATAIN +sink_channel[5] => src0_channel[4].DATAIN +sink_channel[6] => src0_channel[5].DATAIN +sink_channel[7] => src0_channel[6].DATAIN +sink_channel[8] => src0_channel[7].DATAIN +sink_channel[9] => src0_channel[8].DATAIN +sink_channel[10] => src0_channel[9].DATAIN +sink_channel[11] => src0_channel[10].DATAIN +sink_channel[12] => src0_channel[11].DATAIN +sink_channel[13] => src0_channel[12].DATAIN +sink_channel[14] => src0_channel[13].DATAIN +sink_channel[15] => src0_channel[14].DATAIN +sink_channel[16] => src0_channel[15].DATAIN +sink_channel[17] => src0_channel[16].DATAIN +sink_startofpacket => src0_startofpacket.DATAIN +sink_endofpacket => src0_endofpacket.DATAIN +sink_ready <= sink_ready.DB_MAX_OUTPUT_PORT_TYPE +src0_valid <= src0_valid.DB_MAX_OUTPUT_PORT_TYPE +src0_data[0] <= sink_data[0].DB_MAX_OUTPUT_PORT_TYPE +src0_data[1] <= sink_data[1].DB_MAX_OUTPUT_PORT_TYPE +src0_data[2] <= sink_data[2].DB_MAX_OUTPUT_PORT_TYPE +src0_data[3] <= sink_data[3].DB_MAX_OUTPUT_PORT_TYPE +src0_data[4] <= sink_data[4].DB_MAX_OUTPUT_PORT_TYPE +src0_data[5] <= sink_data[5].DB_MAX_OUTPUT_PORT_TYPE +src0_data[6] <= sink_data[6].DB_MAX_OUTPUT_PORT_TYPE +src0_data[7] <= sink_data[7].DB_MAX_OUTPUT_PORT_TYPE +src0_data[8] <= sink_data[8].DB_MAX_OUTPUT_PORT_TYPE +src0_data[9] <= sink_data[9].DB_MAX_OUTPUT_PORT_TYPE +src0_data[10] <= sink_data[10].DB_MAX_OUTPUT_PORT_TYPE +src0_data[11] <= sink_data[11].DB_MAX_OUTPUT_PORT_TYPE +src0_data[12] <= sink_data[12].DB_MAX_OUTPUT_PORT_TYPE +src0_data[13] <= sink_data[13].DB_MAX_OUTPUT_PORT_TYPE +src0_data[14] <= sink_data[14].DB_MAX_OUTPUT_PORT_TYPE +src0_data[15] <= sink_data[15].DB_MAX_OUTPUT_PORT_TYPE +src0_data[16] <= sink_data[16].DB_MAX_OUTPUT_PORT_TYPE +src0_data[17] <= sink_data[17].DB_MAX_OUTPUT_PORT_TYPE +src0_data[18] <= sink_data[18].DB_MAX_OUTPUT_PORT_TYPE +src0_data[19] <= sink_data[19].DB_MAX_OUTPUT_PORT_TYPE +src0_data[20] <= sink_data[20].DB_MAX_OUTPUT_PORT_TYPE +src0_data[21] <= sink_data[21].DB_MAX_OUTPUT_PORT_TYPE +src0_data[22] <= sink_data[22].DB_MAX_OUTPUT_PORT_TYPE +src0_data[23] <= sink_data[23].DB_MAX_OUTPUT_PORT_TYPE +src0_data[24] <= sink_data[24].DB_MAX_OUTPUT_PORT_TYPE +src0_data[25] <= sink_data[25].DB_MAX_OUTPUT_PORT_TYPE +src0_data[26] <= sink_data[26].DB_MAX_OUTPUT_PORT_TYPE +src0_data[27] <= sink_data[27].DB_MAX_OUTPUT_PORT_TYPE +src0_data[28] <= sink_data[28].DB_MAX_OUTPUT_PORT_TYPE +src0_data[29] <= sink_data[29].DB_MAX_OUTPUT_PORT_TYPE +src0_data[30] <= sink_data[30].DB_MAX_OUTPUT_PORT_TYPE +src0_data[31] <= sink_data[31].DB_MAX_OUTPUT_PORT_TYPE +src0_data[32] <= sink_data[32].DB_MAX_OUTPUT_PORT_TYPE +src0_data[33] <= sink_data[33].DB_MAX_OUTPUT_PORT_TYPE +src0_data[34] <= sink_data[34].DB_MAX_OUTPUT_PORT_TYPE +src0_data[35] <= sink_data[35].DB_MAX_OUTPUT_PORT_TYPE +src0_data[36] <= sink_data[36].DB_MAX_OUTPUT_PORT_TYPE +src0_data[37] <= sink_data[37].DB_MAX_OUTPUT_PORT_TYPE +src0_data[38] <= sink_data[38].DB_MAX_OUTPUT_PORT_TYPE +src0_data[39] <= sink_data[39].DB_MAX_OUTPUT_PORT_TYPE +src0_data[40] <= sink_data[40].DB_MAX_OUTPUT_PORT_TYPE +src0_data[41] <= sink_data[41].DB_MAX_OUTPUT_PORT_TYPE +src0_data[42] <= sink_data[42].DB_MAX_OUTPUT_PORT_TYPE +src0_data[43] <= sink_data[43].DB_MAX_OUTPUT_PORT_TYPE +src0_data[44] <= sink_data[44].DB_MAX_OUTPUT_PORT_TYPE +src0_data[45] <= sink_data[45].DB_MAX_OUTPUT_PORT_TYPE +src0_data[46] <= sink_data[46].DB_MAX_OUTPUT_PORT_TYPE +src0_data[47] <= sink_data[47].DB_MAX_OUTPUT_PORT_TYPE +src0_data[48] <= sink_data[48].DB_MAX_OUTPUT_PORT_TYPE +src0_data[49] <= sink_data[49].DB_MAX_OUTPUT_PORT_TYPE +src0_data[50] <= sink_data[50].DB_MAX_OUTPUT_PORT_TYPE +src0_data[51] <= sink_data[51].DB_MAX_OUTPUT_PORT_TYPE +src0_data[52] <= sink_data[52].DB_MAX_OUTPUT_PORT_TYPE +src0_data[53] <= sink_data[53].DB_MAX_OUTPUT_PORT_TYPE +src0_data[54] <= sink_data[54].DB_MAX_OUTPUT_PORT_TYPE +src0_data[55] <= sink_data[55].DB_MAX_OUTPUT_PORT_TYPE +src0_data[56] <= sink_data[56].DB_MAX_OUTPUT_PORT_TYPE +src0_data[57] <= sink_data[57].DB_MAX_OUTPUT_PORT_TYPE +src0_data[58] <= sink_data[58].DB_MAX_OUTPUT_PORT_TYPE +src0_data[59] <= sink_data[59].DB_MAX_OUTPUT_PORT_TYPE +src0_data[60] <= sink_data[60].DB_MAX_OUTPUT_PORT_TYPE +src0_data[61] <= sink_data[61].DB_MAX_OUTPUT_PORT_TYPE +src0_data[62] <= sink_data[62].DB_MAX_OUTPUT_PORT_TYPE +src0_data[63] <= sink_data[63].DB_MAX_OUTPUT_PORT_TYPE +src0_data[64] <= sink_data[64].DB_MAX_OUTPUT_PORT_TYPE +src0_data[65] <= sink_data[65].DB_MAX_OUTPUT_PORT_TYPE +src0_data[66] <= sink_data[66].DB_MAX_OUTPUT_PORT_TYPE +src0_data[67] <= sink_data[67].DB_MAX_OUTPUT_PORT_TYPE +src0_data[68] <= sink_data[68].DB_MAX_OUTPUT_PORT_TYPE +src0_data[69] <= sink_data[69].DB_MAX_OUTPUT_PORT_TYPE +src0_data[70] <= sink_data[70].DB_MAX_OUTPUT_PORT_TYPE +src0_data[71] <= sink_data[71].DB_MAX_OUTPUT_PORT_TYPE +src0_data[72] <= sink_data[72].DB_MAX_OUTPUT_PORT_TYPE +src0_data[73] <= sink_data[73].DB_MAX_OUTPUT_PORT_TYPE +src0_data[74] <= sink_data[74].DB_MAX_OUTPUT_PORT_TYPE +src0_data[75] <= sink_data[75].DB_MAX_OUTPUT_PORT_TYPE +src0_data[76] <= sink_data[76].DB_MAX_OUTPUT_PORT_TYPE +src0_data[77] <= sink_data[77].DB_MAX_OUTPUT_PORT_TYPE +src0_data[78] <= sink_data[78].DB_MAX_OUTPUT_PORT_TYPE +src0_data[79] <= sink_data[79].DB_MAX_OUTPUT_PORT_TYPE +src0_data[80] <= sink_data[80].DB_MAX_OUTPUT_PORT_TYPE +src0_data[81] <= sink_data[81].DB_MAX_OUTPUT_PORT_TYPE +src0_data[82] <= sink_data[82].DB_MAX_OUTPUT_PORT_TYPE +src0_data[83] <= sink_data[83].DB_MAX_OUTPUT_PORT_TYPE +src0_data[84] <= sink_data[84].DB_MAX_OUTPUT_PORT_TYPE +src0_data[85] <= sink_data[85].DB_MAX_OUTPUT_PORT_TYPE +src0_data[86] <= sink_data[86].DB_MAX_OUTPUT_PORT_TYPE +src0_data[87] <= sink_data[87].DB_MAX_OUTPUT_PORT_TYPE +src0_data[88] <= sink_data[88].DB_MAX_OUTPUT_PORT_TYPE +src0_data[89] <= sink_data[89].DB_MAX_OUTPUT_PORT_TYPE +src0_data[90] <= sink_data[90].DB_MAX_OUTPUT_PORT_TYPE +src0_data[91] <= sink_data[91].DB_MAX_OUTPUT_PORT_TYPE +src0_data[92] <= sink_data[92].DB_MAX_OUTPUT_PORT_TYPE +src0_data[93] <= sink_data[93].DB_MAX_OUTPUT_PORT_TYPE +src0_data[94] <= sink_data[94].DB_MAX_OUTPUT_PORT_TYPE +src0_data[95] <= sink_data[95].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[0] <= sink_channel[1].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[1] <= sink_channel[2].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[2] <= sink_channel[3].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[3] <= sink_channel[4].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[4] <= sink_channel[5].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[5] <= sink_channel[6].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[6] <= sink_channel[7].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[7] <= sink_channel[8].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[8] <= sink_channel[9].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[9] <= sink_channel[10].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[10] <= sink_channel[11].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[11] <= sink_channel[12].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[12] <= sink_channel[13].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[13] <= sink_channel[14].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[14] <= sink_channel[15].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[15] <= sink_channel[16].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[16] <= sink_channel[17].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[17] <= +src0_startofpacket <= sink_startofpacket.DB_MAX_OUTPUT_PORT_TYPE +src0_endofpacket <= sink_endofpacket.DB_MAX_OUTPUT_PORT_TYPE +src0_ready => sink_ready.IN1 +clk => ~NO_FANOUT~ +reset => ~NO_FANOUT~ + + +|lights|nios_system:NiosII|nios_system_rsp_xbar_demux_002:rsp_xbar_demux_008 +sink_valid[0] => src0_valid.IN0 +sink_data[0] => src0_data[0].DATAIN +sink_data[1] => src0_data[1].DATAIN +sink_data[2] => src0_data[2].DATAIN +sink_data[3] => src0_data[3].DATAIN +sink_data[4] => src0_data[4].DATAIN +sink_data[5] => src0_data[5].DATAIN +sink_data[6] => src0_data[6].DATAIN +sink_data[7] => src0_data[7].DATAIN +sink_data[8] => src0_data[8].DATAIN +sink_data[9] => src0_data[9].DATAIN +sink_data[10] => src0_data[10].DATAIN +sink_data[11] => src0_data[11].DATAIN +sink_data[12] => src0_data[12].DATAIN +sink_data[13] => src0_data[13].DATAIN +sink_data[14] => src0_data[14].DATAIN +sink_data[15] => src0_data[15].DATAIN +sink_data[16] => src0_data[16].DATAIN +sink_data[17] => src0_data[17].DATAIN +sink_data[18] => src0_data[18].DATAIN +sink_data[19] => src0_data[19].DATAIN +sink_data[20] => src0_data[20].DATAIN +sink_data[21] => src0_data[21].DATAIN +sink_data[22] => src0_data[22].DATAIN +sink_data[23] => src0_data[23].DATAIN +sink_data[24] => src0_data[24].DATAIN +sink_data[25] => src0_data[25].DATAIN +sink_data[26] => src0_data[26].DATAIN +sink_data[27] => src0_data[27].DATAIN +sink_data[28] => src0_data[28].DATAIN +sink_data[29] => src0_data[29].DATAIN +sink_data[30] => src0_data[30].DATAIN +sink_data[31] => src0_data[31].DATAIN +sink_data[32] => src0_data[32].DATAIN +sink_data[33] => src0_data[33].DATAIN +sink_data[34] => src0_data[34].DATAIN +sink_data[35] => src0_data[35].DATAIN +sink_data[36] => src0_data[36].DATAIN +sink_data[37] => src0_data[37].DATAIN +sink_data[38] => src0_data[38].DATAIN +sink_data[39] => src0_data[39].DATAIN +sink_data[40] => src0_data[40].DATAIN +sink_data[41] => src0_data[41].DATAIN +sink_data[42] => src0_data[42].DATAIN +sink_data[43] => src0_data[43].DATAIN +sink_data[44] => src0_data[44].DATAIN +sink_data[45] => src0_data[45].DATAIN +sink_data[46] => src0_data[46].DATAIN +sink_data[47] => src0_data[47].DATAIN +sink_data[48] => src0_data[48].DATAIN +sink_data[49] => src0_data[49].DATAIN +sink_data[50] => src0_data[50].DATAIN +sink_data[51] => src0_data[51].DATAIN +sink_data[52] => src0_data[52].DATAIN +sink_data[53] => src0_data[53].DATAIN +sink_data[54] => src0_data[54].DATAIN +sink_data[55] => src0_data[55].DATAIN +sink_data[56] => src0_data[56].DATAIN +sink_data[57] => src0_data[57].DATAIN +sink_data[58] => src0_data[58].DATAIN +sink_data[59] => src0_data[59].DATAIN +sink_data[60] => src0_data[60].DATAIN +sink_data[61] => src0_data[61].DATAIN +sink_data[62] => src0_data[62].DATAIN +sink_data[63] => src0_data[63].DATAIN +sink_data[64] => src0_data[64].DATAIN +sink_data[65] => src0_data[65].DATAIN +sink_data[66] => src0_data[66].DATAIN +sink_data[67] => src0_data[67].DATAIN +sink_data[68] => src0_data[68].DATAIN +sink_data[69] => src0_data[69].DATAIN +sink_data[70] => src0_data[70].DATAIN +sink_data[71] => src0_data[71].DATAIN +sink_data[72] => src0_data[72].DATAIN +sink_data[73] => src0_data[73].DATAIN +sink_data[74] => src0_data[74].DATAIN +sink_data[75] => src0_data[75].DATAIN +sink_data[76] => src0_data[76].DATAIN +sink_data[77] => src0_data[77].DATAIN +sink_data[78] => src0_data[78].DATAIN +sink_data[79] => src0_data[79].DATAIN +sink_data[80] => src0_data[80].DATAIN +sink_data[81] => src0_data[81].DATAIN +sink_data[82] => src0_data[82].DATAIN +sink_data[83] => src0_data[83].DATAIN +sink_data[84] => src0_data[84].DATAIN +sink_data[85] => src0_data[85].DATAIN +sink_data[86] => src0_data[86].DATAIN +sink_data[87] => src0_data[87].DATAIN +sink_data[88] => src0_data[88].DATAIN +sink_data[89] => src0_data[89].DATAIN +sink_data[90] => src0_data[90].DATAIN +sink_data[91] => src0_data[91].DATAIN +sink_data[92] => src0_data[92].DATAIN +sink_data[93] => src0_data[93].DATAIN +sink_data[94] => src0_data[94].DATAIN +sink_data[95] => src0_data[95].DATAIN +sink_channel[0] => src0_valid.IN1 +sink_channel[0] => sink_ready.IN0 +sink_channel[1] => src0_channel[0].DATAIN +sink_channel[2] => src0_channel[1].DATAIN +sink_channel[3] => src0_channel[2].DATAIN +sink_channel[4] => src0_channel[3].DATAIN +sink_channel[5] => src0_channel[4].DATAIN +sink_channel[6] => src0_channel[5].DATAIN +sink_channel[7] => src0_channel[6].DATAIN +sink_channel[8] => src0_channel[7].DATAIN +sink_channel[9] => src0_channel[8].DATAIN +sink_channel[10] => src0_channel[9].DATAIN +sink_channel[11] => src0_channel[10].DATAIN +sink_channel[12] => src0_channel[11].DATAIN +sink_channel[13] => src0_channel[12].DATAIN +sink_channel[14] => src0_channel[13].DATAIN +sink_channel[15] => src0_channel[14].DATAIN +sink_channel[16] => src0_channel[15].DATAIN +sink_channel[17] => src0_channel[16].DATAIN +sink_startofpacket => src0_startofpacket.DATAIN +sink_endofpacket => src0_endofpacket.DATAIN +sink_ready <= sink_ready.DB_MAX_OUTPUT_PORT_TYPE +src0_valid <= src0_valid.DB_MAX_OUTPUT_PORT_TYPE +src0_data[0] <= sink_data[0].DB_MAX_OUTPUT_PORT_TYPE +src0_data[1] <= sink_data[1].DB_MAX_OUTPUT_PORT_TYPE +src0_data[2] <= sink_data[2].DB_MAX_OUTPUT_PORT_TYPE +src0_data[3] <= sink_data[3].DB_MAX_OUTPUT_PORT_TYPE +src0_data[4] <= sink_data[4].DB_MAX_OUTPUT_PORT_TYPE +src0_data[5] <= sink_data[5].DB_MAX_OUTPUT_PORT_TYPE +src0_data[6] <= sink_data[6].DB_MAX_OUTPUT_PORT_TYPE +src0_data[7] <= sink_data[7].DB_MAX_OUTPUT_PORT_TYPE +src0_data[8] <= sink_data[8].DB_MAX_OUTPUT_PORT_TYPE +src0_data[9] <= sink_data[9].DB_MAX_OUTPUT_PORT_TYPE +src0_data[10] <= sink_data[10].DB_MAX_OUTPUT_PORT_TYPE +src0_data[11] <= sink_data[11].DB_MAX_OUTPUT_PORT_TYPE +src0_data[12] <= sink_data[12].DB_MAX_OUTPUT_PORT_TYPE +src0_data[13] <= sink_data[13].DB_MAX_OUTPUT_PORT_TYPE +src0_data[14] <= sink_data[14].DB_MAX_OUTPUT_PORT_TYPE +src0_data[15] <= sink_data[15].DB_MAX_OUTPUT_PORT_TYPE +src0_data[16] <= sink_data[16].DB_MAX_OUTPUT_PORT_TYPE +src0_data[17] <= sink_data[17].DB_MAX_OUTPUT_PORT_TYPE +src0_data[18] <= sink_data[18].DB_MAX_OUTPUT_PORT_TYPE +src0_data[19] <= sink_data[19].DB_MAX_OUTPUT_PORT_TYPE +src0_data[20] <= sink_data[20].DB_MAX_OUTPUT_PORT_TYPE +src0_data[21] <= sink_data[21].DB_MAX_OUTPUT_PORT_TYPE +src0_data[22] <= sink_data[22].DB_MAX_OUTPUT_PORT_TYPE +src0_data[23] <= sink_data[23].DB_MAX_OUTPUT_PORT_TYPE +src0_data[24] <= sink_data[24].DB_MAX_OUTPUT_PORT_TYPE +src0_data[25] <= sink_data[25].DB_MAX_OUTPUT_PORT_TYPE +src0_data[26] <= sink_data[26].DB_MAX_OUTPUT_PORT_TYPE +src0_data[27] <= sink_data[27].DB_MAX_OUTPUT_PORT_TYPE +src0_data[28] <= sink_data[28].DB_MAX_OUTPUT_PORT_TYPE +src0_data[29] <= sink_data[29].DB_MAX_OUTPUT_PORT_TYPE +src0_data[30] <= sink_data[30].DB_MAX_OUTPUT_PORT_TYPE +src0_data[31] <= sink_data[31].DB_MAX_OUTPUT_PORT_TYPE +src0_data[32] <= sink_data[32].DB_MAX_OUTPUT_PORT_TYPE +src0_data[33] <= sink_data[33].DB_MAX_OUTPUT_PORT_TYPE +src0_data[34] <= sink_data[34].DB_MAX_OUTPUT_PORT_TYPE +src0_data[35] <= sink_data[35].DB_MAX_OUTPUT_PORT_TYPE +src0_data[36] <= sink_data[36].DB_MAX_OUTPUT_PORT_TYPE +src0_data[37] <= sink_data[37].DB_MAX_OUTPUT_PORT_TYPE +src0_data[38] <= sink_data[38].DB_MAX_OUTPUT_PORT_TYPE +src0_data[39] <= sink_data[39].DB_MAX_OUTPUT_PORT_TYPE +src0_data[40] <= sink_data[40].DB_MAX_OUTPUT_PORT_TYPE +src0_data[41] <= sink_data[41].DB_MAX_OUTPUT_PORT_TYPE +src0_data[42] <= sink_data[42].DB_MAX_OUTPUT_PORT_TYPE +src0_data[43] <= sink_data[43].DB_MAX_OUTPUT_PORT_TYPE +src0_data[44] <= sink_data[44].DB_MAX_OUTPUT_PORT_TYPE +src0_data[45] <= sink_data[45].DB_MAX_OUTPUT_PORT_TYPE +src0_data[46] <= sink_data[46].DB_MAX_OUTPUT_PORT_TYPE +src0_data[47] <= sink_data[47].DB_MAX_OUTPUT_PORT_TYPE +src0_data[48] <= sink_data[48].DB_MAX_OUTPUT_PORT_TYPE +src0_data[49] <= sink_data[49].DB_MAX_OUTPUT_PORT_TYPE +src0_data[50] <= sink_data[50].DB_MAX_OUTPUT_PORT_TYPE +src0_data[51] <= sink_data[51].DB_MAX_OUTPUT_PORT_TYPE +src0_data[52] <= sink_data[52].DB_MAX_OUTPUT_PORT_TYPE +src0_data[53] <= sink_data[53].DB_MAX_OUTPUT_PORT_TYPE +src0_data[54] <= sink_data[54].DB_MAX_OUTPUT_PORT_TYPE +src0_data[55] <= sink_data[55].DB_MAX_OUTPUT_PORT_TYPE +src0_data[56] <= sink_data[56].DB_MAX_OUTPUT_PORT_TYPE +src0_data[57] <= sink_data[57].DB_MAX_OUTPUT_PORT_TYPE +src0_data[58] <= sink_data[58].DB_MAX_OUTPUT_PORT_TYPE +src0_data[59] <= sink_data[59].DB_MAX_OUTPUT_PORT_TYPE +src0_data[60] <= sink_data[60].DB_MAX_OUTPUT_PORT_TYPE +src0_data[61] <= sink_data[61].DB_MAX_OUTPUT_PORT_TYPE +src0_data[62] <= sink_data[62].DB_MAX_OUTPUT_PORT_TYPE +src0_data[63] <= sink_data[63].DB_MAX_OUTPUT_PORT_TYPE +src0_data[64] <= sink_data[64].DB_MAX_OUTPUT_PORT_TYPE +src0_data[65] <= sink_data[65].DB_MAX_OUTPUT_PORT_TYPE +src0_data[66] <= sink_data[66].DB_MAX_OUTPUT_PORT_TYPE +src0_data[67] <= sink_data[67].DB_MAX_OUTPUT_PORT_TYPE +src0_data[68] <= sink_data[68].DB_MAX_OUTPUT_PORT_TYPE +src0_data[69] <= sink_data[69].DB_MAX_OUTPUT_PORT_TYPE +src0_data[70] <= sink_data[70].DB_MAX_OUTPUT_PORT_TYPE +src0_data[71] <= sink_data[71].DB_MAX_OUTPUT_PORT_TYPE +src0_data[72] <= sink_data[72].DB_MAX_OUTPUT_PORT_TYPE +src0_data[73] <= sink_data[73].DB_MAX_OUTPUT_PORT_TYPE +src0_data[74] <= sink_data[74].DB_MAX_OUTPUT_PORT_TYPE +src0_data[75] <= sink_data[75].DB_MAX_OUTPUT_PORT_TYPE +src0_data[76] <= sink_data[76].DB_MAX_OUTPUT_PORT_TYPE +src0_data[77] <= sink_data[77].DB_MAX_OUTPUT_PORT_TYPE +src0_data[78] <= sink_data[78].DB_MAX_OUTPUT_PORT_TYPE +src0_data[79] <= sink_data[79].DB_MAX_OUTPUT_PORT_TYPE +src0_data[80] <= sink_data[80].DB_MAX_OUTPUT_PORT_TYPE +src0_data[81] <= sink_data[81].DB_MAX_OUTPUT_PORT_TYPE +src0_data[82] <= sink_data[82].DB_MAX_OUTPUT_PORT_TYPE +src0_data[83] <= sink_data[83].DB_MAX_OUTPUT_PORT_TYPE +src0_data[84] <= sink_data[84].DB_MAX_OUTPUT_PORT_TYPE +src0_data[85] <= sink_data[85].DB_MAX_OUTPUT_PORT_TYPE +src0_data[86] <= sink_data[86].DB_MAX_OUTPUT_PORT_TYPE +src0_data[87] <= sink_data[87].DB_MAX_OUTPUT_PORT_TYPE +src0_data[88] <= sink_data[88].DB_MAX_OUTPUT_PORT_TYPE +src0_data[89] <= sink_data[89].DB_MAX_OUTPUT_PORT_TYPE +src0_data[90] <= sink_data[90].DB_MAX_OUTPUT_PORT_TYPE +src0_data[91] <= sink_data[91].DB_MAX_OUTPUT_PORT_TYPE +src0_data[92] <= sink_data[92].DB_MAX_OUTPUT_PORT_TYPE +src0_data[93] <= sink_data[93].DB_MAX_OUTPUT_PORT_TYPE +src0_data[94] <= sink_data[94].DB_MAX_OUTPUT_PORT_TYPE +src0_data[95] <= sink_data[95].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[0] <= sink_channel[1].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[1] <= sink_channel[2].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[2] <= sink_channel[3].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[3] <= sink_channel[4].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[4] <= sink_channel[5].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[5] <= sink_channel[6].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[6] <= sink_channel[7].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[7] <= sink_channel[8].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[8] <= sink_channel[9].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[9] <= sink_channel[10].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[10] <= sink_channel[11].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[11] <= sink_channel[12].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[12] <= sink_channel[13].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[13] <= sink_channel[14].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[14] <= sink_channel[15].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[15] <= sink_channel[16].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[16] <= sink_channel[17].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[17] <= +src0_startofpacket <= sink_startofpacket.DB_MAX_OUTPUT_PORT_TYPE +src0_endofpacket <= sink_endofpacket.DB_MAX_OUTPUT_PORT_TYPE +src0_ready => sink_ready.IN1 +clk => ~NO_FANOUT~ +reset => ~NO_FANOUT~ + + +|lights|nios_system:NiosII|nios_system_rsp_xbar_demux_002:rsp_xbar_demux_009 +sink_valid[0] => src0_valid.IN0 +sink_data[0] => src0_data[0].DATAIN +sink_data[1] => src0_data[1].DATAIN +sink_data[2] => src0_data[2].DATAIN +sink_data[3] => src0_data[3].DATAIN +sink_data[4] => src0_data[4].DATAIN +sink_data[5] => src0_data[5].DATAIN +sink_data[6] => src0_data[6].DATAIN +sink_data[7] => src0_data[7].DATAIN +sink_data[8] => src0_data[8].DATAIN +sink_data[9] => src0_data[9].DATAIN +sink_data[10] => src0_data[10].DATAIN +sink_data[11] => src0_data[11].DATAIN +sink_data[12] => src0_data[12].DATAIN +sink_data[13] => src0_data[13].DATAIN +sink_data[14] => src0_data[14].DATAIN +sink_data[15] => src0_data[15].DATAIN +sink_data[16] => src0_data[16].DATAIN +sink_data[17] => src0_data[17].DATAIN +sink_data[18] => src0_data[18].DATAIN +sink_data[19] => src0_data[19].DATAIN +sink_data[20] => src0_data[20].DATAIN +sink_data[21] => src0_data[21].DATAIN +sink_data[22] => src0_data[22].DATAIN +sink_data[23] => src0_data[23].DATAIN +sink_data[24] => src0_data[24].DATAIN +sink_data[25] => src0_data[25].DATAIN +sink_data[26] => src0_data[26].DATAIN +sink_data[27] => src0_data[27].DATAIN +sink_data[28] => src0_data[28].DATAIN +sink_data[29] => src0_data[29].DATAIN +sink_data[30] => src0_data[30].DATAIN +sink_data[31] => src0_data[31].DATAIN +sink_data[32] => src0_data[32].DATAIN +sink_data[33] => src0_data[33].DATAIN +sink_data[34] => src0_data[34].DATAIN +sink_data[35] => src0_data[35].DATAIN +sink_data[36] => src0_data[36].DATAIN +sink_data[37] => src0_data[37].DATAIN +sink_data[38] => src0_data[38].DATAIN +sink_data[39] => src0_data[39].DATAIN +sink_data[40] => src0_data[40].DATAIN +sink_data[41] => src0_data[41].DATAIN +sink_data[42] => src0_data[42].DATAIN +sink_data[43] => src0_data[43].DATAIN +sink_data[44] => src0_data[44].DATAIN +sink_data[45] => src0_data[45].DATAIN +sink_data[46] => src0_data[46].DATAIN +sink_data[47] => src0_data[47].DATAIN +sink_data[48] => src0_data[48].DATAIN +sink_data[49] => src0_data[49].DATAIN +sink_data[50] => src0_data[50].DATAIN +sink_data[51] => src0_data[51].DATAIN +sink_data[52] => src0_data[52].DATAIN +sink_data[53] => src0_data[53].DATAIN +sink_data[54] => src0_data[54].DATAIN +sink_data[55] => src0_data[55].DATAIN +sink_data[56] => src0_data[56].DATAIN +sink_data[57] => src0_data[57].DATAIN +sink_data[58] => src0_data[58].DATAIN +sink_data[59] => src0_data[59].DATAIN +sink_data[60] => src0_data[60].DATAIN +sink_data[61] => src0_data[61].DATAIN +sink_data[62] => src0_data[62].DATAIN +sink_data[63] => src0_data[63].DATAIN +sink_data[64] => src0_data[64].DATAIN +sink_data[65] => src0_data[65].DATAIN +sink_data[66] => src0_data[66].DATAIN +sink_data[67] => src0_data[67].DATAIN +sink_data[68] => src0_data[68].DATAIN +sink_data[69] => src0_data[69].DATAIN +sink_data[70] => src0_data[70].DATAIN +sink_data[71] => src0_data[71].DATAIN +sink_data[72] => src0_data[72].DATAIN +sink_data[73] => src0_data[73].DATAIN +sink_data[74] => src0_data[74].DATAIN +sink_data[75] => src0_data[75].DATAIN +sink_data[76] => src0_data[76].DATAIN +sink_data[77] => src0_data[77].DATAIN +sink_data[78] => src0_data[78].DATAIN +sink_data[79] => src0_data[79].DATAIN +sink_data[80] => src0_data[80].DATAIN +sink_data[81] => src0_data[81].DATAIN +sink_data[82] => src0_data[82].DATAIN +sink_data[83] => src0_data[83].DATAIN +sink_data[84] => src0_data[84].DATAIN +sink_data[85] => src0_data[85].DATAIN +sink_data[86] => src0_data[86].DATAIN +sink_data[87] => src0_data[87].DATAIN +sink_data[88] => src0_data[88].DATAIN +sink_data[89] => src0_data[89].DATAIN +sink_data[90] => src0_data[90].DATAIN +sink_data[91] => src0_data[91].DATAIN +sink_data[92] => src0_data[92].DATAIN +sink_data[93] => src0_data[93].DATAIN +sink_data[94] => src0_data[94].DATAIN +sink_data[95] => src0_data[95].DATAIN +sink_channel[0] => src0_valid.IN1 +sink_channel[0] => sink_ready.IN0 +sink_channel[1] => src0_channel[0].DATAIN +sink_channel[2] => src0_channel[1].DATAIN +sink_channel[3] => src0_channel[2].DATAIN +sink_channel[4] => src0_channel[3].DATAIN +sink_channel[5] => src0_channel[4].DATAIN +sink_channel[6] => src0_channel[5].DATAIN +sink_channel[7] => src0_channel[6].DATAIN +sink_channel[8] => src0_channel[7].DATAIN +sink_channel[9] => src0_channel[8].DATAIN +sink_channel[10] => src0_channel[9].DATAIN +sink_channel[11] => src0_channel[10].DATAIN +sink_channel[12] => src0_channel[11].DATAIN +sink_channel[13] => src0_channel[12].DATAIN +sink_channel[14] => src0_channel[13].DATAIN +sink_channel[15] => src0_channel[14].DATAIN +sink_channel[16] => src0_channel[15].DATAIN +sink_channel[17] => src0_channel[16].DATAIN +sink_startofpacket => src0_startofpacket.DATAIN +sink_endofpacket => src0_endofpacket.DATAIN +sink_ready <= sink_ready.DB_MAX_OUTPUT_PORT_TYPE +src0_valid <= src0_valid.DB_MAX_OUTPUT_PORT_TYPE +src0_data[0] <= sink_data[0].DB_MAX_OUTPUT_PORT_TYPE +src0_data[1] <= sink_data[1].DB_MAX_OUTPUT_PORT_TYPE +src0_data[2] <= sink_data[2].DB_MAX_OUTPUT_PORT_TYPE +src0_data[3] <= sink_data[3].DB_MAX_OUTPUT_PORT_TYPE +src0_data[4] <= sink_data[4].DB_MAX_OUTPUT_PORT_TYPE +src0_data[5] <= sink_data[5].DB_MAX_OUTPUT_PORT_TYPE +src0_data[6] <= sink_data[6].DB_MAX_OUTPUT_PORT_TYPE +src0_data[7] <= sink_data[7].DB_MAX_OUTPUT_PORT_TYPE +src0_data[8] <= sink_data[8].DB_MAX_OUTPUT_PORT_TYPE +src0_data[9] <= sink_data[9].DB_MAX_OUTPUT_PORT_TYPE +src0_data[10] <= sink_data[10].DB_MAX_OUTPUT_PORT_TYPE +src0_data[11] <= sink_data[11].DB_MAX_OUTPUT_PORT_TYPE +src0_data[12] <= sink_data[12].DB_MAX_OUTPUT_PORT_TYPE +src0_data[13] <= sink_data[13].DB_MAX_OUTPUT_PORT_TYPE +src0_data[14] <= sink_data[14].DB_MAX_OUTPUT_PORT_TYPE +src0_data[15] <= sink_data[15].DB_MAX_OUTPUT_PORT_TYPE +src0_data[16] <= sink_data[16].DB_MAX_OUTPUT_PORT_TYPE +src0_data[17] <= sink_data[17].DB_MAX_OUTPUT_PORT_TYPE +src0_data[18] <= sink_data[18].DB_MAX_OUTPUT_PORT_TYPE +src0_data[19] <= sink_data[19].DB_MAX_OUTPUT_PORT_TYPE +src0_data[20] <= sink_data[20].DB_MAX_OUTPUT_PORT_TYPE +src0_data[21] <= sink_data[21].DB_MAX_OUTPUT_PORT_TYPE +src0_data[22] <= sink_data[22].DB_MAX_OUTPUT_PORT_TYPE +src0_data[23] <= sink_data[23].DB_MAX_OUTPUT_PORT_TYPE +src0_data[24] <= sink_data[24].DB_MAX_OUTPUT_PORT_TYPE +src0_data[25] <= sink_data[25].DB_MAX_OUTPUT_PORT_TYPE +src0_data[26] <= sink_data[26].DB_MAX_OUTPUT_PORT_TYPE +src0_data[27] <= sink_data[27].DB_MAX_OUTPUT_PORT_TYPE +src0_data[28] <= sink_data[28].DB_MAX_OUTPUT_PORT_TYPE +src0_data[29] <= sink_data[29].DB_MAX_OUTPUT_PORT_TYPE +src0_data[30] <= sink_data[30].DB_MAX_OUTPUT_PORT_TYPE +src0_data[31] <= sink_data[31].DB_MAX_OUTPUT_PORT_TYPE +src0_data[32] <= sink_data[32].DB_MAX_OUTPUT_PORT_TYPE +src0_data[33] <= sink_data[33].DB_MAX_OUTPUT_PORT_TYPE +src0_data[34] <= sink_data[34].DB_MAX_OUTPUT_PORT_TYPE +src0_data[35] <= sink_data[35].DB_MAX_OUTPUT_PORT_TYPE +src0_data[36] <= sink_data[36].DB_MAX_OUTPUT_PORT_TYPE +src0_data[37] <= sink_data[37].DB_MAX_OUTPUT_PORT_TYPE +src0_data[38] <= sink_data[38].DB_MAX_OUTPUT_PORT_TYPE +src0_data[39] <= sink_data[39].DB_MAX_OUTPUT_PORT_TYPE +src0_data[40] <= sink_data[40].DB_MAX_OUTPUT_PORT_TYPE +src0_data[41] <= sink_data[41].DB_MAX_OUTPUT_PORT_TYPE +src0_data[42] <= sink_data[42].DB_MAX_OUTPUT_PORT_TYPE +src0_data[43] <= sink_data[43].DB_MAX_OUTPUT_PORT_TYPE +src0_data[44] <= sink_data[44].DB_MAX_OUTPUT_PORT_TYPE +src0_data[45] <= sink_data[45].DB_MAX_OUTPUT_PORT_TYPE +src0_data[46] <= sink_data[46].DB_MAX_OUTPUT_PORT_TYPE +src0_data[47] <= sink_data[47].DB_MAX_OUTPUT_PORT_TYPE +src0_data[48] <= sink_data[48].DB_MAX_OUTPUT_PORT_TYPE +src0_data[49] <= sink_data[49].DB_MAX_OUTPUT_PORT_TYPE +src0_data[50] <= sink_data[50].DB_MAX_OUTPUT_PORT_TYPE +src0_data[51] <= sink_data[51].DB_MAX_OUTPUT_PORT_TYPE +src0_data[52] <= sink_data[52].DB_MAX_OUTPUT_PORT_TYPE +src0_data[53] <= sink_data[53].DB_MAX_OUTPUT_PORT_TYPE +src0_data[54] <= sink_data[54].DB_MAX_OUTPUT_PORT_TYPE +src0_data[55] <= sink_data[55].DB_MAX_OUTPUT_PORT_TYPE +src0_data[56] <= sink_data[56].DB_MAX_OUTPUT_PORT_TYPE +src0_data[57] <= sink_data[57].DB_MAX_OUTPUT_PORT_TYPE +src0_data[58] <= sink_data[58].DB_MAX_OUTPUT_PORT_TYPE +src0_data[59] <= sink_data[59].DB_MAX_OUTPUT_PORT_TYPE +src0_data[60] <= sink_data[60].DB_MAX_OUTPUT_PORT_TYPE +src0_data[61] <= sink_data[61].DB_MAX_OUTPUT_PORT_TYPE +src0_data[62] <= sink_data[62].DB_MAX_OUTPUT_PORT_TYPE +src0_data[63] <= sink_data[63].DB_MAX_OUTPUT_PORT_TYPE +src0_data[64] <= sink_data[64].DB_MAX_OUTPUT_PORT_TYPE +src0_data[65] <= sink_data[65].DB_MAX_OUTPUT_PORT_TYPE +src0_data[66] <= sink_data[66].DB_MAX_OUTPUT_PORT_TYPE +src0_data[67] <= sink_data[67].DB_MAX_OUTPUT_PORT_TYPE +src0_data[68] <= sink_data[68].DB_MAX_OUTPUT_PORT_TYPE +src0_data[69] <= sink_data[69].DB_MAX_OUTPUT_PORT_TYPE +src0_data[70] <= sink_data[70].DB_MAX_OUTPUT_PORT_TYPE +src0_data[71] <= sink_data[71].DB_MAX_OUTPUT_PORT_TYPE +src0_data[72] <= sink_data[72].DB_MAX_OUTPUT_PORT_TYPE +src0_data[73] <= sink_data[73].DB_MAX_OUTPUT_PORT_TYPE +src0_data[74] <= sink_data[74].DB_MAX_OUTPUT_PORT_TYPE +src0_data[75] <= sink_data[75].DB_MAX_OUTPUT_PORT_TYPE +src0_data[76] <= sink_data[76].DB_MAX_OUTPUT_PORT_TYPE +src0_data[77] <= sink_data[77].DB_MAX_OUTPUT_PORT_TYPE +src0_data[78] <= sink_data[78].DB_MAX_OUTPUT_PORT_TYPE +src0_data[79] <= sink_data[79].DB_MAX_OUTPUT_PORT_TYPE +src0_data[80] <= sink_data[80].DB_MAX_OUTPUT_PORT_TYPE +src0_data[81] <= sink_data[81].DB_MAX_OUTPUT_PORT_TYPE +src0_data[82] <= sink_data[82].DB_MAX_OUTPUT_PORT_TYPE +src0_data[83] <= sink_data[83].DB_MAX_OUTPUT_PORT_TYPE +src0_data[84] <= sink_data[84].DB_MAX_OUTPUT_PORT_TYPE +src0_data[85] <= sink_data[85].DB_MAX_OUTPUT_PORT_TYPE +src0_data[86] <= sink_data[86].DB_MAX_OUTPUT_PORT_TYPE +src0_data[87] <= sink_data[87].DB_MAX_OUTPUT_PORT_TYPE +src0_data[88] <= sink_data[88].DB_MAX_OUTPUT_PORT_TYPE +src0_data[89] <= sink_data[89].DB_MAX_OUTPUT_PORT_TYPE +src0_data[90] <= sink_data[90].DB_MAX_OUTPUT_PORT_TYPE +src0_data[91] <= sink_data[91].DB_MAX_OUTPUT_PORT_TYPE +src0_data[92] <= sink_data[92].DB_MAX_OUTPUT_PORT_TYPE +src0_data[93] <= sink_data[93].DB_MAX_OUTPUT_PORT_TYPE +src0_data[94] <= sink_data[94].DB_MAX_OUTPUT_PORT_TYPE +src0_data[95] <= sink_data[95].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[0] <= sink_channel[1].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[1] <= sink_channel[2].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[2] <= sink_channel[3].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[3] <= sink_channel[4].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[4] <= sink_channel[5].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[5] <= sink_channel[6].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[6] <= sink_channel[7].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[7] <= sink_channel[8].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[8] <= sink_channel[9].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[9] <= sink_channel[10].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[10] <= sink_channel[11].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[11] <= sink_channel[12].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[12] <= sink_channel[13].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[13] <= sink_channel[14].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[14] <= sink_channel[15].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[15] <= sink_channel[16].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[16] <= sink_channel[17].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[17] <= +src0_startofpacket <= sink_startofpacket.DB_MAX_OUTPUT_PORT_TYPE +src0_endofpacket <= sink_endofpacket.DB_MAX_OUTPUT_PORT_TYPE +src0_ready => sink_ready.IN1 +clk => ~NO_FANOUT~ +reset => ~NO_FANOUT~ + + +|lights|nios_system:NiosII|nios_system_rsp_xbar_demux_002:rsp_xbar_demux_010 +sink_valid[0] => src0_valid.IN0 +sink_data[0] => src0_data[0].DATAIN +sink_data[1] => src0_data[1].DATAIN +sink_data[2] => src0_data[2].DATAIN +sink_data[3] => src0_data[3].DATAIN +sink_data[4] => src0_data[4].DATAIN +sink_data[5] => src0_data[5].DATAIN +sink_data[6] => src0_data[6].DATAIN +sink_data[7] => src0_data[7].DATAIN +sink_data[8] => src0_data[8].DATAIN +sink_data[9] => src0_data[9].DATAIN +sink_data[10] => src0_data[10].DATAIN +sink_data[11] => src0_data[11].DATAIN +sink_data[12] => src0_data[12].DATAIN +sink_data[13] => src0_data[13].DATAIN +sink_data[14] => src0_data[14].DATAIN +sink_data[15] => src0_data[15].DATAIN +sink_data[16] => src0_data[16].DATAIN +sink_data[17] => src0_data[17].DATAIN +sink_data[18] => src0_data[18].DATAIN +sink_data[19] => src0_data[19].DATAIN +sink_data[20] => src0_data[20].DATAIN +sink_data[21] => src0_data[21].DATAIN +sink_data[22] => src0_data[22].DATAIN +sink_data[23] => src0_data[23].DATAIN +sink_data[24] => src0_data[24].DATAIN +sink_data[25] => src0_data[25].DATAIN +sink_data[26] => src0_data[26].DATAIN +sink_data[27] => src0_data[27].DATAIN +sink_data[28] => src0_data[28].DATAIN +sink_data[29] => src0_data[29].DATAIN +sink_data[30] => src0_data[30].DATAIN +sink_data[31] => src0_data[31].DATAIN +sink_data[32] => src0_data[32].DATAIN +sink_data[33] => src0_data[33].DATAIN +sink_data[34] => src0_data[34].DATAIN +sink_data[35] => src0_data[35].DATAIN +sink_data[36] => src0_data[36].DATAIN +sink_data[37] => src0_data[37].DATAIN +sink_data[38] => src0_data[38].DATAIN +sink_data[39] => src0_data[39].DATAIN +sink_data[40] => src0_data[40].DATAIN +sink_data[41] => src0_data[41].DATAIN +sink_data[42] => src0_data[42].DATAIN +sink_data[43] => src0_data[43].DATAIN +sink_data[44] => src0_data[44].DATAIN +sink_data[45] => src0_data[45].DATAIN +sink_data[46] => src0_data[46].DATAIN +sink_data[47] => src0_data[47].DATAIN +sink_data[48] => src0_data[48].DATAIN +sink_data[49] => src0_data[49].DATAIN +sink_data[50] => src0_data[50].DATAIN +sink_data[51] => src0_data[51].DATAIN +sink_data[52] => src0_data[52].DATAIN +sink_data[53] => src0_data[53].DATAIN +sink_data[54] => src0_data[54].DATAIN +sink_data[55] => src0_data[55].DATAIN +sink_data[56] => src0_data[56].DATAIN +sink_data[57] => src0_data[57].DATAIN +sink_data[58] => src0_data[58].DATAIN +sink_data[59] => src0_data[59].DATAIN +sink_data[60] => src0_data[60].DATAIN +sink_data[61] => src0_data[61].DATAIN +sink_data[62] => src0_data[62].DATAIN +sink_data[63] => src0_data[63].DATAIN +sink_data[64] => src0_data[64].DATAIN +sink_data[65] => src0_data[65].DATAIN +sink_data[66] => src0_data[66].DATAIN +sink_data[67] => src0_data[67].DATAIN +sink_data[68] => src0_data[68].DATAIN +sink_data[69] => src0_data[69].DATAIN +sink_data[70] => src0_data[70].DATAIN +sink_data[71] => src0_data[71].DATAIN +sink_data[72] => src0_data[72].DATAIN +sink_data[73] => src0_data[73].DATAIN +sink_data[74] => src0_data[74].DATAIN +sink_data[75] => src0_data[75].DATAIN +sink_data[76] => src0_data[76].DATAIN +sink_data[77] => src0_data[77].DATAIN +sink_data[78] => src0_data[78].DATAIN +sink_data[79] => src0_data[79].DATAIN +sink_data[80] => src0_data[80].DATAIN +sink_data[81] => src0_data[81].DATAIN +sink_data[82] => src0_data[82].DATAIN +sink_data[83] => src0_data[83].DATAIN +sink_data[84] => src0_data[84].DATAIN +sink_data[85] => src0_data[85].DATAIN +sink_data[86] => src0_data[86].DATAIN +sink_data[87] => src0_data[87].DATAIN +sink_data[88] => src0_data[88].DATAIN +sink_data[89] => src0_data[89].DATAIN +sink_data[90] => src0_data[90].DATAIN +sink_data[91] => src0_data[91].DATAIN +sink_data[92] => src0_data[92].DATAIN +sink_data[93] => src0_data[93].DATAIN +sink_data[94] => src0_data[94].DATAIN +sink_data[95] => src0_data[95].DATAIN +sink_channel[0] => src0_valid.IN1 +sink_channel[0] => sink_ready.IN0 +sink_channel[1] => src0_channel[0].DATAIN +sink_channel[2] => src0_channel[1].DATAIN +sink_channel[3] => src0_channel[2].DATAIN +sink_channel[4] => src0_channel[3].DATAIN +sink_channel[5] => src0_channel[4].DATAIN +sink_channel[6] => src0_channel[5].DATAIN +sink_channel[7] => src0_channel[6].DATAIN +sink_channel[8] => src0_channel[7].DATAIN +sink_channel[9] => src0_channel[8].DATAIN +sink_channel[10] => src0_channel[9].DATAIN +sink_channel[11] => src0_channel[10].DATAIN +sink_channel[12] => src0_channel[11].DATAIN +sink_channel[13] => src0_channel[12].DATAIN +sink_channel[14] => src0_channel[13].DATAIN +sink_channel[15] => src0_channel[14].DATAIN +sink_channel[16] => src0_channel[15].DATAIN +sink_channel[17] => src0_channel[16].DATAIN +sink_startofpacket => src0_startofpacket.DATAIN +sink_endofpacket => src0_endofpacket.DATAIN +sink_ready <= sink_ready.DB_MAX_OUTPUT_PORT_TYPE +src0_valid <= src0_valid.DB_MAX_OUTPUT_PORT_TYPE +src0_data[0] <= sink_data[0].DB_MAX_OUTPUT_PORT_TYPE +src0_data[1] <= sink_data[1].DB_MAX_OUTPUT_PORT_TYPE +src0_data[2] <= sink_data[2].DB_MAX_OUTPUT_PORT_TYPE +src0_data[3] <= sink_data[3].DB_MAX_OUTPUT_PORT_TYPE +src0_data[4] <= sink_data[4].DB_MAX_OUTPUT_PORT_TYPE +src0_data[5] <= sink_data[5].DB_MAX_OUTPUT_PORT_TYPE +src0_data[6] <= sink_data[6].DB_MAX_OUTPUT_PORT_TYPE +src0_data[7] <= sink_data[7].DB_MAX_OUTPUT_PORT_TYPE +src0_data[8] <= sink_data[8].DB_MAX_OUTPUT_PORT_TYPE +src0_data[9] <= sink_data[9].DB_MAX_OUTPUT_PORT_TYPE +src0_data[10] <= sink_data[10].DB_MAX_OUTPUT_PORT_TYPE +src0_data[11] <= sink_data[11].DB_MAX_OUTPUT_PORT_TYPE +src0_data[12] <= sink_data[12].DB_MAX_OUTPUT_PORT_TYPE +src0_data[13] <= sink_data[13].DB_MAX_OUTPUT_PORT_TYPE +src0_data[14] <= sink_data[14].DB_MAX_OUTPUT_PORT_TYPE +src0_data[15] <= sink_data[15].DB_MAX_OUTPUT_PORT_TYPE +src0_data[16] <= sink_data[16].DB_MAX_OUTPUT_PORT_TYPE +src0_data[17] <= sink_data[17].DB_MAX_OUTPUT_PORT_TYPE +src0_data[18] <= sink_data[18].DB_MAX_OUTPUT_PORT_TYPE +src0_data[19] <= sink_data[19].DB_MAX_OUTPUT_PORT_TYPE +src0_data[20] <= sink_data[20].DB_MAX_OUTPUT_PORT_TYPE +src0_data[21] <= sink_data[21].DB_MAX_OUTPUT_PORT_TYPE +src0_data[22] <= sink_data[22].DB_MAX_OUTPUT_PORT_TYPE +src0_data[23] <= sink_data[23].DB_MAX_OUTPUT_PORT_TYPE +src0_data[24] <= sink_data[24].DB_MAX_OUTPUT_PORT_TYPE +src0_data[25] <= sink_data[25].DB_MAX_OUTPUT_PORT_TYPE +src0_data[26] <= sink_data[26].DB_MAX_OUTPUT_PORT_TYPE +src0_data[27] <= sink_data[27].DB_MAX_OUTPUT_PORT_TYPE +src0_data[28] <= sink_data[28].DB_MAX_OUTPUT_PORT_TYPE +src0_data[29] <= sink_data[29].DB_MAX_OUTPUT_PORT_TYPE +src0_data[30] <= sink_data[30].DB_MAX_OUTPUT_PORT_TYPE +src0_data[31] <= sink_data[31].DB_MAX_OUTPUT_PORT_TYPE +src0_data[32] <= sink_data[32].DB_MAX_OUTPUT_PORT_TYPE +src0_data[33] <= sink_data[33].DB_MAX_OUTPUT_PORT_TYPE +src0_data[34] <= sink_data[34].DB_MAX_OUTPUT_PORT_TYPE +src0_data[35] <= sink_data[35].DB_MAX_OUTPUT_PORT_TYPE +src0_data[36] <= sink_data[36].DB_MAX_OUTPUT_PORT_TYPE +src0_data[37] <= sink_data[37].DB_MAX_OUTPUT_PORT_TYPE +src0_data[38] <= sink_data[38].DB_MAX_OUTPUT_PORT_TYPE +src0_data[39] <= sink_data[39].DB_MAX_OUTPUT_PORT_TYPE +src0_data[40] <= sink_data[40].DB_MAX_OUTPUT_PORT_TYPE +src0_data[41] <= sink_data[41].DB_MAX_OUTPUT_PORT_TYPE +src0_data[42] <= sink_data[42].DB_MAX_OUTPUT_PORT_TYPE +src0_data[43] <= sink_data[43].DB_MAX_OUTPUT_PORT_TYPE +src0_data[44] <= sink_data[44].DB_MAX_OUTPUT_PORT_TYPE +src0_data[45] <= sink_data[45].DB_MAX_OUTPUT_PORT_TYPE +src0_data[46] <= sink_data[46].DB_MAX_OUTPUT_PORT_TYPE +src0_data[47] <= sink_data[47].DB_MAX_OUTPUT_PORT_TYPE +src0_data[48] <= sink_data[48].DB_MAX_OUTPUT_PORT_TYPE +src0_data[49] <= sink_data[49].DB_MAX_OUTPUT_PORT_TYPE +src0_data[50] <= sink_data[50].DB_MAX_OUTPUT_PORT_TYPE +src0_data[51] <= sink_data[51].DB_MAX_OUTPUT_PORT_TYPE +src0_data[52] <= sink_data[52].DB_MAX_OUTPUT_PORT_TYPE +src0_data[53] <= sink_data[53].DB_MAX_OUTPUT_PORT_TYPE +src0_data[54] <= sink_data[54].DB_MAX_OUTPUT_PORT_TYPE +src0_data[55] <= sink_data[55].DB_MAX_OUTPUT_PORT_TYPE +src0_data[56] <= sink_data[56].DB_MAX_OUTPUT_PORT_TYPE +src0_data[57] <= sink_data[57].DB_MAX_OUTPUT_PORT_TYPE +src0_data[58] <= sink_data[58].DB_MAX_OUTPUT_PORT_TYPE +src0_data[59] <= sink_data[59].DB_MAX_OUTPUT_PORT_TYPE +src0_data[60] <= sink_data[60].DB_MAX_OUTPUT_PORT_TYPE +src0_data[61] <= sink_data[61].DB_MAX_OUTPUT_PORT_TYPE +src0_data[62] <= sink_data[62].DB_MAX_OUTPUT_PORT_TYPE +src0_data[63] <= sink_data[63].DB_MAX_OUTPUT_PORT_TYPE +src0_data[64] <= sink_data[64].DB_MAX_OUTPUT_PORT_TYPE +src0_data[65] <= sink_data[65].DB_MAX_OUTPUT_PORT_TYPE +src0_data[66] <= sink_data[66].DB_MAX_OUTPUT_PORT_TYPE +src0_data[67] <= sink_data[67].DB_MAX_OUTPUT_PORT_TYPE +src0_data[68] <= sink_data[68].DB_MAX_OUTPUT_PORT_TYPE +src0_data[69] <= sink_data[69].DB_MAX_OUTPUT_PORT_TYPE +src0_data[70] <= sink_data[70].DB_MAX_OUTPUT_PORT_TYPE +src0_data[71] <= sink_data[71].DB_MAX_OUTPUT_PORT_TYPE +src0_data[72] <= sink_data[72].DB_MAX_OUTPUT_PORT_TYPE +src0_data[73] <= sink_data[73].DB_MAX_OUTPUT_PORT_TYPE +src0_data[74] <= sink_data[74].DB_MAX_OUTPUT_PORT_TYPE +src0_data[75] <= sink_data[75].DB_MAX_OUTPUT_PORT_TYPE +src0_data[76] <= sink_data[76].DB_MAX_OUTPUT_PORT_TYPE +src0_data[77] <= sink_data[77].DB_MAX_OUTPUT_PORT_TYPE +src0_data[78] <= sink_data[78].DB_MAX_OUTPUT_PORT_TYPE +src0_data[79] <= sink_data[79].DB_MAX_OUTPUT_PORT_TYPE +src0_data[80] <= sink_data[80].DB_MAX_OUTPUT_PORT_TYPE +src0_data[81] <= sink_data[81].DB_MAX_OUTPUT_PORT_TYPE +src0_data[82] <= sink_data[82].DB_MAX_OUTPUT_PORT_TYPE +src0_data[83] <= sink_data[83].DB_MAX_OUTPUT_PORT_TYPE +src0_data[84] <= sink_data[84].DB_MAX_OUTPUT_PORT_TYPE +src0_data[85] <= sink_data[85].DB_MAX_OUTPUT_PORT_TYPE +src0_data[86] <= sink_data[86].DB_MAX_OUTPUT_PORT_TYPE +src0_data[87] <= sink_data[87].DB_MAX_OUTPUT_PORT_TYPE +src0_data[88] <= sink_data[88].DB_MAX_OUTPUT_PORT_TYPE +src0_data[89] <= sink_data[89].DB_MAX_OUTPUT_PORT_TYPE +src0_data[90] <= sink_data[90].DB_MAX_OUTPUT_PORT_TYPE +src0_data[91] <= sink_data[91].DB_MAX_OUTPUT_PORT_TYPE +src0_data[92] <= sink_data[92].DB_MAX_OUTPUT_PORT_TYPE +src0_data[93] <= sink_data[93].DB_MAX_OUTPUT_PORT_TYPE +src0_data[94] <= sink_data[94].DB_MAX_OUTPUT_PORT_TYPE +src0_data[95] <= sink_data[95].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[0] <= sink_channel[1].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[1] <= sink_channel[2].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[2] <= sink_channel[3].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[3] <= sink_channel[4].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[4] <= sink_channel[5].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[5] <= sink_channel[6].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[6] <= sink_channel[7].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[7] <= sink_channel[8].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[8] <= sink_channel[9].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[9] <= sink_channel[10].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[10] <= sink_channel[11].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[11] <= sink_channel[12].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[12] <= sink_channel[13].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[13] <= sink_channel[14].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[14] <= sink_channel[15].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[15] <= sink_channel[16].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[16] <= sink_channel[17].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[17] <= +src0_startofpacket <= sink_startofpacket.DB_MAX_OUTPUT_PORT_TYPE +src0_endofpacket <= sink_endofpacket.DB_MAX_OUTPUT_PORT_TYPE +src0_ready => sink_ready.IN1 +clk => ~NO_FANOUT~ +reset => ~NO_FANOUT~ + + +|lights|nios_system:NiosII|nios_system_rsp_xbar_demux_002:rsp_xbar_demux_011 +sink_valid[0] => src0_valid.IN0 +sink_data[0] => src0_data[0].DATAIN +sink_data[1] => src0_data[1].DATAIN +sink_data[2] => src0_data[2].DATAIN +sink_data[3] => src0_data[3].DATAIN +sink_data[4] => src0_data[4].DATAIN +sink_data[5] => src0_data[5].DATAIN +sink_data[6] => src0_data[6].DATAIN +sink_data[7] => src0_data[7].DATAIN +sink_data[8] => src0_data[8].DATAIN +sink_data[9] => src0_data[9].DATAIN +sink_data[10] => src0_data[10].DATAIN +sink_data[11] => src0_data[11].DATAIN +sink_data[12] => src0_data[12].DATAIN +sink_data[13] => src0_data[13].DATAIN +sink_data[14] => src0_data[14].DATAIN +sink_data[15] => src0_data[15].DATAIN +sink_data[16] => src0_data[16].DATAIN +sink_data[17] => src0_data[17].DATAIN +sink_data[18] => src0_data[18].DATAIN +sink_data[19] => src0_data[19].DATAIN +sink_data[20] => src0_data[20].DATAIN +sink_data[21] => src0_data[21].DATAIN +sink_data[22] => src0_data[22].DATAIN +sink_data[23] => src0_data[23].DATAIN +sink_data[24] => src0_data[24].DATAIN +sink_data[25] => src0_data[25].DATAIN +sink_data[26] => src0_data[26].DATAIN +sink_data[27] => src0_data[27].DATAIN +sink_data[28] => src0_data[28].DATAIN +sink_data[29] => src0_data[29].DATAIN +sink_data[30] => src0_data[30].DATAIN +sink_data[31] => src0_data[31].DATAIN +sink_data[32] => src0_data[32].DATAIN +sink_data[33] => src0_data[33].DATAIN +sink_data[34] => src0_data[34].DATAIN +sink_data[35] => src0_data[35].DATAIN +sink_data[36] => src0_data[36].DATAIN +sink_data[37] => src0_data[37].DATAIN +sink_data[38] => src0_data[38].DATAIN +sink_data[39] => src0_data[39].DATAIN +sink_data[40] => src0_data[40].DATAIN +sink_data[41] => src0_data[41].DATAIN +sink_data[42] => src0_data[42].DATAIN +sink_data[43] => src0_data[43].DATAIN +sink_data[44] => src0_data[44].DATAIN +sink_data[45] => src0_data[45].DATAIN +sink_data[46] => src0_data[46].DATAIN +sink_data[47] => src0_data[47].DATAIN +sink_data[48] => src0_data[48].DATAIN +sink_data[49] => src0_data[49].DATAIN +sink_data[50] => src0_data[50].DATAIN +sink_data[51] => src0_data[51].DATAIN +sink_data[52] => src0_data[52].DATAIN +sink_data[53] => src0_data[53].DATAIN +sink_data[54] => src0_data[54].DATAIN +sink_data[55] => src0_data[55].DATAIN +sink_data[56] => src0_data[56].DATAIN +sink_data[57] => src0_data[57].DATAIN +sink_data[58] => src0_data[58].DATAIN +sink_data[59] => src0_data[59].DATAIN +sink_data[60] => src0_data[60].DATAIN +sink_data[61] => src0_data[61].DATAIN +sink_data[62] => src0_data[62].DATAIN +sink_data[63] => src0_data[63].DATAIN +sink_data[64] => src0_data[64].DATAIN +sink_data[65] => src0_data[65].DATAIN +sink_data[66] => src0_data[66].DATAIN +sink_data[67] => src0_data[67].DATAIN +sink_data[68] => src0_data[68].DATAIN +sink_data[69] => src0_data[69].DATAIN +sink_data[70] => src0_data[70].DATAIN +sink_data[71] => src0_data[71].DATAIN +sink_data[72] => src0_data[72].DATAIN +sink_data[73] => src0_data[73].DATAIN +sink_data[74] => src0_data[74].DATAIN +sink_data[75] => src0_data[75].DATAIN +sink_data[76] => src0_data[76].DATAIN +sink_data[77] => src0_data[77].DATAIN +sink_data[78] => src0_data[78].DATAIN +sink_data[79] => src0_data[79].DATAIN +sink_data[80] => src0_data[80].DATAIN +sink_data[81] => src0_data[81].DATAIN +sink_data[82] => src0_data[82].DATAIN +sink_data[83] => src0_data[83].DATAIN +sink_data[84] => src0_data[84].DATAIN +sink_data[85] => src0_data[85].DATAIN +sink_data[86] => src0_data[86].DATAIN +sink_data[87] => src0_data[87].DATAIN +sink_data[88] => src0_data[88].DATAIN +sink_data[89] => src0_data[89].DATAIN +sink_data[90] => src0_data[90].DATAIN +sink_data[91] => src0_data[91].DATAIN +sink_data[92] => src0_data[92].DATAIN +sink_data[93] => src0_data[93].DATAIN +sink_data[94] => src0_data[94].DATAIN +sink_data[95] => src0_data[95].DATAIN +sink_channel[0] => src0_valid.IN1 +sink_channel[0] => sink_ready.IN0 +sink_channel[1] => src0_channel[0].DATAIN +sink_channel[2] => src0_channel[1].DATAIN +sink_channel[3] => src0_channel[2].DATAIN +sink_channel[4] => src0_channel[3].DATAIN +sink_channel[5] => src0_channel[4].DATAIN +sink_channel[6] => src0_channel[5].DATAIN +sink_channel[7] => src0_channel[6].DATAIN +sink_channel[8] => src0_channel[7].DATAIN +sink_channel[9] => src0_channel[8].DATAIN +sink_channel[10] => src0_channel[9].DATAIN +sink_channel[11] => src0_channel[10].DATAIN +sink_channel[12] => src0_channel[11].DATAIN +sink_channel[13] => src0_channel[12].DATAIN +sink_channel[14] => src0_channel[13].DATAIN +sink_channel[15] => src0_channel[14].DATAIN +sink_channel[16] => src0_channel[15].DATAIN +sink_channel[17] => src0_channel[16].DATAIN +sink_startofpacket => src0_startofpacket.DATAIN +sink_endofpacket => src0_endofpacket.DATAIN +sink_ready <= sink_ready.DB_MAX_OUTPUT_PORT_TYPE +src0_valid <= src0_valid.DB_MAX_OUTPUT_PORT_TYPE +src0_data[0] <= sink_data[0].DB_MAX_OUTPUT_PORT_TYPE +src0_data[1] <= sink_data[1].DB_MAX_OUTPUT_PORT_TYPE +src0_data[2] <= sink_data[2].DB_MAX_OUTPUT_PORT_TYPE +src0_data[3] <= sink_data[3].DB_MAX_OUTPUT_PORT_TYPE +src0_data[4] <= sink_data[4].DB_MAX_OUTPUT_PORT_TYPE +src0_data[5] <= sink_data[5].DB_MAX_OUTPUT_PORT_TYPE +src0_data[6] <= sink_data[6].DB_MAX_OUTPUT_PORT_TYPE +src0_data[7] <= sink_data[7].DB_MAX_OUTPUT_PORT_TYPE +src0_data[8] <= sink_data[8].DB_MAX_OUTPUT_PORT_TYPE +src0_data[9] <= sink_data[9].DB_MAX_OUTPUT_PORT_TYPE +src0_data[10] <= sink_data[10].DB_MAX_OUTPUT_PORT_TYPE +src0_data[11] <= sink_data[11].DB_MAX_OUTPUT_PORT_TYPE +src0_data[12] <= sink_data[12].DB_MAX_OUTPUT_PORT_TYPE +src0_data[13] <= sink_data[13].DB_MAX_OUTPUT_PORT_TYPE +src0_data[14] <= sink_data[14].DB_MAX_OUTPUT_PORT_TYPE +src0_data[15] <= sink_data[15].DB_MAX_OUTPUT_PORT_TYPE +src0_data[16] <= sink_data[16].DB_MAX_OUTPUT_PORT_TYPE +src0_data[17] <= sink_data[17].DB_MAX_OUTPUT_PORT_TYPE +src0_data[18] <= sink_data[18].DB_MAX_OUTPUT_PORT_TYPE +src0_data[19] <= sink_data[19].DB_MAX_OUTPUT_PORT_TYPE +src0_data[20] <= sink_data[20].DB_MAX_OUTPUT_PORT_TYPE +src0_data[21] <= sink_data[21].DB_MAX_OUTPUT_PORT_TYPE +src0_data[22] <= sink_data[22].DB_MAX_OUTPUT_PORT_TYPE +src0_data[23] <= sink_data[23].DB_MAX_OUTPUT_PORT_TYPE +src0_data[24] <= sink_data[24].DB_MAX_OUTPUT_PORT_TYPE +src0_data[25] <= sink_data[25].DB_MAX_OUTPUT_PORT_TYPE +src0_data[26] <= sink_data[26].DB_MAX_OUTPUT_PORT_TYPE +src0_data[27] <= sink_data[27].DB_MAX_OUTPUT_PORT_TYPE +src0_data[28] <= sink_data[28].DB_MAX_OUTPUT_PORT_TYPE +src0_data[29] <= sink_data[29].DB_MAX_OUTPUT_PORT_TYPE +src0_data[30] <= sink_data[30].DB_MAX_OUTPUT_PORT_TYPE +src0_data[31] <= sink_data[31].DB_MAX_OUTPUT_PORT_TYPE +src0_data[32] <= sink_data[32].DB_MAX_OUTPUT_PORT_TYPE +src0_data[33] <= sink_data[33].DB_MAX_OUTPUT_PORT_TYPE +src0_data[34] <= sink_data[34].DB_MAX_OUTPUT_PORT_TYPE +src0_data[35] <= sink_data[35].DB_MAX_OUTPUT_PORT_TYPE +src0_data[36] <= sink_data[36].DB_MAX_OUTPUT_PORT_TYPE +src0_data[37] <= sink_data[37].DB_MAX_OUTPUT_PORT_TYPE +src0_data[38] <= sink_data[38].DB_MAX_OUTPUT_PORT_TYPE +src0_data[39] <= sink_data[39].DB_MAX_OUTPUT_PORT_TYPE +src0_data[40] <= sink_data[40].DB_MAX_OUTPUT_PORT_TYPE +src0_data[41] <= sink_data[41].DB_MAX_OUTPUT_PORT_TYPE +src0_data[42] <= sink_data[42].DB_MAX_OUTPUT_PORT_TYPE +src0_data[43] <= sink_data[43].DB_MAX_OUTPUT_PORT_TYPE +src0_data[44] <= sink_data[44].DB_MAX_OUTPUT_PORT_TYPE +src0_data[45] <= sink_data[45].DB_MAX_OUTPUT_PORT_TYPE +src0_data[46] <= sink_data[46].DB_MAX_OUTPUT_PORT_TYPE +src0_data[47] <= sink_data[47].DB_MAX_OUTPUT_PORT_TYPE +src0_data[48] <= sink_data[48].DB_MAX_OUTPUT_PORT_TYPE +src0_data[49] <= sink_data[49].DB_MAX_OUTPUT_PORT_TYPE +src0_data[50] <= sink_data[50].DB_MAX_OUTPUT_PORT_TYPE +src0_data[51] <= sink_data[51].DB_MAX_OUTPUT_PORT_TYPE +src0_data[52] <= sink_data[52].DB_MAX_OUTPUT_PORT_TYPE +src0_data[53] <= sink_data[53].DB_MAX_OUTPUT_PORT_TYPE +src0_data[54] <= sink_data[54].DB_MAX_OUTPUT_PORT_TYPE +src0_data[55] <= sink_data[55].DB_MAX_OUTPUT_PORT_TYPE +src0_data[56] <= sink_data[56].DB_MAX_OUTPUT_PORT_TYPE +src0_data[57] <= sink_data[57].DB_MAX_OUTPUT_PORT_TYPE +src0_data[58] <= sink_data[58].DB_MAX_OUTPUT_PORT_TYPE +src0_data[59] <= sink_data[59].DB_MAX_OUTPUT_PORT_TYPE +src0_data[60] <= sink_data[60].DB_MAX_OUTPUT_PORT_TYPE +src0_data[61] <= sink_data[61].DB_MAX_OUTPUT_PORT_TYPE +src0_data[62] <= sink_data[62].DB_MAX_OUTPUT_PORT_TYPE +src0_data[63] <= sink_data[63].DB_MAX_OUTPUT_PORT_TYPE +src0_data[64] <= sink_data[64].DB_MAX_OUTPUT_PORT_TYPE +src0_data[65] <= sink_data[65].DB_MAX_OUTPUT_PORT_TYPE +src0_data[66] <= sink_data[66].DB_MAX_OUTPUT_PORT_TYPE +src0_data[67] <= sink_data[67].DB_MAX_OUTPUT_PORT_TYPE +src0_data[68] <= sink_data[68].DB_MAX_OUTPUT_PORT_TYPE +src0_data[69] <= sink_data[69].DB_MAX_OUTPUT_PORT_TYPE +src0_data[70] <= sink_data[70].DB_MAX_OUTPUT_PORT_TYPE +src0_data[71] <= sink_data[71].DB_MAX_OUTPUT_PORT_TYPE +src0_data[72] <= sink_data[72].DB_MAX_OUTPUT_PORT_TYPE +src0_data[73] <= sink_data[73].DB_MAX_OUTPUT_PORT_TYPE +src0_data[74] <= sink_data[74].DB_MAX_OUTPUT_PORT_TYPE +src0_data[75] <= sink_data[75].DB_MAX_OUTPUT_PORT_TYPE +src0_data[76] <= sink_data[76].DB_MAX_OUTPUT_PORT_TYPE +src0_data[77] <= sink_data[77].DB_MAX_OUTPUT_PORT_TYPE +src0_data[78] <= sink_data[78].DB_MAX_OUTPUT_PORT_TYPE +src0_data[79] <= sink_data[79].DB_MAX_OUTPUT_PORT_TYPE +src0_data[80] <= sink_data[80].DB_MAX_OUTPUT_PORT_TYPE +src0_data[81] <= sink_data[81].DB_MAX_OUTPUT_PORT_TYPE +src0_data[82] <= sink_data[82].DB_MAX_OUTPUT_PORT_TYPE +src0_data[83] <= sink_data[83].DB_MAX_OUTPUT_PORT_TYPE +src0_data[84] <= sink_data[84].DB_MAX_OUTPUT_PORT_TYPE +src0_data[85] <= sink_data[85].DB_MAX_OUTPUT_PORT_TYPE +src0_data[86] <= sink_data[86].DB_MAX_OUTPUT_PORT_TYPE +src0_data[87] <= sink_data[87].DB_MAX_OUTPUT_PORT_TYPE +src0_data[88] <= sink_data[88].DB_MAX_OUTPUT_PORT_TYPE +src0_data[89] <= sink_data[89].DB_MAX_OUTPUT_PORT_TYPE +src0_data[90] <= sink_data[90].DB_MAX_OUTPUT_PORT_TYPE +src0_data[91] <= sink_data[91].DB_MAX_OUTPUT_PORT_TYPE +src0_data[92] <= sink_data[92].DB_MAX_OUTPUT_PORT_TYPE +src0_data[93] <= sink_data[93].DB_MAX_OUTPUT_PORT_TYPE +src0_data[94] <= sink_data[94].DB_MAX_OUTPUT_PORT_TYPE +src0_data[95] <= sink_data[95].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[0] <= sink_channel[1].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[1] <= sink_channel[2].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[2] <= sink_channel[3].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[3] <= sink_channel[4].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[4] <= sink_channel[5].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[5] <= sink_channel[6].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[6] <= sink_channel[7].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[7] <= sink_channel[8].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[8] <= sink_channel[9].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[9] <= sink_channel[10].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[10] <= sink_channel[11].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[11] <= sink_channel[12].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[12] <= sink_channel[13].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[13] <= sink_channel[14].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[14] <= sink_channel[15].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[15] <= sink_channel[16].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[16] <= sink_channel[17].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[17] <= +src0_startofpacket <= sink_startofpacket.DB_MAX_OUTPUT_PORT_TYPE +src0_endofpacket <= sink_endofpacket.DB_MAX_OUTPUT_PORT_TYPE +src0_ready => sink_ready.IN1 +clk => ~NO_FANOUT~ +reset => ~NO_FANOUT~ + + +|lights|nios_system:NiosII|nios_system_rsp_xbar_demux_002:rsp_xbar_demux_012 +sink_valid[0] => src0_valid.IN0 +sink_data[0] => src0_data[0].DATAIN +sink_data[1] => src0_data[1].DATAIN +sink_data[2] => src0_data[2].DATAIN +sink_data[3] => src0_data[3].DATAIN +sink_data[4] => src0_data[4].DATAIN +sink_data[5] => src0_data[5].DATAIN +sink_data[6] => src0_data[6].DATAIN +sink_data[7] => src0_data[7].DATAIN +sink_data[8] => src0_data[8].DATAIN +sink_data[9] => src0_data[9].DATAIN +sink_data[10] => src0_data[10].DATAIN +sink_data[11] => src0_data[11].DATAIN +sink_data[12] => src0_data[12].DATAIN +sink_data[13] => src0_data[13].DATAIN +sink_data[14] => src0_data[14].DATAIN +sink_data[15] => src0_data[15].DATAIN +sink_data[16] => src0_data[16].DATAIN +sink_data[17] => src0_data[17].DATAIN +sink_data[18] => src0_data[18].DATAIN +sink_data[19] => src0_data[19].DATAIN +sink_data[20] => src0_data[20].DATAIN +sink_data[21] => src0_data[21].DATAIN +sink_data[22] => src0_data[22].DATAIN +sink_data[23] => src0_data[23].DATAIN +sink_data[24] => src0_data[24].DATAIN +sink_data[25] => src0_data[25].DATAIN +sink_data[26] => src0_data[26].DATAIN +sink_data[27] => src0_data[27].DATAIN +sink_data[28] => src0_data[28].DATAIN +sink_data[29] => src0_data[29].DATAIN +sink_data[30] => src0_data[30].DATAIN +sink_data[31] => src0_data[31].DATAIN +sink_data[32] => src0_data[32].DATAIN +sink_data[33] => src0_data[33].DATAIN +sink_data[34] => src0_data[34].DATAIN +sink_data[35] => src0_data[35].DATAIN +sink_data[36] => src0_data[36].DATAIN +sink_data[37] => src0_data[37].DATAIN +sink_data[38] => src0_data[38].DATAIN +sink_data[39] => src0_data[39].DATAIN +sink_data[40] => src0_data[40].DATAIN +sink_data[41] => src0_data[41].DATAIN +sink_data[42] => src0_data[42].DATAIN +sink_data[43] => src0_data[43].DATAIN +sink_data[44] => src0_data[44].DATAIN +sink_data[45] => src0_data[45].DATAIN +sink_data[46] => src0_data[46].DATAIN +sink_data[47] => src0_data[47].DATAIN +sink_data[48] => src0_data[48].DATAIN +sink_data[49] => src0_data[49].DATAIN +sink_data[50] => src0_data[50].DATAIN +sink_data[51] => src0_data[51].DATAIN +sink_data[52] => src0_data[52].DATAIN +sink_data[53] => src0_data[53].DATAIN +sink_data[54] => src0_data[54].DATAIN +sink_data[55] => src0_data[55].DATAIN +sink_data[56] => src0_data[56].DATAIN +sink_data[57] => src0_data[57].DATAIN +sink_data[58] => src0_data[58].DATAIN +sink_data[59] => src0_data[59].DATAIN +sink_data[60] => src0_data[60].DATAIN +sink_data[61] => src0_data[61].DATAIN +sink_data[62] => src0_data[62].DATAIN +sink_data[63] => src0_data[63].DATAIN +sink_data[64] => src0_data[64].DATAIN +sink_data[65] => src0_data[65].DATAIN +sink_data[66] => src0_data[66].DATAIN +sink_data[67] => src0_data[67].DATAIN +sink_data[68] => src0_data[68].DATAIN +sink_data[69] => src0_data[69].DATAIN +sink_data[70] => src0_data[70].DATAIN +sink_data[71] => src0_data[71].DATAIN +sink_data[72] => src0_data[72].DATAIN +sink_data[73] => src0_data[73].DATAIN +sink_data[74] => src0_data[74].DATAIN +sink_data[75] => src0_data[75].DATAIN +sink_data[76] => src0_data[76].DATAIN +sink_data[77] => src0_data[77].DATAIN +sink_data[78] => src0_data[78].DATAIN +sink_data[79] => src0_data[79].DATAIN +sink_data[80] => src0_data[80].DATAIN +sink_data[81] => src0_data[81].DATAIN +sink_data[82] => src0_data[82].DATAIN +sink_data[83] => src0_data[83].DATAIN +sink_data[84] => src0_data[84].DATAIN +sink_data[85] => src0_data[85].DATAIN +sink_data[86] => src0_data[86].DATAIN +sink_data[87] => src0_data[87].DATAIN +sink_data[88] => src0_data[88].DATAIN +sink_data[89] => src0_data[89].DATAIN +sink_data[90] => src0_data[90].DATAIN +sink_data[91] => src0_data[91].DATAIN +sink_data[92] => src0_data[92].DATAIN +sink_data[93] => src0_data[93].DATAIN +sink_data[94] => src0_data[94].DATAIN +sink_data[95] => src0_data[95].DATAIN +sink_channel[0] => src0_valid.IN1 +sink_channel[0] => sink_ready.IN0 +sink_channel[1] => src0_channel[0].DATAIN +sink_channel[2] => src0_channel[1].DATAIN +sink_channel[3] => src0_channel[2].DATAIN +sink_channel[4] => src0_channel[3].DATAIN +sink_channel[5] => src0_channel[4].DATAIN +sink_channel[6] => src0_channel[5].DATAIN +sink_channel[7] => src0_channel[6].DATAIN +sink_channel[8] => src0_channel[7].DATAIN +sink_channel[9] => src0_channel[8].DATAIN +sink_channel[10] => src0_channel[9].DATAIN +sink_channel[11] => src0_channel[10].DATAIN +sink_channel[12] => src0_channel[11].DATAIN +sink_channel[13] => src0_channel[12].DATAIN +sink_channel[14] => src0_channel[13].DATAIN +sink_channel[15] => src0_channel[14].DATAIN +sink_channel[16] => src0_channel[15].DATAIN +sink_channel[17] => src0_channel[16].DATAIN +sink_startofpacket => src0_startofpacket.DATAIN +sink_endofpacket => src0_endofpacket.DATAIN +sink_ready <= sink_ready.DB_MAX_OUTPUT_PORT_TYPE +src0_valid <= src0_valid.DB_MAX_OUTPUT_PORT_TYPE +src0_data[0] <= sink_data[0].DB_MAX_OUTPUT_PORT_TYPE +src0_data[1] <= sink_data[1].DB_MAX_OUTPUT_PORT_TYPE +src0_data[2] <= sink_data[2].DB_MAX_OUTPUT_PORT_TYPE +src0_data[3] <= sink_data[3].DB_MAX_OUTPUT_PORT_TYPE +src0_data[4] <= sink_data[4].DB_MAX_OUTPUT_PORT_TYPE +src0_data[5] <= sink_data[5].DB_MAX_OUTPUT_PORT_TYPE +src0_data[6] <= sink_data[6].DB_MAX_OUTPUT_PORT_TYPE +src0_data[7] <= sink_data[7].DB_MAX_OUTPUT_PORT_TYPE +src0_data[8] <= sink_data[8].DB_MAX_OUTPUT_PORT_TYPE +src0_data[9] <= sink_data[9].DB_MAX_OUTPUT_PORT_TYPE +src0_data[10] <= sink_data[10].DB_MAX_OUTPUT_PORT_TYPE +src0_data[11] <= sink_data[11].DB_MAX_OUTPUT_PORT_TYPE +src0_data[12] <= sink_data[12].DB_MAX_OUTPUT_PORT_TYPE +src0_data[13] <= sink_data[13].DB_MAX_OUTPUT_PORT_TYPE +src0_data[14] <= sink_data[14].DB_MAX_OUTPUT_PORT_TYPE +src0_data[15] <= sink_data[15].DB_MAX_OUTPUT_PORT_TYPE +src0_data[16] <= sink_data[16].DB_MAX_OUTPUT_PORT_TYPE +src0_data[17] <= sink_data[17].DB_MAX_OUTPUT_PORT_TYPE +src0_data[18] <= sink_data[18].DB_MAX_OUTPUT_PORT_TYPE +src0_data[19] <= sink_data[19].DB_MAX_OUTPUT_PORT_TYPE +src0_data[20] <= sink_data[20].DB_MAX_OUTPUT_PORT_TYPE +src0_data[21] <= sink_data[21].DB_MAX_OUTPUT_PORT_TYPE +src0_data[22] <= sink_data[22].DB_MAX_OUTPUT_PORT_TYPE +src0_data[23] <= sink_data[23].DB_MAX_OUTPUT_PORT_TYPE +src0_data[24] <= sink_data[24].DB_MAX_OUTPUT_PORT_TYPE +src0_data[25] <= sink_data[25].DB_MAX_OUTPUT_PORT_TYPE +src0_data[26] <= sink_data[26].DB_MAX_OUTPUT_PORT_TYPE +src0_data[27] <= sink_data[27].DB_MAX_OUTPUT_PORT_TYPE +src0_data[28] <= sink_data[28].DB_MAX_OUTPUT_PORT_TYPE +src0_data[29] <= sink_data[29].DB_MAX_OUTPUT_PORT_TYPE +src0_data[30] <= sink_data[30].DB_MAX_OUTPUT_PORT_TYPE +src0_data[31] <= sink_data[31].DB_MAX_OUTPUT_PORT_TYPE +src0_data[32] <= sink_data[32].DB_MAX_OUTPUT_PORT_TYPE +src0_data[33] <= sink_data[33].DB_MAX_OUTPUT_PORT_TYPE +src0_data[34] <= sink_data[34].DB_MAX_OUTPUT_PORT_TYPE +src0_data[35] <= sink_data[35].DB_MAX_OUTPUT_PORT_TYPE +src0_data[36] <= sink_data[36].DB_MAX_OUTPUT_PORT_TYPE +src0_data[37] <= sink_data[37].DB_MAX_OUTPUT_PORT_TYPE +src0_data[38] <= sink_data[38].DB_MAX_OUTPUT_PORT_TYPE +src0_data[39] <= sink_data[39].DB_MAX_OUTPUT_PORT_TYPE +src0_data[40] <= sink_data[40].DB_MAX_OUTPUT_PORT_TYPE +src0_data[41] <= sink_data[41].DB_MAX_OUTPUT_PORT_TYPE +src0_data[42] <= sink_data[42].DB_MAX_OUTPUT_PORT_TYPE +src0_data[43] <= sink_data[43].DB_MAX_OUTPUT_PORT_TYPE +src0_data[44] <= sink_data[44].DB_MAX_OUTPUT_PORT_TYPE +src0_data[45] <= sink_data[45].DB_MAX_OUTPUT_PORT_TYPE +src0_data[46] <= sink_data[46].DB_MAX_OUTPUT_PORT_TYPE +src0_data[47] <= sink_data[47].DB_MAX_OUTPUT_PORT_TYPE +src0_data[48] <= sink_data[48].DB_MAX_OUTPUT_PORT_TYPE +src0_data[49] <= sink_data[49].DB_MAX_OUTPUT_PORT_TYPE +src0_data[50] <= sink_data[50].DB_MAX_OUTPUT_PORT_TYPE +src0_data[51] <= sink_data[51].DB_MAX_OUTPUT_PORT_TYPE +src0_data[52] <= sink_data[52].DB_MAX_OUTPUT_PORT_TYPE +src0_data[53] <= sink_data[53].DB_MAX_OUTPUT_PORT_TYPE +src0_data[54] <= sink_data[54].DB_MAX_OUTPUT_PORT_TYPE +src0_data[55] <= sink_data[55].DB_MAX_OUTPUT_PORT_TYPE +src0_data[56] <= sink_data[56].DB_MAX_OUTPUT_PORT_TYPE +src0_data[57] <= sink_data[57].DB_MAX_OUTPUT_PORT_TYPE +src0_data[58] <= sink_data[58].DB_MAX_OUTPUT_PORT_TYPE +src0_data[59] <= sink_data[59].DB_MAX_OUTPUT_PORT_TYPE +src0_data[60] <= sink_data[60].DB_MAX_OUTPUT_PORT_TYPE +src0_data[61] <= sink_data[61].DB_MAX_OUTPUT_PORT_TYPE +src0_data[62] <= sink_data[62].DB_MAX_OUTPUT_PORT_TYPE +src0_data[63] <= sink_data[63].DB_MAX_OUTPUT_PORT_TYPE +src0_data[64] <= sink_data[64].DB_MAX_OUTPUT_PORT_TYPE +src0_data[65] <= sink_data[65].DB_MAX_OUTPUT_PORT_TYPE +src0_data[66] <= sink_data[66].DB_MAX_OUTPUT_PORT_TYPE +src0_data[67] <= sink_data[67].DB_MAX_OUTPUT_PORT_TYPE +src0_data[68] <= sink_data[68].DB_MAX_OUTPUT_PORT_TYPE +src0_data[69] <= sink_data[69].DB_MAX_OUTPUT_PORT_TYPE +src0_data[70] <= sink_data[70].DB_MAX_OUTPUT_PORT_TYPE +src0_data[71] <= sink_data[71].DB_MAX_OUTPUT_PORT_TYPE +src0_data[72] <= sink_data[72].DB_MAX_OUTPUT_PORT_TYPE +src0_data[73] <= sink_data[73].DB_MAX_OUTPUT_PORT_TYPE +src0_data[74] <= sink_data[74].DB_MAX_OUTPUT_PORT_TYPE +src0_data[75] <= sink_data[75].DB_MAX_OUTPUT_PORT_TYPE +src0_data[76] <= sink_data[76].DB_MAX_OUTPUT_PORT_TYPE +src0_data[77] <= sink_data[77].DB_MAX_OUTPUT_PORT_TYPE +src0_data[78] <= sink_data[78].DB_MAX_OUTPUT_PORT_TYPE +src0_data[79] <= sink_data[79].DB_MAX_OUTPUT_PORT_TYPE +src0_data[80] <= sink_data[80].DB_MAX_OUTPUT_PORT_TYPE +src0_data[81] <= sink_data[81].DB_MAX_OUTPUT_PORT_TYPE +src0_data[82] <= sink_data[82].DB_MAX_OUTPUT_PORT_TYPE +src0_data[83] <= sink_data[83].DB_MAX_OUTPUT_PORT_TYPE +src0_data[84] <= sink_data[84].DB_MAX_OUTPUT_PORT_TYPE +src0_data[85] <= sink_data[85].DB_MAX_OUTPUT_PORT_TYPE +src0_data[86] <= sink_data[86].DB_MAX_OUTPUT_PORT_TYPE +src0_data[87] <= sink_data[87].DB_MAX_OUTPUT_PORT_TYPE +src0_data[88] <= sink_data[88].DB_MAX_OUTPUT_PORT_TYPE +src0_data[89] <= sink_data[89].DB_MAX_OUTPUT_PORT_TYPE +src0_data[90] <= sink_data[90].DB_MAX_OUTPUT_PORT_TYPE +src0_data[91] <= sink_data[91].DB_MAX_OUTPUT_PORT_TYPE +src0_data[92] <= sink_data[92].DB_MAX_OUTPUT_PORT_TYPE +src0_data[93] <= sink_data[93].DB_MAX_OUTPUT_PORT_TYPE +src0_data[94] <= sink_data[94].DB_MAX_OUTPUT_PORT_TYPE +src0_data[95] <= sink_data[95].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[0] <= sink_channel[1].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[1] <= sink_channel[2].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[2] <= sink_channel[3].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[3] <= sink_channel[4].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[4] <= sink_channel[5].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[5] <= sink_channel[6].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[6] <= sink_channel[7].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[7] <= sink_channel[8].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[8] <= sink_channel[9].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[9] <= sink_channel[10].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[10] <= sink_channel[11].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[11] <= sink_channel[12].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[12] <= sink_channel[13].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[13] <= sink_channel[14].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[14] <= sink_channel[15].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[15] <= sink_channel[16].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[16] <= sink_channel[17].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[17] <= +src0_startofpacket <= sink_startofpacket.DB_MAX_OUTPUT_PORT_TYPE +src0_endofpacket <= sink_endofpacket.DB_MAX_OUTPUT_PORT_TYPE +src0_ready => sink_ready.IN1 +clk => ~NO_FANOUT~ +reset => ~NO_FANOUT~ + + +|lights|nios_system:NiosII|nios_system_rsp_xbar_demux_002:rsp_xbar_demux_013 +sink_valid[0] => src0_valid.IN0 +sink_data[0] => src0_data[0].DATAIN +sink_data[1] => src0_data[1].DATAIN +sink_data[2] => src0_data[2].DATAIN +sink_data[3] => src0_data[3].DATAIN +sink_data[4] => src0_data[4].DATAIN +sink_data[5] => src0_data[5].DATAIN +sink_data[6] => src0_data[6].DATAIN +sink_data[7] => src0_data[7].DATAIN +sink_data[8] => src0_data[8].DATAIN +sink_data[9] => src0_data[9].DATAIN +sink_data[10] => src0_data[10].DATAIN +sink_data[11] => src0_data[11].DATAIN +sink_data[12] => src0_data[12].DATAIN +sink_data[13] => src0_data[13].DATAIN +sink_data[14] => src0_data[14].DATAIN +sink_data[15] => src0_data[15].DATAIN +sink_data[16] => src0_data[16].DATAIN +sink_data[17] => src0_data[17].DATAIN +sink_data[18] => src0_data[18].DATAIN +sink_data[19] => src0_data[19].DATAIN +sink_data[20] => src0_data[20].DATAIN +sink_data[21] => src0_data[21].DATAIN +sink_data[22] => src0_data[22].DATAIN +sink_data[23] => src0_data[23].DATAIN +sink_data[24] => src0_data[24].DATAIN +sink_data[25] => src0_data[25].DATAIN +sink_data[26] => src0_data[26].DATAIN +sink_data[27] => src0_data[27].DATAIN +sink_data[28] => src0_data[28].DATAIN +sink_data[29] => src0_data[29].DATAIN +sink_data[30] => src0_data[30].DATAIN +sink_data[31] => src0_data[31].DATAIN +sink_data[32] => src0_data[32].DATAIN +sink_data[33] => src0_data[33].DATAIN +sink_data[34] => src0_data[34].DATAIN +sink_data[35] => src0_data[35].DATAIN +sink_data[36] => src0_data[36].DATAIN +sink_data[37] => src0_data[37].DATAIN +sink_data[38] => src0_data[38].DATAIN +sink_data[39] => src0_data[39].DATAIN +sink_data[40] => src0_data[40].DATAIN +sink_data[41] => src0_data[41].DATAIN +sink_data[42] => src0_data[42].DATAIN +sink_data[43] => src0_data[43].DATAIN +sink_data[44] => src0_data[44].DATAIN +sink_data[45] => src0_data[45].DATAIN +sink_data[46] => src0_data[46].DATAIN +sink_data[47] => src0_data[47].DATAIN +sink_data[48] => src0_data[48].DATAIN +sink_data[49] => src0_data[49].DATAIN +sink_data[50] => src0_data[50].DATAIN +sink_data[51] => src0_data[51].DATAIN +sink_data[52] => src0_data[52].DATAIN +sink_data[53] => src0_data[53].DATAIN +sink_data[54] => src0_data[54].DATAIN +sink_data[55] => src0_data[55].DATAIN +sink_data[56] => src0_data[56].DATAIN +sink_data[57] => src0_data[57].DATAIN +sink_data[58] => src0_data[58].DATAIN +sink_data[59] => src0_data[59].DATAIN +sink_data[60] => src0_data[60].DATAIN +sink_data[61] => src0_data[61].DATAIN +sink_data[62] => src0_data[62].DATAIN +sink_data[63] => src0_data[63].DATAIN +sink_data[64] => src0_data[64].DATAIN +sink_data[65] => src0_data[65].DATAIN +sink_data[66] => src0_data[66].DATAIN +sink_data[67] => src0_data[67].DATAIN +sink_data[68] => src0_data[68].DATAIN +sink_data[69] => src0_data[69].DATAIN +sink_data[70] => src0_data[70].DATAIN +sink_data[71] => src0_data[71].DATAIN +sink_data[72] => src0_data[72].DATAIN +sink_data[73] => src0_data[73].DATAIN +sink_data[74] => src0_data[74].DATAIN +sink_data[75] => src0_data[75].DATAIN +sink_data[76] => src0_data[76].DATAIN +sink_data[77] => src0_data[77].DATAIN +sink_data[78] => src0_data[78].DATAIN +sink_data[79] => src0_data[79].DATAIN +sink_data[80] => src0_data[80].DATAIN +sink_data[81] => src0_data[81].DATAIN +sink_data[82] => src0_data[82].DATAIN +sink_data[83] => src0_data[83].DATAIN +sink_data[84] => src0_data[84].DATAIN +sink_data[85] => src0_data[85].DATAIN +sink_data[86] => src0_data[86].DATAIN +sink_data[87] => src0_data[87].DATAIN +sink_data[88] => src0_data[88].DATAIN +sink_data[89] => src0_data[89].DATAIN +sink_data[90] => src0_data[90].DATAIN +sink_data[91] => src0_data[91].DATAIN +sink_data[92] => src0_data[92].DATAIN +sink_data[93] => src0_data[93].DATAIN +sink_data[94] => src0_data[94].DATAIN +sink_data[95] => src0_data[95].DATAIN +sink_channel[0] => src0_valid.IN1 +sink_channel[0] => sink_ready.IN0 +sink_channel[1] => src0_channel[0].DATAIN +sink_channel[2] => src0_channel[1].DATAIN +sink_channel[3] => src0_channel[2].DATAIN +sink_channel[4] => src0_channel[3].DATAIN +sink_channel[5] => src0_channel[4].DATAIN +sink_channel[6] => src0_channel[5].DATAIN +sink_channel[7] => src0_channel[6].DATAIN +sink_channel[8] => src0_channel[7].DATAIN +sink_channel[9] => src0_channel[8].DATAIN +sink_channel[10] => src0_channel[9].DATAIN +sink_channel[11] => src0_channel[10].DATAIN +sink_channel[12] => src0_channel[11].DATAIN +sink_channel[13] => src0_channel[12].DATAIN +sink_channel[14] => src0_channel[13].DATAIN +sink_channel[15] => src0_channel[14].DATAIN +sink_channel[16] => src0_channel[15].DATAIN +sink_channel[17] => src0_channel[16].DATAIN +sink_startofpacket => src0_startofpacket.DATAIN +sink_endofpacket => src0_endofpacket.DATAIN +sink_ready <= sink_ready.DB_MAX_OUTPUT_PORT_TYPE +src0_valid <= src0_valid.DB_MAX_OUTPUT_PORT_TYPE +src0_data[0] <= sink_data[0].DB_MAX_OUTPUT_PORT_TYPE +src0_data[1] <= sink_data[1].DB_MAX_OUTPUT_PORT_TYPE +src0_data[2] <= sink_data[2].DB_MAX_OUTPUT_PORT_TYPE +src0_data[3] <= sink_data[3].DB_MAX_OUTPUT_PORT_TYPE +src0_data[4] <= sink_data[4].DB_MAX_OUTPUT_PORT_TYPE +src0_data[5] <= sink_data[5].DB_MAX_OUTPUT_PORT_TYPE +src0_data[6] <= sink_data[6].DB_MAX_OUTPUT_PORT_TYPE +src0_data[7] <= sink_data[7].DB_MAX_OUTPUT_PORT_TYPE +src0_data[8] <= sink_data[8].DB_MAX_OUTPUT_PORT_TYPE +src0_data[9] <= sink_data[9].DB_MAX_OUTPUT_PORT_TYPE +src0_data[10] <= sink_data[10].DB_MAX_OUTPUT_PORT_TYPE +src0_data[11] <= sink_data[11].DB_MAX_OUTPUT_PORT_TYPE +src0_data[12] <= sink_data[12].DB_MAX_OUTPUT_PORT_TYPE +src0_data[13] <= sink_data[13].DB_MAX_OUTPUT_PORT_TYPE +src0_data[14] <= sink_data[14].DB_MAX_OUTPUT_PORT_TYPE +src0_data[15] <= sink_data[15].DB_MAX_OUTPUT_PORT_TYPE +src0_data[16] <= sink_data[16].DB_MAX_OUTPUT_PORT_TYPE +src0_data[17] <= sink_data[17].DB_MAX_OUTPUT_PORT_TYPE +src0_data[18] <= sink_data[18].DB_MAX_OUTPUT_PORT_TYPE +src0_data[19] <= sink_data[19].DB_MAX_OUTPUT_PORT_TYPE +src0_data[20] <= sink_data[20].DB_MAX_OUTPUT_PORT_TYPE +src0_data[21] <= sink_data[21].DB_MAX_OUTPUT_PORT_TYPE +src0_data[22] <= sink_data[22].DB_MAX_OUTPUT_PORT_TYPE +src0_data[23] <= sink_data[23].DB_MAX_OUTPUT_PORT_TYPE +src0_data[24] <= sink_data[24].DB_MAX_OUTPUT_PORT_TYPE +src0_data[25] <= sink_data[25].DB_MAX_OUTPUT_PORT_TYPE +src0_data[26] <= sink_data[26].DB_MAX_OUTPUT_PORT_TYPE +src0_data[27] <= sink_data[27].DB_MAX_OUTPUT_PORT_TYPE +src0_data[28] <= sink_data[28].DB_MAX_OUTPUT_PORT_TYPE +src0_data[29] <= sink_data[29].DB_MAX_OUTPUT_PORT_TYPE +src0_data[30] <= sink_data[30].DB_MAX_OUTPUT_PORT_TYPE +src0_data[31] <= sink_data[31].DB_MAX_OUTPUT_PORT_TYPE +src0_data[32] <= sink_data[32].DB_MAX_OUTPUT_PORT_TYPE +src0_data[33] <= sink_data[33].DB_MAX_OUTPUT_PORT_TYPE +src0_data[34] <= sink_data[34].DB_MAX_OUTPUT_PORT_TYPE +src0_data[35] <= sink_data[35].DB_MAX_OUTPUT_PORT_TYPE +src0_data[36] <= sink_data[36].DB_MAX_OUTPUT_PORT_TYPE +src0_data[37] <= sink_data[37].DB_MAX_OUTPUT_PORT_TYPE +src0_data[38] <= sink_data[38].DB_MAX_OUTPUT_PORT_TYPE +src0_data[39] <= sink_data[39].DB_MAX_OUTPUT_PORT_TYPE +src0_data[40] <= sink_data[40].DB_MAX_OUTPUT_PORT_TYPE +src0_data[41] <= sink_data[41].DB_MAX_OUTPUT_PORT_TYPE +src0_data[42] <= sink_data[42].DB_MAX_OUTPUT_PORT_TYPE +src0_data[43] <= sink_data[43].DB_MAX_OUTPUT_PORT_TYPE +src0_data[44] <= sink_data[44].DB_MAX_OUTPUT_PORT_TYPE +src0_data[45] <= sink_data[45].DB_MAX_OUTPUT_PORT_TYPE +src0_data[46] <= sink_data[46].DB_MAX_OUTPUT_PORT_TYPE +src0_data[47] <= sink_data[47].DB_MAX_OUTPUT_PORT_TYPE +src0_data[48] <= sink_data[48].DB_MAX_OUTPUT_PORT_TYPE +src0_data[49] <= sink_data[49].DB_MAX_OUTPUT_PORT_TYPE +src0_data[50] <= sink_data[50].DB_MAX_OUTPUT_PORT_TYPE +src0_data[51] <= sink_data[51].DB_MAX_OUTPUT_PORT_TYPE +src0_data[52] <= sink_data[52].DB_MAX_OUTPUT_PORT_TYPE +src0_data[53] <= sink_data[53].DB_MAX_OUTPUT_PORT_TYPE +src0_data[54] <= sink_data[54].DB_MAX_OUTPUT_PORT_TYPE +src0_data[55] <= sink_data[55].DB_MAX_OUTPUT_PORT_TYPE +src0_data[56] <= sink_data[56].DB_MAX_OUTPUT_PORT_TYPE +src0_data[57] <= sink_data[57].DB_MAX_OUTPUT_PORT_TYPE +src0_data[58] <= sink_data[58].DB_MAX_OUTPUT_PORT_TYPE +src0_data[59] <= sink_data[59].DB_MAX_OUTPUT_PORT_TYPE +src0_data[60] <= sink_data[60].DB_MAX_OUTPUT_PORT_TYPE +src0_data[61] <= sink_data[61].DB_MAX_OUTPUT_PORT_TYPE +src0_data[62] <= sink_data[62].DB_MAX_OUTPUT_PORT_TYPE +src0_data[63] <= sink_data[63].DB_MAX_OUTPUT_PORT_TYPE +src0_data[64] <= sink_data[64].DB_MAX_OUTPUT_PORT_TYPE +src0_data[65] <= sink_data[65].DB_MAX_OUTPUT_PORT_TYPE +src0_data[66] <= sink_data[66].DB_MAX_OUTPUT_PORT_TYPE +src0_data[67] <= sink_data[67].DB_MAX_OUTPUT_PORT_TYPE +src0_data[68] <= sink_data[68].DB_MAX_OUTPUT_PORT_TYPE +src0_data[69] <= sink_data[69].DB_MAX_OUTPUT_PORT_TYPE +src0_data[70] <= sink_data[70].DB_MAX_OUTPUT_PORT_TYPE +src0_data[71] <= sink_data[71].DB_MAX_OUTPUT_PORT_TYPE +src0_data[72] <= sink_data[72].DB_MAX_OUTPUT_PORT_TYPE +src0_data[73] <= sink_data[73].DB_MAX_OUTPUT_PORT_TYPE +src0_data[74] <= sink_data[74].DB_MAX_OUTPUT_PORT_TYPE +src0_data[75] <= sink_data[75].DB_MAX_OUTPUT_PORT_TYPE +src0_data[76] <= sink_data[76].DB_MAX_OUTPUT_PORT_TYPE +src0_data[77] <= sink_data[77].DB_MAX_OUTPUT_PORT_TYPE +src0_data[78] <= sink_data[78].DB_MAX_OUTPUT_PORT_TYPE +src0_data[79] <= sink_data[79].DB_MAX_OUTPUT_PORT_TYPE +src0_data[80] <= sink_data[80].DB_MAX_OUTPUT_PORT_TYPE +src0_data[81] <= sink_data[81].DB_MAX_OUTPUT_PORT_TYPE +src0_data[82] <= sink_data[82].DB_MAX_OUTPUT_PORT_TYPE +src0_data[83] <= sink_data[83].DB_MAX_OUTPUT_PORT_TYPE +src0_data[84] <= sink_data[84].DB_MAX_OUTPUT_PORT_TYPE +src0_data[85] <= sink_data[85].DB_MAX_OUTPUT_PORT_TYPE +src0_data[86] <= sink_data[86].DB_MAX_OUTPUT_PORT_TYPE +src0_data[87] <= sink_data[87].DB_MAX_OUTPUT_PORT_TYPE +src0_data[88] <= sink_data[88].DB_MAX_OUTPUT_PORT_TYPE +src0_data[89] <= sink_data[89].DB_MAX_OUTPUT_PORT_TYPE +src0_data[90] <= sink_data[90].DB_MAX_OUTPUT_PORT_TYPE +src0_data[91] <= sink_data[91].DB_MAX_OUTPUT_PORT_TYPE +src0_data[92] <= sink_data[92].DB_MAX_OUTPUT_PORT_TYPE +src0_data[93] <= sink_data[93].DB_MAX_OUTPUT_PORT_TYPE +src0_data[94] <= sink_data[94].DB_MAX_OUTPUT_PORT_TYPE +src0_data[95] <= sink_data[95].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[0] <= sink_channel[1].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[1] <= sink_channel[2].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[2] <= sink_channel[3].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[3] <= sink_channel[4].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[4] <= sink_channel[5].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[5] <= sink_channel[6].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[6] <= sink_channel[7].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[7] <= sink_channel[8].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[8] <= sink_channel[9].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[9] <= sink_channel[10].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[10] <= sink_channel[11].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[11] <= sink_channel[12].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[12] <= sink_channel[13].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[13] <= sink_channel[14].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[14] <= sink_channel[15].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[15] <= sink_channel[16].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[16] <= sink_channel[17].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[17] <= +src0_startofpacket <= sink_startofpacket.DB_MAX_OUTPUT_PORT_TYPE +src0_endofpacket <= sink_endofpacket.DB_MAX_OUTPUT_PORT_TYPE +src0_ready => sink_ready.IN1 +clk => ~NO_FANOUT~ +reset => ~NO_FANOUT~ + + +|lights|nios_system:NiosII|nios_system_rsp_xbar_demux_002:rsp_xbar_demux_014 +sink_valid[0] => src0_valid.IN0 +sink_data[0] => src0_data[0].DATAIN +sink_data[1] => src0_data[1].DATAIN +sink_data[2] => src0_data[2].DATAIN +sink_data[3] => src0_data[3].DATAIN +sink_data[4] => src0_data[4].DATAIN +sink_data[5] => src0_data[5].DATAIN +sink_data[6] => src0_data[6].DATAIN +sink_data[7] => src0_data[7].DATAIN +sink_data[8] => src0_data[8].DATAIN +sink_data[9] => src0_data[9].DATAIN +sink_data[10] => src0_data[10].DATAIN +sink_data[11] => src0_data[11].DATAIN +sink_data[12] => src0_data[12].DATAIN +sink_data[13] => src0_data[13].DATAIN +sink_data[14] => src0_data[14].DATAIN +sink_data[15] => src0_data[15].DATAIN +sink_data[16] => src0_data[16].DATAIN +sink_data[17] => src0_data[17].DATAIN +sink_data[18] => src0_data[18].DATAIN +sink_data[19] => src0_data[19].DATAIN +sink_data[20] => src0_data[20].DATAIN +sink_data[21] => src0_data[21].DATAIN +sink_data[22] => src0_data[22].DATAIN +sink_data[23] => src0_data[23].DATAIN +sink_data[24] => src0_data[24].DATAIN +sink_data[25] => src0_data[25].DATAIN +sink_data[26] => src0_data[26].DATAIN +sink_data[27] => src0_data[27].DATAIN +sink_data[28] => src0_data[28].DATAIN +sink_data[29] => src0_data[29].DATAIN +sink_data[30] => src0_data[30].DATAIN +sink_data[31] => src0_data[31].DATAIN +sink_data[32] => src0_data[32].DATAIN +sink_data[33] => src0_data[33].DATAIN +sink_data[34] => src0_data[34].DATAIN +sink_data[35] => src0_data[35].DATAIN +sink_data[36] => src0_data[36].DATAIN +sink_data[37] => src0_data[37].DATAIN +sink_data[38] => src0_data[38].DATAIN +sink_data[39] => src0_data[39].DATAIN +sink_data[40] => src0_data[40].DATAIN +sink_data[41] => src0_data[41].DATAIN +sink_data[42] => src0_data[42].DATAIN +sink_data[43] => src0_data[43].DATAIN +sink_data[44] => src0_data[44].DATAIN +sink_data[45] => src0_data[45].DATAIN +sink_data[46] => src0_data[46].DATAIN +sink_data[47] => src0_data[47].DATAIN +sink_data[48] => src0_data[48].DATAIN +sink_data[49] => src0_data[49].DATAIN +sink_data[50] => src0_data[50].DATAIN +sink_data[51] => src0_data[51].DATAIN +sink_data[52] => src0_data[52].DATAIN +sink_data[53] => src0_data[53].DATAIN +sink_data[54] => src0_data[54].DATAIN +sink_data[55] => src0_data[55].DATAIN +sink_data[56] => src0_data[56].DATAIN +sink_data[57] => src0_data[57].DATAIN +sink_data[58] => src0_data[58].DATAIN +sink_data[59] => src0_data[59].DATAIN +sink_data[60] => src0_data[60].DATAIN +sink_data[61] => src0_data[61].DATAIN +sink_data[62] => src0_data[62].DATAIN +sink_data[63] => src0_data[63].DATAIN +sink_data[64] => src0_data[64].DATAIN +sink_data[65] => src0_data[65].DATAIN +sink_data[66] => src0_data[66].DATAIN +sink_data[67] => src0_data[67].DATAIN +sink_data[68] => src0_data[68].DATAIN +sink_data[69] => src0_data[69].DATAIN +sink_data[70] => src0_data[70].DATAIN +sink_data[71] => src0_data[71].DATAIN +sink_data[72] => src0_data[72].DATAIN +sink_data[73] => src0_data[73].DATAIN +sink_data[74] => src0_data[74].DATAIN +sink_data[75] => src0_data[75].DATAIN +sink_data[76] => src0_data[76].DATAIN +sink_data[77] => src0_data[77].DATAIN +sink_data[78] => src0_data[78].DATAIN +sink_data[79] => src0_data[79].DATAIN +sink_data[80] => src0_data[80].DATAIN +sink_data[81] => src0_data[81].DATAIN +sink_data[82] => src0_data[82].DATAIN +sink_data[83] => src0_data[83].DATAIN +sink_data[84] => src0_data[84].DATAIN +sink_data[85] => src0_data[85].DATAIN +sink_data[86] => src0_data[86].DATAIN +sink_data[87] => src0_data[87].DATAIN +sink_data[88] => src0_data[88].DATAIN +sink_data[89] => src0_data[89].DATAIN +sink_data[90] => src0_data[90].DATAIN +sink_data[91] => src0_data[91].DATAIN +sink_data[92] => src0_data[92].DATAIN +sink_data[93] => src0_data[93].DATAIN +sink_data[94] => src0_data[94].DATAIN +sink_data[95] => src0_data[95].DATAIN +sink_channel[0] => src0_valid.IN1 +sink_channel[0] => sink_ready.IN0 +sink_channel[1] => src0_channel[0].DATAIN +sink_channel[2] => src0_channel[1].DATAIN +sink_channel[3] => src0_channel[2].DATAIN +sink_channel[4] => src0_channel[3].DATAIN +sink_channel[5] => src0_channel[4].DATAIN +sink_channel[6] => src0_channel[5].DATAIN +sink_channel[7] => src0_channel[6].DATAIN +sink_channel[8] => src0_channel[7].DATAIN +sink_channel[9] => src0_channel[8].DATAIN +sink_channel[10] => src0_channel[9].DATAIN +sink_channel[11] => src0_channel[10].DATAIN +sink_channel[12] => src0_channel[11].DATAIN +sink_channel[13] => src0_channel[12].DATAIN +sink_channel[14] => src0_channel[13].DATAIN +sink_channel[15] => src0_channel[14].DATAIN +sink_channel[16] => src0_channel[15].DATAIN +sink_channel[17] => src0_channel[16].DATAIN +sink_startofpacket => src0_startofpacket.DATAIN +sink_endofpacket => src0_endofpacket.DATAIN +sink_ready <= sink_ready.DB_MAX_OUTPUT_PORT_TYPE +src0_valid <= src0_valid.DB_MAX_OUTPUT_PORT_TYPE +src0_data[0] <= sink_data[0].DB_MAX_OUTPUT_PORT_TYPE +src0_data[1] <= sink_data[1].DB_MAX_OUTPUT_PORT_TYPE +src0_data[2] <= sink_data[2].DB_MAX_OUTPUT_PORT_TYPE +src0_data[3] <= sink_data[3].DB_MAX_OUTPUT_PORT_TYPE +src0_data[4] <= sink_data[4].DB_MAX_OUTPUT_PORT_TYPE +src0_data[5] <= sink_data[5].DB_MAX_OUTPUT_PORT_TYPE +src0_data[6] <= sink_data[6].DB_MAX_OUTPUT_PORT_TYPE +src0_data[7] <= sink_data[7].DB_MAX_OUTPUT_PORT_TYPE +src0_data[8] <= sink_data[8].DB_MAX_OUTPUT_PORT_TYPE +src0_data[9] <= sink_data[9].DB_MAX_OUTPUT_PORT_TYPE +src0_data[10] <= sink_data[10].DB_MAX_OUTPUT_PORT_TYPE +src0_data[11] <= sink_data[11].DB_MAX_OUTPUT_PORT_TYPE +src0_data[12] <= sink_data[12].DB_MAX_OUTPUT_PORT_TYPE +src0_data[13] <= sink_data[13].DB_MAX_OUTPUT_PORT_TYPE +src0_data[14] <= sink_data[14].DB_MAX_OUTPUT_PORT_TYPE +src0_data[15] <= sink_data[15].DB_MAX_OUTPUT_PORT_TYPE +src0_data[16] <= sink_data[16].DB_MAX_OUTPUT_PORT_TYPE +src0_data[17] <= sink_data[17].DB_MAX_OUTPUT_PORT_TYPE +src0_data[18] <= sink_data[18].DB_MAX_OUTPUT_PORT_TYPE +src0_data[19] <= sink_data[19].DB_MAX_OUTPUT_PORT_TYPE +src0_data[20] <= sink_data[20].DB_MAX_OUTPUT_PORT_TYPE +src0_data[21] <= sink_data[21].DB_MAX_OUTPUT_PORT_TYPE +src0_data[22] <= sink_data[22].DB_MAX_OUTPUT_PORT_TYPE +src0_data[23] <= sink_data[23].DB_MAX_OUTPUT_PORT_TYPE +src0_data[24] <= sink_data[24].DB_MAX_OUTPUT_PORT_TYPE +src0_data[25] <= sink_data[25].DB_MAX_OUTPUT_PORT_TYPE +src0_data[26] <= sink_data[26].DB_MAX_OUTPUT_PORT_TYPE +src0_data[27] <= sink_data[27].DB_MAX_OUTPUT_PORT_TYPE +src0_data[28] <= sink_data[28].DB_MAX_OUTPUT_PORT_TYPE +src0_data[29] <= sink_data[29].DB_MAX_OUTPUT_PORT_TYPE +src0_data[30] <= sink_data[30].DB_MAX_OUTPUT_PORT_TYPE +src0_data[31] <= sink_data[31].DB_MAX_OUTPUT_PORT_TYPE +src0_data[32] <= sink_data[32].DB_MAX_OUTPUT_PORT_TYPE +src0_data[33] <= sink_data[33].DB_MAX_OUTPUT_PORT_TYPE +src0_data[34] <= sink_data[34].DB_MAX_OUTPUT_PORT_TYPE +src0_data[35] <= sink_data[35].DB_MAX_OUTPUT_PORT_TYPE +src0_data[36] <= sink_data[36].DB_MAX_OUTPUT_PORT_TYPE +src0_data[37] <= sink_data[37].DB_MAX_OUTPUT_PORT_TYPE +src0_data[38] <= sink_data[38].DB_MAX_OUTPUT_PORT_TYPE +src0_data[39] <= sink_data[39].DB_MAX_OUTPUT_PORT_TYPE +src0_data[40] <= sink_data[40].DB_MAX_OUTPUT_PORT_TYPE +src0_data[41] <= sink_data[41].DB_MAX_OUTPUT_PORT_TYPE +src0_data[42] <= sink_data[42].DB_MAX_OUTPUT_PORT_TYPE +src0_data[43] <= sink_data[43].DB_MAX_OUTPUT_PORT_TYPE +src0_data[44] <= sink_data[44].DB_MAX_OUTPUT_PORT_TYPE +src0_data[45] <= sink_data[45].DB_MAX_OUTPUT_PORT_TYPE +src0_data[46] <= sink_data[46].DB_MAX_OUTPUT_PORT_TYPE +src0_data[47] <= sink_data[47].DB_MAX_OUTPUT_PORT_TYPE +src0_data[48] <= sink_data[48].DB_MAX_OUTPUT_PORT_TYPE +src0_data[49] <= sink_data[49].DB_MAX_OUTPUT_PORT_TYPE +src0_data[50] <= sink_data[50].DB_MAX_OUTPUT_PORT_TYPE +src0_data[51] <= sink_data[51].DB_MAX_OUTPUT_PORT_TYPE +src0_data[52] <= sink_data[52].DB_MAX_OUTPUT_PORT_TYPE +src0_data[53] <= sink_data[53].DB_MAX_OUTPUT_PORT_TYPE +src0_data[54] <= sink_data[54].DB_MAX_OUTPUT_PORT_TYPE +src0_data[55] <= sink_data[55].DB_MAX_OUTPUT_PORT_TYPE +src0_data[56] <= sink_data[56].DB_MAX_OUTPUT_PORT_TYPE +src0_data[57] <= sink_data[57].DB_MAX_OUTPUT_PORT_TYPE +src0_data[58] <= sink_data[58].DB_MAX_OUTPUT_PORT_TYPE +src0_data[59] <= sink_data[59].DB_MAX_OUTPUT_PORT_TYPE +src0_data[60] <= sink_data[60].DB_MAX_OUTPUT_PORT_TYPE +src0_data[61] <= sink_data[61].DB_MAX_OUTPUT_PORT_TYPE +src0_data[62] <= sink_data[62].DB_MAX_OUTPUT_PORT_TYPE +src0_data[63] <= sink_data[63].DB_MAX_OUTPUT_PORT_TYPE +src0_data[64] <= sink_data[64].DB_MAX_OUTPUT_PORT_TYPE +src0_data[65] <= sink_data[65].DB_MAX_OUTPUT_PORT_TYPE +src0_data[66] <= sink_data[66].DB_MAX_OUTPUT_PORT_TYPE +src0_data[67] <= sink_data[67].DB_MAX_OUTPUT_PORT_TYPE +src0_data[68] <= sink_data[68].DB_MAX_OUTPUT_PORT_TYPE +src0_data[69] <= sink_data[69].DB_MAX_OUTPUT_PORT_TYPE +src0_data[70] <= sink_data[70].DB_MAX_OUTPUT_PORT_TYPE +src0_data[71] <= sink_data[71].DB_MAX_OUTPUT_PORT_TYPE +src0_data[72] <= sink_data[72].DB_MAX_OUTPUT_PORT_TYPE +src0_data[73] <= sink_data[73].DB_MAX_OUTPUT_PORT_TYPE +src0_data[74] <= sink_data[74].DB_MAX_OUTPUT_PORT_TYPE +src0_data[75] <= sink_data[75].DB_MAX_OUTPUT_PORT_TYPE +src0_data[76] <= sink_data[76].DB_MAX_OUTPUT_PORT_TYPE +src0_data[77] <= sink_data[77].DB_MAX_OUTPUT_PORT_TYPE +src0_data[78] <= sink_data[78].DB_MAX_OUTPUT_PORT_TYPE +src0_data[79] <= sink_data[79].DB_MAX_OUTPUT_PORT_TYPE +src0_data[80] <= sink_data[80].DB_MAX_OUTPUT_PORT_TYPE +src0_data[81] <= sink_data[81].DB_MAX_OUTPUT_PORT_TYPE +src0_data[82] <= sink_data[82].DB_MAX_OUTPUT_PORT_TYPE +src0_data[83] <= sink_data[83].DB_MAX_OUTPUT_PORT_TYPE +src0_data[84] <= sink_data[84].DB_MAX_OUTPUT_PORT_TYPE +src0_data[85] <= sink_data[85].DB_MAX_OUTPUT_PORT_TYPE +src0_data[86] <= sink_data[86].DB_MAX_OUTPUT_PORT_TYPE +src0_data[87] <= sink_data[87].DB_MAX_OUTPUT_PORT_TYPE +src0_data[88] <= sink_data[88].DB_MAX_OUTPUT_PORT_TYPE +src0_data[89] <= sink_data[89].DB_MAX_OUTPUT_PORT_TYPE +src0_data[90] <= sink_data[90].DB_MAX_OUTPUT_PORT_TYPE +src0_data[91] <= sink_data[91].DB_MAX_OUTPUT_PORT_TYPE +src0_data[92] <= sink_data[92].DB_MAX_OUTPUT_PORT_TYPE +src0_data[93] <= sink_data[93].DB_MAX_OUTPUT_PORT_TYPE +src0_data[94] <= sink_data[94].DB_MAX_OUTPUT_PORT_TYPE +src0_data[95] <= sink_data[95].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[0] <= sink_channel[1].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[1] <= sink_channel[2].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[2] <= sink_channel[3].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[3] <= sink_channel[4].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[4] <= sink_channel[5].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[5] <= sink_channel[6].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[6] <= sink_channel[7].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[7] <= sink_channel[8].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[8] <= sink_channel[9].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[9] <= sink_channel[10].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[10] <= sink_channel[11].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[11] <= sink_channel[12].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[12] <= sink_channel[13].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[13] <= sink_channel[14].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[14] <= sink_channel[15].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[15] <= sink_channel[16].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[16] <= sink_channel[17].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[17] <= +src0_startofpacket <= sink_startofpacket.DB_MAX_OUTPUT_PORT_TYPE +src0_endofpacket <= sink_endofpacket.DB_MAX_OUTPUT_PORT_TYPE +src0_ready => sink_ready.IN1 +clk => ~NO_FANOUT~ +reset => ~NO_FANOUT~ + + +|lights|nios_system:NiosII|nios_system_rsp_xbar_demux_002:rsp_xbar_demux_015 +sink_valid[0] => src0_valid.IN0 +sink_data[0] => src0_data[0].DATAIN +sink_data[1] => src0_data[1].DATAIN +sink_data[2] => src0_data[2].DATAIN +sink_data[3] => src0_data[3].DATAIN +sink_data[4] => src0_data[4].DATAIN +sink_data[5] => src0_data[5].DATAIN +sink_data[6] => src0_data[6].DATAIN +sink_data[7] => src0_data[7].DATAIN +sink_data[8] => src0_data[8].DATAIN +sink_data[9] => src0_data[9].DATAIN +sink_data[10] => src0_data[10].DATAIN +sink_data[11] => src0_data[11].DATAIN +sink_data[12] => src0_data[12].DATAIN +sink_data[13] => src0_data[13].DATAIN +sink_data[14] => src0_data[14].DATAIN +sink_data[15] => src0_data[15].DATAIN +sink_data[16] => src0_data[16].DATAIN +sink_data[17] => src0_data[17].DATAIN +sink_data[18] => src0_data[18].DATAIN +sink_data[19] => src0_data[19].DATAIN +sink_data[20] => src0_data[20].DATAIN +sink_data[21] => src0_data[21].DATAIN +sink_data[22] => src0_data[22].DATAIN +sink_data[23] => src0_data[23].DATAIN +sink_data[24] => src0_data[24].DATAIN +sink_data[25] => src0_data[25].DATAIN +sink_data[26] => src0_data[26].DATAIN +sink_data[27] => src0_data[27].DATAIN +sink_data[28] => src0_data[28].DATAIN +sink_data[29] => src0_data[29].DATAIN +sink_data[30] => src0_data[30].DATAIN +sink_data[31] => src0_data[31].DATAIN +sink_data[32] => src0_data[32].DATAIN +sink_data[33] => src0_data[33].DATAIN +sink_data[34] => src0_data[34].DATAIN +sink_data[35] => src0_data[35].DATAIN +sink_data[36] => src0_data[36].DATAIN +sink_data[37] => src0_data[37].DATAIN +sink_data[38] => src0_data[38].DATAIN +sink_data[39] => src0_data[39].DATAIN +sink_data[40] => src0_data[40].DATAIN +sink_data[41] => src0_data[41].DATAIN +sink_data[42] => src0_data[42].DATAIN +sink_data[43] => src0_data[43].DATAIN +sink_data[44] => src0_data[44].DATAIN +sink_data[45] => src0_data[45].DATAIN +sink_data[46] => src0_data[46].DATAIN +sink_data[47] => src0_data[47].DATAIN +sink_data[48] => src0_data[48].DATAIN +sink_data[49] => src0_data[49].DATAIN +sink_data[50] => src0_data[50].DATAIN +sink_data[51] => src0_data[51].DATAIN +sink_data[52] => src0_data[52].DATAIN +sink_data[53] => src0_data[53].DATAIN +sink_data[54] => src0_data[54].DATAIN +sink_data[55] => src0_data[55].DATAIN +sink_data[56] => src0_data[56].DATAIN +sink_data[57] => src0_data[57].DATAIN +sink_data[58] => src0_data[58].DATAIN +sink_data[59] => src0_data[59].DATAIN +sink_data[60] => src0_data[60].DATAIN +sink_data[61] => src0_data[61].DATAIN +sink_data[62] => src0_data[62].DATAIN +sink_data[63] => src0_data[63].DATAIN +sink_data[64] => src0_data[64].DATAIN +sink_data[65] => src0_data[65].DATAIN +sink_data[66] => src0_data[66].DATAIN +sink_data[67] => src0_data[67].DATAIN +sink_data[68] => src0_data[68].DATAIN +sink_data[69] => src0_data[69].DATAIN +sink_data[70] => src0_data[70].DATAIN +sink_data[71] => src0_data[71].DATAIN +sink_data[72] => src0_data[72].DATAIN +sink_data[73] => src0_data[73].DATAIN +sink_data[74] => src0_data[74].DATAIN +sink_data[75] => src0_data[75].DATAIN +sink_data[76] => src0_data[76].DATAIN +sink_data[77] => src0_data[77].DATAIN +sink_data[78] => src0_data[78].DATAIN +sink_data[79] => src0_data[79].DATAIN +sink_data[80] => src0_data[80].DATAIN +sink_data[81] => src0_data[81].DATAIN +sink_data[82] => src0_data[82].DATAIN +sink_data[83] => src0_data[83].DATAIN +sink_data[84] => src0_data[84].DATAIN +sink_data[85] => src0_data[85].DATAIN +sink_data[86] => src0_data[86].DATAIN +sink_data[87] => src0_data[87].DATAIN +sink_data[88] => src0_data[88].DATAIN +sink_data[89] => src0_data[89].DATAIN +sink_data[90] => src0_data[90].DATAIN +sink_data[91] => src0_data[91].DATAIN +sink_data[92] => src0_data[92].DATAIN +sink_data[93] => src0_data[93].DATAIN +sink_data[94] => src0_data[94].DATAIN +sink_data[95] => src0_data[95].DATAIN +sink_channel[0] => src0_valid.IN1 +sink_channel[0] => sink_ready.IN0 +sink_channel[1] => src0_channel[0].DATAIN +sink_channel[2] => src0_channel[1].DATAIN +sink_channel[3] => src0_channel[2].DATAIN +sink_channel[4] => src0_channel[3].DATAIN +sink_channel[5] => src0_channel[4].DATAIN +sink_channel[6] => src0_channel[5].DATAIN +sink_channel[7] => src0_channel[6].DATAIN +sink_channel[8] => src0_channel[7].DATAIN +sink_channel[9] => src0_channel[8].DATAIN +sink_channel[10] => src0_channel[9].DATAIN +sink_channel[11] => src0_channel[10].DATAIN +sink_channel[12] => src0_channel[11].DATAIN +sink_channel[13] => src0_channel[12].DATAIN +sink_channel[14] => src0_channel[13].DATAIN +sink_channel[15] => src0_channel[14].DATAIN +sink_channel[16] => src0_channel[15].DATAIN +sink_channel[17] => src0_channel[16].DATAIN +sink_startofpacket => src0_startofpacket.DATAIN +sink_endofpacket => src0_endofpacket.DATAIN +sink_ready <= sink_ready.DB_MAX_OUTPUT_PORT_TYPE +src0_valid <= src0_valid.DB_MAX_OUTPUT_PORT_TYPE +src0_data[0] <= sink_data[0].DB_MAX_OUTPUT_PORT_TYPE +src0_data[1] <= sink_data[1].DB_MAX_OUTPUT_PORT_TYPE +src0_data[2] <= sink_data[2].DB_MAX_OUTPUT_PORT_TYPE +src0_data[3] <= sink_data[3].DB_MAX_OUTPUT_PORT_TYPE +src0_data[4] <= sink_data[4].DB_MAX_OUTPUT_PORT_TYPE +src0_data[5] <= sink_data[5].DB_MAX_OUTPUT_PORT_TYPE +src0_data[6] <= sink_data[6].DB_MAX_OUTPUT_PORT_TYPE +src0_data[7] <= sink_data[7].DB_MAX_OUTPUT_PORT_TYPE +src0_data[8] <= sink_data[8].DB_MAX_OUTPUT_PORT_TYPE +src0_data[9] <= sink_data[9].DB_MAX_OUTPUT_PORT_TYPE +src0_data[10] <= sink_data[10].DB_MAX_OUTPUT_PORT_TYPE +src0_data[11] <= sink_data[11].DB_MAX_OUTPUT_PORT_TYPE +src0_data[12] <= sink_data[12].DB_MAX_OUTPUT_PORT_TYPE +src0_data[13] <= sink_data[13].DB_MAX_OUTPUT_PORT_TYPE +src0_data[14] <= sink_data[14].DB_MAX_OUTPUT_PORT_TYPE +src0_data[15] <= sink_data[15].DB_MAX_OUTPUT_PORT_TYPE +src0_data[16] <= sink_data[16].DB_MAX_OUTPUT_PORT_TYPE +src0_data[17] <= sink_data[17].DB_MAX_OUTPUT_PORT_TYPE +src0_data[18] <= sink_data[18].DB_MAX_OUTPUT_PORT_TYPE +src0_data[19] <= sink_data[19].DB_MAX_OUTPUT_PORT_TYPE +src0_data[20] <= sink_data[20].DB_MAX_OUTPUT_PORT_TYPE +src0_data[21] <= sink_data[21].DB_MAX_OUTPUT_PORT_TYPE +src0_data[22] <= sink_data[22].DB_MAX_OUTPUT_PORT_TYPE +src0_data[23] <= sink_data[23].DB_MAX_OUTPUT_PORT_TYPE +src0_data[24] <= sink_data[24].DB_MAX_OUTPUT_PORT_TYPE +src0_data[25] <= sink_data[25].DB_MAX_OUTPUT_PORT_TYPE +src0_data[26] <= sink_data[26].DB_MAX_OUTPUT_PORT_TYPE +src0_data[27] <= sink_data[27].DB_MAX_OUTPUT_PORT_TYPE +src0_data[28] <= sink_data[28].DB_MAX_OUTPUT_PORT_TYPE +src0_data[29] <= sink_data[29].DB_MAX_OUTPUT_PORT_TYPE +src0_data[30] <= sink_data[30].DB_MAX_OUTPUT_PORT_TYPE +src0_data[31] <= sink_data[31].DB_MAX_OUTPUT_PORT_TYPE +src0_data[32] <= sink_data[32].DB_MAX_OUTPUT_PORT_TYPE +src0_data[33] <= sink_data[33].DB_MAX_OUTPUT_PORT_TYPE +src0_data[34] <= sink_data[34].DB_MAX_OUTPUT_PORT_TYPE +src0_data[35] <= sink_data[35].DB_MAX_OUTPUT_PORT_TYPE +src0_data[36] <= sink_data[36].DB_MAX_OUTPUT_PORT_TYPE +src0_data[37] <= sink_data[37].DB_MAX_OUTPUT_PORT_TYPE +src0_data[38] <= sink_data[38].DB_MAX_OUTPUT_PORT_TYPE +src0_data[39] <= sink_data[39].DB_MAX_OUTPUT_PORT_TYPE +src0_data[40] <= sink_data[40].DB_MAX_OUTPUT_PORT_TYPE +src0_data[41] <= sink_data[41].DB_MAX_OUTPUT_PORT_TYPE +src0_data[42] <= sink_data[42].DB_MAX_OUTPUT_PORT_TYPE +src0_data[43] <= sink_data[43].DB_MAX_OUTPUT_PORT_TYPE +src0_data[44] <= sink_data[44].DB_MAX_OUTPUT_PORT_TYPE +src0_data[45] <= sink_data[45].DB_MAX_OUTPUT_PORT_TYPE +src0_data[46] <= sink_data[46].DB_MAX_OUTPUT_PORT_TYPE +src0_data[47] <= sink_data[47].DB_MAX_OUTPUT_PORT_TYPE +src0_data[48] <= sink_data[48].DB_MAX_OUTPUT_PORT_TYPE +src0_data[49] <= sink_data[49].DB_MAX_OUTPUT_PORT_TYPE +src0_data[50] <= sink_data[50].DB_MAX_OUTPUT_PORT_TYPE +src0_data[51] <= sink_data[51].DB_MAX_OUTPUT_PORT_TYPE +src0_data[52] <= sink_data[52].DB_MAX_OUTPUT_PORT_TYPE +src0_data[53] <= sink_data[53].DB_MAX_OUTPUT_PORT_TYPE +src0_data[54] <= sink_data[54].DB_MAX_OUTPUT_PORT_TYPE +src0_data[55] <= sink_data[55].DB_MAX_OUTPUT_PORT_TYPE +src0_data[56] <= sink_data[56].DB_MAX_OUTPUT_PORT_TYPE +src0_data[57] <= sink_data[57].DB_MAX_OUTPUT_PORT_TYPE +src0_data[58] <= sink_data[58].DB_MAX_OUTPUT_PORT_TYPE +src0_data[59] <= sink_data[59].DB_MAX_OUTPUT_PORT_TYPE +src0_data[60] <= sink_data[60].DB_MAX_OUTPUT_PORT_TYPE +src0_data[61] <= sink_data[61].DB_MAX_OUTPUT_PORT_TYPE +src0_data[62] <= sink_data[62].DB_MAX_OUTPUT_PORT_TYPE +src0_data[63] <= sink_data[63].DB_MAX_OUTPUT_PORT_TYPE +src0_data[64] <= sink_data[64].DB_MAX_OUTPUT_PORT_TYPE +src0_data[65] <= sink_data[65].DB_MAX_OUTPUT_PORT_TYPE +src0_data[66] <= sink_data[66].DB_MAX_OUTPUT_PORT_TYPE +src0_data[67] <= sink_data[67].DB_MAX_OUTPUT_PORT_TYPE +src0_data[68] <= sink_data[68].DB_MAX_OUTPUT_PORT_TYPE +src0_data[69] <= sink_data[69].DB_MAX_OUTPUT_PORT_TYPE +src0_data[70] <= sink_data[70].DB_MAX_OUTPUT_PORT_TYPE +src0_data[71] <= sink_data[71].DB_MAX_OUTPUT_PORT_TYPE +src0_data[72] <= sink_data[72].DB_MAX_OUTPUT_PORT_TYPE +src0_data[73] <= sink_data[73].DB_MAX_OUTPUT_PORT_TYPE +src0_data[74] <= sink_data[74].DB_MAX_OUTPUT_PORT_TYPE +src0_data[75] <= sink_data[75].DB_MAX_OUTPUT_PORT_TYPE +src0_data[76] <= sink_data[76].DB_MAX_OUTPUT_PORT_TYPE +src0_data[77] <= sink_data[77].DB_MAX_OUTPUT_PORT_TYPE +src0_data[78] <= sink_data[78].DB_MAX_OUTPUT_PORT_TYPE +src0_data[79] <= sink_data[79].DB_MAX_OUTPUT_PORT_TYPE +src0_data[80] <= sink_data[80].DB_MAX_OUTPUT_PORT_TYPE +src0_data[81] <= sink_data[81].DB_MAX_OUTPUT_PORT_TYPE +src0_data[82] <= sink_data[82].DB_MAX_OUTPUT_PORT_TYPE +src0_data[83] <= sink_data[83].DB_MAX_OUTPUT_PORT_TYPE +src0_data[84] <= sink_data[84].DB_MAX_OUTPUT_PORT_TYPE +src0_data[85] <= sink_data[85].DB_MAX_OUTPUT_PORT_TYPE +src0_data[86] <= sink_data[86].DB_MAX_OUTPUT_PORT_TYPE +src0_data[87] <= sink_data[87].DB_MAX_OUTPUT_PORT_TYPE +src0_data[88] <= sink_data[88].DB_MAX_OUTPUT_PORT_TYPE +src0_data[89] <= sink_data[89].DB_MAX_OUTPUT_PORT_TYPE +src0_data[90] <= sink_data[90].DB_MAX_OUTPUT_PORT_TYPE +src0_data[91] <= sink_data[91].DB_MAX_OUTPUT_PORT_TYPE +src0_data[92] <= sink_data[92].DB_MAX_OUTPUT_PORT_TYPE +src0_data[93] <= sink_data[93].DB_MAX_OUTPUT_PORT_TYPE +src0_data[94] <= sink_data[94].DB_MAX_OUTPUT_PORT_TYPE +src0_data[95] <= sink_data[95].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[0] <= sink_channel[1].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[1] <= sink_channel[2].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[2] <= sink_channel[3].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[3] <= sink_channel[4].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[4] <= sink_channel[5].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[5] <= sink_channel[6].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[6] <= sink_channel[7].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[7] <= sink_channel[8].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[8] <= sink_channel[9].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[9] <= sink_channel[10].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[10] <= sink_channel[11].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[11] <= sink_channel[12].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[12] <= sink_channel[13].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[13] <= sink_channel[14].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[14] <= sink_channel[15].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[15] <= sink_channel[16].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[16] <= sink_channel[17].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[17] <= +src0_startofpacket <= sink_startofpacket.DB_MAX_OUTPUT_PORT_TYPE +src0_endofpacket <= sink_endofpacket.DB_MAX_OUTPUT_PORT_TYPE +src0_ready => sink_ready.IN1 +clk => ~NO_FANOUT~ +reset => ~NO_FANOUT~ + + +|lights|nios_system:NiosII|nios_system_rsp_xbar_demux_002:rsp_xbar_demux_016 +sink_valid[0] => src0_valid.IN0 +sink_data[0] => src0_data[0].DATAIN +sink_data[1] => src0_data[1].DATAIN +sink_data[2] => src0_data[2].DATAIN +sink_data[3] => src0_data[3].DATAIN +sink_data[4] => src0_data[4].DATAIN +sink_data[5] => src0_data[5].DATAIN +sink_data[6] => src0_data[6].DATAIN +sink_data[7] => src0_data[7].DATAIN +sink_data[8] => src0_data[8].DATAIN +sink_data[9] => src0_data[9].DATAIN +sink_data[10] => src0_data[10].DATAIN +sink_data[11] => src0_data[11].DATAIN +sink_data[12] => src0_data[12].DATAIN +sink_data[13] => src0_data[13].DATAIN +sink_data[14] => src0_data[14].DATAIN +sink_data[15] => src0_data[15].DATAIN +sink_data[16] => src0_data[16].DATAIN +sink_data[17] => src0_data[17].DATAIN +sink_data[18] => src0_data[18].DATAIN +sink_data[19] => src0_data[19].DATAIN +sink_data[20] => src0_data[20].DATAIN +sink_data[21] => src0_data[21].DATAIN +sink_data[22] => src0_data[22].DATAIN +sink_data[23] => src0_data[23].DATAIN +sink_data[24] => src0_data[24].DATAIN +sink_data[25] => src0_data[25].DATAIN +sink_data[26] => src0_data[26].DATAIN +sink_data[27] => src0_data[27].DATAIN +sink_data[28] => src0_data[28].DATAIN +sink_data[29] => src0_data[29].DATAIN +sink_data[30] => src0_data[30].DATAIN +sink_data[31] => src0_data[31].DATAIN +sink_data[32] => src0_data[32].DATAIN +sink_data[33] => src0_data[33].DATAIN +sink_data[34] => src0_data[34].DATAIN +sink_data[35] => src0_data[35].DATAIN +sink_data[36] => src0_data[36].DATAIN +sink_data[37] => src0_data[37].DATAIN +sink_data[38] => src0_data[38].DATAIN +sink_data[39] => src0_data[39].DATAIN +sink_data[40] => src0_data[40].DATAIN +sink_data[41] => src0_data[41].DATAIN +sink_data[42] => src0_data[42].DATAIN +sink_data[43] => src0_data[43].DATAIN +sink_data[44] => src0_data[44].DATAIN +sink_data[45] => src0_data[45].DATAIN +sink_data[46] => src0_data[46].DATAIN +sink_data[47] => src0_data[47].DATAIN +sink_data[48] => src0_data[48].DATAIN +sink_data[49] => src0_data[49].DATAIN +sink_data[50] => src0_data[50].DATAIN +sink_data[51] => src0_data[51].DATAIN +sink_data[52] => src0_data[52].DATAIN +sink_data[53] => src0_data[53].DATAIN +sink_data[54] => src0_data[54].DATAIN +sink_data[55] => src0_data[55].DATAIN +sink_data[56] => src0_data[56].DATAIN +sink_data[57] => src0_data[57].DATAIN +sink_data[58] => src0_data[58].DATAIN +sink_data[59] => src0_data[59].DATAIN +sink_data[60] => src0_data[60].DATAIN +sink_data[61] => src0_data[61].DATAIN +sink_data[62] => src0_data[62].DATAIN +sink_data[63] => src0_data[63].DATAIN +sink_data[64] => src0_data[64].DATAIN +sink_data[65] => src0_data[65].DATAIN +sink_data[66] => src0_data[66].DATAIN +sink_data[67] => src0_data[67].DATAIN +sink_data[68] => src0_data[68].DATAIN +sink_data[69] => src0_data[69].DATAIN +sink_data[70] => src0_data[70].DATAIN +sink_data[71] => src0_data[71].DATAIN +sink_data[72] => src0_data[72].DATAIN +sink_data[73] => src0_data[73].DATAIN +sink_data[74] => src0_data[74].DATAIN +sink_data[75] => src0_data[75].DATAIN +sink_data[76] => src0_data[76].DATAIN +sink_data[77] => src0_data[77].DATAIN +sink_data[78] => src0_data[78].DATAIN +sink_data[79] => src0_data[79].DATAIN +sink_data[80] => src0_data[80].DATAIN +sink_data[81] => src0_data[81].DATAIN +sink_data[82] => src0_data[82].DATAIN +sink_data[83] => src0_data[83].DATAIN +sink_data[84] => src0_data[84].DATAIN +sink_data[85] => src0_data[85].DATAIN +sink_data[86] => src0_data[86].DATAIN +sink_data[87] => src0_data[87].DATAIN +sink_data[88] => src0_data[88].DATAIN +sink_data[89] => src0_data[89].DATAIN +sink_data[90] => src0_data[90].DATAIN +sink_data[91] => src0_data[91].DATAIN +sink_data[92] => src0_data[92].DATAIN +sink_data[93] => src0_data[93].DATAIN +sink_data[94] => src0_data[94].DATAIN +sink_data[95] => src0_data[95].DATAIN +sink_channel[0] => src0_valid.IN1 +sink_channel[0] => sink_ready.IN0 +sink_channel[1] => src0_channel[0].DATAIN +sink_channel[2] => src0_channel[1].DATAIN +sink_channel[3] => src0_channel[2].DATAIN +sink_channel[4] => src0_channel[3].DATAIN +sink_channel[5] => src0_channel[4].DATAIN +sink_channel[6] => src0_channel[5].DATAIN +sink_channel[7] => src0_channel[6].DATAIN +sink_channel[8] => src0_channel[7].DATAIN +sink_channel[9] => src0_channel[8].DATAIN +sink_channel[10] => src0_channel[9].DATAIN +sink_channel[11] => src0_channel[10].DATAIN +sink_channel[12] => src0_channel[11].DATAIN +sink_channel[13] => src0_channel[12].DATAIN +sink_channel[14] => src0_channel[13].DATAIN +sink_channel[15] => src0_channel[14].DATAIN +sink_channel[16] => src0_channel[15].DATAIN +sink_channel[17] => src0_channel[16].DATAIN +sink_startofpacket => src0_startofpacket.DATAIN +sink_endofpacket => src0_endofpacket.DATAIN +sink_ready <= sink_ready.DB_MAX_OUTPUT_PORT_TYPE +src0_valid <= src0_valid.DB_MAX_OUTPUT_PORT_TYPE +src0_data[0] <= sink_data[0].DB_MAX_OUTPUT_PORT_TYPE +src0_data[1] <= sink_data[1].DB_MAX_OUTPUT_PORT_TYPE +src0_data[2] <= sink_data[2].DB_MAX_OUTPUT_PORT_TYPE +src0_data[3] <= sink_data[3].DB_MAX_OUTPUT_PORT_TYPE +src0_data[4] <= sink_data[4].DB_MAX_OUTPUT_PORT_TYPE +src0_data[5] <= sink_data[5].DB_MAX_OUTPUT_PORT_TYPE +src0_data[6] <= sink_data[6].DB_MAX_OUTPUT_PORT_TYPE +src0_data[7] <= sink_data[7].DB_MAX_OUTPUT_PORT_TYPE +src0_data[8] <= sink_data[8].DB_MAX_OUTPUT_PORT_TYPE +src0_data[9] <= sink_data[9].DB_MAX_OUTPUT_PORT_TYPE +src0_data[10] <= sink_data[10].DB_MAX_OUTPUT_PORT_TYPE +src0_data[11] <= sink_data[11].DB_MAX_OUTPUT_PORT_TYPE +src0_data[12] <= sink_data[12].DB_MAX_OUTPUT_PORT_TYPE +src0_data[13] <= sink_data[13].DB_MAX_OUTPUT_PORT_TYPE +src0_data[14] <= sink_data[14].DB_MAX_OUTPUT_PORT_TYPE +src0_data[15] <= sink_data[15].DB_MAX_OUTPUT_PORT_TYPE +src0_data[16] <= sink_data[16].DB_MAX_OUTPUT_PORT_TYPE +src0_data[17] <= sink_data[17].DB_MAX_OUTPUT_PORT_TYPE +src0_data[18] <= sink_data[18].DB_MAX_OUTPUT_PORT_TYPE +src0_data[19] <= sink_data[19].DB_MAX_OUTPUT_PORT_TYPE +src0_data[20] <= sink_data[20].DB_MAX_OUTPUT_PORT_TYPE +src0_data[21] <= sink_data[21].DB_MAX_OUTPUT_PORT_TYPE +src0_data[22] <= sink_data[22].DB_MAX_OUTPUT_PORT_TYPE +src0_data[23] <= sink_data[23].DB_MAX_OUTPUT_PORT_TYPE +src0_data[24] <= sink_data[24].DB_MAX_OUTPUT_PORT_TYPE +src0_data[25] <= sink_data[25].DB_MAX_OUTPUT_PORT_TYPE +src0_data[26] <= sink_data[26].DB_MAX_OUTPUT_PORT_TYPE +src0_data[27] <= sink_data[27].DB_MAX_OUTPUT_PORT_TYPE +src0_data[28] <= sink_data[28].DB_MAX_OUTPUT_PORT_TYPE +src0_data[29] <= sink_data[29].DB_MAX_OUTPUT_PORT_TYPE +src0_data[30] <= sink_data[30].DB_MAX_OUTPUT_PORT_TYPE +src0_data[31] <= sink_data[31].DB_MAX_OUTPUT_PORT_TYPE +src0_data[32] <= sink_data[32].DB_MAX_OUTPUT_PORT_TYPE +src0_data[33] <= sink_data[33].DB_MAX_OUTPUT_PORT_TYPE +src0_data[34] <= sink_data[34].DB_MAX_OUTPUT_PORT_TYPE +src0_data[35] <= sink_data[35].DB_MAX_OUTPUT_PORT_TYPE +src0_data[36] <= sink_data[36].DB_MAX_OUTPUT_PORT_TYPE +src0_data[37] <= sink_data[37].DB_MAX_OUTPUT_PORT_TYPE +src0_data[38] <= sink_data[38].DB_MAX_OUTPUT_PORT_TYPE +src0_data[39] <= sink_data[39].DB_MAX_OUTPUT_PORT_TYPE +src0_data[40] <= sink_data[40].DB_MAX_OUTPUT_PORT_TYPE +src0_data[41] <= sink_data[41].DB_MAX_OUTPUT_PORT_TYPE +src0_data[42] <= sink_data[42].DB_MAX_OUTPUT_PORT_TYPE +src0_data[43] <= sink_data[43].DB_MAX_OUTPUT_PORT_TYPE +src0_data[44] <= sink_data[44].DB_MAX_OUTPUT_PORT_TYPE +src0_data[45] <= sink_data[45].DB_MAX_OUTPUT_PORT_TYPE +src0_data[46] <= sink_data[46].DB_MAX_OUTPUT_PORT_TYPE +src0_data[47] <= sink_data[47].DB_MAX_OUTPUT_PORT_TYPE +src0_data[48] <= sink_data[48].DB_MAX_OUTPUT_PORT_TYPE +src0_data[49] <= sink_data[49].DB_MAX_OUTPUT_PORT_TYPE +src0_data[50] <= sink_data[50].DB_MAX_OUTPUT_PORT_TYPE +src0_data[51] <= sink_data[51].DB_MAX_OUTPUT_PORT_TYPE +src0_data[52] <= sink_data[52].DB_MAX_OUTPUT_PORT_TYPE +src0_data[53] <= sink_data[53].DB_MAX_OUTPUT_PORT_TYPE +src0_data[54] <= sink_data[54].DB_MAX_OUTPUT_PORT_TYPE +src0_data[55] <= sink_data[55].DB_MAX_OUTPUT_PORT_TYPE +src0_data[56] <= sink_data[56].DB_MAX_OUTPUT_PORT_TYPE +src0_data[57] <= sink_data[57].DB_MAX_OUTPUT_PORT_TYPE +src0_data[58] <= sink_data[58].DB_MAX_OUTPUT_PORT_TYPE +src0_data[59] <= sink_data[59].DB_MAX_OUTPUT_PORT_TYPE +src0_data[60] <= sink_data[60].DB_MAX_OUTPUT_PORT_TYPE +src0_data[61] <= sink_data[61].DB_MAX_OUTPUT_PORT_TYPE +src0_data[62] <= sink_data[62].DB_MAX_OUTPUT_PORT_TYPE +src0_data[63] <= sink_data[63].DB_MAX_OUTPUT_PORT_TYPE +src0_data[64] <= sink_data[64].DB_MAX_OUTPUT_PORT_TYPE +src0_data[65] <= sink_data[65].DB_MAX_OUTPUT_PORT_TYPE +src0_data[66] <= sink_data[66].DB_MAX_OUTPUT_PORT_TYPE +src0_data[67] <= sink_data[67].DB_MAX_OUTPUT_PORT_TYPE +src0_data[68] <= sink_data[68].DB_MAX_OUTPUT_PORT_TYPE +src0_data[69] <= sink_data[69].DB_MAX_OUTPUT_PORT_TYPE +src0_data[70] <= sink_data[70].DB_MAX_OUTPUT_PORT_TYPE +src0_data[71] <= sink_data[71].DB_MAX_OUTPUT_PORT_TYPE +src0_data[72] <= sink_data[72].DB_MAX_OUTPUT_PORT_TYPE +src0_data[73] <= sink_data[73].DB_MAX_OUTPUT_PORT_TYPE +src0_data[74] <= sink_data[74].DB_MAX_OUTPUT_PORT_TYPE +src0_data[75] <= sink_data[75].DB_MAX_OUTPUT_PORT_TYPE +src0_data[76] <= sink_data[76].DB_MAX_OUTPUT_PORT_TYPE +src0_data[77] <= sink_data[77].DB_MAX_OUTPUT_PORT_TYPE +src0_data[78] <= sink_data[78].DB_MAX_OUTPUT_PORT_TYPE +src0_data[79] <= sink_data[79].DB_MAX_OUTPUT_PORT_TYPE +src0_data[80] <= sink_data[80].DB_MAX_OUTPUT_PORT_TYPE +src0_data[81] <= sink_data[81].DB_MAX_OUTPUT_PORT_TYPE +src0_data[82] <= sink_data[82].DB_MAX_OUTPUT_PORT_TYPE +src0_data[83] <= sink_data[83].DB_MAX_OUTPUT_PORT_TYPE +src0_data[84] <= sink_data[84].DB_MAX_OUTPUT_PORT_TYPE +src0_data[85] <= sink_data[85].DB_MAX_OUTPUT_PORT_TYPE +src0_data[86] <= sink_data[86].DB_MAX_OUTPUT_PORT_TYPE +src0_data[87] <= sink_data[87].DB_MAX_OUTPUT_PORT_TYPE +src0_data[88] <= sink_data[88].DB_MAX_OUTPUT_PORT_TYPE +src0_data[89] <= sink_data[89].DB_MAX_OUTPUT_PORT_TYPE +src0_data[90] <= sink_data[90].DB_MAX_OUTPUT_PORT_TYPE +src0_data[91] <= sink_data[91].DB_MAX_OUTPUT_PORT_TYPE +src0_data[92] <= sink_data[92].DB_MAX_OUTPUT_PORT_TYPE +src0_data[93] <= sink_data[93].DB_MAX_OUTPUT_PORT_TYPE +src0_data[94] <= sink_data[94].DB_MAX_OUTPUT_PORT_TYPE +src0_data[95] <= sink_data[95].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[0] <= sink_channel[1].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[1] <= sink_channel[2].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[2] <= sink_channel[3].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[3] <= sink_channel[4].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[4] <= sink_channel[5].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[5] <= sink_channel[6].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[6] <= sink_channel[7].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[7] <= sink_channel[8].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[8] <= sink_channel[9].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[9] <= sink_channel[10].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[10] <= sink_channel[11].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[11] <= sink_channel[12].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[12] <= sink_channel[13].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[13] <= sink_channel[14].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[14] <= sink_channel[15].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[15] <= sink_channel[16].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[16] <= sink_channel[17].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[17] <= +src0_startofpacket <= sink_startofpacket.DB_MAX_OUTPUT_PORT_TYPE +src0_endofpacket <= sink_endofpacket.DB_MAX_OUTPUT_PORT_TYPE +src0_ready => sink_ready.IN1 +clk => ~NO_FANOUT~ +reset => ~NO_FANOUT~ + + +|lights|nios_system:NiosII|nios_system_rsp_xbar_demux_002:rsp_xbar_demux_017 +sink_valid[0] => src0_valid.IN0 +sink_data[0] => src0_data[0].DATAIN +sink_data[1] => src0_data[1].DATAIN +sink_data[2] => src0_data[2].DATAIN +sink_data[3] => src0_data[3].DATAIN +sink_data[4] => src0_data[4].DATAIN +sink_data[5] => src0_data[5].DATAIN +sink_data[6] => src0_data[6].DATAIN +sink_data[7] => src0_data[7].DATAIN +sink_data[8] => src0_data[8].DATAIN +sink_data[9] => src0_data[9].DATAIN +sink_data[10] => src0_data[10].DATAIN +sink_data[11] => src0_data[11].DATAIN +sink_data[12] => src0_data[12].DATAIN +sink_data[13] => src0_data[13].DATAIN +sink_data[14] => src0_data[14].DATAIN +sink_data[15] => src0_data[15].DATAIN +sink_data[16] => src0_data[16].DATAIN +sink_data[17] => src0_data[17].DATAIN +sink_data[18] => src0_data[18].DATAIN +sink_data[19] => src0_data[19].DATAIN +sink_data[20] => src0_data[20].DATAIN +sink_data[21] => src0_data[21].DATAIN +sink_data[22] => src0_data[22].DATAIN +sink_data[23] => src0_data[23].DATAIN +sink_data[24] => src0_data[24].DATAIN +sink_data[25] => src0_data[25].DATAIN +sink_data[26] => src0_data[26].DATAIN +sink_data[27] => src0_data[27].DATAIN +sink_data[28] => src0_data[28].DATAIN +sink_data[29] => src0_data[29].DATAIN +sink_data[30] => src0_data[30].DATAIN +sink_data[31] => src0_data[31].DATAIN +sink_data[32] => src0_data[32].DATAIN +sink_data[33] => src0_data[33].DATAIN +sink_data[34] => src0_data[34].DATAIN +sink_data[35] => src0_data[35].DATAIN +sink_data[36] => src0_data[36].DATAIN +sink_data[37] => src0_data[37].DATAIN +sink_data[38] => src0_data[38].DATAIN +sink_data[39] => src0_data[39].DATAIN +sink_data[40] => src0_data[40].DATAIN +sink_data[41] => src0_data[41].DATAIN +sink_data[42] => src0_data[42].DATAIN +sink_data[43] => src0_data[43].DATAIN +sink_data[44] => src0_data[44].DATAIN +sink_data[45] => src0_data[45].DATAIN +sink_data[46] => src0_data[46].DATAIN +sink_data[47] => src0_data[47].DATAIN +sink_data[48] => src0_data[48].DATAIN +sink_data[49] => src0_data[49].DATAIN +sink_data[50] => src0_data[50].DATAIN +sink_data[51] => src0_data[51].DATAIN +sink_data[52] => src0_data[52].DATAIN +sink_data[53] => src0_data[53].DATAIN +sink_data[54] => src0_data[54].DATAIN +sink_data[55] => src0_data[55].DATAIN +sink_data[56] => src0_data[56].DATAIN +sink_data[57] => src0_data[57].DATAIN +sink_data[58] => src0_data[58].DATAIN +sink_data[59] => src0_data[59].DATAIN +sink_data[60] => src0_data[60].DATAIN +sink_data[61] => src0_data[61].DATAIN +sink_data[62] => src0_data[62].DATAIN +sink_data[63] => src0_data[63].DATAIN +sink_data[64] => src0_data[64].DATAIN +sink_data[65] => src0_data[65].DATAIN +sink_data[66] => src0_data[66].DATAIN +sink_data[67] => src0_data[67].DATAIN +sink_data[68] => src0_data[68].DATAIN +sink_data[69] => src0_data[69].DATAIN +sink_data[70] => src0_data[70].DATAIN +sink_data[71] => src0_data[71].DATAIN +sink_data[72] => src0_data[72].DATAIN +sink_data[73] => src0_data[73].DATAIN +sink_data[74] => src0_data[74].DATAIN +sink_data[75] => src0_data[75].DATAIN +sink_data[76] => src0_data[76].DATAIN +sink_data[77] => src0_data[77].DATAIN +sink_data[78] => src0_data[78].DATAIN +sink_data[79] => src0_data[79].DATAIN +sink_data[80] => src0_data[80].DATAIN +sink_data[81] => src0_data[81].DATAIN +sink_data[82] => src0_data[82].DATAIN +sink_data[83] => src0_data[83].DATAIN +sink_data[84] => src0_data[84].DATAIN +sink_data[85] => src0_data[85].DATAIN +sink_data[86] => src0_data[86].DATAIN +sink_data[87] => src0_data[87].DATAIN +sink_data[88] => src0_data[88].DATAIN +sink_data[89] => src0_data[89].DATAIN +sink_data[90] => src0_data[90].DATAIN +sink_data[91] => src0_data[91].DATAIN +sink_data[92] => src0_data[92].DATAIN +sink_data[93] => src0_data[93].DATAIN +sink_data[94] => src0_data[94].DATAIN +sink_data[95] => src0_data[95].DATAIN +sink_channel[0] => src0_valid.IN1 +sink_channel[0] => sink_ready.IN0 +sink_channel[1] => src0_channel[0].DATAIN +sink_channel[2] => src0_channel[1].DATAIN +sink_channel[3] => src0_channel[2].DATAIN +sink_channel[4] => src0_channel[3].DATAIN +sink_channel[5] => src0_channel[4].DATAIN +sink_channel[6] => src0_channel[5].DATAIN +sink_channel[7] => src0_channel[6].DATAIN +sink_channel[8] => src0_channel[7].DATAIN +sink_channel[9] => src0_channel[8].DATAIN +sink_channel[10] => src0_channel[9].DATAIN +sink_channel[11] => src0_channel[10].DATAIN +sink_channel[12] => src0_channel[11].DATAIN +sink_channel[13] => src0_channel[12].DATAIN +sink_channel[14] => src0_channel[13].DATAIN +sink_channel[15] => src0_channel[14].DATAIN +sink_channel[16] => src0_channel[15].DATAIN +sink_channel[17] => src0_channel[16].DATAIN +sink_startofpacket => src0_startofpacket.DATAIN +sink_endofpacket => src0_endofpacket.DATAIN +sink_ready <= sink_ready.DB_MAX_OUTPUT_PORT_TYPE +src0_valid <= src0_valid.DB_MAX_OUTPUT_PORT_TYPE +src0_data[0] <= sink_data[0].DB_MAX_OUTPUT_PORT_TYPE +src0_data[1] <= sink_data[1].DB_MAX_OUTPUT_PORT_TYPE +src0_data[2] <= sink_data[2].DB_MAX_OUTPUT_PORT_TYPE +src0_data[3] <= sink_data[3].DB_MAX_OUTPUT_PORT_TYPE +src0_data[4] <= sink_data[4].DB_MAX_OUTPUT_PORT_TYPE +src0_data[5] <= sink_data[5].DB_MAX_OUTPUT_PORT_TYPE +src0_data[6] <= sink_data[6].DB_MAX_OUTPUT_PORT_TYPE +src0_data[7] <= sink_data[7].DB_MAX_OUTPUT_PORT_TYPE +src0_data[8] <= sink_data[8].DB_MAX_OUTPUT_PORT_TYPE +src0_data[9] <= sink_data[9].DB_MAX_OUTPUT_PORT_TYPE +src0_data[10] <= sink_data[10].DB_MAX_OUTPUT_PORT_TYPE +src0_data[11] <= sink_data[11].DB_MAX_OUTPUT_PORT_TYPE +src0_data[12] <= sink_data[12].DB_MAX_OUTPUT_PORT_TYPE +src0_data[13] <= sink_data[13].DB_MAX_OUTPUT_PORT_TYPE +src0_data[14] <= sink_data[14].DB_MAX_OUTPUT_PORT_TYPE +src0_data[15] <= sink_data[15].DB_MAX_OUTPUT_PORT_TYPE +src0_data[16] <= sink_data[16].DB_MAX_OUTPUT_PORT_TYPE +src0_data[17] <= sink_data[17].DB_MAX_OUTPUT_PORT_TYPE +src0_data[18] <= sink_data[18].DB_MAX_OUTPUT_PORT_TYPE +src0_data[19] <= sink_data[19].DB_MAX_OUTPUT_PORT_TYPE +src0_data[20] <= sink_data[20].DB_MAX_OUTPUT_PORT_TYPE +src0_data[21] <= sink_data[21].DB_MAX_OUTPUT_PORT_TYPE +src0_data[22] <= sink_data[22].DB_MAX_OUTPUT_PORT_TYPE +src0_data[23] <= sink_data[23].DB_MAX_OUTPUT_PORT_TYPE +src0_data[24] <= sink_data[24].DB_MAX_OUTPUT_PORT_TYPE +src0_data[25] <= sink_data[25].DB_MAX_OUTPUT_PORT_TYPE +src0_data[26] <= sink_data[26].DB_MAX_OUTPUT_PORT_TYPE +src0_data[27] <= sink_data[27].DB_MAX_OUTPUT_PORT_TYPE +src0_data[28] <= sink_data[28].DB_MAX_OUTPUT_PORT_TYPE +src0_data[29] <= sink_data[29].DB_MAX_OUTPUT_PORT_TYPE +src0_data[30] <= sink_data[30].DB_MAX_OUTPUT_PORT_TYPE +src0_data[31] <= sink_data[31].DB_MAX_OUTPUT_PORT_TYPE +src0_data[32] <= sink_data[32].DB_MAX_OUTPUT_PORT_TYPE +src0_data[33] <= sink_data[33].DB_MAX_OUTPUT_PORT_TYPE +src0_data[34] <= sink_data[34].DB_MAX_OUTPUT_PORT_TYPE +src0_data[35] <= sink_data[35].DB_MAX_OUTPUT_PORT_TYPE +src0_data[36] <= sink_data[36].DB_MAX_OUTPUT_PORT_TYPE +src0_data[37] <= sink_data[37].DB_MAX_OUTPUT_PORT_TYPE +src0_data[38] <= sink_data[38].DB_MAX_OUTPUT_PORT_TYPE +src0_data[39] <= sink_data[39].DB_MAX_OUTPUT_PORT_TYPE +src0_data[40] <= sink_data[40].DB_MAX_OUTPUT_PORT_TYPE +src0_data[41] <= sink_data[41].DB_MAX_OUTPUT_PORT_TYPE +src0_data[42] <= sink_data[42].DB_MAX_OUTPUT_PORT_TYPE +src0_data[43] <= sink_data[43].DB_MAX_OUTPUT_PORT_TYPE +src0_data[44] <= sink_data[44].DB_MAX_OUTPUT_PORT_TYPE +src0_data[45] <= sink_data[45].DB_MAX_OUTPUT_PORT_TYPE +src0_data[46] <= sink_data[46].DB_MAX_OUTPUT_PORT_TYPE +src0_data[47] <= sink_data[47].DB_MAX_OUTPUT_PORT_TYPE +src0_data[48] <= sink_data[48].DB_MAX_OUTPUT_PORT_TYPE +src0_data[49] <= sink_data[49].DB_MAX_OUTPUT_PORT_TYPE +src0_data[50] <= sink_data[50].DB_MAX_OUTPUT_PORT_TYPE +src0_data[51] <= sink_data[51].DB_MAX_OUTPUT_PORT_TYPE +src0_data[52] <= sink_data[52].DB_MAX_OUTPUT_PORT_TYPE +src0_data[53] <= sink_data[53].DB_MAX_OUTPUT_PORT_TYPE +src0_data[54] <= sink_data[54].DB_MAX_OUTPUT_PORT_TYPE +src0_data[55] <= sink_data[55].DB_MAX_OUTPUT_PORT_TYPE +src0_data[56] <= sink_data[56].DB_MAX_OUTPUT_PORT_TYPE +src0_data[57] <= sink_data[57].DB_MAX_OUTPUT_PORT_TYPE +src0_data[58] <= sink_data[58].DB_MAX_OUTPUT_PORT_TYPE +src0_data[59] <= sink_data[59].DB_MAX_OUTPUT_PORT_TYPE +src0_data[60] <= sink_data[60].DB_MAX_OUTPUT_PORT_TYPE +src0_data[61] <= sink_data[61].DB_MAX_OUTPUT_PORT_TYPE +src0_data[62] <= sink_data[62].DB_MAX_OUTPUT_PORT_TYPE +src0_data[63] <= sink_data[63].DB_MAX_OUTPUT_PORT_TYPE +src0_data[64] <= sink_data[64].DB_MAX_OUTPUT_PORT_TYPE +src0_data[65] <= sink_data[65].DB_MAX_OUTPUT_PORT_TYPE +src0_data[66] <= sink_data[66].DB_MAX_OUTPUT_PORT_TYPE +src0_data[67] <= sink_data[67].DB_MAX_OUTPUT_PORT_TYPE +src0_data[68] <= sink_data[68].DB_MAX_OUTPUT_PORT_TYPE +src0_data[69] <= sink_data[69].DB_MAX_OUTPUT_PORT_TYPE +src0_data[70] <= sink_data[70].DB_MAX_OUTPUT_PORT_TYPE +src0_data[71] <= sink_data[71].DB_MAX_OUTPUT_PORT_TYPE +src0_data[72] <= sink_data[72].DB_MAX_OUTPUT_PORT_TYPE +src0_data[73] <= sink_data[73].DB_MAX_OUTPUT_PORT_TYPE +src0_data[74] <= sink_data[74].DB_MAX_OUTPUT_PORT_TYPE +src0_data[75] <= sink_data[75].DB_MAX_OUTPUT_PORT_TYPE +src0_data[76] <= sink_data[76].DB_MAX_OUTPUT_PORT_TYPE +src0_data[77] <= sink_data[77].DB_MAX_OUTPUT_PORT_TYPE +src0_data[78] <= sink_data[78].DB_MAX_OUTPUT_PORT_TYPE +src0_data[79] <= sink_data[79].DB_MAX_OUTPUT_PORT_TYPE +src0_data[80] <= sink_data[80].DB_MAX_OUTPUT_PORT_TYPE +src0_data[81] <= sink_data[81].DB_MAX_OUTPUT_PORT_TYPE +src0_data[82] <= sink_data[82].DB_MAX_OUTPUT_PORT_TYPE +src0_data[83] <= sink_data[83].DB_MAX_OUTPUT_PORT_TYPE +src0_data[84] <= sink_data[84].DB_MAX_OUTPUT_PORT_TYPE +src0_data[85] <= sink_data[85].DB_MAX_OUTPUT_PORT_TYPE +src0_data[86] <= sink_data[86].DB_MAX_OUTPUT_PORT_TYPE +src0_data[87] <= sink_data[87].DB_MAX_OUTPUT_PORT_TYPE +src0_data[88] <= sink_data[88].DB_MAX_OUTPUT_PORT_TYPE +src0_data[89] <= sink_data[89].DB_MAX_OUTPUT_PORT_TYPE +src0_data[90] <= sink_data[90].DB_MAX_OUTPUT_PORT_TYPE +src0_data[91] <= sink_data[91].DB_MAX_OUTPUT_PORT_TYPE +src0_data[92] <= sink_data[92].DB_MAX_OUTPUT_PORT_TYPE +src0_data[93] <= sink_data[93].DB_MAX_OUTPUT_PORT_TYPE +src0_data[94] <= sink_data[94].DB_MAX_OUTPUT_PORT_TYPE +src0_data[95] <= sink_data[95].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[0] <= sink_channel[1].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[1] <= sink_channel[2].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[2] <= sink_channel[3].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[3] <= sink_channel[4].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[4] <= sink_channel[5].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[5] <= sink_channel[6].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[6] <= sink_channel[7].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[7] <= sink_channel[8].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[8] <= sink_channel[9].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[9] <= sink_channel[10].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[10] <= sink_channel[11].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[11] <= sink_channel[12].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[12] <= sink_channel[13].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[13] <= sink_channel[14].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[14] <= sink_channel[15].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[15] <= sink_channel[16].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[16] <= sink_channel[17].DB_MAX_OUTPUT_PORT_TYPE +src0_channel[17] <= +src0_startofpacket <= sink_startofpacket.DB_MAX_OUTPUT_PORT_TYPE +src0_endofpacket <= sink_endofpacket.DB_MAX_OUTPUT_PORT_TYPE +src0_ready => sink_ready.IN1 +clk => ~NO_FANOUT~ +reset => ~NO_FANOUT~ + + +|lights|nios_system:NiosII|nios_system_rsp_xbar_mux:rsp_xbar_mux +sink0_valid => request[0].IN1 +sink0_data[0] => src_payload.IN1 +sink0_data[1] => src_payload.IN1 +sink0_data[2] => src_payload.IN1 +sink0_data[3] => src_payload.IN1 +sink0_data[4] => src_payload.IN1 +sink0_data[5] => src_payload.IN1 +sink0_data[6] => src_payload.IN1 +sink0_data[7] => src_payload.IN1 +sink0_data[8] => src_payload.IN1 +sink0_data[9] => src_payload.IN1 +sink0_data[10] => src_payload.IN1 +sink0_data[11] => src_payload.IN1 +sink0_data[12] => src_payload.IN1 +sink0_data[13] => src_payload.IN1 +sink0_data[14] => src_payload.IN1 +sink0_data[15] => src_payload.IN1 +sink0_data[16] => src_payload.IN1 +sink0_data[17] => src_payload.IN1 +sink0_data[18] => src_payload.IN1 +sink0_data[19] => src_payload.IN1 +sink0_data[20] => src_payload.IN1 +sink0_data[21] => src_payload.IN1 +sink0_data[22] => src_payload.IN1 +sink0_data[23] => src_payload.IN1 +sink0_data[24] => src_payload.IN1 +sink0_data[25] => src_payload.IN1 +sink0_data[26] => src_payload.IN1 +sink0_data[27] => src_payload.IN1 +sink0_data[28] => src_payload.IN1 +sink0_data[29] => src_payload.IN1 +sink0_data[30] => src_payload.IN1 +sink0_data[31] => src_payload.IN1 +sink0_data[32] => src_payload.IN1 +sink0_data[33] => src_payload.IN1 +sink0_data[34] => src_payload.IN1 +sink0_data[35] => src_payload.IN1 +sink0_data[36] => src_payload.IN1 +sink0_data[37] => src_payload.IN1 +sink0_data[38] => src_payload.IN1 +sink0_data[39] => src_payload.IN1 +sink0_data[40] => src_payload.IN1 +sink0_data[41] => src_payload.IN1 +sink0_data[42] => src_payload.IN1 +sink0_data[43] => src_payload.IN1 +sink0_data[44] => src_payload.IN1 +sink0_data[45] => src_payload.IN1 +sink0_data[46] => src_payload.IN1 +sink0_data[47] => src_payload.IN1 +sink0_data[48] => src_payload.IN1 +sink0_data[49] => src_payload.IN1 +sink0_data[50] => src_payload.IN1 +sink0_data[51] => src_payload.IN1 +sink0_data[52] => src_payload.IN1 +sink0_data[53] => src_payload.IN1 +sink0_data[54] => src_payload.IN1 +sink0_data[55] => src_payload.IN1 +sink0_data[56] => src_payload.IN1 +sink0_data[57] => src_payload.IN1 +sink0_data[58] => src_payload.IN1 +sink0_data[59] => src_payload.IN1 +sink0_data[59] => last_cycle.IN1 +sink0_data[60] => src_payload.IN1 +sink0_data[61] => src_payload.IN1 +sink0_data[62] => src_payload.IN1 +sink0_data[63] => src_payload.IN1 +sink0_data[64] => src_payload.IN1 +sink0_data[65] => src_payload.IN1 +sink0_data[66] => src_payload.IN1 +sink0_data[67] => src_payload.IN1 +sink0_data[68] => src_payload.IN1 +sink0_data[69] => src_payload.IN1 +sink0_data[70] => src_payload.IN1 +sink0_data[71] => src_payload.IN1 +sink0_data[72] => src_payload.IN1 +sink0_data[73] => src_payload.IN1 +sink0_data[74] => src_payload.IN1 +sink0_data[75] => src_payload.IN1 +sink0_data[76] => src_payload.IN1 +sink0_data[77] => src_payload.IN1 +sink0_data[78] => src_payload.IN1 +sink0_data[79] => src_payload.IN1 +sink0_data[80] => src_payload.IN1 +sink0_data[81] => src_payload.IN1 +sink0_data[82] => src_payload.IN1 +sink0_data[83] => src_payload.IN1 +sink0_data[84] => src_payload.IN1 +sink0_data[85] => src_payload.IN1 +sink0_data[86] => src_payload.IN1 +sink0_data[87] => src_payload.IN1 +sink0_data[88] => src_payload.IN1 +sink0_data[89] => src_payload.IN1 +sink0_data[90] => src_payload.IN1 +sink0_data[91] => src_payload.IN1 +sink0_data[92] => src_payload.IN1 +sink0_data[93] => src_payload.IN1 +sink0_data[94] => src_payload.IN1 +sink0_data[95] => src_payload.IN1 +sink0_channel[0] => src_payload.IN1 +sink0_channel[1] => src_payload.IN1 +sink0_channel[2] => src_payload.IN1 +sink0_channel[3] => src_payload.IN1 +sink0_channel[4] => src_payload.IN1 +sink0_channel[5] => src_payload.IN1 +sink0_channel[6] => src_payload.IN1 +sink0_channel[7] => src_payload.IN1 +sink0_channel[8] => src_payload.IN1 +sink0_channel[9] => src_payload.IN1 +sink0_channel[10] => src_payload.IN1 +sink0_channel[11] => src_payload.IN1 +sink0_channel[12] => src_payload.IN1 +sink0_channel[13] => src_payload.IN1 +sink0_channel[14] => src_payload.IN1 +sink0_channel[15] => src_payload.IN1 +sink0_channel[16] => src_payload.IN1 +sink0_channel[17] => src_payload.IN1 +sink0_startofpacket => src_payload.IN1 +sink0_endofpacket => src_payload.IN1 +sink0_ready <= sink0_ready.DB_MAX_OUTPUT_PORT_TYPE +sink1_valid => request[1].IN1 +sink1_data[0] => src_payload.IN1 +sink1_data[1] => src_payload.IN1 +sink1_data[2] => src_payload.IN1 +sink1_data[3] => src_payload.IN1 +sink1_data[4] => src_payload.IN1 +sink1_data[5] => src_payload.IN1 +sink1_data[6] => src_payload.IN1 +sink1_data[7] => src_payload.IN1 +sink1_data[8] => src_payload.IN1 +sink1_data[9] => src_payload.IN1 +sink1_data[10] => src_payload.IN1 +sink1_data[11] => src_payload.IN1 +sink1_data[12] => src_payload.IN1 +sink1_data[13] => src_payload.IN1 +sink1_data[14] => src_payload.IN1 +sink1_data[15] => src_payload.IN1 +sink1_data[16] => src_payload.IN1 +sink1_data[17] => src_payload.IN1 +sink1_data[18] => src_payload.IN1 +sink1_data[19] => src_payload.IN1 +sink1_data[20] => src_payload.IN1 +sink1_data[21] => src_payload.IN1 +sink1_data[22] => src_payload.IN1 +sink1_data[23] => src_payload.IN1 +sink1_data[24] => src_payload.IN1 +sink1_data[25] => src_payload.IN1 +sink1_data[26] => src_payload.IN1 +sink1_data[27] => src_payload.IN1 +sink1_data[28] => src_payload.IN1 +sink1_data[29] => src_payload.IN1 +sink1_data[30] => src_payload.IN1 +sink1_data[31] => src_payload.IN1 +sink1_data[32] => src_payload.IN1 +sink1_data[33] => src_payload.IN1 +sink1_data[34] => src_payload.IN1 +sink1_data[35] => src_payload.IN1 +sink1_data[36] => src_payload.IN1 +sink1_data[37] => src_payload.IN1 +sink1_data[38] => src_payload.IN1 +sink1_data[39] => src_payload.IN1 +sink1_data[40] => src_payload.IN1 +sink1_data[41] => src_payload.IN1 +sink1_data[42] => src_payload.IN1 +sink1_data[43] => src_payload.IN1 +sink1_data[44] => src_payload.IN1 +sink1_data[45] => src_payload.IN1 +sink1_data[46] => src_payload.IN1 +sink1_data[47] => src_payload.IN1 +sink1_data[48] => src_payload.IN1 +sink1_data[49] => src_payload.IN1 +sink1_data[50] => src_payload.IN1 +sink1_data[51] => src_payload.IN1 +sink1_data[52] => src_payload.IN1 +sink1_data[53] => src_payload.IN1 +sink1_data[54] => src_payload.IN1 +sink1_data[55] => src_payload.IN1 +sink1_data[56] => src_payload.IN1 +sink1_data[57] => src_payload.IN1 +sink1_data[58] => src_payload.IN1 +sink1_data[59] => src_payload.IN1 +sink1_data[59] => last_cycle.IN1 +sink1_data[60] => src_payload.IN1 +sink1_data[61] => src_payload.IN1 +sink1_data[62] => src_payload.IN1 +sink1_data[63] => src_payload.IN1 +sink1_data[64] => src_payload.IN1 +sink1_data[65] => src_payload.IN1 +sink1_data[66] => src_payload.IN1 +sink1_data[67] => src_payload.IN1 +sink1_data[68] => src_payload.IN1 +sink1_data[69] => src_payload.IN1 +sink1_data[70] => src_payload.IN1 +sink1_data[71] => src_payload.IN1 +sink1_data[72] => src_payload.IN1 +sink1_data[73] => src_payload.IN1 +sink1_data[74] => src_payload.IN1 +sink1_data[75] => src_payload.IN1 +sink1_data[76] => src_payload.IN1 +sink1_data[77] => src_payload.IN1 +sink1_data[78] => src_payload.IN1 +sink1_data[79] => src_payload.IN1 +sink1_data[80] => src_payload.IN1 +sink1_data[81] => src_payload.IN1 +sink1_data[82] => src_payload.IN1 +sink1_data[83] => src_payload.IN1 +sink1_data[84] => src_payload.IN1 +sink1_data[85] => src_payload.IN1 +sink1_data[86] => src_payload.IN1 +sink1_data[87] => src_payload.IN1 +sink1_data[88] => src_payload.IN1 +sink1_data[89] => src_payload.IN1 +sink1_data[90] => src_payload.IN1 +sink1_data[91] => src_payload.IN1 +sink1_data[92] => src_payload.IN1 +sink1_data[93] => src_payload.IN1 +sink1_data[94] => src_payload.IN1 +sink1_data[95] => src_payload.IN1 +sink1_channel[0] => src_payload.IN1 +sink1_channel[1] => src_payload.IN1 +sink1_channel[2] => src_payload.IN1 +sink1_channel[3] => src_payload.IN1 +sink1_channel[4] => src_payload.IN1 +sink1_channel[5] => src_payload.IN1 +sink1_channel[6] => src_payload.IN1 +sink1_channel[7] => src_payload.IN1 +sink1_channel[8] => src_payload.IN1 +sink1_channel[9] => src_payload.IN1 +sink1_channel[10] => src_payload.IN1 +sink1_channel[11] => src_payload.IN1 +sink1_channel[12] => src_payload.IN1 +sink1_channel[13] => src_payload.IN1 +sink1_channel[14] => src_payload.IN1 +sink1_channel[15] => src_payload.IN1 +sink1_channel[16] => src_payload.IN1 +sink1_channel[17] => src_payload.IN1 +sink1_startofpacket => src_payload.IN1 +sink1_endofpacket => src_payload.IN1 +sink1_ready <= sink1_ready.DB_MAX_OUTPUT_PORT_TYPE +src_valid <= src_valid.DB_MAX_OUTPUT_PORT_TYPE +src_data[0] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[1] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[2] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[3] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[4] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[5] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[6] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[7] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[8] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[9] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[10] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[11] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[12] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[13] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[14] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[15] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[16] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[17] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[18] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[19] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[20] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[21] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[22] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[23] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[24] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[25] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[26] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[27] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[28] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[29] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[30] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[31] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[32] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[33] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[34] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[35] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[36] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[37] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[38] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[39] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[40] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[41] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[42] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[43] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[44] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[45] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[46] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[47] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[48] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[49] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[50] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[51] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[52] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[53] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[54] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[55] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[56] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[57] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[58] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[59] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[60] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[61] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[62] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[63] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[64] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[65] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[66] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[67] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[68] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[69] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[70] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[71] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[72] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[73] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[74] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[75] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[76] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[77] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[78] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[79] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[80] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[81] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[82] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[83] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[84] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[85] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[86] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[87] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[88] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[89] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[90] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[91] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[92] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[93] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[94] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[95] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_channel[0] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_channel[1] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_channel[2] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_channel[3] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_channel[4] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_channel[5] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_channel[6] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_channel[7] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_channel[8] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_channel[9] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_channel[10] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_channel[11] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_channel[12] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_channel[13] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_channel[14] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_channel[15] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_channel[16] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_channel[17] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_startofpacket <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_endofpacket <= src_payload[0].DB_MAX_OUTPUT_PORT_TYPE +src_ready => last_cycle.IN0 +src_ready => sink0_ready.IN1 +src_ready => sink1_ready.IN1 +clk => clk.IN1 +reset => reset.IN1 + + +|lights|nios_system:NiosII|nios_system_rsp_xbar_mux:rsp_xbar_mux|altera_merlin_arbitrator:arb +clk => ~NO_FANOUT~ +reset => ~NO_FANOUT~ +request[0] => grant[0].DATAIN +request[0] => _.IN1 +request[0] => _.IN1 +request[1] => grant[1].DATAIN +request[1] => _.IN1 +request[1] => _.IN1 +grant[0] <= request[0].DB_MAX_OUTPUT_PORT_TYPE +grant[1] <= request[1].DB_MAX_OUTPUT_PORT_TYPE +increment_top_priority => ~NO_FANOUT~ +save_top_priority => ~NO_FANOUT~ + + +|lights|nios_system:NiosII|nios_system_rsp_xbar_mux:rsp_xbar_mux|altera_merlin_arbitrator:arb|altera_merlin_arb_adder:adder +a[0] => sum.IN0 +a[0] => full_adder.cout[0].IN0 +a[1] => cout.IN0 +a[1] => cout.IN0 +a[2] => cout.IN0 +a[2] => cout.IN0 +a[3] => sum.IN0 +b[0] => sum.IN1 +b[0] => full_adder.cout[0].IN1 +b[1] => cout.IN1 +b[1] => cout.IN1 +b[2] => cout.IN1 +b[2] => cout.IN1 +b[3] => sum.IN1 +sum[0] <= sum.DB_MAX_OUTPUT_PORT_TYPE +sum[1] <= sum.DB_MAX_OUTPUT_PORT_TYPE +sum[2] <= sum.DB_MAX_OUTPUT_PORT_TYPE +sum[3] <= sum.DB_MAX_OUTPUT_PORT_TYPE + + +|lights|nios_system:NiosII|nios_system_rsp_xbar_mux_001:rsp_xbar_mux_001 +sink0_valid => request[0].IN1 +sink0_data[0] => src_payload.IN1 +sink0_data[1] => src_payload.IN1 +sink0_data[2] => src_payload.IN1 +sink0_data[3] => src_payload.IN1 +sink0_data[4] => src_payload.IN1 +sink0_data[5] => src_payload.IN1 +sink0_data[6] => src_payload.IN1 +sink0_data[7] => src_payload.IN1 +sink0_data[8] => src_payload.IN1 +sink0_data[9] => src_payload.IN1 +sink0_data[10] => src_payload.IN1 +sink0_data[11] => src_payload.IN1 +sink0_data[12] => src_payload.IN1 +sink0_data[13] => src_payload.IN1 +sink0_data[14] => src_payload.IN1 +sink0_data[15] => src_payload.IN1 +sink0_data[16] => src_payload.IN1 +sink0_data[17] => src_payload.IN1 +sink0_data[18] => src_payload.IN1 +sink0_data[19] => src_payload.IN1 +sink0_data[20] => src_payload.IN1 +sink0_data[21] => src_payload.IN1 +sink0_data[22] => src_payload.IN1 +sink0_data[23] => src_payload.IN1 +sink0_data[24] => src_payload.IN1 +sink0_data[25] => src_payload.IN1 +sink0_data[26] => src_payload.IN1 +sink0_data[27] => src_payload.IN1 +sink0_data[28] => src_payload.IN1 +sink0_data[29] => src_payload.IN1 +sink0_data[30] => src_payload.IN1 +sink0_data[31] => src_payload.IN1 +sink0_data[32] => src_payload.IN1 +sink0_data[33] => src_payload.IN1 +sink0_data[34] => src_payload.IN1 +sink0_data[35] => src_payload.IN1 +sink0_data[36] => src_payload.IN1 +sink0_data[37] => src_payload.IN1 +sink0_data[38] => src_payload.IN1 +sink0_data[39] => src_payload.IN1 +sink0_data[40] => src_payload.IN1 +sink0_data[41] => src_payload.IN1 +sink0_data[42] => src_payload.IN1 +sink0_data[43] => src_payload.IN1 +sink0_data[44] => src_payload.IN1 +sink0_data[45] => src_payload.IN1 +sink0_data[46] => src_payload.IN1 +sink0_data[47] => src_payload.IN1 +sink0_data[48] => src_payload.IN1 +sink0_data[49] => src_payload.IN1 +sink0_data[50] => src_payload.IN1 +sink0_data[51] => src_payload.IN1 +sink0_data[52] => src_payload.IN1 +sink0_data[53] => src_payload.IN1 +sink0_data[54] => src_payload.IN1 +sink0_data[55] => src_payload.IN1 +sink0_data[56] => src_payload.IN1 +sink0_data[57] => src_payload.IN1 +sink0_data[58] => src_payload.IN1 +sink0_data[59] => src_payload.IN1 +sink0_data[59] => last_cycle.IN1 +sink0_data[60] => src_payload.IN1 +sink0_data[61] => src_payload.IN1 +sink0_data[62] => src_payload.IN1 +sink0_data[63] => src_payload.IN1 +sink0_data[64] => src_payload.IN1 +sink0_data[65] => src_payload.IN1 +sink0_data[66] => src_payload.IN1 +sink0_data[67] => src_payload.IN1 +sink0_data[68] => src_payload.IN1 +sink0_data[69] => src_payload.IN1 +sink0_data[70] => src_payload.IN1 +sink0_data[71] => src_payload.IN1 +sink0_data[72] => src_payload.IN1 +sink0_data[73] => src_payload.IN1 +sink0_data[74] => src_payload.IN1 +sink0_data[75] => src_payload.IN1 +sink0_data[76] => src_payload.IN1 +sink0_data[77] => src_payload.IN1 +sink0_data[78] => src_payload.IN1 +sink0_data[79] => src_payload.IN1 +sink0_data[80] => src_payload.IN1 +sink0_data[81] => src_payload.IN1 +sink0_data[82] => src_payload.IN1 +sink0_data[83] => src_payload.IN1 +sink0_data[84] => src_payload.IN1 +sink0_data[85] => src_payload.IN1 +sink0_data[86] => src_payload.IN1 +sink0_data[87] => src_payload.IN1 +sink0_data[88] => src_payload.IN1 +sink0_data[89] => src_payload.IN1 +sink0_data[90] => src_payload.IN1 +sink0_data[91] => src_payload.IN1 +sink0_data[92] => src_payload.IN1 +sink0_data[93] => src_payload.IN1 +sink0_data[94] => src_payload.IN1 +sink0_data[95] => src_payload.IN1 +sink0_channel[0] => src_payload.IN1 +sink0_channel[1] => src_payload.IN1 +sink0_channel[2] => src_payload.IN1 +sink0_channel[3] => src_payload.IN1 +sink0_channel[4] => src_payload.IN1 +sink0_channel[5] => src_payload.IN1 +sink0_channel[6] => src_payload.IN1 +sink0_channel[7] => src_payload.IN1 +sink0_channel[8] => src_payload.IN1 +sink0_channel[9] => src_payload.IN1 +sink0_channel[10] => src_payload.IN1 +sink0_channel[11] => src_payload.IN1 +sink0_channel[12] => src_payload.IN1 +sink0_channel[13] => src_payload.IN1 +sink0_channel[14] => src_payload.IN1 +sink0_channel[15] => src_payload.IN1 +sink0_channel[16] => src_payload.IN1 +sink0_channel[17] => src_payload.IN1 +sink0_startofpacket => src_payload.IN1 +sink0_endofpacket => src_payload.IN1 +sink0_ready <= sink0_ready.DB_MAX_OUTPUT_PORT_TYPE +sink1_valid => request[1].IN1 +sink1_data[0] => src_payload.IN1 +sink1_data[1] => src_payload.IN1 +sink1_data[2] => src_payload.IN1 +sink1_data[3] => src_payload.IN1 +sink1_data[4] => src_payload.IN1 +sink1_data[5] => src_payload.IN1 +sink1_data[6] => src_payload.IN1 +sink1_data[7] => src_payload.IN1 +sink1_data[8] => src_payload.IN1 +sink1_data[9] => src_payload.IN1 +sink1_data[10] => src_payload.IN1 +sink1_data[11] => src_payload.IN1 +sink1_data[12] => src_payload.IN1 +sink1_data[13] => src_payload.IN1 +sink1_data[14] => src_payload.IN1 +sink1_data[15] => src_payload.IN1 +sink1_data[16] => src_payload.IN1 +sink1_data[17] => src_payload.IN1 +sink1_data[18] => src_payload.IN1 +sink1_data[19] => src_payload.IN1 +sink1_data[20] => src_payload.IN1 +sink1_data[21] => src_payload.IN1 +sink1_data[22] => src_payload.IN1 +sink1_data[23] => src_payload.IN1 +sink1_data[24] => src_payload.IN1 +sink1_data[25] => src_payload.IN1 +sink1_data[26] => src_payload.IN1 +sink1_data[27] => src_payload.IN1 +sink1_data[28] => src_payload.IN1 +sink1_data[29] => src_payload.IN1 +sink1_data[30] => src_payload.IN1 +sink1_data[31] => src_payload.IN1 +sink1_data[32] => src_payload.IN1 +sink1_data[33] => src_payload.IN1 +sink1_data[34] => src_payload.IN1 +sink1_data[35] => src_payload.IN1 +sink1_data[36] => src_payload.IN1 +sink1_data[37] => src_payload.IN1 +sink1_data[38] => src_payload.IN1 +sink1_data[39] => src_payload.IN1 +sink1_data[40] => src_payload.IN1 +sink1_data[41] => src_payload.IN1 +sink1_data[42] => src_payload.IN1 +sink1_data[43] => src_payload.IN1 +sink1_data[44] => src_payload.IN1 +sink1_data[45] => src_payload.IN1 +sink1_data[46] => src_payload.IN1 +sink1_data[47] => src_payload.IN1 +sink1_data[48] => src_payload.IN1 +sink1_data[49] => src_payload.IN1 +sink1_data[50] => src_payload.IN1 +sink1_data[51] => src_payload.IN1 +sink1_data[52] => src_payload.IN1 +sink1_data[53] => src_payload.IN1 +sink1_data[54] => src_payload.IN1 +sink1_data[55] => src_payload.IN1 +sink1_data[56] => src_payload.IN1 +sink1_data[57] => src_payload.IN1 +sink1_data[58] => src_payload.IN1 +sink1_data[59] => src_payload.IN1 +sink1_data[59] => last_cycle.IN1 +sink1_data[60] => src_payload.IN1 +sink1_data[61] => src_payload.IN1 +sink1_data[62] => src_payload.IN1 +sink1_data[63] => src_payload.IN1 +sink1_data[64] => src_payload.IN1 +sink1_data[65] => src_payload.IN1 +sink1_data[66] => src_payload.IN1 +sink1_data[67] => src_payload.IN1 +sink1_data[68] => src_payload.IN1 +sink1_data[69] => src_payload.IN1 +sink1_data[70] => src_payload.IN1 +sink1_data[71] => src_payload.IN1 +sink1_data[72] => src_payload.IN1 +sink1_data[73] => src_payload.IN1 +sink1_data[74] => src_payload.IN1 +sink1_data[75] => src_payload.IN1 +sink1_data[76] => src_payload.IN1 +sink1_data[77] => src_payload.IN1 +sink1_data[78] => src_payload.IN1 +sink1_data[79] => src_payload.IN1 +sink1_data[80] => src_payload.IN1 +sink1_data[81] => src_payload.IN1 +sink1_data[82] => src_payload.IN1 +sink1_data[83] => src_payload.IN1 +sink1_data[84] => src_payload.IN1 +sink1_data[85] => src_payload.IN1 +sink1_data[86] => src_payload.IN1 +sink1_data[87] => src_payload.IN1 +sink1_data[88] => src_payload.IN1 +sink1_data[89] => src_payload.IN1 +sink1_data[90] => src_payload.IN1 +sink1_data[91] => src_payload.IN1 +sink1_data[92] => src_payload.IN1 +sink1_data[93] => src_payload.IN1 +sink1_data[94] => src_payload.IN1 +sink1_data[95] => src_payload.IN1 +sink1_channel[0] => src_payload.IN1 +sink1_channel[1] => src_payload.IN1 +sink1_channel[2] => src_payload.IN1 +sink1_channel[3] => src_payload.IN1 +sink1_channel[4] => src_payload.IN1 +sink1_channel[5] => src_payload.IN1 +sink1_channel[6] => src_payload.IN1 +sink1_channel[7] => src_payload.IN1 +sink1_channel[8] => src_payload.IN1 +sink1_channel[9] => src_payload.IN1 +sink1_channel[10] => src_payload.IN1 +sink1_channel[11] => src_payload.IN1 +sink1_channel[12] => src_payload.IN1 +sink1_channel[13] => src_payload.IN1 +sink1_channel[14] => src_payload.IN1 +sink1_channel[15] => src_payload.IN1 +sink1_channel[16] => src_payload.IN1 +sink1_channel[17] => src_payload.IN1 +sink1_startofpacket => src_payload.IN1 +sink1_endofpacket => src_payload.IN1 +sink1_ready <= sink1_ready.DB_MAX_OUTPUT_PORT_TYPE +sink2_valid => request[2].IN1 +sink2_data[0] => src_payload.IN1 +sink2_data[1] => src_payload.IN1 +sink2_data[2] => src_payload.IN1 +sink2_data[3] => src_payload.IN1 +sink2_data[4] => src_payload.IN1 +sink2_data[5] => src_payload.IN1 +sink2_data[6] => src_payload.IN1 +sink2_data[7] => src_payload.IN1 +sink2_data[8] => src_payload.IN1 +sink2_data[9] => src_payload.IN1 +sink2_data[10] => src_payload.IN1 +sink2_data[11] => src_payload.IN1 +sink2_data[12] => src_payload.IN1 +sink2_data[13] => src_payload.IN1 +sink2_data[14] => src_payload.IN1 +sink2_data[15] => src_payload.IN1 +sink2_data[16] => src_payload.IN1 +sink2_data[17] => src_payload.IN1 +sink2_data[18] => src_payload.IN1 +sink2_data[19] => src_payload.IN1 +sink2_data[20] => src_payload.IN1 +sink2_data[21] => src_payload.IN1 +sink2_data[22] => src_payload.IN1 +sink2_data[23] => src_payload.IN1 +sink2_data[24] => src_payload.IN1 +sink2_data[25] => src_payload.IN1 +sink2_data[26] => src_payload.IN1 +sink2_data[27] => src_payload.IN1 +sink2_data[28] => src_payload.IN1 +sink2_data[29] => src_payload.IN1 +sink2_data[30] => src_payload.IN1 +sink2_data[31] => src_payload.IN1 +sink2_data[32] => src_payload.IN1 +sink2_data[33] => src_payload.IN1 +sink2_data[34] => src_payload.IN1 +sink2_data[35] => src_payload.IN1 +sink2_data[36] => src_payload.IN1 +sink2_data[37] => src_payload.IN1 +sink2_data[38] => src_payload.IN1 +sink2_data[39] => src_payload.IN1 +sink2_data[40] => src_payload.IN1 +sink2_data[41] => src_payload.IN1 +sink2_data[42] => src_payload.IN1 +sink2_data[43] => src_payload.IN1 +sink2_data[44] => src_payload.IN1 +sink2_data[45] => src_payload.IN1 +sink2_data[46] => src_payload.IN1 +sink2_data[47] => src_payload.IN1 +sink2_data[48] => src_payload.IN1 +sink2_data[49] => src_payload.IN1 +sink2_data[50] => src_payload.IN1 +sink2_data[51] => src_payload.IN1 +sink2_data[52] => src_payload.IN1 +sink2_data[53] => src_payload.IN1 +sink2_data[54] => src_payload.IN1 +sink2_data[55] => src_payload.IN1 +sink2_data[56] => src_payload.IN1 +sink2_data[57] => src_payload.IN1 +sink2_data[58] => src_payload.IN1 +sink2_data[59] => src_payload.IN1 +sink2_data[59] => last_cycle.IN1 +sink2_data[60] => src_payload.IN1 +sink2_data[61] => src_payload.IN1 +sink2_data[62] => src_payload.IN1 +sink2_data[63] => src_payload.IN1 +sink2_data[64] => src_payload.IN1 +sink2_data[65] => src_payload.IN1 +sink2_data[66] => src_payload.IN1 +sink2_data[67] => src_payload.IN1 +sink2_data[68] => src_payload.IN1 +sink2_data[69] => src_payload.IN1 +sink2_data[70] => src_payload.IN1 +sink2_data[71] => src_payload.IN1 +sink2_data[72] => src_payload.IN1 +sink2_data[73] => src_payload.IN1 +sink2_data[74] => src_payload.IN1 +sink2_data[75] => src_payload.IN1 +sink2_data[76] => src_payload.IN1 +sink2_data[77] => src_payload.IN1 +sink2_data[78] => src_payload.IN1 +sink2_data[79] => src_payload.IN1 +sink2_data[80] => src_payload.IN1 +sink2_data[81] => src_payload.IN1 +sink2_data[82] => src_payload.IN1 +sink2_data[83] => src_payload.IN1 +sink2_data[84] => src_payload.IN1 +sink2_data[85] => src_payload.IN1 +sink2_data[86] => src_payload.IN1 +sink2_data[87] => src_payload.IN1 +sink2_data[88] => src_payload.IN1 +sink2_data[89] => src_payload.IN1 +sink2_data[90] => src_payload.IN1 +sink2_data[91] => src_payload.IN1 +sink2_data[92] => src_payload.IN1 +sink2_data[93] => src_payload.IN1 +sink2_data[94] => src_payload.IN1 +sink2_data[95] => src_payload.IN1 +sink2_channel[0] => src_payload.IN1 +sink2_channel[1] => src_payload.IN1 +sink2_channel[2] => src_payload.IN1 +sink2_channel[3] => src_payload.IN1 +sink2_channel[4] => src_payload.IN1 +sink2_channel[5] => src_payload.IN1 +sink2_channel[6] => src_payload.IN1 +sink2_channel[7] => src_payload.IN1 +sink2_channel[8] => src_payload.IN1 +sink2_channel[9] => src_payload.IN1 +sink2_channel[10] => src_payload.IN1 +sink2_channel[11] => src_payload.IN1 +sink2_channel[12] => src_payload.IN1 +sink2_channel[13] => src_payload.IN1 +sink2_channel[14] => src_payload.IN1 +sink2_channel[15] => src_payload.IN1 +sink2_channel[16] => src_payload.IN1 +sink2_channel[17] => src_payload.IN1 +sink2_startofpacket => src_payload.IN1 +sink2_endofpacket => src_payload.IN1 +sink2_ready <= sink2_ready.DB_MAX_OUTPUT_PORT_TYPE +sink3_valid => request[3].IN1 +sink3_data[0] => src_payload.IN1 +sink3_data[1] => src_payload.IN1 +sink3_data[2] => src_payload.IN1 +sink3_data[3] => src_payload.IN1 +sink3_data[4] => src_payload.IN1 +sink3_data[5] => src_payload.IN1 +sink3_data[6] => src_payload.IN1 +sink3_data[7] => src_payload.IN1 +sink3_data[8] => src_payload.IN1 +sink3_data[9] => src_payload.IN1 +sink3_data[10] => src_payload.IN1 +sink3_data[11] => src_payload.IN1 +sink3_data[12] => src_payload.IN1 +sink3_data[13] => src_payload.IN1 +sink3_data[14] => src_payload.IN1 +sink3_data[15] => src_payload.IN1 +sink3_data[16] => src_payload.IN1 +sink3_data[17] => src_payload.IN1 +sink3_data[18] => src_payload.IN1 +sink3_data[19] => src_payload.IN1 +sink3_data[20] => src_payload.IN1 +sink3_data[21] => src_payload.IN1 +sink3_data[22] => src_payload.IN1 +sink3_data[23] => src_payload.IN1 +sink3_data[24] => src_payload.IN1 +sink3_data[25] => src_payload.IN1 +sink3_data[26] => src_payload.IN1 +sink3_data[27] => src_payload.IN1 +sink3_data[28] => src_payload.IN1 +sink3_data[29] => src_payload.IN1 +sink3_data[30] => src_payload.IN1 +sink3_data[31] => src_payload.IN1 +sink3_data[32] => src_payload.IN1 +sink3_data[33] => src_payload.IN1 +sink3_data[34] => src_payload.IN1 +sink3_data[35] => src_payload.IN1 +sink3_data[36] => src_payload.IN1 +sink3_data[37] => src_payload.IN1 +sink3_data[38] => src_payload.IN1 +sink3_data[39] => src_payload.IN1 +sink3_data[40] => src_payload.IN1 +sink3_data[41] => src_payload.IN1 +sink3_data[42] => src_payload.IN1 +sink3_data[43] => src_payload.IN1 +sink3_data[44] => src_payload.IN1 +sink3_data[45] => src_payload.IN1 +sink3_data[46] => src_payload.IN1 +sink3_data[47] => src_payload.IN1 +sink3_data[48] => src_payload.IN1 +sink3_data[49] => src_payload.IN1 +sink3_data[50] => src_payload.IN1 +sink3_data[51] => src_payload.IN1 +sink3_data[52] => src_payload.IN1 +sink3_data[53] => src_payload.IN1 +sink3_data[54] => src_payload.IN1 +sink3_data[55] => src_payload.IN1 +sink3_data[56] => src_payload.IN1 +sink3_data[57] => src_payload.IN1 +sink3_data[58] => src_payload.IN1 +sink3_data[59] => src_payload.IN1 +sink3_data[59] => last_cycle.IN1 +sink3_data[60] => src_payload.IN1 +sink3_data[61] => src_payload.IN1 +sink3_data[62] => src_payload.IN1 +sink3_data[63] => src_payload.IN1 +sink3_data[64] => src_payload.IN1 +sink3_data[65] => src_payload.IN1 +sink3_data[66] => src_payload.IN1 +sink3_data[67] => src_payload.IN1 +sink3_data[68] => src_payload.IN1 +sink3_data[69] => src_payload.IN1 +sink3_data[70] => src_payload.IN1 +sink3_data[71] => src_payload.IN1 +sink3_data[72] => src_payload.IN1 +sink3_data[73] => src_payload.IN1 +sink3_data[74] => src_payload.IN1 +sink3_data[75] => src_payload.IN1 +sink3_data[76] => src_payload.IN1 +sink3_data[77] => src_payload.IN1 +sink3_data[78] => src_payload.IN1 +sink3_data[79] => src_payload.IN1 +sink3_data[80] => src_payload.IN1 +sink3_data[81] => src_payload.IN1 +sink3_data[82] => src_payload.IN1 +sink3_data[83] => src_payload.IN1 +sink3_data[84] => src_payload.IN1 +sink3_data[85] => src_payload.IN1 +sink3_data[86] => src_payload.IN1 +sink3_data[87] => src_payload.IN1 +sink3_data[88] => src_payload.IN1 +sink3_data[89] => src_payload.IN1 +sink3_data[90] => src_payload.IN1 +sink3_data[91] => src_payload.IN1 +sink3_data[92] => src_payload.IN1 +sink3_data[93] => src_payload.IN1 +sink3_data[94] => src_payload.IN1 +sink3_data[95] => src_payload.IN1 +sink3_channel[0] => src_payload.IN1 +sink3_channel[1] => src_payload.IN1 +sink3_channel[2] => src_payload.IN1 +sink3_channel[3] => src_payload.IN1 +sink3_channel[4] => src_payload.IN1 +sink3_channel[5] => src_payload.IN1 +sink3_channel[6] => src_payload.IN1 +sink3_channel[7] => src_payload.IN1 +sink3_channel[8] => src_payload.IN1 +sink3_channel[9] => src_payload.IN1 +sink3_channel[10] => src_payload.IN1 +sink3_channel[11] => src_payload.IN1 +sink3_channel[12] => src_payload.IN1 +sink3_channel[13] => src_payload.IN1 +sink3_channel[14] => src_payload.IN1 +sink3_channel[15] => src_payload.IN1 +sink3_channel[16] => src_payload.IN1 +sink3_channel[17] => src_payload.IN1 +sink3_startofpacket => src_payload.IN1 +sink3_endofpacket => src_payload.IN1 +sink3_ready <= sink3_ready.DB_MAX_OUTPUT_PORT_TYPE +sink4_valid => request[4].IN1 +sink4_data[0] => src_payload.IN1 +sink4_data[1] => src_payload.IN1 +sink4_data[2] => src_payload.IN1 +sink4_data[3] => src_payload.IN1 +sink4_data[4] => src_payload.IN1 +sink4_data[5] => src_payload.IN1 +sink4_data[6] => src_payload.IN1 +sink4_data[7] => src_payload.IN1 +sink4_data[8] => src_payload.IN1 +sink4_data[9] => src_payload.IN1 +sink4_data[10] => src_payload.IN1 +sink4_data[11] => src_payload.IN1 +sink4_data[12] => src_payload.IN1 +sink4_data[13] => src_payload.IN1 +sink4_data[14] => src_payload.IN1 +sink4_data[15] => src_payload.IN1 +sink4_data[16] => src_payload.IN1 +sink4_data[17] => src_payload.IN1 +sink4_data[18] => src_payload.IN1 +sink4_data[19] => src_payload.IN1 +sink4_data[20] => src_payload.IN1 +sink4_data[21] => src_payload.IN1 +sink4_data[22] => src_payload.IN1 +sink4_data[23] => src_payload.IN1 +sink4_data[24] => src_payload.IN1 +sink4_data[25] => src_payload.IN1 +sink4_data[26] => src_payload.IN1 +sink4_data[27] => src_payload.IN1 +sink4_data[28] => src_payload.IN1 +sink4_data[29] => src_payload.IN1 +sink4_data[30] => src_payload.IN1 +sink4_data[31] => src_payload.IN1 +sink4_data[32] => src_payload.IN1 +sink4_data[33] => src_payload.IN1 +sink4_data[34] => src_payload.IN1 +sink4_data[35] => src_payload.IN1 +sink4_data[36] => src_payload.IN1 +sink4_data[37] => src_payload.IN1 +sink4_data[38] => src_payload.IN1 +sink4_data[39] => src_payload.IN1 +sink4_data[40] => src_payload.IN1 +sink4_data[41] => src_payload.IN1 +sink4_data[42] => src_payload.IN1 +sink4_data[43] => src_payload.IN1 +sink4_data[44] => src_payload.IN1 +sink4_data[45] => src_payload.IN1 +sink4_data[46] => src_payload.IN1 +sink4_data[47] => src_payload.IN1 +sink4_data[48] => src_payload.IN1 +sink4_data[49] => src_payload.IN1 +sink4_data[50] => src_payload.IN1 +sink4_data[51] => src_payload.IN1 +sink4_data[52] => src_payload.IN1 +sink4_data[53] => src_payload.IN1 +sink4_data[54] => src_payload.IN1 +sink4_data[55] => src_payload.IN1 +sink4_data[56] => src_payload.IN1 +sink4_data[57] => src_payload.IN1 +sink4_data[58] => src_payload.IN1 +sink4_data[59] => src_payload.IN1 +sink4_data[59] => last_cycle.IN1 +sink4_data[60] => src_payload.IN1 +sink4_data[61] => src_payload.IN1 +sink4_data[62] => src_payload.IN1 +sink4_data[63] => src_payload.IN1 +sink4_data[64] => src_payload.IN1 +sink4_data[65] => src_payload.IN1 +sink4_data[66] => src_payload.IN1 +sink4_data[67] => src_payload.IN1 +sink4_data[68] => src_payload.IN1 +sink4_data[69] => src_payload.IN1 +sink4_data[70] => src_payload.IN1 +sink4_data[71] => src_payload.IN1 +sink4_data[72] => src_payload.IN1 +sink4_data[73] => src_payload.IN1 +sink4_data[74] => src_payload.IN1 +sink4_data[75] => src_payload.IN1 +sink4_data[76] => src_payload.IN1 +sink4_data[77] => src_payload.IN1 +sink4_data[78] => src_payload.IN1 +sink4_data[79] => src_payload.IN1 +sink4_data[80] => src_payload.IN1 +sink4_data[81] => src_payload.IN1 +sink4_data[82] => src_payload.IN1 +sink4_data[83] => src_payload.IN1 +sink4_data[84] => src_payload.IN1 +sink4_data[85] => src_payload.IN1 +sink4_data[86] => src_payload.IN1 +sink4_data[87] => src_payload.IN1 +sink4_data[88] => src_payload.IN1 +sink4_data[89] => src_payload.IN1 +sink4_data[90] => src_payload.IN1 +sink4_data[91] => src_payload.IN1 +sink4_data[92] => src_payload.IN1 +sink4_data[93] => src_payload.IN1 +sink4_data[94] => src_payload.IN1 +sink4_data[95] => src_payload.IN1 +sink4_channel[0] => src_payload.IN1 +sink4_channel[1] => src_payload.IN1 +sink4_channel[2] => src_payload.IN1 +sink4_channel[3] => src_payload.IN1 +sink4_channel[4] => src_payload.IN1 +sink4_channel[5] => src_payload.IN1 +sink4_channel[6] => src_payload.IN1 +sink4_channel[7] => src_payload.IN1 +sink4_channel[8] => src_payload.IN1 +sink4_channel[9] => src_payload.IN1 +sink4_channel[10] => src_payload.IN1 +sink4_channel[11] => src_payload.IN1 +sink4_channel[12] => src_payload.IN1 +sink4_channel[13] => src_payload.IN1 +sink4_channel[14] => src_payload.IN1 +sink4_channel[15] => src_payload.IN1 +sink4_channel[16] => src_payload.IN1 +sink4_channel[17] => src_payload.IN1 +sink4_startofpacket => src_payload.IN1 +sink4_endofpacket => src_payload.IN1 +sink4_ready <= sink4_ready.DB_MAX_OUTPUT_PORT_TYPE +sink5_valid => request[5].IN1 +sink5_data[0] => src_payload.IN1 +sink5_data[1] => src_payload.IN1 +sink5_data[2] => src_payload.IN1 +sink5_data[3] => src_payload.IN1 +sink5_data[4] => src_payload.IN1 +sink5_data[5] => src_payload.IN1 +sink5_data[6] => src_payload.IN1 +sink5_data[7] => src_payload.IN1 +sink5_data[8] => src_payload.IN1 +sink5_data[9] => src_payload.IN1 +sink5_data[10] => src_payload.IN1 +sink5_data[11] => src_payload.IN1 +sink5_data[12] => src_payload.IN1 +sink5_data[13] => src_payload.IN1 +sink5_data[14] => src_payload.IN1 +sink5_data[15] => src_payload.IN1 +sink5_data[16] => src_payload.IN1 +sink5_data[17] => src_payload.IN1 +sink5_data[18] => src_payload.IN1 +sink5_data[19] => src_payload.IN1 +sink5_data[20] => src_payload.IN1 +sink5_data[21] => src_payload.IN1 +sink5_data[22] => src_payload.IN1 +sink5_data[23] => src_payload.IN1 +sink5_data[24] => src_payload.IN1 +sink5_data[25] => src_payload.IN1 +sink5_data[26] => src_payload.IN1 +sink5_data[27] => src_payload.IN1 +sink5_data[28] => src_payload.IN1 +sink5_data[29] => src_payload.IN1 +sink5_data[30] => src_payload.IN1 +sink5_data[31] => src_payload.IN1 +sink5_data[32] => src_payload.IN1 +sink5_data[33] => src_payload.IN1 +sink5_data[34] => src_payload.IN1 +sink5_data[35] => src_payload.IN1 +sink5_data[36] => src_payload.IN1 +sink5_data[37] => src_payload.IN1 +sink5_data[38] => src_payload.IN1 +sink5_data[39] => src_payload.IN1 +sink5_data[40] => src_payload.IN1 +sink5_data[41] => src_payload.IN1 +sink5_data[42] => src_payload.IN1 +sink5_data[43] => src_payload.IN1 +sink5_data[44] => src_payload.IN1 +sink5_data[45] => src_payload.IN1 +sink5_data[46] => src_payload.IN1 +sink5_data[47] => src_payload.IN1 +sink5_data[48] => src_payload.IN1 +sink5_data[49] => src_payload.IN1 +sink5_data[50] => src_payload.IN1 +sink5_data[51] => src_payload.IN1 +sink5_data[52] => src_payload.IN1 +sink5_data[53] => src_payload.IN1 +sink5_data[54] => src_payload.IN1 +sink5_data[55] => src_payload.IN1 +sink5_data[56] => src_payload.IN1 +sink5_data[57] => src_payload.IN1 +sink5_data[58] => src_payload.IN1 +sink5_data[59] => src_payload.IN1 +sink5_data[59] => last_cycle.IN1 +sink5_data[60] => src_payload.IN1 +sink5_data[61] => src_payload.IN1 +sink5_data[62] => src_payload.IN1 +sink5_data[63] => src_payload.IN1 +sink5_data[64] => src_payload.IN1 +sink5_data[65] => src_payload.IN1 +sink5_data[66] => src_payload.IN1 +sink5_data[67] => src_payload.IN1 +sink5_data[68] => src_payload.IN1 +sink5_data[69] => src_payload.IN1 +sink5_data[70] => src_payload.IN1 +sink5_data[71] => src_payload.IN1 +sink5_data[72] => src_payload.IN1 +sink5_data[73] => src_payload.IN1 +sink5_data[74] => src_payload.IN1 +sink5_data[75] => src_payload.IN1 +sink5_data[76] => src_payload.IN1 +sink5_data[77] => src_payload.IN1 +sink5_data[78] => src_payload.IN1 +sink5_data[79] => src_payload.IN1 +sink5_data[80] => src_payload.IN1 +sink5_data[81] => src_payload.IN1 +sink5_data[82] => src_payload.IN1 +sink5_data[83] => src_payload.IN1 +sink5_data[84] => src_payload.IN1 +sink5_data[85] => src_payload.IN1 +sink5_data[86] => src_payload.IN1 +sink5_data[87] => src_payload.IN1 +sink5_data[88] => src_payload.IN1 +sink5_data[89] => src_payload.IN1 +sink5_data[90] => src_payload.IN1 +sink5_data[91] => src_payload.IN1 +sink5_data[92] => src_payload.IN1 +sink5_data[93] => src_payload.IN1 +sink5_data[94] => src_payload.IN1 +sink5_data[95] => src_payload.IN1 +sink5_channel[0] => src_payload.IN1 +sink5_channel[1] => src_payload.IN1 +sink5_channel[2] => src_payload.IN1 +sink5_channel[3] => src_payload.IN1 +sink5_channel[4] => src_payload.IN1 +sink5_channel[5] => src_payload.IN1 +sink5_channel[6] => src_payload.IN1 +sink5_channel[7] => src_payload.IN1 +sink5_channel[8] => src_payload.IN1 +sink5_channel[9] => src_payload.IN1 +sink5_channel[10] => src_payload.IN1 +sink5_channel[11] => src_payload.IN1 +sink5_channel[12] => src_payload.IN1 +sink5_channel[13] => src_payload.IN1 +sink5_channel[14] => src_payload.IN1 +sink5_channel[15] => src_payload.IN1 +sink5_channel[16] => src_payload.IN1 +sink5_channel[17] => src_payload.IN1 +sink5_startofpacket => src_payload.IN1 +sink5_endofpacket => src_payload.IN1 +sink5_ready <= sink5_ready.DB_MAX_OUTPUT_PORT_TYPE +sink6_valid => request[6].IN1 +sink6_data[0] => src_payload.IN1 +sink6_data[1] => src_payload.IN1 +sink6_data[2] => src_payload.IN1 +sink6_data[3] => src_payload.IN1 +sink6_data[4] => src_payload.IN1 +sink6_data[5] => src_payload.IN1 +sink6_data[6] => src_payload.IN1 +sink6_data[7] => src_payload.IN1 +sink6_data[8] => src_payload.IN1 +sink6_data[9] => src_payload.IN1 +sink6_data[10] => src_payload.IN1 +sink6_data[11] => src_payload.IN1 +sink6_data[12] => src_payload.IN1 +sink6_data[13] => src_payload.IN1 +sink6_data[14] => src_payload.IN1 +sink6_data[15] => src_payload.IN1 +sink6_data[16] => src_payload.IN1 +sink6_data[17] => src_payload.IN1 +sink6_data[18] => src_payload.IN1 +sink6_data[19] => src_payload.IN1 +sink6_data[20] => src_payload.IN1 +sink6_data[21] => src_payload.IN1 +sink6_data[22] => src_payload.IN1 +sink6_data[23] => src_payload.IN1 +sink6_data[24] => src_payload.IN1 +sink6_data[25] => src_payload.IN1 +sink6_data[26] => src_payload.IN1 +sink6_data[27] => src_payload.IN1 +sink6_data[28] => src_payload.IN1 +sink6_data[29] => src_payload.IN1 +sink6_data[30] => src_payload.IN1 +sink6_data[31] => src_payload.IN1 +sink6_data[32] => src_payload.IN1 +sink6_data[33] => src_payload.IN1 +sink6_data[34] => src_payload.IN1 +sink6_data[35] => src_payload.IN1 +sink6_data[36] => src_payload.IN1 +sink6_data[37] => src_payload.IN1 +sink6_data[38] => src_payload.IN1 +sink6_data[39] => src_payload.IN1 +sink6_data[40] => src_payload.IN1 +sink6_data[41] => src_payload.IN1 +sink6_data[42] => src_payload.IN1 +sink6_data[43] => src_payload.IN1 +sink6_data[44] => src_payload.IN1 +sink6_data[45] => src_payload.IN1 +sink6_data[46] => src_payload.IN1 +sink6_data[47] => src_payload.IN1 +sink6_data[48] => src_payload.IN1 +sink6_data[49] => src_payload.IN1 +sink6_data[50] => src_payload.IN1 +sink6_data[51] => src_payload.IN1 +sink6_data[52] => src_payload.IN1 +sink6_data[53] => src_payload.IN1 +sink6_data[54] => src_payload.IN1 +sink6_data[55] => src_payload.IN1 +sink6_data[56] => src_payload.IN1 +sink6_data[57] => src_payload.IN1 +sink6_data[58] => src_payload.IN1 +sink6_data[59] => src_payload.IN1 +sink6_data[59] => last_cycle.IN1 +sink6_data[60] => src_payload.IN1 +sink6_data[61] => src_payload.IN1 +sink6_data[62] => src_payload.IN1 +sink6_data[63] => src_payload.IN1 +sink6_data[64] => src_payload.IN1 +sink6_data[65] => src_payload.IN1 +sink6_data[66] => src_payload.IN1 +sink6_data[67] => src_payload.IN1 +sink6_data[68] => src_payload.IN1 +sink6_data[69] => src_payload.IN1 +sink6_data[70] => src_payload.IN1 +sink6_data[71] => src_payload.IN1 +sink6_data[72] => src_payload.IN1 +sink6_data[73] => src_payload.IN1 +sink6_data[74] => src_payload.IN1 +sink6_data[75] => src_payload.IN1 +sink6_data[76] => src_payload.IN1 +sink6_data[77] => src_payload.IN1 +sink6_data[78] => src_payload.IN1 +sink6_data[79] => src_payload.IN1 +sink6_data[80] => src_payload.IN1 +sink6_data[81] => src_payload.IN1 +sink6_data[82] => src_payload.IN1 +sink6_data[83] => src_payload.IN1 +sink6_data[84] => src_payload.IN1 +sink6_data[85] => src_payload.IN1 +sink6_data[86] => src_payload.IN1 +sink6_data[87] => src_payload.IN1 +sink6_data[88] => src_payload.IN1 +sink6_data[89] => src_payload.IN1 +sink6_data[90] => src_payload.IN1 +sink6_data[91] => src_payload.IN1 +sink6_data[92] => src_payload.IN1 +sink6_data[93] => src_payload.IN1 +sink6_data[94] => src_payload.IN1 +sink6_data[95] => src_payload.IN1 +sink6_channel[0] => src_payload.IN1 +sink6_channel[1] => src_payload.IN1 +sink6_channel[2] => src_payload.IN1 +sink6_channel[3] => src_payload.IN1 +sink6_channel[4] => src_payload.IN1 +sink6_channel[5] => src_payload.IN1 +sink6_channel[6] => src_payload.IN1 +sink6_channel[7] => src_payload.IN1 +sink6_channel[8] => src_payload.IN1 +sink6_channel[9] => src_payload.IN1 +sink6_channel[10] => src_payload.IN1 +sink6_channel[11] => src_payload.IN1 +sink6_channel[12] => src_payload.IN1 +sink6_channel[13] => src_payload.IN1 +sink6_channel[14] => src_payload.IN1 +sink6_channel[15] => src_payload.IN1 +sink6_channel[16] => src_payload.IN1 +sink6_channel[17] => src_payload.IN1 +sink6_startofpacket => src_payload.IN1 +sink6_endofpacket => src_payload.IN1 +sink6_ready <= sink6_ready.DB_MAX_OUTPUT_PORT_TYPE +sink7_valid => request[7].IN1 +sink7_data[0] => src_payload.IN1 +sink7_data[1] => src_payload.IN1 +sink7_data[2] => src_payload.IN1 +sink7_data[3] => src_payload.IN1 +sink7_data[4] => src_payload.IN1 +sink7_data[5] => src_payload.IN1 +sink7_data[6] => src_payload.IN1 +sink7_data[7] => src_payload.IN1 +sink7_data[8] => src_payload.IN1 +sink7_data[9] => src_payload.IN1 +sink7_data[10] => src_payload.IN1 +sink7_data[11] => src_payload.IN1 +sink7_data[12] => src_payload.IN1 +sink7_data[13] => src_payload.IN1 +sink7_data[14] => src_payload.IN1 +sink7_data[15] => src_payload.IN1 +sink7_data[16] => src_payload.IN1 +sink7_data[17] => src_payload.IN1 +sink7_data[18] => src_payload.IN1 +sink7_data[19] => src_payload.IN1 +sink7_data[20] => src_payload.IN1 +sink7_data[21] => src_payload.IN1 +sink7_data[22] => src_payload.IN1 +sink7_data[23] => src_payload.IN1 +sink7_data[24] => src_payload.IN1 +sink7_data[25] => src_payload.IN1 +sink7_data[26] => src_payload.IN1 +sink7_data[27] => src_payload.IN1 +sink7_data[28] => src_payload.IN1 +sink7_data[29] => src_payload.IN1 +sink7_data[30] => src_payload.IN1 +sink7_data[31] => src_payload.IN1 +sink7_data[32] => src_payload.IN1 +sink7_data[33] => src_payload.IN1 +sink7_data[34] => src_payload.IN1 +sink7_data[35] => src_payload.IN1 +sink7_data[36] => src_payload.IN1 +sink7_data[37] => src_payload.IN1 +sink7_data[38] => src_payload.IN1 +sink7_data[39] => src_payload.IN1 +sink7_data[40] => src_payload.IN1 +sink7_data[41] => src_payload.IN1 +sink7_data[42] => src_payload.IN1 +sink7_data[43] => src_payload.IN1 +sink7_data[44] => src_payload.IN1 +sink7_data[45] => src_payload.IN1 +sink7_data[46] => src_payload.IN1 +sink7_data[47] => src_payload.IN1 +sink7_data[48] => src_payload.IN1 +sink7_data[49] => src_payload.IN1 +sink7_data[50] => src_payload.IN1 +sink7_data[51] => src_payload.IN1 +sink7_data[52] => src_payload.IN1 +sink7_data[53] => src_payload.IN1 +sink7_data[54] => src_payload.IN1 +sink7_data[55] => src_payload.IN1 +sink7_data[56] => src_payload.IN1 +sink7_data[57] => src_payload.IN1 +sink7_data[58] => src_payload.IN1 +sink7_data[59] => src_payload.IN1 +sink7_data[59] => last_cycle.IN1 +sink7_data[60] => src_payload.IN1 +sink7_data[61] => src_payload.IN1 +sink7_data[62] => src_payload.IN1 +sink7_data[63] => src_payload.IN1 +sink7_data[64] => src_payload.IN1 +sink7_data[65] => src_payload.IN1 +sink7_data[66] => src_payload.IN1 +sink7_data[67] => src_payload.IN1 +sink7_data[68] => src_payload.IN1 +sink7_data[69] => src_payload.IN1 +sink7_data[70] => src_payload.IN1 +sink7_data[71] => src_payload.IN1 +sink7_data[72] => src_payload.IN1 +sink7_data[73] => src_payload.IN1 +sink7_data[74] => src_payload.IN1 +sink7_data[75] => src_payload.IN1 +sink7_data[76] => src_payload.IN1 +sink7_data[77] => src_payload.IN1 +sink7_data[78] => src_payload.IN1 +sink7_data[79] => src_payload.IN1 +sink7_data[80] => src_payload.IN1 +sink7_data[81] => src_payload.IN1 +sink7_data[82] => src_payload.IN1 +sink7_data[83] => src_payload.IN1 +sink7_data[84] => src_payload.IN1 +sink7_data[85] => src_payload.IN1 +sink7_data[86] => src_payload.IN1 +sink7_data[87] => src_payload.IN1 +sink7_data[88] => src_payload.IN1 +sink7_data[89] => src_payload.IN1 +sink7_data[90] => src_payload.IN1 +sink7_data[91] => src_payload.IN1 +sink7_data[92] => src_payload.IN1 +sink7_data[93] => src_payload.IN1 +sink7_data[94] => src_payload.IN1 +sink7_data[95] => src_payload.IN1 +sink7_channel[0] => src_payload.IN1 +sink7_channel[1] => src_payload.IN1 +sink7_channel[2] => src_payload.IN1 +sink7_channel[3] => src_payload.IN1 +sink7_channel[4] => src_payload.IN1 +sink7_channel[5] => src_payload.IN1 +sink7_channel[6] => src_payload.IN1 +sink7_channel[7] => src_payload.IN1 +sink7_channel[8] => src_payload.IN1 +sink7_channel[9] => src_payload.IN1 +sink7_channel[10] => src_payload.IN1 +sink7_channel[11] => src_payload.IN1 +sink7_channel[12] => src_payload.IN1 +sink7_channel[13] => src_payload.IN1 +sink7_channel[14] => src_payload.IN1 +sink7_channel[15] => src_payload.IN1 +sink7_channel[16] => src_payload.IN1 +sink7_channel[17] => src_payload.IN1 +sink7_startofpacket => src_payload.IN1 +sink7_endofpacket => src_payload.IN1 +sink7_ready <= sink7_ready.DB_MAX_OUTPUT_PORT_TYPE +sink8_valid => request[8].IN1 +sink8_data[0] => src_payload.IN1 +sink8_data[1] => src_payload.IN1 +sink8_data[2] => src_payload.IN1 +sink8_data[3] => src_payload.IN1 +sink8_data[4] => src_payload.IN1 +sink8_data[5] => src_payload.IN1 +sink8_data[6] => src_payload.IN1 +sink8_data[7] => src_payload.IN1 +sink8_data[8] => src_payload.IN1 +sink8_data[9] => src_payload.IN1 +sink8_data[10] => src_payload.IN1 +sink8_data[11] => src_payload.IN1 +sink8_data[12] => src_payload.IN1 +sink8_data[13] => src_payload.IN1 +sink8_data[14] => src_payload.IN1 +sink8_data[15] => src_payload.IN1 +sink8_data[16] => src_payload.IN1 +sink8_data[17] => src_payload.IN1 +sink8_data[18] => src_payload.IN1 +sink8_data[19] => src_payload.IN1 +sink8_data[20] => src_payload.IN1 +sink8_data[21] => src_payload.IN1 +sink8_data[22] => src_payload.IN1 +sink8_data[23] => src_payload.IN1 +sink8_data[24] => src_payload.IN1 +sink8_data[25] => src_payload.IN1 +sink8_data[26] => src_payload.IN1 +sink8_data[27] => src_payload.IN1 +sink8_data[28] => src_payload.IN1 +sink8_data[29] => src_payload.IN1 +sink8_data[30] => src_payload.IN1 +sink8_data[31] => src_payload.IN1 +sink8_data[32] => src_payload.IN1 +sink8_data[33] => src_payload.IN1 +sink8_data[34] => src_payload.IN1 +sink8_data[35] => src_payload.IN1 +sink8_data[36] => src_payload.IN1 +sink8_data[37] => src_payload.IN1 +sink8_data[38] => src_payload.IN1 +sink8_data[39] => src_payload.IN1 +sink8_data[40] => src_payload.IN1 +sink8_data[41] => src_payload.IN1 +sink8_data[42] => src_payload.IN1 +sink8_data[43] => src_payload.IN1 +sink8_data[44] => src_payload.IN1 +sink8_data[45] => src_payload.IN1 +sink8_data[46] => src_payload.IN1 +sink8_data[47] => src_payload.IN1 +sink8_data[48] => src_payload.IN1 +sink8_data[49] => src_payload.IN1 +sink8_data[50] => src_payload.IN1 +sink8_data[51] => src_payload.IN1 +sink8_data[52] => src_payload.IN1 +sink8_data[53] => src_payload.IN1 +sink8_data[54] => src_payload.IN1 +sink8_data[55] => src_payload.IN1 +sink8_data[56] => src_payload.IN1 +sink8_data[57] => src_payload.IN1 +sink8_data[58] => src_payload.IN1 +sink8_data[59] => src_payload.IN1 +sink8_data[59] => last_cycle.IN1 +sink8_data[60] => src_payload.IN1 +sink8_data[61] => src_payload.IN1 +sink8_data[62] => src_payload.IN1 +sink8_data[63] => src_payload.IN1 +sink8_data[64] => src_payload.IN1 +sink8_data[65] => src_payload.IN1 +sink8_data[66] => src_payload.IN1 +sink8_data[67] => src_payload.IN1 +sink8_data[68] => src_payload.IN1 +sink8_data[69] => src_payload.IN1 +sink8_data[70] => src_payload.IN1 +sink8_data[71] => src_payload.IN1 +sink8_data[72] => src_payload.IN1 +sink8_data[73] => src_payload.IN1 +sink8_data[74] => src_payload.IN1 +sink8_data[75] => src_payload.IN1 +sink8_data[76] => src_payload.IN1 +sink8_data[77] => src_payload.IN1 +sink8_data[78] => src_payload.IN1 +sink8_data[79] => src_payload.IN1 +sink8_data[80] => src_payload.IN1 +sink8_data[81] => src_payload.IN1 +sink8_data[82] => src_payload.IN1 +sink8_data[83] => src_payload.IN1 +sink8_data[84] => src_payload.IN1 +sink8_data[85] => src_payload.IN1 +sink8_data[86] => src_payload.IN1 +sink8_data[87] => src_payload.IN1 +sink8_data[88] => src_payload.IN1 +sink8_data[89] => src_payload.IN1 +sink8_data[90] => src_payload.IN1 +sink8_data[91] => src_payload.IN1 +sink8_data[92] => src_payload.IN1 +sink8_data[93] => src_payload.IN1 +sink8_data[94] => src_payload.IN1 +sink8_data[95] => src_payload.IN1 +sink8_channel[0] => src_payload.IN1 +sink8_channel[1] => src_payload.IN1 +sink8_channel[2] => src_payload.IN1 +sink8_channel[3] => src_payload.IN1 +sink8_channel[4] => src_payload.IN1 +sink8_channel[5] => src_payload.IN1 +sink8_channel[6] => src_payload.IN1 +sink8_channel[7] => src_payload.IN1 +sink8_channel[8] => src_payload.IN1 +sink8_channel[9] => src_payload.IN1 +sink8_channel[10] => src_payload.IN1 +sink8_channel[11] => src_payload.IN1 +sink8_channel[12] => src_payload.IN1 +sink8_channel[13] => src_payload.IN1 +sink8_channel[14] => src_payload.IN1 +sink8_channel[15] => src_payload.IN1 +sink8_channel[16] => src_payload.IN1 +sink8_channel[17] => src_payload.IN1 +sink8_startofpacket => src_payload.IN1 +sink8_endofpacket => src_payload.IN1 +sink8_ready <= sink8_ready.DB_MAX_OUTPUT_PORT_TYPE +sink9_valid => request[9].IN1 +sink9_data[0] => src_payload.IN1 +sink9_data[1] => src_payload.IN1 +sink9_data[2] => src_payload.IN1 +sink9_data[3] => src_payload.IN1 +sink9_data[4] => src_payload.IN1 +sink9_data[5] => src_payload.IN1 +sink9_data[6] => src_payload.IN1 +sink9_data[7] => src_payload.IN1 +sink9_data[8] => src_payload.IN1 +sink9_data[9] => src_payload.IN1 +sink9_data[10] => src_payload.IN1 +sink9_data[11] => src_payload.IN1 +sink9_data[12] => src_payload.IN1 +sink9_data[13] => src_payload.IN1 +sink9_data[14] => src_payload.IN1 +sink9_data[15] => src_payload.IN1 +sink9_data[16] => src_payload.IN1 +sink9_data[17] => src_payload.IN1 +sink9_data[18] => src_payload.IN1 +sink9_data[19] => src_payload.IN1 +sink9_data[20] => src_payload.IN1 +sink9_data[21] => src_payload.IN1 +sink9_data[22] => src_payload.IN1 +sink9_data[23] => src_payload.IN1 +sink9_data[24] => src_payload.IN1 +sink9_data[25] => src_payload.IN1 +sink9_data[26] => src_payload.IN1 +sink9_data[27] => src_payload.IN1 +sink9_data[28] => src_payload.IN1 +sink9_data[29] => src_payload.IN1 +sink9_data[30] => src_payload.IN1 +sink9_data[31] => src_payload.IN1 +sink9_data[32] => src_payload.IN1 +sink9_data[33] => src_payload.IN1 +sink9_data[34] => src_payload.IN1 +sink9_data[35] => src_payload.IN1 +sink9_data[36] => src_payload.IN1 +sink9_data[37] => src_payload.IN1 +sink9_data[38] => src_payload.IN1 +sink9_data[39] => src_payload.IN1 +sink9_data[40] => src_payload.IN1 +sink9_data[41] => src_payload.IN1 +sink9_data[42] => src_payload.IN1 +sink9_data[43] => src_payload.IN1 +sink9_data[44] => src_payload.IN1 +sink9_data[45] => src_payload.IN1 +sink9_data[46] => src_payload.IN1 +sink9_data[47] => src_payload.IN1 +sink9_data[48] => src_payload.IN1 +sink9_data[49] => src_payload.IN1 +sink9_data[50] => src_payload.IN1 +sink9_data[51] => src_payload.IN1 +sink9_data[52] => src_payload.IN1 +sink9_data[53] => src_payload.IN1 +sink9_data[54] => src_payload.IN1 +sink9_data[55] => src_payload.IN1 +sink9_data[56] => src_payload.IN1 +sink9_data[57] => src_payload.IN1 +sink9_data[58] => src_payload.IN1 +sink9_data[59] => src_payload.IN1 +sink9_data[59] => last_cycle.IN1 +sink9_data[60] => src_payload.IN1 +sink9_data[61] => src_payload.IN1 +sink9_data[62] => src_payload.IN1 +sink9_data[63] => src_payload.IN1 +sink9_data[64] => src_payload.IN1 +sink9_data[65] => src_payload.IN1 +sink9_data[66] => src_payload.IN1 +sink9_data[67] => src_payload.IN1 +sink9_data[68] => src_payload.IN1 +sink9_data[69] => src_payload.IN1 +sink9_data[70] => src_payload.IN1 +sink9_data[71] => src_payload.IN1 +sink9_data[72] => src_payload.IN1 +sink9_data[73] => src_payload.IN1 +sink9_data[74] => src_payload.IN1 +sink9_data[75] => src_payload.IN1 +sink9_data[76] => src_payload.IN1 +sink9_data[77] => src_payload.IN1 +sink9_data[78] => src_payload.IN1 +sink9_data[79] => src_payload.IN1 +sink9_data[80] => src_payload.IN1 +sink9_data[81] => src_payload.IN1 +sink9_data[82] => src_payload.IN1 +sink9_data[83] => src_payload.IN1 +sink9_data[84] => src_payload.IN1 +sink9_data[85] => src_payload.IN1 +sink9_data[86] => src_payload.IN1 +sink9_data[87] => src_payload.IN1 +sink9_data[88] => src_payload.IN1 +sink9_data[89] => src_payload.IN1 +sink9_data[90] => src_payload.IN1 +sink9_data[91] => src_payload.IN1 +sink9_data[92] => src_payload.IN1 +sink9_data[93] => src_payload.IN1 +sink9_data[94] => src_payload.IN1 +sink9_data[95] => src_payload.IN1 +sink9_channel[0] => src_payload.IN1 +sink9_channel[1] => src_payload.IN1 +sink9_channel[2] => src_payload.IN1 +sink9_channel[3] => src_payload.IN1 +sink9_channel[4] => src_payload.IN1 +sink9_channel[5] => src_payload.IN1 +sink9_channel[6] => src_payload.IN1 +sink9_channel[7] => src_payload.IN1 +sink9_channel[8] => src_payload.IN1 +sink9_channel[9] => src_payload.IN1 +sink9_channel[10] => src_payload.IN1 +sink9_channel[11] => src_payload.IN1 +sink9_channel[12] => src_payload.IN1 +sink9_channel[13] => src_payload.IN1 +sink9_channel[14] => src_payload.IN1 +sink9_channel[15] => src_payload.IN1 +sink9_channel[16] => src_payload.IN1 +sink9_channel[17] => src_payload.IN1 +sink9_startofpacket => src_payload.IN1 +sink9_endofpacket => src_payload.IN1 +sink9_ready <= sink9_ready.DB_MAX_OUTPUT_PORT_TYPE +sink10_valid => request[10].IN1 +sink10_data[0] => src_payload.IN1 +sink10_data[1] => src_payload.IN1 +sink10_data[2] => src_payload.IN1 +sink10_data[3] => src_payload.IN1 +sink10_data[4] => src_payload.IN1 +sink10_data[5] => src_payload.IN1 +sink10_data[6] => src_payload.IN1 +sink10_data[7] => src_payload.IN1 +sink10_data[8] => src_payload.IN1 +sink10_data[9] => src_payload.IN1 +sink10_data[10] => src_payload.IN1 +sink10_data[11] => src_payload.IN1 +sink10_data[12] => src_payload.IN1 +sink10_data[13] => src_payload.IN1 +sink10_data[14] => src_payload.IN1 +sink10_data[15] => src_payload.IN1 +sink10_data[16] => src_payload.IN1 +sink10_data[17] => src_payload.IN1 +sink10_data[18] => src_payload.IN1 +sink10_data[19] => src_payload.IN1 +sink10_data[20] => src_payload.IN1 +sink10_data[21] => src_payload.IN1 +sink10_data[22] => src_payload.IN1 +sink10_data[23] => src_payload.IN1 +sink10_data[24] => src_payload.IN1 +sink10_data[25] => src_payload.IN1 +sink10_data[26] => src_payload.IN1 +sink10_data[27] => src_payload.IN1 +sink10_data[28] => src_payload.IN1 +sink10_data[29] => src_payload.IN1 +sink10_data[30] => src_payload.IN1 +sink10_data[31] => src_payload.IN1 +sink10_data[32] => src_payload.IN1 +sink10_data[33] => src_payload.IN1 +sink10_data[34] => src_payload.IN1 +sink10_data[35] => src_payload.IN1 +sink10_data[36] => src_payload.IN1 +sink10_data[37] => src_payload.IN1 +sink10_data[38] => src_payload.IN1 +sink10_data[39] => src_payload.IN1 +sink10_data[40] => src_payload.IN1 +sink10_data[41] => src_payload.IN1 +sink10_data[42] => src_payload.IN1 +sink10_data[43] => src_payload.IN1 +sink10_data[44] => src_payload.IN1 +sink10_data[45] => src_payload.IN1 +sink10_data[46] => src_payload.IN1 +sink10_data[47] => src_payload.IN1 +sink10_data[48] => src_payload.IN1 +sink10_data[49] => src_payload.IN1 +sink10_data[50] => src_payload.IN1 +sink10_data[51] => src_payload.IN1 +sink10_data[52] => src_payload.IN1 +sink10_data[53] => src_payload.IN1 +sink10_data[54] => src_payload.IN1 +sink10_data[55] => src_payload.IN1 +sink10_data[56] => src_payload.IN1 +sink10_data[57] => src_payload.IN1 +sink10_data[58] => src_payload.IN1 +sink10_data[59] => src_payload.IN1 +sink10_data[59] => last_cycle.IN1 +sink10_data[60] => src_payload.IN1 +sink10_data[61] => src_payload.IN1 +sink10_data[62] => src_payload.IN1 +sink10_data[63] => src_payload.IN1 +sink10_data[64] => src_payload.IN1 +sink10_data[65] => src_payload.IN1 +sink10_data[66] => src_payload.IN1 +sink10_data[67] => src_payload.IN1 +sink10_data[68] => src_payload.IN1 +sink10_data[69] => src_payload.IN1 +sink10_data[70] => src_payload.IN1 +sink10_data[71] => src_payload.IN1 +sink10_data[72] => src_payload.IN1 +sink10_data[73] => src_payload.IN1 +sink10_data[74] => src_payload.IN1 +sink10_data[75] => src_payload.IN1 +sink10_data[76] => src_payload.IN1 +sink10_data[77] => src_payload.IN1 +sink10_data[78] => src_payload.IN1 +sink10_data[79] => src_payload.IN1 +sink10_data[80] => src_payload.IN1 +sink10_data[81] => src_payload.IN1 +sink10_data[82] => src_payload.IN1 +sink10_data[83] => src_payload.IN1 +sink10_data[84] => src_payload.IN1 +sink10_data[85] => src_payload.IN1 +sink10_data[86] => src_payload.IN1 +sink10_data[87] => src_payload.IN1 +sink10_data[88] => src_payload.IN1 +sink10_data[89] => src_payload.IN1 +sink10_data[90] => src_payload.IN1 +sink10_data[91] => src_payload.IN1 +sink10_data[92] => src_payload.IN1 +sink10_data[93] => src_payload.IN1 +sink10_data[94] => src_payload.IN1 +sink10_data[95] => src_payload.IN1 +sink10_channel[0] => src_payload.IN1 +sink10_channel[1] => src_payload.IN1 +sink10_channel[2] => src_payload.IN1 +sink10_channel[3] => src_payload.IN1 +sink10_channel[4] => src_payload.IN1 +sink10_channel[5] => src_payload.IN1 +sink10_channel[6] => src_payload.IN1 +sink10_channel[7] => src_payload.IN1 +sink10_channel[8] => src_payload.IN1 +sink10_channel[9] => src_payload.IN1 +sink10_channel[10] => src_payload.IN1 +sink10_channel[11] => src_payload.IN1 +sink10_channel[12] => src_payload.IN1 +sink10_channel[13] => src_payload.IN1 +sink10_channel[14] => src_payload.IN1 +sink10_channel[15] => src_payload.IN1 +sink10_channel[16] => src_payload.IN1 +sink10_channel[17] => src_payload.IN1 +sink10_startofpacket => src_payload.IN1 +sink10_endofpacket => src_payload.IN1 +sink10_ready <= sink10_ready.DB_MAX_OUTPUT_PORT_TYPE +sink11_valid => request[11].IN1 +sink11_data[0] => src_payload.IN1 +sink11_data[1] => src_payload.IN1 +sink11_data[2] => src_payload.IN1 +sink11_data[3] => src_payload.IN1 +sink11_data[4] => src_payload.IN1 +sink11_data[5] => src_payload.IN1 +sink11_data[6] => src_payload.IN1 +sink11_data[7] => src_payload.IN1 +sink11_data[8] => src_payload.IN1 +sink11_data[9] => src_payload.IN1 +sink11_data[10] => src_payload.IN1 +sink11_data[11] => src_payload.IN1 +sink11_data[12] => src_payload.IN1 +sink11_data[13] => src_payload.IN1 +sink11_data[14] => src_payload.IN1 +sink11_data[15] => src_payload.IN1 +sink11_data[16] => src_payload.IN1 +sink11_data[17] => src_payload.IN1 +sink11_data[18] => src_payload.IN1 +sink11_data[19] => src_payload.IN1 +sink11_data[20] => src_payload.IN1 +sink11_data[21] => src_payload.IN1 +sink11_data[22] => src_payload.IN1 +sink11_data[23] => src_payload.IN1 +sink11_data[24] => src_payload.IN1 +sink11_data[25] => src_payload.IN1 +sink11_data[26] => src_payload.IN1 +sink11_data[27] => src_payload.IN1 +sink11_data[28] => src_payload.IN1 +sink11_data[29] => src_payload.IN1 +sink11_data[30] => src_payload.IN1 +sink11_data[31] => src_payload.IN1 +sink11_data[32] => src_payload.IN1 +sink11_data[33] => src_payload.IN1 +sink11_data[34] => src_payload.IN1 +sink11_data[35] => src_payload.IN1 +sink11_data[36] => src_payload.IN1 +sink11_data[37] => src_payload.IN1 +sink11_data[38] => src_payload.IN1 +sink11_data[39] => src_payload.IN1 +sink11_data[40] => src_payload.IN1 +sink11_data[41] => src_payload.IN1 +sink11_data[42] => src_payload.IN1 +sink11_data[43] => src_payload.IN1 +sink11_data[44] => src_payload.IN1 +sink11_data[45] => src_payload.IN1 +sink11_data[46] => src_payload.IN1 +sink11_data[47] => src_payload.IN1 +sink11_data[48] => src_payload.IN1 +sink11_data[49] => src_payload.IN1 +sink11_data[50] => src_payload.IN1 +sink11_data[51] => src_payload.IN1 +sink11_data[52] => src_payload.IN1 +sink11_data[53] => src_payload.IN1 +sink11_data[54] => src_payload.IN1 +sink11_data[55] => src_payload.IN1 +sink11_data[56] => src_payload.IN1 +sink11_data[57] => src_payload.IN1 +sink11_data[58] => src_payload.IN1 +sink11_data[59] => src_payload.IN1 +sink11_data[59] => last_cycle.IN1 +sink11_data[60] => src_payload.IN1 +sink11_data[61] => src_payload.IN1 +sink11_data[62] => src_payload.IN1 +sink11_data[63] => src_payload.IN1 +sink11_data[64] => src_payload.IN1 +sink11_data[65] => src_payload.IN1 +sink11_data[66] => src_payload.IN1 +sink11_data[67] => src_payload.IN1 +sink11_data[68] => src_payload.IN1 +sink11_data[69] => src_payload.IN1 +sink11_data[70] => src_payload.IN1 +sink11_data[71] => src_payload.IN1 +sink11_data[72] => src_payload.IN1 +sink11_data[73] => src_payload.IN1 +sink11_data[74] => src_payload.IN1 +sink11_data[75] => src_payload.IN1 +sink11_data[76] => src_payload.IN1 +sink11_data[77] => src_payload.IN1 +sink11_data[78] => src_payload.IN1 +sink11_data[79] => src_payload.IN1 +sink11_data[80] => src_payload.IN1 +sink11_data[81] => src_payload.IN1 +sink11_data[82] => src_payload.IN1 +sink11_data[83] => src_payload.IN1 +sink11_data[84] => src_payload.IN1 +sink11_data[85] => src_payload.IN1 +sink11_data[86] => src_payload.IN1 +sink11_data[87] => src_payload.IN1 +sink11_data[88] => src_payload.IN1 +sink11_data[89] => src_payload.IN1 +sink11_data[90] => src_payload.IN1 +sink11_data[91] => src_payload.IN1 +sink11_data[92] => src_payload.IN1 +sink11_data[93] => src_payload.IN1 +sink11_data[94] => src_payload.IN1 +sink11_data[95] => src_payload.IN1 +sink11_channel[0] => src_payload.IN1 +sink11_channel[1] => src_payload.IN1 +sink11_channel[2] => src_payload.IN1 +sink11_channel[3] => src_payload.IN1 +sink11_channel[4] => src_payload.IN1 +sink11_channel[5] => src_payload.IN1 +sink11_channel[6] => src_payload.IN1 +sink11_channel[7] => src_payload.IN1 +sink11_channel[8] => src_payload.IN1 +sink11_channel[9] => src_payload.IN1 +sink11_channel[10] => src_payload.IN1 +sink11_channel[11] => src_payload.IN1 +sink11_channel[12] => src_payload.IN1 +sink11_channel[13] => src_payload.IN1 +sink11_channel[14] => src_payload.IN1 +sink11_channel[15] => src_payload.IN1 +sink11_channel[16] => src_payload.IN1 +sink11_channel[17] => src_payload.IN1 +sink11_startofpacket => src_payload.IN1 +sink11_endofpacket => src_payload.IN1 +sink11_ready <= sink11_ready.DB_MAX_OUTPUT_PORT_TYPE +sink12_valid => request[12].IN1 +sink12_data[0] => src_payload.IN1 +sink12_data[1] => src_payload.IN1 +sink12_data[2] => src_payload.IN1 +sink12_data[3] => src_payload.IN1 +sink12_data[4] => src_payload.IN1 +sink12_data[5] => src_payload.IN1 +sink12_data[6] => src_payload.IN1 +sink12_data[7] => src_payload.IN1 +sink12_data[8] => src_payload.IN1 +sink12_data[9] => src_payload.IN1 +sink12_data[10] => src_payload.IN1 +sink12_data[11] => src_payload.IN1 +sink12_data[12] => src_payload.IN1 +sink12_data[13] => src_payload.IN1 +sink12_data[14] => src_payload.IN1 +sink12_data[15] => src_payload.IN1 +sink12_data[16] => src_payload.IN1 +sink12_data[17] => src_payload.IN1 +sink12_data[18] => src_payload.IN1 +sink12_data[19] => src_payload.IN1 +sink12_data[20] => src_payload.IN1 +sink12_data[21] => src_payload.IN1 +sink12_data[22] => src_payload.IN1 +sink12_data[23] => src_payload.IN1 +sink12_data[24] => src_payload.IN1 +sink12_data[25] => src_payload.IN1 +sink12_data[26] => src_payload.IN1 +sink12_data[27] => src_payload.IN1 +sink12_data[28] => src_payload.IN1 +sink12_data[29] => src_payload.IN1 +sink12_data[30] => src_payload.IN1 +sink12_data[31] => src_payload.IN1 +sink12_data[32] => src_payload.IN1 +sink12_data[33] => src_payload.IN1 +sink12_data[34] => src_payload.IN1 +sink12_data[35] => src_payload.IN1 +sink12_data[36] => src_payload.IN1 +sink12_data[37] => src_payload.IN1 +sink12_data[38] => src_payload.IN1 +sink12_data[39] => src_payload.IN1 +sink12_data[40] => src_payload.IN1 +sink12_data[41] => src_payload.IN1 +sink12_data[42] => src_payload.IN1 +sink12_data[43] => src_payload.IN1 +sink12_data[44] => src_payload.IN1 +sink12_data[45] => src_payload.IN1 +sink12_data[46] => src_payload.IN1 +sink12_data[47] => src_payload.IN1 +sink12_data[48] => src_payload.IN1 +sink12_data[49] => src_payload.IN1 +sink12_data[50] => src_payload.IN1 +sink12_data[51] => src_payload.IN1 +sink12_data[52] => src_payload.IN1 +sink12_data[53] => src_payload.IN1 +sink12_data[54] => src_payload.IN1 +sink12_data[55] => src_payload.IN1 +sink12_data[56] => src_payload.IN1 +sink12_data[57] => src_payload.IN1 +sink12_data[58] => src_payload.IN1 +sink12_data[59] => src_payload.IN1 +sink12_data[59] => last_cycle.IN1 +sink12_data[60] => src_payload.IN1 +sink12_data[61] => src_payload.IN1 +sink12_data[62] => src_payload.IN1 +sink12_data[63] => src_payload.IN1 +sink12_data[64] => src_payload.IN1 +sink12_data[65] => src_payload.IN1 +sink12_data[66] => src_payload.IN1 +sink12_data[67] => src_payload.IN1 +sink12_data[68] => src_payload.IN1 +sink12_data[69] => src_payload.IN1 +sink12_data[70] => src_payload.IN1 +sink12_data[71] => src_payload.IN1 +sink12_data[72] => src_payload.IN1 +sink12_data[73] => src_payload.IN1 +sink12_data[74] => src_payload.IN1 +sink12_data[75] => src_payload.IN1 +sink12_data[76] => src_payload.IN1 +sink12_data[77] => src_payload.IN1 +sink12_data[78] => src_payload.IN1 +sink12_data[79] => src_payload.IN1 +sink12_data[80] => src_payload.IN1 +sink12_data[81] => src_payload.IN1 +sink12_data[82] => src_payload.IN1 +sink12_data[83] => src_payload.IN1 +sink12_data[84] => src_payload.IN1 +sink12_data[85] => src_payload.IN1 +sink12_data[86] => src_payload.IN1 +sink12_data[87] => src_payload.IN1 +sink12_data[88] => src_payload.IN1 +sink12_data[89] => src_payload.IN1 +sink12_data[90] => src_payload.IN1 +sink12_data[91] => src_payload.IN1 +sink12_data[92] => src_payload.IN1 +sink12_data[93] => src_payload.IN1 +sink12_data[94] => src_payload.IN1 +sink12_data[95] => src_payload.IN1 +sink12_channel[0] => src_payload.IN1 +sink12_channel[1] => src_payload.IN1 +sink12_channel[2] => src_payload.IN1 +sink12_channel[3] => src_payload.IN1 +sink12_channel[4] => src_payload.IN1 +sink12_channel[5] => src_payload.IN1 +sink12_channel[6] => src_payload.IN1 +sink12_channel[7] => src_payload.IN1 +sink12_channel[8] => src_payload.IN1 +sink12_channel[9] => src_payload.IN1 +sink12_channel[10] => src_payload.IN1 +sink12_channel[11] => src_payload.IN1 +sink12_channel[12] => src_payload.IN1 +sink12_channel[13] => src_payload.IN1 +sink12_channel[14] => src_payload.IN1 +sink12_channel[15] => src_payload.IN1 +sink12_channel[16] => src_payload.IN1 +sink12_channel[17] => src_payload.IN1 +sink12_startofpacket => src_payload.IN1 +sink12_endofpacket => src_payload.IN1 +sink12_ready <= sink12_ready.DB_MAX_OUTPUT_PORT_TYPE +sink13_valid => request[13].IN1 +sink13_data[0] => src_payload.IN1 +sink13_data[1] => src_payload.IN1 +sink13_data[2] => src_payload.IN1 +sink13_data[3] => src_payload.IN1 +sink13_data[4] => src_payload.IN1 +sink13_data[5] => src_payload.IN1 +sink13_data[6] => src_payload.IN1 +sink13_data[7] => src_payload.IN1 +sink13_data[8] => src_payload.IN1 +sink13_data[9] => src_payload.IN1 +sink13_data[10] => src_payload.IN1 +sink13_data[11] => src_payload.IN1 +sink13_data[12] => src_payload.IN1 +sink13_data[13] => src_payload.IN1 +sink13_data[14] => src_payload.IN1 +sink13_data[15] => src_payload.IN1 +sink13_data[16] => src_payload.IN1 +sink13_data[17] => src_payload.IN1 +sink13_data[18] => src_payload.IN1 +sink13_data[19] => src_payload.IN1 +sink13_data[20] => src_payload.IN1 +sink13_data[21] => src_payload.IN1 +sink13_data[22] => src_payload.IN1 +sink13_data[23] => src_payload.IN1 +sink13_data[24] => src_payload.IN1 +sink13_data[25] => src_payload.IN1 +sink13_data[26] => src_payload.IN1 +sink13_data[27] => src_payload.IN1 +sink13_data[28] => src_payload.IN1 +sink13_data[29] => src_payload.IN1 +sink13_data[30] => src_payload.IN1 +sink13_data[31] => src_payload.IN1 +sink13_data[32] => src_payload.IN1 +sink13_data[33] => src_payload.IN1 +sink13_data[34] => src_payload.IN1 +sink13_data[35] => src_payload.IN1 +sink13_data[36] => src_payload.IN1 +sink13_data[37] => src_payload.IN1 +sink13_data[38] => src_payload.IN1 +sink13_data[39] => src_payload.IN1 +sink13_data[40] => src_payload.IN1 +sink13_data[41] => src_payload.IN1 +sink13_data[42] => src_payload.IN1 +sink13_data[43] => src_payload.IN1 +sink13_data[44] => src_payload.IN1 +sink13_data[45] => src_payload.IN1 +sink13_data[46] => src_payload.IN1 +sink13_data[47] => src_payload.IN1 +sink13_data[48] => src_payload.IN1 +sink13_data[49] => src_payload.IN1 +sink13_data[50] => src_payload.IN1 +sink13_data[51] => src_payload.IN1 +sink13_data[52] => src_payload.IN1 +sink13_data[53] => src_payload.IN1 +sink13_data[54] => src_payload.IN1 +sink13_data[55] => src_payload.IN1 +sink13_data[56] => src_payload.IN1 +sink13_data[57] => src_payload.IN1 +sink13_data[58] => src_payload.IN1 +sink13_data[59] => src_payload.IN1 +sink13_data[59] => last_cycle.IN1 +sink13_data[60] => src_payload.IN1 +sink13_data[61] => src_payload.IN1 +sink13_data[62] => src_payload.IN1 +sink13_data[63] => src_payload.IN1 +sink13_data[64] => src_payload.IN1 +sink13_data[65] => src_payload.IN1 +sink13_data[66] => src_payload.IN1 +sink13_data[67] => src_payload.IN1 +sink13_data[68] => src_payload.IN1 +sink13_data[69] => src_payload.IN1 +sink13_data[70] => src_payload.IN1 +sink13_data[71] => src_payload.IN1 +sink13_data[72] => src_payload.IN1 +sink13_data[73] => src_payload.IN1 +sink13_data[74] => src_payload.IN1 +sink13_data[75] => src_payload.IN1 +sink13_data[76] => src_payload.IN1 +sink13_data[77] => src_payload.IN1 +sink13_data[78] => src_payload.IN1 +sink13_data[79] => src_payload.IN1 +sink13_data[80] => src_payload.IN1 +sink13_data[81] => src_payload.IN1 +sink13_data[82] => src_payload.IN1 +sink13_data[83] => src_payload.IN1 +sink13_data[84] => src_payload.IN1 +sink13_data[85] => src_payload.IN1 +sink13_data[86] => src_payload.IN1 +sink13_data[87] => src_payload.IN1 +sink13_data[88] => src_payload.IN1 +sink13_data[89] => src_payload.IN1 +sink13_data[90] => src_payload.IN1 +sink13_data[91] => src_payload.IN1 +sink13_data[92] => src_payload.IN1 +sink13_data[93] => src_payload.IN1 +sink13_data[94] => src_payload.IN1 +sink13_data[95] => src_payload.IN1 +sink13_channel[0] => src_payload.IN1 +sink13_channel[1] => src_payload.IN1 +sink13_channel[2] => src_payload.IN1 +sink13_channel[3] => src_payload.IN1 +sink13_channel[4] => src_payload.IN1 +sink13_channel[5] => src_payload.IN1 +sink13_channel[6] => src_payload.IN1 +sink13_channel[7] => src_payload.IN1 +sink13_channel[8] => src_payload.IN1 +sink13_channel[9] => src_payload.IN1 +sink13_channel[10] => src_payload.IN1 +sink13_channel[11] => src_payload.IN1 +sink13_channel[12] => src_payload.IN1 +sink13_channel[13] => src_payload.IN1 +sink13_channel[14] => src_payload.IN1 +sink13_channel[15] => src_payload.IN1 +sink13_channel[16] => src_payload.IN1 +sink13_channel[17] => src_payload.IN1 +sink13_startofpacket => src_payload.IN1 +sink13_endofpacket => src_payload.IN1 +sink13_ready <= sink13_ready.DB_MAX_OUTPUT_PORT_TYPE +sink14_valid => request[14].IN1 +sink14_data[0] => src_payload.IN1 +sink14_data[1] => src_payload.IN1 +sink14_data[2] => src_payload.IN1 +sink14_data[3] => src_payload.IN1 +sink14_data[4] => src_payload.IN1 +sink14_data[5] => src_payload.IN1 +sink14_data[6] => src_payload.IN1 +sink14_data[7] => src_payload.IN1 +sink14_data[8] => src_payload.IN1 +sink14_data[9] => src_payload.IN1 +sink14_data[10] => src_payload.IN1 +sink14_data[11] => src_payload.IN1 +sink14_data[12] => src_payload.IN1 +sink14_data[13] => src_payload.IN1 +sink14_data[14] => src_payload.IN1 +sink14_data[15] => src_payload.IN1 +sink14_data[16] => src_payload.IN1 +sink14_data[17] => src_payload.IN1 +sink14_data[18] => src_payload.IN1 +sink14_data[19] => src_payload.IN1 +sink14_data[20] => src_payload.IN1 +sink14_data[21] => src_payload.IN1 +sink14_data[22] => src_payload.IN1 +sink14_data[23] => src_payload.IN1 +sink14_data[24] => src_payload.IN1 +sink14_data[25] => src_payload.IN1 +sink14_data[26] => src_payload.IN1 +sink14_data[27] => src_payload.IN1 +sink14_data[28] => src_payload.IN1 +sink14_data[29] => src_payload.IN1 +sink14_data[30] => src_payload.IN1 +sink14_data[31] => src_payload.IN1 +sink14_data[32] => src_payload.IN1 +sink14_data[33] => src_payload.IN1 +sink14_data[34] => src_payload.IN1 +sink14_data[35] => src_payload.IN1 +sink14_data[36] => src_payload.IN1 +sink14_data[37] => src_payload.IN1 +sink14_data[38] => src_payload.IN1 +sink14_data[39] => src_payload.IN1 +sink14_data[40] => src_payload.IN1 +sink14_data[41] => src_payload.IN1 +sink14_data[42] => src_payload.IN1 +sink14_data[43] => src_payload.IN1 +sink14_data[44] => src_payload.IN1 +sink14_data[45] => src_payload.IN1 +sink14_data[46] => src_payload.IN1 +sink14_data[47] => src_payload.IN1 +sink14_data[48] => src_payload.IN1 +sink14_data[49] => src_payload.IN1 +sink14_data[50] => src_payload.IN1 +sink14_data[51] => src_payload.IN1 +sink14_data[52] => src_payload.IN1 +sink14_data[53] => src_payload.IN1 +sink14_data[54] => src_payload.IN1 +sink14_data[55] => src_payload.IN1 +sink14_data[56] => src_payload.IN1 +sink14_data[57] => src_payload.IN1 +sink14_data[58] => src_payload.IN1 +sink14_data[59] => src_payload.IN1 +sink14_data[59] => last_cycle.IN1 +sink14_data[60] => src_payload.IN1 +sink14_data[61] => src_payload.IN1 +sink14_data[62] => src_payload.IN1 +sink14_data[63] => src_payload.IN1 +sink14_data[64] => src_payload.IN1 +sink14_data[65] => src_payload.IN1 +sink14_data[66] => src_payload.IN1 +sink14_data[67] => src_payload.IN1 +sink14_data[68] => src_payload.IN1 +sink14_data[69] => src_payload.IN1 +sink14_data[70] => src_payload.IN1 +sink14_data[71] => src_payload.IN1 +sink14_data[72] => src_payload.IN1 +sink14_data[73] => src_payload.IN1 +sink14_data[74] => src_payload.IN1 +sink14_data[75] => src_payload.IN1 +sink14_data[76] => src_payload.IN1 +sink14_data[77] => src_payload.IN1 +sink14_data[78] => src_payload.IN1 +sink14_data[79] => src_payload.IN1 +sink14_data[80] => src_payload.IN1 +sink14_data[81] => src_payload.IN1 +sink14_data[82] => src_payload.IN1 +sink14_data[83] => src_payload.IN1 +sink14_data[84] => src_payload.IN1 +sink14_data[85] => src_payload.IN1 +sink14_data[86] => src_payload.IN1 +sink14_data[87] => src_payload.IN1 +sink14_data[88] => src_payload.IN1 +sink14_data[89] => src_payload.IN1 +sink14_data[90] => src_payload.IN1 +sink14_data[91] => src_payload.IN1 +sink14_data[92] => src_payload.IN1 +sink14_data[93] => src_payload.IN1 +sink14_data[94] => src_payload.IN1 +sink14_data[95] => src_payload.IN1 +sink14_channel[0] => src_payload.IN1 +sink14_channel[1] => src_payload.IN1 +sink14_channel[2] => src_payload.IN1 +sink14_channel[3] => src_payload.IN1 +sink14_channel[4] => src_payload.IN1 +sink14_channel[5] => src_payload.IN1 +sink14_channel[6] => src_payload.IN1 +sink14_channel[7] => src_payload.IN1 +sink14_channel[8] => src_payload.IN1 +sink14_channel[9] => src_payload.IN1 +sink14_channel[10] => src_payload.IN1 +sink14_channel[11] => src_payload.IN1 +sink14_channel[12] => src_payload.IN1 +sink14_channel[13] => src_payload.IN1 +sink14_channel[14] => src_payload.IN1 +sink14_channel[15] => src_payload.IN1 +sink14_channel[16] => src_payload.IN1 +sink14_channel[17] => src_payload.IN1 +sink14_startofpacket => src_payload.IN1 +sink14_endofpacket => src_payload.IN1 +sink14_ready <= sink14_ready.DB_MAX_OUTPUT_PORT_TYPE +sink15_valid => request[15].IN1 +sink15_data[0] => src_payload.IN1 +sink15_data[1] => src_payload.IN1 +sink15_data[2] => src_payload.IN1 +sink15_data[3] => src_payload.IN1 +sink15_data[4] => src_payload.IN1 +sink15_data[5] => src_payload.IN1 +sink15_data[6] => src_payload.IN1 +sink15_data[7] => src_payload.IN1 +sink15_data[8] => src_payload.IN1 +sink15_data[9] => src_payload.IN1 +sink15_data[10] => src_payload.IN1 +sink15_data[11] => src_payload.IN1 +sink15_data[12] => src_payload.IN1 +sink15_data[13] => src_payload.IN1 +sink15_data[14] => src_payload.IN1 +sink15_data[15] => src_payload.IN1 +sink15_data[16] => src_payload.IN1 +sink15_data[17] => src_payload.IN1 +sink15_data[18] => src_payload.IN1 +sink15_data[19] => src_payload.IN1 +sink15_data[20] => src_payload.IN1 +sink15_data[21] => src_payload.IN1 +sink15_data[22] => src_payload.IN1 +sink15_data[23] => src_payload.IN1 +sink15_data[24] => src_payload.IN1 +sink15_data[25] => src_payload.IN1 +sink15_data[26] => src_payload.IN1 +sink15_data[27] => src_payload.IN1 +sink15_data[28] => src_payload.IN1 +sink15_data[29] => src_payload.IN1 +sink15_data[30] => src_payload.IN1 +sink15_data[31] => src_payload.IN1 +sink15_data[32] => src_payload.IN1 +sink15_data[33] => src_payload.IN1 +sink15_data[34] => src_payload.IN1 +sink15_data[35] => src_payload.IN1 +sink15_data[36] => src_payload.IN1 +sink15_data[37] => src_payload.IN1 +sink15_data[38] => src_payload.IN1 +sink15_data[39] => src_payload.IN1 +sink15_data[40] => src_payload.IN1 +sink15_data[41] => src_payload.IN1 +sink15_data[42] => src_payload.IN1 +sink15_data[43] => src_payload.IN1 +sink15_data[44] => src_payload.IN1 +sink15_data[45] => src_payload.IN1 +sink15_data[46] => src_payload.IN1 +sink15_data[47] => src_payload.IN1 +sink15_data[48] => src_payload.IN1 +sink15_data[49] => src_payload.IN1 +sink15_data[50] => src_payload.IN1 +sink15_data[51] => src_payload.IN1 +sink15_data[52] => src_payload.IN1 +sink15_data[53] => src_payload.IN1 +sink15_data[54] => src_payload.IN1 +sink15_data[55] => src_payload.IN1 +sink15_data[56] => src_payload.IN1 +sink15_data[57] => src_payload.IN1 +sink15_data[58] => src_payload.IN1 +sink15_data[59] => src_payload.IN1 +sink15_data[59] => last_cycle.IN1 +sink15_data[60] => src_payload.IN1 +sink15_data[61] => src_payload.IN1 +sink15_data[62] => src_payload.IN1 +sink15_data[63] => src_payload.IN1 +sink15_data[64] => src_payload.IN1 +sink15_data[65] => src_payload.IN1 +sink15_data[66] => src_payload.IN1 +sink15_data[67] => src_payload.IN1 +sink15_data[68] => src_payload.IN1 +sink15_data[69] => src_payload.IN1 +sink15_data[70] => src_payload.IN1 +sink15_data[71] => src_payload.IN1 +sink15_data[72] => src_payload.IN1 +sink15_data[73] => src_payload.IN1 +sink15_data[74] => src_payload.IN1 +sink15_data[75] => src_payload.IN1 +sink15_data[76] => src_payload.IN1 +sink15_data[77] => src_payload.IN1 +sink15_data[78] => src_payload.IN1 +sink15_data[79] => src_payload.IN1 +sink15_data[80] => src_payload.IN1 +sink15_data[81] => src_payload.IN1 +sink15_data[82] => src_payload.IN1 +sink15_data[83] => src_payload.IN1 +sink15_data[84] => src_payload.IN1 +sink15_data[85] => src_payload.IN1 +sink15_data[86] => src_payload.IN1 +sink15_data[87] => src_payload.IN1 +sink15_data[88] => src_payload.IN1 +sink15_data[89] => src_payload.IN1 +sink15_data[90] => src_payload.IN1 +sink15_data[91] => src_payload.IN1 +sink15_data[92] => src_payload.IN1 +sink15_data[93] => src_payload.IN1 +sink15_data[94] => src_payload.IN1 +sink15_data[95] => src_payload.IN1 +sink15_channel[0] => src_payload.IN1 +sink15_channel[1] => src_payload.IN1 +sink15_channel[2] => src_payload.IN1 +sink15_channel[3] => src_payload.IN1 +sink15_channel[4] => src_payload.IN1 +sink15_channel[5] => src_payload.IN1 +sink15_channel[6] => src_payload.IN1 +sink15_channel[7] => src_payload.IN1 +sink15_channel[8] => src_payload.IN1 +sink15_channel[9] => src_payload.IN1 +sink15_channel[10] => src_payload.IN1 +sink15_channel[11] => src_payload.IN1 +sink15_channel[12] => src_payload.IN1 +sink15_channel[13] => src_payload.IN1 +sink15_channel[14] => src_payload.IN1 +sink15_channel[15] => src_payload.IN1 +sink15_channel[16] => src_payload.IN1 +sink15_channel[17] => src_payload.IN1 +sink15_startofpacket => src_payload.IN1 +sink15_endofpacket => src_payload.IN1 +sink15_ready <= sink15_ready.DB_MAX_OUTPUT_PORT_TYPE +sink16_valid => request[16].IN1 +sink16_data[0] => src_payload.IN1 +sink16_data[1] => src_payload.IN1 +sink16_data[2] => src_payload.IN1 +sink16_data[3] => src_payload.IN1 +sink16_data[4] => src_payload.IN1 +sink16_data[5] => src_payload.IN1 +sink16_data[6] => src_payload.IN1 +sink16_data[7] => src_payload.IN1 +sink16_data[8] => src_payload.IN1 +sink16_data[9] => src_payload.IN1 +sink16_data[10] => src_payload.IN1 +sink16_data[11] => src_payload.IN1 +sink16_data[12] => src_payload.IN1 +sink16_data[13] => src_payload.IN1 +sink16_data[14] => src_payload.IN1 +sink16_data[15] => src_payload.IN1 +sink16_data[16] => src_payload.IN1 +sink16_data[17] => src_payload.IN1 +sink16_data[18] => src_payload.IN1 +sink16_data[19] => src_payload.IN1 +sink16_data[20] => src_payload.IN1 +sink16_data[21] => src_payload.IN1 +sink16_data[22] => src_payload.IN1 +sink16_data[23] => src_payload.IN1 +sink16_data[24] => src_payload.IN1 +sink16_data[25] => src_payload.IN1 +sink16_data[26] => src_payload.IN1 +sink16_data[27] => src_payload.IN1 +sink16_data[28] => src_payload.IN1 +sink16_data[29] => src_payload.IN1 +sink16_data[30] => src_payload.IN1 +sink16_data[31] => src_payload.IN1 +sink16_data[32] => src_payload.IN1 +sink16_data[33] => src_payload.IN1 +sink16_data[34] => src_payload.IN1 +sink16_data[35] => src_payload.IN1 +sink16_data[36] => src_payload.IN1 +sink16_data[37] => src_payload.IN1 +sink16_data[38] => src_payload.IN1 +sink16_data[39] => src_payload.IN1 +sink16_data[40] => src_payload.IN1 +sink16_data[41] => src_payload.IN1 +sink16_data[42] => src_payload.IN1 +sink16_data[43] => src_payload.IN1 +sink16_data[44] => src_payload.IN1 +sink16_data[45] => src_payload.IN1 +sink16_data[46] => src_payload.IN1 +sink16_data[47] => src_payload.IN1 +sink16_data[48] => src_payload.IN1 +sink16_data[49] => src_payload.IN1 +sink16_data[50] => src_payload.IN1 +sink16_data[51] => src_payload.IN1 +sink16_data[52] => src_payload.IN1 +sink16_data[53] => src_payload.IN1 +sink16_data[54] => src_payload.IN1 +sink16_data[55] => src_payload.IN1 +sink16_data[56] => src_payload.IN1 +sink16_data[57] => src_payload.IN1 +sink16_data[58] => src_payload.IN1 +sink16_data[59] => src_payload.IN1 +sink16_data[59] => last_cycle.IN1 +sink16_data[60] => src_payload.IN1 +sink16_data[61] => src_payload.IN1 +sink16_data[62] => src_payload.IN1 +sink16_data[63] => src_payload.IN1 +sink16_data[64] => src_payload.IN1 +sink16_data[65] => src_payload.IN1 +sink16_data[66] => src_payload.IN1 +sink16_data[67] => src_payload.IN1 +sink16_data[68] => src_payload.IN1 +sink16_data[69] => src_payload.IN1 +sink16_data[70] => src_payload.IN1 +sink16_data[71] => src_payload.IN1 +sink16_data[72] => src_payload.IN1 +sink16_data[73] => src_payload.IN1 +sink16_data[74] => src_payload.IN1 +sink16_data[75] => src_payload.IN1 +sink16_data[76] => src_payload.IN1 +sink16_data[77] => src_payload.IN1 +sink16_data[78] => src_payload.IN1 +sink16_data[79] => src_payload.IN1 +sink16_data[80] => src_payload.IN1 +sink16_data[81] => src_payload.IN1 +sink16_data[82] => src_payload.IN1 +sink16_data[83] => src_payload.IN1 +sink16_data[84] => src_payload.IN1 +sink16_data[85] => src_payload.IN1 +sink16_data[86] => src_payload.IN1 +sink16_data[87] => src_payload.IN1 +sink16_data[88] => src_payload.IN1 +sink16_data[89] => src_payload.IN1 +sink16_data[90] => src_payload.IN1 +sink16_data[91] => src_payload.IN1 +sink16_data[92] => src_payload.IN1 +sink16_data[93] => src_payload.IN1 +sink16_data[94] => src_payload.IN1 +sink16_data[95] => src_payload.IN1 +sink16_channel[0] => src_payload.IN1 +sink16_channel[1] => src_payload.IN1 +sink16_channel[2] => src_payload.IN1 +sink16_channel[3] => src_payload.IN1 +sink16_channel[4] => src_payload.IN1 +sink16_channel[5] => src_payload.IN1 +sink16_channel[6] => src_payload.IN1 +sink16_channel[7] => src_payload.IN1 +sink16_channel[8] => src_payload.IN1 +sink16_channel[9] => src_payload.IN1 +sink16_channel[10] => src_payload.IN1 +sink16_channel[11] => src_payload.IN1 +sink16_channel[12] => src_payload.IN1 +sink16_channel[13] => src_payload.IN1 +sink16_channel[14] => src_payload.IN1 +sink16_channel[15] => src_payload.IN1 +sink16_channel[16] => src_payload.IN1 +sink16_channel[17] => src_payload.IN1 +sink16_startofpacket => src_payload.IN1 +sink16_endofpacket => src_payload.IN1 +sink16_ready <= sink16_ready.DB_MAX_OUTPUT_PORT_TYPE +sink17_valid => request[17].IN1 +sink17_data[0] => src_payload.IN1 +sink17_data[1] => src_payload.IN1 +sink17_data[2] => src_payload.IN1 +sink17_data[3] => src_payload.IN1 +sink17_data[4] => src_payload.IN1 +sink17_data[5] => src_payload.IN1 +sink17_data[6] => src_payload.IN1 +sink17_data[7] => src_payload.IN1 +sink17_data[8] => src_payload.IN1 +sink17_data[9] => src_payload.IN1 +sink17_data[10] => src_payload.IN1 +sink17_data[11] => src_payload.IN1 +sink17_data[12] => src_payload.IN1 +sink17_data[13] => src_payload.IN1 +sink17_data[14] => src_payload.IN1 +sink17_data[15] => src_payload.IN1 +sink17_data[16] => src_payload.IN1 +sink17_data[17] => src_payload.IN1 +sink17_data[18] => src_payload.IN1 +sink17_data[19] => src_payload.IN1 +sink17_data[20] => src_payload.IN1 +sink17_data[21] => src_payload.IN1 +sink17_data[22] => src_payload.IN1 +sink17_data[23] => src_payload.IN1 +sink17_data[24] => src_payload.IN1 +sink17_data[25] => src_payload.IN1 +sink17_data[26] => src_payload.IN1 +sink17_data[27] => src_payload.IN1 +sink17_data[28] => src_payload.IN1 +sink17_data[29] => src_payload.IN1 +sink17_data[30] => src_payload.IN1 +sink17_data[31] => src_payload.IN1 +sink17_data[32] => src_payload.IN1 +sink17_data[33] => src_payload.IN1 +sink17_data[34] => src_payload.IN1 +sink17_data[35] => src_payload.IN1 +sink17_data[36] => src_payload.IN1 +sink17_data[37] => src_payload.IN1 +sink17_data[38] => src_payload.IN1 +sink17_data[39] => src_payload.IN1 +sink17_data[40] => src_payload.IN1 +sink17_data[41] => src_payload.IN1 +sink17_data[42] => src_payload.IN1 +sink17_data[43] => src_payload.IN1 +sink17_data[44] => src_payload.IN1 +sink17_data[45] => src_payload.IN1 +sink17_data[46] => src_payload.IN1 +sink17_data[47] => src_payload.IN1 +sink17_data[48] => src_payload.IN1 +sink17_data[49] => src_payload.IN1 +sink17_data[50] => src_payload.IN1 +sink17_data[51] => src_payload.IN1 +sink17_data[52] => src_payload.IN1 +sink17_data[53] => src_payload.IN1 +sink17_data[54] => src_payload.IN1 +sink17_data[55] => src_payload.IN1 +sink17_data[56] => src_payload.IN1 +sink17_data[57] => src_payload.IN1 +sink17_data[58] => src_payload.IN1 +sink17_data[59] => src_payload.IN1 +sink17_data[59] => last_cycle.IN1 +sink17_data[60] => src_payload.IN1 +sink17_data[61] => src_payload.IN1 +sink17_data[62] => src_payload.IN1 +sink17_data[63] => src_payload.IN1 +sink17_data[64] => src_payload.IN1 +sink17_data[65] => src_payload.IN1 +sink17_data[66] => src_payload.IN1 +sink17_data[67] => src_payload.IN1 +sink17_data[68] => src_payload.IN1 +sink17_data[69] => src_payload.IN1 +sink17_data[70] => src_payload.IN1 +sink17_data[71] => src_payload.IN1 +sink17_data[72] => src_payload.IN1 +sink17_data[73] => src_payload.IN1 +sink17_data[74] => src_payload.IN1 +sink17_data[75] => src_payload.IN1 +sink17_data[76] => src_payload.IN1 +sink17_data[77] => src_payload.IN1 +sink17_data[78] => src_payload.IN1 +sink17_data[79] => src_payload.IN1 +sink17_data[80] => src_payload.IN1 +sink17_data[81] => src_payload.IN1 +sink17_data[82] => src_payload.IN1 +sink17_data[83] => src_payload.IN1 +sink17_data[84] => src_payload.IN1 +sink17_data[85] => src_payload.IN1 +sink17_data[86] => src_payload.IN1 +sink17_data[87] => src_payload.IN1 +sink17_data[88] => src_payload.IN1 +sink17_data[89] => src_payload.IN1 +sink17_data[90] => src_payload.IN1 +sink17_data[91] => src_payload.IN1 +sink17_data[92] => src_payload.IN1 +sink17_data[93] => src_payload.IN1 +sink17_data[94] => src_payload.IN1 +sink17_data[95] => src_payload.IN1 +sink17_channel[0] => src_payload.IN1 +sink17_channel[1] => src_payload.IN1 +sink17_channel[2] => src_payload.IN1 +sink17_channel[3] => src_payload.IN1 +sink17_channel[4] => src_payload.IN1 +sink17_channel[5] => src_payload.IN1 +sink17_channel[6] => src_payload.IN1 +sink17_channel[7] => src_payload.IN1 +sink17_channel[8] => src_payload.IN1 +sink17_channel[9] => src_payload.IN1 +sink17_channel[10] => src_payload.IN1 +sink17_channel[11] => src_payload.IN1 +sink17_channel[12] => src_payload.IN1 +sink17_channel[13] => src_payload.IN1 +sink17_channel[14] => src_payload.IN1 +sink17_channel[15] => src_payload.IN1 +sink17_channel[16] => src_payload.IN1 +sink17_channel[17] => src_payload.IN1 +sink17_startofpacket => src_payload.IN1 +sink17_endofpacket => src_payload.IN1 +sink17_ready <= sink17_ready.DB_MAX_OUTPUT_PORT_TYPE +src_valid <= src_valid.DB_MAX_OUTPUT_PORT_TYPE +src_data[0] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[1] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[2] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[3] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[4] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[5] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[6] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[7] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[8] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[9] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[10] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[11] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[12] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[13] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[14] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[15] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[16] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[17] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[18] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[19] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[20] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[21] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[22] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[23] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[24] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[25] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[26] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[27] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[28] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[29] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[30] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[31] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[32] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[33] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[34] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[35] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[36] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[37] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[38] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[39] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[40] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[41] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[42] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[43] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[44] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[45] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[46] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[47] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[48] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[49] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[50] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[51] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[52] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[53] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[54] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[55] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[56] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[57] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[58] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[59] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[60] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[61] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[62] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[63] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[64] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[65] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[66] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[67] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[68] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[69] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[70] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[71] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[72] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[73] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[74] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[75] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[76] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[77] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[78] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[79] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[80] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[81] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[82] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[83] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[84] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[85] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[86] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[87] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[88] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[89] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[90] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[91] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[92] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[93] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[94] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_data[95] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_channel[0] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_channel[1] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_channel[2] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_channel[3] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_channel[4] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_channel[5] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_channel[6] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_channel[7] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_channel[8] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_channel[9] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_channel[10] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_channel[11] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_channel[12] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_channel[13] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_channel[14] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_channel[15] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_channel[16] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_channel[17] <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_startofpacket <= src_payload.DB_MAX_OUTPUT_PORT_TYPE +src_endofpacket <= src_payload[0].DB_MAX_OUTPUT_PORT_TYPE +src_ready => last_cycle.IN0 +src_ready => sink0_ready.IN1 +src_ready => sink1_ready.IN1 +src_ready => sink2_ready.IN1 +src_ready => sink3_ready.IN1 +src_ready => sink4_ready.IN1 +src_ready => sink5_ready.IN1 +src_ready => sink6_ready.IN1 +src_ready => sink7_ready.IN1 +src_ready => sink8_ready.IN1 +src_ready => sink9_ready.IN1 +src_ready => sink10_ready.IN1 +src_ready => sink11_ready.IN1 +src_ready => sink12_ready.IN1 +src_ready => sink13_ready.IN1 +src_ready => sink14_ready.IN1 +src_ready => sink15_ready.IN1 +src_ready => sink16_ready.IN1 +src_ready => sink17_ready.IN1 +clk => clk.IN1 +reset => reset.IN1 + + +|lights|nios_system:NiosII|nios_system_rsp_xbar_mux_001:rsp_xbar_mux_001|altera_merlin_arbitrator:arb +clk => ~NO_FANOUT~ +reset => ~NO_FANOUT~ +request[0] => grant[0].DATAIN +request[0] => _.IN1 +request[0] => _.IN1 +request[1] => grant[1].DATAIN +request[1] => _.IN1 +request[1] => _.IN1 +request[2] => grant[2].DATAIN +request[2] => _.IN1 +request[2] => _.IN1 +request[3] => grant[3].DATAIN +request[3] => _.IN1 +request[3] => _.IN1 +request[4] => grant[4].DATAIN +request[4] => _.IN1 +request[4] => _.IN1 +request[5] => grant[5].DATAIN +request[5] => _.IN1 +request[5] => _.IN1 +request[6] => grant[6].DATAIN +request[6] => _.IN1 +request[6] => _.IN1 +request[7] => grant[7].DATAIN +request[7] => _.IN1 +request[7] => _.IN1 +request[8] => grant[8].DATAIN +request[8] => _.IN1 +request[8] => _.IN1 +request[9] => grant[9].DATAIN +request[9] => _.IN1 +request[9] => _.IN1 +request[10] => grant[10].DATAIN +request[10] => _.IN1 +request[10] => _.IN1 +request[11] => grant[11].DATAIN +request[11] => _.IN1 +request[11] => _.IN1 +request[12] => grant[12].DATAIN +request[12] => _.IN1 +request[12] => _.IN1 +request[13] => grant[13].DATAIN +request[13] => _.IN1 +request[13] => _.IN1 +request[14] => grant[14].DATAIN +request[14] => _.IN1 +request[14] => _.IN1 +request[15] => grant[15].DATAIN +request[15] => _.IN1 +request[15] => _.IN1 +request[16] => grant[16].DATAIN +request[16] => _.IN1 +request[16] => _.IN1 +request[17] => grant[17].DATAIN +request[17] => _.IN1 +request[17] => _.IN1 +grant[0] <= request[0].DB_MAX_OUTPUT_PORT_TYPE +grant[1] <= request[1].DB_MAX_OUTPUT_PORT_TYPE +grant[2] <= request[2].DB_MAX_OUTPUT_PORT_TYPE +grant[3] <= request[3].DB_MAX_OUTPUT_PORT_TYPE +grant[4] <= request[4].DB_MAX_OUTPUT_PORT_TYPE +grant[5] <= request[5].DB_MAX_OUTPUT_PORT_TYPE +grant[6] <= request[6].DB_MAX_OUTPUT_PORT_TYPE +grant[7] <= request[7].DB_MAX_OUTPUT_PORT_TYPE +grant[8] <= request[8].DB_MAX_OUTPUT_PORT_TYPE +grant[9] <= request[9].DB_MAX_OUTPUT_PORT_TYPE +grant[10] <= request[10].DB_MAX_OUTPUT_PORT_TYPE +grant[11] <= request[11].DB_MAX_OUTPUT_PORT_TYPE +grant[12] <= request[12].DB_MAX_OUTPUT_PORT_TYPE +grant[13] <= request[13].DB_MAX_OUTPUT_PORT_TYPE +grant[14] <= request[14].DB_MAX_OUTPUT_PORT_TYPE +grant[15] <= request[15].DB_MAX_OUTPUT_PORT_TYPE +grant[16] <= request[16].DB_MAX_OUTPUT_PORT_TYPE +grant[17] <= request[17].DB_MAX_OUTPUT_PORT_TYPE +increment_top_priority => ~NO_FANOUT~ +save_top_priority => ~NO_FANOUT~ + + +|lights|nios_system:NiosII|nios_system_rsp_xbar_mux_001:rsp_xbar_mux_001|altera_merlin_arbitrator:arb|altera_merlin_arb_adder:adder +a[0] => Add0.IN36 +a[1] => Add0.IN35 +a[2] => Add0.IN34 +a[3] => Add0.IN33 +a[4] => Add0.IN32 +a[5] => Add0.IN31 +a[6] => Add0.IN30 +a[7] => Add0.IN29 +a[8] => Add0.IN28 +a[9] => Add0.IN27 +a[10] => Add0.IN26 +a[11] => Add0.IN25 +a[12] => Add0.IN24 +a[13] => Add0.IN23 +a[14] => Add0.IN22 +a[15] => Add0.IN21 +a[16] => Add0.IN20 +a[17] => Add0.IN19 +a[18] => Add0.IN18 +a[19] => Add0.IN17 +a[20] => Add0.IN16 +a[21] => Add0.IN15 +a[22] => Add0.IN14 +a[23] => Add0.IN13 +a[24] => Add0.IN12 +a[25] => Add0.IN11 +a[26] => Add0.IN10 +a[27] => Add0.IN9 +a[28] => Add0.IN8 +a[29] => Add0.IN7 +a[30] => Add0.IN6 +a[31] => Add0.IN5 +a[32] => Add0.IN4 +a[33] => Add0.IN3 +a[34] => Add0.IN2 +a[35] => Add0.IN1 +b[0] => Add0.IN72 +b[1] => Add0.IN71 +b[2] => Add0.IN70 +b[3] => Add0.IN69 +b[4] => Add0.IN68 +b[5] => Add0.IN67 +b[6] => Add0.IN66 +b[7] => Add0.IN65 +b[8] => Add0.IN64 +b[9] => Add0.IN63 +b[10] => Add0.IN62 +b[11] => Add0.IN61 +b[12] => Add0.IN60 +b[13] => Add0.IN59 +b[14] => Add0.IN58 +b[15] => Add0.IN57 +b[16] => Add0.IN56 +b[17] => Add0.IN55 +b[18] => Add0.IN54 +b[19] => Add0.IN53 +b[20] => Add0.IN52 +b[21] => Add0.IN51 +b[22] => Add0.IN50 +b[23] => Add0.IN49 +b[24] => Add0.IN48 +b[25] => Add0.IN47 +b[26] => Add0.IN46 +b[27] => Add0.IN45 +b[28] => Add0.IN44 +b[29] => Add0.IN43 +b[30] => Add0.IN42 +b[31] => Add0.IN41 +b[32] => Add0.IN40 +b[33] => Add0.IN39 +b[34] => Add0.IN38 +b[35] => Add0.IN37 +sum[0] <= Add0.DB_MAX_OUTPUT_PORT_TYPE +sum[1] <= Add0.DB_MAX_OUTPUT_PORT_TYPE +sum[2] <= Add0.DB_MAX_OUTPUT_PORT_TYPE +sum[3] <= Add0.DB_MAX_OUTPUT_PORT_TYPE +sum[4] <= Add0.DB_MAX_OUTPUT_PORT_TYPE +sum[5] <= Add0.DB_MAX_OUTPUT_PORT_TYPE +sum[6] <= Add0.DB_MAX_OUTPUT_PORT_TYPE +sum[7] <= Add0.DB_MAX_OUTPUT_PORT_TYPE +sum[8] <= Add0.DB_MAX_OUTPUT_PORT_TYPE +sum[9] <= Add0.DB_MAX_OUTPUT_PORT_TYPE +sum[10] <= Add0.DB_MAX_OUTPUT_PORT_TYPE +sum[11] <= Add0.DB_MAX_OUTPUT_PORT_TYPE +sum[12] <= Add0.DB_MAX_OUTPUT_PORT_TYPE +sum[13] <= Add0.DB_MAX_OUTPUT_PORT_TYPE +sum[14] <= Add0.DB_MAX_OUTPUT_PORT_TYPE +sum[15] <= Add0.DB_MAX_OUTPUT_PORT_TYPE +sum[16] <= Add0.DB_MAX_OUTPUT_PORT_TYPE +sum[17] <= Add0.DB_MAX_OUTPUT_PORT_TYPE +sum[18] <= Add0.DB_MAX_OUTPUT_PORT_TYPE +sum[19] <= Add0.DB_MAX_OUTPUT_PORT_TYPE +sum[20] <= Add0.DB_MAX_OUTPUT_PORT_TYPE +sum[21] <= Add0.DB_MAX_OUTPUT_PORT_TYPE +sum[22] <= Add0.DB_MAX_OUTPUT_PORT_TYPE +sum[23] <= Add0.DB_MAX_OUTPUT_PORT_TYPE +sum[24] <= Add0.DB_MAX_OUTPUT_PORT_TYPE +sum[25] <= Add0.DB_MAX_OUTPUT_PORT_TYPE +sum[26] <= Add0.DB_MAX_OUTPUT_PORT_TYPE +sum[27] <= Add0.DB_MAX_OUTPUT_PORT_TYPE +sum[28] <= Add0.DB_MAX_OUTPUT_PORT_TYPE +sum[29] <= Add0.DB_MAX_OUTPUT_PORT_TYPE +sum[30] <= Add0.DB_MAX_OUTPUT_PORT_TYPE +sum[31] <= Add0.DB_MAX_OUTPUT_PORT_TYPE +sum[32] <= Add0.DB_MAX_OUTPUT_PORT_TYPE +sum[33] <= Add0.DB_MAX_OUTPUT_PORT_TYPE +sum[34] <= Add0.DB_MAX_OUTPUT_PORT_TYPE +sum[35] <= Add0.DB_MAX_OUTPUT_PORT_TYPE + + +|lights|nios_system:NiosII|nios_system_irq_mapper:irq_mapper +clk => ~NO_FANOUT~ +reset => ~NO_FANOUT~ +receiver0_irq => sender_irq[5].DATAIN +sender_irq[0] <= +sender_irq[1] <= +sender_irq[2] <= +sender_irq[3] <= +sender_irq[4] <= +sender_irq[5] <= receiver0_irq.DB_MAX_OUTPUT_PORT_TYPE +sender_irq[6] <= +sender_irq[7] <= +sender_irq[8] <= +sender_irq[9] <= +sender_irq[10] <= +sender_irq[11] <= +sender_irq[12] <= +sender_irq[13] <= +sender_irq[14] <= +sender_irq[15] <= +sender_irq[16] <= +sender_irq[17] <= +sender_irq[18] <= +sender_irq[19] <= +sender_irq[20] <= +sender_irq[21] <= +sender_irq[22] <= +sender_irq[23] <= +sender_irq[24] <= +sender_irq[25] <= +sender_irq[26] <= +sender_irq[27] <= +sender_irq[28] <= +sender_irq[29] <= +sender_irq[30] <= +sender_irq[31] <= + + diff --git a/db/lights.hif b/db/lights.hif new file mode 100644 index 0000000..93920d6 --- /dev/null +++ b/db/lights.hif Binary files differ diff --git a/db/lights.ipinfo b/db/lights.ipinfo new file mode 100644 index 0000000..fa2304d --- /dev/null +++ b/db/lights.ipinfo Binary files differ diff --git a/db/lights.lpc.html b/db/lights.lpc.html new file mode 100644 index 0000000..ddac326 --- /dev/null +++ b/db/lights.lpc.html @@ -0,0 +1,3506 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HierarchyInputConstant InputUnused InputFloating InputOutputConstant OutputUnused OutputFloating OutputBidirConstant BidirUnused BidirInput only BidirOutput only Bidir
NiosII|irq_mapper3312313231313100000
NiosII|rsp_xbar_mux_001|arb|adder72360363636363600000
NiosII|rsp_xbar_mux_001|arb220401800000000
NiosII|rsp_xbar_mux_001210900013500000000
NiosII|rsp_xbar_mux|arb|adder8404444400000
NiosII|rsp_xbar_mux|arb6040200000000
NiosII|rsp_xbar_mux23700011900000000
NiosII|rsp_xbar_demux_01712012111811100000
NiosII|rsp_xbar_demux_01612012111811100000
NiosII|rsp_xbar_demux_01512012111811100000
NiosII|rsp_xbar_demux_01412012111811100000
NiosII|rsp_xbar_demux_01312012111811100000
NiosII|rsp_xbar_demux_01212012111811100000
NiosII|rsp_xbar_demux_01112012111811100000
NiosII|rsp_xbar_demux_01012012111811100000
NiosII|rsp_xbar_demux_00912012111811100000
NiosII|rsp_xbar_demux_00812012111811100000
NiosII|rsp_xbar_demux_00712012111811100000
NiosII|rsp_xbar_demux_00612012111811100000
NiosII|rsp_xbar_demux_00512012111811100000
NiosII|rsp_xbar_demux_00412012111811100000
NiosII|rsp_xbar_demux_00312012111811100000
NiosII|rsp_xbar_demux_00212012111811100000
NiosII|rsp_xbar_demux_00112142423544400000
NiosII|rsp_xbar_demux12142423544400000
NiosII|cmd_xbar_mux_001|arb|adder8202422200000
NiosII|cmd_xbar_mux_001|arb6010200000000
NiosII|cmd_xbar_mux_00123700011900000000
NiosII|cmd_xbar_mux|arb|adder8202422200000
NiosII|cmd_xbar_mux|arb6010200000000
NiosII|cmd_xbar_mux23700011900000000
NiosII|cmd_xbar_demux_0011373242324210732432432400000
NiosII|cmd_xbar_demux12142423544400000
NiosII|rst_controller|alt_rst_sync_uq12000100000000
NiosII|rst_controller1714014214141400000
NiosII|id_router_017|the_default_decode0230232323232300000
NiosII|id_router_01710202011800000000
NiosII|id_router_016|the_default_decode0230232323232300000
NiosII|id_router_01610202011800000000
NiosII|id_router_015|the_default_decode0230232323232300000
NiosII|id_router_01510202011800000000
NiosII|id_router_014|the_default_decode0230232323232300000
NiosII|id_router_01410202011800000000
NiosII|id_router_013|the_default_decode0230232323232300000
NiosII|id_router_01310202011800000000
NiosII|id_router_012|the_default_decode0230232323232300000
NiosII|id_router_01210202011800000000
NiosII|id_router_011|the_default_decode0230232323232300000
NiosII|id_router_01110202011800000000
NiosII|id_router_010|the_default_decode0230232323232300000
NiosII|id_router_01010202011800000000
NiosII|id_router_009|the_default_decode0230232323232300000
NiosII|id_router_00910202011800000000
NiosII|id_router_008|the_default_decode0230232323232300000
NiosII|id_router_00810202011800000000
NiosII|id_router_007|the_default_decode0230232323232300000
NiosII|id_router_00710202011800000000
NiosII|id_router_006|the_default_decode0230232323232300000
NiosII|id_router_00610202011800000000
NiosII|id_router_005|the_default_decode0230232323232300000
NiosII|id_router_00510202011800000000
NiosII|id_router_004|the_default_decode0230232323232300000
NiosII|id_router_00410202011800000000
NiosII|id_router_003|the_default_decode0230232323232300000
NiosII|id_router_00310202011800000000
NiosII|id_router_002|the_default_decode0230232323232300000
NiosII|id_router_00210202011800000000
NiosII|id_router_001|the_default_decode0230232323232300000
NiosII|id_router_00110202011800000000
NiosII|id_router|the_default_decode0230232323232300000
NiosII|id_router10202011800000000
NiosII|addr_router_001|the_default_decode0230232323232300000
NiosII|addr_router_00110207011800000000
NiosII|addr_router|the_default_decode0230232323232300000
NiosII|addr_router10207011800000000
NiosII|lcd_blon_s1_translator_avalon_universal_slave_0_agent_rsp_fifo1423903910139393900000
NiosII|lcd_blon_s1_translator_avalon_universal_slave_0_agent|uncompressor351013311100000
NiosII|lcd_blon_s1_translator_avalon_universal_slave_0_agent29439553929939393900000
NiosII|lcd_on_s1_translator_avalon_universal_slave_0_agent_rsp_fifo1423903910139393900000
NiosII|lcd_on_s1_translator_avalon_universal_slave_0_agent|uncompressor351013311100000
NiosII|lcd_on_s1_translator_avalon_universal_slave_0_agent29439553929939393900000
NiosII|lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rsp_fifo1423903910139393900000
NiosII|lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent|uncompressor351013311100000
NiosII|lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent29439553929939393900000
NiosII|hex7_s1_translator_avalon_universal_slave_0_agent_rsp_fifo1423903910139393900000
NiosII|hex7_s1_translator_avalon_universal_slave_0_agent|uncompressor351013311100000
NiosII|hex7_s1_translator_avalon_universal_slave_0_agent29439553929939393900000
NiosII|hex6_s1_translator_avalon_universal_slave_0_agent_rsp_fifo1423903910139393900000
NiosII|hex6_s1_translator_avalon_universal_slave_0_agent|uncompressor351013311100000
NiosII|hex6_s1_translator_avalon_universal_slave_0_agent29439553929939393900000
NiosII|hex5_s1_translator_avalon_universal_slave_0_agent_rsp_fifo1423903910139393900000
NiosII|hex5_s1_translator_avalon_universal_slave_0_agent|uncompressor351013311100000
NiosII|hex5_s1_translator_avalon_universal_slave_0_agent29439553929939393900000
NiosII|hex4_s1_translator_avalon_universal_slave_0_agent_rsp_fifo1423903910139393900000
NiosII|hex4_s1_translator_avalon_universal_slave_0_agent|uncompressor351013311100000
NiosII|hex4_s1_translator_avalon_universal_slave_0_agent29439553929939393900000
NiosII|hex3_s1_translator_avalon_universal_slave_0_agent_rsp_fifo1423903910139393900000
NiosII|hex3_s1_translator_avalon_universal_slave_0_agent|uncompressor351013311100000
NiosII|hex3_s1_translator_avalon_universal_slave_0_agent29439553929939393900000
NiosII|hex2_s1_translator_avalon_universal_slave_0_agent_rsp_fifo1423903910139393900000
NiosII|hex2_s1_translator_avalon_universal_slave_0_agent|uncompressor351013311100000
NiosII|hex2_s1_translator_avalon_universal_slave_0_agent29439553929939393900000
NiosII|hex1_s1_translator_avalon_universal_slave_0_agent_rsp_fifo1423903910139393900000
NiosII|hex1_s1_translator_avalon_universal_slave_0_agent|uncompressor351013311100000
NiosII|hex1_s1_translator_avalon_universal_slave_0_agent29439553929939393900000
NiosII|hex0_s1_translator_avalon_universal_slave_0_agent_rsp_fifo1423903910139393900000
NiosII|hex0_s1_translator_avalon_universal_slave_0_agent|uncompressor351013311100000
NiosII|hex0_s1_translator_avalon_universal_slave_0_agent29439553929939393900000
NiosII|push_switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo1423903910139393900000
NiosII|push_switches_s1_translator_avalon_universal_slave_0_agent|uncompressor351013311100000
NiosII|push_switches_s1_translator_avalon_universal_slave_0_agent29439553929939393900000
NiosII|switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo1423903910139393900000
NiosII|switches_s1_translator_avalon_universal_slave_0_agent|uncompressor351013311100000
NiosII|switches_s1_translator_avalon_universal_slave_0_agent29439553929939393900000
NiosII|ledrs_s1_translator_avalon_universal_slave_0_agent_rsp_fifo1423903910139393900000
NiosII|ledrs_s1_translator_avalon_universal_slave_0_agent|uncompressor351013311100000
NiosII|ledrs_s1_translator_avalon_universal_slave_0_agent29439553929939393900000
NiosII|jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rsp_fifo1423903910139393900000
NiosII|jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent|uncompressor351013311100000
NiosII|jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent29439553929939393900000
NiosII|leds_s1_translator_avalon_universal_slave_0_agent_rsp_fifo1423903910139393900000
NiosII|leds_s1_translator_avalon_universal_slave_0_agent|uncompressor351013311100000
NiosII|leds_s1_translator_avalon_universal_slave_0_agent29439553929939393900000
NiosII|onchip_memory_s1_translator_avalon_universal_slave_0_agent_rsp_fifo1423903910139393900000
NiosII|onchip_memory_s1_translator_avalon_universal_slave_0_agent|uncompressor351013311100000
NiosII|onchip_memory_s1_translator_avalon_universal_slave_0_agent29439553929939393900000
NiosII|nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo1423903910139393900000
NiosII|nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent|uncompressor351013311100000
NiosII|nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent29439553929939393900000
NiosII|nios2_processor_data_master_translator_avalon_universal_master_0_agent18339853913439393900000
NiosII|nios2_processor_instruction_master_translator_avalon_universal_master_0_agent18339853913439393900000
NiosII|lcd_blon_s1_translator10372077077700000
NiosII|lcd_on_s1_translator10372077077700000
NiosII|lcd_16207_0_control_slave_translator793144314731313100000
NiosII|hex7_s1_translator10372077077700000
NiosII|hex6_s1_translator10372077077700000
NiosII|hex5_s1_translator10372077077700000
NiosII|hex4_s1_translator10372077077700000
NiosII|hex3_s1_translator10372077077700000
NiosII|hex2_s1_translator10372077077700000
NiosII|hex1_s1_translator10372077077700000
NiosII|hex0_s1_translator10372077077700000
NiosII|push_switches_s1_translator10372073677700000
NiosII|switches_s1_translator10372073677700000
NiosII|ledrs_s1_translator10372077077700000
NiosII|jtag_uart_avalon_jtag_slave_translator10362167066600000
NiosII|leds_s1_translator10372077077700000
NiosII|onchip_memory_s1_translator1038388988800000
NiosII|nios2_processor_jtag_debug_module_translator10361068266600000
NiosII|nios2_processor_data_master_translator104130139513131300000
NiosII|nios2_processor_instruction_master_translator104520529552525200000
NiosII|lcd_blon383131313331313100000
NiosII|lcd_on383131313331313100000
NiosII|lcd_16207_0150301100080000
NiosII|hex7382525253925252500000
NiosII|hex6382525253925252500000
NiosII|hex5382525253925252500000
NiosII|hex4382525253925252500000
NiosII|hex3382525253925252500000
NiosII|hex2382525253925252500000
NiosII|hex1382525253925252500000
NiosII|hex0382525253925252500000
NiosII|push_switches70003200000000
NiosII|switches220003200000000
NiosII|ledrs381414145014141400000
NiosII|leds382424244024242400000
NiosII|jtag_uart|the_nios_system_jtag_uart_scfifo_r|rfifo|auto_generated|dpfifo|wr_ptr4000600000000
NiosII|jtag_uart|the_nios_system_jtag_uart_scfifo_r|rfifo|auto_generated|dpfifo|rd_ptr_count4000600000000
NiosII|jtag_uart|the_nios_system_jtag_uart_scfifo_r|rfifo|auto_generated|dpfifo|FIFOram|altsyncram124000800000000
NiosII|jtag_uart|the_nios_system_jtag_uart_scfifo_r|rfifo|auto_generated|dpfifo|FIFOram24000800000000
NiosII|jtag_uart|the_nios_system_jtag_uart_scfifo_r|rfifo|auto_generated|dpfifo|fifo_state|count_usedw5000600000000
NiosII|jtag_uart|the_nios_system_jtag_uart_scfifo_r|rfifo|auto_generated|dpfifo|fifo_state5000800000000
NiosII|jtag_uart|the_nios_system_jtag_uart_scfifo_r|rfifo|auto_generated|dpfifo130001600000000
NiosII|jtag_uart|the_nios_system_jtag_uart_scfifo_r|rfifo|auto_generated120001600000000
NiosII|jtag_uart|the_nios_system_jtag_uart_scfifo_r130101600000000
NiosII|jtag_uart|the_nios_system_jtag_uart_scfifo_w|wfifo|auto_generated|dpfifo|wr_ptr4000600000000
NiosII|jtag_uart|the_nios_system_jtag_uart_scfifo_w|wfifo|auto_generated|dpfifo|rd_ptr_count4000600000000
NiosII|jtag_uart|the_nios_system_jtag_uart_scfifo_w|wfifo|auto_generated|dpfifo|FIFOram|altsyncram124000800000000
NiosII|jtag_uart|the_nios_system_jtag_uart_scfifo_w|wfifo|auto_generated|dpfifo|FIFOram24000800000000
NiosII|jtag_uart|the_nios_system_jtag_uart_scfifo_w|wfifo|auto_generated|dpfifo|fifo_state|count_usedw5000600000000
NiosII|jtag_uart|the_nios_system_jtag_uart_scfifo_w|wfifo|auto_generated|dpfifo|fifo_state5000800000000
NiosII|jtag_uart|the_nios_system_jtag_uart_scfifo_w|wfifo|auto_generated|dpfifo130001600000000
NiosII|jtag_uart|the_nios_system_jtag_uart_scfifo_w|wfifo|auto_generated120001600000000
NiosII|jtag_uart|the_nios_system_jtag_uart_scfifo_w120001600000000
NiosII|jtag_uart381023103410101000000
NiosII|onchip_memory|the_altsyncram|auto_generated|mux22270003200000000
NiosII|onchip_memory|the_altsyncram|auto_generated|decode34000700000000
NiosII|onchip_memory|the_altsyncram|auto_generated550003200000000
NiosII|onchip_memory580103200000000
NiosII|nios2_processor|the_nios_system_nios2_processor_nios2_oci|the_nios_system_nios2_processor_jtag_debug_module_wrapper|the_nios_system_nios2_processor_jtag_debug_module_sysclk430005100000000
NiosII|nios2_processor|the_nios_system_nios2_processor_nios2_oci|the_nios_system_nios2_processor_jtag_debug_module_wrapper|the_nios_system_nios2_processor_jtag_debug_module_tck1300104300000000
NiosII|nios2_processor|the_nios_system_nios2_processor_nios2_oci|the_nios_system_nios2_processor_jtag_debug_module_wrapper1230005300000000
NiosII|nios2_processor|the_nios_system_nios2_processor_nios2_oci|the_nios_system_nios2_processor_nios2_oci_im973693364836363600000
NiosII|nios2_processor|the_nios_system_nios2_processor_nios2_oci|the_nios_system_nios2_processor_nios2_oci_pib392038201920202000000
NiosII|nios2_processor|the_nios_system_nios2_processor_nios2_oci|the_nios_system_nios2_processor_nios2_oci_fifo|the_nios_system_nios2_processor_oci_test_bench360360000000000
NiosII|nios2_processor|the_nios_system_nios2_processor_nios2_oci|the_nios_system_nios2_processor_nios2_oci_fifo|nios_system_nios2_processor_nios2_oci_fifocount_inc_fifocount5000500000000
NiosII|nios2_processor|the_nios_system_nios2_processor_nios2_oci|the_nios_system_nios2_processor_nios2_oci_fifo|nios_system_nios2_processor_nios2_oci_fifowp_inc_fifowp4202422200000
NiosII|nios2_processor|the_nios_system_nios2_processor_nios2_oci|the_nios_system_nios2_processor_nios2_oci_fifo|nios_system_nios2_processor_nios2_oci_compute_tm_count_tm_count3000200000000
NiosII|nios2_processor|the_nios_system_nios2_processor_nios2_oci|the_nios_system_nios2_processor_nios2_oci_fifo15106503600000000
NiosII|nios2_processor|the_nios_system_nios2_processor_nios2_oci|the_nios_system_nios2_processor_nios2_oci_dtrace|nios_system_nios2_processor_nios2_oci_trc_ctrl_td_mode9060400000000
NiosII|nios2_processor|the_nios_system_nios2_processor_nios2_oci|the_nios_system_nios2_processor_nios2_oci_dtrace10409307200000000
NiosII|nios2_processor|the_nios_system_nios2_processor_nios2_oci|the_nios_system_nios2_processor_nios2_oci_itrace251723178717171700000
NiosII|nios2_processor|the_nios_system_nios2_processor_nios2_oci|the_nios_system_nios2_processor_nios2_oci_dbrk890009300000000
NiosII|nios2_processor|the_nios_system_nios2_processor_nios2_oci|the_nios_system_nios2_processor_nios2_oci_xbrk555525655500000
NiosII|nios2_processor|the_nios_system_nios2_processor_nios2_oci|the_nios_system_nios2_processor_nios2_oci_break52366367136363600000
NiosII|nios2_processor|the_nios_system_nios2_processor_nios2_oci|the_nios_system_nios2_processor_nios2_avalon_reg4802806800000000
NiosII|nios2_processor|the_nios_system_nios2_processor_nios2_oci|the_nios_system_nios2_processor_nios2_ocimem|nios_system_nios2_processor_ociram_sp_ram|the_altsyncram|auto_generated460003200000000
NiosII|nios2_processor|the_nios_system_nios2_processor_nios2_oci|the_nios_system_nios2_processor_nios2_ocimem|nios_system_nios2_processor_ociram_sp_ram460003200000000
NiosII|nios2_processor|the_nios_system_nios2_processor_nios2_oci|the_nios_system_nios2_processor_nios2_ocimem910606500000000
NiosII|nios2_processor|the_nios_system_nios2_processor_nios2_oci|the_nios_system_nios2_processor_nios2_oci_debug501301711100000
NiosII|nios2_processor|the_nios_system_nios2_processor_nios2_oci1590006900000000
NiosII|nios2_processor|nios_system_nios2_processor_register_bank_b|the_altsyncram|auto_generated440003200000000
NiosII|nios2_processor|nios_system_nios2_processor_register_bank_b440003200000000
NiosII|nios2_processor|nios_system_nios2_processor_register_bank_a|the_altsyncram|auto_generated440003200000000
NiosII|nios2_processor|nios_system_nios2_processor_register_bank_a440003200000000
NiosII|nios2_processor|the_nios_system_nios2_processor_test_bench275323833433300000
NiosII|nios2_processor148031011200000000
NiosII230008700080008
diff --git a/db/lights.lpc.rdb b/db/lights.lpc.rdb new file mode 100644 index 0000000..a39c035 --- /dev/null +++ b/db/lights.lpc.rdb Binary files differ diff --git a/db/lights.lpc.txt b/db/lights.lpc.txt new file mode 100644 index 0000000..1be8c1f --- /dev/null +++ b/db/lights.lpc.txt @@ -0,0 +1,224 @@ ++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Legal Partition Candidates ; ++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------+----------------+--------------+----------------+--------+-----------------+---------------+-----------------+-------+----------------+--------------+------------------+-------------------+ +; Hierarchy ; Input ; Constant Input ; Unused Input ; Floating Input ; Output ; Constant Output ; Unused Output ; Floating Output ; Bidir ; Constant Bidir ; Unused Bidir ; Input only Bidir ; Output only Bidir ; ++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------+----------------+--------------+----------------+--------+-----------------+---------------+-----------------+-------+----------------+--------------+------------------+-------------------+ +; NiosII|irq_mapper ; 3 ; 31 ; 2 ; 31 ; 32 ; 31 ; 31 ; 31 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|rsp_xbar_mux_001|arb|adder ; 72 ; 36 ; 0 ; 36 ; 36 ; 36 ; 36 ; 36 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|rsp_xbar_mux_001|arb ; 22 ; 0 ; 4 ; 0 ; 18 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|rsp_xbar_mux_001 ; 2109 ; 0 ; 0 ; 0 ; 135 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|rsp_xbar_mux|arb|adder ; 8 ; 4 ; 0 ; 4 ; 4 ; 4 ; 4 ; 4 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|rsp_xbar_mux|arb ; 6 ; 0 ; 4 ; 0 ; 2 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|rsp_xbar_mux ; 237 ; 0 ; 0 ; 0 ; 119 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|rsp_xbar_demux_017 ; 120 ; 1 ; 2 ; 1 ; 118 ; 1 ; 1 ; 1 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|rsp_xbar_demux_016 ; 120 ; 1 ; 2 ; 1 ; 118 ; 1 ; 1 ; 1 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|rsp_xbar_demux_015 ; 120 ; 1 ; 2 ; 1 ; 118 ; 1 ; 1 ; 1 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|rsp_xbar_demux_014 ; 120 ; 1 ; 2 ; 1 ; 118 ; 1 ; 1 ; 1 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|rsp_xbar_demux_013 ; 120 ; 1 ; 2 ; 1 ; 118 ; 1 ; 1 ; 1 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|rsp_xbar_demux_012 ; 120 ; 1 ; 2 ; 1 ; 118 ; 1 ; 1 ; 1 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|rsp_xbar_demux_011 ; 120 ; 1 ; 2 ; 1 ; 118 ; 1 ; 1 ; 1 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|rsp_xbar_demux_010 ; 120 ; 1 ; 2 ; 1 ; 118 ; 1 ; 1 ; 1 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|rsp_xbar_demux_009 ; 120 ; 1 ; 2 ; 1 ; 118 ; 1 ; 1 ; 1 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|rsp_xbar_demux_008 ; 120 ; 1 ; 2 ; 1 ; 118 ; 1 ; 1 ; 1 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|rsp_xbar_demux_007 ; 120 ; 1 ; 2 ; 1 ; 118 ; 1 ; 1 ; 1 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|rsp_xbar_demux_006 ; 120 ; 1 ; 2 ; 1 ; 118 ; 1 ; 1 ; 1 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|rsp_xbar_demux_005 ; 120 ; 1 ; 2 ; 1 ; 118 ; 1 ; 1 ; 1 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|rsp_xbar_demux_004 ; 120 ; 1 ; 2 ; 1 ; 118 ; 1 ; 1 ; 1 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|rsp_xbar_demux_003 ; 120 ; 1 ; 2 ; 1 ; 118 ; 1 ; 1 ; 1 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|rsp_xbar_demux_002 ; 120 ; 1 ; 2 ; 1 ; 118 ; 1 ; 1 ; 1 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|rsp_xbar_demux_001 ; 121 ; 4 ; 2 ; 4 ; 235 ; 4 ; 4 ; 4 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|rsp_xbar_demux ; 121 ; 4 ; 2 ; 4 ; 235 ; 4 ; 4 ; 4 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|cmd_xbar_mux_001|arb|adder ; 8 ; 2 ; 0 ; 2 ; 4 ; 2 ; 2 ; 2 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|cmd_xbar_mux_001|arb ; 6 ; 0 ; 1 ; 0 ; 2 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|cmd_xbar_mux_001 ; 237 ; 0 ; 0 ; 0 ; 119 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|cmd_xbar_mux|arb|adder ; 8 ; 2 ; 0 ; 2 ; 4 ; 2 ; 2 ; 2 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|cmd_xbar_mux|arb ; 6 ; 0 ; 1 ; 0 ; 2 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|cmd_xbar_mux ; 237 ; 0 ; 0 ; 0 ; 119 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|cmd_xbar_demux_001 ; 137 ; 324 ; 2 ; 324 ; 2107 ; 324 ; 324 ; 324 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|cmd_xbar_demux ; 121 ; 4 ; 2 ; 4 ; 235 ; 4 ; 4 ; 4 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|rst_controller|alt_rst_sync_uq1 ; 2 ; 0 ; 0 ; 0 ; 1 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|rst_controller ; 17 ; 14 ; 0 ; 14 ; 2 ; 14 ; 14 ; 14 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|id_router_017|the_default_decode ; 0 ; 23 ; 0 ; 23 ; 23 ; 23 ; 23 ; 23 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|id_router_017 ; 102 ; 0 ; 2 ; 0 ; 118 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|id_router_016|the_default_decode ; 0 ; 23 ; 0 ; 23 ; 23 ; 23 ; 23 ; 23 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|id_router_016 ; 102 ; 0 ; 2 ; 0 ; 118 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|id_router_015|the_default_decode ; 0 ; 23 ; 0 ; 23 ; 23 ; 23 ; 23 ; 23 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|id_router_015 ; 102 ; 0 ; 2 ; 0 ; 118 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|id_router_014|the_default_decode ; 0 ; 23 ; 0 ; 23 ; 23 ; 23 ; 23 ; 23 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|id_router_014 ; 102 ; 0 ; 2 ; 0 ; 118 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|id_router_013|the_default_decode ; 0 ; 23 ; 0 ; 23 ; 23 ; 23 ; 23 ; 23 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|id_router_013 ; 102 ; 0 ; 2 ; 0 ; 118 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|id_router_012|the_default_decode ; 0 ; 23 ; 0 ; 23 ; 23 ; 23 ; 23 ; 23 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|id_router_012 ; 102 ; 0 ; 2 ; 0 ; 118 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|id_router_011|the_default_decode ; 0 ; 23 ; 0 ; 23 ; 23 ; 23 ; 23 ; 23 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|id_router_011 ; 102 ; 0 ; 2 ; 0 ; 118 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|id_router_010|the_default_decode ; 0 ; 23 ; 0 ; 23 ; 23 ; 23 ; 23 ; 23 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|id_router_010 ; 102 ; 0 ; 2 ; 0 ; 118 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|id_router_009|the_default_decode ; 0 ; 23 ; 0 ; 23 ; 23 ; 23 ; 23 ; 23 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|id_router_009 ; 102 ; 0 ; 2 ; 0 ; 118 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|id_router_008|the_default_decode ; 0 ; 23 ; 0 ; 23 ; 23 ; 23 ; 23 ; 23 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|id_router_008 ; 102 ; 0 ; 2 ; 0 ; 118 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|id_router_007|the_default_decode ; 0 ; 23 ; 0 ; 23 ; 23 ; 23 ; 23 ; 23 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|id_router_007 ; 102 ; 0 ; 2 ; 0 ; 118 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|id_router_006|the_default_decode ; 0 ; 23 ; 0 ; 23 ; 23 ; 23 ; 23 ; 23 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|id_router_006 ; 102 ; 0 ; 2 ; 0 ; 118 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|id_router_005|the_default_decode ; 0 ; 23 ; 0 ; 23 ; 23 ; 23 ; 23 ; 23 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|id_router_005 ; 102 ; 0 ; 2 ; 0 ; 118 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|id_router_004|the_default_decode ; 0 ; 23 ; 0 ; 23 ; 23 ; 23 ; 23 ; 23 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|id_router_004 ; 102 ; 0 ; 2 ; 0 ; 118 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|id_router_003|the_default_decode ; 0 ; 23 ; 0 ; 23 ; 23 ; 23 ; 23 ; 23 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|id_router_003 ; 102 ; 0 ; 2 ; 0 ; 118 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|id_router_002|the_default_decode ; 0 ; 23 ; 0 ; 23 ; 23 ; 23 ; 23 ; 23 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|id_router_002 ; 102 ; 0 ; 2 ; 0 ; 118 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|id_router_001|the_default_decode ; 0 ; 23 ; 0 ; 23 ; 23 ; 23 ; 23 ; 23 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|id_router_001 ; 102 ; 0 ; 2 ; 0 ; 118 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|id_router|the_default_decode ; 0 ; 23 ; 0 ; 23 ; 23 ; 23 ; 23 ; 23 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|id_router ; 102 ; 0 ; 2 ; 0 ; 118 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|addr_router_001|the_default_decode ; 0 ; 23 ; 0 ; 23 ; 23 ; 23 ; 23 ; 23 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|addr_router_001 ; 102 ; 0 ; 7 ; 0 ; 118 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|addr_router|the_default_decode ; 0 ; 23 ; 0 ; 23 ; 23 ; 23 ; 23 ; 23 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|addr_router ; 102 ; 0 ; 7 ; 0 ; 118 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|lcd_blon_s1_translator_avalon_universal_slave_0_agent_rsp_fifo ; 142 ; 39 ; 0 ; 39 ; 101 ; 39 ; 39 ; 39 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|lcd_blon_s1_translator_avalon_universal_slave_0_agent|uncompressor ; 35 ; 1 ; 0 ; 1 ; 33 ; 1 ; 1 ; 1 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|lcd_blon_s1_translator_avalon_universal_slave_0_agent ; 294 ; 39 ; 55 ; 39 ; 299 ; 39 ; 39 ; 39 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|lcd_on_s1_translator_avalon_universal_slave_0_agent_rsp_fifo ; 142 ; 39 ; 0 ; 39 ; 101 ; 39 ; 39 ; 39 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|lcd_on_s1_translator_avalon_universal_slave_0_agent|uncompressor ; 35 ; 1 ; 0 ; 1 ; 33 ; 1 ; 1 ; 1 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|lcd_on_s1_translator_avalon_universal_slave_0_agent ; 294 ; 39 ; 55 ; 39 ; 299 ; 39 ; 39 ; 39 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rsp_fifo ; 142 ; 39 ; 0 ; 39 ; 101 ; 39 ; 39 ; 39 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent|uncompressor ; 35 ; 1 ; 0 ; 1 ; 33 ; 1 ; 1 ; 1 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent ; 294 ; 39 ; 55 ; 39 ; 299 ; 39 ; 39 ; 39 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|hex7_s1_translator_avalon_universal_slave_0_agent_rsp_fifo ; 142 ; 39 ; 0 ; 39 ; 101 ; 39 ; 39 ; 39 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|hex7_s1_translator_avalon_universal_slave_0_agent|uncompressor ; 35 ; 1 ; 0 ; 1 ; 33 ; 1 ; 1 ; 1 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|hex7_s1_translator_avalon_universal_slave_0_agent ; 294 ; 39 ; 55 ; 39 ; 299 ; 39 ; 39 ; 39 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|hex6_s1_translator_avalon_universal_slave_0_agent_rsp_fifo ; 142 ; 39 ; 0 ; 39 ; 101 ; 39 ; 39 ; 39 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|hex6_s1_translator_avalon_universal_slave_0_agent|uncompressor ; 35 ; 1 ; 0 ; 1 ; 33 ; 1 ; 1 ; 1 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|hex6_s1_translator_avalon_universal_slave_0_agent ; 294 ; 39 ; 55 ; 39 ; 299 ; 39 ; 39 ; 39 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|hex5_s1_translator_avalon_universal_slave_0_agent_rsp_fifo ; 142 ; 39 ; 0 ; 39 ; 101 ; 39 ; 39 ; 39 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|hex5_s1_translator_avalon_universal_slave_0_agent|uncompressor ; 35 ; 1 ; 0 ; 1 ; 33 ; 1 ; 1 ; 1 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|hex5_s1_translator_avalon_universal_slave_0_agent ; 294 ; 39 ; 55 ; 39 ; 299 ; 39 ; 39 ; 39 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|hex4_s1_translator_avalon_universal_slave_0_agent_rsp_fifo ; 142 ; 39 ; 0 ; 39 ; 101 ; 39 ; 39 ; 39 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|hex4_s1_translator_avalon_universal_slave_0_agent|uncompressor ; 35 ; 1 ; 0 ; 1 ; 33 ; 1 ; 1 ; 1 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|hex4_s1_translator_avalon_universal_slave_0_agent ; 294 ; 39 ; 55 ; 39 ; 299 ; 39 ; 39 ; 39 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|hex3_s1_translator_avalon_universal_slave_0_agent_rsp_fifo ; 142 ; 39 ; 0 ; 39 ; 101 ; 39 ; 39 ; 39 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|hex3_s1_translator_avalon_universal_slave_0_agent|uncompressor ; 35 ; 1 ; 0 ; 1 ; 33 ; 1 ; 1 ; 1 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|hex3_s1_translator_avalon_universal_slave_0_agent ; 294 ; 39 ; 55 ; 39 ; 299 ; 39 ; 39 ; 39 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|hex2_s1_translator_avalon_universal_slave_0_agent_rsp_fifo ; 142 ; 39 ; 0 ; 39 ; 101 ; 39 ; 39 ; 39 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|hex2_s1_translator_avalon_universal_slave_0_agent|uncompressor ; 35 ; 1 ; 0 ; 1 ; 33 ; 1 ; 1 ; 1 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|hex2_s1_translator_avalon_universal_slave_0_agent ; 294 ; 39 ; 55 ; 39 ; 299 ; 39 ; 39 ; 39 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|hex1_s1_translator_avalon_universal_slave_0_agent_rsp_fifo ; 142 ; 39 ; 0 ; 39 ; 101 ; 39 ; 39 ; 39 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|hex1_s1_translator_avalon_universal_slave_0_agent|uncompressor ; 35 ; 1 ; 0 ; 1 ; 33 ; 1 ; 1 ; 1 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|hex1_s1_translator_avalon_universal_slave_0_agent ; 294 ; 39 ; 55 ; 39 ; 299 ; 39 ; 39 ; 39 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|hex0_s1_translator_avalon_universal_slave_0_agent_rsp_fifo ; 142 ; 39 ; 0 ; 39 ; 101 ; 39 ; 39 ; 39 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|hex0_s1_translator_avalon_universal_slave_0_agent|uncompressor ; 35 ; 1 ; 0 ; 1 ; 33 ; 1 ; 1 ; 1 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|hex0_s1_translator_avalon_universal_slave_0_agent ; 294 ; 39 ; 55 ; 39 ; 299 ; 39 ; 39 ; 39 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|push_switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo ; 142 ; 39 ; 0 ; 39 ; 101 ; 39 ; 39 ; 39 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|push_switches_s1_translator_avalon_universal_slave_0_agent|uncompressor ; 35 ; 1 ; 0 ; 1 ; 33 ; 1 ; 1 ; 1 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|push_switches_s1_translator_avalon_universal_slave_0_agent ; 294 ; 39 ; 55 ; 39 ; 299 ; 39 ; 39 ; 39 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo ; 142 ; 39 ; 0 ; 39 ; 101 ; 39 ; 39 ; 39 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|switches_s1_translator_avalon_universal_slave_0_agent|uncompressor ; 35 ; 1 ; 0 ; 1 ; 33 ; 1 ; 1 ; 1 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|switches_s1_translator_avalon_universal_slave_0_agent ; 294 ; 39 ; 55 ; 39 ; 299 ; 39 ; 39 ; 39 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|ledrs_s1_translator_avalon_universal_slave_0_agent_rsp_fifo ; 142 ; 39 ; 0 ; 39 ; 101 ; 39 ; 39 ; 39 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|ledrs_s1_translator_avalon_universal_slave_0_agent|uncompressor ; 35 ; 1 ; 0 ; 1 ; 33 ; 1 ; 1 ; 1 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|ledrs_s1_translator_avalon_universal_slave_0_agent ; 294 ; 39 ; 55 ; 39 ; 299 ; 39 ; 39 ; 39 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rsp_fifo ; 142 ; 39 ; 0 ; 39 ; 101 ; 39 ; 39 ; 39 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent|uncompressor ; 35 ; 1 ; 0 ; 1 ; 33 ; 1 ; 1 ; 1 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent ; 294 ; 39 ; 55 ; 39 ; 299 ; 39 ; 39 ; 39 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|leds_s1_translator_avalon_universal_slave_0_agent_rsp_fifo ; 142 ; 39 ; 0 ; 39 ; 101 ; 39 ; 39 ; 39 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|leds_s1_translator_avalon_universal_slave_0_agent|uncompressor ; 35 ; 1 ; 0 ; 1 ; 33 ; 1 ; 1 ; 1 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|leds_s1_translator_avalon_universal_slave_0_agent ; 294 ; 39 ; 55 ; 39 ; 299 ; 39 ; 39 ; 39 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|onchip_memory_s1_translator_avalon_universal_slave_0_agent_rsp_fifo ; 142 ; 39 ; 0 ; 39 ; 101 ; 39 ; 39 ; 39 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|onchip_memory_s1_translator_avalon_universal_slave_0_agent|uncompressor ; 35 ; 1 ; 0 ; 1 ; 33 ; 1 ; 1 ; 1 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|onchip_memory_s1_translator_avalon_universal_slave_0_agent ; 294 ; 39 ; 55 ; 39 ; 299 ; 39 ; 39 ; 39 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo ; 142 ; 39 ; 0 ; 39 ; 101 ; 39 ; 39 ; 39 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent|uncompressor ; 35 ; 1 ; 0 ; 1 ; 33 ; 1 ; 1 ; 1 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent ; 294 ; 39 ; 55 ; 39 ; 299 ; 39 ; 39 ; 39 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|nios2_processor_data_master_translator_avalon_universal_master_0_agent ; 183 ; 39 ; 85 ; 39 ; 134 ; 39 ; 39 ; 39 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|nios2_processor_instruction_master_translator_avalon_universal_master_0_agent ; 183 ; 39 ; 85 ; 39 ; 134 ; 39 ; 39 ; 39 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|lcd_blon_s1_translator ; 103 ; 7 ; 20 ; 7 ; 70 ; 7 ; 7 ; 7 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|lcd_on_s1_translator ; 103 ; 7 ; 20 ; 7 ; 70 ; 7 ; 7 ; 7 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|lcd_16207_0_control_slave_translator ; 79 ; 31 ; 44 ; 31 ; 47 ; 31 ; 31 ; 31 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|hex7_s1_translator ; 103 ; 7 ; 20 ; 7 ; 70 ; 7 ; 7 ; 7 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|hex6_s1_translator ; 103 ; 7 ; 20 ; 7 ; 70 ; 7 ; 7 ; 7 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|hex5_s1_translator ; 103 ; 7 ; 20 ; 7 ; 70 ; 7 ; 7 ; 7 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|hex4_s1_translator ; 103 ; 7 ; 20 ; 7 ; 70 ; 7 ; 7 ; 7 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|hex3_s1_translator ; 103 ; 7 ; 20 ; 7 ; 70 ; 7 ; 7 ; 7 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|hex2_s1_translator ; 103 ; 7 ; 20 ; 7 ; 70 ; 7 ; 7 ; 7 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|hex1_s1_translator ; 103 ; 7 ; 20 ; 7 ; 70 ; 7 ; 7 ; 7 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|hex0_s1_translator ; 103 ; 7 ; 20 ; 7 ; 70 ; 7 ; 7 ; 7 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|push_switches_s1_translator ; 103 ; 7 ; 20 ; 7 ; 36 ; 7 ; 7 ; 7 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|switches_s1_translator ; 103 ; 7 ; 20 ; 7 ; 36 ; 7 ; 7 ; 7 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|ledrs_s1_translator ; 103 ; 7 ; 20 ; 7 ; 70 ; 7 ; 7 ; 7 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|jtag_uart_avalon_jtag_slave_translator ; 103 ; 6 ; 21 ; 6 ; 70 ; 6 ; 6 ; 6 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|leds_s1_translator ; 103 ; 7 ; 20 ; 7 ; 70 ; 7 ; 7 ; 7 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|onchip_memory_s1_translator ; 103 ; 8 ; 3 ; 8 ; 89 ; 8 ; 8 ; 8 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|nios2_processor_jtag_debug_module_translator ; 103 ; 6 ; 10 ; 6 ; 82 ; 6 ; 6 ; 6 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|nios2_processor_data_master_translator ; 104 ; 13 ; 0 ; 13 ; 95 ; 13 ; 13 ; 13 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|nios2_processor_instruction_master_translator ; 104 ; 52 ; 0 ; 52 ; 95 ; 52 ; 52 ; 52 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|lcd_blon ; 38 ; 31 ; 31 ; 31 ; 33 ; 31 ; 31 ; 31 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|lcd_on ; 38 ; 31 ; 31 ; 31 ; 33 ; 31 ; 31 ; 31 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|lcd_16207_0 ; 15 ; 0 ; 3 ; 0 ; 11 ; 0 ; 0 ; 0 ; 8 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|hex7 ; 38 ; 25 ; 25 ; 25 ; 39 ; 25 ; 25 ; 25 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|hex6 ; 38 ; 25 ; 25 ; 25 ; 39 ; 25 ; 25 ; 25 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|hex5 ; 38 ; 25 ; 25 ; 25 ; 39 ; 25 ; 25 ; 25 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|hex4 ; 38 ; 25 ; 25 ; 25 ; 39 ; 25 ; 25 ; 25 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|hex3 ; 38 ; 25 ; 25 ; 25 ; 39 ; 25 ; 25 ; 25 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|hex2 ; 38 ; 25 ; 25 ; 25 ; 39 ; 25 ; 25 ; 25 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|hex1 ; 38 ; 25 ; 25 ; 25 ; 39 ; 25 ; 25 ; 25 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|hex0 ; 38 ; 25 ; 25 ; 25 ; 39 ; 25 ; 25 ; 25 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|push_switches ; 7 ; 0 ; 0 ; 0 ; 32 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|switches ; 22 ; 0 ; 0 ; 0 ; 32 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|ledrs ; 38 ; 14 ; 14 ; 14 ; 50 ; 14 ; 14 ; 14 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|leds ; 38 ; 24 ; 24 ; 24 ; 40 ; 24 ; 24 ; 24 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|jtag_uart|the_nios_system_jtag_uart_scfifo_r|rfifo|auto_generated|dpfifo|wr_ptr ; 4 ; 0 ; 0 ; 0 ; 6 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|jtag_uart|the_nios_system_jtag_uart_scfifo_r|rfifo|auto_generated|dpfifo|rd_ptr_count ; 4 ; 0 ; 0 ; 0 ; 6 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|jtag_uart|the_nios_system_jtag_uart_scfifo_r|rfifo|auto_generated|dpfifo|FIFOram|altsyncram1 ; 24 ; 0 ; 0 ; 0 ; 8 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|jtag_uart|the_nios_system_jtag_uart_scfifo_r|rfifo|auto_generated|dpfifo|FIFOram ; 24 ; 0 ; 0 ; 0 ; 8 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|jtag_uart|the_nios_system_jtag_uart_scfifo_r|rfifo|auto_generated|dpfifo|fifo_state|count_usedw ; 5 ; 0 ; 0 ; 0 ; 6 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|jtag_uart|the_nios_system_jtag_uart_scfifo_r|rfifo|auto_generated|dpfifo|fifo_state ; 5 ; 0 ; 0 ; 0 ; 8 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|jtag_uart|the_nios_system_jtag_uart_scfifo_r|rfifo|auto_generated|dpfifo ; 13 ; 0 ; 0 ; 0 ; 16 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|jtag_uart|the_nios_system_jtag_uart_scfifo_r|rfifo|auto_generated ; 12 ; 0 ; 0 ; 0 ; 16 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|jtag_uart|the_nios_system_jtag_uart_scfifo_r ; 13 ; 0 ; 1 ; 0 ; 16 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|jtag_uart|the_nios_system_jtag_uart_scfifo_w|wfifo|auto_generated|dpfifo|wr_ptr ; 4 ; 0 ; 0 ; 0 ; 6 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|jtag_uart|the_nios_system_jtag_uart_scfifo_w|wfifo|auto_generated|dpfifo|rd_ptr_count ; 4 ; 0 ; 0 ; 0 ; 6 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|jtag_uart|the_nios_system_jtag_uart_scfifo_w|wfifo|auto_generated|dpfifo|FIFOram|altsyncram1 ; 24 ; 0 ; 0 ; 0 ; 8 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|jtag_uart|the_nios_system_jtag_uart_scfifo_w|wfifo|auto_generated|dpfifo|FIFOram ; 24 ; 0 ; 0 ; 0 ; 8 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|jtag_uart|the_nios_system_jtag_uart_scfifo_w|wfifo|auto_generated|dpfifo|fifo_state|count_usedw ; 5 ; 0 ; 0 ; 0 ; 6 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|jtag_uart|the_nios_system_jtag_uart_scfifo_w|wfifo|auto_generated|dpfifo|fifo_state ; 5 ; 0 ; 0 ; 0 ; 8 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|jtag_uart|the_nios_system_jtag_uart_scfifo_w|wfifo|auto_generated|dpfifo ; 13 ; 0 ; 0 ; 0 ; 16 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|jtag_uart|the_nios_system_jtag_uart_scfifo_w|wfifo|auto_generated ; 12 ; 0 ; 0 ; 0 ; 16 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|jtag_uart|the_nios_system_jtag_uart_scfifo_w ; 12 ; 0 ; 0 ; 0 ; 16 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|jtag_uart ; 38 ; 10 ; 23 ; 10 ; 34 ; 10 ; 10 ; 10 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|onchip_memory|the_altsyncram|auto_generated|mux2 ; 227 ; 0 ; 0 ; 0 ; 32 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|onchip_memory|the_altsyncram|auto_generated|decode3 ; 4 ; 0 ; 0 ; 0 ; 7 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|onchip_memory|the_altsyncram|auto_generated ; 55 ; 0 ; 0 ; 0 ; 32 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|onchip_memory ; 58 ; 0 ; 1 ; 0 ; 32 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|nios2_processor|the_nios_system_nios2_processor_nios2_oci|the_nios_system_nios2_processor_jtag_debug_module_wrapper|the_nios_system_nios2_processor_jtag_debug_module_sysclk ; 43 ; 0 ; 0 ; 0 ; 51 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|nios2_processor|the_nios_system_nios2_processor_nios2_oci|the_nios_system_nios2_processor_jtag_debug_module_wrapper|the_nios_system_nios2_processor_jtag_debug_module_tck ; 130 ; 0 ; 1 ; 0 ; 43 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|nios2_processor|the_nios_system_nios2_processor_nios2_oci|the_nios_system_nios2_processor_jtag_debug_module_wrapper ; 123 ; 0 ; 0 ; 0 ; 53 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|nios2_processor|the_nios_system_nios2_processor_nios2_oci|the_nios_system_nios2_processor_nios2_oci_im ; 97 ; 36 ; 93 ; 36 ; 48 ; 36 ; 36 ; 36 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|nios2_processor|the_nios_system_nios2_processor_nios2_oci|the_nios_system_nios2_processor_nios2_oci_pib ; 39 ; 20 ; 38 ; 20 ; 19 ; 20 ; 20 ; 20 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|nios2_processor|the_nios_system_nios2_processor_nios2_oci|the_nios_system_nios2_processor_nios2_oci_fifo|the_nios_system_nios2_processor_oci_test_bench ; 36 ; 0 ; 36 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|nios2_processor|the_nios_system_nios2_processor_nios2_oci|the_nios_system_nios2_processor_nios2_oci_fifo|nios_system_nios2_processor_nios2_oci_fifocount_inc_fifocount ; 5 ; 0 ; 0 ; 0 ; 5 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|nios2_processor|the_nios_system_nios2_processor_nios2_oci|the_nios_system_nios2_processor_nios2_oci_fifo|nios_system_nios2_processor_nios2_oci_fifowp_inc_fifowp ; 4 ; 2 ; 0 ; 2 ; 4 ; 2 ; 2 ; 2 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|nios2_processor|the_nios_system_nios2_processor_nios2_oci|the_nios_system_nios2_processor_nios2_oci_fifo|nios_system_nios2_processor_nios2_oci_compute_tm_count_tm_count ; 3 ; 0 ; 0 ; 0 ; 2 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|nios2_processor|the_nios_system_nios2_processor_nios2_oci|the_nios_system_nios2_processor_nios2_oci_fifo ; 151 ; 0 ; 65 ; 0 ; 36 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|nios2_processor|the_nios_system_nios2_processor_nios2_oci|the_nios_system_nios2_processor_nios2_oci_dtrace|nios_system_nios2_processor_nios2_oci_trc_ctrl_td_mode ; 9 ; 0 ; 6 ; 0 ; 4 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|nios2_processor|the_nios_system_nios2_processor_nios2_oci|the_nios_system_nios2_processor_nios2_oci_dtrace ; 104 ; 0 ; 93 ; 0 ; 72 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|nios2_processor|the_nios_system_nios2_processor_nios2_oci|the_nios_system_nios2_processor_nios2_oci_itrace ; 25 ; 17 ; 23 ; 17 ; 87 ; 17 ; 17 ; 17 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|nios2_processor|the_nios_system_nios2_processor_nios2_oci|the_nios_system_nios2_processor_nios2_oci_dbrk ; 89 ; 0 ; 0 ; 0 ; 93 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|nios2_processor|the_nios_system_nios2_processor_nios2_oci|the_nios_system_nios2_processor_nios2_oci_xbrk ; 55 ; 5 ; 52 ; 5 ; 6 ; 5 ; 5 ; 5 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|nios2_processor|the_nios_system_nios2_processor_nios2_oci|the_nios_system_nios2_processor_nios2_oci_break ; 52 ; 36 ; 6 ; 36 ; 71 ; 36 ; 36 ; 36 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|nios2_processor|the_nios_system_nios2_processor_nios2_oci|the_nios_system_nios2_processor_nios2_avalon_reg ; 48 ; 0 ; 28 ; 0 ; 68 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|nios2_processor|the_nios_system_nios2_processor_nios2_oci|the_nios_system_nios2_processor_nios2_ocimem|nios_system_nios2_processor_ociram_sp_ram|the_altsyncram|auto_generated ; 46 ; 0 ; 0 ; 0 ; 32 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|nios2_processor|the_nios_system_nios2_processor_nios2_oci|the_nios_system_nios2_processor_nios2_ocimem|nios_system_nios2_processor_ociram_sp_ram ; 46 ; 0 ; 0 ; 0 ; 32 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|nios2_processor|the_nios_system_nios2_processor_nios2_oci|the_nios_system_nios2_processor_nios2_ocimem ; 91 ; 0 ; 6 ; 0 ; 65 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|nios2_processor|the_nios_system_nios2_processor_nios2_oci|the_nios_system_nios2_processor_nios2_oci_debug ; 50 ; 1 ; 30 ; 1 ; 7 ; 1 ; 1 ; 1 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|nios2_processor|the_nios_system_nios2_processor_nios2_oci ; 159 ; 0 ; 0 ; 0 ; 69 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|nios2_processor|nios_system_nios2_processor_register_bank_b|the_altsyncram|auto_generated ; 44 ; 0 ; 0 ; 0 ; 32 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|nios2_processor|nios_system_nios2_processor_register_bank_b ; 44 ; 0 ; 0 ; 0 ; 32 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|nios2_processor|nios_system_nios2_processor_register_bank_a|the_altsyncram|auto_generated ; 44 ; 0 ; 0 ; 0 ; 32 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|nios2_processor|nios_system_nios2_processor_register_bank_a ; 44 ; 0 ; 0 ; 0 ; 32 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|nios2_processor|the_nios_system_nios2_processor_test_bench ; 275 ; 3 ; 238 ; 3 ; 34 ; 3 ; 3 ; 3 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII|nios2_processor ; 148 ; 0 ; 31 ; 0 ; 112 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; NiosII ; 23 ; 0 ; 0 ; 0 ; 87 ; 0 ; 0 ; 0 ; 8 ; 0 ; 0 ; 0 ; 8 ; ++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------+----------------+--------------+----------------+--------+-----------------+---------------+-----------------+-------+----------------+--------------+------------------+-------------------+ diff --git a/db/lights.map.ammdb b/db/lights.map.ammdb new file mode 100644 index 0000000..a3faede --- /dev/null +++ b/db/lights.map.ammdb Binary files differ diff --git a/db/lights.map.bpm b/db/lights.map.bpm new file mode 100644 index 0000000..4e5519a --- /dev/null +++ b/db/lights.map.bpm Binary files differ diff --git a/db/lights.map.cdb b/db/lights.map.cdb new file mode 100644 index 0000000..03469df --- /dev/null +++ b/db/lights.map.cdb Binary files differ diff --git a/db/lights.map.hdb b/db/lights.map.hdb new file mode 100644 index 0000000..1aa3208 --- /dev/null +++ b/db/lights.map.hdb Binary files differ diff --git a/db/lights.map.kpt b/db/lights.map.kpt new file mode 100644 index 0000000..0feb822 --- /dev/null +++ b/db/lights.map.kpt Binary files differ diff --git a/db/lights.map.logdb b/db/lights.map.logdb new file mode 100644 index 0000000..626799f --- /dev/null +++ b/db/lights.map.logdb @@ -0,0 +1 @@ +v1 diff --git a/db/lights.map.qmsg b/db/lights.map.qmsg new file mode 100644 index 0000000..95267eb --- /dev/null +++ b/db/lights.map.qmsg @@ -0,0 +1,458 @@ +{ "Info" "IQEXE_SEPARATOR" "" "*******************************************************************" { } { } 3 0 "*******************************************************************" 0 0 "Quartus II" 0 -1 1480609927965 ""} +{ "Info" "IQEXE_START_BANNER_PRODUCT" "Analysis & Synthesis Quartus II 64-Bit " "Running Quartus II 64-Bit Analysis & Synthesis" { { "Info" "IQEXE_START_BANNER_VERSION" "Version 13.0.1 Build 232 06/12/2013 Service Pack 1 SJ Web Edition " "Version 13.0.1 Build 232 06/12/2013 Service Pack 1 SJ Web Edition" { } { } 0 0 "%1!s!" 0 0 "Quartus II" 0 -1 1480609927965 ""} { "Info" "IQEXE_START_BANNER_TIME" "Fri Dec 02 01:32:07 2016 " "Processing started: Fri Dec 02 01:32:07 2016" { } { } 0 0 "Processing started: %1!s!" 0 0 "Quartus II" 0 -1 1480609927965 ""} } { } 4 0 "Running %2!s! %1!s!" 0 0 "Quartus II" 0 -1 1480609927965 ""} +{ "Info" "IQEXE_START_BANNER_COMMANDLINE" "quartus_map --read_settings_files=on --write_settings_files=off lights -c lights " "Command: quartus_map --read_settings_files=on --write_settings_files=off lights -c lights" { } { } 0 0 "Command: %1!s!" 0 0 "Quartus II" 0 -1 1480609927965 ""} +{ "Warning" "WQCU_PARALLEL_NO_LICENSE" "" "Parallel compilation is not licensed and has been disabled" { } { } 0 20028 "Parallel compilation is not licensed and has been disabled" 0 0 "Quartus II" 0 -1 1480609928324 ""} +{ "Info" "ISGN_START_ELABORATION_QSYS" "nios_system.qsys " "Elaborating Qsys system entity \"nios_system.qsys\"" { } { } 0 12248 "Elaborating Qsys system entity \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609928362 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "2016.12.02.01:32:09 Progress: Loading qsys_tutorial/nios_system.qsys " "2016.12.02.01:32:09 Progress: Loading qsys_tutorial/nios_system.qsys" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609929058 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "2016.12.02.01:32:09 Progress: Reading input file " "2016.12.02.01:32:09 Progress: Reading input file" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609929246 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "2016.12.02.01:32:09 Progress: Adding clk_0 \[clock_source 13.0\] " "2016.12.02.01:32:09 Progress: Adding clk_0 \[clock_source 13.0\]" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609929286 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "2016.12.02.01:32:09 Progress: Parameterizing module clk_0 " "2016.12.02.01:32:09 Progress: Parameterizing module clk_0" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609929448 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "2016.12.02.01:32:09 Progress: Adding nios2_processor \[altera_nios2_qsys 13.0\] " "2016.12.02.01:32:09 Progress: Adding nios2_processor \[altera_nios2_qsys 13.0\]" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609929451 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "2016.12.02.01:32:10 Progress: Parameterizing module nios2_processor " "2016.12.02.01:32:10 Progress: Parameterizing module nios2_processor" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609930144 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "2016.12.02.01:32:10 Progress: Adding onchip_memory \[altera_avalon_onchip_memory2 13.0.1.99.2\] " "2016.12.02.01:32:10 Progress: Adding onchip_memory \[altera_avalon_onchip_memory2 13.0.1.99.2\]" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609930147 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "2016.12.02.01:32:10 Progress: Parameterizing module onchip_memory " "2016.12.02.01:32:10 Progress: Parameterizing module onchip_memory" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609930213 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "2016.12.02.01:32:10 Progress: Adding jtag_uart \[altera_avalon_jtag_uart 13.0.1.99.2\] " "2016.12.02.01:32:10 Progress: Adding jtag_uart \[altera_avalon_jtag_uart 13.0.1.99.2\]" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609930214 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "2016.12.02.01:32:10 Progress: Parameterizing module jtag_uart " "2016.12.02.01:32:10 Progress: Parameterizing module jtag_uart" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609930251 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "2016.12.02.01:32:10 Progress: Adding LEDs \[altera_avalon_pio 13.0.1.99.2\] " "2016.12.02.01:32:10 Progress: Adding LEDs \[altera_avalon_pio 13.0.1.99.2\]" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609930252 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "2016.12.02.01:32:10 Progress: Parameterizing module LEDs " "2016.12.02.01:32:10 Progress: Parameterizing module LEDs" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609930296 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "2016.12.02.01:32:10 Progress: Adding LEDRs \[altera_avalon_pio 13.0.1.99.2\] " "2016.12.02.01:32:10 Progress: Adding LEDRs \[altera_avalon_pio 13.0.1.99.2\]" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609930296 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "2016.12.02.01:32:10 Progress: Parameterizing module LEDRs " "2016.12.02.01:32:10 Progress: Parameterizing module LEDRs" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609930300 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "2016.12.02.01:32:10 Progress: Adding switches \[altera_avalon_pio 13.0.1.99.2\] " "2016.12.02.01:32:10 Progress: Adding switches \[altera_avalon_pio 13.0.1.99.2\]" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609930301 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "2016.12.02.01:32:10 Progress: Parameterizing module switches " "2016.12.02.01:32:10 Progress: Parameterizing module switches" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609930302 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "2016.12.02.01:32:10 Progress: Adding push_switches \[altera_avalon_pio 13.0.1.99.2\] " "2016.12.02.01:32:10 Progress: Adding push_switches \[altera_avalon_pio 13.0.1.99.2\]" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609930303 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "2016.12.02.01:32:10 Progress: Parameterizing module push_switches " "2016.12.02.01:32:10 Progress: Parameterizing module push_switches" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609930304 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "2016.12.02.01:32:10 Progress: Adding hex0 \[altera_avalon_pio 13.0.1.99.2\] " "2016.12.02.01:32:10 Progress: Adding hex0 \[altera_avalon_pio 13.0.1.99.2\]" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609930304 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "2016.12.02.01:32:10 Progress: Parameterizing module hex0 " "2016.12.02.01:32:10 Progress: Parameterizing module hex0" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609930307 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "2016.12.02.01:32:10 Progress: Adding hex1 \[altera_avalon_pio 13.0.1.99.2\] " "2016.12.02.01:32:10 Progress: Adding hex1 \[altera_avalon_pio 13.0.1.99.2\]" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609930307 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "2016.12.02.01:32:10 Progress: Parameterizing module hex1 " "2016.12.02.01:32:10 Progress: Parameterizing module hex1" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609930309 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "2016.12.02.01:32:10 Progress: Adding hex2 \[altera_avalon_pio 13.0.1.99.2\] " "2016.12.02.01:32:10 Progress: Adding hex2 \[altera_avalon_pio 13.0.1.99.2\]" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609930309 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "2016.12.02.01:32:10 Progress: Parameterizing module hex2 " "2016.12.02.01:32:10 Progress: Parameterizing module hex2" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609930310 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "2016.12.02.01:32:10 Progress: Adding hex3 \[altera_avalon_pio 13.0.1.99.2\] " "2016.12.02.01:32:10 Progress: Adding hex3 \[altera_avalon_pio 13.0.1.99.2\]" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609930311 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "2016.12.02.01:32:10 Progress: Parameterizing module hex3 " "2016.12.02.01:32:10 Progress: Parameterizing module hex3" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609930313 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "2016.12.02.01:32:10 Progress: Adding hex4 \[altera_avalon_pio 13.0.1.99.2\] " "2016.12.02.01:32:10 Progress: Adding hex4 \[altera_avalon_pio 13.0.1.99.2\]" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609930313 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "2016.12.02.01:32:10 Progress: Parameterizing module hex4 " "2016.12.02.01:32:10 Progress: Parameterizing module hex4" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609930314 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "2016.12.02.01:32:10 Progress: Adding hex5 \[altera_avalon_pio 13.0.1.99.2\] " "2016.12.02.01:32:10 Progress: Adding hex5 \[altera_avalon_pio 13.0.1.99.2\]" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609930315 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "2016.12.02.01:32:10 Progress: Parameterizing module hex5 " "2016.12.02.01:32:10 Progress: Parameterizing module hex5" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609930317 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "2016.12.02.01:32:10 Progress: Adding hex6 \[altera_avalon_pio 13.0.1.99.2\] " "2016.12.02.01:32:10 Progress: Adding hex6 \[altera_avalon_pio 13.0.1.99.2\]" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609930318 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "2016.12.02.01:32:10 Progress: Parameterizing module hex6 " "2016.12.02.01:32:10 Progress: Parameterizing module hex6" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609930319 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "2016.12.02.01:32:10 Progress: Adding hex7 \[altera_avalon_pio 13.0.1.99.2\] " "2016.12.02.01:32:10 Progress: Adding hex7 \[altera_avalon_pio 13.0.1.99.2\]" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609930320 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "2016.12.02.01:32:10 Progress: Parameterizing module hex7 " "2016.12.02.01:32:10 Progress: Parameterizing module hex7" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609930321 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "2016.12.02.01:32:10 Progress: Adding lcd_16207_0 \[altera_avalon_lcd_16207 13.0.1.99.2\] " "2016.12.02.01:32:10 Progress: Adding lcd_16207_0 \[altera_avalon_lcd_16207 13.0.1.99.2\]" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609930321 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "2016.12.02.01:32:10 Progress: Parameterizing module lcd_16207_0 " "2016.12.02.01:32:10 Progress: Parameterizing module lcd_16207_0" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609930341 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "2016.12.02.01:32:10 Progress: Adding lcd_on \[altera_avalon_pio 13.0.1.99.2\] " "2016.12.02.01:32:10 Progress: Adding lcd_on \[altera_avalon_pio 13.0.1.99.2\]" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609930341 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "2016.12.02.01:32:10 Progress: Parameterizing module lcd_on " "2016.12.02.01:32:10 Progress: Parameterizing module lcd_on" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609930344 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "2016.12.02.01:32:10 Progress: Adding lcd_blon \[altera_avalon_pio 13.0.1.99.2\] " "2016.12.02.01:32:10 Progress: Adding lcd_blon \[altera_avalon_pio 13.0.1.99.2\]" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609930344 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "2016.12.02.01:32:10 Progress: Parameterizing module lcd_blon " "2016.12.02.01:32:10 Progress: Parameterizing module lcd_blon" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609930345 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "2016.12.02.01:32:10 Progress: Building connections " "2016.12.02.01:32:10 Progress: Building connections" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609930346 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "2016.12.02.01:32:10 Progress: Parameterizing connections " "2016.12.02.01:32:10 Progress: Parameterizing connections" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609930655 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "2016.12.02.01:32:10 Progress: Validating " "2016.12.02.01:32:10 Progress: Validating" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609930658 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "2016.12.02.01:32:11 Progress: Done reading input file " "2016.12.02.01:32:11 Progress: Done reading input file" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609931326 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Nios_system.switches: PIO inputs are not hardwired in test bench. Undefined values will be read from PIO inputs during simulation. " "Nios_system.switches: PIO inputs are not hardwired in test bench. Undefined values will be read from PIO inputs during simulation." { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609931681 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Nios_system.push_switches: PIO inputs are not hardwired in test bench. Undefined values will be read from PIO inputs during simulation. " "Nios_system.push_switches: PIO inputs are not hardwired in test bench. Undefined values will be read from PIO inputs during simulation." { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609931681 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Nios_system: Generating nios_system \"nios_system\" for QUARTUS_SYNTH " "Nios_system: Generating nios_system \"nios_system\" for QUARTUS_SYNTH" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609932637 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Pipeline_bridge_swap_transform: After transform: 19 modules, 75 connections " "Pipeline_bridge_swap_transform: After transform: 19 modules, 75 connections" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609932866 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "No custom instruction connections, skipping transform " "No custom instruction connections, skipping transform " { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609932873 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Merlin_translator_transform: After transform: 39 modules, 155 connections " "Merlin_translator_transform: After transform: 39 modules, 155 connections" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609933446 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Merlin_domain_transform: After transform: 78 modules, 423 connections " "Merlin_domain_transform: After transform: 78 modules, 423 connections" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609934450 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Merlin_router_transform: After transform: 98 modules, 503 connections " "Merlin_router_transform: After transform: 98 modules, 503 connections" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609934786 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Reset_adaptation_transform: After transform: 99 modules, 390 connections " "Reset_adaptation_transform: After transform: 99 modules, 390 connections" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609934856 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Merlin_network_to_switch_transform: After transform: 138 modules, 470 connections " "Merlin_network_to_switch_transform: After transform: 138 modules, 470 connections" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609935100 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Merlin_mm_transform: After transform: 138 modules, 470 connections " "Merlin_mm_transform: After transform: 138 modules, 470 connections" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609935188 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Merlin_interrupt_mapper_transform: After transform: 139 modules, 473 connections " "Merlin_interrupt_mapper_transform: After transform: 139 modules, 473 connections" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609935222 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936159 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936160 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936160 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936160 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936160 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936160 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936161 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936161 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936161 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936161 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936161 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936162 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936162 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936162 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936162 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936163 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936163 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936163 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936163 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936164 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936164 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936164 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936164 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936164 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936165 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936165 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936165 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936165 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936165 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936165 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936166 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936166 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936166 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936166 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936166 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936166 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936166 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936167 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936167 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936167 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936167 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936167 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936168 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936168 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936168 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936168 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936169 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936169 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936169 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936169 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936169 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936169 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936170 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936170 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936170 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936170 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936170 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936170 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936171 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936171 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936171 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936171 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936171 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936171 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936172 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936172 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936172 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936172 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936172 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936172 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936173 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936173 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936173 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936173 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936173 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936173 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936174 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936174 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936174 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936174 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936174 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936174 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936174 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936175 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936175 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936175 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936175 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936175 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936175 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936176 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936176 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936176 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936176 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936176 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936176 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936185 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936185 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936185 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936185 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936186 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936186 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936186 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936186 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936186 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936187 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936187 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936187 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936187 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936187 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936188 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936188 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936188 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936188 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936188 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936188 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936189 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936189 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936189 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936189 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936190 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936190 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936190 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936191 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936191 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936191 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936191 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936192 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936192 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936192 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936192 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936192 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936193 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936193 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936193 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936193 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936194 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Nios2_processor: Starting RTL generation for module 'nios_system_nios2_processor' " "Nios2_processor: Starting RTL generation for module 'nios_system_nios2_processor'" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936632 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Nios2_processor: Generation command is \[exec C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2/eperl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2/cpu_lib -I C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2/nios_lib -I C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2 -I C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2 -- C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2/generate_rtl.epl --name=nios_system_nios2_processor --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_6175737974426620063.dir/0001_nios2_processor_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_6175737974426620063.dir/0001_nios2_processor_gen//nios_system_nios2_processor_processor_configuration.pl --do_build_sim=0 --bogus \] " "Nios2_processor: Generation command is \[exec C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2/eperl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2/cpu_lib -I C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2/nios_lib -I C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2 -I C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2 -- C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2/generate_rtl.epl --name=nios_system_nios2_processor --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_6175737974426620063.dir/0001_nios2_processor_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_6175737974426620063.dir/0001_nios2_processor_gen//nios_system_nios2_processor_processor_configuration.pl --do_build_sim=0 --bogus \]" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609936634 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Nios2_processor: # 2016.12.02 01:32:17 (*) Starting Nios II generation " "Nios2_processor: # 2016.12.02 01:32:17 (*) Starting Nios II generation" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609940786 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Nios2_processor: # 2016.12.02 01:32:17 (*) Checking for plaintext license. " "Nios2_processor: # 2016.12.02 01:32:17 (*) Checking for plaintext license." { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609940786 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Nios2_processor: # 2016.12.02 01:32:17 (*) Couldn't query license setup in Quartus directory C:/altera/13.0sp1/quartus " "Nios2_processor: # 2016.12.02 01:32:17 (*) Couldn't query license setup in Quartus directory C:/altera/13.0sp1/quartus" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609940786 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Nios2_processor: # 2016.12.02 01:32:17 (*) Defaulting to contents of LM_LICENSE_FILE environment variable " "Nios2_processor: # 2016.12.02 01:32:17 (*) Defaulting to contents of LM_LICENSE_FILE environment variable" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609940786 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Nios2_processor: # 2016.12.02 01:32:17 (*) LM_LICENSE_FILE environment variable is empty " "Nios2_processor: # 2016.12.02 01:32:17 (*) LM_LICENSE_FILE environment variable is empty" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609940786 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Nios2_processor: # 2016.12.02 01:32:17 (*) Plaintext license not found. " "Nios2_processor: # 2016.12.02 01:32:17 (*) Plaintext license not found." { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609940786 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Nios2_processor: # 2016.12.02 01:32:17 (*) No license required to generate encrypted Nios II/e. " "Nios2_processor: # 2016.12.02 01:32:17 (*) No license required to generate encrypted Nios II/e." { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609940787 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Nios2_processor: # 2016.12.02 01:32:17 (*) Elaborating CPU configuration settings " "Nios2_processor: # 2016.12.02 01:32:17 (*) Elaborating CPU configuration settings" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609940787 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Nios2_processor: # 2016.12.02 01:32:17 (*) Creating all objects for CPU " "Nios2_processor: # 2016.12.02 01:32:17 (*) Creating all objects for CPU" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609940787 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Nios2_processor: # 2016.12.02 01:32:18 (*) Generating RTL from CPU objects " "Nios2_processor: # 2016.12.02 01:32:18 (*) Generating RTL from CPU objects" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609940787 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Nios2_processor: # 2016.12.02 01:32:18 (*) Creating plain-text RTL " "Nios2_processor: # 2016.12.02 01:32:18 (*) Creating plain-text RTL" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609940787 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Nios2_processor: # 2016.12.02 01:32:20 (*) Done Nios II generation " "Nios2_processor: # 2016.12.02 01:32:20 (*) Done Nios II generation" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609940787 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Nios2_processor: Done RTL generation for module 'nios_system_nios2_processor' " "Nios2_processor: Done RTL generation for module 'nios_system_nios2_processor'" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609940788 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Nios2_processor: \"nios_system\" instantiated altera_nios2_qsys \"nios2_processor\" " "Nios2_processor: \"nios_system\" instantiated altera_nios2_qsys \"nios2_processor\"" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609940800 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Onchip_memory: Starting RTL generation for module 'nios_system_onchip_memory' " "Onchip_memory: Starting RTL generation for module 'nios_system_onchip_memory'" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609940841 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Onchip_memory: Generation command is \[exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_onchip_memory2 -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_onchip_memory2/generate_rtl.pl --name=nios_system_onchip_memory --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_6175737974426620063.dir/0002_onchip_memory_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_6175737974426620063.dir/0002_onchip_memory_gen//nios_system_onchip_memory_component_configuration.pl --do_build_sim=0 \] " "Onchip_memory: Generation command is \[exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_onchip_memory2 -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_onchip_memory2/generate_rtl.pl --name=nios_system_onchip_memory --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_6175737974426620063.dir/0002_onchip_memory_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_6175737974426620063.dir/0002_onchip_memory_gen//nios_system_onchip_memory_component_configuration.pl --do_build_sim=0 \]" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609940841 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Onchip_memory: Done RTL generation for module 'nios_system_onchip_memory' " "Onchip_memory: Done RTL generation for module 'nios_system_onchip_memory'" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609941877 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Onchip_memory: \"nios_system\" instantiated altera_avalon_onchip_memory2 \"onchip_memory\" " "Onchip_memory: \"nios_system\" instantiated altera_avalon_onchip_memory2 \"onchip_memory\"" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609941888 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Jtag_uart: Starting RTL generation for module 'nios_system_jtag_uart' " "Jtag_uart: Starting RTL generation for module 'nios_system_jtag_uart'" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609941907 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Jtag_uart: Generation command is \[exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_jtag_uart -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_jtag_uart/generate_rtl.pl --name=nios_system_jtag_uart --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_6175737974426620063.dir/0003_jtag_uart_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_6175737974426620063.dir/0003_jtag_uart_gen//nios_system_jtag_uart_component_configuration.pl --do_build_sim=0 \] " "Jtag_uart: Generation command is \[exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_jtag_uart -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_jtag_uart/generate_rtl.pl --name=nios_system_jtag_uart --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_6175737974426620063.dir/0003_jtag_uart_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_6175737974426620063.dir/0003_jtag_uart_gen//nios_system_jtag_uart_component_configuration.pl --do_build_sim=0 \]" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609941908 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Jtag_uart: Done RTL generation for module 'nios_system_jtag_uart' " "Jtag_uart: Done RTL generation for module 'nios_system_jtag_uart'" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609942211 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Jtag_uart: \"nios_system\" instantiated altera_avalon_jtag_uart \"jtag_uart\" " "Jtag_uart: \"nios_system\" instantiated altera_avalon_jtag_uart \"jtag_uart\"" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609942216 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "LEDs: Starting RTL generation for module 'nios_system_LEDs' " "LEDs: Starting RTL generation for module 'nios_system_LEDs'" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609942236 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "LEDs: Generation command is \[exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_LEDs --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_6175737974426620063.dir/0004_LEDs_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_6175737974426620063.dir/0004_LEDs_gen//nios_system_LEDs_component_configuration.pl --do_build_sim=0 \] " "LEDs: Generation command is \[exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_LEDs --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_6175737974426620063.dir/0004_LEDs_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_6175737974426620063.dir/0004_LEDs_gen//nios_system_LEDs_component_configuration.pl --do_build_sim=0 \]" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609942237 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "LEDs: Done RTL generation for module 'nios_system_LEDs' " "LEDs: Done RTL generation for module 'nios_system_LEDs'" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609942422 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "LEDs: \"nios_system\" instantiated altera_avalon_pio \"LEDs\" " "LEDs: \"nios_system\" instantiated altera_avalon_pio \"LEDs\"" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609942425 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "LEDRs: Starting RTL generation for module 'nios_system_LEDRs' " "LEDRs: Starting RTL generation for module 'nios_system_LEDRs'" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609942440 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "LEDRs: Generation command is \[exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_LEDRs --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_6175737974426620063.dir/0005_LEDRs_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_6175737974426620063.dir/0005_LEDRs_gen//nios_system_LEDRs_component_configuration.pl --do_build_sim=0 \] " "LEDRs: Generation command is \[exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_LEDRs --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_6175737974426620063.dir/0005_LEDRs_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_6175737974426620063.dir/0005_LEDRs_gen//nios_system_LEDRs_component_configuration.pl --do_build_sim=0 \]" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609942440 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "LEDRs: Done RTL generation for module 'nios_system_LEDRs' " "LEDRs: Done RTL generation for module 'nios_system_LEDRs'" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609942632 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "LEDRs: \"nios_system\" instantiated altera_avalon_pio \"LEDRs\" " "LEDRs: \"nios_system\" instantiated altera_avalon_pio \"LEDRs\"" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609942634 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Switches: Starting RTL generation for module 'nios_system_switches' " "Switches: Starting RTL generation for module 'nios_system_switches'" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609942646 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Switches: Generation command is \[exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_switches --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_6175737974426620063.dir/0006_switches_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_6175737974426620063.dir/0006_switches_gen//nios_system_switches_component_configuration.pl --do_build_sim=0 \] " "Switches: Generation command is \[exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_switches --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_6175737974426620063.dir/0006_switches_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_6175737974426620063.dir/0006_switches_gen//nios_system_switches_component_configuration.pl --do_build_sim=0 \]" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609942647 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Switches: Done RTL generation for module 'nios_system_switches' " "Switches: Done RTL generation for module 'nios_system_switches'" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609942825 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Switches: \"nios_system\" instantiated altera_avalon_pio \"switches\" " "Switches: \"nios_system\" instantiated altera_avalon_pio \"switches\"" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609942827 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Push_switches: Starting RTL generation for module 'nios_system_push_switches' " "Push_switches: Starting RTL generation for module 'nios_system_push_switches'" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609942840 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Push_switches: Generation command is \[exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_push_switches --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_6175737974426620063.dir/0007_push_switches_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_6175737974426620063.dir/0007_push_switches_gen//nios_system_push_switches_component_configuration.pl --do_build_sim=0 \] " "Push_switches: Generation command is \[exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_push_switches --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_6175737974426620063.dir/0007_push_switches_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_6175737974426620063.dir/0007_push_switches_gen//nios_system_push_switches_component_configuration.pl --do_build_sim=0 \]" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609942841 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Push_switches: Done RTL generation for module 'nios_system_push_switches' " "Push_switches: Done RTL generation for module 'nios_system_push_switches'" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609943020 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Push_switches: \"nios_system\" instantiated altera_avalon_pio \"push_switches\" " "Push_switches: \"nios_system\" instantiated altera_avalon_pio \"push_switches\"" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609943022 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Hex0: Starting RTL generation for module 'nios_system_hex0' " "Hex0: Starting RTL generation for module 'nios_system_hex0'" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609943038 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Hex0: Generation command is \[exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_hex0 --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_6175737974426620063.dir/0008_hex0_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_6175737974426620063.dir/0008_hex0_gen//nios_system_hex0_component_configuration.pl --do_build_sim=0 \] " "Hex0: Generation command is \[exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_hex0 --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_6175737974426620063.dir/0008_hex0_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_6175737974426620063.dir/0008_hex0_gen//nios_system_hex0_component_configuration.pl --do_build_sim=0 \]" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609943038 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Hex0: Done RTL generation for module 'nios_system_hex0' " "Hex0: Done RTL generation for module 'nios_system_hex0'" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609943218 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Hex0: \"nios_system\" instantiated altera_avalon_pio \"hex0\" " "Hex0: \"nios_system\" instantiated altera_avalon_pio \"hex0\"" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609943221 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Lcd_16207_0: Starting RTL generation for module 'nios_system_lcd_16207_0' " "Lcd_16207_0: Starting RTL generation for module 'nios_system_lcd_16207_0'" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609943233 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Lcd_16207_0: Generation command is \[exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_lcd_16207 -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_lcd_16207/generate_rtl.pl --name=nios_system_lcd_16207_0 --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_6175737974426620063.dir/0009_lcd_16207_0_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_6175737974426620063.dir/0009_lcd_16207_0_gen//nios_system_lcd_16207_0_component_configuration.pl --do_build_sim=0 \] " "Lcd_16207_0: Generation command is \[exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_lcd_16207 -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_lcd_16207/generate_rtl.pl --name=nios_system_lcd_16207_0 --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_6175737974426620063.dir/0009_lcd_16207_0_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_6175737974426620063.dir/0009_lcd_16207_0_gen//nios_system_lcd_16207_0_component_configuration.pl --do_build_sim=0 \]" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609943233 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Lcd_16207_0: Done RTL generation for module 'nios_system_lcd_16207_0' " "Lcd_16207_0: Done RTL generation for module 'nios_system_lcd_16207_0'" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609943412 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Lcd_16207_0: \"nios_system\" instantiated altera_avalon_lcd_16207 \"lcd_16207_0\" " "Lcd_16207_0: \"nios_system\" instantiated altera_avalon_lcd_16207 \"lcd_16207_0\"" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609943415 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Lcd_on: Starting RTL generation for module 'nios_system_lcd_on' " "Lcd_on: Starting RTL generation for module 'nios_system_lcd_on'" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609943432 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Lcd_on: Generation command is \[exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_lcd_on --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_6175737974426620063.dir/0010_lcd_on_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_6175737974426620063.dir/0010_lcd_on_gen//nios_system_lcd_on_component_configuration.pl --do_build_sim=0 \] " "Lcd_on: Generation command is \[exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_lcd_on --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_6175737974426620063.dir/0010_lcd_on_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_6175737974426620063.dir/0010_lcd_on_gen//nios_system_lcd_on_component_configuration.pl --do_build_sim=0 \]" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609943433 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Lcd_on: Done RTL generation for module 'nios_system_lcd_on' " "Lcd_on: Done RTL generation for module 'nios_system_lcd_on'" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609943619 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Lcd_on: \"nios_system\" instantiated altera_avalon_pio \"lcd_on\" " "Lcd_on: \"nios_system\" instantiated altera_avalon_pio \"lcd_on\"" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609943622 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Nios2_processor_instruction_master_translator: \"nios_system\" instantiated altera_merlin_master_translator \"nios2_processor_instruction_master_translator\" " "Nios2_processor_instruction_master_translator: \"nios_system\" instantiated altera_merlin_master_translator \"nios2_processor_instruction_master_translator\"" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609943624 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Nios2_processor_jtag_debug_module_translator: \"nios_system\" instantiated altera_merlin_slave_translator \"nios2_processor_jtag_debug_module_translator\" " "Nios2_processor_jtag_debug_module_translator: \"nios_system\" instantiated altera_merlin_slave_translator \"nios2_processor_jtag_debug_module_translator\"" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609943632 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Nios2_processor_instruction_master_translator_avalon_universal_master_0_agent: \"nios_system\" instantiated altera_merlin_master_agent \"nios2_processor_instruction_master_translator_avalon_universal_master_0_agent\" " "Nios2_processor_instruction_master_translator_avalon_universal_master_0_agent: \"nios_system\" instantiated altera_merlin_master_agent \"nios2_processor_instruction_master_translator_avalon_universal_master_0_agent\"" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609943640 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent: \"nios_system\" instantiated altera_merlin_slave_agent \"nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent\" " "Nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent: \"nios_system\" instantiated altera_merlin_slave_agent \"nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent\"" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609943648 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo: \"nios_system\" instantiated altera_avalon_sc_fifo \"nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo\" " "Nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo: \"nios_system\" instantiated altera_avalon_sc_fifo \"nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo\"" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609943662 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Addr_router: \"nios_system\" instantiated altera_merlin_router \"addr_router\" " "Addr_router: \"nios_system\" instantiated altera_merlin_router \"addr_router\"" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609943685 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Addr_router_001: \"nios_system\" instantiated altera_merlin_router \"addr_router_001\" " "Addr_router_001: \"nios_system\" instantiated altera_merlin_router \"addr_router_001\"" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609943703 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Id_router: \"nios_system\" instantiated altera_merlin_router \"id_router\" " "Id_router: \"nios_system\" instantiated altera_merlin_router \"id_router\"" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609943724 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Id_router_002: \"nios_system\" instantiated altera_merlin_router \"id_router_002\" " "Id_router_002: \"nios_system\" instantiated altera_merlin_router \"id_router_002\"" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609943733 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Rst_controller: \"nios_system\" instantiated altera_reset_controller \"rst_controller\" " "Rst_controller: \"nios_system\" instantiated altera_reset_controller \"rst_controller\"" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609943736 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Cmd_xbar_demux: \"nios_system\" instantiated altera_merlin_demultiplexer \"cmd_xbar_demux\" " "Cmd_xbar_demux: \"nios_system\" instantiated altera_merlin_demultiplexer \"cmd_xbar_demux\"" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609943768 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Cmd_xbar_demux_001: \"nios_system\" instantiated altera_merlin_demultiplexer \"cmd_xbar_demux_001\" " "Cmd_xbar_demux_001: \"nios_system\" instantiated altera_merlin_demultiplexer \"cmd_xbar_demux_001\"" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609943800 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Cmd_xbar_mux: \"nios_system\" instantiated altera_merlin_multiplexer \"cmd_xbar_mux\" " "Cmd_xbar_mux: \"nios_system\" instantiated altera_merlin_multiplexer \"cmd_xbar_mux\"" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609943837 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Rsp_xbar_demux_002: \"nios_system\" instantiated altera_merlin_demultiplexer \"rsp_xbar_demux_002\" " "Rsp_xbar_demux_002: \"nios_system\" instantiated altera_merlin_demultiplexer \"rsp_xbar_demux_002\"" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609943861 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Rsp_xbar_mux: \"nios_system\" instantiated altera_merlin_multiplexer \"rsp_xbar_mux\" " "Rsp_xbar_mux: \"nios_system\" instantiated altera_merlin_multiplexer \"rsp_xbar_mux\"" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609943895 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Reusing file C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/altera_merlin_arbitrator.sv " "Reusing file C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/altera_merlin_arbitrator.sv" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609943896 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Rsp_xbar_mux_001: \"nios_system\" instantiated altera_merlin_multiplexer \"rsp_xbar_mux_001\" " "Rsp_xbar_mux_001: \"nios_system\" instantiated altera_merlin_multiplexer \"rsp_xbar_mux_001\"" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609943950 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Reusing file C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/altera_merlin_arbitrator.sv " "Reusing file C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/altera_merlin_arbitrator.sv" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609943951 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Irq_mapper: \"nios_system\" instantiated altera_irq_mapper \"irq_mapper\" " "Irq_mapper: \"nios_system\" instantiated altera_irq_mapper \"irq_mapper\"" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609943973 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Nios_system: Done nios_system\" with 28 modules, 155 files, 4086283 bytes " "Nios_system: Done nios_system\" with 28 modules, 155 files, 4086283 bytes" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609943975 ""} +{ "Info" "ISGN_END_ELABORATION_QSYS" "nios_system.qsys " "Finished elaborating Qsys system entity \"nios_system.qsys\"" { } { } 0 12249 "Finished elaborating Qsys system entity \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609944821 ""} +{ "Info" "ISGN_NUM_OF_DESIGN_UNITS_AND_ENTITIES" "lights.vhd 2 1 " "Found 2 design units, including 1 entities, in source file lights.vhd" { { "Info" "ISGN_DESIGN_UNIT_NAME" "1 lights-lights_rtl " "Found design unit 1: lights-lights_rtl" { } { { "lights.vhd" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/lights.vhd" 27 -1 0 } } } 0 12022 "Found design unit %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609945240 ""} { "Info" "ISGN_ENTITY_NAME" "1 lights " "Found entity 1: lights" { } { { "lights.vhd" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/lights.vhd" 4 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609945240 ""} } { } 0 12021 "Found %2!llu! design units, including %3!llu! entities, in source file %1!s!" 0 0 "Quartus II" 0 -1 1480609945240 ""} +{ "Info" "ISGN_NUM_OF_DESIGN_UNITS_AND_ENTITIES" "nios_system/synthesis/nios_system.v 1 1 " "Found 1 design units, including 1 entities, in source file nios_system/synthesis/nios_system.v" { { "Info" "ISGN_ENTITY_NAME" "1 nios_system " "Found entity 1: nios_system" { } { { "nios_system/synthesis/nios_system.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/synthesis/nios_system.v" 6 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609945261 ""} } { } 0 12021 "Found %2!llu! design units, including %3!llu! entities, in source file %1!s!" 0 0 "Quartus II" 0 -1 1480609945261 ""} +{ "Info" "ISGN_NUM_OF_DESIGN_UNITS_AND_ENTITIES" "db/ip/nios_system/nios_system.v 1 1 " "Found 1 design units, including 1 entities, in source file db/ip/nios_system/nios_system.v" { { "Info" "ISGN_ENTITY_NAME" "1 nios_system " "Found entity 1: nios_system" { } { { "db/ip/nios_system/nios_system.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/nios_system.v" 6 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609945281 ""} } { } 0 12021 "Found %2!llu! design units, including %3!llu! entities, in source file %1!s!" 0 0 "Quartus II" 0 -1 1480609945281 ""} +{ "Info" "ISGN_NUM_OF_DESIGN_UNITS_AND_ENTITIES" "db/ip/nios_system/submodules/altera_avalon_sc_fifo.v 1 1 " "Found 1 design units, including 1 entities, in source file db/ip/nios_system/submodules/altera_avalon_sc_fifo.v" { { "Info" "ISGN_ENTITY_NAME" "1 altera_avalon_sc_fifo " "Found entity 1: altera_avalon_sc_fifo" { } { { "db/ip/nios_system/submodules/altera_avalon_sc_fifo.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/altera_avalon_sc_fifo.v" 21 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609945286 ""} } { } 0 12021 "Found %2!llu! design units, including %3!llu! entities, in source file %1!s!" 0 0 "Quartus II" 0 -1 1480609945286 ""} +{ "Info" "ISGN_NUM_OF_DESIGN_UNITS_AND_ENTITIES" "db/ip/nios_system/submodules/altera_merlin_arbitrator.sv 2 2 " "Found 2 design units, including 2 entities, in source file db/ip/nios_system/submodules/altera_merlin_arbitrator.sv" { { "Info" "ISGN_ENTITY_NAME" "1 altera_merlin_arbitrator " "Found entity 1: altera_merlin_arbitrator" { } { { "db/ip/nios_system/submodules/altera_merlin_arbitrator.sv" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/altera_merlin_arbitrator.sv" 103 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609945290 ""} { "Info" "ISGN_ENTITY_NAME" "2 altera_merlin_arb_adder " "Found entity 2: altera_merlin_arb_adder" { } { { "db/ip/nios_system/submodules/altera_merlin_arbitrator.sv" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/altera_merlin_arbitrator.sv" 228 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609945290 ""} } { } 0 12021 "Found %2!llu! design units, including %3!llu! entities, in source file %1!s!" 0 0 "Quartus II" 0 -1 1480609945290 ""} +{ "Info" "ISGN_NUM_OF_DESIGN_UNITS_AND_ENTITIES" "db/ip/nios_system/submodules/altera_merlin_burst_uncompressor.sv 1 1 " "Found 1 design units, including 1 entities, in source file db/ip/nios_system/submodules/altera_merlin_burst_uncompressor.sv" { { "Info" "ISGN_ENTITY_NAME" "1 altera_merlin_burst_uncompressor " "Found entity 1: altera_merlin_burst_uncompressor" { } { { "db/ip/nios_system/submodules/altera_merlin_burst_uncompressor.sv" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/altera_merlin_burst_uncompressor.sv" 40 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609945294 ""} } { } 0 12021 "Found %2!llu! design units, including %3!llu! entities, in source file %1!s!" 0 0 "Quartus II" 0 -1 1480609945294 ""} +{ "Info" "ISGN_NUM_OF_DESIGN_UNITS_AND_ENTITIES" "db/ip/nios_system/submodules/altera_merlin_master_agent.sv 1 1 " "Found 1 design units, including 1 entities, in source file db/ip/nios_system/submodules/altera_merlin_master_agent.sv" { { "Info" "ISGN_ENTITY_NAME" "1 altera_merlin_master_agent " "Found entity 1: altera_merlin_master_agent" { } { { "db/ip/nios_system/submodules/altera_merlin_master_agent.sv" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/altera_merlin_master_agent.sv" 28 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609945298 ""} } { } 0 12021 "Found %2!llu! design units, including %3!llu! entities, in source file %1!s!" 0 0 "Quartus II" 0 -1 1480609945298 ""} +{ "Info" "ISGN_NUM_OF_DESIGN_UNITS_AND_ENTITIES" "db/ip/nios_system/submodules/altera_merlin_master_translator.sv 1 1 " "Found 1 design units, including 1 entities, in source file db/ip/nios_system/submodules/altera_merlin_master_translator.sv" { { "Info" "ISGN_ENTITY_NAME" "1 altera_merlin_master_translator " "Found entity 1: altera_merlin_master_translator" { } { { "db/ip/nios_system/submodules/altera_merlin_master_translator.sv" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/altera_merlin_master_translator.sv" 30 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609945302 ""} } { } 0 12021 "Found %2!llu! design units, including %3!llu! entities, in source file %1!s!" 0 0 "Quartus II" 0 -1 1480609945302 ""} +{ "Info" "ISGN_NUM_OF_DESIGN_UNITS_AND_ENTITIES" "db/ip/nios_system/submodules/altera_merlin_slave_agent.sv 1 1 " "Found 1 design units, including 1 entities, in source file db/ip/nios_system/submodules/altera_merlin_slave_agent.sv" { { "Info" "ISGN_ENTITY_NAME" "1 altera_merlin_slave_agent " "Found entity 1: altera_merlin_slave_agent" { } { { "db/ip/nios_system/submodules/altera_merlin_slave_agent.sv" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/altera_merlin_slave_agent.sv" 34 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609945306 ""} } { } 0 12021 "Found %2!llu! design units, including %3!llu! entities, in source file %1!s!" 0 0 "Quartus II" 0 -1 1480609945306 ""} +{ "Info" "ISGN_NUM_OF_DESIGN_UNITS_AND_ENTITIES" "db/ip/nios_system/submodules/altera_merlin_slave_translator.sv 1 1 " "Found 1 design units, including 1 entities, in source file db/ip/nios_system/submodules/altera_merlin_slave_translator.sv" { { "Info" "ISGN_ENTITY_NAME" "1 altera_merlin_slave_translator " "Found entity 1: altera_merlin_slave_translator" { } { { "db/ip/nios_system/submodules/altera_merlin_slave_translator.sv" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/altera_merlin_slave_translator.sv" 35 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609945310 ""} } { } 0 12021 "Found %2!llu! design units, including %3!llu! entities, in source file %1!s!" 0 0 "Quartus II" 0 -1 1480609945310 ""} +{ "Info" "ISGN_NUM_OF_DESIGN_UNITS_AND_ENTITIES" "db/ip/nios_system/submodules/altera_reset_controller.v 1 1 " "Found 1 design units, including 1 entities, in source file db/ip/nios_system/submodules/altera_reset_controller.v" { { "Info" "ISGN_ENTITY_NAME" "1 altera_reset_controller " "Found entity 1: altera_reset_controller" { } { { "db/ip/nios_system/submodules/altera_reset_controller.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/altera_reset_controller.v" 29 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609945314 ""} } { } 0 12021 "Found %2!llu! design units, including %3!llu! entities, in source file %1!s!" 0 0 "Quartus II" 0 -1 1480609945314 ""} +{ "Info" "ISGN_NUM_OF_DESIGN_UNITS_AND_ENTITIES" "db/ip/nios_system/submodules/altera_reset_synchronizer.v 1 1 " "Found 1 design units, including 1 entities, in source file db/ip/nios_system/submodules/altera_reset_synchronizer.v" { { "Info" "ISGN_ENTITY_NAME" "1 altera_reset_synchronizer " "Found entity 1: altera_reset_synchronizer" { } { { "db/ip/nios_system/submodules/altera_reset_synchronizer.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/altera_reset_synchronizer.v" 24 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609945317 ""} } { } 0 12021 "Found %2!llu! design units, including %3!llu! entities, in source file %1!s!" 0 0 "Quartus II" 0 -1 1480609945317 ""} +{ "Info" "ISGN_NUM_OF_DESIGN_UNITS_AND_ENTITIES" "db/ip/nios_system/submodules/nios_system_ledrs.v 1 1 " "Found 1 design units, including 1 entities, in source file db/ip/nios_system/submodules/nios_system_ledrs.v" { { "Info" "ISGN_ENTITY_NAME" "1 nios_system_LEDRs " "Found entity 1: nios_system_LEDRs" { } { { "db/ip/nios_system/submodules/nios_system_LEDRs.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_LEDRs.v" 21 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609945320 ""} } { } 0 12021 "Found %2!llu! design units, including %3!llu! entities, in source file %1!s!" 0 0 "Quartus II" 0 -1 1480609945320 ""} +{ "Info" "ISGN_NUM_OF_DESIGN_UNITS_AND_ENTITIES" "db/ip/nios_system/submodules/nios_system_leds.v 1 1 " "Found 1 design units, including 1 entities, in source file db/ip/nios_system/submodules/nios_system_leds.v" { { "Info" "ISGN_ENTITY_NAME" "1 nios_system_LEDs " "Found entity 1: nios_system_LEDs" { } { { "db/ip/nios_system/submodules/nios_system_LEDs.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_LEDs.v" 21 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609945323 ""} } { } 0 12021 "Found %2!llu! design units, including %3!llu! entities, in source file %1!s!" 0 0 "Quartus II" 0 -1 1480609945323 ""} +{ "Info" "IVRFX_L3_VERI_OBJ_DIFF_ONLY_IN_CASE" "DEFAULT_WR_CHANNEL default_wr_channel nios_system_addr_router.sv(48) " "Verilog HDL Declaration information at nios_system_addr_router.sv(48): object \"DEFAULT_WR_CHANNEL\" differs only in case from object \"default_wr_channel\" in the same scope" { } { { "db/ip/nios_system/submodules/nios_system_addr_router.sv" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_addr_router.sv" 48 0 0 } } } 0 10281 "Verilog HDL Declaration information at %3!s!: object \"%1!s!\" differs only in case from object \"%2!s!\" in the same scope" 1 0 "Quartus II" 0 -1 1480609945325 ""} +{ "Info" "IVRFX_L3_VERI_OBJ_DIFF_ONLY_IN_CASE" "DEFAULT_RD_CHANNEL default_rd_channel nios_system_addr_router.sv(49) " "Verilog HDL Declaration information at nios_system_addr_router.sv(49): object \"DEFAULT_RD_CHANNEL\" differs only in case from object \"default_rd_channel\" in the same scope" { } { { "db/ip/nios_system/submodules/nios_system_addr_router.sv" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_addr_router.sv" 49 0 0 } } } 0 10281 "Verilog HDL Declaration information at %3!s!: object \"%1!s!\" differs only in case from object \"%2!s!\" in the same scope" 1 0 "Quartus II" 0 -1 1480609945326 ""} +{ "Info" "ISGN_NUM_OF_DESIGN_UNITS_AND_ENTITIES" "db/ip/nios_system/submodules/nios_system_addr_router.sv 2 2 " "Found 2 design units, including 2 entities, in source file db/ip/nios_system/submodules/nios_system_addr_router.sv" { { "Info" "ISGN_ENTITY_NAME" "1 nios_system_addr_router_default_decode " "Found entity 1: nios_system_addr_router_default_decode" { } { { "db/ip/nios_system/submodules/nios_system_addr_router.sv" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_addr_router.sv" 45 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609945326 ""} { "Info" "ISGN_ENTITY_NAME" "2 nios_system_addr_router " "Found entity 2: nios_system_addr_router" { } { { "db/ip/nios_system/submodules/nios_system_addr_router.sv" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_addr_router.sv" 86 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609945326 ""} } { } 0 12021 "Found %2!llu! design units, including %3!llu! entities, in source file %1!s!" 0 0 "Quartus II" 0 -1 1480609945326 ""} +{ "Info" "IVRFX_L3_VERI_OBJ_DIFF_ONLY_IN_CASE" "DEFAULT_WR_CHANNEL default_wr_channel nios_system_addr_router_001.sv(48) " "Verilog HDL Declaration information at nios_system_addr_router_001.sv(48): object \"DEFAULT_WR_CHANNEL\" differs only in case from object \"default_wr_channel\" in the same scope" { } { { "db/ip/nios_system/submodules/nios_system_addr_router_001.sv" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_addr_router_001.sv" 48 0 0 } } } 0 10281 "Verilog HDL Declaration information at %3!s!: object \"%1!s!\" differs only in case from object \"%2!s!\" in the same scope" 1 0 "Quartus II" 0 -1 1480609945329 ""} +{ "Info" "IVRFX_L3_VERI_OBJ_DIFF_ONLY_IN_CASE" "DEFAULT_RD_CHANNEL default_rd_channel nios_system_addr_router_001.sv(49) " "Verilog HDL Declaration information at nios_system_addr_router_001.sv(49): object \"DEFAULT_RD_CHANNEL\" differs only in case from object \"default_rd_channel\" in the same scope" { } { { "db/ip/nios_system/submodules/nios_system_addr_router_001.sv" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_addr_router_001.sv" 49 0 0 } } } 0 10281 "Verilog HDL Declaration information at %3!s!: object \"%1!s!\" differs only in case from object \"%2!s!\" in the same scope" 1 0 "Quartus II" 0 -1 1480609945329 ""} +{ "Info" "ISGN_NUM_OF_DESIGN_UNITS_AND_ENTITIES" "db/ip/nios_system/submodules/nios_system_addr_router_001.sv 2 2 " "Found 2 design units, including 2 entities, in source file db/ip/nios_system/submodules/nios_system_addr_router_001.sv" { { "Info" "ISGN_ENTITY_NAME" "1 nios_system_addr_router_001_default_decode " "Found entity 1: nios_system_addr_router_001_default_decode" { } { { "db/ip/nios_system/submodules/nios_system_addr_router_001.sv" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_addr_router_001.sv" 45 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609945330 ""} { "Info" "ISGN_ENTITY_NAME" "2 nios_system_addr_router_001 " "Found entity 2: nios_system_addr_router_001" { } { { "db/ip/nios_system/submodules/nios_system_addr_router_001.sv" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_addr_router_001.sv" 86 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609945330 ""} } { } 0 12021 "Found %2!llu! design units, including %3!llu! entities, in source file %1!s!" 0 0 "Quartus II" 0 -1 1480609945330 ""} +{ "Info" "ISGN_NUM_OF_DESIGN_UNITS_AND_ENTITIES" "db/ip/nios_system/submodules/nios_system_cmd_xbar_demux.sv 1 1 " "Found 1 design units, including 1 entities, in source file db/ip/nios_system/submodules/nios_system_cmd_xbar_demux.sv" { { "Info" "ISGN_ENTITY_NAME" "1 nios_system_cmd_xbar_demux " "Found entity 1: nios_system_cmd_xbar_demux" { } { { "db/ip/nios_system/submodules/nios_system_cmd_xbar_demux.sv" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_cmd_xbar_demux.sv" 43 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609945334 ""} } { } 0 12021 "Found %2!llu! design units, including %3!llu! entities, in source file %1!s!" 0 0 "Quartus II" 0 -1 1480609945334 ""} +{ "Info" "ISGN_NUM_OF_DESIGN_UNITS_AND_ENTITIES" "db/ip/nios_system/submodules/nios_system_cmd_xbar_demux_001.sv 1 1 " "Found 1 design units, including 1 entities, in source file db/ip/nios_system/submodules/nios_system_cmd_xbar_demux_001.sv" { { "Info" "ISGN_ENTITY_NAME" "1 nios_system_cmd_xbar_demux_001 " "Found entity 1: nios_system_cmd_xbar_demux_001" { } { { "db/ip/nios_system/submodules/nios_system_cmd_xbar_demux_001.sv" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_cmd_xbar_demux_001.sv" 43 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609945337 ""} } { } 0 12021 "Found %2!llu! design units, including %3!llu! entities, in source file %1!s!" 0 0 "Quartus II" 0 -1 1480609945337 ""} +{ "Info" "ISGN_NUM_OF_DESIGN_UNITS_AND_ENTITIES" "db/ip/nios_system/submodules/nios_system_cmd_xbar_mux.sv 1 1 " "Found 1 design units, including 1 entities, in source file db/ip/nios_system/submodules/nios_system_cmd_xbar_mux.sv" { { "Info" "ISGN_ENTITY_NAME" "1 nios_system_cmd_xbar_mux " "Found entity 1: nios_system_cmd_xbar_mux" { } { { "db/ip/nios_system/submodules/nios_system_cmd_xbar_mux.sv" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_cmd_xbar_mux.sv" 38 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609945340 ""} } { } 0 12021 "Found %2!llu! design units, including %3!llu! entities, in source file %1!s!" 0 0 "Quartus II" 0 -1 1480609945340 ""} +{ "Info" "ISGN_NUM_OF_DESIGN_UNITS_AND_ENTITIES" "db/ip/nios_system/submodules/nios_system_hex0.v 1 1 " "Found 1 design units, including 1 entities, in source file db/ip/nios_system/submodules/nios_system_hex0.v" { { "Info" "ISGN_ENTITY_NAME" "1 nios_system_hex0 " "Found entity 1: nios_system_hex0" { } { { "db/ip/nios_system/submodules/nios_system_hex0.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_hex0.v" 21 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609945344 ""} } { } 0 12021 "Found %2!llu! design units, including %3!llu! entities, in source file %1!s!" 0 0 "Quartus II" 0 -1 1480609945344 ""} +{ "Info" "IVRFX_L3_VERI_OBJ_DIFF_ONLY_IN_CASE" "DEFAULT_WR_CHANNEL default_wr_channel nios_system_id_router.sv(48) " "Verilog HDL Declaration information at nios_system_id_router.sv(48): object \"DEFAULT_WR_CHANNEL\" differs only in case from object \"default_wr_channel\" in the same scope" { } { { "db/ip/nios_system/submodules/nios_system_id_router.sv" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_id_router.sv" 48 0 0 } } } 0 10281 "Verilog HDL Declaration information at %3!s!: object \"%1!s!\" differs only in case from object \"%2!s!\" in the same scope" 1 0 "Quartus II" 0 -1 1480609945346 ""} +{ "Info" "IVRFX_L3_VERI_OBJ_DIFF_ONLY_IN_CASE" "DEFAULT_RD_CHANNEL default_rd_channel nios_system_id_router.sv(49) " "Verilog HDL Declaration information at nios_system_id_router.sv(49): object \"DEFAULT_RD_CHANNEL\" differs only in case from object \"default_rd_channel\" in the same scope" { } { { "db/ip/nios_system/submodules/nios_system_id_router.sv" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_id_router.sv" 49 0 0 } } } 0 10281 "Verilog HDL Declaration information at %3!s!: object \"%1!s!\" differs only in case from object \"%2!s!\" in the same scope" 1 0 "Quartus II" 0 -1 1480609945346 ""} +{ "Info" "ISGN_NUM_OF_DESIGN_UNITS_AND_ENTITIES" "db/ip/nios_system/submodules/nios_system_id_router.sv 2 2 " "Found 2 design units, including 2 entities, in source file db/ip/nios_system/submodules/nios_system_id_router.sv" { { "Info" "ISGN_ENTITY_NAME" "1 nios_system_id_router_default_decode " "Found entity 1: nios_system_id_router_default_decode" { } { { "db/ip/nios_system/submodules/nios_system_id_router.sv" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_id_router.sv" 45 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609945347 ""} { "Info" "ISGN_ENTITY_NAME" "2 nios_system_id_router " "Found entity 2: nios_system_id_router" { } { { "db/ip/nios_system/submodules/nios_system_id_router.sv" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_id_router.sv" 86 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609945347 ""} } { } 0 12021 "Found %2!llu! design units, including %3!llu! entities, in source file %1!s!" 0 0 "Quartus II" 0 -1 1480609945347 ""} +{ "Info" "IVRFX_L3_VERI_OBJ_DIFF_ONLY_IN_CASE" "DEFAULT_WR_CHANNEL default_wr_channel nios_system_id_router_002.sv(48) " "Verilog HDL Declaration information at nios_system_id_router_002.sv(48): object \"DEFAULT_WR_CHANNEL\" differs only in case from object \"default_wr_channel\" in the same scope" { } { { "db/ip/nios_system/submodules/nios_system_id_router_002.sv" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_id_router_002.sv" 48 0 0 } } } 0 10281 "Verilog HDL Declaration information at %3!s!: object \"%1!s!\" differs only in case from object \"%2!s!\" in the same scope" 1 0 "Quartus II" 0 -1 1480609945350 ""} +{ "Info" "IVRFX_L3_VERI_OBJ_DIFF_ONLY_IN_CASE" "DEFAULT_RD_CHANNEL default_rd_channel nios_system_id_router_002.sv(49) " "Verilog HDL Declaration information at nios_system_id_router_002.sv(49): object \"DEFAULT_RD_CHANNEL\" differs only in case from object \"default_rd_channel\" in the same scope" { } { { "db/ip/nios_system/submodules/nios_system_id_router_002.sv" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_id_router_002.sv" 49 0 0 } } } 0 10281 "Verilog HDL Declaration information at %3!s!: object \"%1!s!\" differs only in case from object \"%2!s!\" in the same scope" 1 0 "Quartus II" 0 -1 1480609945350 ""} +{ "Info" "ISGN_NUM_OF_DESIGN_UNITS_AND_ENTITIES" "db/ip/nios_system/submodules/nios_system_id_router_002.sv 2 2 " "Found 2 design units, including 2 entities, in source file db/ip/nios_system/submodules/nios_system_id_router_002.sv" { { "Info" "ISGN_ENTITY_NAME" "1 nios_system_id_router_002_default_decode " "Found entity 1: nios_system_id_router_002_default_decode" { } { { "db/ip/nios_system/submodules/nios_system_id_router_002.sv" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_id_router_002.sv" 45 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609945351 ""} { "Info" "ISGN_ENTITY_NAME" "2 nios_system_id_router_002 " "Found entity 2: nios_system_id_router_002" { } { { "db/ip/nios_system/submodules/nios_system_id_router_002.sv" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_id_router_002.sv" 86 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609945351 ""} } { } 0 12021 "Found %2!llu! design units, including %3!llu! entities, in source file %1!s!" 0 0 "Quartus II" 0 -1 1480609945351 ""} +{ "Info" "ISGN_NUM_OF_DESIGN_UNITS_AND_ENTITIES" "db/ip/nios_system/submodules/nios_system_irq_mapper.sv 1 1 " "Found 1 design units, including 1 entities, in source file db/ip/nios_system/submodules/nios_system_irq_mapper.sv" { { "Info" "ISGN_ENTITY_NAME" "1 nios_system_irq_mapper " "Found entity 1: nios_system_irq_mapper" { } { { "db/ip/nios_system/submodules/nios_system_irq_mapper.sv" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_irq_mapper.sv" 31 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609945354 ""} } { } 0 12021 "Found %2!llu! design units, including %3!llu! entities, in source file %1!s!" 0 0 "Quartus II" 0 -1 1480609945354 ""} +{ "Info" "ISGN_NUM_OF_DESIGN_UNITS_AND_ENTITIES" "db/ip/nios_system/submodules/nios_system_jtag_uart.v 5 5 " "Found 5 design units, including 5 entities, in source file db/ip/nios_system/submodules/nios_system_jtag_uart.v" { { "Info" "ISGN_ENTITY_NAME" "1 nios_system_jtag_uart_sim_scfifo_w " "Found entity 1: nios_system_jtag_uart_sim_scfifo_w" { } { { "db/ip/nios_system/submodules/nios_system_jtag_uart.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_jtag_uart.v" 21 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609945358 ""} { "Info" "ISGN_ENTITY_NAME" "2 nios_system_jtag_uart_scfifo_w " "Found entity 2: nios_system_jtag_uart_scfifo_w" { } { { "db/ip/nios_system/submodules/nios_system_jtag_uart.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_jtag_uart.v" 77 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609945358 ""} { "Info" "ISGN_ENTITY_NAME" "3 nios_system_jtag_uart_sim_scfifo_r " "Found entity 3: nios_system_jtag_uart_sim_scfifo_r" { } { { "db/ip/nios_system/submodules/nios_system_jtag_uart.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_jtag_uart.v" 162 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609945358 ""} { "Info" "ISGN_ENTITY_NAME" "4 nios_system_jtag_uart_scfifo_r " "Found entity 4: nios_system_jtag_uart_scfifo_r" { } { { "db/ip/nios_system/submodules/nios_system_jtag_uart.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_jtag_uart.v" 240 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609945358 ""} { "Info" "ISGN_ENTITY_NAME" "5 nios_system_jtag_uart " "Found entity 5: nios_system_jtag_uart" { } { { "db/ip/nios_system/submodules/nios_system_jtag_uart.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_jtag_uart.v" 327 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609945358 ""} } { } 0 12021 "Found %2!llu! design units, including %3!llu! entities, in source file %1!s!" 0 0 "Quartus II" 0 -1 1480609945358 ""} +{ "Info" "ISGN_NUM_OF_DESIGN_UNITS_AND_ENTITIES" "db/ip/nios_system/submodules/nios_system_lcd_16207_0.v 1 1 " "Found 1 design units, including 1 entities, in source file db/ip/nios_system/submodules/nios_system_lcd_16207_0.v" { { "Info" "ISGN_ENTITY_NAME" "1 nios_system_lcd_16207_0 " "Found entity 1: nios_system_lcd_16207_0" { } { { "db/ip/nios_system/submodules/nios_system_lcd_16207_0.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_lcd_16207_0.v" 21 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609945361 ""} } { } 0 12021 "Found %2!llu! design units, including %3!llu! entities, in source file %1!s!" 0 0 "Quartus II" 0 -1 1480609945361 ""} +{ "Info" "ISGN_NUM_OF_DESIGN_UNITS_AND_ENTITIES" "db/ip/nios_system/submodules/nios_system_lcd_on.v 1 1 " "Found 1 design units, including 1 entities, in source file db/ip/nios_system/submodules/nios_system_lcd_on.v" { { "Info" "ISGN_ENTITY_NAME" "1 nios_system_lcd_on " "Found entity 1: nios_system_lcd_on" { } { { "db/ip/nios_system/submodules/nios_system_lcd_on.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_lcd_on.v" 21 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609945364 ""} } { } 0 12021 "Found %2!llu! design units, including %3!llu! entities, in source file %1!s!" 0 0 "Quartus II" 0 -1 1480609945364 ""} +{ "Info" "ISGN_NUM_OF_DESIGN_UNITS_AND_ENTITIES" "db/ip/nios_system/submodules/nios_system_nios2_processor.v 21 21 " "Found 21 design units, including 21 entities, in source file db/ip/nios_system/submodules/nios_system_nios2_processor.v" { { "Info" "ISGN_ENTITY_NAME" "1 nios_system_nios2_processor_register_bank_a_module " "Found entity 1: nios_system_nios2_processor_register_bank_a_module" { } { { "db/ip/nios_system/submodules/nios_system_nios2_processor.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor.v" 21 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609945382 ""} { "Info" "ISGN_ENTITY_NAME" "2 nios_system_nios2_processor_register_bank_b_module " "Found entity 2: nios_system_nios2_processor_register_bank_b_module" { } { { "db/ip/nios_system/submodules/nios_system_nios2_processor.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor.v" 84 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609945382 ""} { "Info" "ISGN_ENTITY_NAME" "3 nios_system_nios2_processor_nios2_oci_debug " "Found entity 3: nios_system_nios2_processor_nios2_oci_debug" { } { { "db/ip/nios_system/submodules/nios_system_nios2_processor.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor.v" 147 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609945382 ""} { "Info" "ISGN_ENTITY_NAME" "4 nios_system_nios2_processor_ociram_sp_ram_module " "Found entity 4: nios_system_nios2_processor_ociram_sp_ram_module" { } { { "db/ip/nios_system/submodules/nios_system_nios2_processor.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor.v" 288 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609945382 ""} { "Info" "ISGN_ENTITY_NAME" "5 nios_system_nios2_processor_nios2_ocimem " "Found entity 5: nios_system_nios2_processor_nios2_ocimem" { } { { "db/ip/nios_system/submodules/nios_system_nios2_processor.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor.v" 346 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609945382 ""} { "Info" "ISGN_ENTITY_NAME" "6 nios_system_nios2_processor_nios2_avalon_reg " "Found entity 6: nios_system_nios2_processor_nios2_avalon_reg" { } { { "db/ip/nios_system/submodules/nios_system_nios2_processor.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor.v" 524 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609945382 ""} { "Info" "ISGN_ENTITY_NAME" "7 nios_system_nios2_processor_nios2_oci_break " "Found entity 7: nios_system_nios2_processor_nios2_oci_break" { } { { "db/ip/nios_system/submodules/nios_system_nios2_processor.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor.v" 616 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609945382 ""} { "Info" "ISGN_ENTITY_NAME" "8 nios_system_nios2_processor_nios2_oci_xbrk " "Found entity 8: nios_system_nios2_processor_nios2_oci_xbrk" { } { { "db/ip/nios_system/submodules/nios_system_nios2_processor.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor.v" 910 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609945382 ""} { "Info" "ISGN_ENTITY_NAME" "9 nios_system_nios2_processor_nios2_oci_dbrk " "Found entity 9: nios_system_nios2_processor_nios2_oci_dbrk" { } { { "db/ip/nios_system/submodules/nios_system_nios2_processor.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor.v" 1116 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609945382 ""} { "Info" "ISGN_ENTITY_NAME" "10 nios_system_nios2_processor_nios2_oci_itrace " "Found entity 10: nios_system_nios2_processor_nios2_oci_itrace" { } { { "db/ip/nios_system/submodules/nios_system_nios2_processor.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor.v" 1302 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609945382 ""} { "Info" "ISGN_ENTITY_NAME" "11 nios_system_nios2_processor_nios2_oci_td_mode " "Found entity 11: nios_system_nios2_processor_nios2_oci_td_mode" { } { { "db/ip/nios_system/submodules/nios_system_nios2_processor.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor.v" 1599 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609945382 ""} { "Info" "ISGN_ENTITY_NAME" "12 nios_system_nios2_processor_nios2_oci_dtrace " "Found entity 12: nios_system_nios2_processor_nios2_oci_dtrace" { } { { "db/ip/nios_system/submodules/nios_system_nios2_processor.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor.v" 1666 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609945382 ""} { "Info" "ISGN_ENTITY_NAME" "13 nios_system_nios2_processor_nios2_oci_compute_tm_count " "Found entity 13: nios_system_nios2_processor_nios2_oci_compute_tm_count" { } { { "db/ip/nios_system/submodules/nios_system_nios2_processor.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor.v" 1760 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609945382 ""} { "Info" "ISGN_ENTITY_NAME" "14 nios_system_nios2_processor_nios2_oci_fifowp_inc " "Found entity 14: nios_system_nios2_processor_nios2_oci_fifowp_inc" { } { { "db/ip/nios_system/submodules/nios_system_nios2_processor.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor.v" 1831 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609945382 ""} { "Info" "ISGN_ENTITY_NAME" "15 nios_system_nios2_processor_nios2_oci_fifocount_inc " "Found entity 15: nios_system_nios2_processor_nios2_oci_fifocount_inc" { } { { "db/ip/nios_system/submodules/nios_system_nios2_processor.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor.v" 1873 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609945382 ""} { "Info" "ISGN_ENTITY_NAME" "16 nios_system_nios2_processor_nios2_oci_fifo " "Found entity 16: nios_system_nios2_processor_nios2_oci_fifo" { } { { "db/ip/nios_system/submodules/nios_system_nios2_processor.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor.v" 1919 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609945382 ""} { "Info" "ISGN_ENTITY_NAME" "17 nios_system_nios2_processor_nios2_oci_pib " "Found entity 17: nios_system_nios2_processor_nios2_oci_pib" { } { { "db/ip/nios_system/submodules/nios_system_nios2_processor.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor.v" 2424 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609945382 ""} { "Info" "ISGN_ENTITY_NAME" "18 nios_system_nios2_processor_nios2_oci_im " "Found entity 18: nios_system_nios2_processor_nios2_oci_im" { } { { "db/ip/nios_system/submodules/nios_system_nios2_processor.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor.v" 2492 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609945382 ""} { "Info" "ISGN_ENTITY_NAME" "19 nios_system_nios2_processor_nios2_performance_monitors " "Found entity 19: nios_system_nios2_processor_nios2_performance_monitors" { } { { "db/ip/nios_system/submodules/nios_system_nios2_processor.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor.v" 2608 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609945382 ""} { "Info" "ISGN_ENTITY_NAME" "20 nios_system_nios2_processor_nios2_oci " "Found entity 20: nios_system_nios2_processor_nios2_oci" { } { { "db/ip/nios_system/submodules/nios_system_nios2_processor.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor.v" 2624 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609945382 ""} { "Info" "ISGN_ENTITY_NAME" "21 nios_system_nios2_processor " "Found entity 21: nios_system_nios2_processor" { } { { "db/ip/nios_system/submodules/nios_system_nios2_processor.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor.v" 3129 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609945382 ""} } { } 0 12021 "Found %2!llu! design units, including %3!llu! entities, in source file %1!s!" 0 0 "Quartus II" 0 -1 1480609945382 ""} +{ "Info" "ISGN_NUM_OF_DESIGN_UNITS_AND_ENTITIES" "db/ip/nios_system/submodules/nios_system_nios2_processor_jtag_debug_module_sysclk.v 1 1 " "Found 1 design units, including 1 entities, in source file db/ip/nios_system/submodules/nios_system_nios2_processor_jtag_debug_module_sysclk.v" { { "Info" "ISGN_ENTITY_NAME" "1 nios_system_nios2_processor_jtag_debug_module_sysclk " "Found entity 1: nios_system_nios2_processor_jtag_debug_module_sysclk" { } { { "db/ip/nios_system/submodules/nios_system_nios2_processor_jtag_debug_module_sysclk.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor_jtag_debug_module_sysclk.v" 21 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609945387 ""} } { } 0 12021 "Found %2!llu! design units, including %3!llu! entities, in source file %1!s!" 0 0 "Quartus II" 0 -1 1480609945387 ""} +{ "Info" "ISGN_NUM_OF_DESIGN_UNITS_AND_ENTITIES" "db/ip/nios_system/submodules/nios_system_nios2_processor_jtag_debug_module_tck.v 1 1 " "Found 1 design units, including 1 entities, in source file db/ip/nios_system/submodules/nios_system_nios2_processor_jtag_debug_module_tck.v" { { "Info" "ISGN_ENTITY_NAME" "1 nios_system_nios2_processor_jtag_debug_module_tck " "Found entity 1: nios_system_nios2_processor_jtag_debug_module_tck" { } { { "db/ip/nios_system/submodules/nios_system_nios2_processor_jtag_debug_module_tck.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor_jtag_debug_module_tck.v" 21 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609945390 ""} } { } 0 12021 "Found %2!llu! design units, including %3!llu! entities, in source file %1!s!" 0 0 "Quartus II" 0 -1 1480609945390 ""} +{ "Info" "ISGN_NUM_OF_DESIGN_UNITS_AND_ENTITIES" "db/ip/nios_system/submodules/nios_system_nios2_processor_jtag_debug_module_wrapper.v 1 1 " "Found 1 design units, including 1 entities, in source file db/ip/nios_system/submodules/nios_system_nios2_processor_jtag_debug_module_wrapper.v" { { "Info" "ISGN_ENTITY_NAME" "1 nios_system_nios2_processor_jtag_debug_module_wrapper " "Found entity 1: nios_system_nios2_processor_jtag_debug_module_wrapper" { } { { "db/ip/nios_system/submodules/nios_system_nios2_processor_jtag_debug_module_wrapper.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor_jtag_debug_module_wrapper.v" 21 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609945394 ""} } { } 0 12021 "Found %2!llu! design units, including %3!llu! entities, in source file %1!s!" 0 0 "Quartus II" 0 -1 1480609945394 ""} +{ "Info" "ISGN_NUM_OF_DESIGN_UNITS_AND_ENTITIES" "db/ip/nios_system/submodules/nios_system_nios2_processor_oci_test_bench.v 1 1 " "Found 1 design units, including 1 entities, in source file db/ip/nios_system/submodules/nios_system_nios2_processor_oci_test_bench.v" { { "Info" "ISGN_ENTITY_NAME" "1 nios_system_nios2_processor_oci_test_bench " "Found entity 1: nios_system_nios2_processor_oci_test_bench" { } { { "db/ip/nios_system/submodules/nios_system_nios2_processor_oci_test_bench.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor_oci_test_bench.v" 21 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609945397 ""} } { } 0 12021 "Found %2!llu! design units, including %3!llu! entities, in source file %1!s!" 0 0 "Quartus II" 0 -1 1480609945397 ""} +{ "Info" "ISGN_NUM_OF_DESIGN_UNITS_AND_ENTITIES" "db/ip/nios_system/submodules/nios_system_nios2_processor_test_bench.v 1 1 " "Found 1 design units, including 1 entities, in source file db/ip/nios_system/submodules/nios_system_nios2_processor_test_bench.v" { { "Info" "ISGN_ENTITY_NAME" "1 nios_system_nios2_processor_test_bench " "Found entity 1: nios_system_nios2_processor_test_bench" { } { { "db/ip/nios_system/submodules/nios_system_nios2_processor_test_bench.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor_test_bench.v" 21 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609945401 ""} } { } 0 12021 "Found %2!llu! design units, including %3!llu! entities, in source file %1!s!" 0 0 "Quartus II" 0 -1 1480609945401 ""} +{ "Info" "ISGN_NUM_OF_DESIGN_UNITS_AND_ENTITIES" "db/ip/nios_system/submodules/nios_system_onchip_memory.v 1 1 " "Found 1 design units, including 1 entities, in source file db/ip/nios_system/submodules/nios_system_onchip_memory.v" { { "Info" "ISGN_ENTITY_NAME" "1 nios_system_onchip_memory " "Found entity 1: nios_system_onchip_memory" { } { { "db/ip/nios_system/submodules/nios_system_onchip_memory.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_onchip_memory.v" 21 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609945404 ""} } { } 0 12021 "Found %2!llu! design units, including %3!llu! entities, in source file %1!s!" 0 0 "Quartus II" 0 -1 1480609945404 ""} +{ "Info" "ISGN_NUM_OF_DESIGN_UNITS_AND_ENTITIES" "db/ip/nios_system/submodules/nios_system_push_switches.v 1 1 " "Found 1 design units, including 1 entities, in source file db/ip/nios_system/submodules/nios_system_push_switches.v" { { "Info" "ISGN_ENTITY_NAME" "1 nios_system_push_switches " "Found entity 1: nios_system_push_switches" { } { { "db/ip/nios_system/submodules/nios_system_push_switches.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_push_switches.v" 21 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609945408 ""} } { } 0 12021 "Found %2!llu! design units, including %3!llu! entities, in source file %1!s!" 0 0 "Quartus II" 0 -1 1480609945408 ""} +{ "Info" "ISGN_NUM_OF_DESIGN_UNITS_AND_ENTITIES" "db/ip/nios_system/submodules/nios_system_rsp_xbar_demux_002.sv 1 1 " "Found 1 design units, including 1 entities, in source file db/ip/nios_system/submodules/nios_system_rsp_xbar_demux_002.sv" { { "Info" "ISGN_ENTITY_NAME" "1 nios_system_rsp_xbar_demux_002 " "Found entity 1: nios_system_rsp_xbar_demux_002" { } { { "db/ip/nios_system/submodules/nios_system_rsp_xbar_demux_002.sv" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_rsp_xbar_demux_002.sv" 43 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609945411 ""} } { } 0 12021 "Found %2!llu! design units, including %3!llu! entities, in source file %1!s!" 0 0 "Quartus II" 0 -1 1480609945411 ""} +{ "Info" "ISGN_NUM_OF_DESIGN_UNITS_AND_ENTITIES" "db/ip/nios_system/submodules/nios_system_rsp_xbar_mux.sv 1 1 " "Found 1 design units, including 1 entities, in source file db/ip/nios_system/submodules/nios_system_rsp_xbar_mux.sv" { { "Info" "ISGN_ENTITY_NAME" "1 nios_system_rsp_xbar_mux " "Found entity 1: nios_system_rsp_xbar_mux" { } { { "db/ip/nios_system/submodules/nios_system_rsp_xbar_mux.sv" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_rsp_xbar_mux.sv" 38 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609945414 ""} } { } 0 12021 "Found %2!llu! design units, including %3!llu! entities, in source file %1!s!" 0 0 "Quartus II" 0 -1 1480609945414 ""} +{ "Info" "ISGN_NUM_OF_DESIGN_UNITS_AND_ENTITIES" "db/ip/nios_system/submodules/nios_system_rsp_xbar_mux_001.sv 1 1 " "Found 1 design units, including 1 entities, in source file db/ip/nios_system/submodules/nios_system_rsp_xbar_mux_001.sv" { { "Info" "ISGN_ENTITY_NAME" "1 nios_system_rsp_xbar_mux_001 " "Found entity 1: nios_system_rsp_xbar_mux_001" { } { { "db/ip/nios_system/submodules/nios_system_rsp_xbar_mux_001.sv" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_rsp_xbar_mux_001.sv" 38 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609945418 ""} } { } 0 12021 "Found %2!llu! design units, including %3!llu! entities, in source file %1!s!" 0 0 "Quartus II" 0 -1 1480609945418 ""} +{ "Info" "ISGN_NUM_OF_DESIGN_UNITS_AND_ENTITIES" "db/ip/nios_system/submodules/nios_system_switches.v 1 1 " "Found 1 design units, including 1 entities, in source file db/ip/nios_system/submodules/nios_system_switches.v" { { "Info" "ISGN_ENTITY_NAME" "1 nios_system_switches " "Found entity 1: nios_system_switches" { } { { "db/ip/nios_system/submodules/nios_system_switches.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_switches.v" 21 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609945421 ""} } { } 0 12021 "Found %2!llu! design units, including %3!llu! entities, in source file %1!s!" 0 0 "Quartus II" 0 -1 1480609945421 ""} +{ "Warning" "WVRFX_L2_HDL_CONDITION_EXP_IS_CONST" "nios_system_nios2_processor.v(1567) " "Verilog HDL or VHDL warning at nios_system_nios2_processor.v(1567): conditional expression evaluates to a constant" { } { { "db/ip/nios_system/submodules/nios_system_nios2_processor.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor.v" 1567 0 0 } } } 0 10037 "Verilog HDL or VHDL warning at %1!s!: conditional expression evaluates to a constant" 1 0 "Quartus II" 0 -1 1480609945438 ""} +{ "Warning" "WVRFX_L2_HDL_CONDITION_EXP_IS_CONST" "nios_system_nios2_processor.v(1569) " "Verilog HDL or VHDL warning at nios_system_nios2_processor.v(1569): conditional expression evaluates to a constant" { } { { "db/ip/nios_system/submodules/nios_system_nios2_processor.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor.v" 1569 0 0 } } } 0 10037 "Verilog HDL or VHDL warning at %1!s!: conditional expression evaluates to a constant" 1 0 "Quartus II" 0 -1 1480609945438 ""} +{ "Warning" "WVRFX_L2_HDL_CONDITION_EXP_IS_CONST" "nios_system_nios2_processor.v(1725) " "Verilog HDL or VHDL warning at nios_system_nios2_processor.v(1725): conditional expression evaluates to a constant" { } { { "db/ip/nios_system/submodules/nios_system_nios2_processor.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor.v" 1725 0 0 } } } 0 10037 "Verilog HDL or VHDL warning at %1!s!: conditional expression evaluates to a constant" 1 0 "Quartus II" 0 -1 1480609945439 ""} +{ "Warning" "WVRFX_L2_HDL_CONDITION_EXP_IS_CONST" "nios_system_nios2_processor.v(2553) " "Verilog HDL or VHDL warning at nios_system_nios2_processor.v(2553): conditional expression evaluates to a constant" { } { { "db/ip/nios_system/submodules/nios_system_nios2_processor.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor.v" 2553 0 0 } } } 0 10037 "Verilog HDL or VHDL warning at %1!s!: conditional expression evaluates to a constant" 1 0 "Quartus II" 0 -1 1480609945442 ""} +{ "Info" "ISGN_START_ELABORATION_TOP" "lights " "Elaborating entity \"lights\" for the top level hierarchy" { } { } 0 12127 "Elaborating entity \"%1!s!\" for the top level hierarchy" 0 0 "Quartus II" 0 -1 1480609945570 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "nios_system nios_system:NiosII " "Elaborating entity \"nios_system\" for hierarchy \"nios_system:NiosII\"" { } { { "lights.vhd" "NiosII" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/lights.vhd" 53 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609945593 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "nios_system_nios2_processor nios_system:NiosII\|nios_system_nios2_processor:nios2_processor " "Elaborating entity \"nios_system_nios2_processor\" for hierarchy \"nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\"" { } { { "nios_system/synthesis/nios_system.v" "nios2_processor" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/synthesis/nios_system.v" 1103 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609945652 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "nios_system_nios2_processor_test_bench nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_test_bench:the_nios_system_nios2_processor_test_bench " "Elaborating entity \"nios_system_nios2_processor_test_bench\" for hierarchy \"nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_test_bench:the_nios_system_nios2_processor_test_bench\"" { } { { "db/ip/nios_system/submodules/nios_system_nios2_processor.v" "the_nios_system_nios2_processor_test_bench" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor.v" 3794 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609945664 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "nios_system_nios2_processor_register_bank_a_module nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_register_bank_a_module:nios_system_nios2_processor_register_bank_a " "Elaborating entity \"nios_system_nios2_processor_register_bank_a_module\" for hierarchy \"nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_register_bank_a_module:nios_system_nios2_processor_register_bank_a\"" { } { { "db/ip/nios_system/submodules/nios_system_nios2_processor.v" "nios_system_nios2_processor_register_bank_a" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor.v" 4279 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609945668 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "altsyncram nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_register_bank_a_module:nios_system_nios2_processor_register_bank_a\|altsyncram:the_altsyncram " "Elaborating entity \"altsyncram\" for hierarchy \"nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_register_bank_a_module:nios_system_nios2_processor_register_bank_a\|altsyncram:the_altsyncram\"" { } { { "db/ip/nios_system/submodules/nios_system_nios2_processor.v" "the_altsyncram" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor.v" 55 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609945706 ""} +{ "Info" "ISGN_ELABORATION_HEADER" "nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_register_bank_a_module:nios_system_nios2_processor_register_bank_a\|altsyncram:the_altsyncram " "Elaborated megafunction instantiation \"nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_register_bank_a_module:nios_system_nios2_processor_register_bank_a\|altsyncram:the_altsyncram\"" { } { { "db/ip/nios_system/submodules/nios_system_nios2_processor.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor.v" 55 0 0 } } } 0 12130 "Elaborated megafunction instantiation \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609945708 ""} +{ "Info" "ISGN_MEGAFN_PARAM_TOP" "nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_register_bank_a_module:nios_system_nios2_processor_register_bank_a\|altsyncram:the_altsyncram " "Instantiated megafunction \"nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_register_bank_a_module:nios_system_nios2_processor_register_bank_a\|altsyncram:the_altsyncram\" with the following parameter:" { { "Info" "ISGN_MEGAFN_PARAM_SUB" "address_reg_b CLOCK0 " "Parameter \"address_reg_b\" = \"CLOCK0\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609945708 ""} { "Info" "ISGN_MEGAFN_PARAM_SUB" "init_file nios_system_nios2_processor_rf_ram_a.mif " "Parameter \"init_file\" = \"nios_system_nios2_processor_rf_ram_a.mif\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609945708 ""} { "Info" "ISGN_MEGAFN_PARAM_SUB" "maximum_depth 0 " "Parameter \"maximum_depth\" = \"0\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609945708 ""} { "Info" "ISGN_MEGAFN_PARAM_SUB" "numwords_a 32 " "Parameter \"numwords_a\" = \"32\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609945708 ""} { "Info" "ISGN_MEGAFN_PARAM_SUB" "numwords_b 32 " "Parameter \"numwords_b\" = \"32\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609945708 ""} { "Info" "ISGN_MEGAFN_PARAM_SUB" "operation_mode DUAL_PORT " "Parameter \"operation_mode\" = \"DUAL_PORT\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609945708 ""} { "Info" "ISGN_MEGAFN_PARAM_SUB" "outdata_reg_b UNREGISTERED " "Parameter \"outdata_reg_b\" = \"UNREGISTERED\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609945708 ""} { "Info" "ISGN_MEGAFN_PARAM_SUB" "ram_block_type AUTO " "Parameter \"ram_block_type\" = \"AUTO\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609945708 ""} { "Info" "ISGN_MEGAFN_PARAM_SUB" "rdcontrol_reg_b CLOCK0 " "Parameter \"rdcontrol_reg_b\" = \"CLOCK0\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609945708 ""} { "Info" "ISGN_MEGAFN_PARAM_SUB" "read_during_write_mode_mixed_ports DONT_CARE " "Parameter \"read_during_write_mode_mixed_ports\" = \"DONT_CARE\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609945708 ""} { "Info" "ISGN_MEGAFN_PARAM_SUB" "width_a 32 " "Parameter \"width_a\" = \"32\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609945708 ""} { "Info" "ISGN_MEGAFN_PARAM_SUB" "width_b 32 " "Parameter \"width_b\" = \"32\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609945708 ""} { "Info" "ISGN_MEGAFN_PARAM_SUB" "widthad_a 5 " "Parameter \"widthad_a\" = \"5\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609945708 ""} { "Info" "ISGN_MEGAFN_PARAM_SUB" "widthad_b 5 " "Parameter \"widthad_b\" = \"5\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609945708 ""} } { { "db/ip/nios_system/submodules/nios_system_nios2_processor.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor.v" 55 0 0 } } } 0 12133 "Instantiated megafunction \"%1!s!\" with the following parameter:" 0 0 "Quartus II" 0 -1 1480609945708 ""} +{ "Info" "ISGN_NUM_OF_DESIGN_UNITS_AND_ENTITIES" "db/altsyncram_0rh1.tdf 1 1 " "Found 1 design units, including 1 entities, in source file db/altsyncram_0rh1.tdf" { { "Info" "ISGN_ENTITY_NAME" "1 altsyncram_0rh1 " "Found entity 1: altsyncram_0rh1" { } { { "db/altsyncram_0rh1.tdf" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/altsyncram_0rh1.tdf" 27 1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609945778 ""} } { } 0 12021 "Found %2!llu! design units, including %3!llu! entities, in source file %1!s!" 0 0 "Quartus II" 0 -1 1480609945778 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "altsyncram_0rh1 nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_register_bank_a_module:nios_system_nios2_processor_register_bank_a\|altsyncram:the_altsyncram\|altsyncram_0rh1:auto_generated " "Elaborating entity \"altsyncram_0rh1\" for hierarchy \"nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_register_bank_a_module:nios_system_nios2_processor_register_bank_a\|altsyncram:the_altsyncram\|altsyncram_0rh1:auto_generated\"" { } { { "altsyncram.tdf" "auto_generated" { Text "c:/altera/13.0sp1/quartus/libraries/megafunctions/altsyncram.tdf" 791 4 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609945780 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "nios_system_nios2_processor_register_bank_b_module nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_register_bank_b_module:nios_system_nios2_processor_register_bank_b " "Elaborating entity \"nios_system_nios2_processor_register_bank_b_module\" for hierarchy \"nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_register_bank_b_module:nios_system_nios2_processor_register_bank_b\"" { } { { "db/ip/nios_system/submodules/nios_system_nios2_processor.v" "nios_system_nios2_processor_register_bank_b" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor.v" 4300 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609945814 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "altsyncram nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_register_bank_b_module:nios_system_nios2_processor_register_bank_b\|altsyncram:the_altsyncram " "Elaborating entity \"altsyncram\" for hierarchy \"nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_register_bank_b_module:nios_system_nios2_processor_register_bank_b\|altsyncram:the_altsyncram\"" { } { { "db/ip/nios_system/submodules/nios_system_nios2_processor.v" "the_altsyncram" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor.v" 118 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609945823 ""} +{ "Info" "ISGN_ELABORATION_HEADER" "nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_register_bank_b_module:nios_system_nios2_processor_register_bank_b\|altsyncram:the_altsyncram " "Elaborated megafunction instantiation \"nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_register_bank_b_module:nios_system_nios2_processor_register_bank_b\|altsyncram:the_altsyncram\"" { } { { "db/ip/nios_system/submodules/nios_system_nios2_processor.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor.v" 118 0 0 } } } 0 12130 "Elaborated megafunction instantiation \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609945825 ""} +{ "Info" "ISGN_MEGAFN_PARAM_TOP" "nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_register_bank_b_module:nios_system_nios2_processor_register_bank_b\|altsyncram:the_altsyncram " "Instantiated megafunction \"nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_register_bank_b_module:nios_system_nios2_processor_register_bank_b\|altsyncram:the_altsyncram\" with the following parameter:" { { "Info" "ISGN_MEGAFN_PARAM_SUB" "address_reg_b CLOCK0 " "Parameter \"address_reg_b\" = \"CLOCK0\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609945825 ""} { "Info" "ISGN_MEGAFN_PARAM_SUB" "init_file nios_system_nios2_processor_rf_ram_b.mif " "Parameter \"init_file\" = \"nios_system_nios2_processor_rf_ram_b.mif\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609945825 ""} { "Info" "ISGN_MEGAFN_PARAM_SUB" "maximum_depth 0 " "Parameter \"maximum_depth\" = \"0\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609945825 ""} { "Info" "ISGN_MEGAFN_PARAM_SUB" "numwords_a 32 " "Parameter \"numwords_a\" = \"32\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609945825 ""} { "Info" "ISGN_MEGAFN_PARAM_SUB" "numwords_b 32 " "Parameter \"numwords_b\" = \"32\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609945825 ""} { "Info" "ISGN_MEGAFN_PARAM_SUB" "operation_mode DUAL_PORT " "Parameter \"operation_mode\" = \"DUAL_PORT\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609945825 ""} { "Info" "ISGN_MEGAFN_PARAM_SUB" "outdata_reg_b UNREGISTERED " "Parameter \"outdata_reg_b\" = \"UNREGISTERED\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609945825 ""} { "Info" "ISGN_MEGAFN_PARAM_SUB" "ram_block_type AUTO " "Parameter \"ram_block_type\" = \"AUTO\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609945825 ""} { "Info" "ISGN_MEGAFN_PARAM_SUB" "rdcontrol_reg_b CLOCK0 " "Parameter \"rdcontrol_reg_b\" = \"CLOCK0\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609945825 ""} { "Info" "ISGN_MEGAFN_PARAM_SUB" "read_during_write_mode_mixed_ports DONT_CARE " "Parameter \"read_during_write_mode_mixed_ports\" = \"DONT_CARE\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609945825 ""} { "Info" "ISGN_MEGAFN_PARAM_SUB" "width_a 32 " "Parameter \"width_a\" = \"32\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609945825 ""} { "Info" "ISGN_MEGAFN_PARAM_SUB" "width_b 32 " "Parameter \"width_b\" = \"32\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609945825 ""} { "Info" "ISGN_MEGAFN_PARAM_SUB" "widthad_a 5 " "Parameter \"widthad_a\" = \"5\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609945825 ""} { "Info" "ISGN_MEGAFN_PARAM_SUB" "widthad_b 5 " "Parameter \"widthad_b\" = \"5\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609945825 ""} } { { "db/ip/nios_system/submodules/nios_system_nios2_processor.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor.v" 118 0 0 } } } 0 12133 "Instantiated megafunction \"%1!s!\" with the following parameter:" 0 0 "Quartus II" 0 -1 1480609945825 ""} +{ "Info" "ISGN_NUM_OF_DESIGN_UNITS_AND_ENTITIES" "db/altsyncram_1rh1.tdf 1 1 " "Found 1 design units, including 1 entities, in source file db/altsyncram_1rh1.tdf" { { "Info" "ISGN_ENTITY_NAME" "1 altsyncram_1rh1 " "Found entity 1: altsyncram_1rh1" { } { { "db/altsyncram_1rh1.tdf" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/altsyncram_1rh1.tdf" 27 1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609945894 ""} } { } 0 12021 "Found %2!llu! design units, including %3!llu! entities, in source file %1!s!" 0 0 "Quartus II" 0 -1 1480609945894 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "altsyncram_1rh1 nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_register_bank_b_module:nios_system_nios2_processor_register_bank_b\|altsyncram:the_altsyncram\|altsyncram_1rh1:auto_generated " "Elaborating entity \"altsyncram_1rh1\" for hierarchy \"nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_register_bank_b_module:nios_system_nios2_processor_register_bank_b\|altsyncram:the_altsyncram\|altsyncram_1rh1:auto_generated\"" { } { { "altsyncram.tdf" "auto_generated" { Text "c:/altera/13.0sp1/quartus/libraries/megafunctions/altsyncram.tdf" 791 4 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609945896 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "nios_system_nios2_processor_nios2_oci nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci " "Elaborating entity \"nios_system_nios2_processor_nios2_oci\" for hierarchy \"nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\"" { } { { "db/ip/nios_system/submodules/nios_system_nios2_processor.v" "the_nios_system_nios2_processor_nios2_oci" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor.v" 4758 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609945929 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "nios_system_nios2_processor_nios2_oci_debug nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_nios2_oci_debug:the_nios_system_nios2_processor_nios2_oci_debug " "Elaborating entity \"nios_system_nios2_processor_nios2_oci_debug\" for hierarchy \"nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_nios2_oci_debug:the_nios_system_nios2_processor_nios2_oci_debug\"" { } { { "db/ip/nios_system/submodules/nios_system_nios2_processor.v" "the_nios_system_nios2_processor_nios2_oci_debug" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor.v" 2802 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609945936 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "altera_std_synchronizer nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_nios2_oci_debug:the_nios_system_nios2_processor_nios2_oci_debug\|altera_std_synchronizer:the_altera_std_synchronizer " "Elaborating entity \"altera_std_synchronizer\" for hierarchy \"nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_nios2_oci_debug:the_nios_system_nios2_processor_nios2_oci_debug\|altera_std_synchronizer:the_altera_std_synchronizer\"" { } { { "db/ip/nios_system/submodules/nios_system_nios2_processor.v" "the_altera_std_synchronizer" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor.v" 213 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609945949 ""} +{ "Info" "ISGN_ELABORATION_HEADER" "nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_nios2_oci_debug:the_nios_system_nios2_processor_nios2_oci_debug\|altera_std_synchronizer:the_altera_std_synchronizer " "Elaborated megafunction instantiation \"nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_nios2_oci_debug:the_nios_system_nios2_processor_nios2_oci_debug\|altera_std_synchronizer:the_altera_std_synchronizer\"" { } { { "db/ip/nios_system/submodules/nios_system_nios2_processor.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor.v" 213 0 0 } } } 0 12130 "Elaborated megafunction instantiation \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609945950 ""} +{ "Info" "ISGN_MEGAFN_PARAM_TOP" "nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_nios2_oci_debug:the_nios_system_nios2_processor_nios2_oci_debug\|altera_std_synchronizer:the_altera_std_synchronizer " "Instantiated megafunction \"nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_nios2_oci_debug:the_nios_system_nios2_processor_nios2_oci_debug\|altera_std_synchronizer:the_altera_std_synchronizer\" with the following parameter:" { { "Info" "ISGN_MEGAFN_PARAM_SUB" "depth 2 " "Parameter \"depth\" = \"2\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609945950 ""} } { { "db/ip/nios_system/submodules/nios_system_nios2_processor.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor.v" 213 0 0 } } } 0 12133 "Instantiated megafunction \"%1!s!\" with the following parameter:" 0 0 "Quartus II" 0 -1 1480609945950 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "nios_system_nios2_processor_nios2_ocimem nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_nios2_ocimem:the_nios_system_nios2_processor_nios2_ocimem " "Elaborating entity \"nios_system_nios2_processor_nios2_ocimem\" for hierarchy \"nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_nios2_ocimem:the_nios_system_nios2_processor_nios2_ocimem\"" { } { { "db/ip/nios_system/submodules/nios_system_nios2_processor.v" "the_nios_system_nios2_processor_nios2_ocimem" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor.v" 2821 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609945953 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "nios_system_nios2_processor_ociram_sp_ram_module nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_nios2_ocimem:the_nios_system_nios2_processor_nios2_ocimem\|nios_system_nios2_processor_ociram_sp_ram_module:nios_system_nios2_processor_ociram_sp_ram " "Elaborating entity \"nios_system_nios2_processor_ociram_sp_ram_module\" for hierarchy \"nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_nios2_ocimem:the_nios_system_nios2_processor_nios2_ocimem\|nios_system_nios2_processor_ociram_sp_ram_module:nios_system_nios2_processor_ociram_sp_ram\"" { } { { "db/ip/nios_system/submodules/nios_system_nios2_processor.v" "nios_system_nios2_processor_ociram_sp_ram" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor.v" 491 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609945958 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "altsyncram nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_nios2_ocimem:the_nios_system_nios2_processor_nios2_ocimem\|nios_system_nios2_processor_ociram_sp_ram_module:nios_system_nios2_processor_ociram_sp_ram\|altsyncram:the_altsyncram " "Elaborating entity \"altsyncram\" for hierarchy \"nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_nios2_ocimem:the_nios_system_nios2_processor_nios2_ocimem\|nios_system_nios2_processor_ociram_sp_ram_module:nios_system_nios2_processor_ociram_sp_ram\|altsyncram:the_altsyncram\"" { } { { "db/ip/nios_system/submodules/nios_system_nios2_processor.v" "the_altsyncram" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor.v" 322 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609945966 ""} +{ "Info" "ISGN_ELABORATION_HEADER" "nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_nios2_ocimem:the_nios_system_nios2_processor_nios2_ocimem\|nios_system_nios2_processor_ociram_sp_ram_module:nios_system_nios2_processor_ociram_sp_ram\|altsyncram:the_altsyncram " "Elaborated megafunction instantiation \"nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_nios2_ocimem:the_nios_system_nios2_processor_nios2_ocimem\|nios_system_nios2_processor_ociram_sp_ram_module:nios_system_nios2_processor_ociram_sp_ram\|altsyncram:the_altsyncram\"" { } { { "db/ip/nios_system/submodules/nios_system_nios2_processor.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor.v" 322 0 0 } } } 0 12130 "Elaborated megafunction instantiation \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609945968 ""} +{ "Info" "ISGN_MEGAFN_PARAM_TOP" "nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_nios2_ocimem:the_nios_system_nios2_processor_nios2_ocimem\|nios_system_nios2_processor_ociram_sp_ram_module:nios_system_nios2_processor_ociram_sp_ram\|altsyncram:the_altsyncram " "Instantiated megafunction \"nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_nios2_ocimem:the_nios_system_nios2_processor_nios2_ocimem\|nios_system_nios2_processor_ociram_sp_ram_module:nios_system_nios2_processor_ociram_sp_ram\|altsyncram:the_altsyncram\" with the following parameter:" { { "Info" "ISGN_MEGAFN_PARAM_SUB" "init_file nios_system_nios2_processor_ociram_default_contents.mif " "Parameter \"init_file\" = \"nios_system_nios2_processor_ociram_default_contents.mif\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609945968 ""} { "Info" "ISGN_MEGAFN_PARAM_SUB" "maximum_depth 0 " "Parameter \"maximum_depth\" = \"0\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609945968 ""} { "Info" "ISGN_MEGAFN_PARAM_SUB" "numwords_a 256 " "Parameter \"numwords_a\" = \"256\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609945968 ""} { "Info" "ISGN_MEGAFN_PARAM_SUB" "operation_mode SINGLE_PORT " "Parameter \"operation_mode\" = \"SINGLE_PORT\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609945968 ""} { "Info" "ISGN_MEGAFN_PARAM_SUB" "outdata_reg_a UNREGISTERED " "Parameter \"outdata_reg_a\" = \"UNREGISTERED\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609945968 ""} { "Info" "ISGN_MEGAFN_PARAM_SUB" "ram_block_type AUTO " "Parameter \"ram_block_type\" = \"AUTO\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609945968 ""} { "Info" "ISGN_MEGAFN_PARAM_SUB" "width_a 32 " "Parameter \"width_a\" = \"32\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609945968 ""} { "Info" "ISGN_MEGAFN_PARAM_SUB" "width_byteena_a 4 " "Parameter \"width_byteena_a\" = \"4\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609945968 ""} { "Info" "ISGN_MEGAFN_PARAM_SUB" "widthad_a 8 " "Parameter \"widthad_a\" = \"8\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609945968 ""} } { { "db/ip/nios_system/submodules/nios_system_nios2_processor.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor.v" 322 0 0 } } } 0 12133 "Instantiated megafunction \"%1!s!\" with the following parameter:" 0 0 "Quartus II" 0 -1 1480609945968 ""} +{ "Info" "ISGN_NUM_OF_DESIGN_UNITS_AND_ENTITIES" "db/altsyncram_4891.tdf 1 1 " "Found 1 design units, including 1 entities, in source file db/altsyncram_4891.tdf" { { "Info" "ISGN_ENTITY_NAME" "1 altsyncram_4891 " "Found entity 1: altsyncram_4891" { } { { "db/altsyncram_4891.tdf" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/altsyncram_4891.tdf" 27 1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609946033 ""} } { } 0 12021 "Found %2!llu! design units, including %3!llu! entities, in source file %1!s!" 0 0 "Quartus II" 0 -1 1480609946033 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "altsyncram_4891 nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_nios2_ocimem:the_nios_system_nios2_processor_nios2_ocimem\|nios_system_nios2_processor_ociram_sp_ram_module:nios_system_nios2_processor_ociram_sp_ram\|altsyncram:the_altsyncram\|altsyncram_4891:auto_generated " "Elaborating entity \"altsyncram_4891\" for hierarchy \"nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_nios2_ocimem:the_nios_system_nios2_processor_nios2_ocimem\|nios_system_nios2_processor_ociram_sp_ram_module:nios_system_nios2_processor_ociram_sp_ram\|altsyncram:the_altsyncram\|altsyncram_4891:auto_generated\"" { } { { "altsyncram.tdf" "auto_generated" { Text "c:/altera/13.0sp1/quartus/libraries/megafunctions/altsyncram.tdf" 791 4 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609946035 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "nios_system_nios2_processor_nios2_avalon_reg nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_nios2_avalon_reg:the_nios_system_nios2_processor_nios2_avalon_reg " "Elaborating entity \"nios_system_nios2_processor_nios2_avalon_reg\" for hierarchy \"nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_nios2_avalon_reg:the_nios_system_nios2_processor_nios2_avalon_reg\"" { } { { "db/ip/nios_system/submodules/nios_system_nios2_processor.v" "the_nios_system_nios2_processor_nios2_avalon_reg" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor.v" 2840 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609946070 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "nios_system_nios2_processor_nios2_oci_break nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_nios2_oci_break:the_nios_system_nios2_processor_nios2_oci_break " "Elaborating entity \"nios_system_nios2_processor_nios2_oci_break\" for hierarchy \"nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_nios2_oci_break:the_nios_system_nios2_processor_nios2_oci_break\"" { } { { "db/ip/nios_system/submodules/nios_system_nios2_processor.v" "the_nios_system_nios2_processor_nios2_oci_break" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor.v" 2871 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609946074 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "nios_system_nios2_processor_nios2_oci_xbrk nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_nios2_oci_xbrk:the_nios_system_nios2_processor_nios2_oci_xbrk " "Elaborating entity \"nios_system_nios2_processor_nios2_oci_xbrk\" for hierarchy \"nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_nios2_oci_xbrk:the_nios_system_nios2_processor_nios2_oci_xbrk\"" { } { { "db/ip/nios_system/submodules/nios_system_nios2_processor.v" "the_nios_system_nios2_processor_nios2_oci_xbrk" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor.v" 2892 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609946078 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "nios_system_nios2_processor_nios2_oci_dbrk nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_nios2_oci_dbrk:the_nios_system_nios2_processor_nios2_oci_dbrk " "Elaborating entity \"nios_system_nios2_processor_nios2_oci_dbrk\" for hierarchy \"nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_nios2_oci_dbrk:the_nios_system_nios2_processor_nios2_oci_dbrk\"" { } { { "db/ip/nios_system/submodules/nios_system_nios2_processor.v" "the_nios_system_nios2_processor_nios2_oci_dbrk" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor.v" 2918 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609946082 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "nios_system_nios2_processor_nios2_oci_itrace nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_nios2_oci_itrace:the_nios_system_nios2_processor_nios2_oci_itrace " "Elaborating entity \"nios_system_nios2_processor_nios2_oci_itrace\" for hierarchy \"nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_nios2_oci_itrace:the_nios_system_nios2_processor_nios2_oci_itrace\"" { } { { "db/ip/nios_system/submodules/nios_system_nios2_processor.v" "the_nios_system_nios2_processor_nios2_oci_itrace" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor.v" 2937 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609946085 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "nios_system_nios2_processor_nios2_oci_dtrace nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_nios2_oci_dtrace:the_nios_system_nios2_processor_nios2_oci_dtrace " "Elaborating entity \"nios_system_nios2_processor_nios2_oci_dtrace\" for hierarchy \"nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_nios2_oci_dtrace:the_nios_system_nios2_processor_nios2_oci_dtrace\"" { } { { "db/ip/nios_system/submodules/nios_system_nios2_processor.v" "the_nios_system_nios2_processor_nios2_oci_dtrace" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor.v" 2952 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609946089 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "nios_system_nios2_processor_nios2_oci_td_mode nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_nios2_oci_dtrace:the_nios_system_nios2_processor_nios2_oci_dtrace\|nios_system_nios2_processor_nios2_oci_td_mode:nios_system_nios2_processor_nios2_oci_trc_ctrl_td_mode " "Elaborating entity \"nios_system_nios2_processor_nios2_oci_td_mode\" for hierarchy \"nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_nios2_oci_dtrace:the_nios_system_nios2_processor_nios2_oci_dtrace\|nios_system_nios2_processor_nios2_oci_td_mode:nios_system_nios2_processor_nios2_oci_trc_ctrl_td_mode\"" { } { { "db/ip/nios_system/submodules/nios_system_nios2_processor.v" "nios_system_nios2_processor_nios2_oci_trc_ctrl_td_mode" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor.v" 1714 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609946094 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "nios_system_nios2_processor_nios2_oci_fifo nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_nios2_oci_fifo:the_nios_system_nios2_processor_nios2_oci_fifo " "Elaborating entity \"nios_system_nios2_processor_nios2_oci_fifo\" for hierarchy \"nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_nios2_oci_fifo:the_nios_system_nios2_processor_nios2_oci_fifo\"" { } { { "db/ip/nios_system/submodules/nios_system_nios2_processor.v" "the_nios_system_nios2_processor_nios2_oci_fifo" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor.v" 2971 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609946097 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "nios_system_nios2_processor_nios2_oci_compute_tm_count nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_nios2_oci_fifo:the_nios_system_nios2_processor_nios2_oci_fifo\|nios_system_nios2_processor_nios2_oci_compute_tm_count:nios_system_nios2_processor_nios2_oci_compute_tm_count_tm_count " "Elaborating entity \"nios_system_nios2_processor_nios2_oci_compute_tm_count\" for hierarchy \"nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_nios2_oci_fifo:the_nios_system_nios2_processor_nios2_oci_fifo\|nios_system_nios2_processor_nios2_oci_compute_tm_count:nios_system_nios2_processor_nios2_oci_compute_tm_count_tm_count\"" { } { { "db/ip/nios_system/submodules/nios_system_nios2_processor.v" "nios_system_nios2_processor_nios2_oci_compute_tm_count_tm_count" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor.v" 2046 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609946101 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "nios_system_nios2_processor_nios2_oci_fifowp_inc nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_nios2_oci_fifo:the_nios_system_nios2_processor_nios2_oci_fifo\|nios_system_nios2_processor_nios2_oci_fifowp_inc:nios_system_nios2_processor_nios2_oci_fifowp_inc_fifowp " "Elaborating entity \"nios_system_nios2_processor_nios2_oci_fifowp_inc\" for hierarchy \"nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_nios2_oci_fifo:the_nios_system_nios2_processor_nios2_oci_fifo\|nios_system_nios2_processor_nios2_oci_fifowp_inc:nios_system_nios2_processor_nios2_oci_fifowp_inc_fifowp\"" { } { { "db/ip/nios_system/submodules/nios_system_nios2_processor.v" "nios_system_nios2_processor_nios2_oci_fifowp_inc_fifowp" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor.v" 2056 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609946105 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "nios_system_nios2_processor_nios2_oci_fifocount_inc nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_nios2_oci_fifo:the_nios_system_nios2_processor_nios2_oci_fifo\|nios_system_nios2_processor_nios2_oci_fifocount_inc:nios_system_nios2_processor_nios2_oci_fifocount_inc_fifocount " "Elaborating entity \"nios_system_nios2_processor_nios2_oci_fifocount_inc\" for hierarchy \"nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_nios2_oci_fifo:the_nios_system_nios2_processor_nios2_oci_fifo\|nios_system_nios2_processor_nios2_oci_fifocount_inc:nios_system_nios2_processor_nios2_oci_fifocount_inc_fifocount\"" { } { { "db/ip/nios_system/submodules/nios_system_nios2_processor.v" "nios_system_nios2_processor_nios2_oci_fifocount_inc_fifocount" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor.v" 2066 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609946109 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "nios_system_nios2_processor_oci_test_bench nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_nios2_oci_fifo:the_nios_system_nios2_processor_nios2_oci_fifo\|nios_system_nios2_processor_oci_test_bench:the_nios_system_nios2_processor_oci_test_bench " "Elaborating entity \"nios_system_nios2_processor_oci_test_bench\" for hierarchy \"nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_nios2_oci_fifo:the_nios_system_nios2_processor_nios2_oci_fifo\|nios_system_nios2_processor_oci_test_bench:the_nios_system_nios2_processor_oci_test_bench\"" { } { { "db/ip/nios_system/submodules/nios_system_nios2_processor.v" "the_nios_system_nios2_processor_oci_test_bench" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor.v" 2075 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609946113 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "nios_system_nios2_processor_nios2_oci_pib nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_nios2_oci_pib:the_nios_system_nios2_processor_nios2_oci_pib " "Elaborating entity \"nios_system_nios2_processor_nios2_oci_pib\" for hierarchy \"nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_nios2_oci_pib:the_nios_system_nios2_processor_nios2_oci_pib\"" { } { { "db/ip/nios_system/submodules/nios_system_nios2_processor.v" "the_nios_system_nios2_processor_nios2_oci_pib" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor.v" 2981 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609946116 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "nios_system_nios2_processor_nios2_oci_im nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_nios2_oci_im:the_nios_system_nios2_processor_nios2_oci_im " "Elaborating entity \"nios_system_nios2_processor_nios2_oci_im\" for hierarchy \"nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_nios2_oci_im:the_nios_system_nios2_processor_nios2_oci_im\"" { } { { "db/ip/nios_system/submodules/nios_system_nios2_processor.v" "the_nios_system_nios2_processor_nios2_oci_im" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor.v" 3002 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609946120 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "nios_system_nios2_processor_jtag_debug_module_wrapper nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper " "Elaborating entity \"nios_system_nios2_processor_jtag_debug_module_wrapper\" for hierarchy \"nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper\"" { } { { "db/ip/nios_system/submodules/nios_system_nios2_processor.v" "the_nios_system_nios2_processor_jtag_debug_module_wrapper" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor.v" 3107 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609946123 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "nios_system_nios2_processor_jtag_debug_module_tck nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper\|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck " "Elaborating entity \"nios_system_nios2_processor_jtag_debug_module_tck\" for hierarchy \"nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper\|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck\"" { } { { "db/ip/nios_system/submodules/nios_system_nios2_processor_jtag_debug_module_wrapper.v" "the_nios_system_nios2_processor_jtag_debug_module_tck" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor_jtag_debug_module_wrapper.v" 165 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609946127 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "nios_system_nios2_processor_jtag_debug_module_sysclk nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper\|nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk " "Elaborating entity \"nios_system_nios2_processor_jtag_debug_module_sysclk\" for hierarchy \"nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper\|nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk\"" { } { { "db/ip/nios_system/submodules/nios_system_nios2_processor_jtag_debug_module_wrapper.v" "the_nios_system_nios2_processor_jtag_debug_module_sysclk" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor_jtag_debug_module_wrapper.v" 188 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609946135 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "sld_virtual_jtag_basic nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper\|sld_virtual_jtag_basic:nios_system_nios2_processor_jtag_debug_module_phy " "Elaborating entity \"sld_virtual_jtag_basic\" for hierarchy \"nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper\|sld_virtual_jtag_basic:nios_system_nios2_processor_jtag_debug_module_phy\"" { } { { "db/ip/nios_system/submodules/nios_system_nios2_processor_jtag_debug_module_wrapper.v" "nios_system_nios2_processor_jtag_debug_module_phy" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor_jtag_debug_module_wrapper.v" 218 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609946155 ""} +{ "Info" "ISGN_ELABORATION_HEADER" "nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper\|sld_virtual_jtag_basic:nios_system_nios2_processor_jtag_debug_module_phy " "Elaborated megafunction instantiation \"nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper\|sld_virtual_jtag_basic:nios_system_nios2_processor_jtag_debug_module_phy\"" { } { { "db/ip/nios_system/submodules/nios_system_nios2_processor_jtag_debug_module_wrapper.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor_jtag_debug_module_wrapper.v" 218 0 0 } } } 0 12130 "Elaborated megafunction instantiation \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609946156 ""} +{ "Info" "ISGN_MEGAFN_PARAM_TOP" "nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper\|sld_virtual_jtag_basic:nios_system_nios2_processor_jtag_debug_module_phy " "Instantiated megafunction \"nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper\|sld_virtual_jtag_basic:nios_system_nios2_processor_jtag_debug_module_phy\" with the following parameter:" { { "Info" "ISGN_MEGAFN_PARAM_SUB" "sld_auto_instance_index YES " "Parameter \"sld_auto_instance_index\" = \"YES\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609946156 ""} { "Info" "ISGN_MEGAFN_PARAM_SUB" "sld_instance_index 0 " "Parameter \"sld_instance_index\" = \"0\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609946156 ""} { "Info" "ISGN_MEGAFN_PARAM_SUB" "sld_ir_width 2 " "Parameter \"sld_ir_width\" = \"2\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609946156 ""} { "Info" "ISGN_MEGAFN_PARAM_SUB" "sld_mfg_id 70 " "Parameter \"sld_mfg_id\" = \"70\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609946156 ""} { "Info" "ISGN_MEGAFN_PARAM_SUB" "sld_sim_action " "Parameter \"sld_sim_action\" = \"\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609946156 ""} { "Info" "ISGN_MEGAFN_PARAM_SUB" "sld_sim_n_scan 0 " "Parameter \"sld_sim_n_scan\" = \"0\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609946156 ""} { "Info" "ISGN_MEGAFN_PARAM_SUB" "sld_sim_total_length 0 " "Parameter \"sld_sim_total_length\" = \"0\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609946156 ""} { "Info" "ISGN_MEGAFN_PARAM_SUB" "sld_type_id 34 " "Parameter \"sld_type_id\" = \"34\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609946156 ""} { "Info" "ISGN_MEGAFN_PARAM_SUB" "sld_version 3 " "Parameter \"sld_version\" = \"3\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609946156 ""} } { { "db/ip/nios_system/submodules/nios_system_nios2_processor_jtag_debug_module_wrapper.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor_jtag_debug_module_wrapper.v" 218 0 0 } } } 0 12133 "Instantiated megafunction \"%1!s!\" with the following parameter:" 0 0 "Quartus II" 0 -1 1480609946156 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "sld_virtual_jtag_impl nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper\|sld_virtual_jtag_basic:nios_system_nios2_processor_jtag_debug_module_phy\|sld_virtual_jtag_impl:sld_virtual_jtag_impl_inst " "Elaborating entity \"sld_virtual_jtag_impl\" for hierarchy \"nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper\|sld_virtual_jtag_basic:nios_system_nios2_processor_jtag_debug_module_phy\|sld_virtual_jtag_impl:sld_virtual_jtag_impl_inst\"" { } { { "sld_virtual_jtag_basic.v" "sld_virtual_jtag_impl_inst" { Text "c:/altera/13.0sp1/quartus/libraries/megafunctions/sld_virtual_jtag_basic.v" 151 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609946158 ""} +{ "Info" "ISGN_MEGAFN_DESCENDANT" "nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper\|sld_virtual_jtag_basic:nios_system_nios2_processor_jtag_debug_module_phy\|sld_virtual_jtag_impl:sld_virtual_jtag_impl_inst nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper\|sld_virtual_jtag_basic:nios_system_nios2_processor_jtag_debug_module_phy " "Elaborated megafunction instantiation \"nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper\|sld_virtual_jtag_basic:nios_system_nios2_processor_jtag_debug_module_phy\|sld_virtual_jtag_impl:sld_virtual_jtag_impl_inst\", which is child of megafunction instantiation \"nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper\|sld_virtual_jtag_basic:nios_system_nios2_processor_jtag_debug_module_phy\"" { } { { "sld_virtual_jtag_basic.v" "" { Text "c:/altera/13.0sp1/quartus/libraries/megafunctions/sld_virtual_jtag_basic.v" 151 0 0 } } { "db/ip/nios_system/submodules/nios_system_nios2_processor_jtag_debug_module_wrapper.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor_jtag_debug_module_wrapper.v" 218 0 0 } } } 0 12131 "Elaborated megafunction instantiation \"%1!s!\", which is child of megafunction instantiation \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609946159 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "nios_system_onchip_memory nios_system:NiosII\|nios_system_onchip_memory:onchip_memory " "Elaborating entity \"nios_system_onchip_memory\" for hierarchy \"nios_system:NiosII\|nios_system_onchip_memory:onchip_memory\"" { } { { "nios_system/synthesis/nios_system.v" "onchip_memory" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/synthesis/nios_system.v" 1116 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609946164 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "altsyncram nios_system:NiosII\|nios_system_onchip_memory:onchip_memory\|altsyncram:the_altsyncram " "Elaborating entity \"altsyncram\" for hierarchy \"nios_system:NiosII\|nios_system_onchip_memory:onchip_memory\|altsyncram:the_altsyncram\"" { } { { "db/ip/nios_system/submodules/nios_system_onchip_memory.v" "the_altsyncram" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_onchip_memory.v" 66 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609946171 ""} +{ "Info" "ISGN_ELABORATION_HEADER" "nios_system:NiosII\|nios_system_onchip_memory:onchip_memory\|altsyncram:the_altsyncram " "Elaborated megafunction instantiation \"nios_system:NiosII\|nios_system_onchip_memory:onchip_memory\|altsyncram:the_altsyncram\"" { } { { "db/ip/nios_system/submodules/nios_system_onchip_memory.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_onchip_memory.v" 66 0 0 } } } 0 12130 "Elaborated megafunction instantiation \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609946172 ""} +{ "Info" "ISGN_MEGAFN_PARAM_TOP" "nios_system:NiosII\|nios_system_onchip_memory:onchip_memory\|altsyncram:the_altsyncram " "Instantiated megafunction \"nios_system:NiosII\|nios_system_onchip_memory:onchip_memory\|altsyncram:the_altsyncram\" with the following parameter:" { { "Info" "ISGN_MEGAFN_PARAM_SUB" "byte_size 8 " "Parameter \"byte_size\" = \"8\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609946172 ""} { "Info" "ISGN_MEGAFN_PARAM_SUB" "init_file nios_system_onchip_memory.hex " "Parameter \"init_file\" = \"nios_system_onchip_memory.hex\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609946172 ""} { "Info" "ISGN_MEGAFN_PARAM_SUB" "lpm_type altsyncram " "Parameter \"lpm_type\" = \"altsyncram\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609946172 ""} { "Info" "ISGN_MEGAFN_PARAM_SUB" "maximum_depth 51200 " "Parameter \"maximum_depth\" = \"51200\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609946172 ""} { "Info" "ISGN_MEGAFN_PARAM_SUB" "numwords_a 51200 " "Parameter \"numwords_a\" = \"51200\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609946172 ""} { "Info" "ISGN_MEGAFN_PARAM_SUB" "operation_mode SINGLE_PORT " "Parameter \"operation_mode\" = \"SINGLE_PORT\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609946172 ""} { "Info" "ISGN_MEGAFN_PARAM_SUB" "outdata_reg_a UNREGISTERED " "Parameter \"outdata_reg_a\" = \"UNREGISTERED\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609946172 ""} { "Info" "ISGN_MEGAFN_PARAM_SUB" "ram_block_type AUTO " "Parameter \"ram_block_type\" = \"AUTO\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609946172 ""} { "Info" "ISGN_MEGAFN_PARAM_SUB" "read_during_write_mode_mixed_ports DONT_CARE " "Parameter \"read_during_write_mode_mixed_ports\" = \"DONT_CARE\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609946172 ""} { "Info" "ISGN_MEGAFN_PARAM_SUB" "width_a 32 " "Parameter \"width_a\" = \"32\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609946172 ""} { "Info" "ISGN_MEGAFN_PARAM_SUB" "width_byteena_a 4 " "Parameter \"width_byteena_a\" = \"4\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609946172 ""} { "Info" "ISGN_MEGAFN_PARAM_SUB" "widthad_a 16 " "Parameter \"widthad_a\" = \"16\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609946172 ""} } { { "db/ip/nios_system/submodules/nios_system_onchip_memory.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_onchip_memory.v" 66 0 0 } } } 0 12133 "Instantiated megafunction \"%1!s!\" with the following parameter:" 0 0 "Quartus II" 0 -1 1480609946172 ""} +{ "Info" "ISGN_NUM_OF_DESIGN_UNITS_AND_ENTITIES" "db/altsyncram_4ed1.tdf 1 1 " "Found 1 design units, including 1 entities, in source file db/altsyncram_4ed1.tdf" { { "Info" "ISGN_ENTITY_NAME" "1 altsyncram_4ed1 " "Found entity 1: altsyncram_4ed1" { } { { "db/altsyncram_4ed1.tdf" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/altsyncram_4ed1.tdf" 31 1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609946282 ""} } { } 0 12021 "Found %2!llu! design units, including %3!llu! entities, in source file %1!s!" 0 0 "Quartus II" 0 -1 1480609946282 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "altsyncram_4ed1 nios_system:NiosII\|nios_system_onchip_memory:onchip_memory\|altsyncram:the_altsyncram\|altsyncram_4ed1:auto_generated " "Elaborating entity \"altsyncram_4ed1\" for hierarchy \"nios_system:NiosII\|nios_system_onchip_memory:onchip_memory\|altsyncram:the_altsyncram\|altsyncram_4ed1:auto_generated\"" { } { { "altsyncram.tdf" "auto_generated" { Text "c:/altera/13.0sp1/quartus/libraries/megafunctions/altsyncram.tdf" 791 4 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609946284 ""} +{ "Info" "ISGN_NUM_OF_DESIGN_UNITS_AND_ENTITIES" "db/decode_qsa.tdf 1 1 " "Found 1 design units, including 1 entities, in source file db/decode_qsa.tdf" { { "Info" "ISGN_ENTITY_NAME" "1 decode_qsa " "Found entity 1: decode_qsa" { } { { "db/decode_qsa.tdf" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/decode_qsa.tdf" 22 1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609946347 ""} } { } 0 12021 "Found %2!llu! design units, including %3!llu! entities, in source file %1!s!" 0 0 "Quartus II" 0 -1 1480609946347 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "decode_qsa nios_system:NiosII\|nios_system_onchip_memory:onchip_memory\|altsyncram:the_altsyncram\|altsyncram_4ed1:auto_generated\|decode_qsa:decode3 " "Elaborating entity \"decode_qsa\" for hierarchy \"nios_system:NiosII\|nios_system_onchip_memory:onchip_memory\|altsyncram:the_altsyncram\|altsyncram_4ed1:auto_generated\|decode_qsa:decode3\"" { } { { "db/altsyncram_4ed1.tdf" "decode3" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/altsyncram_4ed1.tdf" 43 2 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609946349 ""} +{ "Info" "ISGN_NUM_OF_DESIGN_UNITS_AND_ENTITIES" "db/mux_nob.tdf 1 1 " "Found 1 design units, including 1 entities, in source file db/mux_nob.tdf" { { "Info" "ISGN_ENTITY_NAME" "1 mux_nob " "Found entity 1: mux_nob" { } { { "db/mux_nob.tdf" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/mux_nob.tdf" 22 1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609946414 ""} } { } 0 12021 "Found %2!llu! design units, including %3!llu! entities, in source file %1!s!" 0 0 "Quartus II" 0 -1 1480609946414 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "mux_nob nios_system:NiosII\|nios_system_onchip_memory:onchip_memory\|altsyncram:the_altsyncram\|altsyncram_4ed1:auto_generated\|mux_nob:mux2 " "Elaborating entity \"mux_nob\" for hierarchy \"nios_system:NiosII\|nios_system_onchip_memory:onchip_memory\|altsyncram:the_altsyncram\|altsyncram_4ed1:auto_generated\|mux_nob:mux2\"" { } { { "db/altsyncram_4ed1.tdf" "mux2" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/altsyncram_4ed1.tdf" 44 2 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609946416 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "nios_system_jtag_uart nios_system:NiosII\|nios_system_jtag_uart:jtag_uart " "Elaborating entity \"nios_system_jtag_uart\" for hierarchy \"nios_system:NiosII\|nios_system_jtag_uart:jtag_uart\"" { } { { "nios_system/synthesis/nios_system.v" "jtag_uart" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/synthesis/nios_system.v" 1129 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609946605 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "nios_system_jtag_uart_scfifo_w nios_system:NiosII\|nios_system_jtag_uart:jtag_uart\|nios_system_jtag_uart_scfifo_w:the_nios_system_jtag_uart_scfifo_w " "Elaborating entity \"nios_system_jtag_uart_scfifo_w\" for hierarchy \"nios_system:NiosII\|nios_system_jtag_uart:jtag_uart\|nios_system_jtag_uart_scfifo_w:the_nios_system_jtag_uart_scfifo_w\"" { } { { "db/ip/nios_system/submodules/nios_system_jtag_uart.v" "the_nios_system_jtag_uart_scfifo_w" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_jtag_uart.v" 415 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609946609 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "scfifo nios_system:NiosII\|nios_system_jtag_uart:jtag_uart\|nios_system_jtag_uart_scfifo_w:the_nios_system_jtag_uart_scfifo_w\|scfifo:wfifo " "Elaborating entity \"scfifo\" for hierarchy \"nios_system:NiosII\|nios_system_jtag_uart:jtag_uart\|nios_system_jtag_uart_scfifo_w:the_nios_system_jtag_uart_scfifo_w\|scfifo:wfifo\"" { } { { "db/ip/nios_system/submodules/nios_system_jtag_uart.v" "wfifo" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_jtag_uart.v" 137 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609946658 ""} +{ "Info" "ISGN_ELABORATION_HEADER" "nios_system:NiosII\|nios_system_jtag_uart:jtag_uart\|nios_system_jtag_uart_scfifo_w:the_nios_system_jtag_uart_scfifo_w\|scfifo:wfifo " "Elaborated megafunction instantiation \"nios_system:NiosII\|nios_system_jtag_uart:jtag_uart\|nios_system_jtag_uart_scfifo_w:the_nios_system_jtag_uart_scfifo_w\|scfifo:wfifo\"" { } { { "db/ip/nios_system/submodules/nios_system_jtag_uart.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_jtag_uart.v" 137 0 0 } } } 0 12130 "Elaborated megafunction instantiation \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609946659 ""} +{ "Info" "ISGN_MEGAFN_PARAM_TOP" "nios_system:NiosII\|nios_system_jtag_uart:jtag_uart\|nios_system_jtag_uart_scfifo_w:the_nios_system_jtag_uart_scfifo_w\|scfifo:wfifo " "Instantiated megafunction \"nios_system:NiosII\|nios_system_jtag_uart:jtag_uart\|nios_system_jtag_uart_scfifo_w:the_nios_system_jtag_uart_scfifo_w\|scfifo:wfifo\" with the following parameter:" { { "Info" "ISGN_MEGAFN_PARAM_SUB" "lpm_hint RAM_BLOCK_TYPE=AUTO " "Parameter \"lpm_hint\" = \"RAM_BLOCK_TYPE=AUTO\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609946660 ""} { "Info" "ISGN_MEGAFN_PARAM_SUB" "lpm_numwords 64 " "Parameter \"lpm_numwords\" = \"64\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609946660 ""} { "Info" "ISGN_MEGAFN_PARAM_SUB" "lpm_showahead OFF " "Parameter \"lpm_showahead\" = \"OFF\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609946660 ""} { "Info" "ISGN_MEGAFN_PARAM_SUB" "lpm_type scfifo " "Parameter \"lpm_type\" = \"scfifo\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609946660 ""} { "Info" "ISGN_MEGAFN_PARAM_SUB" "lpm_width 8 " "Parameter \"lpm_width\" = \"8\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609946660 ""} { "Info" "ISGN_MEGAFN_PARAM_SUB" "lpm_widthu 6 " "Parameter \"lpm_widthu\" = \"6\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609946660 ""} { "Info" "ISGN_MEGAFN_PARAM_SUB" "overflow_checking OFF " "Parameter \"overflow_checking\" = \"OFF\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609946660 ""} { "Info" "ISGN_MEGAFN_PARAM_SUB" "underflow_checking OFF " "Parameter \"underflow_checking\" = \"OFF\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609946660 ""} { "Info" "ISGN_MEGAFN_PARAM_SUB" "use_eab ON " "Parameter \"use_eab\" = \"ON\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609946660 ""} } { { "db/ip/nios_system/submodules/nios_system_jtag_uart.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_jtag_uart.v" 137 0 0 } } } 0 12133 "Instantiated megafunction \"%1!s!\" with the following parameter:" 0 0 "Quartus II" 0 -1 1480609946660 ""} +{ "Info" "ISGN_NUM_OF_DESIGN_UNITS_AND_ENTITIES" "db/scfifo_jr21.tdf 1 1 " "Found 1 design units, including 1 entities, in source file db/scfifo_jr21.tdf" { { "Info" "ISGN_ENTITY_NAME" "1 scfifo_jr21 " "Found entity 1: scfifo_jr21" { } { { "db/scfifo_jr21.tdf" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/scfifo_jr21.tdf" 24 1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609946722 ""} } { } 0 12021 "Found %2!llu! design units, including %3!llu! entities, in source file %1!s!" 0 0 "Quartus II" 0 -1 1480609946722 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "scfifo_jr21 nios_system:NiosII\|nios_system_jtag_uart:jtag_uart\|nios_system_jtag_uart_scfifo_w:the_nios_system_jtag_uart_scfifo_w\|scfifo:wfifo\|scfifo_jr21:auto_generated " "Elaborating entity \"scfifo_jr21\" for hierarchy \"nios_system:NiosII\|nios_system_jtag_uart:jtag_uart\|nios_system_jtag_uart_scfifo_w:the_nios_system_jtag_uart_scfifo_w\|scfifo:wfifo\|scfifo_jr21:auto_generated\"" { } { { "scfifo.tdf" "auto_generated" { Text "c:/altera/13.0sp1/quartus/libraries/megafunctions/scfifo.tdf" 296 3 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609946724 ""} +{ "Info" "ISGN_NUM_OF_DESIGN_UNITS_AND_ENTITIES" "db/a_dpfifo_q131.tdf 1 1 " "Found 1 design units, including 1 entities, in source file db/a_dpfifo_q131.tdf" { { "Info" "ISGN_ENTITY_NAME" "1 a_dpfifo_q131 " "Found entity 1: a_dpfifo_q131" { } { { "db/a_dpfifo_q131.tdf" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/a_dpfifo_q131.tdf" 28 1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609946734 ""} } { } 0 12021 "Found %2!llu! design units, including %3!llu! entities, in source file %1!s!" 0 0 "Quartus II" 0 -1 1480609946734 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "a_dpfifo_q131 nios_system:NiosII\|nios_system_jtag_uart:jtag_uart\|nios_system_jtag_uart_scfifo_w:the_nios_system_jtag_uart_scfifo_w\|scfifo:wfifo\|scfifo_jr21:auto_generated\|a_dpfifo_q131:dpfifo " "Elaborating entity \"a_dpfifo_q131\" for hierarchy \"nios_system:NiosII\|nios_system_jtag_uart:jtag_uart\|nios_system_jtag_uart_scfifo_w:the_nios_system_jtag_uart_scfifo_w\|scfifo:wfifo\|scfifo_jr21:auto_generated\|a_dpfifo_q131:dpfifo\"" { } { { "db/scfifo_jr21.tdf" "dpfifo" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/scfifo_jr21.tdf" 37 2 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609946736 ""} +{ "Info" "ISGN_NUM_OF_DESIGN_UNITS_AND_ENTITIES" "db/a_fefifo_7cf.tdf 1 1 " "Found 1 design units, including 1 entities, in source file db/a_fefifo_7cf.tdf" { { "Info" "ISGN_ENTITY_NAME" "1 a_fefifo_7cf " "Found entity 1: a_fefifo_7cf" { } { { "db/a_fefifo_7cf.tdf" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/a_fefifo_7cf.tdf" 24 1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609946746 ""} } { } 0 12021 "Found %2!llu! design units, including %3!llu! entities, in source file %1!s!" 0 0 "Quartus II" 0 -1 1480609946746 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "a_fefifo_7cf nios_system:NiosII\|nios_system_jtag_uart:jtag_uart\|nios_system_jtag_uart_scfifo_w:the_nios_system_jtag_uart_scfifo_w\|scfifo:wfifo\|scfifo_jr21:auto_generated\|a_dpfifo_q131:dpfifo\|a_fefifo_7cf:fifo_state " "Elaborating entity \"a_fefifo_7cf\" for hierarchy \"nios_system:NiosII\|nios_system_jtag_uart:jtag_uart\|nios_system_jtag_uart_scfifo_w:the_nios_system_jtag_uart_scfifo_w\|scfifo:wfifo\|scfifo_jr21:auto_generated\|a_dpfifo_q131:dpfifo\|a_fefifo_7cf:fifo_state\"" { } { { "db/a_dpfifo_q131.tdf" "fifo_state" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/a_dpfifo_q131.tdf" 42 2 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609946748 ""} +{ "Info" "ISGN_NUM_OF_DESIGN_UNITS_AND_ENTITIES" "db/cntr_do7.tdf 1 1 " "Found 1 design units, including 1 entities, in source file db/cntr_do7.tdf" { { "Info" "ISGN_ENTITY_NAME" "1 cntr_do7 " "Found entity 1: cntr_do7" { } { { "db/cntr_do7.tdf" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/cntr_do7.tdf" 25 1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609946807 ""} } { } 0 12021 "Found %2!llu! design units, including %3!llu! entities, in source file %1!s!" 0 0 "Quartus II" 0 -1 1480609946807 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "cntr_do7 nios_system:NiosII\|nios_system_jtag_uart:jtag_uart\|nios_system_jtag_uart_scfifo_w:the_nios_system_jtag_uart_scfifo_w\|scfifo:wfifo\|scfifo_jr21:auto_generated\|a_dpfifo_q131:dpfifo\|a_fefifo_7cf:fifo_state\|cntr_do7:count_usedw " "Elaborating entity \"cntr_do7\" for hierarchy \"nios_system:NiosII\|nios_system_jtag_uart:jtag_uart\|nios_system_jtag_uart_scfifo_w:the_nios_system_jtag_uart_scfifo_w\|scfifo:wfifo\|scfifo_jr21:auto_generated\|a_dpfifo_q131:dpfifo\|a_fefifo_7cf:fifo_state\|cntr_do7:count_usedw\"" { } { { "db/a_fefifo_7cf.tdf" "count_usedw" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/a_fefifo_7cf.tdf" 38 2 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609946810 ""} +{ "Info" "ISGN_NUM_OF_DESIGN_UNITS_AND_ENTITIES" "db/dpram_nl21.tdf 1 1 " "Found 1 design units, including 1 entities, in source file db/dpram_nl21.tdf" { { "Info" "ISGN_ENTITY_NAME" "1 dpram_nl21 " "Found entity 1: dpram_nl21" { } { { "db/dpram_nl21.tdf" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/dpram_nl21.tdf" 24 1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609946871 ""} } { } 0 12021 "Found %2!llu! design units, including %3!llu! entities, in source file %1!s!" 0 0 "Quartus II" 0 -1 1480609946871 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "dpram_nl21 nios_system:NiosII\|nios_system_jtag_uart:jtag_uart\|nios_system_jtag_uart_scfifo_w:the_nios_system_jtag_uart_scfifo_w\|scfifo:wfifo\|scfifo_jr21:auto_generated\|a_dpfifo_q131:dpfifo\|dpram_nl21:FIFOram " "Elaborating entity \"dpram_nl21\" for hierarchy \"nios_system:NiosII\|nios_system_jtag_uart:jtag_uart\|nios_system_jtag_uart_scfifo_w:the_nios_system_jtag_uart_scfifo_w\|scfifo:wfifo\|scfifo_jr21:auto_generated\|a_dpfifo_q131:dpfifo\|dpram_nl21:FIFOram\"" { } { { "db/a_dpfifo_q131.tdf" "FIFOram" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/a_dpfifo_q131.tdf" 43 2 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609946873 ""} +{ "Info" "ISGN_NUM_OF_DESIGN_UNITS_AND_ENTITIES" "db/altsyncram_r1m1.tdf 1 1 " "Found 1 design units, including 1 entities, in source file db/altsyncram_r1m1.tdf" { { "Info" "ISGN_ENTITY_NAME" "1 altsyncram_r1m1 " "Found entity 1: altsyncram_r1m1" { } { { "db/altsyncram_r1m1.tdf" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/altsyncram_r1m1.tdf" 27 1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609946935 ""} } { } 0 12021 "Found %2!llu! design units, including %3!llu! entities, in source file %1!s!" 0 0 "Quartus II" 0 -1 1480609946935 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "altsyncram_r1m1 nios_system:NiosII\|nios_system_jtag_uart:jtag_uart\|nios_system_jtag_uart_scfifo_w:the_nios_system_jtag_uart_scfifo_w\|scfifo:wfifo\|scfifo_jr21:auto_generated\|a_dpfifo_q131:dpfifo\|dpram_nl21:FIFOram\|altsyncram_r1m1:altsyncram1 " "Elaborating entity \"altsyncram_r1m1\" for hierarchy \"nios_system:NiosII\|nios_system_jtag_uart:jtag_uart\|nios_system_jtag_uart_scfifo_w:the_nios_system_jtag_uart_scfifo_w\|scfifo:wfifo\|scfifo_jr21:auto_generated\|a_dpfifo_q131:dpfifo\|dpram_nl21:FIFOram\|altsyncram_r1m1:altsyncram1\"" { } { { "db/dpram_nl21.tdf" "altsyncram1" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/dpram_nl21.tdf" 36 2 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609946937 ""} +{ "Info" "ISGN_NUM_OF_DESIGN_UNITS_AND_ENTITIES" "db/cntr_1ob.tdf 1 1 " "Found 1 design units, including 1 entities, in source file db/cntr_1ob.tdf" { { "Info" "ISGN_ENTITY_NAME" "1 cntr_1ob " "Found entity 1: cntr_1ob" { } { { "db/cntr_1ob.tdf" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/cntr_1ob.tdf" 25 1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609947004 ""} } { } 0 12021 "Found %2!llu! design units, including %3!llu! entities, in source file %1!s!" 0 0 "Quartus II" 0 -1 1480609947004 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "cntr_1ob nios_system:NiosII\|nios_system_jtag_uart:jtag_uart\|nios_system_jtag_uart_scfifo_w:the_nios_system_jtag_uart_scfifo_w\|scfifo:wfifo\|scfifo_jr21:auto_generated\|a_dpfifo_q131:dpfifo\|cntr_1ob:rd_ptr_count " "Elaborating entity \"cntr_1ob\" for hierarchy \"nios_system:NiosII\|nios_system_jtag_uart:jtag_uart\|nios_system_jtag_uart_scfifo_w:the_nios_system_jtag_uart_scfifo_w\|scfifo:wfifo\|scfifo_jr21:auto_generated\|a_dpfifo_q131:dpfifo\|cntr_1ob:rd_ptr_count\"" { } { { "db/a_dpfifo_q131.tdf" "rd_ptr_count" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/a_dpfifo_q131.tdf" 44 2 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609947006 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "nios_system_jtag_uart_scfifo_r nios_system:NiosII\|nios_system_jtag_uart:jtag_uart\|nios_system_jtag_uart_scfifo_r:the_nios_system_jtag_uart_scfifo_r " "Elaborating entity \"nios_system_jtag_uart_scfifo_r\" for hierarchy \"nios_system:NiosII\|nios_system_jtag_uart:jtag_uart\|nios_system_jtag_uart_scfifo_r:the_nios_system_jtag_uart_scfifo_r\"" { } { { "db/ip/nios_system/submodules/nios_system_jtag_uart.v" "the_nios_system_jtag_uart_scfifo_r" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_jtag_uart.v" 429 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609947018 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "alt_jtag_atlantic nios_system:NiosII\|nios_system_jtag_uart:jtag_uart\|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic " "Elaborating entity \"alt_jtag_atlantic\" for hierarchy \"nios_system:NiosII\|nios_system_jtag_uart:jtag_uart\|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic\"" { } { { "db/ip/nios_system/submodules/nios_system_jtag_uart.v" "nios_system_jtag_uart_alt_jtag_atlantic" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_jtag_uart.v" 564 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609947137 ""} +{ "Info" "ISGN_ELABORATION_HEADER" "nios_system:NiosII\|nios_system_jtag_uart:jtag_uart\|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic " "Elaborated megafunction instantiation \"nios_system:NiosII\|nios_system_jtag_uart:jtag_uart\|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic\"" { } { { "db/ip/nios_system/submodules/nios_system_jtag_uart.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_jtag_uart.v" 564 0 0 } } } 0 12130 "Elaborated megafunction instantiation \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609947139 ""} +{ "Info" "ISGN_MEGAFN_PARAM_TOP" "nios_system:NiosII\|nios_system_jtag_uart:jtag_uart\|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic " "Instantiated megafunction \"nios_system:NiosII\|nios_system_jtag_uart:jtag_uart\|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic\" with the following parameter:" { { "Info" "ISGN_MEGAFN_PARAM_SUB" "INSTANCE_ID 0 " "Parameter \"INSTANCE_ID\" = \"0\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609947139 ""} { "Info" "ISGN_MEGAFN_PARAM_SUB" "LOG2_RXFIFO_DEPTH 6 " "Parameter \"LOG2_RXFIFO_DEPTH\" = \"6\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609947139 ""} { "Info" "ISGN_MEGAFN_PARAM_SUB" "LOG2_TXFIFO_DEPTH 6 " "Parameter \"LOG2_TXFIFO_DEPTH\" = \"6\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609947139 ""} { "Info" "ISGN_MEGAFN_PARAM_SUB" "SLD_AUTO_INSTANCE_INDEX YES " "Parameter \"SLD_AUTO_INSTANCE_INDEX\" = \"YES\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609947139 ""} } { { "db/ip/nios_system/submodules/nios_system_jtag_uart.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_jtag_uart.v" 564 0 0 } } } 0 12133 "Instantiated megafunction \"%1!s!\" with the following parameter:" 0 0 "Quartus II" 0 -1 1480609947139 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "nios_system_LEDs nios_system:NiosII\|nios_system_LEDs:leds " "Elaborating entity \"nios_system_LEDs\" for hierarchy \"nios_system:NiosII\|nios_system_LEDs:leds\"" { } { { "nios_system/synthesis/nios_system.v" "leds" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/synthesis/nios_system.v" 1140 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609947146 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "nios_system_LEDRs nios_system:NiosII\|nios_system_LEDRs:ledrs " "Elaborating entity \"nios_system_LEDRs\" for hierarchy \"nios_system:NiosII\|nios_system_LEDRs:ledrs\"" { } { { "nios_system/synthesis/nios_system.v" "ledrs" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/synthesis/nios_system.v" 1151 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609947148 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "nios_system_switches nios_system:NiosII\|nios_system_switches:switches " "Elaborating entity \"nios_system_switches\" for hierarchy \"nios_system:NiosII\|nios_system_switches:switches\"" { } { { "nios_system/synthesis/nios_system.v" "switches" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/synthesis/nios_system.v" 1159 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609947151 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "nios_system_push_switches nios_system:NiosII\|nios_system_push_switches:push_switches " "Elaborating entity \"nios_system_push_switches\" for hierarchy \"nios_system:NiosII\|nios_system_push_switches:push_switches\"" { } { { "nios_system/synthesis/nios_system.v" "push_switches" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/synthesis/nios_system.v" 1167 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609947154 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "nios_system_hex0 nios_system:NiosII\|nios_system_hex0:hex0 " "Elaborating entity \"nios_system_hex0\" for hierarchy \"nios_system:NiosII\|nios_system_hex0:hex0\"" { } { { "nios_system/synthesis/nios_system.v" "hex0" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/synthesis/nios_system.v" 1178 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609947157 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "nios_system_lcd_16207_0 nios_system:NiosII\|nios_system_lcd_16207_0:lcd_16207_0 " "Elaborating entity \"nios_system_lcd_16207_0\" for hierarchy \"nios_system:NiosII\|nios_system_lcd_16207_0:lcd_16207_0\"" { } { { "nios_system/synthesis/nios_system.v" "lcd_16207_0" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/synthesis/nios_system.v" 1270 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609947171 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "nios_system_lcd_on nios_system:NiosII\|nios_system_lcd_on:lcd_on " "Elaborating entity \"nios_system_lcd_on\" for hierarchy \"nios_system:NiosII\|nios_system_lcd_on:lcd_on\"" { } { { "nios_system/synthesis/nios_system.v" "lcd_on" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/synthesis/nios_system.v" 1281 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609947173 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "altera_merlin_master_translator nios_system:NiosII\|altera_merlin_master_translator:nios2_processor_instruction_master_translator " "Elaborating entity \"altera_merlin_master_translator\" for hierarchy \"nios_system:NiosII\|altera_merlin_master_translator:nios2_processor_instruction_master_translator\"" { } { { "nios_system/synthesis/nios_system.v" "nios2_processor_instruction_master_translator" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/synthesis/nios_system.v" 1354 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609947178 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "altera_merlin_master_translator nios_system:NiosII\|altera_merlin_master_translator:nios2_processor_data_master_translator " "Elaborating entity \"altera_merlin_master_translator\" for hierarchy \"nios_system:NiosII\|altera_merlin_master_translator:nios2_processor_data_master_translator\"" { } { { "nios_system/synthesis/nios_system.v" "nios2_processor_data_master_translator" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/synthesis/nios_system.v" 1416 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609947182 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "altera_merlin_slave_translator nios_system:NiosII\|altera_merlin_slave_translator:nios2_processor_jtag_debug_module_translator " "Elaborating entity \"altera_merlin_slave_translator\" for hierarchy \"nios_system:NiosII\|altera_merlin_slave_translator:nios2_processor_jtag_debug_module_translator\"" { } { { "nios_system/synthesis/nios_system.v" "nios2_processor_jtag_debug_module_translator" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/synthesis/nios_system.v" 1482 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609947186 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "altera_merlin_slave_translator nios_system:NiosII\|altera_merlin_slave_translator:onchip_memory_s1_translator " "Elaborating entity \"altera_merlin_slave_translator\" for hierarchy \"nios_system:NiosII\|altera_merlin_slave_translator:onchip_memory_s1_translator\"" { } { { "nios_system/synthesis/nios_system.v" "onchip_memory_s1_translator" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/synthesis/nios_system.v" 1548 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609947190 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "altera_merlin_slave_translator nios_system:NiosII\|altera_merlin_slave_translator:leds_s1_translator " "Elaborating entity \"altera_merlin_slave_translator\" for hierarchy \"nios_system:NiosII\|altera_merlin_slave_translator:leds_s1_translator\"" { } { { "nios_system/synthesis/nios_system.v" "leds_s1_translator" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/synthesis/nios_system.v" 1614 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609947194 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "altera_merlin_slave_translator nios_system:NiosII\|altera_merlin_slave_translator:jtag_uart_avalon_jtag_slave_translator " "Elaborating entity \"altera_merlin_slave_translator\" for hierarchy \"nios_system:NiosII\|altera_merlin_slave_translator:jtag_uart_avalon_jtag_slave_translator\"" { } { { "nios_system/synthesis/nios_system.v" "jtag_uart_avalon_jtag_slave_translator" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/synthesis/nios_system.v" 1680 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609947198 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "altera_merlin_slave_translator nios_system:NiosII\|altera_merlin_slave_translator:lcd_16207_0_control_slave_translator " "Elaborating entity \"altera_merlin_slave_translator\" for hierarchy \"nios_system:NiosII\|altera_merlin_slave_translator:lcd_16207_0_control_slave_translator\"" { } { { "nios_system/synthesis/nios_system.v" "lcd_16207_0_control_slave_translator" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/synthesis/nios_system.v" 2472 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609947225 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "altera_merlin_master_agent nios_system:NiosII\|altera_merlin_master_agent:nios2_processor_instruction_master_translator_avalon_universal_master_0_agent " "Elaborating entity \"altera_merlin_master_agent\" for hierarchy \"nios_system:NiosII\|altera_merlin_master_agent:nios2_processor_instruction_master_translator_avalon_universal_master_0_agent\"" { } { { "nios_system/synthesis/nios_system.v" "nios2_processor_instruction_master_translator_avalon_universal_master_0_agent" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/synthesis/nios_system.v" 2684 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609947235 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "altera_merlin_master_agent nios_system:NiosII\|altera_merlin_master_agent:nios2_processor_data_master_translator_avalon_universal_master_0_agent " "Elaborating entity \"altera_merlin_master_agent\" for hierarchy \"nios_system:NiosII\|altera_merlin_master_agent:nios2_processor_data_master_translator_avalon_universal_master_0_agent\"" { } { { "nios_system/synthesis/nios_system.v" "nios2_processor_data_master_translator_avalon_universal_master_0_agent" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/synthesis/nios_system.v" 2764 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609947240 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "altera_merlin_slave_agent nios_system:NiosII\|altera_merlin_slave_agent:nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent " "Elaborating entity \"altera_merlin_slave_agent\" for hierarchy \"nios_system:NiosII\|altera_merlin_slave_agent:nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent\"" { } { { "nios_system/synthesis/nios_system.v" "nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/synthesis/nios_system.v" 2845 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609947244 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "altera_merlin_burst_uncompressor nios_system:NiosII\|altera_merlin_slave_agent:nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent\|altera_merlin_burst_uncompressor:uncompressor " "Elaborating entity \"altera_merlin_burst_uncompressor\" for hierarchy \"nios_system:NiosII\|altera_merlin_slave_agent:nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent\|altera_merlin_burst_uncompressor:uncompressor\"" { } { { "db/ip/nios_system/submodules/altera_merlin_slave_agent.sv" "uncompressor" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/altera_merlin_slave_agent.sv" 574 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609947249 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "altera_avalon_sc_fifo nios_system:NiosII\|altera_avalon_sc_fifo:nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo " "Elaborating entity \"altera_avalon_sc_fifo\" for hierarchy \"nios_system:NiosII\|altera_avalon_sc_fifo:nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo\"" { } { { "nios_system/synthesis/nios_system.v" "nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/synthesis/nios_system.v" 2886 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609947253 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "nios_system_addr_router nios_system:NiosII\|nios_system_addr_router:addr_router " "Elaborating entity \"nios_system_addr_router\" for hierarchy \"nios_system:NiosII\|nios_system_addr_router:addr_router\"" { } { { "nios_system/synthesis/nios_system.v" "addr_router" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/synthesis/nios_system.v" 4976 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609947374 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "nios_system_addr_router_default_decode nios_system:NiosII\|nios_system_addr_router:addr_router\|nios_system_addr_router_default_decode:the_default_decode " "Elaborating entity \"nios_system_addr_router_default_decode\" for hierarchy \"nios_system:NiosII\|nios_system_addr_router:addr_router\|nios_system_addr_router_default_decode:the_default_decode\"" { } { { "db/ip/nios_system/submodules/nios_system_addr_router.sv" "the_default_decode" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_addr_router.sv" 177 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609947378 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "nios_system_addr_router_001 nios_system:NiosII\|nios_system_addr_router_001:addr_router_001 " "Elaborating entity \"nios_system_addr_router_001\" for hierarchy \"nios_system:NiosII\|nios_system_addr_router_001:addr_router_001\"" { } { { "nios_system/synthesis/nios_system.v" "addr_router_001" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/synthesis/nios_system.v" 4992 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609947381 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "nios_system_addr_router_001_default_decode nios_system:NiosII\|nios_system_addr_router_001:addr_router_001\|nios_system_addr_router_001_default_decode:the_default_decode " "Elaborating entity \"nios_system_addr_router_001_default_decode\" for hierarchy \"nios_system:NiosII\|nios_system_addr_router_001:addr_router_001\|nios_system_addr_router_001_default_decode:the_default_decode\"" { } { { "db/ip/nios_system/submodules/nios_system_addr_router_001.sv" "the_default_decode" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_addr_router_001.sv" 193 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609947385 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "nios_system_id_router nios_system:NiosII\|nios_system_id_router:id_router " "Elaborating entity \"nios_system_id_router\" for hierarchy \"nios_system:NiosII\|nios_system_id_router:id_router\"" { } { { "nios_system/synthesis/nios_system.v" "id_router" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/synthesis/nios_system.v" 5008 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609947388 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "nios_system_id_router_default_decode nios_system:NiosII\|nios_system_id_router:id_router\|nios_system_id_router_default_decode:the_default_decode " "Elaborating entity \"nios_system_id_router_default_decode\" for hierarchy \"nios_system:NiosII\|nios_system_id_router:id_router\|nios_system_id_router_default_decode:the_default_decode\"" { } { { "db/ip/nios_system/submodules/nios_system_id_router.sv" "the_default_decode" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_id_router.sv" 175 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609947391 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "nios_system_id_router_002 nios_system:NiosII\|nios_system_id_router_002:id_router_002 " "Elaborating entity \"nios_system_id_router_002\" for hierarchy \"nios_system:NiosII\|nios_system_id_router_002:id_router_002\"" { } { { "nios_system/synthesis/nios_system.v" "id_router_002" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/synthesis/nios_system.v" 5040 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609947397 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "nios_system_id_router_002_default_decode nios_system:NiosII\|nios_system_id_router_002:id_router_002\|nios_system_id_router_002_default_decode:the_default_decode " "Elaborating entity \"nios_system_id_router_002_default_decode\" for hierarchy \"nios_system:NiosII\|nios_system_id_router_002:id_router_002\|nios_system_id_router_002_default_decode:the_default_decode\"" { } { { "db/ip/nios_system/submodules/nios_system_id_router_002.sv" "the_default_decode" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_id_router_002.sv" 175 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609947400 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "altera_reset_controller nios_system:NiosII\|altera_reset_controller:rst_controller " "Elaborating entity \"altera_reset_controller\" for hierarchy \"nios_system:NiosII\|altera_reset_controller:rst_controller\"" { } { { "nios_system/synthesis/nios_system.v" "rst_controller" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/synthesis/nios_system.v" 5307 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609947449 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "altera_reset_synchronizer nios_system:NiosII\|altera_reset_controller:rst_controller\|altera_reset_synchronizer:alt_rst_sync_uq1 " "Elaborating entity \"altera_reset_synchronizer\" for hierarchy \"nios_system:NiosII\|altera_reset_controller:rst_controller\|altera_reset_synchronizer:alt_rst_sync_uq1\"" { } { { "db/ip/nios_system/submodules/altera_reset_controller.v" "alt_rst_sync_uq1" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/altera_reset_controller.v" 120 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609947451 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "nios_system_cmd_xbar_demux nios_system:NiosII\|nios_system_cmd_xbar_demux:cmd_xbar_demux " "Elaborating entity \"nios_system_cmd_xbar_demux\" for hierarchy \"nios_system:NiosII\|nios_system_cmd_xbar_demux:cmd_xbar_demux\"" { } { { "nios_system/synthesis/nios_system.v" "cmd_xbar_demux" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/synthesis/nios_system.v" 5330 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609947454 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "nios_system_cmd_xbar_demux_001 nios_system:NiosII\|nios_system_cmd_xbar_demux_001:cmd_xbar_demux_001 " "Elaborating entity \"nios_system_cmd_xbar_demux_001\" for hierarchy \"nios_system:NiosII\|nios_system_cmd_xbar_demux_001:cmd_xbar_demux_001\"" { } { { "nios_system/synthesis/nios_system.v" "cmd_xbar_demux_001" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/synthesis/nios_system.v" 5449 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609947458 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "nios_system_cmd_xbar_mux nios_system:NiosII\|nios_system_cmd_xbar_mux:cmd_xbar_mux " "Elaborating entity \"nios_system_cmd_xbar_mux\" for hierarchy \"nios_system:NiosII\|nios_system_cmd_xbar_mux:cmd_xbar_mux\"" { } { { "nios_system/synthesis/nios_system.v" "cmd_xbar_mux" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/synthesis/nios_system.v" 5472 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609947465 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "altera_merlin_arbitrator nios_system:NiosII\|nios_system_cmd_xbar_mux:cmd_xbar_mux\|altera_merlin_arbitrator:arb " "Elaborating entity \"altera_merlin_arbitrator\" for hierarchy \"nios_system:NiosII\|nios_system_cmd_xbar_mux:cmd_xbar_mux\|altera_merlin_arbitrator:arb\"" { } { { "db/ip/nios_system/submodules/nios_system_cmd_xbar_mux.sv" "arb" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_cmd_xbar_mux.sv" 273 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609947469 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "altera_merlin_arb_adder nios_system:NiosII\|nios_system_cmd_xbar_mux:cmd_xbar_mux\|altera_merlin_arbitrator:arb\|altera_merlin_arb_adder:adder " "Elaborating entity \"altera_merlin_arb_adder\" for hierarchy \"nios_system:NiosII\|nios_system_cmd_xbar_mux:cmd_xbar_mux\|altera_merlin_arbitrator:arb\|altera_merlin_arb_adder:adder\"" { } { { "db/ip/nios_system/submodules/altera_merlin_arbitrator.sv" "adder" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/altera_merlin_arbitrator.sv" 169 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609947472 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "nios_system_rsp_xbar_demux_002 nios_system:NiosII\|nios_system_rsp_xbar_demux_002:rsp_xbar_demux_002 " "Elaborating entity \"nios_system_rsp_xbar_demux_002\" for hierarchy \"nios_system:NiosII\|nios_system_rsp_xbar_demux_002:rsp_xbar_demux_002\"" { } { { "nios_system/synthesis/nios_system.v" "rsp_xbar_demux_002" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/synthesis/nios_system.v" 5558 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609947483 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "nios_system_rsp_xbar_mux nios_system:NiosII\|nios_system_rsp_xbar_mux:rsp_xbar_mux " "Elaborating entity \"nios_system_rsp_xbar_mux\" for hierarchy \"nios_system:NiosII\|nios_system_rsp_xbar_mux:rsp_xbar_mux\"" { } { { "nios_system/synthesis/nios_system.v" "rsp_xbar_mux" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/synthesis/nios_system.v" 5836 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609947510 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "altera_merlin_arbitrator nios_system:NiosII\|nios_system_rsp_xbar_mux:rsp_xbar_mux\|altera_merlin_arbitrator:arb " "Elaborating entity \"altera_merlin_arbitrator\" for hierarchy \"nios_system:NiosII\|nios_system_rsp_xbar_mux:rsp_xbar_mux\|altera_merlin_arbitrator:arb\"" { } { { "db/ip/nios_system/submodules/nios_system_rsp_xbar_mux.sv" "arb" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_rsp_xbar_mux.sv" 296 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609947514 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "nios_system_rsp_xbar_mux_001 nios_system:NiosII\|nios_system_rsp_xbar_mux_001:rsp_xbar_mux_001 " "Elaborating entity \"nios_system_rsp_xbar_mux_001\" for hierarchy \"nios_system:NiosII\|nios_system_rsp_xbar_mux_001:rsp_xbar_mux_001\"" { } { { "nios_system/synthesis/nios_system.v" "rsp_xbar_mux_001" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/synthesis/nios_system.v" 5955 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609947518 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "altera_merlin_arbitrator nios_system:NiosII\|nios_system_rsp_xbar_mux_001:rsp_xbar_mux_001\|altera_merlin_arbitrator:arb " "Elaborating entity \"altera_merlin_arbitrator\" for hierarchy \"nios_system:NiosII\|nios_system_rsp_xbar_mux_001:rsp_xbar_mux_001\|altera_merlin_arbitrator:arb\"" { } { { "db/ip/nios_system/submodules/nios_system_rsp_xbar_mux_001.sv" "arb" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_rsp_xbar_mux_001.sv" 552 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609947530 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "altera_merlin_arb_adder nios_system:NiosII\|nios_system_rsp_xbar_mux_001:rsp_xbar_mux_001\|altera_merlin_arbitrator:arb\|altera_merlin_arb_adder:adder " "Elaborating entity \"altera_merlin_arb_adder\" for hierarchy \"nios_system:NiosII\|nios_system_rsp_xbar_mux_001:rsp_xbar_mux_001\|altera_merlin_arbitrator:arb\|altera_merlin_arb_adder:adder\"" { } { { "db/ip/nios_system/submodules/altera_merlin_arbitrator.sv" "adder" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/altera_merlin_arbitrator.sv" 169 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609947533 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "nios_system_irq_mapper nios_system:NiosII\|nios_system_irq_mapper:irq_mapper " "Elaborating entity \"nios_system_irq_mapper\" for hierarchy \"nios_system:NiosII\|nios_system_irq_mapper:irq_mapper\"" { } { { "nios_system/synthesis/nios_system.v" "irq_mapper" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/synthesis/nios_system.v" 5962 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609947537 ""} +{ "Warning" "WSGN_CONNECTIVITY_WARNINGS" "5 " "5 hierarchies have connectivity warnings - see the Connectivity Checks report folder" { } { } 0 12241 "%1!d! hierarchies have connectivity warnings - see the Connectivity Checks report folder" 0 0 "Quartus II" 0 -1 1480609954485 ""} +{ "Warning" "WMLS_MLS_CONVERT_TRI_TO_OR_HDR" "" "Tri-state node(s) do not directly drive top-level pin(s)" { { "Warning" "WMLS_MLS_CONVERT_TRI_TO_OR" "nios_system:NiosII\|nios_system_lcd_16207_0:lcd_16207_0\|LCD_data\[0\] nios_system:NiosII\|altera_merlin_slave_translator:lcd_16207_0_control_slave_translator\|av_readdata_pre\[0\] " "Converted the fan-out from the tri-state buffer \"nios_system:NiosII\|nios_system_lcd_16207_0:lcd_16207_0\|LCD_data\[0\]\" to the node \"nios_system:NiosII\|altera_merlin_slave_translator:lcd_16207_0_control_slave_translator\|av_readdata_pre\[0\]\" into an OR gate" { } { { "db/ip/nios_system/submodules/nios_system_lcd_16207_0.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_lcd_16207_0.v" 43 -1 0 } } } 0 13047 "Converted the fan-out from the tri-state buffer \"%1!s!\" to the node \"%2!s!\" into an OR gate" 0 0 "Quartus II" 0 -1 1480609954635 ""} { "Warning" "WMLS_MLS_CONVERT_TRI_TO_OR" "nios_system:NiosII\|nios_system_lcd_16207_0:lcd_16207_0\|LCD_data\[1\] nios_system:NiosII\|altera_merlin_slave_translator:lcd_16207_0_control_slave_translator\|av_readdata_pre\[1\] " "Converted the fan-out from the tri-state buffer \"nios_system:NiosII\|nios_system_lcd_16207_0:lcd_16207_0\|LCD_data\[1\]\" to the node \"nios_system:NiosII\|altera_merlin_slave_translator:lcd_16207_0_control_slave_translator\|av_readdata_pre\[1\]\" into an OR gate" { } { { "db/ip/nios_system/submodules/nios_system_lcd_16207_0.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_lcd_16207_0.v" 43 -1 0 } } } 0 13047 "Converted the fan-out from the tri-state buffer \"%1!s!\" to the node \"%2!s!\" into an OR gate" 0 0 "Quartus II" 0 -1 1480609954635 ""} { "Warning" "WMLS_MLS_CONVERT_TRI_TO_OR" "nios_system:NiosII\|nios_system_lcd_16207_0:lcd_16207_0\|LCD_data\[2\] nios_system:NiosII\|altera_merlin_slave_translator:lcd_16207_0_control_slave_translator\|av_readdata_pre\[2\] " "Converted the fan-out from the tri-state buffer \"nios_system:NiosII\|nios_system_lcd_16207_0:lcd_16207_0\|LCD_data\[2\]\" to the node \"nios_system:NiosII\|altera_merlin_slave_translator:lcd_16207_0_control_slave_translator\|av_readdata_pre\[2\]\" into an OR gate" { } { { "db/ip/nios_system/submodules/nios_system_lcd_16207_0.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_lcd_16207_0.v" 43 -1 0 } } } 0 13047 "Converted the fan-out from the tri-state buffer \"%1!s!\" to the node \"%2!s!\" into an OR gate" 0 0 "Quartus II" 0 -1 1480609954635 ""} { "Warning" "WMLS_MLS_CONVERT_TRI_TO_OR" "nios_system:NiosII\|nios_system_lcd_16207_0:lcd_16207_0\|LCD_data\[3\] nios_system:NiosII\|altera_merlin_slave_translator:lcd_16207_0_control_slave_translator\|av_readdata_pre\[3\] " "Converted the fan-out from the tri-state buffer \"nios_system:NiosII\|nios_system_lcd_16207_0:lcd_16207_0\|LCD_data\[3\]\" to the node \"nios_system:NiosII\|altera_merlin_slave_translator:lcd_16207_0_control_slave_translator\|av_readdata_pre\[3\]\" into an OR gate" { } { { "db/ip/nios_system/submodules/nios_system_lcd_16207_0.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_lcd_16207_0.v" 43 -1 0 } } } 0 13047 "Converted the fan-out from the tri-state buffer \"%1!s!\" to the node \"%2!s!\" into an OR gate" 0 0 "Quartus II" 0 -1 1480609954635 ""} { "Warning" "WMLS_MLS_CONVERT_TRI_TO_OR" "nios_system:NiosII\|nios_system_lcd_16207_0:lcd_16207_0\|LCD_data\[4\] nios_system:NiosII\|altera_merlin_slave_translator:lcd_16207_0_control_slave_translator\|av_readdata_pre\[4\] " "Converted the fan-out from the tri-state buffer \"nios_system:NiosII\|nios_system_lcd_16207_0:lcd_16207_0\|LCD_data\[4\]\" to the node \"nios_system:NiosII\|altera_merlin_slave_translator:lcd_16207_0_control_slave_translator\|av_readdata_pre\[4\]\" into an OR gate" { } { { "db/ip/nios_system/submodules/nios_system_lcd_16207_0.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_lcd_16207_0.v" 43 -1 0 } } } 0 13047 "Converted the fan-out from the tri-state buffer \"%1!s!\" to the node \"%2!s!\" into an OR gate" 0 0 "Quartus II" 0 -1 1480609954635 ""} { "Warning" "WMLS_MLS_CONVERT_TRI_TO_OR" "nios_system:NiosII\|nios_system_lcd_16207_0:lcd_16207_0\|LCD_data\[5\] nios_system:NiosII\|altera_merlin_slave_translator:lcd_16207_0_control_slave_translator\|av_readdata_pre\[5\] " "Converted the fan-out from the tri-state buffer \"nios_system:NiosII\|nios_system_lcd_16207_0:lcd_16207_0\|LCD_data\[5\]\" to the node \"nios_system:NiosII\|altera_merlin_slave_translator:lcd_16207_0_control_slave_translator\|av_readdata_pre\[5\]\" into an OR gate" { } { { "db/ip/nios_system/submodules/nios_system_lcd_16207_0.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_lcd_16207_0.v" 43 -1 0 } } } 0 13047 "Converted the fan-out from the tri-state buffer \"%1!s!\" to the node \"%2!s!\" into an OR gate" 0 0 "Quartus II" 0 -1 1480609954635 ""} { "Warning" "WMLS_MLS_CONVERT_TRI_TO_OR" "nios_system:NiosII\|nios_system_lcd_16207_0:lcd_16207_0\|LCD_data\[6\] nios_system:NiosII\|altera_merlin_slave_translator:lcd_16207_0_control_slave_translator\|av_readdata_pre\[6\] " "Converted the fan-out from the tri-state buffer \"nios_system:NiosII\|nios_system_lcd_16207_0:lcd_16207_0\|LCD_data\[6\]\" to the node \"nios_system:NiosII\|altera_merlin_slave_translator:lcd_16207_0_control_slave_translator\|av_readdata_pre\[6\]\" into an OR gate" { } { { "db/ip/nios_system/submodules/nios_system_lcd_16207_0.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_lcd_16207_0.v" 43 -1 0 } } } 0 13047 "Converted the fan-out from the tri-state buffer \"%1!s!\" to the node \"%2!s!\" into an OR gate" 0 0 "Quartus II" 0 -1 1480609954635 ""} { "Warning" "WMLS_MLS_CONVERT_TRI_TO_OR" "nios_system:NiosII\|nios_system_lcd_16207_0:lcd_16207_0\|LCD_data\[7\] nios_system:NiosII\|altera_merlin_slave_translator:lcd_16207_0_control_slave_translator\|av_readdata_pre\[7\] " "Converted the fan-out from the tri-state buffer \"nios_system:NiosII\|nios_system_lcd_16207_0:lcd_16207_0\|LCD_data\[7\]\" to the node \"nios_system:NiosII\|altera_merlin_slave_translator:lcd_16207_0_control_slave_translator\|av_readdata_pre\[7\]\" into an OR gate" { } { { "db/ip/nios_system/submodules/nios_system_lcd_16207_0.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_lcd_16207_0.v" 43 -1 0 } } } 0 13047 "Converted the fan-out from the tri-state buffer \"%1!s!\" to the node \"%2!s!\" into an OR gate" 0 0 "Quartus II" 0 -1 1480609954635 ""} } { } 0 13046 "Tri-state node(s) do not directly drive top-level pin(s)" 0 0 "Quartus II" 0 -1 1480609954635 ""} +{ "Info" "IMLS_MLS_PRESET_POWER_UP" "" "Registers with preset signals will power-up high" { } { { "db/ip/nios_system/submodules/altera_merlin_master_agent.sv" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/altera_merlin_master_agent.sv" 276 -1 0 } } { "db/ip/nios_system/submodules/nios_system_jtag_uart.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_jtag_uart.v" 348 -1 0 } } { "db/ip/nios_system/submodules/nios_system_nios2_processor.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor.v" 3167 -1 0 } } { "db/ip/nios_system/submodules/altera_merlin_arbitrator.sv" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/altera_merlin_arbitrator.sv" 203 -1 0 } } { "alt_jtag_atlantic.v" "" { Text "c:/altera/13.0sp1/quartus/libraries/megafunctions/alt_jtag_atlantic.v" 291 -1 0 } } { "db/ip/nios_system/submodules/nios_system_nios2_processor.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor.v" 3740 -1 0 } } { "db/ip/nios_system/submodules/nios_system_jtag_uart.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_jtag_uart.v" 393 -1 0 } } { "db/ip/nios_system/submodules/nios_system_nios2_processor.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor.v" 599 -1 0 } } { "alt_jtag_atlantic.v" "" { Text "c:/altera/13.0sp1/quartus/libraries/megafunctions/alt_jtag_atlantic.v" 224 -1 0 } } { "db/ip/nios_system/submodules/altera_reset_synchronizer.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/altera_reset_synchronizer.v" 62 -1 0 } } } 0 13000 "Registers with preset signals will power-up high" 0 0 "Quartus II" 0 -1 1480609954692 ""} +{ "Info" "IMLS_MLS_DEV_CLRN_SETS_REGISTERS" "" "DEV_CLRn pin will set, and not reset, register with preset signal due to NOT Gate Push-Back" { } { } 0 13003 "DEV_CLRn pin will set, and not reset, register with preset signal due to NOT Gate Push-Back" 0 0 "Quartus II" 0 -1 1480609954693 ""} +{ "Info" "ISUTIL_TIMING_DRIVEN_SYNTHESIS_RUNNING_ON_PARTITION" "Top " "Timing-Driven Synthesis is running on partition \"Top\"" { } { } 0 286031 "Timing-Driven Synthesis is running on partition \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609956253 ""} +{ "Info" "ISCL_SCL_LOST_FANOUT_MSG_HDR" "166 " "166 registers lost all their fanouts during netlist optimizations." { } { } 0 17049 "%1!d! registers lost all their fanouts during netlist optimizations." 0 0 "Quartus II" 0 -1 1480609958838 ""} +{ "Info" "IMLS_MLS_PRESET_POWER_UP" "" "Registers with preset signals will power-up high" { } { { "sld_jtag_hub.vhd" "" { Text "c:/altera/13.0sp1/quartus/libraries/megafunctions/sld_jtag_hub.vhd" 384 -1 0 } } { "sld_jtag_hub.vhd" "" { Text "c:/altera/13.0sp1/quartus/libraries/megafunctions/sld_jtag_hub.vhd" 521 -1 0 } } } 0 13000 "Registers with preset signals will power-up high" 0 0 "Quartus II" 0 -1 1480609958984 ""} +{ "Info" "IMLS_MLS_DEV_CLRN_SETS_REGISTERS" "" "DEV_CLRn pin will set, and not reset, register with preset signal due to NOT Gate Push-Back" { } { } 0 13003 "DEV_CLRn pin will set, and not reset, register with preset signal due to NOT Gate Push-Back" 0 0 "Quartus II" 0 -1 1480609958984 ""} +{ "Warning" "WMLS_MLS_STUCK_PIN_HDR" "" "Output pins are stuck at VCC or GND" { { "Warning" "WMLS_MLS_STUCK_PIN" "sld_hub:auto_hub\|receive\[0\]\[0\] GND " "Pin \"sld_hub:auto_hub\|receive\[0\]\[0\]\" is stuck at GND" { } { { "sld_hub.vhd" "" { Text "c:/altera/13.0sp1/quartus/libraries/megafunctions/sld_hub.vhd" 181 -1 0 } } } 0 13410 "Pin \"%1!s!\" is stuck at %2!s!" 0 0 "Quartus II" 0 -1 1480609959077 "|lights|sld_hub:auto_hub|receive[0][0]"} } { } 0 13024 "Output pins are stuck at VCC or GND" 0 0 "Quartus II" 0 -1 1480609959077 ""} +{ "Info" "ISUTIL_TIMING_DRIVEN_SYNTHESIS_RUNNING_ON_PARTITION" "sld_hub:auto_hub " "Timing-Driven Synthesis is running on partition \"sld_hub:auto_hub\"" { } { } 0 286031 "Timing-Driven Synthesis is running on partition \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609959224 ""} +{ "Info" "IRDB_WROTE_SUPPRESSED_MSGS" "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/output_files/lights.map.smsg " "Generated suppressed messages file C:/Users/takayun/Documents/DE2-115/qsys_tutorial/output_files/lights.map.smsg" { } { } 0 144001 "Generated suppressed messages file %1!s!" 0 0 "Quartus II" 0 -1 1480609959839 ""} +{ "Info" "IBPM_HARD_BLOCK_PARTITION_CREATED" "hard_block:auto_generated_inst " "Generating hard_block partition \"hard_block:auto_generated_inst\"" { { "Info" "IBPM_HARD_BLOCK_PARTITION_NODE" "0 0 0 0 0 " "Adding 0 node(s), including 0 DDIO, 0 PLL, 0 transceiver and 0 LCELL" { } { } 0 16011 "Adding %1!d! node(s), including %2!d! DDIO, %3!d! PLL, %4!d! transceiver and %5!d! LCELL" 0 0 "Quartus II" 0 -1 1480609960862 ""} } { } 0 16010 "Generating hard_block partition \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609960862 ""} +{ "Info" "ICUT_CUT_TM_SUMMARY" "2881 " "Implemented 2881 device resources after synthesis - the final resource count might be different" { { "Info" "ICUT_CUT_TM_IPINS" "26 " "Implemented 26 input pins" { } { } 0 21058 "Implemented %1!d! input pins" 0 0 "Quartus II" 0 -1 1480609961572 ""} { "Info" "ICUT_CUT_TM_OPINS" "96 " "Implemented 96 output pins" { } { } 0 21059 "Implemented %1!d! output pins" 0 0 "Quartus II" 0 -1 1480609961572 ""} { "Info" "ICUT_CUT_TM_LCELLS" "2422 " "Implemented 2422 logic cells" { } { } 0 21061 "Implemented %1!d! logic cells" 0 0 "Quartus II" 0 -1 1480609961572 ""} { "Info" "ICUT_CUT_TM_RAMS" "336 " "Implemented 336 RAM segments" { } { } 0 21064 "Implemented %1!d! RAM segments" 0 0 "Quartus II" 0 -1 1480609961572 ""} } { } 0 21057 "Implemented %1!d! device resources after synthesis - the final resource count might be different" 0 0 "Quartus II" 0 -1 1480609961572 ""} +{ "Info" "IQEXE_ERROR_COUNT" "Analysis & Synthesis 0 s 149 s Quartus II 64-Bit " "Quartus II 64-Bit Analysis & Synthesis was successful. 0 errors, 149 warnings" { { "Info" "IQEXE_END_PEAK_VSIZE_MEMORY" "654 " "Peak virtual memory: 654 megabytes" { } { } 0 0 "Peak virtual memory: %1!s! megabytes" 0 0 "Quartus II" 0 -1 1480609961680 ""} { "Info" "IQEXE_END_BANNER_TIME" "Fri Dec 02 01:32:41 2016 " "Processing ended: Fri Dec 02 01:32:41 2016" { } { } 0 0 "Processing ended: %1!s!" 0 0 "Quartus II" 0 -1 1480609961680 ""} { "Info" "IQEXE_ELAPSED_TIME" "00:00:34 " "Elapsed time: 00:00:34" { } { } 0 0 "Elapsed time: %1!s!" 0 0 "Quartus II" 0 -1 1480609961680 ""} { "Info" "IQEXE_ELAPSED_CPU_TIME" "00:00:33 " "Total CPU time (on all processors): 00:00:33" { } { } 0 0 "Total CPU time (on all processors): %1!s!" 0 0 "Quartus II" 0 -1 1480609961680 ""} } { } 0 0 "%6!s! %1!s! was successful. %2!d! error%3!s!, %4!d! warning%5!s!" 0 0 "Quartus II" 0 -1 1480609961680 ""} diff --git a/db/lights.map.rdb b/db/lights.map.rdb new file mode 100644 index 0000000..7ece1a4 --- /dev/null +++ b/db/lights.map.rdb Binary files differ diff --git a/db/lights.map_bb.cdb b/db/lights.map_bb.cdb new file mode 100644 index 0000000..855b759 --- /dev/null +++ b/db/lights.map_bb.cdb Binary files differ diff --git a/db/lights.map_bb.hdb b/db/lights.map_bb.hdb new file mode 100644 index 0000000..17327b9 --- /dev/null +++ b/db/lights.map_bb.hdb Binary files differ diff --git a/db/lights.map_bb.logdb b/db/lights.map_bb.logdb new file mode 100644 index 0000000..626799f --- /dev/null +++ b/db/lights.map_bb.logdb @@ -0,0 +1 @@ +v1 diff --git a/db/lights.pre_map.hdb b/db/lights.pre_map.hdb new file mode 100644 index 0000000..d4a06ad --- /dev/null +++ b/db/lights.pre_map.hdb Binary files differ diff --git a/db/lights.pti_db_list.ddb b/db/lights.pti_db_list.ddb new file mode 100644 index 0000000..89aa9b4 --- /dev/null +++ b/db/lights.pti_db_list.ddb Binary files differ diff --git a/db/lights.root_partition.map.reg_db.cdb b/db/lights.root_partition.map.reg_db.cdb new file mode 100644 index 0000000..273c591 --- /dev/null +++ b/db/lights.root_partition.map.reg_db.cdb Binary files differ diff --git a/db/lights.routing.rdb b/db/lights.routing.rdb new file mode 100644 index 0000000..18abead --- /dev/null +++ b/db/lights.routing.rdb Binary files differ diff --git a/db/lights.rtlv.hdb b/db/lights.rtlv.hdb new file mode 100644 index 0000000..52d09b3 --- /dev/null +++ b/db/lights.rtlv.hdb Binary files differ diff --git a/db/lights.rtlv_sg.cdb b/db/lights.rtlv_sg.cdb new file mode 100644 index 0000000..b4cfdd8 --- /dev/null +++ b/db/lights.rtlv_sg.cdb Binary files differ diff --git a/db/lights.rtlv_sg_swap.cdb b/db/lights.rtlv_sg_swap.cdb new file mode 100644 index 0000000..b0df21c --- /dev/null +++ b/db/lights.rtlv_sg_swap.cdb Binary files differ diff --git a/db/lights.sgdiff.cdb b/db/lights.sgdiff.cdb new file mode 100644 index 0000000..d2fe7ab --- /dev/null +++ b/db/lights.sgdiff.cdb Binary files differ diff --git a/db/lights.sgdiff.hdb b/db/lights.sgdiff.hdb new file mode 100644 index 0000000..f15c16f --- /dev/null +++ b/db/lights.sgdiff.hdb Binary files differ diff --git a/db/lights.sld_design_entry.sci b/db/lights.sld_design_entry.sci new file mode 100644 index 0000000..1d6d60f --- /dev/null +++ b/db/lights.sld_design_entry.sci Binary files differ diff --git a/db/lights.sld_design_entry_dsc.sci b/db/lights.sld_design_entry_dsc.sci new file mode 100644 index 0000000..828738f --- /dev/null +++ b/db/lights.sld_design_entry_dsc.sci Binary files differ diff --git a/db/lights.smart_action.txt b/db/lights.smart_action.txt new file mode 100644 index 0000000..c8e8a13 --- /dev/null +++ b/db/lights.smart_action.txt @@ -0,0 +1 @@ +DONE diff --git a/db/lights.smp_dump.txt b/db/lights.smp_dump.txt new file mode 100644 index 0000000..ac16d24 --- /dev/null +++ b/db/lights.smp_dump.txt @@ -0,0 +1,9 @@ + +State Machine - |lights|nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|DRsize +Name DRsize.101 DRsize.100 DRsize.011 DRsize.010 DRsize.001 DRsize.000 +DRsize.000 0 0 0 0 0 0 +DRsize.001 0 0 0 0 1 1 +DRsize.010 0 0 0 1 0 1 +DRsize.011 0 0 1 0 0 1 +DRsize.100 0 1 0 0 0 1 +DRsize.101 1 0 0 0 0 1 diff --git a/db/lights.sta.qmsg b/db/lights.sta.qmsg new file mode 100644 index 0000000..5c9f85f --- /dev/null +++ b/db/lights.sta.qmsg @@ -0,0 +1,43 @@ +{ "Info" "IQEXE_SEPARATOR" "" "*******************************************************************" { } { } 3 0 "*******************************************************************" 0 0 "Quartus II" 0 -1 1480610002504 ""} +{ "Info" "IQEXE_START_BANNER_PRODUCT" "TimeQuest Timing Analyzer Quartus II 64-Bit " "Running Quartus II 64-Bit TimeQuest Timing Analyzer" { { "Info" "IQEXE_START_BANNER_VERSION" "Version 13.0.1 Build 232 06/12/2013 Service Pack 1 SJ Web Edition " "Version 13.0.1 Build 232 06/12/2013 Service Pack 1 SJ Web Edition" { } { } 0 0 "%1!s!" 0 0 "Quartus II" 0 -1 1480610002505 ""} { "Info" "IQEXE_START_BANNER_TIME" "Fri Dec 02 01:33:22 2016 " "Processing started: Fri Dec 02 01:33:22 2016" { } { } 0 0 "Processing started: %1!s!" 0 0 "Quartus II" 0 -1 1480610002505 ""} } { } 4 0 "Running %2!s! %1!s!" 0 0 "Quartus II" 0 -1 1480610002505 ""} +{ "Info" "IQEXE_START_BANNER_COMMANDLINE" "quartus_sta lights -c lights " "Command: quartus_sta lights -c lights" { } { } 0 0 "Command: %1!s!" 0 0 "Quartus II" 0 -1 1480610002505 ""} +{ "Info" "0" "" "qsta_default_script.tcl version: #1" { } { } 0 0 "qsta_default_script.tcl version: #1" 0 0 "Quartus II" 0 0 1480610002592 ""} +{ "Warning" "WQCU_PARALLEL_NO_LICENSE" "" "Parallel compilation is not licensed and has been disabled" { } { } 0 20028 "Parallel compilation is not licensed and has been disabled" 0 0 "Quartus II" 0 -1 1480610003035 ""} +{ "Info" "ICUT_CUT_USING_OPERATING_CONDITION" "Core supply voltage 1.2V " "Core supply voltage is 1.2V" { } { } 0 21077 "%1!s! is %2!s!" 0 0 "Quartus II" 0 -1 1480610003035 ""} +{ "Info" "ICUT_CUT_USING_OPERATING_CONDITION" "Low junction temperature 0 degrees C " "Low junction temperature is 0 degrees C" { } { } 0 21077 "%1!s! is %2!s!" 0 0 "Quartus II" 0 -1 1480610003113 ""} +{ "Info" "ICUT_CUT_USING_OPERATING_CONDITION" "High junction temperature 85 degrees C " "High junction temperature is 85 degrees C" { } { } 0 21077 "%1!s! is %2!s!" 0 0 "Quartus II" 0 -1 1480610003113 ""} +{ "Info" "ISTA_SDC_STATEMENT_PARENT" "" "Evaluating HDL-embedded SDC commands" { { "Info" "ISTA_SDC_STATEMENT_ENTITY" "alt_jtag_atlantic " "Entity alt_jtag_atlantic" { { "Info" "ISTA_SDC_STATEMENT_EVAL" "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|jupdate\}\] -to \[get_registers \{*\|alt_jtag_atlantic:*\|jupdate1*\}\] " "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|jupdate\}\] -to \[get_registers \{*\|alt_jtag_atlantic:*\|jupdate1*\}\] " { } { } 0 332166 "%1!s!" 0 0 "Quartus II" 0 -1 1480610003901 ""} { "Info" "ISTA_SDC_STATEMENT_EVAL" "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|rdata\[*\]\}\] -to \[get_registers \{*\|alt_jtag_atlantic*\|td_shift\[*\]\}\] " "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|rdata\[*\]\}\] -to \[get_registers \{*\|alt_jtag_atlantic*\|td_shift\[*\]\}\]" { } { } 0 332166 "%1!s!" 0 0 "Quartus II" 0 -1 1480610003901 ""} { "Info" "ISTA_SDC_STATEMENT_EVAL" "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|rdata\[*\]\}\] -to \[get_registers \{*\|alt_jtag_atlantic*\|td_shift\[*\]\}\] " "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|rdata\[*\]\}\] -to \[get_registers \{*\|alt_jtag_atlantic*\|td_shift\[*\]\}\]" { } { } 0 332166 "%1!s!" 0 0 "Quartus II" 0 -1 1480610003901 ""} { "Info" "ISTA_SDC_STATEMENT_EVAL" "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|rdata\[*\]\}\] -to \[get_registers \{*\|alt_jtag_atlantic*\|td_shift\[*\]\}\] " "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|rdata\[*\]\}\] -to \[get_registers \{*\|alt_jtag_atlantic*\|td_shift\[*\]\}\]" { } { } 0 332166 "%1!s!" 0 0 "Quartus II" 0 -1 1480610003901 ""} { "Info" "ISTA_SDC_STATEMENT_EVAL" "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|rdata\[*\]\}\] -to \[get_registers \{*\|alt_jtag_atlantic*\|td_shift\[*\]\}\] " "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|rdata\[*\]\}\] -to \[get_registers \{*\|alt_jtag_atlantic*\|td_shift\[*\]\}\]" { } { } 0 332166 "%1!s!" 0 0 "Quartus II" 0 -1 1480610003901 ""} { "Info" "ISTA_SDC_STATEMENT_EVAL" "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|rdata\[*\]\}\] -to \[get_registers \{*\|alt_jtag_atlantic*\|td_shift\[*\]\}\] " "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|rdata\[*\]\}\] -to \[get_registers \{*\|alt_jtag_atlantic*\|td_shift\[*\]\}\]" { } { } 0 332166 "%1!s!" 0 0 "Quartus II" 0 -1 1480610003901 ""} { "Info" "ISTA_SDC_STATEMENT_EVAL" "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|rdata\[*\]\}\] -to \[get_registers \{*\|alt_jtag_atlantic*\|td_shift\[*\]\}\] " "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|rdata\[*\]\}\] -to \[get_registers \{*\|alt_jtag_atlantic*\|td_shift\[*\]\}\]" { } { } 0 332166 "%1!s!" 0 0 "Quartus II" 0 -1 1480610003901 ""} { "Info" "ISTA_SDC_STATEMENT_EVAL" "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|rdata\[*\]\}\] -to \[get_registers \{*\|alt_jtag_atlantic*\|td_shift\[*\]\}\] " "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|rdata\[*\]\}\] -to \[get_registers \{*\|alt_jtag_atlantic*\|td_shift\[*\]\}\]" { } { } 0 332166 "%1!s!" 0 0 "Quartus II" 0 -1 1480610003901 ""} { "Info" "ISTA_SDC_STATEMENT_EVAL" "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|rdata\[*\]\}\] -to \[get_registers \{*\|alt_jtag_atlantic*\|td_shift\[*\]\}\] " "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|rdata\[*\]\}\] -to \[get_registers \{*\|alt_jtag_atlantic*\|td_shift\[*\]\}\]" { } { } 0 332166 "%1!s!" 0 0 "Quartus II" 0 -1 1480610003901 ""} { "Info" "ISTA_SDC_STATEMENT_EVAL" "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|read\}\] -to \[get_registers \{*\|alt_jtag_atlantic:*\|read1*\}\] " "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|read\}\] -to \[get_registers \{*\|alt_jtag_atlantic:*\|read1*\}\] " { } { } 0 332166 "%1!s!" 0 0 "Quartus II" 0 -1 1480610003901 ""} { "Info" "ISTA_SDC_STATEMENT_EVAL" "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|read_req\}\] " "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|read_req\}\]" { } { } 0 332166 "%1!s!" 0 0 "Quartus II" 0 -1 1480610003901 ""} { "Info" "ISTA_SDC_STATEMENT_EVAL" "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|rvalid\}\] -to \[get_registers \{*\|alt_jtag_atlantic*\|td_shift\[*\]\}\] " "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|rvalid\}\] -to \[get_registers \{*\|alt_jtag_atlantic*\|td_shift\[*\]\}\]" { } { } 0 332166 "%1!s!" 0 0 "Quartus II" 0 -1 1480610003901 ""} { "Info" "ISTA_SDC_STATEMENT_EVAL" "set_false_path -from \[get_registers \{*\|t_dav\}\] -to \[get_registers \{*\|alt_jtag_atlantic:*\|tck_t_dav\}\] " "set_false_path -from \[get_registers \{*\|t_dav\}\] -to \[get_registers \{*\|alt_jtag_atlantic:*\|tck_t_dav\}\]" { } { } 0 332166 "%1!s!" 0 0 "Quartus II" 0 -1 1480610003901 ""} { "Info" "ISTA_SDC_STATEMENT_EVAL" "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|user_saw_rvalid\}\] -to \[get_registers \{*\|alt_jtag_atlantic:*\|rvalid0*\}\] " "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|user_saw_rvalid\}\] -to \[get_registers \{*\|alt_jtag_atlantic:*\|rvalid0*\}\]" { } { } 0 332166 "%1!s!" 0 0 "Quartus II" 0 -1 1480610003901 ""} { "Info" "ISTA_SDC_STATEMENT_EVAL" "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|wdata\[*\]\}\] -to \[get_registers \{*\}\] " "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|wdata\[*\]\}\] -to \[get_registers \{*\}\]" { } { } 0 332166 "%1!s!" 0 0 "Quartus II" 0 -1 1480610003901 ""} { "Info" "ISTA_SDC_STATEMENT_EVAL" "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|wdata\[*\]\}\] -to \[get_registers \{*\}\] " "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|wdata\[*\]\}\] -to \[get_registers \{*\}\]" { } { } 0 332166 "%1!s!" 0 0 "Quartus II" 0 -1 1480610003901 ""} { "Info" "ISTA_SDC_STATEMENT_EVAL" "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|wdata\[*\]\}\] -to \[get_registers \{*\}\] " "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|wdata\[*\]\}\] -to \[get_registers \{*\}\]" { } { } 0 332166 "%1!s!" 0 0 "Quartus II" 0 -1 1480610003901 ""} { "Info" "ISTA_SDC_STATEMENT_EVAL" "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|wdata\[*\]\}\] -to \[get_registers \{*\}\] " "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|wdata\[*\]\}\] -to \[get_registers \{*\}\]" { } { } 0 332166 "%1!s!" 0 0 "Quartus II" 0 -1 1480610003901 ""} { "Info" "ISTA_SDC_STATEMENT_EVAL" "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|wdata\[*\]\}\] -to \[get_registers \{*\}\] " "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|wdata\[*\]\}\] -to \[get_registers \{*\}\]" { } { } 0 332166 "%1!s!" 0 0 "Quartus II" 0 -1 1480610003901 ""} { "Info" "ISTA_SDC_STATEMENT_EVAL" "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|wdata\[*\]\}\] -to \[get_registers \{*\}\] " "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|wdata\[*\]\}\] -to \[get_registers \{*\}\]" { } { } 0 332166 "%1!s!" 0 0 "Quartus II" 0 -1 1480610003901 ""} { "Info" "ISTA_SDC_STATEMENT_EVAL" "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|wdata\[*\]\}\] -to \[get_registers \{*\}\] " "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|wdata\[*\]\}\] -to \[get_registers \{*\}\]" { } { } 0 332166 "%1!s!" 0 0 "Quartus II" 0 -1 1480610003901 ""} { "Info" "ISTA_SDC_STATEMENT_EVAL" "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|wdata\[*\]\}\] -to \[get_registers \{*\}\] " "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|wdata\[*\]\}\] -to \[get_registers \{*\}\]" { } { } 0 332166 "%1!s!" 0 0 "Quartus II" 0 -1 1480610003901 ""} { "Info" "ISTA_SDC_STATEMENT_EVAL" "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|write\}\] -to \[get_registers \{*\|alt_jtag_atlantic:*\|write1*\}\] " "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|write\}\] -to \[get_registers \{*\|alt_jtag_atlantic:*\|write1*\}\] " { } { } 0 332166 "%1!s!" 0 0 "Quartus II" 0 -1 1480610003901 ""} { "Info" "ISTA_SDC_STATEMENT_EVAL" "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|write_stalled\}\] -to \[get_registers \{*\|alt_jtag_atlantic:*\|t_ena*\}\] " "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|write_stalled\}\] -to \[get_registers \{*\|alt_jtag_atlantic:*\|t_ena*\}\]" { } { } 0 332166 "%1!s!" 0 0 "Quartus II" 0 -1 1480610003901 ""} { "Info" "ISTA_SDC_STATEMENT_EVAL" "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|write_stalled\}\] -to \[get_registers \{*\|alt_jtag_atlantic:*\|t_pause*\}\] " "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|write_stalled\}\] -to \[get_registers \{*\|alt_jtag_atlantic:*\|t_pause*\}\]" { } { } 0 332166 "%1!s!" 0 0 "Quartus II" 0 -1 1480610003901 ""} { "Info" "ISTA_SDC_STATEMENT_EVAL" "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|write_valid\}\] " "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|write_valid\}\]" { } { } 0 332166 "%1!s!" 0 0 "Quartus II" 0 -1 1480610003901 ""} } { } 0 332165 "Entity %1!s!" 0 0 "Quartus II" 0 -1 1480610003901 ""} { "Info" "ISTA_SDC_STATEMENT_ENTITY" "altera_std_synchronizer " "Entity altera_std_synchronizer" { { "Info" "ISTA_SDC_STATEMENT_EVAL" "set_false_path -to \[get_keepers \{*altera_std_synchronizer:*\|din_s1\}\] " "set_false_path -to \[get_keepers \{*altera_std_synchronizer:*\|din_s1\}\]" { } { } 0 332166 "%1!s!" 0 0 "Quartus II" 0 -1 1480610003901 ""} } { } 0 332165 "Entity %1!s!" 0 0 "Quartus II" 0 -1 1480610003901 ""} { "Info" "ISTA_SDC_STATEMENT_ENTITY" "sld_jtag_hub " "Entity sld_jtag_hub" { { "Info" "ISTA_SDC_STATEMENT_EVAL" "create_clock -name altera_reserved_tck \[get_ports \{altera_reserved_tck\}\] -period 10MHz " "create_clock -name altera_reserved_tck \[get_ports \{altera_reserved_tck\}\] -period 10MHz " { } { } 0 332166 "%1!s!" 0 0 "Quartus II" 0 -1 1480610003901 ""} { "Info" "ISTA_SDC_STATEMENT_EVAL" "set_clock_groups -asynchronous -group \{altera_reserved_tck\} " "set_clock_groups -asynchronous -group \{altera_reserved_tck\}" { } { } 0 332166 "%1!s!" 0 0 "Quartus II" 0 -1 1480610003901 ""} } { } 0 332165 "Entity %1!s!" 0 0 "Quartus II" 0 -1 1480610003901 ""} } { } 0 332164 "Evaluating HDL-embedded SDC commands" 0 0 "Quartus II" 0 -1 1480610003901 ""} +{ "Critical Warning" "WSTA_SDC_NOT_FOUND" "lights.sdc " "Synopsys Design Constraints File file not found: 'lights.sdc'. A Synopsys Design Constraints File is required by the TimeQuest Timing Analyzer to get proper timing constraints. Without it, the Compiler will not properly optimize the design." { } { } 1 332012 "Synopsys Design Constraints File file not found: '%1!s!'. A Synopsys Design Constraints File is required by the TimeQuest Timing Analyzer to get proper timing constraints. Without it, the Compiler will not properly optimize the design." 0 0 "Quartus II" 0 -1 1480610003940 ""} +{ "Warning" "WSTA_NODE_FOUND_WITHOUT_CLOCK_ASSIGNMENT" "CLOCK_50 " "Node: CLOCK_50 was determined to be a clock but was found without an associated clock assignment." { } { } 0 332060 "Node: %1!s! was determined to be a clock but was found without an associated clock assignment." 0 0 "Quartus II" 0 -1 1480610003950 "|lights|CLOCK_50"} +{ "Critical Warning" "WSTA_NO_UNCERTAINTY_WAS_SET_PARENT" "" "The following clock transfers have no clock uncertainty assignment. For more accurate results, apply clock uncertainty assignments or use the derive_clock_uncertainty command." { { "Critical Warning" "WSTA_NO_UNCERTAINTY_WAS_SET_CHILD" "altera_reserved_tck (Rise) altera_reserved_tck (Rise) setup and hold " "From altera_reserved_tck (Rise) to altera_reserved_tck (Rise) (setup and hold)" { } { } 1 332169 "From %1!s! to %2!s! (%3!s!)" 0 0 "Quartus II" 0 -1 1480610004496 ""} { "Critical Warning" "WSTA_NO_UNCERTAINTY_WAS_SET_CHILD" "altera_reserved_tck (Rise) altera_reserved_tck (Fall) setup and hold " "From altera_reserved_tck (Rise) to altera_reserved_tck (Fall) (setup and hold)" { } { } 1 332169 "From %1!s! to %2!s! (%3!s!)" 0 0 "Quartus II" 0 -1 1480610004496 ""} { "Critical Warning" "WSTA_NO_UNCERTAINTY_WAS_SET_CHILD" "altera_reserved_tck (Fall) altera_reserved_tck (Fall) setup and hold " "From altera_reserved_tck (Fall) to altera_reserved_tck (Fall) (setup and hold)" { } { } 1 332169 "From %1!s! to %2!s! (%3!s!)" 0 0 "Quartus II" 0 -1 1480610004496 ""} } { } 1 332168 "The following clock transfers have no clock uncertainty assignment. For more accurate results, apply clock uncertainty assignments or use the derive_clock_uncertainty command." 0 0 "Quartus II" 0 -1 1480610004496 ""} +{ "Info" "0" "" "Found TIMEQUEST_REPORT_SCRIPT_INCLUDE_DEFAULT_ANALYSIS = ON" { } { } 0 0 "Found TIMEQUEST_REPORT_SCRIPT_INCLUDE_DEFAULT_ANALYSIS = ON" 0 0 "Quartus II" 0 0 1480610004497 ""} +{ "Info" "0" "" "Analyzing Slow 1200mV 85C Model" { } { } 0 0 "Analyzing Slow 1200mV 85C Model" 0 0 "Quartus II" 0 0 1480610004562 ""} +{ "Info" "ISTA_WORST_CASE_SLACK" "setup 45.777 " "Worst-case setup slack is 45.777" { { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" " Slack End Point TNS Clock " " Slack End Point TNS Clock " { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1480610004591 ""} { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" "========= ============= ===================== " "========= ============= =====================" { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1480610004591 ""} { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" " 45.777 0.000 altera_reserved_tck " " 45.777 0.000 altera_reserved_tck " { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1480610004591 ""} } { } 0 332146 "Worst-case %1!s! slack is %2!s!" 0 0 "Quartus II" 0 -1 1480610004591 ""} +{ "Info" "ISTA_WORST_CASE_SLACK" "hold 0.403 " "Worst-case hold slack is 0.403" { { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" " Slack End Point TNS Clock " " Slack End Point TNS Clock " { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1480610004600 ""} { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" "========= ============= ===================== " "========= ============= =====================" { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1480610004600 ""} { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" " 0.403 0.000 altera_reserved_tck " " 0.403 0.000 altera_reserved_tck " { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1480610004600 ""} } { } 0 332146 "Worst-case %1!s! slack is %2!s!" 0 0 "Quartus II" 0 -1 1480610004600 ""} +{ "Info" "ISTA_WORST_CASE_SLACK" "recovery 47.734 " "Worst-case recovery slack is 47.734" { { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" " Slack End Point TNS Clock " " Slack End Point TNS Clock " { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1480610004607 ""} { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" "========= ============= ===================== " "========= ============= =====================" { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1480610004607 ""} { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" " 47.734 0.000 altera_reserved_tck " " 47.734 0.000 altera_reserved_tck " { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1480610004607 ""} } { } 0 332146 "Worst-case %1!s! slack is %2!s!" 0 0 "Quartus II" 0 -1 1480610004607 ""} +{ "Info" "ISTA_WORST_CASE_SLACK" "removal 1.385 " "Worst-case removal slack is 1.385" { { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" " Slack End Point TNS Clock " " Slack End Point TNS Clock " { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1480610004615 ""} { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" "========= ============= ===================== " "========= ============= =====================" { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1480610004615 ""} { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" " 1.385 0.000 altera_reserved_tck " " 1.385 0.000 altera_reserved_tck " { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1480610004615 ""} } { } 0 332146 "Worst-case %1!s! slack is %2!s!" 0 0 "Quartus II" 0 -1 1480610004615 ""} +{ "Info" "ISTA_WORST_CASE_SLACK" "minimum pulse width 49.549 " "Worst-case minimum pulse width slack is 49.549" { { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" " Slack End Point TNS Clock " " Slack End Point TNS Clock " { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1480610004622 ""} { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" "========= ============= ===================== " "========= ============= =====================" { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1480610004622 ""} { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" " 49.549 0.000 altera_reserved_tck " " 49.549 0.000 altera_reserved_tck " { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1480610004622 ""} } { } 0 332146 "Worst-case %1!s! slack is %2!s!" 0 0 "Quartus II" 0 -1 1480610004622 ""} +{ "Info" "ISTA_REPORT_METASTABILITY_INFO" "Report Metastability: Found 2 synchronizer chains. " "Report Metastability: Found 2 synchronizer chains." { { "Info" "ISTA_REPORT_METASTABILITY_INFO" "Typical MTBF of Design is 1e+09 years or 3.15e+16 seconds.\n " "Typical MTBF of Design is 1e+09 years or 3.15e+16 seconds.\n" { } { } 0 332114 "%1!s!" 0 0 "Quartus II" 0 -1 1480610004754 ""} { "Info" "ISTA_REPORT_METASTABILITY_INFO" "Number of Synchronizer Chains Found: 2 " "Number of Synchronizer Chains Found: 2" { } { } 0 332114 "%1!s!" 0 0 "Quartus II" 0 -1 1480610004754 ""} { "Info" "ISTA_REPORT_METASTABILITY_INFO" "Shortest Synchronizer Chain: 2 Registers " "Shortest Synchronizer Chain: 2 Registers" { } { } 0 332114 "%1!s!" 0 0 "Quartus II" 0 -1 1480610004754 ""} { "Info" "ISTA_REPORT_METASTABILITY_INFO" "Fraction of Chains for which MTBFs Could Not be Calculated: 0.000 " "Fraction of Chains for which MTBFs Could Not be Calculated: 0.000" { } { } 0 332114 "%1!s!" 0 0 "Quartus II" 0 -1 1480610004754 ""} { "Info" "ISTA_REPORT_METASTABILITY_INFO" "Worst Case Available Settling Time: 197.101 ns " "Worst Case Available Settling Time: 197.101 ns" { } { } 0 332114 "%1!s!" 0 0 "Quartus II" 0 -1 1480610004754 ""} { "Info" "ISTA_REPORT_METASTABILITY_INFO" " " "" { } { } 0 332114 "%1!s!" 0 0 "Quartus II" 0 -1 1480610004754 ""} { "Info" "ISTA_REPORT_METASTABILITY_INFO" "Typical MTBF values are calculated based on the nominal silicon characteristics, at nominal operating conditions. " "Typical MTBF values are calculated based on the nominal silicon characteristics, at nominal operating conditions." { } { } 0 332114 "%1!s!" 0 0 "Quartus II" 0 -1 1480610004754 ""} { "Info" "ISTA_REPORT_METASTABILITY_INFO" " - Under typical conditions, an increase of 100ps in available settling time will increase MTBF values by a factor of 10.8 " " - Under typical conditions, an increase of 100ps in available settling time will increase MTBF values by a factor of 10.8" { } { } 0 332114 "%1!s!" 0 0 "Quartus II" 0 -1 1480610004754 ""} } { } 0 332114 "%1!s!" 0 0 "Quartus II" 0 -1 1480610004754 ""} +{ "Info" "0" "" "Analyzing Slow 1200mV 0C Model" { } { } 0 0 "Analyzing Slow 1200mV 0C Model" 0 0 "Quartus II" 0 0 1480610004766 ""} +{ "Info" "ITAPI_TAPI_STARTED" "" "Started post-fitting delay annotation" { } { } 0 334003 "Started post-fitting delay annotation" 0 0 "Quartus II" 0 -1 1480610004807 ""} +{ "Info" "ITAPI_TAPI_COMPLETED" "" "Delay annotation completed successfully" { } { } 0 334004 "Delay annotation completed successfully" 0 0 "Quartus II" 0 -1 1480610006044 ""} +{ "Warning" "WSTA_NODE_FOUND_WITHOUT_CLOCK_ASSIGNMENT" "CLOCK_50 " "Node: CLOCK_50 was determined to be a clock but was found without an associated clock assignment." { } { } 0 332060 "Node: %1!s! was determined to be a clock but was found without an associated clock assignment." 0 0 "Quartus II" 0 -1 1480610006357 "|lights|CLOCK_50"} +{ "Critical Warning" "WSTA_NO_UNCERTAINTY_WAS_SET_PARENT" "" "The following clock transfers have no clock uncertainty assignment. For more accurate results, apply clock uncertainty assignments or use the derive_clock_uncertainty command." { { "Critical Warning" "WSTA_NO_UNCERTAINTY_WAS_SET_CHILD" "altera_reserved_tck (Rise) altera_reserved_tck (Rise) setup and hold " "From altera_reserved_tck (Rise) to altera_reserved_tck (Rise) (setup and hold)" { } { } 1 332169 "From %1!s! to %2!s! (%3!s!)" 0 0 "Quartus II" 0 -1 1480610006367 ""} { "Critical Warning" "WSTA_NO_UNCERTAINTY_WAS_SET_CHILD" "altera_reserved_tck (Rise) altera_reserved_tck (Fall) setup and hold " "From altera_reserved_tck (Rise) to altera_reserved_tck (Fall) (setup and hold)" { } { } 1 332169 "From %1!s! to %2!s! (%3!s!)" 0 0 "Quartus II" 0 -1 1480610006367 ""} { "Critical Warning" "WSTA_NO_UNCERTAINTY_WAS_SET_CHILD" "altera_reserved_tck (Fall) altera_reserved_tck (Fall) setup and hold " "From altera_reserved_tck (Fall) to altera_reserved_tck (Fall) (setup and hold)" { } { } 1 332169 "From %1!s! to %2!s! (%3!s!)" 0 0 "Quartus II" 0 -1 1480610006367 ""} } { } 1 332168 "The following clock transfers have no clock uncertainty assignment. For more accurate results, apply clock uncertainty assignments or use the derive_clock_uncertainty command." 0 0 "Quartus II" 0 -1 1480610006367 ""} +{ "Info" "ISTA_WORST_CASE_SLACK" "setup 46.283 " "Worst-case setup slack is 46.283" { { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" " Slack End Point TNS Clock " " Slack End Point TNS Clock " { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1480610006392 ""} { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" "========= ============= ===================== " "========= ============= =====================" { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1480610006392 ""} { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" " 46.283 0.000 altera_reserved_tck " " 46.283 0.000 altera_reserved_tck " { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1480610006392 ""} } { } 0 332146 "Worst-case %1!s! slack is %2!s!" 0 0 "Quartus II" 0 -1 1480610006392 ""} +{ "Info" "ISTA_WORST_CASE_SLACK" "hold 0.353 " "Worst-case hold slack is 0.353" { { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" " Slack End Point TNS Clock " " Slack End Point TNS Clock " { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1480610006403 ""} { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" "========= ============= ===================== " "========= ============= =====================" { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1480610006403 ""} { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" " 0.353 0.000 altera_reserved_tck " " 0.353 0.000 altera_reserved_tck " { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1480610006403 ""} } { } 0 332146 "Worst-case %1!s! slack is %2!s!" 0 0 "Quartus II" 0 -1 1480610006403 ""} +{ "Info" "ISTA_WORST_CASE_SLACK" "recovery 48.047 " "Worst-case recovery slack is 48.047" { { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" " Slack End Point TNS Clock " " Slack End Point TNS Clock " { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1480610006413 ""} { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" "========= ============= ===================== " "========= ============= =====================" { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1480610006413 ""} { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" " 48.047 0.000 altera_reserved_tck " " 48.047 0.000 altera_reserved_tck " { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1480610006413 ""} } { } 0 332146 "Worst-case %1!s! slack is %2!s!" 0 0 "Quartus II" 0 -1 1480610006413 ""} +{ "Info" "ISTA_WORST_CASE_SLACK" "removal 1.278 " "Worst-case removal slack is 1.278" { { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" " Slack End Point TNS Clock " " Slack End Point TNS Clock " { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1480610006423 ""} { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" "========= ============= ===================== " "========= ============= =====================" { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1480610006423 ""} { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" " 1.278 0.000 altera_reserved_tck " " 1.278 0.000 altera_reserved_tck " { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1480610006423 ""} } { } 0 332146 "Worst-case %1!s! slack is %2!s!" 0 0 "Quartus II" 0 -1 1480610006423 ""} +{ "Info" "ISTA_WORST_CASE_SLACK" "minimum pulse width 49.476 " "Worst-case minimum pulse width slack is 49.476" { { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" " Slack End Point TNS Clock " " Slack End Point TNS Clock " { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1480610006434 ""} { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" "========= ============= ===================== " "========= ============= =====================" { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1480610006434 ""} { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" " 49.476 0.000 altera_reserved_tck " " 49.476 0.000 altera_reserved_tck " { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1480610006434 ""} } { } 0 332146 "Worst-case %1!s! slack is %2!s!" 0 0 "Quartus II" 0 -1 1480610006434 ""} +{ "Info" "ISTA_REPORT_METASTABILITY_INFO" "Report Metastability: Found 2 synchronizer chains. " "Report Metastability: Found 2 synchronizer chains." { { "Info" "ISTA_REPORT_METASTABILITY_INFO" "Typical MTBF of Design is 1e+09 years or 3.15e+16 seconds.\n " "Typical MTBF of Design is 1e+09 years or 3.15e+16 seconds.\n" { } { } 0 332114 "%1!s!" 0 0 "Quartus II" 0 -1 1480610006573 ""} { "Info" "ISTA_REPORT_METASTABILITY_INFO" "Number of Synchronizer Chains Found: 2 " "Number of Synchronizer Chains Found: 2" { } { } 0 332114 "%1!s!" 0 0 "Quartus II" 0 -1 1480610006573 ""} { "Info" "ISTA_REPORT_METASTABILITY_INFO" "Shortest Synchronizer Chain: 2 Registers " "Shortest Synchronizer Chain: 2 Registers" { } { } 0 332114 "%1!s!" 0 0 "Quartus II" 0 -1 1480610006573 ""} { "Info" "ISTA_REPORT_METASTABILITY_INFO" "Fraction of Chains for which MTBFs Could Not be Calculated: 0.000 " "Fraction of Chains for which MTBFs Could Not be Calculated: 0.000" { } { } 0 332114 "%1!s!" 0 0 "Quartus II" 0 -1 1480610006573 ""} { "Info" "ISTA_REPORT_METASTABILITY_INFO" "Worst Case Available Settling Time: 197.386 ns " "Worst Case Available Settling Time: 197.386 ns" { } { } 0 332114 "%1!s!" 0 0 "Quartus II" 0 -1 1480610006573 ""} { "Info" "ISTA_REPORT_METASTABILITY_INFO" " " "" { } { } 0 332114 "%1!s!" 0 0 "Quartus II" 0 -1 1480610006573 ""} { "Info" "ISTA_REPORT_METASTABILITY_INFO" "Typical MTBF values are calculated based on the nominal silicon characteristics, at nominal operating conditions. " "Typical MTBF values are calculated based on the nominal silicon characteristics, at nominal operating conditions." { } { } 0 332114 "%1!s!" 0 0 "Quartus II" 0 -1 1480610006573 ""} { "Info" "ISTA_REPORT_METASTABILITY_INFO" " - Under typical conditions, an increase of 100ps in available settling time will increase MTBF values by a factor of 10.8 " " - Under typical conditions, an increase of 100ps in available settling time will increase MTBF values by a factor of 10.8" { } { } 0 332114 "%1!s!" 0 0 "Quartus II" 0 -1 1480610006573 ""} } { } 0 332114 "%1!s!" 0 0 "Quartus II" 0 -1 1480610006573 ""} +{ "Info" "0" "" "Analyzing Fast 1200mV 0C Model" { } { } 0 0 "Analyzing Fast 1200mV 0C Model" 0 0 "Quartus II" 0 0 1480610006590 ""} +{ "Warning" "WSTA_NODE_FOUND_WITHOUT_CLOCK_ASSIGNMENT" "CLOCK_50 " "Node: CLOCK_50 was determined to be a clock but was found without an associated clock assignment." { } { } 0 332060 "Node: %1!s! was determined to be a clock but was found without an associated clock assignment." 0 0 "Quartus II" 0 -1 1480610007036 "|lights|CLOCK_50"} +{ "Critical Warning" "WSTA_NO_UNCERTAINTY_WAS_SET_PARENT" "" "The following clock transfers have no clock uncertainty assignment. For more accurate results, apply clock uncertainty assignments or use the derive_clock_uncertainty command." { { "Critical Warning" "WSTA_NO_UNCERTAINTY_WAS_SET_CHILD" "altera_reserved_tck (Rise) altera_reserved_tck (Rise) setup and hold " "From altera_reserved_tck (Rise) to altera_reserved_tck (Rise) (setup and hold)" { } { } 1 332169 "From %1!s! to %2!s! (%3!s!)" 0 0 "Quartus II" 0 -1 1480610007046 ""} { "Critical Warning" "WSTA_NO_UNCERTAINTY_WAS_SET_CHILD" "altera_reserved_tck (Rise) altera_reserved_tck (Fall) setup and hold " "From altera_reserved_tck (Rise) to altera_reserved_tck (Fall) (setup and hold)" { } { } 1 332169 "From %1!s! to %2!s! (%3!s!)" 0 0 "Quartus II" 0 -1 1480610007046 ""} { "Critical Warning" "WSTA_NO_UNCERTAINTY_WAS_SET_CHILD" "altera_reserved_tck (Fall) altera_reserved_tck (Fall) setup and hold " "From altera_reserved_tck (Fall) to altera_reserved_tck (Fall) (setup and hold)" { } { } 1 332169 "From %1!s! to %2!s! (%3!s!)" 0 0 "Quartus II" 0 -1 1480610007046 ""} } { } 1 332168 "The following clock transfers have no clock uncertainty assignment. For more accurate results, apply clock uncertainty assignments or use the derive_clock_uncertainty command." 0 0 "Quartus II" 0 -1 1480610007046 ""} +{ "Info" "ISTA_WORST_CASE_SLACK" "setup 48.270 " "Worst-case setup slack is 48.270" { { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" " Slack End Point TNS Clock " " Slack End Point TNS Clock " { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1480610007611 ""} { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" "========= ============= ===================== " "========= ============= =====================" { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1480610007611 ""} { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" " 48.270 0.000 altera_reserved_tck " " 48.270 0.000 altera_reserved_tck " { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1480610007611 ""} } { } 0 332146 "Worst-case %1!s! slack is %2!s!" 0 0 "Quartus II" 0 -1 1480610007611 ""} +{ "Info" "ISTA_WORST_CASE_SLACK" "hold 0.180 " "Worst-case hold slack is 0.180" { { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" " Slack End Point TNS Clock " " Slack End Point TNS Clock " { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1480610007623 ""} { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" "========= ============= ===================== " "========= ============= =====================" { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1480610007623 ""} { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" " 0.180 0.000 altera_reserved_tck " " 0.180 0.000 altera_reserved_tck " { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1480610007623 ""} } { } 0 332146 "Worst-case %1!s! slack is %2!s!" 0 0 "Quartus II" 0 -1 1480610007623 ""} +{ "Info" "ISTA_WORST_CASE_SLACK" "recovery 49.194 " "Worst-case recovery slack is 49.194" { { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" " Slack End Point TNS Clock " " Slack End Point TNS Clock " { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1480610007635 ""} { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" "========= ============= ===================== " "========= ============= =====================" { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1480610007635 ""} { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" " 49.194 0.000 altera_reserved_tck " " 49.194 0.000 altera_reserved_tck " { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1480610007635 ""} } { } 0 332146 "Worst-case %1!s! slack is %2!s!" 0 0 "Quartus II" 0 -1 1480610007635 ""} +{ "Info" "ISTA_WORST_CASE_SLACK" "removal 0.657 " "Worst-case removal slack is 0.657" { { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" " Slack End Point TNS Clock " " Slack End Point TNS Clock " { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1480610007646 ""} { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" "========= ============= ===================== " "========= ============= =====================" { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1480610007646 ""} { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" " 0.657 0.000 altera_reserved_tck " " 0.657 0.000 altera_reserved_tck " { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1480610007646 ""} } { } 0 332146 "Worst-case %1!s! slack is %2!s!" 0 0 "Quartus II" 0 -1 1480610007646 ""} +{ "Info" "ISTA_WORST_CASE_SLACK" "minimum pulse width 49.301 " "Worst-case minimum pulse width slack is 49.301" { { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" " Slack End Point TNS Clock " " Slack End Point TNS Clock " { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1480610007657 ""} { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" "========= ============= ===================== " "========= ============= =====================" { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1480610007657 ""} { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" " 49.301 0.000 altera_reserved_tck " " 49.301 0.000 altera_reserved_tck " { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1480610007657 ""} } { } 0 332146 "Worst-case %1!s! slack is %2!s!" 0 0 "Quartus II" 0 -1 1480610007657 ""} +{ "Info" "ISTA_REPORT_METASTABILITY_INFO" "Report Metastability: Found 2 synchronizer chains. " "Report Metastability: Found 2 synchronizer chains." { { "Info" "ISTA_REPORT_METASTABILITY_INFO" "Typical MTBF of Design is 1e+09 years or 3.15e+16 seconds.\n " "Typical MTBF of Design is 1e+09 years or 3.15e+16 seconds.\n" { } { } 0 332114 "%1!s!" 0 0 "Quartus II" 0 -1 1480610007778 ""} { "Info" "ISTA_REPORT_METASTABILITY_INFO" "Number of Synchronizer Chains Found: 2 " "Number of Synchronizer Chains Found: 2" { } { } 0 332114 "%1!s!" 0 0 "Quartus II" 0 -1 1480610007778 ""} { "Info" "ISTA_REPORT_METASTABILITY_INFO" "Shortest Synchronizer Chain: 2 Registers " "Shortest Synchronizer Chain: 2 Registers" { } { } 0 332114 "%1!s!" 0 0 "Quartus II" 0 -1 1480610007778 ""} { "Info" "ISTA_REPORT_METASTABILITY_INFO" "Fraction of Chains for which MTBFs Could Not be Calculated: 0.000 " "Fraction of Chains for which MTBFs Could Not be Calculated: 0.000" { } { } 0 332114 "%1!s!" 0 0 "Quartus II" 0 -1 1480610007778 ""} { "Info" "ISTA_REPORT_METASTABILITY_INFO" "Worst Case Available Settling Time: 198.621 ns " "Worst Case Available Settling Time: 198.621 ns" { } { } 0 332114 "%1!s!" 0 0 "Quartus II" 0 -1 1480610007778 ""} { "Info" "ISTA_REPORT_METASTABILITY_INFO" " " "" { } { } 0 332114 "%1!s!" 0 0 "Quartus II" 0 -1 1480610007778 ""} { "Info" "ISTA_REPORT_METASTABILITY_INFO" "Typical MTBF values are calculated based on the nominal silicon characteristics, at nominal operating conditions. " "Typical MTBF values are calculated based on the nominal silicon characteristics, at nominal operating conditions." { } { } 0 332114 "%1!s!" 0 0 "Quartus II" 0 -1 1480610007778 ""} { "Info" "ISTA_REPORT_METASTABILITY_INFO" " - Under typical conditions, an increase of 100ps in available settling time will increase MTBF values by a factor of 10.8 " " - Under typical conditions, an increase of 100ps in available settling time will increase MTBF values by a factor of 10.8" { } { } 0 332114 "%1!s!" 0 0 "Quartus II" 0 -1 1480610007778 ""} } { } 0 332114 "%1!s!" 0 0 "Quartus II" 0 -1 1480610007778 ""} +{ "Info" "ISTA_UCP_NOT_CONSTRAINED" "setup " "Design is not fully constrained for setup requirements" { } { } 0 332102 "Design is not fully constrained for %1!s! requirements" 0 0 "Quartus II" 0 -1 1480610008406 ""} +{ "Info" "ISTA_UCP_NOT_CONSTRAINED" "hold " "Design is not fully constrained for hold requirements" { } { } 0 332102 "Design is not fully constrained for %1!s! requirements" 0 0 "Quartus II" 0 -1 1480610008406 ""} +{ "Info" "IQEXE_ERROR_COUNT" "TimeQuest Timing Analyzer 0 s 17 s Quartus II 64-Bit " "Quartus II 64-Bit TimeQuest Timing Analyzer was successful. 0 errors, 17 warnings" { { "Info" "IQEXE_END_PEAK_VSIZE_MEMORY" "606 " "Peak virtual memory: 606 megabytes" { } { } 0 0 "Peak virtual memory: %1!s! megabytes" 0 0 "Quartus II" 0 -1 1480610008671 ""} { "Info" "IQEXE_END_BANNER_TIME" "Fri Dec 02 01:33:28 2016 " "Processing ended: Fri Dec 02 01:33:28 2016" { } { } 0 0 "Processing ended: %1!s!" 0 0 "Quartus II" 0 -1 1480610008671 ""} { "Info" "IQEXE_ELAPSED_TIME" "00:00:06 " "Elapsed time: 00:00:06" { } { } 0 0 "Elapsed time: %1!s!" 0 0 "Quartus II" 0 -1 1480610008671 ""} { "Info" "IQEXE_ELAPSED_CPU_TIME" "00:00:05 " "Total CPU time (on all processors): 00:00:05" { } { } 0 0 "Total CPU time (on all processors): %1!s!" 0 0 "Quartus II" 0 -1 1480610008671 ""} } { } 0 0 "%6!s! %1!s! was successful. %2!d! error%3!s!, %4!d! warning%5!s!" 0 0 "Quartus II" 0 -1 1480610008671 ""} diff --git a/db/lights.sta.rdb b/db/lights.sta.rdb new file mode 100644 index 0000000..0f9eebd --- /dev/null +++ b/db/lights.sta.rdb Binary files differ diff --git a/db/lights.sta_cmp.7_slow_1200mv_85c.tdb b/db/lights.sta_cmp.7_slow_1200mv_85c.tdb new file mode 100644 index 0000000..0e1bbb7 --- /dev/null +++ b/db/lights.sta_cmp.7_slow_1200mv_85c.tdb Binary files differ diff --git a/db/lights.syn_hier_info b/db/lights.syn_hier_info new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/db/lights.syn_hier_info diff --git a/db/lights.tis_db_list.ddb b/db/lights.tis_db_list.ddb new file mode 100644 index 0000000..f36f273 --- /dev/null +++ b/db/lights.tis_db_list.ddb Binary files differ diff --git a/db/lights.tiscmp.fast_1200mv_0c.ddb b/db/lights.tiscmp.fast_1200mv_0c.ddb new file mode 100644 index 0000000..b1bd393 --- /dev/null +++ b/db/lights.tiscmp.fast_1200mv_0c.ddb Binary files differ diff --git a/db/lights.tiscmp.slow_1200mv_0c.ddb b/db/lights.tiscmp.slow_1200mv_0c.ddb new file mode 100644 index 0000000..cab0102 --- /dev/null +++ b/db/lights.tiscmp.slow_1200mv_0c.ddb Binary files differ diff --git a/db/lights.tiscmp.slow_1200mv_85c.ddb b/db/lights.tiscmp.slow_1200mv_85c.ddb new file mode 100644 index 0000000..0bb79a8 --- /dev/null +++ b/db/lights.tiscmp.slow_1200mv_85c.ddb Binary files differ diff --git a/db/lights.tmw_info b/db/lights.tmw_info new file mode 100644 index 0000000..16f5f5b --- /dev/null +++ b/db/lights.tmw_info @@ -0,0 +1,6 @@ +start_full_compilation:s +start_analysis_synthesis:s-start_full_compilation +start_analysis_elaboration:s-start_full_compilation +start_fitter:s-start_full_compilation +start_assembler:s-start_full_compilation +start_timing_analyzer:s-start_full_compilation diff --git a/db/lights.vpr.ammdb b/db/lights.vpr.ammdb new file mode 100644 index 0000000..cd8485a --- /dev/null +++ b/db/lights.vpr.ammdb Binary files differ diff --git a/db/logic_util_heursitic.dat b/db/logic_util_heursitic.dat new file mode 100644 index 0000000..8ae4343 --- /dev/null +++ b/db/logic_util_heursitic.dat Binary files differ diff --git a/db/mux_nob.tdf b/db/mux_nob.tdf new file mode 100644 index 0000000..bb77807 --- /dev/null +++ b/db/mux_nob.tdf @@ -0,0 +1,295 @@ +--lpm_mux CBX_DECLARE_ALL_CONNECTED_PORTS="OFF" DEVICE_FAMILY="Cyclone IV E" LPM_SIZE=7 LPM_WIDTH=32 LPM_WIDTHS=3 data result sel +--VERSION_BEGIN 13.0 cbx_lpm_mux 2013:06:12:18:03:43:SJ cbx_mgl 2013:06:12:18:05:10:SJ VERSION_END + + +-- Copyright (C) 1991-2013 Altera Corporation +-- Your use of Altera Corporation's design tools, logic functions +-- and other software and tools, and its AMPP partner logic +-- functions, and any output files from any of the foregoing +-- (including device programming or simulation files), and any +-- associated documentation or information are expressly subject +-- to the terms and conditions of the Altera Program License +-- Subscription Agreement, Altera MegaCore Function License +-- Agreement, or other applicable license agreement, including, +-- without limitation, that your use is for the sole purpose of +-- programming logic devices manufactured by Altera and sold by +-- Altera or its authorized distributors. Please refer to the +-- applicable agreement for further details. + + + +--synthesis_resources = lut 160 +SUBDESIGN mux_nob +( + data[223..0] : input; + result[31..0] : output; + sel[2..0] : input; +) +VARIABLE + result_node[31..0] : WIRE; + sel_ffs_wire[2..0] : WIRE; + sel_node[2..0] : WIRE; + w_data1945w[7..0] : WIRE; + w_data1967w[3..0] : WIRE; + w_data1968w[3..0] : WIRE; + w_data2016w[7..0] : WIRE; + w_data2038w[3..0] : WIRE; + w_data2039w[3..0] : WIRE; + w_data2085w[7..0] : WIRE; + w_data2107w[3..0] : WIRE; + w_data2108w[3..0] : WIRE; + w_data2154w[7..0] : WIRE; + w_data2176w[3..0] : WIRE; + w_data2177w[3..0] : WIRE; + w_data2223w[7..0] : WIRE; + w_data2245w[3..0] : WIRE; + w_data2246w[3..0] : WIRE; + w_data2292w[7..0] : WIRE; + w_data2314w[3..0] : WIRE; + w_data2315w[3..0] : WIRE; + w_data2361w[7..0] : WIRE; + w_data2383w[3..0] : WIRE; + w_data2384w[3..0] : WIRE; + w_data2430w[7..0] : WIRE; + w_data2452w[3..0] : WIRE; + w_data2453w[3..0] : WIRE; + w_data2499w[7..0] : WIRE; + w_data2521w[3..0] : WIRE; + w_data2522w[3..0] : WIRE; + w_data2568w[7..0] : WIRE; + w_data2590w[3..0] : WIRE; + w_data2591w[3..0] : WIRE; + w_data2637w[7..0] : WIRE; + w_data2659w[3..0] : WIRE; + w_data2660w[3..0] : WIRE; + w_data2706w[7..0] : WIRE; + w_data2728w[3..0] : WIRE; + w_data2729w[3..0] : WIRE; + w_data2775w[7..0] : WIRE; + w_data2797w[3..0] : WIRE; + w_data2798w[3..0] : WIRE; + w_data2844w[7..0] : WIRE; + w_data2866w[3..0] : WIRE; + w_data2867w[3..0] : WIRE; + w_data2913w[7..0] : WIRE; + w_data2935w[3..0] : WIRE; + w_data2936w[3..0] : WIRE; + w_data2982w[7..0] : WIRE; + w_data3004w[3..0] : WIRE; + w_data3005w[3..0] : WIRE; + w_data3051w[7..0] : WIRE; + w_data3073w[3..0] : WIRE; + w_data3074w[3..0] : WIRE; + w_data3120w[7..0] : WIRE; + w_data3142w[3..0] : WIRE; + w_data3143w[3..0] : WIRE; + w_data3189w[7..0] : WIRE; + w_data3211w[3..0] : WIRE; + w_data3212w[3..0] : WIRE; + w_data3258w[7..0] : WIRE; + w_data3280w[3..0] : WIRE; + w_data3281w[3..0] : WIRE; + w_data3327w[7..0] : WIRE; + w_data3349w[3..0] : WIRE; + w_data3350w[3..0] : WIRE; + w_data3396w[7..0] : WIRE; + w_data3418w[3..0] : WIRE; + w_data3419w[3..0] : WIRE; + w_data3465w[7..0] : WIRE; + w_data3487w[3..0] : WIRE; + w_data3488w[3..0] : WIRE; + w_data3534w[7..0] : WIRE; + w_data3556w[3..0] : WIRE; + w_data3557w[3..0] : WIRE; + w_data3603w[7..0] : WIRE; + w_data3625w[3..0] : WIRE; + w_data3626w[3..0] : WIRE; + w_data3672w[7..0] : WIRE; + w_data3694w[3..0] : WIRE; + w_data3695w[3..0] : WIRE; + w_data3741w[7..0] : WIRE; + w_data3763w[3..0] : WIRE; + w_data3764w[3..0] : WIRE; + w_data3810w[7..0] : WIRE; + w_data3832w[3..0] : WIRE; + w_data3833w[3..0] : WIRE; + w_data3879w[7..0] : WIRE; + w_data3901w[3..0] : WIRE; + w_data3902w[3..0] : WIRE; + w_data3948w[7..0] : WIRE; + w_data3970w[3..0] : WIRE; + w_data3971w[3..0] : WIRE; + w_data4017w[7..0] : WIRE; + w_data4039w[3..0] : WIRE; + w_data4040w[3..0] : WIRE; + w_data4086w[7..0] : WIRE; + w_data4108w[3..0] : WIRE; + w_data4109w[3..0] : WIRE; + w_sel1969w[1..0] : WIRE; + w_sel2040w[1..0] : WIRE; + w_sel2109w[1..0] : WIRE; + w_sel2178w[1..0] : WIRE; + w_sel2247w[1..0] : WIRE; + w_sel2316w[1..0] : WIRE; + w_sel2385w[1..0] : WIRE; + w_sel2454w[1..0] : WIRE; + w_sel2523w[1..0] : WIRE; + w_sel2592w[1..0] : WIRE; + w_sel2661w[1..0] : WIRE; + w_sel2730w[1..0] : WIRE; + w_sel2799w[1..0] : WIRE; + w_sel2868w[1..0] : WIRE; + w_sel2937w[1..0] : WIRE; + w_sel3006w[1..0] : WIRE; + w_sel3075w[1..0] : WIRE; + w_sel3144w[1..0] : WIRE; + w_sel3213w[1..0] : WIRE; + w_sel3282w[1..0] : WIRE; + w_sel3351w[1..0] : WIRE; + w_sel3420w[1..0] : WIRE; + w_sel3489w[1..0] : WIRE; + w_sel3558w[1..0] : WIRE; + w_sel3627w[1..0] : WIRE; + w_sel3696w[1..0] : WIRE; + w_sel3765w[1..0] : WIRE; + w_sel3834w[1..0] : WIRE; + w_sel3903w[1..0] : WIRE; + w_sel3972w[1..0] : WIRE; + w_sel4041w[1..0] : WIRE; + w_sel4110w[1..0] : WIRE; + +BEGIN + result[] = result_node[]; + result_node[] = ( ((sel_node[2..2] & (((w_data4109w[1..1] & w_sel4110w[0..0]) & (! (((w_data4109w[0..0] & (! w_sel4110w[1..1])) & (! w_sel4110w[0..0])) # (w_sel4110w[1..1] & (w_sel4110w[0..0] # w_data4109w[2..2]))))) # ((((w_data4109w[0..0] & (! w_sel4110w[1..1])) & (! w_sel4110w[0..0])) # (w_sel4110w[1..1] & (w_sel4110w[0..0] # w_data4109w[2..2]))) & (w_data4109w[3..3] # (! w_sel4110w[0..0]))))) # ((! sel_node[2..2]) & (((w_data4108w[1..1] & w_sel4110w[0..0]) & (! (((w_data4108w[0..0] & (! w_sel4110w[1..1])) & (! w_sel4110w[0..0])) # (w_sel4110w[1..1] & (w_sel4110w[0..0] # w_data4108w[2..2]))))) # ((((w_data4108w[0..0] & (! w_sel4110w[1..1])) & (! w_sel4110w[0..0])) # (w_sel4110w[1..1] & (w_sel4110w[0..0] # w_data4108w[2..2]))) & (w_data4108w[3..3] # (! w_sel4110w[0..0])))))), ((sel_node[2..2] & (((w_data4040w[1..1] & w_sel4041w[0..0]) & (! (((w_data4040w[0..0] & (! w_sel4041w[1..1])) & (! w_sel4041w[0..0])) # (w_sel4041w[1..1] & (w_sel4041w[0..0] # w_data4040w[2..2]))))) # ((((w_data4040w[0..0] & (! w_sel4041w[1..1])) & (! w_sel4041w[0..0])) # (w_sel4041w[1..1] & (w_sel4041w[0..0] # w_data4040w[2..2]))) & (w_data4040w[3..3] # (! w_sel4041w[0..0]))))) # ((! sel_node[2..2]) & (((w_data4039w[1..1] & w_sel4041w[0..0]) & (! (((w_data4039w[0..0] & (! w_sel4041w[1..1])) & (! w_sel4041w[0..0])) # (w_sel4041w[1..1] & (w_sel4041w[0..0] # w_data4039w[2..2]))))) # ((((w_data4039w[0..0] & (! w_sel4041w[1..1])) & (! w_sel4041w[0..0])) # (w_sel4041w[1..1] & (w_sel4041w[0..0] # w_data4039w[2..2]))) & (w_data4039w[3..3] # (! w_sel4041w[0..0])))))), ((sel_node[2..2] & (((w_data3971w[1..1] & w_sel3972w[0..0]) & (! (((w_data3971w[0..0] & (! w_sel3972w[1..1])) & (! w_sel3972w[0..0])) # (w_sel3972w[1..1] & (w_sel3972w[0..0] # w_data3971w[2..2]))))) # ((((w_data3971w[0..0] & (! w_sel3972w[1..1])) & (! w_sel3972w[0..0])) # (w_sel3972w[1..1] & (w_sel3972w[0..0] # w_data3971w[2..2]))) & (w_data3971w[3..3] # (! w_sel3972w[0..0]))))) # ((! sel_node[2..2]) & (((w_data3970w[1..1] & w_sel3972w[0..0]) & (! (((w_data3970w[0..0] & (! w_sel3972w[1..1])) & (! w_sel3972w[0..0])) # (w_sel3972w[1..1] & (w_sel3972w[0..0] # w_data3970w[2..2]))))) # ((((w_data3970w[0..0] & (! w_sel3972w[1..1])) & (! w_sel3972w[0..0])) # (w_sel3972w[1..1] & (w_sel3972w[0..0] # w_data3970w[2..2]))) & (w_data3970w[3..3] # (! w_sel3972w[0..0])))))), ((sel_node[2..2] & (((w_data3902w[1..1] & w_sel3903w[0..0]) & (! (((w_data3902w[0..0] & (! w_sel3903w[1..1])) & (! w_sel3903w[0..0])) # (w_sel3903w[1..1] & (w_sel3903w[0..0] # w_data3902w[2..2]))))) # ((((w_data3902w[0..0] & (! w_sel3903w[1..1])) & (! w_sel3903w[0..0])) # (w_sel3903w[1..1] & (w_sel3903w[0..0] # w_data3902w[2..2]))) & (w_data3902w[3..3] # (! w_sel3903w[0..0]))))) # ((! sel_node[2..2]) & (((w_data3901w[1..1] & w_sel3903w[0..0]) & (! (((w_data3901w[0..0] & (! w_sel3903w[1..1])) & (! w_sel3903w[0..0])) # (w_sel3903w[1..1] & (w_sel3903w[0..0] # w_data3901w[2..2]))))) # ((((w_data3901w[0..0] & (! w_sel3903w[1..1])) & (! w_sel3903w[0..0])) # (w_sel3903w[1..1] & (w_sel3903w[0..0] # w_data3901w[2..2]))) & (w_data3901w[3..3] # (! w_sel3903w[0..0])))))), ((sel_node[2..2] & (((w_data3833w[1..1] & w_sel3834w[0..0]) & (! (((w_data3833w[0..0] & (! w_sel3834w[1..1])) & (! w_sel3834w[0..0])) # (w_sel3834w[1..1] & (w_sel3834w[0..0] # w_data3833w[2..2]))))) # ((((w_data3833w[0..0] & (! w_sel3834w[1..1])) & (! w_sel3834w[0..0])) # (w_sel3834w[1..1] & (w_sel3834w[0..0] # w_data3833w[2..2]))) & (w_data3833w[3..3] # (! w_sel3834w[0..0]))))) # ((! sel_node[2..2]) & (((w_data3832w[1..1] & w_sel3834w[0..0]) & (! (((w_data3832w[0..0] & (! w_sel3834w[1..1])) & (! w_sel3834w[0..0])) # (w_sel3834w[1..1] & (w_sel3834w[0..0] # w_data3832w[2..2]))))) # ((((w_data3832w[0..0] & (! w_sel3834w[1..1])) & (! w_sel3834w[0..0])) # (w_sel3834w[1..1] & (w_sel3834w[0..0] # w_data3832w[2..2]))) & (w_data3832w[3..3] # (! w_sel3834w[0..0])))))), ((sel_node[2..2] & (((w_data3764w[1..1] & w_sel3765w[0..0]) & (! (((w_data3764w[0..0] & (! w_sel3765w[1..1])) & (! w_sel3765w[0..0])) # (w_sel3765w[1..1] & (w_sel3765w[0..0] # w_data3764w[2..2]))))) # ((((w_data3764w[0..0] & (! w_sel3765w[1..1])) & (! w_sel3765w[0..0])) # (w_sel3765w[1..1] & (w_sel3765w[0..0] # w_data3764w[2..2]))) & (w_data3764w[3..3] # (! w_sel3765w[0..0]))))) # ((! sel_node[2..2]) & (((w_data3763w[1..1] & w_sel3765w[0..0]) & (! (((w_data3763w[0..0] & (! w_sel3765w[1..1])) & (! w_sel3765w[0..0])) # (w_sel3765w[1..1] & (w_sel3765w[0..0] # w_data3763w[2..2]))))) # ((((w_data3763w[0..0] & (! w_sel3765w[1..1])) & (! w_sel3765w[0..0])) # (w_sel3765w[1..1] & (w_sel3765w[0..0] # w_data3763w[2..2]))) & (w_data3763w[3..3] # (! w_sel3765w[0..0])))))), ((sel_node[2..2] & (((w_data3695w[1..1] & w_sel3696w[0..0]) & (! (((w_data3695w[0..0] & (! w_sel3696w[1..1])) & (! w_sel3696w[0..0])) # (w_sel3696w[1..1] & (w_sel3696w[0..0] # w_data3695w[2..2]))))) # ((((w_data3695w[0..0] & (! w_sel3696w[1..1])) & (! w_sel3696w[0..0])) # (w_sel3696w[1..1] & (w_sel3696w[0..0] # w_data3695w[2..2]))) & (w_data3695w[3..3] # (! w_sel3696w[0..0]))))) # ((! sel_node[2..2]) & (((w_data3694w[1..1] & w_sel3696w[0..0]) & (! (((w_data3694w[0..0] & (! w_sel3696w[1..1])) & (! w_sel3696w[0..0])) # (w_sel3696w[1..1] & (w_sel3696w[0..0] # w_data3694w[2..2]))))) # ((((w_data3694w[0..0] & (! w_sel3696w[1..1])) & (! w_sel3696w[0..0])) # (w_sel3696w[1..1] & (w_sel3696w[0..0] # w_data3694w[2..2]))) & (w_data3694w[3..3] # (! w_sel3696w[0..0])))))), ((sel_node[2..2] & (((w_data3626w[1..1] & w_sel3627w[0..0]) & (! (((w_data3626w[0..0] & (! w_sel3627w[1..1])) & (! w_sel3627w[0..0])) # (w_sel3627w[1..1] & (w_sel3627w[0..0] # w_data3626w[2..2]))))) # ((((w_data3626w[0..0] & (! w_sel3627w[1..1])) & (! w_sel3627w[0..0])) # (w_sel3627w[1..1] & (w_sel3627w[0..0] # w_data3626w[2..2]))) & (w_data3626w[3..3] # (! w_sel3627w[0..0]))))) # ((! sel_node[2..2]) & (((w_data3625w[1..1] & w_sel3627w[0..0]) & (! (((w_data3625w[0..0] & (! w_sel3627w[1..1])) & (! w_sel3627w[0..0])) # (w_sel3627w[1..1] & (w_sel3627w[0..0] # w_data3625w[2..2]))))) # ((((w_data3625w[0..0] & (! w_sel3627w[1..1])) & (! w_sel3627w[0..0])) # (w_sel3627w[1..1] & (w_sel3627w[0..0] # w_data3625w[2..2]))) & (w_data3625w[3..3] # (! w_sel3627w[0..0])))))), ((sel_node[2..2] & (((w_data3557w[1..1] & w_sel3558w[0..0]) & (! (((w_data3557w[0..0] & (! w_sel3558w[1..1])) & (! w_sel3558w[0..0])) # (w_sel3558w[1..1] & (w_sel3558w[0..0] # w_data3557w[2..2]))))) # ((((w_data3557w[0..0] & (! w_sel3558w[1..1])) & (! w_sel3558w[0..0])) # (w_sel3558w[1..1] & (w_sel3558w[0..0] # w_data3557w[2..2]))) & (w_data3557w[3..3] # (! w_sel3558w[0..0]))))) # ((! sel_node[2..2]) & (((w_data3556w[1..1] & w_sel3558w[0..0]) & (! (((w_data3556w[0..0] & (! w_sel3558w[1..1])) & (! w_sel3558w[0..0])) # (w_sel3558w[1..1] & (w_sel3558w[0..0] # w_data3556w[2..2]))))) # ((((w_data3556w[0..0] & (! w_sel3558w[1..1])) & (! w_sel3558w[0..0])) # (w_sel3558w[1..1] & (w_sel3558w[0..0] # w_data3556w[2..2]))) & (w_data3556w[3..3] # (! w_sel3558w[0..0])))))), ((sel_node[2..2] & (((w_data3488w[1..1] & w_sel3489w[0..0]) & (! (((w_data3488w[0..0] & (! w_sel3489w[1..1])) & (! w_sel3489w[0..0])) # (w_sel3489w[1..1] & (w_sel3489w[0..0] # w_data3488w[2..2]))))) # ((((w_data3488w[0..0] & (! w_sel3489w[1..1])) & (! w_sel3489w[0..0])) # (w_sel3489w[1..1] & (w_sel3489w[0..0] # w_data3488w[2..2]))) & (w_data3488w[3..3] # (! w_sel3489w[0..0]))))) # ((! sel_node[2..2]) & (((w_data3487w[1..1] & w_sel3489w[0..0]) & (! (((w_data3487w[0..0] & (! w_sel3489w[1..1])) & (! w_sel3489w[0..0])) # (w_sel3489w[1..1] & (w_sel3489w[0..0] # w_data3487w[2..2]))))) # ((((w_data3487w[0..0] & (! w_sel3489w[1..1])) & (! w_sel3489w[0..0])) # (w_sel3489w[1..1] & (w_sel3489w[0..0] # w_data3487w[2..2]))) & (w_data3487w[3..3] # (! w_sel3489w[0..0])))))), ((sel_node[2..2] & (((w_data3419w[1..1] & w_sel3420w[0..0]) & (! (((w_data3419w[0..0] & (! w_sel3420w[1..1])) & (! w_sel3420w[0..0])) # (w_sel3420w[1..1] & (w_sel3420w[0..0] # w_data3419w[2..2]))))) # ((((w_data3419w[0..0] & (! w_sel3420w[1..1])) & (! w_sel3420w[0..0])) # (w_sel3420w[1..1] & (w_sel3420w[0..0] # w_data3419w[2..2]))) & (w_data3419w[3..3] # (! w_sel3420w[0..0]))))) # ((! sel_node[2..2]) & (((w_data3418w[1..1] & w_sel3420w[0..0]) & (! (((w_data3418w[0..0] & (! w_sel3420w[1..1])) & (! w_sel3420w[0..0])) # (w_sel3420w[1..1] & (w_sel3420w[0..0] # w_data3418w[2..2]))))) # ((((w_data3418w[0..0] & (! w_sel3420w[1..1])) & (! w_sel3420w[0..0])) # (w_sel3420w[1..1] & (w_sel3420w[0..0] # w_data3418w[2..2]))) & (w_data3418w[3..3] # (! w_sel3420w[0..0])))))), ((sel_node[2..2] & (((w_data3350w[1..1] & w_sel3351w[0..0]) & (! (((w_data3350w[0..0] & (! w_sel3351w[1..1])) & (! w_sel3351w[0..0])) # (w_sel3351w[1..1] & (w_sel3351w[0..0] # w_data3350w[2..2]))))) # ((((w_data3350w[0..0] & (! w_sel3351w[1..1])) & (! w_sel3351w[0..0])) # (w_sel3351w[1..1] & (w_sel3351w[0..0] # w_data3350w[2..2]))) & (w_data3350w[3..3] # (! w_sel3351w[0..0]))))) # ((! sel_node[2..2]) & (((w_data3349w[1..1] & w_sel3351w[0..0]) & (! (((w_data3349w[0..0] & (! w_sel3351w[1..1])) & (! w_sel3351w[0..0])) # (w_sel3351w[1..1] & (w_sel3351w[0..0] # w_data3349w[2..2]))))) # ((((w_data3349w[0..0] & (! w_sel3351w[1..1])) & (! w_sel3351w[0..0])) # (w_sel3351w[1..1] & (w_sel3351w[0..0] # w_data3349w[2..2]))) & (w_data3349w[3..3] # (! w_sel3351w[0..0])))))), ((sel_node[2..2] & (((w_data3281w[1..1] & w_sel3282w[0..0]) & (! (((w_data3281w[0..0] & (! w_sel3282w[1..1])) & (! w_sel3282w[0..0])) # (w_sel3282w[1..1] & (w_sel3282w[0..0] # w_data3281w[2..2]))))) # ((((w_data3281w[0..0] & (! w_sel3282w[1..1])) & (! w_sel3282w[0..0])) # (w_sel3282w[1..1] & (w_sel3282w[0..0] # w_data3281w[2..2]))) & (w_data3281w[3..3] # (! w_sel3282w[0..0]))))) # ((! sel_node[2..2]) & (((w_data3280w[1..1] & w_sel3282w[0..0]) & (! (((w_data3280w[0..0] & (! w_sel3282w[1..1])) & (! w_sel3282w[0..0])) # (w_sel3282w[1..1] & (w_sel3282w[0..0] # w_data3280w[2..2]))))) # ((((w_data3280w[0..0] & (! w_sel3282w[1..1])) & (! w_sel3282w[0..0])) # (w_sel3282w[1..1] & (w_sel3282w[0..0] # w_data3280w[2..2]))) & (w_data3280w[3..3] # (! w_sel3282w[0..0])))))), ((sel_node[2..2] & (((w_data3212w[1..1] & w_sel3213w[0..0]) & (! (((w_data3212w[0..0] & (! w_sel3213w[1..1])) & (! w_sel3213w[0..0])) # (w_sel3213w[1..1] & (w_sel3213w[0..0] # w_data3212w[2..2]))))) # ((((w_data3212w[0..0] & (! w_sel3213w[1..1])) & (! w_sel3213w[0..0])) # (w_sel3213w[1..1] & (w_sel3213w[0..0] # w_data3212w[2..2]))) & (w_data3212w[3..3] # (! w_sel3213w[0..0]))))) # ((! sel_node[2..2]) & (((w_data3211w[1..1] & w_sel3213w[0..0]) & (! (((w_data3211w[0..0] & (! w_sel3213w[1..1])) & (! w_sel3213w[0..0])) # (w_sel3213w[1..1] & (w_sel3213w[0..0] # w_data3211w[2..2]))))) # ((((w_data3211w[0..0] & (! w_sel3213w[1..1])) & (! w_sel3213w[0..0])) # (w_sel3213w[1..1] & (w_sel3213w[0..0] # w_data3211w[2..2]))) & (w_data3211w[3..3] # (! w_sel3213w[0..0])))))), ((sel_node[2..2] & (((w_data3143w[1..1] & w_sel3144w[0..0]) & (! (((w_data3143w[0..0] & (! w_sel3144w[1..1])) & (! w_sel3144w[0..0])) # (w_sel3144w[1..1] & (w_sel3144w[0..0] # w_data3143w[2..2]))))) # ((((w_data3143w[0..0] & (! w_sel3144w[1..1])) & (! w_sel3144w[0..0])) # (w_sel3144w[1..1] & (w_sel3144w[0..0] # w_data3143w[2..2]))) & (w_data3143w[3..3] # (! w_sel3144w[0..0]))))) # ((! sel_node[2..2]) & (((w_data3142w[1..1] & w_sel3144w[0..0]) & (! (((w_data3142w[0..0] & (! w_sel3144w[1..1])) & (! w_sel3144w[0..0])) # (w_sel3144w[1..1] & (w_sel3144w[0..0] # w_data3142w[2..2]))))) # ((((w_data3142w[0..0] & (! w_sel3144w[1..1])) & (! w_sel3144w[0..0])) # (w_sel3144w[1..1] & (w_sel3144w[0..0] # w_data3142w[2..2]))) & (w_data3142w[3..3] # (! w_sel3144w[0..0])))))), ((sel_node[2..2] & (((w_data3074w[1..1] & w_sel3075w[0..0]) & (! (((w_data3074w[0..0] & (! w_sel3075w[1..1])) & (! w_sel3075w[0..0])) # (w_sel3075w[1..1] & (w_sel3075w[0..0] # w_data3074w[2..2]))))) # ((((w_data3074w[0..0] & (! w_sel3075w[1..1])) & (! w_sel3075w[0..0])) # (w_sel3075w[1..1] & (w_sel3075w[0..0] # w_data3074w[2..2]))) & (w_data3074w[3..3] # (! w_sel3075w[0..0]))))) # ((! sel_node[2..2]) & (((w_data3073w[1..1] & w_sel3075w[0..0]) & (! (((w_data3073w[0..0] & (! w_sel3075w[1..1])) & (! w_sel3075w[0..0])) # (w_sel3075w[1..1] & (w_sel3075w[0..0] # w_data3073w[2..2]))))) # ((((w_data3073w[0..0] & (! w_sel3075w[1..1])) & (! w_sel3075w[0..0])) # (w_sel3075w[1..1] & (w_sel3075w[0..0] # w_data3073w[2..2]))) & (w_data3073w[3..3] # (! w_sel3075w[0..0])))))), ((sel_node[2..2] & (((w_data3005w[1..1] & w_sel3006w[0..0]) & (! (((w_data3005w[0..0] & (! w_sel3006w[1..1])) & (! w_sel3006w[0..0])) # (w_sel3006w[1..1] & (w_sel3006w[0..0] # w_data3005w[2..2]))))) # ((((w_data3005w[0..0] & (! w_sel3006w[1..1])) & (! w_sel3006w[0..0])) # (w_sel3006w[1..1] & (w_sel3006w[0..0] # w_data3005w[2..2]))) & (w_data3005w[3..3] # (! w_sel3006w[0..0]))))) # ((! sel_node[2..2]) & (((w_data3004w[1..1] & w_sel3006w[0..0]) & (! (((w_data3004w[0..0] & (! w_sel3006w[1..1])) & (! w_sel3006w[0..0])) # (w_sel3006w[1..1] & (w_sel3006w[0..0] # w_data3004w[2..2]))))) # ((((w_data3004w[0..0] & (! w_sel3006w[1..1])) & (! w_sel3006w[0..0])) # (w_sel3006w[1..1] & (w_sel3006w[0..0] # w_data3004w[2..2]))) & (w_data3004w[3..3] # (! w_sel3006w[0..0])))))), ((sel_node[2..2] & (((w_data2936w[1..1] & w_sel2937w[0..0]) & (! (((w_data2936w[0..0] & (! w_sel2937w[1..1])) & (! w_sel2937w[0..0])) # (w_sel2937w[1..1] & (w_sel2937w[0..0] # w_data2936w[2..2]))))) # ((((w_data2936w[0..0] & (! w_sel2937w[1..1])) & (! w_sel2937w[0..0])) # (w_sel2937w[1..1] & (w_sel2937w[0..0] # w_data2936w[2..2]))) & (w_data2936w[3..3] # (! w_sel2937w[0..0]))))) # ((! sel_node[2..2]) & (((w_data2935w[1..1] & w_sel2937w[0..0]) & (! (((w_data2935w[0..0] & (! w_sel2937w[1..1])) & (! w_sel2937w[0..0])) # (w_sel2937w[1..1] & (w_sel2937w[0..0] # w_data2935w[2..2]))))) # ((((w_data2935w[0..0] & (! w_sel2937w[1..1])) & (! w_sel2937w[0..0])) # (w_sel2937w[1..1] & (w_sel2937w[0..0] # w_data2935w[2..2]))) & (w_data2935w[3..3] # (! w_sel2937w[0..0])))))), ((sel_node[2..2] & (((w_data2867w[1..1] & w_sel2868w[0..0]) & (! (((w_data2867w[0..0] & (! w_sel2868w[1..1])) & (! w_sel2868w[0..0])) # (w_sel2868w[1..1] & (w_sel2868w[0..0] # w_data2867w[2..2]))))) # ((((w_data2867w[0..0] & (! w_sel2868w[1..1])) & (! w_sel2868w[0..0])) # (w_sel2868w[1..1] & (w_sel2868w[0..0] # w_data2867w[2..2]))) & (w_data2867w[3..3] # (! w_sel2868w[0..0]))))) # ((! sel_node[2..2]) & (((w_data2866w[1..1] & w_sel2868w[0..0]) & (! (((w_data2866w[0..0] & (! w_sel2868w[1..1])) & (! w_sel2868w[0..0])) # (w_sel2868w[1..1] & (w_sel2868w[0..0] # w_data2866w[2..2]))))) # ((((w_data2866w[0..0] & (! w_sel2868w[1..1])) & (! w_sel2868w[0..0])) # (w_sel2868w[1..1] & (w_sel2868w[0..0] # w_data2866w[2..2]))) & (w_data2866w[3..3] # (! w_sel2868w[0..0])))))), ((sel_node[2..2] & (((w_data2798w[1..1] & w_sel2799w[0..0]) & (! (((w_data2798w[0..0] & (! w_sel2799w[1..1])) & (! w_sel2799w[0..0])) # (w_sel2799w[1..1] & (w_sel2799w[0..0] # w_data2798w[2..2]))))) # ((((w_data2798w[0..0] & (! w_sel2799w[1..1])) & (! w_sel2799w[0..0])) # (w_sel2799w[1..1] & (w_sel2799w[0..0] # w_data2798w[2..2]))) & (w_data2798w[3..3] # (! w_sel2799w[0..0]))))) # ((! sel_node[2..2]) & (((w_data2797w[1..1] & w_sel2799w[0..0]) & (! (((w_data2797w[0..0] & (! w_sel2799w[1..1])) & (! w_sel2799w[0..0])) # (w_sel2799w[1..1] & (w_sel2799w[0..0] # w_data2797w[2..2]))))) # ((((w_data2797w[0..0] & (! w_sel2799w[1..1])) & (! w_sel2799w[0..0])) # (w_sel2799w[1..1] & (w_sel2799w[0..0] # w_data2797w[2..2]))) & (w_data2797w[3..3] # (! w_sel2799w[0..0])))))), ((sel_node[2..2] & (((w_data2729w[1..1] & w_sel2730w[0..0]) & (! (((w_data2729w[0..0] & (! w_sel2730w[1..1])) & (! w_sel2730w[0..0])) # (w_sel2730w[1..1] & (w_sel2730w[0..0] # w_data2729w[2..2]))))) # ((((w_data2729w[0..0] & (! w_sel2730w[1..1])) & (! w_sel2730w[0..0])) # (w_sel2730w[1..1] & (w_sel2730w[0..0] # w_data2729w[2..2]))) & (w_data2729w[3..3] # (! w_sel2730w[0..0]))))) # ((! sel_node[2..2]) & (((w_data2728w[1..1] & w_sel2730w[0..0]) & (! (((w_data2728w[0..0] & (! w_sel2730w[1..1])) & (! w_sel2730w[0..0])) # (w_sel2730w[1..1] & (w_sel2730w[0..0] # w_data2728w[2..2]))))) # ((((w_data2728w[0..0] & (! w_sel2730w[1..1])) & (! w_sel2730w[0..0])) # (w_sel2730w[1..1] & (w_sel2730w[0..0] # w_data2728w[2..2]))) & (w_data2728w[3..3] # (! w_sel2730w[0..0])))))), ((sel_node[2..2] & (((w_data2660w[1..1] & w_sel2661w[0..0]) & (! (((w_data2660w[0..0] & (! w_sel2661w[1..1])) & (! w_sel2661w[0..0])) # (w_sel2661w[1..1] & (w_sel2661w[0..0] # w_data2660w[2..2]))))) # ((((w_data2660w[0..0] & (! w_sel2661w[1..1])) & (! w_sel2661w[0..0])) # (w_sel2661w[1..1] & (w_sel2661w[0..0] # w_data2660w[2..2]))) & (w_data2660w[3..3] # (! w_sel2661w[0..0]))))) # ((! sel_node[2..2]) & (((w_data2659w[1..1] & w_sel2661w[0..0]) & (! (((w_data2659w[0..0] & (! w_sel2661w[1..1])) & (! w_sel2661w[0..0])) # (w_sel2661w[1..1] & (w_sel2661w[0..0] # w_data2659w[2..2]))))) # ((((w_data2659w[0..0] & (! w_sel2661w[1..1])) & (! w_sel2661w[0..0])) # (w_sel2661w[1..1] & (w_sel2661w[0..0] # w_data2659w[2..2]))) & (w_data2659w[3..3] # (! w_sel2661w[0..0])))))), ((sel_node[2..2] & (((w_data2591w[1..1] & w_sel2592w[0..0]) & (! (((w_data2591w[0..0] & (! w_sel2592w[1..1])) & (! w_sel2592w[0..0])) # (w_sel2592w[1..1] & (w_sel2592w[0..0] # w_data2591w[2..2]))))) # ((((w_data2591w[0..0] & (! w_sel2592w[1..1])) & (! w_sel2592w[0..0])) # (w_sel2592w[1..1] & (w_sel2592w[0..0] # w_data2591w[2..2]))) & (w_data2591w[3..3] # (! w_sel2592w[0..0]))))) # ((! sel_node[2..2]) & (((w_data2590w[1..1] & w_sel2592w[0..0]) & (! (((w_data2590w[0..0] & (! w_sel2592w[1..1])) & (! w_sel2592w[0..0])) # (w_sel2592w[1..1] & (w_sel2592w[0..0] # w_data2590w[2..2]))))) # ((((w_data2590w[0..0] & (! w_sel2592w[1..1])) & (! w_sel2592w[0..0])) # (w_sel2592w[1..1] & (w_sel2592w[0..0] # w_data2590w[2..2]))) & (w_data2590w[3..3] # (! w_sel2592w[0..0])))))), ((sel_node[2..2] & (((w_data2522w[1..1] & w_sel2523w[0..0]) & (! (((w_data2522w[0..0] & (! w_sel2523w[1..1])) & (! w_sel2523w[0..0])) # (w_sel2523w[1..1] & (w_sel2523w[0..0] # w_data2522w[2..2]))))) # ((((w_data2522w[0..0] & (! w_sel2523w[1..1])) & (! w_sel2523w[0..0])) # (w_sel2523w[1..1] & (w_sel2523w[0..0] # w_data2522w[2..2]))) & (w_data2522w[3..3] # (! w_sel2523w[0..0]))))) # ((! sel_node[2..2]) & (((w_data2521w[1..1] & w_sel2523w[0..0]) & (! (((w_data2521w[0..0] & (! w_sel2523w[1..1])) & (! w_sel2523w[0..0])) # (w_sel2523w[1..1] & (w_sel2523w[0..0] # w_data2521w[2..2]))))) # ((((w_data2521w[0..0] & (! w_sel2523w[1..1])) & (! w_sel2523w[0..0])) # (w_sel2523w[1..1] & (w_sel2523w[0..0] # w_data2521w[2..2]))) & (w_data2521w[3..3] # (! w_sel2523w[0..0])))))), ((sel_node[2..2] & (((w_data2453w[1..1] & w_sel2454w[0..0]) & (! (((w_data2453w[0..0] & (! w_sel2454w[1..1])) & (! w_sel2454w[0..0])) # (w_sel2454w[1..1] & (w_sel2454w[0..0] # w_data2453w[2..2]))))) # ((((w_data2453w[0..0] & (! w_sel2454w[1..1])) & (! w_sel2454w[0..0])) # (w_sel2454w[1..1] & (w_sel2454w[0..0] # w_data2453w[2..2]))) & (w_data2453w[3..3] # (! w_sel2454w[0..0]))))) # ((! sel_node[2..2]) & (((w_data2452w[1..1] & w_sel2454w[0..0]) & (! (((w_data2452w[0..0] & (! w_sel2454w[1..1])) & (! w_sel2454w[0..0])) # (w_sel2454w[1..1] & (w_sel2454w[0..0] # w_data2452w[2..2]))))) # ((((w_data2452w[0..0] & (! w_sel2454w[1..1])) & (! w_sel2454w[0..0])) # (w_sel2454w[1..1] & (w_sel2454w[0..0] # w_data2452w[2..2]))) & (w_data2452w[3..3] # (! w_sel2454w[0..0])))))), ((sel_node[2..2] & (((w_data2384w[1..1] & w_sel2385w[0..0]) & (! (((w_data2384w[0..0] & (! w_sel2385w[1..1])) & (! w_sel2385w[0..0])) # (w_sel2385w[1..1] & (w_sel2385w[0..0] # w_data2384w[2..2]))))) # ((((w_data2384w[0..0] & (! w_sel2385w[1..1])) & (! w_sel2385w[0..0])) # (w_sel2385w[1..1] & (w_sel2385w[0..0] # w_data2384w[2..2]))) & (w_data2384w[3..3] # (! w_sel2385w[0..0]))))) # ((! sel_node[2..2]) & (((w_data2383w[1..1] & w_sel2385w[0..0]) & (! (((w_data2383w[0..0] & (! w_sel2385w[1..1])) & (! w_sel2385w[0..0])) # (w_sel2385w[1..1] & (w_sel2385w[0..0] # w_data2383w[2..2]))))) # ((((w_data2383w[0..0] & (! w_sel2385w[1..1])) & (! w_sel2385w[0..0])) # (w_sel2385w[1..1] & (w_sel2385w[0..0] # w_data2383w[2..2]))) & (w_data2383w[3..3] # (! w_sel2385w[0..0])))))), ((sel_node[2..2] & (((w_data2315w[1..1] & w_sel2316w[0..0]) & (! (((w_data2315w[0..0] & (! w_sel2316w[1..1])) & (! w_sel2316w[0..0])) # (w_sel2316w[1..1] & (w_sel2316w[0..0] # w_data2315w[2..2]))))) # ((((w_data2315w[0..0] & (! w_sel2316w[1..1])) & (! w_sel2316w[0..0])) # (w_sel2316w[1..1] & (w_sel2316w[0..0] # w_data2315w[2..2]))) & (w_data2315w[3..3] # (! w_sel2316w[0..0]))))) # ((! sel_node[2..2]) & (((w_data2314w[1..1] & w_sel2316w[0..0]) & (! (((w_data2314w[0..0] & (! w_sel2316w[1..1])) & (! w_sel2316w[0..0])) # (w_sel2316w[1..1] & (w_sel2316w[0..0] # w_data2314w[2..2]))))) # ((((w_data2314w[0..0] & (! w_sel2316w[1..1])) & (! w_sel2316w[0..0])) # (w_sel2316w[1..1] & (w_sel2316w[0..0] # w_data2314w[2..2]))) & (w_data2314w[3..3] # (! w_sel2316w[0..0])))))), ((sel_node[2..2] & (((w_data2246w[1..1] & w_sel2247w[0..0]) & (! (((w_data2246w[0..0] & (! w_sel2247w[1..1])) & (! w_sel2247w[0..0])) # (w_sel2247w[1..1] & (w_sel2247w[0..0] # w_data2246w[2..2]))))) # ((((w_data2246w[0..0] & (! w_sel2247w[1..1])) & (! w_sel2247w[0..0])) # (w_sel2247w[1..1] & (w_sel2247w[0..0] # w_data2246w[2..2]))) & (w_data2246w[3..3] # (! w_sel2247w[0..0]))))) # ((! sel_node[2..2]) & (((w_data2245w[1..1] & w_sel2247w[0..0]) & (! (((w_data2245w[0..0] & (! w_sel2247w[1..1])) & (! w_sel2247w[0..0])) # (w_sel2247w[1..1] & (w_sel2247w[0..0] # w_data2245w[2..2]))))) # ((((w_data2245w[0..0] & (! w_sel2247w[1..1])) & (! w_sel2247w[0..0])) # (w_sel2247w[1..1] & (w_sel2247w[0..0] # w_data2245w[2..2]))) & (w_data2245w[3..3] # (! w_sel2247w[0..0])))))), ((sel_node[2..2] & (((w_data2177w[1..1] & w_sel2178w[0..0]) & (! (((w_data2177w[0..0] & (! w_sel2178w[1..1])) & (! w_sel2178w[0..0])) # (w_sel2178w[1..1] & (w_sel2178w[0..0] # w_data2177w[2..2]))))) # ((((w_data2177w[0..0] & (! w_sel2178w[1..1])) & (! w_sel2178w[0..0])) # (w_sel2178w[1..1] & (w_sel2178w[0..0] # w_data2177w[2..2]))) & (w_data2177w[3..3] # (! w_sel2178w[0..0]))))) # ((! sel_node[2..2]) & (((w_data2176w[1..1] & w_sel2178w[0..0]) & (! (((w_data2176w[0..0] & (! w_sel2178w[1..1])) & (! w_sel2178w[0..0])) # (w_sel2178w[1..1] & (w_sel2178w[0..0] # w_data2176w[2..2]))))) # ((((w_data2176w[0..0] & (! w_sel2178w[1..1])) & (! w_sel2178w[0..0])) # (w_sel2178w[1..1] & (w_sel2178w[0..0] # w_data2176w[2..2]))) & (w_data2176w[3..3] # (! w_sel2178w[0..0])))))), ((sel_node[2..2] & (((w_data2108w[1..1] & w_sel2109w[0..0]) & (! (((w_data2108w[0..0] & (! w_sel2109w[1..1])) & (! w_sel2109w[0..0])) # (w_sel2109w[1..1] & (w_sel2109w[0..0] # w_data2108w[2..2]))))) # ((((w_data2108w[0..0] & (! w_sel2109w[1..1])) & (! w_sel2109w[0..0])) # (w_sel2109w[1..1] & (w_sel2109w[0..0] # w_data2108w[2..2]))) & (w_data2108w[3..3] # (! w_sel2109w[0..0]))))) # ((! sel_node[2..2]) & (((w_data2107w[1..1] & w_sel2109w[0..0]) & (! (((w_data2107w[0..0] & (! w_sel2109w[1..1])) & (! w_sel2109w[0..0])) # (w_sel2109w[1..1] & (w_sel2109w[0..0] # w_data2107w[2..2]))))) # ((((w_data2107w[0..0] & (! w_sel2109w[1..1])) & (! w_sel2109w[0..0])) # (w_sel2109w[1..1] & (w_sel2109w[0..0] # w_data2107w[2..2]))) & (w_data2107w[3..3] # (! w_sel2109w[0..0])))))), ((sel_node[2..2] & (((w_data2039w[1..1] & w_sel2040w[0..0]) & (! (((w_data2039w[0..0] & (! w_sel2040w[1..1])) & (! w_sel2040w[0..0])) # (w_sel2040w[1..1] & (w_sel2040w[0..0] # w_data2039w[2..2]))))) # ((((w_data2039w[0..0] & (! w_sel2040w[1..1])) & (! w_sel2040w[0..0])) # (w_sel2040w[1..1] & (w_sel2040w[0..0] # w_data2039w[2..2]))) & (w_data2039w[3..3] # (! w_sel2040w[0..0]))))) # ((! sel_node[2..2]) & (((w_data2038w[1..1] & w_sel2040w[0..0]) & (! (((w_data2038w[0..0] & (! w_sel2040w[1..1])) & (! w_sel2040w[0..0])) # (w_sel2040w[1..1] & (w_sel2040w[0..0] # w_data2038w[2..2]))))) # ((((w_data2038w[0..0] & (! w_sel2040w[1..1])) & (! w_sel2040w[0..0])) # (w_sel2040w[1..1] & (w_sel2040w[0..0] # w_data2038w[2..2]))) & (w_data2038w[3..3] # (! w_sel2040w[0..0])))))), ((sel_node[2..2] & (((w_data1968w[1..1] & w_sel1969w[0..0]) & (! (((w_data1968w[0..0] & (! w_sel1969w[1..1])) & (! w_sel1969w[0..0])) # (w_sel1969w[1..1] & (w_sel1969w[0..0] # w_data1968w[2..2]))))) # ((((w_data1968w[0..0] & (! w_sel1969w[1..1])) & (! w_sel1969w[0..0])) # (w_sel1969w[1..1] & (w_sel1969w[0..0] # w_data1968w[2..2]))) & (w_data1968w[3..3] # (! w_sel1969w[0..0]))))) # ((! sel_node[2..2]) & (((w_data1967w[1..1] & w_sel1969w[0..0]) & (! (((w_data1967w[0..0] & (! w_sel1969w[1..1])) & (! w_sel1969w[0..0])) # (w_sel1969w[1..1] & (w_sel1969w[0..0] # w_data1967w[2..2]))))) # ((((w_data1967w[0..0] & (! w_sel1969w[1..1])) & (! w_sel1969w[0..0])) # (w_sel1969w[1..1] & (w_sel1969w[0..0] # w_data1967w[2..2]))) & (w_data1967w[3..3] # (! w_sel1969w[0..0]))))))); + sel_ffs_wire[] = ( sel[2..0]); + sel_node[] = ( sel_ffs_wire[2..2], sel[1..0]); + w_data1945w[] = ( B"0", data[192..192], data[160..160], data[128..128], data[96..96], data[64..64], data[32..32], data[0..0]); + w_data1967w[3..0] = w_data1945w[3..0]; + w_data1968w[3..0] = w_data1945w[7..4]; + w_data2016w[] = ( B"0", data[193..193], data[161..161], data[129..129], data[97..97], data[65..65], data[33..33], data[1..1]); + w_data2038w[3..0] = w_data2016w[3..0]; + w_data2039w[3..0] = w_data2016w[7..4]; + w_data2085w[] = ( B"0", data[194..194], data[162..162], data[130..130], data[98..98], data[66..66], data[34..34], data[2..2]); + w_data2107w[3..0] = w_data2085w[3..0]; + w_data2108w[3..0] = w_data2085w[7..4]; + w_data2154w[] = ( B"0", data[195..195], data[163..163], data[131..131], data[99..99], data[67..67], data[35..35], data[3..3]); + w_data2176w[3..0] = w_data2154w[3..0]; + w_data2177w[3..0] = w_data2154w[7..4]; + w_data2223w[] = ( B"0", data[196..196], data[164..164], data[132..132], data[100..100], data[68..68], data[36..36], data[4..4]); + w_data2245w[3..0] = w_data2223w[3..0]; + w_data2246w[3..0] = w_data2223w[7..4]; + w_data2292w[] = ( B"0", data[197..197], data[165..165], data[133..133], data[101..101], data[69..69], data[37..37], data[5..5]); + w_data2314w[3..0] = w_data2292w[3..0]; + w_data2315w[3..0] = w_data2292w[7..4]; + w_data2361w[] = ( B"0", data[198..198], data[166..166], data[134..134], data[102..102], data[70..70], data[38..38], data[6..6]); + w_data2383w[3..0] = w_data2361w[3..0]; + w_data2384w[3..0] = w_data2361w[7..4]; + w_data2430w[] = ( B"0", data[199..199], data[167..167], data[135..135], data[103..103], data[71..71], data[39..39], data[7..7]); + w_data2452w[3..0] = w_data2430w[3..0]; + w_data2453w[3..0] = w_data2430w[7..4]; + w_data2499w[] = ( B"0", data[200..200], data[168..168], data[136..136], data[104..104], data[72..72], data[40..40], data[8..8]); + w_data2521w[3..0] = w_data2499w[3..0]; + w_data2522w[3..0] = w_data2499w[7..4]; + w_data2568w[] = ( B"0", data[201..201], data[169..169], data[137..137], data[105..105], data[73..73], data[41..41], data[9..9]); + w_data2590w[3..0] = w_data2568w[3..0]; + w_data2591w[3..0] = w_data2568w[7..4]; + w_data2637w[] = ( B"0", data[202..202], data[170..170], data[138..138], data[106..106], data[74..74], data[42..42], data[10..10]); + w_data2659w[3..0] = w_data2637w[3..0]; + w_data2660w[3..0] = w_data2637w[7..4]; + w_data2706w[] = ( B"0", data[203..203], data[171..171], data[139..139], data[107..107], data[75..75], data[43..43], data[11..11]); + w_data2728w[3..0] = w_data2706w[3..0]; + w_data2729w[3..0] = w_data2706w[7..4]; + w_data2775w[] = ( B"0", data[204..204], data[172..172], data[140..140], data[108..108], data[76..76], data[44..44], data[12..12]); + w_data2797w[3..0] = w_data2775w[3..0]; + w_data2798w[3..0] = w_data2775w[7..4]; + w_data2844w[] = ( B"0", data[205..205], data[173..173], data[141..141], data[109..109], data[77..77], data[45..45], data[13..13]); + w_data2866w[3..0] = w_data2844w[3..0]; + w_data2867w[3..0] = w_data2844w[7..4]; + w_data2913w[] = ( B"0", data[206..206], data[174..174], data[142..142], data[110..110], data[78..78], data[46..46], data[14..14]); + w_data2935w[3..0] = w_data2913w[3..0]; + w_data2936w[3..0] = w_data2913w[7..4]; + w_data2982w[] = ( B"0", data[207..207], data[175..175], data[143..143], data[111..111], data[79..79], data[47..47], data[15..15]); + w_data3004w[3..0] = w_data2982w[3..0]; + w_data3005w[3..0] = w_data2982w[7..4]; + w_data3051w[] = ( B"0", data[208..208], data[176..176], data[144..144], data[112..112], data[80..80], data[48..48], data[16..16]); + w_data3073w[3..0] = w_data3051w[3..0]; + w_data3074w[3..0] = w_data3051w[7..4]; + w_data3120w[] = ( B"0", data[209..209], data[177..177], data[145..145], data[113..113], data[81..81], data[49..49], data[17..17]); + w_data3142w[3..0] = w_data3120w[3..0]; + w_data3143w[3..0] = w_data3120w[7..4]; + w_data3189w[] = ( B"0", data[210..210], data[178..178], data[146..146], data[114..114], data[82..82], data[50..50], data[18..18]); + w_data3211w[3..0] = w_data3189w[3..0]; + w_data3212w[3..0] = w_data3189w[7..4]; + w_data3258w[] = ( B"0", data[211..211], data[179..179], data[147..147], data[115..115], data[83..83], data[51..51], data[19..19]); + w_data3280w[3..0] = w_data3258w[3..0]; + w_data3281w[3..0] = w_data3258w[7..4]; + w_data3327w[] = ( B"0", data[212..212], data[180..180], data[148..148], data[116..116], data[84..84], data[52..52], data[20..20]); + w_data3349w[3..0] = w_data3327w[3..0]; + w_data3350w[3..0] = w_data3327w[7..4]; + w_data3396w[] = ( B"0", data[213..213], data[181..181], data[149..149], data[117..117], data[85..85], data[53..53], data[21..21]); + w_data3418w[3..0] = w_data3396w[3..0]; + w_data3419w[3..0] = w_data3396w[7..4]; + w_data3465w[] = ( B"0", data[214..214], data[182..182], data[150..150], data[118..118], data[86..86], data[54..54], data[22..22]); + w_data3487w[3..0] = w_data3465w[3..0]; + w_data3488w[3..0] = w_data3465w[7..4]; + w_data3534w[] = ( B"0", data[215..215], data[183..183], data[151..151], data[119..119], data[87..87], data[55..55], data[23..23]); + w_data3556w[3..0] = w_data3534w[3..0]; + w_data3557w[3..0] = w_data3534w[7..4]; + w_data3603w[] = ( B"0", data[216..216], data[184..184], data[152..152], data[120..120], data[88..88], data[56..56], data[24..24]); + w_data3625w[3..0] = w_data3603w[3..0]; + w_data3626w[3..0] = w_data3603w[7..4]; + w_data3672w[] = ( B"0", data[217..217], data[185..185], data[153..153], data[121..121], data[89..89], data[57..57], data[25..25]); + w_data3694w[3..0] = w_data3672w[3..0]; + w_data3695w[3..0] = w_data3672w[7..4]; + w_data3741w[] = ( B"0", data[218..218], data[186..186], data[154..154], data[122..122], data[90..90], data[58..58], data[26..26]); + w_data3763w[3..0] = w_data3741w[3..0]; + w_data3764w[3..0] = w_data3741w[7..4]; + w_data3810w[] = ( B"0", data[219..219], data[187..187], data[155..155], data[123..123], data[91..91], data[59..59], data[27..27]); + w_data3832w[3..0] = w_data3810w[3..0]; + w_data3833w[3..0] = w_data3810w[7..4]; + w_data3879w[] = ( B"0", data[220..220], data[188..188], data[156..156], data[124..124], data[92..92], data[60..60], data[28..28]); + w_data3901w[3..0] = w_data3879w[3..0]; + w_data3902w[3..0] = w_data3879w[7..4]; + w_data3948w[] = ( B"0", data[221..221], data[189..189], data[157..157], data[125..125], data[93..93], data[61..61], data[29..29]); + w_data3970w[3..0] = w_data3948w[3..0]; + w_data3971w[3..0] = w_data3948w[7..4]; + w_data4017w[] = ( B"0", data[222..222], data[190..190], data[158..158], data[126..126], data[94..94], data[62..62], data[30..30]); + w_data4039w[3..0] = w_data4017w[3..0]; + w_data4040w[3..0] = w_data4017w[7..4]; + w_data4086w[] = ( B"0", data[223..223], data[191..191], data[159..159], data[127..127], data[95..95], data[63..63], data[31..31]); + w_data4108w[3..0] = w_data4086w[3..0]; + w_data4109w[3..0] = w_data4086w[7..4]; + w_sel1969w[1..0] = sel_node[1..0]; + w_sel2040w[1..0] = sel_node[1..0]; + w_sel2109w[1..0] = sel_node[1..0]; + w_sel2178w[1..0] = sel_node[1..0]; + w_sel2247w[1..0] = sel_node[1..0]; + w_sel2316w[1..0] = sel_node[1..0]; + w_sel2385w[1..0] = sel_node[1..0]; + w_sel2454w[1..0] = sel_node[1..0]; + w_sel2523w[1..0] = sel_node[1..0]; + w_sel2592w[1..0] = sel_node[1..0]; + w_sel2661w[1..0] = sel_node[1..0]; + w_sel2730w[1..0] = sel_node[1..0]; + w_sel2799w[1..0] = sel_node[1..0]; + w_sel2868w[1..0] = sel_node[1..0]; + w_sel2937w[1..0] = sel_node[1..0]; + w_sel3006w[1..0] = sel_node[1..0]; + w_sel3075w[1..0] = sel_node[1..0]; + w_sel3144w[1..0] = sel_node[1..0]; + w_sel3213w[1..0] = sel_node[1..0]; + w_sel3282w[1..0] = sel_node[1..0]; + w_sel3351w[1..0] = sel_node[1..0]; + w_sel3420w[1..0] = sel_node[1..0]; + w_sel3489w[1..0] = sel_node[1..0]; + w_sel3558w[1..0] = sel_node[1..0]; + w_sel3627w[1..0] = sel_node[1..0]; + w_sel3696w[1..0] = sel_node[1..0]; + w_sel3765w[1..0] = sel_node[1..0]; + w_sel3834w[1..0] = sel_node[1..0]; + w_sel3903w[1..0] = sel_node[1..0]; + w_sel3972w[1..0] = sel_node[1..0]; + w_sel4041w[1..0] = sel_node[1..0]; + w_sel4110w[1..0] = sel_node[1..0]; +END; +--VALID FILE diff --git a/db/prev_cmp_lights.qmsg b/db/prev_cmp_lights.qmsg new file mode 100644 index 0000000..3b1ea70 --- /dev/null +++ b/db/prev_cmp_lights.qmsg @@ -0,0 +1,572 @@ +{ "Info" "IQEXE_SEPARATOR" "" "*******************************************************************" { } { } 3 0 "*******************************************************************" 0 0 "Quartus II" 0 -1 1480609244120 ""} +{ "Info" "IQEXE_START_BANNER_PRODUCT" "Analysis & Synthesis Quartus II 64-Bit " "Running Quartus II 64-Bit Analysis & Synthesis" { { "Info" "IQEXE_START_BANNER_VERSION" "Version 13.0.1 Build 232 06/12/2013 Service Pack 1 SJ Web Edition " "Version 13.0.1 Build 232 06/12/2013 Service Pack 1 SJ Web Edition" { } { } 0 0 "%1!s!" 0 0 "Quartus II" 0 -1 1480609244121 ""} { "Info" "IQEXE_START_BANNER_TIME" "Fri Dec 02 01:20:43 2016 " "Processing started: Fri Dec 02 01:20:43 2016" { } { } 0 0 "Processing started: %1!s!" 0 0 "Quartus II" 0 -1 1480609244121 ""} } { } 4 0 "Running %2!s! %1!s!" 0 0 "Quartus II" 0 -1 1480609244121 ""} +{ "Info" "IQEXE_START_BANNER_COMMANDLINE" "quartus_map --read_settings_files=on --write_settings_files=off lights -c lights " "Command: quartus_map --read_settings_files=on --write_settings_files=off lights -c lights" { } { } 0 0 "Command: %1!s!" 0 0 "Quartus II" 0 -1 1480609244121 ""} +{ "Warning" "WQCU_PARALLEL_NO_LICENSE" "" "Parallel compilation is not licensed and has been disabled" { } { } 0 20028 "Parallel compilation is not licensed and has been disabled" 0 0 "Quartus II" 0 -1 1480609244493 ""} +{ "Info" "ISGN_START_ELABORATION_QSYS" "nios_system.qsys " "Elaborating Qsys system entity \"nios_system.qsys\"" { } { } 0 12248 "Elaborating Qsys system entity \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609244532 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "2016.12.02.01:20:45 Progress: Loading qsys_tutorial/nios_system.qsys " "2016.12.02.01:20:45 Progress: Loading qsys_tutorial/nios_system.qsys" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609245237 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "2016.12.02.01:20:45 Progress: Reading input file " "2016.12.02.01:20:45 Progress: Reading input file" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609245421 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "2016.12.02.01:20:45 Progress: Adding clk_0 \[clock_source 13.0\] " "2016.12.02.01:20:45 Progress: Adding clk_0 \[clock_source 13.0\]" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609245465 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "2016.12.02.01:20:45 Progress: Parameterizing module clk_0 " "2016.12.02.01:20:45 Progress: Parameterizing module clk_0" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609245657 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "2016.12.02.01:20:45 Progress: Adding nios2_processor \[altera_nios2_qsys 13.0\] " "2016.12.02.01:20:45 Progress: Adding nios2_processor \[altera_nios2_qsys 13.0\]" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609245661 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "2016.12.02.01:20:46 Progress: Parameterizing module nios2_processor " "2016.12.02.01:20:46 Progress: Parameterizing module nios2_processor" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609246366 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "2016.12.02.01:20:46 Progress: Adding onchip_memory \[altera_avalon_onchip_memory2 13.0.1.99.2\] " "2016.12.02.01:20:46 Progress: Adding onchip_memory \[altera_avalon_onchip_memory2 13.0.1.99.2\]" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609246369 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "2016.12.02.01:20:46 Progress: Parameterizing module onchip_memory " "2016.12.02.01:20:46 Progress: Parameterizing module onchip_memory" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609246433 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "2016.12.02.01:20:46 Progress: Adding jtag_uart \[altera_avalon_jtag_uart 13.0.1.99.2\] " "2016.12.02.01:20:46 Progress: Adding jtag_uart \[altera_avalon_jtag_uart 13.0.1.99.2\]" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609246434 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "2016.12.02.01:20:46 Progress: Parameterizing module jtag_uart " "2016.12.02.01:20:46 Progress: Parameterizing module jtag_uart" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609246474 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "2016.12.02.01:20:46 Progress: Adding LEDs \[altera_avalon_pio 13.0.1.99.2\] " "2016.12.02.01:20:46 Progress: Adding LEDs \[altera_avalon_pio 13.0.1.99.2\]" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609246474 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "2016.12.02.01:20:46 Progress: Parameterizing module LEDs " "2016.12.02.01:20:46 Progress: Parameterizing module LEDs" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609246518 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "2016.12.02.01:20:46 Progress: Adding LEDRs \[altera_avalon_pio 13.0.1.99.2\] " "2016.12.02.01:20:46 Progress: Adding LEDRs \[altera_avalon_pio 13.0.1.99.2\]" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609246519 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "2016.12.02.01:20:46 Progress: Parameterizing module LEDRs " "2016.12.02.01:20:46 Progress: Parameterizing module LEDRs" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609246522 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "2016.12.02.01:20:46 Progress: Adding switches \[altera_avalon_pio 13.0.1.99.2\] " "2016.12.02.01:20:46 Progress: Adding switches \[altera_avalon_pio 13.0.1.99.2\]" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609246523 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "2016.12.02.01:20:46 Progress: Parameterizing module switches " "2016.12.02.01:20:46 Progress: Parameterizing module switches" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609246524 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "2016.12.02.01:20:46 Progress: Adding push_switches \[altera_avalon_pio 13.0.1.99.2\] " "2016.12.02.01:20:46 Progress: Adding push_switches \[altera_avalon_pio 13.0.1.99.2\]" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609246524 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "2016.12.02.01:20:46 Progress: Parameterizing module push_switches " "2016.12.02.01:20:46 Progress: Parameterizing module push_switches" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609246526 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "2016.12.02.01:20:46 Progress: Adding hex0 \[altera_avalon_pio 13.0.1.99.2\] " "2016.12.02.01:20:46 Progress: Adding hex0 \[altera_avalon_pio 13.0.1.99.2\]" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609246527 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "2016.12.02.01:20:46 Progress: Parameterizing module hex0 " "2016.12.02.01:20:46 Progress: Parameterizing module hex0" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609246528 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "2016.12.02.01:20:46 Progress: Adding hex1 \[altera_avalon_pio 13.0.1.99.2\] " "2016.12.02.01:20:46 Progress: Adding hex1 \[altera_avalon_pio 13.0.1.99.2\]" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609246529 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "2016.12.02.01:20:46 Progress: Parameterizing module hex1 " "2016.12.02.01:20:46 Progress: Parameterizing module hex1" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609246530 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "2016.12.02.01:20:46 Progress: Adding hex2 \[altera_avalon_pio 13.0.1.99.2\] " "2016.12.02.01:20:46 Progress: Adding hex2 \[altera_avalon_pio 13.0.1.99.2\]" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609246531 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "2016.12.02.01:20:46 Progress: Parameterizing module hex2 " "2016.12.02.01:20:46 Progress: Parameterizing module hex2" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609246532 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "2016.12.02.01:20:46 Progress: Adding hex3 \[altera_avalon_pio 13.0.1.99.2\] " "2016.12.02.01:20:46 Progress: Adding hex3 \[altera_avalon_pio 13.0.1.99.2\]" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609246533 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "2016.12.02.01:20:46 Progress: Parameterizing module hex3 " "2016.12.02.01:20:46 Progress: Parameterizing module hex3" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609246534 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "2016.12.02.01:20:46 Progress: Adding hex4 \[altera_avalon_pio 13.0.1.99.2\] " "2016.12.02.01:20:46 Progress: Adding hex4 \[altera_avalon_pio 13.0.1.99.2\]" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609246535 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "2016.12.02.01:20:46 Progress: Parameterizing module hex4 " "2016.12.02.01:20:46 Progress: Parameterizing module hex4" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609246536 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "2016.12.02.01:20:46 Progress: Adding hex5 \[altera_avalon_pio 13.0.1.99.2\] " "2016.12.02.01:20:46 Progress: Adding hex5 \[altera_avalon_pio 13.0.1.99.2\]" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609246537 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "2016.12.02.01:20:46 Progress: Parameterizing module hex5 " "2016.12.02.01:20:46 Progress: Parameterizing module hex5" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609246538 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "2016.12.02.01:20:46 Progress: Adding hex6 \[altera_avalon_pio 13.0.1.99.2\] " "2016.12.02.01:20:46 Progress: Adding hex6 \[altera_avalon_pio 13.0.1.99.2\]" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609246539 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "2016.12.02.01:20:46 Progress: Parameterizing module hex6 " "2016.12.02.01:20:46 Progress: Parameterizing module hex6" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609246540 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "2016.12.02.01:20:46 Progress: Adding hex7 \[altera_avalon_pio 13.0.1.99.2\] " "2016.12.02.01:20:46 Progress: Adding hex7 \[altera_avalon_pio 13.0.1.99.2\]" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609246540 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "2016.12.02.01:20:46 Progress: Parameterizing module hex7 " "2016.12.02.01:20:46 Progress: Parameterizing module hex7" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609246542 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "2016.12.02.01:20:46 Progress: Adding lcd_16207_0 \[altera_avalon_lcd_16207 13.0.1.99.2\] " "2016.12.02.01:20:46 Progress: Adding lcd_16207_0 \[altera_avalon_lcd_16207 13.0.1.99.2\]" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609246542 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "2016.12.02.01:20:46 Progress: Parameterizing module lcd_16207_0 " "2016.12.02.01:20:46 Progress: Parameterizing module lcd_16207_0" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609246563 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "2016.12.02.01:20:46 Progress: Adding lcd_on \[altera_avalon_pio 13.0.1.99.2\] " "2016.12.02.01:20:46 Progress: Adding lcd_on \[altera_avalon_pio 13.0.1.99.2\]" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609246564 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "2016.12.02.01:20:46 Progress: Parameterizing module lcd_on " "2016.12.02.01:20:46 Progress: Parameterizing module lcd_on" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609246566 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "2016.12.02.01:20:46 Progress: Adding lcd_blon \[altera_avalon_pio 13.0.1.99.2\] " "2016.12.02.01:20:46 Progress: Adding lcd_blon \[altera_avalon_pio 13.0.1.99.2\]" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609246567 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "2016.12.02.01:20:46 Progress: Parameterizing module lcd_blon " "2016.12.02.01:20:46 Progress: Parameterizing module lcd_blon" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609246569 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "2016.12.02.01:20:46 Progress: Building connections " "2016.12.02.01:20:46 Progress: Building connections" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609246569 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "2016.12.02.01:20:46 Progress: Parameterizing connections " "2016.12.02.01:20:46 Progress: Parameterizing connections" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609246883 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "2016.12.02.01:20:46 Progress: Validating " "2016.12.02.01:20:46 Progress: Validating" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609246886 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "2016.12.02.01:20:47 Progress: Done reading input file " "2016.12.02.01:20:47 Progress: Done reading input file" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609247552 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Nios_system.switches: PIO inputs are not hardwired in test bench. Undefined values will be read from PIO inputs during simulation. " "Nios_system.switches: PIO inputs are not hardwired in test bench. Undefined values will be read from PIO inputs during simulation." { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609247857 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Nios_system.push_switches: PIO inputs are not hardwired in test bench. Undefined values will be read from PIO inputs during simulation. " "Nios_system.push_switches: PIO inputs are not hardwired in test bench. Undefined values will be read from PIO inputs during simulation." { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609247857 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Nios_system: Generating nios_system \"nios_system\" for QUARTUS_SYNTH " "Nios_system: Generating nios_system \"nios_system\" for QUARTUS_SYNTH" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609248752 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Pipeline_bridge_swap_transform: After transform: 19 modules, 75 connections " "Pipeline_bridge_swap_transform: After transform: 19 modules, 75 connections" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609248978 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "No custom instruction connections, skipping transform " "No custom instruction connections, skipping transform " { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609248985 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Merlin_translator_transform: After transform: 39 modules, 155 connections " "Merlin_translator_transform: After transform: 39 modules, 155 connections" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609249536 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Merlin_domain_transform: After transform: 78 modules, 423 connections " "Merlin_domain_transform: After transform: 78 modules, 423 connections" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609250547 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Merlin_router_transform: After transform: 98 modules, 503 connections " "Merlin_router_transform: After transform: 98 modules, 503 connections" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609250874 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Reset_adaptation_transform: After transform: 99 modules, 390 connections " "Reset_adaptation_transform: After transform: 99 modules, 390 connections" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609250950 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Merlin_network_to_switch_transform: After transform: 138 modules, 470 connections " "Merlin_network_to_switch_transform: After transform: 138 modules, 470 connections" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609251203 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Merlin_mm_transform: After transform: 138 modules, 470 connections " "Merlin_mm_transform: After transform: 138 modules, 470 connections" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609251295 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Merlin_interrupt_mapper_transform: After transform: 139 modules, 473 connections " "Merlin_interrupt_mapper_transform: After transform: 139 modules, 473 connections" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609251335 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252303 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252303 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252304 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252304 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252304 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252304 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252304 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252305 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252305 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252305 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252305 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252305 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252305 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252306 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252306 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252306 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252306 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252307 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252307 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252307 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252307 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252308 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252308 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252308 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252308 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252309 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252309 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252309 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252309 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252309 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252309 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252310 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252310 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252310 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252310 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252310 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252310 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252311 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252311 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252311 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252311 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252311 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252311 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252312 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252312 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252312 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252312 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252312 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252313 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252313 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252313 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252313 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252313 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252313 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252314 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252314 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252314 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252314 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252314 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252314 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252314 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252315 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252315 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252315 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252315 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252315 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252315 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252316 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252316 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252316 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252316 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252316 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252316 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252316 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252317 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252317 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252317 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252317 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252317 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252317 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252317 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252318 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252318 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252318 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252318 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252318 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252318 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252318 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252319 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252319 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252319 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252319 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252319 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252319 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252319 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252321 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252322 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252322 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252322 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252322 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252322 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252323 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252323 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252323 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252323 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252324 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252324 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252324 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252324 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252325 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252325 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252325 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252325 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252326 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252326 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252326 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252326 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252326 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252327 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252327 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252327 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252327 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252327 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252328 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252328 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252328 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252328 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252329 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252329 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252329 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252329 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252329 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252330 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252330 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252330 ""} +{ "Warning" "WSGN_EXT_PROC_WARNING_MSG" "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\" " "Nios_system: \"No matching role found for rst_controller:reset_out:reset_req (reset_req)\"" { } { } 0 12251 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252330 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Nios2_processor: Starting RTL generation for module 'nios_system_nios2_processor' " "Nios2_processor: Starting RTL generation for module 'nios_system_nios2_processor'" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252709 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Nios2_processor: Generation command is \[exec C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2/eperl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2/cpu_lib -I C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2/nios_lib -I C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2 -I C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2 -- C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2/generate_rtl.epl --name=nios_system_nios2_processor --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_448397646303925983.dir/0001_nios2_processor_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_448397646303925983.dir/0001_nios2_processor_gen//nios_system_nios2_processor_processor_configuration.pl --do_build_sim=0 --bogus \] " "Nios2_processor: Generation command is \[exec C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2/eperl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2/cpu_lib -I C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2/nios_lib -I C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2 -I C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2 -- C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2/generate_rtl.epl --name=nios_system_nios2_processor --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_448397646303925983.dir/0001_nios2_processor_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_448397646303925983.dir/0001_nios2_processor_gen//nios_system_nios2_processor_processor_configuration.pl --do_build_sim=0 --bogus \]" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609252709 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Nios2_processor: # 2016.12.02 01:20:53 (*) Starting Nios II generation " "Nios2_processor: # 2016.12.02 01:20:53 (*) Starting Nios II generation" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609256733 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Nios2_processor: # 2016.12.02 01:20:53 (*) Checking for plaintext license. " "Nios2_processor: # 2016.12.02 01:20:53 (*) Checking for plaintext license." { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609256733 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Nios2_processor: # 2016.12.02 01:20:53 (*) Couldn't query license setup in Quartus directory C:/altera/13.0sp1/quartus " "Nios2_processor: # 2016.12.02 01:20:53 (*) Couldn't query license setup in Quartus directory C:/altera/13.0sp1/quartus" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609256733 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Nios2_processor: # 2016.12.02 01:20:53 (*) Defaulting to contents of LM_LICENSE_FILE environment variable " "Nios2_processor: # 2016.12.02 01:20:53 (*) Defaulting to contents of LM_LICENSE_FILE environment variable" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609256733 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Nios2_processor: # 2016.12.02 01:20:53 (*) LM_LICENSE_FILE environment variable is empty " "Nios2_processor: # 2016.12.02 01:20:53 (*) LM_LICENSE_FILE environment variable is empty" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609256733 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Nios2_processor: # 2016.12.02 01:20:53 (*) Plaintext license not found. " "Nios2_processor: # 2016.12.02 01:20:53 (*) Plaintext license not found." { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609256734 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Nios2_processor: # 2016.12.02 01:20:53 (*) No license required to generate encrypted Nios II/e. " "Nios2_processor: # 2016.12.02 01:20:53 (*) No license required to generate encrypted Nios II/e." { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609256734 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Nios2_processor: # 2016.12.02 01:20:53 (*) Elaborating CPU configuration settings " "Nios2_processor: # 2016.12.02 01:20:53 (*) Elaborating CPU configuration settings" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609256734 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Nios2_processor: # 2016.12.02 01:20:53 (*) Creating all objects for CPU " "Nios2_processor: # 2016.12.02 01:20:53 (*) Creating all objects for CPU" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609256734 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Nios2_processor: # 2016.12.02 01:20:54 (*) Generating RTL from CPU objects " "Nios2_processor: # 2016.12.02 01:20:54 (*) Generating RTL from CPU objects" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609256734 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Nios2_processor: # 2016.12.02 01:20:54 (*) Creating plain-text RTL " "Nios2_processor: # 2016.12.02 01:20:54 (*) Creating plain-text RTL" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609256734 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Nios2_processor: # 2016.12.02 01:20:56 (*) Done Nios II generation " "Nios2_processor: # 2016.12.02 01:20:56 (*) Done Nios II generation" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609256734 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Nios2_processor: Done RTL generation for module 'nios_system_nios2_processor' " "Nios2_processor: Done RTL generation for module 'nios_system_nios2_processor'" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609256735 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Nios2_processor: \"nios_system\" instantiated altera_nios2_qsys \"nios2_processor\" " "Nios2_processor: \"nios_system\" instantiated altera_nios2_qsys \"nios2_processor\"" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609256747 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Onchip_memory: Starting RTL generation for module 'nios_system_onchip_memory' " "Onchip_memory: Starting RTL generation for module 'nios_system_onchip_memory'" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609256787 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Onchip_memory: Generation command is \[exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_onchip_memory2 -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_onchip_memory2/generate_rtl.pl --name=nios_system_onchip_memory --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_448397646303925983.dir/0002_onchip_memory_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_448397646303925983.dir/0002_onchip_memory_gen//nios_system_onchip_memory_component_configuration.pl --do_build_sim=0 \] " "Onchip_memory: Generation command is \[exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_onchip_memory2 -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_onchip_memory2/generate_rtl.pl --name=nios_system_onchip_memory --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_448397646303925983.dir/0002_onchip_memory_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_448397646303925983.dir/0002_onchip_memory_gen//nios_system_onchip_memory_component_configuration.pl --do_build_sim=0 \]" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609256787 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Onchip_memory: Done RTL generation for module 'nios_system_onchip_memory' " "Onchip_memory: Done RTL generation for module 'nios_system_onchip_memory'" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609257861 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Onchip_memory: \"nios_system\" instantiated altera_avalon_onchip_memory2 \"onchip_memory\" " "Onchip_memory: \"nios_system\" instantiated altera_avalon_onchip_memory2 \"onchip_memory\"" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609257874 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Jtag_uart: Starting RTL generation for module 'nios_system_jtag_uart' " "Jtag_uart: Starting RTL generation for module 'nios_system_jtag_uart'" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609257894 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Jtag_uart: Generation command is \[exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_jtag_uart -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_jtag_uart/generate_rtl.pl --name=nios_system_jtag_uart --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_448397646303925983.dir/0003_jtag_uart_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_448397646303925983.dir/0003_jtag_uart_gen//nios_system_jtag_uart_component_configuration.pl --do_build_sim=0 \] " "Jtag_uart: Generation command is \[exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_jtag_uart -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_jtag_uart/generate_rtl.pl --name=nios_system_jtag_uart --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_448397646303925983.dir/0003_jtag_uart_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_448397646303925983.dir/0003_jtag_uart_gen//nios_system_jtag_uart_component_configuration.pl --do_build_sim=0 \]" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609257894 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Jtag_uart: Done RTL generation for module 'nios_system_jtag_uart' " "Jtag_uart: Done RTL generation for module 'nios_system_jtag_uart'" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609258183 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Jtag_uart: \"nios_system\" instantiated altera_avalon_jtag_uart \"jtag_uart\" " "Jtag_uart: \"nios_system\" instantiated altera_avalon_jtag_uart \"jtag_uart\"" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609258187 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "LEDs: Starting RTL generation for module 'nios_system_LEDs' " "LEDs: Starting RTL generation for module 'nios_system_LEDs'" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609258209 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "LEDs: Generation command is \[exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_LEDs --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_448397646303925983.dir/0004_LEDs_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_448397646303925983.dir/0004_LEDs_gen//nios_system_LEDs_component_configuration.pl --do_build_sim=0 \] " "LEDs: Generation command is \[exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_LEDs --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_448397646303925983.dir/0004_LEDs_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_448397646303925983.dir/0004_LEDs_gen//nios_system_LEDs_component_configuration.pl --do_build_sim=0 \]" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609258209 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "LEDs: Done RTL generation for module 'nios_system_LEDs' " "LEDs: Done RTL generation for module 'nios_system_LEDs'" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609258399 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "LEDs: \"nios_system\" instantiated altera_avalon_pio \"LEDs\" " "LEDs: \"nios_system\" instantiated altera_avalon_pio \"LEDs\"" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609258401 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "LEDRs: Starting RTL generation for module 'nios_system_LEDRs' " "LEDRs: Starting RTL generation for module 'nios_system_LEDRs'" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609258414 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "LEDRs: Generation command is \[exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_LEDRs --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_448397646303925983.dir/0005_LEDRs_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_448397646303925983.dir/0005_LEDRs_gen//nios_system_LEDRs_component_configuration.pl --do_build_sim=0 \] " "LEDRs: Generation command is \[exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_LEDRs --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_448397646303925983.dir/0005_LEDRs_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_448397646303925983.dir/0005_LEDRs_gen//nios_system_LEDRs_component_configuration.pl --do_build_sim=0 \]" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609258415 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "LEDRs: Done RTL generation for module 'nios_system_LEDRs' " "LEDRs: Done RTL generation for module 'nios_system_LEDRs'" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609258596 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "LEDRs: \"nios_system\" instantiated altera_avalon_pio \"LEDRs\" " "LEDRs: \"nios_system\" instantiated altera_avalon_pio \"LEDRs\"" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609258598 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Switches: Starting RTL generation for module 'nios_system_switches' " "Switches: Starting RTL generation for module 'nios_system_switches'" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609258613 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Switches: Generation command is \[exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_switches --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_448397646303925983.dir/0006_switches_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_448397646303925983.dir/0006_switches_gen//nios_system_switches_component_configuration.pl --do_build_sim=0 \] " "Switches: Generation command is \[exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_switches --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_448397646303925983.dir/0006_switches_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_448397646303925983.dir/0006_switches_gen//nios_system_switches_component_configuration.pl --do_build_sim=0 \]" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609258613 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Switches: Done RTL generation for module 'nios_system_switches' " "Switches: Done RTL generation for module 'nios_system_switches'" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609258799 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Switches: \"nios_system\" instantiated altera_avalon_pio \"switches\" " "Switches: \"nios_system\" instantiated altera_avalon_pio \"switches\"" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609258801 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Push_switches: Starting RTL generation for module 'nios_system_push_switches' " "Push_switches: Starting RTL generation for module 'nios_system_push_switches'" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609258817 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Push_switches: Generation command is \[exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_push_switches --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_448397646303925983.dir/0007_push_switches_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_448397646303925983.dir/0007_push_switches_gen//nios_system_push_switches_component_configuration.pl --do_build_sim=0 \] " "Push_switches: Generation command is \[exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_push_switches --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_448397646303925983.dir/0007_push_switches_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_448397646303925983.dir/0007_push_switches_gen//nios_system_push_switches_component_configuration.pl --do_build_sim=0 \]" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609258817 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Push_switches: Done RTL generation for module 'nios_system_push_switches' " "Push_switches: Done RTL generation for module 'nios_system_push_switches'" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609259002 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Push_switches: \"nios_system\" instantiated altera_avalon_pio \"push_switches\" " "Push_switches: \"nios_system\" instantiated altera_avalon_pio \"push_switches\"" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609259005 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Hex0: Starting RTL generation for module 'nios_system_hex0' " "Hex0: Starting RTL generation for module 'nios_system_hex0'" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609259021 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Hex0: Generation command is \[exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_hex0 --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_448397646303925983.dir/0008_hex0_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_448397646303925983.dir/0008_hex0_gen//nios_system_hex0_component_configuration.pl --do_build_sim=0 \] " "Hex0: Generation command is \[exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_hex0 --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_448397646303925983.dir/0008_hex0_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_448397646303925983.dir/0008_hex0_gen//nios_system_hex0_component_configuration.pl --do_build_sim=0 \]" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609259021 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Hex0: Done RTL generation for module 'nios_system_hex0' " "Hex0: Done RTL generation for module 'nios_system_hex0'" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609259206 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Hex0: \"nios_system\" instantiated altera_avalon_pio \"hex0\" " "Hex0: \"nios_system\" instantiated altera_avalon_pio \"hex0\"" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609259208 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Lcd_16207_0: Starting RTL generation for module 'nios_system_lcd_16207_0' " "Lcd_16207_0: Starting RTL generation for module 'nios_system_lcd_16207_0'" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609259222 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Lcd_16207_0: Generation command is \[exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_lcd_16207 -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_lcd_16207/generate_rtl.pl --name=nios_system_lcd_16207_0 --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_448397646303925983.dir/0009_lcd_16207_0_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_448397646303925983.dir/0009_lcd_16207_0_gen//nios_system_lcd_16207_0_component_configuration.pl --do_build_sim=0 \] " "Lcd_16207_0: Generation command is \[exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_lcd_16207 -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_lcd_16207/generate_rtl.pl --name=nios_system_lcd_16207_0 --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_448397646303925983.dir/0009_lcd_16207_0_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_448397646303925983.dir/0009_lcd_16207_0_gen//nios_system_lcd_16207_0_component_configuration.pl --do_build_sim=0 \]" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609259222 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Lcd_16207_0: Done RTL generation for module 'nios_system_lcd_16207_0' " "Lcd_16207_0: Done RTL generation for module 'nios_system_lcd_16207_0'" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609259404 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Lcd_16207_0: \"nios_system\" instantiated altera_avalon_lcd_16207 \"lcd_16207_0\" " "Lcd_16207_0: \"nios_system\" instantiated altera_avalon_lcd_16207 \"lcd_16207_0\"" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609259407 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Lcd_on: Starting RTL generation for module 'nios_system_lcd_on' " "Lcd_on: Starting RTL generation for module 'nios_system_lcd_on'" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609259419 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Lcd_on: Generation command is \[exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_lcd_on --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_448397646303925983.dir/0010_lcd_on_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_448397646303925983.dir/0010_lcd_on_gen//nios_system_lcd_on_component_configuration.pl --do_build_sim=0 \] " "Lcd_on: Generation command is \[exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_lcd_on --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_448397646303925983.dir/0010_lcd_on_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_448397646303925983.dir/0010_lcd_on_gen//nios_system_lcd_on_component_configuration.pl --do_build_sim=0 \]" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609259420 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Lcd_on: Done RTL generation for module 'nios_system_lcd_on' " "Lcd_on: Done RTL generation for module 'nios_system_lcd_on'" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609259615 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Lcd_on: \"nios_system\" instantiated altera_avalon_pio \"lcd_on\" " "Lcd_on: \"nios_system\" instantiated altera_avalon_pio \"lcd_on\"" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609259618 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Nios2_processor_instruction_master_translator: \"nios_system\" instantiated altera_merlin_master_translator \"nios2_processor_instruction_master_translator\" " "Nios2_processor_instruction_master_translator: \"nios_system\" instantiated altera_merlin_master_translator \"nios2_processor_instruction_master_translator\"" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609259620 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Nios2_processor_jtag_debug_module_translator: \"nios_system\" instantiated altera_merlin_slave_translator \"nios2_processor_jtag_debug_module_translator\" " "Nios2_processor_jtag_debug_module_translator: \"nios_system\" instantiated altera_merlin_slave_translator \"nios2_processor_jtag_debug_module_translator\"" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609259629 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Nios2_processor_instruction_master_translator_avalon_universal_master_0_agent: \"nios_system\" instantiated altera_merlin_master_agent \"nios2_processor_instruction_master_translator_avalon_universal_master_0_agent\" " "Nios2_processor_instruction_master_translator_avalon_universal_master_0_agent: \"nios_system\" instantiated altera_merlin_master_agent \"nios2_processor_instruction_master_translator_avalon_universal_master_0_agent\"" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609259637 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent: \"nios_system\" instantiated altera_merlin_slave_agent \"nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent\" " "Nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent: \"nios_system\" instantiated altera_merlin_slave_agent \"nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent\"" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609259645 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo: \"nios_system\" instantiated altera_avalon_sc_fifo \"nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo\" " "Nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo: \"nios_system\" instantiated altera_avalon_sc_fifo \"nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo\"" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609259659 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Addr_router: \"nios_system\" instantiated altera_merlin_router \"addr_router\" " "Addr_router: \"nios_system\" instantiated altera_merlin_router \"addr_router\"" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609259678 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Addr_router_001: \"nios_system\" instantiated altera_merlin_router \"addr_router_001\" " "Addr_router_001: \"nios_system\" instantiated altera_merlin_router \"addr_router_001\"" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609259697 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Id_router: \"nios_system\" instantiated altera_merlin_router \"id_router\" " "Id_router: \"nios_system\" instantiated altera_merlin_router \"id_router\"" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609259714 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Id_router_002: \"nios_system\" instantiated altera_merlin_router \"id_router_002\" " "Id_router_002: \"nios_system\" instantiated altera_merlin_router \"id_router_002\"" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609259726 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Rst_controller: \"nios_system\" instantiated altera_reset_controller \"rst_controller\" " "Rst_controller: \"nios_system\" instantiated altera_reset_controller \"rst_controller\"" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609259729 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Cmd_xbar_demux: \"nios_system\" instantiated altera_merlin_demultiplexer \"cmd_xbar_demux\" " "Cmd_xbar_demux: \"nios_system\" instantiated altera_merlin_demultiplexer \"cmd_xbar_demux\"" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609259754 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Cmd_xbar_demux_001: \"nios_system\" instantiated altera_merlin_demultiplexer \"cmd_xbar_demux_001\" " "Cmd_xbar_demux_001: \"nios_system\" instantiated altera_merlin_demultiplexer \"cmd_xbar_demux_001\"" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609259787 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Cmd_xbar_mux: \"nios_system\" instantiated altera_merlin_multiplexer \"cmd_xbar_mux\" " "Cmd_xbar_mux: \"nios_system\" instantiated altera_merlin_multiplexer \"cmd_xbar_mux\"" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609259831 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Rsp_xbar_demux_002: \"nios_system\" instantiated altera_merlin_demultiplexer \"rsp_xbar_demux_002\" " "Rsp_xbar_demux_002: \"nios_system\" instantiated altera_merlin_demultiplexer \"rsp_xbar_demux_002\"" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609259857 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Rsp_xbar_mux: \"nios_system\" instantiated altera_merlin_multiplexer \"rsp_xbar_mux\" " "Rsp_xbar_mux: \"nios_system\" instantiated altera_merlin_multiplexer \"rsp_xbar_mux\"" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609259890 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Reusing file C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/altera_merlin_arbitrator.sv " "Reusing file C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/altera_merlin_arbitrator.sv" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609259891 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Rsp_xbar_mux_001: \"nios_system\" instantiated altera_merlin_multiplexer \"rsp_xbar_mux_001\" " "Rsp_xbar_mux_001: \"nios_system\" instantiated altera_merlin_multiplexer \"rsp_xbar_mux_001\"" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609259951 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Reusing file C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/altera_merlin_arbitrator.sv " "Reusing file C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/altera_merlin_arbitrator.sv" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609259952 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Irq_mapper: \"nios_system\" instantiated altera_irq_mapper \"irq_mapper\" " "Irq_mapper: \"nios_system\" instantiated altera_irq_mapper \"irq_mapper\"" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609259971 ""} +{ "Info" "ISGN_EXT_PROC_INFO_MSG" "Nios_system: Done nios_system\" with 28 modules, 155 files, 4086283 bytes " "Nios_system: Done nios_system\" with 28 modules, 155 files, 4086283 bytes" { } { } 0 12250 "%1!s!" 0 0 "Quartus II" 0 -1 1480609259972 ""} +{ "Info" "ISGN_END_ELABORATION_QSYS" "nios_system.qsys " "Finished elaborating Qsys system entity \"nios_system.qsys\"" { } { } 0 12249 "Finished elaborating Qsys system entity \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609260929 ""} +{ "Info" "ISGN_NUM_OF_DESIGN_UNITS_AND_ENTITIES" "lights.vhd 2 1 " "Found 2 design units, including 1 entities, in source file lights.vhd" { { "Info" "ISGN_DESIGN_UNIT_NAME" "1 lights-lights_rtl " "Found design unit 1: lights-lights_rtl" { } { { "lights.vhd" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/lights.vhd" 27 -1 0 } } } 0 12022 "Found design unit %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609261363 ""} { "Info" "ISGN_ENTITY_NAME" "1 lights " "Found entity 1: lights" { } { { "lights.vhd" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/lights.vhd" 4 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609261363 ""} } { } 0 12021 "Found %2!llu! design units, including %3!llu! entities, in source file %1!s!" 0 0 "Quartus II" 0 -1 1480609261363 ""} +{ "Info" "ISGN_NUM_OF_DESIGN_UNITS_AND_ENTITIES" "nios_system/synthesis/nios_system.v 1 1 " "Found 1 design units, including 1 entities, in source file nios_system/synthesis/nios_system.v" { { "Info" "ISGN_ENTITY_NAME" "1 nios_system " "Found entity 1: nios_system" { } { { "nios_system/synthesis/nios_system.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/synthesis/nios_system.v" 6 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609261383 ""} } { } 0 12021 "Found %2!llu! design units, including %3!llu! entities, in source file %1!s!" 0 0 "Quartus II" 0 -1 1480609261383 ""} +{ "Info" "ISGN_NUM_OF_DESIGN_UNITS_AND_ENTITIES" "db/ip/nios_system/nios_system.v 1 1 " "Found 1 design units, including 1 entities, in source file db/ip/nios_system/nios_system.v" { { "Info" "ISGN_ENTITY_NAME" "1 nios_system " "Found entity 1: nios_system" { } { { "db/ip/nios_system/nios_system.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/nios_system.v" 6 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609261402 ""} } { } 0 12021 "Found %2!llu! design units, including %3!llu! entities, in source file %1!s!" 0 0 "Quartus II" 0 -1 1480609261402 ""} +{ "Info" "ISGN_NUM_OF_DESIGN_UNITS_AND_ENTITIES" "db/ip/nios_system/submodules/altera_avalon_sc_fifo.v 1 1 " "Found 1 design units, including 1 entities, in source file db/ip/nios_system/submodules/altera_avalon_sc_fifo.v" { { "Info" "ISGN_ENTITY_NAME" "1 altera_avalon_sc_fifo " "Found entity 1: altera_avalon_sc_fifo" { } { { "db/ip/nios_system/submodules/altera_avalon_sc_fifo.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/altera_avalon_sc_fifo.v" 21 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609261406 ""} } { } 0 12021 "Found %2!llu! design units, including %3!llu! entities, in source file %1!s!" 0 0 "Quartus II" 0 -1 1480609261406 ""} +{ "Info" "ISGN_NUM_OF_DESIGN_UNITS_AND_ENTITIES" "db/ip/nios_system/submodules/altera_merlin_arbitrator.sv 2 2 " "Found 2 design units, including 2 entities, in source file db/ip/nios_system/submodules/altera_merlin_arbitrator.sv" { { "Info" "ISGN_ENTITY_NAME" "1 altera_merlin_arbitrator " "Found entity 1: altera_merlin_arbitrator" { } { { "db/ip/nios_system/submodules/altera_merlin_arbitrator.sv" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/altera_merlin_arbitrator.sv" 103 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609261410 ""} { "Info" "ISGN_ENTITY_NAME" "2 altera_merlin_arb_adder " "Found entity 2: altera_merlin_arb_adder" { } { { "db/ip/nios_system/submodules/altera_merlin_arbitrator.sv" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/altera_merlin_arbitrator.sv" 228 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609261410 ""} } { } 0 12021 "Found %2!llu! design units, including %3!llu! entities, in source file %1!s!" 0 0 "Quartus II" 0 -1 1480609261410 ""} +{ "Info" "ISGN_NUM_OF_DESIGN_UNITS_AND_ENTITIES" "db/ip/nios_system/submodules/altera_merlin_burst_uncompressor.sv 1 1 " "Found 1 design units, including 1 entities, in source file db/ip/nios_system/submodules/altera_merlin_burst_uncompressor.sv" { { "Info" "ISGN_ENTITY_NAME" "1 altera_merlin_burst_uncompressor " "Found entity 1: altera_merlin_burst_uncompressor" { } { { "db/ip/nios_system/submodules/altera_merlin_burst_uncompressor.sv" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/altera_merlin_burst_uncompressor.sv" 40 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609261414 ""} } { } 0 12021 "Found %2!llu! design units, including %3!llu! entities, in source file %1!s!" 0 0 "Quartus II" 0 -1 1480609261414 ""} +{ "Info" "ISGN_NUM_OF_DESIGN_UNITS_AND_ENTITIES" "db/ip/nios_system/submodules/altera_merlin_master_agent.sv 1 1 " "Found 1 design units, including 1 entities, in source file db/ip/nios_system/submodules/altera_merlin_master_agent.sv" { { "Info" "ISGN_ENTITY_NAME" "1 altera_merlin_master_agent " "Found entity 1: altera_merlin_master_agent" { } { { "db/ip/nios_system/submodules/altera_merlin_master_agent.sv" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/altera_merlin_master_agent.sv" 28 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609261418 ""} } { } 0 12021 "Found %2!llu! design units, including %3!llu! entities, in source file %1!s!" 0 0 "Quartus II" 0 -1 1480609261418 ""} +{ "Info" "ISGN_NUM_OF_DESIGN_UNITS_AND_ENTITIES" "db/ip/nios_system/submodules/altera_merlin_master_translator.sv 1 1 " "Found 1 design units, including 1 entities, in source file db/ip/nios_system/submodules/altera_merlin_master_translator.sv" { { "Info" "ISGN_ENTITY_NAME" "1 altera_merlin_master_translator " "Found entity 1: altera_merlin_master_translator" { } { { "db/ip/nios_system/submodules/altera_merlin_master_translator.sv" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/altera_merlin_master_translator.sv" 30 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609261422 ""} } { } 0 12021 "Found %2!llu! design units, including %3!llu! entities, in source file %1!s!" 0 0 "Quartus II" 0 -1 1480609261422 ""} +{ "Info" "ISGN_NUM_OF_DESIGN_UNITS_AND_ENTITIES" "db/ip/nios_system/submodules/altera_merlin_slave_agent.sv 1 1 " "Found 1 design units, including 1 entities, in source file db/ip/nios_system/submodules/altera_merlin_slave_agent.sv" { { "Info" "ISGN_ENTITY_NAME" "1 altera_merlin_slave_agent " "Found entity 1: altera_merlin_slave_agent" { } { { "db/ip/nios_system/submodules/altera_merlin_slave_agent.sv" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/altera_merlin_slave_agent.sv" 34 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609261426 ""} } { } 0 12021 "Found %2!llu! design units, including %3!llu! entities, in source file %1!s!" 0 0 "Quartus II" 0 -1 1480609261426 ""} +{ "Info" "ISGN_NUM_OF_DESIGN_UNITS_AND_ENTITIES" "db/ip/nios_system/submodules/altera_merlin_slave_translator.sv 1 1 " "Found 1 design units, including 1 entities, in source file db/ip/nios_system/submodules/altera_merlin_slave_translator.sv" { { "Info" "ISGN_ENTITY_NAME" "1 altera_merlin_slave_translator " "Found entity 1: altera_merlin_slave_translator" { } { { "db/ip/nios_system/submodules/altera_merlin_slave_translator.sv" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/altera_merlin_slave_translator.sv" 35 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609261431 ""} } { } 0 12021 "Found %2!llu! design units, including %3!llu! entities, in source file %1!s!" 0 0 "Quartus II" 0 -1 1480609261431 ""} +{ "Info" "ISGN_NUM_OF_DESIGN_UNITS_AND_ENTITIES" "db/ip/nios_system/submodules/altera_reset_controller.v 1 1 " "Found 1 design units, including 1 entities, in source file db/ip/nios_system/submodules/altera_reset_controller.v" { { "Info" "ISGN_ENTITY_NAME" "1 altera_reset_controller " "Found entity 1: altera_reset_controller" { } { { "db/ip/nios_system/submodules/altera_reset_controller.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/altera_reset_controller.v" 29 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609261435 ""} } { } 0 12021 "Found %2!llu! design units, including %3!llu! entities, in source file %1!s!" 0 0 "Quartus II" 0 -1 1480609261435 ""} +{ "Info" "ISGN_NUM_OF_DESIGN_UNITS_AND_ENTITIES" "db/ip/nios_system/submodules/altera_reset_synchronizer.v 1 1 " "Found 1 design units, including 1 entities, in source file db/ip/nios_system/submodules/altera_reset_synchronizer.v" { { "Info" "ISGN_ENTITY_NAME" "1 altera_reset_synchronizer " "Found entity 1: altera_reset_synchronizer" { } { { "db/ip/nios_system/submodules/altera_reset_synchronizer.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/altera_reset_synchronizer.v" 24 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609261438 ""} } { } 0 12021 "Found %2!llu! design units, including %3!llu! entities, in source file %1!s!" 0 0 "Quartus II" 0 -1 1480609261438 ""} +{ "Info" "ISGN_NUM_OF_DESIGN_UNITS_AND_ENTITIES" "db/ip/nios_system/submodules/nios_system_ledrs.v 1 1 " "Found 1 design units, including 1 entities, in source file db/ip/nios_system/submodules/nios_system_ledrs.v" { { "Info" "ISGN_ENTITY_NAME" "1 nios_system_LEDRs " "Found entity 1: nios_system_LEDRs" { } { { "db/ip/nios_system/submodules/nios_system_LEDRs.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_LEDRs.v" 21 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609261441 ""} } { } 0 12021 "Found %2!llu! design units, including %3!llu! entities, in source file %1!s!" 0 0 "Quartus II" 0 -1 1480609261441 ""} +{ "Info" "ISGN_NUM_OF_DESIGN_UNITS_AND_ENTITIES" "db/ip/nios_system/submodules/nios_system_leds.v 1 1 " "Found 1 design units, including 1 entities, in source file db/ip/nios_system/submodules/nios_system_leds.v" { { "Info" "ISGN_ENTITY_NAME" "1 nios_system_LEDs " "Found entity 1: nios_system_LEDs" { } { { "db/ip/nios_system/submodules/nios_system_LEDs.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_LEDs.v" 21 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609261444 ""} } { } 0 12021 "Found %2!llu! design units, including %3!llu! entities, in source file %1!s!" 0 0 "Quartus II" 0 -1 1480609261444 ""} +{ "Info" "IVRFX_L3_VERI_OBJ_DIFF_ONLY_IN_CASE" "DEFAULT_WR_CHANNEL default_wr_channel nios_system_addr_router.sv(48) " "Verilog HDL Declaration information at nios_system_addr_router.sv(48): object \"DEFAULT_WR_CHANNEL\" differs only in case from object \"default_wr_channel\" in the same scope" { } { { "db/ip/nios_system/submodules/nios_system_addr_router.sv" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_addr_router.sv" 48 0 0 } } } 0 10281 "Verilog HDL Declaration information at %3!s!: object \"%1!s!\" differs only in case from object \"%2!s!\" in the same scope" 1 0 "Quartus II" 0 -1 1480609261447 ""} +{ "Info" "IVRFX_L3_VERI_OBJ_DIFF_ONLY_IN_CASE" "DEFAULT_RD_CHANNEL default_rd_channel nios_system_addr_router.sv(49) " "Verilog HDL Declaration information at nios_system_addr_router.sv(49): object \"DEFAULT_RD_CHANNEL\" differs only in case from object \"default_rd_channel\" in the same scope" { } { { "db/ip/nios_system/submodules/nios_system_addr_router.sv" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_addr_router.sv" 49 0 0 } } } 0 10281 "Verilog HDL Declaration information at %3!s!: object \"%1!s!\" differs only in case from object \"%2!s!\" in the same scope" 1 0 "Quartus II" 0 -1 1480609261447 ""} +{ "Info" "ISGN_NUM_OF_DESIGN_UNITS_AND_ENTITIES" "db/ip/nios_system/submodules/nios_system_addr_router.sv 2 2 " "Found 2 design units, including 2 entities, in source file db/ip/nios_system/submodules/nios_system_addr_router.sv" { { "Info" "ISGN_ENTITY_NAME" "1 nios_system_addr_router_default_decode " "Found entity 1: nios_system_addr_router_default_decode" { } { { "db/ip/nios_system/submodules/nios_system_addr_router.sv" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_addr_router.sv" 45 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609261448 ""} { "Info" "ISGN_ENTITY_NAME" "2 nios_system_addr_router " "Found entity 2: nios_system_addr_router" { } { { "db/ip/nios_system/submodules/nios_system_addr_router.sv" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_addr_router.sv" 86 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609261448 ""} } { } 0 12021 "Found %2!llu! design units, including %3!llu! entities, in source file %1!s!" 0 0 "Quartus II" 0 -1 1480609261448 ""} +{ "Info" "IVRFX_L3_VERI_OBJ_DIFF_ONLY_IN_CASE" "DEFAULT_WR_CHANNEL default_wr_channel nios_system_addr_router_001.sv(48) " "Verilog HDL Declaration information at nios_system_addr_router_001.sv(48): object \"DEFAULT_WR_CHANNEL\" differs only in case from object \"default_wr_channel\" in the same scope" { } { { "db/ip/nios_system/submodules/nios_system_addr_router_001.sv" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_addr_router_001.sv" 48 0 0 } } } 0 10281 "Verilog HDL Declaration information at %3!s!: object \"%1!s!\" differs only in case from object \"%2!s!\" in the same scope" 1 0 "Quartus II" 0 -1 1480609261451 ""} +{ "Info" "IVRFX_L3_VERI_OBJ_DIFF_ONLY_IN_CASE" "DEFAULT_RD_CHANNEL default_rd_channel nios_system_addr_router_001.sv(49) " "Verilog HDL Declaration information at nios_system_addr_router_001.sv(49): object \"DEFAULT_RD_CHANNEL\" differs only in case from object \"default_rd_channel\" in the same scope" { } { { "db/ip/nios_system/submodules/nios_system_addr_router_001.sv" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_addr_router_001.sv" 49 0 0 } } } 0 10281 "Verilog HDL Declaration information at %3!s!: object \"%1!s!\" differs only in case from object \"%2!s!\" in the same scope" 1 0 "Quartus II" 0 -1 1480609261451 ""} +{ "Info" "ISGN_NUM_OF_DESIGN_UNITS_AND_ENTITIES" "db/ip/nios_system/submodules/nios_system_addr_router_001.sv 2 2 " "Found 2 design units, including 2 entities, in source file db/ip/nios_system/submodules/nios_system_addr_router_001.sv" { { "Info" "ISGN_ENTITY_NAME" "1 nios_system_addr_router_001_default_decode " "Found entity 1: nios_system_addr_router_001_default_decode" { } { { "db/ip/nios_system/submodules/nios_system_addr_router_001.sv" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_addr_router_001.sv" 45 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609261452 ""} { "Info" "ISGN_ENTITY_NAME" "2 nios_system_addr_router_001 " "Found entity 2: nios_system_addr_router_001" { } { { "db/ip/nios_system/submodules/nios_system_addr_router_001.sv" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_addr_router_001.sv" 86 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609261452 ""} } { } 0 12021 "Found %2!llu! design units, including %3!llu! entities, in source file %1!s!" 0 0 "Quartus II" 0 -1 1480609261452 ""} +{ "Info" "ISGN_NUM_OF_DESIGN_UNITS_AND_ENTITIES" "db/ip/nios_system/submodules/nios_system_cmd_xbar_demux.sv 1 1 " "Found 1 design units, including 1 entities, in source file db/ip/nios_system/submodules/nios_system_cmd_xbar_demux.sv" { { "Info" "ISGN_ENTITY_NAME" "1 nios_system_cmd_xbar_demux " "Found entity 1: nios_system_cmd_xbar_demux" { } { { "db/ip/nios_system/submodules/nios_system_cmd_xbar_demux.sv" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_cmd_xbar_demux.sv" 43 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609261455 ""} } { } 0 12021 "Found %2!llu! design units, including %3!llu! entities, in source file %1!s!" 0 0 "Quartus II" 0 -1 1480609261455 ""} +{ "Info" "ISGN_NUM_OF_DESIGN_UNITS_AND_ENTITIES" "db/ip/nios_system/submodules/nios_system_cmd_xbar_demux_001.sv 1 1 " "Found 1 design units, including 1 entities, in source file db/ip/nios_system/submodules/nios_system_cmd_xbar_demux_001.sv" { { "Info" "ISGN_ENTITY_NAME" "1 nios_system_cmd_xbar_demux_001 " "Found entity 1: nios_system_cmd_xbar_demux_001" { } { { "db/ip/nios_system/submodules/nios_system_cmd_xbar_demux_001.sv" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_cmd_xbar_demux_001.sv" 43 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609261459 ""} } { } 0 12021 "Found %2!llu! design units, including %3!llu! entities, in source file %1!s!" 0 0 "Quartus II" 0 -1 1480609261459 ""} +{ "Info" "ISGN_NUM_OF_DESIGN_UNITS_AND_ENTITIES" "db/ip/nios_system/submodules/nios_system_cmd_xbar_mux.sv 1 1 " "Found 1 design units, including 1 entities, in source file db/ip/nios_system/submodules/nios_system_cmd_xbar_mux.sv" { { "Info" "ISGN_ENTITY_NAME" "1 nios_system_cmd_xbar_mux " "Found entity 1: nios_system_cmd_xbar_mux" { } { { "db/ip/nios_system/submodules/nios_system_cmd_xbar_mux.sv" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_cmd_xbar_mux.sv" 38 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609261463 ""} } { } 0 12021 "Found %2!llu! design units, including %3!llu! entities, in source file %1!s!" 0 0 "Quartus II" 0 -1 1480609261463 ""} +{ "Info" "ISGN_NUM_OF_DESIGN_UNITS_AND_ENTITIES" "db/ip/nios_system/submodules/nios_system_hex0.v 1 1 " "Found 1 design units, including 1 entities, in source file db/ip/nios_system/submodules/nios_system_hex0.v" { { "Info" "ISGN_ENTITY_NAME" "1 nios_system_hex0 " "Found entity 1: nios_system_hex0" { } { { "db/ip/nios_system/submodules/nios_system_hex0.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_hex0.v" 21 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609261467 ""} } { } 0 12021 "Found %2!llu! design units, including %3!llu! entities, in source file %1!s!" 0 0 "Quartus II" 0 -1 1480609261467 ""} +{ "Info" "IVRFX_L3_VERI_OBJ_DIFF_ONLY_IN_CASE" "DEFAULT_WR_CHANNEL default_wr_channel nios_system_id_router.sv(48) " "Verilog HDL Declaration information at nios_system_id_router.sv(48): object \"DEFAULT_WR_CHANNEL\" differs only in case from object \"default_wr_channel\" in the same scope" { } { { "db/ip/nios_system/submodules/nios_system_id_router.sv" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_id_router.sv" 48 0 0 } } } 0 10281 "Verilog HDL Declaration information at %3!s!: object \"%1!s!\" differs only in case from object \"%2!s!\" in the same scope" 1 0 "Quartus II" 0 -1 1480609261470 ""} +{ "Info" "IVRFX_L3_VERI_OBJ_DIFF_ONLY_IN_CASE" "DEFAULT_RD_CHANNEL default_rd_channel nios_system_id_router.sv(49) " "Verilog HDL Declaration information at nios_system_id_router.sv(49): object \"DEFAULT_RD_CHANNEL\" differs only in case from object \"default_rd_channel\" in the same scope" { } { { "db/ip/nios_system/submodules/nios_system_id_router.sv" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_id_router.sv" 49 0 0 } } } 0 10281 "Verilog HDL Declaration information at %3!s!: object \"%1!s!\" differs only in case from object \"%2!s!\" in the same scope" 1 0 "Quartus II" 0 -1 1480609261470 ""} +{ "Info" "ISGN_NUM_OF_DESIGN_UNITS_AND_ENTITIES" "db/ip/nios_system/submodules/nios_system_id_router.sv 2 2 " "Found 2 design units, including 2 entities, in source file db/ip/nios_system/submodules/nios_system_id_router.sv" { { "Info" "ISGN_ENTITY_NAME" "1 nios_system_id_router_default_decode " "Found entity 1: nios_system_id_router_default_decode" { } { { "db/ip/nios_system/submodules/nios_system_id_router.sv" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_id_router.sv" 45 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609261471 ""} { "Info" "ISGN_ENTITY_NAME" "2 nios_system_id_router " "Found entity 2: nios_system_id_router" { } { { "db/ip/nios_system/submodules/nios_system_id_router.sv" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_id_router.sv" 86 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609261471 ""} } { } 0 12021 "Found %2!llu! design units, including %3!llu! entities, in source file %1!s!" 0 0 "Quartus II" 0 -1 1480609261471 ""} +{ "Info" "IVRFX_L3_VERI_OBJ_DIFF_ONLY_IN_CASE" "DEFAULT_WR_CHANNEL default_wr_channel nios_system_id_router_002.sv(48) " "Verilog HDL Declaration information at nios_system_id_router_002.sv(48): object \"DEFAULT_WR_CHANNEL\" differs only in case from object \"default_wr_channel\" in the same scope" { } { { "db/ip/nios_system/submodules/nios_system_id_router_002.sv" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_id_router_002.sv" 48 0 0 } } } 0 10281 "Verilog HDL Declaration information at %3!s!: object \"%1!s!\" differs only in case from object \"%2!s!\" in the same scope" 1 0 "Quartus II" 0 -1 1480609261474 ""} +{ "Info" "IVRFX_L3_VERI_OBJ_DIFF_ONLY_IN_CASE" "DEFAULT_RD_CHANNEL default_rd_channel nios_system_id_router_002.sv(49) " "Verilog HDL Declaration information at nios_system_id_router_002.sv(49): object \"DEFAULT_RD_CHANNEL\" differs only in case from object \"default_rd_channel\" in the same scope" { } { { "db/ip/nios_system/submodules/nios_system_id_router_002.sv" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_id_router_002.sv" 49 0 0 } } } 0 10281 "Verilog HDL Declaration information at %3!s!: object \"%1!s!\" differs only in case from object \"%2!s!\" in the same scope" 1 0 "Quartus II" 0 -1 1480609261475 ""} +{ "Info" "ISGN_NUM_OF_DESIGN_UNITS_AND_ENTITIES" "db/ip/nios_system/submodules/nios_system_id_router_002.sv 2 2 " "Found 2 design units, including 2 entities, in source file db/ip/nios_system/submodules/nios_system_id_router_002.sv" { { "Info" "ISGN_ENTITY_NAME" "1 nios_system_id_router_002_default_decode " "Found entity 1: nios_system_id_router_002_default_decode" { } { { "db/ip/nios_system/submodules/nios_system_id_router_002.sv" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_id_router_002.sv" 45 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609261476 ""} { "Info" "ISGN_ENTITY_NAME" "2 nios_system_id_router_002 " "Found entity 2: nios_system_id_router_002" { } { { "db/ip/nios_system/submodules/nios_system_id_router_002.sv" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_id_router_002.sv" 86 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609261476 ""} } { } 0 12021 "Found %2!llu! design units, including %3!llu! entities, in source file %1!s!" 0 0 "Quartus II" 0 -1 1480609261476 ""} +{ "Info" "ISGN_NUM_OF_DESIGN_UNITS_AND_ENTITIES" "db/ip/nios_system/submodules/nios_system_irq_mapper.sv 1 1 " "Found 1 design units, including 1 entities, in source file db/ip/nios_system/submodules/nios_system_irq_mapper.sv" { { "Info" "ISGN_ENTITY_NAME" "1 nios_system_irq_mapper " "Found entity 1: nios_system_irq_mapper" { } { { "db/ip/nios_system/submodules/nios_system_irq_mapper.sv" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_irq_mapper.sv" 31 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609261479 ""} } { } 0 12021 "Found %2!llu! design units, including %3!llu! entities, in source file %1!s!" 0 0 "Quartus II" 0 -1 1480609261479 ""} +{ "Info" "ISGN_NUM_OF_DESIGN_UNITS_AND_ENTITIES" "db/ip/nios_system/submodules/nios_system_jtag_uart.v 5 5 " "Found 5 design units, including 5 entities, in source file db/ip/nios_system/submodules/nios_system_jtag_uart.v" { { "Info" "ISGN_ENTITY_NAME" "1 nios_system_jtag_uart_sim_scfifo_w " "Found entity 1: nios_system_jtag_uart_sim_scfifo_w" { } { { "db/ip/nios_system/submodules/nios_system_jtag_uart.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_jtag_uart.v" 21 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609261485 ""} { "Info" "ISGN_ENTITY_NAME" "2 nios_system_jtag_uart_scfifo_w " "Found entity 2: nios_system_jtag_uart_scfifo_w" { } { { "db/ip/nios_system/submodules/nios_system_jtag_uart.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_jtag_uart.v" 77 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609261485 ""} { "Info" "ISGN_ENTITY_NAME" "3 nios_system_jtag_uart_sim_scfifo_r " "Found entity 3: nios_system_jtag_uart_sim_scfifo_r" { } { { "db/ip/nios_system/submodules/nios_system_jtag_uart.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_jtag_uart.v" 162 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609261485 ""} { "Info" "ISGN_ENTITY_NAME" "4 nios_system_jtag_uart_scfifo_r " "Found entity 4: nios_system_jtag_uart_scfifo_r" { } { { "db/ip/nios_system/submodules/nios_system_jtag_uart.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_jtag_uart.v" 240 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609261485 ""} { "Info" "ISGN_ENTITY_NAME" "5 nios_system_jtag_uart " "Found entity 5: nios_system_jtag_uart" { } { { "db/ip/nios_system/submodules/nios_system_jtag_uart.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_jtag_uart.v" 327 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609261485 ""} } { } 0 12021 "Found %2!llu! design units, including %3!llu! entities, in source file %1!s!" 0 0 "Quartus II" 0 -1 1480609261485 ""} +{ "Info" "ISGN_NUM_OF_DESIGN_UNITS_AND_ENTITIES" "db/ip/nios_system/submodules/nios_system_lcd_16207_0.v 1 1 " "Found 1 design units, including 1 entities, in source file db/ip/nios_system/submodules/nios_system_lcd_16207_0.v" { { "Info" "ISGN_ENTITY_NAME" "1 nios_system_lcd_16207_0 " "Found entity 1: nios_system_lcd_16207_0" { } { { "db/ip/nios_system/submodules/nios_system_lcd_16207_0.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_lcd_16207_0.v" 21 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609261488 ""} } { } 0 12021 "Found %2!llu! design units, including %3!llu! entities, in source file %1!s!" 0 0 "Quartus II" 0 -1 1480609261488 ""} +{ "Info" "ISGN_NUM_OF_DESIGN_UNITS_AND_ENTITIES" "db/ip/nios_system/submodules/nios_system_lcd_on.v 1 1 " "Found 1 design units, including 1 entities, in source file db/ip/nios_system/submodules/nios_system_lcd_on.v" { { "Info" "ISGN_ENTITY_NAME" "1 nios_system_lcd_on " "Found entity 1: nios_system_lcd_on" { } { { "db/ip/nios_system/submodules/nios_system_lcd_on.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_lcd_on.v" 21 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609261492 ""} } { } 0 12021 "Found %2!llu! design units, including %3!llu! entities, in source file %1!s!" 0 0 "Quartus II" 0 -1 1480609261492 ""} +{ "Info" "ISGN_NUM_OF_DESIGN_UNITS_AND_ENTITIES" "db/ip/nios_system/submodules/nios_system_nios2_processor.v 21 21 " "Found 21 design units, including 21 entities, in source file db/ip/nios_system/submodules/nios_system_nios2_processor.v" { { "Info" "ISGN_ENTITY_NAME" "1 nios_system_nios2_processor_register_bank_a_module " "Found entity 1: nios_system_nios2_processor_register_bank_a_module" { } { { "db/ip/nios_system/submodules/nios_system_nios2_processor.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor.v" 21 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609261511 ""} { "Info" "ISGN_ENTITY_NAME" "2 nios_system_nios2_processor_register_bank_b_module " "Found entity 2: nios_system_nios2_processor_register_bank_b_module" { } { { "db/ip/nios_system/submodules/nios_system_nios2_processor.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor.v" 84 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609261511 ""} { "Info" "ISGN_ENTITY_NAME" "3 nios_system_nios2_processor_nios2_oci_debug " "Found entity 3: nios_system_nios2_processor_nios2_oci_debug" { } { { "db/ip/nios_system/submodules/nios_system_nios2_processor.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor.v" 147 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609261511 ""} { "Info" "ISGN_ENTITY_NAME" "4 nios_system_nios2_processor_ociram_sp_ram_module " "Found entity 4: nios_system_nios2_processor_ociram_sp_ram_module" { } { { "db/ip/nios_system/submodules/nios_system_nios2_processor.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor.v" 288 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609261511 ""} { "Info" "ISGN_ENTITY_NAME" "5 nios_system_nios2_processor_nios2_ocimem " "Found entity 5: nios_system_nios2_processor_nios2_ocimem" { } { { "db/ip/nios_system/submodules/nios_system_nios2_processor.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor.v" 346 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609261511 ""} { "Info" "ISGN_ENTITY_NAME" "6 nios_system_nios2_processor_nios2_avalon_reg " "Found entity 6: nios_system_nios2_processor_nios2_avalon_reg" { } { { "db/ip/nios_system/submodules/nios_system_nios2_processor.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor.v" 524 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609261511 ""} { "Info" "ISGN_ENTITY_NAME" "7 nios_system_nios2_processor_nios2_oci_break " "Found entity 7: nios_system_nios2_processor_nios2_oci_break" { } { { "db/ip/nios_system/submodules/nios_system_nios2_processor.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor.v" 616 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609261511 ""} { "Info" "ISGN_ENTITY_NAME" "8 nios_system_nios2_processor_nios2_oci_xbrk " "Found entity 8: nios_system_nios2_processor_nios2_oci_xbrk" { } { { "db/ip/nios_system/submodules/nios_system_nios2_processor.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor.v" 910 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609261511 ""} { "Info" "ISGN_ENTITY_NAME" "9 nios_system_nios2_processor_nios2_oci_dbrk " "Found entity 9: nios_system_nios2_processor_nios2_oci_dbrk" { } { { "db/ip/nios_system/submodules/nios_system_nios2_processor.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor.v" 1116 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609261511 ""} { "Info" "ISGN_ENTITY_NAME" "10 nios_system_nios2_processor_nios2_oci_itrace " "Found entity 10: nios_system_nios2_processor_nios2_oci_itrace" { } { { "db/ip/nios_system/submodules/nios_system_nios2_processor.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor.v" 1302 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609261511 ""} { "Info" "ISGN_ENTITY_NAME" "11 nios_system_nios2_processor_nios2_oci_td_mode " "Found entity 11: nios_system_nios2_processor_nios2_oci_td_mode" { } { { "db/ip/nios_system/submodules/nios_system_nios2_processor.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor.v" 1599 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609261511 ""} { "Info" "ISGN_ENTITY_NAME" "12 nios_system_nios2_processor_nios2_oci_dtrace " "Found entity 12: nios_system_nios2_processor_nios2_oci_dtrace" { } { { "db/ip/nios_system/submodules/nios_system_nios2_processor.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor.v" 1666 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609261511 ""} { "Info" "ISGN_ENTITY_NAME" "13 nios_system_nios2_processor_nios2_oci_compute_tm_count " "Found entity 13: nios_system_nios2_processor_nios2_oci_compute_tm_count" { } { { "db/ip/nios_system/submodules/nios_system_nios2_processor.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor.v" 1760 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609261511 ""} { "Info" "ISGN_ENTITY_NAME" "14 nios_system_nios2_processor_nios2_oci_fifowp_inc " "Found entity 14: nios_system_nios2_processor_nios2_oci_fifowp_inc" { } { { "db/ip/nios_system/submodules/nios_system_nios2_processor.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor.v" 1831 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609261511 ""} { "Info" "ISGN_ENTITY_NAME" "15 nios_system_nios2_processor_nios2_oci_fifocount_inc " "Found entity 15: nios_system_nios2_processor_nios2_oci_fifocount_inc" { } { { "db/ip/nios_system/submodules/nios_system_nios2_processor.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor.v" 1873 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609261511 ""} { "Info" "ISGN_ENTITY_NAME" "16 nios_system_nios2_processor_nios2_oci_fifo " "Found entity 16: nios_system_nios2_processor_nios2_oci_fifo" { } { { "db/ip/nios_system/submodules/nios_system_nios2_processor.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor.v" 1919 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609261511 ""} { "Info" "ISGN_ENTITY_NAME" "17 nios_system_nios2_processor_nios2_oci_pib " "Found entity 17: nios_system_nios2_processor_nios2_oci_pib" { } { { "db/ip/nios_system/submodules/nios_system_nios2_processor.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor.v" 2424 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609261511 ""} { "Info" "ISGN_ENTITY_NAME" "18 nios_system_nios2_processor_nios2_oci_im " "Found entity 18: nios_system_nios2_processor_nios2_oci_im" { } { { "db/ip/nios_system/submodules/nios_system_nios2_processor.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor.v" 2492 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609261511 ""} { "Info" "ISGN_ENTITY_NAME" "19 nios_system_nios2_processor_nios2_performance_monitors " "Found entity 19: nios_system_nios2_processor_nios2_performance_monitors" { } { { "db/ip/nios_system/submodules/nios_system_nios2_processor.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor.v" 2608 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609261511 ""} { "Info" "ISGN_ENTITY_NAME" "20 nios_system_nios2_processor_nios2_oci " "Found entity 20: nios_system_nios2_processor_nios2_oci" { } { { "db/ip/nios_system/submodules/nios_system_nios2_processor.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor.v" 2624 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609261511 ""} { "Info" "ISGN_ENTITY_NAME" "21 nios_system_nios2_processor " "Found entity 21: nios_system_nios2_processor" { } { { "db/ip/nios_system/submodules/nios_system_nios2_processor.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor.v" 3129 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609261511 ""} } { } 0 12021 "Found %2!llu! design units, including %3!llu! entities, in source file %1!s!" 0 0 "Quartus II" 0 -1 1480609261511 ""} +{ "Info" "ISGN_NUM_OF_DESIGN_UNITS_AND_ENTITIES" "db/ip/nios_system/submodules/nios_system_nios2_processor_jtag_debug_module_sysclk.v 1 1 " "Found 1 design units, including 1 entities, in source file db/ip/nios_system/submodules/nios_system_nios2_processor_jtag_debug_module_sysclk.v" { { "Info" "ISGN_ENTITY_NAME" "1 nios_system_nios2_processor_jtag_debug_module_sysclk " "Found entity 1: nios_system_nios2_processor_jtag_debug_module_sysclk" { } { { "db/ip/nios_system/submodules/nios_system_nios2_processor_jtag_debug_module_sysclk.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor_jtag_debug_module_sysclk.v" 21 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609261516 ""} } { } 0 12021 "Found %2!llu! design units, including %3!llu! entities, in source file %1!s!" 0 0 "Quartus II" 0 -1 1480609261516 ""} +{ "Info" "ISGN_NUM_OF_DESIGN_UNITS_AND_ENTITIES" "db/ip/nios_system/submodules/nios_system_nios2_processor_jtag_debug_module_tck.v 1 1 " "Found 1 design units, including 1 entities, in source file db/ip/nios_system/submodules/nios_system_nios2_processor_jtag_debug_module_tck.v" { { "Info" "ISGN_ENTITY_NAME" "1 nios_system_nios2_processor_jtag_debug_module_tck " "Found entity 1: nios_system_nios2_processor_jtag_debug_module_tck" { } { { "db/ip/nios_system/submodules/nios_system_nios2_processor_jtag_debug_module_tck.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor_jtag_debug_module_tck.v" 21 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609261519 ""} } { } 0 12021 "Found %2!llu! design units, including %3!llu! entities, in source file %1!s!" 0 0 "Quartus II" 0 -1 1480609261519 ""} +{ "Info" "ISGN_NUM_OF_DESIGN_UNITS_AND_ENTITIES" "db/ip/nios_system/submodules/nios_system_nios2_processor_jtag_debug_module_wrapper.v 1 1 " "Found 1 design units, including 1 entities, in source file db/ip/nios_system/submodules/nios_system_nios2_processor_jtag_debug_module_wrapper.v" { { "Info" "ISGN_ENTITY_NAME" "1 nios_system_nios2_processor_jtag_debug_module_wrapper " "Found entity 1: nios_system_nios2_processor_jtag_debug_module_wrapper" { } { { "db/ip/nios_system/submodules/nios_system_nios2_processor_jtag_debug_module_wrapper.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor_jtag_debug_module_wrapper.v" 21 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609261523 ""} } { } 0 12021 "Found %2!llu! design units, including %3!llu! entities, in source file %1!s!" 0 0 "Quartus II" 0 -1 1480609261523 ""} +{ "Info" "ISGN_NUM_OF_DESIGN_UNITS_AND_ENTITIES" "db/ip/nios_system/submodules/nios_system_nios2_processor_oci_test_bench.v 1 1 " "Found 1 design units, including 1 entities, in source file db/ip/nios_system/submodules/nios_system_nios2_processor_oci_test_bench.v" { { "Info" "ISGN_ENTITY_NAME" "1 nios_system_nios2_processor_oci_test_bench " "Found entity 1: nios_system_nios2_processor_oci_test_bench" { } { { "db/ip/nios_system/submodules/nios_system_nios2_processor_oci_test_bench.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor_oci_test_bench.v" 21 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609261526 ""} } { } 0 12021 "Found %2!llu! design units, including %3!llu! entities, in source file %1!s!" 0 0 "Quartus II" 0 -1 1480609261526 ""} +{ "Info" "ISGN_NUM_OF_DESIGN_UNITS_AND_ENTITIES" "db/ip/nios_system/submodules/nios_system_nios2_processor_test_bench.v 1 1 " "Found 1 design units, including 1 entities, in source file db/ip/nios_system/submodules/nios_system_nios2_processor_test_bench.v" { { "Info" "ISGN_ENTITY_NAME" "1 nios_system_nios2_processor_test_bench " "Found entity 1: nios_system_nios2_processor_test_bench" { } { { "db/ip/nios_system/submodules/nios_system_nios2_processor_test_bench.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor_test_bench.v" 21 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609261530 ""} } { } 0 12021 "Found %2!llu! design units, including %3!llu! entities, in source file %1!s!" 0 0 "Quartus II" 0 -1 1480609261530 ""} +{ "Info" "ISGN_NUM_OF_DESIGN_UNITS_AND_ENTITIES" "db/ip/nios_system/submodules/nios_system_onchip_memory.v 1 1 " "Found 1 design units, including 1 entities, in source file db/ip/nios_system/submodules/nios_system_onchip_memory.v" { { "Info" "ISGN_ENTITY_NAME" "1 nios_system_onchip_memory " "Found entity 1: nios_system_onchip_memory" { } { { "db/ip/nios_system/submodules/nios_system_onchip_memory.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_onchip_memory.v" 21 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609261533 ""} } { } 0 12021 "Found %2!llu! design units, including %3!llu! entities, in source file %1!s!" 0 0 "Quartus II" 0 -1 1480609261533 ""} +{ "Info" "ISGN_NUM_OF_DESIGN_UNITS_AND_ENTITIES" "db/ip/nios_system/submodules/nios_system_push_switches.v 1 1 " "Found 1 design units, including 1 entities, in source file db/ip/nios_system/submodules/nios_system_push_switches.v" { { "Info" "ISGN_ENTITY_NAME" "1 nios_system_push_switches " "Found entity 1: nios_system_push_switches" { } { { "db/ip/nios_system/submodules/nios_system_push_switches.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_push_switches.v" 21 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609261537 ""} } { } 0 12021 "Found %2!llu! design units, including %3!llu! entities, in source file %1!s!" 0 0 "Quartus II" 0 -1 1480609261537 ""} +{ "Info" "ISGN_NUM_OF_DESIGN_UNITS_AND_ENTITIES" "db/ip/nios_system/submodules/nios_system_rsp_xbar_demux_002.sv 1 1 " "Found 1 design units, including 1 entities, in source file db/ip/nios_system/submodules/nios_system_rsp_xbar_demux_002.sv" { { "Info" "ISGN_ENTITY_NAME" "1 nios_system_rsp_xbar_demux_002 " "Found entity 1: nios_system_rsp_xbar_demux_002" { } { { "db/ip/nios_system/submodules/nios_system_rsp_xbar_demux_002.sv" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_rsp_xbar_demux_002.sv" 43 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609261541 ""} } { } 0 12021 "Found %2!llu! design units, including %3!llu! entities, in source file %1!s!" 0 0 "Quartus II" 0 -1 1480609261541 ""} +{ "Info" "ISGN_NUM_OF_DESIGN_UNITS_AND_ENTITIES" "db/ip/nios_system/submodules/nios_system_rsp_xbar_mux.sv 1 1 " "Found 1 design units, including 1 entities, in source file db/ip/nios_system/submodules/nios_system_rsp_xbar_mux.sv" { { "Info" "ISGN_ENTITY_NAME" "1 nios_system_rsp_xbar_mux " "Found entity 1: nios_system_rsp_xbar_mux" { } { { "db/ip/nios_system/submodules/nios_system_rsp_xbar_mux.sv" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_rsp_xbar_mux.sv" 38 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609261545 ""} } { } 0 12021 "Found %2!llu! design units, including %3!llu! entities, in source file %1!s!" 0 0 "Quartus II" 0 -1 1480609261545 ""} +{ "Info" "ISGN_NUM_OF_DESIGN_UNITS_AND_ENTITIES" "db/ip/nios_system/submodules/nios_system_rsp_xbar_mux_001.sv 1 1 " "Found 1 design units, including 1 entities, in source file db/ip/nios_system/submodules/nios_system_rsp_xbar_mux_001.sv" { { "Info" "ISGN_ENTITY_NAME" "1 nios_system_rsp_xbar_mux_001 " "Found entity 1: nios_system_rsp_xbar_mux_001" { } { { "db/ip/nios_system/submodules/nios_system_rsp_xbar_mux_001.sv" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_rsp_xbar_mux_001.sv" 38 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609261550 ""} } { } 0 12021 "Found %2!llu! design units, including %3!llu! entities, in source file %1!s!" 0 0 "Quartus II" 0 -1 1480609261550 ""} +{ "Info" "ISGN_NUM_OF_DESIGN_UNITS_AND_ENTITIES" "db/ip/nios_system/submodules/nios_system_switches.v 1 1 " "Found 1 design units, including 1 entities, in source file db/ip/nios_system/submodules/nios_system_switches.v" { { "Info" "ISGN_ENTITY_NAME" "1 nios_system_switches " "Found entity 1: nios_system_switches" { } { { "db/ip/nios_system/submodules/nios_system_switches.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_switches.v" 21 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609261554 ""} } { } 0 12021 "Found %2!llu! design units, including %3!llu! entities, in source file %1!s!" 0 0 "Quartus II" 0 -1 1480609261554 ""} +{ "Warning" "WVRFX_L2_HDL_CONDITION_EXP_IS_CONST" "nios_system_nios2_processor.v(1567) " "Verilog HDL or VHDL warning at nios_system_nios2_processor.v(1567): conditional expression evaluates to a constant" { } { { "db/ip/nios_system/submodules/nios_system_nios2_processor.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor.v" 1567 0 0 } } } 0 10037 "Verilog HDL or VHDL warning at %1!s!: conditional expression evaluates to a constant" 1 0 "Quartus II" 0 -1 1480609261584 ""} +{ "Warning" "WVRFX_L2_HDL_CONDITION_EXP_IS_CONST" "nios_system_nios2_processor.v(1569) " "Verilog HDL or VHDL warning at nios_system_nios2_processor.v(1569): conditional expression evaluates to a constant" { } { { "db/ip/nios_system/submodules/nios_system_nios2_processor.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor.v" 1569 0 0 } } } 0 10037 "Verilog HDL or VHDL warning at %1!s!: conditional expression evaluates to a constant" 1 0 "Quartus II" 0 -1 1480609261584 ""} +{ "Warning" "WVRFX_L2_HDL_CONDITION_EXP_IS_CONST" "nios_system_nios2_processor.v(1725) " "Verilog HDL or VHDL warning at nios_system_nios2_processor.v(1725): conditional expression evaluates to a constant" { } { { "db/ip/nios_system/submodules/nios_system_nios2_processor.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor.v" 1725 0 0 } } } 0 10037 "Verilog HDL or VHDL warning at %1!s!: conditional expression evaluates to a constant" 1 0 "Quartus II" 0 -1 1480609261585 ""} +{ "Warning" "WVRFX_L2_HDL_CONDITION_EXP_IS_CONST" "nios_system_nios2_processor.v(2553) " "Verilog HDL or VHDL warning at nios_system_nios2_processor.v(2553): conditional expression evaluates to a constant" { } { { "db/ip/nios_system/submodules/nios_system_nios2_processor.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor.v" 2553 0 0 } } } 0 10037 "Verilog HDL or VHDL warning at %1!s!: conditional expression evaluates to a constant" 1 0 "Quartus II" 0 -1 1480609261588 ""} +{ "Info" "ISGN_START_ELABORATION_TOP" "lights " "Elaborating entity \"lights\" for the top level hierarchy" { } { } 0 12127 "Elaborating entity \"%1!s!\" for the top level hierarchy" 0 0 "Quartus II" 0 -1 1480609261703 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "nios_system nios_system:NiosII " "Elaborating entity \"nios_system\" for hierarchy \"nios_system:NiosII\"" { } { { "lights.vhd" "NiosII" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/lights.vhd" 53 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609261724 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "nios_system_nios2_processor nios_system:NiosII\|nios_system_nios2_processor:nios2_processor " "Elaborating entity \"nios_system_nios2_processor\" for hierarchy \"nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\"" { } { { "nios_system/synthesis/nios_system.v" "nios2_processor" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/synthesis/nios_system.v" 1103 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609262516 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "nios_system_nios2_processor_test_bench nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_test_bench:the_nios_system_nios2_processor_test_bench " "Elaborating entity \"nios_system_nios2_processor_test_bench\" for hierarchy \"nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_test_bench:the_nios_system_nios2_processor_test_bench\"" { } { { "db/ip/nios_system/submodules/nios_system_nios2_processor.v" "the_nios_system_nios2_processor_test_bench" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor.v" 3794 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609262643 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "nios_system_nios2_processor_register_bank_a_module nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_register_bank_a_module:nios_system_nios2_processor_register_bank_a " "Elaborating entity \"nios_system_nios2_processor_register_bank_a_module\" for hierarchy \"nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_register_bank_a_module:nios_system_nios2_processor_register_bank_a\"" { } { { "db/ip/nios_system/submodules/nios_system_nios2_processor.v" "nios_system_nios2_processor_register_bank_a" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor.v" 4279 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609262685 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "altsyncram nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_register_bank_a_module:nios_system_nios2_processor_register_bank_a\|altsyncram:the_altsyncram " "Elaborating entity \"altsyncram\" for hierarchy \"nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_register_bank_a_module:nios_system_nios2_processor_register_bank_a\|altsyncram:the_altsyncram\"" { } { { "db/ip/nios_system/submodules/nios_system_nios2_processor.v" "the_altsyncram" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor.v" 55 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609262737 ""} +{ "Info" "ISGN_ELABORATION_HEADER" "nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_register_bank_a_module:nios_system_nios2_processor_register_bank_a\|altsyncram:the_altsyncram " "Elaborated megafunction instantiation \"nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_register_bank_a_module:nios_system_nios2_processor_register_bank_a\|altsyncram:the_altsyncram\"" { } { { "db/ip/nios_system/submodules/nios_system_nios2_processor.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor.v" 55 0 0 } } } 0 12130 "Elaborated megafunction instantiation \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609262758 ""} +{ "Info" "ISGN_MEGAFN_PARAM_TOP" "nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_register_bank_a_module:nios_system_nios2_processor_register_bank_a\|altsyncram:the_altsyncram " "Instantiated megafunction \"nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_register_bank_a_module:nios_system_nios2_processor_register_bank_a\|altsyncram:the_altsyncram\" with the following parameter:" { { "Info" "ISGN_MEGAFN_PARAM_SUB" "address_reg_b CLOCK0 " "Parameter \"address_reg_b\" = \"CLOCK0\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609262758 ""} { "Info" "ISGN_MEGAFN_PARAM_SUB" "init_file nios_system_nios2_processor_rf_ram_a.mif " "Parameter \"init_file\" = \"nios_system_nios2_processor_rf_ram_a.mif\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609262758 ""} { "Info" "ISGN_MEGAFN_PARAM_SUB" "maximum_depth 0 " "Parameter \"maximum_depth\" = \"0\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609262758 ""} { "Info" "ISGN_MEGAFN_PARAM_SUB" "numwords_a 32 " "Parameter \"numwords_a\" = \"32\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609262758 ""} { "Info" "ISGN_MEGAFN_PARAM_SUB" "numwords_b 32 " "Parameter \"numwords_b\" = \"32\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609262758 ""} { "Info" "ISGN_MEGAFN_PARAM_SUB" "operation_mode DUAL_PORT " "Parameter \"operation_mode\" = \"DUAL_PORT\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609262758 ""} { "Info" "ISGN_MEGAFN_PARAM_SUB" "outdata_reg_b UNREGISTERED " "Parameter \"outdata_reg_b\" = \"UNREGISTERED\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609262758 ""} { "Info" "ISGN_MEGAFN_PARAM_SUB" "ram_block_type AUTO " "Parameter \"ram_block_type\" = \"AUTO\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609262758 ""} { "Info" "ISGN_MEGAFN_PARAM_SUB" "rdcontrol_reg_b CLOCK0 " "Parameter \"rdcontrol_reg_b\" = \"CLOCK0\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609262758 ""} { "Info" "ISGN_MEGAFN_PARAM_SUB" "read_during_write_mode_mixed_ports DONT_CARE " "Parameter \"read_during_write_mode_mixed_ports\" = \"DONT_CARE\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609262758 ""} { "Info" "ISGN_MEGAFN_PARAM_SUB" "width_a 32 " "Parameter \"width_a\" = \"32\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609262758 ""} { "Info" "ISGN_MEGAFN_PARAM_SUB" "width_b 32 " "Parameter \"width_b\" = \"32\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609262758 ""} { "Info" "ISGN_MEGAFN_PARAM_SUB" "widthad_a 5 " "Parameter \"widthad_a\" = \"5\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609262758 ""} { "Info" "ISGN_MEGAFN_PARAM_SUB" "widthad_b 5 " "Parameter \"widthad_b\" = \"5\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609262758 ""} } { { "db/ip/nios_system/submodules/nios_system_nios2_processor.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor.v" 55 0 0 } } } 0 12133 "Instantiated megafunction \"%1!s!\" with the following parameter:" 0 0 "Quartus II" 0 -1 1480609262758 ""} +{ "Info" "ISGN_NUM_OF_DESIGN_UNITS_AND_ENTITIES" "db/altsyncram_0rh1.tdf 1 1 " "Found 1 design units, including 1 entities, in source file db/altsyncram_0rh1.tdf" { { "Info" "ISGN_ENTITY_NAME" "1 altsyncram_0rh1 " "Found entity 1: altsyncram_0rh1" { } { { "db/altsyncram_0rh1.tdf" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/altsyncram_0rh1.tdf" 27 1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609262827 ""} } { } 0 12021 "Found %2!llu! design units, including %3!llu! entities, in source file %1!s!" 0 0 "Quartus II" 0 -1 1480609262827 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "altsyncram_0rh1 nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_register_bank_a_module:nios_system_nios2_processor_register_bank_a\|altsyncram:the_altsyncram\|altsyncram_0rh1:auto_generated " "Elaborating entity \"altsyncram_0rh1\" for hierarchy \"nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_register_bank_a_module:nios_system_nios2_processor_register_bank_a\|altsyncram:the_altsyncram\|altsyncram_0rh1:auto_generated\"" { } { { "altsyncram.tdf" "auto_generated" { Text "c:/altera/13.0sp1/quartus/libraries/megafunctions/altsyncram.tdf" 791 4 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609262829 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "nios_system_nios2_processor_register_bank_b_module nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_register_bank_b_module:nios_system_nios2_processor_register_bank_b " "Elaborating entity \"nios_system_nios2_processor_register_bank_b_module\" for hierarchy \"nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_register_bank_b_module:nios_system_nios2_processor_register_bank_b\"" { } { { "db/ip/nios_system/submodules/nios_system_nios2_processor.v" "nios_system_nios2_processor_register_bank_b" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor.v" 4300 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609262955 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "altsyncram nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_register_bank_b_module:nios_system_nios2_processor_register_bank_b\|altsyncram:the_altsyncram " "Elaborating entity \"altsyncram\" for hierarchy \"nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_register_bank_b_module:nios_system_nios2_processor_register_bank_b\|altsyncram:the_altsyncram\"" { } { { "db/ip/nios_system/submodules/nios_system_nios2_processor.v" "the_altsyncram" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor.v" 118 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609262975 ""} +{ "Info" "ISGN_ELABORATION_HEADER" "nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_register_bank_b_module:nios_system_nios2_processor_register_bank_b\|altsyncram:the_altsyncram " "Elaborated megafunction instantiation \"nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_register_bank_b_module:nios_system_nios2_processor_register_bank_b\|altsyncram:the_altsyncram\"" { } { { "db/ip/nios_system/submodules/nios_system_nios2_processor.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor.v" 118 0 0 } } } 0 12130 "Elaborated megafunction instantiation \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609262994 ""} +{ "Info" "ISGN_MEGAFN_PARAM_TOP" "nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_register_bank_b_module:nios_system_nios2_processor_register_bank_b\|altsyncram:the_altsyncram " "Instantiated megafunction \"nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_register_bank_b_module:nios_system_nios2_processor_register_bank_b\|altsyncram:the_altsyncram\" with the following parameter:" { { "Info" "ISGN_MEGAFN_PARAM_SUB" "address_reg_b CLOCK0 " "Parameter \"address_reg_b\" = \"CLOCK0\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609262994 ""} { "Info" "ISGN_MEGAFN_PARAM_SUB" "init_file nios_system_nios2_processor_rf_ram_b.mif " "Parameter \"init_file\" = \"nios_system_nios2_processor_rf_ram_b.mif\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609262994 ""} { "Info" "ISGN_MEGAFN_PARAM_SUB" "maximum_depth 0 " "Parameter \"maximum_depth\" = \"0\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609262994 ""} { "Info" "ISGN_MEGAFN_PARAM_SUB" "numwords_a 32 " "Parameter \"numwords_a\" = \"32\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609262994 ""} { "Info" "ISGN_MEGAFN_PARAM_SUB" "numwords_b 32 " "Parameter \"numwords_b\" = \"32\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609262994 ""} { "Info" "ISGN_MEGAFN_PARAM_SUB" "operation_mode DUAL_PORT " "Parameter \"operation_mode\" = \"DUAL_PORT\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609262994 ""} { "Info" "ISGN_MEGAFN_PARAM_SUB" "outdata_reg_b UNREGISTERED " "Parameter \"outdata_reg_b\" = \"UNREGISTERED\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609262994 ""} { "Info" "ISGN_MEGAFN_PARAM_SUB" "ram_block_type AUTO " "Parameter \"ram_block_type\" = \"AUTO\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609262994 ""} { "Info" "ISGN_MEGAFN_PARAM_SUB" "rdcontrol_reg_b CLOCK0 " "Parameter \"rdcontrol_reg_b\" = \"CLOCK0\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609262994 ""} { "Info" "ISGN_MEGAFN_PARAM_SUB" "read_during_write_mode_mixed_ports DONT_CARE " "Parameter \"read_during_write_mode_mixed_ports\" = \"DONT_CARE\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609262994 ""} { "Info" "ISGN_MEGAFN_PARAM_SUB" "width_a 32 " "Parameter \"width_a\" = \"32\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609262994 ""} { "Info" "ISGN_MEGAFN_PARAM_SUB" "width_b 32 " "Parameter \"width_b\" = \"32\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609262994 ""} { "Info" "ISGN_MEGAFN_PARAM_SUB" "widthad_a 5 " "Parameter \"widthad_a\" = \"5\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609262994 ""} { "Info" "ISGN_MEGAFN_PARAM_SUB" "widthad_b 5 " "Parameter \"widthad_b\" = \"5\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609262994 ""} } { { "db/ip/nios_system/submodules/nios_system_nios2_processor.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor.v" 118 0 0 } } } 0 12133 "Instantiated megafunction \"%1!s!\" with the following parameter:" 0 0 "Quartus II" 0 -1 1480609262994 ""} +{ "Info" "ISGN_NUM_OF_DESIGN_UNITS_AND_ENTITIES" "db/altsyncram_1rh1.tdf 1 1 " "Found 1 design units, including 1 entities, in source file db/altsyncram_1rh1.tdf" { { "Info" "ISGN_ENTITY_NAME" "1 altsyncram_1rh1 " "Found entity 1: altsyncram_1rh1" { } { { "db/altsyncram_1rh1.tdf" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/altsyncram_1rh1.tdf" 27 1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609263063 ""} } { } 0 12021 "Found %2!llu! design units, including %3!llu! entities, in source file %1!s!" 0 0 "Quartus II" 0 -1 1480609263063 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "altsyncram_1rh1 nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_register_bank_b_module:nios_system_nios2_processor_register_bank_b\|altsyncram:the_altsyncram\|altsyncram_1rh1:auto_generated " "Elaborating entity \"altsyncram_1rh1\" for hierarchy \"nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_register_bank_b_module:nios_system_nios2_processor_register_bank_b\|altsyncram:the_altsyncram\|altsyncram_1rh1:auto_generated\"" { } { { "altsyncram.tdf" "auto_generated" { Text "c:/altera/13.0sp1/quartus/libraries/megafunctions/altsyncram.tdf" 791 4 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609263066 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "nios_system_nios2_processor_nios2_oci nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci " "Elaborating entity \"nios_system_nios2_processor_nios2_oci\" for hierarchy \"nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\"" { } { { "db/ip/nios_system/submodules/nios_system_nios2_processor.v" "the_nios_system_nios2_processor_nios2_oci" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor.v" 4758 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609263193 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "nios_system_nios2_processor_nios2_oci_debug nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_nios2_oci_debug:the_nios_system_nios2_processor_nios2_oci_debug " "Elaborating entity \"nios_system_nios2_processor_nios2_oci_debug\" for hierarchy \"nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_nios2_oci_debug:the_nios_system_nios2_processor_nios2_oci_debug\"" { } { { "db/ip/nios_system/submodules/nios_system_nios2_processor.v" "the_nios_system_nios2_processor_nios2_oci_debug" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor.v" 2802 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609263239 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "altera_std_synchronizer nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_nios2_oci_debug:the_nios_system_nios2_processor_nios2_oci_debug\|altera_std_synchronizer:the_altera_std_synchronizer " "Elaborating entity \"altera_std_synchronizer\" for hierarchy \"nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_nios2_oci_debug:the_nios_system_nios2_processor_nios2_oci_debug\|altera_std_synchronizer:the_altera_std_synchronizer\"" { } { { "db/ip/nios_system/submodules/nios_system_nios2_processor.v" "the_altera_std_synchronizer" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor.v" 213 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609263267 ""} +{ "Info" "ISGN_ELABORATION_HEADER" "nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_nios2_oci_debug:the_nios_system_nios2_processor_nios2_oci_debug\|altera_std_synchronizer:the_altera_std_synchronizer " "Elaborated megafunction instantiation \"nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_nios2_oci_debug:the_nios_system_nios2_processor_nios2_oci_debug\|altera_std_synchronizer:the_altera_std_synchronizer\"" { } { { "db/ip/nios_system/submodules/nios_system_nios2_processor.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor.v" 213 0 0 } } } 0 12130 "Elaborated megafunction instantiation \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609263279 ""} +{ "Info" "ISGN_MEGAFN_PARAM_TOP" "nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_nios2_oci_debug:the_nios_system_nios2_processor_nios2_oci_debug\|altera_std_synchronizer:the_altera_std_synchronizer " "Instantiated megafunction \"nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_nios2_oci_debug:the_nios_system_nios2_processor_nios2_oci_debug\|altera_std_synchronizer:the_altera_std_synchronizer\" with the following parameter:" { { "Info" "ISGN_MEGAFN_PARAM_SUB" "depth 2 " "Parameter \"depth\" = \"2\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609263279 ""} } { { "db/ip/nios_system/submodules/nios_system_nios2_processor.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor.v" 213 0 0 } } } 0 12133 "Instantiated megafunction \"%1!s!\" with the following parameter:" 0 0 "Quartus II" 0 -1 1480609263279 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "nios_system_nios2_processor_nios2_ocimem nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_nios2_ocimem:the_nios_system_nios2_processor_nios2_ocimem " "Elaborating entity \"nios_system_nios2_processor_nios2_ocimem\" for hierarchy \"nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_nios2_ocimem:the_nios_system_nios2_processor_nios2_ocimem\"" { } { { "db/ip/nios_system/submodules/nios_system_nios2_processor.v" "the_nios_system_nios2_processor_nios2_ocimem" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor.v" 2821 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609263282 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "nios_system_nios2_processor_ociram_sp_ram_module nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_nios2_ocimem:the_nios_system_nios2_processor_nios2_ocimem\|nios_system_nios2_processor_ociram_sp_ram_module:nios_system_nios2_processor_ociram_sp_ram " "Elaborating entity \"nios_system_nios2_processor_ociram_sp_ram_module\" for hierarchy \"nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_nios2_ocimem:the_nios_system_nios2_processor_nios2_ocimem\|nios_system_nios2_processor_ociram_sp_ram_module:nios_system_nios2_processor_ociram_sp_ram\"" { } { { "db/ip/nios_system/submodules/nios_system_nios2_processor.v" "nios_system_nios2_processor_ociram_sp_ram" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor.v" 491 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609263310 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "altsyncram nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_nios2_ocimem:the_nios_system_nios2_processor_nios2_ocimem\|nios_system_nios2_processor_ociram_sp_ram_module:nios_system_nios2_processor_ociram_sp_ram\|altsyncram:the_altsyncram " "Elaborating entity \"altsyncram\" for hierarchy \"nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_nios2_ocimem:the_nios_system_nios2_processor_nios2_ocimem\|nios_system_nios2_processor_ociram_sp_ram_module:nios_system_nios2_processor_ociram_sp_ram\|altsyncram:the_altsyncram\"" { } { { "db/ip/nios_system/submodules/nios_system_nios2_processor.v" "the_altsyncram" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor.v" 322 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609263727 ""} +{ "Info" "ISGN_ELABORATION_HEADER" "nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_nios2_ocimem:the_nios_system_nios2_processor_nios2_ocimem\|nios_system_nios2_processor_ociram_sp_ram_module:nios_system_nios2_processor_ociram_sp_ram\|altsyncram:the_altsyncram " "Elaborated megafunction instantiation \"nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_nios2_ocimem:the_nios_system_nios2_processor_nios2_ocimem\|nios_system_nios2_processor_ociram_sp_ram_module:nios_system_nios2_processor_ociram_sp_ram\|altsyncram:the_altsyncram\"" { } { { "db/ip/nios_system/submodules/nios_system_nios2_processor.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor.v" 322 0 0 } } } 0 12130 "Elaborated megafunction instantiation \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609263751 ""} +{ "Info" "ISGN_MEGAFN_PARAM_TOP" "nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_nios2_ocimem:the_nios_system_nios2_processor_nios2_ocimem\|nios_system_nios2_processor_ociram_sp_ram_module:nios_system_nios2_processor_ociram_sp_ram\|altsyncram:the_altsyncram " "Instantiated megafunction \"nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_nios2_ocimem:the_nios_system_nios2_processor_nios2_ocimem\|nios_system_nios2_processor_ociram_sp_ram_module:nios_system_nios2_processor_ociram_sp_ram\|altsyncram:the_altsyncram\" with the following parameter:" { { "Info" "ISGN_MEGAFN_PARAM_SUB" "init_file nios_system_nios2_processor_ociram_default_contents.mif " "Parameter \"init_file\" = \"nios_system_nios2_processor_ociram_default_contents.mif\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609263752 ""} { "Info" "ISGN_MEGAFN_PARAM_SUB" "maximum_depth 0 " "Parameter \"maximum_depth\" = \"0\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609263752 ""} { "Info" "ISGN_MEGAFN_PARAM_SUB" "numwords_a 256 " "Parameter \"numwords_a\" = \"256\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609263752 ""} { "Info" "ISGN_MEGAFN_PARAM_SUB" "operation_mode SINGLE_PORT " "Parameter \"operation_mode\" = \"SINGLE_PORT\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609263752 ""} { "Info" "ISGN_MEGAFN_PARAM_SUB" "outdata_reg_a UNREGISTERED " "Parameter \"outdata_reg_a\" = \"UNREGISTERED\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609263752 ""} { "Info" "ISGN_MEGAFN_PARAM_SUB" "ram_block_type AUTO " "Parameter \"ram_block_type\" = \"AUTO\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609263752 ""} { "Info" "ISGN_MEGAFN_PARAM_SUB" "width_a 32 " "Parameter \"width_a\" = \"32\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609263752 ""} { "Info" "ISGN_MEGAFN_PARAM_SUB" "width_byteena_a 4 " "Parameter \"width_byteena_a\" = \"4\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609263752 ""} { "Info" "ISGN_MEGAFN_PARAM_SUB" "widthad_a 8 " "Parameter \"widthad_a\" = \"8\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609263752 ""} } { { "db/ip/nios_system/submodules/nios_system_nios2_processor.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor.v" 322 0 0 } } } 0 12133 "Instantiated megafunction \"%1!s!\" with the following parameter:" 0 0 "Quartus II" 0 -1 1480609263752 ""} +{ "Info" "ISGN_NUM_OF_DESIGN_UNITS_AND_ENTITIES" "db/altsyncram_4891.tdf 1 1 " "Found 1 design units, including 1 entities, in source file db/altsyncram_4891.tdf" { { "Info" "ISGN_ENTITY_NAME" "1 altsyncram_4891 " "Found entity 1: altsyncram_4891" { } { { "db/altsyncram_4891.tdf" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/altsyncram_4891.tdf" 27 1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609263817 ""} } { } 0 12021 "Found %2!llu! design units, including %3!llu! entities, in source file %1!s!" 0 0 "Quartus II" 0 -1 1480609263817 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "altsyncram_4891 nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_nios2_ocimem:the_nios_system_nios2_processor_nios2_ocimem\|nios_system_nios2_processor_ociram_sp_ram_module:nios_system_nios2_processor_ociram_sp_ram\|altsyncram:the_altsyncram\|altsyncram_4891:auto_generated " "Elaborating entity \"altsyncram_4891\" for hierarchy \"nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_nios2_ocimem:the_nios_system_nios2_processor_nios2_ocimem\|nios_system_nios2_processor_ociram_sp_ram_module:nios_system_nios2_processor_ociram_sp_ram\|altsyncram:the_altsyncram\|altsyncram_4891:auto_generated\"" { } { { "altsyncram.tdf" "auto_generated" { Text "c:/altera/13.0sp1/quartus/libraries/megafunctions/altsyncram.tdf" 791 4 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609263819 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "nios_system_nios2_processor_nios2_avalon_reg nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_nios2_avalon_reg:the_nios_system_nios2_processor_nios2_avalon_reg " "Elaborating entity \"nios_system_nios2_processor_nios2_avalon_reg\" for hierarchy \"nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_nios2_avalon_reg:the_nios_system_nios2_processor_nios2_avalon_reg\"" { } { { "db/ip/nios_system/submodules/nios_system_nios2_processor.v" "the_nios_system_nios2_processor_nios2_avalon_reg" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor.v" 2840 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609263950 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "nios_system_nios2_processor_nios2_oci_break nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_nios2_oci_break:the_nios_system_nios2_processor_nios2_oci_break " "Elaborating entity \"nios_system_nios2_processor_nios2_oci_break\" for hierarchy \"nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_nios2_oci_break:the_nios_system_nios2_processor_nios2_oci_break\"" { } { { "db/ip/nios_system/submodules/nios_system_nios2_processor.v" "the_nios_system_nios2_processor_nios2_oci_break" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor.v" 2871 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609263968 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "nios_system_nios2_processor_nios2_oci_xbrk nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_nios2_oci_xbrk:the_nios_system_nios2_processor_nios2_oci_xbrk " "Elaborating entity \"nios_system_nios2_processor_nios2_oci_xbrk\" for hierarchy \"nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_nios2_oci_xbrk:the_nios_system_nios2_processor_nios2_oci_xbrk\"" { } { { "db/ip/nios_system/submodules/nios_system_nios2_processor.v" "the_nios_system_nios2_processor_nios2_oci_xbrk" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor.v" 2892 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609264008 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "nios_system_nios2_processor_nios2_oci_dbrk nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_nios2_oci_dbrk:the_nios_system_nios2_processor_nios2_oci_dbrk " "Elaborating entity \"nios_system_nios2_processor_nios2_oci_dbrk\" for hierarchy \"nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_nios2_oci_dbrk:the_nios_system_nios2_processor_nios2_oci_dbrk\"" { } { { "db/ip/nios_system/submodules/nios_system_nios2_processor.v" "the_nios_system_nios2_processor_nios2_oci_dbrk" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor.v" 2918 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609264024 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "nios_system_nios2_processor_nios2_oci_itrace nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_nios2_oci_itrace:the_nios_system_nios2_processor_nios2_oci_itrace " "Elaborating entity \"nios_system_nios2_processor_nios2_oci_itrace\" for hierarchy \"nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_nios2_oci_itrace:the_nios_system_nios2_processor_nios2_oci_itrace\"" { } { { "db/ip/nios_system/submodules/nios_system_nios2_processor.v" "the_nios_system_nios2_processor_nios2_oci_itrace" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor.v" 2937 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609264041 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "nios_system_nios2_processor_nios2_oci_dtrace nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_nios2_oci_dtrace:the_nios_system_nios2_processor_nios2_oci_dtrace " "Elaborating entity \"nios_system_nios2_processor_nios2_oci_dtrace\" for hierarchy \"nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_nios2_oci_dtrace:the_nios_system_nios2_processor_nios2_oci_dtrace\"" { } { { "db/ip/nios_system/submodules/nios_system_nios2_processor.v" "the_nios_system_nios2_processor_nios2_oci_dtrace" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor.v" 2952 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609264068 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "nios_system_nios2_processor_nios2_oci_td_mode nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_nios2_oci_dtrace:the_nios_system_nios2_processor_nios2_oci_dtrace\|nios_system_nios2_processor_nios2_oci_td_mode:nios_system_nios2_processor_nios2_oci_trc_ctrl_td_mode " "Elaborating entity \"nios_system_nios2_processor_nios2_oci_td_mode\" for hierarchy \"nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_nios2_oci_dtrace:the_nios_system_nios2_processor_nios2_oci_dtrace\|nios_system_nios2_processor_nios2_oci_td_mode:nios_system_nios2_processor_nios2_oci_trc_ctrl_td_mode\"" { } { { "db/ip/nios_system/submodules/nios_system_nios2_processor.v" "nios_system_nios2_processor_nios2_oci_trc_ctrl_td_mode" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor.v" 1714 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609264093 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "nios_system_nios2_processor_nios2_oci_fifo nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_nios2_oci_fifo:the_nios_system_nios2_processor_nios2_oci_fifo " "Elaborating entity \"nios_system_nios2_processor_nios2_oci_fifo\" for hierarchy \"nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_nios2_oci_fifo:the_nios_system_nios2_processor_nios2_oci_fifo\"" { } { { "db/ip/nios_system/submodules/nios_system_nios2_processor.v" "the_nios_system_nios2_processor_nios2_oci_fifo" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor.v" 2971 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609264108 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "nios_system_nios2_processor_nios2_oci_compute_tm_count nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_nios2_oci_fifo:the_nios_system_nios2_processor_nios2_oci_fifo\|nios_system_nios2_processor_nios2_oci_compute_tm_count:nios_system_nios2_processor_nios2_oci_compute_tm_count_tm_count " "Elaborating entity \"nios_system_nios2_processor_nios2_oci_compute_tm_count\" for hierarchy \"nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_nios2_oci_fifo:the_nios_system_nios2_processor_nios2_oci_fifo\|nios_system_nios2_processor_nios2_oci_compute_tm_count:nios_system_nios2_processor_nios2_oci_compute_tm_count_tm_count\"" { } { { "db/ip/nios_system/submodules/nios_system_nios2_processor.v" "nios_system_nios2_processor_nios2_oci_compute_tm_count_tm_count" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor.v" 2046 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609264154 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "nios_system_nios2_processor_nios2_oci_fifowp_inc nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_nios2_oci_fifo:the_nios_system_nios2_processor_nios2_oci_fifo\|nios_system_nios2_processor_nios2_oci_fifowp_inc:nios_system_nios2_processor_nios2_oci_fifowp_inc_fifowp " "Elaborating entity \"nios_system_nios2_processor_nios2_oci_fifowp_inc\" for hierarchy \"nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_nios2_oci_fifo:the_nios_system_nios2_processor_nios2_oci_fifo\|nios_system_nios2_processor_nios2_oci_fifowp_inc:nios_system_nios2_processor_nios2_oci_fifowp_inc_fifowp\"" { } { { "db/ip/nios_system/submodules/nios_system_nios2_processor.v" "nios_system_nios2_processor_nios2_oci_fifowp_inc_fifowp" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor.v" 2056 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609264171 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "nios_system_nios2_processor_nios2_oci_fifocount_inc nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_nios2_oci_fifo:the_nios_system_nios2_processor_nios2_oci_fifo\|nios_system_nios2_processor_nios2_oci_fifocount_inc:nios_system_nios2_processor_nios2_oci_fifocount_inc_fifocount " "Elaborating entity \"nios_system_nios2_processor_nios2_oci_fifocount_inc\" for hierarchy \"nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_nios2_oci_fifo:the_nios_system_nios2_processor_nios2_oci_fifo\|nios_system_nios2_processor_nios2_oci_fifocount_inc:nios_system_nios2_processor_nios2_oci_fifocount_inc_fifocount\"" { } { { "db/ip/nios_system/submodules/nios_system_nios2_processor.v" "nios_system_nios2_processor_nios2_oci_fifocount_inc_fifocount" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor.v" 2066 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609264189 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "nios_system_nios2_processor_oci_test_bench nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_nios2_oci_fifo:the_nios_system_nios2_processor_nios2_oci_fifo\|nios_system_nios2_processor_oci_test_bench:the_nios_system_nios2_processor_oci_test_bench " "Elaborating entity \"nios_system_nios2_processor_oci_test_bench\" for hierarchy \"nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_nios2_oci_fifo:the_nios_system_nios2_processor_nios2_oci_fifo\|nios_system_nios2_processor_oci_test_bench:the_nios_system_nios2_processor_oci_test_bench\"" { } { { "db/ip/nios_system/submodules/nios_system_nios2_processor.v" "the_nios_system_nios2_processor_oci_test_bench" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor.v" 2075 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609264205 ""} +{ "Warning" "WSGN_EMPTY_SHELL" "nios_system_nios2_processor_oci_test_bench " "Entity \"nios_system_nios2_processor_oci_test_bench\" contains only dangling pins" { } { { "db/ip/nios_system/submodules/nios_system_nios2_processor.v" "the_nios_system_nios2_processor_oci_test_bench" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor.v" 2075 0 0 } } } 0 12158 "Entity \"%1!s!\" contains only dangling pins" 0 0 "Quartus II" 0 -1 1480609264206 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "nios_system_nios2_processor_nios2_oci_pib nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_nios2_oci_pib:the_nios_system_nios2_processor_nios2_oci_pib " "Elaborating entity \"nios_system_nios2_processor_nios2_oci_pib\" for hierarchy \"nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_nios2_oci_pib:the_nios_system_nios2_processor_nios2_oci_pib\"" { } { { "db/ip/nios_system/submodules/nios_system_nios2_processor.v" "the_nios_system_nios2_processor_nios2_oci_pib" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor.v" 2981 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609264222 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "nios_system_nios2_processor_nios2_oci_im nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_nios2_oci_im:the_nios_system_nios2_processor_nios2_oci_im " "Elaborating entity \"nios_system_nios2_processor_nios2_oci_im\" for hierarchy \"nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_nios2_oci_im:the_nios_system_nios2_processor_nios2_oci_im\"" { } { { "db/ip/nios_system/submodules/nios_system_nios2_processor.v" "the_nios_system_nios2_processor_nios2_oci_im" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor.v" 3002 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609264235 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "nios_system_nios2_processor_jtag_debug_module_wrapper nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper " "Elaborating entity \"nios_system_nios2_processor_jtag_debug_module_wrapper\" for hierarchy \"nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper\"" { } { { "db/ip/nios_system/submodules/nios_system_nios2_processor.v" "the_nios_system_nios2_processor_jtag_debug_module_wrapper" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor.v" 3107 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609264430 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "nios_system_nios2_processor_jtag_debug_module_tck nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper\|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck " "Elaborating entity \"nios_system_nios2_processor_jtag_debug_module_tck\" for hierarchy \"nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper\|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck\"" { } { { "db/ip/nios_system/submodules/nios_system_nios2_processor_jtag_debug_module_wrapper.v" "the_nios_system_nios2_processor_jtag_debug_module_tck" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor_jtag_debug_module_wrapper.v" 165 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609264450 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "nios_system_nios2_processor_jtag_debug_module_sysclk nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper\|nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk " "Elaborating entity \"nios_system_nios2_processor_jtag_debug_module_sysclk\" for hierarchy \"nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper\|nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk\"" { } { { "db/ip/nios_system/submodules/nios_system_nios2_processor_jtag_debug_module_wrapper.v" "the_nios_system_nios2_processor_jtag_debug_module_sysclk" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor_jtag_debug_module_wrapper.v" 188 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609264479 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "sld_virtual_jtag_basic nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper\|sld_virtual_jtag_basic:nios_system_nios2_processor_jtag_debug_module_phy " "Elaborating entity \"sld_virtual_jtag_basic\" for hierarchy \"nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper\|sld_virtual_jtag_basic:nios_system_nios2_processor_jtag_debug_module_phy\"" { } { { "db/ip/nios_system/submodules/nios_system_nios2_processor_jtag_debug_module_wrapper.v" "nios_system_nios2_processor_jtag_debug_module_phy" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor_jtag_debug_module_wrapper.v" 218 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609264517 ""} +{ "Info" "ISGN_ELABORATION_HEADER" "nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper\|sld_virtual_jtag_basic:nios_system_nios2_processor_jtag_debug_module_phy " "Elaborated megafunction instantiation \"nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper\|sld_virtual_jtag_basic:nios_system_nios2_processor_jtag_debug_module_phy\"" { } { { "db/ip/nios_system/submodules/nios_system_nios2_processor_jtag_debug_module_wrapper.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor_jtag_debug_module_wrapper.v" 218 0 0 } } } 0 12130 "Elaborated megafunction instantiation \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609264531 ""} +{ "Info" "ISGN_MEGAFN_PARAM_TOP" "nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper\|sld_virtual_jtag_basic:nios_system_nios2_processor_jtag_debug_module_phy " "Instantiated megafunction \"nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper\|sld_virtual_jtag_basic:nios_system_nios2_processor_jtag_debug_module_phy\" with the following parameter:" { { "Info" "ISGN_MEGAFN_PARAM_SUB" "sld_auto_instance_index YES " "Parameter \"sld_auto_instance_index\" = \"YES\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609264531 ""} { "Info" "ISGN_MEGAFN_PARAM_SUB" "sld_instance_index 0 " "Parameter \"sld_instance_index\" = \"0\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609264531 ""} { "Info" "ISGN_MEGAFN_PARAM_SUB" "sld_ir_width 2 " "Parameter \"sld_ir_width\" = \"2\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609264531 ""} { "Info" "ISGN_MEGAFN_PARAM_SUB" "sld_mfg_id 70 " "Parameter \"sld_mfg_id\" = \"70\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609264531 ""} { "Info" "ISGN_MEGAFN_PARAM_SUB" "sld_sim_action " "Parameter \"sld_sim_action\" = \"\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609264531 ""} { "Info" "ISGN_MEGAFN_PARAM_SUB" "sld_sim_n_scan 0 " "Parameter \"sld_sim_n_scan\" = \"0\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609264531 ""} { "Info" "ISGN_MEGAFN_PARAM_SUB" "sld_sim_total_length 0 " "Parameter \"sld_sim_total_length\" = \"0\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609264531 ""} { "Info" "ISGN_MEGAFN_PARAM_SUB" "sld_type_id 34 " "Parameter \"sld_type_id\" = \"34\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609264531 ""} { "Info" "ISGN_MEGAFN_PARAM_SUB" "sld_version 3 " "Parameter \"sld_version\" = \"3\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609264531 ""} } { { "db/ip/nios_system/submodules/nios_system_nios2_processor_jtag_debug_module_wrapper.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor_jtag_debug_module_wrapper.v" 218 0 0 } } } 0 12133 "Instantiated megafunction \"%1!s!\" with the following parameter:" 0 0 "Quartus II" 0 -1 1480609264531 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "sld_virtual_jtag_impl nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper\|sld_virtual_jtag_basic:nios_system_nios2_processor_jtag_debug_module_phy\|sld_virtual_jtag_impl:sld_virtual_jtag_impl_inst " "Elaborating entity \"sld_virtual_jtag_impl\" for hierarchy \"nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper\|sld_virtual_jtag_basic:nios_system_nios2_processor_jtag_debug_module_phy\|sld_virtual_jtag_impl:sld_virtual_jtag_impl_inst\"" { } { { "sld_virtual_jtag_basic.v" "sld_virtual_jtag_impl_inst" { Text "c:/altera/13.0sp1/quartus/libraries/megafunctions/sld_virtual_jtag_basic.v" 151 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609264533 ""} +{ "Info" "ISGN_MEGAFN_DESCENDANT" "nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper\|sld_virtual_jtag_basic:nios_system_nios2_processor_jtag_debug_module_phy\|sld_virtual_jtag_impl:sld_virtual_jtag_impl_inst nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper\|sld_virtual_jtag_basic:nios_system_nios2_processor_jtag_debug_module_phy " "Elaborated megafunction instantiation \"nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper\|sld_virtual_jtag_basic:nios_system_nios2_processor_jtag_debug_module_phy\|sld_virtual_jtag_impl:sld_virtual_jtag_impl_inst\", which is child of megafunction instantiation \"nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper\|sld_virtual_jtag_basic:nios_system_nios2_processor_jtag_debug_module_phy\"" { } { { "sld_virtual_jtag_basic.v" "" { Text "c:/altera/13.0sp1/quartus/libraries/megafunctions/sld_virtual_jtag_basic.v" 151 0 0 } } { "db/ip/nios_system/submodules/nios_system_nios2_processor_jtag_debug_module_wrapper.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor_jtag_debug_module_wrapper.v" 218 0 0 } } } 0 12131 "Elaborated megafunction instantiation \"%1!s!\", which is child of megafunction instantiation \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609264548 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "nios_system_onchip_memory nios_system:NiosII\|nios_system_onchip_memory:onchip_memory " "Elaborating entity \"nios_system_onchip_memory\" for hierarchy \"nios_system:NiosII\|nios_system_onchip_memory:onchip_memory\"" { } { { "nios_system/synthesis/nios_system.v" "onchip_memory" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/synthesis/nios_system.v" 1116 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609264552 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "altsyncram nios_system:NiosII\|nios_system_onchip_memory:onchip_memory\|altsyncram:the_altsyncram " "Elaborating entity \"altsyncram\" for hierarchy \"nios_system:NiosII\|nios_system_onchip_memory:onchip_memory\|altsyncram:the_altsyncram\"" { } { { "db/ip/nios_system/submodules/nios_system_onchip_memory.v" "the_altsyncram" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_onchip_memory.v" 66 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609264571 ""} +{ "Info" "ISGN_ELABORATION_HEADER" "nios_system:NiosII\|nios_system_onchip_memory:onchip_memory\|altsyncram:the_altsyncram " "Elaborated megafunction instantiation \"nios_system:NiosII\|nios_system_onchip_memory:onchip_memory\|altsyncram:the_altsyncram\"" { } { { "db/ip/nios_system/submodules/nios_system_onchip_memory.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_onchip_memory.v" 66 0 0 } } } 0 12130 "Elaborated megafunction instantiation \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609264591 ""} +{ "Info" "ISGN_MEGAFN_PARAM_TOP" "nios_system:NiosII\|nios_system_onchip_memory:onchip_memory\|altsyncram:the_altsyncram " "Instantiated megafunction \"nios_system:NiosII\|nios_system_onchip_memory:onchip_memory\|altsyncram:the_altsyncram\" with the following parameter:" { { "Info" "ISGN_MEGAFN_PARAM_SUB" "byte_size 8 " "Parameter \"byte_size\" = \"8\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609264591 ""} { "Info" "ISGN_MEGAFN_PARAM_SUB" "init_file nios_system_onchip_memory.hex " "Parameter \"init_file\" = \"nios_system_onchip_memory.hex\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609264591 ""} { "Info" "ISGN_MEGAFN_PARAM_SUB" "lpm_type altsyncram " "Parameter \"lpm_type\" = \"altsyncram\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609264591 ""} { "Info" "ISGN_MEGAFN_PARAM_SUB" "maximum_depth 51200 " "Parameter \"maximum_depth\" = \"51200\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609264591 ""} { "Info" "ISGN_MEGAFN_PARAM_SUB" "numwords_a 51200 " "Parameter \"numwords_a\" = \"51200\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609264591 ""} { "Info" "ISGN_MEGAFN_PARAM_SUB" "operation_mode SINGLE_PORT " "Parameter \"operation_mode\" = \"SINGLE_PORT\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609264591 ""} { "Info" "ISGN_MEGAFN_PARAM_SUB" "outdata_reg_a UNREGISTERED " "Parameter \"outdata_reg_a\" = \"UNREGISTERED\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609264591 ""} { "Info" "ISGN_MEGAFN_PARAM_SUB" "ram_block_type AUTO " "Parameter \"ram_block_type\" = \"AUTO\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609264591 ""} { "Info" "ISGN_MEGAFN_PARAM_SUB" "read_during_write_mode_mixed_ports DONT_CARE " "Parameter \"read_during_write_mode_mixed_ports\" = \"DONT_CARE\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609264591 ""} { "Info" "ISGN_MEGAFN_PARAM_SUB" "width_a 32 " "Parameter \"width_a\" = \"32\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609264591 ""} { "Info" "ISGN_MEGAFN_PARAM_SUB" "width_byteena_a 4 " "Parameter \"width_byteena_a\" = \"4\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609264591 ""} { "Info" "ISGN_MEGAFN_PARAM_SUB" "widthad_a 16 " "Parameter \"widthad_a\" = \"16\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609264591 ""} } { { "db/ip/nios_system/submodules/nios_system_onchip_memory.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_onchip_memory.v" 66 0 0 } } } 0 12133 "Instantiated megafunction \"%1!s!\" with the following parameter:" 0 0 "Quartus II" 0 -1 1480609264591 ""} +{ "Info" "ISGN_NUM_OF_DESIGN_UNITS_AND_ENTITIES" "db/altsyncram_4ed1.tdf 1 1 " "Found 1 design units, including 1 entities, in source file db/altsyncram_4ed1.tdf" { { "Info" "ISGN_ENTITY_NAME" "1 altsyncram_4ed1 " "Found entity 1: altsyncram_4ed1" { } { { "db/altsyncram_4ed1.tdf" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/altsyncram_4ed1.tdf" 31 1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609264688 ""} } { } 0 12021 "Found %2!llu! design units, including %3!llu! entities, in source file %1!s!" 0 0 "Quartus II" 0 -1 1480609264688 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "altsyncram_4ed1 nios_system:NiosII\|nios_system_onchip_memory:onchip_memory\|altsyncram:the_altsyncram\|altsyncram_4ed1:auto_generated " "Elaborating entity \"altsyncram_4ed1\" for hierarchy \"nios_system:NiosII\|nios_system_onchip_memory:onchip_memory\|altsyncram:the_altsyncram\|altsyncram_4ed1:auto_generated\"" { } { { "altsyncram.tdf" "auto_generated" { Text "c:/altera/13.0sp1/quartus/libraries/megafunctions/altsyncram.tdf" 791 4 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609264690 ""} +{ "Info" "ISGN_NUM_OF_DESIGN_UNITS_AND_ENTITIES" "db/decode_qsa.tdf 1 1 " "Found 1 design units, including 1 entities, in source file db/decode_qsa.tdf" { { "Info" "ISGN_ENTITY_NAME" "1 decode_qsa " "Found entity 1: decode_qsa" { } { { "db/decode_qsa.tdf" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/decode_qsa.tdf" 22 1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609266788 ""} } { } 0 12021 "Found %2!llu! design units, including %3!llu! entities, in source file %1!s!" 0 0 "Quartus II" 0 -1 1480609266788 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "decode_qsa nios_system:NiosII\|nios_system_onchip_memory:onchip_memory\|altsyncram:the_altsyncram\|altsyncram_4ed1:auto_generated\|decode_qsa:decode3 " "Elaborating entity \"decode_qsa\" for hierarchy \"nios_system:NiosII\|nios_system_onchip_memory:onchip_memory\|altsyncram:the_altsyncram\|altsyncram_4ed1:auto_generated\|decode_qsa:decode3\"" { } { { "db/altsyncram_4ed1.tdf" "decode3" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/altsyncram_4ed1.tdf" 43 2 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609266790 ""} +{ "Info" "ISGN_NUM_OF_DESIGN_UNITS_AND_ENTITIES" "db/mux_nob.tdf 1 1 " "Found 1 design units, including 1 entities, in source file db/mux_nob.tdf" { { "Info" "ISGN_ENTITY_NAME" "1 mux_nob " "Found entity 1: mux_nob" { } { { "db/mux_nob.tdf" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/mux_nob.tdf" 22 1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609266919 ""} } { } 0 12021 "Found %2!llu! design units, including %3!llu! entities, in source file %1!s!" 0 0 "Quartus II" 0 -1 1480609266919 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "mux_nob nios_system:NiosII\|nios_system_onchip_memory:onchip_memory\|altsyncram:the_altsyncram\|altsyncram_4ed1:auto_generated\|mux_nob:mux2 " "Elaborating entity \"mux_nob\" for hierarchy \"nios_system:NiosII\|nios_system_onchip_memory:onchip_memory\|altsyncram:the_altsyncram\|altsyncram_4ed1:auto_generated\|mux_nob:mux2\"" { } { { "db/altsyncram_4ed1.tdf" "mux2" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/altsyncram_4ed1.tdf" 44 2 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609266921 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "nios_system_jtag_uart nios_system:NiosII\|nios_system_jtag_uart:jtag_uart " "Elaborating entity \"nios_system_jtag_uart\" for hierarchy \"nios_system:NiosII\|nios_system_jtag_uart:jtag_uart\"" { } { { "nios_system/synthesis/nios_system.v" "jtag_uart" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/synthesis/nios_system.v" 1129 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609267161 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "nios_system_jtag_uart_scfifo_w nios_system:NiosII\|nios_system_jtag_uart:jtag_uart\|nios_system_jtag_uart_scfifo_w:the_nios_system_jtag_uart_scfifo_w " "Elaborating entity \"nios_system_jtag_uart_scfifo_w\" for hierarchy \"nios_system:NiosII\|nios_system_jtag_uart:jtag_uart\|nios_system_jtag_uart_scfifo_w:the_nios_system_jtag_uart_scfifo_w\"" { } { { "db/ip/nios_system/submodules/nios_system_jtag_uart.v" "the_nios_system_jtag_uart_scfifo_w" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_jtag_uart.v" 415 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609267404 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "scfifo nios_system:NiosII\|nios_system_jtag_uart:jtag_uart\|nios_system_jtag_uart_scfifo_w:the_nios_system_jtag_uart_scfifo_w\|scfifo:wfifo " "Elaborating entity \"scfifo\" for hierarchy \"nios_system:NiosII\|nios_system_jtag_uart:jtag_uart\|nios_system_jtag_uart_scfifo_w:the_nios_system_jtag_uart_scfifo_w\|scfifo:wfifo\"" { } { { "db/ip/nios_system/submodules/nios_system_jtag_uart.v" "wfifo" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_jtag_uart.v" 137 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609267473 ""} +{ "Info" "ISGN_ELABORATION_HEADER" "nios_system:NiosII\|nios_system_jtag_uart:jtag_uart\|nios_system_jtag_uart_scfifo_w:the_nios_system_jtag_uart_scfifo_w\|scfifo:wfifo " "Elaborated megafunction instantiation \"nios_system:NiosII\|nios_system_jtag_uart:jtag_uart\|nios_system_jtag_uart_scfifo_w:the_nios_system_jtag_uart_scfifo_w\|scfifo:wfifo\"" { } { { "db/ip/nios_system/submodules/nios_system_jtag_uart.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_jtag_uart.v" 137 0 0 } } } 0 12130 "Elaborated megafunction instantiation \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609267488 ""} +{ "Info" "ISGN_MEGAFN_PARAM_TOP" "nios_system:NiosII\|nios_system_jtag_uart:jtag_uart\|nios_system_jtag_uart_scfifo_w:the_nios_system_jtag_uart_scfifo_w\|scfifo:wfifo " "Instantiated megafunction \"nios_system:NiosII\|nios_system_jtag_uart:jtag_uart\|nios_system_jtag_uart_scfifo_w:the_nios_system_jtag_uart_scfifo_w\|scfifo:wfifo\" with the following parameter:" { { "Info" "ISGN_MEGAFN_PARAM_SUB" "lpm_hint RAM_BLOCK_TYPE=AUTO " "Parameter \"lpm_hint\" = \"RAM_BLOCK_TYPE=AUTO\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609267488 ""} { "Info" "ISGN_MEGAFN_PARAM_SUB" "lpm_numwords 64 " "Parameter \"lpm_numwords\" = \"64\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609267488 ""} { "Info" "ISGN_MEGAFN_PARAM_SUB" "lpm_showahead OFF " "Parameter \"lpm_showahead\" = \"OFF\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609267488 ""} { "Info" "ISGN_MEGAFN_PARAM_SUB" "lpm_type scfifo " "Parameter \"lpm_type\" = \"scfifo\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609267488 ""} { "Info" "ISGN_MEGAFN_PARAM_SUB" "lpm_width 8 " "Parameter \"lpm_width\" = \"8\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609267488 ""} { "Info" "ISGN_MEGAFN_PARAM_SUB" "lpm_widthu 6 " "Parameter \"lpm_widthu\" = \"6\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609267488 ""} { "Info" "ISGN_MEGAFN_PARAM_SUB" "overflow_checking OFF " "Parameter \"overflow_checking\" = \"OFF\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609267488 ""} { "Info" "ISGN_MEGAFN_PARAM_SUB" "underflow_checking OFF " "Parameter \"underflow_checking\" = \"OFF\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609267488 ""} { "Info" "ISGN_MEGAFN_PARAM_SUB" "use_eab ON " "Parameter \"use_eab\" = \"ON\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609267488 ""} } { { "db/ip/nios_system/submodules/nios_system_jtag_uart.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_jtag_uart.v" 137 0 0 } } } 0 12133 "Instantiated megafunction \"%1!s!\" with the following parameter:" 0 0 "Quartus II" 0 -1 1480609267488 ""} +{ "Info" "ISGN_NUM_OF_DESIGN_UNITS_AND_ENTITIES" "db/scfifo_jr21.tdf 1 1 " "Found 1 design units, including 1 entities, in source file db/scfifo_jr21.tdf" { { "Info" "ISGN_ENTITY_NAME" "1 scfifo_jr21 " "Found entity 1: scfifo_jr21" { } { { "db/scfifo_jr21.tdf" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/scfifo_jr21.tdf" 24 1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609267556 ""} } { } 0 12021 "Found %2!llu! design units, including %3!llu! entities, in source file %1!s!" 0 0 "Quartus II" 0 -1 1480609267556 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "scfifo_jr21 nios_system:NiosII\|nios_system_jtag_uart:jtag_uart\|nios_system_jtag_uart_scfifo_w:the_nios_system_jtag_uart_scfifo_w\|scfifo:wfifo\|scfifo_jr21:auto_generated " "Elaborating entity \"scfifo_jr21\" for hierarchy \"nios_system:NiosII\|nios_system_jtag_uart:jtag_uart\|nios_system_jtag_uart_scfifo_w:the_nios_system_jtag_uart_scfifo_w\|scfifo:wfifo\|scfifo_jr21:auto_generated\"" { } { { "scfifo.tdf" "auto_generated" { Text "c:/altera/13.0sp1/quartus/libraries/megafunctions/scfifo.tdf" 296 3 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609267558 ""} +{ "Info" "ISGN_NUM_OF_DESIGN_UNITS_AND_ENTITIES" "db/a_dpfifo_q131.tdf 1 1 " "Found 1 design units, including 1 entities, in source file db/a_dpfifo_q131.tdf" { { "Info" "ISGN_ENTITY_NAME" "1 a_dpfifo_q131 " "Found entity 1: a_dpfifo_q131" { } { { "db/a_dpfifo_q131.tdf" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/a_dpfifo_q131.tdf" 28 1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609267585 ""} } { } 0 12021 "Found %2!llu! design units, including %3!llu! entities, in source file %1!s!" 0 0 "Quartus II" 0 -1 1480609267585 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "a_dpfifo_q131 nios_system:NiosII\|nios_system_jtag_uart:jtag_uart\|nios_system_jtag_uart_scfifo_w:the_nios_system_jtag_uart_scfifo_w\|scfifo:wfifo\|scfifo_jr21:auto_generated\|a_dpfifo_q131:dpfifo " "Elaborating entity \"a_dpfifo_q131\" for hierarchy \"nios_system:NiosII\|nios_system_jtag_uart:jtag_uart\|nios_system_jtag_uart_scfifo_w:the_nios_system_jtag_uart_scfifo_w\|scfifo:wfifo\|scfifo_jr21:auto_generated\|a_dpfifo_q131:dpfifo\"" { } { { "db/scfifo_jr21.tdf" "dpfifo" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/scfifo_jr21.tdf" 37 2 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609267588 ""} +{ "Info" "ISGN_NUM_OF_DESIGN_UNITS_AND_ENTITIES" "db/a_fefifo_7cf.tdf 1 1 " "Found 1 design units, including 1 entities, in source file db/a_fefifo_7cf.tdf" { { "Info" "ISGN_ENTITY_NAME" "1 a_fefifo_7cf " "Found entity 1: a_fefifo_7cf" { } { { "db/a_fefifo_7cf.tdf" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/a_fefifo_7cf.tdf" 24 1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609267611 ""} } { } 0 12021 "Found %2!llu! design units, including %3!llu! entities, in source file %1!s!" 0 0 "Quartus II" 0 -1 1480609267611 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "a_fefifo_7cf nios_system:NiosII\|nios_system_jtag_uart:jtag_uart\|nios_system_jtag_uart_scfifo_w:the_nios_system_jtag_uart_scfifo_w\|scfifo:wfifo\|scfifo_jr21:auto_generated\|a_dpfifo_q131:dpfifo\|a_fefifo_7cf:fifo_state " "Elaborating entity \"a_fefifo_7cf\" for hierarchy \"nios_system:NiosII\|nios_system_jtag_uart:jtag_uart\|nios_system_jtag_uart_scfifo_w:the_nios_system_jtag_uart_scfifo_w\|scfifo:wfifo\|scfifo_jr21:auto_generated\|a_dpfifo_q131:dpfifo\|a_fefifo_7cf:fifo_state\"" { } { { "db/a_dpfifo_q131.tdf" "fifo_state" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/a_dpfifo_q131.tdf" 42 2 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609267614 ""} +{ "Info" "ISGN_NUM_OF_DESIGN_UNITS_AND_ENTITIES" "db/cntr_do7.tdf 1 1 " "Found 1 design units, including 1 entities, in source file db/cntr_do7.tdf" { { "Info" "ISGN_ENTITY_NAME" "1 cntr_do7 " "Found entity 1: cntr_do7" { } { { "db/cntr_do7.tdf" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/cntr_do7.tdf" 25 1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609267703 ""} } { } 0 12021 "Found %2!llu! design units, including %3!llu! entities, in source file %1!s!" 0 0 "Quartus II" 0 -1 1480609267703 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "cntr_do7 nios_system:NiosII\|nios_system_jtag_uart:jtag_uart\|nios_system_jtag_uart_scfifo_w:the_nios_system_jtag_uart_scfifo_w\|scfifo:wfifo\|scfifo_jr21:auto_generated\|a_dpfifo_q131:dpfifo\|a_fefifo_7cf:fifo_state\|cntr_do7:count_usedw " "Elaborating entity \"cntr_do7\" for hierarchy \"nios_system:NiosII\|nios_system_jtag_uart:jtag_uart\|nios_system_jtag_uart_scfifo_w:the_nios_system_jtag_uart_scfifo_w\|scfifo:wfifo\|scfifo_jr21:auto_generated\|a_dpfifo_q131:dpfifo\|a_fefifo_7cf:fifo_state\|cntr_do7:count_usedw\"" { } { { "db/a_fefifo_7cf.tdf" "count_usedw" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/a_fefifo_7cf.tdf" 38 2 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609267705 ""} +{ "Info" "ISGN_NUM_OF_DESIGN_UNITS_AND_ENTITIES" "db/dpram_nl21.tdf 1 1 " "Found 1 design units, including 1 entities, in source file db/dpram_nl21.tdf" { { "Info" "ISGN_ENTITY_NAME" "1 dpram_nl21 " "Found entity 1: dpram_nl21" { } { { "db/dpram_nl21.tdf" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/dpram_nl21.tdf" 24 1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609267794 ""} } { } 0 12021 "Found %2!llu! design units, including %3!llu! entities, in source file %1!s!" 0 0 "Quartus II" 0 -1 1480609267794 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "dpram_nl21 nios_system:NiosII\|nios_system_jtag_uart:jtag_uart\|nios_system_jtag_uart_scfifo_w:the_nios_system_jtag_uart_scfifo_w\|scfifo:wfifo\|scfifo_jr21:auto_generated\|a_dpfifo_q131:dpfifo\|dpram_nl21:FIFOram " "Elaborating entity \"dpram_nl21\" for hierarchy \"nios_system:NiosII\|nios_system_jtag_uart:jtag_uart\|nios_system_jtag_uart_scfifo_w:the_nios_system_jtag_uart_scfifo_w\|scfifo:wfifo\|scfifo_jr21:auto_generated\|a_dpfifo_q131:dpfifo\|dpram_nl21:FIFOram\"" { } { { "db/a_dpfifo_q131.tdf" "FIFOram" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/a_dpfifo_q131.tdf" 43 2 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609267797 ""} +{ "Info" "ISGN_NUM_OF_DESIGN_UNITS_AND_ENTITIES" "db/altsyncram_r1m1.tdf 1 1 " "Found 1 design units, including 1 entities, in source file db/altsyncram_r1m1.tdf" { { "Info" "ISGN_ENTITY_NAME" "1 altsyncram_r1m1 " "Found entity 1: altsyncram_r1m1" { } { { "db/altsyncram_r1m1.tdf" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/altsyncram_r1m1.tdf" 27 1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609268450 ""} } { } 0 12021 "Found %2!llu! design units, including %3!llu! entities, in source file %1!s!" 0 0 "Quartus II" 0 -1 1480609268450 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "altsyncram_r1m1 nios_system:NiosII\|nios_system_jtag_uart:jtag_uart\|nios_system_jtag_uart_scfifo_w:the_nios_system_jtag_uart_scfifo_w\|scfifo:wfifo\|scfifo_jr21:auto_generated\|a_dpfifo_q131:dpfifo\|dpram_nl21:FIFOram\|altsyncram_r1m1:altsyncram1 " "Elaborating entity \"altsyncram_r1m1\" for hierarchy \"nios_system:NiosII\|nios_system_jtag_uart:jtag_uart\|nios_system_jtag_uart_scfifo_w:the_nios_system_jtag_uart_scfifo_w\|scfifo:wfifo\|scfifo_jr21:auto_generated\|a_dpfifo_q131:dpfifo\|dpram_nl21:FIFOram\|altsyncram_r1m1:altsyncram1\"" { } { { "db/dpram_nl21.tdf" "altsyncram1" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/dpram_nl21.tdf" 36 2 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609268452 ""} +{ "Info" "ISGN_NUM_OF_DESIGN_UNITS_AND_ENTITIES" "db/cntr_1ob.tdf 1 1 " "Found 1 design units, including 1 entities, in source file db/cntr_1ob.tdf" { { "Info" "ISGN_ENTITY_NAME" "1 cntr_1ob " "Found entity 1: cntr_1ob" { } { { "db/cntr_1ob.tdf" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/cntr_1ob.tdf" 25 1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1480609268547 ""} } { } 0 12021 "Found %2!llu! design units, including %3!llu! entities, in source file %1!s!" 0 0 "Quartus II" 0 -1 1480609268547 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "cntr_1ob nios_system:NiosII\|nios_system_jtag_uart:jtag_uart\|nios_system_jtag_uart_scfifo_w:the_nios_system_jtag_uart_scfifo_w\|scfifo:wfifo\|scfifo_jr21:auto_generated\|a_dpfifo_q131:dpfifo\|cntr_1ob:rd_ptr_count " "Elaborating entity \"cntr_1ob\" for hierarchy \"nios_system:NiosII\|nios_system_jtag_uart:jtag_uart\|nios_system_jtag_uart_scfifo_w:the_nios_system_jtag_uart_scfifo_w\|scfifo:wfifo\|scfifo_jr21:auto_generated\|a_dpfifo_q131:dpfifo\|cntr_1ob:rd_ptr_count\"" { } { { "db/a_dpfifo_q131.tdf" "rd_ptr_count" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/a_dpfifo_q131.tdf" 44 2 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609268550 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "nios_system_jtag_uart_scfifo_r nios_system:NiosII\|nios_system_jtag_uart:jtag_uart\|nios_system_jtag_uart_scfifo_r:the_nios_system_jtag_uart_scfifo_r " "Elaborating entity \"nios_system_jtag_uart_scfifo_r\" for hierarchy \"nios_system:NiosII\|nios_system_jtag_uart:jtag_uart\|nios_system_jtag_uart_scfifo_r:the_nios_system_jtag_uart_scfifo_r\"" { } { { "db/ip/nios_system/submodules/nios_system_jtag_uart.v" "the_nios_system_jtag_uart_scfifo_r" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_jtag_uart.v" 429 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609268582 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "alt_jtag_atlantic nios_system:NiosII\|nios_system_jtag_uart:jtag_uart\|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic " "Elaborating entity \"alt_jtag_atlantic\" for hierarchy \"nios_system:NiosII\|nios_system_jtag_uart:jtag_uart\|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic\"" { } { { "db/ip/nios_system/submodules/nios_system_jtag_uart.v" "nios_system_jtag_uart_alt_jtag_atlantic" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_jtag_uart.v" 564 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609268734 ""} +{ "Info" "ISGN_ELABORATION_HEADER" "nios_system:NiosII\|nios_system_jtag_uart:jtag_uart\|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic " "Elaborated megafunction instantiation \"nios_system:NiosII\|nios_system_jtag_uart:jtag_uart\|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic\"" { } { { "db/ip/nios_system/submodules/nios_system_jtag_uart.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_jtag_uart.v" 564 0 0 } } } 0 12130 "Elaborated megafunction instantiation \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609268765 ""} +{ "Info" "ISGN_MEGAFN_PARAM_TOP" "nios_system:NiosII\|nios_system_jtag_uart:jtag_uart\|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic " "Instantiated megafunction \"nios_system:NiosII\|nios_system_jtag_uart:jtag_uart\|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic\" with the following parameter:" { { "Info" "ISGN_MEGAFN_PARAM_SUB" "INSTANCE_ID 0 " "Parameter \"INSTANCE_ID\" = \"0\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609268765 ""} { "Info" "ISGN_MEGAFN_PARAM_SUB" "LOG2_RXFIFO_DEPTH 6 " "Parameter \"LOG2_RXFIFO_DEPTH\" = \"6\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609268765 ""} { "Info" "ISGN_MEGAFN_PARAM_SUB" "LOG2_TXFIFO_DEPTH 6 " "Parameter \"LOG2_TXFIFO_DEPTH\" = \"6\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609268765 ""} { "Info" "ISGN_MEGAFN_PARAM_SUB" "SLD_AUTO_INSTANCE_INDEX YES " "Parameter \"SLD_AUTO_INSTANCE_INDEX\" = \"YES\"" { } { } 0 12134 "Parameter \"%1!s!\" = \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609268765 ""} } { { "db/ip/nios_system/submodules/nios_system_jtag_uart.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_jtag_uart.v" 564 0 0 } } } 0 12133 "Instantiated megafunction \"%1!s!\" with the following parameter:" 0 0 "Quartus II" 0 -1 1480609268765 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "nios_system_LEDs nios_system:NiosII\|nios_system_LEDs:leds " "Elaborating entity \"nios_system_LEDs\" for hierarchy \"nios_system:NiosII\|nios_system_LEDs:leds\"" { } { { "nios_system/synthesis/nios_system.v" "leds" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/synthesis/nios_system.v" 1140 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609268774 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "nios_system_LEDRs nios_system:NiosII\|nios_system_LEDRs:ledrs " "Elaborating entity \"nios_system_LEDRs\" for hierarchy \"nios_system:NiosII\|nios_system_LEDRs:ledrs\"" { } { { "nios_system/synthesis/nios_system.v" "ledrs" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/synthesis/nios_system.v" 1151 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609268792 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "nios_system_switches nios_system:NiosII\|nios_system_switches:switches " "Elaborating entity \"nios_system_switches\" for hierarchy \"nios_system:NiosII\|nios_system_switches:switches\"" { } { { "nios_system/synthesis/nios_system.v" "switches" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/synthesis/nios_system.v" 1159 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609268812 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "nios_system_push_switches nios_system:NiosII\|nios_system_push_switches:push_switches " "Elaborating entity \"nios_system_push_switches\" for hierarchy \"nios_system:NiosII\|nios_system_push_switches:push_switches\"" { } { { "nios_system/synthesis/nios_system.v" "push_switches" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/synthesis/nios_system.v" 1167 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609268835 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "nios_system_hex0 nios_system:NiosII\|nios_system_hex0:hex0 " "Elaborating entity \"nios_system_hex0\" for hierarchy \"nios_system:NiosII\|nios_system_hex0:hex0\"" { } { { "nios_system/synthesis/nios_system.v" "hex0" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/synthesis/nios_system.v" 1178 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609268854 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "nios_system_lcd_16207_0 nios_system:NiosII\|nios_system_lcd_16207_0:lcd_16207_0 " "Elaborating entity \"nios_system_lcd_16207_0\" for hierarchy \"nios_system:NiosII\|nios_system_lcd_16207_0:lcd_16207_0\"" { } { { "nios_system/synthesis/nios_system.v" "lcd_16207_0" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/synthesis/nios_system.v" 1270 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609268889 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "nios_system_lcd_on nios_system:NiosII\|nios_system_lcd_on:lcd_on " "Elaborating entity \"nios_system_lcd_on\" for hierarchy \"nios_system:NiosII\|nios_system_lcd_on:lcd_on\"" { } { { "nios_system/synthesis/nios_system.v" "lcd_on" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/synthesis/nios_system.v" 1281 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609268908 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "altera_merlin_master_translator nios_system:NiosII\|altera_merlin_master_translator:nios2_processor_instruction_master_translator " "Elaborating entity \"altera_merlin_master_translator\" for hierarchy \"nios_system:NiosII\|altera_merlin_master_translator:nios2_processor_instruction_master_translator\"" { } { { "nios_system/synthesis/nios_system.v" "nios2_processor_instruction_master_translator" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/synthesis/nios_system.v" 1354 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609268928 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "altera_merlin_master_translator nios_system:NiosII\|altera_merlin_master_translator:nios2_processor_data_master_translator " "Elaborating entity \"altera_merlin_master_translator\" for hierarchy \"nios_system:NiosII\|altera_merlin_master_translator:nios2_processor_data_master_translator\"" { } { { "nios_system/synthesis/nios_system.v" "nios2_processor_data_master_translator" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/synthesis/nios_system.v" 1416 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609268956 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "altera_merlin_slave_translator nios_system:NiosII\|altera_merlin_slave_translator:nios2_processor_jtag_debug_module_translator " "Elaborating entity \"altera_merlin_slave_translator\" for hierarchy \"nios_system:NiosII\|altera_merlin_slave_translator:nios2_processor_jtag_debug_module_translator\"" { } { { "nios_system/synthesis/nios_system.v" "nios2_processor_jtag_debug_module_translator" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/synthesis/nios_system.v" 1482 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609268985 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "altera_merlin_slave_translator nios_system:NiosII\|altera_merlin_slave_translator:onchip_memory_s1_translator " "Elaborating entity \"altera_merlin_slave_translator\" for hierarchy \"nios_system:NiosII\|altera_merlin_slave_translator:onchip_memory_s1_translator\"" { } { { "nios_system/synthesis/nios_system.v" "onchip_memory_s1_translator" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/synthesis/nios_system.v" 1548 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609269019 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "altera_merlin_slave_translator nios_system:NiosII\|altera_merlin_slave_translator:leds_s1_translator " "Elaborating entity \"altera_merlin_slave_translator\" for hierarchy \"nios_system:NiosII\|altera_merlin_slave_translator:leds_s1_translator\"" { } { { "nios_system/synthesis/nios_system.v" "leds_s1_translator" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/synthesis/nios_system.v" 1614 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609269051 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "altera_merlin_slave_translator nios_system:NiosII\|altera_merlin_slave_translator:jtag_uart_avalon_jtag_slave_translator " "Elaborating entity \"altera_merlin_slave_translator\" for hierarchy \"nios_system:NiosII\|altera_merlin_slave_translator:jtag_uart_avalon_jtag_slave_translator\"" { } { { "nios_system/synthesis/nios_system.v" "jtag_uart_avalon_jtag_slave_translator" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/synthesis/nios_system.v" 1680 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609269081 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "altera_merlin_slave_translator nios_system:NiosII\|altera_merlin_slave_translator:lcd_16207_0_control_slave_translator " "Elaborating entity \"altera_merlin_slave_translator\" for hierarchy \"nios_system:NiosII\|altera_merlin_slave_translator:lcd_16207_0_control_slave_translator\"" { } { { "nios_system/synthesis/nios_system.v" "lcd_16207_0_control_slave_translator" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/synthesis/nios_system.v" 2472 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609269142 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "altera_merlin_master_agent nios_system:NiosII\|altera_merlin_master_agent:nios2_processor_instruction_master_translator_avalon_universal_master_0_agent " "Elaborating entity \"altera_merlin_master_agent\" for hierarchy \"nios_system:NiosII\|altera_merlin_master_agent:nios2_processor_instruction_master_translator_avalon_universal_master_0_agent\"" { } { { "nios_system/synthesis/nios_system.v" "nios2_processor_instruction_master_translator_avalon_universal_master_0_agent" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/synthesis/nios_system.v" 2684 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609269180 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "altera_merlin_master_agent nios_system:NiosII\|altera_merlin_master_agent:nios2_processor_data_master_translator_avalon_universal_master_0_agent " "Elaborating entity \"altera_merlin_master_agent\" for hierarchy \"nios_system:NiosII\|altera_merlin_master_agent:nios2_processor_data_master_translator_avalon_universal_master_0_agent\"" { } { { "nios_system/synthesis/nios_system.v" "nios2_processor_data_master_translator_avalon_universal_master_0_agent" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/synthesis/nios_system.v" 2764 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609269242 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "altera_merlin_slave_agent nios_system:NiosII\|altera_merlin_slave_agent:nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent " "Elaborating entity \"altera_merlin_slave_agent\" for hierarchy \"nios_system:NiosII\|altera_merlin_slave_agent:nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent\"" { } { { "nios_system/synthesis/nios_system.v" "nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/synthesis/nios_system.v" 2845 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609269266 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "altera_merlin_burst_uncompressor nios_system:NiosII\|altera_merlin_slave_agent:nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent\|altera_merlin_burst_uncompressor:uncompressor " "Elaborating entity \"altera_merlin_burst_uncompressor\" for hierarchy \"nios_system:NiosII\|altera_merlin_slave_agent:nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent\|altera_merlin_burst_uncompressor:uncompressor\"" { } { { "db/ip/nios_system/submodules/altera_merlin_slave_agent.sv" "uncompressor" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/altera_merlin_slave_agent.sv" 574 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609269302 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "altera_avalon_sc_fifo nios_system:NiosII\|altera_avalon_sc_fifo:nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo " "Elaborating entity \"altera_avalon_sc_fifo\" for hierarchy \"nios_system:NiosII\|altera_avalon_sc_fifo:nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo\"" { } { { "nios_system/synthesis/nios_system.v" "nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/synthesis/nios_system.v" 2886 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609269337 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "nios_system_addr_router nios_system:NiosII\|nios_system_addr_router:addr_router " "Elaborating entity \"nios_system_addr_router\" for hierarchy \"nios_system:NiosII\|nios_system_addr_router:addr_router\"" { } { { "nios_system/synthesis/nios_system.v" "addr_router" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/synthesis/nios_system.v" 4976 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609269535 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "nios_system_addr_router_default_decode nios_system:NiosII\|nios_system_addr_router:addr_router\|nios_system_addr_router_default_decode:the_default_decode " "Elaborating entity \"nios_system_addr_router_default_decode\" for hierarchy \"nios_system:NiosII\|nios_system_addr_router:addr_router\|nios_system_addr_router_default_decode:the_default_decode\"" { } { { "db/ip/nios_system/submodules/nios_system_addr_router.sv" "the_default_decode" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_addr_router.sv" 177 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609269571 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "nios_system_addr_router_001 nios_system:NiosII\|nios_system_addr_router_001:addr_router_001 " "Elaborating entity \"nios_system_addr_router_001\" for hierarchy \"nios_system:NiosII\|nios_system_addr_router_001:addr_router_001\"" { } { { "nios_system/synthesis/nios_system.v" "addr_router_001" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/synthesis/nios_system.v" 4992 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609269589 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "nios_system_addr_router_001_default_decode nios_system:NiosII\|nios_system_addr_router_001:addr_router_001\|nios_system_addr_router_001_default_decode:the_default_decode " "Elaborating entity \"nios_system_addr_router_001_default_decode\" for hierarchy \"nios_system:NiosII\|nios_system_addr_router_001:addr_router_001\|nios_system_addr_router_001_default_decode:the_default_decode\"" { } { { "db/ip/nios_system/submodules/nios_system_addr_router_001.sv" "the_default_decode" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_addr_router_001.sv" 193 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609269655 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "nios_system_id_router nios_system:NiosII\|nios_system_id_router:id_router " "Elaborating entity \"nios_system_id_router\" for hierarchy \"nios_system:NiosII\|nios_system_id_router:id_router\"" { } { { "nios_system/synthesis/nios_system.v" "id_router" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/synthesis/nios_system.v" 5008 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609269670 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "nios_system_id_router_default_decode nios_system:NiosII\|nios_system_id_router:id_router\|nios_system_id_router_default_decode:the_default_decode " "Elaborating entity \"nios_system_id_router_default_decode\" for hierarchy \"nios_system:NiosII\|nios_system_id_router:id_router\|nios_system_id_router_default_decode:the_default_decode\"" { } { { "db/ip/nios_system/submodules/nios_system_id_router.sv" "the_default_decode" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_id_router.sv" 175 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609269696 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "nios_system_id_router_002 nios_system:NiosII\|nios_system_id_router_002:id_router_002 " "Elaborating entity \"nios_system_id_router_002\" for hierarchy \"nios_system:NiosII\|nios_system_id_router_002:id_router_002\"" { } { { "nios_system/synthesis/nios_system.v" "id_router_002" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/synthesis/nios_system.v" 5040 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609269717 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "nios_system_id_router_002_default_decode nios_system:NiosII\|nios_system_id_router_002:id_router_002\|nios_system_id_router_002_default_decode:the_default_decode " "Elaborating entity \"nios_system_id_router_002_default_decode\" for hierarchy \"nios_system:NiosII\|nios_system_id_router_002:id_router_002\|nios_system_id_router_002_default_decode:the_default_decode\"" { } { { "db/ip/nios_system/submodules/nios_system_id_router_002.sv" "the_default_decode" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_id_router_002.sv" 175 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609269739 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "altera_reset_controller nios_system:NiosII\|altera_reset_controller:rst_controller " "Elaborating entity \"altera_reset_controller\" for hierarchy \"nios_system:NiosII\|altera_reset_controller:rst_controller\"" { } { { "nios_system/synthesis/nios_system.v" "rst_controller" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/synthesis/nios_system.v" 5307 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609269835 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "altera_reset_synchronizer nios_system:NiosII\|altera_reset_controller:rst_controller\|altera_reset_synchronizer:alt_rst_sync_uq1 " "Elaborating entity \"altera_reset_synchronizer\" for hierarchy \"nios_system:NiosII\|altera_reset_controller:rst_controller\|altera_reset_synchronizer:alt_rst_sync_uq1\"" { } { { "db/ip/nios_system/submodules/altera_reset_controller.v" "alt_rst_sync_uq1" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/altera_reset_controller.v" 120 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609269858 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "nios_system_cmd_xbar_demux nios_system:NiosII\|nios_system_cmd_xbar_demux:cmd_xbar_demux " "Elaborating entity \"nios_system_cmd_xbar_demux\" for hierarchy \"nios_system:NiosII\|nios_system_cmd_xbar_demux:cmd_xbar_demux\"" { } { { "nios_system/synthesis/nios_system.v" "cmd_xbar_demux" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/synthesis/nios_system.v" 5330 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609269883 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "nios_system_cmd_xbar_demux_001 nios_system:NiosII\|nios_system_cmd_xbar_demux_001:cmd_xbar_demux_001 " "Elaborating entity \"nios_system_cmd_xbar_demux_001\" for hierarchy \"nios_system:NiosII\|nios_system_cmd_xbar_demux_001:cmd_xbar_demux_001\"" { } { { "nios_system/synthesis/nios_system.v" "cmd_xbar_demux_001" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/synthesis/nios_system.v" 5449 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609269910 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "nios_system_cmd_xbar_mux nios_system:NiosII\|nios_system_cmd_xbar_mux:cmd_xbar_mux " "Elaborating entity \"nios_system_cmd_xbar_mux\" for hierarchy \"nios_system:NiosII\|nios_system_cmd_xbar_mux:cmd_xbar_mux\"" { } { { "nios_system/synthesis/nios_system.v" "cmd_xbar_mux" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/synthesis/nios_system.v" 5472 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609269979 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "altera_merlin_arbitrator nios_system:NiosII\|nios_system_cmd_xbar_mux:cmd_xbar_mux\|altera_merlin_arbitrator:arb " "Elaborating entity \"altera_merlin_arbitrator\" for hierarchy \"nios_system:NiosII\|nios_system_cmd_xbar_mux:cmd_xbar_mux\|altera_merlin_arbitrator:arb\"" { } { { "db/ip/nios_system/submodules/nios_system_cmd_xbar_mux.sv" "arb" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_cmd_xbar_mux.sv" 273 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609270014 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "altera_merlin_arb_adder nios_system:NiosII\|nios_system_cmd_xbar_mux:cmd_xbar_mux\|altera_merlin_arbitrator:arb\|altera_merlin_arb_adder:adder " "Elaborating entity \"altera_merlin_arb_adder\" for hierarchy \"nios_system:NiosII\|nios_system_cmd_xbar_mux:cmd_xbar_mux\|altera_merlin_arbitrator:arb\|altera_merlin_arb_adder:adder\"" { } { { "db/ip/nios_system/submodules/altera_merlin_arbitrator.sv" "adder" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/altera_merlin_arbitrator.sv" 169 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609270033 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "nios_system_rsp_xbar_demux_002 nios_system:NiosII\|nios_system_rsp_xbar_demux_002:rsp_xbar_demux_002 " "Elaborating entity \"nios_system_rsp_xbar_demux_002\" for hierarchy \"nios_system:NiosII\|nios_system_rsp_xbar_demux_002:rsp_xbar_demux_002\"" { } { { "nios_system/synthesis/nios_system.v" "rsp_xbar_demux_002" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/synthesis/nios_system.v" 5558 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609270061 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "nios_system_rsp_xbar_mux nios_system:NiosII\|nios_system_rsp_xbar_mux:rsp_xbar_mux " "Elaborating entity \"nios_system_rsp_xbar_mux\" for hierarchy \"nios_system:NiosII\|nios_system_rsp_xbar_mux:rsp_xbar_mux\"" { } { { "nios_system/synthesis/nios_system.v" "rsp_xbar_mux" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/synthesis/nios_system.v" 5836 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609270124 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "altera_merlin_arbitrator nios_system:NiosII\|nios_system_rsp_xbar_mux:rsp_xbar_mux\|altera_merlin_arbitrator:arb " "Elaborating entity \"altera_merlin_arbitrator\" for hierarchy \"nios_system:NiosII\|nios_system_rsp_xbar_mux:rsp_xbar_mux\|altera_merlin_arbitrator:arb\"" { } { { "db/ip/nios_system/submodules/nios_system_rsp_xbar_mux.sv" "arb" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_rsp_xbar_mux.sv" 296 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609270155 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "nios_system_rsp_xbar_mux_001 nios_system:NiosII\|nios_system_rsp_xbar_mux_001:rsp_xbar_mux_001 " "Elaborating entity \"nios_system_rsp_xbar_mux_001\" for hierarchy \"nios_system:NiosII\|nios_system_rsp_xbar_mux_001:rsp_xbar_mux_001\"" { } { { "nios_system/synthesis/nios_system.v" "rsp_xbar_mux_001" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/synthesis/nios_system.v" 5955 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609270177 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "altera_merlin_arbitrator nios_system:NiosII\|nios_system_rsp_xbar_mux_001:rsp_xbar_mux_001\|altera_merlin_arbitrator:arb " "Elaborating entity \"altera_merlin_arbitrator\" for hierarchy \"nios_system:NiosII\|nios_system_rsp_xbar_mux_001:rsp_xbar_mux_001\|altera_merlin_arbitrator:arb\"" { } { { "db/ip/nios_system/submodules/nios_system_rsp_xbar_mux_001.sv" "arb" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_rsp_xbar_mux_001.sv" 552 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609270333 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "altera_merlin_arb_adder nios_system:NiosII\|nios_system_rsp_xbar_mux_001:rsp_xbar_mux_001\|altera_merlin_arbitrator:arb\|altera_merlin_arb_adder:adder " "Elaborating entity \"altera_merlin_arb_adder\" for hierarchy \"nios_system:NiosII\|nios_system_rsp_xbar_mux_001:rsp_xbar_mux_001\|altera_merlin_arbitrator:arb\|altera_merlin_arb_adder:adder\"" { } { { "db/ip/nios_system/submodules/altera_merlin_arbitrator.sv" "adder" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/altera_merlin_arbitrator.sv" 169 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609270353 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "nios_system_irq_mapper nios_system:NiosII\|nios_system_irq_mapper:irq_mapper " "Elaborating entity \"nios_system_irq_mapper\" for hierarchy \"nios_system:NiosII\|nios_system_irq_mapper:irq_mapper\"" { } { { "nios_system/synthesis/nios_system.v" "irq_mapper" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/synthesis/nios_system.v" 5962 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1480609270368 ""} +{ "Warning" "WSGN_CONNECTIVITY_WARNINGS" "5 " "5 hierarchies have connectivity warnings - see the Connectivity Checks report folder" { } { } 0 12241 "%1!d! hierarchies have connectivity warnings - see the Connectivity Checks report folder" 0 0 "Quartus II" 0 -1 1480609279462 ""} +{ "Warning" "WMLS_MLS_CONVERT_TRI_TO_OR_HDR" "" "Tri-state node(s) do not directly drive top-level pin(s)" { { "Warning" "WMLS_MLS_CONVERT_TRI_TO_OR" "nios_system:NiosII\|nios_system_lcd_16207_0:lcd_16207_0\|LCD_data\[0\] nios_system:NiosII\|altera_merlin_slave_translator:lcd_16207_0_control_slave_translator\|av_readdata_pre\[0\] " "Converted the fan-out from the tri-state buffer \"nios_system:NiosII\|nios_system_lcd_16207_0:lcd_16207_0\|LCD_data\[0\]\" to the node \"nios_system:NiosII\|altera_merlin_slave_translator:lcd_16207_0_control_slave_translator\|av_readdata_pre\[0\]\" into an OR gate" { } { { "db/ip/nios_system/submodules/nios_system_lcd_16207_0.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_lcd_16207_0.v" 43 -1 0 } } } 0 13047 "Converted the fan-out from the tri-state buffer \"%1!s!\" to the node \"%2!s!\" into an OR gate" 0 0 "Quartus II" 0 -1 1480609279649 ""} { "Warning" "WMLS_MLS_CONVERT_TRI_TO_OR" "nios_system:NiosII\|nios_system_lcd_16207_0:lcd_16207_0\|LCD_data\[1\] nios_system:NiosII\|altera_merlin_slave_translator:lcd_16207_0_control_slave_translator\|av_readdata_pre\[1\] " "Converted the fan-out from the tri-state buffer \"nios_system:NiosII\|nios_system_lcd_16207_0:lcd_16207_0\|LCD_data\[1\]\" to the node \"nios_system:NiosII\|altera_merlin_slave_translator:lcd_16207_0_control_slave_translator\|av_readdata_pre\[1\]\" into an OR gate" { } { { "db/ip/nios_system/submodules/nios_system_lcd_16207_0.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_lcd_16207_0.v" 43 -1 0 } } } 0 13047 "Converted the fan-out from the tri-state buffer \"%1!s!\" to the node \"%2!s!\" into an OR gate" 0 0 "Quartus II" 0 -1 1480609279649 ""} { "Warning" "WMLS_MLS_CONVERT_TRI_TO_OR" "nios_system:NiosII\|nios_system_lcd_16207_0:lcd_16207_0\|LCD_data\[2\] nios_system:NiosII\|altera_merlin_slave_translator:lcd_16207_0_control_slave_translator\|av_readdata_pre\[2\] " "Converted the fan-out from the tri-state buffer \"nios_system:NiosII\|nios_system_lcd_16207_0:lcd_16207_0\|LCD_data\[2\]\" to the node \"nios_system:NiosII\|altera_merlin_slave_translator:lcd_16207_0_control_slave_translator\|av_readdata_pre\[2\]\" into an OR gate" { } { { "db/ip/nios_system/submodules/nios_system_lcd_16207_0.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_lcd_16207_0.v" 43 -1 0 } } } 0 13047 "Converted the fan-out from the tri-state buffer \"%1!s!\" to the node \"%2!s!\" into an OR gate" 0 0 "Quartus II" 0 -1 1480609279649 ""} { "Warning" "WMLS_MLS_CONVERT_TRI_TO_OR" "nios_system:NiosII\|nios_system_lcd_16207_0:lcd_16207_0\|LCD_data\[3\] nios_system:NiosII\|altera_merlin_slave_translator:lcd_16207_0_control_slave_translator\|av_readdata_pre\[3\] " "Converted the fan-out from the tri-state buffer \"nios_system:NiosII\|nios_system_lcd_16207_0:lcd_16207_0\|LCD_data\[3\]\" to the node \"nios_system:NiosII\|altera_merlin_slave_translator:lcd_16207_0_control_slave_translator\|av_readdata_pre\[3\]\" into an OR gate" { } { { "db/ip/nios_system/submodules/nios_system_lcd_16207_0.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_lcd_16207_0.v" 43 -1 0 } } } 0 13047 "Converted the fan-out from the tri-state buffer \"%1!s!\" to the node \"%2!s!\" into an OR gate" 0 0 "Quartus II" 0 -1 1480609279649 ""} { "Warning" "WMLS_MLS_CONVERT_TRI_TO_OR" "nios_system:NiosII\|nios_system_lcd_16207_0:lcd_16207_0\|LCD_data\[4\] nios_system:NiosII\|altera_merlin_slave_translator:lcd_16207_0_control_slave_translator\|av_readdata_pre\[4\] " "Converted the fan-out from the tri-state buffer \"nios_system:NiosII\|nios_system_lcd_16207_0:lcd_16207_0\|LCD_data\[4\]\" to the node \"nios_system:NiosII\|altera_merlin_slave_translator:lcd_16207_0_control_slave_translator\|av_readdata_pre\[4\]\" into an OR gate" { } { { "db/ip/nios_system/submodules/nios_system_lcd_16207_0.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_lcd_16207_0.v" 43 -1 0 } } } 0 13047 "Converted the fan-out from the tri-state buffer \"%1!s!\" to the node \"%2!s!\" into an OR gate" 0 0 "Quartus II" 0 -1 1480609279649 ""} { "Warning" "WMLS_MLS_CONVERT_TRI_TO_OR" "nios_system:NiosII\|nios_system_lcd_16207_0:lcd_16207_0\|LCD_data\[5\] nios_system:NiosII\|altera_merlin_slave_translator:lcd_16207_0_control_slave_translator\|av_readdata_pre\[5\] " "Converted the fan-out from the tri-state buffer \"nios_system:NiosII\|nios_system_lcd_16207_0:lcd_16207_0\|LCD_data\[5\]\" to the node \"nios_system:NiosII\|altera_merlin_slave_translator:lcd_16207_0_control_slave_translator\|av_readdata_pre\[5\]\" into an OR gate" { } { { "db/ip/nios_system/submodules/nios_system_lcd_16207_0.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_lcd_16207_0.v" 43 -1 0 } } } 0 13047 "Converted the fan-out from the tri-state buffer \"%1!s!\" to the node \"%2!s!\" into an OR gate" 0 0 "Quartus II" 0 -1 1480609279649 ""} { "Warning" "WMLS_MLS_CONVERT_TRI_TO_OR" "nios_system:NiosII\|nios_system_lcd_16207_0:lcd_16207_0\|LCD_data\[6\] nios_system:NiosII\|altera_merlin_slave_translator:lcd_16207_0_control_slave_translator\|av_readdata_pre\[6\] " "Converted the fan-out from the tri-state buffer \"nios_system:NiosII\|nios_system_lcd_16207_0:lcd_16207_0\|LCD_data\[6\]\" to the node \"nios_system:NiosII\|altera_merlin_slave_translator:lcd_16207_0_control_slave_translator\|av_readdata_pre\[6\]\" into an OR gate" { } { { "db/ip/nios_system/submodules/nios_system_lcd_16207_0.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_lcd_16207_0.v" 43 -1 0 } } } 0 13047 "Converted the fan-out from the tri-state buffer \"%1!s!\" to the node \"%2!s!\" into an OR gate" 0 0 "Quartus II" 0 -1 1480609279649 ""} { "Warning" "WMLS_MLS_CONVERT_TRI_TO_OR" "nios_system:NiosII\|nios_system_lcd_16207_0:lcd_16207_0\|LCD_data\[7\] nios_system:NiosII\|altera_merlin_slave_translator:lcd_16207_0_control_slave_translator\|av_readdata_pre\[7\] " "Converted the fan-out from the tri-state buffer \"nios_system:NiosII\|nios_system_lcd_16207_0:lcd_16207_0\|LCD_data\[7\]\" to the node \"nios_system:NiosII\|altera_merlin_slave_translator:lcd_16207_0_control_slave_translator\|av_readdata_pre\[7\]\" into an OR gate" { } { { "db/ip/nios_system/submodules/nios_system_lcd_16207_0.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_lcd_16207_0.v" 43 -1 0 } } } 0 13047 "Converted the fan-out from the tri-state buffer \"%1!s!\" to the node \"%2!s!\" into an OR gate" 0 0 "Quartus II" 0 -1 1480609279649 ""} } { } 0 13046 "Tri-state node(s) do not directly drive top-level pin(s)" 0 0 "Quartus II" 0 -1 1480609279649 ""} +{ "Info" "IMLS_MLS_PRESET_POWER_UP" "" "Registers with preset signals will power-up high" { } { { "db/ip/nios_system/submodules/altera_merlin_master_agent.sv" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/altera_merlin_master_agent.sv" 276 -1 0 } } { "db/ip/nios_system/submodules/nios_system_jtag_uart.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_jtag_uart.v" 348 -1 0 } } { "db/ip/nios_system/submodules/nios_system_nios2_processor.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor.v" 3167 -1 0 } } { "db/ip/nios_system/submodules/altera_merlin_arbitrator.sv" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/altera_merlin_arbitrator.sv" 203 -1 0 } } { "alt_jtag_atlantic.v" "" { Text "c:/altera/13.0sp1/quartus/libraries/megafunctions/alt_jtag_atlantic.v" 291 -1 0 } } { "db/ip/nios_system/submodules/nios_system_nios2_processor.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor.v" 3740 -1 0 } } { "db/ip/nios_system/submodules/nios_system_jtag_uart.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_jtag_uart.v" 393 -1 0 } } { "db/ip/nios_system/submodules/nios_system_nios2_processor.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor.v" 599 -1 0 } } { "alt_jtag_atlantic.v" "" { Text "c:/altera/13.0sp1/quartus/libraries/megafunctions/alt_jtag_atlantic.v" 224 -1 0 } } { "db/ip/nios_system/submodules/altera_reset_synchronizer.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/altera_reset_synchronizer.v" 62 -1 0 } } } 0 13000 "Registers with preset signals will power-up high" 0 0 "Quartus II" 0 -1 1480609279714 ""} +{ "Info" "IMLS_MLS_DEV_CLRN_SETS_REGISTERS" "" "DEV_CLRn pin will set, and not reset, register with preset signal due to NOT Gate Push-Back" { } { } 0 13003 "DEV_CLRn pin will set, and not reset, register with preset signal due to NOT Gate Push-Back" 0 0 "Quartus II" 0 -1 1480609279714 ""} +{ "Info" "ISUTIL_TIMING_DRIVEN_SYNTHESIS_RUNNING_ON_PARTITION" "Top " "Timing-Driven Synthesis is running on partition \"Top\"" { } { } 0 286031 "Timing-Driven Synthesis is running on partition \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609281555 ""} +{ "Info" "ISCL_SCL_LOST_FANOUT_MSG_HDR" "166 " "166 registers lost all their fanouts during netlist optimizations." { } { } 0 17049 "%1!d! registers lost all their fanouts during netlist optimizations." 0 0 "Quartus II" 0 -1 1480609284267 ""} +{ "Info" "IMLS_MLS_PRESET_POWER_UP" "" "Registers with preset signals will power-up high" { } { { "sld_jtag_hub.vhd" "" { Text "c:/altera/13.0sp1/quartus/libraries/megafunctions/sld_jtag_hub.vhd" 384 -1 0 } } { "sld_jtag_hub.vhd" "" { Text "c:/altera/13.0sp1/quartus/libraries/megafunctions/sld_jtag_hub.vhd" 521 -1 0 } } } 0 13000 "Registers with preset signals will power-up high" 0 0 "Quartus II" 0 -1 1480609284431 ""} +{ "Info" "IMLS_MLS_DEV_CLRN_SETS_REGISTERS" "" "DEV_CLRn pin will set, and not reset, register with preset signal due to NOT Gate Push-Back" { } { } 0 13003 "DEV_CLRn pin will set, and not reset, register with preset signal due to NOT Gate Push-Back" 0 0 "Quartus II" 0 -1 1480609284431 ""} +{ "Warning" "WMLS_MLS_STUCK_PIN_HDR" "" "Output pins are stuck at VCC or GND" { { "Warning" "WMLS_MLS_STUCK_PIN" "sld_hub:auto_hub\|receive\[0\]\[0\] GND " "Pin \"sld_hub:auto_hub\|receive\[0\]\[0\]\" is stuck at GND" { } { { "sld_hub.vhd" "" { Text "c:/altera/13.0sp1/quartus/libraries/megafunctions/sld_hub.vhd" 181 -1 0 } } } 0 13410 "Pin \"%1!s!\" is stuck at %2!s!" 0 0 "Quartus II" 0 -1 1480609284529 "|lights|sld_hub:auto_hub|receive[0][0]"} } { } 0 13024 "Output pins are stuck at VCC or GND" 0 0 "Quartus II" 0 -1 1480609284529 ""} +{ "Info" "ISUTIL_TIMING_DRIVEN_SYNTHESIS_RUNNING_ON_PARTITION" "sld_hub:auto_hub " "Timing-Driven Synthesis is running on partition \"sld_hub:auto_hub\"" { } { } 0 286031 "Timing-Driven Synthesis is running on partition \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609284691 ""} +{ "Info" "IRDB_WROTE_SUPPRESSED_MSGS" "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/output_files/lights.map.smsg " "Generated suppressed messages file C:/Users/takayun/Documents/DE2-115/qsys_tutorial/output_files/lights.map.smsg" { } { } 0 144001 "Generated suppressed messages file %1!s!" 0 0 "Quartus II" 0 -1 1480609285369 ""} +{ "Info" "IBPM_HARD_BLOCK_PARTITION_CREATED" "hard_block:auto_generated_inst " "Generating hard_block partition \"hard_block:auto_generated_inst\"" { { "Info" "IBPM_HARD_BLOCK_PARTITION_NODE" "0 0 0 0 0 " "Adding 0 node(s), including 0 DDIO, 0 PLL, 0 transceiver and 0 LCELL" { } { } 0 16011 "Adding %1!d! node(s), including %2!d! DDIO, %3!d! PLL, %4!d! transceiver and %5!d! LCELL" 0 0 "Quartus II" 0 -1 1480609286405 ""} } { } 0 16010 "Generating hard_block partition \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609286405 ""} +{ "Info" "ICUT_CUT_TM_SUMMARY" "2880 " "Implemented 2880 device resources after synthesis - the final resource count might be different" { { "Info" "ICUT_CUT_TM_IPINS" "26 " "Implemented 26 input pins" { } { } 0 21058 "Implemented %1!d! input pins" 0 0 "Quartus II" 0 -1 1480609287063 ""} { "Info" "ICUT_CUT_TM_OPINS" "96 " "Implemented 96 output pins" { } { } 0 21059 "Implemented %1!d! output pins" 0 0 "Quartus II" 0 -1 1480609287063 ""} { "Info" "ICUT_CUT_TM_LCELLS" "2421 " "Implemented 2421 logic cells" { } { } 0 21061 "Implemented %1!d! logic cells" 0 0 "Quartus II" 0 -1 1480609287063 ""} { "Info" "ICUT_CUT_TM_RAMS" "336 " "Implemented 336 RAM segments" { } { } 0 21064 "Implemented %1!d! RAM segments" 0 0 "Quartus II" 0 -1 1480609287063 ""} } { } 0 21057 "Implemented %1!d! device resources after synthesis - the final resource count might be different" 0 0 "Quartus II" 0 -1 1480609287063 ""} +{ "Info" "IQEXE_ERROR_COUNT" "Analysis & Synthesis 0 s 150 s Quartus II 64-Bit " "Quartus II 64-Bit Analysis & Synthesis was successful. 0 errors, 150 warnings" { { "Info" "IQEXE_END_PEAK_VSIZE_MEMORY" "650 " "Peak virtual memory: 650 megabytes" { } { } 0 0 "Peak virtual memory: %1!s! megabytes" 0 0 "Quartus II" 0 -1 1480609287183 ""} { "Info" "IQEXE_END_BANNER_TIME" "Fri Dec 02 01:21:27 2016 " "Processing ended: Fri Dec 02 01:21:27 2016" { } { } 0 0 "Processing ended: %1!s!" 0 0 "Quartus II" 0 -1 1480609287183 ""} { "Info" "IQEXE_ELAPSED_TIME" "00:00:44 " "Elapsed time: 00:00:44" { } { } 0 0 "Elapsed time: %1!s!" 0 0 "Quartus II" 0 -1 1480609287183 ""} { "Info" "IQEXE_ELAPSED_CPU_TIME" "00:00:39 " "Total CPU time (on all processors): 00:00:39" { } { } 0 0 "Total CPU time (on all processors): %1!s!" 0 0 "Quartus II" 0 -1 1480609287183 ""} } { } 0 0 "%6!s! %1!s! was successful. %2!d! error%3!s!, %4!d! warning%5!s!" 0 0 "Quartus II" 0 -1 1480609287183 ""} +{ "Info" "IQEXE_SEPARATOR" "" "*******************************************************************" { } { } 3 0 "*******************************************************************" 0 0 "Quartus II" 0 -1 1480609288328 ""} +{ "Info" "IQEXE_START_BANNER_PRODUCT" "Fitter Quartus II 64-Bit " "Running Quartus II 64-Bit Fitter" { { "Info" "IQEXE_START_BANNER_VERSION" "Version 13.0.1 Build 232 06/12/2013 Service Pack 1 SJ Web Edition " "Version 13.0.1 Build 232 06/12/2013 Service Pack 1 SJ Web Edition" { } { } 0 0 "%1!s!" 0 0 "Quartus II" 0 -1 1480609288329 ""} { "Info" "IQEXE_START_BANNER_TIME" "Fri Dec 02 01:21:27 2016 " "Processing started: Fri Dec 02 01:21:27 2016" { } { } 0 0 "Processing started: %1!s!" 0 0 "Quartus II" 0 -1 1480609288329 ""} } { } 4 0 "Running %2!s! %1!s!" 0 0 "Fitter" 0 -1 1480609288329 ""} +{ "Info" "IQEXE_START_BANNER_COMMANDLINE" "quartus_fit --read_settings_files=off --write_settings_files=off lights -c lights " "Command: quartus_fit --read_settings_files=off --write_settings_files=off lights -c lights" { } { } 0 0 "Command: %1!s!" 0 0 "Fitter" 0 -1 1480609288329 ""} +{ "Info" "0" "" "qfit2_default_script.tcl version: #1" { } { } 0 0 "qfit2_default_script.tcl version: #1" 0 0 "Fitter" 0 0 1480609288398 ""} +{ "Info" "0" "" "Project = lights" { } { } 0 0 "Project = lights" 0 0 "Fitter" 0 0 1480609288399 ""} +{ "Info" "0" "" "Revision = lights" { } { } 0 0 "Revision = lights" 0 0 "Fitter" 0 0 1480609288399 ""} +{ "Warning" "WQCU_PARALLEL_NO_LICENSE" "" "Parallel compilation is not licensed and has been disabled" { } { } 0 20028 "Parallel compilation is not licensed and has been disabled" 0 0 "Fitter" 0 -1 1480609288552 ""} +{ "Info" "IMPP_MPP_USER_DEVICE" "lights EP4CE115F29C7 " "Selected device EP4CE115F29C7 for design \"lights\"" { } { } 0 119006 "Selected device %2!s! for design \"%1!s!\"" 0 0 "Fitter" 0 -1 1480609288596 ""} +{ "Info" "ICUT_CUT_USING_OPERATING_CONDITION" "Core supply voltage 1.2V " "Core supply voltage is 1.2V" { } { } 0 21077 "%1!s! is %2!s!" 0 0 "Fitter" 0 -1 1480609288662 ""} +{ "Info" "ICUT_CUT_USING_OPERATING_CONDITION" "Low junction temperature 0 degrees C " "Low junction temperature is 0 degrees C" { } { } 0 21077 "%1!s! is %2!s!" 0 0 "Fitter" 0 -1 1480609288662 ""} +{ "Info" "ICUT_CUT_USING_OPERATING_CONDITION" "High junction temperature 85 degrees C " "High junction temperature is 85 degrees C" { } { } 0 21077 "%1!s! is %2!s!" 0 0 "Fitter" 0 -1 1480609288662 ""} +{ "Info" "IFITCC_FITCC_INFO_AUTO_FIT_COMPILATION_ON" "" "Fitter is performing an Auto Fit compilation, which may decrease Fitter effort to reduce compilation time" { } { } 0 171003 "Fitter is performing an Auto Fit compilation, which may decrease Fitter effort to reduce compilation time" 0 0 "Fitter" 0 -1 1480609288891 ""} +{ "Warning" "WCPT_FEATURE_DISABLED_POST" "LogicLock " "Feature LogicLock is only available with a valid subscription license. You can purchase a software subscription to gain full access to this feature." { } { } 0 292013 "Feature %1!s! is only available with a valid subscription license. You can purchase a software subscription to gain full access to this feature." 0 0 "Fitter" 0 -1 1480609288902 ""} +{ "Info" "IFSAC_FSAC_MIGRATION_NOT_SELECTED" "" "Device migration not selected. If you intend to use device migration later, you may need to change the pin assignments as they may be incompatible with other devices" { { "Info" "IFSAC_FSAC_MIGRATION_NOT_SELECTED_SUB" "EP4CE40F29C7 " "Device EP4CE40F29C7 is compatible" { } { } 2 176445 "Device %1!s! is compatible" 0 0 "Quartus II" 0 -1 1480609289561 ""} { "Info" "IFSAC_FSAC_MIGRATION_NOT_SELECTED_SUB" "EP4CE40F29I7 " "Device EP4CE40F29I7 is compatible" { } { } 2 176445 "Device %1!s! is compatible" 0 0 "Quartus II" 0 -1 1480609289561 ""} { "Info" "IFSAC_FSAC_MIGRATION_NOT_SELECTED_SUB" "EP4CE30F29C7 " "Device EP4CE30F29C7 is compatible" { } { } 2 176445 "Device %1!s! is compatible" 0 0 "Quartus II" 0 -1 1480609289561 ""} { "Info" "IFSAC_FSAC_MIGRATION_NOT_SELECTED_SUB" "EP4CE30F29I7 " "Device EP4CE30F29I7 is compatible" { } { } 2 176445 "Device %1!s! is compatible" 0 0 "Quartus II" 0 -1 1480609289561 ""} { "Info" "IFSAC_FSAC_MIGRATION_NOT_SELECTED_SUB" "EP4CE55F29C7 " "Device EP4CE55F29C7 is compatible" { } { } 2 176445 "Device %1!s! is compatible" 0 0 "Quartus II" 0 -1 1480609289561 ""} { "Info" "IFSAC_FSAC_MIGRATION_NOT_SELECTED_SUB" "EP4CE55F29I7 " "Device EP4CE55F29I7 is compatible" { } { } 2 176445 "Device %1!s! is compatible" 0 0 "Quartus II" 0 -1 1480609289561 ""} { "Info" "IFSAC_FSAC_MIGRATION_NOT_SELECTED_SUB" "EP4CE75F29C7 " "Device EP4CE75F29C7 is compatible" { } { } 2 176445 "Device %1!s! is compatible" 0 0 "Quartus II" 0 -1 1480609289561 ""} { "Info" "IFSAC_FSAC_MIGRATION_NOT_SELECTED_SUB" "EP4CE75F29I7 " "Device EP4CE75F29I7 is compatible" { } { } 2 176445 "Device %1!s! is compatible" 0 0 "Quartus II" 0 -1 1480609289561 ""} { "Info" "IFSAC_FSAC_MIGRATION_NOT_SELECTED_SUB" "EP4CE115F29I7 " "Device EP4CE115F29I7 is compatible" { } { } 2 176445 "Device %1!s! is compatible" 0 0 "Quartus II" 0 -1 1480609289561 ""} } { } 2 176444 "Device migration not selected. If you intend to use device migration later, you may need to change the pin assignments as they may be incompatible with other devices" 0 0 "Fitter" 0 -1 1480609289561 ""} +{ "Info" "IFIOMGR_RESERVED_PIN_WITH_LOCATION" "5 " "Fitter converted 5 user pins into dedicated programming pins" { { "Info" "IFIOMGR_RESERVED_PIN_WITH_LOCATION_SUB" "~ALTERA_ASDO_DATA1~ F4 " "Pin ~ALTERA_ASDO_DATA1~ is reserved at location F4" { } { { "c:/altera/13.0sp1/quartus/bin64/pin_planner.ppl" "" { PinPlanner "c:/altera/13.0sp1/quartus/bin64/pin_planner.ppl" { ~ALTERA_ASDO_DATA1~ } } } { "c:/altera/13.0sp1/quartus/bin64/TimingClosureFloorplan.fld" "" { Floorplan "c:/altera/13.0sp1/quartus/bin64/TimingClosureFloorplan.fld" "" "" { ~ALTERA_ASDO_DATA1~ } "NODE_NAME" } } { "temporary_test_loc" "" { Generic "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/" { { 0 { 0 ""} 0 11997 9224 9983 0} } } } } 0 169125 "Pin %1!s! is reserved at location %2!s!" 0 0 "Quartus II" 0 -1 1480609289572 ""} { "Info" "IFIOMGR_RESERVED_PIN_WITH_LOCATION_SUB" "~ALTERA_FLASH_nCE_nCSO~ E2 " "Pin ~ALTERA_FLASH_nCE_nCSO~ is reserved at location E2" { } { { "c:/altera/13.0sp1/quartus/bin64/pin_planner.ppl" "" { PinPlanner "c:/altera/13.0sp1/quartus/bin64/pin_planner.ppl" { ~ALTERA_FLASH_nCE_nCSO~ } } } { "c:/altera/13.0sp1/quartus/bin64/TimingClosureFloorplan.fld" "" { Floorplan "c:/altera/13.0sp1/quartus/bin64/TimingClosureFloorplan.fld" "" "" { ~ALTERA_FLASH_nCE_nCSO~ } "NODE_NAME" } } { "temporary_test_loc" "" { Generic "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/" { { 0 { 0 ""} 0 11999 9224 9983 0} } } } } 0 169125 "Pin %1!s! is reserved at location %2!s!" 0 0 "Quartus II" 0 -1 1480609289572 ""} { "Info" "IFIOMGR_RESERVED_PIN_WITH_LOCATION_SUB" "~ALTERA_DCLK~ P3 " "Pin ~ALTERA_DCLK~ is reserved at location P3" { } { { "c:/altera/13.0sp1/quartus/bin64/pin_planner.ppl" "" { PinPlanner "c:/altera/13.0sp1/quartus/bin64/pin_planner.ppl" { ~ALTERA_DCLK~ } } } { "c:/altera/13.0sp1/quartus/bin64/TimingClosureFloorplan.fld" "" { Floorplan "c:/altera/13.0sp1/quartus/bin64/TimingClosureFloorplan.fld" "" "" { ~ALTERA_DCLK~ } "NODE_NAME" } } { "temporary_test_loc" "" { Generic "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/" { { 0 { 0 ""} 0 12001 9224 9983 0} } } } } 0 169125 "Pin %1!s! is reserved at location %2!s!" 0 0 "Quartus II" 0 -1 1480609289572 ""} { "Info" "IFIOMGR_RESERVED_PIN_WITH_LOCATION_SUB" "~ALTERA_DATA0~ N7 " "Pin ~ALTERA_DATA0~ is reserved at location N7" { } { { "c:/altera/13.0sp1/quartus/bin64/pin_planner.ppl" "" { PinPlanner "c:/altera/13.0sp1/quartus/bin64/pin_planner.ppl" { ~ALTERA_DATA0~ } } } { "c:/altera/13.0sp1/quartus/bin64/TimingClosureFloorplan.fld" "" { Floorplan "c:/altera/13.0sp1/quartus/bin64/TimingClosureFloorplan.fld" "" "" { ~ALTERA_DATA0~ } "NODE_NAME" } } { "temporary_test_loc" "" { Generic "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/" { { 0 { 0 ""} 0 12003 9224 9983 0} } } } } 0 169125 "Pin %1!s! is reserved at location %2!s!" 0 0 "Quartus II" 0 -1 1480609289572 ""} { "Info" "IFIOMGR_RESERVED_PIN_WITH_LOCATION_SUB" "~ALTERA_nCEO~ P28 " "Pin ~ALTERA_nCEO~ is reserved at location P28" { } { { "c:/altera/13.0sp1/quartus/bin64/pin_planner.ppl" "" { PinPlanner "c:/altera/13.0sp1/quartus/bin64/pin_planner.ppl" { ~ALTERA_nCEO~ } } } { "c:/altera/13.0sp1/quartus/bin64/TimingClosureFloorplan.fld" "" { Floorplan "c:/altera/13.0sp1/quartus/bin64/TimingClosureFloorplan.fld" "" "" { ~ALTERA_nCEO~ } "NODE_NAME" } } { "temporary_test_loc" "" { Generic "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/" { { 0 { 0 ""} 0 12005 9224 9983 0} } } } } 0 169125 "Pin %1!s! is reserved at location %2!s!" 0 0 "Quartus II" 0 -1 1480609289572 ""} } { } 0 169124 "Fitter converted %1!d! user pins into dedicated programming pins" 0 0 "Fitter" 0 -1 1480609289572 ""} +{ "Warning" "WCUT_CUT_ATOM_PINS_WITH_INCOMPLETE_IO_ASSIGNMENTS" "" "Some pins have incomplete I/O assignments. Refer to the I/O Assignment Warnings report for details" { } { } 0 15714 "Some pins have incomplete I/O assignments. Refer to the I/O Assignment Warnings report for details" 0 0 "Fitter" 0 -1 1480609289576 ""} +{ "Info" "IFSAC_FSAC_RAM_METASTABILITY_INFO" "" "Design uses memory blocks. Violating setup or hold times of memory block address registers for either read or write operations could cause memory contents to be corrupted. Make sure that all memory block address registers meet the setup and hold time requirements." { } { } 0 176045 "Design uses memory blocks. Violating setup or hold times of memory block address registers for either read or write operations could cause memory contents to be corrupted. Make sure that all memory block address registers meet the setup and hold time requirements." 0 0 "Fitter" 0 -1 1480609289623 ""} +{ "Critical Warning" "WFIOMGR_PINS_MISSING_LOCATION_INFO" "1 118 " "No exact pin location assignment(s) for 1 pins of 118 total pins" { { "Info" "IFIOMGR_PIN_MISSING_LOCATION_INFO" "LCD_E " "Pin LCD_E not assigned to an exact location on the device" { } { { "c:/altera/13.0sp1/quartus/bin64/pin_planner.ppl" "" { PinPlanner "c:/altera/13.0sp1/quartus/bin64/pin_planner.ppl" { LCD_E } } } { "lights.vhd" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/lights.vhd" 21 0 0 } } { "c:/altera/13.0sp1/quartus/bin64/TimingClosureFloorplan.fld" "" { Floorplan "c:/altera/13.0sp1/quartus/bin64/TimingClosureFloorplan.fld" "" "" { LCD_E } "NODE_NAME" } } { "temporary_test_loc" "" { Generic "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/" { { 0 { 0 ""} 0 363 9224 9983 0} } } } } 0 169086 "Pin %1!s! not assigned to an exact location on the device" 0 0 "Quartus II" 0 -1 1480609292219 ""} } { } 1 169085 "No exact pin location assignment(s) for %1!d! pins of %2!d! total pins" 0 0 "Fitter" 0 -1 1480609292219 ""} +{ "Info" "ISTA_SDC_STATEMENT_PARENT" "" "Evaluating HDL-embedded SDC commands" { { "Info" "ISTA_SDC_STATEMENT_ENTITY" "alt_jtag_atlantic " "Entity alt_jtag_atlantic" { { "Info" "ISTA_SDC_STATEMENT_EVAL" "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|jupdate\}\] -to \[get_registers \{*\|alt_jtag_atlantic:*\|jupdate1*\}\] " "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|jupdate\}\] -to \[get_registers \{*\|alt_jtag_atlantic:*\|jupdate1*\}\] " { } { } 0 332166 "%1!s!" 0 0 "Quartus II" 0 -1 1480609293128 ""} { "Info" "ISTA_SDC_STATEMENT_EVAL" "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|rdata\[*\]\}\] -to \[get_registers \{*\|alt_jtag_atlantic*\|td_shift\[*\]\}\] " "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|rdata\[*\]\}\] -to \[get_registers \{*\|alt_jtag_atlantic*\|td_shift\[*\]\}\]" { } { } 0 332166 "%1!s!" 0 0 "Quartus II" 0 -1 1480609293128 ""} { "Info" "ISTA_SDC_STATEMENT_EVAL" "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|rdata\[*\]\}\] -to \[get_registers \{*\|alt_jtag_atlantic*\|td_shift\[*\]\}\] " "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|rdata\[*\]\}\] -to \[get_registers \{*\|alt_jtag_atlantic*\|td_shift\[*\]\}\]" { } { } 0 332166 "%1!s!" 0 0 "Quartus II" 0 -1 1480609293128 ""} { "Info" "ISTA_SDC_STATEMENT_EVAL" "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|rdata\[*\]\}\] -to \[get_registers \{*\|alt_jtag_atlantic*\|td_shift\[*\]\}\] " "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|rdata\[*\]\}\] -to \[get_registers \{*\|alt_jtag_atlantic*\|td_shift\[*\]\}\]" { } { } 0 332166 "%1!s!" 0 0 "Quartus II" 0 -1 1480609293128 ""} { "Info" "ISTA_SDC_STATEMENT_EVAL" "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|rdata\[*\]\}\] -to \[get_registers \{*\|alt_jtag_atlantic*\|td_shift\[*\]\}\] " "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|rdata\[*\]\}\] -to \[get_registers \{*\|alt_jtag_atlantic*\|td_shift\[*\]\}\]" { } { } 0 332166 "%1!s!" 0 0 "Quartus II" 0 -1 1480609293128 ""} { "Info" "ISTA_SDC_STATEMENT_EVAL" "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|rdata\[*\]\}\] -to \[get_registers \{*\|alt_jtag_atlantic*\|td_shift\[*\]\}\] " "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|rdata\[*\]\}\] -to \[get_registers \{*\|alt_jtag_atlantic*\|td_shift\[*\]\}\]" { } { } 0 332166 "%1!s!" 0 0 "Quartus II" 0 -1 1480609293128 ""} { "Info" "ISTA_SDC_STATEMENT_EVAL" "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|rdata\[*\]\}\] -to \[get_registers \{*\|alt_jtag_atlantic*\|td_shift\[*\]\}\] " "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|rdata\[*\]\}\] -to \[get_registers \{*\|alt_jtag_atlantic*\|td_shift\[*\]\}\]" { } { } 0 332166 "%1!s!" 0 0 "Quartus II" 0 -1 1480609293128 ""} { "Info" "ISTA_SDC_STATEMENT_EVAL" "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|rdata\[*\]\}\] -to \[get_registers \{*\|alt_jtag_atlantic*\|td_shift\[*\]\}\] " "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|rdata\[*\]\}\] -to \[get_registers \{*\|alt_jtag_atlantic*\|td_shift\[*\]\}\]" { } { } 0 332166 "%1!s!" 0 0 "Quartus II" 0 -1 1480609293128 ""} { "Info" "ISTA_SDC_STATEMENT_EVAL" "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|rdata\[*\]\}\] -to \[get_registers \{*\|alt_jtag_atlantic*\|td_shift\[*\]\}\] " "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|rdata\[*\]\}\] -to \[get_registers \{*\|alt_jtag_atlantic*\|td_shift\[*\]\}\]" { } { } 0 332166 "%1!s!" 0 0 "Quartus II" 0 -1 1480609293128 ""} { "Info" "ISTA_SDC_STATEMENT_EVAL" "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|read\}\] -to \[get_registers \{*\|alt_jtag_atlantic:*\|read1*\}\] " "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|read\}\] -to \[get_registers \{*\|alt_jtag_atlantic:*\|read1*\}\] " { } { } 0 332166 "%1!s!" 0 0 "Quartus II" 0 -1 1480609293128 ""} { "Info" "ISTA_SDC_STATEMENT_EVAL" "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|read_req\}\] " "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|read_req\}\]" { } { } 0 332166 "%1!s!" 0 0 "Quartus II" 0 -1 1480609293128 ""} { "Info" "ISTA_SDC_STATEMENT_EVAL" "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|rvalid\}\] -to \[get_registers \{*\|alt_jtag_atlantic*\|td_shift\[*\]\}\] " "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|rvalid\}\] -to \[get_registers \{*\|alt_jtag_atlantic*\|td_shift\[*\]\}\]" { } { } 0 332166 "%1!s!" 0 0 "Quartus II" 0 -1 1480609293128 ""} { "Info" "ISTA_SDC_STATEMENT_EVAL" "set_false_path -from \[get_registers \{*\|t_dav\}\] -to \[get_registers \{*\|alt_jtag_atlantic:*\|tck_t_dav\}\] " "set_false_path -from \[get_registers \{*\|t_dav\}\] -to \[get_registers \{*\|alt_jtag_atlantic:*\|tck_t_dav\}\]" { } { } 0 332166 "%1!s!" 0 0 "Quartus II" 0 -1 1480609293128 ""} { "Info" "ISTA_SDC_STATEMENT_EVAL" "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|user_saw_rvalid\}\] -to \[get_registers \{*\|alt_jtag_atlantic:*\|rvalid0*\}\] " "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|user_saw_rvalid\}\] -to \[get_registers \{*\|alt_jtag_atlantic:*\|rvalid0*\}\]" { } { } 0 332166 "%1!s!" 0 0 "Quartus II" 0 -1 1480609293128 ""} { "Info" "ISTA_SDC_STATEMENT_EVAL" "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|wdata\[*\]\}\] -to \[get_registers \{*\}\] " "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|wdata\[*\]\}\] -to \[get_registers \{*\}\]" { } { } 0 332166 "%1!s!" 0 0 "Quartus II" 0 -1 1480609293128 ""} { "Info" "ISTA_SDC_STATEMENT_EVAL" "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|wdata\[*\]\}\] -to \[get_registers \{*\}\] " "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|wdata\[*\]\}\] -to \[get_registers \{*\}\]" { } { } 0 332166 "%1!s!" 0 0 "Quartus II" 0 -1 1480609293128 ""} { "Info" "ISTA_SDC_STATEMENT_EVAL" "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|wdata\[*\]\}\] -to \[get_registers \{*\}\] " "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|wdata\[*\]\}\] -to \[get_registers \{*\}\]" { } { } 0 332166 "%1!s!" 0 0 "Quartus II" 0 -1 1480609293128 ""} { "Info" "ISTA_SDC_STATEMENT_EVAL" "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|wdata\[*\]\}\] -to \[get_registers \{*\}\] " "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|wdata\[*\]\}\] -to \[get_registers \{*\}\]" { } { } 0 332166 "%1!s!" 0 0 "Quartus II" 0 -1 1480609293128 ""} { "Info" "ISTA_SDC_STATEMENT_EVAL" "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|wdata\[*\]\}\] -to \[get_registers \{*\}\] " "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|wdata\[*\]\}\] -to \[get_registers \{*\}\]" { } { } 0 332166 "%1!s!" 0 0 "Quartus II" 0 -1 1480609293128 ""} { "Info" "ISTA_SDC_STATEMENT_EVAL" "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|wdata\[*\]\}\] -to \[get_registers \{*\}\] " "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|wdata\[*\]\}\] -to \[get_registers \{*\}\]" { } { } 0 332166 "%1!s!" 0 0 "Quartus II" 0 -1 1480609293128 ""} { "Info" "ISTA_SDC_STATEMENT_EVAL" "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|wdata\[*\]\}\] -to \[get_registers \{*\}\] " "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|wdata\[*\]\}\] -to \[get_registers \{*\}\]" { } { } 0 332166 "%1!s!" 0 0 "Quartus II" 0 -1 1480609293128 ""} { "Info" "ISTA_SDC_STATEMENT_EVAL" "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|wdata\[*\]\}\] -to \[get_registers \{*\}\] " "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|wdata\[*\]\}\] -to \[get_registers \{*\}\]" { } { } 0 332166 "%1!s!" 0 0 "Quartus II" 0 -1 1480609293128 ""} { "Info" "ISTA_SDC_STATEMENT_EVAL" "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|write\}\] -to \[get_registers \{*\|alt_jtag_atlantic:*\|write1*\}\] " "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|write\}\] -to \[get_registers \{*\|alt_jtag_atlantic:*\|write1*\}\] " { } { } 0 332166 "%1!s!" 0 0 "Quartus II" 0 -1 1480609293128 ""} { "Info" "ISTA_SDC_STATEMENT_EVAL" "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|write_stalled\}\] -to \[get_registers \{*\|alt_jtag_atlantic:*\|t_ena*\}\] " "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|write_stalled\}\] -to \[get_registers \{*\|alt_jtag_atlantic:*\|t_ena*\}\]" { } { } 0 332166 "%1!s!" 0 0 "Quartus II" 0 -1 1480609293128 ""} { "Info" "ISTA_SDC_STATEMENT_EVAL" "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|write_stalled\}\] -to \[get_registers \{*\|alt_jtag_atlantic:*\|t_pause*\}\] " "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|write_stalled\}\] -to \[get_registers \{*\|alt_jtag_atlantic:*\|t_pause*\}\]" { } { } 0 332166 "%1!s!" 0 0 "Quartus II" 0 -1 1480609293128 ""} { "Info" "ISTA_SDC_STATEMENT_EVAL" "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|write_valid\}\] " "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|write_valid\}\]" { } { } 0 332166 "%1!s!" 0 0 "Quartus II" 0 -1 1480609293128 ""} } { } 0 332165 "Entity %1!s!" 0 0 "Quartus II" 0 -1 1480609293128 ""} { "Info" "ISTA_SDC_STATEMENT_ENTITY" "altera_std_synchronizer " "Entity altera_std_synchronizer" { { "Info" "ISTA_SDC_STATEMENT_EVAL" "set_false_path -to \[get_keepers \{*altera_std_synchronizer:*\|din_s1\}\] " "set_false_path -to \[get_keepers \{*altera_std_synchronizer:*\|din_s1\}\]" { } { } 0 332166 "%1!s!" 0 0 "Quartus II" 0 -1 1480609293128 ""} } { } 0 332165 "Entity %1!s!" 0 0 "Quartus II" 0 -1 1480609293128 ""} { "Info" "ISTA_SDC_STATEMENT_ENTITY" "sld_jtag_hub " "Entity sld_jtag_hub" { { "Info" "ISTA_SDC_STATEMENT_EVAL" "create_clock -name altera_reserved_tck \[get_ports \{altera_reserved_tck\}\] -period 10MHz " "create_clock -name altera_reserved_tck \[get_ports \{altera_reserved_tck\}\] -period 10MHz " { } { } 0 332166 "%1!s!" 0 0 "Quartus II" 0 -1 1480609293128 ""} { "Info" "ISTA_SDC_STATEMENT_EVAL" "set_clock_groups -asynchronous -group \{altera_reserved_tck\} " "set_clock_groups -asynchronous -group \{altera_reserved_tck\}" { } { } 0 332166 "%1!s!" 0 0 "Quartus II" 0 -1 1480609293128 ""} } { } 0 332165 "Entity %1!s!" 0 0 "Quartus II" 0 -1 1480609293128 ""} } { } 0 332164 "Evaluating HDL-embedded SDC commands" 0 0 "Fitter" 0 -1 1480609293128 ""} +{ "Critical Warning" "WSTA_SDC_NOT_FOUND" "lights.sdc " "Synopsys Design Constraints File file not found: 'lights.sdc'. A Synopsys Design Constraints File is required by the TimeQuest Timing Analyzer to get proper timing constraints. Without it, the Compiler will not properly optimize the design." { } { } 1 332012 "Synopsys Design Constraints File file not found: '%1!s!'. A Synopsys Design Constraints File is required by the TimeQuest Timing Analyzer to get proper timing constraints. Without it, the Compiler will not properly optimize the design." 0 0 "Fitter" 0 -1 1480609293201 ""} +{ "Warning" "WSTA_NODE_FOUND_WITHOUT_CLOCK_ASSIGNMENT" "CLOCK_50 " "Node: CLOCK_50 was determined to be a clock but was found without an associated clock assignment." { } { } 0 332060 "Node: %1!s! was determined to be a clock but was found without an associated clock assignment." 0 0 "Fitter" 0 -1 1480609293215 "|lights|CLOCK_50"} +{ "Critical Warning" "WSTA_NO_UNCERTAINTY_WAS_SET_PARENT" "" "The following clock transfers have no clock uncertainty assignment. For more accurate results, apply clock uncertainty assignments or use the derive_clock_uncertainty command." { { "Critical Warning" "WSTA_NO_UNCERTAINTY_WAS_SET_CHILD" "altera_reserved_tck (Rise) altera_reserved_tck (Rise) setup and hold " "From altera_reserved_tck (Rise) to altera_reserved_tck (Rise) (setup and hold)" { } { } 1 332169 "From %1!s! to %2!s! (%3!s!)" 0 0 "Quartus II" 0 -1 1480609293273 ""} { "Critical Warning" "WSTA_NO_UNCERTAINTY_WAS_SET_CHILD" "altera_reserved_tck (Rise) altera_reserved_tck (Fall) setup and hold " "From altera_reserved_tck (Rise) to altera_reserved_tck (Fall) (setup and hold)" { } { } 1 332169 "From %1!s! to %2!s! (%3!s!)" 0 0 "Quartus II" 0 -1 1480609293273 ""} { "Critical Warning" "WSTA_NO_UNCERTAINTY_WAS_SET_CHILD" "altera_reserved_tck (Fall) altera_reserved_tck (Fall) setup and hold " "From altera_reserved_tck (Fall) to altera_reserved_tck (Fall) (setup and hold)" { } { } 1 332169 "From %1!s! to %2!s! (%3!s!)" 0 0 "Quartus II" 0 -1 1480609293273 ""} } { } 1 332168 "The following clock transfers have no clock uncertainty assignment. For more accurate results, apply clock uncertainty assignments or use the derive_clock_uncertainty command." 0 0 "Fitter" 0 -1 1480609293273 ""} +{ "Info" "ISTA_USER_TDC_OPTIMIZATION_GOALS" "" "Detected timing requirements -- optimizing circuit to achieve only the specified requirements" { } { } 0 332129 "Detected timing requirements -- optimizing circuit to achieve only the specified requirements" 0 0 "Fitter" 0 -1 1480609293273 ""} +{ "Info" "ISTA_REPORT_CLOCKS_INFO" "Found 1 clocks " "Found 1 clocks" { { "Info" "ISTA_REPORT_CLOCKS_INFO" " Period Clock Name " " Period Clock Name" { } { } 0 332111 "%1!s!" 0 0 "Quartus II" 0 -1 1480609293274 ""} { "Info" "ISTA_REPORT_CLOCKS_INFO" "======== ============ " "======== ============" { } { } 0 332111 "%1!s!" 0 0 "Quartus II" 0 -1 1480609293274 ""} { "Info" "ISTA_REPORT_CLOCKS_INFO" " 100.000 altera_reserved_tck " " 100.000 altera_reserved_tck" { } { } 0 332111 "%1!s!" 0 0 "Quartus II" 0 -1 1480609293274 ""} } { } 0 332111 "%1!s!" 0 0 "Fitter" 0 -1 1480609293274 ""} +{ "Info" "IFSAC_FSAC_ASSIGN_AUTO_GLOBAL_TO_SIGNAL" "CLOCK_50~input (placed in PIN Y2 (CLK2, DIFFCLK_1p)) " "Automatically promoted node CLOCK_50~input (placed in PIN Y2 (CLK2, DIFFCLK_1p))" { { "Info" "IFSAC_FSAC_ASSIGN_AUTO_GLOBAL_TO_SIGNAL_FANOUTS" "destinations Global Clock CLKCTRL_G4 " "Automatically promoted destinations to use location or clock signal Global Clock CLKCTRL_G4" { } { } 0 176355 "Automatically promoted %1!s! to use location or clock signal %2!s!" 0 0 "Quartus II" 0 -1 1480609293621 ""} } { { "lights.vhd" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/lights.vhd" 5 0 0 } } { "c:/altera/13.0sp1/quartus/bin64/TimingClosureFloorplan.fld" "" { Floorplan "c:/altera/13.0sp1/quartus/bin64/TimingClosureFloorplan.fld" "" "" { CLOCK_50~input } "NODE_NAME" } } { "temporary_test_loc" "" { Generic "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/" { { 0 { 0 ""} 0 11965 9224 9983 0} } } } } 0 176353 "Automatically promoted node %1!s! %2!s!" 0 0 "Fitter" 0 -1 1480609293621 ""} +{ "Info" "IFSAC_FSAC_ASSIGN_AUTO_GLOBAL_TO_SIGNAL" "altera_internal_jtag~TCKUTAP " "Automatically promoted node altera_internal_jtag~TCKUTAP " { { "Info" "IFSAC_FSAC_ASSIGN_AUTO_GLOBAL_TO_SIGNAL_FANOUTS" "destinations Global Clock " "Automatically promoted destinations to use location or clock signal Global Clock" { } { } 0 176355 "Automatically promoted %1!s! to use location or clock signal %2!s!" 0 0 "Quartus II" 0 -1 1480609293621 ""} } { { "c:/altera/13.0sp1/quartus/bin64/TimingClosureFloorplan.fld" "" { Floorplan "c:/altera/13.0sp1/quartus/bin64/TimingClosureFloorplan.fld" "" "" { altera_internal_jtag~TDO } "NODE_NAME" } } { "temporary_test_loc" "" { Generic "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/" { { 0 { 0 ""} 0 4020 9224 9983 0} } } } } 0 176353 "Automatically promoted node %1!s! %2!s!" 0 0 "Fitter" 0 -1 1480609293621 ""} +{ "Info" "IFSAC_FSAC_ASSIGN_AUTO_GLOBAL_TO_SIGNAL" "nios_system:NiosII\|altera_reset_controller:rst_controller\|r_sync_rst " "Automatically promoted node nios_system:NiosII\|altera_reset_controller:rst_controller\|r_sync_rst " { { "Info" "IFSAC_FSAC_ASSIGN_AUTO_GLOBAL_TO_SIGNAL_FANOUTS" "destinations Global Clock " "Automatically promoted destinations to use location or clock signal Global Clock" { } { } 0 176355 "Automatically promoted %1!s! to use location or clock signal %2!s!" 0 0 "Quartus II" 0 -1 1480609293622 ""} { "Info" "IFSAC_FSAC_GLOBAL_UNASSIGNED_FANOUTS" "" "Following destination nodes may be non-global or may not use global or regional clocks" { { "Info" "IFSAC_FSAC_GLOBAL_UNASSIGNED_FANOUTS_SUB" "nios_system:NiosII\|altera_reset_controller:rst_controller\|WideOr0~0 " "Destination node nios_system:NiosII\|altera_reset_controller:rst_controller\|WideOr0~0" { } { { "db/ip/nios_system/submodules/altera_reset_controller.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/altera_reset_controller.v" 177 -1 0 } } { "c:/altera/13.0sp1/quartus/bin64/TimingClosureFloorplan.fld" "" { Floorplan "c:/altera/13.0sp1/quartus/bin64/TimingClosureFloorplan.fld" "" "" { nios_system:NiosII|altera_reset_controller:rst_controller|WideOr0~0 } "NODE_NAME" } } { "temporary_test_loc" "" { Generic "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/" { { 0 { 0 ""} 0 4471 9224 9983 0} } } } } 0 176357 "Destination node %1!s!" 0 0 "Quartus II" 0 -1 1480609293622 ""} { "Info" "IFSAC_FSAC_GLOBAL_UNASSIGNED_FANOUTS_SUB" "nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|W_rf_wren " "Destination node nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|W_rf_wren" { } { { "db/ip/nios_system/submodules/nios_system_nios2_processor.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor.v" 3700 -1 0 } } { "c:/altera/13.0sp1/quartus/bin64/TimingClosureFloorplan.fld" "" { Floorplan "c:/altera/13.0sp1/quartus/bin64/TimingClosureFloorplan.fld" "" "" { nios_system:NiosII|nios_system_nios2_processor:nios2_processor|W_rf_wren } "NODE_NAME" } } { "temporary_test_loc" "" { Generic "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/" { { 0 { 0 ""} 0 3290 9224 9983 0} } } } } 0 176357 "Destination node %1!s!" 0 0 "Quartus II" 0 -1 1480609293622 ""} { "Info" "IFSAC_FSAC_GLOBAL_UNASSIGNED_FANOUTS_SUB" "nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_nios2_oci_debug:the_nios_system_nios2_processor_nios2_oci_debug\|altera_std_synchronizer:the_altera_std_synchronizer\|din_s1~0 " "Destination node nios_system:NiosII\|nios_system_nios2_processor:nios2_processor\|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci\|nios_system_nios2_processor_nios2_oci_debug:the_nios_system_nios2_processor_nios2_oci_debug\|altera_std_synchronizer:the_altera_std_synchronizer\|din_s1~0" { } { { "altera_std_synchronizer.v" "" { Text "c:/altera/13.0sp1/quartus/libraries/megafunctions/altera_std_synchronizer.v" 45 -1 0 } } { "c:/altera/13.0sp1/quartus/bin64/TimingClosureFloorplan.fld" "" { Floorplan "c:/altera/13.0sp1/quartus/bin64/TimingClosureFloorplan.fld" "" "" { nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_oci_debug:the_nios_system_nios2_processor_nios2_oci_debug|altera_std_synchronizer:the_altera_std_synchronizer|din_s1~0 } "NODE_NAME" } } { "temporary_test_loc" "" { Generic "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/" { { 0 { 0 ""} 0 5951 9224 9983 0} } } } } 0 176357 "Destination node %1!s!" 0 0 "Quartus II" 0 -1 1480609293622 ""} } { } 0 176356 "Following destination nodes may be non-global or may not use global or regional clocks" 0 0 "Quartus II" 0 -1 1480609293622 ""} } { { "db/ip/nios_system/submodules/altera_reset_controller.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/altera_reset_controller.v" 172 -1 0 } } { "c:/altera/13.0sp1/quartus/bin64/TimingClosureFloorplan.fld" "" { Floorplan "c:/altera/13.0sp1/quartus/bin64/TimingClosureFloorplan.fld" "" "" { nios_system:NiosII|altera_reset_controller:rst_controller|r_sync_rst } "NODE_NAME" } } { "temporary_test_loc" "" { Generic "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/" { { 0 { 0 ""} 0 906 9224 9983 0} } } } } 0 176353 "Automatically promoted node %1!s! %2!s!" 0 0 "Fitter" 0 -1 1480609293622 ""} +{ "Info" "IFSAC_FSAC_ASSIGN_AUTO_GLOBAL_TO_SIGNAL" "nios_system:NiosII\|altera_reset_controller:rst_controller\|merged_reset~0 " "Automatically promoted node nios_system:NiosII\|altera_reset_controller:rst_controller\|merged_reset~0 " { { "Info" "IFSAC_FSAC_ASSIGN_AUTO_GLOBAL_TO_SIGNAL_FANOUTS" "destinations Global Clock " "Automatically promoted destinations to use location or clock signal Global Clock" { } { } 0 176355 "Automatically promoted %1!s! to use location or clock signal %2!s!" 0 0 "Quartus II" 0 -1 1480609293623 ""} } { { "db/ip/nios_system/submodules/altera_reset_controller.v" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/altera_reset_controller.v" 68 -1 0 } } { "c:/altera/13.0sp1/quartus/bin64/TimingClosureFloorplan.fld" "" { Floorplan "c:/altera/13.0sp1/quartus/bin64/TimingClosureFloorplan.fld" "" "" { nios_system:NiosII|altera_reset_controller:rst_controller|merged_reset~0 } "NODE_NAME" } } { "temporary_test_loc" "" { Generic "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/" { { 0 { 0 ""} 0 5707 9224 9983 0} } } } } 0 176353 "Automatically promoted node %1!s! %2!s!" 0 0 "Fitter" 0 -1 1480609293623 ""} +{ "Info" "IFSAC_FSAC_REGISTER_PACKING_START_REGPACKING_INFO" "" "Starting register packing" { } { } 0 176233 "Starting register packing" 0 0 "Fitter" 0 -1 1480609294840 ""} +{ "Extra Info" "IFSAC_FSAC_START_REG_LOCATION_PROCESSING" "" "Performing register packing on registers with non-logic cell location assignments" { } { } 1 176273 "Performing register packing on registers with non-logic cell location assignments" 1 0 "Fitter" 0 -1 1480609294848 ""} +{ "Extra Info" "IFSAC_FSAC_FINISH_REG_LOCATION_PROCESSING" "" "Completed register packing on registers with non-logic cell location assignments" { } { } 1 176274 "Completed register packing on registers with non-logic cell location assignments" 1 0 "Fitter" 0 -1 1480609294848 ""} +{ "Extra Info" "IFSAC_FSAC_REGISTER_PACKING_BEGIN_FAST_REGISTER_INFO" "" "Started Fast Input/Output/OE register processing" { } { } 1 176236 "Started Fast Input/Output/OE register processing" 1 0 "Fitter" 0 -1 1480609294859 ""} +{ "Extra Info" "IFSAC_FSAC_REGISTER_PACKING_FINISH_FAST_REGISTER_INFO" "" "Finished Fast Input/Output/OE register processing" { } { } 1 176237 "Finished Fast Input/Output/OE register processing" 1 0 "Fitter" 0 -1 1480609294870 ""} +{ "Extra Info" "IFSAC_FSAC_START_MAC_SCAN_CHAIN_INFERENCING" "" "Start inferring scan chains for DSP blocks" { } { } 1 176238 "Start inferring scan chains for DSP blocks" 1 0 "Fitter" 0 -1 1480609294878 ""} +{ "Extra Info" "IFSAC_FSAC_FINISH_MAC_SCAN_CHAIN_INFERENCING" "" "Inferring scan chains for DSP blocks is complete" { } { } 1 176239 "Inferring scan chains for DSP blocks is complete" 1 0 "Fitter" 0 -1 1480609294879 ""} +{ "Extra Info" "IFSAC_FSAC_START_IO_MULT_RAM_PACKING" "" "Moving registers into I/O cells, Multiplier Blocks, and RAM blocks to improve timing and density" { } { } 1 176248 "Moving registers into I/O cells, Multiplier Blocks, and RAM blocks to improve timing and density" 1 0 "Fitter" 0 -1 1480609294887 ""} +{ "Extra Info" "IFSAC_FSAC_FINISH_IO_MULT_RAM_PACKING" "" "Finished moving registers into I/O cells, Multiplier Blocks, and RAM blocks" { } { } 1 176249 "Finished moving registers into I/O cells, Multiplier Blocks, and RAM blocks" 1 0 "Fitter" 0 -1 1480609294987 ""} +{ "Info" "IFSAC_FSAC_REGISTER_PACKING_FINISH_REGPACKING_INFO" "" "Finished register packing" { { "Extra Info" "IFSAC_NUM_REGISTERS_PACKED_INTO_ATOM_TYPE" "8 EC " "Packed 8 registers into blocks of type EC" { } { } 1 176218 "Packed %1!d! registers into blocks of type %2!s!" 0 0 "Quartus II" 0 -1 1480609294996 ""} } { } 0 176235 "Finished register packing" 0 0 "Fitter" 0 -1 1480609294996 ""} +{ "Info" "IFSAC_FSAC_IO_BANK_PIN_GROUP_STATISTICS" "I/O pins that need to be placed that use the same VCCIO and VREF, before I/O pin placement " "Statistics of I/O pins that need to be placed that use the same VCCIO and VREF, before I/O pin placement" { { "Info" "IFSAC_FSAC_SINGLE_IOC_GROUP_STATISTICS" "1 unused 2.5V 0 1 0 " "Number of I/O pins in group: 1 (unused VREF, 2.5V VCCIO, 0 input, 1 output, 0 bidirectional)" { { "Info" "IFSAC_FSAC_IO_STDS_IN_IOC_GROUP" "2.5 V. " "I/O standards used: 2.5 V." { } { } 0 176212 "I/O standards used: %1!s!" 0 0 "Quartus II" 0 -1 1480609295071 ""} } { } 0 176211 "Number of I/O pins in group: %1!d! (%2!s! VREF, %3!s! VCCIO, %4!d! input, %5!d! output, %6!d! bidirectional)" 0 0 "Quartus II" 0 -1 1480609295071 ""} } { } 0 176214 "Statistics of %1!s!" 0 0 "Fitter" 0 -1 1480609295071 ""} +{ "Info" "IFSAC_FSAC_IO_STATS_BEFORE_AFTER_PLACEMENT" "before " "I/O bank details before I/O pin placement" { { "Info" "IFSAC_FSAC_IO_BANK_PIN_GROUP_STATISTICS" "I/O banks " "Statistics of I/O banks" { { "Info" "IFSAC_FSAC_SINGLE_IO_BANK_STATISTICS" "1 does not use 3.3V 20 40 " "I/O bank number 1 does not use VREF pins and has 3.3V VCCIO pins. 20 total pin(s) used -- 40 pins available" { } { } 0 176213 "I/O bank number %1!s! %2!s! VREF pins and has %3!s! VCCIO pins. %4!d! total pin(s) used -- %5!d! pins available" 0 0 "Quartus II" 0 -1 1480609295073 ""} { "Info" "IFSAC_FSAC_SINGLE_IO_BANK_STATISTICS" "2 does not use undetermined 1 62 " "I/O bank number 2 does not use VREF pins and has undetermined VCCIO pins. 1 total pin(s) used -- 62 pins available" { } { } 0 176213 "I/O bank number %1!s! %2!s! VREF pins and has %3!s! VCCIO pins. %4!d! total pin(s) used -- %5!d! pins available" 0 0 "Quartus II" 0 -1 1480609295073 ""} { "Info" "IFSAC_FSAC_SINGLE_IO_BANK_STATISTICS" "3 does not use 3.3V 1 72 " "I/O bank number 3 does not use VREF pins and has 3.3V VCCIO pins. 1 total pin(s) used -- 72 pins available" { } { } 0 176213 "I/O bank number %1!s! %2!s! VREF pins and has %3!s! VCCIO pins. %4!d! total pin(s) used -- %5!d! pins available" 0 0 "Quartus II" 0 -1 1480609295073 ""} { "Info" "IFSAC_FSAC_SINGLE_IO_BANK_STATISTICS" "4 does not use 3.3V 32 39 " "I/O bank number 4 does not use VREF pins and has 3.3V VCCIO pins. 32 total pin(s) used -- 39 pins available" { } { } 0 176213 "I/O bank number %1!s! %2!s! VREF pins and has %3!s! VCCIO pins. %4!d! total pin(s) used -- %5!d! pins available" 0 0 "Quartus II" 0 -1 1480609295073 ""} { "Info" "IFSAC_FSAC_SINGLE_IO_BANK_STATISTICS" "5 does not use 2.5V 34 31 " "I/O bank number 5 does not use VREF pins and has 2.5V VCCIO pins. 34 total pin(s) used -- 31 pins available" { } { } 0 176213 "I/O bank number %1!s! %2!s! VREF pins and has %3!s! VCCIO pins. %4!d! total pin(s) used -- %5!d! pins available" 0 0 "Quartus II" 0 -1 1480609295073 ""} { "Info" "IFSAC_FSAC_SINGLE_IO_BANK_STATISTICS" "6 does not use 2.5V 9 49 " "I/O bank number 6 does not use VREF pins and has 2.5V VCCIO pins. 9 total pin(s) used -- 49 pins available" { } { } 0 176213 "I/O bank number %1!s! %2!s! VREF pins and has %3!s! VCCIO pins. %4!d! total pin(s) used -- %5!d! pins available" 0 0 "Quartus II" 0 -1 1480609295073 ""} { "Info" "IFSAC_FSAC_SINGLE_IO_BANK_STATISTICS" "7 does not use 2.5V 29 43 " "I/O bank number 7 does not use VREF pins and has 2.5V VCCIO pins. 29 total pin(s) used -- 43 pins available" { } { } 0 176213 "I/O bank number %1!s! %2!s! VREF pins and has %3!s! VCCIO pins. %4!d! total pin(s) used -- %5!d! pins available" 0 0 "Quartus II" 0 -1 1480609295073 ""} { "Info" "IFSAC_FSAC_SINGLE_IO_BANK_STATISTICS" "8 does not use undetermined 0 71 " "I/O bank number 8 does not use VREF pins and has undetermined VCCIO pins. 0 total pin(s) used -- 71 pins available" { } { } 0 176213 "I/O bank number %1!s! %2!s! VREF pins and has %3!s! VCCIO pins. %4!d! total pin(s) used -- %5!d! pins available" 0 0 "Quartus II" 0 -1 1480609295073 ""} } { } 0 176214 "Statistics of %1!s!" 0 0 "Quartus II" 0 -1 1480609295073 ""} } { } 0 176215 "I/O bank details %1!s! I/O pin placement" 0 0 "Fitter" 0 -1 1480609295073 ""} +{ "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN" "" "Ignored I/O standard assignments to the following nodes" { { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "AUD_ADCDAT " "Ignored I/O standard assignment to node \"AUD_ADCDAT\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "AUD_ADCDAT" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "AUD_ADCLRCK " "Ignored I/O standard assignment to node \"AUD_ADCLRCK\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "AUD_ADCLRCK" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "AUD_BCLK " "Ignored I/O standard assignment to node \"AUD_BCLK\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "AUD_BCLK" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "AUD_DACDAT " "Ignored I/O standard assignment to node \"AUD_DACDAT\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "AUD_DACDAT" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "AUD_DACLRCK " "Ignored I/O standard assignment to node \"AUD_DACLRCK\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "AUD_DACLRCK" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "AUD_XCK " "Ignored I/O standard assignment to node \"AUD_XCK\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "AUD_XCK" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "CLOCK2_50 " "Ignored I/O standard assignment to node \"CLOCK2_50\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "CLOCK2_50" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "CLOCK3_50 " "Ignored I/O standard assignment to node \"CLOCK3_50\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "CLOCK3_50" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "DRAM_ADDR\[0\] " "Ignored I/O standard assignment to node \"DRAM_ADDR\[0\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_ADDR\[0\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "DRAM_ADDR\[10\] " "Ignored I/O standard assignment to node \"DRAM_ADDR\[10\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_ADDR\[10\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "DRAM_ADDR\[11\] " "Ignored I/O standard assignment to node \"DRAM_ADDR\[11\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_ADDR\[11\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "DRAM_ADDR\[12\] " "Ignored I/O standard assignment to node \"DRAM_ADDR\[12\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_ADDR\[12\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "DRAM_ADDR\[1\] " "Ignored I/O standard assignment to node \"DRAM_ADDR\[1\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_ADDR\[1\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "DRAM_ADDR\[2\] " "Ignored I/O standard assignment to node \"DRAM_ADDR\[2\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_ADDR\[2\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "DRAM_ADDR\[3\] " "Ignored I/O standard assignment to node \"DRAM_ADDR\[3\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_ADDR\[3\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "DRAM_ADDR\[4\] " "Ignored I/O standard assignment to node \"DRAM_ADDR\[4\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_ADDR\[4\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "DRAM_ADDR\[5\] " "Ignored I/O standard assignment to node \"DRAM_ADDR\[5\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_ADDR\[5\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "DRAM_ADDR\[6\] " "Ignored I/O standard assignment to node \"DRAM_ADDR\[6\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_ADDR\[6\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "DRAM_ADDR\[7\] " "Ignored I/O standard assignment to node \"DRAM_ADDR\[7\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_ADDR\[7\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "DRAM_ADDR\[8\] " "Ignored I/O standard assignment to node \"DRAM_ADDR\[8\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_ADDR\[8\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "DRAM_ADDR\[9\] " "Ignored I/O standard assignment to node \"DRAM_ADDR\[9\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_ADDR\[9\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "DRAM_BA\[0\] " "Ignored I/O standard assignment to node \"DRAM_BA\[0\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_BA\[0\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "DRAM_BA\[1\] " "Ignored I/O standard assignment to node \"DRAM_BA\[1\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_BA\[1\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "DRAM_CAS_N " "Ignored I/O standard assignment to node \"DRAM_CAS_N\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_CAS_N" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "DRAM_CKE " "Ignored I/O standard assignment to node \"DRAM_CKE\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_CKE" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "DRAM_CLK " "Ignored I/O standard assignment to node \"DRAM_CLK\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_CLK" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "DRAM_CS_N " "Ignored I/O standard assignment to node \"DRAM_CS_N\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_CS_N" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "DRAM_DQM\[0\] " "Ignored I/O standard assignment to node \"DRAM_DQM\[0\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQM\[0\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "DRAM_DQM\[1\] " "Ignored I/O standard assignment to node \"DRAM_DQM\[1\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQM\[1\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "DRAM_DQM\[2\] " "Ignored I/O standard assignment to node \"DRAM_DQM\[2\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQM\[2\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "DRAM_DQM\[3\] " "Ignored I/O standard assignment to node \"DRAM_DQM\[3\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQM\[3\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "DRAM_DQ\[0\] " "Ignored I/O standard assignment to node \"DRAM_DQ\[0\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQ\[0\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "DRAM_DQ\[10\] " "Ignored I/O standard assignment to node \"DRAM_DQ\[10\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQ\[10\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "DRAM_DQ\[11\] " "Ignored I/O standard assignment to node \"DRAM_DQ\[11\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQ\[11\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "DRAM_DQ\[12\] " "Ignored I/O standard assignment to node \"DRAM_DQ\[12\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQ\[12\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "DRAM_DQ\[13\] " "Ignored I/O standard assignment to node \"DRAM_DQ\[13\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQ\[13\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "DRAM_DQ\[14\] " "Ignored I/O standard assignment to node \"DRAM_DQ\[14\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQ\[14\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "DRAM_DQ\[15\] " "Ignored I/O standard assignment to node \"DRAM_DQ\[15\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQ\[15\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "DRAM_DQ\[16\] " "Ignored I/O standard assignment to node \"DRAM_DQ\[16\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQ\[16\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "DRAM_DQ\[17\] " "Ignored I/O standard assignment to node \"DRAM_DQ\[17\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQ\[17\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "DRAM_DQ\[18\] " "Ignored I/O standard assignment to node \"DRAM_DQ\[18\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQ\[18\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "DRAM_DQ\[19\] " "Ignored I/O standard assignment to node \"DRAM_DQ\[19\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQ\[19\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "DRAM_DQ\[1\] " "Ignored I/O standard assignment to node \"DRAM_DQ\[1\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQ\[1\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "DRAM_DQ\[20\] " "Ignored I/O standard assignment to node \"DRAM_DQ\[20\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQ\[20\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "DRAM_DQ\[21\] " "Ignored I/O standard assignment to node \"DRAM_DQ\[21\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQ\[21\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "DRAM_DQ\[22\] " "Ignored I/O standard assignment to node \"DRAM_DQ\[22\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQ\[22\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "DRAM_DQ\[23\] " "Ignored I/O standard assignment to node \"DRAM_DQ\[23\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQ\[23\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "DRAM_DQ\[24\] " "Ignored I/O standard assignment to node \"DRAM_DQ\[24\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQ\[24\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "DRAM_DQ\[25\] " "Ignored I/O standard assignment to node \"DRAM_DQ\[25\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQ\[25\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "DRAM_DQ\[26\] " "Ignored I/O standard assignment to node \"DRAM_DQ\[26\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQ\[26\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "DRAM_DQ\[27\] " "Ignored I/O standard assignment to node \"DRAM_DQ\[27\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQ\[27\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "DRAM_DQ\[28\] " "Ignored I/O standard assignment to node \"DRAM_DQ\[28\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQ\[28\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "DRAM_DQ\[29\] " "Ignored I/O standard assignment to node \"DRAM_DQ\[29\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQ\[29\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "DRAM_DQ\[2\] " "Ignored I/O standard assignment to node \"DRAM_DQ\[2\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQ\[2\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "DRAM_DQ\[30\] " "Ignored I/O standard assignment to node \"DRAM_DQ\[30\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQ\[30\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "DRAM_DQ\[31\] " "Ignored I/O standard assignment to node \"DRAM_DQ\[31\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQ\[31\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "DRAM_DQ\[3\] " "Ignored I/O standard assignment to node \"DRAM_DQ\[3\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQ\[3\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "DRAM_DQ\[4\] " "Ignored I/O standard assignment to node \"DRAM_DQ\[4\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQ\[4\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "DRAM_DQ\[5\] " "Ignored I/O standard assignment to node \"DRAM_DQ\[5\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQ\[5\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "DRAM_DQ\[6\] " "Ignored I/O standard assignment to node \"DRAM_DQ\[6\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQ\[6\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "DRAM_DQ\[7\] " "Ignored I/O standard assignment to node \"DRAM_DQ\[7\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQ\[7\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "DRAM_DQ\[8\] " "Ignored I/O standard assignment to node \"DRAM_DQ\[8\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQ\[8\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "DRAM_DQ\[9\] " "Ignored I/O standard assignment to node \"DRAM_DQ\[9\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQ\[9\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "DRAM_RAS_N " "Ignored I/O standard assignment to node \"DRAM_RAS_N\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_RAS_N" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "DRAM_WE_N " "Ignored I/O standard assignment to node \"DRAM_WE_N\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_WE_N" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "EEP_I2C_SCLK " "Ignored I/O standard assignment to node \"EEP_I2C_SCLK\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "EEP_I2C_SCLK" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "EEP_I2C_SDAT " "Ignored I/O standard assignment to node \"EEP_I2C_SDAT\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "EEP_I2C_SDAT" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "ENET0_GTX_CLK " "Ignored I/O standard assignment to node \"ENET0_GTX_CLK\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET0_GTX_CLK" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "ENET0_INT_N " "Ignored I/O standard assignment to node \"ENET0_INT_N\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET0_INT_N" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "ENET0_LINK100 " "Ignored I/O standard assignment to node \"ENET0_LINK100\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET0_LINK100" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "ENET0_MDC " "Ignored I/O standard assignment to node \"ENET0_MDC\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET0_MDC" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "ENET0_MDIO " "Ignored I/O standard assignment to node \"ENET0_MDIO\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET0_MDIO" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "ENET0_RST_N " "Ignored I/O standard assignment to node \"ENET0_RST_N\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET0_RST_N" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "ENET0_RX_CLK " "Ignored I/O standard assignment to node \"ENET0_RX_CLK\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET0_RX_CLK" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "ENET0_RX_COL " "Ignored I/O standard assignment to node \"ENET0_RX_COL\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET0_RX_COL" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "ENET0_RX_CRS " "Ignored I/O standard assignment to node \"ENET0_RX_CRS\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET0_RX_CRS" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "ENET0_RX_DATA\[0\] " "Ignored I/O standard assignment to node \"ENET0_RX_DATA\[0\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET0_RX_DATA\[0\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "ENET0_RX_DATA\[1\] " "Ignored I/O standard assignment to node \"ENET0_RX_DATA\[1\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET0_RX_DATA\[1\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "ENET0_RX_DATA\[2\] " "Ignored I/O standard assignment to node \"ENET0_RX_DATA\[2\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET0_RX_DATA\[2\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "ENET0_RX_DATA\[3\] " "Ignored I/O standard assignment to node \"ENET0_RX_DATA\[3\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET0_RX_DATA\[3\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "ENET0_RX_DV " "Ignored I/O standard assignment to node \"ENET0_RX_DV\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET0_RX_DV" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "ENET0_RX_ER " "Ignored I/O standard assignment to node \"ENET0_RX_ER\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET0_RX_ER" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "ENET0_TX_CLK " "Ignored I/O standard assignment to node \"ENET0_TX_CLK\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET0_TX_CLK" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "ENET0_TX_DATA\[0\] " "Ignored I/O standard assignment to node \"ENET0_TX_DATA\[0\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET0_TX_DATA\[0\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "ENET0_TX_DATA\[1\] " "Ignored I/O standard assignment to node \"ENET0_TX_DATA\[1\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET0_TX_DATA\[1\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "ENET0_TX_DATA\[2\] " "Ignored I/O standard assignment to node \"ENET0_TX_DATA\[2\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET0_TX_DATA\[2\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "ENET0_TX_DATA\[3\] " "Ignored I/O standard assignment to node \"ENET0_TX_DATA\[3\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET0_TX_DATA\[3\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "ENET0_TX_EN " "Ignored I/O standard assignment to node \"ENET0_TX_EN\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET0_TX_EN" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "ENET0_TX_ER " "Ignored I/O standard assignment to node \"ENET0_TX_ER\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET0_TX_ER" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "ENET1_GTX_CLK " "Ignored I/O standard assignment to node \"ENET1_GTX_CLK\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET1_GTX_CLK" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "ENET1_INT_N " "Ignored I/O standard assignment to node \"ENET1_INT_N\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET1_INT_N" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "ENET1_LINK100 " "Ignored I/O standard assignment to node \"ENET1_LINK100\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET1_LINK100" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "ENET1_MDC " "Ignored I/O standard assignment to node \"ENET1_MDC\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET1_MDC" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "ENET1_MDIO " "Ignored I/O standard assignment to node \"ENET1_MDIO\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET1_MDIO" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "ENET1_RST_N " "Ignored I/O standard assignment to node \"ENET1_RST_N\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET1_RST_N" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "ENET1_RX_CLK " "Ignored I/O standard assignment to node \"ENET1_RX_CLK\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET1_RX_CLK" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "ENET1_RX_COL " "Ignored I/O standard assignment to node \"ENET1_RX_COL\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET1_RX_COL" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "ENET1_RX_CRS " "Ignored I/O standard assignment to node \"ENET1_RX_CRS\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET1_RX_CRS" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "ENET1_RX_DATA\[0\] " "Ignored I/O standard assignment to node \"ENET1_RX_DATA\[0\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET1_RX_DATA\[0\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "ENET1_RX_DATA\[1\] " "Ignored I/O standard assignment to node \"ENET1_RX_DATA\[1\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET1_RX_DATA\[1\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "ENET1_RX_DATA\[2\] " "Ignored I/O standard assignment to node \"ENET1_RX_DATA\[2\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET1_RX_DATA\[2\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "ENET1_RX_DATA\[3\] " "Ignored I/O standard assignment to node \"ENET1_RX_DATA\[3\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET1_RX_DATA\[3\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "ENET1_RX_DV " "Ignored I/O standard assignment to node \"ENET1_RX_DV\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET1_RX_DV" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "ENET1_RX_ER " "Ignored I/O standard assignment to node \"ENET1_RX_ER\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET1_RX_ER" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "ENET1_TX_CLK " "Ignored I/O standard assignment to node \"ENET1_TX_CLK\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET1_TX_CLK" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "ENET1_TX_DATA\[0\] " "Ignored I/O standard assignment to node \"ENET1_TX_DATA\[0\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET1_TX_DATA\[0\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "ENET1_TX_DATA\[1\] " "Ignored I/O standard assignment to node \"ENET1_TX_DATA\[1\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET1_TX_DATA\[1\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "ENET1_TX_DATA\[2\] " "Ignored I/O standard assignment to node \"ENET1_TX_DATA\[2\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET1_TX_DATA\[2\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "ENET1_TX_DATA\[3\] " "Ignored I/O standard assignment to node \"ENET1_TX_DATA\[3\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET1_TX_DATA\[3\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "ENET1_TX_EN " "Ignored I/O standard assignment to node \"ENET1_TX_EN\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET1_TX_EN" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "ENET1_TX_ER " "Ignored I/O standard assignment to node \"ENET1_TX_ER\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET1_TX_ER" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "ENETCLK_25 " "Ignored I/O standard assignment to node \"ENETCLK_25\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENETCLK_25" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "EX_IO\[0\] " "Ignored I/O standard assignment to node \"EX_IO\[0\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "EX_IO\[0\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "EX_IO\[1\] " "Ignored I/O standard assignment to node \"EX_IO\[1\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "EX_IO\[1\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "EX_IO\[2\] " "Ignored I/O standard assignment to node \"EX_IO\[2\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "EX_IO\[2\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "EX_IO\[3\] " "Ignored I/O standard assignment to node \"EX_IO\[3\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "EX_IO\[3\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "EX_IO\[4\] " "Ignored I/O standard assignment to node \"EX_IO\[4\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "EX_IO\[4\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "EX_IO\[5\] " "Ignored I/O standard assignment to node \"EX_IO\[5\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "EX_IO\[5\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "EX_IO\[6\] " "Ignored I/O standard assignment to node \"EX_IO\[6\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "EX_IO\[6\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "FL_ADDR\[0\] " "Ignored I/O standard assignment to node \"FL_ADDR\[0\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_ADDR\[0\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "FL_ADDR\[10\] " "Ignored I/O standard assignment to node \"FL_ADDR\[10\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_ADDR\[10\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "FL_ADDR\[11\] " "Ignored I/O standard assignment to node \"FL_ADDR\[11\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_ADDR\[11\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "FL_ADDR\[12\] " "Ignored I/O standard assignment to node \"FL_ADDR\[12\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_ADDR\[12\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "FL_ADDR\[13\] " "Ignored I/O standard assignment to node \"FL_ADDR\[13\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_ADDR\[13\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "FL_ADDR\[14\] " "Ignored I/O standard assignment to node \"FL_ADDR\[14\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_ADDR\[14\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "FL_ADDR\[15\] " "Ignored I/O standard assignment to node \"FL_ADDR\[15\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_ADDR\[15\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "FL_ADDR\[16\] " "Ignored I/O standard assignment to node \"FL_ADDR\[16\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_ADDR\[16\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "FL_ADDR\[17\] " "Ignored I/O standard assignment to node \"FL_ADDR\[17\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_ADDR\[17\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "FL_ADDR\[18\] " "Ignored I/O standard assignment to node \"FL_ADDR\[18\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_ADDR\[18\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "FL_ADDR\[19\] " "Ignored I/O standard assignment to node \"FL_ADDR\[19\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_ADDR\[19\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "FL_ADDR\[1\] " "Ignored I/O standard assignment to node \"FL_ADDR\[1\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_ADDR\[1\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "FL_ADDR\[20\] " "Ignored I/O standard assignment to node \"FL_ADDR\[20\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_ADDR\[20\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "FL_ADDR\[21\] " "Ignored I/O standard assignment to node \"FL_ADDR\[21\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_ADDR\[21\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "FL_ADDR\[22\] " "Ignored I/O standard assignment to node \"FL_ADDR\[22\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_ADDR\[22\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "FL_ADDR\[2\] " "Ignored I/O standard assignment to node \"FL_ADDR\[2\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_ADDR\[2\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "FL_ADDR\[3\] " "Ignored I/O standard assignment to node \"FL_ADDR\[3\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_ADDR\[3\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "FL_ADDR\[4\] " "Ignored I/O standard assignment to node \"FL_ADDR\[4\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_ADDR\[4\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "FL_ADDR\[5\] " "Ignored I/O standard assignment to node \"FL_ADDR\[5\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_ADDR\[5\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "FL_ADDR\[6\] " "Ignored I/O standard assignment to node \"FL_ADDR\[6\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_ADDR\[6\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "FL_ADDR\[7\] " "Ignored I/O standard assignment to node \"FL_ADDR\[7\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_ADDR\[7\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "FL_ADDR\[8\] " "Ignored I/O standard assignment to node \"FL_ADDR\[8\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_ADDR\[8\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "FL_ADDR\[9\] " "Ignored I/O standard assignment to node \"FL_ADDR\[9\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_ADDR\[9\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "FL_CE_N " "Ignored I/O standard assignment to node \"FL_CE_N\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_CE_N" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "FL_DQ\[0\] " "Ignored I/O standard assignment to node \"FL_DQ\[0\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_DQ\[0\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "FL_DQ\[1\] " "Ignored I/O standard assignment to node \"FL_DQ\[1\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_DQ\[1\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "FL_DQ\[2\] " "Ignored I/O standard assignment to node \"FL_DQ\[2\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_DQ\[2\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "FL_DQ\[3\] " "Ignored I/O standard assignment to node \"FL_DQ\[3\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_DQ\[3\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "FL_DQ\[4\] " "Ignored I/O standard assignment to node \"FL_DQ\[4\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_DQ\[4\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "FL_DQ\[5\] " "Ignored I/O standard assignment to node \"FL_DQ\[5\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_DQ\[5\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "FL_DQ\[6\] " "Ignored I/O standard assignment to node \"FL_DQ\[6\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_DQ\[6\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "FL_DQ\[7\] " "Ignored I/O standard assignment to node \"FL_DQ\[7\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_DQ\[7\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "FL_OE_N " "Ignored I/O standard assignment to node \"FL_OE_N\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_OE_N" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "FL_RST_N " "Ignored I/O standard assignment to node \"FL_RST_N\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_RST_N" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "FL_RY " "Ignored I/O standard assignment to node \"FL_RY\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_RY" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "FL_WE_N " "Ignored I/O standard assignment to node \"FL_WE_N\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_WE_N" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "FL_WP_N " "Ignored I/O standard assignment to node \"FL_WP_N\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_WP_N" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "GPIO\[0\] " "Ignored I/O standard assignment to node \"GPIO\[0\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[0\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "GPIO\[10\] " "Ignored I/O standard assignment to node \"GPIO\[10\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[10\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "GPIO\[11\] " "Ignored I/O standard assignment to node \"GPIO\[11\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[11\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "GPIO\[12\] " "Ignored I/O standard assignment to node \"GPIO\[12\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[12\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "GPIO\[13\] " "Ignored I/O standard assignment to node \"GPIO\[13\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[13\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "GPIO\[14\] " "Ignored I/O standard assignment to node \"GPIO\[14\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[14\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "GPIO\[15\] " "Ignored I/O standard assignment to node \"GPIO\[15\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[15\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "GPIO\[16\] " "Ignored I/O standard assignment to node \"GPIO\[16\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[16\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "GPIO\[17\] " "Ignored I/O standard assignment to node \"GPIO\[17\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[17\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "GPIO\[18\] " "Ignored I/O standard assignment to node \"GPIO\[18\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[18\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "GPIO\[19\] " "Ignored I/O standard assignment to node \"GPIO\[19\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[19\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "GPIO\[1\] " "Ignored I/O standard assignment to node \"GPIO\[1\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[1\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "GPIO\[20\] " "Ignored I/O standard assignment to node \"GPIO\[20\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[20\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "GPIO\[21\] " "Ignored I/O standard assignment to node \"GPIO\[21\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[21\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "GPIO\[22\] " "Ignored I/O standard assignment to node \"GPIO\[22\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[22\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "GPIO\[23\] " "Ignored I/O standard assignment to node \"GPIO\[23\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[23\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "GPIO\[24\] " "Ignored I/O standard assignment to node \"GPIO\[24\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[24\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "GPIO\[25\] " "Ignored I/O standard assignment to node \"GPIO\[25\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[25\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "GPIO\[26\] " "Ignored I/O standard assignment to node \"GPIO\[26\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[26\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "GPIO\[27\] " "Ignored I/O standard assignment to node \"GPIO\[27\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[27\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "GPIO\[28\] " "Ignored I/O standard assignment to node \"GPIO\[28\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[28\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "GPIO\[29\] " "Ignored I/O standard assignment to node \"GPIO\[29\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[29\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "GPIO\[2\] " "Ignored I/O standard assignment to node \"GPIO\[2\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[2\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "GPIO\[30\] " "Ignored I/O standard assignment to node \"GPIO\[30\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[30\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "GPIO\[31\] " "Ignored I/O standard assignment to node \"GPIO\[31\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[31\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "GPIO\[32\] " "Ignored I/O standard assignment to node \"GPIO\[32\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[32\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "GPIO\[33\] " "Ignored I/O standard assignment to node \"GPIO\[33\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[33\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "GPIO\[34\] " "Ignored I/O standard assignment to node \"GPIO\[34\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[34\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "GPIO\[35\] " "Ignored I/O standard assignment to node \"GPIO\[35\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[35\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "GPIO\[3\] " "Ignored I/O standard assignment to node \"GPIO\[3\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[3\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "GPIO\[4\] " "Ignored I/O standard assignment to node \"GPIO\[4\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[4\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "GPIO\[5\] " "Ignored I/O standard assignment to node \"GPIO\[5\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[5\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "GPIO\[6\] " "Ignored I/O standard assignment to node \"GPIO\[6\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[6\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "GPIO\[7\] " "Ignored I/O standard assignment to node \"GPIO\[7\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[7\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "GPIO\[8\] " "Ignored I/O standard assignment to node \"GPIO\[8\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[8\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "GPIO\[9\] " "Ignored I/O standard assignment to node \"GPIO\[9\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[9\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_CLKIN0 " "Ignored I/O standard assignment to node \"HSMC_CLKIN0\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_CLKIN0" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_CLKIN_N1 " "Ignored I/O standard assignment to node \"HSMC_CLKIN_N1\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_CLKIN_N1" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_CLKIN_N2 " "Ignored I/O standard assignment to node \"HSMC_CLKIN_N2\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_CLKIN_N2" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_CLKIN_P1 " "Ignored I/O standard assignment to node \"HSMC_CLKIN_P1\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_CLKIN_P1" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_CLKIN_P2 " "Ignored I/O standard assignment to node \"HSMC_CLKIN_P2\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_CLKIN_P2" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_CLKOUT0 " "Ignored I/O standard assignment to node \"HSMC_CLKOUT0\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_CLKOUT0" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_CLKOUT_N1 " "Ignored I/O standard assignment to node \"HSMC_CLKOUT_N1\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_CLKOUT_N1" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_CLKOUT_N2 " "Ignored I/O standard assignment to node \"HSMC_CLKOUT_N2\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_CLKOUT_N2" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_CLKOUT_P1 " "Ignored I/O standard assignment to node \"HSMC_CLKOUT_P1\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_CLKOUT_P1" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_CLKOUT_P2 " "Ignored I/O standard assignment to node \"HSMC_CLKOUT_P2\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_CLKOUT_P2" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_D\[0\] " "Ignored I/O standard assignment to node \"HSMC_D\[0\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_D\[0\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_D\[1\] " "Ignored I/O standard assignment to node \"HSMC_D\[1\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_D\[1\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_D\[2\] " "Ignored I/O standard assignment to node \"HSMC_D\[2\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_D\[2\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_D\[3\] " "Ignored I/O standard assignment to node \"HSMC_D\[3\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_D\[3\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_RX_D_N\[0\] " "Ignored I/O standard assignment to node \"HSMC_RX_D_N\[0\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_N\[0\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_RX_D_N\[10\] " "Ignored I/O standard assignment to node \"HSMC_RX_D_N\[10\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_N\[10\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_RX_D_N\[11\] " "Ignored I/O standard assignment to node \"HSMC_RX_D_N\[11\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_N\[11\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_RX_D_N\[12\] " "Ignored I/O standard assignment to node \"HSMC_RX_D_N\[12\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_N\[12\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_RX_D_N\[13\] " "Ignored I/O standard assignment to node \"HSMC_RX_D_N\[13\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_N\[13\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_RX_D_N\[14\] " "Ignored I/O standard assignment to node \"HSMC_RX_D_N\[14\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_N\[14\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_RX_D_N\[15\] " "Ignored I/O standard assignment to node \"HSMC_RX_D_N\[15\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_N\[15\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_RX_D_N\[16\] " "Ignored I/O standard assignment to node \"HSMC_RX_D_N\[16\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_N\[16\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_RX_D_N\[1\] " "Ignored I/O standard assignment to node \"HSMC_RX_D_N\[1\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_N\[1\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_RX_D_N\[2\] " "Ignored I/O standard assignment to node \"HSMC_RX_D_N\[2\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_N\[2\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_RX_D_N\[3\] " "Ignored I/O standard assignment to node \"HSMC_RX_D_N\[3\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_N\[3\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_RX_D_N\[4\] " "Ignored I/O standard assignment to node \"HSMC_RX_D_N\[4\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_N\[4\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_RX_D_N\[5\] " "Ignored I/O standard assignment to node \"HSMC_RX_D_N\[5\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_N\[5\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_RX_D_N\[6\] " "Ignored I/O standard assignment to node \"HSMC_RX_D_N\[6\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_N\[6\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_RX_D_N\[7\] " "Ignored I/O standard assignment to node \"HSMC_RX_D_N\[7\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_N\[7\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_RX_D_N\[8\] " "Ignored I/O standard assignment to node \"HSMC_RX_D_N\[8\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_N\[8\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_RX_D_N\[9\] " "Ignored I/O standard assignment to node \"HSMC_RX_D_N\[9\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_N\[9\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_RX_D_P\[0\] " "Ignored I/O standard assignment to node \"HSMC_RX_D_P\[0\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_P\[0\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_RX_D_P\[10\] " "Ignored I/O standard assignment to node \"HSMC_RX_D_P\[10\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_P\[10\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_RX_D_P\[11\] " "Ignored I/O standard assignment to node \"HSMC_RX_D_P\[11\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_P\[11\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_RX_D_P\[12\] " "Ignored I/O standard assignment to node \"HSMC_RX_D_P\[12\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_P\[12\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_RX_D_P\[13\] " "Ignored I/O standard assignment to node \"HSMC_RX_D_P\[13\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_P\[13\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_RX_D_P\[14\] " "Ignored I/O standard assignment to node \"HSMC_RX_D_P\[14\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_P\[14\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_RX_D_P\[15\] " "Ignored I/O standard assignment to node \"HSMC_RX_D_P\[15\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_P\[15\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_RX_D_P\[16\] " "Ignored I/O standard assignment to node \"HSMC_RX_D_P\[16\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_P\[16\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_RX_D_P\[1\] " "Ignored I/O standard assignment to node \"HSMC_RX_D_P\[1\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_P\[1\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_RX_D_P\[2\] " "Ignored I/O standard assignment to node \"HSMC_RX_D_P\[2\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_P\[2\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_RX_D_P\[3\] " "Ignored I/O standard assignment to node \"HSMC_RX_D_P\[3\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_P\[3\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_RX_D_P\[4\] " "Ignored I/O standard assignment to node \"HSMC_RX_D_P\[4\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_P\[4\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_RX_D_P\[5\] " "Ignored I/O standard assignment to node \"HSMC_RX_D_P\[5\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_P\[5\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_RX_D_P\[6\] " "Ignored I/O standard assignment to node \"HSMC_RX_D_P\[6\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_P\[6\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_RX_D_P\[7\] " "Ignored I/O standard assignment to node \"HSMC_RX_D_P\[7\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_P\[7\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_RX_D_P\[8\] " "Ignored I/O standard assignment to node \"HSMC_RX_D_P\[8\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_P\[8\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_RX_D_P\[9\] " "Ignored I/O standard assignment to node \"HSMC_RX_D_P\[9\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_P\[9\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_TX_D_N\[0\] " "Ignored I/O standard assignment to node \"HSMC_TX_D_N\[0\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_N\[0\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_TX_D_N\[10\] " "Ignored I/O standard assignment to node \"HSMC_TX_D_N\[10\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_N\[10\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_TX_D_N\[11\] " "Ignored I/O standard assignment to node \"HSMC_TX_D_N\[11\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_N\[11\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_TX_D_N\[12\] " "Ignored I/O standard assignment to node \"HSMC_TX_D_N\[12\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_N\[12\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_TX_D_N\[13\] " "Ignored I/O standard assignment to node \"HSMC_TX_D_N\[13\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_N\[13\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_TX_D_N\[14\] " "Ignored I/O standard assignment to node \"HSMC_TX_D_N\[14\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_N\[14\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_TX_D_N\[15\] " "Ignored I/O standard assignment to node \"HSMC_TX_D_N\[15\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_N\[15\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_TX_D_N\[16\] " "Ignored I/O standard assignment to node \"HSMC_TX_D_N\[16\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_N\[16\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_TX_D_N\[1\] " "Ignored I/O standard assignment to node \"HSMC_TX_D_N\[1\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_N\[1\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_TX_D_N\[2\] " "Ignored I/O standard assignment to node \"HSMC_TX_D_N\[2\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_N\[2\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_TX_D_N\[3\] " "Ignored I/O standard assignment to node \"HSMC_TX_D_N\[3\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_N\[3\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_TX_D_N\[4\] " "Ignored I/O standard assignment to node \"HSMC_TX_D_N\[4\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_N\[4\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_TX_D_N\[5\] " "Ignored I/O standard assignment to node \"HSMC_TX_D_N\[5\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_N\[5\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_TX_D_N\[6\] " "Ignored I/O standard assignment to node \"HSMC_TX_D_N\[6\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_N\[6\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_TX_D_N\[7\] " "Ignored I/O standard assignment to node \"HSMC_TX_D_N\[7\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_N\[7\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_TX_D_N\[8\] " "Ignored I/O standard assignment to node \"HSMC_TX_D_N\[8\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_N\[8\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_TX_D_N\[9\] " "Ignored I/O standard assignment to node \"HSMC_TX_D_N\[9\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_N\[9\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_TX_D_P\[0\] " "Ignored I/O standard assignment to node \"HSMC_TX_D_P\[0\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_P\[0\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_TX_D_P\[10\] " "Ignored I/O standard assignment to node \"HSMC_TX_D_P\[10\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_P\[10\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_TX_D_P\[11\] " "Ignored I/O standard assignment to node \"HSMC_TX_D_P\[11\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_P\[11\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_TX_D_P\[12\] " "Ignored I/O standard assignment to node \"HSMC_TX_D_P\[12\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_P\[12\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_TX_D_P\[13\] " "Ignored I/O standard assignment to node \"HSMC_TX_D_P\[13\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_P\[13\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_TX_D_P\[14\] " "Ignored I/O standard assignment to node \"HSMC_TX_D_P\[14\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_P\[14\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_TX_D_P\[15\] " "Ignored I/O standard assignment to node \"HSMC_TX_D_P\[15\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_P\[15\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_TX_D_P\[16\] " "Ignored I/O standard assignment to node \"HSMC_TX_D_P\[16\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_P\[16\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_TX_D_P\[1\] " "Ignored I/O standard assignment to node \"HSMC_TX_D_P\[1\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_P\[1\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_TX_D_P\[2\] " "Ignored I/O standard assignment to node \"HSMC_TX_D_P\[2\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_P\[2\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_TX_D_P\[3\] " "Ignored I/O standard assignment to node \"HSMC_TX_D_P\[3\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_P\[3\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_TX_D_P\[4\] " "Ignored I/O standard assignment to node \"HSMC_TX_D_P\[4\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_P\[4\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_TX_D_P\[5\] " "Ignored I/O standard assignment to node \"HSMC_TX_D_P\[5\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_P\[5\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_TX_D_P\[6\] " "Ignored I/O standard assignment to node \"HSMC_TX_D_P\[6\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_P\[6\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_TX_D_P\[7\] " "Ignored I/O standard assignment to node \"HSMC_TX_D_P\[7\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_P\[7\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_TX_D_P\[8\] " "Ignored I/O standard assignment to node \"HSMC_TX_D_P\[8\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_P\[8\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "HSMC_TX_D_P\[9\] " "Ignored I/O standard assignment to node \"HSMC_TX_D_P\[9\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_P\[9\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "I2C_SCLK " "Ignored I/O standard assignment to node \"I2C_SCLK\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "I2C_SCLK" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "I2C_SDAT " "Ignored I/O standard assignment to node \"I2C_SDAT\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "I2C_SDAT" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "IRDA_RXD " "Ignored I/O standard assignment to node \"IRDA_RXD\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "IRDA_RXD" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "LCD_EN " "Ignored I/O standard assignment to node \"LCD_EN\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "LCD_EN" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "LEDG\[8\] " "Ignored I/O standard assignment to node \"LEDG\[8\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "LEDG\[8\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "OTG_ADDR\[0\] " "Ignored I/O standard assignment to node \"OTG_ADDR\[0\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "OTG_ADDR\[0\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "OTG_ADDR\[1\] " "Ignored I/O standard assignment to node \"OTG_ADDR\[1\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "OTG_ADDR\[1\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "OTG_CS_N " "Ignored I/O standard assignment to node \"OTG_CS_N\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "OTG_CS_N" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "OTG_DACK_N\[0\] " "Ignored I/O standard assignment to node \"OTG_DACK_N\[0\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "OTG_DACK_N\[0\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "OTG_DACK_N\[1\] " "Ignored I/O standard assignment to node \"OTG_DACK_N\[1\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "OTG_DACK_N\[1\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "OTG_DATA\[0\] " "Ignored I/O standard assignment to node \"OTG_DATA\[0\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "OTG_DATA\[0\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "OTG_DATA\[10\] " "Ignored I/O standard assignment to node \"OTG_DATA\[10\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "OTG_DATA\[10\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "OTG_DATA\[11\] " "Ignored I/O standard assignment to node \"OTG_DATA\[11\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "OTG_DATA\[11\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "OTG_DATA\[12\] " "Ignored I/O standard assignment to node \"OTG_DATA\[12\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "OTG_DATA\[12\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "OTG_DATA\[13\] " "Ignored I/O standard assignment to node \"OTG_DATA\[13\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "OTG_DATA\[13\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "OTG_DATA\[14\] " "Ignored I/O standard assignment to node \"OTG_DATA\[14\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "OTG_DATA\[14\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "OTG_DATA\[15\] " "Ignored I/O standard assignment to node \"OTG_DATA\[15\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "OTG_DATA\[15\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "OTG_DATA\[1\] " "Ignored I/O standard assignment to node \"OTG_DATA\[1\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "OTG_DATA\[1\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "OTG_DATA\[2\] " "Ignored I/O standard assignment to node \"OTG_DATA\[2\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "OTG_DATA\[2\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "OTG_DATA\[3\] " "Ignored I/O standard assignment to node \"OTG_DATA\[3\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "OTG_DATA\[3\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "OTG_DATA\[4\] " "Ignored I/O standard assignment to node \"OTG_DATA\[4\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "OTG_DATA\[4\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "OTG_DATA\[5\] " "Ignored I/O standard assignment to node \"OTG_DATA\[5\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "OTG_DATA\[5\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "OTG_DATA\[6\] " "Ignored I/O standard assignment to node \"OTG_DATA\[6\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "OTG_DATA\[6\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "OTG_DATA\[7\] " "Ignored I/O standard assignment to node \"OTG_DATA\[7\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "OTG_DATA\[7\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "OTG_DATA\[8\] " "Ignored I/O standard assignment to node \"OTG_DATA\[8\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "OTG_DATA\[8\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "OTG_DATA\[9\] " "Ignored I/O standard assignment to node \"OTG_DATA\[9\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "OTG_DATA\[9\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "OTG_DREQ\[0\] " "Ignored I/O standard assignment to node \"OTG_DREQ\[0\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "OTG_DREQ\[0\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "OTG_DREQ\[1\] " "Ignored I/O standard assignment to node \"OTG_DREQ\[1\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "OTG_DREQ\[1\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "OTG_FSPEED " "Ignored I/O standard assignment to node \"OTG_FSPEED\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "OTG_FSPEED" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "OTG_INT\[0\] " "Ignored I/O standard assignment to node \"OTG_INT\[0\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "OTG_INT\[0\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "OTG_INT\[1\] " "Ignored I/O standard assignment to node \"OTG_INT\[1\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "OTG_INT\[1\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "OTG_LSPEED " "Ignored I/O standard assignment to node \"OTG_LSPEED\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "OTG_LSPEED" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "OTG_RD_N " "Ignored I/O standard assignment to node \"OTG_RD_N\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "OTG_RD_N" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "OTG_RST_N " "Ignored I/O standard assignment to node \"OTG_RST_N\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "OTG_RST_N" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "OTG_WR_N " "Ignored I/O standard assignment to node \"OTG_WR_N\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "OTG_WR_N" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "PS2_CLK " "Ignored I/O standard assignment to node \"PS2_CLK\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "PS2_CLK" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "PS2_CLK2 " "Ignored I/O standard assignment to node \"PS2_CLK2\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "PS2_CLK2" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "PS2_DAT " "Ignored I/O standard assignment to node \"PS2_DAT\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "PS2_DAT" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "PS2_DAT2 " "Ignored I/O standard assignment to node \"PS2_DAT2\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "PS2_DAT2" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "SD_CLK " "Ignored I/O standard assignment to node \"SD_CLK\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SD_CLK" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "SD_CMD " "Ignored I/O standard assignment to node \"SD_CMD\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SD_CMD" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "SD_DAT\[0\] " "Ignored I/O standard assignment to node \"SD_DAT\[0\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SD_DAT\[0\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "SD_DAT\[1\] " "Ignored I/O standard assignment to node \"SD_DAT\[1\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SD_DAT\[1\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "SD_DAT\[2\] " "Ignored I/O standard assignment to node \"SD_DAT\[2\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SD_DAT\[2\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "SD_DAT\[3\] " "Ignored I/O standard assignment to node \"SD_DAT\[3\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SD_DAT\[3\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "SD_WP_N " "Ignored I/O standard assignment to node \"SD_WP_N\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SD_WP_N" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "SMA_CLKIN " "Ignored I/O standard assignment to node \"SMA_CLKIN\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SMA_CLKIN" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "SMA_CLKOUT " "Ignored I/O standard assignment to node \"SMA_CLKOUT\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SMA_CLKOUT" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "SRAM_ADDR\[0\] " "Ignored I/O standard assignment to node \"SRAM_ADDR\[0\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_ADDR\[0\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "SRAM_ADDR\[10\] " "Ignored I/O standard assignment to node \"SRAM_ADDR\[10\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_ADDR\[10\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "SRAM_ADDR\[11\] " "Ignored I/O standard assignment to node \"SRAM_ADDR\[11\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_ADDR\[11\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "SRAM_ADDR\[12\] " "Ignored I/O standard assignment to node \"SRAM_ADDR\[12\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_ADDR\[12\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "SRAM_ADDR\[13\] " "Ignored I/O standard assignment to node \"SRAM_ADDR\[13\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_ADDR\[13\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "SRAM_ADDR\[14\] " "Ignored I/O standard assignment to node \"SRAM_ADDR\[14\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_ADDR\[14\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "SRAM_ADDR\[15\] " "Ignored I/O standard assignment to node \"SRAM_ADDR\[15\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_ADDR\[15\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "SRAM_ADDR\[16\] " "Ignored I/O standard assignment to node \"SRAM_ADDR\[16\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_ADDR\[16\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "SRAM_ADDR\[17\] " "Ignored I/O standard assignment to node \"SRAM_ADDR\[17\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_ADDR\[17\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "SRAM_ADDR\[18\] " "Ignored I/O standard assignment to node \"SRAM_ADDR\[18\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_ADDR\[18\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "SRAM_ADDR\[19\] " "Ignored I/O standard assignment to node \"SRAM_ADDR\[19\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_ADDR\[19\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "SRAM_ADDR\[1\] " "Ignored I/O standard assignment to node \"SRAM_ADDR\[1\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_ADDR\[1\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "SRAM_ADDR\[2\] " "Ignored I/O standard assignment to node \"SRAM_ADDR\[2\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_ADDR\[2\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "SRAM_ADDR\[3\] " "Ignored I/O standard assignment to node \"SRAM_ADDR\[3\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_ADDR\[3\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "SRAM_ADDR\[4\] " "Ignored I/O standard assignment to node \"SRAM_ADDR\[4\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_ADDR\[4\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "SRAM_ADDR\[5\] " "Ignored I/O standard assignment to node \"SRAM_ADDR\[5\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_ADDR\[5\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "SRAM_ADDR\[6\] " "Ignored I/O standard assignment to node \"SRAM_ADDR\[6\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_ADDR\[6\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "SRAM_ADDR\[7\] " "Ignored I/O standard assignment to node \"SRAM_ADDR\[7\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_ADDR\[7\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "SRAM_ADDR\[8\] " "Ignored I/O standard assignment to node \"SRAM_ADDR\[8\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_ADDR\[8\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "SRAM_ADDR\[9\] " "Ignored I/O standard assignment to node \"SRAM_ADDR\[9\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_ADDR\[9\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "SRAM_CE_N " "Ignored I/O standard assignment to node \"SRAM_CE_N\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_CE_N" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "SRAM_DQ\[0\] " "Ignored I/O standard assignment to node \"SRAM_DQ\[0\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_DQ\[0\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "SRAM_DQ\[10\] " "Ignored I/O standard assignment to node \"SRAM_DQ\[10\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_DQ\[10\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "SRAM_DQ\[11\] " "Ignored I/O standard assignment to node \"SRAM_DQ\[11\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_DQ\[11\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "SRAM_DQ\[12\] " "Ignored I/O standard assignment to node \"SRAM_DQ\[12\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_DQ\[12\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "SRAM_DQ\[13\] " "Ignored I/O standard assignment to node \"SRAM_DQ\[13\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_DQ\[13\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "SRAM_DQ\[14\] " "Ignored I/O standard assignment to node \"SRAM_DQ\[14\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_DQ\[14\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "SRAM_DQ\[15\] " "Ignored I/O standard assignment to node \"SRAM_DQ\[15\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_DQ\[15\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "SRAM_DQ\[1\] " "Ignored I/O standard assignment to node \"SRAM_DQ\[1\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_DQ\[1\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "SRAM_DQ\[2\] " "Ignored I/O standard assignment to node \"SRAM_DQ\[2\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_DQ\[2\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "SRAM_DQ\[3\] " "Ignored I/O standard assignment to node \"SRAM_DQ\[3\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_DQ\[3\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "SRAM_DQ\[4\] " "Ignored I/O standard assignment to node \"SRAM_DQ\[4\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_DQ\[4\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "SRAM_DQ\[5\] " "Ignored I/O standard assignment to node \"SRAM_DQ\[5\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_DQ\[5\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "SRAM_DQ\[6\] " "Ignored I/O standard assignment to node \"SRAM_DQ\[6\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_DQ\[6\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "SRAM_DQ\[7\] " "Ignored I/O standard assignment to node \"SRAM_DQ\[7\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_DQ\[7\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "SRAM_DQ\[8\] " "Ignored I/O standard assignment to node \"SRAM_DQ\[8\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_DQ\[8\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "SRAM_DQ\[9\] " "Ignored I/O standard assignment to node \"SRAM_DQ\[9\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_DQ\[9\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "SRAM_LB_N " "Ignored I/O standard assignment to node \"SRAM_LB_N\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_LB_N" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "SRAM_OE_N " "Ignored I/O standard assignment to node \"SRAM_OE_N\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_OE_N" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "SRAM_UB_N " "Ignored I/O standard assignment to node \"SRAM_UB_N\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_UB_N" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "SRAM_WE_N " "Ignored I/O standard assignment to node \"SRAM_WE_N\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_WE_N" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "TD_CLK27 " "Ignored I/O standard assignment to node \"TD_CLK27\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "TD_CLK27" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "TD_DATA\[0\] " "Ignored I/O standard assignment to node \"TD_DATA\[0\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "TD_DATA\[0\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "TD_DATA\[1\] " "Ignored I/O standard assignment to node \"TD_DATA\[1\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "TD_DATA\[1\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "TD_DATA\[2\] " "Ignored I/O standard assignment to node \"TD_DATA\[2\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "TD_DATA\[2\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "TD_DATA\[3\] " "Ignored I/O standard assignment to node \"TD_DATA\[3\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "TD_DATA\[3\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "TD_DATA\[4\] " "Ignored I/O standard assignment to node \"TD_DATA\[4\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "TD_DATA\[4\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "TD_DATA\[5\] " "Ignored I/O standard assignment to node \"TD_DATA\[5\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "TD_DATA\[5\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "TD_DATA\[6\] " "Ignored I/O standard assignment to node \"TD_DATA\[6\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "TD_DATA\[6\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "TD_DATA\[7\] " "Ignored I/O standard assignment to node \"TD_DATA\[7\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "TD_DATA\[7\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "TD_HS " "Ignored I/O standard assignment to node \"TD_HS\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "TD_HS" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "TD_RESET_N " "Ignored I/O standard assignment to node \"TD_RESET_N\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "TD_RESET_N" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "TD_VS " "Ignored I/O standard assignment to node \"TD_VS\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "TD_VS" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "UART_CTS " "Ignored I/O standard assignment to node \"UART_CTS\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "UART_CTS" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "UART_RTS " "Ignored I/O standard assignment to node \"UART_RTS\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "UART_RTS" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "UART_RXD " "Ignored I/O standard assignment to node \"UART_RXD\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "UART_RXD" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "UART_TXD " "Ignored I/O standard assignment to node \"UART_TXD\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "UART_TXD" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "VGA_BLANK_N " "Ignored I/O standard assignment to node \"VGA_BLANK_N\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "VGA_BLANK_N" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "VGA_B\[0\] " "Ignored I/O standard assignment to node \"VGA_B\[0\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "VGA_B\[0\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "VGA_B\[1\] " "Ignored I/O standard assignment to node \"VGA_B\[1\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "VGA_B\[1\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "VGA_B\[2\] " "Ignored I/O standard assignment to node \"VGA_B\[2\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "VGA_B\[2\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "VGA_B\[3\] " "Ignored I/O standard assignment to node \"VGA_B\[3\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "VGA_B\[3\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "VGA_B\[4\] " "Ignored I/O standard assignment to node \"VGA_B\[4\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "VGA_B\[4\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "VGA_B\[5\] " "Ignored I/O standard assignment to node \"VGA_B\[5\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "VGA_B\[5\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "VGA_B\[6\] " "Ignored I/O standard assignment to node \"VGA_B\[6\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "VGA_B\[6\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "VGA_B\[7\] " "Ignored I/O standard assignment to node \"VGA_B\[7\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "VGA_B\[7\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "VGA_CLK " "Ignored I/O standard assignment to node \"VGA_CLK\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "VGA_CLK" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "VGA_G\[0\] " "Ignored I/O standard assignment to node \"VGA_G\[0\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "VGA_G\[0\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "VGA_G\[1\] " "Ignored I/O standard assignment to node \"VGA_G\[1\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "VGA_G\[1\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "VGA_G\[2\] " "Ignored I/O standard assignment to node \"VGA_G\[2\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "VGA_G\[2\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "VGA_G\[3\] " "Ignored I/O standard assignment to node \"VGA_G\[3\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "VGA_G\[3\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "VGA_G\[4\] " "Ignored I/O standard assignment to node \"VGA_G\[4\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "VGA_G\[4\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "VGA_G\[5\] " "Ignored I/O standard assignment to node \"VGA_G\[5\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "VGA_G\[5\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "VGA_G\[6\] " "Ignored I/O standard assignment to node \"VGA_G\[6\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "VGA_G\[6\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "VGA_G\[7\] " "Ignored I/O standard assignment to node \"VGA_G\[7\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "VGA_G\[7\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "VGA_HS " "Ignored I/O standard assignment to node \"VGA_HS\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "VGA_HS" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "VGA_R\[0\] " "Ignored I/O standard assignment to node \"VGA_R\[0\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "VGA_R\[0\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "VGA_R\[1\] " "Ignored I/O standard assignment to node \"VGA_R\[1\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "VGA_R\[1\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "VGA_R\[2\] " "Ignored I/O standard assignment to node \"VGA_R\[2\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "VGA_R\[2\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "VGA_R\[3\] " "Ignored I/O standard assignment to node \"VGA_R\[3\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "VGA_R\[3\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "VGA_R\[4\] " "Ignored I/O standard assignment to node \"VGA_R\[4\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "VGA_R\[4\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "VGA_R\[5\] " "Ignored I/O standard assignment to node \"VGA_R\[5\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "VGA_R\[5\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "VGA_R\[6\] " "Ignored I/O standard assignment to node \"VGA_R\[6\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "VGA_R\[6\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "VGA_R\[7\] " "Ignored I/O standard assignment to node \"VGA_R\[7\]\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "VGA_R\[7\]" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "VGA_SYNC_N " "Ignored I/O standard assignment to node \"VGA_SYNC_N\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "VGA_SYNC_N" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} { "Warning" "WCUT_CUT_UNATTACHED_IO_STANDARD_ASGN_SUB" "VGA_VS " "Ignored I/O standard assignment to node \"VGA_VS\"" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "VGA_VS" } } } } } 0 15710 "Ignored I/O standard assignment to node \"%1!s!\"" 0 0 "Quartus II" 0 -1 1480609295298 ""} } { } 0 15709 "Ignored I/O standard assignments to the following nodes" 0 0 "Fitter" 0 -1 1480609295298 ""} +{ "Warning" "WCUT_CUT_UNATTACHED_ASGN" "" "Ignored locations or region assignments to the following nodes" { { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "AUD_ADCDAT " "Node \"AUD_ADCDAT\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "AUD_ADCDAT" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "AUD_ADCLRCK " "Node \"AUD_ADCLRCK\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "AUD_ADCLRCK" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "AUD_BCLK " "Node \"AUD_BCLK\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "AUD_BCLK" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "AUD_DACDAT " "Node \"AUD_DACDAT\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "AUD_DACDAT" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "AUD_DACLRCK " "Node \"AUD_DACLRCK\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "AUD_DACLRCK" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "AUD_XCK " "Node \"AUD_XCK\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "AUD_XCK" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "CLOCK2_50 " "Node \"CLOCK2_50\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "CLOCK2_50" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "CLOCK3_50 " "Node \"CLOCK3_50\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "CLOCK3_50" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "DRAM_ADDR\[0\] " "Node \"DRAM_ADDR\[0\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_ADDR\[0\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "DRAM_ADDR\[10\] " "Node \"DRAM_ADDR\[10\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_ADDR\[10\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "DRAM_ADDR\[11\] " "Node \"DRAM_ADDR\[11\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_ADDR\[11\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "DRAM_ADDR\[12\] " "Node \"DRAM_ADDR\[12\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_ADDR\[12\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "DRAM_ADDR\[1\] " "Node \"DRAM_ADDR\[1\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_ADDR\[1\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "DRAM_ADDR\[2\] " "Node \"DRAM_ADDR\[2\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_ADDR\[2\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "DRAM_ADDR\[3\] " "Node \"DRAM_ADDR\[3\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_ADDR\[3\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "DRAM_ADDR\[4\] " "Node \"DRAM_ADDR\[4\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_ADDR\[4\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "DRAM_ADDR\[5\] " "Node \"DRAM_ADDR\[5\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_ADDR\[5\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "DRAM_ADDR\[6\] " "Node \"DRAM_ADDR\[6\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_ADDR\[6\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "DRAM_ADDR\[7\] " "Node \"DRAM_ADDR\[7\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_ADDR\[7\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "DRAM_ADDR\[8\] " "Node \"DRAM_ADDR\[8\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_ADDR\[8\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "DRAM_ADDR\[9\] " "Node \"DRAM_ADDR\[9\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_ADDR\[9\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "DRAM_BA\[0\] " "Node \"DRAM_BA\[0\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_BA\[0\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "DRAM_BA\[1\] " "Node \"DRAM_BA\[1\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_BA\[1\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "DRAM_CAS_N " "Node \"DRAM_CAS_N\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_CAS_N" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "DRAM_CKE " "Node \"DRAM_CKE\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_CKE" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "DRAM_CLK " "Node \"DRAM_CLK\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_CLK" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "DRAM_CS_N " "Node \"DRAM_CS_N\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_CS_N" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "DRAM_DQM\[0\] " "Node \"DRAM_DQM\[0\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQM\[0\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "DRAM_DQM\[1\] " "Node \"DRAM_DQM\[1\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQM\[1\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "DRAM_DQM\[2\] " "Node \"DRAM_DQM\[2\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQM\[2\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "DRAM_DQM\[3\] " "Node \"DRAM_DQM\[3\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQM\[3\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "DRAM_DQ\[0\] " "Node \"DRAM_DQ\[0\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQ\[0\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "DRAM_DQ\[10\] " "Node \"DRAM_DQ\[10\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQ\[10\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "DRAM_DQ\[11\] " "Node \"DRAM_DQ\[11\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQ\[11\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "DRAM_DQ\[12\] " "Node \"DRAM_DQ\[12\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQ\[12\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "DRAM_DQ\[13\] " "Node \"DRAM_DQ\[13\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQ\[13\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "DRAM_DQ\[14\] " "Node \"DRAM_DQ\[14\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQ\[14\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "DRAM_DQ\[15\] " "Node \"DRAM_DQ\[15\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQ\[15\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "DRAM_DQ\[16\] " "Node \"DRAM_DQ\[16\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQ\[16\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "DRAM_DQ\[17\] " "Node \"DRAM_DQ\[17\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQ\[17\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "DRAM_DQ\[18\] " "Node \"DRAM_DQ\[18\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQ\[18\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "DRAM_DQ\[19\] " "Node \"DRAM_DQ\[19\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQ\[19\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "DRAM_DQ\[1\] " "Node \"DRAM_DQ\[1\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQ\[1\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "DRAM_DQ\[20\] " "Node \"DRAM_DQ\[20\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQ\[20\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "DRAM_DQ\[21\] " "Node \"DRAM_DQ\[21\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQ\[21\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "DRAM_DQ\[22\] " "Node \"DRAM_DQ\[22\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQ\[22\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "DRAM_DQ\[23\] " "Node \"DRAM_DQ\[23\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQ\[23\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "DRAM_DQ\[24\] " "Node \"DRAM_DQ\[24\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQ\[24\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "DRAM_DQ\[25\] " "Node \"DRAM_DQ\[25\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQ\[25\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "DRAM_DQ\[26\] " "Node \"DRAM_DQ\[26\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQ\[26\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "DRAM_DQ\[27\] " "Node \"DRAM_DQ\[27\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQ\[27\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "DRAM_DQ\[28\] " "Node \"DRAM_DQ\[28\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQ\[28\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "DRAM_DQ\[29\] " "Node \"DRAM_DQ\[29\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQ\[29\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "DRAM_DQ\[2\] " "Node \"DRAM_DQ\[2\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQ\[2\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "DRAM_DQ\[30\] " "Node \"DRAM_DQ\[30\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQ\[30\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "DRAM_DQ\[31\] " "Node \"DRAM_DQ\[31\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQ\[31\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "DRAM_DQ\[3\] " "Node \"DRAM_DQ\[3\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQ\[3\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "DRAM_DQ\[4\] " "Node \"DRAM_DQ\[4\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQ\[4\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "DRAM_DQ\[5\] " "Node \"DRAM_DQ\[5\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQ\[5\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "DRAM_DQ\[6\] " "Node \"DRAM_DQ\[6\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQ\[6\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "DRAM_DQ\[7\] " "Node \"DRAM_DQ\[7\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQ\[7\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "DRAM_DQ\[8\] " "Node \"DRAM_DQ\[8\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQ\[8\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "DRAM_DQ\[9\] " "Node \"DRAM_DQ\[9\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_DQ\[9\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "DRAM_RAS_N " "Node \"DRAM_RAS_N\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_RAS_N" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "DRAM_WE_N " "Node \"DRAM_WE_N\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "DRAM_WE_N" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "EEP_I2C_SCLK " "Node \"EEP_I2C_SCLK\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "EEP_I2C_SCLK" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "EEP_I2C_SDAT " "Node \"EEP_I2C_SDAT\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "EEP_I2C_SDAT" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "ENET0_GTX_CLK " "Node \"ENET0_GTX_CLK\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET0_GTX_CLK" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "ENET0_INT_N " "Node \"ENET0_INT_N\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET0_INT_N" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "ENET0_LINK100 " "Node \"ENET0_LINK100\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET0_LINK100" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "ENET0_MDC " "Node \"ENET0_MDC\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET0_MDC" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "ENET0_MDIO " "Node \"ENET0_MDIO\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET0_MDIO" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "ENET0_RST_N " "Node \"ENET0_RST_N\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET0_RST_N" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "ENET0_RX_CLK " "Node \"ENET0_RX_CLK\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET0_RX_CLK" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "ENET0_RX_COL " "Node \"ENET0_RX_COL\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET0_RX_COL" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "ENET0_RX_CRS " "Node \"ENET0_RX_CRS\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET0_RX_CRS" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "ENET0_RX_DATA\[0\] " "Node \"ENET0_RX_DATA\[0\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET0_RX_DATA\[0\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "ENET0_RX_DATA\[1\] " "Node \"ENET0_RX_DATA\[1\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET0_RX_DATA\[1\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "ENET0_RX_DATA\[2\] " "Node \"ENET0_RX_DATA\[2\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET0_RX_DATA\[2\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "ENET0_RX_DATA\[3\] " "Node \"ENET0_RX_DATA\[3\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET0_RX_DATA\[3\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "ENET0_RX_DV " "Node \"ENET0_RX_DV\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET0_RX_DV" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "ENET0_RX_ER " "Node \"ENET0_RX_ER\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET0_RX_ER" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "ENET0_TX_CLK " "Node \"ENET0_TX_CLK\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET0_TX_CLK" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "ENET0_TX_DATA\[0\] " "Node \"ENET0_TX_DATA\[0\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET0_TX_DATA\[0\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "ENET0_TX_DATA\[1\] " "Node \"ENET0_TX_DATA\[1\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET0_TX_DATA\[1\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "ENET0_TX_DATA\[2\] " "Node \"ENET0_TX_DATA\[2\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET0_TX_DATA\[2\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "ENET0_TX_DATA\[3\] " "Node \"ENET0_TX_DATA\[3\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET0_TX_DATA\[3\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "ENET0_TX_EN " "Node \"ENET0_TX_EN\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET0_TX_EN" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "ENET0_TX_ER " "Node \"ENET0_TX_ER\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET0_TX_ER" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "ENET1_GTX_CLK " "Node \"ENET1_GTX_CLK\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET1_GTX_CLK" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "ENET1_INT_N " "Node \"ENET1_INT_N\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET1_INT_N" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "ENET1_LINK100 " "Node \"ENET1_LINK100\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET1_LINK100" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "ENET1_MDC " "Node \"ENET1_MDC\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET1_MDC" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "ENET1_MDIO " "Node \"ENET1_MDIO\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET1_MDIO" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "ENET1_RST_N " "Node \"ENET1_RST_N\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET1_RST_N" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "ENET1_RX_CLK " "Node \"ENET1_RX_CLK\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET1_RX_CLK" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "ENET1_RX_COL " "Node \"ENET1_RX_COL\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET1_RX_COL" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "ENET1_RX_CRS " "Node \"ENET1_RX_CRS\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET1_RX_CRS" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "ENET1_RX_DATA\[0\] " "Node \"ENET1_RX_DATA\[0\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET1_RX_DATA\[0\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "ENET1_RX_DATA\[1\] " "Node \"ENET1_RX_DATA\[1\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET1_RX_DATA\[1\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "ENET1_RX_DATA\[2\] " "Node \"ENET1_RX_DATA\[2\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET1_RX_DATA\[2\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "ENET1_RX_DATA\[3\] " "Node \"ENET1_RX_DATA\[3\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET1_RX_DATA\[3\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "ENET1_RX_DV " "Node \"ENET1_RX_DV\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET1_RX_DV" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "ENET1_RX_ER " "Node \"ENET1_RX_ER\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET1_RX_ER" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "ENET1_TX_CLK " "Node \"ENET1_TX_CLK\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET1_TX_CLK" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "ENET1_TX_DATA\[0\] " "Node \"ENET1_TX_DATA\[0\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET1_TX_DATA\[0\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "ENET1_TX_DATA\[1\] " "Node \"ENET1_TX_DATA\[1\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET1_TX_DATA\[1\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "ENET1_TX_DATA\[2\] " "Node \"ENET1_TX_DATA\[2\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET1_TX_DATA\[2\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "ENET1_TX_DATA\[3\] " "Node \"ENET1_TX_DATA\[3\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET1_TX_DATA\[3\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "ENET1_TX_EN " "Node \"ENET1_TX_EN\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET1_TX_EN" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "ENET1_TX_ER " "Node \"ENET1_TX_ER\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENET1_TX_ER" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "ENETCLK_25 " "Node \"ENETCLK_25\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "ENETCLK_25" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "EX_IO\[0\] " "Node \"EX_IO\[0\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "EX_IO\[0\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "EX_IO\[1\] " "Node \"EX_IO\[1\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "EX_IO\[1\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "EX_IO\[2\] " "Node \"EX_IO\[2\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "EX_IO\[2\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "EX_IO\[3\] " "Node \"EX_IO\[3\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "EX_IO\[3\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "EX_IO\[4\] " "Node \"EX_IO\[4\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "EX_IO\[4\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "EX_IO\[5\] " "Node \"EX_IO\[5\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "EX_IO\[5\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "EX_IO\[6\] " "Node \"EX_IO\[6\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "EX_IO\[6\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "FL_ADDR\[0\] " "Node \"FL_ADDR\[0\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_ADDR\[0\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "FL_ADDR\[10\] " "Node \"FL_ADDR\[10\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_ADDR\[10\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "FL_ADDR\[11\] " "Node \"FL_ADDR\[11\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_ADDR\[11\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "FL_ADDR\[12\] " "Node \"FL_ADDR\[12\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_ADDR\[12\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "FL_ADDR\[13\] " "Node \"FL_ADDR\[13\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_ADDR\[13\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "FL_ADDR\[14\] " "Node \"FL_ADDR\[14\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_ADDR\[14\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "FL_ADDR\[15\] " "Node \"FL_ADDR\[15\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_ADDR\[15\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "FL_ADDR\[16\] " "Node \"FL_ADDR\[16\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_ADDR\[16\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "FL_ADDR\[17\] " "Node \"FL_ADDR\[17\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_ADDR\[17\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "FL_ADDR\[18\] " "Node \"FL_ADDR\[18\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_ADDR\[18\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "FL_ADDR\[19\] " "Node \"FL_ADDR\[19\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_ADDR\[19\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "FL_ADDR\[1\] " "Node \"FL_ADDR\[1\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_ADDR\[1\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "FL_ADDR\[20\] " "Node \"FL_ADDR\[20\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_ADDR\[20\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "FL_ADDR\[21\] " "Node \"FL_ADDR\[21\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_ADDR\[21\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "FL_ADDR\[22\] " "Node \"FL_ADDR\[22\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_ADDR\[22\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "FL_ADDR\[2\] " "Node \"FL_ADDR\[2\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_ADDR\[2\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "FL_ADDR\[3\] " "Node \"FL_ADDR\[3\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_ADDR\[3\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "FL_ADDR\[4\] " "Node \"FL_ADDR\[4\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_ADDR\[4\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "FL_ADDR\[5\] " "Node \"FL_ADDR\[5\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_ADDR\[5\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "FL_ADDR\[6\] " "Node \"FL_ADDR\[6\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_ADDR\[6\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "FL_ADDR\[7\] " "Node \"FL_ADDR\[7\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_ADDR\[7\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "FL_ADDR\[8\] " "Node \"FL_ADDR\[8\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_ADDR\[8\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "FL_ADDR\[9\] " "Node \"FL_ADDR\[9\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_ADDR\[9\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "FL_CE_N " "Node \"FL_CE_N\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_CE_N" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "FL_DQ\[0\] " "Node \"FL_DQ\[0\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_DQ\[0\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "FL_DQ\[1\] " "Node \"FL_DQ\[1\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_DQ\[1\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "FL_DQ\[2\] " "Node \"FL_DQ\[2\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_DQ\[2\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "FL_DQ\[3\] " "Node \"FL_DQ\[3\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_DQ\[3\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "FL_DQ\[4\] " "Node \"FL_DQ\[4\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_DQ\[4\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "FL_DQ\[5\] " "Node \"FL_DQ\[5\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_DQ\[5\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "FL_DQ\[6\] " "Node \"FL_DQ\[6\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_DQ\[6\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "FL_DQ\[7\] " "Node \"FL_DQ\[7\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_DQ\[7\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "FL_OE_N " "Node \"FL_OE_N\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_OE_N" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "FL_RST_N " "Node \"FL_RST_N\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_RST_N" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "FL_RY " "Node \"FL_RY\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_RY" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "FL_WE_N " "Node \"FL_WE_N\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_WE_N" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "FL_WP_N " "Node \"FL_WP_N\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "FL_WP_N" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "GPIO\[0\] " "Node \"GPIO\[0\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[0\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "GPIO\[10\] " "Node \"GPIO\[10\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[10\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "GPIO\[11\] " "Node \"GPIO\[11\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[11\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "GPIO\[12\] " "Node \"GPIO\[12\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[12\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "GPIO\[13\] " "Node \"GPIO\[13\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[13\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "GPIO\[14\] " "Node \"GPIO\[14\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[14\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "GPIO\[15\] " "Node \"GPIO\[15\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[15\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "GPIO\[16\] " "Node \"GPIO\[16\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[16\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "GPIO\[17\] " "Node \"GPIO\[17\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[17\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "GPIO\[18\] " "Node \"GPIO\[18\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[18\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "GPIO\[19\] " "Node \"GPIO\[19\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[19\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "GPIO\[1\] " "Node \"GPIO\[1\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[1\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "GPIO\[20\] " "Node \"GPIO\[20\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[20\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "GPIO\[21\] " "Node \"GPIO\[21\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[21\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "GPIO\[22\] " "Node \"GPIO\[22\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[22\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "GPIO\[23\] " "Node \"GPIO\[23\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[23\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "GPIO\[24\] " "Node \"GPIO\[24\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[24\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "GPIO\[25\] " "Node \"GPIO\[25\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[25\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "GPIO\[26\] " "Node \"GPIO\[26\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[26\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "GPIO\[27\] " "Node \"GPIO\[27\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[27\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "GPIO\[28\] " "Node \"GPIO\[28\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[28\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "GPIO\[29\] " "Node \"GPIO\[29\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[29\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "GPIO\[2\] " "Node \"GPIO\[2\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[2\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "GPIO\[30\] " "Node \"GPIO\[30\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[30\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "GPIO\[31\] " "Node \"GPIO\[31\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[31\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "GPIO\[32\] " "Node \"GPIO\[32\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[32\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "GPIO\[33\] " "Node \"GPIO\[33\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[33\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "GPIO\[34\] " "Node \"GPIO\[34\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[34\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "GPIO\[35\] " "Node \"GPIO\[35\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[35\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "GPIO\[3\] " "Node \"GPIO\[3\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[3\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "GPIO\[4\] " "Node \"GPIO\[4\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[4\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "GPIO\[5\] " "Node \"GPIO\[5\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[5\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "GPIO\[6\] " "Node \"GPIO\[6\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[6\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "GPIO\[7\] " "Node \"GPIO\[7\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[7\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "GPIO\[8\] " "Node \"GPIO\[8\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[8\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "GPIO\[9\] " "Node \"GPIO\[9\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "GPIO\[9\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_CLKIN0 " "Node \"HSMC_CLKIN0\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_CLKIN0" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_CLKIN_N1 " "Node \"HSMC_CLKIN_N1\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_CLKIN_N1" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_CLKIN_N2 " "Node \"HSMC_CLKIN_N2\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_CLKIN_N2" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_CLKIN_P1 " "Node \"HSMC_CLKIN_P1\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_CLKIN_P1" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_CLKIN_P2 " "Node \"HSMC_CLKIN_P2\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_CLKIN_P2" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_CLKOUT0 " "Node \"HSMC_CLKOUT0\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_CLKOUT0" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_CLKOUT_N1 " "Node \"HSMC_CLKOUT_N1\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_CLKOUT_N1" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_CLKOUT_N2 " "Node \"HSMC_CLKOUT_N2\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_CLKOUT_N2" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_CLKOUT_P1 " "Node \"HSMC_CLKOUT_P1\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_CLKOUT_P1" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_CLKOUT_P2 " "Node \"HSMC_CLKOUT_P2\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_CLKOUT_P2" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_D\[0\] " "Node \"HSMC_D\[0\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_D\[0\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_D\[1\] " "Node \"HSMC_D\[1\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_D\[1\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_D\[2\] " "Node \"HSMC_D\[2\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_D\[2\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_D\[3\] " "Node \"HSMC_D\[3\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_D\[3\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_RX_D_N\[0\] " "Node \"HSMC_RX_D_N\[0\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_N\[0\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_RX_D_N\[10\] " "Node \"HSMC_RX_D_N\[10\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_N\[10\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_RX_D_N\[11\] " "Node \"HSMC_RX_D_N\[11\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_N\[11\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_RX_D_N\[12\] " "Node \"HSMC_RX_D_N\[12\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_N\[12\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_RX_D_N\[13\] " "Node \"HSMC_RX_D_N\[13\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_N\[13\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_RX_D_N\[14\] " "Node \"HSMC_RX_D_N\[14\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_N\[14\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_RX_D_N\[15\] " "Node \"HSMC_RX_D_N\[15\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_N\[15\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_RX_D_N\[16\] " "Node \"HSMC_RX_D_N\[16\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_N\[16\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_RX_D_N\[1\] " "Node \"HSMC_RX_D_N\[1\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_N\[1\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_RX_D_N\[2\] " "Node \"HSMC_RX_D_N\[2\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_N\[2\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_RX_D_N\[3\] " "Node \"HSMC_RX_D_N\[3\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_N\[3\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_RX_D_N\[4\] " "Node \"HSMC_RX_D_N\[4\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_N\[4\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_RX_D_N\[5\] " "Node \"HSMC_RX_D_N\[5\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_N\[5\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_RX_D_N\[6\] " "Node \"HSMC_RX_D_N\[6\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_N\[6\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_RX_D_N\[7\] " "Node \"HSMC_RX_D_N\[7\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_N\[7\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_RX_D_N\[8\] " "Node \"HSMC_RX_D_N\[8\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_N\[8\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_RX_D_N\[9\] " "Node \"HSMC_RX_D_N\[9\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_N\[9\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_RX_D_P\[0\] " "Node \"HSMC_RX_D_P\[0\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_P\[0\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_RX_D_P\[10\] " "Node \"HSMC_RX_D_P\[10\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_P\[10\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_RX_D_P\[11\] " "Node \"HSMC_RX_D_P\[11\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_P\[11\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_RX_D_P\[12\] " "Node \"HSMC_RX_D_P\[12\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_P\[12\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_RX_D_P\[13\] " "Node \"HSMC_RX_D_P\[13\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_P\[13\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_RX_D_P\[14\] " "Node \"HSMC_RX_D_P\[14\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_P\[14\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_RX_D_P\[15\] " "Node \"HSMC_RX_D_P\[15\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_P\[15\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_RX_D_P\[16\] " "Node \"HSMC_RX_D_P\[16\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_P\[16\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_RX_D_P\[1\] " "Node \"HSMC_RX_D_P\[1\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_P\[1\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_RX_D_P\[2\] " "Node \"HSMC_RX_D_P\[2\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_P\[2\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_RX_D_P\[3\] " "Node \"HSMC_RX_D_P\[3\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_P\[3\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_RX_D_P\[4\] " "Node \"HSMC_RX_D_P\[4\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_P\[4\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_RX_D_P\[5\] " "Node \"HSMC_RX_D_P\[5\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_P\[5\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_RX_D_P\[6\] " "Node \"HSMC_RX_D_P\[6\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_P\[6\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_RX_D_P\[7\] " "Node \"HSMC_RX_D_P\[7\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_P\[7\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_RX_D_P\[8\] " "Node \"HSMC_RX_D_P\[8\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_P\[8\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_RX_D_P\[9\] " "Node \"HSMC_RX_D_P\[9\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_RX_D_P\[9\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_TX_D_N\[0\] " "Node \"HSMC_TX_D_N\[0\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_N\[0\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_TX_D_N\[10\] " "Node \"HSMC_TX_D_N\[10\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_N\[10\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_TX_D_N\[11\] " "Node \"HSMC_TX_D_N\[11\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_N\[11\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_TX_D_N\[12\] " "Node \"HSMC_TX_D_N\[12\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_N\[12\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_TX_D_N\[13\] " "Node \"HSMC_TX_D_N\[13\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_N\[13\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_TX_D_N\[14\] " "Node \"HSMC_TX_D_N\[14\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_N\[14\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_TX_D_N\[15\] " "Node \"HSMC_TX_D_N\[15\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_N\[15\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_TX_D_N\[16\] " "Node \"HSMC_TX_D_N\[16\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_N\[16\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_TX_D_N\[1\] " "Node \"HSMC_TX_D_N\[1\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_N\[1\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_TX_D_N\[2\] " "Node \"HSMC_TX_D_N\[2\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_N\[2\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_TX_D_N\[3\] " "Node \"HSMC_TX_D_N\[3\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_N\[3\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_TX_D_N\[4\] " "Node \"HSMC_TX_D_N\[4\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_N\[4\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_TX_D_N\[5\] " "Node \"HSMC_TX_D_N\[5\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_N\[5\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_TX_D_N\[6\] " "Node \"HSMC_TX_D_N\[6\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_N\[6\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_TX_D_N\[7\] " "Node \"HSMC_TX_D_N\[7\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_N\[7\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_TX_D_N\[8\] " "Node \"HSMC_TX_D_N\[8\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_N\[8\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_TX_D_N\[9\] " "Node \"HSMC_TX_D_N\[9\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_N\[9\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_TX_D_P\[0\] " "Node \"HSMC_TX_D_P\[0\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_P\[0\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_TX_D_P\[10\] " "Node \"HSMC_TX_D_P\[10\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_P\[10\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_TX_D_P\[11\] " "Node \"HSMC_TX_D_P\[11\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_P\[11\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_TX_D_P\[12\] " "Node \"HSMC_TX_D_P\[12\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_P\[12\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_TX_D_P\[13\] " "Node \"HSMC_TX_D_P\[13\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_P\[13\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_TX_D_P\[14\] " "Node \"HSMC_TX_D_P\[14\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_P\[14\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_TX_D_P\[15\] " "Node \"HSMC_TX_D_P\[15\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_P\[15\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_TX_D_P\[16\] " "Node \"HSMC_TX_D_P\[16\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_P\[16\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_TX_D_P\[1\] " "Node \"HSMC_TX_D_P\[1\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_P\[1\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_TX_D_P\[2\] " "Node \"HSMC_TX_D_P\[2\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_P\[2\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_TX_D_P\[3\] " "Node \"HSMC_TX_D_P\[3\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_P\[3\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_TX_D_P\[4\] " "Node \"HSMC_TX_D_P\[4\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_P\[4\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_TX_D_P\[5\] " "Node \"HSMC_TX_D_P\[5\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_P\[5\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_TX_D_P\[6\] " "Node \"HSMC_TX_D_P\[6\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_P\[6\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_TX_D_P\[7\] " "Node \"HSMC_TX_D_P\[7\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_P\[7\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_TX_D_P\[8\] " "Node \"HSMC_TX_D_P\[8\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_P\[8\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "HSMC_TX_D_P\[9\] " "Node \"HSMC_TX_D_P\[9\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "HSMC_TX_D_P\[9\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "I2C_SCLK " "Node \"I2C_SCLK\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "I2C_SCLK" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "I2C_SDAT " "Node \"I2C_SDAT\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "I2C_SDAT" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "IRDA_RXD " "Node \"IRDA_RXD\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "IRDA_RXD" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "LCD_EN " "Node \"LCD_EN\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "LCD_EN" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "LEDG\[8\] " "Node \"LEDG\[8\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "LEDG\[8\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "OTG_ADDR\[0\] " "Node \"OTG_ADDR\[0\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "OTG_ADDR\[0\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "OTG_ADDR\[1\] " "Node \"OTG_ADDR\[1\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "OTG_ADDR\[1\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "OTG_CS_N " "Node \"OTG_CS_N\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "OTG_CS_N" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "OTG_DACK_N\[0\] " "Node \"OTG_DACK_N\[0\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "OTG_DACK_N\[0\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "OTG_DACK_N\[1\] " "Node \"OTG_DACK_N\[1\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "OTG_DACK_N\[1\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "OTG_DATA\[0\] " "Node \"OTG_DATA\[0\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "OTG_DATA\[0\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "OTG_DATA\[10\] " "Node \"OTG_DATA\[10\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "OTG_DATA\[10\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "OTG_DATA\[11\] " "Node \"OTG_DATA\[11\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "OTG_DATA\[11\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "OTG_DATA\[12\] " "Node \"OTG_DATA\[12\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "OTG_DATA\[12\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "OTG_DATA\[13\] " "Node \"OTG_DATA\[13\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "OTG_DATA\[13\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "OTG_DATA\[14\] " "Node \"OTG_DATA\[14\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "OTG_DATA\[14\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "OTG_DATA\[15\] " "Node \"OTG_DATA\[15\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "OTG_DATA\[15\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "OTG_DATA\[1\] " "Node \"OTG_DATA\[1\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "OTG_DATA\[1\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "OTG_DATA\[2\] " "Node \"OTG_DATA\[2\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "OTG_DATA\[2\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "OTG_DATA\[3\] " "Node \"OTG_DATA\[3\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "OTG_DATA\[3\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "OTG_DATA\[4\] " "Node \"OTG_DATA\[4\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "OTG_DATA\[4\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "OTG_DATA\[5\] " "Node \"OTG_DATA\[5\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "OTG_DATA\[5\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "OTG_DATA\[6\] " "Node \"OTG_DATA\[6\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "OTG_DATA\[6\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "OTG_DATA\[7\] " "Node \"OTG_DATA\[7\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "OTG_DATA\[7\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "OTG_DATA\[8\] " "Node \"OTG_DATA\[8\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "OTG_DATA\[8\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "OTG_DATA\[9\] " "Node \"OTG_DATA\[9\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "OTG_DATA\[9\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "OTG_DREQ\[0\] " "Node \"OTG_DREQ\[0\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "OTG_DREQ\[0\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "OTG_DREQ\[1\] " "Node \"OTG_DREQ\[1\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "OTG_DREQ\[1\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "OTG_FSPEED " "Node \"OTG_FSPEED\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "OTG_FSPEED" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "OTG_INT\[0\] " "Node \"OTG_INT\[0\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "OTG_INT\[0\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "OTG_INT\[1\] " "Node \"OTG_INT\[1\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "OTG_INT\[1\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "OTG_LSPEED " "Node \"OTG_LSPEED\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "OTG_LSPEED" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "OTG_RD_N " "Node \"OTG_RD_N\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "OTG_RD_N" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "OTG_RST_N " "Node \"OTG_RST_N\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "OTG_RST_N" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "OTG_WR_N " "Node \"OTG_WR_N\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "OTG_WR_N" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "PS2_CLK " "Node \"PS2_CLK\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "PS2_CLK" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "PS2_CLK2 " "Node \"PS2_CLK2\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "PS2_CLK2" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "PS2_DAT " "Node \"PS2_DAT\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "PS2_DAT" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "PS2_DAT2 " "Node \"PS2_DAT2\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "PS2_DAT2" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "SD_CLK " "Node \"SD_CLK\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SD_CLK" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "SD_CMD " "Node \"SD_CMD\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SD_CMD" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "SD_DAT\[0\] " "Node \"SD_DAT\[0\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SD_DAT\[0\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "SD_DAT\[1\] " "Node \"SD_DAT\[1\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SD_DAT\[1\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "SD_DAT\[2\] " "Node \"SD_DAT\[2\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SD_DAT\[2\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "SD_DAT\[3\] " "Node \"SD_DAT\[3\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SD_DAT\[3\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "SD_WP_N " "Node \"SD_WP_N\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SD_WP_N" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "SMA_CLKIN " "Node \"SMA_CLKIN\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SMA_CLKIN" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "SMA_CLKOUT " "Node \"SMA_CLKOUT\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SMA_CLKOUT" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "SRAM_ADDR\[0\] " "Node \"SRAM_ADDR\[0\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_ADDR\[0\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "SRAM_ADDR\[10\] " "Node \"SRAM_ADDR\[10\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_ADDR\[10\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "SRAM_ADDR\[11\] " "Node \"SRAM_ADDR\[11\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_ADDR\[11\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "SRAM_ADDR\[12\] " "Node \"SRAM_ADDR\[12\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_ADDR\[12\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "SRAM_ADDR\[13\] " "Node \"SRAM_ADDR\[13\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_ADDR\[13\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "SRAM_ADDR\[14\] " "Node \"SRAM_ADDR\[14\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_ADDR\[14\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "SRAM_ADDR\[15\] " "Node \"SRAM_ADDR\[15\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_ADDR\[15\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "SRAM_ADDR\[16\] " "Node \"SRAM_ADDR\[16\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_ADDR\[16\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "SRAM_ADDR\[17\] " "Node \"SRAM_ADDR\[17\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_ADDR\[17\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "SRAM_ADDR\[18\] " "Node \"SRAM_ADDR\[18\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_ADDR\[18\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "SRAM_ADDR\[19\] " "Node \"SRAM_ADDR\[19\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_ADDR\[19\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "SRAM_ADDR\[1\] " "Node \"SRAM_ADDR\[1\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_ADDR\[1\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "SRAM_ADDR\[2\] " "Node \"SRAM_ADDR\[2\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_ADDR\[2\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "SRAM_ADDR\[3\] " "Node \"SRAM_ADDR\[3\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_ADDR\[3\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "SRAM_ADDR\[4\] " "Node \"SRAM_ADDR\[4\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_ADDR\[4\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "SRAM_ADDR\[5\] " "Node \"SRAM_ADDR\[5\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_ADDR\[5\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "SRAM_ADDR\[6\] " "Node \"SRAM_ADDR\[6\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_ADDR\[6\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "SRAM_ADDR\[7\] " "Node \"SRAM_ADDR\[7\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_ADDR\[7\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "SRAM_ADDR\[8\] " "Node \"SRAM_ADDR\[8\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_ADDR\[8\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "SRAM_ADDR\[9\] " "Node \"SRAM_ADDR\[9\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_ADDR\[9\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "SRAM_CE_N " "Node \"SRAM_CE_N\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_CE_N" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "SRAM_DQ\[0\] " "Node \"SRAM_DQ\[0\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_DQ\[0\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "SRAM_DQ\[10\] " "Node \"SRAM_DQ\[10\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_DQ\[10\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "SRAM_DQ\[11\] " "Node \"SRAM_DQ\[11\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_DQ\[11\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "SRAM_DQ\[12\] " "Node \"SRAM_DQ\[12\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_DQ\[12\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "SRAM_DQ\[13\] " "Node \"SRAM_DQ\[13\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_DQ\[13\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "SRAM_DQ\[14\] " "Node \"SRAM_DQ\[14\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_DQ\[14\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "SRAM_DQ\[15\] " "Node \"SRAM_DQ\[15\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_DQ\[15\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "SRAM_DQ\[1\] " "Node \"SRAM_DQ\[1\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_DQ\[1\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "SRAM_DQ\[2\] " "Node \"SRAM_DQ\[2\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_DQ\[2\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "SRAM_DQ\[3\] " "Node \"SRAM_DQ\[3\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_DQ\[3\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "SRAM_DQ\[4\] " "Node \"SRAM_DQ\[4\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_DQ\[4\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "SRAM_DQ\[5\] " "Node \"SRAM_DQ\[5\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_DQ\[5\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "SRAM_DQ\[6\] " "Node \"SRAM_DQ\[6\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_DQ\[6\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "SRAM_DQ\[7\] " "Node \"SRAM_DQ\[7\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_DQ\[7\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "SRAM_DQ\[8\] " "Node \"SRAM_DQ\[8\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_DQ\[8\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "SRAM_DQ\[9\] " "Node \"SRAM_DQ\[9\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_DQ\[9\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "SRAM_LB_N " "Node \"SRAM_LB_N\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_LB_N" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "SRAM_OE_N " "Node \"SRAM_OE_N\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_OE_N" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "SRAM_UB_N " "Node \"SRAM_UB_N\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_UB_N" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "SRAM_WE_N " "Node \"SRAM_WE_N\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "SRAM_WE_N" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "TD_CLK27 " "Node \"TD_CLK27\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "TD_CLK27" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "TD_DATA\[0\] " "Node \"TD_DATA\[0\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "TD_DATA\[0\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "TD_DATA\[1\] " "Node \"TD_DATA\[1\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "TD_DATA\[1\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "TD_DATA\[2\] " "Node \"TD_DATA\[2\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "TD_DATA\[2\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "TD_DATA\[3\] " "Node \"TD_DATA\[3\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "TD_DATA\[3\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "TD_DATA\[4\] " "Node \"TD_DATA\[4\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "TD_DATA\[4\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "TD_DATA\[5\] " "Node \"TD_DATA\[5\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "TD_DATA\[5\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "TD_DATA\[6\] " "Node \"TD_DATA\[6\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "TD_DATA\[6\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "TD_DATA\[7\] " "Node \"TD_DATA\[7\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "TD_DATA\[7\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "TD_HS " "Node \"TD_HS\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "TD_HS" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "TD_RESET_N " "Node \"TD_RESET_N\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "TD_RESET_N" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "TD_VS " "Node \"TD_VS\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "TD_VS" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "UART_CTS " "Node \"UART_CTS\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "UART_CTS" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "UART_RTS " "Node \"UART_RTS\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "UART_RTS" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "UART_RXD " "Node \"UART_RXD\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "UART_RXD" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "UART_TXD " "Node \"UART_TXD\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "UART_TXD" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "VGA_BLANK_N " "Node \"VGA_BLANK_N\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "VGA_BLANK_N" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "VGA_B\[0\] " "Node \"VGA_B\[0\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "VGA_B\[0\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "VGA_B\[1\] " "Node \"VGA_B\[1\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "VGA_B\[1\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "VGA_B\[2\] " "Node \"VGA_B\[2\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "VGA_B\[2\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "VGA_B\[3\] " "Node \"VGA_B\[3\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "VGA_B\[3\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "VGA_B\[4\] " "Node \"VGA_B\[4\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "VGA_B\[4\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "VGA_B\[5\] " "Node \"VGA_B\[5\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "VGA_B\[5\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "VGA_B\[6\] " "Node \"VGA_B\[6\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "VGA_B\[6\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "VGA_B\[7\] " "Node \"VGA_B\[7\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "VGA_B\[7\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "VGA_CLK " "Node \"VGA_CLK\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "VGA_CLK" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "VGA_G\[0\] " "Node \"VGA_G\[0\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "VGA_G\[0\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "VGA_G\[1\] " "Node \"VGA_G\[1\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "VGA_G\[1\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "VGA_G\[2\] " "Node \"VGA_G\[2\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "VGA_G\[2\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "VGA_G\[3\] " "Node \"VGA_G\[3\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "VGA_G\[3\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "VGA_G\[4\] " "Node \"VGA_G\[4\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "VGA_G\[4\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "VGA_G\[5\] " "Node \"VGA_G\[5\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "VGA_G\[5\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "VGA_G\[6\] " "Node \"VGA_G\[6\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "VGA_G\[6\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "VGA_G\[7\] " "Node \"VGA_G\[7\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "VGA_G\[7\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "VGA_HS " "Node \"VGA_HS\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "VGA_HS" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "VGA_R\[0\] " "Node \"VGA_R\[0\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "VGA_R\[0\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "VGA_R\[1\] " "Node \"VGA_R\[1\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "VGA_R\[1\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "VGA_R\[2\] " "Node \"VGA_R\[2\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "VGA_R\[2\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "VGA_R\[3\] " "Node \"VGA_R\[3\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "VGA_R\[3\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "VGA_R\[4\] " "Node \"VGA_R\[4\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "VGA_R\[4\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "VGA_R\[5\] " "Node \"VGA_R\[5\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "VGA_R\[5\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "VGA_R\[6\] " "Node \"VGA_R\[6\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "VGA_R\[6\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "VGA_R\[7\] " "Node \"VGA_R\[7\]\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "VGA_R\[7\]" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "VGA_SYNC_N " "Node \"VGA_SYNC_N\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "VGA_SYNC_N" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} { "Warning" "WCUT_CUT_UNATTACHED_ASGN_SUB" "VGA_VS " "Node \"VGA_VS\" is assigned to location or region, but does not exist in design" { } { { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "VGA_VS" } } } } } 0 15706 "Node \"%1!s!\" is assigned to location or region, but does not exist in design" 0 0 "Quartus II" 0 -1 1480609295327 ""} } { } 0 15705 "Ignored locations or region assignments to the following nodes" 0 0 "Fitter" 0 -1 1480609295327 ""} +{ "Info" "IFITCC_FITTER_PREPARATION_END" "00:00:06 " "Fitter preparation operations ending: elapsed time is 00:00:06" { } { } 0 171121 "Fitter preparation operations ending: elapsed time is %1!s!" 0 0 "Fitter" 0 -1 1480609295357 ""} +{ "Info" "IFITAPI_FITAPI_VPR_FITTER_PLACEMENT_PREP_START" "" "Fitter placement preparation operations beginning" { } { } 0 170189 "Fitter placement preparation operations beginning" 0 0 "Fitter" 0 -1 1480609302965 ""} +{ "Info" "IFITAPI_FITAPI_VPR_FITTER_PLACEMENT_PREP_END" "00:00:02 " "Fitter placement preparation operations ending: elapsed time is 00:00:02" { } { } 0 170190 "Fitter placement preparation operations ending: elapsed time is %1!s!" 0 0 "Fitter" 0 -1 1480609304725 ""} +{ "Info" "IFITAPI_FITAPI_VPR_FITTER_PLACEMENT_START" "" "Fitter placement operations beginning" { } { } 0 170191 "Fitter placement operations beginning" 0 0 "Fitter" 0 -1 1480609304769 ""} +{ "Info" "IFITAPI_FITAPI_INFO_VPR_PLACEMENT_FINISH" "" "Fitter placement was successful" { } { } 0 170137 "Fitter placement was successful" 0 0 "Fitter" 0 -1 1480609307778 ""} +{ "Info" "IFITAPI_FITAPI_VPR_FITTER_PLACEMENT_END" "00:00:03 " "Fitter placement operations ending: elapsed time is 00:00:03" { } { } 0 170192 "Fitter placement operations ending: elapsed time is %1!s!" 0 0 "Fitter" 0 -1 1480609307779 ""} +{ "Info" "IFITAPI_FITAPI_VPR_FITTER_ROUTING_START" "" "Fitter routing operations beginning" { } { } 0 170193 "Fitter routing operations beginning" 0 0 "Fitter" 0 -1 1480609309715 ""} +{ "Info" "IFITAPI_FITAPI_VPR_PERCENT_ROUTING_RESOURCE_USAGE" "2 " "Router estimated average interconnect usage is 2% of the available device resources" { { "Info" "IFITAPI_FITAPI_VPR_PEAK_ROUTING_REGION" "22 X58_Y37 X68_Y48 " "Router estimated peak interconnect usage is 22% of the available device resources in the region that extends from location X58_Y37 to location X68_Y48" { } { { "loc" "" { Generic "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/" { { 1 { 0 "Router estimated peak interconnect usage is 22% of the available device resources in the region that extends from location X58_Y37 to location X68_Y48"} { { 11 { 0 "Router estimated peak interconnect usage is 22% of the available device resources in the region that extends from location X58_Y37 to location X68_Y48"} 58 37 11 12 } } } } } } } 0 170196 "Router estimated peak interconnect usage is %1!d!%% of the available device resources in the region that extends from location %2!s! to location %3!s!" 0 0 "Quartus II" 0 -1 1480609316983 ""} } { } 0 170195 "Router estimated average interconnect usage is %1!d!%% of the available device resources" 0 0 "Fitter" 0 -1 1480609316983 ""} +{ "Info" "IFITAPI_FITAPI_VPR_FITTER_ROUTING_END" "00:00:04 " "Fitter routing operations ending: elapsed time is 00:00:04" { } { } 0 170194 "Fitter routing operations ending: elapsed time is %1!s!" 0 0 "Fitter" 0 -1 1480609318123 ""} +{ "Info" "IFITAPI_FITAPI_VPR_AUTO_FIT_ENABLED_AND_USED" "" "The Fitter performed an Auto Fit compilation. Optimizations were skipped to reduce compilation time." { { "Info" "IFITAPI_FITAPI_VPR_AUTO_FIT_ENABLED_AND_USED_FOR_ROUTABILITY" "" "Optimizations that may affect the design's routability were skipped" { } { } 0 170201 "Optimizations that may affect the design's routability were skipped" 0 0 "Quartus II" 0 -1 1480609318126 ""} { "Info" "IFITAPI_FITAPI_VPR_AUTO_FIT_ENABLED_AND_USED_FOR_TIMING" "" "Optimizations that may affect the design's timing were skipped" { } { } 0 170200 "Optimizations that may affect the design's timing were skipped" 0 0 "Quartus II" 0 -1 1480609318126 ""} } { } 0 170199 "The Fitter performed an Auto Fit compilation. Optimizations were skipped to reduce compilation time." 0 0 "Fitter" 0 -1 1480609318126 ""} +{ "Info" "IVPR20K_VPR_TIMING_ANALYSIS_TIME" "0.83 " "Total time spent on timing analysis during the Fitter is 0.83 seconds." { } { } 0 11888 "Total time spent on timing analysis during the Fitter is %1!s! seconds." 0 0 "Fitter" 0 -1 1480609318321 ""} +{ "Info" "ITAPI_TAPI_STARTED" "" "Started post-fitting delay annotation" { } { } 0 334003 "Started post-fitting delay annotation" 0 0 "Fitter" 0 -1 1480609318412 ""} +{ "Info" "ITAPI_TAPI_COMPLETED" "" "Delay annotation completed successfully" { } { } 0 334004 "Delay annotation completed successfully" 0 0 "Fitter" 0 -1 1480609319674 ""} +{ "Info" "ITAPI_TAPI_STARTED" "" "Started post-fitting delay annotation" { } { } 0 334003 "Started post-fitting delay annotation" 0 0 "Fitter" 0 -1 1480609319768 ""} +{ "Info" "ITAPI_TAPI_COMPLETED" "" "Delay annotation completed successfully" { } { } 0 334004 "Delay annotation completed successfully" 0 0 "Fitter" 0 -1 1480609320969 ""} +{ "Info" "IFITCC_FITTER_POST_OPERATION_END" "00:00:04 " "Fitter post-fit operations ending: elapsed time is 00:00:04" { } { } 0 11218 "Fitter post-fit operations ending: elapsed time is %1!s!" 0 0 "Fitter" 0 -1 1480609322400 ""} +{ "Warning" "WFITCC_FITCC_IGNORED_ASSIGNMENT" "" "Found invalid Fitter assignments. See the Ignored Assignments panel in the Fitter Compilation Report for more information." { } { } 0 171167 "Found invalid Fitter assignments. See the Ignored Assignments panel in the Fitter Compilation Report for more information." 0 0 "Fitter" 0 -1 1480609324348 ""} +{ "Warning" "WFIOMGR_FIOMGR_REFER_APPNOTE_447_TOP_LEVEL" "9 Cyclone IV E " "9 pins must meet Altera requirements for 3.3-, 3.0-, and 2.5-V interfaces. For more information, refer to AN 447: Interfacing Cyclone IV E Devices with 3.3/3.0/2.5-V LVTTL/LVCMOS I/O Systems." { { "Info" "IFIOMGR_PIN_IO_STANDARD_LOCATION" "LCD_data\[0\] 3.3-V LVTTL L3 " "Pin LCD_data\[0\] uses I/O standard 3.3-V LVTTL at L3" { } { { "c:/altera/13.0sp1/quartus/bin64/pin_planner.ppl" "" { PinPlanner "c:/altera/13.0sp1/quartus/bin64/pin_planner.ppl" { LCD_data[0] } } } { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "LCD_data\[0\]" } } } } { "lights.vhd" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/lights.vhd" 20 0 0 } } { "c:/altera/13.0sp1/quartus/bin64/TimingClosureFloorplan.fld" "" { Floorplan "c:/altera/13.0sp1/quartus/bin64/TimingClosureFloorplan.fld" "" "" { LCD_data[0] } "NODE_NAME" } } { "temporary_test_loc" "" { Generic "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/" { { 0 { 0 ""} 0 352 9224 9983 0} } } } } 0 169178 "Pin %1!s! uses I/O standard %2!s! at %3!s!" 0 0 "Quartus II" 0 -1 1480609324401 ""} { "Info" "IFIOMGR_PIN_IO_STANDARD_LOCATION" "LCD_data\[1\] 3.3-V LVTTL L1 " "Pin LCD_data\[1\] uses I/O standard 3.3-V LVTTL at L1" { } { { "c:/altera/13.0sp1/quartus/bin64/pin_planner.ppl" "" { PinPlanner "c:/altera/13.0sp1/quartus/bin64/pin_planner.ppl" { LCD_data[1] } } } { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "LCD_data\[1\]" } } } } { "lights.vhd" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/lights.vhd" 20 0 0 } } { "c:/altera/13.0sp1/quartus/bin64/TimingClosureFloorplan.fld" "" { Floorplan "c:/altera/13.0sp1/quartus/bin64/TimingClosureFloorplan.fld" "" "" { LCD_data[1] } "NODE_NAME" } } { "temporary_test_loc" "" { Generic "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/" { { 0 { 0 ""} 0 353 9224 9983 0} } } } } 0 169178 "Pin %1!s! uses I/O standard %2!s! at %3!s!" 0 0 "Quartus II" 0 -1 1480609324401 ""} { "Info" "IFIOMGR_PIN_IO_STANDARD_LOCATION" "LCD_data\[2\] 3.3-V LVTTL L2 " "Pin LCD_data\[2\] uses I/O standard 3.3-V LVTTL at L2" { } { { "c:/altera/13.0sp1/quartus/bin64/pin_planner.ppl" "" { PinPlanner "c:/altera/13.0sp1/quartus/bin64/pin_planner.ppl" { LCD_data[2] } } } { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "LCD_data\[2\]" } } } } { "lights.vhd" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/lights.vhd" 20 0 0 } } { "c:/altera/13.0sp1/quartus/bin64/TimingClosureFloorplan.fld" "" { Floorplan "c:/altera/13.0sp1/quartus/bin64/TimingClosureFloorplan.fld" "" "" { LCD_data[2] } "NODE_NAME" } } { "temporary_test_loc" "" { Generic "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/" { { 0 { 0 ""} 0 354 9224 9983 0} } } } } 0 169178 "Pin %1!s! uses I/O standard %2!s! at %3!s!" 0 0 "Quartus II" 0 -1 1480609324401 ""} { "Info" "IFIOMGR_PIN_IO_STANDARD_LOCATION" "LCD_data\[3\] 3.3-V LVTTL K7 " "Pin LCD_data\[3\] uses I/O standard 3.3-V LVTTL at K7" { } { { "c:/altera/13.0sp1/quartus/bin64/pin_planner.ppl" "" { PinPlanner "c:/altera/13.0sp1/quartus/bin64/pin_planner.ppl" { LCD_data[3] } } } { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "LCD_data\[3\]" } } } } { "lights.vhd" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/lights.vhd" 20 0 0 } } { "c:/altera/13.0sp1/quartus/bin64/TimingClosureFloorplan.fld" "" { Floorplan "c:/altera/13.0sp1/quartus/bin64/TimingClosureFloorplan.fld" "" "" { LCD_data[3] } "NODE_NAME" } } { "temporary_test_loc" "" { Generic "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/" { { 0 { 0 ""} 0 355 9224 9983 0} } } } } 0 169178 "Pin %1!s! uses I/O standard %2!s! at %3!s!" 0 0 "Quartus II" 0 -1 1480609324401 ""} { "Info" "IFIOMGR_PIN_IO_STANDARD_LOCATION" "LCD_data\[4\] 3.3-V LVTTL K1 " "Pin LCD_data\[4\] uses I/O standard 3.3-V LVTTL at K1" { } { { "c:/altera/13.0sp1/quartus/bin64/pin_planner.ppl" "" { PinPlanner "c:/altera/13.0sp1/quartus/bin64/pin_planner.ppl" { LCD_data[4] } } } { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "LCD_data\[4\]" } } } } { "lights.vhd" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/lights.vhd" 20 0 0 } } { "c:/altera/13.0sp1/quartus/bin64/TimingClosureFloorplan.fld" "" { Floorplan "c:/altera/13.0sp1/quartus/bin64/TimingClosureFloorplan.fld" "" "" { LCD_data[4] } "NODE_NAME" } } { "temporary_test_loc" "" { Generic "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/" { { 0 { 0 ""} 0 356 9224 9983 0} } } } } 0 169178 "Pin %1!s! uses I/O standard %2!s! at %3!s!" 0 0 "Quartus II" 0 -1 1480609324401 ""} { "Info" "IFIOMGR_PIN_IO_STANDARD_LOCATION" "LCD_data\[5\] 3.3-V LVTTL K2 " "Pin LCD_data\[5\] uses I/O standard 3.3-V LVTTL at K2" { } { { "c:/altera/13.0sp1/quartus/bin64/pin_planner.ppl" "" { PinPlanner "c:/altera/13.0sp1/quartus/bin64/pin_planner.ppl" { LCD_data[5] } } } { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "LCD_data\[5\]" } } } } { "lights.vhd" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/lights.vhd" 20 0 0 } } { "c:/altera/13.0sp1/quartus/bin64/TimingClosureFloorplan.fld" "" { Floorplan "c:/altera/13.0sp1/quartus/bin64/TimingClosureFloorplan.fld" "" "" { LCD_data[5] } "NODE_NAME" } } { "temporary_test_loc" "" { Generic "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/" { { 0 { 0 ""} 0 357 9224 9983 0} } } } } 0 169178 "Pin %1!s! uses I/O standard %2!s! at %3!s!" 0 0 "Quartus II" 0 -1 1480609324401 ""} { "Info" "IFIOMGR_PIN_IO_STANDARD_LOCATION" "LCD_data\[6\] 3.3-V LVTTL M3 " "Pin LCD_data\[6\] uses I/O standard 3.3-V LVTTL at M3" { } { { "c:/altera/13.0sp1/quartus/bin64/pin_planner.ppl" "" { PinPlanner "c:/altera/13.0sp1/quartus/bin64/pin_planner.ppl" { LCD_data[6] } } } { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "LCD_data\[6\]" } } } } { "lights.vhd" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/lights.vhd" 20 0 0 } } { "c:/altera/13.0sp1/quartus/bin64/TimingClosureFloorplan.fld" "" { Floorplan "c:/altera/13.0sp1/quartus/bin64/TimingClosureFloorplan.fld" "" "" { LCD_data[6] } "NODE_NAME" } } { "temporary_test_loc" "" { Generic "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/" { { 0 { 0 ""} 0 358 9224 9983 0} } } } } 0 169178 "Pin %1!s! uses I/O standard %2!s! at %3!s!" 0 0 "Quartus II" 0 -1 1480609324401 ""} { "Info" "IFIOMGR_PIN_IO_STANDARD_LOCATION" "LCD_data\[7\] 3.3-V LVTTL M5 " "Pin LCD_data\[7\] uses I/O standard 3.3-V LVTTL at M5" { } { { "c:/altera/13.0sp1/quartus/bin64/pin_planner.ppl" "" { PinPlanner "c:/altera/13.0sp1/quartus/bin64/pin_planner.ppl" { LCD_data[7] } } } { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "LCD_data\[7\]" } } } } { "lights.vhd" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/lights.vhd" 20 0 0 } } { "c:/altera/13.0sp1/quartus/bin64/TimingClosureFloorplan.fld" "" { Floorplan "c:/altera/13.0sp1/quartus/bin64/TimingClosureFloorplan.fld" "" "" { LCD_data[7] } "NODE_NAME" } } { "temporary_test_loc" "" { Generic "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/" { { 0 { 0 ""} 0 359 9224 9983 0} } } } } 0 169178 "Pin %1!s! uses I/O standard %2!s! at %3!s!" 0 0 "Quartus II" 0 -1 1480609324401 ""} { "Info" "IFIOMGR_PIN_IO_STANDARD_LOCATION" "CLOCK_50 3.3-V LVTTL Y2 " "Pin CLOCK_50 uses I/O standard 3.3-V LVTTL at Y2" { } { { "c:/altera/13.0sp1/quartus/bin64/pin_planner.ppl" "" { PinPlanner "c:/altera/13.0sp1/quartus/bin64/pin_planner.ppl" { CLOCK_50 } } } { "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" "" { Assignment "c:/altera/13.0sp1/quartus/bin64/Assignment Editor.qase" 1 { { 0 "CLOCK_50" } } } } { "lights.vhd" "" { Text "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/lights.vhd" 5 0 0 } } { "c:/altera/13.0sp1/quartus/bin64/TimingClosureFloorplan.fld" "" { Floorplan "c:/altera/13.0sp1/quartus/bin64/TimingClosureFloorplan.fld" "" "" { CLOCK_50 } "NODE_NAME" } } { "temporary_test_loc" "" { Generic "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/" { { 0 { 0 ""} 0 360 9224 9983 0} } } } } 0 169178 "Pin %1!s! uses I/O standard %2!s! at %3!s!" 0 0 "Quartus II" 0 -1 1480609324401 ""} } { } 0 169177 "%1!d! pins must meet Altera requirements for 3.3-, 3.0-, and 2.5-V interfaces. For more information, refer to AN 447: Interfacing %2!s! Devices with 3.3/3.0/2.5-V LVTTL/LVCMOS I/O Systems." 0 0 "Fitter" 0 -1 1480609324401 ""} +{ "Info" "IRDB_WROTE_SUPPRESSED_MSGS" "C:/Users/takayun/Documents/DE2-115/qsys_tutorial/output_files/lights.fit.smsg " "Generated suppressed messages file C:/Users/takayun/Documents/DE2-115/qsys_tutorial/output_files/lights.fit.smsg" { } { } 0 144001 "Generated suppressed messages file %1!s!" 0 0 "Fitter" 0 -1 1480609325076 ""} +{ "Info" "IQEXE_ERROR_COUNT" "Fitter 0 s 830 s Quartus II 64-Bit " "Quartus II 64-Bit Fitter was successful. 0 errors, 830 warnings" { { "Info" "IQEXE_END_PEAK_VSIZE_MEMORY" "1010 " "Peak virtual memory: 1010 megabytes" { } { } 0 0 "Peak virtual memory: %1!s! megabytes" 0 0 "Quartus II" 0 -1 1480609327596 ""} { "Info" "IQEXE_END_BANNER_TIME" "Fri Dec 02 01:22:07 2016 " "Processing ended: Fri Dec 02 01:22:07 2016" { } { } 0 0 "Processing ended: %1!s!" 0 0 "Quartus II" 0 -1 1480609327596 ""} { "Info" "IQEXE_ELAPSED_TIME" "00:00:40 " "Elapsed time: 00:00:40" { } { } 0 0 "Elapsed time: %1!s!" 0 0 "Quartus II" 0 -1 1480609327596 ""} { "Info" "IQEXE_ELAPSED_CPU_TIME" "00:00:37 " "Total CPU time (on all processors): 00:00:37" { } { } 0 0 "Total CPU time (on all processors): %1!s!" 0 0 "Quartus II" 0 -1 1480609327596 ""} } { } 0 0 "%6!s! %1!s! was successful. %2!d! error%3!s!, %4!d! warning%5!s!" 0 0 "Fitter" 0 -1 1480609327596 ""} +{ "Info" "IQEXE_SEPARATOR" "" "*******************************************************************" { } { } 3 0 "*******************************************************************" 0 0 "Fitter" 0 -1 1480609328752 ""} +{ "Info" "IQEXE_START_BANNER_PRODUCT" "Assembler Quartus II 64-Bit " "Running Quartus II 64-Bit Assembler" { { "Info" "IQEXE_START_BANNER_VERSION" "Version 13.0.1 Build 232 06/12/2013 Service Pack 1 SJ Web Edition " "Version 13.0.1 Build 232 06/12/2013 Service Pack 1 SJ Web Edition" { } { } 0 0 "%1!s!" 0 0 "Quartus II" 0 -1 1480609328752 ""} { "Info" "IQEXE_START_BANNER_TIME" "Fri Dec 02 01:22:08 2016 " "Processing started: Fri Dec 02 01:22:08 2016" { } { } 0 0 "Processing started: %1!s!" 0 0 "Quartus II" 0 -1 1480609328752 ""} } { } 4 0 "Running %2!s! %1!s!" 0 0 "Assembler" 0 -1 1480609328752 ""} +{ "Info" "IQEXE_START_BANNER_COMMANDLINE" "quartus_asm --read_settings_files=off --write_settings_files=off lights -c lights " "Command: quartus_asm --read_settings_files=off --write_settings_files=off lights -c lights" { } { } 0 0 "Command: %1!s!" 0 0 "Assembler" 0 -1 1480609328752 ""} +{ "Info" "IASM_ASM_GENERATING_POWER_DATA" "" "Writing out detailed assembly data for power analysis" { } { } 0 115031 "Writing out detailed assembly data for power analysis" 0 0 "Assembler" 0 -1 1480609334141 ""} +{ "Info" "IASM_ASM_GENERATING_PROGRAMMING_FILES" "" "Assembler is generating device programming files" { } { } 0 115030 "Assembler is generating device programming files" 0 0 "Assembler" 0 -1 1480609334300 ""} +{ "Info" "IQEXE_ERROR_COUNT" "Assembler 0 s 0 s Quartus II 64-Bit " "Quartus II 64-Bit Assembler was successful. 0 errors, 0 warnings" { { "Info" "IQEXE_END_PEAK_VSIZE_MEMORY" "481 " "Peak virtual memory: 481 megabytes" { } { } 0 0 "Peak virtual memory: %1!s! megabytes" 0 0 "Quartus II" 0 -1 1480609336088 ""} { "Info" "IQEXE_END_BANNER_TIME" "Fri Dec 02 01:22:16 2016 " "Processing ended: Fri Dec 02 01:22:16 2016" { } { } 0 0 "Processing ended: %1!s!" 0 0 "Quartus II" 0 -1 1480609336088 ""} { "Info" "IQEXE_ELAPSED_TIME" "00:00:08 " "Elapsed time: 00:00:08" { } { } 0 0 "Elapsed time: %1!s!" 0 0 "Quartus II" 0 -1 1480609336088 ""} { "Info" "IQEXE_ELAPSED_CPU_TIME" "00:00:07 " "Total CPU time (on all processors): 00:00:07" { } { } 0 0 "Total CPU time (on all processors): %1!s!" 0 0 "Quartus II" 0 -1 1480609336088 ""} } { } 0 0 "%6!s! %1!s! was successful. %2!d! error%3!s!, %4!d! warning%5!s!" 0 0 "Assembler" 0 -1 1480609336088 ""} +{ "Info" "IFLOW_DISABLED_MODULE" "PowerPlay Power Analyzer FLOW_ENABLE_POWER_ANALYZER " "Skipped module PowerPlay Power Analyzer due to the assignment FLOW_ENABLE_POWER_ANALYZER" { } { } 0 293026 "Skipped module %1!s! due to the assignment %2!s!" 0 0 "Assembler" 0 -1 1480609336795 ""} +{ "Info" "IQEXE_SEPARATOR" "" "*******************************************************************" { } { } 3 0 "*******************************************************************" 0 0 "Assembler" 0 -1 1480609337278 ""} +{ "Info" "IQEXE_START_BANNER_PRODUCT" "TimeQuest Timing Analyzer Quartus II 64-Bit " "Running Quartus II 64-Bit TimeQuest Timing Analyzer" { { "Info" "IQEXE_START_BANNER_VERSION" "Version 13.0.1 Build 232 06/12/2013 Service Pack 1 SJ Web Edition " "Version 13.0.1 Build 232 06/12/2013 Service Pack 1 SJ Web Edition" { } { } 0 0 "%1!s!" 0 0 "Quartus II" 0 -1 1480609337279 ""} { "Info" "IQEXE_START_BANNER_TIME" "Fri Dec 02 01:22:16 2016 " "Processing started: Fri Dec 02 01:22:16 2016" { } { } 0 0 "Processing started: %1!s!" 0 0 "Quartus II" 0 -1 1480609337279 ""} } { } 4 0 "Running %2!s! %1!s!" 0 0 "Quartus II" 0 -1 1480609337279 ""} +{ "Info" "IQEXE_START_BANNER_COMMANDLINE" "quartus_sta lights -c lights " "Command: quartus_sta lights -c lights" { } { } 0 0 "Command: %1!s!" 0 0 "Quartus II" 0 -1 1480609337279 ""} +{ "Info" "0" "" "qsta_default_script.tcl version: #1" { } { } 0 0 "qsta_default_script.tcl version: #1" 0 0 "Quartus II" 0 0 1480609337369 ""} +{ "Warning" "WQCU_PARALLEL_NO_LICENSE" "" "Parallel compilation is not licensed and has been disabled" { } { } 0 20028 "Parallel compilation is not licensed and has been disabled" 0 0 "Quartus II" 0 -1 1480609337763 ""} +{ "Info" "ICUT_CUT_USING_OPERATING_CONDITION" "Core supply voltage 1.2V " "Core supply voltage is 1.2V" { } { } 0 21077 "%1!s! is %2!s!" 0 0 "Quartus II" 0 -1 1480609337763 ""} +{ "Info" "ICUT_CUT_USING_OPERATING_CONDITION" "Low junction temperature 0 degrees C " "Low junction temperature is 0 degrees C" { } { } 0 21077 "%1!s! is %2!s!" 0 0 "Quartus II" 0 -1 1480609337851 ""} +{ "Info" "ICUT_CUT_USING_OPERATING_CONDITION" "High junction temperature 85 degrees C " "High junction temperature is 85 degrees C" { } { } 0 21077 "%1!s! is %2!s!" 0 0 "Quartus II" 0 -1 1480609337851 ""} +{ "Info" "ISTA_SDC_STATEMENT_PARENT" "" "Evaluating HDL-embedded SDC commands" { { "Info" "ISTA_SDC_STATEMENT_ENTITY" "alt_jtag_atlantic " "Entity alt_jtag_atlantic" { { "Info" "ISTA_SDC_STATEMENT_EVAL" "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|jupdate\}\] -to \[get_registers \{*\|alt_jtag_atlantic:*\|jupdate1*\}\] " "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|jupdate\}\] -to \[get_registers \{*\|alt_jtag_atlantic:*\|jupdate1*\}\] " { } { } 0 332166 "%1!s!" 0 0 "Quartus II" 0 -1 1480609338651 ""} { "Info" "ISTA_SDC_STATEMENT_EVAL" "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|rdata\[*\]\}\] -to \[get_registers \{*\|alt_jtag_atlantic*\|td_shift\[*\]\}\] " "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|rdata\[*\]\}\] -to \[get_registers \{*\|alt_jtag_atlantic*\|td_shift\[*\]\}\]" { } { } 0 332166 "%1!s!" 0 0 "Quartus II" 0 -1 1480609338651 ""} { "Info" "ISTA_SDC_STATEMENT_EVAL" "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|rdata\[*\]\}\] -to \[get_registers \{*\|alt_jtag_atlantic*\|td_shift\[*\]\}\] " "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|rdata\[*\]\}\] -to \[get_registers \{*\|alt_jtag_atlantic*\|td_shift\[*\]\}\]" { } { } 0 332166 "%1!s!" 0 0 "Quartus II" 0 -1 1480609338651 ""} { "Info" "ISTA_SDC_STATEMENT_EVAL" "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|rdata\[*\]\}\] -to \[get_registers \{*\|alt_jtag_atlantic*\|td_shift\[*\]\}\] " "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|rdata\[*\]\}\] -to \[get_registers \{*\|alt_jtag_atlantic*\|td_shift\[*\]\}\]" { } { } 0 332166 "%1!s!" 0 0 "Quartus II" 0 -1 1480609338651 ""} { "Info" "ISTA_SDC_STATEMENT_EVAL" "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|rdata\[*\]\}\] -to \[get_registers \{*\|alt_jtag_atlantic*\|td_shift\[*\]\}\] " "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|rdata\[*\]\}\] -to \[get_registers \{*\|alt_jtag_atlantic*\|td_shift\[*\]\}\]" { } { } 0 332166 "%1!s!" 0 0 "Quartus II" 0 -1 1480609338651 ""} { "Info" "ISTA_SDC_STATEMENT_EVAL" "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|rdata\[*\]\}\] -to \[get_registers \{*\|alt_jtag_atlantic*\|td_shift\[*\]\}\] " "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|rdata\[*\]\}\] -to \[get_registers \{*\|alt_jtag_atlantic*\|td_shift\[*\]\}\]" { } { } 0 332166 "%1!s!" 0 0 "Quartus II" 0 -1 1480609338651 ""} { "Info" "ISTA_SDC_STATEMENT_EVAL" "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|rdata\[*\]\}\] -to \[get_registers \{*\|alt_jtag_atlantic*\|td_shift\[*\]\}\] " "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|rdata\[*\]\}\] -to \[get_registers \{*\|alt_jtag_atlantic*\|td_shift\[*\]\}\]" { } { } 0 332166 "%1!s!" 0 0 "Quartus II" 0 -1 1480609338651 ""} { "Info" "ISTA_SDC_STATEMENT_EVAL" "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|rdata\[*\]\}\] -to \[get_registers \{*\|alt_jtag_atlantic*\|td_shift\[*\]\}\] " "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|rdata\[*\]\}\] -to \[get_registers \{*\|alt_jtag_atlantic*\|td_shift\[*\]\}\]" { } { } 0 332166 "%1!s!" 0 0 "Quartus II" 0 -1 1480609338651 ""} { "Info" "ISTA_SDC_STATEMENT_EVAL" "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|rdata\[*\]\}\] -to \[get_registers \{*\|alt_jtag_atlantic*\|td_shift\[*\]\}\] " "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|rdata\[*\]\}\] -to \[get_registers \{*\|alt_jtag_atlantic*\|td_shift\[*\]\}\]" { } { } 0 332166 "%1!s!" 0 0 "Quartus II" 0 -1 1480609338651 ""} { "Info" "ISTA_SDC_STATEMENT_EVAL" "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|read\}\] -to \[get_registers \{*\|alt_jtag_atlantic:*\|read1*\}\] " "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|read\}\] -to \[get_registers \{*\|alt_jtag_atlantic:*\|read1*\}\] " { } { } 0 332166 "%1!s!" 0 0 "Quartus II" 0 -1 1480609338651 ""} { "Info" "ISTA_SDC_STATEMENT_EVAL" "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|read_req\}\] " "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|read_req\}\]" { } { } 0 332166 "%1!s!" 0 0 "Quartus II" 0 -1 1480609338651 ""} { "Info" "ISTA_SDC_STATEMENT_EVAL" "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|rvalid\}\] -to \[get_registers \{*\|alt_jtag_atlantic*\|td_shift\[*\]\}\] " "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|rvalid\}\] -to \[get_registers \{*\|alt_jtag_atlantic*\|td_shift\[*\]\}\]" { } { } 0 332166 "%1!s!" 0 0 "Quartus II" 0 -1 1480609338651 ""} { "Info" "ISTA_SDC_STATEMENT_EVAL" "set_false_path -from \[get_registers \{*\|t_dav\}\] -to \[get_registers \{*\|alt_jtag_atlantic:*\|tck_t_dav\}\] " "set_false_path -from \[get_registers \{*\|t_dav\}\] -to \[get_registers \{*\|alt_jtag_atlantic:*\|tck_t_dav\}\]" { } { } 0 332166 "%1!s!" 0 0 "Quartus II" 0 -1 1480609338651 ""} { "Info" "ISTA_SDC_STATEMENT_EVAL" "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|user_saw_rvalid\}\] -to \[get_registers \{*\|alt_jtag_atlantic:*\|rvalid0*\}\] " "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|user_saw_rvalid\}\] -to \[get_registers \{*\|alt_jtag_atlantic:*\|rvalid0*\}\]" { } { } 0 332166 "%1!s!" 0 0 "Quartus II" 0 -1 1480609338651 ""} { "Info" "ISTA_SDC_STATEMENT_EVAL" "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|wdata\[*\]\}\] -to \[get_registers \{*\}\] " "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|wdata\[*\]\}\] -to \[get_registers \{*\}\]" { } { } 0 332166 "%1!s!" 0 0 "Quartus II" 0 -1 1480609338651 ""} { "Info" "ISTA_SDC_STATEMENT_EVAL" "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|wdata\[*\]\}\] -to \[get_registers \{*\}\] " "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|wdata\[*\]\}\] -to \[get_registers \{*\}\]" { } { } 0 332166 "%1!s!" 0 0 "Quartus II" 0 -1 1480609338651 ""} { "Info" "ISTA_SDC_STATEMENT_EVAL" "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|wdata\[*\]\}\] -to \[get_registers \{*\}\] " "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|wdata\[*\]\}\] -to \[get_registers \{*\}\]" { } { } 0 332166 "%1!s!" 0 0 "Quartus II" 0 -1 1480609338651 ""} { "Info" "ISTA_SDC_STATEMENT_EVAL" "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|wdata\[*\]\}\] -to \[get_registers \{*\}\] " "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|wdata\[*\]\}\] -to \[get_registers \{*\}\]" { } { } 0 332166 "%1!s!" 0 0 "Quartus II" 0 -1 1480609338651 ""} { "Info" "ISTA_SDC_STATEMENT_EVAL" "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|wdata\[*\]\}\] -to \[get_registers \{*\}\] " "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|wdata\[*\]\}\] -to \[get_registers \{*\}\]" { } { } 0 332166 "%1!s!" 0 0 "Quartus II" 0 -1 1480609338651 ""} { "Info" "ISTA_SDC_STATEMENT_EVAL" "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|wdata\[*\]\}\] -to \[get_registers \{*\}\] " "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|wdata\[*\]\}\] -to \[get_registers \{*\}\]" { } { } 0 332166 "%1!s!" 0 0 "Quartus II" 0 -1 1480609338651 ""} { "Info" "ISTA_SDC_STATEMENT_EVAL" "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|wdata\[*\]\}\] -to \[get_registers \{*\}\] " "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|wdata\[*\]\}\] -to \[get_registers \{*\}\]" { } { } 0 332166 "%1!s!" 0 0 "Quartus II" 0 -1 1480609338651 ""} { "Info" "ISTA_SDC_STATEMENT_EVAL" "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|wdata\[*\]\}\] -to \[get_registers \{*\}\] " "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|wdata\[*\]\}\] -to \[get_registers \{*\}\]" { } { } 0 332166 "%1!s!" 0 0 "Quartus II" 0 -1 1480609338651 ""} { "Info" "ISTA_SDC_STATEMENT_EVAL" "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|write\}\] -to \[get_registers \{*\|alt_jtag_atlantic:*\|write1*\}\] " "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|write\}\] -to \[get_registers \{*\|alt_jtag_atlantic:*\|write1*\}\] " { } { } 0 332166 "%1!s!" 0 0 "Quartus II" 0 -1 1480609338651 ""} { "Info" "ISTA_SDC_STATEMENT_EVAL" "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|write_stalled\}\] -to \[get_registers \{*\|alt_jtag_atlantic:*\|t_ena*\}\] " "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|write_stalled\}\] -to \[get_registers \{*\|alt_jtag_atlantic:*\|t_ena*\}\]" { } { } 0 332166 "%1!s!" 0 0 "Quartus II" 0 -1 1480609338651 ""} { "Info" "ISTA_SDC_STATEMENT_EVAL" "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|write_stalled\}\] -to \[get_registers \{*\|alt_jtag_atlantic:*\|t_pause*\}\] " "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|write_stalled\}\] -to \[get_registers \{*\|alt_jtag_atlantic:*\|t_pause*\}\]" { } { } 0 332166 "%1!s!" 0 0 "Quartus II" 0 -1 1480609338651 ""} { "Info" "ISTA_SDC_STATEMENT_EVAL" "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|write_valid\}\] " "set_false_path -from \[get_registers \{*\|alt_jtag_atlantic:*\|write_valid\}\]" { } { } 0 332166 "%1!s!" 0 0 "Quartus II" 0 -1 1480609338651 ""} } { } 0 332165 "Entity %1!s!" 0 0 "Quartus II" 0 -1 1480609338651 ""} { "Info" "ISTA_SDC_STATEMENT_ENTITY" "altera_std_synchronizer " "Entity altera_std_synchronizer" { { "Info" "ISTA_SDC_STATEMENT_EVAL" "set_false_path -to \[get_keepers \{*altera_std_synchronizer:*\|din_s1\}\] " "set_false_path -to \[get_keepers \{*altera_std_synchronizer:*\|din_s1\}\]" { } { } 0 332166 "%1!s!" 0 0 "Quartus II" 0 -1 1480609338651 ""} } { } 0 332165 "Entity %1!s!" 0 0 "Quartus II" 0 -1 1480609338651 ""} { "Info" "ISTA_SDC_STATEMENT_ENTITY" "sld_jtag_hub " "Entity sld_jtag_hub" { { "Info" "ISTA_SDC_STATEMENT_EVAL" "create_clock -name altera_reserved_tck \[get_ports \{altera_reserved_tck\}\] -period 10MHz " "create_clock -name altera_reserved_tck \[get_ports \{altera_reserved_tck\}\] -period 10MHz " { } { } 0 332166 "%1!s!" 0 0 "Quartus II" 0 -1 1480609338651 ""} { "Info" "ISTA_SDC_STATEMENT_EVAL" "set_clock_groups -asynchronous -group \{altera_reserved_tck\} " "set_clock_groups -asynchronous -group \{altera_reserved_tck\}" { } { } 0 332166 "%1!s!" 0 0 "Quartus II" 0 -1 1480609338651 ""} } { } 0 332165 "Entity %1!s!" 0 0 "Quartus II" 0 -1 1480609338651 ""} } { } 0 332164 "Evaluating HDL-embedded SDC commands" 0 0 "Quartus II" 0 -1 1480609338651 ""} +{ "Critical Warning" "WSTA_SDC_NOT_FOUND" "lights.sdc " "Synopsys Design Constraints File file not found: 'lights.sdc'. A Synopsys Design Constraints File is required by the TimeQuest Timing Analyzer to get proper timing constraints. Without it, the Compiler will not properly optimize the design." { } { } 1 332012 "Synopsys Design Constraints File file not found: '%1!s!'. A Synopsys Design Constraints File is required by the TimeQuest Timing Analyzer to get proper timing constraints. Without it, the Compiler will not properly optimize the design." 0 0 "Quartus II" 0 -1 1480609338693 ""} +{ "Warning" "WSTA_NODE_FOUND_WITHOUT_CLOCK_ASSIGNMENT" "CLOCK_50 " "Node: CLOCK_50 was determined to be a clock but was found without an associated clock assignment." { } { } 0 332060 "Node: %1!s! was determined to be a clock but was found without an associated clock assignment." 0 0 "Quartus II" 0 -1 1480609338703 "|lights|CLOCK_50"} +{ "Critical Warning" "WSTA_NO_UNCERTAINTY_WAS_SET_PARENT" "" "The following clock transfers have no clock uncertainty assignment. For more accurate results, apply clock uncertainty assignments or use the derive_clock_uncertainty command." { { "Critical Warning" "WSTA_NO_UNCERTAINTY_WAS_SET_CHILD" "altera_reserved_tck (Rise) altera_reserved_tck (Rise) setup and hold " "From altera_reserved_tck (Rise) to altera_reserved_tck (Rise) (setup and hold)" { } { } 1 332169 "From %1!s! to %2!s! (%3!s!)" 0 0 "Quartus II" 0 -1 1480609339290 ""} { "Critical Warning" "WSTA_NO_UNCERTAINTY_WAS_SET_CHILD" "altera_reserved_tck (Rise) altera_reserved_tck (Fall) setup and hold " "From altera_reserved_tck (Rise) to altera_reserved_tck (Fall) (setup and hold)" { } { } 1 332169 "From %1!s! to %2!s! (%3!s!)" 0 0 "Quartus II" 0 -1 1480609339290 ""} { "Critical Warning" "WSTA_NO_UNCERTAINTY_WAS_SET_CHILD" "altera_reserved_tck (Fall) altera_reserved_tck (Fall) setup and hold " "From altera_reserved_tck (Fall) to altera_reserved_tck (Fall) (setup and hold)" { } { } 1 332169 "From %1!s! to %2!s! (%3!s!)" 0 0 "Quartus II" 0 -1 1480609339290 ""} } { } 1 332168 "The following clock transfers have no clock uncertainty assignment. For more accurate results, apply clock uncertainty assignments or use the derive_clock_uncertainty command." 0 0 "Quartus II" 0 -1 1480609339290 ""} +{ "Info" "0" "" "Found TIMEQUEST_REPORT_SCRIPT_INCLUDE_DEFAULT_ANALYSIS = ON" { } { } 0 0 "Found TIMEQUEST_REPORT_SCRIPT_INCLUDE_DEFAULT_ANALYSIS = ON" 0 0 "Quartus II" 0 0 1480609339291 ""} +{ "Info" "0" "" "Analyzing Slow 1200mV 85C Model" { } { } 0 0 "Analyzing Slow 1200mV 85C Model" 0 0 "Quartus II" 0 0 1480609339369 ""} +{ "Info" "ISTA_WORST_CASE_SLACK" "setup 46.773 " "Worst-case setup slack is 46.773" { { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" " Slack End Point TNS Clock " " Slack End Point TNS Clock " { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1480609339398 ""} { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" "========= ============= ===================== " "========= ============= =====================" { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1480609339398 ""} { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" " 46.773 0.000 altera_reserved_tck " " 46.773 0.000 altera_reserved_tck " { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1480609339398 ""} } { } 0 332146 "Worst-case %1!s! slack is %2!s!" 0 0 "Quartus II" 0 -1 1480609339398 ""} +{ "Info" "ISTA_WORST_CASE_SLACK" "hold 0.402 " "Worst-case hold slack is 0.402" { { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" " Slack End Point TNS Clock " " Slack End Point TNS Clock " { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1480609339405 ""} { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" "========= ============= ===================== " "========= ============= =====================" { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1480609339405 ""} { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" " 0.402 0.000 altera_reserved_tck " " 0.402 0.000 altera_reserved_tck " { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1480609339405 ""} } { } 0 332146 "Worst-case %1!s! slack is %2!s!" 0 0 "Quartus II" 0 -1 1480609339405 ""} +{ "Info" "ISTA_WORST_CASE_SLACK" "recovery 47.354 " "Worst-case recovery slack is 47.354" { { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" " Slack End Point TNS Clock " " Slack End Point TNS Clock " { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1480609339415 ""} { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" "========= ============= ===================== " "========= ============= =====================" { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1480609339415 ""} { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" " 47.354 0.000 altera_reserved_tck " " 47.354 0.000 altera_reserved_tck " { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1480609339415 ""} } { } 0 332146 "Worst-case %1!s! slack is %2!s!" 0 0 "Quartus II" 0 -1 1480609339415 ""} +{ "Info" "ISTA_WORST_CASE_SLACK" "removal 1.459 " "Worst-case removal slack is 1.459" { { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" " Slack End Point TNS Clock " " Slack End Point TNS Clock " { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1480609339424 ""} { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" "========= ============= ===================== " "========= ============= =====================" { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1480609339424 ""} { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" " 1.459 0.000 altera_reserved_tck " " 1.459 0.000 altera_reserved_tck " { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1480609339424 ""} } { } 0 332146 "Worst-case %1!s! slack is %2!s!" 0 0 "Quartus II" 0 -1 1480609339424 ""} +{ "Info" "ISTA_WORST_CASE_SLACK" "minimum pulse width 49.549 " "Worst-case minimum pulse width slack is 49.549" { { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" " Slack End Point TNS Clock " " Slack End Point TNS Clock " { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1480609339433 ""} { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" "========= ============= ===================== " "========= ============= =====================" { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1480609339433 ""} { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" " 49.549 0.000 altera_reserved_tck " " 49.549 0.000 altera_reserved_tck " { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1480609339433 ""} } { } 0 332146 "Worst-case %1!s! slack is %2!s!" 0 0 "Quartus II" 0 -1 1480609339433 ""} +{ "Info" "ISTA_REPORT_METASTABILITY_INFO" "Report Metastability: Found 2 synchronizer chains. " "Report Metastability: Found 2 synchronizer chains." { { "Info" "ISTA_REPORT_METASTABILITY_INFO" "Typical MTBF of Design is 1e+09 years or 3.15e+16 seconds.\n " "Typical MTBF of Design is 1e+09 years or 3.15e+16 seconds.\n" { } { } 0 332114 "%1!s!" 0 0 "Quartus II" 0 -1 1480609339570 ""} { "Info" "ISTA_REPORT_METASTABILITY_INFO" "Number of Synchronizer Chains Found: 2 " "Number of Synchronizer Chains Found: 2" { } { } 0 332114 "%1!s!" 0 0 "Quartus II" 0 -1 1480609339570 ""} { "Info" "ISTA_REPORT_METASTABILITY_INFO" "Shortest Synchronizer Chain: 2 Registers " "Shortest Synchronizer Chain: 2 Registers" { } { } 0 332114 "%1!s!" 0 0 "Quartus II" 0 -1 1480609339570 ""} { "Info" "ISTA_REPORT_METASTABILITY_INFO" "Fraction of Chains for which MTBFs Could Not be Calculated: 0.000 " "Fraction of Chains for which MTBFs Could Not be Calculated: 0.000" { } { } 0 332114 "%1!s!" 0 0 "Quartus II" 0 -1 1480609339570 ""} { "Info" "ISTA_REPORT_METASTABILITY_INFO" "Worst Case Available Settling Time: 197.086 ns " "Worst Case Available Settling Time: 197.086 ns" { } { } 0 332114 "%1!s!" 0 0 "Quartus II" 0 -1 1480609339570 ""} { "Info" "ISTA_REPORT_METASTABILITY_INFO" " " "" { } { } 0 332114 "%1!s!" 0 0 "Quartus II" 0 -1 1480609339570 ""} { "Info" "ISTA_REPORT_METASTABILITY_INFO" "Typical MTBF values are calculated based on the nominal silicon characteristics, at nominal operating conditions. " "Typical MTBF values are calculated based on the nominal silicon characteristics, at nominal operating conditions." { } { } 0 332114 "%1!s!" 0 0 "Quartus II" 0 -1 1480609339570 ""} { "Info" "ISTA_REPORT_METASTABILITY_INFO" " - Under typical conditions, an increase of 100ps in available settling time will increase MTBF values by a factor of 10.8 " " - Under typical conditions, an increase of 100ps in available settling time will increase MTBF values by a factor of 10.8" { } { } 0 332114 "%1!s!" 0 0 "Quartus II" 0 -1 1480609339570 ""} } { } 0 332114 "%1!s!" 0 0 "Quartus II" 0 -1 1480609339570 ""} +{ "Info" "0" "" "Analyzing Slow 1200mV 0C Model" { } { } 0 0 "Analyzing Slow 1200mV 0C Model" 0 0 "Quartus II" 0 0 1480609339584 ""} +{ "Info" "ITAPI_TAPI_STARTED" "" "Started post-fitting delay annotation" { } { } 0 334003 "Started post-fitting delay annotation" 0 0 "Quartus II" 0 -1 1480609339634 ""} +{ "Info" "ITAPI_TAPI_COMPLETED" "" "Delay annotation completed successfully" { } { } 0 334004 "Delay annotation completed successfully" 0 0 "Quartus II" 0 -1 1480609341036 ""} +{ "Warning" "WSTA_NODE_FOUND_WITHOUT_CLOCK_ASSIGNMENT" "CLOCK_50 " "Node: CLOCK_50 was determined to be a clock but was found without an associated clock assignment." { } { } 0 332060 "Node: %1!s! was determined to be a clock but was found without an associated clock assignment." 0 0 "Quartus II" 0 -1 1480609341383 "|lights|CLOCK_50"} +{ "Critical Warning" "WSTA_NO_UNCERTAINTY_WAS_SET_PARENT" "" "The following clock transfers have no clock uncertainty assignment. For more accurate results, apply clock uncertainty assignments or use the derive_clock_uncertainty command." { { "Critical Warning" "WSTA_NO_UNCERTAINTY_WAS_SET_CHILD" "altera_reserved_tck (Rise) altera_reserved_tck (Rise) setup and hold " "From altera_reserved_tck (Rise) to altera_reserved_tck (Rise) (setup and hold)" { } { } 1 332169 "From %1!s! to %2!s! (%3!s!)" 0 0 "Quartus II" 0 -1 1480609341393 ""} { "Critical Warning" "WSTA_NO_UNCERTAINTY_WAS_SET_CHILD" "altera_reserved_tck (Rise) altera_reserved_tck (Fall) setup and hold " "From altera_reserved_tck (Rise) to altera_reserved_tck (Fall) (setup and hold)" { } { } 1 332169 "From %1!s! to %2!s! (%3!s!)" 0 0 "Quartus II" 0 -1 1480609341393 ""} { "Critical Warning" "WSTA_NO_UNCERTAINTY_WAS_SET_CHILD" "altera_reserved_tck (Fall) altera_reserved_tck (Fall) setup and hold " "From altera_reserved_tck (Fall) to altera_reserved_tck (Fall) (setup and hold)" { } { } 1 332169 "From %1!s! to %2!s! (%3!s!)" 0 0 "Quartus II" 0 -1 1480609341393 ""} } { } 1 332168 "The following clock transfers have no clock uncertainty assignment. For more accurate results, apply clock uncertainty assignments or use the derive_clock_uncertainty command." 0 0 "Quartus II" 0 -1 1480609341393 ""} +{ "Info" "ISTA_WORST_CASE_SLACK" "setup 47.135 " "Worst-case setup slack is 47.135" { { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" " Slack End Point TNS Clock " " Slack End Point TNS Clock " { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1480609341447 ""} { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" "========= ============= ===================== " "========= ============= =====================" { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1480609341447 ""} { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" " 47.135 0.000 altera_reserved_tck " " 47.135 0.000 altera_reserved_tck " { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1480609341447 ""} } { } 0 332146 "Worst-case %1!s! slack is %2!s!" 0 0 "Quartus II" 0 -1 1480609341447 ""} +{ "Info" "ISTA_WORST_CASE_SLACK" "hold 0.354 " "Worst-case hold slack is 0.354" { { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" " Slack End Point TNS Clock " " Slack End Point TNS Clock " { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1480609341634 ""} { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" "========= ============= ===================== " "========= ============= =====================" { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1480609341634 ""} { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" " 0.354 0.000 altera_reserved_tck " " 0.354 0.000 altera_reserved_tck " { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1480609341634 ""} } { } 0 332146 "Worst-case %1!s! slack is %2!s!" 0 0 "Quartus II" 0 -1 1480609341634 ""} +{ "Info" "ISTA_WORST_CASE_SLACK" "recovery 47.646 " "Worst-case recovery slack is 47.646" { { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" " Slack End Point TNS Clock " " Slack End Point TNS Clock " { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1480609341651 ""} { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" "========= ============= ===================== " "========= ============= =====================" { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1480609341651 ""} { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" " 47.646 0.000 altera_reserved_tck " " 47.646 0.000 altera_reserved_tck " { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1480609341651 ""} } { } 0 332146 "Worst-case %1!s! slack is %2!s!" 0 0 "Quartus II" 0 -1 1480609341651 ""} +{ "Info" "ISTA_WORST_CASE_SLACK" "removal 1.333 " "Worst-case removal slack is 1.333" { { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" " Slack End Point TNS Clock " " Slack End Point TNS Clock " { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1480609341661 ""} { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" "========= ============= ===================== " "========= ============= =====================" { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1480609341661 ""} { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" " 1.333 0.000 altera_reserved_tck " " 1.333 0.000 altera_reserved_tck " { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1480609341661 ""} } { } 0 332146 "Worst-case %1!s! slack is %2!s!" 0 0 "Quartus II" 0 -1 1480609341661 ""} +{ "Info" "ISTA_WORST_CASE_SLACK" "minimum pulse width 49.477 " "Worst-case minimum pulse width slack is 49.477" { { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" " Slack End Point TNS Clock " " Slack End Point TNS Clock " { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1480609341670 ""} { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" "========= ============= ===================== " "========= ============= =====================" { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1480609341670 ""} { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" " 49.477 0.000 altera_reserved_tck " " 49.477 0.000 altera_reserved_tck " { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1480609341670 ""} } { } 0 332146 "Worst-case %1!s! slack is %2!s!" 0 0 "Quartus II" 0 -1 1480609341670 ""} +{ "Info" "ISTA_REPORT_METASTABILITY_INFO" "Report Metastability: Found 2 synchronizer chains. " "Report Metastability: Found 2 synchronizer chains." { { "Info" "ISTA_REPORT_METASTABILITY_INFO" "Typical MTBF of Design is 1e+09 years or 3.15e+16 seconds.\n " "Typical MTBF of Design is 1e+09 years or 3.15e+16 seconds.\n" { } { } 0 332114 "%1!s!" 0 0 "Quartus II" 0 -1 1480609341783 ""} { "Info" "ISTA_REPORT_METASTABILITY_INFO" "Number of Synchronizer Chains Found: 2 " "Number of Synchronizer Chains Found: 2" { } { } 0 332114 "%1!s!" 0 0 "Quartus II" 0 -1 1480609341783 ""} { "Info" "ISTA_REPORT_METASTABILITY_INFO" "Shortest Synchronizer Chain: 2 Registers " "Shortest Synchronizer Chain: 2 Registers" { } { } 0 332114 "%1!s!" 0 0 "Quartus II" 0 -1 1480609341783 ""} { "Info" "ISTA_REPORT_METASTABILITY_INFO" "Fraction of Chains for which MTBFs Could Not be Calculated: 0.000 " "Fraction of Chains for which MTBFs Could Not be Calculated: 0.000" { } { } 0 332114 "%1!s!" 0 0 "Quartus II" 0 -1 1480609341783 ""} { "Info" "ISTA_REPORT_METASTABILITY_INFO" "Worst Case Available Settling Time: 197.373 ns " "Worst Case Available Settling Time: 197.373 ns" { } { } 0 332114 "%1!s!" 0 0 "Quartus II" 0 -1 1480609341783 ""} { "Info" "ISTA_REPORT_METASTABILITY_INFO" " " "" { } { } 0 332114 "%1!s!" 0 0 "Quartus II" 0 -1 1480609341783 ""} { "Info" "ISTA_REPORT_METASTABILITY_INFO" "Typical MTBF values are calculated based on the nominal silicon characteristics, at nominal operating conditions. " "Typical MTBF values are calculated based on the nominal silicon characteristics, at nominal operating conditions." { } { } 0 332114 "%1!s!" 0 0 "Quartus II" 0 -1 1480609341783 ""} { "Info" "ISTA_REPORT_METASTABILITY_INFO" " - Under typical conditions, an increase of 100ps in available settling time will increase MTBF values by a factor of 10.8 " " - Under typical conditions, an increase of 100ps in available settling time will increase MTBF values by a factor of 10.8" { } { } 0 332114 "%1!s!" 0 0 "Quartus II" 0 -1 1480609341783 ""} } { } 0 332114 "%1!s!" 0 0 "Quartus II" 0 -1 1480609341783 ""} +{ "Info" "0" "" "Analyzing Fast 1200mV 0C Model" { } { } 0 0 "Analyzing Fast 1200mV 0C Model" 0 0 "Quartus II" 0 0 1480609341798 ""} +{ "Warning" "WSTA_NODE_FOUND_WITHOUT_CLOCK_ASSIGNMENT" "CLOCK_50 " "Node: CLOCK_50 was determined to be a clock but was found without an associated clock assignment." { } { } 0 332060 "Node: %1!s! was determined to be a clock but was found without an associated clock assignment." 0 0 "Quartus II" 0 -1 1480609342233 "|lights|CLOCK_50"} +{ "Critical Warning" "WSTA_NO_UNCERTAINTY_WAS_SET_PARENT" "" "The following clock transfers have no clock uncertainty assignment. For more accurate results, apply clock uncertainty assignments or use the derive_clock_uncertainty command." { { "Critical Warning" "WSTA_NO_UNCERTAINTY_WAS_SET_CHILD" "altera_reserved_tck (Rise) altera_reserved_tck (Rise) setup and hold " "From altera_reserved_tck (Rise) to altera_reserved_tck (Rise) (setup and hold)" { } { } 1 332169 "From %1!s! to %2!s! (%3!s!)" 0 0 "Quartus II" 0 -1 1480609342245 ""} { "Critical Warning" "WSTA_NO_UNCERTAINTY_WAS_SET_CHILD" "altera_reserved_tck (Rise) altera_reserved_tck (Fall) setup and hold " "From altera_reserved_tck (Rise) to altera_reserved_tck (Fall) (setup and hold)" { } { } 1 332169 "From %1!s! to %2!s! (%3!s!)" 0 0 "Quartus II" 0 -1 1480609342245 ""} { "Critical Warning" "WSTA_NO_UNCERTAINTY_WAS_SET_CHILD" "altera_reserved_tck (Fall) altera_reserved_tck (Fall) setup and hold " "From altera_reserved_tck (Fall) to altera_reserved_tck (Fall) (setup and hold)" { } { } 1 332169 "From %1!s! to %2!s! (%3!s!)" 0 0 "Quartus II" 0 -1 1480609342245 ""} } { } 1 332168 "The following clock transfers have no clock uncertainty assignment. For more accurate results, apply clock uncertainty assignments or use the derive_clock_uncertainty command." 0 0 "Quartus II" 0 -1 1480609342245 ""} +{ "Info" "ISTA_WORST_CASE_SLACK" "setup 48.795 " "Worst-case setup slack is 48.795" { { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" " Slack End Point TNS Clock " " Slack End Point TNS Clock " { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1480609342295 ""} { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" "========= ============= ===================== " "========= ============= =====================" { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1480609342295 ""} { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" " 48.795 0.000 altera_reserved_tck " " 48.795 0.000 altera_reserved_tck " { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1480609342295 ""} } { } 0 332146 "Worst-case %1!s! slack is %2!s!" 0 0 "Quartus II" 0 -1 1480609342295 ""} +{ "Info" "ISTA_WORST_CASE_SLACK" "hold 0.179 " "Worst-case hold slack is 0.179" { { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" " Slack End Point TNS Clock " " Slack End Point TNS Clock " { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1480609342310 ""} { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" "========= ============= ===================== " "========= ============= =====================" { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1480609342310 ""} { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" " 0.179 0.000 altera_reserved_tck " " 0.179 0.000 altera_reserved_tck " { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1480609342310 ""} } { } 0 332146 "Worst-case %1!s! slack is %2!s!" 0 0 "Quartus II" 0 -1 1480609342310 ""} +{ "Info" "ISTA_WORST_CASE_SLACK" "recovery 48.990 " "Worst-case recovery slack is 48.990" { { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" " Slack End Point TNS Clock " " Slack End Point TNS Clock " { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1480609342347 ""} { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" "========= ============= ===================== " "========= ============= =====================" { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1480609342347 ""} { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" " 48.990 0.000 altera_reserved_tck " " 48.990 0.000 altera_reserved_tck " { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1480609342347 ""} } { } 0 332146 "Worst-case %1!s! slack is %2!s!" 0 0 "Quartus II" 0 -1 1480609342347 ""} +{ "Info" "ISTA_WORST_CASE_SLACK" "removal 0.677 " "Worst-case removal slack is 0.677" { { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" " Slack End Point TNS Clock " " Slack End Point TNS Clock " { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1480609342359 ""} { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" "========= ============= ===================== " "========= ============= =====================" { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1480609342359 ""} { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" " 0.677 0.000 altera_reserved_tck " " 0.677 0.000 altera_reserved_tck " { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1480609342359 ""} } { } 0 332146 "Worst-case %1!s! slack is %2!s!" 0 0 "Quartus II" 0 -1 1480609342359 ""} +{ "Info" "ISTA_WORST_CASE_SLACK" "minimum pulse width 49.299 " "Worst-case minimum pulse width slack is 49.299" { { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" " Slack End Point TNS Clock " " Slack End Point TNS Clock " { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1480609342403 ""} { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" "========= ============= ===================== " "========= ============= =====================" { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1480609342403 ""} { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" " 49.299 0.000 altera_reserved_tck " " 49.299 0.000 altera_reserved_tck " { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1480609342403 ""} } { } 0 332146 "Worst-case %1!s! slack is %2!s!" 0 0 "Quartus II" 0 -1 1480609342403 ""} +{ "Info" "ISTA_REPORT_METASTABILITY_INFO" "Report Metastability: Found 2 synchronizer chains. " "Report Metastability: Found 2 synchronizer chains." { { "Info" "ISTA_REPORT_METASTABILITY_INFO" "Typical MTBF of Design is 1e+09 years or 3.15e+16 seconds.\n " "Typical MTBF of Design is 1e+09 years or 3.15e+16 seconds.\n" { } { } 0 332114 "%1!s!" 0 0 "Quartus II" 0 -1 1480609342540 ""} { "Info" "ISTA_REPORT_METASTABILITY_INFO" "Number of Synchronizer Chains Found: 2 " "Number of Synchronizer Chains Found: 2" { } { } 0 332114 "%1!s!" 0 0 "Quartus II" 0 -1 1480609342540 ""} { "Info" "ISTA_REPORT_METASTABILITY_INFO" "Shortest Synchronizer Chain: 2 Registers " "Shortest Synchronizer Chain: 2 Registers" { } { } 0 332114 "%1!s!" 0 0 "Quartus II" 0 -1 1480609342540 ""} { "Info" "ISTA_REPORT_METASTABILITY_INFO" "Fraction of Chains for which MTBFs Could Not be Calculated: 0.000 " "Fraction of Chains for which MTBFs Could Not be Calculated: 0.000" { } { } 0 332114 "%1!s!" 0 0 "Quartus II" 0 -1 1480609342540 ""} { "Info" "ISTA_REPORT_METASTABILITY_INFO" "Worst Case Available Settling Time: 198.609 ns " "Worst Case Available Settling Time: 198.609 ns" { } { } 0 332114 "%1!s!" 0 0 "Quartus II" 0 -1 1480609342540 ""} { "Info" "ISTA_REPORT_METASTABILITY_INFO" " " "" { } { } 0 332114 "%1!s!" 0 0 "Quartus II" 0 -1 1480609342540 ""} { "Info" "ISTA_REPORT_METASTABILITY_INFO" "Typical MTBF values are calculated based on the nominal silicon characteristics, at nominal operating conditions. " "Typical MTBF values are calculated based on the nominal silicon characteristics, at nominal operating conditions." { } { } 0 332114 "%1!s!" 0 0 "Quartus II" 0 -1 1480609342540 ""} { "Info" "ISTA_REPORT_METASTABILITY_INFO" " - Under typical conditions, an increase of 100ps in available settling time will increase MTBF values by a factor of 10.8 " " - Under typical conditions, an increase of 100ps in available settling time will increase MTBF values by a factor of 10.8" { } { } 0 332114 "%1!s!" 0 0 "Quartus II" 0 -1 1480609342540 ""} } { } 0 332114 "%1!s!" 0 0 "Quartus II" 0 -1 1480609342540 ""} +{ "Info" "ISTA_UCP_NOT_CONSTRAINED" "setup " "Design is not fully constrained for setup requirements" { } { } 0 332102 "Design is not fully constrained for %1!s! requirements" 0 0 "Quartus II" 0 -1 1480609344179 ""} +{ "Info" "ISTA_UCP_NOT_CONSTRAINED" "hold " "Design is not fully constrained for hold requirements" { } { } 0 332102 "Design is not fully constrained for %1!s! requirements" 0 0 "Quartus II" 0 -1 1480609344179 ""} +{ "Info" "IQEXE_ERROR_COUNT" "TimeQuest Timing Analyzer 0 s 17 s Quartus II 64-Bit " "Quartus II 64-Bit TimeQuest Timing Analyzer was successful. 0 errors, 17 warnings" { { "Info" "IQEXE_END_PEAK_VSIZE_MEMORY" "603 " "Peak virtual memory: 603 megabytes" { } { } 0 0 "Peak virtual memory: %1!s! megabytes" 0 0 "Quartus II" 0 -1 1480609344470 ""} { "Info" "IQEXE_END_BANNER_TIME" "Fri Dec 02 01:22:24 2016 " "Processing ended: Fri Dec 02 01:22:24 2016" { } { } 0 0 "Processing ended: %1!s!" 0 0 "Quartus II" 0 -1 1480609344470 ""} { "Info" "IQEXE_ELAPSED_TIME" "00:00:08 " "Elapsed time: 00:00:08" { } { } 0 0 "Elapsed time: %1!s!" 0 0 "Quartus II" 0 -1 1480609344470 ""} { "Info" "IQEXE_ELAPSED_CPU_TIME" "00:00:06 " "Total CPU time (on all processors): 00:00:06" { } { } 0 0 "Total CPU time (on all processors): %1!s!" 0 0 "Quartus II" 0 -1 1480609344470 ""} } { } 0 0 "%6!s! %1!s! was successful. %2!d! error%3!s!, %4!d! warning%5!s!" 0 0 "Quartus II" 0 -1 1480609344470 ""} +{ "Info" "IFLOW_ERROR_COUNT" "Full Compilation 0 s 997 s " "Quartus II Full Compilation was successful. 0 errors, 997 warnings" { } { } 0 293000 "Quartus II %1!s! was successful. %2!d! error%3!s!, %4!d! warning%5!s!" 0 0 "Quartus II" 0 -1 1480609345332 ""} diff --git a/db/scfifo_jr21.tdf b/db/scfifo_jr21.tdf new file mode 100644 index 0000000..a19d155 --- /dev/null +++ b/db/scfifo_jr21.tdf @@ -0,0 +1,53 @@ +--scfifo DEVICE_FAMILY="Cyclone IV E" LPM_NUMWORDS=64 LPM_SHOWAHEAD="OFF" LPM_WIDTH=8 LPM_WIDTHU=6 OPTIMIZE_FOR_SPEED=5 OVERFLOW_CHECKING="OFF" UNDERFLOW_CHECKING="OFF" USE_EAB="ON" aclr clock data empty full q rdreq usedw wrreq CARRY_CHAIN="MANUAL" CARRY_CHAIN_LENGTH=48 CYCLONEII_M4K_COMPATIBILITY="ON" LOW_POWER_MODE="AUTO" lpm_hint="RAM_BLOCK_TYPE=AUTO" RAM_BLOCK_TYPE="AUTO" +--VERSION_BEGIN 13.0 cbx_altdpram 2013:06:12:18:03:43:SJ cbx_altsyncram 2013:06:12:18:03:43:SJ cbx_cycloneii 2013:06:12:18:03:43:SJ cbx_fifo_common 2013:06:12:18:03:43:SJ cbx_lpm_add_sub 2013:06:12:18:03:43:SJ cbx_lpm_compare 2013:06:12:18:03:43:SJ cbx_lpm_counter 2013:06:12:18:03:43:SJ cbx_lpm_decode 2013:06:12:18:03:43:SJ cbx_lpm_mux 2013:06:12:18:03:43:SJ cbx_mgl 2013:06:12:18:05:10:SJ cbx_scfifo 2013:06:12:18:03:43:SJ cbx_stratix 2013:06:12:18:03:43:SJ cbx_stratixii 2013:06:12:18:03:43:SJ cbx_stratixiii 2013:06:12:18:03:43:SJ cbx_stratixv 2013:06:12:18:03:43:SJ cbx_util_mgl 2013:06:12:18:03:43:SJ VERSION_END + + +-- Copyright (C) 1991-2013 Altera Corporation +-- Your use of Altera Corporation's design tools, logic functions +-- and other software and tools, and its AMPP partner logic +-- functions, and any output files from any of the foregoing +-- (including device programming or simulation files), and any +-- associated documentation or information are expressly subject +-- to the terms and conditions of the Altera Program License +-- Subscription Agreement, Altera MegaCore Function License +-- Agreement, or other applicable license agreement, including, +-- without limitation, that your use is for the sole purpose of +-- programming logic devices manufactured by Altera and sold by +-- Altera or its authorized distributors. Please refer to the +-- applicable agreement for further details. + + +FUNCTION a_dpfifo_q131 (aclr, clock, data[7..0], rreq, sclr, wreq) +RETURNS ( empty, full, q[7..0], usedw[5..0]); + +--synthesis_resources = lut 18 M9K 1 reg 20 +SUBDESIGN scfifo_jr21 +( + aclr : input; + clock : input; + data[7..0] : input; + empty : output; + full : output; + q[7..0] : output; + rdreq : input; + usedw[5..0] : output; + wrreq : input; +) +VARIABLE + dpfifo : a_dpfifo_q131; + sclr : NODE; + +BEGIN + dpfifo.aclr = aclr; + dpfifo.clock = clock; + dpfifo.data[] = data[]; + dpfifo.rreq = rdreq; + dpfifo.sclr = sclr; + dpfifo.wreq = wrreq; + empty = dpfifo.empty; + full = dpfifo.full; + q[] = dpfifo.q[]; + sclr = GND; + usedw[] = dpfifo.usedw[]; +END; +--VALID FILE diff --git a/incremental_db/README b/incremental_db/README new file mode 100644 index 0000000..9f62dcd --- /dev/null +++ b/incremental_db/README @@ -0,0 +1,11 @@ +This folder contains data for incremental compilation. + +The compiled_partitions sub-folder contains previous compilation results for each partition. +As long as this folder is preserved, incremental compilation results from earlier compiles +can be re-used. To perform a clean compilation from source files for all partitions, both +the db and incremental_db folder should be removed. + +The imported_partitions sub-folder contains the last imported QXP for each imported partition. +As long as this folder is preserved, imported partitions will be automatically re-imported +when the db or incremental_db/compiled_partitions folders are removed. + diff --git a/incremental_db/compiled_partitions/lights.autoh_e40e1.map.cdb b/incremental_db/compiled_partitions/lights.autoh_e40e1.map.cdb new file mode 100644 index 0000000..609cc54 --- /dev/null +++ b/incremental_db/compiled_partitions/lights.autoh_e40e1.map.cdb Binary files differ diff --git a/incremental_db/compiled_partitions/lights.autoh_e40e1.map.dpi b/incremental_db/compiled_partitions/lights.autoh_e40e1.map.dpi new file mode 100644 index 0000000..97c335e --- /dev/null +++ b/incremental_db/compiled_partitions/lights.autoh_e40e1.map.dpi Binary files differ diff --git a/incremental_db/compiled_partitions/lights.autoh_e40e1.map.hdb b/incremental_db/compiled_partitions/lights.autoh_e40e1.map.hdb new file mode 100644 index 0000000..e1c7b0e --- /dev/null +++ b/incremental_db/compiled_partitions/lights.autoh_e40e1.map.hdb Binary files differ diff --git a/incremental_db/compiled_partitions/lights.autoh_e40e1.map.kpt b/incremental_db/compiled_partitions/lights.autoh_e40e1.map.kpt new file mode 100644 index 0000000..1fbf9ec --- /dev/null +++ b/incremental_db/compiled_partitions/lights.autoh_e40e1.map.kpt Binary files differ diff --git a/incremental_db/compiled_partitions/lights.autoh_e40e1.map.logdb b/incremental_db/compiled_partitions/lights.autoh_e40e1.map.logdb new file mode 100644 index 0000000..626799f --- /dev/null +++ b/incremental_db/compiled_partitions/lights.autoh_e40e1.map.logdb @@ -0,0 +1 @@ +v1 diff --git a/incremental_db/compiled_partitions/lights.db_info b/incremental_db/compiled_partitions/lights.db_info new file mode 100644 index 0000000..b613d1f --- /dev/null +++ b/incremental_db/compiled_partitions/lights.db_info @@ -0,0 +1,3 @@ +Quartus_Version = Version 13.0.1 Build 232 06/12/2013 Service Pack 1 SJ Web Edition +Version_Index = 302049280 +Creation_Time = Thu Oct 20 11:14:55 2016 diff --git a/incremental_db/compiled_partitions/lights.root_partition.cmp.ammdb b/incremental_db/compiled_partitions/lights.root_partition.cmp.ammdb new file mode 100644 index 0000000..74e1f97 --- /dev/null +++ b/incremental_db/compiled_partitions/lights.root_partition.cmp.ammdb Binary files differ diff --git a/incremental_db/compiled_partitions/lights.root_partition.cmp.cdb b/incremental_db/compiled_partitions/lights.root_partition.cmp.cdb new file mode 100644 index 0000000..c2d311e --- /dev/null +++ b/incremental_db/compiled_partitions/lights.root_partition.cmp.cdb Binary files differ diff --git a/incremental_db/compiled_partitions/lights.root_partition.cmp.dfp b/incremental_db/compiled_partitions/lights.root_partition.cmp.dfp new file mode 100644 index 0000000..b1c67d6 --- /dev/null +++ b/incremental_db/compiled_partitions/lights.root_partition.cmp.dfp Binary files differ diff --git a/incremental_db/compiled_partitions/lights.root_partition.cmp.hdb b/incremental_db/compiled_partitions/lights.root_partition.cmp.hdb new file mode 100644 index 0000000..8e61d41 --- /dev/null +++ b/incremental_db/compiled_partitions/lights.root_partition.cmp.hdb Binary files differ diff --git a/incremental_db/compiled_partitions/lights.root_partition.cmp.kpt b/incremental_db/compiled_partitions/lights.root_partition.cmp.kpt new file mode 100644 index 0000000..0d3ba5b --- /dev/null +++ b/incremental_db/compiled_partitions/lights.root_partition.cmp.kpt Binary files differ diff --git a/incremental_db/compiled_partitions/lights.root_partition.cmp.logdb b/incremental_db/compiled_partitions/lights.root_partition.cmp.logdb new file mode 100644 index 0000000..626799f --- /dev/null +++ b/incremental_db/compiled_partitions/lights.root_partition.cmp.logdb @@ -0,0 +1 @@ +v1 diff --git a/incremental_db/compiled_partitions/lights.root_partition.cmp.rcfdb b/incremental_db/compiled_partitions/lights.root_partition.cmp.rcfdb new file mode 100644 index 0000000..299f581 --- /dev/null +++ b/incremental_db/compiled_partitions/lights.root_partition.cmp.rcfdb Binary files differ diff --git a/incremental_db/compiled_partitions/lights.root_partition.map.cdb b/incremental_db/compiled_partitions/lights.root_partition.map.cdb new file mode 100644 index 0000000..9d3cbf3 --- /dev/null +++ b/incremental_db/compiled_partitions/lights.root_partition.map.cdb Binary files differ diff --git a/incremental_db/compiled_partitions/lights.root_partition.map.dpi b/incremental_db/compiled_partitions/lights.root_partition.map.dpi new file mode 100644 index 0000000..f89f5aa --- /dev/null +++ b/incremental_db/compiled_partitions/lights.root_partition.map.dpi Binary files differ diff --git a/incremental_db/compiled_partitions/lights.root_partition.map.hbdb.cdb b/incremental_db/compiled_partitions/lights.root_partition.map.hbdb.cdb new file mode 100644 index 0000000..7d769ac --- /dev/null +++ b/incremental_db/compiled_partitions/lights.root_partition.map.hbdb.cdb Binary files differ diff --git a/incremental_db/compiled_partitions/lights.root_partition.map.hbdb.hb_info b/incremental_db/compiled_partitions/lights.root_partition.map.hbdb.hb_info new file mode 100644 index 0000000..8210c55 --- /dev/null +++ b/incremental_db/compiled_partitions/lights.root_partition.map.hbdb.hb_info Binary files differ diff --git a/incremental_db/compiled_partitions/lights.root_partition.map.hbdb.hdb b/incremental_db/compiled_partitions/lights.root_partition.map.hbdb.hdb new file mode 100644 index 0000000..6406ae7 --- /dev/null +++ b/incremental_db/compiled_partitions/lights.root_partition.map.hbdb.hdb Binary files differ diff --git a/incremental_db/compiled_partitions/lights.root_partition.map.hbdb.sig b/incremental_db/compiled_partitions/lights.root_partition.map.hbdb.sig new file mode 100644 index 0000000..6c0af65 --- /dev/null +++ b/incremental_db/compiled_partitions/lights.root_partition.map.hbdb.sig @@ -0,0 +1 @@ +c5eb7f6cdd530884c3b884e0a3668ea4 \ No newline at end of file diff --git a/incremental_db/compiled_partitions/lights.root_partition.map.hdb b/incremental_db/compiled_partitions/lights.root_partition.map.hdb new file mode 100644 index 0000000..21fe60d --- /dev/null +++ b/incremental_db/compiled_partitions/lights.root_partition.map.hdb Binary files differ diff --git a/incremental_db/compiled_partitions/lights.root_partition.map.kpt b/incremental_db/compiled_partitions/lights.root_partition.map.kpt new file mode 100644 index 0000000..c3e7ea2 --- /dev/null +++ b/incremental_db/compiled_partitions/lights.root_partition.map.kpt Binary files differ diff --git a/lights.bak b/lights.bak new file mode 100644 index 0000000..8468f0c --- /dev/null +++ b/lights.bak @@ -0,0 +1,10 @@ +library IEEE; +use IEEE.std_logic_1164.all; +use IEEE.std_logic_unsigned.all; +entity lights is port ( + CLOCK_50 : in std_logic; + KEY : in std_logic_vector(0 downto 0); + SW : in std_logic_vector(7 downto 0); + LEDG : out std_logic_vector(7 downto 0) +); +end lights; \ No newline at end of file diff --git a/lights.qpf b/lights.qpf new file mode 100644 index 0000000..1dc6e02 --- /dev/null +++ b/lights.qpf @@ -0,0 +1,30 @@ +# -------------------------------------------------------------------------- # +# +# Copyright (C) 1991-2013 Altera Corporation +# Your use of Altera Corporation's design tools, logic functions +# and other software and tools, and its AMPP partner logic +# functions, and any output files from any of the foregoing +# (including device programming or simulation files), and any +# associated documentation or information are expressly subject +# to the terms and conditions of the Altera Program License +# Subscription Agreement, Altera MegaCore Function License +# Agreement, or other applicable license agreement, including, +# without limitation, that your use is for the sole purpose of +# programming logic devices manufactured by Altera and sold by +# Altera or its authorized distributors. Please refer to the +# applicable agreement for further details. +# +# -------------------------------------------------------------------------- # +# +# Quartus II 64-Bit +# Version 13.0.1 Build 232 06/12/2013 Service Pack 1 SJ Web Edition +# Date created = 15:50:27 October 13, 2016 +# +# -------------------------------------------------------------------------- # + +QUARTUS_VERSION = "13.0" +DATE = "15:50:27 October 13, 2016" + +# Revisions + +PROJECT_REVISION = "lights" diff --git a/lights.qsf b/lights.qsf new file mode 100644 index 0000000..3254d51 --- /dev/null +++ b/lights.qsf @@ -0,0 +1,1107 @@ +# -------------------------------------------------------------------------- # +# +# Copyright (C) 1991-2013 Altera Corporation +# Your use of Altera Corporation's design tools, logic functions +# and other software and tools, and its AMPP partner logic +# functions, and any output files from any of the foregoing +# (including device programming or simulation files), and any +# associated documentation or information are expressly subject +# to the terms and conditions of the Altera Program License +# Subscription Agreement, Altera MegaCore Function License +# Agreement, or other applicable license agreement, including, +# without limitation, that your use is for the sole purpose of +# programming logic devices manufactured by Altera and sold by +# Altera or its authorized distributors. Please refer to the +# applicable agreement for further details. +# +# -------------------------------------------------------------------------- # +# +# Quartus II 64-Bit +# Version 13.0.1 Build 232 06/12/2013 Service Pack 1 SJ Web Edition +# Date created = 15:50:27 October 13, 2016 +# +# -------------------------------------------------------------------------- # +# +# Notes: +# +# 1) The default values for assignments are stored in the file: +# lights_assignment_defaults.qdf +# If this file doesn't exist, see file: +# assignment_defaults.qdf +# +# 2) Altera recommends that you do not modify this file. This +# file is updated automatically by the Quartus II software +# and any changes you make may be lost or overwritten. +# +# -------------------------------------------------------------------------- # + + +set_global_assignment -name FAMILY "Cyclone IV E" +set_global_assignment -name DEVICE EP4CE115F29C7 +set_global_assignment -name TOP_LEVEL_ENTITY lights +set_global_assignment -name ORIGINAL_QUARTUS_VERSION "13.0 SP1" +set_global_assignment -name PROJECT_CREATION_TIME_DATE "15:50:27 OCTOBER 13, 2016" +set_global_assignment -name LAST_QUARTUS_VERSION "13.0 SP1" +set_global_assignment -name PROJECT_OUTPUT_DIRECTORY output_files +set_global_assignment -name MIN_CORE_JUNCTION_TEMP 0 +set_global_assignment -name MAX_CORE_JUNCTION_TEMP 85 +set_global_assignment -name ERROR_CHECK_FREQUENCY_DIVISOR 1 +set_global_assignment -name NOMINAL_CORE_SUPPLY_VOLTAGE 1.2V +set_global_assignment -name PARTITION_NETLIST_TYPE SOURCE -section_id Top +set_global_assignment -name PARTITION_FITTER_PRESERVATION_LEVEL PLACEMENT_AND_ROUTING -section_id Top +set_global_assignment -name PARTITION_COLOR 16764057 -section_id Top +set_location_assignment PIN_D2 -to AUD_ADCDAT +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to AUD_ADCDAT +set_location_assignment PIN_C2 -to AUD_ADCLRCK +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to AUD_ADCLRCK +set_location_assignment PIN_F2 -to AUD_BCLK +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to AUD_BCLK +set_location_assignment PIN_D1 -to AUD_DACDAT +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to AUD_DACDAT +set_location_assignment PIN_E3 -to AUD_DACLRCK +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to AUD_DACLRCK +set_location_assignment PIN_E1 -to AUD_XCK +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to AUD_XCK +set_location_assignment PIN_AG14 -to CLOCK2_50 +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to CLOCK2_50 +set_location_assignment PIN_AG15 -to CLOCK3_50 +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to CLOCK3_50 +set_location_assignment PIN_Y2 -to CLOCK_50 +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to CLOCK_50 +set_location_assignment PIN_Y7 -to DRAM_ADDR[12] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to DRAM_ADDR[12] +set_location_assignment PIN_AA5 -to DRAM_ADDR[11] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to DRAM_ADDR[11] +set_location_assignment PIN_R5 -to DRAM_ADDR[10] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to DRAM_ADDR[10] +set_location_assignment PIN_Y6 -to DRAM_ADDR[9] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to DRAM_ADDR[9] +set_location_assignment PIN_Y5 -to DRAM_ADDR[8] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to DRAM_ADDR[8] +set_location_assignment PIN_AA7 -to DRAM_ADDR[7] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to DRAM_ADDR[7] +set_location_assignment PIN_W7 -to DRAM_ADDR[6] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to DRAM_ADDR[6] +set_location_assignment PIN_W8 -to DRAM_ADDR[5] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to DRAM_ADDR[5] +set_location_assignment PIN_V5 -to DRAM_ADDR[4] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to DRAM_ADDR[4] +set_location_assignment PIN_P1 -to DRAM_ADDR[3] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to DRAM_ADDR[3] +set_location_assignment PIN_U8 -to DRAM_ADDR[2] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to DRAM_ADDR[2] +set_location_assignment PIN_V8 -to DRAM_ADDR[1] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to DRAM_ADDR[1] +set_location_assignment PIN_R6 -to DRAM_ADDR[0] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to DRAM_ADDR[0] +set_location_assignment PIN_R4 -to DRAM_BA[1] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to DRAM_BA[1] +set_location_assignment PIN_U7 -to DRAM_BA[0] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to DRAM_BA[0] +set_location_assignment PIN_V7 -to DRAM_CAS_N +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to DRAM_CAS_N +set_location_assignment PIN_AA6 -to DRAM_CKE +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to DRAM_CKE +set_location_assignment PIN_AE5 -to DRAM_CLK +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to DRAM_CLK +set_location_assignment PIN_T4 -to DRAM_CS_N +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to DRAM_CS_N +set_location_assignment PIN_U1 -to DRAM_DQ[31] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to DRAM_DQ[31] +set_location_assignment PIN_U4 -to DRAM_DQ[30] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to DRAM_DQ[30] +set_location_assignment PIN_T3 -to DRAM_DQ[29] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to DRAM_DQ[29] +set_location_assignment PIN_R3 -to DRAM_DQ[28] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to DRAM_DQ[28] +set_location_assignment PIN_R2 -to DRAM_DQ[27] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to DRAM_DQ[27] +set_location_assignment PIN_R1 -to DRAM_DQ[26] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to DRAM_DQ[26] +set_location_assignment PIN_R7 -to DRAM_DQ[25] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to DRAM_DQ[25] +set_location_assignment PIN_U5 -to DRAM_DQ[24] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to DRAM_DQ[24] +set_location_assignment PIN_L7 -to DRAM_DQ[23] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to DRAM_DQ[23] +set_location_assignment PIN_M7 -to DRAM_DQ[22] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to DRAM_DQ[22] +set_location_assignment PIN_M4 -to DRAM_DQ[21] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to DRAM_DQ[21] +set_location_assignment PIN_N4 -to DRAM_DQ[20] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to DRAM_DQ[20] +set_location_assignment PIN_N3 -to DRAM_DQ[19] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to DRAM_DQ[19] +set_location_assignment PIN_P2 -to DRAM_DQ[18] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to DRAM_DQ[18] +set_location_assignment PIN_L8 -to DRAM_DQ[17] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to DRAM_DQ[17] +set_location_assignment PIN_M8 -to DRAM_DQ[16] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to DRAM_DQ[16] +set_location_assignment PIN_AC2 -to DRAM_DQ[15] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to DRAM_DQ[15] +set_location_assignment PIN_AB3 -to DRAM_DQ[14] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to DRAM_DQ[14] +set_location_assignment PIN_AC1 -to DRAM_DQ[13] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to DRAM_DQ[13] +set_location_assignment PIN_AB2 -to DRAM_DQ[12] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to DRAM_DQ[12] +set_location_assignment PIN_AA3 -to DRAM_DQ[11] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to DRAM_DQ[11] +set_location_assignment PIN_AB1 -to DRAM_DQ[10] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to DRAM_DQ[10] +set_location_assignment PIN_Y4 -to DRAM_DQ[9] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to DRAM_DQ[9] +set_location_assignment PIN_Y3 -to DRAM_DQ[8] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to DRAM_DQ[8] +set_location_assignment PIN_U3 -to DRAM_DQ[7] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to DRAM_DQ[7] +set_location_assignment PIN_V1 -to DRAM_DQ[6] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to DRAM_DQ[6] +set_location_assignment PIN_V2 -to DRAM_DQ[5] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to DRAM_DQ[5] +set_location_assignment PIN_V3 -to DRAM_DQ[4] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to DRAM_DQ[4] +set_location_assignment PIN_W1 -to DRAM_DQ[3] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to DRAM_DQ[3] +set_location_assignment PIN_V4 -to DRAM_DQ[2] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to DRAM_DQ[2] +set_location_assignment PIN_W2 -to DRAM_DQ[1] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to DRAM_DQ[1] +set_location_assignment PIN_W3 -to DRAM_DQ[0] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to DRAM_DQ[0] +set_location_assignment PIN_N8 -to DRAM_DQM[3] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to DRAM_DQM[3] +set_location_assignment PIN_K8 -to DRAM_DQM[2] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to DRAM_DQM[2] +set_location_assignment PIN_W4 -to DRAM_DQM[1] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to DRAM_DQM[1] +set_location_assignment PIN_U2 -to DRAM_DQM[0] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to DRAM_DQM[0] +set_location_assignment PIN_U6 -to DRAM_RAS_N +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to DRAM_RAS_N +set_location_assignment PIN_V6 -to DRAM_WE_N +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to DRAM_WE_N +set_location_assignment PIN_D14 -to EEP_I2C_SCLK +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to EEP_I2C_SCLK +set_location_assignment PIN_E14 -to EEP_I2C_SDAT +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to EEP_I2C_SDAT +set_location_assignment PIN_A17 -to ENET0_GTX_CLK +set_instance_assignment -name IO_STANDARD "2.5 V" -to ENET0_GTX_CLK +set_location_assignment PIN_A21 -to ENET0_INT_N +set_instance_assignment -name IO_STANDARD "2.5 V" -to ENET0_INT_N +set_location_assignment PIN_C14 -to ENET0_LINK100 +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to ENET0_LINK100 +set_location_assignment PIN_C20 -to ENET0_MDC +set_instance_assignment -name IO_STANDARD "2.5 V" -to ENET0_MDC +set_location_assignment PIN_B21 -to ENET0_MDIO +set_instance_assignment -name IO_STANDARD "2.5 V" -to ENET0_MDIO +set_location_assignment PIN_C19 -to ENET0_RST_N +set_instance_assignment -name IO_STANDARD "2.5 V" -to ENET0_RST_N +set_location_assignment PIN_A15 -to ENET0_RX_CLK +set_instance_assignment -name IO_STANDARD "2.5 V" -to ENET0_RX_CLK +set_location_assignment PIN_E15 -to ENET0_RX_COL +set_instance_assignment -name IO_STANDARD "2.5 V" -to ENET0_RX_COL +set_location_assignment PIN_D15 -to ENET0_RX_CRS +set_instance_assignment -name IO_STANDARD "2.5 V" -to ENET0_RX_CRS +set_location_assignment PIN_C15 -to ENET0_RX_DATA[3] +set_instance_assignment -name IO_STANDARD "2.5 V" -to ENET0_RX_DATA[3] +set_location_assignment PIN_D17 -to ENET0_RX_DATA[2] +set_instance_assignment -name IO_STANDARD "2.5 V" -to ENET0_RX_DATA[2] +set_location_assignment PIN_D16 -to ENET0_RX_DATA[1] +set_instance_assignment -name IO_STANDARD "2.5 V" -to ENET0_RX_DATA[1] +set_location_assignment PIN_C16 -to ENET0_RX_DATA[0] +set_instance_assignment -name IO_STANDARD "2.5 V" -to ENET0_RX_DATA[0] +set_location_assignment PIN_C17 -to ENET0_RX_DV +set_instance_assignment -name IO_STANDARD "2.5 V" -to ENET0_RX_DV +set_location_assignment PIN_D18 -to ENET0_RX_ER +set_instance_assignment -name IO_STANDARD "2.5 V" -to ENET0_RX_ER +set_location_assignment PIN_B17 -to ENET0_TX_CLK +set_instance_assignment -name IO_STANDARD "2.5 V" -to ENET0_TX_CLK +set_location_assignment PIN_B19 -to ENET0_TX_DATA[3] +set_instance_assignment -name IO_STANDARD "2.5 V" -to ENET0_TX_DATA[3] +set_location_assignment PIN_A19 -to ENET0_TX_DATA[2] +set_instance_assignment -name IO_STANDARD "2.5 V" -to ENET0_TX_DATA[2] +set_location_assignment PIN_D19 -to ENET0_TX_DATA[1] +set_instance_assignment -name IO_STANDARD "2.5 V" -to ENET0_TX_DATA[1] +set_location_assignment PIN_C18 -to ENET0_TX_DATA[0] +set_instance_assignment -name IO_STANDARD "2.5 V" -to ENET0_TX_DATA[0] +set_location_assignment PIN_A18 -to ENET0_TX_EN +set_instance_assignment -name IO_STANDARD "2.5 V" -to ENET0_TX_EN +set_location_assignment PIN_B18 -to ENET0_TX_ER +set_instance_assignment -name IO_STANDARD "2.5 V" -to ENET0_TX_ER +set_location_assignment PIN_C23 -to ENET1_GTX_CLK +set_instance_assignment -name IO_STANDARD "2.5 V" -to ENET1_GTX_CLK +set_location_assignment PIN_D24 -to ENET1_INT_N +set_instance_assignment -name IO_STANDARD "2.5 V" -to ENET1_INT_N +set_location_assignment PIN_D13 -to ENET1_LINK100 +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to ENET1_LINK100 +set_location_assignment PIN_D23 -to ENET1_MDC +set_instance_assignment -name IO_STANDARD "2.5 V" -to ENET1_MDC +set_location_assignment PIN_D25 -to ENET1_MDIO +set_instance_assignment -name IO_STANDARD "2.5 V" -to ENET1_MDIO +set_location_assignment PIN_D22 -to ENET1_RST_N +set_instance_assignment -name IO_STANDARD "2.5 V" -to ENET1_RST_N +set_location_assignment PIN_B15 -to ENET1_RX_CLK +set_instance_assignment -name IO_STANDARD "2.5 V" -to ENET1_RX_CLK +set_location_assignment PIN_B22 -to ENET1_RX_COL +set_instance_assignment -name IO_STANDARD "2.5 V" -to ENET1_RX_COL +set_location_assignment PIN_D20 -to ENET1_RX_CRS +set_instance_assignment -name IO_STANDARD "2.5 V" -to ENET1_RX_CRS +set_location_assignment PIN_D21 -to ENET1_RX_DATA[3] +set_instance_assignment -name IO_STANDARD "2.5 V" -to ENET1_RX_DATA[3] +set_location_assignment PIN_A23 -to ENET1_RX_DATA[2] +set_instance_assignment -name IO_STANDARD "2.5 V" -to ENET1_RX_DATA[2] +set_location_assignment PIN_C21 -to ENET1_RX_DATA[1] +set_instance_assignment -name IO_STANDARD "2.5 V" -to ENET1_RX_DATA[1] +set_location_assignment PIN_B23 -to ENET1_RX_DATA[0] +set_instance_assignment -name IO_STANDARD "2.5 V" -to ENET1_RX_DATA[0] +set_location_assignment PIN_A22 -to ENET1_RX_DV +set_instance_assignment -name IO_STANDARD "2.5 V" -to ENET1_RX_DV +set_location_assignment PIN_C24 -to ENET1_RX_ER +set_instance_assignment -name IO_STANDARD "2.5 V" -to ENET1_RX_ER +set_location_assignment PIN_C22 -to ENET1_TX_CLK +set_instance_assignment -name IO_STANDARD "2.5 V" -to ENET1_TX_CLK +set_location_assignment PIN_C26 -to ENET1_TX_DATA[3] +set_instance_assignment -name IO_STANDARD "2.5 V" -to ENET1_TX_DATA[3] +set_location_assignment PIN_B26 -to ENET1_TX_DATA[2] +set_instance_assignment -name IO_STANDARD "2.5 V" -to ENET1_TX_DATA[2] +set_location_assignment PIN_A26 -to ENET1_TX_DATA[1] +set_instance_assignment -name IO_STANDARD "2.5 V" -to ENET1_TX_DATA[1] +set_location_assignment PIN_C25 -to ENET1_TX_DATA[0] +set_instance_assignment -name IO_STANDARD "2.5 V" -to ENET1_TX_DATA[0] +set_location_assignment PIN_B25 -to ENET1_TX_EN +set_instance_assignment -name IO_STANDARD "2.5 V" -to ENET1_TX_EN +set_location_assignment PIN_A25 -to ENET1_TX_ER +set_instance_assignment -name IO_STANDARD "2.5 V" -to ENET1_TX_ER +set_location_assignment PIN_A14 -to ENETCLK_25 +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to ENETCLK_25 +set_location_assignment PIN_D9 -to EX_IO[6] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to EX_IO[6] +set_location_assignment PIN_E10 -to EX_IO[5] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to EX_IO[5] +set_location_assignment PIN_F14 -to EX_IO[4] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to EX_IO[4] +set_location_assignment PIN_H14 -to EX_IO[3] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to EX_IO[3] +set_location_assignment PIN_H13 -to EX_IO[2] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to EX_IO[2] +set_location_assignment PIN_J14 -to EX_IO[1] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to EX_IO[1] +set_location_assignment PIN_J10 -to EX_IO[0] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to EX_IO[0] +set_location_assignment PIN_AD11 -to FL_ADDR[22] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to FL_ADDR[22] +set_location_assignment PIN_AD10 -to FL_ADDR[21] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to FL_ADDR[21] +set_location_assignment PIN_AE10 -to FL_ADDR[20] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to FL_ADDR[20] +set_location_assignment PIN_AD12 -to FL_ADDR[19] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to FL_ADDR[19] +set_location_assignment PIN_AC12 -to FL_ADDR[18] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to FL_ADDR[18] +set_location_assignment PIN_AH12 -to FL_ADDR[17] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to FL_ADDR[17] +set_location_assignment PIN_AA8 -to FL_ADDR[16] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to FL_ADDR[16] +set_location_assignment PIN_Y10 -to FL_ADDR[15] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to FL_ADDR[15] +set_location_assignment PIN_AC8 -to FL_ADDR[14] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to FL_ADDR[14] +set_location_assignment PIN_AD8 -to FL_ADDR[13] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to FL_ADDR[13] +set_location_assignment PIN_AA10 -to FL_ADDR[12] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to FL_ADDR[12] +set_location_assignment PIN_AF9 -to FL_ADDR[11] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to FL_ADDR[11] +set_location_assignment PIN_AE9 -to FL_ADDR[10] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to FL_ADDR[10] +set_location_assignment PIN_AB10 -to FL_ADDR[9] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to FL_ADDR[9] +set_location_assignment PIN_AB12 -to FL_ADDR[8] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to FL_ADDR[8] +set_location_assignment PIN_AB13 -to FL_ADDR[7] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to FL_ADDR[7] +set_location_assignment PIN_AA12 -to FL_ADDR[6] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to FL_ADDR[6] +set_location_assignment PIN_AA13 -to FL_ADDR[5] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to FL_ADDR[5] +set_location_assignment PIN_Y12 -to FL_ADDR[4] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to FL_ADDR[4] +set_location_assignment PIN_Y14 -to FL_ADDR[3] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to FL_ADDR[3] +set_location_assignment PIN_Y13 -to FL_ADDR[2] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to FL_ADDR[2] +set_location_assignment PIN_AH7 -to FL_ADDR[1] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to FL_ADDR[1] +set_location_assignment PIN_AG12 -to FL_ADDR[0] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to FL_ADDR[0] +set_location_assignment PIN_AG7 -to FL_CE_N +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to FL_CE_N +set_location_assignment PIN_AF12 -to FL_DQ[7] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to FL_DQ[7] +set_location_assignment PIN_AH11 -to FL_DQ[6] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to FL_DQ[6] +set_location_assignment PIN_AG11 -to FL_DQ[5] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to FL_DQ[5] +set_location_assignment PIN_AF11 -to FL_DQ[4] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to FL_DQ[4] +set_location_assignment PIN_AH10 -to FL_DQ[3] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to FL_DQ[3] +set_location_assignment PIN_AG10 -to FL_DQ[2] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to FL_DQ[2] +set_location_assignment PIN_AF10 -to FL_DQ[1] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to FL_DQ[1] +set_location_assignment PIN_AH8 -to FL_DQ[0] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to FL_DQ[0] +set_location_assignment PIN_AG8 -to FL_OE_N +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to FL_OE_N +set_location_assignment PIN_AE11 -to FL_RST_N +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to FL_RST_N +set_location_assignment PIN_Y1 -to FL_RY +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to FL_RY +set_location_assignment PIN_AC10 -to FL_WE_N +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to FL_WE_N +set_location_assignment PIN_AE12 -to FL_WP_N +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to FL_WP_N +set_location_assignment PIN_AG26 -to GPIO[35] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO[35] +set_location_assignment PIN_AH23 -to GPIO[34] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO[34] +set_location_assignment PIN_AH26 -to GPIO[33] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO[33] +set_location_assignment PIN_AF20 -to GPIO[32] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO[32] +set_location_assignment PIN_AG23 -to GPIO[31] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO[31] +set_location_assignment PIN_AE20 -to GPIO[30] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO[30] +set_location_assignment PIN_AF26 -to GPIO[29] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO[29] +set_location_assignment PIN_AH22 -to GPIO[28] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO[28] +set_location_assignment PIN_AE24 -to GPIO[27] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO[27] +set_location_assignment PIN_AG22 -to GPIO[26] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO[26] +set_location_assignment PIN_AE25 -to GPIO[25] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO[25] +set_location_assignment PIN_AH25 -to GPIO[24] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO[24] +set_location_assignment PIN_AD25 -to GPIO[23] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO[23] +set_location_assignment PIN_AG25 -to GPIO[22] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO[22] +set_location_assignment PIN_AD22 -to GPIO[21] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO[21] +set_location_assignment PIN_AF22 -to GPIO[20] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO[20] +set_location_assignment PIN_AF21 -to GPIO[19] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO[19] +set_location_assignment PIN_AE22 -to GPIO[18] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO[18] +set_location_assignment PIN_AC22 -to GPIO[17] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO[17] +set_location_assignment PIN_AF25 -to GPIO[16] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO[16] +set_location_assignment PIN_AE21 -to GPIO[15] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO[15] +set_location_assignment PIN_AF24 -to GPIO[14] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO[14] +set_location_assignment PIN_AF15 -to GPIO[13] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO[13] +set_location_assignment PIN_AD19 -to GPIO[12] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO[12] +set_location_assignment PIN_AF16 -to GPIO[11] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO[11] +set_location_assignment PIN_AC19 -to GPIO[10] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO[10] +set_location_assignment PIN_AE15 -to GPIO[9] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO[9] +set_location_assignment PIN_AD15 -to GPIO[8] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO[8] +set_location_assignment PIN_AE16 -to GPIO[7] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO[7] +set_location_assignment PIN_AD21 -to GPIO[6] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO[6] +set_location_assignment PIN_Y16 -to GPIO[5] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO[5] +set_location_assignment PIN_AC21 -to GPIO[4] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO[4] +set_location_assignment PIN_Y17 -to GPIO[3] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO[3] +set_location_assignment PIN_AB21 -to GPIO[2] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO[2] +set_location_assignment PIN_AC15 -to GPIO[1] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO[1] +set_location_assignment PIN_AB22 -to GPIO[0] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO[0] +set_location_assignment PIN_H22 -to HEX0[6] +set_instance_assignment -name IO_STANDARD "2.5 V" -to HEX0[6] +set_location_assignment PIN_J22 -to HEX0[5] +set_instance_assignment -name IO_STANDARD "2.5 V" -to HEX0[5] +set_location_assignment PIN_L25 -to HEX0[4] +set_instance_assignment -name IO_STANDARD "2.5 V" -to HEX0[4] +set_location_assignment PIN_L26 -to HEX0[3] +set_instance_assignment -name IO_STANDARD "2.5 V" -to HEX0[3] +set_location_assignment PIN_E17 -to HEX0[2] +set_instance_assignment -name IO_STANDARD "2.5 V" -to HEX0[2] +set_location_assignment PIN_F22 -to HEX0[1] +set_instance_assignment -name IO_STANDARD "2.5 V" -to HEX0[1] +set_location_assignment PIN_G18 -to HEX0[0] +set_instance_assignment -name IO_STANDARD "2.5 V" -to HEX0[0] +set_location_assignment PIN_U24 -to HEX1[6] +set_instance_assignment -name IO_STANDARD "2.5 V" -to HEX1[6] +set_location_assignment PIN_U23 -to HEX1[5] +set_instance_assignment -name IO_STANDARD "2.5 V" -to HEX1[5] +set_location_assignment PIN_W25 -to HEX1[4] +set_instance_assignment -name IO_STANDARD "2.5 V" -to HEX1[4] +set_location_assignment PIN_W22 -to HEX1[3] +set_instance_assignment -name IO_STANDARD "2.5 V" -to HEX1[3] +set_location_assignment PIN_W21 -to HEX1[2] +set_instance_assignment -name IO_STANDARD "2.5 V" -to HEX1[2] +set_location_assignment PIN_Y22 -to HEX1[1] +set_instance_assignment -name IO_STANDARD "2.5 V" -to HEX1[1] +set_location_assignment PIN_M24 -to HEX1[0] +set_instance_assignment -name IO_STANDARD "2.5 V" -to HEX1[0] +set_location_assignment PIN_W28 -to HEX2[6] +set_instance_assignment -name IO_STANDARD "2.5 V" -to HEX2[6] +set_location_assignment PIN_W27 -to HEX2[5] +set_instance_assignment -name IO_STANDARD "2.5 V" -to HEX2[5] +set_location_assignment PIN_Y26 -to HEX2[4] +set_instance_assignment -name IO_STANDARD "2.5 V" -to HEX2[4] +set_location_assignment PIN_W26 -to HEX2[3] +set_instance_assignment -name IO_STANDARD "2.5 V" -to HEX2[3] +set_location_assignment PIN_Y25 -to HEX2[2] +set_instance_assignment -name IO_STANDARD "2.5 V" -to HEX2[2] +set_location_assignment PIN_AA26 -to HEX2[1] +set_instance_assignment -name IO_STANDARD "2.5 V" -to HEX2[1] +set_location_assignment PIN_AA25 -to HEX2[0] +set_instance_assignment -name IO_STANDARD "2.5 V" -to HEX2[0] +set_location_assignment PIN_Y19 -to HEX3[6] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX3[6] +set_location_assignment PIN_AF23 -to HEX3[5] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX3[5] +set_location_assignment PIN_AD24 -to HEX3[4] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX3[4] +set_location_assignment PIN_AA21 -to HEX3[3] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX3[3] +set_location_assignment PIN_AB20 -to HEX3[2] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX3[2] +set_location_assignment PIN_U21 -to HEX3[1] +set_instance_assignment -name IO_STANDARD "2.5 V" -to HEX3[1] +set_location_assignment PIN_V21 -to HEX3[0] +set_instance_assignment -name IO_STANDARD "2.5 V" -to HEX3[0] +set_location_assignment PIN_AE18 -to HEX4[6] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX4[6] +set_location_assignment PIN_AF19 -to HEX4[5] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX4[5] +set_location_assignment PIN_AE19 -to HEX4[4] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX4[4] +set_location_assignment PIN_AH21 -to HEX4[3] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX4[3] +set_location_assignment PIN_AG21 -to HEX4[2] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX4[2] +set_location_assignment PIN_AA19 -to HEX4[1] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX4[1] +set_location_assignment PIN_AB19 -to HEX4[0] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX4[0] +set_location_assignment PIN_AH18 -to HEX5[6] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX5[6] +set_location_assignment PIN_AF18 -to HEX5[5] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX5[5] +set_location_assignment PIN_AG19 -to HEX5[4] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX5[4] +set_location_assignment PIN_AH19 -to HEX5[3] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX5[3] +set_location_assignment PIN_AB18 -to HEX5[2] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX5[2] +set_location_assignment PIN_AC18 -to HEX5[1] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX5[1] +set_location_assignment PIN_AD18 -to HEX5[0] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX5[0] +set_location_assignment PIN_AC17 -to HEX6[6] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX6[6] +set_location_assignment PIN_AA15 -to HEX6[5] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX6[5] +set_location_assignment PIN_AB15 -to HEX6[4] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX6[4] +set_location_assignment PIN_AB17 -to HEX6[3] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX6[3] +set_location_assignment PIN_AA16 -to HEX6[2] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX6[2] +set_location_assignment PIN_AB16 -to HEX6[1] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX6[1] +set_location_assignment PIN_AA17 -to HEX6[0] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX6[0] +set_location_assignment PIN_AA14 -to HEX7[6] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX7[6] +set_location_assignment PIN_AG18 -to HEX7[5] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX7[5] +set_location_assignment PIN_AF17 -to HEX7[4] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX7[4] +set_location_assignment PIN_AH17 -to HEX7[3] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX7[3] +set_location_assignment PIN_AG17 -to HEX7[2] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX7[2] +set_location_assignment PIN_AE17 -to HEX7[1] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX7[1] +set_location_assignment PIN_AD17 -to HEX7[0] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX7[0] +set_location_assignment PIN_AH15 -to HSMC_CLKIN0 +set_instance_assignment -name IO_STANDARD "3.0-V LVTTL" -to HSMC_CLKIN0 +set_location_assignment PIN_J27 -to HSMC_CLKIN_P1 +set_instance_assignment -name IO_STANDARD LVDS -to HSMC_CLKIN_P1 +set_location_assignment PIN_Y27 -to HSMC_CLKIN_P2 +set_instance_assignment -name IO_STANDARD LVDS -to HSMC_CLKIN_P2 +set_location_assignment PIN_AD28 -to HSMC_CLKOUT0 +set_instance_assignment -name IO_STANDARD "2.5 V" -to HSMC_CLKOUT0 +set_location_assignment PIN_G23 -to HSMC_CLKOUT_P1 +set_instance_assignment -name IO_STANDARD LVDS -to HSMC_CLKOUT_P1 +set_location_assignment PIN_V23 -to HSMC_CLKOUT_P2 +set_instance_assignment -name IO_STANDARD LVDS -to HSMC_CLKOUT_P2 +set_location_assignment PIN_AF27 -to HSMC_D[3] +set_instance_assignment -name IO_STANDARD "2.5 V" -to HSMC_D[3] +set_location_assignment PIN_AE27 -to HSMC_D[2] +set_instance_assignment -name IO_STANDARD "2.5 V" -to HSMC_D[2] +set_location_assignment PIN_AE28 -to HSMC_D[1] +set_instance_assignment -name IO_STANDARD "2.5 V" -to HSMC_D[1] +set_location_assignment PIN_AE26 -to HSMC_D[0] +set_instance_assignment -name IO_STANDARD "2.5 V" -to HSMC_D[0] +set_location_assignment PIN_T21 -to HSMC_RX_D_P[16] +set_instance_assignment -name IO_STANDARD LVDS -to HSMC_RX_D_P[16] +set_location_assignment PIN_R22 -to HSMC_RX_D_P[15] +set_instance_assignment -name IO_STANDARD LVDS -to HSMC_RX_D_P[15] +set_location_assignment PIN_P21 -to HSMC_RX_D_P[14] +set_instance_assignment -name IO_STANDARD LVDS -to HSMC_RX_D_P[14] +set_location_assignment PIN_P25 -to HSMC_RX_D_P[13] +set_instance_assignment -name IO_STANDARD LVDS -to HSMC_RX_D_P[13] +set_location_assignment PIN_N25 -to HSMC_RX_D_P[12] +set_instance_assignment -name IO_STANDARD LVDS -to HSMC_RX_D_P[12] +set_location_assignment PIN_L21 -to HSMC_RX_D_P[11] +set_instance_assignment -name IO_STANDARD LVDS -to HSMC_RX_D_P[11] +set_location_assignment PIN_U25 -to HSMC_RX_D_P[10] +set_instance_assignment -name IO_STANDARD LVDS -to HSMC_RX_D_P[10] +set_location_assignment PIN_T25 -to HSMC_RX_D_P[9] +set_instance_assignment -name IO_STANDARD LVDS -to HSMC_RX_D_P[9] +set_location_assignment PIN_R25 -to HSMC_RX_D_P[8] +set_instance_assignment -name IO_STANDARD LVDS -to HSMC_RX_D_P[8] +set_location_assignment PIN_M25 -to HSMC_RX_D_P[7] +set_instance_assignment -name IO_STANDARD LVDS -to HSMC_RX_D_P[7] +set_location_assignment PIN_L23 -to HSMC_RX_D_P[6] +set_instance_assignment -name IO_STANDARD LVDS -to HSMC_RX_D_P[6] +set_location_assignment PIN_K25 -to HSMC_RX_D_P[5] +set_instance_assignment -name IO_STANDARD LVDS -to HSMC_RX_D_P[5] +set_location_assignment PIN_H25 -to HSMC_RX_D_P[4] +set_instance_assignment -name IO_STANDARD LVDS -to HSMC_RX_D_P[4] +set_location_assignment PIN_G25 -to HSMC_RX_D_P[3] +set_instance_assignment -name IO_STANDARD LVDS -to HSMC_RX_D_P[3] +set_location_assignment PIN_F26 -to HSMC_RX_D_P[2] +set_instance_assignment -name IO_STANDARD LVDS -to HSMC_RX_D_P[2] +set_location_assignment PIN_D26 -to HSMC_RX_D_P[1] +set_instance_assignment -name IO_STANDARD LVDS -to HSMC_RX_D_P[1] +set_location_assignment PIN_F24 -to HSMC_RX_D_P[0] +set_instance_assignment -name IO_STANDARD LVDS -to HSMC_RX_D_P[0] +set_location_assignment PIN_U22 -to HSMC_TX_D_P[16] +set_instance_assignment -name IO_STANDARD LVDS -to HSMC_TX_D_P[16] +set_location_assignment PIN_V27 -to HSMC_TX_D_P[15] +set_instance_assignment -name IO_STANDARD LVDS -to HSMC_TX_D_P[15] +set_location_assignment PIN_U27 -to HSMC_TX_D_P[14] +set_instance_assignment -name IO_STANDARD LVDS -to HSMC_TX_D_P[14] +set_location_assignment PIN_R27 -to HSMC_TX_D_P[13] +set_instance_assignment -name IO_STANDARD LVDS -to HSMC_TX_D_P[13] +set_location_assignment PIN_V25 -to HSMC_TX_D_P[12] +set_instance_assignment -name IO_STANDARD LVDS -to HSMC_TX_D_P[12] +set_location_assignment PIN_L27 -to HSMC_TX_D_P[11] +set_instance_assignment -name IO_STANDARD LVDS -to HSMC_TX_D_P[11] +set_location_assignment PIN_J25 -to HSMC_TX_D_P[10] +set_instance_assignment -name IO_STANDARD LVDS -to HSMC_TX_D_P[10] +set_location_assignment PIN_P27 -to HSMC_TX_D_P[9] +set_instance_assignment -name IO_STANDARD LVDS -to HSMC_TX_D_P[9] +set_location_assignment PIN_J23 -to HSMC_TX_D_P[8] +set_instance_assignment -name IO_STANDARD LVDS -to HSMC_TX_D_P[8] +set_location_assignment PIN_H23 -to HSMC_TX_D_P[7] +set_instance_assignment -name IO_STANDARD LVDS -to HSMC_TX_D_P[7] +set_location_assignment PIN_K21 -to HSMC_TX_D_P[6] +set_instance_assignment -name IO_STANDARD LVDS -to HSMC_TX_D_P[6] +set_location_assignment PIN_M27 -to HSMC_TX_D_P[5] +set_instance_assignment -name IO_STANDARD LVDS -to HSMC_TX_D_P[5] +set_location_assignment PIN_K27 -to HSMC_TX_D_P[4] +set_instance_assignment -name IO_STANDARD LVDS -to HSMC_TX_D_P[4] +set_location_assignment PIN_G27 -to HSMC_TX_D_P[3] +set_instance_assignment -name IO_STANDARD LVDS -to HSMC_TX_D_P[3] +set_location_assignment PIN_F27 -to HSMC_TX_D_P[2] +set_instance_assignment -name IO_STANDARD LVDS -to HSMC_TX_D_P[2] +set_location_assignment PIN_E27 -to HSMC_TX_D_P[1] +set_instance_assignment -name IO_STANDARD LVDS -to HSMC_TX_D_P[1] +set_location_assignment PIN_D27 -to HSMC_TX_D_P[0] +set_instance_assignment -name IO_STANDARD LVDS -to HSMC_TX_D_P[0] +set_location_assignment PIN_B7 -to I2C_SCLK +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to I2C_SCLK +set_location_assignment PIN_A8 -to I2C_SDAT +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to I2C_SDAT +set_location_assignment PIN_Y15 -to IRDA_RXD +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to IRDA_RXD +set_location_assignment PIN_R24 -to KEY[3] +set_instance_assignment -name IO_STANDARD "2.5 V" -to KEY[3] +set_location_assignment PIN_N21 -to KEY[2] +set_instance_assignment -name IO_STANDARD "2.5 V" -to KEY[2] +set_location_assignment PIN_M21 -to KEY[1] +set_instance_assignment -name IO_STANDARD "2.5 V" -to KEY[1] +set_location_assignment PIN_M23 -to KEY[0] +set_instance_assignment -name IO_STANDARD "2.5 V" -to KEY[0] +set_location_assignment PIN_L6 -to LCD_BLON +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to LCD_BLON +set_location_assignment PIN_M5 -to LCD_DATA[7] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to LCD_DATA[7] +set_location_assignment PIN_M3 -to LCD_DATA[6] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to LCD_DATA[6] +set_location_assignment PIN_K2 -to LCD_DATA[5] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to LCD_DATA[5] +set_location_assignment PIN_K1 -to LCD_DATA[4] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to LCD_DATA[4] +set_location_assignment PIN_K7 -to LCD_DATA[3] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to LCD_DATA[3] +set_location_assignment PIN_L2 -to LCD_DATA[2] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to LCD_DATA[2] +set_location_assignment PIN_L1 -to LCD_DATA[1] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to LCD_DATA[1] +set_location_assignment PIN_L3 -to LCD_DATA[0] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to LCD_DATA[0] +set_location_assignment PIN_L4 -to LCD_EN +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to LCD_EN +set_location_assignment PIN_L5 -to LCD_ON +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to LCD_ON +set_location_assignment PIN_M2 -to LCD_RS +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to LCD_RS +set_location_assignment PIN_M1 -to LCD_RW +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to LCD_RW +set_location_assignment PIN_F17 -to LEDG[8] +set_instance_assignment -name IO_STANDARD "2.5 V" -to LEDG[8] +set_location_assignment PIN_G21 -to LEDG[7] +set_instance_assignment -name IO_STANDARD "2.5 V" -to LEDG[7] +set_location_assignment PIN_G22 -to LEDG[6] +set_instance_assignment -name IO_STANDARD "2.5 V" -to LEDG[6] +set_location_assignment PIN_G20 -to LEDG[5] +set_instance_assignment -name IO_STANDARD "2.5 V" -to LEDG[5] +set_location_assignment PIN_H21 -to LEDG[4] +set_instance_assignment -name IO_STANDARD "2.5 V" -to LEDG[4] +set_location_assignment PIN_E24 -to LEDG[3] +set_instance_assignment -name IO_STANDARD "2.5 V" -to LEDG[3] +set_location_assignment PIN_E25 -to LEDG[2] +set_instance_assignment -name IO_STANDARD "2.5 V" -to LEDG[2] +set_location_assignment PIN_E22 -to LEDG[1] +set_instance_assignment -name IO_STANDARD "2.5 V" -to LEDG[1] +set_location_assignment PIN_E21 -to LEDG[0] +set_instance_assignment -name IO_STANDARD "2.5 V" -to LEDG[0] +set_location_assignment PIN_H15 -to LEDR[17] +set_instance_assignment -name IO_STANDARD "2.5 V" -to LEDR[17] +set_location_assignment PIN_G16 -to LEDR[16] +set_instance_assignment -name IO_STANDARD "2.5 V" -to LEDR[16] +set_location_assignment PIN_G15 -to LEDR[15] +set_instance_assignment -name IO_STANDARD "2.5 V" -to LEDR[15] +set_location_assignment PIN_F15 -to LEDR[14] +set_instance_assignment -name IO_STANDARD "2.5 V" -to LEDR[14] +set_location_assignment PIN_H17 -to LEDR[13] +set_instance_assignment -name IO_STANDARD "2.5 V" -to LEDR[13] +set_location_assignment PIN_J16 -to LEDR[12] +set_instance_assignment -name IO_STANDARD "2.5 V" -to LEDR[12] +set_location_assignment PIN_H16 -to LEDR[11] +set_instance_assignment -name IO_STANDARD "2.5 V" -to LEDR[11] +set_location_assignment PIN_J15 -to LEDR[10] +set_instance_assignment -name IO_STANDARD "2.5 V" -to LEDR[10] +set_location_assignment PIN_G17 -to LEDR[9] +set_instance_assignment -name IO_STANDARD "2.5 V" -to LEDR[9] +set_location_assignment PIN_J17 -to LEDR[8] +set_instance_assignment -name IO_STANDARD "2.5 V" -to LEDR[8] +set_location_assignment PIN_H19 -to LEDR[7] +set_instance_assignment -name IO_STANDARD "2.5 V" -to LEDR[7] +set_location_assignment PIN_J19 -to LEDR[6] +set_instance_assignment -name IO_STANDARD "2.5 V" -to LEDR[6] +set_location_assignment PIN_E18 -to LEDR[5] +set_instance_assignment -name IO_STANDARD "2.5 V" -to LEDR[5] +set_location_assignment PIN_F18 -to LEDR[4] +set_instance_assignment -name IO_STANDARD "2.5 V" -to LEDR[4] +set_location_assignment PIN_F21 -to LEDR[3] +set_instance_assignment -name IO_STANDARD "2.5 V" -to LEDR[3] +set_location_assignment PIN_E19 -to LEDR[2] +set_instance_assignment -name IO_STANDARD "2.5 V" -to LEDR[2] +set_location_assignment PIN_F19 -to LEDR[1] +set_instance_assignment -name IO_STANDARD "2.5 V" -to LEDR[1] +set_location_assignment PIN_G19 -to LEDR[0] +set_instance_assignment -name IO_STANDARD "2.5 V" -to LEDR[0] +set_location_assignment PIN_C3 -to OTG_ADDR[1] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to OTG_ADDR[1] +set_location_assignment PIN_H7 -to OTG_ADDR[0] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to OTG_ADDR[0] +set_location_assignment PIN_A3 -to OTG_CS_N +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to OTG_CS_N +set_location_assignment PIN_D4 -to OTG_DACK_N[1] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to OTG_DACK_N[1] +set_location_assignment PIN_C4 -to OTG_DACK_N[0] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to OTG_DACK_N[0] +set_location_assignment PIN_G4 -to OTG_DATA[15] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to OTG_DATA[15] +set_location_assignment PIN_F3 -to OTG_DATA[14] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to OTG_DATA[14] +set_location_assignment PIN_F1 -to OTG_DATA[13] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to OTG_DATA[13] +set_location_assignment PIN_G3 -to OTG_DATA[12] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to OTG_DATA[12] +set_location_assignment PIN_G2 -to OTG_DATA[11] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to OTG_DATA[11] +set_location_assignment PIN_G1 -to OTG_DATA[10] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to OTG_DATA[10] +set_location_assignment PIN_H4 -to OTG_DATA[9] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to OTG_DATA[9] +set_location_assignment PIN_H3 -to OTG_DATA[8] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to OTG_DATA[8] +set_location_assignment PIN_H6 -to OTG_DATA[7] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to OTG_DATA[7] +set_location_assignment PIN_J7 -to OTG_DATA[6] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to OTG_DATA[6] +set_location_assignment PIN_J3 -to OTG_DATA[5] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to OTG_DATA[5] +set_location_assignment PIN_J4 -to OTG_DATA[4] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to OTG_DATA[4] +set_location_assignment PIN_K3 -to OTG_DATA[3] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to OTG_DATA[3] +set_location_assignment PIN_J5 -to OTG_DATA[2] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to OTG_DATA[2] +set_location_assignment PIN_K4 -to OTG_DATA[1] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to OTG_DATA[1] +set_location_assignment PIN_J6 -to OTG_DATA[0] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to OTG_DATA[0] +set_location_assignment PIN_B4 -to OTG_DREQ[1] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to OTG_DREQ[1] +set_location_assignment PIN_J1 -to OTG_DREQ[0] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to OTG_DREQ[0] +set_location_assignment PIN_C6 -to OTG_FSPEED +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to OTG_FSPEED +set_location_assignment PIN_D5 -to OTG_INT[1] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to OTG_INT[1] +set_location_assignment PIN_A6 -to OTG_INT[0] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to OTG_INT[0] +set_location_assignment PIN_B6 -to OTG_LSPEED +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to OTG_LSPEED +set_location_assignment PIN_B3 -to OTG_RD_N +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to OTG_RD_N +set_location_assignment PIN_C5 -to OTG_RST_N +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to OTG_RST_N +set_location_assignment PIN_A4 -to OTG_WR_N +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to OTG_WR_N +set_location_assignment PIN_G6 -to PS2_CLK +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to PS2_CLK +set_location_assignment PIN_G5 -to PS2_CLK2 +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to PS2_CLK2 +set_location_assignment PIN_H5 -to PS2_DAT +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to PS2_DAT +set_location_assignment PIN_F5 -to PS2_DAT2 +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to PS2_DAT2 +set_location_assignment PIN_AE13 -to SD_CLK +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to SD_CLK +set_location_assignment PIN_AD14 -to SD_CMD +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to SD_CMD +set_location_assignment PIN_AC14 -to SD_DAT[3] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to SD_DAT[3] +set_location_assignment PIN_AB14 -to SD_DAT[2] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to SD_DAT[2] +set_location_assignment PIN_AF13 -to SD_DAT[1] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to SD_DAT[1] +set_location_assignment PIN_AE14 -to SD_DAT[0] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to SD_DAT[0] +set_location_assignment PIN_AF14 -to SD_WP_N +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to SD_WP_N +set_location_assignment PIN_AH14 -to SMA_CLKIN +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to SMA_CLKIN +set_location_assignment PIN_AE23 -to SMA_CLKOUT +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to SMA_CLKOUT +set_location_assignment PIN_T8 -to SRAM_ADDR[19] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to SRAM_ADDR[19] +set_location_assignment PIN_AB8 -to SRAM_ADDR[18] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to SRAM_ADDR[18] +set_location_assignment PIN_AB9 -to SRAM_ADDR[17] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to SRAM_ADDR[17] +set_location_assignment PIN_AC11 -to SRAM_ADDR[16] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to SRAM_ADDR[16] +set_location_assignment PIN_AB11 -to SRAM_ADDR[15] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to SRAM_ADDR[15] +set_location_assignment PIN_AA4 -to SRAM_ADDR[14] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to SRAM_ADDR[14] +set_location_assignment PIN_AC3 -to SRAM_ADDR[13] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to SRAM_ADDR[13] +set_location_assignment PIN_AB4 -to SRAM_ADDR[12] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to SRAM_ADDR[12] +set_location_assignment PIN_AD3 -to SRAM_ADDR[11] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to SRAM_ADDR[11] +set_location_assignment PIN_AF2 -to SRAM_ADDR[10] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to SRAM_ADDR[10] +set_location_assignment PIN_T7 -to SRAM_ADDR[9] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to SRAM_ADDR[9] +set_location_assignment PIN_AF5 -to SRAM_ADDR[8] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to SRAM_ADDR[8] +set_location_assignment PIN_AC5 -to SRAM_ADDR[7] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to SRAM_ADDR[7] +set_location_assignment PIN_AB5 -to SRAM_ADDR[6] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to SRAM_ADDR[6] +set_location_assignment PIN_AE6 -to SRAM_ADDR[5] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to SRAM_ADDR[5] +set_location_assignment PIN_AB6 -to SRAM_ADDR[4] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to SRAM_ADDR[4] +set_location_assignment PIN_AC7 -to SRAM_ADDR[3] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to SRAM_ADDR[3] +set_location_assignment PIN_AE7 -to SRAM_ADDR[2] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to SRAM_ADDR[2] +set_location_assignment PIN_AD7 -to SRAM_ADDR[1] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to SRAM_ADDR[1] +set_location_assignment PIN_AB7 -to SRAM_ADDR[0] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to SRAM_ADDR[0] +set_location_assignment PIN_AF8 -to SRAM_CE_N +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to SRAM_CE_N +set_location_assignment PIN_AG3 -to SRAM_DQ[15] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to SRAM_DQ[15] +set_location_assignment PIN_AF3 -to SRAM_DQ[14] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to SRAM_DQ[14] +set_location_assignment PIN_AE4 -to SRAM_DQ[13] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to SRAM_DQ[13] +set_location_assignment PIN_AE3 -to SRAM_DQ[12] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to SRAM_DQ[12] +set_location_assignment PIN_AE1 -to SRAM_DQ[11] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to SRAM_DQ[11] +set_location_assignment PIN_AE2 -to SRAM_DQ[10] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to SRAM_DQ[10] +set_location_assignment PIN_AD2 -to SRAM_DQ[9] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to SRAM_DQ[9] +set_location_assignment PIN_AD1 -to SRAM_DQ[8] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to SRAM_DQ[8] +set_location_assignment PIN_AF7 -to SRAM_DQ[7] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to SRAM_DQ[7] +set_location_assignment PIN_AH6 -to SRAM_DQ[6] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to SRAM_DQ[6] +set_location_assignment PIN_AG6 -to SRAM_DQ[5] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to SRAM_DQ[5] +set_location_assignment PIN_AF6 -to SRAM_DQ[4] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to SRAM_DQ[4] +set_location_assignment PIN_AH4 -to SRAM_DQ[3] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to SRAM_DQ[3] +set_location_assignment PIN_AG4 -to SRAM_DQ[2] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to SRAM_DQ[2] +set_location_assignment PIN_AF4 -to SRAM_DQ[1] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to SRAM_DQ[1] +set_location_assignment PIN_AH3 -to SRAM_DQ[0] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to SRAM_DQ[0] +set_location_assignment PIN_AD4 -to SRAM_LB_N +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to SRAM_LB_N +set_location_assignment PIN_AD5 -to SRAM_OE_N +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to SRAM_OE_N +set_location_assignment PIN_AC4 -to SRAM_UB_N +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to SRAM_UB_N +set_location_assignment PIN_AE8 -to SRAM_WE_N +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to SRAM_WE_N +set_location_assignment PIN_Y23 -to SW[17] +set_instance_assignment -name IO_STANDARD "2.5 V" -to SW[17] +set_location_assignment PIN_Y24 -to SW[16] +set_instance_assignment -name IO_STANDARD "2.5 V" -to SW[16] +set_location_assignment PIN_AA22 -to SW[15] +set_instance_assignment -name IO_STANDARD "2.5 V" -to SW[15] +set_location_assignment PIN_AA23 -to SW[14] +set_instance_assignment -name IO_STANDARD "2.5 V" -to SW[14] +set_location_assignment PIN_AA24 -to SW[13] +set_instance_assignment -name IO_STANDARD "2.5 V" -to SW[13] +set_location_assignment PIN_AB23 -to SW[12] +set_instance_assignment -name IO_STANDARD "2.5 V" -to SW[12] +set_location_assignment PIN_AB24 -to SW[11] +set_instance_assignment -name IO_STANDARD "2.5 V" -to SW[11] +set_location_assignment PIN_AC24 -to SW[10] +set_instance_assignment -name IO_STANDARD "2.5 V" -to SW[10] +set_location_assignment PIN_AB25 -to SW[9] +set_instance_assignment -name IO_STANDARD "2.5 V" -to SW[9] +set_location_assignment PIN_AC25 -to SW[8] +set_instance_assignment -name IO_STANDARD "2.5 V" -to SW[8] +set_location_assignment PIN_AB26 -to SW[7] +set_instance_assignment -name IO_STANDARD "2.5 V" -to SW[7] +set_location_assignment PIN_AD26 -to SW[6] +set_instance_assignment -name IO_STANDARD "2.5 V" -to SW[6] +set_location_assignment PIN_AC26 -to SW[5] +set_instance_assignment -name IO_STANDARD "2.5 V" -to SW[5] +set_location_assignment PIN_AB27 -to SW[4] +set_instance_assignment -name IO_STANDARD "2.5 V" -to SW[4] +set_location_assignment PIN_AD27 -to SW[3] +set_instance_assignment -name IO_STANDARD "2.5 V" -to SW[3] +set_location_assignment PIN_AC27 -to SW[2] +set_instance_assignment -name IO_STANDARD "2.5 V" -to SW[2] +set_location_assignment PIN_AC28 -to SW[1] +set_instance_assignment -name IO_STANDARD "2.5 V" -to SW[1] +set_location_assignment PIN_AB28 -to SW[0] +set_instance_assignment -name IO_STANDARD "2.5 V" -to SW[0] +set_location_assignment PIN_B14 -to TD_CLK27 +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to TD_CLK27 +set_location_assignment PIN_F7 -to TD_DATA[7] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to TD_DATA[7] +set_location_assignment PIN_E7 -to TD_DATA[6] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to TD_DATA[6] +set_location_assignment PIN_D6 -to TD_DATA[5] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to TD_DATA[5] +set_location_assignment PIN_D7 -to TD_DATA[4] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to TD_DATA[4] +set_location_assignment PIN_C7 -to TD_DATA[3] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to TD_DATA[3] +set_location_assignment PIN_D8 -to TD_DATA[2] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to TD_DATA[2] +set_location_assignment PIN_A7 -to TD_DATA[1] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to TD_DATA[1] +set_location_assignment PIN_E8 -to TD_DATA[0] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to TD_DATA[0] +set_location_assignment PIN_E5 -to TD_HS +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to TD_HS +set_location_assignment PIN_G7 -to TD_RESET_N +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to TD_RESET_N +set_location_assignment PIN_E4 -to TD_VS +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to TD_VS +set_location_assignment PIN_G14 -to UART_CTS +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to UART_CTS +set_location_assignment PIN_J13 -to UART_RTS +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to UART_RTS +set_location_assignment PIN_G12 -to UART_RXD +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to UART_RXD +set_location_assignment PIN_G9 -to UART_TXD +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to UART_TXD +set_location_assignment PIN_D12 -to VGA_B[7] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to VGA_B[7] +set_location_assignment PIN_D11 -to VGA_B[6] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to VGA_B[6] +set_location_assignment PIN_C12 -to VGA_B[5] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to VGA_B[5] +set_location_assignment PIN_A11 -to VGA_B[4] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to VGA_B[4] +set_location_assignment PIN_B11 -to VGA_B[3] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to VGA_B[3] +set_location_assignment PIN_C11 -to VGA_B[2] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to VGA_B[2] +set_location_assignment PIN_A10 -to VGA_B[1] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to VGA_B[1] +set_location_assignment PIN_B10 -to VGA_B[0] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to VGA_B[0] +set_location_assignment PIN_F11 -to VGA_BLANK_N +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to VGA_BLANK_N +set_location_assignment PIN_A12 -to VGA_CLK +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to VGA_CLK +set_location_assignment PIN_C9 -to VGA_G[7] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to VGA_G[7] +set_location_assignment PIN_F10 -to VGA_G[6] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to VGA_G[6] +set_location_assignment PIN_B8 -to VGA_G[5] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to VGA_G[5] +set_location_assignment PIN_C8 -to VGA_G[4] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to VGA_G[4] +set_location_assignment PIN_H12 -to VGA_G[3] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to VGA_G[3] +set_location_assignment PIN_F8 -to VGA_G[2] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to VGA_G[2] +set_location_assignment PIN_G11 -to VGA_G[1] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to VGA_G[1] +set_location_assignment PIN_G8 -to VGA_G[0] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to VGA_G[0] +set_location_assignment PIN_G13 -to VGA_HS +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to VGA_HS +set_location_assignment PIN_H10 -to VGA_R[7] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to VGA_R[7] +set_location_assignment PIN_H8 -to VGA_R[6] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to VGA_R[6] +set_location_assignment PIN_J12 -to VGA_R[5] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to VGA_R[5] +set_location_assignment PIN_G10 -to VGA_R[4] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to VGA_R[4] +set_location_assignment PIN_F12 -to VGA_R[3] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to VGA_R[3] +set_location_assignment PIN_D10 -to VGA_R[2] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to VGA_R[2] +set_location_assignment PIN_E11 -to VGA_R[1] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to VGA_R[1] +set_location_assignment PIN_E12 -to VGA_R[0] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to VGA_R[0] +set_location_assignment PIN_C10 -to VGA_SYNC_N +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to VGA_SYNC_N +set_location_assignment PIN_C13 -to VGA_VS +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to VGA_VS +set_location_assignment PIN_J28 -to HSMC_CLKIN_N1 +set_instance_assignment -name IO_STANDARD LVDS -to HSMC_CLKIN_N1 +set_location_assignment PIN_Y28 -to HSMC_CLKIN_N2 +set_instance_assignment -name IO_STANDARD LVDS -to HSMC_CLKIN_N2 +set_location_assignment PIN_D28 -to HSMC_TX_D_N[0] +set_instance_assignment -name IO_STANDARD LVDS -to HSMC_TX_D_N[0] +set_location_assignment PIN_F25 -to HSMC_RX_D_N[0] +set_instance_assignment -name IO_STANDARD LVDS -to HSMC_RX_D_N[0] +set_location_assignment PIN_C27 -to HSMC_RX_D_N[1] +set_instance_assignment -name IO_STANDARD LVDS -to HSMC_RX_D_N[1] +set_location_assignment PIN_E28 -to HSMC_TX_D_N[1] +set_instance_assignment -name IO_STANDARD LVDS -to HSMC_TX_D_N[1] +set_location_assignment PIN_F28 -to HSMC_TX_D_N[2] +set_instance_assignment -name IO_STANDARD LVDS -to HSMC_TX_D_N[2] +set_location_assignment PIN_E26 -to HSMC_RX_D_N[2] +set_instance_assignment -name IO_STANDARD LVDS -to HSMC_RX_D_N[2] +set_location_assignment PIN_G28 -to HSMC_TX_D_N[3] +set_instance_assignment -name IO_STANDARD LVDS -to HSMC_TX_D_N[3] +set_location_assignment PIN_G26 -to HSMC_RX_D_N[3] +set_instance_assignment -name IO_STANDARD LVDS -to HSMC_RX_D_N[3] +set_location_assignment PIN_K28 -to HSMC_TX_D_N[4] +set_instance_assignment -name IO_STANDARD LVDS -to HSMC_TX_D_N[4] +set_location_assignment PIN_H26 -to HSMC_RX_D_N[4] +set_instance_assignment -name IO_STANDARD LVDS -to HSMC_RX_D_N[4] +set_location_assignment PIN_M28 -to HSMC_TX_D_N[5] +set_instance_assignment -name IO_STANDARD LVDS -to HSMC_TX_D_N[5] +set_location_assignment PIN_K26 -to HSMC_RX_D_N[5] +set_instance_assignment -name IO_STANDARD LVDS -to HSMC_RX_D_N[5] +set_location_assignment PIN_K22 -to HSMC_TX_D_N[6] +set_instance_assignment -name IO_STANDARD LVDS -to HSMC_TX_D_N[6] +set_location_assignment PIN_L24 -to HSMC_RX_D_N[6] +set_instance_assignment -name IO_STANDARD LVDS -to HSMC_RX_D_N[6] +set_location_assignment PIN_H24 -to HSMC_TX_D_N[7] +set_instance_assignment -name IO_STANDARD LVDS -to HSMC_TX_D_N[7] +set_location_assignment PIN_M26 -to HSMC_RX_D_N[7] +set_instance_assignment -name IO_STANDARD LVDS -to HSMC_RX_D_N[7] +set_location_assignment PIN_J24 -to HSMC_TX_D_N[8] +set_instance_assignment -name IO_STANDARD LVDS -to HSMC_TX_D_N[8] +set_location_assignment PIN_R26 -to HSMC_RX_D_N[8] +set_instance_assignment -name IO_STANDARD LVDS -to HSMC_RX_D_N[8] +set_location_assignment PIN_P28 -to HSMC_TX_D_N[9] +set_instance_assignment -name IO_STANDARD LVDS -to HSMC_TX_D_N[9] +set_location_assignment PIN_T26 -to HSMC_RX_D_N[9] +set_instance_assignment -name IO_STANDARD LVDS -to HSMC_RX_D_N[9] +set_location_assignment PIN_J26 -to HSMC_TX_D_N[10] +set_instance_assignment -name IO_STANDARD LVDS -to HSMC_TX_D_N[10] +set_location_assignment PIN_U26 -to HSMC_RX_D_N[10] +set_instance_assignment -name IO_STANDARD LVDS -to HSMC_RX_D_N[10] +set_location_assignment PIN_L28 -to HSMC_TX_D_N[11] +set_instance_assignment -name IO_STANDARD LVDS -to HSMC_TX_D_N[11] +set_location_assignment PIN_L22 -to HSMC_RX_D_N[11] +set_instance_assignment -name IO_STANDARD LVDS -to HSMC_RX_D_N[11] +set_location_assignment PIN_V26 -to HSMC_TX_D_N[12] +set_instance_assignment -name IO_STANDARD LVDS -to HSMC_TX_D_N[12] +set_location_assignment PIN_N26 -to HSMC_RX_D_N[12] +set_instance_assignment -name IO_STANDARD LVDS -to HSMC_RX_D_N[12] +set_location_assignment PIN_R28 -to HSMC_TX_D_N[13] +set_instance_assignment -name IO_STANDARD LVDS -to HSMC_TX_D_N[13] +set_location_assignment PIN_P26 -to HSMC_RX_D_N[13] +set_instance_assignment -name IO_STANDARD LVDS -to HSMC_RX_D_N[13] +set_location_assignment PIN_U28 -to HSMC_TX_D_N[14] +set_instance_assignment -name IO_STANDARD LVDS -to HSMC_TX_D_N[14] +set_location_assignment PIN_R21 -to HSMC_RX_D_N[14] +set_instance_assignment -name IO_STANDARD LVDS -to HSMC_RX_D_N[14] +set_location_assignment PIN_V28 -to HSMC_TX_D_N[15] +set_instance_assignment -name IO_STANDARD LVDS -to HSMC_TX_D_N[15] +set_location_assignment PIN_R23 -to HSMC_RX_D_N[15] +set_instance_assignment -name IO_STANDARD LVDS -to HSMC_RX_D_N[15] +set_location_assignment PIN_V22 -to HSMC_TX_D_N[16] +set_instance_assignment -name IO_STANDARD LVDS -to HSMC_TX_D_N[16] +set_location_assignment PIN_T22 -to HSMC_RX_D_N[16] +set_instance_assignment -name IO_STANDARD LVDS -to HSMC_RX_D_N[16] +set_location_assignment PIN_V24 -to HSMC_CLKOUT_N2 +set_instance_assignment -name IO_STANDARD LVDS -to HSMC_CLKOUT_N2 +set_location_assignment PIN_G24 -to HSMC_CLKOUT_N1 +set_instance_assignment -name IO_STANDARD LVDS -to HSMC_CLKOUT_N1 +set_global_assignment -name QSYS_FILE nios_system.qsys +set_global_assignment -name SOURCE_FILE nios_system.cmp +set_global_assignment -name VHDL_FILE lights.vhd +set_global_assignment -name VERILOG_FILE nios_system/synthesis/nios_system.v +set_instance_assignment -name PARTITION_HIERARCHY root_partition -to | -section_id Top \ No newline at end of file diff --git a/lights.qsf.bak b/lights.qsf.bak new file mode 100644 index 0000000..845b2e1 --- /dev/null +++ b/lights.qsf.bak @@ -0,0 +1,56 @@ +# -------------------------------------------------------------------------- # +# +# Copyright (C) 1991-2013 Altera Corporation +# Your use of Altera Corporation's design tools, logic functions +# and other software and tools, and its AMPP partner logic +# functions, and any output files from any of the foregoing +# (including device programming or simulation files), and any +# associated documentation or information are expressly subject +# to the terms and conditions of the Altera Program License +# Subscription Agreement, Altera MegaCore Function License +# Agreement, or other applicable license agreement, including, +# without limitation, that your use is for the sole purpose of +# programming logic devices manufactured by Altera and sold by +# Altera or its authorized distributors. Please refer to the +# applicable agreement for further details. +# +# -------------------------------------------------------------------------- # +# +# Quartus II 64-Bit +# Version 13.0.1 Build 232 06/12/2013 Service Pack 1 SJ Web Edition +# Date created = 15:50:27 October 13, 2016 +# +# -------------------------------------------------------------------------- # +# +# Notes: +# +# 1) The default values for assignments are stored in the file: +# lights_assignment_defaults.qdf +# If this file doesn't exist, see file: +# assignment_defaults.qdf +# +# 2) Altera recommends that you do not modify this file. This +# file is updated automatically by the Quartus II software +# and any changes you make may be lost or overwritten. +# +# -------------------------------------------------------------------------- # + + +set_global_assignment -name FAMILY "Cyclone IV E" +set_global_assignment -name DEVICE EP4CE115F29C7 +set_global_assignment -name TOP_LEVEL_ENTITY lights +set_global_assignment -name ORIGINAL_QUARTUS_VERSION "13.0 SP1" +set_global_assignment -name PROJECT_CREATION_TIME_DATE "15:50:27 OCTOBER 13, 2016" +set_global_assignment -name LAST_QUARTUS_VERSION "13.0 SP1" +set_global_assignment -name PROJECT_OUTPUT_DIRECTORY output_files +set_global_assignment -name MIN_CORE_JUNCTION_TEMP 0 +set_global_assignment -name MAX_CORE_JUNCTION_TEMP 85 +set_global_assignment -name ERROR_CHECK_FREQUENCY_DIVISOR 1 +set_global_assignment -name NOMINAL_CORE_SUPPLY_VOLTAGE 1.2V +set_instance_assignment -name PARTITION_HIERARCHY root_partition -to | -section_id Top +set_global_assignment -name PARTITION_NETLIST_TYPE SOURCE -section_id Top +set_global_assignment -name PARTITION_FITTER_PRESERVATION_LEVEL PLACEMENT_AND_ROUTING -section_id Top +set_global_assignment -name PARTITION_COLOR 16764057 -section_id Top +set_global_assignment -name QSYS_FILE nios_system.qsys +set_global_assignment -name SOURCE_FILE nios_system.cmp +set_global_assignment -name VHDL_FILE lights.vhd \ No newline at end of file diff --git a/lights.qws b/lights.qws new file mode 100644 index 0000000..63563b7 --- /dev/null +++ b/lights.qws Binary files differ diff --git a/lights.vhd b/lights.vhd new file mode 100644 index 0000000..183d486 --- /dev/null +++ b/lights.vhd @@ -0,0 +1,76 @@ +library IEEE; +use IEEE.std_logic_1164.all; +use IEEE.std_logic_unsigned.all; +entity lights is port ( + CLOCK_50 : in std_logic; + KEY : in std_logic_vector(3 downto 0); + SW : in std_logic_vector(17 downto 0); + LEDG : out std_logic_vector(7 downto 0); + LEDR : out std_logic_vector(17 downto 0); + HEX0 : out std_logic_vector(6 downto 0); + HEX1 : out std_logic_vector(6 downto 0); + HEX2 : out std_logic_vector(6 downto 0); + HEX3 : out std_logic_vector(6 downto 0); + HEX4 : out std_logic_vector(6 downto 0); + HEX5 : out std_logic_vector(6 downto 0); + HEX6 : out std_logic_vector(6 downto 0); + HEX7 : out std_logic_vector(6 downto 0); + LCD_RS : out std_logic; + LCD_RW : out std_logic; + LCD_data : out std_logic_vector(7 downto 0); + LCD_EN : out std_logic; + LCD_ON : out std_logic; + LCD_BLON : out std_logic +); +end lights; + +architecture lights_rtl of lights is + component nios_system + port ( + signal clk_clk : in std_logic; + signal reset_reset_n : in std_logic; + signal switches_export : in std_logic_vector(17 downto 0); + signal push_switches_export : in std_logic_vector(2 downto 0); + signal leds_export : out std_logic_vector(7 downto 0); + signal ledrs_export : out std_logic_vector(17 downto 0); + signal hex0_export : out std_logic_vector(6 downto 0); + signal hex1_export : out std_logic_vector(6 downto 0); + signal hex2_export : out std_logic_vector(6 downto 0); + signal hex3_export : out std_logic_vector(6 downto 0); + signal hex4_export : out std_logic_vector(6 downto 0); + signal hex5_export : out std_logic_vector(6 downto 0); + signal hex6_export : out std_logic_vector(6 downto 0); + signal hex7_export : out std_logic_vector(6 downto 0); + signal lcd_16207_0_RS : out std_logic; + signal lcd_16207_0_RW : out std_logic; + signal lcd_16207_0_data : out std_logic_vector(7 downto 0); + signal lcd_16207_0_E : out std_logic; + signal lcd_on_export : out std_logic; + signal lcd_blon_export : out std_logic + ); + end component; +begin + NiosII : nios_system + port map ( + clk_clk => CLOCK_50, + reset_reset_n => KEY(0), + switches_export => SW(17 downto 0), + push_switches_export => KEY(3 downto 1), + leds_export => LEDG(7 downto 0), + ledrs_export => LEDR(17 downto 0), + hex0_export => HEX0(6 downto 0), + hex1_export => HEX1(6 downto 0), + hex2_export => HEX2(6 downto 0), + hex3_export => HEX3(6 downto 0), + hex4_export => HEX4(6 downto 0), + hex5_export => HEX5(6 downto 0), + hex6_export => HEX6(6 downto 0), + hex7_export => HEX7(6 downto 0), + lcd_16207_0_RS => LCD_RS, + lcd_16207_0_RW => LCD_RW, + lcd_16207_0_data => LCD_DATA, + lcd_16207_0_E => LCD_EN, + lcd_on_export => LCD_ON, + lcd_blon_export => LCD_BLON + ); +end lights_rtl; \ No newline at end of file diff --git a/lights.vhd.bak b/lights.vhd.bak new file mode 100644 index 0000000..96fea4b --- /dev/null +++ b/lights.vhd.bak @@ -0,0 +1,29 @@ +library IEEE; +use IEEE.std_logic_1164.all; +use IEEE.std_logic_unsigned.all; +entity lights is port ( + CLOCK_50 : in std_logic; + KEY : in std_logic_vector(0 downto 0); + SW : in std_logic_vector(7 downto 0); + LEDG : out std_logic_vector(7 downto 0) +); +end lights; + +architecture lights_rtl of lights is + component nios_system + port ( + signal clk_clk : in std_logic; + signal reset_reset_n : in std_logic; + signal switches_export : in std_logic_vector(7 downto 0); + signal leds_export : out std_logic_vector(7 downto 0) + ); + end component; +begin + NiosII : nios_system + port map ( + clk_clk => CLOCK_50, + reset_reset_n => KEY(0), + switches_export => SW(7 downto 0), + leds_export => LEDG(7 downto 0) + ); +end lights_rtl \ No newline at end of file diff --git a/nios_system.bsf b/nios_system.bsf new file mode 100644 index 0000000..b495623 --- /dev/null +++ b/nios_system.bsf @@ -0,0 +1,248 @@ +/* +WARNING: Do NOT edit the input and output ports in this file in a text +editor if you plan to continue editing the block that represents it in +the Block Editor! File corruption is VERY likely to occur. +*/ +/* +Copyright (C) 1991-2013 Altera Corporation +Your use of Altera Corporation's design tools, logic functions +and other software and tools, and its AMPP partner logic +functions, and any output files from any of the foregoing +(including device programming or simulation files), and any +associated documentation or information are expressly subject +to the terms and conditions of the Altera Program License +Subscription Agreement, Altera MegaCore Function License +Agreement, or other applicable license agreement, including, +without limitation, that your use is for the sole purpose of +programming logic devices manufactured by Altera and sold by +Altera or its authorized distributors. Please refer to the +applicable agreement for further details. +*/ +(header "symbol" (version "1.1")) +(symbol + (rect 0 0 384 792) + (text "nios_system" (rect 155 -1 206 11)(font "Arial" (font_size 10))) + (text "inst" (rect 8 776 20 788)(font "Arial" )) + (port + (pt 0 72) + (input) + (text "clk_clk" (rect 0 0 27 12)(font "Arial" (font_size 8))) + (text "clk_clk" (rect 4 61 46 72)(font "Arial" (font_size 8))) + (line (pt 0 72)(pt 160 72)(line_width 1)) + ) + (port + (pt 0 152) + (input) + (text "reset_reset_n" (rect 0 0 56 12)(font "Arial" (font_size 8))) + (text "reset_reset_n" (rect 4 141 82 152)(font "Arial" (font_size 8))) + (line (pt 0 152)(pt 160 152)(line_width 1)) + ) + (port + (pt 0 232) + (input) + (text "switches_export[17..0]" (rect 0 0 87 12)(font "Arial" (font_size 8))) + (text "switches_export[17..0]" (rect 4 221 136 232)(font "Arial" (font_size 8))) + (line (pt 0 232)(pt 160 232)(line_width 3)) + ) + (port + (pt 0 272) + (input) + (text "push_switches_export[2..0]" (rect 0 0 108 12)(font "Arial" (font_size 8))) + (text "push_switches_export[2..0]" (rect 4 261 160 272)(font "Arial" (font_size 8))) + (line (pt 0 272)(pt 160 272)(line_width 3)) + ) + (port + (pt 0 112) + (output) + (text "leds_export[7..0]" (rect 0 0 66 12)(font "Arial" (font_size 8))) + (text "leds_export[7..0]" (rect 4 101 106 112)(font "Arial" (font_size 8))) + (line (pt 0 112)(pt 160 112)(line_width 3)) + ) + (port + (pt 0 192) + (output) + (text "ledrs_export[17..0]" (rect 0 0 73 12)(font "Arial" (font_size 8))) + (text "ledrs_export[17..0]" (rect 4 181 118 192)(font "Arial" (font_size 8))) + (line (pt 0 192)(pt 160 192)(line_width 3)) + ) + (port + (pt 0 312) + (output) + (text "hex0_export[6..0]" (rect 0 0 69 12)(font "Arial" (font_size 8))) + (text "hex0_export[6..0]" (rect 4 301 106 312)(font "Arial" (font_size 8))) + (line (pt 0 312)(pt 160 312)(line_width 3)) + ) + (port + (pt 0 352) + (output) + (text "hex1_export[6..0]" (rect 0 0 68 12)(font "Arial" (font_size 8))) + (text "hex1_export[6..0]" (rect 4 341 106 352)(font "Arial" (font_size 8))) + (line (pt 0 352)(pt 160 352)(line_width 3)) + ) + (port + (pt 0 392) + (output) + (text "hex2_export[6..0]" (rect 0 0 69 12)(font "Arial" (font_size 8))) + (text "hex2_export[6..0]" (rect 4 381 106 392)(font "Arial" (font_size 8))) + (line (pt 0 392)(pt 160 392)(line_width 3)) + ) + (port + (pt 0 432) + (output) + (text "hex3_export[6..0]" (rect 0 0 69 12)(font "Arial" (font_size 8))) + (text "hex3_export[6..0]" (rect 4 421 106 432)(font "Arial" (font_size 8))) + (line (pt 0 432)(pt 160 432)(line_width 3)) + ) + (port + (pt 0 472) + (output) + (text "hex4_export[6..0]" (rect 0 0 70 12)(font "Arial" (font_size 8))) + (text "hex4_export[6..0]" (rect 4 461 106 472)(font "Arial" (font_size 8))) + (line (pt 0 472)(pt 160 472)(line_width 3)) + ) + (port + (pt 0 512) + (output) + (text "hex5_export[6..0]" (rect 0 0 69 12)(font "Arial" (font_size 8))) + (text "hex5_export[6..0]" (rect 4 501 106 512)(font "Arial" (font_size 8))) + (line (pt 0 512)(pt 160 512)(line_width 3)) + ) + (port + (pt 0 552) + (output) + (text "hex6_export[6..0]" (rect 0 0 69 12)(font "Arial" (font_size 8))) + (text "hex6_export[6..0]" (rect 4 541 106 552)(font "Arial" (font_size 8))) + (line (pt 0 552)(pt 160 552)(line_width 3)) + ) + (port + (pt 0 592) + (output) + (text "hex7_export[6..0]" (rect 0 0 69 12)(font "Arial" (font_size 8))) + (text "hex7_export[6..0]" (rect 4 581 106 592)(font "Arial" (font_size 8))) + (line (pt 0 592)(pt 160 592)(line_width 3)) + ) + (port + (pt 0 632) + (output) + (text "lcd_16207_0_RS" (rect 0 0 69 12)(font "Arial" (font_size 8))) + (text "lcd_16207_0_RS" (rect 4 621 88 632)(font "Arial" (font_size 8))) + (line (pt 0 632)(pt 160 632)(line_width 1)) + ) + (port + (pt 0 648) + (output) + (text "lcd_16207_0_RW" (rect 0 0 74 12)(font "Arial" (font_size 8))) + (text "lcd_16207_0_RW" (rect 4 637 88 648)(font "Arial" (font_size 8))) + (line (pt 0 648)(pt 160 648)(line_width 1)) + ) + (port + (pt 0 680) + (output) + (text "lcd_16207_0_E" (rect 0 0 62 12)(font "Arial" (font_size 8))) + (text "lcd_16207_0_E" (rect 4 669 82 680)(font "Arial" (font_size 8))) + (line (pt 0 680)(pt 160 680)(line_width 1)) + ) + (port + (pt 0 720) + (output) + (text "lcd_on_export" (rect 0 0 56 12)(font "Arial" (font_size 8))) + (text "lcd_on_export" (rect 4 709 82 720)(font "Arial" (font_size 8))) + (line (pt 0 720)(pt 160 720)(line_width 1)) + ) + (port + (pt 0 760) + (output) + (text "lcd_blon_export" (rect 0 0 62 12)(font "Arial" (font_size 8))) + (text "lcd_blon_export" (rect 4 749 94 760)(font "Arial" (font_size 8))) + (line (pt 0 760)(pt 160 760)(line_width 1)) + ) + (port + (pt 0 664) + (bidir) + (text "lcd_16207_0_data[7..0]" (rect 0 0 92 12)(font "Arial" (font_size 8))) + (text "lcd_16207_0_data[7..0]" (rect 4 653 136 664)(font "Arial" (font_size 8))) + (line (pt 0 664)(pt 160 664)(line_width 3)) + ) + (drawing + (text "clk" (rect 145 43 308 99)(font "Arial" (color 128 0 0)(font_size 9))) + (text "clk" (rect 165 67 348 144)(font "Arial" (color 0 0 0))) + (text "leds" (rect 137 83 298 179)(font "Arial" (color 128 0 0)(font_size 9))) + (text "export" (rect 165 107 366 224)(font "Arial" (color 0 0 0))) + (text "reset" (rect 131 123 292 259)(font "Arial" (color 128 0 0)(font_size 9))) + (text "reset_n" (rect 165 147 372 304)(font "Arial" (color 0 0 0))) + (text "ledrs" (rect 132 163 294 339)(font "Arial" (color 128 0 0)(font_size 9))) + (text "export" (rect 165 187 366 384)(font "Arial" (color 0 0 0))) + (text "switches" (rect 110 203 268 419)(font "Arial" (color 128 0 0)(font_size 9))) + (text "export" (rect 165 227 366 464)(font "Arial" (color 0 0 0))) + (text "push_switches" (rect 74 243 226 499)(font "Arial" (color 128 0 0)(font_size 9))) + (text "export" (rect 165 267 366 544)(font "Arial" (color 0 0 0))) + (text "hex0" (rect 134 283 292 579)(font "Arial" (color 128 0 0)(font_size 9))) + (text "export" (rect 165 307 366 624)(font "Arial" (color 0 0 0))) + (text "hex1" (rect 136 323 296 659)(font "Arial" (color 128 0 0)(font_size 9))) + (text "export" (rect 165 347 366 704)(font "Arial" (color 0 0 0))) + (text "hex2" (rect 134 363 292 739)(font "Arial" (color 128 0 0)(font_size 9))) + (text "export" (rect 165 387 366 784)(font "Arial" (color 0 0 0))) + (text "hex3" (rect 134 403 292 819)(font "Arial" (color 128 0 0)(font_size 9))) + (text "export" (rect 165 427 366 864)(font "Arial" (color 0 0 0))) + (text "hex4" (rect 134 443 292 899)(font "Arial" (color 128 0 0)(font_size 9))) + (text "export" (rect 165 467 366 944)(font "Arial" (color 0 0 0))) + (text "hex5" (rect 134 483 292 979)(font "Arial" (color 128 0 0)(font_size 9))) + (text "export" (rect 165 507 366 1024)(font "Arial" (color 0 0 0))) + (text "hex6" (rect 134 523 292 1059)(font "Arial" (color 128 0 0)(font_size 9))) + (text "export" (rect 165 547 366 1104)(font "Arial" (color 0 0 0))) + (text "hex7" (rect 134 563 292 1139)(font "Arial" (color 128 0 0)(font_size 9))) + (text "export" (rect 165 587 366 1184)(font "Arial" (color 0 0 0))) + (text "lcd_16207_0" (rect 89 603 244 1219)(font "Arial" (color 128 0 0)(font_size 9))) + (text "RS" (rect 165 627 342 1264)(font "Arial" (color 0 0 0))) + (text "RW" (rect 165 643 342 1296)(font "Arial" (color 0 0 0))) + (text "data" (rect 165 659 354 1328)(font "Arial" (color 0 0 0))) + (text "E" (rect 165 675 336 1360)(font "Arial" (color 0 0 0))) + (text "lcd_on" (rect 123 691 282 1395)(font "Arial" (color 128 0 0)(font_size 9))) + (text "export" (rect 165 715 366 1440)(font "Arial" (color 0 0 0))) + (text "lcd_blon" (rect 113 731 274 1475)(font "Arial" (color 128 0 0)(font_size 9))) + (text "export" (rect 165 755 366 1520)(font "Arial" (color 0 0 0))) + (text " nios_system " (rect 326 776 730 1562)(font "Arial" )) + (line (pt 161 52)(pt 161 76)(line_width 1)) + (line (pt 162 52)(pt 162 76)(line_width 1)) + (line (pt 161 92)(pt 161 116)(line_width 1)) + (line (pt 162 92)(pt 162 116)(line_width 1)) + (line (pt 161 132)(pt 161 156)(line_width 1)) + (line (pt 162 132)(pt 162 156)(line_width 1)) + (line (pt 161 172)(pt 161 196)(line_width 1)) + (line (pt 162 172)(pt 162 196)(line_width 1)) + (line (pt 161 212)(pt 161 236)(line_width 1)) + (line (pt 162 212)(pt 162 236)(line_width 1)) + (line (pt 161 252)(pt 161 276)(line_width 1)) + (line (pt 162 252)(pt 162 276)(line_width 1)) + (line (pt 161 292)(pt 161 316)(line_width 1)) + (line (pt 162 292)(pt 162 316)(line_width 1)) + (line (pt 161 332)(pt 161 356)(line_width 1)) + (line (pt 162 332)(pt 162 356)(line_width 1)) + (line (pt 161 372)(pt 161 396)(line_width 1)) + (line (pt 162 372)(pt 162 396)(line_width 1)) + (line (pt 161 412)(pt 161 436)(line_width 1)) + (line (pt 162 412)(pt 162 436)(line_width 1)) + (line (pt 161 452)(pt 161 476)(line_width 1)) + (line (pt 162 452)(pt 162 476)(line_width 1)) + (line (pt 161 492)(pt 161 516)(line_width 1)) + (line (pt 162 492)(pt 162 516)(line_width 1)) + (line (pt 161 532)(pt 161 556)(line_width 1)) + (line (pt 162 532)(pt 162 556)(line_width 1)) + (line (pt 161 572)(pt 161 596)(line_width 1)) + (line (pt 162 572)(pt 162 596)(line_width 1)) + (line (pt 161 612)(pt 161 684)(line_width 1)) + (line (pt 162 612)(pt 162 684)(line_width 1)) + (line (pt 161 700)(pt 161 724)(line_width 1)) + (line (pt 162 700)(pt 162 724)(line_width 1)) + (line (pt 161 740)(pt 161 764)(line_width 1)) + (line (pt 162 740)(pt 162 764)(line_width 1)) + (line (pt 160 32)(pt 224 32)(line_width 1)) + (line (pt 224 32)(pt 224 776)(line_width 1)) + (line (pt 160 776)(pt 224 776)(line_width 1)) + (line (pt 160 32)(pt 160 776)(line_width 1)) + (line (pt 0 0)(pt 384 0)(line_width 1)) + (line (pt 384 0)(pt 384 792)(line_width 1)) + (line (pt 0 792)(pt 384 792)(line_width 1)) + (line (pt 0 0)(pt 0 792)(line_width 1)) + ) +) diff --git a/nios_system.cmp b/nios_system.cmp new file mode 100644 index 0000000..e214a8c --- /dev/null +++ b/nios_system.cmp @@ -0,0 +1,25 @@ + component nios_system is + port ( + clk_clk : in std_logic := 'X'; -- clk + leds_export : out std_logic_vector(7 downto 0); -- export + reset_reset_n : in std_logic := 'X'; -- reset_n + ledrs_export : out std_logic_vector(17 downto 0); -- export + switches_export : in std_logic_vector(17 downto 0) := (others => 'X'); -- export + push_switches_export : in std_logic_vector(2 downto 0) := (others => 'X'); -- export + hex0_export : out std_logic_vector(6 downto 0); -- export + hex1_export : out std_logic_vector(6 downto 0); -- export + hex2_export : out std_logic_vector(6 downto 0); -- export + hex3_export : out std_logic_vector(6 downto 0); -- export + hex4_export : out std_logic_vector(6 downto 0); -- export + hex5_export : out std_logic_vector(6 downto 0); -- export + hex6_export : out std_logic_vector(6 downto 0); -- export + hex7_export : out std_logic_vector(6 downto 0); -- export + lcd_16207_0_RS : out std_logic; -- RS + lcd_16207_0_RW : out std_logic; -- RW + lcd_16207_0_data : inout std_logic_vector(7 downto 0) := (others => 'X'); -- data + lcd_16207_0_E : out std_logic; -- E + lcd_on_export : out std_logic; -- export + lcd_blon_export : out std_logic -- export + ); + end component nios_system; + diff --git a/nios_system.html b/nios_system.html new file mode 100644 index 0000000..ec6ff41 --- /dev/null +++ b/nios_system.html @@ -0,0 +1,4862 @@ + + + + + datasheet for nios_system + + + + + + + + +
nios_system +
+
+
+ + + + + +
2016.12.02.01:19:32Datasheet
+
+
Overview
+
+
+ + + + + + + + +
  clk_0 nios_system
+
+
Processor +
   + nios2_processor + Nios II 13.0 +
All Components +
   + nios2_processor + altera_nios2_qsys 13.0 +
   + onchip_memory + altera_avalon_onchip_memory2 13.0.1.99.2 +
   + jtag_uart + altera_avalon_jtag_uart 13.0.1.99.2 +
   + LEDs + altera_avalon_pio 13.0.1.99.2 +
   + LEDRs + altera_avalon_pio 13.0.1.99.2 +
   + switches + altera_avalon_pio 13.0.1.99.2 +
   + push_switches + altera_avalon_pio 13.0.1.99.2 +
   + hex0 + altera_avalon_pio 13.0.1.99.2 +
   + hex1 + altera_avalon_pio 13.0.1.99.2 +
   + hex2 + altera_avalon_pio 13.0.1.99.2 +
   + hex3 + altera_avalon_pio 13.0.1.99.2 +
   + hex4 + altera_avalon_pio 13.0.1.99.2 +
   + hex5 + altera_avalon_pio 13.0.1.99.2 +
   + hex6 + altera_avalon_pio 13.0.1.99.2 +
   + hex7 + altera_avalon_pio 13.0.1.99.2 +
   + lcd_16207_0 + altera_avalon_lcd_16207 13.0.1.99.2 +
   + lcd_on + altera_avalon_pio 13.0.1.99.2 +
   + lcd_blon + altera_avalon_pio 13.0.1.99.2
+
+
+
+
Memory Map
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ nios2_processor + +
 data_master instruction_master
  + nios2_processor + +
jtag_debug_module 0x000408000x00040800
  + onchip_memory + +
s1 0x000000000x00000000
  + jtag_uart + +
avalon_jtag_slave 0x00041100
  + LEDs + +
s1 0x000410f0
  + LEDRs + +
s1 0x000410e0
  + switches + +
s1 0x000410d0
  + push_switches + +
s1 0x000410c0
  + hex0 + +
s1 0x000410b0
  + hex1 + +
s1 0x000410a0
  + hex2 + +
s1 0x00041090
  + hex3 + +
s1 0x00041080
  + hex4 + +
s1 0x00041070
  + hex5 + +
s1 0x00041060
  + hex6 + +
s1 0x00041050
  + hex7 + +
s1 0x00041040
  + lcd_16207_0 + +
control_slave 0x00041030
  + lcd_on + +
s1 0x00041010
  + lcd_blon + +
s1 0x00041020
+ +
+
+

clk_0

clock_source v13.0 +
+
+
+ + + + +
+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + +
clockFrequency50000000
clockFrequencyKnowntrue
inputClockFrequency0
resetSynchronousEdgesNONE
deviceFamilyUNKNOWN
generateLegacySimfalse
+
   + + + + +
+

Software Assignments

(none)
+
+ +
+
+

nios2_processor

altera_nios2_qsys v13.0 +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ clk_0 + clk  nios2_processor
  clk
clk_reset  
  reset_n
jtag_debug_module_reset   + onchip_memory +
  reset1
instruction_master  
  s1
data_master  
  s1
jtag_debug_module_reset   + jtag_uart +
  reset
d_irq  
  irq
data_master  
  avalon_jtag_slave
jtag_debug_module_reset   + LEDs +
  reset
data_master  
  s1
data_master   + LEDRs +
  s1
jtag_debug_module_reset  
  reset
jtag_debug_module_reset   + switches +
  reset
data_master  
  s1
data_master   + push_switches +
  s1
jtag_debug_module_reset  
  reset
data_master   + hex0 +
  s1
jtag_debug_module_reset  
  reset
data_master   + hex1 +
  s1
jtag_debug_module_reset  
  reset
data_master   + hex2 +
  s1
jtag_debug_module_reset  
  reset
data_master   + hex3 +
  s1
jtag_debug_module_reset  
  reset
data_master   + hex4 +
  s1
jtag_debug_module_reset  
  reset
data_master   + hex5 +
  s1
jtag_debug_module_reset  
  reset
data_master   + hex6 +
  s1
jtag_debug_module_reset  
  reset
data_master   + hex7 +
  s1
jtag_debug_module_reset  
  reset
jtag_debug_module_reset   + lcd_16207_0 +
  reset
data_master  
  control_slave
data_master   + lcd_on +
  s1
jtag_debug_module_reset  
  reset
jtag_debug_module_reset   + lcd_blon +
  reset
data_master  
  s1
+
+
+
+ + + + +
+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
setting_showUnpublishedSettingsfalse
setting_showInternalSettingsfalse
setting_preciseSlaveAccessErrorExceptionfalse
setting_preciseIllegalMemAccessExceptionfalse
setting_preciseDivisionErrorExceptionfalse
setting_performanceCounterfalse
setting_illegalMemAccessDetectionfalse
setting_illegalInstructionsTrapfalse
setting_fullWaveformSignalsfalse
setting_extraExceptionInfofalse
setting_exportPCBfalse
setting_debugSimGenfalse
setting_clearXBitsLDNonBypasstrue
setting_bit31BypassDCachetrue
setting_bigEndianfalse
setting_export_large_RAMsfalse
setting_asic_enabledfalse
setting_asic_synopsys_translate_on_offfalse
setting_oci_export_jtag_signalsfalse
setting_bhtIndexPcOnlyfalse
setting_avalonDebugPortPresentfalse
setting_alwaysEncrypttrue
setting_allowFullAddressRangefalse
setting_activateTracetrue
setting_activateTestEndCheckerfalse
setting_activateMonitorstrue
setting_activateModelCheckerfalse
setting_HDLSimCachesClearedtrue
setting_HBreakTestfalse
muldiv_dividerfalse
mpu_useLimitfalse
mpu_enabledfalse
mmu_enabledfalse
mmu_autoAssignTlbPtrSztrue
manuallyAssignCpuIDtrue
debug_triggerArmingtrue
debug_embeddedPLLtrue
debug_debugReqSignalsfalse
debug_assignJtagInstanceIDfalse
dcache_omitDataMasterfalse
cpuResetfalse
is_hardcopy_compatiblefalse
setting_shadowRegisterSets0
mpu_numOfInstRegion8
mpu_numOfDataRegion8
mmu_TLBMissExcOffset0
debug_jtagInstanceID0
resetOffset0
exceptionOffset32
cpuID0
cpuID_stored0
breakOffset32
userDefinedSettings
resetSlaveonchip_memory.s1
mmu_TLBMissExcSlaveNone
exceptionSlaveonchip_memory.s1
breakSlavenios2_processor.jtag_debug_module
setting_perfCounterWidth32
setting_interruptControllerTypeInternal
setting_branchPredictionTypeAutomatic
setting_bhtPtrSz8
muldiv_multiplierTypeEmbeddedMulFast
mpu_minInstRegionSize12
mpu_minDataRegionSize12
mmu_uitlbNumEntries4
mmu_udtlbNumEntries6
mmu_tlbPtrSz7
mmu_tlbNumWays16
mmu_processIDNumBits8
implTiny
icache_size4096
icache_tagramBlockTypeAutomatic
icache_ramBlockTypeAutomatic
icache_numTCIM0
icache_burstTypeNone
dcache_burstsfalse
dcache_victim_buf_implram
debug_levelLevel1
debug_OCIOnchipTrace_128
dcache_size2048
dcache_tagramBlockTypeAutomatic
dcache_ramBlockTypeAutomatic
dcache_numTCDM0
dcache_lineSize32
setting_exportvectorsfalse
setting_ecc_presentfalse
regfile_ramBlockTypeAutomatic
ocimem_ramBlockTypeAutomatic
mmu_ramBlockTypeAutomatic
bht_ramBlockTypeAutomatic
resetAbsoluteAddr0
exceptionAbsoluteAddr32
breakAbsoluteAddr264224
mmu_TLBMissExcAbsAddr0
dcache_bursts_derivedfalse
dcache_size_derived2048
dcache_lineSize_derived32
translate_on "synthesis translate_on"
translate_off "synthesis translate_off"
instAddrWidth19
dataAddrWidth19
tightlyCoupledDataMaster0AddrWidth1
tightlyCoupledDataMaster1AddrWidth1
tightlyCoupledDataMaster2AddrWidth1
tightlyCoupledDataMaster3AddrWidth1
tightlyCoupledInstructionMaster0AddrWidth1
tightlyCoupledInstructionMaster1AddrWidth1
tightlyCoupledInstructionMaster2AddrWidth1
tightlyCoupledInstructionMaster3AddrWidth1
instSlaveMapParam<address-map><slave name='onchip_memory.s1' start='0x0' end='0x32000' /><slave name='nios2_processor.jtag_debug_module' start='0x40800' end='0x41000' /></address-map>
dataSlaveMapParam<address-map><slave name='onchip_memory.s1' start='0x0' end='0x32000' /><slave name='nios2_processor.jtag_debug_module' start='0x40800' end='0x41000' /><slave name='lcd_on.s1' start='0x41010' end='0x41020' /><slave name='lcd_blon.s1' start='0x41020' end='0x41030' /><slave name='lcd_16207_0.control_slave' start='0x41030' end='0x41040' /><slave name='hex7.s1' start='0x41040' end='0x41050' /><slave name='hex6.s1' start='0x41050' end='0x41060' /><slave name='hex5.s1' start='0x41060' end='0x41070' /><slave name='hex4.s1' start='0x41070' end='0x41080' /><slave name='hex3.s1' start='0x41080' end='0x41090' /><slave name='hex2.s1' start='0x41090' end='0x410A0' /><slave name='hex1.s1' start='0x410A0' end='0x410B0' /><slave name='hex0.s1' start='0x410B0' end='0x410C0' /><slave name='push_switches.s1' start='0x410C0' end='0x410D0' /><slave name='switches.s1' start='0x410D0' end='0x410E0' /><slave name='LEDRs.s1' start='0x410E0' end='0x410F0' /><slave name='LEDs.s1' start='0x410F0' end='0x41100' /><slave name='jtag_uart.avalon_jtag_slave' start='0x41100' end='0x41108' /></address-map>
clockFrequency50000000
deviceFamilyNameCYCLONEIVE
internalIrqMaskSystemInfo32
customInstSlavesSystemInfo<info/>
deviceFeaturesSystemInfoADDRESS_STALL 1 CELL_LEVEL_BACK_ANNOTATION_DISABLED 0 COMPILER_SUPPORT 1 DSP 0 DSP_SHIFTER_BLOCK 0 DUMP_ASM_LAB_BITS_FOR_POWER 1 EMUL 1 ENABLE_ADVANCED_IO_ANALYSIS_GUI_FEATURES 1 EPCS 1 ESB 0 FAKE1 0 FAKE2 0 FAKE3 0 FAMILY_LEVEL_INSTALLATION_ONLY 1 FITTER_USE_FALLING_EDGE_DELAY 0 GENERATE_DC_ON_CURRENT_WARNING_FOR_INTERNAL_CLAMPING_DIODE 0 HARDCOPY 0 HAS_18_BIT_MULTS 0 HAS_ACE_SUPPORT 1 HAS_ADJUSTABLE_OUTPUT_IO_TIMING_MEAS_POINT 0 HAS_ADVANCED_IO_INVERTED_CORNER 0 HAS_ADVANCED_IO_POWER_SUPPORT 1 HAS_ADVANCED_IO_TIMING_SUPPORT 1 HAS_ALM_SUPPORT 0 HAS_ATOM_AND_ROUTING_POWER_MODELED_TOGETHER 0 HAS_AUTO_DERIVE_CLOCK_UNCERTAINTY_SUPPORT 0 HAS_AUTO_FIT_SUPPORT 1 HAS_BALANCED_OPT_TECHNIQUE_SUPPORT 1 HAS_BENEFICIAL_SKEW_SUPPORT 1 HAS_BITLEVEL_DRIVE_STRENGTH_CONTROL 1 HAS_BSDL_FILE_GENERATION 1 HAS_CGA_SUPPORT 1 HAS_CHECK_NETLIST_SUPPORT 0 HAS_CLOCK_REGION_CHECKER_ENABLED 1 HAS_CORE_JUNCTION_TEMP_DERATING 0 HAS_CROSSTALK_SUPPORT 0 HAS_CUSTOM_REGION_SUPPORT 1 HAS_DAP_JTAG_FROM_HPS 0 HAS_DATA_DRIVEN_ACVQ_HSSI_SUPPORT 0 HAS_DDB_FDI_SUPPORT 0 HAS_DESIGN_ANALYZER_SUPPORT 1 HAS_DETAILED_IO_RAIL_POWER_MODEL 1 HAS_DETAILED_LEIM_STATIC_POWER_MODEL 1 HAS_DETAILED_LE_POWER_MODEL 1 HAS_DETAILED_ROUTING_MUX_STATIC_POWER_MODEL 1 HAS_DETAILED_THERMAL_CIRCUIT_PARAMETER_SUPPORT 1 HAS_DEVICE_MIGRATION_SUPPORT 1 HAS_DIAGONAL_MIGRATION_SUPPORT 0 HAS_EMIF_TOOLKIT_SUPPORT 0 HAS_ERROR_DETECTION_SUPPORT 0 HAS_FAMILY_VARIANT_MIGRATION_SUPPORT 0 HAS_FANOUT_FREE_NODE_SUPPORT 1 HAS_FAST_FIT_SUPPORT 1 HAS_FITTER_EARLY_TIMING_ESTIMATE_SUPPORT 1 HAS_FITTER_ECO_SUPPORT 1 HAS_FIT_NETLIST_OPT_RETIME_SUPPORT 1 HAS_FIT_NETLIST_OPT_SUPPORT 1 HAS_FORMAL_VERIFICATION_SUPPORT 1 HAS_FPGA_XCHANGE_SUPPORT 1 HAS_FSAC_LUTRAM_REGISTER_PACKING_SUPPORT 0 HAS_FULL_DAT_MIN_TIMING_SUPPORT 1 HAS_FULL_INCREMENTAL_DESIGN_SUPPORT 1 HAS_FUNCTIONAL_SIMULATION_SUPPORT 1 HAS_FUNCTIONAL_VERILOG_SIMULATION_SUPPORT 0 HAS_FUNCTIONAL_VHDL_SIMULATION_SUPPORT 0 HAS_GLITCH_FILTERING_SUPPORT 1 HAS_HC_READY_SUPPORT 0 HAS_HIGH_SPEED_LOW_POWER_TILE_SUPPORT 0 HAS_HOLD_TIME_AVOIDANCE_ACROSS_CLOCK_SPINE_SUPPORT 1 HAS_HSPICE_WRITER_SUPPORT 1 HAS_HSSI_POWER_CALCULATOR 0 HAS_IBISO_WRITER_SUPPORT 0 HAS_INCREMENTAL_DAT_SUPPORT 1 HAS_INCREMENTAL_SYNTHESIS_SUPPORT 1 HAS_INTERFACE_PLANNER_SUPPORT 0 HAS_IO_ASSIGNMENT_ANALYSIS_SUPPORT 1 HAS_IO_DECODER 0 HAS_IO_PLACEMENT_OPTIMIZATION_SUPPORT 1 HAS_IO_SMART_RECOMPILE_SUPPORT 0 HAS_JITTER_SUPPORT 1 HAS_JTAG_SLD_HUB_SUPPORT 1 HAS_LIMITED_TCL_FITTER_SUPPORT 0 HAS_LOGIC_LOCK_SUPPORT 1 HAS_MICROPROCESSOR 0 HAS_MIF_SMART_COMPILE_SUPPORT 1 HAS_MINMAX_TIMING_MODELING_SUPPORT 1 HAS_MIN_TIMING_ANALYSIS_SUPPORT 1 HAS_MUX_RESTRUCTURE_SUPPORT 1 HAS_NEW_HC_FLOW_SUPPORT 0 HAS_NEW_SERDES_MAX_RESOURCE_COUNT_REPORTING_SUPPORT 1 HAS_NEW_VPR_SUPPORT 1 HAS_NONSOCKET_TECHNOLOGY_MIGRATION_SUPPORT 0 HAS_NO_HARDBLOCK_PARTITION_SUPPORT 0 HAS_NO_JTAG_USERCODE_SUPPORT 0 HAS_OPERATING_SETTINGS_AND_CONDITIONS_REPORTING_SUPPORT 1 HAS_PAD_LOCATION_ASSIGNMENT_SUPPORT 0 HAS_PARTIAL_RECONFIG_SUPPORT 0 HAS_PHYSICAL_NETLIST_OUTPUT 0 HAS_PHYSICAL_ROUTING_SUPPORT 0 HAS_PIN_SPECIFIC_VOLTAGE_SUPPORT 1 HAS_PLDM_REF_SUPPORT 1 HAS_POWER_ESTIMATION_SUPPORT 1 HAS_PRELIMINARY_CLOCK_UNCERTAINTY_NUMBERS 0 HAS_PRE_FITTER_FPP_SUPPORT 0 HAS_PRE_FITTER_LUTRAM_NETLIST_CHECKER_ENABLED 0 HAS_PVA_SUPPORT 1 HAS_RCF_SUPPORT 1 HAS_RCF_SUPPORT_FOR_DEBUGGING 0 HAS_RED_BLACK_SEPARATION_SUPPORT 0 HAS_RE_LEVEL_TIMING_GRAPH_SUPPORT 1 HAS_RISEFALL_DELAY_SUPPORT 1 HAS_SIGNAL_PROBE_SUPPORT 1 HAS_SIGNAL_TAP_SUPPORT 1 HAS_SIMULATOR_SUPPORT 0 HAS_SPLIT_IO_SUPPORT 1 HAS_SPLIT_LC_SUPPORT 1 HAS_SYNTH_FSYN_NETLIST_OPT_SUPPORT 1 HAS_SYNTH_NETLIST_OPT_RETIME_SUPPORT 1 HAS_SYNTH_NETLIST_OPT_SUPPORT 1 HAS_TCL_FITTER_SUPPORT 0 HAS_TECHNOLOGY_MIGRATION_SUPPORT 0 HAS_TEMPLATED_REGISTER_PACKING_SUPPORT 1 HAS_TIME_BORROWING_SUPPORT 0 HAS_TIMING_DRIVEN_SYNTHESIS_SUPPORT 1 HAS_TIMING_INFO_SUPPORT 1 HAS_TIMING_OPERATING_CONDITIONS 1 HAS_TIMING_SIMULATION_SUPPORT 1 HAS_TITAN_BASED_MAC_REGISTER_PACKER_SUPPORT 0 HAS_U2B2_SUPPORT 0 HAS_USER_HIGH_SPEED_LOW_POWER_TILE_SUPPORT 0 HAS_USE_FITTER_INFO_SUPPORT 1 HAS_VCCPD_POWER_RAIL 0 HAS_VERTICAL_MIGRATION_SUPPORT 1 HAS_VIEWDRAW_SYMBOL_SUPPORT 0 HAS_VIO_SUPPORT 1 HAS_VIRTUAL_DEVICES 0 HAS_WYSIWYG_DFFEAS_SUPPORT 1 HAS_XIBISO_WRITER_SUPPORT 1 IFP_USE_LEGACY_IO_CHECKER 0 INCREMENTAL_DESIGN_SUPPORTS_COMPATIBLE_CONSTRAINTS 1 INSTALLED 0 IS_CONFIG_ROM 0 IS_DEFAULT_FAMILY 0 IS_HARDCOPY_FAMILY 0 LVDS_IO 1 M10K_MEMORY 0 M144K_MEMORY 0 M20K_MEMORY 0 M4K_MEMORY 0 M512_MEMORY 0 M9K_MEMORY 1 MLAB_MEMORY 0 MRAM_MEMORY 0 NOT_LISTED 0 NO_RPE_SUPPORT 0 NO_SUPPORT_FOR_LOGICLOCK_CONTENT_BACK_ANNOTATION 1 NO_SUPPORT_FOR_STA_CLOCK_UNCERTAINTY_CHECK 0 NO_TDC_SUPPORT 0 POSTFIT_BAK_DATABASE_EXPORT_ENABLED 1 POSTMAP_BAK_DATABASE_EXPORT_ENABLED 1 PROGRAMMER_SUPPORT 1 QFIT_IN_DEVELOPMENT 0 QMAP_IN_DEVELOPMENT 0 RAM_LOGICAL_NAME_CHECKING_IN_CUT_ENABLED 1 REPORTS_METASTABILITY_MTBF 1 REQUIRES_INSTALLATION_PATCH 0 REQUIRES_LIST_OF_TEMPERATURE_AND_VOLTAGE_OPERATING_CONDITIONS 1 RESERVES_SIGNAL_PROBE_PINS 0 RESOLVE_MAX_FANOUT_EARLY 1 RESOLVE_MAX_FANOUT_LATE 0 RESPECTS_FIXED_SIZED_LOCKED_LOCATION_LOGICLOCK 1 RESTRICTED_USER_SELECTION 0 RISEFALL_SUPPORT_IS_HIDDEN 0 STRICT_TIMING_DB_CHECKS 0 SUPPORTS_ADDITIONAL_OPTIONS_FOR_UNUSED_IO 0 SUPPORTS_CRC 1 SUPPORTS_DIFFERENTIAL_AIOT_BOARD_TRACE_MODEL 1 SUPPORTS_DSP_BALANCING_BACK_ANNOTATION 0 SUPPORTS_GENERATION_OF_EARLY_POWER_ESTIMATOR_FILE 1 SUPPORTS_GLOBAL_SIGNAL_BACK_ANNOTATION 0 SUPPORTS_MAC_CHAIN_OUT_ADDER 0 SUPPORTS_RAM_PACKING_BACK_ANNOTATION 0 SUPPORTS_REG_PACKING_BACK_ANNOTATION 0 SUPPORTS_SIGNALPROBE_REGISTER_PIPELINING 1 SUPPORTS_SINGLE_ENDED_AIOT_BOARD_TRACE_MODEL 1 SUPPORTS_USER_MANUAL_LOGIC_DUPLICATION 1 TMV_RUN_CUSTOMIZABLE_VIEWER 1 TMV_RUN_INTERNAL_DETAILS 1 TMV_RUN_INTERNAL_DETAILS_ON_IO 0 TMV_RUN_INTERNAL_DETAILS_ON_IOBUF 1 TMV_RUN_INTERNAL_DETAILS_ON_LCELL 0 TMV_RUN_INTERNAL_DETAILS_ON_LRAM 0 TRANSCEIVER_3G_BLOCK 0 TRANSCEIVER_6G_BLOCK 0 USES_ACV_FOR_FLED 1 USES_ADB_FOR_BACK_ANNOTATION 1 USES_ALTERA_LNSIM 0 USES_ASIC_ROUTING_POWER_CALCULATOR 0 USES_DATA_DRIVEN_PLL_COMPUTATION_UTIL 1 USES_DEV 1 USES_ICP_FOR_ECO_FITTER 0 USES_LIBERTY_TIMING 0 USES_POWER_SIGNAL_ACTIVITIES 1 USES_THIRD_GENERATION_TIMING_MODELS_TIS 1 USES_U2B2_TIMING_MODELS 0 USE_ADVANCED_IO_POWER_BY_DEFAULT 1 USE_ADVANCED_IO_TIMING_BY_DEFAULT 1 USE_BASE_FAMILY_DDB_PATH 0 USE_OCT_AUTO_CALIBRATION 1 USE_RELAX_IO_ASSIGNMENT_RULES 0 USE_RISEFALL_ONLY 1 USE_SEPARATE_LIST_FOR_TECH_MIGRATION 0 USE_SINGLE_COMPILER_PASS_PLL_MIF_FILE_WRITER 1 USE_TITAN_IO_BASED_IO_REGISTER_PACKER_UTIL 0 WYSIWYG_BUS_WIDTH_CHECKING_IN_CUT_ENABLED 1
tightlyCoupledDataMaster0MapParam
tightlyCoupledDataMaster1MapParam
tightlyCoupledDataMaster2MapParam
tightlyCoupledDataMaster3MapParam
tightlyCoupledInstructionMaster0MapParam
tightlyCoupledInstructionMaster1MapParam
tightlyCoupledInstructionMaster2MapParam
tightlyCoupledInstructionMaster3MapParam
deviceFamilyUNKNOWN
generateLegacySimfalse
+
   + + + + +
+

Software Assignments

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
BIG_ENDIAN0
BREAK_ADDR0x00040820
CPU_FREQ50000000u
CPU_ID_SIZE1
CPU_ID_VALUE0x00000000
CPU_IMPLEMENTATION"tiny"
DATA_ADDR_WIDTH19
DCACHE_LINE_SIZE0
DCACHE_LINE_SIZE_LOG20
DCACHE_SIZE0
EXCEPTION_ADDR0x00000020
FLUSHDA_SUPPORTED
HARDWARE_DIVIDE_PRESENT0
HARDWARE_MULTIPLY_PRESENT0
HARDWARE_MULX_PRESENT0
HAS_DEBUG_CORE1
HAS_DEBUG_STUB
HAS_JMPI_INSTRUCTION
ICACHE_LINE_SIZE0
ICACHE_LINE_SIZE_LOG20
ICACHE_SIZE0
INST_ADDR_WIDTH19
RESET_ADDR0x00000000
+
+
+ +
+
+

onchip_memory

altera_avalon_onchip_memory2 v13.0.1.99.2 +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ clk_0 + clk  onchip_memory
  clk1
clk_reset  
  reset1
+ nios2_processor + jtag_debug_module_reset  
  reset1
instruction_master  
  s1
data_master  
  s1
+
+
+
+ + + + +
+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
allowInSystemMemoryContentEditorfalse
blockTypeAUTO
dataWidth32
dualPortfalse
initMemContenttrue
initializationFileNameonchip_mem.hex
instanceIDNONE
memorySize204800
readDuringWriteModeDONT_CARE
simAllowMRAMContentsFilefalse
simMemInitOnlyFilename0
singleClockOperationfalse
slave1Latency1
slave2Latency1
useNonDefaultInitFilefalse
useShallowMemBlocksfalse
writabletrue
autoInitializationFileNamenios_system_onchip_memory
deviceFamilyCYCLONEIVE
deviceFeaturesADDRESS_STALL 1 CELL_LEVEL_BACK_ANNOTATION_DISABLED 0 COMPILER_SUPPORT 1 DSP 0 DSP_SHIFTER_BLOCK 0 DUMP_ASM_LAB_BITS_FOR_POWER 1 EMUL 1 ENABLE_ADVANCED_IO_ANALYSIS_GUI_FEATURES 1 EPCS 1 ESB 0 FAKE1 0 FAKE2 0 FAKE3 0 FAMILY_LEVEL_INSTALLATION_ONLY 1 FITTER_USE_FALLING_EDGE_DELAY 0 GENERATE_DC_ON_CURRENT_WARNING_FOR_INTERNAL_CLAMPING_DIODE 0 HARDCOPY 0 HAS_18_BIT_MULTS 0 HAS_ACE_SUPPORT 1 HAS_ADJUSTABLE_OUTPUT_IO_TIMING_MEAS_POINT 0 HAS_ADVANCED_IO_INVERTED_CORNER 0 HAS_ADVANCED_IO_POWER_SUPPORT 1 HAS_ADVANCED_IO_TIMING_SUPPORT 1 HAS_ALM_SUPPORT 0 HAS_ATOM_AND_ROUTING_POWER_MODELED_TOGETHER 0 HAS_AUTO_DERIVE_CLOCK_UNCERTAINTY_SUPPORT 0 HAS_AUTO_FIT_SUPPORT 1 HAS_BALANCED_OPT_TECHNIQUE_SUPPORT 1 HAS_BENEFICIAL_SKEW_SUPPORT 1 HAS_BITLEVEL_DRIVE_STRENGTH_CONTROL 1 HAS_BSDL_FILE_GENERATION 1 HAS_CGA_SUPPORT 1 HAS_CHECK_NETLIST_SUPPORT 0 HAS_CLOCK_REGION_CHECKER_ENABLED 1 HAS_CORE_JUNCTION_TEMP_DERATING 0 HAS_CROSSTALK_SUPPORT 0 HAS_CUSTOM_REGION_SUPPORT 1 HAS_DAP_JTAG_FROM_HPS 0 HAS_DATA_DRIVEN_ACVQ_HSSI_SUPPORT 0 HAS_DDB_FDI_SUPPORT 0 HAS_DESIGN_ANALYZER_SUPPORT 1 HAS_DETAILED_IO_RAIL_POWER_MODEL 1 HAS_DETAILED_LEIM_STATIC_POWER_MODEL 1 HAS_DETAILED_LE_POWER_MODEL 1 HAS_DETAILED_ROUTING_MUX_STATIC_POWER_MODEL 1 HAS_DETAILED_THERMAL_CIRCUIT_PARAMETER_SUPPORT 1 HAS_DEVICE_MIGRATION_SUPPORT 1 HAS_DIAGONAL_MIGRATION_SUPPORT 0 HAS_EMIF_TOOLKIT_SUPPORT 0 HAS_ERROR_DETECTION_SUPPORT 0 HAS_FAMILY_VARIANT_MIGRATION_SUPPORT 0 HAS_FANOUT_FREE_NODE_SUPPORT 1 HAS_FAST_FIT_SUPPORT 1 HAS_FITTER_EARLY_TIMING_ESTIMATE_SUPPORT 1 HAS_FITTER_ECO_SUPPORT 1 HAS_FIT_NETLIST_OPT_RETIME_SUPPORT 1 HAS_FIT_NETLIST_OPT_SUPPORT 1 HAS_FORMAL_VERIFICATION_SUPPORT 1 HAS_FPGA_XCHANGE_SUPPORT 1 HAS_FSAC_LUTRAM_REGISTER_PACKING_SUPPORT 0 HAS_FULL_DAT_MIN_TIMING_SUPPORT 1 HAS_FULL_INCREMENTAL_DESIGN_SUPPORT 1 HAS_FUNCTIONAL_SIMULATION_SUPPORT 1 HAS_FUNCTIONAL_VERILOG_SIMULATION_SUPPORT 0 HAS_FUNCTIONAL_VHDL_SIMULATION_SUPPORT 0 HAS_GLITCH_FILTERING_SUPPORT 1 HAS_HC_READY_SUPPORT 0 HAS_HIGH_SPEED_LOW_POWER_TILE_SUPPORT 0 HAS_HOLD_TIME_AVOIDANCE_ACROSS_CLOCK_SPINE_SUPPORT 1 HAS_HSPICE_WRITER_SUPPORT 1 HAS_HSSI_POWER_CALCULATOR 0 HAS_IBISO_WRITER_SUPPORT 0 HAS_INCREMENTAL_DAT_SUPPORT 1 HAS_INCREMENTAL_SYNTHESIS_SUPPORT 1 HAS_INTERFACE_PLANNER_SUPPORT 0 HAS_IO_ASSIGNMENT_ANALYSIS_SUPPORT 1 HAS_IO_DECODER 0 HAS_IO_PLACEMENT_OPTIMIZATION_SUPPORT 1 HAS_IO_SMART_RECOMPILE_SUPPORT 0 HAS_JITTER_SUPPORT 1 HAS_JTAG_SLD_HUB_SUPPORT 1 HAS_LIMITED_TCL_FITTER_SUPPORT 0 HAS_LOGIC_LOCK_SUPPORT 1 HAS_MICROPROCESSOR 0 HAS_MIF_SMART_COMPILE_SUPPORT 1 HAS_MINMAX_TIMING_MODELING_SUPPORT 1 HAS_MIN_TIMING_ANALYSIS_SUPPORT 1 HAS_MUX_RESTRUCTURE_SUPPORT 1 HAS_NEW_HC_FLOW_SUPPORT 0 HAS_NEW_SERDES_MAX_RESOURCE_COUNT_REPORTING_SUPPORT 1 HAS_NEW_VPR_SUPPORT 1 HAS_NONSOCKET_TECHNOLOGY_MIGRATION_SUPPORT 0 HAS_NO_HARDBLOCK_PARTITION_SUPPORT 0 HAS_NO_JTAG_USERCODE_SUPPORT 0 HAS_OPERATING_SETTINGS_AND_CONDITIONS_REPORTING_SUPPORT 1 HAS_PAD_LOCATION_ASSIGNMENT_SUPPORT 0 HAS_PARTIAL_RECONFIG_SUPPORT 0 HAS_PHYSICAL_NETLIST_OUTPUT 0 HAS_PHYSICAL_ROUTING_SUPPORT 0 HAS_PIN_SPECIFIC_VOLTAGE_SUPPORT 1 HAS_PLDM_REF_SUPPORT 1 HAS_POWER_ESTIMATION_SUPPORT 1 HAS_PRELIMINARY_CLOCK_UNCERTAINTY_NUMBERS 0 HAS_PRE_FITTER_FPP_SUPPORT 0 HAS_PRE_FITTER_LUTRAM_NETLIST_CHECKER_ENABLED 0 HAS_PVA_SUPPORT 1 HAS_RCF_SUPPORT 1 HAS_RCF_SUPPORT_FOR_DEBUGGING 0 HAS_RED_BLACK_SEPARATION_SUPPORT 0 HAS_RE_LEVEL_TIMING_GRAPH_SUPPORT 1 HAS_RISEFALL_DELAY_SUPPORT 1 HAS_SIGNAL_PROBE_SUPPORT 1 HAS_SIGNAL_TAP_SUPPORT 1 HAS_SIMULATOR_SUPPORT 0 HAS_SPLIT_IO_SUPPORT 1 HAS_SPLIT_LC_SUPPORT 1 HAS_SYNTH_FSYN_NETLIST_OPT_SUPPORT 1 HAS_SYNTH_NETLIST_OPT_RETIME_SUPPORT 1 HAS_SYNTH_NETLIST_OPT_SUPPORT 1 HAS_TCL_FITTER_SUPPORT 0 HAS_TECHNOLOGY_MIGRATION_SUPPORT 0 HAS_TEMPLATED_REGISTER_PACKING_SUPPORT 1 HAS_TIME_BORROWING_SUPPORT 0 HAS_TIMING_DRIVEN_SYNTHESIS_SUPPORT 1 HAS_TIMING_INFO_SUPPORT 1 HAS_TIMING_OPERATING_CONDITIONS 1 HAS_TIMING_SIMULATION_SUPPORT 1 HAS_TITAN_BASED_MAC_REGISTER_PACKER_SUPPORT 0 HAS_U2B2_SUPPORT 0 HAS_USER_HIGH_SPEED_LOW_POWER_TILE_SUPPORT 0 HAS_USE_FITTER_INFO_SUPPORT 1 HAS_VCCPD_POWER_RAIL 0 HAS_VERTICAL_MIGRATION_SUPPORT 1 HAS_VIEWDRAW_SYMBOL_SUPPORT 0 HAS_VIO_SUPPORT 1 HAS_VIRTUAL_DEVICES 0 HAS_WYSIWYG_DFFEAS_SUPPORT 1 HAS_XIBISO_WRITER_SUPPORT 1 IFP_USE_LEGACY_IO_CHECKER 0 INCREMENTAL_DESIGN_SUPPORTS_COMPATIBLE_CONSTRAINTS 1 INSTALLED 0 IS_CONFIG_ROM 0 IS_DEFAULT_FAMILY 0 IS_HARDCOPY_FAMILY 0 LVDS_IO 1 M10K_MEMORY 0 M144K_MEMORY 0 M20K_MEMORY 0 M4K_MEMORY 0 M512_MEMORY 0 M9K_MEMORY 1 MLAB_MEMORY 0 MRAM_MEMORY 0 NOT_LISTED 0 NO_RPE_SUPPORT 0 NO_SUPPORT_FOR_LOGICLOCK_CONTENT_BACK_ANNOTATION 1 NO_SUPPORT_FOR_STA_CLOCK_UNCERTAINTY_CHECK 0 NO_TDC_SUPPORT 0 POSTFIT_BAK_DATABASE_EXPORT_ENABLED 1 POSTMAP_BAK_DATABASE_EXPORT_ENABLED 1 PROGRAMMER_SUPPORT 1 QFIT_IN_DEVELOPMENT 0 QMAP_IN_DEVELOPMENT 0 RAM_LOGICAL_NAME_CHECKING_IN_CUT_ENABLED 1 REPORTS_METASTABILITY_MTBF 1 REQUIRES_INSTALLATION_PATCH 0 REQUIRES_LIST_OF_TEMPERATURE_AND_VOLTAGE_OPERATING_CONDITIONS 1 RESERVES_SIGNAL_PROBE_PINS 0 RESOLVE_MAX_FANOUT_EARLY 1 RESOLVE_MAX_FANOUT_LATE 0 RESPECTS_FIXED_SIZED_LOCKED_LOCATION_LOGICLOCK 1 RESTRICTED_USER_SELECTION 0 RISEFALL_SUPPORT_IS_HIDDEN 0 STRICT_TIMING_DB_CHECKS 0 SUPPORTS_ADDITIONAL_OPTIONS_FOR_UNUSED_IO 0 SUPPORTS_CRC 1 SUPPORTS_DIFFERENTIAL_AIOT_BOARD_TRACE_MODEL 1 SUPPORTS_DSP_BALANCING_BACK_ANNOTATION 0 SUPPORTS_GENERATION_OF_EARLY_POWER_ESTIMATOR_FILE 1 SUPPORTS_GLOBAL_SIGNAL_BACK_ANNOTATION 0 SUPPORTS_MAC_CHAIN_OUT_ADDER 0 SUPPORTS_RAM_PACKING_BACK_ANNOTATION 0 SUPPORTS_REG_PACKING_BACK_ANNOTATION 0 SUPPORTS_SIGNALPROBE_REGISTER_PIPELINING 1 SUPPORTS_SINGLE_ENDED_AIOT_BOARD_TRACE_MODEL 1 SUPPORTS_USER_MANUAL_LOGIC_DUPLICATION 1 TMV_RUN_CUSTOMIZABLE_VIEWER 1 TMV_RUN_INTERNAL_DETAILS 1 TMV_RUN_INTERNAL_DETAILS_ON_IO 0 TMV_RUN_INTERNAL_DETAILS_ON_IOBUF 1 TMV_RUN_INTERNAL_DETAILS_ON_LCELL 0 TMV_RUN_INTERNAL_DETAILS_ON_LRAM 0 TRANSCEIVER_3G_BLOCK 0 TRANSCEIVER_6G_BLOCK 0 USES_ACV_FOR_FLED 1 USES_ADB_FOR_BACK_ANNOTATION 1 USES_ALTERA_LNSIM 0 USES_ASIC_ROUTING_POWER_CALCULATOR 0 USES_DATA_DRIVEN_PLL_COMPUTATION_UTIL 1 USES_DEV 1 USES_ICP_FOR_ECO_FITTER 0 USES_LIBERTY_TIMING 0 USES_POWER_SIGNAL_ACTIVITIES 1 USES_THIRD_GENERATION_TIMING_MODELS_TIS 1 USES_U2B2_TIMING_MODELS 0 USE_ADVANCED_IO_POWER_BY_DEFAULT 1 USE_ADVANCED_IO_TIMING_BY_DEFAULT 1 USE_BASE_FAMILY_DDB_PATH 0 USE_OCT_AUTO_CALIBRATION 1 USE_RELAX_IO_ASSIGNMENT_RULES 0 USE_RISEFALL_ONLY 1 USE_SEPARATE_LIST_FOR_TECH_MIGRATION 0 USE_SINGLE_COMPILER_PASS_PLL_MIF_FILE_WRITER 1 USE_TITAN_IO_BASED_IO_REGISTER_PACKER_UTIL 0 WYSIWYG_BUS_WIDTH_CHECKING_IN_CUT_ENABLED 1
derived_set_addr_width16
derived_gui_ram_block_typeAutomatic
derived_is_hardcopyfalse
derived_init_file_namenios_system_onchip_memory.hex
generateLegacySimfalse
+
   + + + + +
+

Software Assignments

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ALLOW_IN_SYSTEM_MEMORY_CONTENT_EDITOR0
ALLOW_MRAM_SIM_CONTENTS_ONLY_FILE0
CONTENTS_INFO""
DUAL_PORT0
GUI_RAM_BLOCK_TYPEAUTO
INIT_CONTENTS_FILEnios_system_onchip_memory
INIT_MEM_CONTENT1
INSTANCE_IDNONE
NON_DEFAULT_INIT_FILE_ENABLED0
RAM_BLOCK_TYPEAUTO
READ_DURING_WRITE_MODEDONT_CARE
SINGLE_CLOCK_OP0
SIZE_MULTIPLE1
SIZE_VALUE204800
WRITABLE1
+
+
+ +
+
+

jtag_uart

altera_avalon_jtag_uart v13.0.1.99.2 +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ nios2_processor + jtag_debug_module_reset  jtag_uart
  reset
d_irq  
  irq
data_master  
  avalon_jtag_slave
+ clk_0 + clk_reset  
  reset
clk  
  clk
+
+
+
+ + + + +
+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
allowMultipleConnectionsfalse
hubInstanceID0
readBufferDepth64
readIRQThreshold8
simInputCharacterStream
simInteractiveOptionsNO_INTERACTIVE_WINDOWS
useRegistersForReadBufferfalse
useRegistersForWriteBufferfalse
useRelativePathForSimFilefalse
writeBufferDepth64
writeIRQThreshold8
avalonSpec2.0
legacySignalAllowfalse
enableInteractiveInputfalse
enableInteractiveOutputfalse
deviceFamilyUNKNOWN
generateLegacySimfalse
+
   + + + + +
+

Software Assignments

+ + + + + + + + + + + + + + + + + +
READ_DEPTH64
READ_THRESHOLD8
WRITE_DEPTH64
WRITE_THRESHOLD8
+
+
+ +
+
+

LEDs

altera_avalon_pio v13.0.1.99.2 +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ clk_0 + clk  LEDs
  clk
clk_reset  
  reset
+ nios2_processor + jtag_debug_module_reset  
  reset
data_master  
  s1
+
+
+
+ + + + +
+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
bitClearingEdgeCapRegfalse
bitModifyingOutRegfalse
captureEdgefalse
directionOutput
edgeTypeRISING
generateIRQfalse
irqTypeLEVEL
resetValue0
simDoTestBenchWiringfalse
simDrivenValue0
width8
clockRate50000000
derived_has_trifalse
derived_has_outtrue
derived_has_infalse
derived_do_test_bench_wiringfalse
derived_capturefalse
derived_edge_typeNONE
derived_irq_typeNONE
derived_has_irqfalse
deviceFamilyUNKNOWN
generateLegacySimfalse
+
   + + + + +
+

Software Assignments

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
BIT_CLEARING_EDGE_REGISTER0
BIT_MODIFYING_OUTPUT_REGISTER0
CAPTURE0
DATA_WIDTH8
DO_TEST_BENCH_WIRING0
DRIVEN_SIM_VALUE0
EDGE_TYPENONE
FREQ50000000
HAS_IN0
HAS_OUT1
HAS_TRI0
IRQ_TYPENONE
RESET_VALUE0
+
+
+ +
+
+

LEDRs

altera_avalon_pio v13.0.1.99.2 +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ clk_0 + clk  LEDRs
  clk
clk_reset  
  reset
+ nios2_processor + data_master  
  s1
jtag_debug_module_reset  
  reset
+
+
+
+ + + + +
+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
bitClearingEdgeCapRegfalse
bitModifyingOutRegfalse
captureEdgefalse
directionOutput
edgeTypeRISING
generateIRQfalse
irqTypeLEVEL
resetValue0
simDoTestBenchWiringfalse
simDrivenValue0
width18
clockRate50000000
derived_has_trifalse
derived_has_outtrue
derived_has_infalse
derived_do_test_bench_wiringfalse
derived_capturefalse
derived_edge_typeNONE
derived_irq_typeNONE
derived_has_irqfalse
deviceFamilyUNKNOWN
generateLegacySimfalse
+
   + + + + +
+

Software Assignments

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
BIT_CLEARING_EDGE_REGISTER0
BIT_MODIFYING_OUTPUT_REGISTER0
CAPTURE0
DATA_WIDTH18
DO_TEST_BENCH_WIRING0
DRIVEN_SIM_VALUE0
EDGE_TYPENONE
FREQ50000000
HAS_IN0
HAS_OUT1
HAS_TRI0
IRQ_TYPENONE
RESET_VALUE0
+
+
+ +
+
+

switches

altera_avalon_pio v13.0.1.99.2 +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ clk_0 + clk  switches
  clk
clk_reset  
  reset
+ nios2_processor + jtag_debug_module_reset  
  reset
data_master  
  s1
+
+
+
+ + + + +
+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
bitClearingEdgeCapRegfalse
bitModifyingOutRegfalse
captureEdgefalse
directionInput
edgeTypeRISING
generateIRQfalse
irqTypeLEVEL
resetValue0
simDoTestBenchWiringfalse
simDrivenValue0
width18
clockRate50000000
derived_has_trifalse
derived_has_outfalse
derived_has_intrue
derived_do_test_bench_wiringfalse
derived_capturefalse
derived_edge_typeNONE
derived_irq_typeNONE
derived_has_irqfalse
deviceFamilyUNKNOWN
generateLegacySimfalse
+
   + + + + +
+

Software Assignments

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
BIT_CLEARING_EDGE_REGISTER0
BIT_MODIFYING_OUTPUT_REGISTER0
CAPTURE0
DATA_WIDTH18
DO_TEST_BENCH_WIRING0
DRIVEN_SIM_VALUE0
EDGE_TYPENONE
FREQ50000000
HAS_IN1
HAS_OUT0
HAS_TRI0
IRQ_TYPENONE
RESET_VALUE0
+
+
+ +
+
+

push_switches

altera_avalon_pio v13.0.1.99.2 +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ clk_0 + clk  push_switches
  clk
clk_reset  
  reset
+ nios2_processor + data_master  
  s1
jtag_debug_module_reset  
  reset
+
+
+
+ + + + +
+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
bitClearingEdgeCapRegfalse
bitModifyingOutRegfalse
captureEdgefalse
directionInput
edgeTypeRISING
generateIRQfalse
irqTypeLEVEL
resetValue0
simDoTestBenchWiringfalse
simDrivenValue0
width3
clockRate50000000
derived_has_trifalse
derived_has_outfalse
derived_has_intrue
derived_do_test_bench_wiringfalse
derived_capturefalse
derived_edge_typeNONE
derived_irq_typeNONE
derived_has_irqfalse
deviceFamilyUNKNOWN
generateLegacySimfalse
+
   + + + + +
+

Software Assignments

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
BIT_CLEARING_EDGE_REGISTER0
BIT_MODIFYING_OUTPUT_REGISTER0
CAPTURE0
DATA_WIDTH3
DO_TEST_BENCH_WIRING0
DRIVEN_SIM_VALUE0
EDGE_TYPENONE
FREQ50000000
HAS_IN1
HAS_OUT0
HAS_TRI0
IRQ_TYPENONE
RESET_VALUE0
+
+
+ +
+
+

hex0

altera_avalon_pio v13.0.1.99.2 +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ clk_0 + clk  hex0
  clk
clk_reset  
  reset
+ nios2_processor + data_master  
  s1
jtag_debug_module_reset  
  reset
+
+
+
+ + + + +
+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
bitClearingEdgeCapRegfalse
bitModifyingOutRegfalse
captureEdgefalse
directionOutput
edgeTypeRISING
generateIRQfalse
irqTypeLEVEL
resetValue0
simDoTestBenchWiringfalse
simDrivenValue0
width7
clockRate50000000
derived_has_trifalse
derived_has_outtrue
derived_has_infalse
derived_do_test_bench_wiringfalse
derived_capturefalse
derived_edge_typeNONE
derived_irq_typeNONE
derived_has_irqfalse
deviceFamilyUNKNOWN
generateLegacySimfalse
+
   + + + + +
+

Software Assignments

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
BIT_CLEARING_EDGE_REGISTER0
BIT_MODIFYING_OUTPUT_REGISTER0
CAPTURE0
DATA_WIDTH7
DO_TEST_BENCH_WIRING0
DRIVEN_SIM_VALUE0
EDGE_TYPENONE
FREQ50000000
HAS_IN0
HAS_OUT1
HAS_TRI0
IRQ_TYPENONE
RESET_VALUE0
+
+
+ +
+
+

hex1

altera_avalon_pio v13.0.1.99.2 +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ clk_0 + clk  hex1
  clk
clk_reset  
  reset
+ nios2_processor + data_master  
  s1
jtag_debug_module_reset  
  reset
+
+
+
+ + + + +
+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
bitClearingEdgeCapRegfalse
bitModifyingOutRegfalse
captureEdgefalse
directionOutput
edgeTypeRISING
generateIRQfalse
irqTypeLEVEL
resetValue0
simDoTestBenchWiringfalse
simDrivenValue0
width7
clockRate50000000
derived_has_trifalse
derived_has_outtrue
derived_has_infalse
derived_do_test_bench_wiringfalse
derived_capturefalse
derived_edge_typeNONE
derived_irq_typeNONE
derived_has_irqfalse
deviceFamilyUNKNOWN
generateLegacySimfalse
+
   + + + + +
+

Software Assignments

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
BIT_CLEARING_EDGE_REGISTER0
BIT_MODIFYING_OUTPUT_REGISTER0
CAPTURE0
DATA_WIDTH7
DO_TEST_BENCH_WIRING0
DRIVEN_SIM_VALUE0
EDGE_TYPENONE
FREQ50000000
HAS_IN0
HAS_OUT1
HAS_TRI0
IRQ_TYPENONE
RESET_VALUE0
+
+
+ +
+
+

hex2

altera_avalon_pio v13.0.1.99.2 +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ clk_0 + clk  hex2
  clk
clk_reset  
  reset
+ nios2_processor + data_master  
  s1
jtag_debug_module_reset  
  reset
+
+
+
+ + + + +
+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
bitClearingEdgeCapRegfalse
bitModifyingOutRegfalse
captureEdgefalse
directionOutput
edgeTypeRISING
generateIRQfalse
irqTypeLEVEL
resetValue0
simDoTestBenchWiringfalse
simDrivenValue0
width7
clockRate50000000
derived_has_trifalse
derived_has_outtrue
derived_has_infalse
derived_do_test_bench_wiringfalse
derived_capturefalse
derived_edge_typeNONE
derived_irq_typeNONE
derived_has_irqfalse
deviceFamilyUNKNOWN
generateLegacySimfalse
+
   + + + + +
+

Software Assignments

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
BIT_CLEARING_EDGE_REGISTER0
BIT_MODIFYING_OUTPUT_REGISTER0
CAPTURE0
DATA_WIDTH7
DO_TEST_BENCH_WIRING0
DRIVEN_SIM_VALUE0
EDGE_TYPENONE
FREQ50000000
HAS_IN0
HAS_OUT1
HAS_TRI0
IRQ_TYPENONE
RESET_VALUE0
+
+
+ +
+
+

hex3

altera_avalon_pio v13.0.1.99.2 +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ clk_0 + clk  hex3
  clk
clk_reset  
  reset
+ nios2_processor + data_master  
  s1
jtag_debug_module_reset  
  reset
+
+
+
+ + + + +
+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
bitClearingEdgeCapRegfalse
bitModifyingOutRegfalse
captureEdgefalse
directionOutput
edgeTypeRISING
generateIRQfalse
irqTypeLEVEL
resetValue0
simDoTestBenchWiringfalse
simDrivenValue0
width7
clockRate50000000
derived_has_trifalse
derived_has_outtrue
derived_has_infalse
derived_do_test_bench_wiringfalse
derived_capturefalse
derived_edge_typeNONE
derived_irq_typeNONE
derived_has_irqfalse
deviceFamilyUNKNOWN
generateLegacySimfalse
+
   + + + + +
+

Software Assignments

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
BIT_CLEARING_EDGE_REGISTER0
BIT_MODIFYING_OUTPUT_REGISTER0
CAPTURE0
DATA_WIDTH7
DO_TEST_BENCH_WIRING0
DRIVEN_SIM_VALUE0
EDGE_TYPENONE
FREQ50000000
HAS_IN0
HAS_OUT1
HAS_TRI0
IRQ_TYPENONE
RESET_VALUE0
+
+
+ +
+
+

hex4

altera_avalon_pio v13.0.1.99.2 +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ clk_0 + clk  hex4
  clk
clk_reset  
  reset
+ nios2_processor + data_master  
  s1
jtag_debug_module_reset  
  reset
+
+
+
+ + + + +
+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
bitClearingEdgeCapRegfalse
bitModifyingOutRegfalse
captureEdgefalse
directionOutput
edgeTypeRISING
generateIRQfalse
irqTypeLEVEL
resetValue0
simDoTestBenchWiringfalse
simDrivenValue0
width7
clockRate50000000
derived_has_trifalse
derived_has_outtrue
derived_has_infalse
derived_do_test_bench_wiringfalse
derived_capturefalse
derived_edge_typeNONE
derived_irq_typeNONE
derived_has_irqfalse
deviceFamilyUNKNOWN
generateLegacySimfalse
+
   + + + + +
+

Software Assignments

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
BIT_CLEARING_EDGE_REGISTER0
BIT_MODIFYING_OUTPUT_REGISTER0
CAPTURE0
DATA_WIDTH7
DO_TEST_BENCH_WIRING0
DRIVEN_SIM_VALUE0
EDGE_TYPENONE
FREQ50000000
HAS_IN0
HAS_OUT1
HAS_TRI0
IRQ_TYPENONE
RESET_VALUE0
+
+
+ +
+
+

hex5

altera_avalon_pio v13.0.1.99.2 +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ clk_0 + clk  hex5
  clk
clk_reset  
  reset
+ nios2_processor + data_master  
  s1
jtag_debug_module_reset  
  reset
+
+
+
+ + + + +
+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
bitClearingEdgeCapRegfalse
bitModifyingOutRegfalse
captureEdgefalse
directionOutput
edgeTypeRISING
generateIRQfalse
irqTypeLEVEL
resetValue0
simDoTestBenchWiringfalse
simDrivenValue0
width7
clockRate50000000
derived_has_trifalse
derived_has_outtrue
derived_has_infalse
derived_do_test_bench_wiringfalse
derived_capturefalse
derived_edge_typeNONE
derived_irq_typeNONE
derived_has_irqfalse
deviceFamilyUNKNOWN
generateLegacySimfalse
+
   + + + + +
+

Software Assignments

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
BIT_CLEARING_EDGE_REGISTER0
BIT_MODIFYING_OUTPUT_REGISTER0
CAPTURE0
DATA_WIDTH7
DO_TEST_BENCH_WIRING0
DRIVEN_SIM_VALUE0
EDGE_TYPENONE
FREQ50000000
HAS_IN0
HAS_OUT1
HAS_TRI0
IRQ_TYPENONE
RESET_VALUE0
+
+
+ +
+
+

hex6

altera_avalon_pio v13.0.1.99.2 +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ clk_0 + clk  hex6
  clk
clk_reset  
  reset
+ nios2_processor + data_master  
  s1
jtag_debug_module_reset  
  reset
+
+
+
+ + + + +
+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
bitClearingEdgeCapRegfalse
bitModifyingOutRegfalse
captureEdgefalse
directionOutput
edgeTypeRISING
generateIRQfalse
irqTypeLEVEL
resetValue0
simDoTestBenchWiringfalse
simDrivenValue0
width7
clockRate50000000
derived_has_trifalse
derived_has_outtrue
derived_has_infalse
derived_do_test_bench_wiringfalse
derived_capturefalse
derived_edge_typeNONE
derived_irq_typeNONE
derived_has_irqfalse
deviceFamilyUNKNOWN
generateLegacySimfalse
+
   + + + + +
+

Software Assignments

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
BIT_CLEARING_EDGE_REGISTER0
BIT_MODIFYING_OUTPUT_REGISTER0
CAPTURE0
DATA_WIDTH7
DO_TEST_BENCH_WIRING0
DRIVEN_SIM_VALUE0
EDGE_TYPENONE
FREQ50000000
HAS_IN0
HAS_OUT1
HAS_TRI0
IRQ_TYPENONE
RESET_VALUE0
+
+
+ +
+
+

hex7

altera_avalon_pio v13.0.1.99.2 +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ clk_0 + clk  hex7
  clk
clk_reset  
  reset
+ nios2_processor + data_master  
  s1
jtag_debug_module_reset  
  reset
+
+
+
+ + + + +
+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
bitClearingEdgeCapRegfalse
bitModifyingOutRegfalse
captureEdgefalse
directionOutput
edgeTypeRISING
generateIRQfalse
irqTypeLEVEL
resetValue0
simDoTestBenchWiringfalse
simDrivenValue0
width7
clockRate50000000
derived_has_trifalse
derived_has_outtrue
derived_has_infalse
derived_do_test_bench_wiringfalse
derived_capturefalse
derived_edge_typeNONE
derived_irq_typeNONE
derived_has_irqfalse
deviceFamilyUNKNOWN
generateLegacySimfalse
+
   + + + + +
+

Software Assignments

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
BIT_CLEARING_EDGE_REGISTER0
BIT_MODIFYING_OUTPUT_REGISTER0
CAPTURE0
DATA_WIDTH7
DO_TEST_BENCH_WIRING0
DRIVEN_SIM_VALUE0
EDGE_TYPENONE
FREQ50000000
HAS_IN0
HAS_OUT1
HAS_TRI0
IRQ_TYPENONE
RESET_VALUE0
+
+
+ +
+
+

lcd_16207_0

altera_avalon_lcd_16207 v13.0.1.99.2 +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ clk_0 + clk  lcd_16207_0
  clk
clk_reset  
  reset
+ nios2_processor + jtag_debug_module_reset  
  reset
data_master  
  control_slave
+
+
+
+ + + + +
+

Parameters

+ + + + + + + + + +
deviceFamilyUNKNOWN
generateLegacySimfalse
+
   + + + + +
+

Software Assignments

(none)
+
+ +
+
+

lcd_on

altera_avalon_pio v13.0.1.99.2 +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ clk_0 + clk  lcd_on
  clk
clk_reset  
  reset
+ nios2_processor + data_master  
  s1
jtag_debug_module_reset  
  reset
+
+
+
+ + + + +
+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
bitClearingEdgeCapRegfalse
bitModifyingOutRegfalse
captureEdgefalse
directionOutput
edgeTypeRISING
generateIRQfalse
irqTypeLEVEL
resetValue0
simDoTestBenchWiringfalse
simDrivenValue0
width1
clockRate50000000
derived_has_trifalse
derived_has_outtrue
derived_has_infalse
derived_do_test_bench_wiringfalse
derived_capturefalse
derived_edge_typeNONE
derived_irq_typeNONE
derived_has_irqfalse
deviceFamilyUNKNOWN
generateLegacySimfalse
+
   + + + + +
+

Software Assignments

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
BIT_CLEARING_EDGE_REGISTER0
BIT_MODIFYING_OUTPUT_REGISTER0
CAPTURE0
DATA_WIDTH1
DO_TEST_BENCH_WIRING0
DRIVEN_SIM_VALUE0
EDGE_TYPENONE
FREQ50000000
HAS_IN0
HAS_OUT1
HAS_TRI0
IRQ_TYPENONE
RESET_VALUE0
+
+
+ +
+
+

lcd_blon

altera_avalon_pio v13.0.1.99.2 +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ clk_0 + clk  lcd_blon
  clk
clk_reset  
  reset
+ nios2_processor + jtag_debug_module_reset  
  reset
data_master  
  s1
+
+
+
+ + + + +
+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
bitClearingEdgeCapRegfalse
bitModifyingOutRegfalse
captureEdgefalse
directionOutput
edgeTypeRISING
generateIRQfalse
irqTypeLEVEL
resetValue0
simDoTestBenchWiringfalse
simDrivenValue0
width1
clockRate50000000
derived_has_trifalse
derived_has_outtrue
derived_has_infalse
derived_do_test_bench_wiringfalse
derived_capturefalse
derived_edge_typeNONE
derived_irq_typeNONE
derived_has_irqfalse
deviceFamilyUNKNOWN
generateLegacySimfalse
+
   + + + + +
+

Software Assignments

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
BIT_CLEARING_EDGE_REGISTER0
BIT_MODIFYING_OUTPUT_REGISTER0
CAPTURE0
DATA_WIDTH1
DO_TEST_BENCH_WIRING0
DRIVEN_SIM_VALUE0
EDGE_TYPENONE
FREQ50000000
HAS_IN0
HAS_OUT1
HAS_TRI0
IRQ_TYPENONE
RESET_VALUE0
+
+
+ + + + + +
generation took 0.00 secondsrendering took 0.15 seconds
+ + diff --git a/nios_system.qsys b/nios_system.qsys new file mode 100644 index 0000000..38384f0 --- /dev/null +++ b/nios_system.qsys @@ -0,0 +1,1274 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + nios2_processor.jtag_debug_module + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ]]> + ]]> + + + + + ADDRESS_STALL 1 CELL_LEVEL_BACK_ANNOTATION_DISABLED 0 COMPILER_SUPPORT 1 DSP 0 DSP_SHIFTER_BLOCK 0 DUMP_ASM_LAB_BITS_FOR_POWER 1 EMUL 1 ENABLE_ADVANCED_IO_ANALYSIS_GUI_FEATURES 1 EPCS 1 ESB 0 FAKE1 0 FAKE2 0 FAKE3 0 FAMILY_LEVEL_INSTALLATION_ONLY 1 FITTER_USE_FALLING_EDGE_DELAY 0 GENERATE_DC_ON_CURRENT_WARNING_FOR_INTERNAL_CLAMPING_DIODE 0 HARDCOPY 0 HAS_18_BIT_MULTS 0 HAS_ACE_SUPPORT 1 HAS_ADJUSTABLE_OUTPUT_IO_TIMING_MEAS_POINT 0 HAS_ADVANCED_IO_INVERTED_CORNER 0 HAS_ADVANCED_IO_POWER_SUPPORT 1 HAS_ADVANCED_IO_TIMING_SUPPORT 1 HAS_ALM_SUPPORT 0 HAS_ATOM_AND_ROUTING_POWER_MODELED_TOGETHER 0 HAS_AUTO_DERIVE_CLOCK_UNCERTAINTY_SUPPORT 0 HAS_AUTO_FIT_SUPPORT 1 HAS_BALANCED_OPT_TECHNIQUE_SUPPORT 1 HAS_BENEFICIAL_SKEW_SUPPORT 1 HAS_BITLEVEL_DRIVE_STRENGTH_CONTROL 1 HAS_BSDL_FILE_GENERATION 1 HAS_CGA_SUPPORT 1 HAS_CHECK_NETLIST_SUPPORT 0 HAS_CLOCK_REGION_CHECKER_ENABLED 1 HAS_CORE_JUNCTION_TEMP_DERATING 0 HAS_CROSSTALK_SUPPORT 0 HAS_CUSTOM_REGION_SUPPORT 1 HAS_DAP_JTAG_FROM_HPS 0 HAS_DATA_DRIVEN_ACVQ_HSSI_SUPPORT 0 HAS_DDB_FDI_SUPPORT 0 HAS_DESIGN_ANALYZER_SUPPORT 1 HAS_DETAILED_IO_RAIL_POWER_MODEL 1 HAS_DETAILED_LEIM_STATIC_POWER_MODEL 1 HAS_DETAILED_LE_POWER_MODEL 1 HAS_DETAILED_ROUTING_MUX_STATIC_POWER_MODEL 1 HAS_DETAILED_THERMAL_CIRCUIT_PARAMETER_SUPPORT 1 HAS_DEVICE_MIGRATION_SUPPORT 1 HAS_DIAGONAL_MIGRATION_SUPPORT 0 HAS_EMIF_TOOLKIT_SUPPORT 0 HAS_ERROR_DETECTION_SUPPORT 0 HAS_FAMILY_VARIANT_MIGRATION_SUPPORT 0 HAS_FANOUT_FREE_NODE_SUPPORT 1 HAS_FAST_FIT_SUPPORT 1 HAS_FITTER_EARLY_TIMING_ESTIMATE_SUPPORT 1 HAS_FITTER_ECO_SUPPORT 1 HAS_FIT_NETLIST_OPT_RETIME_SUPPORT 1 HAS_FIT_NETLIST_OPT_SUPPORT 1 HAS_FORMAL_VERIFICATION_SUPPORT 1 HAS_FPGA_XCHANGE_SUPPORT 1 HAS_FSAC_LUTRAM_REGISTER_PACKING_SUPPORT 0 HAS_FULL_DAT_MIN_TIMING_SUPPORT 1 HAS_FULL_INCREMENTAL_DESIGN_SUPPORT 1 HAS_FUNCTIONAL_SIMULATION_SUPPORT 1 HAS_FUNCTIONAL_VERILOG_SIMULATION_SUPPORT 0 HAS_FUNCTIONAL_VHDL_SIMULATION_SUPPORT 0 HAS_GLITCH_FILTERING_SUPPORT 1 HAS_HC_READY_SUPPORT 0 HAS_HIGH_SPEED_LOW_POWER_TILE_SUPPORT 0 HAS_HOLD_TIME_AVOIDANCE_ACROSS_CLOCK_SPINE_SUPPORT 1 HAS_HSPICE_WRITER_SUPPORT 1 HAS_HSSI_POWER_CALCULATOR 0 HAS_IBISO_WRITER_SUPPORT 0 HAS_INCREMENTAL_DAT_SUPPORT 1 HAS_INCREMENTAL_SYNTHESIS_SUPPORT 1 HAS_INTERFACE_PLANNER_SUPPORT 0 HAS_IO_ASSIGNMENT_ANALYSIS_SUPPORT 1 HAS_IO_DECODER 0 HAS_IO_PLACEMENT_OPTIMIZATION_SUPPORT 1 HAS_IO_SMART_RECOMPILE_SUPPORT 0 HAS_JITTER_SUPPORT 1 HAS_JTAG_SLD_HUB_SUPPORT 1 HAS_LIMITED_TCL_FITTER_SUPPORT 0 HAS_LOGIC_LOCK_SUPPORT 1 HAS_MICROPROCESSOR 0 HAS_MIF_SMART_COMPILE_SUPPORT 1 HAS_MINMAX_TIMING_MODELING_SUPPORT 1 HAS_MIN_TIMING_ANALYSIS_SUPPORT 1 HAS_MUX_RESTRUCTURE_SUPPORT 1 HAS_NEW_HC_FLOW_SUPPORT 0 HAS_NEW_SERDES_MAX_RESOURCE_COUNT_REPORTING_SUPPORT 1 HAS_NEW_VPR_SUPPORT 1 HAS_NONSOCKET_TECHNOLOGY_MIGRATION_SUPPORT 0 HAS_NO_HARDBLOCK_PARTITION_SUPPORT 0 HAS_NO_JTAG_USERCODE_SUPPORT 0 HAS_OPERATING_SETTINGS_AND_CONDITIONS_REPORTING_SUPPORT 1 HAS_PAD_LOCATION_ASSIGNMENT_SUPPORT 0 HAS_PARTIAL_RECONFIG_SUPPORT 0 HAS_PHYSICAL_NETLIST_OUTPUT 0 HAS_PHYSICAL_ROUTING_SUPPORT 0 HAS_PIN_SPECIFIC_VOLTAGE_SUPPORT 1 HAS_PLDM_REF_SUPPORT 1 HAS_POWER_ESTIMATION_SUPPORT 1 HAS_PRELIMINARY_CLOCK_UNCERTAINTY_NUMBERS 0 HAS_PRE_FITTER_FPP_SUPPORT 0 HAS_PRE_FITTER_LUTRAM_NETLIST_CHECKER_ENABLED 0 HAS_PVA_SUPPORT 1 HAS_RCF_SUPPORT 1 HAS_RCF_SUPPORT_FOR_DEBUGGING 0 HAS_RED_BLACK_SEPARATION_SUPPORT 0 HAS_RE_LEVEL_TIMING_GRAPH_SUPPORT 1 HAS_RISEFALL_DELAY_SUPPORT 1 HAS_SIGNAL_PROBE_SUPPORT 1 HAS_SIGNAL_TAP_SUPPORT 1 HAS_SIMULATOR_SUPPORT 0 HAS_SPLIT_IO_SUPPORT 1 HAS_SPLIT_LC_SUPPORT 1 HAS_SYNTH_FSYN_NETLIST_OPT_SUPPORT 1 HAS_SYNTH_NETLIST_OPT_RETIME_SUPPORT 1 HAS_SYNTH_NETLIST_OPT_SUPPORT 1 HAS_TCL_FITTER_SUPPORT 0 HAS_TECHNOLOGY_MIGRATION_SUPPORT 0 HAS_TEMPLATED_REGISTER_PACKING_SUPPORT 1 HAS_TIME_BORROWING_SUPPORT 0 HAS_TIMING_DRIVEN_SYNTHESIS_SUPPORT 1 HAS_TIMING_INFO_SUPPORT 1 HAS_TIMING_OPERATING_CONDITIONS 1 HAS_TIMING_SIMULATION_SUPPORT 1 HAS_TITAN_BASED_MAC_REGISTER_PACKER_SUPPORT 0 HAS_U2B2_SUPPORT 0 HAS_USER_HIGH_SPEED_LOW_POWER_TILE_SUPPORT 0 HAS_USE_FITTER_INFO_SUPPORT 1 HAS_VCCPD_POWER_RAIL 0 HAS_VERTICAL_MIGRATION_SUPPORT 1 HAS_VIEWDRAW_SYMBOL_SUPPORT 0 HAS_VIO_SUPPORT 1 HAS_VIRTUAL_DEVICES 0 HAS_WYSIWYG_DFFEAS_SUPPORT 1 HAS_XIBISO_WRITER_SUPPORT 1 IFP_USE_LEGACY_IO_CHECKER 0 INCREMENTAL_DESIGN_SUPPORTS_COMPATIBLE_CONSTRAINTS 1 INSTALLED 0 IS_CONFIG_ROM 0 IS_DEFAULT_FAMILY 0 IS_HARDCOPY_FAMILY 0 LVDS_IO 1 M10K_MEMORY 0 M144K_MEMORY 0 M20K_MEMORY 0 M4K_MEMORY 0 M512_MEMORY 0 M9K_MEMORY 1 MLAB_MEMORY 0 MRAM_MEMORY 0 NOT_LISTED 0 NO_RPE_SUPPORT 0 NO_SUPPORT_FOR_LOGICLOCK_CONTENT_BACK_ANNOTATION 1 NO_SUPPORT_FOR_STA_CLOCK_UNCERTAINTY_CHECK 0 NO_TDC_SUPPORT 0 POSTFIT_BAK_DATABASE_EXPORT_ENABLED 1 POSTMAP_BAK_DATABASE_EXPORT_ENABLED 1 PROGRAMMER_SUPPORT 1 QFIT_IN_DEVELOPMENT 0 QMAP_IN_DEVELOPMENT 0 RAM_LOGICAL_NAME_CHECKING_IN_CUT_ENABLED 1 REPORTS_METASTABILITY_MTBF 1 REQUIRES_INSTALLATION_PATCH 0 REQUIRES_LIST_OF_TEMPERATURE_AND_VOLTAGE_OPERATING_CONDITIONS 1 RESERVES_SIGNAL_PROBE_PINS 0 RESOLVE_MAX_FANOUT_EARLY 1 RESOLVE_MAX_FANOUT_LATE 0 RESPECTS_FIXED_SIZED_LOCKED_LOCATION_LOGICLOCK 1 RESTRICTED_USER_SELECTION 0 RISEFALL_SUPPORT_IS_HIDDEN 0 STRICT_TIMING_DB_CHECKS 0 SUPPORTS_ADDITIONAL_OPTIONS_FOR_UNUSED_IO 0 SUPPORTS_CRC 1 SUPPORTS_DIFFERENTIAL_AIOT_BOARD_TRACE_MODEL 1 SUPPORTS_DSP_BALANCING_BACK_ANNOTATION 0 SUPPORTS_GENERATION_OF_EARLY_POWER_ESTIMATOR_FILE 1 SUPPORTS_GLOBAL_SIGNAL_BACK_ANNOTATION 0 SUPPORTS_MAC_CHAIN_OUT_ADDER 0 SUPPORTS_RAM_PACKING_BACK_ANNOTATION 0 SUPPORTS_REG_PACKING_BACK_ANNOTATION 0 SUPPORTS_SIGNALPROBE_REGISTER_PIPELINING 1 SUPPORTS_SINGLE_ENDED_AIOT_BOARD_TRACE_MODEL 1 SUPPORTS_USER_MANUAL_LOGIC_DUPLICATION 1 TMV_RUN_CUSTOMIZABLE_VIEWER 1 TMV_RUN_INTERNAL_DETAILS 1 TMV_RUN_INTERNAL_DETAILS_ON_IO 0 TMV_RUN_INTERNAL_DETAILS_ON_IOBUF 1 TMV_RUN_INTERNAL_DETAILS_ON_LCELL 0 TMV_RUN_INTERNAL_DETAILS_ON_LRAM 0 TRANSCEIVER_3G_BLOCK 0 TRANSCEIVER_6G_BLOCK 0 USES_ACV_FOR_FLED 1 USES_ADB_FOR_BACK_ANNOTATION 1 USES_ALTERA_LNSIM 0 USES_ASIC_ROUTING_POWER_CALCULATOR 0 USES_DATA_DRIVEN_PLL_COMPUTATION_UTIL 1 USES_DEV 1 USES_ICP_FOR_ECO_FITTER 0 USES_LIBERTY_TIMING 0 USES_POWER_SIGNAL_ACTIVITIES 1 USES_THIRD_GENERATION_TIMING_MODELS_TIS 1 USES_U2B2_TIMING_MODELS 0 USE_ADVANCED_IO_POWER_BY_DEFAULT 1 USE_ADVANCED_IO_TIMING_BY_DEFAULT 1 USE_BASE_FAMILY_DDB_PATH 0 USE_OCT_AUTO_CALIBRATION 1 USE_RELAX_IO_ASSIGNMENT_RULES 0 USE_RISEFALL_ONLY 1 USE_SEPARATE_LIST_FOR_TECH_MIGRATION 0 USE_SINGLE_COMPILER_PASS_PLL_MIF_FILE_WRITER 1 USE_TITAN_IO_BASED_IO_REGISTER_PACKER_UTIL 0 WYSIWYG_BUS_WIDTH_CHECKING_IN_CUT_ENABLED 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + $${FILENAME}_onchip_memory + + ADDRESS_STALL 1 CELL_LEVEL_BACK_ANNOTATION_DISABLED 0 COMPILER_SUPPORT 1 DSP 0 DSP_SHIFTER_BLOCK 0 DUMP_ASM_LAB_BITS_FOR_POWER 1 EMUL 1 ENABLE_ADVANCED_IO_ANALYSIS_GUI_FEATURES 1 EPCS 1 ESB 0 FAKE1 0 FAKE2 0 FAKE3 0 FAMILY_LEVEL_INSTALLATION_ONLY 1 FITTER_USE_FALLING_EDGE_DELAY 0 GENERATE_DC_ON_CURRENT_WARNING_FOR_INTERNAL_CLAMPING_DIODE 0 HARDCOPY 0 HAS_18_BIT_MULTS 0 HAS_ACE_SUPPORT 1 HAS_ADJUSTABLE_OUTPUT_IO_TIMING_MEAS_POINT 0 HAS_ADVANCED_IO_INVERTED_CORNER 0 HAS_ADVANCED_IO_POWER_SUPPORT 1 HAS_ADVANCED_IO_TIMING_SUPPORT 1 HAS_ALM_SUPPORT 0 HAS_ATOM_AND_ROUTING_POWER_MODELED_TOGETHER 0 HAS_AUTO_DERIVE_CLOCK_UNCERTAINTY_SUPPORT 0 HAS_AUTO_FIT_SUPPORT 1 HAS_BALANCED_OPT_TECHNIQUE_SUPPORT 1 HAS_BENEFICIAL_SKEW_SUPPORT 1 HAS_BITLEVEL_DRIVE_STRENGTH_CONTROL 1 HAS_BSDL_FILE_GENERATION 1 HAS_CGA_SUPPORT 1 HAS_CHECK_NETLIST_SUPPORT 0 HAS_CLOCK_REGION_CHECKER_ENABLED 1 HAS_CORE_JUNCTION_TEMP_DERATING 0 HAS_CROSSTALK_SUPPORT 0 HAS_CUSTOM_REGION_SUPPORT 1 HAS_DAP_JTAG_FROM_HPS 0 HAS_DATA_DRIVEN_ACVQ_HSSI_SUPPORT 0 HAS_DDB_FDI_SUPPORT 0 HAS_DESIGN_ANALYZER_SUPPORT 1 HAS_DETAILED_IO_RAIL_POWER_MODEL 1 HAS_DETAILED_LEIM_STATIC_POWER_MODEL 1 HAS_DETAILED_LE_POWER_MODEL 1 HAS_DETAILED_ROUTING_MUX_STATIC_POWER_MODEL 1 HAS_DETAILED_THERMAL_CIRCUIT_PARAMETER_SUPPORT 1 HAS_DEVICE_MIGRATION_SUPPORT 1 HAS_DIAGONAL_MIGRATION_SUPPORT 0 HAS_EMIF_TOOLKIT_SUPPORT 0 HAS_ERROR_DETECTION_SUPPORT 0 HAS_FAMILY_VARIANT_MIGRATION_SUPPORT 0 HAS_FANOUT_FREE_NODE_SUPPORT 1 HAS_FAST_FIT_SUPPORT 1 HAS_FITTER_EARLY_TIMING_ESTIMATE_SUPPORT 1 HAS_FITTER_ECO_SUPPORT 1 HAS_FIT_NETLIST_OPT_RETIME_SUPPORT 1 HAS_FIT_NETLIST_OPT_SUPPORT 1 HAS_FORMAL_VERIFICATION_SUPPORT 1 HAS_FPGA_XCHANGE_SUPPORT 1 HAS_FSAC_LUTRAM_REGISTER_PACKING_SUPPORT 0 HAS_FULL_DAT_MIN_TIMING_SUPPORT 1 HAS_FULL_INCREMENTAL_DESIGN_SUPPORT 1 HAS_FUNCTIONAL_SIMULATION_SUPPORT 1 HAS_FUNCTIONAL_VERILOG_SIMULATION_SUPPORT 0 HAS_FUNCTIONAL_VHDL_SIMULATION_SUPPORT 0 HAS_GLITCH_FILTERING_SUPPORT 1 HAS_HC_READY_SUPPORT 0 HAS_HIGH_SPEED_LOW_POWER_TILE_SUPPORT 0 HAS_HOLD_TIME_AVOIDANCE_ACROSS_CLOCK_SPINE_SUPPORT 1 HAS_HSPICE_WRITER_SUPPORT 1 HAS_HSSI_POWER_CALCULATOR 0 HAS_IBISO_WRITER_SUPPORT 0 HAS_INCREMENTAL_DAT_SUPPORT 1 HAS_INCREMENTAL_SYNTHESIS_SUPPORT 1 HAS_INTERFACE_PLANNER_SUPPORT 0 HAS_IO_ASSIGNMENT_ANALYSIS_SUPPORT 1 HAS_IO_DECODER 0 HAS_IO_PLACEMENT_OPTIMIZATION_SUPPORT 1 HAS_IO_SMART_RECOMPILE_SUPPORT 0 HAS_JITTER_SUPPORT 1 HAS_JTAG_SLD_HUB_SUPPORT 1 HAS_LIMITED_TCL_FITTER_SUPPORT 0 HAS_LOGIC_LOCK_SUPPORT 1 HAS_MICROPROCESSOR 0 HAS_MIF_SMART_COMPILE_SUPPORT 1 HAS_MINMAX_TIMING_MODELING_SUPPORT 1 HAS_MIN_TIMING_ANALYSIS_SUPPORT 1 HAS_MUX_RESTRUCTURE_SUPPORT 1 HAS_NEW_HC_FLOW_SUPPORT 0 HAS_NEW_SERDES_MAX_RESOURCE_COUNT_REPORTING_SUPPORT 1 HAS_NEW_VPR_SUPPORT 1 HAS_NONSOCKET_TECHNOLOGY_MIGRATION_SUPPORT 0 HAS_NO_HARDBLOCK_PARTITION_SUPPORT 0 HAS_NO_JTAG_USERCODE_SUPPORT 0 HAS_OPERATING_SETTINGS_AND_CONDITIONS_REPORTING_SUPPORT 1 HAS_PAD_LOCATION_ASSIGNMENT_SUPPORT 0 HAS_PARTIAL_RECONFIG_SUPPORT 0 HAS_PHYSICAL_NETLIST_OUTPUT 0 HAS_PHYSICAL_ROUTING_SUPPORT 0 HAS_PIN_SPECIFIC_VOLTAGE_SUPPORT 1 HAS_PLDM_REF_SUPPORT 1 HAS_POWER_ESTIMATION_SUPPORT 1 HAS_PRELIMINARY_CLOCK_UNCERTAINTY_NUMBERS 0 HAS_PRE_FITTER_FPP_SUPPORT 0 HAS_PRE_FITTER_LUTRAM_NETLIST_CHECKER_ENABLED 0 HAS_PVA_SUPPORT 1 HAS_RCF_SUPPORT 1 HAS_RCF_SUPPORT_FOR_DEBUGGING 0 HAS_RED_BLACK_SEPARATION_SUPPORT 0 HAS_RE_LEVEL_TIMING_GRAPH_SUPPORT 1 HAS_RISEFALL_DELAY_SUPPORT 1 HAS_SIGNAL_PROBE_SUPPORT 1 HAS_SIGNAL_TAP_SUPPORT 1 HAS_SIMULATOR_SUPPORT 0 HAS_SPLIT_IO_SUPPORT 1 HAS_SPLIT_LC_SUPPORT 1 HAS_SYNTH_FSYN_NETLIST_OPT_SUPPORT 1 HAS_SYNTH_NETLIST_OPT_RETIME_SUPPORT 1 HAS_SYNTH_NETLIST_OPT_SUPPORT 1 HAS_TCL_FITTER_SUPPORT 0 HAS_TECHNOLOGY_MIGRATION_SUPPORT 0 HAS_TEMPLATED_REGISTER_PACKING_SUPPORT 1 HAS_TIME_BORROWING_SUPPORT 0 HAS_TIMING_DRIVEN_SYNTHESIS_SUPPORT 1 HAS_TIMING_INFO_SUPPORT 1 HAS_TIMING_OPERATING_CONDITIONS 1 HAS_TIMING_SIMULATION_SUPPORT 1 HAS_TITAN_BASED_MAC_REGISTER_PACKER_SUPPORT 0 HAS_U2B2_SUPPORT 0 HAS_USER_HIGH_SPEED_LOW_POWER_TILE_SUPPORT 0 HAS_USE_FITTER_INFO_SUPPORT 1 HAS_VCCPD_POWER_RAIL 0 HAS_VERTICAL_MIGRATION_SUPPORT 1 HAS_VIEWDRAW_SYMBOL_SUPPORT 0 HAS_VIO_SUPPORT 1 HAS_VIRTUAL_DEVICES 0 HAS_WYSIWYG_DFFEAS_SUPPORT 1 HAS_XIBISO_WRITER_SUPPORT 1 IFP_USE_LEGACY_IO_CHECKER 0 INCREMENTAL_DESIGN_SUPPORTS_COMPATIBLE_CONSTRAINTS 1 INSTALLED 0 IS_CONFIG_ROM 0 IS_DEFAULT_FAMILY 0 IS_HARDCOPY_FAMILY 0 LVDS_IO 1 M10K_MEMORY 0 M144K_MEMORY 0 M20K_MEMORY 0 M4K_MEMORY 0 M512_MEMORY 0 M9K_MEMORY 1 MLAB_MEMORY 0 MRAM_MEMORY 0 NOT_LISTED 0 NO_RPE_SUPPORT 0 NO_SUPPORT_FOR_LOGICLOCK_CONTENT_BACK_ANNOTATION 1 NO_SUPPORT_FOR_STA_CLOCK_UNCERTAINTY_CHECK 0 NO_TDC_SUPPORT 0 POSTFIT_BAK_DATABASE_EXPORT_ENABLED 1 POSTMAP_BAK_DATABASE_EXPORT_ENABLED 1 PROGRAMMER_SUPPORT 1 QFIT_IN_DEVELOPMENT 0 QMAP_IN_DEVELOPMENT 0 RAM_LOGICAL_NAME_CHECKING_IN_CUT_ENABLED 1 REPORTS_METASTABILITY_MTBF 1 REQUIRES_INSTALLATION_PATCH 0 REQUIRES_LIST_OF_TEMPERATURE_AND_VOLTAGE_OPERATING_CONDITIONS 1 RESERVES_SIGNAL_PROBE_PINS 0 RESOLVE_MAX_FANOUT_EARLY 1 RESOLVE_MAX_FANOUT_LATE 0 RESPECTS_FIXED_SIZED_LOCKED_LOCATION_LOGICLOCK 1 RESTRICTED_USER_SELECTION 0 RISEFALL_SUPPORT_IS_HIDDEN 0 STRICT_TIMING_DB_CHECKS 0 SUPPORTS_ADDITIONAL_OPTIONS_FOR_UNUSED_IO 0 SUPPORTS_CRC 1 SUPPORTS_DIFFERENTIAL_AIOT_BOARD_TRACE_MODEL 1 SUPPORTS_DSP_BALANCING_BACK_ANNOTATION 0 SUPPORTS_GENERATION_OF_EARLY_POWER_ESTIMATOR_FILE 1 SUPPORTS_GLOBAL_SIGNAL_BACK_ANNOTATION 0 SUPPORTS_MAC_CHAIN_OUT_ADDER 0 SUPPORTS_RAM_PACKING_BACK_ANNOTATION 0 SUPPORTS_REG_PACKING_BACK_ANNOTATION 0 SUPPORTS_SIGNALPROBE_REGISTER_PIPELINING 1 SUPPORTS_SINGLE_ENDED_AIOT_BOARD_TRACE_MODEL 1 SUPPORTS_USER_MANUAL_LOGIC_DUPLICATION 1 TMV_RUN_CUSTOMIZABLE_VIEWER 1 TMV_RUN_INTERNAL_DETAILS 1 TMV_RUN_INTERNAL_DETAILS_ON_IO 0 TMV_RUN_INTERNAL_DETAILS_ON_IOBUF 1 TMV_RUN_INTERNAL_DETAILS_ON_LCELL 0 TMV_RUN_INTERNAL_DETAILS_ON_LRAM 0 TRANSCEIVER_3G_BLOCK 0 TRANSCEIVER_6G_BLOCK 0 USES_ACV_FOR_FLED 1 USES_ADB_FOR_BACK_ANNOTATION 1 USES_ALTERA_LNSIM 0 USES_ASIC_ROUTING_POWER_CALCULATOR 0 USES_DATA_DRIVEN_PLL_COMPUTATION_UTIL 1 USES_DEV 1 USES_ICP_FOR_ECO_FITTER 0 USES_LIBERTY_TIMING 0 USES_POWER_SIGNAL_ACTIVITIES 1 USES_THIRD_GENERATION_TIMING_MODELS_TIS 1 USES_U2B2_TIMING_MODELS 0 USE_ADVANCED_IO_POWER_BY_DEFAULT 1 USE_ADVANCED_IO_TIMING_BY_DEFAULT 1 USE_BASE_FAMILY_DDB_PATH 0 USE_OCT_AUTO_CALIBRATION 1 USE_RELAX_IO_ASSIGNMENT_RULES 0 USE_RISEFALL_ONLY 1 USE_SEPARATE_LIST_FOR_TECH_MIGRATION 0 USE_SINGLE_COMPILER_PASS_PLL_MIF_FILE_WRITER 1 USE_TITAN_IO_BASED_IO_REGISTER_PACKER_UTIL 0 WYSIWYG_BUS_WIDTH_CHECKING_IN_CUT_ENABLED 1 + + + + + + + + NO_INTERACTIVE_WINDOWS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/nios_system.sopcinfo b/nios_system.sopcinfo new file mode 100644 index 0000000..a899da0 --- /dev/null +++ b/nios_system.sopcinfo @@ -0,0 +1,18218 @@ + + + + + + + java.lang.Integer + 1480609931 + false + true + false + true + + + java.lang.String + + false + true + false + true + + + java.lang.String + CYCLONEIVE + false + true + false + true + + + java.lang.String + EP4CE115F29C7 + false + true + false + true + + + java.lang.Long + -1 + false + true + false + true + + + java.lang.Integer + -1 + false + true + false + true + + + java.lang.Integer + -1 + false + true + false + true + + + java.lang.String + Cyclone IV E + false + true + false + true + + + boolean + false + false + true + true + true + + + + + long + 50000000 + false + true + true + true + + + boolean + true + false + true + true + true + + + long + 0 + false + true + false + true + + + com.altera.sopcmodel.reset.Reset$Edges + NONE + false + true + true + true + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + + + + qsys.ui.export_name + clk + + + boolean + false + false + true + false + true + + + java.lang.String + + false + true + false + true + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + + java.lang.Boolean + true + true + true + false + true + + + java.lang.Long + 50000000 + true + true + false + true + + clock + false + + in_clk + Input + 1 + clk + + + + + + qsys.ui.export_name + reset + + + java.lang.String + + false + true + true + true + + + com.altera.sopcmodel.reset.Reset$Edges + NONE + false + true + true + true + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + reset + false + + reset_n + Input + 1 + reset_n + + + + + + java.lang.String + clk_in + false + true + true + true + + + long + 50000000 + false + true + true + true + + + boolean + true + false + true + true + true + + + boolean + true + false + true + false + true + + + java.lang.String + + false + true + false + true + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + clock + true + + clk_out + Output + 1 + clk + + + false + nios2_processor + clk + nios2_processor.clk + + + false + onchip_memory + clk1 + onchip_memory.clk1 + + + false + jtag_uart + clk + jtag_uart.clk + + + false + LEDs + clk + LEDs.clk + + + false + LEDRs + clk + LEDRs.clk + + + false + switches + clk + switches.clk + + + false + push_switches + clk + push_switches.clk + + + false + hex0 + clk + hex0.clk + + + false + hex1 + clk + hex1.clk + + + false + hex2 + clk + hex2.clk + + + false + hex3 + clk + hex3.clk + + + false + hex4 + clk + hex4.clk + + + false + hex5 + clk + hex5.clk + + + false + hex6 + clk + hex6.clk + + + false + hex7 + clk + hex7.clk + + + false + lcd_16207_0 + clk + lcd_16207_0.clk + + + false + lcd_on + clk + lcd_on.clk + + + false + lcd_blon + clk + lcd_blon.clk + + + + + + java.lang.String + + false + true + true + true + + + java.lang.String + clk_in_reset + false + true + true + true + + + [Ljava.lang.String; + clk_in_reset + false + true + true + true + + + com.altera.sopcmodel.reset.Reset$Edges + NONE + false + true + true + true + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + reset + true + + reset_n_out + Output + 1 + reset_n + + + + + + + debug.hostConnection + type jtag id 70:34|110:135 + + + embeddedsw.CMacro.BIG_ENDIAN + 0 + + + embeddedsw.CMacro.BREAK_ADDR + 0x00040820 + + + embeddedsw.CMacro.CPU_FREQ + 50000000u + + + embeddedsw.CMacro.CPU_ID_SIZE + 1 + + + embeddedsw.CMacro.CPU_ID_VALUE + 0x00000000 + + + embeddedsw.CMacro.CPU_IMPLEMENTATION + "tiny" + + + embeddedsw.CMacro.DATA_ADDR_WIDTH + 19 + + + embeddedsw.CMacro.DCACHE_LINE_SIZE + 0 + + + embeddedsw.CMacro.DCACHE_LINE_SIZE_LOG2 + 0 + + + embeddedsw.CMacro.DCACHE_SIZE + 0 + + + embeddedsw.CMacro.EXCEPTION_ADDR + 0x00000020 + + + embeddedsw.CMacro.FLUSHDA_SUPPORTED + + + + embeddedsw.CMacro.HARDWARE_DIVIDE_PRESENT + 0 + + + embeddedsw.CMacro.HARDWARE_MULTIPLY_PRESENT + 0 + + + embeddedsw.CMacro.HARDWARE_MULX_PRESENT + 0 + + + embeddedsw.CMacro.HAS_DEBUG_CORE + 1 + + + embeddedsw.CMacro.HAS_DEBUG_STUB + + + + embeddedsw.CMacro.HAS_JMPI_INSTRUCTION + + + + embeddedsw.CMacro.ICACHE_LINE_SIZE + 0 + + + embeddedsw.CMacro.ICACHE_LINE_SIZE_LOG2 + 0 + + + embeddedsw.CMacro.ICACHE_SIZE + 0 + + + embeddedsw.CMacro.INST_ADDR_WIDTH + 19 + + + embeddedsw.CMacro.RESET_ADDR + 0x00000000 + + + embeddedsw.configuration.HDLSimCachesCleared + 1 + + + embeddedsw.configuration.breakOffset + 32 + + + embeddedsw.configuration.breakSlave + nios2_processor.jtag_debug_module + + + embeddedsw.configuration.cpuArchitecture + Nios II + + + embeddedsw.configuration.exceptionOffset + 32 + + + embeddedsw.configuration.exceptionSlave + onchip_memory.s1 + + + embeddedsw.configuration.resetOffset + 0 + + + embeddedsw.configuration.resetSlave + onchip_memory.s1 + + + boolean + false + false + true + true + true + + + boolean + false + false + true + true + true + + + boolean + false + false + true + false + true + + + boolean + false + false + false + true + true + + + boolean + false + false + false + true + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + true + true + + + boolean + false + false + true + false + true + + + boolean + false + false + false + true + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + false + true + + + boolean + true + false + true + false + true + + + boolean + true + false + true + false + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + false + true + + + boolean + true + false + true + false + true + + + boolean + false + false + true + false + true + + + boolean + true + false + true + false + true + + + boolean + false + false + true + false + true + + + boolean + true + false + true + false + true + + + boolean + false + false + true + false + true + + + boolean + true + false + true + false + true + + + boolean + false + false + true + false + true + + + boolean + false + false + false + true + true + + + boolean + false + false + false + true + true + + + boolean + false + false + false + true + true + + + boolean + false + false + false + true + true + + + boolean + true + false + false + true + true + + + boolean + true + false + true + true + true + + + boolean + true + false + true + false + true + + + boolean + true + false + false + true + true + + + boolean + false + false + true + true + true + + + boolean + false + false + true + false + true + + + boolean + false + false + false + true + true + + + boolean + false + false + true + true + true + + + boolean + false + false + true + true + true + + + int + 0 + false + false + true + true + + + int + 8 + false + false + true + true + + + int + 8 + false + false + true + true + + + int + 0 + false + false + true + true + + + int + 0 + false + true + false + true + + + int + 0 + false + true + true + true + + + int + 32 + false + true + true + true + + + int + 0 + false + true + true + true + + + int + 0 + false + true + false + true + + + int + 32 + false + false + true + true + + + java.lang.String + + false + true + false + true + + + java.lang.String + onchip_memory.s1 + false + true + true + true + + + java.lang.String + None + false + false + true + true + + + java.lang.String + onchip_memory.s1 + false + true + true + true + + + java.lang.String + nios2_processor.jtag_debug_module + false + false + true + true + + + int + 32 + false + true + false + true + + + java.lang.String + Internal + false + false + true + true + + + java.lang.String + Automatic + false + true + false + true + + + int + 8 + false + true + false + true + + + java.lang.String + EmbeddedMulFast + false + false + true + true + + + int + 12 + false + false + true + true + + + int + 12 + false + false + true + true + + + int + 4 + false + false + true + true + + + int + 6 + false + false + true + true + + + int + 7 + false + false + true + true + + + int + 16 + false + false + true + true + + + int + 8 + false + false + true + true + + + java.lang.String + Tiny + false + true + true + true + + + int + 4096 + false + false + true + true + + + java.lang.String + Automatic + false + true + false + true + + + java.lang.String + Automatic + false + true + false + true + + + int + 0 + false + false + true + true + + + java.lang.String + None + false + false + true + true + + + java.lang.String + false + false + false + true + true + + + java.lang.String + ram + false + false + true + true + + + java.lang.String + Level1 + false + true + true + true + + + java.lang.String + _128 + false + false + true + true + + + int + 2048 + false + false + true + true + + + java.lang.String + Automatic + false + true + false + true + + + java.lang.String + Automatic + false + true + false + true + + + int + 0 + false + false + true + true + + + int + 32 + false + false + true + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + false + true + + + java.lang.String + Automatic + false + true + false + true + + + java.lang.String + Automatic + false + true + false + true + + + java.lang.String + Automatic + false + true + false + true + + + java.lang.String + Automatic + false + true + false + true + + + int + 0 + true + true + true + true + + + int + 32 + true + true + true + true + + + int + 264224 + true + true + true + true + + + int + 0 + true + true + true + true + + + java.lang.String + false + true + true + false + true + + + int + 2048 + true + true + false + true + + + int + 32 + true + true + false + true + + + java.lang.String + "synthesis translate_on" + true + true + false + true + + + java.lang.String + "synthesis translate_off" + true + true + false + true + + + int + 19 + false + true + false + true + + + int + 19 + false + true + false + true + + + int + 1 + false + true + false + true + + + int + 1 + false + true + false + true + + + int + 1 + false + true + false + true + + + int + 1 + false + true + false + true + + + int + 1 + false + true + false + true + + + int + 1 + false + true + false + true + + + int + 1 + false + true + false + true + + + int + 1 + false + true + false + true + + + java.lang.String + ]]> + false + true + false + true + + + java.lang.String + ]]> + false + true + false + true + + + long + 50000000 + false + true + false + true + + + java.lang.String + CYCLONEIVE + false + true + false + true + + + long + 32 + false + true + false + true + + + java.lang.String + ]]> + false + true + false + true + + + java.lang.String + ADDRESS_STALL 1 CELL_LEVEL_BACK_ANNOTATION_DISABLED 0 COMPILER_SUPPORT 1 DSP 0 DSP_SHIFTER_BLOCK 0 DUMP_ASM_LAB_BITS_FOR_POWER 1 EMUL 1 ENABLE_ADVANCED_IO_ANALYSIS_GUI_FEATURES 1 EPCS 1 ESB 0 FAKE1 0 FAKE2 0 FAKE3 0 FAMILY_LEVEL_INSTALLATION_ONLY 1 FITTER_USE_FALLING_EDGE_DELAY 0 GENERATE_DC_ON_CURRENT_WARNING_FOR_INTERNAL_CLAMPING_DIODE 0 HARDCOPY 0 HAS_18_BIT_MULTS 0 HAS_ACE_SUPPORT 1 HAS_ADJUSTABLE_OUTPUT_IO_TIMING_MEAS_POINT 0 HAS_ADVANCED_IO_INVERTED_CORNER 0 HAS_ADVANCED_IO_POWER_SUPPORT 1 HAS_ADVANCED_IO_TIMING_SUPPORT 1 HAS_ALM_SUPPORT 0 HAS_ATOM_AND_ROUTING_POWER_MODELED_TOGETHER 0 HAS_AUTO_DERIVE_CLOCK_UNCERTAINTY_SUPPORT 0 HAS_AUTO_FIT_SUPPORT 1 HAS_BALANCED_OPT_TECHNIQUE_SUPPORT 1 HAS_BENEFICIAL_SKEW_SUPPORT 1 HAS_BITLEVEL_DRIVE_STRENGTH_CONTROL 1 HAS_BSDL_FILE_GENERATION 1 HAS_CGA_SUPPORT 1 HAS_CHECK_NETLIST_SUPPORT 0 HAS_CLOCK_REGION_CHECKER_ENABLED 1 HAS_CORE_JUNCTION_TEMP_DERATING 0 HAS_CROSSTALK_SUPPORT 0 HAS_CUSTOM_REGION_SUPPORT 1 HAS_DAP_JTAG_FROM_HPS 0 HAS_DATA_DRIVEN_ACVQ_HSSI_SUPPORT 0 HAS_DDB_FDI_SUPPORT 0 HAS_DESIGN_ANALYZER_SUPPORT 1 HAS_DETAILED_IO_RAIL_POWER_MODEL 1 HAS_DETAILED_LEIM_STATIC_POWER_MODEL 1 HAS_DETAILED_LE_POWER_MODEL 1 HAS_DETAILED_ROUTING_MUX_STATIC_POWER_MODEL 1 HAS_DETAILED_THERMAL_CIRCUIT_PARAMETER_SUPPORT 1 HAS_DEVICE_MIGRATION_SUPPORT 1 HAS_DIAGONAL_MIGRATION_SUPPORT 0 HAS_EMIF_TOOLKIT_SUPPORT 0 HAS_ERROR_DETECTION_SUPPORT 0 HAS_FAMILY_VARIANT_MIGRATION_SUPPORT 0 HAS_FANOUT_FREE_NODE_SUPPORT 1 HAS_FAST_FIT_SUPPORT 1 HAS_FITTER_EARLY_TIMING_ESTIMATE_SUPPORT 1 HAS_FITTER_ECO_SUPPORT 1 HAS_FIT_NETLIST_OPT_RETIME_SUPPORT 1 HAS_FIT_NETLIST_OPT_SUPPORT 1 HAS_FORMAL_VERIFICATION_SUPPORT 1 HAS_FPGA_XCHANGE_SUPPORT 1 HAS_FSAC_LUTRAM_REGISTER_PACKING_SUPPORT 0 HAS_FULL_DAT_MIN_TIMING_SUPPORT 1 HAS_FULL_INCREMENTAL_DESIGN_SUPPORT 1 HAS_FUNCTIONAL_SIMULATION_SUPPORT 1 HAS_FUNCTIONAL_VERILOG_SIMULATION_SUPPORT 0 HAS_FUNCTIONAL_VHDL_SIMULATION_SUPPORT 0 HAS_GLITCH_FILTERING_SUPPORT 1 HAS_HC_READY_SUPPORT 0 HAS_HIGH_SPEED_LOW_POWER_TILE_SUPPORT 0 HAS_HOLD_TIME_AVOIDANCE_ACROSS_CLOCK_SPINE_SUPPORT 1 HAS_HSPICE_WRITER_SUPPORT 1 HAS_HSSI_POWER_CALCULATOR 0 HAS_IBISO_WRITER_SUPPORT 0 HAS_INCREMENTAL_DAT_SUPPORT 1 HAS_INCREMENTAL_SYNTHESIS_SUPPORT 1 HAS_INTERFACE_PLANNER_SUPPORT 0 HAS_IO_ASSIGNMENT_ANALYSIS_SUPPORT 1 HAS_IO_DECODER 0 HAS_IO_PLACEMENT_OPTIMIZATION_SUPPORT 1 HAS_IO_SMART_RECOMPILE_SUPPORT 0 HAS_JITTER_SUPPORT 1 HAS_JTAG_SLD_HUB_SUPPORT 1 HAS_LIMITED_TCL_FITTER_SUPPORT 0 HAS_LOGIC_LOCK_SUPPORT 1 HAS_MICROPROCESSOR 0 HAS_MIF_SMART_COMPILE_SUPPORT 1 HAS_MINMAX_TIMING_MODELING_SUPPORT 1 HAS_MIN_TIMING_ANALYSIS_SUPPORT 1 HAS_MUX_RESTRUCTURE_SUPPORT 1 HAS_NEW_HC_FLOW_SUPPORT 0 HAS_NEW_SERDES_MAX_RESOURCE_COUNT_REPORTING_SUPPORT 1 HAS_NEW_VPR_SUPPORT 1 HAS_NONSOCKET_TECHNOLOGY_MIGRATION_SUPPORT 0 HAS_NO_HARDBLOCK_PARTITION_SUPPORT 0 HAS_NO_JTAG_USERCODE_SUPPORT 0 HAS_OPERATING_SETTINGS_AND_CONDITIONS_REPORTING_SUPPORT 1 HAS_PAD_LOCATION_ASSIGNMENT_SUPPORT 0 HAS_PARTIAL_RECONFIG_SUPPORT 0 HAS_PHYSICAL_NETLIST_OUTPUT 0 HAS_PHYSICAL_ROUTING_SUPPORT 0 HAS_PIN_SPECIFIC_VOLTAGE_SUPPORT 1 HAS_PLDM_REF_SUPPORT 1 HAS_POWER_ESTIMATION_SUPPORT 1 HAS_PRELIMINARY_CLOCK_UNCERTAINTY_NUMBERS 0 HAS_PRE_FITTER_FPP_SUPPORT 0 HAS_PRE_FITTER_LUTRAM_NETLIST_CHECKER_ENABLED 0 HAS_PVA_SUPPORT 1 HAS_RCF_SUPPORT 1 HAS_RCF_SUPPORT_FOR_DEBUGGING 0 HAS_RED_BLACK_SEPARATION_SUPPORT 0 HAS_RE_LEVEL_TIMING_GRAPH_SUPPORT 1 HAS_RISEFALL_DELAY_SUPPORT 1 HAS_SIGNAL_PROBE_SUPPORT 1 HAS_SIGNAL_TAP_SUPPORT 1 HAS_SIMULATOR_SUPPORT 0 HAS_SPLIT_IO_SUPPORT 1 HAS_SPLIT_LC_SUPPORT 1 HAS_SYNTH_FSYN_NETLIST_OPT_SUPPORT 1 HAS_SYNTH_NETLIST_OPT_RETIME_SUPPORT 1 HAS_SYNTH_NETLIST_OPT_SUPPORT 1 HAS_TCL_FITTER_SUPPORT 0 HAS_TECHNOLOGY_MIGRATION_SUPPORT 0 HAS_TEMPLATED_REGISTER_PACKING_SUPPORT 1 HAS_TIME_BORROWING_SUPPORT 0 HAS_TIMING_DRIVEN_SYNTHESIS_SUPPORT 1 HAS_TIMING_INFO_SUPPORT 1 HAS_TIMING_OPERATING_CONDITIONS 1 HAS_TIMING_SIMULATION_SUPPORT 1 HAS_TITAN_BASED_MAC_REGISTER_PACKER_SUPPORT 0 HAS_U2B2_SUPPORT 0 HAS_USER_HIGH_SPEED_LOW_POWER_TILE_SUPPORT 0 HAS_USE_FITTER_INFO_SUPPORT 1 HAS_VCCPD_POWER_RAIL 0 HAS_VERTICAL_MIGRATION_SUPPORT 1 HAS_VIEWDRAW_SYMBOL_SUPPORT 0 HAS_VIO_SUPPORT 1 HAS_VIRTUAL_DEVICES 0 HAS_WYSIWYG_DFFEAS_SUPPORT 1 HAS_XIBISO_WRITER_SUPPORT 1 IFP_USE_LEGACY_IO_CHECKER 0 INCREMENTAL_DESIGN_SUPPORTS_COMPATIBLE_CONSTRAINTS 1 INSTALLED 0 IS_CONFIG_ROM 0 IS_DEFAULT_FAMILY 0 IS_HARDCOPY_FAMILY 0 LVDS_IO 1 M10K_MEMORY 0 M144K_MEMORY 0 M20K_MEMORY 0 M4K_MEMORY 0 M512_MEMORY 0 M9K_MEMORY 1 MLAB_MEMORY 0 MRAM_MEMORY 0 NOT_LISTED 0 NO_RPE_SUPPORT 0 NO_SUPPORT_FOR_LOGICLOCK_CONTENT_BACK_ANNOTATION 1 NO_SUPPORT_FOR_STA_CLOCK_UNCERTAINTY_CHECK 0 NO_TDC_SUPPORT 0 POSTFIT_BAK_DATABASE_EXPORT_ENABLED 1 POSTMAP_BAK_DATABASE_EXPORT_ENABLED 1 PROGRAMMER_SUPPORT 1 QFIT_IN_DEVELOPMENT 0 QMAP_IN_DEVELOPMENT 0 RAM_LOGICAL_NAME_CHECKING_IN_CUT_ENABLED 1 REPORTS_METASTABILITY_MTBF 1 REQUIRES_INSTALLATION_PATCH 0 REQUIRES_LIST_OF_TEMPERATURE_AND_VOLTAGE_OPERATING_CONDITIONS 1 RESERVES_SIGNAL_PROBE_PINS 0 RESOLVE_MAX_FANOUT_EARLY 1 RESOLVE_MAX_FANOUT_LATE 0 RESPECTS_FIXED_SIZED_LOCKED_LOCATION_LOGICLOCK 1 RESTRICTED_USER_SELECTION 0 RISEFALL_SUPPORT_IS_HIDDEN 0 STRICT_TIMING_DB_CHECKS 0 SUPPORTS_ADDITIONAL_OPTIONS_FOR_UNUSED_IO 0 SUPPORTS_CRC 1 SUPPORTS_DIFFERENTIAL_AIOT_BOARD_TRACE_MODEL 1 SUPPORTS_DSP_BALANCING_BACK_ANNOTATION 0 SUPPORTS_GENERATION_OF_EARLY_POWER_ESTIMATOR_FILE 1 SUPPORTS_GLOBAL_SIGNAL_BACK_ANNOTATION 0 SUPPORTS_MAC_CHAIN_OUT_ADDER 0 SUPPORTS_RAM_PACKING_BACK_ANNOTATION 0 SUPPORTS_REG_PACKING_BACK_ANNOTATION 0 SUPPORTS_SIGNALPROBE_REGISTER_PIPELINING 1 SUPPORTS_SINGLE_ENDED_AIOT_BOARD_TRACE_MODEL 1 SUPPORTS_USER_MANUAL_LOGIC_DUPLICATION 1 TMV_RUN_CUSTOMIZABLE_VIEWER 1 TMV_RUN_INTERNAL_DETAILS 1 TMV_RUN_INTERNAL_DETAILS_ON_IO 0 TMV_RUN_INTERNAL_DETAILS_ON_IOBUF 1 TMV_RUN_INTERNAL_DETAILS_ON_LCELL 0 TMV_RUN_INTERNAL_DETAILS_ON_LRAM 0 TRANSCEIVER_3G_BLOCK 0 TRANSCEIVER_6G_BLOCK 0 USES_ACV_FOR_FLED 1 USES_ADB_FOR_BACK_ANNOTATION 1 USES_ALTERA_LNSIM 0 USES_ASIC_ROUTING_POWER_CALCULATOR 0 USES_DATA_DRIVEN_PLL_COMPUTATION_UTIL 1 USES_DEV 1 USES_ICP_FOR_ECO_FITTER 0 USES_LIBERTY_TIMING 0 USES_POWER_SIGNAL_ACTIVITIES 1 USES_THIRD_GENERATION_TIMING_MODELS_TIS 1 USES_U2B2_TIMING_MODELS 0 USE_ADVANCED_IO_POWER_BY_DEFAULT 1 USE_ADVANCED_IO_TIMING_BY_DEFAULT 1 USE_BASE_FAMILY_DDB_PATH 0 USE_OCT_AUTO_CALIBRATION 1 USE_RELAX_IO_ASSIGNMENT_RULES 0 USE_RISEFALL_ONLY 1 USE_SEPARATE_LIST_FOR_TECH_MIGRATION 0 USE_SINGLE_COMPILER_PASS_PLL_MIF_FILE_WRITER 1 USE_TITAN_IO_BASED_IO_REGISTER_PACKER_UTIL 0 WYSIWYG_BUS_WIDTH_CHECKING_IN_CUT_ENABLED 1 + false + true + false + true + + + java.lang.String + + false + true + false + true + + + java.lang.String + + false + true + false + true + + + java.lang.String + + false + true + false + true + + + java.lang.String + + false + true + false + true + + + java.lang.String + + false + true + false + true + + + java.lang.String + + false + true + false + true + + + java.lang.String + + false + true + false + true + + + java.lang.String + + false + true + false + true + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + + + + boolean + false + false + true + false + true + + + java.lang.String + + false + true + false + true + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + + java.lang.Boolean + true + true + true + false + true + + + java.lang.Long + 50000000 + true + true + false + true + + clock + false + + clk + Input + 1 + clk + + + + + + java.lang.String + clk + false + true + true + true + + + com.altera.sopcmodel.reset.Reset$Edges + DEASSERT + false + true + true + true + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + reset + false + + reset_n + Input + 1 + reset_n + + + + + + debug.providesServices + master + + + com.altera.entityinterfaces.IConnectionPoint + + false + true + false + true + + + int + 1 + false + true + false + true + + + com.altera.sopcmodel.avalon.EAddrBurstUnits + SYMBOLS + false + true + true + true + + + boolean + false + false + true + false + true + + + java.lang.String + clk + false + true + true + true + + + java.lang.String + reset_n + false + true + true + true + + + int + 8 + false + true + true + true + + + boolean + true + false + true + true + true + + + com.altera.sopcmodel.avalon.EAddrBurstUnits + WORDS + false + true + true + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + true + true + + + boolean + false + false + true + true + true + + + int + 0 + false + true + true + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + true + true + + + int + 32 + false + true + false + true + + + int + 0 + false + true + true + true + + + int + 0 + false + true + false + true + + + int + 0 + false + true + true + true + + + int + 1 + false + true + true + true + + + boolean + true + false + true + false + true + + + boolean + false + false + true + false + true + + + int + 0 + false + true + true + true + + + com.altera.sopcmodel.avalon.TimingUnits + Cycles + false + true + true + true + + + int + 0 + false + true + true + true + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + avalon + true + + d_address + Output + 19 + address + + + d_byteenable + Output + 4 + byteenable + + + d_read + Output + 1 + read + + + d_readdata + Input + 32 + readdata + + + d_waitrequest + Input + 1 + waitrequest + + + d_write + Output + 1 + write + + + d_writedata + Output + 32 + writedata + + + jtag_debug_module_debugaccess_to_roms + Output + 1 + debugaccess + + + false + nios2_processor + jtag_debug_module + nios2_processor.jtag_debug_module + 264192 + 2048 + + + false + onchip_memory + s1 + onchip_memory.s1 + 0 + 204800 + + + false + LEDs + s1 + LEDs.s1 + 266480 + 16 + + + false + jtag_uart + avalon_jtag_slave + jtag_uart.avalon_jtag_slave + 266496 + 8 + + + false + LEDRs + s1 + LEDRs.s1 + 266464 + 16 + + + false + switches + s1 + switches.s1 + 266448 + 16 + + + false + push_switches + s1 + push_switches.s1 + 266432 + 16 + + + false + hex0 + s1 + hex0.s1 + 266416 + 16 + + + false + hex1 + s1 + hex1.s1 + 266400 + 16 + + + false + hex2 + s1 + hex2.s1 + 266384 + 16 + + + false + hex3 + s1 + hex3.s1 + 266368 + 16 + + + false + hex4 + s1 + hex4.s1 + 266352 + 16 + + + false + hex5 + s1 + hex5.s1 + 266336 + 16 + + + false + hex6 + s1 + hex6.s1 + 266320 + 16 + + + false + hex7 + s1 + hex7.s1 + 266304 + 16 + + + false + lcd_16207_0 + control_slave + lcd_16207_0.control_slave + 266288 + 16 + + + false + lcd_on + s1 + lcd_on.s1 + 266256 + 16 + + + false + lcd_blon + s1 + lcd_blon.s1 + 266272 + 16 + + + + + + com.altera.entityinterfaces.IConnectionPoint + + false + true + false + true + + + int + 1 + false + true + false + true + + + com.altera.sopcmodel.avalon.EAddrBurstUnits + SYMBOLS + false + true + true + true + + + boolean + true + false + true + false + true + + + java.lang.String + clk + false + true + true + true + + + java.lang.String + reset_n + false + true + true + true + + + int + 8 + false + true + true + true + + + boolean + false + false + true + true + true + + + com.altera.sopcmodel.avalon.EAddrBurstUnits + WORDS + false + true + true + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + true + true + + + boolean + false + false + true + true + true + + + int + 0 + false + true + true + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + false + true + + + boolean + true + false + true + true + true + + + int + 32 + false + true + false + true + + + int + 0 + false + true + true + true + + + int + 0 + false + true + false + true + + + int + 0 + false + true + true + true + + + int + 1 + false + true + true + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + false + true + + + int + 0 + false + true + true + true + + + com.altera.sopcmodel.avalon.TimingUnits + Cycles + false + true + true + true + + + int + 0 + false + true + true + true + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + avalon + true + + i_address + Output + 19 + address + + + i_read + Output + 1 + read + + + i_readdata + Input + 32 + readdata + + + i_waitrequest + Input + 1 + waitrequest + + + false + nios2_processor + jtag_debug_module + nios2_processor.jtag_debug_module + 264192 + 2048 + + + false + onchip_memory + s1 + onchip_memory.s1 + 0 + 204800 + + + + + + com.altera.entityinterfaces.IConnectionPoint + nios2_processor.data_master + false + true + true + true + + + java.lang.String + clk + false + true + false + true + + + java.lang.String + reset_n + false + true + false + true + + + com.altera.sopcmodel.interrupt.InterruptConnectionPoint$EIrqScheme + INDIVIDUAL_REQUESTS + false + true + true + true + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + interrupt + true + + d_irq + Input + 32 + irq + + + false + jtag_uart + irq + jtag_uart.irq + 5 + + + + + + java.lang.String + clk + false + true + true + true + + + java.lang.String + + false + true + true + true + + + [Ljava.lang.String; + none + false + true + true + true + + + com.altera.sopcmodel.reset.Reset$Edges + DEASSERT + false + true + true + true + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + reset + true + + jtag_debug_module_resetrequest + Output + 1 + reset + + + + + + embeddedsw.configuration.hideDevice + 1 + + + embeddedsw.configuration.isFlash + 0 + + + embeddedsw.configuration.isMemoryDevice + 1 + + + embeddedsw.configuration.isNonVolatileStorage + 0 + + + embeddedsw.configuration.isPrintableDevice + 0 + + + qsys.ui.connect + instruction_master,data_master + + + com.altera.sopcmodel.avalon.AvalonConnectionPoint$AddressAlignment + DYNAMIC + false + true + false + true + + + int + 0 + false + true + false + true + + + java.math.BigInteger + 2048 + true + true + false + true + + + com.altera.sopcmodel.avalon.EAddrBurstUnits + WORDS + false + true + true + true + + + boolean + false + false + true + false + true + + + java.lang.String + clk + false + true + true + true + + + java.lang.String + reset_n + false + true + true + true + + + int + 8 + false + true + true + true + + + com.altera.entityinterfaces.IConnectionPoint + + false + true + false + true + + + boolean + false + false + true + true + true + + + com.altera.sopcmodel.avalon.EAddrBurstUnits + WORDS + false + true + true + true + + + boolean + false + false + true + false + true + + + java.math.BigInteger + 0 + false + true + true + true + + + int + 0 + false + false + true + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + false + true + + + boolean + true + false + true + false + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + true + true + + + int + 0 + false + false + true + true + + + int + 0 + false + false + false + true + + + int + 1 + false + true + false + true + + + boolean + false + false + true + false + true + + + int + 0 + false + true + true + true + + + int + 1 + false + true + false + true + + + int + 1 + false + false + true + true + + + boolean + true + false + true + false + true + + + boolean + false + false + true + false + true + + + int + 0 + false + false + true + true + + + com.altera.sopcmodel.avalon.TimingUnits + Cycles + false + false + true + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + false + true + + + int + 0 + false + true + false + true + + + int + 0 + false + true + false + true + + + int + 0 + false + false + true + true + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + avalon + false + + jtag_debug_module_address + Input + 9 + address + + + jtag_debug_module_byteenable + Input + 4 + byteenable + + + jtag_debug_module_debugaccess + Input + 1 + debugaccess + + + jtag_debug_module_read + Input + 1 + read + + + jtag_debug_module_readdata + Output + 32 + readdata + + + jtag_debug_module_waitrequest + Output + 1 + waitrequest + + + jtag_debug_module_write + Input + 1 + write + + + jtag_debug_module_writedata + Input + 32 + writedata + + + + + + java.lang.String + + true + true + false + true + + + int + 8 + false + true + false + true + + + int + 0 + false + false + true + true + + + boolean + false + false + true + false + true + + + int + 8 + false + true + false + true + + + int + 0 + true + true + false + true + + + boolean + false + false + true + false + true + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + nios_custom_instruction + true + + no_ci_readra + Output + 1 + readra + + + + + + + embeddedsw.CMacro.ALLOW_IN_SYSTEM_MEMORY_CONTENT_EDITOR + 0 + + + embeddedsw.CMacro.ALLOW_MRAM_SIM_CONTENTS_ONLY_FILE + 0 + + + embeddedsw.CMacro.CONTENTS_INFO + "" + + + embeddedsw.CMacro.DUAL_PORT + 0 + + + embeddedsw.CMacro.GUI_RAM_BLOCK_TYPE + AUTO + + + embeddedsw.CMacro.INIT_CONTENTS_FILE + nios_system_onchip_memory + + + embeddedsw.CMacro.INIT_MEM_CONTENT + 1 + + + embeddedsw.CMacro.INSTANCE_ID + NONE + + + embeddedsw.CMacro.NON_DEFAULT_INIT_FILE_ENABLED + 0 + + + embeddedsw.CMacro.RAM_BLOCK_TYPE + AUTO + + + embeddedsw.CMacro.READ_DURING_WRITE_MODE + DONT_CARE + + + embeddedsw.CMacro.SINGLE_CLOCK_OP + 0 + + + embeddedsw.CMacro.SIZE_MULTIPLE + 1 + + + embeddedsw.CMacro.SIZE_VALUE + 204800 + + + embeddedsw.CMacro.WRITABLE + 1 + + + embeddedsw.memoryInfo.DAT_SYM_INSTALL_DIR + SIM_DIR + + + embeddedsw.memoryInfo.GENERATE_DAT_SYM + 1 + + + embeddedsw.memoryInfo.GENERATE_HEX + 1 + + + embeddedsw.memoryInfo.HAS_BYTE_LANE + 0 + + + embeddedsw.memoryInfo.HEX_INSTALL_DIR + QPF_DIR + + + embeddedsw.memoryInfo.MEM_INIT_DATA_WIDTH + 32 + + + embeddedsw.memoryInfo.MEM_INIT_FILENAME + nios_system_onchip_memory + + + postgeneration.simulation.init_file.param_name + INIT_FILE + + + postgeneration.simulation.init_file.type + MEM_INIT + + + boolean + false + false + true + true + true + + + java.lang.String + AUTO + false + true + true + true + + + int + 32 + false + true + true + true + + + boolean + false + false + true + true + true + + + boolean + true + false + true + true + true + + + java.lang.String + onchip_mem.hex + false + false + true + true + + + java.lang.String + NONE + false + false + true + true + + + long + 204800 + false + true + true + true + + + java.lang.String + DONT_CARE + false + false + true + true + + + boolean + false + false + true + false + true + + + int + 0 + false + true + false + true + + + boolean + false + false + false + true + true + + + int + 1 + false + true + true + true + + + int + 1 + false + false + true + true + + + boolean + false + false + true + true + true + + + boolean + false + false + false + true + true + + + boolean + true + false + true + true + true + + + java.lang.String + nios_system_onchip_memory + false + true + false + true + + + java.lang.String + CYCLONEIVE + false + true + false + true + + + java.lang.String + ADDRESS_STALL 1 CELL_LEVEL_BACK_ANNOTATION_DISABLED 0 COMPILER_SUPPORT 1 DSP 0 DSP_SHIFTER_BLOCK 0 DUMP_ASM_LAB_BITS_FOR_POWER 1 EMUL 1 ENABLE_ADVANCED_IO_ANALYSIS_GUI_FEATURES 1 EPCS 1 ESB 0 FAKE1 0 FAKE2 0 FAKE3 0 FAMILY_LEVEL_INSTALLATION_ONLY 1 FITTER_USE_FALLING_EDGE_DELAY 0 GENERATE_DC_ON_CURRENT_WARNING_FOR_INTERNAL_CLAMPING_DIODE 0 HARDCOPY 0 HAS_18_BIT_MULTS 0 HAS_ACE_SUPPORT 1 HAS_ADJUSTABLE_OUTPUT_IO_TIMING_MEAS_POINT 0 HAS_ADVANCED_IO_INVERTED_CORNER 0 HAS_ADVANCED_IO_POWER_SUPPORT 1 HAS_ADVANCED_IO_TIMING_SUPPORT 1 HAS_ALM_SUPPORT 0 HAS_ATOM_AND_ROUTING_POWER_MODELED_TOGETHER 0 HAS_AUTO_DERIVE_CLOCK_UNCERTAINTY_SUPPORT 0 HAS_AUTO_FIT_SUPPORT 1 HAS_BALANCED_OPT_TECHNIQUE_SUPPORT 1 HAS_BENEFICIAL_SKEW_SUPPORT 1 HAS_BITLEVEL_DRIVE_STRENGTH_CONTROL 1 HAS_BSDL_FILE_GENERATION 1 HAS_CGA_SUPPORT 1 HAS_CHECK_NETLIST_SUPPORT 0 HAS_CLOCK_REGION_CHECKER_ENABLED 1 HAS_CORE_JUNCTION_TEMP_DERATING 0 HAS_CROSSTALK_SUPPORT 0 HAS_CUSTOM_REGION_SUPPORT 1 HAS_DAP_JTAG_FROM_HPS 0 HAS_DATA_DRIVEN_ACVQ_HSSI_SUPPORT 0 HAS_DDB_FDI_SUPPORT 0 HAS_DESIGN_ANALYZER_SUPPORT 1 HAS_DETAILED_IO_RAIL_POWER_MODEL 1 HAS_DETAILED_LEIM_STATIC_POWER_MODEL 1 HAS_DETAILED_LE_POWER_MODEL 1 HAS_DETAILED_ROUTING_MUX_STATIC_POWER_MODEL 1 HAS_DETAILED_THERMAL_CIRCUIT_PARAMETER_SUPPORT 1 HAS_DEVICE_MIGRATION_SUPPORT 1 HAS_DIAGONAL_MIGRATION_SUPPORT 0 HAS_EMIF_TOOLKIT_SUPPORT 0 HAS_ERROR_DETECTION_SUPPORT 0 HAS_FAMILY_VARIANT_MIGRATION_SUPPORT 0 HAS_FANOUT_FREE_NODE_SUPPORT 1 HAS_FAST_FIT_SUPPORT 1 HAS_FITTER_EARLY_TIMING_ESTIMATE_SUPPORT 1 HAS_FITTER_ECO_SUPPORT 1 HAS_FIT_NETLIST_OPT_RETIME_SUPPORT 1 HAS_FIT_NETLIST_OPT_SUPPORT 1 HAS_FORMAL_VERIFICATION_SUPPORT 1 HAS_FPGA_XCHANGE_SUPPORT 1 HAS_FSAC_LUTRAM_REGISTER_PACKING_SUPPORT 0 HAS_FULL_DAT_MIN_TIMING_SUPPORT 1 HAS_FULL_INCREMENTAL_DESIGN_SUPPORT 1 HAS_FUNCTIONAL_SIMULATION_SUPPORT 1 HAS_FUNCTIONAL_VERILOG_SIMULATION_SUPPORT 0 HAS_FUNCTIONAL_VHDL_SIMULATION_SUPPORT 0 HAS_GLITCH_FILTERING_SUPPORT 1 HAS_HC_READY_SUPPORT 0 HAS_HIGH_SPEED_LOW_POWER_TILE_SUPPORT 0 HAS_HOLD_TIME_AVOIDANCE_ACROSS_CLOCK_SPINE_SUPPORT 1 HAS_HSPICE_WRITER_SUPPORT 1 HAS_HSSI_POWER_CALCULATOR 0 HAS_IBISO_WRITER_SUPPORT 0 HAS_INCREMENTAL_DAT_SUPPORT 1 HAS_INCREMENTAL_SYNTHESIS_SUPPORT 1 HAS_INTERFACE_PLANNER_SUPPORT 0 HAS_IO_ASSIGNMENT_ANALYSIS_SUPPORT 1 HAS_IO_DECODER 0 HAS_IO_PLACEMENT_OPTIMIZATION_SUPPORT 1 HAS_IO_SMART_RECOMPILE_SUPPORT 0 HAS_JITTER_SUPPORT 1 HAS_JTAG_SLD_HUB_SUPPORT 1 HAS_LIMITED_TCL_FITTER_SUPPORT 0 HAS_LOGIC_LOCK_SUPPORT 1 HAS_MICROPROCESSOR 0 HAS_MIF_SMART_COMPILE_SUPPORT 1 HAS_MINMAX_TIMING_MODELING_SUPPORT 1 HAS_MIN_TIMING_ANALYSIS_SUPPORT 1 HAS_MUX_RESTRUCTURE_SUPPORT 1 HAS_NEW_HC_FLOW_SUPPORT 0 HAS_NEW_SERDES_MAX_RESOURCE_COUNT_REPORTING_SUPPORT 1 HAS_NEW_VPR_SUPPORT 1 HAS_NONSOCKET_TECHNOLOGY_MIGRATION_SUPPORT 0 HAS_NO_HARDBLOCK_PARTITION_SUPPORT 0 HAS_NO_JTAG_USERCODE_SUPPORT 0 HAS_OPERATING_SETTINGS_AND_CONDITIONS_REPORTING_SUPPORT 1 HAS_PAD_LOCATION_ASSIGNMENT_SUPPORT 0 HAS_PARTIAL_RECONFIG_SUPPORT 0 HAS_PHYSICAL_NETLIST_OUTPUT 0 HAS_PHYSICAL_ROUTING_SUPPORT 0 HAS_PIN_SPECIFIC_VOLTAGE_SUPPORT 1 HAS_PLDM_REF_SUPPORT 1 HAS_POWER_ESTIMATION_SUPPORT 1 HAS_PRELIMINARY_CLOCK_UNCERTAINTY_NUMBERS 0 HAS_PRE_FITTER_FPP_SUPPORT 0 HAS_PRE_FITTER_LUTRAM_NETLIST_CHECKER_ENABLED 0 HAS_PVA_SUPPORT 1 HAS_RCF_SUPPORT 1 HAS_RCF_SUPPORT_FOR_DEBUGGING 0 HAS_RED_BLACK_SEPARATION_SUPPORT 0 HAS_RE_LEVEL_TIMING_GRAPH_SUPPORT 1 HAS_RISEFALL_DELAY_SUPPORT 1 HAS_SIGNAL_PROBE_SUPPORT 1 HAS_SIGNAL_TAP_SUPPORT 1 HAS_SIMULATOR_SUPPORT 0 HAS_SPLIT_IO_SUPPORT 1 HAS_SPLIT_LC_SUPPORT 1 HAS_SYNTH_FSYN_NETLIST_OPT_SUPPORT 1 HAS_SYNTH_NETLIST_OPT_RETIME_SUPPORT 1 HAS_SYNTH_NETLIST_OPT_SUPPORT 1 HAS_TCL_FITTER_SUPPORT 0 HAS_TECHNOLOGY_MIGRATION_SUPPORT 0 HAS_TEMPLATED_REGISTER_PACKING_SUPPORT 1 HAS_TIME_BORROWING_SUPPORT 0 HAS_TIMING_DRIVEN_SYNTHESIS_SUPPORT 1 HAS_TIMING_INFO_SUPPORT 1 HAS_TIMING_OPERATING_CONDITIONS 1 HAS_TIMING_SIMULATION_SUPPORT 1 HAS_TITAN_BASED_MAC_REGISTER_PACKER_SUPPORT 0 HAS_U2B2_SUPPORT 0 HAS_USER_HIGH_SPEED_LOW_POWER_TILE_SUPPORT 0 HAS_USE_FITTER_INFO_SUPPORT 1 HAS_VCCPD_POWER_RAIL 0 HAS_VERTICAL_MIGRATION_SUPPORT 1 HAS_VIEWDRAW_SYMBOL_SUPPORT 0 HAS_VIO_SUPPORT 1 HAS_VIRTUAL_DEVICES 0 HAS_WYSIWYG_DFFEAS_SUPPORT 1 HAS_XIBISO_WRITER_SUPPORT 1 IFP_USE_LEGACY_IO_CHECKER 0 INCREMENTAL_DESIGN_SUPPORTS_COMPATIBLE_CONSTRAINTS 1 INSTALLED 0 IS_CONFIG_ROM 0 IS_DEFAULT_FAMILY 0 IS_HARDCOPY_FAMILY 0 LVDS_IO 1 M10K_MEMORY 0 M144K_MEMORY 0 M20K_MEMORY 0 M4K_MEMORY 0 M512_MEMORY 0 M9K_MEMORY 1 MLAB_MEMORY 0 MRAM_MEMORY 0 NOT_LISTED 0 NO_RPE_SUPPORT 0 NO_SUPPORT_FOR_LOGICLOCK_CONTENT_BACK_ANNOTATION 1 NO_SUPPORT_FOR_STA_CLOCK_UNCERTAINTY_CHECK 0 NO_TDC_SUPPORT 0 POSTFIT_BAK_DATABASE_EXPORT_ENABLED 1 POSTMAP_BAK_DATABASE_EXPORT_ENABLED 1 PROGRAMMER_SUPPORT 1 QFIT_IN_DEVELOPMENT 0 QMAP_IN_DEVELOPMENT 0 RAM_LOGICAL_NAME_CHECKING_IN_CUT_ENABLED 1 REPORTS_METASTABILITY_MTBF 1 REQUIRES_INSTALLATION_PATCH 0 REQUIRES_LIST_OF_TEMPERATURE_AND_VOLTAGE_OPERATING_CONDITIONS 1 RESERVES_SIGNAL_PROBE_PINS 0 RESOLVE_MAX_FANOUT_EARLY 1 RESOLVE_MAX_FANOUT_LATE 0 RESPECTS_FIXED_SIZED_LOCKED_LOCATION_LOGICLOCK 1 RESTRICTED_USER_SELECTION 0 RISEFALL_SUPPORT_IS_HIDDEN 0 STRICT_TIMING_DB_CHECKS 0 SUPPORTS_ADDITIONAL_OPTIONS_FOR_UNUSED_IO 0 SUPPORTS_CRC 1 SUPPORTS_DIFFERENTIAL_AIOT_BOARD_TRACE_MODEL 1 SUPPORTS_DSP_BALANCING_BACK_ANNOTATION 0 SUPPORTS_GENERATION_OF_EARLY_POWER_ESTIMATOR_FILE 1 SUPPORTS_GLOBAL_SIGNAL_BACK_ANNOTATION 0 SUPPORTS_MAC_CHAIN_OUT_ADDER 0 SUPPORTS_RAM_PACKING_BACK_ANNOTATION 0 SUPPORTS_REG_PACKING_BACK_ANNOTATION 0 SUPPORTS_SIGNALPROBE_REGISTER_PIPELINING 1 SUPPORTS_SINGLE_ENDED_AIOT_BOARD_TRACE_MODEL 1 SUPPORTS_USER_MANUAL_LOGIC_DUPLICATION 1 TMV_RUN_CUSTOMIZABLE_VIEWER 1 TMV_RUN_INTERNAL_DETAILS 1 TMV_RUN_INTERNAL_DETAILS_ON_IO 0 TMV_RUN_INTERNAL_DETAILS_ON_IOBUF 1 TMV_RUN_INTERNAL_DETAILS_ON_LCELL 0 TMV_RUN_INTERNAL_DETAILS_ON_LRAM 0 TRANSCEIVER_3G_BLOCK 0 TRANSCEIVER_6G_BLOCK 0 USES_ACV_FOR_FLED 1 USES_ADB_FOR_BACK_ANNOTATION 1 USES_ALTERA_LNSIM 0 USES_ASIC_ROUTING_POWER_CALCULATOR 0 USES_DATA_DRIVEN_PLL_COMPUTATION_UTIL 1 USES_DEV 1 USES_ICP_FOR_ECO_FITTER 0 USES_LIBERTY_TIMING 0 USES_POWER_SIGNAL_ACTIVITIES 1 USES_THIRD_GENERATION_TIMING_MODELS_TIS 1 USES_U2B2_TIMING_MODELS 0 USE_ADVANCED_IO_POWER_BY_DEFAULT 1 USE_ADVANCED_IO_TIMING_BY_DEFAULT 1 USE_BASE_FAMILY_DDB_PATH 0 USE_OCT_AUTO_CALIBRATION 1 USE_RELAX_IO_ASSIGNMENT_RULES 0 USE_RISEFALL_ONLY 1 USE_SEPARATE_LIST_FOR_TECH_MIGRATION 0 USE_SINGLE_COMPILER_PASS_PLL_MIF_FILE_WRITER 1 USE_TITAN_IO_BASED_IO_REGISTER_PACKER_UTIL 0 WYSIWYG_BUS_WIDTH_CHECKING_IN_CUT_ENABLED 1 + false + true + false + true + + + int + 16 + true + true + false + true + + + java.lang.String + Automatic + true + true + false + true + + + boolean + false + true + true + false + true + + + java.lang.String + nios_system_onchip_memory.hex + true + true + false + true + + + boolean + false + false + true + true + true + + + + + boolean + false + false + true + false + true + + + java.lang.String + + false + true + false + true + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + clock + false + + clk + Input + 1 + clk + + + + + + embeddedsw.configuration.isFlash + 0 + + + embeddedsw.configuration.isMemoryDevice + 1 + + + embeddedsw.configuration.isNonVolatileStorage + 0 + + + embeddedsw.configuration.isPrintableDevice + 0 + + + com.altera.sopcmodel.avalon.AvalonConnectionPoint$AddressAlignment + DYNAMIC + false + true + false + true + + + int + 0 + false + true + false + true + + + java.math.BigInteger + 204800 + true + true + false + true + + + com.altera.sopcmodel.avalon.EAddrBurstUnits + WORDS + false + true + true + true + + + boolean + false + false + true + false + true + + + java.lang.String + clk1 + false + true + true + true + + + java.lang.String + reset1 + false + true + true + true + + + int + 8 + false + true + true + true + + + com.altera.entityinterfaces.IConnectionPoint + + false + true + false + true + + + boolean + false + false + true + true + true + + + com.altera.sopcmodel.avalon.EAddrBurstUnits + WORDS + false + true + true + true + + + boolean + false + false + true + false + true + + + java.math.BigInteger + 204800 + false + true + true + true + + + int + 0 + false + true + true + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + false + true + + + boolean + true + false + true + false + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + true + true + + + int + 0 + false + false + true + true + + + int + 0 + false + false + false + true + + + int + 1 + false + true + false + true + + + boolean + false + false + true + false + true + + + int + 1 + false + true + true + true + + + int + 0 + false + true + false + true + + + int + 0 + false + true + true + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + false + true + + + int + 0 + false + true + true + true + + + com.altera.sopcmodel.avalon.TimingUnits + Cycles + false + true + true + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + false + true + + + int + 0 + false + true + false + true + + + int + 0 + false + true + false + true + + + int + 0 + false + true + true + true + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + avalon + false + + address + Input + 16 + address + + + clken + Input + 1 + clken + + + chipselect + Input + 1 + chipselect + + + write + Input + 1 + write + + + readdata + Output + 32 + readdata + + + writedata + Input + 32 + writedata + + + byteenable + Input + 4 + byteenable + + + + + + java.lang.String + clk1 + false + true + true + true + + + com.altera.sopcmodel.reset.Reset$Edges + DEASSERT + false + true + true + true + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + reset + false + + reset + Input + 1 + reset + + + reset_req + Input + 1 + reset_req + + + + + + + embeddedsw.CMacro.READ_DEPTH + 64 + + + embeddedsw.CMacro.READ_THRESHOLD + 8 + + + embeddedsw.CMacro.WRITE_DEPTH + 64 + + + embeddedsw.CMacro.WRITE_THRESHOLD + 8 + + + boolean + false + false + true + true + true + + + int + 0 + false + true + false + true + + + int + 64 + false + true + true + true + + + int + 8 + false + true + true + true + + + java.lang.String + + false + false + false + true + + + java.lang.String + NO_INTERACTIVE_WINDOWS + false + true + false + true + + + boolean + false + false + true + true + true + + + boolean + false + false + true + true + true + + + boolean + false + false + true + false + true + + + int + 64 + false + true + true + true + + + int + 8 + false + true + true + true + + + java.lang.String + 2.0 + false + true + false + true + + + boolean + false + true + true + false + true + + + boolean + false + true + true + false + true + + + boolean + false + true + true + false + true + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + + + + boolean + false + false + true + false + true + + + java.lang.String + + false + true + false + true + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + clock + false + + clk + Input + 1 + clk + + + + + + java.lang.String + clk + false + true + true + true + + + com.altera.sopcmodel.reset.Reset$Edges + DEASSERT + false + true + true + true + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + reset + false + + rst_n + Input + 1 + reset_n + + + + + + embeddedsw.configuration.isFlash + 0 + + + embeddedsw.configuration.isMemoryDevice + 0 + + + embeddedsw.configuration.isNonVolatileStorage + 0 + + + embeddedsw.configuration.isPrintableDevice + 1 + + + com.altera.sopcmodel.avalon.AvalonConnectionPoint$AddressAlignment + NATIVE + false + true + false + true + + + int + 0 + false + true + false + true + + + java.math.BigInteger + 2 + true + true + false + true + + + com.altera.sopcmodel.avalon.EAddrBurstUnits + WORDS + false + true + true + true + + + boolean + false + false + true + false + true + + + java.lang.String + clk + false + true + true + true + + + java.lang.String + reset + false + true + true + true + + + int + 8 + false + true + true + true + + + com.altera.entityinterfaces.IConnectionPoint + + false + true + false + true + + + boolean + false + false + true + true + true + + + com.altera.sopcmodel.avalon.EAddrBurstUnits + WORDS + false + true + true + true + + + boolean + false + false + true + false + true + + + java.math.BigInteger + 0 + false + true + true + true + + + int + 0 + false + false + true + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + true + true + + + int + 0 + false + false + true + true + + + int + 0 + false + false + false + true + + + int + 1 + false + true + false + true + + + boolean + true + false + true + false + true + + + int + 0 + false + true + true + true + + + int + 1 + false + true + false + true + + + int + 1 + false + false + true + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + false + true + + + int + 0 + false + false + true + true + + + com.altera.sopcmodel.avalon.TimingUnits + Cycles + false + false + true + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + false + true + + + int + 0 + false + true + false + true + + + int + 0 + false + true + false + true + + + int + 0 + false + false + true + true + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + avalon + false + + av_chipselect + Input + 1 + chipselect + + + av_address + Input + 1 + address + + + av_read_n + Input + 1 + read_n + + + av_readdata + Output + 32 + readdata + + + av_write_n + Input + 1 + write_n + + + av_writedata + Input + 32 + writedata + + + av_waitrequest + Output + 1 + waitrequest + + + + + + com.altera.entityinterfaces.IConnectionPoint + jtag_uart.avalon_jtag_slave + false + true + true + true + + + java.lang.String + clk + false + true + false + true + + + java.lang.String + reset + false + true + false + true + + + com.altera.sopcmodel.interrupt.InterruptConnectionPoint$EIrqScheme + NONE + false + true + false + true + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + interrupt + false + + av_irq + Output + 1 + irq + + + + + + + embeddedsw.CMacro.BIT_CLEARING_EDGE_REGISTER + 0 + + + embeddedsw.CMacro.BIT_MODIFYING_OUTPUT_REGISTER + 0 + + + embeddedsw.CMacro.CAPTURE + 0 + + + embeddedsw.CMacro.DATA_WIDTH + 8 + + + embeddedsw.CMacro.DO_TEST_BENCH_WIRING + 0 + + + embeddedsw.CMacro.DRIVEN_SIM_VALUE + 0 + + + embeddedsw.CMacro.EDGE_TYPE + NONE + + + embeddedsw.CMacro.FREQ + 50000000 + + + embeddedsw.CMacro.HAS_IN + 0 + + + embeddedsw.CMacro.HAS_OUT + 1 + + + embeddedsw.CMacro.HAS_TRI + 0 + + + embeddedsw.CMacro.IRQ_TYPE + NONE + + + embeddedsw.CMacro.RESET_VALUE + 0 + + + embeddedsw.dts.compatible + altr,pio-1.0 + + + boolean + false + false + false + true + true + + + boolean + false + false + true + true + true + + + boolean + false + false + false + true + true + + + java.lang.String + Output + false + true + true + true + + + java.lang.String + RISING + false + false + true + true + + + boolean + false + false + false + true + true + + + java.lang.String + LEVEL + false + false + true + true + + + long + 0 + false + true + true + true + + + boolean + false + false + false + true + true + + + long + 0 + false + false + true + true + + + int + 8 + false + true + true + true + + + long + 50000000 + false + true + false + true + + + boolean + false + true + true + false + true + + + boolean + true + true + true + false + true + + + boolean + false + true + true + false + true + + + boolean + false + true + true + false + true + + + boolean + false + true + true + false + true + + + java.lang.String + NONE + true + true + false + true + + + java.lang.String + NONE + true + true + false + true + + + boolean + false + true + true + false + true + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + + + + boolean + false + false + true + false + true + + + java.lang.String + + false + true + false + true + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + + java.lang.Boolean + true + true + true + false + true + + + java.lang.Long + 50000000 + true + true + false + true + + clock + false + + clk + Input + 1 + clk + + + + + + java.lang.String + clk + false + true + true + true + + + com.altera.sopcmodel.reset.Reset$Edges + DEASSERT + false + true + true + true + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + reset + false + + reset_n + Input + 1 + reset_n + + + + + + embeddedsw.configuration.isFlash + 0 + + + embeddedsw.configuration.isMemoryDevice + 0 + + + embeddedsw.configuration.isNonVolatileStorage + 0 + + + embeddedsw.configuration.isPrintableDevice + 0 + + + com.altera.sopcmodel.avalon.AvalonConnectionPoint$AddressAlignment + NATIVE + false + true + false + true + + + int + 0 + false + true + false + true + + + java.math.BigInteger + 4 + true + true + false + true + + + com.altera.sopcmodel.avalon.EAddrBurstUnits + WORDS + false + true + true + true + + + boolean + false + false + true + false + true + + + java.lang.String + clk + false + true + true + true + + + java.lang.String + reset + false + true + true + true + + + int + 8 + false + true + true + true + + + com.altera.entityinterfaces.IConnectionPoint + + false + true + false + true + + + boolean + false + false + true + true + true + + + com.altera.sopcmodel.avalon.EAddrBurstUnits + WORDS + false + true + true + true + + + boolean + false + false + true + false + true + + + java.math.BigInteger + 0 + false + true + true + true + + + int + 0 + false + true + true + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + true + true + + + int + 0 + false + false + true + true + + + int + 0 + false + false + false + true + + + int + 1 + false + true + false + true + + + boolean + false + false + true + false + true + + + int + 0 + false + true + true + true + + + int + 1 + false + true + false + true + + + int + 1 + false + true + true + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + false + true + + + int + 0 + false + true + true + true + + + com.altera.sopcmodel.avalon.TimingUnits + Cycles + false + true + true + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + false + true + + + int + 0 + false + true + false + true + + + int + 0 + false + true + false + true + + + int + 0 + false + true + true + true + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + avalon + false + + address + Input + 2 + address + + + write_n + Input + 1 + write_n + + + writedata + Input + 32 + writedata + + + chipselect + Input + 1 + chipselect + + + readdata + Output + 32 + readdata + + + + + + java.lang.String + + false + true + true + true + + + java.lang.String + + false + true + true + true + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + conduit + false + + out_port + Output + 8 + export + + + + + + + embeddedsw.CMacro.BIT_CLEARING_EDGE_REGISTER + 0 + + + embeddedsw.CMacro.BIT_MODIFYING_OUTPUT_REGISTER + 0 + + + embeddedsw.CMacro.CAPTURE + 0 + + + embeddedsw.CMacro.DATA_WIDTH + 18 + + + embeddedsw.CMacro.DO_TEST_BENCH_WIRING + 0 + + + embeddedsw.CMacro.DRIVEN_SIM_VALUE + 0 + + + embeddedsw.CMacro.EDGE_TYPE + NONE + + + embeddedsw.CMacro.FREQ + 50000000 + + + embeddedsw.CMacro.HAS_IN + 0 + + + embeddedsw.CMacro.HAS_OUT + 1 + + + embeddedsw.CMacro.HAS_TRI + 0 + + + embeddedsw.CMacro.IRQ_TYPE + NONE + + + embeddedsw.CMacro.RESET_VALUE + 0 + + + embeddedsw.dts.compatible + altr,pio-1.0 + + + boolean + false + false + false + true + true + + + boolean + false + false + true + true + true + + + boolean + false + false + false + true + true + + + java.lang.String + Output + false + true + true + true + + + java.lang.String + RISING + false + false + true + true + + + boolean + false + false + false + true + true + + + java.lang.String + LEVEL + false + false + true + true + + + long + 0 + false + true + true + true + + + boolean + false + false + false + true + true + + + long + 0 + false + false + true + true + + + int + 18 + false + true + true + true + + + long + 50000000 + false + true + false + true + + + boolean + false + true + true + false + true + + + boolean + true + true + true + false + true + + + boolean + false + true + true + false + true + + + boolean + false + true + true + false + true + + + boolean + false + true + true + false + true + + + java.lang.String + NONE + true + true + false + true + + + java.lang.String + NONE + true + true + false + true + + + boolean + false + true + true + false + true + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + + + + boolean + false + false + true + false + true + + + java.lang.String + + false + true + false + true + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + + java.lang.Boolean + true + true + true + false + true + + + java.lang.Long + 50000000 + true + true + false + true + + clock + false + + clk + Input + 1 + clk + + + + + + java.lang.String + clk + false + true + true + true + + + com.altera.sopcmodel.reset.Reset$Edges + DEASSERT + false + true + true + true + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + reset + false + + reset_n + Input + 1 + reset_n + + + + + + embeddedsw.configuration.isFlash + 0 + + + embeddedsw.configuration.isMemoryDevice + 0 + + + embeddedsw.configuration.isNonVolatileStorage + 0 + + + embeddedsw.configuration.isPrintableDevice + 0 + + + com.altera.sopcmodel.avalon.AvalonConnectionPoint$AddressAlignment + NATIVE + false + true + false + true + + + int + 0 + false + true + false + true + + + java.math.BigInteger + 4 + true + true + false + true + + + com.altera.sopcmodel.avalon.EAddrBurstUnits + WORDS + false + true + true + true + + + boolean + false + false + true + false + true + + + java.lang.String + clk + false + true + true + true + + + java.lang.String + reset + false + true + true + true + + + int + 8 + false + true + true + true + + + com.altera.entityinterfaces.IConnectionPoint + + false + true + false + true + + + boolean + false + false + true + true + true + + + com.altera.sopcmodel.avalon.EAddrBurstUnits + WORDS + false + true + true + true + + + boolean + false + false + true + false + true + + + java.math.BigInteger + 0 + false + true + true + true + + + int + 0 + false + true + true + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + true + true + + + int + 0 + false + false + true + true + + + int + 0 + false + false + false + true + + + int + 1 + false + true + false + true + + + boolean + false + false + true + false + true + + + int + 0 + false + true + true + true + + + int + 1 + false + true + false + true + + + int + 1 + false + true + true + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + false + true + + + int + 0 + false + true + true + true + + + com.altera.sopcmodel.avalon.TimingUnits + Cycles + false + true + true + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + false + true + + + int + 0 + false + true + false + true + + + int + 0 + false + true + false + true + + + int + 0 + false + true + true + true + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + avalon + false + + address + Input + 2 + address + + + write_n + Input + 1 + write_n + + + writedata + Input + 32 + writedata + + + chipselect + Input + 1 + chipselect + + + readdata + Output + 32 + readdata + + + + + + java.lang.String + + false + true + true + true + + + java.lang.String + + false + true + true + true + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + conduit + false + + out_port + Output + 18 + export + + + + + + + embeddedsw.CMacro.BIT_CLEARING_EDGE_REGISTER + 0 + + + embeddedsw.CMacro.BIT_MODIFYING_OUTPUT_REGISTER + 0 + + + embeddedsw.CMacro.CAPTURE + 0 + + + embeddedsw.CMacro.DATA_WIDTH + 18 + + + embeddedsw.CMacro.DO_TEST_BENCH_WIRING + 0 + + + embeddedsw.CMacro.DRIVEN_SIM_VALUE + 0 + + + embeddedsw.CMacro.EDGE_TYPE + NONE + + + embeddedsw.CMacro.FREQ + 50000000 + + + embeddedsw.CMacro.HAS_IN + 1 + + + embeddedsw.CMacro.HAS_OUT + 0 + + + embeddedsw.CMacro.HAS_TRI + 0 + + + embeddedsw.CMacro.IRQ_TYPE + NONE + + + embeddedsw.CMacro.RESET_VALUE + 0 + + + embeddedsw.dts.compatible + altr,pio-1.0 + + + boolean + false + false + false + true + true + + + boolean + false + false + false + true + true + + + boolean + false + false + true + true + true + + + java.lang.String + Input + false + true + true + true + + + java.lang.String + RISING + false + false + true + true + + + boolean + false + false + true + true + true + + + java.lang.String + LEVEL + false + false + true + true + + + long + 0 + false + false + true + true + + + boolean + false + false + true + true + true + + + long + 0 + false + false + true + true + + + int + 18 + false + true + true + true + + + long + 50000000 + false + true + false + true + + + boolean + false + true + true + false + true + + + boolean + false + true + true + false + true + + + boolean + true + true + true + false + true + + + boolean + false + true + true + false + true + + + boolean + false + true + true + false + true + + + java.lang.String + NONE + true + true + false + true + + + java.lang.String + NONE + true + true + false + true + + + boolean + false + true + true + false + true + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + + + + boolean + false + false + true + false + true + + + java.lang.String + + false + true + false + true + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + + java.lang.Boolean + true + true + true + false + true + + + java.lang.Long + 50000000 + true + true + false + true + + clock + false + + clk + Input + 1 + clk + + + + + + java.lang.String + clk + false + true + true + true + + + com.altera.sopcmodel.reset.Reset$Edges + DEASSERT + false + true + true + true + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + reset + false + + reset_n + Input + 1 + reset_n + + + + + + embeddedsw.configuration.isFlash + 0 + + + embeddedsw.configuration.isMemoryDevice + 0 + + + embeddedsw.configuration.isNonVolatileStorage + 0 + + + embeddedsw.configuration.isPrintableDevice + 0 + + + com.altera.sopcmodel.avalon.AvalonConnectionPoint$AddressAlignment + NATIVE + false + true + false + true + + + int + 0 + false + true + false + true + + + java.math.BigInteger + 4 + true + true + false + true + + + com.altera.sopcmodel.avalon.EAddrBurstUnits + WORDS + false + true + true + true + + + boolean + false + false + true + false + true + + + java.lang.String + clk + false + true + true + true + + + java.lang.String + reset + false + true + true + true + + + int + 8 + false + true + true + true + + + com.altera.entityinterfaces.IConnectionPoint + + false + true + false + true + + + boolean + false + false + true + true + true + + + com.altera.sopcmodel.avalon.EAddrBurstUnits + WORDS + false + true + true + true + + + boolean + false + false + true + false + true + + + java.math.BigInteger + 0 + false + true + true + true + + + int + 0 + false + true + true + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + true + true + + + int + 0 + false + false + true + true + + + int + 0 + false + false + false + true + + + int + 1 + false + true + false + true + + + boolean + false + false + true + false + true + + + int + 0 + false + true + true + true + + + int + 1 + false + true + false + true + + + int + 1 + false + true + true + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + false + true + + + int + 0 + false + true + true + true + + + com.altera.sopcmodel.avalon.TimingUnits + Cycles + false + true + true + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + false + true + + + int + 0 + false + true + false + true + + + int + 0 + false + true + false + true + + + int + 0 + false + true + true + true + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + avalon + false + + address + Input + 2 + address + + + readdata + Output + 32 + readdata + + + + + + java.lang.String + + false + true + true + true + + + java.lang.String + + false + true + true + true + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + conduit + false + + in_port + Input + 18 + export + + + + + + + embeddedsw.CMacro.BIT_CLEARING_EDGE_REGISTER + 0 + + + embeddedsw.CMacro.BIT_MODIFYING_OUTPUT_REGISTER + 0 + + + embeddedsw.CMacro.CAPTURE + 0 + + + embeddedsw.CMacro.DATA_WIDTH + 3 + + + embeddedsw.CMacro.DO_TEST_BENCH_WIRING + 0 + + + embeddedsw.CMacro.DRIVEN_SIM_VALUE + 0 + + + embeddedsw.CMacro.EDGE_TYPE + NONE + + + embeddedsw.CMacro.FREQ + 50000000 + + + embeddedsw.CMacro.HAS_IN + 1 + + + embeddedsw.CMacro.HAS_OUT + 0 + + + embeddedsw.CMacro.HAS_TRI + 0 + + + embeddedsw.CMacro.IRQ_TYPE + NONE + + + embeddedsw.CMacro.RESET_VALUE + 0 + + + embeddedsw.dts.compatible + altr,pio-1.0 + + + boolean + false + false + false + true + true + + + boolean + false + false + false + true + true + + + boolean + false + false + true + true + true + + + java.lang.String + Input + false + true + true + true + + + java.lang.String + RISING + false + false + true + true + + + boolean + false + false + true + true + true + + + java.lang.String + LEVEL + false + false + true + true + + + long + 0 + false + false + true + true + + + boolean + false + false + true + true + true + + + long + 0 + false + false + true + true + + + int + 3 + false + true + true + true + + + long + 50000000 + false + true + false + true + + + boolean + false + true + true + false + true + + + boolean + false + true + true + false + true + + + boolean + true + true + true + false + true + + + boolean + false + true + true + false + true + + + boolean + false + true + true + false + true + + + java.lang.String + NONE + true + true + false + true + + + java.lang.String + NONE + true + true + false + true + + + boolean + false + true + true + false + true + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + + + + boolean + false + false + true + false + true + + + java.lang.String + + false + true + false + true + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + + java.lang.Boolean + true + true + true + false + true + + + java.lang.Long + 50000000 + true + true + false + true + + clock + false + + clk + Input + 1 + clk + + + + + + java.lang.String + clk + false + true + true + true + + + com.altera.sopcmodel.reset.Reset$Edges + DEASSERT + false + true + true + true + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + reset + false + + reset_n + Input + 1 + reset_n + + + + + + embeddedsw.configuration.isFlash + 0 + + + embeddedsw.configuration.isMemoryDevice + 0 + + + embeddedsw.configuration.isNonVolatileStorage + 0 + + + embeddedsw.configuration.isPrintableDevice + 0 + + + com.altera.sopcmodel.avalon.AvalonConnectionPoint$AddressAlignment + NATIVE + false + true + false + true + + + int + 0 + false + true + false + true + + + java.math.BigInteger + 4 + true + true + false + true + + + com.altera.sopcmodel.avalon.EAddrBurstUnits + WORDS + false + true + true + true + + + boolean + false + false + true + false + true + + + java.lang.String + clk + false + true + true + true + + + java.lang.String + reset + false + true + true + true + + + int + 8 + false + true + true + true + + + com.altera.entityinterfaces.IConnectionPoint + + false + true + false + true + + + boolean + false + false + true + true + true + + + com.altera.sopcmodel.avalon.EAddrBurstUnits + WORDS + false + true + true + true + + + boolean + false + false + true + false + true + + + java.math.BigInteger + 0 + false + true + true + true + + + int + 0 + false + true + true + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + true + true + + + int + 0 + false + false + true + true + + + int + 0 + false + false + false + true + + + int + 1 + false + true + false + true + + + boolean + false + false + true + false + true + + + int + 0 + false + true + true + true + + + int + 1 + false + true + false + true + + + int + 1 + false + true + true + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + false + true + + + int + 0 + false + true + true + true + + + com.altera.sopcmodel.avalon.TimingUnits + Cycles + false + true + true + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + false + true + + + int + 0 + false + true + false + true + + + int + 0 + false + true + false + true + + + int + 0 + false + true + true + true + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + avalon + false + + address + Input + 2 + address + + + readdata + Output + 32 + readdata + + + + + + java.lang.String + + false + true + true + true + + + java.lang.String + + false + true + true + true + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + conduit + false + + in_port + Input + 3 + export + + + + + + + embeddedsw.CMacro.BIT_CLEARING_EDGE_REGISTER + 0 + + + embeddedsw.CMacro.BIT_MODIFYING_OUTPUT_REGISTER + 0 + + + embeddedsw.CMacro.CAPTURE + 0 + + + embeddedsw.CMacro.DATA_WIDTH + 7 + + + embeddedsw.CMacro.DO_TEST_BENCH_WIRING + 0 + + + embeddedsw.CMacro.DRIVEN_SIM_VALUE + 0 + + + embeddedsw.CMacro.EDGE_TYPE + NONE + + + embeddedsw.CMacro.FREQ + 50000000 + + + embeddedsw.CMacro.HAS_IN + 0 + + + embeddedsw.CMacro.HAS_OUT + 1 + + + embeddedsw.CMacro.HAS_TRI + 0 + + + embeddedsw.CMacro.IRQ_TYPE + NONE + + + embeddedsw.CMacro.RESET_VALUE + 0 + + + embeddedsw.dts.compatible + altr,pio-1.0 + + + boolean + false + false + false + true + true + + + boolean + false + false + true + true + true + + + boolean + false + false + false + true + true + + + java.lang.String + Output + false + true + true + true + + + java.lang.String + RISING + false + false + true + true + + + boolean + false + false + false + true + true + + + java.lang.String + LEVEL + false + false + true + true + + + long + 0 + false + true + true + true + + + boolean + false + false + false + true + true + + + long + 0 + false + false + true + true + + + int + 7 + false + true + true + true + + + long + 50000000 + false + true + false + true + + + boolean + false + true + true + false + true + + + boolean + true + true + true + false + true + + + boolean + false + true + true + false + true + + + boolean + false + true + true + false + true + + + boolean + false + true + true + false + true + + + java.lang.String + NONE + true + true + false + true + + + java.lang.String + NONE + true + true + false + true + + + boolean + false + true + true + false + true + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + + + + boolean + false + false + true + false + true + + + java.lang.String + + false + true + false + true + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + + java.lang.Boolean + true + true + true + false + true + + + java.lang.Long + 50000000 + true + true + false + true + + clock + false + + clk + Input + 1 + clk + + + + + + java.lang.String + clk + false + true + true + true + + + com.altera.sopcmodel.reset.Reset$Edges + DEASSERT + false + true + true + true + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + reset + false + + reset_n + Input + 1 + reset_n + + + + + + embeddedsw.configuration.isFlash + 0 + + + embeddedsw.configuration.isMemoryDevice + 0 + + + embeddedsw.configuration.isNonVolatileStorage + 0 + + + embeddedsw.configuration.isPrintableDevice + 0 + + + com.altera.sopcmodel.avalon.AvalonConnectionPoint$AddressAlignment + NATIVE + false + true + false + true + + + int + 0 + false + true + false + true + + + java.math.BigInteger + 4 + true + true + false + true + + + com.altera.sopcmodel.avalon.EAddrBurstUnits + WORDS + false + true + true + true + + + boolean + false + false + true + false + true + + + java.lang.String + clk + false + true + true + true + + + java.lang.String + reset + false + true + true + true + + + int + 8 + false + true + true + true + + + com.altera.entityinterfaces.IConnectionPoint + + false + true + false + true + + + boolean + false + false + true + true + true + + + com.altera.sopcmodel.avalon.EAddrBurstUnits + WORDS + false + true + true + true + + + boolean + false + false + true + false + true + + + java.math.BigInteger + 0 + false + true + true + true + + + int + 0 + false + true + true + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + true + true + + + int + 0 + false + false + true + true + + + int + 0 + false + false + false + true + + + int + 1 + false + true + false + true + + + boolean + false + false + true + false + true + + + int + 0 + false + true + true + true + + + int + 1 + false + true + false + true + + + int + 1 + false + true + true + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + false + true + + + int + 0 + false + true + true + true + + + com.altera.sopcmodel.avalon.TimingUnits + Cycles + false + true + true + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + false + true + + + int + 0 + false + true + false + true + + + int + 0 + false + true + false + true + + + int + 0 + false + true + true + true + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + avalon + false + + address + Input + 2 + address + + + write_n + Input + 1 + write_n + + + writedata + Input + 32 + writedata + + + chipselect + Input + 1 + chipselect + + + readdata + Output + 32 + readdata + + + + + + java.lang.String + + false + true + true + true + + + java.lang.String + + false + true + true + true + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + conduit + false + + out_port + Output + 7 + export + + + + + + + embeddedsw.CMacro.BIT_CLEARING_EDGE_REGISTER + 0 + + + embeddedsw.CMacro.BIT_MODIFYING_OUTPUT_REGISTER + 0 + + + embeddedsw.CMacro.CAPTURE + 0 + + + embeddedsw.CMacro.DATA_WIDTH + 7 + + + embeddedsw.CMacro.DO_TEST_BENCH_WIRING + 0 + + + embeddedsw.CMacro.DRIVEN_SIM_VALUE + 0 + + + embeddedsw.CMacro.EDGE_TYPE + NONE + + + embeddedsw.CMacro.FREQ + 50000000 + + + embeddedsw.CMacro.HAS_IN + 0 + + + embeddedsw.CMacro.HAS_OUT + 1 + + + embeddedsw.CMacro.HAS_TRI + 0 + + + embeddedsw.CMacro.IRQ_TYPE + NONE + + + embeddedsw.CMacro.RESET_VALUE + 0 + + + embeddedsw.dts.compatible + altr,pio-1.0 + + + boolean + false + false + false + true + true + + + boolean + false + false + true + true + true + + + boolean + false + false + false + true + true + + + java.lang.String + Output + false + true + true + true + + + java.lang.String + RISING + false + false + true + true + + + boolean + false + false + false + true + true + + + java.lang.String + LEVEL + false + false + true + true + + + long + 0 + false + true + true + true + + + boolean + false + false + false + true + true + + + long + 0 + false + false + true + true + + + int + 7 + false + true + true + true + + + long + 50000000 + false + true + false + true + + + boolean + false + true + true + false + true + + + boolean + true + true + true + false + true + + + boolean + false + true + true + false + true + + + boolean + false + true + true + false + true + + + boolean + false + true + true + false + true + + + java.lang.String + NONE + true + true + false + true + + + java.lang.String + NONE + true + true + false + true + + + boolean + false + true + true + false + true + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + + + + boolean + false + false + true + false + true + + + java.lang.String + + false + true + false + true + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + + java.lang.Boolean + true + true + true + false + true + + + java.lang.Long + 50000000 + true + true + false + true + + clock + false + + clk + Input + 1 + clk + + + + + + java.lang.String + clk + false + true + true + true + + + com.altera.sopcmodel.reset.Reset$Edges + DEASSERT + false + true + true + true + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + reset + false + + reset_n + Input + 1 + reset_n + + + + + + embeddedsw.configuration.isFlash + 0 + + + embeddedsw.configuration.isMemoryDevice + 0 + + + embeddedsw.configuration.isNonVolatileStorage + 0 + + + embeddedsw.configuration.isPrintableDevice + 0 + + + com.altera.sopcmodel.avalon.AvalonConnectionPoint$AddressAlignment + NATIVE + false + true + false + true + + + int + 0 + false + true + false + true + + + java.math.BigInteger + 4 + true + true + false + true + + + com.altera.sopcmodel.avalon.EAddrBurstUnits + WORDS + false + true + true + true + + + boolean + false + false + true + false + true + + + java.lang.String + clk + false + true + true + true + + + java.lang.String + reset + false + true + true + true + + + int + 8 + false + true + true + true + + + com.altera.entityinterfaces.IConnectionPoint + + false + true + false + true + + + boolean + false + false + true + true + true + + + com.altera.sopcmodel.avalon.EAddrBurstUnits + WORDS + false + true + true + true + + + boolean + false + false + true + false + true + + + java.math.BigInteger + 0 + false + true + true + true + + + int + 0 + false + true + true + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + true + true + + + int + 0 + false + false + true + true + + + int + 0 + false + false + false + true + + + int + 1 + false + true + false + true + + + boolean + false + false + true + false + true + + + int + 0 + false + true + true + true + + + int + 1 + false + true + false + true + + + int + 1 + false + true + true + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + false + true + + + int + 0 + false + true + true + true + + + com.altera.sopcmodel.avalon.TimingUnits + Cycles + false + true + true + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + false + true + + + int + 0 + false + true + false + true + + + int + 0 + false + true + false + true + + + int + 0 + false + true + true + true + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + avalon + false + + address + Input + 2 + address + + + write_n + Input + 1 + write_n + + + writedata + Input + 32 + writedata + + + chipselect + Input + 1 + chipselect + + + readdata + Output + 32 + readdata + + + + + + java.lang.String + + false + true + true + true + + + java.lang.String + + false + true + true + true + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + conduit + false + + out_port + Output + 7 + export + + + + + + + embeddedsw.CMacro.BIT_CLEARING_EDGE_REGISTER + 0 + + + embeddedsw.CMacro.BIT_MODIFYING_OUTPUT_REGISTER + 0 + + + embeddedsw.CMacro.CAPTURE + 0 + + + embeddedsw.CMacro.DATA_WIDTH + 7 + + + embeddedsw.CMacro.DO_TEST_BENCH_WIRING + 0 + + + embeddedsw.CMacro.DRIVEN_SIM_VALUE + 0 + + + embeddedsw.CMacro.EDGE_TYPE + NONE + + + embeddedsw.CMacro.FREQ + 50000000 + + + embeddedsw.CMacro.HAS_IN + 0 + + + embeddedsw.CMacro.HAS_OUT + 1 + + + embeddedsw.CMacro.HAS_TRI + 0 + + + embeddedsw.CMacro.IRQ_TYPE + NONE + + + embeddedsw.CMacro.RESET_VALUE + 0 + + + embeddedsw.dts.compatible + altr,pio-1.0 + + + boolean + false + false + false + true + true + + + boolean + false + false + true + true + true + + + boolean + false + false + false + true + true + + + java.lang.String + Output + false + true + true + true + + + java.lang.String + RISING + false + false + true + true + + + boolean + false + false + false + true + true + + + java.lang.String + LEVEL + false + false + true + true + + + long + 0 + false + true + true + true + + + boolean + false + false + false + true + true + + + long + 0 + false + false + true + true + + + int + 7 + false + true + true + true + + + long + 50000000 + false + true + false + true + + + boolean + false + true + true + false + true + + + boolean + true + true + true + false + true + + + boolean + false + true + true + false + true + + + boolean + false + true + true + false + true + + + boolean + false + true + true + false + true + + + java.lang.String + NONE + true + true + false + true + + + java.lang.String + NONE + true + true + false + true + + + boolean + false + true + true + false + true + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + + + + boolean + false + false + true + false + true + + + java.lang.String + + false + true + false + true + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + + java.lang.Boolean + true + true + true + false + true + + + java.lang.Long + 50000000 + true + true + false + true + + clock + false + + clk + Input + 1 + clk + + + + + + java.lang.String + clk + false + true + true + true + + + com.altera.sopcmodel.reset.Reset$Edges + DEASSERT + false + true + true + true + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + reset + false + + reset_n + Input + 1 + reset_n + + + + + + embeddedsw.configuration.isFlash + 0 + + + embeddedsw.configuration.isMemoryDevice + 0 + + + embeddedsw.configuration.isNonVolatileStorage + 0 + + + embeddedsw.configuration.isPrintableDevice + 0 + + + com.altera.sopcmodel.avalon.AvalonConnectionPoint$AddressAlignment + NATIVE + false + true + false + true + + + int + 0 + false + true + false + true + + + java.math.BigInteger + 4 + true + true + false + true + + + com.altera.sopcmodel.avalon.EAddrBurstUnits + WORDS + false + true + true + true + + + boolean + false + false + true + false + true + + + java.lang.String + clk + false + true + true + true + + + java.lang.String + reset + false + true + true + true + + + int + 8 + false + true + true + true + + + com.altera.entityinterfaces.IConnectionPoint + + false + true + false + true + + + boolean + false + false + true + true + true + + + com.altera.sopcmodel.avalon.EAddrBurstUnits + WORDS + false + true + true + true + + + boolean + false + false + true + false + true + + + java.math.BigInteger + 0 + false + true + true + true + + + int + 0 + false + true + true + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + true + true + + + int + 0 + false + false + true + true + + + int + 0 + false + false + false + true + + + int + 1 + false + true + false + true + + + boolean + false + false + true + false + true + + + int + 0 + false + true + true + true + + + int + 1 + false + true + false + true + + + int + 1 + false + true + true + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + false + true + + + int + 0 + false + true + true + true + + + com.altera.sopcmodel.avalon.TimingUnits + Cycles + false + true + true + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + false + true + + + int + 0 + false + true + false + true + + + int + 0 + false + true + false + true + + + int + 0 + false + true + true + true + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + avalon + false + + address + Input + 2 + address + + + write_n + Input + 1 + write_n + + + writedata + Input + 32 + writedata + + + chipselect + Input + 1 + chipselect + + + readdata + Output + 32 + readdata + + + + + + java.lang.String + + false + true + true + true + + + java.lang.String + + false + true + true + true + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + conduit + false + + out_port + Output + 7 + export + + + + + + + embeddedsw.CMacro.BIT_CLEARING_EDGE_REGISTER + 0 + + + embeddedsw.CMacro.BIT_MODIFYING_OUTPUT_REGISTER + 0 + + + embeddedsw.CMacro.CAPTURE + 0 + + + embeddedsw.CMacro.DATA_WIDTH + 7 + + + embeddedsw.CMacro.DO_TEST_BENCH_WIRING + 0 + + + embeddedsw.CMacro.DRIVEN_SIM_VALUE + 0 + + + embeddedsw.CMacro.EDGE_TYPE + NONE + + + embeddedsw.CMacro.FREQ + 50000000 + + + embeddedsw.CMacro.HAS_IN + 0 + + + embeddedsw.CMacro.HAS_OUT + 1 + + + embeddedsw.CMacro.HAS_TRI + 0 + + + embeddedsw.CMacro.IRQ_TYPE + NONE + + + embeddedsw.CMacro.RESET_VALUE + 0 + + + embeddedsw.dts.compatible + altr,pio-1.0 + + + boolean + false + false + false + true + true + + + boolean + false + false + true + true + true + + + boolean + false + false + false + true + true + + + java.lang.String + Output + false + true + true + true + + + java.lang.String + RISING + false + false + true + true + + + boolean + false + false + false + true + true + + + java.lang.String + LEVEL + false + false + true + true + + + long + 0 + false + true + true + true + + + boolean + false + false + false + true + true + + + long + 0 + false + false + true + true + + + int + 7 + false + true + true + true + + + long + 50000000 + false + true + false + true + + + boolean + false + true + true + false + true + + + boolean + true + true + true + false + true + + + boolean + false + true + true + false + true + + + boolean + false + true + true + false + true + + + boolean + false + true + true + false + true + + + java.lang.String + NONE + true + true + false + true + + + java.lang.String + NONE + true + true + false + true + + + boolean + false + true + true + false + true + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + + + + boolean + false + false + true + false + true + + + java.lang.String + + false + true + false + true + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + + java.lang.Boolean + true + true + true + false + true + + + java.lang.Long + 50000000 + true + true + false + true + + clock + false + + clk + Input + 1 + clk + + + + + + java.lang.String + clk + false + true + true + true + + + com.altera.sopcmodel.reset.Reset$Edges + DEASSERT + false + true + true + true + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + reset + false + + reset_n + Input + 1 + reset_n + + + + + + embeddedsw.configuration.isFlash + 0 + + + embeddedsw.configuration.isMemoryDevice + 0 + + + embeddedsw.configuration.isNonVolatileStorage + 0 + + + embeddedsw.configuration.isPrintableDevice + 0 + + + com.altera.sopcmodel.avalon.AvalonConnectionPoint$AddressAlignment + NATIVE + false + true + false + true + + + int + 0 + false + true + false + true + + + java.math.BigInteger + 4 + true + true + false + true + + + com.altera.sopcmodel.avalon.EAddrBurstUnits + WORDS + false + true + true + true + + + boolean + false + false + true + false + true + + + java.lang.String + clk + false + true + true + true + + + java.lang.String + reset + false + true + true + true + + + int + 8 + false + true + true + true + + + com.altera.entityinterfaces.IConnectionPoint + + false + true + false + true + + + boolean + false + false + true + true + true + + + com.altera.sopcmodel.avalon.EAddrBurstUnits + WORDS + false + true + true + true + + + boolean + false + false + true + false + true + + + java.math.BigInteger + 0 + false + true + true + true + + + int + 0 + false + true + true + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + true + true + + + int + 0 + false + false + true + true + + + int + 0 + false + false + false + true + + + int + 1 + false + true + false + true + + + boolean + false + false + true + false + true + + + int + 0 + false + true + true + true + + + int + 1 + false + true + false + true + + + int + 1 + false + true + true + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + false + true + + + int + 0 + false + true + true + true + + + com.altera.sopcmodel.avalon.TimingUnits + Cycles + false + true + true + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + false + true + + + int + 0 + false + true + false + true + + + int + 0 + false + true + false + true + + + int + 0 + false + true + true + true + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + avalon + false + + address + Input + 2 + address + + + write_n + Input + 1 + write_n + + + writedata + Input + 32 + writedata + + + chipselect + Input + 1 + chipselect + + + readdata + Output + 32 + readdata + + + + + + java.lang.String + + false + true + true + true + + + java.lang.String + + false + true + true + true + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + conduit + false + + out_port + Output + 7 + export + + + + + + + embeddedsw.CMacro.BIT_CLEARING_EDGE_REGISTER + 0 + + + embeddedsw.CMacro.BIT_MODIFYING_OUTPUT_REGISTER + 0 + + + embeddedsw.CMacro.CAPTURE + 0 + + + embeddedsw.CMacro.DATA_WIDTH + 7 + + + embeddedsw.CMacro.DO_TEST_BENCH_WIRING + 0 + + + embeddedsw.CMacro.DRIVEN_SIM_VALUE + 0 + + + embeddedsw.CMacro.EDGE_TYPE + NONE + + + embeddedsw.CMacro.FREQ + 50000000 + + + embeddedsw.CMacro.HAS_IN + 0 + + + embeddedsw.CMacro.HAS_OUT + 1 + + + embeddedsw.CMacro.HAS_TRI + 0 + + + embeddedsw.CMacro.IRQ_TYPE + NONE + + + embeddedsw.CMacro.RESET_VALUE + 0 + + + embeddedsw.dts.compatible + altr,pio-1.0 + + + boolean + false + false + false + true + true + + + boolean + false + false + true + true + true + + + boolean + false + false + false + true + true + + + java.lang.String + Output + false + true + true + true + + + java.lang.String + RISING + false + false + true + true + + + boolean + false + false + false + true + true + + + java.lang.String + LEVEL + false + false + true + true + + + long + 0 + false + true + true + true + + + boolean + false + false + false + true + true + + + long + 0 + false + false + true + true + + + int + 7 + false + true + true + true + + + long + 50000000 + false + true + false + true + + + boolean + false + true + true + false + true + + + boolean + true + true + true + false + true + + + boolean + false + true + true + false + true + + + boolean + false + true + true + false + true + + + boolean + false + true + true + false + true + + + java.lang.String + NONE + true + true + false + true + + + java.lang.String + NONE + true + true + false + true + + + boolean + false + true + true + false + true + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + + + + boolean + false + false + true + false + true + + + java.lang.String + + false + true + false + true + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + + java.lang.Boolean + true + true + true + false + true + + + java.lang.Long + 50000000 + true + true + false + true + + clock + false + + clk + Input + 1 + clk + + + + + + java.lang.String + clk + false + true + true + true + + + com.altera.sopcmodel.reset.Reset$Edges + DEASSERT + false + true + true + true + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + reset + false + + reset_n + Input + 1 + reset_n + + + + + + embeddedsw.configuration.isFlash + 0 + + + embeddedsw.configuration.isMemoryDevice + 0 + + + embeddedsw.configuration.isNonVolatileStorage + 0 + + + embeddedsw.configuration.isPrintableDevice + 0 + + + com.altera.sopcmodel.avalon.AvalonConnectionPoint$AddressAlignment + NATIVE + false + true + false + true + + + int + 0 + false + true + false + true + + + java.math.BigInteger + 4 + true + true + false + true + + + com.altera.sopcmodel.avalon.EAddrBurstUnits + WORDS + false + true + true + true + + + boolean + false + false + true + false + true + + + java.lang.String + clk + false + true + true + true + + + java.lang.String + reset + false + true + true + true + + + int + 8 + false + true + true + true + + + com.altera.entityinterfaces.IConnectionPoint + + false + true + false + true + + + boolean + false + false + true + true + true + + + com.altera.sopcmodel.avalon.EAddrBurstUnits + WORDS + false + true + true + true + + + boolean + false + false + true + false + true + + + java.math.BigInteger + 0 + false + true + true + true + + + int + 0 + false + true + true + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + true + true + + + int + 0 + false + false + true + true + + + int + 0 + false + false + false + true + + + int + 1 + false + true + false + true + + + boolean + false + false + true + false + true + + + int + 0 + false + true + true + true + + + int + 1 + false + true + false + true + + + int + 1 + false + true + true + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + false + true + + + int + 0 + false + true + true + true + + + com.altera.sopcmodel.avalon.TimingUnits + Cycles + false + true + true + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + false + true + + + int + 0 + false + true + false + true + + + int + 0 + false + true + false + true + + + int + 0 + false + true + true + true + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + avalon + false + + address + Input + 2 + address + + + write_n + Input + 1 + write_n + + + writedata + Input + 32 + writedata + + + chipselect + Input + 1 + chipselect + + + readdata + Output + 32 + readdata + + + + + + java.lang.String + + false + true + true + true + + + java.lang.String + + false + true + true + true + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + conduit + false + + out_port + Output + 7 + export + + + + + + + embeddedsw.CMacro.BIT_CLEARING_EDGE_REGISTER + 0 + + + embeddedsw.CMacro.BIT_MODIFYING_OUTPUT_REGISTER + 0 + + + embeddedsw.CMacro.CAPTURE + 0 + + + embeddedsw.CMacro.DATA_WIDTH + 7 + + + embeddedsw.CMacro.DO_TEST_BENCH_WIRING + 0 + + + embeddedsw.CMacro.DRIVEN_SIM_VALUE + 0 + + + embeddedsw.CMacro.EDGE_TYPE + NONE + + + embeddedsw.CMacro.FREQ + 50000000 + + + embeddedsw.CMacro.HAS_IN + 0 + + + embeddedsw.CMacro.HAS_OUT + 1 + + + embeddedsw.CMacro.HAS_TRI + 0 + + + embeddedsw.CMacro.IRQ_TYPE + NONE + + + embeddedsw.CMacro.RESET_VALUE + 0 + + + embeddedsw.dts.compatible + altr,pio-1.0 + + + boolean + false + false + false + true + true + + + boolean + false + false + true + true + true + + + boolean + false + false + false + true + true + + + java.lang.String + Output + false + true + true + true + + + java.lang.String + RISING + false + false + true + true + + + boolean + false + false + false + true + true + + + java.lang.String + LEVEL + false + false + true + true + + + long + 0 + false + true + true + true + + + boolean + false + false + false + true + true + + + long + 0 + false + false + true + true + + + int + 7 + false + true + true + true + + + long + 50000000 + false + true + false + true + + + boolean + false + true + true + false + true + + + boolean + true + true + true + false + true + + + boolean + false + true + true + false + true + + + boolean + false + true + true + false + true + + + boolean + false + true + true + false + true + + + java.lang.String + NONE + true + true + false + true + + + java.lang.String + NONE + true + true + false + true + + + boolean + false + true + true + false + true + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + + + + boolean + false + false + true + false + true + + + java.lang.String + + false + true + false + true + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + + java.lang.Boolean + true + true + true + false + true + + + java.lang.Long + 50000000 + true + true + false + true + + clock + false + + clk + Input + 1 + clk + + + + + + java.lang.String + clk + false + true + true + true + + + com.altera.sopcmodel.reset.Reset$Edges + DEASSERT + false + true + true + true + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + reset + false + + reset_n + Input + 1 + reset_n + + + + + + embeddedsw.configuration.isFlash + 0 + + + embeddedsw.configuration.isMemoryDevice + 0 + + + embeddedsw.configuration.isNonVolatileStorage + 0 + + + embeddedsw.configuration.isPrintableDevice + 0 + + + com.altera.sopcmodel.avalon.AvalonConnectionPoint$AddressAlignment + NATIVE + false + true + false + true + + + int + 0 + false + true + false + true + + + java.math.BigInteger + 4 + true + true + false + true + + + com.altera.sopcmodel.avalon.EAddrBurstUnits + WORDS + false + true + true + true + + + boolean + false + false + true + false + true + + + java.lang.String + clk + false + true + true + true + + + java.lang.String + reset + false + true + true + true + + + int + 8 + false + true + true + true + + + com.altera.entityinterfaces.IConnectionPoint + + false + true + false + true + + + boolean + false + false + true + true + true + + + com.altera.sopcmodel.avalon.EAddrBurstUnits + WORDS + false + true + true + true + + + boolean + false + false + true + false + true + + + java.math.BigInteger + 0 + false + true + true + true + + + int + 0 + false + true + true + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + true + true + + + int + 0 + false + false + true + true + + + int + 0 + false + false + false + true + + + int + 1 + false + true + false + true + + + boolean + false + false + true + false + true + + + int + 0 + false + true + true + true + + + int + 1 + false + true + false + true + + + int + 1 + false + true + true + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + false + true + + + int + 0 + false + true + true + true + + + com.altera.sopcmodel.avalon.TimingUnits + Cycles + false + true + true + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + false + true + + + int + 0 + false + true + false + true + + + int + 0 + false + true + false + true + + + int + 0 + false + true + true + true + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + avalon + false + + address + Input + 2 + address + + + write_n + Input + 1 + write_n + + + writedata + Input + 32 + writedata + + + chipselect + Input + 1 + chipselect + + + readdata + Output + 32 + readdata + + + + + + java.lang.String + + false + true + true + true + + + java.lang.String + + false + true + true + true + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + conduit + false + + out_port + Output + 7 + export + + + + + + + embeddedsw.CMacro.BIT_CLEARING_EDGE_REGISTER + 0 + + + embeddedsw.CMacro.BIT_MODIFYING_OUTPUT_REGISTER + 0 + + + embeddedsw.CMacro.CAPTURE + 0 + + + embeddedsw.CMacro.DATA_WIDTH + 7 + + + embeddedsw.CMacro.DO_TEST_BENCH_WIRING + 0 + + + embeddedsw.CMacro.DRIVEN_SIM_VALUE + 0 + + + embeddedsw.CMacro.EDGE_TYPE + NONE + + + embeddedsw.CMacro.FREQ + 50000000 + + + embeddedsw.CMacro.HAS_IN + 0 + + + embeddedsw.CMacro.HAS_OUT + 1 + + + embeddedsw.CMacro.HAS_TRI + 0 + + + embeddedsw.CMacro.IRQ_TYPE + NONE + + + embeddedsw.CMacro.RESET_VALUE + 0 + + + embeddedsw.dts.compatible + altr,pio-1.0 + + + boolean + false + false + false + true + true + + + boolean + false + false + true + true + true + + + boolean + false + false + false + true + true + + + java.lang.String + Output + false + true + true + true + + + java.lang.String + RISING + false + false + true + true + + + boolean + false + false + false + true + true + + + java.lang.String + LEVEL + false + false + true + true + + + long + 0 + false + true + true + true + + + boolean + false + false + false + true + true + + + long + 0 + false + false + true + true + + + int + 7 + false + true + true + true + + + long + 50000000 + false + true + false + true + + + boolean + false + true + true + false + true + + + boolean + true + true + true + false + true + + + boolean + false + true + true + false + true + + + boolean + false + true + true + false + true + + + boolean + false + true + true + false + true + + + java.lang.String + NONE + true + true + false + true + + + java.lang.String + NONE + true + true + false + true + + + boolean + false + true + true + false + true + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + + + + boolean + false + false + true + false + true + + + java.lang.String + + false + true + false + true + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + + java.lang.Boolean + true + true + true + false + true + + + java.lang.Long + 50000000 + true + true + false + true + + clock + false + + clk + Input + 1 + clk + + + + + + java.lang.String + clk + false + true + true + true + + + com.altera.sopcmodel.reset.Reset$Edges + DEASSERT + false + true + true + true + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + reset + false + + reset_n + Input + 1 + reset_n + + + + + + embeddedsw.configuration.isFlash + 0 + + + embeddedsw.configuration.isMemoryDevice + 0 + + + embeddedsw.configuration.isNonVolatileStorage + 0 + + + embeddedsw.configuration.isPrintableDevice + 0 + + + com.altera.sopcmodel.avalon.AvalonConnectionPoint$AddressAlignment + NATIVE + false + true + false + true + + + int + 0 + false + true + false + true + + + java.math.BigInteger + 4 + true + true + false + true + + + com.altera.sopcmodel.avalon.EAddrBurstUnits + WORDS + false + true + true + true + + + boolean + false + false + true + false + true + + + java.lang.String + clk + false + true + true + true + + + java.lang.String + reset + false + true + true + true + + + int + 8 + false + true + true + true + + + com.altera.entityinterfaces.IConnectionPoint + + false + true + false + true + + + boolean + false + false + true + true + true + + + com.altera.sopcmodel.avalon.EAddrBurstUnits + WORDS + false + true + true + true + + + boolean + false + false + true + false + true + + + java.math.BigInteger + 0 + false + true + true + true + + + int + 0 + false + true + true + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + true + true + + + int + 0 + false + false + true + true + + + int + 0 + false + false + false + true + + + int + 1 + false + true + false + true + + + boolean + false + false + true + false + true + + + int + 0 + false + true + true + true + + + int + 1 + false + true + false + true + + + int + 1 + false + true + true + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + false + true + + + int + 0 + false + true + true + true + + + com.altera.sopcmodel.avalon.TimingUnits + Cycles + false + true + true + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + false + true + + + int + 0 + false + true + false + true + + + int + 0 + false + true + false + true + + + int + 0 + false + true + true + true + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + avalon + false + + address + Input + 2 + address + + + write_n + Input + 1 + write_n + + + writedata + Input + 32 + writedata + + + chipselect + Input + 1 + chipselect + + + readdata + Output + 32 + readdata + + + + + + java.lang.String + + false + true + true + true + + + java.lang.String + + false + true + true + true + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + conduit + false + + out_port + Output + 7 + export + + + + + + + embeddedsw.CMacro.BIT_CLEARING_EDGE_REGISTER + 0 + + + embeddedsw.CMacro.BIT_MODIFYING_OUTPUT_REGISTER + 0 + + + embeddedsw.CMacro.CAPTURE + 0 + + + embeddedsw.CMacro.DATA_WIDTH + 7 + + + embeddedsw.CMacro.DO_TEST_BENCH_WIRING + 0 + + + embeddedsw.CMacro.DRIVEN_SIM_VALUE + 0 + + + embeddedsw.CMacro.EDGE_TYPE + NONE + + + embeddedsw.CMacro.FREQ + 50000000 + + + embeddedsw.CMacro.HAS_IN + 0 + + + embeddedsw.CMacro.HAS_OUT + 1 + + + embeddedsw.CMacro.HAS_TRI + 0 + + + embeddedsw.CMacro.IRQ_TYPE + NONE + + + embeddedsw.CMacro.RESET_VALUE + 0 + + + embeddedsw.dts.compatible + altr,pio-1.0 + + + boolean + false + false + false + true + true + + + boolean + false + false + true + true + true + + + boolean + false + false + false + true + true + + + java.lang.String + Output + false + true + true + true + + + java.lang.String + RISING + false + false + true + true + + + boolean + false + false + false + true + true + + + java.lang.String + LEVEL + false + false + true + true + + + long + 0 + false + true + true + true + + + boolean + false + false + false + true + true + + + long + 0 + false + false + true + true + + + int + 7 + false + true + true + true + + + long + 50000000 + false + true + false + true + + + boolean + false + true + true + false + true + + + boolean + true + true + true + false + true + + + boolean + false + true + true + false + true + + + boolean + false + true + true + false + true + + + boolean + false + true + true + false + true + + + java.lang.String + NONE + true + true + false + true + + + java.lang.String + NONE + true + true + false + true + + + boolean + false + true + true + false + true + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + + + + boolean + false + false + true + false + true + + + java.lang.String + + false + true + false + true + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + + java.lang.Boolean + true + true + true + false + true + + + java.lang.Long + 50000000 + true + true + false + true + + clock + false + + clk + Input + 1 + clk + + + + + + java.lang.String + clk + false + true + true + true + + + com.altera.sopcmodel.reset.Reset$Edges + DEASSERT + false + true + true + true + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + reset + false + + reset_n + Input + 1 + reset_n + + + + + + embeddedsw.configuration.isFlash + 0 + + + embeddedsw.configuration.isMemoryDevice + 0 + + + embeddedsw.configuration.isNonVolatileStorage + 0 + + + embeddedsw.configuration.isPrintableDevice + 0 + + + com.altera.sopcmodel.avalon.AvalonConnectionPoint$AddressAlignment + NATIVE + false + true + false + true + + + int + 0 + false + true + false + true + + + java.math.BigInteger + 4 + true + true + false + true + + + com.altera.sopcmodel.avalon.EAddrBurstUnits + WORDS + false + true + true + true + + + boolean + false + false + true + false + true + + + java.lang.String + clk + false + true + true + true + + + java.lang.String + reset + false + true + true + true + + + int + 8 + false + true + true + true + + + com.altera.entityinterfaces.IConnectionPoint + + false + true + false + true + + + boolean + false + false + true + true + true + + + com.altera.sopcmodel.avalon.EAddrBurstUnits + WORDS + false + true + true + true + + + boolean + false + false + true + false + true + + + java.math.BigInteger + 0 + false + true + true + true + + + int + 0 + false + true + true + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + true + true + + + int + 0 + false + false + true + true + + + int + 0 + false + false + false + true + + + int + 1 + false + true + false + true + + + boolean + false + false + true + false + true + + + int + 0 + false + true + true + true + + + int + 1 + false + true + false + true + + + int + 1 + false + true + true + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + false + true + + + int + 0 + false + true + true + true + + + com.altera.sopcmodel.avalon.TimingUnits + Cycles + false + true + true + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + false + true + + + int + 0 + false + true + false + true + + + int + 0 + false + true + false + true + + + int + 0 + false + true + true + true + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + avalon + false + + address + Input + 2 + address + + + write_n + Input + 1 + write_n + + + writedata + Input + 32 + writedata + + + chipselect + Input + 1 + chipselect + + + readdata + Output + 32 + readdata + + + + + + java.lang.String + + false + true + true + true + + + java.lang.String + + false + true + true + true + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + conduit + false + + out_port + Output + 7 + export + + + + + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + + + + java.lang.String + clk + false + true + true + true + + + com.altera.sopcmodel.reset.Reset$Edges + DEASSERT + false + true + true + true + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + reset + false + + reset_n + Input + 1 + reset_n + + + + + + boolean + false + false + true + false + true + + + java.lang.String + + false + true + false + true + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + clock + false + + clk + Input + 1 + clk + + + + + + embeddedsw.configuration.isFlash + 0 + + + embeddedsw.configuration.isMemoryDevice + 0 + + + embeddedsw.configuration.isNonVolatileStorage + 0 + + + embeddedsw.configuration.isPrintableDevice + 1 + + + com.altera.sopcmodel.avalon.AvalonConnectionPoint$AddressAlignment + NATIVE + false + true + false + true + + + int + 0 + false + true + false + true + + + java.math.BigInteger + 4 + true + true + false + true + + + com.altera.sopcmodel.avalon.EAddrBurstUnits + WORDS + false + true + true + true + + + boolean + false + false + true + false + true + + + java.lang.String + clk + false + true + true + true + + + java.lang.String + reset + false + true + true + true + + + int + 8 + false + true + true + true + + + com.altera.entityinterfaces.IConnectionPoint + + false + true + false + true + + + boolean + false + false + true + true + true + + + com.altera.sopcmodel.avalon.EAddrBurstUnits + WORDS + false + true + true + true + + + boolean + false + false + true + false + true + + + java.math.BigInteger + 0 + false + true + true + true + + + int + 250 + false + true + true + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + true + true + + + int + 0 + false + false + true + true + + + int + 0 + false + false + false + true + + + int + 1 + false + true + false + true + + + boolean + true + false + true + false + true + + + int + 0 + false + true + true + true + + + int + 250 + false + true + false + true + + + int + 250 + false + true + true + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + false + true + + + int + 250 + false + true + true + true + + + com.altera.sopcmodel.avalon.TimingUnits + Nanoseconds + false + true + true + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + false + true + + + int + 0 + false + true + false + true + + + int + 250 + false + true + false + true + + + int + 250 + false + true + true + true + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + avalon + false + + begintransfer + Input + 1 + begintransfer + + + read + Input + 1 + read + + + write + Input + 1 + write + + + readdata + Output + 8 + readdata + + + writedata + Input + 8 + writedata + + + address + Input + 2 + address + + + + + + java.lang.String + + false + true + true + true + + + java.lang.String + + false + true + true + true + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + conduit + false + + LCD_RS + Output + 1 + export + + + LCD_RW + Output + 1 + export + + + LCD_data + Bidir + 8 + export + + + LCD_E + Output + 1 + export + + + + + + + embeddedsw.CMacro.BIT_CLEARING_EDGE_REGISTER + 0 + + + embeddedsw.CMacro.BIT_MODIFYING_OUTPUT_REGISTER + 0 + + + embeddedsw.CMacro.CAPTURE + 0 + + + embeddedsw.CMacro.DATA_WIDTH + 1 + + + embeddedsw.CMacro.DO_TEST_BENCH_WIRING + 0 + + + embeddedsw.CMacro.DRIVEN_SIM_VALUE + 0 + + + embeddedsw.CMacro.EDGE_TYPE + NONE + + + embeddedsw.CMacro.FREQ + 50000000 + + + embeddedsw.CMacro.HAS_IN + 0 + + + embeddedsw.CMacro.HAS_OUT + 1 + + + embeddedsw.CMacro.HAS_TRI + 0 + + + embeddedsw.CMacro.IRQ_TYPE + NONE + + + embeddedsw.CMacro.RESET_VALUE + 0 + + + embeddedsw.dts.compatible + altr,pio-1.0 + + + boolean + false + false + false + true + true + + + boolean + false + false + true + true + true + + + boolean + false + false + false + true + true + + + java.lang.String + Output + false + true + true + true + + + java.lang.String + RISING + false + false + true + true + + + boolean + false + false + false + true + true + + + java.lang.String + LEVEL + false + false + true + true + + + long + 0 + false + true + true + true + + + boolean + false + false + false + true + true + + + long + 0 + false + false + true + true + + + int + 1 + false + true + true + true + + + long + 50000000 + false + true + false + true + + + boolean + false + true + true + false + true + + + boolean + true + true + true + false + true + + + boolean + false + true + true + false + true + + + boolean + false + true + true + false + true + + + boolean + false + true + true + false + true + + + java.lang.String + NONE + true + true + false + true + + + java.lang.String + NONE + true + true + false + true + + + boolean + false + true + true + false + true + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + + + + boolean + false + false + true + false + true + + + java.lang.String + + false + true + false + true + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + + java.lang.Boolean + true + true + true + false + true + + + java.lang.Long + 50000000 + true + true + false + true + + clock + false + + clk + Input + 1 + clk + + + + + + java.lang.String + clk + false + true + true + true + + + com.altera.sopcmodel.reset.Reset$Edges + DEASSERT + false + true + true + true + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + reset + false + + reset_n + Input + 1 + reset_n + + + + + + embeddedsw.configuration.isFlash + 0 + + + embeddedsw.configuration.isMemoryDevice + 0 + + + embeddedsw.configuration.isNonVolatileStorage + 0 + + + embeddedsw.configuration.isPrintableDevice + 0 + + + com.altera.sopcmodel.avalon.AvalonConnectionPoint$AddressAlignment + NATIVE + false + true + false + true + + + int + 0 + false + true + false + true + + + java.math.BigInteger + 4 + true + true + false + true + + + com.altera.sopcmodel.avalon.EAddrBurstUnits + WORDS + false + true + true + true + + + boolean + false + false + true + false + true + + + java.lang.String + clk + false + true + true + true + + + java.lang.String + reset + false + true + true + true + + + int + 8 + false + true + true + true + + + com.altera.entityinterfaces.IConnectionPoint + + false + true + false + true + + + boolean + false + false + true + true + true + + + com.altera.sopcmodel.avalon.EAddrBurstUnits + WORDS + false + true + true + true + + + boolean + false + false + true + false + true + + + java.math.BigInteger + 0 + false + true + true + true + + + int + 0 + false + true + true + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + true + true + + + int + 0 + false + false + true + true + + + int + 0 + false + false + false + true + + + int + 1 + false + true + false + true + + + boolean + false + false + true + false + true + + + int + 0 + false + true + true + true + + + int + 1 + false + true + false + true + + + int + 1 + false + true + true + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + false + true + + + int + 0 + false + true + true + true + + + com.altera.sopcmodel.avalon.TimingUnits + Cycles + false + true + true + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + false + true + + + int + 0 + false + true + false + true + + + int + 0 + false + true + false + true + + + int + 0 + false + true + true + true + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + avalon + false + + address + Input + 2 + address + + + write_n + Input + 1 + write_n + + + writedata + Input + 32 + writedata + + + chipselect + Input + 1 + chipselect + + + readdata + Output + 32 + readdata + + + + + + java.lang.String + + false + true + true + true + + + java.lang.String + + false + true + true + true + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + conduit + false + + out_port + Output + 1 + export + + + + + + + embeddedsw.CMacro.BIT_CLEARING_EDGE_REGISTER + 0 + + + embeddedsw.CMacro.BIT_MODIFYING_OUTPUT_REGISTER + 0 + + + embeddedsw.CMacro.CAPTURE + 0 + + + embeddedsw.CMacro.DATA_WIDTH + 1 + + + embeddedsw.CMacro.DO_TEST_BENCH_WIRING + 0 + + + embeddedsw.CMacro.DRIVEN_SIM_VALUE + 0 + + + embeddedsw.CMacro.EDGE_TYPE + NONE + + + embeddedsw.CMacro.FREQ + 50000000 + + + embeddedsw.CMacro.HAS_IN + 0 + + + embeddedsw.CMacro.HAS_OUT + 1 + + + embeddedsw.CMacro.HAS_TRI + 0 + + + embeddedsw.CMacro.IRQ_TYPE + NONE + + + embeddedsw.CMacro.RESET_VALUE + 0 + + + embeddedsw.dts.compatible + altr,pio-1.0 + + + boolean + false + false + false + true + true + + + boolean + false + false + true + true + true + + + boolean + false + false + false + true + true + + + java.lang.String + Output + false + true + true + true + + + java.lang.String + RISING + false + false + true + true + + + boolean + false + false + false + true + true + + + java.lang.String + LEVEL + false + false + true + true + + + long + 0 + false + true + true + true + + + boolean + false + false + false + true + true + + + long + 0 + false + false + true + true + + + int + 1 + false + true + true + true + + + long + 50000000 + false + true + false + true + + + boolean + false + true + true + false + true + + + boolean + true + true + true + false + true + + + boolean + false + true + true + false + true + + + boolean + false + true + true + false + true + + + boolean + false + true + true + false + true + + + java.lang.String + NONE + true + true + false + true + + + java.lang.String + NONE + true + true + false + true + + + boolean + false + true + true + false + true + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + + + + boolean + false + false + true + false + true + + + java.lang.String + + false + true + false + true + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + + java.lang.Boolean + true + true + true + false + true + + + java.lang.Long + 50000000 + true + true + false + true + + clock + false + + clk + Input + 1 + clk + + + + + + java.lang.String + clk + false + true + true + true + + + com.altera.sopcmodel.reset.Reset$Edges + DEASSERT + false + true + true + true + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + reset + false + + reset_n + Input + 1 + reset_n + + + + + + embeddedsw.configuration.isFlash + 0 + + + embeddedsw.configuration.isMemoryDevice + 0 + + + embeddedsw.configuration.isNonVolatileStorage + 0 + + + embeddedsw.configuration.isPrintableDevice + 0 + + + com.altera.sopcmodel.avalon.AvalonConnectionPoint$AddressAlignment + NATIVE + false + true + false + true + + + int + 0 + false + true + false + true + + + java.math.BigInteger + 4 + true + true + false + true + + + com.altera.sopcmodel.avalon.EAddrBurstUnits + WORDS + false + true + true + true + + + boolean + false + false + true + false + true + + + java.lang.String + clk + false + true + true + true + + + java.lang.String + reset + false + true + true + true + + + int + 8 + false + true + true + true + + + com.altera.entityinterfaces.IConnectionPoint + + false + true + false + true + + + boolean + false + false + true + true + true + + + com.altera.sopcmodel.avalon.EAddrBurstUnits + WORDS + false + true + true + true + + + boolean + false + false + true + false + true + + + java.math.BigInteger + 0 + false + true + true + true + + + int + 0 + false + true + true + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + true + true + + + int + 0 + false + false + true + true + + + int + 0 + false + false + false + true + + + int + 1 + false + true + false + true + + + boolean + false + false + true + false + true + + + int + 0 + false + true + true + true + + + int + 1 + false + true + false + true + + + int + 1 + false + true + true + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + false + true + + + int + 0 + false + true + true + true + + + com.altera.sopcmodel.avalon.TimingUnits + Cycles + false + true + true + true + + + boolean + false + false + true + false + true + + + boolean + false + false + true + false + true + + + int + 0 + false + true + false + true + + + int + 0 + false + true + false + true + + + int + 0 + false + true + true + true + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + avalon + false + + address + Input + 2 + address + + + write_n + Input + 1 + write_n + + + writedata + Input + 32 + writedata + + + chipselect + Input + 1 + chipselect + + + readdata + Output + 32 + readdata + + + + + + java.lang.String + + false + true + true + true + + + java.lang.String + + false + true + true + true + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + conduit + false + + out_port + Output + 1 + export + + + + + + int + 1 + false + true + true + true + + + java.math.BigInteger + 0x00040800 + false + true + true + true + + + boolean + false + false + true + true + true + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + nios2_processor + instruction_master + nios2_processor + jtag_debug_module + + + + int + 1 + false + true + true + true + + + java.math.BigInteger + 0x00040800 + false + true + true + true + + + boolean + false + false + true + true + true + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + nios2_processor + data_master + nios2_processor + jtag_debug_module + + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + clk_0 + clk + nios2_processor + clk + + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + clk_0 + clk + onchip_memory + clk1 + + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + clk_0 + clk_reset + nios2_processor + reset_n + + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + clk_0 + clk_reset + onchip_memory + reset1 + + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + nios2_processor + jtag_debug_module_reset + nios2_processor + reset_n + + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + nios2_processor + jtag_debug_module_reset + onchip_memory + reset1 + + + + int + 1 + false + true + true + true + + + java.math.BigInteger + 0x0000 + false + true + true + true + + + boolean + false + false + true + true + true + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + nios2_processor + instruction_master + onchip_memory + s1 + + + + int + 1 + false + true + true + true + + + java.math.BigInteger + 0x0000 + false + true + true + true + + + boolean + false + false + true + true + true + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + nios2_processor + data_master + onchip_memory + s1 + + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + nios2_processor + jtag_debug_module_reset + jtag_uart + reset + + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + clk_0 + clk_reset + jtag_uart + reset + + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + clk_0 + clk + jtag_uart + clk + + + + int + 5 + false + true + true + true + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + nios2_processor + d_irq + jtag_uart + irq + + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + clk_0 + clk + LEDs + clk + + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + clk_0 + clk_reset + LEDs + reset + + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + nios2_processor + jtag_debug_module_reset + LEDs + reset + + + + int + 1 + false + true + true + true + + + java.math.BigInteger + 0x000410f0 + false + true + true + true + + + boolean + false + false + true + true + true + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + nios2_processor + data_master + LEDs + s1 + + + + int + 1 + false + true + true + true + + + java.math.BigInteger + 0x00041100 + false + true + true + true + + + boolean + false + false + true + true + true + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + nios2_processor + data_master + jtag_uart + avalon_jtag_slave + + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + clk_0 + clk + LEDRs + clk + + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + clk_0 + clk_reset + LEDRs + reset + + + + int + 1 + false + true + true + true + + + java.math.BigInteger + 0x000410e0 + false + true + true + true + + + boolean + false + false + true + true + true + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + nios2_processor + data_master + LEDRs + s1 + + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + nios2_processor + jtag_debug_module_reset + LEDRs + reset + + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + clk_0 + clk + switches + clk + + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + nios2_processor + jtag_debug_module_reset + switches + reset + + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + clk_0 + clk_reset + switches + reset + + + + int + 1 + false + true + true + true + + + java.math.BigInteger + 0x000410d0 + false + true + true + true + + + boolean + false + false + true + true + true + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + nios2_processor + data_master + switches + s1 + + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + clk_0 + clk + push_switches + clk + + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + clk_0 + clk_reset + push_switches + reset + + + + int + 1 + false + true + true + true + + + java.math.BigInteger + 0x000410c0 + false + true + true + true + + + boolean + false + false + true + true + true + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + nios2_processor + data_master + push_switches + s1 + + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + nios2_processor + jtag_debug_module_reset + push_switches + reset + + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + clk_0 + clk + hex0 + clk + + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + clk_0 + clk_reset + hex0 + reset + + + + int + 1 + false + true + true + true + + + java.math.BigInteger + 0x000410b0 + false + true + true + true + + + boolean + false + false + true + true + true + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + nios2_processor + data_master + hex0 + s1 + + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + nios2_processor + jtag_debug_module_reset + hex0 + reset + + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + clk_0 + clk + hex1 + clk + + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + clk_0 + clk_reset + hex1 + reset + + + + int + 1 + false + true + true + true + + + java.math.BigInteger + 0x000410a0 + false + true + true + true + + + boolean + false + false + true + true + true + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + nios2_processor + data_master + hex1 + s1 + + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + nios2_processor + jtag_debug_module_reset + hex1 + reset + + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + clk_0 + clk + hex2 + clk + + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + clk_0 + clk_reset + hex2 + reset + + + + int + 1 + false + true + true + true + + + java.math.BigInteger + 0x00041090 + false + true + true + true + + + boolean + false + false + true + true + true + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + nios2_processor + data_master + hex2 + s1 + + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + nios2_processor + jtag_debug_module_reset + hex2 + reset + + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + clk_0 + clk + hex3 + clk + + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + clk_0 + clk_reset + hex3 + reset + + + + int + 1 + false + true + true + true + + + java.math.BigInteger + 0x00041080 + false + true + true + true + + + boolean + false + false + true + true + true + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + nios2_processor + data_master + hex3 + s1 + + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + nios2_processor + jtag_debug_module_reset + hex3 + reset + + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + clk_0 + clk + hex4 + clk + + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + clk_0 + clk_reset + hex4 + reset + + + + int + 1 + false + true + true + true + + + java.math.BigInteger + 0x00041070 + false + true + true + true + + + boolean + false + false + true + true + true + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + nios2_processor + data_master + hex4 + s1 + + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + nios2_processor + jtag_debug_module_reset + hex4 + reset + + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + clk_0 + clk + hex5 + clk + + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + clk_0 + clk_reset + hex5 + reset + + + + int + 1 + false + true + true + true + + + java.math.BigInteger + 0x00041060 + false + true + true + true + + + boolean + false + false + true + true + true + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + nios2_processor + data_master + hex5 + s1 + + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + nios2_processor + jtag_debug_module_reset + hex5 + reset + + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + clk_0 + clk + hex6 + clk + + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + clk_0 + clk_reset + hex6 + reset + + + + int + 1 + false + true + true + true + + + java.math.BigInteger + 0x00041050 + false + true + true + true + + + boolean + false + false + true + true + true + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + nios2_processor + data_master + hex6 + s1 + + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + nios2_processor + jtag_debug_module_reset + hex6 + reset + + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + clk_0 + clk + hex7 + clk + + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + clk_0 + clk_reset + hex7 + reset + + + + int + 1 + false + true + true + true + + + java.math.BigInteger + 0x00041040 + false + true + true + true + + + boolean + false + false + true + true + true + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + nios2_processor + data_master + hex7 + s1 + + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + nios2_processor + jtag_debug_module_reset + hex7 + reset + + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + clk_0 + clk + lcd_16207_0 + clk + + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + clk_0 + clk_reset + lcd_16207_0 + reset + + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + nios2_processor + jtag_debug_module_reset + lcd_16207_0 + reset + + + + int + 1 + false + true + true + true + + + java.math.BigInteger + 0x00041030 + false + true + true + true + + + boolean + false + false + true + true + true + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + nios2_processor + data_master + lcd_16207_0 + control_slave + + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + clk_0 + clk + lcd_on + clk + + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + clk_0 + clk + lcd_blon + clk + + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + clk_0 + clk_reset + lcd_on + reset + + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + clk_0 + clk_reset + lcd_blon + reset + + + + int + 1 + false + true + true + true + + + java.math.BigInteger + 0x00041010 + false + true + true + true + + + boolean + false + false + true + true + true + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + nios2_processor + data_master + lcd_on + s1 + + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + nios2_processor + jtag_debug_module_reset + lcd_on + reset + + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + nios2_processor + jtag_debug_module_reset + lcd_blon + reset + + + + int + 1 + false + true + true + true + + + java.math.BigInteger + 0x00041020 + false + true + true + true + + + boolean + false + false + true + true + true + + + java.lang.String + UNKNOWN + false + true + true + true + + + boolean + false + false + true + true + true + + nios2_processor + data_master + lcd_blon + s1 + + + 1 + nios_custom_instruction_master + com.altera.entityinterfaces.IElementClass + com.altera.entityinterfaces.IMutableConnectionPoint + Custom Instruction Master + 13.0 + + + 14 + altera_avalon_pio + com.altera.entityinterfaces.IElementClass + com.altera.entityinterfaces.IModule + PIO (Parallel I/O) + 13.0.1.99.2 + + + 1 + altera_avalon_onchip_memory2 + com.altera.entityinterfaces.IElementClass + com.altera.entityinterfaces.IModule + On-Chip Memory (RAM or ROM) + 13.0.1.99.2 + + + 18 + clock + com.altera.entityinterfaces.IElementClass + com.altera.entityinterfaces.IConnection + Clock Connection + 13.0 + + + 1 + reset_source + com.altera.entityinterfaces.IElementClass + com.altera.entityinterfaces.IMutableConnectionPoint + Reset Output + 13.0 + + + 2 + avalon_master + com.altera.entityinterfaces.IElementClass + com.altera.entityinterfaces.IMutableConnectionPoint + Avalon Memory Mapped Master + 13.0 + + + 20 + avalon + com.altera.entityinterfaces.IElementClass + com.altera.entityinterfaces.IConnection + Avalon Memory Mapped Connection + 13.0 + + + 1 + interrupt_sender + com.altera.entityinterfaces.IElementClass + com.altera.entityinterfaces.IMutableConnectionPoint + Interrupt Sender + 13.0 + + + 1 + clock_source + com.altera.entityinterfaces.IElementClass + com.altera.entityinterfaces.IModule + Clock Source + 13.0 + + + 18 + avalon_slave + com.altera.entityinterfaces.IElementClass + com.altera.entityinterfaces.IMutableConnectionPoint + Avalon Memory Mapped Slave + 13.0 + + + 1 + reset_source + com.altera.entityinterfaces.IElementClass + com.altera.entityinterfaces.IMutableConnectionPoint + Reset Output + 13.0 + + + 1 + clock_source + com.altera.entityinterfaces.IElementClass + com.altera.entityinterfaces.IMutableConnectionPoint + Clock Output + 13.0 + + + 1 + altera_avalon_jtag_uart + com.altera.entityinterfaces.IElementClass + com.altera.entityinterfaces.IModule + JTAG UART + 13.0.1.99.2 + + + 1 + interrupt + com.altera.entityinterfaces.IElementClass + com.altera.entityinterfaces.IConnection + Interrupt Connection + 13.0 + + + 1 + clock_sink + com.altera.entityinterfaces.IElementClass + com.altera.entityinterfaces.IMutableConnectionPoint + Clock Input + 13.0 + + + 15 + conduit_end + com.altera.entityinterfaces.IElementClass + com.altera.entityinterfaces.IMutableConnectionPoint + Conduit + 13.0 + + + 18 + reset_sink + com.altera.entityinterfaces.IElementClass + com.altera.entityinterfaces.IMutableConnectionPoint + Reset Input + 13.0 + + + 1 + interrupt_receiver + com.altera.entityinterfaces.IElementClass + com.altera.entityinterfaces.IMutableConnectionPoint + Interrupt Receiver + 13.0 + + + 36 + reset + com.altera.entityinterfaces.IElementClass + com.altera.entityinterfaces.IConnection + Reset Connection + 13.0 + + + 1 + altera_nios2_qsys + com.altera.entityinterfaces.IElementClass + com.altera.entityinterfaces.IModule + Nios II Processor + 13.0 + + + 1 + reset_sink + com.altera.entityinterfaces.IElementClass + com.altera.entityinterfaces.IMutableConnectionPoint + Reset Input + 13.0 + + + 18 + clock_sink + com.altera.entityinterfaces.IElementClass + com.altera.entityinterfaces.IMutableConnectionPoint + Clock Input + 13.0 + + + 1 + altera_avalon_lcd_16207 + com.altera.entityinterfaces.IElementClass + com.altera.entityinterfaces.IModule + Altera Avalon LCD 16207 + 13.0.1.99.2 + + 13.0sp1 232 + + diff --git a/nios_system/synthesis/nios_system.qip b/nios_system/synthesis/nios_system.qip new file mode 100644 index 0000000..239526d --- /dev/null +++ b/nios_system/synthesis/nios_system.qip @@ -0,0 +1,133 @@ +set_global_assignment -entity "nios_system" -library "nios_system" -name IP_TOOL_NAME "Qsys" +set_global_assignment -entity "nios_system" -library "nios_system" -name IP_TOOL_VERSION "13.0sp1" +set_global_assignment -entity "nios_system" -library "nios_system" -name IP_TOOL_ENV "Qsys" +set_global_assignment -library "nios_system" -name SOPCINFO_FILE [file join $::quartus(qip_path) "../../nios_system.sopcinfo"] +set_instance_assignment -entity "nios_system" -library "nios_system" -name SLD_INFO "QSYS_NAME nios_system HAS_SOPCINFO 1 GENERATION_ID 1480609171" +set_global_assignment -library "nios_system" -name MISC_FILE [file join $::quartus(qip_path) "../../nios_system.cmp"] +set_global_assignment -name SYNTHESIS_ONLY_QIP ON +set_global_assignment -library "nios_system" -name MISC_FILE [file join $::quartus(qip_path) "../../nios_system.qsys"] + +set_global_assignment -library "nios_system" -name VERILOG_FILE [file join $::quartus(qip_path) "nios_system.v"] +set_global_assignment -library "nios_system" -name SYSTEMVERILOG_FILE [file join $::quartus(qip_path) "submodules/nios_system_irq_mapper.sv"] +set_global_assignment -library "nios_system" -name SYSTEMVERILOG_FILE [file join $::quartus(qip_path) "submodules/altera_merlin_arbitrator.sv"] +set_global_assignment -library "nios_system" -name SYSTEMVERILOG_FILE [file join $::quartus(qip_path) "submodules/nios_system_rsp_xbar_mux_001.sv"] +set_global_assignment -library "nios_system" -name SYSTEMVERILOG_FILE [file join $::quartus(qip_path) "submodules/nios_system_rsp_xbar_mux.sv"] +set_global_assignment -library "nios_system" -name SYSTEMVERILOG_FILE [file join $::quartus(qip_path) "submodules/nios_system_rsp_xbar_demux_002.sv"] +set_global_assignment -library "nios_system" -name SYSTEMVERILOG_FILE [file join $::quartus(qip_path) "submodules/nios_system_cmd_xbar_mux.sv"] +set_global_assignment -library "nios_system" -name SYSTEMVERILOG_FILE [file join $::quartus(qip_path) "submodules/nios_system_cmd_xbar_demux_001.sv"] +set_global_assignment -library "nios_system" -name SYSTEMVERILOG_FILE [file join $::quartus(qip_path) "submodules/nios_system_cmd_xbar_demux.sv"] +set_global_assignment -library "nios_system" -name VERILOG_FILE [file join $::quartus(qip_path) "submodules/altera_reset_controller.v"] +set_global_assignment -library "nios_system" -name VERILOG_FILE [file join $::quartus(qip_path) "submodules/altera_reset_synchronizer.v"] +set_global_assignment -library "nios_system" -name SDC_FILE [file join $::quartus(qip_path) "submodules/altera_reset_controller.sdc"] +set_global_assignment -library "nios_system" -name SYSTEMVERILOG_FILE [file join $::quartus(qip_path) "submodules/nios_system_id_router_002.sv"] +set_global_assignment -library "nios_system" -name SYSTEMVERILOG_FILE [file join $::quartus(qip_path) "submodules/nios_system_id_router.sv"] +set_global_assignment -library "nios_system" -name SYSTEMVERILOG_FILE [file join $::quartus(qip_path) "submodules/nios_system_addr_router_001.sv"] +set_global_assignment -library "nios_system" -name SYSTEMVERILOG_FILE [file join $::quartus(qip_path) "submodules/nios_system_addr_router.sv"] +set_global_assignment -library "nios_system" -name VERILOG_FILE [file join $::quartus(qip_path) "submodules/altera_avalon_sc_fifo.v"] +set_global_assignment -library "nios_system" -name SYSTEMVERILOG_FILE [file join $::quartus(qip_path) "submodules/altera_merlin_slave_agent.sv"] +set_global_assignment -library "nios_system" -name SYSTEMVERILOG_FILE [file join $::quartus(qip_path) "submodules/altera_merlin_burst_uncompressor.sv"] +set_global_assignment -library "nios_system" -name SYSTEMVERILOG_FILE [file join $::quartus(qip_path) "submodules/altera_merlin_master_agent.sv"] +set_global_assignment -library "nios_system" -name SYSTEMVERILOG_FILE [file join $::quartus(qip_path) "submodules/altera_merlin_slave_translator.sv"] +set_global_assignment -library "nios_system" -name SYSTEMVERILOG_FILE [file join $::quartus(qip_path) "submodules/altera_merlin_master_translator.sv"] +set_global_assignment -library "nios_system" -name VERILOG_FILE [file join $::quartus(qip_path) "submodules/nios_system_lcd_on.v"] +set_global_assignment -library "nios_system" -name VERILOG_FILE [file join $::quartus(qip_path) "submodules/nios_system_lcd_16207_0.v"] +set_global_assignment -library "nios_system" -name VERILOG_FILE [file join $::quartus(qip_path) "submodules/nios_system_hex0.v"] +set_global_assignment -library "nios_system" -name VERILOG_FILE [file join $::quartus(qip_path) "submodules/nios_system_push_switches.v"] +set_global_assignment -library "nios_system" -name VERILOG_FILE [file join $::quartus(qip_path) "submodules/nios_system_switches.v"] +set_global_assignment -library "nios_system" -name VERILOG_FILE [file join $::quartus(qip_path) "submodules/nios_system_LEDRs.v"] +set_global_assignment -library "nios_system" -name VERILOG_FILE [file join $::quartus(qip_path) "submodules/nios_system_LEDs.v"] +set_global_assignment -library "nios_system" -name VERILOG_FILE [file join $::quartus(qip_path) "submodules/nios_system_jtag_uart.v"] +set_global_assignment -library "nios_system" -name SOURCE_FILE [file join $::quartus(qip_path) "submodules/nios_system_onchip_memory.hex"] +set_global_assignment -library "nios_system" -name VERILOG_FILE [file join $::quartus(qip_path) "submodules/nios_system_onchip_memory.v"] +set_global_assignment -library "nios_system" -name SDC_FILE [file join $::quartus(qip_path) "submodules/nios_system_nios2_processor.sdc"] +set_global_assignment -library "nios_system" -name VERILOG_FILE [file join $::quartus(qip_path) "submodules/nios_system_nios2_processor.v"] +set_global_assignment -library "nios_system" -name VERILOG_FILE [file join $::quartus(qip_path) "submodules/nios_system_nios2_processor_jtag_debug_module_sysclk.v"] +set_global_assignment -library "nios_system" -name VERILOG_FILE [file join $::quartus(qip_path) "submodules/nios_system_nios2_processor_jtag_debug_module_tck.v"] +set_global_assignment -library "nios_system" -name VERILOG_FILE [file join $::quartus(qip_path) "submodules/nios_system_nios2_processor_jtag_debug_module_wrapper.v"] +set_global_assignment -library "nios_system" -name SOURCE_FILE [file join $::quartus(qip_path) "submodules/nios_system_nios2_processor_ociram_default_contents.mif"] +set_global_assignment -library "nios_system" -name VERILOG_FILE [file join $::quartus(qip_path) "submodules/nios_system_nios2_processor_oci_test_bench.v"] +set_global_assignment -library "nios_system" -name SOURCE_FILE [file join $::quartus(qip_path) "submodules/nios_system_nios2_processor_rf_ram_a.mif"] +set_global_assignment -library "nios_system" -name SOURCE_FILE [file join $::quartus(qip_path) "submodules/nios_system_nios2_processor_rf_ram_b.mif"] +set_global_assignment -library "nios_system" -name VERILOG_FILE [file join $::quartus(qip_path) "submodules/nios_system_nios2_processor_test_bench.v"] + +set_global_assignment -entity "nios_system_irq_mapper" -library "nios_system" -name IP_TOOL_NAME "altera_irq_mapper" +set_global_assignment -entity "nios_system_irq_mapper" -library "nios_system" -name IP_TOOL_VERSION "13.0" +set_global_assignment -entity "nios_system_irq_mapper" -library "nios_system" -name IP_TOOL_ENV "Qsys" +set_global_assignment -entity "nios_system_rsp_xbar_mux_001" -library "nios_system" -name IP_TOOL_NAME "altera_merlin_multiplexer" +set_global_assignment -entity "nios_system_rsp_xbar_mux_001" -library "nios_system" -name IP_TOOL_VERSION "13.0" +set_global_assignment -entity "nios_system_rsp_xbar_mux_001" -library "nios_system" -name IP_TOOL_ENV "Qsys" +set_global_assignment -entity "nios_system_rsp_xbar_mux" -library "nios_system" -name IP_TOOL_NAME "altera_merlin_multiplexer" +set_global_assignment -entity "nios_system_rsp_xbar_mux" -library "nios_system" -name IP_TOOL_VERSION "13.0" +set_global_assignment -entity "nios_system_rsp_xbar_mux" -library "nios_system" -name IP_TOOL_ENV "Qsys" +set_global_assignment -entity "nios_system_rsp_xbar_demux_002" -library "nios_system" -name IP_TOOL_NAME "altera_merlin_demultiplexer" +set_global_assignment -entity "nios_system_rsp_xbar_demux_002" -library "nios_system" -name IP_TOOL_VERSION "13.0" +set_global_assignment -entity "nios_system_rsp_xbar_demux_002" -library "nios_system" -name IP_TOOL_ENV "Qsys" +set_global_assignment -entity "nios_system_cmd_xbar_mux" -library "nios_system" -name IP_TOOL_NAME "altera_merlin_multiplexer" +set_global_assignment -entity "nios_system_cmd_xbar_mux" -library "nios_system" -name IP_TOOL_VERSION "13.0" +set_global_assignment -entity "nios_system_cmd_xbar_mux" -library "nios_system" -name IP_TOOL_ENV "Qsys" +set_global_assignment -entity "nios_system_cmd_xbar_demux_001" -library "nios_system" -name IP_TOOL_NAME "altera_merlin_demultiplexer" +set_global_assignment -entity "nios_system_cmd_xbar_demux_001" -library "nios_system" -name IP_TOOL_VERSION "13.0" +set_global_assignment -entity "nios_system_cmd_xbar_demux_001" -library "nios_system" -name IP_TOOL_ENV "Qsys" +set_global_assignment -entity "nios_system_cmd_xbar_demux" -library "nios_system" -name IP_TOOL_NAME "altera_merlin_demultiplexer" +set_global_assignment -entity "nios_system_cmd_xbar_demux" -library "nios_system" -name IP_TOOL_VERSION "13.0" +set_global_assignment -entity "nios_system_cmd_xbar_demux" -library "nios_system" -name IP_TOOL_ENV "Qsys" +set_global_assignment -entity "altera_reset_controller" -library "nios_system" -name IP_TOOL_NAME "altera_reset_controller" +set_global_assignment -entity "altera_reset_controller" -library "nios_system" -name IP_TOOL_VERSION "13.0" +set_global_assignment -entity "altera_reset_controller" -library "nios_system" -name IP_TOOL_ENV "Qsys" +set_global_assignment -entity "nios_system_id_router_002" -library "nios_system" -name IP_TOOL_NAME "altera_merlin_router" +set_global_assignment -entity "nios_system_id_router_002" -library "nios_system" -name IP_TOOL_VERSION "13.0" +set_global_assignment -entity "nios_system_id_router_002" -library "nios_system" -name IP_TOOL_ENV "Qsys" +set_global_assignment -entity "nios_system_id_router" -library "nios_system" -name IP_TOOL_NAME "altera_merlin_router" +set_global_assignment -entity "nios_system_id_router" -library "nios_system" -name IP_TOOL_VERSION "13.0" +set_global_assignment -entity "nios_system_id_router" -library "nios_system" -name IP_TOOL_ENV "Qsys" +set_global_assignment -entity "nios_system_addr_router_001" -library "nios_system" -name IP_TOOL_NAME "altera_merlin_router" +set_global_assignment -entity "nios_system_addr_router_001" -library "nios_system" -name IP_TOOL_VERSION "13.0" +set_global_assignment -entity "nios_system_addr_router_001" -library "nios_system" -name IP_TOOL_ENV "Qsys" +set_global_assignment -entity "nios_system_addr_router" -library "nios_system" -name IP_TOOL_NAME "altera_merlin_router" +set_global_assignment -entity "nios_system_addr_router" -library "nios_system" -name IP_TOOL_VERSION "13.0" +set_global_assignment -entity "nios_system_addr_router" -library "nios_system" -name IP_TOOL_ENV "Qsys" +set_global_assignment -entity "altera_avalon_sc_fifo" -library "nios_system" -name IP_TOOL_NAME "altera_avalon_sc_fifo" +set_global_assignment -entity "altera_avalon_sc_fifo" -library "nios_system" -name IP_TOOL_VERSION "13.0" +set_global_assignment -entity "altera_avalon_sc_fifo" -library "nios_system" -name IP_TOOL_ENV "Qsys" +set_global_assignment -entity "altera_merlin_slave_agent" -library "nios_system" -name IP_TOOL_NAME "altera_merlin_slave_agent" +set_global_assignment -entity "altera_merlin_slave_agent" -library "nios_system" -name IP_TOOL_VERSION "13.0" +set_global_assignment -entity "altera_merlin_slave_agent" -library "nios_system" -name IP_TOOL_ENV "Qsys" +set_global_assignment -entity "altera_merlin_master_agent" -library "nios_system" -name IP_TOOL_NAME "altera_merlin_master_agent" +set_global_assignment -entity "altera_merlin_master_agent" -library "nios_system" -name IP_TOOL_VERSION "13.0" +set_global_assignment -entity "altera_merlin_master_agent" -library "nios_system" -name IP_TOOL_ENV "Qsys" +set_global_assignment -entity "altera_merlin_slave_translator" -library "nios_system" -name IP_TOOL_NAME "altera_merlin_slave_translator" +set_global_assignment -entity "altera_merlin_slave_translator" -library "nios_system" -name IP_TOOL_VERSION "13.0" +set_global_assignment -entity "altera_merlin_slave_translator" -library "nios_system" -name IP_TOOL_ENV "Qsys" +set_global_assignment -entity "altera_merlin_master_translator" -library "nios_system" -name IP_TOOL_NAME "altera_merlin_master_translator" +set_global_assignment -entity "altera_merlin_master_translator" -library "nios_system" -name IP_TOOL_VERSION "13.0" +set_global_assignment -entity "altera_merlin_master_translator" -library "nios_system" -name IP_TOOL_ENV "Qsys" +set_global_assignment -entity "nios_system_lcd_on" -library "nios_system" -name IP_TOOL_NAME "altera_avalon_pio" +set_global_assignment -entity "nios_system_lcd_on" -library "nios_system" -name IP_TOOL_VERSION "13.0.1.99.2" +set_global_assignment -entity "nios_system_lcd_on" -library "nios_system" -name IP_TOOL_ENV "Qsys" +set_global_assignment -entity "nios_system_lcd_16207_0" -library "nios_system" -name IP_TOOL_NAME "altera_avalon_lcd_16207" +set_global_assignment -entity "nios_system_lcd_16207_0" -library "nios_system" -name IP_TOOL_VERSION "13.0.1.99.2" +set_global_assignment -entity "nios_system_lcd_16207_0" -library "nios_system" -name IP_TOOL_ENV "Qsys" +set_global_assignment -entity "nios_system_hex0" -library "nios_system" -name IP_TOOL_NAME "altera_avalon_pio" +set_global_assignment -entity "nios_system_hex0" -library "nios_system" -name IP_TOOL_VERSION "13.0.1.99.2" +set_global_assignment -entity "nios_system_hex0" -library "nios_system" -name IP_TOOL_ENV "Qsys" +set_global_assignment -entity "nios_system_push_switches" -library "nios_system" -name IP_TOOL_NAME "altera_avalon_pio" +set_global_assignment -entity "nios_system_push_switches" -library "nios_system" -name IP_TOOL_VERSION "13.0.1.99.2" +set_global_assignment -entity "nios_system_push_switches" -library "nios_system" -name IP_TOOL_ENV "Qsys" +set_global_assignment -entity "nios_system_switches" -library "nios_system" -name IP_TOOL_NAME "altera_avalon_pio" +set_global_assignment -entity "nios_system_switches" -library "nios_system" -name IP_TOOL_VERSION "13.0.1.99.2" +set_global_assignment -entity "nios_system_switches" -library "nios_system" -name IP_TOOL_ENV "Qsys" +set_global_assignment -entity "nios_system_LEDRs" -library "nios_system" -name IP_TOOL_NAME "altera_avalon_pio" +set_global_assignment -entity "nios_system_LEDRs" -library "nios_system" -name IP_TOOL_VERSION "13.0.1.99.2" +set_global_assignment -entity "nios_system_LEDRs" -library "nios_system" -name IP_TOOL_ENV "Qsys" +set_global_assignment -entity "nios_system_LEDs" -library "nios_system" -name IP_TOOL_NAME "altera_avalon_pio" +set_global_assignment -entity "nios_system_LEDs" -library "nios_system" -name IP_TOOL_VERSION "13.0.1.99.2" +set_global_assignment -entity "nios_system_LEDs" -library "nios_system" -name IP_TOOL_ENV "Qsys" +set_global_assignment -entity "nios_system_jtag_uart" -library "nios_system" -name IP_TOOL_NAME "altera_avalon_jtag_uart" +set_global_assignment -entity "nios_system_jtag_uart" -library "nios_system" -name IP_TOOL_VERSION "13.0.1.99.2" +set_global_assignment -entity "nios_system_jtag_uart" -library "nios_system" -name IP_TOOL_ENV "Qsys" +set_global_assignment -entity "nios_system_onchip_memory" -library "nios_system" -name IP_TOOL_NAME "altera_avalon_onchip_memory2" +set_global_assignment -entity "nios_system_onchip_memory" -library "nios_system" -name IP_TOOL_VERSION "13.0.1.99.2" +set_global_assignment -entity "nios_system_onchip_memory" -library "nios_system" -name IP_TOOL_ENV "Qsys" +set_global_assignment -entity "nios_system_nios2_processor" -library "nios_system" -name IP_TOOL_NAME "altera_nios2_qsys" +set_global_assignment -entity "nios_system_nios2_processor" -library "nios_system" -name IP_TOOL_VERSION "13.0" +set_global_assignment -entity "nios_system_nios2_processor" -library "nios_system" -name IP_TOOL_ENV "Qsys" diff --git a/nios_system/synthesis/nios_system.v b/nios_system/synthesis/nios_system.v new file mode 100644 index 0000000..3044723 --- /dev/null +++ b/nios_system/synthesis/nios_system.v @@ -0,0 +1,5964 @@ +// nios_system.v + +// Generated using ACDS version 13.0sp1 232 at 2016.12.02.01:19:35 + +`timescale 1 ps / 1 ps +module nios_system ( + input wire clk_clk, // clk.clk + output wire [7:0] leds_export, // leds.export + input wire reset_reset_n, // reset.reset_n + output wire [17:0] ledrs_export, // ledrs.export + input wire [17:0] switches_export, // switches.export + input wire [2:0] push_switches_export, // push_switches.export + output wire [6:0] hex0_export, // hex0.export + output wire [6:0] hex1_export, // hex1.export + output wire [6:0] hex2_export, // hex2.export + output wire [6:0] hex3_export, // hex3.export + output wire [6:0] hex4_export, // hex4.export + output wire [6:0] hex5_export, // hex5.export + output wire [6:0] hex6_export, // hex6.export + output wire [6:0] hex7_export, // hex7.export + output wire lcd_16207_0_RS, // lcd_16207_0.RS + output wire lcd_16207_0_RW, // .RW + inout wire [7:0] lcd_16207_0_data, // .data + output wire lcd_16207_0_E, // .E + output wire lcd_on_export, // lcd_on.export + output wire lcd_blon_export // lcd_blon.export + ); + + wire nios2_processor_instruction_master_waitrequest; // nios2_processor_instruction_master_translator:av_waitrequest -> nios2_processor:i_waitrequest + wire [18:0] nios2_processor_instruction_master_address; // nios2_processor:i_address -> nios2_processor_instruction_master_translator:av_address + wire nios2_processor_instruction_master_read; // nios2_processor:i_read -> nios2_processor_instruction_master_translator:av_read + wire [31:0] nios2_processor_instruction_master_readdata; // nios2_processor_instruction_master_translator:av_readdata -> nios2_processor:i_readdata + wire nios2_processor_data_master_waitrequest; // nios2_processor_data_master_translator:av_waitrequest -> nios2_processor:d_waitrequest + wire [31:0] nios2_processor_data_master_writedata; // nios2_processor:d_writedata -> nios2_processor_data_master_translator:av_writedata + wire [18:0] nios2_processor_data_master_address; // nios2_processor:d_address -> nios2_processor_data_master_translator:av_address + wire nios2_processor_data_master_write; // nios2_processor:d_write -> nios2_processor_data_master_translator:av_write + wire nios2_processor_data_master_read; // nios2_processor:d_read -> nios2_processor_data_master_translator:av_read + wire [31:0] nios2_processor_data_master_readdata; // nios2_processor_data_master_translator:av_readdata -> nios2_processor:d_readdata + wire nios2_processor_data_master_debugaccess; // nios2_processor:jtag_debug_module_debugaccess_to_roms -> nios2_processor_data_master_translator:av_debugaccess + wire [3:0] nios2_processor_data_master_byteenable; // nios2_processor:d_byteenable -> nios2_processor_data_master_translator:av_byteenable + wire nios2_processor_jtag_debug_module_translator_avalon_anti_slave_0_waitrequest; // nios2_processor:jtag_debug_module_waitrequest -> nios2_processor_jtag_debug_module_translator:av_waitrequest + wire [31:0] nios2_processor_jtag_debug_module_translator_avalon_anti_slave_0_writedata; // nios2_processor_jtag_debug_module_translator:av_writedata -> nios2_processor:jtag_debug_module_writedata + wire [8:0] nios2_processor_jtag_debug_module_translator_avalon_anti_slave_0_address; // nios2_processor_jtag_debug_module_translator:av_address -> nios2_processor:jtag_debug_module_address + wire nios2_processor_jtag_debug_module_translator_avalon_anti_slave_0_write; // nios2_processor_jtag_debug_module_translator:av_write -> nios2_processor:jtag_debug_module_write + wire nios2_processor_jtag_debug_module_translator_avalon_anti_slave_0_read; // nios2_processor_jtag_debug_module_translator:av_read -> nios2_processor:jtag_debug_module_read + wire [31:0] nios2_processor_jtag_debug_module_translator_avalon_anti_slave_0_readdata; // nios2_processor:jtag_debug_module_readdata -> nios2_processor_jtag_debug_module_translator:av_readdata + wire nios2_processor_jtag_debug_module_translator_avalon_anti_slave_0_debugaccess; // nios2_processor_jtag_debug_module_translator:av_debugaccess -> nios2_processor:jtag_debug_module_debugaccess + wire [3:0] nios2_processor_jtag_debug_module_translator_avalon_anti_slave_0_byteenable; // nios2_processor_jtag_debug_module_translator:av_byteenable -> nios2_processor:jtag_debug_module_byteenable + wire [31:0] onchip_memory_s1_translator_avalon_anti_slave_0_writedata; // onchip_memory_s1_translator:av_writedata -> onchip_memory:writedata + wire [15:0] onchip_memory_s1_translator_avalon_anti_slave_0_address; // onchip_memory_s1_translator:av_address -> onchip_memory:address + wire onchip_memory_s1_translator_avalon_anti_slave_0_chipselect; // onchip_memory_s1_translator:av_chipselect -> onchip_memory:chipselect + wire onchip_memory_s1_translator_avalon_anti_slave_0_clken; // onchip_memory_s1_translator:av_clken -> onchip_memory:clken + wire onchip_memory_s1_translator_avalon_anti_slave_0_write; // onchip_memory_s1_translator:av_write -> onchip_memory:write + wire [31:0] onchip_memory_s1_translator_avalon_anti_slave_0_readdata; // onchip_memory:readdata -> onchip_memory_s1_translator:av_readdata + wire [3:0] onchip_memory_s1_translator_avalon_anti_slave_0_byteenable; // onchip_memory_s1_translator:av_byteenable -> onchip_memory:byteenable + wire [31:0] leds_s1_translator_avalon_anti_slave_0_writedata; // LEDs_s1_translator:av_writedata -> LEDs:writedata + wire [1:0] leds_s1_translator_avalon_anti_slave_0_address; // LEDs_s1_translator:av_address -> LEDs:address + wire leds_s1_translator_avalon_anti_slave_0_chipselect; // LEDs_s1_translator:av_chipselect -> LEDs:chipselect + wire leds_s1_translator_avalon_anti_slave_0_write; // LEDs_s1_translator:av_write -> LEDs:write_n + wire [31:0] leds_s1_translator_avalon_anti_slave_0_readdata; // LEDs:readdata -> LEDs_s1_translator:av_readdata + wire jtag_uart_avalon_jtag_slave_translator_avalon_anti_slave_0_waitrequest; // jtag_uart:av_waitrequest -> jtag_uart_avalon_jtag_slave_translator:av_waitrequest + wire [31:0] jtag_uart_avalon_jtag_slave_translator_avalon_anti_slave_0_writedata; // jtag_uart_avalon_jtag_slave_translator:av_writedata -> jtag_uart:av_writedata + wire [0:0] jtag_uart_avalon_jtag_slave_translator_avalon_anti_slave_0_address; // jtag_uart_avalon_jtag_slave_translator:av_address -> jtag_uart:av_address + wire jtag_uart_avalon_jtag_slave_translator_avalon_anti_slave_0_chipselect; // jtag_uart_avalon_jtag_slave_translator:av_chipselect -> jtag_uart:av_chipselect + wire jtag_uart_avalon_jtag_slave_translator_avalon_anti_slave_0_write; // jtag_uart_avalon_jtag_slave_translator:av_write -> jtag_uart:av_write_n + wire jtag_uart_avalon_jtag_slave_translator_avalon_anti_slave_0_read; // jtag_uart_avalon_jtag_slave_translator:av_read -> jtag_uart:av_read_n + wire [31:0] jtag_uart_avalon_jtag_slave_translator_avalon_anti_slave_0_readdata; // jtag_uart:av_readdata -> jtag_uart_avalon_jtag_slave_translator:av_readdata + wire [31:0] ledrs_s1_translator_avalon_anti_slave_0_writedata; // LEDRs_s1_translator:av_writedata -> LEDRs:writedata + wire [1:0] ledrs_s1_translator_avalon_anti_slave_0_address; // LEDRs_s1_translator:av_address -> LEDRs:address + wire ledrs_s1_translator_avalon_anti_slave_0_chipselect; // LEDRs_s1_translator:av_chipselect -> LEDRs:chipselect + wire ledrs_s1_translator_avalon_anti_slave_0_write; // LEDRs_s1_translator:av_write -> LEDRs:write_n + wire [31:0] ledrs_s1_translator_avalon_anti_slave_0_readdata; // LEDRs:readdata -> LEDRs_s1_translator:av_readdata + wire [1:0] switches_s1_translator_avalon_anti_slave_0_address; // switches_s1_translator:av_address -> switches:address + wire [31:0] switches_s1_translator_avalon_anti_slave_0_readdata; // switches:readdata -> switches_s1_translator:av_readdata + wire [1:0] push_switches_s1_translator_avalon_anti_slave_0_address; // push_switches_s1_translator:av_address -> push_switches:address + wire [31:0] push_switches_s1_translator_avalon_anti_slave_0_readdata; // push_switches:readdata -> push_switches_s1_translator:av_readdata + wire [31:0] hex0_s1_translator_avalon_anti_slave_0_writedata; // hex0_s1_translator:av_writedata -> hex0:writedata + wire [1:0] hex0_s1_translator_avalon_anti_slave_0_address; // hex0_s1_translator:av_address -> hex0:address + wire hex0_s1_translator_avalon_anti_slave_0_chipselect; // hex0_s1_translator:av_chipselect -> hex0:chipselect + wire hex0_s1_translator_avalon_anti_slave_0_write; // hex0_s1_translator:av_write -> hex0:write_n + wire [31:0] hex0_s1_translator_avalon_anti_slave_0_readdata; // hex0:readdata -> hex0_s1_translator:av_readdata + wire [31:0] hex1_s1_translator_avalon_anti_slave_0_writedata; // hex1_s1_translator:av_writedata -> hex1:writedata + wire [1:0] hex1_s1_translator_avalon_anti_slave_0_address; // hex1_s1_translator:av_address -> hex1:address + wire hex1_s1_translator_avalon_anti_slave_0_chipselect; // hex1_s1_translator:av_chipselect -> hex1:chipselect + wire hex1_s1_translator_avalon_anti_slave_0_write; // hex1_s1_translator:av_write -> hex1:write_n + wire [31:0] hex1_s1_translator_avalon_anti_slave_0_readdata; // hex1:readdata -> hex1_s1_translator:av_readdata + wire [31:0] hex2_s1_translator_avalon_anti_slave_0_writedata; // hex2_s1_translator:av_writedata -> hex2:writedata + wire [1:0] hex2_s1_translator_avalon_anti_slave_0_address; // hex2_s1_translator:av_address -> hex2:address + wire hex2_s1_translator_avalon_anti_slave_0_chipselect; // hex2_s1_translator:av_chipselect -> hex2:chipselect + wire hex2_s1_translator_avalon_anti_slave_0_write; // hex2_s1_translator:av_write -> hex2:write_n + wire [31:0] hex2_s1_translator_avalon_anti_slave_0_readdata; // hex2:readdata -> hex2_s1_translator:av_readdata + wire [31:0] hex3_s1_translator_avalon_anti_slave_0_writedata; // hex3_s1_translator:av_writedata -> hex3:writedata + wire [1:0] hex3_s1_translator_avalon_anti_slave_0_address; // hex3_s1_translator:av_address -> hex3:address + wire hex3_s1_translator_avalon_anti_slave_0_chipselect; // hex3_s1_translator:av_chipselect -> hex3:chipselect + wire hex3_s1_translator_avalon_anti_slave_0_write; // hex3_s1_translator:av_write -> hex3:write_n + wire [31:0] hex3_s1_translator_avalon_anti_slave_0_readdata; // hex3:readdata -> hex3_s1_translator:av_readdata + wire [31:0] hex4_s1_translator_avalon_anti_slave_0_writedata; // hex4_s1_translator:av_writedata -> hex4:writedata + wire [1:0] hex4_s1_translator_avalon_anti_slave_0_address; // hex4_s1_translator:av_address -> hex4:address + wire hex4_s1_translator_avalon_anti_slave_0_chipselect; // hex4_s1_translator:av_chipselect -> hex4:chipselect + wire hex4_s1_translator_avalon_anti_slave_0_write; // hex4_s1_translator:av_write -> hex4:write_n + wire [31:0] hex4_s1_translator_avalon_anti_slave_0_readdata; // hex4:readdata -> hex4_s1_translator:av_readdata + wire [31:0] hex5_s1_translator_avalon_anti_slave_0_writedata; // hex5_s1_translator:av_writedata -> hex5:writedata + wire [1:0] hex5_s1_translator_avalon_anti_slave_0_address; // hex5_s1_translator:av_address -> hex5:address + wire hex5_s1_translator_avalon_anti_slave_0_chipselect; // hex5_s1_translator:av_chipselect -> hex5:chipselect + wire hex5_s1_translator_avalon_anti_slave_0_write; // hex5_s1_translator:av_write -> hex5:write_n + wire [31:0] hex5_s1_translator_avalon_anti_slave_0_readdata; // hex5:readdata -> hex5_s1_translator:av_readdata + wire [31:0] hex6_s1_translator_avalon_anti_slave_0_writedata; // hex6_s1_translator:av_writedata -> hex6:writedata + wire [1:0] hex6_s1_translator_avalon_anti_slave_0_address; // hex6_s1_translator:av_address -> hex6:address + wire hex6_s1_translator_avalon_anti_slave_0_chipselect; // hex6_s1_translator:av_chipselect -> hex6:chipselect + wire hex6_s1_translator_avalon_anti_slave_0_write; // hex6_s1_translator:av_write -> hex6:write_n + wire [31:0] hex6_s1_translator_avalon_anti_slave_0_readdata; // hex6:readdata -> hex6_s1_translator:av_readdata + wire [31:0] hex7_s1_translator_avalon_anti_slave_0_writedata; // hex7_s1_translator:av_writedata -> hex7:writedata + wire [1:0] hex7_s1_translator_avalon_anti_slave_0_address; // hex7_s1_translator:av_address -> hex7:address + wire hex7_s1_translator_avalon_anti_slave_0_chipselect; // hex7_s1_translator:av_chipselect -> hex7:chipselect + wire hex7_s1_translator_avalon_anti_slave_0_write; // hex7_s1_translator:av_write -> hex7:write_n + wire [31:0] hex7_s1_translator_avalon_anti_slave_0_readdata; // hex7:readdata -> hex7_s1_translator:av_readdata + wire [7:0] lcd_16207_0_control_slave_translator_avalon_anti_slave_0_writedata; // lcd_16207_0_control_slave_translator:av_writedata -> lcd_16207_0:writedata + wire [1:0] lcd_16207_0_control_slave_translator_avalon_anti_slave_0_address; // lcd_16207_0_control_slave_translator:av_address -> lcd_16207_0:address + wire lcd_16207_0_control_slave_translator_avalon_anti_slave_0_write; // lcd_16207_0_control_slave_translator:av_write -> lcd_16207_0:write + wire lcd_16207_0_control_slave_translator_avalon_anti_slave_0_read; // lcd_16207_0_control_slave_translator:av_read -> lcd_16207_0:read + wire [7:0] lcd_16207_0_control_slave_translator_avalon_anti_slave_0_readdata; // lcd_16207_0:readdata -> lcd_16207_0_control_slave_translator:av_readdata + wire lcd_16207_0_control_slave_translator_avalon_anti_slave_0_begintransfer; // lcd_16207_0_control_slave_translator:av_begintransfer -> lcd_16207_0:begintransfer + wire [31:0] lcd_on_s1_translator_avalon_anti_slave_0_writedata; // lcd_on_s1_translator:av_writedata -> lcd_on:writedata + wire [1:0] lcd_on_s1_translator_avalon_anti_slave_0_address; // lcd_on_s1_translator:av_address -> lcd_on:address + wire lcd_on_s1_translator_avalon_anti_slave_0_chipselect; // lcd_on_s1_translator:av_chipselect -> lcd_on:chipselect + wire lcd_on_s1_translator_avalon_anti_slave_0_write; // lcd_on_s1_translator:av_write -> lcd_on:write_n + wire [31:0] lcd_on_s1_translator_avalon_anti_slave_0_readdata; // lcd_on:readdata -> lcd_on_s1_translator:av_readdata + wire [31:0] lcd_blon_s1_translator_avalon_anti_slave_0_writedata; // lcd_blon_s1_translator:av_writedata -> lcd_blon:writedata + wire [1:0] lcd_blon_s1_translator_avalon_anti_slave_0_address; // lcd_blon_s1_translator:av_address -> lcd_blon:address + wire lcd_blon_s1_translator_avalon_anti_slave_0_chipselect; // lcd_blon_s1_translator:av_chipselect -> lcd_blon:chipselect + wire lcd_blon_s1_translator_avalon_anti_slave_0_write; // lcd_blon_s1_translator:av_write -> lcd_blon:write_n + wire [31:0] lcd_blon_s1_translator_avalon_anti_slave_0_readdata; // lcd_blon:readdata -> lcd_blon_s1_translator:av_readdata + wire nios2_processor_instruction_master_translator_avalon_universal_master_0_waitrequest; // nios2_processor_instruction_master_translator_avalon_universal_master_0_agent:av_waitrequest -> nios2_processor_instruction_master_translator:uav_waitrequest + wire [2:0] nios2_processor_instruction_master_translator_avalon_universal_master_0_burstcount; // nios2_processor_instruction_master_translator:uav_burstcount -> nios2_processor_instruction_master_translator_avalon_universal_master_0_agent:av_burstcount + wire [31:0] nios2_processor_instruction_master_translator_avalon_universal_master_0_writedata; // nios2_processor_instruction_master_translator:uav_writedata -> nios2_processor_instruction_master_translator_avalon_universal_master_0_agent:av_writedata + wire [18:0] nios2_processor_instruction_master_translator_avalon_universal_master_0_address; // nios2_processor_instruction_master_translator:uav_address -> nios2_processor_instruction_master_translator_avalon_universal_master_0_agent:av_address + wire nios2_processor_instruction_master_translator_avalon_universal_master_0_lock; // nios2_processor_instruction_master_translator:uav_lock -> nios2_processor_instruction_master_translator_avalon_universal_master_0_agent:av_lock + wire nios2_processor_instruction_master_translator_avalon_universal_master_0_write; // nios2_processor_instruction_master_translator:uav_write -> nios2_processor_instruction_master_translator_avalon_universal_master_0_agent:av_write + wire nios2_processor_instruction_master_translator_avalon_universal_master_0_read; // nios2_processor_instruction_master_translator:uav_read -> nios2_processor_instruction_master_translator_avalon_universal_master_0_agent:av_read + wire [31:0] nios2_processor_instruction_master_translator_avalon_universal_master_0_readdata; // nios2_processor_instruction_master_translator_avalon_universal_master_0_agent:av_readdata -> nios2_processor_instruction_master_translator:uav_readdata + wire nios2_processor_instruction_master_translator_avalon_universal_master_0_debugaccess; // nios2_processor_instruction_master_translator:uav_debugaccess -> nios2_processor_instruction_master_translator_avalon_universal_master_0_agent:av_debugaccess + wire [3:0] nios2_processor_instruction_master_translator_avalon_universal_master_0_byteenable; // nios2_processor_instruction_master_translator:uav_byteenable -> nios2_processor_instruction_master_translator_avalon_universal_master_0_agent:av_byteenable + wire nios2_processor_instruction_master_translator_avalon_universal_master_0_readdatavalid; // nios2_processor_instruction_master_translator_avalon_universal_master_0_agent:av_readdatavalid -> nios2_processor_instruction_master_translator:uav_readdatavalid + wire nios2_processor_data_master_translator_avalon_universal_master_0_waitrequest; // nios2_processor_data_master_translator_avalon_universal_master_0_agent:av_waitrequest -> nios2_processor_data_master_translator:uav_waitrequest + wire [2:0] nios2_processor_data_master_translator_avalon_universal_master_0_burstcount; // nios2_processor_data_master_translator:uav_burstcount -> nios2_processor_data_master_translator_avalon_universal_master_0_agent:av_burstcount + wire [31:0] nios2_processor_data_master_translator_avalon_universal_master_0_writedata; // nios2_processor_data_master_translator:uav_writedata -> nios2_processor_data_master_translator_avalon_universal_master_0_agent:av_writedata + wire [18:0] nios2_processor_data_master_translator_avalon_universal_master_0_address; // nios2_processor_data_master_translator:uav_address -> nios2_processor_data_master_translator_avalon_universal_master_0_agent:av_address + wire nios2_processor_data_master_translator_avalon_universal_master_0_lock; // nios2_processor_data_master_translator:uav_lock -> nios2_processor_data_master_translator_avalon_universal_master_0_agent:av_lock + wire nios2_processor_data_master_translator_avalon_universal_master_0_write; // nios2_processor_data_master_translator:uav_write -> nios2_processor_data_master_translator_avalon_universal_master_0_agent:av_write + wire nios2_processor_data_master_translator_avalon_universal_master_0_read; // nios2_processor_data_master_translator:uav_read -> nios2_processor_data_master_translator_avalon_universal_master_0_agent:av_read + wire [31:0] nios2_processor_data_master_translator_avalon_universal_master_0_readdata; // nios2_processor_data_master_translator_avalon_universal_master_0_agent:av_readdata -> nios2_processor_data_master_translator:uav_readdata + wire nios2_processor_data_master_translator_avalon_universal_master_0_debugaccess; // nios2_processor_data_master_translator:uav_debugaccess -> nios2_processor_data_master_translator_avalon_universal_master_0_agent:av_debugaccess + wire [3:0] nios2_processor_data_master_translator_avalon_universal_master_0_byteenable; // nios2_processor_data_master_translator:uav_byteenable -> nios2_processor_data_master_translator_avalon_universal_master_0_agent:av_byteenable + wire nios2_processor_data_master_translator_avalon_universal_master_0_readdatavalid; // nios2_processor_data_master_translator_avalon_universal_master_0_agent:av_readdatavalid -> nios2_processor_data_master_translator:uav_readdatavalid + wire nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_m0_waitrequest; // nios2_processor_jtag_debug_module_translator:uav_waitrequest -> nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent:m0_waitrequest + wire [2:0] nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_m0_burstcount; // nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent:m0_burstcount -> nios2_processor_jtag_debug_module_translator:uav_burstcount + wire [31:0] nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_m0_writedata; // nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent:m0_writedata -> nios2_processor_jtag_debug_module_translator:uav_writedata + wire [18:0] nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_m0_address; // nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent:m0_address -> nios2_processor_jtag_debug_module_translator:uav_address + wire nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_m0_write; // nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent:m0_write -> nios2_processor_jtag_debug_module_translator:uav_write + wire nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_m0_lock; // nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent:m0_lock -> nios2_processor_jtag_debug_module_translator:uav_lock + wire nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_m0_read; // nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent:m0_read -> nios2_processor_jtag_debug_module_translator:uav_read + wire [31:0] nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_m0_readdata; // nios2_processor_jtag_debug_module_translator:uav_readdata -> nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent:m0_readdata + wire nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_m0_readdatavalid; // nios2_processor_jtag_debug_module_translator:uav_readdatavalid -> nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent:m0_readdatavalid + wire nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_m0_debugaccess; // nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent:m0_debugaccess -> nios2_processor_jtag_debug_module_translator:uav_debugaccess + wire [3:0] nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_m0_byteenable; // nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent:m0_byteenable -> nios2_processor_jtag_debug_module_translator:uav_byteenable + wire nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rf_source_endofpacket; // nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent:rf_source_endofpacket -> nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo:in_endofpacket + wire nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rf_source_valid; // nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent:rf_source_valid -> nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo:in_valid + wire nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rf_source_startofpacket; // nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent:rf_source_startofpacket -> nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo:in_startofpacket + wire [96:0] nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rf_source_data; // nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent:rf_source_data -> nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo:in_data + wire nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rf_source_ready; // nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo:in_ready -> nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent:rf_source_ready + wire nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo_out_endofpacket; // nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo:out_endofpacket -> nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent:rf_sink_endofpacket + wire nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo_out_valid; // nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo:out_valid -> nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent:rf_sink_valid + wire nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo_out_startofpacket; // nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo:out_startofpacket -> nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent:rf_sink_startofpacket + wire [96:0] nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo_out_data; // nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo:out_data -> nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent:rf_sink_data + wire nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo_out_ready; // nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent:rf_sink_ready -> nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo:out_ready + wire nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rdata_fifo_src_valid; // nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent:rdata_fifo_src_valid -> nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent:rdata_fifo_sink_valid + wire [33:0] nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rdata_fifo_src_data; // nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent:rdata_fifo_src_data -> nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent:rdata_fifo_sink_data + wire nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rdata_fifo_src_ready; // nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent:rdata_fifo_sink_ready -> nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent:rdata_fifo_src_ready + wire onchip_memory_s1_translator_avalon_universal_slave_0_agent_m0_waitrequest; // onchip_memory_s1_translator:uav_waitrequest -> onchip_memory_s1_translator_avalon_universal_slave_0_agent:m0_waitrequest + wire [2:0] onchip_memory_s1_translator_avalon_universal_slave_0_agent_m0_burstcount; // onchip_memory_s1_translator_avalon_universal_slave_0_agent:m0_burstcount -> onchip_memory_s1_translator:uav_burstcount + wire [31:0] onchip_memory_s1_translator_avalon_universal_slave_0_agent_m0_writedata; // onchip_memory_s1_translator_avalon_universal_slave_0_agent:m0_writedata -> onchip_memory_s1_translator:uav_writedata + wire [18:0] onchip_memory_s1_translator_avalon_universal_slave_0_agent_m0_address; // onchip_memory_s1_translator_avalon_universal_slave_0_agent:m0_address -> onchip_memory_s1_translator:uav_address + wire onchip_memory_s1_translator_avalon_universal_slave_0_agent_m0_write; // onchip_memory_s1_translator_avalon_universal_slave_0_agent:m0_write -> onchip_memory_s1_translator:uav_write + wire onchip_memory_s1_translator_avalon_universal_slave_0_agent_m0_lock; // onchip_memory_s1_translator_avalon_universal_slave_0_agent:m0_lock -> onchip_memory_s1_translator:uav_lock + wire onchip_memory_s1_translator_avalon_universal_slave_0_agent_m0_read; // onchip_memory_s1_translator_avalon_universal_slave_0_agent:m0_read -> onchip_memory_s1_translator:uav_read + wire [31:0] onchip_memory_s1_translator_avalon_universal_slave_0_agent_m0_readdata; // onchip_memory_s1_translator:uav_readdata -> onchip_memory_s1_translator_avalon_universal_slave_0_agent:m0_readdata + wire onchip_memory_s1_translator_avalon_universal_slave_0_agent_m0_readdatavalid; // onchip_memory_s1_translator:uav_readdatavalid -> onchip_memory_s1_translator_avalon_universal_slave_0_agent:m0_readdatavalid + wire onchip_memory_s1_translator_avalon_universal_slave_0_agent_m0_debugaccess; // onchip_memory_s1_translator_avalon_universal_slave_0_agent:m0_debugaccess -> onchip_memory_s1_translator:uav_debugaccess + wire [3:0] onchip_memory_s1_translator_avalon_universal_slave_0_agent_m0_byteenable; // onchip_memory_s1_translator_avalon_universal_slave_0_agent:m0_byteenable -> onchip_memory_s1_translator:uav_byteenable + wire onchip_memory_s1_translator_avalon_universal_slave_0_agent_rf_source_endofpacket; // onchip_memory_s1_translator_avalon_universal_slave_0_agent:rf_source_endofpacket -> onchip_memory_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_endofpacket + wire onchip_memory_s1_translator_avalon_universal_slave_0_agent_rf_source_valid; // onchip_memory_s1_translator_avalon_universal_slave_0_agent:rf_source_valid -> onchip_memory_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_valid + wire onchip_memory_s1_translator_avalon_universal_slave_0_agent_rf_source_startofpacket; // onchip_memory_s1_translator_avalon_universal_slave_0_agent:rf_source_startofpacket -> onchip_memory_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_startofpacket + wire [96:0] onchip_memory_s1_translator_avalon_universal_slave_0_agent_rf_source_data; // onchip_memory_s1_translator_avalon_universal_slave_0_agent:rf_source_data -> onchip_memory_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_data + wire onchip_memory_s1_translator_avalon_universal_slave_0_agent_rf_source_ready; // onchip_memory_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_ready -> onchip_memory_s1_translator_avalon_universal_slave_0_agent:rf_source_ready + wire onchip_memory_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_endofpacket; // onchip_memory_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_endofpacket -> onchip_memory_s1_translator_avalon_universal_slave_0_agent:rf_sink_endofpacket + wire onchip_memory_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_valid; // onchip_memory_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_valid -> onchip_memory_s1_translator_avalon_universal_slave_0_agent:rf_sink_valid + wire onchip_memory_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_startofpacket; // onchip_memory_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_startofpacket -> onchip_memory_s1_translator_avalon_universal_slave_0_agent:rf_sink_startofpacket + wire [96:0] onchip_memory_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_data; // onchip_memory_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_data -> onchip_memory_s1_translator_avalon_universal_slave_0_agent:rf_sink_data + wire onchip_memory_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_ready; // onchip_memory_s1_translator_avalon_universal_slave_0_agent:rf_sink_ready -> onchip_memory_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_ready + wire onchip_memory_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_valid; // onchip_memory_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_src_valid -> onchip_memory_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_sink_valid + wire [33:0] onchip_memory_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_data; // onchip_memory_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_src_data -> onchip_memory_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_sink_data + wire onchip_memory_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_ready; // onchip_memory_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_sink_ready -> onchip_memory_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_src_ready + wire leds_s1_translator_avalon_universal_slave_0_agent_m0_waitrequest; // LEDs_s1_translator:uav_waitrequest -> LEDs_s1_translator_avalon_universal_slave_0_agent:m0_waitrequest + wire [2:0] leds_s1_translator_avalon_universal_slave_0_agent_m0_burstcount; // LEDs_s1_translator_avalon_universal_slave_0_agent:m0_burstcount -> LEDs_s1_translator:uav_burstcount + wire [31:0] leds_s1_translator_avalon_universal_slave_0_agent_m0_writedata; // LEDs_s1_translator_avalon_universal_slave_0_agent:m0_writedata -> LEDs_s1_translator:uav_writedata + wire [18:0] leds_s1_translator_avalon_universal_slave_0_agent_m0_address; // LEDs_s1_translator_avalon_universal_slave_0_agent:m0_address -> LEDs_s1_translator:uav_address + wire leds_s1_translator_avalon_universal_slave_0_agent_m0_write; // LEDs_s1_translator_avalon_universal_slave_0_agent:m0_write -> LEDs_s1_translator:uav_write + wire leds_s1_translator_avalon_universal_slave_0_agent_m0_lock; // LEDs_s1_translator_avalon_universal_slave_0_agent:m0_lock -> LEDs_s1_translator:uav_lock + wire leds_s1_translator_avalon_universal_slave_0_agent_m0_read; // LEDs_s1_translator_avalon_universal_slave_0_agent:m0_read -> LEDs_s1_translator:uav_read + wire [31:0] leds_s1_translator_avalon_universal_slave_0_agent_m0_readdata; // LEDs_s1_translator:uav_readdata -> LEDs_s1_translator_avalon_universal_slave_0_agent:m0_readdata + wire leds_s1_translator_avalon_universal_slave_0_agent_m0_readdatavalid; // LEDs_s1_translator:uav_readdatavalid -> LEDs_s1_translator_avalon_universal_slave_0_agent:m0_readdatavalid + wire leds_s1_translator_avalon_universal_slave_0_agent_m0_debugaccess; // LEDs_s1_translator_avalon_universal_slave_0_agent:m0_debugaccess -> LEDs_s1_translator:uav_debugaccess + wire [3:0] leds_s1_translator_avalon_universal_slave_0_agent_m0_byteenable; // LEDs_s1_translator_avalon_universal_slave_0_agent:m0_byteenable -> LEDs_s1_translator:uav_byteenable + wire leds_s1_translator_avalon_universal_slave_0_agent_rf_source_endofpacket; // LEDs_s1_translator_avalon_universal_slave_0_agent:rf_source_endofpacket -> LEDs_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_endofpacket + wire leds_s1_translator_avalon_universal_slave_0_agent_rf_source_valid; // LEDs_s1_translator_avalon_universal_slave_0_agent:rf_source_valid -> LEDs_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_valid + wire leds_s1_translator_avalon_universal_slave_0_agent_rf_source_startofpacket; // LEDs_s1_translator_avalon_universal_slave_0_agent:rf_source_startofpacket -> LEDs_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_startofpacket + wire [96:0] leds_s1_translator_avalon_universal_slave_0_agent_rf_source_data; // LEDs_s1_translator_avalon_universal_slave_0_agent:rf_source_data -> LEDs_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_data + wire leds_s1_translator_avalon_universal_slave_0_agent_rf_source_ready; // LEDs_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_ready -> LEDs_s1_translator_avalon_universal_slave_0_agent:rf_source_ready + wire leds_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_endofpacket; // LEDs_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_endofpacket -> LEDs_s1_translator_avalon_universal_slave_0_agent:rf_sink_endofpacket + wire leds_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_valid; // LEDs_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_valid -> LEDs_s1_translator_avalon_universal_slave_0_agent:rf_sink_valid + wire leds_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_startofpacket; // LEDs_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_startofpacket -> LEDs_s1_translator_avalon_universal_slave_0_agent:rf_sink_startofpacket + wire [96:0] leds_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_data; // LEDs_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_data -> LEDs_s1_translator_avalon_universal_slave_0_agent:rf_sink_data + wire leds_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_ready; // LEDs_s1_translator_avalon_universal_slave_0_agent:rf_sink_ready -> LEDs_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_ready + wire leds_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_valid; // LEDs_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_src_valid -> LEDs_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_sink_valid + wire [33:0] leds_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_data; // LEDs_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_src_data -> LEDs_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_sink_data + wire leds_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_ready; // LEDs_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_sink_ready -> LEDs_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_src_ready + wire jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_m0_waitrequest; // jtag_uart_avalon_jtag_slave_translator:uav_waitrequest -> jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent:m0_waitrequest + wire [2:0] jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_m0_burstcount; // jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent:m0_burstcount -> jtag_uart_avalon_jtag_slave_translator:uav_burstcount + wire [31:0] jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_m0_writedata; // jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent:m0_writedata -> jtag_uart_avalon_jtag_slave_translator:uav_writedata + wire [18:0] jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_m0_address; // jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent:m0_address -> jtag_uart_avalon_jtag_slave_translator:uav_address + wire jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_m0_write; // jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent:m0_write -> jtag_uart_avalon_jtag_slave_translator:uav_write + wire jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_m0_lock; // jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent:m0_lock -> jtag_uart_avalon_jtag_slave_translator:uav_lock + wire jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_m0_read; // jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent:m0_read -> jtag_uart_avalon_jtag_slave_translator:uav_read + wire [31:0] jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_m0_readdata; // jtag_uart_avalon_jtag_slave_translator:uav_readdata -> jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent:m0_readdata + wire jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_m0_readdatavalid; // jtag_uart_avalon_jtag_slave_translator:uav_readdatavalid -> jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent:m0_readdatavalid + wire jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_m0_debugaccess; // jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent:m0_debugaccess -> jtag_uart_avalon_jtag_slave_translator:uav_debugaccess + wire [3:0] jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_m0_byteenable; // jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent:m0_byteenable -> jtag_uart_avalon_jtag_slave_translator:uav_byteenable + wire jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rf_source_endofpacket; // jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent:rf_source_endofpacket -> jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rsp_fifo:in_endofpacket + wire jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rf_source_valid; // jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent:rf_source_valid -> jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rsp_fifo:in_valid + wire jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rf_source_startofpacket; // jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent:rf_source_startofpacket -> jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rsp_fifo:in_startofpacket + wire [96:0] jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rf_source_data; // jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent:rf_source_data -> jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rsp_fifo:in_data + wire jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rf_source_ready; // jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rsp_fifo:in_ready -> jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent:rf_source_ready + wire jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rsp_fifo_out_endofpacket; // jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rsp_fifo:out_endofpacket -> jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent:rf_sink_endofpacket + wire jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rsp_fifo_out_valid; // jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rsp_fifo:out_valid -> jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent:rf_sink_valid + wire jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rsp_fifo_out_startofpacket; // jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rsp_fifo:out_startofpacket -> jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent:rf_sink_startofpacket + wire [96:0] jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rsp_fifo_out_data; // jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rsp_fifo:out_data -> jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent:rf_sink_data + wire jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rsp_fifo_out_ready; // jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent:rf_sink_ready -> jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rsp_fifo:out_ready + wire jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rdata_fifo_src_valid; // jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent:rdata_fifo_src_valid -> jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent:rdata_fifo_sink_valid + wire [33:0] jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rdata_fifo_src_data; // jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent:rdata_fifo_src_data -> jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent:rdata_fifo_sink_data + wire jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rdata_fifo_src_ready; // jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent:rdata_fifo_sink_ready -> jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent:rdata_fifo_src_ready + wire ledrs_s1_translator_avalon_universal_slave_0_agent_m0_waitrequest; // LEDRs_s1_translator:uav_waitrequest -> LEDRs_s1_translator_avalon_universal_slave_0_agent:m0_waitrequest + wire [2:0] ledrs_s1_translator_avalon_universal_slave_0_agent_m0_burstcount; // LEDRs_s1_translator_avalon_universal_slave_0_agent:m0_burstcount -> LEDRs_s1_translator:uav_burstcount + wire [31:0] ledrs_s1_translator_avalon_universal_slave_0_agent_m0_writedata; // LEDRs_s1_translator_avalon_universal_slave_0_agent:m0_writedata -> LEDRs_s1_translator:uav_writedata + wire [18:0] ledrs_s1_translator_avalon_universal_slave_0_agent_m0_address; // LEDRs_s1_translator_avalon_universal_slave_0_agent:m0_address -> LEDRs_s1_translator:uav_address + wire ledrs_s1_translator_avalon_universal_slave_0_agent_m0_write; // LEDRs_s1_translator_avalon_universal_slave_0_agent:m0_write -> LEDRs_s1_translator:uav_write + wire ledrs_s1_translator_avalon_universal_slave_0_agent_m0_lock; // LEDRs_s1_translator_avalon_universal_slave_0_agent:m0_lock -> LEDRs_s1_translator:uav_lock + wire ledrs_s1_translator_avalon_universal_slave_0_agent_m0_read; // LEDRs_s1_translator_avalon_universal_slave_0_agent:m0_read -> LEDRs_s1_translator:uav_read + wire [31:0] ledrs_s1_translator_avalon_universal_slave_0_agent_m0_readdata; // LEDRs_s1_translator:uav_readdata -> LEDRs_s1_translator_avalon_universal_slave_0_agent:m0_readdata + wire ledrs_s1_translator_avalon_universal_slave_0_agent_m0_readdatavalid; // LEDRs_s1_translator:uav_readdatavalid -> LEDRs_s1_translator_avalon_universal_slave_0_agent:m0_readdatavalid + wire ledrs_s1_translator_avalon_universal_slave_0_agent_m0_debugaccess; // LEDRs_s1_translator_avalon_universal_slave_0_agent:m0_debugaccess -> LEDRs_s1_translator:uav_debugaccess + wire [3:0] ledrs_s1_translator_avalon_universal_slave_0_agent_m0_byteenable; // LEDRs_s1_translator_avalon_universal_slave_0_agent:m0_byteenable -> LEDRs_s1_translator:uav_byteenable + wire ledrs_s1_translator_avalon_universal_slave_0_agent_rf_source_endofpacket; // LEDRs_s1_translator_avalon_universal_slave_0_agent:rf_source_endofpacket -> LEDRs_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_endofpacket + wire ledrs_s1_translator_avalon_universal_slave_0_agent_rf_source_valid; // LEDRs_s1_translator_avalon_universal_slave_0_agent:rf_source_valid -> LEDRs_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_valid + wire ledrs_s1_translator_avalon_universal_slave_0_agent_rf_source_startofpacket; // LEDRs_s1_translator_avalon_universal_slave_0_agent:rf_source_startofpacket -> LEDRs_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_startofpacket + wire [96:0] ledrs_s1_translator_avalon_universal_slave_0_agent_rf_source_data; // LEDRs_s1_translator_avalon_universal_slave_0_agent:rf_source_data -> LEDRs_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_data + wire ledrs_s1_translator_avalon_universal_slave_0_agent_rf_source_ready; // LEDRs_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_ready -> LEDRs_s1_translator_avalon_universal_slave_0_agent:rf_source_ready + wire ledrs_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_endofpacket; // LEDRs_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_endofpacket -> LEDRs_s1_translator_avalon_universal_slave_0_agent:rf_sink_endofpacket + wire ledrs_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_valid; // LEDRs_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_valid -> LEDRs_s1_translator_avalon_universal_slave_0_agent:rf_sink_valid + wire ledrs_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_startofpacket; // LEDRs_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_startofpacket -> LEDRs_s1_translator_avalon_universal_slave_0_agent:rf_sink_startofpacket + wire [96:0] ledrs_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_data; // LEDRs_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_data -> LEDRs_s1_translator_avalon_universal_slave_0_agent:rf_sink_data + wire ledrs_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_ready; // LEDRs_s1_translator_avalon_universal_slave_0_agent:rf_sink_ready -> LEDRs_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_ready + wire ledrs_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_valid; // LEDRs_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_src_valid -> LEDRs_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_sink_valid + wire [33:0] ledrs_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_data; // LEDRs_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_src_data -> LEDRs_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_sink_data + wire ledrs_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_ready; // LEDRs_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_sink_ready -> LEDRs_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_src_ready + wire switches_s1_translator_avalon_universal_slave_0_agent_m0_waitrequest; // switches_s1_translator:uav_waitrequest -> switches_s1_translator_avalon_universal_slave_0_agent:m0_waitrequest + wire [2:0] switches_s1_translator_avalon_universal_slave_0_agent_m0_burstcount; // switches_s1_translator_avalon_universal_slave_0_agent:m0_burstcount -> switches_s1_translator:uav_burstcount + wire [31:0] switches_s1_translator_avalon_universal_slave_0_agent_m0_writedata; // switches_s1_translator_avalon_universal_slave_0_agent:m0_writedata -> switches_s1_translator:uav_writedata + wire [18:0] switches_s1_translator_avalon_universal_slave_0_agent_m0_address; // switches_s1_translator_avalon_universal_slave_0_agent:m0_address -> switches_s1_translator:uav_address + wire switches_s1_translator_avalon_universal_slave_0_agent_m0_write; // switches_s1_translator_avalon_universal_slave_0_agent:m0_write -> switches_s1_translator:uav_write + wire switches_s1_translator_avalon_universal_slave_0_agent_m0_lock; // switches_s1_translator_avalon_universal_slave_0_agent:m0_lock -> switches_s1_translator:uav_lock + wire switches_s1_translator_avalon_universal_slave_0_agent_m0_read; // switches_s1_translator_avalon_universal_slave_0_agent:m0_read -> switches_s1_translator:uav_read + wire [31:0] switches_s1_translator_avalon_universal_slave_0_agent_m0_readdata; // switches_s1_translator:uav_readdata -> switches_s1_translator_avalon_universal_slave_0_agent:m0_readdata + wire switches_s1_translator_avalon_universal_slave_0_agent_m0_readdatavalid; // switches_s1_translator:uav_readdatavalid -> switches_s1_translator_avalon_universal_slave_0_agent:m0_readdatavalid + wire switches_s1_translator_avalon_universal_slave_0_agent_m0_debugaccess; // switches_s1_translator_avalon_universal_slave_0_agent:m0_debugaccess -> switches_s1_translator:uav_debugaccess + wire [3:0] switches_s1_translator_avalon_universal_slave_0_agent_m0_byteenable; // switches_s1_translator_avalon_universal_slave_0_agent:m0_byteenable -> switches_s1_translator:uav_byteenable + wire switches_s1_translator_avalon_universal_slave_0_agent_rf_source_endofpacket; // switches_s1_translator_avalon_universal_slave_0_agent:rf_source_endofpacket -> switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_endofpacket + wire switches_s1_translator_avalon_universal_slave_0_agent_rf_source_valid; // switches_s1_translator_avalon_universal_slave_0_agent:rf_source_valid -> switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_valid + wire switches_s1_translator_avalon_universal_slave_0_agent_rf_source_startofpacket; // switches_s1_translator_avalon_universal_slave_0_agent:rf_source_startofpacket -> switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_startofpacket + wire [96:0] switches_s1_translator_avalon_universal_slave_0_agent_rf_source_data; // switches_s1_translator_avalon_universal_slave_0_agent:rf_source_data -> switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_data + wire switches_s1_translator_avalon_universal_slave_0_agent_rf_source_ready; // switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_ready -> switches_s1_translator_avalon_universal_slave_0_agent:rf_source_ready + wire switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_endofpacket; // switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_endofpacket -> switches_s1_translator_avalon_universal_slave_0_agent:rf_sink_endofpacket + wire switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_valid; // switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_valid -> switches_s1_translator_avalon_universal_slave_0_agent:rf_sink_valid + wire switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_startofpacket; // switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_startofpacket -> switches_s1_translator_avalon_universal_slave_0_agent:rf_sink_startofpacket + wire [96:0] switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_data; // switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_data -> switches_s1_translator_avalon_universal_slave_0_agent:rf_sink_data + wire switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_ready; // switches_s1_translator_avalon_universal_slave_0_agent:rf_sink_ready -> switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_ready + wire switches_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_valid; // switches_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_src_valid -> switches_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_sink_valid + wire [33:0] switches_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_data; // switches_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_src_data -> switches_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_sink_data + wire switches_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_ready; // switches_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_sink_ready -> switches_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_src_ready + wire push_switches_s1_translator_avalon_universal_slave_0_agent_m0_waitrequest; // push_switches_s1_translator:uav_waitrequest -> push_switches_s1_translator_avalon_universal_slave_0_agent:m0_waitrequest + wire [2:0] push_switches_s1_translator_avalon_universal_slave_0_agent_m0_burstcount; // push_switches_s1_translator_avalon_universal_slave_0_agent:m0_burstcount -> push_switches_s1_translator:uav_burstcount + wire [31:0] push_switches_s1_translator_avalon_universal_slave_0_agent_m0_writedata; // push_switches_s1_translator_avalon_universal_slave_0_agent:m0_writedata -> push_switches_s1_translator:uav_writedata + wire [18:0] push_switches_s1_translator_avalon_universal_slave_0_agent_m0_address; // push_switches_s1_translator_avalon_universal_slave_0_agent:m0_address -> push_switches_s1_translator:uav_address + wire push_switches_s1_translator_avalon_universal_slave_0_agent_m0_write; // push_switches_s1_translator_avalon_universal_slave_0_agent:m0_write -> push_switches_s1_translator:uav_write + wire push_switches_s1_translator_avalon_universal_slave_0_agent_m0_lock; // push_switches_s1_translator_avalon_universal_slave_0_agent:m0_lock -> push_switches_s1_translator:uav_lock + wire push_switches_s1_translator_avalon_universal_slave_0_agent_m0_read; // push_switches_s1_translator_avalon_universal_slave_0_agent:m0_read -> push_switches_s1_translator:uav_read + wire [31:0] push_switches_s1_translator_avalon_universal_slave_0_agent_m0_readdata; // push_switches_s1_translator:uav_readdata -> push_switches_s1_translator_avalon_universal_slave_0_agent:m0_readdata + wire push_switches_s1_translator_avalon_universal_slave_0_agent_m0_readdatavalid; // push_switches_s1_translator:uav_readdatavalid -> push_switches_s1_translator_avalon_universal_slave_0_agent:m0_readdatavalid + wire push_switches_s1_translator_avalon_universal_slave_0_agent_m0_debugaccess; // push_switches_s1_translator_avalon_universal_slave_0_agent:m0_debugaccess -> push_switches_s1_translator:uav_debugaccess + wire [3:0] push_switches_s1_translator_avalon_universal_slave_0_agent_m0_byteenable; // push_switches_s1_translator_avalon_universal_slave_0_agent:m0_byteenable -> push_switches_s1_translator:uav_byteenable + wire push_switches_s1_translator_avalon_universal_slave_0_agent_rf_source_endofpacket; // push_switches_s1_translator_avalon_universal_slave_0_agent:rf_source_endofpacket -> push_switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_endofpacket + wire push_switches_s1_translator_avalon_universal_slave_0_agent_rf_source_valid; // push_switches_s1_translator_avalon_universal_slave_0_agent:rf_source_valid -> push_switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_valid + wire push_switches_s1_translator_avalon_universal_slave_0_agent_rf_source_startofpacket; // push_switches_s1_translator_avalon_universal_slave_0_agent:rf_source_startofpacket -> push_switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_startofpacket + wire [96:0] push_switches_s1_translator_avalon_universal_slave_0_agent_rf_source_data; // push_switches_s1_translator_avalon_universal_slave_0_agent:rf_source_data -> push_switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_data + wire push_switches_s1_translator_avalon_universal_slave_0_agent_rf_source_ready; // push_switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_ready -> push_switches_s1_translator_avalon_universal_slave_0_agent:rf_source_ready + wire push_switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_endofpacket; // push_switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_endofpacket -> push_switches_s1_translator_avalon_universal_slave_0_agent:rf_sink_endofpacket + wire push_switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_valid; // push_switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_valid -> push_switches_s1_translator_avalon_universal_slave_0_agent:rf_sink_valid + wire push_switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_startofpacket; // push_switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_startofpacket -> push_switches_s1_translator_avalon_universal_slave_0_agent:rf_sink_startofpacket + wire [96:0] push_switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_data; // push_switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_data -> push_switches_s1_translator_avalon_universal_slave_0_agent:rf_sink_data + wire push_switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_ready; // push_switches_s1_translator_avalon_universal_slave_0_agent:rf_sink_ready -> push_switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_ready + wire push_switches_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_valid; // push_switches_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_src_valid -> push_switches_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_sink_valid + wire [33:0] push_switches_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_data; // push_switches_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_src_data -> push_switches_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_sink_data + wire push_switches_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_ready; // push_switches_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_sink_ready -> push_switches_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_src_ready + wire hex0_s1_translator_avalon_universal_slave_0_agent_m0_waitrequest; // hex0_s1_translator:uav_waitrequest -> hex0_s1_translator_avalon_universal_slave_0_agent:m0_waitrequest + wire [2:0] hex0_s1_translator_avalon_universal_slave_0_agent_m0_burstcount; // hex0_s1_translator_avalon_universal_slave_0_agent:m0_burstcount -> hex0_s1_translator:uav_burstcount + wire [31:0] hex0_s1_translator_avalon_universal_slave_0_agent_m0_writedata; // hex0_s1_translator_avalon_universal_slave_0_agent:m0_writedata -> hex0_s1_translator:uav_writedata + wire [18:0] hex0_s1_translator_avalon_universal_slave_0_agent_m0_address; // hex0_s1_translator_avalon_universal_slave_0_agent:m0_address -> hex0_s1_translator:uav_address + wire hex0_s1_translator_avalon_universal_slave_0_agent_m0_write; // hex0_s1_translator_avalon_universal_slave_0_agent:m0_write -> hex0_s1_translator:uav_write + wire hex0_s1_translator_avalon_universal_slave_0_agent_m0_lock; // hex0_s1_translator_avalon_universal_slave_0_agent:m0_lock -> hex0_s1_translator:uav_lock + wire hex0_s1_translator_avalon_universal_slave_0_agent_m0_read; // hex0_s1_translator_avalon_universal_slave_0_agent:m0_read -> hex0_s1_translator:uav_read + wire [31:0] hex0_s1_translator_avalon_universal_slave_0_agent_m0_readdata; // hex0_s1_translator:uav_readdata -> hex0_s1_translator_avalon_universal_slave_0_agent:m0_readdata + wire hex0_s1_translator_avalon_universal_slave_0_agent_m0_readdatavalid; // hex0_s1_translator:uav_readdatavalid -> hex0_s1_translator_avalon_universal_slave_0_agent:m0_readdatavalid + wire hex0_s1_translator_avalon_universal_slave_0_agent_m0_debugaccess; // hex0_s1_translator_avalon_universal_slave_0_agent:m0_debugaccess -> hex0_s1_translator:uav_debugaccess + wire [3:0] hex0_s1_translator_avalon_universal_slave_0_agent_m0_byteenable; // hex0_s1_translator_avalon_universal_slave_0_agent:m0_byteenable -> hex0_s1_translator:uav_byteenable + wire hex0_s1_translator_avalon_universal_slave_0_agent_rf_source_endofpacket; // hex0_s1_translator_avalon_universal_slave_0_agent:rf_source_endofpacket -> hex0_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_endofpacket + wire hex0_s1_translator_avalon_universal_slave_0_agent_rf_source_valid; // hex0_s1_translator_avalon_universal_slave_0_agent:rf_source_valid -> hex0_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_valid + wire hex0_s1_translator_avalon_universal_slave_0_agent_rf_source_startofpacket; // hex0_s1_translator_avalon_universal_slave_0_agent:rf_source_startofpacket -> hex0_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_startofpacket + wire [96:0] hex0_s1_translator_avalon_universal_slave_0_agent_rf_source_data; // hex0_s1_translator_avalon_universal_slave_0_agent:rf_source_data -> hex0_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_data + wire hex0_s1_translator_avalon_universal_slave_0_agent_rf_source_ready; // hex0_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_ready -> hex0_s1_translator_avalon_universal_slave_0_agent:rf_source_ready + wire hex0_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_endofpacket; // hex0_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_endofpacket -> hex0_s1_translator_avalon_universal_slave_0_agent:rf_sink_endofpacket + wire hex0_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_valid; // hex0_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_valid -> hex0_s1_translator_avalon_universal_slave_0_agent:rf_sink_valid + wire hex0_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_startofpacket; // hex0_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_startofpacket -> hex0_s1_translator_avalon_universal_slave_0_agent:rf_sink_startofpacket + wire [96:0] hex0_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_data; // hex0_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_data -> hex0_s1_translator_avalon_universal_slave_0_agent:rf_sink_data + wire hex0_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_ready; // hex0_s1_translator_avalon_universal_slave_0_agent:rf_sink_ready -> hex0_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_ready + wire hex0_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_valid; // hex0_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_src_valid -> hex0_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_sink_valid + wire [33:0] hex0_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_data; // hex0_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_src_data -> hex0_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_sink_data + wire hex0_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_ready; // hex0_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_sink_ready -> hex0_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_src_ready + wire hex1_s1_translator_avalon_universal_slave_0_agent_m0_waitrequest; // hex1_s1_translator:uav_waitrequest -> hex1_s1_translator_avalon_universal_slave_0_agent:m0_waitrequest + wire [2:0] hex1_s1_translator_avalon_universal_slave_0_agent_m0_burstcount; // hex1_s1_translator_avalon_universal_slave_0_agent:m0_burstcount -> hex1_s1_translator:uav_burstcount + wire [31:0] hex1_s1_translator_avalon_universal_slave_0_agent_m0_writedata; // hex1_s1_translator_avalon_universal_slave_0_agent:m0_writedata -> hex1_s1_translator:uav_writedata + wire [18:0] hex1_s1_translator_avalon_universal_slave_0_agent_m0_address; // hex1_s1_translator_avalon_universal_slave_0_agent:m0_address -> hex1_s1_translator:uav_address + wire hex1_s1_translator_avalon_universal_slave_0_agent_m0_write; // hex1_s1_translator_avalon_universal_slave_0_agent:m0_write -> hex1_s1_translator:uav_write + wire hex1_s1_translator_avalon_universal_slave_0_agent_m0_lock; // hex1_s1_translator_avalon_universal_slave_0_agent:m0_lock -> hex1_s1_translator:uav_lock + wire hex1_s1_translator_avalon_universal_slave_0_agent_m0_read; // hex1_s1_translator_avalon_universal_slave_0_agent:m0_read -> hex1_s1_translator:uav_read + wire [31:0] hex1_s1_translator_avalon_universal_slave_0_agent_m0_readdata; // hex1_s1_translator:uav_readdata -> hex1_s1_translator_avalon_universal_slave_0_agent:m0_readdata + wire hex1_s1_translator_avalon_universal_slave_0_agent_m0_readdatavalid; // hex1_s1_translator:uav_readdatavalid -> hex1_s1_translator_avalon_universal_slave_0_agent:m0_readdatavalid + wire hex1_s1_translator_avalon_universal_slave_0_agent_m0_debugaccess; // hex1_s1_translator_avalon_universal_slave_0_agent:m0_debugaccess -> hex1_s1_translator:uav_debugaccess + wire [3:0] hex1_s1_translator_avalon_universal_slave_0_agent_m0_byteenable; // hex1_s1_translator_avalon_universal_slave_0_agent:m0_byteenable -> hex1_s1_translator:uav_byteenable + wire hex1_s1_translator_avalon_universal_slave_0_agent_rf_source_endofpacket; // hex1_s1_translator_avalon_universal_slave_0_agent:rf_source_endofpacket -> hex1_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_endofpacket + wire hex1_s1_translator_avalon_universal_slave_0_agent_rf_source_valid; // hex1_s1_translator_avalon_universal_slave_0_agent:rf_source_valid -> hex1_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_valid + wire hex1_s1_translator_avalon_universal_slave_0_agent_rf_source_startofpacket; // hex1_s1_translator_avalon_universal_slave_0_agent:rf_source_startofpacket -> hex1_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_startofpacket + wire [96:0] hex1_s1_translator_avalon_universal_slave_0_agent_rf_source_data; // hex1_s1_translator_avalon_universal_slave_0_agent:rf_source_data -> hex1_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_data + wire hex1_s1_translator_avalon_universal_slave_0_agent_rf_source_ready; // hex1_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_ready -> hex1_s1_translator_avalon_universal_slave_0_agent:rf_source_ready + wire hex1_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_endofpacket; // hex1_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_endofpacket -> hex1_s1_translator_avalon_universal_slave_0_agent:rf_sink_endofpacket + wire hex1_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_valid; // hex1_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_valid -> hex1_s1_translator_avalon_universal_slave_0_agent:rf_sink_valid + wire hex1_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_startofpacket; // hex1_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_startofpacket -> hex1_s1_translator_avalon_universal_slave_0_agent:rf_sink_startofpacket + wire [96:0] hex1_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_data; // hex1_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_data -> hex1_s1_translator_avalon_universal_slave_0_agent:rf_sink_data + wire hex1_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_ready; // hex1_s1_translator_avalon_universal_slave_0_agent:rf_sink_ready -> hex1_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_ready + wire hex1_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_valid; // hex1_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_src_valid -> hex1_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_sink_valid + wire [33:0] hex1_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_data; // hex1_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_src_data -> hex1_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_sink_data + wire hex1_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_ready; // hex1_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_sink_ready -> hex1_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_src_ready + wire hex2_s1_translator_avalon_universal_slave_0_agent_m0_waitrequest; // hex2_s1_translator:uav_waitrequest -> hex2_s1_translator_avalon_universal_slave_0_agent:m0_waitrequest + wire [2:0] hex2_s1_translator_avalon_universal_slave_0_agent_m0_burstcount; // hex2_s1_translator_avalon_universal_slave_0_agent:m0_burstcount -> hex2_s1_translator:uav_burstcount + wire [31:0] hex2_s1_translator_avalon_universal_slave_0_agent_m0_writedata; // hex2_s1_translator_avalon_universal_slave_0_agent:m0_writedata -> hex2_s1_translator:uav_writedata + wire [18:0] hex2_s1_translator_avalon_universal_slave_0_agent_m0_address; // hex2_s1_translator_avalon_universal_slave_0_agent:m0_address -> hex2_s1_translator:uav_address + wire hex2_s1_translator_avalon_universal_slave_0_agent_m0_write; // hex2_s1_translator_avalon_universal_slave_0_agent:m0_write -> hex2_s1_translator:uav_write + wire hex2_s1_translator_avalon_universal_slave_0_agent_m0_lock; // hex2_s1_translator_avalon_universal_slave_0_agent:m0_lock -> hex2_s1_translator:uav_lock + wire hex2_s1_translator_avalon_universal_slave_0_agent_m0_read; // hex2_s1_translator_avalon_universal_slave_0_agent:m0_read -> hex2_s1_translator:uav_read + wire [31:0] hex2_s1_translator_avalon_universal_slave_0_agent_m0_readdata; // hex2_s1_translator:uav_readdata -> hex2_s1_translator_avalon_universal_slave_0_agent:m0_readdata + wire hex2_s1_translator_avalon_universal_slave_0_agent_m0_readdatavalid; // hex2_s1_translator:uav_readdatavalid -> hex2_s1_translator_avalon_universal_slave_0_agent:m0_readdatavalid + wire hex2_s1_translator_avalon_universal_slave_0_agent_m0_debugaccess; // hex2_s1_translator_avalon_universal_slave_0_agent:m0_debugaccess -> hex2_s1_translator:uav_debugaccess + wire [3:0] hex2_s1_translator_avalon_universal_slave_0_agent_m0_byteenable; // hex2_s1_translator_avalon_universal_slave_0_agent:m0_byteenable -> hex2_s1_translator:uav_byteenable + wire hex2_s1_translator_avalon_universal_slave_0_agent_rf_source_endofpacket; // hex2_s1_translator_avalon_universal_slave_0_agent:rf_source_endofpacket -> hex2_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_endofpacket + wire hex2_s1_translator_avalon_universal_slave_0_agent_rf_source_valid; // hex2_s1_translator_avalon_universal_slave_0_agent:rf_source_valid -> hex2_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_valid + wire hex2_s1_translator_avalon_universal_slave_0_agent_rf_source_startofpacket; // hex2_s1_translator_avalon_universal_slave_0_agent:rf_source_startofpacket -> hex2_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_startofpacket + wire [96:0] hex2_s1_translator_avalon_universal_slave_0_agent_rf_source_data; // hex2_s1_translator_avalon_universal_slave_0_agent:rf_source_data -> hex2_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_data + wire hex2_s1_translator_avalon_universal_slave_0_agent_rf_source_ready; // hex2_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_ready -> hex2_s1_translator_avalon_universal_slave_0_agent:rf_source_ready + wire hex2_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_endofpacket; // hex2_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_endofpacket -> hex2_s1_translator_avalon_universal_slave_0_agent:rf_sink_endofpacket + wire hex2_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_valid; // hex2_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_valid -> hex2_s1_translator_avalon_universal_slave_0_agent:rf_sink_valid + wire hex2_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_startofpacket; // hex2_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_startofpacket -> hex2_s1_translator_avalon_universal_slave_0_agent:rf_sink_startofpacket + wire [96:0] hex2_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_data; // hex2_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_data -> hex2_s1_translator_avalon_universal_slave_0_agent:rf_sink_data + wire hex2_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_ready; // hex2_s1_translator_avalon_universal_slave_0_agent:rf_sink_ready -> hex2_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_ready + wire hex2_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_valid; // hex2_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_src_valid -> hex2_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_sink_valid + wire [33:0] hex2_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_data; // hex2_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_src_data -> hex2_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_sink_data + wire hex2_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_ready; // hex2_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_sink_ready -> hex2_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_src_ready + wire hex3_s1_translator_avalon_universal_slave_0_agent_m0_waitrequest; // hex3_s1_translator:uav_waitrequest -> hex3_s1_translator_avalon_universal_slave_0_agent:m0_waitrequest + wire [2:0] hex3_s1_translator_avalon_universal_slave_0_agent_m0_burstcount; // hex3_s1_translator_avalon_universal_slave_0_agent:m0_burstcount -> hex3_s1_translator:uav_burstcount + wire [31:0] hex3_s1_translator_avalon_universal_slave_0_agent_m0_writedata; // hex3_s1_translator_avalon_universal_slave_0_agent:m0_writedata -> hex3_s1_translator:uav_writedata + wire [18:0] hex3_s1_translator_avalon_universal_slave_0_agent_m0_address; // hex3_s1_translator_avalon_universal_slave_0_agent:m0_address -> hex3_s1_translator:uav_address + wire hex3_s1_translator_avalon_universal_slave_0_agent_m0_write; // hex3_s1_translator_avalon_universal_slave_0_agent:m0_write -> hex3_s1_translator:uav_write + wire hex3_s1_translator_avalon_universal_slave_0_agent_m0_lock; // hex3_s1_translator_avalon_universal_slave_0_agent:m0_lock -> hex3_s1_translator:uav_lock + wire hex3_s1_translator_avalon_universal_slave_0_agent_m0_read; // hex3_s1_translator_avalon_universal_slave_0_agent:m0_read -> hex3_s1_translator:uav_read + wire [31:0] hex3_s1_translator_avalon_universal_slave_0_agent_m0_readdata; // hex3_s1_translator:uav_readdata -> hex3_s1_translator_avalon_universal_slave_0_agent:m0_readdata + wire hex3_s1_translator_avalon_universal_slave_0_agent_m0_readdatavalid; // hex3_s1_translator:uav_readdatavalid -> hex3_s1_translator_avalon_universal_slave_0_agent:m0_readdatavalid + wire hex3_s1_translator_avalon_universal_slave_0_agent_m0_debugaccess; // hex3_s1_translator_avalon_universal_slave_0_agent:m0_debugaccess -> hex3_s1_translator:uav_debugaccess + wire [3:0] hex3_s1_translator_avalon_universal_slave_0_agent_m0_byteenable; // hex3_s1_translator_avalon_universal_slave_0_agent:m0_byteenable -> hex3_s1_translator:uav_byteenable + wire hex3_s1_translator_avalon_universal_slave_0_agent_rf_source_endofpacket; // hex3_s1_translator_avalon_universal_slave_0_agent:rf_source_endofpacket -> hex3_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_endofpacket + wire hex3_s1_translator_avalon_universal_slave_0_agent_rf_source_valid; // hex3_s1_translator_avalon_universal_slave_0_agent:rf_source_valid -> hex3_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_valid + wire hex3_s1_translator_avalon_universal_slave_0_agent_rf_source_startofpacket; // hex3_s1_translator_avalon_universal_slave_0_agent:rf_source_startofpacket -> hex3_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_startofpacket + wire [96:0] hex3_s1_translator_avalon_universal_slave_0_agent_rf_source_data; // hex3_s1_translator_avalon_universal_slave_0_agent:rf_source_data -> hex3_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_data + wire hex3_s1_translator_avalon_universal_slave_0_agent_rf_source_ready; // hex3_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_ready -> hex3_s1_translator_avalon_universal_slave_0_agent:rf_source_ready + wire hex3_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_endofpacket; // hex3_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_endofpacket -> hex3_s1_translator_avalon_universal_slave_0_agent:rf_sink_endofpacket + wire hex3_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_valid; // hex3_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_valid -> hex3_s1_translator_avalon_universal_slave_0_agent:rf_sink_valid + wire hex3_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_startofpacket; // hex3_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_startofpacket -> hex3_s1_translator_avalon_universal_slave_0_agent:rf_sink_startofpacket + wire [96:0] hex3_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_data; // hex3_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_data -> hex3_s1_translator_avalon_universal_slave_0_agent:rf_sink_data + wire hex3_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_ready; // hex3_s1_translator_avalon_universal_slave_0_agent:rf_sink_ready -> hex3_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_ready + wire hex3_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_valid; // hex3_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_src_valid -> hex3_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_sink_valid + wire [33:0] hex3_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_data; // hex3_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_src_data -> hex3_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_sink_data + wire hex3_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_ready; // hex3_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_sink_ready -> hex3_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_src_ready + wire hex4_s1_translator_avalon_universal_slave_0_agent_m0_waitrequest; // hex4_s1_translator:uav_waitrequest -> hex4_s1_translator_avalon_universal_slave_0_agent:m0_waitrequest + wire [2:0] hex4_s1_translator_avalon_universal_slave_0_agent_m0_burstcount; // hex4_s1_translator_avalon_universal_slave_0_agent:m0_burstcount -> hex4_s1_translator:uav_burstcount + wire [31:0] hex4_s1_translator_avalon_universal_slave_0_agent_m0_writedata; // hex4_s1_translator_avalon_universal_slave_0_agent:m0_writedata -> hex4_s1_translator:uav_writedata + wire [18:0] hex4_s1_translator_avalon_universal_slave_0_agent_m0_address; // hex4_s1_translator_avalon_universal_slave_0_agent:m0_address -> hex4_s1_translator:uav_address + wire hex4_s1_translator_avalon_universal_slave_0_agent_m0_write; // hex4_s1_translator_avalon_universal_slave_0_agent:m0_write -> hex4_s1_translator:uav_write + wire hex4_s1_translator_avalon_universal_slave_0_agent_m0_lock; // hex4_s1_translator_avalon_universal_slave_0_agent:m0_lock -> hex4_s1_translator:uav_lock + wire hex4_s1_translator_avalon_universal_slave_0_agent_m0_read; // hex4_s1_translator_avalon_universal_slave_0_agent:m0_read -> hex4_s1_translator:uav_read + wire [31:0] hex4_s1_translator_avalon_universal_slave_0_agent_m0_readdata; // hex4_s1_translator:uav_readdata -> hex4_s1_translator_avalon_universal_slave_0_agent:m0_readdata + wire hex4_s1_translator_avalon_universal_slave_0_agent_m0_readdatavalid; // hex4_s1_translator:uav_readdatavalid -> hex4_s1_translator_avalon_universal_slave_0_agent:m0_readdatavalid + wire hex4_s1_translator_avalon_universal_slave_0_agent_m0_debugaccess; // hex4_s1_translator_avalon_universal_slave_0_agent:m0_debugaccess -> hex4_s1_translator:uav_debugaccess + wire [3:0] hex4_s1_translator_avalon_universal_slave_0_agent_m0_byteenable; // hex4_s1_translator_avalon_universal_slave_0_agent:m0_byteenable -> hex4_s1_translator:uav_byteenable + wire hex4_s1_translator_avalon_universal_slave_0_agent_rf_source_endofpacket; // hex4_s1_translator_avalon_universal_slave_0_agent:rf_source_endofpacket -> hex4_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_endofpacket + wire hex4_s1_translator_avalon_universal_slave_0_agent_rf_source_valid; // hex4_s1_translator_avalon_universal_slave_0_agent:rf_source_valid -> hex4_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_valid + wire hex4_s1_translator_avalon_universal_slave_0_agent_rf_source_startofpacket; // hex4_s1_translator_avalon_universal_slave_0_agent:rf_source_startofpacket -> hex4_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_startofpacket + wire [96:0] hex4_s1_translator_avalon_universal_slave_0_agent_rf_source_data; // hex4_s1_translator_avalon_universal_slave_0_agent:rf_source_data -> hex4_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_data + wire hex4_s1_translator_avalon_universal_slave_0_agent_rf_source_ready; // hex4_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_ready -> hex4_s1_translator_avalon_universal_slave_0_agent:rf_source_ready + wire hex4_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_endofpacket; // hex4_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_endofpacket -> hex4_s1_translator_avalon_universal_slave_0_agent:rf_sink_endofpacket + wire hex4_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_valid; // hex4_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_valid -> hex4_s1_translator_avalon_universal_slave_0_agent:rf_sink_valid + wire hex4_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_startofpacket; // hex4_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_startofpacket -> hex4_s1_translator_avalon_universal_slave_0_agent:rf_sink_startofpacket + wire [96:0] hex4_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_data; // hex4_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_data -> hex4_s1_translator_avalon_universal_slave_0_agent:rf_sink_data + wire hex4_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_ready; // hex4_s1_translator_avalon_universal_slave_0_agent:rf_sink_ready -> hex4_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_ready + wire hex4_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_valid; // hex4_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_src_valid -> hex4_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_sink_valid + wire [33:0] hex4_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_data; // hex4_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_src_data -> hex4_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_sink_data + wire hex4_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_ready; // hex4_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_sink_ready -> hex4_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_src_ready + wire hex5_s1_translator_avalon_universal_slave_0_agent_m0_waitrequest; // hex5_s1_translator:uav_waitrequest -> hex5_s1_translator_avalon_universal_slave_0_agent:m0_waitrequest + wire [2:0] hex5_s1_translator_avalon_universal_slave_0_agent_m0_burstcount; // hex5_s1_translator_avalon_universal_slave_0_agent:m0_burstcount -> hex5_s1_translator:uav_burstcount + wire [31:0] hex5_s1_translator_avalon_universal_slave_0_agent_m0_writedata; // hex5_s1_translator_avalon_universal_slave_0_agent:m0_writedata -> hex5_s1_translator:uav_writedata + wire [18:0] hex5_s1_translator_avalon_universal_slave_0_agent_m0_address; // hex5_s1_translator_avalon_universal_slave_0_agent:m0_address -> hex5_s1_translator:uav_address + wire hex5_s1_translator_avalon_universal_slave_0_agent_m0_write; // hex5_s1_translator_avalon_universal_slave_0_agent:m0_write -> hex5_s1_translator:uav_write + wire hex5_s1_translator_avalon_universal_slave_0_agent_m0_lock; // hex5_s1_translator_avalon_universal_slave_0_agent:m0_lock -> hex5_s1_translator:uav_lock + wire hex5_s1_translator_avalon_universal_slave_0_agent_m0_read; // hex5_s1_translator_avalon_universal_slave_0_agent:m0_read -> hex5_s1_translator:uav_read + wire [31:0] hex5_s1_translator_avalon_universal_slave_0_agent_m0_readdata; // hex5_s1_translator:uav_readdata -> hex5_s1_translator_avalon_universal_slave_0_agent:m0_readdata + wire hex5_s1_translator_avalon_universal_slave_0_agent_m0_readdatavalid; // hex5_s1_translator:uav_readdatavalid -> hex5_s1_translator_avalon_universal_slave_0_agent:m0_readdatavalid + wire hex5_s1_translator_avalon_universal_slave_0_agent_m0_debugaccess; // hex5_s1_translator_avalon_universal_slave_0_agent:m0_debugaccess -> hex5_s1_translator:uav_debugaccess + wire [3:0] hex5_s1_translator_avalon_universal_slave_0_agent_m0_byteenable; // hex5_s1_translator_avalon_universal_slave_0_agent:m0_byteenable -> hex5_s1_translator:uav_byteenable + wire hex5_s1_translator_avalon_universal_slave_0_agent_rf_source_endofpacket; // hex5_s1_translator_avalon_universal_slave_0_agent:rf_source_endofpacket -> hex5_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_endofpacket + wire hex5_s1_translator_avalon_universal_slave_0_agent_rf_source_valid; // hex5_s1_translator_avalon_universal_slave_0_agent:rf_source_valid -> hex5_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_valid + wire hex5_s1_translator_avalon_universal_slave_0_agent_rf_source_startofpacket; // hex5_s1_translator_avalon_universal_slave_0_agent:rf_source_startofpacket -> hex5_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_startofpacket + wire [96:0] hex5_s1_translator_avalon_universal_slave_0_agent_rf_source_data; // hex5_s1_translator_avalon_universal_slave_0_agent:rf_source_data -> hex5_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_data + wire hex5_s1_translator_avalon_universal_slave_0_agent_rf_source_ready; // hex5_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_ready -> hex5_s1_translator_avalon_universal_slave_0_agent:rf_source_ready + wire hex5_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_endofpacket; // hex5_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_endofpacket -> hex5_s1_translator_avalon_universal_slave_0_agent:rf_sink_endofpacket + wire hex5_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_valid; // hex5_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_valid -> hex5_s1_translator_avalon_universal_slave_0_agent:rf_sink_valid + wire hex5_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_startofpacket; // hex5_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_startofpacket -> hex5_s1_translator_avalon_universal_slave_0_agent:rf_sink_startofpacket + wire [96:0] hex5_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_data; // hex5_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_data -> hex5_s1_translator_avalon_universal_slave_0_agent:rf_sink_data + wire hex5_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_ready; // hex5_s1_translator_avalon_universal_slave_0_agent:rf_sink_ready -> hex5_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_ready + wire hex5_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_valid; // hex5_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_src_valid -> hex5_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_sink_valid + wire [33:0] hex5_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_data; // hex5_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_src_data -> hex5_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_sink_data + wire hex5_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_ready; // hex5_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_sink_ready -> hex5_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_src_ready + wire hex6_s1_translator_avalon_universal_slave_0_agent_m0_waitrequest; // hex6_s1_translator:uav_waitrequest -> hex6_s1_translator_avalon_universal_slave_0_agent:m0_waitrequest + wire [2:0] hex6_s1_translator_avalon_universal_slave_0_agent_m0_burstcount; // hex6_s1_translator_avalon_universal_slave_0_agent:m0_burstcount -> hex6_s1_translator:uav_burstcount + wire [31:0] hex6_s1_translator_avalon_universal_slave_0_agent_m0_writedata; // hex6_s1_translator_avalon_universal_slave_0_agent:m0_writedata -> hex6_s1_translator:uav_writedata + wire [18:0] hex6_s1_translator_avalon_universal_slave_0_agent_m0_address; // hex6_s1_translator_avalon_universal_slave_0_agent:m0_address -> hex6_s1_translator:uav_address + wire hex6_s1_translator_avalon_universal_slave_0_agent_m0_write; // hex6_s1_translator_avalon_universal_slave_0_agent:m0_write -> hex6_s1_translator:uav_write + wire hex6_s1_translator_avalon_universal_slave_0_agent_m0_lock; // hex6_s1_translator_avalon_universal_slave_0_agent:m0_lock -> hex6_s1_translator:uav_lock + wire hex6_s1_translator_avalon_universal_slave_0_agent_m0_read; // hex6_s1_translator_avalon_universal_slave_0_agent:m0_read -> hex6_s1_translator:uav_read + wire [31:0] hex6_s1_translator_avalon_universal_slave_0_agent_m0_readdata; // hex6_s1_translator:uav_readdata -> hex6_s1_translator_avalon_universal_slave_0_agent:m0_readdata + wire hex6_s1_translator_avalon_universal_slave_0_agent_m0_readdatavalid; // hex6_s1_translator:uav_readdatavalid -> hex6_s1_translator_avalon_universal_slave_0_agent:m0_readdatavalid + wire hex6_s1_translator_avalon_universal_slave_0_agent_m0_debugaccess; // hex6_s1_translator_avalon_universal_slave_0_agent:m0_debugaccess -> hex6_s1_translator:uav_debugaccess + wire [3:0] hex6_s1_translator_avalon_universal_slave_0_agent_m0_byteenable; // hex6_s1_translator_avalon_universal_slave_0_agent:m0_byteenable -> hex6_s1_translator:uav_byteenable + wire hex6_s1_translator_avalon_universal_slave_0_agent_rf_source_endofpacket; // hex6_s1_translator_avalon_universal_slave_0_agent:rf_source_endofpacket -> hex6_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_endofpacket + wire hex6_s1_translator_avalon_universal_slave_0_agent_rf_source_valid; // hex6_s1_translator_avalon_universal_slave_0_agent:rf_source_valid -> hex6_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_valid + wire hex6_s1_translator_avalon_universal_slave_0_agent_rf_source_startofpacket; // hex6_s1_translator_avalon_universal_slave_0_agent:rf_source_startofpacket -> hex6_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_startofpacket + wire [96:0] hex6_s1_translator_avalon_universal_slave_0_agent_rf_source_data; // hex6_s1_translator_avalon_universal_slave_0_agent:rf_source_data -> hex6_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_data + wire hex6_s1_translator_avalon_universal_slave_0_agent_rf_source_ready; // hex6_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_ready -> hex6_s1_translator_avalon_universal_slave_0_agent:rf_source_ready + wire hex6_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_endofpacket; // hex6_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_endofpacket -> hex6_s1_translator_avalon_universal_slave_0_agent:rf_sink_endofpacket + wire hex6_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_valid; // hex6_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_valid -> hex6_s1_translator_avalon_universal_slave_0_agent:rf_sink_valid + wire hex6_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_startofpacket; // hex6_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_startofpacket -> hex6_s1_translator_avalon_universal_slave_0_agent:rf_sink_startofpacket + wire [96:0] hex6_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_data; // hex6_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_data -> hex6_s1_translator_avalon_universal_slave_0_agent:rf_sink_data + wire hex6_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_ready; // hex6_s1_translator_avalon_universal_slave_0_agent:rf_sink_ready -> hex6_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_ready + wire hex6_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_valid; // hex6_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_src_valid -> hex6_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_sink_valid + wire [33:0] hex6_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_data; // hex6_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_src_data -> hex6_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_sink_data + wire hex6_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_ready; // hex6_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_sink_ready -> hex6_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_src_ready + wire hex7_s1_translator_avalon_universal_slave_0_agent_m0_waitrequest; // hex7_s1_translator:uav_waitrequest -> hex7_s1_translator_avalon_universal_slave_0_agent:m0_waitrequest + wire [2:0] hex7_s1_translator_avalon_universal_slave_0_agent_m0_burstcount; // hex7_s1_translator_avalon_universal_slave_0_agent:m0_burstcount -> hex7_s1_translator:uav_burstcount + wire [31:0] hex7_s1_translator_avalon_universal_slave_0_agent_m0_writedata; // hex7_s1_translator_avalon_universal_slave_0_agent:m0_writedata -> hex7_s1_translator:uav_writedata + wire [18:0] hex7_s1_translator_avalon_universal_slave_0_agent_m0_address; // hex7_s1_translator_avalon_universal_slave_0_agent:m0_address -> hex7_s1_translator:uav_address + wire hex7_s1_translator_avalon_universal_slave_0_agent_m0_write; // hex7_s1_translator_avalon_universal_slave_0_agent:m0_write -> hex7_s1_translator:uav_write + wire hex7_s1_translator_avalon_universal_slave_0_agent_m0_lock; // hex7_s1_translator_avalon_universal_slave_0_agent:m0_lock -> hex7_s1_translator:uav_lock + wire hex7_s1_translator_avalon_universal_slave_0_agent_m0_read; // hex7_s1_translator_avalon_universal_slave_0_agent:m0_read -> hex7_s1_translator:uav_read + wire [31:0] hex7_s1_translator_avalon_universal_slave_0_agent_m0_readdata; // hex7_s1_translator:uav_readdata -> hex7_s1_translator_avalon_universal_slave_0_agent:m0_readdata + wire hex7_s1_translator_avalon_universal_slave_0_agent_m0_readdatavalid; // hex7_s1_translator:uav_readdatavalid -> hex7_s1_translator_avalon_universal_slave_0_agent:m0_readdatavalid + wire hex7_s1_translator_avalon_universal_slave_0_agent_m0_debugaccess; // hex7_s1_translator_avalon_universal_slave_0_agent:m0_debugaccess -> hex7_s1_translator:uav_debugaccess + wire [3:0] hex7_s1_translator_avalon_universal_slave_0_agent_m0_byteenable; // hex7_s1_translator_avalon_universal_slave_0_agent:m0_byteenable -> hex7_s1_translator:uav_byteenable + wire hex7_s1_translator_avalon_universal_slave_0_agent_rf_source_endofpacket; // hex7_s1_translator_avalon_universal_slave_0_agent:rf_source_endofpacket -> hex7_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_endofpacket + wire hex7_s1_translator_avalon_universal_slave_0_agent_rf_source_valid; // hex7_s1_translator_avalon_universal_slave_0_agent:rf_source_valid -> hex7_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_valid + wire hex7_s1_translator_avalon_universal_slave_0_agent_rf_source_startofpacket; // hex7_s1_translator_avalon_universal_slave_0_agent:rf_source_startofpacket -> hex7_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_startofpacket + wire [96:0] hex7_s1_translator_avalon_universal_slave_0_agent_rf_source_data; // hex7_s1_translator_avalon_universal_slave_0_agent:rf_source_data -> hex7_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_data + wire hex7_s1_translator_avalon_universal_slave_0_agent_rf_source_ready; // hex7_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_ready -> hex7_s1_translator_avalon_universal_slave_0_agent:rf_source_ready + wire hex7_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_endofpacket; // hex7_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_endofpacket -> hex7_s1_translator_avalon_universal_slave_0_agent:rf_sink_endofpacket + wire hex7_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_valid; // hex7_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_valid -> hex7_s1_translator_avalon_universal_slave_0_agent:rf_sink_valid + wire hex7_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_startofpacket; // hex7_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_startofpacket -> hex7_s1_translator_avalon_universal_slave_0_agent:rf_sink_startofpacket + wire [96:0] hex7_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_data; // hex7_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_data -> hex7_s1_translator_avalon_universal_slave_0_agent:rf_sink_data + wire hex7_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_ready; // hex7_s1_translator_avalon_universal_slave_0_agent:rf_sink_ready -> hex7_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_ready + wire hex7_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_valid; // hex7_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_src_valid -> hex7_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_sink_valid + wire [33:0] hex7_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_data; // hex7_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_src_data -> hex7_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_sink_data + wire hex7_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_ready; // hex7_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_sink_ready -> hex7_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_src_ready + wire lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_m0_waitrequest; // lcd_16207_0_control_slave_translator:uav_waitrequest -> lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent:m0_waitrequest + wire [2:0] lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_m0_burstcount; // lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent:m0_burstcount -> lcd_16207_0_control_slave_translator:uav_burstcount + wire [31:0] lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_m0_writedata; // lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent:m0_writedata -> lcd_16207_0_control_slave_translator:uav_writedata + wire [18:0] lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_m0_address; // lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent:m0_address -> lcd_16207_0_control_slave_translator:uav_address + wire lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_m0_write; // lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent:m0_write -> lcd_16207_0_control_slave_translator:uav_write + wire lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_m0_lock; // lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent:m0_lock -> lcd_16207_0_control_slave_translator:uav_lock + wire lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_m0_read; // lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent:m0_read -> lcd_16207_0_control_slave_translator:uav_read + wire [31:0] lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_m0_readdata; // lcd_16207_0_control_slave_translator:uav_readdata -> lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent:m0_readdata + wire lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_m0_readdatavalid; // lcd_16207_0_control_slave_translator:uav_readdatavalid -> lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent:m0_readdatavalid + wire lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_m0_debugaccess; // lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent:m0_debugaccess -> lcd_16207_0_control_slave_translator:uav_debugaccess + wire [3:0] lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_m0_byteenable; // lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent:m0_byteenable -> lcd_16207_0_control_slave_translator:uav_byteenable + wire lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rf_source_endofpacket; // lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent:rf_source_endofpacket -> lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rsp_fifo:in_endofpacket + wire lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rf_source_valid; // lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent:rf_source_valid -> lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rsp_fifo:in_valid + wire lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rf_source_startofpacket; // lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent:rf_source_startofpacket -> lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rsp_fifo:in_startofpacket + wire [96:0] lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rf_source_data; // lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent:rf_source_data -> lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rsp_fifo:in_data + wire lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rf_source_ready; // lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rsp_fifo:in_ready -> lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent:rf_source_ready + wire lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rsp_fifo_out_endofpacket; // lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rsp_fifo:out_endofpacket -> lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent:rf_sink_endofpacket + wire lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rsp_fifo_out_valid; // lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rsp_fifo:out_valid -> lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent:rf_sink_valid + wire lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rsp_fifo_out_startofpacket; // lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rsp_fifo:out_startofpacket -> lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent:rf_sink_startofpacket + wire [96:0] lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rsp_fifo_out_data; // lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rsp_fifo:out_data -> lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent:rf_sink_data + wire lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rsp_fifo_out_ready; // lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent:rf_sink_ready -> lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rsp_fifo:out_ready + wire lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rdata_fifo_src_valid; // lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent:rdata_fifo_src_valid -> lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent:rdata_fifo_sink_valid + wire [33:0] lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rdata_fifo_src_data; // lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent:rdata_fifo_src_data -> lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent:rdata_fifo_sink_data + wire lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rdata_fifo_src_ready; // lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent:rdata_fifo_sink_ready -> lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent:rdata_fifo_src_ready + wire lcd_on_s1_translator_avalon_universal_slave_0_agent_m0_waitrequest; // lcd_on_s1_translator:uav_waitrequest -> lcd_on_s1_translator_avalon_universal_slave_0_agent:m0_waitrequest + wire [2:0] lcd_on_s1_translator_avalon_universal_slave_0_agent_m0_burstcount; // lcd_on_s1_translator_avalon_universal_slave_0_agent:m0_burstcount -> lcd_on_s1_translator:uav_burstcount + wire [31:0] lcd_on_s1_translator_avalon_universal_slave_0_agent_m0_writedata; // lcd_on_s1_translator_avalon_universal_slave_0_agent:m0_writedata -> lcd_on_s1_translator:uav_writedata + wire [18:0] lcd_on_s1_translator_avalon_universal_slave_0_agent_m0_address; // lcd_on_s1_translator_avalon_universal_slave_0_agent:m0_address -> lcd_on_s1_translator:uav_address + wire lcd_on_s1_translator_avalon_universal_slave_0_agent_m0_write; // lcd_on_s1_translator_avalon_universal_slave_0_agent:m0_write -> lcd_on_s1_translator:uav_write + wire lcd_on_s1_translator_avalon_universal_slave_0_agent_m0_lock; // lcd_on_s1_translator_avalon_universal_slave_0_agent:m0_lock -> lcd_on_s1_translator:uav_lock + wire lcd_on_s1_translator_avalon_universal_slave_0_agent_m0_read; // lcd_on_s1_translator_avalon_universal_slave_0_agent:m0_read -> lcd_on_s1_translator:uav_read + wire [31:0] lcd_on_s1_translator_avalon_universal_slave_0_agent_m0_readdata; // lcd_on_s1_translator:uav_readdata -> lcd_on_s1_translator_avalon_universal_slave_0_agent:m0_readdata + wire lcd_on_s1_translator_avalon_universal_slave_0_agent_m0_readdatavalid; // lcd_on_s1_translator:uav_readdatavalid -> lcd_on_s1_translator_avalon_universal_slave_0_agent:m0_readdatavalid + wire lcd_on_s1_translator_avalon_universal_slave_0_agent_m0_debugaccess; // lcd_on_s1_translator_avalon_universal_slave_0_agent:m0_debugaccess -> lcd_on_s1_translator:uav_debugaccess + wire [3:0] lcd_on_s1_translator_avalon_universal_slave_0_agent_m0_byteenable; // lcd_on_s1_translator_avalon_universal_slave_0_agent:m0_byteenable -> lcd_on_s1_translator:uav_byteenable + wire lcd_on_s1_translator_avalon_universal_slave_0_agent_rf_source_endofpacket; // lcd_on_s1_translator_avalon_universal_slave_0_agent:rf_source_endofpacket -> lcd_on_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_endofpacket + wire lcd_on_s1_translator_avalon_universal_slave_0_agent_rf_source_valid; // lcd_on_s1_translator_avalon_universal_slave_0_agent:rf_source_valid -> lcd_on_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_valid + wire lcd_on_s1_translator_avalon_universal_slave_0_agent_rf_source_startofpacket; // lcd_on_s1_translator_avalon_universal_slave_0_agent:rf_source_startofpacket -> lcd_on_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_startofpacket + wire [96:0] lcd_on_s1_translator_avalon_universal_slave_0_agent_rf_source_data; // lcd_on_s1_translator_avalon_universal_slave_0_agent:rf_source_data -> lcd_on_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_data + wire lcd_on_s1_translator_avalon_universal_slave_0_agent_rf_source_ready; // lcd_on_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_ready -> lcd_on_s1_translator_avalon_universal_slave_0_agent:rf_source_ready + wire lcd_on_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_endofpacket; // lcd_on_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_endofpacket -> lcd_on_s1_translator_avalon_universal_slave_0_agent:rf_sink_endofpacket + wire lcd_on_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_valid; // lcd_on_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_valid -> lcd_on_s1_translator_avalon_universal_slave_0_agent:rf_sink_valid + wire lcd_on_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_startofpacket; // lcd_on_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_startofpacket -> lcd_on_s1_translator_avalon_universal_slave_0_agent:rf_sink_startofpacket + wire [96:0] lcd_on_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_data; // lcd_on_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_data -> lcd_on_s1_translator_avalon_universal_slave_0_agent:rf_sink_data + wire lcd_on_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_ready; // lcd_on_s1_translator_avalon_universal_slave_0_agent:rf_sink_ready -> lcd_on_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_ready + wire lcd_on_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_valid; // lcd_on_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_src_valid -> lcd_on_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_sink_valid + wire [33:0] lcd_on_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_data; // lcd_on_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_src_data -> lcd_on_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_sink_data + wire lcd_on_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_ready; // lcd_on_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_sink_ready -> lcd_on_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_src_ready + wire lcd_blon_s1_translator_avalon_universal_slave_0_agent_m0_waitrequest; // lcd_blon_s1_translator:uav_waitrequest -> lcd_blon_s1_translator_avalon_universal_slave_0_agent:m0_waitrequest + wire [2:0] lcd_blon_s1_translator_avalon_universal_slave_0_agent_m0_burstcount; // lcd_blon_s1_translator_avalon_universal_slave_0_agent:m0_burstcount -> lcd_blon_s1_translator:uav_burstcount + wire [31:0] lcd_blon_s1_translator_avalon_universal_slave_0_agent_m0_writedata; // lcd_blon_s1_translator_avalon_universal_slave_0_agent:m0_writedata -> lcd_blon_s1_translator:uav_writedata + wire [18:0] lcd_blon_s1_translator_avalon_universal_slave_0_agent_m0_address; // lcd_blon_s1_translator_avalon_universal_slave_0_agent:m0_address -> lcd_blon_s1_translator:uav_address + wire lcd_blon_s1_translator_avalon_universal_slave_0_agent_m0_write; // lcd_blon_s1_translator_avalon_universal_slave_0_agent:m0_write -> lcd_blon_s1_translator:uav_write + wire lcd_blon_s1_translator_avalon_universal_slave_0_agent_m0_lock; // lcd_blon_s1_translator_avalon_universal_slave_0_agent:m0_lock -> lcd_blon_s1_translator:uav_lock + wire lcd_blon_s1_translator_avalon_universal_slave_0_agent_m0_read; // lcd_blon_s1_translator_avalon_universal_slave_0_agent:m0_read -> lcd_blon_s1_translator:uav_read + wire [31:0] lcd_blon_s1_translator_avalon_universal_slave_0_agent_m0_readdata; // lcd_blon_s1_translator:uav_readdata -> lcd_blon_s1_translator_avalon_universal_slave_0_agent:m0_readdata + wire lcd_blon_s1_translator_avalon_universal_slave_0_agent_m0_readdatavalid; // lcd_blon_s1_translator:uav_readdatavalid -> lcd_blon_s1_translator_avalon_universal_slave_0_agent:m0_readdatavalid + wire lcd_blon_s1_translator_avalon_universal_slave_0_agent_m0_debugaccess; // lcd_blon_s1_translator_avalon_universal_slave_0_agent:m0_debugaccess -> lcd_blon_s1_translator:uav_debugaccess + wire [3:0] lcd_blon_s1_translator_avalon_universal_slave_0_agent_m0_byteenable; // lcd_blon_s1_translator_avalon_universal_slave_0_agent:m0_byteenable -> lcd_blon_s1_translator:uav_byteenable + wire lcd_blon_s1_translator_avalon_universal_slave_0_agent_rf_source_endofpacket; // lcd_blon_s1_translator_avalon_universal_slave_0_agent:rf_source_endofpacket -> lcd_blon_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_endofpacket + wire lcd_blon_s1_translator_avalon_universal_slave_0_agent_rf_source_valid; // lcd_blon_s1_translator_avalon_universal_slave_0_agent:rf_source_valid -> lcd_blon_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_valid + wire lcd_blon_s1_translator_avalon_universal_slave_0_agent_rf_source_startofpacket; // lcd_blon_s1_translator_avalon_universal_slave_0_agent:rf_source_startofpacket -> lcd_blon_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_startofpacket + wire [96:0] lcd_blon_s1_translator_avalon_universal_slave_0_agent_rf_source_data; // lcd_blon_s1_translator_avalon_universal_slave_0_agent:rf_source_data -> lcd_blon_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_data + wire lcd_blon_s1_translator_avalon_universal_slave_0_agent_rf_source_ready; // lcd_blon_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:in_ready -> lcd_blon_s1_translator_avalon_universal_slave_0_agent:rf_source_ready + wire lcd_blon_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_endofpacket; // lcd_blon_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_endofpacket -> lcd_blon_s1_translator_avalon_universal_slave_0_agent:rf_sink_endofpacket + wire lcd_blon_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_valid; // lcd_blon_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_valid -> lcd_blon_s1_translator_avalon_universal_slave_0_agent:rf_sink_valid + wire lcd_blon_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_startofpacket; // lcd_blon_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_startofpacket -> lcd_blon_s1_translator_avalon_universal_slave_0_agent:rf_sink_startofpacket + wire [96:0] lcd_blon_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_data; // lcd_blon_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_data -> lcd_blon_s1_translator_avalon_universal_slave_0_agent:rf_sink_data + wire lcd_blon_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_ready; // lcd_blon_s1_translator_avalon_universal_slave_0_agent:rf_sink_ready -> lcd_blon_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:out_ready + wire lcd_blon_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_valid; // lcd_blon_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_src_valid -> lcd_blon_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_sink_valid + wire [33:0] lcd_blon_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_data; // lcd_blon_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_src_data -> lcd_blon_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_sink_data + wire lcd_blon_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_ready; // lcd_blon_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_sink_ready -> lcd_blon_s1_translator_avalon_universal_slave_0_agent:rdata_fifo_src_ready + wire nios2_processor_instruction_master_translator_avalon_universal_master_0_agent_cp_endofpacket; // nios2_processor_instruction_master_translator_avalon_universal_master_0_agent:cp_endofpacket -> addr_router:sink_endofpacket + wire nios2_processor_instruction_master_translator_avalon_universal_master_0_agent_cp_valid; // nios2_processor_instruction_master_translator_avalon_universal_master_0_agent:cp_valid -> addr_router:sink_valid + wire nios2_processor_instruction_master_translator_avalon_universal_master_0_agent_cp_startofpacket; // nios2_processor_instruction_master_translator_avalon_universal_master_0_agent:cp_startofpacket -> addr_router:sink_startofpacket + wire [95:0] nios2_processor_instruction_master_translator_avalon_universal_master_0_agent_cp_data; // nios2_processor_instruction_master_translator_avalon_universal_master_0_agent:cp_data -> addr_router:sink_data + wire nios2_processor_instruction_master_translator_avalon_universal_master_0_agent_cp_ready; // addr_router:sink_ready -> nios2_processor_instruction_master_translator_avalon_universal_master_0_agent:cp_ready + wire nios2_processor_data_master_translator_avalon_universal_master_0_agent_cp_endofpacket; // nios2_processor_data_master_translator_avalon_universal_master_0_agent:cp_endofpacket -> addr_router_001:sink_endofpacket + wire nios2_processor_data_master_translator_avalon_universal_master_0_agent_cp_valid; // nios2_processor_data_master_translator_avalon_universal_master_0_agent:cp_valid -> addr_router_001:sink_valid + wire nios2_processor_data_master_translator_avalon_universal_master_0_agent_cp_startofpacket; // nios2_processor_data_master_translator_avalon_universal_master_0_agent:cp_startofpacket -> addr_router_001:sink_startofpacket + wire [95:0] nios2_processor_data_master_translator_avalon_universal_master_0_agent_cp_data; // nios2_processor_data_master_translator_avalon_universal_master_0_agent:cp_data -> addr_router_001:sink_data + wire nios2_processor_data_master_translator_avalon_universal_master_0_agent_cp_ready; // addr_router_001:sink_ready -> nios2_processor_data_master_translator_avalon_universal_master_0_agent:cp_ready + wire nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rp_endofpacket; // nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent:rp_endofpacket -> id_router:sink_endofpacket + wire nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rp_valid; // nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent:rp_valid -> id_router:sink_valid + wire nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rp_startofpacket; // nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent:rp_startofpacket -> id_router:sink_startofpacket + wire [95:0] nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rp_data; // nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent:rp_data -> id_router:sink_data + wire nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rp_ready; // id_router:sink_ready -> nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent:rp_ready + wire onchip_memory_s1_translator_avalon_universal_slave_0_agent_rp_endofpacket; // onchip_memory_s1_translator_avalon_universal_slave_0_agent:rp_endofpacket -> id_router_001:sink_endofpacket + wire onchip_memory_s1_translator_avalon_universal_slave_0_agent_rp_valid; // onchip_memory_s1_translator_avalon_universal_slave_0_agent:rp_valid -> id_router_001:sink_valid + wire onchip_memory_s1_translator_avalon_universal_slave_0_agent_rp_startofpacket; // onchip_memory_s1_translator_avalon_universal_slave_0_agent:rp_startofpacket -> id_router_001:sink_startofpacket + wire [95:0] onchip_memory_s1_translator_avalon_universal_slave_0_agent_rp_data; // onchip_memory_s1_translator_avalon_universal_slave_0_agent:rp_data -> id_router_001:sink_data + wire onchip_memory_s1_translator_avalon_universal_slave_0_agent_rp_ready; // id_router_001:sink_ready -> onchip_memory_s1_translator_avalon_universal_slave_0_agent:rp_ready + wire leds_s1_translator_avalon_universal_slave_0_agent_rp_endofpacket; // LEDs_s1_translator_avalon_universal_slave_0_agent:rp_endofpacket -> id_router_002:sink_endofpacket + wire leds_s1_translator_avalon_universal_slave_0_agent_rp_valid; // LEDs_s1_translator_avalon_universal_slave_0_agent:rp_valid -> id_router_002:sink_valid + wire leds_s1_translator_avalon_universal_slave_0_agent_rp_startofpacket; // LEDs_s1_translator_avalon_universal_slave_0_agent:rp_startofpacket -> id_router_002:sink_startofpacket + wire [95:0] leds_s1_translator_avalon_universal_slave_0_agent_rp_data; // LEDs_s1_translator_avalon_universal_slave_0_agent:rp_data -> id_router_002:sink_data + wire leds_s1_translator_avalon_universal_slave_0_agent_rp_ready; // id_router_002:sink_ready -> LEDs_s1_translator_avalon_universal_slave_0_agent:rp_ready + wire jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rp_endofpacket; // jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent:rp_endofpacket -> id_router_003:sink_endofpacket + wire jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rp_valid; // jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent:rp_valid -> id_router_003:sink_valid + wire jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rp_startofpacket; // jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent:rp_startofpacket -> id_router_003:sink_startofpacket + wire [95:0] jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rp_data; // jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent:rp_data -> id_router_003:sink_data + wire jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rp_ready; // id_router_003:sink_ready -> jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent:rp_ready + wire ledrs_s1_translator_avalon_universal_slave_0_agent_rp_endofpacket; // LEDRs_s1_translator_avalon_universal_slave_0_agent:rp_endofpacket -> id_router_004:sink_endofpacket + wire ledrs_s1_translator_avalon_universal_slave_0_agent_rp_valid; // LEDRs_s1_translator_avalon_universal_slave_0_agent:rp_valid -> id_router_004:sink_valid + wire ledrs_s1_translator_avalon_universal_slave_0_agent_rp_startofpacket; // LEDRs_s1_translator_avalon_universal_slave_0_agent:rp_startofpacket -> id_router_004:sink_startofpacket + wire [95:0] ledrs_s1_translator_avalon_universal_slave_0_agent_rp_data; // LEDRs_s1_translator_avalon_universal_slave_0_agent:rp_data -> id_router_004:sink_data + wire ledrs_s1_translator_avalon_universal_slave_0_agent_rp_ready; // id_router_004:sink_ready -> LEDRs_s1_translator_avalon_universal_slave_0_agent:rp_ready + wire switches_s1_translator_avalon_universal_slave_0_agent_rp_endofpacket; // switches_s1_translator_avalon_universal_slave_0_agent:rp_endofpacket -> id_router_005:sink_endofpacket + wire switches_s1_translator_avalon_universal_slave_0_agent_rp_valid; // switches_s1_translator_avalon_universal_slave_0_agent:rp_valid -> id_router_005:sink_valid + wire switches_s1_translator_avalon_universal_slave_0_agent_rp_startofpacket; // switches_s1_translator_avalon_universal_slave_0_agent:rp_startofpacket -> id_router_005:sink_startofpacket + wire [95:0] switches_s1_translator_avalon_universal_slave_0_agent_rp_data; // switches_s1_translator_avalon_universal_slave_0_agent:rp_data -> id_router_005:sink_data + wire switches_s1_translator_avalon_universal_slave_0_agent_rp_ready; // id_router_005:sink_ready -> switches_s1_translator_avalon_universal_slave_0_agent:rp_ready + wire push_switches_s1_translator_avalon_universal_slave_0_agent_rp_endofpacket; // push_switches_s1_translator_avalon_universal_slave_0_agent:rp_endofpacket -> id_router_006:sink_endofpacket + wire push_switches_s1_translator_avalon_universal_slave_0_agent_rp_valid; // push_switches_s1_translator_avalon_universal_slave_0_agent:rp_valid -> id_router_006:sink_valid + wire push_switches_s1_translator_avalon_universal_slave_0_agent_rp_startofpacket; // push_switches_s1_translator_avalon_universal_slave_0_agent:rp_startofpacket -> id_router_006:sink_startofpacket + wire [95:0] push_switches_s1_translator_avalon_universal_slave_0_agent_rp_data; // push_switches_s1_translator_avalon_universal_slave_0_agent:rp_data -> id_router_006:sink_data + wire push_switches_s1_translator_avalon_universal_slave_0_agent_rp_ready; // id_router_006:sink_ready -> push_switches_s1_translator_avalon_universal_slave_0_agent:rp_ready + wire hex0_s1_translator_avalon_universal_slave_0_agent_rp_endofpacket; // hex0_s1_translator_avalon_universal_slave_0_agent:rp_endofpacket -> id_router_007:sink_endofpacket + wire hex0_s1_translator_avalon_universal_slave_0_agent_rp_valid; // hex0_s1_translator_avalon_universal_slave_0_agent:rp_valid -> id_router_007:sink_valid + wire hex0_s1_translator_avalon_universal_slave_0_agent_rp_startofpacket; // hex0_s1_translator_avalon_universal_slave_0_agent:rp_startofpacket -> id_router_007:sink_startofpacket + wire [95:0] hex0_s1_translator_avalon_universal_slave_0_agent_rp_data; // hex0_s1_translator_avalon_universal_slave_0_agent:rp_data -> id_router_007:sink_data + wire hex0_s1_translator_avalon_universal_slave_0_agent_rp_ready; // id_router_007:sink_ready -> hex0_s1_translator_avalon_universal_slave_0_agent:rp_ready + wire hex1_s1_translator_avalon_universal_slave_0_agent_rp_endofpacket; // hex1_s1_translator_avalon_universal_slave_0_agent:rp_endofpacket -> id_router_008:sink_endofpacket + wire hex1_s1_translator_avalon_universal_slave_0_agent_rp_valid; // hex1_s1_translator_avalon_universal_slave_0_agent:rp_valid -> id_router_008:sink_valid + wire hex1_s1_translator_avalon_universal_slave_0_agent_rp_startofpacket; // hex1_s1_translator_avalon_universal_slave_0_agent:rp_startofpacket -> id_router_008:sink_startofpacket + wire [95:0] hex1_s1_translator_avalon_universal_slave_0_agent_rp_data; // hex1_s1_translator_avalon_universal_slave_0_agent:rp_data -> id_router_008:sink_data + wire hex1_s1_translator_avalon_universal_slave_0_agent_rp_ready; // id_router_008:sink_ready -> hex1_s1_translator_avalon_universal_slave_0_agent:rp_ready + wire hex2_s1_translator_avalon_universal_slave_0_agent_rp_endofpacket; // hex2_s1_translator_avalon_universal_slave_0_agent:rp_endofpacket -> id_router_009:sink_endofpacket + wire hex2_s1_translator_avalon_universal_slave_0_agent_rp_valid; // hex2_s1_translator_avalon_universal_slave_0_agent:rp_valid -> id_router_009:sink_valid + wire hex2_s1_translator_avalon_universal_slave_0_agent_rp_startofpacket; // hex2_s1_translator_avalon_universal_slave_0_agent:rp_startofpacket -> id_router_009:sink_startofpacket + wire [95:0] hex2_s1_translator_avalon_universal_slave_0_agent_rp_data; // hex2_s1_translator_avalon_universal_slave_0_agent:rp_data -> id_router_009:sink_data + wire hex2_s1_translator_avalon_universal_slave_0_agent_rp_ready; // id_router_009:sink_ready -> hex2_s1_translator_avalon_universal_slave_0_agent:rp_ready + wire hex3_s1_translator_avalon_universal_slave_0_agent_rp_endofpacket; // hex3_s1_translator_avalon_universal_slave_0_agent:rp_endofpacket -> id_router_010:sink_endofpacket + wire hex3_s1_translator_avalon_universal_slave_0_agent_rp_valid; // hex3_s1_translator_avalon_universal_slave_0_agent:rp_valid -> id_router_010:sink_valid + wire hex3_s1_translator_avalon_universal_slave_0_agent_rp_startofpacket; // hex3_s1_translator_avalon_universal_slave_0_agent:rp_startofpacket -> id_router_010:sink_startofpacket + wire [95:0] hex3_s1_translator_avalon_universal_slave_0_agent_rp_data; // hex3_s1_translator_avalon_universal_slave_0_agent:rp_data -> id_router_010:sink_data + wire hex3_s1_translator_avalon_universal_slave_0_agent_rp_ready; // id_router_010:sink_ready -> hex3_s1_translator_avalon_universal_slave_0_agent:rp_ready + wire hex4_s1_translator_avalon_universal_slave_0_agent_rp_endofpacket; // hex4_s1_translator_avalon_universal_slave_0_agent:rp_endofpacket -> id_router_011:sink_endofpacket + wire hex4_s1_translator_avalon_universal_slave_0_agent_rp_valid; // hex4_s1_translator_avalon_universal_slave_0_agent:rp_valid -> id_router_011:sink_valid + wire hex4_s1_translator_avalon_universal_slave_0_agent_rp_startofpacket; // hex4_s1_translator_avalon_universal_slave_0_agent:rp_startofpacket -> id_router_011:sink_startofpacket + wire [95:0] hex4_s1_translator_avalon_universal_slave_0_agent_rp_data; // hex4_s1_translator_avalon_universal_slave_0_agent:rp_data -> id_router_011:sink_data + wire hex4_s1_translator_avalon_universal_slave_0_agent_rp_ready; // id_router_011:sink_ready -> hex4_s1_translator_avalon_universal_slave_0_agent:rp_ready + wire hex5_s1_translator_avalon_universal_slave_0_agent_rp_endofpacket; // hex5_s1_translator_avalon_universal_slave_0_agent:rp_endofpacket -> id_router_012:sink_endofpacket + wire hex5_s1_translator_avalon_universal_slave_0_agent_rp_valid; // hex5_s1_translator_avalon_universal_slave_0_agent:rp_valid -> id_router_012:sink_valid + wire hex5_s1_translator_avalon_universal_slave_0_agent_rp_startofpacket; // hex5_s1_translator_avalon_universal_slave_0_agent:rp_startofpacket -> id_router_012:sink_startofpacket + wire [95:0] hex5_s1_translator_avalon_universal_slave_0_agent_rp_data; // hex5_s1_translator_avalon_universal_slave_0_agent:rp_data -> id_router_012:sink_data + wire hex5_s1_translator_avalon_universal_slave_0_agent_rp_ready; // id_router_012:sink_ready -> hex5_s1_translator_avalon_universal_slave_0_agent:rp_ready + wire hex6_s1_translator_avalon_universal_slave_0_agent_rp_endofpacket; // hex6_s1_translator_avalon_universal_slave_0_agent:rp_endofpacket -> id_router_013:sink_endofpacket + wire hex6_s1_translator_avalon_universal_slave_0_agent_rp_valid; // hex6_s1_translator_avalon_universal_slave_0_agent:rp_valid -> id_router_013:sink_valid + wire hex6_s1_translator_avalon_universal_slave_0_agent_rp_startofpacket; // hex6_s1_translator_avalon_universal_slave_0_agent:rp_startofpacket -> id_router_013:sink_startofpacket + wire [95:0] hex6_s1_translator_avalon_universal_slave_0_agent_rp_data; // hex6_s1_translator_avalon_universal_slave_0_agent:rp_data -> id_router_013:sink_data + wire hex6_s1_translator_avalon_universal_slave_0_agent_rp_ready; // id_router_013:sink_ready -> hex6_s1_translator_avalon_universal_slave_0_agent:rp_ready + wire hex7_s1_translator_avalon_universal_slave_0_agent_rp_endofpacket; // hex7_s1_translator_avalon_universal_slave_0_agent:rp_endofpacket -> id_router_014:sink_endofpacket + wire hex7_s1_translator_avalon_universal_slave_0_agent_rp_valid; // hex7_s1_translator_avalon_universal_slave_0_agent:rp_valid -> id_router_014:sink_valid + wire hex7_s1_translator_avalon_universal_slave_0_agent_rp_startofpacket; // hex7_s1_translator_avalon_universal_slave_0_agent:rp_startofpacket -> id_router_014:sink_startofpacket + wire [95:0] hex7_s1_translator_avalon_universal_slave_0_agent_rp_data; // hex7_s1_translator_avalon_universal_slave_0_agent:rp_data -> id_router_014:sink_data + wire hex7_s1_translator_avalon_universal_slave_0_agent_rp_ready; // id_router_014:sink_ready -> hex7_s1_translator_avalon_universal_slave_0_agent:rp_ready + wire lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rp_endofpacket; // lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent:rp_endofpacket -> id_router_015:sink_endofpacket + wire lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rp_valid; // lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent:rp_valid -> id_router_015:sink_valid + wire lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rp_startofpacket; // lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent:rp_startofpacket -> id_router_015:sink_startofpacket + wire [95:0] lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rp_data; // lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent:rp_data -> id_router_015:sink_data + wire lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rp_ready; // id_router_015:sink_ready -> lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent:rp_ready + wire lcd_on_s1_translator_avalon_universal_slave_0_agent_rp_endofpacket; // lcd_on_s1_translator_avalon_universal_slave_0_agent:rp_endofpacket -> id_router_016:sink_endofpacket + wire lcd_on_s1_translator_avalon_universal_slave_0_agent_rp_valid; // lcd_on_s1_translator_avalon_universal_slave_0_agent:rp_valid -> id_router_016:sink_valid + wire lcd_on_s1_translator_avalon_universal_slave_0_agent_rp_startofpacket; // lcd_on_s1_translator_avalon_universal_slave_0_agent:rp_startofpacket -> id_router_016:sink_startofpacket + wire [95:0] lcd_on_s1_translator_avalon_universal_slave_0_agent_rp_data; // lcd_on_s1_translator_avalon_universal_slave_0_agent:rp_data -> id_router_016:sink_data + wire lcd_on_s1_translator_avalon_universal_slave_0_agent_rp_ready; // id_router_016:sink_ready -> lcd_on_s1_translator_avalon_universal_slave_0_agent:rp_ready + wire lcd_blon_s1_translator_avalon_universal_slave_0_agent_rp_endofpacket; // lcd_blon_s1_translator_avalon_universal_slave_0_agent:rp_endofpacket -> id_router_017:sink_endofpacket + wire lcd_blon_s1_translator_avalon_universal_slave_0_agent_rp_valid; // lcd_blon_s1_translator_avalon_universal_slave_0_agent:rp_valid -> id_router_017:sink_valid + wire lcd_blon_s1_translator_avalon_universal_slave_0_agent_rp_startofpacket; // lcd_blon_s1_translator_avalon_universal_slave_0_agent:rp_startofpacket -> id_router_017:sink_startofpacket + wire [95:0] lcd_blon_s1_translator_avalon_universal_slave_0_agent_rp_data; // lcd_blon_s1_translator_avalon_universal_slave_0_agent:rp_data -> id_router_017:sink_data + wire lcd_blon_s1_translator_avalon_universal_slave_0_agent_rp_ready; // id_router_017:sink_ready -> lcd_blon_s1_translator_avalon_universal_slave_0_agent:rp_ready + wire rst_controller_reset_out_reset; // rst_controller:reset_out -> [LEDRs:reset_n, LEDRs_s1_translator:reset, LEDRs_s1_translator_avalon_universal_slave_0_agent:reset, LEDRs_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:reset, LEDs:reset_n, LEDs_s1_translator:reset, LEDs_s1_translator_avalon_universal_slave_0_agent:reset, LEDs_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:reset, addr_router:reset, addr_router_001:reset, cmd_xbar_demux:reset, cmd_xbar_demux_001:reset, cmd_xbar_mux:reset, cmd_xbar_mux_001:reset, hex0:reset_n, hex0_s1_translator:reset, hex0_s1_translator_avalon_universal_slave_0_agent:reset, hex0_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:reset, hex1:reset_n, hex1_s1_translator:reset, hex1_s1_translator_avalon_universal_slave_0_agent:reset, hex1_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:reset, hex2:reset_n, hex2_s1_translator:reset, hex2_s1_translator_avalon_universal_slave_0_agent:reset, hex2_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:reset, hex3:reset_n, hex3_s1_translator:reset, hex3_s1_translator_avalon_universal_slave_0_agent:reset, hex3_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:reset, hex4:reset_n, hex4_s1_translator:reset, hex4_s1_translator_avalon_universal_slave_0_agent:reset, hex4_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:reset, hex5:reset_n, hex5_s1_translator:reset, hex5_s1_translator_avalon_universal_slave_0_agent:reset, hex5_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:reset, hex6:reset_n, hex6_s1_translator:reset, hex6_s1_translator_avalon_universal_slave_0_agent:reset, hex6_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:reset, hex7:reset_n, hex7_s1_translator:reset, hex7_s1_translator_avalon_universal_slave_0_agent:reset, hex7_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:reset, id_router:reset, id_router_001:reset, id_router_002:reset, id_router_003:reset, id_router_004:reset, id_router_005:reset, id_router_006:reset, id_router_007:reset, id_router_008:reset, id_router_009:reset, id_router_010:reset, id_router_011:reset, id_router_012:reset, id_router_013:reset, id_router_014:reset, id_router_015:reset, id_router_016:reset, id_router_017:reset, irq_mapper:reset, jtag_uart:rst_n, jtag_uart_avalon_jtag_slave_translator:reset, jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent:reset, jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rsp_fifo:reset, lcd_16207_0:reset_n, lcd_16207_0_control_slave_translator:reset, lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent:reset, lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rsp_fifo:reset, lcd_blon:reset_n, lcd_blon_s1_translator:reset, lcd_blon_s1_translator_avalon_universal_slave_0_agent:reset, lcd_blon_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:reset, lcd_on:reset_n, lcd_on_s1_translator:reset, lcd_on_s1_translator_avalon_universal_slave_0_agent:reset, lcd_on_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:reset, nios2_processor:reset_n, nios2_processor_data_master_translator:reset, nios2_processor_data_master_translator_avalon_universal_master_0_agent:reset, nios2_processor_instruction_master_translator:reset, nios2_processor_instruction_master_translator_avalon_universal_master_0_agent:reset, nios2_processor_jtag_debug_module_translator:reset, nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent:reset, nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo:reset, onchip_memory:reset, onchip_memory_s1_translator:reset, onchip_memory_s1_translator_avalon_universal_slave_0_agent:reset, onchip_memory_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:reset, push_switches:reset_n, push_switches_s1_translator:reset, push_switches_s1_translator_avalon_universal_slave_0_agent:reset, push_switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:reset, rsp_xbar_demux:reset, rsp_xbar_demux_001:reset, rsp_xbar_demux_002:reset, rsp_xbar_demux_003:reset, rsp_xbar_demux_004:reset, rsp_xbar_demux_005:reset, rsp_xbar_demux_006:reset, rsp_xbar_demux_007:reset, rsp_xbar_demux_008:reset, rsp_xbar_demux_009:reset, rsp_xbar_demux_010:reset, rsp_xbar_demux_011:reset, rsp_xbar_demux_012:reset, rsp_xbar_demux_013:reset, rsp_xbar_demux_014:reset, rsp_xbar_demux_015:reset, rsp_xbar_demux_016:reset, rsp_xbar_demux_017:reset, rsp_xbar_mux:reset, rsp_xbar_mux_001:reset, switches:reset_n, switches_s1_translator:reset, switches_s1_translator_avalon_universal_slave_0_agent:reset, switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo:reset] + wire rst_controller_reset_out_reset_req; // rst_controller:reset_req -> onchip_memory:reset_req + wire nios2_processor_jtag_debug_module_reset_reset; // nios2_processor:jtag_debug_module_resetrequest -> rst_controller:reset_in1 + wire cmd_xbar_demux_src0_endofpacket; // cmd_xbar_demux:src0_endofpacket -> cmd_xbar_mux:sink0_endofpacket + wire cmd_xbar_demux_src0_valid; // cmd_xbar_demux:src0_valid -> cmd_xbar_mux:sink0_valid + wire cmd_xbar_demux_src0_startofpacket; // cmd_xbar_demux:src0_startofpacket -> cmd_xbar_mux:sink0_startofpacket + wire [95:0] cmd_xbar_demux_src0_data; // cmd_xbar_demux:src0_data -> cmd_xbar_mux:sink0_data + wire [17:0] cmd_xbar_demux_src0_channel; // cmd_xbar_demux:src0_channel -> cmd_xbar_mux:sink0_channel + wire cmd_xbar_demux_src0_ready; // cmd_xbar_mux:sink0_ready -> cmd_xbar_demux:src0_ready + wire cmd_xbar_demux_src1_endofpacket; // cmd_xbar_demux:src1_endofpacket -> cmd_xbar_mux_001:sink0_endofpacket + wire cmd_xbar_demux_src1_valid; // cmd_xbar_demux:src1_valid -> cmd_xbar_mux_001:sink0_valid + wire cmd_xbar_demux_src1_startofpacket; // cmd_xbar_demux:src1_startofpacket -> cmd_xbar_mux_001:sink0_startofpacket + wire [95:0] cmd_xbar_demux_src1_data; // cmd_xbar_demux:src1_data -> cmd_xbar_mux_001:sink0_data + wire [17:0] cmd_xbar_demux_src1_channel; // cmd_xbar_demux:src1_channel -> cmd_xbar_mux_001:sink0_channel + wire cmd_xbar_demux_src1_ready; // cmd_xbar_mux_001:sink0_ready -> cmd_xbar_demux:src1_ready + wire cmd_xbar_demux_001_src0_endofpacket; // cmd_xbar_demux_001:src0_endofpacket -> cmd_xbar_mux:sink1_endofpacket + wire cmd_xbar_demux_001_src0_valid; // cmd_xbar_demux_001:src0_valid -> cmd_xbar_mux:sink1_valid + wire cmd_xbar_demux_001_src0_startofpacket; // cmd_xbar_demux_001:src0_startofpacket -> cmd_xbar_mux:sink1_startofpacket + wire [95:0] cmd_xbar_demux_001_src0_data; // cmd_xbar_demux_001:src0_data -> cmd_xbar_mux:sink1_data + wire [17:0] cmd_xbar_demux_001_src0_channel; // cmd_xbar_demux_001:src0_channel -> cmd_xbar_mux:sink1_channel + wire cmd_xbar_demux_001_src0_ready; // cmd_xbar_mux:sink1_ready -> cmd_xbar_demux_001:src0_ready + wire cmd_xbar_demux_001_src1_endofpacket; // cmd_xbar_demux_001:src1_endofpacket -> cmd_xbar_mux_001:sink1_endofpacket + wire cmd_xbar_demux_001_src1_valid; // cmd_xbar_demux_001:src1_valid -> cmd_xbar_mux_001:sink1_valid + wire cmd_xbar_demux_001_src1_startofpacket; // cmd_xbar_demux_001:src1_startofpacket -> cmd_xbar_mux_001:sink1_startofpacket + wire [95:0] cmd_xbar_demux_001_src1_data; // cmd_xbar_demux_001:src1_data -> cmd_xbar_mux_001:sink1_data + wire [17:0] cmd_xbar_demux_001_src1_channel; // cmd_xbar_demux_001:src1_channel -> cmd_xbar_mux_001:sink1_channel + wire cmd_xbar_demux_001_src1_ready; // cmd_xbar_mux_001:sink1_ready -> cmd_xbar_demux_001:src1_ready + wire cmd_xbar_demux_001_src2_endofpacket; // cmd_xbar_demux_001:src2_endofpacket -> LEDs_s1_translator_avalon_universal_slave_0_agent:cp_endofpacket + wire cmd_xbar_demux_001_src2_valid; // cmd_xbar_demux_001:src2_valid -> LEDs_s1_translator_avalon_universal_slave_0_agent:cp_valid + wire cmd_xbar_demux_001_src2_startofpacket; // cmd_xbar_demux_001:src2_startofpacket -> LEDs_s1_translator_avalon_universal_slave_0_agent:cp_startofpacket + wire [95:0] cmd_xbar_demux_001_src2_data; // cmd_xbar_demux_001:src2_data -> LEDs_s1_translator_avalon_universal_slave_0_agent:cp_data + wire [17:0] cmd_xbar_demux_001_src2_channel; // cmd_xbar_demux_001:src2_channel -> LEDs_s1_translator_avalon_universal_slave_0_agent:cp_channel + wire cmd_xbar_demux_001_src3_endofpacket; // cmd_xbar_demux_001:src3_endofpacket -> jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent:cp_endofpacket + wire cmd_xbar_demux_001_src3_valid; // cmd_xbar_demux_001:src3_valid -> jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent:cp_valid + wire cmd_xbar_demux_001_src3_startofpacket; // cmd_xbar_demux_001:src3_startofpacket -> jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent:cp_startofpacket + wire [95:0] cmd_xbar_demux_001_src3_data; // cmd_xbar_demux_001:src3_data -> jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent:cp_data + wire [17:0] cmd_xbar_demux_001_src3_channel; // cmd_xbar_demux_001:src3_channel -> jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent:cp_channel + wire cmd_xbar_demux_001_src4_endofpacket; // cmd_xbar_demux_001:src4_endofpacket -> LEDRs_s1_translator_avalon_universal_slave_0_agent:cp_endofpacket + wire cmd_xbar_demux_001_src4_valid; // cmd_xbar_demux_001:src4_valid -> LEDRs_s1_translator_avalon_universal_slave_0_agent:cp_valid + wire cmd_xbar_demux_001_src4_startofpacket; // cmd_xbar_demux_001:src4_startofpacket -> LEDRs_s1_translator_avalon_universal_slave_0_agent:cp_startofpacket + wire [95:0] cmd_xbar_demux_001_src4_data; // cmd_xbar_demux_001:src4_data -> LEDRs_s1_translator_avalon_universal_slave_0_agent:cp_data + wire [17:0] cmd_xbar_demux_001_src4_channel; // cmd_xbar_demux_001:src4_channel -> LEDRs_s1_translator_avalon_universal_slave_0_agent:cp_channel + wire cmd_xbar_demux_001_src5_endofpacket; // cmd_xbar_demux_001:src5_endofpacket -> switches_s1_translator_avalon_universal_slave_0_agent:cp_endofpacket + wire cmd_xbar_demux_001_src5_valid; // cmd_xbar_demux_001:src5_valid -> switches_s1_translator_avalon_universal_slave_0_agent:cp_valid + wire cmd_xbar_demux_001_src5_startofpacket; // cmd_xbar_demux_001:src5_startofpacket -> switches_s1_translator_avalon_universal_slave_0_agent:cp_startofpacket + wire [95:0] cmd_xbar_demux_001_src5_data; // cmd_xbar_demux_001:src5_data -> switches_s1_translator_avalon_universal_slave_0_agent:cp_data + wire [17:0] cmd_xbar_demux_001_src5_channel; // cmd_xbar_demux_001:src5_channel -> switches_s1_translator_avalon_universal_slave_0_agent:cp_channel + wire cmd_xbar_demux_001_src6_endofpacket; // cmd_xbar_demux_001:src6_endofpacket -> push_switches_s1_translator_avalon_universal_slave_0_agent:cp_endofpacket + wire cmd_xbar_demux_001_src6_valid; // cmd_xbar_demux_001:src6_valid -> push_switches_s1_translator_avalon_universal_slave_0_agent:cp_valid + wire cmd_xbar_demux_001_src6_startofpacket; // cmd_xbar_demux_001:src6_startofpacket -> push_switches_s1_translator_avalon_universal_slave_0_agent:cp_startofpacket + wire [95:0] cmd_xbar_demux_001_src6_data; // cmd_xbar_demux_001:src6_data -> push_switches_s1_translator_avalon_universal_slave_0_agent:cp_data + wire [17:0] cmd_xbar_demux_001_src6_channel; // cmd_xbar_demux_001:src6_channel -> push_switches_s1_translator_avalon_universal_slave_0_agent:cp_channel + wire cmd_xbar_demux_001_src7_endofpacket; // cmd_xbar_demux_001:src7_endofpacket -> hex0_s1_translator_avalon_universal_slave_0_agent:cp_endofpacket + wire cmd_xbar_demux_001_src7_valid; // cmd_xbar_demux_001:src7_valid -> hex0_s1_translator_avalon_universal_slave_0_agent:cp_valid + wire cmd_xbar_demux_001_src7_startofpacket; // cmd_xbar_demux_001:src7_startofpacket -> hex0_s1_translator_avalon_universal_slave_0_agent:cp_startofpacket + wire [95:0] cmd_xbar_demux_001_src7_data; // cmd_xbar_demux_001:src7_data -> hex0_s1_translator_avalon_universal_slave_0_agent:cp_data + wire [17:0] cmd_xbar_demux_001_src7_channel; // cmd_xbar_demux_001:src7_channel -> hex0_s1_translator_avalon_universal_slave_0_agent:cp_channel + wire cmd_xbar_demux_001_src8_endofpacket; // cmd_xbar_demux_001:src8_endofpacket -> hex1_s1_translator_avalon_universal_slave_0_agent:cp_endofpacket + wire cmd_xbar_demux_001_src8_valid; // cmd_xbar_demux_001:src8_valid -> hex1_s1_translator_avalon_universal_slave_0_agent:cp_valid + wire cmd_xbar_demux_001_src8_startofpacket; // cmd_xbar_demux_001:src8_startofpacket -> hex1_s1_translator_avalon_universal_slave_0_agent:cp_startofpacket + wire [95:0] cmd_xbar_demux_001_src8_data; // cmd_xbar_demux_001:src8_data -> hex1_s1_translator_avalon_universal_slave_0_agent:cp_data + wire [17:0] cmd_xbar_demux_001_src8_channel; // cmd_xbar_demux_001:src8_channel -> hex1_s1_translator_avalon_universal_slave_0_agent:cp_channel + wire cmd_xbar_demux_001_src9_endofpacket; // cmd_xbar_demux_001:src9_endofpacket -> hex2_s1_translator_avalon_universal_slave_0_agent:cp_endofpacket + wire cmd_xbar_demux_001_src9_valid; // cmd_xbar_demux_001:src9_valid -> hex2_s1_translator_avalon_universal_slave_0_agent:cp_valid + wire cmd_xbar_demux_001_src9_startofpacket; // cmd_xbar_demux_001:src9_startofpacket -> hex2_s1_translator_avalon_universal_slave_0_agent:cp_startofpacket + wire [95:0] cmd_xbar_demux_001_src9_data; // cmd_xbar_demux_001:src9_data -> hex2_s1_translator_avalon_universal_slave_0_agent:cp_data + wire [17:0] cmd_xbar_demux_001_src9_channel; // cmd_xbar_demux_001:src9_channel -> hex2_s1_translator_avalon_universal_slave_0_agent:cp_channel + wire cmd_xbar_demux_001_src10_endofpacket; // cmd_xbar_demux_001:src10_endofpacket -> hex3_s1_translator_avalon_universal_slave_0_agent:cp_endofpacket + wire cmd_xbar_demux_001_src10_valid; // cmd_xbar_demux_001:src10_valid -> hex3_s1_translator_avalon_universal_slave_0_agent:cp_valid + wire cmd_xbar_demux_001_src10_startofpacket; // cmd_xbar_demux_001:src10_startofpacket -> hex3_s1_translator_avalon_universal_slave_0_agent:cp_startofpacket + wire [95:0] cmd_xbar_demux_001_src10_data; // cmd_xbar_demux_001:src10_data -> hex3_s1_translator_avalon_universal_slave_0_agent:cp_data + wire [17:0] cmd_xbar_demux_001_src10_channel; // cmd_xbar_demux_001:src10_channel -> hex3_s1_translator_avalon_universal_slave_0_agent:cp_channel + wire cmd_xbar_demux_001_src11_endofpacket; // cmd_xbar_demux_001:src11_endofpacket -> hex4_s1_translator_avalon_universal_slave_0_agent:cp_endofpacket + wire cmd_xbar_demux_001_src11_valid; // cmd_xbar_demux_001:src11_valid -> hex4_s1_translator_avalon_universal_slave_0_agent:cp_valid + wire cmd_xbar_demux_001_src11_startofpacket; // cmd_xbar_demux_001:src11_startofpacket -> hex4_s1_translator_avalon_universal_slave_0_agent:cp_startofpacket + wire [95:0] cmd_xbar_demux_001_src11_data; // cmd_xbar_demux_001:src11_data -> hex4_s1_translator_avalon_universal_slave_0_agent:cp_data + wire [17:0] cmd_xbar_demux_001_src11_channel; // cmd_xbar_demux_001:src11_channel -> hex4_s1_translator_avalon_universal_slave_0_agent:cp_channel + wire cmd_xbar_demux_001_src12_endofpacket; // cmd_xbar_demux_001:src12_endofpacket -> hex5_s1_translator_avalon_universal_slave_0_agent:cp_endofpacket + wire cmd_xbar_demux_001_src12_valid; // cmd_xbar_demux_001:src12_valid -> hex5_s1_translator_avalon_universal_slave_0_agent:cp_valid + wire cmd_xbar_demux_001_src12_startofpacket; // cmd_xbar_demux_001:src12_startofpacket -> hex5_s1_translator_avalon_universal_slave_0_agent:cp_startofpacket + wire [95:0] cmd_xbar_demux_001_src12_data; // cmd_xbar_demux_001:src12_data -> hex5_s1_translator_avalon_universal_slave_0_agent:cp_data + wire [17:0] cmd_xbar_demux_001_src12_channel; // cmd_xbar_demux_001:src12_channel -> hex5_s1_translator_avalon_universal_slave_0_agent:cp_channel + wire cmd_xbar_demux_001_src13_endofpacket; // cmd_xbar_demux_001:src13_endofpacket -> hex6_s1_translator_avalon_universal_slave_0_agent:cp_endofpacket + wire cmd_xbar_demux_001_src13_valid; // cmd_xbar_demux_001:src13_valid -> hex6_s1_translator_avalon_universal_slave_0_agent:cp_valid + wire cmd_xbar_demux_001_src13_startofpacket; // cmd_xbar_demux_001:src13_startofpacket -> hex6_s1_translator_avalon_universal_slave_0_agent:cp_startofpacket + wire [95:0] cmd_xbar_demux_001_src13_data; // cmd_xbar_demux_001:src13_data -> hex6_s1_translator_avalon_universal_slave_0_agent:cp_data + wire [17:0] cmd_xbar_demux_001_src13_channel; // cmd_xbar_demux_001:src13_channel -> hex6_s1_translator_avalon_universal_slave_0_agent:cp_channel + wire cmd_xbar_demux_001_src14_endofpacket; // cmd_xbar_demux_001:src14_endofpacket -> hex7_s1_translator_avalon_universal_slave_0_agent:cp_endofpacket + wire cmd_xbar_demux_001_src14_valid; // cmd_xbar_demux_001:src14_valid -> hex7_s1_translator_avalon_universal_slave_0_agent:cp_valid + wire cmd_xbar_demux_001_src14_startofpacket; // cmd_xbar_demux_001:src14_startofpacket -> hex7_s1_translator_avalon_universal_slave_0_agent:cp_startofpacket + wire [95:0] cmd_xbar_demux_001_src14_data; // cmd_xbar_demux_001:src14_data -> hex7_s1_translator_avalon_universal_slave_0_agent:cp_data + wire [17:0] cmd_xbar_demux_001_src14_channel; // cmd_xbar_demux_001:src14_channel -> hex7_s1_translator_avalon_universal_slave_0_agent:cp_channel + wire cmd_xbar_demux_001_src15_endofpacket; // cmd_xbar_demux_001:src15_endofpacket -> lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent:cp_endofpacket + wire cmd_xbar_demux_001_src15_valid; // cmd_xbar_demux_001:src15_valid -> lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent:cp_valid + wire cmd_xbar_demux_001_src15_startofpacket; // cmd_xbar_demux_001:src15_startofpacket -> lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent:cp_startofpacket + wire [95:0] cmd_xbar_demux_001_src15_data; // cmd_xbar_demux_001:src15_data -> lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent:cp_data + wire [17:0] cmd_xbar_demux_001_src15_channel; // cmd_xbar_demux_001:src15_channel -> lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent:cp_channel + wire cmd_xbar_demux_001_src16_endofpacket; // cmd_xbar_demux_001:src16_endofpacket -> lcd_on_s1_translator_avalon_universal_slave_0_agent:cp_endofpacket + wire cmd_xbar_demux_001_src16_valid; // cmd_xbar_demux_001:src16_valid -> lcd_on_s1_translator_avalon_universal_slave_0_agent:cp_valid + wire cmd_xbar_demux_001_src16_startofpacket; // cmd_xbar_demux_001:src16_startofpacket -> lcd_on_s1_translator_avalon_universal_slave_0_agent:cp_startofpacket + wire [95:0] cmd_xbar_demux_001_src16_data; // cmd_xbar_demux_001:src16_data -> lcd_on_s1_translator_avalon_universal_slave_0_agent:cp_data + wire [17:0] cmd_xbar_demux_001_src16_channel; // cmd_xbar_demux_001:src16_channel -> lcd_on_s1_translator_avalon_universal_slave_0_agent:cp_channel + wire cmd_xbar_demux_001_src17_endofpacket; // cmd_xbar_demux_001:src17_endofpacket -> lcd_blon_s1_translator_avalon_universal_slave_0_agent:cp_endofpacket + wire cmd_xbar_demux_001_src17_valid; // cmd_xbar_demux_001:src17_valid -> lcd_blon_s1_translator_avalon_universal_slave_0_agent:cp_valid + wire cmd_xbar_demux_001_src17_startofpacket; // cmd_xbar_demux_001:src17_startofpacket -> lcd_blon_s1_translator_avalon_universal_slave_0_agent:cp_startofpacket + wire [95:0] cmd_xbar_demux_001_src17_data; // cmd_xbar_demux_001:src17_data -> lcd_blon_s1_translator_avalon_universal_slave_0_agent:cp_data + wire [17:0] cmd_xbar_demux_001_src17_channel; // cmd_xbar_demux_001:src17_channel -> lcd_blon_s1_translator_avalon_universal_slave_0_agent:cp_channel + wire rsp_xbar_demux_src0_endofpacket; // rsp_xbar_demux:src0_endofpacket -> rsp_xbar_mux:sink0_endofpacket + wire rsp_xbar_demux_src0_valid; // rsp_xbar_demux:src0_valid -> rsp_xbar_mux:sink0_valid + wire rsp_xbar_demux_src0_startofpacket; // rsp_xbar_demux:src0_startofpacket -> rsp_xbar_mux:sink0_startofpacket + wire [95:0] rsp_xbar_demux_src0_data; // rsp_xbar_demux:src0_data -> rsp_xbar_mux:sink0_data + wire [17:0] rsp_xbar_demux_src0_channel; // rsp_xbar_demux:src0_channel -> rsp_xbar_mux:sink0_channel + wire rsp_xbar_demux_src0_ready; // rsp_xbar_mux:sink0_ready -> rsp_xbar_demux:src0_ready + wire rsp_xbar_demux_src1_endofpacket; // rsp_xbar_demux:src1_endofpacket -> rsp_xbar_mux_001:sink0_endofpacket + wire rsp_xbar_demux_src1_valid; // rsp_xbar_demux:src1_valid -> rsp_xbar_mux_001:sink0_valid + wire rsp_xbar_demux_src1_startofpacket; // rsp_xbar_demux:src1_startofpacket -> rsp_xbar_mux_001:sink0_startofpacket + wire [95:0] rsp_xbar_demux_src1_data; // rsp_xbar_demux:src1_data -> rsp_xbar_mux_001:sink0_data + wire [17:0] rsp_xbar_demux_src1_channel; // rsp_xbar_demux:src1_channel -> rsp_xbar_mux_001:sink0_channel + wire rsp_xbar_demux_src1_ready; // rsp_xbar_mux_001:sink0_ready -> rsp_xbar_demux:src1_ready + wire rsp_xbar_demux_001_src0_endofpacket; // rsp_xbar_demux_001:src0_endofpacket -> rsp_xbar_mux:sink1_endofpacket + wire rsp_xbar_demux_001_src0_valid; // rsp_xbar_demux_001:src0_valid -> rsp_xbar_mux:sink1_valid + wire rsp_xbar_demux_001_src0_startofpacket; // rsp_xbar_demux_001:src0_startofpacket -> rsp_xbar_mux:sink1_startofpacket + wire [95:0] rsp_xbar_demux_001_src0_data; // rsp_xbar_demux_001:src0_data -> rsp_xbar_mux:sink1_data + wire [17:0] rsp_xbar_demux_001_src0_channel; // rsp_xbar_demux_001:src0_channel -> rsp_xbar_mux:sink1_channel + wire rsp_xbar_demux_001_src0_ready; // rsp_xbar_mux:sink1_ready -> rsp_xbar_demux_001:src0_ready + wire rsp_xbar_demux_001_src1_endofpacket; // rsp_xbar_demux_001:src1_endofpacket -> rsp_xbar_mux_001:sink1_endofpacket + wire rsp_xbar_demux_001_src1_valid; // rsp_xbar_demux_001:src1_valid -> rsp_xbar_mux_001:sink1_valid + wire rsp_xbar_demux_001_src1_startofpacket; // rsp_xbar_demux_001:src1_startofpacket -> rsp_xbar_mux_001:sink1_startofpacket + wire [95:0] rsp_xbar_demux_001_src1_data; // rsp_xbar_demux_001:src1_data -> rsp_xbar_mux_001:sink1_data + wire [17:0] rsp_xbar_demux_001_src1_channel; // rsp_xbar_demux_001:src1_channel -> rsp_xbar_mux_001:sink1_channel + wire rsp_xbar_demux_001_src1_ready; // rsp_xbar_mux_001:sink1_ready -> rsp_xbar_demux_001:src1_ready + wire rsp_xbar_demux_002_src0_endofpacket; // rsp_xbar_demux_002:src0_endofpacket -> rsp_xbar_mux_001:sink2_endofpacket + wire rsp_xbar_demux_002_src0_valid; // rsp_xbar_demux_002:src0_valid -> rsp_xbar_mux_001:sink2_valid + wire rsp_xbar_demux_002_src0_startofpacket; // rsp_xbar_demux_002:src0_startofpacket -> rsp_xbar_mux_001:sink2_startofpacket + wire [95:0] rsp_xbar_demux_002_src0_data; // rsp_xbar_demux_002:src0_data -> rsp_xbar_mux_001:sink2_data + wire [17:0] rsp_xbar_demux_002_src0_channel; // rsp_xbar_demux_002:src0_channel -> rsp_xbar_mux_001:sink2_channel + wire rsp_xbar_demux_002_src0_ready; // rsp_xbar_mux_001:sink2_ready -> rsp_xbar_demux_002:src0_ready + wire rsp_xbar_demux_003_src0_endofpacket; // rsp_xbar_demux_003:src0_endofpacket -> rsp_xbar_mux_001:sink3_endofpacket + wire rsp_xbar_demux_003_src0_valid; // rsp_xbar_demux_003:src0_valid -> rsp_xbar_mux_001:sink3_valid + wire rsp_xbar_demux_003_src0_startofpacket; // rsp_xbar_demux_003:src0_startofpacket -> rsp_xbar_mux_001:sink3_startofpacket + wire [95:0] rsp_xbar_demux_003_src0_data; // rsp_xbar_demux_003:src0_data -> rsp_xbar_mux_001:sink3_data + wire [17:0] rsp_xbar_demux_003_src0_channel; // rsp_xbar_demux_003:src0_channel -> rsp_xbar_mux_001:sink3_channel + wire rsp_xbar_demux_003_src0_ready; // rsp_xbar_mux_001:sink3_ready -> rsp_xbar_demux_003:src0_ready + wire rsp_xbar_demux_004_src0_endofpacket; // rsp_xbar_demux_004:src0_endofpacket -> rsp_xbar_mux_001:sink4_endofpacket + wire rsp_xbar_demux_004_src0_valid; // rsp_xbar_demux_004:src0_valid -> rsp_xbar_mux_001:sink4_valid + wire rsp_xbar_demux_004_src0_startofpacket; // rsp_xbar_demux_004:src0_startofpacket -> rsp_xbar_mux_001:sink4_startofpacket + wire [95:0] rsp_xbar_demux_004_src0_data; // rsp_xbar_demux_004:src0_data -> rsp_xbar_mux_001:sink4_data + wire [17:0] rsp_xbar_demux_004_src0_channel; // rsp_xbar_demux_004:src0_channel -> rsp_xbar_mux_001:sink4_channel + wire rsp_xbar_demux_004_src0_ready; // rsp_xbar_mux_001:sink4_ready -> rsp_xbar_demux_004:src0_ready + wire rsp_xbar_demux_005_src0_endofpacket; // rsp_xbar_demux_005:src0_endofpacket -> rsp_xbar_mux_001:sink5_endofpacket + wire rsp_xbar_demux_005_src0_valid; // rsp_xbar_demux_005:src0_valid -> rsp_xbar_mux_001:sink5_valid + wire rsp_xbar_demux_005_src0_startofpacket; // rsp_xbar_demux_005:src0_startofpacket -> rsp_xbar_mux_001:sink5_startofpacket + wire [95:0] rsp_xbar_demux_005_src0_data; // rsp_xbar_demux_005:src0_data -> rsp_xbar_mux_001:sink5_data + wire [17:0] rsp_xbar_demux_005_src0_channel; // rsp_xbar_demux_005:src0_channel -> rsp_xbar_mux_001:sink5_channel + wire rsp_xbar_demux_005_src0_ready; // rsp_xbar_mux_001:sink5_ready -> rsp_xbar_demux_005:src0_ready + wire rsp_xbar_demux_006_src0_endofpacket; // rsp_xbar_demux_006:src0_endofpacket -> rsp_xbar_mux_001:sink6_endofpacket + wire rsp_xbar_demux_006_src0_valid; // rsp_xbar_demux_006:src0_valid -> rsp_xbar_mux_001:sink6_valid + wire rsp_xbar_demux_006_src0_startofpacket; // rsp_xbar_demux_006:src0_startofpacket -> rsp_xbar_mux_001:sink6_startofpacket + wire [95:0] rsp_xbar_demux_006_src0_data; // rsp_xbar_demux_006:src0_data -> rsp_xbar_mux_001:sink6_data + wire [17:0] rsp_xbar_demux_006_src0_channel; // rsp_xbar_demux_006:src0_channel -> rsp_xbar_mux_001:sink6_channel + wire rsp_xbar_demux_006_src0_ready; // rsp_xbar_mux_001:sink6_ready -> rsp_xbar_demux_006:src0_ready + wire rsp_xbar_demux_007_src0_endofpacket; // rsp_xbar_demux_007:src0_endofpacket -> rsp_xbar_mux_001:sink7_endofpacket + wire rsp_xbar_demux_007_src0_valid; // rsp_xbar_demux_007:src0_valid -> rsp_xbar_mux_001:sink7_valid + wire rsp_xbar_demux_007_src0_startofpacket; // rsp_xbar_demux_007:src0_startofpacket -> rsp_xbar_mux_001:sink7_startofpacket + wire [95:0] rsp_xbar_demux_007_src0_data; // rsp_xbar_demux_007:src0_data -> rsp_xbar_mux_001:sink7_data + wire [17:0] rsp_xbar_demux_007_src0_channel; // rsp_xbar_demux_007:src0_channel -> rsp_xbar_mux_001:sink7_channel + wire rsp_xbar_demux_007_src0_ready; // rsp_xbar_mux_001:sink7_ready -> rsp_xbar_demux_007:src0_ready + wire rsp_xbar_demux_008_src0_endofpacket; // rsp_xbar_demux_008:src0_endofpacket -> rsp_xbar_mux_001:sink8_endofpacket + wire rsp_xbar_demux_008_src0_valid; // rsp_xbar_demux_008:src0_valid -> rsp_xbar_mux_001:sink8_valid + wire rsp_xbar_demux_008_src0_startofpacket; // rsp_xbar_demux_008:src0_startofpacket -> rsp_xbar_mux_001:sink8_startofpacket + wire [95:0] rsp_xbar_demux_008_src0_data; // rsp_xbar_demux_008:src0_data -> rsp_xbar_mux_001:sink8_data + wire [17:0] rsp_xbar_demux_008_src0_channel; // rsp_xbar_demux_008:src0_channel -> rsp_xbar_mux_001:sink8_channel + wire rsp_xbar_demux_008_src0_ready; // rsp_xbar_mux_001:sink8_ready -> rsp_xbar_demux_008:src0_ready + wire rsp_xbar_demux_009_src0_endofpacket; // rsp_xbar_demux_009:src0_endofpacket -> rsp_xbar_mux_001:sink9_endofpacket + wire rsp_xbar_demux_009_src0_valid; // rsp_xbar_demux_009:src0_valid -> rsp_xbar_mux_001:sink9_valid + wire rsp_xbar_demux_009_src0_startofpacket; // rsp_xbar_demux_009:src0_startofpacket -> rsp_xbar_mux_001:sink9_startofpacket + wire [95:0] rsp_xbar_demux_009_src0_data; // rsp_xbar_demux_009:src0_data -> rsp_xbar_mux_001:sink9_data + wire [17:0] rsp_xbar_demux_009_src0_channel; // rsp_xbar_demux_009:src0_channel -> rsp_xbar_mux_001:sink9_channel + wire rsp_xbar_demux_009_src0_ready; // rsp_xbar_mux_001:sink9_ready -> rsp_xbar_demux_009:src0_ready + wire rsp_xbar_demux_010_src0_endofpacket; // rsp_xbar_demux_010:src0_endofpacket -> rsp_xbar_mux_001:sink10_endofpacket + wire rsp_xbar_demux_010_src0_valid; // rsp_xbar_demux_010:src0_valid -> rsp_xbar_mux_001:sink10_valid + wire rsp_xbar_demux_010_src0_startofpacket; // rsp_xbar_demux_010:src0_startofpacket -> rsp_xbar_mux_001:sink10_startofpacket + wire [95:0] rsp_xbar_demux_010_src0_data; // rsp_xbar_demux_010:src0_data -> rsp_xbar_mux_001:sink10_data + wire [17:0] rsp_xbar_demux_010_src0_channel; // rsp_xbar_demux_010:src0_channel -> rsp_xbar_mux_001:sink10_channel + wire rsp_xbar_demux_010_src0_ready; // rsp_xbar_mux_001:sink10_ready -> rsp_xbar_demux_010:src0_ready + wire rsp_xbar_demux_011_src0_endofpacket; // rsp_xbar_demux_011:src0_endofpacket -> rsp_xbar_mux_001:sink11_endofpacket + wire rsp_xbar_demux_011_src0_valid; // rsp_xbar_demux_011:src0_valid -> rsp_xbar_mux_001:sink11_valid + wire rsp_xbar_demux_011_src0_startofpacket; // rsp_xbar_demux_011:src0_startofpacket -> rsp_xbar_mux_001:sink11_startofpacket + wire [95:0] rsp_xbar_demux_011_src0_data; // rsp_xbar_demux_011:src0_data -> rsp_xbar_mux_001:sink11_data + wire [17:0] rsp_xbar_demux_011_src0_channel; // rsp_xbar_demux_011:src0_channel -> rsp_xbar_mux_001:sink11_channel + wire rsp_xbar_demux_011_src0_ready; // rsp_xbar_mux_001:sink11_ready -> rsp_xbar_demux_011:src0_ready + wire rsp_xbar_demux_012_src0_endofpacket; // rsp_xbar_demux_012:src0_endofpacket -> rsp_xbar_mux_001:sink12_endofpacket + wire rsp_xbar_demux_012_src0_valid; // rsp_xbar_demux_012:src0_valid -> rsp_xbar_mux_001:sink12_valid + wire rsp_xbar_demux_012_src0_startofpacket; // rsp_xbar_demux_012:src0_startofpacket -> rsp_xbar_mux_001:sink12_startofpacket + wire [95:0] rsp_xbar_demux_012_src0_data; // rsp_xbar_demux_012:src0_data -> rsp_xbar_mux_001:sink12_data + wire [17:0] rsp_xbar_demux_012_src0_channel; // rsp_xbar_demux_012:src0_channel -> rsp_xbar_mux_001:sink12_channel + wire rsp_xbar_demux_012_src0_ready; // rsp_xbar_mux_001:sink12_ready -> rsp_xbar_demux_012:src0_ready + wire rsp_xbar_demux_013_src0_endofpacket; // rsp_xbar_demux_013:src0_endofpacket -> rsp_xbar_mux_001:sink13_endofpacket + wire rsp_xbar_demux_013_src0_valid; // rsp_xbar_demux_013:src0_valid -> rsp_xbar_mux_001:sink13_valid + wire rsp_xbar_demux_013_src0_startofpacket; // rsp_xbar_demux_013:src0_startofpacket -> rsp_xbar_mux_001:sink13_startofpacket + wire [95:0] rsp_xbar_demux_013_src0_data; // rsp_xbar_demux_013:src0_data -> rsp_xbar_mux_001:sink13_data + wire [17:0] rsp_xbar_demux_013_src0_channel; // rsp_xbar_demux_013:src0_channel -> rsp_xbar_mux_001:sink13_channel + wire rsp_xbar_demux_013_src0_ready; // rsp_xbar_mux_001:sink13_ready -> rsp_xbar_demux_013:src0_ready + wire rsp_xbar_demux_014_src0_endofpacket; // rsp_xbar_demux_014:src0_endofpacket -> rsp_xbar_mux_001:sink14_endofpacket + wire rsp_xbar_demux_014_src0_valid; // rsp_xbar_demux_014:src0_valid -> rsp_xbar_mux_001:sink14_valid + wire rsp_xbar_demux_014_src0_startofpacket; // rsp_xbar_demux_014:src0_startofpacket -> rsp_xbar_mux_001:sink14_startofpacket + wire [95:0] rsp_xbar_demux_014_src0_data; // rsp_xbar_demux_014:src0_data -> rsp_xbar_mux_001:sink14_data + wire [17:0] rsp_xbar_demux_014_src0_channel; // rsp_xbar_demux_014:src0_channel -> rsp_xbar_mux_001:sink14_channel + wire rsp_xbar_demux_014_src0_ready; // rsp_xbar_mux_001:sink14_ready -> rsp_xbar_demux_014:src0_ready + wire rsp_xbar_demux_015_src0_endofpacket; // rsp_xbar_demux_015:src0_endofpacket -> rsp_xbar_mux_001:sink15_endofpacket + wire rsp_xbar_demux_015_src0_valid; // rsp_xbar_demux_015:src0_valid -> rsp_xbar_mux_001:sink15_valid + wire rsp_xbar_demux_015_src0_startofpacket; // rsp_xbar_demux_015:src0_startofpacket -> rsp_xbar_mux_001:sink15_startofpacket + wire [95:0] rsp_xbar_demux_015_src0_data; // rsp_xbar_demux_015:src0_data -> rsp_xbar_mux_001:sink15_data + wire [17:0] rsp_xbar_demux_015_src0_channel; // rsp_xbar_demux_015:src0_channel -> rsp_xbar_mux_001:sink15_channel + wire rsp_xbar_demux_015_src0_ready; // rsp_xbar_mux_001:sink15_ready -> rsp_xbar_demux_015:src0_ready + wire rsp_xbar_demux_016_src0_endofpacket; // rsp_xbar_demux_016:src0_endofpacket -> rsp_xbar_mux_001:sink16_endofpacket + wire rsp_xbar_demux_016_src0_valid; // rsp_xbar_demux_016:src0_valid -> rsp_xbar_mux_001:sink16_valid + wire rsp_xbar_demux_016_src0_startofpacket; // rsp_xbar_demux_016:src0_startofpacket -> rsp_xbar_mux_001:sink16_startofpacket + wire [95:0] rsp_xbar_demux_016_src0_data; // rsp_xbar_demux_016:src0_data -> rsp_xbar_mux_001:sink16_data + wire [17:0] rsp_xbar_demux_016_src0_channel; // rsp_xbar_demux_016:src0_channel -> rsp_xbar_mux_001:sink16_channel + wire rsp_xbar_demux_016_src0_ready; // rsp_xbar_mux_001:sink16_ready -> rsp_xbar_demux_016:src0_ready + wire rsp_xbar_demux_017_src0_endofpacket; // rsp_xbar_demux_017:src0_endofpacket -> rsp_xbar_mux_001:sink17_endofpacket + wire rsp_xbar_demux_017_src0_valid; // rsp_xbar_demux_017:src0_valid -> rsp_xbar_mux_001:sink17_valid + wire rsp_xbar_demux_017_src0_startofpacket; // rsp_xbar_demux_017:src0_startofpacket -> rsp_xbar_mux_001:sink17_startofpacket + wire [95:0] rsp_xbar_demux_017_src0_data; // rsp_xbar_demux_017:src0_data -> rsp_xbar_mux_001:sink17_data + wire [17:0] rsp_xbar_demux_017_src0_channel; // rsp_xbar_demux_017:src0_channel -> rsp_xbar_mux_001:sink17_channel + wire rsp_xbar_demux_017_src0_ready; // rsp_xbar_mux_001:sink17_ready -> rsp_xbar_demux_017:src0_ready + wire addr_router_src_endofpacket; // addr_router:src_endofpacket -> cmd_xbar_demux:sink_endofpacket + wire addr_router_src_valid; // addr_router:src_valid -> cmd_xbar_demux:sink_valid + wire addr_router_src_startofpacket; // addr_router:src_startofpacket -> cmd_xbar_demux:sink_startofpacket + wire [95:0] addr_router_src_data; // addr_router:src_data -> cmd_xbar_demux:sink_data + wire [17:0] addr_router_src_channel; // addr_router:src_channel -> cmd_xbar_demux:sink_channel + wire addr_router_src_ready; // cmd_xbar_demux:sink_ready -> addr_router:src_ready + wire rsp_xbar_mux_src_endofpacket; // rsp_xbar_mux:src_endofpacket -> nios2_processor_instruction_master_translator_avalon_universal_master_0_agent:rp_endofpacket + wire rsp_xbar_mux_src_valid; // rsp_xbar_mux:src_valid -> nios2_processor_instruction_master_translator_avalon_universal_master_0_agent:rp_valid + wire rsp_xbar_mux_src_startofpacket; // rsp_xbar_mux:src_startofpacket -> nios2_processor_instruction_master_translator_avalon_universal_master_0_agent:rp_startofpacket + wire [95:0] rsp_xbar_mux_src_data; // rsp_xbar_mux:src_data -> nios2_processor_instruction_master_translator_avalon_universal_master_0_agent:rp_data + wire [17:0] rsp_xbar_mux_src_channel; // rsp_xbar_mux:src_channel -> nios2_processor_instruction_master_translator_avalon_universal_master_0_agent:rp_channel + wire rsp_xbar_mux_src_ready; // nios2_processor_instruction_master_translator_avalon_universal_master_0_agent:rp_ready -> rsp_xbar_mux:src_ready + wire addr_router_001_src_endofpacket; // addr_router_001:src_endofpacket -> cmd_xbar_demux_001:sink_endofpacket + wire addr_router_001_src_valid; // addr_router_001:src_valid -> cmd_xbar_demux_001:sink_valid + wire addr_router_001_src_startofpacket; // addr_router_001:src_startofpacket -> cmd_xbar_demux_001:sink_startofpacket + wire [95:0] addr_router_001_src_data; // addr_router_001:src_data -> cmd_xbar_demux_001:sink_data + wire [17:0] addr_router_001_src_channel; // addr_router_001:src_channel -> cmd_xbar_demux_001:sink_channel + wire addr_router_001_src_ready; // cmd_xbar_demux_001:sink_ready -> addr_router_001:src_ready + wire rsp_xbar_mux_001_src_endofpacket; // rsp_xbar_mux_001:src_endofpacket -> nios2_processor_data_master_translator_avalon_universal_master_0_agent:rp_endofpacket + wire rsp_xbar_mux_001_src_valid; // rsp_xbar_mux_001:src_valid -> nios2_processor_data_master_translator_avalon_universal_master_0_agent:rp_valid + wire rsp_xbar_mux_001_src_startofpacket; // rsp_xbar_mux_001:src_startofpacket -> nios2_processor_data_master_translator_avalon_universal_master_0_agent:rp_startofpacket + wire [95:0] rsp_xbar_mux_001_src_data; // rsp_xbar_mux_001:src_data -> nios2_processor_data_master_translator_avalon_universal_master_0_agent:rp_data + wire [17:0] rsp_xbar_mux_001_src_channel; // rsp_xbar_mux_001:src_channel -> nios2_processor_data_master_translator_avalon_universal_master_0_agent:rp_channel + wire rsp_xbar_mux_001_src_ready; // nios2_processor_data_master_translator_avalon_universal_master_0_agent:rp_ready -> rsp_xbar_mux_001:src_ready + wire cmd_xbar_mux_src_endofpacket; // cmd_xbar_mux:src_endofpacket -> nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent:cp_endofpacket + wire cmd_xbar_mux_src_valid; // cmd_xbar_mux:src_valid -> nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent:cp_valid + wire cmd_xbar_mux_src_startofpacket; // cmd_xbar_mux:src_startofpacket -> nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent:cp_startofpacket + wire [95:0] cmd_xbar_mux_src_data; // cmd_xbar_mux:src_data -> nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent:cp_data + wire [17:0] cmd_xbar_mux_src_channel; // cmd_xbar_mux:src_channel -> nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent:cp_channel + wire cmd_xbar_mux_src_ready; // nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent:cp_ready -> cmd_xbar_mux:src_ready + wire id_router_src_endofpacket; // id_router:src_endofpacket -> rsp_xbar_demux:sink_endofpacket + wire id_router_src_valid; // id_router:src_valid -> rsp_xbar_demux:sink_valid + wire id_router_src_startofpacket; // id_router:src_startofpacket -> rsp_xbar_demux:sink_startofpacket + wire [95:0] id_router_src_data; // id_router:src_data -> rsp_xbar_demux:sink_data + wire [17:0] id_router_src_channel; // id_router:src_channel -> rsp_xbar_demux:sink_channel + wire id_router_src_ready; // rsp_xbar_demux:sink_ready -> id_router:src_ready + wire cmd_xbar_mux_001_src_endofpacket; // cmd_xbar_mux_001:src_endofpacket -> onchip_memory_s1_translator_avalon_universal_slave_0_agent:cp_endofpacket + wire cmd_xbar_mux_001_src_valid; // cmd_xbar_mux_001:src_valid -> onchip_memory_s1_translator_avalon_universal_slave_0_agent:cp_valid + wire cmd_xbar_mux_001_src_startofpacket; // cmd_xbar_mux_001:src_startofpacket -> onchip_memory_s1_translator_avalon_universal_slave_0_agent:cp_startofpacket + wire [95:0] cmd_xbar_mux_001_src_data; // cmd_xbar_mux_001:src_data -> onchip_memory_s1_translator_avalon_universal_slave_0_agent:cp_data + wire [17:0] cmd_xbar_mux_001_src_channel; // cmd_xbar_mux_001:src_channel -> onchip_memory_s1_translator_avalon_universal_slave_0_agent:cp_channel + wire cmd_xbar_mux_001_src_ready; // onchip_memory_s1_translator_avalon_universal_slave_0_agent:cp_ready -> cmd_xbar_mux_001:src_ready + wire id_router_001_src_endofpacket; // id_router_001:src_endofpacket -> rsp_xbar_demux_001:sink_endofpacket + wire id_router_001_src_valid; // id_router_001:src_valid -> rsp_xbar_demux_001:sink_valid + wire id_router_001_src_startofpacket; // id_router_001:src_startofpacket -> rsp_xbar_demux_001:sink_startofpacket + wire [95:0] id_router_001_src_data; // id_router_001:src_data -> rsp_xbar_demux_001:sink_data + wire [17:0] id_router_001_src_channel; // id_router_001:src_channel -> rsp_xbar_demux_001:sink_channel + wire id_router_001_src_ready; // rsp_xbar_demux_001:sink_ready -> id_router_001:src_ready + wire cmd_xbar_demux_001_src2_ready; // LEDs_s1_translator_avalon_universal_slave_0_agent:cp_ready -> cmd_xbar_demux_001:src2_ready + wire id_router_002_src_endofpacket; // id_router_002:src_endofpacket -> rsp_xbar_demux_002:sink_endofpacket + wire id_router_002_src_valid; // id_router_002:src_valid -> rsp_xbar_demux_002:sink_valid + wire id_router_002_src_startofpacket; // id_router_002:src_startofpacket -> rsp_xbar_demux_002:sink_startofpacket + wire [95:0] id_router_002_src_data; // id_router_002:src_data -> rsp_xbar_demux_002:sink_data + wire [17:0] id_router_002_src_channel; // id_router_002:src_channel -> rsp_xbar_demux_002:sink_channel + wire id_router_002_src_ready; // rsp_xbar_demux_002:sink_ready -> id_router_002:src_ready + wire cmd_xbar_demux_001_src3_ready; // jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent:cp_ready -> cmd_xbar_demux_001:src3_ready + wire id_router_003_src_endofpacket; // id_router_003:src_endofpacket -> rsp_xbar_demux_003:sink_endofpacket + wire id_router_003_src_valid; // id_router_003:src_valid -> rsp_xbar_demux_003:sink_valid + wire id_router_003_src_startofpacket; // id_router_003:src_startofpacket -> rsp_xbar_demux_003:sink_startofpacket + wire [95:0] id_router_003_src_data; // id_router_003:src_data -> rsp_xbar_demux_003:sink_data + wire [17:0] id_router_003_src_channel; // id_router_003:src_channel -> rsp_xbar_demux_003:sink_channel + wire id_router_003_src_ready; // rsp_xbar_demux_003:sink_ready -> id_router_003:src_ready + wire cmd_xbar_demux_001_src4_ready; // LEDRs_s1_translator_avalon_universal_slave_0_agent:cp_ready -> cmd_xbar_demux_001:src4_ready + wire id_router_004_src_endofpacket; // id_router_004:src_endofpacket -> rsp_xbar_demux_004:sink_endofpacket + wire id_router_004_src_valid; // id_router_004:src_valid -> rsp_xbar_demux_004:sink_valid + wire id_router_004_src_startofpacket; // id_router_004:src_startofpacket -> rsp_xbar_demux_004:sink_startofpacket + wire [95:0] id_router_004_src_data; // id_router_004:src_data -> rsp_xbar_demux_004:sink_data + wire [17:0] id_router_004_src_channel; // id_router_004:src_channel -> rsp_xbar_demux_004:sink_channel + wire id_router_004_src_ready; // rsp_xbar_demux_004:sink_ready -> id_router_004:src_ready + wire cmd_xbar_demux_001_src5_ready; // switches_s1_translator_avalon_universal_slave_0_agent:cp_ready -> cmd_xbar_demux_001:src5_ready + wire id_router_005_src_endofpacket; // id_router_005:src_endofpacket -> rsp_xbar_demux_005:sink_endofpacket + wire id_router_005_src_valid; // id_router_005:src_valid -> rsp_xbar_demux_005:sink_valid + wire id_router_005_src_startofpacket; // id_router_005:src_startofpacket -> rsp_xbar_demux_005:sink_startofpacket + wire [95:0] id_router_005_src_data; // id_router_005:src_data -> rsp_xbar_demux_005:sink_data + wire [17:0] id_router_005_src_channel; // id_router_005:src_channel -> rsp_xbar_demux_005:sink_channel + wire id_router_005_src_ready; // rsp_xbar_demux_005:sink_ready -> id_router_005:src_ready + wire cmd_xbar_demux_001_src6_ready; // push_switches_s1_translator_avalon_universal_slave_0_agent:cp_ready -> cmd_xbar_demux_001:src6_ready + wire id_router_006_src_endofpacket; // id_router_006:src_endofpacket -> rsp_xbar_demux_006:sink_endofpacket + wire id_router_006_src_valid; // id_router_006:src_valid -> rsp_xbar_demux_006:sink_valid + wire id_router_006_src_startofpacket; // id_router_006:src_startofpacket -> rsp_xbar_demux_006:sink_startofpacket + wire [95:0] id_router_006_src_data; // id_router_006:src_data -> rsp_xbar_demux_006:sink_data + wire [17:0] id_router_006_src_channel; // id_router_006:src_channel -> rsp_xbar_demux_006:sink_channel + wire id_router_006_src_ready; // rsp_xbar_demux_006:sink_ready -> id_router_006:src_ready + wire cmd_xbar_demux_001_src7_ready; // hex0_s1_translator_avalon_universal_slave_0_agent:cp_ready -> cmd_xbar_demux_001:src7_ready + wire id_router_007_src_endofpacket; // id_router_007:src_endofpacket -> rsp_xbar_demux_007:sink_endofpacket + wire id_router_007_src_valid; // id_router_007:src_valid -> rsp_xbar_demux_007:sink_valid + wire id_router_007_src_startofpacket; // id_router_007:src_startofpacket -> rsp_xbar_demux_007:sink_startofpacket + wire [95:0] id_router_007_src_data; // id_router_007:src_data -> rsp_xbar_demux_007:sink_data + wire [17:0] id_router_007_src_channel; // id_router_007:src_channel -> rsp_xbar_demux_007:sink_channel + wire id_router_007_src_ready; // rsp_xbar_demux_007:sink_ready -> id_router_007:src_ready + wire cmd_xbar_demux_001_src8_ready; // hex1_s1_translator_avalon_universal_slave_0_agent:cp_ready -> cmd_xbar_demux_001:src8_ready + wire id_router_008_src_endofpacket; // id_router_008:src_endofpacket -> rsp_xbar_demux_008:sink_endofpacket + wire id_router_008_src_valid; // id_router_008:src_valid -> rsp_xbar_demux_008:sink_valid + wire id_router_008_src_startofpacket; // id_router_008:src_startofpacket -> rsp_xbar_demux_008:sink_startofpacket + wire [95:0] id_router_008_src_data; // id_router_008:src_data -> rsp_xbar_demux_008:sink_data + wire [17:0] id_router_008_src_channel; // id_router_008:src_channel -> rsp_xbar_demux_008:sink_channel + wire id_router_008_src_ready; // rsp_xbar_demux_008:sink_ready -> id_router_008:src_ready + wire cmd_xbar_demux_001_src9_ready; // hex2_s1_translator_avalon_universal_slave_0_agent:cp_ready -> cmd_xbar_demux_001:src9_ready + wire id_router_009_src_endofpacket; // id_router_009:src_endofpacket -> rsp_xbar_demux_009:sink_endofpacket + wire id_router_009_src_valid; // id_router_009:src_valid -> rsp_xbar_demux_009:sink_valid + wire id_router_009_src_startofpacket; // id_router_009:src_startofpacket -> rsp_xbar_demux_009:sink_startofpacket + wire [95:0] id_router_009_src_data; // id_router_009:src_data -> rsp_xbar_demux_009:sink_data + wire [17:0] id_router_009_src_channel; // id_router_009:src_channel -> rsp_xbar_demux_009:sink_channel + wire id_router_009_src_ready; // rsp_xbar_demux_009:sink_ready -> id_router_009:src_ready + wire cmd_xbar_demux_001_src10_ready; // hex3_s1_translator_avalon_universal_slave_0_agent:cp_ready -> cmd_xbar_demux_001:src10_ready + wire id_router_010_src_endofpacket; // id_router_010:src_endofpacket -> rsp_xbar_demux_010:sink_endofpacket + wire id_router_010_src_valid; // id_router_010:src_valid -> rsp_xbar_demux_010:sink_valid + wire id_router_010_src_startofpacket; // id_router_010:src_startofpacket -> rsp_xbar_demux_010:sink_startofpacket + wire [95:0] id_router_010_src_data; // id_router_010:src_data -> rsp_xbar_demux_010:sink_data + wire [17:0] id_router_010_src_channel; // id_router_010:src_channel -> rsp_xbar_demux_010:sink_channel + wire id_router_010_src_ready; // rsp_xbar_demux_010:sink_ready -> id_router_010:src_ready + wire cmd_xbar_demux_001_src11_ready; // hex4_s1_translator_avalon_universal_slave_0_agent:cp_ready -> cmd_xbar_demux_001:src11_ready + wire id_router_011_src_endofpacket; // id_router_011:src_endofpacket -> rsp_xbar_demux_011:sink_endofpacket + wire id_router_011_src_valid; // id_router_011:src_valid -> rsp_xbar_demux_011:sink_valid + wire id_router_011_src_startofpacket; // id_router_011:src_startofpacket -> rsp_xbar_demux_011:sink_startofpacket + wire [95:0] id_router_011_src_data; // id_router_011:src_data -> rsp_xbar_demux_011:sink_data + wire [17:0] id_router_011_src_channel; // id_router_011:src_channel -> rsp_xbar_demux_011:sink_channel + wire id_router_011_src_ready; // rsp_xbar_demux_011:sink_ready -> id_router_011:src_ready + wire cmd_xbar_demux_001_src12_ready; // hex5_s1_translator_avalon_universal_slave_0_agent:cp_ready -> cmd_xbar_demux_001:src12_ready + wire id_router_012_src_endofpacket; // id_router_012:src_endofpacket -> rsp_xbar_demux_012:sink_endofpacket + wire id_router_012_src_valid; // id_router_012:src_valid -> rsp_xbar_demux_012:sink_valid + wire id_router_012_src_startofpacket; // id_router_012:src_startofpacket -> rsp_xbar_demux_012:sink_startofpacket + wire [95:0] id_router_012_src_data; // id_router_012:src_data -> rsp_xbar_demux_012:sink_data + wire [17:0] id_router_012_src_channel; // id_router_012:src_channel -> rsp_xbar_demux_012:sink_channel + wire id_router_012_src_ready; // rsp_xbar_demux_012:sink_ready -> id_router_012:src_ready + wire cmd_xbar_demux_001_src13_ready; // hex6_s1_translator_avalon_universal_slave_0_agent:cp_ready -> cmd_xbar_demux_001:src13_ready + wire id_router_013_src_endofpacket; // id_router_013:src_endofpacket -> rsp_xbar_demux_013:sink_endofpacket + wire id_router_013_src_valid; // id_router_013:src_valid -> rsp_xbar_demux_013:sink_valid + wire id_router_013_src_startofpacket; // id_router_013:src_startofpacket -> rsp_xbar_demux_013:sink_startofpacket + wire [95:0] id_router_013_src_data; // id_router_013:src_data -> rsp_xbar_demux_013:sink_data + wire [17:0] id_router_013_src_channel; // id_router_013:src_channel -> rsp_xbar_demux_013:sink_channel + wire id_router_013_src_ready; // rsp_xbar_demux_013:sink_ready -> id_router_013:src_ready + wire cmd_xbar_demux_001_src14_ready; // hex7_s1_translator_avalon_universal_slave_0_agent:cp_ready -> cmd_xbar_demux_001:src14_ready + wire id_router_014_src_endofpacket; // id_router_014:src_endofpacket -> rsp_xbar_demux_014:sink_endofpacket + wire id_router_014_src_valid; // id_router_014:src_valid -> rsp_xbar_demux_014:sink_valid + wire id_router_014_src_startofpacket; // id_router_014:src_startofpacket -> rsp_xbar_demux_014:sink_startofpacket + wire [95:0] id_router_014_src_data; // id_router_014:src_data -> rsp_xbar_demux_014:sink_data + wire [17:0] id_router_014_src_channel; // id_router_014:src_channel -> rsp_xbar_demux_014:sink_channel + wire id_router_014_src_ready; // rsp_xbar_demux_014:sink_ready -> id_router_014:src_ready + wire cmd_xbar_demux_001_src15_ready; // lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent:cp_ready -> cmd_xbar_demux_001:src15_ready + wire id_router_015_src_endofpacket; // id_router_015:src_endofpacket -> rsp_xbar_demux_015:sink_endofpacket + wire id_router_015_src_valid; // id_router_015:src_valid -> rsp_xbar_demux_015:sink_valid + wire id_router_015_src_startofpacket; // id_router_015:src_startofpacket -> rsp_xbar_demux_015:sink_startofpacket + wire [95:0] id_router_015_src_data; // id_router_015:src_data -> rsp_xbar_demux_015:sink_data + wire [17:0] id_router_015_src_channel; // id_router_015:src_channel -> rsp_xbar_demux_015:sink_channel + wire id_router_015_src_ready; // rsp_xbar_demux_015:sink_ready -> id_router_015:src_ready + wire cmd_xbar_demux_001_src16_ready; // lcd_on_s1_translator_avalon_universal_slave_0_agent:cp_ready -> cmd_xbar_demux_001:src16_ready + wire id_router_016_src_endofpacket; // id_router_016:src_endofpacket -> rsp_xbar_demux_016:sink_endofpacket + wire id_router_016_src_valid; // id_router_016:src_valid -> rsp_xbar_demux_016:sink_valid + wire id_router_016_src_startofpacket; // id_router_016:src_startofpacket -> rsp_xbar_demux_016:sink_startofpacket + wire [95:0] id_router_016_src_data; // id_router_016:src_data -> rsp_xbar_demux_016:sink_data + wire [17:0] id_router_016_src_channel; // id_router_016:src_channel -> rsp_xbar_demux_016:sink_channel + wire id_router_016_src_ready; // rsp_xbar_demux_016:sink_ready -> id_router_016:src_ready + wire cmd_xbar_demux_001_src17_ready; // lcd_blon_s1_translator_avalon_universal_slave_0_agent:cp_ready -> cmd_xbar_demux_001:src17_ready + wire id_router_017_src_endofpacket; // id_router_017:src_endofpacket -> rsp_xbar_demux_017:sink_endofpacket + wire id_router_017_src_valid; // id_router_017:src_valid -> rsp_xbar_demux_017:sink_valid + wire id_router_017_src_startofpacket; // id_router_017:src_startofpacket -> rsp_xbar_demux_017:sink_startofpacket + wire [95:0] id_router_017_src_data; // id_router_017:src_data -> rsp_xbar_demux_017:sink_data + wire [17:0] id_router_017_src_channel; // id_router_017:src_channel -> rsp_xbar_demux_017:sink_channel + wire id_router_017_src_ready; // rsp_xbar_demux_017:sink_ready -> id_router_017:src_ready + wire irq_mapper_receiver0_irq; // jtag_uart:av_irq -> irq_mapper:receiver0_irq + wire [31:0] nios2_processor_d_irq_irq; // irq_mapper:sender_irq -> nios2_processor:d_irq + + nios_system_nios2_processor nios2_processor ( + .clk (clk_clk), // clk.clk + .reset_n (~rst_controller_reset_out_reset), // reset_n.reset_n + .d_address (nios2_processor_data_master_address), // data_master.address + .d_byteenable (nios2_processor_data_master_byteenable), // .byteenable + .d_read (nios2_processor_data_master_read), // .read + .d_readdata (nios2_processor_data_master_readdata), // .readdata + .d_waitrequest (nios2_processor_data_master_waitrequest), // .waitrequest + .d_write (nios2_processor_data_master_write), // .write + .d_writedata (nios2_processor_data_master_writedata), // .writedata + .jtag_debug_module_debugaccess_to_roms (nios2_processor_data_master_debugaccess), // .debugaccess + .i_address (nios2_processor_instruction_master_address), // instruction_master.address + .i_read (nios2_processor_instruction_master_read), // .read + .i_readdata (nios2_processor_instruction_master_readdata), // .readdata + .i_waitrequest (nios2_processor_instruction_master_waitrequest), // .waitrequest + .d_irq (nios2_processor_d_irq_irq), // d_irq.irq + .jtag_debug_module_resetrequest (nios2_processor_jtag_debug_module_reset_reset), // jtag_debug_module_reset.reset + .jtag_debug_module_address (nios2_processor_jtag_debug_module_translator_avalon_anti_slave_0_address), // jtag_debug_module.address + .jtag_debug_module_byteenable (nios2_processor_jtag_debug_module_translator_avalon_anti_slave_0_byteenable), // .byteenable + .jtag_debug_module_debugaccess (nios2_processor_jtag_debug_module_translator_avalon_anti_slave_0_debugaccess), // .debugaccess + .jtag_debug_module_read (nios2_processor_jtag_debug_module_translator_avalon_anti_slave_0_read), // .read + .jtag_debug_module_readdata (nios2_processor_jtag_debug_module_translator_avalon_anti_slave_0_readdata), // .readdata + .jtag_debug_module_waitrequest (nios2_processor_jtag_debug_module_translator_avalon_anti_slave_0_waitrequest), // .waitrequest + .jtag_debug_module_write (nios2_processor_jtag_debug_module_translator_avalon_anti_slave_0_write), // .write + .jtag_debug_module_writedata (nios2_processor_jtag_debug_module_translator_avalon_anti_slave_0_writedata), // .writedata + .no_ci_readra () // custom_instruction_master.readra + ); + + nios_system_onchip_memory onchip_memory ( + .clk (clk_clk), // clk1.clk + .address (onchip_memory_s1_translator_avalon_anti_slave_0_address), // s1.address + .clken (onchip_memory_s1_translator_avalon_anti_slave_0_clken), // .clken + .chipselect (onchip_memory_s1_translator_avalon_anti_slave_0_chipselect), // .chipselect + .write (onchip_memory_s1_translator_avalon_anti_slave_0_write), // .write + .readdata (onchip_memory_s1_translator_avalon_anti_slave_0_readdata), // .readdata + .writedata (onchip_memory_s1_translator_avalon_anti_slave_0_writedata), // .writedata + .byteenable (onchip_memory_s1_translator_avalon_anti_slave_0_byteenable), // .byteenable + .reset (rst_controller_reset_out_reset), // reset1.reset + .reset_req (rst_controller_reset_out_reset_req) // .reset_req + ); + + nios_system_jtag_uart jtag_uart ( + .clk (clk_clk), // clk.clk + .rst_n (~rst_controller_reset_out_reset), // reset.reset_n + .av_chipselect (jtag_uart_avalon_jtag_slave_translator_avalon_anti_slave_0_chipselect), // avalon_jtag_slave.chipselect + .av_address (jtag_uart_avalon_jtag_slave_translator_avalon_anti_slave_0_address), // .address + .av_read_n (~jtag_uart_avalon_jtag_slave_translator_avalon_anti_slave_0_read), // .read_n + .av_readdata (jtag_uart_avalon_jtag_slave_translator_avalon_anti_slave_0_readdata), // .readdata + .av_write_n (~jtag_uart_avalon_jtag_slave_translator_avalon_anti_slave_0_write), // .write_n + .av_writedata (jtag_uart_avalon_jtag_slave_translator_avalon_anti_slave_0_writedata), // .writedata + .av_waitrequest (jtag_uart_avalon_jtag_slave_translator_avalon_anti_slave_0_waitrequest), // .waitrequest + .av_irq (irq_mapper_receiver0_irq) // irq.irq + ); + + nios_system_LEDs leds ( + .clk (clk_clk), // clk.clk + .reset_n (~rst_controller_reset_out_reset), // reset.reset_n + .address (leds_s1_translator_avalon_anti_slave_0_address), // s1.address + .write_n (~leds_s1_translator_avalon_anti_slave_0_write), // .write_n + .writedata (leds_s1_translator_avalon_anti_slave_0_writedata), // .writedata + .chipselect (leds_s1_translator_avalon_anti_slave_0_chipselect), // .chipselect + .readdata (leds_s1_translator_avalon_anti_slave_0_readdata), // .readdata + .out_port (leds_export) // external_connection.export + ); + + nios_system_LEDRs ledrs ( + .clk (clk_clk), // clk.clk + .reset_n (~rst_controller_reset_out_reset), // reset.reset_n + .address (ledrs_s1_translator_avalon_anti_slave_0_address), // s1.address + .write_n (~ledrs_s1_translator_avalon_anti_slave_0_write), // .write_n + .writedata (ledrs_s1_translator_avalon_anti_slave_0_writedata), // .writedata + .chipselect (ledrs_s1_translator_avalon_anti_slave_0_chipselect), // .chipselect + .readdata (ledrs_s1_translator_avalon_anti_slave_0_readdata), // .readdata + .out_port (ledrs_export) // external_connection.export + ); + + nios_system_switches switches ( + .clk (clk_clk), // clk.clk + .reset_n (~rst_controller_reset_out_reset), // reset.reset_n + .address (switches_s1_translator_avalon_anti_slave_0_address), // s1.address + .readdata (switches_s1_translator_avalon_anti_slave_0_readdata), // .readdata + .in_port (switches_export) // external_connection.export + ); + + nios_system_push_switches push_switches ( + .clk (clk_clk), // clk.clk + .reset_n (~rst_controller_reset_out_reset), // reset.reset_n + .address (push_switches_s1_translator_avalon_anti_slave_0_address), // s1.address + .readdata (push_switches_s1_translator_avalon_anti_slave_0_readdata), // .readdata + .in_port (push_switches_export) // external_connection.export + ); + + nios_system_hex0 hex0 ( + .clk (clk_clk), // clk.clk + .reset_n (~rst_controller_reset_out_reset), // reset.reset_n + .address (hex0_s1_translator_avalon_anti_slave_0_address), // s1.address + .write_n (~hex0_s1_translator_avalon_anti_slave_0_write), // .write_n + .writedata (hex0_s1_translator_avalon_anti_slave_0_writedata), // .writedata + .chipselect (hex0_s1_translator_avalon_anti_slave_0_chipselect), // .chipselect + .readdata (hex0_s1_translator_avalon_anti_slave_0_readdata), // .readdata + .out_port (hex0_export) // external_connection.export + ); + + nios_system_hex0 hex1 ( + .clk (clk_clk), // clk.clk + .reset_n (~rst_controller_reset_out_reset), // reset.reset_n + .address (hex1_s1_translator_avalon_anti_slave_0_address), // s1.address + .write_n (~hex1_s1_translator_avalon_anti_slave_0_write), // .write_n + .writedata (hex1_s1_translator_avalon_anti_slave_0_writedata), // .writedata + .chipselect (hex1_s1_translator_avalon_anti_slave_0_chipselect), // .chipselect + .readdata (hex1_s1_translator_avalon_anti_slave_0_readdata), // .readdata + .out_port (hex1_export) // external_connection.export + ); + + nios_system_hex0 hex2 ( + .clk (clk_clk), // clk.clk + .reset_n (~rst_controller_reset_out_reset), // reset.reset_n + .address (hex2_s1_translator_avalon_anti_slave_0_address), // s1.address + .write_n (~hex2_s1_translator_avalon_anti_slave_0_write), // .write_n + .writedata (hex2_s1_translator_avalon_anti_slave_0_writedata), // .writedata + .chipselect (hex2_s1_translator_avalon_anti_slave_0_chipselect), // .chipselect + .readdata (hex2_s1_translator_avalon_anti_slave_0_readdata), // .readdata + .out_port (hex2_export) // external_connection.export + ); + + nios_system_hex0 hex3 ( + .clk (clk_clk), // clk.clk + .reset_n (~rst_controller_reset_out_reset), // reset.reset_n + .address (hex3_s1_translator_avalon_anti_slave_0_address), // s1.address + .write_n (~hex3_s1_translator_avalon_anti_slave_0_write), // .write_n + .writedata (hex3_s1_translator_avalon_anti_slave_0_writedata), // .writedata + .chipselect (hex3_s1_translator_avalon_anti_slave_0_chipselect), // .chipselect + .readdata (hex3_s1_translator_avalon_anti_slave_0_readdata), // .readdata + .out_port (hex3_export) // external_connection.export + ); + + nios_system_hex0 hex4 ( + .clk (clk_clk), // clk.clk + .reset_n (~rst_controller_reset_out_reset), // reset.reset_n + .address (hex4_s1_translator_avalon_anti_slave_0_address), // s1.address + .write_n (~hex4_s1_translator_avalon_anti_slave_0_write), // .write_n + .writedata (hex4_s1_translator_avalon_anti_slave_0_writedata), // .writedata + .chipselect (hex4_s1_translator_avalon_anti_slave_0_chipselect), // .chipselect + .readdata (hex4_s1_translator_avalon_anti_slave_0_readdata), // .readdata + .out_port (hex4_export) // external_connection.export + ); + + nios_system_hex0 hex5 ( + .clk (clk_clk), // clk.clk + .reset_n (~rst_controller_reset_out_reset), // reset.reset_n + .address (hex5_s1_translator_avalon_anti_slave_0_address), // s1.address + .write_n (~hex5_s1_translator_avalon_anti_slave_0_write), // .write_n + .writedata (hex5_s1_translator_avalon_anti_slave_0_writedata), // .writedata + .chipselect (hex5_s1_translator_avalon_anti_slave_0_chipselect), // .chipselect + .readdata (hex5_s1_translator_avalon_anti_slave_0_readdata), // .readdata + .out_port (hex5_export) // external_connection.export + ); + + nios_system_hex0 hex6 ( + .clk (clk_clk), // clk.clk + .reset_n (~rst_controller_reset_out_reset), // reset.reset_n + .address (hex6_s1_translator_avalon_anti_slave_0_address), // s1.address + .write_n (~hex6_s1_translator_avalon_anti_slave_0_write), // .write_n + .writedata (hex6_s1_translator_avalon_anti_slave_0_writedata), // .writedata + .chipselect (hex6_s1_translator_avalon_anti_slave_0_chipselect), // .chipselect + .readdata (hex6_s1_translator_avalon_anti_slave_0_readdata), // .readdata + .out_port (hex6_export) // external_connection.export + ); + + nios_system_hex0 hex7 ( + .clk (clk_clk), // clk.clk + .reset_n (~rst_controller_reset_out_reset), // reset.reset_n + .address (hex7_s1_translator_avalon_anti_slave_0_address), // s1.address + .write_n (~hex7_s1_translator_avalon_anti_slave_0_write), // .write_n + .writedata (hex7_s1_translator_avalon_anti_slave_0_writedata), // .writedata + .chipselect (hex7_s1_translator_avalon_anti_slave_0_chipselect), // .chipselect + .readdata (hex7_s1_translator_avalon_anti_slave_0_readdata), // .readdata + .out_port (hex7_export) // external_connection.export + ); + + nios_system_lcd_16207_0 lcd_16207_0 ( + .reset_n (~rst_controller_reset_out_reset), // reset.reset_n + .clk (clk_clk), // clk.clk + .begintransfer (lcd_16207_0_control_slave_translator_avalon_anti_slave_0_begintransfer), // control_slave.begintransfer + .read (lcd_16207_0_control_slave_translator_avalon_anti_slave_0_read), // .read + .write (lcd_16207_0_control_slave_translator_avalon_anti_slave_0_write), // .write + .readdata (lcd_16207_0_control_slave_translator_avalon_anti_slave_0_readdata), // .readdata + .writedata (lcd_16207_0_control_slave_translator_avalon_anti_slave_0_writedata), // .writedata + .address (lcd_16207_0_control_slave_translator_avalon_anti_slave_0_address), // .address + .LCD_RS (lcd_16207_0_RS), // external.export + .LCD_RW (lcd_16207_0_RW), // .export + .LCD_data (lcd_16207_0_data), // .export + .LCD_E (lcd_16207_0_E) // .export + ); + + nios_system_lcd_on lcd_on ( + .clk (clk_clk), // clk.clk + .reset_n (~rst_controller_reset_out_reset), // reset.reset_n + .address (lcd_on_s1_translator_avalon_anti_slave_0_address), // s1.address + .write_n (~lcd_on_s1_translator_avalon_anti_slave_0_write), // .write_n + .writedata (lcd_on_s1_translator_avalon_anti_slave_0_writedata), // .writedata + .chipselect (lcd_on_s1_translator_avalon_anti_slave_0_chipselect), // .chipselect + .readdata (lcd_on_s1_translator_avalon_anti_slave_0_readdata), // .readdata + .out_port (lcd_on_export) // external_connection.export + ); + + nios_system_lcd_on lcd_blon ( + .clk (clk_clk), // clk.clk + .reset_n (~rst_controller_reset_out_reset), // reset.reset_n + .address (lcd_blon_s1_translator_avalon_anti_slave_0_address), // s1.address + .write_n (~lcd_blon_s1_translator_avalon_anti_slave_0_write), // .write_n + .writedata (lcd_blon_s1_translator_avalon_anti_slave_0_writedata), // .writedata + .chipselect (lcd_blon_s1_translator_avalon_anti_slave_0_chipselect), // .chipselect + .readdata (lcd_blon_s1_translator_avalon_anti_slave_0_readdata), // .readdata + .out_port (lcd_blon_export) // external_connection.export + ); + + altera_merlin_master_translator #( + .AV_ADDRESS_W (19), + .AV_DATA_W (32), + .AV_BURSTCOUNT_W (1), + .AV_BYTEENABLE_W (4), + .UAV_ADDRESS_W (19), + .UAV_BURSTCOUNT_W (3), + .USE_READ (1), + .USE_WRITE (0), + .USE_BEGINBURSTTRANSFER (0), + .USE_BEGINTRANSFER (0), + .USE_CHIPSELECT (0), + .USE_BURSTCOUNT (0), + .USE_READDATAVALID (0), + .USE_WAITREQUEST (1), + .USE_READRESPONSE (0), + .USE_WRITERESPONSE (0), + .AV_SYMBOLS_PER_WORD (4), + .AV_ADDRESS_SYMBOLS (1), + .AV_BURSTCOUNT_SYMBOLS (0), + .AV_CONSTANT_BURST_BEHAVIOR (0), + .UAV_CONSTANT_BURST_BEHAVIOR (0), + .AV_LINEWRAPBURSTS (1), + .AV_REGISTERINCOMINGSIGNALS (0) + ) nios2_processor_instruction_master_translator ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // reset.reset + .uav_address (nios2_processor_instruction_master_translator_avalon_universal_master_0_address), // avalon_universal_master_0.address + .uav_burstcount (nios2_processor_instruction_master_translator_avalon_universal_master_0_burstcount), // .burstcount + .uav_read (nios2_processor_instruction_master_translator_avalon_universal_master_0_read), // .read + .uav_write (nios2_processor_instruction_master_translator_avalon_universal_master_0_write), // .write + .uav_waitrequest (nios2_processor_instruction_master_translator_avalon_universal_master_0_waitrequest), // .waitrequest + .uav_readdatavalid (nios2_processor_instruction_master_translator_avalon_universal_master_0_readdatavalid), // .readdatavalid + .uav_byteenable (nios2_processor_instruction_master_translator_avalon_universal_master_0_byteenable), // .byteenable + .uav_readdata (nios2_processor_instruction_master_translator_avalon_universal_master_0_readdata), // .readdata + .uav_writedata (nios2_processor_instruction_master_translator_avalon_universal_master_0_writedata), // .writedata + .uav_lock (nios2_processor_instruction_master_translator_avalon_universal_master_0_lock), // .lock + .uav_debugaccess (nios2_processor_instruction_master_translator_avalon_universal_master_0_debugaccess), // .debugaccess + .av_address (nios2_processor_instruction_master_address), // avalon_anti_master_0.address + .av_waitrequest (nios2_processor_instruction_master_waitrequest), // .waitrequest + .av_read (nios2_processor_instruction_master_read), // .read + .av_readdata (nios2_processor_instruction_master_readdata), // .readdata + .av_burstcount (1'b1), // (terminated) + .av_byteenable (4'b1111), // (terminated) + .av_beginbursttransfer (1'b0), // (terminated) + .av_begintransfer (1'b0), // (terminated) + .av_chipselect (1'b0), // (terminated) + .av_readdatavalid (), // (terminated) + .av_write (1'b0), // (terminated) + .av_writedata (32'b00000000000000000000000000000000), // (terminated) + .av_lock (1'b0), // (terminated) + .av_debugaccess (1'b0), // (terminated) + .uav_clken (), // (terminated) + .av_clken (1'b1), // (terminated) + .uav_response (2'b00), // (terminated) + .av_response (), // (terminated) + .uav_writeresponserequest (), // (terminated) + .uav_writeresponsevalid (1'b0), // (terminated) + .av_writeresponserequest (1'b0), // (terminated) + .av_writeresponsevalid () // (terminated) + ); + + altera_merlin_master_translator #( + .AV_ADDRESS_W (19), + .AV_DATA_W (32), + .AV_BURSTCOUNT_W (1), + .AV_BYTEENABLE_W (4), + .UAV_ADDRESS_W (19), + .UAV_BURSTCOUNT_W (3), + .USE_READ (1), + .USE_WRITE (1), + .USE_BEGINBURSTTRANSFER (0), + .USE_BEGINTRANSFER (0), + .USE_CHIPSELECT (0), + .USE_BURSTCOUNT (0), + .USE_READDATAVALID (0), + .USE_WAITREQUEST (1), + .USE_READRESPONSE (0), + .USE_WRITERESPONSE (0), + .AV_SYMBOLS_PER_WORD (4), + .AV_ADDRESS_SYMBOLS (1), + .AV_BURSTCOUNT_SYMBOLS (0), + .AV_CONSTANT_BURST_BEHAVIOR (0), + .UAV_CONSTANT_BURST_BEHAVIOR (0), + .AV_LINEWRAPBURSTS (0), + .AV_REGISTERINCOMINGSIGNALS (1) + ) nios2_processor_data_master_translator ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // reset.reset + .uav_address (nios2_processor_data_master_translator_avalon_universal_master_0_address), // avalon_universal_master_0.address + .uav_burstcount (nios2_processor_data_master_translator_avalon_universal_master_0_burstcount), // .burstcount + .uav_read (nios2_processor_data_master_translator_avalon_universal_master_0_read), // .read + .uav_write (nios2_processor_data_master_translator_avalon_universal_master_0_write), // .write + .uav_waitrequest (nios2_processor_data_master_translator_avalon_universal_master_0_waitrequest), // .waitrequest + .uav_readdatavalid (nios2_processor_data_master_translator_avalon_universal_master_0_readdatavalid), // .readdatavalid + .uav_byteenable (nios2_processor_data_master_translator_avalon_universal_master_0_byteenable), // .byteenable + .uav_readdata (nios2_processor_data_master_translator_avalon_universal_master_0_readdata), // .readdata + .uav_writedata (nios2_processor_data_master_translator_avalon_universal_master_0_writedata), // .writedata + .uav_lock (nios2_processor_data_master_translator_avalon_universal_master_0_lock), // .lock + .uav_debugaccess (nios2_processor_data_master_translator_avalon_universal_master_0_debugaccess), // .debugaccess + .av_address (nios2_processor_data_master_address), // avalon_anti_master_0.address + .av_waitrequest (nios2_processor_data_master_waitrequest), // .waitrequest + .av_byteenable (nios2_processor_data_master_byteenable), // .byteenable + .av_read (nios2_processor_data_master_read), // .read + .av_readdata (nios2_processor_data_master_readdata), // .readdata + .av_write (nios2_processor_data_master_write), // .write + .av_writedata (nios2_processor_data_master_writedata), // .writedata + .av_debugaccess (nios2_processor_data_master_debugaccess), // .debugaccess + .av_burstcount (1'b1), // (terminated) + .av_beginbursttransfer (1'b0), // (terminated) + .av_begintransfer (1'b0), // (terminated) + .av_chipselect (1'b0), // (terminated) + .av_readdatavalid (), // (terminated) + .av_lock (1'b0), // (terminated) + .uav_clken (), // (terminated) + .av_clken (1'b1), // (terminated) + .uav_response (2'b00), // (terminated) + .av_response (), // (terminated) + .uav_writeresponserequest (), // (terminated) + .uav_writeresponsevalid (1'b0), // (terminated) + .av_writeresponserequest (1'b0), // (terminated) + .av_writeresponsevalid () // (terminated) + ); + + altera_merlin_slave_translator #( + .AV_ADDRESS_W (9), + .AV_DATA_W (32), + .UAV_DATA_W (32), + .AV_BURSTCOUNT_W (1), + .AV_BYTEENABLE_W (4), + .UAV_BYTEENABLE_W (4), + .UAV_ADDRESS_W (19), + .UAV_BURSTCOUNT_W (3), + .AV_READLATENCY (0), + .USE_READDATAVALID (0), + .USE_WAITREQUEST (1), + .USE_UAV_CLKEN (0), + .USE_READRESPONSE (0), + .USE_WRITERESPONSE (0), + .AV_SYMBOLS_PER_WORD (4), + .AV_ADDRESS_SYMBOLS (0), + .AV_BURSTCOUNT_SYMBOLS (0), + .AV_CONSTANT_BURST_BEHAVIOR (0), + .UAV_CONSTANT_BURST_BEHAVIOR (0), + .AV_REQUIRE_UNALIGNED_ADDRESSES (0), + .CHIPSELECT_THROUGH_READLATENCY (0), + .AV_READ_WAIT_CYCLES (1), + .AV_WRITE_WAIT_CYCLES (0), + .AV_SETUP_WAIT_CYCLES (0), + .AV_DATA_HOLD_CYCLES (0) + ) nios2_processor_jtag_debug_module_translator ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // reset.reset + .uav_address (nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_m0_address), // avalon_universal_slave_0.address + .uav_burstcount (nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_m0_burstcount), // .burstcount + .uav_read (nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_m0_read), // .read + .uav_write (nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_m0_write), // .write + .uav_waitrequest (nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_m0_waitrequest), // .waitrequest + .uav_readdatavalid (nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_m0_readdatavalid), // .readdatavalid + .uav_byteenable (nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_m0_byteenable), // .byteenable + .uav_readdata (nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_m0_readdata), // .readdata + .uav_writedata (nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_m0_writedata), // .writedata + .uav_lock (nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_m0_lock), // .lock + .uav_debugaccess (nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_m0_debugaccess), // .debugaccess + .av_address (nios2_processor_jtag_debug_module_translator_avalon_anti_slave_0_address), // avalon_anti_slave_0.address + .av_write (nios2_processor_jtag_debug_module_translator_avalon_anti_slave_0_write), // .write + .av_read (nios2_processor_jtag_debug_module_translator_avalon_anti_slave_0_read), // .read + .av_readdata (nios2_processor_jtag_debug_module_translator_avalon_anti_slave_0_readdata), // .readdata + .av_writedata (nios2_processor_jtag_debug_module_translator_avalon_anti_slave_0_writedata), // .writedata + .av_byteenable (nios2_processor_jtag_debug_module_translator_avalon_anti_slave_0_byteenable), // .byteenable + .av_waitrequest (nios2_processor_jtag_debug_module_translator_avalon_anti_slave_0_waitrequest), // .waitrequest + .av_debugaccess (nios2_processor_jtag_debug_module_translator_avalon_anti_slave_0_debugaccess), // .debugaccess + .av_begintransfer (), // (terminated) + .av_beginbursttransfer (), // (terminated) + .av_burstcount (), // (terminated) + .av_readdatavalid (1'b0), // (terminated) + .av_writebyteenable (), // (terminated) + .av_lock (), // (terminated) + .av_chipselect (), // (terminated) + .av_clken (), // (terminated) + .uav_clken (1'b0), // (terminated) + .av_outputenable (), // (terminated) + .uav_response (), // (terminated) + .av_response (2'b00), // (terminated) + .uav_writeresponserequest (1'b0), // (terminated) + .uav_writeresponsevalid (), // (terminated) + .av_writeresponserequest (), // (terminated) + .av_writeresponsevalid (1'b0) // (terminated) + ); + + altera_merlin_slave_translator #( + .AV_ADDRESS_W (16), + .AV_DATA_W (32), + .UAV_DATA_W (32), + .AV_BURSTCOUNT_W (1), + .AV_BYTEENABLE_W (4), + .UAV_BYTEENABLE_W (4), + .UAV_ADDRESS_W (19), + .UAV_BURSTCOUNT_W (3), + .AV_READLATENCY (1), + .USE_READDATAVALID (0), + .USE_WAITREQUEST (0), + .USE_UAV_CLKEN (0), + .USE_READRESPONSE (0), + .USE_WRITERESPONSE (0), + .AV_SYMBOLS_PER_WORD (4), + .AV_ADDRESS_SYMBOLS (0), + .AV_BURSTCOUNT_SYMBOLS (0), + .AV_CONSTANT_BURST_BEHAVIOR (0), + .UAV_CONSTANT_BURST_BEHAVIOR (0), + .AV_REQUIRE_UNALIGNED_ADDRESSES (0), + .CHIPSELECT_THROUGH_READLATENCY (0), + .AV_READ_WAIT_CYCLES (0), + .AV_WRITE_WAIT_CYCLES (0), + .AV_SETUP_WAIT_CYCLES (0), + .AV_DATA_HOLD_CYCLES (0) + ) onchip_memory_s1_translator ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // reset.reset + .uav_address (onchip_memory_s1_translator_avalon_universal_slave_0_agent_m0_address), // avalon_universal_slave_0.address + .uav_burstcount (onchip_memory_s1_translator_avalon_universal_slave_0_agent_m0_burstcount), // .burstcount + .uav_read (onchip_memory_s1_translator_avalon_universal_slave_0_agent_m0_read), // .read + .uav_write (onchip_memory_s1_translator_avalon_universal_slave_0_agent_m0_write), // .write + .uav_waitrequest (onchip_memory_s1_translator_avalon_universal_slave_0_agent_m0_waitrequest), // .waitrequest + .uav_readdatavalid (onchip_memory_s1_translator_avalon_universal_slave_0_agent_m0_readdatavalid), // .readdatavalid + .uav_byteenable (onchip_memory_s1_translator_avalon_universal_slave_0_agent_m0_byteenable), // .byteenable + .uav_readdata (onchip_memory_s1_translator_avalon_universal_slave_0_agent_m0_readdata), // .readdata + .uav_writedata (onchip_memory_s1_translator_avalon_universal_slave_0_agent_m0_writedata), // .writedata + .uav_lock (onchip_memory_s1_translator_avalon_universal_slave_0_agent_m0_lock), // .lock + .uav_debugaccess (onchip_memory_s1_translator_avalon_universal_slave_0_agent_m0_debugaccess), // .debugaccess + .av_address (onchip_memory_s1_translator_avalon_anti_slave_0_address), // avalon_anti_slave_0.address + .av_write (onchip_memory_s1_translator_avalon_anti_slave_0_write), // .write + .av_readdata (onchip_memory_s1_translator_avalon_anti_slave_0_readdata), // .readdata + .av_writedata (onchip_memory_s1_translator_avalon_anti_slave_0_writedata), // .writedata + .av_byteenable (onchip_memory_s1_translator_avalon_anti_slave_0_byteenable), // .byteenable + .av_chipselect (onchip_memory_s1_translator_avalon_anti_slave_0_chipselect), // .chipselect + .av_clken (onchip_memory_s1_translator_avalon_anti_slave_0_clken), // .clken + .av_read (), // (terminated) + .av_begintransfer (), // (terminated) + .av_beginbursttransfer (), // (terminated) + .av_burstcount (), // (terminated) + .av_readdatavalid (1'b0), // (terminated) + .av_waitrequest (1'b0), // (terminated) + .av_writebyteenable (), // (terminated) + .av_lock (), // (terminated) + .uav_clken (1'b0), // (terminated) + .av_debugaccess (), // (terminated) + .av_outputenable (), // (terminated) + .uav_response (), // (terminated) + .av_response (2'b00), // (terminated) + .uav_writeresponserequest (1'b0), // (terminated) + .uav_writeresponsevalid (), // (terminated) + .av_writeresponserequest (), // (terminated) + .av_writeresponsevalid (1'b0) // (terminated) + ); + + altera_merlin_slave_translator #( + .AV_ADDRESS_W (2), + .AV_DATA_W (32), + .UAV_DATA_W (32), + .AV_BURSTCOUNT_W (1), + .AV_BYTEENABLE_W (1), + .UAV_BYTEENABLE_W (4), + .UAV_ADDRESS_W (19), + .UAV_BURSTCOUNT_W (3), + .AV_READLATENCY (0), + .USE_READDATAVALID (0), + .USE_WAITREQUEST (0), + .USE_UAV_CLKEN (0), + .USE_READRESPONSE (0), + .USE_WRITERESPONSE (0), + .AV_SYMBOLS_PER_WORD (4), + .AV_ADDRESS_SYMBOLS (0), + .AV_BURSTCOUNT_SYMBOLS (0), + .AV_CONSTANT_BURST_BEHAVIOR (0), + .UAV_CONSTANT_BURST_BEHAVIOR (0), + .AV_REQUIRE_UNALIGNED_ADDRESSES (0), + .CHIPSELECT_THROUGH_READLATENCY (0), + .AV_READ_WAIT_CYCLES (1), + .AV_WRITE_WAIT_CYCLES (0), + .AV_SETUP_WAIT_CYCLES (0), + .AV_DATA_HOLD_CYCLES (0) + ) leds_s1_translator ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // reset.reset + .uav_address (leds_s1_translator_avalon_universal_slave_0_agent_m0_address), // avalon_universal_slave_0.address + .uav_burstcount (leds_s1_translator_avalon_universal_slave_0_agent_m0_burstcount), // .burstcount + .uav_read (leds_s1_translator_avalon_universal_slave_0_agent_m0_read), // .read + .uav_write (leds_s1_translator_avalon_universal_slave_0_agent_m0_write), // .write + .uav_waitrequest (leds_s1_translator_avalon_universal_slave_0_agent_m0_waitrequest), // .waitrequest + .uav_readdatavalid (leds_s1_translator_avalon_universal_slave_0_agent_m0_readdatavalid), // .readdatavalid + .uav_byteenable (leds_s1_translator_avalon_universal_slave_0_agent_m0_byteenable), // .byteenable + .uav_readdata (leds_s1_translator_avalon_universal_slave_0_agent_m0_readdata), // .readdata + .uav_writedata (leds_s1_translator_avalon_universal_slave_0_agent_m0_writedata), // .writedata + .uav_lock (leds_s1_translator_avalon_universal_slave_0_agent_m0_lock), // .lock + .uav_debugaccess (leds_s1_translator_avalon_universal_slave_0_agent_m0_debugaccess), // .debugaccess + .av_address (leds_s1_translator_avalon_anti_slave_0_address), // avalon_anti_slave_0.address + .av_write (leds_s1_translator_avalon_anti_slave_0_write), // .write + .av_readdata (leds_s1_translator_avalon_anti_slave_0_readdata), // .readdata + .av_writedata (leds_s1_translator_avalon_anti_slave_0_writedata), // .writedata + .av_chipselect (leds_s1_translator_avalon_anti_slave_0_chipselect), // .chipselect + .av_read (), // (terminated) + .av_begintransfer (), // (terminated) + .av_beginbursttransfer (), // (terminated) + .av_burstcount (), // (terminated) + .av_byteenable (), // (terminated) + .av_readdatavalid (1'b0), // (terminated) + .av_waitrequest (1'b0), // (terminated) + .av_writebyteenable (), // (terminated) + .av_lock (), // (terminated) + .av_clken (), // (terminated) + .uav_clken (1'b0), // (terminated) + .av_debugaccess (), // (terminated) + .av_outputenable (), // (terminated) + .uav_response (), // (terminated) + .av_response (2'b00), // (terminated) + .uav_writeresponserequest (1'b0), // (terminated) + .uav_writeresponsevalid (), // (terminated) + .av_writeresponserequest (), // (terminated) + .av_writeresponsevalid (1'b0) // (terminated) + ); + + altera_merlin_slave_translator #( + .AV_ADDRESS_W (1), + .AV_DATA_W (32), + .UAV_DATA_W (32), + .AV_BURSTCOUNT_W (1), + .AV_BYTEENABLE_W (1), + .UAV_BYTEENABLE_W (4), + .UAV_ADDRESS_W (19), + .UAV_BURSTCOUNT_W (3), + .AV_READLATENCY (0), + .USE_READDATAVALID (0), + .USE_WAITREQUEST (1), + .USE_UAV_CLKEN (0), + .USE_READRESPONSE (0), + .USE_WRITERESPONSE (0), + .AV_SYMBOLS_PER_WORD (4), + .AV_ADDRESS_SYMBOLS (0), + .AV_BURSTCOUNT_SYMBOLS (0), + .AV_CONSTANT_BURST_BEHAVIOR (0), + .UAV_CONSTANT_BURST_BEHAVIOR (0), + .AV_REQUIRE_UNALIGNED_ADDRESSES (0), + .CHIPSELECT_THROUGH_READLATENCY (0), + .AV_READ_WAIT_CYCLES (1), + .AV_WRITE_WAIT_CYCLES (0), + .AV_SETUP_WAIT_CYCLES (0), + .AV_DATA_HOLD_CYCLES (0) + ) jtag_uart_avalon_jtag_slave_translator ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // reset.reset + .uav_address (jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_m0_address), // avalon_universal_slave_0.address + .uav_burstcount (jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_m0_burstcount), // .burstcount + .uav_read (jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_m0_read), // .read + .uav_write (jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_m0_write), // .write + .uav_waitrequest (jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_m0_waitrequest), // .waitrequest + .uav_readdatavalid (jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_m0_readdatavalid), // .readdatavalid + .uav_byteenable (jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_m0_byteenable), // .byteenable + .uav_readdata (jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_m0_readdata), // .readdata + .uav_writedata (jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_m0_writedata), // .writedata + .uav_lock (jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_m0_lock), // .lock + .uav_debugaccess (jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_m0_debugaccess), // .debugaccess + .av_address (jtag_uart_avalon_jtag_slave_translator_avalon_anti_slave_0_address), // avalon_anti_slave_0.address + .av_write (jtag_uart_avalon_jtag_slave_translator_avalon_anti_slave_0_write), // .write + .av_read (jtag_uart_avalon_jtag_slave_translator_avalon_anti_slave_0_read), // .read + .av_readdata (jtag_uart_avalon_jtag_slave_translator_avalon_anti_slave_0_readdata), // .readdata + .av_writedata (jtag_uart_avalon_jtag_slave_translator_avalon_anti_slave_0_writedata), // .writedata + .av_waitrequest (jtag_uart_avalon_jtag_slave_translator_avalon_anti_slave_0_waitrequest), // .waitrequest + .av_chipselect (jtag_uart_avalon_jtag_slave_translator_avalon_anti_slave_0_chipselect), // .chipselect + .av_begintransfer (), // (terminated) + .av_beginbursttransfer (), // (terminated) + .av_burstcount (), // (terminated) + .av_byteenable (), // (terminated) + .av_readdatavalid (1'b0), // (terminated) + .av_writebyteenable (), // (terminated) + .av_lock (), // (terminated) + .av_clken (), // (terminated) + .uav_clken (1'b0), // (terminated) + .av_debugaccess (), // (terminated) + .av_outputenable (), // (terminated) + .uav_response (), // (terminated) + .av_response (2'b00), // (terminated) + .uav_writeresponserequest (1'b0), // (terminated) + .uav_writeresponsevalid (), // (terminated) + .av_writeresponserequest (), // (terminated) + .av_writeresponsevalid (1'b0) // (terminated) + ); + + altera_merlin_slave_translator #( + .AV_ADDRESS_W (2), + .AV_DATA_W (32), + .UAV_DATA_W (32), + .AV_BURSTCOUNT_W (1), + .AV_BYTEENABLE_W (1), + .UAV_BYTEENABLE_W (4), + .UAV_ADDRESS_W (19), + .UAV_BURSTCOUNT_W (3), + .AV_READLATENCY (0), + .USE_READDATAVALID (0), + .USE_WAITREQUEST (0), + .USE_UAV_CLKEN (0), + .USE_READRESPONSE (0), + .USE_WRITERESPONSE (0), + .AV_SYMBOLS_PER_WORD (4), + .AV_ADDRESS_SYMBOLS (0), + .AV_BURSTCOUNT_SYMBOLS (0), + .AV_CONSTANT_BURST_BEHAVIOR (0), + .UAV_CONSTANT_BURST_BEHAVIOR (0), + .AV_REQUIRE_UNALIGNED_ADDRESSES (0), + .CHIPSELECT_THROUGH_READLATENCY (0), + .AV_READ_WAIT_CYCLES (1), + .AV_WRITE_WAIT_CYCLES (0), + .AV_SETUP_WAIT_CYCLES (0), + .AV_DATA_HOLD_CYCLES (0) + ) ledrs_s1_translator ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // reset.reset + .uav_address (ledrs_s1_translator_avalon_universal_slave_0_agent_m0_address), // avalon_universal_slave_0.address + .uav_burstcount (ledrs_s1_translator_avalon_universal_slave_0_agent_m0_burstcount), // .burstcount + .uav_read (ledrs_s1_translator_avalon_universal_slave_0_agent_m0_read), // .read + .uav_write (ledrs_s1_translator_avalon_universal_slave_0_agent_m0_write), // .write + .uav_waitrequest (ledrs_s1_translator_avalon_universal_slave_0_agent_m0_waitrequest), // .waitrequest + .uav_readdatavalid (ledrs_s1_translator_avalon_universal_slave_0_agent_m0_readdatavalid), // .readdatavalid + .uav_byteenable (ledrs_s1_translator_avalon_universal_slave_0_agent_m0_byteenable), // .byteenable + .uav_readdata (ledrs_s1_translator_avalon_universal_slave_0_agent_m0_readdata), // .readdata + .uav_writedata (ledrs_s1_translator_avalon_universal_slave_0_agent_m0_writedata), // .writedata + .uav_lock (ledrs_s1_translator_avalon_universal_slave_0_agent_m0_lock), // .lock + .uav_debugaccess (ledrs_s1_translator_avalon_universal_slave_0_agent_m0_debugaccess), // .debugaccess + .av_address (ledrs_s1_translator_avalon_anti_slave_0_address), // avalon_anti_slave_0.address + .av_write (ledrs_s1_translator_avalon_anti_slave_0_write), // .write + .av_readdata (ledrs_s1_translator_avalon_anti_slave_0_readdata), // .readdata + .av_writedata (ledrs_s1_translator_avalon_anti_slave_0_writedata), // .writedata + .av_chipselect (ledrs_s1_translator_avalon_anti_slave_0_chipselect), // .chipselect + .av_read (), // (terminated) + .av_begintransfer (), // (terminated) + .av_beginbursttransfer (), // (terminated) + .av_burstcount (), // (terminated) + .av_byteenable (), // (terminated) + .av_readdatavalid (1'b0), // (terminated) + .av_waitrequest (1'b0), // (terminated) + .av_writebyteenable (), // (terminated) + .av_lock (), // (terminated) + .av_clken (), // (terminated) + .uav_clken (1'b0), // (terminated) + .av_debugaccess (), // (terminated) + .av_outputenable (), // (terminated) + .uav_response (), // (terminated) + .av_response (2'b00), // (terminated) + .uav_writeresponserequest (1'b0), // (terminated) + .uav_writeresponsevalid (), // (terminated) + .av_writeresponserequest (), // (terminated) + .av_writeresponsevalid (1'b0) // (terminated) + ); + + altera_merlin_slave_translator #( + .AV_ADDRESS_W (2), + .AV_DATA_W (32), + .UAV_DATA_W (32), + .AV_BURSTCOUNT_W (1), + .AV_BYTEENABLE_W (1), + .UAV_BYTEENABLE_W (4), + .UAV_ADDRESS_W (19), + .UAV_BURSTCOUNT_W (3), + .AV_READLATENCY (0), + .USE_READDATAVALID (0), + .USE_WAITREQUEST (0), + .USE_UAV_CLKEN (0), + .USE_READRESPONSE (0), + .USE_WRITERESPONSE (0), + .AV_SYMBOLS_PER_WORD (4), + .AV_ADDRESS_SYMBOLS (0), + .AV_BURSTCOUNT_SYMBOLS (0), + .AV_CONSTANT_BURST_BEHAVIOR (0), + .UAV_CONSTANT_BURST_BEHAVIOR (0), + .AV_REQUIRE_UNALIGNED_ADDRESSES (0), + .CHIPSELECT_THROUGH_READLATENCY (0), + .AV_READ_WAIT_CYCLES (1), + .AV_WRITE_WAIT_CYCLES (0), + .AV_SETUP_WAIT_CYCLES (0), + .AV_DATA_HOLD_CYCLES (0) + ) switches_s1_translator ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // reset.reset + .uav_address (switches_s1_translator_avalon_universal_slave_0_agent_m0_address), // avalon_universal_slave_0.address + .uav_burstcount (switches_s1_translator_avalon_universal_slave_0_agent_m0_burstcount), // .burstcount + .uav_read (switches_s1_translator_avalon_universal_slave_0_agent_m0_read), // .read + .uav_write (switches_s1_translator_avalon_universal_slave_0_agent_m0_write), // .write + .uav_waitrequest (switches_s1_translator_avalon_universal_slave_0_agent_m0_waitrequest), // .waitrequest + .uav_readdatavalid (switches_s1_translator_avalon_universal_slave_0_agent_m0_readdatavalid), // .readdatavalid + .uav_byteenable (switches_s1_translator_avalon_universal_slave_0_agent_m0_byteenable), // .byteenable + .uav_readdata (switches_s1_translator_avalon_universal_slave_0_agent_m0_readdata), // .readdata + .uav_writedata (switches_s1_translator_avalon_universal_slave_0_agent_m0_writedata), // .writedata + .uav_lock (switches_s1_translator_avalon_universal_slave_0_agent_m0_lock), // .lock + .uav_debugaccess (switches_s1_translator_avalon_universal_slave_0_agent_m0_debugaccess), // .debugaccess + .av_address (switches_s1_translator_avalon_anti_slave_0_address), // avalon_anti_slave_0.address + .av_readdata (switches_s1_translator_avalon_anti_slave_0_readdata), // .readdata + .av_write (), // (terminated) + .av_read (), // (terminated) + .av_writedata (), // (terminated) + .av_begintransfer (), // (terminated) + .av_beginbursttransfer (), // (terminated) + .av_burstcount (), // (terminated) + .av_byteenable (), // (terminated) + .av_readdatavalid (1'b0), // (terminated) + .av_waitrequest (1'b0), // (terminated) + .av_writebyteenable (), // (terminated) + .av_lock (), // (terminated) + .av_chipselect (), // (terminated) + .av_clken (), // (terminated) + .uav_clken (1'b0), // (terminated) + .av_debugaccess (), // (terminated) + .av_outputenable (), // (terminated) + .uav_response (), // (terminated) + .av_response (2'b00), // (terminated) + .uav_writeresponserequest (1'b0), // (terminated) + .uav_writeresponsevalid (), // (terminated) + .av_writeresponserequest (), // (terminated) + .av_writeresponsevalid (1'b0) // (terminated) + ); + + altera_merlin_slave_translator #( + .AV_ADDRESS_W (2), + .AV_DATA_W (32), + .UAV_DATA_W (32), + .AV_BURSTCOUNT_W (1), + .AV_BYTEENABLE_W (1), + .UAV_BYTEENABLE_W (4), + .UAV_ADDRESS_W (19), + .UAV_BURSTCOUNT_W (3), + .AV_READLATENCY (0), + .USE_READDATAVALID (0), + .USE_WAITREQUEST (0), + .USE_UAV_CLKEN (0), + .USE_READRESPONSE (0), + .USE_WRITERESPONSE (0), + .AV_SYMBOLS_PER_WORD (4), + .AV_ADDRESS_SYMBOLS (0), + .AV_BURSTCOUNT_SYMBOLS (0), + .AV_CONSTANT_BURST_BEHAVIOR (0), + .UAV_CONSTANT_BURST_BEHAVIOR (0), + .AV_REQUIRE_UNALIGNED_ADDRESSES (0), + .CHIPSELECT_THROUGH_READLATENCY (0), + .AV_READ_WAIT_CYCLES (1), + .AV_WRITE_WAIT_CYCLES (0), + .AV_SETUP_WAIT_CYCLES (0), + .AV_DATA_HOLD_CYCLES (0) + ) push_switches_s1_translator ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // reset.reset + .uav_address (push_switches_s1_translator_avalon_universal_slave_0_agent_m0_address), // avalon_universal_slave_0.address + .uav_burstcount (push_switches_s1_translator_avalon_universal_slave_0_agent_m0_burstcount), // .burstcount + .uav_read (push_switches_s1_translator_avalon_universal_slave_0_agent_m0_read), // .read + .uav_write (push_switches_s1_translator_avalon_universal_slave_0_agent_m0_write), // .write + .uav_waitrequest (push_switches_s1_translator_avalon_universal_slave_0_agent_m0_waitrequest), // .waitrequest + .uav_readdatavalid (push_switches_s1_translator_avalon_universal_slave_0_agent_m0_readdatavalid), // .readdatavalid + .uav_byteenable (push_switches_s1_translator_avalon_universal_slave_0_agent_m0_byteenable), // .byteenable + .uav_readdata (push_switches_s1_translator_avalon_universal_slave_0_agent_m0_readdata), // .readdata + .uav_writedata (push_switches_s1_translator_avalon_universal_slave_0_agent_m0_writedata), // .writedata + .uav_lock (push_switches_s1_translator_avalon_universal_slave_0_agent_m0_lock), // .lock + .uav_debugaccess (push_switches_s1_translator_avalon_universal_slave_0_agent_m0_debugaccess), // .debugaccess + .av_address (push_switches_s1_translator_avalon_anti_slave_0_address), // avalon_anti_slave_0.address + .av_readdata (push_switches_s1_translator_avalon_anti_slave_0_readdata), // .readdata + .av_write (), // (terminated) + .av_read (), // (terminated) + .av_writedata (), // (terminated) + .av_begintransfer (), // (terminated) + .av_beginbursttransfer (), // (terminated) + .av_burstcount (), // (terminated) + .av_byteenable (), // (terminated) + .av_readdatavalid (1'b0), // (terminated) + .av_waitrequest (1'b0), // (terminated) + .av_writebyteenable (), // (terminated) + .av_lock (), // (terminated) + .av_chipselect (), // (terminated) + .av_clken (), // (terminated) + .uav_clken (1'b0), // (terminated) + .av_debugaccess (), // (terminated) + .av_outputenable (), // (terminated) + .uav_response (), // (terminated) + .av_response (2'b00), // (terminated) + .uav_writeresponserequest (1'b0), // (terminated) + .uav_writeresponsevalid (), // (terminated) + .av_writeresponserequest (), // (terminated) + .av_writeresponsevalid (1'b0) // (terminated) + ); + + altera_merlin_slave_translator #( + .AV_ADDRESS_W (2), + .AV_DATA_W (32), + .UAV_DATA_W (32), + .AV_BURSTCOUNT_W (1), + .AV_BYTEENABLE_W (1), + .UAV_BYTEENABLE_W (4), + .UAV_ADDRESS_W (19), + .UAV_BURSTCOUNT_W (3), + .AV_READLATENCY (0), + .USE_READDATAVALID (0), + .USE_WAITREQUEST (0), + .USE_UAV_CLKEN (0), + .USE_READRESPONSE (0), + .USE_WRITERESPONSE (0), + .AV_SYMBOLS_PER_WORD (4), + .AV_ADDRESS_SYMBOLS (0), + .AV_BURSTCOUNT_SYMBOLS (0), + .AV_CONSTANT_BURST_BEHAVIOR (0), + .UAV_CONSTANT_BURST_BEHAVIOR (0), + .AV_REQUIRE_UNALIGNED_ADDRESSES (0), + .CHIPSELECT_THROUGH_READLATENCY (0), + .AV_READ_WAIT_CYCLES (1), + .AV_WRITE_WAIT_CYCLES (0), + .AV_SETUP_WAIT_CYCLES (0), + .AV_DATA_HOLD_CYCLES (0) + ) hex0_s1_translator ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // reset.reset + .uav_address (hex0_s1_translator_avalon_universal_slave_0_agent_m0_address), // avalon_universal_slave_0.address + .uav_burstcount (hex0_s1_translator_avalon_universal_slave_0_agent_m0_burstcount), // .burstcount + .uav_read (hex0_s1_translator_avalon_universal_slave_0_agent_m0_read), // .read + .uav_write (hex0_s1_translator_avalon_universal_slave_0_agent_m0_write), // .write + .uav_waitrequest (hex0_s1_translator_avalon_universal_slave_0_agent_m0_waitrequest), // .waitrequest + .uav_readdatavalid (hex0_s1_translator_avalon_universal_slave_0_agent_m0_readdatavalid), // .readdatavalid + .uav_byteenable (hex0_s1_translator_avalon_universal_slave_0_agent_m0_byteenable), // .byteenable + .uav_readdata (hex0_s1_translator_avalon_universal_slave_0_agent_m0_readdata), // .readdata + .uav_writedata (hex0_s1_translator_avalon_universal_slave_0_agent_m0_writedata), // .writedata + .uav_lock (hex0_s1_translator_avalon_universal_slave_0_agent_m0_lock), // .lock + .uav_debugaccess (hex0_s1_translator_avalon_universal_slave_0_agent_m0_debugaccess), // .debugaccess + .av_address (hex0_s1_translator_avalon_anti_slave_0_address), // avalon_anti_slave_0.address + .av_write (hex0_s1_translator_avalon_anti_slave_0_write), // .write + .av_readdata (hex0_s1_translator_avalon_anti_slave_0_readdata), // .readdata + .av_writedata (hex0_s1_translator_avalon_anti_slave_0_writedata), // .writedata + .av_chipselect (hex0_s1_translator_avalon_anti_slave_0_chipselect), // .chipselect + .av_read (), // (terminated) + .av_begintransfer (), // (terminated) + .av_beginbursttransfer (), // (terminated) + .av_burstcount (), // (terminated) + .av_byteenable (), // (terminated) + .av_readdatavalid (1'b0), // (terminated) + .av_waitrequest (1'b0), // (terminated) + .av_writebyteenable (), // (terminated) + .av_lock (), // (terminated) + .av_clken (), // (terminated) + .uav_clken (1'b0), // (terminated) + .av_debugaccess (), // (terminated) + .av_outputenable (), // (terminated) + .uav_response (), // (terminated) + .av_response (2'b00), // (terminated) + .uav_writeresponserequest (1'b0), // (terminated) + .uav_writeresponsevalid (), // (terminated) + .av_writeresponserequest (), // (terminated) + .av_writeresponsevalid (1'b0) // (terminated) + ); + + altera_merlin_slave_translator #( + .AV_ADDRESS_W (2), + .AV_DATA_W (32), + .UAV_DATA_W (32), + .AV_BURSTCOUNT_W (1), + .AV_BYTEENABLE_W (1), + .UAV_BYTEENABLE_W (4), + .UAV_ADDRESS_W (19), + .UAV_BURSTCOUNT_W (3), + .AV_READLATENCY (0), + .USE_READDATAVALID (0), + .USE_WAITREQUEST (0), + .USE_UAV_CLKEN (0), + .USE_READRESPONSE (0), + .USE_WRITERESPONSE (0), + .AV_SYMBOLS_PER_WORD (4), + .AV_ADDRESS_SYMBOLS (0), + .AV_BURSTCOUNT_SYMBOLS (0), + .AV_CONSTANT_BURST_BEHAVIOR (0), + .UAV_CONSTANT_BURST_BEHAVIOR (0), + .AV_REQUIRE_UNALIGNED_ADDRESSES (0), + .CHIPSELECT_THROUGH_READLATENCY (0), + .AV_READ_WAIT_CYCLES (1), + .AV_WRITE_WAIT_CYCLES (0), + .AV_SETUP_WAIT_CYCLES (0), + .AV_DATA_HOLD_CYCLES (0) + ) hex1_s1_translator ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // reset.reset + .uav_address (hex1_s1_translator_avalon_universal_slave_0_agent_m0_address), // avalon_universal_slave_0.address + .uav_burstcount (hex1_s1_translator_avalon_universal_slave_0_agent_m0_burstcount), // .burstcount + .uav_read (hex1_s1_translator_avalon_universal_slave_0_agent_m0_read), // .read + .uav_write (hex1_s1_translator_avalon_universal_slave_0_agent_m0_write), // .write + .uav_waitrequest (hex1_s1_translator_avalon_universal_slave_0_agent_m0_waitrequest), // .waitrequest + .uav_readdatavalid (hex1_s1_translator_avalon_universal_slave_0_agent_m0_readdatavalid), // .readdatavalid + .uav_byteenable (hex1_s1_translator_avalon_universal_slave_0_agent_m0_byteenable), // .byteenable + .uav_readdata (hex1_s1_translator_avalon_universal_slave_0_agent_m0_readdata), // .readdata + .uav_writedata (hex1_s1_translator_avalon_universal_slave_0_agent_m0_writedata), // .writedata + .uav_lock (hex1_s1_translator_avalon_universal_slave_0_agent_m0_lock), // .lock + .uav_debugaccess (hex1_s1_translator_avalon_universal_slave_0_agent_m0_debugaccess), // .debugaccess + .av_address (hex1_s1_translator_avalon_anti_slave_0_address), // avalon_anti_slave_0.address + .av_write (hex1_s1_translator_avalon_anti_slave_0_write), // .write + .av_readdata (hex1_s1_translator_avalon_anti_slave_0_readdata), // .readdata + .av_writedata (hex1_s1_translator_avalon_anti_slave_0_writedata), // .writedata + .av_chipselect (hex1_s1_translator_avalon_anti_slave_0_chipselect), // .chipselect + .av_read (), // (terminated) + .av_begintransfer (), // (terminated) + .av_beginbursttransfer (), // (terminated) + .av_burstcount (), // (terminated) + .av_byteenable (), // (terminated) + .av_readdatavalid (1'b0), // (terminated) + .av_waitrequest (1'b0), // (terminated) + .av_writebyteenable (), // (terminated) + .av_lock (), // (terminated) + .av_clken (), // (terminated) + .uav_clken (1'b0), // (terminated) + .av_debugaccess (), // (terminated) + .av_outputenable (), // (terminated) + .uav_response (), // (terminated) + .av_response (2'b00), // (terminated) + .uav_writeresponserequest (1'b0), // (terminated) + .uav_writeresponsevalid (), // (terminated) + .av_writeresponserequest (), // (terminated) + .av_writeresponsevalid (1'b0) // (terminated) + ); + + altera_merlin_slave_translator #( + .AV_ADDRESS_W (2), + .AV_DATA_W (32), + .UAV_DATA_W (32), + .AV_BURSTCOUNT_W (1), + .AV_BYTEENABLE_W (1), + .UAV_BYTEENABLE_W (4), + .UAV_ADDRESS_W (19), + .UAV_BURSTCOUNT_W (3), + .AV_READLATENCY (0), + .USE_READDATAVALID (0), + .USE_WAITREQUEST (0), + .USE_UAV_CLKEN (0), + .USE_READRESPONSE (0), + .USE_WRITERESPONSE (0), + .AV_SYMBOLS_PER_WORD (4), + .AV_ADDRESS_SYMBOLS (0), + .AV_BURSTCOUNT_SYMBOLS (0), + .AV_CONSTANT_BURST_BEHAVIOR (0), + .UAV_CONSTANT_BURST_BEHAVIOR (0), + .AV_REQUIRE_UNALIGNED_ADDRESSES (0), + .CHIPSELECT_THROUGH_READLATENCY (0), + .AV_READ_WAIT_CYCLES (1), + .AV_WRITE_WAIT_CYCLES (0), + .AV_SETUP_WAIT_CYCLES (0), + .AV_DATA_HOLD_CYCLES (0) + ) hex2_s1_translator ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // reset.reset + .uav_address (hex2_s1_translator_avalon_universal_slave_0_agent_m0_address), // avalon_universal_slave_0.address + .uav_burstcount (hex2_s1_translator_avalon_universal_slave_0_agent_m0_burstcount), // .burstcount + .uav_read (hex2_s1_translator_avalon_universal_slave_0_agent_m0_read), // .read + .uav_write (hex2_s1_translator_avalon_universal_slave_0_agent_m0_write), // .write + .uav_waitrequest (hex2_s1_translator_avalon_universal_slave_0_agent_m0_waitrequest), // .waitrequest + .uav_readdatavalid (hex2_s1_translator_avalon_universal_slave_0_agent_m0_readdatavalid), // .readdatavalid + .uav_byteenable (hex2_s1_translator_avalon_universal_slave_0_agent_m0_byteenable), // .byteenable + .uav_readdata (hex2_s1_translator_avalon_universal_slave_0_agent_m0_readdata), // .readdata + .uav_writedata (hex2_s1_translator_avalon_universal_slave_0_agent_m0_writedata), // .writedata + .uav_lock (hex2_s1_translator_avalon_universal_slave_0_agent_m0_lock), // .lock + .uav_debugaccess (hex2_s1_translator_avalon_universal_slave_0_agent_m0_debugaccess), // .debugaccess + .av_address (hex2_s1_translator_avalon_anti_slave_0_address), // avalon_anti_slave_0.address + .av_write (hex2_s1_translator_avalon_anti_slave_0_write), // .write + .av_readdata (hex2_s1_translator_avalon_anti_slave_0_readdata), // .readdata + .av_writedata (hex2_s1_translator_avalon_anti_slave_0_writedata), // .writedata + .av_chipselect (hex2_s1_translator_avalon_anti_slave_0_chipselect), // .chipselect + .av_read (), // (terminated) + .av_begintransfer (), // (terminated) + .av_beginbursttransfer (), // (terminated) + .av_burstcount (), // (terminated) + .av_byteenable (), // (terminated) + .av_readdatavalid (1'b0), // (terminated) + .av_waitrequest (1'b0), // (terminated) + .av_writebyteenable (), // (terminated) + .av_lock (), // (terminated) + .av_clken (), // (terminated) + .uav_clken (1'b0), // (terminated) + .av_debugaccess (), // (terminated) + .av_outputenable (), // (terminated) + .uav_response (), // (terminated) + .av_response (2'b00), // (terminated) + .uav_writeresponserequest (1'b0), // (terminated) + .uav_writeresponsevalid (), // (terminated) + .av_writeresponserequest (), // (terminated) + .av_writeresponsevalid (1'b0) // (terminated) + ); + + altera_merlin_slave_translator #( + .AV_ADDRESS_W (2), + .AV_DATA_W (32), + .UAV_DATA_W (32), + .AV_BURSTCOUNT_W (1), + .AV_BYTEENABLE_W (1), + .UAV_BYTEENABLE_W (4), + .UAV_ADDRESS_W (19), + .UAV_BURSTCOUNT_W (3), + .AV_READLATENCY (0), + .USE_READDATAVALID (0), + .USE_WAITREQUEST (0), + .USE_UAV_CLKEN (0), + .USE_READRESPONSE (0), + .USE_WRITERESPONSE (0), + .AV_SYMBOLS_PER_WORD (4), + .AV_ADDRESS_SYMBOLS (0), + .AV_BURSTCOUNT_SYMBOLS (0), + .AV_CONSTANT_BURST_BEHAVIOR (0), + .UAV_CONSTANT_BURST_BEHAVIOR (0), + .AV_REQUIRE_UNALIGNED_ADDRESSES (0), + .CHIPSELECT_THROUGH_READLATENCY (0), + .AV_READ_WAIT_CYCLES (1), + .AV_WRITE_WAIT_CYCLES (0), + .AV_SETUP_WAIT_CYCLES (0), + .AV_DATA_HOLD_CYCLES (0) + ) hex3_s1_translator ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // reset.reset + .uav_address (hex3_s1_translator_avalon_universal_slave_0_agent_m0_address), // avalon_universal_slave_0.address + .uav_burstcount (hex3_s1_translator_avalon_universal_slave_0_agent_m0_burstcount), // .burstcount + .uav_read (hex3_s1_translator_avalon_universal_slave_0_agent_m0_read), // .read + .uav_write (hex3_s1_translator_avalon_universal_slave_0_agent_m0_write), // .write + .uav_waitrequest (hex3_s1_translator_avalon_universal_slave_0_agent_m0_waitrequest), // .waitrequest + .uav_readdatavalid (hex3_s1_translator_avalon_universal_slave_0_agent_m0_readdatavalid), // .readdatavalid + .uav_byteenable (hex3_s1_translator_avalon_universal_slave_0_agent_m0_byteenable), // .byteenable + .uav_readdata (hex3_s1_translator_avalon_universal_slave_0_agent_m0_readdata), // .readdata + .uav_writedata (hex3_s1_translator_avalon_universal_slave_0_agent_m0_writedata), // .writedata + .uav_lock (hex3_s1_translator_avalon_universal_slave_0_agent_m0_lock), // .lock + .uav_debugaccess (hex3_s1_translator_avalon_universal_slave_0_agent_m0_debugaccess), // .debugaccess + .av_address (hex3_s1_translator_avalon_anti_slave_0_address), // avalon_anti_slave_0.address + .av_write (hex3_s1_translator_avalon_anti_slave_0_write), // .write + .av_readdata (hex3_s1_translator_avalon_anti_slave_0_readdata), // .readdata + .av_writedata (hex3_s1_translator_avalon_anti_slave_0_writedata), // .writedata + .av_chipselect (hex3_s1_translator_avalon_anti_slave_0_chipselect), // .chipselect + .av_read (), // (terminated) + .av_begintransfer (), // (terminated) + .av_beginbursttransfer (), // (terminated) + .av_burstcount (), // (terminated) + .av_byteenable (), // (terminated) + .av_readdatavalid (1'b0), // (terminated) + .av_waitrequest (1'b0), // (terminated) + .av_writebyteenable (), // (terminated) + .av_lock (), // (terminated) + .av_clken (), // (terminated) + .uav_clken (1'b0), // (terminated) + .av_debugaccess (), // (terminated) + .av_outputenable (), // (terminated) + .uav_response (), // (terminated) + .av_response (2'b00), // (terminated) + .uav_writeresponserequest (1'b0), // (terminated) + .uav_writeresponsevalid (), // (terminated) + .av_writeresponserequest (), // (terminated) + .av_writeresponsevalid (1'b0) // (terminated) + ); + + altera_merlin_slave_translator #( + .AV_ADDRESS_W (2), + .AV_DATA_W (32), + .UAV_DATA_W (32), + .AV_BURSTCOUNT_W (1), + .AV_BYTEENABLE_W (1), + .UAV_BYTEENABLE_W (4), + .UAV_ADDRESS_W (19), + .UAV_BURSTCOUNT_W (3), + .AV_READLATENCY (0), + .USE_READDATAVALID (0), + .USE_WAITREQUEST (0), + .USE_UAV_CLKEN (0), + .USE_READRESPONSE (0), + .USE_WRITERESPONSE (0), + .AV_SYMBOLS_PER_WORD (4), + .AV_ADDRESS_SYMBOLS (0), + .AV_BURSTCOUNT_SYMBOLS (0), + .AV_CONSTANT_BURST_BEHAVIOR (0), + .UAV_CONSTANT_BURST_BEHAVIOR (0), + .AV_REQUIRE_UNALIGNED_ADDRESSES (0), + .CHIPSELECT_THROUGH_READLATENCY (0), + .AV_READ_WAIT_CYCLES (1), + .AV_WRITE_WAIT_CYCLES (0), + .AV_SETUP_WAIT_CYCLES (0), + .AV_DATA_HOLD_CYCLES (0) + ) hex4_s1_translator ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // reset.reset + .uav_address (hex4_s1_translator_avalon_universal_slave_0_agent_m0_address), // avalon_universal_slave_0.address + .uav_burstcount (hex4_s1_translator_avalon_universal_slave_0_agent_m0_burstcount), // .burstcount + .uav_read (hex4_s1_translator_avalon_universal_slave_0_agent_m0_read), // .read + .uav_write (hex4_s1_translator_avalon_universal_slave_0_agent_m0_write), // .write + .uav_waitrequest (hex4_s1_translator_avalon_universal_slave_0_agent_m0_waitrequest), // .waitrequest + .uav_readdatavalid (hex4_s1_translator_avalon_universal_slave_0_agent_m0_readdatavalid), // .readdatavalid + .uav_byteenable (hex4_s1_translator_avalon_universal_slave_0_agent_m0_byteenable), // .byteenable + .uav_readdata (hex4_s1_translator_avalon_universal_slave_0_agent_m0_readdata), // .readdata + .uav_writedata (hex4_s1_translator_avalon_universal_slave_0_agent_m0_writedata), // .writedata + .uav_lock (hex4_s1_translator_avalon_universal_slave_0_agent_m0_lock), // .lock + .uav_debugaccess (hex4_s1_translator_avalon_universal_slave_0_agent_m0_debugaccess), // .debugaccess + .av_address (hex4_s1_translator_avalon_anti_slave_0_address), // avalon_anti_slave_0.address + .av_write (hex4_s1_translator_avalon_anti_slave_0_write), // .write + .av_readdata (hex4_s1_translator_avalon_anti_slave_0_readdata), // .readdata + .av_writedata (hex4_s1_translator_avalon_anti_slave_0_writedata), // .writedata + .av_chipselect (hex4_s1_translator_avalon_anti_slave_0_chipselect), // .chipselect + .av_read (), // (terminated) + .av_begintransfer (), // (terminated) + .av_beginbursttransfer (), // (terminated) + .av_burstcount (), // (terminated) + .av_byteenable (), // (terminated) + .av_readdatavalid (1'b0), // (terminated) + .av_waitrequest (1'b0), // (terminated) + .av_writebyteenable (), // (terminated) + .av_lock (), // (terminated) + .av_clken (), // (terminated) + .uav_clken (1'b0), // (terminated) + .av_debugaccess (), // (terminated) + .av_outputenable (), // (terminated) + .uav_response (), // (terminated) + .av_response (2'b00), // (terminated) + .uav_writeresponserequest (1'b0), // (terminated) + .uav_writeresponsevalid (), // (terminated) + .av_writeresponserequest (), // (terminated) + .av_writeresponsevalid (1'b0) // (terminated) + ); + + altera_merlin_slave_translator #( + .AV_ADDRESS_W (2), + .AV_DATA_W (32), + .UAV_DATA_W (32), + .AV_BURSTCOUNT_W (1), + .AV_BYTEENABLE_W (1), + .UAV_BYTEENABLE_W (4), + .UAV_ADDRESS_W (19), + .UAV_BURSTCOUNT_W (3), + .AV_READLATENCY (0), + .USE_READDATAVALID (0), + .USE_WAITREQUEST (0), + .USE_UAV_CLKEN (0), + .USE_READRESPONSE (0), + .USE_WRITERESPONSE (0), + .AV_SYMBOLS_PER_WORD (4), + .AV_ADDRESS_SYMBOLS (0), + .AV_BURSTCOUNT_SYMBOLS (0), + .AV_CONSTANT_BURST_BEHAVIOR (0), + .UAV_CONSTANT_BURST_BEHAVIOR (0), + .AV_REQUIRE_UNALIGNED_ADDRESSES (0), + .CHIPSELECT_THROUGH_READLATENCY (0), + .AV_READ_WAIT_CYCLES (1), + .AV_WRITE_WAIT_CYCLES (0), + .AV_SETUP_WAIT_CYCLES (0), + .AV_DATA_HOLD_CYCLES (0) + ) hex5_s1_translator ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // reset.reset + .uav_address (hex5_s1_translator_avalon_universal_slave_0_agent_m0_address), // avalon_universal_slave_0.address + .uav_burstcount (hex5_s1_translator_avalon_universal_slave_0_agent_m0_burstcount), // .burstcount + .uav_read (hex5_s1_translator_avalon_universal_slave_0_agent_m0_read), // .read + .uav_write (hex5_s1_translator_avalon_universal_slave_0_agent_m0_write), // .write + .uav_waitrequest (hex5_s1_translator_avalon_universal_slave_0_agent_m0_waitrequest), // .waitrequest + .uav_readdatavalid (hex5_s1_translator_avalon_universal_slave_0_agent_m0_readdatavalid), // .readdatavalid + .uav_byteenable (hex5_s1_translator_avalon_universal_slave_0_agent_m0_byteenable), // .byteenable + .uav_readdata (hex5_s1_translator_avalon_universal_slave_0_agent_m0_readdata), // .readdata + .uav_writedata (hex5_s1_translator_avalon_universal_slave_0_agent_m0_writedata), // .writedata + .uav_lock (hex5_s1_translator_avalon_universal_slave_0_agent_m0_lock), // .lock + .uav_debugaccess (hex5_s1_translator_avalon_universal_slave_0_agent_m0_debugaccess), // .debugaccess + .av_address (hex5_s1_translator_avalon_anti_slave_0_address), // avalon_anti_slave_0.address + .av_write (hex5_s1_translator_avalon_anti_slave_0_write), // .write + .av_readdata (hex5_s1_translator_avalon_anti_slave_0_readdata), // .readdata + .av_writedata (hex5_s1_translator_avalon_anti_slave_0_writedata), // .writedata + .av_chipselect (hex5_s1_translator_avalon_anti_slave_0_chipselect), // .chipselect + .av_read (), // (terminated) + .av_begintransfer (), // (terminated) + .av_beginbursttransfer (), // (terminated) + .av_burstcount (), // (terminated) + .av_byteenable (), // (terminated) + .av_readdatavalid (1'b0), // (terminated) + .av_waitrequest (1'b0), // (terminated) + .av_writebyteenable (), // (terminated) + .av_lock (), // (terminated) + .av_clken (), // (terminated) + .uav_clken (1'b0), // (terminated) + .av_debugaccess (), // (terminated) + .av_outputenable (), // (terminated) + .uav_response (), // (terminated) + .av_response (2'b00), // (terminated) + .uav_writeresponserequest (1'b0), // (terminated) + .uav_writeresponsevalid (), // (terminated) + .av_writeresponserequest (), // (terminated) + .av_writeresponsevalid (1'b0) // (terminated) + ); + + altera_merlin_slave_translator #( + .AV_ADDRESS_W (2), + .AV_DATA_W (32), + .UAV_DATA_W (32), + .AV_BURSTCOUNT_W (1), + .AV_BYTEENABLE_W (1), + .UAV_BYTEENABLE_W (4), + .UAV_ADDRESS_W (19), + .UAV_BURSTCOUNT_W (3), + .AV_READLATENCY (0), + .USE_READDATAVALID (0), + .USE_WAITREQUEST (0), + .USE_UAV_CLKEN (0), + .USE_READRESPONSE (0), + .USE_WRITERESPONSE (0), + .AV_SYMBOLS_PER_WORD (4), + .AV_ADDRESS_SYMBOLS (0), + .AV_BURSTCOUNT_SYMBOLS (0), + .AV_CONSTANT_BURST_BEHAVIOR (0), + .UAV_CONSTANT_BURST_BEHAVIOR (0), + .AV_REQUIRE_UNALIGNED_ADDRESSES (0), + .CHIPSELECT_THROUGH_READLATENCY (0), + .AV_READ_WAIT_CYCLES (1), + .AV_WRITE_WAIT_CYCLES (0), + .AV_SETUP_WAIT_CYCLES (0), + .AV_DATA_HOLD_CYCLES (0) + ) hex6_s1_translator ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // reset.reset + .uav_address (hex6_s1_translator_avalon_universal_slave_0_agent_m0_address), // avalon_universal_slave_0.address + .uav_burstcount (hex6_s1_translator_avalon_universal_slave_0_agent_m0_burstcount), // .burstcount + .uav_read (hex6_s1_translator_avalon_universal_slave_0_agent_m0_read), // .read + .uav_write (hex6_s1_translator_avalon_universal_slave_0_agent_m0_write), // .write + .uav_waitrequest (hex6_s1_translator_avalon_universal_slave_0_agent_m0_waitrequest), // .waitrequest + .uav_readdatavalid (hex6_s1_translator_avalon_universal_slave_0_agent_m0_readdatavalid), // .readdatavalid + .uav_byteenable (hex6_s1_translator_avalon_universal_slave_0_agent_m0_byteenable), // .byteenable + .uav_readdata (hex6_s1_translator_avalon_universal_slave_0_agent_m0_readdata), // .readdata + .uav_writedata (hex6_s1_translator_avalon_universal_slave_0_agent_m0_writedata), // .writedata + .uav_lock (hex6_s1_translator_avalon_universal_slave_0_agent_m0_lock), // .lock + .uav_debugaccess (hex6_s1_translator_avalon_universal_slave_0_agent_m0_debugaccess), // .debugaccess + .av_address (hex6_s1_translator_avalon_anti_slave_0_address), // avalon_anti_slave_0.address + .av_write (hex6_s1_translator_avalon_anti_slave_0_write), // .write + .av_readdata (hex6_s1_translator_avalon_anti_slave_0_readdata), // .readdata + .av_writedata (hex6_s1_translator_avalon_anti_slave_0_writedata), // .writedata + .av_chipselect (hex6_s1_translator_avalon_anti_slave_0_chipselect), // .chipselect + .av_read (), // (terminated) + .av_begintransfer (), // (terminated) + .av_beginbursttransfer (), // (terminated) + .av_burstcount (), // (terminated) + .av_byteenable (), // (terminated) + .av_readdatavalid (1'b0), // (terminated) + .av_waitrequest (1'b0), // (terminated) + .av_writebyteenable (), // (terminated) + .av_lock (), // (terminated) + .av_clken (), // (terminated) + .uav_clken (1'b0), // (terminated) + .av_debugaccess (), // (terminated) + .av_outputenable (), // (terminated) + .uav_response (), // (terminated) + .av_response (2'b00), // (terminated) + .uav_writeresponserequest (1'b0), // (terminated) + .uav_writeresponsevalid (), // (terminated) + .av_writeresponserequest (), // (terminated) + .av_writeresponsevalid (1'b0) // (terminated) + ); + + altera_merlin_slave_translator #( + .AV_ADDRESS_W (2), + .AV_DATA_W (32), + .UAV_DATA_W (32), + .AV_BURSTCOUNT_W (1), + .AV_BYTEENABLE_W (1), + .UAV_BYTEENABLE_W (4), + .UAV_ADDRESS_W (19), + .UAV_BURSTCOUNT_W (3), + .AV_READLATENCY (0), + .USE_READDATAVALID (0), + .USE_WAITREQUEST (0), + .USE_UAV_CLKEN (0), + .USE_READRESPONSE (0), + .USE_WRITERESPONSE (0), + .AV_SYMBOLS_PER_WORD (4), + .AV_ADDRESS_SYMBOLS (0), + .AV_BURSTCOUNT_SYMBOLS (0), + .AV_CONSTANT_BURST_BEHAVIOR (0), + .UAV_CONSTANT_BURST_BEHAVIOR (0), + .AV_REQUIRE_UNALIGNED_ADDRESSES (0), + .CHIPSELECT_THROUGH_READLATENCY (0), + .AV_READ_WAIT_CYCLES (1), + .AV_WRITE_WAIT_CYCLES (0), + .AV_SETUP_WAIT_CYCLES (0), + .AV_DATA_HOLD_CYCLES (0) + ) hex7_s1_translator ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // reset.reset + .uav_address (hex7_s1_translator_avalon_universal_slave_0_agent_m0_address), // avalon_universal_slave_0.address + .uav_burstcount (hex7_s1_translator_avalon_universal_slave_0_agent_m0_burstcount), // .burstcount + .uav_read (hex7_s1_translator_avalon_universal_slave_0_agent_m0_read), // .read + .uav_write (hex7_s1_translator_avalon_universal_slave_0_agent_m0_write), // .write + .uav_waitrequest (hex7_s1_translator_avalon_universal_slave_0_agent_m0_waitrequest), // .waitrequest + .uav_readdatavalid (hex7_s1_translator_avalon_universal_slave_0_agent_m0_readdatavalid), // .readdatavalid + .uav_byteenable (hex7_s1_translator_avalon_universal_slave_0_agent_m0_byteenable), // .byteenable + .uav_readdata (hex7_s1_translator_avalon_universal_slave_0_agent_m0_readdata), // .readdata + .uav_writedata (hex7_s1_translator_avalon_universal_slave_0_agent_m0_writedata), // .writedata + .uav_lock (hex7_s1_translator_avalon_universal_slave_0_agent_m0_lock), // .lock + .uav_debugaccess (hex7_s1_translator_avalon_universal_slave_0_agent_m0_debugaccess), // .debugaccess + .av_address (hex7_s1_translator_avalon_anti_slave_0_address), // avalon_anti_slave_0.address + .av_write (hex7_s1_translator_avalon_anti_slave_0_write), // .write + .av_readdata (hex7_s1_translator_avalon_anti_slave_0_readdata), // .readdata + .av_writedata (hex7_s1_translator_avalon_anti_slave_0_writedata), // .writedata + .av_chipselect (hex7_s1_translator_avalon_anti_slave_0_chipselect), // .chipselect + .av_read (), // (terminated) + .av_begintransfer (), // (terminated) + .av_beginbursttransfer (), // (terminated) + .av_burstcount (), // (terminated) + .av_byteenable (), // (terminated) + .av_readdatavalid (1'b0), // (terminated) + .av_waitrequest (1'b0), // (terminated) + .av_writebyteenable (), // (terminated) + .av_lock (), // (terminated) + .av_clken (), // (terminated) + .uav_clken (1'b0), // (terminated) + .av_debugaccess (), // (terminated) + .av_outputenable (), // (terminated) + .uav_response (), // (terminated) + .av_response (2'b00), // (terminated) + .uav_writeresponserequest (1'b0), // (terminated) + .uav_writeresponsevalid (), // (terminated) + .av_writeresponserequest (), // (terminated) + .av_writeresponsevalid (1'b0) // (terminated) + ); + + altera_merlin_slave_translator #( + .AV_ADDRESS_W (2), + .AV_DATA_W (8), + .UAV_DATA_W (32), + .AV_BURSTCOUNT_W (1), + .AV_BYTEENABLE_W (1), + .UAV_BYTEENABLE_W (4), + .UAV_ADDRESS_W (19), + .UAV_BURSTCOUNT_W (3), + .AV_READLATENCY (0), + .USE_READDATAVALID (0), + .USE_WAITREQUEST (0), + .USE_UAV_CLKEN (0), + .USE_READRESPONSE (0), + .USE_WRITERESPONSE (0), + .AV_SYMBOLS_PER_WORD (4), + .AV_ADDRESS_SYMBOLS (0), + .AV_BURSTCOUNT_SYMBOLS (0), + .AV_CONSTANT_BURST_BEHAVIOR (0), + .UAV_CONSTANT_BURST_BEHAVIOR (0), + .AV_REQUIRE_UNALIGNED_ADDRESSES (0), + .CHIPSELECT_THROUGH_READLATENCY (0), + .AV_READ_WAIT_CYCLES (13), + .AV_WRITE_WAIT_CYCLES (13), + .AV_SETUP_WAIT_CYCLES (13), + .AV_DATA_HOLD_CYCLES (13) + ) lcd_16207_0_control_slave_translator ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // reset.reset + .uav_address (lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_m0_address), // avalon_universal_slave_0.address + .uav_burstcount (lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_m0_burstcount), // .burstcount + .uav_read (lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_m0_read), // .read + .uav_write (lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_m0_write), // .write + .uav_waitrequest (lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_m0_waitrequest), // .waitrequest + .uav_readdatavalid (lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_m0_readdatavalid), // .readdatavalid + .uav_byteenable (lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_m0_byteenable), // .byteenable + .uav_readdata (lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_m0_readdata), // .readdata + .uav_writedata (lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_m0_writedata), // .writedata + .uav_lock (lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_m0_lock), // .lock + .uav_debugaccess (lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_m0_debugaccess), // .debugaccess + .av_address (lcd_16207_0_control_slave_translator_avalon_anti_slave_0_address), // avalon_anti_slave_0.address + .av_write (lcd_16207_0_control_slave_translator_avalon_anti_slave_0_write), // .write + .av_read (lcd_16207_0_control_slave_translator_avalon_anti_slave_0_read), // .read + .av_readdata (lcd_16207_0_control_slave_translator_avalon_anti_slave_0_readdata), // .readdata + .av_writedata (lcd_16207_0_control_slave_translator_avalon_anti_slave_0_writedata), // .writedata + .av_begintransfer (lcd_16207_0_control_slave_translator_avalon_anti_slave_0_begintransfer), // .begintransfer + .av_beginbursttransfer (), // (terminated) + .av_burstcount (), // (terminated) + .av_byteenable (), // (terminated) + .av_readdatavalid (1'b0), // (terminated) + .av_waitrequest (1'b0), // (terminated) + .av_writebyteenable (), // (terminated) + .av_lock (), // (terminated) + .av_chipselect (), // (terminated) + .av_clken (), // (terminated) + .uav_clken (1'b0), // (terminated) + .av_debugaccess (), // (terminated) + .av_outputenable (), // (terminated) + .uav_response (), // (terminated) + .av_response (2'b00), // (terminated) + .uav_writeresponserequest (1'b0), // (terminated) + .uav_writeresponsevalid (), // (terminated) + .av_writeresponserequest (), // (terminated) + .av_writeresponsevalid (1'b0) // (terminated) + ); + + altera_merlin_slave_translator #( + .AV_ADDRESS_W (2), + .AV_DATA_W (32), + .UAV_DATA_W (32), + .AV_BURSTCOUNT_W (1), + .AV_BYTEENABLE_W (1), + .UAV_BYTEENABLE_W (4), + .UAV_ADDRESS_W (19), + .UAV_BURSTCOUNT_W (3), + .AV_READLATENCY (0), + .USE_READDATAVALID (0), + .USE_WAITREQUEST (0), + .USE_UAV_CLKEN (0), + .USE_READRESPONSE (0), + .USE_WRITERESPONSE (0), + .AV_SYMBOLS_PER_WORD (4), + .AV_ADDRESS_SYMBOLS (0), + .AV_BURSTCOUNT_SYMBOLS (0), + .AV_CONSTANT_BURST_BEHAVIOR (0), + .UAV_CONSTANT_BURST_BEHAVIOR (0), + .AV_REQUIRE_UNALIGNED_ADDRESSES (0), + .CHIPSELECT_THROUGH_READLATENCY (0), + .AV_READ_WAIT_CYCLES (1), + .AV_WRITE_WAIT_CYCLES (0), + .AV_SETUP_WAIT_CYCLES (0), + .AV_DATA_HOLD_CYCLES (0) + ) lcd_on_s1_translator ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // reset.reset + .uav_address (lcd_on_s1_translator_avalon_universal_slave_0_agent_m0_address), // avalon_universal_slave_0.address + .uav_burstcount (lcd_on_s1_translator_avalon_universal_slave_0_agent_m0_burstcount), // .burstcount + .uav_read (lcd_on_s1_translator_avalon_universal_slave_0_agent_m0_read), // .read + .uav_write (lcd_on_s1_translator_avalon_universal_slave_0_agent_m0_write), // .write + .uav_waitrequest (lcd_on_s1_translator_avalon_universal_slave_0_agent_m0_waitrequest), // .waitrequest + .uav_readdatavalid (lcd_on_s1_translator_avalon_universal_slave_0_agent_m0_readdatavalid), // .readdatavalid + .uav_byteenable (lcd_on_s1_translator_avalon_universal_slave_0_agent_m0_byteenable), // .byteenable + .uav_readdata (lcd_on_s1_translator_avalon_universal_slave_0_agent_m0_readdata), // .readdata + .uav_writedata (lcd_on_s1_translator_avalon_universal_slave_0_agent_m0_writedata), // .writedata + .uav_lock (lcd_on_s1_translator_avalon_universal_slave_0_agent_m0_lock), // .lock + .uav_debugaccess (lcd_on_s1_translator_avalon_universal_slave_0_agent_m0_debugaccess), // .debugaccess + .av_address (lcd_on_s1_translator_avalon_anti_slave_0_address), // avalon_anti_slave_0.address + .av_write (lcd_on_s1_translator_avalon_anti_slave_0_write), // .write + .av_readdata (lcd_on_s1_translator_avalon_anti_slave_0_readdata), // .readdata + .av_writedata (lcd_on_s1_translator_avalon_anti_slave_0_writedata), // .writedata + .av_chipselect (lcd_on_s1_translator_avalon_anti_slave_0_chipselect), // .chipselect + .av_read (), // (terminated) + .av_begintransfer (), // (terminated) + .av_beginbursttransfer (), // (terminated) + .av_burstcount (), // (terminated) + .av_byteenable (), // (terminated) + .av_readdatavalid (1'b0), // (terminated) + .av_waitrequest (1'b0), // (terminated) + .av_writebyteenable (), // (terminated) + .av_lock (), // (terminated) + .av_clken (), // (terminated) + .uav_clken (1'b0), // (terminated) + .av_debugaccess (), // (terminated) + .av_outputenable (), // (terminated) + .uav_response (), // (terminated) + .av_response (2'b00), // (terminated) + .uav_writeresponserequest (1'b0), // (terminated) + .uav_writeresponsevalid (), // (terminated) + .av_writeresponserequest (), // (terminated) + .av_writeresponsevalid (1'b0) // (terminated) + ); + + altera_merlin_slave_translator #( + .AV_ADDRESS_W (2), + .AV_DATA_W (32), + .UAV_DATA_W (32), + .AV_BURSTCOUNT_W (1), + .AV_BYTEENABLE_W (1), + .UAV_BYTEENABLE_W (4), + .UAV_ADDRESS_W (19), + .UAV_BURSTCOUNT_W (3), + .AV_READLATENCY (0), + .USE_READDATAVALID (0), + .USE_WAITREQUEST (0), + .USE_UAV_CLKEN (0), + .USE_READRESPONSE (0), + .USE_WRITERESPONSE (0), + .AV_SYMBOLS_PER_WORD (4), + .AV_ADDRESS_SYMBOLS (0), + .AV_BURSTCOUNT_SYMBOLS (0), + .AV_CONSTANT_BURST_BEHAVIOR (0), + .UAV_CONSTANT_BURST_BEHAVIOR (0), + .AV_REQUIRE_UNALIGNED_ADDRESSES (0), + .CHIPSELECT_THROUGH_READLATENCY (0), + .AV_READ_WAIT_CYCLES (1), + .AV_WRITE_WAIT_CYCLES (0), + .AV_SETUP_WAIT_CYCLES (0), + .AV_DATA_HOLD_CYCLES (0) + ) lcd_blon_s1_translator ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // reset.reset + .uav_address (lcd_blon_s1_translator_avalon_universal_slave_0_agent_m0_address), // avalon_universal_slave_0.address + .uav_burstcount (lcd_blon_s1_translator_avalon_universal_slave_0_agent_m0_burstcount), // .burstcount + .uav_read (lcd_blon_s1_translator_avalon_universal_slave_0_agent_m0_read), // .read + .uav_write (lcd_blon_s1_translator_avalon_universal_slave_0_agent_m0_write), // .write + .uav_waitrequest (lcd_blon_s1_translator_avalon_universal_slave_0_agent_m0_waitrequest), // .waitrequest + .uav_readdatavalid (lcd_blon_s1_translator_avalon_universal_slave_0_agent_m0_readdatavalid), // .readdatavalid + .uav_byteenable (lcd_blon_s1_translator_avalon_universal_slave_0_agent_m0_byteenable), // .byteenable + .uav_readdata (lcd_blon_s1_translator_avalon_universal_slave_0_agent_m0_readdata), // .readdata + .uav_writedata (lcd_blon_s1_translator_avalon_universal_slave_0_agent_m0_writedata), // .writedata + .uav_lock (lcd_blon_s1_translator_avalon_universal_slave_0_agent_m0_lock), // .lock + .uav_debugaccess (lcd_blon_s1_translator_avalon_universal_slave_0_agent_m0_debugaccess), // .debugaccess + .av_address (lcd_blon_s1_translator_avalon_anti_slave_0_address), // avalon_anti_slave_0.address + .av_write (lcd_blon_s1_translator_avalon_anti_slave_0_write), // .write + .av_readdata (lcd_blon_s1_translator_avalon_anti_slave_0_readdata), // .readdata + .av_writedata (lcd_blon_s1_translator_avalon_anti_slave_0_writedata), // .writedata + .av_chipselect (lcd_blon_s1_translator_avalon_anti_slave_0_chipselect), // .chipselect + .av_read (), // (terminated) + .av_begintransfer (), // (terminated) + .av_beginbursttransfer (), // (terminated) + .av_burstcount (), // (terminated) + .av_byteenable (), // (terminated) + .av_readdatavalid (1'b0), // (terminated) + .av_waitrequest (1'b0), // (terminated) + .av_writebyteenable (), // (terminated) + .av_lock (), // (terminated) + .av_clken (), // (terminated) + .uav_clken (1'b0), // (terminated) + .av_debugaccess (), // (terminated) + .av_outputenable (), // (terminated) + .uav_response (), // (terminated) + .av_response (2'b00), // (terminated) + .uav_writeresponserequest (1'b0), // (terminated) + .uav_writeresponsevalid (), // (terminated) + .av_writeresponserequest (), // (terminated) + .av_writeresponsevalid (1'b0) // (terminated) + ); + + altera_merlin_master_agent #( + .PKT_PROTECTION_H (89), + .PKT_PROTECTION_L (87), + .PKT_BEGIN_BURST (74), + .PKT_BURSTWRAP_H (66), + .PKT_BURSTWRAP_L (64), + .PKT_BURST_SIZE_H (69), + .PKT_BURST_SIZE_L (67), + .PKT_BURST_TYPE_H (71), + .PKT_BURST_TYPE_L (70), + .PKT_BYTE_CNT_H (63), + .PKT_BYTE_CNT_L (61), + .PKT_ADDR_H (54), + .PKT_ADDR_L (36), + .PKT_TRANS_COMPRESSED_READ (55), + .PKT_TRANS_POSTED (56), + .PKT_TRANS_WRITE (57), + .PKT_TRANS_READ (58), + .PKT_TRANS_LOCK (59), + .PKT_TRANS_EXCLUSIVE (60), + .PKT_DATA_H (31), + .PKT_DATA_L (0), + .PKT_BYTEEN_H (35), + .PKT_BYTEEN_L (32), + .PKT_SRC_ID_H (80), + .PKT_SRC_ID_L (76), + .PKT_DEST_ID_H (85), + .PKT_DEST_ID_L (81), + .PKT_THREAD_ID_H (86), + .PKT_THREAD_ID_L (86), + .PKT_CACHE_H (93), + .PKT_CACHE_L (90), + .PKT_DATA_SIDEBAND_H (73), + .PKT_DATA_SIDEBAND_L (73), + .PKT_QOS_H (75), + .PKT_QOS_L (75), + .PKT_ADDR_SIDEBAND_H (72), + .PKT_ADDR_SIDEBAND_L (72), + .PKT_RESPONSE_STATUS_H (95), + .PKT_RESPONSE_STATUS_L (94), + .ST_DATA_W (96), + .ST_CHANNEL_W (18), + .AV_BURSTCOUNT_W (3), + .SUPPRESS_0_BYTEEN_RSP (0), + .ID (1), + .BURSTWRAP_VALUE (3), + .CACHE_VALUE (0), + .SECURE_ACCESS_BIT (1), + .USE_READRESPONSE (0), + .USE_WRITERESPONSE (0) + ) nios2_processor_instruction_master_translator_avalon_universal_master_0_agent ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .av_address (nios2_processor_instruction_master_translator_avalon_universal_master_0_address), // av.address + .av_write (nios2_processor_instruction_master_translator_avalon_universal_master_0_write), // .write + .av_read (nios2_processor_instruction_master_translator_avalon_universal_master_0_read), // .read + .av_writedata (nios2_processor_instruction_master_translator_avalon_universal_master_0_writedata), // .writedata + .av_readdata (nios2_processor_instruction_master_translator_avalon_universal_master_0_readdata), // .readdata + .av_waitrequest (nios2_processor_instruction_master_translator_avalon_universal_master_0_waitrequest), // .waitrequest + .av_readdatavalid (nios2_processor_instruction_master_translator_avalon_universal_master_0_readdatavalid), // .readdatavalid + .av_byteenable (nios2_processor_instruction_master_translator_avalon_universal_master_0_byteenable), // .byteenable + .av_burstcount (nios2_processor_instruction_master_translator_avalon_universal_master_0_burstcount), // .burstcount + .av_debugaccess (nios2_processor_instruction_master_translator_avalon_universal_master_0_debugaccess), // .debugaccess + .av_lock (nios2_processor_instruction_master_translator_avalon_universal_master_0_lock), // .lock + .cp_valid (nios2_processor_instruction_master_translator_avalon_universal_master_0_agent_cp_valid), // cp.valid + .cp_data (nios2_processor_instruction_master_translator_avalon_universal_master_0_agent_cp_data), // .data + .cp_startofpacket (nios2_processor_instruction_master_translator_avalon_universal_master_0_agent_cp_startofpacket), // .startofpacket + .cp_endofpacket (nios2_processor_instruction_master_translator_avalon_universal_master_0_agent_cp_endofpacket), // .endofpacket + .cp_ready (nios2_processor_instruction_master_translator_avalon_universal_master_0_agent_cp_ready), // .ready + .rp_valid (rsp_xbar_mux_src_valid), // rp.valid + .rp_data (rsp_xbar_mux_src_data), // .data + .rp_channel (rsp_xbar_mux_src_channel), // .channel + .rp_startofpacket (rsp_xbar_mux_src_startofpacket), // .startofpacket + .rp_endofpacket (rsp_xbar_mux_src_endofpacket), // .endofpacket + .rp_ready (rsp_xbar_mux_src_ready), // .ready + .av_response (), // (terminated) + .av_writeresponserequest (1'b0), // (terminated) + .av_writeresponsevalid () // (terminated) + ); + + altera_merlin_master_agent #( + .PKT_PROTECTION_H (89), + .PKT_PROTECTION_L (87), + .PKT_BEGIN_BURST (74), + .PKT_BURSTWRAP_H (66), + .PKT_BURSTWRAP_L (64), + .PKT_BURST_SIZE_H (69), + .PKT_BURST_SIZE_L (67), + .PKT_BURST_TYPE_H (71), + .PKT_BURST_TYPE_L (70), + .PKT_BYTE_CNT_H (63), + .PKT_BYTE_CNT_L (61), + .PKT_ADDR_H (54), + .PKT_ADDR_L (36), + .PKT_TRANS_COMPRESSED_READ (55), + .PKT_TRANS_POSTED (56), + .PKT_TRANS_WRITE (57), + .PKT_TRANS_READ (58), + .PKT_TRANS_LOCK (59), + .PKT_TRANS_EXCLUSIVE (60), + .PKT_DATA_H (31), + .PKT_DATA_L (0), + .PKT_BYTEEN_H (35), + .PKT_BYTEEN_L (32), + .PKT_SRC_ID_H (80), + .PKT_SRC_ID_L (76), + .PKT_DEST_ID_H (85), + .PKT_DEST_ID_L (81), + .PKT_THREAD_ID_H (86), + .PKT_THREAD_ID_L (86), + .PKT_CACHE_H (93), + .PKT_CACHE_L (90), + .PKT_DATA_SIDEBAND_H (73), + .PKT_DATA_SIDEBAND_L (73), + .PKT_QOS_H (75), + .PKT_QOS_L (75), + .PKT_ADDR_SIDEBAND_H (72), + .PKT_ADDR_SIDEBAND_L (72), + .PKT_RESPONSE_STATUS_H (95), + .PKT_RESPONSE_STATUS_L (94), + .ST_DATA_W (96), + .ST_CHANNEL_W (18), + .AV_BURSTCOUNT_W (3), + .SUPPRESS_0_BYTEEN_RSP (0), + .ID (0), + .BURSTWRAP_VALUE (7), + .CACHE_VALUE (0), + .SECURE_ACCESS_BIT (1), + .USE_READRESPONSE (0), + .USE_WRITERESPONSE (0) + ) nios2_processor_data_master_translator_avalon_universal_master_0_agent ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .av_address (nios2_processor_data_master_translator_avalon_universal_master_0_address), // av.address + .av_write (nios2_processor_data_master_translator_avalon_universal_master_0_write), // .write + .av_read (nios2_processor_data_master_translator_avalon_universal_master_0_read), // .read + .av_writedata (nios2_processor_data_master_translator_avalon_universal_master_0_writedata), // .writedata + .av_readdata (nios2_processor_data_master_translator_avalon_universal_master_0_readdata), // .readdata + .av_waitrequest (nios2_processor_data_master_translator_avalon_universal_master_0_waitrequest), // .waitrequest + .av_readdatavalid (nios2_processor_data_master_translator_avalon_universal_master_0_readdatavalid), // .readdatavalid + .av_byteenable (nios2_processor_data_master_translator_avalon_universal_master_0_byteenable), // .byteenable + .av_burstcount (nios2_processor_data_master_translator_avalon_universal_master_0_burstcount), // .burstcount + .av_debugaccess (nios2_processor_data_master_translator_avalon_universal_master_0_debugaccess), // .debugaccess + .av_lock (nios2_processor_data_master_translator_avalon_universal_master_0_lock), // .lock + .cp_valid (nios2_processor_data_master_translator_avalon_universal_master_0_agent_cp_valid), // cp.valid + .cp_data (nios2_processor_data_master_translator_avalon_universal_master_0_agent_cp_data), // .data + .cp_startofpacket (nios2_processor_data_master_translator_avalon_universal_master_0_agent_cp_startofpacket), // .startofpacket + .cp_endofpacket (nios2_processor_data_master_translator_avalon_universal_master_0_agent_cp_endofpacket), // .endofpacket + .cp_ready (nios2_processor_data_master_translator_avalon_universal_master_0_agent_cp_ready), // .ready + .rp_valid (rsp_xbar_mux_001_src_valid), // rp.valid + .rp_data (rsp_xbar_mux_001_src_data), // .data + .rp_channel (rsp_xbar_mux_001_src_channel), // .channel + .rp_startofpacket (rsp_xbar_mux_001_src_startofpacket), // .startofpacket + .rp_endofpacket (rsp_xbar_mux_001_src_endofpacket), // .endofpacket + .rp_ready (rsp_xbar_mux_001_src_ready), // .ready + .av_response (), // (terminated) + .av_writeresponserequest (1'b0), // (terminated) + .av_writeresponsevalid () // (terminated) + ); + + altera_merlin_slave_agent #( + .PKT_DATA_H (31), + .PKT_DATA_L (0), + .PKT_BEGIN_BURST (74), + .PKT_SYMBOL_W (8), + .PKT_BYTEEN_H (35), + .PKT_BYTEEN_L (32), + .PKT_ADDR_H (54), + .PKT_ADDR_L (36), + .PKT_TRANS_COMPRESSED_READ (55), + .PKT_TRANS_POSTED (56), + .PKT_TRANS_WRITE (57), + .PKT_TRANS_READ (58), + .PKT_TRANS_LOCK (59), + .PKT_SRC_ID_H (80), + .PKT_SRC_ID_L (76), + .PKT_DEST_ID_H (85), + .PKT_DEST_ID_L (81), + .PKT_BURSTWRAP_H (66), + .PKT_BURSTWRAP_L (64), + .PKT_BYTE_CNT_H (63), + .PKT_BYTE_CNT_L (61), + .PKT_PROTECTION_H (89), + .PKT_PROTECTION_L (87), + .PKT_RESPONSE_STATUS_H (95), + .PKT_RESPONSE_STATUS_L (94), + .PKT_BURST_SIZE_H (69), + .PKT_BURST_SIZE_L (67), + .ST_CHANNEL_W (18), + .ST_DATA_W (96), + .AVS_BURSTCOUNT_W (3), + .SUPPRESS_0_BYTEEN_CMD (0), + .PREVENT_FIFO_OVERFLOW (1), + .USE_READRESPONSE (0), + .USE_WRITERESPONSE (0) + ) nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .m0_address (nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_m0_address), // m0.address + .m0_burstcount (nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_m0_burstcount), // .burstcount + .m0_byteenable (nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_m0_byteenable), // .byteenable + .m0_debugaccess (nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_m0_debugaccess), // .debugaccess + .m0_lock (nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_m0_lock), // .lock + .m0_readdata (nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_m0_readdata), // .readdata + .m0_readdatavalid (nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_m0_readdatavalid), // .readdatavalid + .m0_read (nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_m0_read), // .read + .m0_waitrequest (nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_m0_waitrequest), // .waitrequest + .m0_writedata (nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_m0_writedata), // .writedata + .m0_write (nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_m0_write), // .write + .rp_endofpacket (nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rp_endofpacket), // rp.endofpacket + .rp_ready (nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rp_ready), // .ready + .rp_valid (nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rp_valid), // .valid + .rp_data (nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rp_data), // .data + .rp_startofpacket (nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rp_startofpacket), // .startofpacket + .cp_ready (cmd_xbar_mux_src_ready), // cp.ready + .cp_valid (cmd_xbar_mux_src_valid), // .valid + .cp_data (cmd_xbar_mux_src_data), // .data + .cp_startofpacket (cmd_xbar_mux_src_startofpacket), // .startofpacket + .cp_endofpacket (cmd_xbar_mux_src_endofpacket), // .endofpacket + .cp_channel (cmd_xbar_mux_src_channel), // .channel + .rf_sink_ready (nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo_out_ready), // rf_sink.ready + .rf_sink_valid (nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo_out_valid), // .valid + .rf_sink_startofpacket (nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo_out_startofpacket), // .startofpacket + .rf_sink_endofpacket (nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo_out_endofpacket), // .endofpacket + .rf_sink_data (nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo_out_data), // .data + .rf_source_ready (nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rf_source_ready), // rf_source.ready + .rf_source_valid (nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rf_source_valid), // .valid + .rf_source_startofpacket (nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rf_source_startofpacket), // .startofpacket + .rf_source_endofpacket (nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rf_source_endofpacket), // .endofpacket + .rf_source_data (nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rf_source_data), // .data + .rdata_fifo_sink_ready (nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rdata_fifo_src_ready), // rdata_fifo_sink.ready + .rdata_fifo_sink_valid (nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rdata_fifo_src_valid), // .valid + .rdata_fifo_sink_data (nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rdata_fifo_src_data), // .data + .rdata_fifo_src_ready (nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rdata_fifo_src_ready), // rdata_fifo_src.ready + .rdata_fifo_src_valid (nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rdata_fifo_src_valid), // .valid + .rdata_fifo_src_data (nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rdata_fifo_src_data), // .data + .m0_response (2'b00), // (terminated) + .m0_writeresponserequest (), // (terminated) + .m0_writeresponsevalid (1'b0) // (terminated) + ); + + altera_avalon_sc_fifo #( + .SYMBOLS_PER_BEAT (1), + .BITS_PER_SYMBOL (97), + .FIFO_DEPTH (2), + .CHANNEL_WIDTH (0), + .ERROR_WIDTH (0), + .USE_PACKETS (1), + .USE_FILL_LEVEL (0), + .EMPTY_LATENCY (1), + .USE_MEMORY_BLOCKS (0), + .USE_STORE_FORWARD (0), + .USE_ALMOST_FULL_IF (0), + .USE_ALMOST_EMPTY_IF (0) + ) nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .in_data (nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rf_source_data), // in.data + .in_valid (nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rf_source_valid), // .valid + .in_ready (nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rf_source_ready), // .ready + .in_startofpacket (nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rf_source_startofpacket), // .startofpacket + .in_endofpacket (nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rf_source_endofpacket), // .endofpacket + .out_data (nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo_out_data), // out.data + .out_valid (nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo_out_valid), // .valid + .out_ready (nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo_out_ready), // .ready + .out_startofpacket (nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo_out_startofpacket), // .startofpacket + .out_endofpacket (nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo_out_endofpacket), // .endofpacket + .csr_address (2'b00), // (terminated) + .csr_read (1'b0), // (terminated) + .csr_write (1'b0), // (terminated) + .csr_readdata (), // (terminated) + .csr_writedata (32'b00000000000000000000000000000000), // (terminated) + .almost_full_data (), // (terminated) + .almost_empty_data (), // (terminated) + .in_empty (1'b0), // (terminated) + .out_empty (), // (terminated) + .in_error (1'b0), // (terminated) + .out_error (), // (terminated) + .in_channel (1'b0), // (terminated) + .out_channel () // (terminated) + ); + + altera_merlin_slave_agent #( + .PKT_DATA_H (31), + .PKT_DATA_L (0), + .PKT_BEGIN_BURST (74), + .PKT_SYMBOL_W (8), + .PKT_BYTEEN_H (35), + .PKT_BYTEEN_L (32), + .PKT_ADDR_H (54), + .PKT_ADDR_L (36), + .PKT_TRANS_COMPRESSED_READ (55), + .PKT_TRANS_POSTED (56), + .PKT_TRANS_WRITE (57), + .PKT_TRANS_READ (58), + .PKT_TRANS_LOCK (59), + .PKT_SRC_ID_H (80), + .PKT_SRC_ID_L (76), + .PKT_DEST_ID_H (85), + .PKT_DEST_ID_L (81), + .PKT_BURSTWRAP_H (66), + .PKT_BURSTWRAP_L (64), + .PKT_BYTE_CNT_H (63), + .PKT_BYTE_CNT_L (61), + .PKT_PROTECTION_H (89), + .PKT_PROTECTION_L (87), + .PKT_RESPONSE_STATUS_H (95), + .PKT_RESPONSE_STATUS_L (94), + .PKT_BURST_SIZE_H (69), + .PKT_BURST_SIZE_L (67), + .ST_CHANNEL_W (18), + .ST_DATA_W (96), + .AVS_BURSTCOUNT_W (3), + .SUPPRESS_0_BYTEEN_CMD (0), + .PREVENT_FIFO_OVERFLOW (1), + .USE_READRESPONSE (0), + .USE_WRITERESPONSE (0) + ) onchip_memory_s1_translator_avalon_universal_slave_0_agent ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .m0_address (onchip_memory_s1_translator_avalon_universal_slave_0_agent_m0_address), // m0.address + .m0_burstcount (onchip_memory_s1_translator_avalon_universal_slave_0_agent_m0_burstcount), // .burstcount + .m0_byteenable (onchip_memory_s1_translator_avalon_universal_slave_0_agent_m0_byteenable), // .byteenable + .m0_debugaccess (onchip_memory_s1_translator_avalon_universal_slave_0_agent_m0_debugaccess), // .debugaccess + .m0_lock (onchip_memory_s1_translator_avalon_universal_slave_0_agent_m0_lock), // .lock + .m0_readdata (onchip_memory_s1_translator_avalon_universal_slave_0_agent_m0_readdata), // .readdata + .m0_readdatavalid (onchip_memory_s1_translator_avalon_universal_slave_0_agent_m0_readdatavalid), // .readdatavalid + .m0_read (onchip_memory_s1_translator_avalon_universal_slave_0_agent_m0_read), // .read + .m0_waitrequest (onchip_memory_s1_translator_avalon_universal_slave_0_agent_m0_waitrequest), // .waitrequest + .m0_writedata (onchip_memory_s1_translator_avalon_universal_slave_0_agent_m0_writedata), // .writedata + .m0_write (onchip_memory_s1_translator_avalon_universal_slave_0_agent_m0_write), // .write + .rp_endofpacket (onchip_memory_s1_translator_avalon_universal_slave_0_agent_rp_endofpacket), // rp.endofpacket + .rp_ready (onchip_memory_s1_translator_avalon_universal_slave_0_agent_rp_ready), // .ready + .rp_valid (onchip_memory_s1_translator_avalon_universal_slave_0_agent_rp_valid), // .valid + .rp_data (onchip_memory_s1_translator_avalon_universal_slave_0_agent_rp_data), // .data + .rp_startofpacket (onchip_memory_s1_translator_avalon_universal_slave_0_agent_rp_startofpacket), // .startofpacket + .cp_ready (cmd_xbar_mux_001_src_ready), // cp.ready + .cp_valid (cmd_xbar_mux_001_src_valid), // .valid + .cp_data (cmd_xbar_mux_001_src_data), // .data + .cp_startofpacket (cmd_xbar_mux_001_src_startofpacket), // .startofpacket + .cp_endofpacket (cmd_xbar_mux_001_src_endofpacket), // .endofpacket + .cp_channel (cmd_xbar_mux_001_src_channel), // .channel + .rf_sink_ready (onchip_memory_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_ready), // rf_sink.ready + .rf_sink_valid (onchip_memory_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_valid), // .valid + .rf_sink_startofpacket (onchip_memory_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_startofpacket), // .startofpacket + .rf_sink_endofpacket (onchip_memory_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_endofpacket), // .endofpacket + .rf_sink_data (onchip_memory_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_data), // .data + .rf_source_ready (onchip_memory_s1_translator_avalon_universal_slave_0_agent_rf_source_ready), // rf_source.ready + .rf_source_valid (onchip_memory_s1_translator_avalon_universal_slave_0_agent_rf_source_valid), // .valid + .rf_source_startofpacket (onchip_memory_s1_translator_avalon_universal_slave_0_agent_rf_source_startofpacket), // .startofpacket + .rf_source_endofpacket (onchip_memory_s1_translator_avalon_universal_slave_0_agent_rf_source_endofpacket), // .endofpacket + .rf_source_data (onchip_memory_s1_translator_avalon_universal_slave_0_agent_rf_source_data), // .data + .rdata_fifo_sink_ready (onchip_memory_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_ready), // rdata_fifo_sink.ready + .rdata_fifo_sink_valid (onchip_memory_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_valid), // .valid + .rdata_fifo_sink_data (onchip_memory_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_data), // .data + .rdata_fifo_src_ready (onchip_memory_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_ready), // rdata_fifo_src.ready + .rdata_fifo_src_valid (onchip_memory_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_valid), // .valid + .rdata_fifo_src_data (onchip_memory_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_data), // .data + .m0_response (2'b00), // (terminated) + .m0_writeresponserequest (), // (terminated) + .m0_writeresponsevalid (1'b0) // (terminated) + ); + + altera_avalon_sc_fifo #( + .SYMBOLS_PER_BEAT (1), + .BITS_PER_SYMBOL (97), + .FIFO_DEPTH (2), + .CHANNEL_WIDTH (0), + .ERROR_WIDTH (0), + .USE_PACKETS (1), + .USE_FILL_LEVEL (0), + .EMPTY_LATENCY (1), + .USE_MEMORY_BLOCKS (0), + .USE_STORE_FORWARD (0), + .USE_ALMOST_FULL_IF (0), + .USE_ALMOST_EMPTY_IF (0) + ) onchip_memory_s1_translator_avalon_universal_slave_0_agent_rsp_fifo ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .in_data (onchip_memory_s1_translator_avalon_universal_slave_0_agent_rf_source_data), // in.data + .in_valid (onchip_memory_s1_translator_avalon_universal_slave_0_agent_rf_source_valid), // .valid + .in_ready (onchip_memory_s1_translator_avalon_universal_slave_0_agent_rf_source_ready), // .ready + .in_startofpacket (onchip_memory_s1_translator_avalon_universal_slave_0_agent_rf_source_startofpacket), // .startofpacket + .in_endofpacket (onchip_memory_s1_translator_avalon_universal_slave_0_agent_rf_source_endofpacket), // .endofpacket + .out_data (onchip_memory_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_data), // out.data + .out_valid (onchip_memory_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_valid), // .valid + .out_ready (onchip_memory_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_ready), // .ready + .out_startofpacket (onchip_memory_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_startofpacket), // .startofpacket + .out_endofpacket (onchip_memory_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_endofpacket), // .endofpacket + .csr_address (2'b00), // (terminated) + .csr_read (1'b0), // (terminated) + .csr_write (1'b0), // (terminated) + .csr_readdata (), // (terminated) + .csr_writedata (32'b00000000000000000000000000000000), // (terminated) + .almost_full_data (), // (terminated) + .almost_empty_data (), // (terminated) + .in_empty (1'b0), // (terminated) + .out_empty (), // (terminated) + .in_error (1'b0), // (terminated) + .out_error (), // (terminated) + .in_channel (1'b0), // (terminated) + .out_channel () // (terminated) + ); + + altera_merlin_slave_agent #( + .PKT_DATA_H (31), + .PKT_DATA_L (0), + .PKT_BEGIN_BURST (74), + .PKT_SYMBOL_W (8), + .PKT_BYTEEN_H (35), + .PKT_BYTEEN_L (32), + .PKT_ADDR_H (54), + .PKT_ADDR_L (36), + .PKT_TRANS_COMPRESSED_READ (55), + .PKT_TRANS_POSTED (56), + .PKT_TRANS_WRITE (57), + .PKT_TRANS_READ (58), + .PKT_TRANS_LOCK (59), + .PKT_SRC_ID_H (80), + .PKT_SRC_ID_L (76), + .PKT_DEST_ID_H (85), + .PKT_DEST_ID_L (81), + .PKT_BURSTWRAP_H (66), + .PKT_BURSTWRAP_L (64), + .PKT_BYTE_CNT_H (63), + .PKT_BYTE_CNT_L (61), + .PKT_PROTECTION_H (89), + .PKT_PROTECTION_L (87), + .PKT_RESPONSE_STATUS_H (95), + .PKT_RESPONSE_STATUS_L (94), + .PKT_BURST_SIZE_H (69), + .PKT_BURST_SIZE_L (67), + .ST_CHANNEL_W (18), + .ST_DATA_W (96), + .AVS_BURSTCOUNT_W (3), + .SUPPRESS_0_BYTEEN_CMD (0), + .PREVENT_FIFO_OVERFLOW (1), + .USE_READRESPONSE (0), + .USE_WRITERESPONSE (0) + ) leds_s1_translator_avalon_universal_slave_0_agent ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .m0_address (leds_s1_translator_avalon_universal_slave_0_agent_m0_address), // m0.address + .m0_burstcount (leds_s1_translator_avalon_universal_slave_0_agent_m0_burstcount), // .burstcount + .m0_byteenable (leds_s1_translator_avalon_universal_slave_0_agent_m0_byteenable), // .byteenable + .m0_debugaccess (leds_s1_translator_avalon_universal_slave_0_agent_m0_debugaccess), // .debugaccess + .m0_lock (leds_s1_translator_avalon_universal_slave_0_agent_m0_lock), // .lock + .m0_readdata (leds_s1_translator_avalon_universal_slave_0_agent_m0_readdata), // .readdata + .m0_readdatavalid (leds_s1_translator_avalon_universal_slave_0_agent_m0_readdatavalid), // .readdatavalid + .m0_read (leds_s1_translator_avalon_universal_slave_0_agent_m0_read), // .read + .m0_waitrequest (leds_s1_translator_avalon_universal_slave_0_agent_m0_waitrequest), // .waitrequest + .m0_writedata (leds_s1_translator_avalon_universal_slave_0_agent_m0_writedata), // .writedata + .m0_write (leds_s1_translator_avalon_universal_slave_0_agent_m0_write), // .write + .rp_endofpacket (leds_s1_translator_avalon_universal_slave_0_agent_rp_endofpacket), // rp.endofpacket + .rp_ready (leds_s1_translator_avalon_universal_slave_0_agent_rp_ready), // .ready + .rp_valid (leds_s1_translator_avalon_universal_slave_0_agent_rp_valid), // .valid + .rp_data (leds_s1_translator_avalon_universal_slave_0_agent_rp_data), // .data + .rp_startofpacket (leds_s1_translator_avalon_universal_slave_0_agent_rp_startofpacket), // .startofpacket + .cp_ready (cmd_xbar_demux_001_src2_ready), // cp.ready + .cp_valid (cmd_xbar_demux_001_src2_valid), // .valid + .cp_data (cmd_xbar_demux_001_src2_data), // .data + .cp_startofpacket (cmd_xbar_demux_001_src2_startofpacket), // .startofpacket + .cp_endofpacket (cmd_xbar_demux_001_src2_endofpacket), // .endofpacket + .cp_channel (cmd_xbar_demux_001_src2_channel), // .channel + .rf_sink_ready (leds_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_ready), // rf_sink.ready + .rf_sink_valid (leds_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_valid), // .valid + .rf_sink_startofpacket (leds_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_startofpacket), // .startofpacket + .rf_sink_endofpacket (leds_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_endofpacket), // .endofpacket + .rf_sink_data (leds_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_data), // .data + .rf_source_ready (leds_s1_translator_avalon_universal_slave_0_agent_rf_source_ready), // rf_source.ready + .rf_source_valid (leds_s1_translator_avalon_universal_slave_0_agent_rf_source_valid), // .valid + .rf_source_startofpacket (leds_s1_translator_avalon_universal_slave_0_agent_rf_source_startofpacket), // .startofpacket + .rf_source_endofpacket (leds_s1_translator_avalon_universal_slave_0_agent_rf_source_endofpacket), // .endofpacket + .rf_source_data (leds_s1_translator_avalon_universal_slave_0_agent_rf_source_data), // .data + .rdata_fifo_sink_ready (leds_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_ready), // rdata_fifo_sink.ready + .rdata_fifo_sink_valid (leds_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_valid), // .valid + .rdata_fifo_sink_data (leds_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_data), // .data + .rdata_fifo_src_ready (leds_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_ready), // rdata_fifo_src.ready + .rdata_fifo_src_valid (leds_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_valid), // .valid + .rdata_fifo_src_data (leds_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_data), // .data + .m0_response (2'b00), // (terminated) + .m0_writeresponserequest (), // (terminated) + .m0_writeresponsevalid (1'b0) // (terminated) + ); + + altera_avalon_sc_fifo #( + .SYMBOLS_PER_BEAT (1), + .BITS_PER_SYMBOL (97), + .FIFO_DEPTH (2), + .CHANNEL_WIDTH (0), + .ERROR_WIDTH (0), + .USE_PACKETS (1), + .USE_FILL_LEVEL (0), + .EMPTY_LATENCY (1), + .USE_MEMORY_BLOCKS (0), + .USE_STORE_FORWARD (0), + .USE_ALMOST_FULL_IF (0), + .USE_ALMOST_EMPTY_IF (0) + ) leds_s1_translator_avalon_universal_slave_0_agent_rsp_fifo ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .in_data (leds_s1_translator_avalon_universal_slave_0_agent_rf_source_data), // in.data + .in_valid (leds_s1_translator_avalon_universal_slave_0_agent_rf_source_valid), // .valid + .in_ready (leds_s1_translator_avalon_universal_slave_0_agent_rf_source_ready), // .ready + .in_startofpacket (leds_s1_translator_avalon_universal_slave_0_agent_rf_source_startofpacket), // .startofpacket + .in_endofpacket (leds_s1_translator_avalon_universal_slave_0_agent_rf_source_endofpacket), // .endofpacket + .out_data (leds_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_data), // out.data + .out_valid (leds_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_valid), // .valid + .out_ready (leds_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_ready), // .ready + .out_startofpacket (leds_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_startofpacket), // .startofpacket + .out_endofpacket (leds_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_endofpacket), // .endofpacket + .csr_address (2'b00), // (terminated) + .csr_read (1'b0), // (terminated) + .csr_write (1'b0), // (terminated) + .csr_readdata (), // (terminated) + .csr_writedata (32'b00000000000000000000000000000000), // (terminated) + .almost_full_data (), // (terminated) + .almost_empty_data (), // (terminated) + .in_empty (1'b0), // (terminated) + .out_empty (), // (terminated) + .in_error (1'b0), // (terminated) + .out_error (), // (terminated) + .in_channel (1'b0), // (terminated) + .out_channel () // (terminated) + ); + + altera_merlin_slave_agent #( + .PKT_DATA_H (31), + .PKT_DATA_L (0), + .PKT_BEGIN_BURST (74), + .PKT_SYMBOL_W (8), + .PKT_BYTEEN_H (35), + .PKT_BYTEEN_L (32), + .PKT_ADDR_H (54), + .PKT_ADDR_L (36), + .PKT_TRANS_COMPRESSED_READ (55), + .PKT_TRANS_POSTED (56), + .PKT_TRANS_WRITE (57), + .PKT_TRANS_READ (58), + .PKT_TRANS_LOCK (59), + .PKT_SRC_ID_H (80), + .PKT_SRC_ID_L (76), + .PKT_DEST_ID_H (85), + .PKT_DEST_ID_L (81), + .PKT_BURSTWRAP_H (66), + .PKT_BURSTWRAP_L (64), + .PKT_BYTE_CNT_H (63), + .PKT_BYTE_CNT_L (61), + .PKT_PROTECTION_H (89), + .PKT_PROTECTION_L (87), + .PKT_RESPONSE_STATUS_H (95), + .PKT_RESPONSE_STATUS_L (94), + .PKT_BURST_SIZE_H (69), + .PKT_BURST_SIZE_L (67), + .ST_CHANNEL_W (18), + .ST_DATA_W (96), + .AVS_BURSTCOUNT_W (3), + .SUPPRESS_0_BYTEEN_CMD (0), + .PREVENT_FIFO_OVERFLOW (1), + .USE_READRESPONSE (0), + .USE_WRITERESPONSE (0) + ) jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .m0_address (jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_m0_address), // m0.address + .m0_burstcount (jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_m0_burstcount), // .burstcount + .m0_byteenable (jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_m0_byteenable), // .byteenable + .m0_debugaccess (jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_m0_debugaccess), // .debugaccess + .m0_lock (jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_m0_lock), // .lock + .m0_readdata (jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_m0_readdata), // .readdata + .m0_readdatavalid (jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_m0_readdatavalid), // .readdatavalid + .m0_read (jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_m0_read), // .read + .m0_waitrequest (jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_m0_waitrequest), // .waitrequest + .m0_writedata (jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_m0_writedata), // .writedata + .m0_write (jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_m0_write), // .write + .rp_endofpacket (jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rp_endofpacket), // rp.endofpacket + .rp_ready (jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rp_ready), // .ready + .rp_valid (jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rp_valid), // .valid + .rp_data (jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rp_data), // .data + .rp_startofpacket (jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rp_startofpacket), // .startofpacket + .cp_ready (cmd_xbar_demux_001_src3_ready), // cp.ready + .cp_valid (cmd_xbar_demux_001_src3_valid), // .valid + .cp_data (cmd_xbar_demux_001_src3_data), // .data + .cp_startofpacket (cmd_xbar_demux_001_src3_startofpacket), // .startofpacket + .cp_endofpacket (cmd_xbar_demux_001_src3_endofpacket), // .endofpacket + .cp_channel (cmd_xbar_demux_001_src3_channel), // .channel + .rf_sink_ready (jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rsp_fifo_out_ready), // rf_sink.ready + .rf_sink_valid (jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rsp_fifo_out_valid), // .valid + .rf_sink_startofpacket (jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rsp_fifo_out_startofpacket), // .startofpacket + .rf_sink_endofpacket (jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rsp_fifo_out_endofpacket), // .endofpacket + .rf_sink_data (jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rsp_fifo_out_data), // .data + .rf_source_ready (jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rf_source_ready), // rf_source.ready + .rf_source_valid (jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rf_source_valid), // .valid + .rf_source_startofpacket (jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rf_source_startofpacket), // .startofpacket + .rf_source_endofpacket (jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rf_source_endofpacket), // .endofpacket + .rf_source_data (jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rf_source_data), // .data + .rdata_fifo_sink_ready (jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rdata_fifo_src_ready), // rdata_fifo_sink.ready + .rdata_fifo_sink_valid (jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rdata_fifo_src_valid), // .valid + .rdata_fifo_sink_data (jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rdata_fifo_src_data), // .data + .rdata_fifo_src_ready (jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rdata_fifo_src_ready), // rdata_fifo_src.ready + .rdata_fifo_src_valid (jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rdata_fifo_src_valid), // .valid + .rdata_fifo_src_data (jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rdata_fifo_src_data), // .data + .m0_response (2'b00), // (terminated) + .m0_writeresponserequest (), // (terminated) + .m0_writeresponsevalid (1'b0) // (terminated) + ); + + altera_avalon_sc_fifo #( + .SYMBOLS_PER_BEAT (1), + .BITS_PER_SYMBOL (97), + .FIFO_DEPTH (2), + .CHANNEL_WIDTH (0), + .ERROR_WIDTH (0), + .USE_PACKETS (1), + .USE_FILL_LEVEL (0), + .EMPTY_LATENCY (1), + .USE_MEMORY_BLOCKS (0), + .USE_STORE_FORWARD (0), + .USE_ALMOST_FULL_IF (0), + .USE_ALMOST_EMPTY_IF (0) + ) jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rsp_fifo ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .in_data (jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rf_source_data), // in.data + .in_valid (jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rf_source_valid), // .valid + .in_ready (jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rf_source_ready), // .ready + .in_startofpacket (jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rf_source_startofpacket), // .startofpacket + .in_endofpacket (jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rf_source_endofpacket), // .endofpacket + .out_data (jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rsp_fifo_out_data), // out.data + .out_valid (jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rsp_fifo_out_valid), // .valid + .out_ready (jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rsp_fifo_out_ready), // .ready + .out_startofpacket (jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rsp_fifo_out_startofpacket), // .startofpacket + .out_endofpacket (jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rsp_fifo_out_endofpacket), // .endofpacket + .csr_address (2'b00), // (terminated) + .csr_read (1'b0), // (terminated) + .csr_write (1'b0), // (terminated) + .csr_readdata (), // (terminated) + .csr_writedata (32'b00000000000000000000000000000000), // (terminated) + .almost_full_data (), // (terminated) + .almost_empty_data (), // (terminated) + .in_empty (1'b0), // (terminated) + .out_empty (), // (terminated) + .in_error (1'b0), // (terminated) + .out_error (), // (terminated) + .in_channel (1'b0), // (terminated) + .out_channel () // (terminated) + ); + + altera_merlin_slave_agent #( + .PKT_DATA_H (31), + .PKT_DATA_L (0), + .PKT_BEGIN_BURST (74), + .PKT_SYMBOL_W (8), + .PKT_BYTEEN_H (35), + .PKT_BYTEEN_L (32), + .PKT_ADDR_H (54), + .PKT_ADDR_L (36), + .PKT_TRANS_COMPRESSED_READ (55), + .PKT_TRANS_POSTED (56), + .PKT_TRANS_WRITE (57), + .PKT_TRANS_READ (58), + .PKT_TRANS_LOCK (59), + .PKT_SRC_ID_H (80), + .PKT_SRC_ID_L (76), + .PKT_DEST_ID_H (85), + .PKT_DEST_ID_L (81), + .PKT_BURSTWRAP_H (66), + .PKT_BURSTWRAP_L (64), + .PKT_BYTE_CNT_H (63), + .PKT_BYTE_CNT_L (61), + .PKT_PROTECTION_H (89), + .PKT_PROTECTION_L (87), + .PKT_RESPONSE_STATUS_H (95), + .PKT_RESPONSE_STATUS_L (94), + .PKT_BURST_SIZE_H (69), + .PKT_BURST_SIZE_L (67), + .ST_CHANNEL_W (18), + .ST_DATA_W (96), + .AVS_BURSTCOUNT_W (3), + .SUPPRESS_0_BYTEEN_CMD (0), + .PREVENT_FIFO_OVERFLOW (1), + .USE_READRESPONSE (0), + .USE_WRITERESPONSE (0) + ) ledrs_s1_translator_avalon_universal_slave_0_agent ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .m0_address (ledrs_s1_translator_avalon_universal_slave_0_agent_m0_address), // m0.address + .m0_burstcount (ledrs_s1_translator_avalon_universal_slave_0_agent_m0_burstcount), // .burstcount + .m0_byteenable (ledrs_s1_translator_avalon_universal_slave_0_agent_m0_byteenable), // .byteenable + .m0_debugaccess (ledrs_s1_translator_avalon_universal_slave_0_agent_m0_debugaccess), // .debugaccess + .m0_lock (ledrs_s1_translator_avalon_universal_slave_0_agent_m0_lock), // .lock + .m0_readdata (ledrs_s1_translator_avalon_universal_slave_0_agent_m0_readdata), // .readdata + .m0_readdatavalid (ledrs_s1_translator_avalon_universal_slave_0_agent_m0_readdatavalid), // .readdatavalid + .m0_read (ledrs_s1_translator_avalon_universal_slave_0_agent_m0_read), // .read + .m0_waitrequest (ledrs_s1_translator_avalon_universal_slave_0_agent_m0_waitrequest), // .waitrequest + .m0_writedata (ledrs_s1_translator_avalon_universal_slave_0_agent_m0_writedata), // .writedata + .m0_write (ledrs_s1_translator_avalon_universal_slave_0_agent_m0_write), // .write + .rp_endofpacket (ledrs_s1_translator_avalon_universal_slave_0_agent_rp_endofpacket), // rp.endofpacket + .rp_ready (ledrs_s1_translator_avalon_universal_slave_0_agent_rp_ready), // .ready + .rp_valid (ledrs_s1_translator_avalon_universal_slave_0_agent_rp_valid), // .valid + .rp_data (ledrs_s1_translator_avalon_universal_slave_0_agent_rp_data), // .data + .rp_startofpacket (ledrs_s1_translator_avalon_universal_slave_0_agent_rp_startofpacket), // .startofpacket + .cp_ready (cmd_xbar_demux_001_src4_ready), // cp.ready + .cp_valid (cmd_xbar_demux_001_src4_valid), // .valid + .cp_data (cmd_xbar_demux_001_src4_data), // .data + .cp_startofpacket (cmd_xbar_demux_001_src4_startofpacket), // .startofpacket + .cp_endofpacket (cmd_xbar_demux_001_src4_endofpacket), // .endofpacket + .cp_channel (cmd_xbar_demux_001_src4_channel), // .channel + .rf_sink_ready (ledrs_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_ready), // rf_sink.ready + .rf_sink_valid (ledrs_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_valid), // .valid + .rf_sink_startofpacket (ledrs_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_startofpacket), // .startofpacket + .rf_sink_endofpacket (ledrs_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_endofpacket), // .endofpacket + .rf_sink_data (ledrs_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_data), // .data + .rf_source_ready (ledrs_s1_translator_avalon_universal_slave_0_agent_rf_source_ready), // rf_source.ready + .rf_source_valid (ledrs_s1_translator_avalon_universal_slave_0_agent_rf_source_valid), // .valid + .rf_source_startofpacket (ledrs_s1_translator_avalon_universal_slave_0_agent_rf_source_startofpacket), // .startofpacket + .rf_source_endofpacket (ledrs_s1_translator_avalon_universal_slave_0_agent_rf_source_endofpacket), // .endofpacket + .rf_source_data (ledrs_s1_translator_avalon_universal_slave_0_agent_rf_source_data), // .data + .rdata_fifo_sink_ready (ledrs_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_ready), // rdata_fifo_sink.ready + .rdata_fifo_sink_valid (ledrs_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_valid), // .valid + .rdata_fifo_sink_data (ledrs_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_data), // .data + .rdata_fifo_src_ready (ledrs_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_ready), // rdata_fifo_src.ready + .rdata_fifo_src_valid (ledrs_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_valid), // .valid + .rdata_fifo_src_data (ledrs_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_data), // .data + .m0_response (2'b00), // (terminated) + .m0_writeresponserequest (), // (terminated) + .m0_writeresponsevalid (1'b0) // (terminated) + ); + + altera_avalon_sc_fifo #( + .SYMBOLS_PER_BEAT (1), + .BITS_PER_SYMBOL (97), + .FIFO_DEPTH (2), + .CHANNEL_WIDTH (0), + .ERROR_WIDTH (0), + .USE_PACKETS (1), + .USE_FILL_LEVEL (0), + .EMPTY_LATENCY (1), + .USE_MEMORY_BLOCKS (0), + .USE_STORE_FORWARD (0), + .USE_ALMOST_FULL_IF (0), + .USE_ALMOST_EMPTY_IF (0) + ) ledrs_s1_translator_avalon_universal_slave_0_agent_rsp_fifo ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .in_data (ledrs_s1_translator_avalon_universal_slave_0_agent_rf_source_data), // in.data + .in_valid (ledrs_s1_translator_avalon_universal_slave_0_agent_rf_source_valid), // .valid + .in_ready (ledrs_s1_translator_avalon_universal_slave_0_agent_rf_source_ready), // .ready + .in_startofpacket (ledrs_s1_translator_avalon_universal_slave_0_agent_rf_source_startofpacket), // .startofpacket + .in_endofpacket (ledrs_s1_translator_avalon_universal_slave_0_agent_rf_source_endofpacket), // .endofpacket + .out_data (ledrs_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_data), // out.data + .out_valid (ledrs_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_valid), // .valid + .out_ready (ledrs_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_ready), // .ready + .out_startofpacket (ledrs_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_startofpacket), // .startofpacket + .out_endofpacket (ledrs_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_endofpacket), // .endofpacket + .csr_address (2'b00), // (terminated) + .csr_read (1'b0), // (terminated) + .csr_write (1'b0), // (terminated) + .csr_readdata (), // (terminated) + .csr_writedata (32'b00000000000000000000000000000000), // (terminated) + .almost_full_data (), // (terminated) + .almost_empty_data (), // (terminated) + .in_empty (1'b0), // (terminated) + .out_empty (), // (terminated) + .in_error (1'b0), // (terminated) + .out_error (), // (terminated) + .in_channel (1'b0), // (terminated) + .out_channel () // (terminated) + ); + + altera_merlin_slave_agent #( + .PKT_DATA_H (31), + .PKT_DATA_L (0), + .PKT_BEGIN_BURST (74), + .PKT_SYMBOL_W (8), + .PKT_BYTEEN_H (35), + .PKT_BYTEEN_L (32), + .PKT_ADDR_H (54), + .PKT_ADDR_L (36), + .PKT_TRANS_COMPRESSED_READ (55), + .PKT_TRANS_POSTED (56), + .PKT_TRANS_WRITE (57), + .PKT_TRANS_READ (58), + .PKT_TRANS_LOCK (59), + .PKT_SRC_ID_H (80), + .PKT_SRC_ID_L (76), + .PKT_DEST_ID_H (85), + .PKT_DEST_ID_L (81), + .PKT_BURSTWRAP_H (66), + .PKT_BURSTWRAP_L (64), + .PKT_BYTE_CNT_H (63), + .PKT_BYTE_CNT_L (61), + .PKT_PROTECTION_H (89), + .PKT_PROTECTION_L (87), + .PKT_RESPONSE_STATUS_H (95), + .PKT_RESPONSE_STATUS_L (94), + .PKT_BURST_SIZE_H (69), + .PKT_BURST_SIZE_L (67), + .ST_CHANNEL_W (18), + .ST_DATA_W (96), + .AVS_BURSTCOUNT_W (3), + .SUPPRESS_0_BYTEEN_CMD (0), + .PREVENT_FIFO_OVERFLOW (1), + .USE_READRESPONSE (0), + .USE_WRITERESPONSE (0) + ) switches_s1_translator_avalon_universal_slave_0_agent ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .m0_address (switches_s1_translator_avalon_universal_slave_0_agent_m0_address), // m0.address + .m0_burstcount (switches_s1_translator_avalon_universal_slave_0_agent_m0_burstcount), // .burstcount + .m0_byteenable (switches_s1_translator_avalon_universal_slave_0_agent_m0_byteenable), // .byteenable + .m0_debugaccess (switches_s1_translator_avalon_universal_slave_0_agent_m0_debugaccess), // .debugaccess + .m0_lock (switches_s1_translator_avalon_universal_slave_0_agent_m0_lock), // .lock + .m0_readdata (switches_s1_translator_avalon_universal_slave_0_agent_m0_readdata), // .readdata + .m0_readdatavalid (switches_s1_translator_avalon_universal_slave_0_agent_m0_readdatavalid), // .readdatavalid + .m0_read (switches_s1_translator_avalon_universal_slave_0_agent_m0_read), // .read + .m0_waitrequest (switches_s1_translator_avalon_universal_slave_0_agent_m0_waitrequest), // .waitrequest + .m0_writedata (switches_s1_translator_avalon_universal_slave_0_agent_m0_writedata), // .writedata + .m0_write (switches_s1_translator_avalon_universal_slave_0_agent_m0_write), // .write + .rp_endofpacket (switches_s1_translator_avalon_universal_slave_0_agent_rp_endofpacket), // rp.endofpacket + .rp_ready (switches_s1_translator_avalon_universal_slave_0_agent_rp_ready), // .ready + .rp_valid (switches_s1_translator_avalon_universal_slave_0_agent_rp_valid), // .valid + .rp_data (switches_s1_translator_avalon_universal_slave_0_agent_rp_data), // .data + .rp_startofpacket (switches_s1_translator_avalon_universal_slave_0_agent_rp_startofpacket), // .startofpacket + .cp_ready (cmd_xbar_demux_001_src5_ready), // cp.ready + .cp_valid (cmd_xbar_demux_001_src5_valid), // .valid + .cp_data (cmd_xbar_demux_001_src5_data), // .data + .cp_startofpacket (cmd_xbar_demux_001_src5_startofpacket), // .startofpacket + .cp_endofpacket (cmd_xbar_demux_001_src5_endofpacket), // .endofpacket + .cp_channel (cmd_xbar_demux_001_src5_channel), // .channel + .rf_sink_ready (switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_ready), // rf_sink.ready + .rf_sink_valid (switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_valid), // .valid + .rf_sink_startofpacket (switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_startofpacket), // .startofpacket + .rf_sink_endofpacket (switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_endofpacket), // .endofpacket + .rf_sink_data (switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_data), // .data + .rf_source_ready (switches_s1_translator_avalon_universal_slave_0_agent_rf_source_ready), // rf_source.ready + .rf_source_valid (switches_s1_translator_avalon_universal_slave_0_agent_rf_source_valid), // .valid + .rf_source_startofpacket (switches_s1_translator_avalon_universal_slave_0_agent_rf_source_startofpacket), // .startofpacket + .rf_source_endofpacket (switches_s1_translator_avalon_universal_slave_0_agent_rf_source_endofpacket), // .endofpacket + .rf_source_data (switches_s1_translator_avalon_universal_slave_0_agent_rf_source_data), // .data + .rdata_fifo_sink_ready (switches_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_ready), // rdata_fifo_sink.ready + .rdata_fifo_sink_valid (switches_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_valid), // .valid + .rdata_fifo_sink_data (switches_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_data), // .data + .rdata_fifo_src_ready (switches_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_ready), // rdata_fifo_src.ready + .rdata_fifo_src_valid (switches_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_valid), // .valid + .rdata_fifo_src_data (switches_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_data), // .data + .m0_response (2'b00), // (terminated) + .m0_writeresponserequest (), // (terminated) + .m0_writeresponsevalid (1'b0) // (terminated) + ); + + altera_avalon_sc_fifo #( + .SYMBOLS_PER_BEAT (1), + .BITS_PER_SYMBOL (97), + .FIFO_DEPTH (2), + .CHANNEL_WIDTH (0), + .ERROR_WIDTH (0), + .USE_PACKETS (1), + .USE_FILL_LEVEL (0), + .EMPTY_LATENCY (1), + .USE_MEMORY_BLOCKS (0), + .USE_STORE_FORWARD (0), + .USE_ALMOST_FULL_IF (0), + .USE_ALMOST_EMPTY_IF (0) + ) switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .in_data (switches_s1_translator_avalon_universal_slave_0_agent_rf_source_data), // in.data + .in_valid (switches_s1_translator_avalon_universal_slave_0_agent_rf_source_valid), // .valid + .in_ready (switches_s1_translator_avalon_universal_slave_0_agent_rf_source_ready), // .ready + .in_startofpacket (switches_s1_translator_avalon_universal_slave_0_agent_rf_source_startofpacket), // .startofpacket + .in_endofpacket (switches_s1_translator_avalon_universal_slave_0_agent_rf_source_endofpacket), // .endofpacket + .out_data (switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_data), // out.data + .out_valid (switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_valid), // .valid + .out_ready (switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_ready), // .ready + .out_startofpacket (switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_startofpacket), // .startofpacket + .out_endofpacket (switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_endofpacket), // .endofpacket + .csr_address (2'b00), // (terminated) + .csr_read (1'b0), // (terminated) + .csr_write (1'b0), // (terminated) + .csr_readdata (), // (terminated) + .csr_writedata (32'b00000000000000000000000000000000), // (terminated) + .almost_full_data (), // (terminated) + .almost_empty_data (), // (terminated) + .in_empty (1'b0), // (terminated) + .out_empty (), // (terminated) + .in_error (1'b0), // (terminated) + .out_error (), // (terminated) + .in_channel (1'b0), // (terminated) + .out_channel () // (terminated) + ); + + altera_merlin_slave_agent #( + .PKT_DATA_H (31), + .PKT_DATA_L (0), + .PKT_BEGIN_BURST (74), + .PKT_SYMBOL_W (8), + .PKT_BYTEEN_H (35), + .PKT_BYTEEN_L (32), + .PKT_ADDR_H (54), + .PKT_ADDR_L (36), + .PKT_TRANS_COMPRESSED_READ (55), + .PKT_TRANS_POSTED (56), + .PKT_TRANS_WRITE (57), + .PKT_TRANS_READ (58), + .PKT_TRANS_LOCK (59), + .PKT_SRC_ID_H (80), + .PKT_SRC_ID_L (76), + .PKT_DEST_ID_H (85), + .PKT_DEST_ID_L (81), + .PKT_BURSTWRAP_H (66), + .PKT_BURSTWRAP_L (64), + .PKT_BYTE_CNT_H (63), + .PKT_BYTE_CNT_L (61), + .PKT_PROTECTION_H (89), + .PKT_PROTECTION_L (87), + .PKT_RESPONSE_STATUS_H (95), + .PKT_RESPONSE_STATUS_L (94), + .PKT_BURST_SIZE_H (69), + .PKT_BURST_SIZE_L (67), + .ST_CHANNEL_W (18), + .ST_DATA_W (96), + .AVS_BURSTCOUNT_W (3), + .SUPPRESS_0_BYTEEN_CMD (0), + .PREVENT_FIFO_OVERFLOW (1), + .USE_READRESPONSE (0), + .USE_WRITERESPONSE (0) + ) push_switches_s1_translator_avalon_universal_slave_0_agent ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .m0_address (push_switches_s1_translator_avalon_universal_slave_0_agent_m0_address), // m0.address + .m0_burstcount (push_switches_s1_translator_avalon_universal_slave_0_agent_m0_burstcount), // .burstcount + .m0_byteenable (push_switches_s1_translator_avalon_universal_slave_0_agent_m0_byteenable), // .byteenable + .m0_debugaccess (push_switches_s1_translator_avalon_universal_slave_0_agent_m0_debugaccess), // .debugaccess + .m0_lock (push_switches_s1_translator_avalon_universal_slave_0_agent_m0_lock), // .lock + .m0_readdata (push_switches_s1_translator_avalon_universal_slave_0_agent_m0_readdata), // .readdata + .m0_readdatavalid (push_switches_s1_translator_avalon_universal_slave_0_agent_m0_readdatavalid), // .readdatavalid + .m0_read (push_switches_s1_translator_avalon_universal_slave_0_agent_m0_read), // .read + .m0_waitrequest (push_switches_s1_translator_avalon_universal_slave_0_agent_m0_waitrequest), // .waitrequest + .m0_writedata (push_switches_s1_translator_avalon_universal_slave_0_agent_m0_writedata), // .writedata + .m0_write (push_switches_s1_translator_avalon_universal_slave_0_agent_m0_write), // .write + .rp_endofpacket (push_switches_s1_translator_avalon_universal_slave_0_agent_rp_endofpacket), // rp.endofpacket + .rp_ready (push_switches_s1_translator_avalon_universal_slave_0_agent_rp_ready), // .ready + .rp_valid (push_switches_s1_translator_avalon_universal_slave_0_agent_rp_valid), // .valid + .rp_data (push_switches_s1_translator_avalon_universal_slave_0_agent_rp_data), // .data + .rp_startofpacket (push_switches_s1_translator_avalon_universal_slave_0_agent_rp_startofpacket), // .startofpacket + .cp_ready (cmd_xbar_demux_001_src6_ready), // cp.ready + .cp_valid (cmd_xbar_demux_001_src6_valid), // .valid + .cp_data (cmd_xbar_demux_001_src6_data), // .data + .cp_startofpacket (cmd_xbar_demux_001_src6_startofpacket), // .startofpacket + .cp_endofpacket (cmd_xbar_demux_001_src6_endofpacket), // .endofpacket + .cp_channel (cmd_xbar_demux_001_src6_channel), // .channel + .rf_sink_ready (push_switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_ready), // rf_sink.ready + .rf_sink_valid (push_switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_valid), // .valid + .rf_sink_startofpacket (push_switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_startofpacket), // .startofpacket + .rf_sink_endofpacket (push_switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_endofpacket), // .endofpacket + .rf_sink_data (push_switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_data), // .data + .rf_source_ready (push_switches_s1_translator_avalon_universal_slave_0_agent_rf_source_ready), // rf_source.ready + .rf_source_valid (push_switches_s1_translator_avalon_universal_slave_0_agent_rf_source_valid), // .valid + .rf_source_startofpacket (push_switches_s1_translator_avalon_universal_slave_0_agent_rf_source_startofpacket), // .startofpacket + .rf_source_endofpacket (push_switches_s1_translator_avalon_universal_slave_0_agent_rf_source_endofpacket), // .endofpacket + .rf_source_data (push_switches_s1_translator_avalon_universal_slave_0_agent_rf_source_data), // .data + .rdata_fifo_sink_ready (push_switches_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_ready), // rdata_fifo_sink.ready + .rdata_fifo_sink_valid (push_switches_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_valid), // .valid + .rdata_fifo_sink_data (push_switches_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_data), // .data + .rdata_fifo_src_ready (push_switches_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_ready), // rdata_fifo_src.ready + .rdata_fifo_src_valid (push_switches_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_valid), // .valid + .rdata_fifo_src_data (push_switches_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_data), // .data + .m0_response (2'b00), // (terminated) + .m0_writeresponserequest (), // (terminated) + .m0_writeresponsevalid (1'b0) // (terminated) + ); + + altera_avalon_sc_fifo #( + .SYMBOLS_PER_BEAT (1), + .BITS_PER_SYMBOL (97), + .FIFO_DEPTH (2), + .CHANNEL_WIDTH (0), + .ERROR_WIDTH (0), + .USE_PACKETS (1), + .USE_FILL_LEVEL (0), + .EMPTY_LATENCY (1), + .USE_MEMORY_BLOCKS (0), + .USE_STORE_FORWARD (0), + .USE_ALMOST_FULL_IF (0), + .USE_ALMOST_EMPTY_IF (0) + ) push_switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .in_data (push_switches_s1_translator_avalon_universal_slave_0_agent_rf_source_data), // in.data + .in_valid (push_switches_s1_translator_avalon_universal_slave_0_agent_rf_source_valid), // .valid + .in_ready (push_switches_s1_translator_avalon_universal_slave_0_agent_rf_source_ready), // .ready + .in_startofpacket (push_switches_s1_translator_avalon_universal_slave_0_agent_rf_source_startofpacket), // .startofpacket + .in_endofpacket (push_switches_s1_translator_avalon_universal_slave_0_agent_rf_source_endofpacket), // .endofpacket + .out_data (push_switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_data), // out.data + .out_valid (push_switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_valid), // .valid + .out_ready (push_switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_ready), // .ready + .out_startofpacket (push_switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_startofpacket), // .startofpacket + .out_endofpacket (push_switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_endofpacket), // .endofpacket + .csr_address (2'b00), // (terminated) + .csr_read (1'b0), // (terminated) + .csr_write (1'b0), // (terminated) + .csr_readdata (), // (terminated) + .csr_writedata (32'b00000000000000000000000000000000), // (terminated) + .almost_full_data (), // (terminated) + .almost_empty_data (), // (terminated) + .in_empty (1'b0), // (terminated) + .out_empty (), // (terminated) + .in_error (1'b0), // (terminated) + .out_error (), // (terminated) + .in_channel (1'b0), // (terminated) + .out_channel () // (terminated) + ); + + altera_merlin_slave_agent #( + .PKT_DATA_H (31), + .PKT_DATA_L (0), + .PKT_BEGIN_BURST (74), + .PKT_SYMBOL_W (8), + .PKT_BYTEEN_H (35), + .PKT_BYTEEN_L (32), + .PKT_ADDR_H (54), + .PKT_ADDR_L (36), + .PKT_TRANS_COMPRESSED_READ (55), + .PKT_TRANS_POSTED (56), + .PKT_TRANS_WRITE (57), + .PKT_TRANS_READ (58), + .PKT_TRANS_LOCK (59), + .PKT_SRC_ID_H (80), + .PKT_SRC_ID_L (76), + .PKT_DEST_ID_H (85), + .PKT_DEST_ID_L (81), + .PKT_BURSTWRAP_H (66), + .PKT_BURSTWRAP_L (64), + .PKT_BYTE_CNT_H (63), + .PKT_BYTE_CNT_L (61), + .PKT_PROTECTION_H (89), + .PKT_PROTECTION_L (87), + .PKT_RESPONSE_STATUS_H (95), + .PKT_RESPONSE_STATUS_L (94), + .PKT_BURST_SIZE_H (69), + .PKT_BURST_SIZE_L (67), + .ST_CHANNEL_W (18), + .ST_DATA_W (96), + .AVS_BURSTCOUNT_W (3), + .SUPPRESS_0_BYTEEN_CMD (0), + .PREVENT_FIFO_OVERFLOW (1), + .USE_READRESPONSE (0), + .USE_WRITERESPONSE (0) + ) hex0_s1_translator_avalon_universal_slave_0_agent ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .m0_address (hex0_s1_translator_avalon_universal_slave_0_agent_m0_address), // m0.address + .m0_burstcount (hex0_s1_translator_avalon_universal_slave_0_agent_m0_burstcount), // .burstcount + .m0_byteenable (hex0_s1_translator_avalon_universal_slave_0_agent_m0_byteenable), // .byteenable + .m0_debugaccess (hex0_s1_translator_avalon_universal_slave_0_agent_m0_debugaccess), // .debugaccess + .m0_lock (hex0_s1_translator_avalon_universal_slave_0_agent_m0_lock), // .lock + .m0_readdata (hex0_s1_translator_avalon_universal_slave_0_agent_m0_readdata), // .readdata + .m0_readdatavalid (hex0_s1_translator_avalon_universal_slave_0_agent_m0_readdatavalid), // .readdatavalid + .m0_read (hex0_s1_translator_avalon_universal_slave_0_agent_m0_read), // .read + .m0_waitrequest (hex0_s1_translator_avalon_universal_slave_0_agent_m0_waitrequest), // .waitrequest + .m0_writedata (hex0_s1_translator_avalon_universal_slave_0_agent_m0_writedata), // .writedata + .m0_write (hex0_s1_translator_avalon_universal_slave_0_agent_m0_write), // .write + .rp_endofpacket (hex0_s1_translator_avalon_universal_slave_0_agent_rp_endofpacket), // rp.endofpacket + .rp_ready (hex0_s1_translator_avalon_universal_slave_0_agent_rp_ready), // .ready + .rp_valid (hex0_s1_translator_avalon_universal_slave_0_agent_rp_valid), // .valid + .rp_data (hex0_s1_translator_avalon_universal_slave_0_agent_rp_data), // .data + .rp_startofpacket (hex0_s1_translator_avalon_universal_slave_0_agent_rp_startofpacket), // .startofpacket + .cp_ready (cmd_xbar_demux_001_src7_ready), // cp.ready + .cp_valid (cmd_xbar_demux_001_src7_valid), // .valid + .cp_data (cmd_xbar_demux_001_src7_data), // .data + .cp_startofpacket (cmd_xbar_demux_001_src7_startofpacket), // .startofpacket + .cp_endofpacket (cmd_xbar_demux_001_src7_endofpacket), // .endofpacket + .cp_channel (cmd_xbar_demux_001_src7_channel), // .channel + .rf_sink_ready (hex0_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_ready), // rf_sink.ready + .rf_sink_valid (hex0_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_valid), // .valid + .rf_sink_startofpacket (hex0_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_startofpacket), // .startofpacket + .rf_sink_endofpacket (hex0_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_endofpacket), // .endofpacket + .rf_sink_data (hex0_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_data), // .data + .rf_source_ready (hex0_s1_translator_avalon_universal_slave_0_agent_rf_source_ready), // rf_source.ready + .rf_source_valid (hex0_s1_translator_avalon_universal_slave_0_agent_rf_source_valid), // .valid + .rf_source_startofpacket (hex0_s1_translator_avalon_universal_slave_0_agent_rf_source_startofpacket), // .startofpacket + .rf_source_endofpacket (hex0_s1_translator_avalon_universal_slave_0_agent_rf_source_endofpacket), // .endofpacket + .rf_source_data (hex0_s1_translator_avalon_universal_slave_0_agent_rf_source_data), // .data + .rdata_fifo_sink_ready (hex0_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_ready), // rdata_fifo_sink.ready + .rdata_fifo_sink_valid (hex0_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_valid), // .valid + .rdata_fifo_sink_data (hex0_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_data), // .data + .rdata_fifo_src_ready (hex0_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_ready), // rdata_fifo_src.ready + .rdata_fifo_src_valid (hex0_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_valid), // .valid + .rdata_fifo_src_data (hex0_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_data), // .data + .m0_response (2'b00), // (terminated) + .m0_writeresponserequest (), // (terminated) + .m0_writeresponsevalid (1'b0) // (terminated) + ); + + altera_avalon_sc_fifo #( + .SYMBOLS_PER_BEAT (1), + .BITS_PER_SYMBOL (97), + .FIFO_DEPTH (2), + .CHANNEL_WIDTH (0), + .ERROR_WIDTH (0), + .USE_PACKETS (1), + .USE_FILL_LEVEL (0), + .EMPTY_LATENCY (1), + .USE_MEMORY_BLOCKS (0), + .USE_STORE_FORWARD (0), + .USE_ALMOST_FULL_IF (0), + .USE_ALMOST_EMPTY_IF (0) + ) hex0_s1_translator_avalon_universal_slave_0_agent_rsp_fifo ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .in_data (hex0_s1_translator_avalon_universal_slave_0_agent_rf_source_data), // in.data + .in_valid (hex0_s1_translator_avalon_universal_slave_0_agent_rf_source_valid), // .valid + .in_ready (hex0_s1_translator_avalon_universal_slave_0_agent_rf_source_ready), // .ready + .in_startofpacket (hex0_s1_translator_avalon_universal_slave_0_agent_rf_source_startofpacket), // .startofpacket + .in_endofpacket (hex0_s1_translator_avalon_universal_slave_0_agent_rf_source_endofpacket), // .endofpacket + .out_data (hex0_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_data), // out.data + .out_valid (hex0_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_valid), // .valid + .out_ready (hex0_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_ready), // .ready + .out_startofpacket (hex0_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_startofpacket), // .startofpacket + .out_endofpacket (hex0_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_endofpacket), // .endofpacket + .csr_address (2'b00), // (terminated) + .csr_read (1'b0), // (terminated) + .csr_write (1'b0), // (terminated) + .csr_readdata (), // (terminated) + .csr_writedata (32'b00000000000000000000000000000000), // (terminated) + .almost_full_data (), // (terminated) + .almost_empty_data (), // (terminated) + .in_empty (1'b0), // (terminated) + .out_empty (), // (terminated) + .in_error (1'b0), // (terminated) + .out_error (), // (terminated) + .in_channel (1'b0), // (terminated) + .out_channel () // (terminated) + ); + + altera_merlin_slave_agent #( + .PKT_DATA_H (31), + .PKT_DATA_L (0), + .PKT_BEGIN_BURST (74), + .PKT_SYMBOL_W (8), + .PKT_BYTEEN_H (35), + .PKT_BYTEEN_L (32), + .PKT_ADDR_H (54), + .PKT_ADDR_L (36), + .PKT_TRANS_COMPRESSED_READ (55), + .PKT_TRANS_POSTED (56), + .PKT_TRANS_WRITE (57), + .PKT_TRANS_READ (58), + .PKT_TRANS_LOCK (59), + .PKT_SRC_ID_H (80), + .PKT_SRC_ID_L (76), + .PKT_DEST_ID_H (85), + .PKT_DEST_ID_L (81), + .PKT_BURSTWRAP_H (66), + .PKT_BURSTWRAP_L (64), + .PKT_BYTE_CNT_H (63), + .PKT_BYTE_CNT_L (61), + .PKT_PROTECTION_H (89), + .PKT_PROTECTION_L (87), + .PKT_RESPONSE_STATUS_H (95), + .PKT_RESPONSE_STATUS_L (94), + .PKT_BURST_SIZE_H (69), + .PKT_BURST_SIZE_L (67), + .ST_CHANNEL_W (18), + .ST_DATA_W (96), + .AVS_BURSTCOUNT_W (3), + .SUPPRESS_0_BYTEEN_CMD (0), + .PREVENT_FIFO_OVERFLOW (1), + .USE_READRESPONSE (0), + .USE_WRITERESPONSE (0) + ) hex1_s1_translator_avalon_universal_slave_0_agent ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .m0_address (hex1_s1_translator_avalon_universal_slave_0_agent_m0_address), // m0.address + .m0_burstcount (hex1_s1_translator_avalon_universal_slave_0_agent_m0_burstcount), // .burstcount + .m0_byteenable (hex1_s1_translator_avalon_universal_slave_0_agent_m0_byteenable), // .byteenable + .m0_debugaccess (hex1_s1_translator_avalon_universal_slave_0_agent_m0_debugaccess), // .debugaccess + .m0_lock (hex1_s1_translator_avalon_universal_slave_0_agent_m0_lock), // .lock + .m0_readdata (hex1_s1_translator_avalon_universal_slave_0_agent_m0_readdata), // .readdata + .m0_readdatavalid (hex1_s1_translator_avalon_universal_slave_0_agent_m0_readdatavalid), // .readdatavalid + .m0_read (hex1_s1_translator_avalon_universal_slave_0_agent_m0_read), // .read + .m0_waitrequest (hex1_s1_translator_avalon_universal_slave_0_agent_m0_waitrequest), // .waitrequest + .m0_writedata (hex1_s1_translator_avalon_universal_slave_0_agent_m0_writedata), // .writedata + .m0_write (hex1_s1_translator_avalon_universal_slave_0_agent_m0_write), // .write + .rp_endofpacket (hex1_s1_translator_avalon_universal_slave_0_agent_rp_endofpacket), // rp.endofpacket + .rp_ready (hex1_s1_translator_avalon_universal_slave_0_agent_rp_ready), // .ready + .rp_valid (hex1_s1_translator_avalon_universal_slave_0_agent_rp_valid), // .valid + .rp_data (hex1_s1_translator_avalon_universal_slave_0_agent_rp_data), // .data + .rp_startofpacket (hex1_s1_translator_avalon_universal_slave_0_agent_rp_startofpacket), // .startofpacket + .cp_ready (cmd_xbar_demux_001_src8_ready), // cp.ready + .cp_valid (cmd_xbar_demux_001_src8_valid), // .valid + .cp_data (cmd_xbar_demux_001_src8_data), // .data + .cp_startofpacket (cmd_xbar_demux_001_src8_startofpacket), // .startofpacket + .cp_endofpacket (cmd_xbar_demux_001_src8_endofpacket), // .endofpacket + .cp_channel (cmd_xbar_demux_001_src8_channel), // .channel + .rf_sink_ready (hex1_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_ready), // rf_sink.ready + .rf_sink_valid (hex1_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_valid), // .valid + .rf_sink_startofpacket (hex1_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_startofpacket), // .startofpacket + .rf_sink_endofpacket (hex1_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_endofpacket), // .endofpacket + .rf_sink_data (hex1_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_data), // .data + .rf_source_ready (hex1_s1_translator_avalon_universal_slave_0_agent_rf_source_ready), // rf_source.ready + .rf_source_valid (hex1_s1_translator_avalon_universal_slave_0_agent_rf_source_valid), // .valid + .rf_source_startofpacket (hex1_s1_translator_avalon_universal_slave_0_agent_rf_source_startofpacket), // .startofpacket + .rf_source_endofpacket (hex1_s1_translator_avalon_universal_slave_0_agent_rf_source_endofpacket), // .endofpacket + .rf_source_data (hex1_s1_translator_avalon_universal_slave_0_agent_rf_source_data), // .data + .rdata_fifo_sink_ready (hex1_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_ready), // rdata_fifo_sink.ready + .rdata_fifo_sink_valid (hex1_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_valid), // .valid + .rdata_fifo_sink_data (hex1_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_data), // .data + .rdata_fifo_src_ready (hex1_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_ready), // rdata_fifo_src.ready + .rdata_fifo_src_valid (hex1_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_valid), // .valid + .rdata_fifo_src_data (hex1_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_data), // .data + .m0_response (2'b00), // (terminated) + .m0_writeresponserequest (), // (terminated) + .m0_writeresponsevalid (1'b0) // (terminated) + ); + + altera_avalon_sc_fifo #( + .SYMBOLS_PER_BEAT (1), + .BITS_PER_SYMBOL (97), + .FIFO_DEPTH (2), + .CHANNEL_WIDTH (0), + .ERROR_WIDTH (0), + .USE_PACKETS (1), + .USE_FILL_LEVEL (0), + .EMPTY_LATENCY (1), + .USE_MEMORY_BLOCKS (0), + .USE_STORE_FORWARD (0), + .USE_ALMOST_FULL_IF (0), + .USE_ALMOST_EMPTY_IF (0) + ) hex1_s1_translator_avalon_universal_slave_0_agent_rsp_fifo ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .in_data (hex1_s1_translator_avalon_universal_slave_0_agent_rf_source_data), // in.data + .in_valid (hex1_s1_translator_avalon_universal_slave_0_agent_rf_source_valid), // .valid + .in_ready (hex1_s1_translator_avalon_universal_slave_0_agent_rf_source_ready), // .ready + .in_startofpacket (hex1_s1_translator_avalon_universal_slave_0_agent_rf_source_startofpacket), // .startofpacket + .in_endofpacket (hex1_s1_translator_avalon_universal_slave_0_agent_rf_source_endofpacket), // .endofpacket + .out_data (hex1_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_data), // out.data + .out_valid (hex1_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_valid), // .valid + .out_ready (hex1_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_ready), // .ready + .out_startofpacket (hex1_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_startofpacket), // .startofpacket + .out_endofpacket (hex1_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_endofpacket), // .endofpacket + .csr_address (2'b00), // (terminated) + .csr_read (1'b0), // (terminated) + .csr_write (1'b0), // (terminated) + .csr_readdata (), // (terminated) + .csr_writedata (32'b00000000000000000000000000000000), // (terminated) + .almost_full_data (), // (terminated) + .almost_empty_data (), // (terminated) + .in_empty (1'b0), // (terminated) + .out_empty (), // (terminated) + .in_error (1'b0), // (terminated) + .out_error (), // (terminated) + .in_channel (1'b0), // (terminated) + .out_channel () // (terminated) + ); + + altera_merlin_slave_agent #( + .PKT_DATA_H (31), + .PKT_DATA_L (0), + .PKT_BEGIN_BURST (74), + .PKT_SYMBOL_W (8), + .PKT_BYTEEN_H (35), + .PKT_BYTEEN_L (32), + .PKT_ADDR_H (54), + .PKT_ADDR_L (36), + .PKT_TRANS_COMPRESSED_READ (55), + .PKT_TRANS_POSTED (56), + .PKT_TRANS_WRITE (57), + .PKT_TRANS_READ (58), + .PKT_TRANS_LOCK (59), + .PKT_SRC_ID_H (80), + .PKT_SRC_ID_L (76), + .PKT_DEST_ID_H (85), + .PKT_DEST_ID_L (81), + .PKT_BURSTWRAP_H (66), + .PKT_BURSTWRAP_L (64), + .PKT_BYTE_CNT_H (63), + .PKT_BYTE_CNT_L (61), + .PKT_PROTECTION_H (89), + .PKT_PROTECTION_L (87), + .PKT_RESPONSE_STATUS_H (95), + .PKT_RESPONSE_STATUS_L (94), + .PKT_BURST_SIZE_H (69), + .PKT_BURST_SIZE_L (67), + .ST_CHANNEL_W (18), + .ST_DATA_W (96), + .AVS_BURSTCOUNT_W (3), + .SUPPRESS_0_BYTEEN_CMD (0), + .PREVENT_FIFO_OVERFLOW (1), + .USE_READRESPONSE (0), + .USE_WRITERESPONSE (0) + ) hex2_s1_translator_avalon_universal_slave_0_agent ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .m0_address (hex2_s1_translator_avalon_universal_slave_0_agent_m0_address), // m0.address + .m0_burstcount (hex2_s1_translator_avalon_universal_slave_0_agent_m0_burstcount), // .burstcount + .m0_byteenable (hex2_s1_translator_avalon_universal_slave_0_agent_m0_byteenable), // .byteenable + .m0_debugaccess (hex2_s1_translator_avalon_universal_slave_0_agent_m0_debugaccess), // .debugaccess + .m0_lock (hex2_s1_translator_avalon_universal_slave_0_agent_m0_lock), // .lock + .m0_readdata (hex2_s1_translator_avalon_universal_slave_0_agent_m0_readdata), // .readdata + .m0_readdatavalid (hex2_s1_translator_avalon_universal_slave_0_agent_m0_readdatavalid), // .readdatavalid + .m0_read (hex2_s1_translator_avalon_universal_slave_0_agent_m0_read), // .read + .m0_waitrequest (hex2_s1_translator_avalon_universal_slave_0_agent_m0_waitrequest), // .waitrequest + .m0_writedata (hex2_s1_translator_avalon_universal_slave_0_agent_m0_writedata), // .writedata + .m0_write (hex2_s1_translator_avalon_universal_slave_0_agent_m0_write), // .write + .rp_endofpacket (hex2_s1_translator_avalon_universal_slave_0_agent_rp_endofpacket), // rp.endofpacket + .rp_ready (hex2_s1_translator_avalon_universal_slave_0_agent_rp_ready), // .ready + .rp_valid (hex2_s1_translator_avalon_universal_slave_0_agent_rp_valid), // .valid + .rp_data (hex2_s1_translator_avalon_universal_slave_0_agent_rp_data), // .data + .rp_startofpacket (hex2_s1_translator_avalon_universal_slave_0_agent_rp_startofpacket), // .startofpacket + .cp_ready (cmd_xbar_demux_001_src9_ready), // cp.ready + .cp_valid (cmd_xbar_demux_001_src9_valid), // .valid + .cp_data (cmd_xbar_demux_001_src9_data), // .data + .cp_startofpacket (cmd_xbar_demux_001_src9_startofpacket), // .startofpacket + .cp_endofpacket (cmd_xbar_demux_001_src9_endofpacket), // .endofpacket + .cp_channel (cmd_xbar_demux_001_src9_channel), // .channel + .rf_sink_ready (hex2_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_ready), // rf_sink.ready + .rf_sink_valid (hex2_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_valid), // .valid + .rf_sink_startofpacket (hex2_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_startofpacket), // .startofpacket + .rf_sink_endofpacket (hex2_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_endofpacket), // .endofpacket + .rf_sink_data (hex2_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_data), // .data + .rf_source_ready (hex2_s1_translator_avalon_universal_slave_0_agent_rf_source_ready), // rf_source.ready + .rf_source_valid (hex2_s1_translator_avalon_universal_slave_0_agent_rf_source_valid), // .valid + .rf_source_startofpacket (hex2_s1_translator_avalon_universal_slave_0_agent_rf_source_startofpacket), // .startofpacket + .rf_source_endofpacket (hex2_s1_translator_avalon_universal_slave_0_agent_rf_source_endofpacket), // .endofpacket + .rf_source_data (hex2_s1_translator_avalon_universal_slave_0_agent_rf_source_data), // .data + .rdata_fifo_sink_ready (hex2_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_ready), // rdata_fifo_sink.ready + .rdata_fifo_sink_valid (hex2_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_valid), // .valid + .rdata_fifo_sink_data (hex2_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_data), // .data + .rdata_fifo_src_ready (hex2_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_ready), // rdata_fifo_src.ready + .rdata_fifo_src_valid (hex2_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_valid), // .valid + .rdata_fifo_src_data (hex2_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_data), // .data + .m0_response (2'b00), // (terminated) + .m0_writeresponserequest (), // (terminated) + .m0_writeresponsevalid (1'b0) // (terminated) + ); + + altera_avalon_sc_fifo #( + .SYMBOLS_PER_BEAT (1), + .BITS_PER_SYMBOL (97), + .FIFO_DEPTH (2), + .CHANNEL_WIDTH (0), + .ERROR_WIDTH (0), + .USE_PACKETS (1), + .USE_FILL_LEVEL (0), + .EMPTY_LATENCY (1), + .USE_MEMORY_BLOCKS (0), + .USE_STORE_FORWARD (0), + .USE_ALMOST_FULL_IF (0), + .USE_ALMOST_EMPTY_IF (0) + ) hex2_s1_translator_avalon_universal_slave_0_agent_rsp_fifo ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .in_data (hex2_s1_translator_avalon_universal_slave_0_agent_rf_source_data), // in.data + .in_valid (hex2_s1_translator_avalon_universal_slave_0_agent_rf_source_valid), // .valid + .in_ready (hex2_s1_translator_avalon_universal_slave_0_agent_rf_source_ready), // .ready + .in_startofpacket (hex2_s1_translator_avalon_universal_slave_0_agent_rf_source_startofpacket), // .startofpacket + .in_endofpacket (hex2_s1_translator_avalon_universal_slave_0_agent_rf_source_endofpacket), // .endofpacket + .out_data (hex2_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_data), // out.data + .out_valid (hex2_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_valid), // .valid + .out_ready (hex2_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_ready), // .ready + .out_startofpacket (hex2_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_startofpacket), // .startofpacket + .out_endofpacket (hex2_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_endofpacket), // .endofpacket + .csr_address (2'b00), // (terminated) + .csr_read (1'b0), // (terminated) + .csr_write (1'b0), // (terminated) + .csr_readdata (), // (terminated) + .csr_writedata (32'b00000000000000000000000000000000), // (terminated) + .almost_full_data (), // (terminated) + .almost_empty_data (), // (terminated) + .in_empty (1'b0), // (terminated) + .out_empty (), // (terminated) + .in_error (1'b0), // (terminated) + .out_error (), // (terminated) + .in_channel (1'b0), // (terminated) + .out_channel () // (terminated) + ); + + altera_merlin_slave_agent #( + .PKT_DATA_H (31), + .PKT_DATA_L (0), + .PKT_BEGIN_BURST (74), + .PKT_SYMBOL_W (8), + .PKT_BYTEEN_H (35), + .PKT_BYTEEN_L (32), + .PKT_ADDR_H (54), + .PKT_ADDR_L (36), + .PKT_TRANS_COMPRESSED_READ (55), + .PKT_TRANS_POSTED (56), + .PKT_TRANS_WRITE (57), + .PKT_TRANS_READ (58), + .PKT_TRANS_LOCK (59), + .PKT_SRC_ID_H (80), + .PKT_SRC_ID_L (76), + .PKT_DEST_ID_H (85), + .PKT_DEST_ID_L (81), + .PKT_BURSTWRAP_H (66), + .PKT_BURSTWRAP_L (64), + .PKT_BYTE_CNT_H (63), + .PKT_BYTE_CNT_L (61), + .PKT_PROTECTION_H (89), + .PKT_PROTECTION_L (87), + .PKT_RESPONSE_STATUS_H (95), + .PKT_RESPONSE_STATUS_L (94), + .PKT_BURST_SIZE_H (69), + .PKT_BURST_SIZE_L (67), + .ST_CHANNEL_W (18), + .ST_DATA_W (96), + .AVS_BURSTCOUNT_W (3), + .SUPPRESS_0_BYTEEN_CMD (0), + .PREVENT_FIFO_OVERFLOW (1), + .USE_READRESPONSE (0), + .USE_WRITERESPONSE (0) + ) hex3_s1_translator_avalon_universal_slave_0_agent ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .m0_address (hex3_s1_translator_avalon_universal_slave_0_agent_m0_address), // m0.address + .m0_burstcount (hex3_s1_translator_avalon_universal_slave_0_agent_m0_burstcount), // .burstcount + .m0_byteenable (hex3_s1_translator_avalon_universal_slave_0_agent_m0_byteenable), // .byteenable + .m0_debugaccess (hex3_s1_translator_avalon_universal_slave_0_agent_m0_debugaccess), // .debugaccess + .m0_lock (hex3_s1_translator_avalon_universal_slave_0_agent_m0_lock), // .lock + .m0_readdata (hex3_s1_translator_avalon_universal_slave_0_agent_m0_readdata), // .readdata + .m0_readdatavalid (hex3_s1_translator_avalon_universal_slave_0_agent_m0_readdatavalid), // .readdatavalid + .m0_read (hex3_s1_translator_avalon_universal_slave_0_agent_m0_read), // .read + .m0_waitrequest (hex3_s1_translator_avalon_universal_slave_0_agent_m0_waitrequest), // .waitrequest + .m0_writedata (hex3_s1_translator_avalon_universal_slave_0_agent_m0_writedata), // .writedata + .m0_write (hex3_s1_translator_avalon_universal_slave_0_agent_m0_write), // .write + .rp_endofpacket (hex3_s1_translator_avalon_universal_slave_0_agent_rp_endofpacket), // rp.endofpacket + .rp_ready (hex3_s1_translator_avalon_universal_slave_0_agent_rp_ready), // .ready + .rp_valid (hex3_s1_translator_avalon_universal_slave_0_agent_rp_valid), // .valid + .rp_data (hex3_s1_translator_avalon_universal_slave_0_agent_rp_data), // .data + .rp_startofpacket (hex3_s1_translator_avalon_universal_slave_0_agent_rp_startofpacket), // .startofpacket + .cp_ready (cmd_xbar_demux_001_src10_ready), // cp.ready + .cp_valid (cmd_xbar_demux_001_src10_valid), // .valid + .cp_data (cmd_xbar_demux_001_src10_data), // .data + .cp_startofpacket (cmd_xbar_demux_001_src10_startofpacket), // .startofpacket + .cp_endofpacket (cmd_xbar_demux_001_src10_endofpacket), // .endofpacket + .cp_channel (cmd_xbar_demux_001_src10_channel), // .channel + .rf_sink_ready (hex3_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_ready), // rf_sink.ready + .rf_sink_valid (hex3_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_valid), // .valid + .rf_sink_startofpacket (hex3_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_startofpacket), // .startofpacket + .rf_sink_endofpacket (hex3_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_endofpacket), // .endofpacket + .rf_sink_data (hex3_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_data), // .data + .rf_source_ready (hex3_s1_translator_avalon_universal_slave_0_agent_rf_source_ready), // rf_source.ready + .rf_source_valid (hex3_s1_translator_avalon_universal_slave_0_agent_rf_source_valid), // .valid + .rf_source_startofpacket (hex3_s1_translator_avalon_universal_slave_0_agent_rf_source_startofpacket), // .startofpacket + .rf_source_endofpacket (hex3_s1_translator_avalon_universal_slave_0_agent_rf_source_endofpacket), // .endofpacket + .rf_source_data (hex3_s1_translator_avalon_universal_slave_0_agent_rf_source_data), // .data + .rdata_fifo_sink_ready (hex3_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_ready), // rdata_fifo_sink.ready + .rdata_fifo_sink_valid (hex3_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_valid), // .valid + .rdata_fifo_sink_data (hex3_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_data), // .data + .rdata_fifo_src_ready (hex3_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_ready), // rdata_fifo_src.ready + .rdata_fifo_src_valid (hex3_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_valid), // .valid + .rdata_fifo_src_data (hex3_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_data), // .data + .m0_response (2'b00), // (terminated) + .m0_writeresponserequest (), // (terminated) + .m0_writeresponsevalid (1'b0) // (terminated) + ); + + altera_avalon_sc_fifo #( + .SYMBOLS_PER_BEAT (1), + .BITS_PER_SYMBOL (97), + .FIFO_DEPTH (2), + .CHANNEL_WIDTH (0), + .ERROR_WIDTH (0), + .USE_PACKETS (1), + .USE_FILL_LEVEL (0), + .EMPTY_LATENCY (1), + .USE_MEMORY_BLOCKS (0), + .USE_STORE_FORWARD (0), + .USE_ALMOST_FULL_IF (0), + .USE_ALMOST_EMPTY_IF (0) + ) hex3_s1_translator_avalon_universal_slave_0_agent_rsp_fifo ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .in_data (hex3_s1_translator_avalon_universal_slave_0_agent_rf_source_data), // in.data + .in_valid (hex3_s1_translator_avalon_universal_slave_0_agent_rf_source_valid), // .valid + .in_ready (hex3_s1_translator_avalon_universal_slave_0_agent_rf_source_ready), // .ready + .in_startofpacket (hex3_s1_translator_avalon_universal_slave_0_agent_rf_source_startofpacket), // .startofpacket + .in_endofpacket (hex3_s1_translator_avalon_universal_slave_0_agent_rf_source_endofpacket), // .endofpacket + .out_data (hex3_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_data), // out.data + .out_valid (hex3_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_valid), // .valid + .out_ready (hex3_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_ready), // .ready + .out_startofpacket (hex3_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_startofpacket), // .startofpacket + .out_endofpacket (hex3_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_endofpacket), // .endofpacket + .csr_address (2'b00), // (terminated) + .csr_read (1'b0), // (terminated) + .csr_write (1'b0), // (terminated) + .csr_readdata (), // (terminated) + .csr_writedata (32'b00000000000000000000000000000000), // (terminated) + .almost_full_data (), // (terminated) + .almost_empty_data (), // (terminated) + .in_empty (1'b0), // (terminated) + .out_empty (), // (terminated) + .in_error (1'b0), // (terminated) + .out_error (), // (terminated) + .in_channel (1'b0), // (terminated) + .out_channel () // (terminated) + ); + + altera_merlin_slave_agent #( + .PKT_DATA_H (31), + .PKT_DATA_L (0), + .PKT_BEGIN_BURST (74), + .PKT_SYMBOL_W (8), + .PKT_BYTEEN_H (35), + .PKT_BYTEEN_L (32), + .PKT_ADDR_H (54), + .PKT_ADDR_L (36), + .PKT_TRANS_COMPRESSED_READ (55), + .PKT_TRANS_POSTED (56), + .PKT_TRANS_WRITE (57), + .PKT_TRANS_READ (58), + .PKT_TRANS_LOCK (59), + .PKT_SRC_ID_H (80), + .PKT_SRC_ID_L (76), + .PKT_DEST_ID_H (85), + .PKT_DEST_ID_L (81), + .PKT_BURSTWRAP_H (66), + .PKT_BURSTWRAP_L (64), + .PKT_BYTE_CNT_H (63), + .PKT_BYTE_CNT_L (61), + .PKT_PROTECTION_H (89), + .PKT_PROTECTION_L (87), + .PKT_RESPONSE_STATUS_H (95), + .PKT_RESPONSE_STATUS_L (94), + .PKT_BURST_SIZE_H (69), + .PKT_BURST_SIZE_L (67), + .ST_CHANNEL_W (18), + .ST_DATA_W (96), + .AVS_BURSTCOUNT_W (3), + .SUPPRESS_0_BYTEEN_CMD (0), + .PREVENT_FIFO_OVERFLOW (1), + .USE_READRESPONSE (0), + .USE_WRITERESPONSE (0) + ) hex4_s1_translator_avalon_universal_slave_0_agent ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .m0_address (hex4_s1_translator_avalon_universal_slave_0_agent_m0_address), // m0.address + .m0_burstcount (hex4_s1_translator_avalon_universal_slave_0_agent_m0_burstcount), // .burstcount + .m0_byteenable (hex4_s1_translator_avalon_universal_slave_0_agent_m0_byteenable), // .byteenable + .m0_debugaccess (hex4_s1_translator_avalon_universal_slave_0_agent_m0_debugaccess), // .debugaccess + .m0_lock (hex4_s1_translator_avalon_universal_slave_0_agent_m0_lock), // .lock + .m0_readdata (hex4_s1_translator_avalon_universal_slave_0_agent_m0_readdata), // .readdata + .m0_readdatavalid (hex4_s1_translator_avalon_universal_slave_0_agent_m0_readdatavalid), // .readdatavalid + .m0_read (hex4_s1_translator_avalon_universal_slave_0_agent_m0_read), // .read + .m0_waitrequest (hex4_s1_translator_avalon_universal_slave_0_agent_m0_waitrequest), // .waitrequest + .m0_writedata (hex4_s1_translator_avalon_universal_slave_0_agent_m0_writedata), // .writedata + .m0_write (hex4_s1_translator_avalon_universal_slave_0_agent_m0_write), // .write + .rp_endofpacket (hex4_s1_translator_avalon_universal_slave_0_agent_rp_endofpacket), // rp.endofpacket + .rp_ready (hex4_s1_translator_avalon_universal_slave_0_agent_rp_ready), // .ready + .rp_valid (hex4_s1_translator_avalon_universal_slave_0_agent_rp_valid), // .valid + .rp_data (hex4_s1_translator_avalon_universal_slave_0_agent_rp_data), // .data + .rp_startofpacket (hex4_s1_translator_avalon_universal_slave_0_agent_rp_startofpacket), // .startofpacket + .cp_ready (cmd_xbar_demux_001_src11_ready), // cp.ready + .cp_valid (cmd_xbar_demux_001_src11_valid), // .valid + .cp_data (cmd_xbar_demux_001_src11_data), // .data + .cp_startofpacket (cmd_xbar_demux_001_src11_startofpacket), // .startofpacket + .cp_endofpacket (cmd_xbar_demux_001_src11_endofpacket), // .endofpacket + .cp_channel (cmd_xbar_demux_001_src11_channel), // .channel + .rf_sink_ready (hex4_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_ready), // rf_sink.ready + .rf_sink_valid (hex4_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_valid), // .valid + .rf_sink_startofpacket (hex4_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_startofpacket), // .startofpacket + .rf_sink_endofpacket (hex4_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_endofpacket), // .endofpacket + .rf_sink_data (hex4_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_data), // .data + .rf_source_ready (hex4_s1_translator_avalon_universal_slave_0_agent_rf_source_ready), // rf_source.ready + .rf_source_valid (hex4_s1_translator_avalon_universal_slave_0_agent_rf_source_valid), // .valid + .rf_source_startofpacket (hex4_s1_translator_avalon_universal_slave_0_agent_rf_source_startofpacket), // .startofpacket + .rf_source_endofpacket (hex4_s1_translator_avalon_universal_slave_0_agent_rf_source_endofpacket), // .endofpacket + .rf_source_data (hex4_s1_translator_avalon_universal_slave_0_agent_rf_source_data), // .data + .rdata_fifo_sink_ready (hex4_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_ready), // rdata_fifo_sink.ready + .rdata_fifo_sink_valid (hex4_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_valid), // .valid + .rdata_fifo_sink_data (hex4_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_data), // .data + .rdata_fifo_src_ready (hex4_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_ready), // rdata_fifo_src.ready + .rdata_fifo_src_valid (hex4_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_valid), // .valid + .rdata_fifo_src_data (hex4_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_data), // .data + .m0_response (2'b00), // (terminated) + .m0_writeresponserequest (), // (terminated) + .m0_writeresponsevalid (1'b0) // (terminated) + ); + + altera_avalon_sc_fifo #( + .SYMBOLS_PER_BEAT (1), + .BITS_PER_SYMBOL (97), + .FIFO_DEPTH (2), + .CHANNEL_WIDTH (0), + .ERROR_WIDTH (0), + .USE_PACKETS (1), + .USE_FILL_LEVEL (0), + .EMPTY_LATENCY (1), + .USE_MEMORY_BLOCKS (0), + .USE_STORE_FORWARD (0), + .USE_ALMOST_FULL_IF (0), + .USE_ALMOST_EMPTY_IF (0) + ) hex4_s1_translator_avalon_universal_slave_0_agent_rsp_fifo ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .in_data (hex4_s1_translator_avalon_universal_slave_0_agent_rf_source_data), // in.data + .in_valid (hex4_s1_translator_avalon_universal_slave_0_agent_rf_source_valid), // .valid + .in_ready (hex4_s1_translator_avalon_universal_slave_0_agent_rf_source_ready), // .ready + .in_startofpacket (hex4_s1_translator_avalon_universal_slave_0_agent_rf_source_startofpacket), // .startofpacket + .in_endofpacket (hex4_s1_translator_avalon_universal_slave_0_agent_rf_source_endofpacket), // .endofpacket + .out_data (hex4_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_data), // out.data + .out_valid (hex4_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_valid), // .valid + .out_ready (hex4_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_ready), // .ready + .out_startofpacket (hex4_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_startofpacket), // .startofpacket + .out_endofpacket (hex4_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_endofpacket), // .endofpacket + .csr_address (2'b00), // (terminated) + .csr_read (1'b0), // (terminated) + .csr_write (1'b0), // (terminated) + .csr_readdata (), // (terminated) + .csr_writedata (32'b00000000000000000000000000000000), // (terminated) + .almost_full_data (), // (terminated) + .almost_empty_data (), // (terminated) + .in_empty (1'b0), // (terminated) + .out_empty (), // (terminated) + .in_error (1'b0), // (terminated) + .out_error (), // (terminated) + .in_channel (1'b0), // (terminated) + .out_channel () // (terminated) + ); + + altera_merlin_slave_agent #( + .PKT_DATA_H (31), + .PKT_DATA_L (0), + .PKT_BEGIN_BURST (74), + .PKT_SYMBOL_W (8), + .PKT_BYTEEN_H (35), + .PKT_BYTEEN_L (32), + .PKT_ADDR_H (54), + .PKT_ADDR_L (36), + .PKT_TRANS_COMPRESSED_READ (55), + .PKT_TRANS_POSTED (56), + .PKT_TRANS_WRITE (57), + .PKT_TRANS_READ (58), + .PKT_TRANS_LOCK (59), + .PKT_SRC_ID_H (80), + .PKT_SRC_ID_L (76), + .PKT_DEST_ID_H (85), + .PKT_DEST_ID_L (81), + .PKT_BURSTWRAP_H (66), + .PKT_BURSTWRAP_L (64), + .PKT_BYTE_CNT_H (63), + .PKT_BYTE_CNT_L (61), + .PKT_PROTECTION_H (89), + .PKT_PROTECTION_L (87), + .PKT_RESPONSE_STATUS_H (95), + .PKT_RESPONSE_STATUS_L (94), + .PKT_BURST_SIZE_H (69), + .PKT_BURST_SIZE_L (67), + .ST_CHANNEL_W (18), + .ST_DATA_W (96), + .AVS_BURSTCOUNT_W (3), + .SUPPRESS_0_BYTEEN_CMD (0), + .PREVENT_FIFO_OVERFLOW (1), + .USE_READRESPONSE (0), + .USE_WRITERESPONSE (0) + ) hex5_s1_translator_avalon_universal_slave_0_agent ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .m0_address (hex5_s1_translator_avalon_universal_slave_0_agent_m0_address), // m0.address + .m0_burstcount (hex5_s1_translator_avalon_universal_slave_0_agent_m0_burstcount), // .burstcount + .m0_byteenable (hex5_s1_translator_avalon_universal_slave_0_agent_m0_byteenable), // .byteenable + .m0_debugaccess (hex5_s1_translator_avalon_universal_slave_0_agent_m0_debugaccess), // .debugaccess + .m0_lock (hex5_s1_translator_avalon_universal_slave_0_agent_m0_lock), // .lock + .m0_readdata (hex5_s1_translator_avalon_universal_slave_0_agent_m0_readdata), // .readdata + .m0_readdatavalid (hex5_s1_translator_avalon_universal_slave_0_agent_m0_readdatavalid), // .readdatavalid + .m0_read (hex5_s1_translator_avalon_universal_slave_0_agent_m0_read), // .read + .m0_waitrequest (hex5_s1_translator_avalon_universal_slave_0_agent_m0_waitrequest), // .waitrequest + .m0_writedata (hex5_s1_translator_avalon_universal_slave_0_agent_m0_writedata), // .writedata + .m0_write (hex5_s1_translator_avalon_universal_slave_0_agent_m0_write), // .write + .rp_endofpacket (hex5_s1_translator_avalon_universal_slave_0_agent_rp_endofpacket), // rp.endofpacket + .rp_ready (hex5_s1_translator_avalon_universal_slave_0_agent_rp_ready), // .ready + .rp_valid (hex5_s1_translator_avalon_universal_slave_0_agent_rp_valid), // .valid + .rp_data (hex5_s1_translator_avalon_universal_slave_0_agent_rp_data), // .data + .rp_startofpacket (hex5_s1_translator_avalon_universal_slave_0_agent_rp_startofpacket), // .startofpacket + .cp_ready (cmd_xbar_demux_001_src12_ready), // cp.ready + .cp_valid (cmd_xbar_demux_001_src12_valid), // .valid + .cp_data (cmd_xbar_demux_001_src12_data), // .data + .cp_startofpacket (cmd_xbar_demux_001_src12_startofpacket), // .startofpacket + .cp_endofpacket (cmd_xbar_demux_001_src12_endofpacket), // .endofpacket + .cp_channel (cmd_xbar_demux_001_src12_channel), // .channel + .rf_sink_ready (hex5_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_ready), // rf_sink.ready + .rf_sink_valid (hex5_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_valid), // .valid + .rf_sink_startofpacket (hex5_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_startofpacket), // .startofpacket + .rf_sink_endofpacket (hex5_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_endofpacket), // .endofpacket + .rf_sink_data (hex5_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_data), // .data + .rf_source_ready (hex5_s1_translator_avalon_universal_slave_0_agent_rf_source_ready), // rf_source.ready + .rf_source_valid (hex5_s1_translator_avalon_universal_slave_0_agent_rf_source_valid), // .valid + .rf_source_startofpacket (hex5_s1_translator_avalon_universal_slave_0_agent_rf_source_startofpacket), // .startofpacket + .rf_source_endofpacket (hex5_s1_translator_avalon_universal_slave_0_agent_rf_source_endofpacket), // .endofpacket + .rf_source_data (hex5_s1_translator_avalon_universal_slave_0_agent_rf_source_data), // .data + .rdata_fifo_sink_ready (hex5_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_ready), // rdata_fifo_sink.ready + .rdata_fifo_sink_valid (hex5_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_valid), // .valid + .rdata_fifo_sink_data (hex5_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_data), // .data + .rdata_fifo_src_ready (hex5_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_ready), // rdata_fifo_src.ready + .rdata_fifo_src_valid (hex5_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_valid), // .valid + .rdata_fifo_src_data (hex5_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_data), // .data + .m0_response (2'b00), // (terminated) + .m0_writeresponserequest (), // (terminated) + .m0_writeresponsevalid (1'b0) // (terminated) + ); + + altera_avalon_sc_fifo #( + .SYMBOLS_PER_BEAT (1), + .BITS_PER_SYMBOL (97), + .FIFO_DEPTH (2), + .CHANNEL_WIDTH (0), + .ERROR_WIDTH (0), + .USE_PACKETS (1), + .USE_FILL_LEVEL (0), + .EMPTY_LATENCY (1), + .USE_MEMORY_BLOCKS (0), + .USE_STORE_FORWARD (0), + .USE_ALMOST_FULL_IF (0), + .USE_ALMOST_EMPTY_IF (0) + ) hex5_s1_translator_avalon_universal_slave_0_agent_rsp_fifo ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .in_data (hex5_s1_translator_avalon_universal_slave_0_agent_rf_source_data), // in.data + .in_valid (hex5_s1_translator_avalon_universal_slave_0_agent_rf_source_valid), // .valid + .in_ready (hex5_s1_translator_avalon_universal_slave_0_agent_rf_source_ready), // .ready + .in_startofpacket (hex5_s1_translator_avalon_universal_slave_0_agent_rf_source_startofpacket), // .startofpacket + .in_endofpacket (hex5_s1_translator_avalon_universal_slave_0_agent_rf_source_endofpacket), // .endofpacket + .out_data (hex5_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_data), // out.data + .out_valid (hex5_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_valid), // .valid + .out_ready (hex5_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_ready), // .ready + .out_startofpacket (hex5_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_startofpacket), // .startofpacket + .out_endofpacket (hex5_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_endofpacket), // .endofpacket + .csr_address (2'b00), // (terminated) + .csr_read (1'b0), // (terminated) + .csr_write (1'b0), // (terminated) + .csr_readdata (), // (terminated) + .csr_writedata (32'b00000000000000000000000000000000), // (terminated) + .almost_full_data (), // (terminated) + .almost_empty_data (), // (terminated) + .in_empty (1'b0), // (terminated) + .out_empty (), // (terminated) + .in_error (1'b0), // (terminated) + .out_error (), // (terminated) + .in_channel (1'b0), // (terminated) + .out_channel () // (terminated) + ); + + altera_merlin_slave_agent #( + .PKT_DATA_H (31), + .PKT_DATA_L (0), + .PKT_BEGIN_BURST (74), + .PKT_SYMBOL_W (8), + .PKT_BYTEEN_H (35), + .PKT_BYTEEN_L (32), + .PKT_ADDR_H (54), + .PKT_ADDR_L (36), + .PKT_TRANS_COMPRESSED_READ (55), + .PKT_TRANS_POSTED (56), + .PKT_TRANS_WRITE (57), + .PKT_TRANS_READ (58), + .PKT_TRANS_LOCK (59), + .PKT_SRC_ID_H (80), + .PKT_SRC_ID_L (76), + .PKT_DEST_ID_H (85), + .PKT_DEST_ID_L (81), + .PKT_BURSTWRAP_H (66), + .PKT_BURSTWRAP_L (64), + .PKT_BYTE_CNT_H (63), + .PKT_BYTE_CNT_L (61), + .PKT_PROTECTION_H (89), + .PKT_PROTECTION_L (87), + .PKT_RESPONSE_STATUS_H (95), + .PKT_RESPONSE_STATUS_L (94), + .PKT_BURST_SIZE_H (69), + .PKT_BURST_SIZE_L (67), + .ST_CHANNEL_W (18), + .ST_DATA_W (96), + .AVS_BURSTCOUNT_W (3), + .SUPPRESS_0_BYTEEN_CMD (0), + .PREVENT_FIFO_OVERFLOW (1), + .USE_READRESPONSE (0), + .USE_WRITERESPONSE (0) + ) hex6_s1_translator_avalon_universal_slave_0_agent ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .m0_address (hex6_s1_translator_avalon_universal_slave_0_agent_m0_address), // m0.address + .m0_burstcount (hex6_s1_translator_avalon_universal_slave_0_agent_m0_burstcount), // .burstcount + .m0_byteenable (hex6_s1_translator_avalon_universal_slave_0_agent_m0_byteenable), // .byteenable + .m0_debugaccess (hex6_s1_translator_avalon_universal_slave_0_agent_m0_debugaccess), // .debugaccess + .m0_lock (hex6_s1_translator_avalon_universal_slave_0_agent_m0_lock), // .lock + .m0_readdata (hex6_s1_translator_avalon_universal_slave_0_agent_m0_readdata), // .readdata + .m0_readdatavalid (hex6_s1_translator_avalon_universal_slave_0_agent_m0_readdatavalid), // .readdatavalid + .m0_read (hex6_s1_translator_avalon_universal_slave_0_agent_m0_read), // .read + .m0_waitrequest (hex6_s1_translator_avalon_universal_slave_0_agent_m0_waitrequest), // .waitrequest + .m0_writedata (hex6_s1_translator_avalon_universal_slave_0_agent_m0_writedata), // .writedata + .m0_write (hex6_s1_translator_avalon_universal_slave_0_agent_m0_write), // .write + .rp_endofpacket (hex6_s1_translator_avalon_universal_slave_0_agent_rp_endofpacket), // rp.endofpacket + .rp_ready (hex6_s1_translator_avalon_universal_slave_0_agent_rp_ready), // .ready + .rp_valid (hex6_s1_translator_avalon_universal_slave_0_agent_rp_valid), // .valid + .rp_data (hex6_s1_translator_avalon_universal_slave_0_agent_rp_data), // .data + .rp_startofpacket (hex6_s1_translator_avalon_universal_slave_0_agent_rp_startofpacket), // .startofpacket + .cp_ready (cmd_xbar_demux_001_src13_ready), // cp.ready + .cp_valid (cmd_xbar_demux_001_src13_valid), // .valid + .cp_data (cmd_xbar_demux_001_src13_data), // .data + .cp_startofpacket (cmd_xbar_demux_001_src13_startofpacket), // .startofpacket + .cp_endofpacket (cmd_xbar_demux_001_src13_endofpacket), // .endofpacket + .cp_channel (cmd_xbar_demux_001_src13_channel), // .channel + .rf_sink_ready (hex6_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_ready), // rf_sink.ready + .rf_sink_valid (hex6_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_valid), // .valid + .rf_sink_startofpacket (hex6_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_startofpacket), // .startofpacket + .rf_sink_endofpacket (hex6_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_endofpacket), // .endofpacket + .rf_sink_data (hex6_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_data), // .data + .rf_source_ready (hex6_s1_translator_avalon_universal_slave_0_agent_rf_source_ready), // rf_source.ready + .rf_source_valid (hex6_s1_translator_avalon_universal_slave_0_agent_rf_source_valid), // .valid + .rf_source_startofpacket (hex6_s1_translator_avalon_universal_slave_0_agent_rf_source_startofpacket), // .startofpacket + .rf_source_endofpacket (hex6_s1_translator_avalon_universal_slave_0_agent_rf_source_endofpacket), // .endofpacket + .rf_source_data (hex6_s1_translator_avalon_universal_slave_0_agent_rf_source_data), // .data + .rdata_fifo_sink_ready (hex6_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_ready), // rdata_fifo_sink.ready + .rdata_fifo_sink_valid (hex6_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_valid), // .valid + .rdata_fifo_sink_data (hex6_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_data), // .data + .rdata_fifo_src_ready (hex6_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_ready), // rdata_fifo_src.ready + .rdata_fifo_src_valid (hex6_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_valid), // .valid + .rdata_fifo_src_data (hex6_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_data), // .data + .m0_response (2'b00), // (terminated) + .m0_writeresponserequest (), // (terminated) + .m0_writeresponsevalid (1'b0) // (terminated) + ); + + altera_avalon_sc_fifo #( + .SYMBOLS_PER_BEAT (1), + .BITS_PER_SYMBOL (97), + .FIFO_DEPTH (2), + .CHANNEL_WIDTH (0), + .ERROR_WIDTH (0), + .USE_PACKETS (1), + .USE_FILL_LEVEL (0), + .EMPTY_LATENCY (1), + .USE_MEMORY_BLOCKS (0), + .USE_STORE_FORWARD (0), + .USE_ALMOST_FULL_IF (0), + .USE_ALMOST_EMPTY_IF (0) + ) hex6_s1_translator_avalon_universal_slave_0_agent_rsp_fifo ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .in_data (hex6_s1_translator_avalon_universal_slave_0_agent_rf_source_data), // in.data + .in_valid (hex6_s1_translator_avalon_universal_slave_0_agent_rf_source_valid), // .valid + .in_ready (hex6_s1_translator_avalon_universal_slave_0_agent_rf_source_ready), // .ready + .in_startofpacket (hex6_s1_translator_avalon_universal_slave_0_agent_rf_source_startofpacket), // .startofpacket + .in_endofpacket (hex6_s1_translator_avalon_universal_slave_0_agent_rf_source_endofpacket), // .endofpacket + .out_data (hex6_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_data), // out.data + .out_valid (hex6_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_valid), // .valid + .out_ready (hex6_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_ready), // .ready + .out_startofpacket (hex6_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_startofpacket), // .startofpacket + .out_endofpacket (hex6_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_endofpacket), // .endofpacket + .csr_address (2'b00), // (terminated) + .csr_read (1'b0), // (terminated) + .csr_write (1'b0), // (terminated) + .csr_readdata (), // (terminated) + .csr_writedata (32'b00000000000000000000000000000000), // (terminated) + .almost_full_data (), // (terminated) + .almost_empty_data (), // (terminated) + .in_empty (1'b0), // (terminated) + .out_empty (), // (terminated) + .in_error (1'b0), // (terminated) + .out_error (), // (terminated) + .in_channel (1'b0), // (terminated) + .out_channel () // (terminated) + ); + + altera_merlin_slave_agent #( + .PKT_DATA_H (31), + .PKT_DATA_L (0), + .PKT_BEGIN_BURST (74), + .PKT_SYMBOL_W (8), + .PKT_BYTEEN_H (35), + .PKT_BYTEEN_L (32), + .PKT_ADDR_H (54), + .PKT_ADDR_L (36), + .PKT_TRANS_COMPRESSED_READ (55), + .PKT_TRANS_POSTED (56), + .PKT_TRANS_WRITE (57), + .PKT_TRANS_READ (58), + .PKT_TRANS_LOCK (59), + .PKT_SRC_ID_H (80), + .PKT_SRC_ID_L (76), + .PKT_DEST_ID_H (85), + .PKT_DEST_ID_L (81), + .PKT_BURSTWRAP_H (66), + .PKT_BURSTWRAP_L (64), + .PKT_BYTE_CNT_H (63), + .PKT_BYTE_CNT_L (61), + .PKT_PROTECTION_H (89), + .PKT_PROTECTION_L (87), + .PKT_RESPONSE_STATUS_H (95), + .PKT_RESPONSE_STATUS_L (94), + .PKT_BURST_SIZE_H (69), + .PKT_BURST_SIZE_L (67), + .ST_CHANNEL_W (18), + .ST_DATA_W (96), + .AVS_BURSTCOUNT_W (3), + .SUPPRESS_0_BYTEEN_CMD (0), + .PREVENT_FIFO_OVERFLOW (1), + .USE_READRESPONSE (0), + .USE_WRITERESPONSE (0) + ) hex7_s1_translator_avalon_universal_slave_0_agent ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .m0_address (hex7_s1_translator_avalon_universal_slave_0_agent_m0_address), // m0.address + .m0_burstcount (hex7_s1_translator_avalon_universal_slave_0_agent_m0_burstcount), // .burstcount + .m0_byteenable (hex7_s1_translator_avalon_universal_slave_0_agent_m0_byteenable), // .byteenable + .m0_debugaccess (hex7_s1_translator_avalon_universal_slave_0_agent_m0_debugaccess), // .debugaccess + .m0_lock (hex7_s1_translator_avalon_universal_slave_0_agent_m0_lock), // .lock + .m0_readdata (hex7_s1_translator_avalon_universal_slave_0_agent_m0_readdata), // .readdata + .m0_readdatavalid (hex7_s1_translator_avalon_universal_slave_0_agent_m0_readdatavalid), // .readdatavalid + .m0_read (hex7_s1_translator_avalon_universal_slave_0_agent_m0_read), // .read + .m0_waitrequest (hex7_s1_translator_avalon_universal_slave_0_agent_m0_waitrequest), // .waitrequest + .m0_writedata (hex7_s1_translator_avalon_universal_slave_0_agent_m0_writedata), // .writedata + .m0_write (hex7_s1_translator_avalon_universal_slave_0_agent_m0_write), // .write + .rp_endofpacket (hex7_s1_translator_avalon_universal_slave_0_agent_rp_endofpacket), // rp.endofpacket + .rp_ready (hex7_s1_translator_avalon_universal_slave_0_agent_rp_ready), // .ready + .rp_valid (hex7_s1_translator_avalon_universal_slave_0_agent_rp_valid), // .valid + .rp_data (hex7_s1_translator_avalon_universal_slave_0_agent_rp_data), // .data + .rp_startofpacket (hex7_s1_translator_avalon_universal_slave_0_agent_rp_startofpacket), // .startofpacket + .cp_ready (cmd_xbar_demux_001_src14_ready), // cp.ready + .cp_valid (cmd_xbar_demux_001_src14_valid), // .valid + .cp_data (cmd_xbar_demux_001_src14_data), // .data + .cp_startofpacket (cmd_xbar_demux_001_src14_startofpacket), // .startofpacket + .cp_endofpacket (cmd_xbar_demux_001_src14_endofpacket), // .endofpacket + .cp_channel (cmd_xbar_demux_001_src14_channel), // .channel + .rf_sink_ready (hex7_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_ready), // rf_sink.ready + .rf_sink_valid (hex7_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_valid), // .valid + .rf_sink_startofpacket (hex7_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_startofpacket), // .startofpacket + .rf_sink_endofpacket (hex7_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_endofpacket), // .endofpacket + .rf_sink_data (hex7_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_data), // .data + .rf_source_ready (hex7_s1_translator_avalon_universal_slave_0_agent_rf_source_ready), // rf_source.ready + .rf_source_valid (hex7_s1_translator_avalon_universal_slave_0_agent_rf_source_valid), // .valid + .rf_source_startofpacket (hex7_s1_translator_avalon_universal_slave_0_agent_rf_source_startofpacket), // .startofpacket + .rf_source_endofpacket (hex7_s1_translator_avalon_universal_slave_0_agent_rf_source_endofpacket), // .endofpacket + .rf_source_data (hex7_s1_translator_avalon_universal_slave_0_agent_rf_source_data), // .data + .rdata_fifo_sink_ready (hex7_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_ready), // rdata_fifo_sink.ready + .rdata_fifo_sink_valid (hex7_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_valid), // .valid + .rdata_fifo_sink_data (hex7_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_data), // .data + .rdata_fifo_src_ready (hex7_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_ready), // rdata_fifo_src.ready + .rdata_fifo_src_valid (hex7_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_valid), // .valid + .rdata_fifo_src_data (hex7_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_data), // .data + .m0_response (2'b00), // (terminated) + .m0_writeresponserequest (), // (terminated) + .m0_writeresponsevalid (1'b0) // (terminated) + ); + + altera_avalon_sc_fifo #( + .SYMBOLS_PER_BEAT (1), + .BITS_PER_SYMBOL (97), + .FIFO_DEPTH (2), + .CHANNEL_WIDTH (0), + .ERROR_WIDTH (0), + .USE_PACKETS (1), + .USE_FILL_LEVEL (0), + .EMPTY_LATENCY (1), + .USE_MEMORY_BLOCKS (0), + .USE_STORE_FORWARD (0), + .USE_ALMOST_FULL_IF (0), + .USE_ALMOST_EMPTY_IF (0) + ) hex7_s1_translator_avalon_universal_slave_0_agent_rsp_fifo ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .in_data (hex7_s1_translator_avalon_universal_slave_0_agent_rf_source_data), // in.data + .in_valid (hex7_s1_translator_avalon_universal_slave_0_agent_rf_source_valid), // .valid + .in_ready (hex7_s1_translator_avalon_universal_slave_0_agent_rf_source_ready), // .ready + .in_startofpacket (hex7_s1_translator_avalon_universal_slave_0_agent_rf_source_startofpacket), // .startofpacket + .in_endofpacket (hex7_s1_translator_avalon_universal_slave_0_agent_rf_source_endofpacket), // .endofpacket + .out_data (hex7_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_data), // out.data + .out_valid (hex7_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_valid), // .valid + .out_ready (hex7_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_ready), // .ready + .out_startofpacket (hex7_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_startofpacket), // .startofpacket + .out_endofpacket (hex7_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_endofpacket), // .endofpacket + .csr_address (2'b00), // (terminated) + .csr_read (1'b0), // (terminated) + .csr_write (1'b0), // (terminated) + .csr_readdata (), // (terminated) + .csr_writedata (32'b00000000000000000000000000000000), // (terminated) + .almost_full_data (), // (terminated) + .almost_empty_data (), // (terminated) + .in_empty (1'b0), // (terminated) + .out_empty (), // (terminated) + .in_error (1'b0), // (terminated) + .out_error (), // (terminated) + .in_channel (1'b0), // (terminated) + .out_channel () // (terminated) + ); + + altera_merlin_slave_agent #( + .PKT_DATA_H (31), + .PKT_DATA_L (0), + .PKT_BEGIN_BURST (74), + .PKT_SYMBOL_W (8), + .PKT_BYTEEN_H (35), + .PKT_BYTEEN_L (32), + .PKT_ADDR_H (54), + .PKT_ADDR_L (36), + .PKT_TRANS_COMPRESSED_READ (55), + .PKT_TRANS_POSTED (56), + .PKT_TRANS_WRITE (57), + .PKT_TRANS_READ (58), + .PKT_TRANS_LOCK (59), + .PKT_SRC_ID_H (80), + .PKT_SRC_ID_L (76), + .PKT_DEST_ID_H (85), + .PKT_DEST_ID_L (81), + .PKT_BURSTWRAP_H (66), + .PKT_BURSTWRAP_L (64), + .PKT_BYTE_CNT_H (63), + .PKT_BYTE_CNT_L (61), + .PKT_PROTECTION_H (89), + .PKT_PROTECTION_L (87), + .PKT_RESPONSE_STATUS_H (95), + .PKT_RESPONSE_STATUS_L (94), + .PKT_BURST_SIZE_H (69), + .PKT_BURST_SIZE_L (67), + .ST_CHANNEL_W (18), + .ST_DATA_W (96), + .AVS_BURSTCOUNT_W (3), + .SUPPRESS_0_BYTEEN_CMD (0), + .PREVENT_FIFO_OVERFLOW (1), + .USE_READRESPONSE (0), + .USE_WRITERESPONSE (0) + ) lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .m0_address (lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_m0_address), // m0.address + .m0_burstcount (lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_m0_burstcount), // .burstcount + .m0_byteenable (lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_m0_byteenable), // .byteenable + .m0_debugaccess (lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_m0_debugaccess), // .debugaccess + .m0_lock (lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_m0_lock), // .lock + .m0_readdata (lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_m0_readdata), // .readdata + .m0_readdatavalid (lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_m0_readdatavalid), // .readdatavalid + .m0_read (lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_m0_read), // .read + .m0_waitrequest (lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_m0_waitrequest), // .waitrequest + .m0_writedata (lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_m0_writedata), // .writedata + .m0_write (lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_m0_write), // .write + .rp_endofpacket (lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rp_endofpacket), // rp.endofpacket + .rp_ready (lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rp_ready), // .ready + .rp_valid (lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rp_valid), // .valid + .rp_data (lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rp_data), // .data + .rp_startofpacket (lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rp_startofpacket), // .startofpacket + .cp_ready (cmd_xbar_demux_001_src15_ready), // cp.ready + .cp_valid (cmd_xbar_demux_001_src15_valid), // .valid + .cp_data (cmd_xbar_demux_001_src15_data), // .data + .cp_startofpacket (cmd_xbar_demux_001_src15_startofpacket), // .startofpacket + .cp_endofpacket (cmd_xbar_demux_001_src15_endofpacket), // .endofpacket + .cp_channel (cmd_xbar_demux_001_src15_channel), // .channel + .rf_sink_ready (lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rsp_fifo_out_ready), // rf_sink.ready + .rf_sink_valid (lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rsp_fifo_out_valid), // .valid + .rf_sink_startofpacket (lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rsp_fifo_out_startofpacket), // .startofpacket + .rf_sink_endofpacket (lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rsp_fifo_out_endofpacket), // .endofpacket + .rf_sink_data (lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rsp_fifo_out_data), // .data + .rf_source_ready (lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rf_source_ready), // rf_source.ready + .rf_source_valid (lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rf_source_valid), // .valid + .rf_source_startofpacket (lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rf_source_startofpacket), // .startofpacket + .rf_source_endofpacket (lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rf_source_endofpacket), // .endofpacket + .rf_source_data (lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rf_source_data), // .data + .rdata_fifo_sink_ready (lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rdata_fifo_src_ready), // rdata_fifo_sink.ready + .rdata_fifo_sink_valid (lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rdata_fifo_src_valid), // .valid + .rdata_fifo_sink_data (lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rdata_fifo_src_data), // .data + .rdata_fifo_src_ready (lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rdata_fifo_src_ready), // rdata_fifo_src.ready + .rdata_fifo_src_valid (lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rdata_fifo_src_valid), // .valid + .rdata_fifo_src_data (lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rdata_fifo_src_data), // .data + .m0_response (2'b00), // (terminated) + .m0_writeresponserequest (), // (terminated) + .m0_writeresponsevalid (1'b0) // (terminated) + ); + + altera_avalon_sc_fifo #( + .SYMBOLS_PER_BEAT (1), + .BITS_PER_SYMBOL (97), + .FIFO_DEPTH (2), + .CHANNEL_WIDTH (0), + .ERROR_WIDTH (0), + .USE_PACKETS (1), + .USE_FILL_LEVEL (0), + .EMPTY_LATENCY (1), + .USE_MEMORY_BLOCKS (0), + .USE_STORE_FORWARD (0), + .USE_ALMOST_FULL_IF (0), + .USE_ALMOST_EMPTY_IF (0) + ) lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rsp_fifo ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .in_data (lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rf_source_data), // in.data + .in_valid (lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rf_source_valid), // .valid + .in_ready (lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rf_source_ready), // .ready + .in_startofpacket (lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rf_source_startofpacket), // .startofpacket + .in_endofpacket (lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rf_source_endofpacket), // .endofpacket + .out_data (lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rsp_fifo_out_data), // out.data + .out_valid (lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rsp_fifo_out_valid), // .valid + .out_ready (lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rsp_fifo_out_ready), // .ready + .out_startofpacket (lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rsp_fifo_out_startofpacket), // .startofpacket + .out_endofpacket (lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rsp_fifo_out_endofpacket), // .endofpacket + .csr_address (2'b00), // (terminated) + .csr_read (1'b0), // (terminated) + .csr_write (1'b0), // (terminated) + .csr_readdata (), // (terminated) + .csr_writedata (32'b00000000000000000000000000000000), // (terminated) + .almost_full_data (), // (terminated) + .almost_empty_data (), // (terminated) + .in_empty (1'b0), // (terminated) + .out_empty (), // (terminated) + .in_error (1'b0), // (terminated) + .out_error (), // (terminated) + .in_channel (1'b0), // (terminated) + .out_channel () // (terminated) + ); + + altera_merlin_slave_agent #( + .PKT_DATA_H (31), + .PKT_DATA_L (0), + .PKT_BEGIN_BURST (74), + .PKT_SYMBOL_W (8), + .PKT_BYTEEN_H (35), + .PKT_BYTEEN_L (32), + .PKT_ADDR_H (54), + .PKT_ADDR_L (36), + .PKT_TRANS_COMPRESSED_READ (55), + .PKT_TRANS_POSTED (56), + .PKT_TRANS_WRITE (57), + .PKT_TRANS_READ (58), + .PKT_TRANS_LOCK (59), + .PKT_SRC_ID_H (80), + .PKT_SRC_ID_L (76), + .PKT_DEST_ID_H (85), + .PKT_DEST_ID_L (81), + .PKT_BURSTWRAP_H (66), + .PKT_BURSTWRAP_L (64), + .PKT_BYTE_CNT_H (63), + .PKT_BYTE_CNT_L (61), + .PKT_PROTECTION_H (89), + .PKT_PROTECTION_L (87), + .PKT_RESPONSE_STATUS_H (95), + .PKT_RESPONSE_STATUS_L (94), + .PKT_BURST_SIZE_H (69), + .PKT_BURST_SIZE_L (67), + .ST_CHANNEL_W (18), + .ST_DATA_W (96), + .AVS_BURSTCOUNT_W (3), + .SUPPRESS_0_BYTEEN_CMD (0), + .PREVENT_FIFO_OVERFLOW (1), + .USE_READRESPONSE (0), + .USE_WRITERESPONSE (0) + ) lcd_on_s1_translator_avalon_universal_slave_0_agent ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .m0_address (lcd_on_s1_translator_avalon_universal_slave_0_agent_m0_address), // m0.address + .m0_burstcount (lcd_on_s1_translator_avalon_universal_slave_0_agent_m0_burstcount), // .burstcount + .m0_byteenable (lcd_on_s1_translator_avalon_universal_slave_0_agent_m0_byteenable), // .byteenable + .m0_debugaccess (lcd_on_s1_translator_avalon_universal_slave_0_agent_m0_debugaccess), // .debugaccess + .m0_lock (lcd_on_s1_translator_avalon_universal_slave_0_agent_m0_lock), // .lock + .m0_readdata (lcd_on_s1_translator_avalon_universal_slave_0_agent_m0_readdata), // .readdata + .m0_readdatavalid (lcd_on_s1_translator_avalon_universal_slave_0_agent_m0_readdatavalid), // .readdatavalid + .m0_read (lcd_on_s1_translator_avalon_universal_slave_0_agent_m0_read), // .read + .m0_waitrequest (lcd_on_s1_translator_avalon_universal_slave_0_agent_m0_waitrequest), // .waitrequest + .m0_writedata (lcd_on_s1_translator_avalon_universal_slave_0_agent_m0_writedata), // .writedata + .m0_write (lcd_on_s1_translator_avalon_universal_slave_0_agent_m0_write), // .write + .rp_endofpacket (lcd_on_s1_translator_avalon_universal_slave_0_agent_rp_endofpacket), // rp.endofpacket + .rp_ready (lcd_on_s1_translator_avalon_universal_slave_0_agent_rp_ready), // .ready + .rp_valid (lcd_on_s1_translator_avalon_universal_slave_0_agent_rp_valid), // .valid + .rp_data (lcd_on_s1_translator_avalon_universal_slave_0_agent_rp_data), // .data + .rp_startofpacket (lcd_on_s1_translator_avalon_universal_slave_0_agent_rp_startofpacket), // .startofpacket + .cp_ready (cmd_xbar_demux_001_src16_ready), // cp.ready + .cp_valid (cmd_xbar_demux_001_src16_valid), // .valid + .cp_data (cmd_xbar_demux_001_src16_data), // .data + .cp_startofpacket (cmd_xbar_demux_001_src16_startofpacket), // .startofpacket + .cp_endofpacket (cmd_xbar_demux_001_src16_endofpacket), // .endofpacket + .cp_channel (cmd_xbar_demux_001_src16_channel), // .channel + .rf_sink_ready (lcd_on_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_ready), // rf_sink.ready + .rf_sink_valid (lcd_on_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_valid), // .valid + .rf_sink_startofpacket (lcd_on_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_startofpacket), // .startofpacket + .rf_sink_endofpacket (lcd_on_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_endofpacket), // .endofpacket + .rf_sink_data (lcd_on_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_data), // .data + .rf_source_ready (lcd_on_s1_translator_avalon_universal_slave_0_agent_rf_source_ready), // rf_source.ready + .rf_source_valid (lcd_on_s1_translator_avalon_universal_slave_0_agent_rf_source_valid), // .valid + .rf_source_startofpacket (lcd_on_s1_translator_avalon_universal_slave_0_agent_rf_source_startofpacket), // .startofpacket + .rf_source_endofpacket (lcd_on_s1_translator_avalon_universal_slave_0_agent_rf_source_endofpacket), // .endofpacket + .rf_source_data (lcd_on_s1_translator_avalon_universal_slave_0_agent_rf_source_data), // .data + .rdata_fifo_sink_ready (lcd_on_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_ready), // rdata_fifo_sink.ready + .rdata_fifo_sink_valid (lcd_on_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_valid), // .valid + .rdata_fifo_sink_data (lcd_on_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_data), // .data + .rdata_fifo_src_ready (lcd_on_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_ready), // rdata_fifo_src.ready + .rdata_fifo_src_valid (lcd_on_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_valid), // .valid + .rdata_fifo_src_data (lcd_on_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_data), // .data + .m0_response (2'b00), // (terminated) + .m0_writeresponserequest (), // (terminated) + .m0_writeresponsevalid (1'b0) // (terminated) + ); + + altera_avalon_sc_fifo #( + .SYMBOLS_PER_BEAT (1), + .BITS_PER_SYMBOL (97), + .FIFO_DEPTH (2), + .CHANNEL_WIDTH (0), + .ERROR_WIDTH (0), + .USE_PACKETS (1), + .USE_FILL_LEVEL (0), + .EMPTY_LATENCY (1), + .USE_MEMORY_BLOCKS (0), + .USE_STORE_FORWARD (0), + .USE_ALMOST_FULL_IF (0), + .USE_ALMOST_EMPTY_IF (0) + ) lcd_on_s1_translator_avalon_universal_slave_0_agent_rsp_fifo ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .in_data (lcd_on_s1_translator_avalon_universal_slave_0_agent_rf_source_data), // in.data + .in_valid (lcd_on_s1_translator_avalon_universal_slave_0_agent_rf_source_valid), // .valid + .in_ready (lcd_on_s1_translator_avalon_universal_slave_0_agent_rf_source_ready), // .ready + .in_startofpacket (lcd_on_s1_translator_avalon_universal_slave_0_agent_rf_source_startofpacket), // .startofpacket + .in_endofpacket (lcd_on_s1_translator_avalon_universal_slave_0_agent_rf_source_endofpacket), // .endofpacket + .out_data (lcd_on_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_data), // out.data + .out_valid (lcd_on_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_valid), // .valid + .out_ready (lcd_on_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_ready), // .ready + .out_startofpacket (lcd_on_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_startofpacket), // .startofpacket + .out_endofpacket (lcd_on_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_endofpacket), // .endofpacket + .csr_address (2'b00), // (terminated) + .csr_read (1'b0), // (terminated) + .csr_write (1'b0), // (terminated) + .csr_readdata (), // (terminated) + .csr_writedata (32'b00000000000000000000000000000000), // (terminated) + .almost_full_data (), // (terminated) + .almost_empty_data (), // (terminated) + .in_empty (1'b0), // (terminated) + .out_empty (), // (terminated) + .in_error (1'b0), // (terminated) + .out_error (), // (terminated) + .in_channel (1'b0), // (terminated) + .out_channel () // (terminated) + ); + + altera_merlin_slave_agent #( + .PKT_DATA_H (31), + .PKT_DATA_L (0), + .PKT_BEGIN_BURST (74), + .PKT_SYMBOL_W (8), + .PKT_BYTEEN_H (35), + .PKT_BYTEEN_L (32), + .PKT_ADDR_H (54), + .PKT_ADDR_L (36), + .PKT_TRANS_COMPRESSED_READ (55), + .PKT_TRANS_POSTED (56), + .PKT_TRANS_WRITE (57), + .PKT_TRANS_READ (58), + .PKT_TRANS_LOCK (59), + .PKT_SRC_ID_H (80), + .PKT_SRC_ID_L (76), + .PKT_DEST_ID_H (85), + .PKT_DEST_ID_L (81), + .PKT_BURSTWRAP_H (66), + .PKT_BURSTWRAP_L (64), + .PKT_BYTE_CNT_H (63), + .PKT_BYTE_CNT_L (61), + .PKT_PROTECTION_H (89), + .PKT_PROTECTION_L (87), + .PKT_RESPONSE_STATUS_H (95), + .PKT_RESPONSE_STATUS_L (94), + .PKT_BURST_SIZE_H (69), + .PKT_BURST_SIZE_L (67), + .ST_CHANNEL_W (18), + .ST_DATA_W (96), + .AVS_BURSTCOUNT_W (3), + .SUPPRESS_0_BYTEEN_CMD (0), + .PREVENT_FIFO_OVERFLOW (1), + .USE_READRESPONSE (0), + .USE_WRITERESPONSE (0) + ) lcd_blon_s1_translator_avalon_universal_slave_0_agent ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .m0_address (lcd_blon_s1_translator_avalon_universal_slave_0_agent_m0_address), // m0.address + .m0_burstcount (lcd_blon_s1_translator_avalon_universal_slave_0_agent_m0_burstcount), // .burstcount + .m0_byteenable (lcd_blon_s1_translator_avalon_universal_slave_0_agent_m0_byteenable), // .byteenable + .m0_debugaccess (lcd_blon_s1_translator_avalon_universal_slave_0_agent_m0_debugaccess), // .debugaccess + .m0_lock (lcd_blon_s1_translator_avalon_universal_slave_0_agent_m0_lock), // .lock + .m0_readdata (lcd_blon_s1_translator_avalon_universal_slave_0_agent_m0_readdata), // .readdata + .m0_readdatavalid (lcd_blon_s1_translator_avalon_universal_slave_0_agent_m0_readdatavalid), // .readdatavalid + .m0_read (lcd_blon_s1_translator_avalon_universal_slave_0_agent_m0_read), // .read + .m0_waitrequest (lcd_blon_s1_translator_avalon_universal_slave_0_agent_m0_waitrequest), // .waitrequest + .m0_writedata (lcd_blon_s1_translator_avalon_universal_slave_0_agent_m0_writedata), // .writedata + .m0_write (lcd_blon_s1_translator_avalon_universal_slave_0_agent_m0_write), // .write + .rp_endofpacket (lcd_blon_s1_translator_avalon_universal_slave_0_agent_rp_endofpacket), // rp.endofpacket + .rp_ready (lcd_blon_s1_translator_avalon_universal_slave_0_agent_rp_ready), // .ready + .rp_valid (lcd_blon_s1_translator_avalon_universal_slave_0_agent_rp_valid), // .valid + .rp_data (lcd_blon_s1_translator_avalon_universal_slave_0_agent_rp_data), // .data + .rp_startofpacket (lcd_blon_s1_translator_avalon_universal_slave_0_agent_rp_startofpacket), // .startofpacket + .cp_ready (cmd_xbar_demux_001_src17_ready), // cp.ready + .cp_valid (cmd_xbar_demux_001_src17_valid), // .valid + .cp_data (cmd_xbar_demux_001_src17_data), // .data + .cp_startofpacket (cmd_xbar_demux_001_src17_startofpacket), // .startofpacket + .cp_endofpacket (cmd_xbar_demux_001_src17_endofpacket), // .endofpacket + .cp_channel (cmd_xbar_demux_001_src17_channel), // .channel + .rf_sink_ready (lcd_blon_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_ready), // rf_sink.ready + .rf_sink_valid (lcd_blon_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_valid), // .valid + .rf_sink_startofpacket (lcd_blon_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_startofpacket), // .startofpacket + .rf_sink_endofpacket (lcd_blon_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_endofpacket), // .endofpacket + .rf_sink_data (lcd_blon_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_data), // .data + .rf_source_ready (lcd_blon_s1_translator_avalon_universal_slave_0_agent_rf_source_ready), // rf_source.ready + .rf_source_valid (lcd_blon_s1_translator_avalon_universal_slave_0_agent_rf_source_valid), // .valid + .rf_source_startofpacket (lcd_blon_s1_translator_avalon_universal_slave_0_agent_rf_source_startofpacket), // .startofpacket + .rf_source_endofpacket (lcd_blon_s1_translator_avalon_universal_slave_0_agent_rf_source_endofpacket), // .endofpacket + .rf_source_data (lcd_blon_s1_translator_avalon_universal_slave_0_agent_rf_source_data), // .data + .rdata_fifo_sink_ready (lcd_blon_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_ready), // rdata_fifo_sink.ready + .rdata_fifo_sink_valid (lcd_blon_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_valid), // .valid + .rdata_fifo_sink_data (lcd_blon_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_data), // .data + .rdata_fifo_src_ready (lcd_blon_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_ready), // rdata_fifo_src.ready + .rdata_fifo_src_valid (lcd_blon_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_valid), // .valid + .rdata_fifo_src_data (lcd_blon_s1_translator_avalon_universal_slave_0_agent_rdata_fifo_src_data), // .data + .m0_response (2'b00), // (terminated) + .m0_writeresponserequest (), // (terminated) + .m0_writeresponsevalid (1'b0) // (terminated) + ); + + altera_avalon_sc_fifo #( + .SYMBOLS_PER_BEAT (1), + .BITS_PER_SYMBOL (97), + .FIFO_DEPTH (2), + .CHANNEL_WIDTH (0), + .ERROR_WIDTH (0), + .USE_PACKETS (1), + .USE_FILL_LEVEL (0), + .EMPTY_LATENCY (1), + .USE_MEMORY_BLOCKS (0), + .USE_STORE_FORWARD (0), + .USE_ALMOST_FULL_IF (0), + .USE_ALMOST_EMPTY_IF (0) + ) lcd_blon_s1_translator_avalon_universal_slave_0_agent_rsp_fifo ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .in_data (lcd_blon_s1_translator_avalon_universal_slave_0_agent_rf_source_data), // in.data + .in_valid (lcd_blon_s1_translator_avalon_universal_slave_0_agent_rf_source_valid), // .valid + .in_ready (lcd_blon_s1_translator_avalon_universal_slave_0_agent_rf_source_ready), // .ready + .in_startofpacket (lcd_blon_s1_translator_avalon_universal_slave_0_agent_rf_source_startofpacket), // .startofpacket + .in_endofpacket (lcd_blon_s1_translator_avalon_universal_slave_0_agent_rf_source_endofpacket), // .endofpacket + .out_data (lcd_blon_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_data), // out.data + .out_valid (lcd_blon_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_valid), // .valid + .out_ready (lcd_blon_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_ready), // .ready + .out_startofpacket (lcd_blon_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_startofpacket), // .startofpacket + .out_endofpacket (lcd_blon_s1_translator_avalon_universal_slave_0_agent_rsp_fifo_out_endofpacket), // .endofpacket + .csr_address (2'b00), // (terminated) + .csr_read (1'b0), // (terminated) + .csr_write (1'b0), // (terminated) + .csr_readdata (), // (terminated) + .csr_writedata (32'b00000000000000000000000000000000), // (terminated) + .almost_full_data (), // (terminated) + .almost_empty_data (), // (terminated) + .in_empty (1'b0), // (terminated) + .out_empty (), // (terminated) + .in_error (1'b0), // (terminated) + .out_error (), // (terminated) + .in_channel (1'b0), // (terminated) + .out_channel () // (terminated) + ); + + nios_system_addr_router addr_router ( + .sink_ready (nios2_processor_instruction_master_translator_avalon_universal_master_0_agent_cp_ready), // sink.ready + .sink_valid (nios2_processor_instruction_master_translator_avalon_universal_master_0_agent_cp_valid), // .valid + .sink_data (nios2_processor_instruction_master_translator_avalon_universal_master_0_agent_cp_data), // .data + .sink_startofpacket (nios2_processor_instruction_master_translator_avalon_universal_master_0_agent_cp_startofpacket), // .startofpacket + .sink_endofpacket (nios2_processor_instruction_master_translator_avalon_universal_master_0_agent_cp_endofpacket), // .endofpacket + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .src_ready (addr_router_src_ready), // src.ready + .src_valid (addr_router_src_valid), // .valid + .src_data (addr_router_src_data), // .data + .src_channel (addr_router_src_channel), // .channel + .src_startofpacket (addr_router_src_startofpacket), // .startofpacket + .src_endofpacket (addr_router_src_endofpacket) // .endofpacket + ); + + nios_system_addr_router_001 addr_router_001 ( + .sink_ready (nios2_processor_data_master_translator_avalon_universal_master_0_agent_cp_ready), // sink.ready + .sink_valid (nios2_processor_data_master_translator_avalon_universal_master_0_agent_cp_valid), // .valid + .sink_data (nios2_processor_data_master_translator_avalon_universal_master_0_agent_cp_data), // .data + .sink_startofpacket (nios2_processor_data_master_translator_avalon_universal_master_0_agent_cp_startofpacket), // .startofpacket + .sink_endofpacket (nios2_processor_data_master_translator_avalon_universal_master_0_agent_cp_endofpacket), // .endofpacket + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .src_ready (addr_router_001_src_ready), // src.ready + .src_valid (addr_router_001_src_valid), // .valid + .src_data (addr_router_001_src_data), // .data + .src_channel (addr_router_001_src_channel), // .channel + .src_startofpacket (addr_router_001_src_startofpacket), // .startofpacket + .src_endofpacket (addr_router_001_src_endofpacket) // .endofpacket + ); + + nios_system_id_router id_router ( + .sink_ready (nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rp_ready), // sink.ready + .sink_valid (nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rp_valid), // .valid + .sink_data (nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rp_data), // .data + .sink_startofpacket (nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rp_startofpacket), // .startofpacket + .sink_endofpacket (nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rp_endofpacket), // .endofpacket + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .src_ready (id_router_src_ready), // src.ready + .src_valid (id_router_src_valid), // .valid + .src_data (id_router_src_data), // .data + .src_channel (id_router_src_channel), // .channel + .src_startofpacket (id_router_src_startofpacket), // .startofpacket + .src_endofpacket (id_router_src_endofpacket) // .endofpacket + ); + + nios_system_id_router id_router_001 ( + .sink_ready (onchip_memory_s1_translator_avalon_universal_slave_0_agent_rp_ready), // sink.ready + .sink_valid (onchip_memory_s1_translator_avalon_universal_slave_0_agent_rp_valid), // .valid + .sink_data (onchip_memory_s1_translator_avalon_universal_slave_0_agent_rp_data), // .data + .sink_startofpacket (onchip_memory_s1_translator_avalon_universal_slave_0_agent_rp_startofpacket), // .startofpacket + .sink_endofpacket (onchip_memory_s1_translator_avalon_universal_slave_0_agent_rp_endofpacket), // .endofpacket + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .src_ready (id_router_001_src_ready), // src.ready + .src_valid (id_router_001_src_valid), // .valid + .src_data (id_router_001_src_data), // .data + .src_channel (id_router_001_src_channel), // .channel + .src_startofpacket (id_router_001_src_startofpacket), // .startofpacket + .src_endofpacket (id_router_001_src_endofpacket) // .endofpacket + ); + + nios_system_id_router_002 id_router_002 ( + .sink_ready (leds_s1_translator_avalon_universal_slave_0_agent_rp_ready), // sink.ready + .sink_valid (leds_s1_translator_avalon_universal_slave_0_agent_rp_valid), // .valid + .sink_data (leds_s1_translator_avalon_universal_slave_0_agent_rp_data), // .data + .sink_startofpacket (leds_s1_translator_avalon_universal_slave_0_agent_rp_startofpacket), // .startofpacket + .sink_endofpacket (leds_s1_translator_avalon_universal_slave_0_agent_rp_endofpacket), // .endofpacket + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .src_ready (id_router_002_src_ready), // src.ready + .src_valid (id_router_002_src_valid), // .valid + .src_data (id_router_002_src_data), // .data + .src_channel (id_router_002_src_channel), // .channel + .src_startofpacket (id_router_002_src_startofpacket), // .startofpacket + .src_endofpacket (id_router_002_src_endofpacket) // .endofpacket + ); + + nios_system_id_router_002 id_router_003 ( + .sink_ready (jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rp_ready), // sink.ready + .sink_valid (jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rp_valid), // .valid + .sink_data (jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rp_data), // .data + .sink_startofpacket (jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rp_startofpacket), // .startofpacket + .sink_endofpacket (jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rp_endofpacket), // .endofpacket + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .src_ready (id_router_003_src_ready), // src.ready + .src_valid (id_router_003_src_valid), // .valid + .src_data (id_router_003_src_data), // .data + .src_channel (id_router_003_src_channel), // .channel + .src_startofpacket (id_router_003_src_startofpacket), // .startofpacket + .src_endofpacket (id_router_003_src_endofpacket) // .endofpacket + ); + + nios_system_id_router_002 id_router_004 ( + .sink_ready (ledrs_s1_translator_avalon_universal_slave_0_agent_rp_ready), // sink.ready + .sink_valid (ledrs_s1_translator_avalon_universal_slave_0_agent_rp_valid), // .valid + .sink_data (ledrs_s1_translator_avalon_universal_slave_0_agent_rp_data), // .data + .sink_startofpacket (ledrs_s1_translator_avalon_universal_slave_0_agent_rp_startofpacket), // .startofpacket + .sink_endofpacket (ledrs_s1_translator_avalon_universal_slave_0_agent_rp_endofpacket), // .endofpacket + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .src_ready (id_router_004_src_ready), // src.ready + .src_valid (id_router_004_src_valid), // .valid + .src_data (id_router_004_src_data), // .data + .src_channel (id_router_004_src_channel), // .channel + .src_startofpacket (id_router_004_src_startofpacket), // .startofpacket + .src_endofpacket (id_router_004_src_endofpacket) // .endofpacket + ); + + nios_system_id_router_002 id_router_005 ( + .sink_ready (switches_s1_translator_avalon_universal_slave_0_agent_rp_ready), // sink.ready + .sink_valid (switches_s1_translator_avalon_universal_slave_0_agent_rp_valid), // .valid + .sink_data (switches_s1_translator_avalon_universal_slave_0_agent_rp_data), // .data + .sink_startofpacket (switches_s1_translator_avalon_universal_slave_0_agent_rp_startofpacket), // .startofpacket + .sink_endofpacket (switches_s1_translator_avalon_universal_slave_0_agent_rp_endofpacket), // .endofpacket + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .src_ready (id_router_005_src_ready), // src.ready + .src_valid (id_router_005_src_valid), // .valid + .src_data (id_router_005_src_data), // .data + .src_channel (id_router_005_src_channel), // .channel + .src_startofpacket (id_router_005_src_startofpacket), // .startofpacket + .src_endofpacket (id_router_005_src_endofpacket) // .endofpacket + ); + + nios_system_id_router_002 id_router_006 ( + .sink_ready (push_switches_s1_translator_avalon_universal_slave_0_agent_rp_ready), // sink.ready + .sink_valid (push_switches_s1_translator_avalon_universal_slave_0_agent_rp_valid), // .valid + .sink_data (push_switches_s1_translator_avalon_universal_slave_0_agent_rp_data), // .data + .sink_startofpacket (push_switches_s1_translator_avalon_universal_slave_0_agent_rp_startofpacket), // .startofpacket + .sink_endofpacket (push_switches_s1_translator_avalon_universal_slave_0_agent_rp_endofpacket), // .endofpacket + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .src_ready (id_router_006_src_ready), // src.ready + .src_valid (id_router_006_src_valid), // .valid + .src_data (id_router_006_src_data), // .data + .src_channel (id_router_006_src_channel), // .channel + .src_startofpacket (id_router_006_src_startofpacket), // .startofpacket + .src_endofpacket (id_router_006_src_endofpacket) // .endofpacket + ); + + nios_system_id_router_002 id_router_007 ( + .sink_ready (hex0_s1_translator_avalon_universal_slave_0_agent_rp_ready), // sink.ready + .sink_valid (hex0_s1_translator_avalon_universal_slave_0_agent_rp_valid), // .valid + .sink_data (hex0_s1_translator_avalon_universal_slave_0_agent_rp_data), // .data + .sink_startofpacket (hex0_s1_translator_avalon_universal_slave_0_agent_rp_startofpacket), // .startofpacket + .sink_endofpacket (hex0_s1_translator_avalon_universal_slave_0_agent_rp_endofpacket), // .endofpacket + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .src_ready (id_router_007_src_ready), // src.ready + .src_valid (id_router_007_src_valid), // .valid + .src_data (id_router_007_src_data), // .data + .src_channel (id_router_007_src_channel), // .channel + .src_startofpacket (id_router_007_src_startofpacket), // .startofpacket + .src_endofpacket (id_router_007_src_endofpacket) // .endofpacket + ); + + nios_system_id_router_002 id_router_008 ( + .sink_ready (hex1_s1_translator_avalon_universal_slave_0_agent_rp_ready), // sink.ready + .sink_valid (hex1_s1_translator_avalon_universal_slave_0_agent_rp_valid), // .valid + .sink_data (hex1_s1_translator_avalon_universal_slave_0_agent_rp_data), // .data + .sink_startofpacket (hex1_s1_translator_avalon_universal_slave_0_agent_rp_startofpacket), // .startofpacket + .sink_endofpacket (hex1_s1_translator_avalon_universal_slave_0_agent_rp_endofpacket), // .endofpacket + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .src_ready (id_router_008_src_ready), // src.ready + .src_valid (id_router_008_src_valid), // .valid + .src_data (id_router_008_src_data), // .data + .src_channel (id_router_008_src_channel), // .channel + .src_startofpacket (id_router_008_src_startofpacket), // .startofpacket + .src_endofpacket (id_router_008_src_endofpacket) // .endofpacket + ); + + nios_system_id_router_002 id_router_009 ( + .sink_ready (hex2_s1_translator_avalon_universal_slave_0_agent_rp_ready), // sink.ready + .sink_valid (hex2_s1_translator_avalon_universal_slave_0_agent_rp_valid), // .valid + .sink_data (hex2_s1_translator_avalon_universal_slave_0_agent_rp_data), // .data + .sink_startofpacket (hex2_s1_translator_avalon_universal_slave_0_agent_rp_startofpacket), // .startofpacket + .sink_endofpacket (hex2_s1_translator_avalon_universal_slave_0_agent_rp_endofpacket), // .endofpacket + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .src_ready (id_router_009_src_ready), // src.ready + .src_valid (id_router_009_src_valid), // .valid + .src_data (id_router_009_src_data), // .data + .src_channel (id_router_009_src_channel), // .channel + .src_startofpacket (id_router_009_src_startofpacket), // .startofpacket + .src_endofpacket (id_router_009_src_endofpacket) // .endofpacket + ); + + nios_system_id_router_002 id_router_010 ( + .sink_ready (hex3_s1_translator_avalon_universal_slave_0_agent_rp_ready), // sink.ready + .sink_valid (hex3_s1_translator_avalon_universal_slave_0_agent_rp_valid), // .valid + .sink_data (hex3_s1_translator_avalon_universal_slave_0_agent_rp_data), // .data + .sink_startofpacket (hex3_s1_translator_avalon_universal_slave_0_agent_rp_startofpacket), // .startofpacket + .sink_endofpacket (hex3_s1_translator_avalon_universal_slave_0_agent_rp_endofpacket), // .endofpacket + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .src_ready (id_router_010_src_ready), // src.ready + .src_valid (id_router_010_src_valid), // .valid + .src_data (id_router_010_src_data), // .data + .src_channel (id_router_010_src_channel), // .channel + .src_startofpacket (id_router_010_src_startofpacket), // .startofpacket + .src_endofpacket (id_router_010_src_endofpacket) // .endofpacket + ); + + nios_system_id_router_002 id_router_011 ( + .sink_ready (hex4_s1_translator_avalon_universal_slave_0_agent_rp_ready), // sink.ready + .sink_valid (hex4_s1_translator_avalon_universal_slave_0_agent_rp_valid), // .valid + .sink_data (hex4_s1_translator_avalon_universal_slave_0_agent_rp_data), // .data + .sink_startofpacket (hex4_s1_translator_avalon_universal_slave_0_agent_rp_startofpacket), // .startofpacket + .sink_endofpacket (hex4_s1_translator_avalon_universal_slave_0_agent_rp_endofpacket), // .endofpacket + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .src_ready (id_router_011_src_ready), // src.ready + .src_valid (id_router_011_src_valid), // .valid + .src_data (id_router_011_src_data), // .data + .src_channel (id_router_011_src_channel), // .channel + .src_startofpacket (id_router_011_src_startofpacket), // .startofpacket + .src_endofpacket (id_router_011_src_endofpacket) // .endofpacket + ); + + nios_system_id_router_002 id_router_012 ( + .sink_ready (hex5_s1_translator_avalon_universal_slave_0_agent_rp_ready), // sink.ready + .sink_valid (hex5_s1_translator_avalon_universal_slave_0_agent_rp_valid), // .valid + .sink_data (hex5_s1_translator_avalon_universal_slave_0_agent_rp_data), // .data + .sink_startofpacket (hex5_s1_translator_avalon_universal_slave_0_agent_rp_startofpacket), // .startofpacket + .sink_endofpacket (hex5_s1_translator_avalon_universal_slave_0_agent_rp_endofpacket), // .endofpacket + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .src_ready (id_router_012_src_ready), // src.ready + .src_valid (id_router_012_src_valid), // .valid + .src_data (id_router_012_src_data), // .data + .src_channel (id_router_012_src_channel), // .channel + .src_startofpacket (id_router_012_src_startofpacket), // .startofpacket + .src_endofpacket (id_router_012_src_endofpacket) // .endofpacket + ); + + nios_system_id_router_002 id_router_013 ( + .sink_ready (hex6_s1_translator_avalon_universal_slave_0_agent_rp_ready), // sink.ready + .sink_valid (hex6_s1_translator_avalon_universal_slave_0_agent_rp_valid), // .valid + .sink_data (hex6_s1_translator_avalon_universal_slave_0_agent_rp_data), // .data + .sink_startofpacket (hex6_s1_translator_avalon_universal_slave_0_agent_rp_startofpacket), // .startofpacket + .sink_endofpacket (hex6_s1_translator_avalon_universal_slave_0_agent_rp_endofpacket), // .endofpacket + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .src_ready (id_router_013_src_ready), // src.ready + .src_valid (id_router_013_src_valid), // .valid + .src_data (id_router_013_src_data), // .data + .src_channel (id_router_013_src_channel), // .channel + .src_startofpacket (id_router_013_src_startofpacket), // .startofpacket + .src_endofpacket (id_router_013_src_endofpacket) // .endofpacket + ); + + nios_system_id_router_002 id_router_014 ( + .sink_ready (hex7_s1_translator_avalon_universal_slave_0_agent_rp_ready), // sink.ready + .sink_valid (hex7_s1_translator_avalon_universal_slave_0_agent_rp_valid), // .valid + .sink_data (hex7_s1_translator_avalon_universal_slave_0_agent_rp_data), // .data + .sink_startofpacket (hex7_s1_translator_avalon_universal_slave_0_agent_rp_startofpacket), // .startofpacket + .sink_endofpacket (hex7_s1_translator_avalon_universal_slave_0_agent_rp_endofpacket), // .endofpacket + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .src_ready (id_router_014_src_ready), // src.ready + .src_valid (id_router_014_src_valid), // .valid + .src_data (id_router_014_src_data), // .data + .src_channel (id_router_014_src_channel), // .channel + .src_startofpacket (id_router_014_src_startofpacket), // .startofpacket + .src_endofpacket (id_router_014_src_endofpacket) // .endofpacket + ); + + nios_system_id_router_002 id_router_015 ( + .sink_ready (lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rp_ready), // sink.ready + .sink_valid (lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rp_valid), // .valid + .sink_data (lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rp_data), // .data + .sink_startofpacket (lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rp_startofpacket), // .startofpacket + .sink_endofpacket (lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rp_endofpacket), // .endofpacket + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .src_ready (id_router_015_src_ready), // src.ready + .src_valid (id_router_015_src_valid), // .valid + .src_data (id_router_015_src_data), // .data + .src_channel (id_router_015_src_channel), // .channel + .src_startofpacket (id_router_015_src_startofpacket), // .startofpacket + .src_endofpacket (id_router_015_src_endofpacket) // .endofpacket + ); + + nios_system_id_router_002 id_router_016 ( + .sink_ready (lcd_on_s1_translator_avalon_universal_slave_0_agent_rp_ready), // sink.ready + .sink_valid (lcd_on_s1_translator_avalon_universal_slave_0_agent_rp_valid), // .valid + .sink_data (lcd_on_s1_translator_avalon_universal_slave_0_agent_rp_data), // .data + .sink_startofpacket (lcd_on_s1_translator_avalon_universal_slave_0_agent_rp_startofpacket), // .startofpacket + .sink_endofpacket (lcd_on_s1_translator_avalon_universal_slave_0_agent_rp_endofpacket), // .endofpacket + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .src_ready (id_router_016_src_ready), // src.ready + .src_valid (id_router_016_src_valid), // .valid + .src_data (id_router_016_src_data), // .data + .src_channel (id_router_016_src_channel), // .channel + .src_startofpacket (id_router_016_src_startofpacket), // .startofpacket + .src_endofpacket (id_router_016_src_endofpacket) // .endofpacket + ); + + nios_system_id_router_002 id_router_017 ( + .sink_ready (lcd_blon_s1_translator_avalon_universal_slave_0_agent_rp_ready), // sink.ready + .sink_valid (lcd_blon_s1_translator_avalon_universal_slave_0_agent_rp_valid), // .valid + .sink_data (lcd_blon_s1_translator_avalon_universal_slave_0_agent_rp_data), // .data + .sink_startofpacket (lcd_blon_s1_translator_avalon_universal_slave_0_agent_rp_startofpacket), // .startofpacket + .sink_endofpacket (lcd_blon_s1_translator_avalon_universal_slave_0_agent_rp_endofpacket), // .endofpacket + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .src_ready (id_router_017_src_ready), // src.ready + .src_valid (id_router_017_src_valid), // .valid + .src_data (id_router_017_src_data), // .data + .src_channel (id_router_017_src_channel), // .channel + .src_startofpacket (id_router_017_src_startofpacket), // .startofpacket + .src_endofpacket (id_router_017_src_endofpacket) // .endofpacket + ); + + altera_reset_controller #( + .NUM_RESET_INPUTS (2), + .OUTPUT_RESET_SYNC_EDGES ("deassert"), + .SYNC_DEPTH (2), + .RESET_REQUEST_PRESENT (1) + ) rst_controller ( + .reset_in0 (~reset_reset_n), // reset_in0.reset + .reset_in1 (nios2_processor_jtag_debug_module_reset_reset), // reset_in1.reset + .clk (clk_clk), // clk.clk + .reset_out (rst_controller_reset_out_reset), // reset_out.reset + .reset_req (rst_controller_reset_out_reset_req), // .reset_req + .reset_in2 (1'b0), // (terminated) + .reset_in3 (1'b0), // (terminated) + .reset_in4 (1'b0), // (terminated) + .reset_in5 (1'b0), // (terminated) + .reset_in6 (1'b0), // (terminated) + .reset_in7 (1'b0), // (terminated) + .reset_in8 (1'b0), // (terminated) + .reset_in9 (1'b0), // (terminated) + .reset_in10 (1'b0), // (terminated) + .reset_in11 (1'b0), // (terminated) + .reset_in12 (1'b0), // (terminated) + .reset_in13 (1'b0), // (terminated) + .reset_in14 (1'b0), // (terminated) + .reset_in15 (1'b0) // (terminated) + ); + + nios_system_cmd_xbar_demux cmd_xbar_demux ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .sink_ready (addr_router_src_ready), // sink.ready + .sink_channel (addr_router_src_channel), // .channel + .sink_data (addr_router_src_data), // .data + .sink_startofpacket (addr_router_src_startofpacket), // .startofpacket + .sink_endofpacket (addr_router_src_endofpacket), // .endofpacket + .sink_valid (addr_router_src_valid), // .valid + .src0_ready (cmd_xbar_demux_src0_ready), // src0.ready + .src0_valid (cmd_xbar_demux_src0_valid), // .valid + .src0_data (cmd_xbar_demux_src0_data), // .data + .src0_channel (cmd_xbar_demux_src0_channel), // .channel + .src0_startofpacket (cmd_xbar_demux_src0_startofpacket), // .startofpacket + .src0_endofpacket (cmd_xbar_demux_src0_endofpacket), // .endofpacket + .src1_ready (cmd_xbar_demux_src1_ready), // src1.ready + .src1_valid (cmd_xbar_demux_src1_valid), // .valid + .src1_data (cmd_xbar_demux_src1_data), // .data + .src1_channel (cmd_xbar_demux_src1_channel), // .channel + .src1_startofpacket (cmd_xbar_demux_src1_startofpacket), // .startofpacket + .src1_endofpacket (cmd_xbar_demux_src1_endofpacket) // .endofpacket + ); + + nios_system_cmd_xbar_demux_001 cmd_xbar_demux_001 ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .sink_ready (addr_router_001_src_ready), // sink.ready + .sink_channel (addr_router_001_src_channel), // .channel + .sink_data (addr_router_001_src_data), // .data + .sink_startofpacket (addr_router_001_src_startofpacket), // .startofpacket + .sink_endofpacket (addr_router_001_src_endofpacket), // .endofpacket + .sink_valid (addr_router_001_src_valid), // .valid + .src0_ready (cmd_xbar_demux_001_src0_ready), // src0.ready + .src0_valid (cmd_xbar_demux_001_src0_valid), // .valid + .src0_data (cmd_xbar_demux_001_src0_data), // .data + .src0_channel (cmd_xbar_demux_001_src0_channel), // .channel + .src0_startofpacket (cmd_xbar_demux_001_src0_startofpacket), // .startofpacket + .src0_endofpacket (cmd_xbar_demux_001_src0_endofpacket), // .endofpacket + .src1_ready (cmd_xbar_demux_001_src1_ready), // src1.ready + .src1_valid (cmd_xbar_demux_001_src1_valid), // .valid + .src1_data (cmd_xbar_demux_001_src1_data), // .data + .src1_channel (cmd_xbar_demux_001_src1_channel), // .channel + .src1_startofpacket (cmd_xbar_demux_001_src1_startofpacket), // .startofpacket + .src1_endofpacket (cmd_xbar_demux_001_src1_endofpacket), // .endofpacket + .src2_ready (cmd_xbar_demux_001_src2_ready), // src2.ready + .src2_valid (cmd_xbar_demux_001_src2_valid), // .valid + .src2_data (cmd_xbar_demux_001_src2_data), // .data + .src2_channel (cmd_xbar_demux_001_src2_channel), // .channel + .src2_startofpacket (cmd_xbar_demux_001_src2_startofpacket), // .startofpacket + .src2_endofpacket (cmd_xbar_demux_001_src2_endofpacket), // .endofpacket + .src3_ready (cmd_xbar_demux_001_src3_ready), // src3.ready + .src3_valid (cmd_xbar_demux_001_src3_valid), // .valid + .src3_data (cmd_xbar_demux_001_src3_data), // .data + .src3_channel (cmd_xbar_demux_001_src3_channel), // .channel + .src3_startofpacket (cmd_xbar_demux_001_src3_startofpacket), // .startofpacket + .src3_endofpacket (cmd_xbar_demux_001_src3_endofpacket), // .endofpacket + .src4_ready (cmd_xbar_demux_001_src4_ready), // src4.ready + .src4_valid (cmd_xbar_demux_001_src4_valid), // .valid + .src4_data (cmd_xbar_demux_001_src4_data), // .data + .src4_channel (cmd_xbar_demux_001_src4_channel), // .channel + .src4_startofpacket (cmd_xbar_demux_001_src4_startofpacket), // .startofpacket + .src4_endofpacket (cmd_xbar_demux_001_src4_endofpacket), // .endofpacket + .src5_ready (cmd_xbar_demux_001_src5_ready), // src5.ready + .src5_valid (cmd_xbar_demux_001_src5_valid), // .valid + .src5_data (cmd_xbar_demux_001_src5_data), // .data + .src5_channel (cmd_xbar_demux_001_src5_channel), // .channel + .src5_startofpacket (cmd_xbar_demux_001_src5_startofpacket), // .startofpacket + .src5_endofpacket (cmd_xbar_demux_001_src5_endofpacket), // .endofpacket + .src6_ready (cmd_xbar_demux_001_src6_ready), // src6.ready + .src6_valid (cmd_xbar_demux_001_src6_valid), // .valid + .src6_data (cmd_xbar_demux_001_src6_data), // .data + .src6_channel (cmd_xbar_demux_001_src6_channel), // .channel + .src6_startofpacket (cmd_xbar_demux_001_src6_startofpacket), // .startofpacket + .src6_endofpacket (cmd_xbar_demux_001_src6_endofpacket), // .endofpacket + .src7_ready (cmd_xbar_demux_001_src7_ready), // src7.ready + .src7_valid (cmd_xbar_demux_001_src7_valid), // .valid + .src7_data (cmd_xbar_demux_001_src7_data), // .data + .src7_channel (cmd_xbar_demux_001_src7_channel), // .channel + .src7_startofpacket (cmd_xbar_demux_001_src7_startofpacket), // .startofpacket + .src7_endofpacket (cmd_xbar_demux_001_src7_endofpacket), // .endofpacket + .src8_ready (cmd_xbar_demux_001_src8_ready), // src8.ready + .src8_valid (cmd_xbar_demux_001_src8_valid), // .valid + .src8_data (cmd_xbar_demux_001_src8_data), // .data + .src8_channel (cmd_xbar_demux_001_src8_channel), // .channel + .src8_startofpacket (cmd_xbar_demux_001_src8_startofpacket), // .startofpacket + .src8_endofpacket (cmd_xbar_demux_001_src8_endofpacket), // .endofpacket + .src9_ready (cmd_xbar_demux_001_src9_ready), // src9.ready + .src9_valid (cmd_xbar_demux_001_src9_valid), // .valid + .src9_data (cmd_xbar_demux_001_src9_data), // .data + .src9_channel (cmd_xbar_demux_001_src9_channel), // .channel + .src9_startofpacket (cmd_xbar_demux_001_src9_startofpacket), // .startofpacket + .src9_endofpacket (cmd_xbar_demux_001_src9_endofpacket), // .endofpacket + .src10_ready (cmd_xbar_demux_001_src10_ready), // src10.ready + .src10_valid (cmd_xbar_demux_001_src10_valid), // .valid + .src10_data (cmd_xbar_demux_001_src10_data), // .data + .src10_channel (cmd_xbar_demux_001_src10_channel), // .channel + .src10_startofpacket (cmd_xbar_demux_001_src10_startofpacket), // .startofpacket + .src10_endofpacket (cmd_xbar_demux_001_src10_endofpacket), // .endofpacket + .src11_ready (cmd_xbar_demux_001_src11_ready), // src11.ready + .src11_valid (cmd_xbar_demux_001_src11_valid), // .valid + .src11_data (cmd_xbar_demux_001_src11_data), // .data + .src11_channel (cmd_xbar_demux_001_src11_channel), // .channel + .src11_startofpacket (cmd_xbar_demux_001_src11_startofpacket), // .startofpacket + .src11_endofpacket (cmd_xbar_demux_001_src11_endofpacket), // .endofpacket + .src12_ready (cmd_xbar_demux_001_src12_ready), // src12.ready + .src12_valid (cmd_xbar_demux_001_src12_valid), // .valid + .src12_data (cmd_xbar_demux_001_src12_data), // .data + .src12_channel (cmd_xbar_demux_001_src12_channel), // .channel + .src12_startofpacket (cmd_xbar_demux_001_src12_startofpacket), // .startofpacket + .src12_endofpacket (cmd_xbar_demux_001_src12_endofpacket), // .endofpacket + .src13_ready (cmd_xbar_demux_001_src13_ready), // src13.ready + .src13_valid (cmd_xbar_demux_001_src13_valid), // .valid + .src13_data (cmd_xbar_demux_001_src13_data), // .data + .src13_channel (cmd_xbar_demux_001_src13_channel), // .channel + .src13_startofpacket (cmd_xbar_demux_001_src13_startofpacket), // .startofpacket + .src13_endofpacket (cmd_xbar_demux_001_src13_endofpacket), // .endofpacket + .src14_ready (cmd_xbar_demux_001_src14_ready), // src14.ready + .src14_valid (cmd_xbar_demux_001_src14_valid), // .valid + .src14_data (cmd_xbar_demux_001_src14_data), // .data + .src14_channel (cmd_xbar_demux_001_src14_channel), // .channel + .src14_startofpacket (cmd_xbar_demux_001_src14_startofpacket), // .startofpacket + .src14_endofpacket (cmd_xbar_demux_001_src14_endofpacket), // .endofpacket + .src15_ready (cmd_xbar_demux_001_src15_ready), // src15.ready + .src15_valid (cmd_xbar_demux_001_src15_valid), // .valid + .src15_data (cmd_xbar_demux_001_src15_data), // .data + .src15_channel (cmd_xbar_demux_001_src15_channel), // .channel + .src15_startofpacket (cmd_xbar_demux_001_src15_startofpacket), // .startofpacket + .src15_endofpacket (cmd_xbar_demux_001_src15_endofpacket), // .endofpacket + .src16_ready (cmd_xbar_demux_001_src16_ready), // src16.ready + .src16_valid (cmd_xbar_demux_001_src16_valid), // .valid + .src16_data (cmd_xbar_demux_001_src16_data), // .data + .src16_channel (cmd_xbar_demux_001_src16_channel), // .channel + .src16_startofpacket (cmd_xbar_demux_001_src16_startofpacket), // .startofpacket + .src16_endofpacket (cmd_xbar_demux_001_src16_endofpacket), // .endofpacket + .src17_ready (cmd_xbar_demux_001_src17_ready), // src17.ready + .src17_valid (cmd_xbar_demux_001_src17_valid), // .valid + .src17_data (cmd_xbar_demux_001_src17_data), // .data + .src17_channel (cmd_xbar_demux_001_src17_channel), // .channel + .src17_startofpacket (cmd_xbar_demux_001_src17_startofpacket), // .startofpacket + .src17_endofpacket (cmd_xbar_demux_001_src17_endofpacket) // .endofpacket + ); + + nios_system_cmd_xbar_mux cmd_xbar_mux ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .src_ready (cmd_xbar_mux_src_ready), // src.ready + .src_valid (cmd_xbar_mux_src_valid), // .valid + .src_data (cmd_xbar_mux_src_data), // .data + .src_channel (cmd_xbar_mux_src_channel), // .channel + .src_startofpacket (cmd_xbar_mux_src_startofpacket), // .startofpacket + .src_endofpacket (cmd_xbar_mux_src_endofpacket), // .endofpacket + .sink0_ready (cmd_xbar_demux_src0_ready), // sink0.ready + .sink0_valid (cmd_xbar_demux_src0_valid), // .valid + .sink0_channel (cmd_xbar_demux_src0_channel), // .channel + .sink0_data (cmd_xbar_demux_src0_data), // .data + .sink0_startofpacket (cmd_xbar_demux_src0_startofpacket), // .startofpacket + .sink0_endofpacket (cmd_xbar_demux_src0_endofpacket), // .endofpacket + .sink1_ready (cmd_xbar_demux_001_src0_ready), // sink1.ready + .sink1_valid (cmd_xbar_demux_001_src0_valid), // .valid + .sink1_channel (cmd_xbar_demux_001_src0_channel), // .channel + .sink1_data (cmd_xbar_demux_001_src0_data), // .data + .sink1_startofpacket (cmd_xbar_demux_001_src0_startofpacket), // .startofpacket + .sink1_endofpacket (cmd_xbar_demux_001_src0_endofpacket) // .endofpacket + ); + + nios_system_cmd_xbar_mux cmd_xbar_mux_001 ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .src_ready (cmd_xbar_mux_001_src_ready), // src.ready + .src_valid (cmd_xbar_mux_001_src_valid), // .valid + .src_data (cmd_xbar_mux_001_src_data), // .data + .src_channel (cmd_xbar_mux_001_src_channel), // .channel + .src_startofpacket (cmd_xbar_mux_001_src_startofpacket), // .startofpacket + .src_endofpacket (cmd_xbar_mux_001_src_endofpacket), // .endofpacket + .sink0_ready (cmd_xbar_demux_src1_ready), // sink0.ready + .sink0_valid (cmd_xbar_demux_src1_valid), // .valid + .sink0_channel (cmd_xbar_demux_src1_channel), // .channel + .sink0_data (cmd_xbar_demux_src1_data), // .data + .sink0_startofpacket (cmd_xbar_demux_src1_startofpacket), // .startofpacket + .sink0_endofpacket (cmd_xbar_demux_src1_endofpacket), // .endofpacket + .sink1_ready (cmd_xbar_demux_001_src1_ready), // sink1.ready + .sink1_valid (cmd_xbar_demux_001_src1_valid), // .valid + .sink1_channel (cmd_xbar_demux_001_src1_channel), // .channel + .sink1_data (cmd_xbar_demux_001_src1_data), // .data + .sink1_startofpacket (cmd_xbar_demux_001_src1_startofpacket), // .startofpacket + .sink1_endofpacket (cmd_xbar_demux_001_src1_endofpacket) // .endofpacket + ); + + nios_system_cmd_xbar_demux rsp_xbar_demux ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .sink_ready (id_router_src_ready), // sink.ready + .sink_channel (id_router_src_channel), // .channel + .sink_data (id_router_src_data), // .data + .sink_startofpacket (id_router_src_startofpacket), // .startofpacket + .sink_endofpacket (id_router_src_endofpacket), // .endofpacket + .sink_valid (id_router_src_valid), // .valid + .src0_ready (rsp_xbar_demux_src0_ready), // src0.ready + .src0_valid (rsp_xbar_demux_src0_valid), // .valid + .src0_data (rsp_xbar_demux_src0_data), // .data + .src0_channel (rsp_xbar_demux_src0_channel), // .channel + .src0_startofpacket (rsp_xbar_demux_src0_startofpacket), // .startofpacket + .src0_endofpacket (rsp_xbar_demux_src0_endofpacket), // .endofpacket + .src1_ready (rsp_xbar_demux_src1_ready), // src1.ready + .src1_valid (rsp_xbar_demux_src1_valid), // .valid + .src1_data (rsp_xbar_demux_src1_data), // .data + .src1_channel (rsp_xbar_demux_src1_channel), // .channel + .src1_startofpacket (rsp_xbar_demux_src1_startofpacket), // .startofpacket + .src1_endofpacket (rsp_xbar_demux_src1_endofpacket) // .endofpacket + ); + + nios_system_cmd_xbar_demux rsp_xbar_demux_001 ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .sink_ready (id_router_001_src_ready), // sink.ready + .sink_channel (id_router_001_src_channel), // .channel + .sink_data (id_router_001_src_data), // .data + .sink_startofpacket (id_router_001_src_startofpacket), // .startofpacket + .sink_endofpacket (id_router_001_src_endofpacket), // .endofpacket + .sink_valid (id_router_001_src_valid), // .valid + .src0_ready (rsp_xbar_demux_001_src0_ready), // src0.ready + .src0_valid (rsp_xbar_demux_001_src0_valid), // .valid + .src0_data (rsp_xbar_demux_001_src0_data), // .data + .src0_channel (rsp_xbar_demux_001_src0_channel), // .channel + .src0_startofpacket (rsp_xbar_demux_001_src0_startofpacket), // .startofpacket + .src0_endofpacket (rsp_xbar_demux_001_src0_endofpacket), // .endofpacket + .src1_ready (rsp_xbar_demux_001_src1_ready), // src1.ready + .src1_valid (rsp_xbar_demux_001_src1_valid), // .valid + .src1_data (rsp_xbar_demux_001_src1_data), // .data + .src1_channel (rsp_xbar_demux_001_src1_channel), // .channel + .src1_startofpacket (rsp_xbar_demux_001_src1_startofpacket), // .startofpacket + .src1_endofpacket (rsp_xbar_demux_001_src1_endofpacket) // .endofpacket + ); + + nios_system_rsp_xbar_demux_002 rsp_xbar_demux_002 ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .sink_ready (id_router_002_src_ready), // sink.ready + .sink_channel (id_router_002_src_channel), // .channel + .sink_data (id_router_002_src_data), // .data + .sink_startofpacket (id_router_002_src_startofpacket), // .startofpacket + .sink_endofpacket (id_router_002_src_endofpacket), // .endofpacket + .sink_valid (id_router_002_src_valid), // .valid + .src0_ready (rsp_xbar_demux_002_src0_ready), // src0.ready + .src0_valid (rsp_xbar_demux_002_src0_valid), // .valid + .src0_data (rsp_xbar_demux_002_src0_data), // .data + .src0_channel (rsp_xbar_demux_002_src0_channel), // .channel + .src0_startofpacket (rsp_xbar_demux_002_src0_startofpacket), // .startofpacket + .src0_endofpacket (rsp_xbar_demux_002_src0_endofpacket) // .endofpacket + ); + + nios_system_rsp_xbar_demux_002 rsp_xbar_demux_003 ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .sink_ready (id_router_003_src_ready), // sink.ready + .sink_channel (id_router_003_src_channel), // .channel + .sink_data (id_router_003_src_data), // .data + .sink_startofpacket (id_router_003_src_startofpacket), // .startofpacket + .sink_endofpacket (id_router_003_src_endofpacket), // .endofpacket + .sink_valid (id_router_003_src_valid), // .valid + .src0_ready (rsp_xbar_demux_003_src0_ready), // src0.ready + .src0_valid (rsp_xbar_demux_003_src0_valid), // .valid + .src0_data (rsp_xbar_demux_003_src0_data), // .data + .src0_channel (rsp_xbar_demux_003_src0_channel), // .channel + .src0_startofpacket (rsp_xbar_demux_003_src0_startofpacket), // .startofpacket + .src0_endofpacket (rsp_xbar_demux_003_src0_endofpacket) // .endofpacket + ); + + nios_system_rsp_xbar_demux_002 rsp_xbar_demux_004 ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .sink_ready (id_router_004_src_ready), // sink.ready + .sink_channel (id_router_004_src_channel), // .channel + .sink_data (id_router_004_src_data), // .data + .sink_startofpacket (id_router_004_src_startofpacket), // .startofpacket + .sink_endofpacket (id_router_004_src_endofpacket), // .endofpacket + .sink_valid (id_router_004_src_valid), // .valid + .src0_ready (rsp_xbar_demux_004_src0_ready), // src0.ready + .src0_valid (rsp_xbar_demux_004_src0_valid), // .valid + .src0_data (rsp_xbar_demux_004_src0_data), // .data + .src0_channel (rsp_xbar_demux_004_src0_channel), // .channel + .src0_startofpacket (rsp_xbar_demux_004_src0_startofpacket), // .startofpacket + .src0_endofpacket (rsp_xbar_demux_004_src0_endofpacket) // .endofpacket + ); + + nios_system_rsp_xbar_demux_002 rsp_xbar_demux_005 ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .sink_ready (id_router_005_src_ready), // sink.ready + .sink_channel (id_router_005_src_channel), // .channel + .sink_data (id_router_005_src_data), // .data + .sink_startofpacket (id_router_005_src_startofpacket), // .startofpacket + .sink_endofpacket (id_router_005_src_endofpacket), // .endofpacket + .sink_valid (id_router_005_src_valid), // .valid + .src0_ready (rsp_xbar_demux_005_src0_ready), // src0.ready + .src0_valid (rsp_xbar_demux_005_src0_valid), // .valid + .src0_data (rsp_xbar_demux_005_src0_data), // .data + .src0_channel (rsp_xbar_demux_005_src0_channel), // .channel + .src0_startofpacket (rsp_xbar_demux_005_src0_startofpacket), // .startofpacket + .src0_endofpacket (rsp_xbar_demux_005_src0_endofpacket) // .endofpacket + ); + + nios_system_rsp_xbar_demux_002 rsp_xbar_demux_006 ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .sink_ready (id_router_006_src_ready), // sink.ready + .sink_channel (id_router_006_src_channel), // .channel + .sink_data (id_router_006_src_data), // .data + .sink_startofpacket (id_router_006_src_startofpacket), // .startofpacket + .sink_endofpacket (id_router_006_src_endofpacket), // .endofpacket + .sink_valid (id_router_006_src_valid), // .valid + .src0_ready (rsp_xbar_demux_006_src0_ready), // src0.ready + .src0_valid (rsp_xbar_demux_006_src0_valid), // .valid + .src0_data (rsp_xbar_demux_006_src0_data), // .data + .src0_channel (rsp_xbar_demux_006_src0_channel), // .channel + .src0_startofpacket (rsp_xbar_demux_006_src0_startofpacket), // .startofpacket + .src0_endofpacket (rsp_xbar_demux_006_src0_endofpacket) // .endofpacket + ); + + nios_system_rsp_xbar_demux_002 rsp_xbar_demux_007 ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .sink_ready (id_router_007_src_ready), // sink.ready + .sink_channel (id_router_007_src_channel), // .channel + .sink_data (id_router_007_src_data), // .data + .sink_startofpacket (id_router_007_src_startofpacket), // .startofpacket + .sink_endofpacket (id_router_007_src_endofpacket), // .endofpacket + .sink_valid (id_router_007_src_valid), // .valid + .src0_ready (rsp_xbar_demux_007_src0_ready), // src0.ready + .src0_valid (rsp_xbar_demux_007_src0_valid), // .valid + .src0_data (rsp_xbar_demux_007_src0_data), // .data + .src0_channel (rsp_xbar_demux_007_src0_channel), // .channel + .src0_startofpacket (rsp_xbar_demux_007_src0_startofpacket), // .startofpacket + .src0_endofpacket (rsp_xbar_demux_007_src0_endofpacket) // .endofpacket + ); + + nios_system_rsp_xbar_demux_002 rsp_xbar_demux_008 ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .sink_ready (id_router_008_src_ready), // sink.ready + .sink_channel (id_router_008_src_channel), // .channel + .sink_data (id_router_008_src_data), // .data + .sink_startofpacket (id_router_008_src_startofpacket), // .startofpacket + .sink_endofpacket (id_router_008_src_endofpacket), // .endofpacket + .sink_valid (id_router_008_src_valid), // .valid + .src0_ready (rsp_xbar_demux_008_src0_ready), // src0.ready + .src0_valid (rsp_xbar_demux_008_src0_valid), // .valid + .src0_data (rsp_xbar_demux_008_src0_data), // .data + .src0_channel (rsp_xbar_demux_008_src0_channel), // .channel + .src0_startofpacket (rsp_xbar_demux_008_src0_startofpacket), // .startofpacket + .src0_endofpacket (rsp_xbar_demux_008_src0_endofpacket) // .endofpacket + ); + + nios_system_rsp_xbar_demux_002 rsp_xbar_demux_009 ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .sink_ready (id_router_009_src_ready), // sink.ready + .sink_channel (id_router_009_src_channel), // .channel + .sink_data (id_router_009_src_data), // .data + .sink_startofpacket (id_router_009_src_startofpacket), // .startofpacket + .sink_endofpacket (id_router_009_src_endofpacket), // .endofpacket + .sink_valid (id_router_009_src_valid), // .valid + .src0_ready (rsp_xbar_demux_009_src0_ready), // src0.ready + .src0_valid (rsp_xbar_demux_009_src0_valid), // .valid + .src0_data (rsp_xbar_demux_009_src0_data), // .data + .src0_channel (rsp_xbar_demux_009_src0_channel), // .channel + .src0_startofpacket (rsp_xbar_demux_009_src0_startofpacket), // .startofpacket + .src0_endofpacket (rsp_xbar_demux_009_src0_endofpacket) // .endofpacket + ); + + nios_system_rsp_xbar_demux_002 rsp_xbar_demux_010 ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .sink_ready (id_router_010_src_ready), // sink.ready + .sink_channel (id_router_010_src_channel), // .channel + .sink_data (id_router_010_src_data), // .data + .sink_startofpacket (id_router_010_src_startofpacket), // .startofpacket + .sink_endofpacket (id_router_010_src_endofpacket), // .endofpacket + .sink_valid (id_router_010_src_valid), // .valid + .src0_ready (rsp_xbar_demux_010_src0_ready), // src0.ready + .src0_valid (rsp_xbar_demux_010_src0_valid), // .valid + .src0_data (rsp_xbar_demux_010_src0_data), // .data + .src0_channel (rsp_xbar_demux_010_src0_channel), // .channel + .src0_startofpacket (rsp_xbar_demux_010_src0_startofpacket), // .startofpacket + .src0_endofpacket (rsp_xbar_demux_010_src0_endofpacket) // .endofpacket + ); + + nios_system_rsp_xbar_demux_002 rsp_xbar_demux_011 ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .sink_ready (id_router_011_src_ready), // sink.ready + .sink_channel (id_router_011_src_channel), // .channel + .sink_data (id_router_011_src_data), // .data + .sink_startofpacket (id_router_011_src_startofpacket), // .startofpacket + .sink_endofpacket (id_router_011_src_endofpacket), // .endofpacket + .sink_valid (id_router_011_src_valid), // .valid + .src0_ready (rsp_xbar_demux_011_src0_ready), // src0.ready + .src0_valid (rsp_xbar_demux_011_src0_valid), // .valid + .src0_data (rsp_xbar_demux_011_src0_data), // .data + .src0_channel (rsp_xbar_demux_011_src0_channel), // .channel + .src0_startofpacket (rsp_xbar_demux_011_src0_startofpacket), // .startofpacket + .src0_endofpacket (rsp_xbar_demux_011_src0_endofpacket) // .endofpacket + ); + + nios_system_rsp_xbar_demux_002 rsp_xbar_demux_012 ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .sink_ready (id_router_012_src_ready), // sink.ready + .sink_channel (id_router_012_src_channel), // .channel + .sink_data (id_router_012_src_data), // .data + .sink_startofpacket (id_router_012_src_startofpacket), // .startofpacket + .sink_endofpacket (id_router_012_src_endofpacket), // .endofpacket + .sink_valid (id_router_012_src_valid), // .valid + .src0_ready (rsp_xbar_demux_012_src0_ready), // src0.ready + .src0_valid (rsp_xbar_demux_012_src0_valid), // .valid + .src0_data (rsp_xbar_demux_012_src0_data), // .data + .src0_channel (rsp_xbar_demux_012_src0_channel), // .channel + .src0_startofpacket (rsp_xbar_demux_012_src0_startofpacket), // .startofpacket + .src0_endofpacket (rsp_xbar_demux_012_src0_endofpacket) // .endofpacket + ); + + nios_system_rsp_xbar_demux_002 rsp_xbar_demux_013 ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .sink_ready (id_router_013_src_ready), // sink.ready + .sink_channel (id_router_013_src_channel), // .channel + .sink_data (id_router_013_src_data), // .data + .sink_startofpacket (id_router_013_src_startofpacket), // .startofpacket + .sink_endofpacket (id_router_013_src_endofpacket), // .endofpacket + .sink_valid (id_router_013_src_valid), // .valid + .src0_ready (rsp_xbar_demux_013_src0_ready), // src0.ready + .src0_valid (rsp_xbar_demux_013_src0_valid), // .valid + .src0_data (rsp_xbar_demux_013_src0_data), // .data + .src0_channel (rsp_xbar_demux_013_src0_channel), // .channel + .src0_startofpacket (rsp_xbar_demux_013_src0_startofpacket), // .startofpacket + .src0_endofpacket (rsp_xbar_demux_013_src0_endofpacket) // .endofpacket + ); + + nios_system_rsp_xbar_demux_002 rsp_xbar_demux_014 ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .sink_ready (id_router_014_src_ready), // sink.ready + .sink_channel (id_router_014_src_channel), // .channel + .sink_data (id_router_014_src_data), // .data + .sink_startofpacket (id_router_014_src_startofpacket), // .startofpacket + .sink_endofpacket (id_router_014_src_endofpacket), // .endofpacket + .sink_valid (id_router_014_src_valid), // .valid + .src0_ready (rsp_xbar_demux_014_src0_ready), // src0.ready + .src0_valid (rsp_xbar_demux_014_src0_valid), // .valid + .src0_data (rsp_xbar_demux_014_src0_data), // .data + .src0_channel (rsp_xbar_demux_014_src0_channel), // .channel + .src0_startofpacket (rsp_xbar_demux_014_src0_startofpacket), // .startofpacket + .src0_endofpacket (rsp_xbar_demux_014_src0_endofpacket) // .endofpacket + ); + + nios_system_rsp_xbar_demux_002 rsp_xbar_demux_015 ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .sink_ready (id_router_015_src_ready), // sink.ready + .sink_channel (id_router_015_src_channel), // .channel + .sink_data (id_router_015_src_data), // .data + .sink_startofpacket (id_router_015_src_startofpacket), // .startofpacket + .sink_endofpacket (id_router_015_src_endofpacket), // .endofpacket + .sink_valid (id_router_015_src_valid), // .valid + .src0_ready (rsp_xbar_demux_015_src0_ready), // src0.ready + .src0_valid (rsp_xbar_demux_015_src0_valid), // .valid + .src0_data (rsp_xbar_demux_015_src0_data), // .data + .src0_channel (rsp_xbar_demux_015_src0_channel), // .channel + .src0_startofpacket (rsp_xbar_demux_015_src0_startofpacket), // .startofpacket + .src0_endofpacket (rsp_xbar_demux_015_src0_endofpacket) // .endofpacket + ); + + nios_system_rsp_xbar_demux_002 rsp_xbar_demux_016 ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .sink_ready (id_router_016_src_ready), // sink.ready + .sink_channel (id_router_016_src_channel), // .channel + .sink_data (id_router_016_src_data), // .data + .sink_startofpacket (id_router_016_src_startofpacket), // .startofpacket + .sink_endofpacket (id_router_016_src_endofpacket), // .endofpacket + .sink_valid (id_router_016_src_valid), // .valid + .src0_ready (rsp_xbar_demux_016_src0_ready), // src0.ready + .src0_valid (rsp_xbar_demux_016_src0_valid), // .valid + .src0_data (rsp_xbar_demux_016_src0_data), // .data + .src0_channel (rsp_xbar_demux_016_src0_channel), // .channel + .src0_startofpacket (rsp_xbar_demux_016_src0_startofpacket), // .startofpacket + .src0_endofpacket (rsp_xbar_demux_016_src0_endofpacket) // .endofpacket + ); + + nios_system_rsp_xbar_demux_002 rsp_xbar_demux_017 ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .sink_ready (id_router_017_src_ready), // sink.ready + .sink_channel (id_router_017_src_channel), // .channel + .sink_data (id_router_017_src_data), // .data + .sink_startofpacket (id_router_017_src_startofpacket), // .startofpacket + .sink_endofpacket (id_router_017_src_endofpacket), // .endofpacket + .sink_valid (id_router_017_src_valid), // .valid + .src0_ready (rsp_xbar_demux_017_src0_ready), // src0.ready + .src0_valid (rsp_xbar_demux_017_src0_valid), // .valid + .src0_data (rsp_xbar_demux_017_src0_data), // .data + .src0_channel (rsp_xbar_demux_017_src0_channel), // .channel + .src0_startofpacket (rsp_xbar_demux_017_src0_startofpacket), // .startofpacket + .src0_endofpacket (rsp_xbar_demux_017_src0_endofpacket) // .endofpacket + ); + + nios_system_rsp_xbar_mux rsp_xbar_mux ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .src_ready (rsp_xbar_mux_src_ready), // src.ready + .src_valid (rsp_xbar_mux_src_valid), // .valid + .src_data (rsp_xbar_mux_src_data), // .data + .src_channel (rsp_xbar_mux_src_channel), // .channel + .src_startofpacket (rsp_xbar_mux_src_startofpacket), // .startofpacket + .src_endofpacket (rsp_xbar_mux_src_endofpacket), // .endofpacket + .sink0_ready (rsp_xbar_demux_src0_ready), // sink0.ready + .sink0_valid (rsp_xbar_demux_src0_valid), // .valid + .sink0_channel (rsp_xbar_demux_src0_channel), // .channel + .sink0_data (rsp_xbar_demux_src0_data), // .data + .sink0_startofpacket (rsp_xbar_demux_src0_startofpacket), // .startofpacket + .sink0_endofpacket (rsp_xbar_demux_src0_endofpacket), // .endofpacket + .sink1_ready (rsp_xbar_demux_001_src0_ready), // sink1.ready + .sink1_valid (rsp_xbar_demux_001_src0_valid), // .valid + .sink1_channel (rsp_xbar_demux_001_src0_channel), // .channel + .sink1_data (rsp_xbar_demux_001_src0_data), // .data + .sink1_startofpacket (rsp_xbar_demux_001_src0_startofpacket), // .startofpacket + .sink1_endofpacket (rsp_xbar_demux_001_src0_endofpacket) // .endofpacket + ); + + nios_system_rsp_xbar_mux_001 rsp_xbar_mux_001 ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .src_ready (rsp_xbar_mux_001_src_ready), // src.ready + .src_valid (rsp_xbar_mux_001_src_valid), // .valid + .src_data (rsp_xbar_mux_001_src_data), // .data + .src_channel (rsp_xbar_mux_001_src_channel), // .channel + .src_startofpacket (rsp_xbar_mux_001_src_startofpacket), // .startofpacket + .src_endofpacket (rsp_xbar_mux_001_src_endofpacket), // .endofpacket + .sink0_ready (rsp_xbar_demux_src1_ready), // sink0.ready + .sink0_valid (rsp_xbar_demux_src1_valid), // .valid + .sink0_channel (rsp_xbar_demux_src1_channel), // .channel + .sink0_data (rsp_xbar_demux_src1_data), // .data + .sink0_startofpacket (rsp_xbar_demux_src1_startofpacket), // .startofpacket + .sink0_endofpacket (rsp_xbar_demux_src1_endofpacket), // .endofpacket + .sink1_ready (rsp_xbar_demux_001_src1_ready), // sink1.ready + .sink1_valid (rsp_xbar_demux_001_src1_valid), // .valid + .sink1_channel (rsp_xbar_demux_001_src1_channel), // .channel + .sink1_data (rsp_xbar_demux_001_src1_data), // .data + .sink1_startofpacket (rsp_xbar_demux_001_src1_startofpacket), // .startofpacket + .sink1_endofpacket (rsp_xbar_demux_001_src1_endofpacket), // .endofpacket + .sink2_ready (rsp_xbar_demux_002_src0_ready), // sink2.ready + .sink2_valid (rsp_xbar_demux_002_src0_valid), // .valid + .sink2_channel (rsp_xbar_demux_002_src0_channel), // .channel + .sink2_data (rsp_xbar_demux_002_src0_data), // .data + .sink2_startofpacket (rsp_xbar_demux_002_src0_startofpacket), // .startofpacket + .sink2_endofpacket (rsp_xbar_demux_002_src0_endofpacket), // .endofpacket + .sink3_ready (rsp_xbar_demux_003_src0_ready), // sink3.ready + .sink3_valid (rsp_xbar_demux_003_src0_valid), // .valid + .sink3_channel (rsp_xbar_demux_003_src0_channel), // .channel + .sink3_data (rsp_xbar_demux_003_src0_data), // .data + .sink3_startofpacket (rsp_xbar_demux_003_src0_startofpacket), // .startofpacket + .sink3_endofpacket (rsp_xbar_demux_003_src0_endofpacket), // .endofpacket + .sink4_ready (rsp_xbar_demux_004_src0_ready), // sink4.ready + .sink4_valid (rsp_xbar_demux_004_src0_valid), // .valid + .sink4_channel (rsp_xbar_demux_004_src0_channel), // .channel + .sink4_data (rsp_xbar_demux_004_src0_data), // .data + .sink4_startofpacket (rsp_xbar_demux_004_src0_startofpacket), // .startofpacket + .sink4_endofpacket (rsp_xbar_demux_004_src0_endofpacket), // .endofpacket + .sink5_ready (rsp_xbar_demux_005_src0_ready), // sink5.ready + .sink5_valid (rsp_xbar_demux_005_src0_valid), // .valid + .sink5_channel (rsp_xbar_demux_005_src0_channel), // .channel + .sink5_data (rsp_xbar_demux_005_src0_data), // .data + .sink5_startofpacket (rsp_xbar_demux_005_src0_startofpacket), // .startofpacket + .sink5_endofpacket (rsp_xbar_demux_005_src0_endofpacket), // .endofpacket + .sink6_ready (rsp_xbar_demux_006_src0_ready), // sink6.ready + .sink6_valid (rsp_xbar_demux_006_src0_valid), // .valid + .sink6_channel (rsp_xbar_demux_006_src0_channel), // .channel + .sink6_data (rsp_xbar_demux_006_src0_data), // .data + .sink6_startofpacket (rsp_xbar_demux_006_src0_startofpacket), // .startofpacket + .sink6_endofpacket (rsp_xbar_demux_006_src0_endofpacket), // .endofpacket + .sink7_ready (rsp_xbar_demux_007_src0_ready), // sink7.ready + .sink7_valid (rsp_xbar_demux_007_src0_valid), // .valid + .sink7_channel (rsp_xbar_demux_007_src0_channel), // .channel + .sink7_data (rsp_xbar_demux_007_src0_data), // .data + .sink7_startofpacket (rsp_xbar_demux_007_src0_startofpacket), // .startofpacket + .sink7_endofpacket (rsp_xbar_demux_007_src0_endofpacket), // .endofpacket + .sink8_ready (rsp_xbar_demux_008_src0_ready), // sink8.ready + .sink8_valid (rsp_xbar_demux_008_src0_valid), // .valid + .sink8_channel (rsp_xbar_demux_008_src0_channel), // .channel + .sink8_data (rsp_xbar_demux_008_src0_data), // .data + .sink8_startofpacket (rsp_xbar_demux_008_src0_startofpacket), // .startofpacket + .sink8_endofpacket (rsp_xbar_demux_008_src0_endofpacket), // .endofpacket + .sink9_ready (rsp_xbar_demux_009_src0_ready), // sink9.ready + .sink9_valid (rsp_xbar_demux_009_src0_valid), // .valid + .sink9_channel (rsp_xbar_demux_009_src0_channel), // .channel + .sink9_data (rsp_xbar_demux_009_src0_data), // .data + .sink9_startofpacket (rsp_xbar_demux_009_src0_startofpacket), // .startofpacket + .sink9_endofpacket (rsp_xbar_demux_009_src0_endofpacket), // .endofpacket + .sink10_ready (rsp_xbar_demux_010_src0_ready), // sink10.ready + .sink10_valid (rsp_xbar_demux_010_src0_valid), // .valid + .sink10_channel (rsp_xbar_demux_010_src0_channel), // .channel + .sink10_data (rsp_xbar_demux_010_src0_data), // .data + .sink10_startofpacket (rsp_xbar_demux_010_src0_startofpacket), // .startofpacket + .sink10_endofpacket (rsp_xbar_demux_010_src0_endofpacket), // .endofpacket + .sink11_ready (rsp_xbar_demux_011_src0_ready), // sink11.ready + .sink11_valid (rsp_xbar_demux_011_src0_valid), // .valid + .sink11_channel (rsp_xbar_demux_011_src0_channel), // .channel + .sink11_data (rsp_xbar_demux_011_src0_data), // .data + .sink11_startofpacket (rsp_xbar_demux_011_src0_startofpacket), // .startofpacket + .sink11_endofpacket (rsp_xbar_demux_011_src0_endofpacket), // .endofpacket + .sink12_ready (rsp_xbar_demux_012_src0_ready), // sink12.ready + .sink12_valid (rsp_xbar_demux_012_src0_valid), // .valid + .sink12_channel (rsp_xbar_demux_012_src0_channel), // .channel + .sink12_data (rsp_xbar_demux_012_src0_data), // .data + .sink12_startofpacket (rsp_xbar_demux_012_src0_startofpacket), // .startofpacket + .sink12_endofpacket (rsp_xbar_demux_012_src0_endofpacket), // .endofpacket + .sink13_ready (rsp_xbar_demux_013_src0_ready), // sink13.ready + .sink13_valid (rsp_xbar_demux_013_src0_valid), // .valid + .sink13_channel (rsp_xbar_demux_013_src0_channel), // .channel + .sink13_data (rsp_xbar_demux_013_src0_data), // .data + .sink13_startofpacket (rsp_xbar_demux_013_src0_startofpacket), // .startofpacket + .sink13_endofpacket (rsp_xbar_demux_013_src0_endofpacket), // .endofpacket + .sink14_ready (rsp_xbar_demux_014_src0_ready), // sink14.ready + .sink14_valid (rsp_xbar_demux_014_src0_valid), // .valid + .sink14_channel (rsp_xbar_demux_014_src0_channel), // .channel + .sink14_data (rsp_xbar_demux_014_src0_data), // .data + .sink14_startofpacket (rsp_xbar_demux_014_src0_startofpacket), // .startofpacket + .sink14_endofpacket (rsp_xbar_demux_014_src0_endofpacket), // .endofpacket + .sink15_ready (rsp_xbar_demux_015_src0_ready), // sink15.ready + .sink15_valid (rsp_xbar_demux_015_src0_valid), // .valid + .sink15_channel (rsp_xbar_demux_015_src0_channel), // .channel + .sink15_data (rsp_xbar_demux_015_src0_data), // .data + .sink15_startofpacket (rsp_xbar_demux_015_src0_startofpacket), // .startofpacket + .sink15_endofpacket (rsp_xbar_demux_015_src0_endofpacket), // .endofpacket + .sink16_ready (rsp_xbar_demux_016_src0_ready), // sink16.ready + .sink16_valid (rsp_xbar_demux_016_src0_valid), // .valid + .sink16_channel (rsp_xbar_demux_016_src0_channel), // .channel + .sink16_data (rsp_xbar_demux_016_src0_data), // .data + .sink16_startofpacket (rsp_xbar_demux_016_src0_startofpacket), // .startofpacket + .sink16_endofpacket (rsp_xbar_demux_016_src0_endofpacket), // .endofpacket + .sink17_ready (rsp_xbar_demux_017_src0_ready), // sink17.ready + .sink17_valid (rsp_xbar_demux_017_src0_valid), // .valid + .sink17_channel (rsp_xbar_demux_017_src0_channel), // .channel + .sink17_data (rsp_xbar_demux_017_src0_data), // .data + .sink17_startofpacket (rsp_xbar_demux_017_src0_startofpacket), // .startofpacket + .sink17_endofpacket (rsp_xbar_demux_017_src0_endofpacket) // .endofpacket + ); + + nios_system_irq_mapper irq_mapper ( + .clk (clk_clk), // clk.clk + .reset (rst_controller_reset_out_reset), // clk_reset.reset + .receiver0_irq (irq_mapper_receiver0_irq), // receiver0.irq + .sender_irq (nios2_processor_d_irq_irq) // sender.irq + ); + +endmodule diff --git a/nios_system/synthesis/submodules/altera_avalon_sc_fifo.v b/nios_system/synthesis/submodules/altera_avalon_sc_fifo.v new file mode 100644 index 0000000..8f846b8 --- /dev/null +++ b/nios_system/synthesis/submodules/altera_avalon_sc_fifo.v @@ -0,0 +1,877 @@ +// ----------------------------------------------------------- +// Legal Notice: (C)2007 Altera Corporation. All rights reserved. Your +// use of Altera Corporation's design tools, logic functions and other +// software and tools, and its AMPP partner logic functions, and any +// output files any of the foregoing (including device programming or +// simulation files), and any associated documentation or information are +// expressly subject to the terms and conditions of the Altera Program +// License Subscription Agreement or other applicable license agreement, +// including, without limitation, that your use is for the sole purpose +// of programming logic devices manufactured by Altera and sold by Altera +// or its authorized distributors. Please refer to the applicable +// agreement for further details. +// +// Description: Single clock Avalon-ST FIFO. +// ----------------------------------------------------------- + +`timescale 1 ns / 1 ns + + +//altera message_off 10036 +module altera_avalon_sc_fifo +#( + // -------------------------------------------------- + // Parameters + // -------------------------------------------------- + parameter SYMBOLS_PER_BEAT = 1, + parameter BITS_PER_SYMBOL = 8, + parameter FIFO_DEPTH = 16, + parameter CHANNEL_WIDTH = 0, + parameter ERROR_WIDTH = 0, + parameter USE_PACKETS = 0, + parameter USE_FILL_LEVEL = 0, + parameter USE_STORE_FORWARD = 0, + parameter USE_ALMOST_FULL_IF = 0, + parameter USE_ALMOST_EMPTY_IF = 0, + + // -------------------------------------------------- + // Empty latency is defined as the number of cycles + // required for a write to deassert the empty flag. + // For example, a latency of 1 means that the empty + // flag is deasserted on the cycle after a write. + // + // Another way to think of it is the latency for a + // write to propagate to the output. + // + // An empty latency of 0 implies lookahead, which is + // only implemented for the register-based FIFO. + // -------------------------------------------------- + parameter EMPTY_LATENCY = 3, + parameter USE_MEMORY_BLOCKS = 1, + + // -------------------------------------------------- + // Internal Parameters + // -------------------------------------------------- + parameter DATA_WIDTH = SYMBOLS_PER_BEAT * BITS_PER_SYMBOL, + parameter EMPTY_WIDTH = log2ceil(SYMBOLS_PER_BEAT) +) +( + // -------------------------------------------------- + // Ports + // -------------------------------------------------- + input clk, + input reset, + + input [DATA_WIDTH-1: 0] in_data, + input in_valid, + input in_startofpacket, + input in_endofpacket, + input [((EMPTY_WIDTH>0) ? (EMPTY_WIDTH-1):0) : 0] in_empty, + input [((ERROR_WIDTH>0) ? (ERROR_WIDTH-1):0) : 0] in_error, + input [((CHANNEL_WIDTH>0) ? (CHANNEL_WIDTH-1):0): 0] in_channel, + output in_ready, + + output [DATA_WIDTH-1 : 0] out_data, + output reg out_valid, + output out_startofpacket, + output out_endofpacket, + output [((EMPTY_WIDTH>0) ? (EMPTY_WIDTH-1):0) : 0] out_empty, + output [((ERROR_WIDTH>0) ? (ERROR_WIDTH-1):0) : 0] out_error, + output [((CHANNEL_WIDTH>0) ? (CHANNEL_WIDTH-1):0): 0] out_channel, + input out_ready, + + input [(USE_STORE_FORWARD ? 2 : 1) : 0] csr_address, + input csr_write, + input csr_read, + input [31 : 0] csr_writedata, + output reg [31 : 0] csr_readdata, + + output wire almost_full_data, + output wire almost_empty_data +); + + // -------------------------------------------------- + // Local Parameters + // -------------------------------------------------- + localparam ADDR_WIDTH = log2ceil(FIFO_DEPTH); + localparam DEPTH = FIFO_DEPTH; + localparam PKT_SIGNALS_WIDTH = 2 + EMPTY_WIDTH; + localparam PAYLOAD_WIDTH = (USE_PACKETS == 1) ? + 2 + EMPTY_WIDTH + DATA_WIDTH + ERROR_WIDTH + CHANNEL_WIDTH: + DATA_WIDTH + ERROR_WIDTH + CHANNEL_WIDTH; + + // -------------------------------------------------- + // Internal Signals + // -------------------------------------------------- + genvar i; + + reg [PAYLOAD_WIDTH-1 : 0] mem [DEPTH-1 : 0]; + reg [ADDR_WIDTH-1 : 0] wr_ptr; + reg [ADDR_WIDTH-1 : 0] rd_ptr; + reg [DEPTH-1 : 0] mem_used; + + wire [ADDR_WIDTH-1 : 0] next_wr_ptr; + wire [ADDR_WIDTH-1 : 0] next_rd_ptr; + wire [ADDR_WIDTH-1 : 0] incremented_wr_ptr; + wire [ADDR_WIDTH-1 : 0] incremented_rd_ptr; + + wire [ADDR_WIDTH-1 : 0] mem_rd_ptr; + + wire read; + wire write; + + reg empty; + reg next_empty; + reg full; + reg next_full; + + wire [PKT_SIGNALS_WIDTH-1 : 0] in_packet_signals; + wire [PKT_SIGNALS_WIDTH-1 : 0] out_packet_signals; + wire [PAYLOAD_WIDTH-1 : 0] in_payload; + reg [PAYLOAD_WIDTH-1 : 0] internal_out_payload; + reg [PAYLOAD_WIDTH-1 : 0] out_payload; + + reg internal_out_valid; + wire internal_out_ready; + + reg [ADDR_WIDTH : 0] fifo_fill_level; + reg [ADDR_WIDTH : 0] fill_level; + + reg [ADDR_WIDTH-1 : 0] sop_ptr = 0; + reg [23:0] almost_full_threshold; + reg [23:0] almost_empty_threshold; + reg [23:0] cut_through_threshold; + reg [15:0] pkt_cnt; + reg [15:0] pkt_cnt_r; + reg [15:0] pkt_cnt_plusone; + reg [15:0] pkt_cnt_minusone; + reg drop_on_error_en; + reg error_in_pkt; + reg pkt_has_started; + reg sop_has_left_fifo; + reg fifo_too_small_r; + reg pkt_cnt_eq_zero; + reg pkt_cnt_eq_one; + reg pkt_cnt_changed; + + wire wait_for_threshold; + reg pkt_mode; + wire wait_for_pkt; + wire ok_to_forward; + wire in_pkt_eop_arrive; + wire out_pkt_leave; + wire in_pkt_start; + wire in_pkt_error; + wire drop_on_error; + wire fifo_too_small; + wire out_pkt_sop_leave; + wire [31:0] max_fifo_size; + reg fifo_fill_level_lt_cut_through_threshold; + + // -------------------------------------------------- + // Define Payload + // + // Icky part where we decide which signals form the + // payload to the FIFO with generate blocks. + // -------------------------------------------------- + generate + if (EMPTY_WIDTH > 0) begin + assign in_packet_signals = {in_startofpacket, in_endofpacket, in_empty}; + assign {out_startofpacket, out_endofpacket, out_empty} = out_packet_signals; + end + else begin + assign out_empty = in_error; + assign in_packet_signals = {in_startofpacket, in_endofpacket}; + assign {out_startofpacket, out_endofpacket} = out_packet_signals; + end + endgenerate + + generate + if (USE_PACKETS) begin + if (ERROR_WIDTH > 0) begin + if (CHANNEL_WIDTH > 0) begin + assign in_payload = {in_packet_signals, in_data, in_error, in_channel}; + assign {out_packet_signals, out_data, out_error, out_channel} = out_payload; + end + else begin + assign out_channel = in_channel; + assign in_payload = {in_packet_signals, in_data, in_error}; + assign {out_packet_signals, out_data, out_error} = out_payload; + end + end + else begin + assign out_error = in_error; + if (CHANNEL_WIDTH > 0) begin + assign in_payload = {in_packet_signals, in_data, in_channel}; + assign {out_packet_signals, out_data, out_channel} = out_payload; + end + else begin + assign out_channel = in_channel; + assign in_payload = {in_packet_signals, in_data}; + assign {out_packet_signals, out_data} = out_payload; + end + end + end + else begin + assign out_packet_signals = 0; + if (ERROR_WIDTH > 0) begin + if (CHANNEL_WIDTH > 0) begin + assign in_payload = {in_data, in_error, in_channel}; + assign {out_data, out_error, out_channel} = out_payload; + end + else begin + assign out_channel = in_channel; + assign in_payload = {in_data, in_error}; + assign {out_data, out_error} = out_payload; + end + end + else begin + assign out_error = in_error; + if (CHANNEL_WIDTH > 0) begin + assign in_payload = {in_data, in_channel}; + assign {out_data, out_channel} = out_payload; + end + else begin + assign out_channel = in_channel; + assign in_payload = in_data; + assign out_data = out_payload; + end + end + end + endgenerate + + // -------------------------------------------------- + // Memory-based FIFO storage + // + // To allow a ready latency of 0, the read index is + // obtained from the next read pointer and memory + // outputs are unregistered. + // + // If the empty latency is 1, we infer bypass logic + // around the memory so writes propagate to the + // outputs on the next cycle. + // + // Do not change the way this is coded: Quartus needs + // a perfect match to the template, and any attempt to + // refactor the two always blocks into one will break + // memory inference. + // -------------------------------------------------- + generate if (USE_MEMORY_BLOCKS == 1) begin + + if (EMPTY_LATENCY == 1) begin + + always @(posedge clk) begin + if (in_valid && in_ready) + mem[wr_ptr] = in_payload; + + internal_out_payload = mem[mem_rd_ptr]; + end + + end else begin + + always @(posedge clk) begin + if (in_valid && in_ready) + mem[wr_ptr] <= in_payload; + + internal_out_payload <= mem[mem_rd_ptr]; + end + + end + + assign mem_rd_ptr = next_rd_ptr; + + end else begin + + // -------------------------------------------------- + // Register-based FIFO storage + // + // Uses a shift register as the storage element. Each + // shift register slot has a bit which indicates if + // the slot is occupied (credit to Sam H for the idea). + // The occupancy bits are contiguous and start from the + // lsb, so 0000, 0001, 0011, 0111, 1111 for a 4-deep + // FIFO. + // + // Each slot is enabled during a read or when it + // is unoccupied. New data is always written to every + // going-to-be-empty slot (we keep track of which ones + // are actually useful with the occupancy bits). On a + // read we shift occupied slots. + // + // The exception is the last slot, which always gets + // new data when it is unoccupied. + // -------------------------------------------------- + for (i = 0; i < DEPTH-1; i = i + 1) begin : shift_reg + always @(posedge clk or posedge reset) begin + if (reset) begin + mem[i] <= 0; + end + else if (read || !mem_used[i]) begin + if (!mem_used[i+1]) + mem[i] <= in_payload; + else + mem[i] <= mem[i+1]; + end + end + end + + always @(posedge clk, posedge reset) begin + if (reset) begin + mem[DEPTH-1] <= 0; + end + else begin + if (!mem_used[DEPTH-1]) + mem[DEPTH-1] <= in_payload; + + if (DEPTH == 1) begin + if (write) + mem[DEPTH-1] <= in_payload; + end + end + end + + end + endgenerate + + assign read = internal_out_ready && internal_out_valid && ok_to_forward; + assign write = in_ready && in_valid; + + // -------------------------------------------------- + // Pointer Management + // -------------------------------------------------- + generate if (USE_MEMORY_BLOCKS == 1) begin + + assign incremented_wr_ptr = wr_ptr + 1'b1; + assign incremented_rd_ptr = rd_ptr + 1'b1; + assign next_wr_ptr = drop_on_error ? sop_ptr : write ? incremented_wr_ptr : wr_ptr; + assign next_rd_ptr = (read) ? incremented_rd_ptr : rd_ptr; + + always @(posedge clk or posedge reset) begin + if (reset) begin + wr_ptr <= 0; + rd_ptr <= 0; + end + else begin + wr_ptr <= next_wr_ptr; + rd_ptr <= next_rd_ptr; + end + end + + end else begin + + // -------------------------------------------------- + // Shift Register Occupancy Bits + // + // Consider a 4-deep FIFO with 2 entries: 0011 + // On a read and write, do not modify the bits. + // On a write, left-shift the bits to get 0111. + // On a read, right-shift the bits to get 0001. + // + // Also, on a write we set bit0 (the head), while + // clearing the tail on a read. + // -------------------------------------------------- + always @(posedge clk or posedge reset) begin + if (reset) begin + mem_used[0] <= 0; + end + else begin + if (write ^ read) begin + if (read) begin + if (DEPTH > 1) + mem_used[0] <= mem_used[1]; + else + mem_used[0] <= 0; + end + if (write) + mem_used[0] <= 1; + end + end + end + + if (DEPTH > 1) begin + always @(posedge clk or posedge reset) begin + if (reset) begin + mem_used[DEPTH-1] <= 0; + end + else begin + if (write ^ read) begin + mem_used[DEPTH-1] <= 0; + if (write) + mem_used[DEPTH-1] <= mem_used[DEPTH-2]; + end + end + end + end + + for (i = 1; i < DEPTH-1; i = i + 1) begin : storage_logic + always @(posedge clk, posedge reset) begin + if (reset) begin + mem_used[i] <= 0; + end + else begin + if (write ^ read) begin + if (read) + mem_used[i] <= mem_used[i+1]; + if (write) + mem_used[i] <= mem_used[i-1]; + end + end + end + end + + end + endgenerate + + + // -------------------------------------------------- + // Memory FIFO Status Management + // + // Generates the full and empty signals from the + // pointers. The FIFO is full when the next write + // pointer will be equal to the read pointer after + // a write. Reading from a FIFO clears full. + // + // The FIFO is empty when the next read pointer will + // be equal to the write pointer after a read. Writing + // to a FIFO clears empty. + // + // A simultaneous read and write must not change any of + // the empty or full flags unless there is a drop on error event. + // -------------------------------------------------- + generate if (USE_MEMORY_BLOCKS == 1) begin + + always @* begin + next_full = full; + next_empty = empty; + + if (read && !write) begin + next_full = 1'b0; + + if (incremented_rd_ptr == wr_ptr) + next_empty = 1'b1; + end + + if (write && !read) begin + if (!drop_on_error) + next_empty = 1'b0; + else if (sop_ptr == rd_ptr) // drop on error and only 1 pkt in fifo + next_empty = 1'b1; + + if (incremented_wr_ptr == rd_ptr && !drop_on_error) + next_full = 1'b1; + end + + if (write && read && drop_on_error) begin + if (sop_ptr == next_rd_ptr) + next_empty = 1'b1; + end + end + + always @(posedge clk or posedge reset) begin + if (reset) begin + empty <= 1; + full <= 0; + end + else begin + empty <= next_empty; + full <= next_full; + end + end + + end else begin + // -------------------------------------------------- + // Register FIFO Status Management + // + // Full when the tail occupancy bit is 1. Empty when + // the head occupancy bit is 0. + // -------------------------------------------------- + always @* begin + full = mem_used[DEPTH-1]; + empty = !mem_used[0]; + + // ------------------------------------------ + // For a single slot FIFO, reading clears the + // full status immediately. + // ------------------------------------------ + if (DEPTH == 1) + full = mem_used[0] && !read; + + internal_out_payload = mem[0]; + + // ------------------------------------------ + // Writes clear empty immediately for lookahead modes. + // Note that we use in_valid instead of write to avoid + // combinational loops (in lookahead mode, qualifying + // with in_ready is meaningless). + // + // In a 1-deep FIFO, a possible combinational loop runs + // from write -> out_valid -> out_ready -> write + // ------------------------------------------ + if (EMPTY_LATENCY == 0) begin + empty = !mem_used[0] && !in_valid; + + if (!mem_used[0] && in_valid) + internal_out_payload = in_payload; + end + end + + end + endgenerate + + // -------------------------------------------------- + // Avalon-ST Signals + // + // The in_ready signal is straightforward. + // + // To match memory latency when empty latency > 1, + // out_valid assertions must be delayed by one clock + // cycle. + // + // Note: out_valid deassertions must not be delayed or + // the FIFO will underflow. + // -------------------------------------------------- + assign in_ready = !full; + assign internal_out_ready = out_ready || !out_valid; + + generate if (EMPTY_LATENCY > 1) begin + always @(posedge clk or posedge reset) begin + if (reset) + internal_out_valid <= 0; + else begin + internal_out_valid <= !empty & ok_to_forward & ~drop_on_error; + + if (read) begin + if (incremented_rd_ptr == wr_ptr) + internal_out_valid <= 1'b0; + end + end + end + end else begin + always @* begin + internal_out_valid = !empty & ok_to_forward; + end + end + endgenerate + + // -------------------------------------------------- + // Single Output Pipeline Stage + // + // This output pipeline stage is enabled if the FIFO's + // empty latency is set to 3 (default). It is disabled + // for all other allowed latencies. + // + // Reason: The memory outputs are unregistered, so we have to + // register the output or fmax will drop if combinatorial + // logic is present on the output datapath. + // + // Q: The Avalon-ST spec says that I have to register my outputs + // But isn't the memory counted as a register? + // A: The path from the address lookup to the memory output is + // slow. Registering the memory outputs is a good idea. + // + // The registers get packed into the memory by the fitter + // which means minimal resources are consumed (the result + // is a altsyncram with registered outputs, available on + // all modern Altera devices). + // + // This output stage acts as an extra slot in the FIFO, + // and complicates the fill level. + // -------------------------------------------------- + generate if (EMPTY_LATENCY == 3) begin + always @(posedge clk or posedge reset) begin + if (reset) begin + out_valid <= 0; + out_payload <= 0; + end + else begin + if (internal_out_ready) begin + out_valid <= internal_out_valid & ok_to_forward; + out_payload <= internal_out_payload; + end + end + end + end + else begin + always @* begin + out_valid = internal_out_valid; + out_payload = internal_out_payload; + end + end + endgenerate + + // -------------------------------------------------- + // Fill Level + // + // The fill level is calculated from the next write + // and read pointers to avoid unnecessary latency. + // + // If the output pipeline is enabled, the fill level + // must account for it, or we'll always be off by one. + // This may, or may not be important depending on the + // application. + // + // For now, we'll always calculate the exact fill level + // at the cost of an extra adder when the output stage + // is enabled. + // -------------------------------------------------- + generate if (USE_FILL_LEVEL) begin + wire [31:0] depth32; + assign depth32 = DEPTH; + always @(posedge clk or posedge reset) begin + if (reset) + fifo_fill_level <= 0; + else if (next_full & !drop_on_error) + fifo_fill_level <= depth32[ADDR_WIDTH:0]; + else begin + fifo_fill_level[ADDR_WIDTH] <= 1'b0; + fifo_fill_level[ADDR_WIDTH-1 : 0] <= next_wr_ptr - next_rd_ptr; + end + end + + always @* begin + fill_level = fifo_fill_level; + + if (EMPTY_LATENCY == 3) + fill_level = fifo_fill_level + {{ADDR_WIDTH{1'b0}}, out_valid}; + end + end + else begin + initial fill_level = 0; + end + endgenerate + + generate if (USE_ALMOST_FULL_IF) begin + assign almost_full_data = (fill_level >= almost_full_threshold); + end + else + assign almost_full_data = 0; + endgenerate + + generate if (USE_ALMOST_EMPTY_IF) begin + assign almost_empty_data = (fill_level <= almost_empty_threshold); + end + else + assign almost_empty_data = 0; + endgenerate + + // -------------------------------------------------- + // Avalon-MM Status & Control Connection Point + // + // Register map: + // + // | Addr | RW | 31 - 0 | + // | 0 | R | Fill level | + // + // The registering of this connection point means + // that there is a cycle of latency between + // reads/writes and the updating of the fill level. + // -------------------------------------------------- + generate if (USE_STORE_FORWARD) begin + assign max_fifo_size = FIFO_DEPTH - 1; + always @(posedge clk or posedge reset) begin + if (reset) begin + almost_full_threshold <= max_fifo_size[23 : 0]; + almost_empty_threshold <= 0; + cut_through_threshold <= 0; + drop_on_error_en <= 0; + csr_readdata <= 0; + pkt_mode <= 1'b1; + end + else begin + if (csr_write) begin + if(csr_address == 3'b010) + almost_full_threshold <= csr_writedata[23:0]; + if(csr_address == 3'b011) + almost_empty_threshold <= csr_writedata[23:0]; + if(csr_address == 3'b100) begin + cut_through_threshold <= csr_writedata[23:0]; + pkt_mode <= (csr_writedata[23:0] == 0); + end + if(csr_address == 3'b101) + drop_on_error_en <= csr_writedata[0]; + end + + if (csr_read) begin + csr_readdata <= 32'b0; + if (csr_address == 0) + csr_readdata <= {{(31 - ADDR_WIDTH){1'b0}}, fill_level}; + if (csr_address == 2) + csr_readdata <= {8'b0, almost_full_threshold}; + if (csr_address == 3) + csr_readdata <= {8'b0, almost_empty_threshold}; + if (csr_address == 4) + csr_readdata <= {8'b0, cut_through_threshold}; + if (csr_address == 5) + csr_readdata <= {31'b0, drop_on_error_en}; + end + end + end + end + else if (USE_ALMOST_FULL_IF || USE_ALMOST_EMPTY_IF) begin + assign max_fifo_size = FIFO_DEPTH - 1; + always @(posedge clk or posedge reset) begin + if (reset) begin + almost_full_threshold <= max_fifo_size[23 : 0]; + almost_empty_threshold <= 0; + csr_readdata <= 0; + end + else begin + if (csr_write) begin + if(csr_address == 3'b010) + almost_full_threshold <= csr_writedata[23:0]; + if(csr_address == 3'b011) + almost_empty_threshold <= csr_writedata[23:0]; + end + + if (csr_read) begin + csr_readdata <= 32'b0; + if (csr_address == 0) + csr_readdata <= {{(31 - ADDR_WIDTH){1'b0}}, fill_level}; + if (csr_address == 2) + csr_readdata <= {8'b0, almost_full_threshold}; + if (csr_address == 3) + csr_readdata <= {8'b0, almost_empty_threshold}; + end + end + end + end + else begin + always @(posedge clk or posedge reset) begin + if (reset) begin + csr_readdata <= 0; + end + else if (csr_read) begin + csr_readdata <= 0; + + if (csr_address == 0) + csr_readdata <= fill_level; + end + end + end + endgenerate + + // -------------------------------------------------- + // Store and forward logic + // -------------------------------------------------- + // if the fifo gets full before the entire packet or the + // cut-threshold condition is met then start sending out + // data in order to avoid dead-lock situation + + generate if (USE_STORE_FORWARD) begin + assign wait_for_threshold = (fifo_fill_level_lt_cut_through_threshold) & wait_for_pkt ; + assign wait_for_pkt = pkt_cnt_eq_zero | (pkt_cnt_eq_one & out_pkt_leave); + assign ok_to_forward = (pkt_mode ? (~wait_for_pkt | ~pkt_has_started) : + ~wait_for_threshold) | fifo_too_small_r; + assign in_pkt_eop_arrive = in_valid & in_ready & in_endofpacket; + assign in_pkt_start = in_valid & in_ready & in_startofpacket; + assign in_pkt_error = in_valid & in_ready & |in_error; + assign out_pkt_sop_leave = out_valid & out_ready & out_startofpacket; + assign out_pkt_leave = out_valid & out_ready & out_endofpacket; + assign fifo_too_small = (pkt_mode ? wait_for_pkt : wait_for_threshold) & full & out_ready; + + // count packets coming and going into the fifo + always @(posedge clk or posedge reset) begin + if (reset) begin + pkt_cnt <= 0; + pkt_cnt_r <= 0; + pkt_cnt_plusone <= 1; + pkt_cnt_minusone <= 0; + pkt_cnt_changed <= 0; + pkt_has_started <= 0; + sop_has_left_fifo <= 0; + fifo_too_small_r <= 0; + pkt_cnt_eq_zero <= 1'b1; + pkt_cnt_eq_one <= 1'b0; + fifo_fill_level_lt_cut_through_threshold <= 1'b1; + end + else begin + fifo_fill_level_lt_cut_through_threshold <= fifo_fill_level < cut_through_threshold; + fifo_too_small_r <= fifo_too_small; + pkt_cnt_plusone <= pkt_cnt + 1'b1; + pkt_cnt_minusone <= pkt_cnt - 1'b1; + pkt_cnt_r <= pkt_cnt; + pkt_cnt_changed <= 1'b0; + + if( in_pkt_eop_arrive ) + sop_has_left_fifo <= 1'b0; + else if (out_pkt_sop_leave & pkt_cnt_eq_zero ) + sop_has_left_fifo <= 1'b1; + + if (in_pkt_eop_arrive & ~out_pkt_leave & ~drop_on_error ) begin + pkt_cnt_changed <= 1'b1; + pkt_cnt <= pkt_cnt_changed ? pkt_cnt_r : pkt_cnt_plusone; + pkt_cnt_eq_zero <= 0; + if (pkt_cnt == 0) + pkt_cnt_eq_one <= 1'b1; + else + pkt_cnt_eq_one <= 1'b0; + end + else if((~in_pkt_eop_arrive | drop_on_error) & out_pkt_leave) begin + pkt_cnt_changed <= 1'b1; + pkt_cnt <= pkt_cnt_changed ? pkt_cnt_r : pkt_cnt_minusone; + if (pkt_cnt == 1) + pkt_cnt_eq_zero <= 1'b1; + else + pkt_cnt_eq_zero <= 1'b0; + if (pkt_cnt == 2) + pkt_cnt_eq_one <= 1'b1; + else + pkt_cnt_eq_one <= 1'b0; + end + + if (in_pkt_start) + pkt_has_started <= 1'b1; + else if (in_pkt_eop_arrive) + pkt_has_started <= 1'b0; + end + end + + // drop on error logic + always @(posedge clk or posedge reset) begin + if (reset) begin + sop_ptr <= 0; + error_in_pkt <= 0; + end + else begin + // save the location of the SOP + if ( in_pkt_start ) + sop_ptr <= wr_ptr; + + // remember if error in pkt + // log error only if packet has already started + if (in_pkt_eop_arrive) + error_in_pkt <= 1'b0; + else if ( in_pkt_error & (pkt_has_started | in_pkt_start)) + error_in_pkt <= 1'b1; + end + end + assign drop_on_error = drop_on_error_en & (error_in_pkt | in_pkt_error) & in_pkt_eop_arrive & + ~sop_has_left_fifo & ~(out_pkt_sop_leave & pkt_cnt_eq_zero); + + end + else begin + assign ok_to_forward = 1'b1; + assign drop_on_error = 1'b0; + end + endgenerate + + + // -------------------------------------------------- + // Calculates the log2ceil of the input value + // -------------------------------------------------- + function integer log2ceil; + input integer val; + integer i; + + begin + i = 1; + log2ceil = 0; + + while (i < val) begin + log2ceil = log2ceil + 1; + i = i << 1; + end + end + endfunction + +endmodule diff --git a/nios_system/synthesis/submodules/altera_merlin_arbitrator.sv b/nios_system/synthesis/submodules/altera_merlin_arbitrator.sv new file mode 100644 index 0000000..9edba1d --- /dev/null +++ b/nios_system/synthesis/submodules/altera_merlin_arbitrator.sv @@ -0,0 +1,270 @@ +// (C) 2001-2013 Altera Corporation. All rights reserved. +// Your use of Altera Corporation's design tools, logic functions and other +// software and tools, and its AMPP partner logic functions, and any output +// files any of the foregoing (including device programming or simulation +// files), and any associated documentation or information are expressly subject +// to the terms and conditions of the Altera Program License Subscription +// Agreement, Altera MegaCore Function License Agreement, or other applicable +// license agreement, including, without limitation, that your use is for the +// sole purpose of programming logic devices manufactured by Altera and sold by +// Altera or its authorized distributors. Please refer to the applicable +// agreement for further details. + + +// (C) 2001-2010 Altera Corporation. All rights reserved. +// Your use of Altera Corporation's design tools, logic functions and other +// software and tools, and its AMPP partner logic functions, and any output +// files any of the foregoing (including device programming or simulation +// files), and any associated documentation or information are expressly subject +// to the terms and conditions of the Altera Program License Subscription +// Agreement, Altera MegaCore Function License Agreement, or other applicable +// license agreement, including, without limitation, that your use is for the +// sole purpose of programming logic devices manufactured by Altera and sold by +// Altera or its authorized distributors. Please refer to the applicable +// agreement for further details. + + +// $Id: //acds/main/ip/merlin/altera_merlin_std_arbitrator/altera_merlin_std_arbitrator_core.sv#3 $ +// $Revision: #3 $ +// $Date: 2010/07/07 $ +// $Author: jyeap $ + +/* ----------------------------------------------------------------------- +Round-robin/fixed arbitration implementation. + +Q: how do you find the least-significant set-bit in an n-bit binary number, X? + +A: M = X & (~X + 1) + +Example: X = 101000100 + 101000100 & + 010111011 + 1 = + + 101000100 & + 010111100 = + ----------- + 000000100 + +The method can be generalized to find the first set-bit +at a bit index no lower than bit-index N, simply by adding +2**N rather than 1. + + +Q: how does this relate to round-robin arbitration? +A: +Let X be the concatenation of all request signals. +Let the number to be added to X (hereafter called the +top_priority) initialize to 1, and be assigned from the +concatenation of the previous saved-grant, left-rotated +by one position, each time arbitration occurs. The +concatenation of grants is then M. + +Problem: consider this case: + +top_priority = 010000 +request = 001001 +~request + top_priority = 000110 +next_grant = 000000 <- no one is granted! + +There was no "set bit at a bit index no lower than bit-index 4", so +the result was 0. + +We need to propagate the carry out from (~request + top_priority) to the LSB, so +that the sum becomes 000111, and next_grant is 000001. This operation could be +called a "circular add". + +A bit of experimentation on the circular add reveals a significant amount of +delay in exiting and re-entering the carry chain - this will vary with device +family. Quartus also reports a combinational loop warning. Finally, +Modelsim 6.3g has trouble with the expression, evaluating it to 'X'. But +Modelsim _doesn't_ report a combinational loop!) + +An alternate solution: concatenate the request vector with itself, and OR +corresponding bits from the top and bottom halves to determine next_grant. + +Example: + +top_priority = 010000 +{request, request} = 001001 001001 +{~request, ~request} + top_priority = 110111 000110 +result of & operation = 000001 000000 +next_grant = 000001 + +Notice that if request = 0, the sum operation will overflow, but we can ignore +this; the next_grant result is 0 (no one granted), as you might expect. +In the implementation, the last-granted value must be maintained as +a non-zero value - best probably simply not to update it when no requests +occur. + +----------------------------------------------------------------------- */ + +`timescale 1 ns / 1 ns + +module altera_merlin_arbitrator +#( + parameter NUM_REQUESTERS = 8, + // -------------------------------------- + // Implemented schemes + // "round-robin" + // "fixed-priority" + // "no-arb" + // -------------------------------------- + parameter SCHEME = "round-robin", + parameter PIPELINE = 0 +) +( + input clk, + input reset, + + // -------------------------------------- + // Requests + // -------------------------------------- + input [NUM_REQUESTERS-1:0] request, + + // -------------------------------------- + // Grants + // -------------------------------------- + output [NUM_REQUESTERS-1:0] grant, + + // -------------------------------------- + // Control Signals + // -------------------------------------- + input increment_top_priority, + input save_top_priority +); + + // -------------------------------------- + // Signals + // -------------------------------------- + wire [NUM_REQUESTERS-1:0] top_priority; + reg [NUM_REQUESTERS-1:0] top_priority_reg; + reg [NUM_REQUESTERS-1:0] last_grant; + wire [2*NUM_REQUESTERS-1:0] result; + + // -------------------------------------- + // Scheme Selection + // -------------------------------------- + generate + if (SCHEME == "round-robin" && NUM_REQUESTERS > 1) begin + assign top_priority = top_priority_reg; + end + else begin + // Fixed arbitration (or single-requester corner case) + assign top_priority = 1'b1; + end + endgenerate + + // -------------------------------------- + // Decision Logic + // -------------------------------------- + altera_merlin_arb_adder + #( + .WIDTH (2 * NUM_REQUESTERS) + ) + adder + ( + .a ({ ~request, ~request }), + .b ({{NUM_REQUESTERS{1'b0}}, top_priority}), + .sum (result) + ); + + + generate if (SCHEME == "no-arb") begin + + // -------------------------------------- + // No arbitration: just wire request directly to grant + // -------------------------------------- + assign grant = request; + + end else begin + // Do the math in double-vector domain + wire [2*NUM_REQUESTERS-1:0] grant_double_vector; + assign grant_double_vector = {request, request} & result; + + // -------------------------------------- + // Extract grant from the top and bottom halves + // of the double vector. + // -------------------------------------- + assign grant = + grant_double_vector[NUM_REQUESTERS - 1 : 0] | + grant_double_vector[2 * NUM_REQUESTERS - 1 : NUM_REQUESTERS]; + + end + endgenerate + + // -------------------------------------- + // Left-rotate the last grant vector to create top_priority. + // -------------------------------------- + always @(posedge clk or posedge reset) begin + if (reset) begin + top_priority_reg <= 1'b1; + end + else begin + if (PIPELINE) begin + if (increment_top_priority) begin + top_priority_reg <= (|request) ? {grant[NUM_REQUESTERS-2:0], + grant[NUM_REQUESTERS-1]} : top_priority_reg; + end + end else begin + if (save_top_priority) begin + top_priority_reg <= grant; + end + if (increment_top_priority) begin + if (|request) + top_priority_reg <= { grant[NUM_REQUESTERS-2:0], + grant[NUM_REQUESTERS-1] }; + else + top_priority_reg <= { top_priority_reg[NUM_REQUESTERS-2:0], top_priority_reg[NUM_REQUESTERS-1] }; + end + end + end + end + +endmodule + +// ---------------------------------------------- +// Adder for the standard arbitrator +// ---------------------------------------------- +module altera_merlin_arb_adder +#( + parameter WIDTH = 8 +) +( + input [WIDTH-1:0] a, + input [WIDTH-1:0] b, + + output [WIDTH-1:0] sum +); + + // ---------------------------------------------- + // Benchmarks indicate that for small widths, the full + // adder has higher fmax because synthesis can merge + // it with the mux, allowing partial decisions to be + // made early. + // + // The magic number is 4 requesters, which means an + // 8 bit adder. + // ---------------------------------------------- + genvar i; + generate if (WIDTH <= 8) begin : full_adder + + wire cout[WIDTH-1:0]; + + assign sum[0] = (a[0] ^ b[0]); + assign cout[0] = (a[0] & b[0]); + + for (i = 1; i < WIDTH; i = i+1) begin : arb + + assign sum[i] = (a[i] ^ b[i]) ^ cout[i-1]; + assign cout[i] = (a[i] & b[i]) | (cout[i-1] & (a[i] ^ b[i])); + + end + + end else begin : carry_chain + + assign sum = a + b; + + end + endgenerate + +endmodule diff --git a/nios_system/synthesis/submodules/altera_merlin_burst_uncompressor.sv b/nios_system/synthesis/submodules/altera_merlin_burst_uncompressor.sv new file mode 100644 index 0000000..30eaf7d --- /dev/null +++ b/nios_system/synthesis/submodules/altera_merlin_burst_uncompressor.sv @@ -0,0 +1,286 @@ +// (C) 2001-2013 Altera Corporation. All rights reserved. +// Your use of Altera Corporation's design tools, logic functions and other +// software and tools, and its AMPP partner logic functions, and any output +// files any of the foregoing (including device programming or simulation +// files), and any associated documentation or information are expressly subject +// to the terms and conditions of the Altera Program License Subscription +// Agreement, Altera MegaCore Function License Agreement, or other applicable +// license agreement, including, without limitation, that your use is for the +// sole purpose of programming logic devices manufactured by Altera and sold by +// Altera or its authorized distributors. Please refer to the applicable +// agreement for further details. + + +// (C) 2001-2012 Altera Corporation. All rights reserved. +// Your use of Altera Corporation's design tools, logic functions and other +// software and tools, and its AMPP partner logic functions, and any output +// files any of the foregoing (including device programming or simulation +// files), and any associated documentation or information are expressly subject +// to the terms and conditions of the Altera Program License Subscription +// Agreement, Altera MegaCore Function License Agreement, or other applicable +// license agreement, including, without limitation, that your use is for the +// sole purpose of programming logic devices manufactured by Altera and sold by +// Altera or its authorized distributors. Please refer to the applicable +// agreement for further details. + + +// $Id: //acds/rel/13.0sp1/ip/merlin/altera_merlin_slave_agent/altera_merlin_burst_uncompressor.sv#1 $ +// $Revision: #1 $ +// $Date: 2013/03/07 $ +// $Author: swbranch $ + +// ------------------------------------------ +// Merlin Burst Uncompressor +// +// Compressed read bursts -> uncompressed +// ------------------------------------------ + +`timescale 1 ns / 1 ns + +module altera_merlin_burst_uncompressor +#( + parameter ADDR_W = 16, + parameter BURSTWRAP_W = 3, + parameter BYTE_CNT_W = 4, + parameter PKT_SYMBOLS = 4, + parameter BURST_SIZE_W = 3 +) +( + input clk, + input reset, + + // sink ST signals + input sink_startofpacket, + input sink_endofpacket, + input sink_valid, + output sink_ready, + + // sink ST "data" + input [ADDR_W - 1: 0] sink_addr, + input [BURSTWRAP_W - 1 : 0] sink_burstwrap, + input [BYTE_CNT_W - 1 : 0] sink_byte_cnt, + input sink_is_compressed, + input [BURST_SIZE_W-1 : 0] sink_burstsize, + + // source ST signals + output source_startofpacket, + output source_endofpacket, + output source_valid, + input source_ready, + + // source ST "data" + output [ADDR_W - 1: 0] source_addr, + output [BURSTWRAP_W - 1 : 0] source_burstwrap, + output [BYTE_CNT_W - 1 : 0] source_byte_cnt, + + // Note: in the slave agent, the output should always be uncompressed. In + // other applications, it may be required to leave-compressed or not. How to + // control? Seems like a simple mux - pass-through if no uncompression is + // required. + output source_is_compressed, + output [BURST_SIZE_W-1 : 0] source_burstsize +); + +//---------------------------------------------------- +// AXSIZE decoding +// +// Turns the axsize value into the actual number of bytes +// being transferred. +// --------------------------------------------------- +function reg[63:0] bytes_in_transfer; + input [2:0] axsize; + case (axsize) + 3'b000: bytes_in_transfer = 64'b0000000000000000000000000000000000000000000000000000000000000001; + 3'b001: bytes_in_transfer = 64'b0000000000000000000000000000000000000000000000000000000000000010; + 3'b010: bytes_in_transfer = 64'b0000000000000000000000000000000000000000000000000000000000000100; + 3'b011: bytes_in_transfer = 64'b0000000000000000000000000000000000000000000000000000000000001000; + 3'b100: bytes_in_transfer = 64'b0000000000000000000000000000000000000000000000000000000000010000; + 3'b101: bytes_in_transfer = 64'b0000000000000000000000000000000000000000000000000000000000100000; + 3'b110: bytes_in_transfer = 64'b0000000000000000000000000000000000000000000000000000000001000000; + 3'b111: bytes_in_transfer = 64'b0000000000000000000000000000000000000000000000000000000010000000; + default:bytes_in_transfer = 64'b0000000000000000000000000000000000000000000000000000000000000001; + endcase + +endfunction + + // num_symbols is PKT_SYMBOLS, appropriately sized. + wire [31:0] int_num_symbols = PKT_SYMBOLS; + wire [BYTE_CNT_W-1:0] num_symbols = int_num_symbols[BYTE_CNT_W-1:0]; + + // def: Burst Compression. In a merlin network, a compressed burst is one + // which is transmitted in a single beat. Example: read burst. In + // constrast, an uncompressed burst (example: write burst) is transmitted in + // one beat per writedata item. + // + // For compressed bursts which require response packets, burst + // uncompression is required. Concrete example: a read burst of size 8 + // occupies one response-fifo position. When that fifo position reaches the + // front of the FIFO, the slave starts providing the required 8 readdatavalid + // pulses. The 8 return response beats must be provided in a single packet, + // with incrementing address and decrementing byte_cnt fields. Upon receipt + // of the final readdata item of the burst, the response FIFO item is + // retired. + // Burst uncompression logic provides: + // a) 2-state FSM (idle, busy) + // reset to idle state + // transition to busy state for 2nd and subsequent rdv pulses + // - a single-cycle burst (aka non-burst read) causes no transition to + // busy state. + // b) response startofpacket/endofpacket logic. The response FIFO item + // will have sop asserted, and may have eop asserted. (In the case of + // multiple read bursts transmit in the command fabric in a single packet, + // the eop assertion will come in a later FIFO item.) To support packet + // conservation, and emit a well-formed packet on the response fabric, + // i) response fabric startofpacket is asserted only for the first resp. + // beat; + // ii) response fabric endofpacket is asserted only for the last resp. + // beat. + // c) response address field. The response address field contains an + // incrementing sequence, such that each readdata item is associated with + // its slave-map location. N.b. a) computing the address correctly requires + // knowledge of burstwrap behavior b) there may be no clients of the address + // field, which makes this field a good target for optimization. See + // burst_uncompress_address_counter below. + // d) response byte_cnt field. The response byte_cnt field contains a + // decrementing sequence, such that each beat of the response contains the + // count of bytes to follow. In the case of sub-bursts in a single packet, + // the byte_cnt field may decrement down to num_symbols, then back up to + // some value, multiple times in the packet. + + reg burst_uncompress_busy; + reg [BYTE_CNT_W-1:0] burst_uncompress_byte_counter; + wire first_packet_beat; + wire last_packet_beat; + + assign first_packet_beat = sink_valid & ~burst_uncompress_busy; + + // First cycle: burst_uncompress_byte_counter isn't ready yet, mux the input to + // the output. + assign source_byte_cnt = + first_packet_beat ? sink_byte_cnt : burst_uncompress_byte_counter; + assign source_valid = sink_valid; + + // Last packet beat is set throughout receipt of an uncompressed read burst + // from the response FIFO - this forces all the burst uncompression machinery + // idle. + assign last_packet_beat = ~sink_is_compressed | + ( + burst_uncompress_busy ? + (sink_valid & (burst_uncompress_byte_counter == num_symbols)) : + sink_valid & (sink_byte_cnt == num_symbols) + ); + + always @(posedge clk or posedge reset) begin + if (reset) begin + burst_uncompress_busy <= '0; + burst_uncompress_byte_counter <= '0; + end + else begin + if (source_valid & source_ready & sink_valid) begin + // No matter what the current state, last_packet_beat leads to + // idle. + if (last_packet_beat) begin + burst_uncompress_busy <= '0; + burst_uncompress_byte_counter <= '0; + end + else begin + if (burst_uncompress_busy) begin + burst_uncompress_byte_counter <= burst_uncompress_byte_counter ? + (burst_uncompress_byte_counter - num_symbols) : + (sink_byte_cnt - num_symbols); + end + else begin // not busy, at least one more beat to go + burst_uncompress_byte_counter <= sink_byte_cnt - num_symbols; + // To do: should busy go true for numsymbols-size compressed + // bursts? + burst_uncompress_busy <= '1; + end + end + end + end + end + + wire [ADDR_W - 1 : 0 ] addr_width_burstwrap; + reg [ADDR_W - 1 : 0 ] burst_uncompress_address_base; + reg [ADDR_W - 1 : 0] burst_uncompress_address_offset; + + wire [63:0] decoded_burstsize_wire; + wire [ADDR_W-1:0] decoded_burstsize; + + // The input burstwrap value can be used as a mask against address values, + // but with one caveat: the address width may be (probably is) wider than + // the burstwrap width. The spec says: extend the msb of the burstwrap + // value out over the entire address width (but only if the address width + // actually is wider than the burstwrap width; otherwise it's a 0-width or + // negative range and concatenation multiplier). + assign addr_width_burstwrap[BURSTWRAP_W - 1 : 0] = sink_burstwrap; + generate + if (ADDR_W > BURSTWRAP_W) begin : addr_sign_extend + // Sign-extend, just wires: + assign addr_width_burstwrap[ADDR_W - 1 : BURSTWRAP_W] = + {(ADDR_W - BURSTWRAP_W) {sink_burstwrap[BURSTWRAP_W - 1]}}; + end + endgenerate + + always @(posedge clk or posedge reset) begin + if (reset) begin + burst_uncompress_address_base <= '0; + end + else if (first_packet_beat & source_ready) begin + burst_uncompress_address_base <= sink_addr & ~addr_width_burstwrap; + end + end + + assign decoded_burstsize_wire = bytes_in_transfer(sink_burstsize); //expand it to 64 bits + assign decoded_burstsize = decoded_burstsize_wire[ADDR_W-1:0]; //then take the width that is needed + + wire [ADDR_W - 1 : 0] p1_burst_uncompress_address_offset = + ( + (first_packet_beat ? + sink_addr : + burst_uncompress_address_offset) + decoded_burstsize + ) & + addr_width_burstwrap; + + always @(posedge clk or posedge reset) begin + if (reset) begin + burst_uncompress_address_offset <= '0; + end + else begin + if (source_ready & source_valid) begin + burst_uncompress_address_offset <= p1_burst_uncompress_address_offset; + // if (first_packet_beat) begin + // burst_uncompress_address_offset <= + // (sink_addr + num_symbols) & addr_width_burstwrap; + // end + // else begin + // burst_uncompress_address_offset <= + // (burst_uncompress_address_offset + num_symbols) & addr_width_burstwrap; + // end + end + end + end + + // On the first packet beat, send the input address out unchanged, + // while values are computed/registered for 2nd and subsequent beats. + assign source_addr = first_packet_beat ? sink_addr : + burst_uncompress_address_base | burst_uncompress_address_offset; + assign source_burstwrap = sink_burstwrap; + assign source_burstsize = sink_burstsize; + + //------------------------------------------------------------------- + // A single (compressed) read burst will have sop/eop in the same beat. + // A sequence of read sub-bursts emitted by a burst adapter in response to a + // single read burst will have sop on the first sub-burst, eop on the last. + // Assert eop only upon (sink_endofpacket & last_packet_beat) to preserve + // packet conservation. + assign source_startofpacket = sink_startofpacket & ~burst_uncompress_busy; + assign source_endofpacket = sink_endofpacket & last_packet_beat; + assign sink_ready = source_valid & source_ready & last_packet_beat; + + // This is correct for the slave agent usage, but won't always be true in the + // width adapter. To do: add an "please uncompress" input, and use it to + // pass-through or modify, and set source_is_compressed accordingly. + assign source_is_compressed = 1'b0; +endmodule + diff --git a/nios_system/synthesis/submodules/altera_merlin_master_agent.sv b/nios_system/synthesis/submodules/altera_merlin_master_agent.sv new file mode 100644 index 0000000..305107d --- /dev/null +++ b/nios_system/synthesis/submodules/altera_merlin_master_agent.sv @@ -0,0 +1,309 @@ +// (C) 2001-2013 Altera Corporation. All rights reserved. +// Your use of Altera Corporation's design tools, logic functions and other +// software and tools, and its AMPP partner logic functions, and any output +// files any of the foregoing (including device programming or simulation +// files), and any associated documentation or information are expressly subject +// to the terms and conditions of the Altera Program License Subscription +// Agreement, Altera MegaCore Function License Agreement, or other applicable +// license agreement, including, without limitation, that your use is for the +// sole purpose of programming logic devices manufactured by Altera and sold by +// Altera or its authorized distributors. Please refer to the applicable +// agreement for further details. + + +// $Id: //acds/rel/13.0sp1/ip/merlin/altera_merlin_master_agent/altera_merlin_master_agent.sv#1 $ +// $Revision: #1 $ +// $Date: 2013/03/07 $ +// $Author: swbranch $ + +// -------------------------------------- +// Merlin Master Agent +// +// Converts Avalon-MM transactions into +// Merlin network packets. +// -------------------------------------- + +`timescale 1 ns / 1 ns + +module altera_merlin_master_agent +#( + // ------------------- + // Packet Format Parameters + // ------------------- + parameter PKT_QOS_H = 109, + PKT_QOS_L = 106, + PKT_DATA_SIDEBAND_H = 105, + PKT_DATA_SIDEBAND_L = 98, + PKT_ADDR_SIDEBAND_H = 97, + PKT_ADDR_SIDEBAND_L = 93, + PKT_CACHE_H = 92, + PKT_CACHE_L = 89, + PKT_THREAD_ID_H = 88, + PKT_THREAD_ID_L = 87, + PKT_BEGIN_BURST = 81, + PKT_PROTECTION_H = 80, + PKT_PROTECTION_L = 80, + PKT_BURSTWRAP_H = 79, + PKT_BURSTWRAP_L = 77, + PKT_BYTE_CNT_H = 76, + PKT_BYTE_CNT_L = 74, + PKT_ADDR_H = 73, + PKT_ADDR_L = 42, + PKT_BURST_SIZE_H = 86, + PKT_BURST_SIZE_L = 84, + PKT_BURST_TYPE_H = 94, + PKT_BURST_TYPE_L = 93, + PKT_TRANS_EXCLUSIVE = 83, + PKT_TRANS_LOCK = 82, + PKT_TRANS_COMPRESSED_READ = 41, + PKT_TRANS_POSTED = 40, + PKT_TRANS_WRITE = 39, + PKT_TRANS_READ = 38, + PKT_DATA_H = 37, + PKT_DATA_L = 6, + PKT_BYTEEN_H = 5, + PKT_BYTEEN_L = 2, + PKT_SRC_ID_H = 1, + PKT_SRC_ID_L = 1, + PKT_DEST_ID_H = 0, + PKT_DEST_ID_L = 0, + PKT_RESPONSE_STATUS_L = 110, + PKT_RESPONSE_STATUS_H = 111, + ST_DATA_W = 112, + ST_CHANNEL_W = 1, + + // ------------------- + // Agent Parameters + // ------------------- + AV_BURSTCOUNT_W = 3, + ID = 1, + SUPPRESS_0_BYTEEN_RSP = 1, + BURSTWRAP_VALUE = 4, + CACHE_VALUE = 0, + SECURE_ACCESS_BIT = 1, + USE_READRESPONSE = 0, + USE_WRITERESPONSE = 0, + + // ------------------- + // Derived Parameters + // ------------------- + PKT_BURSTWRAP_W = PKT_BURSTWRAP_H - PKT_BURSTWRAP_L + 1, + PKT_BYTE_CNT_W = PKT_BYTE_CNT_H - PKT_BYTE_CNT_L + 1, + PKT_PROTECTION_W= PKT_PROTECTION_H - PKT_PROTECTION_L + 1, + PKT_ADDR_W = PKT_ADDR_H - PKT_ADDR_L + 1, + PKT_DATA_W = PKT_DATA_H - PKT_DATA_L + 1, + PKT_BYTEEN_W = PKT_BYTEEN_H - PKT_BYTEEN_L + 1, + PKT_SRC_ID_W = PKT_SRC_ID_H - PKT_SRC_ID_L + 1, + PKT_DEST_ID_W = PKT_DEST_ID_H - PKT_DEST_ID_L + 1 +) +( + // ------------------- + // Clock & Reset + // ------------------- + input clk, + input reset, + + // ------------------- + // Avalon-MM Anti-Master + // ------------------- + input [PKT_ADDR_W-1 : 0] av_address, + input av_write, + input av_read, + input [PKT_DATA_W-1 : 0] av_writedata, + output reg [PKT_DATA_W-1 : 0] av_readdata, + output reg av_waitrequest, + output reg av_readdatavalid, + input [PKT_BYTEEN_W-1 : 0] av_byteenable, + input [AV_BURSTCOUNT_W-1 : 0] av_burstcount, + input av_debugaccess, + input av_lock, + output reg [1:0] av_response, + input av_writeresponserequest, + output reg av_writeresponsevalid, + + // ------------------- + // Command Source + // ------------------- + output reg cp_valid, + output reg [ST_DATA_W-1 : 0] cp_data, + output wire cp_startofpacket, + output wire cp_endofpacket, + input cp_ready, + + // ------------------- + // Response Sink + // ------------------- + input rp_valid, + input [ST_DATA_W-1 : 0] rp_data, + input [ST_CHANNEL_W-1 : 0] rp_channel, + input rp_startofpacket, + input rp_endofpacket, + output reg rp_ready +); + // ------------------------------------------------------------ + // Utility Functions + // ------------------------------------------------------------ + function integer clogb2; + input [31:0] value; + begin + for (clogb2 = 0; value > 0; clogb2 = clogb2 + 1) + value = value >> 1; + clogb2 = clogb2 - 1; + end + endfunction // clogb2 + + localparam MAX_BURST = 1 << (AV_BURSTCOUNT_W - 1); + localparam NUMSYMBOLS = PKT_BYTEEN_W; + localparam BURSTING = (MAX_BURST > NUMSYMBOLS); + localparam BITS_TO_ZERO = clogb2(NUMSYMBOLS); + localparam BURST_SIZE = clogb2(NUMSYMBOLS); + + typedef enum bit [1:0] + { + FIXED = 2'b00, + INCR = 2'b01, + WRAP = 2'b10, + OTHER_WRAP = 2'b11 + } MerlinBurstType; + + // -------------------------------------- + // Potential optimization: compare in words to save bits? + // -------------------------------------- + wire is_burst; + assign is_burst = (BURSTING) & (av_burstcount > NUMSYMBOLS); + + wire [31:0] burstwrap_value_int = BURSTWRAP_VALUE; + wire [31:0] id_int = ID; + wire [2:0] burstsize_sig = BURST_SIZE[2:0]; + wire [1:0] bursttype_value = burstwrap_value_int[PKT_BURSTWRAP_W-1] ? INCR : WRAP; + + // -------------------------------------- + // Address alignment + // + // The packet format requires that addresses be aligned to + // the transaction size. + // -------------------------------------- + wire [PKT_ADDR_W-1 : 0] av_address_aligned; + generate + if (NUMSYMBOLS > 1) begin + assign av_address_aligned = + {av_address[PKT_ADDR_W-1 : BITS_TO_ZERO], {BITS_TO_ZERO {1'b0}}}; + end + else begin + assign av_address_aligned = av_address; + end + endgenerate + + // -------------------------------------- + // Command & Response Construction + // -------------------------------------- + always @* begin + cp_data = '0; // default assignment; override below as needed. + + cp_data[PKT_PROTECTION_L] = av_debugaccess; + cp_data[PKT_PROTECTION_L+1] = SECURE_ACCESS_BIT[0]; // Default Non-secured (AXI) + cp_data[PKT_PROTECTION_L+2] = 1'b0; // Default Data access (AXI) + cp_data[PKT_BURSTWRAP_H:PKT_BURSTWRAP_L ] = burstwrap_value_int[PKT_BURSTWRAP_W-1:0]; + cp_data[PKT_BYTE_CNT_H :PKT_BYTE_CNT_L ] = av_burstcount; + cp_data[PKT_ADDR_H :PKT_ADDR_L ] = av_address_aligned; + cp_data[PKT_TRANS_EXCLUSIVE ] = 1'b0; + cp_data[PKT_TRANS_LOCK ] = av_lock; + cp_data[PKT_TRANS_COMPRESSED_READ ] = av_read & is_burst; + cp_data[PKT_TRANS_READ ] = av_read; + cp_data[PKT_TRANS_WRITE ] = av_write; + // posted and non-posted write avaiable now + cp_data[PKT_TRANS_POSTED ] = av_write & !av_writeresponserequest; + cp_data[PKT_DATA_H :PKT_DATA_L ] = av_writedata; + cp_data[PKT_BYTEEN_H :PKT_BYTEEN_L ] = av_byteenable; + cp_data[PKT_BURST_SIZE_H:PKT_BURST_SIZE_L] = burstsize_sig; + cp_data[PKT_BURST_TYPE_H:PKT_BURST_TYPE_L] = bursttype_value; + cp_data[PKT_SRC_ID_H :PKT_SRC_ID_L ] = id_int[PKT_SRC_ID_W-1:0]; + cp_data[PKT_THREAD_ID_H:PKT_THREAD_ID_L ] = '0; + cp_data[PKT_CACHE_H :PKT_CACHE_L ] = CACHE_VALUE[3:0]; + cp_data[PKT_QOS_H : PKT_QOS_L] = '0; + cp_data[PKT_ADDR_SIDEBAND_H:PKT_ADDR_SIDEBAND_L] = '0; + cp_data[PKT_DATA_SIDEBAND_H :PKT_DATA_SIDEBAND_L] = '0; + + av_readdata = rp_data[PKT_DATA_H : PKT_DATA_L]; + if (USE_WRITERESPONSE || USE_READRESPONSE) + av_response = rp_data[PKT_RESPONSE_STATUS_H : PKT_RESPONSE_STATUS_L]; + else + av_response = '0; + + end + + // -------------------------------------- + // Command Control + // -------------------------------------- + always @* begin + cp_valid = 0; + + if (av_write || av_read) + cp_valid = 1; + end + + generate if (BURSTING) begin + reg sop_enable; + + always @(posedge clk, posedge reset) begin + if (reset) begin + sop_enable <= 1'b1; + end + else begin + if (cp_valid && cp_ready) begin + sop_enable <= 1'b0; + if (cp_endofpacket) + sop_enable <= 1'b1; + end + end + end + + assign cp_startofpacket = sop_enable; + assign cp_endofpacket = (av_read) | (av_burstcount == NUMSYMBOLS); + + end + else begin + + assign cp_startofpacket = 1'b1; + assign cp_endofpacket = 1'b1; + + end + endgenerate + + // -------------------------------------- + // Backpressure & Readdatavalid + // -------------------------------------- + reg hold_waitrequest; + + always @ (posedge clk, posedge reset) begin + if (reset) + hold_waitrequest <= 1'b1; + else + hold_waitrequest <= 1'b0; + end + + always @* begin + rp_ready = 1; + av_readdatavalid = 0; + av_writeresponsevalid = 0; + av_waitrequest = hold_waitrequest | !cp_ready; + + // -------------------------------------- + // Currently, responses are _always_ read responses because + // this Avalon agent only issues posted writes, which do + // not have responses. -> not true for now + // Now Avalon supports response, so based on type of transaction + // return, assert correct thing + // -------------------------------------- + if (rp_data[PKT_TRANS_WRITE] == 1) + av_writeresponsevalid = rp_valid; + else + av_readdatavalid = rp_valid; + + if (SUPPRESS_0_BYTEEN_RSP) begin + if (rp_data[PKT_BYTEEN_H:PKT_BYTEEN_L] == 0) + av_readdatavalid = 0; + end + end + +endmodule diff --git a/nios_system/synthesis/submodules/altera_merlin_master_translator.sv b/nios_system/synthesis/submodules/altera_merlin_master_translator.sv new file mode 100644 index 0000000..b2be2d2 --- /dev/null +++ b/nios_system/synthesis/submodules/altera_merlin_master_translator.sv @@ -0,0 +1,554 @@ +// (C) 2001-2013 Altera Corporation. All rights reserved. +// Your use of Altera Corporation's design tools, logic functions and other +// software and tools, and its AMPP partner logic functions, and any output +// files any of the foregoing (including device programming or simulation +// files), and any associated documentation or information are expressly subject +// to the terms and conditions of the Altera Program License Subscription +// Agreement, Altera MegaCore Function License Agreement, or other applicable +// license agreement, including, without limitation, that your use is for the +// sole purpose of programming logic devices manufactured by Altera and sold by +// Altera or its authorized distributors. Please refer to the applicable +// agreement for further details. + + +// $Id: //acds/rel/13.0sp1/ip/merlin/altera_merlin_master_translator/altera_merlin_master_translator.sv#1 $ +// $Revision: #1 $ +// $Date: 2013/03/07 $ +// $Author: swbranch $ + +// -------------------------------------- +// Merlin Master Translator +// +// Converts Avalon-MM Master Interfaces into +// Avalon-MM Universal Master Interfaces +// -------------------------------------- + +`timescale 1 ns / 1 ns + + + +module altera_merlin_master_translator #( + parameter + AV_ADDRESS_W = 32, + AV_DATA_W = 32, + AV_BURSTCOUNT_W = 4, + AV_BYTEENABLE_W = 4, + + //Optional Port Declarations + + USE_BURSTCOUNT = 1, + USE_BEGINBURSTTRANSFER = 0, + USE_BEGINTRANSFER = 0, + USE_CHIPSELECT = 0, + USE_READ = 1, + USE_READDATAVALID = 1, + USE_WRITE = 1, + USE_WAITREQUEST = 1, + USE_WRITERESPONSE = 0, + USE_READRESPONSE = 0, + + AV_REGISTERINCOMINGSIGNALS = 0, + AV_SYMBOLS_PER_WORD = 4, + AV_ADDRESS_SYMBOLS = 0, + AV_CONSTANT_BURST_BEHAVIOR = 1, + AV_BURSTCOUNT_SYMBOLS = 0, + AV_LINEWRAPBURSTS = 0, + UAV_ADDRESS_W = 38, + UAV_BURSTCOUNT_W = 10, + UAV_CONSTANT_BURST_BEHAVIOR = 0 + )( + //Universal Avalon Master + input wire clk, + input wire reset, + output reg uav_write, + output reg uav_read, + output reg [UAV_ADDRESS_W -1 : 0] uav_address, + output reg [UAV_BURSTCOUNT_W -1 : 0] uav_burstcount, + output wire [AV_BYTEENABLE_W -1 : 0] uav_byteenable, + output wire [AV_DATA_W -1 : 0] uav_writedata, + output wire uav_lock, + output wire uav_debugaccess, + output wire uav_clken, + + input wire [ AV_DATA_W -1 : 0] uav_readdata, + input wire uav_readdatavalid, + input wire uav_waitrequest, + input wire [1:0] uav_response, + output reg uav_writeresponserequest, + input wire uav_writeresponsevalid, + + //Avalon-MM !Master + input reg av_write, + input reg av_read, + input wire [AV_ADDRESS_W -1 : 0] av_address, + input wire [AV_BYTEENABLE_W -1 : 0] av_byteenable, + input wire [AV_BURSTCOUNT_W -1 : 0] av_burstcount, + input wire [AV_DATA_W -1 : 0] av_writedata, + input wire av_begintransfer, + input wire av_beginbursttransfer, + input wire av_lock, + input wire av_chipselect, + input wire av_debugaccess, + input wire av_clken, + + output wire [AV_DATA_W -1 : 0] av_readdata, + output wire av_readdatavalid, + output reg av_waitrequest, + output reg [1:0] av_response, + input wire av_writeresponserequest, + output reg av_writeresponsevalid + + ); + + + localparam BITS_PER_WORD = clog2(AV_SYMBOLS_PER_WORD - 1); + localparam AV_MAX_SYMBOL_BURST = flog2( pow2(AV_BURSTCOUNT_W - 1) * (AV_BURSTCOUNT_SYMBOLS ? 1 : (AV_SYMBOLS_PER_WORD)) ); + localparam AV_MAX_SYMBOL_BURST_MINUS_ONE = AV_MAX_SYMBOL_BURST ? AV_MAX_SYMBOL_BURST - 1 : 0 ; + + localparam UAV_BURSTCOUNT_W_OR_32 = UAV_BURSTCOUNT_W > 32 ? 31 : UAV_BURSTCOUNT_W -1; + localparam UAV_ADDRESS_W_OR_32 = UAV_ADDRESS_W > 32 ? 31 : UAV_ADDRESS_W -1; + + + // -1 for burstcount restriction 2^(n-1) + + localparam BITS_PER_WORD_BURSTCOUNT = UAV_BURSTCOUNT_W == 1 ? 0 : BITS_PER_WORD; + localparam BITS_PER_WORD_ADDRESS = UAV_ADDRESS_W == 1 ? 0 : BITS_PER_WORD; + + localparam ADDRESS_LOW = AV_ADDRESS_SYMBOLS ? 0 : BITS_PER_WORD_ADDRESS; + localparam BURSTCOUNT_LOW = AV_BURSTCOUNT_SYMBOLS ? 0 : BITS_PER_WORD_BURSTCOUNT; + + localparam ADDRESS_HIGH = UAV_ADDRESS_W > AV_ADDRESS_W + ADDRESS_LOW ? AV_ADDRESS_W : UAV_ADDRESS_W - ADDRESS_LOW; + localparam BURSTCOUNT_HIGH = UAV_BURSTCOUNT_W > AV_BURSTCOUNT_W + BURSTCOUNT_LOW ? AV_BURSTCOUNT_W : UAV_BURSTCOUNT_W - BURSTCOUNT_LOW; + + function integer flog2; + input [31:0] Depth; + integer i; + begin + i = Depth; + if ( i <= 0 ) flog2 = 0; + else begin + for(flog2 = -1; i > 0; flog2 = flog2 + 1) + i = i >> 1; + end + end + + endfunction // flog2 + + function integer clog2; + input [31:0] Depth; + integer i; + begin + i = Depth; + for(clog2 = 0; i > 0; clog2 = clog2 + 1) + i = i >> 1; + end + + endfunction + + function integer pow2; + input [31:0] toShift; + begin + pow2=1; + pow2= pow2 << toShift; + end + endfunction // pow2 + + // ------------------------------------------------- + // Assign some constants to appropriately-sized signals to + // avoid synthesis warnings. This also helps some simulators + // with their inferred sensitivity lists. + // ------------------------------------------------- + // Calculate the symbols per word as the power of 2 extended symbols per word + wire [31:0] symbols_per_word_int = 2**(clog2(AV_SYMBOLS_PER_WORD[UAV_BURSTCOUNT_W_OR_32 : 0] - 1)); + wire [UAV_BURSTCOUNT_W_OR_32 : 0] symbols_per_word = symbols_per_word_int[UAV_BURSTCOUNT_W_OR_32 : 0]; + + + reg internal_beginbursttransfer; + reg internal_begintransfer; + reg [UAV_ADDRESS_W - 1: 0 ] uav_address_pre; + reg [UAV_BURSTCOUNT_W - 1 : 0 ] uav_burstcount_pre; + + + + reg uav_read_pre; + reg uav_write_pre; + reg read_accepted; + + //Passthru assignmenst + + assign uav_writedata = av_writedata; + assign av_readdata = uav_readdata; + assign uav_byteenable = av_byteenable; + assign uav_lock = av_lock; + assign av_readdatavalid = uav_readdatavalid; + assign uav_debugaccess = av_debugaccess; + assign uav_clken = av_clken; + + //Response signals + always_comb + begin + if (!USE_READRESPONSE && !USE_WRITERESPONSE) + av_response = '0; + else + av_response = uav_response; + if (USE_WRITERESPONSE) begin + uav_writeresponserequest = av_writeresponserequest; + av_writeresponsevalid = uav_writeresponsevalid; + end else begin + uav_writeresponserequest = '0; + av_writeresponsevalid = '0; + end + end + + //address + burstcount assignment + + reg [UAV_ADDRESS_W - 1 : 0] address_register; + reg [UAV_BURSTCOUNT_W - 1 : 0] burstcount_register; + + always @* begin + uav_address=uav_address_pre; + uav_burstcount=uav_burstcount_pre; + + if(AV_CONSTANT_BURST_BEHAVIOR && !UAV_CONSTANT_BURST_BEHAVIOR && ~internal_beginbursttransfer) begin + uav_address=address_register; + uav_burstcount=burstcount_register; + end + end + + reg first_burst_stalled; + reg burst_stalled; + + + wire[UAV_ADDRESS_W-1:0] combi_burst_addr_reg; + wire [UAV_ADDRESS_W-1:0] combi_addr_reg; + generate + if(AV_LINEWRAPBURSTS && AV_MAX_SYMBOL_BURST!=0) begin + if(AV_MAX_SYMBOL_BURST > UAV_ADDRESS_W - 1) begin + assign combi_burst_addr_reg = { uav_address_pre[UAV_ADDRESS_W-1:0] + AV_SYMBOLS_PER_WORD[UAV_ADDRESS_W-1:0] }; + assign combi_addr_reg = { address_register[UAV_ADDRESS_W-1:0] + AV_SYMBOLS_PER_WORD[UAV_ADDRESS_W-1:0] }; + end + else begin + assign combi_burst_addr_reg = { uav_address_pre[UAV_ADDRESS_W - 1 : AV_MAX_SYMBOL_BURST], uav_address_pre[AV_MAX_SYMBOL_BURST_MINUS_ONE:0] + AV_SYMBOLS_PER_WORD[AV_MAX_SYMBOL_BURST_MINUS_ONE:0] }; + assign combi_addr_reg = { address_register[UAV_ADDRESS_W - 1 : AV_MAX_SYMBOL_BURST], address_register[AV_MAX_SYMBOL_BURST_MINUS_ONE:0] + AV_SYMBOLS_PER_WORD[AV_MAX_SYMBOL_BURST_MINUS_ONE:0] }; + end + end + else begin + assign combi_burst_addr_reg = + uav_address_pre + AV_SYMBOLS_PER_WORD[UAV_ADDRESS_W_OR_32:0]; + assign combi_addr_reg = + address_register + AV_SYMBOLS_PER_WORD[UAV_ADDRESS_W_OR_32:0]; + end + endgenerate + + always@(posedge clk, posedge reset) begin + + if(reset) begin + address_register <= '0; + burstcount_register <= '0; + first_burst_stalled <= 1'b0; + burst_stalled <= 1'b0; + end + else begin + address_register <= address_register; + burstcount_register <= burstcount_register; + + if(internal_beginbursttransfer||first_burst_stalled) begin + + if(av_waitrequest) begin + first_burst_stalled <= 1'b1; + address_register <= uav_address_pre; + burstcount_register <= uav_burstcount_pre; + end else begin + first_burst_stalled <= 1'b0; + address_register <= combi_burst_addr_reg; + burstcount_register <= uav_burstcount_pre - symbols_per_word; + end + end + + else if(internal_begintransfer || burst_stalled) begin + if(~av_waitrequest) begin + burst_stalled <= 1'b0; + address_register <= combi_addr_reg; + burstcount_register <= burstcount_register - symbols_per_word; + end else + burst_stalled<=1'b1; + end + end + + end + + //Address + always @* begin + uav_address_pre = '0; + + if(AV_ADDRESS_SYMBOLS) + uav_address_pre=av_address[ ( ADDRESS_HIGH ? ADDRESS_HIGH - 1 : 0 ) : 0 ]; + else begin + uav_address_pre[ UAV_ADDRESS_W - 1 : ADDRESS_LOW ] = av_address[( ADDRESS_HIGH ? ADDRESS_HIGH - 1 : 0) : 0 ]; + end + end + + //Burstcount + always@* begin + uav_burstcount_pre = symbols_per_word; // default to a single transfer + + if(USE_BURSTCOUNT) begin + uav_burstcount_pre = '0; + + if(AV_BURSTCOUNT_SYMBOLS) + uav_burstcount_pre = av_burstcount[( BURSTCOUNT_HIGH ? BURSTCOUNT_HIGH - 1 : 0 ) :0 ]; + else begin + uav_burstcount_pre[ UAV_BURSTCOUNT_W - 1 : BURSTCOUNT_LOW] = av_burstcount[( BURSTCOUNT_HIGH ? BURSTCOUNT_HIGH - 1 : 0 ) : 0 ]; + end + + end + + end + + + //waitrequest translation + + always@(posedge clk, posedge reset) begin + if(reset) + read_accepted <= 1'b0; + else begin + read_accepted <= read_accepted; + + if(read_accepted == 1 && uav_readdatavalid == 1) // reset acceptance only when rdv arrives + read_accepted <= 1'b0; + + if(read_accepted == 0) + read_accepted<=av_waitrequest ? uav_read_pre & ~uav_waitrequest : 1'b0; + end + + end + + reg write_accepted = 0; + generate if (AV_REGISTERINCOMINGSIGNALS) begin + always@(posedge clk, posedge reset) begin + if(reset) + write_accepted <= 1'b0; + else begin + write_accepted <= + ~av_waitrequest ? 1'b0 : + uav_write & ~uav_waitrequest? 1'b1 : + write_accepted; + end + end + end endgenerate + + always@* begin + av_waitrequest = uav_waitrequest; + + if(USE_READDATAVALID == 0 ) begin + av_waitrequest = uav_read_pre ? ~uav_readdatavalid : uav_waitrequest; + end + + if (AV_REGISTERINCOMINGSIGNALS) begin + av_waitrequest = + uav_read_pre ? ~uav_readdatavalid : + uav_write_pre ? (internal_begintransfer | uav_waitrequest) & ~write_accepted : + 1'b1; + end + + if(USE_WAITREQUEST == 0) begin + av_waitrequest = 0; + end + end + + //read/write generation + always@* begin + + uav_write = 1'b0; + uav_write_pre = 1'b0; + uav_read = 1'b0; + uav_read_pre = 1'b0; + + if(!USE_CHIPSELECT) begin + if (USE_READ) begin + uav_read_pre=av_read; + end + + if (USE_WRITE) begin + uav_write_pre=av_write; + end + end + else begin + if(!USE_WRITE && USE_READ) begin + uav_read_pre=av_read; + uav_write_pre=av_chipselect & ~av_read; + end + else if(!USE_READ && USE_WRITE) begin + uav_write_pre=av_write; + uav_read_pre = av_chipselect & ~av_write; + end + else if (USE_READ && USE_WRITE) begin + uav_write_pre=av_write; + uav_read_pre=av_read; + end + end + + if(USE_READDATAVALID == 0) + uav_read = uav_read_pre & ~read_accepted; + else + uav_read = uav_read_pre; + + if(AV_REGISTERINCOMINGSIGNALS == 0) + uav_write=uav_write_pre; + else + uav_write=uav_write_pre & ~write_accepted; + + + end + + // ------------------- + // Begintransfer Assigment + // ------------------- + + reg end_begintransfer; + + always@* begin + if(USE_BEGINTRANSFER) begin + internal_begintransfer = av_begintransfer; + end else begin + internal_begintransfer = ( uav_write | uav_read ) & ~end_begintransfer; + end + end + + always@ ( posedge clk or posedge reset ) begin + + if(reset) begin + end_begintransfer <= 1'b0; + end + else begin + + if(internal_begintransfer == 1 && uav_waitrequest) + end_begintransfer <= 1'b1; + else if(uav_waitrequest) + end_begintransfer <= end_begintransfer; + else + end_begintransfer <= 1'b0; + + end + + end + + // ------------------- + // Beginbursttransfer Assigment + // ------------------- + + reg end_beginbursttransfer; + wire last_burst_transfer_pre; + wire last_burst_transfer_reg; + wire last_burst_transfer; + + // compare values before the mux to shorten critical path; benchmark before changing + assign last_burst_transfer_pre = (uav_burstcount_pre == symbols_per_word); + assign last_burst_transfer_reg = (burstcount_register == symbols_per_word); + assign last_burst_transfer = (internal_beginbursttransfer) ? last_burst_transfer_pre : last_burst_transfer_reg; + + always@* begin + if(USE_BEGINBURSTTRANSFER) begin + internal_beginbursttransfer = av_beginbursttransfer; + end else begin + internal_beginbursttransfer = uav_read ? internal_begintransfer : internal_begintransfer && ~end_beginbursttransfer; + end + end + + always@ ( posedge clk or posedge reset ) begin + + if(reset) begin + end_beginbursttransfer <= 1'b0; + end + else begin + end_beginbursttransfer <= end_beginbursttransfer; + if( last_burst_transfer && internal_begintransfer || uav_read ) begin + end_beginbursttransfer <= 1'b0; + end + else if(uav_write && internal_begintransfer) begin + end_beginbursttransfer <= 1'b1; + end + end + + end + + // synthesis translate_off + + // ------------------------------------------------ + // check_1 : for waitrequest signal violation + // Ensure that when waitreqeust is asserted, the master is not allowed to change its controls + // Exception : begintransfer / beginbursttransfer + // : previously not in any transaction (idle) + // Note : Not checking clken which is not exactly part of Avalon controls/inputs + // : Not using system verilog assertions (seq/prop) since it is not supported if using Modelsim_SE + // ------------------------------------------------ + + reg av_waitrequest_r; + reg av_write_r,av_writeresponserequest_r,av_read_r,av_lock_r,av_chipselect_r,av_debugaccess_r; + reg [AV_ADDRESS_W-1:0] av_address_r; + reg [AV_BYTEENABLE_W-1:0] av_byteenable_r; + reg [AV_BURSTCOUNT_W-1:0] av_burstcount_r; + reg [AV_DATA_W-1:0] av_writedata_r; + + always @(posedge clk or posedge reset) begin + if (reset) begin + av_waitrequest_r <= '0; + av_write_r <= '0; + av_writeresponserequest_r <= '0; + av_read_r <= '0; + av_lock_r <= '0; + av_chipselect_r <= '0; + av_debugaccess_r <= '0; + av_address_r <= '0; + av_byteenable_r <= '0; + av_burstcount_r <= '0; + av_writedata_r <= '0; + + end + else begin + av_waitrequest_r <= av_waitrequest; + av_write_r <= av_write; + av_writeresponserequest_r <= av_writeresponserequest; + av_read_r <= av_read; + av_lock_r <= av_lock; + av_chipselect_r <= av_chipselect; + av_debugaccess_r <= av_debugaccess; + av_address_r <= av_address; + av_byteenable_r <= av_byteenable; + av_burstcount_r <= av_burstcount; + av_writedata_r <= av_writedata; + + if ( av_waitrequest_r && // When waitrequest is asserted + ( (av_write != av_write_r) || // Checks that : Input controls/data does not change + (av_writeresponserequest != av_writeresponserequest_r) || + (av_read != av_read_r) || + (av_lock != av_lock_r) || + (av_debugaccess != av_debugaccess_r) || + (av_address != av_address_r) || + (av_byteenable != av_byteenable_r) || + (av_burstcount != av_burstcount_r) + ) && + (av_write_r | av_read_r) && // Check only when : previously initiated a write/read + (!USE_CHIPSELECT | av_chipselect_r) // and chipselect was asserted (or unused) + ) + $display("%t: %m: Error: Input controls/data changed while av_waitrequest is asserted.\nav_address %x --> %x\nav_byteenable %x --> %x\nav_burstcount %x --> %x\nav_writedata %x --> %x\nav_writeresponserequest %x --> %x\nav_write %x --> %x\nav_read %x --> %x\nav_lock %x --> %x\nav_chipselect %x --> %x\nav_debugaccess %x --> %x ", $time(), + av_address_r , av_address, + av_byteenable_r , av_byteenable, + av_burstcount_r , av_burstcount, + av_writedata_r , av_writedata, + av_writeresponserequest_r, av_writeresponserequest, + av_write_r , av_write, + av_read_r , av_read, + av_lock_r , av_lock, + av_chipselect_r, av_chipselect, + av_debugaccess_r, av_debugaccess); + end + + // end check_1 + + end + + // synthesis translate_on + + + endmodule diff --git a/nios_system/synthesis/submodules/altera_merlin_slave_agent.sv b/nios_system/synthesis/submodules/altera_merlin_slave_agent.sv new file mode 100644 index 0000000..e7c183d --- /dev/null +++ b/nios_system/synthesis/submodules/altera_merlin_slave_agent.sv @@ -0,0 +1,588 @@ +// (C) 2001-2013 Altera Corporation. All rights reserved. +// Your use of Altera Corporation's design tools, logic functions and other +// software and tools, and its AMPP partner logic functions, and any output +// files any of the foregoing (including device programming or simulation +// files), and any associated documentation or information are expressly subject +// to the terms and conditions of the Altera Program License Subscription +// Agreement, Altera MegaCore Function License Agreement, or other applicable +// license agreement, including, without limitation, that your use is for the +// sole purpose of programming logic devices manufactured by Altera and sold by +// Altera or its authorized distributors. Please refer to the applicable +// agreement for further details. + + +// (C) 2001-2011 Altera Corporation. All rights reserved. +// Your use of Altera Corporation's design tools, logic functions and other +// software and tools, and its AMPP partner logic functions, and any output +// files any of the foregoing (including device programming or simulation +// files), and any associated documentation or information are expressly subject +// to the terms and conditions of the Altera Program License Subscription +// Agreement, Altera MegaCore Function License Agreement, or other applicable +// license agreement, including, without limitation, that your use is for the +// sole purpose of programming logic devices manufactured by Altera and sold by +// Altera or its authorized distributors. Please refer to the applicable +// agreement for further details. + + +// $Id: //acds/rel/13.0sp1/ip/merlin/altera_merlin_slave_agent/altera_merlin_slave_agent.sv#1 $ +// $Revision: #1 $ +// $Date: 2013/03/07 $ +// $Author: swbranch $ + +`timescale 1 ns / 1 ns + +module altera_merlin_slave_agent +#( + // Packet parameters + parameter PKT_BEGIN_BURST = 81, + parameter PKT_DATA_H = 31, + parameter PKT_DATA_L = 0, + parameter PKT_SYMBOL_W = 8, + parameter PKT_BYTEEN_H = 71, + parameter PKT_BYTEEN_L = 68, + parameter PKT_ADDR_H = 63, + parameter PKT_ADDR_L = 32, + parameter PKT_TRANS_LOCK = 87, + parameter PKT_TRANS_COMPRESSED_READ = 67, + parameter PKT_TRANS_POSTED = 66, + parameter PKT_TRANS_WRITE = 65, + parameter PKT_TRANS_READ = 64, + parameter PKT_SRC_ID_H = 74, + parameter PKT_SRC_ID_L = 72, + parameter PKT_DEST_ID_H = 77, + parameter PKT_DEST_ID_L = 75, + parameter PKT_BURSTWRAP_H = 85, + parameter PKT_BURSTWRAP_L = 82, + parameter PKT_BYTE_CNT_H = 81, + parameter PKT_BYTE_CNT_L = 78, + parameter PKT_PROTECTION_H = 86, + parameter PKT_PROTECTION_L = 86, + parameter PKT_RESPONSE_STATUS_H = 89, + parameter PKT_RESPONSE_STATUS_L = 88, + parameter PKT_BURST_SIZE_H = 92, + parameter PKT_BURST_SIZE_L = 90, + parameter ST_DATA_W = 93, + parameter ST_CHANNEL_W = 32, + + // Slave parameters + parameter ADDR_W = PKT_ADDR_H - PKT_ADDR_L + 1, + parameter AVS_DATA_W = PKT_DATA_H - PKT_DATA_L + 1, + parameter AVS_BURSTCOUNT_W = 4, + parameter PKT_SYMBOLS = AVS_DATA_W / PKT_SYMBOL_W, + + // Slave agent parameters + parameter PREVENT_FIFO_OVERFLOW = 0, + parameter SUPPRESS_0_BYTEEN_CMD = 1, + parameter USE_READRESPONSE = 0, + parameter USE_WRITERESPONSE = 0, + + // Derived slave parameters + parameter AVS_BE_W = PKT_BYTEEN_H - PKT_BYTEEN_L + 1, + parameter BURST_SIZE_W = 3, + + // Derived FIFO width + parameter FIFO_DATA_W = ST_DATA_W + 1 +) +( + + input clk, + input reset, + + // Universal-Avalon anti-slave + output [ADDR_W-1:0] m0_address, + output [AVS_BURSTCOUNT_W-1:0] m0_burstcount, + output [AVS_BE_W-1:0] m0_byteenable, + output m0_read, + input [AVS_DATA_W-1:0] m0_readdata, + input m0_waitrequest, + output m0_write, + output [AVS_DATA_W-1:0] m0_writedata, + input m0_readdatavalid, + output m0_debugaccess, + output m0_lock, + input [1:0] m0_response, + output m0_writeresponserequest, + input m0_writeresponsevalid, + + // Avalon-ST FIFO interfaces. + // Note: there's no need to include the "data" field here, at least for + // reads, since readdata is filled in from slave info. To keep life + // simple, have a data field, but fill it with 0s. + // Av-st response fifo source interface + output reg [FIFO_DATA_W-1:0] rf_source_data, + output rf_source_valid, + output rf_source_startofpacket, + output rf_source_endofpacket, + input rf_source_ready, + + // Av-st response fifo sink interface + input [FIFO_DATA_W-1:0] rf_sink_data, + input rf_sink_valid, + input rf_sink_startofpacket, + input rf_sink_endofpacket, + output rf_sink_ready, + + // Av-st readdata fifo src interface, data and response + // extra 2 bits for storing RESPONSE STATUS + output [AVS_DATA_W+1:0] rdata_fifo_src_data, + output rdata_fifo_src_valid, + input rdata_fifo_src_ready, + + // Av-st readdata fifo sink interface + input [AVS_DATA_W+1:0] rdata_fifo_sink_data, + input rdata_fifo_sink_valid, + output rdata_fifo_sink_ready, + + // Av-st sink command packet interface + output cp_ready, + input cp_valid, + input [ST_DATA_W-1:0] cp_data, + input [ST_CHANNEL_W-1:0] cp_channel, + input cp_startofpacket, + input cp_endofpacket, + + // Av-st source response packet interface + input rp_ready, + output reg rp_valid, + output reg [ST_DATA_W-1:0] rp_data, + output rp_startofpacket, + output rp_endofpacket +); + + // -------------------------------------------------- + // Ceil(log2()) function log2ceil of 4 = 2 + // -------------------------------------------------- + function integer log2ceil; + input reg[63:0] val; + reg [63:0] i; + + begin + i = 1; + log2ceil = 0; + + while (i < val) begin + log2ceil = log2ceil + 1; + i = i << 1; + end + end + endfunction + + // ------------------------------------------------ + // Local Parameters + // ------------------------------------------------ + localparam DATA_W = PKT_DATA_H - PKT_DATA_L + 1; + localparam BE_W = PKT_BYTEEN_H - PKT_BYTEEN_L + 1; + localparam MID_W = PKT_SRC_ID_H - PKT_SRC_ID_L + 1; + localparam SID_W = PKT_DEST_ID_H - PKT_DEST_ID_L + 1; + localparam BYTE_CNT_W = PKT_BYTE_CNT_H - PKT_BYTE_CNT_L + 1; + localparam BURSTWRAP_W = PKT_BURSTWRAP_H - PKT_BURSTWRAP_L + 1; + localparam BURSTSIZE_W = PKT_BURST_SIZE_H - PKT_BURST_SIZE_L + 1; + localparam BITS_TO_MASK = log2ceil(PKT_SYMBOLS); + + // ------------------------------------------------ + // Signals + // ------------------------------------------------ + wire [DATA_W-1:0] cmd_data; + wire [BE_W-1:0] cmd_byteen; + wire [ADDR_W-1:0] cmd_addr; + wire [MID_W-1:0] cmd_mid; + wire [SID_W-1:0] cmd_sid; + wire cmd_read; + wire cmd_write; + wire cmd_compressed; + wire cmd_posted; + wire [BYTE_CNT_W-1:0] cmd_byte_cnt; + wire [BURSTWRAP_W-1:0] cmd_burstwrap; + wire [BURSTSIZE_W-1:0] cmd_burstsize; + wire cmd_debugaccess; + + wire byteen_asserted; + wire needs_response_synthesis; + wire generate_response; + + // Assign command fields + assign cmd_data = cp_data[PKT_DATA_H :PKT_DATA_L ]; + assign cmd_byteen = cp_data[PKT_BYTEEN_H:PKT_BYTEEN_L]; + assign cmd_addr = cp_data[PKT_ADDR_H :PKT_ADDR_L ]; + assign cmd_compressed = cp_data[PKT_TRANS_COMPRESSED_READ]; + assign cmd_posted = cp_data[PKT_TRANS_POSTED]; + assign cmd_write = cp_data[PKT_TRANS_WRITE]; + assign cmd_read = cp_data[PKT_TRANS_READ]; + assign cmd_mid = cp_data[PKT_SRC_ID_H :PKT_SRC_ID_L]; + assign cmd_sid = cp_data[PKT_DEST_ID_H:PKT_DEST_ID_L]; + assign cmd_byte_cnt = cp_data[PKT_BYTE_CNT_H:PKT_BYTE_CNT_L]; + assign cmd_burstwrap = cp_data[PKT_BURSTWRAP_H:PKT_BURSTWRAP_L]; + assign cmd_burstsize = cp_data[PKT_BURST_SIZE_H:PKT_BURST_SIZE_L]; + assign cmd_debugaccess = cp_data[PKT_PROTECTION_L]; + + // Local "ready_for_command" signal: deasserted when the agent is unable to accept + // another command, e.g. rdv FIFO is full, (local readdata storage is full && + // ~rp_ready), ... + // Say, this could depend on the type of command, for example, even if the + // rdv FIFO is full, a write request can be accepted. For later. + wire ready_for_command; + + wire local_lock = cp_valid & cp_data[PKT_TRANS_LOCK]; + wire local_write = cp_valid & cp_data[PKT_TRANS_WRITE]; + wire local_read = cp_valid & cp_data[PKT_TRANS_READ]; + wire local_compressed_read = cp_valid & cp_data[PKT_TRANS_COMPRESSED_READ]; + wire nonposted_write_endofpacket = ~cp_data[PKT_TRANS_POSTED] & local_write & cp_endofpacket; + + // num_symbols is PKT_SYMBOLS, appropriately sized. + wire [31:0] int_num_symbols = PKT_SYMBOLS; + wire [BYTE_CNT_W-1:0] num_symbols = int_num_symbols[BYTE_CNT_W-1:0]; + + generate + if (PREVENT_FIFO_OVERFLOW) begin : prevent_fifo_overflow + // --------------------------------------------------- + // Backpressure if the slave says to, or if FIFO overflow may occur. + // + // All commands are backpressured once the FIFO is full + // even if they don't need storage. This breaks a long + // combinatorial path from the master read/write through + // this logic and back to the master via the backpressure + // path. + // + // To avoid a loss of throughput the FIFO will be parameterized + // one slot deeper. The extra slot should never be used in normal + // operation, but should a slave misbehave and accept one more + // read than it should then backpressure will kick in. + // + // An example: assume a slave with MPRT = 2. It can accept a + // command sequence RRWW without backpressuring. If the FIFO is + // only 2 deep, we'd backpressure the writes leading to loss of + // throughput. If the FIFO is 3 deep, we'll only backpressure when + // RRR... which is an illegal condition anyway. + // --------------------------------------------------- + + assign ready_for_command = rf_source_ready; + assign cp_ready = (~m0_waitrequest | ~byteen_asserted) && ready_for_command; + + end else begin : no_prevent_fifo_overflow + + // Do not suppress the command or the slave will + // not be able to waitrequest + assign ready_for_command = 1'b1; + // Backpressure only if the slave says to. + assign cp_ready = ~m0_waitrequest | ~byteen_asserted; + + end + endgenerate + + generate if (SUPPRESS_0_BYTEEN_CMD) begin : suppress_0_byteen_cmd + assign byteen_asserted = |cmd_byteen; + end else begin : no_suppress_0_byteen_cmd + assign byteen_asserted = 1'b1; + end + endgenerate + + // ------------------------------------------------------------------- + // Extract avalon signals from command packet. + // ------------------------------------------------------------------- + // Mask off the lower bits of address. + // The burst adapter before this component will break narrow sized packets + // into sub-bursts of length 1. However, the packet addresses are preserved, + // which means this component may see size-aligned addresses. + // + // Masking ensures that the addresses seen by an Avalon slave are aligned to + // the full data width instead of the size. + // + // Example: + // output from burst adapter (datawidth=4, size=2 bytes): + // subburst1 addr=0, subburst2 addr=2, subburst3 addr=4, subburst4 addr=6 + // expected output from slave agent: + // subburst1 addr=0, subburst2 addr=0, subburst3 addr=4, subburst4 addr=4 + generate + if (BITS_TO_MASK > 0) begin : mask_address + + assign m0_address = { cmd_addr[ADDR_W-1:BITS_TO_MASK], {BITS_TO_MASK{1'b0}} }; + + end else begin : no_mask_address + + assign m0_address = cmd_addr; + + end + endgenerate + + assign m0_byteenable = cmd_byteen; + assign m0_writedata = cmd_data; + + // Note: no Avalon-MM slave in existence accepts uncompressed read bursts - + // this sort of burst exists only in merlin fabric ST packets. What to do + // if we see such a burst? All beats in that burst need to be transmitted + // to the slave so we have enough space-time for byteenable expression. + // + // There can be multiple bursts in a packet, but only one beat per burst + // in cases. The exception is when we've decided not to insert a + // burst adapter for efficiency reasons, in which case this agent is also + // responsible for driving burstcount to 1 on each beat of an uncompressed + // read burst. + + assign m0_read = ready_for_command & byteen_asserted & + (local_compressed_read | local_read); + + generate + begin : m0_burstcount_zero_pad + // AVS_BURSTCOUNT_W and BYTE_CNT_W may not be equal. Assign m0_burstcount + // from a sub-range, or 0-pad, as appropriate. + if (AVS_BURSTCOUNT_W > BYTE_CNT_W) begin + wire [AVS_BURSTCOUNT_W - BYTE_CNT_W - 1 : 0] zero_pad = + {(AVS_BURSTCOUNT_W - BYTE_CNT_W) {1'b0}}; + assign m0_burstcount = (local_read & ~local_compressed_read) ? + {zero_pad, num_symbols} : + {zero_pad, cmd_byte_cnt}; + end + else begin : m0_burstcount_no_pad + assign m0_burstcount = (local_read & ~local_compressed_read) ? + num_symbols[AVS_BURSTCOUNT_W-1:0] : + cmd_byte_cnt[AVS_BURSTCOUNT_W-1:0]; + end + end + endgenerate + + assign m0_write = ready_for_command & local_write & byteen_asserted; + assign m0_lock = ready_for_command & local_lock & (m0_read | m0_write); + assign m0_debugaccess = cmd_debugaccess; + // For now, to support write response + assign m0_writeresponserequest = ready_for_command & local_write & byteen_asserted & !cmd_posted; + //assign m0_writeresponserequest = '0; + + // ------------------------------------------------------------------- + // Indirection layer for response packet values. Some may always wire + // directly from the slave translator; others will no doubt emerge from + // various FIFOs. + // What to put in resp_data when a write occured? Answer: it does not + // matter, because only response status is needed for non-posted writes, + // and the packet already has a field for that. + + // tgngo:Use the rdata_fifo to store write response as well + // So that we wont lost response if master can back-pressured + // as well as it needs for write response merging + assign rdata_fifo_src_valid = m0_readdatavalid | m0_writeresponsevalid; + //assign rdata_fifo_src_valid = m0_readdatavalid; + assign rdata_fifo_src_data = {m0_response,m0_readdata}; + + // ------------------------------------------------------------------ + // Generate a token when read commands are suppressed. The token + // is stored in the response FIFO, and will be used to synthesize + // a read response. The same token is used for non-posted write + // response synthesis. + // + // Note: this token is not generated for suppressed uncompressed read cycles; + // the burst uncompression logic at the read side of the response FIFO + // generates the correct number of responses. + // ------------------------------------------------------------------ + // When the slave can return the response, let it does its works. Dont generate sysnthesis response + assign needs_response_synthesis = ((local_read | local_compressed_read) & !byteen_asserted) | (nonposted_write_endofpacket && !USE_WRITERESPONSE); + + // Avalon-ST interfaces to external response fifo: + // tgngo:Currently, with "generate response synthesis", only one write command is allowed to write in at eop of non-posted write + // To support response from slave, we need to store each sub-burst of write command into fifo. + // Each sub-burst will return a response and these two command and response are popped out together + // Resposne merging will happen and at end_of_packet of the command - the last sub-burst write + // the slave agent will send out the final merged response + + wire internal_cp_endofburst; + wire [31:0] minimum_bytecount_wire = PKT_SYMBOLS; // to solve qis warning + wire [AVS_BURSTCOUNT_W-1:0] minimum_bytecount; + assign minimum_bytecount = minimum_bytecount_wire[AVS_BURSTCOUNT_W-1:0]; + assign internal_cp_endofburst = (cmd_byte_cnt == minimum_bytecount); + wire local_nonposted_write = ~cp_data[PKT_TRANS_POSTED] & local_write; + wire nonposted_end_of_subburst = local_nonposted_write & internal_cp_endofburst; + + assign rf_source_valid = (local_read | local_compressed_read | (nonposted_write_endofpacket && !USE_WRITERESPONSE) | (USE_WRITERESPONSE && nonposted_end_of_subburst)) + & ready_for_command & cp_ready; + assign rf_source_startofpacket = cp_startofpacket; + assign rf_source_endofpacket = cp_endofpacket; + always @* begin + // default: assign every command packet field to the response FIFO... + rf_source_data = {1'b0, cp_data}; + + // ... and override select fields as needed. + rf_source_data[FIFO_DATA_W-1] = needs_response_synthesis; + rf_source_data[PKT_DATA_H :PKT_DATA_L] = {DATA_W {1'b0}}; + rf_source_data[PKT_BYTEEN_H :PKT_BYTEEN_L] = cmd_byteen; + rf_source_data[PKT_ADDR_H :PKT_ADDR_L] = cmd_addr; + //rf_source_data[PKT_ADDR_H :PKT_ADDR_L] = m0_address; + rf_source_data[PKT_TRANS_COMPRESSED_READ] = cmd_compressed; + rf_source_data[PKT_TRANS_POSTED] = cmd_posted; + rf_source_data[PKT_TRANS_WRITE] = cmd_write; + rf_source_data[PKT_TRANS_READ] = cmd_read; + rf_source_data[PKT_SRC_ID_H :PKT_SRC_ID_L] = cmd_mid; + rf_source_data[PKT_DEST_ID_H:PKT_DEST_ID_L] = cmd_sid; + rf_source_data[PKT_BYTE_CNT_H:PKT_BYTE_CNT_L] = cmd_byte_cnt; + rf_source_data[PKT_BURSTWRAP_H:PKT_BURSTWRAP_L] = cmd_burstwrap; + rf_source_data[PKT_BURST_SIZE_H:PKT_BURST_SIZE_L] = cmd_burstsize; + rf_source_data[PKT_PROTECTION_H:PKT_PROTECTION_L] = '0; + rf_source_data[PKT_PROTECTION_L] = cmd_debugaccess; + end + + wire uncompressor_source_valid; + wire [BURSTSIZE_W-1:0] uncompressor_burstsize; + + //assign rp_valid = rdata_fifo_sink_valid | uncompressor_source_valid; + // tgngo: last_write_response indicates the last response of the burst (incase need sub-burst) + // at this time, the final response merged will send out, and rp_valid is only asserted + // for one response for whole burst + generate + if (USE_READRESPONSE & USE_WRITERESPONSE) begin + wire last_write_response = rf_sink_data[PKT_TRANS_WRITE] & !rf_sink_data[PKT_TRANS_POSTED] & rf_sink_endofpacket; + always @* begin + if (rf_sink_data[PKT_TRANS_WRITE] == 1) + rp_valid = rdata_fifo_sink_valid & last_write_response; + else + rp_valid = rdata_fifo_sink_valid | uncompressor_source_valid; + end + end else begin + always @* begin + rp_valid = rdata_fifo_sink_valid | uncompressor_source_valid; + end + end + endgenerate + // ------------------------------------------------------------------ + // Response merging + // ------------------------------------------------------------------ + wire [1:0] current_response = rdata_fifo_sink_data[AVS_DATA_W+1:AVS_DATA_W]; + reg [1:0] response_merged; + generate + begin: response_merging + if (USE_READRESPONSE & USE_WRITERESPONSE) begin + reg first_write_response; + reg reset_merged_output; + reg [1:0] previous_response_in; + reg [1:0] previous_response; + + always_ff @(posedge clk, posedge reset) begin + if (reset) begin + first_write_response <= 1'b1; + end + else begin // Merging work for write response, for read: previous_response_in = current_response + if (rf_sink_valid & rdata_fifo_sink_valid & rf_sink_data[PKT_TRANS_WRITE]) begin + first_write_response <= 1'b0; + if (rf_sink_endofpacket) + first_write_response <= 1'b1; + end + end + end + + always_comb begin + reset_merged_output = first_write_response && rdata_fifo_sink_valid; + previous_response_in = reset_merged_output ? current_response : previous_response; + response_merged = current_response >= previous_response ? current_response: previous_response_in; + end + + always_ff @(posedge clk or posedge reset) begin + if (reset) begin + previous_response <= 2'b00; + end + else begin + if (rf_sink_valid & rdata_fifo_sink_valid) begin + previous_response <= response_merged; + end + end + end + end else begin + always @* begin + response_merged = current_response; + end + end + end + endgenerate + + assign generate_response = rf_sink_data[FIFO_DATA_W-1]; + + wire [BYTE_CNT_W-1:0] rf_sink_byte_cnt = rf_sink_data[PKT_BYTE_CNT_H:PKT_BYTE_CNT_L]; + wire rf_sink_compressed = rf_sink_data[PKT_TRANS_COMPRESSED_READ]; + wire [BURSTWRAP_W-1:0] rf_sink_burstwrap = rf_sink_data[PKT_BURSTWRAP_H:PKT_BURSTWRAP_L]; + wire [BURSTSIZE_W-1:0] rf_sink_burstsize = rf_sink_data[PKT_BURST_SIZE_H:PKT_BURST_SIZE_L]; + wire [ADDR_W-1:0] rf_sink_addr = rf_sink_data[PKT_ADDR_H:PKT_ADDR_L]; + // a non posted write response is always completed in 1 cycle. Modify the startofpacket signal to 1'b1 instead of taking whatever is in the rf_fifo + wire rf_sink_startofpacket_wire = rf_sink_data[PKT_TRANS_WRITE] ? 1'b1 : rf_sink_startofpacket; + + wire [BYTE_CNT_W-1:0] burst_byte_cnt; + wire [BURSTWRAP_W-1:0] rp_burstwrap; + wire [ADDR_W-1:0] rp_address; + wire rp_is_compressed; + + // ------------------------------------------------------------------ + // Backpressure the readdata fifo if we're supposed to synthesize a response. + // This may be a read response (for suppressed reads) or a write response + // (for non-posted writes). + // ------------------------------------------------------------------ + assign rdata_fifo_sink_ready = rdata_fifo_sink_valid & rp_ready & ~(rf_sink_valid & generate_response); + + always @* begin + // By default, return all fields... + rp_data = rf_sink_data[ST_DATA_W - 1 : 0]; + + // ... and override specific fields. + rp_data[PKT_DATA_H :PKT_DATA_L] = rdata_fifo_sink_data[AVS_DATA_W-1:0]; + // Assignments directly from the response fifo. + rp_data[PKT_TRANS_POSTED] = rf_sink_data[PKT_TRANS_POSTED]; + rp_data[PKT_TRANS_WRITE] = rf_sink_data[PKT_TRANS_WRITE]; + rp_data[PKT_SRC_ID_H :PKT_SRC_ID_L] = rf_sink_data[PKT_DEST_ID_H : PKT_DEST_ID_L]; + rp_data[PKT_DEST_ID_H:PKT_DEST_ID_L] = rf_sink_data[PKT_SRC_ID_H : PKT_SRC_ID_L]; + rp_data[PKT_BYTEEN_H :PKT_BYTEEN_L] = rf_sink_data[PKT_BYTEEN_H : PKT_BYTEEN_L]; + rp_data[PKT_PROTECTION_H:PKT_PROTECTION_L] = rf_sink_data[PKT_PROTECTION_H:PKT_PROTECTION_L]; + + // Burst uncompressor assignments + rp_data[PKT_ADDR_H :PKT_ADDR_L] = rp_address; + rp_data[PKT_BURSTWRAP_H:PKT_BURSTWRAP_L] = rp_burstwrap; + rp_data[PKT_BYTE_CNT_H:PKT_BYTE_CNT_L] = burst_byte_cnt; + rp_data[PKT_TRANS_READ] = rf_sink_data[PKT_TRANS_READ] | rf_sink_data[PKT_TRANS_COMPRESSED_READ]; + rp_data[PKT_TRANS_COMPRESSED_READ] = rp_is_compressed; + + // avalon slaves always respond with "okay" -> not true for now + //rp_data[PKT_RESPONSE_STATUS_H:PKT_RESPONSE_STATUS_L] = {RESPONSE_W{ 1'b0 }}; + rp_data[PKT_RESPONSE_STATUS_H:PKT_RESPONSE_STATUS_L] = response_merged; + rp_data[PKT_BURST_SIZE_H:PKT_BURST_SIZE_L] = uncompressor_burstsize; + end + + // ------------------------------------------------------------------ + // Note: the burst uncompressor may be asked to generate responses for + // write packets; these are treated the same as single-cycle uncompressed + // reads. + // ------------------------------------------------------------------ + altera_merlin_burst_uncompressor #( + .ADDR_W (ADDR_W), + .BURSTWRAP_W (BURSTWRAP_W), + .BYTE_CNT_W (BYTE_CNT_W), + .PKT_SYMBOLS (PKT_SYMBOLS) + ) uncompressor + ( + .clk (clk), + .reset (reset), + .sink_startofpacket (rf_sink_startofpacket_wire), + .sink_endofpacket (rf_sink_endofpacket), + .sink_valid (rf_sink_valid & (rdata_fifo_sink_valid | generate_response)), + .sink_ready (rf_sink_ready), + .sink_addr (rf_sink_addr), + .sink_burstwrap (rf_sink_burstwrap), + .sink_byte_cnt (rf_sink_byte_cnt), + .sink_is_compressed (rf_sink_compressed), + .sink_burstsize (rf_sink_burstsize), + + .source_startofpacket (rp_startofpacket), + .source_endofpacket (rp_endofpacket), + .source_valid (uncompressor_source_valid), + .source_ready (rp_ready), + .source_addr (rp_address), + .source_burstwrap (rp_burstwrap), + .source_byte_cnt (burst_byte_cnt), + .source_is_compressed (rp_is_compressed), + .source_burstsize (uncompressor_burstsize) + ); + +//-------------------------------------- +// Assertion: In case slave support response. Yhe slave needs return response in order +// Ex: non-posted write followed by a read: write response must complete before read data +//-------------------------------------- +// synthesis translate_off +ERROR_write_response_and_read_response_cannot_happen_same_time: + assert property ( @(posedge clk) + disable iff (reset) !(m0_writeresponsevalid && m0_readdatavalid) + ); + +// synthesis translate_on +endmodule + diff --git a/nios_system/synthesis/submodules/altera_merlin_slave_translator.sv b/nios_system/synthesis/submodules/altera_merlin_slave_translator.sv new file mode 100644 index 0000000..d5bd6e9 --- /dev/null +++ b/nios_system/synthesis/submodules/altera_merlin_slave_translator.sv @@ -0,0 +1,533 @@ +// (C) 2001-2013 Altera Corporation. All rights reserved. +// Your use of Altera Corporation's design tools, logic functions and other +// software and tools, and its AMPP partner logic functions, and any output +// files any of the foregoing (including device programming or simulation +// files), and any associated documentation or information are expressly subject +// to the terms and conditions of the Altera Program License Subscription +// Agreement, Altera MegaCore Function License Agreement, or other applicable +// license agreement, including, without limitation, that your use is for the +// sole purpose of programming logic devices manufactured by Altera and sold by +// Altera or its authorized distributors. Please refer to the applicable +// agreement for further details. + + + +// $Id: //acds/rel/13.0sp1/ip/merlin/altera_merlin_slave_translator/altera_merlin_slave_translator.sv#1 $ +// $Revision: #1 $ +// $Date: 2013/03/07 $ +// $Author: swbranch $ + +// ------------------------------------- +// Merlin Slave Translator +// +// Translates Universal Avalon MM Slave +// to any Avalon MM Slave +// ------------------------------------- +// +//Notable Note: 0 AV_READLATENCY is not allowed and will be converted to a 1 cycle readlatency in all cases but one +//If you declare a slave with fixed read timing requirements, the readlatency of such a slave will be allowed to be zero +//The key feature here is that no same cycle turnaround data is processed through the fabric. + +//import avalon_utilities_pkg::*; + +`timescale 1 ns / 1 ns + +module altera_merlin_slave_translator + #( + parameter + //Widths + AV_ADDRESS_W = 32, + AV_DATA_W = 32, + AV_BURSTCOUNT_W = 4, + AV_BYTEENABLE_W = 4, + UAV_BYTEENABLE_W = 4, + + //Read Latency + AV_READLATENCY = 1, + + //Timing + AV_READ_WAIT_CYCLES = 0, + AV_WRITE_WAIT_CYCLES = 0, + AV_SETUP_WAIT_CYCLES = 0, + AV_DATA_HOLD_CYCLES = 0, + + //Optional Port Declarations + USE_READDATAVALID = 1, + USE_WAITREQUEST = 1, + USE_READRESPONSE = 0, + USE_WRITERESPONSE = 0, + + //Variable Addressing + AV_SYMBOLS_PER_WORD = 4, + AV_ADDRESS_SYMBOLS = 0, + AV_BURSTCOUNT_SYMBOLS = 0, + BITS_PER_WORD = clog2_plusone(AV_SYMBOLS_PER_WORD - 1), + UAV_ADDRESS_W = 38, + UAV_BURSTCOUNT_W = 10, + UAV_DATA_W = 32, + + AV_CONSTANT_BURST_BEHAVIOR = 0, + UAV_CONSTANT_BURST_BEHAVIOR = 0, + CHIPSELECT_THROUGH_READLATENCY = 0, + + // Tightly-Coupled Options + USE_UAV_CLKEN = 0, + AV_REQUIRE_UNALIGNED_ADDRESSES = 0 + ) + ( + + // ------------------- + // Clock & Reset + // ------------------- + input wire clk, + input wire reset, + + // ------------------- + // Universal Avalon Slave + // ------------------- + + input wire [UAV_ADDRESS_W - 1 : 0] uav_address, + input wire [UAV_DATA_W - 1 : 0] uav_writedata, + input wire uav_write, + input wire uav_read, + input wire [UAV_BURSTCOUNT_W - 1 : 0] uav_burstcount, + input wire [UAV_BYTEENABLE_W - 1 : 0] uav_byteenable, + input wire uav_lock, + input wire uav_debugaccess, + input wire uav_clken, + + output logic uav_readdatavalid, + output logic uav_waitrequest, + output logic [UAV_DATA_W - 1 : 0] uav_readdata, + output logic [1:0] uav_response, + input wire uav_writeresponserequest, + output logic uav_writeresponsevalid, + + // ------------------- + // Customizable Avalon Master + // ------------------- + output logic [AV_ADDRESS_W - 1 : 0] av_address, + output logic [AV_DATA_W - 1 : 0] av_writedata, + output logic av_write, + output logic av_read, + output logic [AV_BURSTCOUNT_W - 1 : 0] av_burstcount, + output logic [AV_BYTEENABLE_W - 1 : 0] av_byteenable, + output logic [AV_BYTEENABLE_W - 1 : 0] av_writebyteenable, + output logic av_begintransfer, + output wire av_chipselect, + output logic av_beginbursttransfer, + output logic av_lock, + output wire av_clken, + output wire av_debugaccess, + output wire av_outputenable, + + input logic [AV_DATA_W - 1 : 0] av_readdata, + input logic av_readdatavalid, + input logic av_waitrequest, + + input logic [1:0] av_response, + output logic av_writeresponserequest, + input wire av_writeresponsevalid + + ); + + function integer clog2_plusone; + input [31:0] Depth; + integer i; + begin + i = Depth; + for(clog2_plusone = 0; i > 0; clog2_plusone = clog2_plusone + 1) + i = i >> 1; + end + + endfunction + + function integer max; + //returns the larger of two passed arguments + input [31:0] one; + input [31:0] two; + + if(one > two) + max=one; + else + max=two; + endfunction // int + + localparam AV_READ_WAIT_INDEXED = (AV_SETUP_WAIT_CYCLES + AV_READ_WAIT_CYCLES); + localparam AV_WRITE_WAIT_INDEXED = (AV_SETUP_WAIT_CYCLES + AV_WRITE_WAIT_CYCLES); + localparam AV_DATA_HOLD_INDEXED = (AV_WRITE_WAIT_INDEXED + AV_DATA_HOLD_CYCLES); + localparam LOG2_OF_LATENCY_SUM = max(clog2_plusone(AV_READ_WAIT_INDEXED + 1),clog2_plusone(AV_DATA_HOLD_INDEXED + 1)); + localparam BURSTCOUNT_SHIFT_SELECTOR = AV_BURSTCOUNT_SYMBOLS ? 0 : BITS_PER_WORD; + localparam ADDRESS_SHIFT_SELECTOR = AV_ADDRESS_SYMBOLS ? 0 : BITS_PER_WORD; + + localparam ADDRESS_HIGH = ( UAV_ADDRESS_W > AV_ADDRESS_W + ADDRESS_SHIFT_SELECTOR ) ? + AV_ADDRESS_W : + UAV_ADDRESS_W - ADDRESS_SHIFT_SELECTOR; + + localparam BURSTCOUNT_HIGH = ( UAV_BURSTCOUNT_W > AV_BURSTCOUNT_W + BURSTCOUNT_SHIFT_SELECTOR ) ? + AV_BURSTCOUNT_W : + UAV_BURSTCOUNT_W - BURSTCOUNT_SHIFT_SELECTOR; + localparam BYTEENABLE_ADDRESS_BITS = ( clog2_plusone(UAV_BYTEENABLE_W) - 1 ) >= 1 ? clog2_plusone(UAV_BYTEENABLE_W) - 1 : 1; + + + // Calculate the symbols per word as the power of 2 extended symbols per word + wire [31 : 0] symbols_per_word_int = 2**(clog2_plusone(AV_SYMBOLS_PER_WORD[UAV_BURSTCOUNT_W : 0] - 1)); + wire [UAV_BURSTCOUNT_W : 0] symbols_per_word = symbols_per_word_int[UAV_BURSTCOUNT_W : 0]; + + // +-------------------------------- + // |Backwards Compatibility Signals + // +-------------------------------- + assign av_clken = (USE_UAV_CLKEN) ? uav_clken : 1'b1; + assign av_debugaccess = uav_debugaccess; + + // +------------------- + // |Passthru Signals + // +------------------- + always_comb + begin + if (!USE_READRESPONSE && !USE_WRITERESPONSE) begin + uav_response = '0; + end else begin + uav_response = av_response; + end + end + assign av_writeresponserequest = uav_writeresponserequest; + assign uav_writeresponsevalid = av_writeresponsevalid; + + //------------------------- + //Writedata and Byteenable + //------------------------- + + always@* begin + av_byteenable = '0; + av_byteenable = uav_byteenable[AV_BYTEENABLE_W - 1 : 0]; + end + + always@* begin + av_writedata = '0; + av_writedata = uav_writedata[AV_DATA_W - 1 : 0]; + end + + // +------------------- + // |Calculated Signals + // +------------------- + + logic [UAV_ADDRESS_W - 1 : 0 ] real_uav_address; + + function [BYTEENABLE_ADDRESS_BITS - 1 : 0 ] decode_byteenable; + input [UAV_BYTEENABLE_W - 1 : 0 ] byteenable; + + for(int i = 0 ; i < UAV_BYTEENABLE_W; i++ ) begin + if(byteenable[i] == 1) begin + return i; + end + end + + return '0; + + endfunction + + reg [AV_BURSTCOUNT_W - 1 : 0] burstcount_reg; + reg [AV_ADDRESS_W - 1 : 0] address_reg; + + + always@(posedge clk, posedge reset) begin + if(reset) begin + burstcount_reg <= '0; + address_reg <= '0; + end + else begin + burstcount_reg <= burstcount_reg; + address_reg <= address_reg; + + if(av_beginbursttransfer) begin + burstcount_reg <= uav_burstcount [BURSTCOUNT_HIGH - 1 + BURSTCOUNT_SHIFT_SELECTOR : BURSTCOUNT_SHIFT_SELECTOR ]; + address_reg <= real_uav_address [ADDRESS_HIGH - 1 + ADDRESS_SHIFT_SELECTOR : ADDRESS_SHIFT_SELECTOR ]; + + end + end + end + + + logic [BYTEENABLE_ADDRESS_BITS-1:0] temp_wire; + + always@* begin + if( AV_REQUIRE_UNALIGNED_ADDRESSES == 1) begin + temp_wire = decode_byteenable(uav_byteenable); + + real_uav_address = { uav_address[UAV_ADDRESS_W - 1 : BYTEENABLE_ADDRESS_BITS ], temp_wire[BYTEENABLE_ADDRESS_BITS - 1 : 0 ] }; + end + else begin + real_uav_address = uav_address; + end + + av_address = real_uav_address[ADDRESS_HIGH - 1 + ADDRESS_SHIFT_SELECTOR : ADDRESS_SHIFT_SELECTOR ]; + + if( AV_CONSTANT_BURST_BEHAVIOR && !UAV_CONSTANT_BURST_BEHAVIOR && ~av_beginbursttransfer ) + av_address = address_reg; + end + + always@* begin + av_burstcount=uav_burstcount[BURSTCOUNT_HIGH - 1 + BURSTCOUNT_SHIFT_SELECTOR : BURSTCOUNT_SHIFT_SELECTOR ]; + + if( AV_CONSTANT_BURST_BEHAVIOR && !UAV_CONSTANT_BURST_BEHAVIOR && ~av_beginbursttransfer ) + av_burstcount = burstcount_reg; + end + + always@* begin + av_lock = uav_lock; + end + + // ------------------- + // Writebyteenable Assignment + // ------------------- + +always@* begin + av_writebyteenable = { (AV_BYTEENABLE_W){uav_write} } & uav_byteenable[AV_BYTEENABLE_W - 1 : 0]; +end + + // ------------------- + // Waitrequest Assignment + // ------------------- + + reg av_waitrequest_generated; + reg av_waitrequest_generated_read; + reg av_waitrequest_generated_write; + reg waitrequest_reset_override; + + reg [ ( LOG2_OF_LATENCY_SUM ? LOG2_OF_LATENCY_SUM - 1 : 0 ) : 0 ] wait_latency_counter; + + always@(posedge reset, posedge clk) begin + + if(reset) begin + wait_latency_counter <= '0; + waitrequest_reset_override <= 1'h1; + end + else begin + waitrequest_reset_override <= 1'h0; + + wait_latency_counter <= '0; + + if( uav_read | uav_write ) + wait_latency_counter <= wait_latency_counter + 1'h1; + + if( ~uav_waitrequest | waitrequest_reset_override ) + wait_latency_counter <= '0; + + end + + end + + + always @* begin + + av_read = uav_read; + av_write = uav_write; + + av_waitrequest_generated = 1'h1; + av_waitrequest_generated_read = 1'h1; + av_waitrequest_generated_write = 1'h1; + + if(LOG2_OF_LATENCY_SUM == 1) + av_waitrequest_generated = 0; + + if(LOG2_OF_LATENCY_SUM > 1 && !USE_WAITREQUEST) begin + av_read = wait_latency_counter >= AV_SETUP_WAIT_CYCLES && uav_read; + av_write = wait_latency_counter >= AV_SETUP_WAIT_CYCLES && uav_write && wait_latency_counter <= AV_WRITE_WAIT_INDEXED; + + av_waitrequest_generated_read = wait_latency_counter != AV_READ_WAIT_INDEXED; + av_waitrequest_generated_write = wait_latency_counter != AV_DATA_HOLD_INDEXED; + + if(uav_write) + av_waitrequest_generated = av_waitrequest_generated_write; + else + av_waitrequest_generated = av_waitrequest_generated_read; + + end + + if(USE_WAITREQUEST) begin + uav_waitrequest = av_waitrequest; + end + else begin + uav_waitrequest = av_waitrequest_generated | waitrequest_reset_override; + end + + end + + // -------------- + // Readdata Assignment + // -------------- + + reg[(AV_DATA_W ? AV_DATA_W -1 : 0 ): 0] av_readdata_pre; + + always@(posedge clk, posedge reset) begin + if(reset) + av_readdata_pre <= 'b0; + else + av_readdata_pre <= av_readdata; + end + + always@* begin + uav_readdata = '0; + + if( AV_READLATENCY != 0 || USE_READDATAVALID ) begin + uav_readdata = av_readdata; + end + else begin + uav_readdata = av_readdata_pre; + end + end + // ------------------- + // Readdatavalid Assigment + // ------------------- + + reg[(AV_READLATENCY>0 ? AV_READLATENCY-1:0) :0] read_latency_shift_reg; + reg top_read_latency_shift_reg; + + + + always@* begin + + uav_readdatavalid=top_read_latency_shift_reg; + + if(USE_READDATAVALID) begin + uav_readdatavalid = av_readdatavalid; + end + + end + + always@* begin + + top_read_latency_shift_reg = uav_read & ~uav_waitrequest & ~waitrequest_reset_override; + + if(AV_READLATENCY == 1 || AV_READLATENCY == 0 ) begin + top_read_latency_shift_reg=read_latency_shift_reg; + end + + if (AV_READLATENCY > 1) begin + top_read_latency_shift_reg = read_latency_shift_reg[(AV_READLATENCY ? AV_READLATENCY-1 : 0)]; + end + + end + + always@(posedge reset, posedge clk) begin + + if (reset) begin + read_latency_shift_reg <= '0; + end + else if (av_clken) begin + + read_latency_shift_reg <= uav_read && ~uav_waitrequest & ~waitrequest_reset_override; + + for (int i=0; i+1 < AV_READLATENCY ; i+=1 ) begin + read_latency_shift_reg[i+1] <= read_latency_shift_reg[i]; + end + + end + + end + + // ------------ + // Chipselect and OutputEnable + // ------------ + + reg av_chipselect_pre; + wire cs_extension; + reg av_outputenable_pre; + + + assign av_chipselect = (uav_read | uav_write) ? 1'b1 : av_chipselect_pre; + assign cs_extension = ( (^ read_latency_shift_reg) & ~top_read_latency_shift_reg ) | ((| read_latency_shift_reg) & ~(^ read_latency_shift_reg)); + + assign av_outputenable = uav_read ? 1'b1 : av_outputenable_pre; + + always@(posedge reset, posedge clk) begin + if(reset) + av_outputenable_pre <= 1'b0; + else if( AV_READLATENCY == 0 && AV_READ_WAIT_INDEXED != 0 ) + av_outputenable_pre <= 0; + else + av_outputenable_pre <= cs_extension | uav_read; + end + + always@(posedge reset, posedge clk) begin + if(reset) begin + av_chipselect_pre <= 1'b0; + end + else begin + av_chipselect_pre <= 1'b0; + + if(AV_READLATENCY != 0 && CHIPSELECT_THROUGH_READLATENCY == 1) begin + //The AV_READLATENCY term is only here to prevent chipselect from remaining asserted while read and write fall. + //There is no functional impact as 0 cycle transactions are treated as 1 cycle on the other side of the translator. + if(uav_read) begin + av_chipselect_pre <= 1'b1; + end + else if(cs_extension == 1) begin + av_chipselect_pre <= 1'b1; + end + + end + end + end + + // ------------------- + // Begintransfer Assigment + // ------------------- + + reg end_begintransfer; + + always@* begin + av_begintransfer = ( uav_write | uav_read ) & ~end_begintransfer; + end + + always@ ( posedge clk or posedge reset ) begin + + if(reset) begin + end_begintransfer <= 1'b0; + end + else begin + + if(av_begintransfer == 1 && uav_waitrequest && ~waitrequest_reset_override) + end_begintransfer <= 1'b1; + else if(uav_waitrequest) + end_begintransfer <= end_begintransfer; + else + end_begintransfer <= 1'b0; + + end + + end + + // ------------------- + // Beginbursttransfer Assigment + // ------------------- + + reg end_beginbursttransfer; + reg in_transfer; + + + + always@* begin + av_beginbursttransfer = uav_read ? av_begintransfer : (av_begintransfer && ~end_beginbursttransfer && ~in_transfer); + end + + always@ ( posedge clk or posedge reset ) begin + if(reset) begin + end_beginbursttransfer <= 1'b0; + in_transfer <= 1'b0; + end + else begin + + end_beginbursttransfer <= uav_write & ( uav_burstcount != symbols_per_word ); + + if(uav_write && uav_burstcount == symbols_per_word) + in_transfer <=1'b0; + else if(uav_write) + in_transfer <=1'b1; + + end + + end + +endmodule diff --git a/nios_system/synthesis/submodules/altera_reset_controller.sdc b/nios_system/synthesis/submodules/altera_reset_controller.sdc new file mode 100644 index 0000000..28476af --- /dev/null +++ b/nios_system/synthesis/submodules/altera_reset_controller.sdc @@ -0,0 +1,33 @@ +# (C) 2001-2013 Altera Corporation. All rights reserved. +# Your use of Altera Corporation's design tools, logic functions and other +# software and tools, and its AMPP partner logic functions, and any output +# files any of the foregoing (including device programming or simulation +# files), and any associated documentation or information are expressly subject +# to the terms and conditions of the Altera Program License Subscription +# Agreement, Altera MegaCore Function License Agreement, or other applicable +# license agreement, including, without limitation, that your use is for the +# sole purpose of programming logic devices manufactured by Altera and sold by +# Altera or its authorized distributors. Please refer to the applicable +# agreement for further details. + + +# +--------------------------------------------------- +# | Cut the async clear paths +# +--------------------------------------------------- +set aclr_counter 0 +set clrn_counter 0 +set aclr_collection [get_pins -compatibility_mode -nocase -nowarn *|alt_rst_sync_uq1|altera_reset_synchronizer_int_chain*|aclr] +set clrn_collection [get_pins -compatibility_mode -nocase -nowarn *|alt_rst_sync_uq1|altera_reset_synchronizer_int_chain*|clrn] +foreach_in_collection aclr_pin $aclr_collection { + set aclr_counter [expr $aclr_counter + 1] +} +foreach_in_collection clrn_pin $clrn_collection { + set clrn_counter [expr $clrn_counter + 1] +} +if {$aclr_counter > 0} { + set_false_path -to [get_pins -compatibility_mode -nocase *|alt_rst_sync_uq1|altera_reset_synchronizer_int_chain*|aclr] +} + +if {$clrn_counter > 0} { + set_false_path -to [get_pins -compatibility_mode -nocase *|alt_rst_sync_uq1|altera_reset_synchronizer_int_chain*|clrn] +} diff --git a/nios_system/synthesis/submodules/altera_reset_controller.v b/nios_system/synthesis/submodules/altera_reset_controller.v new file mode 100644 index 0000000..05dd901 --- /dev/null +++ b/nios_system/synthesis/submodules/altera_reset_controller.v @@ -0,0 +1,206 @@ +// (C) 2001-2013 Altera Corporation. All rights reserved. +// Your use of Altera Corporation's design tools, logic functions and other +// software and tools, and its AMPP partner logic functions, and any output +// files any of the foregoing (including device programming or simulation +// files), and any associated documentation or information are expressly subject +// to the terms and conditions of the Altera Program License Subscription +// Agreement, Altera MegaCore Function License Agreement, or other applicable +// license agreement, including, without limitation, that your use is for the +// sole purpose of programming logic devices manufactured by Altera and sold by +// Altera or its authorized distributors. Please refer to the applicable +// agreement for further details. + + +// $Id: //acds/rel/13.0sp1/ip/merlin/altera_reset_controller/altera_reset_controller.v#2 $ +// $Revision: #2 $ +// $Date: 2013/06/03 $ +// $Author: wkleong $ + +// -------------------------------------- +// Reset controller +// +// Combines all the input resets and synchronizes +// the result to the clk. +// ACDS13.1 - Added reset request as part of reset sequencing +// -------------------------------------- + +`timescale 1 ns / 1 ns + +module altera_reset_controller +#( + parameter NUM_RESET_INPUTS = 6, + parameter OUTPUT_RESET_SYNC_EDGES = "deassert", + parameter SYNC_DEPTH = 2, + parameter RESET_REQUEST_PRESENT = 0 +) +( + // -------------------------------------- + // We support up to 16 reset inputs, for now + // -------------------------------------- + input reset_in0, + input reset_in1, + input reset_in2, + input reset_in3, + input reset_in4, + input reset_in5, + input reset_in6, + input reset_in7, + input reset_in8, + input reset_in9, + input reset_in10, + input reset_in11, + input reset_in12, + input reset_in13, + input reset_in14, + input reset_in15, + + input clk, + output reg reset_out, + output reg reset_req +); + + localparam ASYNC_RESET = (OUTPUT_RESET_SYNC_EDGES == "deassert"); + + localparam DEPTH = 2; + localparam CLKEN_LAGS_RESET = 0; + localparam EARLY_RST_TAP = (CLKEN_LAGS_RESET != 0) ? 0 : 1; + + wire merged_reset; + wire reset_out_pre; + + // Registers and Interconnect + (*preserve*) reg [SYNC_DEPTH: 0] altera_reset_synchronizer_int_chain; + reg [(SYNC_DEPTH-1): 0] r_sync_rst_chain; + reg r_sync_rst_dly; + reg r_sync_rst; + reg r_early_rst; + + // -------------------------------------- + // "Or" all the input resets together + // -------------------------------------- + assign merged_reset = ( + reset_in0 | + reset_in1 | + reset_in2 | + reset_in3 | + reset_in4 | + reset_in5 | + reset_in6 | + reset_in7 | + reset_in8 | + reset_in9 | + reset_in10 | + reset_in11 | + reset_in12 | + reset_in13 | + reset_in14 | + reset_in15 + ); + + // -------------------------------------- + // And if required, synchronize it to the required clock domain, + // with the correct synchronization type + // -------------------------------------- + generate if (OUTPUT_RESET_SYNC_EDGES == "none") begin + + assign reset_out_pre = merged_reset; + + end else begin + + altera_reset_synchronizer + #( + .DEPTH (SYNC_DEPTH), + .ASYNC_RESET(ASYNC_RESET) + ) + alt_rst_sync_uq1 + ( + .clk (clk), + .reset_in (merged_reset), + .reset_out (reset_out_pre) + ); + + end + endgenerate + + generate if (RESET_REQUEST_PRESENT == 0) begin + always @* begin + reset_out = reset_out_pre; + reset_req = 1'b0; + end + end + else begin + + // 3-FF Metastability Synchronizer + initial + begin + altera_reset_synchronizer_int_chain <= 3'b111; + end + + always @(posedge clk) + begin + altera_reset_synchronizer_int_chain[2:0] <= {altera_reset_synchronizer_int_chain[1:0], reset_out_pre}; + end + + + // Synchronous reset pipe + initial + begin + r_sync_rst_chain <= {DEPTH{1'b1}}; + end + + always @(posedge clk) + begin + if (altera_reset_synchronizer_int_chain[2] == 1'b1) + begin + r_sync_rst_chain <= {DEPTH{1'b1}}; + end + else + begin + r_sync_rst_chain <= {1'b0, r_sync_rst_chain[DEPTH-1:1]}; + end + end + + // Standard synchronous reset output. From 0-1, the transition lags the early output. For 1->0, the transition + // matches the early input. + initial + begin + r_sync_rst_dly <= 1'b1; + r_sync_rst <= 1'b1; + r_early_rst <= 1'b1; + end + + always @(posedge clk) + begin + // Delayed reset pipeline register + r_sync_rst_dly <= r_sync_rst_chain[DEPTH-1]; + + case ({r_sync_rst_dly, r_sync_rst_chain[1], r_sync_rst}) + 3'b000: r_sync_rst <= 1'b0; // Not reset + 3'b001: r_sync_rst <= 1'b0; + 3'b010: r_sync_rst <= 1'b0; + 3'b011: r_sync_rst <= 1'b1; + 3'b100: r_sync_rst <= 1'b1; + 3'b101: r_sync_rst <= 1'b1; + 3'b110: r_sync_rst <= 1'b1; + 3'b111: r_sync_rst <= 1'b1; // In Reset + default: r_sync_rst <= 1'b1; + endcase + + case ({r_sync_rst_chain[DEPTH-1], r_sync_rst_chain[EARLY_RST_TAP]}) + 2'b00: r_early_rst <= 1'b0; // Not reset + 2'b01: r_early_rst <= 1'b1; // Coming out of reset + 2'b10: r_early_rst <= 1'b0; // Spurious reset - should not be possible via synchronous design. + 2'b11: r_early_rst <= 1'b1; // Held in reset + default: r_early_rst <= 1'b1; + endcase + end + + always @* begin + reset_out = r_sync_rst; + reset_req = r_early_rst; + end + + end + endgenerate + +endmodule diff --git a/nios_system/synthesis/submodules/altera_reset_synchronizer.v b/nios_system/synthesis/submodules/altera_reset_synchronizer.v new file mode 100644 index 0000000..5e24fe7 --- /dev/null +++ b/nios_system/synthesis/submodules/altera_reset_synchronizer.v @@ -0,0 +1,87 @@ +// (C) 2001-2013 Altera Corporation. All rights reserved. +// Your use of Altera Corporation's design tools, logic functions and other +// software and tools, and its AMPP partner logic functions, and any output +// files any of the foregoing (including device programming or simulation +// files), and any associated documentation or information are expressly subject +// to the terms and conditions of the Altera Program License Subscription +// Agreement, Altera MegaCore Function License Agreement, or other applicable +// license agreement, including, without limitation, that your use is for the +// sole purpose of programming logic devices manufactured by Altera and sold by +// Altera or its authorized distributors. Please refer to the applicable +// agreement for further details. + + +// $Id: //acds/rel/13.0sp1/ip/merlin/altera_reset_controller/altera_reset_synchronizer.v#1 $ +// $Revision: #1 $ +// $Date: 2013/03/07 $ +// $Author: swbranch $ + +// ----------------------------------------------- +// Reset Synchronizer +// ----------------------------------------------- +`timescale 1 ns / 1 ns + +module altera_reset_synchronizer +#( + parameter ASYNC_RESET = 1, + parameter DEPTH = 2 +) +( + input reset_in /* synthesis ALTERA_ATTRIBUTE = "SUPPRESS_DA_RULE_INTERNAL=R101" */, + + input clk, + output reset_out +); + + // ----------------------------------------------- + // Synchronizer register chain. We cannot reuse the + // standard synchronizer in this implementation + // because our timing constraints are different. + // + // Instead of cutting the timing path to the d-input + // on the first flop we need to cut the aclr input. + // + // We omit the "preserve" attribute on the final + // output register, so that the synthesis tool can + // duplicate it where needed. + // ----------------------------------------------- + (*preserve*) reg [DEPTH-1:0] altera_reset_synchronizer_int_chain; + reg altera_reset_synchronizer_int_chain_out; + + generate if (ASYNC_RESET) begin + + // ----------------------------------------------- + // Assert asynchronously, deassert synchronously. + // ----------------------------------------------- + always @(posedge clk or posedge reset_in) begin + if (reset_in) begin + altera_reset_synchronizer_int_chain <= {DEPTH{1'b1}}; + altera_reset_synchronizer_int_chain_out <= 1'b1; + end + else begin + altera_reset_synchronizer_int_chain[DEPTH-2:0] <= altera_reset_synchronizer_int_chain[DEPTH-1:1]; + altera_reset_synchronizer_int_chain[DEPTH-1] <= 0; + altera_reset_synchronizer_int_chain_out <= altera_reset_synchronizer_int_chain[0]; + end + end + + assign reset_out = altera_reset_synchronizer_int_chain_out; + + end else begin + + // ----------------------------------------------- + // Assert synchronously, deassert synchronously. + // ----------------------------------------------- + always @(posedge clk) begin + altera_reset_synchronizer_int_chain[DEPTH-2:0] <= altera_reset_synchronizer_int_chain[DEPTH-1:1]; + altera_reset_synchronizer_int_chain[DEPTH-1] <= reset_in; + altera_reset_synchronizer_int_chain_out <= altera_reset_synchronizer_int_chain[0]; + end + + assign reset_out = altera_reset_synchronizer_int_chain_out; + + end + endgenerate + +endmodule + diff --git a/nios_system/synthesis/submodules/nios_system_LEDRs.v b/nios_system/synthesis/submodules/nios_system_LEDRs.v new file mode 100644 index 0000000..142f077 --- /dev/null +++ b/nios_system/synthesis/submodules/nios_system_LEDRs.v @@ -0,0 +1,66 @@ +//Legal Notice: (C)2016 Altera Corporation. All rights reserved. Your +//use of Altera Corporation's design tools, logic functions and other +//software and tools, and its AMPP partner logic functions, and any +//output files any of the foregoing (including device programming or +//simulation files), and any associated documentation or information are +//expressly subject to the terms and conditions of the Altera Program +//License Subscription Agreement or other applicable license agreement, +//including, without limitation, that your use is for the sole purpose +//of programming logic devices manufactured by Altera and sold by Altera +//or its authorized distributors. Please refer to the applicable +//agreement for further details. + +// synthesis translate_off +`timescale 1ns / 1ps +// synthesis translate_on + +// turn off superfluous verilog processor warnings +// altera message_level Level1 +// altera message_off 10034 10035 10036 10037 10230 10240 10030 + +module nios_system_LEDRs ( + // inputs: + address, + chipselect, + clk, + reset_n, + write_n, + writedata, + + // outputs: + out_port, + readdata + ) +; + + output [ 17: 0] out_port; + output [ 31: 0] readdata; + input [ 1: 0] address; + input chipselect; + input clk; + input reset_n; + input write_n; + input [ 31: 0] writedata; + + wire clk_en; + reg [ 17: 0] data_out; + wire [ 17: 0] out_port; + wire [ 17: 0] read_mux_out; + wire [ 31: 0] readdata; + assign clk_en = 1; + //s1, which is an e_avalon_slave + assign read_mux_out = {18 {(address == 0)}} & data_out; + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + data_out <= 0; + else if (chipselect && ~write_n && (address == 0)) + data_out <= writedata[17 : 0]; + end + + + assign readdata = {32'b0 | read_mux_out}; + assign out_port = data_out; + +endmodule + diff --git a/nios_system/synthesis/submodules/nios_system_LEDs.v b/nios_system/synthesis/submodules/nios_system_LEDs.v new file mode 100644 index 0000000..6c38eeb --- /dev/null +++ b/nios_system/synthesis/submodules/nios_system_LEDs.v @@ -0,0 +1,66 @@ +//Legal Notice: (C)2016 Altera Corporation. All rights reserved. Your +//use of Altera Corporation's design tools, logic functions and other +//software and tools, and its AMPP partner logic functions, and any +//output files any of the foregoing (including device programming or +//simulation files), and any associated documentation or information are +//expressly subject to the terms and conditions of the Altera Program +//License Subscription Agreement or other applicable license agreement, +//including, without limitation, that your use is for the sole purpose +//of programming logic devices manufactured by Altera and sold by Altera +//or its authorized distributors. Please refer to the applicable +//agreement for further details. + +// synthesis translate_off +`timescale 1ns / 1ps +// synthesis translate_on + +// turn off superfluous verilog processor warnings +// altera message_level Level1 +// altera message_off 10034 10035 10036 10037 10230 10240 10030 + +module nios_system_LEDs ( + // inputs: + address, + chipselect, + clk, + reset_n, + write_n, + writedata, + + // outputs: + out_port, + readdata + ) +; + + output [ 7: 0] out_port; + output [ 31: 0] readdata; + input [ 1: 0] address; + input chipselect; + input clk; + input reset_n; + input write_n; + input [ 31: 0] writedata; + + wire clk_en; + reg [ 7: 0] data_out; + wire [ 7: 0] out_port; + wire [ 7: 0] read_mux_out; + wire [ 31: 0] readdata; + assign clk_en = 1; + //s1, which is an e_avalon_slave + assign read_mux_out = {8 {(address == 0)}} & data_out; + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + data_out <= 0; + else if (chipselect && ~write_n && (address == 0)) + data_out <= writedata[7 : 0]; + end + + + assign readdata = {32'b0 | read_mux_out}; + assign out_port = data_out; + +endmodule + diff --git a/nios_system/synthesis/submodules/nios_system_addr_router.sv b/nios_system/synthesis/submodules/nios_system_addr_router.sv new file mode 100644 index 0000000..005a859 --- /dev/null +++ b/nios_system/synthesis/submodules/nios_system_addr_router.sv @@ -0,0 +1,224 @@ +// (C) 2001-2013 Altera Corporation. All rights reserved. +// Your use of Altera Corporation's design tools, logic functions and other +// software and tools, and its AMPP partner logic functions, and any output +// files any of the foregoing (including device programming or simulation +// files), and any associated documentation or information are expressly subject +// to the terms and conditions of the Altera Program License Subscription +// Agreement, Altera MegaCore Function License Agreement, or other applicable +// license agreement, including, without limitation, that your use is for the +// sole purpose of programming logic devices manufactured by Altera and sold by +// Altera or its authorized distributors. Please refer to the applicable +// agreement for further details. + + +// (C) 2001-2013 Altera Corporation. All rights reserved. +// Your use of Altera Corporation's design tools, logic functions and other +// software and tools, and its AMPP partner logic functions, and any output +// files any of the foregoing (including device programming or simulation +// files), and any associated documentation or information are expressly subject +// to the terms and conditions of the Altera Program License Subscription +// Agreement, Altera MegaCore Function License Agreement, or other applicable +// license agreement, including, without limitation, that your use is for the +// sole purpose of programming logic devices manufactured by Altera and sold by +// Altera or its authorized distributors. Please refer to the applicable +// agreement for further details. + + +// $Id: //acds/rel/13.0sp1/ip/merlin/altera_merlin_router/altera_merlin_router.sv.terp#1 $ +// $Revision: #1 $ +// $Date: 2013/03/07 $ +// $Author: swbranch $ + +// ------------------------------------------------------- +// Merlin Router +// +// Asserts the appropriate one-hot encoded channel based on +// either (a) the address or (b) the dest id. The DECODER_TYPE +// parameter controls this behaviour. 0 means address decoder, +// 1 means dest id decoder. +// +// In the case of (a), it also sets the destination id. +// ------------------------------------------------------- + +`timescale 1 ns / 1 ns + +module nios_system_addr_router_default_decode + #( + parameter DEFAULT_CHANNEL = 1, + DEFAULT_WR_CHANNEL = -1, + DEFAULT_RD_CHANNEL = -1, + DEFAULT_DESTID = 15 + ) + (output [85 - 81 : 0] default_destination_id, + output [18-1 : 0] default_wr_channel, + output [18-1 : 0] default_rd_channel, + output [18-1 : 0] default_src_channel + ); + + assign default_destination_id = + DEFAULT_DESTID[85 - 81 : 0]; + + generate begin : default_decode + if (DEFAULT_CHANNEL == -1) begin + assign default_src_channel = '0; + end + else begin + assign default_src_channel = 18'b1 << DEFAULT_CHANNEL; + end + end + endgenerate + + generate begin : default_decode_rw + if (DEFAULT_RD_CHANNEL == -1) begin + assign default_wr_channel = '0; + assign default_rd_channel = '0; + end + else begin + assign default_wr_channel = 18'b1 << DEFAULT_WR_CHANNEL; + assign default_rd_channel = 18'b1 << DEFAULT_RD_CHANNEL; + end + end + endgenerate + +endmodule + + +module nios_system_addr_router +( + // ------------------- + // Clock & Reset + // ------------------- + input clk, + input reset, + + // ------------------- + // Command Sink (Input) + // ------------------- + input sink_valid, + input [96-1 : 0] sink_data, + input sink_startofpacket, + input sink_endofpacket, + output sink_ready, + + // ------------------- + // Command Source (Output) + // ------------------- + output src_valid, + output reg [96-1 : 0] src_data, + output reg [18-1 : 0] src_channel, + output src_startofpacket, + output src_endofpacket, + input src_ready +); + + // ------------------------------------------------------- + // Local parameters and variables + // ------------------------------------------------------- + localparam PKT_ADDR_H = 54; + localparam PKT_ADDR_L = 36; + localparam PKT_DEST_ID_H = 85; + localparam PKT_DEST_ID_L = 81; + localparam PKT_PROTECTION_H = 89; + localparam PKT_PROTECTION_L = 87; + localparam ST_DATA_W = 96; + localparam ST_CHANNEL_W = 18; + localparam DECODER_TYPE = 0; + + localparam PKT_TRANS_WRITE = 57; + localparam PKT_TRANS_READ = 58; + + localparam PKT_ADDR_W = PKT_ADDR_H-PKT_ADDR_L + 1; + localparam PKT_DEST_ID_W = PKT_DEST_ID_H-PKT_DEST_ID_L + 1; + + + + // ------------------------------------------------------- + // Figure out the number of bits to mask off for each slave span + // during address decoding + // ------------------------------------------------------- + localparam PAD0 = log2ceil(64'h40000 - 64'h0); + localparam PAD1 = log2ceil(64'h41000 - 64'h40800); + // ------------------------------------------------------- + // Work out which address bits are significant based on the + // address range of the slaves. If the required width is too + // large or too small, we use the address field width instead. + // ------------------------------------------------------- + localparam ADDR_RANGE = 64'h41000; + localparam RANGE_ADDR_WIDTH = log2ceil(ADDR_RANGE); + localparam OPTIMIZED_ADDR_H = (RANGE_ADDR_WIDTH > PKT_ADDR_W) || + (RANGE_ADDR_WIDTH == 0) ? + PKT_ADDR_H : + PKT_ADDR_L + RANGE_ADDR_WIDTH - 1; + + localparam RG = RANGE_ADDR_WIDTH-1; + + wire [PKT_ADDR_W-1 : 0] address = sink_data[OPTIMIZED_ADDR_H : PKT_ADDR_L]; + + // ------------------------------------------------------- + // Pass almost everything through, untouched + // ------------------------------------------------------- + assign sink_ready = src_ready; + assign src_valid = sink_valid; + assign src_startofpacket = sink_startofpacket; + assign src_endofpacket = sink_endofpacket; + + wire [PKT_DEST_ID_W-1:0] default_destid; + wire [18-1 : 0] default_src_channel; + + + + + + nios_system_addr_router_default_decode the_default_decode( + .default_destination_id (default_destid), + .default_wr_channel (), + .default_rd_channel (), + .default_src_channel (default_src_channel) + ); + + always @* begin + src_data = sink_data; + src_channel = default_src_channel; + src_data[PKT_DEST_ID_H:PKT_DEST_ID_L] = default_destid; + + // -------------------------------------------------- + // Address Decoder + // Sets the channel and destination ID based on the address + // -------------------------------------------------- + + // ( 0x0 .. 0x40000 ) + if ( {address[RG:PAD0],{PAD0{1'b0}}} == 19'h0 ) begin + src_channel = 18'b10; + src_data[PKT_DEST_ID_H:PKT_DEST_ID_L] = 15; + end + + // ( 0x40800 .. 0x41000 ) + if ( {address[RG:PAD1],{PAD1{1'b0}}} == 19'h40800 ) begin + src_channel = 18'b01; + src_data[PKT_DEST_ID_H:PKT_DEST_ID_L] = 14; + end + +end + + + // -------------------------------------------------- + // Ceil(log2()) function + // -------------------------------------------------- + function integer log2ceil; + input reg[65:0] val; + reg [65:0] i; + + begin + i = 1; + log2ceil = 0; + + while (i < val) begin + log2ceil = log2ceil + 1; + i = i << 1; + end + end + endfunction + +endmodule + + diff --git a/nios_system/synthesis/submodules/nios_system_addr_router_001.sv b/nios_system/synthesis/submodules/nios_system_addr_router_001.sv new file mode 100644 index 0000000..73a4ee3 --- /dev/null +++ b/nios_system/synthesis/submodules/nios_system_addr_router_001.sv @@ -0,0 +1,336 @@ +// (C) 2001-2013 Altera Corporation. All rights reserved. +// Your use of Altera Corporation's design tools, logic functions and other +// software and tools, and its AMPP partner logic functions, and any output +// files any of the foregoing (including device programming or simulation +// files), and any associated documentation or information are expressly subject +// to the terms and conditions of the Altera Program License Subscription +// Agreement, Altera MegaCore Function License Agreement, or other applicable +// license agreement, including, without limitation, that your use is for the +// sole purpose of programming logic devices manufactured by Altera and sold by +// Altera or its authorized distributors. Please refer to the applicable +// agreement for further details. + + +// (C) 2001-2013 Altera Corporation. All rights reserved. +// Your use of Altera Corporation's design tools, logic functions and other +// software and tools, and its AMPP partner logic functions, and any output +// files any of the foregoing (including device programming or simulation +// files), and any associated documentation or information are expressly subject +// to the terms and conditions of the Altera Program License Subscription +// Agreement, Altera MegaCore Function License Agreement, or other applicable +// license agreement, including, without limitation, that your use is for the +// sole purpose of programming logic devices manufactured by Altera and sold by +// Altera or its authorized distributors. Please refer to the applicable +// agreement for further details. + + +// $Id: //acds/rel/13.0sp1/ip/merlin/altera_merlin_router/altera_merlin_router.sv.terp#1 $ +// $Revision: #1 $ +// $Date: 2013/03/07 $ +// $Author: swbranch $ + +// ------------------------------------------------------- +// Merlin Router +// +// Asserts the appropriate one-hot encoded channel based on +// either (a) the address or (b) the dest id. The DECODER_TYPE +// parameter controls this behaviour. 0 means address decoder, +// 1 means dest id decoder. +// +// In the case of (a), it also sets the destination id. +// ------------------------------------------------------- + +`timescale 1 ns / 1 ns + +module nios_system_addr_router_001_default_decode + #( + parameter DEFAULT_CHANNEL = 1, + DEFAULT_WR_CHANNEL = -1, + DEFAULT_RD_CHANNEL = -1, + DEFAULT_DESTID = 15 + ) + (output [85 - 81 : 0] default_destination_id, + output [18-1 : 0] default_wr_channel, + output [18-1 : 0] default_rd_channel, + output [18-1 : 0] default_src_channel + ); + + assign default_destination_id = + DEFAULT_DESTID[85 - 81 : 0]; + + generate begin : default_decode + if (DEFAULT_CHANNEL == -1) begin + assign default_src_channel = '0; + end + else begin + assign default_src_channel = 18'b1 << DEFAULT_CHANNEL; + end + end + endgenerate + + generate begin : default_decode_rw + if (DEFAULT_RD_CHANNEL == -1) begin + assign default_wr_channel = '0; + assign default_rd_channel = '0; + end + else begin + assign default_wr_channel = 18'b1 << DEFAULT_WR_CHANNEL; + assign default_rd_channel = 18'b1 << DEFAULT_RD_CHANNEL; + end + end + endgenerate + +endmodule + + +module nios_system_addr_router_001 +( + // ------------------- + // Clock & Reset + // ------------------- + input clk, + input reset, + + // ------------------- + // Command Sink (Input) + // ------------------- + input sink_valid, + input [96-1 : 0] sink_data, + input sink_startofpacket, + input sink_endofpacket, + output sink_ready, + + // ------------------- + // Command Source (Output) + // ------------------- + output src_valid, + output reg [96-1 : 0] src_data, + output reg [18-1 : 0] src_channel, + output src_startofpacket, + output src_endofpacket, + input src_ready +); + + // ------------------------------------------------------- + // Local parameters and variables + // ------------------------------------------------------- + localparam PKT_ADDR_H = 54; + localparam PKT_ADDR_L = 36; + localparam PKT_DEST_ID_H = 85; + localparam PKT_DEST_ID_L = 81; + localparam PKT_PROTECTION_H = 89; + localparam PKT_PROTECTION_L = 87; + localparam ST_DATA_W = 96; + localparam ST_CHANNEL_W = 18; + localparam DECODER_TYPE = 0; + + localparam PKT_TRANS_WRITE = 57; + localparam PKT_TRANS_READ = 58; + + localparam PKT_ADDR_W = PKT_ADDR_H-PKT_ADDR_L + 1; + localparam PKT_DEST_ID_W = PKT_DEST_ID_H-PKT_DEST_ID_L + 1; + + + + // ------------------------------------------------------- + // Figure out the number of bits to mask off for each slave span + // during address decoding + // ------------------------------------------------------- + localparam PAD0 = log2ceil(64'h40000 - 64'h0); + localparam PAD1 = log2ceil(64'h41000 - 64'h40800); + localparam PAD2 = log2ceil(64'h41020 - 64'h41010); + localparam PAD3 = log2ceil(64'h41030 - 64'h41020); + localparam PAD4 = log2ceil(64'h41040 - 64'h41030); + localparam PAD5 = log2ceil(64'h41050 - 64'h41040); + localparam PAD6 = log2ceil(64'h41060 - 64'h41050); + localparam PAD7 = log2ceil(64'h41070 - 64'h41060); + localparam PAD8 = log2ceil(64'h41080 - 64'h41070); + localparam PAD9 = log2ceil(64'h41090 - 64'h41080); + localparam PAD10 = log2ceil(64'h410a0 - 64'h41090); + localparam PAD11 = log2ceil(64'h410b0 - 64'h410a0); + localparam PAD12 = log2ceil(64'h410c0 - 64'h410b0); + localparam PAD13 = log2ceil(64'h410d0 - 64'h410c0); + localparam PAD14 = log2ceil(64'h410e0 - 64'h410d0); + localparam PAD15 = log2ceil(64'h410f0 - 64'h410e0); + localparam PAD16 = log2ceil(64'h41100 - 64'h410f0); + localparam PAD17 = log2ceil(64'h41108 - 64'h41100); + // ------------------------------------------------------- + // Work out which address bits are significant based on the + // address range of the slaves. If the required width is too + // large or too small, we use the address field width instead. + // ------------------------------------------------------- + localparam ADDR_RANGE = 64'h41108; + localparam RANGE_ADDR_WIDTH = log2ceil(ADDR_RANGE); + localparam OPTIMIZED_ADDR_H = (RANGE_ADDR_WIDTH > PKT_ADDR_W) || + (RANGE_ADDR_WIDTH == 0) ? + PKT_ADDR_H : + PKT_ADDR_L + RANGE_ADDR_WIDTH - 1; + + localparam RG = RANGE_ADDR_WIDTH-1; + + wire [PKT_ADDR_W-1 : 0] address = sink_data[OPTIMIZED_ADDR_H : PKT_ADDR_L]; + + // ------------------------------------------------------- + // Pass almost everything through, untouched + // ------------------------------------------------------- + assign sink_ready = src_ready; + assign src_valid = sink_valid; + assign src_startofpacket = sink_startofpacket; + assign src_endofpacket = sink_endofpacket; + + wire [PKT_DEST_ID_W-1:0] default_destid; + wire [18-1 : 0] default_src_channel; + + + + + + nios_system_addr_router_001_default_decode the_default_decode( + .default_destination_id (default_destid), + .default_wr_channel (), + .default_rd_channel (), + .default_src_channel (default_src_channel) + ); + + always @* begin + src_data = sink_data; + src_channel = default_src_channel; + src_data[PKT_DEST_ID_H:PKT_DEST_ID_L] = default_destid; + + // -------------------------------------------------- + // Address Decoder + // Sets the channel and destination ID based on the address + // -------------------------------------------------- + + // ( 0x0 .. 0x40000 ) + if ( {address[RG:PAD0],{PAD0{1'b0}}} == 19'h0 ) begin + src_channel = 18'b000000000000000010; + src_data[PKT_DEST_ID_H:PKT_DEST_ID_L] = 15; + end + + // ( 0x40800 .. 0x41000 ) + if ( {address[RG:PAD1],{PAD1{1'b0}}} == 19'h40800 ) begin + src_channel = 18'b000000000000000001; + src_data[PKT_DEST_ID_H:PKT_DEST_ID_L] = 14; + end + + // ( 0x41010 .. 0x41020 ) + if ( {address[RG:PAD2],{PAD2{1'b0}}} == 19'h41010 ) begin + src_channel = 18'b010000000000000000; + src_data[PKT_DEST_ID_H:PKT_DEST_ID_L] = 13; + end + + // ( 0x41020 .. 0x41030 ) + if ( {address[RG:PAD3],{PAD3{1'b0}}} == 19'h41020 ) begin + src_channel = 18'b100000000000000000; + src_data[PKT_DEST_ID_H:PKT_DEST_ID_L] = 12; + end + + // ( 0x41030 .. 0x41040 ) + if ( {address[RG:PAD4],{PAD4{1'b0}}} == 19'h41030 ) begin + src_channel = 18'b001000000000000000; + src_data[PKT_DEST_ID_H:PKT_DEST_ID_L] = 11; + end + + // ( 0x41040 .. 0x41050 ) + if ( {address[RG:PAD5],{PAD5{1'b0}}} == 19'h41040 ) begin + src_channel = 18'b000100000000000000; + src_data[PKT_DEST_ID_H:PKT_DEST_ID_L] = 9; + end + + // ( 0x41050 .. 0x41060 ) + if ( {address[RG:PAD6],{PAD6{1'b0}}} == 19'h41050 ) begin + src_channel = 18'b000010000000000000; + src_data[PKT_DEST_ID_H:PKT_DEST_ID_L] = 8; + end + + // ( 0x41060 .. 0x41070 ) + if ( {address[RG:PAD7],{PAD7{1'b0}}} == 19'h41060 ) begin + src_channel = 18'b000001000000000000; + src_data[PKT_DEST_ID_H:PKT_DEST_ID_L] = 7; + end + + // ( 0x41070 .. 0x41080 ) + if ( {address[RG:PAD8],{PAD8{1'b0}}} == 19'h41070 ) begin + src_channel = 18'b000000100000000000; + src_data[PKT_DEST_ID_H:PKT_DEST_ID_L] = 6; + end + + // ( 0x41080 .. 0x41090 ) + if ( {address[RG:PAD9],{PAD9{1'b0}}} == 19'h41080 ) begin + src_channel = 18'b000000010000000000; + src_data[PKT_DEST_ID_H:PKT_DEST_ID_L] = 5; + end + + // ( 0x41090 .. 0x410a0 ) + if ( {address[RG:PAD10],{PAD10{1'b0}}} == 19'h41090 ) begin + src_channel = 18'b000000001000000000; + src_data[PKT_DEST_ID_H:PKT_DEST_ID_L] = 4; + end + + // ( 0x410a0 .. 0x410b0 ) + if ( {address[RG:PAD11],{PAD11{1'b0}}} == 19'h410a0 ) begin + src_channel = 18'b000000000100000000; + src_data[PKT_DEST_ID_H:PKT_DEST_ID_L] = 3; + end + + // ( 0x410b0 .. 0x410c0 ) + if ( {address[RG:PAD12],{PAD12{1'b0}}} == 19'h410b0 ) begin + src_channel = 18'b000000000010000000; + src_data[PKT_DEST_ID_H:PKT_DEST_ID_L] = 2; + end + + // ( 0x410c0 .. 0x410d0 ) + if ( {address[RG:PAD13],{PAD13{1'b0}}} == 19'h410c0 ) begin + src_channel = 18'b000000000001000000; + src_data[PKT_DEST_ID_H:PKT_DEST_ID_L] = 16; + end + + // ( 0x410d0 .. 0x410e0 ) + if ( {address[RG:PAD14],{PAD14{1'b0}}} == 19'h410d0 ) begin + src_channel = 18'b000000000000100000; + src_data[PKT_DEST_ID_H:PKT_DEST_ID_L] = 17; + end + + // ( 0x410e0 .. 0x410f0 ) + if ( {address[RG:PAD15],{PAD15{1'b0}}} == 19'h410e0 ) begin + src_channel = 18'b000000000000010000; + src_data[PKT_DEST_ID_H:PKT_DEST_ID_L] = 0; + end + + // ( 0x410f0 .. 0x41100 ) + if ( {address[RG:PAD16],{PAD16{1'b0}}} == 19'h410f0 ) begin + src_channel = 18'b000000000000000100; + src_data[PKT_DEST_ID_H:PKT_DEST_ID_L] = 1; + end + + // ( 0x41100 .. 0x41108 ) + if ( {address[RG:PAD17],{PAD17{1'b0}}} == 19'h41100 ) begin + src_channel = 18'b000000000000001000; + src_data[PKT_DEST_ID_H:PKT_DEST_ID_L] = 10; + end + +end + + + // -------------------------------------------------- + // Ceil(log2()) function + // -------------------------------------------------- + function integer log2ceil; + input reg[65:0] val; + reg [65:0] i; + + begin + i = 1; + log2ceil = 0; + + while (i < val) begin + log2ceil = log2ceil + 1; + i = i << 1; + end + end + endfunction + +endmodule + + diff --git a/nios_system/synthesis/submodules/nios_system_cmd_xbar_demux.sv b/nios_system/synthesis/submodules/nios_system_cmd_xbar_demux.sv new file mode 100644 index 0000000..d833b2f --- /dev/null +++ b/nios_system/synthesis/submodules/nios_system_cmd_xbar_demux.sv @@ -0,0 +1,116 @@ +// (C) 2001-2013 Altera Corporation. All rights reserved. +// Your use of Altera Corporation's design tools, logic functions and other +// software and tools, and its AMPP partner logic functions, and any output +// files any of the foregoing (including device programming or simulation +// files), and any associated documentation or information are expressly subject +// to the terms and conditions of the Altera Program License Subscription +// Agreement, Altera MegaCore Function License Agreement, or other applicable +// license agreement, including, without limitation, that your use is for the +// sole purpose of programming logic devices manufactured by Altera and sold by +// Altera or its authorized distributors. Please refer to the applicable +// agreement for further details. + + +// $Id: //acds/rel/13.0sp1/ip/merlin/altera_merlin_demultiplexer/altera_merlin_demultiplexer.sv.terp#1 $ +// $Revision: #1 $ +// $Date: 2013/03/07 $ +// $Author: swbranch $ + +// ------------------------------------- +// Merlin Demultiplexer +// +// Asserts valid on the appropriate output +// given a one-hot channel signal. +// ------------------------------------- + +`timescale 1 ns / 1 ns + +// ------------------------------------------ +// Generation parameters: +// output_name: nios_system_cmd_xbar_demux +// ST_DATA_W: 96 +// ST_CHANNEL_W: 18 +// NUM_OUTPUTS: 2 +// VALID_WIDTH: 1 +// ------------------------------------------ + +//------------------------------------------ +// Message Supression Used +// QIS Warnings +// 15610 - Warning: Design contains x input pin(s) that do not drive logic +//------------------------------------------ + +module nios_system_cmd_xbar_demux +( + // ------------------- + // Sink + // ------------------- + input [1-1 : 0] sink_valid, + input [96-1 : 0] sink_data, // ST_DATA_W=96 + input [18-1 : 0] sink_channel, // ST_CHANNEL_W=18 + input sink_startofpacket, + input sink_endofpacket, + output sink_ready, + + // ------------------- + // Sources + // ------------------- + output reg src0_valid, + output reg [96-1 : 0] src0_data, // ST_DATA_W=96 + output reg [18-1 : 0] src0_channel, // ST_CHANNEL_W=18 + output reg src0_startofpacket, + output reg src0_endofpacket, + input src0_ready, + + output reg src1_valid, + output reg [96-1 : 0] src1_data, // ST_DATA_W=96 + output reg [18-1 : 0] src1_channel, // ST_CHANNEL_W=18 + output reg src1_startofpacket, + output reg src1_endofpacket, + input src1_ready, + + + // ------------------- + // Clock & Reset + // ------------------- + (*altera_attribute = "-name MESSAGE_DISABLE 15610" *) // setting message suppression on clk + input clk, + (*altera_attribute = "-name MESSAGE_DISABLE 15610" *) // setting message suppression on reset + input reset + +); + + localparam NUM_OUTPUTS = 2; + wire [NUM_OUTPUTS - 1 : 0] ready_vector; + + // ------------------- + // Demux + // ------------------- + always @* begin + src0_data = sink_data; + src0_startofpacket = sink_startofpacket; + src0_endofpacket = sink_endofpacket; + src0_channel = sink_channel >> NUM_OUTPUTS; + + src0_valid = sink_channel[0] && sink_valid; + + src1_data = sink_data; + src1_startofpacket = sink_startofpacket; + src1_endofpacket = sink_endofpacket; + src1_channel = sink_channel >> NUM_OUTPUTS; + + src1_valid = sink_channel[1] && sink_valid; + + end + + // ------------------- + // Backpressure + // ------------------- + assign ready_vector[0] = src0_ready; + assign ready_vector[1] = src1_ready; + + assign sink_ready = |(sink_channel & {{16{1'b0}},{ready_vector[NUM_OUTPUTS - 1 : 0]}}); + +endmodule + + diff --git a/nios_system/synthesis/submodules/nios_system_cmd_xbar_demux_001.sv b/nios_system/synthesis/submodules/nios_system_cmd_xbar_demux_001.sv new file mode 100644 index 0000000..61d921c --- /dev/null +++ b/nios_system/synthesis/submodules/nios_system_cmd_xbar_demux_001.sv @@ -0,0 +1,356 @@ +// (C) 2001-2013 Altera Corporation. All rights reserved. +// Your use of Altera Corporation's design tools, logic functions and other +// software and tools, and its AMPP partner logic functions, and any output +// files any of the foregoing (including device programming or simulation +// files), and any associated documentation or information are expressly subject +// to the terms and conditions of the Altera Program License Subscription +// Agreement, Altera MegaCore Function License Agreement, or other applicable +// license agreement, including, without limitation, that your use is for the +// sole purpose of programming logic devices manufactured by Altera and sold by +// Altera or its authorized distributors. Please refer to the applicable +// agreement for further details. + + +// $Id: //acds/rel/13.0sp1/ip/merlin/altera_merlin_demultiplexer/altera_merlin_demultiplexer.sv.terp#1 $ +// $Revision: #1 $ +// $Date: 2013/03/07 $ +// $Author: swbranch $ + +// ------------------------------------- +// Merlin Demultiplexer +// +// Asserts valid on the appropriate output +// given a one-hot channel signal. +// ------------------------------------- + +`timescale 1 ns / 1 ns + +// ------------------------------------------ +// Generation parameters: +// output_name: nios_system_cmd_xbar_demux_001 +// ST_DATA_W: 96 +// ST_CHANNEL_W: 18 +// NUM_OUTPUTS: 18 +// VALID_WIDTH: 1 +// ------------------------------------------ + +//------------------------------------------ +// Message Supression Used +// QIS Warnings +// 15610 - Warning: Design contains x input pin(s) that do not drive logic +//------------------------------------------ + +module nios_system_cmd_xbar_demux_001 +( + // ------------------- + // Sink + // ------------------- + input [1-1 : 0] sink_valid, + input [96-1 : 0] sink_data, // ST_DATA_W=96 + input [18-1 : 0] sink_channel, // ST_CHANNEL_W=18 + input sink_startofpacket, + input sink_endofpacket, + output sink_ready, + + // ------------------- + // Sources + // ------------------- + output reg src0_valid, + output reg [96-1 : 0] src0_data, // ST_DATA_W=96 + output reg [18-1 : 0] src0_channel, // ST_CHANNEL_W=18 + output reg src0_startofpacket, + output reg src0_endofpacket, + input src0_ready, + + output reg src1_valid, + output reg [96-1 : 0] src1_data, // ST_DATA_W=96 + output reg [18-1 : 0] src1_channel, // ST_CHANNEL_W=18 + output reg src1_startofpacket, + output reg src1_endofpacket, + input src1_ready, + + output reg src2_valid, + output reg [96-1 : 0] src2_data, // ST_DATA_W=96 + output reg [18-1 : 0] src2_channel, // ST_CHANNEL_W=18 + output reg src2_startofpacket, + output reg src2_endofpacket, + input src2_ready, + + output reg src3_valid, + output reg [96-1 : 0] src3_data, // ST_DATA_W=96 + output reg [18-1 : 0] src3_channel, // ST_CHANNEL_W=18 + output reg src3_startofpacket, + output reg src3_endofpacket, + input src3_ready, + + output reg src4_valid, + output reg [96-1 : 0] src4_data, // ST_DATA_W=96 + output reg [18-1 : 0] src4_channel, // ST_CHANNEL_W=18 + output reg src4_startofpacket, + output reg src4_endofpacket, + input src4_ready, + + output reg src5_valid, + output reg [96-1 : 0] src5_data, // ST_DATA_W=96 + output reg [18-1 : 0] src5_channel, // ST_CHANNEL_W=18 + output reg src5_startofpacket, + output reg src5_endofpacket, + input src5_ready, + + output reg src6_valid, + output reg [96-1 : 0] src6_data, // ST_DATA_W=96 + output reg [18-1 : 0] src6_channel, // ST_CHANNEL_W=18 + output reg src6_startofpacket, + output reg src6_endofpacket, + input src6_ready, + + output reg src7_valid, + output reg [96-1 : 0] src7_data, // ST_DATA_W=96 + output reg [18-1 : 0] src7_channel, // ST_CHANNEL_W=18 + output reg src7_startofpacket, + output reg src7_endofpacket, + input src7_ready, + + output reg src8_valid, + output reg [96-1 : 0] src8_data, // ST_DATA_W=96 + output reg [18-1 : 0] src8_channel, // ST_CHANNEL_W=18 + output reg src8_startofpacket, + output reg src8_endofpacket, + input src8_ready, + + output reg src9_valid, + output reg [96-1 : 0] src9_data, // ST_DATA_W=96 + output reg [18-1 : 0] src9_channel, // ST_CHANNEL_W=18 + output reg src9_startofpacket, + output reg src9_endofpacket, + input src9_ready, + + output reg src10_valid, + output reg [96-1 : 0] src10_data, // ST_DATA_W=96 + output reg [18-1 : 0] src10_channel, // ST_CHANNEL_W=18 + output reg src10_startofpacket, + output reg src10_endofpacket, + input src10_ready, + + output reg src11_valid, + output reg [96-1 : 0] src11_data, // ST_DATA_W=96 + output reg [18-1 : 0] src11_channel, // ST_CHANNEL_W=18 + output reg src11_startofpacket, + output reg src11_endofpacket, + input src11_ready, + + output reg src12_valid, + output reg [96-1 : 0] src12_data, // ST_DATA_W=96 + output reg [18-1 : 0] src12_channel, // ST_CHANNEL_W=18 + output reg src12_startofpacket, + output reg src12_endofpacket, + input src12_ready, + + output reg src13_valid, + output reg [96-1 : 0] src13_data, // ST_DATA_W=96 + output reg [18-1 : 0] src13_channel, // ST_CHANNEL_W=18 + output reg src13_startofpacket, + output reg src13_endofpacket, + input src13_ready, + + output reg src14_valid, + output reg [96-1 : 0] src14_data, // ST_DATA_W=96 + output reg [18-1 : 0] src14_channel, // ST_CHANNEL_W=18 + output reg src14_startofpacket, + output reg src14_endofpacket, + input src14_ready, + + output reg src15_valid, + output reg [96-1 : 0] src15_data, // ST_DATA_W=96 + output reg [18-1 : 0] src15_channel, // ST_CHANNEL_W=18 + output reg src15_startofpacket, + output reg src15_endofpacket, + input src15_ready, + + output reg src16_valid, + output reg [96-1 : 0] src16_data, // ST_DATA_W=96 + output reg [18-1 : 0] src16_channel, // ST_CHANNEL_W=18 + output reg src16_startofpacket, + output reg src16_endofpacket, + input src16_ready, + + output reg src17_valid, + output reg [96-1 : 0] src17_data, // ST_DATA_W=96 + output reg [18-1 : 0] src17_channel, // ST_CHANNEL_W=18 + output reg src17_startofpacket, + output reg src17_endofpacket, + input src17_ready, + + + // ------------------- + // Clock & Reset + // ------------------- + (*altera_attribute = "-name MESSAGE_DISABLE 15610" *) // setting message suppression on clk + input clk, + (*altera_attribute = "-name MESSAGE_DISABLE 15610" *) // setting message suppression on reset + input reset + +); + + localparam NUM_OUTPUTS = 18; + wire [NUM_OUTPUTS - 1 : 0] ready_vector; + + // ------------------- + // Demux + // ------------------- + always @* begin + src0_data = sink_data; + src0_startofpacket = sink_startofpacket; + src0_endofpacket = sink_endofpacket; + src0_channel = sink_channel >> NUM_OUTPUTS; + + src0_valid = sink_channel[0] && sink_valid; + + src1_data = sink_data; + src1_startofpacket = sink_startofpacket; + src1_endofpacket = sink_endofpacket; + src1_channel = sink_channel >> NUM_OUTPUTS; + + src1_valid = sink_channel[1] && sink_valid; + + src2_data = sink_data; + src2_startofpacket = sink_startofpacket; + src2_endofpacket = sink_endofpacket; + src2_channel = sink_channel >> NUM_OUTPUTS; + + src2_valid = sink_channel[2] && sink_valid; + + src3_data = sink_data; + src3_startofpacket = sink_startofpacket; + src3_endofpacket = sink_endofpacket; + src3_channel = sink_channel >> NUM_OUTPUTS; + + src3_valid = sink_channel[3] && sink_valid; + + src4_data = sink_data; + src4_startofpacket = sink_startofpacket; + src4_endofpacket = sink_endofpacket; + src4_channel = sink_channel >> NUM_OUTPUTS; + + src4_valid = sink_channel[4] && sink_valid; + + src5_data = sink_data; + src5_startofpacket = sink_startofpacket; + src5_endofpacket = sink_endofpacket; + src5_channel = sink_channel >> NUM_OUTPUTS; + + src5_valid = sink_channel[5] && sink_valid; + + src6_data = sink_data; + src6_startofpacket = sink_startofpacket; + src6_endofpacket = sink_endofpacket; + src6_channel = sink_channel >> NUM_OUTPUTS; + + src6_valid = sink_channel[6] && sink_valid; + + src7_data = sink_data; + src7_startofpacket = sink_startofpacket; + src7_endofpacket = sink_endofpacket; + src7_channel = sink_channel >> NUM_OUTPUTS; + + src7_valid = sink_channel[7] && sink_valid; + + src8_data = sink_data; + src8_startofpacket = sink_startofpacket; + src8_endofpacket = sink_endofpacket; + src8_channel = sink_channel >> NUM_OUTPUTS; + + src8_valid = sink_channel[8] && sink_valid; + + src9_data = sink_data; + src9_startofpacket = sink_startofpacket; + src9_endofpacket = sink_endofpacket; + src9_channel = sink_channel >> NUM_OUTPUTS; + + src9_valid = sink_channel[9] && sink_valid; + + src10_data = sink_data; + src10_startofpacket = sink_startofpacket; + src10_endofpacket = sink_endofpacket; + src10_channel = sink_channel >> NUM_OUTPUTS; + + src10_valid = sink_channel[10] && sink_valid; + + src11_data = sink_data; + src11_startofpacket = sink_startofpacket; + src11_endofpacket = sink_endofpacket; + src11_channel = sink_channel >> NUM_OUTPUTS; + + src11_valid = sink_channel[11] && sink_valid; + + src12_data = sink_data; + src12_startofpacket = sink_startofpacket; + src12_endofpacket = sink_endofpacket; + src12_channel = sink_channel >> NUM_OUTPUTS; + + src12_valid = sink_channel[12] && sink_valid; + + src13_data = sink_data; + src13_startofpacket = sink_startofpacket; + src13_endofpacket = sink_endofpacket; + src13_channel = sink_channel >> NUM_OUTPUTS; + + src13_valid = sink_channel[13] && sink_valid; + + src14_data = sink_data; + src14_startofpacket = sink_startofpacket; + src14_endofpacket = sink_endofpacket; + src14_channel = sink_channel >> NUM_OUTPUTS; + + src14_valid = sink_channel[14] && sink_valid; + + src15_data = sink_data; + src15_startofpacket = sink_startofpacket; + src15_endofpacket = sink_endofpacket; + src15_channel = sink_channel >> NUM_OUTPUTS; + + src15_valid = sink_channel[15] && sink_valid; + + src16_data = sink_data; + src16_startofpacket = sink_startofpacket; + src16_endofpacket = sink_endofpacket; + src16_channel = sink_channel >> NUM_OUTPUTS; + + src16_valid = sink_channel[16] && sink_valid; + + src17_data = sink_data; + src17_startofpacket = sink_startofpacket; + src17_endofpacket = sink_endofpacket; + src17_channel = sink_channel >> NUM_OUTPUTS; + + src17_valid = sink_channel[17] && sink_valid; + + end + + // ------------------- + // Backpressure + // ------------------- + assign ready_vector[0] = src0_ready; + assign ready_vector[1] = src1_ready; + assign ready_vector[2] = src2_ready; + assign ready_vector[3] = src3_ready; + assign ready_vector[4] = src4_ready; + assign ready_vector[5] = src5_ready; + assign ready_vector[6] = src6_ready; + assign ready_vector[7] = src7_ready; + assign ready_vector[8] = src8_ready; + assign ready_vector[9] = src9_ready; + assign ready_vector[10] = src10_ready; + assign ready_vector[11] = src11_ready; + assign ready_vector[12] = src12_ready; + assign ready_vector[13] = src13_ready; + assign ready_vector[14] = src14_ready; + assign ready_vector[15] = src15_ready; + assign ready_vector[16] = src16_ready; + assign ready_vector[17] = src17_ready; + + assign sink_ready = |(sink_channel & ready_vector); + +endmodule + + diff --git a/nios_system/synthesis/submodules/nios_system_cmd_xbar_mux.sv b/nios_system/synthesis/submodules/nios_system_cmd_xbar_mux.sv new file mode 100644 index 0000000..494c070 --- /dev/null +++ b/nios_system/synthesis/submodules/nios_system_cmd_xbar_mux.sv @@ -0,0 +1,308 @@ +// (C) 2001-2013 Altera Corporation. All rights reserved. +// Your use of Altera Corporation's design tools, logic functions and other +// software and tools, and its AMPP partner logic functions, and any output +// files any of the foregoing (including device programming or simulation +// files), and any associated documentation or information are expressly subject +// to the terms and conditions of the Altera Program License Subscription +// Agreement, Altera MegaCore Function License Agreement, or other applicable +// license agreement, including, without limitation, that your use is for the +// sole purpose of programming logic devices manufactured by Altera and sold by +// Altera or its authorized distributors. Please refer to the applicable +// agreement for further details. + + +// $Id: //acds/rel/13.0sp1/ip/merlin/altera_merlin_multiplexer/altera_merlin_multiplexer.sv.terp#1 $ +// $Revision: #1 $ +// $Date: 2013/03/07 $ +// $Author: swbranch $ + +// ------------------------------------------ +// Merlin Multiplexer +// ------------------------------------------ + +`timescale 1 ns / 1 ns + + +// ------------------------------------------ +// Generation parameters: +// output_name: nios_system_cmd_xbar_mux +// NUM_INPUTS: 2 +// ARBITRATION_SHARES: 1 1 +// ARBITRATION_SCHEME "round-robin" +// PIPELINE_ARB: 1 +// PKT_TRANS_LOCK: 59 (arbitration locking enabled) +// ST_DATA_W: 96 +// ST_CHANNEL_W: 18 +// ------------------------------------------ + +module nios_system_cmd_xbar_mux +( + // ---------------------- + // Sinks + // ---------------------- + input sink0_valid, + input [96-1 : 0] sink0_data, + input [18-1: 0] sink0_channel, + input sink0_startofpacket, + input sink0_endofpacket, + output sink0_ready, + + input sink1_valid, + input [96-1 : 0] sink1_data, + input [18-1: 0] sink1_channel, + input sink1_startofpacket, + input sink1_endofpacket, + output sink1_ready, + + + // ---------------------- + // Source + // ---------------------- + output src_valid, + output [96-1 : 0] src_data, + output [18-1 : 0] src_channel, + output src_startofpacket, + output src_endofpacket, + input src_ready, + + // ---------------------- + // Clock & Reset + // ---------------------- + input clk, + input reset +); + localparam PAYLOAD_W = 96 + 18 + 2; + localparam NUM_INPUTS = 2; + localparam SHARE_COUNTER_W = 1; + localparam PIPELINE_ARB = 1; + localparam ST_DATA_W = 96; + localparam ST_CHANNEL_W = 18; + localparam PKT_TRANS_LOCK = 59; + + // ------------------------------------------ + // Signals + // ------------------------------------------ + wire [NUM_INPUTS - 1 : 0] request; + wire [NUM_INPUTS - 1 : 0] valid; + wire [NUM_INPUTS - 1 : 0] grant; + wire [NUM_INPUTS - 1 : 0] next_grant; + reg [NUM_INPUTS - 1 : 0] saved_grant; + reg [PAYLOAD_W - 1 : 0] src_payload; + wire last_cycle; + reg packet_in_progress; + reg update_grant; + + wire [PAYLOAD_W - 1 : 0] sink0_payload; + wire [PAYLOAD_W - 1 : 0] sink1_payload; + + assign valid[0] = sink0_valid; + assign valid[1] = sink1_valid; + + wire [NUM_INPUTS - 1 : 0] eop; + assign eop[0] = sink0_endofpacket; + assign eop[1] = sink1_endofpacket; + + // ------------------------------------------ + // ------------------------------------------ + // Grant Logic & Updates + // ------------------------------------------ + // ------------------------------------------ + reg [NUM_INPUTS - 1 : 0] lock; + always @* begin + lock[0] = sink0_data[59]; + lock[1] = sink1_data[59]; + end + reg [NUM_INPUTS - 1 : 0] locked = '0; + always @(posedge clk or posedge reset) begin + if (reset) begin + locked <= '0; + end + else begin + locked <= next_grant & lock; + end + end + + assign last_cycle = src_valid & src_ready & src_endofpacket & ~(|(lock & grant)); + + // ------------------------------------------ + // We're working on a packet at any time valid is high, except + // when this is the endofpacket. + // ------------------------------------------ + always @(posedge clk or posedge reset) begin + if (reset) begin + packet_in_progress <= 1'b0; + end + else begin + if (src_valid) + packet_in_progress <= 1'b1; + if (last_cycle) + packet_in_progress <= 1'b0; + end + end + + + // ------------------------------------------ + // Shares + // + // Special case: all-equal shares _should_ be optimized into assigning a + // constant to next_grant_share. + // Special case: all-1's shares _should_ result in the share counter + // being optimized away. + // ------------------------------------------ + // Input | arb shares | counter load value + // 0 | 1 | 0 + // 1 | 1 | 0 + wire [SHARE_COUNTER_W - 1 : 0] share_0 = 1'd0; + wire [SHARE_COUNTER_W - 1 : 0] share_1 = 1'd0; + + // ------------------------------------------ + // Choose the share value corresponding to the grant. + // ------------------------------------------ + reg [SHARE_COUNTER_W - 1 : 0] next_grant_share; + always @* begin + next_grant_share = + share_0 & { SHARE_COUNTER_W {next_grant[0]} } | + share_1 & { SHARE_COUNTER_W {next_grant[1]} }; + end + + // ------------------------------------------ + // Flag to indicate first packet of an arb sequence. + // ------------------------------------------ + + // ------------------------------------------ + // Compute the next share-count value. + // ------------------------------------------ + reg [SHARE_COUNTER_W - 1 : 0] p1_share_count; + reg [SHARE_COUNTER_W - 1 : 0] share_count; + reg share_count_zero_flag; + + always @* begin + // Update the counter, but don't decrement below 0. + p1_share_count = share_count_zero_flag ? '0 : share_count - 1'b1; + end + + // ------------------------------------------ + // Update the share counter and share-counter=zero flag. + // ------------------------------------------ + always @(posedge clk or posedge reset) begin + if (reset) begin + share_count <= '0; + share_count_zero_flag <= 1'b1; + end + else begin + if (update_grant) begin + share_count <= next_grant_share; + share_count_zero_flag <= (next_grant_share == '0); + end + else if (last_cycle) begin + share_count <= p1_share_count; + share_count_zero_flag <= (p1_share_count == '0); + end + end + end + + + always @* begin + update_grant = 0; + + // ------------------------------------------ + // The pipeline delays grant by one cycle, so + // we have to calculate the update_grant signal + // one cycle ahead of time. + // + // Possible optimization: omit the first clause + // "if (!packet_in_progress & ~src_valid) ..." + // cost: one idle cycle at the the beginning of each + // grant cycle. + // benefit: save a small amount of logic. + // ------------------------------------------ + if (!packet_in_progress & !src_valid) + update_grant = 1; + if (last_cycle && share_count_zero_flag) + update_grant = 1; + end + + wire save_grant; + assign save_grant = update_grant; + assign grant = saved_grant; + + always @(posedge clk, posedge reset) begin + if (reset) + saved_grant <= '0; + else if (save_grant) + saved_grant <= next_grant; + end + + // ------------------------------------------ + // ------------------------------------------ + // Arbitrator + // ------------------------------------------ + // ------------------------------------------ + + // ------------------------------------------ + // Create a request vector that stays high during + // the packet for unpipelined arbitration. + // + // The pipelined arbitration scheme does not require + // request to be held high during the packet. + // ------------------------------------------ + reg [NUM_INPUTS - 1 : 0] prev_request; + always @(posedge clk, posedge reset) begin + if (reset) + prev_request <= '0; + else + prev_request <= request & ~(valid & eop); + end + + assign request = (PIPELINE_ARB == 1) ? valid | locked : + prev_request | valid | locked; + + + altera_merlin_arbitrator + #( + .NUM_REQUESTERS(NUM_INPUTS), + .SCHEME ("round-robin"), + .PIPELINE (1) + ) arb ( + .clk (clk), + .reset (reset), + .request (request), + .grant (next_grant), + .save_top_priority (src_valid), + .increment_top_priority (update_grant) + ); + + // ------------------------------------------ + // ------------------------------------------ + // Mux + // + // Implemented as a sum of products. + // ------------------------------------------ + // ------------------------------------------ + + assign sink0_ready = src_ready && grant[0]; + assign sink1_ready = src_ready && grant[1]; + + assign src_valid = |(grant & valid); + + always @* begin + src_payload = + sink0_payload & {PAYLOAD_W {grant[0]} } | + sink1_payload & {PAYLOAD_W {grant[1]} }; + end + + // ------------------------------------------ + // Mux Payload Mapping + // ------------------------------------------ + + assign sink0_payload = {sink0_channel,sink0_data, + sink0_startofpacket,sink0_endofpacket}; + assign sink1_payload = {sink1_channel,sink1_data, + sink1_startofpacket,sink1_endofpacket}; + + assign {src_channel,src_data,src_startofpacket,src_endofpacket} = src_payload; + +endmodule + + + diff --git a/nios_system/synthesis/submodules/nios_system_hex0.v b/nios_system/synthesis/submodules/nios_system_hex0.v new file mode 100644 index 0000000..ec4cd20 --- /dev/null +++ b/nios_system/synthesis/submodules/nios_system_hex0.v @@ -0,0 +1,66 @@ +//Legal Notice: (C)2016 Altera Corporation. All rights reserved. Your +//use of Altera Corporation's design tools, logic functions and other +//software and tools, and its AMPP partner logic functions, and any +//output files any of the foregoing (including device programming or +//simulation files), and any associated documentation or information are +//expressly subject to the terms and conditions of the Altera Program +//License Subscription Agreement or other applicable license agreement, +//including, without limitation, that your use is for the sole purpose +//of programming logic devices manufactured by Altera and sold by Altera +//or its authorized distributors. Please refer to the applicable +//agreement for further details. + +// synthesis translate_off +`timescale 1ns / 1ps +// synthesis translate_on + +// turn off superfluous verilog processor warnings +// altera message_level Level1 +// altera message_off 10034 10035 10036 10037 10230 10240 10030 + +module nios_system_hex0 ( + // inputs: + address, + chipselect, + clk, + reset_n, + write_n, + writedata, + + // outputs: + out_port, + readdata + ) +; + + output [ 6: 0] out_port; + output [ 31: 0] readdata; + input [ 1: 0] address; + input chipselect; + input clk; + input reset_n; + input write_n; + input [ 31: 0] writedata; + + wire clk_en; + reg [ 6: 0] data_out; + wire [ 6: 0] out_port; + wire [ 6: 0] read_mux_out; + wire [ 31: 0] readdata; + assign clk_en = 1; + //s1, which is an e_avalon_slave + assign read_mux_out = {7 {(address == 0)}} & data_out; + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + data_out <= 0; + else if (chipselect && ~write_n && (address == 0)) + data_out <= writedata[6 : 0]; + end + + + assign readdata = {32'b0 | read_mux_out}; + assign out_port = data_out; + +endmodule + diff --git a/nios_system/synthesis/submodules/nios_system_id_router.sv b/nios_system/synthesis/submodules/nios_system_id_router.sv new file mode 100644 index 0000000..cb46634 --- /dev/null +++ b/nios_system/synthesis/submodules/nios_system_id_router.sv @@ -0,0 +1,221 @@ +// (C) 2001-2013 Altera Corporation. All rights reserved. +// Your use of Altera Corporation's design tools, logic functions and other +// software and tools, and its AMPP partner logic functions, and any output +// files any of the foregoing (including device programming or simulation +// files), and any associated documentation or information are expressly subject +// to the terms and conditions of the Altera Program License Subscription +// Agreement, Altera MegaCore Function License Agreement, or other applicable +// license agreement, including, without limitation, that your use is for the +// sole purpose of programming logic devices manufactured by Altera and sold by +// Altera or its authorized distributors. Please refer to the applicable +// agreement for further details. + + +// (C) 2001-2013 Altera Corporation. All rights reserved. +// Your use of Altera Corporation's design tools, logic functions and other +// software and tools, and its AMPP partner logic functions, and any output +// files any of the foregoing (including device programming or simulation +// files), and any associated documentation or information are expressly subject +// to the terms and conditions of the Altera Program License Subscription +// Agreement, Altera MegaCore Function License Agreement, or other applicable +// license agreement, including, without limitation, that your use is for the +// sole purpose of programming logic devices manufactured by Altera and sold by +// Altera or its authorized distributors. Please refer to the applicable +// agreement for further details. + + +// $Id: //acds/rel/13.0sp1/ip/merlin/altera_merlin_router/altera_merlin_router.sv.terp#1 $ +// $Revision: #1 $ +// $Date: 2013/03/07 $ +// $Author: swbranch $ + +// ------------------------------------------------------- +// Merlin Router +// +// Asserts the appropriate one-hot encoded channel based on +// either (a) the address or (b) the dest id. The DECODER_TYPE +// parameter controls this behaviour. 0 means address decoder, +// 1 means dest id decoder. +// +// In the case of (a), it also sets the destination id. +// ------------------------------------------------------- + +`timescale 1 ns / 1 ns + +module nios_system_id_router_default_decode + #( + parameter DEFAULT_CHANNEL = 0, + DEFAULT_WR_CHANNEL = -1, + DEFAULT_RD_CHANNEL = -1, + DEFAULT_DESTID = 1 + ) + (output [85 - 81 : 0] default_destination_id, + output [18-1 : 0] default_wr_channel, + output [18-1 : 0] default_rd_channel, + output [18-1 : 0] default_src_channel + ); + + assign default_destination_id = + DEFAULT_DESTID[85 - 81 : 0]; + + generate begin : default_decode + if (DEFAULT_CHANNEL == -1) begin + assign default_src_channel = '0; + end + else begin + assign default_src_channel = 18'b1 << DEFAULT_CHANNEL; + end + end + endgenerate + + generate begin : default_decode_rw + if (DEFAULT_RD_CHANNEL == -1) begin + assign default_wr_channel = '0; + assign default_rd_channel = '0; + end + else begin + assign default_wr_channel = 18'b1 << DEFAULT_WR_CHANNEL; + assign default_rd_channel = 18'b1 << DEFAULT_RD_CHANNEL; + end + end + endgenerate + +endmodule + + +module nios_system_id_router +( + // ------------------- + // Clock & Reset + // ------------------- + input clk, + input reset, + + // ------------------- + // Command Sink (Input) + // ------------------- + input sink_valid, + input [96-1 : 0] sink_data, + input sink_startofpacket, + input sink_endofpacket, + output sink_ready, + + // ------------------- + // Command Source (Output) + // ------------------- + output src_valid, + output reg [96-1 : 0] src_data, + output reg [18-1 : 0] src_channel, + output src_startofpacket, + output src_endofpacket, + input src_ready +); + + // ------------------------------------------------------- + // Local parameters and variables + // ------------------------------------------------------- + localparam PKT_ADDR_H = 54; + localparam PKT_ADDR_L = 36; + localparam PKT_DEST_ID_H = 85; + localparam PKT_DEST_ID_L = 81; + localparam PKT_PROTECTION_H = 89; + localparam PKT_PROTECTION_L = 87; + localparam ST_DATA_W = 96; + localparam ST_CHANNEL_W = 18; + localparam DECODER_TYPE = 1; + + localparam PKT_TRANS_WRITE = 57; + localparam PKT_TRANS_READ = 58; + + localparam PKT_ADDR_W = PKT_ADDR_H-PKT_ADDR_L + 1; + localparam PKT_DEST_ID_W = PKT_DEST_ID_H-PKT_DEST_ID_L + 1; + + + + // ------------------------------------------------------- + // Figure out the number of bits to mask off for each slave span + // during address decoding + // ------------------------------------------------------- + // ------------------------------------------------------- + // Work out which address bits are significant based on the + // address range of the slaves. If the required width is too + // large or too small, we use the address field width instead. + // ------------------------------------------------------- + localparam ADDR_RANGE = 64'h0; + localparam RANGE_ADDR_WIDTH = log2ceil(ADDR_RANGE); + localparam OPTIMIZED_ADDR_H = (RANGE_ADDR_WIDTH > PKT_ADDR_W) || + (RANGE_ADDR_WIDTH == 0) ? + PKT_ADDR_H : + PKT_ADDR_L + RANGE_ADDR_WIDTH - 1; + + localparam RG = RANGE_ADDR_WIDTH; + + reg [PKT_DEST_ID_W-1 : 0] destid; + + // ------------------------------------------------------- + // Pass almost everything through, untouched + // ------------------------------------------------------- + assign sink_ready = src_ready; + assign src_valid = sink_valid; + assign src_startofpacket = sink_startofpacket; + assign src_endofpacket = sink_endofpacket; + + wire [PKT_DEST_ID_W-1:0] default_destid; + wire [18-1 : 0] default_src_channel; + + + + + + nios_system_id_router_default_decode the_default_decode( + .default_destination_id (default_destid), + .default_wr_channel (), + .default_rd_channel (), + .default_src_channel (default_src_channel) + ); + + always @* begin + src_data = sink_data; + src_channel = default_src_channel; + + // -------------------------------------------------- + // DestinationID Decoder + // Sets the channel based on the destination ID. + // -------------------------------------------------- + destid = sink_data[PKT_DEST_ID_H : PKT_DEST_ID_L]; + + + + if (destid == 1 ) begin + src_channel = 18'b01; + end + + if (destid == 0 ) begin + src_channel = 18'b10; + end + + +end + + + // -------------------------------------------------- + // Ceil(log2()) function + // -------------------------------------------------- + function integer log2ceil; + input reg[65:0] val; + reg [65:0] i; + + begin + i = 1; + log2ceil = 0; + + while (i < val) begin + log2ceil = log2ceil + 1; + i = i << 1; + end + end + endfunction + +endmodule + + diff --git a/nios_system/synthesis/submodules/nios_system_id_router_002.sv b/nios_system/synthesis/submodules/nios_system_id_router_002.sv new file mode 100644 index 0000000..6006063 --- /dev/null +++ b/nios_system/synthesis/submodules/nios_system_id_router_002.sv @@ -0,0 +1,217 @@ +// (C) 2001-2013 Altera Corporation. All rights reserved. +// Your use of Altera Corporation's design tools, logic functions and other +// software and tools, and its AMPP partner logic functions, and any output +// files any of the foregoing (including device programming or simulation +// files), and any associated documentation or information are expressly subject +// to the terms and conditions of the Altera Program License Subscription +// Agreement, Altera MegaCore Function License Agreement, or other applicable +// license agreement, including, without limitation, that your use is for the +// sole purpose of programming logic devices manufactured by Altera and sold by +// Altera or its authorized distributors. Please refer to the applicable +// agreement for further details. + + +// (C) 2001-2013 Altera Corporation. All rights reserved. +// Your use of Altera Corporation's design tools, logic functions and other +// software and tools, and its AMPP partner logic functions, and any output +// files any of the foregoing (including device programming or simulation +// files), and any associated documentation or information are expressly subject +// to the terms and conditions of the Altera Program License Subscription +// Agreement, Altera MegaCore Function License Agreement, or other applicable +// license agreement, including, without limitation, that your use is for the +// sole purpose of programming logic devices manufactured by Altera and sold by +// Altera or its authorized distributors. Please refer to the applicable +// agreement for further details. + + +// $Id: //acds/rel/13.0sp1/ip/merlin/altera_merlin_router/altera_merlin_router.sv.terp#1 $ +// $Revision: #1 $ +// $Date: 2013/03/07 $ +// $Author: swbranch $ + +// ------------------------------------------------------- +// Merlin Router +// +// Asserts the appropriate one-hot encoded channel based on +// either (a) the address or (b) the dest id. The DECODER_TYPE +// parameter controls this behaviour. 0 means address decoder, +// 1 means dest id decoder. +// +// In the case of (a), it also sets the destination id. +// ------------------------------------------------------- + +`timescale 1 ns / 1 ns + +module nios_system_id_router_002_default_decode + #( + parameter DEFAULT_CHANNEL = 0, + DEFAULT_WR_CHANNEL = -1, + DEFAULT_RD_CHANNEL = -1, + DEFAULT_DESTID = 0 + ) + (output [85 - 81 : 0] default_destination_id, + output [18-1 : 0] default_wr_channel, + output [18-1 : 0] default_rd_channel, + output [18-1 : 0] default_src_channel + ); + + assign default_destination_id = + DEFAULT_DESTID[85 - 81 : 0]; + + generate begin : default_decode + if (DEFAULT_CHANNEL == -1) begin + assign default_src_channel = '0; + end + else begin + assign default_src_channel = 18'b1 << DEFAULT_CHANNEL; + end + end + endgenerate + + generate begin : default_decode_rw + if (DEFAULT_RD_CHANNEL == -1) begin + assign default_wr_channel = '0; + assign default_rd_channel = '0; + end + else begin + assign default_wr_channel = 18'b1 << DEFAULT_WR_CHANNEL; + assign default_rd_channel = 18'b1 << DEFAULT_RD_CHANNEL; + end + end + endgenerate + +endmodule + + +module nios_system_id_router_002 +( + // ------------------- + // Clock & Reset + // ------------------- + input clk, + input reset, + + // ------------------- + // Command Sink (Input) + // ------------------- + input sink_valid, + input [96-1 : 0] sink_data, + input sink_startofpacket, + input sink_endofpacket, + output sink_ready, + + // ------------------- + // Command Source (Output) + // ------------------- + output src_valid, + output reg [96-1 : 0] src_data, + output reg [18-1 : 0] src_channel, + output src_startofpacket, + output src_endofpacket, + input src_ready +); + + // ------------------------------------------------------- + // Local parameters and variables + // ------------------------------------------------------- + localparam PKT_ADDR_H = 54; + localparam PKT_ADDR_L = 36; + localparam PKT_DEST_ID_H = 85; + localparam PKT_DEST_ID_L = 81; + localparam PKT_PROTECTION_H = 89; + localparam PKT_PROTECTION_L = 87; + localparam ST_DATA_W = 96; + localparam ST_CHANNEL_W = 18; + localparam DECODER_TYPE = 1; + + localparam PKT_TRANS_WRITE = 57; + localparam PKT_TRANS_READ = 58; + + localparam PKT_ADDR_W = PKT_ADDR_H-PKT_ADDR_L + 1; + localparam PKT_DEST_ID_W = PKT_DEST_ID_H-PKT_DEST_ID_L + 1; + + + + // ------------------------------------------------------- + // Figure out the number of bits to mask off for each slave span + // during address decoding + // ------------------------------------------------------- + // ------------------------------------------------------- + // Work out which address bits are significant based on the + // address range of the slaves. If the required width is too + // large or too small, we use the address field width instead. + // ------------------------------------------------------- + localparam ADDR_RANGE = 64'h0; + localparam RANGE_ADDR_WIDTH = log2ceil(ADDR_RANGE); + localparam OPTIMIZED_ADDR_H = (RANGE_ADDR_WIDTH > PKT_ADDR_W) || + (RANGE_ADDR_WIDTH == 0) ? + PKT_ADDR_H : + PKT_ADDR_L + RANGE_ADDR_WIDTH - 1; + + localparam RG = RANGE_ADDR_WIDTH; + + reg [PKT_DEST_ID_W-1 : 0] destid; + + // ------------------------------------------------------- + // Pass almost everything through, untouched + // ------------------------------------------------------- + assign sink_ready = src_ready; + assign src_valid = sink_valid; + assign src_startofpacket = sink_startofpacket; + assign src_endofpacket = sink_endofpacket; + + wire [PKT_DEST_ID_W-1:0] default_destid; + wire [18-1 : 0] default_src_channel; + + + + + + nios_system_id_router_002_default_decode the_default_decode( + .default_destination_id (default_destid), + .default_wr_channel (), + .default_rd_channel (), + .default_src_channel (default_src_channel) + ); + + always @* begin + src_data = sink_data; + src_channel = default_src_channel; + + // -------------------------------------------------- + // DestinationID Decoder + // Sets the channel based on the destination ID. + // -------------------------------------------------- + destid = sink_data[PKT_DEST_ID_H : PKT_DEST_ID_L]; + + + + if (destid == 0 ) begin + src_channel = 18'b1; + end + + +end + + + // -------------------------------------------------- + // Ceil(log2()) function + // -------------------------------------------------- + function integer log2ceil; + input reg[65:0] val; + reg [65:0] i; + + begin + i = 1; + log2ceil = 0; + + while (i < val) begin + log2ceil = log2ceil + 1; + i = i << 1; + end + end + endfunction + +endmodule + + diff --git a/nios_system/synthesis/submodules/nios_system_id_router_003.sv b/nios_system/synthesis/submodules/nios_system_id_router_003.sv new file mode 100644 index 0000000..7cfdd0c --- /dev/null +++ b/nios_system/synthesis/submodules/nios_system_id_router_003.sv @@ -0,0 +1,217 @@ +// (C) 2001-2013 Altera Corporation. All rights reserved. +// Your use of Altera Corporation's design tools, logic functions and other +// software and tools, and its AMPP partner logic functions, and any output +// files any of the foregoing (including device programming or simulation +// files), and any associated documentation or information are expressly subject +// to the terms and conditions of the Altera Program License Subscription +// Agreement, Altera MegaCore Function License Agreement, or other applicable +// license agreement, including, without limitation, that your use is for the +// sole purpose of programming logic devices manufactured by Altera and sold by +// Altera or its authorized distributors. Please refer to the applicable +// agreement for further details. + + +// (C) 2001-2013 Altera Corporation. All rights reserved. +// Your use of Altera Corporation's design tools, logic functions and other +// software and tools, and its AMPP partner logic functions, and any output +// files any of the foregoing (including device programming or simulation +// files), and any associated documentation or information are expressly subject +// to the terms and conditions of the Altera Program License Subscription +// Agreement, Altera MegaCore Function License Agreement, or other applicable +// license agreement, including, without limitation, that your use is for the +// sole purpose of programming logic devices manufactured by Altera and sold by +// Altera or its authorized distributors. Please refer to the applicable +// agreement for further details. + + +// $Id: //acds/rel/13.0sp1/ip/merlin/altera_merlin_router/altera_merlin_router.sv.terp#1 $ +// $Revision: #1 $ +// $Date: 2013/03/07 $ +// $Author: swbranch $ + +// ------------------------------------------------------- +// Merlin Router +// +// Asserts the appropriate one-hot encoded channel based on +// either (a) the address or (b) the dest id. The DECODER_TYPE +// parameter controls this behaviour. 0 means address decoder, +// 1 means dest id decoder. +// +// In the case of (a), it also sets the destination id. +// ------------------------------------------------------- + +`timescale 1 ns / 1 ns + +module nios_system_id_router_003_default_decode + #( + parameter DEFAULT_CHANNEL = 0, + DEFAULT_WR_CHANNEL = -1, + DEFAULT_RD_CHANNEL = -1, + DEFAULT_DESTID = 0 + ) + (output [85 - 81 : 0] default_destination_id, + output [18-1 : 0] default_wr_channel, + output [18-1 : 0] default_rd_channel, + output [18-1 : 0] default_src_channel + ); + + assign default_destination_id = + DEFAULT_DESTID[85 - 81 : 0]; + + generate begin : default_decode + if (DEFAULT_CHANNEL == -1) begin + assign default_src_channel = '0; + end + else begin + assign default_src_channel = 18'b1 << DEFAULT_CHANNEL; + end + end + endgenerate + + generate begin : default_decode_rw + if (DEFAULT_RD_CHANNEL == -1) begin + assign default_wr_channel = '0; + assign default_rd_channel = '0; + end + else begin + assign default_wr_channel = 18'b1 << DEFAULT_WR_CHANNEL; + assign default_rd_channel = 18'b1 << DEFAULT_RD_CHANNEL; + end + end + endgenerate + +endmodule + + +module nios_system_id_router_003 +( + // ------------------- + // Clock & Reset + // ------------------- + input clk, + input reset, + + // ------------------- + // Command Sink (Input) + // ------------------- + input sink_valid, + input [96-1 : 0] sink_data, + input sink_startofpacket, + input sink_endofpacket, + output sink_ready, + + // ------------------- + // Command Source (Output) + // ------------------- + output src_valid, + output reg [96-1 : 0] src_data, + output reg [18-1 : 0] src_channel, + output src_startofpacket, + output src_endofpacket, + input src_ready +); + + // ------------------------------------------------------- + // Local parameters and variables + // ------------------------------------------------------- + localparam PKT_ADDR_H = 54; + localparam PKT_ADDR_L = 36; + localparam PKT_DEST_ID_H = 85; + localparam PKT_DEST_ID_L = 81; + localparam PKT_PROTECTION_H = 89; + localparam PKT_PROTECTION_L = 87; + localparam ST_DATA_W = 96; + localparam ST_CHANNEL_W = 18; + localparam DECODER_TYPE = 1; + + localparam PKT_TRANS_WRITE = 57; + localparam PKT_TRANS_READ = 58; + + localparam PKT_ADDR_W = PKT_ADDR_H-PKT_ADDR_L + 1; + localparam PKT_DEST_ID_W = PKT_DEST_ID_H-PKT_DEST_ID_L + 1; + + + + // ------------------------------------------------------- + // Figure out the number of bits to mask off for each slave span + // during address decoding + // ------------------------------------------------------- + // ------------------------------------------------------- + // Work out which address bits are significant based on the + // address range of the slaves. If the required width is too + // large or too small, we use the address field width instead. + // ------------------------------------------------------- + localparam ADDR_RANGE = 64'h0; + localparam RANGE_ADDR_WIDTH = log2ceil(ADDR_RANGE); + localparam OPTIMIZED_ADDR_H = (RANGE_ADDR_WIDTH > PKT_ADDR_W) || + (RANGE_ADDR_WIDTH == 0) ? + PKT_ADDR_H : + PKT_ADDR_L + RANGE_ADDR_WIDTH - 1; + + localparam RG = RANGE_ADDR_WIDTH; + + reg [PKT_DEST_ID_W-1 : 0] destid; + + // ------------------------------------------------------- + // Pass almost everything through, untouched + // ------------------------------------------------------- + assign sink_ready = src_ready; + assign src_valid = sink_valid; + assign src_startofpacket = sink_startofpacket; + assign src_endofpacket = sink_endofpacket; + + wire [PKT_DEST_ID_W-1:0] default_destid; + wire [18-1 : 0] default_src_channel; + + + + + + nios_system_id_router_003_default_decode the_default_decode( + .default_destination_id (default_destid), + .default_wr_channel (), + .default_rd_channel (), + .default_src_channel (default_src_channel) + ); + + always @* begin + src_data = sink_data; + src_channel = default_src_channel; + + // -------------------------------------------------- + // DestinationID Decoder + // Sets the channel based on the destination ID. + // -------------------------------------------------- + destid = sink_data[PKT_DEST_ID_H : PKT_DEST_ID_L]; + + + + if (destid == 0 ) begin + src_channel = 18'b1; + end + + +end + + + // -------------------------------------------------- + // Ceil(log2()) function + // -------------------------------------------------- + function integer log2ceil; + input reg[65:0] val; + reg [65:0] i; + + begin + i = 1; + log2ceil = 0; + + while (i < val) begin + log2ceil = log2ceil + 1; + i = i << 1; + end + end + endfunction + +endmodule + + diff --git a/nios_system/synthesis/submodules/nios_system_irq_mapper.sv b/nios_system/synthesis/submodules/nios_system_irq_mapper.sv new file mode 100644 index 0000000..d318630 --- /dev/null +++ b/nios_system/synthesis/submodules/nios_system_irq_mapper.sv @@ -0,0 +1,59 @@ +// (C) 2001-2013 Altera Corporation. All rights reserved. +// Your use of Altera Corporation's design tools, logic functions and other +// software and tools, and its AMPP partner logic functions, and any output +// files any of the foregoing (including device programming or simulation +// files), and any associated documentation or information are expressly subject +// to the terms and conditions of the Altera Program License Subscription +// Agreement, Altera MegaCore Function License Agreement, or other applicable +// license agreement, including, without limitation, that your use is for the +// sole purpose of programming logic devices manufactured by Altera and sold by +// Altera or its authorized distributors. Please refer to the applicable +// agreement for further details. + + +// $Id: //acds/rel/13.0sp1/ip/merlin/altera_irq_mapper/altera_irq_mapper.sv.terp#1 $ +// $Revision: #1 $ +// $Date: 2013/03/07 $ +// $Author: swbranch $ + +// ------------------------------------------------------- +// Altera IRQ Mapper +// +// Parameters +// NUM_RCVRS : 1 +// SENDER_IRW_WIDTH : 32 +// IRQ_MAP : 0:5 +// +// ------------------------------------------------------- + +`timescale 1 ns / 1 ns + +module nios_system_irq_mapper +( + // ------------------- + // Clock & Reset + // ------------------- + input clk, + input reset, + + // ------------------- + // IRQ Receivers + // ------------------- + input receiver0_irq, + + // ------------------- + // Command Source (Output) + // ------------------- + output reg [31 : 0] sender_irq +); + + + always @* begin + sender_irq = 0; + + sender_irq[5] = receiver0_irq; + end + +endmodule + + diff --git a/nios_system/synthesis/submodules/nios_system_jtag_uart.v b/nios_system/synthesis/submodules/nios_system_jtag_uart.v new file mode 100644 index 0000000..11ff56f --- /dev/null +++ b/nios_system/synthesis/submodules/nios_system_jtag_uart.v @@ -0,0 +1,583 @@ +//Legal Notice: (C)2016 Altera Corporation. All rights reserved. Your +//use of Altera Corporation's design tools, logic functions and other +//software and tools, and its AMPP partner logic functions, and any +//output files any of the foregoing (including device programming or +//simulation files), and any associated documentation or information are +//expressly subject to the terms and conditions of the Altera Program +//License Subscription Agreement or other applicable license agreement, +//including, without limitation, that your use is for the sole purpose +//of programming logic devices manufactured by Altera and sold by Altera +//or its authorized distributors. Please refer to the applicable +//agreement for further details. + +// synthesis translate_off +`timescale 1ns / 1ps +// synthesis translate_on + +// turn off superfluous verilog processor warnings +// altera message_level Level1 +// altera message_off 10034 10035 10036 10037 10230 10240 10030 + +module nios_system_jtag_uart_sim_scfifo_w ( + // inputs: + clk, + fifo_wdata, + fifo_wr, + + // outputs: + fifo_FF, + r_dat, + wfifo_empty, + wfifo_used + ) +; + + output fifo_FF; + output [ 7: 0] r_dat; + output wfifo_empty; + output [ 5: 0] wfifo_used; + input clk; + input [ 7: 0] fifo_wdata; + input fifo_wr; + + wire fifo_FF; + wire [ 7: 0] r_dat; + wire wfifo_empty; + wire [ 5: 0] wfifo_used; + +//synthesis translate_off +//////////////// SIMULATION-ONLY CONTENTS + always @(posedge clk) + begin + if (fifo_wr) + $write("%c", fifo_wdata); + end + + + assign wfifo_used = {6{1'b0}}; + assign r_dat = {8{1'b0}}; + assign fifo_FF = 1'b0; + assign wfifo_empty = 1'b1; + +//////////////// END SIMULATION-ONLY CONTENTS + +//synthesis translate_on + +endmodule + + +// synthesis translate_off +`timescale 1ns / 1ps +// synthesis translate_on + +// turn off superfluous verilog processor warnings +// altera message_level Level1 +// altera message_off 10034 10035 10036 10037 10230 10240 10030 + +module nios_system_jtag_uart_scfifo_w ( + // inputs: + clk, + fifo_clear, + fifo_wdata, + fifo_wr, + rd_wfifo, + + // outputs: + fifo_FF, + r_dat, + wfifo_empty, + wfifo_used + ) +; + + output fifo_FF; + output [ 7: 0] r_dat; + output wfifo_empty; + output [ 5: 0] wfifo_used; + input clk; + input fifo_clear; + input [ 7: 0] fifo_wdata; + input fifo_wr; + input rd_wfifo; + + wire fifo_FF; + wire [ 7: 0] r_dat; + wire wfifo_empty; + wire [ 5: 0] wfifo_used; + +//synthesis translate_off +//////////////// SIMULATION-ONLY CONTENTS + nios_system_jtag_uart_sim_scfifo_w the_nios_system_jtag_uart_sim_scfifo_w + ( + .clk (clk), + .fifo_FF (fifo_FF), + .fifo_wdata (fifo_wdata), + .fifo_wr (fifo_wr), + .r_dat (r_dat), + .wfifo_empty (wfifo_empty), + .wfifo_used (wfifo_used) + ); + + +//////////////// END SIMULATION-ONLY CONTENTS + +//synthesis translate_on +//synthesis read_comments_as_HDL on +// scfifo wfifo +// ( +// .aclr (fifo_clear), +// .clock (clk), +// .data (fifo_wdata), +// .empty (wfifo_empty), +// .full (fifo_FF), +// .q (r_dat), +// .rdreq (rd_wfifo), +// .usedw (wfifo_used), +// .wrreq (fifo_wr) +// ); +// +// defparam wfifo.lpm_hint = "RAM_BLOCK_TYPE=AUTO", +// wfifo.lpm_numwords = 64, +// wfifo.lpm_showahead = "OFF", +// wfifo.lpm_type = "scfifo", +// wfifo.lpm_width = 8, +// wfifo.lpm_widthu = 6, +// wfifo.overflow_checking = "OFF", +// wfifo.underflow_checking = "OFF", +// wfifo.use_eab = "ON"; +// +//synthesis read_comments_as_HDL off + +endmodule + + +// synthesis translate_off +`timescale 1ns / 1ps +// synthesis translate_on + +// turn off superfluous verilog processor warnings +// altera message_level Level1 +// altera message_off 10034 10035 10036 10037 10230 10240 10030 + +module nios_system_jtag_uart_sim_scfifo_r ( + // inputs: + clk, + fifo_rd, + rst_n, + + // outputs: + fifo_EF, + fifo_rdata, + rfifo_full, + rfifo_used + ) +; + + output fifo_EF; + output [ 7: 0] fifo_rdata; + output rfifo_full; + output [ 5: 0] rfifo_used; + input clk; + input fifo_rd; + input rst_n; + + reg [ 31: 0] bytes_left; + wire fifo_EF; + reg fifo_rd_d; + wire [ 7: 0] fifo_rdata; + wire new_rom; + wire [ 31: 0] num_bytes; + wire [ 6: 0] rfifo_entries; + wire rfifo_full; + wire [ 5: 0] rfifo_used; + +//synthesis translate_off +//////////////// SIMULATION-ONLY CONTENTS + // Generate rfifo_entries for simulation + always @(posedge clk or negedge rst_n) + begin + if (rst_n == 0) + begin + bytes_left <= 32'h0; + fifo_rd_d <= 1'b0; + end + else + begin + fifo_rd_d <= fifo_rd; + // decrement on read + if (fifo_rd_d) + bytes_left <= bytes_left - 1'b1; + // catch new contents + if (new_rom) + bytes_left <= num_bytes; + end + end + + + assign fifo_EF = bytes_left == 32'b0; + assign rfifo_full = bytes_left > 7'h40; + assign rfifo_entries = (rfifo_full) ? 7'h40 : bytes_left; + assign rfifo_used = rfifo_entries[5 : 0]; + assign new_rom = 1'b0; + assign num_bytes = 32'b0; + assign fifo_rdata = 8'b0; + +//////////////// END SIMULATION-ONLY CONTENTS + +//synthesis translate_on + +endmodule + + +// synthesis translate_off +`timescale 1ns / 1ps +// synthesis translate_on + +// turn off superfluous verilog processor warnings +// altera message_level Level1 +// altera message_off 10034 10035 10036 10037 10230 10240 10030 + +module nios_system_jtag_uart_scfifo_r ( + // inputs: + clk, + fifo_clear, + fifo_rd, + rst_n, + t_dat, + wr_rfifo, + + // outputs: + fifo_EF, + fifo_rdata, + rfifo_full, + rfifo_used + ) +; + + output fifo_EF; + output [ 7: 0] fifo_rdata; + output rfifo_full; + output [ 5: 0] rfifo_used; + input clk; + input fifo_clear; + input fifo_rd; + input rst_n; + input [ 7: 0] t_dat; + input wr_rfifo; + + wire fifo_EF; + wire [ 7: 0] fifo_rdata; + wire rfifo_full; + wire [ 5: 0] rfifo_used; + +//synthesis translate_off +//////////////// SIMULATION-ONLY CONTENTS + nios_system_jtag_uart_sim_scfifo_r the_nios_system_jtag_uart_sim_scfifo_r + ( + .clk (clk), + .fifo_EF (fifo_EF), + .fifo_rd (fifo_rd), + .fifo_rdata (fifo_rdata), + .rfifo_full (rfifo_full), + .rfifo_used (rfifo_used), + .rst_n (rst_n) + ); + + +//////////////// END SIMULATION-ONLY CONTENTS + +//synthesis translate_on +//synthesis read_comments_as_HDL on +// scfifo rfifo +// ( +// .aclr (fifo_clear), +// .clock (clk), +// .data (t_dat), +// .empty (fifo_EF), +// .full (rfifo_full), +// .q (fifo_rdata), +// .rdreq (fifo_rd), +// .usedw (rfifo_used), +// .wrreq (wr_rfifo) +// ); +// +// defparam rfifo.lpm_hint = "RAM_BLOCK_TYPE=AUTO", +// rfifo.lpm_numwords = 64, +// rfifo.lpm_showahead = "OFF", +// rfifo.lpm_type = "scfifo", +// rfifo.lpm_width = 8, +// rfifo.lpm_widthu = 6, +// rfifo.overflow_checking = "OFF", +// rfifo.underflow_checking = "OFF", +// rfifo.use_eab = "ON"; +// +//synthesis read_comments_as_HDL off + +endmodule + + +// synthesis translate_off +`timescale 1ns / 1ps +// synthesis translate_on + +// turn off superfluous verilog processor warnings +// altera message_level Level1 +// altera message_off 10034 10035 10036 10037 10230 10240 10030 + +module nios_system_jtag_uart ( + // inputs: + av_address, + av_chipselect, + av_read_n, + av_write_n, + av_writedata, + clk, + rst_n, + + // outputs: + av_irq, + av_readdata, + av_waitrequest, + dataavailable, + readyfordata + ) + /* synthesis ALTERA_ATTRIBUTE = "SUPPRESS_DA_RULE_INTERNAL=\"R101,C106,D101,D103\"" */ ; + + output av_irq; + output [ 31: 0] av_readdata; + output av_waitrequest; + output dataavailable; + output readyfordata; + input av_address; + input av_chipselect; + input av_read_n; + input av_write_n; + input [ 31: 0] av_writedata; + input clk; + input rst_n; + + reg ac; + wire activity; + wire av_irq; + wire [ 31: 0] av_readdata; + reg av_waitrequest; + reg dataavailable; + reg fifo_AE; + reg fifo_AF; + wire fifo_EF; + wire fifo_FF; + wire fifo_clear; + wire fifo_rd; + wire [ 7: 0] fifo_rdata; + wire [ 7: 0] fifo_wdata; + reg fifo_wr; + reg ien_AE; + reg ien_AF; + wire ipen_AE; + wire ipen_AF; + reg pause_irq; + wire [ 7: 0] r_dat; + wire r_ena; + reg r_val; + wire rd_wfifo; + reg read_0; + reg readyfordata; + wire rfifo_full; + wire [ 5: 0] rfifo_used; + reg rvalid; + reg sim_r_ena; + reg sim_t_dat; + reg sim_t_ena; + reg sim_t_pause; + wire [ 7: 0] t_dat; + reg t_dav; + wire t_ena; + wire t_pause; + wire wfifo_empty; + wire [ 5: 0] wfifo_used; + reg woverflow; + wire wr_rfifo; + //avalon_jtag_slave, which is an e_avalon_slave + assign rd_wfifo = r_ena & ~wfifo_empty; + assign wr_rfifo = t_ena & ~rfifo_full; + assign fifo_clear = ~rst_n; + nios_system_jtag_uart_scfifo_w the_nios_system_jtag_uart_scfifo_w + ( + .clk (clk), + .fifo_FF (fifo_FF), + .fifo_clear (fifo_clear), + .fifo_wdata (fifo_wdata), + .fifo_wr (fifo_wr), + .r_dat (r_dat), + .rd_wfifo (rd_wfifo), + .wfifo_empty (wfifo_empty), + .wfifo_used (wfifo_used) + ); + + nios_system_jtag_uart_scfifo_r the_nios_system_jtag_uart_scfifo_r + ( + .clk (clk), + .fifo_EF (fifo_EF), + .fifo_clear (fifo_clear), + .fifo_rd (fifo_rd), + .fifo_rdata (fifo_rdata), + .rfifo_full (rfifo_full), + .rfifo_used (rfifo_used), + .rst_n (rst_n), + .t_dat (t_dat), + .wr_rfifo (wr_rfifo) + ); + + assign ipen_AE = ien_AE & fifo_AE; + assign ipen_AF = ien_AF & (pause_irq | fifo_AF); + assign av_irq = ipen_AE | ipen_AF; + assign activity = t_pause | t_ena; + always @(posedge clk or negedge rst_n) + begin + if (rst_n == 0) + pause_irq <= 1'b0; + else // only if fifo is not empty... + if (t_pause & ~fifo_EF) + pause_irq <= 1'b1; + else if (read_0) + pause_irq <= 1'b0; + end + + + always @(posedge clk or negedge rst_n) + begin + if (rst_n == 0) + begin + r_val <= 1'b0; + t_dav <= 1'b1; + end + else + begin + r_val <= r_ena & ~wfifo_empty; + t_dav <= ~rfifo_full; + end + end + + + always @(posedge clk or negedge rst_n) + begin + if (rst_n == 0) + begin + fifo_AE <= 1'b0; + fifo_AF <= 1'b0; + fifo_wr <= 1'b0; + rvalid <= 1'b0; + read_0 <= 1'b0; + ien_AE <= 1'b0; + ien_AF <= 1'b0; + ac <= 1'b0; + woverflow <= 1'b0; + av_waitrequest <= 1'b1; + end + else + begin + fifo_AE <= {fifo_FF,wfifo_used} <= 8; + fifo_AF <= (7'h40 - {rfifo_full,rfifo_used}) <= 8; + fifo_wr <= 1'b0; + read_0 <= 1'b0; + av_waitrequest <= ~(av_chipselect & (~av_write_n | ~av_read_n) & av_waitrequest); + if (activity) + ac <= 1'b1; + // write + if (av_chipselect & ~av_write_n & av_waitrequest) + // addr 1 is control; addr 0 is data + if (av_address) + begin + ien_AF <= av_writedata[0]; + ien_AE <= av_writedata[1]; + if (av_writedata[10] & ~activity) + ac <= 1'b0; + end + else + begin + fifo_wr <= ~fifo_FF; + woverflow <= fifo_FF; + end + // read + if (av_chipselect & ~av_read_n & av_waitrequest) + begin + // addr 1 is interrupt; addr 0 is data + if (~av_address) + rvalid <= ~fifo_EF; + read_0 <= ~av_address; + end + end + end + + + assign fifo_wdata = av_writedata[7 : 0]; + assign fifo_rd = (av_chipselect & ~av_read_n & av_waitrequest & ~av_address) ? ~fifo_EF : 1'b0; + assign av_readdata = read_0 ? { {9{1'b0}},rfifo_full,rfifo_used,rvalid,woverflow,~fifo_FF,~fifo_EF,1'b0,ac,ipen_AE,ipen_AF,fifo_rdata } : { {9{1'b0}},(7'h40 - {fifo_FF,wfifo_used}),rvalid,woverflow,~fifo_FF,~fifo_EF,1'b0,ac,ipen_AE,ipen_AF,{6{1'b0}},ien_AE,ien_AF }; + always @(posedge clk or negedge rst_n) + begin + if (rst_n == 0) + readyfordata <= 0; + else + readyfordata <= ~fifo_FF; + end + + + +//synthesis translate_off +//////////////// SIMULATION-ONLY CONTENTS + // Tie off Atlantic Interface signals not used for simulation + always @(posedge clk) + begin + sim_t_pause <= 1'b0; + sim_t_ena <= 1'b0; + sim_t_dat <= t_dav ? r_dat : {8{r_val}}; + sim_r_ena <= 1'b0; + end + + + assign r_ena = sim_r_ena; + assign t_ena = sim_t_ena; + assign t_dat = sim_t_dat; + assign t_pause = sim_t_pause; + always @(fifo_EF) + begin + dataavailable = ~fifo_EF; + end + + + +//////////////// END SIMULATION-ONLY CONTENTS + +//synthesis translate_on +//synthesis read_comments_as_HDL on +// alt_jtag_atlantic nios_system_jtag_uart_alt_jtag_atlantic +// ( +// .clk (clk), +// .r_dat (r_dat), +// .r_ena (r_ena), +// .r_val (r_val), +// .rst_n (rst_n), +// .t_dat (t_dat), +// .t_dav (t_dav), +// .t_ena (t_ena), +// .t_pause (t_pause) +// ); +// +// defparam nios_system_jtag_uart_alt_jtag_atlantic.INSTANCE_ID = 0, +// nios_system_jtag_uart_alt_jtag_atlantic.LOG2_RXFIFO_DEPTH = 6, +// nios_system_jtag_uart_alt_jtag_atlantic.LOG2_TXFIFO_DEPTH = 6, +// nios_system_jtag_uart_alt_jtag_atlantic.SLD_AUTO_INSTANCE_INDEX = "YES"; +// +// always @(posedge clk or negedge rst_n) +// begin +// if (rst_n == 0) +// dataavailable <= 0; +// else +// dataavailable <= ~fifo_EF; +// end +// +// +//synthesis read_comments_as_HDL off + +endmodule + diff --git a/nios_system/synthesis/submodules/nios_system_lcd.v b/nios_system/synthesis/submodules/nios_system_lcd.v new file mode 100644 index 0000000..942f142 --- /dev/null +++ b/nios_system/synthesis/submodules/nios_system_lcd.v @@ -0,0 +1,66 @@ +//Legal Notice: (C)2016 Altera Corporation. All rights reserved. Your +//use of Altera Corporation's design tools, logic functions and other +//software and tools, and its AMPP partner logic functions, and any +//output files any of the foregoing (including device programming or +//simulation files), and any associated documentation or information are +//expressly subject to the terms and conditions of the Altera Program +//License Subscription Agreement or other applicable license agreement, +//including, without limitation, that your use is for the sole purpose +//of programming logic devices manufactured by Altera and sold by Altera +//or its authorized distributors. Please refer to the applicable +//agreement for further details. + +// synthesis translate_off +`timescale 1ns / 1ps +// synthesis translate_on + +// turn off superfluous verilog processor warnings +// altera message_level Level1 +// altera message_off 10034 10035 10036 10037 10230 10240 10030 + +module nios_system_lcd ( + // inputs: + address, + begintransfer, + clk, + read, + reset_n, + write, + writedata, + + // outputs: + LCD_E, + LCD_RS, + LCD_RW, + LCD_data, + readdata + ) +; + + output LCD_E; + output LCD_RS; + output LCD_RW; + inout [ 7: 0] LCD_data; + output [ 7: 0] readdata; + input [ 1: 0] address; + input begintransfer; + input clk; + input read; + input reset_n; + input write; + input [ 7: 0] writedata; + + wire LCD_E; + wire LCD_RS; + wire LCD_RW; + wire [ 7: 0] LCD_data; + wire [ 7: 0] readdata; + assign LCD_RW = address[0]; + assign LCD_RS = address[1]; + assign LCD_E = read | write; + assign LCD_data = (address[0]) ? {8{1'bz}} : writedata; + assign readdata = LCD_data; + //control_slave, which is an e_avalon_slave + +endmodule + diff --git a/nios_system/synthesis/submodules/nios_system_lcd_16207_0.v b/nios_system/synthesis/submodules/nios_system_lcd_16207_0.v new file mode 100644 index 0000000..221f3db --- /dev/null +++ b/nios_system/synthesis/submodules/nios_system_lcd_16207_0.v @@ -0,0 +1,66 @@ +//Legal Notice: (C)2016 Altera Corporation. All rights reserved. Your +//use of Altera Corporation's design tools, logic functions and other +//software and tools, and its AMPP partner logic functions, and any +//output files any of the foregoing (including device programming or +//simulation files), and any associated documentation or information are +//expressly subject to the terms and conditions of the Altera Program +//License Subscription Agreement or other applicable license agreement, +//including, without limitation, that your use is for the sole purpose +//of programming logic devices manufactured by Altera and sold by Altera +//or its authorized distributors. Please refer to the applicable +//agreement for further details. + +// synthesis translate_off +`timescale 1ns / 1ps +// synthesis translate_on + +// turn off superfluous verilog processor warnings +// altera message_level Level1 +// altera message_off 10034 10035 10036 10037 10230 10240 10030 + +module nios_system_lcd_16207_0 ( + // inputs: + address, + begintransfer, + clk, + read, + reset_n, + write, + writedata, + + // outputs: + LCD_E, + LCD_RS, + LCD_RW, + LCD_data, + readdata + ) +; + + output LCD_E; + output LCD_RS; + output LCD_RW; + inout [ 7: 0] LCD_data; + output [ 7: 0] readdata; + input [ 1: 0] address; + input begintransfer; + input clk; + input read; + input reset_n; + input write; + input [ 7: 0] writedata; + + wire LCD_E; + wire LCD_RS; + wire LCD_RW; + wire [ 7: 0] LCD_data; + wire [ 7: 0] readdata; + assign LCD_RW = address[0]; + assign LCD_RS = address[1]; + assign LCD_E = read | write; + assign LCD_data = (address[0]) ? {8{1'bz}} : writedata; + assign readdata = LCD_data; + //control_slave, which is an e_avalon_slave + +endmodule + diff --git a/nios_system/synthesis/submodules/nios_system_lcd_E.v b/nios_system/synthesis/submodules/nios_system_lcd_E.v new file mode 100644 index 0000000..0d9a8b1 --- /dev/null +++ b/nios_system/synthesis/submodules/nios_system_lcd_E.v @@ -0,0 +1,66 @@ +//Legal Notice: (C)2016 Altera Corporation. All rights reserved. Your +//use of Altera Corporation's design tools, logic functions and other +//software and tools, and its AMPP partner logic functions, and any +//output files any of the foregoing (including device programming or +//simulation files), and any associated documentation or information are +//expressly subject to the terms and conditions of the Altera Program +//License Subscription Agreement or other applicable license agreement, +//including, without limitation, that your use is for the sole purpose +//of programming logic devices manufactured by Altera and sold by Altera +//or its authorized distributors. Please refer to the applicable +//agreement for further details. + +// synthesis translate_off +`timescale 1ns / 1ps +// synthesis translate_on + +// turn off superfluous verilog processor warnings +// altera message_level Level1 +// altera message_off 10034 10035 10036 10037 10230 10240 10030 + +module nios_system_lcd_E ( + // inputs: + address, + chipselect, + clk, + reset_n, + write_n, + writedata, + + // outputs: + out_port, + readdata + ) +; + + output out_port; + output [ 31: 0] readdata; + input [ 1: 0] address; + input chipselect; + input clk; + input reset_n; + input write_n; + input [ 31: 0] writedata; + + wire clk_en; + reg data_out; + wire out_port; + wire read_mux_out; + wire [ 31: 0] readdata; + assign clk_en = 1; + //s1, which is an e_avalon_slave + assign read_mux_out = {1 {(address == 0)}} & data_out; + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + data_out <= 0; + else if (chipselect && ~write_n && (address == 0)) + data_out <= writedata; + end + + + assign readdata = {32'b0 | read_mux_out}; + assign out_port = data_out; + +endmodule + diff --git a/nios_system/synthesis/submodules/nios_system_lcd_on.v b/nios_system/synthesis/submodules/nios_system_lcd_on.v new file mode 100644 index 0000000..ed02e25 --- /dev/null +++ b/nios_system/synthesis/submodules/nios_system_lcd_on.v @@ -0,0 +1,66 @@ +//Legal Notice: (C)2016 Altera Corporation. All rights reserved. Your +//use of Altera Corporation's design tools, logic functions and other +//software and tools, and its AMPP partner logic functions, and any +//output files any of the foregoing (including device programming or +//simulation files), and any associated documentation or information are +//expressly subject to the terms and conditions of the Altera Program +//License Subscription Agreement or other applicable license agreement, +//including, without limitation, that your use is for the sole purpose +//of programming logic devices manufactured by Altera and sold by Altera +//or its authorized distributors. Please refer to the applicable +//agreement for further details. + +// synthesis translate_off +`timescale 1ns / 1ps +// synthesis translate_on + +// turn off superfluous verilog processor warnings +// altera message_level Level1 +// altera message_off 10034 10035 10036 10037 10230 10240 10030 + +module nios_system_lcd_on ( + // inputs: + address, + chipselect, + clk, + reset_n, + write_n, + writedata, + + // outputs: + out_port, + readdata + ) +; + + output out_port; + output [ 31: 0] readdata; + input [ 1: 0] address; + input chipselect; + input clk; + input reset_n; + input write_n; + input [ 31: 0] writedata; + + wire clk_en; + reg data_out; + wire out_port; + wire read_mux_out; + wire [ 31: 0] readdata; + assign clk_en = 1; + //s1, which is an e_avalon_slave + assign read_mux_out = {1 {(address == 0)}} & data_out; + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + data_out <= 0; + else if (chipselect && ~write_n && (address == 0)) + data_out <= writedata; + end + + + assign readdata = {32'b0 | read_mux_out}; + assign out_port = data_out; + +endmodule + diff --git a/nios_system/synthesis/submodules/nios_system_nios2_processor.sdc b/nios_system/synthesis/submodules/nios_system_nios2_processor.sdc new file mode 100644 index 0000000..41645ff --- /dev/null +++ b/nios_system/synthesis/submodules/nios_system_nios2_processor.sdc @@ -0,0 +1,53 @@ +# Legal Notice: (C)2016 Altera Corporation. All rights reserved. Your +# use of Altera Corporation's design tools, logic functions and other +# software and tools, and its AMPP partner logic functions, and any +# output files any of the foregoing (including device programming or +# simulation files), and any associated documentation or information are +# expressly subject to the terms and conditions of the Altera Program +# License Subscription Agreement or other applicable license agreement, +# including, without limitation, that your use is for the sole purpose +# of programming logic devices manufactured by Altera and sold by Altera +# or its authorized distributors. Please refer to the applicable +# agreement for further details. + +#************************************************************** +# Timequest JTAG clock definition +# Uncommenting the following lines will define the JTAG +# clock in TimeQuest Timing Analyzer +#************************************************************** + +#create_clock -period 10MHz {altera_reserved_tck} +#set_clock_groups -asynchronous -group {altera_reserved_tck} + +#************************************************************** +# Set TCL Path Variables +#************************************************************** + +set nios_system_nios2_processor nios_system_nios2_processor:* +set nios_system_nios2_processor_oci nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci +set nios_system_nios2_processor_oci_break nios_system_nios2_processor_nios2_oci_break:the_nios_system_nios2_processor_nios2_oci_break +set nios_system_nios2_processor_ocimem nios_system_nios2_processor_nios2_ocimem:the_nios_system_nios2_processor_nios2_ocimem +set nios_system_nios2_processor_oci_debug nios_system_nios2_processor_nios2_oci_debug:the_nios_system_nios2_processor_nios2_oci_debug +set nios_system_nios2_processor_wrapper nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper +set nios_system_nios2_processor_jtag_tck nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck +set nios_system_nios2_processor_jtag_sysclk nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk +set nios_system_nios2_processor_oci_path [format "%s|%s" $nios_system_nios2_processor $nios_system_nios2_processor_oci] +set nios_system_nios2_processor_oci_break_path [format "%s|%s" $nios_system_nios2_processor_oci_path $nios_system_nios2_processor_oci_break] +set nios_system_nios2_processor_ocimem_path [format "%s|%s" $nios_system_nios2_processor_oci_path $nios_system_nios2_processor_ocimem] +set nios_system_nios2_processor_oci_debug_path [format "%s|%s" $nios_system_nios2_processor_oci_path $nios_system_nios2_processor_oci_debug] +set nios_system_nios2_processor_jtag_tck_path [format "%s|%s|%s" $nios_system_nios2_processor_oci_path $nios_system_nios2_processor_wrapper $nios_system_nios2_processor_jtag_tck] +set nios_system_nios2_processor_jtag_sysclk_path [format "%s|%s|%s" $nios_system_nios2_processor_oci_path $nios_system_nios2_processor_wrapper $nios_system_nios2_processor_jtag_sysclk] +set nios_system_nios2_processor_jtag_sr [format "%s|*sr" $nios_system_nios2_processor_jtag_tck_path] + +#************************************************************** +# Set False Paths +#************************************************************** + +set_false_path -from [get_keepers *$nios_system_nios2_processor_oci_break_path|break_readreg*] -to [get_keepers *$nios_system_nios2_processor_jtag_sr*] +set_false_path -from [get_keepers *$nios_system_nios2_processor_oci_debug_path|*resetlatch] -to [get_keepers *$nios_system_nios2_processor_jtag_sr[33]] +set_false_path -from [get_keepers *$nios_system_nios2_processor_oci_debug_path|monitor_ready] -to [get_keepers *$nios_system_nios2_processor_jtag_sr[0]] +set_false_path -from [get_keepers *$nios_system_nios2_processor_oci_debug_path|monitor_error] -to [get_keepers *$nios_system_nios2_processor_jtag_sr[34]] +set_false_path -from [get_keepers *$nios_system_nios2_processor_ocimem_path|*MonDReg*] -to [get_keepers *$nios_system_nios2_processor_jtag_sr*] +set_false_path -from *$nios_system_nios2_processor_jtag_sr* -to *$nios_system_nios2_processor_jtag_sysclk_path|*jdo* +set_false_path -from sld_hub:*|irf_reg* -to *$nios_system_nios2_processor_jtag_sysclk_path|ir* +set_false_path -from sld_hub:*|sld_shadow_jsm:shadow_jsm|state[1] -to *$nios_system_nios2_processor_oci_debug_path|monitor_go diff --git a/nios_system/synthesis/submodules/nios_system_nios2_processor.v b/nios_system/synthesis/submodules/nios_system_nios2_processor.v new file mode 100644 index 0000000..e1640d4 --- /dev/null +++ b/nios_system/synthesis/submodules/nios_system_nios2_processor.v @@ -0,0 +1,5672 @@ +//Legal Notice: (C)2016 Altera Corporation. All rights reserved. Your +//use of Altera Corporation's design tools, logic functions and other +//software and tools, and its AMPP partner logic functions, and any +//output files any of the foregoing (including device programming or +//simulation files), and any associated documentation or information are +//expressly subject to the terms and conditions of the Altera Program +//License Subscription Agreement or other applicable license agreement, +//including, without limitation, that your use is for the sole purpose +//of programming logic devices manufactured by Altera and sold by Altera +//or its authorized distributors. Please refer to the applicable +//agreement for further details. + +// synthesis translate_off +`timescale 1ns / 1ps +// synthesis translate_on + +// turn off superfluous verilog processor warnings +// altera message_level Level1 +// altera message_off 10034 10035 10036 10037 10230 10240 10030 + +module nios_system_nios2_processor_register_bank_a_module ( + // inputs: + clock, + data, + rdaddress, + wraddress, + wren, + + // outputs: + q + ) +; + + parameter lpm_file = "UNUSED"; + + + output [ 31: 0] q; + input clock; + input [ 31: 0] data; + input [ 4: 0] rdaddress; + input [ 4: 0] wraddress; + input wren; + + wire [ 31: 0] q; + wire [ 31: 0] ram_q; + assign q = ram_q; + altsyncram the_altsyncram + ( + .address_a (wraddress), + .address_b (rdaddress), + .clock0 (clock), + .data_a (data), + .q_b (ram_q), + .wren_a (wren) + ); + + defparam the_altsyncram.address_reg_b = "CLOCK0", + the_altsyncram.init_file = lpm_file, + the_altsyncram.maximum_depth = 0, + the_altsyncram.numwords_a = 32, + the_altsyncram.numwords_b = 32, + the_altsyncram.operation_mode = "DUAL_PORT", + the_altsyncram.outdata_reg_b = "UNREGISTERED", + the_altsyncram.ram_block_type = "AUTO", + the_altsyncram.rdcontrol_reg_b = "CLOCK0", + the_altsyncram.read_during_write_mode_mixed_ports = "DONT_CARE", + the_altsyncram.width_a = 32, + the_altsyncram.width_b = 32, + the_altsyncram.widthad_a = 5, + the_altsyncram.widthad_b = 5; + + +endmodule + + +// synthesis translate_off +`timescale 1ns / 1ps +// synthesis translate_on + +// turn off superfluous verilog processor warnings +// altera message_level Level1 +// altera message_off 10034 10035 10036 10037 10230 10240 10030 + +module nios_system_nios2_processor_register_bank_b_module ( + // inputs: + clock, + data, + rdaddress, + wraddress, + wren, + + // outputs: + q + ) +; + + parameter lpm_file = "UNUSED"; + + + output [ 31: 0] q; + input clock; + input [ 31: 0] data; + input [ 4: 0] rdaddress; + input [ 4: 0] wraddress; + input wren; + + wire [ 31: 0] q; + wire [ 31: 0] ram_q; + assign q = ram_q; + altsyncram the_altsyncram + ( + .address_a (wraddress), + .address_b (rdaddress), + .clock0 (clock), + .data_a (data), + .q_b (ram_q), + .wren_a (wren) + ); + + defparam the_altsyncram.address_reg_b = "CLOCK0", + the_altsyncram.init_file = lpm_file, + the_altsyncram.maximum_depth = 0, + the_altsyncram.numwords_a = 32, + the_altsyncram.numwords_b = 32, + the_altsyncram.operation_mode = "DUAL_PORT", + the_altsyncram.outdata_reg_b = "UNREGISTERED", + the_altsyncram.ram_block_type = "AUTO", + the_altsyncram.rdcontrol_reg_b = "CLOCK0", + the_altsyncram.read_during_write_mode_mixed_ports = "DONT_CARE", + the_altsyncram.width_a = 32, + the_altsyncram.width_b = 32, + the_altsyncram.widthad_a = 5, + the_altsyncram.widthad_b = 5; + + +endmodule + + +// synthesis translate_off +`timescale 1ns / 1ps +// synthesis translate_on + +// turn off superfluous verilog processor warnings +// altera message_level Level1 +// altera message_off 10034 10035 10036 10037 10230 10240 10030 + +module nios_system_nios2_processor_nios2_oci_debug ( + // inputs: + clk, + dbrk_break, + debugreq, + hbreak_enabled, + jdo, + jrst_n, + ocireg_ers, + ocireg_mrs, + reset, + st_ready_test_idle, + take_action_ocimem_a, + take_action_ocireg, + xbrk_break, + + // outputs: + debugack, + monitor_error, + monitor_go, + monitor_ready, + oci_hbreak_req, + resetlatch, + resetrequest + ) +; + + output debugack; + output monitor_error; + output monitor_go; + output monitor_ready; + output oci_hbreak_req; + output resetlatch; + output resetrequest; + input clk; + input dbrk_break; + input debugreq; + input hbreak_enabled; + input [ 37: 0] jdo; + input jrst_n; + input ocireg_ers; + input ocireg_mrs; + input reset; + input st_ready_test_idle; + input take_action_ocimem_a; + input take_action_ocireg; + input xbrk_break; + + reg break_on_reset /* synthesis ALTERA_ATTRIBUTE = "SUPPRESS_DA_RULE_INTERNAL=\"D101,R101\"" */; + wire debugack; + reg jtag_break /* synthesis ALTERA_ATTRIBUTE = "SUPPRESS_DA_RULE_INTERNAL=\"D101,R101\"" */; + reg monitor_error /* synthesis ALTERA_ATTRIBUTE = "SUPPRESS_DA_RULE_INTERNAL=D101" */; + reg monitor_go /* synthesis ALTERA_ATTRIBUTE = "SUPPRESS_DA_RULE_INTERNAL=D101" */; + reg monitor_ready /* synthesis ALTERA_ATTRIBUTE = "SUPPRESS_DA_RULE_INTERNAL=D101" */; + wire oci_hbreak_req; + wire reset_sync; + reg resetlatch /* synthesis ALTERA_ATTRIBUTE = "SUPPRESS_DA_RULE_INTERNAL=\"D101,R101\"" */; + reg resetrequest /* synthesis ALTERA_ATTRIBUTE = "SUPPRESS_DA_RULE_INTERNAL=\"D101,R101\"" */; + wire unxcomplemented_resetxx0; + assign unxcomplemented_resetxx0 = jrst_n; + altera_std_synchronizer the_altera_std_synchronizer + ( + .clk (clk), + .din (reset), + .dout (reset_sync), + .reset_n (unxcomplemented_resetxx0) + ); + + defparam the_altera_std_synchronizer.depth = 2; + + always @(posedge clk or negedge jrst_n) + begin + if (jrst_n == 0) + begin + break_on_reset <= 1'b0; + resetrequest <= 1'b0; + jtag_break <= 1'b0; + end + else if (take_action_ocimem_a) + begin + resetrequest <= jdo[22]; + jtag_break <= jdo[21] ? 1 + : jdo[20] ? 0 + : jtag_break; + + break_on_reset <= jdo[19] ? 1 + : jdo[18] ? 0 + : break_on_reset; + + resetlatch <= jdo[24] ? 0 : resetlatch; + end + else if (reset_sync) + begin + jtag_break <= break_on_reset; + resetlatch <= 1; + end + else if (debugreq & ~debugack & break_on_reset) + jtag_break <= 1'b1; + end + + + always @(posedge clk or negedge jrst_n) + begin + if (jrst_n == 0) + begin + monitor_ready <= 1'b0; + monitor_error <= 1'b0; + monitor_go <= 1'b0; + end + else + begin + if (take_action_ocimem_a && jdo[25]) + monitor_ready <= 1'b0; + else if (take_action_ocireg && ocireg_mrs) + monitor_ready <= 1'b1; + if (take_action_ocimem_a && jdo[25]) + monitor_error <= 1'b0; + else if (take_action_ocireg && ocireg_ers) + monitor_error <= 1'b1; + if (take_action_ocimem_a && jdo[23]) + monitor_go <= 1'b1; + else if (st_ready_test_idle) + monitor_go <= 1'b0; + end + end + + + assign oci_hbreak_req = jtag_break | dbrk_break | xbrk_break | debugreq; + assign debugack = ~hbreak_enabled; + +endmodule + + +// synthesis translate_off +`timescale 1ns / 1ps +// synthesis translate_on + +// turn off superfluous verilog processor warnings +// altera message_level Level1 +// altera message_off 10034 10035 10036 10037 10230 10240 10030 + +module nios_system_nios2_processor_ociram_sp_ram_module ( + // inputs: + address, + byteenable, + clock, + data, + wren, + + // outputs: + q + ) +; + + parameter lpm_file = "UNUSED"; + + + output [ 31: 0] q; + input [ 7: 0] address; + input [ 3: 0] byteenable; + input clock; + input [ 31: 0] data; + input wren; + + wire [ 31: 0] q; + wire [ 31: 0] ram_q; + assign q = ram_q; + altsyncram the_altsyncram + ( + .address_a (address), + .byteena_a (byteenable), + .clock0 (clock), + .data_a (data), + .q_a (ram_q), + .wren_a (wren) + ); + + defparam the_altsyncram.init_file = lpm_file, + the_altsyncram.maximum_depth = 0, + the_altsyncram.numwords_a = 256, + the_altsyncram.operation_mode = "SINGLE_PORT", + the_altsyncram.outdata_reg_a = "UNREGISTERED", + the_altsyncram.ram_block_type = "AUTO", + the_altsyncram.width_a = 32, + the_altsyncram.width_byteena_a = 4, + the_altsyncram.widthad_a = 8; + + +endmodule + + +// synthesis translate_off +`timescale 1ns / 1ps +// synthesis translate_on + +// turn off superfluous verilog processor warnings +// altera message_level Level1 +// altera message_off 10034 10035 10036 10037 10230 10240 10030 + +module nios_system_nios2_processor_nios2_ocimem ( + // inputs: + address, + byteenable, + clk, + debugaccess, + jdo, + jrst_n, + read, + take_action_ocimem_a, + take_action_ocimem_b, + take_no_action_ocimem_a, + write, + writedata, + + // outputs: + MonDReg, + ociram_readdata, + waitrequest + ) +; + + output [ 31: 0] MonDReg; + output [ 31: 0] ociram_readdata; + output waitrequest; + input [ 8: 0] address; + input [ 3: 0] byteenable; + input clk; + input debugaccess; + input [ 37: 0] jdo; + input jrst_n; + input read; + input take_action_ocimem_a; + input take_action_ocimem_b; + input take_no_action_ocimem_a; + input write; + input [ 31: 0] writedata; + + reg [ 10: 0] MonAReg /* synthesis ALTERA_ATTRIBUTE = "SUPPRESS_DA_RULE_INTERNAL=\"D101,D103,R101\"" */; + wire [ 8: 0] MonARegAddrInc; + wire MonARegAddrIncAccessingRAM; + reg [ 31: 0] MonDReg /* synthesis ALTERA_ATTRIBUTE = "SUPPRESS_DA_RULE_INTERNAL=\"D101,D103,R101\"" */; + reg avalon_ociram_readdata_ready /* synthesis ALTERA_ATTRIBUTE = "SUPPRESS_DA_RULE_INTERNAL=\"D101,D103,R101\"" */; + wire avalon_ram_wr; + wire [ 31: 0] cfgrom_readdata; + reg jtag_ram_access /* synthesis ALTERA_ATTRIBUTE = "SUPPRESS_DA_RULE_INTERNAL=\"D101,D103,R101\"" */; + reg jtag_ram_rd /* synthesis ALTERA_ATTRIBUTE = "SUPPRESS_DA_RULE_INTERNAL=\"D101,D103,R101\"" */; + reg jtag_ram_rd_d1 /* synthesis ALTERA_ATTRIBUTE = "SUPPRESS_DA_RULE_INTERNAL=\"D101,D103,R101\"" */; + reg jtag_ram_wr /* synthesis ALTERA_ATTRIBUTE = "SUPPRESS_DA_RULE_INTERNAL=\"D101,D103,R101\"" */; + reg jtag_rd /* synthesis ALTERA_ATTRIBUTE = "SUPPRESS_DA_RULE_INTERNAL=\"D101,D103,R101\"" */; + reg jtag_rd_d1 /* synthesis ALTERA_ATTRIBUTE = "SUPPRESS_DA_RULE_INTERNAL=\"D101,D103,R101\"" */; + wire [ 7: 0] ociram_addr; + wire [ 3: 0] ociram_byteenable; + wire [ 31: 0] ociram_readdata; + wire [ 31: 0] ociram_wr_data; + wire ociram_wr_en; + reg waitrequest /* synthesis ALTERA_ATTRIBUTE = "SUPPRESS_DA_RULE_INTERNAL=\"D101,D103,R101\"" */; + always @(posedge clk or negedge jrst_n) + begin + if (jrst_n == 0) + begin + jtag_rd <= 1'b0; + jtag_rd_d1 <= 1'b0; + jtag_ram_wr <= 1'b0; + jtag_ram_rd <= 1'b0; + jtag_ram_rd_d1 <= 1'b0; + jtag_ram_access <= 1'b0; + MonAReg <= 0; + MonDReg <= 0; + waitrequest <= 1'b1; + avalon_ociram_readdata_ready <= 1'b0; + end + else + begin + if (take_no_action_ocimem_a) + begin + MonAReg[10 : 2] <= MonARegAddrInc; + jtag_rd <= 1'b1; + jtag_ram_rd <= MonARegAddrIncAccessingRAM; + jtag_ram_access <= MonARegAddrIncAccessingRAM; + end + else if (take_action_ocimem_a) + begin + MonAReg[10 : 2] <= { jdo[17], + jdo[33 : 26] }; + + jtag_rd <= 1'b1; + jtag_ram_rd <= ~jdo[17]; + jtag_ram_access <= ~jdo[17]; + end + else if (take_action_ocimem_b) + begin + MonAReg[10 : 2] <= MonARegAddrInc; + MonDReg <= jdo[34 : 3]; + jtag_ram_wr <= MonARegAddrIncAccessingRAM; + jtag_ram_access <= MonARegAddrIncAccessingRAM; + end + else + begin + jtag_rd <= 0; + jtag_ram_wr <= 0; + jtag_ram_rd <= 0; + jtag_ram_access <= 0; + if (jtag_rd_d1) + MonDReg <= jtag_ram_rd_d1 ? ociram_readdata : cfgrom_readdata; + end + jtag_rd_d1 <= jtag_rd; + jtag_ram_rd_d1 <= jtag_ram_rd; + if (~waitrequest) + begin + waitrequest <= 1'b1; + avalon_ociram_readdata_ready <= 1'b0; + end + else if (write) + waitrequest <= ~address[8] & jtag_ram_access; + else if (read) + begin + avalon_ociram_readdata_ready <= ~(~address[8] & jtag_ram_access); + waitrequest <= ~avalon_ociram_readdata_ready; + end + else + begin + waitrequest <= 1'b1; + avalon_ociram_readdata_ready <= 1'b0; + end + end + end + + + assign MonARegAddrInc = MonAReg[10 : 2]+1; + assign MonARegAddrIncAccessingRAM = ~MonARegAddrInc[8]; + assign avalon_ram_wr = write & ~address[8] & debugaccess; + assign ociram_addr = jtag_ram_access ? MonAReg[9 : 2] : address[7 : 0]; + assign ociram_wr_data = jtag_ram_access ? MonDReg[31 : 0] : writedata; + assign ociram_byteenable = jtag_ram_access ? 4'b1111 : byteenable; + assign ociram_wr_en = jtag_ram_wr | avalon_ram_wr; +//nios_system_nios2_processor_ociram_sp_ram, which is an nios_sp_ram +nios_system_nios2_processor_ociram_sp_ram_module nios_system_nios2_processor_ociram_sp_ram + ( + .address (ociram_addr), + .byteenable (ociram_byteenable), + .clock (clk), + .data (ociram_wr_data), + .q (ociram_readdata), + .wren (ociram_wr_en) + ); + +//synthesis translate_off +`ifdef NO_PLI +defparam nios_system_nios2_processor_ociram_sp_ram.lpm_file = "nios_system_nios2_processor_ociram_default_contents.dat"; +`else +defparam nios_system_nios2_processor_ociram_sp_ram.lpm_file = "nios_system_nios2_processor_ociram_default_contents.hex"; +`endif +//synthesis translate_on +//synthesis read_comments_as_HDL on +//defparam nios_system_nios2_processor_ociram_sp_ram.lpm_file = "nios_system_nios2_processor_ociram_default_contents.mif"; +//synthesis read_comments_as_HDL off + assign cfgrom_readdata = (MonAReg[4 : 2] == 3'd0)? 32'h00000020 : + (MonAReg[4 : 2] == 3'd1)? 32'h00001313 : + (MonAReg[4 : 2] == 3'd2)? 32'h00040000 : + (MonAReg[4 : 2] == 3'd3)? 32'h00000000 : + (MonAReg[4 : 2] == 3'd4)? 32'h20000000 : + (MonAReg[4 : 2] == 3'd5)? 32'h00000000 : + (MonAReg[4 : 2] == 3'd6)? 32'h00000000 : + 32'h00000000; + + +endmodule + + +// synthesis translate_off +`timescale 1ns / 1ps +// synthesis translate_on + +// turn off superfluous verilog processor warnings +// altera message_level Level1 +// altera message_off 10034 10035 10036 10037 10230 10240 10030 + +module nios_system_nios2_processor_nios2_avalon_reg ( + // inputs: + address, + clk, + debugaccess, + monitor_error, + monitor_go, + monitor_ready, + reset_n, + write, + writedata, + + // outputs: + oci_ienable, + oci_reg_readdata, + oci_single_step_mode, + ocireg_ers, + ocireg_mrs, + take_action_ocireg + ) +; + + output [ 31: 0] oci_ienable; + output [ 31: 0] oci_reg_readdata; + output oci_single_step_mode; + output ocireg_ers; + output ocireg_mrs; + output take_action_ocireg; + input [ 8: 0] address; + input clk; + input debugaccess; + input monitor_error; + input monitor_go; + input monitor_ready; + input reset_n; + input write; + input [ 31: 0] writedata; + + reg [ 31: 0] oci_ienable; + wire oci_reg_00_addressed; + wire oci_reg_01_addressed; + wire [ 31: 0] oci_reg_readdata; + reg oci_single_step_mode; + wire ocireg_ers; + wire ocireg_mrs; + wire ocireg_sstep; + wire take_action_oci_intr_mask_reg; + wire take_action_ocireg; + wire write_strobe; + assign oci_reg_00_addressed = address == 9'h100; + assign oci_reg_01_addressed = address == 9'h101; + assign write_strobe = write & debugaccess; + assign take_action_ocireg = write_strobe & oci_reg_00_addressed; + assign take_action_oci_intr_mask_reg = write_strobe & oci_reg_01_addressed; + assign ocireg_ers = writedata[1]; + assign ocireg_mrs = writedata[0]; + assign ocireg_sstep = writedata[3]; + assign oci_reg_readdata = oci_reg_00_addressed ? {28'b0, oci_single_step_mode, monitor_go, + monitor_ready, monitor_error} : + oci_reg_01_addressed ? oci_ienable : + 32'b0; + + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + oci_single_step_mode <= 1'b0; + else if (take_action_ocireg) + oci_single_step_mode <= ocireg_sstep; + end + + + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + oci_ienable <= 32'b00000000000000000000000000100000; + else if (take_action_oci_intr_mask_reg) + oci_ienable <= writedata | ~(32'b00000000000000000000000000100000); + end + + + +endmodule + + +// synthesis translate_off +`timescale 1ns / 1ps +// synthesis translate_on + +// turn off superfluous verilog processor warnings +// altera message_level Level1 +// altera message_off 10034 10035 10036 10037 10230 10240 10030 + +module nios_system_nios2_processor_nios2_oci_break ( + // inputs: + clk, + dbrk_break, + dbrk_goto0, + dbrk_goto1, + jdo, + jrst_n, + reset_n, + take_action_break_a, + take_action_break_b, + take_action_break_c, + take_no_action_break_a, + take_no_action_break_b, + take_no_action_break_c, + xbrk_goto0, + xbrk_goto1, + + // outputs: + break_readreg, + dbrk_hit0_latch, + dbrk_hit1_latch, + dbrk_hit2_latch, + dbrk_hit3_latch, + trigbrktype, + trigger_state_0, + trigger_state_1, + xbrk_ctrl0, + xbrk_ctrl1, + xbrk_ctrl2, + xbrk_ctrl3 + ) +; + + output [ 31: 0] break_readreg; + output dbrk_hit0_latch; + output dbrk_hit1_latch; + output dbrk_hit2_latch; + output dbrk_hit3_latch; + output trigbrktype; + output trigger_state_0; + output trigger_state_1; + output [ 7: 0] xbrk_ctrl0; + output [ 7: 0] xbrk_ctrl1; + output [ 7: 0] xbrk_ctrl2; + output [ 7: 0] xbrk_ctrl3; + input clk; + input dbrk_break; + input dbrk_goto0; + input dbrk_goto1; + input [ 37: 0] jdo; + input jrst_n; + input reset_n; + input take_action_break_a; + input take_action_break_b; + input take_action_break_c; + input take_no_action_break_a; + input take_no_action_break_b; + input take_no_action_break_c; + input xbrk_goto0; + input xbrk_goto1; + + wire [ 3: 0] break_a_wpr; + wire [ 1: 0] break_a_wpr_high_bits; + wire [ 1: 0] break_a_wpr_low_bits; + wire [ 1: 0] break_b_rr; + wire [ 1: 0] break_c_rr; + reg [ 31: 0] break_readreg /* synthesis ALTERA_ATTRIBUTE = "SUPPRESS_DA_RULE_INTERNAL=\"D101,R101\"" */; + wire dbrk0_high_value; + wire dbrk0_low_value; + wire dbrk1_high_value; + wire dbrk1_low_value; + wire dbrk2_high_value; + wire dbrk2_low_value; + wire dbrk3_high_value; + wire dbrk3_low_value; + wire dbrk_hit0_latch; + wire dbrk_hit1_latch; + wire dbrk_hit2_latch; + wire dbrk_hit3_latch; + wire take_action_any_break; + reg trigbrktype /* synthesis ALTERA_ATTRIBUTE = "SUPPRESS_DA_RULE_INTERNAL=\"D101,R101\"" */; + reg trigger_state; + wire trigger_state_0; + wire trigger_state_1; + wire [ 31: 0] xbrk0_value; + wire [ 31: 0] xbrk1_value; + wire [ 31: 0] xbrk2_value; + wire [ 31: 0] xbrk3_value; + reg [ 7: 0] xbrk_ctrl0 /* synthesis ALTERA_ATTRIBUTE = "SUPPRESS_DA_RULE_INTERNAL=\"D101,R101\"" */; + reg [ 7: 0] xbrk_ctrl1 /* synthesis ALTERA_ATTRIBUTE = "SUPPRESS_DA_RULE_INTERNAL=\"D101,R101\"" */; + reg [ 7: 0] xbrk_ctrl2 /* synthesis ALTERA_ATTRIBUTE = "SUPPRESS_DA_RULE_INTERNAL=\"D101,R101\"" */; + reg [ 7: 0] xbrk_ctrl3 /* synthesis ALTERA_ATTRIBUTE = "SUPPRESS_DA_RULE_INTERNAL=\"D101,R101\"" */; + assign break_a_wpr = jdo[35 : 32]; + assign break_a_wpr_high_bits = break_a_wpr[3 : 2]; + assign break_a_wpr_low_bits = break_a_wpr[1 : 0]; + assign break_b_rr = jdo[33 : 32]; + assign break_c_rr = jdo[33 : 32]; + assign take_action_any_break = take_action_break_a | take_action_break_b | take_action_break_c; + always @(posedge clk or negedge jrst_n) + begin + if (jrst_n == 0) + begin + xbrk_ctrl0 <= 0; + xbrk_ctrl1 <= 0; + xbrk_ctrl2 <= 0; + xbrk_ctrl3 <= 0; + trigbrktype <= 0; + end + else + begin + if (take_action_any_break) + trigbrktype <= 0; + else if (dbrk_break) + trigbrktype <= 1; + if (take_action_break_b) + begin + if ((break_b_rr == 2'b00) && (0 >= 1)) + begin + xbrk_ctrl0[0] <= jdo[27]; + xbrk_ctrl0[1] <= jdo[28]; + xbrk_ctrl0[2] <= jdo[29]; + xbrk_ctrl0[3] <= jdo[30]; + xbrk_ctrl0[4] <= jdo[21]; + xbrk_ctrl0[5] <= jdo[20]; + xbrk_ctrl0[6] <= jdo[19]; + xbrk_ctrl0[7] <= jdo[18]; + end + if ((break_b_rr == 2'b01) && (0 >= 2)) + begin + xbrk_ctrl1[0] <= jdo[27]; + xbrk_ctrl1[1] <= jdo[28]; + xbrk_ctrl1[2] <= jdo[29]; + xbrk_ctrl1[3] <= jdo[30]; + xbrk_ctrl1[4] <= jdo[21]; + xbrk_ctrl1[5] <= jdo[20]; + xbrk_ctrl1[6] <= jdo[19]; + xbrk_ctrl1[7] <= jdo[18]; + end + if ((break_b_rr == 2'b10) && (0 >= 3)) + begin + xbrk_ctrl2[0] <= jdo[27]; + xbrk_ctrl2[1] <= jdo[28]; + xbrk_ctrl2[2] <= jdo[29]; + xbrk_ctrl2[3] <= jdo[30]; + xbrk_ctrl2[4] <= jdo[21]; + xbrk_ctrl2[5] <= jdo[20]; + xbrk_ctrl2[6] <= jdo[19]; + xbrk_ctrl2[7] <= jdo[18]; + end + if ((break_b_rr == 2'b11) && (0 >= 4)) + begin + xbrk_ctrl3[0] <= jdo[27]; + xbrk_ctrl3[1] <= jdo[28]; + xbrk_ctrl3[2] <= jdo[29]; + xbrk_ctrl3[3] <= jdo[30]; + xbrk_ctrl3[4] <= jdo[21]; + xbrk_ctrl3[5] <= jdo[20]; + xbrk_ctrl3[6] <= jdo[19]; + xbrk_ctrl3[7] <= jdo[18]; + end + end + end + end + + + assign dbrk_hit0_latch = 1'b0; + assign dbrk0_low_value = 0; + assign dbrk0_high_value = 0; + assign dbrk_hit1_latch = 1'b0; + assign dbrk1_low_value = 0; + assign dbrk1_high_value = 0; + assign dbrk_hit2_latch = 1'b0; + assign dbrk2_low_value = 0; + assign dbrk2_high_value = 0; + assign dbrk_hit3_latch = 1'b0; + assign dbrk3_low_value = 0; + assign dbrk3_high_value = 0; + assign xbrk0_value = 32'b0; + assign xbrk1_value = 32'b0; + assign xbrk2_value = 32'b0; + assign xbrk3_value = 32'b0; + always @(posedge clk or negedge jrst_n) + begin + if (jrst_n == 0) + break_readreg <= 32'b0; + else if (take_action_any_break) + break_readreg <= jdo[31 : 0]; + else if (take_no_action_break_a) + case (break_a_wpr_high_bits) + + 2'd0: begin + case (break_a_wpr_low_bits) // synthesis full_case + + 2'd0: begin + break_readreg <= xbrk0_value; + end // 2'd0 + + 2'd1: begin + break_readreg <= xbrk1_value; + end // 2'd1 + + 2'd2: begin + break_readreg <= xbrk2_value; + end // 2'd2 + + 2'd3: begin + break_readreg <= xbrk3_value; + end // 2'd3 + + endcase // break_a_wpr_low_bits + end // 2'd0 + + 2'd1: begin + break_readreg <= 32'b0; + end // 2'd1 + + 2'd2: begin + case (break_a_wpr_low_bits) // synthesis full_case + + 2'd0: begin + break_readreg <= dbrk0_low_value; + end // 2'd0 + + 2'd1: begin + break_readreg <= dbrk1_low_value; + end // 2'd1 + + 2'd2: begin + break_readreg <= dbrk2_low_value; + end // 2'd2 + + 2'd3: begin + break_readreg <= dbrk3_low_value; + end // 2'd3 + + endcase // break_a_wpr_low_bits + end // 2'd2 + + 2'd3: begin + case (break_a_wpr_low_bits) // synthesis full_case + + 2'd0: begin + break_readreg <= dbrk0_high_value; + end // 2'd0 + + 2'd1: begin + break_readreg <= dbrk1_high_value; + end // 2'd1 + + 2'd2: begin + break_readreg <= dbrk2_high_value; + end // 2'd2 + + 2'd3: begin + break_readreg <= dbrk3_high_value; + end // 2'd3 + + endcase // break_a_wpr_low_bits + end // 2'd3 + + endcase // break_a_wpr_high_bits + else if (take_no_action_break_b) + break_readreg <= jdo[31 : 0]; + else if (take_no_action_break_c) + break_readreg <= jdo[31 : 0]; + end + + + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + trigger_state <= 0; + else if (trigger_state_1 & (xbrk_goto0 | dbrk_goto0)) + trigger_state <= 0; + else if (trigger_state_0 & (xbrk_goto1 | dbrk_goto1)) + trigger_state <= -1; + end + + + assign trigger_state_0 = ~trigger_state; + assign trigger_state_1 = trigger_state; + +endmodule + + +// synthesis translate_off +`timescale 1ns / 1ps +// synthesis translate_on + +// turn off superfluous verilog processor warnings +// altera message_level Level1 +// altera message_off 10034 10035 10036 10037 10230 10240 10030 + +module nios_system_nios2_processor_nios2_oci_xbrk ( + // inputs: + D_valid, + E_valid, + F_pc, + clk, + reset_n, + trigger_state_0, + trigger_state_1, + xbrk_ctrl0, + xbrk_ctrl1, + xbrk_ctrl2, + xbrk_ctrl3, + + // outputs: + xbrk_break, + xbrk_goto0, + xbrk_goto1, + xbrk_traceoff, + xbrk_traceon, + xbrk_trigout + ) +; + + output xbrk_break; + output xbrk_goto0; + output xbrk_goto1; + output xbrk_traceoff; + output xbrk_traceon; + output xbrk_trigout; + input D_valid; + input E_valid; + input [ 16: 0] F_pc; + input clk; + input reset_n; + input trigger_state_0; + input trigger_state_1; + input [ 7: 0] xbrk_ctrl0; + input [ 7: 0] xbrk_ctrl1; + input [ 7: 0] xbrk_ctrl2; + input [ 7: 0] xbrk_ctrl3; + + wire D_cpu_addr_en; + wire E_cpu_addr_en; + reg E_xbrk_goto0; + reg E_xbrk_goto1; + reg E_xbrk_traceoff; + reg E_xbrk_traceon; + reg E_xbrk_trigout; + wire [ 18: 0] cpu_i_address; + wire xbrk0_armed; + wire xbrk0_break_hit; + wire xbrk0_goto0_hit; + wire xbrk0_goto1_hit; + wire xbrk0_toff_hit; + wire xbrk0_ton_hit; + wire xbrk0_tout_hit; + wire xbrk1_armed; + wire xbrk1_break_hit; + wire xbrk1_goto0_hit; + wire xbrk1_goto1_hit; + wire xbrk1_toff_hit; + wire xbrk1_ton_hit; + wire xbrk1_tout_hit; + wire xbrk2_armed; + wire xbrk2_break_hit; + wire xbrk2_goto0_hit; + wire xbrk2_goto1_hit; + wire xbrk2_toff_hit; + wire xbrk2_ton_hit; + wire xbrk2_tout_hit; + wire xbrk3_armed; + wire xbrk3_break_hit; + wire xbrk3_goto0_hit; + wire xbrk3_goto1_hit; + wire xbrk3_toff_hit; + wire xbrk3_ton_hit; + wire xbrk3_tout_hit; + reg xbrk_break; + wire xbrk_break_hit; + wire xbrk_goto0; + wire xbrk_goto0_hit; + wire xbrk_goto1; + wire xbrk_goto1_hit; + wire xbrk_toff_hit; + wire xbrk_ton_hit; + wire xbrk_tout_hit; + wire xbrk_traceoff; + wire xbrk_traceon; + wire xbrk_trigout; + assign cpu_i_address = {F_pc, 2'b00}; + assign D_cpu_addr_en = D_valid; + assign E_cpu_addr_en = E_valid; + assign xbrk0_break_hit = 0; + assign xbrk0_ton_hit = 0; + assign xbrk0_toff_hit = 0; + assign xbrk0_tout_hit = 0; + assign xbrk0_goto0_hit = 0; + assign xbrk0_goto1_hit = 0; + assign xbrk1_break_hit = 0; + assign xbrk1_ton_hit = 0; + assign xbrk1_toff_hit = 0; + assign xbrk1_tout_hit = 0; + assign xbrk1_goto0_hit = 0; + assign xbrk1_goto1_hit = 0; + assign xbrk2_break_hit = 0; + assign xbrk2_ton_hit = 0; + assign xbrk2_toff_hit = 0; + assign xbrk2_tout_hit = 0; + assign xbrk2_goto0_hit = 0; + assign xbrk2_goto1_hit = 0; + assign xbrk3_break_hit = 0; + assign xbrk3_ton_hit = 0; + assign xbrk3_toff_hit = 0; + assign xbrk3_tout_hit = 0; + assign xbrk3_goto0_hit = 0; + assign xbrk3_goto1_hit = 0; + assign xbrk_break_hit = (xbrk0_break_hit) | (xbrk1_break_hit) | (xbrk2_break_hit) | (xbrk3_break_hit); + assign xbrk_ton_hit = (xbrk0_ton_hit) | (xbrk1_ton_hit) | (xbrk2_ton_hit) | (xbrk3_ton_hit); + assign xbrk_toff_hit = (xbrk0_toff_hit) | (xbrk1_toff_hit) | (xbrk2_toff_hit) | (xbrk3_toff_hit); + assign xbrk_tout_hit = (xbrk0_tout_hit) | (xbrk1_tout_hit) | (xbrk2_tout_hit) | (xbrk3_tout_hit); + assign xbrk_goto0_hit = (xbrk0_goto0_hit) | (xbrk1_goto0_hit) | (xbrk2_goto0_hit) | (xbrk3_goto0_hit); + assign xbrk_goto1_hit = (xbrk0_goto1_hit) | (xbrk1_goto1_hit) | (xbrk2_goto1_hit) | (xbrk3_goto1_hit); + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + xbrk_break <= 0; + else if (E_cpu_addr_en) + xbrk_break <= xbrk_break_hit; + end + + + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + E_xbrk_traceon <= 0; + else if (E_cpu_addr_en) + E_xbrk_traceon <= xbrk_ton_hit; + end + + + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + E_xbrk_traceoff <= 0; + else if (E_cpu_addr_en) + E_xbrk_traceoff <= xbrk_toff_hit; + end + + + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + E_xbrk_trigout <= 0; + else if (E_cpu_addr_en) + E_xbrk_trigout <= xbrk_tout_hit; + end + + + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + E_xbrk_goto0 <= 0; + else if (E_cpu_addr_en) + E_xbrk_goto0 <= xbrk_goto0_hit; + end + + + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + E_xbrk_goto1 <= 0; + else if (E_cpu_addr_en) + E_xbrk_goto1 <= xbrk_goto1_hit; + end + + + assign xbrk_traceon = 1'b0; + assign xbrk_traceoff = 1'b0; + assign xbrk_trigout = 1'b0; + assign xbrk_goto0 = 1'b0; + assign xbrk_goto1 = 1'b0; + assign xbrk0_armed = (xbrk_ctrl0[4] & trigger_state_0) || + (xbrk_ctrl0[5] & trigger_state_1); + + assign xbrk1_armed = (xbrk_ctrl1[4] & trigger_state_0) || + (xbrk_ctrl1[5] & trigger_state_1); + + assign xbrk2_armed = (xbrk_ctrl2[4] & trigger_state_0) || + (xbrk_ctrl2[5] & trigger_state_1); + + assign xbrk3_armed = (xbrk_ctrl3[4] & trigger_state_0) || + (xbrk_ctrl3[5] & trigger_state_1); + + +endmodule + + +// synthesis translate_off +`timescale 1ns / 1ps +// synthesis translate_on + +// turn off superfluous verilog processor warnings +// altera message_level Level1 +// altera message_off 10034 10035 10036 10037 10230 10240 10030 + +module nios_system_nios2_processor_nios2_oci_dbrk ( + // inputs: + E_st_data, + av_ld_data_aligned_filtered, + clk, + d_address, + d_read, + d_waitrequest, + d_write, + debugack, + reset_n, + + // outputs: + cpu_d_address, + cpu_d_read, + cpu_d_readdata, + cpu_d_wait, + cpu_d_write, + cpu_d_writedata, + dbrk_break, + dbrk_goto0, + dbrk_goto1, + dbrk_traceme, + dbrk_traceoff, + dbrk_traceon, + dbrk_trigout + ) +; + + output [ 18: 0] cpu_d_address; + output cpu_d_read; + output [ 31: 0] cpu_d_readdata; + output cpu_d_wait; + output cpu_d_write; + output [ 31: 0] cpu_d_writedata; + output dbrk_break; + output dbrk_goto0; + output dbrk_goto1; + output dbrk_traceme; + output dbrk_traceoff; + output dbrk_traceon; + output dbrk_trigout; + input [ 31: 0] E_st_data; + input [ 31: 0] av_ld_data_aligned_filtered; + input clk; + input [ 18: 0] d_address; + input d_read; + input d_waitrequest; + input d_write; + input debugack; + input reset_n; + + wire [ 18: 0] cpu_d_address; + wire cpu_d_read; + wire [ 31: 0] cpu_d_readdata; + wire cpu_d_wait; + wire cpu_d_write; + wire [ 31: 0] cpu_d_writedata; + wire dbrk0_armed; + wire dbrk0_break_pulse; + wire dbrk0_goto0; + wire dbrk0_goto1; + wire dbrk0_traceme; + wire dbrk0_traceoff; + wire dbrk0_traceon; + wire dbrk0_trigout; + wire dbrk1_armed; + wire dbrk1_break_pulse; + wire dbrk1_goto0; + wire dbrk1_goto1; + wire dbrk1_traceme; + wire dbrk1_traceoff; + wire dbrk1_traceon; + wire dbrk1_trigout; + wire dbrk2_armed; + wire dbrk2_break_pulse; + wire dbrk2_goto0; + wire dbrk2_goto1; + wire dbrk2_traceme; + wire dbrk2_traceoff; + wire dbrk2_traceon; + wire dbrk2_trigout; + wire dbrk3_armed; + wire dbrk3_break_pulse; + wire dbrk3_goto0; + wire dbrk3_goto1; + wire dbrk3_traceme; + wire dbrk3_traceoff; + wire dbrk3_traceon; + wire dbrk3_trigout; + reg dbrk_break; + reg dbrk_break_pulse; + wire [ 31: 0] dbrk_data; + reg dbrk_goto0; + reg dbrk_goto1; + reg dbrk_traceme; + reg dbrk_traceoff; + reg dbrk_traceon; + reg dbrk_trigout; + assign cpu_d_address = d_address; + assign cpu_d_readdata = av_ld_data_aligned_filtered; + assign cpu_d_read = d_read; + assign cpu_d_writedata = E_st_data; + assign cpu_d_write = d_write; + assign cpu_d_wait = d_waitrequest; + assign dbrk_data = cpu_d_write ? cpu_d_writedata : cpu_d_readdata; + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + dbrk_break <= 0; + else + dbrk_break <= dbrk_break ? ~debugack + : dbrk_break_pulse; + + end + + + assign dbrk0_armed = 1'b0; + assign dbrk0_trigout = 1'b0; + assign dbrk0_break_pulse = 1'b0; + assign dbrk0_traceoff = 1'b0; + assign dbrk0_traceon = 1'b0; + assign dbrk0_traceme = 1'b0; + assign dbrk0_goto0 = 1'b0; + assign dbrk0_goto1 = 1'b0; + assign dbrk1_armed = 1'b0; + assign dbrk1_trigout = 1'b0; + assign dbrk1_break_pulse = 1'b0; + assign dbrk1_traceoff = 1'b0; + assign dbrk1_traceon = 1'b0; + assign dbrk1_traceme = 1'b0; + assign dbrk1_goto0 = 1'b0; + assign dbrk1_goto1 = 1'b0; + assign dbrk2_armed = 1'b0; + assign dbrk2_trigout = 1'b0; + assign dbrk2_break_pulse = 1'b0; + assign dbrk2_traceoff = 1'b0; + assign dbrk2_traceon = 1'b0; + assign dbrk2_traceme = 1'b0; + assign dbrk2_goto0 = 1'b0; + assign dbrk2_goto1 = 1'b0; + assign dbrk3_armed = 1'b0; + assign dbrk3_trigout = 1'b0; + assign dbrk3_break_pulse = 1'b0; + assign dbrk3_traceoff = 1'b0; + assign dbrk3_traceon = 1'b0; + assign dbrk3_traceme = 1'b0; + assign dbrk3_goto0 = 1'b0; + assign dbrk3_goto1 = 1'b0; + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + begin + dbrk_trigout <= 0; + dbrk_break_pulse <= 0; + dbrk_traceoff <= 0; + dbrk_traceon <= 0; + dbrk_traceme <= 0; + dbrk_goto0 <= 0; + dbrk_goto1 <= 0; + end + else + begin + dbrk_trigout <= dbrk0_trigout | dbrk1_trigout | dbrk2_trigout | dbrk3_trigout; + dbrk_break_pulse <= dbrk0_break_pulse | dbrk1_break_pulse | dbrk2_break_pulse | dbrk3_break_pulse; + dbrk_traceoff <= dbrk0_traceoff | dbrk1_traceoff | dbrk2_traceoff | dbrk3_traceoff; + dbrk_traceon <= dbrk0_traceon | dbrk1_traceon | dbrk2_traceon | dbrk3_traceon; + dbrk_traceme <= dbrk0_traceme | dbrk1_traceme | dbrk2_traceme | dbrk3_traceme; + dbrk_goto0 <= dbrk0_goto0 | dbrk1_goto0 | dbrk2_goto0 | dbrk3_goto0; + dbrk_goto1 <= dbrk0_goto1 | dbrk1_goto1 | dbrk2_goto1 | dbrk3_goto1; + end + end + + + +endmodule + + +// synthesis translate_off +`timescale 1ns / 1ps +// synthesis translate_on + +// turn off superfluous verilog processor warnings +// altera message_level Level1 +// altera message_off 10034 10035 10036 10037 10230 10240 10030 + +module nios_system_nios2_processor_nios2_oci_itrace ( + // inputs: + clk, + dbrk_traceoff, + dbrk_traceon, + jdo, + jrst_n, + take_action_tracectrl, + trc_enb, + xbrk_traceoff, + xbrk_traceon, + xbrk_wrap_traceoff, + + // outputs: + dct_buffer, + dct_count, + itm, + trc_ctrl, + trc_on + ) +; + + output [ 29: 0] dct_buffer; + output [ 3: 0] dct_count; + output [ 35: 0] itm; + output [ 15: 0] trc_ctrl; + output trc_on; + input clk; + input dbrk_traceoff; + input dbrk_traceon; + input [ 15: 0] jdo; + input jrst_n; + input take_action_tracectrl; + input trc_enb; + input xbrk_traceoff; + input xbrk_traceon; + input xbrk_wrap_traceoff; + + wire curr_pid; + reg [ 29: 0] dct_buffer /* synthesis ALTERA_ATTRIBUTE = "SUPPRESS_DA_RULE_INTERNAL=R101" */; + wire [ 1: 0] dct_code; + reg [ 3: 0] dct_count /* synthesis ALTERA_ATTRIBUTE = "SUPPRESS_DA_RULE_INTERNAL=R101" */; + wire dct_is_taken; + wire [ 31: 0] excaddr; + wire instr_retired; + wire is_advanced_exception; + wire is_cond_dct; + wire is_dct; + wire is_exception_no_break; + wire is_fast_tlb_miss_exception; + wire is_idct; + reg [ 35: 0] itm /* synthesis ALTERA_ATTRIBUTE = "SUPPRESS_DA_RULE_INTERNAL=R101" */; + wire not_in_debug_mode; + reg pending_curr_pid /* synthesis ALTERA_ATTRIBUTE = "SUPPRESS_DA_RULE_INTERNAL=R101" */; + reg [ 31: 0] pending_excaddr /* synthesis ALTERA_ATTRIBUTE = "SUPPRESS_DA_RULE_INTERNAL=R101" */; + reg pending_exctype /* synthesis ALTERA_ATTRIBUTE = "SUPPRESS_DA_RULE_INTERNAL=R101" */; + reg [ 3: 0] pending_frametype /* synthesis ALTERA_ATTRIBUTE = "SUPPRESS_DA_RULE_INTERNAL=R101" */; + reg pending_prev_pid /* synthesis ALTERA_ATTRIBUTE = "SUPPRESS_DA_RULE_INTERNAL=R101" */; + reg prev_pid /* synthesis ALTERA_ATTRIBUTE = "SUPPRESS_DA_RULE_INTERNAL=R101" */; + reg prev_pid_valid /* synthesis ALTERA_ATTRIBUTE = "SUPPRESS_DA_RULE_INTERNAL=R101" */; + wire record_dct_outcome_in_sync; + wire record_itrace; + wire [ 31: 0] retired_pcb; + reg snapped_curr_pid /* synthesis ALTERA_ATTRIBUTE = "SUPPRESS_DA_RULE_INTERNAL=R101" */; + reg snapped_pid /* synthesis ALTERA_ATTRIBUTE = "SUPPRESS_DA_RULE_INTERNAL=R101" */; + reg snapped_prev_pid /* synthesis ALTERA_ATTRIBUTE = "SUPPRESS_DA_RULE_INTERNAL=R101" */; + wire [ 1: 0] sync_code; + wire [ 6: 0] sync_interval; + wire sync_pending; + reg [ 6: 0] sync_timer /* synthesis ALTERA_ATTRIBUTE = "SUPPRESS_DA_RULE_INTERNAL=R101" */; + wire [ 6: 0] sync_timer_next; + reg trc_clear /* synthesis ALTERA_ATTRIBUTE = "SUPPRESS_DA_RULE_INTERNAL=D101" */; + wire [ 15: 0] trc_ctrl; + reg [ 10: 0] trc_ctrl_reg /* synthesis ALTERA_ATTRIBUTE = "SUPPRESS_DA_RULE_INTERNAL=\"D101,D103,R101\"" */; + wire trc_on; + assign is_cond_dct = 1'b0; + assign is_dct = 1'b0; + assign dct_is_taken = 1'b0; + assign is_idct = 1'b0; + assign retired_pcb = 32'b0; + assign not_in_debug_mode = 1'b0; + assign instr_retired = 1'b0; + assign is_advanced_exception = 1'b0; + assign is_exception_no_break = 1'b0; + assign is_fast_tlb_miss_exception = 1'b0; + assign curr_pid = 1'b0; + assign excaddr = 32'b0; + assign sync_code = trc_ctrl[3 : 2]; + assign sync_interval = { sync_code[1] & sync_code[0], 1'b0, sync_code[1] & ~sync_code[0], 1'b0, ~sync_code[1] & sync_code[0], 2'b00 }; + assign sync_pending = sync_timer == 0; + assign record_dct_outcome_in_sync = dct_is_taken & sync_pending; + assign sync_timer_next = sync_pending ? sync_timer : (sync_timer - 1); + assign record_itrace = trc_on & trc_ctrl[4]; + assign dct_code = {is_cond_dct, dct_is_taken}; + always @(posedge clk or negedge jrst_n) + begin + if (jrst_n == 0) + trc_clear <= 0; + else + trc_clear <= ~trc_enb & + take_action_tracectrl & jdo[4]; + + end + + + always @(posedge clk or negedge jrst_n) + begin + if (jrst_n == 0) + begin + itm <= 0; + dct_buffer <= 0; + dct_count <= 0; + sync_timer <= 0; + pending_frametype <= 4'b0000; + pending_exctype <= 1'b0; + pending_excaddr <= 0; + prev_pid <= 0; + prev_pid_valid <= 0; + snapped_pid <= 0; + snapped_curr_pid <= 0; + snapped_prev_pid <= 0; + pending_curr_pid <= 0; + pending_prev_pid <= 0; + end + else if (trc_clear || (!0 && !0)) + begin + itm <= 0; + dct_buffer <= 0; + dct_count <= 0; + sync_timer <= 0; + pending_frametype <= 4'b0000; + pending_exctype <= 1'b0; + pending_excaddr <= 0; + prev_pid <= 0; + prev_pid_valid <= 0; + snapped_pid <= 0; + snapped_curr_pid <= 0; + snapped_prev_pid <= 0; + pending_curr_pid <= 0; + pending_prev_pid <= 0; + end + else + begin + if (!prev_pid_valid) + begin + prev_pid <= curr_pid; + prev_pid_valid <= 1; + end + if ((curr_pid != prev_pid) & prev_pid_valid & !snapped_pid) + begin + snapped_pid <= 1; + snapped_curr_pid <= curr_pid; + snapped_prev_pid <= prev_pid; + prev_pid <= curr_pid; + prev_pid_valid <= 1; + end + if (instr_retired | is_advanced_exception) + begin + if (~record_itrace) + pending_frametype <= 4'b1010; + else if (is_exception_no_break) + begin + pending_frametype <= 4'b0010; + pending_excaddr <= excaddr; + if (is_fast_tlb_miss_exception) + pending_exctype <= 1'b1; + else + pending_exctype <= 1'b0; + end + else if (is_idct) + pending_frametype <= 4'b1001; + else if (record_dct_outcome_in_sync) + pending_frametype <= 4'b1000; + else if (!is_dct & snapped_pid) + begin + pending_frametype <= 4'b0011; + pending_curr_pid <= snapped_curr_pid; + pending_prev_pid <= snapped_prev_pid; + snapped_pid <= 0; + end + else + pending_frametype <= 4'b0000; + if ((dct_count != 0) & + (~record_itrace | + is_exception_no_break | + is_idct | + record_dct_outcome_in_sync | + (!is_dct & snapped_pid))) + begin + itm <= {4'b0001, dct_buffer, 2'b00}; + dct_buffer <= 0; + dct_count <= 0; + sync_timer <= sync_timer_next; + end + else + begin + if (record_itrace & (is_dct & (dct_count != 4'd15)) & ~record_dct_outcome_in_sync & ~is_advanced_exception) + begin + dct_buffer <= {dct_code, dct_buffer[29 : 2]}; + dct_count <= dct_count + 1; + end + if (record_itrace & (pending_frametype == 4'b0010)) + itm <= {4'b0010, pending_excaddr[31 : 1], pending_exctype}; + else if (record_itrace & ( + (pending_frametype == 4'b1000) | + (pending_frametype == 4'b1010) | + (pending_frametype == 4'b1001))) + begin + itm <= {pending_frametype, retired_pcb}; + sync_timer <= sync_interval; + if (0 & + ((pending_frametype == 4'b1000) | (pending_frametype == 4'b1010)) & + !snapped_pid & prev_pid_valid) + begin + snapped_pid <= 1; + snapped_curr_pid <= curr_pid; + snapped_prev_pid <= prev_pid; + end + end + else if (record_itrace & + 0 & (pending_frametype == 4'b0011)) + itm <= {4'b0011, 2'b00, pending_prev_pid, 2'b00, pending_curr_pid}; + else if (record_itrace & is_dct) + begin + if (dct_count == 4'd15) + begin + itm <= {4'b0001, dct_code, dct_buffer}; + dct_buffer <= 0; + dct_count <= 0; + sync_timer <= sync_timer_next; + end + else + itm <= 4'b0000; + end + else + itm <= {4'b0000, 32'b0}; + end + end + else + itm <= {4'b0000, 32'b0}; + end + end + + + always @(posedge clk or negedge jrst_n) + begin + if (jrst_n == 0) + begin + trc_ctrl_reg[0] <= 1'b0; + trc_ctrl_reg[1] <= 1'b0; + trc_ctrl_reg[3 : 2] <= 2'b00; + trc_ctrl_reg[4] <= 1'b0; + trc_ctrl_reg[7 : 5] <= 3'b000; + trc_ctrl_reg[8] <= 0; + trc_ctrl_reg[9] <= 1'b0; + trc_ctrl_reg[10] <= 1'b0; + end + else if (take_action_tracectrl) + begin + trc_ctrl_reg[0] <= jdo[5]; + trc_ctrl_reg[1] <= jdo[6]; + trc_ctrl_reg[3 : 2] <= jdo[8 : 7]; + trc_ctrl_reg[4] <= jdo[9]; + trc_ctrl_reg[9] <= jdo[14]; + trc_ctrl_reg[10] <= jdo[2]; + if (0) + trc_ctrl_reg[7 : 5] <= jdo[12 : 10]; + if (0 & 0) + trc_ctrl_reg[8] <= jdo[13]; + end + else if (xbrk_wrap_traceoff) + begin + trc_ctrl_reg[1] <= 0; + trc_ctrl_reg[0] <= 0; + end + else if (dbrk_traceoff | xbrk_traceoff) + trc_ctrl_reg[1] <= 0; + else if (trc_ctrl_reg[0] & + (dbrk_traceon | xbrk_traceon)) + trc_ctrl_reg[1] <= 1; + end + + + assign trc_ctrl = (0 || 0) ? {6'b000000, trc_ctrl_reg} : 0; + assign trc_on = trc_ctrl[1] & (trc_ctrl[9] | not_in_debug_mode); + +endmodule + + +// synthesis translate_off +`timescale 1ns / 1ps +// synthesis translate_on + +// turn off superfluous verilog processor warnings +// altera message_level Level1 +// altera message_off 10034 10035 10036 10037 10230 10240 10030 + +module nios_system_nios2_processor_nios2_oci_td_mode ( + // inputs: + ctrl, + + // outputs: + td_mode + ) +; + + output [ 3: 0] td_mode; + input [ 8: 0] ctrl; + + wire [ 2: 0] ctrl_bits_for_mux; + reg [ 3: 0] td_mode; + assign ctrl_bits_for_mux = ctrl[7 : 5]; + always @(ctrl_bits_for_mux) + begin + case (ctrl_bits_for_mux) + + 3'b000: begin + td_mode = 4'b0000; + end // 3'b000 + + 3'b001: begin + td_mode = 4'b1000; + end // 3'b001 + + 3'b010: begin + td_mode = 4'b0100; + end // 3'b010 + + 3'b011: begin + td_mode = 4'b1100; + end // 3'b011 + + 3'b100: begin + td_mode = 4'b0010; + end // 3'b100 + + 3'b101: begin + td_mode = 4'b1010; + end // 3'b101 + + 3'b110: begin + td_mode = 4'b0101; + end // 3'b110 + + 3'b111: begin + td_mode = 4'b1111; + end // 3'b111 + + endcase // ctrl_bits_for_mux + end + + + +endmodule + + +// synthesis translate_off +`timescale 1ns / 1ps +// synthesis translate_on + +// turn off superfluous verilog processor warnings +// altera message_level Level1 +// altera message_off 10034 10035 10036 10037 10230 10240 10030 + +module nios_system_nios2_processor_nios2_oci_dtrace ( + // inputs: + clk, + cpu_d_address, + cpu_d_read, + cpu_d_readdata, + cpu_d_wait, + cpu_d_write, + cpu_d_writedata, + jrst_n, + trc_ctrl, + + // outputs: + atm, + dtm + ) +; + + output [ 35: 0] atm; + output [ 35: 0] dtm; + input clk; + input [ 18: 0] cpu_d_address; + input cpu_d_read; + input [ 31: 0] cpu_d_readdata; + input cpu_d_wait; + input cpu_d_write; + input [ 31: 0] cpu_d_writedata; + input jrst_n; + input [ 15: 0] trc_ctrl; + + reg [ 35: 0] atm /* synthesis ALTERA_ATTRIBUTE = "SUPPRESS_DA_RULE_INTERNAL=R101" */; + wire [ 31: 0] cpu_d_address_0_padded; + wire [ 31: 0] cpu_d_readdata_0_padded; + wire [ 31: 0] cpu_d_writedata_0_padded; + reg [ 35: 0] dtm /* synthesis ALTERA_ATTRIBUTE = "SUPPRESS_DA_RULE_INTERNAL=R101" */; + wire record_load_addr; + wire record_load_data; + wire record_store_addr; + wire record_store_data; + wire [ 3: 0] td_mode_trc_ctrl; + assign cpu_d_writedata_0_padded = cpu_d_writedata | 32'b0; + assign cpu_d_readdata_0_padded = cpu_d_readdata | 32'b0; + assign cpu_d_address_0_padded = cpu_d_address | 32'b0; + //nios_system_nios2_processor_nios2_oci_trc_ctrl_td_mode, which is an e_instance + nios_system_nios2_processor_nios2_oci_td_mode nios_system_nios2_processor_nios2_oci_trc_ctrl_td_mode + ( + .ctrl (trc_ctrl[8 : 0]), + .td_mode (td_mode_trc_ctrl) + ); + + assign {record_load_addr, record_store_addr, + record_load_data, record_store_data} = td_mode_trc_ctrl; + always @(posedge clk or negedge jrst_n) + begin + if (jrst_n == 0) + begin + atm <= 0; + dtm <= 0; + end + else if (0) + begin + if (cpu_d_write & ~cpu_d_wait & record_store_addr) + atm <= {4'b0101, cpu_d_address_0_padded}; + else if (cpu_d_read & ~cpu_d_wait & record_load_addr) + atm <= {4'b0100, cpu_d_address_0_padded}; + else + atm <= {4'b0000, cpu_d_address_0_padded}; + if (cpu_d_write & ~cpu_d_wait & record_store_data) + dtm <= {4'b0111, cpu_d_writedata_0_padded}; + else if (cpu_d_read & ~cpu_d_wait & record_load_data) + dtm <= {4'b0110, cpu_d_readdata_0_padded}; + else + dtm <= {4'b0000, cpu_d_readdata_0_padded}; + end + else + begin + atm <= 0; + dtm <= 0; + end + end + + + +endmodule + + +// synthesis translate_off +`timescale 1ns / 1ps +// synthesis translate_on + +// turn off superfluous verilog processor warnings +// altera message_level Level1 +// altera message_off 10034 10035 10036 10037 10230 10240 10030 + +module nios_system_nios2_processor_nios2_oci_compute_tm_count ( + // inputs: + atm_valid, + dtm_valid, + itm_valid, + + // outputs: + compute_tm_count + ) +; + + output [ 1: 0] compute_tm_count; + input atm_valid; + input dtm_valid; + input itm_valid; + + reg [ 1: 0] compute_tm_count; + wire [ 2: 0] switch_for_mux; + assign switch_for_mux = {itm_valid, atm_valid, dtm_valid}; + always @(switch_for_mux) + begin + case (switch_for_mux) + + 3'b000: begin + compute_tm_count = 0; + end // 3'b000 + + 3'b001: begin + compute_tm_count = 1; + end // 3'b001 + + 3'b010: begin + compute_tm_count = 1; + end // 3'b010 + + 3'b011: begin + compute_tm_count = 2; + end // 3'b011 + + 3'b100: begin + compute_tm_count = 1; + end // 3'b100 + + 3'b101: begin + compute_tm_count = 2; + end // 3'b101 + + 3'b110: begin + compute_tm_count = 2; + end // 3'b110 + + 3'b111: begin + compute_tm_count = 3; + end // 3'b111 + + endcase // switch_for_mux + end + + + +endmodule + + +// synthesis translate_off +`timescale 1ns / 1ps +// synthesis translate_on + +// turn off superfluous verilog processor warnings +// altera message_level Level1 +// altera message_off 10034 10035 10036 10037 10230 10240 10030 + +module nios_system_nios2_processor_nios2_oci_fifowp_inc ( + // inputs: + free2, + free3, + tm_count, + + // outputs: + fifowp_inc + ) +; + + output [ 3: 0] fifowp_inc; + input free2; + input free3; + input [ 1: 0] tm_count; + + reg [ 3: 0] fifowp_inc; + always @(free2 or free3 or tm_count) + begin + if (free3 & (tm_count == 3)) + fifowp_inc = 3; + else if (free2 & (tm_count >= 2)) + fifowp_inc = 2; + else if (tm_count >= 1) + fifowp_inc = 1; + else + fifowp_inc = 0; + end + + + +endmodule + + +// synthesis translate_off +`timescale 1ns / 1ps +// synthesis translate_on + +// turn off superfluous verilog processor warnings +// altera message_level Level1 +// altera message_off 10034 10035 10036 10037 10230 10240 10030 + +module nios_system_nios2_processor_nios2_oci_fifocount_inc ( + // inputs: + empty, + free2, + free3, + tm_count, + + // outputs: + fifocount_inc + ) +; + + output [ 4: 0] fifocount_inc; + input empty; + input free2; + input free3; + input [ 1: 0] tm_count; + + reg [ 4: 0] fifocount_inc; + always @(empty or free2 or free3 or tm_count) + begin + if (empty) + fifocount_inc = tm_count[1 : 0]; + else if (free3 & (tm_count == 3)) + fifocount_inc = 2; + else if (free2 & (tm_count >= 2)) + fifocount_inc = 1; + else if (tm_count >= 1) + fifocount_inc = 0; + else + fifocount_inc = {5{1'b1}}; + end + + + +endmodule + + +// synthesis translate_off +`timescale 1ns / 1ps +// synthesis translate_on + +// turn off superfluous verilog processor warnings +// altera message_level Level1 +// altera message_off 10034 10035 10036 10037 10230 10240 10030 + +module nios_system_nios2_processor_nios2_oci_fifo ( + // inputs: + atm, + clk, + dbrk_traceme, + dbrk_traceoff, + dbrk_traceon, + dct_buffer, + dct_count, + dtm, + itm, + jrst_n, + reset_n, + test_ending, + test_has_ended, + trc_on, + + // outputs: + tw + ) +; + + output [ 35: 0] tw; + input [ 35: 0] atm; + input clk; + input dbrk_traceme; + input dbrk_traceoff; + input dbrk_traceon; + input [ 29: 0] dct_buffer; + input [ 3: 0] dct_count; + input [ 35: 0] dtm; + input [ 35: 0] itm; + input jrst_n; + input reset_n; + input test_ending; + input test_has_ended; + input trc_on; + + wire atm_valid; + wire [ 1: 0] compute_tm_count_tm_count; + wire dtm_valid; + wire empty; + reg [ 35: 0] fifo_0; + wire fifo_0_enable; + wire [ 35: 0] fifo_0_mux; + reg [ 35: 0] fifo_1; + reg [ 35: 0] fifo_10; + wire fifo_10_enable; + wire [ 35: 0] fifo_10_mux; + reg [ 35: 0] fifo_11; + wire fifo_11_enable; + wire [ 35: 0] fifo_11_mux; + reg [ 35: 0] fifo_12; + wire fifo_12_enable; + wire [ 35: 0] fifo_12_mux; + reg [ 35: 0] fifo_13; + wire fifo_13_enable; + wire [ 35: 0] fifo_13_mux; + reg [ 35: 0] fifo_14; + wire fifo_14_enable; + wire [ 35: 0] fifo_14_mux; + reg [ 35: 0] fifo_15; + wire fifo_15_enable; + wire [ 35: 0] fifo_15_mux; + wire fifo_1_enable; + wire [ 35: 0] fifo_1_mux; + reg [ 35: 0] fifo_2; + wire fifo_2_enable; + wire [ 35: 0] fifo_2_mux; + reg [ 35: 0] fifo_3; + wire fifo_3_enable; + wire [ 35: 0] fifo_3_mux; + reg [ 35: 0] fifo_4; + wire fifo_4_enable; + wire [ 35: 0] fifo_4_mux; + reg [ 35: 0] fifo_5; + wire fifo_5_enable; + wire [ 35: 0] fifo_5_mux; + reg [ 35: 0] fifo_6; + wire fifo_6_enable; + wire [ 35: 0] fifo_6_mux; + reg [ 35: 0] fifo_7; + wire fifo_7_enable; + wire [ 35: 0] fifo_7_mux; + reg [ 35: 0] fifo_8; + wire fifo_8_enable; + wire [ 35: 0] fifo_8_mux; + reg [ 35: 0] fifo_9; + wire fifo_9_enable; + wire [ 35: 0] fifo_9_mux; + wire [ 35: 0] fifo_read_mux; + reg [ 4: 0] fifocount /* synthesis ALTERA_ATTRIBUTE = "SUPPRESS_DA_RULE_INTERNAL=R101" */; + wire [ 4: 0] fifocount_inc_fifocount; + wire [ 35: 0] fifohead; + reg [ 3: 0] fiforp /* synthesis ALTERA_ATTRIBUTE = "SUPPRESS_DA_RULE_INTERNAL=R101" */; + reg [ 3: 0] fifowp /* synthesis ALTERA_ATTRIBUTE = "SUPPRESS_DA_RULE_INTERNAL=R101" */; + wire [ 3: 0] fifowp1; + wire [ 3: 0] fifowp2; + wire [ 3: 0] fifowp_inc_fifowp; + wire free2; + wire free3; + wire itm_valid; + reg ovf_pending /* synthesis ALTERA_ATTRIBUTE = "SUPPRESS_DA_RULE_INTERNAL=R101" */; + wire [ 35: 0] ovr_pending_atm; + wire [ 35: 0] ovr_pending_dtm; + wire [ 1: 0] tm_count; + wire tm_count_ge1; + wire tm_count_ge2; + wire tm_count_ge3; + wire trc_this; + wire [ 35: 0] tw; + assign trc_this = trc_on | (dbrk_traceon & ~dbrk_traceoff) | dbrk_traceme; + assign itm_valid = |itm[35 : 32]; + assign atm_valid = |atm[35 : 32] & trc_this; + assign dtm_valid = |dtm[35 : 32] & trc_this; + assign free2 = ~fifocount[4]; + assign free3 = ~fifocount[4] & ~&fifocount[3 : 0]; + assign empty = ~|fifocount; + assign fifowp1 = fifowp + 1; + assign fifowp2 = fifowp + 2; + //nios_system_nios2_processor_nios2_oci_compute_tm_count_tm_count, which is an e_instance + nios_system_nios2_processor_nios2_oci_compute_tm_count nios_system_nios2_processor_nios2_oci_compute_tm_count_tm_count + ( + .atm_valid (atm_valid), + .compute_tm_count (compute_tm_count_tm_count), + .dtm_valid (dtm_valid), + .itm_valid (itm_valid) + ); + + assign tm_count = compute_tm_count_tm_count; + //nios_system_nios2_processor_nios2_oci_fifowp_inc_fifowp, which is an e_instance + nios_system_nios2_processor_nios2_oci_fifowp_inc nios_system_nios2_processor_nios2_oci_fifowp_inc_fifowp + ( + .fifowp_inc (fifowp_inc_fifowp), + .free2 (free2), + .free3 (free3), + .tm_count (tm_count) + ); + + //nios_system_nios2_processor_nios2_oci_fifocount_inc_fifocount, which is an e_instance + nios_system_nios2_processor_nios2_oci_fifocount_inc nios_system_nios2_processor_nios2_oci_fifocount_inc_fifocount + ( + .empty (empty), + .fifocount_inc (fifocount_inc_fifocount), + .free2 (free2), + .free3 (free3), + .tm_count (tm_count) + ); + + //the_nios_system_nios2_processor_oci_test_bench, which is an e_instance + nios_system_nios2_processor_oci_test_bench the_nios_system_nios2_processor_oci_test_bench + ( + .dct_buffer (dct_buffer), + .dct_count (dct_count), + .test_ending (test_ending), + .test_has_ended (test_has_ended) + ); + + always @(posedge clk or negedge jrst_n) + begin + if (jrst_n == 0) + begin + fiforp <= 0; + fifowp <= 0; + fifocount <= 0; + ovf_pending <= 1; + end + else + begin + fifowp <= fifowp + fifowp_inc_fifowp; + fifocount <= fifocount + fifocount_inc_fifocount; + if (~empty) + fiforp <= fiforp + 1; + if (~trc_this || (~free2 & tm_count[1]) || (~free3 & (&tm_count))) + ovf_pending <= 1; + else if (atm_valid | dtm_valid) + ovf_pending <= 0; + end + end + + + assign fifohead = fifo_read_mux; + assign tw = 0 ? { (empty ? 4'h0 : fifohead[35 : 32]), fifohead[31 : 0]} : itm; + assign fifo_0_enable = ((fifowp == 4'd0) && tm_count_ge1) || (free2 && (fifowp1== 4'd0) && tm_count_ge2) ||(free3 && (fifowp2== 4'd0) && tm_count_ge3); + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + fifo_0 <= 0; + else if (fifo_0_enable) + fifo_0 <= fifo_0_mux; + end + + + assign fifo_0_mux = (((fifowp == 4'd0) && itm_valid))? itm : + (((fifowp == 4'd0) && atm_valid))? ovr_pending_atm : + (((fifowp == 4'd0) && dtm_valid))? ovr_pending_dtm : + (((fifowp1 == 4'd0) && (free2 & itm_valid & atm_valid)))? ovr_pending_atm : + (((fifowp1 == 4'd0) && (free2 & itm_valid & dtm_valid)))? ovr_pending_dtm : + (((fifowp1 == 4'd0) && (free2 & atm_valid & dtm_valid)))? ovr_pending_dtm : + ovr_pending_dtm; + + assign fifo_1_enable = ((fifowp == 4'd1) && tm_count_ge1) || (free2 && (fifowp1== 4'd1) && tm_count_ge2) ||(free3 && (fifowp2== 4'd1) && tm_count_ge3); + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + fifo_1 <= 0; + else if (fifo_1_enable) + fifo_1 <= fifo_1_mux; + end + + + assign fifo_1_mux = (((fifowp == 4'd1) && itm_valid))? itm : + (((fifowp == 4'd1) && atm_valid))? ovr_pending_atm : + (((fifowp == 4'd1) && dtm_valid))? ovr_pending_dtm : + (((fifowp1 == 4'd1) && (free2 & itm_valid & atm_valid)))? ovr_pending_atm : + (((fifowp1 == 4'd1) && (free2 & itm_valid & dtm_valid)))? ovr_pending_dtm : + (((fifowp1 == 4'd1) && (free2 & atm_valid & dtm_valid)))? ovr_pending_dtm : + ovr_pending_dtm; + + assign fifo_2_enable = ((fifowp == 4'd2) && tm_count_ge1) || (free2 && (fifowp1== 4'd2) && tm_count_ge2) ||(free3 && (fifowp2== 4'd2) && tm_count_ge3); + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + fifo_2 <= 0; + else if (fifo_2_enable) + fifo_2 <= fifo_2_mux; + end + + + assign fifo_2_mux = (((fifowp == 4'd2) && itm_valid))? itm : + (((fifowp == 4'd2) && atm_valid))? ovr_pending_atm : + (((fifowp == 4'd2) && dtm_valid))? ovr_pending_dtm : + (((fifowp1 == 4'd2) && (free2 & itm_valid & atm_valid)))? ovr_pending_atm : + (((fifowp1 == 4'd2) && (free2 & itm_valid & dtm_valid)))? ovr_pending_dtm : + (((fifowp1 == 4'd2) && (free2 & atm_valid & dtm_valid)))? ovr_pending_dtm : + ovr_pending_dtm; + + assign fifo_3_enable = ((fifowp == 4'd3) && tm_count_ge1) || (free2 && (fifowp1== 4'd3) && tm_count_ge2) ||(free3 && (fifowp2== 4'd3) && tm_count_ge3); + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + fifo_3 <= 0; + else if (fifo_3_enable) + fifo_3 <= fifo_3_mux; + end + + + assign fifo_3_mux = (((fifowp == 4'd3) && itm_valid))? itm : + (((fifowp == 4'd3) && atm_valid))? ovr_pending_atm : + (((fifowp == 4'd3) && dtm_valid))? ovr_pending_dtm : + (((fifowp1 == 4'd3) && (free2 & itm_valid & atm_valid)))? ovr_pending_atm : + (((fifowp1 == 4'd3) && (free2 & itm_valid & dtm_valid)))? ovr_pending_dtm : + (((fifowp1 == 4'd3) && (free2 & atm_valid & dtm_valid)))? ovr_pending_dtm : + ovr_pending_dtm; + + assign fifo_4_enable = ((fifowp == 4'd4) && tm_count_ge1) || (free2 && (fifowp1== 4'd4) && tm_count_ge2) ||(free3 && (fifowp2== 4'd4) && tm_count_ge3); + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + fifo_4 <= 0; + else if (fifo_4_enable) + fifo_4 <= fifo_4_mux; + end + + + assign fifo_4_mux = (((fifowp == 4'd4) && itm_valid))? itm : + (((fifowp == 4'd4) && atm_valid))? ovr_pending_atm : + (((fifowp == 4'd4) && dtm_valid))? ovr_pending_dtm : + (((fifowp1 == 4'd4) && (free2 & itm_valid & atm_valid)))? ovr_pending_atm : + (((fifowp1 == 4'd4) && (free2 & itm_valid & dtm_valid)))? ovr_pending_dtm : + (((fifowp1 == 4'd4) && (free2 & atm_valid & dtm_valid)))? ovr_pending_dtm : + ovr_pending_dtm; + + assign fifo_5_enable = ((fifowp == 4'd5) && tm_count_ge1) || (free2 && (fifowp1== 4'd5) && tm_count_ge2) ||(free3 && (fifowp2== 4'd5) && tm_count_ge3); + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + fifo_5 <= 0; + else if (fifo_5_enable) + fifo_5 <= fifo_5_mux; + end + + + assign fifo_5_mux = (((fifowp == 4'd5) && itm_valid))? itm : + (((fifowp == 4'd5) && atm_valid))? ovr_pending_atm : + (((fifowp == 4'd5) && dtm_valid))? ovr_pending_dtm : + (((fifowp1 == 4'd5) && (free2 & itm_valid & atm_valid)))? ovr_pending_atm : + (((fifowp1 == 4'd5) && (free2 & itm_valid & dtm_valid)))? ovr_pending_dtm : + (((fifowp1 == 4'd5) && (free2 & atm_valid & dtm_valid)))? ovr_pending_dtm : + ovr_pending_dtm; + + assign fifo_6_enable = ((fifowp == 4'd6) && tm_count_ge1) || (free2 && (fifowp1== 4'd6) && tm_count_ge2) ||(free3 && (fifowp2== 4'd6) && tm_count_ge3); + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + fifo_6 <= 0; + else if (fifo_6_enable) + fifo_6 <= fifo_6_mux; + end + + + assign fifo_6_mux = (((fifowp == 4'd6) && itm_valid))? itm : + (((fifowp == 4'd6) && atm_valid))? ovr_pending_atm : + (((fifowp == 4'd6) && dtm_valid))? ovr_pending_dtm : + (((fifowp1 == 4'd6) && (free2 & itm_valid & atm_valid)))? ovr_pending_atm : + (((fifowp1 == 4'd6) && (free2 & itm_valid & dtm_valid)))? ovr_pending_dtm : + (((fifowp1 == 4'd6) && (free2 & atm_valid & dtm_valid)))? ovr_pending_dtm : + ovr_pending_dtm; + + assign fifo_7_enable = ((fifowp == 4'd7) && tm_count_ge1) || (free2 && (fifowp1== 4'd7) && tm_count_ge2) ||(free3 && (fifowp2== 4'd7) && tm_count_ge3); + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + fifo_7 <= 0; + else if (fifo_7_enable) + fifo_7 <= fifo_7_mux; + end + + + assign fifo_7_mux = (((fifowp == 4'd7) && itm_valid))? itm : + (((fifowp == 4'd7) && atm_valid))? ovr_pending_atm : + (((fifowp == 4'd7) && dtm_valid))? ovr_pending_dtm : + (((fifowp1 == 4'd7) && (free2 & itm_valid & atm_valid)))? ovr_pending_atm : + (((fifowp1 == 4'd7) && (free2 & itm_valid & dtm_valid)))? ovr_pending_dtm : + (((fifowp1 == 4'd7) && (free2 & atm_valid & dtm_valid)))? ovr_pending_dtm : + ovr_pending_dtm; + + assign fifo_8_enable = ((fifowp == 4'd8) && tm_count_ge1) || (free2 && (fifowp1== 4'd8) && tm_count_ge2) ||(free3 && (fifowp2== 4'd8) && tm_count_ge3); + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + fifo_8 <= 0; + else if (fifo_8_enable) + fifo_8 <= fifo_8_mux; + end + + + assign fifo_8_mux = (((fifowp == 4'd8) && itm_valid))? itm : + (((fifowp == 4'd8) && atm_valid))? ovr_pending_atm : + (((fifowp == 4'd8) && dtm_valid))? ovr_pending_dtm : + (((fifowp1 == 4'd8) && (free2 & itm_valid & atm_valid)))? ovr_pending_atm : + (((fifowp1 == 4'd8) && (free2 & itm_valid & dtm_valid)))? ovr_pending_dtm : + (((fifowp1 == 4'd8) && (free2 & atm_valid & dtm_valid)))? ovr_pending_dtm : + ovr_pending_dtm; + + assign fifo_9_enable = ((fifowp == 4'd9) && tm_count_ge1) || (free2 && (fifowp1== 4'd9) && tm_count_ge2) ||(free3 && (fifowp2== 4'd9) && tm_count_ge3); + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + fifo_9 <= 0; + else if (fifo_9_enable) + fifo_9 <= fifo_9_mux; + end + + + assign fifo_9_mux = (((fifowp == 4'd9) && itm_valid))? itm : + (((fifowp == 4'd9) && atm_valid))? ovr_pending_atm : + (((fifowp == 4'd9) && dtm_valid))? ovr_pending_dtm : + (((fifowp1 == 4'd9) && (free2 & itm_valid & atm_valid)))? ovr_pending_atm : + (((fifowp1 == 4'd9) && (free2 & itm_valid & dtm_valid)))? ovr_pending_dtm : + (((fifowp1 == 4'd9) && (free2 & atm_valid & dtm_valid)))? ovr_pending_dtm : + ovr_pending_dtm; + + assign fifo_10_enable = ((fifowp == 4'd10) && tm_count_ge1) || (free2 && (fifowp1== 4'd10) && tm_count_ge2) ||(free3 && (fifowp2== 4'd10) && tm_count_ge3); + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + fifo_10 <= 0; + else if (fifo_10_enable) + fifo_10 <= fifo_10_mux; + end + + + assign fifo_10_mux = (((fifowp == 4'd10) && itm_valid))? itm : + (((fifowp == 4'd10) && atm_valid))? ovr_pending_atm : + (((fifowp == 4'd10) && dtm_valid))? ovr_pending_dtm : + (((fifowp1 == 4'd10) && (free2 & itm_valid & atm_valid)))? ovr_pending_atm : + (((fifowp1 == 4'd10) && (free2 & itm_valid & dtm_valid)))? ovr_pending_dtm : + (((fifowp1 == 4'd10) && (free2 & atm_valid & dtm_valid)))? ovr_pending_dtm : + ovr_pending_dtm; + + assign fifo_11_enable = ((fifowp == 4'd11) && tm_count_ge1) || (free2 && (fifowp1== 4'd11) && tm_count_ge2) ||(free3 && (fifowp2== 4'd11) && tm_count_ge3); + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + fifo_11 <= 0; + else if (fifo_11_enable) + fifo_11 <= fifo_11_mux; + end + + + assign fifo_11_mux = (((fifowp == 4'd11) && itm_valid))? itm : + (((fifowp == 4'd11) && atm_valid))? ovr_pending_atm : + (((fifowp == 4'd11) && dtm_valid))? ovr_pending_dtm : + (((fifowp1 == 4'd11) && (free2 & itm_valid & atm_valid)))? ovr_pending_atm : + (((fifowp1 == 4'd11) && (free2 & itm_valid & dtm_valid)))? ovr_pending_dtm : + (((fifowp1 == 4'd11) && (free2 & atm_valid & dtm_valid)))? ovr_pending_dtm : + ovr_pending_dtm; + + assign fifo_12_enable = ((fifowp == 4'd12) && tm_count_ge1) || (free2 && (fifowp1== 4'd12) && tm_count_ge2) ||(free3 && (fifowp2== 4'd12) && tm_count_ge3); + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + fifo_12 <= 0; + else if (fifo_12_enable) + fifo_12 <= fifo_12_mux; + end + + + assign fifo_12_mux = (((fifowp == 4'd12) && itm_valid))? itm : + (((fifowp == 4'd12) && atm_valid))? ovr_pending_atm : + (((fifowp == 4'd12) && dtm_valid))? ovr_pending_dtm : + (((fifowp1 == 4'd12) && (free2 & itm_valid & atm_valid)))? ovr_pending_atm : + (((fifowp1 == 4'd12) && (free2 & itm_valid & dtm_valid)))? ovr_pending_dtm : + (((fifowp1 == 4'd12) && (free2 & atm_valid & dtm_valid)))? ovr_pending_dtm : + ovr_pending_dtm; + + assign fifo_13_enable = ((fifowp == 4'd13) && tm_count_ge1) || (free2 && (fifowp1== 4'd13) && tm_count_ge2) ||(free3 && (fifowp2== 4'd13) && tm_count_ge3); + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + fifo_13 <= 0; + else if (fifo_13_enable) + fifo_13 <= fifo_13_mux; + end + + + assign fifo_13_mux = (((fifowp == 4'd13) && itm_valid))? itm : + (((fifowp == 4'd13) && atm_valid))? ovr_pending_atm : + (((fifowp == 4'd13) && dtm_valid))? ovr_pending_dtm : + (((fifowp1 == 4'd13) && (free2 & itm_valid & atm_valid)))? ovr_pending_atm : + (((fifowp1 == 4'd13) && (free2 & itm_valid & dtm_valid)))? ovr_pending_dtm : + (((fifowp1 == 4'd13) && (free2 & atm_valid & dtm_valid)))? ovr_pending_dtm : + ovr_pending_dtm; + + assign fifo_14_enable = ((fifowp == 4'd14) && tm_count_ge1) || (free2 && (fifowp1== 4'd14) && tm_count_ge2) ||(free3 && (fifowp2== 4'd14) && tm_count_ge3); + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + fifo_14 <= 0; + else if (fifo_14_enable) + fifo_14 <= fifo_14_mux; + end + + + assign fifo_14_mux = (((fifowp == 4'd14) && itm_valid))? itm : + (((fifowp == 4'd14) && atm_valid))? ovr_pending_atm : + (((fifowp == 4'd14) && dtm_valid))? ovr_pending_dtm : + (((fifowp1 == 4'd14) && (free2 & itm_valid & atm_valid)))? ovr_pending_atm : + (((fifowp1 == 4'd14) && (free2 & itm_valid & dtm_valid)))? ovr_pending_dtm : + (((fifowp1 == 4'd14) && (free2 & atm_valid & dtm_valid)))? ovr_pending_dtm : + ovr_pending_dtm; + + assign fifo_15_enable = ((fifowp == 4'd15) && tm_count_ge1) || (free2 && (fifowp1== 4'd15) && tm_count_ge2) ||(free3 && (fifowp2== 4'd15) && tm_count_ge3); + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + fifo_15 <= 0; + else if (fifo_15_enable) + fifo_15 <= fifo_15_mux; + end + + + assign fifo_15_mux = (((fifowp == 4'd15) && itm_valid))? itm : + (((fifowp == 4'd15) && atm_valid))? ovr_pending_atm : + (((fifowp == 4'd15) && dtm_valid))? ovr_pending_dtm : + (((fifowp1 == 4'd15) && (free2 & itm_valid & atm_valid)))? ovr_pending_atm : + (((fifowp1 == 4'd15) && (free2 & itm_valid & dtm_valid)))? ovr_pending_dtm : + (((fifowp1 == 4'd15) && (free2 & atm_valid & dtm_valid)))? ovr_pending_dtm : + ovr_pending_dtm; + + assign tm_count_ge1 = |tm_count; + assign tm_count_ge2 = tm_count[1]; + assign tm_count_ge3 = &tm_count; + assign ovr_pending_atm = {ovf_pending, atm[34 : 0]}; + assign ovr_pending_dtm = {ovf_pending, dtm[34 : 0]}; + assign fifo_read_mux = (fiforp == 4'd0)? fifo_0 : + (fiforp == 4'd1)? fifo_1 : + (fiforp == 4'd2)? fifo_2 : + (fiforp == 4'd3)? fifo_3 : + (fiforp == 4'd4)? fifo_4 : + (fiforp == 4'd5)? fifo_5 : + (fiforp == 4'd6)? fifo_6 : + (fiforp == 4'd7)? fifo_7 : + (fiforp == 4'd8)? fifo_8 : + (fiforp == 4'd9)? fifo_9 : + (fiforp == 4'd10)? fifo_10 : + (fiforp == 4'd11)? fifo_11 : + (fiforp == 4'd12)? fifo_12 : + (fiforp == 4'd13)? fifo_13 : + (fiforp == 4'd14)? fifo_14 : + fifo_15; + + +endmodule + + +// synthesis translate_off +`timescale 1ns / 1ps +// synthesis translate_on + +// turn off superfluous verilog processor warnings +// altera message_level Level1 +// altera message_off 10034 10035 10036 10037 10230 10240 10030 + +module nios_system_nios2_processor_nios2_oci_pib ( + // inputs: + clk, + clkx2, + jrst_n, + tw, + + // outputs: + tr_clk, + tr_data + ) +; + + output tr_clk; + output [ 17: 0] tr_data; + input clk; + input clkx2; + input jrst_n; + input [ 35: 0] tw; + + wire phase; + wire tr_clk; + reg tr_clk_reg /* synthesis ALTERA_ATTRIBUTE = "SUPPRESS_DA_RULE_INTERNAL=R101" */; + wire [ 17: 0] tr_data; + reg [ 17: 0] tr_data_reg /* synthesis ALTERA_ATTRIBUTE = "SUPPRESS_DA_RULE_INTERNAL=R101" */; + reg x1 /* synthesis ALTERA_ATTRIBUTE = "SUPPRESS_DA_RULE_INTERNAL=R101" */; + reg x2 /* synthesis ALTERA_ATTRIBUTE = "SUPPRESS_DA_RULE_INTERNAL=R101" */; + assign phase = x1^x2; + always @(posedge clk or negedge jrst_n) + begin + if (jrst_n == 0) + x1 <= 0; + else + x1 <= ~x1; + end + + + always @(posedge clkx2 or negedge jrst_n) + begin + if (jrst_n == 0) + begin + x2 <= 0; + tr_clk_reg <= 0; + tr_data_reg <= 0; + end + else + begin + x2 <= x1; + tr_clk_reg <= ~phase; + tr_data_reg <= phase ? tw[17 : 0] : tw[35 : 18]; + end + end + + + assign tr_clk = 0 ? tr_clk_reg : 0; + assign tr_data = 0 ? tr_data_reg : 0; + +endmodule + + +// synthesis translate_off +`timescale 1ns / 1ps +// synthesis translate_on + +// turn off superfluous verilog processor warnings +// altera message_level Level1 +// altera message_off 10034 10035 10036 10037 10230 10240 10030 + +module nios_system_nios2_processor_nios2_oci_im ( + // inputs: + clk, + jdo, + jrst_n, + reset_n, + take_action_tracectrl, + take_action_tracemem_a, + take_action_tracemem_b, + take_no_action_tracemem_a, + trc_ctrl, + tw, + + // outputs: + tracemem_on, + tracemem_trcdata, + tracemem_tw, + trc_enb, + trc_im_addr, + trc_wrap, + xbrk_wrap_traceoff + ) +; + + output tracemem_on; + output [ 35: 0] tracemem_trcdata; + output tracemem_tw; + output trc_enb; + output [ 6: 0] trc_im_addr; + output trc_wrap; + output xbrk_wrap_traceoff; + input clk; + input [ 37: 0] jdo; + input jrst_n; + input reset_n; + input take_action_tracectrl; + input take_action_tracemem_a; + input take_action_tracemem_b; + input take_no_action_tracemem_a; + input [ 15: 0] trc_ctrl; + input [ 35: 0] tw; + + wire tracemem_on; + wire [ 35: 0] tracemem_trcdata; + wire tracemem_tw; + wire trc_enb; + reg [ 6: 0] trc_im_addr /* synthesis ALTERA_ATTRIBUTE = "SUPPRESS_DA_RULE_INTERNAL=\"D101,D103,R101\"" */; + wire [ 35: 0] trc_im_data; + reg [ 16: 0] trc_jtag_addr /* synthesis ALTERA_ATTRIBUTE = "SUPPRESS_DA_RULE_INTERNAL=D101" */; + wire trc_on_chip; + reg trc_wrap /* synthesis ALTERA_ATTRIBUTE = "SUPPRESS_DA_RULE_INTERNAL=\"D101,D103,R101\"" */; + wire tw_valid; + wire xbrk_wrap_traceoff; + assign trc_im_data = tw; + always @(posedge clk or negedge jrst_n) + begin + if (jrst_n == 0) + begin + trc_im_addr <= 0; + trc_wrap <= 0; + end + else if (!0) + begin + trc_im_addr <= 0; + trc_wrap <= 0; + end + else if (take_action_tracectrl && + (jdo[4] | jdo[3])) + begin + if (jdo[4]) + trc_im_addr <= 0; + if (jdo[3]) + trc_wrap <= 0; + end + else if (trc_enb & trc_on_chip & tw_valid) + begin + trc_im_addr <= trc_im_addr+1; + if (&trc_im_addr) + trc_wrap <= 1; + end + end + + + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + trc_jtag_addr <= 0; + else if (take_action_tracemem_a || + take_no_action_tracemem_a || + take_action_tracemem_b) + trc_jtag_addr <= take_action_tracemem_a ? + jdo[35 : 19] : + trc_jtag_addr + 1; + + end + + + assign trc_enb = trc_ctrl[0]; + assign trc_on_chip = ~trc_ctrl[8]; + assign tw_valid = |trc_im_data[35 : 32]; + assign xbrk_wrap_traceoff = trc_ctrl[10] & trc_wrap; + assign tracemem_tw = trc_wrap; + assign tracemem_on = trc_enb; + assign tracemem_trcdata = 0; + +endmodule + + +// synthesis translate_off +`timescale 1ns / 1ps +// synthesis translate_on + +// turn off superfluous verilog processor warnings +// altera message_level Level1 +// altera message_off 10034 10035 10036 10037 10230 10240 10030 + +module nios_system_nios2_processor_nios2_performance_monitors +; + + + +endmodule + + +// synthesis translate_off +`timescale 1ns / 1ps +// synthesis translate_on + +// turn off superfluous verilog processor warnings +// altera message_level Level1 +// altera message_off 10034 10035 10036 10037 10230 10240 10030 + +module nios_system_nios2_processor_nios2_oci ( + // inputs: + D_valid, + E_st_data, + E_valid, + F_pc, + address_nxt, + av_ld_data_aligned_filtered, + byteenable_nxt, + clk, + d_address, + d_read, + d_waitrequest, + d_write, + debugaccess_nxt, + hbreak_enabled, + read_nxt, + reset, + reset_n, + test_ending, + test_has_ended, + write_nxt, + writedata_nxt, + + // outputs: + jtag_debug_module_debugaccess_to_roms, + oci_hbreak_req, + oci_ienable, + oci_single_step_mode, + readdata, + resetrequest, + waitrequest + ) +; + + output jtag_debug_module_debugaccess_to_roms; + output oci_hbreak_req; + output [ 31: 0] oci_ienable; + output oci_single_step_mode; + output [ 31: 0] readdata; + output resetrequest; + output waitrequest; + input D_valid; + input [ 31: 0] E_st_data; + input E_valid; + input [ 16: 0] F_pc; + input [ 8: 0] address_nxt; + input [ 31: 0] av_ld_data_aligned_filtered; + input [ 3: 0] byteenable_nxt; + input clk; + input [ 18: 0] d_address; + input d_read; + input d_waitrequest; + input d_write; + input debugaccess_nxt; + input hbreak_enabled; + input read_nxt; + input reset; + input reset_n; + input test_ending; + input test_has_ended; + input write_nxt; + input [ 31: 0] writedata_nxt; + + wire [ 31: 0] MonDReg; + reg [ 8: 0] address; + wire [ 35: 0] atm; + wire [ 31: 0] break_readreg; + reg [ 3: 0] byteenable; + wire clkx2; + wire [ 18: 0] cpu_d_address; + wire cpu_d_read; + wire [ 31: 0] cpu_d_readdata; + wire cpu_d_wait; + wire cpu_d_write; + wire [ 31: 0] cpu_d_writedata; + wire dbrk_break; + wire dbrk_goto0; + wire dbrk_goto1; + wire dbrk_hit0_latch; + wire dbrk_hit1_latch; + wire dbrk_hit2_latch; + wire dbrk_hit3_latch; + wire dbrk_traceme; + wire dbrk_traceoff; + wire dbrk_traceon; + wire dbrk_trigout; + wire [ 29: 0] dct_buffer; + wire [ 3: 0] dct_count; + reg debugaccess; + wire debugack; + wire debugreq; + wire [ 35: 0] dtm; + wire dummy_sink; + wire [ 35: 0] itm; + wire [ 37: 0] jdo; + wire jrst_n; + wire jtag_debug_module_debugaccess_to_roms; + wire monitor_error; + wire monitor_go; + wire monitor_ready; + wire oci_hbreak_req; + wire [ 31: 0] oci_ienable; + wire [ 31: 0] oci_reg_readdata; + wire oci_single_step_mode; + wire [ 31: 0] ociram_readdata; + wire ocireg_ers; + wire ocireg_mrs; + reg read; + reg [ 31: 0] readdata; + wire resetlatch; + wire resetrequest; + wire st_ready_test_idle; + wire take_action_break_a; + wire take_action_break_b; + wire take_action_break_c; + wire take_action_ocimem_a; + wire take_action_ocimem_b; + wire take_action_ocireg; + wire take_action_tracectrl; + wire take_action_tracemem_a; + wire take_action_tracemem_b; + wire take_no_action_break_a; + wire take_no_action_break_b; + wire take_no_action_break_c; + wire take_no_action_ocimem_a; + wire take_no_action_tracemem_a; + wire tr_clk; + wire [ 17: 0] tr_data; + wire tracemem_on; + wire [ 35: 0] tracemem_trcdata; + wire tracemem_tw; + wire [ 15: 0] trc_ctrl; + wire trc_enb; + wire [ 6: 0] trc_im_addr; + wire trc_on; + wire trc_wrap; + wire trigbrktype; + wire trigger_state_0; + wire trigger_state_1; + wire trigout; + wire [ 35: 0] tw; + wire waitrequest; + reg write; + reg [ 31: 0] writedata; + wire xbrk_break; + wire [ 7: 0] xbrk_ctrl0; + wire [ 7: 0] xbrk_ctrl1; + wire [ 7: 0] xbrk_ctrl2; + wire [ 7: 0] xbrk_ctrl3; + wire xbrk_goto0; + wire xbrk_goto1; + wire xbrk_traceoff; + wire xbrk_traceon; + wire xbrk_trigout; + wire xbrk_wrap_traceoff; + nios_system_nios2_processor_nios2_oci_debug the_nios_system_nios2_processor_nios2_oci_debug + ( + .clk (clk), + .dbrk_break (dbrk_break), + .debugack (debugack), + .debugreq (debugreq), + .hbreak_enabled (hbreak_enabled), + .jdo (jdo), + .jrst_n (jrst_n), + .monitor_error (monitor_error), + .monitor_go (monitor_go), + .monitor_ready (monitor_ready), + .oci_hbreak_req (oci_hbreak_req), + .ocireg_ers (ocireg_ers), + .ocireg_mrs (ocireg_mrs), + .reset (reset), + .resetlatch (resetlatch), + .resetrequest (resetrequest), + .st_ready_test_idle (st_ready_test_idle), + .take_action_ocimem_a (take_action_ocimem_a), + .take_action_ocireg (take_action_ocireg), + .xbrk_break (xbrk_break) + ); + + nios_system_nios2_processor_nios2_ocimem the_nios_system_nios2_processor_nios2_ocimem + ( + .MonDReg (MonDReg), + .address (address), + .byteenable (byteenable), + .clk (clk), + .debugaccess (debugaccess), + .jdo (jdo), + .jrst_n (jrst_n), + .ociram_readdata (ociram_readdata), + .read (read), + .take_action_ocimem_a (take_action_ocimem_a), + .take_action_ocimem_b (take_action_ocimem_b), + .take_no_action_ocimem_a (take_no_action_ocimem_a), + .waitrequest (waitrequest), + .write (write), + .writedata (writedata) + ); + + nios_system_nios2_processor_nios2_avalon_reg the_nios_system_nios2_processor_nios2_avalon_reg + ( + .address (address), + .clk (clk), + .debugaccess (debugaccess), + .monitor_error (monitor_error), + .monitor_go (monitor_go), + .monitor_ready (monitor_ready), + .oci_ienable (oci_ienable), + .oci_reg_readdata (oci_reg_readdata), + .oci_single_step_mode (oci_single_step_mode), + .ocireg_ers (ocireg_ers), + .ocireg_mrs (ocireg_mrs), + .reset_n (reset_n), + .take_action_ocireg (take_action_ocireg), + .write (write), + .writedata (writedata) + ); + + nios_system_nios2_processor_nios2_oci_break the_nios_system_nios2_processor_nios2_oci_break + ( + .break_readreg (break_readreg), + .clk (clk), + .dbrk_break (dbrk_break), + .dbrk_goto0 (dbrk_goto0), + .dbrk_goto1 (dbrk_goto1), + .dbrk_hit0_latch (dbrk_hit0_latch), + .dbrk_hit1_latch (dbrk_hit1_latch), + .dbrk_hit2_latch (dbrk_hit2_latch), + .dbrk_hit3_latch (dbrk_hit3_latch), + .jdo (jdo), + .jrst_n (jrst_n), + .reset_n (reset_n), + .take_action_break_a (take_action_break_a), + .take_action_break_b (take_action_break_b), + .take_action_break_c (take_action_break_c), + .take_no_action_break_a (take_no_action_break_a), + .take_no_action_break_b (take_no_action_break_b), + .take_no_action_break_c (take_no_action_break_c), + .trigbrktype (trigbrktype), + .trigger_state_0 (trigger_state_0), + .trigger_state_1 (trigger_state_1), + .xbrk_ctrl0 (xbrk_ctrl0), + .xbrk_ctrl1 (xbrk_ctrl1), + .xbrk_ctrl2 (xbrk_ctrl2), + .xbrk_ctrl3 (xbrk_ctrl3), + .xbrk_goto0 (xbrk_goto0), + .xbrk_goto1 (xbrk_goto1) + ); + + nios_system_nios2_processor_nios2_oci_xbrk the_nios_system_nios2_processor_nios2_oci_xbrk + ( + .D_valid (D_valid), + .E_valid (E_valid), + .F_pc (F_pc), + .clk (clk), + .reset_n (reset_n), + .trigger_state_0 (trigger_state_0), + .trigger_state_1 (trigger_state_1), + .xbrk_break (xbrk_break), + .xbrk_ctrl0 (xbrk_ctrl0), + .xbrk_ctrl1 (xbrk_ctrl1), + .xbrk_ctrl2 (xbrk_ctrl2), + .xbrk_ctrl3 (xbrk_ctrl3), + .xbrk_goto0 (xbrk_goto0), + .xbrk_goto1 (xbrk_goto1), + .xbrk_traceoff (xbrk_traceoff), + .xbrk_traceon (xbrk_traceon), + .xbrk_trigout (xbrk_trigout) + ); + + nios_system_nios2_processor_nios2_oci_dbrk the_nios_system_nios2_processor_nios2_oci_dbrk + ( + .E_st_data (E_st_data), + .av_ld_data_aligned_filtered (av_ld_data_aligned_filtered), + .clk (clk), + .cpu_d_address (cpu_d_address), + .cpu_d_read (cpu_d_read), + .cpu_d_readdata (cpu_d_readdata), + .cpu_d_wait (cpu_d_wait), + .cpu_d_write (cpu_d_write), + .cpu_d_writedata (cpu_d_writedata), + .d_address (d_address), + .d_read (d_read), + .d_waitrequest (d_waitrequest), + .d_write (d_write), + .dbrk_break (dbrk_break), + .dbrk_goto0 (dbrk_goto0), + .dbrk_goto1 (dbrk_goto1), + .dbrk_traceme (dbrk_traceme), + .dbrk_traceoff (dbrk_traceoff), + .dbrk_traceon (dbrk_traceon), + .dbrk_trigout (dbrk_trigout), + .debugack (debugack), + .reset_n (reset_n) + ); + + nios_system_nios2_processor_nios2_oci_itrace the_nios_system_nios2_processor_nios2_oci_itrace + ( + .clk (clk), + .dbrk_traceoff (dbrk_traceoff), + .dbrk_traceon (dbrk_traceon), + .dct_buffer (dct_buffer), + .dct_count (dct_count), + .itm (itm), + .jdo (jdo), + .jrst_n (jrst_n), + .take_action_tracectrl (take_action_tracectrl), + .trc_ctrl (trc_ctrl), + .trc_enb (trc_enb), + .trc_on (trc_on), + .xbrk_traceoff (xbrk_traceoff), + .xbrk_traceon (xbrk_traceon), + .xbrk_wrap_traceoff (xbrk_wrap_traceoff) + ); + + nios_system_nios2_processor_nios2_oci_dtrace the_nios_system_nios2_processor_nios2_oci_dtrace + ( + .atm (atm), + .clk (clk), + .cpu_d_address (cpu_d_address), + .cpu_d_read (cpu_d_read), + .cpu_d_readdata (cpu_d_readdata), + .cpu_d_wait (cpu_d_wait), + .cpu_d_write (cpu_d_write), + .cpu_d_writedata (cpu_d_writedata), + .dtm (dtm), + .jrst_n (jrst_n), + .trc_ctrl (trc_ctrl) + ); + + nios_system_nios2_processor_nios2_oci_fifo the_nios_system_nios2_processor_nios2_oci_fifo + ( + .atm (atm), + .clk (clk), + .dbrk_traceme (dbrk_traceme), + .dbrk_traceoff (dbrk_traceoff), + .dbrk_traceon (dbrk_traceon), + .dct_buffer (dct_buffer), + .dct_count (dct_count), + .dtm (dtm), + .itm (itm), + .jrst_n (jrst_n), + .reset_n (reset_n), + .test_ending (test_ending), + .test_has_ended (test_has_ended), + .trc_on (trc_on), + .tw (tw) + ); + + nios_system_nios2_processor_nios2_oci_pib the_nios_system_nios2_processor_nios2_oci_pib + ( + .clk (clk), + .clkx2 (clkx2), + .jrst_n (jrst_n), + .tr_clk (tr_clk), + .tr_data (tr_data), + .tw (tw) + ); + + nios_system_nios2_processor_nios2_oci_im the_nios_system_nios2_processor_nios2_oci_im + ( + .clk (clk), + .jdo (jdo), + .jrst_n (jrst_n), + .reset_n (reset_n), + .take_action_tracectrl (take_action_tracectrl), + .take_action_tracemem_a (take_action_tracemem_a), + .take_action_tracemem_b (take_action_tracemem_b), + .take_no_action_tracemem_a (take_no_action_tracemem_a), + .tracemem_on (tracemem_on), + .tracemem_trcdata (tracemem_trcdata), + .tracemem_tw (tracemem_tw), + .trc_ctrl (trc_ctrl), + .trc_enb (trc_enb), + .trc_im_addr (trc_im_addr), + .trc_wrap (trc_wrap), + .tw (tw), + .xbrk_wrap_traceoff (xbrk_wrap_traceoff) + ); + + assign trigout = dbrk_trigout | xbrk_trigout; + assign jtag_debug_module_debugaccess_to_roms = debugack; + always @(posedge clk or negedge jrst_n) + begin + if (jrst_n == 0) + address <= 0; + else + address <= address_nxt; + end + + + always @(posedge clk or negedge jrst_n) + begin + if (jrst_n == 0) + byteenable <= 0; + else + byteenable <= byteenable_nxt; + end + + + always @(posedge clk or negedge jrst_n) + begin + if (jrst_n == 0) + writedata <= 0; + else + writedata <= writedata_nxt; + end + + + always @(posedge clk or negedge jrst_n) + begin + if (jrst_n == 0) + debugaccess <= 0; + else + debugaccess <= debugaccess_nxt; + end + + + always @(posedge clk or negedge jrst_n) + begin + if (jrst_n == 0) + read <= 0; + else + read <= read ? waitrequest : read_nxt; + end + + + always @(posedge clk or negedge jrst_n) + begin + if (jrst_n == 0) + write <= 0; + else + write <= write ? waitrequest : write_nxt; + end + + + always @(posedge clk or negedge jrst_n) + begin + if (jrst_n == 0) + readdata <= 0; + else + readdata <= address[8] ? oci_reg_readdata : ociram_readdata; + end + + + nios_system_nios2_processor_jtag_debug_module_wrapper the_nios_system_nios2_processor_jtag_debug_module_wrapper + ( + .MonDReg (MonDReg), + .break_readreg (break_readreg), + .clk (clk), + .dbrk_hit0_latch (dbrk_hit0_latch), + .dbrk_hit1_latch (dbrk_hit1_latch), + .dbrk_hit2_latch (dbrk_hit2_latch), + .dbrk_hit3_latch (dbrk_hit3_latch), + .debugack (debugack), + .jdo (jdo), + .jrst_n (jrst_n), + .monitor_error (monitor_error), + .monitor_ready (monitor_ready), + .reset_n (reset_n), + .resetlatch (resetlatch), + .st_ready_test_idle (st_ready_test_idle), + .take_action_break_a (take_action_break_a), + .take_action_break_b (take_action_break_b), + .take_action_break_c (take_action_break_c), + .take_action_ocimem_a (take_action_ocimem_a), + .take_action_ocimem_b (take_action_ocimem_b), + .take_action_tracectrl (take_action_tracectrl), + .take_action_tracemem_a (take_action_tracemem_a), + .take_action_tracemem_b (take_action_tracemem_b), + .take_no_action_break_a (take_no_action_break_a), + .take_no_action_break_b (take_no_action_break_b), + .take_no_action_break_c (take_no_action_break_c), + .take_no_action_ocimem_a (take_no_action_ocimem_a), + .take_no_action_tracemem_a (take_no_action_tracemem_a), + .tracemem_on (tracemem_on), + .tracemem_trcdata (tracemem_trcdata), + .tracemem_tw (tracemem_tw), + .trc_im_addr (trc_im_addr), + .trc_on (trc_on), + .trc_wrap (trc_wrap), + .trigbrktype (trigbrktype), + .trigger_state_1 (trigger_state_1) + ); + + //dummy sink, which is an e_mux + assign dummy_sink = tr_clk | + tr_data | + trigout | + debugack; + + assign debugreq = 0; + assign clkx2 = 0; + +endmodule + + +// synthesis translate_off +`timescale 1ns / 1ps +// synthesis translate_on + +// turn off superfluous verilog processor warnings +// altera message_level Level1 +// altera message_off 10034 10035 10036 10037 10230 10240 10030 + +module nios_system_nios2_processor ( + // inputs: + clk, + d_irq, + d_readdata, + d_waitrequest, + i_readdata, + i_waitrequest, + jtag_debug_module_address, + jtag_debug_module_byteenable, + jtag_debug_module_debugaccess, + jtag_debug_module_read, + jtag_debug_module_write, + jtag_debug_module_writedata, + reset_n, + + // outputs: + d_address, + d_byteenable, + d_read, + d_write, + d_writedata, + i_address, + i_read, + jtag_debug_module_debugaccess_to_roms, + jtag_debug_module_readdata, + jtag_debug_module_resetrequest, + jtag_debug_module_waitrequest, + no_ci_readra + ) +; + + output [ 18: 0] d_address; + output [ 3: 0] d_byteenable; + output d_read; + output d_write; + output [ 31: 0] d_writedata; + output [ 18: 0] i_address; + output i_read; + output jtag_debug_module_debugaccess_to_roms; + output [ 31: 0] jtag_debug_module_readdata; + output jtag_debug_module_resetrequest; + output jtag_debug_module_waitrequest; + output no_ci_readra; + input clk; + input [ 31: 0] d_irq; + input [ 31: 0] d_readdata; + input d_waitrequest; + input [ 31: 0] i_readdata; + input i_waitrequest; + input [ 8: 0] jtag_debug_module_address; + input [ 3: 0] jtag_debug_module_byteenable; + input jtag_debug_module_debugaccess; + input jtag_debug_module_read; + input jtag_debug_module_write; + input [ 31: 0] jtag_debug_module_writedata; + input reset_n; + + wire [ 1: 0] D_compare_op; + wire D_ctrl_alu_force_xor; + wire D_ctrl_alu_signed_comparison; + wire D_ctrl_alu_subtract; + wire D_ctrl_b_is_dst; + wire D_ctrl_br; + wire D_ctrl_br_cmp; + wire D_ctrl_br_uncond; + wire D_ctrl_break; + wire D_ctrl_crst; + wire D_ctrl_custom; + wire D_ctrl_custom_multi; + wire D_ctrl_exception; + wire D_ctrl_force_src2_zero; + wire D_ctrl_hi_imm16; + wire D_ctrl_ignore_dst; + wire D_ctrl_implicit_dst_eretaddr; + wire D_ctrl_implicit_dst_retaddr; + wire D_ctrl_jmp_direct; + wire D_ctrl_jmp_indirect; + wire D_ctrl_ld; + wire D_ctrl_ld_io; + wire D_ctrl_ld_non_io; + wire D_ctrl_ld_signed; + wire D_ctrl_logic; + wire D_ctrl_rdctl_inst; + wire D_ctrl_retaddr; + wire D_ctrl_rot_right; + wire D_ctrl_shift_logical; + wire D_ctrl_shift_right_arith; + wire D_ctrl_shift_rot; + wire D_ctrl_shift_rot_right; + wire D_ctrl_src2_choose_imm; + wire D_ctrl_st; + wire D_ctrl_uncond_cti_non_br; + wire D_ctrl_unsigned_lo_imm16; + wire D_ctrl_wrctl_inst; + wire [ 4: 0] D_dst_regnum; + wire [ 55: 0] D_inst; + reg [ 31: 0] D_iw /* synthesis ALTERA_IP_DEBUG_VISIBLE = 1 */; + wire [ 4: 0] D_iw_a; + wire [ 4: 0] D_iw_b; + wire [ 4: 0] D_iw_c; + wire [ 2: 0] D_iw_control_regnum; + wire [ 7: 0] D_iw_custom_n; + wire D_iw_custom_readra; + wire D_iw_custom_readrb; + wire D_iw_custom_writerc; + wire [ 15: 0] D_iw_imm16; + wire [ 25: 0] D_iw_imm26; + wire [ 4: 0] D_iw_imm5; + wire [ 1: 0] D_iw_memsz; + wire [ 5: 0] D_iw_op; + wire [ 5: 0] D_iw_opx; + wire [ 4: 0] D_iw_shift_imm5; + wire [ 4: 0] D_iw_trap_break_imm5; + wire [ 16: 0] D_jmp_direct_target_waddr; + wire [ 1: 0] D_logic_op; + wire [ 1: 0] D_logic_op_raw; + wire D_mem16; + wire D_mem32; + wire D_mem8; + wire D_op_add; + wire D_op_addi; + wire D_op_and; + wire D_op_andhi; + wire D_op_andi; + wire D_op_beq; + wire D_op_bge; + wire D_op_bgeu; + wire D_op_blt; + wire D_op_bltu; + wire D_op_bne; + wire D_op_br; + wire D_op_break; + wire D_op_bret; + wire D_op_call; + wire D_op_callr; + wire D_op_cmpeq; + wire D_op_cmpeqi; + wire D_op_cmpge; + wire D_op_cmpgei; + wire D_op_cmpgeu; + wire D_op_cmpgeui; + wire D_op_cmplt; + wire D_op_cmplti; + wire D_op_cmpltu; + wire D_op_cmpltui; + wire D_op_cmpne; + wire D_op_cmpnei; + wire D_op_crst; + wire D_op_custom; + wire D_op_div; + wire D_op_divu; + wire D_op_eret; + wire D_op_flushd; + wire D_op_flushda; + wire D_op_flushi; + wire D_op_flushp; + wire D_op_hbreak; + wire D_op_initd; + wire D_op_initda; + wire D_op_initi; + wire D_op_intr; + wire D_op_jmp; + wire D_op_jmpi; + wire D_op_ldb; + wire D_op_ldbio; + wire D_op_ldbu; + wire D_op_ldbuio; + wire D_op_ldh; + wire D_op_ldhio; + wire D_op_ldhu; + wire D_op_ldhuio; + wire D_op_ldl; + wire D_op_ldw; + wire D_op_ldwio; + wire D_op_mul; + wire D_op_muli; + wire D_op_mulxss; + wire D_op_mulxsu; + wire D_op_mulxuu; + wire D_op_nextpc; + wire D_op_nor; + wire D_op_opx; + wire D_op_or; + wire D_op_orhi; + wire D_op_ori; + wire D_op_rdctl; + wire D_op_rdprs; + wire D_op_ret; + wire D_op_rol; + wire D_op_roli; + wire D_op_ror; + wire D_op_rsv02; + wire D_op_rsv09; + wire D_op_rsv10; + wire D_op_rsv17; + wire D_op_rsv18; + wire D_op_rsv25; + wire D_op_rsv26; + wire D_op_rsv33; + wire D_op_rsv34; + wire D_op_rsv41; + wire D_op_rsv42; + wire D_op_rsv49; + wire D_op_rsv57; + wire D_op_rsv61; + wire D_op_rsv62; + wire D_op_rsv63; + wire D_op_rsvx00; + wire D_op_rsvx10; + wire D_op_rsvx15; + wire D_op_rsvx17; + wire D_op_rsvx21; + wire D_op_rsvx25; + wire D_op_rsvx33; + wire D_op_rsvx34; + wire D_op_rsvx35; + wire D_op_rsvx42; + wire D_op_rsvx43; + wire D_op_rsvx44; + wire D_op_rsvx47; + wire D_op_rsvx50; + wire D_op_rsvx51; + wire D_op_rsvx55; + wire D_op_rsvx56; + wire D_op_rsvx60; + wire D_op_rsvx63; + wire D_op_sll; + wire D_op_slli; + wire D_op_sra; + wire D_op_srai; + wire D_op_srl; + wire D_op_srli; + wire D_op_stb; + wire D_op_stbio; + wire D_op_stc; + wire D_op_sth; + wire D_op_sthio; + wire D_op_stw; + wire D_op_stwio; + wire D_op_sub; + wire D_op_sync; + wire D_op_trap; + wire D_op_wrctl; + wire D_op_wrprs; + wire D_op_xor; + wire D_op_xorhi; + wire D_op_xori; + reg D_valid; + wire [ 55: 0] D_vinst; + wire D_wr_dst_reg; + wire [ 31: 0] E_alu_result; + reg E_alu_sub; + wire [ 32: 0] E_arith_result; + wire [ 31: 0] E_arith_src1; + wire [ 31: 0] E_arith_src2; + wire E_ci_multi_stall; + wire [ 31: 0] E_ci_result; + wire E_cmp_result; + wire [ 31: 0] E_control_rd_data; + wire E_eq; + reg E_invert_arith_src_msb; + wire E_ld_stall; + wire [ 31: 0] E_logic_result; + wire E_logic_result_is_0; + wire E_lt; + wire [ 18: 0] E_mem_baddr; + wire [ 3: 0] E_mem_byte_en; + reg E_new_inst; + reg [ 4: 0] E_shift_rot_cnt; + wire [ 4: 0] E_shift_rot_cnt_nxt; + wire E_shift_rot_done; + wire E_shift_rot_fill_bit; + reg [ 31: 0] E_shift_rot_result; + wire [ 31: 0] E_shift_rot_result_nxt; + wire E_shift_rot_stall; + reg [ 31: 0] E_src1; + reg [ 31: 0] E_src2; + wire [ 31: 0] E_st_data; + wire E_st_stall; + wire E_stall; + reg E_valid; + wire [ 55: 0] E_vinst; + wire E_wrctl_bstatus; + wire E_wrctl_estatus; + wire E_wrctl_ienable; + wire E_wrctl_status; + wire [ 31: 0] F_av_iw; + wire [ 4: 0] F_av_iw_a; + wire [ 4: 0] F_av_iw_b; + wire [ 4: 0] F_av_iw_c; + wire [ 2: 0] F_av_iw_control_regnum; + wire [ 7: 0] F_av_iw_custom_n; + wire F_av_iw_custom_readra; + wire F_av_iw_custom_readrb; + wire F_av_iw_custom_writerc; + wire [ 15: 0] F_av_iw_imm16; + wire [ 25: 0] F_av_iw_imm26; + wire [ 4: 0] F_av_iw_imm5; + wire [ 1: 0] F_av_iw_memsz; + wire [ 5: 0] F_av_iw_op; + wire [ 5: 0] F_av_iw_opx; + wire [ 4: 0] F_av_iw_shift_imm5; + wire [ 4: 0] F_av_iw_trap_break_imm5; + wire F_av_mem16; + wire F_av_mem32; + wire F_av_mem8; + wire [ 55: 0] F_inst; + wire [ 31: 0] F_iw; + wire [ 4: 0] F_iw_a; + wire [ 4: 0] F_iw_b; + wire [ 4: 0] F_iw_c; + wire [ 2: 0] F_iw_control_regnum; + wire [ 7: 0] F_iw_custom_n; + wire F_iw_custom_readra; + wire F_iw_custom_readrb; + wire F_iw_custom_writerc; + wire [ 15: 0] F_iw_imm16; + wire [ 25: 0] F_iw_imm26; + wire [ 4: 0] F_iw_imm5; + wire [ 1: 0] F_iw_memsz; + wire [ 5: 0] F_iw_op; + wire [ 5: 0] F_iw_opx; + wire [ 4: 0] F_iw_shift_imm5; + wire [ 4: 0] F_iw_trap_break_imm5; + wire F_mem16; + wire F_mem32; + wire F_mem8; + wire F_op_add; + wire F_op_addi; + wire F_op_and; + wire F_op_andhi; + wire F_op_andi; + wire F_op_beq; + wire F_op_bge; + wire F_op_bgeu; + wire F_op_blt; + wire F_op_bltu; + wire F_op_bne; + wire F_op_br; + wire F_op_break; + wire F_op_bret; + wire F_op_call; + wire F_op_callr; + wire F_op_cmpeq; + wire F_op_cmpeqi; + wire F_op_cmpge; + wire F_op_cmpgei; + wire F_op_cmpgeu; + wire F_op_cmpgeui; + wire F_op_cmplt; + wire F_op_cmplti; + wire F_op_cmpltu; + wire F_op_cmpltui; + wire F_op_cmpne; + wire F_op_cmpnei; + wire F_op_crst; + wire F_op_custom; + wire F_op_div; + wire F_op_divu; + wire F_op_eret; + wire F_op_flushd; + wire F_op_flushda; + wire F_op_flushi; + wire F_op_flushp; + wire F_op_hbreak; + wire F_op_initd; + wire F_op_initda; + wire F_op_initi; + wire F_op_intr; + wire F_op_jmp; + wire F_op_jmpi; + wire F_op_ldb; + wire F_op_ldbio; + wire F_op_ldbu; + wire F_op_ldbuio; + wire F_op_ldh; + wire F_op_ldhio; + wire F_op_ldhu; + wire F_op_ldhuio; + wire F_op_ldl; + wire F_op_ldw; + wire F_op_ldwio; + wire F_op_mul; + wire F_op_muli; + wire F_op_mulxss; + wire F_op_mulxsu; + wire F_op_mulxuu; + wire F_op_nextpc; + wire F_op_nor; + wire F_op_opx; + wire F_op_or; + wire F_op_orhi; + wire F_op_ori; + wire F_op_rdctl; + wire F_op_rdprs; + wire F_op_ret; + wire F_op_rol; + wire F_op_roli; + wire F_op_ror; + wire F_op_rsv02; + wire F_op_rsv09; + wire F_op_rsv10; + wire F_op_rsv17; + wire F_op_rsv18; + wire F_op_rsv25; + wire F_op_rsv26; + wire F_op_rsv33; + wire F_op_rsv34; + wire F_op_rsv41; + wire F_op_rsv42; + wire F_op_rsv49; + wire F_op_rsv57; + wire F_op_rsv61; + wire F_op_rsv62; + wire F_op_rsv63; + wire F_op_rsvx00; + wire F_op_rsvx10; + wire F_op_rsvx15; + wire F_op_rsvx17; + wire F_op_rsvx21; + wire F_op_rsvx25; + wire F_op_rsvx33; + wire F_op_rsvx34; + wire F_op_rsvx35; + wire F_op_rsvx42; + wire F_op_rsvx43; + wire F_op_rsvx44; + wire F_op_rsvx47; + wire F_op_rsvx50; + wire F_op_rsvx51; + wire F_op_rsvx55; + wire F_op_rsvx56; + wire F_op_rsvx60; + wire F_op_rsvx63; + wire F_op_sll; + wire F_op_slli; + wire F_op_sra; + wire F_op_srai; + wire F_op_srl; + wire F_op_srli; + wire F_op_stb; + wire F_op_stbio; + wire F_op_stc; + wire F_op_sth; + wire F_op_sthio; + wire F_op_stw; + wire F_op_stwio; + wire F_op_sub; + wire F_op_sync; + wire F_op_trap; + wire F_op_wrctl; + wire F_op_wrprs; + wire F_op_xor; + wire F_op_xorhi; + wire F_op_xori; + reg [ 16: 0] F_pc /* synthesis ALTERA_IP_DEBUG_VISIBLE = 1 */; + wire F_pc_en; + wire [ 16: 0] F_pc_no_crst_nxt; + wire [ 16: 0] F_pc_nxt; + wire [ 16: 0] F_pc_plus_one; + wire [ 1: 0] F_pc_sel_nxt; + wire [ 18: 0] F_pcb; + wire [ 18: 0] F_pcb_nxt; + wire [ 18: 0] F_pcb_plus_four; + wire F_valid; + wire [ 55: 0] F_vinst; + reg [ 1: 0] R_compare_op; + reg R_ctrl_alu_force_xor; + wire R_ctrl_alu_force_xor_nxt; + reg R_ctrl_alu_signed_comparison; + wire R_ctrl_alu_signed_comparison_nxt; + reg R_ctrl_alu_subtract; + wire R_ctrl_alu_subtract_nxt; + reg R_ctrl_b_is_dst; + wire R_ctrl_b_is_dst_nxt; + reg R_ctrl_br; + reg R_ctrl_br_cmp; + wire R_ctrl_br_cmp_nxt; + wire R_ctrl_br_nxt; + reg R_ctrl_br_uncond; + wire R_ctrl_br_uncond_nxt; + reg R_ctrl_break; + wire R_ctrl_break_nxt; + reg R_ctrl_crst; + wire R_ctrl_crst_nxt; + reg R_ctrl_custom; + reg R_ctrl_custom_multi; + wire R_ctrl_custom_multi_nxt; + wire R_ctrl_custom_nxt; + reg R_ctrl_exception; + wire R_ctrl_exception_nxt; + reg R_ctrl_force_src2_zero; + wire R_ctrl_force_src2_zero_nxt; + reg R_ctrl_hi_imm16; + wire R_ctrl_hi_imm16_nxt; + reg R_ctrl_ignore_dst; + wire R_ctrl_ignore_dst_nxt; + reg R_ctrl_implicit_dst_eretaddr; + wire R_ctrl_implicit_dst_eretaddr_nxt; + reg R_ctrl_implicit_dst_retaddr; + wire R_ctrl_implicit_dst_retaddr_nxt; + reg R_ctrl_jmp_direct; + wire R_ctrl_jmp_direct_nxt; + reg R_ctrl_jmp_indirect; + wire R_ctrl_jmp_indirect_nxt; + reg R_ctrl_ld; + reg R_ctrl_ld_io; + wire R_ctrl_ld_io_nxt; + reg R_ctrl_ld_non_io; + wire R_ctrl_ld_non_io_nxt; + wire R_ctrl_ld_nxt; + reg R_ctrl_ld_signed; + wire R_ctrl_ld_signed_nxt; + reg R_ctrl_logic; + wire R_ctrl_logic_nxt; + reg R_ctrl_rdctl_inst; + wire R_ctrl_rdctl_inst_nxt; + reg R_ctrl_retaddr; + wire R_ctrl_retaddr_nxt; + reg R_ctrl_rot_right; + wire R_ctrl_rot_right_nxt; + reg R_ctrl_shift_logical; + wire R_ctrl_shift_logical_nxt; + reg R_ctrl_shift_right_arith; + wire R_ctrl_shift_right_arith_nxt; + reg R_ctrl_shift_rot; + wire R_ctrl_shift_rot_nxt; + reg R_ctrl_shift_rot_right; + wire R_ctrl_shift_rot_right_nxt; + reg R_ctrl_src2_choose_imm; + wire R_ctrl_src2_choose_imm_nxt; + reg R_ctrl_st; + wire R_ctrl_st_nxt; + reg R_ctrl_uncond_cti_non_br; + wire R_ctrl_uncond_cti_non_br_nxt; + reg R_ctrl_unsigned_lo_imm16; + wire R_ctrl_unsigned_lo_imm16_nxt; + reg R_ctrl_wrctl_inst; + wire R_ctrl_wrctl_inst_nxt; + reg [ 4: 0] R_dst_regnum /* synthesis ALTERA_IP_DEBUG_VISIBLE = 1 */; + wire R_en; + reg [ 1: 0] R_logic_op; + wire [ 31: 0] R_rf_a; + wire [ 31: 0] R_rf_b; + wire [ 31: 0] R_src1; + wire [ 31: 0] R_src2; + wire [ 15: 0] R_src2_hi; + wire [ 15: 0] R_src2_lo; + reg R_src2_use_imm; + wire [ 7: 0] R_stb_data; + wire [ 15: 0] R_sth_data; + reg R_valid; + wire [ 55: 0] R_vinst; + reg R_wr_dst_reg; + reg [ 31: 0] W_alu_result; + wire W_br_taken; + reg W_bstatus_reg; + wire W_bstatus_reg_inst_nxt; + wire W_bstatus_reg_nxt; + reg W_cmp_result; + reg [ 31: 0] W_control_rd_data; + reg W_estatus_reg; + wire W_estatus_reg_inst_nxt; + wire W_estatus_reg_nxt; + reg [ 31: 0] W_ienable_reg; + wire [ 31: 0] W_ienable_reg_nxt; + reg [ 31: 0] W_ipending_reg; + wire [ 31: 0] W_ipending_reg_nxt; + wire [ 18: 0] W_mem_baddr; + wire [ 31: 0] W_rf_wr_data; + wire W_rf_wren; + wire W_status_reg; + reg W_status_reg_pie; + wire W_status_reg_pie_inst_nxt; + wire W_status_reg_pie_nxt; + reg W_valid /* synthesis ALTERA_IP_DEBUG_VISIBLE = 1 */; + wire [ 55: 0] W_vinst; + wire [ 31: 0] W_wr_data; + wire [ 31: 0] W_wr_data_non_zero; + wire av_fill_bit; + reg [ 1: 0] av_ld_align_cycle; + wire [ 1: 0] av_ld_align_cycle_nxt; + wire av_ld_align_one_more_cycle; + reg av_ld_aligning_data; + wire av_ld_aligning_data_nxt; + reg [ 7: 0] av_ld_byte0_data; + wire [ 7: 0] av_ld_byte0_data_nxt; + reg [ 7: 0] av_ld_byte1_data; + wire av_ld_byte1_data_en; + wire [ 7: 0] av_ld_byte1_data_nxt; + reg [ 7: 0] av_ld_byte2_data; + wire [ 7: 0] av_ld_byte2_data_nxt; + reg [ 7: 0] av_ld_byte3_data; + wire [ 7: 0] av_ld_byte3_data_nxt; + wire [ 31: 0] av_ld_data_aligned_filtered; + wire [ 31: 0] av_ld_data_aligned_unfiltered; + wire av_ld_done; + wire av_ld_extend; + wire av_ld_getting_data; + wire av_ld_rshift8; + reg av_ld_waiting_for_data; + wire av_ld_waiting_for_data_nxt; + wire av_sign_bit; + wire [ 18: 0] d_address; + reg [ 3: 0] d_byteenable; + reg d_read; + wire d_read_nxt; + wire d_write; + wire d_write_nxt; + reg [ 31: 0] d_writedata; + reg hbreak_enabled; + reg hbreak_pending; + wire hbreak_pending_nxt; + wire hbreak_req; + wire [ 18: 0] i_address; + reg i_read; + wire i_read_nxt; + wire [ 31: 0] iactive; + wire intr_req; + wire jtag_debug_module_clk; + wire jtag_debug_module_debugaccess_to_roms; + wire [ 31: 0] jtag_debug_module_readdata; + wire jtag_debug_module_reset; + wire jtag_debug_module_resetrequest; + wire jtag_debug_module_waitrequest; + wire no_ci_readra; + wire oci_hbreak_req; + wire [ 31: 0] oci_ienable; + wire oci_single_step_mode; + wire oci_tb_hbreak_req; + wire test_ending; + wire test_has_ended; + reg wait_for_one_post_bret_inst; + //the_nios_system_nios2_processor_test_bench, which is an e_instance + nios_system_nios2_processor_test_bench the_nios_system_nios2_processor_test_bench + ( + .D_iw (D_iw), + .D_iw_op (D_iw_op), + .D_iw_opx (D_iw_opx), + .D_valid (D_valid), + .E_valid (E_valid), + .F_pcb (F_pcb), + .F_valid (F_valid), + .R_ctrl_ld (R_ctrl_ld), + .R_ctrl_ld_non_io (R_ctrl_ld_non_io), + .R_dst_regnum (R_dst_regnum), + .R_wr_dst_reg (R_wr_dst_reg), + .W_valid (W_valid), + .W_vinst (W_vinst), + .W_wr_data (W_wr_data), + .av_ld_data_aligned_filtered (av_ld_data_aligned_filtered), + .av_ld_data_aligned_unfiltered (av_ld_data_aligned_unfiltered), + .clk (clk), + .d_address (d_address), + .d_byteenable (d_byteenable), + .d_read (d_read), + .d_write (d_write), + .d_write_nxt (d_write_nxt), + .i_address (i_address), + .i_read (i_read), + .i_readdata (i_readdata), + .i_waitrequest (i_waitrequest), + .reset_n (reset_n), + .test_has_ended (test_has_ended) + ); + + assign F_av_iw_a = F_av_iw[31 : 27]; + assign F_av_iw_b = F_av_iw[26 : 22]; + assign F_av_iw_c = F_av_iw[21 : 17]; + assign F_av_iw_custom_n = F_av_iw[13 : 6]; + assign F_av_iw_custom_readra = F_av_iw[16]; + assign F_av_iw_custom_readrb = F_av_iw[15]; + assign F_av_iw_custom_writerc = F_av_iw[14]; + assign F_av_iw_opx = F_av_iw[16 : 11]; + assign F_av_iw_op = F_av_iw[5 : 0]; + assign F_av_iw_shift_imm5 = F_av_iw[10 : 6]; + assign F_av_iw_trap_break_imm5 = F_av_iw[10 : 6]; + assign F_av_iw_imm5 = F_av_iw[10 : 6]; + assign F_av_iw_imm16 = F_av_iw[21 : 6]; + assign F_av_iw_imm26 = F_av_iw[31 : 6]; + assign F_av_iw_memsz = F_av_iw[4 : 3]; + assign F_av_iw_control_regnum = F_av_iw[8 : 6]; + assign F_av_mem8 = F_av_iw_memsz == 2'b00; + assign F_av_mem16 = F_av_iw_memsz == 2'b01; + assign F_av_mem32 = F_av_iw_memsz[1] == 1'b1; + assign F_iw_a = F_iw[31 : 27]; + assign F_iw_b = F_iw[26 : 22]; + assign F_iw_c = F_iw[21 : 17]; + assign F_iw_custom_n = F_iw[13 : 6]; + assign F_iw_custom_readra = F_iw[16]; + assign F_iw_custom_readrb = F_iw[15]; + assign F_iw_custom_writerc = F_iw[14]; + assign F_iw_opx = F_iw[16 : 11]; + assign F_iw_op = F_iw[5 : 0]; + assign F_iw_shift_imm5 = F_iw[10 : 6]; + assign F_iw_trap_break_imm5 = F_iw[10 : 6]; + assign F_iw_imm5 = F_iw[10 : 6]; + assign F_iw_imm16 = F_iw[21 : 6]; + assign F_iw_imm26 = F_iw[31 : 6]; + assign F_iw_memsz = F_iw[4 : 3]; + assign F_iw_control_regnum = F_iw[8 : 6]; + assign F_mem8 = F_iw_memsz == 2'b00; + assign F_mem16 = F_iw_memsz == 2'b01; + assign F_mem32 = F_iw_memsz[1] == 1'b1; + assign D_iw_a = D_iw[31 : 27]; + assign D_iw_b = D_iw[26 : 22]; + assign D_iw_c = D_iw[21 : 17]; + assign D_iw_custom_n = D_iw[13 : 6]; + assign D_iw_custom_readra = D_iw[16]; + assign D_iw_custom_readrb = D_iw[15]; + assign D_iw_custom_writerc = D_iw[14]; + assign D_iw_opx = D_iw[16 : 11]; + assign D_iw_op = D_iw[5 : 0]; + assign D_iw_shift_imm5 = D_iw[10 : 6]; + assign D_iw_trap_break_imm5 = D_iw[10 : 6]; + assign D_iw_imm5 = D_iw[10 : 6]; + assign D_iw_imm16 = D_iw[21 : 6]; + assign D_iw_imm26 = D_iw[31 : 6]; + assign D_iw_memsz = D_iw[4 : 3]; + assign D_iw_control_regnum = D_iw[8 : 6]; + assign D_mem8 = D_iw_memsz == 2'b00; + assign D_mem16 = D_iw_memsz == 2'b01; + assign D_mem32 = D_iw_memsz[1] == 1'b1; + assign F_op_call = F_iw_op == 0; + assign F_op_jmpi = F_iw_op == 1; + assign F_op_ldbu = F_iw_op == 3; + assign F_op_addi = F_iw_op == 4; + assign F_op_stb = F_iw_op == 5; + assign F_op_br = F_iw_op == 6; + assign F_op_ldb = F_iw_op == 7; + assign F_op_cmpgei = F_iw_op == 8; + assign F_op_ldhu = F_iw_op == 11; + assign F_op_andi = F_iw_op == 12; + assign F_op_sth = F_iw_op == 13; + assign F_op_bge = F_iw_op == 14; + assign F_op_ldh = F_iw_op == 15; + assign F_op_cmplti = F_iw_op == 16; + assign F_op_initda = F_iw_op == 19; + assign F_op_ori = F_iw_op == 20; + assign F_op_stw = F_iw_op == 21; + assign F_op_blt = F_iw_op == 22; + assign F_op_ldw = F_iw_op == 23; + assign F_op_cmpnei = F_iw_op == 24; + assign F_op_flushda = F_iw_op == 27; + assign F_op_xori = F_iw_op == 28; + assign F_op_stc = F_iw_op == 29; + assign F_op_bne = F_iw_op == 30; + assign F_op_ldl = F_iw_op == 31; + assign F_op_cmpeqi = F_iw_op == 32; + assign F_op_ldbuio = F_iw_op == 35; + assign F_op_muli = F_iw_op == 36; + assign F_op_stbio = F_iw_op == 37; + assign F_op_beq = F_iw_op == 38; + assign F_op_ldbio = F_iw_op == 39; + assign F_op_cmpgeui = F_iw_op == 40; + assign F_op_ldhuio = F_iw_op == 43; + assign F_op_andhi = F_iw_op == 44; + assign F_op_sthio = F_iw_op == 45; + assign F_op_bgeu = F_iw_op == 46; + assign F_op_ldhio = F_iw_op == 47; + assign F_op_cmpltui = F_iw_op == 48; + assign F_op_initd = F_iw_op == 51; + assign F_op_orhi = F_iw_op == 52; + assign F_op_stwio = F_iw_op == 53; + assign F_op_bltu = F_iw_op == 54; + assign F_op_ldwio = F_iw_op == 55; + assign F_op_rdprs = F_iw_op == 56; + assign F_op_flushd = F_iw_op == 59; + assign F_op_xorhi = F_iw_op == 60; + assign F_op_rsv02 = F_iw_op == 2; + assign F_op_rsv09 = F_iw_op == 9; + assign F_op_rsv10 = F_iw_op == 10; + assign F_op_rsv17 = F_iw_op == 17; + assign F_op_rsv18 = F_iw_op == 18; + assign F_op_rsv25 = F_iw_op == 25; + assign F_op_rsv26 = F_iw_op == 26; + assign F_op_rsv33 = F_iw_op == 33; + assign F_op_rsv34 = F_iw_op == 34; + assign F_op_rsv41 = F_iw_op == 41; + assign F_op_rsv42 = F_iw_op == 42; + assign F_op_rsv49 = F_iw_op == 49; + assign F_op_rsv57 = F_iw_op == 57; + assign F_op_rsv61 = F_iw_op == 61; + assign F_op_rsv62 = F_iw_op == 62; + assign F_op_rsv63 = F_iw_op == 63; + assign F_op_eret = F_op_opx & (F_iw_opx == 1); + assign F_op_roli = F_op_opx & (F_iw_opx == 2); + assign F_op_rol = F_op_opx & (F_iw_opx == 3); + assign F_op_flushp = F_op_opx & (F_iw_opx == 4); + assign F_op_ret = F_op_opx & (F_iw_opx == 5); + assign F_op_nor = F_op_opx & (F_iw_opx == 6); + assign F_op_mulxuu = F_op_opx & (F_iw_opx == 7); + assign F_op_cmpge = F_op_opx & (F_iw_opx == 8); + assign F_op_bret = F_op_opx & (F_iw_opx == 9); + assign F_op_ror = F_op_opx & (F_iw_opx == 11); + assign F_op_flushi = F_op_opx & (F_iw_opx == 12); + assign F_op_jmp = F_op_opx & (F_iw_opx == 13); + assign F_op_and = F_op_opx & (F_iw_opx == 14); + assign F_op_cmplt = F_op_opx & (F_iw_opx == 16); + assign F_op_slli = F_op_opx & (F_iw_opx == 18); + assign F_op_sll = F_op_opx & (F_iw_opx == 19); + assign F_op_wrprs = F_op_opx & (F_iw_opx == 20); + assign F_op_or = F_op_opx & (F_iw_opx == 22); + assign F_op_mulxsu = F_op_opx & (F_iw_opx == 23); + assign F_op_cmpne = F_op_opx & (F_iw_opx == 24); + assign F_op_srli = F_op_opx & (F_iw_opx == 26); + assign F_op_srl = F_op_opx & (F_iw_opx == 27); + assign F_op_nextpc = F_op_opx & (F_iw_opx == 28); + assign F_op_callr = F_op_opx & (F_iw_opx == 29); + assign F_op_xor = F_op_opx & (F_iw_opx == 30); + assign F_op_mulxss = F_op_opx & (F_iw_opx == 31); + assign F_op_cmpeq = F_op_opx & (F_iw_opx == 32); + assign F_op_divu = F_op_opx & (F_iw_opx == 36); + assign F_op_div = F_op_opx & (F_iw_opx == 37); + assign F_op_rdctl = F_op_opx & (F_iw_opx == 38); + assign F_op_mul = F_op_opx & (F_iw_opx == 39); + assign F_op_cmpgeu = F_op_opx & (F_iw_opx == 40); + assign F_op_initi = F_op_opx & (F_iw_opx == 41); + assign F_op_trap = F_op_opx & (F_iw_opx == 45); + assign F_op_wrctl = F_op_opx & (F_iw_opx == 46); + assign F_op_cmpltu = F_op_opx & (F_iw_opx == 48); + assign F_op_add = F_op_opx & (F_iw_opx == 49); + assign F_op_break = F_op_opx & (F_iw_opx == 52); + assign F_op_hbreak = F_op_opx & (F_iw_opx == 53); + assign F_op_sync = F_op_opx & (F_iw_opx == 54); + assign F_op_sub = F_op_opx & (F_iw_opx == 57); + assign F_op_srai = F_op_opx & (F_iw_opx == 58); + assign F_op_sra = F_op_opx & (F_iw_opx == 59); + assign F_op_intr = F_op_opx & (F_iw_opx == 61); + assign F_op_crst = F_op_opx & (F_iw_opx == 62); + assign F_op_rsvx00 = F_op_opx & (F_iw_opx == 0); + assign F_op_rsvx10 = F_op_opx & (F_iw_opx == 10); + assign F_op_rsvx15 = F_op_opx & (F_iw_opx == 15); + assign F_op_rsvx17 = F_op_opx & (F_iw_opx == 17); + assign F_op_rsvx21 = F_op_opx & (F_iw_opx == 21); + assign F_op_rsvx25 = F_op_opx & (F_iw_opx == 25); + assign F_op_rsvx33 = F_op_opx & (F_iw_opx == 33); + assign F_op_rsvx34 = F_op_opx & (F_iw_opx == 34); + assign F_op_rsvx35 = F_op_opx & (F_iw_opx == 35); + assign F_op_rsvx42 = F_op_opx & (F_iw_opx == 42); + assign F_op_rsvx43 = F_op_opx & (F_iw_opx == 43); + assign F_op_rsvx44 = F_op_opx & (F_iw_opx == 44); + assign F_op_rsvx47 = F_op_opx & (F_iw_opx == 47); + assign F_op_rsvx50 = F_op_opx & (F_iw_opx == 50); + assign F_op_rsvx51 = F_op_opx & (F_iw_opx == 51); + assign F_op_rsvx55 = F_op_opx & (F_iw_opx == 55); + assign F_op_rsvx56 = F_op_opx & (F_iw_opx == 56); + assign F_op_rsvx60 = F_op_opx & (F_iw_opx == 60); + assign F_op_rsvx63 = F_op_opx & (F_iw_opx == 63); + assign F_op_opx = F_iw_op == 58; + assign F_op_custom = F_iw_op == 50; + assign D_op_call = D_iw_op == 0; + assign D_op_jmpi = D_iw_op == 1; + assign D_op_ldbu = D_iw_op == 3; + assign D_op_addi = D_iw_op == 4; + assign D_op_stb = D_iw_op == 5; + assign D_op_br = D_iw_op == 6; + assign D_op_ldb = D_iw_op == 7; + assign D_op_cmpgei = D_iw_op == 8; + assign D_op_ldhu = D_iw_op == 11; + assign D_op_andi = D_iw_op == 12; + assign D_op_sth = D_iw_op == 13; + assign D_op_bge = D_iw_op == 14; + assign D_op_ldh = D_iw_op == 15; + assign D_op_cmplti = D_iw_op == 16; + assign D_op_initda = D_iw_op == 19; + assign D_op_ori = D_iw_op == 20; + assign D_op_stw = D_iw_op == 21; + assign D_op_blt = D_iw_op == 22; + assign D_op_ldw = D_iw_op == 23; + assign D_op_cmpnei = D_iw_op == 24; + assign D_op_flushda = D_iw_op == 27; + assign D_op_xori = D_iw_op == 28; + assign D_op_stc = D_iw_op == 29; + assign D_op_bne = D_iw_op == 30; + assign D_op_ldl = D_iw_op == 31; + assign D_op_cmpeqi = D_iw_op == 32; + assign D_op_ldbuio = D_iw_op == 35; + assign D_op_muli = D_iw_op == 36; + assign D_op_stbio = D_iw_op == 37; + assign D_op_beq = D_iw_op == 38; + assign D_op_ldbio = D_iw_op == 39; + assign D_op_cmpgeui = D_iw_op == 40; + assign D_op_ldhuio = D_iw_op == 43; + assign D_op_andhi = D_iw_op == 44; + assign D_op_sthio = D_iw_op == 45; + assign D_op_bgeu = D_iw_op == 46; + assign D_op_ldhio = D_iw_op == 47; + assign D_op_cmpltui = D_iw_op == 48; + assign D_op_initd = D_iw_op == 51; + assign D_op_orhi = D_iw_op == 52; + assign D_op_stwio = D_iw_op == 53; + assign D_op_bltu = D_iw_op == 54; + assign D_op_ldwio = D_iw_op == 55; + assign D_op_rdprs = D_iw_op == 56; + assign D_op_flushd = D_iw_op == 59; + assign D_op_xorhi = D_iw_op == 60; + assign D_op_rsv02 = D_iw_op == 2; + assign D_op_rsv09 = D_iw_op == 9; + assign D_op_rsv10 = D_iw_op == 10; + assign D_op_rsv17 = D_iw_op == 17; + assign D_op_rsv18 = D_iw_op == 18; + assign D_op_rsv25 = D_iw_op == 25; + assign D_op_rsv26 = D_iw_op == 26; + assign D_op_rsv33 = D_iw_op == 33; + assign D_op_rsv34 = D_iw_op == 34; + assign D_op_rsv41 = D_iw_op == 41; + assign D_op_rsv42 = D_iw_op == 42; + assign D_op_rsv49 = D_iw_op == 49; + assign D_op_rsv57 = D_iw_op == 57; + assign D_op_rsv61 = D_iw_op == 61; + assign D_op_rsv62 = D_iw_op == 62; + assign D_op_rsv63 = D_iw_op == 63; + assign D_op_eret = D_op_opx & (D_iw_opx == 1); + assign D_op_roli = D_op_opx & (D_iw_opx == 2); + assign D_op_rol = D_op_opx & (D_iw_opx == 3); + assign D_op_flushp = D_op_opx & (D_iw_opx == 4); + assign D_op_ret = D_op_opx & (D_iw_opx == 5); + assign D_op_nor = D_op_opx & (D_iw_opx == 6); + assign D_op_mulxuu = D_op_opx & (D_iw_opx == 7); + assign D_op_cmpge = D_op_opx & (D_iw_opx == 8); + assign D_op_bret = D_op_opx & (D_iw_opx == 9); + assign D_op_ror = D_op_opx & (D_iw_opx == 11); + assign D_op_flushi = D_op_opx & (D_iw_opx == 12); + assign D_op_jmp = D_op_opx & (D_iw_opx == 13); + assign D_op_and = D_op_opx & (D_iw_opx == 14); + assign D_op_cmplt = D_op_opx & (D_iw_opx == 16); + assign D_op_slli = D_op_opx & (D_iw_opx == 18); + assign D_op_sll = D_op_opx & (D_iw_opx == 19); + assign D_op_wrprs = D_op_opx & (D_iw_opx == 20); + assign D_op_or = D_op_opx & (D_iw_opx == 22); + assign D_op_mulxsu = D_op_opx & (D_iw_opx == 23); + assign D_op_cmpne = D_op_opx & (D_iw_opx == 24); + assign D_op_srli = D_op_opx & (D_iw_opx == 26); + assign D_op_srl = D_op_opx & (D_iw_opx == 27); + assign D_op_nextpc = D_op_opx & (D_iw_opx == 28); + assign D_op_callr = D_op_opx & (D_iw_opx == 29); + assign D_op_xor = D_op_opx & (D_iw_opx == 30); + assign D_op_mulxss = D_op_opx & (D_iw_opx == 31); + assign D_op_cmpeq = D_op_opx & (D_iw_opx == 32); + assign D_op_divu = D_op_opx & (D_iw_opx == 36); + assign D_op_div = D_op_opx & (D_iw_opx == 37); + assign D_op_rdctl = D_op_opx & (D_iw_opx == 38); + assign D_op_mul = D_op_opx & (D_iw_opx == 39); + assign D_op_cmpgeu = D_op_opx & (D_iw_opx == 40); + assign D_op_initi = D_op_opx & (D_iw_opx == 41); + assign D_op_trap = D_op_opx & (D_iw_opx == 45); + assign D_op_wrctl = D_op_opx & (D_iw_opx == 46); + assign D_op_cmpltu = D_op_opx & (D_iw_opx == 48); + assign D_op_add = D_op_opx & (D_iw_opx == 49); + assign D_op_break = D_op_opx & (D_iw_opx == 52); + assign D_op_hbreak = D_op_opx & (D_iw_opx == 53); + assign D_op_sync = D_op_opx & (D_iw_opx == 54); + assign D_op_sub = D_op_opx & (D_iw_opx == 57); + assign D_op_srai = D_op_opx & (D_iw_opx == 58); + assign D_op_sra = D_op_opx & (D_iw_opx == 59); + assign D_op_intr = D_op_opx & (D_iw_opx == 61); + assign D_op_crst = D_op_opx & (D_iw_opx == 62); + assign D_op_rsvx00 = D_op_opx & (D_iw_opx == 0); + assign D_op_rsvx10 = D_op_opx & (D_iw_opx == 10); + assign D_op_rsvx15 = D_op_opx & (D_iw_opx == 15); + assign D_op_rsvx17 = D_op_opx & (D_iw_opx == 17); + assign D_op_rsvx21 = D_op_opx & (D_iw_opx == 21); + assign D_op_rsvx25 = D_op_opx & (D_iw_opx == 25); + assign D_op_rsvx33 = D_op_opx & (D_iw_opx == 33); + assign D_op_rsvx34 = D_op_opx & (D_iw_opx == 34); + assign D_op_rsvx35 = D_op_opx & (D_iw_opx == 35); + assign D_op_rsvx42 = D_op_opx & (D_iw_opx == 42); + assign D_op_rsvx43 = D_op_opx & (D_iw_opx == 43); + assign D_op_rsvx44 = D_op_opx & (D_iw_opx == 44); + assign D_op_rsvx47 = D_op_opx & (D_iw_opx == 47); + assign D_op_rsvx50 = D_op_opx & (D_iw_opx == 50); + assign D_op_rsvx51 = D_op_opx & (D_iw_opx == 51); + assign D_op_rsvx55 = D_op_opx & (D_iw_opx == 55); + assign D_op_rsvx56 = D_op_opx & (D_iw_opx == 56); + assign D_op_rsvx60 = D_op_opx & (D_iw_opx == 60); + assign D_op_rsvx63 = D_op_opx & (D_iw_opx == 63); + assign D_op_opx = D_iw_op == 58; + assign D_op_custom = D_iw_op == 50; + assign R_en = 1'b1; + assign E_ci_result = 0; + //custom_instruction_master, which is an e_custom_instruction_master + assign no_ci_readra = 1'b0; + assign E_ci_multi_stall = 1'b0; + assign iactive = d_irq[31 : 0] & 32'b00000000000000000000000000100000; + assign F_pc_sel_nxt = R_ctrl_exception ? 2'b00 : + R_ctrl_break ? 2'b01 : + (W_br_taken | R_ctrl_uncond_cti_non_br) ? 2'b10 : + 2'b11; + + assign F_pc_no_crst_nxt = (F_pc_sel_nxt == 2'b00)? 8 : + (F_pc_sel_nxt == 2'b01)? 66056 : + (F_pc_sel_nxt == 2'b10)? E_arith_result[18 : 2] : + F_pc_plus_one; + + assign F_pc_nxt = F_pc_no_crst_nxt; + assign F_pcb_nxt = {F_pc_nxt, 2'b00}; + assign F_pc_en = W_valid; + assign F_pc_plus_one = F_pc + 1; + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + F_pc <= 0; + else if (F_pc_en) + F_pc <= F_pc_nxt; + end + + + assign F_pcb = {F_pc, 2'b00}; + assign F_pcb_plus_four = {F_pc_plus_one, 2'b00}; + assign F_valid = i_read & ~i_waitrequest; + assign i_read_nxt = W_valid | (i_read & i_waitrequest); + assign i_address = {F_pc, 2'b00}; + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + i_read <= 1'b1; + else + i_read <= i_read_nxt; + end + + + assign oci_tb_hbreak_req = oci_hbreak_req; + assign hbreak_req = (oci_tb_hbreak_req | hbreak_pending) & hbreak_enabled & ~(wait_for_one_post_bret_inst & ~W_valid); + assign hbreak_pending_nxt = hbreak_pending ? hbreak_enabled + : hbreak_req; + + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + wait_for_one_post_bret_inst <= 1'b0; + else + wait_for_one_post_bret_inst <= (~hbreak_enabled & oci_single_step_mode) ? 1'b1 : (F_valid | ~oci_single_step_mode) ? 1'b0 : wait_for_one_post_bret_inst; + end + + + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + hbreak_pending <= 1'b0; + else + hbreak_pending <= hbreak_pending_nxt; + end + + + assign intr_req = W_status_reg_pie & (W_ipending_reg != 0); + assign F_av_iw = i_readdata; + assign F_iw = hbreak_req ? 4040762 : + 1'b0 ? 127034 : + intr_req ? 3926074 : + F_av_iw; + + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + D_iw <= 0; + else if (F_valid) + D_iw <= F_iw; + end + + + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + D_valid <= 0; + else + D_valid <= F_valid; + end + + + assign D_dst_regnum = D_ctrl_implicit_dst_retaddr ? 5'd31 : + D_ctrl_implicit_dst_eretaddr ? 5'd29 : + D_ctrl_b_is_dst ? D_iw_b : + D_iw_c; + + assign D_wr_dst_reg = (D_dst_regnum != 0) & ~D_ctrl_ignore_dst; + assign D_logic_op_raw = D_op_opx ? D_iw_opx[4 : 3] : + D_iw_op[4 : 3]; + + assign D_logic_op = D_ctrl_alu_force_xor ? 2'b11 : D_logic_op_raw; + assign D_compare_op = D_op_opx ? D_iw_opx[4 : 3] : + D_iw_op[4 : 3]; + + assign D_jmp_direct_target_waddr = D_iw[31 : 6]; + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + R_valid <= 0; + else + R_valid <= D_valid; + end + + + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + R_wr_dst_reg <= 0; + else + R_wr_dst_reg <= D_wr_dst_reg; + end + + + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + R_dst_regnum <= 0; + else + R_dst_regnum <= D_dst_regnum; + end + + + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + R_logic_op <= 0; + else + R_logic_op <= D_logic_op; + end + + + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + R_compare_op <= 0; + else + R_compare_op <= D_compare_op; + end + + + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + R_src2_use_imm <= 0; + else + R_src2_use_imm <= D_ctrl_src2_choose_imm | (D_ctrl_br & R_valid); + end + + + assign W_rf_wren = (R_wr_dst_reg & W_valid) | ~reset_n; + assign W_rf_wr_data = R_ctrl_ld ? av_ld_data_aligned_filtered : W_wr_data; +//nios_system_nios2_processor_register_bank_a, which is an nios_sdp_ram +nios_system_nios2_processor_register_bank_a_module nios_system_nios2_processor_register_bank_a + ( + .clock (clk), + .data (W_rf_wr_data), + .q (R_rf_a), + .rdaddress (D_iw_a), + .wraddress (R_dst_regnum), + .wren (W_rf_wren) + ); + +//synthesis translate_off +`ifdef NO_PLI +defparam nios_system_nios2_processor_register_bank_a.lpm_file = "nios_system_nios2_processor_rf_ram_a.dat"; +`else +defparam nios_system_nios2_processor_register_bank_a.lpm_file = "nios_system_nios2_processor_rf_ram_a.hex"; +`endif +//synthesis translate_on +//synthesis read_comments_as_HDL on +//defparam nios_system_nios2_processor_register_bank_a.lpm_file = "nios_system_nios2_processor_rf_ram_a.mif"; +//synthesis read_comments_as_HDL off +//nios_system_nios2_processor_register_bank_b, which is an nios_sdp_ram +nios_system_nios2_processor_register_bank_b_module nios_system_nios2_processor_register_bank_b + ( + .clock (clk), + .data (W_rf_wr_data), + .q (R_rf_b), + .rdaddress (D_iw_b), + .wraddress (R_dst_regnum), + .wren (W_rf_wren) + ); + +//synthesis translate_off +`ifdef NO_PLI +defparam nios_system_nios2_processor_register_bank_b.lpm_file = "nios_system_nios2_processor_rf_ram_b.dat"; +`else +defparam nios_system_nios2_processor_register_bank_b.lpm_file = "nios_system_nios2_processor_rf_ram_b.hex"; +`endif +//synthesis translate_on +//synthesis read_comments_as_HDL on +//defparam nios_system_nios2_processor_register_bank_b.lpm_file = "nios_system_nios2_processor_rf_ram_b.mif"; +//synthesis read_comments_as_HDL off + assign R_src1 = (((R_ctrl_br & E_valid) | (R_ctrl_retaddr & R_valid)))? {F_pc_plus_one, 2'b00} : + ((R_ctrl_jmp_direct & E_valid))? {D_jmp_direct_target_waddr, 2'b00} : + R_rf_a; + + assign R_src2_lo = ((R_ctrl_force_src2_zero|R_ctrl_hi_imm16))? 16'b0 : + (R_src2_use_imm)? D_iw_imm16 : + R_rf_b[15 : 0]; + + assign R_src2_hi = ((R_ctrl_force_src2_zero|R_ctrl_unsigned_lo_imm16))? 16'b0 : + (R_ctrl_hi_imm16)? D_iw_imm16 : + (R_src2_use_imm)? {16 {D_iw_imm16[15]}} : + R_rf_b[31 : 16]; + + assign R_src2 = {R_src2_hi, R_src2_lo}; + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + E_valid <= 0; + else + E_valid <= R_valid | E_stall; + end + + + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + E_new_inst <= 0; + else + E_new_inst <= R_valid; + end + + + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + E_src1 <= 0; + else + E_src1 <= R_src1; + end + + + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + E_src2 <= 0; + else + E_src2 <= R_src2; + end + + + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + E_invert_arith_src_msb <= 0; + else + E_invert_arith_src_msb <= D_ctrl_alu_signed_comparison & R_valid; + end + + + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + E_alu_sub <= 0; + else + E_alu_sub <= D_ctrl_alu_subtract & R_valid; + end + + + assign E_stall = E_shift_rot_stall | E_ld_stall | E_st_stall | E_ci_multi_stall; + assign E_arith_src1 = { E_src1[31] ^ E_invert_arith_src_msb, + E_src1[30 : 0]}; + + assign E_arith_src2 = { E_src2[31] ^ E_invert_arith_src_msb, + E_src2[30 : 0]}; + + assign E_arith_result = E_alu_sub ? + E_arith_src1 - E_arith_src2 : + E_arith_src1 + E_arith_src2; + + assign E_mem_baddr = E_arith_result[18 : 0]; + assign E_logic_result = (R_logic_op == 2'b00)? (~(E_src1 | E_src2)) : + (R_logic_op == 2'b01)? (E_src1 & E_src2) : + (R_logic_op == 2'b10)? (E_src1 | E_src2) : + (E_src1 ^ E_src2); + + assign E_logic_result_is_0 = E_logic_result == 0; + assign E_eq = E_logic_result_is_0; + assign E_lt = E_arith_result[32]; + assign E_cmp_result = (R_compare_op == 2'b00)? E_eq : + (R_compare_op == 2'b01)? ~E_lt : + (R_compare_op == 2'b10)? E_lt : + ~E_eq; + + assign E_shift_rot_cnt_nxt = E_new_inst ? E_src2[4 : 0] : E_shift_rot_cnt-1; + assign E_shift_rot_done = (E_shift_rot_cnt == 0) & ~E_new_inst; + assign E_shift_rot_stall = R_ctrl_shift_rot & E_valid & ~E_shift_rot_done; + assign E_shift_rot_fill_bit = R_ctrl_shift_logical ? 1'b0 : + (R_ctrl_rot_right ? E_shift_rot_result[0] : + E_shift_rot_result[31]); + + assign E_shift_rot_result_nxt = (E_new_inst)? E_src1 : + (R_ctrl_shift_rot_right)? {E_shift_rot_fill_bit, E_shift_rot_result[31 : 1]} : + {E_shift_rot_result[30 : 0], E_shift_rot_fill_bit}; + + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + E_shift_rot_result <= 0; + else + E_shift_rot_result <= E_shift_rot_result_nxt; + end + + + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + E_shift_rot_cnt <= 0; + else + E_shift_rot_cnt <= E_shift_rot_cnt_nxt; + end + + + assign E_control_rd_data = (D_iw_control_regnum == 3'd0)? W_status_reg : + (D_iw_control_regnum == 3'd1)? W_estatus_reg : + (D_iw_control_regnum == 3'd2)? W_bstatus_reg : + (D_iw_control_regnum == 3'd3)? W_ienable_reg : + (D_iw_control_regnum == 3'd4)? W_ipending_reg : + 0; + + assign E_alu_result = ((R_ctrl_br_cmp | R_ctrl_rdctl_inst))? 0 : + (R_ctrl_shift_rot)? E_shift_rot_result : + (R_ctrl_logic)? E_logic_result : + (R_ctrl_custom)? E_ci_result : + E_arith_result; + + assign R_stb_data = R_rf_b[7 : 0]; + assign R_sth_data = R_rf_b[15 : 0]; + assign E_st_data = (D_mem8)? {R_stb_data, R_stb_data, R_stb_data, R_stb_data} : + (D_mem16)? {R_sth_data, R_sth_data} : + R_rf_b; + + assign E_mem_byte_en = ({D_iw_memsz, E_mem_baddr[1 : 0]} == {2'b00, 2'b00})? 4'b0001 : + ({D_iw_memsz, E_mem_baddr[1 : 0]} == {2'b00, 2'b01})? 4'b0010 : + ({D_iw_memsz, E_mem_baddr[1 : 0]} == {2'b00, 2'b10})? 4'b0100 : + ({D_iw_memsz, E_mem_baddr[1 : 0]} == {2'b00, 2'b11})? 4'b1000 : + ({D_iw_memsz, E_mem_baddr[1 : 0]} == {2'b01, 2'b00})? 4'b0011 : + ({D_iw_memsz, E_mem_baddr[1 : 0]} == {2'b01, 2'b01})? 4'b0011 : + ({D_iw_memsz, E_mem_baddr[1 : 0]} == {2'b01, 2'b10})? 4'b1100 : + ({D_iw_memsz, E_mem_baddr[1 : 0]} == {2'b01, 2'b11})? 4'b1100 : + 4'b1111; + + assign d_read_nxt = (R_ctrl_ld & E_new_inst) | (d_read & d_waitrequest); + assign E_ld_stall = R_ctrl_ld & ((E_valid & ~av_ld_done) | E_new_inst); + assign d_write_nxt = (R_ctrl_st & E_new_inst) | (d_write & d_waitrequest); + assign E_st_stall = d_write_nxt; + assign d_address = W_mem_baddr; + assign av_ld_getting_data = d_read & ~d_waitrequest; + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + d_read <= 0; + else + d_read <= d_read_nxt; + end + + + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + d_writedata <= 0; + else + d_writedata <= E_st_data; + end + + + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + d_byteenable <= 0; + else + d_byteenable <= E_mem_byte_en; + end + + + assign av_ld_align_cycle_nxt = av_ld_getting_data ? 0 : (av_ld_align_cycle+1); + assign av_ld_align_one_more_cycle = av_ld_align_cycle == (D_mem16 ? 2 : 3); + assign av_ld_aligning_data_nxt = av_ld_aligning_data ? + ~av_ld_align_one_more_cycle : + (~D_mem32 & av_ld_getting_data); + + assign av_ld_waiting_for_data_nxt = av_ld_waiting_for_data ? + ~av_ld_getting_data : + (R_ctrl_ld & E_new_inst); + + assign av_ld_done = ~av_ld_waiting_for_data_nxt & (D_mem32 | ~av_ld_aligning_data_nxt); + assign av_ld_rshift8 = av_ld_aligning_data & + (av_ld_align_cycle < (W_mem_baddr[1 : 0])); + + assign av_ld_extend = av_ld_aligning_data; + assign av_ld_byte0_data_nxt = av_ld_rshift8 ? av_ld_byte1_data : + av_ld_extend ? av_ld_byte0_data : + d_readdata[7 : 0]; + + assign av_ld_byte1_data_nxt = av_ld_rshift8 ? av_ld_byte2_data : + av_ld_extend ? {8 {av_fill_bit}} : + d_readdata[15 : 8]; + + assign av_ld_byte2_data_nxt = av_ld_rshift8 ? av_ld_byte3_data : + av_ld_extend ? {8 {av_fill_bit}} : + d_readdata[23 : 16]; + + assign av_ld_byte3_data_nxt = av_ld_rshift8 ? av_ld_byte3_data : + av_ld_extend ? {8 {av_fill_bit}} : + d_readdata[31 : 24]; + + assign av_ld_byte1_data_en = ~(av_ld_extend & D_mem16 & ~av_ld_rshift8); + assign av_ld_data_aligned_unfiltered = {av_ld_byte3_data, av_ld_byte2_data, + av_ld_byte1_data, av_ld_byte0_data}; + + assign av_sign_bit = D_mem16 ? av_ld_byte1_data[7] : av_ld_byte0_data[7]; + assign av_fill_bit = av_sign_bit & R_ctrl_ld_signed; + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + av_ld_align_cycle <= 0; + else + av_ld_align_cycle <= av_ld_align_cycle_nxt; + end + + + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + av_ld_waiting_for_data <= 0; + else + av_ld_waiting_for_data <= av_ld_waiting_for_data_nxt; + end + + + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + av_ld_aligning_data <= 0; + else + av_ld_aligning_data <= av_ld_aligning_data_nxt; + end + + + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + av_ld_byte0_data <= 0; + else + av_ld_byte0_data <= av_ld_byte0_data_nxt; + end + + + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + av_ld_byte1_data <= 0; + else if (av_ld_byte1_data_en) + av_ld_byte1_data <= av_ld_byte1_data_nxt; + end + + + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + av_ld_byte2_data <= 0; + else + av_ld_byte2_data <= av_ld_byte2_data_nxt; + end + + + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + av_ld_byte3_data <= 0; + else + av_ld_byte3_data <= av_ld_byte3_data_nxt; + end + + + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + W_valid <= 0; + else + W_valid <= E_valid & ~E_stall; + end + + + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + W_control_rd_data <= 0; + else + W_control_rd_data <= E_control_rd_data; + end + + + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + W_cmp_result <= 0; + else + W_cmp_result <= E_cmp_result; + end + + + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + W_alu_result <= 0; + else + W_alu_result <= E_alu_result; + end + + + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + W_status_reg_pie <= 0; + else + W_status_reg_pie <= W_status_reg_pie_nxt; + end + + + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + W_estatus_reg <= 0; + else + W_estatus_reg <= W_estatus_reg_nxt; + end + + + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + W_bstatus_reg <= 0; + else + W_bstatus_reg <= W_bstatus_reg_nxt; + end + + + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + W_ienable_reg <= 0; + else + W_ienable_reg <= W_ienable_reg_nxt; + end + + + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + W_ipending_reg <= 0; + else + W_ipending_reg <= W_ipending_reg_nxt; + end + + + assign W_wr_data_non_zero = R_ctrl_br_cmp ? W_cmp_result : + R_ctrl_rdctl_inst ? W_control_rd_data : + W_alu_result[31 : 0]; + + assign W_wr_data = W_wr_data_non_zero; + assign W_br_taken = R_ctrl_br & W_cmp_result; + assign W_mem_baddr = W_alu_result[18 : 0]; + assign W_status_reg = W_status_reg_pie; + assign E_wrctl_status = R_ctrl_wrctl_inst & + (D_iw_control_regnum == 3'd0); + + assign E_wrctl_estatus = R_ctrl_wrctl_inst & + (D_iw_control_regnum == 3'd1); + + assign E_wrctl_bstatus = R_ctrl_wrctl_inst & + (D_iw_control_regnum == 3'd2); + + assign E_wrctl_ienable = R_ctrl_wrctl_inst & + (D_iw_control_regnum == 3'd3); + + assign W_status_reg_pie_inst_nxt = (R_ctrl_exception | R_ctrl_break | R_ctrl_crst) ? 1'b0 : + (D_op_eret) ? W_estatus_reg : + (D_op_bret) ? W_bstatus_reg : + (E_wrctl_status) ? E_src1[0] : + W_status_reg_pie; + + assign W_status_reg_pie_nxt = E_valid ? W_status_reg_pie_inst_nxt : W_status_reg_pie; + assign W_estatus_reg_inst_nxt = (R_ctrl_crst) ? 0 : + (R_ctrl_exception) ? W_status_reg : + (E_wrctl_estatus) ? E_src1[0] : + W_estatus_reg; + + assign W_estatus_reg_nxt = E_valid ? W_estatus_reg_inst_nxt : W_estatus_reg; + assign W_bstatus_reg_inst_nxt = (R_ctrl_break) ? W_status_reg : + (E_wrctl_bstatus) ? E_src1[0] : + W_bstatus_reg; + + assign W_bstatus_reg_nxt = E_valid ? W_bstatus_reg_inst_nxt : W_bstatus_reg; + assign W_ienable_reg_nxt = ((E_wrctl_ienable & E_valid) ? + E_src1[31 : 0] : W_ienable_reg) & 32'b00000000000000000000000000100000; + + assign W_ipending_reg_nxt = iactive & W_ienable_reg & oci_ienable & 32'b00000000000000000000000000100000; + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + hbreak_enabled <= 1'b1; + else if (E_valid) + hbreak_enabled <= R_ctrl_break ? 1'b0 : D_op_bret ? 1'b1 : hbreak_enabled; + end + + + nios_system_nios2_processor_nios2_oci the_nios_system_nios2_processor_nios2_oci + ( + .D_valid (D_valid), + .E_st_data (E_st_data), + .E_valid (E_valid), + .F_pc (F_pc), + .address_nxt (jtag_debug_module_address), + .av_ld_data_aligned_filtered (av_ld_data_aligned_filtered), + .byteenable_nxt (jtag_debug_module_byteenable), + .clk (jtag_debug_module_clk), + .d_address (d_address), + .d_read (d_read), + .d_waitrequest (d_waitrequest), + .d_write (d_write), + .debugaccess_nxt (jtag_debug_module_debugaccess), + .hbreak_enabled (hbreak_enabled), + .jtag_debug_module_debugaccess_to_roms (jtag_debug_module_debugaccess_to_roms), + .oci_hbreak_req (oci_hbreak_req), + .oci_ienable (oci_ienable), + .oci_single_step_mode (oci_single_step_mode), + .read_nxt (jtag_debug_module_read), + .readdata (jtag_debug_module_readdata), + .reset (jtag_debug_module_reset), + .reset_n (reset_n), + .resetrequest (jtag_debug_module_resetrequest), + .test_ending (test_ending), + .test_has_ended (test_has_ended), + .waitrequest (jtag_debug_module_waitrequest), + .write_nxt (jtag_debug_module_write), + .writedata_nxt (jtag_debug_module_writedata) + ); + + //jtag_debug_module, which is an e_avalon_slave + assign jtag_debug_module_clk = clk; + assign jtag_debug_module_reset = ~reset_n; + assign D_ctrl_custom = 1'b0; + assign R_ctrl_custom_nxt = D_ctrl_custom; + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + R_ctrl_custom <= 0; + else if (R_en) + R_ctrl_custom <= R_ctrl_custom_nxt; + end + + + assign D_ctrl_custom_multi = 1'b0; + assign R_ctrl_custom_multi_nxt = D_ctrl_custom_multi; + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + R_ctrl_custom_multi <= 0; + else if (R_en) + R_ctrl_custom_multi <= R_ctrl_custom_multi_nxt; + end + + + assign D_ctrl_jmp_indirect = D_op_eret| + D_op_bret| + D_op_rsvx17| + D_op_rsvx25| + D_op_ret| + D_op_jmp| + D_op_rsvx21| + D_op_callr; + + assign R_ctrl_jmp_indirect_nxt = D_ctrl_jmp_indirect; + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + R_ctrl_jmp_indirect <= 0; + else if (R_en) + R_ctrl_jmp_indirect <= R_ctrl_jmp_indirect_nxt; + end + + + assign D_ctrl_jmp_direct = D_op_call|D_op_jmpi; + assign R_ctrl_jmp_direct_nxt = D_ctrl_jmp_direct; + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + R_ctrl_jmp_direct <= 0; + else if (R_en) + R_ctrl_jmp_direct <= R_ctrl_jmp_direct_nxt; + end + + + assign D_ctrl_implicit_dst_retaddr = D_op_call|D_op_rsv02; + assign R_ctrl_implicit_dst_retaddr_nxt = D_ctrl_implicit_dst_retaddr; + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + R_ctrl_implicit_dst_retaddr <= 0; + else if (R_en) + R_ctrl_implicit_dst_retaddr <= R_ctrl_implicit_dst_retaddr_nxt; + end + + + assign D_ctrl_implicit_dst_eretaddr = D_op_div|D_op_divu|D_op_mul|D_op_muli|D_op_mulxss|D_op_mulxsu|D_op_mulxuu; + assign R_ctrl_implicit_dst_eretaddr_nxt = D_ctrl_implicit_dst_eretaddr; + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + R_ctrl_implicit_dst_eretaddr <= 0; + else if (R_en) + R_ctrl_implicit_dst_eretaddr <= R_ctrl_implicit_dst_eretaddr_nxt; + end + + + assign D_ctrl_exception = D_op_trap| + D_op_rsvx44| + D_op_div| + D_op_divu| + D_op_mul| + D_op_muli| + D_op_mulxss| + D_op_mulxsu| + D_op_mulxuu| + D_op_intr| + D_op_rsvx60; + + assign R_ctrl_exception_nxt = D_ctrl_exception; + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + R_ctrl_exception <= 0; + else if (R_en) + R_ctrl_exception <= R_ctrl_exception_nxt; + end + + + assign D_ctrl_break = D_op_break|D_op_hbreak; + assign R_ctrl_break_nxt = D_ctrl_break; + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + R_ctrl_break <= 0; + else if (R_en) + R_ctrl_break <= R_ctrl_break_nxt; + end + + + assign D_ctrl_crst = D_op_crst|D_op_rsvx63; + assign R_ctrl_crst_nxt = D_ctrl_crst; + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + R_ctrl_crst <= 0; + else if (R_en) + R_ctrl_crst <= R_ctrl_crst_nxt; + end + + + assign D_ctrl_uncond_cti_non_br = D_op_call| + D_op_jmpi| + D_op_eret| + D_op_bret| + D_op_rsvx17| + D_op_rsvx25| + D_op_ret| + D_op_jmp| + D_op_rsvx21| + D_op_callr; + + assign R_ctrl_uncond_cti_non_br_nxt = D_ctrl_uncond_cti_non_br; + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + R_ctrl_uncond_cti_non_br <= 0; + else if (R_en) + R_ctrl_uncond_cti_non_br <= R_ctrl_uncond_cti_non_br_nxt; + end + + + assign D_ctrl_retaddr = D_op_call| + D_op_rsv02| + D_op_nextpc| + D_op_callr| + D_op_trap| + D_op_rsvx44| + D_op_div| + D_op_divu| + D_op_mul| + D_op_muli| + D_op_mulxss| + D_op_mulxsu| + D_op_mulxuu| + D_op_intr| + D_op_rsvx60| + D_op_break| + D_op_hbreak; + + assign R_ctrl_retaddr_nxt = D_ctrl_retaddr; + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + R_ctrl_retaddr <= 0; + else if (R_en) + R_ctrl_retaddr <= R_ctrl_retaddr_nxt; + end + + + assign D_ctrl_shift_logical = D_op_slli|D_op_sll|D_op_srli|D_op_srl; + assign R_ctrl_shift_logical_nxt = D_ctrl_shift_logical; + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + R_ctrl_shift_logical <= 0; + else if (R_en) + R_ctrl_shift_logical <= R_ctrl_shift_logical_nxt; + end + + + assign D_ctrl_shift_right_arith = D_op_srai|D_op_sra; + assign R_ctrl_shift_right_arith_nxt = D_ctrl_shift_right_arith; + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + R_ctrl_shift_right_arith <= 0; + else if (R_en) + R_ctrl_shift_right_arith <= R_ctrl_shift_right_arith_nxt; + end + + + assign D_ctrl_rot_right = D_op_rsvx10|D_op_ror|D_op_rsvx42|D_op_rsvx43; + assign R_ctrl_rot_right_nxt = D_ctrl_rot_right; + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + R_ctrl_rot_right <= 0; + else if (R_en) + R_ctrl_rot_right <= R_ctrl_rot_right_nxt; + end + + + assign D_ctrl_shift_rot_right = D_op_srli| + D_op_srl| + D_op_srai| + D_op_sra| + D_op_rsvx10| + D_op_ror| + D_op_rsvx42| + D_op_rsvx43; + + assign R_ctrl_shift_rot_right_nxt = D_ctrl_shift_rot_right; + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + R_ctrl_shift_rot_right <= 0; + else if (R_en) + R_ctrl_shift_rot_right <= R_ctrl_shift_rot_right_nxt; + end + + + assign D_ctrl_shift_rot = D_op_slli| + D_op_rsvx50| + D_op_sll| + D_op_rsvx51| + D_op_roli| + D_op_rsvx34| + D_op_rol| + D_op_rsvx35| + D_op_srli| + D_op_srl| + D_op_srai| + D_op_sra| + D_op_rsvx10| + D_op_ror| + D_op_rsvx42| + D_op_rsvx43; + + assign R_ctrl_shift_rot_nxt = D_ctrl_shift_rot; + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + R_ctrl_shift_rot <= 0; + else if (R_en) + R_ctrl_shift_rot <= R_ctrl_shift_rot_nxt; + end + + + assign D_ctrl_logic = D_op_and| + D_op_or| + D_op_xor| + D_op_nor| + D_op_andhi| + D_op_orhi| + D_op_xorhi| + D_op_andi| + D_op_ori| + D_op_xori; + + assign R_ctrl_logic_nxt = D_ctrl_logic; + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + R_ctrl_logic <= 0; + else if (R_en) + R_ctrl_logic <= R_ctrl_logic_nxt; + end + + + assign D_ctrl_hi_imm16 = D_op_andhi|D_op_orhi|D_op_xorhi; + assign R_ctrl_hi_imm16_nxt = D_ctrl_hi_imm16; + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + R_ctrl_hi_imm16 <= 0; + else if (R_en) + R_ctrl_hi_imm16 <= R_ctrl_hi_imm16_nxt; + end + + + assign D_ctrl_unsigned_lo_imm16 = D_op_cmpgeui| + D_op_cmpltui| + D_op_andi| + D_op_ori| + D_op_xori| + D_op_roli| + D_op_rsvx10| + D_op_slli| + D_op_srli| + D_op_rsvx34| + D_op_rsvx42| + D_op_rsvx50| + D_op_srai; + + assign R_ctrl_unsigned_lo_imm16_nxt = D_ctrl_unsigned_lo_imm16; + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + R_ctrl_unsigned_lo_imm16 <= 0; + else if (R_en) + R_ctrl_unsigned_lo_imm16 <= R_ctrl_unsigned_lo_imm16_nxt; + end + + + assign D_ctrl_br_uncond = D_op_br|D_op_rsv02; + assign R_ctrl_br_uncond_nxt = D_ctrl_br_uncond; + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + R_ctrl_br_uncond <= 0; + else if (R_en) + R_ctrl_br_uncond <= R_ctrl_br_uncond_nxt; + end + + + assign D_ctrl_br = D_op_br| + D_op_bge| + D_op_blt| + D_op_bne| + D_op_beq| + D_op_bgeu| + D_op_bltu| + D_op_rsv62; + + assign R_ctrl_br_nxt = D_ctrl_br; + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + R_ctrl_br <= 0; + else if (R_en) + R_ctrl_br <= R_ctrl_br_nxt; + end + + + assign D_ctrl_alu_subtract = D_op_sub| + D_op_rsvx25| + D_op_cmplti| + D_op_cmpltui| + D_op_cmplt| + D_op_cmpltu| + D_op_blt| + D_op_bltu| + D_op_cmpgei| + D_op_cmpgeui| + D_op_cmpge| + D_op_cmpgeu| + D_op_bge| + D_op_rsv10| + D_op_bgeu| + D_op_rsv42; + + assign R_ctrl_alu_subtract_nxt = D_ctrl_alu_subtract; + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + R_ctrl_alu_subtract <= 0; + else if (R_en) + R_ctrl_alu_subtract <= R_ctrl_alu_subtract_nxt; + end + + + assign D_ctrl_alu_signed_comparison = D_op_cmpge|D_op_cmpgei|D_op_cmplt|D_op_cmplti|D_op_bge|D_op_blt; + assign R_ctrl_alu_signed_comparison_nxt = D_ctrl_alu_signed_comparison; + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + R_ctrl_alu_signed_comparison <= 0; + else if (R_en) + R_ctrl_alu_signed_comparison <= R_ctrl_alu_signed_comparison_nxt; + end + + + assign D_ctrl_br_cmp = D_op_br| + D_op_bge| + D_op_blt| + D_op_bne| + D_op_beq| + D_op_bgeu| + D_op_bltu| + D_op_rsv62| + D_op_cmpgei| + D_op_cmplti| + D_op_cmpnei| + D_op_cmpgeui| + D_op_cmpltui| + D_op_cmpeqi| + D_op_rsvx00| + D_op_cmpge| + D_op_cmplt| + D_op_cmpne| + D_op_cmpgeu| + D_op_cmpltu| + D_op_cmpeq| + D_op_rsvx56; + + assign R_ctrl_br_cmp_nxt = D_ctrl_br_cmp; + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + R_ctrl_br_cmp <= 0; + else if (R_en) + R_ctrl_br_cmp <= R_ctrl_br_cmp_nxt; + end + + + assign D_ctrl_ld_signed = D_op_ldb| + D_op_ldh| + D_op_ldl| + D_op_ldw| + D_op_ldbio| + D_op_ldhio| + D_op_ldwio| + D_op_rsv63; + + assign R_ctrl_ld_signed_nxt = D_ctrl_ld_signed; + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + R_ctrl_ld_signed <= 0; + else if (R_en) + R_ctrl_ld_signed <= R_ctrl_ld_signed_nxt; + end + + + assign D_ctrl_ld = D_op_ldb| + D_op_ldh| + D_op_ldl| + D_op_ldw| + D_op_ldbio| + D_op_ldhio| + D_op_ldwio| + D_op_rsv63| + D_op_ldbu| + D_op_ldhu| + D_op_ldbuio| + D_op_ldhuio; + + assign R_ctrl_ld_nxt = D_ctrl_ld; + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + R_ctrl_ld <= 0; + else if (R_en) + R_ctrl_ld <= R_ctrl_ld_nxt; + end + + + assign D_ctrl_ld_non_io = D_op_ldbu|D_op_ldhu|D_op_ldb|D_op_ldh|D_op_ldw|D_op_ldl; + assign R_ctrl_ld_non_io_nxt = D_ctrl_ld_non_io; + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + R_ctrl_ld_non_io <= 0; + else if (R_en) + R_ctrl_ld_non_io <= R_ctrl_ld_non_io_nxt; + end + + + assign D_ctrl_st = D_op_stb| + D_op_sth| + D_op_stw| + D_op_stc| + D_op_stbio| + D_op_sthio| + D_op_stwio| + D_op_rsv61; + + assign R_ctrl_st_nxt = D_ctrl_st; + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + R_ctrl_st <= 0; + else if (R_en) + R_ctrl_st <= R_ctrl_st_nxt; + end + + + assign D_ctrl_ld_io = D_op_ldbuio|D_op_ldhuio|D_op_ldbio|D_op_ldhio|D_op_ldwio|D_op_rsv63; + assign R_ctrl_ld_io_nxt = D_ctrl_ld_io; + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + R_ctrl_ld_io <= 0; + else if (R_en) + R_ctrl_ld_io <= R_ctrl_ld_io_nxt; + end + + + assign D_ctrl_b_is_dst = D_op_addi| + D_op_andhi| + D_op_orhi| + D_op_xorhi| + D_op_andi| + D_op_ori| + D_op_xori| + D_op_call| + D_op_rdprs| + D_op_cmpgei| + D_op_cmplti| + D_op_cmpnei| + D_op_cmpgeui| + D_op_cmpltui| + D_op_cmpeqi| + D_op_jmpi| + D_op_rsv09| + D_op_rsv17| + D_op_rsv25| + D_op_rsv33| + D_op_rsv41| + D_op_rsv49| + D_op_rsv57| + D_op_ldb| + D_op_ldh| + D_op_ldl| + D_op_ldw| + D_op_ldbio| + D_op_ldhio| + D_op_ldwio| + D_op_rsv63| + D_op_ldbu| + D_op_ldhu| + D_op_ldbuio| + D_op_ldhuio| + D_op_initd| + D_op_initda| + D_op_flushd| + D_op_flushda; + + assign R_ctrl_b_is_dst_nxt = D_ctrl_b_is_dst; + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + R_ctrl_b_is_dst <= 0; + else if (R_en) + R_ctrl_b_is_dst <= R_ctrl_b_is_dst_nxt; + end + + + assign D_ctrl_ignore_dst = D_op_br| + D_op_bge| + D_op_blt| + D_op_bne| + D_op_beq| + D_op_bgeu| + D_op_bltu| + D_op_rsv62| + D_op_stb| + D_op_sth| + D_op_stw| + D_op_stc| + D_op_stbio| + D_op_sthio| + D_op_stwio| + D_op_rsv61| + D_op_jmpi| + D_op_rsv09| + D_op_rsv17| + D_op_rsv25| + D_op_rsv33| + D_op_rsv41| + D_op_rsv49| + D_op_rsv57; + + assign R_ctrl_ignore_dst_nxt = D_ctrl_ignore_dst; + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + R_ctrl_ignore_dst <= 0; + else if (R_en) + R_ctrl_ignore_dst <= R_ctrl_ignore_dst_nxt; + end + + + assign D_ctrl_src2_choose_imm = D_op_addi| + D_op_andhi| + D_op_orhi| + D_op_xorhi| + D_op_andi| + D_op_ori| + D_op_xori| + D_op_call| + D_op_rdprs| + D_op_cmpgei| + D_op_cmplti| + D_op_cmpnei| + D_op_cmpgeui| + D_op_cmpltui| + D_op_cmpeqi| + D_op_jmpi| + D_op_rsv09| + D_op_rsv17| + D_op_rsv25| + D_op_rsv33| + D_op_rsv41| + D_op_rsv49| + D_op_rsv57| + D_op_ldb| + D_op_ldh| + D_op_ldl| + D_op_ldw| + D_op_ldbio| + D_op_ldhio| + D_op_ldwio| + D_op_rsv63| + D_op_ldbu| + D_op_ldhu| + D_op_ldbuio| + D_op_ldhuio| + D_op_initd| + D_op_initda| + D_op_flushd| + D_op_flushda| + D_op_stb| + D_op_sth| + D_op_stw| + D_op_stc| + D_op_stbio| + D_op_sthio| + D_op_stwio| + D_op_rsv61| + D_op_roli| + D_op_rsvx10| + D_op_slli| + D_op_srli| + D_op_rsvx34| + D_op_rsvx42| + D_op_rsvx50| + D_op_srai; + + assign R_ctrl_src2_choose_imm_nxt = D_ctrl_src2_choose_imm; + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + R_ctrl_src2_choose_imm <= 0; + else if (R_en) + R_ctrl_src2_choose_imm <= R_ctrl_src2_choose_imm_nxt; + end + + + assign D_ctrl_wrctl_inst = D_op_wrctl; + assign R_ctrl_wrctl_inst_nxt = D_ctrl_wrctl_inst; + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + R_ctrl_wrctl_inst <= 0; + else if (R_en) + R_ctrl_wrctl_inst <= R_ctrl_wrctl_inst_nxt; + end + + + assign D_ctrl_rdctl_inst = D_op_rdctl; + assign R_ctrl_rdctl_inst_nxt = D_ctrl_rdctl_inst; + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + R_ctrl_rdctl_inst <= 0; + else if (R_en) + R_ctrl_rdctl_inst <= R_ctrl_rdctl_inst_nxt; + end + + + assign D_ctrl_force_src2_zero = D_op_call| + D_op_rsv02| + D_op_nextpc| + D_op_callr| + D_op_trap| + D_op_rsvx44| + D_op_intr| + D_op_rsvx60| + D_op_break| + D_op_hbreak| + D_op_eret| + D_op_bret| + D_op_rsvx17| + D_op_rsvx25| + D_op_ret| + D_op_jmp| + D_op_rsvx21| + D_op_jmpi; + + assign R_ctrl_force_src2_zero_nxt = D_ctrl_force_src2_zero; + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + R_ctrl_force_src2_zero <= 0; + else if (R_en) + R_ctrl_force_src2_zero <= R_ctrl_force_src2_zero_nxt; + end + + + assign D_ctrl_alu_force_xor = D_op_cmpgei| + D_op_cmpgeui| + D_op_cmpeqi| + D_op_cmpge| + D_op_cmpgeu| + D_op_cmpeq| + D_op_cmpnei| + D_op_cmpne| + D_op_bge| + D_op_rsv10| + D_op_bgeu| + D_op_rsv42| + D_op_beq| + D_op_rsv34| + D_op_bne| + D_op_rsv62| + D_op_br| + D_op_rsv02; + + assign R_ctrl_alu_force_xor_nxt = D_ctrl_alu_force_xor; + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + R_ctrl_alu_force_xor <= 0; + else if (R_en) + R_ctrl_alu_force_xor <= R_ctrl_alu_force_xor_nxt; + end + + + //data_master, which is an e_avalon_master + //instruction_master, which is an e_avalon_master + +//synthesis translate_off +//////////////// SIMULATION-ONLY CONTENTS + assign F_inst = (F_op_call)? 56'h20202063616c6c : + (F_op_jmpi)? 56'h2020206a6d7069 : + (F_op_ldbu)? 56'h2020206c646275 : + (F_op_addi)? 56'h20202061646469 : + (F_op_stb)? 56'h20202020737462 : + (F_op_br)? 56'h20202020206272 : + (F_op_ldb)? 56'h202020206c6462 : + (F_op_cmpgei)? 56'h20636d70676569 : + (F_op_ldhu)? 56'h2020206c646875 : + (F_op_andi)? 56'h202020616e6469 : + (F_op_sth)? 56'h20202020737468 : + (F_op_bge)? 56'h20202020626765 : + (F_op_ldh)? 56'h202020206c6468 : + (F_op_cmplti)? 56'h20636d706c7469 : + (F_op_initda)? 56'h20696e69746461 : + (F_op_ori)? 56'h202020206f7269 : + (F_op_stw)? 56'h20202020737477 : + (F_op_blt)? 56'h20202020626c74 : + (F_op_ldw)? 56'h202020206c6477 : + (F_op_cmpnei)? 56'h20636d706e6569 : + (F_op_flushda)? 56'h666c7573686461 : + (F_op_xori)? 56'h202020786f7269 : + (F_op_bne)? 56'h20202020626e65 : + (F_op_cmpeqi)? 56'h20636d70657169 : + (F_op_ldbuio)? 56'h206c646275696f : + (F_op_muli)? 56'h2020206d756c69 : + (F_op_stbio)? 56'h2020737462696f : + (F_op_beq)? 56'h20202020626571 : + (F_op_ldbio)? 56'h20206c6462696f : + (F_op_cmpgeui)? 56'h636d7067657569 : + (F_op_ldhuio)? 56'h206c646875696f : + (F_op_andhi)? 56'h2020616e646869 : + (F_op_sthio)? 56'h2020737468696f : + (F_op_bgeu)? 56'h20202062676575 : + (F_op_ldhio)? 56'h20206c6468696f : + (F_op_cmpltui)? 56'h636d706c747569 : + (F_op_initd)? 56'h2020696e697464 : + (F_op_orhi)? 56'h2020206f726869 : + (F_op_stwio)? 56'h2020737477696f : + (F_op_bltu)? 56'h202020626c7475 : + (F_op_ldwio)? 56'h20206c6477696f : + (F_op_flushd)? 56'h20666c75736864 : + (F_op_xorhi)? 56'h2020786f726869 : + (F_op_eret)? 56'h20202065726574 : + (F_op_roli)? 56'h202020726f6c69 : + (F_op_rol)? 56'h20202020726f6c : + (F_op_flushp)? 56'h20666c75736870 : + (F_op_ret)? 56'h20202020726574 : + (F_op_nor)? 56'h202020206e6f72 : + (F_op_mulxuu)? 56'h206d756c787575 : + (F_op_cmpge)? 56'h2020636d706765 : + (F_op_bret)? 56'h20202062726574 : + (F_op_ror)? 56'h20202020726f72 : + (F_op_flushi)? 56'h20666c75736869 : + (F_op_jmp)? 56'h202020206a6d70 : + (F_op_and)? 56'h20202020616e64 : + (F_op_cmplt)? 56'h2020636d706c74 : + (F_op_slli)? 56'h202020736c6c69 : + (F_op_sll)? 56'h20202020736c6c : + (F_op_or)? 56'h20202020206f72 : + (F_op_mulxsu)? 56'h206d756c787375 : + (F_op_cmpne)? 56'h2020636d706e65 : + (F_op_srli)? 56'h20202073726c69 : + (F_op_srl)? 56'h2020202073726c : + (F_op_nextpc)? 56'h206e6578747063 : + (F_op_callr)? 56'h202063616c6c72 : + (F_op_xor)? 56'h20202020786f72 : + (F_op_mulxss)? 56'h206d756c787373 : + (F_op_cmpeq)? 56'h2020636d706571 : + (F_op_divu)? 56'h20202064697675 : + (F_op_div)? 56'h20202020646976 : + (F_op_rdctl)? 56'h2020726463746c : + (F_op_mul)? 56'h202020206d756c : + (F_op_cmpgeu)? 56'h20636d70676575 : + (F_op_initi)? 56'h2020696e697469 : + (F_op_trap)? 56'h20202074726170 : + (F_op_wrctl)? 56'h2020777263746c : + (F_op_cmpltu)? 56'h20636d706c7475 : + (F_op_add)? 56'h20202020616464 : + (F_op_break)? 56'h2020627265616b : + (F_op_hbreak)? 56'h2068627265616b : + (F_op_sync)? 56'h20202073796e63 : + (F_op_sub)? 56'h20202020737562 : + (F_op_srai)? 56'h20202073726169 : + (F_op_sra)? 56'h20202020737261 : + (F_op_intr)? 56'h202020696e7472 : + 56'h20202020424144; + + assign D_inst = (D_op_call)? 56'h20202063616c6c : + (D_op_jmpi)? 56'h2020206a6d7069 : + (D_op_ldbu)? 56'h2020206c646275 : + (D_op_addi)? 56'h20202061646469 : + (D_op_stb)? 56'h20202020737462 : + (D_op_br)? 56'h20202020206272 : + (D_op_ldb)? 56'h202020206c6462 : + (D_op_cmpgei)? 56'h20636d70676569 : + (D_op_ldhu)? 56'h2020206c646875 : + (D_op_andi)? 56'h202020616e6469 : + (D_op_sth)? 56'h20202020737468 : + (D_op_bge)? 56'h20202020626765 : + (D_op_ldh)? 56'h202020206c6468 : + (D_op_cmplti)? 56'h20636d706c7469 : + (D_op_initda)? 56'h20696e69746461 : + (D_op_ori)? 56'h202020206f7269 : + (D_op_stw)? 56'h20202020737477 : + (D_op_blt)? 56'h20202020626c74 : + (D_op_ldw)? 56'h202020206c6477 : + (D_op_cmpnei)? 56'h20636d706e6569 : + (D_op_flushda)? 56'h666c7573686461 : + (D_op_xori)? 56'h202020786f7269 : + (D_op_bne)? 56'h20202020626e65 : + (D_op_cmpeqi)? 56'h20636d70657169 : + (D_op_ldbuio)? 56'h206c646275696f : + (D_op_muli)? 56'h2020206d756c69 : + (D_op_stbio)? 56'h2020737462696f : + (D_op_beq)? 56'h20202020626571 : + (D_op_ldbio)? 56'h20206c6462696f : + (D_op_cmpgeui)? 56'h636d7067657569 : + (D_op_ldhuio)? 56'h206c646875696f : + (D_op_andhi)? 56'h2020616e646869 : + (D_op_sthio)? 56'h2020737468696f : + (D_op_bgeu)? 56'h20202062676575 : + (D_op_ldhio)? 56'h20206c6468696f : + (D_op_cmpltui)? 56'h636d706c747569 : + (D_op_initd)? 56'h2020696e697464 : + (D_op_orhi)? 56'h2020206f726869 : + (D_op_stwio)? 56'h2020737477696f : + (D_op_bltu)? 56'h202020626c7475 : + (D_op_ldwio)? 56'h20206c6477696f : + (D_op_flushd)? 56'h20666c75736864 : + (D_op_xorhi)? 56'h2020786f726869 : + (D_op_eret)? 56'h20202065726574 : + (D_op_roli)? 56'h202020726f6c69 : + (D_op_rol)? 56'h20202020726f6c : + (D_op_flushp)? 56'h20666c75736870 : + (D_op_ret)? 56'h20202020726574 : + (D_op_nor)? 56'h202020206e6f72 : + (D_op_mulxuu)? 56'h206d756c787575 : + (D_op_cmpge)? 56'h2020636d706765 : + (D_op_bret)? 56'h20202062726574 : + (D_op_ror)? 56'h20202020726f72 : + (D_op_flushi)? 56'h20666c75736869 : + (D_op_jmp)? 56'h202020206a6d70 : + (D_op_and)? 56'h20202020616e64 : + (D_op_cmplt)? 56'h2020636d706c74 : + (D_op_slli)? 56'h202020736c6c69 : + (D_op_sll)? 56'h20202020736c6c : + (D_op_or)? 56'h20202020206f72 : + (D_op_mulxsu)? 56'h206d756c787375 : + (D_op_cmpne)? 56'h2020636d706e65 : + (D_op_srli)? 56'h20202073726c69 : + (D_op_srl)? 56'h2020202073726c : + (D_op_nextpc)? 56'h206e6578747063 : + (D_op_callr)? 56'h202063616c6c72 : + (D_op_xor)? 56'h20202020786f72 : + (D_op_mulxss)? 56'h206d756c787373 : + (D_op_cmpeq)? 56'h2020636d706571 : + (D_op_divu)? 56'h20202064697675 : + (D_op_div)? 56'h20202020646976 : + (D_op_rdctl)? 56'h2020726463746c : + (D_op_mul)? 56'h202020206d756c : + (D_op_cmpgeu)? 56'h20636d70676575 : + (D_op_initi)? 56'h2020696e697469 : + (D_op_trap)? 56'h20202074726170 : + (D_op_wrctl)? 56'h2020777263746c : + (D_op_cmpltu)? 56'h20636d706c7475 : + (D_op_add)? 56'h20202020616464 : + (D_op_break)? 56'h2020627265616b : + (D_op_hbreak)? 56'h2068627265616b : + (D_op_sync)? 56'h20202073796e63 : + (D_op_sub)? 56'h20202020737562 : + (D_op_srai)? 56'h20202073726169 : + (D_op_sra)? 56'h20202020737261 : + (D_op_intr)? 56'h202020696e7472 : + 56'h20202020424144; + + assign F_vinst = F_valid ? F_inst : {7{8'h2d}}; + assign D_vinst = D_valid ? D_inst : {7{8'h2d}}; + assign R_vinst = R_valid ? D_inst : {7{8'h2d}}; + assign E_vinst = E_valid ? D_inst : {7{8'h2d}}; + assign W_vinst = W_valid ? D_inst : {7{8'h2d}}; + +//////////////// END SIMULATION-ONLY CONTENTS + +//synthesis translate_on + +endmodule + diff --git a/nios_system/synthesis/submodules/nios_system_nios2_processor_jtag_debug_module_sysclk.v b/nios_system/synthesis/submodules/nios_system_nios2_processor_jtag_debug_module_sysclk.v new file mode 100644 index 0000000..7eead98 --- /dev/null +++ b/nios_system/synthesis/submodules/nios_system_nios2_processor_jtag_debug_module_sysclk.v @@ -0,0 +1,181 @@ +//Legal Notice: (C)2016 Altera Corporation. All rights reserved. Your +//use of Altera Corporation's design tools, logic functions and other +//software and tools, and its AMPP partner logic functions, and any +//output files any of the foregoing (including device programming or +//simulation files), and any associated documentation or information are +//expressly subject to the terms and conditions of the Altera Program +//License Subscription Agreement or other applicable license agreement, +//including, without limitation, that your use is for the sole purpose +//of programming logic devices manufactured by Altera and sold by Altera +//or its authorized distributors. Please refer to the applicable +//agreement for further details. + +// synthesis translate_off +`timescale 1ns / 1ps +// synthesis translate_on + +// turn off superfluous verilog processor warnings +// altera message_level Level1 +// altera message_off 10034 10035 10036 10037 10230 10240 10030 + +module nios_system_nios2_processor_jtag_debug_module_sysclk ( + // inputs: + clk, + ir_in, + sr, + vs_udr, + vs_uir, + + // outputs: + jdo, + take_action_break_a, + take_action_break_b, + take_action_break_c, + take_action_ocimem_a, + take_action_ocimem_b, + take_action_tracectrl, + take_action_tracemem_a, + take_action_tracemem_b, + take_no_action_break_a, + take_no_action_break_b, + take_no_action_break_c, + take_no_action_ocimem_a, + take_no_action_tracemem_a + ) +; + + output [ 37: 0] jdo; + output take_action_break_a; + output take_action_break_b; + output take_action_break_c; + output take_action_ocimem_a; + output take_action_ocimem_b; + output take_action_tracectrl; + output take_action_tracemem_a; + output take_action_tracemem_b; + output take_no_action_break_a; + output take_no_action_break_b; + output take_no_action_break_c; + output take_no_action_ocimem_a; + output take_no_action_tracemem_a; + input clk; + input [ 1: 0] ir_in; + input [ 37: 0] sr; + input vs_udr; + input vs_uir; + + reg enable_action_strobe /* synthesis ALTERA_ATTRIBUTE = "SUPPRESS_DA_RULE_INTERNAL=\"D101,D103\"" */; + reg [ 1: 0] ir /* synthesis ALTERA_ATTRIBUTE = "SUPPRESS_DA_RULE_INTERNAL=\"D101,R101\"" */; + reg [ 37: 0] jdo /* synthesis ALTERA_ATTRIBUTE = "SUPPRESS_DA_RULE_INTERNAL=\"D101,R101\"" */; + reg jxuir /* synthesis ALTERA_ATTRIBUTE = "SUPPRESS_DA_RULE_INTERNAL=\"D101,D103\"" */; + reg sync2_udr /* synthesis ALTERA_ATTRIBUTE = "SUPPRESS_DA_RULE_INTERNAL=\"D101,D103\"" */; + reg sync2_uir /* synthesis ALTERA_ATTRIBUTE = "SUPPRESS_DA_RULE_INTERNAL=\"D101,D103\"" */; + wire sync_udr; + wire sync_uir; + wire take_action_break_a; + wire take_action_break_b; + wire take_action_break_c; + wire take_action_ocimem_a; + wire take_action_ocimem_b; + wire take_action_tracectrl; + wire take_action_tracemem_a; + wire take_action_tracemem_b; + wire take_no_action_break_a; + wire take_no_action_break_b; + wire take_no_action_break_c; + wire take_no_action_ocimem_a; + wire take_no_action_tracemem_a; + wire unxunused_resetxx3; + wire unxunused_resetxx4; + reg update_jdo_strobe /* synthesis ALTERA_ATTRIBUTE = "SUPPRESS_DA_RULE_INTERNAL=\"D101,D103\"" */; + assign unxunused_resetxx3 = 1'b1; + altera_std_synchronizer the_altera_std_synchronizer3 + ( + .clk (clk), + .din (vs_udr), + .dout (sync_udr), + .reset_n (unxunused_resetxx3) + ); + + defparam the_altera_std_synchronizer3.depth = 2; + + assign unxunused_resetxx4 = 1'b1; + altera_std_synchronizer the_altera_std_synchronizer4 + ( + .clk (clk), + .din (vs_uir), + .dout (sync_uir), + .reset_n (unxunused_resetxx4) + ); + + defparam the_altera_std_synchronizer4.depth = 2; + + always @(posedge clk) + begin + sync2_udr <= sync_udr; + update_jdo_strobe <= sync_udr & ~sync2_udr; + enable_action_strobe <= update_jdo_strobe; + sync2_uir <= sync_uir; + jxuir <= sync_uir & ~sync2_uir; + end + + + assign take_action_ocimem_a = enable_action_strobe && (ir == 2'b00) && + ~jdo[35] && jdo[34]; + + assign take_no_action_ocimem_a = enable_action_strobe && (ir == 2'b00) && + ~jdo[35] && ~jdo[34]; + + assign take_action_ocimem_b = enable_action_strobe && (ir == 2'b00) && + jdo[35]; + + assign take_action_tracemem_a = enable_action_strobe && (ir == 2'b01) && + ~jdo[37] && + jdo[36]; + + assign take_no_action_tracemem_a = enable_action_strobe && (ir == 2'b01) && + ~jdo[37] && + ~jdo[36]; + + assign take_action_tracemem_b = enable_action_strobe && (ir == 2'b01) && + jdo[37]; + + assign take_action_break_a = enable_action_strobe && (ir == 2'b10) && + ~jdo[36] && + jdo[37]; + + assign take_no_action_break_a = enable_action_strobe && (ir == 2'b10) && + ~jdo[36] && + ~jdo[37]; + + assign take_action_break_b = enable_action_strobe && (ir == 2'b10) && + jdo[36] && ~jdo[35] && + jdo[37]; + + assign take_no_action_break_b = enable_action_strobe && (ir == 2'b10) && + jdo[36] && ~jdo[35] && + ~jdo[37]; + + assign take_action_break_c = enable_action_strobe && (ir == 2'b10) && + jdo[36] && jdo[35] && + jdo[37]; + + assign take_no_action_break_c = enable_action_strobe && (ir == 2'b10) && + jdo[36] && jdo[35] && + ~jdo[37]; + + assign take_action_tracectrl = enable_action_strobe && (ir == 2'b11) && + jdo[15]; + + always @(posedge clk) + begin + if (jxuir) + ir <= ir_in; + if (update_jdo_strobe) + jdo <= sr; + end + + + +endmodule + diff --git a/nios_system/synthesis/submodules/nios_system_nios2_processor_jtag_debug_module_tck.v b/nios_system/synthesis/submodules/nios_system_nios2_processor_jtag_debug_module_tck.v new file mode 100644 index 0000000..09289db --- /dev/null +++ b/nios_system/synthesis/submodules/nios_system_nios2_processor_jtag_debug_module_tck.v @@ -0,0 +1,239 @@ +//Legal Notice: (C)2016 Altera Corporation. All rights reserved. Your +//use of Altera Corporation's design tools, logic functions and other +//software and tools, and its AMPP partner logic functions, and any +//output files any of the foregoing (including device programming or +//simulation files), and any associated documentation or information are +//expressly subject to the terms and conditions of the Altera Program +//License Subscription Agreement or other applicable license agreement, +//including, without limitation, that your use is for the sole purpose +//of programming logic devices manufactured by Altera and sold by Altera +//or its authorized distributors. Please refer to the applicable +//agreement for further details. + +// synthesis translate_off +`timescale 1ns / 1ps +// synthesis translate_on + +// turn off superfluous verilog processor warnings +// altera message_level Level1 +// altera message_off 10034 10035 10036 10037 10230 10240 10030 + +module nios_system_nios2_processor_jtag_debug_module_tck ( + // inputs: + MonDReg, + break_readreg, + dbrk_hit0_latch, + dbrk_hit1_latch, + dbrk_hit2_latch, + dbrk_hit3_latch, + debugack, + ir_in, + jtag_state_rti, + monitor_error, + monitor_ready, + reset_n, + resetlatch, + tck, + tdi, + tracemem_on, + tracemem_trcdata, + tracemem_tw, + trc_im_addr, + trc_on, + trc_wrap, + trigbrktype, + trigger_state_1, + vs_cdr, + vs_sdr, + vs_uir, + + // outputs: + ir_out, + jrst_n, + sr, + st_ready_test_idle, + tdo + ) +; + + output [ 1: 0] ir_out; + output jrst_n; + output [ 37: 0] sr; + output st_ready_test_idle; + output tdo; + input [ 31: 0] MonDReg; + input [ 31: 0] break_readreg; + input dbrk_hit0_latch; + input dbrk_hit1_latch; + input dbrk_hit2_latch; + input dbrk_hit3_latch; + input debugack; + input [ 1: 0] ir_in; + input jtag_state_rti; + input monitor_error; + input monitor_ready; + input reset_n; + input resetlatch; + input tck; + input tdi; + input tracemem_on; + input [ 35: 0] tracemem_trcdata; + input tracemem_tw; + input [ 6: 0] trc_im_addr; + input trc_on; + input trc_wrap; + input trigbrktype; + input trigger_state_1; + input vs_cdr; + input vs_sdr; + input vs_uir; + + reg [ 2: 0] DRsize /* synthesis ALTERA_ATTRIBUTE = "SUPPRESS_DA_RULE_INTERNAL=\"D101,D103,R101\"" */; + wire debugack_sync; + reg [ 1: 0] ir_out; + wire jrst_n; + wire monitor_ready_sync; + reg [ 37: 0] sr /* synthesis ALTERA_ATTRIBUTE = "SUPPRESS_DA_RULE_INTERNAL=\"D101,D103,R101\"" */; + wire st_ready_test_idle; + wire tdo; + wire unxcomplemented_resetxx1; + wire unxcomplemented_resetxx2; + always @(posedge tck) + begin + if (vs_cdr) + case (ir_in) + + 2'b00: begin + sr[35] <= debugack_sync; + sr[34] <= monitor_error; + sr[33] <= resetlatch; + sr[32 : 1] <= MonDReg; + sr[0] <= monitor_ready_sync; + end // 2'b00 + + 2'b01: begin + sr[35 : 0] <= tracemem_trcdata; + sr[37] <= tracemem_tw; + sr[36] <= tracemem_on; + end // 2'b01 + + 2'b10: begin + sr[37] <= trigger_state_1; + sr[36] <= dbrk_hit3_latch; + sr[35] <= dbrk_hit2_latch; + sr[34] <= dbrk_hit1_latch; + sr[33] <= dbrk_hit0_latch; + sr[32 : 1] <= break_readreg; + sr[0] <= trigbrktype; + end // 2'b10 + + 2'b11: begin + sr[15 : 12] <= 1'b0; + sr[11 : 2] <= trc_im_addr; + sr[1] <= trc_wrap; + sr[0] <= trc_on; + end // 2'b11 + + endcase // ir_in + if (vs_sdr) + case (DRsize) + + 3'b000: begin + sr <= {tdi, sr[37 : 2], tdi}; + end // 3'b000 + + 3'b001: begin + sr <= {tdi, sr[37 : 9], tdi, sr[7 : 1]}; + end // 3'b001 + + 3'b010: begin + sr <= {tdi, sr[37 : 17], tdi, sr[15 : 1]}; + end // 3'b010 + + 3'b011: begin + sr <= {tdi, sr[37 : 33], tdi, sr[31 : 1]}; + end // 3'b011 + + 3'b100: begin + sr <= {tdi, sr[37], tdi, sr[35 : 1]}; + end // 3'b100 + + 3'b101: begin + sr <= {tdi, sr[37 : 1]}; + end // 3'b101 + + default: begin + sr <= {tdi, sr[37 : 2], tdi}; + end // default + + endcase // DRsize + if (vs_uir) + case (ir_in) + + 2'b00: begin + DRsize <= 3'b100; + end // 2'b00 + + 2'b01: begin + DRsize <= 3'b101; + end // 2'b01 + + 2'b10: begin + DRsize <= 3'b101; + end // 2'b10 + + 2'b11: begin + DRsize <= 3'b010; + end // 2'b11 + + endcase // ir_in + end + + + assign tdo = sr[0]; + assign st_ready_test_idle = jtag_state_rti; + assign unxcomplemented_resetxx1 = jrst_n; + altera_std_synchronizer the_altera_std_synchronizer1 + ( + .clk (tck), + .din (debugack), + .dout (debugack_sync), + .reset_n (unxcomplemented_resetxx1) + ); + + defparam the_altera_std_synchronizer1.depth = 2; + + assign unxcomplemented_resetxx2 = jrst_n; + altera_std_synchronizer the_altera_std_synchronizer2 + ( + .clk (tck), + .din (monitor_ready), + .dout (monitor_ready_sync), + .reset_n (unxcomplemented_resetxx2) + ); + + defparam the_altera_std_synchronizer2.depth = 2; + + always @(posedge tck or negedge jrst_n) + begin + if (jrst_n == 0) + ir_out <= 2'b0; + else + ir_out <= {debugack_sync, monitor_ready_sync}; + end + + + +//synthesis translate_off +//////////////// SIMULATION-ONLY CONTENTS + assign jrst_n = reset_n; + +//////////////// END SIMULATION-ONLY CONTENTS + +//synthesis translate_on +//synthesis read_comments_as_HDL on +// assign jrst_n = 1; +//synthesis read_comments_as_HDL off + +endmodule + diff --git a/nios_system/synthesis/submodules/nios_system_nios2_processor_jtag_debug_module_wrapper.v b/nios_system/synthesis/submodules/nios_system_nios2_processor_jtag_debug_module_wrapper.v new file mode 100644 index 0000000..6a57330 --- /dev/null +++ b/nios_system/synthesis/submodules/nios_system_nios2_processor_jtag_debug_module_wrapper.v @@ -0,0 +1,233 @@ +//Legal Notice: (C)2016 Altera Corporation. All rights reserved. Your +//use of Altera Corporation's design tools, logic functions and other +//software and tools, and its AMPP partner logic functions, and any +//output files any of the foregoing (including device programming or +//simulation files), and any associated documentation or information are +//expressly subject to the terms and conditions of the Altera Program +//License Subscription Agreement or other applicable license agreement, +//including, without limitation, that your use is for the sole purpose +//of programming logic devices manufactured by Altera and sold by Altera +//or its authorized distributors. Please refer to the applicable +//agreement for further details. + +// synthesis translate_off +`timescale 1ns / 1ps +// synthesis translate_on + +// turn off superfluous verilog processor warnings +// altera message_level Level1 +// altera message_off 10034 10035 10036 10037 10230 10240 10030 + +module nios_system_nios2_processor_jtag_debug_module_wrapper ( + // inputs: + MonDReg, + break_readreg, + clk, + dbrk_hit0_latch, + dbrk_hit1_latch, + dbrk_hit2_latch, + dbrk_hit3_latch, + debugack, + monitor_error, + monitor_ready, + reset_n, + resetlatch, + tracemem_on, + tracemem_trcdata, + tracemem_tw, + trc_im_addr, + trc_on, + trc_wrap, + trigbrktype, + trigger_state_1, + + // outputs: + jdo, + jrst_n, + st_ready_test_idle, + take_action_break_a, + take_action_break_b, + take_action_break_c, + take_action_ocimem_a, + take_action_ocimem_b, + take_action_tracectrl, + take_action_tracemem_a, + take_action_tracemem_b, + take_no_action_break_a, + take_no_action_break_b, + take_no_action_break_c, + take_no_action_ocimem_a, + take_no_action_tracemem_a + ) +; + + output [ 37: 0] jdo; + output jrst_n; + output st_ready_test_idle; + output take_action_break_a; + output take_action_break_b; + output take_action_break_c; + output take_action_ocimem_a; + output take_action_ocimem_b; + output take_action_tracectrl; + output take_action_tracemem_a; + output take_action_tracemem_b; + output take_no_action_break_a; + output take_no_action_break_b; + output take_no_action_break_c; + output take_no_action_ocimem_a; + output take_no_action_tracemem_a; + input [ 31: 0] MonDReg; + input [ 31: 0] break_readreg; + input clk; + input dbrk_hit0_latch; + input dbrk_hit1_latch; + input dbrk_hit2_latch; + input dbrk_hit3_latch; + input debugack; + input monitor_error; + input monitor_ready; + input reset_n; + input resetlatch; + input tracemem_on; + input [ 35: 0] tracemem_trcdata; + input tracemem_tw; + input [ 6: 0] trc_im_addr; + input trc_on; + input trc_wrap; + input trigbrktype; + input trigger_state_1; + + wire [ 37: 0] jdo; + wire jrst_n; + wire [ 37: 0] sr; + wire st_ready_test_idle; + wire take_action_break_a; + wire take_action_break_b; + wire take_action_break_c; + wire take_action_ocimem_a; + wire take_action_ocimem_b; + wire take_action_tracectrl; + wire take_action_tracemem_a; + wire take_action_tracemem_b; + wire take_no_action_break_a; + wire take_no_action_break_b; + wire take_no_action_break_c; + wire take_no_action_ocimem_a; + wire take_no_action_tracemem_a; + wire vji_cdr; + wire [ 1: 0] vji_ir_in; + wire [ 1: 0] vji_ir_out; + wire vji_rti; + wire vji_sdr; + wire vji_tck; + wire vji_tdi; + wire vji_tdo; + wire vji_udr; + wire vji_uir; + //Change the sld_virtual_jtag_basic's defparams to + //switch between a regular Nios II or an internally embedded Nios II. + //For a regular Nios II, sld_mfg_id = 70, sld_type_id = 34. + //For an internally embedded Nios II, slf_mfg_id = 110, sld_type_id = 135. + nios_system_nios2_processor_jtag_debug_module_tck the_nios_system_nios2_processor_jtag_debug_module_tck + ( + .MonDReg (MonDReg), + .break_readreg (break_readreg), + .dbrk_hit0_latch (dbrk_hit0_latch), + .dbrk_hit1_latch (dbrk_hit1_latch), + .dbrk_hit2_latch (dbrk_hit2_latch), + .dbrk_hit3_latch (dbrk_hit3_latch), + .debugack (debugack), + .ir_in (vji_ir_in), + .ir_out (vji_ir_out), + .jrst_n (jrst_n), + .jtag_state_rti (vji_rti), + .monitor_error (monitor_error), + .monitor_ready (monitor_ready), + .reset_n (reset_n), + .resetlatch (resetlatch), + .sr (sr), + .st_ready_test_idle (st_ready_test_idle), + .tck (vji_tck), + .tdi (vji_tdi), + .tdo (vji_tdo), + .tracemem_on (tracemem_on), + .tracemem_trcdata (tracemem_trcdata), + .tracemem_tw (tracemem_tw), + .trc_im_addr (trc_im_addr), + .trc_on (trc_on), + .trc_wrap (trc_wrap), + .trigbrktype (trigbrktype), + .trigger_state_1 (trigger_state_1), + .vs_cdr (vji_cdr), + .vs_sdr (vji_sdr), + .vs_uir (vji_uir) + ); + + nios_system_nios2_processor_jtag_debug_module_sysclk the_nios_system_nios2_processor_jtag_debug_module_sysclk + ( + .clk (clk), + .ir_in (vji_ir_in), + .jdo (jdo), + .sr (sr), + .take_action_break_a (take_action_break_a), + .take_action_break_b (take_action_break_b), + .take_action_break_c (take_action_break_c), + .take_action_ocimem_a (take_action_ocimem_a), + .take_action_ocimem_b (take_action_ocimem_b), + .take_action_tracectrl (take_action_tracectrl), + .take_action_tracemem_a (take_action_tracemem_a), + .take_action_tracemem_b (take_action_tracemem_b), + .take_no_action_break_a (take_no_action_break_a), + .take_no_action_break_b (take_no_action_break_b), + .take_no_action_break_c (take_no_action_break_c), + .take_no_action_ocimem_a (take_no_action_ocimem_a), + .take_no_action_tracemem_a (take_no_action_tracemem_a), + .vs_udr (vji_udr), + .vs_uir (vji_uir) + ); + + +//synthesis translate_off +//////////////// SIMULATION-ONLY CONTENTS + assign vji_tck = 1'b0; + assign vji_tdi = 1'b0; + assign vji_sdr = 1'b0; + assign vji_cdr = 1'b0; + assign vji_rti = 1'b0; + assign vji_uir = 1'b0; + assign vji_udr = 1'b0; + assign vji_ir_in = 2'b0; + +//////////////// END SIMULATION-ONLY CONTENTS + +//synthesis translate_on +//synthesis read_comments_as_HDL on +// sld_virtual_jtag_basic nios_system_nios2_processor_jtag_debug_module_phy +// ( +// .ir_in (vji_ir_in), +// .ir_out (vji_ir_out), +// .jtag_state_rti (vji_rti), +// .tck (vji_tck), +// .tdi (vji_tdi), +// .tdo (vji_tdo), +// .virtual_state_cdr (vji_cdr), +// .virtual_state_sdr (vji_sdr), +// .virtual_state_udr (vji_udr), +// .virtual_state_uir (vji_uir) +// ); +// +// defparam nios_system_nios2_processor_jtag_debug_module_phy.sld_auto_instance_index = "YES", +// nios_system_nios2_processor_jtag_debug_module_phy.sld_instance_index = 0, +// nios_system_nios2_processor_jtag_debug_module_phy.sld_ir_width = 2, +// nios_system_nios2_processor_jtag_debug_module_phy.sld_mfg_id = 70, +// nios_system_nios2_processor_jtag_debug_module_phy.sld_sim_action = "", +// nios_system_nios2_processor_jtag_debug_module_phy.sld_sim_n_scan = 0, +// nios_system_nios2_processor_jtag_debug_module_phy.sld_sim_total_length = 0, +// nios_system_nios2_processor_jtag_debug_module_phy.sld_type_id = 34, +// nios_system_nios2_processor_jtag_debug_module_phy.sld_version = 3; +// +//synthesis read_comments_as_HDL off + +endmodule + diff --git a/nios_system/synthesis/submodules/nios_system_nios2_processor_oci_test_bench.v b/nios_system/synthesis/submodules/nios_system_nios2_processor_oci_test_bench.v new file mode 100644 index 0000000..cf59495 --- /dev/null +++ b/nios_system/synthesis/submodules/nios_system_nios2_processor_oci_test_bench.v @@ -0,0 +1,37 @@ +//Legal Notice: (C)2016 Altera Corporation. All rights reserved. Your +//use of Altera Corporation's design tools, logic functions and other +//software and tools, and its AMPP partner logic functions, and any +//output files any of the foregoing (including device programming or +//simulation files), and any associated documentation or information are +//expressly subject to the terms and conditions of the Altera Program +//License Subscription Agreement or other applicable license agreement, +//including, without limitation, that your use is for the sole purpose +//of programming logic devices manufactured by Altera and sold by Altera +//or its authorized distributors. Please refer to the applicable +//agreement for further details. + +// synthesis translate_off +`timescale 1ns / 1ps +// synthesis translate_on + +// turn off superfluous verilog processor warnings +// altera message_level Level1 +// altera message_off 10034 10035 10036 10037 10230 10240 10030 + +module nios_system_nios2_processor_oci_test_bench ( + // inputs: + dct_buffer, + dct_count, + test_ending, + test_has_ended + ) +; + + input [ 29: 0] dct_buffer; + input [ 3: 0] dct_count; + input test_ending; + input test_has_ended; + + +endmodule + diff --git a/nios_system/synthesis/submodules/nios_system_nios2_processor_ociram_default_contents.mif b/nios_system/synthesis/submodules/nios_system_nios2_processor_ociram_default_contents.mif new file mode 100644 index 0000000..aee33b3 --- /dev/null +++ b/nios_system/synthesis/submodules/nios_system_nios2_processor_ociram_default_contents.mif @@ -0,0 +1,267 @@ +-- Contents are randomly generated during RTL generation. +WIDTH=32; +DEPTH=256; + +ADDRESS_RADIX=HEX; +DATA_RADIX=HEX; + +CONTENT BEGIN + +00 : 88997af9; +01 : abaae595; +02 : 32fd14d1; +03 : b66193c4; +04 : c6a6aa09; +05 : 0b43de5b; +06 : d1d93028; +07 : bcd08e2a; +08 : 1c8bae85; +09 : b11dad63; +0a : 864ddf62; +0b : 68301486; +0c : 51a3d8d0; +0d : 7af7d39e; +0e : 4761b503; +0f : 2a976e14; +10 : 98141041; +11 : 4c1f6471; +12 : 41dc0a35; +13 : 7d484ae3; +14 : 2a1329f3; +15 : 44ecf499; +16 : dccdd125; +17 : 240142e9; +18 : 3b7e4b05; +19 : bb92e762; +1a : 4594a3c5; +1b : ea0d940f; +1c : 66525d7c; +1d : 0f552242; +1e : 452bd52d; +1f : d1f4ed11; +20 : 5d590422; +21 : c8016b5f; +22 : 9ab94f07; +23 : 16bac9b4; +24 : fe569ae3; +25 : c6e1e6e7; +26 : 2ff19932; +27 : feb058ad; +28 : 1dcce651; +29 : e18b9bfb; +2a : e2f4fc64; +2b : 05d34847; +2c : 077a8143; +2d : 2ce4207f; +2e : 3f3e5113; +2f : c24d2803; +30 : e289b503; +31 : d16bcd4e; +32 : 57a841cf; +33 : 1194f754; +34 : 5c925a31; +35 : 40fd6946; +36 : e397e5d7; +37 : eada7553; +38 : eba8ec01; +39 : f5b39d0b; +3a : 88af39a3; +3b : 5b7f243e; +3c : 4f2bb4ba; +3d : 9451a234; +3e : 10fd984d; +3f : ad4ef4f7; +40 : 7fe97f8b; +41 : 08ea614d; +42 : 9f2c5cf4; +43 : 3f90b7a2; +44 : 8c2bc774; +45 : 45dd63a5; +46 : 3204329c; +47 : 9909be0d; +48 : be65c97b; +49 : 78f3d4a4; +4a : 3ee8b71c; +4b : 9e9a0de4; +4c : 56db426b; +4d : e6869d81; +4e : 20ab0652; +4f : 05d247ed; +50 : 1edccf12; +51 : 1e483b5a; +52 : 8e48ef1e; +53 : f19aefbf; +54 : 98335d23; +55 : 954ac923; +56 : 4679ced6; +57 : ae18d9b8; +58 : be57db48; +59 : 2af933e3; +5a : 3f04e244; +5b : 5d11c958; +5c : 65bda8cb; +5d : c53fe664; +5e : 797ceac8; +5f : aaa406e5; +60 : f785e24e; +61 : 95510077; +62 : 5b6f55a3; +63 : 2a3c749a; +64 : a92e6ae6; +65 : b2117fb0; +66 : 262a254e; +67 : b8c4da74; +68 : f69070ee; +69 : 9e7f80b8; +6a : 834528b4; +6b : 4aaf6d98; +6c : 96023372; +6d : d11663ed; +6e : 33a3c007; +6f : 0e7f06ee; +70 : 34385787; +71 : 2edfd7b0; +72 : 00d60e4b; +73 : 49535c30; +74 : e83f5c14; +75 : 5e0c4c59; +76 : 1d7b944a; +77 : 6ae69731; +78 : bf8414e4; +79 : 7451c212; +7a : 74ede6d2; +7b : 080eafa5; +7c : f21052d8; +7d : cc0819fb; +7e : 8993e5b6; +7f : e20f2df6; +80 : 0f267a65; +81 : 7a8e8407; +82 : e7be656d; +83 : 01ba4ca3; +84 : 7f998e44; +85 : 29d83420; +86 : 149f9a73; +87 : 643ae51e; +88 : 125714d3; +89 : 6e49dc21; +8a : 0b227946; +8b : 360a837d; +8c : b2187074; +8d : 17b0bdbd; +8e : 938fc73d; +8f : e73f501e; +90 : 70b5b87e; +91 : 2a2aed8a; +92 : f96cc881; +93 : 021b49e1; +94 : 8691600d; +95 : b45e1d12; +96 : 64d9644e; +97 : 486cbaf9; +98 : 386acf20; +99 : 0d1384d4; +9a : 62455f77; +9b : 866fde20; +9c : 006fecec; +9d : 94e84514; +9e : 7babc333; +9f : afaa8445; +a0 : b1175e3a; +a1 : e08de629; +a2 : 7f12a52d; +a3 : 0e322909; +a4 : 18784dc6; +a5 : b23bcc20; +a6 : 266c9e34; +a7 : c857eaf3; +a8 : 2ae3b164; +a9 : 038acf2a; +aa : c1abc60d; +ab : 8af787bd; +ac : 043723a9; +ad : c37c952d; +ae : 693a361f; +af : da4b8e99; +b0 : fb8fdb10; +b1 : 4d6365f2; +b2 : 712358e9; +b3 : 85dae0fa; +b4 : 7e82a418; +b5 : d3493768; +b6 : 739c65ec; +b7 : 73b66b19; +b8 : 22142816; +b9 : ff498322; +ba : 3266495e; +bb : e26e8214; +bc : c8c47131; +bd : 660793d8; +be : 689f8d69; +bf : faae340b; +c0 : 37518ba7; +c1 : f2865fe5; +c2 : 1bb44f3d; +c3 : 3bce44c5; +c4 : aff2d188; +c5 : 985442da; +c6 : 85bb58bd; +c7 : 0c53135d; +c8 : 495f80bc; +c9 : 853c95dc; +ca : dde937f1; +cb : 418f9452; +cc : 7669641c; +cd : 0e752434; +ce : b0fe17a7; +cf : d1be9b88; +d0 : cfbfeb76; +d1 : 80b48a11; +d2 : 9327c69e; +d3 : beca5a88; +d4 : e71d428f; +d5 : b318d275; +d6 : 56fea35e; +d7 : 140cd6bd; +d8 : b8c937ce; +d9 : 540eea36; +da : ee58fc7f; +db : 5615c389; +dc : 46692ad0; +dd : 5c713e51; +de : 6ba95f60; +df : 0e166732; +e0 : ac0e49f5; +e1 : c9a5ea76; +e2 : 05b04d86; +e3 : b29ac712; +e4 : 4e344493; +e5 : d45ede48; +e6 : 3da7e426; +e7 : 4d6a8937; +e8 : 99b59bd4; +e9 : 1f8a5751; +ea : 8b07e64e; +eb : b4dcd496; +ec : 42f84fe6; +ed : f1d5952f; +ee : a2e5a42d; +ef : 15b1af16; +f0 : 168012bc; +f1 : 2e276612; +f2 : 89913eaa; +f3 : c607a1a2; +f4 : fd8b544d; +f5 : aec31a53; +f6 : 25f958ad; +f7 : 365903ec; +f8 : 14761865; +f9 : 568cc23b; +fa : b0386305; +fb : fb9ebd8a; +fc : a25911d4; +fd : 806e3fbb; +fe : 9df35264; +ff : d62b3814; + +END; diff --git a/nios_system/synthesis/submodules/nios_system_nios2_processor_rf_ram_a.mif b/nios_system/synthesis/submodules/nios_system_nios2_processor_rf_ram_a.mif new file mode 100644 index 0000000..644013a --- /dev/null +++ b/nios_system/synthesis/submodules/nios_system_nios2_processor_rf_ram_a.mif @@ -0,0 +1,42 @@ +WIDTH=32; +DEPTH=32; + +ADDRESS_RADIX=HEX; +DATA_RADIX=HEX; + +CONTENT BEGIN + +00 : deadbeef; +01 : deadbeef; +02 : deadbeef; +03 : deadbeef; +04 : deadbeef; +05 : deadbeef; +06 : deadbeef; +07 : deadbeef; +08 : deadbeef; +09 : deadbeef; +0a : deadbeef; +0b : deadbeef; +0c : deadbeef; +0d : deadbeef; +0e : deadbeef; +0f : deadbeef; +10 : deadbeef; +11 : deadbeef; +12 : deadbeef; +13 : deadbeef; +14 : deadbeef; +15 : deadbeef; +16 : deadbeef; +17 : deadbeef; +18 : deadbeef; +19 : deadbeef; +1a : deadbeef; +1b : deadbeef; +1c : deadbeef; +1d : deadbeef; +1e : deadbeef; +1f : deadbeef; + +END; diff --git a/nios_system/synthesis/submodules/nios_system_nios2_processor_rf_ram_b.mif b/nios_system/synthesis/submodules/nios_system_nios2_processor_rf_ram_b.mif new file mode 100644 index 0000000..644013a --- /dev/null +++ b/nios_system/synthesis/submodules/nios_system_nios2_processor_rf_ram_b.mif @@ -0,0 +1,42 @@ +WIDTH=32; +DEPTH=32; + +ADDRESS_RADIX=HEX; +DATA_RADIX=HEX; + +CONTENT BEGIN + +00 : deadbeef; +01 : deadbeef; +02 : deadbeef; +03 : deadbeef; +04 : deadbeef; +05 : deadbeef; +06 : deadbeef; +07 : deadbeef; +08 : deadbeef; +09 : deadbeef; +0a : deadbeef; +0b : deadbeef; +0c : deadbeef; +0d : deadbeef; +0e : deadbeef; +0f : deadbeef; +10 : deadbeef; +11 : deadbeef; +12 : deadbeef; +13 : deadbeef; +14 : deadbeef; +15 : deadbeef; +16 : deadbeef; +17 : deadbeef; +18 : deadbeef; +19 : deadbeef; +1a : deadbeef; +1b : deadbeef; +1c : deadbeef; +1d : deadbeef; +1e : deadbeef; +1f : deadbeef; + +END; diff --git a/nios_system/synthesis/submodules/nios_system_nios2_processor_test_bench.v b/nios_system/synthesis/submodules/nios_system_nios2_processor_test_bench.v new file mode 100644 index 0000000..d707995 --- /dev/null +++ b/nios_system/synthesis/submodules/nios_system_nios2_processor_test_bench.v @@ -0,0 +1,667 @@ +//Legal Notice: (C)2016 Altera Corporation. All rights reserved. Your +//use of Altera Corporation's design tools, logic functions and other +//software and tools, and its AMPP partner logic functions, and any +//output files any of the foregoing (including device programming or +//simulation files), and any associated documentation or information are +//expressly subject to the terms and conditions of the Altera Program +//License Subscription Agreement or other applicable license agreement, +//including, without limitation, that your use is for the sole purpose +//of programming logic devices manufactured by Altera and sold by Altera +//or its authorized distributors. Please refer to the applicable +//agreement for further details. + +// synthesis translate_off +`timescale 1ns / 1ps +// synthesis translate_on + +// turn off superfluous verilog processor warnings +// altera message_level Level1 +// altera message_off 10034 10035 10036 10037 10230 10240 10030 + +module nios_system_nios2_processor_test_bench ( + // inputs: + D_iw, + D_iw_op, + D_iw_opx, + D_valid, + E_valid, + F_pcb, + F_valid, + R_ctrl_ld, + R_ctrl_ld_non_io, + R_dst_regnum, + R_wr_dst_reg, + W_valid, + W_vinst, + W_wr_data, + av_ld_data_aligned_unfiltered, + clk, + d_address, + d_byteenable, + d_read, + d_write_nxt, + i_address, + i_read, + i_readdata, + i_waitrequest, + reset_n, + + // outputs: + av_ld_data_aligned_filtered, + d_write, + test_has_ended + ) +; + + output [ 31: 0] av_ld_data_aligned_filtered; + output d_write; + output test_has_ended; + input [ 31: 0] D_iw; + input [ 5: 0] D_iw_op; + input [ 5: 0] D_iw_opx; + input D_valid; + input E_valid; + input [ 18: 0] F_pcb; + input F_valid; + input R_ctrl_ld; + input R_ctrl_ld_non_io; + input [ 4: 0] R_dst_regnum; + input R_wr_dst_reg; + input W_valid; + input [ 55: 0] W_vinst; + input [ 31: 0] W_wr_data; + input [ 31: 0] av_ld_data_aligned_unfiltered; + input clk; + input [ 18: 0] d_address; + input [ 3: 0] d_byteenable; + input d_read; + input d_write_nxt; + input [ 18: 0] i_address; + input i_read; + input [ 31: 0] i_readdata; + input i_waitrequest; + input reset_n; + + wire D_op_add; + wire D_op_addi; + wire D_op_and; + wire D_op_andhi; + wire D_op_andi; + wire D_op_beq; + wire D_op_bge; + wire D_op_bgeu; + wire D_op_blt; + wire D_op_bltu; + wire D_op_bne; + wire D_op_br; + wire D_op_break; + wire D_op_bret; + wire D_op_call; + wire D_op_callr; + wire D_op_cmpeq; + wire D_op_cmpeqi; + wire D_op_cmpge; + wire D_op_cmpgei; + wire D_op_cmpgeu; + wire D_op_cmpgeui; + wire D_op_cmplt; + wire D_op_cmplti; + wire D_op_cmpltu; + wire D_op_cmpltui; + wire D_op_cmpne; + wire D_op_cmpnei; + wire D_op_crst; + wire D_op_custom; + wire D_op_div; + wire D_op_divu; + wire D_op_eret; + wire D_op_flushd; + wire D_op_flushda; + wire D_op_flushi; + wire D_op_flushp; + wire D_op_hbreak; + wire D_op_initd; + wire D_op_initda; + wire D_op_initi; + wire D_op_intr; + wire D_op_jmp; + wire D_op_jmpi; + wire D_op_ldb; + wire D_op_ldbio; + wire D_op_ldbu; + wire D_op_ldbuio; + wire D_op_ldh; + wire D_op_ldhio; + wire D_op_ldhu; + wire D_op_ldhuio; + wire D_op_ldl; + wire D_op_ldw; + wire D_op_ldwio; + wire D_op_mul; + wire D_op_muli; + wire D_op_mulxss; + wire D_op_mulxsu; + wire D_op_mulxuu; + wire D_op_nextpc; + wire D_op_nor; + wire D_op_opx; + wire D_op_or; + wire D_op_orhi; + wire D_op_ori; + wire D_op_rdctl; + wire D_op_rdprs; + wire D_op_ret; + wire D_op_rol; + wire D_op_roli; + wire D_op_ror; + wire D_op_rsv02; + wire D_op_rsv09; + wire D_op_rsv10; + wire D_op_rsv17; + wire D_op_rsv18; + wire D_op_rsv25; + wire D_op_rsv26; + wire D_op_rsv33; + wire D_op_rsv34; + wire D_op_rsv41; + wire D_op_rsv42; + wire D_op_rsv49; + wire D_op_rsv57; + wire D_op_rsv61; + wire D_op_rsv62; + wire D_op_rsv63; + wire D_op_rsvx00; + wire D_op_rsvx10; + wire D_op_rsvx15; + wire D_op_rsvx17; + wire D_op_rsvx21; + wire D_op_rsvx25; + wire D_op_rsvx33; + wire D_op_rsvx34; + wire D_op_rsvx35; + wire D_op_rsvx42; + wire D_op_rsvx43; + wire D_op_rsvx44; + wire D_op_rsvx47; + wire D_op_rsvx50; + wire D_op_rsvx51; + wire D_op_rsvx55; + wire D_op_rsvx56; + wire D_op_rsvx60; + wire D_op_rsvx63; + wire D_op_sll; + wire D_op_slli; + wire D_op_sra; + wire D_op_srai; + wire D_op_srl; + wire D_op_srli; + wire D_op_stb; + wire D_op_stbio; + wire D_op_stc; + wire D_op_sth; + wire D_op_sthio; + wire D_op_stw; + wire D_op_stwio; + wire D_op_sub; + wire D_op_sync; + wire D_op_trap; + wire D_op_wrctl; + wire D_op_wrprs; + wire D_op_xor; + wire D_op_xorhi; + wire D_op_xori; + wire [ 31: 0] av_ld_data_aligned_filtered; + wire av_ld_data_aligned_unfiltered_0_is_x; + wire av_ld_data_aligned_unfiltered_10_is_x; + wire av_ld_data_aligned_unfiltered_11_is_x; + wire av_ld_data_aligned_unfiltered_12_is_x; + wire av_ld_data_aligned_unfiltered_13_is_x; + wire av_ld_data_aligned_unfiltered_14_is_x; + wire av_ld_data_aligned_unfiltered_15_is_x; + wire av_ld_data_aligned_unfiltered_16_is_x; + wire av_ld_data_aligned_unfiltered_17_is_x; + wire av_ld_data_aligned_unfiltered_18_is_x; + wire av_ld_data_aligned_unfiltered_19_is_x; + wire av_ld_data_aligned_unfiltered_1_is_x; + wire av_ld_data_aligned_unfiltered_20_is_x; + wire av_ld_data_aligned_unfiltered_21_is_x; + wire av_ld_data_aligned_unfiltered_22_is_x; + wire av_ld_data_aligned_unfiltered_23_is_x; + wire av_ld_data_aligned_unfiltered_24_is_x; + wire av_ld_data_aligned_unfiltered_25_is_x; + wire av_ld_data_aligned_unfiltered_26_is_x; + wire av_ld_data_aligned_unfiltered_27_is_x; + wire av_ld_data_aligned_unfiltered_28_is_x; + wire av_ld_data_aligned_unfiltered_29_is_x; + wire av_ld_data_aligned_unfiltered_2_is_x; + wire av_ld_data_aligned_unfiltered_30_is_x; + wire av_ld_data_aligned_unfiltered_31_is_x; + wire av_ld_data_aligned_unfiltered_3_is_x; + wire av_ld_data_aligned_unfiltered_4_is_x; + wire av_ld_data_aligned_unfiltered_5_is_x; + wire av_ld_data_aligned_unfiltered_6_is_x; + wire av_ld_data_aligned_unfiltered_7_is_x; + wire av_ld_data_aligned_unfiltered_8_is_x; + wire av_ld_data_aligned_unfiltered_9_is_x; + reg d_write; + wire test_has_ended; + assign D_op_call = D_iw_op == 0; + assign D_op_jmpi = D_iw_op == 1; + assign D_op_ldbu = D_iw_op == 3; + assign D_op_addi = D_iw_op == 4; + assign D_op_stb = D_iw_op == 5; + assign D_op_br = D_iw_op == 6; + assign D_op_ldb = D_iw_op == 7; + assign D_op_cmpgei = D_iw_op == 8; + assign D_op_ldhu = D_iw_op == 11; + assign D_op_andi = D_iw_op == 12; + assign D_op_sth = D_iw_op == 13; + assign D_op_bge = D_iw_op == 14; + assign D_op_ldh = D_iw_op == 15; + assign D_op_cmplti = D_iw_op == 16; + assign D_op_initda = D_iw_op == 19; + assign D_op_ori = D_iw_op == 20; + assign D_op_stw = D_iw_op == 21; + assign D_op_blt = D_iw_op == 22; + assign D_op_ldw = D_iw_op == 23; + assign D_op_cmpnei = D_iw_op == 24; + assign D_op_flushda = D_iw_op == 27; + assign D_op_xori = D_iw_op == 28; + assign D_op_stc = D_iw_op == 29; + assign D_op_bne = D_iw_op == 30; + assign D_op_ldl = D_iw_op == 31; + assign D_op_cmpeqi = D_iw_op == 32; + assign D_op_ldbuio = D_iw_op == 35; + assign D_op_muli = D_iw_op == 36; + assign D_op_stbio = D_iw_op == 37; + assign D_op_beq = D_iw_op == 38; + assign D_op_ldbio = D_iw_op == 39; + assign D_op_cmpgeui = D_iw_op == 40; + assign D_op_ldhuio = D_iw_op == 43; + assign D_op_andhi = D_iw_op == 44; + assign D_op_sthio = D_iw_op == 45; + assign D_op_bgeu = D_iw_op == 46; + assign D_op_ldhio = D_iw_op == 47; + assign D_op_cmpltui = D_iw_op == 48; + assign D_op_initd = D_iw_op == 51; + assign D_op_orhi = D_iw_op == 52; + assign D_op_stwio = D_iw_op == 53; + assign D_op_bltu = D_iw_op == 54; + assign D_op_ldwio = D_iw_op == 55; + assign D_op_rdprs = D_iw_op == 56; + assign D_op_flushd = D_iw_op == 59; + assign D_op_xorhi = D_iw_op == 60; + assign D_op_rsv02 = D_iw_op == 2; + assign D_op_rsv09 = D_iw_op == 9; + assign D_op_rsv10 = D_iw_op == 10; + assign D_op_rsv17 = D_iw_op == 17; + assign D_op_rsv18 = D_iw_op == 18; + assign D_op_rsv25 = D_iw_op == 25; + assign D_op_rsv26 = D_iw_op == 26; + assign D_op_rsv33 = D_iw_op == 33; + assign D_op_rsv34 = D_iw_op == 34; + assign D_op_rsv41 = D_iw_op == 41; + assign D_op_rsv42 = D_iw_op == 42; + assign D_op_rsv49 = D_iw_op == 49; + assign D_op_rsv57 = D_iw_op == 57; + assign D_op_rsv61 = D_iw_op == 61; + assign D_op_rsv62 = D_iw_op == 62; + assign D_op_rsv63 = D_iw_op == 63; + assign D_op_eret = D_op_opx & (D_iw_opx == 1); + assign D_op_roli = D_op_opx & (D_iw_opx == 2); + assign D_op_rol = D_op_opx & (D_iw_opx == 3); + assign D_op_flushp = D_op_opx & (D_iw_opx == 4); + assign D_op_ret = D_op_opx & (D_iw_opx == 5); + assign D_op_nor = D_op_opx & (D_iw_opx == 6); + assign D_op_mulxuu = D_op_opx & (D_iw_opx == 7); + assign D_op_cmpge = D_op_opx & (D_iw_opx == 8); + assign D_op_bret = D_op_opx & (D_iw_opx == 9); + assign D_op_ror = D_op_opx & (D_iw_opx == 11); + assign D_op_flushi = D_op_opx & (D_iw_opx == 12); + assign D_op_jmp = D_op_opx & (D_iw_opx == 13); + assign D_op_and = D_op_opx & (D_iw_opx == 14); + assign D_op_cmplt = D_op_opx & (D_iw_opx == 16); + assign D_op_slli = D_op_opx & (D_iw_opx == 18); + assign D_op_sll = D_op_opx & (D_iw_opx == 19); + assign D_op_wrprs = D_op_opx & (D_iw_opx == 20); + assign D_op_or = D_op_opx & (D_iw_opx == 22); + assign D_op_mulxsu = D_op_opx & (D_iw_opx == 23); + assign D_op_cmpne = D_op_opx & (D_iw_opx == 24); + assign D_op_srli = D_op_opx & (D_iw_opx == 26); + assign D_op_srl = D_op_opx & (D_iw_opx == 27); + assign D_op_nextpc = D_op_opx & (D_iw_opx == 28); + assign D_op_callr = D_op_opx & (D_iw_opx == 29); + assign D_op_xor = D_op_opx & (D_iw_opx == 30); + assign D_op_mulxss = D_op_opx & (D_iw_opx == 31); + assign D_op_cmpeq = D_op_opx & (D_iw_opx == 32); + assign D_op_divu = D_op_opx & (D_iw_opx == 36); + assign D_op_div = D_op_opx & (D_iw_opx == 37); + assign D_op_rdctl = D_op_opx & (D_iw_opx == 38); + assign D_op_mul = D_op_opx & (D_iw_opx == 39); + assign D_op_cmpgeu = D_op_opx & (D_iw_opx == 40); + assign D_op_initi = D_op_opx & (D_iw_opx == 41); + assign D_op_trap = D_op_opx & (D_iw_opx == 45); + assign D_op_wrctl = D_op_opx & (D_iw_opx == 46); + assign D_op_cmpltu = D_op_opx & (D_iw_opx == 48); + assign D_op_add = D_op_opx & (D_iw_opx == 49); + assign D_op_break = D_op_opx & (D_iw_opx == 52); + assign D_op_hbreak = D_op_opx & (D_iw_opx == 53); + assign D_op_sync = D_op_opx & (D_iw_opx == 54); + assign D_op_sub = D_op_opx & (D_iw_opx == 57); + assign D_op_srai = D_op_opx & (D_iw_opx == 58); + assign D_op_sra = D_op_opx & (D_iw_opx == 59); + assign D_op_intr = D_op_opx & (D_iw_opx == 61); + assign D_op_crst = D_op_opx & (D_iw_opx == 62); + assign D_op_rsvx00 = D_op_opx & (D_iw_opx == 0); + assign D_op_rsvx10 = D_op_opx & (D_iw_opx == 10); + assign D_op_rsvx15 = D_op_opx & (D_iw_opx == 15); + assign D_op_rsvx17 = D_op_opx & (D_iw_opx == 17); + assign D_op_rsvx21 = D_op_opx & (D_iw_opx == 21); + assign D_op_rsvx25 = D_op_opx & (D_iw_opx == 25); + assign D_op_rsvx33 = D_op_opx & (D_iw_opx == 33); + assign D_op_rsvx34 = D_op_opx & (D_iw_opx == 34); + assign D_op_rsvx35 = D_op_opx & (D_iw_opx == 35); + assign D_op_rsvx42 = D_op_opx & (D_iw_opx == 42); + assign D_op_rsvx43 = D_op_opx & (D_iw_opx == 43); + assign D_op_rsvx44 = D_op_opx & (D_iw_opx == 44); + assign D_op_rsvx47 = D_op_opx & (D_iw_opx == 47); + assign D_op_rsvx50 = D_op_opx & (D_iw_opx == 50); + assign D_op_rsvx51 = D_op_opx & (D_iw_opx == 51); + assign D_op_rsvx55 = D_op_opx & (D_iw_opx == 55); + assign D_op_rsvx56 = D_op_opx & (D_iw_opx == 56); + assign D_op_rsvx60 = D_op_opx & (D_iw_opx == 60); + assign D_op_rsvx63 = D_op_opx & (D_iw_opx == 63); + assign D_op_opx = D_iw_op == 58; + assign D_op_custom = D_iw_op == 50; + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + d_write <= 0; + else + d_write <= d_write_nxt; + end + + + assign test_has_ended = 1'b0; + +//synthesis translate_off +//////////////// SIMULATION-ONLY CONTENTS + //Clearing 'X' data bits + assign av_ld_data_aligned_unfiltered_0_is_x = ^(av_ld_data_aligned_unfiltered[0]) === 1'bx; + + assign av_ld_data_aligned_filtered[0] = (av_ld_data_aligned_unfiltered_0_is_x & (R_ctrl_ld_non_io)) ? 1'b0 : av_ld_data_aligned_unfiltered[0]; + assign av_ld_data_aligned_unfiltered_1_is_x = ^(av_ld_data_aligned_unfiltered[1]) === 1'bx; + assign av_ld_data_aligned_filtered[1] = (av_ld_data_aligned_unfiltered_1_is_x & (R_ctrl_ld_non_io)) ? 1'b0 : av_ld_data_aligned_unfiltered[1]; + assign av_ld_data_aligned_unfiltered_2_is_x = ^(av_ld_data_aligned_unfiltered[2]) === 1'bx; + assign av_ld_data_aligned_filtered[2] = (av_ld_data_aligned_unfiltered_2_is_x & (R_ctrl_ld_non_io)) ? 1'b0 : av_ld_data_aligned_unfiltered[2]; + assign av_ld_data_aligned_unfiltered_3_is_x = ^(av_ld_data_aligned_unfiltered[3]) === 1'bx; + assign av_ld_data_aligned_filtered[3] = (av_ld_data_aligned_unfiltered_3_is_x & (R_ctrl_ld_non_io)) ? 1'b0 : av_ld_data_aligned_unfiltered[3]; + assign av_ld_data_aligned_unfiltered_4_is_x = ^(av_ld_data_aligned_unfiltered[4]) === 1'bx; + assign av_ld_data_aligned_filtered[4] = (av_ld_data_aligned_unfiltered_4_is_x & (R_ctrl_ld_non_io)) ? 1'b0 : av_ld_data_aligned_unfiltered[4]; + assign av_ld_data_aligned_unfiltered_5_is_x = ^(av_ld_data_aligned_unfiltered[5]) === 1'bx; + assign av_ld_data_aligned_filtered[5] = (av_ld_data_aligned_unfiltered_5_is_x & (R_ctrl_ld_non_io)) ? 1'b0 : av_ld_data_aligned_unfiltered[5]; + assign av_ld_data_aligned_unfiltered_6_is_x = ^(av_ld_data_aligned_unfiltered[6]) === 1'bx; + assign av_ld_data_aligned_filtered[6] = (av_ld_data_aligned_unfiltered_6_is_x & (R_ctrl_ld_non_io)) ? 1'b0 : av_ld_data_aligned_unfiltered[6]; + assign av_ld_data_aligned_unfiltered_7_is_x = ^(av_ld_data_aligned_unfiltered[7]) === 1'bx; + assign av_ld_data_aligned_filtered[7] = (av_ld_data_aligned_unfiltered_7_is_x & (R_ctrl_ld_non_io)) ? 1'b0 : av_ld_data_aligned_unfiltered[7]; + assign av_ld_data_aligned_unfiltered_8_is_x = ^(av_ld_data_aligned_unfiltered[8]) === 1'bx; + assign av_ld_data_aligned_filtered[8] = (av_ld_data_aligned_unfiltered_8_is_x & (R_ctrl_ld_non_io)) ? 1'b0 : av_ld_data_aligned_unfiltered[8]; + assign av_ld_data_aligned_unfiltered_9_is_x = ^(av_ld_data_aligned_unfiltered[9]) === 1'bx; + assign av_ld_data_aligned_filtered[9] = (av_ld_data_aligned_unfiltered_9_is_x & (R_ctrl_ld_non_io)) ? 1'b0 : av_ld_data_aligned_unfiltered[9]; + assign av_ld_data_aligned_unfiltered_10_is_x = ^(av_ld_data_aligned_unfiltered[10]) === 1'bx; + assign av_ld_data_aligned_filtered[10] = (av_ld_data_aligned_unfiltered_10_is_x & (R_ctrl_ld_non_io)) ? 1'b0 : av_ld_data_aligned_unfiltered[10]; + assign av_ld_data_aligned_unfiltered_11_is_x = ^(av_ld_data_aligned_unfiltered[11]) === 1'bx; + assign av_ld_data_aligned_filtered[11] = (av_ld_data_aligned_unfiltered_11_is_x & (R_ctrl_ld_non_io)) ? 1'b0 : av_ld_data_aligned_unfiltered[11]; + assign av_ld_data_aligned_unfiltered_12_is_x = ^(av_ld_data_aligned_unfiltered[12]) === 1'bx; + assign av_ld_data_aligned_filtered[12] = (av_ld_data_aligned_unfiltered_12_is_x & (R_ctrl_ld_non_io)) ? 1'b0 : av_ld_data_aligned_unfiltered[12]; + assign av_ld_data_aligned_unfiltered_13_is_x = ^(av_ld_data_aligned_unfiltered[13]) === 1'bx; + assign av_ld_data_aligned_filtered[13] = (av_ld_data_aligned_unfiltered_13_is_x & (R_ctrl_ld_non_io)) ? 1'b0 : av_ld_data_aligned_unfiltered[13]; + assign av_ld_data_aligned_unfiltered_14_is_x = ^(av_ld_data_aligned_unfiltered[14]) === 1'bx; + assign av_ld_data_aligned_filtered[14] = (av_ld_data_aligned_unfiltered_14_is_x & (R_ctrl_ld_non_io)) ? 1'b0 : av_ld_data_aligned_unfiltered[14]; + assign av_ld_data_aligned_unfiltered_15_is_x = ^(av_ld_data_aligned_unfiltered[15]) === 1'bx; + assign av_ld_data_aligned_filtered[15] = (av_ld_data_aligned_unfiltered_15_is_x & (R_ctrl_ld_non_io)) ? 1'b0 : av_ld_data_aligned_unfiltered[15]; + assign av_ld_data_aligned_unfiltered_16_is_x = ^(av_ld_data_aligned_unfiltered[16]) === 1'bx; + assign av_ld_data_aligned_filtered[16] = (av_ld_data_aligned_unfiltered_16_is_x & (R_ctrl_ld_non_io)) ? 1'b0 : av_ld_data_aligned_unfiltered[16]; + assign av_ld_data_aligned_unfiltered_17_is_x = ^(av_ld_data_aligned_unfiltered[17]) === 1'bx; + assign av_ld_data_aligned_filtered[17] = (av_ld_data_aligned_unfiltered_17_is_x & (R_ctrl_ld_non_io)) ? 1'b0 : av_ld_data_aligned_unfiltered[17]; + assign av_ld_data_aligned_unfiltered_18_is_x = ^(av_ld_data_aligned_unfiltered[18]) === 1'bx; + assign av_ld_data_aligned_filtered[18] = (av_ld_data_aligned_unfiltered_18_is_x & (R_ctrl_ld_non_io)) ? 1'b0 : av_ld_data_aligned_unfiltered[18]; + assign av_ld_data_aligned_unfiltered_19_is_x = ^(av_ld_data_aligned_unfiltered[19]) === 1'bx; + assign av_ld_data_aligned_filtered[19] = (av_ld_data_aligned_unfiltered_19_is_x & (R_ctrl_ld_non_io)) ? 1'b0 : av_ld_data_aligned_unfiltered[19]; + assign av_ld_data_aligned_unfiltered_20_is_x = ^(av_ld_data_aligned_unfiltered[20]) === 1'bx; + assign av_ld_data_aligned_filtered[20] = (av_ld_data_aligned_unfiltered_20_is_x & (R_ctrl_ld_non_io)) ? 1'b0 : av_ld_data_aligned_unfiltered[20]; + assign av_ld_data_aligned_unfiltered_21_is_x = ^(av_ld_data_aligned_unfiltered[21]) === 1'bx; + assign av_ld_data_aligned_filtered[21] = (av_ld_data_aligned_unfiltered_21_is_x & (R_ctrl_ld_non_io)) ? 1'b0 : av_ld_data_aligned_unfiltered[21]; + assign av_ld_data_aligned_unfiltered_22_is_x = ^(av_ld_data_aligned_unfiltered[22]) === 1'bx; + assign av_ld_data_aligned_filtered[22] = (av_ld_data_aligned_unfiltered_22_is_x & (R_ctrl_ld_non_io)) ? 1'b0 : av_ld_data_aligned_unfiltered[22]; + assign av_ld_data_aligned_unfiltered_23_is_x = ^(av_ld_data_aligned_unfiltered[23]) === 1'bx; + assign av_ld_data_aligned_filtered[23] = (av_ld_data_aligned_unfiltered_23_is_x & (R_ctrl_ld_non_io)) ? 1'b0 : av_ld_data_aligned_unfiltered[23]; + assign av_ld_data_aligned_unfiltered_24_is_x = ^(av_ld_data_aligned_unfiltered[24]) === 1'bx; + assign av_ld_data_aligned_filtered[24] = (av_ld_data_aligned_unfiltered_24_is_x & (R_ctrl_ld_non_io)) ? 1'b0 : av_ld_data_aligned_unfiltered[24]; + assign av_ld_data_aligned_unfiltered_25_is_x = ^(av_ld_data_aligned_unfiltered[25]) === 1'bx; + assign av_ld_data_aligned_filtered[25] = (av_ld_data_aligned_unfiltered_25_is_x & (R_ctrl_ld_non_io)) ? 1'b0 : av_ld_data_aligned_unfiltered[25]; + assign av_ld_data_aligned_unfiltered_26_is_x = ^(av_ld_data_aligned_unfiltered[26]) === 1'bx; + assign av_ld_data_aligned_filtered[26] = (av_ld_data_aligned_unfiltered_26_is_x & (R_ctrl_ld_non_io)) ? 1'b0 : av_ld_data_aligned_unfiltered[26]; + assign av_ld_data_aligned_unfiltered_27_is_x = ^(av_ld_data_aligned_unfiltered[27]) === 1'bx; + assign av_ld_data_aligned_filtered[27] = (av_ld_data_aligned_unfiltered_27_is_x & (R_ctrl_ld_non_io)) ? 1'b0 : av_ld_data_aligned_unfiltered[27]; + assign av_ld_data_aligned_unfiltered_28_is_x = ^(av_ld_data_aligned_unfiltered[28]) === 1'bx; + assign av_ld_data_aligned_filtered[28] = (av_ld_data_aligned_unfiltered_28_is_x & (R_ctrl_ld_non_io)) ? 1'b0 : av_ld_data_aligned_unfiltered[28]; + assign av_ld_data_aligned_unfiltered_29_is_x = ^(av_ld_data_aligned_unfiltered[29]) === 1'bx; + assign av_ld_data_aligned_filtered[29] = (av_ld_data_aligned_unfiltered_29_is_x & (R_ctrl_ld_non_io)) ? 1'b0 : av_ld_data_aligned_unfiltered[29]; + assign av_ld_data_aligned_unfiltered_30_is_x = ^(av_ld_data_aligned_unfiltered[30]) === 1'bx; + assign av_ld_data_aligned_filtered[30] = (av_ld_data_aligned_unfiltered_30_is_x & (R_ctrl_ld_non_io)) ? 1'b0 : av_ld_data_aligned_unfiltered[30]; + assign av_ld_data_aligned_unfiltered_31_is_x = ^(av_ld_data_aligned_unfiltered[31]) === 1'bx; + assign av_ld_data_aligned_filtered[31] = (av_ld_data_aligned_unfiltered_31_is_x & (R_ctrl_ld_non_io)) ? 1'b0 : av_ld_data_aligned_unfiltered[31]; + always @(posedge clk) + begin + if (reset_n) + if (^(F_valid) === 1'bx) + begin + $write("%0d ns: ERROR: nios_system_nios2_processor_test_bench/F_valid is 'x'\n", $time); + $stop; + end + end + + + always @(posedge clk) + begin + if (reset_n) + if (^(D_valid) === 1'bx) + begin + $write("%0d ns: ERROR: nios_system_nios2_processor_test_bench/D_valid is 'x'\n", $time); + $stop; + end + end + + + always @(posedge clk) + begin + if (reset_n) + if (^(E_valid) === 1'bx) + begin + $write("%0d ns: ERROR: nios_system_nios2_processor_test_bench/E_valid is 'x'\n", $time); + $stop; + end + end + + + always @(posedge clk) + begin + if (reset_n) + if (^(W_valid) === 1'bx) + begin + $write("%0d ns: ERROR: nios_system_nios2_processor_test_bench/W_valid is 'x'\n", $time); + $stop; + end + end + + + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + begin + end + else if (W_valid) + if (^(R_wr_dst_reg) === 1'bx) + begin + $write("%0d ns: ERROR: nios_system_nios2_processor_test_bench/R_wr_dst_reg is 'x'\n", $time); + $stop; + end + end + + + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + begin + end + else if (W_valid & R_wr_dst_reg) + if (^(W_wr_data) === 1'bx) + begin + $write("%0d ns: ERROR: nios_system_nios2_processor_test_bench/W_wr_data is 'x'\n", $time); + $stop; + end + end + + + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + begin + end + else if (W_valid & R_wr_dst_reg) + if (^(R_dst_regnum) === 1'bx) + begin + $write("%0d ns: ERROR: nios_system_nios2_processor_test_bench/R_dst_regnum is 'x'\n", $time); + $stop; + end + end + + + always @(posedge clk) + begin + if (reset_n) + if (^(d_write) === 1'bx) + begin + $write("%0d ns: ERROR: nios_system_nios2_processor_test_bench/d_write is 'x'\n", $time); + $stop; + end + end + + + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + begin + end + else if (d_write) + if (^(d_byteenable) === 1'bx) + begin + $write("%0d ns: ERROR: nios_system_nios2_processor_test_bench/d_byteenable is 'x'\n", $time); + $stop; + end + end + + + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + begin + end + else if (d_write | d_read) + if (^(d_address) === 1'bx) + begin + $write("%0d ns: ERROR: nios_system_nios2_processor_test_bench/d_address is 'x'\n", $time); + $stop; + end + end + + + always @(posedge clk) + begin + if (reset_n) + if (^(d_read) === 1'bx) + begin + $write("%0d ns: ERROR: nios_system_nios2_processor_test_bench/d_read is 'x'\n", $time); + $stop; + end + end + + + always @(posedge clk) + begin + if (reset_n) + if (^(i_read) === 1'bx) + begin + $write("%0d ns: ERROR: nios_system_nios2_processor_test_bench/i_read is 'x'\n", $time); + $stop; + end + end + + + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + begin + end + else if (i_read) + if (^(i_address) === 1'bx) + begin + $write("%0d ns: ERROR: nios_system_nios2_processor_test_bench/i_address is 'x'\n", $time); + $stop; + end + end + + + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + begin + end + else if (i_read & ~i_waitrequest) + if (^(i_readdata) === 1'bx) + begin + $write("%0d ns: ERROR: nios_system_nios2_processor_test_bench/i_readdata is 'x'\n", $time); + $stop; + end + end + + + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + begin + end + else if (W_valid & R_ctrl_ld) + if (^(av_ld_data_aligned_unfiltered) === 1'bx) + begin + $write("%0d ns: WARNING: nios_system_nios2_processor_test_bench/av_ld_data_aligned_unfiltered is 'x'\n", $time); + end + end + + + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + begin + end + else if (W_valid & R_wr_dst_reg) + if (^(W_wr_data) === 1'bx) + begin + $write("%0d ns: WARNING: nios_system_nios2_processor_test_bench/W_wr_data is 'x'\n", $time); + end + end + + + +//////////////// END SIMULATION-ONLY CONTENTS + +//synthesis translate_on +//synthesis read_comments_as_HDL on +// +// assign av_ld_data_aligned_filtered = av_ld_data_aligned_unfiltered; +// +//synthesis read_comments_as_HDL off + +endmodule + diff --git a/nios_system/synthesis/submodules/nios_system_onchip_memory.hex b/nios_system/synthesis/submodules/nios_system_onchip_memory.hex new file mode 100644 index 0000000..f996dcd --- /dev/null +++ b/nios_system/synthesis/submodules/nios_system_onchip_memory.hex @@ -0,0 +1,51201 @@ +:0400000000000000FC +:0400010000000000FB +:0400020000000000FA +:0400030000000000F9 +:0400040000000000F8 +:0400050000000000F7 +:0400060000000000F6 +:0400070000000000F5 +:0400080000000000F4 +:0400090000000000F3 +:04000A0000000000F2 +:04000B0000000000F1 +:04000C0000000000F0 +:04000D0000000000EF +:04000E0000000000EE +:04000F0000000000ED +:0400100000000000EC +:0400110000000000EB +:0400120000000000EA +:0400130000000000E9 +:0400140000000000E8 +:0400150000000000E7 +:0400160000000000E6 +:0400170000000000E5 +:0400180000000000E4 +:0400190000000000E3 +:04001A0000000000E2 +:04001B0000000000E1 +:04001C0000000000E0 +:04001D0000000000DF +:04001E0000000000DE +:04001F0000000000DD +:0400200000000000DC +:0400210000000000DB +:0400220000000000DA +:0400230000000000D9 +:0400240000000000D8 +:0400250000000000D7 +:0400260000000000D6 +:0400270000000000D5 +:0400280000000000D4 +:0400290000000000D3 +:04002A0000000000D2 +:04002B0000000000D1 +:04002C0000000000D0 +:04002D0000000000CF +:04002E0000000000CE +:04002F0000000000CD +:0400300000000000CC +:0400310000000000CB +:0400320000000000CA +:0400330000000000C9 +:0400340000000000C8 +:0400350000000000C7 +:0400360000000000C6 +:0400370000000000C5 +:0400380000000000C4 +:0400390000000000C3 +:04003A0000000000C2 +:04003B0000000000C1 +:04003C0000000000C0 +:04003D0000000000BF +:04003E0000000000BE +:04003F0000000000BD +:0400400000000000BC +:0400410000000000BB +:0400420000000000BA +:0400430000000000B9 +:0400440000000000B8 +:0400450000000000B7 +:0400460000000000B6 +:0400470000000000B5 +:0400480000000000B4 +:0400490000000000B3 +:04004A0000000000B2 +:04004B0000000000B1 +:04004C0000000000B0 +:04004D0000000000AF +:04004E0000000000AE +:04004F0000000000AD +:0400500000000000AC +:0400510000000000AB +:0400520000000000AA +:0400530000000000A9 +:0400540000000000A8 +:0400550000000000A7 +:0400560000000000A6 +:0400570000000000A5 +:0400580000000000A4 +:0400590000000000A3 +:04005A0000000000A2 +:04005B0000000000A1 +:04005C0000000000A0 +:04005D00000000009F +:04005E00000000009E +:04005F00000000009D +:04006000000000009C +:04006100000000009B +:04006200000000009A +:040063000000000099 +:040064000000000098 +:040065000000000097 +:040066000000000096 +:040067000000000095 +:040068000000000094 +:040069000000000093 +:04006A000000000092 +:04006B000000000091 +:04006C000000000090 +:04006D00000000008F +:04006E00000000008E +:04006F00000000008D +:04007000000000008C +:04007100000000008B +:04007200000000008A +:040073000000000089 +:040074000000000088 +:040075000000000087 +:040076000000000086 +:040077000000000085 +:040078000000000084 +:040079000000000083 +:04007A000000000082 +:04007B000000000081 +:04007C000000000080 +:04007D00000000007F +:04007E00000000007E +:04007F00000000007D +:04008000000000007C +:04008100000000007B +:04008200000000007A +:040083000000000079 +:040084000000000078 +:040085000000000077 +:040086000000000076 +:040087000000000075 +:040088000000000074 +:040089000000000073 +:04008A000000000072 +:04008B000000000071 +:04008C000000000070 +:04008D00000000006F +:04008E00000000006E +:04008F00000000006D +:04009000000000006C +:04009100000000006B +:04009200000000006A +:040093000000000069 +:040094000000000068 +:040095000000000067 +:040096000000000066 +:040097000000000065 +:040098000000000064 +:040099000000000063 +:04009A000000000062 +:04009B000000000061 +:04009C000000000060 +:04009D00000000005F +:04009E00000000005E +:04009F00000000005D +:0400A000000000005C +:0400A100000000005B +:0400A200000000005A +:0400A3000000000059 +:0400A4000000000058 +:0400A5000000000057 +:0400A6000000000056 +:0400A7000000000055 +:0400A8000000000054 +:0400A9000000000053 +:0400AA000000000052 +:0400AB000000000051 +:0400AC000000000050 +:0400AD00000000004F +:0400AE00000000004E +:0400AF00000000004D +:0400B000000000004C +:0400B100000000004B +:0400B200000000004A +:0400B3000000000049 +:0400B4000000000048 +:0400B5000000000047 +:0400B6000000000046 +:0400B7000000000045 +:0400B8000000000044 +:0400B9000000000043 +:0400BA000000000042 +:0400BB000000000041 +:0400BC000000000040 +:0400BD00000000003F +:0400BE00000000003E +:0400BF00000000003D +:0400C000000000003C +:0400C100000000003B +:0400C200000000003A +:0400C3000000000039 +:0400C4000000000038 +:0400C5000000000037 +:0400C6000000000036 +:0400C7000000000035 +:0400C8000000000034 +:0400C9000000000033 +:0400CA000000000032 +:0400CB000000000031 +:0400CC000000000030 +:0400CD00000000002F +:0400CE00000000002E +:0400CF00000000002D +:0400D000000000002C +:0400D100000000002B +:0400D200000000002A +:0400D3000000000029 +:0400D4000000000028 +:0400D5000000000027 +:0400D6000000000026 +:0400D7000000000025 +:0400D8000000000024 +:0400D9000000000023 +:0400DA000000000022 +:0400DB000000000021 +:0400DC000000000020 +:0400DD00000000001F +:0400DE00000000001E +:0400DF00000000001D +:0400E000000000001C +:0400E100000000001B +:0400E200000000001A +:0400E3000000000019 +:0400E4000000000018 +:0400E5000000000017 +:0400E6000000000016 +:0400E7000000000015 +:0400E8000000000014 +:0400E9000000000013 +:0400EA000000000012 +:0400EB000000000011 +:0400EC000000000010 +:0400ED00000000000F +:0400EE00000000000E +:0400EF00000000000D +:0400F000000000000C +:0400F100000000000B +:0400F200000000000A +:0400F3000000000009 +:0400F4000000000008 +:0400F5000000000007 +:0400F6000000000006 +:0400F7000000000005 +:0400F8000000000004 +:0400F9000000000003 +:0400FA000000000002 +:0400FB000000000001 +:0400FC000000000000 +:0400FD0000000000FF +:0400FE0000000000FE +:0400FF0000000000FD +:0401000000000000FB +:0401010000000000FA +:0401020000000000F9 +:0401030000000000F8 +:0401040000000000F7 +:0401050000000000F6 +:0401060000000000F5 +:0401070000000000F4 +:0401080000000000F3 +:0401090000000000F2 +:04010A0000000000F1 +:04010B0000000000F0 +:04010C0000000000EF +:04010D0000000000EE +:04010E0000000000ED +:04010F0000000000EC +:0401100000000000EB +:0401110000000000EA +:0401120000000000E9 +:0401130000000000E8 +:0401140000000000E7 +:0401150000000000E6 +:0401160000000000E5 +:0401170000000000E4 +:0401180000000000E3 +:0401190000000000E2 +:04011A0000000000E1 +:04011B0000000000E0 +:04011C0000000000DF +:04011D0000000000DE +:04011E0000000000DD +:04011F0000000000DC +:0401200000000000DB +:0401210000000000DA +:0401220000000000D9 +:0401230000000000D8 +:0401240000000000D7 +:0401250000000000D6 +:0401260000000000D5 +:0401270000000000D4 +:0401280000000000D3 +:0401290000000000D2 +:04012A0000000000D1 +:04012B0000000000D0 +:04012C0000000000CF +:04012D0000000000CE +:04012E0000000000CD +:04012F0000000000CC +:0401300000000000CB +:0401310000000000CA +:0401320000000000C9 +:0401330000000000C8 +:0401340000000000C7 +:0401350000000000C6 +:0401360000000000C5 +:0401370000000000C4 +:0401380000000000C3 +:0401390000000000C2 +:04013A0000000000C1 +:04013B0000000000C0 +:04013C0000000000BF +:04013D0000000000BE +:04013E0000000000BD +:04013F0000000000BC +:0401400000000000BB +:0401410000000000BA +:0401420000000000B9 +:0401430000000000B8 +:0401440000000000B7 +:0401450000000000B6 +:0401460000000000B5 +:0401470000000000B4 +:0401480000000000B3 +:0401490000000000B2 +:04014A0000000000B1 +:04014B0000000000B0 +:04014C0000000000AF +:04014D0000000000AE +:04014E0000000000AD +:04014F0000000000AC +:0401500000000000AB +:0401510000000000AA +:0401520000000000A9 +:0401530000000000A8 +:0401540000000000A7 +:0401550000000000A6 +:0401560000000000A5 +:0401570000000000A4 +:0401580000000000A3 +:0401590000000000A2 +:04015A0000000000A1 +:04015B0000000000A0 +:04015C00000000009F +:04015D00000000009E +:04015E00000000009D +:04015F00000000009C +:04016000000000009B +:04016100000000009A +:040162000000000099 +:040163000000000098 +:040164000000000097 +:040165000000000096 +:040166000000000095 +:040167000000000094 +:040168000000000093 +:040169000000000092 +:04016A000000000091 +:04016B000000000090 +:04016C00000000008F +:04016D00000000008E +:04016E00000000008D +:04016F00000000008C +:04017000000000008B +:04017100000000008A +:040172000000000089 +:040173000000000088 +:040174000000000087 +:040175000000000086 +:040176000000000085 +:040177000000000084 +:040178000000000083 +:040179000000000082 +:04017A000000000081 +:04017B000000000080 +:04017C00000000007F +:04017D00000000007E +:04017E00000000007D +:04017F00000000007C +:04018000000000007B +:04018100000000007A +:040182000000000079 +:040183000000000078 +:040184000000000077 +:040185000000000076 +:040186000000000075 +:040187000000000074 +:040188000000000073 +:040189000000000072 +:04018A000000000071 +:04018B000000000070 +:04018C00000000006F +:04018D00000000006E +:04018E00000000006D +:04018F00000000006C +:04019000000000006B +:04019100000000006A +:040192000000000069 +:040193000000000068 +:040194000000000067 +:040195000000000066 +:040196000000000065 +:040197000000000064 +:040198000000000063 +:040199000000000062 +:04019A000000000061 +:04019B000000000060 +:04019C00000000005F +:04019D00000000005E +:04019E00000000005D +:04019F00000000005C +:0401A000000000005B +:0401A100000000005A +:0401A2000000000059 +:0401A3000000000058 +:0401A4000000000057 +:0401A5000000000056 +:0401A6000000000055 +:0401A7000000000054 +:0401A8000000000053 +:0401A9000000000052 +:0401AA000000000051 +:0401AB000000000050 +:0401AC00000000004F +:0401AD00000000004E +:0401AE00000000004D +:0401AF00000000004C +:0401B000000000004B +:0401B100000000004A +:0401B2000000000049 +:0401B3000000000048 +:0401B4000000000047 +:0401B5000000000046 +:0401B6000000000045 +:0401B7000000000044 +:0401B8000000000043 +:0401B9000000000042 +:0401BA000000000041 +:0401BB000000000040 +:0401BC00000000003F +:0401BD00000000003E +:0401BE00000000003D +:0401BF00000000003C +:0401C000000000003B +:0401C100000000003A +:0401C2000000000039 +:0401C3000000000038 +:0401C4000000000037 +:0401C5000000000036 +:0401C6000000000035 +:0401C7000000000034 +:0401C8000000000033 +:0401C9000000000032 +:0401CA000000000031 +:0401CB000000000030 +:0401CC00000000002F +:0401CD00000000002E +:0401CE00000000002D +:0401CF00000000002C +:0401D000000000002B +:0401D100000000002A +:0401D2000000000029 +:0401D3000000000028 +:0401D4000000000027 +:0401D5000000000026 +:0401D6000000000025 +:0401D7000000000024 +:0401D8000000000023 +:0401D9000000000022 +:0401DA000000000021 +:0401DB000000000020 +:0401DC00000000001F +:0401DD00000000001E +:0401DE00000000001D +:0401DF00000000001C +:0401E000000000001B +:0401E100000000001A +:0401E2000000000019 +:0401E3000000000018 +:0401E4000000000017 +:0401E5000000000016 +:0401E6000000000015 +:0401E7000000000014 +:0401E8000000000013 +:0401E9000000000012 +:0401EA000000000011 +:0401EB000000000010 +:0401EC00000000000F +:0401ED00000000000E +:0401EE00000000000D +:0401EF00000000000C +:0401F000000000000B +:0401F100000000000A +:0401F2000000000009 +:0401F3000000000008 +:0401F4000000000007 +:0401F5000000000006 +:0401F6000000000005 +:0401F7000000000004 +:0401F8000000000003 +:0401F9000000000002 +:0401FA000000000001 +:0401FB000000000000 +:0401FC0000000000FF +:0401FD0000000000FE +:0401FE0000000000FD +:0401FF0000000000FC +:0402000000000000FA +:0402010000000000F9 +:0402020000000000F8 +:0402030000000000F7 +:0402040000000000F6 +:0402050000000000F5 +:0402060000000000F4 +:0402070000000000F3 +:0402080000000000F2 +:0402090000000000F1 +:04020A0000000000F0 +:04020B0000000000EF +:04020C0000000000EE +:04020D0000000000ED +:04020E0000000000EC +:04020F0000000000EB +:0402100000000000EA +:0402110000000000E9 +:0402120000000000E8 +:0402130000000000E7 +:0402140000000000E6 +:0402150000000000E5 +:0402160000000000E4 +:0402170000000000E3 +:0402180000000000E2 +:0402190000000000E1 +:04021A0000000000E0 +:04021B0000000000DF +:04021C0000000000DE +:04021D0000000000DD +:04021E0000000000DC +:04021F0000000000DB +:0402200000000000DA +:0402210000000000D9 +:0402220000000000D8 +:0402230000000000D7 +:0402240000000000D6 +:0402250000000000D5 +:0402260000000000D4 +:0402270000000000D3 +:0402280000000000D2 +:0402290000000000D1 +:04022A0000000000D0 +:04022B0000000000CF +:04022C0000000000CE +:04022D0000000000CD +:04022E0000000000CC +:04022F0000000000CB +:0402300000000000CA +:0402310000000000C9 +:0402320000000000C8 +:0402330000000000C7 +:0402340000000000C6 +:0402350000000000C5 +:0402360000000000C4 +:0402370000000000C3 +:0402380000000000C2 +:0402390000000000C1 +:04023A0000000000C0 +:04023B0000000000BF +:04023C0000000000BE +:04023D0000000000BD +:04023E0000000000BC +:04023F0000000000BB +:0402400000000000BA +:0402410000000000B9 +:0402420000000000B8 +:0402430000000000B7 +:0402440000000000B6 +:0402450000000000B5 +:0402460000000000B4 +:0402470000000000B3 +:0402480000000000B2 +:0402490000000000B1 +:04024A0000000000B0 +:04024B0000000000AF +:04024C0000000000AE +:04024D0000000000AD +:04024E0000000000AC +:04024F0000000000AB +:0402500000000000AA +:0402510000000000A9 +:0402520000000000A8 +:0402530000000000A7 +:0402540000000000A6 +:0402550000000000A5 +:0402560000000000A4 +:0402570000000000A3 +:0402580000000000A2 +:0402590000000000A1 +:04025A0000000000A0 +:04025B00000000009F +:04025C00000000009E +:04025D00000000009D +:04025E00000000009C +:04025F00000000009B +:04026000000000009A +:040261000000000099 +:040262000000000098 +:040263000000000097 +:040264000000000096 +:040265000000000095 +:040266000000000094 +:040267000000000093 +:040268000000000092 +:040269000000000091 +:04026A000000000090 +:04026B00000000008F +:04026C00000000008E +:04026D00000000008D +:04026E00000000008C +:04026F00000000008B +:04027000000000008A +:040271000000000089 +:040272000000000088 +:040273000000000087 +:040274000000000086 +:040275000000000085 +:040276000000000084 +:040277000000000083 +:040278000000000082 +:040279000000000081 +:04027A000000000080 +:04027B00000000007F +:04027C00000000007E +:04027D00000000007D +:04027E00000000007C +:04027F00000000007B +:04028000000000007A +:040281000000000079 +:040282000000000078 +:040283000000000077 +:040284000000000076 +:040285000000000075 +:040286000000000074 +:040287000000000073 +:040288000000000072 +:040289000000000071 +:04028A000000000070 +:04028B00000000006F +:04028C00000000006E +:04028D00000000006D +:04028E00000000006C +:04028F00000000006B +:04029000000000006A +:040291000000000069 +:040292000000000068 +:040293000000000067 +:040294000000000066 +:040295000000000065 +:040296000000000064 +:040297000000000063 +:040298000000000062 +:040299000000000061 +:04029A000000000060 +:04029B00000000005F +:04029C00000000005E +:04029D00000000005D +:04029E00000000005C +:04029F00000000005B +:0402A000000000005A +:0402A1000000000059 +:0402A2000000000058 +:0402A3000000000057 +:0402A4000000000056 +:0402A5000000000055 +:0402A6000000000054 +:0402A7000000000053 +:0402A8000000000052 +:0402A9000000000051 +:0402AA000000000050 +:0402AB00000000004F +:0402AC00000000004E +:0402AD00000000004D +:0402AE00000000004C +:0402AF00000000004B +:0402B000000000004A +:0402B1000000000049 +:0402B2000000000048 +:0402B3000000000047 +:0402B4000000000046 +:0402B5000000000045 +:0402B6000000000044 +:0402B7000000000043 +:0402B8000000000042 +:0402B9000000000041 +:0402BA000000000040 +:0402BB00000000003F +:0402BC00000000003E +:0402BD00000000003D +:0402BE00000000003C +:0402BF00000000003B +:0402C000000000003A +:0402C1000000000039 +:0402C2000000000038 +:0402C3000000000037 +:0402C4000000000036 +:0402C5000000000035 +:0402C6000000000034 +:0402C7000000000033 +:0402C8000000000032 +:0402C9000000000031 +:0402CA000000000030 +:0402CB00000000002F +:0402CC00000000002E +:0402CD00000000002D +:0402CE00000000002C +:0402CF00000000002B +:0402D000000000002A +:0402D1000000000029 +:0402D2000000000028 +:0402D3000000000027 +:0402D4000000000026 +:0402D5000000000025 +:0402D6000000000024 +:0402D7000000000023 +:0402D8000000000022 +:0402D9000000000021 +:0402DA000000000020 +:0402DB00000000001F +:0402DC00000000001E +:0402DD00000000001D +:0402DE00000000001C +:0402DF00000000001B +:0402E000000000001A +:0402E1000000000019 +:0402E2000000000018 +:0402E3000000000017 +:0402E4000000000016 +:0402E5000000000015 +:0402E6000000000014 +:0402E7000000000013 +:0402E8000000000012 +:0402E9000000000011 +:0402EA000000000010 +:0402EB00000000000F +:0402EC00000000000E +:0402ED00000000000D +:0402EE00000000000C +:0402EF00000000000B +:0402F000000000000A +:0402F1000000000009 +:0402F2000000000008 +:0402F3000000000007 +:0402F4000000000006 +:0402F5000000000005 +:0402F6000000000004 +:0402F7000000000003 +:0402F8000000000002 +:0402F9000000000001 +:0402FA000000000000 +:0402FB0000000000FF +:0402FC0000000000FE +:0402FD0000000000FD +:0402FE0000000000FC +:0402FF0000000000FB +:0403000000000000F9 +:0403010000000000F8 +:0403020000000000F7 +:0403030000000000F6 +:0403040000000000F5 +:0403050000000000F4 +:0403060000000000F3 +:0403070000000000F2 +:0403080000000000F1 +:0403090000000000F0 +:04030A0000000000EF +:04030B0000000000EE +:04030C0000000000ED +:04030D0000000000EC +:04030E0000000000EB +:04030F0000000000EA +:0403100000000000E9 +:0403110000000000E8 +:0403120000000000E7 +:0403130000000000E6 +:0403140000000000E5 +:0403150000000000E4 +:0403160000000000E3 +:0403170000000000E2 +:0403180000000000E1 +:0403190000000000E0 +:04031A0000000000DF +:04031B0000000000DE +:04031C0000000000DD +:04031D0000000000DC +:04031E0000000000DB +:04031F0000000000DA +:0403200000000000D9 +:0403210000000000D8 +:0403220000000000D7 +:0403230000000000D6 +:0403240000000000D5 +:0403250000000000D4 +:0403260000000000D3 +:0403270000000000D2 +:0403280000000000D1 +:0403290000000000D0 +:04032A0000000000CF +:04032B0000000000CE +:04032C0000000000CD +:04032D0000000000CC +:04032E0000000000CB +:04032F0000000000CA +:0403300000000000C9 +:0403310000000000C8 +:0403320000000000C7 +:0403330000000000C6 +:0403340000000000C5 +:0403350000000000C4 +:0403360000000000C3 +:0403370000000000C2 +:0403380000000000C1 +:0403390000000000C0 +:04033A0000000000BF +:04033B0000000000BE +:04033C0000000000BD +:04033D0000000000BC +:04033E0000000000BB +:04033F0000000000BA +:0403400000000000B9 +:0403410000000000B8 +:0403420000000000B7 +:0403430000000000B6 +:0403440000000000B5 +:0403450000000000B4 +:0403460000000000B3 +:0403470000000000B2 +:0403480000000000B1 +:0403490000000000B0 +:04034A0000000000AF +:04034B0000000000AE +:04034C0000000000AD +:04034D0000000000AC +:04034E0000000000AB +:04034F0000000000AA +:0403500000000000A9 +:0403510000000000A8 +:0403520000000000A7 +:0403530000000000A6 +:0403540000000000A5 +:0403550000000000A4 +:0403560000000000A3 +:0403570000000000A2 +:0403580000000000A1 +:0403590000000000A0 +:04035A00000000009F +:04035B00000000009E +:04035C00000000009D +:04035D00000000009C +:04035E00000000009B +:04035F00000000009A +:040360000000000099 +:040361000000000098 +:040362000000000097 +:040363000000000096 +:040364000000000095 +:040365000000000094 +:040366000000000093 +:040367000000000092 +:040368000000000091 +:040369000000000090 +:04036A00000000008F +:04036B00000000008E +:04036C00000000008D +:04036D00000000008C +:04036E00000000008B +:04036F00000000008A +:040370000000000089 +:040371000000000088 +:040372000000000087 +:040373000000000086 +:040374000000000085 +:040375000000000084 +:040376000000000083 +:040377000000000082 +:040378000000000081 +:040379000000000080 +:04037A00000000007F +:04037B00000000007E +:04037C00000000007D +:04037D00000000007C +:04037E00000000007B +:04037F00000000007A +:040380000000000079 +:040381000000000078 +:040382000000000077 +:040383000000000076 +:040384000000000075 +:040385000000000074 +:040386000000000073 +:040387000000000072 +:040388000000000071 +:040389000000000070 +:04038A00000000006F +:04038B00000000006E +:04038C00000000006D +:04038D00000000006C +:04038E00000000006B +:04038F00000000006A +:040390000000000069 +:040391000000000068 +:040392000000000067 +:040393000000000066 +:040394000000000065 +:040395000000000064 +:040396000000000063 +:040397000000000062 +:040398000000000061 +:040399000000000060 +:04039A00000000005F +:04039B00000000005E +:04039C00000000005D +:04039D00000000005C +:04039E00000000005B +:04039F00000000005A +:0403A0000000000059 +:0403A1000000000058 +:0403A2000000000057 +:0403A3000000000056 +:0403A4000000000055 +:0403A5000000000054 +:0403A6000000000053 +:0403A7000000000052 +:0403A8000000000051 +:0403A9000000000050 +:0403AA00000000004F +:0403AB00000000004E +:0403AC00000000004D +:0403AD00000000004C +:0403AE00000000004B +:0403AF00000000004A +:0403B0000000000049 +:0403B1000000000048 +:0403B2000000000047 +:0403B3000000000046 +:0403B4000000000045 +:0403B5000000000044 +:0403B6000000000043 +:0403B7000000000042 +:0403B8000000000041 +:0403B9000000000040 +:0403BA00000000003F +:0403BB00000000003E +:0403BC00000000003D +:0403BD00000000003C +:0403BE00000000003B +:0403BF00000000003A +:0403C0000000000039 +:0403C1000000000038 +:0403C2000000000037 +:0403C3000000000036 +:0403C4000000000035 +:0403C5000000000034 +:0403C6000000000033 +:0403C7000000000032 +:0403C8000000000031 +:0403C9000000000030 +:0403CA00000000002F +:0403CB00000000002E +:0403CC00000000002D +:0403CD00000000002C +:0403CE00000000002B +:0403CF00000000002A +:0403D0000000000029 +:0403D1000000000028 +:0403D2000000000027 +:0403D3000000000026 +:0403D4000000000025 +:0403D5000000000024 +:0403D6000000000023 +:0403D7000000000022 +:0403D8000000000021 +:0403D9000000000020 +:0403DA00000000001F +:0403DB00000000001E +:0403DC00000000001D +:0403DD00000000001C +:0403DE00000000001B +:0403DF00000000001A +:0403E0000000000019 +:0403E1000000000018 +:0403E2000000000017 +:0403E3000000000016 +:0403E4000000000015 +:0403E5000000000014 +:0403E6000000000013 +:0403E7000000000012 +:0403E8000000000011 +:0403E9000000000010 +:0403EA00000000000F +:0403EB00000000000E +:0403EC00000000000D +:0403ED00000000000C +:0403EE00000000000B +:0403EF00000000000A +:0403F0000000000009 +:0403F1000000000008 +:0403F2000000000007 +:0403F3000000000006 +:0403F4000000000005 +:0403F5000000000004 +:0403F6000000000003 +:0403F7000000000002 +:0403F8000000000001 +:0403F9000000000000 +:0403FA0000000000FF +:0403FB0000000000FE +:0403FC0000000000FD +:0403FD0000000000FC +:0403FE0000000000FB +:0403FF0000000000FA +:0404000000000000F8 +:0404010000000000F7 +:0404020000000000F6 +:0404030000000000F5 +:0404040000000000F4 +:0404050000000000F3 +:0404060000000000F2 +:0404070000000000F1 +:0404080000000000F0 +:0404090000000000EF +:04040A0000000000EE +:04040B0000000000ED +:04040C0000000000EC +:04040D0000000000EB +:04040E0000000000EA +:04040F0000000000E9 +:0404100000000000E8 +:0404110000000000E7 +:0404120000000000E6 +:0404130000000000E5 +:0404140000000000E4 +:0404150000000000E3 +:0404160000000000E2 +:0404170000000000E1 +:0404180000000000E0 +:0404190000000000DF +:04041A0000000000DE +:04041B0000000000DD +:04041C0000000000DC +:04041D0000000000DB +:04041E0000000000DA +:04041F0000000000D9 +:0404200000000000D8 +:0404210000000000D7 +:0404220000000000D6 +:0404230000000000D5 +:0404240000000000D4 +:0404250000000000D3 +:0404260000000000D2 +:0404270000000000D1 +:0404280000000000D0 +:0404290000000000CF +:04042A0000000000CE +:04042B0000000000CD +:04042C0000000000CC +:04042D0000000000CB +:04042E0000000000CA +:04042F0000000000C9 +:0404300000000000C8 +:0404310000000000C7 +:0404320000000000C6 +:0404330000000000C5 +:0404340000000000C4 +:0404350000000000C3 +:0404360000000000C2 +:0404370000000000C1 +:0404380000000000C0 +:0404390000000000BF +:04043A0000000000BE +:04043B0000000000BD +:04043C0000000000BC +:04043D0000000000BB +:04043E0000000000BA +:04043F0000000000B9 +:0404400000000000B8 +:0404410000000000B7 +:0404420000000000B6 +:0404430000000000B5 +:0404440000000000B4 +:0404450000000000B3 +:0404460000000000B2 +:0404470000000000B1 +:0404480000000000B0 +:0404490000000000AF +:04044A0000000000AE +:04044B0000000000AD +:04044C0000000000AC +:04044D0000000000AB +:04044E0000000000AA +:04044F0000000000A9 +:0404500000000000A8 +:0404510000000000A7 +:0404520000000000A6 +:0404530000000000A5 +:0404540000000000A4 +:0404550000000000A3 +:0404560000000000A2 +:0404570000000000A1 +:0404580000000000A0 +:04045900000000009F +:04045A00000000009E +:04045B00000000009D +:04045C00000000009C +:04045D00000000009B +:04045E00000000009A +:04045F000000000099 +:040460000000000098 +:040461000000000097 +:040462000000000096 +:040463000000000095 +:040464000000000094 +:040465000000000093 +:040466000000000092 +:040467000000000091 +:040468000000000090 +:04046900000000008F +:04046A00000000008E +:04046B00000000008D +:04046C00000000008C +:04046D00000000008B +:04046E00000000008A +:04046F000000000089 +:040470000000000088 +:040471000000000087 +:040472000000000086 +:040473000000000085 +:040474000000000084 +:040475000000000083 +:040476000000000082 +:040477000000000081 +:040478000000000080 +:04047900000000007F +:04047A00000000007E +:04047B00000000007D +:04047C00000000007C +:04047D00000000007B +:04047E00000000007A +:04047F000000000079 +:040480000000000078 +:040481000000000077 +:040482000000000076 +:040483000000000075 +:040484000000000074 +:040485000000000073 +:040486000000000072 +:040487000000000071 +:040488000000000070 +:04048900000000006F +:04048A00000000006E +:04048B00000000006D +:04048C00000000006C +:04048D00000000006B +:04048E00000000006A +:04048F000000000069 +:040490000000000068 +:040491000000000067 +:040492000000000066 +:040493000000000065 +:040494000000000064 +:040495000000000063 +:040496000000000062 +:040497000000000061 +:040498000000000060 +:04049900000000005F +:04049A00000000005E +:04049B00000000005D +:04049C00000000005C +:04049D00000000005B +:04049E00000000005A +:04049F000000000059 +:0404A0000000000058 +:0404A1000000000057 +:0404A2000000000056 +:0404A3000000000055 +:0404A4000000000054 +:0404A5000000000053 +:0404A6000000000052 +:0404A7000000000051 +:0404A8000000000050 +:0404A900000000004F +:0404AA00000000004E +:0404AB00000000004D +:0404AC00000000004C +:0404AD00000000004B +:0404AE00000000004A +:0404AF000000000049 +:0404B0000000000048 +:0404B1000000000047 +:0404B2000000000046 +:0404B3000000000045 +:0404B4000000000044 +:0404B5000000000043 +:0404B6000000000042 +:0404B7000000000041 +:0404B8000000000040 +:0404B900000000003F +:0404BA00000000003E +:0404BB00000000003D +:0404BC00000000003C +:0404BD00000000003B +:0404BE00000000003A +:0404BF000000000039 +:0404C0000000000038 +:0404C1000000000037 +:0404C2000000000036 +:0404C3000000000035 +:0404C4000000000034 +:0404C5000000000033 +:0404C6000000000032 +:0404C7000000000031 +:0404C8000000000030 +:0404C900000000002F +:0404CA00000000002E +:0404CB00000000002D +:0404CC00000000002C +:0404CD00000000002B +:0404CE00000000002A +:0404CF000000000029 +:0404D0000000000028 +:0404D1000000000027 +:0404D2000000000026 +:0404D3000000000025 +:0404D4000000000024 +:0404D5000000000023 +:0404D6000000000022 +:0404D7000000000021 +:0404D8000000000020 +:0404D900000000001F +:0404DA00000000001E +:0404DB00000000001D +:0404DC00000000001C +:0404DD00000000001B +:0404DE00000000001A +:0404DF000000000019 +:0404E0000000000018 +:0404E1000000000017 +:0404E2000000000016 +:0404E3000000000015 +:0404E4000000000014 +:0404E5000000000013 +:0404E6000000000012 +:0404E7000000000011 +:0404E8000000000010 +:0404E900000000000F +:0404EA00000000000E +:0404EB00000000000D +:0404EC00000000000C +:0404ED00000000000B +:0404EE00000000000A +:0404EF000000000009 +:0404F0000000000008 +:0404F1000000000007 +:0404F2000000000006 +:0404F3000000000005 +:0404F4000000000004 +:0404F5000000000003 +:0404F6000000000002 +:0404F7000000000001 +:0404F8000000000000 +:0404F90000000000FF +:0404FA0000000000FE +:0404FB0000000000FD +:0404FC0000000000FC +:0404FD0000000000FB +:0404FE0000000000FA +:0404FF0000000000F9 +:0405000000000000F7 +:0405010000000000F6 +:0405020000000000F5 +:0405030000000000F4 +:0405040000000000F3 +:0405050000000000F2 +:0405060000000000F1 +:0405070000000000F0 +:0405080000000000EF +:0405090000000000EE +:04050A0000000000ED +:04050B0000000000EC +:04050C0000000000EB +:04050D0000000000EA +:04050E0000000000E9 +:04050F0000000000E8 +:0405100000000000E7 +:0405110000000000E6 +:0405120000000000E5 +:0405130000000000E4 +:0405140000000000E3 +:0405150000000000E2 +:0405160000000000E1 +:0405170000000000E0 +:0405180000000000DF +:0405190000000000DE +:04051A0000000000DD +:04051B0000000000DC +:04051C0000000000DB +:04051D0000000000DA +:04051E0000000000D9 +:04051F0000000000D8 +:0405200000000000D7 +:0405210000000000D6 +:0405220000000000D5 +:0405230000000000D4 +:0405240000000000D3 +:0405250000000000D2 +:0405260000000000D1 +:0405270000000000D0 +:0405280000000000CF +:0405290000000000CE +:04052A0000000000CD +:04052B0000000000CC +:04052C0000000000CB +:04052D0000000000CA +:04052E0000000000C9 +:04052F0000000000C8 +:0405300000000000C7 +:0405310000000000C6 +:0405320000000000C5 +:0405330000000000C4 +:0405340000000000C3 +:0405350000000000C2 +:0405360000000000C1 +:0405370000000000C0 +:0405380000000000BF +:0405390000000000BE +:04053A0000000000BD +:04053B0000000000BC +:04053C0000000000BB +:04053D0000000000BA +:04053E0000000000B9 +:04053F0000000000B8 +:0405400000000000B7 +:0405410000000000B6 +:0405420000000000B5 +:0405430000000000B4 +:0405440000000000B3 +:0405450000000000B2 +:0405460000000000B1 +:0405470000000000B0 +:0405480000000000AF +:0405490000000000AE +:04054A0000000000AD +:04054B0000000000AC +:04054C0000000000AB +:04054D0000000000AA +:04054E0000000000A9 +:04054F0000000000A8 +:0405500000000000A7 +:0405510000000000A6 +:0405520000000000A5 +:0405530000000000A4 +:0405540000000000A3 +:0405550000000000A2 +:0405560000000000A1 +:0405570000000000A0 +:04055800000000009F +:04055900000000009E +:04055A00000000009D +:04055B00000000009C +:04055C00000000009B +:04055D00000000009A +:04055E000000000099 +:04055F000000000098 +:040560000000000097 +:040561000000000096 +:040562000000000095 +:040563000000000094 +:040564000000000093 +:040565000000000092 +:040566000000000091 +:040567000000000090 +:04056800000000008F +:04056900000000008E +:04056A00000000008D +:04056B00000000008C +:04056C00000000008B +:04056D00000000008A +:04056E000000000089 +:04056F000000000088 +:040570000000000087 +:040571000000000086 +:040572000000000085 +:040573000000000084 +:040574000000000083 +:040575000000000082 +:040576000000000081 +:040577000000000080 +:04057800000000007F +:04057900000000007E +:04057A00000000007D +:04057B00000000007C +:04057C00000000007B +:04057D00000000007A +:04057E000000000079 +:04057F000000000078 +:040580000000000077 +:040581000000000076 +:040582000000000075 +:040583000000000074 +:040584000000000073 +:040585000000000072 +:040586000000000071 +:040587000000000070 +:04058800000000006F +:04058900000000006E +:04058A00000000006D +:04058B00000000006C +:04058C00000000006B +:04058D00000000006A +:04058E000000000069 +:04058F000000000068 +:040590000000000067 +:040591000000000066 +:040592000000000065 +:040593000000000064 +:040594000000000063 +:040595000000000062 +:040596000000000061 +:040597000000000060 +:04059800000000005F +:04059900000000005E +:04059A00000000005D +:04059B00000000005C +:04059C00000000005B +:04059D00000000005A +:04059E000000000059 +:04059F000000000058 +:0405A0000000000057 +:0405A1000000000056 +:0405A2000000000055 +:0405A3000000000054 +:0405A4000000000053 +:0405A5000000000052 +:0405A6000000000051 +:0405A7000000000050 +:0405A800000000004F +:0405A900000000004E +:0405AA00000000004D +:0405AB00000000004C +:0405AC00000000004B +:0405AD00000000004A +:0405AE000000000049 +:0405AF000000000048 +:0405B0000000000047 +:0405B1000000000046 +:0405B2000000000045 +:0405B3000000000044 +:0405B4000000000043 +:0405B5000000000042 +:0405B6000000000041 +:0405B7000000000040 +:0405B800000000003F +:0405B900000000003E +:0405BA00000000003D +:0405BB00000000003C +:0405BC00000000003B +:0405BD00000000003A +:0405BE000000000039 +:0405BF000000000038 +:0405C0000000000037 +:0405C1000000000036 +:0405C2000000000035 +:0405C3000000000034 +:0405C4000000000033 +:0405C5000000000032 +:0405C6000000000031 +:0405C7000000000030 +:0405C800000000002F +:0405C900000000002E +:0405CA00000000002D +:0405CB00000000002C +:0405CC00000000002B +:0405CD00000000002A +:0405CE000000000029 +:0405CF000000000028 +:0405D0000000000027 +:0405D1000000000026 +:0405D2000000000025 +:0405D3000000000024 +:0405D4000000000023 +:0405D5000000000022 +:0405D6000000000021 +:0405D7000000000020 +:0405D800000000001F +:0405D900000000001E +:0405DA00000000001D +:0405DB00000000001C +:0405DC00000000001B +:0405DD00000000001A +:0405DE000000000019 +:0405DF000000000018 +:0405E0000000000017 +:0405E1000000000016 +:0405E2000000000015 +:0405E3000000000014 +:0405E4000000000013 +:0405E5000000000012 +:0405E6000000000011 +:0405E7000000000010 +:0405E800000000000F +:0405E900000000000E +:0405EA00000000000D +:0405EB00000000000C +:0405EC00000000000B +:0405ED00000000000A +:0405EE000000000009 +:0405EF000000000008 +:0405F0000000000007 +:0405F1000000000006 +:0405F2000000000005 +:0405F3000000000004 +:0405F4000000000003 +:0405F5000000000002 +:0405F6000000000001 +:0405F7000000000000 +:0405F80000000000FF +:0405F90000000000FE +:0405FA0000000000FD +:0405FB0000000000FC +:0405FC0000000000FB +:0405FD0000000000FA +:0405FE0000000000F9 +:0405FF0000000000F8 +:0406000000000000F6 +:0406010000000000F5 +:0406020000000000F4 +:0406030000000000F3 +:0406040000000000F2 +:0406050000000000F1 +:0406060000000000F0 +:0406070000000000EF +:0406080000000000EE +:0406090000000000ED +:04060A0000000000EC +:04060B0000000000EB +:04060C0000000000EA +:04060D0000000000E9 +:04060E0000000000E8 +:04060F0000000000E7 +:0406100000000000E6 +:0406110000000000E5 +:0406120000000000E4 +:0406130000000000E3 +:0406140000000000E2 +:0406150000000000E1 +:0406160000000000E0 +:0406170000000000DF +:0406180000000000DE +:0406190000000000DD +:04061A0000000000DC +:04061B0000000000DB +:04061C0000000000DA +:04061D0000000000D9 +:04061E0000000000D8 +:04061F0000000000D7 +:0406200000000000D6 +:0406210000000000D5 +:0406220000000000D4 +:0406230000000000D3 +:0406240000000000D2 +:0406250000000000D1 +:0406260000000000D0 +:0406270000000000CF +:0406280000000000CE +:0406290000000000CD +:04062A0000000000CC +:04062B0000000000CB +:04062C0000000000CA +:04062D0000000000C9 +:04062E0000000000C8 +:04062F0000000000C7 +:0406300000000000C6 +:0406310000000000C5 +:0406320000000000C4 +:0406330000000000C3 +:0406340000000000C2 +:0406350000000000C1 +:0406360000000000C0 +:0406370000000000BF +:0406380000000000BE +:0406390000000000BD +:04063A0000000000BC +:04063B0000000000BB +:04063C0000000000BA +:04063D0000000000B9 +:04063E0000000000B8 +:04063F0000000000B7 +:0406400000000000B6 +:0406410000000000B5 +:0406420000000000B4 +:0406430000000000B3 +:0406440000000000B2 +:0406450000000000B1 +:0406460000000000B0 +:0406470000000000AF +:0406480000000000AE +:0406490000000000AD +:04064A0000000000AC +:04064B0000000000AB +:04064C0000000000AA +:04064D0000000000A9 +:04064E0000000000A8 +:04064F0000000000A7 +:0406500000000000A6 +:0406510000000000A5 +:0406520000000000A4 +:0406530000000000A3 +:0406540000000000A2 +:0406550000000000A1 +:0406560000000000A0 +:04065700000000009F +:04065800000000009E +:04065900000000009D +:04065A00000000009C +:04065B00000000009B +:04065C00000000009A +:04065D000000000099 +:04065E000000000098 +:04065F000000000097 +:040660000000000096 +:040661000000000095 +:040662000000000094 +:040663000000000093 +:040664000000000092 +:040665000000000091 +:040666000000000090 +:04066700000000008F +:04066800000000008E +:04066900000000008D +:04066A00000000008C +:04066B00000000008B +:04066C00000000008A +:04066D000000000089 +:04066E000000000088 +:04066F000000000087 +:040670000000000086 +:040671000000000085 +:040672000000000084 +:040673000000000083 +:040674000000000082 +:040675000000000081 +:040676000000000080 +:04067700000000007F +:04067800000000007E +:04067900000000007D +:04067A00000000007C +:04067B00000000007B +:04067C00000000007A +:04067D000000000079 +:04067E000000000078 +:04067F000000000077 +:040680000000000076 +:040681000000000075 +:040682000000000074 +:040683000000000073 +:040684000000000072 +:040685000000000071 +:040686000000000070 +:04068700000000006F +:04068800000000006E +:04068900000000006D +:04068A00000000006C +:04068B00000000006B +:04068C00000000006A +:04068D000000000069 +:04068E000000000068 +:04068F000000000067 +:040690000000000066 +:040691000000000065 +:040692000000000064 +:040693000000000063 +:040694000000000062 +:040695000000000061 +:040696000000000060 +:04069700000000005F +:04069800000000005E +:04069900000000005D +:04069A00000000005C +:04069B00000000005B +:04069C00000000005A +:04069D000000000059 +:04069E000000000058 +:04069F000000000057 +:0406A0000000000056 +:0406A1000000000055 +:0406A2000000000054 +:0406A3000000000053 +:0406A4000000000052 +:0406A5000000000051 +:0406A6000000000050 +:0406A700000000004F +:0406A800000000004E +:0406A900000000004D +:0406AA00000000004C +:0406AB00000000004B +:0406AC00000000004A +:0406AD000000000049 +:0406AE000000000048 +:0406AF000000000047 +:0406B0000000000046 +:0406B1000000000045 +:0406B2000000000044 +:0406B3000000000043 +:0406B4000000000042 +:0406B5000000000041 +:0406B6000000000040 +:0406B700000000003F +:0406B800000000003E +:0406B900000000003D +:0406BA00000000003C +:0406BB00000000003B +:0406BC00000000003A +:0406BD000000000039 +:0406BE000000000038 +:0406BF000000000037 +:0406C0000000000036 +:0406C1000000000035 +:0406C2000000000034 +:0406C3000000000033 +:0406C4000000000032 +:0406C5000000000031 +:0406C6000000000030 +:0406C700000000002F +:0406C800000000002E +:0406C900000000002D +:0406CA00000000002C +:0406CB00000000002B +:0406CC00000000002A +:0406CD000000000029 +:0406CE000000000028 +:0406CF000000000027 +:0406D0000000000026 +:0406D1000000000025 +:0406D2000000000024 +:0406D3000000000023 +:0406D4000000000022 +:0406D5000000000021 +:0406D6000000000020 +:0406D700000000001F +:0406D800000000001E +:0406D900000000001D +:0406DA00000000001C +:0406DB00000000001B +:0406DC00000000001A +:0406DD000000000019 +:0406DE000000000018 +:0406DF000000000017 +:0406E0000000000016 +:0406E1000000000015 +:0406E2000000000014 +:0406E3000000000013 +:0406E4000000000012 +:0406E5000000000011 +:0406E6000000000010 +:0406E700000000000F +:0406E800000000000E +:0406E900000000000D +:0406EA00000000000C +:0406EB00000000000B +:0406EC00000000000A +:0406ED000000000009 +:0406EE000000000008 +:0406EF000000000007 +:0406F0000000000006 +:0406F1000000000005 +:0406F2000000000004 +:0406F3000000000003 +:0406F4000000000002 +:0406F5000000000001 +:0406F6000000000000 +:0406F70000000000FF +:0406F80000000000FE +:0406F90000000000FD +:0406FA0000000000FC +:0406FB0000000000FB +:0406FC0000000000FA +:0406FD0000000000F9 +:0406FE0000000000F8 +:0406FF0000000000F7 +:0407000000000000F5 +:0407010000000000F4 +:0407020000000000F3 +:0407030000000000F2 +:0407040000000000F1 +:0407050000000000F0 +:0407060000000000EF +:0407070000000000EE +:0407080000000000ED +:0407090000000000EC +:04070A0000000000EB +:04070B0000000000EA +:04070C0000000000E9 +:04070D0000000000E8 +:04070E0000000000E7 +:04070F0000000000E6 +:0407100000000000E5 +:0407110000000000E4 +:0407120000000000E3 +:0407130000000000E2 +:0407140000000000E1 +:0407150000000000E0 +:0407160000000000DF +:0407170000000000DE +:0407180000000000DD +:0407190000000000DC +:04071A0000000000DB +:04071B0000000000DA +:04071C0000000000D9 +:04071D0000000000D8 +:04071E0000000000D7 +:04071F0000000000D6 +:0407200000000000D5 +:0407210000000000D4 +:0407220000000000D3 +:0407230000000000D2 +:0407240000000000D1 +:0407250000000000D0 +:0407260000000000CF +:0407270000000000CE +:0407280000000000CD +:0407290000000000CC +:04072A0000000000CB +:04072B0000000000CA +:04072C0000000000C9 +:04072D0000000000C8 +:04072E0000000000C7 +:04072F0000000000C6 +:0407300000000000C5 +:0407310000000000C4 +:0407320000000000C3 +:0407330000000000C2 +:0407340000000000C1 +:0407350000000000C0 +:0407360000000000BF +:0407370000000000BE +:0407380000000000BD +:0407390000000000BC +:04073A0000000000BB +:04073B0000000000BA +:04073C0000000000B9 +:04073D0000000000B8 +:04073E0000000000B7 +:04073F0000000000B6 +:0407400000000000B5 +:0407410000000000B4 +:0407420000000000B3 +:0407430000000000B2 +:0407440000000000B1 +:0407450000000000B0 +:0407460000000000AF +:0407470000000000AE +:0407480000000000AD +:0407490000000000AC +:04074A0000000000AB +:04074B0000000000AA +:04074C0000000000A9 +:04074D0000000000A8 +:04074E0000000000A7 +:04074F0000000000A6 +:0407500000000000A5 +:0407510000000000A4 +:0407520000000000A3 +:0407530000000000A2 +:0407540000000000A1 +:0407550000000000A0 +:04075600000000009F +:04075700000000009E +:04075800000000009D +:04075900000000009C +:04075A00000000009B +:04075B00000000009A +:04075C000000000099 +:04075D000000000098 +:04075E000000000097 +:04075F000000000096 +:040760000000000095 +:040761000000000094 +:040762000000000093 +:040763000000000092 +:040764000000000091 +:040765000000000090 +:04076600000000008F +:04076700000000008E +:04076800000000008D +:04076900000000008C +:04076A00000000008B +:04076B00000000008A +:04076C000000000089 +:04076D000000000088 +:04076E000000000087 +:04076F000000000086 +:040770000000000085 +:040771000000000084 +:040772000000000083 +:040773000000000082 +:040774000000000081 +:040775000000000080 +:04077600000000007F +:04077700000000007E +:04077800000000007D +:04077900000000007C +:04077A00000000007B +:04077B00000000007A +:04077C000000000079 +:04077D000000000078 +:04077E000000000077 +:04077F000000000076 +:040780000000000075 +:040781000000000074 +:040782000000000073 +:040783000000000072 +:040784000000000071 +:040785000000000070 +:04078600000000006F +:04078700000000006E +:04078800000000006D +:04078900000000006C +:04078A00000000006B +:04078B00000000006A +:04078C000000000069 +:04078D000000000068 +:04078E000000000067 +:04078F000000000066 +:040790000000000065 +:040791000000000064 +:040792000000000063 +:040793000000000062 +:040794000000000061 +:040795000000000060 +:04079600000000005F +:04079700000000005E +:04079800000000005D +:04079900000000005C +:04079A00000000005B +:04079B00000000005A +:04079C000000000059 +:04079D000000000058 +:04079E000000000057 +:04079F000000000056 +:0407A0000000000055 +:0407A1000000000054 +:0407A2000000000053 +:0407A3000000000052 +:0407A4000000000051 +:0407A5000000000050 +:0407A600000000004F +:0407A700000000004E +:0407A800000000004D +:0407A900000000004C +:0407AA00000000004B +:0407AB00000000004A +:0407AC000000000049 +:0407AD000000000048 +:0407AE000000000047 +:0407AF000000000046 +:0407B0000000000045 +:0407B1000000000044 +:0407B2000000000043 +:0407B3000000000042 +:0407B4000000000041 +:0407B5000000000040 +:0407B600000000003F +:0407B700000000003E +:0407B800000000003D +:0407B900000000003C +:0407BA00000000003B +:0407BB00000000003A +:0407BC000000000039 +:0407BD000000000038 +:0407BE000000000037 +:0407BF000000000036 +:0407C0000000000035 +:0407C1000000000034 +:0407C2000000000033 +:0407C3000000000032 +:0407C4000000000031 +:0407C5000000000030 +:0407C600000000002F +:0407C700000000002E +:0407C800000000002D +:0407C900000000002C +:0407CA00000000002B +:0407CB00000000002A +:0407CC000000000029 +:0407CD000000000028 +:0407CE000000000027 +:0407CF000000000026 +:0407D0000000000025 +:0407D1000000000024 +:0407D2000000000023 +:0407D3000000000022 +:0407D4000000000021 +:0407D5000000000020 +:0407D600000000001F +:0407D700000000001E +:0407D800000000001D +:0407D900000000001C +:0407DA00000000001B +:0407DB00000000001A +:0407DC000000000019 +:0407DD000000000018 +:0407DE000000000017 +:0407DF000000000016 +:0407E0000000000015 +:0407E1000000000014 +:0407E2000000000013 +:0407E3000000000012 +:0407E4000000000011 +:0407E5000000000010 +:0407E600000000000F +:0407E700000000000E +:0407E800000000000D +:0407E900000000000C +:0407EA00000000000B +:0407EB00000000000A +:0407EC000000000009 +:0407ED000000000008 +:0407EE000000000007 +:0407EF000000000006 +:0407F0000000000005 +:0407F1000000000004 +:0407F2000000000003 +:0407F3000000000002 +:0407F4000000000001 +:0407F5000000000000 +:0407F60000000000FF +:0407F70000000000FE +:0407F80000000000FD +:0407F90000000000FC +:0407FA0000000000FB +:0407FB0000000000FA +:0407FC0000000000F9 +:0407FD0000000000F8 +:0407FE0000000000F7 +:0407FF0000000000F6 +:0408000000000000F4 +:0408010000000000F3 +:0408020000000000F2 +:0408030000000000F1 +:0408040000000000F0 +:0408050000000000EF +:0408060000000000EE +:0408070000000000ED +:0408080000000000EC +:0408090000000000EB +:04080A0000000000EA +:04080B0000000000E9 +:04080C0000000000E8 +:04080D0000000000E7 +:04080E0000000000E6 +:04080F0000000000E5 +:0408100000000000E4 +:0408110000000000E3 +:0408120000000000E2 +:0408130000000000E1 +:0408140000000000E0 +:0408150000000000DF +:0408160000000000DE +:0408170000000000DD +:0408180000000000DC +:0408190000000000DB +:04081A0000000000DA +:04081B0000000000D9 +:04081C0000000000D8 +:04081D0000000000D7 +:04081E0000000000D6 +:04081F0000000000D5 +:0408200000000000D4 +:0408210000000000D3 +:0408220000000000D2 +:0408230000000000D1 +:0408240000000000D0 +:0408250000000000CF +:0408260000000000CE +:0408270000000000CD +:0408280000000000CC +:0408290000000000CB +:04082A0000000000CA +:04082B0000000000C9 +:04082C0000000000C8 +:04082D0000000000C7 +:04082E0000000000C6 +:04082F0000000000C5 +:0408300000000000C4 +:0408310000000000C3 +:0408320000000000C2 +:0408330000000000C1 +:0408340000000000C0 +:0408350000000000BF +:0408360000000000BE +:0408370000000000BD +:0408380000000000BC +:0408390000000000BB +:04083A0000000000BA +:04083B0000000000B9 +:04083C0000000000B8 +:04083D0000000000B7 +:04083E0000000000B6 +:04083F0000000000B5 +:0408400000000000B4 +:0408410000000000B3 +:0408420000000000B2 +:0408430000000000B1 +:0408440000000000B0 +:0408450000000000AF +:0408460000000000AE +:0408470000000000AD +:0408480000000000AC +:0408490000000000AB +:04084A0000000000AA +:04084B0000000000A9 +:04084C0000000000A8 +:04084D0000000000A7 +:04084E0000000000A6 +:04084F0000000000A5 +:0408500000000000A4 +:0408510000000000A3 +:0408520000000000A2 +:0408530000000000A1 +:0408540000000000A0 +:04085500000000009F +:04085600000000009E +:04085700000000009D +:04085800000000009C +:04085900000000009B +:04085A00000000009A +:04085B000000000099 +:04085C000000000098 +:04085D000000000097 +:04085E000000000096 +:04085F000000000095 +:040860000000000094 +:040861000000000093 +:040862000000000092 +:040863000000000091 +:040864000000000090 +:04086500000000008F +:04086600000000008E +:04086700000000008D +:04086800000000008C +:04086900000000008B +:04086A00000000008A +:04086B000000000089 +:04086C000000000088 +:04086D000000000087 +:04086E000000000086 +:04086F000000000085 +:040870000000000084 +:040871000000000083 +:040872000000000082 +:040873000000000081 +:040874000000000080 +:04087500000000007F +:04087600000000007E +:04087700000000007D +:04087800000000007C +:04087900000000007B +:04087A00000000007A +:04087B000000000079 +:04087C000000000078 +:04087D000000000077 +:04087E000000000076 +:04087F000000000075 +:040880000000000074 +:040881000000000073 +:040882000000000072 +:040883000000000071 +:040884000000000070 +:04088500000000006F +:04088600000000006E +:04088700000000006D +:04088800000000006C +:04088900000000006B +:04088A00000000006A +:04088B000000000069 +:04088C000000000068 +:04088D000000000067 +:04088E000000000066 +:04088F000000000065 +:040890000000000064 +:040891000000000063 +:040892000000000062 +:040893000000000061 +:040894000000000060 +:04089500000000005F +:04089600000000005E +:04089700000000005D +:04089800000000005C +:04089900000000005B +:04089A00000000005A +:04089B000000000059 +:04089C000000000058 +:04089D000000000057 +:04089E000000000056 +:04089F000000000055 +:0408A0000000000054 +:0408A1000000000053 +:0408A2000000000052 +:0408A3000000000051 +:0408A4000000000050 +:0408A500000000004F +:0408A600000000004E +:0408A700000000004D +:0408A800000000004C +:0408A900000000004B +:0408AA00000000004A +:0408AB000000000049 +:0408AC000000000048 +:0408AD000000000047 +:0408AE000000000046 +:0408AF000000000045 +:0408B0000000000044 +:0408B1000000000043 +:0408B2000000000042 +:0408B3000000000041 +:0408B4000000000040 +:0408B500000000003F +:0408B600000000003E +:0408B700000000003D +:0408B800000000003C +:0408B900000000003B +:0408BA00000000003A +:0408BB000000000039 +:0408BC000000000038 +:0408BD000000000037 +:0408BE000000000036 +:0408BF000000000035 +:0408C0000000000034 +:0408C1000000000033 +:0408C2000000000032 +:0408C3000000000031 +:0408C4000000000030 +:0408C500000000002F +:0408C600000000002E +:0408C700000000002D +:0408C800000000002C +:0408C900000000002B +:0408CA00000000002A +:0408CB000000000029 +:0408CC000000000028 +:0408CD000000000027 +:0408CE000000000026 +:0408CF000000000025 +:0408D0000000000024 +:0408D1000000000023 +:0408D2000000000022 +:0408D3000000000021 +:0408D4000000000020 +:0408D500000000001F +:0408D600000000001E +:0408D700000000001D +:0408D800000000001C +:0408D900000000001B +:0408DA00000000001A +:0408DB000000000019 +:0408DC000000000018 +:0408DD000000000017 +:0408DE000000000016 +:0408DF000000000015 +:0408E0000000000014 +:0408E1000000000013 +:0408E2000000000012 +:0408E3000000000011 +:0408E4000000000010 +:0408E500000000000F +:0408E600000000000E +:0408E700000000000D +:0408E800000000000C +:0408E900000000000B +:0408EA00000000000A +:0408EB000000000009 +:0408EC000000000008 +:0408ED000000000007 +:0408EE000000000006 +:0408EF000000000005 +:0408F0000000000004 +:0408F1000000000003 +:0408F2000000000002 +:0408F3000000000001 +:0408F4000000000000 +:0408F50000000000FF +:0408F60000000000FE +:0408F70000000000FD +:0408F80000000000FC +:0408F90000000000FB +:0408FA0000000000FA +:0408FB0000000000F9 +:0408FC0000000000F8 +:0408FD0000000000F7 +:0408FE0000000000F6 +:0408FF0000000000F5 +:0409000000000000F3 +:0409010000000000F2 +:0409020000000000F1 +:0409030000000000F0 +:0409040000000000EF +:0409050000000000EE +:0409060000000000ED +:0409070000000000EC +:0409080000000000EB +:0409090000000000EA +:04090A0000000000E9 +:04090B0000000000E8 +:04090C0000000000E7 +:04090D0000000000E6 +:04090E0000000000E5 +:04090F0000000000E4 +:0409100000000000E3 +:0409110000000000E2 +:0409120000000000E1 +:0409130000000000E0 +:0409140000000000DF +:0409150000000000DE +:0409160000000000DD +:0409170000000000DC +:0409180000000000DB +:0409190000000000DA +:04091A0000000000D9 +:04091B0000000000D8 +:04091C0000000000D7 +:04091D0000000000D6 +:04091E0000000000D5 +:04091F0000000000D4 +:0409200000000000D3 +:0409210000000000D2 +:0409220000000000D1 +:0409230000000000D0 +:0409240000000000CF +:0409250000000000CE +:0409260000000000CD +:0409270000000000CC +:0409280000000000CB +:0409290000000000CA +:04092A0000000000C9 +:04092B0000000000C8 +:04092C0000000000C7 +:04092D0000000000C6 +:04092E0000000000C5 +:04092F0000000000C4 +:0409300000000000C3 +:0409310000000000C2 +:0409320000000000C1 +:0409330000000000C0 +:0409340000000000BF +:0409350000000000BE +:0409360000000000BD +:0409370000000000BC +:0409380000000000BB +:0409390000000000BA +:04093A0000000000B9 +:04093B0000000000B8 +:04093C0000000000B7 +:04093D0000000000B6 +:04093E0000000000B5 +:04093F0000000000B4 +:0409400000000000B3 +:0409410000000000B2 +:0409420000000000B1 +:0409430000000000B0 +:0409440000000000AF +:0409450000000000AE +:0409460000000000AD +:0409470000000000AC +:0409480000000000AB +:0409490000000000AA +:04094A0000000000A9 +:04094B0000000000A8 +:04094C0000000000A7 +:04094D0000000000A6 +:04094E0000000000A5 +:04094F0000000000A4 +:0409500000000000A3 +:0409510000000000A2 +:0409520000000000A1 +:0409530000000000A0 +:04095400000000009F +:04095500000000009E +:04095600000000009D +:04095700000000009C +:04095800000000009B +:04095900000000009A +:04095A000000000099 +:04095B000000000098 +:04095C000000000097 +:04095D000000000096 +:04095E000000000095 +:04095F000000000094 +:040960000000000093 +:040961000000000092 +:040962000000000091 +:040963000000000090 +:04096400000000008F +:04096500000000008E +:04096600000000008D +:04096700000000008C +:04096800000000008B +:04096900000000008A +:04096A000000000089 +:04096B000000000088 +:04096C000000000087 +:04096D000000000086 +:04096E000000000085 +:04096F000000000084 +:040970000000000083 +:040971000000000082 +:040972000000000081 +:040973000000000080 +:04097400000000007F +:04097500000000007E +:04097600000000007D +:04097700000000007C +:04097800000000007B +:04097900000000007A +:04097A000000000079 +:04097B000000000078 +:04097C000000000077 +:04097D000000000076 +:04097E000000000075 +:04097F000000000074 +:040980000000000073 +:040981000000000072 +:040982000000000071 +:040983000000000070 +:04098400000000006F +:04098500000000006E +:04098600000000006D +:04098700000000006C +:04098800000000006B +:04098900000000006A +:04098A000000000069 +:04098B000000000068 +:04098C000000000067 +:04098D000000000066 +:04098E000000000065 +:04098F000000000064 +:040990000000000063 +:040991000000000062 +:040992000000000061 +:040993000000000060 +:04099400000000005F +:04099500000000005E +:04099600000000005D +:04099700000000005C +:04099800000000005B +:04099900000000005A +:04099A000000000059 +:04099B000000000058 +:04099C000000000057 +:04099D000000000056 +:04099E000000000055 +:04099F000000000054 +:0409A0000000000053 +:0409A1000000000052 +:0409A2000000000051 +:0409A3000000000050 +:0409A400000000004F +:0409A500000000004E +:0409A600000000004D +:0409A700000000004C +:0409A800000000004B +:0409A900000000004A +:0409AA000000000049 +:0409AB000000000048 +:0409AC000000000047 +:0409AD000000000046 +:0409AE000000000045 +:0409AF000000000044 +:0409B0000000000043 +:0409B1000000000042 +:0409B2000000000041 +:0409B3000000000040 +:0409B400000000003F +:0409B500000000003E +:0409B600000000003D +:0409B700000000003C +:0409B800000000003B +:0409B900000000003A +:0409BA000000000039 +:0409BB000000000038 +:0409BC000000000037 +:0409BD000000000036 +:0409BE000000000035 +:0409BF000000000034 +:0409C0000000000033 +:0409C1000000000032 +:0409C2000000000031 +:0409C3000000000030 +:0409C400000000002F +:0409C500000000002E +:0409C600000000002D +:0409C700000000002C +:0409C800000000002B +:0409C900000000002A +:0409CA000000000029 +:0409CB000000000028 +:0409CC000000000027 +:0409CD000000000026 +:0409CE000000000025 +:0409CF000000000024 +:0409D0000000000023 +:0409D1000000000022 +:0409D2000000000021 +:0409D3000000000020 +:0409D400000000001F +:0409D500000000001E +:0409D600000000001D +:0409D700000000001C +:0409D800000000001B +:0409D900000000001A +:0409DA000000000019 +:0409DB000000000018 +:0409DC000000000017 +:0409DD000000000016 +:0409DE000000000015 +:0409DF000000000014 +:0409E0000000000013 +:0409E1000000000012 +:0409E2000000000011 +:0409E3000000000010 +:0409E400000000000F +:0409E500000000000E +:0409E600000000000D +:0409E700000000000C +:0409E800000000000B +:0409E900000000000A +:0409EA000000000009 +:0409EB000000000008 +:0409EC000000000007 +:0409ED000000000006 +:0409EE000000000005 +:0409EF000000000004 +:0409F0000000000003 +:0409F1000000000002 +:0409F2000000000001 +:0409F3000000000000 +:0409F40000000000FF +:0409F50000000000FE +:0409F60000000000FD +:0409F70000000000FC +:0409F80000000000FB +:0409F90000000000FA +:0409FA0000000000F9 +:0409FB0000000000F8 +:0409FC0000000000F7 +:0409FD0000000000F6 +:0409FE0000000000F5 +:0409FF0000000000F4 +:040A000000000000F2 +:040A010000000000F1 +:040A020000000000F0 +:040A030000000000EF +:040A040000000000EE +:040A050000000000ED +:040A060000000000EC +:040A070000000000EB +:040A080000000000EA +:040A090000000000E9 +:040A0A0000000000E8 +:040A0B0000000000E7 +:040A0C0000000000E6 +:040A0D0000000000E5 +:040A0E0000000000E4 +:040A0F0000000000E3 +:040A100000000000E2 +:040A110000000000E1 +:040A120000000000E0 +:040A130000000000DF +:040A140000000000DE +:040A150000000000DD +:040A160000000000DC +:040A170000000000DB +:040A180000000000DA +:040A190000000000D9 +:040A1A0000000000D8 +:040A1B0000000000D7 +:040A1C0000000000D6 +:040A1D0000000000D5 +:040A1E0000000000D4 +:040A1F0000000000D3 +:040A200000000000D2 +:040A210000000000D1 +:040A220000000000D0 +:040A230000000000CF +:040A240000000000CE +:040A250000000000CD +:040A260000000000CC +:040A270000000000CB +:040A280000000000CA +:040A290000000000C9 +:040A2A0000000000C8 +:040A2B0000000000C7 +:040A2C0000000000C6 +:040A2D0000000000C5 +:040A2E0000000000C4 +:040A2F0000000000C3 +:040A300000000000C2 +:040A310000000000C1 +:040A320000000000C0 +:040A330000000000BF +:040A340000000000BE +:040A350000000000BD +:040A360000000000BC +:040A370000000000BB +:040A380000000000BA +:040A390000000000B9 +:040A3A0000000000B8 +:040A3B0000000000B7 +:040A3C0000000000B6 +:040A3D0000000000B5 +:040A3E0000000000B4 +:040A3F0000000000B3 +:040A400000000000B2 +:040A410000000000B1 +:040A420000000000B0 +:040A430000000000AF +:040A440000000000AE +:040A450000000000AD +:040A460000000000AC +:040A470000000000AB +:040A480000000000AA +:040A490000000000A9 +:040A4A0000000000A8 +:040A4B0000000000A7 +:040A4C0000000000A6 +:040A4D0000000000A5 +:040A4E0000000000A4 +:040A4F0000000000A3 +:040A500000000000A2 +:040A510000000000A1 +:040A520000000000A0 +:040A5300000000009F +:040A5400000000009E +:040A5500000000009D +:040A5600000000009C +:040A5700000000009B +:040A5800000000009A +:040A59000000000099 +:040A5A000000000098 +:040A5B000000000097 +:040A5C000000000096 +:040A5D000000000095 +:040A5E000000000094 +:040A5F000000000093 +:040A60000000000092 +:040A61000000000091 +:040A62000000000090 +:040A6300000000008F +:040A6400000000008E +:040A6500000000008D +:040A6600000000008C +:040A6700000000008B +:040A6800000000008A +:040A69000000000089 +:040A6A000000000088 +:040A6B000000000087 +:040A6C000000000086 +:040A6D000000000085 +:040A6E000000000084 +:040A6F000000000083 +:040A70000000000082 +:040A71000000000081 +:040A72000000000080 +:040A7300000000007F +:040A7400000000007E +:040A7500000000007D +:040A7600000000007C +:040A7700000000007B +:040A7800000000007A +:040A79000000000079 +:040A7A000000000078 +:040A7B000000000077 +:040A7C000000000076 +:040A7D000000000075 +:040A7E000000000074 +:040A7F000000000073 +:040A80000000000072 +:040A81000000000071 +:040A82000000000070 +:040A8300000000006F +:040A8400000000006E +:040A8500000000006D +:040A8600000000006C +:040A8700000000006B +:040A8800000000006A +:040A89000000000069 +:040A8A000000000068 +:040A8B000000000067 +:040A8C000000000066 +:040A8D000000000065 +:040A8E000000000064 +:040A8F000000000063 +:040A90000000000062 +:040A91000000000061 +:040A92000000000060 +:040A9300000000005F +:040A9400000000005E +:040A9500000000005D +:040A9600000000005C +:040A9700000000005B +:040A9800000000005A +:040A99000000000059 +:040A9A000000000058 +:040A9B000000000057 +:040A9C000000000056 +:040A9D000000000055 +:040A9E000000000054 +:040A9F000000000053 +:040AA0000000000052 +:040AA1000000000051 +:040AA2000000000050 +:040AA300000000004F +:040AA400000000004E +:040AA500000000004D +:040AA600000000004C +:040AA700000000004B +:040AA800000000004A +:040AA9000000000049 +:040AAA000000000048 +:040AAB000000000047 +:040AAC000000000046 +:040AAD000000000045 +:040AAE000000000044 +:040AAF000000000043 +:040AB0000000000042 +:040AB1000000000041 +:040AB2000000000040 +:040AB300000000003F +:040AB400000000003E +:040AB500000000003D +:040AB600000000003C +:040AB700000000003B +:040AB800000000003A +:040AB9000000000039 +:040ABA000000000038 +:040ABB000000000037 +:040ABC000000000036 +:040ABD000000000035 +:040ABE000000000034 +:040ABF000000000033 +:040AC0000000000032 +:040AC1000000000031 +:040AC2000000000030 +:040AC300000000002F +:040AC400000000002E +:040AC500000000002D +:040AC600000000002C +:040AC700000000002B +:040AC800000000002A +:040AC9000000000029 +:040ACA000000000028 +:040ACB000000000027 +:040ACC000000000026 +:040ACD000000000025 +:040ACE000000000024 +:040ACF000000000023 +:040AD0000000000022 +:040AD1000000000021 +:040AD2000000000020 +:040AD300000000001F +:040AD400000000001E +:040AD500000000001D +:040AD600000000001C +:040AD700000000001B +:040AD800000000001A +:040AD9000000000019 +:040ADA000000000018 +:040ADB000000000017 +:040ADC000000000016 +:040ADD000000000015 +:040ADE000000000014 +:040ADF000000000013 +:040AE0000000000012 +:040AE1000000000011 +:040AE2000000000010 +:040AE300000000000F +:040AE400000000000E +:040AE500000000000D +:040AE600000000000C +:040AE700000000000B +:040AE800000000000A +:040AE9000000000009 +:040AEA000000000008 +:040AEB000000000007 +:040AEC000000000006 +:040AED000000000005 +:040AEE000000000004 +:040AEF000000000003 +:040AF0000000000002 +:040AF1000000000001 +:040AF2000000000000 +:040AF30000000000FF +:040AF40000000000FE +:040AF50000000000FD +:040AF60000000000FC +:040AF70000000000FB +:040AF80000000000FA +:040AF90000000000F9 +:040AFA0000000000F8 +:040AFB0000000000F7 +:040AFC0000000000F6 +:040AFD0000000000F5 +:040AFE0000000000F4 +:040AFF0000000000F3 +:040B000000000000F1 +:040B010000000000F0 +:040B020000000000EF +:040B030000000000EE +:040B040000000000ED +:040B050000000000EC +:040B060000000000EB +:040B070000000000EA +:040B080000000000E9 +:040B090000000000E8 +:040B0A0000000000E7 +:040B0B0000000000E6 +:040B0C0000000000E5 +:040B0D0000000000E4 +:040B0E0000000000E3 +:040B0F0000000000E2 +:040B100000000000E1 +:040B110000000000E0 +:040B120000000000DF +:040B130000000000DE +:040B140000000000DD +:040B150000000000DC +:040B160000000000DB +:040B170000000000DA +:040B180000000000D9 +:040B190000000000D8 +:040B1A0000000000D7 +:040B1B0000000000D6 +:040B1C0000000000D5 +:040B1D0000000000D4 +:040B1E0000000000D3 +:040B1F0000000000D2 +:040B200000000000D1 +:040B210000000000D0 +:040B220000000000CF +:040B230000000000CE +:040B240000000000CD +:040B250000000000CC +:040B260000000000CB +:040B270000000000CA +:040B280000000000C9 +:040B290000000000C8 +:040B2A0000000000C7 +:040B2B0000000000C6 +:040B2C0000000000C5 +:040B2D0000000000C4 +:040B2E0000000000C3 +:040B2F0000000000C2 +:040B300000000000C1 +:040B310000000000C0 +:040B320000000000BF +:040B330000000000BE +:040B340000000000BD +:040B350000000000BC +:040B360000000000BB +:040B370000000000BA +:040B380000000000B9 +:040B390000000000B8 +:040B3A0000000000B7 +:040B3B0000000000B6 +:040B3C0000000000B5 +:040B3D0000000000B4 +:040B3E0000000000B3 +:040B3F0000000000B2 +:040B400000000000B1 +:040B410000000000B0 +:040B420000000000AF +:040B430000000000AE +:040B440000000000AD +:040B450000000000AC +:040B460000000000AB +:040B470000000000AA +:040B480000000000A9 +:040B490000000000A8 +:040B4A0000000000A7 +:040B4B0000000000A6 +:040B4C0000000000A5 +:040B4D0000000000A4 +:040B4E0000000000A3 +:040B4F0000000000A2 +:040B500000000000A1 +:040B510000000000A0 +:040B5200000000009F +:040B5300000000009E +:040B5400000000009D +:040B5500000000009C +:040B5600000000009B +:040B5700000000009A +:040B58000000000099 +:040B59000000000098 +:040B5A000000000097 +:040B5B000000000096 +:040B5C000000000095 +:040B5D000000000094 +:040B5E000000000093 +:040B5F000000000092 +:040B60000000000091 +:040B61000000000090 +:040B6200000000008F +:040B6300000000008E +:040B6400000000008D +:040B6500000000008C +:040B6600000000008B +:040B6700000000008A +:040B68000000000089 +:040B69000000000088 +:040B6A000000000087 +:040B6B000000000086 +:040B6C000000000085 +:040B6D000000000084 +:040B6E000000000083 +:040B6F000000000082 +:040B70000000000081 +:040B71000000000080 +:040B7200000000007F +:040B7300000000007E +:040B7400000000007D +:040B7500000000007C +:040B7600000000007B +:040B7700000000007A +:040B78000000000079 +:040B79000000000078 +:040B7A000000000077 +:040B7B000000000076 +:040B7C000000000075 +:040B7D000000000074 +:040B7E000000000073 +:040B7F000000000072 +:040B80000000000071 +:040B81000000000070 +:040B8200000000006F +:040B8300000000006E +:040B8400000000006D +:040B8500000000006C +:040B8600000000006B +:040B8700000000006A +:040B88000000000069 +:040B89000000000068 +:040B8A000000000067 +:040B8B000000000066 +:040B8C000000000065 +:040B8D000000000064 +:040B8E000000000063 +:040B8F000000000062 +:040B90000000000061 +:040B91000000000060 +:040B9200000000005F +:040B9300000000005E +:040B9400000000005D +:040B9500000000005C +:040B9600000000005B +:040B9700000000005A +:040B98000000000059 +:040B99000000000058 +:040B9A000000000057 +:040B9B000000000056 +:040B9C000000000055 +:040B9D000000000054 +:040B9E000000000053 +:040B9F000000000052 +:040BA0000000000051 +:040BA1000000000050 +:040BA200000000004F +:040BA300000000004E +:040BA400000000004D +:040BA500000000004C +:040BA600000000004B +:040BA700000000004A +:040BA8000000000049 +:040BA9000000000048 +:040BAA000000000047 +:040BAB000000000046 +:040BAC000000000045 +:040BAD000000000044 +:040BAE000000000043 +:040BAF000000000042 +:040BB0000000000041 +:040BB1000000000040 +:040BB200000000003F +:040BB300000000003E +:040BB400000000003D +:040BB500000000003C +:040BB600000000003B +:040BB700000000003A +:040BB8000000000039 +:040BB9000000000038 +:040BBA000000000037 +:040BBB000000000036 +:040BBC000000000035 +:040BBD000000000034 +:040BBE000000000033 +:040BBF000000000032 +:040BC0000000000031 +:040BC1000000000030 +:040BC200000000002F +:040BC300000000002E +:040BC400000000002D +:040BC500000000002C +:040BC600000000002B +:040BC700000000002A +:040BC8000000000029 +:040BC9000000000028 +:040BCA000000000027 +:040BCB000000000026 +:040BCC000000000025 +:040BCD000000000024 +:040BCE000000000023 +:040BCF000000000022 +:040BD0000000000021 +:040BD1000000000020 +:040BD200000000001F +:040BD300000000001E +:040BD400000000001D +:040BD500000000001C +:040BD600000000001B +:040BD700000000001A +:040BD8000000000019 +:040BD9000000000018 +:040BDA000000000017 +:040BDB000000000016 +:040BDC000000000015 +:040BDD000000000014 +:040BDE000000000013 +:040BDF000000000012 +:040BE0000000000011 +:040BE1000000000010 +:040BE200000000000F +:040BE300000000000E +:040BE400000000000D +:040BE500000000000C +:040BE600000000000B +:040BE700000000000A +:040BE8000000000009 +:040BE9000000000008 +:040BEA000000000007 +:040BEB000000000006 +:040BEC000000000005 +:040BED000000000004 +:040BEE000000000003 +:040BEF000000000002 +:040BF0000000000001 +:040BF1000000000000 +:040BF20000000000FF +:040BF30000000000FE +:040BF40000000000FD +:040BF50000000000FC +:040BF60000000000FB +:040BF70000000000FA +:040BF80000000000F9 +:040BF90000000000F8 +:040BFA0000000000F7 +:040BFB0000000000F6 +:040BFC0000000000F5 +:040BFD0000000000F4 +:040BFE0000000000F3 +:040BFF0000000000F2 +:040C000000000000F0 +:040C010000000000EF +:040C020000000000EE +:040C030000000000ED +:040C040000000000EC +:040C050000000000EB +:040C060000000000EA +:040C070000000000E9 +:040C080000000000E8 +:040C090000000000E7 +:040C0A0000000000E6 +:040C0B0000000000E5 +:040C0C0000000000E4 +:040C0D0000000000E3 +:040C0E0000000000E2 +:040C0F0000000000E1 +:040C100000000000E0 +:040C110000000000DF +:040C120000000000DE +:040C130000000000DD +:040C140000000000DC +:040C150000000000DB +:040C160000000000DA +:040C170000000000D9 +:040C180000000000D8 +:040C190000000000D7 +:040C1A0000000000D6 +:040C1B0000000000D5 +:040C1C0000000000D4 +:040C1D0000000000D3 +:040C1E0000000000D2 +:040C1F0000000000D1 +:040C200000000000D0 +:040C210000000000CF +:040C220000000000CE +:040C230000000000CD +:040C240000000000CC +:040C250000000000CB +:040C260000000000CA +:040C270000000000C9 +:040C280000000000C8 +:040C290000000000C7 +:040C2A0000000000C6 +:040C2B0000000000C5 +:040C2C0000000000C4 +:040C2D0000000000C3 +:040C2E0000000000C2 +:040C2F0000000000C1 +:040C300000000000C0 +:040C310000000000BF +:040C320000000000BE +:040C330000000000BD +:040C340000000000BC +:040C350000000000BB +:040C360000000000BA +:040C370000000000B9 +:040C380000000000B8 +:040C390000000000B7 +:040C3A0000000000B6 +:040C3B0000000000B5 +:040C3C0000000000B4 +:040C3D0000000000B3 +:040C3E0000000000B2 +:040C3F0000000000B1 +:040C400000000000B0 +:040C410000000000AF +:040C420000000000AE +:040C430000000000AD +:040C440000000000AC +:040C450000000000AB +:040C460000000000AA +:040C470000000000A9 +:040C480000000000A8 +:040C490000000000A7 +:040C4A0000000000A6 +:040C4B0000000000A5 +:040C4C0000000000A4 +:040C4D0000000000A3 +:040C4E0000000000A2 +:040C4F0000000000A1 +:040C500000000000A0 +:040C5100000000009F +:040C5200000000009E +:040C5300000000009D +:040C5400000000009C +:040C5500000000009B +:040C5600000000009A +:040C57000000000099 +:040C58000000000098 +:040C59000000000097 +:040C5A000000000096 +:040C5B000000000095 +:040C5C000000000094 +:040C5D000000000093 +:040C5E000000000092 +:040C5F000000000091 +:040C60000000000090 +:040C6100000000008F +:040C6200000000008E +:040C6300000000008D +:040C6400000000008C +:040C6500000000008B +:040C6600000000008A +:040C67000000000089 +:040C68000000000088 +:040C69000000000087 +:040C6A000000000086 +:040C6B000000000085 +:040C6C000000000084 +:040C6D000000000083 +:040C6E000000000082 +:040C6F000000000081 +:040C70000000000080 +:040C7100000000007F +:040C7200000000007E +:040C7300000000007D +:040C7400000000007C +:040C7500000000007B +:040C7600000000007A +:040C77000000000079 +:040C78000000000078 +:040C79000000000077 +:040C7A000000000076 +:040C7B000000000075 +:040C7C000000000074 +:040C7D000000000073 +:040C7E000000000072 +:040C7F000000000071 +:040C80000000000070 +:040C8100000000006F +:040C8200000000006E +:040C8300000000006D +:040C8400000000006C +:040C8500000000006B +:040C8600000000006A +:040C87000000000069 +:040C88000000000068 +:040C89000000000067 +:040C8A000000000066 +:040C8B000000000065 +:040C8C000000000064 +:040C8D000000000063 +:040C8E000000000062 +:040C8F000000000061 +:040C90000000000060 +:040C9100000000005F +:040C9200000000005E +:040C9300000000005D +:040C9400000000005C +:040C9500000000005B +:040C9600000000005A +:040C97000000000059 +:040C98000000000058 +:040C99000000000057 +:040C9A000000000056 +:040C9B000000000055 +:040C9C000000000054 +:040C9D000000000053 +:040C9E000000000052 +:040C9F000000000051 +:040CA0000000000050 +:040CA100000000004F +:040CA200000000004E +:040CA300000000004D +:040CA400000000004C +:040CA500000000004B +:040CA600000000004A +:040CA7000000000049 +:040CA8000000000048 +:040CA9000000000047 +:040CAA000000000046 +:040CAB000000000045 +:040CAC000000000044 +:040CAD000000000043 +:040CAE000000000042 +:040CAF000000000041 +:040CB0000000000040 +:040CB100000000003F +:040CB200000000003E +:040CB300000000003D +:040CB400000000003C +:040CB500000000003B +:040CB600000000003A +:040CB7000000000039 +:040CB8000000000038 +:040CB9000000000037 +:040CBA000000000036 +:040CBB000000000035 +:040CBC000000000034 +:040CBD000000000033 +:040CBE000000000032 +:040CBF000000000031 +:040CC0000000000030 +:040CC100000000002F +:040CC200000000002E +:040CC300000000002D +:040CC400000000002C +:040CC500000000002B +:040CC600000000002A +:040CC7000000000029 +:040CC8000000000028 +:040CC9000000000027 +:040CCA000000000026 +:040CCB000000000025 +:040CCC000000000024 +:040CCD000000000023 +:040CCE000000000022 +:040CCF000000000021 +:040CD0000000000020 +:040CD100000000001F +:040CD200000000001E +:040CD300000000001D +:040CD400000000001C +:040CD500000000001B +:040CD600000000001A +:040CD7000000000019 +:040CD8000000000018 +:040CD9000000000017 +:040CDA000000000016 +:040CDB000000000015 +:040CDC000000000014 +:040CDD000000000013 +:040CDE000000000012 +:040CDF000000000011 +:040CE0000000000010 +:040CE100000000000F +:040CE200000000000E +:040CE300000000000D +:040CE400000000000C +:040CE500000000000B +:040CE600000000000A +:040CE7000000000009 +:040CE8000000000008 +:040CE9000000000007 +:040CEA000000000006 +:040CEB000000000005 +:040CEC000000000004 +:040CED000000000003 +:040CEE000000000002 +:040CEF000000000001 +:040CF0000000000000 +:040CF10000000000FF +:040CF20000000000FE +:040CF30000000000FD +:040CF40000000000FC +:040CF50000000000FB +:040CF60000000000FA +:040CF70000000000F9 +:040CF80000000000F8 +:040CF90000000000F7 +:040CFA0000000000F6 +:040CFB0000000000F5 +:040CFC0000000000F4 +:040CFD0000000000F3 +:040CFE0000000000F2 +:040CFF0000000000F1 +:040D000000000000EF +:040D010000000000EE +:040D020000000000ED +:040D030000000000EC +:040D040000000000EB +:040D050000000000EA +:040D060000000000E9 +:040D070000000000E8 +:040D080000000000E7 +:040D090000000000E6 +:040D0A0000000000E5 +:040D0B0000000000E4 +:040D0C0000000000E3 +:040D0D0000000000E2 +:040D0E0000000000E1 +:040D0F0000000000E0 +:040D100000000000DF +:040D110000000000DE +:040D120000000000DD +:040D130000000000DC +:040D140000000000DB +:040D150000000000DA +:040D160000000000D9 +:040D170000000000D8 +:040D180000000000D7 +:040D190000000000D6 +:040D1A0000000000D5 +:040D1B0000000000D4 +:040D1C0000000000D3 +:040D1D0000000000D2 +:040D1E0000000000D1 +:040D1F0000000000D0 +:040D200000000000CF +:040D210000000000CE +:040D220000000000CD +:040D230000000000CC +:040D240000000000CB +:040D250000000000CA +:040D260000000000C9 +:040D270000000000C8 +:040D280000000000C7 +:040D290000000000C6 +:040D2A0000000000C5 +:040D2B0000000000C4 +:040D2C0000000000C3 +:040D2D0000000000C2 +:040D2E0000000000C1 +:040D2F0000000000C0 +:040D300000000000BF +:040D310000000000BE +:040D320000000000BD +:040D330000000000BC +:040D340000000000BB +:040D350000000000BA +:040D360000000000B9 +:040D370000000000B8 +:040D380000000000B7 +:040D390000000000B6 +:040D3A0000000000B5 +:040D3B0000000000B4 +:040D3C0000000000B3 +:040D3D0000000000B2 +:040D3E0000000000B1 +:040D3F0000000000B0 +:040D400000000000AF +:040D410000000000AE +:040D420000000000AD +:040D430000000000AC +:040D440000000000AB +:040D450000000000AA +:040D460000000000A9 +:040D470000000000A8 +:040D480000000000A7 +:040D490000000000A6 +:040D4A0000000000A5 +:040D4B0000000000A4 +:040D4C0000000000A3 +:040D4D0000000000A2 +:040D4E0000000000A1 +:040D4F0000000000A0 +:040D5000000000009F +:040D5100000000009E +:040D5200000000009D +:040D5300000000009C +:040D5400000000009B +:040D5500000000009A +:040D56000000000099 +:040D57000000000098 +:040D58000000000097 +:040D59000000000096 +:040D5A000000000095 +:040D5B000000000094 +:040D5C000000000093 +:040D5D000000000092 +:040D5E000000000091 +:040D5F000000000090 +:040D6000000000008F +:040D6100000000008E +:040D6200000000008D +:040D6300000000008C +:040D6400000000008B +:040D6500000000008A +:040D66000000000089 +:040D67000000000088 +:040D68000000000087 +:040D69000000000086 +:040D6A000000000085 +:040D6B000000000084 +:040D6C000000000083 +:040D6D000000000082 +:040D6E000000000081 +:040D6F000000000080 +:040D7000000000007F +:040D7100000000007E +:040D7200000000007D +:040D7300000000007C +:040D7400000000007B +:040D7500000000007A +:040D76000000000079 +:040D77000000000078 +:040D78000000000077 +:040D79000000000076 +:040D7A000000000075 +:040D7B000000000074 +:040D7C000000000073 +:040D7D000000000072 +:040D7E000000000071 +:040D7F000000000070 +:040D8000000000006F +:040D8100000000006E +:040D8200000000006D +:040D8300000000006C +:040D8400000000006B +:040D8500000000006A +:040D86000000000069 +:040D87000000000068 +:040D88000000000067 +:040D89000000000066 +:040D8A000000000065 +:040D8B000000000064 +:040D8C000000000063 +:040D8D000000000062 +:040D8E000000000061 +:040D8F000000000060 +:040D9000000000005F +:040D9100000000005E +:040D9200000000005D +:040D9300000000005C +:040D9400000000005B +:040D9500000000005A +:040D96000000000059 +:040D97000000000058 +:040D98000000000057 +:040D99000000000056 +:040D9A000000000055 +:040D9B000000000054 +:040D9C000000000053 +:040D9D000000000052 +:040D9E000000000051 +:040D9F000000000050 +:040DA000000000004F +:040DA100000000004E +:040DA200000000004D +:040DA300000000004C +:040DA400000000004B +:040DA500000000004A +:040DA6000000000049 +:040DA7000000000048 +:040DA8000000000047 +:040DA9000000000046 +:040DAA000000000045 +:040DAB000000000044 +:040DAC000000000043 +:040DAD000000000042 +:040DAE000000000041 +:040DAF000000000040 +:040DB000000000003F +:040DB100000000003E +:040DB200000000003D +:040DB300000000003C +:040DB400000000003B +:040DB500000000003A +:040DB6000000000039 +:040DB7000000000038 +:040DB8000000000037 +:040DB9000000000036 +:040DBA000000000035 +:040DBB000000000034 +:040DBC000000000033 +:040DBD000000000032 +:040DBE000000000031 +:040DBF000000000030 +:040DC000000000002F +:040DC100000000002E +:040DC200000000002D +:040DC300000000002C +:040DC400000000002B +:040DC500000000002A +:040DC6000000000029 +:040DC7000000000028 +:040DC8000000000027 +:040DC9000000000026 +:040DCA000000000025 +:040DCB000000000024 +:040DCC000000000023 +:040DCD000000000022 +:040DCE000000000021 +:040DCF000000000020 +:040DD000000000001F +:040DD100000000001E +:040DD200000000001D +:040DD300000000001C +:040DD400000000001B +:040DD500000000001A +:040DD6000000000019 +:040DD7000000000018 +:040DD8000000000017 +:040DD9000000000016 +:040DDA000000000015 +:040DDB000000000014 +:040DDC000000000013 +:040DDD000000000012 +:040DDE000000000011 +:040DDF000000000010 +:040DE000000000000F +:040DE100000000000E +:040DE200000000000D +:040DE300000000000C +:040DE400000000000B +:040DE500000000000A +:040DE6000000000009 +:040DE7000000000008 +:040DE8000000000007 +:040DE9000000000006 +:040DEA000000000005 +:040DEB000000000004 +:040DEC000000000003 +:040DED000000000002 +:040DEE000000000001 +:040DEF000000000000 +:040DF00000000000FF +:040DF10000000000FE +:040DF20000000000FD +:040DF30000000000FC +:040DF40000000000FB +:040DF50000000000FA +:040DF60000000000F9 +:040DF70000000000F8 +:040DF80000000000F7 +:040DF90000000000F6 +:040DFA0000000000F5 +:040DFB0000000000F4 +:040DFC0000000000F3 +:040DFD0000000000F2 +:040DFE0000000000F1 +:040DFF0000000000F0 +:040E000000000000EE +:040E010000000000ED +:040E020000000000EC +:040E030000000000EB +:040E040000000000EA +:040E050000000000E9 +:040E060000000000E8 +:040E070000000000E7 +:040E080000000000E6 +:040E090000000000E5 +:040E0A0000000000E4 +:040E0B0000000000E3 +:040E0C0000000000E2 +:040E0D0000000000E1 +:040E0E0000000000E0 +:040E0F0000000000DF +:040E100000000000DE +:040E110000000000DD +:040E120000000000DC +:040E130000000000DB +:040E140000000000DA +:040E150000000000D9 +:040E160000000000D8 +:040E170000000000D7 +:040E180000000000D6 +:040E190000000000D5 +:040E1A0000000000D4 +:040E1B0000000000D3 +:040E1C0000000000D2 +:040E1D0000000000D1 +:040E1E0000000000D0 +:040E1F0000000000CF +:040E200000000000CE +:040E210000000000CD +:040E220000000000CC +:040E230000000000CB +:040E240000000000CA +:040E250000000000C9 +:040E260000000000C8 +:040E270000000000C7 +:040E280000000000C6 +:040E290000000000C5 +:040E2A0000000000C4 +:040E2B0000000000C3 +:040E2C0000000000C2 +:040E2D0000000000C1 +:040E2E0000000000C0 +:040E2F0000000000BF +:040E300000000000BE +:040E310000000000BD +:040E320000000000BC +:040E330000000000BB +:040E340000000000BA +:040E350000000000B9 +:040E360000000000B8 +:040E370000000000B7 +:040E380000000000B6 +:040E390000000000B5 +:040E3A0000000000B4 +:040E3B0000000000B3 +:040E3C0000000000B2 +:040E3D0000000000B1 +:040E3E0000000000B0 +:040E3F0000000000AF +:040E400000000000AE +:040E410000000000AD +:040E420000000000AC +:040E430000000000AB +:040E440000000000AA +:040E450000000000A9 +:040E460000000000A8 +:040E470000000000A7 +:040E480000000000A6 +:040E490000000000A5 +:040E4A0000000000A4 +:040E4B0000000000A3 +:040E4C0000000000A2 +:040E4D0000000000A1 +:040E4E0000000000A0 +:040E4F00000000009F +:040E5000000000009E +:040E5100000000009D +:040E5200000000009C +:040E5300000000009B +:040E5400000000009A +:040E55000000000099 +:040E56000000000098 +:040E57000000000097 +:040E58000000000096 +:040E59000000000095 +:040E5A000000000094 +:040E5B000000000093 +:040E5C000000000092 +:040E5D000000000091 +:040E5E000000000090 +:040E5F00000000008F +:040E6000000000008E +:040E6100000000008D +:040E6200000000008C +:040E6300000000008B +:040E6400000000008A +:040E65000000000089 +:040E66000000000088 +:040E67000000000087 +:040E68000000000086 +:040E69000000000085 +:040E6A000000000084 +:040E6B000000000083 +:040E6C000000000082 +:040E6D000000000081 +:040E6E000000000080 +:040E6F00000000007F +:040E7000000000007E +:040E7100000000007D +:040E7200000000007C +:040E7300000000007B +:040E7400000000007A +:040E75000000000079 +:040E76000000000078 +:040E77000000000077 +:040E78000000000076 +:040E79000000000075 +:040E7A000000000074 +:040E7B000000000073 +:040E7C000000000072 +:040E7D000000000071 +:040E7E000000000070 +:040E7F00000000006F +:040E8000000000006E +:040E8100000000006D +:040E8200000000006C +:040E8300000000006B +:040E8400000000006A +:040E85000000000069 +:040E86000000000068 +:040E87000000000067 +:040E88000000000066 +:040E89000000000065 +:040E8A000000000064 +:040E8B000000000063 +:040E8C000000000062 +:040E8D000000000061 +:040E8E000000000060 +:040E8F00000000005F +:040E9000000000005E +:040E9100000000005D +:040E9200000000005C +:040E9300000000005B +:040E9400000000005A +:040E95000000000059 +:040E96000000000058 +:040E97000000000057 +:040E98000000000056 +:040E99000000000055 +:040E9A000000000054 +:040E9B000000000053 +:040E9C000000000052 +:040E9D000000000051 +:040E9E000000000050 +:040E9F00000000004F +:040EA000000000004E +:040EA100000000004D +:040EA200000000004C +:040EA300000000004B +:040EA400000000004A +:040EA5000000000049 +:040EA6000000000048 +:040EA7000000000047 +:040EA8000000000046 +:040EA9000000000045 +:040EAA000000000044 +:040EAB000000000043 +:040EAC000000000042 +:040EAD000000000041 +:040EAE000000000040 +:040EAF00000000003F +:040EB000000000003E +:040EB100000000003D +:040EB200000000003C +:040EB300000000003B +:040EB400000000003A +:040EB5000000000039 +:040EB6000000000038 +:040EB7000000000037 +:040EB8000000000036 +:040EB9000000000035 +:040EBA000000000034 +:040EBB000000000033 +:040EBC000000000032 +:040EBD000000000031 +:040EBE000000000030 +:040EBF00000000002F +:040EC000000000002E +:040EC100000000002D +:040EC200000000002C +:040EC300000000002B +:040EC400000000002A +:040EC5000000000029 +:040EC6000000000028 +:040EC7000000000027 +:040EC8000000000026 +:040EC9000000000025 +:040ECA000000000024 +:040ECB000000000023 +:040ECC000000000022 +:040ECD000000000021 +:040ECE000000000020 +:040ECF00000000001F +:040ED000000000001E +:040ED100000000001D +:040ED200000000001C +:040ED300000000001B +:040ED400000000001A +:040ED5000000000019 +:040ED6000000000018 +:040ED7000000000017 +:040ED8000000000016 +:040ED9000000000015 +:040EDA000000000014 +:040EDB000000000013 +:040EDC000000000012 +:040EDD000000000011 +:040EDE000000000010 +:040EDF00000000000F +:040EE000000000000E +:040EE100000000000D +:040EE200000000000C +:040EE300000000000B +:040EE400000000000A +:040EE5000000000009 +:040EE6000000000008 +:040EE7000000000007 +:040EE8000000000006 +:040EE9000000000005 +:040EEA000000000004 +:040EEB000000000003 +:040EEC000000000002 +:040EED000000000001 +:040EEE000000000000 +:040EEF0000000000FF +:040EF00000000000FE +:040EF10000000000FD +:040EF20000000000FC +:040EF30000000000FB +:040EF40000000000FA +:040EF50000000000F9 +:040EF60000000000F8 +:040EF70000000000F7 +:040EF80000000000F6 +:040EF90000000000F5 +:040EFA0000000000F4 +:040EFB0000000000F3 +:040EFC0000000000F2 +:040EFD0000000000F1 +:040EFE0000000000F0 +:040EFF0000000000EF +:040F000000000000ED +:040F010000000000EC +:040F020000000000EB +:040F030000000000EA +:040F040000000000E9 +:040F050000000000E8 +:040F060000000000E7 +:040F070000000000E6 +:040F080000000000E5 +:040F090000000000E4 +:040F0A0000000000E3 +:040F0B0000000000E2 +:040F0C0000000000E1 +:040F0D0000000000E0 +:040F0E0000000000DF +:040F0F0000000000DE +:040F100000000000DD +:040F110000000000DC +:040F120000000000DB +:040F130000000000DA +:040F140000000000D9 +:040F150000000000D8 +:040F160000000000D7 +:040F170000000000D6 +:040F180000000000D5 +:040F190000000000D4 +:040F1A0000000000D3 +:040F1B0000000000D2 +:040F1C0000000000D1 +:040F1D0000000000D0 +:040F1E0000000000CF +:040F1F0000000000CE +:040F200000000000CD +:040F210000000000CC +:040F220000000000CB +:040F230000000000CA +:040F240000000000C9 +:040F250000000000C8 +:040F260000000000C7 +:040F270000000000C6 +:040F280000000000C5 +:040F290000000000C4 +:040F2A0000000000C3 +:040F2B0000000000C2 +:040F2C0000000000C1 +:040F2D0000000000C0 +:040F2E0000000000BF +:040F2F0000000000BE +:040F300000000000BD +:040F310000000000BC +:040F320000000000BB +:040F330000000000BA +:040F340000000000B9 +:040F350000000000B8 +:040F360000000000B7 +:040F370000000000B6 +:040F380000000000B5 +:040F390000000000B4 +:040F3A0000000000B3 +:040F3B0000000000B2 +:040F3C0000000000B1 +:040F3D0000000000B0 +:040F3E0000000000AF +:040F3F0000000000AE +:040F400000000000AD +:040F410000000000AC +:040F420000000000AB +:040F430000000000AA +:040F440000000000A9 +:040F450000000000A8 +:040F460000000000A7 +:040F470000000000A6 +:040F480000000000A5 +:040F490000000000A4 +:040F4A0000000000A3 +:040F4B0000000000A2 +:040F4C0000000000A1 +:040F4D0000000000A0 +:040F4E00000000009F +:040F4F00000000009E +:040F5000000000009D +:040F5100000000009C +:040F5200000000009B +:040F5300000000009A +:040F54000000000099 +:040F55000000000098 +:040F56000000000097 +:040F57000000000096 +:040F58000000000095 +:040F59000000000094 +:040F5A000000000093 +:040F5B000000000092 +:040F5C000000000091 +:040F5D000000000090 +:040F5E00000000008F +:040F5F00000000008E +:040F6000000000008D +:040F6100000000008C +:040F6200000000008B +:040F6300000000008A +:040F64000000000089 +:040F65000000000088 +:040F66000000000087 +:040F67000000000086 +:040F68000000000085 +:040F69000000000084 +:040F6A000000000083 +:040F6B000000000082 +:040F6C000000000081 +:040F6D000000000080 +:040F6E00000000007F +:040F6F00000000007E +:040F7000000000007D +:040F7100000000007C +:040F7200000000007B +:040F7300000000007A +:040F74000000000079 +:040F75000000000078 +:040F76000000000077 +:040F77000000000076 +:040F78000000000075 +:040F79000000000074 +:040F7A000000000073 +:040F7B000000000072 +:040F7C000000000071 +:040F7D000000000070 +:040F7E00000000006F +:040F7F00000000006E +:040F8000000000006D +:040F8100000000006C +:040F8200000000006B +:040F8300000000006A +:040F84000000000069 +:040F85000000000068 +:040F86000000000067 +:040F87000000000066 +:040F88000000000065 +:040F89000000000064 +:040F8A000000000063 +:040F8B000000000062 +:040F8C000000000061 +:040F8D000000000060 +:040F8E00000000005F +:040F8F00000000005E +:040F9000000000005D +:040F9100000000005C +:040F9200000000005B +:040F9300000000005A +:040F94000000000059 +:040F95000000000058 +:040F96000000000057 +:040F97000000000056 +:040F98000000000055 +:040F99000000000054 +:040F9A000000000053 +:040F9B000000000052 +:040F9C000000000051 +:040F9D000000000050 +:040F9E00000000004F +:040F9F00000000004E +:040FA000000000004D +:040FA100000000004C +:040FA200000000004B +:040FA300000000004A +:040FA4000000000049 +:040FA5000000000048 +:040FA6000000000047 +:040FA7000000000046 +:040FA8000000000045 +:040FA9000000000044 +:040FAA000000000043 +:040FAB000000000042 +:040FAC000000000041 +:040FAD000000000040 +:040FAE00000000003F +:040FAF00000000003E +:040FB000000000003D +:040FB100000000003C +:040FB200000000003B +:040FB300000000003A +:040FB4000000000039 +:040FB5000000000038 +:040FB6000000000037 +:040FB7000000000036 +:040FB8000000000035 +:040FB9000000000034 +:040FBA000000000033 +:040FBB000000000032 +:040FBC000000000031 +:040FBD000000000030 +:040FBE00000000002F +:040FBF00000000002E +:040FC000000000002D +:040FC100000000002C +:040FC200000000002B +:040FC300000000002A +:040FC4000000000029 +:040FC5000000000028 +:040FC6000000000027 +:040FC7000000000026 +:040FC8000000000025 +:040FC9000000000024 +:040FCA000000000023 +:040FCB000000000022 +:040FCC000000000021 +:040FCD000000000020 +:040FCE00000000001F +:040FCF00000000001E +:040FD000000000001D +:040FD100000000001C +:040FD200000000001B +:040FD300000000001A +:040FD4000000000019 +:040FD5000000000018 +:040FD6000000000017 +:040FD7000000000016 +:040FD8000000000015 +:040FD9000000000014 +:040FDA000000000013 +:040FDB000000000012 +:040FDC000000000011 +:040FDD000000000010 +:040FDE00000000000F +:040FDF00000000000E +:040FE000000000000D +:040FE100000000000C +:040FE200000000000B +:040FE300000000000A +:040FE4000000000009 +:040FE5000000000008 +:040FE6000000000007 +:040FE7000000000006 +:040FE8000000000005 +:040FE9000000000004 +:040FEA000000000003 +:040FEB000000000002 +:040FEC000000000001 +:040FED000000000000 +:040FEE0000000000FF +:040FEF0000000000FE +:040FF00000000000FD +:040FF10000000000FC +:040FF20000000000FB +:040FF30000000000FA +:040FF40000000000F9 +:040FF50000000000F8 +:040FF60000000000F7 +:040FF70000000000F6 +:040FF80000000000F5 +:040FF90000000000F4 +:040FFA0000000000F3 +:040FFB0000000000F2 +:040FFC0000000000F1 +:040FFD0000000000F0 +:040FFE0000000000EF +:040FFF0000000000EE +:0410000000000000EC +:0410010000000000EB +:0410020000000000EA +:0410030000000000E9 +:0410040000000000E8 +:0410050000000000E7 +:0410060000000000E6 +:0410070000000000E5 +:0410080000000000E4 +:0410090000000000E3 +:04100A0000000000E2 +:04100B0000000000E1 +:04100C0000000000E0 +:04100D0000000000DF +:04100E0000000000DE +:04100F0000000000DD +:0410100000000000DC +:0410110000000000DB +:0410120000000000DA +:0410130000000000D9 +:0410140000000000D8 +:0410150000000000D7 +:0410160000000000D6 +:0410170000000000D5 +:0410180000000000D4 +:0410190000000000D3 +:04101A0000000000D2 +:04101B0000000000D1 +:04101C0000000000D0 +:04101D0000000000CF +:04101E0000000000CE +:04101F0000000000CD +:0410200000000000CC +:0410210000000000CB +:0410220000000000CA +:0410230000000000C9 +:0410240000000000C8 +:0410250000000000C7 +:0410260000000000C6 +:0410270000000000C5 +:0410280000000000C4 +:0410290000000000C3 +:04102A0000000000C2 +:04102B0000000000C1 +:04102C0000000000C0 +:04102D0000000000BF +:04102E0000000000BE +:04102F0000000000BD +:0410300000000000BC +:0410310000000000BB +:0410320000000000BA +:0410330000000000B9 +:0410340000000000B8 +:0410350000000000B7 +:0410360000000000B6 +:0410370000000000B5 +:0410380000000000B4 +:0410390000000000B3 +:04103A0000000000B2 +:04103B0000000000B1 +:04103C0000000000B0 +:04103D0000000000AF +:04103E0000000000AE +:04103F0000000000AD +:0410400000000000AC +:0410410000000000AB +:0410420000000000AA +:0410430000000000A9 +:0410440000000000A8 +:0410450000000000A7 +:0410460000000000A6 +:0410470000000000A5 +:0410480000000000A4 +:0410490000000000A3 +:04104A0000000000A2 +:04104B0000000000A1 +:04104C0000000000A0 +:04104D00000000009F +:04104E00000000009E +:04104F00000000009D +:04105000000000009C +:04105100000000009B +:04105200000000009A +:041053000000000099 +:041054000000000098 +:041055000000000097 +:041056000000000096 +:041057000000000095 +:041058000000000094 +:041059000000000093 +:04105A000000000092 +:04105B000000000091 +:04105C000000000090 +:04105D00000000008F +:04105E00000000008E +:04105F00000000008D +:04106000000000008C +:04106100000000008B +:04106200000000008A +:041063000000000089 +:041064000000000088 +:041065000000000087 +:041066000000000086 +:041067000000000085 +:041068000000000084 +:041069000000000083 +:04106A000000000082 +:04106B000000000081 +:04106C000000000080 +:04106D00000000007F +:04106E00000000007E +:04106F00000000007D +:04107000000000007C +:04107100000000007B +:04107200000000007A +:041073000000000079 +:041074000000000078 +:041075000000000077 +:041076000000000076 +:041077000000000075 +:041078000000000074 +:041079000000000073 +:04107A000000000072 +:04107B000000000071 +:04107C000000000070 +:04107D00000000006F +:04107E00000000006E +:04107F00000000006D +:04108000000000006C +:04108100000000006B +:04108200000000006A +:041083000000000069 +:041084000000000068 +:041085000000000067 +:041086000000000066 +:041087000000000065 +:041088000000000064 +:041089000000000063 +:04108A000000000062 +:04108B000000000061 +:04108C000000000060 +:04108D00000000005F +:04108E00000000005E +:04108F00000000005D +:04109000000000005C +:04109100000000005B +:04109200000000005A +:041093000000000059 +:041094000000000058 +:041095000000000057 +:041096000000000056 +:041097000000000055 +:041098000000000054 +:041099000000000053 +:04109A000000000052 +:04109B000000000051 +:04109C000000000050 +:04109D00000000004F +:04109E00000000004E +:04109F00000000004D +:0410A000000000004C +:0410A100000000004B +:0410A200000000004A +:0410A3000000000049 +:0410A4000000000048 +:0410A5000000000047 +:0410A6000000000046 +:0410A7000000000045 +:0410A8000000000044 +:0410A9000000000043 +:0410AA000000000042 +:0410AB000000000041 +:0410AC000000000040 +:0410AD00000000003F +:0410AE00000000003E +:0410AF00000000003D +:0410B000000000003C +:0410B100000000003B +:0410B200000000003A +:0410B3000000000039 +:0410B4000000000038 +:0410B5000000000037 +:0410B6000000000036 +:0410B7000000000035 +:0410B8000000000034 +:0410B9000000000033 +:0410BA000000000032 +:0410BB000000000031 +:0410BC000000000030 +:0410BD00000000002F +:0410BE00000000002E +:0410BF00000000002D +:0410C000000000002C +:0410C100000000002B +:0410C200000000002A +:0410C3000000000029 +:0410C4000000000028 +:0410C5000000000027 +:0410C6000000000026 +:0410C7000000000025 +:0410C8000000000024 +:0410C9000000000023 +:0410CA000000000022 +:0410CB000000000021 +:0410CC000000000020 +:0410CD00000000001F +:0410CE00000000001E +:0410CF00000000001D +:0410D000000000001C +:0410D100000000001B +:0410D200000000001A +:0410D3000000000019 +:0410D4000000000018 +:0410D5000000000017 +:0410D6000000000016 +:0410D7000000000015 +:0410D8000000000014 +:0410D9000000000013 +:0410DA000000000012 +:0410DB000000000011 +:0410DC000000000010 +:0410DD00000000000F +:0410DE00000000000E +:0410DF00000000000D +:0410E000000000000C +:0410E100000000000B +:0410E200000000000A +:0410E3000000000009 +:0410E4000000000008 +:0410E5000000000007 +:0410E6000000000006 +:0410E7000000000005 +:0410E8000000000004 +:0410E9000000000003 +:0410EA000000000002 +:0410EB000000000001 +:0410EC000000000000 +:0410ED0000000000FF +:0410EE0000000000FE +:0410EF0000000000FD +:0410F00000000000FC +:0410F10000000000FB +:0410F20000000000FA +:0410F30000000000F9 +:0410F40000000000F8 +:0410F50000000000F7 +:0410F60000000000F6 +:0410F70000000000F5 +:0410F80000000000F4 +:0410F90000000000F3 +:0410FA0000000000F2 +:0410FB0000000000F1 +:0410FC0000000000F0 +:0410FD0000000000EF +:0410FE0000000000EE +:0410FF0000000000ED +:0411000000000000EB +:0411010000000000EA +:0411020000000000E9 +:0411030000000000E8 +:0411040000000000E7 +:0411050000000000E6 +:0411060000000000E5 +:0411070000000000E4 +:0411080000000000E3 +:0411090000000000E2 +:04110A0000000000E1 +:04110B0000000000E0 +:04110C0000000000DF +:04110D0000000000DE +:04110E0000000000DD +:04110F0000000000DC +:0411100000000000DB +:0411110000000000DA +:0411120000000000D9 +:0411130000000000D8 +:0411140000000000D7 +:0411150000000000D6 +:0411160000000000D5 +:0411170000000000D4 +:0411180000000000D3 +:0411190000000000D2 +:04111A0000000000D1 +:04111B0000000000D0 +:04111C0000000000CF +:04111D0000000000CE +:04111E0000000000CD +:04111F0000000000CC +:0411200000000000CB +:0411210000000000CA +:0411220000000000C9 +:0411230000000000C8 +:0411240000000000C7 +:0411250000000000C6 +:0411260000000000C5 +:0411270000000000C4 +:0411280000000000C3 +:0411290000000000C2 +:04112A0000000000C1 +:04112B0000000000C0 +:04112C0000000000BF +:04112D0000000000BE +:04112E0000000000BD +:04112F0000000000BC +:0411300000000000BB +:0411310000000000BA +:0411320000000000B9 +:0411330000000000B8 +:0411340000000000B7 +:0411350000000000B6 +:0411360000000000B5 +:0411370000000000B4 +:0411380000000000B3 +:0411390000000000B2 +:04113A0000000000B1 +:04113B0000000000B0 +:04113C0000000000AF +:04113D0000000000AE +:04113E0000000000AD +:04113F0000000000AC +:0411400000000000AB +:0411410000000000AA +:0411420000000000A9 +:0411430000000000A8 +:0411440000000000A7 +:0411450000000000A6 +:0411460000000000A5 +:0411470000000000A4 +:0411480000000000A3 +:0411490000000000A2 +:04114A0000000000A1 +:04114B0000000000A0 +:04114C00000000009F +:04114D00000000009E +:04114E00000000009D +:04114F00000000009C +:04115000000000009B +:04115100000000009A +:041152000000000099 +:041153000000000098 +:041154000000000097 +:041155000000000096 +:041156000000000095 +:041157000000000094 +:041158000000000093 +:041159000000000092 +:04115A000000000091 +:04115B000000000090 +:04115C00000000008F +:04115D00000000008E +:04115E00000000008D +:04115F00000000008C +:04116000000000008B +:04116100000000008A +:041162000000000089 +:041163000000000088 +:041164000000000087 +:041165000000000086 +:041166000000000085 +:041167000000000084 +:041168000000000083 +:041169000000000082 +:04116A000000000081 +:04116B000000000080 +:04116C00000000007F +:04116D00000000007E +:04116E00000000007D +:04116F00000000007C +:04117000000000007B +:04117100000000007A +:041172000000000079 +:041173000000000078 +:041174000000000077 +:041175000000000076 +:041176000000000075 +:041177000000000074 +:041178000000000073 +:041179000000000072 +:04117A000000000071 +:04117B000000000070 +:04117C00000000006F +:04117D00000000006E +:04117E00000000006D +:04117F00000000006C +:04118000000000006B +:04118100000000006A +:041182000000000069 +:041183000000000068 +:041184000000000067 +:041185000000000066 +:041186000000000065 +:041187000000000064 +:041188000000000063 +:041189000000000062 +:04118A000000000061 +:04118B000000000060 +:04118C00000000005F +:04118D00000000005E +:04118E00000000005D +:04118F00000000005C +:04119000000000005B +:04119100000000005A +:041192000000000059 +:041193000000000058 +:041194000000000057 +:041195000000000056 +:041196000000000055 +:041197000000000054 +:041198000000000053 +:041199000000000052 +:04119A000000000051 +:04119B000000000050 +:04119C00000000004F +:04119D00000000004E +:04119E00000000004D +:04119F00000000004C +:0411A000000000004B +:0411A100000000004A +:0411A2000000000049 +:0411A3000000000048 +:0411A4000000000047 +:0411A5000000000046 +:0411A6000000000045 +:0411A7000000000044 +:0411A8000000000043 +:0411A9000000000042 +:0411AA000000000041 +:0411AB000000000040 +:0411AC00000000003F +:0411AD00000000003E +:0411AE00000000003D +:0411AF00000000003C +:0411B000000000003B +:0411B100000000003A +:0411B2000000000039 +:0411B3000000000038 +:0411B4000000000037 +:0411B5000000000036 +:0411B6000000000035 +:0411B7000000000034 +:0411B8000000000033 +:0411B9000000000032 +:0411BA000000000031 +:0411BB000000000030 +:0411BC00000000002F +:0411BD00000000002E +:0411BE00000000002D +:0411BF00000000002C +:0411C000000000002B +:0411C100000000002A +:0411C2000000000029 +:0411C3000000000028 +:0411C4000000000027 +:0411C5000000000026 +:0411C6000000000025 +:0411C7000000000024 +:0411C8000000000023 +:0411C9000000000022 +:0411CA000000000021 +:0411CB000000000020 +:0411CC00000000001F +:0411CD00000000001E +:0411CE00000000001D +:0411CF00000000001C +:0411D000000000001B +:0411D100000000001A +:0411D2000000000019 +:0411D3000000000018 +:0411D4000000000017 +:0411D5000000000016 +:0411D6000000000015 +:0411D7000000000014 +:0411D8000000000013 +:0411D9000000000012 +:0411DA000000000011 +:0411DB000000000010 +:0411DC00000000000F +:0411DD00000000000E +:0411DE00000000000D +:0411DF00000000000C +:0411E000000000000B +:0411E100000000000A +:0411E2000000000009 +:0411E3000000000008 +:0411E4000000000007 +:0411E5000000000006 +:0411E6000000000005 +:0411E7000000000004 +:0411E8000000000003 +:0411E9000000000002 +:0411EA000000000001 +:0411EB000000000000 +:0411EC0000000000FF +:0411ED0000000000FE +:0411EE0000000000FD +:0411EF0000000000FC +:0411F00000000000FB +:0411F10000000000FA +:0411F20000000000F9 +:0411F30000000000F8 +:0411F40000000000F7 +:0411F50000000000F6 +:0411F60000000000F5 +:0411F70000000000F4 +:0411F80000000000F3 +:0411F90000000000F2 +:0411FA0000000000F1 +:0411FB0000000000F0 +:0411FC0000000000EF +:0411FD0000000000EE +:0411FE0000000000ED +:0411FF0000000000EC +:0412000000000000EA +:0412010000000000E9 +:0412020000000000E8 +:0412030000000000E7 +:0412040000000000E6 +:0412050000000000E5 +:0412060000000000E4 +:0412070000000000E3 +:0412080000000000E2 +:0412090000000000E1 +:04120A0000000000E0 +:04120B0000000000DF +:04120C0000000000DE +:04120D0000000000DD +:04120E0000000000DC +:04120F0000000000DB +:0412100000000000DA +:0412110000000000D9 +:0412120000000000D8 +:0412130000000000D7 +:0412140000000000D6 +:0412150000000000D5 +:0412160000000000D4 +:0412170000000000D3 +:0412180000000000D2 +:0412190000000000D1 +:04121A0000000000D0 +:04121B0000000000CF +:04121C0000000000CE +:04121D0000000000CD +:04121E0000000000CC +:04121F0000000000CB +:0412200000000000CA +:0412210000000000C9 +:0412220000000000C8 +:0412230000000000C7 +:0412240000000000C6 +:0412250000000000C5 +:0412260000000000C4 +:0412270000000000C3 +:0412280000000000C2 +:0412290000000000C1 +:04122A0000000000C0 +:04122B0000000000BF +:04122C0000000000BE +:04122D0000000000BD +:04122E0000000000BC +:04122F0000000000BB +:0412300000000000BA +:0412310000000000B9 +:0412320000000000B8 +:0412330000000000B7 +:0412340000000000B6 +:0412350000000000B5 +:0412360000000000B4 +:0412370000000000B3 +:0412380000000000B2 +:0412390000000000B1 +:04123A0000000000B0 +:04123B0000000000AF +:04123C0000000000AE +:04123D0000000000AD +:04123E0000000000AC +:04123F0000000000AB +:0412400000000000AA +:0412410000000000A9 +:0412420000000000A8 +:0412430000000000A7 +:0412440000000000A6 +:0412450000000000A5 +:0412460000000000A4 +:0412470000000000A3 +:0412480000000000A2 +:0412490000000000A1 +:04124A0000000000A0 +:04124B00000000009F +:04124C00000000009E +:04124D00000000009D +:04124E00000000009C +:04124F00000000009B +:04125000000000009A +:041251000000000099 +:041252000000000098 +:041253000000000097 +:041254000000000096 +:041255000000000095 +:041256000000000094 +:041257000000000093 +:041258000000000092 +:041259000000000091 +:04125A000000000090 +:04125B00000000008F +:04125C00000000008E +:04125D00000000008D +:04125E00000000008C +:04125F00000000008B +:04126000000000008A +:041261000000000089 +:041262000000000088 +:041263000000000087 +:041264000000000086 +:041265000000000085 +:041266000000000084 +:041267000000000083 +:041268000000000082 +:041269000000000081 +:04126A000000000080 +:04126B00000000007F +:04126C00000000007E +:04126D00000000007D +:04126E00000000007C +:04126F00000000007B +:04127000000000007A +:041271000000000079 +:041272000000000078 +:041273000000000077 +:041274000000000076 +:041275000000000075 +:041276000000000074 +:041277000000000073 +:041278000000000072 +:041279000000000071 +:04127A000000000070 +:04127B00000000006F +:04127C00000000006E +:04127D00000000006D +:04127E00000000006C +:04127F00000000006B +:04128000000000006A +:041281000000000069 +:041282000000000068 +:041283000000000067 +:041284000000000066 +:041285000000000065 +:041286000000000064 +:041287000000000063 +:041288000000000062 +:041289000000000061 +:04128A000000000060 +:04128B00000000005F +:04128C00000000005E +:04128D00000000005D +:04128E00000000005C +:04128F00000000005B +:04129000000000005A +:041291000000000059 +:041292000000000058 +:041293000000000057 +:041294000000000056 +:041295000000000055 +:041296000000000054 +:041297000000000053 +:041298000000000052 +:041299000000000051 +:04129A000000000050 +:04129B00000000004F +:04129C00000000004E +:04129D00000000004D +:04129E00000000004C +:04129F00000000004B +:0412A000000000004A +:0412A1000000000049 +:0412A2000000000048 +:0412A3000000000047 +:0412A4000000000046 +:0412A5000000000045 +:0412A6000000000044 +:0412A7000000000043 +:0412A8000000000042 +:0412A9000000000041 +:0412AA000000000040 +:0412AB00000000003F +:0412AC00000000003E +:0412AD00000000003D +:0412AE00000000003C +:0412AF00000000003B +:0412B000000000003A +:0412B1000000000039 +:0412B2000000000038 +:0412B3000000000037 +:0412B4000000000036 +:0412B5000000000035 +:0412B6000000000034 +:0412B7000000000033 +:0412B8000000000032 +:0412B9000000000031 +:0412BA000000000030 +:0412BB00000000002F +:0412BC00000000002E +:0412BD00000000002D +:0412BE00000000002C +:0412BF00000000002B +:0412C000000000002A +:0412C1000000000029 +:0412C2000000000028 +:0412C3000000000027 +:0412C4000000000026 +:0412C5000000000025 +:0412C6000000000024 +:0412C7000000000023 +:0412C8000000000022 +:0412C9000000000021 +:0412CA000000000020 +:0412CB00000000001F +:0412CC00000000001E +:0412CD00000000001D +:0412CE00000000001C +:0412CF00000000001B +:0412D000000000001A +:0412D1000000000019 +:0412D2000000000018 +:0412D3000000000017 +:0412D4000000000016 +:0412D5000000000015 +:0412D6000000000014 +:0412D7000000000013 +:0412D8000000000012 +:0412D9000000000011 +:0412DA000000000010 +:0412DB00000000000F +:0412DC00000000000E +:0412DD00000000000D +:0412DE00000000000C +:0412DF00000000000B +:0412E000000000000A +:0412E1000000000009 +:0412E2000000000008 +:0412E3000000000007 +:0412E4000000000006 +:0412E5000000000005 +:0412E6000000000004 +:0412E7000000000003 +:0412E8000000000002 +:0412E9000000000001 +:0412EA000000000000 +:0412EB0000000000FF +:0412EC0000000000FE +:0412ED0000000000FD +:0412EE0000000000FC +:0412EF0000000000FB +:0412F00000000000FA +:0412F10000000000F9 +:0412F20000000000F8 +:0412F30000000000F7 +:0412F40000000000F6 +:0412F50000000000F5 +:0412F60000000000F4 +:0412F70000000000F3 +:0412F80000000000F2 +:0412F90000000000F1 +:0412FA0000000000F0 +:0412FB0000000000EF +:0412FC0000000000EE +:0412FD0000000000ED +:0412FE0000000000EC +:0412FF0000000000EB +:0413000000000000E9 +:0413010000000000E8 +:0413020000000000E7 +:0413030000000000E6 +:0413040000000000E5 +:0413050000000000E4 +:0413060000000000E3 +:0413070000000000E2 +:0413080000000000E1 +:0413090000000000E0 +:04130A0000000000DF +:04130B0000000000DE +:04130C0000000000DD +:04130D0000000000DC +:04130E0000000000DB +:04130F0000000000DA +:0413100000000000D9 +:0413110000000000D8 +:0413120000000000D7 +:0413130000000000D6 +:0413140000000000D5 +:0413150000000000D4 +:0413160000000000D3 +:0413170000000000D2 +:0413180000000000D1 +:0413190000000000D0 +:04131A0000000000CF +:04131B0000000000CE +:04131C0000000000CD +:04131D0000000000CC +:04131E0000000000CB +:04131F0000000000CA +:0413200000000000C9 +:0413210000000000C8 +:0413220000000000C7 +:0413230000000000C6 +:0413240000000000C5 +:0413250000000000C4 +:0413260000000000C3 +:0413270000000000C2 +:0413280000000000C1 +:0413290000000000C0 +:04132A0000000000BF +:04132B0000000000BE +:04132C0000000000BD +:04132D0000000000BC +:04132E0000000000BB +:04132F0000000000BA +:0413300000000000B9 +:0413310000000000B8 +:0413320000000000B7 +:0413330000000000B6 +:0413340000000000B5 +:0413350000000000B4 +:0413360000000000B3 +:0413370000000000B2 +:0413380000000000B1 +:0413390000000000B0 +:04133A0000000000AF +:04133B0000000000AE +:04133C0000000000AD +:04133D0000000000AC +:04133E0000000000AB +:04133F0000000000AA +:0413400000000000A9 +:0413410000000000A8 +:0413420000000000A7 +:0413430000000000A6 +:0413440000000000A5 +:0413450000000000A4 +:0413460000000000A3 +:0413470000000000A2 +:0413480000000000A1 +:0413490000000000A0 +:04134A00000000009F +:04134B00000000009E +:04134C00000000009D +:04134D00000000009C +:04134E00000000009B +:04134F00000000009A +:041350000000000099 +:041351000000000098 +:041352000000000097 +:041353000000000096 +:041354000000000095 +:041355000000000094 +:041356000000000093 +:041357000000000092 +:041358000000000091 +:041359000000000090 +:04135A00000000008F +:04135B00000000008E +:04135C00000000008D +:04135D00000000008C +:04135E00000000008B +:04135F00000000008A +:041360000000000089 +:041361000000000088 +:041362000000000087 +:041363000000000086 +:041364000000000085 +:041365000000000084 +:041366000000000083 +:041367000000000082 +:041368000000000081 +:041369000000000080 +:04136A00000000007F +:04136B00000000007E +:04136C00000000007D +:04136D00000000007C +:04136E00000000007B +:04136F00000000007A +:041370000000000079 +:041371000000000078 +:041372000000000077 +:041373000000000076 +:041374000000000075 +:041375000000000074 +:041376000000000073 +:041377000000000072 +:041378000000000071 +:041379000000000070 +:04137A00000000006F +:04137B00000000006E +:04137C00000000006D +:04137D00000000006C +:04137E00000000006B +:04137F00000000006A +:041380000000000069 +:041381000000000068 +:041382000000000067 +:041383000000000066 +:041384000000000065 +:041385000000000064 +:041386000000000063 +:041387000000000062 +:041388000000000061 +:041389000000000060 +:04138A00000000005F +:04138B00000000005E +:04138C00000000005D +:04138D00000000005C +:04138E00000000005B +:04138F00000000005A +:041390000000000059 +:041391000000000058 +:041392000000000057 +:041393000000000056 +:041394000000000055 +:041395000000000054 +:041396000000000053 +:041397000000000052 +:041398000000000051 +:041399000000000050 +:04139A00000000004F +:04139B00000000004E +:04139C00000000004D +:04139D00000000004C +:04139E00000000004B +:04139F00000000004A +:0413A0000000000049 +:0413A1000000000048 +:0413A2000000000047 +:0413A3000000000046 +:0413A4000000000045 +:0413A5000000000044 +:0413A6000000000043 +:0413A7000000000042 +:0413A8000000000041 +:0413A9000000000040 +:0413AA00000000003F +:0413AB00000000003E +:0413AC00000000003D +:0413AD00000000003C +:0413AE00000000003B +:0413AF00000000003A +:0413B0000000000039 +:0413B1000000000038 +:0413B2000000000037 +:0413B3000000000036 +:0413B4000000000035 +:0413B5000000000034 +:0413B6000000000033 +:0413B7000000000032 +:0413B8000000000031 +:0413B9000000000030 +:0413BA00000000002F +:0413BB00000000002E +:0413BC00000000002D +:0413BD00000000002C +:0413BE00000000002B +:0413BF00000000002A +:0413C0000000000029 +:0413C1000000000028 +:0413C2000000000027 +:0413C3000000000026 +:0413C4000000000025 +:0413C5000000000024 +:0413C6000000000023 +:0413C7000000000022 +:0413C8000000000021 +:0413C9000000000020 +:0413CA00000000001F +:0413CB00000000001E +:0413CC00000000001D +:0413CD00000000001C +:0413CE00000000001B +:0413CF00000000001A +:0413D0000000000019 +:0413D1000000000018 +:0413D2000000000017 +:0413D3000000000016 +:0413D4000000000015 +:0413D5000000000014 +:0413D6000000000013 +:0413D7000000000012 +:0413D8000000000011 +:0413D9000000000010 +:0413DA00000000000F +:0413DB00000000000E +:0413DC00000000000D +:0413DD00000000000C +:0413DE00000000000B +:0413DF00000000000A +:0413E0000000000009 +:0413E1000000000008 +:0413E2000000000007 +:0413E3000000000006 +:0413E4000000000005 +:0413E5000000000004 +:0413E6000000000003 +:0413E7000000000002 +:0413E8000000000001 +:0413E9000000000000 +:0413EA0000000000FF +:0413EB0000000000FE +:0413EC0000000000FD +:0413ED0000000000FC +:0413EE0000000000FB +:0413EF0000000000FA +:0413F00000000000F9 +:0413F10000000000F8 +:0413F20000000000F7 +:0413F30000000000F6 +:0413F40000000000F5 +:0413F50000000000F4 +:0413F60000000000F3 +:0413F70000000000F2 +:0413F80000000000F1 +:0413F90000000000F0 +:0413FA0000000000EF +:0413FB0000000000EE +:0413FC0000000000ED +:0413FD0000000000EC +:0413FE0000000000EB +:0413FF0000000000EA +:0414000000000000E8 +:0414010000000000E7 +:0414020000000000E6 +:0414030000000000E5 +:0414040000000000E4 +:0414050000000000E3 +:0414060000000000E2 +:0414070000000000E1 +:0414080000000000E0 +:0414090000000000DF +:04140A0000000000DE +:04140B0000000000DD +:04140C0000000000DC +:04140D0000000000DB +:04140E0000000000DA +:04140F0000000000D9 +:0414100000000000D8 +:0414110000000000D7 +:0414120000000000D6 +:0414130000000000D5 +:0414140000000000D4 +:0414150000000000D3 +:0414160000000000D2 +:0414170000000000D1 +:0414180000000000D0 +:0414190000000000CF +:04141A0000000000CE +:04141B0000000000CD +:04141C0000000000CC +:04141D0000000000CB +:04141E0000000000CA +:04141F0000000000C9 +:0414200000000000C8 +:0414210000000000C7 +:0414220000000000C6 +:0414230000000000C5 +:0414240000000000C4 +:0414250000000000C3 +:0414260000000000C2 +:0414270000000000C1 +:0414280000000000C0 +:0414290000000000BF +:04142A0000000000BE +:04142B0000000000BD +:04142C0000000000BC +:04142D0000000000BB +:04142E0000000000BA +:04142F0000000000B9 +:0414300000000000B8 +:0414310000000000B7 +:0414320000000000B6 +:0414330000000000B5 +:0414340000000000B4 +:0414350000000000B3 +:0414360000000000B2 +:0414370000000000B1 +:0414380000000000B0 +:0414390000000000AF +:04143A0000000000AE +:04143B0000000000AD +:04143C0000000000AC +:04143D0000000000AB +:04143E0000000000AA +:04143F0000000000A9 +:0414400000000000A8 +:0414410000000000A7 +:0414420000000000A6 +:0414430000000000A5 +:0414440000000000A4 +:0414450000000000A3 +:0414460000000000A2 +:0414470000000000A1 +:0414480000000000A0 +:04144900000000009F +:04144A00000000009E +:04144B00000000009D +:04144C00000000009C +:04144D00000000009B +:04144E00000000009A +:04144F000000000099 +:041450000000000098 +:041451000000000097 +:041452000000000096 +:041453000000000095 +:041454000000000094 +:041455000000000093 +:041456000000000092 +:041457000000000091 +:041458000000000090 +:04145900000000008F +:04145A00000000008E +:04145B00000000008D +:04145C00000000008C +:04145D00000000008B +:04145E00000000008A +:04145F000000000089 +:041460000000000088 +:041461000000000087 +:041462000000000086 +:041463000000000085 +:041464000000000084 +:041465000000000083 +:041466000000000082 +:041467000000000081 +:041468000000000080 +:04146900000000007F +:04146A00000000007E +:04146B00000000007D +:04146C00000000007C +:04146D00000000007B +:04146E00000000007A +:04146F000000000079 +:041470000000000078 +:041471000000000077 +:041472000000000076 +:041473000000000075 +:041474000000000074 +:041475000000000073 +:041476000000000072 +:041477000000000071 +:041478000000000070 +:04147900000000006F +:04147A00000000006E +:04147B00000000006D +:04147C00000000006C +:04147D00000000006B +:04147E00000000006A +:04147F000000000069 +:041480000000000068 +:041481000000000067 +:041482000000000066 +:041483000000000065 +:041484000000000064 +:041485000000000063 +:041486000000000062 +:041487000000000061 +:041488000000000060 +:04148900000000005F +:04148A00000000005E +:04148B00000000005D +:04148C00000000005C +:04148D00000000005B +:04148E00000000005A +:04148F000000000059 +:041490000000000058 +:041491000000000057 +:041492000000000056 +:041493000000000055 +:041494000000000054 +:041495000000000053 +:041496000000000052 +:041497000000000051 +:041498000000000050 +:04149900000000004F +:04149A00000000004E +:04149B00000000004D +:04149C00000000004C +:04149D00000000004B +:04149E00000000004A +:04149F000000000049 +:0414A0000000000048 +:0414A1000000000047 +:0414A2000000000046 +:0414A3000000000045 +:0414A4000000000044 +:0414A5000000000043 +:0414A6000000000042 +:0414A7000000000041 +:0414A8000000000040 +:0414A900000000003F +:0414AA00000000003E +:0414AB00000000003D +:0414AC00000000003C +:0414AD00000000003B +:0414AE00000000003A +:0414AF000000000039 +:0414B0000000000038 +:0414B1000000000037 +:0414B2000000000036 +:0414B3000000000035 +:0414B4000000000034 +:0414B5000000000033 +:0414B6000000000032 +:0414B7000000000031 +:0414B8000000000030 +:0414B900000000002F +:0414BA00000000002E +:0414BB00000000002D +:0414BC00000000002C +:0414BD00000000002B +:0414BE00000000002A +:0414BF000000000029 +:0414C0000000000028 +:0414C1000000000027 +:0414C2000000000026 +:0414C3000000000025 +:0414C4000000000024 +:0414C5000000000023 +:0414C6000000000022 +:0414C7000000000021 +:0414C8000000000020 +:0414C900000000001F +:0414CA00000000001E +:0414CB00000000001D +:0414CC00000000001C +:0414CD00000000001B +:0414CE00000000001A +:0414CF000000000019 +:0414D0000000000018 +:0414D1000000000017 +:0414D2000000000016 +:0414D3000000000015 +:0414D4000000000014 +:0414D5000000000013 +:0414D6000000000012 +:0414D7000000000011 +:0414D8000000000010 +:0414D900000000000F +:0414DA00000000000E +:0414DB00000000000D +:0414DC00000000000C +:0414DD00000000000B +:0414DE00000000000A +:0414DF000000000009 +:0414E0000000000008 +:0414E1000000000007 +:0414E2000000000006 +:0414E3000000000005 +:0414E4000000000004 +:0414E5000000000003 +:0414E6000000000002 +:0414E7000000000001 +:0414E8000000000000 +:0414E90000000000FF +:0414EA0000000000FE +:0414EB0000000000FD +:0414EC0000000000FC +:0414ED0000000000FB +:0414EE0000000000FA +:0414EF0000000000F9 +:0414F00000000000F8 +:0414F10000000000F7 +:0414F20000000000F6 +:0414F30000000000F5 +:0414F40000000000F4 +:0414F50000000000F3 +:0414F60000000000F2 +:0414F70000000000F1 +:0414F80000000000F0 +:0414F90000000000EF +:0414FA0000000000EE +:0414FB0000000000ED +:0414FC0000000000EC +:0414FD0000000000EB +:0414FE0000000000EA +:0414FF0000000000E9 +:0415000000000000E7 +:0415010000000000E6 +:0415020000000000E5 +:0415030000000000E4 +:0415040000000000E3 +:0415050000000000E2 +:0415060000000000E1 +:0415070000000000E0 +:0415080000000000DF +:0415090000000000DE +:04150A0000000000DD +:04150B0000000000DC +:04150C0000000000DB +:04150D0000000000DA +:04150E0000000000D9 +:04150F0000000000D8 +:0415100000000000D7 +:0415110000000000D6 +:0415120000000000D5 +:0415130000000000D4 +:0415140000000000D3 +:0415150000000000D2 +:0415160000000000D1 +:0415170000000000D0 +:0415180000000000CF +:0415190000000000CE +:04151A0000000000CD +:04151B0000000000CC +:04151C0000000000CB +:04151D0000000000CA +:04151E0000000000C9 +:04151F0000000000C8 +:0415200000000000C7 +:0415210000000000C6 +:0415220000000000C5 +:0415230000000000C4 +:0415240000000000C3 +:0415250000000000C2 +:0415260000000000C1 +:0415270000000000C0 +:0415280000000000BF +:0415290000000000BE +:04152A0000000000BD +:04152B0000000000BC +:04152C0000000000BB +:04152D0000000000BA +:04152E0000000000B9 +:04152F0000000000B8 +:0415300000000000B7 +:0415310000000000B6 +:0415320000000000B5 +:0415330000000000B4 +:0415340000000000B3 +:0415350000000000B2 +:0415360000000000B1 +:0415370000000000B0 +:0415380000000000AF +:0415390000000000AE +:04153A0000000000AD +:04153B0000000000AC +:04153C0000000000AB +:04153D0000000000AA +:04153E0000000000A9 +:04153F0000000000A8 +:0415400000000000A7 +:0415410000000000A6 +:0415420000000000A5 +:0415430000000000A4 +:0415440000000000A3 +:0415450000000000A2 +:0415460000000000A1 +:0415470000000000A0 +:04154800000000009F +:04154900000000009E +:04154A00000000009D +:04154B00000000009C +:04154C00000000009B +:04154D00000000009A +:04154E000000000099 +:04154F000000000098 +:041550000000000097 +:041551000000000096 +:041552000000000095 +:041553000000000094 +:041554000000000093 +:041555000000000092 +:041556000000000091 +:041557000000000090 +:04155800000000008F +:04155900000000008E +:04155A00000000008D +:04155B00000000008C +:04155C00000000008B +:04155D00000000008A +:04155E000000000089 +:04155F000000000088 +:041560000000000087 +:041561000000000086 +:041562000000000085 +:041563000000000084 +:041564000000000083 +:041565000000000082 +:041566000000000081 +:041567000000000080 +:04156800000000007F +:04156900000000007E +:04156A00000000007D +:04156B00000000007C +:04156C00000000007B +:04156D00000000007A +:04156E000000000079 +:04156F000000000078 +:041570000000000077 +:041571000000000076 +:041572000000000075 +:041573000000000074 +:041574000000000073 +:041575000000000072 +:041576000000000071 +:041577000000000070 +:04157800000000006F +:04157900000000006E +:04157A00000000006D +:04157B00000000006C +:04157C00000000006B +:04157D00000000006A +:04157E000000000069 +:04157F000000000068 +:041580000000000067 +:041581000000000066 +:041582000000000065 +:041583000000000064 +:041584000000000063 +:041585000000000062 +:041586000000000061 +:041587000000000060 +:04158800000000005F +:04158900000000005E +:04158A00000000005D +:04158B00000000005C +:04158C00000000005B +:04158D00000000005A +:04158E000000000059 +:04158F000000000058 +:041590000000000057 +:041591000000000056 +:041592000000000055 +:041593000000000054 +:041594000000000053 +:041595000000000052 +:041596000000000051 +:041597000000000050 +:04159800000000004F +:04159900000000004E +:04159A00000000004D +:04159B00000000004C +:04159C00000000004B +:04159D00000000004A +:04159E000000000049 +:04159F000000000048 +:0415A0000000000047 +:0415A1000000000046 +:0415A2000000000045 +:0415A3000000000044 +:0415A4000000000043 +:0415A5000000000042 +:0415A6000000000041 +:0415A7000000000040 +:0415A800000000003F +:0415A900000000003E +:0415AA00000000003D +:0415AB00000000003C +:0415AC00000000003B +:0415AD00000000003A +:0415AE000000000039 +:0415AF000000000038 +:0415B0000000000037 +:0415B1000000000036 +:0415B2000000000035 +:0415B3000000000034 +:0415B4000000000033 +:0415B5000000000032 +:0415B6000000000031 +:0415B7000000000030 +:0415B800000000002F +:0415B900000000002E +:0415BA00000000002D +:0415BB00000000002C +:0415BC00000000002B +:0415BD00000000002A +:0415BE000000000029 +:0415BF000000000028 +:0415C0000000000027 +:0415C1000000000026 +:0415C2000000000025 +:0415C3000000000024 +:0415C4000000000023 +:0415C5000000000022 +:0415C6000000000021 +:0415C7000000000020 +:0415C800000000001F +:0415C900000000001E +:0415CA00000000001D +:0415CB00000000001C +:0415CC00000000001B +:0415CD00000000001A +:0415CE000000000019 +:0415CF000000000018 +:0415D0000000000017 +:0415D1000000000016 +:0415D2000000000015 +:0415D3000000000014 +:0415D4000000000013 +:0415D5000000000012 +:0415D6000000000011 +:0415D7000000000010 +:0415D800000000000F +:0415D900000000000E +:0415DA00000000000D +:0415DB00000000000C +:0415DC00000000000B +:0415DD00000000000A +:0415DE000000000009 +:0415DF000000000008 +:0415E0000000000007 +:0415E1000000000006 +:0415E2000000000005 +:0415E3000000000004 +:0415E4000000000003 +:0415E5000000000002 +:0415E6000000000001 +:0415E7000000000000 +:0415E80000000000FF +:0415E90000000000FE +:0415EA0000000000FD +:0415EB0000000000FC +:0415EC0000000000FB +:0415ED0000000000FA +:0415EE0000000000F9 +:0415EF0000000000F8 +:0415F00000000000F7 +:0415F10000000000F6 +:0415F20000000000F5 +:0415F30000000000F4 +:0415F40000000000F3 +:0415F50000000000F2 +:0415F60000000000F1 +:0415F70000000000F0 +:0415F80000000000EF +:0415F90000000000EE +:0415FA0000000000ED +:0415FB0000000000EC +:0415FC0000000000EB +:0415FD0000000000EA +:0415FE0000000000E9 +:0415FF0000000000E8 +:0416000000000000E6 +:0416010000000000E5 +:0416020000000000E4 +:0416030000000000E3 +:0416040000000000E2 +:0416050000000000E1 +:0416060000000000E0 +:0416070000000000DF +:0416080000000000DE +:0416090000000000DD +:04160A0000000000DC +:04160B0000000000DB +:04160C0000000000DA +:04160D0000000000D9 +:04160E0000000000D8 +:04160F0000000000D7 +:0416100000000000D6 +:0416110000000000D5 +:0416120000000000D4 +:0416130000000000D3 +:0416140000000000D2 +:0416150000000000D1 +:0416160000000000D0 +:0416170000000000CF +:0416180000000000CE +:0416190000000000CD +:04161A0000000000CC +:04161B0000000000CB +:04161C0000000000CA +:04161D0000000000C9 +:04161E0000000000C8 +:04161F0000000000C7 +:0416200000000000C6 +:0416210000000000C5 +:0416220000000000C4 +:0416230000000000C3 +:0416240000000000C2 +:0416250000000000C1 +:0416260000000000C0 +:0416270000000000BF +:0416280000000000BE +:0416290000000000BD +:04162A0000000000BC +:04162B0000000000BB +:04162C0000000000BA +:04162D0000000000B9 +:04162E0000000000B8 +:04162F0000000000B7 +:0416300000000000B6 +:0416310000000000B5 +:0416320000000000B4 +:0416330000000000B3 +:0416340000000000B2 +:0416350000000000B1 +:0416360000000000B0 +:0416370000000000AF +:0416380000000000AE +:0416390000000000AD +:04163A0000000000AC +:04163B0000000000AB +:04163C0000000000AA +:04163D0000000000A9 +:04163E0000000000A8 +:04163F0000000000A7 +:0416400000000000A6 +:0416410000000000A5 +:0416420000000000A4 +:0416430000000000A3 +:0416440000000000A2 +:0416450000000000A1 +:0416460000000000A0 +:04164700000000009F +:04164800000000009E +:04164900000000009D +:04164A00000000009C +:04164B00000000009B +:04164C00000000009A +:04164D000000000099 +:04164E000000000098 +:04164F000000000097 +:041650000000000096 +:041651000000000095 +:041652000000000094 +:041653000000000093 +:041654000000000092 +:041655000000000091 +:041656000000000090 +:04165700000000008F +:04165800000000008E +:04165900000000008D +:04165A00000000008C +:04165B00000000008B +:04165C00000000008A +:04165D000000000089 +:04165E000000000088 +:04165F000000000087 +:041660000000000086 +:041661000000000085 +:041662000000000084 +:041663000000000083 +:041664000000000082 +:041665000000000081 +:041666000000000080 +:04166700000000007F +:04166800000000007E +:04166900000000007D +:04166A00000000007C +:04166B00000000007B +:04166C00000000007A +:04166D000000000079 +:04166E000000000078 +:04166F000000000077 +:041670000000000076 +:041671000000000075 +:041672000000000074 +:041673000000000073 +:041674000000000072 +:041675000000000071 +:041676000000000070 +:04167700000000006F +:04167800000000006E +:04167900000000006D +:04167A00000000006C +:04167B00000000006B +:04167C00000000006A +:04167D000000000069 +:04167E000000000068 +:04167F000000000067 +:041680000000000066 +:041681000000000065 +:041682000000000064 +:041683000000000063 +:041684000000000062 +:041685000000000061 +:041686000000000060 +:04168700000000005F +:04168800000000005E +:04168900000000005D +:04168A00000000005C +:04168B00000000005B +:04168C00000000005A +:04168D000000000059 +:04168E000000000058 +:04168F000000000057 +:041690000000000056 +:041691000000000055 +:041692000000000054 +:041693000000000053 +:041694000000000052 +:041695000000000051 +:041696000000000050 +:04169700000000004F +:04169800000000004E +:04169900000000004D +:04169A00000000004C +:04169B00000000004B +:04169C00000000004A +:04169D000000000049 +:04169E000000000048 +:04169F000000000047 +:0416A0000000000046 +:0416A1000000000045 +:0416A2000000000044 +:0416A3000000000043 +:0416A4000000000042 +:0416A5000000000041 +:0416A6000000000040 +:0416A700000000003F +:0416A800000000003E +:0416A900000000003D +:0416AA00000000003C +:0416AB00000000003B +:0416AC00000000003A +:0416AD000000000039 +:0416AE000000000038 +:0416AF000000000037 +:0416B0000000000036 +:0416B1000000000035 +:0416B2000000000034 +:0416B3000000000033 +:0416B4000000000032 +:0416B5000000000031 +:0416B6000000000030 +:0416B700000000002F +:0416B800000000002E +:0416B900000000002D +:0416BA00000000002C +:0416BB00000000002B +:0416BC00000000002A +:0416BD000000000029 +:0416BE000000000028 +:0416BF000000000027 +:0416C0000000000026 +:0416C1000000000025 +:0416C2000000000024 +:0416C3000000000023 +:0416C4000000000022 +:0416C5000000000021 +:0416C6000000000020 +:0416C700000000001F +:0416C800000000001E +:0416C900000000001D +:0416CA00000000001C +:0416CB00000000001B +:0416CC00000000001A +:0416CD000000000019 +:0416CE000000000018 +:0416CF000000000017 +:0416D0000000000016 +:0416D1000000000015 +:0416D2000000000014 +:0416D3000000000013 +:0416D4000000000012 +:0416D5000000000011 +:0416D6000000000010 +:0416D700000000000F +:0416D800000000000E +:0416D900000000000D +:0416DA00000000000C +:0416DB00000000000B +:0416DC00000000000A +:0416DD000000000009 +:0416DE000000000008 +:0416DF000000000007 +:0416E0000000000006 +:0416E1000000000005 +:0416E2000000000004 +:0416E3000000000003 +:0416E4000000000002 +:0416E5000000000001 +:0416E6000000000000 +:0416E70000000000FF +:0416E80000000000FE +:0416E90000000000FD +:0416EA0000000000FC +:0416EB0000000000FB +:0416EC0000000000FA +:0416ED0000000000F9 +:0416EE0000000000F8 +:0416EF0000000000F7 +:0416F00000000000F6 +:0416F10000000000F5 +:0416F20000000000F4 +:0416F30000000000F3 +:0416F40000000000F2 +:0416F50000000000F1 +:0416F60000000000F0 +:0416F70000000000EF +:0416F80000000000EE +:0416F90000000000ED +:0416FA0000000000EC +:0416FB0000000000EB +:0416FC0000000000EA +:0416FD0000000000E9 +:0416FE0000000000E8 +:0416FF0000000000E7 +:0417000000000000E5 +:0417010000000000E4 +:0417020000000000E3 +:0417030000000000E2 +:0417040000000000E1 +:0417050000000000E0 +:0417060000000000DF +:0417070000000000DE +:0417080000000000DD +:0417090000000000DC +:04170A0000000000DB +:04170B0000000000DA +:04170C0000000000D9 +:04170D0000000000D8 +:04170E0000000000D7 +:04170F0000000000D6 +:0417100000000000D5 +:0417110000000000D4 +:0417120000000000D3 +:0417130000000000D2 +:0417140000000000D1 +:0417150000000000D0 +:0417160000000000CF +:0417170000000000CE +:0417180000000000CD +:0417190000000000CC +:04171A0000000000CB +:04171B0000000000CA +:04171C0000000000C9 +:04171D0000000000C8 +:04171E0000000000C7 +:04171F0000000000C6 +:0417200000000000C5 +:0417210000000000C4 +:0417220000000000C3 +:0417230000000000C2 +:0417240000000000C1 +:0417250000000000C0 +:0417260000000000BF +:0417270000000000BE +:0417280000000000BD +:0417290000000000BC +:04172A0000000000BB +:04172B0000000000BA +:04172C0000000000B9 +:04172D0000000000B8 +:04172E0000000000B7 +:04172F0000000000B6 +:0417300000000000B5 +:0417310000000000B4 +:0417320000000000B3 +:0417330000000000B2 +:0417340000000000B1 +:0417350000000000B0 +:0417360000000000AF +:0417370000000000AE +:0417380000000000AD +:0417390000000000AC +:04173A0000000000AB +:04173B0000000000AA +:04173C0000000000A9 +:04173D0000000000A8 +:04173E0000000000A7 +:04173F0000000000A6 +:0417400000000000A5 +:0417410000000000A4 +:0417420000000000A3 +:0417430000000000A2 +:0417440000000000A1 +:0417450000000000A0 +:04174600000000009F +:04174700000000009E +:04174800000000009D +:04174900000000009C +:04174A00000000009B +:04174B00000000009A +:04174C000000000099 +:04174D000000000098 +:04174E000000000097 +:04174F000000000096 +:041750000000000095 +:041751000000000094 +:041752000000000093 +:041753000000000092 +:041754000000000091 +:041755000000000090 +:04175600000000008F +:04175700000000008E +:04175800000000008D +:04175900000000008C +:04175A00000000008B +:04175B00000000008A +:04175C000000000089 +:04175D000000000088 +:04175E000000000087 +:04175F000000000086 +:041760000000000085 +:041761000000000084 +:041762000000000083 +:041763000000000082 +:041764000000000081 +:041765000000000080 +:04176600000000007F +:04176700000000007E +:04176800000000007D +:04176900000000007C +:04176A00000000007B +:04176B00000000007A +:04176C000000000079 +:04176D000000000078 +:04176E000000000077 +:04176F000000000076 +:041770000000000075 +:041771000000000074 +:041772000000000073 +:041773000000000072 +:041774000000000071 +:041775000000000070 +:04177600000000006F +:04177700000000006E +:04177800000000006D +:04177900000000006C +:04177A00000000006B +:04177B00000000006A +:04177C000000000069 +:04177D000000000068 +:04177E000000000067 +:04177F000000000066 +:041780000000000065 +:041781000000000064 +:041782000000000063 +:041783000000000062 +:041784000000000061 +:041785000000000060 +:04178600000000005F +:04178700000000005E +:04178800000000005D +:04178900000000005C +:04178A00000000005B +:04178B00000000005A +:04178C000000000059 +:04178D000000000058 +:04178E000000000057 +:04178F000000000056 +:041790000000000055 +:041791000000000054 +:041792000000000053 +:041793000000000052 +:041794000000000051 +:041795000000000050 +:04179600000000004F +:04179700000000004E +:04179800000000004D +:04179900000000004C +:04179A00000000004B +:04179B00000000004A +:04179C000000000049 +:04179D000000000048 +:04179E000000000047 +:04179F000000000046 +:0417A0000000000045 +:0417A1000000000044 +:0417A2000000000043 +:0417A3000000000042 +:0417A4000000000041 +:0417A5000000000040 +:0417A600000000003F +:0417A700000000003E +:0417A800000000003D +:0417A900000000003C +:0417AA00000000003B +:0417AB00000000003A +:0417AC000000000039 +:0417AD000000000038 +:0417AE000000000037 +:0417AF000000000036 +:0417B0000000000035 +:0417B1000000000034 +:0417B2000000000033 +:0417B3000000000032 +:0417B4000000000031 +:0417B5000000000030 +:0417B600000000002F +:0417B700000000002E +:0417B800000000002D +:0417B900000000002C +:0417BA00000000002B +:0417BB00000000002A +:0417BC000000000029 +:0417BD000000000028 +:0417BE000000000027 +:0417BF000000000026 +:0417C0000000000025 +:0417C1000000000024 +:0417C2000000000023 +:0417C3000000000022 +:0417C4000000000021 +:0417C5000000000020 +:0417C600000000001F +:0417C700000000001E +:0417C800000000001D +:0417C900000000001C +:0417CA00000000001B +:0417CB00000000001A +:0417CC000000000019 +:0417CD000000000018 +:0417CE000000000017 +:0417CF000000000016 +:0417D0000000000015 +:0417D1000000000014 +:0417D2000000000013 +:0417D3000000000012 +:0417D4000000000011 +:0417D5000000000010 +:0417D600000000000F +:0417D700000000000E +:0417D800000000000D +:0417D900000000000C +:0417DA00000000000B +:0417DB00000000000A +:0417DC000000000009 +:0417DD000000000008 +:0417DE000000000007 +:0417DF000000000006 +:0417E0000000000005 +:0417E1000000000004 +:0417E2000000000003 +:0417E3000000000002 +:0417E4000000000001 +:0417E5000000000000 +:0417E60000000000FF +:0417E70000000000FE +:0417E80000000000FD +:0417E90000000000FC +:0417EA0000000000FB +:0417EB0000000000FA +:0417EC0000000000F9 +:0417ED0000000000F8 +:0417EE0000000000F7 +:0417EF0000000000F6 +:0417F00000000000F5 +:0417F10000000000F4 +:0417F20000000000F3 +:0417F30000000000F2 +:0417F40000000000F1 +:0417F50000000000F0 +:0417F60000000000EF +:0417F70000000000EE +:0417F80000000000ED +:0417F90000000000EC +:0417FA0000000000EB +:0417FB0000000000EA +:0417FC0000000000E9 +:0417FD0000000000E8 +:0417FE0000000000E7 +:0417FF0000000000E6 +:0418000000000000E4 +:0418010000000000E3 +:0418020000000000E2 +:0418030000000000E1 +:0418040000000000E0 +:0418050000000000DF +:0418060000000000DE +:0418070000000000DD +:0418080000000000DC +:0418090000000000DB +:04180A0000000000DA +:04180B0000000000D9 +:04180C0000000000D8 +:04180D0000000000D7 +:04180E0000000000D6 +:04180F0000000000D5 +:0418100000000000D4 +:0418110000000000D3 +:0418120000000000D2 +:0418130000000000D1 +:0418140000000000D0 +:0418150000000000CF +:0418160000000000CE +:0418170000000000CD +:0418180000000000CC +:0418190000000000CB +:04181A0000000000CA +:04181B0000000000C9 +:04181C0000000000C8 +:04181D0000000000C7 +:04181E0000000000C6 +:04181F0000000000C5 +:0418200000000000C4 +:0418210000000000C3 +:0418220000000000C2 +:0418230000000000C1 +:0418240000000000C0 +:0418250000000000BF +:0418260000000000BE +:0418270000000000BD +:0418280000000000BC +:0418290000000000BB +:04182A0000000000BA +:04182B0000000000B9 +:04182C0000000000B8 +:04182D0000000000B7 +:04182E0000000000B6 +:04182F0000000000B5 +:0418300000000000B4 +:0418310000000000B3 +:0418320000000000B2 +:0418330000000000B1 +:0418340000000000B0 +:0418350000000000AF +:0418360000000000AE +:0418370000000000AD +:0418380000000000AC +:0418390000000000AB +:04183A0000000000AA +:04183B0000000000A9 +:04183C0000000000A8 +:04183D0000000000A7 +:04183E0000000000A6 +:04183F0000000000A5 +:0418400000000000A4 +:0418410000000000A3 +:0418420000000000A2 +:0418430000000000A1 +:0418440000000000A0 +:04184500000000009F +:04184600000000009E +:04184700000000009D +:04184800000000009C +:04184900000000009B +:04184A00000000009A +:04184B000000000099 +:04184C000000000098 +:04184D000000000097 +:04184E000000000096 +:04184F000000000095 +:041850000000000094 +:041851000000000093 +:041852000000000092 +:041853000000000091 +:041854000000000090 +:04185500000000008F +:04185600000000008E +:04185700000000008D +:04185800000000008C +:04185900000000008B +:04185A00000000008A +:04185B000000000089 +:04185C000000000088 +:04185D000000000087 +:04185E000000000086 +:04185F000000000085 +:041860000000000084 +:041861000000000083 +:041862000000000082 +:041863000000000081 +:041864000000000080 +:04186500000000007F +:04186600000000007E +:04186700000000007D +:04186800000000007C +:04186900000000007B +:04186A00000000007A +:04186B000000000079 +:04186C000000000078 +:04186D000000000077 +:04186E000000000076 +:04186F000000000075 +:041870000000000074 +:041871000000000073 +:041872000000000072 +:041873000000000071 +:041874000000000070 +:04187500000000006F +:04187600000000006E +:04187700000000006D +:04187800000000006C +:04187900000000006B +:04187A00000000006A +:04187B000000000069 +:04187C000000000068 +:04187D000000000067 +:04187E000000000066 +:04187F000000000065 +:041880000000000064 +:041881000000000063 +:041882000000000062 +:041883000000000061 +:041884000000000060 +:04188500000000005F +:04188600000000005E +:04188700000000005D +:04188800000000005C +:04188900000000005B +:04188A00000000005A +:04188B000000000059 +:04188C000000000058 +:04188D000000000057 +:04188E000000000056 +:04188F000000000055 +:041890000000000054 +:041891000000000053 +:041892000000000052 +:041893000000000051 +:041894000000000050 +:04189500000000004F +:04189600000000004E +:04189700000000004D +:04189800000000004C +:04189900000000004B +:04189A00000000004A +:04189B000000000049 +:04189C000000000048 +:04189D000000000047 +:04189E000000000046 +:04189F000000000045 +:0418A0000000000044 +:0418A1000000000043 +:0418A2000000000042 +:0418A3000000000041 +:0418A4000000000040 +:0418A500000000003F +:0418A600000000003E +:0418A700000000003D +:0418A800000000003C +:0418A900000000003B +:0418AA00000000003A +:0418AB000000000039 +:0418AC000000000038 +:0418AD000000000037 +:0418AE000000000036 +:0418AF000000000035 +:0418B0000000000034 +:0418B1000000000033 +:0418B2000000000032 +:0418B3000000000031 +:0418B4000000000030 +:0418B500000000002F +:0418B600000000002E +:0418B700000000002D +:0418B800000000002C +:0418B900000000002B +:0418BA00000000002A +:0418BB000000000029 +:0418BC000000000028 +:0418BD000000000027 +:0418BE000000000026 +:0418BF000000000025 +:0418C0000000000024 +:0418C1000000000023 +:0418C2000000000022 +:0418C3000000000021 +:0418C4000000000020 +:0418C500000000001F +:0418C600000000001E +:0418C700000000001D +:0418C800000000001C +:0418C900000000001B +:0418CA00000000001A +:0418CB000000000019 +:0418CC000000000018 +:0418CD000000000017 +:0418CE000000000016 +:0418CF000000000015 +:0418D0000000000014 +:0418D1000000000013 +:0418D2000000000012 +:0418D3000000000011 +:0418D4000000000010 +:0418D500000000000F +:0418D600000000000E +:0418D700000000000D +:0418D800000000000C +:0418D900000000000B +:0418DA00000000000A +:0418DB000000000009 +:0418DC000000000008 +:0418DD000000000007 +:0418DE000000000006 +:0418DF000000000005 +:0418E0000000000004 +:0418E1000000000003 +:0418E2000000000002 +:0418E3000000000001 +:0418E4000000000000 +:0418E50000000000FF +:0418E60000000000FE +:0418E70000000000FD +:0418E80000000000FC +:0418E90000000000FB +:0418EA0000000000FA +:0418EB0000000000F9 +:0418EC0000000000F8 +:0418ED0000000000F7 +:0418EE0000000000F6 +:0418EF0000000000F5 +:0418F00000000000F4 +:0418F10000000000F3 +:0418F20000000000F2 +:0418F30000000000F1 +:0418F40000000000F0 +:0418F50000000000EF +:0418F60000000000EE +:0418F70000000000ED +:0418F80000000000EC +:0418F90000000000EB +:0418FA0000000000EA +:0418FB0000000000E9 +:0418FC0000000000E8 +:0418FD0000000000E7 +:0418FE0000000000E6 +:0418FF0000000000E5 +:0419000000000000E3 +:0419010000000000E2 +:0419020000000000E1 +:0419030000000000E0 +:0419040000000000DF +:0419050000000000DE +:0419060000000000DD +:0419070000000000DC +:0419080000000000DB +:0419090000000000DA +:04190A0000000000D9 +:04190B0000000000D8 +:04190C0000000000D7 +:04190D0000000000D6 +:04190E0000000000D5 +:04190F0000000000D4 +:0419100000000000D3 +:0419110000000000D2 +:0419120000000000D1 +:0419130000000000D0 +:0419140000000000CF +:0419150000000000CE +:0419160000000000CD +:0419170000000000CC +:0419180000000000CB +:0419190000000000CA +:04191A0000000000C9 +:04191B0000000000C8 +:04191C0000000000C7 +:04191D0000000000C6 +:04191E0000000000C5 +:04191F0000000000C4 +:0419200000000000C3 +:0419210000000000C2 +:0419220000000000C1 +:0419230000000000C0 +:0419240000000000BF +:0419250000000000BE +:0419260000000000BD +:0419270000000000BC +:0419280000000000BB +:0419290000000000BA +:04192A0000000000B9 +:04192B0000000000B8 +:04192C0000000000B7 +:04192D0000000000B6 +:04192E0000000000B5 +:04192F0000000000B4 +:0419300000000000B3 +:0419310000000000B2 +:0419320000000000B1 +:0419330000000000B0 +:0419340000000000AF +:0419350000000000AE +:0419360000000000AD +:0419370000000000AC +:0419380000000000AB +:0419390000000000AA +:04193A0000000000A9 +:04193B0000000000A8 +:04193C0000000000A7 +:04193D0000000000A6 +:04193E0000000000A5 +:04193F0000000000A4 +:0419400000000000A3 +:0419410000000000A2 +:0419420000000000A1 +:0419430000000000A0 +:04194400000000009F +:04194500000000009E +:04194600000000009D +:04194700000000009C +:04194800000000009B +:04194900000000009A +:04194A000000000099 +:04194B000000000098 +:04194C000000000097 +:04194D000000000096 +:04194E000000000095 +:04194F000000000094 +:041950000000000093 +:041951000000000092 +:041952000000000091 +:041953000000000090 +:04195400000000008F +:04195500000000008E +:04195600000000008D +:04195700000000008C +:04195800000000008B +:04195900000000008A +:04195A000000000089 +:04195B000000000088 +:04195C000000000087 +:04195D000000000086 +:04195E000000000085 +:04195F000000000084 +:041960000000000083 +:041961000000000082 +:041962000000000081 +:041963000000000080 +:04196400000000007F +:04196500000000007E +:04196600000000007D +:04196700000000007C +:04196800000000007B +:04196900000000007A +:04196A000000000079 +:04196B000000000078 +:04196C000000000077 +:04196D000000000076 +:04196E000000000075 +:04196F000000000074 +:041970000000000073 +:041971000000000072 +:041972000000000071 +:041973000000000070 +:04197400000000006F +:04197500000000006E +:04197600000000006D +:04197700000000006C +:04197800000000006B +:04197900000000006A +:04197A000000000069 +:04197B000000000068 +:04197C000000000067 +:04197D000000000066 +:04197E000000000065 +:04197F000000000064 +:041980000000000063 +:041981000000000062 +:041982000000000061 +:041983000000000060 +:04198400000000005F +:04198500000000005E +:04198600000000005D +:04198700000000005C +:04198800000000005B +:04198900000000005A +:04198A000000000059 +:04198B000000000058 +:04198C000000000057 +:04198D000000000056 +:04198E000000000055 +:04198F000000000054 +:041990000000000053 +:041991000000000052 +:041992000000000051 +:041993000000000050 +:04199400000000004F +:04199500000000004E +:04199600000000004D +:04199700000000004C +:04199800000000004B +:04199900000000004A +:04199A000000000049 +:04199B000000000048 +:04199C000000000047 +:04199D000000000046 +:04199E000000000045 +:04199F000000000044 +:0419A0000000000043 +:0419A1000000000042 +:0419A2000000000041 +:0419A3000000000040 +:0419A400000000003F +:0419A500000000003E +:0419A600000000003D +:0419A700000000003C +:0419A800000000003B +:0419A900000000003A +:0419AA000000000039 +:0419AB000000000038 +:0419AC000000000037 +:0419AD000000000036 +:0419AE000000000035 +:0419AF000000000034 +:0419B0000000000033 +:0419B1000000000032 +:0419B2000000000031 +:0419B3000000000030 +:0419B400000000002F +:0419B500000000002E +:0419B600000000002D +:0419B700000000002C +:0419B800000000002B +:0419B900000000002A +:0419BA000000000029 +:0419BB000000000028 +:0419BC000000000027 +:0419BD000000000026 +:0419BE000000000025 +:0419BF000000000024 +:0419C0000000000023 +:0419C1000000000022 +:0419C2000000000021 +:0419C3000000000020 +:0419C400000000001F +:0419C500000000001E +:0419C600000000001D +:0419C700000000001C +:0419C800000000001B +:0419C900000000001A +:0419CA000000000019 +:0419CB000000000018 +:0419CC000000000017 +:0419CD000000000016 +:0419CE000000000015 +:0419CF000000000014 +:0419D0000000000013 +:0419D1000000000012 +:0419D2000000000011 +:0419D3000000000010 +:0419D400000000000F +:0419D500000000000E +:0419D600000000000D +:0419D700000000000C +:0419D800000000000B +:0419D900000000000A +:0419DA000000000009 +:0419DB000000000008 +:0419DC000000000007 +:0419DD000000000006 +:0419DE000000000005 +:0419DF000000000004 +:0419E0000000000003 +:0419E1000000000002 +:0419E2000000000001 +:0419E3000000000000 +:0419E40000000000FF +:0419E50000000000FE +:0419E60000000000FD +:0419E70000000000FC +:0419E80000000000FB +:0419E90000000000FA +:0419EA0000000000F9 +:0419EB0000000000F8 +:0419EC0000000000F7 +:0419ED0000000000F6 +:0419EE0000000000F5 +:0419EF0000000000F4 +:0419F00000000000F3 +:0419F10000000000F2 +:0419F20000000000F1 +:0419F30000000000F0 +:0419F40000000000EF +:0419F50000000000EE +:0419F60000000000ED +:0419F70000000000EC +:0419F80000000000EB +:0419F90000000000EA +:0419FA0000000000E9 +:0419FB0000000000E8 +:0419FC0000000000E7 +:0419FD0000000000E6 +:0419FE0000000000E5 +:0419FF0000000000E4 +:041A000000000000E2 +:041A010000000000E1 +:041A020000000000E0 +:041A030000000000DF +:041A040000000000DE +:041A050000000000DD +:041A060000000000DC +:041A070000000000DB +:041A080000000000DA +:041A090000000000D9 +:041A0A0000000000D8 +:041A0B0000000000D7 +:041A0C0000000000D6 +:041A0D0000000000D5 +:041A0E0000000000D4 +:041A0F0000000000D3 +:041A100000000000D2 +:041A110000000000D1 +:041A120000000000D0 +:041A130000000000CF +:041A140000000000CE +:041A150000000000CD +:041A160000000000CC +:041A170000000000CB +:041A180000000000CA +:041A190000000000C9 +:041A1A0000000000C8 +:041A1B0000000000C7 +:041A1C0000000000C6 +:041A1D0000000000C5 +:041A1E0000000000C4 +:041A1F0000000000C3 +:041A200000000000C2 +:041A210000000000C1 +:041A220000000000C0 +:041A230000000000BF +:041A240000000000BE +:041A250000000000BD +:041A260000000000BC +:041A270000000000BB +:041A280000000000BA +:041A290000000000B9 +:041A2A0000000000B8 +:041A2B0000000000B7 +:041A2C0000000000B6 +:041A2D0000000000B5 +:041A2E0000000000B4 +:041A2F0000000000B3 +:041A300000000000B2 +:041A310000000000B1 +:041A320000000000B0 +:041A330000000000AF +:041A340000000000AE +:041A350000000000AD +:041A360000000000AC +:041A370000000000AB +:041A380000000000AA +:041A390000000000A9 +:041A3A0000000000A8 +:041A3B0000000000A7 +:041A3C0000000000A6 +:041A3D0000000000A5 +:041A3E0000000000A4 +:041A3F0000000000A3 +:041A400000000000A2 +:041A410000000000A1 +:041A420000000000A0 +:041A4300000000009F +:041A4400000000009E +:041A4500000000009D +:041A4600000000009C +:041A4700000000009B +:041A4800000000009A +:041A49000000000099 +:041A4A000000000098 +:041A4B000000000097 +:041A4C000000000096 +:041A4D000000000095 +:041A4E000000000094 +:041A4F000000000093 +:041A50000000000092 +:041A51000000000091 +:041A52000000000090 +:041A5300000000008F +:041A5400000000008E +:041A5500000000008D +:041A5600000000008C +:041A5700000000008B +:041A5800000000008A +:041A59000000000089 +:041A5A000000000088 +:041A5B000000000087 +:041A5C000000000086 +:041A5D000000000085 +:041A5E000000000084 +:041A5F000000000083 +:041A60000000000082 +:041A61000000000081 +:041A62000000000080 +:041A6300000000007F +:041A6400000000007E +:041A6500000000007D +:041A6600000000007C +:041A6700000000007B +:041A6800000000007A +:041A69000000000079 +:041A6A000000000078 +:041A6B000000000077 +:041A6C000000000076 +:041A6D000000000075 +:041A6E000000000074 +:041A6F000000000073 +:041A70000000000072 +:041A71000000000071 +:041A72000000000070 +:041A7300000000006F +:041A7400000000006E +:041A7500000000006D +:041A7600000000006C +:041A7700000000006B +:041A7800000000006A +:041A79000000000069 +:041A7A000000000068 +:041A7B000000000067 +:041A7C000000000066 +:041A7D000000000065 +:041A7E000000000064 +:041A7F000000000063 +:041A80000000000062 +:041A81000000000061 +:041A82000000000060 +:041A8300000000005F +:041A8400000000005E +:041A8500000000005D +:041A8600000000005C +:041A8700000000005B +:041A8800000000005A +:041A89000000000059 +:041A8A000000000058 +:041A8B000000000057 +:041A8C000000000056 +:041A8D000000000055 +:041A8E000000000054 +:041A8F000000000053 +:041A90000000000052 +:041A91000000000051 +:041A92000000000050 +:041A9300000000004F +:041A9400000000004E +:041A9500000000004D +:041A9600000000004C +:041A9700000000004B +:041A9800000000004A +:041A99000000000049 +:041A9A000000000048 +:041A9B000000000047 +:041A9C000000000046 +:041A9D000000000045 +:041A9E000000000044 +:041A9F000000000043 +:041AA0000000000042 +:041AA1000000000041 +:041AA2000000000040 +:041AA300000000003F +:041AA400000000003E +:041AA500000000003D +:041AA600000000003C +:041AA700000000003B +:041AA800000000003A +:041AA9000000000039 +:041AAA000000000038 +:041AAB000000000037 +:041AAC000000000036 +:041AAD000000000035 +:041AAE000000000034 +:041AAF000000000033 +:041AB0000000000032 +:041AB1000000000031 +:041AB2000000000030 +:041AB300000000002F +:041AB400000000002E +:041AB500000000002D +:041AB600000000002C +:041AB700000000002B +:041AB800000000002A +:041AB9000000000029 +:041ABA000000000028 +:041ABB000000000027 +:041ABC000000000026 +:041ABD000000000025 +:041ABE000000000024 +:041ABF000000000023 +:041AC0000000000022 +:041AC1000000000021 +:041AC2000000000020 +:041AC300000000001F +:041AC400000000001E +:041AC500000000001D +:041AC600000000001C +:041AC700000000001B +:041AC800000000001A +:041AC9000000000019 +:041ACA000000000018 +:041ACB000000000017 +:041ACC000000000016 +:041ACD000000000015 +:041ACE000000000014 +:041ACF000000000013 +:041AD0000000000012 +:041AD1000000000011 +:041AD2000000000010 +:041AD300000000000F +:041AD400000000000E +:041AD500000000000D +:041AD600000000000C +:041AD700000000000B +:041AD800000000000A +:041AD9000000000009 +:041ADA000000000008 +:041ADB000000000007 +:041ADC000000000006 +:041ADD000000000005 +:041ADE000000000004 +:041ADF000000000003 +:041AE0000000000002 +:041AE1000000000001 +:041AE2000000000000 +:041AE30000000000FF +:041AE40000000000FE +:041AE50000000000FD +:041AE60000000000FC +:041AE70000000000FB +:041AE80000000000FA +:041AE90000000000F9 +:041AEA0000000000F8 +:041AEB0000000000F7 +:041AEC0000000000F6 +:041AED0000000000F5 +:041AEE0000000000F4 +:041AEF0000000000F3 +:041AF00000000000F2 +:041AF10000000000F1 +:041AF20000000000F0 +:041AF30000000000EF +:041AF40000000000EE +:041AF50000000000ED +:041AF60000000000EC +:041AF70000000000EB +:041AF80000000000EA +:041AF90000000000E9 +:041AFA0000000000E8 +:041AFB0000000000E7 +:041AFC0000000000E6 +:041AFD0000000000E5 +:041AFE0000000000E4 +:041AFF0000000000E3 +:041B000000000000E1 +:041B010000000000E0 +:041B020000000000DF +:041B030000000000DE +:041B040000000000DD +:041B050000000000DC +:041B060000000000DB +:041B070000000000DA +:041B080000000000D9 +:041B090000000000D8 +:041B0A0000000000D7 +:041B0B0000000000D6 +:041B0C0000000000D5 +:041B0D0000000000D4 +:041B0E0000000000D3 +:041B0F0000000000D2 +:041B100000000000D1 +:041B110000000000D0 +:041B120000000000CF +:041B130000000000CE +:041B140000000000CD +:041B150000000000CC +:041B160000000000CB +:041B170000000000CA +:041B180000000000C9 +:041B190000000000C8 +:041B1A0000000000C7 +:041B1B0000000000C6 +:041B1C0000000000C5 +:041B1D0000000000C4 +:041B1E0000000000C3 +:041B1F0000000000C2 +:041B200000000000C1 +:041B210000000000C0 +:041B220000000000BF +:041B230000000000BE +:041B240000000000BD +:041B250000000000BC +:041B260000000000BB +:041B270000000000BA +:041B280000000000B9 +:041B290000000000B8 +:041B2A0000000000B7 +:041B2B0000000000B6 +:041B2C0000000000B5 +:041B2D0000000000B4 +:041B2E0000000000B3 +:041B2F0000000000B2 +:041B300000000000B1 +:041B310000000000B0 +:041B320000000000AF +:041B330000000000AE +:041B340000000000AD +:041B350000000000AC +:041B360000000000AB +:041B370000000000AA +:041B380000000000A9 +:041B390000000000A8 +:041B3A0000000000A7 +:041B3B0000000000A6 +:041B3C0000000000A5 +:041B3D0000000000A4 +:041B3E0000000000A3 +:041B3F0000000000A2 +:041B400000000000A1 +:041B410000000000A0 +:041B4200000000009F +:041B4300000000009E +:041B4400000000009D +:041B4500000000009C +:041B4600000000009B +:041B4700000000009A +:041B48000000000099 +:041B49000000000098 +:041B4A000000000097 +:041B4B000000000096 +:041B4C000000000095 +:041B4D000000000094 +:041B4E000000000093 +:041B4F000000000092 +:041B50000000000091 +:041B51000000000090 +:041B5200000000008F +:041B5300000000008E +:041B5400000000008D +:041B5500000000008C +:041B5600000000008B +:041B5700000000008A +:041B58000000000089 +:041B59000000000088 +:041B5A000000000087 +:041B5B000000000086 +:041B5C000000000085 +:041B5D000000000084 +:041B5E000000000083 +:041B5F000000000082 +:041B60000000000081 +:041B61000000000080 +:041B6200000000007F +:041B6300000000007E +:041B6400000000007D +:041B6500000000007C +:041B6600000000007B +:041B6700000000007A +:041B68000000000079 +:041B69000000000078 +:041B6A000000000077 +:041B6B000000000076 +:041B6C000000000075 +:041B6D000000000074 +:041B6E000000000073 +:041B6F000000000072 +:041B70000000000071 +:041B71000000000070 +:041B7200000000006F +:041B7300000000006E +:041B7400000000006D +:041B7500000000006C +:041B7600000000006B +:041B7700000000006A +:041B78000000000069 +:041B79000000000068 +:041B7A000000000067 +:041B7B000000000066 +:041B7C000000000065 +:041B7D000000000064 +:041B7E000000000063 +:041B7F000000000062 +:041B80000000000061 +:041B81000000000060 +:041B8200000000005F +:041B8300000000005E +:041B8400000000005D +:041B8500000000005C +:041B8600000000005B +:041B8700000000005A +:041B88000000000059 +:041B89000000000058 +:041B8A000000000057 +:041B8B000000000056 +:041B8C000000000055 +:041B8D000000000054 +:041B8E000000000053 +:041B8F000000000052 +:041B90000000000051 +:041B91000000000050 +:041B9200000000004F +:041B9300000000004E +:041B9400000000004D +:041B9500000000004C +:041B9600000000004B +:041B9700000000004A +:041B98000000000049 +:041B99000000000048 +:041B9A000000000047 +:041B9B000000000046 +:041B9C000000000045 +:041B9D000000000044 +:041B9E000000000043 +:041B9F000000000042 +:041BA0000000000041 +:041BA1000000000040 +:041BA200000000003F +:041BA300000000003E +:041BA400000000003D +:041BA500000000003C +:041BA600000000003B +:041BA700000000003A +:041BA8000000000039 +:041BA9000000000038 +:041BAA000000000037 +:041BAB000000000036 +:041BAC000000000035 +:041BAD000000000034 +:041BAE000000000033 +:041BAF000000000032 +:041BB0000000000031 +:041BB1000000000030 +:041BB200000000002F +:041BB300000000002E +:041BB400000000002D +:041BB500000000002C +:041BB600000000002B +:041BB700000000002A +:041BB8000000000029 +:041BB9000000000028 +:041BBA000000000027 +:041BBB000000000026 +:041BBC000000000025 +:041BBD000000000024 +:041BBE000000000023 +:041BBF000000000022 +:041BC0000000000021 +:041BC1000000000020 +:041BC200000000001F +:041BC300000000001E +:041BC400000000001D +:041BC500000000001C +:041BC600000000001B +:041BC700000000001A +:041BC8000000000019 +:041BC9000000000018 +:041BCA000000000017 +:041BCB000000000016 +:041BCC000000000015 +:041BCD000000000014 +:041BCE000000000013 +:041BCF000000000012 +:041BD0000000000011 +:041BD1000000000010 +:041BD200000000000F +:041BD300000000000E +:041BD400000000000D +:041BD500000000000C +:041BD600000000000B +:041BD700000000000A +:041BD8000000000009 +:041BD9000000000008 +:041BDA000000000007 +:041BDB000000000006 +:041BDC000000000005 +:041BDD000000000004 +:041BDE000000000003 +:041BDF000000000002 +:041BE0000000000001 +:041BE1000000000000 +:041BE20000000000FF +:041BE30000000000FE +:041BE40000000000FD +:041BE50000000000FC +:041BE60000000000FB +:041BE70000000000FA +:041BE80000000000F9 +:041BE90000000000F8 +:041BEA0000000000F7 +:041BEB0000000000F6 +:041BEC0000000000F5 +:041BED0000000000F4 +:041BEE0000000000F3 +:041BEF0000000000F2 +:041BF00000000000F1 +:041BF10000000000F0 +:041BF20000000000EF +:041BF30000000000EE +:041BF40000000000ED +:041BF50000000000EC +:041BF60000000000EB +:041BF70000000000EA +:041BF80000000000E9 +:041BF90000000000E8 +:041BFA0000000000E7 +:041BFB0000000000E6 +:041BFC0000000000E5 +:041BFD0000000000E4 +:041BFE0000000000E3 +:041BFF0000000000E2 +:041C000000000000E0 +:041C010000000000DF +:041C020000000000DE +:041C030000000000DD +:041C040000000000DC +:041C050000000000DB +:041C060000000000DA +:041C070000000000D9 +:041C080000000000D8 +:041C090000000000D7 +:041C0A0000000000D6 +:041C0B0000000000D5 +:041C0C0000000000D4 +:041C0D0000000000D3 +:041C0E0000000000D2 +:041C0F0000000000D1 +:041C100000000000D0 +:041C110000000000CF +:041C120000000000CE +:041C130000000000CD +:041C140000000000CC +:041C150000000000CB +:041C160000000000CA +:041C170000000000C9 +:041C180000000000C8 +:041C190000000000C7 +:041C1A0000000000C6 +:041C1B0000000000C5 +:041C1C0000000000C4 +:041C1D0000000000C3 +:041C1E0000000000C2 +:041C1F0000000000C1 +:041C200000000000C0 +:041C210000000000BF +:041C220000000000BE +:041C230000000000BD +:041C240000000000BC +:041C250000000000BB +:041C260000000000BA +:041C270000000000B9 +:041C280000000000B8 +:041C290000000000B7 +:041C2A0000000000B6 +:041C2B0000000000B5 +:041C2C0000000000B4 +:041C2D0000000000B3 +:041C2E0000000000B2 +:041C2F0000000000B1 +:041C300000000000B0 +:041C310000000000AF +:041C320000000000AE +:041C330000000000AD +:041C340000000000AC +:041C350000000000AB +:041C360000000000AA +:041C370000000000A9 +:041C380000000000A8 +:041C390000000000A7 +:041C3A0000000000A6 +:041C3B0000000000A5 +:041C3C0000000000A4 +:041C3D0000000000A3 +:041C3E0000000000A2 +:041C3F0000000000A1 +:041C400000000000A0 +:041C4100000000009F +:041C4200000000009E +:041C4300000000009D +:041C4400000000009C +:041C4500000000009B +:041C4600000000009A +:041C47000000000099 +:041C48000000000098 +:041C49000000000097 +:041C4A000000000096 +:041C4B000000000095 +:041C4C000000000094 +:041C4D000000000093 +:041C4E000000000092 +:041C4F000000000091 +:041C50000000000090 +:041C5100000000008F +:041C5200000000008E +:041C5300000000008D +:041C5400000000008C +:041C5500000000008B +:041C5600000000008A +:041C57000000000089 +:041C58000000000088 +:041C59000000000087 +:041C5A000000000086 +:041C5B000000000085 +:041C5C000000000084 +:041C5D000000000083 +:041C5E000000000082 +:041C5F000000000081 +:041C60000000000080 +:041C6100000000007F +:041C6200000000007E +:041C6300000000007D +:041C6400000000007C +:041C6500000000007B +:041C6600000000007A +:041C67000000000079 +:041C68000000000078 +:041C69000000000077 +:041C6A000000000076 +:041C6B000000000075 +:041C6C000000000074 +:041C6D000000000073 +:041C6E000000000072 +:041C6F000000000071 +:041C70000000000070 +:041C7100000000006F +:041C7200000000006E +:041C7300000000006D +:041C7400000000006C +:041C7500000000006B +:041C7600000000006A +:041C77000000000069 +:041C78000000000068 +:041C79000000000067 +:041C7A000000000066 +:041C7B000000000065 +:041C7C000000000064 +:041C7D000000000063 +:041C7E000000000062 +:041C7F000000000061 +:041C80000000000060 +:041C8100000000005F +:041C8200000000005E +:041C8300000000005D +:041C8400000000005C +:041C8500000000005B +:041C8600000000005A +:041C87000000000059 +:041C88000000000058 +:041C89000000000057 +:041C8A000000000056 +:041C8B000000000055 +:041C8C000000000054 +:041C8D000000000053 +:041C8E000000000052 +:041C8F000000000051 +:041C90000000000050 +:041C9100000000004F +:041C9200000000004E +:041C9300000000004D +:041C9400000000004C +:041C9500000000004B +:041C9600000000004A +:041C97000000000049 +:041C98000000000048 +:041C99000000000047 +:041C9A000000000046 +:041C9B000000000045 +:041C9C000000000044 +:041C9D000000000043 +:041C9E000000000042 +:041C9F000000000041 +:041CA0000000000040 +:041CA100000000003F +:041CA200000000003E +:041CA300000000003D +:041CA400000000003C +:041CA500000000003B +:041CA600000000003A +:041CA7000000000039 +:041CA8000000000038 +:041CA9000000000037 +:041CAA000000000036 +:041CAB000000000035 +:041CAC000000000034 +:041CAD000000000033 +:041CAE000000000032 +:041CAF000000000031 +:041CB0000000000030 +:041CB100000000002F +:041CB200000000002E +:041CB300000000002D +:041CB400000000002C +:041CB500000000002B +:041CB600000000002A +:041CB7000000000029 +:041CB8000000000028 +:041CB9000000000027 +:041CBA000000000026 +:041CBB000000000025 +:041CBC000000000024 +:041CBD000000000023 +:041CBE000000000022 +:041CBF000000000021 +:041CC0000000000020 +:041CC100000000001F +:041CC200000000001E +:041CC300000000001D +:041CC400000000001C +:041CC500000000001B +:041CC600000000001A +:041CC7000000000019 +:041CC8000000000018 +:041CC9000000000017 +:041CCA000000000016 +:041CCB000000000015 +:041CCC000000000014 +:041CCD000000000013 +:041CCE000000000012 +:041CCF000000000011 +:041CD0000000000010 +:041CD100000000000F +:041CD200000000000E +:041CD300000000000D +:041CD400000000000C +:041CD500000000000B +:041CD600000000000A +:041CD7000000000009 +:041CD8000000000008 +:041CD9000000000007 +:041CDA000000000006 +:041CDB000000000005 +:041CDC000000000004 +:041CDD000000000003 +:041CDE000000000002 +:041CDF000000000001 +:041CE0000000000000 +:041CE10000000000FF +:041CE20000000000FE +:041CE30000000000FD +:041CE40000000000FC +:041CE50000000000FB +:041CE60000000000FA +:041CE70000000000F9 +:041CE80000000000F8 +:041CE90000000000F7 +:041CEA0000000000F6 +:041CEB0000000000F5 +:041CEC0000000000F4 +:041CED0000000000F3 +:041CEE0000000000F2 +:041CEF0000000000F1 +:041CF00000000000F0 +:041CF10000000000EF +:041CF20000000000EE +:041CF30000000000ED +:041CF40000000000EC +:041CF50000000000EB +:041CF60000000000EA +:041CF70000000000E9 +:041CF80000000000E8 +:041CF90000000000E7 +:041CFA0000000000E6 +:041CFB0000000000E5 +:041CFC0000000000E4 +:041CFD0000000000E3 +:041CFE0000000000E2 +:041CFF0000000000E1 +:041D000000000000DF +:041D010000000000DE +:041D020000000000DD +:041D030000000000DC +:041D040000000000DB +:041D050000000000DA +:041D060000000000D9 +:041D070000000000D8 +:041D080000000000D7 +:041D090000000000D6 +:041D0A0000000000D5 +:041D0B0000000000D4 +:041D0C0000000000D3 +:041D0D0000000000D2 +:041D0E0000000000D1 +:041D0F0000000000D0 +:041D100000000000CF +:041D110000000000CE +:041D120000000000CD +:041D130000000000CC +:041D140000000000CB +:041D150000000000CA +:041D160000000000C9 +:041D170000000000C8 +:041D180000000000C7 +:041D190000000000C6 +:041D1A0000000000C5 +:041D1B0000000000C4 +:041D1C0000000000C3 +:041D1D0000000000C2 +:041D1E0000000000C1 +:041D1F0000000000C0 +:041D200000000000BF +:041D210000000000BE +:041D220000000000BD +:041D230000000000BC +:041D240000000000BB +:041D250000000000BA +:041D260000000000B9 +:041D270000000000B8 +:041D280000000000B7 +:041D290000000000B6 +:041D2A0000000000B5 +:041D2B0000000000B4 +:041D2C0000000000B3 +:041D2D0000000000B2 +:041D2E0000000000B1 +:041D2F0000000000B0 +:041D300000000000AF +:041D310000000000AE +:041D320000000000AD +:041D330000000000AC +:041D340000000000AB +:041D350000000000AA +:041D360000000000A9 +:041D370000000000A8 +:041D380000000000A7 +:041D390000000000A6 +:041D3A0000000000A5 +:041D3B0000000000A4 +:041D3C0000000000A3 +:041D3D0000000000A2 +:041D3E0000000000A1 +:041D3F0000000000A0 +:041D4000000000009F +:041D4100000000009E +:041D4200000000009D +:041D4300000000009C +:041D4400000000009B +:041D4500000000009A +:041D46000000000099 +:041D47000000000098 +:041D48000000000097 +:041D49000000000096 +:041D4A000000000095 +:041D4B000000000094 +:041D4C000000000093 +:041D4D000000000092 +:041D4E000000000091 +:041D4F000000000090 +:041D5000000000008F +:041D5100000000008E +:041D5200000000008D +:041D5300000000008C +:041D5400000000008B +:041D5500000000008A +:041D56000000000089 +:041D57000000000088 +:041D58000000000087 +:041D59000000000086 +:041D5A000000000085 +:041D5B000000000084 +:041D5C000000000083 +:041D5D000000000082 +:041D5E000000000081 +:041D5F000000000080 +:041D6000000000007F +:041D6100000000007E +:041D6200000000007D +:041D6300000000007C +:041D6400000000007B +:041D6500000000007A +:041D66000000000079 +:041D67000000000078 +:041D68000000000077 +:041D69000000000076 +:041D6A000000000075 +:041D6B000000000074 +:041D6C000000000073 +:041D6D000000000072 +:041D6E000000000071 +:041D6F000000000070 +:041D7000000000006F +:041D7100000000006E +:041D7200000000006D +:041D7300000000006C +:041D7400000000006B +:041D7500000000006A +:041D76000000000069 +:041D77000000000068 +:041D78000000000067 +:041D79000000000066 +:041D7A000000000065 +:041D7B000000000064 +:041D7C000000000063 +:041D7D000000000062 +:041D7E000000000061 +:041D7F000000000060 +:041D8000000000005F +:041D8100000000005E +:041D8200000000005D +:041D8300000000005C +:041D8400000000005B +:041D8500000000005A +:041D86000000000059 +:041D87000000000058 +:041D88000000000057 +:041D89000000000056 +:041D8A000000000055 +:041D8B000000000054 +:041D8C000000000053 +:041D8D000000000052 +:041D8E000000000051 +:041D8F000000000050 +:041D9000000000004F +:041D9100000000004E +:041D9200000000004D +:041D9300000000004C +:041D9400000000004B +:041D9500000000004A +:041D96000000000049 +:041D97000000000048 +:041D98000000000047 +:041D99000000000046 +:041D9A000000000045 +:041D9B000000000044 +:041D9C000000000043 +:041D9D000000000042 +:041D9E000000000041 +:041D9F000000000040 +:041DA000000000003F +:041DA100000000003E +:041DA200000000003D +:041DA300000000003C +:041DA400000000003B +:041DA500000000003A +:041DA6000000000039 +:041DA7000000000038 +:041DA8000000000037 +:041DA9000000000036 +:041DAA000000000035 +:041DAB000000000034 +:041DAC000000000033 +:041DAD000000000032 +:041DAE000000000031 +:041DAF000000000030 +:041DB000000000002F +:041DB100000000002E +:041DB200000000002D +:041DB300000000002C +:041DB400000000002B +:041DB500000000002A +:041DB6000000000029 +:041DB7000000000028 +:041DB8000000000027 +:041DB9000000000026 +:041DBA000000000025 +:041DBB000000000024 +:041DBC000000000023 +:041DBD000000000022 +:041DBE000000000021 +:041DBF000000000020 +:041DC000000000001F +:041DC100000000001E +:041DC200000000001D +:041DC300000000001C +:041DC400000000001B +:041DC500000000001A +:041DC6000000000019 +:041DC7000000000018 +:041DC8000000000017 +:041DC9000000000016 +:041DCA000000000015 +:041DCB000000000014 +:041DCC000000000013 +:041DCD000000000012 +:041DCE000000000011 +:041DCF000000000010 +:041DD000000000000F +:041DD100000000000E +:041DD200000000000D +:041DD300000000000C +:041DD400000000000B +:041DD500000000000A +:041DD6000000000009 +:041DD7000000000008 +:041DD8000000000007 +:041DD9000000000006 +:041DDA000000000005 +:041DDB000000000004 +:041DDC000000000003 +:041DDD000000000002 +:041DDE000000000001 +:041DDF000000000000 +:041DE00000000000FF +:041DE10000000000FE +:041DE20000000000FD +:041DE30000000000FC +:041DE40000000000FB +:041DE50000000000FA +:041DE60000000000F9 +:041DE70000000000F8 +:041DE80000000000F7 +:041DE90000000000F6 +:041DEA0000000000F5 +:041DEB0000000000F4 +:041DEC0000000000F3 +:041DED0000000000F2 +:041DEE0000000000F1 +:041DEF0000000000F0 +:041DF00000000000EF +:041DF10000000000EE +:041DF20000000000ED +:041DF30000000000EC +:041DF40000000000EB +:041DF50000000000EA +:041DF60000000000E9 +:041DF70000000000E8 +:041DF80000000000E7 +:041DF90000000000E6 +:041DFA0000000000E5 +:041DFB0000000000E4 +:041DFC0000000000E3 +:041DFD0000000000E2 +:041DFE0000000000E1 +:041DFF0000000000E0 +:041E000000000000DE +:041E010000000000DD +:041E020000000000DC +:041E030000000000DB +:041E040000000000DA +:041E050000000000D9 +:041E060000000000D8 +:041E070000000000D7 +:041E080000000000D6 +:041E090000000000D5 +:041E0A0000000000D4 +:041E0B0000000000D3 +:041E0C0000000000D2 +:041E0D0000000000D1 +:041E0E0000000000D0 +:041E0F0000000000CF +:041E100000000000CE +:041E110000000000CD +:041E120000000000CC +:041E130000000000CB +:041E140000000000CA +:041E150000000000C9 +:041E160000000000C8 +:041E170000000000C7 +:041E180000000000C6 +:041E190000000000C5 +:041E1A0000000000C4 +:041E1B0000000000C3 +:041E1C0000000000C2 +:041E1D0000000000C1 +:041E1E0000000000C0 +:041E1F0000000000BF +:041E200000000000BE +:041E210000000000BD +:041E220000000000BC +:041E230000000000BB +:041E240000000000BA +:041E250000000000B9 +:041E260000000000B8 +:041E270000000000B7 +:041E280000000000B6 +:041E290000000000B5 +:041E2A0000000000B4 +:041E2B0000000000B3 +:041E2C0000000000B2 +:041E2D0000000000B1 +:041E2E0000000000B0 +:041E2F0000000000AF +:041E300000000000AE +:041E310000000000AD +:041E320000000000AC +:041E330000000000AB +:041E340000000000AA +:041E350000000000A9 +:041E360000000000A8 +:041E370000000000A7 +:041E380000000000A6 +:041E390000000000A5 +:041E3A0000000000A4 +:041E3B0000000000A3 +:041E3C0000000000A2 +:041E3D0000000000A1 +:041E3E0000000000A0 +:041E3F00000000009F +:041E4000000000009E +:041E4100000000009D +:041E4200000000009C +:041E4300000000009B +:041E4400000000009A +:041E45000000000099 +:041E46000000000098 +:041E47000000000097 +:041E48000000000096 +:041E49000000000095 +:041E4A000000000094 +:041E4B000000000093 +:041E4C000000000092 +:041E4D000000000091 +:041E4E000000000090 +:041E4F00000000008F +:041E5000000000008E +:041E5100000000008D +:041E5200000000008C +:041E5300000000008B +:041E5400000000008A +:041E55000000000089 +:041E56000000000088 +:041E57000000000087 +:041E58000000000086 +:041E59000000000085 +:041E5A000000000084 +:041E5B000000000083 +:041E5C000000000082 +:041E5D000000000081 +:041E5E000000000080 +:041E5F00000000007F +:041E6000000000007E +:041E6100000000007D +:041E6200000000007C +:041E6300000000007B +:041E6400000000007A +:041E65000000000079 +:041E66000000000078 +:041E67000000000077 +:041E68000000000076 +:041E69000000000075 +:041E6A000000000074 +:041E6B000000000073 +:041E6C000000000072 +:041E6D000000000071 +:041E6E000000000070 +:041E6F00000000006F +:041E7000000000006E +:041E7100000000006D +:041E7200000000006C +:041E7300000000006B +:041E7400000000006A +:041E75000000000069 +:041E76000000000068 +:041E77000000000067 +:041E78000000000066 +:041E79000000000065 +:041E7A000000000064 +:041E7B000000000063 +:041E7C000000000062 +:041E7D000000000061 +:041E7E000000000060 +:041E7F00000000005F +:041E8000000000005E +:041E8100000000005D +:041E8200000000005C +:041E8300000000005B +:041E8400000000005A +:041E85000000000059 +:041E86000000000058 +:041E87000000000057 +:041E88000000000056 +:041E89000000000055 +:041E8A000000000054 +:041E8B000000000053 +:041E8C000000000052 +:041E8D000000000051 +:041E8E000000000050 +:041E8F00000000004F +:041E9000000000004E +:041E9100000000004D +:041E9200000000004C +:041E9300000000004B +:041E9400000000004A +:041E95000000000049 +:041E96000000000048 +:041E97000000000047 +:041E98000000000046 +:041E99000000000045 +:041E9A000000000044 +:041E9B000000000043 +:041E9C000000000042 +:041E9D000000000041 +:041E9E000000000040 +:041E9F00000000003F +:041EA000000000003E +:041EA100000000003D +:041EA200000000003C +:041EA300000000003B +:041EA400000000003A +:041EA5000000000039 +:041EA6000000000038 +:041EA7000000000037 +:041EA8000000000036 +:041EA9000000000035 +:041EAA000000000034 +:041EAB000000000033 +:041EAC000000000032 +:041EAD000000000031 +:041EAE000000000030 +:041EAF00000000002F +:041EB000000000002E +:041EB100000000002D +:041EB200000000002C +:041EB300000000002B +:041EB400000000002A +:041EB5000000000029 +:041EB6000000000028 +:041EB7000000000027 +:041EB8000000000026 +:041EB9000000000025 +:041EBA000000000024 +:041EBB000000000023 +:041EBC000000000022 +:041EBD000000000021 +:041EBE000000000020 +:041EBF00000000001F +:041EC000000000001E +:041EC100000000001D +:041EC200000000001C +:041EC300000000001B +:041EC400000000001A +:041EC5000000000019 +:041EC6000000000018 +:041EC7000000000017 +:041EC8000000000016 +:041EC9000000000015 +:041ECA000000000014 +:041ECB000000000013 +:041ECC000000000012 +:041ECD000000000011 +:041ECE000000000010 +:041ECF00000000000F +:041ED000000000000E +:041ED100000000000D +:041ED200000000000C +:041ED300000000000B +:041ED400000000000A +:041ED5000000000009 +:041ED6000000000008 +:041ED7000000000007 +:041ED8000000000006 +:041ED9000000000005 +:041EDA000000000004 +:041EDB000000000003 +:041EDC000000000002 +:041EDD000000000001 +:041EDE000000000000 +:041EDF0000000000FF +:041EE00000000000FE +:041EE10000000000FD +:041EE20000000000FC +:041EE30000000000FB +:041EE40000000000FA +:041EE50000000000F9 +:041EE60000000000F8 +:041EE70000000000F7 +:041EE80000000000F6 +:041EE90000000000F5 +:041EEA0000000000F4 +:041EEB0000000000F3 +:041EEC0000000000F2 +:041EED0000000000F1 +:041EEE0000000000F0 +:041EEF0000000000EF +:041EF00000000000EE +:041EF10000000000ED +:041EF20000000000EC +:041EF30000000000EB +:041EF40000000000EA +:041EF50000000000E9 +:041EF60000000000E8 +:041EF70000000000E7 +:041EF80000000000E6 +:041EF90000000000E5 +:041EFA0000000000E4 +:041EFB0000000000E3 +:041EFC0000000000E2 +:041EFD0000000000E1 +:041EFE0000000000E0 +:041EFF0000000000DF +:041F000000000000DD +:041F010000000000DC +:041F020000000000DB +:041F030000000000DA +:041F040000000000D9 +:041F050000000000D8 +:041F060000000000D7 +:041F070000000000D6 +:041F080000000000D5 +:041F090000000000D4 +:041F0A0000000000D3 +:041F0B0000000000D2 +:041F0C0000000000D1 +:041F0D0000000000D0 +:041F0E0000000000CF +:041F0F0000000000CE +:041F100000000000CD +:041F110000000000CC +:041F120000000000CB +:041F130000000000CA +:041F140000000000C9 +:041F150000000000C8 +:041F160000000000C7 +:041F170000000000C6 +:041F180000000000C5 +:041F190000000000C4 +:041F1A0000000000C3 +:041F1B0000000000C2 +:041F1C0000000000C1 +:041F1D0000000000C0 +:041F1E0000000000BF +:041F1F0000000000BE +:041F200000000000BD +:041F210000000000BC +:041F220000000000BB +:041F230000000000BA +:041F240000000000B9 +:041F250000000000B8 +:041F260000000000B7 +:041F270000000000B6 +:041F280000000000B5 +:041F290000000000B4 +:041F2A0000000000B3 +:041F2B0000000000B2 +:041F2C0000000000B1 +:041F2D0000000000B0 +:041F2E0000000000AF +:041F2F0000000000AE +:041F300000000000AD +:041F310000000000AC +:041F320000000000AB +:041F330000000000AA +:041F340000000000A9 +:041F350000000000A8 +:041F360000000000A7 +:041F370000000000A6 +:041F380000000000A5 +:041F390000000000A4 +:041F3A0000000000A3 +:041F3B0000000000A2 +:041F3C0000000000A1 +:041F3D0000000000A0 +:041F3E00000000009F +:041F3F00000000009E +:041F4000000000009D +:041F4100000000009C +:041F4200000000009B +:041F4300000000009A +:041F44000000000099 +:041F45000000000098 +:041F46000000000097 +:041F47000000000096 +:041F48000000000095 +:041F49000000000094 +:041F4A000000000093 +:041F4B000000000092 +:041F4C000000000091 +:041F4D000000000090 +:041F4E00000000008F +:041F4F00000000008E +:041F5000000000008D +:041F5100000000008C +:041F5200000000008B +:041F5300000000008A +:041F54000000000089 +:041F55000000000088 +:041F56000000000087 +:041F57000000000086 +:041F58000000000085 +:041F59000000000084 +:041F5A000000000083 +:041F5B000000000082 +:041F5C000000000081 +:041F5D000000000080 +:041F5E00000000007F +:041F5F00000000007E +:041F6000000000007D +:041F6100000000007C +:041F6200000000007B +:041F6300000000007A +:041F64000000000079 +:041F65000000000078 +:041F66000000000077 +:041F67000000000076 +:041F68000000000075 +:041F69000000000074 +:041F6A000000000073 +:041F6B000000000072 +:041F6C000000000071 +:041F6D000000000070 +:041F6E00000000006F +:041F6F00000000006E +:041F7000000000006D +:041F7100000000006C +:041F7200000000006B +:041F7300000000006A +:041F74000000000069 +:041F75000000000068 +:041F76000000000067 +:041F77000000000066 +:041F78000000000065 +:041F79000000000064 +:041F7A000000000063 +:041F7B000000000062 +:041F7C000000000061 +:041F7D000000000060 +:041F7E00000000005F +:041F7F00000000005E +:041F8000000000005D +:041F8100000000005C +:041F8200000000005B +:041F8300000000005A +:041F84000000000059 +:041F85000000000058 +:041F86000000000057 +:041F87000000000056 +:041F88000000000055 +:041F89000000000054 +:041F8A000000000053 +:041F8B000000000052 +:041F8C000000000051 +:041F8D000000000050 +:041F8E00000000004F +:041F8F00000000004E +:041F9000000000004D +:041F9100000000004C +:041F9200000000004B +:041F9300000000004A +:041F94000000000049 +:041F95000000000048 +:041F96000000000047 +:041F97000000000046 +:041F98000000000045 +:041F99000000000044 +:041F9A000000000043 +:041F9B000000000042 +:041F9C000000000041 +:041F9D000000000040 +:041F9E00000000003F +:041F9F00000000003E +:041FA000000000003D +:041FA100000000003C +:041FA200000000003B +:041FA300000000003A +:041FA4000000000039 +:041FA5000000000038 +:041FA6000000000037 +:041FA7000000000036 +:041FA8000000000035 +:041FA9000000000034 +:041FAA000000000033 +:041FAB000000000032 +:041FAC000000000031 +:041FAD000000000030 +:041FAE00000000002F +:041FAF00000000002E +:041FB000000000002D +:041FB100000000002C +:041FB200000000002B +:041FB300000000002A +:041FB4000000000029 +:041FB5000000000028 +:041FB6000000000027 +:041FB7000000000026 +:041FB8000000000025 +:041FB9000000000024 +:041FBA000000000023 +:041FBB000000000022 +:041FBC000000000021 +:041FBD000000000020 +:041FBE00000000001F +:041FBF00000000001E +:041FC000000000001D +:041FC100000000001C +:041FC200000000001B +:041FC300000000001A +:041FC4000000000019 +:041FC5000000000018 +:041FC6000000000017 +:041FC7000000000016 +:041FC8000000000015 +:041FC9000000000014 +:041FCA000000000013 +:041FCB000000000012 +:041FCC000000000011 +:041FCD000000000010 +:041FCE00000000000F +:041FCF00000000000E +:041FD000000000000D +:041FD100000000000C +:041FD200000000000B +:041FD300000000000A +:041FD4000000000009 +:041FD5000000000008 +:041FD6000000000007 +:041FD7000000000006 +:041FD8000000000005 +:041FD9000000000004 +:041FDA000000000003 +:041FDB000000000002 +:041FDC000000000001 +:041FDD000000000000 +:041FDE0000000000FF +:041FDF0000000000FE +:041FE00000000000FD +:041FE10000000000FC +:041FE20000000000FB +:041FE30000000000FA +:041FE40000000000F9 +:041FE50000000000F8 +:041FE60000000000F7 +:041FE70000000000F6 +:041FE80000000000F5 +:041FE90000000000F4 +:041FEA0000000000F3 +:041FEB0000000000F2 +:041FEC0000000000F1 +:041FED0000000000F0 +:041FEE0000000000EF +:041FEF0000000000EE +:041FF00000000000ED +:041FF10000000000EC +:041FF20000000000EB +:041FF30000000000EA +:041FF40000000000E9 +:041FF50000000000E8 +:041FF60000000000E7 +:041FF70000000000E6 +:041FF80000000000E5 +:041FF90000000000E4 +:041FFA0000000000E3 +:041FFB0000000000E2 +:041FFC0000000000E1 +:041FFD0000000000E0 +:041FFE0000000000DF +:041FFF0000000000DE +:0420000000000000DC +:0420010000000000DB +:0420020000000000DA +:0420030000000000D9 +:0420040000000000D8 +:0420050000000000D7 +:0420060000000000D6 +:0420070000000000D5 +:0420080000000000D4 +:0420090000000000D3 +:04200A0000000000D2 +:04200B0000000000D1 +:04200C0000000000D0 +:04200D0000000000CF +:04200E0000000000CE +:04200F0000000000CD +:0420100000000000CC +:0420110000000000CB +:0420120000000000CA +:0420130000000000C9 +:0420140000000000C8 +:0420150000000000C7 +:0420160000000000C6 +:0420170000000000C5 +:0420180000000000C4 +:0420190000000000C3 +:04201A0000000000C2 +:04201B0000000000C1 +:04201C0000000000C0 +:04201D0000000000BF +:04201E0000000000BE +:04201F0000000000BD +:0420200000000000BC +:0420210000000000BB +:0420220000000000BA +:0420230000000000B9 +:0420240000000000B8 +:0420250000000000B7 +:0420260000000000B6 +:0420270000000000B5 +:0420280000000000B4 +:0420290000000000B3 +:04202A0000000000B2 +:04202B0000000000B1 +:04202C0000000000B0 +:04202D0000000000AF +:04202E0000000000AE +:04202F0000000000AD +:0420300000000000AC +:0420310000000000AB +:0420320000000000AA +:0420330000000000A9 +:0420340000000000A8 +:0420350000000000A7 +:0420360000000000A6 +:0420370000000000A5 +:0420380000000000A4 +:0420390000000000A3 +:04203A0000000000A2 +:04203B0000000000A1 +:04203C0000000000A0 +:04203D00000000009F +:04203E00000000009E +:04203F00000000009D +:04204000000000009C +:04204100000000009B +:04204200000000009A +:042043000000000099 +:042044000000000098 +:042045000000000097 +:042046000000000096 +:042047000000000095 +:042048000000000094 +:042049000000000093 +:04204A000000000092 +:04204B000000000091 +:04204C000000000090 +:04204D00000000008F +:04204E00000000008E +:04204F00000000008D +:04205000000000008C +:04205100000000008B +:04205200000000008A +:042053000000000089 +:042054000000000088 +:042055000000000087 +:042056000000000086 +:042057000000000085 +:042058000000000084 +:042059000000000083 +:04205A000000000082 +:04205B000000000081 +:04205C000000000080 +:04205D00000000007F +:04205E00000000007E +:04205F00000000007D +:04206000000000007C +:04206100000000007B +:04206200000000007A +:042063000000000079 +:042064000000000078 +:042065000000000077 +:042066000000000076 +:042067000000000075 +:042068000000000074 +:042069000000000073 +:04206A000000000072 +:04206B000000000071 +:04206C000000000070 +:04206D00000000006F +:04206E00000000006E +:04206F00000000006D +:04207000000000006C +:04207100000000006B +:04207200000000006A +:042073000000000069 +:042074000000000068 +:042075000000000067 +:042076000000000066 +:042077000000000065 +:042078000000000064 +:042079000000000063 +:04207A000000000062 +:04207B000000000061 +:04207C000000000060 +:04207D00000000005F +:04207E00000000005E +:04207F00000000005D +:04208000000000005C +:04208100000000005B +:04208200000000005A +:042083000000000059 +:042084000000000058 +:042085000000000057 +:042086000000000056 +:042087000000000055 +:042088000000000054 +:042089000000000053 +:04208A000000000052 +:04208B000000000051 +:04208C000000000050 +:04208D00000000004F +:04208E00000000004E +:04208F00000000004D +:04209000000000004C +:04209100000000004B +:04209200000000004A +:042093000000000049 +:042094000000000048 +:042095000000000047 +:042096000000000046 +:042097000000000045 +:042098000000000044 +:042099000000000043 +:04209A000000000042 +:04209B000000000041 +:04209C000000000040 +:04209D00000000003F +:04209E00000000003E +:04209F00000000003D +:0420A000000000003C +:0420A100000000003B +:0420A200000000003A +:0420A3000000000039 +:0420A4000000000038 +:0420A5000000000037 +:0420A6000000000036 +:0420A7000000000035 +:0420A8000000000034 +:0420A9000000000033 +:0420AA000000000032 +:0420AB000000000031 +:0420AC000000000030 +:0420AD00000000002F +:0420AE00000000002E +:0420AF00000000002D +:0420B000000000002C +:0420B100000000002B +:0420B200000000002A +:0420B3000000000029 +:0420B4000000000028 +:0420B5000000000027 +:0420B6000000000026 +:0420B7000000000025 +:0420B8000000000024 +:0420B9000000000023 +:0420BA000000000022 +:0420BB000000000021 +:0420BC000000000020 +:0420BD00000000001F +:0420BE00000000001E +:0420BF00000000001D +:0420C000000000001C +:0420C100000000001B +:0420C200000000001A +:0420C3000000000019 +:0420C4000000000018 +:0420C5000000000017 +:0420C6000000000016 +:0420C7000000000015 +:0420C8000000000014 +:0420C9000000000013 +:0420CA000000000012 +:0420CB000000000011 +:0420CC000000000010 +:0420CD00000000000F +:0420CE00000000000E +:0420CF00000000000D +:0420D000000000000C +:0420D100000000000B +:0420D200000000000A +:0420D3000000000009 +:0420D4000000000008 +:0420D5000000000007 +:0420D6000000000006 +:0420D7000000000005 +:0420D8000000000004 +:0420D9000000000003 +:0420DA000000000002 +:0420DB000000000001 +:0420DC000000000000 +:0420DD0000000000FF +:0420DE0000000000FE +:0420DF0000000000FD +:0420E00000000000FC +:0420E10000000000FB +:0420E20000000000FA +:0420E30000000000F9 +:0420E40000000000F8 +:0420E50000000000F7 +:0420E60000000000F6 +:0420E70000000000F5 +:0420E80000000000F4 +:0420E90000000000F3 +:0420EA0000000000F2 +:0420EB0000000000F1 +:0420EC0000000000F0 +:0420ED0000000000EF +:0420EE0000000000EE +:0420EF0000000000ED +:0420F00000000000EC +:0420F10000000000EB +:0420F20000000000EA +:0420F30000000000E9 +:0420F40000000000E8 +:0420F50000000000E7 +:0420F60000000000E6 +:0420F70000000000E5 +:0420F80000000000E4 +:0420F90000000000E3 +:0420FA0000000000E2 +:0420FB0000000000E1 +:0420FC0000000000E0 +:0420FD0000000000DF +:0420FE0000000000DE +:0420FF0000000000DD +:0421000000000000DB +:0421010000000000DA +:0421020000000000D9 +:0421030000000000D8 +:0421040000000000D7 +:0421050000000000D6 +:0421060000000000D5 +:0421070000000000D4 +:0421080000000000D3 +:0421090000000000D2 +:04210A0000000000D1 +:04210B0000000000D0 +:04210C0000000000CF +:04210D0000000000CE +:04210E0000000000CD +:04210F0000000000CC +:0421100000000000CB +:0421110000000000CA +:0421120000000000C9 +:0421130000000000C8 +:0421140000000000C7 +:0421150000000000C6 +:0421160000000000C5 +:0421170000000000C4 +:0421180000000000C3 +:0421190000000000C2 +:04211A0000000000C1 +:04211B0000000000C0 +:04211C0000000000BF +:04211D0000000000BE +:04211E0000000000BD +:04211F0000000000BC +:0421200000000000BB +:0421210000000000BA +:0421220000000000B9 +:0421230000000000B8 +:0421240000000000B7 +:0421250000000000B6 +:0421260000000000B5 +:0421270000000000B4 +:0421280000000000B3 +:0421290000000000B2 +:04212A0000000000B1 +:04212B0000000000B0 +:04212C0000000000AF +:04212D0000000000AE +:04212E0000000000AD +:04212F0000000000AC +:0421300000000000AB +:0421310000000000AA +:0421320000000000A9 +:0421330000000000A8 +:0421340000000000A7 +:0421350000000000A6 +:0421360000000000A5 +:0421370000000000A4 +:0421380000000000A3 +:0421390000000000A2 +:04213A0000000000A1 +:04213B0000000000A0 +:04213C00000000009F +:04213D00000000009E +:04213E00000000009D +:04213F00000000009C +:04214000000000009B +:04214100000000009A +:042142000000000099 +:042143000000000098 +:042144000000000097 +:042145000000000096 +:042146000000000095 +:042147000000000094 +:042148000000000093 +:042149000000000092 +:04214A000000000091 +:04214B000000000090 +:04214C00000000008F +:04214D00000000008E +:04214E00000000008D +:04214F00000000008C +:04215000000000008B +:04215100000000008A +:042152000000000089 +:042153000000000088 +:042154000000000087 +:042155000000000086 +:042156000000000085 +:042157000000000084 +:042158000000000083 +:042159000000000082 +:04215A000000000081 +:04215B000000000080 +:04215C00000000007F +:04215D00000000007E +:04215E00000000007D +:04215F00000000007C +:04216000000000007B +:04216100000000007A +:042162000000000079 +:042163000000000078 +:042164000000000077 +:042165000000000076 +:042166000000000075 +:042167000000000074 +:042168000000000073 +:042169000000000072 +:04216A000000000071 +:04216B000000000070 +:04216C00000000006F +:04216D00000000006E +:04216E00000000006D +:04216F00000000006C +:04217000000000006B +:04217100000000006A +:042172000000000069 +:042173000000000068 +:042174000000000067 +:042175000000000066 +:042176000000000065 +:042177000000000064 +:042178000000000063 +:042179000000000062 +:04217A000000000061 +:04217B000000000060 +:04217C00000000005F +:04217D00000000005E +:04217E00000000005D +:04217F00000000005C +:04218000000000005B +:04218100000000005A +:042182000000000059 +:042183000000000058 +:042184000000000057 +:042185000000000056 +:042186000000000055 +:042187000000000054 +:042188000000000053 +:042189000000000052 +:04218A000000000051 +:04218B000000000050 +:04218C00000000004F +:04218D00000000004E +:04218E00000000004D +:04218F00000000004C +:04219000000000004B +:04219100000000004A +:042192000000000049 +:042193000000000048 +:042194000000000047 +:042195000000000046 +:042196000000000045 +:042197000000000044 +:042198000000000043 +:042199000000000042 +:04219A000000000041 +:04219B000000000040 +:04219C00000000003F +:04219D00000000003E +:04219E00000000003D +:04219F00000000003C +:0421A000000000003B +:0421A100000000003A +:0421A2000000000039 +:0421A3000000000038 +:0421A4000000000037 +:0421A5000000000036 +:0421A6000000000035 +:0421A7000000000034 +:0421A8000000000033 +:0421A9000000000032 +:0421AA000000000031 +:0421AB000000000030 +:0421AC00000000002F +:0421AD00000000002E +:0421AE00000000002D +:0421AF00000000002C +:0421B000000000002B +:0421B100000000002A +:0421B2000000000029 +:0421B3000000000028 +:0421B4000000000027 +:0421B5000000000026 +:0421B6000000000025 +:0421B7000000000024 +:0421B8000000000023 +:0421B9000000000022 +:0421BA000000000021 +:0421BB000000000020 +:0421BC00000000001F +:0421BD00000000001E +:0421BE00000000001D +:0421BF00000000001C +:0421C000000000001B +:0421C100000000001A +:0421C2000000000019 +:0421C3000000000018 +:0421C4000000000017 +:0421C5000000000016 +:0421C6000000000015 +:0421C7000000000014 +:0421C8000000000013 +:0421C9000000000012 +:0421CA000000000011 +:0421CB000000000010 +:0421CC00000000000F +:0421CD00000000000E +:0421CE00000000000D +:0421CF00000000000C +:0421D000000000000B +:0421D100000000000A +:0421D2000000000009 +:0421D3000000000008 +:0421D4000000000007 +:0421D5000000000006 +:0421D6000000000005 +:0421D7000000000004 +:0421D8000000000003 +:0421D9000000000002 +:0421DA000000000001 +:0421DB000000000000 +:0421DC0000000000FF +:0421DD0000000000FE +:0421DE0000000000FD +:0421DF0000000000FC +:0421E00000000000FB +:0421E10000000000FA +:0421E20000000000F9 +:0421E30000000000F8 +:0421E40000000000F7 +:0421E50000000000F6 +:0421E60000000000F5 +:0421E70000000000F4 +:0421E80000000000F3 +:0421E90000000000F2 +:0421EA0000000000F1 +:0421EB0000000000F0 +:0421EC0000000000EF +:0421ED0000000000EE +:0421EE0000000000ED +:0421EF0000000000EC +:0421F00000000000EB +:0421F10000000000EA +:0421F20000000000E9 +:0421F30000000000E8 +:0421F40000000000E7 +:0421F50000000000E6 +:0421F60000000000E5 +:0421F70000000000E4 +:0421F80000000000E3 +:0421F90000000000E2 +:0421FA0000000000E1 +:0421FB0000000000E0 +:0421FC0000000000DF +:0421FD0000000000DE +:0421FE0000000000DD +:0421FF0000000000DC +:0422000000000000DA +:0422010000000000D9 +:0422020000000000D8 +:0422030000000000D7 +:0422040000000000D6 +:0422050000000000D5 +:0422060000000000D4 +:0422070000000000D3 +:0422080000000000D2 +:0422090000000000D1 +:04220A0000000000D0 +:04220B0000000000CF +:04220C0000000000CE +:04220D0000000000CD +:04220E0000000000CC +:04220F0000000000CB +:0422100000000000CA +:0422110000000000C9 +:0422120000000000C8 +:0422130000000000C7 +:0422140000000000C6 +:0422150000000000C5 +:0422160000000000C4 +:0422170000000000C3 +:0422180000000000C2 +:0422190000000000C1 +:04221A0000000000C0 +:04221B0000000000BF +:04221C0000000000BE +:04221D0000000000BD +:04221E0000000000BC +:04221F0000000000BB +:0422200000000000BA +:0422210000000000B9 +:0422220000000000B8 +:0422230000000000B7 +:0422240000000000B6 +:0422250000000000B5 +:0422260000000000B4 +:0422270000000000B3 +:0422280000000000B2 +:0422290000000000B1 +:04222A0000000000B0 +:04222B0000000000AF +:04222C0000000000AE +:04222D0000000000AD +:04222E0000000000AC +:04222F0000000000AB +:0422300000000000AA +:0422310000000000A9 +:0422320000000000A8 +:0422330000000000A7 +:0422340000000000A6 +:0422350000000000A5 +:0422360000000000A4 +:0422370000000000A3 +:0422380000000000A2 +:0422390000000000A1 +:04223A0000000000A0 +:04223B00000000009F +:04223C00000000009E +:04223D00000000009D +:04223E00000000009C +:04223F00000000009B +:04224000000000009A +:042241000000000099 +:042242000000000098 +:042243000000000097 +:042244000000000096 +:042245000000000095 +:042246000000000094 +:042247000000000093 +:042248000000000092 +:042249000000000091 +:04224A000000000090 +:04224B00000000008F +:04224C00000000008E +:04224D00000000008D +:04224E00000000008C +:04224F00000000008B +:04225000000000008A +:042251000000000089 +:042252000000000088 +:042253000000000087 +:042254000000000086 +:042255000000000085 +:042256000000000084 +:042257000000000083 +:042258000000000082 +:042259000000000081 +:04225A000000000080 +:04225B00000000007F +:04225C00000000007E +:04225D00000000007D +:04225E00000000007C +:04225F00000000007B +:04226000000000007A +:042261000000000079 +:042262000000000078 +:042263000000000077 +:042264000000000076 +:042265000000000075 +:042266000000000074 +:042267000000000073 +:042268000000000072 +:042269000000000071 +:04226A000000000070 +:04226B00000000006F +:04226C00000000006E +:04226D00000000006D +:04226E00000000006C +:04226F00000000006B +:04227000000000006A +:042271000000000069 +:042272000000000068 +:042273000000000067 +:042274000000000066 +:042275000000000065 +:042276000000000064 +:042277000000000063 +:042278000000000062 +:042279000000000061 +:04227A000000000060 +:04227B00000000005F +:04227C00000000005E +:04227D00000000005D +:04227E00000000005C +:04227F00000000005B +:04228000000000005A +:042281000000000059 +:042282000000000058 +:042283000000000057 +:042284000000000056 +:042285000000000055 +:042286000000000054 +:042287000000000053 +:042288000000000052 +:042289000000000051 +:04228A000000000050 +:04228B00000000004F +:04228C00000000004E +:04228D00000000004D +:04228E00000000004C +:04228F00000000004B +:04229000000000004A +:042291000000000049 +:042292000000000048 +:042293000000000047 +:042294000000000046 +:042295000000000045 +:042296000000000044 +:042297000000000043 +:042298000000000042 +:042299000000000041 +:04229A000000000040 +:04229B00000000003F +:04229C00000000003E +:04229D00000000003D +:04229E00000000003C +:04229F00000000003B +:0422A000000000003A +:0422A1000000000039 +:0422A2000000000038 +:0422A3000000000037 +:0422A4000000000036 +:0422A5000000000035 +:0422A6000000000034 +:0422A7000000000033 +:0422A8000000000032 +:0422A9000000000031 +:0422AA000000000030 +:0422AB00000000002F +:0422AC00000000002E +:0422AD00000000002D +:0422AE00000000002C +:0422AF00000000002B +:0422B000000000002A +:0422B1000000000029 +:0422B2000000000028 +:0422B3000000000027 +:0422B4000000000026 +:0422B5000000000025 +:0422B6000000000024 +:0422B7000000000023 +:0422B8000000000022 +:0422B9000000000021 +:0422BA000000000020 +:0422BB00000000001F +:0422BC00000000001E +:0422BD00000000001D +:0422BE00000000001C +:0422BF00000000001B +:0422C000000000001A +:0422C1000000000019 +:0422C2000000000018 +:0422C3000000000017 +:0422C4000000000016 +:0422C5000000000015 +:0422C6000000000014 +:0422C7000000000013 +:0422C8000000000012 +:0422C9000000000011 +:0422CA000000000010 +:0422CB00000000000F +:0422CC00000000000E +:0422CD00000000000D +:0422CE00000000000C +:0422CF00000000000B +:0422D000000000000A +:0422D1000000000009 +:0422D2000000000008 +:0422D3000000000007 +:0422D4000000000006 +:0422D5000000000005 +:0422D6000000000004 +:0422D7000000000003 +:0422D8000000000002 +:0422D9000000000001 +:0422DA000000000000 +:0422DB0000000000FF +:0422DC0000000000FE +:0422DD0000000000FD +:0422DE0000000000FC +:0422DF0000000000FB +:0422E00000000000FA +:0422E10000000000F9 +:0422E20000000000F8 +:0422E30000000000F7 +:0422E40000000000F6 +:0422E50000000000F5 +:0422E60000000000F4 +:0422E70000000000F3 +:0422E80000000000F2 +:0422E90000000000F1 +:0422EA0000000000F0 +:0422EB0000000000EF +:0422EC0000000000EE +:0422ED0000000000ED +:0422EE0000000000EC +:0422EF0000000000EB +:0422F00000000000EA +:0422F10000000000E9 +:0422F20000000000E8 +:0422F30000000000E7 +:0422F40000000000E6 +:0422F50000000000E5 +:0422F60000000000E4 +:0422F70000000000E3 +:0422F80000000000E2 +:0422F90000000000E1 +:0422FA0000000000E0 +:0422FB0000000000DF +:0422FC0000000000DE +:0422FD0000000000DD +:0422FE0000000000DC +:0422FF0000000000DB +:0423000000000000D9 +:0423010000000000D8 +:0423020000000000D7 +:0423030000000000D6 +:0423040000000000D5 +:0423050000000000D4 +:0423060000000000D3 +:0423070000000000D2 +:0423080000000000D1 +:0423090000000000D0 +:04230A0000000000CF +:04230B0000000000CE +:04230C0000000000CD +:04230D0000000000CC +:04230E0000000000CB +:04230F0000000000CA +:0423100000000000C9 +:0423110000000000C8 +:0423120000000000C7 +:0423130000000000C6 +:0423140000000000C5 +:0423150000000000C4 +:0423160000000000C3 +:0423170000000000C2 +:0423180000000000C1 +:0423190000000000C0 +:04231A0000000000BF +:04231B0000000000BE +:04231C0000000000BD +:04231D0000000000BC +:04231E0000000000BB +:04231F0000000000BA +:0423200000000000B9 +:0423210000000000B8 +:0423220000000000B7 +:0423230000000000B6 +:0423240000000000B5 +:0423250000000000B4 +:0423260000000000B3 +:0423270000000000B2 +:0423280000000000B1 +:0423290000000000B0 +:04232A0000000000AF +:04232B0000000000AE +:04232C0000000000AD +:04232D0000000000AC +:04232E0000000000AB +:04232F0000000000AA +:0423300000000000A9 +:0423310000000000A8 +:0423320000000000A7 +:0423330000000000A6 +:0423340000000000A5 +:0423350000000000A4 +:0423360000000000A3 +:0423370000000000A2 +:0423380000000000A1 +:0423390000000000A0 +:04233A00000000009F +:04233B00000000009E +:04233C00000000009D +:04233D00000000009C +:04233E00000000009B +:04233F00000000009A +:042340000000000099 +:042341000000000098 +:042342000000000097 +:042343000000000096 +:042344000000000095 +:042345000000000094 +:042346000000000093 +:042347000000000092 +:042348000000000091 +:042349000000000090 +:04234A00000000008F +:04234B00000000008E +:04234C00000000008D +:04234D00000000008C +:04234E00000000008B +:04234F00000000008A +:042350000000000089 +:042351000000000088 +:042352000000000087 +:042353000000000086 +:042354000000000085 +:042355000000000084 +:042356000000000083 +:042357000000000082 +:042358000000000081 +:042359000000000080 +:04235A00000000007F +:04235B00000000007E +:04235C00000000007D +:04235D00000000007C +:04235E00000000007B +:04235F00000000007A +:042360000000000079 +:042361000000000078 +:042362000000000077 +:042363000000000076 +:042364000000000075 +:042365000000000074 +:042366000000000073 +:042367000000000072 +:042368000000000071 +:042369000000000070 +:04236A00000000006F +:04236B00000000006E +:04236C00000000006D +:04236D00000000006C +:04236E00000000006B +:04236F00000000006A +:042370000000000069 +:042371000000000068 +:042372000000000067 +:042373000000000066 +:042374000000000065 +:042375000000000064 +:042376000000000063 +:042377000000000062 +:042378000000000061 +:042379000000000060 +:04237A00000000005F +:04237B00000000005E +:04237C00000000005D +:04237D00000000005C +:04237E00000000005B +:04237F00000000005A +:042380000000000059 +:042381000000000058 +:042382000000000057 +:042383000000000056 +:042384000000000055 +:042385000000000054 +:042386000000000053 +:042387000000000052 +:042388000000000051 +:042389000000000050 +:04238A00000000004F +:04238B00000000004E +:04238C00000000004D +:04238D00000000004C +:04238E00000000004B +:04238F00000000004A +:042390000000000049 +:042391000000000048 +:042392000000000047 +:042393000000000046 +:042394000000000045 +:042395000000000044 +:042396000000000043 +:042397000000000042 +:042398000000000041 +:042399000000000040 +:04239A00000000003F +:04239B00000000003E +:04239C00000000003D +:04239D00000000003C +:04239E00000000003B +:04239F00000000003A +:0423A0000000000039 +:0423A1000000000038 +:0423A2000000000037 +:0423A3000000000036 +:0423A4000000000035 +:0423A5000000000034 +:0423A6000000000033 +:0423A7000000000032 +:0423A8000000000031 +:0423A9000000000030 +:0423AA00000000002F +:0423AB00000000002E +:0423AC00000000002D +:0423AD00000000002C +:0423AE00000000002B +:0423AF00000000002A +:0423B0000000000029 +:0423B1000000000028 +:0423B2000000000027 +:0423B3000000000026 +:0423B4000000000025 +:0423B5000000000024 +:0423B6000000000023 +:0423B7000000000022 +:0423B8000000000021 +:0423B9000000000020 +:0423BA00000000001F +:0423BB00000000001E +:0423BC00000000001D +:0423BD00000000001C +:0423BE00000000001B +:0423BF00000000001A +:0423C0000000000019 +:0423C1000000000018 +:0423C2000000000017 +:0423C3000000000016 +:0423C4000000000015 +:0423C5000000000014 +:0423C6000000000013 +:0423C7000000000012 +:0423C8000000000011 +:0423C9000000000010 +:0423CA00000000000F +:0423CB00000000000E +:0423CC00000000000D +:0423CD00000000000C +:0423CE00000000000B +:0423CF00000000000A +:0423D0000000000009 +:0423D1000000000008 +:0423D2000000000007 +:0423D3000000000006 +:0423D4000000000005 +:0423D5000000000004 +:0423D6000000000003 +:0423D7000000000002 +:0423D8000000000001 +:0423D9000000000000 +:0423DA0000000000FF +:0423DB0000000000FE +:0423DC0000000000FD +:0423DD0000000000FC +:0423DE0000000000FB +:0423DF0000000000FA +:0423E00000000000F9 +:0423E10000000000F8 +:0423E20000000000F7 +:0423E30000000000F6 +:0423E40000000000F5 +:0423E50000000000F4 +:0423E60000000000F3 +:0423E70000000000F2 +:0423E80000000000F1 +:0423E90000000000F0 +:0423EA0000000000EF +:0423EB0000000000EE +:0423EC0000000000ED +:0423ED0000000000EC +:0423EE0000000000EB +:0423EF0000000000EA +:0423F00000000000E9 +:0423F10000000000E8 +:0423F20000000000E7 +:0423F30000000000E6 +:0423F40000000000E5 +:0423F50000000000E4 +:0423F60000000000E3 +:0423F70000000000E2 +:0423F80000000000E1 +:0423F90000000000E0 +:0423FA0000000000DF +:0423FB0000000000DE +:0423FC0000000000DD +:0423FD0000000000DC +:0423FE0000000000DB +:0423FF0000000000DA +:0424000000000000D8 +:0424010000000000D7 +:0424020000000000D6 +:0424030000000000D5 +:0424040000000000D4 +:0424050000000000D3 +:0424060000000000D2 +:0424070000000000D1 +:0424080000000000D0 +:0424090000000000CF +:04240A0000000000CE +:04240B0000000000CD +:04240C0000000000CC +:04240D0000000000CB +:04240E0000000000CA +:04240F0000000000C9 +:0424100000000000C8 +:0424110000000000C7 +:0424120000000000C6 +:0424130000000000C5 +:0424140000000000C4 +:0424150000000000C3 +:0424160000000000C2 +:0424170000000000C1 +:0424180000000000C0 +:0424190000000000BF +:04241A0000000000BE +:04241B0000000000BD +:04241C0000000000BC +:04241D0000000000BB +:04241E0000000000BA +:04241F0000000000B9 +:0424200000000000B8 +:0424210000000000B7 +:0424220000000000B6 +:0424230000000000B5 +:0424240000000000B4 +:0424250000000000B3 +:0424260000000000B2 +:0424270000000000B1 +:0424280000000000B0 +:0424290000000000AF +:04242A0000000000AE +:04242B0000000000AD +:04242C0000000000AC +:04242D0000000000AB +:04242E0000000000AA +:04242F0000000000A9 +:0424300000000000A8 +:0424310000000000A7 +:0424320000000000A6 +:0424330000000000A5 +:0424340000000000A4 +:0424350000000000A3 +:0424360000000000A2 +:0424370000000000A1 +:0424380000000000A0 +:04243900000000009F +:04243A00000000009E +:04243B00000000009D +:04243C00000000009C +:04243D00000000009B +:04243E00000000009A +:04243F000000000099 +:042440000000000098 +:042441000000000097 +:042442000000000096 +:042443000000000095 +:042444000000000094 +:042445000000000093 +:042446000000000092 +:042447000000000091 +:042448000000000090 +:04244900000000008F +:04244A00000000008E +:04244B00000000008D +:04244C00000000008C +:04244D00000000008B +:04244E00000000008A +:04244F000000000089 +:042450000000000088 +:042451000000000087 +:042452000000000086 +:042453000000000085 +:042454000000000084 +:042455000000000083 +:042456000000000082 +:042457000000000081 +:042458000000000080 +:04245900000000007F +:04245A00000000007E +:04245B00000000007D +:04245C00000000007C +:04245D00000000007B +:04245E00000000007A +:04245F000000000079 +:042460000000000078 +:042461000000000077 +:042462000000000076 +:042463000000000075 +:042464000000000074 +:042465000000000073 +:042466000000000072 +:042467000000000071 +:042468000000000070 +:04246900000000006F +:04246A00000000006E +:04246B00000000006D +:04246C00000000006C +:04246D00000000006B +:04246E00000000006A +:04246F000000000069 +:042470000000000068 +:042471000000000067 +:042472000000000066 +:042473000000000065 +:042474000000000064 +:042475000000000063 +:042476000000000062 +:042477000000000061 +:042478000000000060 +:04247900000000005F +:04247A00000000005E +:04247B00000000005D +:04247C00000000005C +:04247D00000000005B +:04247E00000000005A +:04247F000000000059 +:042480000000000058 +:042481000000000057 +:042482000000000056 +:042483000000000055 +:042484000000000054 +:042485000000000053 +:042486000000000052 +:042487000000000051 +:042488000000000050 +:04248900000000004F +:04248A00000000004E +:04248B00000000004D +:04248C00000000004C +:04248D00000000004B +:04248E00000000004A +:04248F000000000049 +:042490000000000048 +:042491000000000047 +:042492000000000046 +:042493000000000045 +:042494000000000044 +:042495000000000043 +:042496000000000042 +:042497000000000041 +:042498000000000040 +:04249900000000003F +:04249A00000000003E +:04249B00000000003D +:04249C00000000003C +:04249D00000000003B +:04249E00000000003A +:04249F000000000039 +:0424A0000000000038 +:0424A1000000000037 +:0424A2000000000036 +:0424A3000000000035 +:0424A4000000000034 +:0424A5000000000033 +:0424A6000000000032 +:0424A7000000000031 +:0424A8000000000030 +:0424A900000000002F +:0424AA00000000002E +:0424AB00000000002D +:0424AC00000000002C +:0424AD00000000002B +:0424AE00000000002A +:0424AF000000000029 +:0424B0000000000028 +:0424B1000000000027 +:0424B2000000000026 +:0424B3000000000025 +:0424B4000000000024 +:0424B5000000000023 +:0424B6000000000022 +:0424B7000000000021 +:0424B8000000000020 +:0424B900000000001F +:0424BA00000000001E +:0424BB00000000001D +:0424BC00000000001C +:0424BD00000000001B +:0424BE00000000001A +:0424BF000000000019 +:0424C0000000000018 +:0424C1000000000017 +:0424C2000000000016 +:0424C3000000000015 +:0424C4000000000014 +:0424C5000000000013 +:0424C6000000000012 +:0424C7000000000011 +:0424C8000000000010 +:0424C900000000000F +:0424CA00000000000E +:0424CB00000000000D +:0424CC00000000000C +:0424CD00000000000B +:0424CE00000000000A +:0424CF000000000009 +:0424D0000000000008 +:0424D1000000000007 +:0424D2000000000006 +:0424D3000000000005 +:0424D4000000000004 +:0424D5000000000003 +:0424D6000000000002 +:0424D7000000000001 +:0424D8000000000000 +:0424D90000000000FF +:0424DA0000000000FE +:0424DB0000000000FD +:0424DC0000000000FC +:0424DD0000000000FB +:0424DE0000000000FA +:0424DF0000000000F9 +:0424E00000000000F8 +:0424E10000000000F7 +:0424E20000000000F6 +:0424E30000000000F5 +:0424E40000000000F4 +:0424E50000000000F3 +:0424E60000000000F2 +:0424E70000000000F1 +:0424E80000000000F0 +:0424E90000000000EF +:0424EA0000000000EE +:0424EB0000000000ED +:0424EC0000000000EC +:0424ED0000000000EB +:0424EE0000000000EA +:0424EF0000000000E9 +:0424F00000000000E8 +:0424F10000000000E7 +:0424F20000000000E6 +:0424F30000000000E5 +:0424F40000000000E4 +:0424F50000000000E3 +:0424F60000000000E2 +:0424F70000000000E1 +:0424F80000000000E0 +:0424F90000000000DF +:0424FA0000000000DE +:0424FB0000000000DD +:0424FC0000000000DC +:0424FD0000000000DB +:0424FE0000000000DA +:0424FF0000000000D9 +:0425000000000000D7 +:0425010000000000D6 +:0425020000000000D5 +:0425030000000000D4 +:0425040000000000D3 +:0425050000000000D2 +:0425060000000000D1 +:0425070000000000D0 +:0425080000000000CF +:0425090000000000CE +:04250A0000000000CD +:04250B0000000000CC +:04250C0000000000CB +:04250D0000000000CA +:04250E0000000000C9 +:04250F0000000000C8 +:0425100000000000C7 +:0425110000000000C6 +:0425120000000000C5 +:0425130000000000C4 +:0425140000000000C3 +:0425150000000000C2 +:0425160000000000C1 +:0425170000000000C0 +:0425180000000000BF +:0425190000000000BE +:04251A0000000000BD +:04251B0000000000BC +:04251C0000000000BB +:04251D0000000000BA +:04251E0000000000B9 +:04251F0000000000B8 +:0425200000000000B7 +:0425210000000000B6 +:0425220000000000B5 +:0425230000000000B4 +:0425240000000000B3 +:0425250000000000B2 +:0425260000000000B1 +:0425270000000000B0 +:0425280000000000AF +:0425290000000000AE +:04252A0000000000AD +:04252B0000000000AC +:04252C0000000000AB +:04252D0000000000AA +:04252E0000000000A9 +:04252F0000000000A8 +:0425300000000000A7 +:0425310000000000A6 +:0425320000000000A5 +:0425330000000000A4 +:0425340000000000A3 +:0425350000000000A2 +:0425360000000000A1 +:0425370000000000A0 +:04253800000000009F +:04253900000000009E +:04253A00000000009D +:04253B00000000009C +:04253C00000000009B +:04253D00000000009A +:04253E000000000099 +:04253F000000000098 +:042540000000000097 +:042541000000000096 +:042542000000000095 +:042543000000000094 +:042544000000000093 +:042545000000000092 +:042546000000000091 +:042547000000000090 +:04254800000000008F +:04254900000000008E +:04254A00000000008D +:04254B00000000008C +:04254C00000000008B +:04254D00000000008A +:04254E000000000089 +:04254F000000000088 +:042550000000000087 +:042551000000000086 +:042552000000000085 +:042553000000000084 +:042554000000000083 +:042555000000000082 +:042556000000000081 +:042557000000000080 +:04255800000000007F +:04255900000000007E +:04255A00000000007D +:04255B00000000007C +:04255C00000000007B +:04255D00000000007A +:04255E000000000079 +:04255F000000000078 +:042560000000000077 +:042561000000000076 +:042562000000000075 +:042563000000000074 +:042564000000000073 +:042565000000000072 +:042566000000000071 +:042567000000000070 +:04256800000000006F +:04256900000000006E +:04256A00000000006D +:04256B00000000006C +:04256C00000000006B +:04256D00000000006A +:04256E000000000069 +:04256F000000000068 +:042570000000000067 +:042571000000000066 +:042572000000000065 +:042573000000000064 +:042574000000000063 +:042575000000000062 +:042576000000000061 +:042577000000000060 +:04257800000000005F +:04257900000000005E +:04257A00000000005D +:04257B00000000005C +:04257C00000000005B +:04257D00000000005A +:04257E000000000059 +:04257F000000000058 +:042580000000000057 +:042581000000000056 +:042582000000000055 +:042583000000000054 +:042584000000000053 +:042585000000000052 +:042586000000000051 +:042587000000000050 +:04258800000000004F +:04258900000000004E +:04258A00000000004D +:04258B00000000004C +:04258C00000000004B +:04258D00000000004A +:04258E000000000049 +:04258F000000000048 +:042590000000000047 +:042591000000000046 +:042592000000000045 +:042593000000000044 +:042594000000000043 +:042595000000000042 +:042596000000000041 +:042597000000000040 +:04259800000000003F +:04259900000000003E +:04259A00000000003D +:04259B00000000003C +:04259C00000000003B +:04259D00000000003A +:04259E000000000039 +:04259F000000000038 +:0425A0000000000037 +:0425A1000000000036 +:0425A2000000000035 +:0425A3000000000034 +:0425A4000000000033 +:0425A5000000000032 +:0425A6000000000031 +:0425A7000000000030 +:0425A800000000002F +:0425A900000000002E +:0425AA00000000002D +:0425AB00000000002C +:0425AC00000000002B +:0425AD00000000002A +:0425AE000000000029 +:0425AF000000000028 +:0425B0000000000027 +:0425B1000000000026 +:0425B2000000000025 +:0425B3000000000024 +:0425B4000000000023 +:0425B5000000000022 +:0425B6000000000021 +:0425B7000000000020 +:0425B800000000001F +:0425B900000000001E +:0425BA00000000001D +:0425BB00000000001C +:0425BC00000000001B +:0425BD00000000001A +:0425BE000000000019 +:0425BF000000000018 +:0425C0000000000017 +:0425C1000000000016 +:0425C2000000000015 +:0425C3000000000014 +:0425C4000000000013 +:0425C5000000000012 +:0425C6000000000011 +:0425C7000000000010 +:0425C800000000000F +:0425C900000000000E +:0425CA00000000000D +:0425CB00000000000C +:0425CC00000000000B +:0425CD00000000000A +:0425CE000000000009 +:0425CF000000000008 +:0425D0000000000007 +:0425D1000000000006 +:0425D2000000000005 +:0425D3000000000004 +:0425D4000000000003 +:0425D5000000000002 +:0425D6000000000001 +:0425D7000000000000 +:0425D80000000000FF +:0425D90000000000FE +:0425DA0000000000FD +:0425DB0000000000FC +:0425DC0000000000FB +:0425DD0000000000FA +:0425DE0000000000F9 +:0425DF0000000000F8 +:0425E00000000000F7 +:0425E10000000000F6 +:0425E20000000000F5 +:0425E30000000000F4 +:0425E40000000000F3 +:0425E50000000000F2 +:0425E60000000000F1 +:0425E70000000000F0 +:0425E80000000000EF +:0425E90000000000EE +:0425EA0000000000ED +:0425EB0000000000EC +:0425EC0000000000EB +:0425ED0000000000EA +:0425EE0000000000E9 +:0425EF0000000000E8 +:0425F00000000000E7 +:0425F10000000000E6 +:0425F20000000000E5 +:0425F30000000000E4 +:0425F40000000000E3 +:0425F50000000000E2 +:0425F60000000000E1 +:0425F70000000000E0 +:0425F80000000000DF +:0425F90000000000DE +:0425FA0000000000DD +:0425FB0000000000DC +:0425FC0000000000DB +:0425FD0000000000DA +:0425FE0000000000D9 +:0425FF0000000000D8 +:0426000000000000D6 +:0426010000000000D5 +:0426020000000000D4 +:0426030000000000D3 +:0426040000000000D2 +:0426050000000000D1 +:0426060000000000D0 +:0426070000000000CF +:0426080000000000CE +:0426090000000000CD +:04260A0000000000CC +:04260B0000000000CB +:04260C0000000000CA +:04260D0000000000C9 +:04260E0000000000C8 +:04260F0000000000C7 +:0426100000000000C6 +:0426110000000000C5 +:0426120000000000C4 +:0426130000000000C3 +:0426140000000000C2 +:0426150000000000C1 +:0426160000000000C0 +:0426170000000000BF +:0426180000000000BE +:0426190000000000BD +:04261A0000000000BC +:04261B0000000000BB +:04261C0000000000BA +:04261D0000000000B9 +:04261E0000000000B8 +:04261F0000000000B7 +:0426200000000000B6 +:0426210000000000B5 +:0426220000000000B4 +:0426230000000000B3 +:0426240000000000B2 +:0426250000000000B1 +:0426260000000000B0 +:0426270000000000AF +:0426280000000000AE +:0426290000000000AD +:04262A0000000000AC +:04262B0000000000AB +:04262C0000000000AA +:04262D0000000000A9 +:04262E0000000000A8 +:04262F0000000000A7 +:0426300000000000A6 +:0426310000000000A5 +:0426320000000000A4 +:0426330000000000A3 +:0426340000000000A2 +:0426350000000000A1 +:0426360000000000A0 +:04263700000000009F +:04263800000000009E +:04263900000000009D +:04263A00000000009C +:04263B00000000009B +:04263C00000000009A +:04263D000000000099 +:04263E000000000098 +:04263F000000000097 +:042640000000000096 +:042641000000000095 +:042642000000000094 +:042643000000000093 +:042644000000000092 +:042645000000000091 +:042646000000000090 +:04264700000000008F +:04264800000000008E +:04264900000000008D +:04264A00000000008C +:04264B00000000008B +:04264C00000000008A +:04264D000000000089 +:04264E000000000088 +:04264F000000000087 +:042650000000000086 +:042651000000000085 +:042652000000000084 +:042653000000000083 +:042654000000000082 +:042655000000000081 +:042656000000000080 +:04265700000000007F +:04265800000000007E +:04265900000000007D +:04265A00000000007C +:04265B00000000007B +:04265C00000000007A +:04265D000000000079 +:04265E000000000078 +:04265F000000000077 +:042660000000000076 +:042661000000000075 +:042662000000000074 +:042663000000000073 +:042664000000000072 +:042665000000000071 +:042666000000000070 +:04266700000000006F +:04266800000000006E +:04266900000000006D +:04266A00000000006C +:04266B00000000006B +:04266C00000000006A +:04266D000000000069 +:04266E000000000068 +:04266F000000000067 +:042670000000000066 +:042671000000000065 +:042672000000000064 +:042673000000000063 +:042674000000000062 +:042675000000000061 +:042676000000000060 +:04267700000000005F +:04267800000000005E +:04267900000000005D +:04267A00000000005C +:04267B00000000005B +:04267C00000000005A +:04267D000000000059 +:04267E000000000058 +:04267F000000000057 +:042680000000000056 +:042681000000000055 +:042682000000000054 +:042683000000000053 +:042684000000000052 +:042685000000000051 +:042686000000000050 +:04268700000000004F +:04268800000000004E +:04268900000000004D +:04268A00000000004C +:04268B00000000004B +:04268C00000000004A +:04268D000000000049 +:04268E000000000048 +:04268F000000000047 +:042690000000000046 +:042691000000000045 +:042692000000000044 +:042693000000000043 +:042694000000000042 +:042695000000000041 +:042696000000000040 +:04269700000000003F +:04269800000000003E +:04269900000000003D +:04269A00000000003C +:04269B00000000003B +:04269C00000000003A +:04269D000000000039 +:04269E000000000038 +:04269F000000000037 +:0426A0000000000036 +:0426A1000000000035 +:0426A2000000000034 +:0426A3000000000033 +:0426A4000000000032 +:0426A5000000000031 +:0426A6000000000030 +:0426A700000000002F +:0426A800000000002E +:0426A900000000002D +:0426AA00000000002C +:0426AB00000000002B +:0426AC00000000002A +:0426AD000000000029 +:0426AE000000000028 +:0426AF000000000027 +:0426B0000000000026 +:0426B1000000000025 +:0426B2000000000024 +:0426B3000000000023 +:0426B4000000000022 +:0426B5000000000021 +:0426B6000000000020 +:0426B700000000001F +:0426B800000000001E +:0426B900000000001D +:0426BA00000000001C +:0426BB00000000001B +:0426BC00000000001A +:0426BD000000000019 +:0426BE000000000018 +:0426BF000000000017 +:0426C0000000000016 +:0426C1000000000015 +:0426C2000000000014 +:0426C3000000000013 +:0426C4000000000012 +:0426C5000000000011 +:0426C6000000000010 +:0426C700000000000F +:0426C800000000000E +:0426C900000000000D +:0426CA00000000000C +:0426CB00000000000B +:0426CC00000000000A +:0426CD000000000009 +:0426CE000000000008 +:0426CF000000000007 +:0426D0000000000006 +:0426D1000000000005 +:0426D2000000000004 +:0426D3000000000003 +:0426D4000000000002 +:0426D5000000000001 +:0426D6000000000000 +:0426D70000000000FF +:0426D80000000000FE +:0426D90000000000FD +:0426DA0000000000FC +:0426DB0000000000FB +:0426DC0000000000FA +:0426DD0000000000F9 +:0426DE0000000000F8 +:0426DF0000000000F7 +:0426E00000000000F6 +:0426E10000000000F5 +:0426E20000000000F4 +:0426E30000000000F3 +:0426E40000000000F2 +:0426E50000000000F1 +:0426E60000000000F0 +:0426E70000000000EF +:0426E80000000000EE +:0426E90000000000ED +:0426EA0000000000EC +:0426EB0000000000EB +:0426EC0000000000EA +:0426ED0000000000E9 +:0426EE0000000000E8 +:0426EF0000000000E7 +:0426F00000000000E6 +:0426F10000000000E5 +:0426F20000000000E4 +:0426F30000000000E3 +:0426F40000000000E2 +:0426F50000000000E1 +:0426F60000000000E0 +:0426F70000000000DF +:0426F80000000000DE +:0426F90000000000DD +:0426FA0000000000DC +:0426FB0000000000DB +:0426FC0000000000DA +:0426FD0000000000D9 +:0426FE0000000000D8 +:0426FF0000000000D7 +:0427000000000000D5 +:0427010000000000D4 +:0427020000000000D3 +:0427030000000000D2 +:0427040000000000D1 +:0427050000000000D0 +:0427060000000000CF +:0427070000000000CE +:0427080000000000CD +:0427090000000000CC +:04270A0000000000CB +:04270B0000000000CA +:04270C0000000000C9 +:04270D0000000000C8 +:04270E0000000000C7 +:04270F0000000000C6 +:0427100000000000C5 +:0427110000000000C4 +:0427120000000000C3 +:0427130000000000C2 +:0427140000000000C1 +:0427150000000000C0 +:0427160000000000BF +:0427170000000000BE +:0427180000000000BD +:0427190000000000BC +:04271A0000000000BB +:04271B0000000000BA +:04271C0000000000B9 +:04271D0000000000B8 +:04271E0000000000B7 +:04271F0000000000B6 +:0427200000000000B5 +:0427210000000000B4 +:0427220000000000B3 +:0427230000000000B2 +:0427240000000000B1 +:0427250000000000B0 +:0427260000000000AF +:0427270000000000AE +:0427280000000000AD +:0427290000000000AC +:04272A0000000000AB +:04272B0000000000AA +:04272C0000000000A9 +:04272D0000000000A8 +:04272E0000000000A7 +:04272F0000000000A6 +:0427300000000000A5 +:0427310000000000A4 +:0427320000000000A3 +:0427330000000000A2 +:0427340000000000A1 +:0427350000000000A0 +:04273600000000009F +:04273700000000009E +:04273800000000009D +:04273900000000009C +:04273A00000000009B +:04273B00000000009A +:04273C000000000099 +:04273D000000000098 +:04273E000000000097 +:04273F000000000096 +:042740000000000095 +:042741000000000094 +:042742000000000093 +:042743000000000092 +:042744000000000091 +:042745000000000090 +:04274600000000008F +:04274700000000008E +:04274800000000008D +:04274900000000008C +:04274A00000000008B +:04274B00000000008A +:04274C000000000089 +:04274D000000000088 +:04274E000000000087 +:04274F000000000086 +:042750000000000085 +:042751000000000084 +:042752000000000083 +:042753000000000082 +:042754000000000081 +:042755000000000080 +:04275600000000007F +:04275700000000007E +:04275800000000007D +:04275900000000007C +:04275A00000000007B +:04275B00000000007A +:04275C000000000079 +:04275D000000000078 +:04275E000000000077 +:04275F000000000076 +:042760000000000075 +:042761000000000074 +:042762000000000073 +:042763000000000072 +:042764000000000071 +:042765000000000070 +:04276600000000006F +:04276700000000006E +:04276800000000006D +:04276900000000006C +:04276A00000000006B +:04276B00000000006A +:04276C000000000069 +:04276D000000000068 +:04276E000000000067 +:04276F000000000066 +:042770000000000065 +:042771000000000064 +:042772000000000063 +:042773000000000062 +:042774000000000061 +:042775000000000060 +:04277600000000005F +:04277700000000005E +:04277800000000005D +:04277900000000005C +:04277A00000000005B +:04277B00000000005A +:04277C000000000059 +:04277D000000000058 +:04277E000000000057 +:04277F000000000056 +:042780000000000055 +:042781000000000054 +:042782000000000053 +:042783000000000052 +:042784000000000051 +:042785000000000050 +:04278600000000004F +:04278700000000004E +:04278800000000004D +:04278900000000004C +:04278A00000000004B +:04278B00000000004A +:04278C000000000049 +:04278D000000000048 +:04278E000000000047 +:04278F000000000046 +:042790000000000045 +:042791000000000044 +:042792000000000043 +:042793000000000042 +:042794000000000041 +:042795000000000040 +:04279600000000003F +:04279700000000003E +:04279800000000003D +:04279900000000003C +:04279A00000000003B +:04279B00000000003A +:04279C000000000039 +:04279D000000000038 +:04279E000000000037 +:04279F000000000036 +:0427A0000000000035 +:0427A1000000000034 +:0427A2000000000033 +:0427A3000000000032 +:0427A4000000000031 +:0427A5000000000030 +:0427A600000000002F +:0427A700000000002E +:0427A800000000002D +:0427A900000000002C +:0427AA00000000002B +:0427AB00000000002A +:0427AC000000000029 +:0427AD000000000028 +:0427AE000000000027 +:0427AF000000000026 +:0427B0000000000025 +:0427B1000000000024 +:0427B2000000000023 +:0427B3000000000022 +:0427B4000000000021 +:0427B5000000000020 +:0427B600000000001F +:0427B700000000001E +:0427B800000000001D +:0427B900000000001C +:0427BA00000000001B +:0427BB00000000001A +:0427BC000000000019 +:0427BD000000000018 +:0427BE000000000017 +:0427BF000000000016 +:0427C0000000000015 +:0427C1000000000014 +:0427C2000000000013 +:0427C3000000000012 +:0427C4000000000011 +:0427C5000000000010 +:0427C600000000000F +:0427C700000000000E +:0427C800000000000D +:0427C900000000000C +:0427CA00000000000B +:0427CB00000000000A +:0427CC000000000009 +:0427CD000000000008 +:0427CE000000000007 +:0427CF000000000006 +:0427D0000000000005 +:0427D1000000000004 +:0427D2000000000003 +:0427D3000000000002 +:0427D4000000000001 +:0427D5000000000000 +:0427D60000000000FF +:0427D70000000000FE +:0427D80000000000FD +:0427D90000000000FC +:0427DA0000000000FB +:0427DB0000000000FA +:0427DC0000000000F9 +:0427DD0000000000F8 +:0427DE0000000000F7 +:0427DF0000000000F6 +:0427E00000000000F5 +:0427E10000000000F4 +:0427E20000000000F3 +:0427E30000000000F2 +:0427E40000000000F1 +:0427E50000000000F0 +:0427E60000000000EF +:0427E70000000000EE +:0427E80000000000ED +:0427E90000000000EC +:0427EA0000000000EB +:0427EB0000000000EA +:0427EC0000000000E9 +:0427ED0000000000E8 +:0427EE0000000000E7 +:0427EF0000000000E6 +:0427F00000000000E5 +:0427F10000000000E4 +:0427F20000000000E3 +:0427F30000000000E2 +:0427F40000000000E1 +:0427F50000000000E0 +:0427F60000000000DF +:0427F70000000000DE +:0427F80000000000DD +:0427F90000000000DC +:0427FA0000000000DB +:0427FB0000000000DA +:0427FC0000000000D9 +:0427FD0000000000D8 +:0427FE0000000000D7 +:0427FF0000000000D6 +:0428000000000000D4 +:0428010000000000D3 +:0428020000000000D2 +:0428030000000000D1 +:0428040000000000D0 +:0428050000000000CF +:0428060000000000CE +:0428070000000000CD +:0428080000000000CC +:0428090000000000CB +:04280A0000000000CA +:04280B0000000000C9 +:04280C0000000000C8 +:04280D0000000000C7 +:04280E0000000000C6 +:04280F0000000000C5 +:0428100000000000C4 +:0428110000000000C3 +:0428120000000000C2 +:0428130000000000C1 +:0428140000000000C0 +:0428150000000000BF +:0428160000000000BE +:0428170000000000BD +:0428180000000000BC +:0428190000000000BB +:04281A0000000000BA +:04281B0000000000B9 +:04281C0000000000B8 +:04281D0000000000B7 +:04281E0000000000B6 +:04281F0000000000B5 +:0428200000000000B4 +:0428210000000000B3 +:0428220000000000B2 +:0428230000000000B1 +:0428240000000000B0 +:0428250000000000AF +:0428260000000000AE +:0428270000000000AD +:0428280000000000AC +:0428290000000000AB +:04282A0000000000AA +:04282B0000000000A9 +:04282C0000000000A8 +:04282D0000000000A7 +:04282E0000000000A6 +:04282F0000000000A5 +:0428300000000000A4 +:0428310000000000A3 +:0428320000000000A2 +:0428330000000000A1 +:0428340000000000A0 +:04283500000000009F +:04283600000000009E +:04283700000000009D +:04283800000000009C +:04283900000000009B +:04283A00000000009A +:04283B000000000099 +:04283C000000000098 +:04283D000000000097 +:04283E000000000096 +:04283F000000000095 +:042840000000000094 +:042841000000000093 +:042842000000000092 +:042843000000000091 +:042844000000000090 +:04284500000000008F +:04284600000000008E +:04284700000000008D +:04284800000000008C +:04284900000000008B +:04284A00000000008A +:04284B000000000089 +:04284C000000000088 +:04284D000000000087 +:04284E000000000086 +:04284F000000000085 +:042850000000000084 +:042851000000000083 +:042852000000000082 +:042853000000000081 +:042854000000000080 +:04285500000000007F +:04285600000000007E +:04285700000000007D +:04285800000000007C +:04285900000000007B +:04285A00000000007A +:04285B000000000079 +:04285C000000000078 +:04285D000000000077 +:04285E000000000076 +:04285F000000000075 +:042860000000000074 +:042861000000000073 +:042862000000000072 +:042863000000000071 +:042864000000000070 +:04286500000000006F +:04286600000000006E +:04286700000000006D +:04286800000000006C +:04286900000000006B +:04286A00000000006A +:04286B000000000069 +:04286C000000000068 +:04286D000000000067 +:04286E000000000066 +:04286F000000000065 +:042870000000000064 +:042871000000000063 +:042872000000000062 +:042873000000000061 +:042874000000000060 +:04287500000000005F +:04287600000000005E +:04287700000000005D +:04287800000000005C +:04287900000000005B +:04287A00000000005A +:04287B000000000059 +:04287C000000000058 +:04287D000000000057 +:04287E000000000056 +:04287F000000000055 +:042880000000000054 +:042881000000000053 +:042882000000000052 +:042883000000000051 +:042884000000000050 +:04288500000000004F +:04288600000000004E +:04288700000000004D +:04288800000000004C +:04288900000000004B +:04288A00000000004A +:04288B000000000049 +:04288C000000000048 +:04288D000000000047 +:04288E000000000046 +:04288F000000000045 +:042890000000000044 +:042891000000000043 +:042892000000000042 +:042893000000000041 +:042894000000000040 +:04289500000000003F +:04289600000000003E +:04289700000000003D +:04289800000000003C +:04289900000000003B +:04289A00000000003A +:04289B000000000039 +:04289C000000000038 +:04289D000000000037 +:04289E000000000036 +:04289F000000000035 +:0428A0000000000034 +:0428A1000000000033 +:0428A2000000000032 +:0428A3000000000031 +:0428A4000000000030 +:0428A500000000002F +:0428A600000000002E +:0428A700000000002D +:0428A800000000002C +:0428A900000000002B +:0428AA00000000002A +:0428AB000000000029 +:0428AC000000000028 +:0428AD000000000027 +:0428AE000000000026 +:0428AF000000000025 +:0428B0000000000024 +:0428B1000000000023 +:0428B2000000000022 +:0428B3000000000021 +:0428B4000000000020 +:0428B500000000001F +:0428B600000000001E +:0428B700000000001D +:0428B800000000001C +:0428B900000000001B +:0428BA00000000001A +:0428BB000000000019 +:0428BC000000000018 +:0428BD000000000017 +:0428BE000000000016 +:0428BF000000000015 +:0428C0000000000014 +:0428C1000000000013 +:0428C2000000000012 +:0428C3000000000011 +:0428C4000000000010 +:0428C500000000000F +:0428C600000000000E +:0428C700000000000D +:0428C800000000000C +:0428C900000000000B +:0428CA00000000000A +:0428CB000000000009 +:0428CC000000000008 +:0428CD000000000007 +:0428CE000000000006 +:0428CF000000000005 +:0428D0000000000004 +:0428D1000000000003 +:0428D2000000000002 +:0428D3000000000001 +:0428D4000000000000 +:0428D50000000000FF +:0428D60000000000FE +:0428D70000000000FD +:0428D80000000000FC +:0428D90000000000FB +:0428DA0000000000FA +:0428DB0000000000F9 +:0428DC0000000000F8 +:0428DD0000000000F7 +:0428DE0000000000F6 +:0428DF0000000000F5 +:0428E00000000000F4 +:0428E10000000000F3 +:0428E20000000000F2 +:0428E30000000000F1 +:0428E40000000000F0 +:0428E50000000000EF +:0428E60000000000EE +:0428E70000000000ED +:0428E80000000000EC +:0428E90000000000EB +:0428EA0000000000EA +:0428EB0000000000E9 +:0428EC0000000000E8 +:0428ED0000000000E7 +:0428EE0000000000E6 +:0428EF0000000000E5 +:0428F00000000000E4 +:0428F10000000000E3 +:0428F20000000000E2 +:0428F30000000000E1 +:0428F40000000000E0 +:0428F50000000000DF +:0428F60000000000DE +:0428F70000000000DD +:0428F80000000000DC +:0428F90000000000DB +:0428FA0000000000DA +:0428FB0000000000D9 +:0428FC0000000000D8 +:0428FD0000000000D7 +:0428FE0000000000D6 +:0428FF0000000000D5 +:0429000000000000D3 +:0429010000000000D2 +:0429020000000000D1 +:0429030000000000D0 +:0429040000000000CF +:0429050000000000CE +:0429060000000000CD +:0429070000000000CC +:0429080000000000CB +:0429090000000000CA +:04290A0000000000C9 +:04290B0000000000C8 +:04290C0000000000C7 +:04290D0000000000C6 +:04290E0000000000C5 +:04290F0000000000C4 +:0429100000000000C3 +:0429110000000000C2 +:0429120000000000C1 +:0429130000000000C0 +:0429140000000000BF +:0429150000000000BE +:0429160000000000BD +:0429170000000000BC +:0429180000000000BB +:0429190000000000BA +:04291A0000000000B9 +:04291B0000000000B8 +:04291C0000000000B7 +:04291D0000000000B6 +:04291E0000000000B5 +:04291F0000000000B4 +:0429200000000000B3 +:0429210000000000B2 +:0429220000000000B1 +:0429230000000000B0 +:0429240000000000AF +:0429250000000000AE +:0429260000000000AD +:0429270000000000AC +:0429280000000000AB +:0429290000000000AA +:04292A0000000000A9 +:04292B0000000000A8 +:04292C0000000000A7 +:04292D0000000000A6 +:04292E0000000000A5 +:04292F0000000000A4 +:0429300000000000A3 +:0429310000000000A2 +:0429320000000000A1 +:0429330000000000A0 +:04293400000000009F +:04293500000000009E +:04293600000000009D +:04293700000000009C +:04293800000000009B +:04293900000000009A +:04293A000000000099 +:04293B000000000098 +:04293C000000000097 +:04293D000000000096 +:04293E000000000095 +:04293F000000000094 +:042940000000000093 +:042941000000000092 +:042942000000000091 +:042943000000000090 +:04294400000000008F +:04294500000000008E +:04294600000000008D +:04294700000000008C +:04294800000000008B +:04294900000000008A +:04294A000000000089 +:04294B000000000088 +:04294C000000000087 +:04294D000000000086 +:04294E000000000085 +:04294F000000000084 +:042950000000000083 +:042951000000000082 +:042952000000000081 +:042953000000000080 +:04295400000000007F +:04295500000000007E +:04295600000000007D +:04295700000000007C +:04295800000000007B +:04295900000000007A +:04295A000000000079 +:04295B000000000078 +:04295C000000000077 +:04295D000000000076 +:04295E000000000075 +:04295F000000000074 +:042960000000000073 +:042961000000000072 +:042962000000000071 +:042963000000000070 +:04296400000000006F +:04296500000000006E +:04296600000000006D +:04296700000000006C +:04296800000000006B +:04296900000000006A +:04296A000000000069 +:04296B000000000068 +:04296C000000000067 +:04296D000000000066 +:04296E000000000065 +:04296F000000000064 +:042970000000000063 +:042971000000000062 +:042972000000000061 +:042973000000000060 +:04297400000000005F +:04297500000000005E +:04297600000000005D +:04297700000000005C +:04297800000000005B +:04297900000000005A +:04297A000000000059 +:04297B000000000058 +:04297C000000000057 +:04297D000000000056 +:04297E000000000055 +:04297F000000000054 +:042980000000000053 +:042981000000000052 +:042982000000000051 +:042983000000000050 +:04298400000000004F +:04298500000000004E +:04298600000000004D +:04298700000000004C +:04298800000000004B +:04298900000000004A +:04298A000000000049 +:04298B000000000048 +:04298C000000000047 +:04298D000000000046 +:04298E000000000045 +:04298F000000000044 +:042990000000000043 +:042991000000000042 +:042992000000000041 +:042993000000000040 +:04299400000000003F +:04299500000000003E +:04299600000000003D +:04299700000000003C +:04299800000000003B +:04299900000000003A +:04299A000000000039 +:04299B000000000038 +:04299C000000000037 +:04299D000000000036 +:04299E000000000035 +:04299F000000000034 +:0429A0000000000033 +:0429A1000000000032 +:0429A2000000000031 +:0429A3000000000030 +:0429A400000000002F +:0429A500000000002E +:0429A600000000002D +:0429A700000000002C +:0429A800000000002B +:0429A900000000002A +:0429AA000000000029 +:0429AB000000000028 +:0429AC000000000027 +:0429AD000000000026 +:0429AE000000000025 +:0429AF000000000024 +:0429B0000000000023 +:0429B1000000000022 +:0429B2000000000021 +:0429B3000000000020 +:0429B400000000001F +:0429B500000000001E +:0429B600000000001D +:0429B700000000001C +:0429B800000000001B +:0429B900000000001A +:0429BA000000000019 +:0429BB000000000018 +:0429BC000000000017 +:0429BD000000000016 +:0429BE000000000015 +:0429BF000000000014 +:0429C0000000000013 +:0429C1000000000012 +:0429C2000000000011 +:0429C3000000000010 +:0429C400000000000F +:0429C500000000000E +:0429C600000000000D +:0429C700000000000C +:0429C800000000000B +:0429C900000000000A +:0429CA000000000009 +:0429CB000000000008 +:0429CC000000000007 +:0429CD000000000006 +:0429CE000000000005 +:0429CF000000000004 +:0429D0000000000003 +:0429D1000000000002 +:0429D2000000000001 +:0429D3000000000000 +:0429D40000000000FF +:0429D50000000000FE +:0429D60000000000FD +:0429D70000000000FC +:0429D80000000000FB +:0429D90000000000FA +:0429DA0000000000F9 +:0429DB0000000000F8 +:0429DC0000000000F7 +:0429DD0000000000F6 +:0429DE0000000000F5 +:0429DF0000000000F4 +:0429E00000000000F3 +:0429E10000000000F2 +:0429E20000000000F1 +:0429E30000000000F0 +:0429E40000000000EF +:0429E50000000000EE +:0429E60000000000ED +:0429E70000000000EC +:0429E80000000000EB +:0429E90000000000EA +:0429EA0000000000E9 +:0429EB0000000000E8 +:0429EC0000000000E7 +:0429ED0000000000E6 +:0429EE0000000000E5 +:0429EF0000000000E4 +:0429F00000000000E3 +:0429F10000000000E2 +:0429F20000000000E1 +:0429F30000000000E0 +:0429F40000000000DF +:0429F50000000000DE +:0429F60000000000DD +:0429F70000000000DC +:0429F80000000000DB +:0429F90000000000DA +:0429FA0000000000D9 +:0429FB0000000000D8 +:0429FC0000000000D7 +:0429FD0000000000D6 +:0429FE0000000000D5 +:0429FF0000000000D4 +:042A000000000000D2 +:042A010000000000D1 +:042A020000000000D0 +:042A030000000000CF +:042A040000000000CE +:042A050000000000CD +:042A060000000000CC +:042A070000000000CB +:042A080000000000CA +:042A090000000000C9 +:042A0A0000000000C8 +:042A0B0000000000C7 +:042A0C0000000000C6 +:042A0D0000000000C5 +:042A0E0000000000C4 +:042A0F0000000000C3 +:042A100000000000C2 +:042A110000000000C1 +:042A120000000000C0 +:042A130000000000BF +:042A140000000000BE +:042A150000000000BD +:042A160000000000BC +:042A170000000000BB +:042A180000000000BA +:042A190000000000B9 +:042A1A0000000000B8 +:042A1B0000000000B7 +:042A1C0000000000B6 +:042A1D0000000000B5 +:042A1E0000000000B4 +:042A1F0000000000B3 +:042A200000000000B2 +:042A210000000000B1 +:042A220000000000B0 +:042A230000000000AF +:042A240000000000AE +:042A250000000000AD +:042A260000000000AC +:042A270000000000AB +:042A280000000000AA +:042A290000000000A9 +:042A2A0000000000A8 +:042A2B0000000000A7 +:042A2C0000000000A6 +:042A2D0000000000A5 +:042A2E0000000000A4 +:042A2F0000000000A3 +:042A300000000000A2 +:042A310000000000A1 +:042A320000000000A0 +:042A3300000000009F +:042A3400000000009E +:042A3500000000009D +:042A3600000000009C +:042A3700000000009B +:042A3800000000009A +:042A39000000000099 +:042A3A000000000098 +:042A3B000000000097 +:042A3C000000000096 +:042A3D000000000095 +:042A3E000000000094 +:042A3F000000000093 +:042A40000000000092 +:042A41000000000091 +:042A42000000000090 +:042A4300000000008F +:042A4400000000008E +:042A4500000000008D +:042A4600000000008C +:042A4700000000008B +:042A4800000000008A +:042A49000000000089 +:042A4A000000000088 +:042A4B000000000087 +:042A4C000000000086 +:042A4D000000000085 +:042A4E000000000084 +:042A4F000000000083 +:042A50000000000082 +:042A51000000000081 +:042A52000000000080 +:042A5300000000007F +:042A5400000000007E +:042A5500000000007D +:042A5600000000007C +:042A5700000000007B +:042A5800000000007A +:042A59000000000079 +:042A5A000000000078 +:042A5B000000000077 +:042A5C000000000076 +:042A5D000000000075 +:042A5E000000000074 +:042A5F000000000073 +:042A60000000000072 +:042A61000000000071 +:042A62000000000070 +:042A6300000000006F +:042A6400000000006E +:042A6500000000006D +:042A6600000000006C +:042A6700000000006B +:042A6800000000006A +:042A69000000000069 +:042A6A000000000068 +:042A6B000000000067 +:042A6C000000000066 +:042A6D000000000065 +:042A6E000000000064 +:042A6F000000000063 +:042A70000000000062 +:042A71000000000061 +:042A72000000000060 +:042A7300000000005F +:042A7400000000005E +:042A7500000000005D +:042A7600000000005C +:042A7700000000005B +:042A7800000000005A +:042A79000000000059 +:042A7A000000000058 +:042A7B000000000057 +:042A7C000000000056 +:042A7D000000000055 +:042A7E000000000054 +:042A7F000000000053 +:042A80000000000052 +:042A81000000000051 +:042A82000000000050 +:042A8300000000004F +:042A8400000000004E +:042A8500000000004D +:042A8600000000004C +:042A8700000000004B +:042A8800000000004A +:042A89000000000049 +:042A8A000000000048 +:042A8B000000000047 +:042A8C000000000046 +:042A8D000000000045 +:042A8E000000000044 +:042A8F000000000043 +:042A90000000000042 +:042A91000000000041 +:042A92000000000040 +:042A9300000000003F +:042A9400000000003E +:042A9500000000003D +:042A9600000000003C +:042A9700000000003B +:042A9800000000003A +:042A99000000000039 +:042A9A000000000038 +:042A9B000000000037 +:042A9C000000000036 +:042A9D000000000035 +:042A9E000000000034 +:042A9F000000000033 +:042AA0000000000032 +:042AA1000000000031 +:042AA2000000000030 +:042AA300000000002F +:042AA400000000002E +:042AA500000000002D +:042AA600000000002C +:042AA700000000002B +:042AA800000000002A +:042AA9000000000029 +:042AAA000000000028 +:042AAB000000000027 +:042AAC000000000026 +:042AAD000000000025 +:042AAE000000000024 +:042AAF000000000023 +:042AB0000000000022 +:042AB1000000000021 +:042AB2000000000020 +:042AB300000000001F +:042AB400000000001E +:042AB500000000001D +:042AB600000000001C +:042AB700000000001B +:042AB800000000001A +:042AB9000000000019 +:042ABA000000000018 +:042ABB000000000017 +:042ABC000000000016 +:042ABD000000000015 +:042ABE000000000014 +:042ABF000000000013 +:042AC0000000000012 +:042AC1000000000011 +:042AC2000000000010 +:042AC300000000000F +:042AC400000000000E +:042AC500000000000D +:042AC600000000000C +:042AC700000000000B +:042AC800000000000A +:042AC9000000000009 +:042ACA000000000008 +:042ACB000000000007 +:042ACC000000000006 +:042ACD000000000005 +:042ACE000000000004 +:042ACF000000000003 +:042AD0000000000002 +:042AD1000000000001 +:042AD2000000000000 +:042AD30000000000FF +:042AD40000000000FE +:042AD50000000000FD +:042AD60000000000FC +:042AD70000000000FB +:042AD80000000000FA +:042AD90000000000F9 +:042ADA0000000000F8 +:042ADB0000000000F7 +:042ADC0000000000F6 +:042ADD0000000000F5 +:042ADE0000000000F4 +:042ADF0000000000F3 +:042AE00000000000F2 +:042AE10000000000F1 +:042AE20000000000F0 +:042AE30000000000EF +:042AE40000000000EE +:042AE50000000000ED +:042AE60000000000EC +:042AE70000000000EB +:042AE80000000000EA +:042AE90000000000E9 +:042AEA0000000000E8 +:042AEB0000000000E7 +:042AEC0000000000E6 +:042AED0000000000E5 +:042AEE0000000000E4 +:042AEF0000000000E3 +:042AF00000000000E2 +:042AF10000000000E1 +:042AF20000000000E0 +:042AF30000000000DF +:042AF40000000000DE +:042AF50000000000DD +:042AF60000000000DC +:042AF70000000000DB +:042AF80000000000DA +:042AF90000000000D9 +:042AFA0000000000D8 +:042AFB0000000000D7 +:042AFC0000000000D6 +:042AFD0000000000D5 +:042AFE0000000000D4 +:042AFF0000000000D3 +:042B000000000000D1 +:042B010000000000D0 +:042B020000000000CF +:042B030000000000CE +:042B040000000000CD +:042B050000000000CC +:042B060000000000CB +:042B070000000000CA +:042B080000000000C9 +:042B090000000000C8 +:042B0A0000000000C7 +:042B0B0000000000C6 +:042B0C0000000000C5 +:042B0D0000000000C4 +:042B0E0000000000C3 +:042B0F0000000000C2 +:042B100000000000C1 +:042B110000000000C0 +:042B120000000000BF +:042B130000000000BE +:042B140000000000BD +:042B150000000000BC +:042B160000000000BB +:042B170000000000BA +:042B180000000000B9 +:042B190000000000B8 +:042B1A0000000000B7 +:042B1B0000000000B6 +:042B1C0000000000B5 +:042B1D0000000000B4 +:042B1E0000000000B3 +:042B1F0000000000B2 +:042B200000000000B1 +:042B210000000000B0 +:042B220000000000AF +:042B230000000000AE +:042B240000000000AD +:042B250000000000AC +:042B260000000000AB +:042B270000000000AA +:042B280000000000A9 +:042B290000000000A8 +:042B2A0000000000A7 +:042B2B0000000000A6 +:042B2C0000000000A5 +:042B2D0000000000A4 +:042B2E0000000000A3 +:042B2F0000000000A2 +:042B300000000000A1 +:042B310000000000A0 +:042B3200000000009F +:042B3300000000009E +:042B3400000000009D +:042B3500000000009C +:042B3600000000009B +:042B3700000000009A +:042B38000000000099 +:042B39000000000098 +:042B3A000000000097 +:042B3B000000000096 +:042B3C000000000095 +:042B3D000000000094 +:042B3E000000000093 +:042B3F000000000092 +:042B40000000000091 +:042B41000000000090 +:042B4200000000008F +:042B4300000000008E +:042B4400000000008D +:042B4500000000008C +:042B4600000000008B +:042B4700000000008A +:042B48000000000089 +:042B49000000000088 +:042B4A000000000087 +:042B4B000000000086 +:042B4C000000000085 +:042B4D000000000084 +:042B4E000000000083 +:042B4F000000000082 +:042B50000000000081 +:042B51000000000080 +:042B5200000000007F +:042B5300000000007E +:042B5400000000007D +:042B5500000000007C +:042B5600000000007B +:042B5700000000007A +:042B58000000000079 +:042B59000000000078 +:042B5A000000000077 +:042B5B000000000076 +:042B5C000000000075 +:042B5D000000000074 +:042B5E000000000073 +:042B5F000000000072 +:042B60000000000071 +:042B61000000000070 +:042B6200000000006F +:042B6300000000006E +:042B6400000000006D +:042B6500000000006C +:042B6600000000006B +:042B6700000000006A +:042B68000000000069 +:042B69000000000068 +:042B6A000000000067 +:042B6B000000000066 +:042B6C000000000065 +:042B6D000000000064 +:042B6E000000000063 +:042B6F000000000062 +:042B70000000000061 +:042B71000000000060 +:042B7200000000005F +:042B7300000000005E +:042B7400000000005D +:042B7500000000005C +:042B7600000000005B +:042B7700000000005A +:042B78000000000059 +:042B79000000000058 +:042B7A000000000057 +:042B7B000000000056 +:042B7C000000000055 +:042B7D000000000054 +:042B7E000000000053 +:042B7F000000000052 +:042B80000000000051 +:042B81000000000050 +:042B8200000000004F +:042B8300000000004E +:042B8400000000004D +:042B8500000000004C +:042B8600000000004B +:042B8700000000004A +:042B88000000000049 +:042B89000000000048 +:042B8A000000000047 +:042B8B000000000046 +:042B8C000000000045 +:042B8D000000000044 +:042B8E000000000043 +:042B8F000000000042 +:042B90000000000041 +:042B91000000000040 +:042B9200000000003F +:042B9300000000003E +:042B9400000000003D +:042B9500000000003C +:042B9600000000003B +:042B9700000000003A +:042B98000000000039 +:042B99000000000038 +:042B9A000000000037 +:042B9B000000000036 +:042B9C000000000035 +:042B9D000000000034 +:042B9E000000000033 +:042B9F000000000032 +:042BA0000000000031 +:042BA1000000000030 +:042BA200000000002F +:042BA300000000002E +:042BA400000000002D +:042BA500000000002C +:042BA600000000002B +:042BA700000000002A +:042BA8000000000029 +:042BA9000000000028 +:042BAA000000000027 +:042BAB000000000026 +:042BAC000000000025 +:042BAD000000000024 +:042BAE000000000023 +:042BAF000000000022 +:042BB0000000000021 +:042BB1000000000020 +:042BB200000000001F +:042BB300000000001E +:042BB400000000001D +:042BB500000000001C +:042BB600000000001B +:042BB700000000001A +:042BB8000000000019 +:042BB9000000000018 +:042BBA000000000017 +:042BBB000000000016 +:042BBC000000000015 +:042BBD000000000014 +:042BBE000000000013 +:042BBF000000000012 +:042BC0000000000011 +:042BC1000000000010 +:042BC200000000000F +:042BC300000000000E +:042BC400000000000D +:042BC500000000000C +:042BC600000000000B +:042BC700000000000A +:042BC8000000000009 +:042BC9000000000008 +:042BCA000000000007 +:042BCB000000000006 +:042BCC000000000005 +:042BCD000000000004 +:042BCE000000000003 +:042BCF000000000002 +:042BD0000000000001 +:042BD1000000000000 +:042BD20000000000FF +:042BD30000000000FE +:042BD40000000000FD +:042BD50000000000FC +:042BD60000000000FB +:042BD70000000000FA +:042BD80000000000F9 +:042BD90000000000F8 +:042BDA0000000000F7 +:042BDB0000000000F6 +:042BDC0000000000F5 +:042BDD0000000000F4 +:042BDE0000000000F3 +:042BDF0000000000F2 +:042BE00000000000F1 +:042BE10000000000F0 +:042BE20000000000EF +:042BE30000000000EE +:042BE40000000000ED +:042BE50000000000EC +:042BE60000000000EB +:042BE70000000000EA +:042BE80000000000E9 +:042BE90000000000E8 +:042BEA0000000000E7 +:042BEB0000000000E6 +:042BEC0000000000E5 +:042BED0000000000E4 +:042BEE0000000000E3 +:042BEF0000000000E2 +:042BF00000000000E1 +:042BF10000000000E0 +:042BF20000000000DF +:042BF30000000000DE +:042BF40000000000DD +:042BF50000000000DC +:042BF60000000000DB +:042BF70000000000DA +:042BF80000000000D9 +:042BF90000000000D8 +:042BFA0000000000D7 +:042BFB0000000000D6 +:042BFC0000000000D5 +:042BFD0000000000D4 +:042BFE0000000000D3 +:042BFF0000000000D2 +:042C000000000000D0 +:042C010000000000CF +:042C020000000000CE +:042C030000000000CD +:042C040000000000CC +:042C050000000000CB +:042C060000000000CA +:042C070000000000C9 +:042C080000000000C8 +:042C090000000000C7 +:042C0A0000000000C6 +:042C0B0000000000C5 +:042C0C0000000000C4 +:042C0D0000000000C3 +:042C0E0000000000C2 +:042C0F0000000000C1 +:042C100000000000C0 +:042C110000000000BF +:042C120000000000BE +:042C130000000000BD +:042C140000000000BC +:042C150000000000BB +:042C160000000000BA +:042C170000000000B9 +:042C180000000000B8 +:042C190000000000B7 +:042C1A0000000000B6 +:042C1B0000000000B5 +:042C1C0000000000B4 +:042C1D0000000000B3 +:042C1E0000000000B2 +:042C1F0000000000B1 +:042C200000000000B0 +:042C210000000000AF +:042C220000000000AE +:042C230000000000AD +:042C240000000000AC +:042C250000000000AB +:042C260000000000AA +:042C270000000000A9 +:042C280000000000A8 +:042C290000000000A7 +:042C2A0000000000A6 +:042C2B0000000000A5 +:042C2C0000000000A4 +:042C2D0000000000A3 +:042C2E0000000000A2 +:042C2F0000000000A1 +:042C300000000000A0 +:042C3100000000009F +:042C3200000000009E +:042C3300000000009D +:042C3400000000009C +:042C3500000000009B +:042C3600000000009A +:042C37000000000099 +:042C38000000000098 +:042C39000000000097 +:042C3A000000000096 +:042C3B000000000095 +:042C3C000000000094 +:042C3D000000000093 +:042C3E000000000092 +:042C3F000000000091 +:042C40000000000090 +:042C4100000000008F +:042C4200000000008E +:042C4300000000008D +:042C4400000000008C +:042C4500000000008B +:042C4600000000008A +:042C47000000000089 +:042C48000000000088 +:042C49000000000087 +:042C4A000000000086 +:042C4B000000000085 +:042C4C000000000084 +:042C4D000000000083 +:042C4E000000000082 +:042C4F000000000081 +:042C50000000000080 +:042C5100000000007F +:042C5200000000007E +:042C5300000000007D +:042C5400000000007C +:042C5500000000007B +:042C5600000000007A +:042C57000000000079 +:042C58000000000078 +:042C59000000000077 +:042C5A000000000076 +:042C5B000000000075 +:042C5C000000000074 +:042C5D000000000073 +:042C5E000000000072 +:042C5F000000000071 +:042C60000000000070 +:042C6100000000006F +:042C6200000000006E +:042C6300000000006D +:042C6400000000006C +:042C6500000000006B +:042C6600000000006A +:042C67000000000069 +:042C68000000000068 +:042C69000000000067 +:042C6A000000000066 +:042C6B000000000065 +:042C6C000000000064 +:042C6D000000000063 +:042C6E000000000062 +:042C6F000000000061 +:042C70000000000060 +:042C7100000000005F +:042C7200000000005E +:042C7300000000005D +:042C7400000000005C +:042C7500000000005B +:042C7600000000005A +:042C77000000000059 +:042C78000000000058 +:042C79000000000057 +:042C7A000000000056 +:042C7B000000000055 +:042C7C000000000054 +:042C7D000000000053 +:042C7E000000000052 +:042C7F000000000051 +:042C80000000000050 +:042C8100000000004F +:042C8200000000004E +:042C8300000000004D +:042C8400000000004C +:042C8500000000004B +:042C8600000000004A +:042C87000000000049 +:042C88000000000048 +:042C89000000000047 +:042C8A000000000046 +:042C8B000000000045 +:042C8C000000000044 +:042C8D000000000043 +:042C8E000000000042 +:042C8F000000000041 +:042C90000000000040 +:042C9100000000003F +:042C9200000000003E +:042C9300000000003D +:042C9400000000003C +:042C9500000000003B +:042C9600000000003A +:042C97000000000039 +:042C98000000000038 +:042C99000000000037 +:042C9A000000000036 +:042C9B000000000035 +:042C9C000000000034 +:042C9D000000000033 +:042C9E000000000032 +:042C9F000000000031 +:042CA0000000000030 +:042CA100000000002F +:042CA200000000002E +:042CA300000000002D +:042CA400000000002C +:042CA500000000002B +:042CA600000000002A +:042CA7000000000029 +:042CA8000000000028 +:042CA9000000000027 +:042CAA000000000026 +:042CAB000000000025 +:042CAC000000000024 +:042CAD000000000023 +:042CAE000000000022 +:042CAF000000000021 +:042CB0000000000020 +:042CB100000000001F +:042CB200000000001E +:042CB300000000001D +:042CB400000000001C +:042CB500000000001B +:042CB600000000001A +:042CB7000000000019 +:042CB8000000000018 +:042CB9000000000017 +:042CBA000000000016 +:042CBB000000000015 +:042CBC000000000014 +:042CBD000000000013 +:042CBE000000000012 +:042CBF000000000011 +:042CC0000000000010 +:042CC100000000000F +:042CC200000000000E +:042CC300000000000D +:042CC400000000000C +:042CC500000000000B +:042CC600000000000A +:042CC7000000000009 +:042CC8000000000008 +:042CC9000000000007 +:042CCA000000000006 +:042CCB000000000005 +:042CCC000000000004 +:042CCD000000000003 +:042CCE000000000002 +:042CCF000000000001 +:042CD0000000000000 +:042CD10000000000FF +:042CD20000000000FE +:042CD30000000000FD +:042CD40000000000FC +:042CD50000000000FB +:042CD60000000000FA +:042CD70000000000F9 +:042CD80000000000F8 +:042CD90000000000F7 +:042CDA0000000000F6 +:042CDB0000000000F5 +:042CDC0000000000F4 +:042CDD0000000000F3 +:042CDE0000000000F2 +:042CDF0000000000F1 +:042CE00000000000F0 +:042CE10000000000EF +:042CE20000000000EE +:042CE30000000000ED +:042CE40000000000EC +:042CE50000000000EB +:042CE60000000000EA +:042CE70000000000E9 +:042CE80000000000E8 +:042CE90000000000E7 +:042CEA0000000000E6 +:042CEB0000000000E5 +:042CEC0000000000E4 +:042CED0000000000E3 +:042CEE0000000000E2 +:042CEF0000000000E1 +:042CF00000000000E0 +:042CF10000000000DF +:042CF20000000000DE +:042CF30000000000DD +:042CF40000000000DC +:042CF50000000000DB +:042CF60000000000DA +:042CF70000000000D9 +:042CF80000000000D8 +:042CF90000000000D7 +:042CFA0000000000D6 +:042CFB0000000000D5 +:042CFC0000000000D4 +:042CFD0000000000D3 +:042CFE0000000000D2 +:042CFF0000000000D1 +:042D000000000000CF +:042D010000000000CE +:042D020000000000CD +:042D030000000000CC +:042D040000000000CB +:042D050000000000CA +:042D060000000000C9 +:042D070000000000C8 +:042D080000000000C7 +:042D090000000000C6 +:042D0A0000000000C5 +:042D0B0000000000C4 +:042D0C0000000000C3 +:042D0D0000000000C2 +:042D0E0000000000C1 +:042D0F0000000000C0 +:042D100000000000BF +:042D110000000000BE +:042D120000000000BD +:042D130000000000BC +:042D140000000000BB +:042D150000000000BA +:042D160000000000B9 +:042D170000000000B8 +:042D180000000000B7 +:042D190000000000B6 +:042D1A0000000000B5 +:042D1B0000000000B4 +:042D1C0000000000B3 +:042D1D0000000000B2 +:042D1E0000000000B1 +:042D1F0000000000B0 +:042D200000000000AF +:042D210000000000AE +:042D220000000000AD +:042D230000000000AC +:042D240000000000AB +:042D250000000000AA +:042D260000000000A9 +:042D270000000000A8 +:042D280000000000A7 +:042D290000000000A6 +:042D2A0000000000A5 +:042D2B0000000000A4 +:042D2C0000000000A3 +:042D2D0000000000A2 +:042D2E0000000000A1 +:042D2F0000000000A0 +:042D3000000000009F +:042D3100000000009E +:042D3200000000009D +:042D3300000000009C +:042D3400000000009B +:042D3500000000009A +:042D36000000000099 +:042D37000000000098 +:042D38000000000097 +:042D39000000000096 +:042D3A000000000095 +:042D3B000000000094 +:042D3C000000000093 +:042D3D000000000092 +:042D3E000000000091 +:042D3F000000000090 +:042D4000000000008F +:042D4100000000008E +:042D4200000000008D +:042D4300000000008C +:042D4400000000008B +:042D4500000000008A +:042D46000000000089 +:042D47000000000088 +:042D48000000000087 +:042D49000000000086 +:042D4A000000000085 +:042D4B000000000084 +:042D4C000000000083 +:042D4D000000000082 +:042D4E000000000081 +:042D4F000000000080 +:042D5000000000007F +:042D5100000000007E +:042D5200000000007D +:042D5300000000007C +:042D5400000000007B +:042D5500000000007A +:042D56000000000079 +:042D57000000000078 +:042D58000000000077 +:042D59000000000076 +:042D5A000000000075 +:042D5B000000000074 +:042D5C000000000073 +:042D5D000000000072 +:042D5E000000000071 +:042D5F000000000070 +:042D6000000000006F +:042D6100000000006E +:042D6200000000006D +:042D6300000000006C +:042D6400000000006B +:042D6500000000006A +:042D66000000000069 +:042D67000000000068 +:042D68000000000067 +:042D69000000000066 +:042D6A000000000065 +:042D6B000000000064 +:042D6C000000000063 +:042D6D000000000062 +:042D6E000000000061 +:042D6F000000000060 +:042D7000000000005F +:042D7100000000005E +:042D7200000000005D +:042D7300000000005C +:042D7400000000005B +:042D7500000000005A +:042D76000000000059 +:042D77000000000058 +:042D78000000000057 +:042D79000000000056 +:042D7A000000000055 +:042D7B000000000054 +:042D7C000000000053 +:042D7D000000000052 +:042D7E000000000051 +:042D7F000000000050 +:042D8000000000004F +:042D8100000000004E +:042D8200000000004D +:042D8300000000004C +:042D8400000000004B +:042D8500000000004A +:042D86000000000049 +:042D87000000000048 +:042D88000000000047 +:042D89000000000046 +:042D8A000000000045 +:042D8B000000000044 +:042D8C000000000043 +:042D8D000000000042 +:042D8E000000000041 +:042D8F000000000040 +:042D9000000000003F +:042D9100000000003E +:042D9200000000003D +:042D9300000000003C +:042D9400000000003B +:042D9500000000003A +:042D96000000000039 +:042D97000000000038 +:042D98000000000037 +:042D99000000000036 +:042D9A000000000035 +:042D9B000000000034 +:042D9C000000000033 +:042D9D000000000032 +:042D9E000000000031 +:042D9F000000000030 +:042DA000000000002F +:042DA100000000002E +:042DA200000000002D +:042DA300000000002C +:042DA400000000002B +:042DA500000000002A +:042DA6000000000029 +:042DA7000000000028 +:042DA8000000000027 +:042DA9000000000026 +:042DAA000000000025 +:042DAB000000000024 +:042DAC000000000023 +:042DAD000000000022 +:042DAE000000000021 +:042DAF000000000020 +:042DB000000000001F +:042DB100000000001E +:042DB200000000001D +:042DB300000000001C +:042DB400000000001B +:042DB500000000001A +:042DB6000000000019 +:042DB7000000000018 +:042DB8000000000017 +:042DB9000000000016 +:042DBA000000000015 +:042DBB000000000014 +:042DBC000000000013 +:042DBD000000000012 +:042DBE000000000011 +:042DBF000000000010 +:042DC000000000000F +:042DC100000000000E +:042DC200000000000D +:042DC300000000000C +:042DC400000000000B +:042DC500000000000A +:042DC6000000000009 +:042DC7000000000008 +:042DC8000000000007 +:042DC9000000000006 +:042DCA000000000005 +:042DCB000000000004 +:042DCC000000000003 +:042DCD000000000002 +:042DCE000000000001 +:042DCF000000000000 +:042DD00000000000FF +:042DD10000000000FE +:042DD20000000000FD +:042DD30000000000FC +:042DD40000000000FB +:042DD50000000000FA +:042DD60000000000F9 +:042DD70000000000F8 +:042DD80000000000F7 +:042DD90000000000F6 +:042DDA0000000000F5 +:042DDB0000000000F4 +:042DDC0000000000F3 +:042DDD0000000000F2 +:042DDE0000000000F1 +:042DDF0000000000F0 +:042DE00000000000EF +:042DE10000000000EE +:042DE20000000000ED +:042DE30000000000EC +:042DE40000000000EB +:042DE50000000000EA +:042DE60000000000E9 +:042DE70000000000E8 +:042DE80000000000E7 +:042DE90000000000E6 +:042DEA0000000000E5 +:042DEB0000000000E4 +:042DEC0000000000E3 +:042DED0000000000E2 +:042DEE0000000000E1 +:042DEF0000000000E0 +:042DF00000000000DF +:042DF10000000000DE +:042DF20000000000DD +:042DF30000000000DC +:042DF40000000000DB +:042DF50000000000DA +:042DF60000000000D9 +:042DF70000000000D8 +:042DF80000000000D7 +:042DF90000000000D6 +:042DFA0000000000D5 +:042DFB0000000000D4 +:042DFC0000000000D3 +:042DFD0000000000D2 +:042DFE0000000000D1 +:042DFF0000000000D0 +:042E000000000000CE +:042E010000000000CD +:042E020000000000CC +:042E030000000000CB +:042E040000000000CA +:042E050000000000C9 +:042E060000000000C8 +:042E070000000000C7 +:042E080000000000C6 +:042E090000000000C5 +:042E0A0000000000C4 +:042E0B0000000000C3 +:042E0C0000000000C2 +:042E0D0000000000C1 +:042E0E0000000000C0 +:042E0F0000000000BF +:042E100000000000BE +:042E110000000000BD +:042E120000000000BC +:042E130000000000BB +:042E140000000000BA +:042E150000000000B9 +:042E160000000000B8 +:042E170000000000B7 +:042E180000000000B6 +:042E190000000000B5 +:042E1A0000000000B4 +:042E1B0000000000B3 +:042E1C0000000000B2 +:042E1D0000000000B1 +:042E1E0000000000B0 +:042E1F0000000000AF +:042E200000000000AE +:042E210000000000AD +:042E220000000000AC +:042E230000000000AB +:042E240000000000AA +:042E250000000000A9 +:042E260000000000A8 +:042E270000000000A7 +:042E280000000000A6 +:042E290000000000A5 +:042E2A0000000000A4 +:042E2B0000000000A3 +:042E2C0000000000A2 +:042E2D0000000000A1 +:042E2E0000000000A0 +:042E2F00000000009F +:042E3000000000009E +:042E3100000000009D +:042E3200000000009C +:042E3300000000009B +:042E3400000000009A +:042E35000000000099 +:042E36000000000098 +:042E37000000000097 +:042E38000000000096 +:042E39000000000095 +:042E3A000000000094 +:042E3B000000000093 +:042E3C000000000092 +:042E3D000000000091 +:042E3E000000000090 +:042E3F00000000008F +:042E4000000000008E +:042E4100000000008D +:042E4200000000008C +:042E4300000000008B +:042E4400000000008A +:042E45000000000089 +:042E46000000000088 +:042E47000000000087 +:042E48000000000086 +:042E49000000000085 +:042E4A000000000084 +:042E4B000000000083 +:042E4C000000000082 +:042E4D000000000081 +:042E4E000000000080 +:042E4F00000000007F +:042E5000000000007E +:042E5100000000007D +:042E5200000000007C +:042E5300000000007B +:042E5400000000007A +:042E55000000000079 +:042E56000000000078 +:042E57000000000077 +:042E58000000000076 +:042E59000000000075 +:042E5A000000000074 +:042E5B000000000073 +:042E5C000000000072 +:042E5D000000000071 +:042E5E000000000070 +:042E5F00000000006F +:042E6000000000006E +:042E6100000000006D +:042E6200000000006C +:042E6300000000006B +:042E6400000000006A +:042E65000000000069 +:042E66000000000068 +:042E67000000000067 +:042E68000000000066 +:042E69000000000065 +:042E6A000000000064 +:042E6B000000000063 +:042E6C000000000062 +:042E6D000000000061 +:042E6E000000000060 +:042E6F00000000005F +:042E7000000000005E +:042E7100000000005D +:042E7200000000005C +:042E7300000000005B +:042E7400000000005A +:042E75000000000059 +:042E76000000000058 +:042E77000000000057 +:042E78000000000056 +:042E79000000000055 +:042E7A000000000054 +:042E7B000000000053 +:042E7C000000000052 +:042E7D000000000051 +:042E7E000000000050 +:042E7F00000000004F +:042E8000000000004E +:042E8100000000004D +:042E8200000000004C +:042E8300000000004B +:042E8400000000004A +:042E85000000000049 +:042E86000000000048 +:042E87000000000047 +:042E88000000000046 +:042E89000000000045 +:042E8A000000000044 +:042E8B000000000043 +:042E8C000000000042 +:042E8D000000000041 +:042E8E000000000040 +:042E8F00000000003F +:042E9000000000003E +:042E9100000000003D +:042E9200000000003C +:042E9300000000003B +:042E9400000000003A +:042E95000000000039 +:042E96000000000038 +:042E97000000000037 +:042E98000000000036 +:042E99000000000035 +:042E9A000000000034 +:042E9B000000000033 +:042E9C000000000032 +:042E9D000000000031 +:042E9E000000000030 +:042E9F00000000002F +:042EA000000000002E +:042EA100000000002D +:042EA200000000002C +:042EA300000000002B +:042EA400000000002A +:042EA5000000000029 +:042EA6000000000028 +:042EA7000000000027 +:042EA8000000000026 +:042EA9000000000025 +:042EAA000000000024 +:042EAB000000000023 +:042EAC000000000022 +:042EAD000000000021 +:042EAE000000000020 +:042EAF00000000001F +:042EB000000000001E +:042EB100000000001D +:042EB200000000001C +:042EB300000000001B +:042EB400000000001A +:042EB5000000000019 +:042EB6000000000018 +:042EB7000000000017 +:042EB8000000000016 +:042EB9000000000015 +:042EBA000000000014 +:042EBB000000000013 +:042EBC000000000012 +:042EBD000000000011 +:042EBE000000000010 +:042EBF00000000000F +:042EC000000000000E +:042EC100000000000D +:042EC200000000000C +:042EC300000000000B +:042EC400000000000A +:042EC5000000000009 +:042EC6000000000008 +:042EC7000000000007 +:042EC8000000000006 +:042EC9000000000005 +:042ECA000000000004 +:042ECB000000000003 +:042ECC000000000002 +:042ECD000000000001 +:042ECE000000000000 +:042ECF0000000000FF +:042ED00000000000FE +:042ED10000000000FD +:042ED20000000000FC +:042ED30000000000FB +:042ED40000000000FA +:042ED50000000000F9 +:042ED60000000000F8 +:042ED70000000000F7 +:042ED80000000000F6 +:042ED90000000000F5 +:042EDA0000000000F4 +:042EDB0000000000F3 +:042EDC0000000000F2 +:042EDD0000000000F1 +:042EDE0000000000F0 +:042EDF0000000000EF +:042EE00000000000EE +:042EE10000000000ED +:042EE20000000000EC +:042EE30000000000EB +:042EE40000000000EA +:042EE50000000000E9 +:042EE60000000000E8 +:042EE70000000000E7 +:042EE80000000000E6 +:042EE90000000000E5 +:042EEA0000000000E4 +:042EEB0000000000E3 +:042EEC0000000000E2 +:042EED0000000000E1 +:042EEE0000000000E0 +:042EEF0000000000DF +:042EF00000000000DE +:042EF10000000000DD +:042EF20000000000DC +:042EF30000000000DB +:042EF40000000000DA +:042EF50000000000D9 +:042EF60000000000D8 +:042EF70000000000D7 +:042EF80000000000D6 +:042EF90000000000D5 +:042EFA0000000000D4 +:042EFB0000000000D3 +:042EFC0000000000D2 +:042EFD0000000000D1 +:042EFE0000000000D0 +:042EFF0000000000CF +:042F000000000000CD +:042F010000000000CC +:042F020000000000CB +:042F030000000000CA +:042F040000000000C9 +:042F050000000000C8 +:042F060000000000C7 +:042F070000000000C6 +:042F080000000000C5 +:042F090000000000C4 +:042F0A0000000000C3 +:042F0B0000000000C2 +:042F0C0000000000C1 +:042F0D0000000000C0 +:042F0E0000000000BF +:042F0F0000000000BE +:042F100000000000BD +:042F110000000000BC +:042F120000000000BB +:042F130000000000BA +:042F140000000000B9 +:042F150000000000B8 +:042F160000000000B7 +:042F170000000000B6 +:042F180000000000B5 +:042F190000000000B4 +:042F1A0000000000B3 +:042F1B0000000000B2 +:042F1C0000000000B1 +:042F1D0000000000B0 +:042F1E0000000000AF +:042F1F0000000000AE +:042F200000000000AD +:042F210000000000AC +:042F220000000000AB +:042F230000000000AA +:042F240000000000A9 +:042F250000000000A8 +:042F260000000000A7 +:042F270000000000A6 +:042F280000000000A5 +:042F290000000000A4 +:042F2A0000000000A3 +:042F2B0000000000A2 +:042F2C0000000000A1 +:042F2D0000000000A0 +:042F2E00000000009F +:042F2F00000000009E +:042F3000000000009D +:042F3100000000009C +:042F3200000000009B +:042F3300000000009A +:042F34000000000099 +:042F35000000000098 +:042F36000000000097 +:042F37000000000096 +:042F38000000000095 +:042F39000000000094 +:042F3A000000000093 +:042F3B000000000092 +:042F3C000000000091 +:042F3D000000000090 +:042F3E00000000008F +:042F3F00000000008E +:042F4000000000008D +:042F4100000000008C +:042F4200000000008B +:042F4300000000008A +:042F44000000000089 +:042F45000000000088 +:042F46000000000087 +:042F47000000000086 +:042F48000000000085 +:042F49000000000084 +:042F4A000000000083 +:042F4B000000000082 +:042F4C000000000081 +:042F4D000000000080 +:042F4E00000000007F +:042F4F00000000007E +:042F5000000000007D +:042F5100000000007C +:042F5200000000007B +:042F5300000000007A +:042F54000000000079 +:042F55000000000078 +:042F56000000000077 +:042F57000000000076 +:042F58000000000075 +:042F59000000000074 +:042F5A000000000073 +:042F5B000000000072 +:042F5C000000000071 +:042F5D000000000070 +:042F5E00000000006F +:042F5F00000000006E +:042F6000000000006D +:042F6100000000006C +:042F6200000000006B +:042F6300000000006A +:042F64000000000069 +:042F65000000000068 +:042F66000000000067 +:042F67000000000066 +:042F68000000000065 +:042F69000000000064 +:042F6A000000000063 +:042F6B000000000062 +:042F6C000000000061 +:042F6D000000000060 +:042F6E00000000005F +:042F6F00000000005E +:042F7000000000005D +:042F7100000000005C +:042F7200000000005B +:042F7300000000005A +:042F74000000000059 +:042F75000000000058 +:042F76000000000057 +:042F77000000000056 +:042F78000000000055 +:042F79000000000054 +:042F7A000000000053 +:042F7B000000000052 +:042F7C000000000051 +:042F7D000000000050 +:042F7E00000000004F +:042F7F00000000004E +:042F8000000000004D +:042F8100000000004C +:042F8200000000004B +:042F8300000000004A +:042F84000000000049 +:042F85000000000048 +:042F86000000000047 +:042F87000000000046 +:042F88000000000045 +:042F89000000000044 +:042F8A000000000043 +:042F8B000000000042 +:042F8C000000000041 +:042F8D000000000040 +:042F8E00000000003F +:042F8F00000000003E +:042F9000000000003D +:042F9100000000003C +:042F9200000000003B +:042F9300000000003A +:042F94000000000039 +:042F95000000000038 +:042F96000000000037 +:042F97000000000036 +:042F98000000000035 +:042F99000000000034 +:042F9A000000000033 +:042F9B000000000032 +:042F9C000000000031 +:042F9D000000000030 +:042F9E00000000002F +:042F9F00000000002E +:042FA000000000002D +:042FA100000000002C +:042FA200000000002B +:042FA300000000002A +:042FA4000000000029 +:042FA5000000000028 +:042FA6000000000027 +:042FA7000000000026 +:042FA8000000000025 +:042FA9000000000024 +:042FAA000000000023 +:042FAB000000000022 +:042FAC000000000021 +:042FAD000000000020 +:042FAE00000000001F +:042FAF00000000001E +:042FB000000000001D +:042FB100000000001C +:042FB200000000001B +:042FB300000000001A +:042FB4000000000019 +:042FB5000000000018 +:042FB6000000000017 +:042FB7000000000016 +:042FB8000000000015 +:042FB9000000000014 +:042FBA000000000013 +:042FBB000000000012 +:042FBC000000000011 +:042FBD000000000010 +:042FBE00000000000F +:042FBF00000000000E +:042FC000000000000D +:042FC100000000000C +:042FC200000000000B +:042FC300000000000A +:042FC4000000000009 +:042FC5000000000008 +:042FC6000000000007 +:042FC7000000000006 +:042FC8000000000005 +:042FC9000000000004 +:042FCA000000000003 +:042FCB000000000002 +:042FCC000000000001 +:042FCD000000000000 +:042FCE0000000000FF +:042FCF0000000000FE +:042FD00000000000FD +:042FD10000000000FC +:042FD20000000000FB +:042FD30000000000FA +:042FD40000000000F9 +:042FD50000000000F8 +:042FD60000000000F7 +:042FD70000000000F6 +:042FD80000000000F5 +:042FD90000000000F4 +:042FDA0000000000F3 +:042FDB0000000000F2 +:042FDC0000000000F1 +:042FDD0000000000F0 +:042FDE0000000000EF +:042FDF0000000000EE +:042FE00000000000ED +:042FE10000000000EC +:042FE20000000000EB +:042FE30000000000EA +:042FE40000000000E9 +:042FE50000000000E8 +:042FE60000000000E7 +:042FE70000000000E6 +:042FE80000000000E5 +:042FE90000000000E4 +:042FEA0000000000E3 +:042FEB0000000000E2 +:042FEC0000000000E1 +:042FED0000000000E0 +:042FEE0000000000DF +:042FEF0000000000DE +:042FF00000000000DD +:042FF10000000000DC +:042FF20000000000DB +:042FF30000000000DA +:042FF40000000000D9 +:042FF50000000000D8 +:042FF60000000000D7 +:042FF70000000000D6 +:042FF80000000000D5 +:042FF90000000000D4 +:042FFA0000000000D3 +:042FFB0000000000D2 +:042FFC0000000000D1 +:042FFD0000000000D0 +:042FFE0000000000CF +:042FFF0000000000CE +:0430000000000000CC +:0430010000000000CB +:0430020000000000CA +:0430030000000000C9 +:0430040000000000C8 +:0430050000000000C7 +:0430060000000000C6 +:0430070000000000C5 +:0430080000000000C4 +:0430090000000000C3 +:04300A0000000000C2 +:04300B0000000000C1 +:04300C0000000000C0 +:04300D0000000000BF +:04300E0000000000BE +:04300F0000000000BD +:0430100000000000BC +:0430110000000000BB +:0430120000000000BA +:0430130000000000B9 +:0430140000000000B8 +:0430150000000000B7 +:0430160000000000B6 +:0430170000000000B5 +:0430180000000000B4 +:0430190000000000B3 +:04301A0000000000B2 +:04301B0000000000B1 +:04301C0000000000B0 +:04301D0000000000AF +:04301E0000000000AE +:04301F0000000000AD +:0430200000000000AC +:0430210000000000AB +:0430220000000000AA +:0430230000000000A9 +:0430240000000000A8 +:0430250000000000A7 +:0430260000000000A6 +:0430270000000000A5 +:0430280000000000A4 +:0430290000000000A3 +:04302A0000000000A2 +:04302B0000000000A1 +:04302C0000000000A0 +:04302D00000000009F +:04302E00000000009E +:04302F00000000009D +:04303000000000009C +:04303100000000009B +:04303200000000009A +:043033000000000099 +:043034000000000098 +:043035000000000097 +:043036000000000096 +:043037000000000095 +:043038000000000094 +:043039000000000093 +:04303A000000000092 +:04303B000000000091 +:04303C000000000090 +:04303D00000000008F +:04303E00000000008E +:04303F00000000008D +:04304000000000008C +:04304100000000008B +:04304200000000008A +:043043000000000089 +:043044000000000088 +:043045000000000087 +:043046000000000086 +:043047000000000085 +:043048000000000084 +:043049000000000083 +:04304A000000000082 +:04304B000000000081 +:04304C000000000080 +:04304D00000000007F +:04304E00000000007E +:04304F00000000007D +:04305000000000007C +:04305100000000007B +:04305200000000007A +:043053000000000079 +:043054000000000078 +:043055000000000077 +:043056000000000076 +:043057000000000075 +:043058000000000074 +:043059000000000073 +:04305A000000000072 +:04305B000000000071 +:04305C000000000070 +:04305D00000000006F +:04305E00000000006E +:04305F00000000006D +:04306000000000006C +:04306100000000006B +:04306200000000006A +:043063000000000069 +:043064000000000068 +:043065000000000067 +:043066000000000066 +:043067000000000065 +:043068000000000064 +:043069000000000063 +:04306A000000000062 +:04306B000000000061 +:04306C000000000060 +:04306D00000000005F +:04306E00000000005E +:04306F00000000005D +:04307000000000005C +:04307100000000005B +:04307200000000005A +:043073000000000059 +:043074000000000058 +:043075000000000057 +:043076000000000056 +:043077000000000055 +:043078000000000054 +:043079000000000053 +:04307A000000000052 +:04307B000000000051 +:04307C000000000050 +:04307D00000000004F +:04307E00000000004E +:04307F00000000004D +:04308000000000004C +:04308100000000004B +:04308200000000004A +:043083000000000049 +:043084000000000048 +:043085000000000047 +:043086000000000046 +:043087000000000045 +:043088000000000044 +:043089000000000043 +:04308A000000000042 +:04308B000000000041 +:04308C000000000040 +:04308D00000000003F +:04308E00000000003E +:04308F00000000003D +:04309000000000003C +:04309100000000003B +:04309200000000003A +:043093000000000039 +:043094000000000038 +:043095000000000037 +:043096000000000036 +:043097000000000035 +:043098000000000034 +:043099000000000033 +:04309A000000000032 +:04309B000000000031 +:04309C000000000030 +:04309D00000000002F +:04309E00000000002E +:04309F00000000002D +:0430A000000000002C +:0430A100000000002B +:0430A200000000002A +:0430A3000000000029 +:0430A4000000000028 +:0430A5000000000027 +:0430A6000000000026 +:0430A7000000000025 +:0430A8000000000024 +:0430A9000000000023 +:0430AA000000000022 +:0430AB000000000021 +:0430AC000000000020 +:0430AD00000000001F +:0430AE00000000001E +:0430AF00000000001D +:0430B000000000001C +:0430B100000000001B +:0430B200000000001A +:0430B3000000000019 +:0430B4000000000018 +:0430B5000000000017 +:0430B6000000000016 +:0430B7000000000015 +:0430B8000000000014 +:0430B9000000000013 +:0430BA000000000012 +:0430BB000000000011 +:0430BC000000000010 +:0430BD00000000000F +:0430BE00000000000E +:0430BF00000000000D +:0430C000000000000C +:0430C100000000000B +:0430C200000000000A +:0430C3000000000009 +:0430C4000000000008 +:0430C5000000000007 +:0430C6000000000006 +:0430C7000000000005 +:0430C8000000000004 +:0430C9000000000003 +:0430CA000000000002 +:0430CB000000000001 +:0430CC000000000000 +:0430CD0000000000FF +:0430CE0000000000FE +:0430CF0000000000FD +:0430D00000000000FC +:0430D10000000000FB +:0430D20000000000FA +:0430D30000000000F9 +:0430D40000000000F8 +:0430D50000000000F7 +:0430D60000000000F6 +:0430D70000000000F5 +:0430D80000000000F4 +:0430D90000000000F3 +:0430DA0000000000F2 +:0430DB0000000000F1 +:0430DC0000000000F0 +:0430DD0000000000EF +:0430DE0000000000EE +:0430DF0000000000ED +:0430E00000000000EC +:0430E10000000000EB +:0430E20000000000EA +:0430E30000000000E9 +:0430E40000000000E8 +:0430E50000000000E7 +:0430E60000000000E6 +:0430E70000000000E5 +:0430E80000000000E4 +:0430E90000000000E3 +:0430EA0000000000E2 +:0430EB0000000000E1 +:0430EC0000000000E0 +:0430ED0000000000DF +:0430EE0000000000DE +:0430EF0000000000DD +:0430F00000000000DC +:0430F10000000000DB +:0430F20000000000DA +:0430F30000000000D9 +:0430F40000000000D8 +:0430F50000000000D7 +:0430F60000000000D6 +:0430F70000000000D5 +:0430F80000000000D4 +:0430F90000000000D3 +:0430FA0000000000D2 +:0430FB0000000000D1 +:0430FC0000000000D0 +:0430FD0000000000CF +:0430FE0000000000CE +:0430FF0000000000CD +:0431000000000000CB +:0431010000000000CA +:0431020000000000C9 +:0431030000000000C8 +:0431040000000000C7 +:0431050000000000C6 +:0431060000000000C5 +:0431070000000000C4 +:0431080000000000C3 +:0431090000000000C2 +:04310A0000000000C1 +:04310B0000000000C0 +:04310C0000000000BF +:04310D0000000000BE +:04310E0000000000BD +:04310F0000000000BC +:0431100000000000BB +:0431110000000000BA +:0431120000000000B9 +:0431130000000000B8 +:0431140000000000B7 +:0431150000000000B6 +:0431160000000000B5 +:0431170000000000B4 +:0431180000000000B3 +:0431190000000000B2 +:04311A0000000000B1 +:04311B0000000000B0 +:04311C0000000000AF +:04311D0000000000AE +:04311E0000000000AD +:04311F0000000000AC +:0431200000000000AB +:0431210000000000AA +:0431220000000000A9 +:0431230000000000A8 +:0431240000000000A7 +:0431250000000000A6 +:0431260000000000A5 +:0431270000000000A4 +:0431280000000000A3 +:0431290000000000A2 +:04312A0000000000A1 +:04312B0000000000A0 +:04312C00000000009F +:04312D00000000009E +:04312E00000000009D +:04312F00000000009C +:04313000000000009B +:04313100000000009A +:043132000000000099 +:043133000000000098 +:043134000000000097 +:043135000000000096 +:043136000000000095 +:043137000000000094 +:043138000000000093 +:043139000000000092 +:04313A000000000091 +:04313B000000000090 +:04313C00000000008F +:04313D00000000008E +:04313E00000000008D +:04313F00000000008C +:04314000000000008B +:04314100000000008A +:043142000000000089 +:043143000000000088 +:043144000000000087 +:043145000000000086 +:043146000000000085 +:043147000000000084 +:043148000000000083 +:043149000000000082 +:04314A000000000081 +:04314B000000000080 +:04314C00000000007F +:04314D00000000007E +:04314E00000000007D +:04314F00000000007C +:04315000000000007B +:04315100000000007A +:043152000000000079 +:043153000000000078 +:043154000000000077 +:043155000000000076 +:043156000000000075 +:043157000000000074 +:043158000000000073 +:043159000000000072 +:04315A000000000071 +:04315B000000000070 +:04315C00000000006F +:04315D00000000006E +:04315E00000000006D +:04315F00000000006C +:04316000000000006B +:04316100000000006A +:043162000000000069 +:043163000000000068 +:043164000000000067 +:043165000000000066 +:043166000000000065 +:043167000000000064 +:043168000000000063 +:043169000000000062 +:04316A000000000061 +:04316B000000000060 +:04316C00000000005F +:04316D00000000005E +:04316E00000000005D +:04316F00000000005C +:04317000000000005B +:04317100000000005A +:043172000000000059 +:043173000000000058 +:043174000000000057 +:043175000000000056 +:043176000000000055 +:043177000000000054 +:043178000000000053 +:043179000000000052 +:04317A000000000051 +:04317B000000000050 +:04317C00000000004F +:04317D00000000004E +:04317E00000000004D +:04317F00000000004C +:04318000000000004B +:04318100000000004A +:043182000000000049 +:043183000000000048 +:043184000000000047 +:043185000000000046 +:043186000000000045 +:043187000000000044 +:043188000000000043 +:043189000000000042 +:04318A000000000041 +:04318B000000000040 +:04318C00000000003F +:04318D00000000003E +:04318E00000000003D +:04318F00000000003C +:04319000000000003B +:04319100000000003A +:043192000000000039 +:043193000000000038 +:043194000000000037 +:043195000000000036 +:043196000000000035 +:043197000000000034 +:043198000000000033 +:043199000000000032 +:04319A000000000031 +:04319B000000000030 +:04319C00000000002F +:04319D00000000002E +:04319E00000000002D +:04319F00000000002C +:0431A000000000002B +:0431A100000000002A +:0431A2000000000029 +:0431A3000000000028 +:0431A4000000000027 +:0431A5000000000026 +:0431A6000000000025 +:0431A7000000000024 +:0431A8000000000023 +:0431A9000000000022 +:0431AA000000000021 +:0431AB000000000020 +:0431AC00000000001F +:0431AD00000000001E +:0431AE00000000001D +:0431AF00000000001C +:0431B000000000001B +:0431B100000000001A +:0431B2000000000019 +:0431B3000000000018 +:0431B4000000000017 +:0431B5000000000016 +:0431B6000000000015 +:0431B7000000000014 +:0431B8000000000013 +:0431B9000000000012 +:0431BA000000000011 +:0431BB000000000010 +:0431BC00000000000F +:0431BD00000000000E +:0431BE00000000000D +:0431BF00000000000C +:0431C000000000000B +:0431C100000000000A +:0431C2000000000009 +:0431C3000000000008 +:0431C4000000000007 +:0431C5000000000006 +:0431C6000000000005 +:0431C7000000000004 +:0431C8000000000003 +:0431C9000000000002 +:0431CA000000000001 +:0431CB000000000000 +:0431CC0000000000FF +:0431CD0000000000FE +:0431CE0000000000FD +:0431CF0000000000FC +:0431D00000000000FB +:0431D10000000000FA +:0431D20000000000F9 +:0431D30000000000F8 +:0431D40000000000F7 +:0431D50000000000F6 +:0431D60000000000F5 +:0431D70000000000F4 +:0431D80000000000F3 +:0431D90000000000F2 +:0431DA0000000000F1 +:0431DB0000000000F0 +:0431DC0000000000EF +:0431DD0000000000EE +:0431DE0000000000ED +:0431DF0000000000EC +:0431E00000000000EB +:0431E10000000000EA +:0431E20000000000E9 +:0431E30000000000E8 +:0431E40000000000E7 +:0431E50000000000E6 +:0431E60000000000E5 +:0431E70000000000E4 +:0431E80000000000E3 +:0431E90000000000E2 +:0431EA0000000000E1 +:0431EB0000000000E0 +:0431EC0000000000DF +:0431ED0000000000DE +:0431EE0000000000DD +:0431EF0000000000DC +:0431F00000000000DB +:0431F10000000000DA +:0431F20000000000D9 +:0431F30000000000D8 +:0431F40000000000D7 +:0431F50000000000D6 +:0431F60000000000D5 +:0431F70000000000D4 +:0431F80000000000D3 +:0431F90000000000D2 +:0431FA0000000000D1 +:0431FB0000000000D0 +:0431FC0000000000CF +:0431FD0000000000CE +:0431FE0000000000CD +:0431FF0000000000CC +:0432000000000000CA +:0432010000000000C9 +:0432020000000000C8 +:0432030000000000C7 +:0432040000000000C6 +:0432050000000000C5 +:0432060000000000C4 +:0432070000000000C3 +:0432080000000000C2 +:0432090000000000C1 +:04320A0000000000C0 +:04320B0000000000BF +:04320C0000000000BE +:04320D0000000000BD +:04320E0000000000BC +:04320F0000000000BB +:0432100000000000BA +:0432110000000000B9 +:0432120000000000B8 +:0432130000000000B7 +:0432140000000000B6 +:0432150000000000B5 +:0432160000000000B4 +:0432170000000000B3 +:0432180000000000B2 +:0432190000000000B1 +:04321A0000000000B0 +:04321B0000000000AF +:04321C0000000000AE +:04321D0000000000AD +:04321E0000000000AC +:04321F0000000000AB +:0432200000000000AA +:0432210000000000A9 +:0432220000000000A8 +:0432230000000000A7 +:0432240000000000A6 +:0432250000000000A5 +:0432260000000000A4 +:0432270000000000A3 +:0432280000000000A2 +:0432290000000000A1 +:04322A0000000000A0 +:04322B00000000009F +:04322C00000000009E +:04322D00000000009D +:04322E00000000009C +:04322F00000000009B +:04323000000000009A +:043231000000000099 +:043232000000000098 +:043233000000000097 +:043234000000000096 +:043235000000000095 +:043236000000000094 +:043237000000000093 +:043238000000000092 +:043239000000000091 +:04323A000000000090 +:04323B00000000008F +:04323C00000000008E +:04323D00000000008D +:04323E00000000008C +:04323F00000000008B +:04324000000000008A +:043241000000000089 +:043242000000000088 +:043243000000000087 +:043244000000000086 +:043245000000000085 +:043246000000000084 +:043247000000000083 +:043248000000000082 +:043249000000000081 +:04324A000000000080 +:04324B00000000007F +:04324C00000000007E +:04324D00000000007D +:04324E00000000007C +:04324F00000000007B +:04325000000000007A +:043251000000000079 +:043252000000000078 +:043253000000000077 +:043254000000000076 +:043255000000000075 +:043256000000000074 +:043257000000000073 +:043258000000000072 +:043259000000000071 +:04325A000000000070 +:04325B00000000006F +:04325C00000000006E +:04325D00000000006D +:04325E00000000006C +:04325F00000000006B +:04326000000000006A +:043261000000000069 +:043262000000000068 +:043263000000000067 +:043264000000000066 +:043265000000000065 +:043266000000000064 +:043267000000000063 +:043268000000000062 +:043269000000000061 +:04326A000000000060 +:04326B00000000005F +:04326C00000000005E +:04326D00000000005D +:04326E00000000005C +:04326F00000000005B +:04327000000000005A +:043271000000000059 +:043272000000000058 +:043273000000000057 +:043274000000000056 +:043275000000000055 +:043276000000000054 +:043277000000000053 +:043278000000000052 +:043279000000000051 +:04327A000000000050 +:04327B00000000004F +:04327C00000000004E +:04327D00000000004D +:04327E00000000004C +:04327F00000000004B +:04328000000000004A +:043281000000000049 +:043282000000000048 +:043283000000000047 +:043284000000000046 +:043285000000000045 +:043286000000000044 +:043287000000000043 +:043288000000000042 +:043289000000000041 +:04328A000000000040 +:04328B00000000003F +:04328C00000000003E +:04328D00000000003D +:04328E00000000003C +:04328F00000000003B +:04329000000000003A +:043291000000000039 +:043292000000000038 +:043293000000000037 +:043294000000000036 +:043295000000000035 +:043296000000000034 +:043297000000000033 +:043298000000000032 +:043299000000000031 +:04329A000000000030 +:04329B00000000002F +:04329C00000000002E +:04329D00000000002D +:04329E00000000002C +:04329F00000000002B +:0432A000000000002A +:0432A1000000000029 +:0432A2000000000028 +:0432A3000000000027 +:0432A4000000000026 +:0432A5000000000025 +:0432A6000000000024 +:0432A7000000000023 +:0432A8000000000022 +:0432A9000000000021 +:0432AA000000000020 +:0432AB00000000001F +:0432AC00000000001E +:0432AD00000000001D +:0432AE00000000001C +:0432AF00000000001B +:0432B000000000001A +:0432B1000000000019 +:0432B2000000000018 +:0432B3000000000017 +:0432B4000000000016 +:0432B5000000000015 +:0432B6000000000014 +:0432B7000000000013 +:0432B8000000000012 +:0432B9000000000011 +:0432BA000000000010 +:0432BB00000000000F +:0432BC00000000000E +:0432BD00000000000D +:0432BE00000000000C +:0432BF00000000000B +:0432C000000000000A +:0432C1000000000009 +:0432C2000000000008 +:0432C3000000000007 +:0432C4000000000006 +:0432C5000000000005 +:0432C6000000000004 +:0432C7000000000003 +:0432C8000000000002 +:0432C9000000000001 +:0432CA000000000000 +:0432CB0000000000FF +:0432CC0000000000FE +:0432CD0000000000FD +:0432CE0000000000FC +:0432CF0000000000FB +:0432D00000000000FA +:0432D10000000000F9 +:0432D20000000000F8 +:0432D30000000000F7 +:0432D40000000000F6 +:0432D50000000000F5 +:0432D60000000000F4 +:0432D70000000000F3 +:0432D80000000000F2 +:0432D90000000000F1 +:0432DA0000000000F0 +:0432DB0000000000EF +:0432DC0000000000EE +:0432DD0000000000ED +:0432DE0000000000EC +:0432DF0000000000EB +:0432E00000000000EA +:0432E10000000000E9 +:0432E20000000000E8 +:0432E30000000000E7 +:0432E40000000000E6 +:0432E50000000000E5 +:0432E60000000000E4 +:0432E70000000000E3 +:0432E80000000000E2 +:0432E90000000000E1 +:0432EA0000000000E0 +:0432EB0000000000DF +:0432EC0000000000DE +:0432ED0000000000DD +:0432EE0000000000DC +:0432EF0000000000DB +:0432F00000000000DA +:0432F10000000000D9 +:0432F20000000000D8 +:0432F30000000000D7 +:0432F40000000000D6 +:0432F50000000000D5 +:0432F60000000000D4 +:0432F70000000000D3 +:0432F80000000000D2 +:0432F90000000000D1 +:0432FA0000000000D0 +:0432FB0000000000CF +:0432FC0000000000CE +:0432FD0000000000CD +:0432FE0000000000CC +:0432FF0000000000CB +:0433000000000000C9 +:0433010000000000C8 +:0433020000000000C7 +:0433030000000000C6 +:0433040000000000C5 +:0433050000000000C4 +:0433060000000000C3 +:0433070000000000C2 +:0433080000000000C1 +:0433090000000000C0 +:04330A0000000000BF +:04330B0000000000BE +:04330C0000000000BD +:04330D0000000000BC +:04330E0000000000BB +:04330F0000000000BA +:0433100000000000B9 +:0433110000000000B8 +:0433120000000000B7 +:0433130000000000B6 +:0433140000000000B5 +:0433150000000000B4 +:0433160000000000B3 +:0433170000000000B2 +:0433180000000000B1 +:0433190000000000B0 +:04331A0000000000AF +:04331B0000000000AE +:04331C0000000000AD +:04331D0000000000AC +:04331E0000000000AB +:04331F0000000000AA +:0433200000000000A9 +:0433210000000000A8 +:0433220000000000A7 +:0433230000000000A6 +:0433240000000000A5 +:0433250000000000A4 +:0433260000000000A3 +:0433270000000000A2 +:0433280000000000A1 +:0433290000000000A0 +:04332A00000000009F +:04332B00000000009E +:04332C00000000009D +:04332D00000000009C +:04332E00000000009B +:04332F00000000009A +:043330000000000099 +:043331000000000098 +:043332000000000097 +:043333000000000096 +:043334000000000095 +:043335000000000094 +:043336000000000093 +:043337000000000092 +:043338000000000091 +:043339000000000090 +:04333A00000000008F +:04333B00000000008E +:04333C00000000008D +:04333D00000000008C +:04333E00000000008B +:04333F00000000008A +:043340000000000089 +:043341000000000088 +:043342000000000087 +:043343000000000086 +:043344000000000085 +:043345000000000084 +:043346000000000083 +:043347000000000082 +:043348000000000081 +:043349000000000080 +:04334A00000000007F +:04334B00000000007E +:04334C00000000007D +:04334D00000000007C +:04334E00000000007B +:04334F00000000007A +:043350000000000079 +:043351000000000078 +:043352000000000077 +:043353000000000076 +:043354000000000075 +:043355000000000074 +:043356000000000073 +:043357000000000072 +:043358000000000071 +:043359000000000070 +:04335A00000000006F +:04335B00000000006E +:04335C00000000006D +:04335D00000000006C +:04335E00000000006B +:04335F00000000006A +:043360000000000069 +:043361000000000068 +:043362000000000067 +:043363000000000066 +:043364000000000065 +:043365000000000064 +:043366000000000063 +:043367000000000062 +:043368000000000061 +:043369000000000060 +:04336A00000000005F +:04336B00000000005E +:04336C00000000005D +:04336D00000000005C +:04336E00000000005B +:04336F00000000005A +:043370000000000059 +:043371000000000058 +:043372000000000057 +:043373000000000056 +:043374000000000055 +:043375000000000054 +:043376000000000053 +:043377000000000052 +:043378000000000051 +:043379000000000050 +:04337A00000000004F +:04337B00000000004E +:04337C00000000004D +:04337D00000000004C +:04337E00000000004B +:04337F00000000004A +:043380000000000049 +:043381000000000048 +:043382000000000047 +:043383000000000046 +:043384000000000045 +:043385000000000044 +:043386000000000043 +:043387000000000042 +:043388000000000041 +:043389000000000040 +:04338A00000000003F +:04338B00000000003E +:04338C00000000003D +:04338D00000000003C +:04338E00000000003B +:04338F00000000003A +:043390000000000039 +:043391000000000038 +:043392000000000037 +:043393000000000036 +:043394000000000035 +:043395000000000034 +:043396000000000033 +:043397000000000032 +:043398000000000031 +:043399000000000030 +:04339A00000000002F +:04339B00000000002E +:04339C00000000002D +:04339D00000000002C +:04339E00000000002B +:04339F00000000002A +:0433A0000000000029 +:0433A1000000000028 +:0433A2000000000027 +:0433A3000000000026 +:0433A4000000000025 +:0433A5000000000024 +:0433A6000000000023 +:0433A7000000000022 +:0433A8000000000021 +:0433A9000000000020 +:0433AA00000000001F +:0433AB00000000001E +:0433AC00000000001D +:0433AD00000000001C +:0433AE00000000001B +:0433AF00000000001A +:0433B0000000000019 +:0433B1000000000018 +:0433B2000000000017 +:0433B3000000000016 +:0433B4000000000015 +:0433B5000000000014 +:0433B6000000000013 +:0433B7000000000012 +:0433B8000000000011 +:0433B9000000000010 +:0433BA00000000000F +:0433BB00000000000E +:0433BC00000000000D +:0433BD00000000000C +:0433BE00000000000B +:0433BF00000000000A +:0433C0000000000009 +:0433C1000000000008 +:0433C2000000000007 +:0433C3000000000006 +:0433C4000000000005 +:0433C5000000000004 +:0433C6000000000003 +:0433C7000000000002 +:0433C8000000000001 +:0433C9000000000000 +:0433CA0000000000FF +:0433CB0000000000FE +:0433CC0000000000FD +:0433CD0000000000FC +:0433CE0000000000FB +:0433CF0000000000FA +:0433D00000000000F9 +:0433D10000000000F8 +:0433D20000000000F7 +:0433D30000000000F6 +:0433D40000000000F5 +:0433D50000000000F4 +:0433D60000000000F3 +:0433D70000000000F2 +:0433D80000000000F1 +:0433D90000000000F0 +:0433DA0000000000EF +:0433DB0000000000EE +:0433DC0000000000ED +:0433DD0000000000EC +:0433DE0000000000EB +:0433DF0000000000EA +:0433E00000000000E9 +:0433E10000000000E8 +:0433E20000000000E7 +:0433E30000000000E6 +:0433E40000000000E5 +:0433E50000000000E4 +:0433E60000000000E3 +:0433E70000000000E2 +:0433E80000000000E1 +:0433E90000000000E0 +:0433EA0000000000DF +:0433EB0000000000DE +:0433EC0000000000DD +:0433ED0000000000DC +:0433EE0000000000DB +:0433EF0000000000DA +:0433F00000000000D9 +:0433F10000000000D8 +:0433F20000000000D7 +:0433F30000000000D6 +:0433F40000000000D5 +:0433F50000000000D4 +:0433F60000000000D3 +:0433F70000000000D2 +:0433F80000000000D1 +:0433F90000000000D0 +:0433FA0000000000CF +:0433FB0000000000CE +:0433FC0000000000CD +:0433FD0000000000CC +:0433FE0000000000CB +:0433FF0000000000CA +:0434000000000000C8 +:0434010000000000C7 +:0434020000000000C6 +:0434030000000000C5 +:0434040000000000C4 +:0434050000000000C3 +:0434060000000000C2 +:0434070000000000C1 +:0434080000000000C0 +:0434090000000000BF +:04340A0000000000BE +:04340B0000000000BD +:04340C0000000000BC +:04340D0000000000BB +:04340E0000000000BA +:04340F0000000000B9 +:0434100000000000B8 +:0434110000000000B7 +:0434120000000000B6 +:0434130000000000B5 +:0434140000000000B4 +:0434150000000000B3 +:0434160000000000B2 +:0434170000000000B1 +:0434180000000000B0 +:0434190000000000AF +:04341A0000000000AE +:04341B0000000000AD +:04341C0000000000AC +:04341D0000000000AB +:04341E0000000000AA +:04341F0000000000A9 +:0434200000000000A8 +:0434210000000000A7 +:0434220000000000A6 +:0434230000000000A5 +:0434240000000000A4 +:0434250000000000A3 +:0434260000000000A2 +:0434270000000000A1 +:0434280000000000A0 +:04342900000000009F +:04342A00000000009E +:04342B00000000009D +:04342C00000000009C +:04342D00000000009B +:04342E00000000009A +:04342F000000000099 +:043430000000000098 +:043431000000000097 +:043432000000000096 +:043433000000000095 +:043434000000000094 +:043435000000000093 +:043436000000000092 +:043437000000000091 +:043438000000000090 +:04343900000000008F +:04343A00000000008E +:04343B00000000008D +:04343C00000000008C +:04343D00000000008B +:04343E00000000008A +:04343F000000000089 +:043440000000000088 +:043441000000000087 +:043442000000000086 +:043443000000000085 +:043444000000000084 +:043445000000000083 +:043446000000000082 +:043447000000000081 +:043448000000000080 +:04344900000000007F +:04344A00000000007E +:04344B00000000007D +:04344C00000000007C +:04344D00000000007B +:04344E00000000007A +:04344F000000000079 +:043450000000000078 +:043451000000000077 +:043452000000000076 +:043453000000000075 +:043454000000000074 +:043455000000000073 +:043456000000000072 +:043457000000000071 +:043458000000000070 +:04345900000000006F +:04345A00000000006E +:04345B00000000006D +:04345C00000000006C +:04345D00000000006B +:04345E00000000006A +:04345F000000000069 +:043460000000000068 +:043461000000000067 +:043462000000000066 +:043463000000000065 +:043464000000000064 +:043465000000000063 +:043466000000000062 +:043467000000000061 +:043468000000000060 +:04346900000000005F +:04346A00000000005E +:04346B00000000005D +:04346C00000000005C +:04346D00000000005B +:04346E00000000005A +:04346F000000000059 +:043470000000000058 +:043471000000000057 +:043472000000000056 +:043473000000000055 +:043474000000000054 +:043475000000000053 +:043476000000000052 +:043477000000000051 +:043478000000000050 +:04347900000000004F +:04347A00000000004E +:04347B00000000004D +:04347C00000000004C +:04347D00000000004B +:04347E00000000004A +:04347F000000000049 +:043480000000000048 +:043481000000000047 +:043482000000000046 +:043483000000000045 +:043484000000000044 +:043485000000000043 +:043486000000000042 +:043487000000000041 +:043488000000000040 +:04348900000000003F +:04348A00000000003E +:04348B00000000003D +:04348C00000000003C +:04348D00000000003B +:04348E00000000003A +:04348F000000000039 +:043490000000000038 +:043491000000000037 +:043492000000000036 +:043493000000000035 +:043494000000000034 +:043495000000000033 +:043496000000000032 +:043497000000000031 +:043498000000000030 +:04349900000000002F +:04349A00000000002E +:04349B00000000002D +:04349C00000000002C +:04349D00000000002B +:04349E00000000002A +:04349F000000000029 +:0434A0000000000028 +:0434A1000000000027 +:0434A2000000000026 +:0434A3000000000025 +:0434A4000000000024 +:0434A5000000000023 +:0434A6000000000022 +:0434A7000000000021 +:0434A8000000000020 +:0434A900000000001F +:0434AA00000000001E +:0434AB00000000001D +:0434AC00000000001C +:0434AD00000000001B +:0434AE00000000001A +:0434AF000000000019 +:0434B0000000000018 +:0434B1000000000017 +:0434B2000000000016 +:0434B3000000000015 +:0434B4000000000014 +:0434B5000000000013 +:0434B6000000000012 +:0434B7000000000011 +:0434B8000000000010 +:0434B900000000000F +:0434BA00000000000E +:0434BB00000000000D +:0434BC00000000000C +:0434BD00000000000B +:0434BE00000000000A +:0434BF000000000009 +:0434C0000000000008 +:0434C1000000000007 +:0434C2000000000006 +:0434C3000000000005 +:0434C4000000000004 +:0434C5000000000003 +:0434C6000000000002 +:0434C7000000000001 +:0434C8000000000000 +:0434C90000000000FF +:0434CA0000000000FE +:0434CB0000000000FD +:0434CC0000000000FC +:0434CD0000000000FB +:0434CE0000000000FA +:0434CF0000000000F9 +:0434D00000000000F8 +:0434D10000000000F7 +:0434D20000000000F6 +:0434D30000000000F5 +:0434D40000000000F4 +:0434D50000000000F3 +:0434D60000000000F2 +:0434D70000000000F1 +:0434D80000000000F0 +:0434D90000000000EF +:0434DA0000000000EE +:0434DB0000000000ED +:0434DC0000000000EC +:0434DD0000000000EB +:0434DE0000000000EA +:0434DF0000000000E9 +:0434E00000000000E8 +:0434E10000000000E7 +:0434E20000000000E6 +:0434E30000000000E5 +:0434E40000000000E4 +:0434E50000000000E3 +:0434E60000000000E2 +:0434E70000000000E1 +:0434E80000000000E0 +:0434E90000000000DF +:0434EA0000000000DE +:0434EB0000000000DD +:0434EC0000000000DC +:0434ED0000000000DB +:0434EE0000000000DA +:0434EF0000000000D9 +:0434F00000000000D8 +:0434F10000000000D7 +:0434F20000000000D6 +:0434F30000000000D5 +:0434F40000000000D4 +:0434F50000000000D3 +:0434F60000000000D2 +:0434F70000000000D1 +:0434F80000000000D0 +:0434F90000000000CF +:0434FA0000000000CE +:0434FB0000000000CD +:0434FC0000000000CC +:0434FD0000000000CB +:0434FE0000000000CA +:0434FF0000000000C9 +:0435000000000000C7 +:0435010000000000C6 +:0435020000000000C5 +:0435030000000000C4 +:0435040000000000C3 +:0435050000000000C2 +:0435060000000000C1 +:0435070000000000C0 +:0435080000000000BF +:0435090000000000BE +:04350A0000000000BD +:04350B0000000000BC +:04350C0000000000BB +:04350D0000000000BA +:04350E0000000000B9 +:04350F0000000000B8 +:0435100000000000B7 +:0435110000000000B6 +:0435120000000000B5 +:0435130000000000B4 +:0435140000000000B3 +:0435150000000000B2 +:0435160000000000B1 +:0435170000000000B0 +:0435180000000000AF +:0435190000000000AE +:04351A0000000000AD +:04351B0000000000AC +:04351C0000000000AB +:04351D0000000000AA +:04351E0000000000A9 +:04351F0000000000A8 +:0435200000000000A7 +:0435210000000000A6 +:0435220000000000A5 +:0435230000000000A4 +:0435240000000000A3 +:0435250000000000A2 +:0435260000000000A1 +:0435270000000000A0 +:04352800000000009F +:04352900000000009E +:04352A00000000009D +:04352B00000000009C +:04352C00000000009B +:04352D00000000009A +:04352E000000000099 +:04352F000000000098 +:043530000000000097 +:043531000000000096 +:043532000000000095 +:043533000000000094 +:043534000000000093 +:043535000000000092 +:043536000000000091 +:043537000000000090 +:04353800000000008F +:04353900000000008E +:04353A00000000008D +:04353B00000000008C +:04353C00000000008B +:04353D00000000008A +:04353E000000000089 +:04353F000000000088 +:043540000000000087 +:043541000000000086 +:043542000000000085 +:043543000000000084 +:043544000000000083 +:043545000000000082 +:043546000000000081 +:043547000000000080 +:04354800000000007F +:04354900000000007E +:04354A00000000007D +:04354B00000000007C +:04354C00000000007B +:04354D00000000007A +:04354E000000000079 +:04354F000000000078 +:043550000000000077 +:043551000000000076 +:043552000000000075 +:043553000000000074 +:043554000000000073 +:043555000000000072 +:043556000000000071 +:043557000000000070 +:04355800000000006F +:04355900000000006E +:04355A00000000006D +:04355B00000000006C +:04355C00000000006B +:04355D00000000006A +:04355E000000000069 +:04355F000000000068 +:043560000000000067 +:043561000000000066 +:043562000000000065 +:043563000000000064 +:043564000000000063 +:043565000000000062 +:043566000000000061 +:043567000000000060 +:04356800000000005F +:04356900000000005E +:04356A00000000005D +:04356B00000000005C +:04356C00000000005B +:04356D00000000005A +:04356E000000000059 +:04356F000000000058 +:043570000000000057 +:043571000000000056 +:043572000000000055 +:043573000000000054 +:043574000000000053 +:043575000000000052 +:043576000000000051 +:043577000000000050 +:04357800000000004F +:04357900000000004E +:04357A00000000004D +:04357B00000000004C +:04357C00000000004B +:04357D00000000004A +:04357E000000000049 +:04357F000000000048 +:043580000000000047 +:043581000000000046 +:043582000000000045 +:043583000000000044 +:043584000000000043 +:043585000000000042 +:043586000000000041 +:043587000000000040 +:04358800000000003F +:04358900000000003E +:04358A00000000003D +:04358B00000000003C +:04358C00000000003B +:04358D00000000003A +:04358E000000000039 +:04358F000000000038 +:043590000000000037 +:043591000000000036 +:043592000000000035 +:043593000000000034 +:043594000000000033 +:043595000000000032 +:043596000000000031 +:043597000000000030 +:04359800000000002F +:04359900000000002E +:04359A00000000002D +:04359B00000000002C +:04359C00000000002B +:04359D00000000002A +:04359E000000000029 +:04359F000000000028 +:0435A0000000000027 +:0435A1000000000026 +:0435A2000000000025 +:0435A3000000000024 +:0435A4000000000023 +:0435A5000000000022 +:0435A6000000000021 +:0435A7000000000020 +:0435A800000000001F +:0435A900000000001E +:0435AA00000000001D +:0435AB00000000001C +:0435AC00000000001B +:0435AD00000000001A +:0435AE000000000019 +:0435AF000000000018 +:0435B0000000000017 +:0435B1000000000016 +:0435B2000000000015 +:0435B3000000000014 +:0435B4000000000013 +:0435B5000000000012 +:0435B6000000000011 +:0435B7000000000010 +:0435B800000000000F +:0435B900000000000E +:0435BA00000000000D +:0435BB00000000000C +:0435BC00000000000B +:0435BD00000000000A +:0435BE000000000009 +:0435BF000000000008 +:0435C0000000000007 +:0435C1000000000006 +:0435C2000000000005 +:0435C3000000000004 +:0435C4000000000003 +:0435C5000000000002 +:0435C6000000000001 +:0435C7000000000000 +:0435C80000000000FF +:0435C90000000000FE +:0435CA0000000000FD +:0435CB0000000000FC +:0435CC0000000000FB +:0435CD0000000000FA +:0435CE0000000000F9 +:0435CF0000000000F8 +:0435D00000000000F7 +:0435D10000000000F6 +:0435D20000000000F5 +:0435D30000000000F4 +:0435D40000000000F3 +:0435D50000000000F2 +:0435D60000000000F1 +:0435D70000000000F0 +:0435D80000000000EF +:0435D90000000000EE +:0435DA0000000000ED +:0435DB0000000000EC +:0435DC0000000000EB +:0435DD0000000000EA +:0435DE0000000000E9 +:0435DF0000000000E8 +:0435E00000000000E7 +:0435E10000000000E6 +:0435E20000000000E5 +:0435E30000000000E4 +:0435E40000000000E3 +:0435E50000000000E2 +:0435E60000000000E1 +:0435E70000000000E0 +:0435E80000000000DF +:0435E90000000000DE +:0435EA0000000000DD +:0435EB0000000000DC +:0435EC0000000000DB +:0435ED0000000000DA +:0435EE0000000000D9 +:0435EF0000000000D8 +:0435F00000000000D7 +:0435F10000000000D6 +:0435F20000000000D5 +:0435F30000000000D4 +:0435F40000000000D3 +:0435F50000000000D2 +:0435F60000000000D1 +:0435F70000000000D0 +:0435F80000000000CF +:0435F90000000000CE +:0435FA0000000000CD +:0435FB0000000000CC +:0435FC0000000000CB +:0435FD0000000000CA +:0435FE0000000000C9 +:0435FF0000000000C8 +:0436000000000000C6 +:0436010000000000C5 +:0436020000000000C4 +:0436030000000000C3 +:0436040000000000C2 +:0436050000000000C1 +:0436060000000000C0 +:0436070000000000BF +:0436080000000000BE +:0436090000000000BD +:04360A0000000000BC +:04360B0000000000BB +:04360C0000000000BA +:04360D0000000000B9 +:04360E0000000000B8 +:04360F0000000000B7 +:0436100000000000B6 +:0436110000000000B5 +:0436120000000000B4 +:0436130000000000B3 +:0436140000000000B2 +:0436150000000000B1 +:0436160000000000B0 +:0436170000000000AF +:0436180000000000AE +:0436190000000000AD +:04361A0000000000AC +:04361B0000000000AB +:04361C0000000000AA +:04361D0000000000A9 +:04361E0000000000A8 +:04361F0000000000A7 +:0436200000000000A6 +:0436210000000000A5 +:0436220000000000A4 +:0436230000000000A3 +:0436240000000000A2 +:0436250000000000A1 +:0436260000000000A0 +:04362700000000009F +:04362800000000009E +:04362900000000009D +:04362A00000000009C +:04362B00000000009B +:04362C00000000009A +:04362D000000000099 +:04362E000000000098 +:04362F000000000097 +:043630000000000096 +:043631000000000095 +:043632000000000094 +:043633000000000093 +:043634000000000092 +:043635000000000091 +:043636000000000090 +:04363700000000008F +:04363800000000008E +:04363900000000008D +:04363A00000000008C +:04363B00000000008B +:04363C00000000008A +:04363D000000000089 +:04363E000000000088 +:04363F000000000087 +:043640000000000086 +:043641000000000085 +:043642000000000084 +:043643000000000083 +:043644000000000082 +:043645000000000081 +:043646000000000080 +:04364700000000007F +:04364800000000007E +:04364900000000007D +:04364A00000000007C +:04364B00000000007B +:04364C00000000007A +:04364D000000000079 +:04364E000000000078 +:04364F000000000077 +:043650000000000076 +:043651000000000075 +:043652000000000074 +:043653000000000073 +:043654000000000072 +:043655000000000071 +:043656000000000070 +:04365700000000006F +:04365800000000006E +:04365900000000006D +:04365A00000000006C +:04365B00000000006B +:04365C00000000006A +:04365D000000000069 +:04365E000000000068 +:04365F000000000067 +:043660000000000066 +:043661000000000065 +:043662000000000064 +:043663000000000063 +:043664000000000062 +:043665000000000061 +:043666000000000060 +:04366700000000005F +:04366800000000005E +:04366900000000005D +:04366A00000000005C +:04366B00000000005B +:04366C00000000005A +:04366D000000000059 +:04366E000000000058 +:04366F000000000057 +:043670000000000056 +:043671000000000055 +:043672000000000054 +:043673000000000053 +:043674000000000052 +:043675000000000051 +:043676000000000050 +:04367700000000004F +:04367800000000004E +:04367900000000004D +:04367A00000000004C +:04367B00000000004B +:04367C00000000004A +:04367D000000000049 +:04367E000000000048 +:04367F000000000047 +:043680000000000046 +:043681000000000045 +:043682000000000044 +:043683000000000043 +:043684000000000042 +:043685000000000041 +:043686000000000040 +:04368700000000003F +:04368800000000003E +:04368900000000003D +:04368A00000000003C +:04368B00000000003B +:04368C00000000003A +:04368D000000000039 +:04368E000000000038 +:04368F000000000037 +:043690000000000036 +:043691000000000035 +:043692000000000034 +:043693000000000033 +:043694000000000032 +:043695000000000031 +:043696000000000030 +:04369700000000002F +:04369800000000002E +:04369900000000002D +:04369A00000000002C +:04369B00000000002B +:04369C00000000002A +:04369D000000000029 +:04369E000000000028 +:04369F000000000027 +:0436A0000000000026 +:0436A1000000000025 +:0436A2000000000024 +:0436A3000000000023 +:0436A4000000000022 +:0436A5000000000021 +:0436A6000000000020 +:0436A700000000001F +:0436A800000000001E +:0436A900000000001D +:0436AA00000000001C +:0436AB00000000001B +:0436AC00000000001A +:0436AD000000000019 +:0436AE000000000018 +:0436AF000000000017 +:0436B0000000000016 +:0436B1000000000015 +:0436B2000000000014 +:0436B3000000000013 +:0436B4000000000012 +:0436B5000000000011 +:0436B6000000000010 +:0436B700000000000F +:0436B800000000000E +:0436B900000000000D +:0436BA00000000000C +:0436BB00000000000B +:0436BC00000000000A +:0436BD000000000009 +:0436BE000000000008 +:0436BF000000000007 +:0436C0000000000006 +:0436C1000000000005 +:0436C2000000000004 +:0436C3000000000003 +:0436C4000000000002 +:0436C5000000000001 +:0436C6000000000000 +:0436C70000000000FF +:0436C80000000000FE +:0436C90000000000FD +:0436CA0000000000FC +:0436CB0000000000FB +:0436CC0000000000FA +:0436CD0000000000F9 +:0436CE0000000000F8 +:0436CF0000000000F7 +:0436D00000000000F6 +:0436D10000000000F5 +:0436D20000000000F4 +:0436D30000000000F3 +:0436D40000000000F2 +:0436D50000000000F1 +:0436D60000000000F0 +:0436D70000000000EF +:0436D80000000000EE +:0436D90000000000ED +:0436DA0000000000EC +:0436DB0000000000EB +:0436DC0000000000EA +:0436DD0000000000E9 +:0436DE0000000000E8 +:0436DF0000000000E7 +:0436E00000000000E6 +:0436E10000000000E5 +:0436E20000000000E4 +:0436E30000000000E3 +:0436E40000000000E2 +:0436E50000000000E1 +:0436E60000000000E0 +:0436E70000000000DF +:0436E80000000000DE +:0436E90000000000DD +:0436EA0000000000DC +:0436EB0000000000DB +:0436EC0000000000DA +:0436ED0000000000D9 +:0436EE0000000000D8 +:0436EF0000000000D7 +:0436F00000000000D6 +:0436F10000000000D5 +:0436F20000000000D4 +:0436F30000000000D3 +:0436F40000000000D2 +:0436F50000000000D1 +:0436F60000000000D0 +:0436F70000000000CF +:0436F80000000000CE +:0436F90000000000CD +:0436FA0000000000CC +:0436FB0000000000CB +:0436FC0000000000CA +:0436FD0000000000C9 +:0436FE0000000000C8 +:0436FF0000000000C7 +:0437000000000000C5 +:0437010000000000C4 +:0437020000000000C3 +:0437030000000000C2 +:0437040000000000C1 +:0437050000000000C0 +:0437060000000000BF +:0437070000000000BE +:0437080000000000BD +:0437090000000000BC +:04370A0000000000BB +:04370B0000000000BA +:04370C0000000000B9 +:04370D0000000000B8 +:04370E0000000000B7 +:04370F0000000000B6 +:0437100000000000B5 +:0437110000000000B4 +:0437120000000000B3 +:0437130000000000B2 +:0437140000000000B1 +:0437150000000000B0 +:0437160000000000AF +:0437170000000000AE +:0437180000000000AD +:0437190000000000AC +:04371A0000000000AB +:04371B0000000000AA +:04371C0000000000A9 +:04371D0000000000A8 +:04371E0000000000A7 +:04371F0000000000A6 +:0437200000000000A5 +:0437210000000000A4 +:0437220000000000A3 +:0437230000000000A2 +:0437240000000000A1 +:0437250000000000A0 +:04372600000000009F +:04372700000000009E +:04372800000000009D +:04372900000000009C +:04372A00000000009B +:04372B00000000009A +:04372C000000000099 +:04372D000000000098 +:04372E000000000097 +:04372F000000000096 +:043730000000000095 +:043731000000000094 +:043732000000000093 +:043733000000000092 +:043734000000000091 +:043735000000000090 +:04373600000000008F +:04373700000000008E +:04373800000000008D +:04373900000000008C +:04373A00000000008B +:04373B00000000008A +:04373C000000000089 +:04373D000000000088 +:04373E000000000087 +:04373F000000000086 +:043740000000000085 +:043741000000000084 +:043742000000000083 +:043743000000000082 +:043744000000000081 +:043745000000000080 +:04374600000000007F +:04374700000000007E +:04374800000000007D +:04374900000000007C +:04374A00000000007B +:04374B00000000007A +:04374C000000000079 +:04374D000000000078 +:04374E000000000077 +:04374F000000000076 +:043750000000000075 +:043751000000000074 +:043752000000000073 +:043753000000000072 +:043754000000000071 +:043755000000000070 +:04375600000000006F +:04375700000000006E +:04375800000000006D +:04375900000000006C +:04375A00000000006B +:04375B00000000006A +:04375C000000000069 +:04375D000000000068 +:04375E000000000067 +:04375F000000000066 +:043760000000000065 +:043761000000000064 +:043762000000000063 +:043763000000000062 +:043764000000000061 +:043765000000000060 +:04376600000000005F +:04376700000000005E +:04376800000000005D +:04376900000000005C +:04376A00000000005B +:04376B00000000005A +:04376C000000000059 +:04376D000000000058 +:04376E000000000057 +:04376F000000000056 +:043770000000000055 +:043771000000000054 +:043772000000000053 +:043773000000000052 +:043774000000000051 +:043775000000000050 +:04377600000000004F +:04377700000000004E +:04377800000000004D +:04377900000000004C +:04377A00000000004B +:04377B00000000004A +:04377C000000000049 +:04377D000000000048 +:04377E000000000047 +:04377F000000000046 +:043780000000000045 +:043781000000000044 +:043782000000000043 +:043783000000000042 +:043784000000000041 +:043785000000000040 +:04378600000000003F +:04378700000000003E +:04378800000000003D +:04378900000000003C +:04378A00000000003B +:04378B00000000003A +:04378C000000000039 +:04378D000000000038 +:04378E000000000037 +:04378F000000000036 +:043790000000000035 +:043791000000000034 +:043792000000000033 +:043793000000000032 +:043794000000000031 +:043795000000000030 +:04379600000000002F +:04379700000000002E +:04379800000000002D +:04379900000000002C +:04379A00000000002B +:04379B00000000002A +:04379C000000000029 +:04379D000000000028 +:04379E000000000027 +:04379F000000000026 +:0437A0000000000025 +:0437A1000000000024 +:0437A2000000000023 +:0437A3000000000022 +:0437A4000000000021 +:0437A5000000000020 +:0437A600000000001F +:0437A700000000001E +:0437A800000000001D +:0437A900000000001C +:0437AA00000000001B +:0437AB00000000001A +:0437AC000000000019 +:0437AD000000000018 +:0437AE000000000017 +:0437AF000000000016 +:0437B0000000000015 +:0437B1000000000014 +:0437B2000000000013 +:0437B3000000000012 +:0437B4000000000011 +:0437B5000000000010 +:0437B600000000000F +:0437B700000000000E +:0437B800000000000D +:0437B900000000000C +:0437BA00000000000B +:0437BB00000000000A +:0437BC000000000009 +:0437BD000000000008 +:0437BE000000000007 +:0437BF000000000006 +:0437C0000000000005 +:0437C1000000000004 +:0437C2000000000003 +:0437C3000000000002 +:0437C4000000000001 +:0437C5000000000000 +:0437C60000000000FF +:0437C70000000000FE +:0437C80000000000FD +:0437C90000000000FC +:0437CA0000000000FB +:0437CB0000000000FA +:0437CC0000000000F9 +:0437CD0000000000F8 +:0437CE0000000000F7 +:0437CF0000000000F6 +:0437D00000000000F5 +:0437D10000000000F4 +:0437D20000000000F3 +:0437D30000000000F2 +:0437D40000000000F1 +:0437D50000000000F0 +:0437D60000000000EF +:0437D70000000000EE +:0437D80000000000ED +:0437D90000000000EC +:0437DA0000000000EB +:0437DB0000000000EA +:0437DC0000000000E9 +:0437DD0000000000E8 +:0437DE0000000000E7 +:0437DF0000000000E6 +:0437E00000000000E5 +:0437E10000000000E4 +:0437E20000000000E3 +:0437E30000000000E2 +:0437E40000000000E1 +:0437E50000000000E0 +:0437E60000000000DF +:0437E70000000000DE +:0437E80000000000DD +:0437E90000000000DC +:0437EA0000000000DB +:0437EB0000000000DA +:0437EC0000000000D9 +:0437ED0000000000D8 +:0437EE0000000000D7 +:0437EF0000000000D6 +:0437F00000000000D5 +:0437F10000000000D4 +:0437F20000000000D3 +:0437F30000000000D2 +:0437F40000000000D1 +:0437F50000000000D0 +:0437F60000000000CF +:0437F70000000000CE +:0437F80000000000CD +:0437F90000000000CC +:0437FA0000000000CB +:0437FB0000000000CA +:0437FC0000000000C9 +:0437FD0000000000C8 +:0437FE0000000000C7 +:0437FF0000000000C6 +:0438000000000000C4 +:0438010000000000C3 +:0438020000000000C2 +:0438030000000000C1 +:0438040000000000C0 +:0438050000000000BF +:0438060000000000BE +:0438070000000000BD +:0438080000000000BC +:0438090000000000BB +:04380A0000000000BA +:04380B0000000000B9 +:04380C0000000000B8 +:04380D0000000000B7 +:04380E0000000000B6 +:04380F0000000000B5 +:0438100000000000B4 +:0438110000000000B3 +:0438120000000000B2 +:0438130000000000B1 +:0438140000000000B0 +:0438150000000000AF +:0438160000000000AE +:0438170000000000AD +:0438180000000000AC +:0438190000000000AB +:04381A0000000000AA +:04381B0000000000A9 +:04381C0000000000A8 +:04381D0000000000A7 +:04381E0000000000A6 +:04381F0000000000A5 +:0438200000000000A4 +:0438210000000000A3 +:0438220000000000A2 +:0438230000000000A1 +:0438240000000000A0 +:04382500000000009F +:04382600000000009E +:04382700000000009D +:04382800000000009C +:04382900000000009B +:04382A00000000009A +:04382B000000000099 +:04382C000000000098 +:04382D000000000097 +:04382E000000000096 +:04382F000000000095 +:043830000000000094 +:043831000000000093 +:043832000000000092 +:043833000000000091 +:043834000000000090 +:04383500000000008F +:04383600000000008E +:04383700000000008D +:04383800000000008C +:04383900000000008B +:04383A00000000008A +:04383B000000000089 +:04383C000000000088 +:04383D000000000087 +:04383E000000000086 +:04383F000000000085 +:043840000000000084 +:043841000000000083 +:043842000000000082 +:043843000000000081 +:043844000000000080 +:04384500000000007F +:04384600000000007E +:04384700000000007D +:04384800000000007C +:04384900000000007B +:04384A00000000007A +:04384B000000000079 +:04384C000000000078 +:04384D000000000077 +:04384E000000000076 +:04384F000000000075 +:043850000000000074 +:043851000000000073 +:043852000000000072 +:043853000000000071 +:043854000000000070 +:04385500000000006F +:04385600000000006E +:04385700000000006D +:04385800000000006C +:04385900000000006B +:04385A00000000006A +:04385B000000000069 +:04385C000000000068 +:04385D000000000067 +:04385E000000000066 +:04385F000000000065 +:043860000000000064 +:043861000000000063 +:043862000000000062 +:043863000000000061 +:043864000000000060 +:04386500000000005F +:04386600000000005E +:04386700000000005D +:04386800000000005C +:04386900000000005B +:04386A00000000005A +:04386B000000000059 +:04386C000000000058 +:04386D000000000057 +:04386E000000000056 +:04386F000000000055 +:043870000000000054 +:043871000000000053 +:043872000000000052 +:043873000000000051 +:043874000000000050 +:04387500000000004F +:04387600000000004E +:04387700000000004D +:04387800000000004C +:04387900000000004B +:04387A00000000004A +:04387B000000000049 +:04387C000000000048 +:04387D000000000047 +:04387E000000000046 +:04387F000000000045 +:043880000000000044 +:043881000000000043 +:043882000000000042 +:043883000000000041 +:043884000000000040 +:04388500000000003F +:04388600000000003E +:04388700000000003D +:04388800000000003C +:04388900000000003B +:04388A00000000003A +:04388B000000000039 +:04388C000000000038 +:04388D000000000037 +:04388E000000000036 +:04388F000000000035 +:043890000000000034 +:043891000000000033 +:043892000000000032 +:043893000000000031 +:043894000000000030 +:04389500000000002F +:04389600000000002E +:04389700000000002D +:04389800000000002C +:04389900000000002B +:04389A00000000002A +:04389B000000000029 +:04389C000000000028 +:04389D000000000027 +:04389E000000000026 +:04389F000000000025 +:0438A0000000000024 +:0438A1000000000023 +:0438A2000000000022 +:0438A3000000000021 +:0438A4000000000020 +:0438A500000000001F +:0438A600000000001E +:0438A700000000001D +:0438A800000000001C +:0438A900000000001B +:0438AA00000000001A +:0438AB000000000019 +:0438AC000000000018 +:0438AD000000000017 +:0438AE000000000016 +:0438AF000000000015 +:0438B0000000000014 +:0438B1000000000013 +:0438B2000000000012 +:0438B3000000000011 +:0438B4000000000010 +:0438B500000000000F +:0438B600000000000E +:0438B700000000000D +:0438B800000000000C +:0438B900000000000B +:0438BA00000000000A +:0438BB000000000009 +:0438BC000000000008 +:0438BD000000000007 +:0438BE000000000006 +:0438BF000000000005 +:0438C0000000000004 +:0438C1000000000003 +:0438C2000000000002 +:0438C3000000000001 +:0438C4000000000000 +:0438C50000000000FF +:0438C60000000000FE +:0438C70000000000FD +:0438C80000000000FC +:0438C90000000000FB +:0438CA0000000000FA +:0438CB0000000000F9 +:0438CC0000000000F8 +:0438CD0000000000F7 +:0438CE0000000000F6 +:0438CF0000000000F5 +:0438D00000000000F4 +:0438D10000000000F3 +:0438D20000000000F2 +:0438D30000000000F1 +:0438D40000000000F0 +:0438D50000000000EF +:0438D60000000000EE +:0438D70000000000ED +:0438D80000000000EC +:0438D90000000000EB +:0438DA0000000000EA +:0438DB0000000000E9 +:0438DC0000000000E8 +:0438DD0000000000E7 +:0438DE0000000000E6 +:0438DF0000000000E5 +:0438E00000000000E4 +:0438E10000000000E3 +:0438E20000000000E2 +:0438E30000000000E1 +:0438E40000000000E0 +:0438E50000000000DF +:0438E60000000000DE +:0438E70000000000DD +:0438E80000000000DC +:0438E90000000000DB +:0438EA0000000000DA +:0438EB0000000000D9 +:0438EC0000000000D8 +:0438ED0000000000D7 +:0438EE0000000000D6 +:0438EF0000000000D5 +:0438F00000000000D4 +:0438F10000000000D3 +:0438F20000000000D2 +:0438F30000000000D1 +:0438F40000000000D0 +:0438F50000000000CF +:0438F60000000000CE +:0438F70000000000CD +:0438F80000000000CC +:0438F90000000000CB +:0438FA0000000000CA +:0438FB0000000000C9 +:0438FC0000000000C8 +:0438FD0000000000C7 +:0438FE0000000000C6 +:0438FF0000000000C5 +:0439000000000000C3 +:0439010000000000C2 +:0439020000000000C1 +:0439030000000000C0 +:0439040000000000BF +:0439050000000000BE +:0439060000000000BD +:0439070000000000BC +:0439080000000000BB +:0439090000000000BA +:04390A0000000000B9 +:04390B0000000000B8 +:04390C0000000000B7 +:04390D0000000000B6 +:04390E0000000000B5 +:04390F0000000000B4 +:0439100000000000B3 +:0439110000000000B2 +:0439120000000000B1 +:0439130000000000B0 +:0439140000000000AF +:0439150000000000AE +:0439160000000000AD +:0439170000000000AC +:0439180000000000AB +:0439190000000000AA +:04391A0000000000A9 +:04391B0000000000A8 +:04391C0000000000A7 +:04391D0000000000A6 +:04391E0000000000A5 +:04391F0000000000A4 +:0439200000000000A3 +:0439210000000000A2 +:0439220000000000A1 +:0439230000000000A0 +:04392400000000009F +:04392500000000009E +:04392600000000009D +:04392700000000009C +:04392800000000009B +:04392900000000009A +:04392A000000000099 +:04392B000000000098 +:04392C000000000097 +:04392D000000000096 +:04392E000000000095 +:04392F000000000094 +:043930000000000093 +:043931000000000092 +:043932000000000091 +:043933000000000090 +:04393400000000008F +:04393500000000008E +:04393600000000008D +:04393700000000008C +:04393800000000008B +:04393900000000008A +:04393A000000000089 +:04393B000000000088 +:04393C000000000087 +:04393D000000000086 +:04393E000000000085 +:04393F000000000084 +:043940000000000083 +:043941000000000082 +:043942000000000081 +:043943000000000080 +:04394400000000007F +:04394500000000007E +:04394600000000007D +:04394700000000007C +:04394800000000007B +:04394900000000007A +:04394A000000000079 +:04394B000000000078 +:04394C000000000077 +:04394D000000000076 +:04394E000000000075 +:04394F000000000074 +:043950000000000073 +:043951000000000072 +:043952000000000071 +:043953000000000070 +:04395400000000006F +:04395500000000006E +:04395600000000006D +:04395700000000006C +:04395800000000006B +:04395900000000006A +:04395A000000000069 +:04395B000000000068 +:04395C000000000067 +:04395D000000000066 +:04395E000000000065 +:04395F000000000064 +:043960000000000063 +:043961000000000062 +:043962000000000061 +:043963000000000060 +:04396400000000005F +:04396500000000005E +:04396600000000005D +:04396700000000005C +:04396800000000005B +:04396900000000005A +:04396A000000000059 +:04396B000000000058 +:04396C000000000057 +:04396D000000000056 +:04396E000000000055 +:04396F000000000054 +:043970000000000053 +:043971000000000052 +:043972000000000051 +:043973000000000050 +:04397400000000004F +:04397500000000004E +:04397600000000004D +:04397700000000004C +:04397800000000004B +:04397900000000004A +:04397A000000000049 +:04397B000000000048 +:04397C000000000047 +:04397D000000000046 +:04397E000000000045 +:04397F000000000044 +:043980000000000043 +:043981000000000042 +:043982000000000041 +:043983000000000040 +:04398400000000003F +:04398500000000003E +:04398600000000003D +:04398700000000003C +:04398800000000003B +:04398900000000003A +:04398A000000000039 +:04398B000000000038 +:04398C000000000037 +:04398D000000000036 +:04398E000000000035 +:04398F000000000034 +:043990000000000033 +:043991000000000032 +:043992000000000031 +:043993000000000030 +:04399400000000002F +:04399500000000002E +:04399600000000002D +:04399700000000002C +:04399800000000002B +:04399900000000002A +:04399A000000000029 +:04399B000000000028 +:04399C000000000027 +:04399D000000000026 +:04399E000000000025 +:04399F000000000024 +:0439A0000000000023 +:0439A1000000000022 +:0439A2000000000021 +:0439A3000000000020 +:0439A400000000001F +:0439A500000000001E +:0439A600000000001D +:0439A700000000001C +:0439A800000000001B +:0439A900000000001A +:0439AA000000000019 +:0439AB000000000018 +:0439AC000000000017 +:0439AD000000000016 +:0439AE000000000015 +:0439AF000000000014 +:0439B0000000000013 +:0439B1000000000012 +:0439B2000000000011 +:0439B3000000000010 +:0439B400000000000F +:0439B500000000000E +:0439B600000000000D +:0439B700000000000C +:0439B800000000000B +:0439B900000000000A +:0439BA000000000009 +:0439BB000000000008 +:0439BC000000000007 +:0439BD000000000006 +:0439BE000000000005 +:0439BF000000000004 +:0439C0000000000003 +:0439C1000000000002 +:0439C2000000000001 +:0439C3000000000000 +:0439C40000000000FF +:0439C50000000000FE +:0439C60000000000FD +:0439C70000000000FC +:0439C80000000000FB +:0439C90000000000FA +:0439CA0000000000F9 +:0439CB0000000000F8 +:0439CC0000000000F7 +:0439CD0000000000F6 +:0439CE0000000000F5 +:0439CF0000000000F4 +:0439D00000000000F3 +:0439D10000000000F2 +:0439D20000000000F1 +:0439D30000000000F0 +:0439D40000000000EF +:0439D50000000000EE +:0439D60000000000ED +:0439D70000000000EC +:0439D80000000000EB +:0439D90000000000EA +:0439DA0000000000E9 +:0439DB0000000000E8 +:0439DC0000000000E7 +:0439DD0000000000E6 +:0439DE0000000000E5 +:0439DF0000000000E4 +:0439E00000000000E3 +:0439E10000000000E2 +:0439E20000000000E1 +:0439E30000000000E0 +:0439E40000000000DF +:0439E50000000000DE +:0439E60000000000DD +:0439E70000000000DC +:0439E80000000000DB +:0439E90000000000DA +:0439EA0000000000D9 +:0439EB0000000000D8 +:0439EC0000000000D7 +:0439ED0000000000D6 +:0439EE0000000000D5 +:0439EF0000000000D4 +:0439F00000000000D3 +:0439F10000000000D2 +:0439F20000000000D1 +:0439F30000000000D0 +:0439F40000000000CF +:0439F50000000000CE +:0439F60000000000CD +:0439F70000000000CC +:0439F80000000000CB +:0439F90000000000CA +:0439FA0000000000C9 +:0439FB0000000000C8 +:0439FC0000000000C7 +:0439FD0000000000C6 +:0439FE0000000000C5 +:0439FF0000000000C4 +:043A000000000000C2 +:043A010000000000C1 +:043A020000000000C0 +:043A030000000000BF +:043A040000000000BE +:043A050000000000BD +:043A060000000000BC +:043A070000000000BB +:043A080000000000BA +:043A090000000000B9 +:043A0A0000000000B8 +:043A0B0000000000B7 +:043A0C0000000000B6 +:043A0D0000000000B5 +:043A0E0000000000B4 +:043A0F0000000000B3 +:043A100000000000B2 +:043A110000000000B1 +:043A120000000000B0 +:043A130000000000AF +:043A140000000000AE +:043A150000000000AD +:043A160000000000AC +:043A170000000000AB +:043A180000000000AA +:043A190000000000A9 +:043A1A0000000000A8 +:043A1B0000000000A7 +:043A1C0000000000A6 +:043A1D0000000000A5 +:043A1E0000000000A4 +:043A1F0000000000A3 +:043A200000000000A2 +:043A210000000000A1 +:043A220000000000A0 +:043A2300000000009F +:043A2400000000009E +:043A2500000000009D +:043A2600000000009C +:043A2700000000009B +:043A2800000000009A +:043A29000000000099 +:043A2A000000000098 +:043A2B000000000097 +:043A2C000000000096 +:043A2D000000000095 +:043A2E000000000094 +:043A2F000000000093 +:043A30000000000092 +:043A31000000000091 +:043A32000000000090 +:043A3300000000008F +:043A3400000000008E +:043A3500000000008D +:043A3600000000008C +:043A3700000000008B +:043A3800000000008A +:043A39000000000089 +:043A3A000000000088 +:043A3B000000000087 +:043A3C000000000086 +:043A3D000000000085 +:043A3E000000000084 +:043A3F000000000083 +:043A40000000000082 +:043A41000000000081 +:043A42000000000080 +:043A4300000000007F +:043A4400000000007E +:043A4500000000007D +:043A4600000000007C +:043A4700000000007B +:043A4800000000007A +:043A49000000000079 +:043A4A000000000078 +:043A4B000000000077 +:043A4C000000000076 +:043A4D000000000075 +:043A4E000000000074 +:043A4F000000000073 +:043A50000000000072 +:043A51000000000071 +:043A52000000000070 +:043A5300000000006F +:043A5400000000006E +:043A5500000000006D +:043A5600000000006C +:043A5700000000006B +:043A5800000000006A +:043A59000000000069 +:043A5A000000000068 +:043A5B000000000067 +:043A5C000000000066 +:043A5D000000000065 +:043A5E000000000064 +:043A5F000000000063 +:043A60000000000062 +:043A61000000000061 +:043A62000000000060 +:043A6300000000005F +:043A6400000000005E +:043A6500000000005D +:043A6600000000005C +:043A6700000000005B +:043A6800000000005A +:043A69000000000059 +:043A6A000000000058 +:043A6B000000000057 +:043A6C000000000056 +:043A6D000000000055 +:043A6E000000000054 +:043A6F000000000053 +:043A70000000000052 +:043A71000000000051 +:043A72000000000050 +:043A7300000000004F +:043A7400000000004E +:043A7500000000004D +:043A7600000000004C +:043A7700000000004B +:043A7800000000004A +:043A79000000000049 +:043A7A000000000048 +:043A7B000000000047 +:043A7C000000000046 +:043A7D000000000045 +:043A7E000000000044 +:043A7F000000000043 +:043A80000000000042 +:043A81000000000041 +:043A82000000000040 +:043A8300000000003F +:043A8400000000003E +:043A8500000000003D +:043A8600000000003C +:043A8700000000003B +:043A8800000000003A +:043A89000000000039 +:043A8A000000000038 +:043A8B000000000037 +:043A8C000000000036 +:043A8D000000000035 +:043A8E000000000034 +:043A8F000000000033 +:043A90000000000032 +:043A91000000000031 +:043A92000000000030 +:043A9300000000002F +:043A9400000000002E +:043A9500000000002D +:043A9600000000002C +:043A9700000000002B +:043A9800000000002A +:043A99000000000029 +:043A9A000000000028 +:043A9B000000000027 +:043A9C000000000026 +:043A9D000000000025 +:043A9E000000000024 +:043A9F000000000023 +:043AA0000000000022 +:043AA1000000000021 +:043AA2000000000020 +:043AA300000000001F +:043AA400000000001E +:043AA500000000001D +:043AA600000000001C +:043AA700000000001B +:043AA800000000001A +:043AA9000000000019 +:043AAA000000000018 +:043AAB000000000017 +:043AAC000000000016 +:043AAD000000000015 +:043AAE000000000014 +:043AAF000000000013 +:043AB0000000000012 +:043AB1000000000011 +:043AB2000000000010 +:043AB300000000000F +:043AB400000000000E +:043AB500000000000D +:043AB600000000000C +:043AB700000000000B +:043AB800000000000A +:043AB9000000000009 +:043ABA000000000008 +:043ABB000000000007 +:043ABC000000000006 +:043ABD000000000005 +:043ABE000000000004 +:043ABF000000000003 +:043AC0000000000002 +:043AC1000000000001 +:043AC2000000000000 +:043AC30000000000FF +:043AC40000000000FE +:043AC50000000000FD +:043AC60000000000FC +:043AC70000000000FB +:043AC80000000000FA +:043AC90000000000F9 +:043ACA0000000000F8 +:043ACB0000000000F7 +:043ACC0000000000F6 +:043ACD0000000000F5 +:043ACE0000000000F4 +:043ACF0000000000F3 +:043AD00000000000F2 +:043AD10000000000F1 +:043AD20000000000F0 +:043AD30000000000EF +:043AD40000000000EE +:043AD50000000000ED +:043AD60000000000EC +:043AD70000000000EB +:043AD80000000000EA +:043AD90000000000E9 +:043ADA0000000000E8 +:043ADB0000000000E7 +:043ADC0000000000E6 +:043ADD0000000000E5 +:043ADE0000000000E4 +:043ADF0000000000E3 +:043AE00000000000E2 +:043AE10000000000E1 +:043AE20000000000E0 +:043AE30000000000DF +:043AE40000000000DE +:043AE50000000000DD +:043AE60000000000DC +:043AE70000000000DB +:043AE80000000000DA +:043AE90000000000D9 +:043AEA0000000000D8 +:043AEB0000000000D7 +:043AEC0000000000D6 +:043AED0000000000D5 +:043AEE0000000000D4 +:043AEF0000000000D3 +:043AF00000000000D2 +:043AF10000000000D1 +:043AF20000000000D0 +:043AF30000000000CF +:043AF40000000000CE +:043AF50000000000CD +:043AF60000000000CC +:043AF70000000000CB +:043AF80000000000CA +:043AF90000000000C9 +:043AFA0000000000C8 +:043AFB0000000000C7 +:043AFC0000000000C6 +:043AFD0000000000C5 +:043AFE0000000000C4 +:043AFF0000000000C3 +:043B000000000000C1 +:043B010000000000C0 +:043B020000000000BF +:043B030000000000BE +:043B040000000000BD +:043B050000000000BC +:043B060000000000BB +:043B070000000000BA +:043B080000000000B9 +:043B090000000000B8 +:043B0A0000000000B7 +:043B0B0000000000B6 +:043B0C0000000000B5 +:043B0D0000000000B4 +:043B0E0000000000B3 +:043B0F0000000000B2 +:043B100000000000B1 +:043B110000000000B0 +:043B120000000000AF +:043B130000000000AE +:043B140000000000AD +:043B150000000000AC +:043B160000000000AB +:043B170000000000AA +:043B180000000000A9 +:043B190000000000A8 +:043B1A0000000000A7 +:043B1B0000000000A6 +:043B1C0000000000A5 +:043B1D0000000000A4 +:043B1E0000000000A3 +:043B1F0000000000A2 +:043B200000000000A1 +:043B210000000000A0 +:043B2200000000009F +:043B2300000000009E +:043B2400000000009D +:043B2500000000009C +:043B2600000000009B +:043B2700000000009A +:043B28000000000099 +:043B29000000000098 +:043B2A000000000097 +:043B2B000000000096 +:043B2C000000000095 +:043B2D000000000094 +:043B2E000000000093 +:043B2F000000000092 +:043B30000000000091 +:043B31000000000090 +:043B3200000000008F +:043B3300000000008E +:043B3400000000008D +:043B3500000000008C +:043B3600000000008B +:043B3700000000008A +:043B38000000000089 +:043B39000000000088 +:043B3A000000000087 +:043B3B000000000086 +:043B3C000000000085 +:043B3D000000000084 +:043B3E000000000083 +:043B3F000000000082 +:043B40000000000081 +:043B41000000000080 +:043B4200000000007F +:043B4300000000007E +:043B4400000000007D +:043B4500000000007C +:043B4600000000007B +:043B4700000000007A +:043B48000000000079 +:043B49000000000078 +:043B4A000000000077 +:043B4B000000000076 +:043B4C000000000075 +:043B4D000000000074 +:043B4E000000000073 +:043B4F000000000072 +:043B50000000000071 +:043B51000000000070 +:043B5200000000006F +:043B5300000000006E +:043B5400000000006D +:043B5500000000006C +:043B5600000000006B +:043B5700000000006A +:043B58000000000069 +:043B59000000000068 +:043B5A000000000067 +:043B5B000000000066 +:043B5C000000000065 +:043B5D000000000064 +:043B5E000000000063 +:043B5F000000000062 +:043B60000000000061 +:043B61000000000060 +:043B6200000000005F +:043B6300000000005E +:043B6400000000005D +:043B6500000000005C +:043B6600000000005B +:043B6700000000005A +:043B68000000000059 +:043B69000000000058 +:043B6A000000000057 +:043B6B000000000056 +:043B6C000000000055 +:043B6D000000000054 +:043B6E000000000053 +:043B6F000000000052 +:043B70000000000051 +:043B71000000000050 +:043B7200000000004F +:043B7300000000004E +:043B7400000000004D +:043B7500000000004C +:043B7600000000004B +:043B7700000000004A +:043B78000000000049 +:043B79000000000048 +:043B7A000000000047 +:043B7B000000000046 +:043B7C000000000045 +:043B7D000000000044 +:043B7E000000000043 +:043B7F000000000042 +:043B80000000000041 +:043B81000000000040 +:043B8200000000003F +:043B8300000000003E +:043B8400000000003D +:043B8500000000003C +:043B8600000000003B +:043B8700000000003A +:043B88000000000039 +:043B89000000000038 +:043B8A000000000037 +:043B8B000000000036 +:043B8C000000000035 +:043B8D000000000034 +:043B8E000000000033 +:043B8F000000000032 +:043B90000000000031 +:043B91000000000030 +:043B9200000000002F +:043B9300000000002E +:043B9400000000002D +:043B9500000000002C +:043B9600000000002B +:043B9700000000002A +:043B98000000000029 +:043B99000000000028 +:043B9A000000000027 +:043B9B000000000026 +:043B9C000000000025 +:043B9D000000000024 +:043B9E000000000023 +:043B9F000000000022 +:043BA0000000000021 +:043BA1000000000020 +:043BA200000000001F +:043BA300000000001E +:043BA400000000001D +:043BA500000000001C +:043BA600000000001B +:043BA700000000001A +:043BA8000000000019 +:043BA9000000000018 +:043BAA000000000017 +:043BAB000000000016 +:043BAC000000000015 +:043BAD000000000014 +:043BAE000000000013 +:043BAF000000000012 +:043BB0000000000011 +:043BB1000000000010 +:043BB200000000000F +:043BB300000000000E +:043BB400000000000D +:043BB500000000000C +:043BB600000000000B +:043BB700000000000A +:043BB8000000000009 +:043BB9000000000008 +:043BBA000000000007 +:043BBB000000000006 +:043BBC000000000005 +:043BBD000000000004 +:043BBE000000000003 +:043BBF000000000002 +:043BC0000000000001 +:043BC1000000000000 +:043BC20000000000FF +:043BC30000000000FE +:043BC40000000000FD +:043BC50000000000FC +:043BC60000000000FB +:043BC70000000000FA +:043BC80000000000F9 +:043BC90000000000F8 +:043BCA0000000000F7 +:043BCB0000000000F6 +:043BCC0000000000F5 +:043BCD0000000000F4 +:043BCE0000000000F3 +:043BCF0000000000F2 +:043BD00000000000F1 +:043BD10000000000F0 +:043BD20000000000EF +:043BD30000000000EE +:043BD40000000000ED +:043BD50000000000EC +:043BD60000000000EB +:043BD70000000000EA +:043BD80000000000E9 +:043BD90000000000E8 +:043BDA0000000000E7 +:043BDB0000000000E6 +:043BDC0000000000E5 +:043BDD0000000000E4 +:043BDE0000000000E3 +:043BDF0000000000E2 +:043BE00000000000E1 +:043BE10000000000E0 +:043BE20000000000DF +:043BE30000000000DE +:043BE40000000000DD +:043BE50000000000DC +:043BE60000000000DB +:043BE70000000000DA +:043BE80000000000D9 +:043BE90000000000D8 +:043BEA0000000000D7 +:043BEB0000000000D6 +:043BEC0000000000D5 +:043BED0000000000D4 +:043BEE0000000000D3 +:043BEF0000000000D2 +:043BF00000000000D1 +:043BF10000000000D0 +:043BF20000000000CF +:043BF30000000000CE +:043BF40000000000CD +:043BF50000000000CC +:043BF60000000000CB +:043BF70000000000CA +:043BF80000000000C9 +:043BF90000000000C8 +:043BFA0000000000C7 +:043BFB0000000000C6 +:043BFC0000000000C5 +:043BFD0000000000C4 +:043BFE0000000000C3 +:043BFF0000000000C2 +:043C000000000000C0 +:043C010000000000BF +:043C020000000000BE +:043C030000000000BD +:043C040000000000BC +:043C050000000000BB +:043C060000000000BA +:043C070000000000B9 +:043C080000000000B8 +:043C090000000000B7 +:043C0A0000000000B6 +:043C0B0000000000B5 +:043C0C0000000000B4 +:043C0D0000000000B3 +:043C0E0000000000B2 +:043C0F0000000000B1 +:043C100000000000B0 +:043C110000000000AF +:043C120000000000AE +:043C130000000000AD +:043C140000000000AC +:043C150000000000AB +:043C160000000000AA +:043C170000000000A9 +:043C180000000000A8 +:043C190000000000A7 +:043C1A0000000000A6 +:043C1B0000000000A5 +:043C1C0000000000A4 +:043C1D0000000000A3 +:043C1E0000000000A2 +:043C1F0000000000A1 +:043C200000000000A0 +:043C2100000000009F +:043C2200000000009E +:043C2300000000009D +:043C2400000000009C +:043C2500000000009B +:043C2600000000009A +:043C27000000000099 +:043C28000000000098 +:043C29000000000097 +:043C2A000000000096 +:043C2B000000000095 +:043C2C000000000094 +:043C2D000000000093 +:043C2E000000000092 +:043C2F000000000091 +:043C30000000000090 +:043C3100000000008F +:043C3200000000008E +:043C3300000000008D +:043C3400000000008C +:043C3500000000008B +:043C3600000000008A +:043C37000000000089 +:043C38000000000088 +:043C39000000000087 +:043C3A000000000086 +:043C3B000000000085 +:043C3C000000000084 +:043C3D000000000083 +:043C3E000000000082 +:043C3F000000000081 +:043C40000000000080 +:043C4100000000007F +:043C4200000000007E +:043C4300000000007D +:043C4400000000007C +:043C4500000000007B +:043C4600000000007A +:043C47000000000079 +:043C48000000000078 +:043C49000000000077 +:043C4A000000000076 +:043C4B000000000075 +:043C4C000000000074 +:043C4D000000000073 +:043C4E000000000072 +:043C4F000000000071 +:043C50000000000070 +:043C5100000000006F +:043C5200000000006E +:043C5300000000006D +:043C5400000000006C +:043C5500000000006B +:043C5600000000006A +:043C57000000000069 +:043C58000000000068 +:043C59000000000067 +:043C5A000000000066 +:043C5B000000000065 +:043C5C000000000064 +:043C5D000000000063 +:043C5E000000000062 +:043C5F000000000061 +:043C60000000000060 +:043C6100000000005F +:043C6200000000005E +:043C6300000000005D +:043C6400000000005C +:043C6500000000005B +:043C6600000000005A +:043C67000000000059 +:043C68000000000058 +:043C69000000000057 +:043C6A000000000056 +:043C6B000000000055 +:043C6C000000000054 +:043C6D000000000053 +:043C6E000000000052 +:043C6F000000000051 +:043C70000000000050 +:043C7100000000004F +:043C7200000000004E +:043C7300000000004D +:043C7400000000004C +:043C7500000000004B +:043C7600000000004A +:043C77000000000049 +:043C78000000000048 +:043C79000000000047 +:043C7A000000000046 +:043C7B000000000045 +:043C7C000000000044 +:043C7D000000000043 +:043C7E000000000042 +:043C7F000000000041 +:043C80000000000040 +:043C8100000000003F +:043C8200000000003E +:043C8300000000003D +:043C8400000000003C +:043C8500000000003B +:043C8600000000003A +:043C87000000000039 +:043C88000000000038 +:043C89000000000037 +:043C8A000000000036 +:043C8B000000000035 +:043C8C000000000034 +:043C8D000000000033 +:043C8E000000000032 +:043C8F000000000031 +:043C90000000000030 +:043C9100000000002F +:043C9200000000002E +:043C9300000000002D +:043C9400000000002C +:043C9500000000002B +:043C9600000000002A +:043C97000000000029 +:043C98000000000028 +:043C99000000000027 +:043C9A000000000026 +:043C9B000000000025 +:043C9C000000000024 +:043C9D000000000023 +:043C9E000000000022 +:043C9F000000000021 +:043CA0000000000020 +:043CA100000000001F +:043CA200000000001E +:043CA300000000001D +:043CA400000000001C +:043CA500000000001B +:043CA600000000001A +:043CA7000000000019 +:043CA8000000000018 +:043CA9000000000017 +:043CAA000000000016 +:043CAB000000000015 +:043CAC000000000014 +:043CAD000000000013 +:043CAE000000000012 +:043CAF000000000011 +:043CB0000000000010 +:043CB100000000000F +:043CB200000000000E +:043CB300000000000D +:043CB400000000000C +:043CB500000000000B +:043CB600000000000A +:043CB7000000000009 +:043CB8000000000008 +:043CB9000000000007 +:043CBA000000000006 +:043CBB000000000005 +:043CBC000000000004 +:043CBD000000000003 +:043CBE000000000002 +:043CBF000000000001 +:043CC0000000000000 +:043CC10000000000FF +:043CC20000000000FE +:043CC30000000000FD +:043CC40000000000FC +:043CC50000000000FB +:043CC60000000000FA +:043CC70000000000F9 +:043CC80000000000F8 +:043CC90000000000F7 +:043CCA0000000000F6 +:043CCB0000000000F5 +:043CCC0000000000F4 +:043CCD0000000000F3 +:043CCE0000000000F2 +:043CCF0000000000F1 +:043CD00000000000F0 +:043CD10000000000EF +:043CD20000000000EE +:043CD30000000000ED +:043CD40000000000EC +:043CD50000000000EB +:043CD60000000000EA +:043CD70000000000E9 +:043CD80000000000E8 +:043CD90000000000E7 +:043CDA0000000000E6 +:043CDB0000000000E5 +:043CDC0000000000E4 +:043CDD0000000000E3 +:043CDE0000000000E2 +:043CDF0000000000E1 +:043CE00000000000E0 +:043CE10000000000DF +:043CE20000000000DE +:043CE30000000000DD +:043CE40000000000DC +:043CE50000000000DB +:043CE60000000000DA +:043CE70000000000D9 +:043CE80000000000D8 +:043CE90000000000D7 +:043CEA0000000000D6 +:043CEB0000000000D5 +:043CEC0000000000D4 +:043CED0000000000D3 +:043CEE0000000000D2 +:043CEF0000000000D1 +:043CF00000000000D0 +:043CF10000000000CF +:043CF20000000000CE +:043CF30000000000CD +:043CF40000000000CC +:043CF50000000000CB +:043CF60000000000CA +:043CF70000000000C9 +:043CF80000000000C8 +:043CF90000000000C7 +:043CFA0000000000C6 +:043CFB0000000000C5 +:043CFC0000000000C4 +:043CFD0000000000C3 +:043CFE0000000000C2 +:043CFF0000000000C1 +:043D000000000000BF +:043D010000000000BE +:043D020000000000BD +:043D030000000000BC +:043D040000000000BB +:043D050000000000BA +:043D060000000000B9 +:043D070000000000B8 +:043D080000000000B7 +:043D090000000000B6 +:043D0A0000000000B5 +:043D0B0000000000B4 +:043D0C0000000000B3 +:043D0D0000000000B2 +:043D0E0000000000B1 +:043D0F0000000000B0 +:043D100000000000AF +:043D110000000000AE +:043D120000000000AD +:043D130000000000AC +:043D140000000000AB +:043D150000000000AA +:043D160000000000A9 +:043D170000000000A8 +:043D180000000000A7 +:043D190000000000A6 +:043D1A0000000000A5 +:043D1B0000000000A4 +:043D1C0000000000A3 +:043D1D0000000000A2 +:043D1E0000000000A1 +:043D1F0000000000A0 +:043D2000000000009F +:043D2100000000009E +:043D2200000000009D +:043D2300000000009C +:043D2400000000009B +:043D2500000000009A +:043D26000000000099 +:043D27000000000098 +:043D28000000000097 +:043D29000000000096 +:043D2A000000000095 +:043D2B000000000094 +:043D2C000000000093 +:043D2D000000000092 +:043D2E000000000091 +:043D2F000000000090 +:043D3000000000008F +:043D3100000000008E +:043D3200000000008D +:043D3300000000008C +:043D3400000000008B +:043D3500000000008A +:043D36000000000089 +:043D37000000000088 +:043D38000000000087 +:043D39000000000086 +:043D3A000000000085 +:043D3B000000000084 +:043D3C000000000083 +:043D3D000000000082 +:043D3E000000000081 +:043D3F000000000080 +:043D4000000000007F +:043D4100000000007E +:043D4200000000007D +:043D4300000000007C +:043D4400000000007B +:043D4500000000007A +:043D46000000000079 +:043D47000000000078 +:043D48000000000077 +:043D49000000000076 +:043D4A000000000075 +:043D4B000000000074 +:043D4C000000000073 +:043D4D000000000072 +:043D4E000000000071 +:043D4F000000000070 +:043D5000000000006F +:043D5100000000006E +:043D5200000000006D +:043D5300000000006C +:043D5400000000006B +:043D5500000000006A +:043D56000000000069 +:043D57000000000068 +:043D58000000000067 +:043D59000000000066 +:043D5A000000000065 +:043D5B000000000064 +:043D5C000000000063 +:043D5D000000000062 +:043D5E000000000061 +:043D5F000000000060 +:043D6000000000005F +:043D6100000000005E +:043D6200000000005D +:043D6300000000005C +:043D6400000000005B +:043D6500000000005A +:043D66000000000059 +:043D67000000000058 +:043D68000000000057 +:043D69000000000056 +:043D6A000000000055 +:043D6B000000000054 +:043D6C000000000053 +:043D6D000000000052 +:043D6E000000000051 +:043D6F000000000050 +:043D7000000000004F +:043D7100000000004E +:043D7200000000004D +:043D7300000000004C +:043D7400000000004B +:043D7500000000004A +:043D76000000000049 +:043D77000000000048 +:043D78000000000047 +:043D79000000000046 +:043D7A000000000045 +:043D7B000000000044 +:043D7C000000000043 +:043D7D000000000042 +:043D7E000000000041 +:043D7F000000000040 +:043D8000000000003F +:043D8100000000003E +:043D8200000000003D +:043D8300000000003C +:043D8400000000003B +:043D8500000000003A +:043D86000000000039 +:043D87000000000038 +:043D88000000000037 +:043D89000000000036 +:043D8A000000000035 +:043D8B000000000034 +:043D8C000000000033 +:043D8D000000000032 +:043D8E000000000031 +:043D8F000000000030 +:043D9000000000002F +:043D9100000000002E +:043D9200000000002D +:043D9300000000002C +:043D9400000000002B +:043D9500000000002A +:043D96000000000029 +:043D97000000000028 +:043D98000000000027 +:043D99000000000026 +:043D9A000000000025 +:043D9B000000000024 +:043D9C000000000023 +:043D9D000000000022 +:043D9E000000000021 +:043D9F000000000020 +:043DA000000000001F +:043DA100000000001E +:043DA200000000001D +:043DA300000000001C +:043DA400000000001B +:043DA500000000001A +:043DA6000000000019 +:043DA7000000000018 +:043DA8000000000017 +:043DA9000000000016 +:043DAA000000000015 +:043DAB000000000014 +:043DAC000000000013 +:043DAD000000000012 +:043DAE000000000011 +:043DAF000000000010 +:043DB000000000000F +:043DB100000000000E +:043DB200000000000D +:043DB300000000000C +:043DB400000000000B +:043DB500000000000A +:043DB6000000000009 +:043DB7000000000008 +:043DB8000000000007 +:043DB9000000000006 +:043DBA000000000005 +:043DBB000000000004 +:043DBC000000000003 +:043DBD000000000002 +:043DBE000000000001 +:043DBF000000000000 +:043DC00000000000FF +:043DC10000000000FE +:043DC20000000000FD +:043DC30000000000FC +:043DC40000000000FB +:043DC50000000000FA +:043DC60000000000F9 +:043DC70000000000F8 +:043DC80000000000F7 +:043DC90000000000F6 +:043DCA0000000000F5 +:043DCB0000000000F4 +:043DCC0000000000F3 +:043DCD0000000000F2 +:043DCE0000000000F1 +:043DCF0000000000F0 +:043DD00000000000EF +:043DD10000000000EE +:043DD20000000000ED +:043DD30000000000EC +:043DD40000000000EB +:043DD50000000000EA +:043DD60000000000E9 +:043DD70000000000E8 +:043DD80000000000E7 +:043DD90000000000E6 +:043DDA0000000000E5 +:043DDB0000000000E4 +:043DDC0000000000E3 +:043DDD0000000000E2 +:043DDE0000000000E1 +:043DDF0000000000E0 +:043DE00000000000DF +:043DE10000000000DE +:043DE20000000000DD +:043DE30000000000DC +:043DE40000000000DB +:043DE50000000000DA +:043DE60000000000D9 +:043DE70000000000D8 +:043DE80000000000D7 +:043DE90000000000D6 +:043DEA0000000000D5 +:043DEB0000000000D4 +:043DEC0000000000D3 +:043DED0000000000D2 +:043DEE0000000000D1 +:043DEF0000000000D0 +:043DF00000000000CF +:043DF10000000000CE +:043DF20000000000CD +:043DF30000000000CC +:043DF40000000000CB +:043DF50000000000CA +:043DF60000000000C9 +:043DF70000000000C8 +:043DF80000000000C7 +:043DF90000000000C6 +:043DFA0000000000C5 +:043DFB0000000000C4 +:043DFC0000000000C3 +:043DFD0000000000C2 +:043DFE0000000000C1 +:043DFF0000000000C0 +:043E000000000000BE +:043E010000000000BD +:043E020000000000BC +:043E030000000000BB +:043E040000000000BA +:043E050000000000B9 +:043E060000000000B8 +:043E070000000000B7 +:043E080000000000B6 +:043E090000000000B5 +:043E0A0000000000B4 +:043E0B0000000000B3 +:043E0C0000000000B2 +:043E0D0000000000B1 +:043E0E0000000000B0 +:043E0F0000000000AF +:043E100000000000AE +:043E110000000000AD +:043E120000000000AC +:043E130000000000AB +:043E140000000000AA +:043E150000000000A9 +:043E160000000000A8 +:043E170000000000A7 +:043E180000000000A6 +:043E190000000000A5 +:043E1A0000000000A4 +:043E1B0000000000A3 +:043E1C0000000000A2 +:043E1D0000000000A1 +:043E1E0000000000A0 +:043E1F00000000009F +:043E2000000000009E +:043E2100000000009D +:043E2200000000009C +:043E2300000000009B +:043E2400000000009A +:043E25000000000099 +:043E26000000000098 +:043E27000000000097 +:043E28000000000096 +:043E29000000000095 +:043E2A000000000094 +:043E2B000000000093 +:043E2C000000000092 +:043E2D000000000091 +:043E2E000000000090 +:043E2F00000000008F +:043E3000000000008E +:043E3100000000008D +:043E3200000000008C +:043E3300000000008B +:043E3400000000008A +:043E35000000000089 +:043E36000000000088 +:043E37000000000087 +:043E38000000000086 +:043E39000000000085 +:043E3A000000000084 +:043E3B000000000083 +:043E3C000000000082 +:043E3D000000000081 +:043E3E000000000080 +:043E3F00000000007F +:043E4000000000007E +:043E4100000000007D +:043E4200000000007C +:043E4300000000007B +:043E4400000000007A +:043E45000000000079 +:043E46000000000078 +:043E47000000000077 +:043E48000000000076 +:043E49000000000075 +:043E4A000000000074 +:043E4B000000000073 +:043E4C000000000072 +:043E4D000000000071 +:043E4E000000000070 +:043E4F00000000006F +:043E5000000000006E +:043E5100000000006D +:043E5200000000006C +:043E5300000000006B +:043E5400000000006A +:043E55000000000069 +:043E56000000000068 +:043E57000000000067 +:043E58000000000066 +:043E59000000000065 +:043E5A000000000064 +:043E5B000000000063 +:043E5C000000000062 +:043E5D000000000061 +:043E5E000000000060 +:043E5F00000000005F +:043E6000000000005E +:043E6100000000005D +:043E6200000000005C +:043E6300000000005B +:043E6400000000005A +:043E65000000000059 +:043E66000000000058 +:043E67000000000057 +:043E68000000000056 +:043E69000000000055 +:043E6A000000000054 +:043E6B000000000053 +:043E6C000000000052 +:043E6D000000000051 +:043E6E000000000050 +:043E6F00000000004F +:043E7000000000004E +:043E7100000000004D +:043E7200000000004C +:043E7300000000004B +:043E7400000000004A +:043E75000000000049 +:043E76000000000048 +:043E77000000000047 +:043E78000000000046 +:043E79000000000045 +:043E7A000000000044 +:043E7B000000000043 +:043E7C000000000042 +:043E7D000000000041 +:043E7E000000000040 +:043E7F00000000003F +:043E8000000000003E +:043E8100000000003D +:043E8200000000003C +:043E8300000000003B +:043E8400000000003A +:043E85000000000039 +:043E86000000000038 +:043E87000000000037 +:043E88000000000036 +:043E89000000000035 +:043E8A000000000034 +:043E8B000000000033 +:043E8C000000000032 +:043E8D000000000031 +:043E8E000000000030 +:043E8F00000000002F +:043E9000000000002E +:043E9100000000002D +:043E9200000000002C +:043E9300000000002B +:043E9400000000002A +:043E95000000000029 +:043E96000000000028 +:043E97000000000027 +:043E98000000000026 +:043E99000000000025 +:043E9A000000000024 +:043E9B000000000023 +:043E9C000000000022 +:043E9D000000000021 +:043E9E000000000020 +:043E9F00000000001F +:043EA000000000001E +:043EA100000000001D +:043EA200000000001C +:043EA300000000001B +:043EA400000000001A +:043EA5000000000019 +:043EA6000000000018 +:043EA7000000000017 +:043EA8000000000016 +:043EA9000000000015 +:043EAA000000000014 +:043EAB000000000013 +:043EAC000000000012 +:043EAD000000000011 +:043EAE000000000010 +:043EAF00000000000F +:043EB000000000000E +:043EB100000000000D +:043EB200000000000C +:043EB300000000000B +:043EB400000000000A +:043EB5000000000009 +:043EB6000000000008 +:043EB7000000000007 +:043EB8000000000006 +:043EB9000000000005 +:043EBA000000000004 +:043EBB000000000003 +:043EBC000000000002 +:043EBD000000000001 +:043EBE000000000000 +:043EBF0000000000FF +:043EC00000000000FE +:043EC10000000000FD +:043EC20000000000FC +:043EC30000000000FB +:043EC40000000000FA +:043EC50000000000F9 +:043EC60000000000F8 +:043EC70000000000F7 +:043EC80000000000F6 +:043EC90000000000F5 +:043ECA0000000000F4 +:043ECB0000000000F3 +:043ECC0000000000F2 +:043ECD0000000000F1 +:043ECE0000000000F0 +:043ECF0000000000EF +:043ED00000000000EE +:043ED10000000000ED +:043ED20000000000EC +:043ED30000000000EB +:043ED40000000000EA +:043ED50000000000E9 +:043ED60000000000E8 +:043ED70000000000E7 +:043ED80000000000E6 +:043ED90000000000E5 +:043EDA0000000000E4 +:043EDB0000000000E3 +:043EDC0000000000E2 +:043EDD0000000000E1 +:043EDE0000000000E0 +:043EDF0000000000DF +:043EE00000000000DE +:043EE10000000000DD +:043EE20000000000DC +:043EE30000000000DB +:043EE40000000000DA +:043EE50000000000D9 +:043EE60000000000D8 +:043EE70000000000D7 +:043EE80000000000D6 +:043EE90000000000D5 +:043EEA0000000000D4 +:043EEB0000000000D3 +:043EEC0000000000D2 +:043EED0000000000D1 +:043EEE0000000000D0 +:043EEF0000000000CF +:043EF00000000000CE +:043EF10000000000CD +:043EF20000000000CC +:043EF30000000000CB +:043EF40000000000CA +:043EF50000000000C9 +:043EF60000000000C8 +:043EF70000000000C7 +:043EF80000000000C6 +:043EF90000000000C5 +:043EFA0000000000C4 +:043EFB0000000000C3 +:043EFC0000000000C2 +:043EFD0000000000C1 +:043EFE0000000000C0 +:043EFF0000000000BF +:043F000000000000BD +:043F010000000000BC +:043F020000000000BB +:043F030000000000BA +:043F040000000000B9 +:043F050000000000B8 +:043F060000000000B7 +:043F070000000000B6 +:043F080000000000B5 +:043F090000000000B4 +:043F0A0000000000B3 +:043F0B0000000000B2 +:043F0C0000000000B1 +:043F0D0000000000B0 +:043F0E0000000000AF +:043F0F0000000000AE +:043F100000000000AD +:043F110000000000AC +:043F120000000000AB +:043F130000000000AA +:043F140000000000A9 +:043F150000000000A8 +:043F160000000000A7 +:043F170000000000A6 +:043F180000000000A5 +:043F190000000000A4 +:043F1A0000000000A3 +:043F1B0000000000A2 +:043F1C0000000000A1 +:043F1D0000000000A0 +:043F1E00000000009F +:043F1F00000000009E +:043F2000000000009D +:043F2100000000009C +:043F2200000000009B +:043F2300000000009A +:043F24000000000099 +:043F25000000000098 +:043F26000000000097 +:043F27000000000096 +:043F28000000000095 +:043F29000000000094 +:043F2A000000000093 +:043F2B000000000092 +:043F2C000000000091 +:043F2D000000000090 +:043F2E00000000008F +:043F2F00000000008E +:043F3000000000008D +:043F3100000000008C +:043F3200000000008B +:043F3300000000008A +:043F34000000000089 +:043F35000000000088 +:043F36000000000087 +:043F37000000000086 +:043F38000000000085 +:043F39000000000084 +:043F3A000000000083 +:043F3B000000000082 +:043F3C000000000081 +:043F3D000000000080 +:043F3E00000000007F +:043F3F00000000007E +:043F4000000000007D +:043F4100000000007C +:043F4200000000007B +:043F4300000000007A +:043F44000000000079 +:043F45000000000078 +:043F46000000000077 +:043F47000000000076 +:043F48000000000075 +:043F49000000000074 +:043F4A000000000073 +:043F4B000000000072 +:043F4C000000000071 +:043F4D000000000070 +:043F4E00000000006F +:043F4F00000000006E +:043F5000000000006D +:043F5100000000006C +:043F5200000000006B +:043F5300000000006A +:043F54000000000069 +:043F55000000000068 +:043F56000000000067 +:043F57000000000066 +:043F58000000000065 +:043F59000000000064 +:043F5A000000000063 +:043F5B000000000062 +:043F5C000000000061 +:043F5D000000000060 +:043F5E00000000005F +:043F5F00000000005E +:043F6000000000005D +:043F6100000000005C +:043F6200000000005B +:043F6300000000005A +:043F64000000000059 +:043F65000000000058 +:043F66000000000057 +:043F67000000000056 +:043F68000000000055 +:043F69000000000054 +:043F6A000000000053 +:043F6B000000000052 +:043F6C000000000051 +:043F6D000000000050 +:043F6E00000000004F +:043F6F00000000004E +:043F7000000000004D +:043F7100000000004C +:043F7200000000004B +:043F7300000000004A +:043F74000000000049 +:043F75000000000048 +:043F76000000000047 +:043F77000000000046 +:043F78000000000045 +:043F79000000000044 +:043F7A000000000043 +:043F7B000000000042 +:043F7C000000000041 +:043F7D000000000040 +:043F7E00000000003F +:043F7F00000000003E +:043F8000000000003D +:043F8100000000003C +:043F8200000000003B +:043F8300000000003A +:043F84000000000039 +:043F85000000000038 +:043F86000000000037 +:043F87000000000036 +:043F88000000000035 +:043F89000000000034 +:043F8A000000000033 +:043F8B000000000032 +:043F8C000000000031 +:043F8D000000000030 +:043F8E00000000002F +:043F8F00000000002E +:043F9000000000002D +:043F9100000000002C +:043F9200000000002B +:043F9300000000002A +:043F94000000000029 +:043F95000000000028 +:043F96000000000027 +:043F97000000000026 +:043F98000000000025 +:043F99000000000024 +:043F9A000000000023 +:043F9B000000000022 +:043F9C000000000021 +:043F9D000000000020 +:043F9E00000000001F +:043F9F00000000001E +:043FA000000000001D +:043FA100000000001C +:043FA200000000001B +:043FA300000000001A +:043FA4000000000019 +:043FA5000000000018 +:043FA6000000000017 +:043FA7000000000016 +:043FA8000000000015 +:043FA9000000000014 +:043FAA000000000013 +:043FAB000000000012 +:043FAC000000000011 +:043FAD000000000010 +:043FAE00000000000F +:043FAF00000000000E +:043FB000000000000D +:043FB100000000000C +:043FB200000000000B +:043FB300000000000A +:043FB4000000000009 +:043FB5000000000008 +:043FB6000000000007 +:043FB7000000000006 +:043FB8000000000005 +:043FB9000000000004 +:043FBA000000000003 +:043FBB000000000002 +:043FBC000000000001 +:043FBD000000000000 +:043FBE0000000000FF +:043FBF0000000000FE +:043FC00000000000FD +:043FC10000000000FC +:043FC20000000000FB +:043FC30000000000FA +:043FC40000000000F9 +:043FC50000000000F8 +:043FC60000000000F7 +:043FC70000000000F6 +:043FC80000000000F5 +:043FC90000000000F4 +:043FCA0000000000F3 +:043FCB0000000000F2 +:043FCC0000000000F1 +:043FCD0000000000F0 +:043FCE0000000000EF +:043FCF0000000000EE +:043FD00000000000ED +:043FD10000000000EC +:043FD20000000000EB +:043FD30000000000EA +:043FD40000000000E9 +:043FD50000000000E8 +:043FD60000000000E7 +:043FD70000000000E6 +:043FD80000000000E5 +:043FD90000000000E4 +:043FDA0000000000E3 +:043FDB0000000000E2 +:043FDC0000000000E1 +:043FDD0000000000E0 +:043FDE0000000000DF +:043FDF0000000000DE +:043FE00000000000DD +:043FE10000000000DC +:043FE20000000000DB +:043FE30000000000DA +:043FE40000000000D9 +:043FE50000000000D8 +:043FE60000000000D7 +:043FE70000000000D6 +:043FE80000000000D5 +:043FE90000000000D4 +:043FEA0000000000D3 +:043FEB0000000000D2 +:043FEC0000000000D1 +:043FED0000000000D0 +:043FEE0000000000CF +:043FEF0000000000CE +:043FF00000000000CD +:043FF10000000000CC +:043FF20000000000CB +:043FF30000000000CA +:043FF40000000000C9 +:043FF50000000000C8 +:043FF60000000000C7 +:043FF70000000000C6 +:043FF80000000000C5 +:043FF90000000000C4 +:043FFA0000000000C3 +:043FFB0000000000C2 +:043FFC0000000000C1 +:043FFD0000000000C0 +:043FFE0000000000BF +:043FFF0000000000BE +:0440000000000000BC +:0440010000000000BB +:0440020000000000BA +:0440030000000000B9 +:0440040000000000B8 +:0440050000000000B7 +:0440060000000000B6 +:0440070000000000B5 +:0440080000000000B4 +:0440090000000000B3 +:04400A0000000000B2 +:04400B0000000000B1 +:04400C0000000000B0 +:04400D0000000000AF +:04400E0000000000AE +:04400F0000000000AD +:0440100000000000AC +:0440110000000000AB +:0440120000000000AA +:0440130000000000A9 +:0440140000000000A8 +:0440150000000000A7 +:0440160000000000A6 +:0440170000000000A5 +:0440180000000000A4 +:0440190000000000A3 +:04401A0000000000A2 +:04401B0000000000A1 +:04401C0000000000A0 +:04401D00000000009F +:04401E00000000009E +:04401F00000000009D +:04402000000000009C +:04402100000000009B +:04402200000000009A +:044023000000000099 +:044024000000000098 +:044025000000000097 +:044026000000000096 +:044027000000000095 +:044028000000000094 +:044029000000000093 +:04402A000000000092 +:04402B000000000091 +:04402C000000000090 +:04402D00000000008F +:04402E00000000008E +:04402F00000000008D +:04403000000000008C +:04403100000000008B +:04403200000000008A +:044033000000000089 +:044034000000000088 +:044035000000000087 +:044036000000000086 +:044037000000000085 +:044038000000000084 +:044039000000000083 +:04403A000000000082 +:04403B000000000081 +:04403C000000000080 +:04403D00000000007F +:04403E00000000007E +:04403F00000000007D +:04404000000000007C +:04404100000000007B +:04404200000000007A +:044043000000000079 +:044044000000000078 +:044045000000000077 +:044046000000000076 +:044047000000000075 +:044048000000000074 +:044049000000000073 +:04404A000000000072 +:04404B000000000071 +:04404C000000000070 +:04404D00000000006F +:04404E00000000006E +:04404F00000000006D +:04405000000000006C +:04405100000000006B +:04405200000000006A +:044053000000000069 +:044054000000000068 +:044055000000000067 +:044056000000000066 +:044057000000000065 +:044058000000000064 +:044059000000000063 +:04405A000000000062 +:04405B000000000061 +:04405C000000000060 +:04405D00000000005F +:04405E00000000005E +:04405F00000000005D +:04406000000000005C +:04406100000000005B +:04406200000000005A +:044063000000000059 +:044064000000000058 +:044065000000000057 +:044066000000000056 +:044067000000000055 +:044068000000000054 +:044069000000000053 +:04406A000000000052 +:04406B000000000051 +:04406C000000000050 +:04406D00000000004F +:04406E00000000004E +:04406F00000000004D +:04407000000000004C +:04407100000000004B +:04407200000000004A +:044073000000000049 +:044074000000000048 +:044075000000000047 +:044076000000000046 +:044077000000000045 +:044078000000000044 +:044079000000000043 +:04407A000000000042 +:04407B000000000041 +:04407C000000000040 +:04407D00000000003F +:04407E00000000003E +:04407F00000000003D +:04408000000000003C +:04408100000000003B +:04408200000000003A +:044083000000000039 +:044084000000000038 +:044085000000000037 +:044086000000000036 +:044087000000000035 +:044088000000000034 +:044089000000000033 +:04408A000000000032 +:04408B000000000031 +:04408C000000000030 +:04408D00000000002F +:04408E00000000002E +:04408F00000000002D +:04409000000000002C +:04409100000000002B +:04409200000000002A +:044093000000000029 +:044094000000000028 +:044095000000000027 +:044096000000000026 +:044097000000000025 +:044098000000000024 +:044099000000000023 +:04409A000000000022 +:04409B000000000021 +:04409C000000000020 +:04409D00000000001F +:04409E00000000001E +:04409F00000000001D +:0440A000000000001C +:0440A100000000001B +:0440A200000000001A +:0440A3000000000019 +:0440A4000000000018 +:0440A5000000000017 +:0440A6000000000016 +:0440A7000000000015 +:0440A8000000000014 +:0440A9000000000013 +:0440AA000000000012 +:0440AB000000000011 +:0440AC000000000010 +:0440AD00000000000F +:0440AE00000000000E +:0440AF00000000000D +:0440B000000000000C +:0440B100000000000B +:0440B200000000000A +:0440B3000000000009 +:0440B4000000000008 +:0440B5000000000007 +:0440B6000000000006 +:0440B7000000000005 +:0440B8000000000004 +:0440B9000000000003 +:0440BA000000000002 +:0440BB000000000001 +:0440BC000000000000 +:0440BD0000000000FF +:0440BE0000000000FE +:0440BF0000000000FD +:0440C00000000000FC +:0440C10000000000FB +:0440C20000000000FA +:0440C30000000000F9 +:0440C40000000000F8 +:0440C50000000000F7 +:0440C60000000000F6 +:0440C70000000000F5 +:0440C80000000000F4 +:0440C90000000000F3 +:0440CA0000000000F2 +:0440CB0000000000F1 +:0440CC0000000000F0 +:0440CD0000000000EF +:0440CE0000000000EE +:0440CF0000000000ED +:0440D00000000000EC +:0440D10000000000EB +:0440D20000000000EA +:0440D30000000000E9 +:0440D40000000000E8 +:0440D50000000000E7 +:0440D60000000000E6 +:0440D70000000000E5 +:0440D80000000000E4 +:0440D90000000000E3 +:0440DA0000000000E2 +:0440DB0000000000E1 +:0440DC0000000000E0 +:0440DD0000000000DF +:0440DE0000000000DE +:0440DF0000000000DD +:0440E00000000000DC +:0440E10000000000DB +:0440E20000000000DA +:0440E30000000000D9 +:0440E40000000000D8 +:0440E50000000000D7 +:0440E60000000000D6 +:0440E70000000000D5 +:0440E80000000000D4 +:0440E90000000000D3 +:0440EA0000000000D2 +:0440EB0000000000D1 +:0440EC0000000000D0 +:0440ED0000000000CF +:0440EE0000000000CE +:0440EF0000000000CD +:0440F00000000000CC +:0440F10000000000CB +:0440F20000000000CA +:0440F30000000000C9 +:0440F40000000000C8 +:0440F50000000000C7 +:0440F60000000000C6 +:0440F70000000000C5 +:0440F80000000000C4 +:0440F90000000000C3 +:0440FA0000000000C2 +:0440FB0000000000C1 +:0440FC0000000000C0 +:0440FD0000000000BF +:0440FE0000000000BE +:0440FF0000000000BD +:0441000000000000BB +:0441010000000000BA +:0441020000000000B9 +:0441030000000000B8 +:0441040000000000B7 +:0441050000000000B6 +:0441060000000000B5 +:0441070000000000B4 +:0441080000000000B3 +:0441090000000000B2 +:04410A0000000000B1 +:04410B0000000000B0 +:04410C0000000000AF +:04410D0000000000AE +:04410E0000000000AD +:04410F0000000000AC +:0441100000000000AB +:0441110000000000AA +:0441120000000000A9 +:0441130000000000A8 +:0441140000000000A7 +:0441150000000000A6 +:0441160000000000A5 +:0441170000000000A4 +:0441180000000000A3 +:0441190000000000A2 +:04411A0000000000A1 +:04411B0000000000A0 +:04411C00000000009F +:04411D00000000009E +:04411E00000000009D +:04411F00000000009C +:04412000000000009B +:04412100000000009A +:044122000000000099 +:044123000000000098 +:044124000000000097 +:044125000000000096 +:044126000000000095 +:044127000000000094 +:044128000000000093 +:044129000000000092 +:04412A000000000091 +:04412B000000000090 +:04412C00000000008F +:04412D00000000008E +:04412E00000000008D +:04412F00000000008C +:04413000000000008B +:04413100000000008A +:044132000000000089 +:044133000000000088 +:044134000000000087 +:044135000000000086 +:044136000000000085 +:044137000000000084 +:044138000000000083 +:044139000000000082 +:04413A000000000081 +:04413B000000000080 +:04413C00000000007F +:04413D00000000007E +:04413E00000000007D +:04413F00000000007C +:04414000000000007B +:04414100000000007A +:044142000000000079 +:044143000000000078 +:044144000000000077 +:044145000000000076 +:044146000000000075 +:044147000000000074 +:044148000000000073 +:044149000000000072 +:04414A000000000071 +:04414B000000000070 +:04414C00000000006F +:04414D00000000006E +:04414E00000000006D +:04414F00000000006C +:04415000000000006B +:04415100000000006A +:044152000000000069 +:044153000000000068 +:044154000000000067 +:044155000000000066 +:044156000000000065 +:044157000000000064 +:044158000000000063 +:044159000000000062 +:04415A000000000061 +:04415B000000000060 +:04415C00000000005F +:04415D00000000005E +:04415E00000000005D +:04415F00000000005C +:04416000000000005B +:04416100000000005A +:044162000000000059 +:044163000000000058 +:044164000000000057 +:044165000000000056 +:044166000000000055 +:044167000000000054 +:044168000000000053 +:044169000000000052 +:04416A000000000051 +:04416B000000000050 +:04416C00000000004F +:04416D00000000004E +:04416E00000000004D +:04416F00000000004C +:04417000000000004B +:04417100000000004A +:044172000000000049 +:044173000000000048 +:044174000000000047 +:044175000000000046 +:044176000000000045 +:044177000000000044 +:044178000000000043 +:044179000000000042 +:04417A000000000041 +:04417B000000000040 +:04417C00000000003F +:04417D00000000003E +:04417E00000000003D +:04417F00000000003C +:04418000000000003B +:04418100000000003A +:044182000000000039 +:044183000000000038 +:044184000000000037 +:044185000000000036 +:044186000000000035 +:044187000000000034 +:044188000000000033 +:044189000000000032 +:04418A000000000031 +:04418B000000000030 +:04418C00000000002F +:04418D00000000002E +:04418E00000000002D +:04418F00000000002C +:04419000000000002B +:04419100000000002A +:044192000000000029 +:044193000000000028 +:044194000000000027 +:044195000000000026 +:044196000000000025 +:044197000000000024 +:044198000000000023 +:044199000000000022 +:04419A000000000021 +:04419B000000000020 +:04419C00000000001F +:04419D00000000001E +:04419E00000000001D +:04419F00000000001C +:0441A000000000001B +:0441A100000000001A +:0441A2000000000019 +:0441A3000000000018 +:0441A4000000000017 +:0441A5000000000016 +:0441A6000000000015 +:0441A7000000000014 +:0441A8000000000013 +:0441A9000000000012 +:0441AA000000000011 +:0441AB000000000010 +:0441AC00000000000F +:0441AD00000000000E +:0441AE00000000000D +:0441AF00000000000C +:0441B000000000000B +:0441B100000000000A +:0441B2000000000009 +:0441B3000000000008 +:0441B4000000000007 +:0441B5000000000006 +:0441B6000000000005 +:0441B7000000000004 +:0441B8000000000003 +:0441B9000000000002 +:0441BA000000000001 +:0441BB000000000000 +:0441BC0000000000FF +:0441BD0000000000FE +:0441BE0000000000FD +:0441BF0000000000FC +:0441C00000000000FB +:0441C10000000000FA +:0441C20000000000F9 +:0441C30000000000F8 +:0441C40000000000F7 +:0441C50000000000F6 +:0441C60000000000F5 +:0441C70000000000F4 +:0441C80000000000F3 +:0441C90000000000F2 +:0441CA0000000000F1 +:0441CB0000000000F0 +:0441CC0000000000EF +:0441CD0000000000EE +:0441CE0000000000ED +:0441CF0000000000EC +:0441D00000000000EB +:0441D10000000000EA +:0441D20000000000E9 +:0441D30000000000E8 +:0441D40000000000E7 +:0441D50000000000E6 +:0441D60000000000E5 +:0441D70000000000E4 +:0441D80000000000E3 +:0441D90000000000E2 +:0441DA0000000000E1 +:0441DB0000000000E0 +:0441DC0000000000DF +:0441DD0000000000DE +:0441DE0000000000DD +:0441DF0000000000DC +:0441E00000000000DB +:0441E10000000000DA +:0441E20000000000D9 +:0441E30000000000D8 +:0441E40000000000D7 +:0441E50000000000D6 +:0441E60000000000D5 +:0441E70000000000D4 +:0441E80000000000D3 +:0441E90000000000D2 +:0441EA0000000000D1 +:0441EB0000000000D0 +:0441EC0000000000CF +:0441ED0000000000CE +:0441EE0000000000CD +:0441EF0000000000CC +:0441F00000000000CB +:0441F10000000000CA +:0441F20000000000C9 +:0441F30000000000C8 +:0441F40000000000C7 +:0441F50000000000C6 +:0441F60000000000C5 +:0441F70000000000C4 +:0441F80000000000C3 +:0441F90000000000C2 +:0441FA0000000000C1 +:0441FB0000000000C0 +:0441FC0000000000BF +:0441FD0000000000BE +:0441FE0000000000BD +:0441FF0000000000BC +:0442000000000000BA +:0442010000000000B9 +:0442020000000000B8 +:0442030000000000B7 +:0442040000000000B6 +:0442050000000000B5 +:0442060000000000B4 +:0442070000000000B3 +:0442080000000000B2 +:0442090000000000B1 +:04420A0000000000B0 +:04420B0000000000AF +:04420C0000000000AE +:04420D0000000000AD +:04420E0000000000AC +:04420F0000000000AB +:0442100000000000AA +:0442110000000000A9 +:0442120000000000A8 +:0442130000000000A7 +:0442140000000000A6 +:0442150000000000A5 +:0442160000000000A4 +:0442170000000000A3 +:0442180000000000A2 +:0442190000000000A1 +:04421A0000000000A0 +:04421B00000000009F +:04421C00000000009E +:04421D00000000009D +:04421E00000000009C +:04421F00000000009B +:04422000000000009A +:044221000000000099 +:044222000000000098 +:044223000000000097 +:044224000000000096 +:044225000000000095 +:044226000000000094 +:044227000000000093 +:044228000000000092 +:044229000000000091 +:04422A000000000090 +:04422B00000000008F +:04422C00000000008E +:04422D00000000008D +:04422E00000000008C +:04422F00000000008B +:04423000000000008A +:044231000000000089 +:044232000000000088 +:044233000000000087 +:044234000000000086 +:044235000000000085 +:044236000000000084 +:044237000000000083 +:044238000000000082 +:044239000000000081 +:04423A000000000080 +:04423B00000000007F +:04423C00000000007E +:04423D00000000007D +:04423E00000000007C +:04423F00000000007B +:04424000000000007A +:044241000000000079 +:044242000000000078 +:044243000000000077 +:044244000000000076 +:044245000000000075 +:044246000000000074 +:044247000000000073 +:044248000000000072 +:044249000000000071 +:04424A000000000070 +:04424B00000000006F +:04424C00000000006E +:04424D00000000006D +:04424E00000000006C +:04424F00000000006B +:04425000000000006A +:044251000000000069 +:044252000000000068 +:044253000000000067 +:044254000000000066 +:044255000000000065 +:044256000000000064 +:044257000000000063 +:044258000000000062 +:044259000000000061 +:04425A000000000060 +:04425B00000000005F +:04425C00000000005E +:04425D00000000005D +:04425E00000000005C +:04425F00000000005B +:04426000000000005A +:044261000000000059 +:044262000000000058 +:044263000000000057 +:044264000000000056 +:044265000000000055 +:044266000000000054 +:044267000000000053 +:044268000000000052 +:044269000000000051 +:04426A000000000050 +:04426B00000000004F +:04426C00000000004E +:04426D00000000004D +:04426E00000000004C +:04426F00000000004B +:04427000000000004A +:044271000000000049 +:044272000000000048 +:044273000000000047 +:044274000000000046 +:044275000000000045 +:044276000000000044 +:044277000000000043 +:044278000000000042 +:044279000000000041 +:04427A000000000040 +:04427B00000000003F +:04427C00000000003E +:04427D00000000003D +:04427E00000000003C +:04427F00000000003B +:04428000000000003A +:044281000000000039 +:044282000000000038 +:044283000000000037 +:044284000000000036 +:044285000000000035 +:044286000000000034 +:044287000000000033 +:044288000000000032 +:044289000000000031 +:04428A000000000030 +:04428B00000000002F +:04428C00000000002E +:04428D00000000002D +:04428E00000000002C +:04428F00000000002B +:04429000000000002A +:044291000000000029 +:044292000000000028 +:044293000000000027 +:044294000000000026 +:044295000000000025 +:044296000000000024 +:044297000000000023 +:044298000000000022 +:044299000000000021 +:04429A000000000020 +:04429B00000000001F +:04429C00000000001E +:04429D00000000001D +:04429E00000000001C +:04429F00000000001B +:0442A000000000001A +:0442A1000000000019 +:0442A2000000000018 +:0442A3000000000017 +:0442A4000000000016 +:0442A5000000000015 +:0442A6000000000014 +:0442A7000000000013 +:0442A8000000000012 +:0442A9000000000011 +:0442AA000000000010 +:0442AB00000000000F +:0442AC00000000000E +:0442AD00000000000D +:0442AE00000000000C +:0442AF00000000000B +:0442B000000000000A +:0442B1000000000009 +:0442B2000000000008 +:0442B3000000000007 +:0442B4000000000006 +:0442B5000000000005 +:0442B6000000000004 +:0442B7000000000003 +:0442B8000000000002 +:0442B9000000000001 +:0442BA000000000000 +:0442BB0000000000FF +:0442BC0000000000FE +:0442BD0000000000FD +:0442BE0000000000FC +:0442BF0000000000FB +:0442C00000000000FA +:0442C10000000000F9 +:0442C20000000000F8 +:0442C30000000000F7 +:0442C40000000000F6 +:0442C50000000000F5 +:0442C60000000000F4 +:0442C70000000000F3 +:0442C80000000000F2 +:0442C90000000000F1 +:0442CA0000000000F0 +:0442CB0000000000EF +:0442CC0000000000EE +:0442CD0000000000ED +:0442CE0000000000EC +:0442CF0000000000EB +:0442D00000000000EA +:0442D10000000000E9 +:0442D20000000000E8 +:0442D30000000000E7 +:0442D40000000000E6 +:0442D50000000000E5 +:0442D60000000000E4 +:0442D70000000000E3 +:0442D80000000000E2 +:0442D90000000000E1 +:0442DA0000000000E0 +:0442DB0000000000DF +:0442DC0000000000DE +:0442DD0000000000DD +:0442DE0000000000DC +:0442DF0000000000DB +:0442E00000000000DA +:0442E10000000000D9 +:0442E20000000000D8 +:0442E30000000000D7 +:0442E40000000000D6 +:0442E50000000000D5 +:0442E60000000000D4 +:0442E70000000000D3 +:0442E80000000000D2 +:0442E90000000000D1 +:0442EA0000000000D0 +:0442EB0000000000CF +:0442EC0000000000CE +:0442ED0000000000CD +:0442EE0000000000CC +:0442EF0000000000CB +:0442F00000000000CA +:0442F10000000000C9 +:0442F20000000000C8 +:0442F30000000000C7 +:0442F40000000000C6 +:0442F50000000000C5 +:0442F60000000000C4 +:0442F70000000000C3 +:0442F80000000000C2 +:0442F90000000000C1 +:0442FA0000000000C0 +:0442FB0000000000BF +:0442FC0000000000BE +:0442FD0000000000BD +:0442FE0000000000BC +:0442FF0000000000BB +:0443000000000000B9 +:0443010000000000B8 +:0443020000000000B7 +:0443030000000000B6 +:0443040000000000B5 +:0443050000000000B4 +:0443060000000000B3 +:0443070000000000B2 +:0443080000000000B1 +:0443090000000000B0 +:04430A0000000000AF +:04430B0000000000AE +:04430C0000000000AD +:04430D0000000000AC +:04430E0000000000AB +:04430F0000000000AA +:0443100000000000A9 +:0443110000000000A8 +:0443120000000000A7 +:0443130000000000A6 +:0443140000000000A5 +:0443150000000000A4 +:0443160000000000A3 +:0443170000000000A2 +:0443180000000000A1 +:0443190000000000A0 +:04431A00000000009F +:04431B00000000009E +:04431C00000000009D +:04431D00000000009C +:04431E00000000009B +:04431F00000000009A +:044320000000000099 +:044321000000000098 +:044322000000000097 +:044323000000000096 +:044324000000000095 +:044325000000000094 +:044326000000000093 +:044327000000000092 +:044328000000000091 +:044329000000000090 +:04432A00000000008F +:04432B00000000008E +:04432C00000000008D +:04432D00000000008C +:04432E00000000008B +:04432F00000000008A +:044330000000000089 +:044331000000000088 +:044332000000000087 +:044333000000000086 +:044334000000000085 +:044335000000000084 +:044336000000000083 +:044337000000000082 +:044338000000000081 +:044339000000000080 +:04433A00000000007F +:04433B00000000007E +:04433C00000000007D +:04433D00000000007C +:04433E00000000007B +:04433F00000000007A +:044340000000000079 +:044341000000000078 +:044342000000000077 +:044343000000000076 +:044344000000000075 +:044345000000000074 +:044346000000000073 +:044347000000000072 +:044348000000000071 +:044349000000000070 +:04434A00000000006F +:04434B00000000006E +:04434C00000000006D +:04434D00000000006C +:04434E00000000006B +:04434F00000000006A +:044350000000000069 +:044351000000000068 +:044352000000000067 +:044353000000000066 +:044354000000000065 +:044355000000000064 +:044356000000000063 +:044357000000000062 +:044358000000000061 +:044359000000000060 +:04435A00000000005F +:04435B00000000005E +:04435C00000000005D +:04435D00000000005C +:04435E00000000005B +:04435F00000000005A +:044360000000000059 +:044361000000000058 +:044362000000000057 +:044363000000000056 +:044364000000000055 +:044365000000000054 +:044366000000000053 +:044367000000000052 +:044368000000000051 +:044369000000000050 +:04436A00000000004F +:04436B00000000004E +:04436C00000000004D +:04436D00000000004C +:04436E00000000004B +:04436F00000000004A +:044370000000000049 +:044371000000000048 +:044372000000000047 +:044373000000000046 +:044374000000000045 +:044375000000000044 +:044376000000000043 +:044377000000000042 +:044378000000000041 +:044379000000000040 +:04437A00000000003F +:04437B00000000003E +:04437C00000000003D +:04437D00000000003C +:04437E00000000003B +:04437F00000000003A +:044380000000000039 +:044381000000000038 +:044382000000000037 +:044383000000000036 +:044384000000000035 +:044385000000000034 +:044386000000000033 +:044387000000000032 +:044388000000000031 +:044389000000000030 +:04438A00000000002F +:04438B00000000002E +:04438C00000000002D +:04438D00000000002C +:04438E00000000002B +:04438F00000000002A +:044390000000000029 +:044391000000000028 +:044392000000000027 +:044393000000000026 +:044394000000000025 +:044395000000000024 +:044396000000000023 +:044397000000000022 +:044398000000000021 +:044399000000000020 +:04439A00000000001F +:04439B00000000001E +:04439C00000000001D +:04439D00000000001C +:04439E00000000001B +:04439F00000000001A +:0443A0000000000019 +:0443A1000000000018 +:0443A2000000000017 +:0443A3000000000016 +:0443A4000000000015 +:0443A5000000000014 +:0443A6000000000013 +:0443A7000000000012 +:0443A8000000000011 +:0443A9000000000010 +:0443AA00000000000F +:0443AB00000000000E +:0443AC00000000000D +:0443AD00000000000C +:0443AE00000000000B +:0443AF00000000000A +:0443B0000000000009 +:0443B1000000000008 +:0443B2000000000007 +:0443B3000000000006 +:0443B4000000000005 +:0443B5000000000004 +:0443B6000000000003 +:0443B7000000000002 +:0443B8000000000001 +:0443B9000000000000 +:0443BA0000000000FF +:0443BB0000000000FE +:0443BC0000000000FD +:0443BD0000000000FC +:0443BE0000000000FB +:0443BF0000000000FA +:0443C00000000000F9 +:0443C10000000000F8 +:0443C20000000000F7 +:0443C30000000000F6 +:0443C40000000000F5 +:0443C50000000000F4 +:0443C60000000000F3 +:0443C70000000000F2 +:0443C80000000000F1 +:0443C90000000000F0 +:0443CA0000000000EF +:0443CB0000000000EE +:0443CC0000000000ED +:0443CD0000000000EC +:0443CE0000000000EB +:0443CF0000000000EA +:0443D00000000000E9 +:0443D10000000000E8 +:0443D20000000000E7 +:0443D30000000000E6 +:0443D40000000000E5 +:0443D50000000000E4 +:0443D60000000000E3 +:0443D70000000000E2 +:0443D80000000000E1 +:0443D90000000000E0 +:0443DA0000000000DF +:0443DB0000000000DE +:0443DC0000000000DD +:0443DD0000000000DC +:0443DE0000000000DB +:0443DF0000000000DA +:0443E00000000000D9 +:0443E10000000000D8 +:0443E20000000000D7 +:0443E30000000000D6 +:0443E40000000000D5 +:0443E50000000000D4 +:0443E60000000000D3 +:0443E70000000000D2 +:0443E80000000000D1 +:0443E90000000000D0 +:0443EA0000000000CF +:0443EB0000000000CE +:0443EC0000000000CD +:0443ED0000000000CC +:0443EE0000000000CB +:0443EF0000000000CA +:0443F00000000000C9 +:0443F10000000000C8 +:0443F20000000000C7 +:0443F30000000000C6 +:0443F40000000000C5 +:0443F50000000000C4 +:0443F60000000000C3 +:0443F70000000000C2 +:0443F80000000000C1 +:0443F90000000000C0 +:0443FA0000000000BF +:0443FB0000000000BE +:0443FC0000000000BD +:0443FD0000000000BC +:0443FE0000000000BB +:0443FF0000000000BA +:0444000000000000B8 +:0444010000000000B7 +:0444020000000000B6 +:0444030000000000B5 +:0444040000000000B4 +:0444050000000000B3 +:0444060000000000B2 +:0444070000000000B1 +:0444080000000000B0 +:0444090000000000AF +:04440A0000000000AE +:04440B0000000000AD +:04440C0000000000AC +:04440D0000000000AB +:04440E0000000000AA +:04440F0000000000A9 +:0444100000000000A8 +:0444110000000000A7 +:0444120000000000A6 +:0444130000000000A5 +:0444140000000000A4 +:0444150000000000A3 +:0444160000000000A2 +:0444170000000000A1 +:0444180000000000A0 +:04441900000000009F +:04441A00000000009E +:04441B00000000009D +:04441C00000000009C +:04441D00000000009B +:04441E00000000009A +:04441F000000000099 +:044420000000000098 +:044421000000000097 +:044422000000000096 +:044423000000000095 +:044424000000000094 +:044425000000000093 +:044426000000000092 +:044427000000000091 +:044428000000000090 +:04442900000000008F +:04442A00000000008E +:04442B00000000008D +:04442C00000000008C +:04442D00000000008B +:04442E00000000008A +:04442F000000000089 +:044430000000000088 +:044431000000000087 +:044432000000000086 +:044433000000000085 +:044434000000000084 +:044435000000000083 +:044436000000000082 +:044437000000000081 +:044438000000000080 +:04443900000000007F +:04443A00000000007E +:04443B00000000007D +:04443C00000000007C +:04443D00000000007B +:04443E00000000007A +:04443F000000000079 +:044440000000000078 +:044441000000000077 +:044442000000000076 +:044443000000000075 +:044444000000000074 +:044445000000000073 +:044446000000000072 +:044447000000000071 +:044448000000000070 +:04444900000000006F +:04444A00000000006E +:04444B00000000006D +:04444C00000000006C +:04444D00000000006B +:04444E00000000006A +:04444F000000000069 +:044450000000000068 +:044451000000000067 +:044452000000000066 +:044453000000000065 +:044454000000000064 +:044455000000000063 +:044456000000000062 +:044457000000000061 +:044458000000000060 +:04445900000000005F +:04445A00000000005E +:04445B00000000005D +:04445C00000000005C +:04445D00000000005B +:04445E00000000005A +:04445F000000000059 +:044460000000000058 +:044461000000000057 +:044462000000000056 +:044463000000000055 +:044464000000000054 +:044465000000000053 +:044466000000000052 +:044467000000000051 +:044468000000000050 +:04446900000000004F +:04446A00000000004E +:04446B00000000004D +:04446C00000000004C +:04446D00000000004B +:04446E00000000004A +:04446F000000000049 +:044470000000000048 +:044471000000000047 +:044472000000000046 +:044473000000000045 +:044474000000000044 +:044475000000000043 +:044476000000000042 +:044477000000000041 +:044478000000000040 +:04447900000000003F +:04447A00000000003E +:04447B00000000003D +:04447C00000000003C +:04447D00000000003B +:04447E00000000003A +:04447F000000000039 +:044480000000000038 +:044481000000000037 +:044482000000000036 +:044483000000000035 +:044484000000000034 +:044485000000000033 +:044486000000000032 +:044487000000000031 +:044488000000000030 +:04448900000000002F +:04448A00000000002E +:04448B00000000002D +:04448C00000000002C +:04448D00000000002B +:04448E00000000002A +:04448F000000000029 +:044490000000000028 +:044491000000000027 +:044492000000000026 +:044493000000000025 +:044494000000000024 +:044495000000000023 +:044496000000000022 +:044497000000000021 +:044498000000000020 +:04449900000000001F +:04449A00000000001E +:04449B00000000001D +:04449C00000000001C +:04449D00000000001B +:04449E00000000001A +:04449F000000000019 +:0444A0000000000018 +:0444A1000000000017 +:0444A2000000000016 +:0444A3000000000015 +:0444A4000000000014 +:0444A5000000000013 +:0444A6000000000012 +:0444A7000000000011 +:0444A8000000000010 +:0444A900000000000F +:0444AA00000000000E +:0444AB00000000000D +:0444AC00000000000C +:0444AD00000000000B +:0444AE00000000000A +:0444AF000000000009 +:0444B0000000000008 +:0444B1000000000007 +:0444B2000000000006 +:0444B3000000000005 +:0444B4000000000004 +:0444B5000000000003 +:0444B6000000000002 +:0444B7000000000001 +:0444B8000000000000 +:0444B90000000000FF +:0444BA0000000000FE +:0444BB0000000000FD +:0444BC0000000000FC +:0444BD0000000000FB +:0444BE0000000000FA +:0444BF0000000000F9 +:0444C00000000000F8 +:0444C10000000000F7 +:0444C20000000000F6 +:0444C30000000000F5 +:0444C40000000000F4 +:0444C50000000000F3 +:0444C60000000000F2 +:0444C70000000000F1 +:0444C80000000000F0 +:0444C90000000000EF +:0444CA0000000000EE +:0444CB0000000000ED +:0444CC0000000000EC +:0444CD0000000000EB +:0444CE0000000000EA +:0444CF0000000000E9 +:0444D00000000000E8 +:0444D10000000000E7 +:0444D20000000000E6 +:0444D30000000000E5 +:0444D40000000000E4 +:0444D50000000000E3 +:0444D60000000000E2 +:0444D70000000000E1 +:0444D80000000000E0 +:0444D90000000000DF +:0444DA0000000000DE +:0444DB0000000000DD +:0444DC0000000000DC +:0444DD0000000000DB +:0444DE0000000000DA +:0444DF0000000000D9 +:0444E00000000000D8 +:0444E10000000000D7 +:0444E20000000000D6 +:0444E30000000000D5 +:0444E40000000000D4 +:0444E50000000000D3 +:0444E60000000000D2 +:0444E70000000000D1 +:0444E80000000000D0 +:0444E90000000000CF +:0444EA0000000000CE +:0444EB0000000000CD +:0444EC0000000000CC +:0444ED0000000000CB +:0444EE0000000000CA +:0444EF0000000000C9 +:0444F00000000000C8 +:0444F10000000000C7 +:0444F20000000000C6 +:0444F30000000000C5 +:0444F40000000000C4 +:0444F50000000000C3 +:0444F60000000000C2 +:0444F70000000000C1 +:0444F80000000000C0 +:0444F90000000000BF +:0444FA0000000000BE +:0444FB0000000000BD +:0444FC0000000000BC +:0444FD0000000000BB +:0444FE0000000000BA +:0444FF0000000000B9 +:0445000000000000B7 +:0445010000000000B6 +:0445020000000000B5 +:0445030000000000B4 +:0445040000000000B3 +:0445050000000000B2 +:0445060000000000B1 +:0445070000000000B0 +:0445080000000000AF +:0445090000000000AE +:04450A0000000000AD +:04450B0000000000AC +:04450C0000000000AB +:04450D0000000000AA +:04450E0000000000A9 +:04450F0000000000A8 +:0445100000000000A7 +:0445110000000000A6 +:0445120000000000A5 +:0445130000000000A4 +:0445140000000000A3 +:0445150000000000A2 +:0445160000000000A1 +:0445170000000000A0 +:04451800000000009F +:04451900000000009E +:04451A00000000009D +:04451B00000000009C +:04451C00000000009B +:04451D00000000009A +:04451E000000000099 +:04451F000000000098 +:044520000000000097 +:044521000000000096 +:044522000000000095 +:044523000000000094 +:044524000000000093 +:044525000000000092 +:044526000000000091 +:044527000000000090 +:04452800000000008F +:04452900000000008E +:04452A00000000008D +:04452B00000000008C +:04452C00000000008B +:04452D00000000008A +:04452E000000000089 +:04452F000000000088 +:044530000000000087 +:044531000000000086 +:044532000000000085 +:044533000000000084 +:044534000000000083 +:044535000000000082 +:044536000000000081 +:044537000000000080 +:04453800000000007F +:04453900000000007E +:04453A00000000007D +:04453B00000000007C +:04453C00000000007B +:04453D00000000007A +:04453E000000000079 +:04453F000000000078 +:044540000000000077 +:044541000000000076 +:044542000000000075 +:044543000000000074 +:044544000000000073 +:044545000000000072 +:044546000000000071 +:044547000000000070 +:04454800000000006F +:04454900000000006E +:04454A00000000006D +:04454B00000000006C +:04454C00000000006B +:04454D00000000006A +:04454E000000000069 +:04454F000000000068 +:044550000000000067 +:044551000000000066 +:044552000000000065 +:044553000000000064 +:044554000000000063 +:044555000000000062 +:044556000000000061 +:044557000000000060 +:04455800000000005F +:04455900000000005E +:04455A00000000005D +:04455B00000000005C +:04455C00000000005B +:04455D00000000005A +:04455E000000000059 +:04455F000000000058 +:044560000000000057 +:044561000000000056 +:044562000000000055 +:044563000000000054 +:044564000000000053 +:044565000000000052 +:044566000000000051 +:044567000000000050 +:04456800000000004F +:04456900000000004E +:04456A00000000004D +:04456B00000000004C +:04456C00000000004B +:04456D00000000004A +:04456E000000000049 +:04456F000000000048 +:044570000000000047 +:044571000000000046 +:044572000000000045 +:044573000000000044 +:044574000000000043 +:044575000000000042 +:044576000000000041 +:044577000000000040 +:04457800000000003F +:04457900000000003E +:04457A00000000003D +:04457B00000000003C +:04457C00000000003B +:04457D00000000003A +:04457E000000000039 +:04457F000000000038 +:044580000000000037 +:044581000000000036 +:044582000000000035 +:044583000000000034 +:044584000000000033 +:044585000000000032 +:044586000000000031 +:044587000000000030 +:04458800000000002F +:04458900000000002E +:04458A00000000002D +:04458B00000000002C +:04458C00000000002B +:04458D00000000002A +:04458E000000000029 +:04458F000000000028 +:044590000000000027 +:044591000000000026 +:044592000000000025 +:044593000000000024 +:044594000000000023 +:044595000000000022 +:044596000000000021 +:044597000000000020 +:04459800000000001F +:04459900000000001E +:04459A00000000001D +:04459B00000000001C +:04459C00000000001B +:04459D00000000001A +:04459E000000000019 +:04459F000000000018 +:0445A0000000000017 +:0445A1000000000016 +:0445A2000000000015 +:0445A3000000000014 +:0445A4000000000013 +:0445A5000000000012 +:0445A6000000000011 +:0445A7000000000010 +:0445A800000000000F +:0445A900000000000E +:0445AA00000000000D +:0445AB00000000000C +:0445AC00000000000B +:0445AD00000000000A +:0445AE000000000009 +:0445AF000000000008 +:0445B0000000000007 +:0445B1000000000006 +:0445B2000000000005 +:0445B3000000000004 +:0445B4000000000003 +:0445B5000000000002 +:0445B6000000000001 +:0445B7000000000000 +:0445B80000000000FF +:0445B90000000000FE +:0445BA0000000000FD +:0445BB0000000000FC +:0445BC0000000000FB +:0445BD0000000000FA +:0445BE0000000000F9 +:0445BF0000000000F8 +:0445C00000000000F7 +:0445C10000000000F6 +:0445C20000000000F5 +:0445C30000000000F4 +:0445C40000000000F3 +:0445C50000000000F2 +:0445C60000000000F1 +:0445C70000000000F0 +:0445C80000000000EF +:0445C90000000000EE +:0445CA0000000000ED +:0445CB0000000000EC +:0445CC0000000000EB +:0445CD0000000000EA +:0445CE0000000000E9 +:0445CF0000000000E8 +:0445D00000000000E7 +:0445D10000000000E6 +:0445D20000000000E5 +:0445D30000000000E4 +:0445D40000000000E3 +:0445D50000000000E2 +:0445D60000000000E1 +:0445D70000000000E0 +:0445D80000000000DF +:0445D90000000000DE +:0445DA0000000000DD +:0445DB0000000000DC +:0445DC0000000000DB +:0445DD0000000000DA +:0445DE0000000000D9 +:0445DF0000000000D8 +:0445E00000000000D7 +:0445E10000000000D6 +:0445E20000000000D5 +:0445E30000000000D4 +:0445E40000000000D3 +:0445E50000000000D2 +:0445E60000000000D1 +:0445E70000000000D0 +:0445E80000000000CF +:0445E90000000000CE +:0445EA0000000000CD +:0445EB0000000000CC +:0445EC0000000000CB +:0445ED0000000000CA +:0445EE0000000000C9 +:0445EF0000000000C8 +:0445F00000000000C7 +:0445F10000000000C6 +:0445F20000000000C5 +:0445F30000000000C4 +:0445F40000000000C3 +:0445F50000000000C2 +:0445F60000000000C1 +:0445F70000000000C0 +:0445F80000000000BF +:0445F90000000000BE +:0445FA0000000000BD +:0445FB0000000000BC +:0445FC0000000000BB +:0445FD0000000000BA +:0445FE0000000000B9 +:0445FF0000000000B8 +:0446000000000000B6 +:0446010000000000B5 +:0446020000000000B4 +:0446030000000000B3 +:0446040000000000B2 +:0446050000000000B1 +:0446060000000000B0 +:0446070000000000AF +:0446080000000000AE +:0446090000000000AD +:04460A0000000000AC +:04460B0000000000AB +:04460C0000000000AA +:04460D0000000000A9 +:04460E0000000000A8 +:04460F0000000000A7 +:0446100000000000A6 +:0446110000000000A5 +:0446120000000000A4 +:0446130000000000A3 +:0446140000000000A2 +:0446150000000000A1 +:0446160000000000A0 +:04461700000000009F +:04461800000000009E +:04461900000000009D +:04461A00000000009C +:04461B00000000009B +:04461C00000000009A +:04461D000000000099 +:04461E000000000098 +:04461F000000000097 +:044620000000000096 +:044621000000000095 +:044622000000000094 +:044623000000000093 +:044624000000000092 +:044625000000000091 +:044626000000000090 +:04462700000000008F +:04462800000000008E +:04462900000000008D +:04462A00000000008C +:04462B00000000008B +:04462C00000000008A +:04462D000000000089 +:04462E000000000088 +:04462F000000000087 +:044630000000000086 +:044631000000000085 +:044632000000000084 +:044633000000000083 +:044634000000000082 +:044635000000000081 +:044636000000000080 +:04463700000000007F +:04463800000000007E +:04463900000000007D +:04463A00000000007C +:04463B00000000007B +:04463C00000000007A +:04463D000000000079 +:04463E000000000078 +:04463F000000000077 +:044640000000000076 +:044641000000000075 +:044642000000000074 +:044643000000000073 +:044644000000000072 +:044645000000000071 +:044646000000000070 +:04464700000000006F +:04464800000000006E +:04464900000000006D +:04464A00000000006C +:04464B00000000006B +:04464C00000000006A +:04464D000000000069 +:04464E000000000068 +:04464F000000000067 +:044650000000000066 +:044651000000000065 +:044652000000000064 +:044653000000000063 +:044654000000000062 +:044655000000000061 +:044656000000000060 +:04465700000000005F +:04465800000000005E +:04465900000000005D +:04465A00000000005C +:04465B00000000005B +:04465C00000000005A +:04465D000000000059 +:04465E000000000058 +:04465F000000000057 +:044660000000000056 +:044661000000000055 +:044662000000000054 +:044663000000000053 +:044664000000000052 +:044665000000000051 +:044666000000000050 +:04466700000000004F +:04466800000000004E +:04466900000000004D +:04466A00000000004C +:04466B00000000004B +:04466C00000000004A +:04466D000000000049 +:04466E000000000048 +:04466F000000000047 +:044670000000000046 +:044671000000000045 +:044672000000000044 +:044673000000000043 +:044674000000000042 +:044675000000000041 +:044676000000000040 +:04467700000000003F +:04467800000000003E +:04467900000000003D +:04467A00000000003C +:04467B00000000003B +:04467C00000000003A +:04467D000000000039 +:04467E000000000038 +:04467F000000000037 +:044680000000000036 +:044681000000000035 +:044682000000000034 +:044683000000000033 +:044684000000000032 +:044685000000000031 +:044686000000000030 +:04468700000000002F +:04468800000000002E +:04468900000000002D +:04468A00000000002C +:04468B00000000002B +:04468C00000000002A +:04468D000000000029 +:04468E000000000028 +:04468F000000000027 +:044690000000000026 +:044691000000000025 +:044692000000000024 +:044693000000000023 +:044694000000000022 +:044695000000000021 +:044696000000000020 +:04469700000000001F +:04469800000000001E +:04469900000000001D +:04469A00000000001C +:04469B00000000001B +:04469C00000000001A +:04469D000000000019 +:04469E000000000018 +:04469F000000000017 +:0446A0000000000016 +:0446A1000000000015 +:0446A2000000000014 +:0446A3000000000013 +:0446A4000000000012 +:0446A5000000000011 +:0446A6000000000010 +:0446A700000000000F +:0446A800000000000E +:0446A900000000000D +:0446AA00000000000C +:0446AB00000000000B +:0446AC00000000000A +:0446AD000000000009 +:0446AE000000000008 +:0446AF000000000007 +:0446B0000000000006 +:0446B1000000000005 +:0446B2000000000004 +:0446B3000000000003 +:0446B4000000000002 +:0446B5000000000001 +:0446B6000000000000 +:0446B70000000000FF +:0446B80000000000FE +:0446B90000000000FD +:0446BA0000000000FC +:0446BB0000000000FB +:0446BC0000000000FA +:0446BD0000000000F9 +:0446BE0000000000F8 +:0446BF0000000000F7 +:0446C00000000000F6 +:0446C10000000000F5 +:0446C20000000000F4 +:0446C30000000000F3 +:0446C40000000000F2 +:0446C50000000000F1 +:0446C60000000000F0 +:0446C70000000000EF +:0446C80000000000EE +:0446C90000000000ED +:0446CA0000000000EC +:0446CB0000000000EB +:0446CC0000000000EA +:0446CD0000000000E9 +:0446CE0000000000E8 +:0446CF0000000000E7 +:0446D00000000000E6 +:0446D10000000000E5 +:0446D20000000000E4 +:0446D30000000000E3 +:0446D40000000000E2 +:0446D50000000000E1 +:0446D60000000000E0 +:0446D70000000000DF +:0446D80000000000DE +:0446D90000000000DD +:0446DA0000000000DC +:0446DB0000000000DB +:0446DC0000000000DA +:0446DD0000000000D9 +:0446DE0000000000D8 +:0446DF0000000000D7 +:0446E00000000000D6 +:0446E10000000000D5 +:0446E20000000000D4 +:0446E30000000000D3 +:0446E40000000000D2 +:0446E50000000000D1 +:0446E60000000000D0 +:0446E70000000000CF +:0446E80000000000CE +:0446E90000000000CD +:0446EA0000000000CC +:0446EB0000000000CB +:0446EC0000000000CA +:0446ED0000000000C9 +:0446EE0000000000C8 +:0446EF0000000000C7 +:0446F00000000000C6 +:0446F10000000000C5 +:0446F20000000000C4 +:0446F30000000000C3 +:0446F40000000000C2 +:0446F50000000000C1 +:0446F60000000000C0 +:0446F70000000000BF +:0446F80000000000BE +:0446F90000000000BD +:0446FA0000000000BC +:0446FB0000000000BB +:0446FC0000000000BA +:0446FD0000000000B9 +:0446FE0000000000B8 +:0446FF0000000000B7 +:0447000000000000B5 +:0447010000000000B4 +:0447020000000000B3 +:0447030000000000B2 +:0447040000000000B1 +:0447050000000000B0 +:0447060000000000AF +:0447070000000000AE +:0447080000000000AD +:0447090000000000AC +:04470A0000000000AB +:04470B0000000000AA +:04470C0000000000A9 +:04470D0000000000A8 +:04470E0000000000A7 +:04470F0000000000A6 +:0447100000000000A5 +:0447110000000000A4 +:0447120000000000A3 +:0447130000000000A2 +:0447140000000000A1 +:0447150000000000A0 +:04471600000000009F +:04471700000000009E +:04471800000000009D +:04471900000000009C +:04471A00000000009B +:04471B00000000009A +:04471C000000000099 +:04471D000000000098 +:04471E000000000097 +:04471F000000000096 +:044720000000000095 +:044721000000000094 +:044722000000000093 +:044723000000000092 +:044724000000000091 +:044725000000000090 +:04472600000000008F +:04472700000000008E +:04472800000000008D +:04472900000000008C +:04472A00000000008B +:04472B00000000008A +:04472C000000000089 +:04472D000000000088 +:04472E000000000087 +:04472F000000000086 +:044730000000000085 +:044731000000000084 +:044732000000000083 +:044733000000000082 +:044734000000000081 +:044735000000000080 +:04473600000000007F +:04473700000000007E +:04473800000000007D +:04473900000000007C +:04473A00000000007B +:04473B00000000007A +:04473C000000000079 +:04473D000000000078 +:04473E000000000077 +:04473F000000000076 +:044740000000000075 +:044741000000000074 +:044742000000000073 +:044743000000000072 +:044744000000000071 +:044745000000000070 +:04474600000000006F +:04474700000000006E +:04474800000000006D +:04474900000000006C +:04474A00000000006B +:04474B00000000006A +:04474C000000000069 +:04474D000000000068 +:04474E000000000067 +:04474F000000000066 +:044750000000000065 +:044751000000000064 +:044752000000000063 +:044753000000000062 +:044754000000000061 +:044755000000000060 +:04475600000000005F +:04475700000000005E +:04475800000000005D +:04475900000000005C +:04475A00000000005B +:04475B00000000005A +:04475C000000000059 +:04475D000000000058 +:04475E000000000057 +:04475F000000000056 +:044760000000000055 +:044761000000000054 +:044762000000000053 +:044763000000000052 +:044764000000000051 +:044765000000000050 +:04476600000000004F +:04476700000000004E +:04476800000000004D +:04476900000000004C +:04476A00000000004B +:04476B00000000004A +:04476C000000000049 +:04476D000000000048 +:04476E000000000047 +:04476F000000000046 +:044770000000000045 +:044771000000000044 +:044772000000000043 +:044773000000000042 +:044774000000000041 +:044775000000000040 +:04477600000000003F +:04477700000000003E +:04477800000000003D +:04477900000000003C +:04477A00000000003B +:04477B00000000003A +:04477C000000000039 +:04477D000000000038 +:04477E000000000037 +:04477F000000000036 +:044780000000000035 +:044781000000000034 +:044782000000000033 +:044783000000000032 +:044784000000000031 +:044785000000000030 +:04478600000000002F +:04478700000000002E +:04478800000000002D +:04478900000000002C +:04478A00000000002B +:04478B00000000002A +:04478C000000000029 +:04478D000000000028 +:04478E000000000027 +:04478F000000000026 +:044790000000000025 +:044791000000000024 +:044792000000000023 +:044793000000000022 +:044794000000000021 +:044795000000000020 +:04479600000000001F +:04479700000000001E +:04479800000000001D +:04479900000000001C +:04479A00000000001B +:04479B00000000001A +:04479C000000000019 +:04479D000000000018 +:04479E000000000017 +:04479F000000000016 +:0447A0000000000015 +:0447A1000000000014 +:0447A2000000000013 +:0447A3000000000012 +:0447A4000000000011 +:0447A5000000000010 +:0447A600000000000F +:0447A700000000000E +:0447A800000000000D +:0447A900000000000C +:0447AA00000000000B +:0447AB00000000000A +:0447AC000000000009 +:0447AD000000000008 +:0447AE000000000007 +:0447AF000000000006 +:0447B0000000000005 +:0447B1000000000004 +:0447B2000000000003 +:0447B3000000000002 +:0447B4000000000001 +:0447B5000000000000 +:0447B60000000000FF +:0447B70000000000FE +:0447B80000000000FD +:0447B90000000000FC +:0447BA0000000000FB +:0447BB0000000000FA +:0447BC0000000000F9 +:0447BD0000000000F8 +:0447BE0000000000F7 +:0447BF0000000000F6 +:0447C00000000000F5 +:0447C10000000000F4 +:0447C20000000000F3 +:0447C30000000000F2 +:0447C40000000000F1 +:0447C50000000000F0 +:0447C60000000000EF +:0447C70000000000EE +:0447C80000000000ED +:0447C90000000000EC +:0447CA0000000000EB +:0447CB0000000000EA +:0447CC0000000000E9 +:0447CD0000000000E8 +:0447CE0000000000E7 +:0447CF0000000000E6 +:0447D00000000000E5 +:0447D10000000000E4 +:0447D20000000000E3 +:0447D30000000000E2 +:0447D40000000000E1 +:0447D50000000000E0 +:0447D60000000000DF +:0447D70000000000DE +:0447D80000000000DD +:0447D90000000000DC +:0447DA0000000000DB +:0447DB0000000000DA +:0447DC0000000000D9 +:0447DD0000000000D8 +:0447DE0000000000D7 +:0447DF0000000000D6 +:0447E00000000000D5 +:0447E10000000000D4 +:0447E20000000000D3 +:0447E30000000000D2 +:0447E40000000000D1 +:0447E50000000000D0 +:0447E60000000000CF +:0447E70000000000CE +:0447E80000000000CD +:0447E90000000000CC +:0447EA0000000000CB +:0447EB0000000000CA +:0447EC0000000000C9 +:0447ED0000000000C8 +:0447EE0000000000C7 +:0447EF0000000000C6 +:0447F00000000000C5 +:0447F10000000000C4 +:0447F20000000000C3 +:0447F30000000000C2 +:0447F40000000000C1 +:0447F50000000000C0 +:0447F60000000000BF +:0447F70000000000BE +:0447F80000000000BD +:0447F90000000000BC +:0447FA0000000000BB +:0447FB0000000000BA +:0447FC0000000000B9 +:0447FD0000000000B8 +:0447FE0000000000B7 +:0447FF0000000000B6 +:0448000000000000B4 +:0448010000000000B3 +:0448020000000000B2 +:0448030000000000B1 +:0448040000000000B0 +:0448050000000000AF +:0448060000000000AE +:0448070000000000AD +:0448080000000000AC +:0448090000000000AB +:04480A0000000000AA +:04480B0000000000A9 +:04480C0000000000A8 +:04480D0000000000A7 +:04480E0000000000A6 +:04480F0000000000A5 +:0448100000000000A4 +:0448110000000000A3 +:0448120000000000A2 +:0448130000000000A1 +:0448140000000000A0 +:04481500000000009F +:04481600000000009E +:04481700000000009D +:04481800000000009C +:04481900000000009B +:04481A00000000009A +:04481B000000000099 +:04481C000000000098 +:04481D000000000097 +:04481E000000000096 +:04481F000000000095 +:044820000000000094 +:044821000000000093 +:044822000000000092 +:044823000000000091 +:044824000000000090 +:04482500000000008F +:04482600000000008E +:04482700000000008D +:04482800000000008C +:04482900000000008B +:04482A00000000008A +:04482B000000000089 +:04482C000000000088 +:04482D000000000087 +:04482E000000000086 +:04482F000000000085 +:044830000000000084 +:044831000000000083 +:044832000000000082 +:044833000000000081 +:044834000000000080 +:04483500000000007F +:04483600000000007E +:04483700000000007D +:04483800000000007C +:04483900000000007B +:04483A00000000007A +:04483B000000000079 +:04483C000000000078 +:04483D000000000077 +:04483E000000000076 +:04483F000000000075 +:044840000000000074 +:044841000000000073 +:044842000000000072 +:044843000000000071 +:044844000000000070 +:04484500000000006F +:04484600000000006E +:04484700000000006D +:04484800000000006C +:04484900000000006B +:04484A00000000006A +:04484B000000000069 +:04484C000000000068 +:04484D000000000067 +:04484E000000000066 +:04484F000000000065 +:044850000000000064 +:044851000000000063 +:044852000000000062 +:044853000000000061 +:044854000000000060 +:04485500000000005F +:04485600000000005E +:04485700000000005D +:04485800000000005C +:04485900000000005B +:04485A00000000005A +:04485B000000000059 +:04485C000000000058 +:04485D000000000057 +:04485E000000000056 +:04485F000000000055 +:044860000000000054 +:044861000000000053 +:044862000000000052 +:044863000000000051 +:044864000000000050 +:04486500000000004F +:04486600000000004E +:04486700000000004D +:04486800000000004C +:04486900000000004B +:04486A00000000004A +:04486B000000000049 +:04486C000000000048 +:04486D000000000047 +:04486E000000000046 +:04486F000000000045 +:044870000000000044 +:044871000000000043 +:044872000000000042 +:044873000000000041 +:044874000000000040 +:04487500000000003F +:04487600000000003E +:04487700000000003D +:04487800000000003C +:04487900000000003B +:04487A00000000003A +:04487B000000000039 +:04487C000000000038 +:04487D000000000037 +:04487E000000000036 +:04487F000000000035 +:044880000000000034 +:044881000000000033 +:044882000000000032 +:044883000000000031 +:044884000000000030 +:04488500000000002F +:04488600000000002E +:04488700000000002D +:04488800000000002C +:04488900000000002B +:04488A00000000002A +:04488B000000000029 +:04488C000000000028 +:04488D000000000027 +:04488E000000000026 +:04488F000000000025 +:044890000000000024 +:044891000000000023 +:044892000000000022 +:044893000000000021 +:044894000000000020 +:04489500000000001F +:04489600000000001E +:04489700000000001D +:04489800000000001C +:04489900000000001B +:04489A00000000001A +:04489B000000000019 +:04489C000000000018 +:04489D000000000017 +:04489E000000000016 +:04489F000000000015 +:0448A0000000000014 +:0448A1000000000013 +:0448A2000000000012 +:0448A3000000000011 +:0448A4000000000010 +:0448A500000000000F +:0448A600000000000E +:0448A700000000000D +:0448A800000000000C +:0448A900000000000B +:0448AA00000000000A +:0448AB000000000009 +:0448AC000000000008 +:0448AD000000000007 +:0448AE000000000006 +:0448AF000000000005 +:0448B0000000000004 +:0448B1000000000003 +:0448B2000000000002 +:0448B3000000000001 +:0448B4000000000000 +:0448B50000000000FF +:0448B60000000000FE +:0448B70000000000FD +:0448B80000000000FC +:0448B90000000000FB +:0448BA0000000000FA +:0448BB0000000000F9 +:0448BC0000000000F8 +:0448BD0000000000F7 +:0448BE0000000000F6 +:0448BF0000000000F5 +:0448C00000000000F4 +:0448C10000000000F3 +:0448C20000000000F2 +:0448C30000000000F1 +:0448C40000000000F0 +:0448C50000000000EF +:0448C60000000000EE +:0448C70000000000ED +:0448C80000000000EC +:0448C90000000000EB +:0448CA0000000000EA +:0448CB0000000000E9 +:0448CC0000000000E8 +:0448CD0000000000E7 +:0448CE0000000000E6 +:0448CF0000000000E5 +:0448D00000000000E4 +:0448D10000000000E3 +:0448D20000000000E2 +:0448D30000000000E1 +:0448D40000000000E0 +:0448D50000000000DF +:0448D60000000000DE +:0448D70000000000DD +:0448D80000000000DC +:0448D90000000000DB +:0448DA0000000000DA +:0448DB0000000000D9 +:0448DC0000000000D8 +:0448DD0000000000D7 +:0448DE0000000000D6 +:0448DF0000000000D5 +:0448E00000000000D4 +:0448E10000000000D3 +:0448E20000000000D2 +:0448E30000000000D1 +:0448E40000000000D0 +:0448E50000000000CF +:0448E60000000000CE +:0448E70000000000CD +:0448E80000000000CC +:0448E90000000000CB +:0448EA0000000000CA +:0448EB0000000000C9 +:0448EC0000000000C8 +:0448ED0000000000C7 +:0448EE0000000000C6 +:0448EF0000000000C5 +:0448F00000000000C4 +:0448F10000000000C3 +:0448F20000000000C2 +:0448F30000000000C1 +:0448F40000000000C0 +:0448F50000000000BF +:0448F60000000000BE +:0448F70000000000BD +:0448F80000000000BC +:0448F90000000000BB +:0448FA0000000000BA +:0448FB0000000000B9 +:0448FC0000000000B8 +:0448FD0000000000B7 +:0448FE0000000000B6 +:0448FF0000000000B5 +:0449000000000000B3 +:0449010000000000B2 +:0449020000000000B1 +:0449030000000000B0 +:0449040000000000AF +:0449050000000000AE +:0449060000000000AD +:0449070000000000AC +:0449080000000000AB +:0449090000000000AA +:04490A0000000000A9 +:04490B0000000000A8 +:04490C0000000000A7 +:04490D0000000000A6 +:04490E0000000000A5 +:04490F0000000000A4 +:0449100000000000A3 +:0449110000000000A2 +:0449120000000000A1 +:0449130000000000A0 +:04491400000000009F +:04491500000000009E +:04491600000000009D +:04491700000000009C +:04491800000000009B +:04491900000000009A +:04491A000000000099 +:04491B000000000098 +:04491C000000000097 +:04491D000000000096 +:04491E000000000095 +:04491F000000000094 +:044920000000000093 +:044921000000000092 +:044922000000000091 +:044923000000000090 +:04492400000000008F +:04492500000000008E +:04492600000000008D +:04492700000000008C +:04492800000000008B +:04492900000000008A +:04492A000000000089 +:04492B000000000088 +:04492C000000000087 +:04492D000000000086 +:04492E000000000085 +:04492F000000000084 +:044930000000000083 +:044931000000000082 +:044932000000000081 +:044933000000000080 +:04493400000000007F +:04493500000000007E +:04493600000000007D +:04493700000000007C +:04493800000000007B +:04493900000000007A +:04493A000000000079 +:04493B000000000078 +:04493C000000000077 +:04493D000000000076 +:04493E000000000075 +:04493F000000000074 +:044940000000000073 +:044941000000000072 +:044942000000000071 +:044943000000000070 +:04494400000000006F +:04494500000000006E +:04494600000000006D +:04494700000000006C +:04494800000000006B +:04494900000000006A +:04494A000000000069 +:04494B000000000068 +:04494C000000000067 +:04494D000000000066 +:04494E000000000065 +:04494F000000000064 +:044950000000000063 +:044951000000000062 +:044952000000000061 +:044953000000000060 +:04495400000000005F +:04495500000000005E +:04495600000000005D +:04495700000000005C +:04495800000000005B +:04495900000000005A +:04495A000000000059 +:04495B000000000058 +:04495C000000000057 +:04495D000000000056 +:04495E000000000055 +:04495F000000000054 +:044960000000000053 +:044961000000000052 +:044962000000000051 +:044963000000000050 +:04496400000000004F +:04496500000000004E +:04496600000000004D +:04496700000000004C +:04496800000000004B +:04496900000000004A +:04496A000000000049 +:04496B000000000048 +:04496C000000000047 +:04496D000000000046 +:04496E000000000045 +:04496F000000000044 +:044970000000000043 +:044971000000000042 +:044972000000000041 +:044973000000000040 +:04497400000000003F +:04497500000000003E +:04497600000000003D +:04497700000000003C +:04497800000000003B +:04497900000000003A +:04497A000000000039 +:04497B000000000038 +:04497C000000000037 +:04497D000000000036 +:04497E000000000035 +:04497F000000000034 +:044980000000000033 +:044981000000000032 +:044982000000000031 +:044983000000000030 +:04498400000000002F +:04498500000000002E +:04498600000000002D +:04498700000000002C +:04498800000000002B +:04498900000000002A +:04498A000000000029 +:04498B000000000028 +:04498C000000000027 +:04498D000000000026 +:04498E000000000025 +:04498F000000000024 +:044990000000000023 +:044991000000000022 +:044992000000000021 +:044993000000000020 +:04499400000000001F +:04499500000000001E +:04499600000000001D +:04499700000000001C +:04499800000000001B +:04499900000000001A +:04499A000000000019 +:04499B000000000018 +:04499C000000000017 +:04499D000000000016 +:04499E000000000015 +:04499F000000000014 +:0449A0000000000013 +:0449A1000000000012 +:0449A2000000000011 +:0449A3000000000010 +:0449A400000000000F +:0449A500000000000E +:0449A600000000000D +:0449A700000000000C +:0449A800000000000B +:0449A900000000000A +:0449AA000000000009 +:0449AB000000000008 +:0449AC000000000007 +:0449AD000000000006 +:0449AE000000000005 +:0449AF000000000004 +:0449B0000000000003 +:0449B1000000000002 +:0449B2000000000001 +:0449B3000000000000 +:0449B40000000000FF +:0449B50000000000FE +:0449B60000000000FD +:0449B70000000000FC +:0449B80000000000FB +:0449B90000000000FA +:0449BA0000000000F9 +:0449BB0000000000F8 +:0449BC0000000000F7 +:0449BD0000000000F6 +:0449BE0000000000F5 +:0449BF0000000000F4 +:0449C00000000000F3 +:0449C10000000000F2 +:0449C20000000000F1 +:0449C30000000000F0 +:0449C40000000000EF +:0449C50000000000EE +:0449C60000000000ED +:0449C70000000000EC +:0449C80000000000EB +:0449C90000000000EA +:0449CA0000000000E9 +:0449CB0000000000E8 +:0449CC0000000000E7 +:0449CD0000000000E6 +:0449CE0000000000E5 +:0449CF0000000000E4 +:0449D00000000000E3 +:0449D10000000000E2 +:0449D20000000000E1 +:0449D30000000000E0 +:0449D40000000000DF +:0449D50000000000DE +:0449D60000000000DD +:0449D70000000000DC +:0449D80000000000DB +:0449D90000000000DA +:0449DA0000000000D9 +:0449DB0000000000D8 +:0449DC0000000000D7 +:0449DD0000000000D6 +:0449DE0000000000D5 +:0449DF0000000000D4 +:0449E00000000000D3 +:0449E10000000000D2 +:0449E20000000000D1 +:0449E30000000000D0 +:0449E40000000000CF +:0449E50000000000CE +:0449E60000000000CD +:0449E70000000000CC +:0449E80000000000CB +:0449E90000000000CA +:0449EA0000000000C9 +:0449EB0000000000C8 +:0449EC0000000000C7 +:0449ED0000000000C6 +:0449EE0000000000C5 +:0449EF0000000000C4 +:0449F00000000000C3 +:0449F10000000000C2 +:0449F20000000000C1 +:0449F30000000000C0 +:0449F40000000000BF +:0449F50000000000BE +:0449F60000000000BD +:0449F70000000000BC +:0449F80000000000BB +:0449F90000000000BA +:0449FA0000000000B9 +:0449FB0000000000B8 +:0449FC0000000000B7 +:0449FD0000000000B6 +:0449FE0000000000B5 +:0449FF0000000000B4 +:044A000000000000B2 +:044A010000000000B1 +:044A020000000000B0 +:044A030000000000AF +:044A040000000000AE +:044A050000000000AD +:044A060000000000AC +:044A070000000000AB +:044A080000000000AA +:044A090000000000A9 +:044A0A0000000000A8 +:044A0B0000000000A7 +:044A0C0000000000A6 +:044A0D0000000000A5 +:044A0E0000000000A4 +:044A0F0000000000A3 +:044A100000000000A2 +:044A110000000000A1 +:044A120000000000A0 +:044A1300000000009F +:044A1400000000009E +:044A1500000000009D +:044A1600000000009C +:044A1700000000009B +:044A1800000000009A +:044A19000000000099 +:044A1A000000000098 +:044A1B000000000097 +:044A1C000000000096 +:044A1D000000000095 +:044A1E000000000094 +:044A1F000000000093 +:044A20000000000092 +:044A21000000000091 +:044A22000000000090 +:044A2300000000008F +:044A2400000000008E +:044A2500000000008D +:044A2600000000008C +:044A2700000000008B +:044A2800000000008A +:044A29000000000089 +:044A2A000000000088 +:044A2B000000000087 +:044A2C000000000086 +:044A2D000000000085 +:044A2E000000000084 +:044A2F000000000083 +:044A30000000000082 +:044A31000000000081 +:044A32000000000080 +:044A3300000000007F +:044A3400000000007E +:044A3500000000007D +:044A3600000000007C +:044A3700000000007B +:044A3800000000007A +:044A39000000000079 +:044A3A000000000078 +:044A3B000000000077 +:044A3C000000000076 +:044A3D000000000075 +:044A3E000000000074 +:044A3F000000000073 +:044A40000000000072 +:044A41000000000071 +:044A42000000000070 +:044A4300000000006F +:044A4400000000006E +:044A4500000000006D +:044A4600000000006C +:044A4700000000006B +:044A4800000000006A +:044A49000000000069 +:044A4A000000000068 +:044A4B000000000067 +:044A4C000000000066 +:044A4D000000000065 +:044A4E000000000064 +:044A4F000000000063 +:044A50000000000062 +:044A51000000000061 +:044A52000000000060 +:044A5300000000005F +:044A5400000000005E +:044A5500000000005D +:044A5600000000005C +:044A5700000000005B +:044A5800000000005A +:044A59000000000059 +:044A5A000000000058 +:044A5B000000000057 +:044A5C000000000056 +:044A5D000000000055 +:044A5E000000000054 +:044A5F000000000053 +:044A60000000000052 +:044A61000000000051 +:044A62000000000050 +:044A6300000000004F +:044A6400000000004E +:044A6500000000004D +:044A6600000000004C +:044A6700000000004B +:044A6800000000004A +:044A69000000000049 +:044A6A000000000048 +:044A6B000000000047 +:044A6C000000000046 +:044A6D000000000045 +:044A6E000000000044 +:044A6F000000000043 +:044A70000000000042 +:044A71000000000041 +:044A72000000000040 +:044A7300000000003F +:044A7400000000003E +:044A7500000000003D +:044A7600000000003C +:044A7700000000003B +:044A7800000000003A +:044A79000000000039 +:044A7A000000000038 +:044A7B000000000037 +:044A7C000000000036 +:044A7D000000000035 +:044A7E000000000034 +:044A7F000000000033 +:044A80000000000032 +:044A81000000000031 +:044A82000000000030 +:044A8300000000002F +:044A8400000000002E +:044A8500000000002D +:044A8600000000002C +:044A8700000000002B +:044A8800000000002A +:044A89000000000029 +:044A8A000000000028 +:044A8B000000000027 +:044A8C000000000026 +:044A8D000000000025 +:044A8E000000000024 +:044A8F000000000023 +:044A90000000000022 +:044A91000000000021 +:044A92000000000020 +:044A9300000000001F +:044A9400000000001E +:044A9500000000001D +:044A9600000000001C +:044A9700000000001B +:044A9800000000001A +:044A99000000000019 +:044A9A000000000018 +:044A9B000000000017 +:044A9C000000000016 +:044A9D000000000015 +:044A9E000000000014 +:044A9F000000000013 +:044AA0000000000012 +:044AA1000000000011 +:044AA2000000000010 +:044AA300000000000F +:044AA400000000000E +:044AA500000000000D +:044AA600000000000C +:044AA700000000000B +:044AA800000000000A +:044AA9000000000009 +:044AAA000000000008 +:044AAB000000000007 +:044AAC000000000006 +:044AAD000000000005 +:044AAE000000000004 +:044AAF000000000003 +:044AB0000000000002 +:044AB1000000000001 +:044AB2000000000000 +:044AB30000000000FF +:044AB40000000000FE +:044AB50000000000FD +:044AB60000000000FC +:044AB70000000000FB +:044AB80000000000FA +:044AB90000000000F9 +:044ABA0000000000F8 +:044ABB0000000000F7 +:044ABC0000000000F6 +:044ABD0000000000F5 +:044ABE0000000000F4 +:044ABF0000000000F3 +:044AC00000000000F2 +:044AC10000000000F1 +:044AC20000000000F0 +:044AC30000000000EF +:044AC40000000000EE +:044AC50000000000ED +:044AC60000000000EC +:044AC70000000000EB +:044AC80000000000EA +:044AC90000000000E9 +:044ACA0000000000E8 +:044ACB0000000000E7 +:044ACC0000000000E6 +:044ACD0000000000E5 +:044ACE0000000000E4 +:044ACF0000000000E3 +:044AD00000000000E2 +:044AD10000000000E1 +:044AD20000000000E0 +:044AD30000000000DF +:044AD40000000000DE +:044AD50000000000DD +:044AD60000000000DC +:044AD70000000000DB +:044AD80000000000DA +:044AD90000000000D9 +:044ADA0000000000D8 +:044ADB0000000000D7 +:044ADC0000000000D6 +:044ADD0000000000D5 +:044ADE0000000000D4 +:044ADF0000000000D3 +:044AE00000000000D2 +:044AE10000000000D1 +:044AE20000000000D0 +:044AE30000000000CF +:044AE40000000000CE +:044AE50000000000CD +:044AE60000000000CC +:044AE70000000000CB +:044AE80000000000CA +:044AE90000000000C9 +:044AEA0000000000C8 +:044AEB0000000000C7 +:044AEC0000000000C6 +:044AED0000000000C5 +:044AEE0000000000C4 +:044AEF0000000000C3 +:044AF00000000000C2 +:044AF10000000000C1 +:044AF20000000000C0 +:044AF30000000000BF +:044AF40000000000BE +:044AF50000000000BD +:044AF60000000000BC +:044AF70000000000BB +:044AF80000000000BA +:044AF90000000000B9 +:044AFA0000000000B8 +:044AFB0000000000B7 +:044AFC0000000000B6 +:044AFD0000000000B5 +:044AFE0000000000B4 +:044AFF0000000000B3 +:044B000000000000B1 +:044B010000000000B0 +:044B020000000000AF +:044B030000000000AE +:044B040000000000AD +:044B050000000000AC +:044B060000000000AB +:044B070000000000AA +:044B080000000000A9 +:044B090000000000A8 +:044B0A0000000000A7 +:044B0B0000000000A6 +:044B0C0000000000A5 +:044B0D0000000000A4 +:044B0E0000000000A3 +:044B0F0000000000A2 +:044B100000000000A1 +:044B110000000000A0 +:044B1200000000009F +:044B1300000000009E +:044B1400000000009D +:044B1500000000009C +:044B1600000000009B +:044B1700000000009A +:044B18000000000099 +:044B19000000000098 +:044B1A000000000097 +:044B1B000000000096 +:044B1C000000000095 +:044B1D000000000094 +:044B1E000000000093 +:044B1F000000000092 +:044B20000000000091 +:044B21000000000090 +:044B2200000000008F +:044B2300000000008E +:044B2400000000008D +:044B2500000000008C +:044B2600000000008B +:044B2700000000008A +:044B28000000000089 +:044B29000000000088 +:044B2A000000000087 +:044B2B000000000086 +:044B2C000000000085 +:044B2D000000000084 +:044B2E000000000083 +:044B2F000000000082 +:044B30000000000081 +:044B31000000000080 +:044B3200000000007F +:044B3300000000007E +:044B3400000000007D +:044B3500000000007C +:044B3600000000007B +:044B3700000000007A +:044B38000000000079 +:044B39000000000078 +:044B3A000000000077 +:044B3B000000000076 +:044B3C000000000075 +:044B3D000000000074 +:044B3E000000000073 +:044B3F000000000072 +:044B40000000000071 +:044B41000000000070 +:044B4200000000006F +:044B4300000000006E +:044B4400000000006D +:044B4500000000006C +:044B4600000000006B +:044B4700000000006A +:044B48000000000069 +:044B49000000000068 +:044B4A000000000067 +:044B4B000000000066 +:044B4C000000000065 +:044B4D000000000064 +:044B4E000000000063 +:044B4F000000000062 +:044B50000000000061 +:044B51000000000060 +:044B5200000000005F +:044B5300000000005E +:044B5400000000005D +:044B5500000000005C +:044B5600000000005B +:044B5700000000005A +:044B58000000000059 +:044B59000000000058 +:044B5A000000000057 +:044B5B000000000056 +:044B5C000000000055 +:044B5D000000000054 +:044B5E000000000053 +:044B5F000000000052 +:044B60000000000051 +:044B61000000000050 +:044B6200000000004F +:044B6300000000004E +:044B6400000000004D +:044B6500000000004C +:044B6600000000004B +:044B6700000000004A +:044B68000000000049 +:044B69000000000048 +:044B6A000000000047 +:044B6B000000000046 +:044B6C000000000045 +:044B6D000000000044 +:044B6E000000000043 +:044B6F000000000042 +:044B70000000000041 +:044B71000000000040 +:044B7200000000003F +:044B7300000000003E +:044B7400000000003D +:044B7500000000003C +:044B7600000000003B +:044B7700000000003A +:044B78000000000039 +:044B79000000000038 +:044B7A000000000037 +:044B7B000000000036 +:044B7C000000000035 +:044B7D000000000034 +:044B7E000000000033 +:044B7F000000000032 +:044B80000000000031 +:044B81000000000030 +:044B8200000000002F +:044B8300000000002E +:044B8400000000002D +:044B8500000000002C +:044B8600000000002B +:044B8700000000002A +:044B88000000000029 +:044B89000000000028 +:044B8A000000000027 +:044B8B000000000026 +:044B8C000000000025 +:044B8D000000000024 +:044B8E000000000023 +:044B8F000000000022 +:044B90000000000021 +:044B91000000000020 +:044B9200000000001F +:044B9300000000001E +:044B9400000000001D +:044B9500000000001C +:044B9600000000001B +:044B9700000000001A +:044B98000000000019 +:044B99000000000018 +:044B9A000000000017 +:044B9B000000000016 +:044B9C000000000015 +:044B9D000000000014 +:044B9E000000000013 +:044B9F000000000012 +:044BA0000000000011 +:044BA1000000000010 +:044BA200000000000F +:044BA300000000000E +:044BA400000000000D +:044BA500000000000C +:044BA600000000000B +:044BA700000000000A +:044BA8000000000009 +:044BA9000000000008 +:044BAA000000000007 +:044BAB000000000006 +:044BAC000000000005 +:044BAD000000000004 +:044BAE000000000003 +:044BAF000000000002 +:044BB0000000000001 +:044BB1000000000000 +:044BB20000000000FF +:044BB30000000000FE +:044BB40000000000FD +:044BB50000000000FC +:044BB60000000000FB +:044BB70000000000FA +:044BB80000000000F9 +:044BB90000000000F8 +:044BBA0000000000F7 +:044BBB0000000000F6 +:044BBC0000000000F5 +:044BBD0000000000F4 +:044BBE0000000000F3 +:044BBF0000000000F2 +:044BC00000000000F1 +:044BC10000000000F0 +:044BC20000000000EF +:044BC30000000000EE +:044BC40000000000ED +:044BC50000000000EC +:044BC60000000000EB +:044BC70000000000EA +:044BC80000000000E9 +:044BC90000000000E8 +:044BCA0000000000E7 +:044BCB0000000000E6 +:044BCC0000000000E5 +:044BCD0000000000E4 +:044BCE0000000000E3 +:044BCF0000000000E2 +:044BD00000000000E1 +:044BD10000000000E0 +:044BD20000000000DF +:044BD30000000000DE +:044BD40000000000DD +:044BD50000000000DC +:044BD60000000000DB +:044BD70000000000DA +:044BD80000000000D9 +:044BD90000000000D8 +:044BDA0000000000D7 +:044BDB0000000000D6 +:044BDC0000000000D5 +:044BDD0000000000D4 +:044BDE0000000000D3 +:044BDF0000000000D2 +:044BE00000000000D1 +:044BE10000000000D0 +:044BE20000000000CF +:044BE30000000000CE +:044BE40000000000CD +:044BE50000000000CC +:044BE60000000000CB +:044BE70000000000CA +:044BE80000000000C9 +:044BE90000000000C8 +:044BEA0000000000C7 +:044BEB0000000000C6 +:044BEC0000000000C5 +:044BED0000000000C4 +:044BEE0000000000C3 +:044BEF0000000000C2 +:044BF00000000000C1 +:044BF10000000000C0 +:044BF20000000000BF +:044BF30000000000BE +:044BF40000000000BD +:044BF50000000000BC +:044BF60000000000BB +:044BF70000000000BA +:044BF80000000000B9 +:044BF90000000000B8 +:044BFA0000000000B7 +:044BFB0000000000B6 +:044BFC0000000000B5 +:044BFD0000000000B4 +:044BFE0000000000B3 +:044BFF0000000000B2 +:044C000000000000B0 +:044C010000000000AF +:044C020000000000AE +:044C030000000000AD +:044C040000000000AC +:044C050000000000AB +:044C060000000000AA +:044C070000000000A9 +:044C080000000000A8 +:044C090000000000A7 +:044C0A0000000000A6 +:044C0B0000000000A5 +:044C0C0000000000A4 +:044C0D0000000000A3 +:044C0E0000000000A2 +:044C0F0000000000A1 +:044C100000000000A0 +:044C1100000000009F +:044C1200000000009E +:044C1300000000009D +:044C1400000000009C +:044C1500000000009B +:044C1600000000009A +:044C17000000000099 +:044C18000000000098 +:044C19000000000097 +:044C1A000000000096 +:044C1B000000000095 +:044C1C000000000094 +:044C1D000000000093 +:044C1E000000000092 +:044C1F000000000091 +:044C20000000000090 +:044C2100000000008F +:044C2200000000008E +:044C2300000000008D +:044C2400000000008C +:044C2500000000008B +:044C2600000000008A +:044C27000000000089 +:044C28000000000088 +:044C29000000000087 +:044C2A000000000086 +:044C2B000000000085 +:044C2C000000000084 +:044C2D000000000083 +:044C2E000000000082 +:044C2F000000000081 +:044C30000000000080 +:044C3100000000007F +:044C3200000000007E +:044C3300000000007D +:044C3400000000007C +:044C3500000000007B +:044C3600000000007A +:044C37000000000079 +:044C38000000000078 +:044C39000000000077 +:044C3A000000000076 +:044C3B000000000075 +:044C3C000000000074 +:044C3D000000000073 +:044C3E000000000072 +:044C3F000000000071 +:044C40000000000070 +:044C4100000000006F +:044C4200000000006E +:044C4300000000006D +:044C4400000000006C +:044C4500000000006B +:044C4600000000006A +:044C47000000000069 +:044C48000000000068 +:044C49000000000067 +:044C4A000000000066 +:044C4B000000000065 +:044C4C000000000064 +:044C4D000000000063 +:044C4E000000000062 +:044C4F000000000061 +:044C50000000000060 +:044C5100000000005F +:044C5200000000005E +:044C5300000000005D +:044C5400000000005C +:044C5500000000005B +:044C5600000000005A +:044C57000000000059 +:044C58000000000058 +:044C59000000000057 +:044C5A000000000056 +:044C5B000000000055 +:044C5C000000000054 +:044C5D000000000053 +:044C5E000000000052 +:044C5F000000000051 +:044C60000000000050 +:044C6100000000004F +:044C6200000000004E +:044C6300000000004D +:044C6400000000004C +:044C6500000000004B +:044C6600000000004A +:044C67000000000049 +:044C68000000000048 +:044C69000000000047 +:044C6A000000000046 +:044C6B000000000045 +:044C6C000000000044 +:044C6D000000000043 +:044C6E000000000042 +:044C6F000000000041 +:044C70000000000040 +:044C7100000000003F +:044C7200000000003E +:044C7300000000003D +:044C7400000000003C +:044C7500000000003B +:044C7600000000003A +:044C77000000000039 +:044C78000000000038 +:044C79000000000037 +:044C7A000000000036 +:044C7B000000000035 +:044C7C000000000034 +:044C7D000000000033 +:044C7E000000000032 +:044C7F000000000031 +:044C80000000000030 +:044C8100000000002F +:044C8200000000002E +:044C8300000000002D +:044C8400000000002C +:044C8500000000002B +:044C8600000000002A +:044C87000000000029 +:044C88000000000028 +:044C89000000000027 +:044C8A000000000026 +:044C8B000000000025 +:044C8C000000000024 +:044C8D000000000023 +:044C8E000000000022 +:044C8F000000000021 +:044C90000000000020 +:044C9100000000001F +:044C9200000000001E +:044C9300000000001D +:044C9400000000001C +:044C9500000000001B +:044C9600000000001A +:044C97000000000019 +:044C98000000000018 +:044C99000000000017 +:044C9A000000000016 +:044C9B000000000015 +:044C9C000000000014 +:044C9D000000000013 +:044C9E000000000012 +:044C9F000000000011 +:044CA0000000000010 +:044CA100000000000F +:044CA200000000000E +:044CA300000000000D +:044CA400000000000C +:044CA500000000000B +:044CA600000000000A +:044CA7000000000009 +:044CA8000000000008 +:044CA9000000000007 +:044CAA000000000006 +:044CAB000000000005 +:044CAC000000000004 +:044CAD000000000003 +:044CAE000000000002 +:044CAF000000000001 +:044CB0000000000000 +:044CB10000000000FF +:044CB20000000000FE +:044CB30000000000FD +:044CB40000000000FC +:044CB50000000000FB +:044CB60000000000FA +:044CB70000000000F9 +:044CB80000000000F8 +:044CB90000000000F7 +:044CBA0000000000F6 +:044CBB0000000000F5 +:044CBC0000000000F4 +:044CBD0000000000F3 +:044CBE0000000000F2 +:044CBF0000000000F1 +:044CC00000000000F0 +:044CC10000000000EF +:044CC20000000000EE +:044CC30000000000ED +:044CC40000000000EC +:044CC50000000000EB +:044CC60000000000EA +:044CC70000000000E9 +:044CC80000000000E8 +:044CC90000000000E7 +:044CCA0000000000E6 +:044CCB0000000000E5 +:044CCC0000000000E4 +:044CCD0000000000E3 +:044CCE0000000000E2 +:044CCF0000000000E1 +:044CD00000000000E0 +:044CD10000000000DF +:044CD20000000000DE +:044CD30000000000DD +:044CD40000000000DC +:044CD50000000000DB +:044CD60000000000DA +:044CD70000000000D9 +:044CD80000000000D8 +:044CD90000000000D7 +:044CDA0000000000D6 +:044CDB0000000000D5 +:044CDC0000000000D4 +:044CDD0000000000D3 +:044CDE0000000000D2 +:044CDF0000000000D1 +:044CE00000000000D0 +:044CE10000000000CF +:044CE20000000000CE +:044CE30000000000CD +:044CE40000000000CC +:044CE50000000000CB +:044CE60000000000CA +:044CE70000000000C9 +:044CE80000000000C8 +:044CE90000000000C7 +:044CEA0000000000C6 +:044CEB0000000000C5 +:044CEC0000000000C4 +:044CED0000000000C3 +:044CEE0000000000C2 +:044CEF0000000000C1 +:044CF00000000000C0 +:044CF10000000000BF +:044CF20000000000BE +:044CF30000000000BD +:044CF40000000000BC +:044CF50000000000BB +:044CF60000000000BA +:044CF70000000000B9 +:044CF80000000000B8 +:044CF90000000000B7 +:044CFA0000000000B6 +:044CFB0000000000B5 +:044CFC0000000000B4 +:044CFD0000000000B3 +:044CFE0000000000B2 +:044CFF0000000000B1 +:044D000000000000AF +:044D010000000000AE +:044D020000000000AD +:044D030000000000AC +:044D040000000000AB +:044D050000000000AA +:044D060000000000A9 +:044D070000000000A8 +:044D080000000000A7 +:044D090000000000A6 +:044D0A0000000000A5 +:044D0B0000000000A4 +:044D0C0000000000A3 +:044D0D0000000000A2 +:044D0E0000000000A1 +:044D0F0000000000A0 +:044D1000000000009F +:044D1100000000009E +:044D1200000000009D +:044D1300000000009C +:044D1400000000009B +:044D1500000000009A +:044D16000000000099 +:044D17000000000098 +:044D18000000000097 +:044D19000000000096 +:044D1A000000000095 +:044D1B000000000094 +:044D1C000000000093 +:044D1D000000000092 +:044D1E000000000091 +:044D1F000000000090 +:044D2000000000008F +:044D2100000000008E +:044D2200000000008D +:044D2300000000008C +:044D2400000000008B +:044D2500000000008A +:044D26000000000089 +:044D27000000000088 +:044D28000000000087 +:044D29000000000086 +:044D2A000000000085 +:044D2B000000000084 +:044D2C000000000083 +:044D2D000000000082 +:044D2E000000000081 +:044D2F000000000080 +:044D3000000000007F +:044D3100000000007E +:044D3200000000007D +:044D3300000000007C +:044D3400000000007B +:044D3500000000007A +:044D36000000000079 +:044D37000000000078 +:044D38000000000077 +:044D39000000000076 +:044D3A000000000075 +:044D3B000000000074 +:044D3C000000000073 +:044D3D000000000072 +:044D3E000000000071 +:044D3F000000000070 +:044D4000000000006F +:044D4100000000006E +:044D4200000000006D +:044D4300000000006C +:044D4400000000006B +:044D4500000000006A +:044D46000000000069 +:044D47000000000068 +:044D48000000000067 +:044D49000000000066 +:044D4A000000000065 +:044D4B000000000064 +:044D4C000000000063 +:044D4D000000000062 +:044D4E000000000061 +:044D4F000000000060 +:044D5000000000005F +:044D5100000000005E +:044D5200000000005D +:044D5300000000005C +:044D5400000000005B +:044D5500000000005A +:044D56000000000059 +:044D57000000000058 +:044D58000000000057 +:044D59000000000056 +:044D5A000000000055 +:044D5B000000000054 +:044D5C000000000053 +:044D5D000000000052 +:044D5E000000000051 +:044D5F000000000050 +:044D6000000000004F +:044D6100000000004E +:044D6200000000004D +:044D6300000000004C +:044D6400000000004B +:044D6500000000004A +:044D66000000000049 +:044D67000000000048 +:044D68000000000047 +:044D69000000000046 +:044D6A000000000045 +:044D6B000000000044 +:044D6C000000000043 +:044D6D000000000042 +:044D6E000000000041 +:044D6F000000000040 +:044D7000000000003F +:044D7100000000003E +:044D7200000000003D +:044D7300000000003C +:044D7400000000003B +:044D7500000000003A +:044D76000000000039 +:044D77000000000038 +:044D78000000000037 +:044D79000000000036 +:044D7A000000000035 +:044D7B000000000034 +:044D7C000000000033 +:044D7D000000000032 +:044D7E000000000031 +:044D7F000000000030 +:044D8000000000002F +:044D8100000000002E +:044D8200000000002D +:044D8300000000002C +:044D8400000000002B +:044D8500000000002A +:044D86000000000029 +:044D87000000000028 +:044D88000000000027 +:044D89000000000026 +:044D8A000000000025 +:044D8B000000000024 +:044D8C000000000023 +:044D8D000000000022 +:044D8E000000000021 +:044D8F000000000020 +:044D9000000000001F +:044D9100000000001E +:044D9200000000001D +:044D9300000000001C +:044D9400000000001B +:044D9500000000001A +:044D96000000000019 +:044D97000000000018 +:044D98000000000017 +:044D99000000000016 +:044D9A000000000015 +:044D9B000000000014 +:044D9C000000000013 +:044D9D000000000012 +:044D9E000000000011 +:044D9F000000000010 +:044DA000000000000F +:044DA100000000000E +:044DA200000000000D +:044DA300000000000C +:044DA400000000000B +:044DA500000000000A +:044DA6000000000009 +:044DA7000000000008 +:044DA8000000000007 +:044DA9000000000006 +:044DAA000000000005 +:044DAB000000000004 +:044DAC000000000003 +:044DAD000000000002 +:044DAE000000000001 +:044DAF000000000000 +:044DB00000000000FF +:044DB10000000000FE +:044DB20000000000FD +:044DB30000000000FC +:044DB40000000000FB +:044DB50000000000FA +:044DB60000000000F9 +:044DB70000000000F8 +:044DB80000000000F7 +:044DB90000000000F6 +:044DBA0000000000F5 +:044DBB0000000000F4 +:044DBC0000000000F3 +:044DBD0000000000F2 +:044DBE0000000000F1 +:044DBF0000000000F0 +:044DC00000000000EF +:044DC10000000000EE +:044DC20000000000ED +:044DC30000000000EC +:044DC40000000000EB +:044DC50000000000EA +:044DC60000000000E9 +:044DC70000000000E8 +:044DC80000000000E7 +:044DC90000000000E6 +:044DCA0000000000E5 +:044DCB0000000000E4 +:044DCC0000000000E3 +:044DCD0000000000E2 +:044DCE0000000000E1 +:044DCF0000000000E0 +:044DD00000000000DF +:044DD10000000000DE +:044DD20000000000DD +:044DD30000000000DC +:044DD40000000000DB +:044DD50000000000DA +:044DD60000000000D9 +:044DD70000000000D8 +:044DD80000000000D7 +:044DD90000000000D6 +:044DDA0000000000D5 +:044DDB0000000000D4 +:044DDC0000000000D3 +:044DDD0000000000D2 +:044DDE0000000000D1 +:044DDF0000000000D0 +:044DE00000000000CF +:044DE10000000000CE +:044DE20000000000CD +:044DE30000000000CC +:044DE40000000000CB +:044DE50000000000CA +:044DE60000000000C9 +:044DE70000000000C8 +:044DE80000000000C7 +:044DE90000000000C6 +:044DEA0000000000C5 +:044DEB0000000000C4 +:044DEC0000000000C3 +:044DED0000000000C2 +:044DEE0000000000C1 +:044DEF0000000000C0 +:044DF00000000000BF +:044DF10000000000BE +:044DF20000000000BD +:044DF30000000000BC +:044DF40000000000BB +:044DF50000000000BA +:044DF60000000000B9 +:044DF70000000000B8 +:044DF80000000000B7 +:044DF90000000000B6 +:044DFA0000000000B5 +:044DFB0000000000B4 +:044DFC0000000000B3 +:044DFD0000000000B2 +:044DFE0000000000B1 +:044DFF0000000000B0 +:044E000000000000AE +:044E010000000000AD +:044E020000000000AC +:044E030000000000AB +:044E040000000000AA +:044E050000000000A9 +:044E060000000000A8 +:044E070000000000A7 +:044E080000000000A6 +:044E090000000000A5 +:044E0A0000000000A4 +:044E0B0000000000A3 +:044E0C0000000000A2 +:044E0D0000000000A1 +:044E0E0000000000A0 +:044E0F00000000009F +:044E1000000000009E +:044E1100000000009D +:044E1200000000009C +:044E1300000000009B +:044E1400000000009A +:044E15000000000099 +:044E16000000000098 +:044E17000000000097 +:044E18000000000096 +:044E19000000000095 +:044E1A000000000094 +:044E1B000000000093 +:044E1C000000000092 +:044E1D000000000091 +:044E1E000000000090 +:044E1F00000000008F +:044E2000000000008E +:044E2100000000008D +:044E2200000000008C +:044E2300000000008B +:044E2400000000008A +:044E25000000000089 +:044E26000000000088 +:044E27000000000087 +:044E28000000000086 +:044E29000000000085 +:044E2A000000000084 +:044E2B000000000083 +:044E2C000000000082 +:044E2D000000000081 +:044E2E000000000080 +:044E2F00000000007F +:044E3000000000007E +:044E3100000000007D +:044E3200000000007C +:044E3300000000007B +:044E3400000000007A +:044E35000000000079 +:044E36000000000078 +:044E37000000000077 +:044E38000000000076 +:044E39000000000075 +:044E3A000000000074 +:044E3B000000000073 +:044E3C000000000072 +:044E3D000000000071 +:044E3E000000000070 +:044E3F00000000006F +:044E4000000000006E +:044E4100000000006D +:044E4200000000006C +:044E4300000000006B +:044E4400000000006A +:044E45000000000069 +:044E46000000000068 +:044E47000000000067 +:044E48000000000066 +:044E49000000000065 +:044E4A000000000064 +:044E4B000000000063 +:044E4C000000000062 +:044E4D000000000061 +:044E4E000000000060 +:044E4F00000000005F +:044E5000000000005E +:044E5100000000005D +:044E5200000000005C +:044E5300000000005B +:044E5400000000005A +:044E55000000000059 +:044E56000000000058 +:044E57000000000057 +:044E58000000000056 +:044E59000000000055 +:044E5A000000000054 +:044E5B000000000053 +:044E5C000000000052 +:044E5D000000000051 +:044E5E000000000050 +:044E5F00000000004F +:044E6000000000004E +:044E6100000000004D +:044E6200000000004C +:044E6300000000004B +:044E6400000000004A +:044E65000000000049 +:044E66000000000048 +:044E67000000000047 +:044E68000000000046 +:044E69000000000045 +:044E6A000000000044 +:044E6B000000000043 +:044E6C000000000042 +:044E6D000000000041 +:044E6E000000000040 +:044E6F00000000003F +:044E7000000000003E +:044E7100000000003D +:044E7200000000003C +:044E7300000000003B +:044E7400000000003A +:044E75000000000039 +:044E76000000000038 +:044E77000000000037 +:044E78000000000036 +:044E79000000000035 +:044E7A000000000034 +:044E7B000000000033 +:044E7C000000000032 +:044E7D000000000031 +:044E7E000000000030 +:044E7F00000000002F +:044E8000000000002E +:044E8100000000002D +:044E8200000000002C +:044E8300000000002B +:044E8400000000002A +:044E85000000000029 +:044E86000000000028 +:044E87000000000027 +:044E88000000000026 +:044E89000000000025 +:044E8A000000000024 +:044E8B000000000023 +:044E8C000000000022 +:044E8D000000000021 +:044E8E000000000020 +:044E8F00000000001F +:044E9000000000001E +:044E9100000000001D +:044E9200000000001C +:044E9300000000001B +:044E9400000000001A +:044E95000000000019 +:044E96000000000018 +:044E97000000000017 +:044E98000000000016 +:044E99000000000015 +:044E9A000000000014 +:044E9B000000000013 +:044E9C000000000012 +:044E9D000000000011 +:044E9E000000000010 +:044E9F00000000000F +:044EA000000000000E +:044EA100000000000D +:044EA200000000000C +:044EA300000000000B +:044EA400000000000A +:044EA5000000000009 +:044EA6000000000008 +:044EA7000000000007 +:044EA8000000000006 +:044EA9000000000005 +:044EAA000000000004 +:044EAB000000000003 +:044EAC000000000002 +:044EAD000000000001 +:044EAE000000000000 +:044EAF0000000000FF +:044EB00000000000FE +:044EB10000000000FD +:044EB20000000000FC +:044EB30000000000FB +:044EB40000000000FA +:044EB50000000000F9 +:044EB60000000000F8 +:044EB70000000000F7 +:044EB80000000000F6 +:044EB90000000000F5 +:044EBA0000000000F4 +:044EBB0000000000F3 +:044EBC0000000000F2 +:044EBD0000000000F1 +:044EBE0000000000F0 +:044EBF0000000000EF +:044EC00000000000EE +:044EC10000000000ED +:044EC20000000000EC +:044EC30000000000EB +:044EC40000000000EA +:044EC50000000000E9 +:044EC60000000000E8 +:044EC70000000000E7 +:044EC80000000000E6 +:044EC90000000000E5 +:044ECA0000000000E4 +:044ECB0000000000E3 +:044ECC0000000000E2 +:044ECD0000000000E1 +:044ECE0000000000E0 +:044ECF0000000000DF +:044ED00000000000DE +:044ED10000000000DD +:044ED20000000000DC +:044ED30000000000DB +:044ED40000000000DA +:044ED50000000000D9 +:044ED60000000000D8 +:044ED70000000000D7 +:044ED80000000000D6 +:044ED90000000000D5 +:044EDA0000000000D4 +:044EDB0000000000D3 +:044EDC0000000000D2 +:044EDD0000000000D1 +:044EDE0000000000D0 +:044EDF0000000000CF +:044EE00000000000CE +:044EE10000000000CD +:044EE20000000000CC +:044EE30000000000CB +:044EE40000000000CA +:044EE50000000000C9 +:044EE60000000000C8 +:044EE70000000000C7 +:044EE80000000000C6 +:044EE90000000000C5 +:044EEA0000000000C4 +:044EEB0000000000C3 +:044EEC0000000000C2 +:044EED0000000000C1 +:044EEE0000000000C0 +:044EEF0000000000BF +:044EF00000000000BE +:044EF10000000000BD +:044EF20000000000BC +:044EF30000000000BB +:044EF40000000000BA +:044EF50000000000B9 +:044EF60000000000B8 +:044EF70000000000B7 +:044EF80000000000B6 +:044EF90000000000B5 +:044EFA0000000000B4 +:044EFB0000000000B3 +:044EFC0000000000B2 +:044EFD0000000000B1 +:044EFE0000000000B0 +:044EFF0000000000AF +:044F000000000000AD +:044F010000000000AC +:044F020000000000AB +:044F030000000000AA +:044F040000000000A9 +:044F050000000000A8 +:044F060000000000A7 +:044F070000000000A6 +:044F080000000000A5 +:044F090000000000A4 +:044F0A0000000000A3 +:044F0B0000000000A2 +:044F0C0000000000A1 +:044F0D0000000000A0 +:044F0E00000000009F +:044F0F00000000009E +:044F1000000000009D +:044F1100000000009C +:044F1200000000009B +:044F1300000000009A +:044F14000000000099 +:044F15000000000098 +:044F16000000000097 +:044F17000000000096 +:044F18000000000095 +:044F19000000000094 +:044F1A000000000093 +:044F1B000000000092 +:044F1C000000000091 +:044F1D000000000090 +:044F1E00000000008F +:044F1F00000000008E +:044F2000000000008D +:044F2100000000008C +:044F2200000000008B +:044F2300000000008A +:044F24000000000089 +:044F25000000000088 +:044F26000000000087 +:044F27000000000086 +:044F28000000000085 +:044F29000000000084 +:044F2A000000000083 +:044F2B000000000082 +:044F2C000000000081 +:044F2D000000000080 +:044F2E00000000007F +:044F2F00000000007E +:044F3000000000007D +:044F3100000000007C +:044F3200000000007B +:044F3300000000007A +:044F34000000000079 +:044F35000000000078 +:044F36000000000077 +:044F37000000000076 +:044F38000000000075 +:044F39000000000074 +:044F3A000000000073 +:044F3B000000000072 +:044F3C000000000071 +:044F3D000000000070 +:044F3E00000000006F +:044F3F00000000006E +:044F4000000000006D +:044F4100000000006C +:044F4200000000006B +:044F4300000000006A +:044F44000000000069 +:044F45000000000068 +:044F46000000000067 +:044F47000000000066 +:044F48000000000065 +:044F49000000000064 +:044F4A000000000063 +:044F4B000000000062 +:044F4C000000000061 +:044F4D000000000060 +:044F4E00000000005F +:044F4F00000000005E +:044F5000000000005D +:044F5100000000005C +:044F5200000000005B +:044F5300000000005A +:044F54000000000059 +:044F55000000000058 +:044F56000000000057 +:044F57000000000056 +:044F58000000000055 +:044F59000000000054 +:044F5A000000000053 +:044F5B000000000052 +:044F5C000000000051 +:044F5D000000000050 +:044F5E00000000004F +:044F5F00000000004E +:044F6000000000004D +:044F6100000000004C +:044F6200000000004B +:044F6300000000004A +:044F64000000000049 +:044F65000000000048 +:044F66000000000047 +:044F67000000000046 +:044F68000000000045 +:044F69000000000044 +:044F6A000000000043 +:044F6B000000000042 +:044F6C000000000041 +:044F6D000000000040 +:044F6E00000000003F +:044F6F00000000003E +:044F7000000000003D +:044F7100000000003C +:044F7200000000003B +:044F7300000000003A +:044F74000000000039 +:044F75000000000038 +:044F76000000000037 +:044F77000000000036 +:044F78000000000035 +:044F79000000000034 +:044F7A000000000033 +:044F7B000000000032 +:044F7C000000000031 +:044F7D000000000030 +:044F7E00000000002F +:044F7F00000000002E +:044F8000000000002D +:044F8100000000002C +:044F8200000000002B +:044F8300000000002A +:044F84000000000029 +:044F85000000000028 +:044F86000000000027 +:044F87000000000026 +:044F88000000000025 +:044F89000000000024 +:044F8A000000000023 +:044F8B000000000022 +:044F8C000000000021 +:044F8D000000000020 +:044F8E00000000001F +:044F8F00000000001E +:044F9000000000001D +:044F9100000000001C +:044F9200000000001B +:044F9300000000001A +:044F94000000000019 +:044F95000000000018 +:044F96000000000017 +:044F97000000000016 +:044F98000000000015 +:044F99000000000014 +:044F9A000000000013 +:044F9B000000000012 +:044F9C000000000011 +:044F9D000000000010 +:044F9E00000000000F +:044F9F00000000000E +:044FA000000000000D +:044FA100000000000C +:044FA200000000000B +:044FA300000000000A +:044FA4000000000009 +:044FA5000000000008 +:044FA6000000000007 +:044FA7000000000006 +:044FA8000000000005 +:044FA9000000000004 +:044FAA000000000003 +:044FAB000000000002 +:044FAC000000000001 +:044FAD000000000000 +:044FAE0000000000FF +:044FAF0000000000FE +:044FB00000000000FD +:044FB10000000000FC +:044FB20000000000FB +:044FB30000000000FA +:044FB40000000000F9 +:044FB50000000000F8 +:044FB60000000000F7 +:044FB70000000000F6 +:044FB80000000000F5 +:044FB90000000000F4 +:044FBA0000000000F3 +:044FBB0000000000F2 +:044FBC0000000000F1 +:044FBD0000000000F0 +:044FBE0000000000EF +:044FBF0000000000EE +:044FC00000000000ED +:044FC10000000000EC +:044FC20000000000EB +:044FC30000000000EA +:044FC40000000000E9 +:044FC50000000000E8 +:044FC60000000000E7 +:044FC70000000000E6 +:044FC80000000000E5 +:044FC90000000000E4 +:044FCA0000000000E3 +:044FCB0000000000E2 +:044FCC0000000000E1 +:044FCD0000000000E0 +:044FCE0000000000DF +:044FCF0000000000DE +:044FD00000000000DD +:044FD10000000000DC +:044FD20000000000DB +:044FD30000000000DA +:044FD40000000000D9 +:044FD50000000000D8 +:044FD60000000000D7 +:044FD70000000000D6 +:044FD80000000000D5 +:044FD90000000000D4 +:044FDA0000000000D3 +:044FDB0000000000D2 +:044FDC0000000000D1 +:044FDD0000000000D0 +:044FDE0000000000CF +:044FDF0000000000CE +:044FE00000000000CD +:044FE10000000000CC +:044FE20000000000CB +:044FE30000000000CA +:044FE40000000000C9 +:044FE50000000000C8 +:044FE60000000000C7 +:044FE70000000000C6 +:044FE80000000000C5 +:044FE90000000000C4 +:044FEA0000000000C3 +:044FEB0000000000C2 +:044FEC0000000000C1 +:044FED0000000000C0 +:044FEE0000000000BF +:044FEF0000000000BE +:044FF00000000000BD +:044FF10000000000BC +:044FF20000000000BB +:044FF30000000000BA +:044FF40000000000B9 +:044FF50000000000B8 +:044FF60000000000B7 +:044FF70000000000B6 +:044FF80000000000B5 +:044FF90000000000B4 +:044FFA0000000000B3 +:044FFB0000000000B2 +:044FFC0000000000B1 +:044FFD0000000000B0 +:044FFE0000000000AF +:044FFF0000000000AE +:0450000000000000AC +:0450010000000000AB +:0450020000000000AA +:0450030000000000A9 +:0450040000000000A8 +:0450050000000000A7 +:0450060000000000A6 +:0450070000000000A5 +:0450080000000000A4 +:0450090000000000A3 +:04500A0000000000A2 +:04500B0000000000A1 +:04500C0000000000A0 +:04500D00000000009F +:04500E00000000009E +:04500F00000000009D +:04501000000000009C +:04501100000000009B +:04501200000000009A +:045013000000000099 +:045014000000000098 +:045015000000000097 +:045016000000000096 +:045017000000000095 +:045018000000000094 +:045019000000000093 +:04501A000000000092 +:04501B000000000091 +:04501C000000000090 +:04501D00000000008F +:04501E00000000008E +:04501F00000000008D +:04502000000000008C +:04502100000000008B +:04502200000000008A +:045023000000000089 +:045024000000000088 +:045025000000000087 +:045026000000000086 +:045027000000000085 +:045028000000000084 +:045029000000000083 +:04502A000000000082 +:04502B000000000081 +:04502C000000000080 +:04502D00000000007F +:04502E00000000007E +:04502F00000000007D +:04503000000000007C +:04503100000000007B +:04503200000000007A +:045033000000000079 +:045034000000000078 +:045035000000000077 +:045036000000000076 +:045037000000000075 +:045038000000000074 +:045039000000000073 +:04503A000000000072 +:04503B000000000071 +:04503C000000000070 +:04503D00000000006F +:04503E00000000006E +:04503F00000000006D +:04504000000000006C +:04504100000000006B +:04504200000000006A +:045043000000000069 +:045044000000000068 +:045045000000000067 +:045046000000000066 +:045047000000000065 +:045048000000000064 +:045049000000000063 +:04504A000000000062 +:04504B000000000061 +:04504C000000000060 +:04504D00000000005F +:04504E00000000005E +:04504F00000000005D +:04505000000000005C +:04505100000000005B +:04505200000000005A +:045053000000000059 +:045054000000000058 +:045055000000000057 +:045056000000000056 +:045057000000000055 +:045058000000000054 +:045059000000000053 +:04505A000000000052 +:04505B000000000051 +:04505C000000000050 +:04505D00000000004F +:04505E00000000004E +:04505F00000000004D +:04506000000000004C +:04506100000000004B +:04506200000000004A +:045063000000000049 +:045064000000000048 +:045065000000000047 +:045066000000000046 +:045067000000000045 +:045068000000000044 +:045069000000000043 +:04506A000000000042 +:04506B000000000041 +:04506C000000000040 +:04506D00000000003F +:04506E00000000003E +:04506F00000000003D +:04507000000000003C +:04507100000000003B +:04507200000000003A +:045073000000000039 +:045074000000000038 +:045075000000000037 +:045076000000000036 +:045077000000000035 +:045078000000000034 +:045079000000000033 +:04507A000000000032 +:04507B000000000031 +:04507C000000000030 +:04507D00000000002F +:04507E00000000002E +:04507F00000000002D +:04508000000000002C +:04508100000000002B +:04508200000000002A +:045083000000000029 +:045084000000000028 +:045085000000000027 +:045086000000000026 +:045087000000000025 +:045088000000000024 +:045089000000000023 +:04508A000000000022 +:04508B000000000021 +:04508C000000000020 +:04508D00000000001F +:04508E00000000001E +:04508F00000000001D +:04509000000000001C +:04509100000000001B +:04509200000000001A +:045093000000000019 +:045094000000000018 +:045095000000000017 +:045096000000000016 +:045097000000000015 +:045098000000000014 +:045099000000000013 +:04509A000000000012 +:04509B000000000011 +:04509C000000000010 +:04509D00000000000F +:04509E00000000000E +:04509F00000000000D +:0450A000000000000C +:0450A100000000000B +:0450A200000000000A +:0450A3000000000009 +:0450A4000000000008 +:0450A5000000000007 +:0450A6000000000006 +:0450A7000000000005 +:0450A8000000000004 +:0450A9000000000003 +:0450AA000000000002 +:0450AB000000000001 +:0450AC000000000000 +:0450AD0000000000FF +:0450AE0000000000FE +:0450AF0000000000FD +:0450B00000000000FC +:0450B10000000000FB +:0450B20000000000FA +:0450B30000000000F9 +:0450B40000000000F8 +:0450B50000000000F7 +:0450B60000000000F6 +:0450B70000000000F5 +:0450B80000000000F4 +:0450B90000000000F3 +:0450BA0000000000F2 +:0450BB0000000000F1 +:0450BC0000000000F0 +:0450BD0000000000EF +:0450BE0000000000EE +:0450BF0000000000ED +:0450C00000000000EC +:0450C10000000000EB +:0450C20000000000EA +:0450C30000000000E9 +:0450C40000000000E8 +:0450C50000000000E7 +:0450C60000000000E6 +:0450C70000000000E5 +:0450C80000000000E4 +:0450C90000000000E3 +:0450CA0000000000E2 +:0450CB0000000000E1 +:0450CC0000000000E0 +:0450CD0000000000DF +:0450CE0000000000DE +:0450CF0000000000DD +:0450D00000000000DC +:0450D10000000000DB +:0450D20000000000DA +:0450D30000000000D9 +:0450D40000000000D8 +:0450D50000000000D7 +:0450D60000000000D6 +:0450D70000000000D5 +:0450D80000000000D4 +:0450D90000000000D3 +:0450DA0000000000D2 +:0450DB0000000000D1 +:0450DC0000000000D0 +:0450DD0000000000CF +:0450DE0000000000CE +:0450DF0000000000CD +:0450E00000000000CC +:0450E10000000000CB +:0450E20000000000CA +:0450E30000000000C9 +:0450E40000000000C8 +:0450E50000000000C7 +:0450E60000000000C6 +:0450E70000000000C5 +:0450E80000000000C4 +:0450E90000000000C3 +:0450EA0000000000C2 +:0450EB0000000000C1 +:0450EC0000000000C0 +:0450ED0000000000BF +:0450EE0000000000BE +:0450EF0000000000BD +:0450F00000000000BC +:0450F10000000000BB +:0450F20000000000BA +:0450F30000000000B9 +:0450F40000000000B8 +:0450F50000000000B7 +:0450F60000000000B6 +:0450F70000000000B5 +:0450F80000000000B4 +:0450F90000000000B3 +:0450FA0000000000B2 +:0450FB0000000000B1 +:0450FC0000000000B0 +:0450FD0000000000AF +:0450FE0000000000AE +:0450FF0000000000AD +:0451000000000000AB +:0451010000000000AA +:0451020000000000A9 +:0451030000000000A8 +:0451040000000000A7 +:0451050000000000A6 +:0451060000000000A5 +:0451070000000000A4 +:0451080000000000A3 +:0451090000000000A2 +:04510A0000000000A1 +:04510B0000000000A0 +:04510C00000000009F +:04510D00000000009E +:04510E00000000009D +:04510F00000000009C +:04511000000000009B +:04511100000000009A +:045112000000000099 +:045113000000000098 +:045114000000000097 +:045115000000000096 +:045116000000000095 +:045117000000000094 +:045118000000000093 +:045119000000000092 +:04511A000000000091 +:04511B000000000090 +:04511C00000000008F +:04511D00000000008E +:04511E00000000008D +:04511F00000000008C +:04512000000000008B +:04512100000000008A +:045122000000000089 +:045123000000000088 +:045124000000000087 +:045125000000000086 +:045126000000000085 +:045127000000000084 +:045128000000000083 +:045129000000000082 +:04512A000000000081 +:04512B000000000080 +:04512C00000000007F +:04512D00000000007E +:04512E00000000007D +:04512F00000000007C +:04513000000000007B +:04513100000000007A +:045132000000000079 +:045133000000000078 +:045134000000000077 +:045135000000000076 +:045136000000000075 +:045137000000000074 +:045138000000000073 +:045139000000000072 +:04513A000000000071 +:04513B000000000070 +:04513C00000000006F +:04513D00000000006E +:04513E00000000006D +:04513F00000000006C +:04514000000000006B +:04514100000000006A +:045142000000000069 +:045143000000000068 +:045144000000000067 +:045145000000000066 +:045146000000000065 +:045147000000000064 +:045148000000000063 +:045149000000000062 +:04514A000000000061 +:04514B000000000060 +:04514C00000000005F +:04514D00000000005E +:04514E00000000005D +:04514F00000000005C +:04515000000000005B +:04515100000000005A +:045152000000000059 +:045153000000000058 +:045154000000000057 +:045155000000000056 +:045156000000000055 +:045157000000000054 +:045158000000000053 +:045159000000000052 +:04515A000000000051 +:04515B000000000050 +:04515C00000000004F +:04515D00000000004E +:04515E00000000004D +:04515F00000000004C +:04516000000000004B +:04516100000000004A +:045162000000000049 +:045163000000000048 +:045164000000000047 +:045165000000000046 +:045166000000000045 +:045167000000000044 +:045168000000000043 +:045169000000000042 +:04516A000000000041 +:04516B000000000040 +:04516C00000000003F +:04516D00000000003E +:04516E00000000003D +:04516F00000000003C +:04517000000000003B +:04517100000000003A +:045172000000000039 +:045173000000000038 +:045174000000000037 +:045175000000000036 +:045176000000000035 +:045177000000000034 +:045178000000000033 +:045179000000000032 +:04517A000000000031 +:04517B000000000030 +:04517C00000000002F +:04517D00000000002E +:04517E00000000002D +:04517F00000000002C +:04518000000000002B +:04518100000000002A +:045182000000000029 +:045183000000000028 +:045184000000000027 +:045185000000000026 +:045186000000000025 +:045187000000000024 +:045188000000000023 +:045189000000000022 +:04518A000000000021 +:04518B000000000020 +:04518C00000000001F +:04518D00000000001E +:04518E00000000001D +:04518F00000000001C +:04519000000000001B +:04519100000000001A +:045192000000000019 +:045193000000000018 +:045194000000000017 +:045195000000000016 +:045196000000000015 +:045197000000000014 +:045198000000000013 +:045199000000000012 +:04519A000000000011 +:04519B000000000010 +:04519C00000000000F +:04519D00000000000E +:04519E00000000000D +:04519F00000000000C +:0451A000000000000B +:0451A100000000000A +:0451A2000000000009 +:0451A3000000000008 +:0451A4000000000007 +:0451A5000000000006 +:0451A6000000000005 +:0451A7000000000004 +:0451A8000000000003 +:0451A9000000000002 +:0451AA000000000001 +:0451AB000000000000 +:0451AC0000000000FF +:0451AD0000000000FE +:0451AE0000000000FD +:0451AF0000000000FC +:0451B00000000000FB +:0451B10000000000FA +:0451B20000000000F9 +:0451B30000000000F8 +:0451B40000000000F7 +:0451B50000000000F6 +:0451B60000000000F5 +:0451B70000000000F4 +:0451B80000000000F3 +:0451B90000000000F2 +:0451BA0000000000F1 +:0451BB0000000000F0 +:0451BC0000000000EF +:0451BD0000000000EE +:0451BE0000000000ED +:0451BF0000000000EC +:0451C00000000000EB +:0451C10000000000EA +:0451C20000000000E9 +:0451C30000000000E8 +:0451C40000000000E7 +:0451C50000000000E6 +:0451C60000000000E5 +:0451C70000000000E4 +:0451C80000000000E3 +:0451C90000000000E2 +:0451CA0000000000E1 +:0451CB0000000000E0 +:0451CC0000000000DF +:0451CD0000000000DE +:0451CE0000000000DD +:0451CF0000000000DC +:0451D00000000000DB +:0451D10000000000DA +:0451D20000000000D9 +:0451D30000000000D8 +:0451D40000000000D7 +:0451D50000000000D6 +:0451D60000000000D5 +:0451D70000000000D4 +:0451D80000000000D3 +:0451D90000000000D2 +:0451DA0000000000D1 +:0451DB0000000000D0 +:0451DC0000000000CF +:0451DD0000000000CE +:0451DE0000000000CD +:0451DF0000000000CC +:0451E00000000000CB +:0451E10000000000CA +:0451E20000000000C9 +:0451E30000000000C8 +:0451E40000000000C7 +:0451E50000000000C6 +:0451E60000000000C5 +:0451E70000000000C4 +:0451E80000000000C3 +:0451E90000000000C2 +:0451EA0000000000C1 +:0451EB0000000000C0 +:0451EC0000000000BF +:0451ED0000000000BE +:0451EE0000000000BD +:0451EF0000000000BC +:0451F00000000000BB +:0451F10000000000BA +:0451F20000000000B9 +:0451F30000000000B8 +:0451F40000000000B7 +:0451F50000000000B6 +:0451F60000000000B5 +:0451F70000000000B4 +:0451F80000000000B3 +:0451F90000000000B2 +:0451FA0000000000B1 +:0451FB0000000000B0 +:0451FC0000000000AF +:0451FD0000000000AE +:0451FE0000000000AD +:0451FF0000000000AC +:0452000000000000AA +:0452010000000000A9 +:0452020000000000A8 +:0452030000000000A7 +:0452040000000000A6 +:0452050000000000A5 +:0452060000000000A4 +:0452070000000000A3 +:0452080000000000A2 +:0452090000000000A1 +:04520A0000000000A0 +:04520B00000000009F +:04520C00000000009E +:04520D00000000009D +:04520E00000000009C +:04520F00000000009B +:04521000000000009A +:045211000000000099 +:045212000000000098 +:045213000000000097 +:045214000000000096 +:045215000000000095 +:045216000000000094 +:045217000000000093 +:045218000000000092 +:045219000000000091 +:04521A000000000090 +:04521B00000000008F +:04521C00000000008E +:04521D00000000008D +:04521E00000000008C +:04521F00000000008B +:04522000000000008A +:045221000000000089 +:045222000000000088 +:045223000000000087 +:045224000000000086 +:045225000000000085 +:045226000000000084 +:045227000000000083 +:045228000000000082 +:045229000000000081 +:04522A000000000080 +:04522B00000000007F +:04522C00000000007E +:04522D00000000007D +:04522E00000000007C +:04522F00000000007B +:04523000000000007A +:045231000000000079 +:045232000000000078 +:045233000000000077 +:045234000000000076 +:045235000000000075 +:045236000000000074 +:045237000000000073 +:045238000000000072 +:045239000000000071 +:04523A000000000070 +:04523B00000000006F +:04523C00000000006E +:04523D00000000006D +:04523E00000000006C +:04523F00000000006B +:04524000000000006A +:045241000000000069 +:045242000000000068 +:045243000000000067 +:045244000000000066 +:045245000000000065 +:045246000000000064 +:045247000000000063 +:045248000000000062 +:045249000000000061 +:04524A000000000060 +:04524B00000000005F +:04524C00000000005E +:04524D00000000005D +:04524E00000000005C +:04524F00000000005B +:04525000000000005A +:045251000000000059 +:045252000000000058 +:045253000000000057 +:045254000000000056 +:045255000000000055 +:045256000000000054 +:045257000000000053 +:045258000000000052 +:045259000000000051 +:04525A000000000050 +:04525B00000000004F +:04525C00000000004E +:04525D00000000004D +:04525E00000000004C +:04525F00000000004B +:04526000000000004A +:045261000000000049 +:045262000000000048 +:045263000000000047 +:045264000000000046 +:045265000000000045 +:045266000000000044 +:045267000000000043 +:045268000000000042 +:045269000000000041 +:04526A000000000040 +:04526B00000000003F +:04526C00000000003E +:04526D00000000003D +:04526E00000000003C +:04526F00000000003B +:04527000000000003A +:045271000000000039 +:045272000000000038 +:045273000000000037 +:045274000000000036 +:045275000000000035 +:045276000000000034 +:045277000000000033 +:045278000000000032 +:045279000000000031 +:04527A000000000030 +:04527B00000000002F +:04527C00000000002E +:04527D00000000002D +:04527E00000000002C +:04527F00000000002B +:04528000000000002A +:045281000000000029 +:045282000000000028 +:045283000000000027 +:045284000000000026 +:045285000000000025 +:045286000000000024 +:045287000000000023 +:045288000000000022 +:045289000000000021 +:04528A000000000020 +:04528B00000000001F +:04528C00000000001E +:04528D00000000001D +:04528E00000000001C +:04528F00000000001B +:04529000000000001A +:045291000000000019 +:045292000000000018 +:045293000000000017 +:045294000000000016 +:045295000000000015 +:045296000000000014 +:045297000000000013 +:045298000000000012 +:045299000000000011 +:04529A000000000010 +:04529B00000000000F +:04529C00000000000E +:04529D00000000000D +:04529E00000000000C +:04529F00000000000B +:0452A000000000000A +:0452A1000000000009 +:0452A2000000000008 +:0452A3000000000007 +:0452A4000000000006 +:0452A5000000000005 +:0452A6000000000004 +:0452A7000000000003 +:0452A8000000000002 +:0452A9000000000001 +:0452AA000000000000 +:0452AB0000000000FF +:0452AC0000000000FE +:0452AD0000000000FD +:0452AE0000000000FC +:0452AF0000000000FB +:0452B00000000000FA +:0452B10000000000F9 +:0452B20000000000F8 +:0452B30000000000F7 +:0452B40000000000F6 +:0452B50000000000F5 +:0452B60000000000F4 +:0452B70000000000F3 +:0452B80000000000F2 +:0452B90000000000F1 +:0452BA0000000000F0 +:0452BB0000000000EF +:0452BC0000000000EE +:0452BD0000000000ED +:0452BE0000000000EC +:0452BF0000000000EB +:0452C00000000000EA +:0452C10000000000E9 +:0452C20000000000E8 +:0452C30000000000E7 +:0452C40000000000E6 +:0452C50000000000E5 +:0452C60000000000E4 +:0452C70000000000E3 +:0452C80000000000E2 +:0452C90000000000E1 +:0452CA0000000000E0 +:0452CB0000000000DF +:0452CC0000000000DE +:0452CD0000000000DD +:0452CE0000000000DC +:0452CF0000000000DB +:0452D00000000000DA +:0452D10000000000D9 +:0452D20000000000D8 +:0452D30000000000D7 +:0452D40000000000D6 +:0452D50000000000D5 +:0452D60000000000D4 +:0452D70000000000D3 +:0452D80000000000D2 +:0452D90000000000D1 +:0452DA0000000000D0 +:0452DB0000000000CF +:0452DC0000000000CE +:0452DD0000000000CD +:0452DE0000000000CC +:0452DF0000000000CB +:0452E00000000000CA +:0452E10000000000C9 +:0452E20000000000C8 +:0452E30000000000C7 +:0452E40000000000C6 +:0452E50000000000C5 +:0452E60000000000C4 +:0452E70000000000C3 +:0452E80000000000C2 +:0452E90000000000C1 +:0452EA0000000000C0 +:0452EB0000000000BF +:0452EC0000000000BE +:0452ED0000000000BD +:0452EE0000000000BC +:0452EF0000000000BB +:0452F00000000000BA +:0452F10000000000B9 +:0452F20000000000B8 +:0452F30000000000B7 +:0452F40000000000B6 +:0452F50000000000B5 +:0452F60000000000B4 +:0452F70000000000B3 +:0452F80000000000B2 +:0452F90000000000B1 +:0452FA0000000000B0 +:0452FB0000000000AF +:0452FC0000000000AE +:0452FD0000000000AD +:0452FE0000000000AC +:0452FF0000000000AB +:0453000000000000A9 +:0453010000000000A8 +:0453020000000000A7 +:0453030000000000A6 +:0453040000000000A5 +:0453050000000000A4 +:0453060000000000A3 +:0453070000000000A2 +:0453080000000000A1 +:0453090000000000A0 +:04530A00000000009F +:04530B00000000009E +:04530C00000000009D +:04530D00000000009C +:04530E00000000009B +:04530F00000000009A +:045310000000000099 +:045311000000000098 +:045312000000000097 +:045313000000000096 +:045314000000000095 +:045315000000000094 +:045316000000000093 +:045317000000000092 +:045318000000000091 +:045319000000000090 +:04531A00000000008F +:04531B00000000008E +:04531C00000000008D +:04531D00000000008C +:04531E00000000008B +:04531F00000000008A +:045320000000000089 +:045321000000000088 +:045322000000000087 +:045323000000000086 +:045324000000000085 +:045325000000000084 +:045326000000000083 +:045327000000000082 +:045328000000000081 +:045329000000000080 +:04532A00000000007F +:04532B00000000007E +:04532C00000000007D +:04532D00000000007C +:04532E00000000007B +:04532F00000000007A +:045330000000000079 +:045331000000000078 +:045332000000000077 +:045333000000000076 +:045334000000000075 +:045335000000000074 +:045336000000000073 +:045337000000000072 +:045338000000000071 +:045339000000000070 +:04533A00000000006F +:04533B00000000006E +:04533C00000000006D +:04533D00000000006C +:04533E00000000006B +:04533F00000000006A +:045340000000000069 +:045341000000000068 +:045342000000000067 +:045343000000000066 +:045344000000000065 +:045345000000000064 +:045346000000000063 +:045347000000000062 +:045348000000000061 +:045349000000000060 +:04534A00000000005F +:04534B00000000005E +:04534C00000000005D +:04534D00000000005C +:04534E00000000005B +:04534F00000000005A +:045350000000000059 +:045351000000000058 +:045352000000000057 +:045353000000000056 +:045354000000000055 +:045355000000000054 +:045356000000000053 +:045357000000000052 +:045358000000000051 +:045359000000000050 +:04535A00000000004F +:04535B00000000004E +:04535C00000000004D +:04535D00000000004C +:04535E00000000004B +:04535F00000000004A +:045360000000000049 +:045361000000000048 +:045362000000000047 +:045363000000000046 +:045364000000000045 +:045365000000000044 +:045366000000000043 +:045367000000000042 +:045368000000000041 +:045369000000000040 +:04536A00000000003F +:04536B00000000003E +:04536C00000000003D +:04536D00000000003C +:04536E00000000003B +:04536F00000000003A +:045370000000000039 +:045371000000000038 +:045372000000000037 +:045373000000000036 +:045374000000000035 +:045375000000000034 +:045376000000000033 +:045377000000000032 +:045378000000000031 +:045379000000000030 +:04537A00000000002F +:04537B00000000002E +:04537C00000000002D +:04537D00000000002C +:04537E00000000002B +:04537F00000000002A +:045380000000000029 +:045381000000000028 +:045382000000000027 +:045383000000000026 +:045384000000000025 +:045385000000000024 +:045386000000000023 +:045387000000000022 +:045388000000000021 +:045389000000000020 +:04538A00000000001F +:04538B00000000001E +:04538C00000000001D +:04538D00000000001C +:04538E00000000001B +:04538F00000000001A +:045390000000000019 +:045391000000000018 +:045392000000000017 +:045393000000000016 +:045394000000000015 +:045395000000000014 +:045396000000000013 +:045397000000000012 +:045398000000000011 +:045399000000000010 +:04539A00000000000F +:04539B00000000000E +:04539C00000000000D +:04539D00000000000C +:04539E00000000000B +:04539F00000000000A +:0453A0000000000009 +:0453A1000000000008 +:0453A2000000000007 +:0453A3000000000006 +:0453A4000000000005 +:0453A5000000000004 +:0453A6000000000003 +:0453A7000000000002 +:0453A8000000000001 +:0453A9000000000000 +:0453AA0000000000FF +:0453AB0000000000FE +:0453AC0000000000FD +:0453AD0000000000FC +:0453AE0000000000FB +:0453AF0000000000FA +:0453B00000000000F9 +:0453B10000000000F8 +:0453B20000000000F7 +:0453B30000000000F6 +:0453B40000000000F5 +:0453B50000000000F4 +:0453B60000000000F3 +:0453B70000000000F2 +:0453B80000000000F1 +:0453B90000000000F0 +:0453BA0000000000EF +:0453BB0000000000EE +:0453BC0000000000ED +:0453BD0000000000EC +:0453BE0000000000EB +:0453BF0000000000EA +:0453C00000000000E9 +:0453C10000000000E8 +:0453C20000000000E7 +:0453C30000000000E6 +:0453C40000000000E5 +:0453C50000000000E4 +:0453C60000000000E3 +:0453C70000000000E2 +:0453C80000000000E1 +:0453C90000000000E0 +:0453CA0000000000DF +:0453CB0000000000DE +:0453CC0000000000DD +:0453CD0000000000DC +:0453CE0000000000DB +:0453CF0000000000DA +:0453D00000000000D9 +:0453D10000000000D8 +:0453D20000000000D7 +:0453D30000000000D6 +:0453D40000000000D5 +:0453D50000000000D4 +:0453D60000000000D3 +:0453D70000000000D2 +:0453D80000000000D1 +:0453D90000000000D0 +:0453DA0000000000CF +:0453DB0000000000CE +:0453DC0000000000CD +:0453DD0000000000CC +:0453DE0000000000CB +:0453DF0000000000CA +:0453E00000000000C9 +:0453E10000000000C8 +:0453E20000000000C7 +:0453E30000000000C6 +:0453E40000000000C5 +:0453E50000000000C4 +:0453E60000000000C3 +:0453E70000000000C2 +:0453E80000000000C1 +:0453E90000000000C0 +:0453EA0000000000BF +:0453EB0000000000BE +:0453EC0000000000BD +:0453ED0000000000BC +:0453EE0000000000BB +:0453EF0000000000BA +:0453F00000000000B9 +:0453F10000000000B8 +:0453F20000000000B7 +:0453F30000000000B6 +:0453F40000000000B5 +:0453F50000000000B4 +:0453F60000000000B3 +:0453F70000000000B2 +:0453F80000000000B1 +:0453F90000000000B0 +:0453FA0000000000AF +:0453FB0000000000AE +:0453FC0000000000AD +:0453FD0000000000AC +:0453FE0000000000AB +:0453FF0000000000AA +:0454000000000000A8 +:0454010000000000A7 +:0454020000000000A6 +:0454030000000000A5 +:0454040000000000A4 +:0454050000000000A3 +:0454060000000000A2 +:0454070000000000A1 +:0454080000000000A0 +:04540900000000009F +:04540A00000000009E +:04540B00000000009D +:04540C00000000009C +:04540D00000000009B +:04540E00000000009A +:04540F000000000099 +:045410000000000098 +:045411000000000097 +:045412000000000096 +:045413000000000095 +:045414000000000094 +:045415000000000093 +:045416000000000092 +:045417000000000091 +:045418000000000090 +:04541900000000008F +:04541A00000000008E +:04541B00000000008D +:04541C00000000008C +:04541D00000000008B +:04541E00000000008A +:04541F000000000089 +:045420000000000088 +:045421000000000087 +:045422000000000086 +:045423000000000085 +:045424000000000084 +:045425000000000083 +:045426000000000082 +:045427000000000081 +:045428000000000080 +:04542900000000007F +:04542A00000000007E +:04542B00000000007D +:04542C00000000007C +:04542D00000000007B +:04542E00000000007A +:04542F000000000079 +:045430000000000078 +:045431000000000077 +:045432000000000076 +:045433000000000075 +:045434000000000074 +:045435000000000073 +:045436000000000072 +:045437000000000071 +:045438000000000070 +:04543900000000006F +:04543A00000000006E +:04543B00000000006D +:04543C00000000006C +:04543D00000000006B +:04543E00000000006A +:04543F000000000069 +:045440000000000068 +:045441000000000067 +:045442000000000066 +:045443000000000065 +:045444000000000064 +:045445000000000063 +:045446000000000062 +:045447000000000061 +:045448000000000060 +:04544900000000005F +:04544A00000000005E +:04544B00000000005D +:04544C00000000005C +:04544D00000000005B +:04544E00000000005A +:04544F000000000059 +:045450000000000058 +:045451000000000057 +:045452000000000056 +:045453000000000055 +:045454000000000054 +:045455000000000053 +:045456000000000052 +:045457000000000051 +:045458000000000050 +:04545900000000004F +:04545A00000000004E +:04545B00000000004D +:04545C00000000004C +:04545D00000000004B +:04545E00000000004A +:04545F000000000049 +:045460000000000048 +:045461000000000047 +:045462000000000046 +:045463000000000045 +:045464000000000044 +:045465000000000043 +:045466000000000042 +:045467000000000041 +:045468000000000040 +:04546900000000003F +:04546A00000000003E +:04546B00000000003D +:04546C00000000003C +:04546D00000000003B +:04546E00000000003A +:04546F000000000039 +:045470000000000038 +:045471000000000037 +:045472000000000036 +:045473000000000035 +:045474000000000034 +:045475000000000033 +:045476000000000032 +:045477000000000031 +:045478000000000030 +:04547900000000002F +:04547A00000000002E +:04547B00000000002D +:04547C00000000002C +:04547D00000000002B +:04547E00000000002A +:04547F000000000029 +:045480000000000028 +:045481000000000027 +:045482000000000026 +:045483000000000025 +:045484000000000024 +:045485000000000023 +:045486000000000022 +:045487000000000021 +:045488000000000020 +:04548900000000001F +:04548A00000000001E +:04548B00000000001D +:04548C00000000001C +:04548D00000000001B +:04548E00000000001A +:04548F000000000019 +:045490000000000018 +:045491000000000017 +:045492000000000016 +:045493000000000015 +:045494000000000014 +:045495000000000013 +:045496000000000012 +:045497000000000011 +:045498000000000010 +:04549900000000000F +:04549A00000000000E +:04549B00000000000D +:04549C00000000000C +:04549D00000000000B +:04549E00000000000A +:04549F000000000009 +:0454A0000000000008 +:0454A1000000000007 +:0454A2000000000006 +:0454A3000000000005 +:0454A4000000000004 +:0454A5000000000003 +:0454A6000000000002 +:0454A7000000000001 +:0454A8000000000000 +:0454A90000000000FF +:0454AA0000000000FE +:0454AB0000000000FD +:0454AC0000000000FC +:0454AD0000000000FB +:0454AE0000000000FA +:0454AF0000000000F9 +:0454B00000000000F8 +:0454B10000000000F7 +:0454B20000000000F6 +:0454B30000000000F5 +:0454B40000000000F4 +:0454B50000000000F3 +:0454B60000000000F2 +:0454B70000000000F1 +:0454B80000000000F0 +:0454B90000000000EF +:0454BA0000000000EE +:0454BB0000000000ED +:0454BC0000000000EC +:0454BD0000000000EB +:0454BE0000000000EA +:0454BF0000000000E9 +:0454C00000000000E8 +:0454C10000000000E7 +:0454C20000000000E6 +:0454C30000000000E5 +:0454C40000000000E4 +:0454C50000000000E3 +:0454C60000000000E2 +:0454C70000000000E1 +:0454C80000000000E0 +:0454C90000000000DF +:0454CA0000000000DE +:0454CB0000000000DD +:0454CC0000000000DC +:0454CD0000000000DB +:0454CE0000000000DA +:0454CF0000000000D9 +:0454D00000000000D8 +:0454D10000000000D7 +:0454D20000000000D6 +:0454D30000000000D5 +:0454D40000000000D4 +:0454D50000000000D3 +:0454D60000000000D2 +:0454D70000000000D1 +:0454D80000000000D0 +:0454D90000000000CF +:0454DA0000000000CE +:0454DB0000000000CD +:0454DC0000000000CC +:0454DD0000000000CB +:0454DE0000000000CA +:0454DF0000000000C9 +:0454E00000000000C8 +:0454E10000000000C7 +:0454E20000000000C6 +:0454E30000000000C5 +:0454E40000000000C4 +:0454E50000000000C3 +:0454E60000000000C2 +:0454E70000000000C1 +:0454E80000000000C0 +:0454E90000000000BF +:0454EA0000000000BE +:0454EB0000000000BD +:0454EC0000000000BC +:0454ED0000000000BB +:0454EE0000000000BA +:0454EF0000000000B9 +:0454F00000000000B8 +:0454F10000000000B7 +:0454F20000000000B6 +:0454F30000000000B5 +:0454F40000000000B4 +:0454F50000000000B3 +:0454F60000000000B2 +:0454F70000000000B1 +:0454F80000000000B0 +:0454F90000000000AF +:0454FA0000000000AE +:0454FB0000000000AD +:0454FC0000000000AC +:0454FD0000000000AB +:0454FE0000000000AA +:0454FF0000000000A9 +:0455000000000000A7 +:0455010000000000A6 +:0455020000000000A5 +:0455030000000000A4 +:0455040000000000A3 +:0455050000000000A2 +:0455060000000000A1 +:0455070000000000A0 +:04550800000000009F +:04550900000000009E +:04550A00000000009D +:04550B00000000009C +:04550C00000000009B +:04550D00000000009A +:04550E000000000099 +:04550F000000000098 +:045510000000000097 +:045511000000000096 +:045512000000000095 +:045513000000000094 +:045514000000000093 +:045515000000000092 +:045516000000000091 +:045517000000000090 +:04551800000000008F +:04551900000000008E +:04551A00000000008D +:04551B00000000008C +:04551C00000000008B +:04551D00000000008A +:04551E000000000089 +:04551F000000000088 +:045520000000000087 +:045521000000000086 +:045522000000000085 +:045523000000000084 +:045524000000000083 +:045525000000000082 +:045526000000000081 +:045527000000000080 +:04552800000000007F +:04552900000000007E +:04552A00000000007D +:04552B00000000007C +:04552C00000000007B +:04552D00000000007A +:04552E000000000079 +:04552F000000000078 +:045530000000000077 +:045531000000000076 +:045532000000000075 +:045533000000000074 +:045534000000000073 +:045535000000000072 +:045536000000000071 +:045537000000000070 +:04553800000000006F +:04553900000000006E +:04553A00000000006D +:04553B00000000006C +:04553C00000000006B +:04553D00000000006A +:04553E000000000069 +:04553F000000000068 +:045540000000000067 +:045541000000000066 +:045542000000000065 +:045543000000000064 +:045544000000000063 +:045545000000000062 +:045546000000000061 +:045547000000000060 +:04554800000000005F +:04554900000000005E +:04554A00000000005D +:04554B00000000005C +:04554C00000000005B +:04554D00000000005A +:04554E000000000059 +:04554F000000000058 +:045550000000000057 +:045551000000000056 +:045552000000000055 +:045553000000000054 +:045554000000000053 +:045555000000000052 +:045556000000000051 +:045557000000000050 +:04555800000000004F +:04555900000000004E +:04555A00000000004D +:04555B00000000004C +:04555C00000000004B +:04555D00000000004A +:04555E000000000049 +:04555F000000000048 +:045560000000000047 +:045561000000000046 +:045562000000000045 +:045563000000000044 +:045564000000000043 +:045565000000000042 +:045566000000000041 +:045567000000000040 +:04556800000000003F +:04556900000000003E +:04556A00000000003D +:04556B00000000003C +:04556C00000000003B +:04556D00000000003A +:04556E000000000039 +:04556F000000000038 +:045570000000000037 +:045571000000000036 +:045572000000000035 +:045573000000000034 +:045574000000000033 +:045575000000000032 +:045576000000000031 +:045577000000000030 +:04557800000000002F +:04557900000000002E +:04557A00000000002D +:04557B00000000002C +:04557C00000000002B +:04557D00000000002A +:04557E000000000029 +:04557F000000000028 +:045580000000000027 +:045581000000000026 +:045582000000000025 +:045583000000000024 +:045584000000000023 +:045585000000000022 +:045586000000000021 +:045587000000000020 +:04558800000000001F +:04558900000000001E +:04558A00000000001D +:04558B00000000001C +:04558C00000000001B +:04558D00000000001A +:04558E000000000019 +:04558F000000000018 +:045590000000000017 +:045591000000000016 +:045592000000000015 +:045593000000000014 +:045594000000000013 +:045595000000000012 +:045596000000000011 +:045597000000000010 +:04559800000000000F +:04559900000000000E +:04559A00000000000D +:04559B00000000000C +:04559C00000000000B +:04559D00000000000A +:04559E000000000009 +:04559F000000000008 +:0455A0000000000007 +:0455A1000000000006 +:0455A2000000000005 +:0455A3000000000004 +:0455A4000000000003 +:0455A5000000000002 +:0455A6000000000001 +:0455A7000000000000 +:0455A80000000000FF +:0455A90000000000FE +:0455AA0000000000FD +:0455AB0000000000FC +:0455AC0000000000FB +:0455AD0000000000FA +:0455AE0000000000F9 +:0455AF0000000000F8 +:0455B00000000000F7 +:0455B10000000000F6 +:0455B20000000000F5 +:0455B30000000000F4 +:0455B40000000000F3 +:0455B50000000000F2 +:0455B60000000000F1 +:0455B70000000000F0 +:0455B80000000000EF +:0455B90000000000EE +:0455BA0000000000ED +:0455BB0000000000EC +:0455BC0000000000EB +:0455BD0000000000EA +:0455BE0000000000E9 +:0455BF0000000000E8 +:0455C00000000000E7 +:0455C10000000000E6 +:0455C20000000000E5 +:0455C30000000000E4 +:0455C40000000000E3 +:0455C50000000000E2 +:0455C60000000000E1 +:0455C70000000000E0 +:0455C80000000000DF +:0455C90000000000DE +:0455CA0000000000DD +:0455CB0000000000DC +:0455CC0000000000DB +:0455CD0000000000DA +:0455CE0000000000D9 +:0455CF0000000000D8 +:0455D00000000000D7 +:0455D10000000000D6 +:0455D20000000000D5 +:0455D30000000000D4 +:0455D40000000000D3 +:0455D50000000000D2 +:0455D60000000000D1 +:0455D70000000000D0 +:0455D80000000000CF +:0455D90000000000CE +:0455DA0000000000CD +:0455DB0000000000CC +:0455DC0000000000CB +:0455DD0000000000CA +:0455DE0000000000C9 +:0455DF0000000000C8 +:0455E00000000000C7 +:0455E10000000000C6 +:0455E20000000000C5 +:0455E30000000000C4 +:0455E40000000000C3 +:0455E50000000000C2 +:0455E60000000000C1 +:0455E70000000000C0 +:0455E80000000000BF +:0455E90000000000BE +:0455EA0000000000BD +:0455EB0000000000BC +:0455EC0000000000BB +:0455ED0000000000BA +:0455EE0000000000B9 +:0455EF0000000000B8 +:0455F00000000000B7 +:0455F10000000000B6 +:0455F20000000000B5 +:0455F30000000000B4 +:0455F40000000000B3 +:0455F50000000000B2 +:0455F60000000000B1 +:0455F70000000000B0 +:0455F80000000000AF +:0455F90000000000AE +:0455FA0000000000AD +:0455FB0000000000AC +:0455FC0000000000AB +:0455FD0000000000AA +:0455FE0000000000A9 +:0455FF0000000000A8 +:0456000000000000A6 +:0456010000000000A5 +:0456020000000000A4 +:0456030000000000A3 +:0456040000000000A2 +:0456050000000000A1 +:0456060000000000A0 +:04560700000000009F +:04560800000000009E +:04560900000000009D +:04560A00000000009C +:04560B00000000009B +:04560C00000000009A +:04560D000000000099 +:04560E000000000098 +:04560F000000000097 +:045610000000000096 +:045611000000000095 +:045612000000000094 +:045613000000000093 +:045614000000000092 +:045615000000000091 +:045616000000000090 +:04561700000000008F +:04561800000000008E +:04561900000000008D +:04561A00000000008C +:04561B00000000008B +:04561C00000000008A +:04561D000000000089 +:04561E000000000088 +:04561F000000000087 +:045620000000000086 +:045621000000000085 +:045622000000000084 +:045623000000000083 +:045624000000000082 +:045625000000000081 +:045626000000000080 +:04562700000000007F +:04562800000000007E +:04562900000000007D +:04562A00000000007C +:04562B00000000007B +:04562C00000000007A +:04562D000000000079 +:04562E000000000078 +:04562F000000000077 +:045630000000000076 +:045631000000000075 +:045632000000000074 +:045633000000000073 +:045634000000000072 +:045635000000000071 +:045636000000000070 +:04563700000000006F +:04563800000000006E +:04563900000000006D +:04563A00000000006C +:04563B00000000006B +:04563C00000000006A +:04563D000000000069 +:04563E000000000068 +:04563F000000000067 +:045640000000000066 +:045641000000000065 +:045642000000000064 +:045643000000000063 +:045644000000000062 +:045645000000000061 +:045646000000000060 +:04564700000000005F +:04564800000000005E +:04564900000000005D +:04564A00000000005C +:04564B00000000005B +:04564C00000000005A +:04564D000000000059 +:04564E000000000058 +:04564F000000000057 +:045650000000000056 +:045651000000000055 +:045652000000000054 +:045653000000000053 +:045654000000000052 +:045655000000000051 +:045656000000000050 +:04565700000000004F +:04565800000000004E +:04565900000000004D +:04565A00000000004C +:04565B00000000004B +:04565C00000000004A +:04565D000000000049 +:04565E000000000048 +:04565F000000000047 +:045660000000000046 +:045661000000000045 +:045662000000000044 +:045663000000000043 +:045664000000000042 +:045665000000000041 +:045666000000000040 +:04566700000000003F +:04566800000000003E +:04566900000000003D +:04566A00000000003C +:04566B00000000003B +:04566C00000000003A +:04566D000000000039 +:04566E000000000038 +:04566F000000000037 +:045670000000000036 +:045671000000000035 +:045672000000000034 +:045673000000000033 +:045674000000000032 +:045675000000000031 +:045676000000000030 +:04567700000000002F +:04567800000000002E +:04567900000000002D +:04567A00000000002C +:04567B00000000002B +:04567C00000000002A +:04567D000000000029 +:04567E000000000028 +:04567F000000000027 +:045680000000000026 +:045681000000000025 +:045682000000000024 +:045683000000000023 +:045684000000000022 +:045685000000000021 +:045686000000000020 +:04568700000000001F +:04568800000000001E +:04568900000000001D +:04568A00000000001C +:04568B00000000001B +:04568C00000000001A +:04568D000000000019 +:04568E000000000018 +:04568F000000000017 +:045690000000000016 +:045691000000000015 +:045692000000000014 +:045693000000000013 +:045694000000000012 +:045695000000000011 +:045696000000000010 +:04569700000000000F +:04569800000000000E +:04569900000000000D +:04569A00000000000C +:04569B00000000000B +:04569C00000000000A +:04569D000000000009 +:04569E000000000008 +:04569F000000000007 +:0456A0000000000006 +:0456A1000000000005 +:0456A2000000000004 +:0456A3000000000003 +:0456A4000000000002 +:0456A5000000000001 +:0456A6000000000000 +:0456A70000000000FF +:0456A80000000000FE +:0456A90000000000FD +:0456AA0000000000FC +:0456AB0000000000FB +:0456AC0000000000FA +:0456AD0000000000F9 +:0456AE0000000000F8 +:0456AF0000000000F7 +:0456B00000000000F6 +:0456B10000000000F5 +:0456B20000000000F4 +:0456B30000000000F3 +:0456B40000000000F2 +:0456B50000000000F1 +:0456B60000000000F0 +:0456B70000000000EF +:0456B80000000000EE +:0456B90000000000ED +:0456BA0000000000EC +:0456BB0000000000EB +:0456BC0000000000EA +:0456BD0000000000E9 +:0456BE0000000000E8 +:0456BF0000000000E7 +:0456C00000000000E6 +:0456C10000000000E5 +:0456C20000000000E4 +:0456C30000000000E3 +:0456C40000000000E2 +:0456C50000000000E1 +:0456C60000000000E0 +:0456C70000000000DF +:0456C80000000000DE +:0456C90000000000DD +:0456CA0000000000DC +:0456CB0000000000DB +:0456CC0000000000DA +:0456CD0000000000D9 +:0456CE0000000000D8 +:0456CF0000000000D7 +:0456D00000000000D6 +:0456D10000000000D5 +:0456D20000000000D4 +:0456D30000000000D3 +:0456D40000000000D2 +:0456D50000000000D1 +:0456D60000000000D0 +:0456D70000000000CF +:0456D80000000000CE +:0456D90000000000CD +:0456DA0000000000CC +:0456DB0000000000CB +:0456DC0000000000CA +:0456DD0000000000C9 +:0456DE0000000000C8 +:0456DF0000000000C7 +:0456E00000000000C6 +:0456E10000000000C5 +:0456E20000000000C4 +:0456E30000000000C3 +:0456E40000000000C2 +:0456E50000000000C1 +:0456E60000000000C0 +:0456E70000000000BF +:0456E80000000000BE +:0456E90000000000BD +:0456EA0000000000BC +:0456EB0000000000BB +:0456EC0000000000BA +:0456ED0000000000B9 +:0456EE0000000000B8 +:0456EF0000000000B7 +:0456F00000000000B6 +:0456F10000000000B5 +:0456F20000000000B4 +:0456F30000000000B3 +:0456F40000000000B2 +:0456F50000000000B1 +:0456F60000000000B0 +:0456F70000000000AF +:0456F80000000000AE +:0456F90000000000AD +:0456FA0000000000AC +:0456FB0000000000AB +:0456FC0000000000AA +:0456FD0000000000A9 +:0456FE0000000000A8 +:0456FF0000000000A7 +:0457000000000000A5 +:0457010000000000A4 +:0457020000000000A3 +:0457030000000000A2 +:0457040000000000A1 +:0457050000000000A0 +:04570600000000009F +:04570700000000009E +:04570800000000009D +:04570900000000009C +:04570A00000000009B +:04570B00000000009A +:04570C000000000099 +:04570D000000000098 +:04570E000000000097 +:04570F000000000096 +:045710000000000095 +:045711000000000094 +:045712000000000093 +:045713000000000092 +:045714000000000091 +:045715000000000090 +:04571600000000008F +:04571700000000008E +:04571800000000008D +:04571900000000008C +:04571A00000000008B +:04571B00000000008A +:04571C000000000089 +:04571D000000000088 +:04571E000000000087 +:04571F000000000086 +:045720000000000085 +:045721000000000084 +:045722000000000083 +:045723000000000082 +:045724000000000081 +:045725000000000080 +:04572600000000007F +:04572700000000007E +:04572800000000007D +:04572900000000007C +:04572A00000000007B +:04572B00000000007A +:04572C000000000079 +:04572D000000000078 +:04572E000000000077 +:04572F000000000076 +:045730000000000075 +:045731000000000074 +:045732000000000073 +:045733000000000072 +:045734000000000071 +:045735000000000070 +:04573600000000006F +:04573700000000006E +:04573800000000006D +:04573900000000006C +:04573A00000000006B +:04573B00000000006A +:04573C000000000069 +:04573D000000000068 +:04573E000000000067 +:04573F000000000066 +:045740000000000065 +:045741000000000064 +:045742000000000063 +:045743000000000062 +:045744000000000061 +:045745000000000060 +:04574600000000005F +:04574700000000005E +:04574800000000005D +:04574900000000005C +:04574A00000000005B +:04574B00000000005A +:04574C000000000059 +:04574D000000000058 +:04574E000000000057 +:04574F000000000056 +:045750000000000055 +:045751000000000054 +:045752000000000053 +:045753000000000052 +:045754000000000051 +:045755000000000050 +:04575600000000004F +:04575700000000004E +:04575800000000004D +:04575900000000004C +:04575A00000000004B +:04575B00000000004A +:04575C000000000049 +:04575D000000000048 +:04575E000000000047 +:04575F000000000046 +:045760000000000045 +:045761000000000044 +:045762000000000043 +:045763000000000042 +:045764000000000041 +:045765000000000040 +:04576600000000003F +:04576700000000003E +:04576800000000003D +:04576900000000003C +:04576A00000000003B +:04576B00000000003A +:04576C000000000039 +:04576D000000000038 +:04576E000000000037 +:04576F000000000036 +:045770000000000035 +:045771000000000034 +:045772000000000033 +:045773000000000032 +:045774000000000031 +:045775000000000030 +:04577600000000002F +:04577700000000002E +:04577800000000002D +:04577900000000002C +:04577A00000000002B +:04577B00000000002A +:04577C000000000029 +:04577D000000000028 +:04577E000000000027 +:04577F000000000026 +:045780000000000025 +:045781000000000024 +:045782000000000023 +:045783000000000022 +:045784000000000021 +:045785000000000020 +:04578600000000001F +:04578700000000001E +:04578800000000001D +:04578900000000001C +:04578A00000000001B +:04578B00000000001A +:04578C000000000019 +:04578D000000000018 +:04578E000000000017 +:04578F000000000016 +:045790000000000015 +:045791000000000014 +:045792000000000013 +:045793000000000012 +:045794000000000011 +:045795000000000010 +:04579600000000000F +:04579700000000000E +:04579800000000000D +:04579900000000000C +:04579A00000000000B +:04579B00000000000A +:04579C000000000009 +:04579D000000000008 +:04579E000000000007 +:04579F000000000006 +:0457A0000000000005 +:0457A1000000000004 +:0457A2000000000003 +:0457A3000000000002 +:0457A4000000000001 +:0457A5000000000000 +:0457A60000000000FF +:0457A70000000000FE +:0457A80000000000FD +:0457A90000000000FC +:0457AA0000000000FB +:0457AB0000000000FA +:0457AC0000000000F9 +:0457AD0000000000F8 +:0457AE0000000000F7 +:0457AF0000000000F6 +:0457B00000000000F5 +:0457B10000000000F4 +:0457B20000000000F3 +:0457B30000000000F2 +:0457B40000000000F1 +:0457B50000000000F0 +:0457B60000000000EF +:0457B70000000000EE +:0457B80000000000ED +:0457B90000000000EC +:0457BA0000000000EB +:0457BB0000000000EA +:0457BC0000000000E9 +:0457BD0000000000E8 +:0457BE0000000000E7 +:0457BF0000000000E6 +:0457C00000000000E5 +:0457C10000000000E4 +:0457C20000000000E3 +:0457C30000000000E2 +:0457C40000000000E1 +:0457C50000000000E0 +:0457C60000000000DF +:0457C70000000000DE +:0457C80000000000DD +:0457C90000000000DC +:0457CA0000000000DB +:0457CB0000000000DA +:0457CC0000000000D9 +:0457CD0000000000D8 +:0457CE0000000000D7 +:0457CF0000000000D6 +:0457D00000000000D5 +:0457D10000000000D4 +:0457D20000000000D3 +:0457D30000000000D2 +:0457D40000000000D1 +:0457D50000000000D0 +:0457D60000000000CF +:0457D70000000000CE +:0457D80000000000CD +:0457D90000000000CC +:0457DA0000000000CB +:0457DB0000000000CA +:0457DC0000000000C9 +:0457DD0000000000C8 +:0457DE0000000000C7 +:0457DF0000000000C6 +:0457E00000000000C5 +:0457E10000000000C4 +:0457E20000000000C3 +:0457E30000000000C2 +:0457E40000000000C1 +:0457E50000000000C0 +:0457E60000000000BF +:0457E70000000000BE +:0457E80000000000BD +:0457E90000000000BC +:0457EA0000000000BB +:0457EB0000000000BA +:0457EC0000000000B9 +:0457ED0000000000B8 +:0457EE0000000000B7 +:0457EF0000000000B6 +:0457F00000000000B5 +:0457F10000000000B4 +:0457F20000000000B3 +:0457F30000000000B2 +:0457F40000000000B1 +:0457F50000000000B0 +:0457F60000000000AF +:0457F70000000000AE +:0457F80000000000AD +:0457F90000000000AC +:0457FA0000000000AB +:0457FB0000000000AA +:0457FC0000000000A9 +:0457FD0000000000A8 +:0457FE0000000000A7 +:0457FF0000000000A6 +:0458000000000000A4 +:0458010000000000A3 +:0458020000000000A2 +:0458030000000000A1 +:0458040000000000A0 +:04580500000000009F +:04580600000000009E +:04580700000000009D +:04580800000000009C +:04580900000000009B +:04580A00000000009A +:04580B000000000099 +:04580C000000000098 +:04580D000000000097 +:04580E000000000096 +:04580F000000000095 +:045810000000000094 +:045811000000000093 +:045812000000000092 +:045813000000000091 +:045814000000000090 +:04581500000000008F +:04581600000000008E +:04581700000000008D +:04581800000000008C +:04581900000000008B +:04581A00000000008A +:04581B000000000089 +:04581C000000000088 +:04581D000000000087 +:04581E000000000086 +:04581F000000000085 +:045820000000000084 +:045821000000000083 +:045822000000000082 +:045823000000000081 +:045824000000000080 +:04582500000000007F +:04582600000000007E +:04582700000000007D +:04582800000000007C +:04582900000000007B +:04582A00000000007A +:04582B000000000079 +:04582C000000000078 +:04582D000000000077 +:04582E000000000076 +:04582F000000000075 +:045830000000000074 +:045831000000000073 +:045832000000000072 +:045833000000000071 +:045834000000000070 +:04583500000000006F +:04583600000000006E +:04583700000000006D +:04583800000000006C +:04583900000000006B +:04583A00000000006A +:04583B000000000069 +:04583C000000000068 +:04583D000000000067 +:04583E000000000066 +:04583F000000000065 +:045840000000000064 +:045841000000000063 +:045842000000000062 +:045843000000000061 +:045844000000000060 +:04584500000000005F +:04584600000000005E +:04584700000000005D +:04584800000000005C +:04584900000000005B +:04584A00000000005A +:04584B000000000059 +:04584C000000000058 +:04584D000000000057 +:04584E000000000056 +:04584F000000000055 +:045850000000000054 +:045851000000000053 +:045852000000000052 +:045853000000000051 +:045854000000000050 +:04585500000000004F +:04585600000000004E +:04585700000000004D +:04585800000000004C +:04585900000000004B +:04585A00000000004A +:04585B000000000049 +:04585C000000000048 +:04585D000000000047 +:04585E000000000046 +:04585F000000000045 +:045860000000000044 +:045861000000000043 +:045862000000000042 +:045863000000000041 +:045864000000000040 +:04586500000000003F +:04586600000000003E +:04586700000000003D +:04586800000000003C +:04586900000000003B +:04586A00000000003A +:04586B000000000039 +:04586C000000000038 +:04586D000000000037 +:04586E000000000036 +:04586F000000000035 +:045870000000000034 +:045871000000000033 +:045872000000000032 +:045873000000000031 +:045874000000000030 +:04587500000000002F +:04587600000000002E +:04587700000000002D +:04587800000000002C +:04587900000000002B +:04587A00000000002A +:04587B000000000029 +:04587C000000000028 +:04587D000000000027 +:04587E000000000026 +:04587F000000000025 +:045880000000000024 +:045881000000000023 +:045882000000000022 +:045883000000000021 +:045884000000000020 +:04588500000000001F +:04588600000000001E +:04588700000000001D +:04588800000000001C +:04588900000000001B +:04588A00000000001A +:04588B000000000019 +:04588C000000000018 +:04588D000000000017 +:04588E000000000016 +:04588F000000000015 +:045890000000000014 +:045891000000000013 +:045892000000000012 +:045893000000000011 +:045894000000000010 +:04589500000000000F +:04589600000000000E +:04589700000000000D +:04589800000000000C +:04589900000000000B +:04589A00000000000A +:04589B000000000009 +:04589C000000000008 +:04589D000000000007 +:04589E000000000006 +:04589F000000000005 +:0458A0000000000004 +:0458A1000000000003 +:0458A2000000000002 +:0458A3000000000001 +:0458A4000000000000 +:0458A50000000000FF +:0458A60000000000FE +:0458A70000000000FD +:0458A80000000000FC +:0458A90000000000FB +:0458AA0000000000FA +:0458AB0000000000F9 +:0458AC0000000000F8 +:0458AD0000000000F7 +:0458AE0000000000F6 +:0458AF0000000000F5 +:0458B00000000000F4 +:0458B10000000000F3 +:0458B20000000000F2 +:0458B30000000000F1 +:0458B40000000000F0 +:0458B50000000000EF +:0458B60000000000EE +:0458B70000000000ED +:0458B80000000000EC +:0458B90000000000EB +:0458BA0000000000EA +:0458BB0000000000E9 +:0458BC0000000000E8 +:0458BD0000000000E7 +:0458BE0000000000E6 +:0458BF0000000000E5 +:0458C00000000000E4 +:0458C10000000000E3 +:0458C20000000000E2 +:0458C30000000000E1 +:0458C40000000000E0 +:0458C50000000000DF +:0458C60000000000DE +:0458C70000000000DD +:0458C80000000000DC +:0458C90000000000DB +:0458CA0000000000DA +:0458CB0000000000D9 +:0458CC0000000000D8 +:0458CD0000000000D7 +:0458CE0000000000D6 +:0458CF0000000000D5 +:0458D00000000000D4 +:0458D10000000000D3 +:0458D20000000000D2 +:0458D30000000000D1 +:0458D40000000000D0 +:0458D50000000000CF +:0458D60000000000CE +:0458D70000000000CD +:0458D80000000000CC +:0458D90000000000CB +:0458DA0000000000CA +:0458DB0000000000C9 +:0458DC0000000000C8 +:0458DD0000000000C7 +:0458DE0000000000C6 +:0458DF0000000000C5 +:0458E00000000000C4 +:0458E10000000000C3 +:0458E20000000000C2 +:0458E30000000000C1 +:0458E40000000000C0 +:0458E50000000000BF +:0458E60000000000BE +:0458E70000000000BD +:0458E80000000000BC +:0458E90000000000BB +:0458EA0000000000BA +:0458EB0000000000B9 +:0458EC0000000000B8 +:0458ED0000000000B7 +:0458EE0000000000B6 +:0458EF0000000000B5 +:0458F00000000000B4 +:0458F10000000000B3 +:0458F20000000000B2 +:0458F30000000000B1 +:0458F40000000000B0 +:0458F50000000000AF +:0458F60000000000AE +:0458F70000000000AD +:0458F80000000000AC +:0458F90000000000AB +:0458FA0000000000AA +:0458FB0000000000A9 +:0458FC0000000000A8 +:0458FD0000000000A7 +:0458FE0000000000A6 +:0458FF0000000000A5 +:0459000000000000A3 +:0459010000000000A2 +:0459020000000000A1 +:0459030000000000A0 +:04590400000000009F +:04590500000000009E +:04590600000000009D +:04590700000000009C +:04590800000000009B +:04590900000000009A +:04590A000000000099 +:04590B000000000098 +:04590C000000000097 +:04590D000000000096 +:04590E000000000095 +:04590F000000000094 +:045910000000000093 +:045911000000000092 +:045912000000000091 +:045913000000000090 +:04591400000000008F +:04591500000000008E +:04591600000000008D +:04591700000000008C +:04591800000000008B +:04591900000000008A +:04591A000000000089 +:04591B000000000088 +:04591C000000000087 +:04591D000000000086 +:04591E000000000085 +:04591F000000000084 +:045920000000000083 +:045921000000000082 +:045922000000000081 +:045923000000000080 +:04592400000000007F +:04592500000000007E +:04592600000000007D +:04592700000000007C +:04592800000000007B +:04592900000000007A +:04592A000000000079 +:04592B000000000078 +:04592C000000000077 +:04592D000000000076 +:04592E000000000075 +:04592F000000000074 +:045930000000000073 +:045931000000000072 +:045932000000000071 +:045933000000000070 +:04593400000000006F +:04593500000000006E +:04593600000000006D +:04593700000000006C +:04593800000000006B +:04593900000000006A +:04593A000000000069 +:04593B000000000068 +:04593C000000000067 +:04593D000000000066 +:04593E000000000065 +:04593F000000000064 +:045940000000000063 +:045941000000000062 +:045942000000000061 +:045943000000000060 +:04594400000000005F +:04594500000000005E +:04594600000000005D +:04594700000000005C +:04594800000000005B +:04594900000000005A +:04594A000000000059 +:04594B000000000058 +:04594C000000000057 +:04594D000000000056 +:04594E000000000055 +:04594F000000000054 +:045950000000000053 +:045951000000000052 +:045952000000000051 +:045953000000000050 +:04595400000000004F +:04595500000000004E +:04595600000000004D +:04595700000000004C +:04595800000000004B +:04595900000000004A +:04595A000000000049 +:04595B000000000048 +:04595C000000000047 +:04595D000000000046 +:04595E000000000045 +:04595F000000000044 +:045960000000000043 +:045961000000000042 +:045962000000000041 +:045963000000000040 +:04596400000000003F +:04596500000000003E +:04596600000000003D +:04596700000000003C +:04596800000000003B +:04596900000000003A +:04596A000000000039 +:04596B000000000038 +:04596C000000000037 +:04596D000000000036 +:04596E000000000035 +:04596F000000000034 +:045970000000000033 +:045971000000000032 +:045972000000000031 +:045973000000000030 +:04597400000000002F +:04597500000000002E +:04597600000000002D +:04597700000000002C +:04597800000000002B +:04597900000000002A +:04597A000000000029 +:04597B000000000028 +:04597C000000000027 +:04597D000000000026 +:04597E000000000025 +:04597F000000000024 +:045980000000000023 +:045981000000000022 +:045982000000000021 +:045983000000000020 +:04598400000000001F +:04598500000000001E +:04598600000000001D +:04598700000000001C +:04598800000000001B +:04598900000000001A +:04598A000000000019 +:04598B000000000018 +:04598C000000000017 +:04598D000000000016 +:04598E000000000015 +:04598F000000000014 +:045990000000000013 +:045991000000000012 +:045992000000000011 +:045993000000000010 +:04599400000000000F +:04599500000000000E +:04599600000000000D +:04599700000000000C +:04599800000000000B +:04599900000000000A +:04599A000000000009 +:04599B000000000008 +:04599C000000000007 +:04599D000000000006 +:04599E000000000005 +:04599F000000000004 +:0459A0000000000003 +:0459A1000000000002 +:0459A2000000000001 +:0459A3000000000000 +:0459A40000000000FF +:0459A50000000000FE +:0459A60000000000FD +:0459A70000000000FC +:0459A80000000000FB +:0459A90000000000FA +:0459AA0000000000F9 +:0459AB0000000000F8 +:0459AC0000000000F7 +:0459AD0000000000F6 +:0459AE0000000000F5 +:0459AF0000000000F4 +:0459B00000000000F3 +:0459B10000000000F2 +:0459B20000000000F1 +:0459B30000000000F0 +:0459B40000000000EF +:0459B50000000000EE +:0459B60000000000ED +:0459B70000000000EC +:0459B80000000000EB +:0459B90000000000EA +:0459BA0000000000E9 +:0459BB0000000000E8 +:0459BC0000000000E7 +:0459BD0000000000E6 +:0459BE0000000000E5 +:0459BF0000000000E4 +:0459C00000000000E3 +:0459C10000000000E2 +:0459C20000000000E1 +:0459C30000000000E0 +:0459C40000000000DF +:0459C50000000000DE +:0459C60000000000DD +:0459C70000000000DC +:0459C80000000000DB +:0459C90000000000DA +:0459CA0000000000D9 +:0459CB0000000000D8 +:0459CC0000000000D7 +:0459CD0000000000D6 +:0459CE0000000000D5 +:0459CF0000000000D4 +:0459D00000000000D3 +:0459D10000000000D2 +:0459D20000000000D1 +:0459D30000000000D0 +:0459D40000000000CF +:0459D50000000000CE +:0459D60000000000CD +:0459D70000000000CC +:0459D80000000000CB +:0459D90000000000CA +:0459DA0000000000C9 +:0459DB0000000000C8 +:0459DC0000000000C7 +:0459DD0000000000C6 +:0459DE0000000000C5 +:0459DF0000000000C4 +:0459E00000000000C3 +:0459E10000000000C2 +:0459E20000000000C1 +:0459E30000000000C0 +:0459E40000000000BF +:0459E50000000000BE +:0459E60000000000BD +:0459E70000000000BC +:0459E80000000000BB +:0459E90000000000BA +:0459EA0000000000B9 +:0459EB0000000000B8 +:0459EC0000000000B7 +:0459ED0000000000B6 +:0459EE0000000000B5 +:0459EF0000000000B4 +:0459F00000000000B3 +:0459F10000000000B2 +:0459F20000000000B1 +:0459F30000000000B0 +:0459F40000000000AF +:0459F50000000000AE +:0459F60000000000AD +:0459F70000000000AC +:0459F80000000000AB +:0459F90000000000AA +:0459FA0000000000A9 +:0459FB0000000000A8 +:0459FC0000000000A7 +:0459FD0000000000A6 +:0459FE0000000000A5 +:0459FF0000000000A4 +:045A000000000000A2 +:045A010000000000A1 +:045A020000000000A0 +:045A0300000000009F +:045A0400000000009E +:045A0500000000009D +:045A0600000000009C +:045A0700000000009B +:045A0800000000009A +:045A09000000000099 +:045A0A000000000098 +:045A0B000000000097 +:045A0C000000000096 +:045A0D000000000095 +:045A0E000000000094 +:045A0F000000000093 +:045A10000000000092 +:045A11000000000091 +:045A12000000000090 +:045A1300000000008F +:045A1400000000008E +:045A1500000000008D +:045A1600000000008C +:045A1700000000008B +:045A1800000000008A +:045A19000000000089 +:045A1A000000000088 +:045A1B000000000087 +:045A1C000000000086 +:045A1D000000000085 +:045A1E000000000084 +:045A1F000000000083 +:045A20000000000082 +:045A21000000000081 +:045A22000000000080 +:045A2300000000007F +:045A2400000000007E +:045A2500000000007D +:045A2600000000007C +:045A2700000000007B +:045A2800000000007A +:045A29000000000079 +:045A2A000000000078 +:045A2B000000000077 +:045A2C000000000076 +:045A2D000000000075 +:045A2E000000000074 +:045A2F000000000073 +:045A30000000000072 +:045A31000000000071 +:045A32000000000070 +:045A3300000000006F +:045A3400000000006E +:045A3500000000006D +:045A3600000000006C +:045A3700000000006B +:045A3800000000006A +:045A39000000000069 +:045A3A000000000068 +:045A3B000000000067 +:045A3C000000000066 +:045A3D000000000065 +:045A3E000000000064 +:045A3F000000000063 +:045A40000000000062 +:045A41000000000061 +:045A42000000000060 +:045A4300000000005F +:045A4400000000005E +:045A4500000000005D +:045A4600000000005C +:045A4700000000005B +:045A4800000000005A +:045A49000000000059 +:045A4A000000000058 +:045A4B000000000057 +:045A4C000000000056 +:045A4D000000000055 +:045A4E000000000054 +:045A4F000000000053 +:045A50000000000052 +:045A51000000000051 +:045A52000000000050 +:045A5300000000004F +:045A5400000000004E +:045A5500000000004D +:045A5600000000004C +:045A5700000000004B +:045A5800000000004A +:045A59000000000049 +:045A5A000000000048 +:045A5B000000000047 +:045A5C000000000046 +:045A5D000000000045 +:045A5E000000000044 +:045A5F000000000043 +:045A60000000000042 +:045A61000000000041 +:045A62000000000040 +:045A6300000000003F +:045A6400000000003E +:045A6500000000003D +:045A6600000000003C +:045A6700000000003B +:045A6800000000003A +:045A69000000000039 +:045A6A000000000038 +:045A6B000000000037 +:045A6C000000000036 +:045A6D000000000035 +:045A6E000000000034 +:045A6F000000000033 +:045A70000000000032 +:045A71000000000031 +:045A72000000000030 +:045A7300000000002F +:045A7400000000002E +:045A7500000000002D +:045A7600000000002C +:045A7700000000002B +:045A7800000000002A +:045A79000000000029 +:045A7A000000000028 +:045A7B000000000027 +:045A7C000000000026 +:045A7D000000000025 +:045A7E000000000024 +:045A7F000000000023 +:045A80000000000022 +:045A81000000000021 +:045A82000000000020 +:045A8300000000001F +:045A8400000000001E +:045A8500000000001D +:045A8600000000001C +:045A8700000000001B +:045A8800000000001A +:045A89000000000019 +:045A8A000000000018 +:045A8B000000000017 +:045A8C000000000016 +:045A8D000000000015 +:045A8E000000000014 +:045A8F000000000013 +:045A90000000000012 +:045A91000000000011 +:045A92000000000010 +:045A9300000000000F +:045A9400000000000E +:045A9500000000000D +:045A9600000000000C +:045A9700000000000B +:045A9800000000000A +:045A99000000000009 +:045A9A000000000008 +:045A9B000000000007 +:045A9C000000000006 +:045A9D000000000005 +:045A9E000000000004 +:045A9F000000000003 +:045AA0000000000002 +:045AA1000000000001 +:045AA2000000000000 +:045AA30000000000FF +:045AA40000000000FE +:045AA50000000000FD +:045AA60000000000FC +:045AA70000000000FB +:045AA80000000000FA +:045AA90000000000F9 +:045AAA0000000000F8 +:045AAB0000000000F7 +:045AAC0000000000F6 +:045AAD0000000000F5 +:045AAE0000000000F4 +:045AAF0000000000F3 +:045AB00000000000F2 +:045AB10000000000F1 +:045AB20000000000F0 +:045AB30000000000EF +:045AB40000000000EE +:045AB50000000000ED +:045AB60000000000EC +:045AB70000000000EB +:045AB80000000000EA +:045AB90000000000E9 +:045ABA0000000000E8 +:045ABB0000000000E7 +:045ABC0000000000E6 +:045ABD0000000000E5 +:045ABE0000000000E4 +:045ABF0000000000E3 +:045AC00000000000E2 +:045AC10000000000E1 +:045AC20000000000E0 +:045AC30000000000DF +:045AC40000000000DE +:045AC50000000000DD +:045AC60000000000DC +:045AC70000000000DB +:045AC80000000000DA +:045AC90000000000D9 +:045ACA0000000000D8 +:045ACB0000000000D7 +:045ACC0000000000D6 +:045ACD0000000000D5 +:045ACE0000000000D4 +:045ACF0000000000D3 +:045AD00000000000D2 +:045AD10000000000D1 +:045AD20000000000D0 +:045AD30000000000CF +:045AD40000000000CE +:045AD50000000000CD +:045AD60000000000CC +:045AD70000000000CB +:045AD80000000000CA +:045AD90000000000C9 +:045ADA0000000000C8 +:045ADB0000000000C7 +:045ADC0000000000C6 +:045ADD0000000000C5 +:045ADE0000000000C4 +:045ADF0000000000C3 +:045AE00000000000C2 +:045AE10000000000C1 +:045AE20000000000C0 +:045AE30000000000BF +:045AE40000000000BE +:045AE50000000000BD +:045AE60000000000BC +:045AE70000000000BB +:045AE80000000000BA +:045AE90000000000B9 +:045AEA0000000000B8 +:045AEB0000000000B7 +:045AEC0000000000B6 +:045AED0000000000B5 +:045AEE0000000000B4 +:045AEF0000000000B3 +:045AF00000000000B2 +:045AF10000000000B1 +:045AF20000000000B0 +:045AF30000000000AF +:045AF40000000000AE +:045AF50000000000AD +:045AF60000000000AC +:045AF70000000000AB +:045AF80000000000AA +:045AF90000000000A9 +:045AFA0000000000A8 +:045AFB0000000000A7 +:045AFC0000000000A6 +:045AFD0000000000A5 +:045AFE0000000000A4 +:045AFF0000000000A3 +:045B000000000000A1 +:045B010000000000A0 +:045B0200000000009F +:045B0300000000009E +:045B0400000000009D +:045B0500000000009C +:045B0600000000009B +:045B0700000000009A +:045B08000000000099 +:045B09000000000098 +:045B0A000000000097 +:045B0B000000000096 +:045B0C000000000095 +:045B0D000000000094 +:045B0E000000000093 +:045B0F000000000092 +:045B10000000000091 +:045B11000000000090 +:045B1200000000008F +:045B1300000000008E +:045B1400000000008D +:045B1500000000008C +:045B1600000000008B +:045B1700000000008A +:045B18000000000089 +:045B19000000000088 +:045B1A000000000087 +:045B1B000000000086 +:045B1C000000000085 +:045B1D000000000084 +:045B1E000000000083 +:045B1F000000000082 +:045B20000000000081 +:045B21000000000080 +:045B2200000000007F +:045B2300000000007E +:045B2400000000007D +:045B2500000000007C +:045B2600000000007B +:045B2700000000007A +:045B28000000000079 +:045B29000000000078 +:045B2A000000000077 +:045B2B000000000076 +:045B2C000000000075 +:045B2D000000000074 +:045B2E000000000073 +:045B2F000000000072 +:045B30000000000071 +:045B31000000000070 +:045B3200000000006F +:045B3300000000006E +:045B3400000000006D +:045B3500000000006C +:045B3600000000006B +:045B3700000000006A +:045B38000000000069 +:045B39000000000068 +:045B3A000000000067 +:045B3B000000000066 +:045B3C000000000065 +:045B3D000000000064 +:045B3E000000000063 +:045B3F000000000062 +:045B40000000000061 +:045B41000000000060 +:045B4200000000005F +:045B4300000000005E +:045B4400000000005D +:045B4500000000005C +:045B4600000000005B +:045B4700000000005A +:045B48000000000059 +:045B49000000000058 +:045B4A000000000057 +:045B4B000000000056 +:045B4C000000000055 +:045B4D000000000054 +:045B4E000000000053 +:045B4F000000000052 +:045B50000000000051 +:045B51000000000050 +:045B5200000000004F +:045B5300000000004E +:045B5400000000004D +:045B5500000000004C +:045B5600000000004B +:045B5700000000004A +:045B58000000000049 +:045B59000000000048 +:045B5A000000000047 +:045B5B000000000046 +:045B5C000000000045 +:045B5D000000000044 +:045B5E000000000043 +:045B5F000000000042 +:045B60000000000041 +:045B61000000000040 +:045B6200000000003F +:045B6300000000003E +:045B6400000000003D +:045B6500000000003C +:045B6600000000003B +:045B6700000000003A +:045B68000000000039 +:045B69000000000038 +:045B6A000000000037 +:045B6B000000000036 +:045B6C000000000035 +:045B6D000000000034 +:045B6E000000000033 +:045B6F000000000032 +:045B70000000000031 +:045B71000000000030 +:045B7200000000002F +:045B7300000000002E +:045B7400000000002D +:045B7500000000002C +:045B7600000000002B +:045B7700000000002A +:045B78000000000029 +:045B79000000000028 +:045B7A000000000027 +:045B7B000000000026 +:045B7C000000000025 +:045B7D000000000024 +:045B7E000000000023 +:045B7F000000000022 +:045B80000000000021 +:045B81000000000020 +:045B8200000000001F +:045B8300000000001E +:045B8400000000001D +:045B8500000000001C +:045B8600000000001B +:045B8700000000001A +:045B88000000000019 +:045B89000000000018 +:045B8A000000000017 +:045B8B000000000016 +:045B8C000000000015 +:045B8D000000000014 +:045B8E000000000013 +:045B8F000000000012 +:045B90000000000011 +:045B91000000000010 +:045B9200000000000F +:045B9300000000000E +:045B9400000000000D +:045B9500000000000C +:045B9600000000000B +:045B9700000000000A +:045B98000000000009 +:045B99000000000008 +:045B9A000000000007 +:045B9B000000000006 +:045B9C000000000005 +:045B9D000000000004 +:045B9E000000000003 +:045B9F000000000002 +:045BA0000000000001 +:045BA1000000000000 +:045BA20000000000FF +:045BA30000000000FE +:045BA40000000000FD +:045BA50000000000FC +:045BA60000000000FB +:045BA70000000000FA +:045BA80000000000F9 +:045BA90000000000F8 +:045BAA0000000000F7 +:045BAB0000000000F6 +:045BAC0000000000F5 +:045BAD0000000000F4 +:045BAE0000000000F3 +:045BAF0000000000F2 +:045BB00000000000F1 +:045BB10000000000F0 +:045BB20000000000EF +:045BB30000000000EE +:045BB40000000000ED +:045BB50000000000EC +:045BB60000000000EB +:045BB70000000000EA +:045BB80000000000E9 +:045BB90000000000E8 +:045BBA0000000000E7 +:045BBB0000000000E6 +:045BBC0000000000E5 +:045BBD0000000000E4 +:045BBE0000000000E3 +:045BBF0000000000E2 +:045BC00000000000E1 +:045BC10000000000E0 +:045BC20000000000DF +:045BC30000000000DE +:045BC40000000000DD +:045BC50000000000DC +:045BC60000000000DB +:045BC70000000000DA +:045BC80000000000D9 +:045BC90000000000D8 +:045BCA0000000000D7 +:045BCB0000000000D6 +:045BCC0000000000D5 +:045BCD0000000000D4 +:045BCE0000000000D3 +:045BCF0000000000D2 +:045BD00000000000D1 +:045BD10000000000D0 +:045BD20000000000CF +:045BD30000000000CE +:045BD40000000000CD +:045BD50000000000CC +:045BD60000000000CB +:045BD70000000000CA +:045BD80000000000C9 +:045BD90000000000C8 +:045BDA0000000000C7 +:045BDB0000000000C6 +:045BDC0000000000C5 +:045BDD0000000000C4 +:045BDE0000000000C3 +:045BDF0000000000C2 +:045BE00000000000C1 +:045BE10000000000C0 +:045BE20000000000BF +:045BE30000000000BE +:045BE40000000000BD +:045BE50000000000BC +:045BE60000000000BB +:045BE70000000000BA +:045BE80000000000B9 +:045BE90000000000B8 +:045BEA0000000000B7 +:045BEB0000000000B6 +:045BEC0000000000B5 +:045BED0000000000B4 +:045BEE0000000000B3 +:045BEF0000000000B2 +:045BF00000000000B1 +:045BF10000000000B0 +:045BF20000000000AF +:045BF30000000000AE +:045BF40000000000AD +:045BF50000000000AC +:045BF60000000000AB +:045BF70000000000AA +:045BF80000000000A9 +:045BF90000000000A8 +:045BFA0000000000A7 +:045BFB0000000000A6 +:045BFC0000000000A5 +:045BFD0000000000A4 +:045BFE0000000000A3 +:045BFF0000000000A2 +:045C000000000000A0 +:045C0100000000009F +:045C0200000000009E +:045C0300000000009D +:045C0400000000009C +:045C0500000000009B +:045C0600000000009A +:045C07000000000099 +:045C08000000000098 +:045C09000000000097 +:045C0A000000000096 +:045C0B000000000095 +:045C0C000000000094 +:045C0D000000000093 +:045C0E000000000092 +:045C0F000000000091 +:045C10000000000090 +:045C1100000000008F +:045C1200000000008E +:045C1300000000008D +:045C1400000000008C +:045C1500000000008B +:045C1600000000008A +:045C17000000000089 +:045C18000000000088 +:045C19000000000087 +:045C1A000000000086 +:045C1B000000000085 +:045C1C000000000084 +:045C1D000000000083 +:045C1E000000000082 +:045C1F000000000081 +:045C20000000000080 +:045C2100000000007F +:045C2200000000007E +:045C2300000000007D +:045C2400000000007C +:045C2500000000007B +:045C2600000000007A +:045C27000000000079 +:045C28000000000078 +:045C29000000000077 +:045C2A000000000076 +:045C2B000000000075 +:045C2C000000000074 +:045C2D000000000073 +:045C2E000000000072 +:045C2F000000000071 +:045C30000000000070 +:045C3100000000006F +:045C3200000000006E +:045C3300000000006D +:045C3400000000006C +:045C3500000000006B +:045C3600000000006A +:045C37000000000069 +:045C38000000000068 +:045C39000000000067 +:045C3A000000000066 +:045C3B000000000065 +:045C3C000000000064 +:045C3D000000000063 +:045C3E000000000062 +:045C3F000000000061 +:045C40000000000060 +:045C4100000000005F +:045C4200000000005E +:045C4300000000005D +:045C4400000000005C +:045C4500000000005B +:045C4600000000005A +:045C47000000000059 +:045C48000000000058 +:045C49000000000057 +:045C4A000000000056 +:045C4B000000000055 +:045C4C000000000054 +:045C4D000000000053 +:045C4E000000000052 +:045C4F000000000051 +:045C50000000000050 +:045C5100000000004F +:045C5200000000004E +:045C5300000000004D +:045C5400000000004C +:045C5500000000004B +:045C5600000000004A +:045C57000000000049 +:045C58000000000048 +:045C59000000000047 +:045C5A000000000046 +:045C5B000000000045 +:045C5C000000000044 +:045C5D000000000043 +:045C5E000000000042 +:045C5F000000000041 +:045C60000000000040 +:045C6100000000003F +:045C6200000000003E +:045C6300000000003D +:045C6400000000003C +:045C6500000000003B +:045C6600000000003A +:045C67000000000039 +:045C68000000000038 +:045C69000000000037 +:045C6A000000000036 +:045C6B000000000035 +:045C6C000000000034 +:045C6D000000000033 +:045C6E000000000032 +:045C6F000000000031 +:045C70000000000030 +:045C7100000000002F +:045C7200000000002E +:045C7300000000002D +:045C7400000000002C +:045C7500000000002B +:045C7600000000002A +:045C77000000000029 +:045C78000000000028 +:045C79000000000027 +:045C7A000000000026 +:045C7B000000000025 +:045C7C000000000024 +:045C7D000000000023 +:045C7E000000000022 +:045C7F000000000021 +:045C80000000000020 +:045C8100000000001F +:045C8200000000001E +:045C8300000000001D +:045C8400000000001C +:045C8500000000001B +:045C8600000000001A +:045C87000000000019 +:045C88000000000018 +:045C89000000000017 +:045C8A000000000016 +:045C8B000000000015 +:045C8C000000000014 +:045C8D000000000013 +:045C8E000000000012 +:045C8F000000000011 +:045C90000000000010 +:045C9100000000000F +:045C9200000000000E +:045C9300000000000D +:045C9400000000000C +:045C9500000000000B +:045C9600000000000A +:045C97000000000009 +:045C98000000000008 +:045C99000000000007 +:045C9A000000000006 +:045C9B000000000005 +:045C9C000000000004 +:045C9D000000000003 +:045C9E000000000002 +:045C9F000000000001 +:045CA0000000000000 +:045CA10000000000FF +:045CA20000000000FE +:045CA30000000000FD +:045CA40000000000FC +:045CA50000000000FB +:045CA60000000000FA +:045CA70000000000F9 +:045CA80000000000F8 +:045CA90000000000F7 +:045CAA0000000000F6 +:045CAB0000000000F5 +:045CAC0000000000F4 +:045CAD0000000000F3 +:045CAE0000000000F2 +:045CAF0000000000F1 +:045CB00000000000F0 +:045CB10000000000EF +:045CB20000000000EE +:045CB30000000000ED +:045CB40000000000EC +:045CB50000000000EB +:045CB60000000000EA +:045CB70000000000E9 +:045CB80000000000E8 +:045CB90000000000E7 +:045CBA0000000000E6 +:045CBB0000000000E5 +:045CBC0000000000E4 +:045CBD0000000000E3 +:045CBE0000000000E2 +:045CBF0000000000E1 +:045CC00000000000E0 +:045CC10000000000DF +:045CC20000000000DE +:045CC30000000000DD +:045CC40000000000DC +:045CC50000000000DB +:045CC60000000000DA +:045CC70000000000D9 +:045CC80000000000D8 +:045CC90000000000D7 +:045CCA0000000000D6 +:045CCB0000000000D5 +:045CCC0000000000D4 +:045CCD0000000000D3 +:045CCE0000000000D2 +:045CCF0000000000D1 +:045CD00000000000D0 +:045CD10000000000CF +:045CD20000000000CE +:045CD30000000000CD +:045CD40000000000CC +:045CD50000000000CB +:045CD60000000000CA +:045CD70000000000C9 +:045CD80000000000C8 +:045CD90000000000C7 +:045CDA0000000000C6 +:045CDB0000000000C5 +:045CDC0000000000C4 +:045CDD0000000000C3 +:045CDE0000000000C2 +:045CDF0000000000C1 +:045CE00000000000C0 +:045CE10000000000BF +:045CE20000000000BE +:045CE30000000000BD +:045CE40000000000BC +:045CE50000000000BB +:045CE60000000000BA +:045CE70000000000B9 +:045CE80000000000B8 +:045CE90000000000B7 +:045CEA0000000000B6 +:045CEB0000000000B5 +:045CEC0000000000B4 +:045CED0000000000B3 +:045CEE0000000000B2 +:045CEF0000000000B1 +:045CF00000000000B0 +:045CF10000000000AF +:045CF20000000000AE +:045CF30000000000AD +:045CF40000000000AC +:045CF50000000000AB +:045CF60000000000AA +:045CF70000000000A9 +:045CF80000000000A8 +:045CF90000000000A7 +:045CFA0000000000A6 +:045CFB0000000000A5 +:045CFC0000000000A4 +:045CFD0000000000A3 +:045CFE0000000000A2 +:045CFF0000000000A1 +:045D0000000000009F +:045D0100000000009E +:045D0200000000009D +:045D0300000000009C +:045D0400000000009B +:045D0500000000009A +:045D06000000000099 +:045D07000000000098 +:045D08000000000097 +:045D09000000000096 +:045D0A000000000095 +:045D0B000000000094 +:045D0C000000000093 +:045D0D000000000092 +:045D0E000000000091 +:045D0F000000000090 +:045D1000000000008F +:045D1100000000008E +:045D1200000000008D +:045D1300000000008C +:045D1400000000008B +:045D1500000000008A +:045D16000000000089 +:045D17000000000088 +:045D18000000000087 +:045D19000000000086 +:045D1A000000000085 +:045D1B000000000084 +:045D1C000000000083 +:045D1D000000000082 +:045D1E000000000081 +:045D1F000000000080 +:045D2000000000007F +:045D2100000000007E +:045D2200000000007D +:045D2300000000007C +:045D2400000000007B +:045D2500000000007A +:045D26000000000079 +:045D27000000000078 +:045D28000000000077 +:045D29000000000076 +:045D2A000000000075 +:045D2B000000000074 +:045D2C000000000073 +:045D2D000000000072 +:045D2E000000000071 +:045D2F000000000070 +:045D3000000000006F +:045D3100000000006E +:045D3200000000006D +:045D3300000000006C +:045D3400000000006B +:045D3500000000006A +:045D36000000000069 +:045D37000000000068 +:045D38000000000067 +:045D39000000000066 +:045D3A000000000065 +:045D3B000000000064 +:045D3C000000000063 +:045D3D000000000062 +:045D3E000000000061 +:045D3F000000000060 +:045D4000000000005F +:045D4100000000005E +:045D4200000000005D +:045D4300000000005C +:045D4400000000005B +:045D4500000000005A +:045D46000000000059 +:045D47000000000058 +:045D48000000000057 +:045D49000000000056 +:045D4A000000000055 +:045D4B000000000054 +:045D4C000000000053 +:045D4D000000000052 +:045D4E000000000051 +:045D4F000000000050 +:045D5000000000004F +:045D5100000000004E +:045D5200000000004D +:045D5300000000004C +:045D5400000000004B +:045D5500000000004A +:045D56000000000049 +:045D57000000000048 +:045D58000000000047 +:045D59000000000046 +:045D5A000000000045 +:045D5B000000000044 +:045D5C000000000043 +:045D5D000000000042 +:045D5E000000000041 +:045D5F000000000040 +:045D6000000000003F +:045D6100000000003E +:045D6200000000003D +:045D6300000000003C +:045D6400000000003B +:045D6500000000003A +:045D66000000000039 +:045D67000000000038 +:045D68000000000037 +:045D69000000000036 +:045D6A000000000035 +:045D6B000000000034 +:045D6C000000000033 +:045D6D000000000032 +:045D6E000000000031 +:045D6F000000000030 +:045D7000000000002F +:045D7100000000002E +:045D7200000000002D +:045D7300000000002C +:045D7400000000002B +:045D7500000000002A +:045D76000000000029 +:045D77000000000028 +:045D78000000000027 +:045D79000000000026 +:045D7A000000000025 +:045D7B000000000024 +:045D7C000000000023 +:045D7D000000000022 +:045D7E000000000021 +:045D7F000000000020 +:045D8000000000001F +:045D8100000000001E +:045D8200000000001D +:045D8300000000001C +:045D8400000000001B +:045D8500000000001A +:045D86000000000019 +:045D87000000000018 +:045D88000000000017 +:045D89000000000016 +:045D8A000000000015 +:045D8B000000000014 +:045D8C000000000013 +:045D8D000000000012 +:045D8E000000000011 +:045D8F000000000010 +:045D9000000000000F +:045D9100000000000E +:045D9200000000000D +:045D9300000000000C +:045D9400000000000B +:045D9500000000000A +:045D96000000000009 +:045D97000000000008 +:045D98000000000007 +:045D99000000000006 +:045D9A000000000005 +:045D9B000000000004 +:045D9C000000000003 +:045D9D000000000002 +:045D9E000000000001 +:045D9F000000000000 +:045DA00000000000FF +:045DA10000000000FE +:045DA20000000000FD +:045DA30000000000FC +:045DA40000000000FB +:045DA50000000000FA +:045DA60000000000F9 +:045DA70000000000F8 +:045DA80000000000F7 +:045DA90000000000F6 +:045DAA0000000000F5 +:045DAB0000000000F4 +:045DAC0000000000F3 +:045DAD0000000000F2 +:045DAE0000000000F1 +:045DAF0000000000F0 +:045DB00000000000EF +:045DB10000000000EE +:045DB20000000000ED +:045DB30000000000EC +:045DB40000000000EB +:045DB50000000000EA +:045DB60000000000E9 +:045DB70000000000E8 +:045DB80000000000E7 +:045DB90000000000E6 +:045DBA0000000000E5 +:045DBB0000000000E4 +:045DBC0000000000E3 +:045DBD0000000000E2 +:045DBE0000000000E1 +:045DBF0000000000E0 +:045DC00000000000DF +:045DC10000000000DE +:045DC20000000000DD +:045DC30000000000DC +:045DC40000000000DB +:045DC50000000000DA +:045DC60000000000D9 +:045DC70000000000D8 +:045DC80000000000D7 +:045DC90000000000D6 +:045DCA0000000000D5 +:045DCB0000000000D4 +:045DCC0000000000D3 +:045DCD0000000000D2 +:045DCE0000000000D1 +:045DCF0000000000D0 +:045DD00000000000CF +:045DD10000000000CE +:045DD20000000000CD +:045DD30000000000CC +:045DD40000000000CB +:045DD50000000000CA +:045DD60000000000C9 +:045DD70000000000C8 +:045DD80000000000C7 +:045DD90000000000C6 +:045DDA0000000000C5 +:045DDB0000000000C4 +:045DDC0000000000C3 +:045DDD0000000000C2 +:045DDE0000000000C1 +:045DDF0000000000C0 +:045DE00000000000BF +:045DE10000000000BE +:045DE20000000000BD +:045DE30000000000BC +:045DE40000000000BB +:045DE50000000000BA +:045DE60000000000B9 +:045DE70000000000B8 +:045DE80000000000B7 +:045DE90000000000B6 +:045DEA0000000000B5 +:045DEB0000000000B4 +:045DEC0000000000B3 +:045DED0000000000B2 +:045DEE0000000000B1 +:045DEF0000000000B0 +:045DF00000000000AF +:045DF10000000000AE +:045DF20000000000AD +:045DF30000000000AC +:045DF40000000000AB +:045DF50000000000AA +:045DF60000000000A9 +:045DF70000000000A8 +:045DF80000000000A7 +:045DF90000000000A6 +:045DFA0000000000A5 +:045DFB0000000000A4 +:045DFC0000000000A3 +:045DFD0000000000A2 +:045DFE0000000000A1 +:045DFF0000000000A0 +:045E0000000000009E +:045E0100000000009D +:045E0200000000009C +:045E0300000000009B +:045E0400000000009A +:045E05000000000099 +:045E06000000000098 +:045E07000000000097 +:045E08000000000096 +:045E09000000000095 +:045E0A000000000094 +:045E0B000000000093 +:045E0C000000000092 +:045E0D000000000091 +:045E0E000000000090 +:045E0F00000000008F +:045E1000000000008E +:045E1100000000008D +:045E1200000000008C +:045E1300000000008B +:045E1400000000008A +:045E15000000000089 +:045E16000000000088 +:045E17000000000087 +:045E18000000000086 +:045E19000000000085 +:045E1A000000000084 +:045E1B000000000083 +:045E1C000000000082 +:045E1D000000000081 +:045E1E000000000080 +:045E1F00000000007F +:045E2000000000007E +:045E2100000000007D +:045E2200000000007C +:045E2300000000007B +:045E2400000000007A +:045E25000000000079 +:045E26000000000078 +:045E27000000000077 +:045E28000000000076 +:045E29000000000075 +:045E2A000000000074 +:045E2B000000000073 +:045E2C000000000072 +:045E2D000000000071 +:045E2E000000000070 +:045E2F00000000006F +:045E3000000000006E +:045E3100000000006D +:045E3200000000006C +:045E3300000000006B +:045E3400000000006A +:045E35000000000069 +:045E36000000000068 +:045E37000000000067 +:045E38000000000066 +:045E39000000000065 +:045E3A000000000064 +:045E3B000000000063 +:045E3C000000000062 +:045E3D000000000061 +:045E3E000000000060 +:045E3F00000000005F +:045E4000000000005E +:045E4100000000005D +:045E4200000000005C +:045E4300000000005B +:045E4400000000005A +:045E45000000000059 +:045E46000000000058 +:045E47000000000057 +:045E48000000000056 +:045E49000000000055 +:045E4A000000000054 +:045E4B000000000053 +:045E4C000000000052 +:045E4D000000000051 +:045E4E000000000050 +:045E4F00000000004F +:045E5000000000004E +:045E5100000000004D +:045E5200000000004C +:045E5300000000004B +:045E5400000000004A +:045E55000000000049 +:045E56000000000048 +:045E57000000000047 +:045E58000000000046 +:045E59000000000045 +:045E5A000000000044 +:045E5B000000000043 +:045E5C000000000042 +:045E5D000000000041 +:045E5E000000000040 +:045E5F00000000003F +:045E6000000000003E +:045E6100000000003D +:045E6200000000003C +:045E6300000000003B +:045E6400000000003A +:045E65000000000039 +:045E66000000000038 +:045E67000000000037 +:045E68000000000036 +:045E69000000000035 +:045E6A000000000034 +:045E6B000000000033 +:045E6C000000000032 +:045E6D000000000031 +:045E6E000000000030 +:045E6F00000000002F +:045E7000000000002E +:045E7100000000002D +:045E7200000000002C +:045E7300000000002B +:045E7400000000002A +:045E75000000000029 +:045E76000000000028 +:045E77000000000027 +:045E78000000000026 +:045E79000000000025 +:045E7A000000000024 +:045E7B000000000023 +:045E7C000000000022 +:045E7D000000000021 +:045E7E000000000020 +:045E7F00000000001F +:045E8000000000001E +:045E8100000000001D +:045E8200000000001C +:045E8300000000001B +:045E8400000000001A +:045E85000000000019 +:045E86000000000018 +:045E87000000000017 +:045E88000000000016 +:045E89000000000015 +:045E8A000000000014 +:045E8B000000000013 +:045E8C000000000012 +:045E8D000000000011 +:045E8E000000000010 +:045E8F00000000000F +:045E9000000000000E +:045E9100000000000D +:045E9200000000000C +:045E9300000000000B +:045E9400000000000A +:045E95000000000009 +:045E96000000000008 +:045E97000000000007 +:045E98000000000006 +:045E99000000000005 +:045E9A000000000004 +:045E9B000000000003 +:045E9C000000000002 +:045E9D000000000001 +:045E9E000000000000 +:045E9F0000000000FF +:045EA00000000000FE +:045EA10000000000FD +:045EA20000000000FC +:045EA30000000000FB +:045EA40000000000FA +:045EA50000000000F9 +:045EA60000000000F8 +:045EA70000000000F7 +:045EA80000000000F6 +:045EA90000000000F5 +:045EAA0000000000F4 +:045EAB0000000000F3 +:045EAC0000000000F2 +:045EAD0000000000F1 +:045EAE0000000000F0 +:045EAF0000000000EF +:045EB00000000000EE +:045EB10000000000ED +:045EB20000000000EC +:045EB30000000000EB +:045EB40000000000EA +:045EB50000000000E9 +:045EB60000000000E8 +:045EB70000000000E7 +:045EB80000000000E6 +:045EB90000000000E5 +:045EBA0000000000E4 +:045EBB0000000000E3 +:045EBC0000000000E2 +:045EBD0000000000E1 +:045EBE0000000000E0 +:045EBF0000000000DF +:045EC00000000000DE +:045EC10000000000DD +:045EC20000000000DC +:045EC30000000000DB +:045EC40000000000DA +:045EC50000000000D9 +:045EC60000000000D8 +:045EC70000000000D7 +:045EC80000000000D6 +:045EC90000000000D5 +:045ECA0000000000D4 +:045ECB0000000000D3 +:045ECC0000000000D2 +:045ECD0000000000D1 +:045ECE0000000000D0 +:045ECF0000000000CF +:045ED00000000000CE +:045ED10000000000CD +:045ED20000000000CC +:045ED30000000000CB +:045ED40000000000CA +:045ED50000000000C9 +:045ED60000000000C8 +:045ED70000000000C7 +:045ED80000000000C6 +:045ED90000000000C5 +:045EDA0000000000C4 +:045EDB0000000000C3 +:045EDC0000000000C2 +:045EDD0000000000C1 +:045EDE0000000000C0 +:045EDF0000000000BF +:045EE00000000000BE +:045EE10000000000BD +:045EE20000000000BC +:045EE30000000000BB +:045EE40000000000BA +:045EE50000000000B9 +:045EE60000000000B8 +:045EE70000000000B7 +:045EE80000000000B6 +:045EE90000000000B5 +:045EEA0000000000B4 +:045EEB0000000000B3 +:045EEC0000000000B2 +:045EED0000000000B1 +:045EEE0000000000B0 +:045EEF0000000000AF +:045EF00000000000AE +:045EF10000000000AD +:045EF20000000000AC +:045EF30000000000AB +:045EF40000000000AA +:045EF50000000000A9 +:045EF60000000000A8 +:045EF70000000000A7 +:045EF80000000000A6 +:045EF90000000000A5 +:045EFA0000000000A4 +:045EFB0000000000A3 +:045EFC0000000000A2 +:045EFD0000000000A1 +:045EFE0000000000A0 +:045EFF00000000009F +:045F0000000000009D +:045F0100000000009C +:045F0200000000009B +:045F0300000000009A +:045F04000000000099 +:045F05000000000098 +:045F06000000000097 +:045F07000000000096 +:045F08000000000095 +:045F09000000000094 +:045F0A000000000093 +:045F0B000000000092 +:045F0C000000000091 +:045F0D000000000090 +:045F0E00000000008F +:045F0F00000000008E +:045F1000000000008D +:045F1100000000008C +:045F1200000000008B +:045F1300000000008A +:045F14000000000089 +:045F15000000000088 +:045F16000000000087 +:045F17000000000086 +:045F18000000000085 +:045F19000000000084 +:045F1A000000000083 +:045F1B000000000082 +:045F1C000000000081 +:045F1D000000000080 +:045F1E00000000007F +:045F1F00000000007E +:045F2000000000007D +:045F2100000000007C +:045F2200000000007B +:045F2300000000007A +:045F24000000000079 +:045F25000000000078 +:045F26000000000077 +:045F27000000000076 +:045F28000000000075 +:045F29000000000074 +:045F2A000000000073 +:045F2B000000000072 +:045F2C000000000071 +:045F2D000000000070 +:045F2E00000000006F +:045F2F00000000006E +:045F3000000000006D +:045F3100000000006C +:045F3200000000006B +:045F3300000000006A +:045F34000000000069 +:045F35000000000068 +:045F36000000000067 +:045F37000000000066 +:045F38000000000065 +:045F39000000000064 +:045F3A000000000063 +:045F3B000000000062 +:045F3C000000000061 +:045F3D000000000060 +:045F3E00000000005F +:045F3F00000000005E +:045F4000000000005D +:045F4100000000005C +:045F4200000000005B +:045F4300000000005A +:045F44000000000059 +:045F45000000000058 +:045F46000000000057 +:045F47000000000056 +:045F48000000000055 +:045F49000000000054 +:045F4A000000000053 +:045F4B000000000052 +:045F4C000000000051 +:045F4D000000000050 +:045F4E00000000004F +:045F4F00000000004E +:045F5000000000004D +:045F5100000000004C +:045F5200000000004B +:045F5300000000004A +:045F54000000000049 +:045F55000000000048 +:045F56000000000047 +:045F57000000000046 +:045F58000000000045 +:045F59000000000044 +:045F5A000000000043 +:045F5B000000000042 +:045F5C000000000041 +:045F5D000000000040 +:045F5E00000000003F +:045F5F00000000003E +:045F6000000000003D +:045F6100000000003C +:045F6200000000003B +:045F6300000000003A +:045F64000000000039 +:045F65000000000038 +:045F66000000000037 +:045F67000000000036 +:045F68000000000035 +:045F69000000000034 +:045F6A000000000033 +:045F6B000000000032 +:045F6C000000000031 +:045F6D000000000030 +:045F6E00000000002F +:045F6F00000000002E +:045F7000000000002D +:045F7100000000002C +:045F7200000000002B +:045F7300000000002A +:045F74000000000029 +:045F75000000000028 +:045F76000000000027 +:045F77000000000026 +:045F78000000000025 +:045F79000000000024 +:045F7A000000000023 +:045F7B000000000022 +:045F7C000000000021 +:045F7D000000000020 +:045F7E00000000001F +:045F7F00000000001E +:045F8000000000001D +:045F8100000000001C +:045F8200000000001B +:045F8300000000001A +:045F84000000000019 +:045F85000000000018 +:045F86000000000017 +:045F87000000000016 +:045F88000000000015 +:045F89000000000014 +:045F8A000000000013 +:045F8B000000000012 +:045F8C000000000011 +:045F8D000000000010 +:045F8E00000000000F +:045F8F00000000000E +:045F9000000000000D +:045F9100000000000C +:045F9200000000000B +:045F9300000000000A +:045F94000000000009 +:045F95000000000008 +:045F96000000000007 +:045F97000000000006 +:045F98000000000005 +:045F99000000000004 +:045F9A000000000003 +:045F9B000000000002 +:045F9C000000000001 +:045F9D000000000000 +:045F9E0000000000FF +:045F9F0000000000FE +:045FA00000000000FD +:045FA10000000000FC +:045FA20000000000FB +:045FA30000000000FA +:045FA40000000000F9 +:045FA50000000000F8 +:045FA60000000000F7 +:045FA70000000000F6 +:045FA80000000000F5 +:045FA90000000000F4 +:045FAA0000000000F3 +:045FAB0000000000F2 +:045FAC0000000000F1 +:045FAD0000000000F0 +:045FAE0000000000EF +:045FAF0000000000EE +:045FB00000000000ED +:045FB10000000000EC +:045FB20000000000EB +:045FB30000000000EA +:045FB40000000000E9 +:045FB50000000000E8 +:045FB60000000000E7 +:045FB70000000000E6 +:045FB80000000000E5 +:045FB90000000000E4 +:045FBA0000000000E3 +:045FBB0000000000E2 +:045FBC0000000000E1 +:045FBD0000000000E0 +:045FBE0000000000DF +:045FBF0000000000DE +:045FC00000000000DD +:045FC10000000000DC +:045FC20000000000DB +:045FC30000000000DA +:045FC40000000000D9 +:045FC50000000000D8 +:045FC60000000000D7 +:045FC70000000000D6 +:045FC80000000000D5 +:045FC90000000000D4 +:045FCA0000000000D3 +:045FCB0000000000D2 +:045FCC0000000000D1 +:045FCD0000000000D0 +:045FCE0000000000CF +:045FCF0000000000CE +:045FD00000000000CD +:045FD10000000000CC +:045FD20000000000CB +:045FD30000000000CA +:045FD40000000000C9 +:045FD50000000000C8 +:045FD60000000000C7 +:045FD70000000000C6 +:045FD80000000000C5 +:045FD90000000000C4 +:045FDA0000000000C3 +:045FDB0000000000C2 +:045FDC0000000000C1 +:045FDD0000000000C0 +:045FDE0000000000BF +:045FDF0000000000BE +:045FE00000000000BD +:045FE10000000000BC +:045FE20000000000BB +:045FE30000000000BA +:045FE40000000000B9 +:045FE50000000000B8 +:045FE60000000000B7 +:045FE70000000000B6 +:045FE80000000000B5 +:045FE90000000000B4 +:045FEA0000000000B3 +:045FEB0000000000B2 +:045FEC0000000000B1 +:045FED0000000000B0 +:045FEE0000000000AF +:045FEF0000000000AE +:045FF00000000000AD +:045FF10000000000AC +:045FF20000000000AB +:045FF30000000000AA +:045FF40000000000A9 +:045FF50000000000A8 +:045FF60000000000A7 +:045FF70000000000A6 +:045FF80000000000A5 +:045FF90000000000A4 +:045FFA0000000000A3 +:045FFB0000000000A2 +:045FFC0000000000A1 +:045FFD0000000000A0 +:045FFE00000000009F +:045FFF00000000009E +:04600000000000009C +:04600100000000009B +:04600200000000009A +:046003000000000099 +:046004000000000098 +:046005000000000097 +:046006000000000096 +:046007000000000095 +:046008000000000094 +:046009000000000093 +:04600A000000000092 +:04600B000000000091 +:04600C000000000090 +:04600D00000000008F +:04600E00000000008E +:04600F00000000008D +:04601000000000008C +:04601100000000008B +:04601200000000008A +:046013000000000089 +:046014000000000088 +:046015000000000087 +:046016000000000086 +:046017000000000085 +:046018000000000084 +:046019000000000083 +:04601A000000000082 +:04601B000000000081 +:04601C000000000080 +:04601D00000000007F +:04601E00000000007E +:04601F00000000007D +:04602000000000007C +:04602100000000007B +:04602200000000007A +:046023000000000079 +:046024000000000078 +:046025000000000077 +:046026000000000076 +:046027000000000075 +:046028000000000074 +:046029000000000073 +:04602A000000000072 +:04602B000000000071 +:04602C000000000070 +:04602D00000000006F +:04602E00000000006E +:04602F00000000006D +:04603000000000006C +:04603100000000006B +:04603200000000006A +:046033000000000069 +:046034000000000068 +:046035000000000067 +:046036000000000066 +:046037000000000065 +:046038000000000064 +:046039000000000063 +:04603A000000000062 +:04603B000000000061 +:04603C000000000060 +:04603D00000000005F +:04603E00000000005E +:04603F00000000005D +:04604000000000005C +:04604100000000005B +:04604200000000005A +:046043000000000059 +:046044000000000058 +:046045000000000057 +:046046000000000056 +:046047000000000055 +:046048000000000054 +:046049000000000053 +:04604A000000000052 +:04604B000000000051 +:04604C000000000050 +:04604D00000000004F +:04604E00000000004E +:04604F00000000004D +:04605000000000004C +:04605100000000004B +:04605200000000004A +:046053000000000049 +:046054000000000048 +:046055000000000047 +:046056000000000046 +:046057000000000045 +:046058000000000044 +:046059000000000043 +:04605A000000000042 +:04605B000000000041 +:04605C000000000040 +:04605D00000000003F +:04605E00000000003E +:04605F00000000003D +:04606000000000003C +:04606100000000003B +:04606200000000003A +:046063000000000039 +:046064000000000038 +:046065000000000037 +:046066000000000036 +:046067000000000035 +:046068000000000034 +:046069000000000033 +:04606A000000000032 +:04606B000000000031 +:04606C000000000030 +:04606D00000000002F +:04606E00000000002E +:04606F00000000002D +:04607000000000002C +:04607100000000002B +:04607200000000002A +:046073000000000029 +:046074000000000028 +:046075000000000027 +:046076000000000026 +:046077000000000025 +:046078000000000024 +:046079000000000023 +:04607A000000000022 +:04607B000000000021 +:04607C000000000020 +:04607D00000000001F +:04607E00000000001E +:04607F00000000001D +:04608000000000001C +:04608100000000001B +:04608200000000001A +:046083000000000019 +:046084000000000018 +:046085000000000017 +:046086000000000016 +:046087000000000015 +:046088000000000014 +:046089000000000013 +:04608A000000000012 +:04608B000000000011 +:04608C000000000010 +:04608D00000000000F +:04608E00000000000E +:04608F00000000000D +:04609000000000000C +:04609100000000000B +:04609200000000000A +:046093000000000009 +:046094000000000008 +:046095000000000007 +:046096000000000006 +:046097000000000005 +:046098000000000004 +:046099000000000003 +:04609A000000000002 +:04609B000000000001 +:04609C000000000000 +:04609D0000000000FF +:04609E0000000000FE +:04609F0000000000FD +:0460A00000000000FC +:0460A10000000000FB +:0460A20000000000FA +:0460A30000000000F9 +:0460A40000000000F8 +:0460A50000000000F7 +:0460A60000000000F6 +:0460A70000000000F5 +:0460A80000000000F4 +:0460A90000000000F3 +:0460AA0000000000F2 +:0460AB0000000000F1 +:0460AC0000000000F0 +:0460AD0000000000EF +:0460AE0000000000EE +:0460AF0000000000ED +:0460B00000000000EC +:0460B10000000000EB +:0460B20000000000EA +:0460B30000000000E9 +:0460B40000000000E8 +:0460B50000000000E7 +:0460B60000000000E6 +:0460B70000000000E5 +:0460B80000000000E4 +:0460B90000000000E3 +:0460BA0000000000E2 +:0460BB0000000000E1 +:0460BC0000000000E0 +:0460BD0000000000DF +:0460BE0000000000DE +:0460BF0000000000DD +:0460C00000000000DC +:0460C10000000000DB +:0460C20000000000DA +:0460C30000000000D9 +:0460C40000000000D8 +:0460C50000000000D7 +:0460C60000000000D6 +:0460C70000000000D5 +:0460C80000000000D4 +:0460C90000000000D3 +:0460CA0000000000D2 +:0460CB0000000000D1 +:0460CC0000000000D0 +:0460CD0000000000CF +:0460CE0000000000CE +:0460CF0000000000CD +:0460D00000000000CC +:0460D10000000000CB +:0460D20000000000CA +:0460D30000000000C9 +:0460D40000000000C8 +:0460D50000000000C7 +:0460D60000000000C6 +:0460D70000000000C5 +:0460D80000000000C4 +:0460D90000000000C3 +:0460DA0000000000C2 +:0460DB0000000000C1 +:0460DC0000000000C0 +:0460DD0000000000BF +:0460DE0000000000BE +:0460DF0000000000BD +:0460E00000000000BC +:0460E10000000000BB +:0460E20000000000BA +:0460E30000000000B9 +:0460E40000000000B8 +:0460E50000000000B7 +:0460E60000000000B6 +:0460E70000000000B5 +:0460E80000000000B4 +:0460E90000000000B3 +:0460EA0000000000B2 +:0460EB0000000000B1 +:0460EC0000000000B0 +:0460ED0000000000AF +:0460EE0000000000AE +:0460EF0000000000AD +:0460F00000000000AC +:0460F10000000000AB +:0460F20000000000AA +:0460F30000000000A9 +:0460F40000000000A8 +:0460F50000000000A7 +:0460F60000000000A6 +:0460F70000000000A5 +:0460F80000000000A4 +:0460F90000000000A3 +:0460FA0000000000A2 +:0460FB0000000000A1 +:0460FC0000000000A0 +:0460FD00000000009F +:0460FE00000000009E +:0460FF00000000009D +:04610000000000009B +:04610100000000009A +:046102000000000099 +:046103000000000098 +:046104000000000097 +:046105000000000096 +:046106000000000095 +:046107000000000094 +:046108000000000093 +:046109000000000092 +:04610A000000000091 +:04610B000000000090 +:04610C00000000008F +:04610D00000000008E +:04610E00000000008D +:04610F00000000008C +:04611000000000008B +:04611100000000008A +:046112000000000089 +:046113000000000088 +:046114000000000087 +:046115000000000086 +:046116000000000085 +:046117000000000084 +:046118000000000083 +:046119000000000082 +:04611A000000000081 +:04611B000000000080 +:04611C00000000007F +:04611D00000000007E +:04611E00000000007D +:04611F00000000007C +:04612000000000007B +:04612100000000007A +:046122000000000079 +:046123000000000078 +:046124000000000077 +:046125000000000076 +:046126000000000075 +:046127000000000074 +:046128000000000073 +:046129000000000072 +:04612A000000000071 +:04612B000000000070 +:04612C00000000006F +:04612D00000000006E +:04612E00000000006D +:04612F00000000006C +:04613000000000006B +:04613100000000006A +:046132000000000069 +:046133000000000068 +:046134000000000067 +:046135000000000066 +:046136000000000065 +:046137000000000064 +:046138000000000063 +:046139000000000062 +:04613A000000000061 +:04613B000000000060 +:04613C00000000005F +:04613D00000000005E +:04613E00000000005D +:04613F00000000005C +:04614000000000005B +:04614100000000005A +:046142000000000059 +:046143000000000058 +:046144000000000057 +:046145000000000056 +:046146000000000055 +:046147000000000054 +:046148000000000053 +:046149000000000052 +:04614A000000000051 +:04614B000000000050 +:04614C00000000004F +:04614D00000000004E +:04614E00000000004D +:04614F00000000004C +:04615000000000004B +:04615100000000004A +:046152000000000049 +:046153000000000048 +:046154000000000047 +:046155000000000046 +:046156000000000045 +:046157000000000044 +:046158000000000043 +:046159000000000042 +:04615A000000000041 +:04615B000000000040 +:04615C00000000003F +:04615D00000000003E +:04615E00000000003D +:04615F00000000003C +:04616000000000003B +:04616100000000003A +:046162000000000039 +:046163000000000038 +:046164000000000037 +:046165000000000036 +:046166000000000035 +:046167000000000034 +:046168000000000033 +:046169000000000032 +:04616A000000000031 +:04616B000000000030 +:04616C00000000002F +:04616D00000000002E +:04616E00000000002D +:04616F00000000002C +:04617000000000002B +:04617100000000002A +:046172000000000029 +:046173000000000028 +:046174000000000027 +:046175000000000026 +:046176000000000025 +:046177000000000024 +:046178000000000023 +:046179000000000022 +:04617A000000000021 +:04617B000000000020 +:04617C00000000001F +:04617D00000000001E +:04617E00000000001D +:04617F00000000001C +:04618000000000001B +:04618100000000001A +:046182000000000019 +:046183000000000018 +:046184000000000017 +:046185000000000016 +:046186000000000015 +:046187000000000014 +:046188000000000013 +:046189000000000012 +:04618A000000000011 +:04618B000000000010 +:04618C00000000000F +:04618D00000000000E +:04618E00000000000D +:04618F00000000000C +:04619000000000000B +:04619100000000000A +:046192000000000009 +:046193000000000008 +:046194000000000007 +:046195000000000006 +:046196000000000005 +:046197000000000004 +:046198000000000003 +:046199000000000002 +:04619A000000000001 +:04619B000000000000 +:04619C0000000000FF +:04619D0000000000FE +:04619E0000000000FD +:04619F0000000000FC +:0461A00000000000FB +:0461A10000000000FA +:0461A20000000000F9 +:0461A30000000000F8 +:0461A40000000000F7 +:0461A50000000000F6 +:0461A60000000000F5 +:0461A70000000000F4 +:0461A80000000000F3 +:0461A90000000000F2 +:0461AA0000000000F1 +:0461AB0000000000F0 +:0461AC0000000000EF +:0461AD0000000000EE +:0461AE0000000000ED +:0461AF0000000000EC +:0461B00000000000EB +:0461B10000000000EA +:0461B20000000000E9 +:0461B30000000000E8 +:0461B40000000000E7 +:0461B50000000000E6 +:0461B60000000000E5 +:0461B70000000000E4 +:0461B80000000000E3 +:0461B90000000000E2 +:0461BA0000000000E1 +:0461BB0000000000E0 +:0461BC0000000000DF +:0461BD0000000000DE +:0461BE0000000000DD +:0461BF0000000000DC +:0461C00000000000DB +:0461C10000000000DA +:0461C20000000000D9 +:0461C30000000000D8 +:0461C40000000000D7 +:0461C50000000000D6 +:0461C60000000000D5 +:0461C70000000000D4 +:0461C80000000000D3 +:0461C90000000000D2 +:0461CA0000000000D1 +:0461CB0000000000D0 +:0461CC0000000000CF +:0461CD0000000000CE +:0461CE0000000000CD +:0461CF0000000000CC +:0461D00000000000CB +:0461D10000000000CA +:0461D20000000000C9 +:0461D30000000000C8 +:0461D40000000000C7 +:0461D50000000000C6 +:0461D60000000000C5 +:0461D70000000000C4 +:0461D80000000000C3 +:0461D90000000000C2 +:0461DA0000000000C1 +:0461DB0000000000C0 +:0461DC0000000000BF +:0461DD0000000000BE +:0461DE0000000000BD +:0461DF0000000000BC +:0461E00000000000BB +:0461E10000000000BA +:0461E20000000000B9 +:0461E30000000000B8 +:0461E40000000000B7 +:0461E50000000000B6 +:0461E60000000000B5 +:0461E70000000000B4 +:0461E80000000000B3 +:0461E90000000000B2 +:0461EA0000000000B1 +:0461EB0000000000B0 +:0461EC0000000000AF +:0461ED0000000000AE +:0461EE0000000000AD +:0461EF0000000000AC +:0461F00000000000AB +:0461F10000000000AA +:0461F20000000000A9 +:0461F30000000000A8 +:0461F40000000000A7 +:0461F50000000000A6 +:0461F60000000000A5 +:0461F70000000000A4 +:0461F80000000000A3 +:0461F90000000000A2 +:0461FA0000000000A1 +:0461FB0000000000A0 +:0461FC00000000009F +:0461FD00000000009E +:0461FE00000000009D +:0461FF00000000009C +:04620000000000009A +:046201000000000099 +:046202000000000098 +:046203000000000097 +:046204000000000096 +:046205000000000095 +:046206000000000094 +:046207000000000093 +:046208000000000092 +:046209000000000091 +:04620A000000000090 +:04620B00000000008F +:04620C00000000008E +:04620D00000000008D +:04620E00000000008C +:04620F00000000008B +:04621000000000008A +:046211000000000089 +:046212000000000088 +:046213000000000087 +:046214000000000086 +:046215000000000085 +:046216000000000084 +:046217000000000083 +:046218000000000082 +:046219000000000081 +:04621A000000000080 +:04621B00000000007F +:04621C00000000007E +:04621D00000000007D +:04621E00000000007C +:04621F00000000007B +:04622000000000007A +:046221000000000079 +:046222000000000078 +:046223000000000077 +:046224000000000076 +:046225000000000075 +:046226000000000074 +:046227000000000073 +:046228000000000072 +:046229000000000071 +:04622A000000000070 +:04622B00000000006F +:04622C00000000006E +:04622D00000000006D +:04622E00000000006C +:04622F00000000006B +:04623000000000006A +:046231000000000069 +:046232000000000068 +:046233000000000067 +:046234000000000066 +:046235000000000065 +:046236000000000064 +:046237000000000063 +:046238000000000062 +:046239000000000061 +:04623A000000000060 +:04623B00000000005F +:04623C00000000005E +:04623D00000000005D +:04623E00000000005C +:04623F00000000005B +:04624000000000005A +:046241000000000059 +:046242000000000058 +:046243000000000057 +:046244000000000056 +:046245000000000055 +:046246000000000054 +:046247000000000053 +:046248000000000052 +:046249000000000051 +:04624A000000000050 +:04624B00000000004F +:04624C00000000004E +:04624D00000000004D +:04624E00000000004C +:04624F00000000004B +:04625000000000004A +:046251000000000049 +:046252000000000048 +:046253000000000047 +:046254000000000046 +:046255000000000045 +:046256000000000044 +:046257000000000043 +:046258000000000042 +:046259000000000041 +:04625A000000000040 +:04625B00000000003F +:04625C00000000003E +:04625D00000000003D +:04625E00000000003C +:04625F00000000003B +:04626000000000003A +:046261000000000039 +:046262000000000038 +:046263000000000037 +:046264000000000036 +:046265000000000035 +:046266000000000034 +:046267000000000033 +:046268000000000032 +:046269000000000031 +:04626A000000000030 +:04626B00000000002F +:04626C00000000002E +:04626D00000000002D +:04626E00000000002C +:04626F00000000002B +:04627000000000002A +:046271000000000029 +:046272000000000028 +:046273000000000027 +:046274000000000026 +:046275000000000025 +:046276000000000024 +:046277000000000023 +:046278000000000022 +:046279000000000021 +:04627A000000000020 +:04627B00000000001F +:04627C00000000001E +:04627D00000000001D +:04627E00000000001C +:04627F00000000001B +:04628000000000001A +:046281000000000019 +:046282000000000018 +:046283000000000017 +:046284000000000016 +:046285000000000015 +:046286000000000014 +:046287000000000013 +:046288000000000012 +:046289000000000011 +:04628A000000000010 +:04628B00000000000F +:04628C00000000000E +:04628D00000000000D +:04628E00000000000C +:04628F00000000000B +:04629000000000000A +:046291000000000009 +:046292000000000008 +:046293000000000007 +:046294000000000006 +:046295000000000005 +:046296000000000004 +:046297000000000003 +:046298000000000002 +:046299000000000001 +:04629A000000000000 +:04629B0000000000FF +:04629C0000000000FE +:04629D0000000000FD +:04629E0000000000FC +:04629F0000000000FB +:0462A00000000000FA +:0462A10000000000F9 +:0462A20000000000F8 +:0462A30000000000F7 +:0462A40000000000F6 +:0462A50000000000F5 +:0462A60000000000F4 +:0462A70000000000F3 +:0462A80000000000F2 +:0462A90000000000F1 +:0462AA0000000000F0 +:0462AB0000000000EF +:0462AC0000000000EE +:0462AD0000000000ED +:0462AE0000000000EC +:0462AF0000000000EB +:0462B00000000000EA +:0462B10000000000E9 +:0462B20000000000E8 +:0462B30000000000E7 +:0462B40000000000E6 +:0462B50000000000E5 +:0462B60000000000E4 +:0462B70000000000E3 +:0462B80000000000E2 +:0462B90000000000E1 +:0462BA0000000000E0 +:0462BB0000000000DF +:0462BC0000000000DE +:0462BD0000000000DD +:0462BE0000000000DC +:0462BF0000000000DB +:0462C00000000000DA +:0462C10000000000D9 +:0462C20000000000D8 +:0462C30000000000D7 +:0462C40000000000D6 +:0462C50000000000D5 +:0462C60000000000D4 +:0462C70000000000D3 +:0462C80000000000D2 +:0462C90000000000D1 +:0462CA0000000000D0 +:0462CB0000000000CF +:0462CC0000000000CE +:0462CD0000000000CD +:0462CE0000000000CC +:0462CF0000000000CB +:0462D00000000000CA +:0462D10000000000C9 +:0462D20000000000C8 +:0462D30000000000C7 +:0462D40000000000C6 +:0462D50000000000C5 +:0462D60000000000C4 +:0462D70000000000C3 +:0462D80000000000C2 +:0462D90000000000C1 +:0462DA0000000000C0 +:0462DB0000000000BF +:0462DC0000000000BE +:0462DD0000000000BD +:0462DE0000000000BC +:0462DF0000000000BB +:0462E00000000000BA +:0462E10000000000B9 +:0462E20000000000B8 +:0462E30000000000B7 +:0462E40000000000B6 +:0462E50000000000B5 +:0462E60000000000B4 +:0462E70000000000B3 +:0462E80000000000B2 +:0462E90000000000B1 +:0462EA0000000000B0 +:0462EB0000000000AF +:0462EC0000000000AE +:0462ED0000000000AD +:0462EE0000000000AC +:0462EF0000000000AB +:0462F00000000000AA +:0462F10000000000A9 +:0462F20000000000A8 +:0462F30000000000A7 +:0462F40000000000A6 +:0462F50000000000A5 +:0462F60000000000A4 +:0462F70000000000A3 +:0462F80000000000A2 +:0462F90000000000A1 +:0462FA0000000000A0 +:0462FB00000000009F +:0462FC00000000009E +:0462FD00000000009D +:0462FE00000000009C +:0462FF00000000009B +:046300000000000099 +:046301000000000098 +:046302000000000097 +:046303000000000096 +:046304000000000095 +:046305000000000094 +:046306000000000093 +:046307000000000092 +:046308000000000091 +:046309000000000090 +:04630A00000000008F +:04630B00000000008E +:04630C00000000008D +:04630D00000000008C +:04630E00000000008B +:04630F00000000008A +:046310000000000089 +:046311000000000088 +:046312000000000087 +:046313000000000086 +:046314000000000085 +:046315000000000084 +:046316000000000083 +:046317000000000082 +:046318000000000081 +:046319000000000080 +:04631A00000000007F +:04631B00000000007E +:04631C00000000007D +:04631D00000000007C +:04631E00000000007B +:04631F00000000007A +:046320000000000079 +:046321000000000078 +:046322000000000077 +:046323000000000076 +:046324000000000075 +:046325000000000074 +:046326000000000073 +:046327000000000072 +:046328000000000071 +:046329000000000070 +:04632A00000000006F +:04632B00000000006E +:04632C00000000006D +:04632D00000000006C +:04632E00000000006B +:04632F00000000006A +:046330000000000069 +:046331000000000068 +:046332000000000067 +:046333000000000066 +:046334000000000065 +:046335000000000064 +:046336000000000063 +:046337000000000062 +:046338000000000061 +:046339000000000060 +:04633A00000000005F +:04633B00000000005E +:04633C00000000005D +:04633D00000000005C +:04633E00000000005B +:04633F00000000005A +:046340000000000059 +:046341000000000058 +:046342000000000057 +:046343000000000056 +:046344000000000055 +:046345000000000054 +:046346000000000053 +:046347000000000052 +:046348000000000051 +:046349000000000050 +:04634A00000000004F +:04634B00000000004E +:04634C00000000004D +:04634D00000000004C +:04634E00000000004B +:04634F00000000004A +:046350000000000049 +:046351000000000048 +:046352000000000047 +:046353000000000046 +:046354000000000045 +:046355000000000044 +:046356000000000043 +:046357000000000042 +:046358000000000041 +:046359000000000040 +:04635A00000000003F +:04635B00000000003E +:04635C00000000003D +:04635D00000000003C +:04635E00000000003B +:04635F00000000003A +:046360000000000039 +:046361000000000038 +:046362000000000037 +:046363000000000036 +:046364000000000035 +:046365000000000034 +:046366000000000033 +:046367000000000032 +:046368000000000031 +:046369000000000030 +:04636A00000000002F +:04636B00000000002E +:04636C00000000002D +:04636D00000000002C +:04636E00000000002B +:04636F00000000002A +:046370000000000029 +:046371000000000028 +:046372000000000027 +:046373000000000026 +:046374000000000025 +:046375000000000024 +:046376000000000023 +:046377000000000022 +:046378000000000021 +:046379000000000020 +:04637A00000000001F +:04637B00000000001E +:04637C00000000001D +:04637D00000000001C +:04637E00000000001B +:04637F00000000001A +:046380000000000019 +:046381000000000018 +:046382000000000017 +:046383000000000016 +:046384000000000015 +:046385000000000014 +:046386000000000013 +:046387000000000012 +:046388000000000011 +:046389000000000010 +:04638A00000000000F +:04638B00000000000E +:04638C00000000000D +:04638D00000000000C +:04638E00000000000B +:04638F00000000000A +:046390000000000009 +:046391000000000008 +:046392000000000007 +:046393000000000006 +:046394000000000005 +:046395000000000004 +:046396000000000003 +:046397000000000002 +:046398000000000001 +:046399000000000000 +:04639A0000000000FF +:04639B0000000000FE +:04639C0000000000FD +:04639D0000000000FC +:04639E0000000000FB +:04639F0000000000FA +:0463A00000000000F9 +:0463A10000000000F8 +:0463A20000000000F7 +:0463A30000000000F6 +:0463A40000000000F5 +:0463A50000000000F4 +:0463A60000000000F3 +:0463A70000000000F2 +:0463A80000000000F1 +:0463A90000000000F0 +:0463AA0000000000EF +:0463AB0000000000EE +:0463AC0000000000ED +:0463AD0000000000EC +:0463AE0000000000EB +:0463AF0000000000EA +:0463B00000000000E9 +:0463B10000000000E8 +:0463B20000000000E7 +:0463B30000000000E6 +:0463B40000000000E5 +:0463B50000000000E4 +:0463B60000000000E3 +:0463B70000000000E2 +:0463B80000000000E1 +:0463B90000000000E0 +:0463BA0000000000DF +:0463BB0000000000DE +:0463BC0000000000DD +:0463BD0000000000DC +:0463BE0000000000DB +:0463BF0000000000DA +:0463C00000000000D9 +:0463C10000000000D8 +:0463C20000000000D7 +:0463C30000000000D6 +:0463C40000000000D5 +:0463C50000000000D4 +:0463C60000000000D3 +:0463C70000000000D2 +:0463C80000000000D1 +:0463C90000000000D0 +:0463CA0000000000CF +:0463CB0000000000CE +:0463CC0000000000CD +:0463CD0000000000CC +:0463CE0000000000CB +:0463CF0000000000CA +:0463D00000000000C9 +:0463D10000000000C8 +:0463D20000000000C7 +:0463D30000000000C6 +:0463D40000000000C5 +:0463D50000000000C4 +:0463D60000000000C3 +:0463D70000000000C2 +:0463D80000000000C1 +:0463D90000000000C0 +:0463DA0000000000BF +:0463DB0000000000BE +:0463DC0000000000BD +:0463DD0000000000BC +:0463DE0000000000BB +:0463DF0000000000BA +:0463E00000000000B9 +:0463E10000000000B8 +:0463E20000000000B7 +:0463E30000000000B6 +:0463E40000000000B5 +:0463E50000000000B4 +:0463E60000000000B3 +:0463E70000000000B2 +:0463E80000000000B1 +:0463E90000000000B0 +:0463EA0000000000AF +:0463EB0000000000AE +:0463EC0000000000AD +:0463ED0000000000AC +:0463EE0000000000AB +:0463EF0000000000AA +:0463F00000000000A9 +:0463F10000000000A8 +:0463F20000000000A7 +:0463F30000000000A6 +:0463F40000000000A5 +:0463F50000000000A4 +:0463F60000000000A3 +:0463F70000000000A2 +:0463F80000000000A1 +:0463F90000000000A0 +:0463FA00000000009F +:0463FB00000000009E +:0463FC00000000009D +:0463FD00000000009C +:0463FE00000000009B +:0463FF00000000009A +:046400000000000098 +:046401000000000097 +:046402000000000096 +:046403000000000095 +:046404000000000094 +:046405000000000093 +:046406000000000092 +:046407000000000091 +:046408000000000090 +:04640900000000008F +:04640A00000000008E +:04640B00000000008D +:04640C00000000008C +:04640D00000000008B +:04640E00000000008A +:04640F000000000089 +:046410000000000088 +:046411000000000087 +:046412000000000086 +:046413000000000085 +:046414000000000084 +:046415000000000083 +:046416000000000082 +:046417000000000081 +:046418000000000080 +:04641900000000007F +:04641A00000000007E +:04641B00000000007D +:04641C00000000007C +:04641D00000000007B +:04641E00000000007A +:04641F000000000079 +:046420000000000078 +:046421000000000077 +:046422000000000076 +:046423000000000075 +:046424000000000074 +:046425000000000073 +:046426000000000072 +:046427000000000071 +:046428000000000070 +:04642900000000006F +:04642A00000000006E +:04642B00000000006D +:04642C00000000006C +:04642D00000000006B +:04642E00000000006A +:04642F000000000069 +:046430000000000068 +:046431000000000067 +:046432000000000066 +:046433000000000065 +:046434000000000064 +:046435000000000063 +:046436000000000062 +:046437000000000061 +:046438000000000060 +:04643900000000005F +:04643A00000000005E +:04643B00000000005D +:04643C00000000005C +:04643D00000000005B +:04643E00000000005A +:04643F000000000059 +:046440000000000058 +:046441000000000057 +:046442000000000056 +:046443000000000055 +:046444000000000054 +:046445000000000053 +:046446000000000052 +:046447000000000051 +:046448000000000050 +:04644900000000004F +:04644A00000000004E +:04644B00000000004D +:04644C00000000004C +:04644D00000000004B +:04644E00000000004A +:04644F000000000049 +:046450000000000048 +:046451000000000047 +:046452000000000046 +:046453000000000045 +:046454000000000044 +:046455000000000043 +:046456000000000042 +:046457000000000041 +:046458000000000040 +:04645900000000003F +:04645A00000000003E +:04645B00000000003D +:04645C00000000003C +:04645D00000000003B +:04645E00000000003A +:04645F000000000039 +:046460000000000038 +:046461000000000037 +:046462000000000036 +:046463000000000035 +:046464000000000034 +:046465000000000033 +:046466000000000032 +:046467000000000031 +:046468000000000030 +:04646900000000002F +:04646A00000000002E +:04646B00000000002D +:04646C00000000002C +:04646D00000000002B +:04646E00000000002A +:04646F000000000029 +:046470000000000028 +:046471000000000027 +:046472000000000026 +:046473000000000025 +:046474000000000024 +:046475000000000023 +:046476000000000022 +:046477000000000021 +:046478000000000020 +:04647900000000001F +:04647A00000000001E +:04647B00000000001D +:04647C00000000001C +:04647D00000000001B +:04647E00000000001A +:04647F000000000019 +:046480000000000018 +:046481000000000017 +:046482000000000016 +:046483000000000015 +:046484000000000014 +:046485000000000013 +:046486000000000012 +:046487000000000011 +:046488000000000010 +:04648900000000000F +:04648A00000000000E +:04648B00000000000D +:04648C00000000000C +:04648D00000000000B +:04648E00000000000A +:04648F000000000009 +:046490000000000008 +:046491000000000007 +:046492000000000006 +:046493000000000005 +:046494000000000004 +:046495000000000003 +:046496000000000002 +:046497000000000001 +:046498000000000000 +:0464990000000000FF +:04649A0000000000FE +:04649B0000000000FD +:04649C0000000000FC +:04649D0000000000FB +:04649E0000000000FA +:04649F0000000000F9 +:0464A00000000000F8 +:0464A10000000000F7 +:0464A20000000000F6 +:0464A30000000000F5 +:0464A40000000000F4 +:0464A50000000000F3 +:0464A60000000000F2 +:0464A70000000000F1 +:0464A80000000000F0 +:0464A90000000000EF +:0464AA0000000000EE +:0464AB0000000000ED +:0464AC0000000000EC +:0464AD0000000000EB +:0464AE0000000000EA +:0464AF0000000000E9 +:0464B00000000000E8 +:0464B10000000000E7 +:0464B20000000000E6 +:0464B30000000000E5 +:0464B40000000000E4 +:0464B50000000000E3 +:0464B60000000000E2 +:0464B70000000000E1 +:0464B80000000000E0 +:0464B90000000000DF +:0464BA0000000000DE +:0464BB0000000000DD +:0464BC0000000000DC +:0464BD0000000000DB +:0464BE0000000000DA +:0464BF0000000000D9 +:0464C00000000000D8 +:0464C10000000000D7 +:0464C20000000000D6 +:0464C30000000000D5 +:0464C40000000000D4 +:0464C50000000000D3 +:0464C60000000000D2 +:0464C70000000000D1 +:0464C80000000000D0 +:0464C90000000000CF +:0464CA0000000000CE +:0464CB0000000000CD +:0464CC0000000000CC +:0464CD0000000000CB +:0464CE0000000000CA +:0464CF0000000000C9 +:0464D00000000000C8 +:0464D10000000000C7 +:0464D20000000000C6 +:0464D30000000000C5 +:0464D40000000000C4 +:0464D50000000000C3 +:0464D60000000000C2 +:0464D70000000000C1 +:0464D80000000000C0 +:0464D90000000000BF +:0464DA0000000000BE +:0464DB0000000000BD +:0464DC0000000000BC +:0464DD0000000000BB +:0464DE0000000000BA +:0464DF0000000000B9 +:0464E00000000000B8 +:0464E10000000000B7 +:0464E20000000000B6 +:0464E30000000000B5 +:0464E40000000000B4 +:0464E50000000000B3 +:0464E60000000000B2 +:0464E70000000000B1 +:0464E80000000000B0 +:0464E90000000000AF +:0464EA0000000000AE +:0464EB0000000000AD +:0464EC0000000000AC +:0464ED0000000000AB +:0464EE0000000000AA +:0464EF0000000000A9 +:0464F00000000000A8 +:0464F10000000000A7 +:0464F20000000000A6 +:0464F30000000000A5 +:0464F40000000000A4 +:0464F50000000000A3 +:0464F60000000000A2 +:0464F70000000000A1 +:0464F80000000000A0 +:0464F900000000009F +:0464FA00000000009E +:0464FB00000000009D +:0464FC00000000009C +:0464FD00000000009B +:0464FE00000000009A +:0464FF000000000099 +:046500000000000097 +:046501000000000096 +:046502000000000095 +:046503000000000094 +:046504000000000093 +:046505000000000092 +:046506000000000091 +:046507000000000090 +:04650800000000008F +:04650900000000008E +:04650A00000000008D +:04650B00000000008C +:04650C00000000008B +:04650D00000000008A +:04650E000000000089 +:04650F000000000088 +:046510000000000087 +:046511000000000086 +:046512000000000085 +:046513000000000084 +:046514000000000083 +:046515000000000082 +:046516000000000081 +:046517000000000080 +:04651800000000007F +:04651900000000007E +:04651A00000000007D +:04651B00000000007C +:04651C00000000007B +:04651D00000000007A +:04651E000000000079 +:04651F000000000078 +:046520000000000077 +:046521000000000076 +:046522000000000075 +:046523000000000074 +:046524000000000073 +:046525000000000072 +:046526000000000071 +:046527000000000070 +:04652800000000006F +:04652900000000006E +:04652A00000000006D +:04652B00000000006C +:04652C00000000006B +:04652D00000000006A +:04652E000000000069 +:04652F000000000068 +:046530000000000067 +:046531000000000066 +:046532000000000065 +:046533000000000064 +:046534000000000063 +:046535000000000062 +:046536000000000061 +:046537000000000060 +:04653800000000005F +:04653900000000005E +:04653A00000000005D +:04653B00000000005C +:04653C00000000005B +:04653D00000000005A +:04653E000000000059 +:04653F000000000058 +:046540000000000057 +:046541000000000056 +:046542000000000055 +:046543000000000054 +:046544000000000053 +:046545000000000052 +:046546000000000051 +:046547000000000050 +:04654800000000004F +:04654900000000004E +:04654A00000000004D +:04654B00000000004C +:04654C00000000004B +:04654D00000000004A +:04654E000000000049 +:04654F000000000048 +:046550000000000047 +:046551000000000046 +:046552000000000045 +:046553000000000044 +:046554000000000043 +:046555000000000042 +:046556000000000041 +:046557000000000040 +:04655800000000003F +:04655900000000003E +:04655A00000000003D +:04655B00000000003C +:04655C00000000003B +:04655D00000000003A +:04655E000000000039 +:04655F000000000038 +:046560000000000037 +:046561000000000036 +:046562000000000035 +:046563000000000034 +:046564000000000033 +:046565000000000032 +:046566000000000031 +:046567000000000030 +:04656800000000002F +:04656900000000002E +:04656A00000000002D +:04656B00000000002C +:04656C00000000002B +:04656D00000000002A +:04656E000000000029 +:04656F000000000028 +:046570000000000027 +:046571000000000026 +:046572000000000025 +:046573000000000024 +:046574000000000023 +:046575000000000022 +:046576000000000021 +:046577000000000020 +:04657800000000001F +:04657900000000001E +:04657A00000000001D +:04657B00000000001C +:04657C00000000001B +:04657D00000000001A +:04657E000000000019 +:04657F000000000018 +:046580000000000017 +:046581000000000016 +:046582000000000015 +:046583000000000014 +:046584000000000013 +:046585000000000012 +:046586000000000011 +:046587000000000010 +:04658800000000000F +:04658900000000000E +:04658A00000000000D +:04658B00000000000C +:04658C00000000000B +:04658D00000000000A +:04658E000000000009 +:04658F000000000008 +:046590000000000007 +:046591000000000006 +:046592000000000005 +:046593000000000004 +:046594000000000003 +:046595000000000002 +:046596000000000001 +:046597000000000000 +:0465980000000000FF +:0465990000000000FE +:04659A0000000000FD +:04659B0000000000FC +:04659C0000000000FB +:04659D0000000000FA +:04659E0000000000F9 +:04659F0000000000F8 +:0465A00000000000F7 +:0465A10000000000F6 +:0465A20000000000F5 +:0465A30000000000F4 +:0465A40000000000F3 +:0465A50000000000F2 +:0465A60000000000F1 +:0465A70000000000F0 +:0465A80000000000EF +:0465A90000000000EE +:0465AA0000000000ED +:0465AB0000000000EC +:0465AC0000000000EB +:0465AD0000000000EA +:0465AE0000000000E9 +:0465AF0000000000E8 +:0465B00000000000E7 +:0465B10000000000E6 +:0465B20000000000E5 +:0465B30000000000E4 +:0465B40000000000E3 +:0465B50000000000E2 +:0465B60000000000E1 +:0465B70000000000E0 +:0465B80000000000DF +:0465B90000000000DE +:0465BA0000000000DD +:0465BB0000000000DC +:0465BC0000000000DB +:0465BD0000000000DA +:0465BE0000000000D9 +:0465BF0000000000D8 +:0465C00000000000D7 +:0465C10000000000D6 +:0465C20000000000D5 +:0465C30000000000D4 +:0465C40000000000D3 +:0465C50000000000D2 +:0465C60000000000D1 +:0465C70000000000D0 +:0465C80000000000CF +:0465C90000000000CE +:0465CA0000000000CD +:0465CB0000000000CC +:0465CC0000000000CB +:0465CD0000000000CA +:0465CE0000000000C9 +:0465CF0000000000C8 +:0465D00000000000C7 +:0465D10000000000C6 +:0465D20000000000C5 +:0465D30000000000C4 +:0465D40000000000C3 +:0465D50000000000C2 +:0465D60000000000C1 +:0465D70000000000C0 +:0465D80000000000BF +:0465D90000000000BE +:0465DA0000000000BD +:0465DB0000000000BC +:0465DC0000000000BB +:0465DD0000000000BA +:0465DE0000000000B9 +:0465DF0000000000B8 +:0465E00000000000B7 +:0465E10000000000B6 +:0465E20000000000B5 +:0465E30000000000B4 +:0465E40000000000B3 +:0465E50000000000B2 +:0465E60000000000B1 +:0465E70000000000B0 +:0465E80000000000AF +:0465E90000000000AE +:0465EA0000000000AD +:0465EB0000000000AC +:0465EC0000000000AB +:0465ED0000000000AA +:0465EE0000000000A9 +:0465EF0000000000A8 +:0465F00000000000A7 +:0465F10000000000A6 +:0465F20000000000A5 +:0465F30000000000A4 +:0465F40000000000A3 +:0465F50000000000A2 +:0465F60000000000A1 +:0465F70000000000A0 +:0465F800000000009F +:0465F900000000009E +:0465FA00000000009D +:0465FB00000000009C +:0465FC00000000009B +:0465FD00000000009A +:0465FE000000000099 +:0465FF000000000098 +:046600000000000096 +:046601000000000095 +:046602000000000094 +:046603000000000093 +:046604000000000092 +:046605000000000091 +:046606000000000090 +:04660700000000008F +:04660800000000008E +:04660900000000008D +:04660A00000000008C +:04660B00000000008B +:04660C00000000008A +:04660D000000000089 +:04660E000000000088 +:04660F000000000087 +:046610000000000086 +:046611000000000085 +:046612000000000084 +:046613000000000083 +:046614000000000082 +:046615000000000081 +:046616000000000080 +:04661700000000007F +:04661800000000007E +:04661900000000007D +:04661A00000000007C +:04661B00000000007B +:04661C00000000007A +:04661D000000000079 +:04661E000000000078 +:04661F000000000077 +:046620000000000076 +:046621000000000075 +:046622000000000074 +:046623000000000073 +:046624000000000072 +:046625000000000071 +:046626000000000070 +:04662700000000006F +:04662800000000006E +:04662900000000006D +:04662A00000000006C +:04662B00000000006B +:04662C00000000006A +:04662D000000000069 +:04662E000000000068 +:04662F000000000067 +:046630000000000066 +:046631000000000065 +:046632000000000064 +:046633000000000063 +:046634000000000062 +:046635000000000061 +:046636000000000060 +:04663700000000005F +:04663800000000005E +:04663900000000005D +:04663A00000000005C +:04663B00000000005B +:04663C00000000005A +:04663D000000000059 +:04663E000000000058 +:04663F000000000057 +:046640000000000056 +:046641000000000055 +:046642000000000054 +:046643000000000053 +:046644000000000052 +:046645000000000051 +:046646000000000050 +:04664700000000004F +:04664800000000004E +:04664900000000004D +:04664A00000000004C +:04664B00000000004B +:04664C00000000004A +:04664D000000000049 +:04664E000000000048 +:04664F000000000047 +:046650000000000046 +:046651000000000045 +:046652000000000044 +:046653000000000043 +:046654000000000042 +:046655000000000041 +:046656000000000040 +:04665700000000003F +:04665800000000003E +:04665900000000003D +:04665A00000000003C +:04665B00000000003B +:04665C00000000003A +:04665D000000000039 +:04665E000000000038 +:04665F000000000037 +:046660000000000036 +:046661000000000035 +:046662000000000034 +:046663000000000033 +:046664000000000032 +:046665000000000031 +:046666000000000030 +:04666700000000002F +:04666800000000002E +:04666900000000002D +:04666A00000000002C +:04666B00000000002B +:04666C00000000002A +:04666D000000000029 +:04666E000000000028 +:04666F000000000027 +:046670000000000026 +:046671000000000025 +:046672000000000024 +:046673000000000023 +:046674000000000022 +:046675000000000021 +:046676000000000020 +:04667700000000001F +:04667800000000001E +:04667900000000001D +:04667A00000000001C +:04667B00000000001B +:04667C00000000001A +:04667D000000000019 +:04667E000000000018 +:04667F000000000017 +:046680000000000016 +:046681000000000015 +:046682000000000014 +:046683000000000013 +:046684000000000012 +:046685000000000011 +:046686000000000010 +:04668700000000000F +:04668800000000000E +:04668900000000000D +:04668A00000000000C +:04668B00000000000B +:04668C00000000000A +:04668D000000000009 +:04668E000000000008 +:04668F000000000007 +:046690000000000006 +:046691000000000005 +:046692000000000004 +:046693000000000003 +:046694000000000002 +:046695000000000001 +:046696000000000000 +:0466970000000000FF +:0466980000000000FE +:0466990000000000FD +:04669A0000000000FC +:04669B0000000000FB +:04669C0000000000FA +:04669D0000000000F9 +:04669E0000000000F8 +:04669F0000000000F7 +:0466A00000000000F6 +:0466A10000000000F5 +:0466A20000000000F4 +:0466A30000000000F3 +:0466A40000000000F2 +:0466A50000000000F1 +:0466A60000000000F0 +:0466A70000000000EF +:0466A80000000000EE +:0466A90000000000ED +:0466AA0000000000EC +:0466AB0000000000EB +:0466AC0000000000EA +:0466AD0000000000E9 +:0466AE0000000000E8 +:0466AF0000000000E7 +:0466B00000000000E6 +:0466B10000000000E5 +:0466B20000000000E4 +:0466B30000000000E3 +:0466B40000000000E2 +:0466B50000000000E1 +:0466B60000000000E0 +:0466B70000000000DF +:0466B80000000000DE +:0466B90000000000DD +:0466BA0000000000DC +:0466BB0000000000DB +:0466BC0000000000DA +:0466BD0000000000D9 +:0466BE0000000000D8 +:0466BF0000000000D7 +:0466C00000000000D6 +:0466C10000000000D5 +:0466C20000000000D4 +:0466C30000000000D3 +:0466C40000000000D2 +:0466C50000000000D1 +:0466C60000000000D0 +:0466C70000000000CF +:0466C80000000000CE +:0466C90000000000CD +:0466CA0000000000CC +:0466CB0000000000CB +:0466CC0000000000CA +:0466CD0000000000C9 +:0466CE0000000000C8 +:0466CF0000000000C7 +:0466D00000000000C6 +:0466D10000000000C5 +:0466D20000000000C4 +:0466D30000000000C3 +:0466D40000000000C2 +:0466D50000000000C1 +:0466D60000000000C0 +:0466D70000000000BF +:0466D80000000000BE +:0466D90000000000BD +:0466DA0000000000BC +:0466DB0000000000BB +:0466DC0000000000BA +:0466DD0000000000B9 +:0466DE0000000000B8 +:0466DF0000000000B7 +:0466E00000000000B6 +:0466E10000000000B5 +:0466E20000000000B4 +:0466E30000000000B3 +:0466E40000000000B2 +:0466E50000000000B1 +:0466E60000000000B0 +:0466E70000000000AF +:0466E80000000000AE +:0466E90000000000AD +:0466EA0000000000AC +:0466EB0000000000AB +:0466EC0000000000AA +:0466ED0000000000A9 +:0466EE0000000000A8 +:0466EF0000000000A7 +:0466F00000000000A6 +:0466F10000000000A5 +:0466F20000000000A4 +:0466F30000000000A3 +:0466F40000000000A2 +:0466F50000000000A1 +:0466F60000000000A0 +:0466F700000000009F +:0466F800000000009E +:0466F900000000009D +:0466FA00000000009C +:0466FB00000000009B +:0466FC00000000009A +:0466FD000000000099 +:0466FE000000000098 +:0466FF000000000097 +:046700000000000095 +:046701000000000094 +:046702000000000093 +:046703000000000092 +:046704000000000091 +:046705000000000090 +:04670600000000008F +:04670700000000008E +:04670800000000008D +:04670900000000008C +:04670A00000000008B +:04670B00000000008A +:04670C000000000089 +:04670D000000000088 +:04670E000000000087 +:04670F000000000086 +:046710000000000085 +:046711000000000084 +:046712000000000083 +:046713000000000082 +:046714000000000081 +:046715000000000080 +:04671600000000007F +:04671700000000007E +:04671800000000007D +:04671900000000007C +:04671A00000000007B +:04671B00000000007A +:04671C000000000079 +:04671D000000000078 +:04671E000000000077 +:04671F000000000076 +:046720000000000075 +:046721000000000074 +:046722000000000073 +:046723000000000072 +:046724000000000071 +:046725000000000070 +:04672600000000006F +:04672700000000006E +:04672800000000006D +:04672900000000006C +:04672A00000000006B +:04672B00000000006A +:04672C000000000069 +:04672D000000000068 +:04672E000000000067 +:04672F000000000066 +:046730000000000065 +:046731000000000064 +:046732000000000063 +:046733000000000062 +:046734000000000061 +:046735000000000060 +:04673600000000005F +:04673700000000005E +:04673800000000005D +:04673900000000005C +:04673A00000000005B +:04673B00000000005A +:04673C000000000059 +:04673D000000000058 +:04673E000000000057 +:04673F000000000056 +:046740000000000055 +:046741000000000054 +:046742000000000053 +:046743000000000052 +:046744000000000051 +:046745000000000050 +:04674600000000004F +:04674700000000004E +:04674800000000004D +:04674900000000004C +:04674A00000000004B +:04674B00000000004A +:04674C000000000049 +:04674D000000000048 +:04674E000000000047 +:04674F000000000046 +:046750000000000045 +:046751000000000044 +:046752000000000043 +:046753000000000042 +:046754000000000041 +:046755000000000040 +:04675600000000003F +:04675700000000003E +:04675800000000003D +:04675900000000003C +:04675A00000000003B +:04675B00000000003A +:04675C000000000039 +:04675D000000000038 +:04675E000000000037 +:04675F000000000036 +:046760000000000035 +:046761000000000034 +:046762000000000033 +:046763000000000032 +:046764000000000031 +:046765000000000030 +:04676600000000002F +:04676700000000002E +:04676800000000002D +:04676900000000002C +:04676A00000000002B +:04676B00000000002A +:04676C000000000029 +:04676D000000000028 +:04676E000000000027 +:04676F000000000026 +:046770000000000025 +:046771000000000024 +:046772000000000023 +:046773000000000022 +:046774000000000021 +:046775000000000020 +:04677600000000001F +:04677700000000001E +:04677800000000001D +:04677900000000001C +:04677A00000000001B +:04677B00000000001A +:04677C000000000019 +:04677D000000000018 +:04677E000000000017 +:04677F000000000016 +:046780000000000015 +:046781000000000014 +:046782000000000013 +:046783000000000012 +:046784000000000011 +:046785000000000010 +:04678600000000000F +:04678700000000000E +:04678800000000000D +:04678900000000000C +:04678A00000000000B +:04678B00000000000A +:04678C000000000009 +:04678D000000000008 +:04678E000000000007 +:04678F000000000006 +:046790000000000005 +:046791000000000004 +:046792000000000003 +:046793000000000002 +:046794000000000001 +:046795000000000000 +:0467960000000000FF +:0467970000000000FE +:0467980000000000FD +:0467990000000000FC +:04679A0000000000FB +:04679B0000000000FA +:04679C0000000000F9 +:04679D0000000000F8 +:04679E0000000000F7 +:04679F0000000000F6 +:0467A00000000000F5 +:0467A10000000000F4 +:0467A20000000000F3 +:0467A30000000000F2 +:0467A40000000000F1 +:0467A50000000000F0 +:0467A60000000000EF +:0467A70000000000EE +:0467A80000000000ED +:0467A90000000000EC +:0467AA0000000000EB +:0467AB0000000000EA +:0467AC0000000000E9 +:0467AD0000000000E8 +:0467AE0000000000E7 +:0467AF0000000000E6 +:0467B00000000000E5 +:0467B10000000000E4 +:0467B20000000000E3 +:0467B30000000000E2 +:0467B40000000000E1 +:0467B50000000000E0 +:0467B60000000000DF +:0467B70000000000DE +:0467B80000000000DD +:0467B90000000000DC +:0467BA0000000000DB +:0467BB0000000000DA +:0467BC0000000000D9 +:0467BD0000000000D8 +:0467BE0000000000D7 +:0467BF0000000000D6 +:0467C00000000000D5 +:0467C10000000000D4 +:0467C20000000000D3 +:0467C30000000000D2 +:0467C40000000000D1 +:0467C50000000000D0 +:0467C60000000000CF +:0467C70000000000CE +:0467C80000000000CD +:0467C90000000000CC +:0467CA0000000000CB +:0467CB0000000000CA +:0467CC0000000000C9 +:0467CD0000000000C8 +:0467CE0000000000C7 +:0467CF0000000000C6 +:0467D00000000000C5 +:0467D10000000000C4 +:0467D20000000000C3 +:0467D30000000000C2 +:0467D40000000000C1 +:0467D50000000000C0 +:0467D60000000000BF +:0467D70000000000BE +:0467D80000000000BD +:0467D90000000000BC +:0467DA0000000000BB +:0467DB0000000000BA +:0467DC0000000000B9 +:0467DD0000000000B8 +:0467DE0000000000B7 +:0467DF0000000000B6 +:0467E00000000000B5 +:0467E10000000000B4 +:0467E20000000000B3 +:0467E30000000000B2 +:0467E40000000000B1 +:0467E50000000000B0 +:0467E60000000000AF +:0467E70000000000AE +:0467E80000000000AD +:0467E90000000000AC +:0467EA0000000000AB +:0467EB0000000000AA +:0467EC0000000000A9 +:0467ED0000000000A8 +:0467EE0000000000A7 +:0467EF0000000000A6 +:0467F00000000000A5 +:0467F10000000000A4 +:0467F20000000000A3 +:0467F30000000000A2 +:0467F40000000000A1 +:0467F50000000000A0 +:0467F600000000009F +:0467F700000000009E +:0467F800000000009D +:0467F900000000009C +:0467FA00000000009B +:0467FB00000000009A +:0467FC000000000099 +:0467FD000000000098 +:0467FE000000000097 +:0467FF000000000096 +:046800000000000094 +:046801000000000093 +:046802000000000092 +:046803000000000091 +:046804000000000090 +:04680500000000008F +:04680600000000008E +:04680700000000008D +:04680800000000008C +:04680900000000008B +:04680A00000000008A +:04680B000000000089 +:04680C000000000088 +:04680D000000000087 +:04680E000000000086 +:04680F000000000085 +:046810000000000084 +:046811000000000083 +:046812000000000082 +:046813000000000081 +:046814000000000080 +:04681500000000007F +:04681600000000007E +:04681700000000007D +:04681800000000007C +:04681900000000007B +:04681A00000000007A +:04681B000000000079 +:04681C000000000078 +:04681D000000000077 +:04681E000000000076 +:04681F000000000075 +:046820000000000074 +:046821000000000073 +:046822000000000072 +:046823000000000071 +:046824000000000070 +:04682500000000006F +:04682600000000006E +:04682700000000006D +:04682800000000006C +:04682900000000006B +:04682A00000000006A +:04682B000000000069 +:04682C000000000068 +:04682D000000000067 +:04682E000000000066 +:04682F000000000065 +:046830000000000064 +:046831000000000063 +:046832000000000062 +:046833000000000061 +:046834000000000060 +:04683500000000005F +:04683600000000005E +:04683700000000005D +:04683800000000005C +:04683900000000005B +:04683A00000000005A +:04683B000000000059 +:04683C000000000058 +:04683D000000000057 +:04683E000000000056 +:04683F000000000055 +:046840000000000054 +:046841000000000053 +:046842000000000052 +:046843000000000051 +:046844000000000050 +:04684500000000004F +:04684600000000004E +:04684700000000004D +:04684800000000004C +:04684900000000004B +:04684A00000000004A +:04684B000000000049 +:04684C000000000048 +:04684D000000000047 +:04684E000000000046 +:04684F000000000045 +:046850000000000044 +:046851000000000043 +:046852000000000042 +:046853000000000041 +:046854000000000040 +:04685500000000003F +:04685600000000003E +:04685700000000003D +:04685800000000003C +:04685900000000003B +:04685A00000000003A +:04685B000000000039 +:04685C000000000038 +:04685D000000000037 +:04685E000000000036 +:04685F000000000035 +:046860000000000034 +:046861000000000033 +:046862000000000032 +:046863000000000031 +:046864000000000030 +:04686500000000002F +:04686600000000002E +:04686700000000002D +:04686800000000002C +:04686900000000002B +:04686A00000000002A +:04686B000000000029 +:04686C000000000028 +:04686D000000000027 +:04686E000000000026 +:04686F000000000025 +:046870000000000024 +:046871000000000023 +:046872000000000022 +:046873000000000021 +:046874000000000020 +:04687500000000001F +:04687600000000001E +:04687700000000001D +:04687800000000001C +:04687900000000001B +:04687A00000000001A +:04687B000000000019 +:04687C000000000018 +:04687D000000000017 +:04687E000000000016 +:04687F000000000015 +:046880000000000014 +:046881000000000013 +:046882000000000012 +:046883000000000011 +:046884000000000010 +:04688500000000000F +:04688600000000000E +:04688700000000000D +:04688800000000000C +:04688900000000000B +:04688A00000000000A +:04688B000000000009 +:04688C000000000008 +:04688D000000000007 +:04688E000000000006 +:04688F000000000005 +:046890000000000004 +:046891000000000003 +:046892000000000002 +:046893000000000001 +:046894000000000000 +:0468950000000000FF +:0468960000000000FE +:0468970000000000FD +:0468980000000000FC +:0468990000000000FB +:04689A0000000000FA +:04689B0000000000F9 +:04689C0000000000F8 +:04689D0000000000F7 +:04689E0000000000F6 +:04689F0000000000F5 +:0468A00000000000F4 +:0468A10000000000F3 +:0468A20000000000F2 +:0468A30000000000F1 +:0468A40000000000F0 +:0468A50000000000EF +:0468A60000000000EE +:0468A70000000000ED +:0468A80000000000EC +:0468A90000000000EB +:0468AA0000000000EA +:0468AB0000000000E9 +:0468AC0000000000E8 +:0468AD0000000000E7 +:0468AE0000000000E6 +:0468AF0000000000E5 +:0468B00000000000E4 +:0468B10000000000E3 +:0468B20000000000E2 +:0468B30000000000E1 +:0468B40000000000E0 +:0468B50000000000DF +:0468B60000000000DE +:0468B70000000000DD +:0468B80000000000DC +:0468B90000000000DB +:0468BA0000000000DA +:0468BB0000000000D9 +:0468BC0000000000D8 +:0468BD0000000000D7 +:0468BE0000000000D6 +:0468BF0000000000D5 +:0468C00000000000D4 +:0468C10000000000D3 +:0468C20000000000D2 +:0468C30000000000D1 +:0468C40000000000D0 +:0468C50000000000CF +:0468C60000000000CE +:0468C70000000000CD +:0468C80000000000CC +:0468C90000000000CB +:0468CA0000000000CA +:0468CB0000000000C9 +:0468CC0000000000C8 +:0468CD0000000000C7 +:0468CE0000000000C6 +:0468CF0000000000C5 +:0468D00000000000C4 +:0468D10000000000C3 +:0468D20000000000C2 +:0468D30000000000C1 +:0468D40000000000C0 +:0468D50000000000BF +:0468D60000000000BE +:0468D70000000000BD +:0468D80000000000BC +:0468D90000000000BB +:0468DA0000000000BA +:0468DB0000000000B9 +:0468DC0000000000B8 +:0468DD0000000000B7 +:0468DE0000000000B6 +:0468DF0000000000B5 +:0468E00000000000B4 +:0468E10000000000B3 +:0468E20000000000B2 +:0468E30000000000B1 +:0468E40000000000B0 +:0468E50000000000AF +:0468E60000000000AE +:0468E70000000000AD +:0468E80000000000AC +:0468E90000000000AB +:0468EA0000000000AA +:0468EB0000000000A9 +:0468EC0000000000A8 +:0468ED0000000000A7 +:0468EE0000000000A6 +:0468EF0000000000A5 +:0468F00000000000A4 +:0468F10000000000A3 +:0468F20000000000A2 +:0468F30000000000A1 +:0468F40000000000A0 +:0468F500000000009F +:0468F600000000009E +:0468F700000000009D +:0468F800000000009C +:0468F900000000009B +:0468FA00000000009A +:0468FB000000000099 +:0468FC000000000098 +:0468FD000000000097 +:0468FE000000000096 +:0468FF000000000095 +:046900000000000093 +:046901000000000092 +:046902000000000091 +:046903000000000090 +:04690400000000008F +:04690500000000008E +:04690600000000008D +:04690700000000008C +:04690800000000008B +:04690900000000008A +:04690A000000000089 +:04690B000000000088 +:04690C000000000087 +:04690D000000000086 +:04690E000000000085 +:04690F000000000084 +:046910000000000083 +:046911000000000082 +:046912000000000081 +:046913000000000080 +:04691400000000007F +:04691500000000007E +:04691600000000007D +:04691700000000007C +:04691800000000007B +:04691900000000007A +:04691A000000000079 +:04691B000000000078 +:04691C000000000077 +:04691D000000000076 +:04691E000000000075 +:04691F000000000074 +:046920000000000073 +:046921000000000072 +:046922000000000071 +:046923000000000070 +:04692400000000006F +:04692500000000006E +:04692600000000006D +:04692700000000006C +:04692800000000006B +:04692900000000006A +:04692A000000000069 +:04692B000000000068 +:04692C000000000067 +:04692D000000000066 +:04692E000000000065 +:04692F000000000064 +:046930000000000063 +:046931000000000062 +:046932000000000061 +:046933000000000060 +:04693400000000005F +:04693500000000005E +:04693600000000005D +:04693700000000005C +:04693800000000005B +:04693900000000005A +:04693A000000000059 +:04693B000000000058 +:04693C000000000057 +:04693D000000000056 +:04693E000000000055 +:04693F000000000054 +:046940000000000053 +:046941000000000052 +:046942000000000051 +:046943000000000050 +:04694400000000004F +:04694500000000004E +:04694600000000004D +:04694700000000004C +:04694800000000004B +:04694900000000004A +:04694A000000000049 +:04694B000000000048 +:04694C000000000047 +:04694D000000000046 +:04694E000000000045 +:04694F000000000044 +:046950000000000043 +:046951000000000042 +:046952000000000041 +:046953000000000040 +:04695400000000003F +:04695500000000003E +:04695600000000003D +:04695700000000003C +:04695800000000003B +:04695900000000003A +:04695A000000000039 +:04695B000000000038 +:04695C000000000037 +:04695D000000000036 +:04695E000000000035 +:04695F000000000034 +:046960000000000033 +:046961000000000032 +:046962000000000031 +:046963000000000030 +:04696400000000002F +:04696500000000002E +:04696600000000002D +:04696700000000002C +:04696800000000002B +:04696900000000002A +:04696A000000000029 +:04696B000000000028 +:04696C000000000027 +:04696D000000000026 +:04696E000000000025 +:04696F000000000024 +:046970000000000023 +:046971000000000022 +:046972000000000021 +:046973000000000020 +:04697400000000001F +:04697500000000001E +:04697600000000001D +:04697700000000001C +:04697800000000001B +:04697900000000001A +:04697A000000000019 +:04697B000000000018 +:04697C000000000017 +:04697D000000000016 +:04697E000000000015 +:04697F000000000014 +:046980000000000013 +:046981000000000012 +:046982000000000011 +:046983000000000010 +:04698400000000000F +:04698500000000000E +:04698600000000000D +:04698700000000000C +:04698800000000000B +:04698900000000000A +:04698A000000000009 +:04698B000000000008 +:04698C000000000007 +:04698D000000000006 +:04698E000000000005 +:04698F000000000004 +:046990000000000003 +:046991000000000002 +:046992000000000001 +:046993000000000000 +:0469940000000000FF +:0469950000000000FE +:0469960000000000FD +:0469970000000000FC +:0469980000000000FB +:0469990000000000FA +:04699A0000000000F9 +:04699B0000000000F8 +:04699C0000000000F7 +:04699D0000000000F6 +:04699E0000000000F5 +:04699F0000000000F4 +:0469A00000000000F3 +:0469A10000000000F2 +:0469A20000000000F1 +:0469A30000000000F0 +:0469A40000000000EF +:0469A50000000000EE +:0469A60000000000ED +:0469A70000000000EC +:0469A80000000000EB +:0469A90000000000EA +:0469AA0000000000E9 +:0469AB0000000000E8 +:0469AC0000000000E7 +:0469AD0000000000E6 +:0469AE0000000000E5 +:0469AF0000000000E4 +:0469B00000000000E3 +:0469B10000000000E2 +:0469B20000000000E1 +:0469B30000000000E0 +:0469B40000000000DF +:0469B50000000000DE +:0469B60000000000DD +:0469B70000000000DC +:0469B80000000000DB +:0469B90000000000DA +:0469BA0000000000D9 +:0469BB0000000000D8 +:0469BC0000000000D7 +:0469BD0000000000D6 +:0469BE0000000000D5 +:0469BF0000000000D4 +:0469C00000000000D3 +:0469C10000000000D2 +:0469C20000000000D1 +:0469C30000000000D0 +:0469C40000000000CF +:0469C50000000000CE +:0469C60000000000CD +:0469C70000000000CC +:0469C80000000000CB +:0469C90000000000CA +:0469CA0000000000C9 +:0469CB0000000000C8 +:0469CC0000000000C7 +:0469CD0000000000C6 +:0469CE0000000000C5 +:0469CF0000000000C4 +:0469D00000000000C3 +:0469D10000000000C2 +:0469D20000000000C1 +:0469D30000000000C0 +:0469D40000000000BF +:0469D50000000000BE +:0469D60000000000BD +:0469D70000000000BC +:0469D80000000000BB +:0469D90000000000BA +:0469DA0000000000B9 +:0469DB0000000000B8 +:0469DC0000000000B7 +:0469DD0000000000B6 +:0469DE0000000000B5 +:0469DF0000000000B4 +:0469E00000000000B3 +:0469E10000000000B2 +:0469E20000000000B1 +:0469E30000000000B0 +:0469E40000000000AF +:0469E50000000000AE +:0469E60000000000AD +:0469E70000000000AC +:0469E80000000000AB +:0469E90000000000AA +:0469EA0000000000A9 +:0469EB0000000000A8 +:0469EC0000000000A7 +:0469ED0000000000A6 +:0469EE0000000000A5 +:0469EF0000000000A4 +:0469F00000000000A3 +:0469F10000000000A2 +:0469F20000000000A1 +:0469F30000000000A0 +:0469F400000000009F +:0469F500000000009E +:0469F600000000009D +:0469F700000000009C +:0469F800000000009B +:0469F900000000009A +:0469FA000000000099 +:0469FB000000000098 +:0469FC000000000097 +:0469FD000000000096 +:0469FE000000000095 +:0469FF000000000094 +:046A00000000000092 +:046A01000000000091 +:046A02000000000090 +:046A0300000000008F +:046A0400000000008E +:046A0500000000008D +:046A0600000000008C +:046A0700000000008B +:046A0800000000008A +:046A09000000000089 +:046A0A000000000088 +:046A0B000000000087 +:046A0C000000000086 +:046A0D000000000085 +:046A0E000000000084 +:046A0F000000000083 +:046A10000000000082 +:046A11000000000081 +:046A12000000000080 +:046A1300000000007F +:046A1400000000007E +:046A1500000000007D +:046A1600000000007C +:046A1700000000007B +:046A1800000000007A +:046A19000000000079 +:046A1A000000000078 +:046A1B000000000077 +:046A1C000000000076 +:046A1D000000000075 +:046A1E000000000074 +:046A1F000000000073 +:046A20000000000072 +:046A21000000000071 +:046A22000000000070 +:046A2300000000006F +:046A2400000000006E +:046A2500000000006D +:046A2600000000006C +:046A2700000000006B +:046A2800000000006A +:046A29000000000069 +:046A2A000000000068 +:046A2B000000000067 +:046A2C000000000066 +:046A2D000000000065 +:046A2E000000000064 +:046A2F000000000063 +:046A30000000000062 +:046A31000000000061 +:046A32000000000060 +:046A3300000000005F +:046A3400000000005E +:046A3500000000005D +:046A3600000000005C +:046A3700000000005B +:046A3800000000005A +:046A39000000000059 +:046A3A000000000058 +:046A3B000000000057 +:046A3C000000000056 +:046A3D000000000055 +:046A3E000000000054 +:046A3F000000000053 +:046A40000000000052 +:046A41000000000051 +:046A42000000000050 +:046A4300000000004F +:046A4400000000004E +:046A4500000000004D +:046A4600000000004C +:046A4700000000004B +:046A4800000000004A +:046A49000000000049 +:046A4A000000000048 +:046A4B000000000047 +:046A4C000000000046 +:046A4D000000000045 +:046A4E000000000044 +:046A4F000000000043 +:046A50000000000042 +:046A51000000000041 +:046A52000000000040 +:046A5300000000003F +:046A5400000000003E +:046A5500000000003D +:046A5600000000003C +:046A5700000000003B +:046A5800000000003A +:046A59000000000039 +:046A5A000000000038 +:046A5B000000000037 +:046A5C000000000036 +:046A5D000000000035 +:046A5E000000000034 +:046A5F000000000033 +:046A60000000000032 +:046A61000000000031 +:046A62000000000030 +:046A6300000000002F +:046A6400000000002E +:046A6500000000002D +:046A6600000000002C +:046A6700000000002B +:046A6800000000002A +:046A69000000000029 +:046A6A000000000028 +:046A6B000000000027 +:046A6C000000000026 +:046A6D000000000025 +:046A6E000000000024 +:046A6F000000000023 +:046A70000000000022 +:046A71000000000021 +:046A72000000000020 +:046A7300000000001F +:046A7400000000001E +:046A7500000000001D +:046A7600000000001C +:046A7700000000001B +:046A7800000000001A +:046A79000000000019 +:046A7A000000000018 +:046A7B000000000017 +:046A7C000000000016 +:046A7D000000000015 +:046A7E000000000014 +:046A7F000000000013 +:046A80000000000012 +:046A81000000000011 +:046A82000000000010 +:046A8300000000000F +:046A8400000000000E +:046A8500000000000D +:046A8600000000000C +:046A8700000000000B +:046A8800000000000A +:046A89000000000009 +:046A8A000000000008 +:046A8B000000000007 +:046A8C000000000006 +:046A8D000000000005 +:046A8E000000000004 +:046A8F000000000003 +:046A90000000000002 +:046A91000000000001 +:046A92000000000000 +:046A930000000000FF +:046A940000000000FE +:046A950000000000FD +:046A960000000000FC +:046A970000000000FB +:046A980000000000FA +:046A990000000000F9 +:046A9A0000000000F8 +:046A9B0000000000F7 +:046A9C0000000000F6 +:046A9D0000000000F5 +:046A9E0000000000F4 +:046A9F0000000000F3 +:046AA00000000000F2 +:046AA10000000000F1 +:046AA20000000000F0 +:046AA30000000000EF +:046AA40000000000EE +:046AA50000000000ED +:046AA60000000000EC +:046AA70000000000EB +:046AA80000000000EA +:046AA90000000000E9 +:046AAA0000000000E8 +:046AAB0000000000E7 +:046AAC0000000000E6 +:046AAD0000000000E5 +:046AAE0000000000E4 +:046AAF0000000000E3 +:046AB00000000000E2 +:046AB10000000000E1 +:046AB20000000000E0 +:046AB30000000000DF +:046AB40000000000DE +:046AB50000000000DD +:046AB60000000000DC +:046AB70000000000DB +:046AB80000000000DA +:046AB90000000000D9 +:046ABA0000000000D8 +:046ABB0000000000D7 +:046ABC0000000000D6 +:046ABD0000000000D5 +:046ABE0000000000D4 +:046ABF0000000000D3 +:046AC00000000000D2 +:046AC10000000000D1 +:046AC20000000000D0 +:046AC30000000000CF +:046AC40000000000CE +:046AC50000000000CD +:046AC60000000000CC +:046AC70000000000CB +:046AC80000000000CA +:046AC90000000000C9 +:046ACA0000000000C8 +:046ACB0000000000C7 +:046ACC0000000000C6 +:046ACD0000000000C5 +:046ACE0000000000C4 +:046ACF0000000000C3 +:046AD00000000000C2 +:046AD10000000000C1 +:046AD20000000000C0 +:046AD30000000000BF +:046AD40000000000BE +:046AD50000000000BD +:046AD60000000000BC +:046AD70000000000BB +:046AD80000000000BA +:046AD90000000000B9 +:046ADA0000000000B8 +:046ADB0000000000B7 +:046ADC0000000000B6 +:046ADD0000000000B5 +:046ADE0000000000B4 +:046ADF0000000000B3 +:046AE00000000000B2 +:046AE10000000000B1 +:046AE20000000000B0 +:046AE30000000000AF +:046AE40000000000AE +:046AE50000000000AD +:046AE60000000000AC +:046AE70000000000AB +:046AE80000000000AA +:046AE90000000000A9 +:046AEA0000000000A8 +:046AEB0000000000A7 +:046AEC0000000000A6 +:046AED0000000000A5 +:046AEE0000000000A4 +:046AEF0000000000A3 +:046AF00000000000A2 +:046AF10000000000A1 +:046AF20000000000A0 +:046AF300000000009F +:046AF400000000009E +:046AF500000000009D +:046AF600000000009C +:046AF700000000009B +:046AF800000000009A +:046AF9000000000099 +:046AFA000000000098 +:046AFB000000000097 +:046AFC000000000096 +:046AFD000000000095 +:046AFE000000000094 +:046AFF000000000093 +:046B00000000000091 +:046B01000000000090 +:046B0200000000008F +:046B0300000000008E +:046B0400000000008D +:046B0500000000008C +:046B0600000000008B +:046B0700000000008A +:046B08000000000089 +:046B09000000000088 +:046B0A000000000087 +:046B0B000000000086 +:046B0C000000000085 +:046B0D000000000084 +:046B0E000000000083 +:046B0F000000000082 +:046B10000000000081 +:046B11000000000080 +:046B1200000000007F +:046B1300000000007E +:046B1400000000007D +:046B1500000000007C +:046B1600000000007B +:046B1700000000007A +:046B18000000000079 +:046B19000000000078 +:046B1A000000000077 +:046B1B000000000076 +:046B1C000000000075 +:046B1D000000000074 +:046B1E000000000073 +:046B1F000000000072 +:046B20000000000071 +:046B21000000000070 +:046B2200000000006F +:046B2300000000006E +:046B2400000000006D +:046B2500000000006C +:046B2600000000006B +:046B2700000000006A +:046B28000000000069 +:046B29000000000068 +:046B2A000000000067 +:046B2B000000000066 +:046B2C000000000065 +:046B2D000000000064 +:046B2E000000000063 +:046B2F000000000062 +:046B30000000000061 +:046B31000000000060 +:046B3200000000005F +:046B3300000000005E +:046B3400000000005D +:046B3500000000005C +:046B3600000000005B +:046B3700000000005A +:046B38000000000059 +:046B39000000000058 +:046B3A000000000057 +:046B3B000000000056 +:046B3C000000000055 +:046B3D000000000054 +:046B3E000000000053 +:046B3F000000000052 +:046B40000000000051 +:046B41000000000050 +:046B4200000000004F +:046B4300000000004E +:046B4400000000004D +:046B4500000000004C +:046B4600000000004B +:046B4700000000004A +:046B48000000000049 +:046B49000000000048 +:046B4A000000000047 +:046B4B000000000046 +:046B4C000000000045 +:046B4D000000000044 +:046B4E000000000043 +:046B4F000000000042 +:046B50000000000041 +:046B51000000000040 +:046B5200000000003F +:046B5300000000003E +:046B5400000000003D +:046B5500000000003C +:046B5600000000003B +:046B5700000000003A +:046B58000000000039 +:046B59000000000038 +:046B5A000000000037 +:046B5B000000000036 +:046B5C000000000035 +:046B5D000000000034 +:046B5E000000000033 +:046B5F000000000032 +:046B60000000000031 +:046B61000000000030 +:046B6200000000002F +:046B6300000000002E +:046B6400000000002D +:046B6500000000002C +:046B6600000000002B +:046B6700000000002A +:046B68000000000029 +:046B69000000000028 +:046B6A000000000027 +:046B6B000000000026 +:046B6C000000000025 +:046B6D000000000024 +:046B6E000000000023 +:046B6F000000000022 +:046B70000000000021 +:046B71000000000020 +:046B7200000000001F +:046B7300000000001E +:046B7400000000001D +:046B7500000000001C +:046B7600000000001B +:046B7700000000001A +:046B78000000000019 +:046B79000000000018 +:046B7A000000000017 +:046B7B000000000016 +:046B7C000000000015 +:046B7D000000000014 +:046B7E000000000013 +:046B7F000000000012 +:046B80000000000011 +:046B81000000000010 +:046B8200000000000F +:046B8300000000000E +:046B8400000000000D +:046B8500000000000C +:046B8600000000000B +:046B8700000000000A +:046B88000000000009 +:046B89000000000008 +:046B8A000000000007 +:046B8B000000000006 +:046B8C000000000005 +:046B8D000000000004 +:046B8E000000000003 +:046B8F000000000002 +:046B90000000000001 +:046B91000000000000 +:046B920000000000FF +:046B930000000000FE +:046B940000000000FD +:046B950000000000FC +:046B960000000000FB +:046B970000000000FA +:046B980000000000F9 +:046B990000000000F8 +:046B9A0000000000F7 +:046B9B0000000000F6 +:046B9C0000000000F5 +:046B9D0000000000F4 +:046B9E0000000000F3 +:046B9F0000000000F2 +:046BA00000000000F1 +:046BA10000000000F0 +:046BA20000000000EF +:046BA30000000000EE +:046BA40000000000ED +:046BA50000000000EC +:046BA60000000000EB +:046BA70000000000EA +:046BA80000000000E9 +:046BA90000000000E8 +:046BAA0000000000E7 +:046BAB0000000000E6 +:046BAC0000000000E5 +:046BAD0000000000E4 +:046BAE0000000000E3 +:046BAF0000000000E2 +:046BB00000000000E1 +:046BB10000000000E0 +:046BB20000000000DF +:046BB30000000000DE +:046BB40000000000DD +:046BB50000000000DC +:046BB60000000000DB +:046BB70000000000DA +:046BB80000000000D9 +:046BB90000000000D8 +:046BBA0000000000D7 +:046BBB0000000000D6 +:046BBC0000000000D5 +:046BBD0000000000D4 +:046BBE0000000000D3 +:046BBF0000000000D2 +:046BC00000000000D1 +:046BC10000000000D0 +:046BC20000000000CF +:046BC30000000000CE +:046BC40000000000CD +:046BC50000000000CC +:046BC60000000000CB +:046BC70000000000CA +:046BC80000000000C9 +:046BC90000000000C8 +:046BCA0000000000C7 +:046BCB0000000000C6 +:046BCC0000000000C5 +:046BCD0000000000C4 +:046BCE0000000000C3 +:046BCF0000000000C2 +:046BD00000000000C1 +:046BD10000000000C0 +:046BD20000000000BF +:046BD30000000000BE +:046BD40000000000BD +:046BD50000000000BC +:046BD60000000000BB +:046BD70000000000BA +:046BD80000000000B9 +:046BD90000000000B8 +:046BDA0000000000B7 +:046BDB0000000000B6 +:046BDC0000000000B5 +:046BDD0000000000B4 +:046BDE0000000000B3 +:046BDF0000000000B2 +:046BE00000000000B1 +:046BE10000000000B0 +:046BE20000000000AF +:046BE30000000000AE +:046BE40000000000AD +:046BE50000000000AC +:046BE60000000000AB +:046BE70000000000AA +:046BE80000000000A9 +:046BE90000000000A8 +:046BEA0000000000A7 +:046BEB0000000000A6 +:046BEC0000000000A5 +:046BED0000000000A4 +:046BEE0000000000A3 +:046BEF0000000000A2 +:046BF00000000000A1 +:046BF10000000000A0 +:046BF200000000009F +:046BF300000000009E +:046BF400000000009D +:046BF500000000009C +:046BF600000000009B +:046BF700000000009A +:046BF8000000000099 +:046BF9000000000098 +:046BFA000000000097 +:046BFB000000000096 +:046BFC000000000095 +:046BFD000000000094 +:046BFE000000000093 +:046BFF000000000092 +:046C00000000000090 +:046C0100000000008F +:046C0200000000008E +:046C0300000000008D +:046C0400000000008C +:046C0500000000008B +:046C0600000000008A +:046C07000000000089 +:046C08000000000088 +:046C09000000000087 +:046C0A000000000086 +:046C0B000000000085 +:046C0C000000000084 +:046C0D000000000083 +:046C0E000000000082 +:046C0F000000000081 +:046C10000000000080 +:046C1100000000007F +:046C1200000000007E +:046C1300000000007D +:046C1400000000007C +:046C1500000000007B +:046C1600000000007A +:046C17000000000079 +:046C18000000000078 +:046C19000000000077 +:046C1A000000000076 +:046C1B000000000075 +:046C1C000000000074 +:046C1D000000000073 +:046C1E000000000072 +:046C1F000000000071 +:046C20000000000070 +:046C2100000000006F +:046C2200000000006E +:046C2300000000006D +:046C2400000000006C +:046C2500000000006B +:046C2600000000006A +:046C27000000000069 +:046C28000000000068 +:046C29000000000067 +:046C2A000000000066 +:046C2B000000000065 +:046C2C000000000064 +:046C2D000000000063 +:046C2E000000000062 +:046C2F000000000061 +:046C30000000000060 +:046C3100000000005F +:046C3200000000005E +:046C3300000000005D +:046C3400000000005C +:046C3500000000005B +:046C3600000000005A +:046C37000000000059 +:046C38000000000058 +:046C39000000000057 +:046C3A000000000056 +:046C3B000000000055 +:046C3C000000000054 +:046C3D000000000053 +:046C3E000000000052 +:046C3F000000000051 +:046C40000000000050 +:046C4100000000004F +:046C4200000000004E +:046C4300000000004D +:046C4400000000004C +:046C4500000000004B +:046C4600000000004A +:046C47000000000049 +:046C48000000000048 +:046C49000000000047 +:046C4A000000000046 +:046C4B000000000045 +:046C4C000000000044 +:046C4D000000000043 +:046C4E000000000042 +:046C4F000000000041 +:046C50000000000040 +:046C5100000000003F +:046C5200000000003E +:046C5300000000003D +:046C5400000000003C +:046C5500000000003B +:046C5600000000003A +:046C57000000000039 +:046C58000000000038 +:046C59000000000037 +:046C5A000000000036 +:046C5B000000000035 +:046C5C000000000034 +:046C5D000000000033 +:046C5E000000000032 +:046C5F000000000031 +:046C60000000000030 +:046C6100000000002F +:046C6200000000002E +:046C6300000000002D +:046C6400000000002C +:046C6500000000002B +:046C6600000000002A +:046C67000000000029 +:046C68000000000028 +:046C69000000000027 +:046C6A000000000026 +:046C6B000000000025 +:046C6C000000000024 +:046C6D000000000023 +:046C6E000000000022 +:046C6F000000000021 +:046C70000000000020 +:046C7100000000001F +:046C7200000000001E +:046C7300000000001D +:046C7400000000001C +:046C7500000000001B +:046C7600000000001A +:046C77000000000019 +:046C78000000000018 +:046C79000000000017 +:046C7A000000000016 +:046C7B000000000015 +:046C7C000000000014 +:046C7D000000000013 +:046C7E000000000012 +:046C7F000000000011 +:046C80000000000010 +:046C8100000000000F +:046C8200000000000E +:046C8300000000000D +:046C8400000000000C +:046C8500000000000B +:046C8600000000000A +:046C87000000000009 +:046C88000000000008 +:046C89000000000007 +:046C8A000000000006 +:046C8B000000000005 +:046C8C000000000004 +:046C8D000000000003 +:046C8E000000000002 +:046C8F000000000001 +:046C90000000000000 +:046C910000000000FF +:046C920000000000FE +:046C930000000000FD +:046C940000000000FC +:046C950000000000FB +:046C960000000000FA +:046C970000000000F9 +:046C980000000000F8 +:046C990000000000F7 +:046C9A0000000000F6 +:046C9B0000000000F5 +:046C9C0000000000F4 +:046C9D0000000000F3 +:046C9E0000000000F2 +:046C9F0000000000F1 +:046CA00000000000F0 +:046CA10000000000EF +:046CA20000000000EE +:046CA30000000000ED +:046CA40000000000EC +:046CA50000000000EB +:046CA60000000000EA +:046CA70000000000E9 +:046CA80000000000E8 +:046CA90000000000E7 +:046CAA0000000000E6 +:046CAB0000000000E5 +:046CAC0000000000E4 +:046CAD0000000000E3 +:046CAE0000000000E2 +:046CAF0000000000E1 +:046CB00000000000E0 +:046CB10000000000DF +:046CB20000000000DE +:046CB30000000000DD +:046CB40000000000DC +:046CB50000000000DB +:046CB60000000000DA +:046CB70000000000D9 +:046CB80000000000D8 +:046CB90000000000D7 +:046CBA0000000000D6 +:046CBB0000000000D5 +:046CBC0000000000D4 +:046CBD0000000000D3 +:046CBE0000000000D2 +:046CBF0000000000D1 +:046CC00000000000D0 +:046CC10000000000CF +:046CC20000000000CE +:046CC30000000000CD +:046CC40000000000CC +:046CC50000000000CB +:046CC60000000000CA +:046CC70000000000C9 +:046CC80000000000C8 +:046CC90000000000C7 +:046CCA0000000000C6 +:046CCB0000000000C5 +:046CCC0000000000C4 +:046CCD0000000000C3 +:046CCE0000000000C2 +:046CCF0000000000C1 +:046CD00000000000C0 +:046CD10000000000BF +:046CD20000000000BE +:046CD30000000000BD +:046CD40000000000BC +:046CD50000000000BB +:046CD60000000000BA +:046CD70000000000B9 +:046CD80000000000B8 +:046CD90000000000B7 +:046CDA0000000000B6 +:046CDB0000000000B5 +:046CDC0000000000B4 +:046CDD0000000000B3 +:046CDE0000000000B2 +:046CDF0000000000B1 +:046CE00000000000B0 +:046CE10000000000AF +:046CE20000000000AE +:046CE30000000000AD +:046CE40000000000AC +:046CE50000000000AB +:046CE60000000000AA +:046CE70000000000A9 +:046CE80000000000A8 +:046CE90000000000A7 +:046CEA0000000000A6 +:046CEB0000000000A5 +:046CEC0000000000A4 +:046CED0000000000A3 +:046CEE0000000000A2 +:046CEF0000000000A1 +:046CF00000000000A0 +:046CF100000000009F +:046CF200000000009E +:046CF300000000009D +:046CF400000000009C +:046CF500000000009B +:046CF600000000009A +:046CF7000000000099 +:046CF8000000000098 +:046CF9000000000097 +:046CFA000000000096 +:046CFB000000000095 +:046CFC000000000094 +:046CFD000000000093 +:046CFE000000000092 +:046CFF000000000091 +:046D0000000000008F +:046D0100000000008E +:046D0200000000008D +:046D0300000000008C +:046D0400000000008B +:046D0500000000008A +:046D06000000000089 +:046D07000000000088 +:046D08000000000087 +:046D09000000000086 +:046D0A000000000085 +:046D0B000000000084 +:046D0C000000000083 +:046D0D000000000082 +:046D0E000000000081 +:046D0F000000000080 +:046D1000000000007F +:046D1100000000007E +:046D1200000000007D +:046D1300000000007C +:046D1400000000007B +:046D1500000000007A +:046D16000000000079 +:046D17000000000078 +:046D18000000000077 +:046D19000000000076 +:046D1A000000000075 +:046D1B000000000074 +:046D1C000000000073 +:046D1D000000000072 +:046D1E000000000071 +:046D1F000000000070 +:046D2000000000006F +:046D2100000000006E +:046D2200000000006D +:046D2300000000006C +:046D2400000000006B +:046D2500000000006A +:046D26000000000069 +:046D27000000000068 +:046D28000000000067 +:046D29000000000066 +:046D2A000000000065 +:046D2B000000000064 +:046D2C000000000063 +:046D2D000000000062 +:046D2E000000000061 +:046D2F000000000060 +:046D3000000000005F +:046D3100000000005E +:046D3200000000005D +:046D3300000000005C +:046D3400000000005B +:046D3500000000005A +:046D36000000000059 +:046D37000000000058 +:046D38000000000057 +:046D39000000000056 +:046D3A000000000055 +:046D3B000000000054 +:046D3C000000000053 +:046D3D000000000052 +:046D3E000000000051 +:046D3F000000000050 +:046D4000000000004F +:046D4100000000004E +:046D4200000000004D +:046D4300000000004C +:046D4400000000004B +:046D4500000000004A +:046D46000000000049 +:046D47000000000048 +:046D48000000000047 +:046D49000000000046 +:046D4A000000000045 +:046D4B000000000044 +:046D4C000000000043 +:046D4D000000000042 +:046D4E000000000041 +:046D4F000000000040 +:046D5000000000003F +:046D5100000000003E +:046D5200000000003D +:046D5300000000003C +:046D5400000000003B +:046D5500000000003A +:046D56000000000039 +:046D57000000000038 +:046D58000000000037 +:046D59000000000036 +:046D5A000000000035 +:046D5B000000000034 +:046D5C000000000033 +:046D5D000000000032 +:046D5E000000000031 +:046D5F000000000030 +:046D6000000000002F +:046D6100000000002E +:046D6200000000002D +:046D6300000000002C +:046D6400000000002B +:046D6500000000002A +:046D66000000000029 +:046D67000000000028 +:046D68000000000027 +:046D69000000000026 +:046D6A000000000025 +:046D6B000000000024 +:046D6C000000000023 +:046D6D000000000022 +:046D6E000000000021 +:046D6F000000000020 +:046D7000000000001F +:046D7100000000001E +:046D7200000000001D +:046D7300000000001C +:046D7400000000001B +:046D7500000000001A +:046D76000000000019 +:046D77000000000018 +:046D78000000000017 +:046D79000000000016 +:046D7A000000000015 +:046D7B000000000014 +:046D7C000000000013 +:046D7D000000000012 +:046D7E000000000011 +:046D7F000000000010 +:046D8000000000000F +:046D8100000000000E +:046D8200000000000D +:046D8300000000000C +:046D8400000000000B +:046D8500000000000A +:046D86000000000009 +:046D87000000000008 +:046D88000000000007 +:046D89000000000006 +:046D8A000000000005 +:046D8B000000000004 +:046D8C000000000003 +:046D8D000000000002 +:046D8E000000000001 +:046D8F000000000000 +:046D900000000000FF +:046D910000000000FE +:046D920000000000FD +:046D930000000000FC +:046D940000000000FB +:046D950000000000FA +:046D960000000000F9 +:046D970000000000F8 +:046D980000000000F7 +:046D990000000000F6 +:046D9A0000000000F5 +:046D9B0000000000F4 +:046D9C0000000000F3 +:046D9D0000000000F2 +:046D9E0000000000F1 +:046D9F0000000000F0 +:046DA00000000000EF +:046DA10000000000EE +:046DA20000000000ED +:046DA30000000000EC +:046DA40000000000EB +:046DA50000000000EA +:046DA60000000000E9 +:046DA70000000000E8 +:046DA80000000000E7 +:046DA90000000000E6 +:046DAA0000000000E5 +:046DAB0000000000E4 +:046DAC0000000000E3 +:046DAD0000000000E2 +:046DAE0000000000E1 +:046DAF0000000000E0 +:046DB00000000000DF +:046DB10000000000DE +:046DB20000000000DD +:046DB30000000000DC +:046DB40000000000DB +:046DB50000000000DA +:046DB60000000000D9 +:046DB70000000000D8 +:046DB80000000000D7 +:046DB90000000000D6 +:046DBA0000000000D5 +:046DBB0000000000D4 +:046DBC0000000000D3 +:046DBD0000000000D2 +:046DBE0000000000D1 +:046DBF0000000000D0 +:046DC00000000000CF +:046DC10000000000CE +:046DC20000000000CD +:046DC30000000000CC +:046DC40000000000CB +:046DC50000000000CA +:046DC60000000000C9 +:046DC70000000000C8 +:046DC80000000000C7 +:046DC90000000000C6 +:046DCA0000000000C5 +:046DCB0000000000C4 +:046DCC0000000000C3 +:046DCD0000000000C2 +:046DCE0000000000C1 +:046DCF0000000000C0 +:046DD00000000000BF +:046DD10000000000BE +:046DD20000000000BD +:046DD30000000000BC +:046DD40000000000BB +:046DD50000000000BA +:046DD60000000000B9 +:046DD70000000000B8 +:046DD80000000000B7 +:046DD90000000000B6 +:046DDA0000000000B5 +:046DDB0000000000B4 +:046DDC0000000000B3 +:046DDD0000000000B2 +:046DDE0000000000B1 +:046DDF0000000000B0 +:046DE00000000000AF +:046DE10000000000AE +:046DE20000000000AD +:046DE30000000000AC +:046DE40000000000AB +:046DE50000000000AA +:046DE60000000000A9 +:046DE70000000000A8 +:046DE80000000000A7 +:046DE90000000000A6 +:046DEA0000000000A5 +:046DEB0000000000A4 +:046DEC0000000000A3 +:046DED0000000000A2 +:046DEE0000000000A1 +:046DEF0000000000A0 +:046DF000000000009F +:046DF100000000009E +:046DF200000000009D +:046DF300000000009C +:046DF400000000009B +:046DF500000000009A +:046DF6000000000099 +:046DF7000000000098 +:046DF8000000000097 +:046DF9000000000096 +:046DFA000000000095 +:046DFB000000000094 +:046DFC000000000093 +:046DFD000000000092 +:046DFE000000000091 +:046DFF000000000090 +:046E0000000000008E +:046E0100000000008D +:046E0200000000008C +:046E0300000000008B +:046E0400000000008A +:046E05000000000089 +:046E06000000000088 +:046E07000000000087 +:046E08000000000086 +:046E09000000000085 +:046E0A000000000084 +:046E0B000000000083 +:046E0C000000000082 +:046E0D000000000081 +:046E0E000000000080 +:046E0F00000000007F +:046E1000000000007E +:046E1100000000007D +:046E1200000000007C +:046E1300000000007B +:046E1400000000007A +:046E15000000000079 +:046E16000000000078 +:046E17000000000077 +:046E18000000000076 +:046E19000000000075 +:046E1A000000000074 +:046E1B000000000073 +:046E1C000000000072 +:046E1D000000000071 +:046E1E000000000070 +:046E1F00000000006F +:046E2000000000006E +:046E2100000000006D +:046E2200000000006C +:046E2300000000006B +:046E2400000000006A +:046E25000000000069 +:046E26000000000068 +:046E27000000000067 +:046E28000000000066 +:046E29000000000065 +:046E2A000000000064 +:046E2B000000000063 +:046E2C000000000062 +:046E2D000000000061 +:046E2E000000000060 +:046E2F00000000005F +:046E3000000000005E +:046E3100000000005D +:046E3200000000005C +:046E3300000000005B +:046E3400000000005A +:046E35000000000059 +:046E36000000000058 +:046E37000000000057 +:046E38000000000056 +:046E39000000000055 +:046E3A000000000054 +:046E3B000000000053 +:046E3C000000000052 +:046E3D000000000051 +:046E3E000000000050 +:046E3F00000000004F +:046E4000000000004E +:046E4100000000004D +:046E4200000000004C +:046E4300000000004B +:046E4400000000004A +:046E45000000000049 +:046E46000000000048 +:046E47000000000047 +:046E48000000000046 +:046E49000000000045 +:046E4A000000000044 +:046E4B000000000043 +:046E4C000000000042 +:046E4D000000000041 +:046E4E000000000040 +:046E4F00000000003F +:046E5000000000003E +:046E5100000000003D +:046E5200000000003C +:046E5300000000003B +:046E5400000000003A +:046E55000000000039 +:046E56000000000038 +:046E57000000000037 +:046E58000000000036 +:046E59000000000035 +:046E5A000000000034 +:046E5B000000000033 +:046E5C000000000032 +:046E5D000000000031 +:046E5E000000000030 +:046E5F00000000002F +:046E6000000000002E +:046E6100000000002D +:046E6200000000002C +:046E6300000000002B +:046E6400000000002A +:046E65000000000029 +:046E66000000000028 +:046E67000000000027 +:046E68000000000026 +:046E69000000000025 +:046E6A000000000024 +:046E6B000000000023 +:046E6C000000000022 +:046E6D000000000021 +:046E6E000000000020 +:046E6F00000000001F +:046E7000000000001E +:046E7100000000001D +:046E7200000000001C +:046E7300000000001B +:046E7400000000001A +:046E75000000000019 +:046E76000000000018 +:046E77000000000017 +:046E78000000000016 +:046E79000000000015 +:046E7A000000000014 +:046E7B000000000013 +:046E7C000000000012 +:046E7D000000000011 +:046E7E000000000010 +:046E7F00000000000F +:046E8000000000000E +:046E8100000000000D +:046E8200000000000C +:046E8300000000000B +:046E8400000000000A +:046E85000000000009 +:046E86000000000008 +:046E87000000000007 +:046E88000000000006 +:046E89000000000005 +:046E8A000000000004 +:046E8B000000000003 +:046E8C000000000002 +:046E8D000000000001 +:046E8E000000000000 +:046E8F0000000000FF +:046E900000000000FE +:046E910000000000FD +:046E920000000000FC +:046E930000000000FB +:046E940000000000FA +:046E950000000000F9 +:046E960000000000F8 +:046E970000000000F7 +:046E980000000000F6 +:046E990000000000F5 +:046E9A0000000000F4 +:046E9B0000000000F3 +:046E9C0000000000F2 +:046E9D0000000000F1 +:046E9E0000000000F0 +:046E9F0000000000EF +:046EA00000000000EE +:046EA10000000000ED +:046EA20000000000EC +:046EA30000000000EB +:046EA40000000000EA +:046EA50000000000E9 +:046EA60000000000E8 +:046EA70000000000E7 +:046EA80000000000E6 +:046EA90000000000E5 +:046EAA0000000000E4 +:046EAB0000000000E3 +:046EAC0000000000E2 +:046EAD0000000000E1 +:046EAE0000000000E0 +:046EAF0000000000DF +:046EB00000000000DE +:046EB10000000000DD +:046EB20000000000DC +:046EB30000000000DB +:046EB40000000000DA +:046EB50000000000D9 +:046EB60000000000D8 +:046EB70000000000D7 +:046EB80000000000D6 +:046EB90000000000D5 +:046EBA0000000000D4 +:046EBB0000000000D3 +:046EBC0000000000D2 +:046EBD0000000000D1 +:046EBE0000000000D0 +:046EBF0000000000CF +:046EC00000000000CE +:046EC10000000000CD +:046EC20000000000CC +:046EC30000000000CB +:046EC40000000000CA +:046EC50000000000C9 +:046EC60000000000C8 +:046EC70000000000C7 +:046EC80000000000C6 +:046EC90000000000C5 +:046ECA0000000000C4 +:046ECB0000000000C3 +:046ECC0000000000C2 +:046ECD0000000000C1 +:046ECE0000000000C0 +:046ECF0000000000BF +:046ED00000000000BE +:046ED10000000000BD +:046ED20000000000BC +:046ED30000000000BB +:046ED40000000000BA +:046ED50000000000B9 +:046ED60000000000B8 +:046ED70000000000B7 +:046ED80000000000B6 +:046ED90000000000B5 +:046EDA0000000000B4 +:046EDB0000000000B3 +:046EDC0000000000B2 +:046EDD0000000000B1 +:046EDE0000000000B0 +:046EDF0000000000AF +:046EE00000000000AE +:046EE10000000000AD +:046EE20000000000AC +:046EE30000000000AB +:046EE40000000000AA +:046EE50000000000A9 +:046EE60000000000A8 +:046EE70000000000A7 +:046EE80000000000A6 +:046EE90000000000A5 +:046EEA0000000000A4 +:046EEB0000000000A3 +:046EEC0000000000A2 +:046EED0000000000A1 +:046EEE0000000000A0 +:046EEF00000000009F +:046EF000000000009E +:046EF100000000009D +:046EF200000000009C +:046EF300000000009B +:046EF400000000009A +:046EF5000000000099 +:046EF6000000000098 +:046EF7000000000097 +:046EF8000000000096 +:046EF9000000000095 +:046EFA000000000094 +:046EFB000000000093 +:046EFC000000000092 +:046EFD000000000091 +:046EFE000000000090 +:046EFF00000000008F +:046F0000000000008D +:046F0100000000008C +:046F0200000000008B +:046F0300000000008A +:046F04000000000089 +:046F05000000000088 +:046F06000000000087 +:046F07000000000086 +:046F08000000000085 +:046F09000000000084 +:046F0A000000000083 +:046F0B000000000082 +:046F0C000000000081 +:046F0D000000000080 +:046F0E00000000007F +:046F0F00000000007E +:046F1000000000007D +:046F1100000000007C +:046F1200000000007B +:046F1300000000007A +:046F14000000000079 +:046F15000000000078 +:046F16000000000077 +:046F17000000000076 +:046F18000000000075 +:046F19000000000074 +:046F1A000000000073 +:046F1B000000000072 +:046F1C000000000071 +:046F1D000000000070 +:046F1E00000000006F +:046F1F00000000006E +:046F2000000000006D +:046F2100000000006C +:046F2200000000006B +:046F2300000000006A +:046F24000000000069 +:046F25000000000068 +:046F26000000000067 +:046F27000000000066 +:046F28000000000065 +:046F29000000000064 +:046F2A000000000063 +:046F2B000000000062 +:046F2C000000000061 +:046F2D000000000060 +:046F2E00000000005F +:046F2F00000000005E +:046F3000000000005D +:046F3100000000005C +:046F3200000000005B +:046F3300000000005A +:046F34000000000059 +:046F35000000000058 +:046F36000000000057 +:046F37000000000056 +:046F38000000000055 +:046F39000000000054 +:046F3A000000000053 +:046F3B000000000052 +:046F3C000000000051 +:046F3D000000000050 +:046F3E00000000004F +:046F3F00000000004E +:046F4000000000004D +:046F4100000000004C +:046F4200000000004B +:046F4300000000004A +:046F44000000000049 +:046F45000000000048 +:046F46000000000047 +:046F47000000000046 +:046F48000000000045 +:046F49000000000044 +:046F4A000000000043 +:046F4B000000000042 +:046F4C000000000041 +:046F4D000000000040 +:046F4E00000000003F +:046F4F00000000003E +:046F5000000000003D +:046F5100000000003C +:046F5200000000003B +:046F5300000000003A +:046F54000000000039 +:046F55000000000038 +:046F56000000000037 +:046F57000000000036 +:046F58000000000035 +:046F59000000000034 +:046F5A000000000033 +:046F5B000000000032 +:046F5C000000000031 +:046F5D000000000030 +:046F5E00000000002F +:046F5F00000000002E +:046F6000000000002D +:046F6100000000002C +:046F6200000000002B +:046F6300000000002A +:046F64000000000029 +:046F65000000000028 +:046F66000000000027 +:046F67000000000026 +:046F68000000000025 +:046F69000000000024 +:046F6A000000000023 +:046F6B000000000022 +:046F6C000000000021 +:046F6D000000000020 +:046F6E00000000001F +:046F6F00000000001E +:046F7000000000001D +:046F7100000000001C +:046F7200000000001B +:046F7300000000001A +:046F74000000000019 +:046F75000000000018 +:046F76000000000017 +:046F77000000000016 +:046F78000000000015 +:046F79000000000014 +:046F7A000000000013 +:046F7B000000000012 +:046F7C000000000011 +:046F7D000000000010 +:046F7E00000000000F +:046F7F00000000000E +:046F8000000000000D +:046F8100000000000C +:046F8200000000000B +:046F8300000000000A +:046F84000000000009 +:046F85000000000008 +:046F86000000000007 +:046F87000000000006 +:046F88000000000005 +:046F89000000000004 +:046F8A000000000003 +:046F8B000000000002 +:046F8C000000000001 +:046F8D000000000000 +:046F8E0000000000FF +:046F8F0000000000FE +:046F900000000000FD +:046F910000000000FC +:046F920000000000FB +:046F930000000000FA +:046F940000000000F9 +:046F950000000000F8 +:046F960000000000F7 +:046F970000000000F6 +:046F980000000000F5 +:046F990000000000F4 +:046F9A0000000000F3 +:046F9B0000000000F2 +:046F9C0000000000F1 +:046F9D0000000000F0 +:046F9E0000000000EF +:046F9F0000000000EE +:046FA00000000000ED +:046FA10000000000EC +:046FA20000000000EB +:046FA30000000000EA +:046FA40000000000E9 +:046FA50000000000E8 +:046FA60000000000E7 +:046FA70000000000E6 +:046FA80000000000E5 +:046FA90000000000E4 +:046FAA0000000000E3 +:046FAB0000000000E2 +:046FAC0000000000E1 +:046FAD0000000000E0 +:046FAE0000000000DF +:046FAF0000000000DE +:046FB00000000000DD +:046FB10000000000DC +:046FB20000000000DB +:046FB30000000000DA +:046FB40000000000D9 +:046FB50000000000D8 +:046FB60000000000D7 +:046FB70000000000D6 +:046FB80000000000D5 +:046FB90000000000D4 +:046FBA0000000000D3 +:046FBB0000000000D2 +:046FBC0000000000D1 +:046FBD0000000000D0 +:046FBE0000000000CF +:046FBF0000000000CE +:046FC00000000000CD +:046FC10000000000CC +:046FC20000000000CB +:046FC30000000000CA +:046FC40000000000C9 +:046FC50000000000C8 +:046FC60000000000C7 +:046FC70000000000C6 +:046FC80000000000C5 +:046FC90000000000C4 +:046FCA0000000000C3 +:046FCB0000000000C2 +:046FCC0000000000C1 +:046FCD0000000000C0 +:046FCE0000000000BF +:046FCF0000000000BE +:046FD00000000000BD +:046FD10000000000BC +:046FD20000000000BB +:046FD30000000000BA +:046FD40000000000B9 +:046FD50000000000B8 +:046FD60000000000B7 +:046FD70000000000B6 +:046FD80000000000B5 +:046FD90000000000B4 +:046FDA0000000000B3 +:046FDB0000000000B2 +:046FDC0000000000B1 +:046FDD0000000000B0 +:046FDE0000000000AF +:046FDF0000000000AE +:046FE00000000000AD +:046FE10000000000AC +:046FE20000000000AB +:046FE30000000000AA +:046FE40000000000A9 +:046FE50000000000A8 +:046FE60000000000A7 +:046FE70000000000A6 +:046FE80000000000A5 +:046FE90000000000A4 +:046FEA0000000000A3 +:046FEB0000000000A2 +:046FEC0000000000A1 +:046FED0000000000A0 +:046FEE00000000009F +:046FEF00000000009E +:046FF000000000009D +:046FF100000000009C +:046FF200000000009B +:046FF300000000009A +:046FF4000000000099 +:046FF5000000000098 +:046FF6000000000097 +:046FF7000000000096 +:046FF8000000000095 +:046FF9000000000094 +:046FFA000000000093 +:046FFB000000000092 +:046FFC000000000091 +:046FFD000000000090 +:046FFE00000000008F +:046FFF00000000008E +:04700000000000008C +:04700100000000008B +:04700200000000008A +:047003000000000089 +:047004000000000088 +:047005000000000087 +:047006000000000086 +:047007000000000085 +:047008000000000084 +:047009000000000083 +:04700A000000000082 +:04700B000000000081 +:04700C000000000080 +:04700D00000000007F +:04700E00000000007E +:04700F00000000007D +:04701000000000007C +:04701100000000007B +:04701200000000007A +:047013000000000079 +:047014000000000078 +:047015000000000077 +:047016000000000076 +:047017000000000075 +:047018000000000074 +:047019000000000073 +:04701A000000000072 +:04701B000000000071 +:04701C000000000070 +:04701D00000000006F +:04701E00000000006E +:04701F00000000006D +:04702000000000006C +:04702100000000006B +:04702200000000006A +:047023000000000069 +:047024000000000068 +:047025000000000067 +:047026000000000066 +:047027000000000065 +:047028000000000064 +:047029000000000063 +:04702A000000000062 +:04702B000000000061 +:04702C000000000060 +:04702D00000000005F +:04702E00000000005E +:04702F00000000005D +:04703000000000005C +:04703100000000005B +:04703200000000005A +:047033000000000059 +:047034000000000058 +:047035000000000057 +:047036000000000056 +:047037000000000055 +:047038000000000054 +:047039000000000053 +:04703A000000000052 +:04703B000000000051 +:04703C000000000050 +:04703D00000000004F +:04703E00000000004E +:04703F00000000004D +:04704000000000004C +:04704100000000004B +:04704200000000004A +:047043000000000049 +:047044000000000048 +:047045000000000047 +:047046000000000046 +:047047000000000045 +:047048000000000044 +:047049000000000043 +:04704A000000000042 +:04704B000000000041 +:04704C000000000040 +:04704D00000000003F +:04704E00000000003E +:04704F00000000003D +:04705000000000003C +:04705100000000003B +:04705200000000003A +:047053000000000039 +:047054000000000038 +:047055000000000037 +:047056000000000036 +:047057000000000035 +:047058000000000034 +:047059000000000033 +:04705A000000000032 +:04705B000000000031 +:04705C000000000030 +:04705D00000000002F +:04705E00000000002E +:04705F00000000002D +:04706000000000002C +:04706100000000002B +:04706200000000002A +:047063000000000029 +:047064000000000028 +:047065000000000027 +:047066000000000026 +:047067000000000025 +:047068000000000024 +:047069000000000023 +:04706A000000000022 +:04706B000000000021 +:04706C000000000020 +:04706D00000000001F +:04706E00000000001E +:04706F00000000001D +:04707000000000001C +:04707100000000001B +:04707200000000001A +:047073000000000019 +:047074000000000018 +:047075000000000017 +:047076000000000016 +:047077000000000015 +:047078000000000014 +:047079000000000013 +:04707A000000000012 +:04707B000000000011 +:04707C000000000010 +:04707D00000000000F +:04707E00000000000E +:04707F00000000000D +:04708000000000000C +:04708100000000000B +:04708200000000000A +:047083000000000009 +:047084000000000008 +:047085000000000007 +:047086000000000006 +:047087000000000005 +:047088000000000004 +:047089000000000003 +:04708A000000000002 +:04708B000000000001 +:04708C000000000000 +:04708D0000000000FF +:04708E0000000000FE +:04708F0000000000FD +:0470900000000000FC +:0470910000000000FB +:0470920000000000FA +:0470930000000000F9 +:0470940000000000F8 +:0470950000000000F7 +:0470960000000000F6 +:0470970000000000F5 +:0470980000000000F4 +:0470990000000000F3 +:04709A0000000000F2 +:04709B0000000000F1 +:04709C0000000000F0 +:04709D0000000000EF +:04709E0000000000EE +:04709F0000000000ED +:0470A00000000000EC +:0470A10000000000EB +:0470A20000000000EA +:0470A30000000000E9 +:0470A40000000000E8 +:0470A50000000000E7 +:0470A60000000000E6 +:0470A70000000000E5 +:0470A80000000000E4 +:0470A90000000000E3 +:0470AA0000000000E2 +:0470AB0000000000E1 +:0470AC0000000000E0 +:0470AD0000000000DF +:0470AE0000000000DE +:0470AF0000000000DD +:0470B00000000000DC +:0470B10000000000DB +:0470B20000000000DA +:0470B30000000000D9 +:0470B40000000000D8 +:0470B50000000000D7 +:0470B60000000000D6 +:0470B70000000000D5 +:0470B80000000000D4 +:0470B90000000000D3 +:0470BA0000000000D2 +:0470BB0000000000D1 +:0470BC0000000000D0 +:0470BD0000000000CF +:0470BE0000000000CE +:0470BF0000000000CD +:0470C00000000000CC +:0470C10000000000CB +:0470C20000000000CA +:0470C30000000000C9 +:0470C40000000000C8 +:0470C50000000000C7 +:0470C60000000000C6 +:0470C70000000000C5 +:0470C80000000000C4 +:0470C90000000000C3 +:0470CA0000000000C2 +:0470CB0000000000C1 +:0470CC0000000000C0 +:0470CD0000000000BF +:0470CE0000000000BE +:0470CF0000000000BD +:0470D00000000000BC +:0470D10000000000BB +:0470D20000000000BA +:0470D30000000000B9 +:0470D40000000000B8 +:0470D50000000000B7 +:0470D60000000000B6 +:0470D70000000000B5 +:0470D80000000000B4 +:0470D90000000000B3 +:0470DA0000000000B2 +:0470DB0000000000B1 +:0470DC0000000000B0 +:0470DD0000000000AF +:0470DE0000000000AE +:0470DF0000000000AD +:0470E00000000000AC +:0470E10000000000AB +:0470E20000000000AA +:0470E30000000000A9 +:0470E40000000000A8 +:0470E50000000000A7 +:0470E60000000000A6 +:0470E70000000000A5 +:0470E80000000000A4 +:0470E90000000000A3 +:0470EA0000000000A2 +:0470EB0000000000A1 +:0470EC0000000000A0 +:0470ED00000000009F +:0470EE00000000009E +:0470EF00000000009D +:0470F000000000009C +:0470F100000000009B +:0470F200000000009A +:0470F3000000000099 +:0470F4000000000098 +:0470F5000000000097 +:0470F6000000000096 +:0470F7000000000095 +:0470F8000000000094 +:0470F9000000000093 +:0470FA000000000092 +:0470FB000000000091 +:0470FC000000000090 +:0470FD00000000008F +:0470FE00000000008E +:0470FF00000000008D +:04710000000000008B +:04710100000000008A +:047102000000000089 +:047103000000000088 +:047104000000000087 +:047105000000000086 +:047106000000000085 +:047107000000000084 +:047108000000000083 +:047109000000000082 +:04710A000000000081 +:04710B000000000080 +:04710C00000000007F +:04710D00000000007E +:04710E00000000007D +:04710F00000000007C +:04711000000000007B +:04711100000000007A +:047112000000000079 +:047113000000000078 +:047114000000000077 +:047115000000000076 +:047116000000000075 +:047117000000000074 +:047118000000000073 +:047119000000000072 +:04711A000000000071 +:04711B000000000070 +:04711C00000000006F +:04711D00000000006E +:04711E00000000006D +:04711F00000000006C +:04712000000000006B +:04712100000000006A +:047122000000000069 +:047123000000000068 +:047124000000000067 +:047125000000000066 +:047126000000000065 +:047127000000000064 +:047128000000000063 +:047129000000000062 +:04712A000000000061 +:04712B000000000060 +:04712C00000000005F +:04712D00000000005E +:04712E00000000005D +:04712F00000000005C +:04713000000000005B +:04713100000000005A +:047132000000000059 +:047133000000000058 +:047134000000000057 +:047135000000000056 +:047136000000000055 +:047137000000000054 +:047138000000000053 +:047139000000000052 +:04713A000000000051 +:04713B000000000050 +:04713C00000000004F +:04713D00000000004E +:04713E00000000004D +:04713F00000000004C +:04714000000000004B +:04714100000000004A +:047142000000000049 +:047143000000000048 +:047144000000000047 +:047145000000000046 +:047146000000000045 +:047147000000000044 +:047148000000000043 +:047149000000000042 +:04714A000000000041 +:04714B000000000040 +:04714C00000000003F +:04714D00000000003E +:04714E00000000003D +:04714F00000000003C +:04715000000000003B +:04715100000000003A +:047152000000000039 +:047153000000000038 +:047154000000000037 +:047155000000000036 +:047156000000000035 +:047157000000000034 +:047158000000000033 +:047159000000000032 +:04715A000000000031 +:04715B000000000030 +:04715C00000000002F +:04715D00000000002E +:04715E00000000002D +:04715F00000000002C +:04716000000000002B +:04716100000000002A +:047162000000000029 +:047163000000000028 +:047164000000000027 +:047165000000000026 +:047166000000000025 +:047167000000000024 +:047168000000000023 +:047169000000000022 +:04716A000000000021 +:04716B000000000020 +:04716C00000000001F +:04716D00000000001E +:04716E00000000001D +:04716F00000000001C +:04717000000000001B +:04717100000000001A +:047172000000000019 +:047173000000000018 +:047174000000000017 +:047175000000000016 +:047176000000000015 +:047177000000000014 +:047178000000000013 +:047179000000000012 +:04717A000000000011 +:04717B000000000010 +:04717C00000000000F +:04717D00000000000E +:04717E00000000000D +:04717F00000000000C +:04718000000000000B +:04718100000000000A +:047182000000000009 +:047183000000000008 +:047184000000000007 +:047185000000000006 +:047186000000000005 +:047187000000000004 +:047188000000000003 +:047189000000000002 +:04718A000000000001 +:04718B000000000000 +:04718C0000000000FF +:04718D0000000000FE +:04718E0000000000FD +:04718F0000000000FC +:0471900000000000FB +:0471910000000000FA +:0471920000000000F9 +:0471930000000000F8 +:0471940000000000F7 +:0471950000000000F6 +:0471960000000000F5 +:0471970000000000F4 +:0471980000000000F3 +:0471990000000000F2 +:04719A0000000000F1 +:04719B0000000000F0 +:04719C0000000000EF +:04719D0000000000EE +:04719E0000000000ED +:04719F0000000000EC +:0471A00000000000EB +:0471A10000000000EA +:0471A20000000000E9 +:0471A30000000000E8 +:0471A40000000000E7 +:0471A50000000000E6 +:0471A60000000000E5 +:0471A70000000000E4 +:0471A80000000000E3 +:0471A90000000000E2 +:0471AA0000000000E1 +:0471AB0000000000E0 +:0471AC0000000000DF +:0471AD0000000000DE +:0471AE0000000000DD +:0471AF0000000000DC +:0471B00000000000DB +:0471B10000000000DA +:0471B20000000000D9 +:0471B30000000000D8 +:0471B40000000000D7 +:0471B50000000000D6 +:0471B60000000000D5 +:0471B70000000000D4 +:0471B80000000000D3 +:0471B90000000000D2 +:0471BA0000000000D1 +:0471BB0000000000D0 +:0471BC0000000000CF +:0471BD0000000000CE +:0471BE0000000000CD +:0471BF0000000000CC +:0471C00000000000CB +:0471C10000000000CA +:0471C20000000000C9 +:0471C30000000000C8 +:0471C40000000000C7 +:0471C50000000000C6 +:0471C60000000000C5 +:0471C70000000000C4 +:0471C80000000000C3 +:0471C90000000000C2 +:0471CA0000000000C1 +:0471CB0000000000C0 +:0471CC0000000000BF +:0471CD0000000000BE +:0471CE0000000000BD +:0471CF0000000000BC +:0471D00000000000BB +:0471D10000000000BA +:0471D20000000000B9 +:0471D30000000000B8 +:0471D40000000000B7 +:0471D50000000000B6 +:0471D60000000000B5 +:0471D70000000000B4 +:0471D80000000000B3 +:0471D90000000000B2 +:0471DA0000000000B1 +:0471DB0000000000B0 +:0471DC0000000000AF +:0471DD0000000000AE +:0471DE0000000000AD +:0471DF0000000000AC +:0471E00000000000AB +:0471E10000000000AA +:0471E20000000000A9 +:0471E30000000000A8 +:0471E40000000000A7 +:0471E50000000000A6 +:0471E60000000000A5 +:0471E70000000000A4 +:0471E80000000000A3 +:0471E90000000000A2 +:0471EA0000000000A1 +:0471EB0000000000A0 +:0471EC00000000009F +:0471ED00000000009E +:0471EE00000000009D +:0471EF00000000009C +:0471F000000000009B +:0471F100000000009A +:0471F2000000000099 +:0471F3000000000098 +:0471F4000000000097 +:0471F5000000000096 +:0471F6000000000095 +:0471F7000000000094 +:0471F8000000000093 +:0471F9000000000092 +:0471FA000000000091 +:0471FB000000000090 +:0471FC00000000008F +:0471FD00000000008E +:0471FE00000000008D +:0471FF00000000008C +:04720000000000008A +:047201000000000089 +:047202000000000088 +:047203000000000087 +:047204000000000086 +:047205000000000085 +:047206000000000084 +:047207000000000083 +:047208000000000082 +:047209000000000081 +:04720A000000000080 +:04720B00000000007F +:04720C00000000007E +:04720D00000000007D +:04720E00000000007C +:04720F00000000007B +:04721000000000007A +:047211000000000079 +:047212000000000078 +:047213000000000077 +:047214000000000076 +:047215000000000075 +:047216000000000074 +:047217000000000073 +:047218000000000072 +:047219000000000071 +:04721A000000000070 +:04721B00000000006F +:04721C00000000006E +:04721D00000000006D +:04721E00000000006C +:04721F00000000006B +:04722000000000006A +:047221000000000069 +:047222000000000068 +:047223000000000067 +:047224000000000066 +:047225000000000065 +:047226000000000064 +:047227000000000063 +:047228000000000062 +:047229000000000061 +:04722A000000000060 +:04722B00000000005F +:04722C00000000005E +:04722D00000000005D +:04722E00000000005C +:04722F00000000005B +:04723000000000005A +:047231000000000059 +:047232000000000058 +:047233000000000057 +:047234000000000056 +:047235000000000055 +:047236000000000054 +:047237000000000053 +:047238000000000052 +:047239000000000051 +:04723A000000000050 +:04723B00000000004F +:04723C00000000004E +:04723D00000000004D +:04723E00000000004C +:04723F00000000004B +:04724000000000004A +:047241000000000049 +:047242000000000048 +:047243000000000047 +:047244000000000046 +:047245000000000045 +:047246000000000044 +:047247000000000043 +:047248000000000042 +:047249000000000041 +:04724A000000000040 +:04724B00000000003F +:04724C00000000003E +:04724D00000000003D +:04724E00000000003C +:04724F00000000003B +:04725000000000003A +:047251000000000039 +:047252000000000038 +:047253000000000037 +:047254000000000036 +:047255000000000035 +:047256000000000034 +:047257000000000033 +:047258000000000032 +:047259000000000031 +:04725A000000000030 +:04725B00000000002F +:04725C00000000002E +:04725D00000000002D +:04725E00000000002C +:04725F00000000002B +:04726000000000002A +:047261000000000029 +:047262000000000028 +:047263000000000027 +:047264000000000026 +:047265000000000025 +:047266000000000024 +:047267000000000023 +:047268000000000022 +:047269000000000021 +:04726A000000000020 +:04726B00000000001F +:04726C00000000001E +:04726D00000000001D +:04726E00000000001C +:04726F00000000001B +:04727000000000001A +:047271000000000019 +:047272000000000018 +:047273000000000017 +:047274000000000016 +:047275000000000015 +:047276000000000014 +:047277000000000013 +:047278000000000012 +:047279000000000011 +:04727A000000000010 +:04727B00000000000F +:04727C00000000000E +:04727D00000000000D +:04727E00000000000C +:04727F00000000000B +:04728000000000000A +:047281000000000009 +:047282000000000008 +:047283000000000007 +:047284000000000006 +:047285000000000005 +:047286000000000004 +:047287000000000003 +:047288000000000002 +:047289000000000001 +:04728A000000000000 +:04728B0000000000FF +:04728C0000000000FE +:04728D0000000000FD +:04728E0000000000FC +:04728F0000000000FB +:0472900000000000FA +:0472910000000000F9 +:0472920000000000F8 +:0472930000000000F7 +:0472940000000000F6 +:0472950000000000F5 +:0472960000000000F4 +:0472970000000000F3 +:0472980000000000F2 +:0472990000000000F1 +:04729A0000000000F0 +:04729B0000000000EF +:04729C0000000000EE +:04729D0000000000ED +:04729E0000000000EC +:04729F0000000000EB +:0472A00000000000EA +:0472A10000000000E9 +:0472A20000000000E8 +:0472A30000000000E7 +:0472A40000000000E6 +:0472A50000000000E5 +:0472A60000000000E4 +:0472A70000000000E3 +:0472A80000000000E2 +:0472A90000000000E1 +:0472AA0000000000E0 +:0472AB0000000000DF +:0472AC0000000000DE +:0472AD0000000000DD +:0472AE0000000000DC +:0472AF0000000000DB +:0472B00000000000DA +:0472B10000000000D9 +:0472B20000000000D8 +:0472B30000000000D7 +:0472B40000000000D6 +:0472B50000000000D5 +:0472B60000000000D4 +:0472B70000000000D3 +:0472B80000000000D2 +:0472B90000000000D1 +:0472BA0000000000D0 +:0472BB0000000000CF +:0472BC0000000000CE +:0472BD0000000000CD +:0472BE0000000000CC +:0472BF0000000000CB +:0472C00000000000CA +:0472C10000000000C9 +:0472C20000000000C8 +:0472C30000000000C7 +:0472C40000000000C6 +:0472C50000000000C5 +:0472C60000000000C4 +:0472C70000000000C3 +:0472C80000000000C2 +:0472C90000000000C1 +:0472CA0000000000C0 +:0472CB0000000000BF +:0472CC0000000000BE +:0472CD0000000000BD +:0472CE0000000000BC +:0472CF0000000000BB +:0472D00000000000BA +:0472D10000000000B9 +:0472D20000000000B8 +:0472D30000000000B7 +:0472D40000000000B6 +:0472D50000000000B5 +:0472D60000000000B4 +:0472D70000000000B3 +:0472D80000000000B2 +:0472D90000000000B1 +:0472DA0000000000B0 +:0472DB0000000000AF +:0472DC0000000000AE +:0472DD0000000000AD +:0472DE0000000000AC +:0472DF0000000000AB +:0472E00000000000AA +:0472E10000000000A9 +:0472E20000000000A8 +:0472E30000000000A7 +:0472E40000000000A6 +:0472E50000000000A5 +:0472E60000000000A4 +:0472E70000000000A3 +:0472E80000000000A2 +:0472E90000000000A1 +:0472EA0000000000A0 +:0472EB00000000009F +:0472EC00000000009E +:0472ED00000000009D +:0472EE00000000009C +:0472EF00000000009B +:0472F000000000009A +:0472F1000000000099 +:0472F2000000000098 +:0472F3000000000097 +:0472F4000000000096 +:0472F5000000000095 +:0472F6000000000094 +:0472F7000000000093 +:0472F8000000000092 +:0472F9000000000091 +:0472FA000000000090 +:0472FB00000000008F +:0472FC00000000008E +:0472FD00000000008D +:0472FE00000000008C +:0472FF00000000008B +:047300000000000089 +:047301000000000088 +:047302000000000087 +:047303000000000086 +:047304000000000085 +:047305000000000084 +:047306000000000083 +:047307000000000082 +:047308000000000081 +:047309000000000080 +:04730A00000000007F +:04730B00000000007E +:04730C00000000007D +:04730D00000000007C +:04730E00000000007B +:04730F00000000007A +:047310000000000079 +:047311000000000078 +:047312000000000077 +:047313000000000076 +:047314000000000075 +:047315000000000074 +:047316000000000073 +:047317000000000072 +:047318000000000071 +:047319000000000070 +:04731A00000000006F +:04731B00000000006E +:04731C00000000006D +:04731D00000000006C +:04731E00000000006B +:04731F00000000006A +:047320000000000069 +:047321000000000068 +:047322000000000067 +:047323000000000066 +:047324000000000065 +:047325000000000064 +:047326000000000063 +:047327000000000062 +:047328000000000061 +:047329000000000060 +:04732A00000000005F +:04732B00000000005E +:04732C00000000005D +:04732D00000000005C +:04732E00000000005B +:04732F00000000005A +:047330000000000059 +:047331000000000058 +:047332000000000057 +:047333000000000056 +:047334000000000055 +:047335000000000054 +:047336000000000053 +:047337000000000052 +:047338000000000051 +:047339000000000050 +:04733A00000000004F +:04733B00000000004E +:04733C00000000004D +:04733D00000000004C +:04733E00000000004B +:04733F00000000004A +:047340000000000049 +:047341000000000048 +:047342000000000047 +:047343000000000046 +:047344000000000045 +:047345000000000044 +:047346000000000043 +:047347000000000042 +:047348000000000041 +:047349000000000040 +:04734A00000000003F +:04734B00000000003E +:04734C00000000003D +:04734D00000000003C +:04734E00000000003B +:04734F00000000003A +:047350000000000039 +:047351000000000038 +:047352000000000037 +:047353000000000036 +:047354000000000035 +:047355000000000034 +:047356000000000033 +:047357000000000032 +:047358000000000031 +:047359000000000030 +:04735A00000000002F +:04735B00000000002E +:04735C00000000002D +:04735D00000000002C +:04735E00000000002B +:04735F00000000002A +:047360000000000029 +:047361000000000028 +:047362000000000027 +:047363000000000026 +:047364000000000025 +:047365000000000024 +:047366000000000023 +:047367000000000022 +:047368000000000021 +:047369000000000020 +:04736A00000000001F +:04736B00000000001E +:04736C00000000001D +:04736D00000000001C +:04736E00000000001B +:04736F00000000001A +:047370000000000019 +:047371000000000018 +:047372000000000017 +:047373000000000016 +:047374000000000015 +:047375000000000014 +:047376000000000013 +:047377000000000012 +:047378000000000011 +:047379000000000010 +:04737A00000000000F +:04737B00000000000E +:04737C00000000000D +:04737D00000000000C +:04737E00000000000B +:04737F00000000000A +:047380000000000009 +:047381000000000008 +:047382000000000007 +:047383000000000006 +:047384000000000005 +:047385000000000004 +:047386000000000003 +:047387000000000002 +:047388000000000001 +:047389000000000000 +:04738A0000000000FF +:04738B0000000000FE +:04738C0000000000FD +:04738D0000000000FC +:04738E0000000000FB +:04738F0000000000FA +:0473900000000000F9 +:0473910000000000F8 +:0473920000000000F7 +:0473930000000000F6 +:0473940000000000F5 +:0473950000000000F4 +:0473960000000000F3 +:0473970000000000F2 +:0473980000000000F1 +:0473990000000000F0 +:04739A0000000000EF +:04739B0000000000EE +:04739C0000000000ED +:04739D0000000000EC +:04739E0000000000EB +:04739F0000000000EA +:0473A00000000000E9 +:0473A10000000000E8 +:0473A20000000000E7 +:0473A30000000000E6 +:0473A40000000000E5 +:0473A50000000000E4 +:0473A60000000000E3 +:0473A70000000000E2 +:0473A80000000000E1 +:0473A90000000000E0 +:0473AA0000000000DF +:0473AB0000000000DE +:0473AC0000000000DD +:0473AD0000000000DC +:0473AE0000000000DB +:0473AF0000000000DA +:0473B00000000000D9 +:0473B10000000000D8 +:0473B20000000000D7 +:0473B30000000000D6 +:0473B40000000000D5 +:0473B50000000000D4 +:0473B60000000000D3 +:0473B70000000000D2 +:0473B80000000000D1 +:0473B90000000000D0 +:0473BA0000000000CF +:0473BB0000000000CE +:0473BC0000000000CD +:0473BD0000000000CC +:0473BE0000000000CB +:0473BF0000000000CA +:0473C00000000000C9 +:0473C10000000000C8 +:0473C20000000000C7 +:0473C30000000000C6 +:0473C40000000000C5 +:0473C50000000000C4 +:0473C60000000000C3 +:0473C70000000000C2 +:0473C80000000000C1 +:0473C90000000000C0 +:0473CA0000000000BF +:0473CB0000000000BE +:0473CC0000000000BD +:0473CD0000000000BC +:0473CE0000000000BB +:0473CF0000000000BA +:0473D00000000000B9 +:0473D10000000000B8 +:0473D20000000000B7 +:0473D30000000000B6 +:0473D40000000000B5 +:0473D50000000000B4 +:0473D60000000000B3 +:0473D70000000000B2 +:0473D80000000000B1 +:0473D90000000000B0 +:0473DA0000000000AF +:0473DB0000000000AE +:0473DC0000000000AD +:0473DD0000000000AC +:0473DE0000000000AB +:0473DF0000000000AA +:0473E00000000000A9 +:0473E10000000000A8 +:0473E20000000000A7 +:0473E30000000000A6 +:0473E40000000000A5 +:0473E50000000000A4 +:0473E60000000000A3 +:0473E70000000000A2 +:0473E80000000000A1 +:0473E90000000000A0 +:0473EA00000000009F +:0473EB00000000009E +:0473EC00000000009D +:0473ED00000000009C +:0473EE00000000009B +:0473EF00000000009A +:0473F0000000000099 +:0473F1000000000098 +:0473F2000000000097 +:0473F3000000000096 +:0473F4000000000095 +:0473F5000000000094 +:0473F6000000000093 +:0473F7000000000092 +:0473F8000000000091 +:0473F9000000000090 +:0473FA00000000008F +:0473FB00000000008E +:0473FC00000000008D +:0473FD00000000008C +:0473FE00000000008B +:0473FF00000000008A +:047400000000000088 +:047401000000000087 +:047402000000000086 +:047403000000000085 +:047404000000000084 +:047405000000000083 +:047406000000000082 +:047407000000000081 +:047408000000000080 +:04740900000000007F +:04740A00000000007E +:04740B00000000007D +:04740C00000000007C +:04740D00000000007B +:04740E00000000007A +:04740F000000000079 +:047410000000000078 +:047411000000000077 +:047412000000000076 +:047413000000000075 +:047414000000000074 +:047415000000000073 +:047416000000000072 +:047417000000000071 +:047418000000000070 +:04741900000000006F +:04741A00000000006E +:04741B00000000006D +:04741C00000000006C +:04741D00000000006B +:04741E00000000006A +:04741F000000000069 +:047420000000000068 +:047421000000000067 +:047422000000000066 +:047423000000000065 +:047424000000000064 +:047425000000000063 +:047426000000000062 +:047427000000000061 +:047428000000000060 +:04742900000000005F +:04742A00000000005E +:04742B00000000005D +:04742C00000000005C +:04742D00000000005B +:04742E00000000005A +:04742F000000000059 +:047430000000000058 +:047431000000000057 +:047432000000000056 +:047433000000000055 +:047434000000000054 +:047435000000000053 +:047436000000000052 +:047437000000000051 +:047438000000000050 +:04743900000000004F +:04743A00000000004E +:04743B00000000004D +:04743C00000000004C +:04743D00000000004B +:04743E00000000004A +:04743F000000000049 +:047440000000000048 +:047441000000000047 +:047442000000000046 +:047443000000000045 +:047444000000000044 +:047445000000000043 +:047446000000000042 +:047447000000000041 +:047448000000000040 +:04744900000000003F +:04744A00000000003E +:04744B00000000003D +:04744C00000000003C +:04744D00000000003B +:04744E00000000003A +:04744F000000000039 +:047450000000000038 +:047451000000000037 +:047452000000000036 +:047453000000000035 +:047454000000000034 +:047455000000000033 +:047456000000000032 +:047457000000000031 +:047458000000000030 +:04745900000000002F +:04745A00000000002E +:04745B00000000002D +:04745C00000000002C +:04745D00000000002B +:04745E00000000002A +:04745F000000000029 +:047460000000000028 +:047461000000000027 +:047462000000000026 +:047463000000000025 +:047464000000000024 +:047465000000000023 +:047466000000000022 +:047467000000000021 +:047468000000000020 +:04746900000000001F +:04746A00000000001E +:04746B00000000001D +:04746C00000000001C +:04746D00000000001B +:04746E00000000001A +:04746F000000000019 +:047470000000000018 +:047471000000000017 +:047472000000000016 +:047473000000000015 +:047474000000000014 +:047475000000000013 +:047476000000000012 +:047477000000000011 +:047478000000000010 +:04747900000000000F +:04747A00000000000E +:04747B00000000000D +:04747C00000000000C +:04747D00000000000B +:04747E00000000000A +:04747F000000000009 +:047480000000000008 +:047481000000000007 +:047482000000000006 +:047483000000000005 +:047484000000000004 +:047485000000000003 +:047486000000000002 +:047487000000000001 +:047488000000000000 +:0474890000000000FF +:04748A0000000000FE +:04748B0000000000FD +:04748C0000000000FC +:04748D0000000000FB +:04748E0000000000FA +:04748F0000000000F9 +:0474900000000000F8 +:0474910000000000F7 +:0474920000000000F6 +:0474930000000000F5 +:0474940000000000F4 +:0474950000000000F3 +:0474960000000000F2 +:0474970000000000F1 +:0474980000000000F0 +:0474990000000000EF +:04749A0000000000EE +:04749B0000000000ED +:04749C0000000000EC +:04749D0000000000EB +:04749E0000000000EA +:04749F0000000000E9 +:0474A00000000000E8 +:0474A10000000000E7 +:0474A20000000000E6 +:0474A30000000000E5 +:0474A40000000000E4 +:0474A50000000000E3 +:0474A60000000000E2 +:0474A70000000000E1 +:0474A80000000000E0 +:0474A90000000000DF +:0474AA0000000000DE +:0474AB0000000000DD +:0474AC0000000000DC +:0474AD0000000000DB +:0474AE0000000000DA +:0474AF0000000000D9 +:0474B00000000000D8 +:0474B10000000000D7 +:0474B20000000000D6 +:0474B30000000000D5 +:0474B40000000000D4 +:0474B50000000000D3 +:0474B60000000000D2 +:0474B70000000000D1 +:0474B80000000000D0 +:0474B90000000000CF +:0474BA0000000000CE +:0474BB0000000000CD +:0474BC0000000000CC +:0474BD0000000000CB +:0474BE0000000000CA +:0474BF0000000000C9 +:0474C00000000000C8 +:0474C10000000000C7 +:0474C20000000000C6 +:0474C30000000000C5 +:0474C40000000000C4 +:0474C50000000000C3 +:0474C60000000000C2 +:0474C70000000000C1 +:0474C80000000000C0 +:0474C90000000000BF +:0474CA0000000000BE +:0474CB0000000000BD +:0474CC0000000000BC +:0474CD0000000000BB +:0474CE0000000000BA +:0474CF0000000000B9 +:0474D00000000000B8 +:0474D10000000000B7 +:0474D20000000000B6 +:0474D30000000000B5 +:0474D40000000000B4 +:0474D50000000000B3 +:0474D60000000000B2 +:0474D70000000000B1 +:0474D80000000000B0 +:0474D90000000000AF +:0474DA0000000000AE +:0474DB0000000000AD +:0474DC0000000000AC +:0474DD0000000000AB +:0474DE0000000000AA +:0474DF0000000000A9 +:0474E00000000000A8 +:0474E10000000000A7 +:0474E20000000000A6 +:0474E30000000000A5 +:0474E40000000000A4 +:0474E50000000000A3 +:0474E60000000000A2 +:0474E70000000000A1 +:0474E80000000000A0 +:0474E900000000009F +:0474EA00000000009E +:0474EB00000000009D +:0474EC00000000009C +:0474ED00000000009B +:0474EE00000000009A +:0474EF000000000099 +:0474F0000000000098 +:0474F1000000000097 +:0474F2000000000096 +:0474F3000000000095 +:0474F4000000000094 +:0474F5000000000093 +:0474F6000000000092 +:0474F7000000000091 +:0474F8000000000090 +:0474F900000000008F +:0474FA00000000008E +:0474FB00000000008D +:0474FC00000000008C +:0474FD00000000008B +:0474FE00000000008A +:0474FF000000000089 +:047500000000000087 +:047501000000000086 +:047502000000000085 +:047503000000000084 +:047504000000000083 +:047505000000000082 +:047506000000000081 +:047507000000000080 +:04750800000000007F +:04750900000000007E +:04750A00000000007D +:04750B00000000007C +:04750C00000000007B +:04750D00000000007A +:04750E000000000079 +:04750F000000000078 +:047510000000000077 +:047511000000000076 +:047512000000000075 +:047513000000000074 +:047514000000000073 +:047515000000000072 +:047516000000000071 +:047517000000000070 +:04751800000000006F +:04751900000000006E +:04751A00000000006D +:04751B00000000006C +:04751C00000000006B +:04751D00000000006A +:04751E000000000069 +:04751F000000000068 +:047520000000000067 +:047521000000000066 +:047522000000000065 +:047523000000000064 +:047524000000000063 +:047525000000000062 +:047526000000000061 +:047527000000000060 +:04752800000000005F +:04752900000000005E +:04752A00000000005D +:04752B00000000005C +:04752C00000000005B +:04752D00000000005A +:04752E000000000059 +:04752F000000000058 +:047530000000000057 +:047531000000000056 +:047532000000000055 +:047533000000000054 +:047534000000000053 +:047535000000000052 +:047536000000000051 +:047537000000000050 +:04753800000000004F +:04753900000000004E +:04753A00000000004D +:04753B00000000004C +:04753C00000000004B +:04753D00000000004A +:04753E000000000049 +:04753F000000000048 +:047540000000000047 +:047541000000000046 +:047542000000000045 +:047543000000000044 +:047544000000000043 +:047545000000000042 +:047546000000000041 +:047547000000000040 +:04754800000000003F +:04754900000000003E +:04754A00000000003D +:04754B00000000003C +:04754C00000000003B +:04754D00000000003A +:04754E000000000039 +:04754F000000000038 +:047550000000000037 +:047551000000000036 +:047552000000000035 +:047553000000000034 +:047554000000000033 +:047555000000000032 +:047556000000000031 +:047557000000000030 +:04755800000000002F +:04755900000000002E +:04755A00000000002D +:04755B00000000002C +:04755C00000000002B +:04755D00000000002A +:04755E000000000029 +:04755F000000000028 +:047560000000000027 +:047561000000000026 +:047562000000000025 +:047563000000000024 +:047564000000000023 +:047565000000000022 +:047566000000000021 +:047567000000000020 +:04756800000000001F +:04756900000000001E +:04756A00000000001D +:04756B00000000001C +:04756C00000000001B +:04756D00000000001A +:04756E000000000019 +:04756F000000000018 +:047570000000000017 +:047571000000000016 +:047572000000000015 +:047573000000000014 +:047574000000000013 +:047575000000000012 +:047576000000000011 +:047577000000000010 +:04757800000000000F +:04757900000000000E +:04757A00000000000D +:04757B00000000000C +:04757C00000000000B +:04757D00000000000A +:04757E000000000009 +:04757F000000000008 +:047580000000000007 +:047581000000000006 +:047582000000000005 +:047583000000000004 +:047584000000000003 +:047585000000000002 +:047586000000000001 +:047587000000000000 +:0475880000000000FF +:0475890000000000FE +:04758A0000000000FD +:04758B0000000000FC +:04758C0000000000FB +:04758D0000000000FA +:04758E0000000000F9 +:04758F0000000000F8 +:0475900000000000F7 +:0475910000000000F6 +:0475920000000000F5 +:0475930000000000F4 +:0475940000000000F3 +:0475950000000000F2 +:0475960000000000F1 +:0475970000000000F0 +:0475980000000000EF +:0475990000000000EE +:04759A0000000000ED +:04759B0000000000EC +:04759C0000000000EB +:04759D0000000000EA +:04759E0000000000E9 +:04759F0000000000E8 +:0475A00000000000E7 +:0475A10000000000E6 +:0475A20000000000E5 +:0475A30000000000E4 +:0475A40000000000E3 +:0475A50000000000E2 +:0475A60000000000E1 +:0475A70000000000E0 +:0475A80000000000DF +:0475A90000000000DE +:0475AA0000000000DD +:0475AB0000000000DC +:0475AC0000000000DB +:0475AD0000000000DA +:0475AE0000000000D9 +:0475AF0000000000D8 +:0475B00000000000D7 +:0475B10000000000D6 +:0475B20000000000D5 +:0475B30000000000D4 +:0475B40000000000D3 +:0475B50000000000D2 +:0475B60000000000D1 +:0475B70000000000D0 +:0475B80000000000CF +:0475B90000000000CE +:0475BA0000000000CD +:0475BB0000000000CC +:0475BC0000000000CB +:0475BD0000000000CA +:0475BE0000000000C9 +:0475BF0000000000C8 +:0475C00000000000C7 +:0475C10000000000C6 +:0475C20000000000C5 +:0475C30000000000C4 +:0475C40000000000C3 +:0475C50000000000C2 +:0475C60000000000C1 +:0475C70000000000C0 +:0475C80000000000BF +:0475C90000000000BE +:0475CA0000000000BD +:0475CB0000000000BC +:0475CC0000000000BB +:0475CD0000000000BA +:0475CE0000000000B9 +:0475CF0000000000B8 +:0475D00000000000B7 +:0475D10000000000B6 +:0475D20000000000B5 +:0475D30000000000B4 +:0475D40000000000B3 +:0475D50000000000B2 +:0475D60000000000B1 +:0475D70000000000B0 +:0475D80000000000AF +:0475D90000000000AE +:0475DA0000000000AD +:0475DB0000000000AC +:0475DC0000000000AB +:0475DD0000000000AA +:0475DE0000000000A9 +:0475DF0000000000A8 +:0475E00000000000A7 +:0475E10000000000A6 +:0475E20000000000A5 +:0475E30000000000A4 +:0475E40000000000A3 +:0475E50000000000A2 +:0475E60000000000A1 +:0475E70000000000A0 +:0475E800000000009F +:0475E900000000009E +:0475EA00000000009D +:0475EB00000000009C +:0475EC00000000009B +:0475ED00000000009A +:0475EE000000000099 +:0475EF000000000098 +:0475F0000000000097 +:0475F1000000000096 +:0475F2000000000095 +:0475F3000000000094 +:0475F4000000000093 +:0475F5000000000092 +:0475F6000000000091 +:0475F7000000000090 +:0475F800000000008F +:0475F900000000008E +:0475FA00000000008D +:0475FB00000000008C +:0475FC00000000008B +:0475FD00000000008A +:0475FE000000000089 +:0475FF000000000088 +:047600000000000086 +:047601000000000085 +:047602000000000084 +:047603000000000083 +:047604000000000082 +:047605000000000081 +:047606000000000080 +:04760700000000007F +:04760800000000007E +:04760900000000007D +:04760A00000000007C +:04760B00000000007B +:04760C00000000007A +:04760D000000000079 +:04760E000000000078 +:04760F000000000077 +:047610000000000076 +:047611000000000075 +:047612000000000074 +:047613000000000073 +:047614000000000072 +:047615000000000071 +:047616000000000070 +:04761700000000006F +:04761800000000006E +:04761900000000006D +:04761A00000000006C +:04761B00000000006B +:04761C00000000006A +:04761D000000000069 +:04761E000000000068 +:04761F000000000067 +:047620000000000066 +:047621000000000065 +:047622000000000064 +:047623000000000063 +:047624000000000062 +:047625000000000061 +:047626000000000060 +:04762700000000005F +:04762800000000005E +:04762900000000005D +:04762A00000000005C +:04762B00000000005B +:04762C00000000005A +:04762D000000000059 +:04762E000000000058 +:04762F000000000057 +:047630000000000056 +:047631000000000055 +:047632000000000054 +:047633000000000053 +:047634000000000052 +:047635000000000051 +:047636000000000050 +:04763700000000004F +:04763800000000004E +:04763900000000004D +:04763A00000000004C +:04763B00000000004B +:04763C00000000004A +:04763D000000000049 +:04763E000000000048 +:04763F000000000047 +:047640000000000046 +:047641000000000045 +:047642000000000044 +:047643000000000043 +:047644000000000042 +:047645000000000041 +:047646000000000040 +:04764700000000003F +:04764800000000003E +:04764900000000003D +:04764A00000000003C +:04764B00000000003B +:04764C00000000003A +:04764D000000000039 +:04764E000000000038 +:04764F000000000037 +:047650000000000036 +:047651000000000035 +:047652000000000034 +:047653000000000033 +:047654000000000032 +:047655000000000031 +:047656000000000030 +:04765700000000002F +:04765800000000002E +:04765900000000002D +:04765A00000000002C +:04765B00000000002B +:04765C00000000002A +:04765D000000000029 +:04765E000000000028 +:04765F000000000027 +:047660000000000026 +:047661000000000025 +:047662000000000024 +:047663000000000023 +:047664000000000022 +:047665000000000021 +:047666000000000020 +:04766700000000001F +:04766800000000001E +:04766900000000001D +:04766A00000000001C +:04766B00000000001B +:04766C00000000001A +:04766D000000000019 +:04766E000000000018 +:04766F000000000017 +:047670000000000016 +:047671000000000015 +:047672000000000014 +:047673000000000013 +:047674000000000012 +:047675000000000011 +:047676000000000010 +:04767700000000000F +:04767800000000000E +:04767900000000000D +:04767A00000000000C +:04767B00000000000B +:04767C00000000000A +:04767D000000000009 +:04767E000000000008 +:04767F000000000007 +:047680000000000006 +:047681000000000005 +:047682000000000004 +:047683000000000003 +:047684000000000002 +:047685000000000001 +:047686000000000000 +:0476870000000000FF +:0476880000000000FE +:0476890000000000FD +:04768A0000000000FC +:04768B0000000000FB +:04768C0000000000FA +:04768D0000000000F9 +:04768E0000000000F8 +:04768F0000000000F7 +:0476900000000000F6 +:0476910000000000F5 +:0476920000000000F4 +:0476930000000000F3 +:0476940000000000F2 +:0476950000000000F1 +:0476960000000000F0 +:0476970000000000EF +:0476980000000000EE +:0476990000000000ED +:04769A0000000000EC +:04769B0000000000EB +:04769C0000000000EA +:04769D0000000000E9 +:04769E0000000000E8 +:04769F0000000000E7 +:0476A00000000000E6 +:0476A10000000000E5 +:0476A20000000000E4 +:0476A30000000000E3 +:0476A40000000000E2 +:0476A50000000000E1 +:0476A60000000000E0 +:0476A70000000000DF +:0476A80000000000DE +:0476A90000000000DD +:0476AA0000000000DC +:0476AB0000000000DB +:0476AC0000000000DA +:0476AD0000000000D9 +:0476AE0000000000D8 +:0476AF0000000000D7 +:0476B00000000000D6 +:0476B10000000000D5 +:0476B20000000000D4 +:0476B30000000000D3 +:0476B40000000000D2 +:0476B50000000000D1 +:0476B60000000000D0 +:0476B70000000000CF +:0476B80000000000CE +:0476B90000000000CD +:0476BA0000000000CC +:0476BB0000000000CB +:0476BC0000000000CA +:0476BD0000000000C9 +:0476BE0000000000C8 +:0476BF0000000000C7 +:0476C00000000000C6 +:0476C10000000000C5 +:0476C20000000000C4 +:0476C30000000000C3 +:0476C40000000000C2 +:0476C50000000000C1 +:0476C60000000000C0 +:0476C70000000000BF +:0476C80000000000BE +:0476C90000000000BD +:0476CA0000000000BC +:0476CB0000000000BB +:0476CC0000000000BA +:0476CD0000000000B9 +:0476CE0000000000B8 +:0476CF0000000000B7 +:0476D00000000000B6 +:0476D10000000000B5 +:0476D20000000000B4 +:0476D30000000000B3 +:0476D40000000000B2 +:0476D50000000000B1 +:0476D60000000000B0 +:0476D70000000000AF +:0476D80000000000AE +:0476D90000000000AD +:0476DA0000000000AC +:0476DB0000000000AB +:0476DC0000000000AA +:0476DD0000000000A9 +:0476DE0000000000A8 +:0476DF0000000000A7 +:0476E00000000000A6 +:0476E10000000000A5 +:0476E20000000000A4 +:0476E30000000000A3 +:0476E40000000000A2 +:0476E50000000000A1 +:0476E60000000000A0 +:0476E700000000009F +:0476E800000000009E +:0476E900000000009D +:0476EA00000000009C +:0476EB00000000009B +:0476EC00000000009A +:0476ED000000000099 +:0476EE000000000098 +:0476EF000000000097 +:0476F0000000000096 +:0476F1000000000095 +:0476F2000000000094 +:0476F3000000000093 +:0476F4000000000092 +:0476F5000000000091 +:0476F6000000000090 +:0476F700000000008F +:0476F800000000008E +:0476F900000000008D +:0476FA00000000008C +:0476FB00000000008B +:0476FC00000000008A +:0476FD000000000089 +:0476FE000000000088 +:0476FF000000000087 +:047700000000000085 +:047701000000000084 +:047702000000000083 +:047703000000000082 +:047704000000000081 +:047705000000000080 +:04770600000000007F +:04770700000000007E +:04770800000000007D +:04770900000000007C +:04770A00000000007B +:04770B00000000007A +:04770C000000000079 +:04770D000000000078 +:04770E000000000077 +:04770F000000000076 +:047710000000000075 +:047711000000000074 +:047712000000000073 +:047713000000000072 +:047714000000000071 +:047715000000000070 +:04771600000000006F +:04771700000000006E +:04771800000000006D +:04771900000000006C +:04771A00000000006B +:04771B00000000006A +:04771C000000000069 +:04771D000000000068 +:04771E000000000067 +:04771F000000000066 +:047720000000000065 +:047721000000000064 +:047722000000000063 +:047723000000000062 +:047724000000000061 +:047725000000000060 +:04772600000000005F +:04772700000000005E +:04772800000000005D +:04772900000000005C +:04772A00000000005B +:04772B00000000005A +:04772C000000000059 +:04772D000000000058 +:04772E000000000057 +:04772F000000000056 +:047730000000000055 +:047731000000000054 +:047732000000000053 +:047733000000000052 +:047734000000000051 +:047735000000000050 +:04773600000000004F +:04773700000000004E +:04773800000000004D +:04773900000000004C +:04773A00000000004B +:04773B00000000004A +:04773C000000000049 +:04773D000000000048 +:04773E000000000047 +:04773F000000000046 +:047740000000000045 +:047741000000000044 +:047742000000000043 +:047743000000000042 +:047744000000000041 +:047745000000000040 +:04774600000000003F +:04774700000000003E +:04774800000000003D +:04774900000000003C +:04774A00000000003B +:04774B00000000003A +:04774C000000000039 +:04774D000000000038 +:04774E000000000037 +:04774F000000000036 +:047750000000000035 +:047751000000000034 +:047752000000000033 +:047753000000000032 +:047754000000000031 +:047755000000000030 +:04775600000000002F +:04775700000000002E +:04775800000000002D +:04775900000000002C +:04775A00000000002B +:04775B00000000002A +:04775C000000000029 +:04775D000000000028 +:04775E000000000027 +:04775F000000000026 +:047760000000000025 +:047761000000000024 +:047762000000000023 +:047763000000000022 +:047764000000000021 +:047765000000000020 +:04776600000000001F +:04776700000000001E +:04776800000000001D +:04776900000000001C +:04776A00000000001B +:04776B00000000001A +:04776C000000000019 +:04776D000000000018 +:04776E000000000017 +:04776F000000000016 +:047770000000000015 +:047771000000000014 +:047772000000000013 +:047773000000000012 +:047774000000000011 +:047775000000000010 +:04777600000000000F +:04777700000000000E +:04777800000000000D +:04777900000000000C +:04777A00000000000B +:04777B00000000000A +:04777C000000000009 +:04777D000000000008 +:04777E000000000007 +:04777F000000000006 +:047780000000000005 +:047781000000000004 +:047782000000000003 +:047783000000000002 +:047784000000000001 +:047785000000000000 +:0477860000000000FF +:0477870000000000FE +:0477880000000000FD +:0477890000000000FC +:04778A0000000000FB +:04778B0000000000FA +:04778C0000000000F9 +:04778D0000000000F8 +:04778E0000000000F7 +:04778F0000000000F6 +:0477900000000000F5 +:0477910000000000F4 +:0477920000000000F3 +:0477930000000000F2 +:0477940000000000F1 +:0477950000000000F0 +:0477960000000000EF +:0477970000000000EE +:0477980000000000ED +:0477990000000000EC +:04779A0000000000EB +:04779B0000000000EA +:04779C0000000000E9 +:04779D0000000000E8 +:04779E0000000000E7 +:04779F0000000000E6 +:0477A00000000000E5 +:0477A10000000000E4 +:0477A20000000000E3 +:0477A30000000000E2 +:0477A40000000000E1 +:0477A50000000000E0 +:0477A60000000000DF +:0477A70000000000DE +:0477A80000000000DD +:0477A90000000000DC +:0477AA0000000000DB +:0477AB0000000000DA +:0477AC0000000000D9 +:0477AD0000000000D8 +:0477AE0000000000D7 +:0477AF0000000000D6 +:0477B00000000000D5 +:0477B10000000000D4 +:0477B20000000000D3 +:0477B30000000000D2 +:0477B40000000000D1 +:0477B50000000000D0 +:0477B60000000000CF +:0477B70000000000CE +:0477B80000000000CD +:0477B90000000000CC +:0477BA0000000000CB +:0477BB0000000000CA +:0477BC0000000000C9 +:0477BD0000000000C8 +:0477BE0000000000C7 +:0477BF0000000000C6 +:0477C00000000000C5 +:0477C10000000000C4 +:0477C20000000000C3 +:0477C30000000000C2 +:0477C40000000000C1 +:0477C50000000000C0 +:0477C60000000000BF +:0477C70000000000BE +:0477C80000000000BD +:0477C90000000000BC +:0477CA0000000000BB +:0477CB0000000000BA +:0477CC0000000000B9 +:0477CD0000000000B8 +:0477CE0000000000B7 +:0477CF0000000000B6 +:0477D00000000000B5 +:0477D10000000000B4 +:0477D20000000000B3 +:0477D30000000000B2 +:0477D40000000000B1 +:0477D50000000000B0 +:0477D60000000000AF +:0477D70000000000AE +:0477D80000000000AD +:0477D90000000000AC +:0477DA0000000000AB +:0477DB0000000000AA +:0477DC0000000000A9 +:0477DD0000000000A8 +:0477DE0000000000A7 +:0477DF0000000000A6 +:0477E00000000000A5 +:0477E10000000000A4 +:0477E20000000000A3 +:0477E30000000000A2 +:0477E40000000000A1 +:0477E50000000000A0 +:0477E600000000009F +:0477E700000000009E +:0477E800000000009D +:0477E900000000009C +:0477EA00000000009B +:0477EB00000000009A +:0477EC000000000099 +:0477ED000000000098 +:0477EE000000000097 +:0477EF000000000096 +:0477F0000000000095 +:0477F1000000000094 +:0477F2000000000093 +:0477F3000000000092 +:0477F4000000000091 +:0477F5000000000090 +:0477F600000000008F +:0477F700000000008E +:0477F800000000008D +:0477F900000000008C +:0477FA00000000008B +:0477FB00000000008A +:0477FC000000000089 +:0477FD000000000088 +:0477FE000000000087 +:0477FF000000000086 +:047800000000000084 +:047801000000000083 +:047802000000000082 +:047803000000000081 +:047804000000000080 +:04780500000000007F +:04780600000000007E +:04780700000000007D +:04780800000000007C +:04780900000000007B +:04780A00000000007A +:04780B000000000079 +:04780C000000000078 +:04780D000000000077 +:04780E000000000076 +:04780F000000000075 +:047810000000000074 +:047811000000000073 +:047812000000000072 +:047813000000000071 +:047814000000000070 +:04781500000000006F +:04781600000000006E +:04781700000000006D +:04781800000000006C +:04781900000000006B +:04781A00000000006A +:04781B000000000069 +:04781C000000000068 +:04781D000000000067 +:04781E000000000066 +:04781F000000000065 +:047820000000000064 +:047821000000000063 +:047822000000000062 +:047823000000000061 +:047824000000000060 +:04782500000000005F +:04782600000000005E +:04782700000000005D +:04782800000000005C +:04782900000000005B +:04782A00000000005A +:04782B000000000059 +:04782C000000000058 +:04782D000000000057 +:04782E000000000056 +:04782F000000000055 +:047830000000000054 +:047831000000000053 +:047832000000000052 +:047833000000000051 +:047834000000000050 +:04783500000000004F +:04783600000000004E +:04783700000000004D +:04783800000000004C +:04783900000000004B +:04783A00000000004A +:04783B000000000049 +:04783C000000000048 +:04783D000000000047 +:04783E000000000046 +:04783F000000000045 +:047840000000000044 +:047841000000000043 +:047842000000000042 +:047843000000000041 +:047844000000000040 +:04784500000000003F +:04784600000000003E +:04784700000000003D +:04784800000000003C +:04784900000000003B +:04784A00000000003A +:04784B000000000039 +:04784C000000000038 +:04784D000000000037 +:04784E000000000036 +:04784F000000000035 +:047850000000000034 +:047851000000000033 +:047852000000000032 +:047853000000000031 +:047854000000000030 +:04785500000000002F +:04785600000000002E +:04785700000000002D +:04785800000000002C +:04785900000000002B +:04785A00000000002A +:04785B000000000029 +:04785C000000000028 +:04785D000000000027 +:04785E000000000026 +:04785F000000000025 +:047860000000000024 +:047861000000000023 +:047862000000000022 +:047863000000000021 +:047864000000000020 +:04786500000000001F +:04786600000000001E +:04786700000000001D +:04786800000000001C +:04786900000000001B +:04786A00000000001A +:04786B000000000019 +:04786C000000000018 +:04786D000000000017 +:04786E000000000016 +:04786F000000000015 +:047870000000000014 +:047871000000000013 +:047872000000000012 +:047873000000000011 +:047874000000000010 +:04787500000000000F +:04787600000000000E +:04787700000000000D +:04787800000000000C +:04787900000000000B +:04787A00000000000A +:04787B000000000009 +:04787C000000000008 +:04787D000000000007 +:04787E000000000006 +:04787F000000000005 +:047880000000000004 +:047881000000000003 +:047882000000000002 +:047883000000000001 +:047884000000000000 +:0478850000000000FF +:0478860000000000FE +:0478870000000000FD +:0478880000000000FC +:0478890000000000FB +:04788A0000000000FA +:04788B0000000000F9 +:04788C0000000000F8 +:04788D0000000000F7 +:04788E0000000000F6 +:04788F0000000000F5 +:0478900000000000F4 +:0478910000000000F3 +:0478920000000000F2 +:0478930000000000F1 +:0478940000000000F0 +:0478950000000000EF +:0478960000000000EE +:0478970000000000ED +:0478980000000000EC +:0478990000000000EB +:04789A0000000000EA +:04789B0000000000E9 +:04789C0000000000E8 +:04789D0000000000E7 +:04789E0000000000E6 +:04789F0000000000E5 +:0478A00000000000E4 +:0478A10000000000E3 +:0478A20000000000E2 +:0478A30000000000E1 +:0478A40000000000E0 +:0478A50000000000DF +:0478A60000000000DE +:0478A70000000000DD +:0478A80000000000DC +:0478A90000000000DB +:0478AA0000000000DA +:0478AB0000000000D9 +:0478AC0000000000D8 +:0478AD0000000000D7 +:0478AE0000000000D6 +:0478AF0000000000D5 +:0478B00000000000D4 +:0478B10000000000D3 +:0478B20000000000D2 +:0478B30000000000D1 +:0478B40000000000D0 +:0478B50000000000CF +:0478B60000000000CE +:0478B70000000000CD +:0478B80000000000CC +:0478B90000000000CB +:0478BA0000000000CA +:0478BB0000000000C9 +:0478BC0000000000C8 +:0478BD0000000000C7 +:0478BE0000000000C6 +:0478BF0000000000C5 +:0478C00000000000C4 +:0478C10000000000C3 +:0478C20000000000C2 +:0478C30000000000C1 +:0478C40000000000C0 +:0478C50000000000BF +:0478C60000000000BE +:0478C70000000000BD +:0478C80000000000BC +:0478C90000000000BB +:0478CA0000000000BA +:0478CB0000000000B9 +:0478CC0000000000B8 +:0478CD0000000000B7 +:0478CE0000000000B6 +:0478CF0000000000B5 +:0478D00000000000B4 +:0478D10000000000B3 +:0478D20000000000B2 +:0478D30000000000B1 +:0478D40000000000B0 +:0478D50000000000AF +:0478D60000000000AE +:0478D70000000000AD +:0478D80000000000AC +:0478D90000000000AB +:0478DA0000000000AA +:0478DB0000000000A9 +:0478DC0000000000A8 +:0478DD0000000000A7 +:0478DE0000000000A6 +:0478DF0000000000A5 +:0478E00000000000A4 +:0478E10000000000A3 +:0478E20000000000A2 +:0478E30000000000A1 +:0478E40000000000A0 +:0478E500000000009F +:0478E600000000009E +:0478E700000000009D +:0478E800000000009C +:0478E900000000009B +:0478EA00000000009A +:0478EB000000000099 +:0478EC000000000098 +:0478ED000000000097 +:0478EE000000000096 +:0478EF000000000095 +:0478F0000000000094 +:0478F1000000000093 +:0478F2000000000092 +:0478F3000000000091 +:0478F4000000000090 +:0478F500000000008F +:0478F600000000008E +:0478F700000000008D +:0478F800000000008C +:0478F900000000008B +:0478FA00000000008A +:0478FB000000000089 +:0478FC000000000088 +:0478FD000000000087 +:0478FE000000000086 +:0478FF000000000085 +:047900000000000083 +:047901000000000082 +:047902000000000081 +:047903000000000080 +:04790400000000007F +:04790500000000007E +:04790600000000007D +:04790700000000007C +:04790800000000007B +:04790900000000007A +:04790A000000000079 +:04790B000000000078 +:04790C000000000077 +:04790D000000000076 +:04790E000000000075 +:04790F000000000074 +:047910000000000073 +:047911000000000072 +:047912000000000071 +:047913000000000070 +:04791400000000006F +:04791500000000006E +:04791600000000006D +:04791700000000006C +:04791800000000006B +:04791900000000006A +:04791A000000000069 +:04791B000000000068 +:04791C000000000067 +:04791D000000000066 +:04791E000000000065 +:04791F000000000064 +:047920000000000063 +:047921000000000062 +:047922000000000061 +:047923000000000060 +:04792400000000005F +:04792500000000005E +:04792600000000005D +:04792700000000005C +:04792800000000005B +:04792900000000005A +:04792A000000000059 +:04792B000000000058 +:04792C000000000057 +:04792D000000000056 +:04792E000000000055 +:04792F000000000054 +:047930000000000053 +:047931000000000052 +:047932000000000051 +:047933000000000050 +:04793400000000004F +:04793500000000004E +:04793600000000004D +:04793700000000004C +:04793800000000004B +:04793900000000004A +:04793A000000000049 +:04793B000000000048 +:04793C000000000047 +:04793D000000000046 +:04793E000000000045 +:04793F000000000044 +:047940000000000043 +:047941000000000042 +:047942000000000041 +:047943000000000040 +:04794400000000003F +:04794500000000003E +:04794600000000003D +:04794700000000003C +:04794800000000003B +:04794900000000003A +:04794A000000000039 +:04794B000000000038 +:04794C000000000037 +:04794D000000000036 +:04794E000000000035 +:04794F000000000034 +:047950000000000033 +:047951000000000032 +:047952000000000031 +:047953000000000030 +:04795400000000002F +:04795500000000002E +:04795600000000002D +:04795700000000002C +:04795800000000002B +:04795900000000002A +:04795A000000000029 +:04795B000000000028 +:04795C000000000027 +:04795D000000000026 +:04795E000000000025 +:04795F000000000024 +:047960000000000023 +:047961000000000022 +:047962000000000021 +:047963000000000020 +:04796400000000001F +:04796500000000001E +:04796600000000001D +:04796700000000001C +:04796800000000001B +:04796900000000001A +:04796A000000000019 +:04796B000000000018 +:04796C000000000017 +:04796D000000000016 +:04796E000000000015 +:04796F000000000014 +:047970000000000013 +:047971000000000012 +:047972000000000011 +:047973000000000010 +:04797400000000000F +:04797500000000000E +:04797600000000000D +:04797700000000000C +:04797800000000000B +:04797900000000000A +:04797A000000000009 +:04797B000000000008 +:04797C000000000007 +:04797D000000000006 +:04797E000000000005 +:04797F000000000004 +:047980000000000003 +:047981000000000002 +:047982000000000001 +:047983000000000000 +:0479840000000000FF +:0479850000000000FE +:0479860000000000FD +:0479870000000000FC +:0479880000000000FB +:0479890000000000FA +:04798A0000000000F9 +:04798B0000000000F8 +:04798C0000000000F7 +:04798D0000000000F6 +:04798E0000000000F5 +:04798F0000000000F4 +:0479900000000000F3 +:0479910000000000F2 +:0479920000000000F1 +:0479930000000000F0 +:0479940000000000EF +:0479950000000000EE +:0479960000000000ED +:0479970000000000EC +:0479980000000000EB +:0479990000000000EA +:04799A0000000000E9 +:04799B0000000000E8 +:04799C0000000000E7 +:04799D0000000000E6 +:04799E0000000000E5 +:04799F0000000000E4 +:0479A00000000000E3 +:0479A10000000000E2 +:0479A20000000000E1 +:0479A30000000000E0 +:0479A40000000000DF +:0479A50000000000DE +:0479A60000000000DD +:0479A70000000000DC +:0479A80000000000DB +:0479A90000000000DA +:0479AA0000000000D9 +:0479AB0000000000D8 +:0479AC0000000000D7 +:0479AD0000000000D6 +:0479AE0000000000D5 +:0479AF0000000000D4 +:0479B00000000000D3 +:0479B10000000000D2 +:0479B20000000000D1 +:0479B30000000000D0 +:0479B40000000000CF +:0479B50000000000CE +:0479B60000000000CD +:0479B70000000000CC +:0479B80000000000CB +:0479B90000000000CA +:0479BA0000000000C9 +:0479BB0000000000C8 +:0479BC0000000000C7 +:0479BD0000000000C6 +:0479BE0000000000C5 +:0479BF0000000000C4 +:0479C00000000000C3 +:0479C10000000000C2 +:0479C20000000000C1 +:0479C30000000000C0 +:0479C40000000000BF +:0479C50000000000BE +:0479C60000000000BD +:0479C70000000000BC +:0479C80000000000BB +:0479C90000000000BA +:0479CA0000000000B9 +:0479CB0000000000B8 +:0479CC0000000000B7 +:0479CD0000000000B6 +:0479CE0000000000B5 +:0479CF0000000000B4 +:0479D00000000000B3 +:0479D10000000000B2 +:0479D20000000000B1 +:0479D30000000000B0 +:0479D40000000000AF +:0479D50000000000AE +:0479D60000000000AD +:0479D70000000000AC +:0479D80000000000AB +:0479D90000000000AA +:0479DA0000000000A9 +:0479DB0000000000A8 +:0479DC0000000000A7 +:0479DD0000000000A6 +:0479DE0000000000A5 +:0479DF0000000000A4 +:0479E00000000000A3 +:0479E10000000000A2 +:0479E20000000000A1 +:0479E30000000000A0 +:0479E400000000009F +:0479E500000000009E +:0479E600000000009D +:0479E700000000009C +:0479E800000000009B +:0479E900000000009A +:0479EA000000000099 +:0479EB000000000098 +:0479EC000000000097 +:0479ED000000000096 +:0479EE000000000095 +:0479EF000000000094 +:0479F0000000000093 +:0479F1000000000092 +:0479F2000000000091 +:0479F3000000000090 +:0479F400000000008F +:0479F500000000008E +:0479F600000000008D +:0479F700000000008C +:0479F800000000008B +:0479F900000000008A +:0479FA000000000089 +:0479FB000000000088 +:0479FC000000000087 +:0479FD000000000086 +:0479FE000000000085 +:0479FF000000000084 +:047A00000000000082 +:047A01000000000081 +:047A02000000000080 +:047A0300000000007F +:047A0400000000007E +:047A0500000000007D +:047A0600000000007C +:047A0700000000007B +:047A0800000000007A +:047A09000000000079 +:047A0A000000000078 +:047A0B000000000077 +:047A0C000000000076 +:047A0D000000000075 +:047A0E000000000074 +:047A0F000000000073 +:047A10000000000072 +:047A11000000000071 +:047A12000000000070 +:047A1300000000006F +:047A1400000000006E +:047A1500000000006D +:047A1600000000006C +:047A1700000000006B +:047A1800000000006A +:047A19000000000069 +:047A1A000000000068 +:047A1B000000000067 +:047A1C000000000066 +:047A1D000000000065 +:047A1E000000000064 +:047A1F000000000063 +:047A20000000000062 +:047A21000000000061 +:047A22000000000060 +:047A2300000000005F +:047A2400000000005E +:047A2500000000005D +:047A2600000000005C +:047A2700000000005B +:047A2800000000005A +:047A29000000000059 +:047A2A000000000058 +:047A2B000000000057 +:047A2C000000000056 +:047A2D000000000055 +:047A2E000000000054 +:047A2F000000000053 +:047A30000000000052 +:047A31000000000051 +:047A32000000000050 +:047A3300000000004F +:047A3400000000004E +:047A3500000000004D +:047A3600000000004C +:047A3700000000004B +:047A3800000000004A +:047A39000000000049 +:047A3A000000000048 +:047A3B000000000047 +:047A3C000000000046 +:047A3D000000000045 +:047A3E000000000044 +:047A3F000000000043 +:047A40000000000042 +:047A41000000000041 +:047A42000000000040 +:047A4300000000003F +:047A4400000000003E +:047A4500000000003D +:047A4600000000003C +:047A4700000000003B +:047A4800000000003A +:047A49000000000039 +:047A4A000000000038 +:047A4B000000000037 +:047A4C000000000036 +:047A4D000000000035 +:047A4E000000000034 +:047A4F000000000033 +:047A50000000000032 +:047A51000000000031 +:047A52000000000030 +:047A5300000000002F +:047A5400000000002E +:047A5500000000002D +:047A5600000000002C +:047A5700000000002B +:047A5800000000002A +:047A59000000000029 +:047A5A000000000028 +:047A5B000000000027 +:047A5C000000000026 +:047A5D000000000025 +:047A5E000000000024 +:047A5F000000000023 +:047A60000000000022 +:047A61000000000021 +:047A62000000000020 +:047A6300000000001F +:047A6400000000001E +:047A6500000000001D +:047A6600000000001C +:047A6700000000001B +:047A6800000000001A +:047A69000000000019 +:047A6A000000000018 +:047A6B000000000017 +:047A6C000000000016 +:047A6D000000000015 +:047A6E000000000014 +:047A6F000000000013 +:047A70000000000012 +:047A71000000000011 +:047A72000000000010 +:047A7300000000000F +:047A7400000000000E +:047A7500000000000D +:047A7600000000000C +:047A7700000000000B +:047A7800000000000A +:047A79000000000009 +:047A7A000000000008 +:047A7B000000000007 +:047A7C000000000006 +:047A7D000000000005 +:047A7E000000000004 +:047A7F000000000003 +:047A80000000000002 +:047A81000000000001 +:047A82000000000000 +:047A830000000000FF +:047A840000000000FE +:047A850000000000FD +:047A860000000000FC +:047A870000000000FB +:047A880000000000FA +:047A890000000000F9 +:047A8A0000000000F8 +:047A8B0000000000F7 +:047A8C0000000000F6 +:047A8D0000000000F5 +:047A8E0000000000F4 +:047A8F0000000000F3 +:047A900000000000F2 +:047A910000000000F1 +:047A920000000000F0 +:047A930000000000EF +:047A940000000000EE +:047A950000000000ED +:047A960000000000EC +:047A970000000000EB +:047A980000000000EA +:047A990000000000E9 +:047A9A0000000000E8 +:047A9B0000000000E7 +:047A9C0000000000E6 +:047A9D0000000000E5 +:047A9E0000000000E4 +:047A9F0000000000E3 +:047AA00000000000E2 +:047AA10000000000E1 +:047AA20000000000E0 +:047AA30000000000DF +:047AA40000000000DE +:047AA50000000000DD +:047AA60000000000DC +:047AA70000000000DB +:047AA80000000000DA +:047AA90000000000D9 +:047AAA0000000000D8 +:047AAB0000000000D7 +:047AAC0000000000D6 +:047AAD0000000000D5 +:047AAE0000000000D4 +:047AAF0000000000D3 +:047AB00000000000D2 +:047AB10000000000D1 +:047AB20000000000D0 +:047AB30000000000CF +:047AB40000000000CE +:047AB50000000000CD +:047AB60000000000CC +:047AB70000000000CB +:047AB80000000000CA +:047AB90000000000C9 +:047ABA0000000000C8 +:047ABB0000000000C7 +:047ABC0000000000C6 +:047ABD0000000000C5 +:047ABE0000000000C4 +:047ABF0000000000C3 +:047AC00000000000C2 +:047AC10000000000C1 +:047AC20000000000C0 +:047AC30000000000BF +:047AC40000000000BE +:047AC50000000000BD +:047AC60000000000BC +:047AC70000000000BB +:047AC80000000000BA +:047AC90000000000B9 +:047ACA0000000000B8 +:047ACB0000000000B7 +:047ACC0000000000B6 +:047ACD0000000000B5 +:047ACE0000000000B4 +:047ACF0000000000B3 +:047AD00000000000B2 +:047AD10000000000B1 +:047AD20000000000B0 +:047AD30000000000AF +:047AD40000000000AE +:047AD50000000000AD +:047AD60000000000AC +:047AD70000000000AB +:047AD80000000000AA +:047AD90000000000A9 +:047ADA0000000000A8 +:047ADB0000000000A7 +:047ADC0000000000A6 +:047ADD0000000000A5 +:047ADE0000000000A4 +:047ADF0000000000A3 +:047AE00000000000A2 +:047AE10000000000A1 +:047AE20000000000A0 +:047AE300000000009F +:047AE400000000009E +:047AE500000000009D +:047AE600000000009C +:047AE700000000009B +:047AE800000000009A +:047AE9000000000099 +:047AEA000000000098 +:047AEB000000000097 +:047AEC000000000096 +:047AED000000000095 +:047AEE000000000094 +:047AEF000000000093 +:047AF0000000000092 +:047AF1000000000091 +:047AF2000000000090 +:047AF300000000008F +:047AF400000000008E +:047AF500000000008D +:047AF600000000008C +:047AF700000000008B +:047AF800000000008A +:047AF9000000000089 +:047AFA000000000088 +:047AFB000000000087 +:047AFC000000000086 +:047AFD000000000085 +:047AFE000000000084 +:047AFF000000000083 +:047B00000000000081 +:047B01000000000080 +:047B0200000000007F +:047B0300000000007E +:047B0400000000007D +:047B0500000000007C +:047B0600000000007B +:047B0700000000007A +:047B08000000000079 +:047B09000000000078 +:047B0A000000000077 +:047B0B000000000076 +:047B0C000000000075 +:047B0D000000000074 +:047B0E000000000073 +:047B0F000000000072 +:047B10000000000071 +:047B11000000000070 +:047B1200000000006F +:047B1300000000006E +:047B1400000000006D +:047B1500000000006C +:047B1600000000006B +:047B1700000000006A +:047B18000000000069 +:047B19000000000068 +:047B1A000000000067 +:047B1B000000000066 +:047B1C000000000065 +:047B1D000000000064 +:047B1E000000000063 +:047B1F000000000062 +:047B20000000000061 +:047B21000000000060 +:047B2200000000005F +:047B2300000000005E +:047B2400000000005D +:047B2500000000005C +:047B2600000000005B +:047B2700000000005A +:047B28000000000059 +:047B29000000000058 +:047B2A000000000057 +:047B2B000000000056 +:047B2C000000000055 +:047B2D000000000054 +:047B2E000000000053 +:047B2F000000000052 +:047B30000000000051 +:047B31000000000050 +:047B3200000000004F +:047B3300000000004E +:047B3400000000004D +:047B3500000000004C +:047B3600000000004B +:047B3700000000004A +:047B38000000000049 +:047B39000000000048 +:047B3A000000000047 +:047B3B000000000046 +:047B3C000000000045 +:047B3D000000000044 +:047B3E000000000043 +:047B3F000000000042 +:047B40000000000041 +:047B41000000000040 +:047B4200000000003F +:047B4300000000003E +:047B4400000000003D +:047B4500000000003C +:047B4600000000003B +:047B4700000000003A +:047B48000000000039 +:047B49000000000038 +:047B4A000000000037 +:047B4B000000000036 +:047B4C000000000035 +:047B4D000000000034 +:047B4E000000000033 +:047B4F000000000032 +:047B50000000000031 +:047B51000000000030 +:047B5200000000002F +:047B5300000000002E +:047B5400000000002D +:047B5500000000002C +:047B5600000000002B +:047B5700000000002A +:047B58000000000029 +:047B59000000000028 +:047B5A000000000027 +:047B5B000000000026 +:047B5C000000000025 +:047B5D000000000024 +:047B5E000000000023 +:047B5F000000000022 +:047B60000000000021 +:047B61000000000020 +:047B6200000000001F +:047B6300000000001E +:047B6400000000001D +:047B6500000000001C +:047B6600000000001B +:047B6700000000001A +:047B68000000000019 +:047B69000000000018 +:047B6A000000000017 +:047B6B000000000016 +:047B6C000000000015 +:047B6D000000000014 +:047B6E000000000013 +:047B6F000000000012 +:047B70000000000011 +:047B71000000000010 +:047B7200000000000F +:047B7300000000000E +:047B7400000000000D +:047B7500000000000C +:047B7600000000000B +:047B7700000000000A +:047B78000000000009 +:047B79000000000008 +:047B7A000000000007 +:047B7B000000000006 +:047B7C000000000005 +:047B7D000000000004 +:047B7E000000000003 +:047B7F000000000002 +:047B80000000000001 +:047B81000000000000 +:047B820000000000FF +:047B830000000000FE +:047B840000000000FD +:047B850000000000FC +:047B860000000000FB +:047B870000000000FA +:047B880000000000F9 +:047B890000000000F8 +:047B8A0000000000F7 +:047B8B0000000000F6 +:047B8C0000000000F5 +:047B8D0000000000F4 +:047B8E0000000000F3 +:047B8F0000000000F2 +:047B900000000000F1 +:047B910000000000F0 +:047B920000000000EF +:047B930000000000EE +:047B940000000000ED +:047B950000000000EC +:047B960000000000EB +:047B970000000000EA +:047B980000000000E9 +:047B990000000000E8 +:047B9A0000000000E7 +:047B9B0000000000E6 +:047B9C0000000000E5 +:047B9D0000000000E4 +:047B9E0000000000E3 +:047B9F0000000000E2 +:047BA00000000000E1 +:047BA10000000000E0 +:047BA20000000000DF +:047BA30000000000DE +:047BA40000000000DD +:047BA50000000000DC +:047BA60000000000DB +:047BA70000000000DA +:047BA80000000000D9 +:047BA90000000000D8 +:047BAA0000000000D7 +:047BAB0000000000D6 +:047BAC0000000000D5 +:047BAD0000000000D4 +:047BAE0000000000D3 +:047BAF0000000000D2 +:047BB00000000000D1 +:047BB10000000000D0 +:047BB20000000000CF +:047BB30000000000CE +:047BB40000000000CD +:047BB50000000000CC +:047BB60000000000CB +:047BB70000000000CA +:047BB80000000000C9 +:047BB90000000000C8 +:047BBA0000000000C7 +:047BBB0000000000C6 +:047BBC0000000000C5 +:047BBD0000000000C4 +:047BBE0000000000C3 +:047BBF0000000000C2 +:047BC00000000000C1 +:047BC10000000000C0 +:047BC20000000000BF +:047BC30000000000BE +:047BC40000000000BD +:047BC50000000000BC +:047BC60000000000BB +:047BC70000000000BA +:047BC80000000000B9 +:047BC90000000000B8 +:047BCA0000000000B7 +:047BCB0000000000B6 +:047BCC0000000000B5 +:047BCD0000000000B4 +:047BCE0000000000B3 +:047BCF0000000000B2 +:047BD00000000000B1 +:047BD10000000000B0 +:047BD20000000000AF +:047BD30000000000AE +:047BD40000000000AD +:047BD50000000000AC +:047BD60000000000AB +:047BD70000000000AA +:047BD80000000000A9 +:047BD90000000000A8 +:047BDA0000000000A7 +:047BDB0000000000A6 +:047BDC0000000000A5 +:047BDD0000000000A4 +:047BDE0000000000A3 +:047BDF0000000000A2 +:047BE00000000000A1 +:047BE10000000000A0 +:047BE200000000009F +:047BE300000000009E +:047BE400000000009D +:047BE500000000009C +:047BE600000000009B +:047BE700000000009A +:047BE8000000000099 +:047BE9000000000098 +:047BEA000000000097 +:047BEB000000000096 +:047BEC000000000095 +:047BED000000000094 +:047BEE000000000093 +:047BEF000000000092 +:047BF0000000000091 +:047BF1000000000090 +:047BF200000000008F +:047BF300000000008E +:047BF400000000008D +:047BF500000000008C +:047BF600000000008B +:047BF700000000008A +:047BF8000000000089 +:047BF9000000000088 +:047BFA000000000087 +:047BFB000000000086 +:047BFC000000000085 +:047BFD000000000084 +:047BFE000000000083 +:047BFF000000000082 +:047C00000000000080 +:047C0100000000007F +:047C0200000000007E +:047C0300000000007D +:047C0400000000007C +:047C0500000000007B +:047C0600000000007A +:047C07000000000079 +:047C08000000000078 +:047C09000000000077 +:047C0A000000000076 +:047C0B000000000075 +:047C0C000000000074 +:047C0D000000000073 +:047C0E000000000072 +:047C0F000000000071 +:047C10000000000070 +:047C1100000000006F +:047C1200000000006E +:047C1300000000006D +:047C1400000000006C +:047C1500000000006B +:047C1600000000006A +:047C17000000000069 +:047C18000000000068 +:047C19000000000067 +:047C1A000000000066 +:047C1B000000000065 +:047C1C000000000064 +:047C1D000000000063 +:047C1E000000000062 +:047C1F000000000061 +:047C20000000000060 +:047C2100000000005F +:047C2200000000005E +:047C2300000000005D +:047C2400000000005C +:047C2500000000005B +:047C2600000000005A +:047C27000000000059 +:047C28000000000058 +:047C29000000000057 +:047C2A000000000056 +:047C2B000000000055 +:047C2C000000000054 +:047C2D000000000053 +:047C2E000000000052 +:047C2F000000000051 +:047C30000000000050 +:047C3100000000004F +:047C3200000000004E +:047C3300000000004D +:047C3400000000004C +:047C3500000000004B +:047C3600000000004A +:047C37000000000049 +:047C38000000000048 +:047C39000000000047 +:047C3A000000000046 +:047C3B000000000045 +:047C3C000000000044 +:047C3D000000000043 +:047C3E000000000042 +:047C3F000000000041 +:047C40000000000040 +:047C4100000000003F +:047C4200000000003E +:047C4300000000003D +:047C4400000000003C +:047C4500000000003B +:047C4600000000003A +:047C47000000000039 +:047C48000000000038 +:047C49000000000037 +:047C4A000000000036 +:047C4B000000000035 +:047C4C000000000034 +:047C4D000000000033 +:047C4E000000000032 +:047C4F000000000031 +:047C50000000000030 +:047C5100000000002F +:047C5200000000002E +:047C5300000000002D +:047C5400000000002C +:047C5500000000002B +:047C5600000000002A +:047C57000000000029 +:047C58000000000028 +:047C59000000000027 +:047C5A000000000026 +:047C5B000000000025 +:047C5C000000000024 +:047C5D000000000023 +:047C5E000000000022 +:047C5F000000000021 +:047C60000000000020 +:047C6100000000001F +:047C6200000000001E +:047C6300000000001D +:047C6400000000001C +:047C6500000000001B +:047C6600000000001A +:047C67000000000019 +:047C68000000000018 +:047C69000000000017 +:047C6A000000000016 +:047C6B000000000015 +:047C6C000000000014 +:047C6D000000000013 +:047C6E000000000012 +:047C6F000000000011 +:047C70000000000010 +:047C7100000000000F +:047C7200000000000E +:047C7300000000000D +:047C7400000000000C +:047C7500000000000B +:047C7600000000000A +:047C77000000000009 +:047C78000000000008 +:047C79000000000007 +:047C7A000000000006 +:047C7B000000000005 +:047C7C000000000004 +:047C7D000000000003 +:047C7E000000000002 +:047C7F000000000001 +:047C80000000000000 +:047C810000000000FF +:047C820000000000FE +:047C830000000000FD +:047C840000000000FC +:047C850000000000FB +:047C860000000000FA +:047C870000000000F9 +:047C880000000000F8 +:047C890000000000F7 +:047C8A0000000000F6 +:047C8B0000000000F5 +:047C8C0000000000F4 +:047C8D0000000000F3 +:047C8E0000000000F2 +:047C8F0000000000F1 +:047C900000000000F0 +:047C910000000000EF +:047C920000000000EE +:047C930000000000ED +:047C940000000000EC +:047C950000000000EB +:047C960000000000EA +:047C970000000000E9 +:047C980000000000E8 +:047C990000000000E7 +:047C9A0000000000E6 +:047C9B0000000000E5 +:047C9C0000000000E4 +:047C9D0000000000E3 +:047C9E0000000000E2 +:047C9F0000000000E1 +:047CA00000000000E0 +:047CA10000000000DF +:047CA20000000000DE +:047CA30000000000DD +:047CA40000000000DC +:047CA50000000000DB +:047CA60000000000DA +:047CA70000000000D9 +:047CA80000000000D8 +:047CA90000000000D7 +:047CAA0000000000D6 +:047CAB0000000000D5 +:047CAC0000000000D4 +:047CAD0000000000D3 +:047CAE0000000000D2 +:047CAF0000000000D1 +:047CB00000000000D0 +:047CB10000000000CF +:047CB20000000000CE +:047CB30000000000CD +:047CB40000000000CC +:047CB50000000000CB +:047CB60000000000CA +:047CB70000000000C9 +:047CB80000000000C8 +:047CB90000000000C7 +:047CBA0000000000C6 +:047CBB0000000000C5 +:047CBC0000000000C4 +:047CBD0000000000C3 +:047CBE0000000000C2 +:047CBF0000000000C1 +:047CC00000000000C0 +:047CC10000000000BF +:047CC20000000000BE +:047CC30000000000BD +:047CC40000000000BC +:047CC50000000000BB +:047CC60000000000BA +:047CC70000000000B9 +:047CC80000000000B8 +:047CC90000000000B7 +:047CCA0000000000B6 +:047CCB0000000000B5 +:047CCC0000000000B4 +:047CCD0000000000B3 +:047CCE0000000000B2 +:047CCF0000000000B1 +:047CD00000000000B0 +:047CD10000000000AF +:047CD20000000000AE +:047CD30000000000AD +:047CD40000000000AC +:047CD50000000000AB +:047CD60000000000AA +:047CD70000000000A9 +:047CD80000000000A8 +:047CD90000000000A7 +:047CDA0000000000A6 +:047CDB0000000000A5 +:047CDC0000000000A4 +:047CDD0000000000A3 +:047CDE0000000000A2 +:047CDF0000000000A1 +:047CE00000000000A0 +:047CE100000000009F +:047CE200000000009E +:047CE300000000009D +:047CE400000000009C +:047CE500000000009B +:047CE600000000009A +:047CE7000000000099 +:047CE8000000000098 +:047CE9000000000097 +:047CEA000000000096 +:047CEB000000000095 +:047CEC000000000094 +:047CED000000000093 +:047CEE000000000092 +:047CEF000000000091 +:047CF0000000000090 +:047CF100000000008F +:047CF200000000008E +:047CF300000000008D +:047CF400000000008C +:047CF500000000008B +:047CF600000000008A +:047CF7000000000089 +:047CF8000000000088 +:047CF9000000000087 +:047CFA000000000086 +:047CFB000000000085 +:047CFC000000000084 +:047CFD000000000083 +:047CFE000000000082 +:047CFF000000000081 +:047D0000000000007F +:047D0100000000007E +:047D0200000000007D +:047D0300000000007C +:047D0400000000007B +:047D0500000000007A +:047D06000000000079 +:047D07000000000078 +:047D08000000000077 +:047D09000000000076 +:047D0A000000000075 +:047D0B000000000074 +:047D0C000000000073 +:047D0D000000000072 +:047D0E000000000071 +:047D0F000000000070 +:047D1000000000006F +:047D1100000000006E +:047D1200000000006D +:047D1300000000006C +:047D1400000000006B +:047D1500000000006A +:047D16000000000069 +:047D17000000000068 +:047D18000000000067 +:047D19000000000066 +:047D1A000000000065 +:047D1B000000000064 +:047D1C000000000063 +:047D1D000000000062 +:047D1E000000000061 +:047D1F000000000060 +:047D2000000000005F +:047D2100000000005E +:047D2200000000005D +:047D2300000000005C +:047D2400000000005B +:047D2500000000005A +:047D26000000000059 +:047D27000000000058 +:047D28000000000057 +:047D29000000000056 +:047D2A000000000055 +:047D2B000000000054 +:047D2C000000000053 +:047D2D000000000052 +:047D2E000000000051 +:047D2F000000000050 +:047D3000000000004F +:047D3100000000004E +:047D3200000000004D +:047D3300000000004C +:047D3400000000004B +:047D3500000000004A +:047D36000000000049 +:047D37000000000048 +:047D38000000000047 +:047D39000000000046 +:047D3A000000000045 +:047D3B000000000044 +:047D3C000000000043 +:047D3D000000000042 +:047D3E000000000041 +:047D3F000000000040 +:047D4000000000003F +:047D4100000000003E +:047D4200000000003D +:047D4300000000003C +:047D4400000000003B +:047D4500000000003A +:047D46000000000039 +:047D47000000000038 +:047D48000000000037 +:047D49000000000036 +:047D4A000000000035 +:047D4B000000000034 +:047D4C000000000033 +:047D4D000000000032 +:047D4E000000000031 +:047D4F000000000030 +:047D5000000000002F +:047D5100000000002E +:047D5200000000002D +:047D5300000000002C +:047D5400000000002B +:047D5500000000002A +:047D56000000000029 +:047D57000000000028 +:047D58000000000027 +:047D59000000000026 +:047D5A000000000025 +:047D5B000000000024 +:047D5C000000000023 +:047D5D000000000022 +:047D5E000000000021 +:047D5F000000000020 +:047D6000000000001F +:047D6100000000001E +:047D6200000000001D +:047D6300000000001C +:047D6400000000001B +:047D6500000000001A +:047D66000000000019 +:047D67000000000018 +:047D68000000000017 +:047D69000000000016 +:047D6A000000000015 +:047D6B000000000014 +:047D6C000000000013 +:047D6D000000000012 +:047D6E000000000011 +:047D6F000000000010 +:047D7000000000000F +:047D7100000000000E +:047D7200000000000D +:047D7300000000000C +:047D7400000000000B +:047D7500000000000A +:047D76000000000009 +:047D77000000000008 +:047D78000000000007 +:047D79000000000006 +:047D7A000000000005 +:047D7B000000000004 +:047D7C000000000003 +:047D7D000000000002 +:047D7E000000000001 +:047D7F000000000000 +:047D800000000000FF +:047D810000000000FE +:047D820000000000FD +:047D830000000000FC +:047D840000000000FB +:047D850000000000FA +:047D860000000000F9 +:047D870000000000F8 +:047D880000000000F7 +:047D890000000000F6 +:047D8A0000000000F5 +:047D8B0000000000F4 +:047D8C0000000000F3 +:047D8D0000000000F2 +:047D8E0000000000F1 +:047D8F0000000000F0 +:047D900000000000EF +:047D910000000000EE +:047D920000000000ED +:047D930000000000EC +:047D940000000000EB +:047D950000000000EA +:047D960000000000E9 +:047D970000000000E8 +:047D980000000000E7 +:047D990000000000E6 +:047D9A0000000000E5 +:047D9B0000000000E4 +:047D9C0000000000E3 +:047D9D0000000000E2 +:047D9E0000000000E1 +:047D9F0000000000E0 +:047DA00000000000DF +:047DA10000000000DE +:047DA20000000000DD +:047DA30000000000DC +:047DA40000000000DB +:047DA50000000000DA +:047DA60000000000D9 +:047DA70000000000D8 +:047DA80000000000D7 +:047DA90000000000D6 +:047DAA0000000000D5 +:047DAB0000000000D4 +:047DAC0000000000D3 +:047DAD0000000000D2 +:047DAE0000000000D1 +:047DAF0000000000D0 +:047DB00000000000CF +:047DB10000000000CE +:047DB20000000000CD +:047DB30000000000CC +:047DB40000000000CB +:047DB50000000000CA +:047DB60000000000C9 +:047DB70000000000C8 +:047DB80000000000C7 +:047DB90000000000C6 +:047DBA0000000000C5 +:047DBB0000000000C4 +:047DBC0000000000C3 +:047DBD0000000000C2 +:047DBE0000000000C1 +:047DBF0000000000C0 +:047DC00000000000BF +:047DC10000000000BE +:047DC20000000000BD +:047DC30000000000BC +:047DC40000000000BB +:047DC50000000000BA +:047DC60000000000B9 +:047DC70000000000B8 +:047DC80000000000B7 +:047DC90000000000B6 +:047DCA0000000000B5 +:047DCB0000000000B4 +:047DCC0000000000B3 +:047DCD0000000000B2 +:047DCE0000000000B1 +:047DCF0000000000B0 +:047DD00000000000AF +:047DD10000000000AE +:047DD20000000000AD +:047DD30000000000AC +:047DD40000000000AB +:047DD50000000000AA +:047DD60000000000A9 +:047DD70000000000A8 +:047DD80000000000A7 +:047DD90000000000A6 +:047DDA0000000000A5 +:047DDB0000000000A4 +:047DDC0000000000A3 +:047DDD0000000000A2 +:047DDE0000000000A1 +:047DDF0000000000A0 +:047DE000000000009F +:047DE100000000009E +:047DE200000000009D +:047DE300000000009C +:047DE400000000009B +:047DE500000000009A +:047DE6000000000099 +:047DE7000000000098 +:047DE8000000000097 +:047DE9000000000096 +:047DEA000000000095 +:047DEB000000000094 +:047DEC000000000093 +:047DED000000000092 +:047DEE000000000091 +:047DEF000000000090 +:047DF000000000008F +:047DF100000000008E +:047DF200000000008D +:047DF300000000008C +:047DF400000000008B +:047DF500000000008A +:047DF6000000000089 +:047DF7000000000088 +:047DF8000000000087 +:047DF9000000000086 +:047DFA000000000085 +:047DFB000000000084 +:047DFC000000000083 +:047DFD000000000082 +:047DFE000000000081 +:047DFF000000000080 +:047E0000000000007E +:047E0100000000007D +:047E0200000000007C +:047E0300000000007B +:047E0400000000007A +:047E05000000000079 +:047E06000000000078 +:047E07000000000077 +:047E08000000000076 +:047E09000000000075 +:047E0A000000000074 +:047E0B000000000073 +:047E0C000000000072 +:047E0D000000000071 +:047E0E000000000070 +:047E0F00000000006F +:047E1000000000006E +:047E1100000000006D +:047E1200000000006C +:047E1300000000006B +:047E1400000000006A +:047E15000000000069 +:047E16000000000068 +:047E17000000000067 +:047E18000000000066 +:047E19000000000065 +:047E1A000000000064 +:047E1B000000000063 +:047E1C000000000062 +:047E1D000000000061 +:047E1E000000000060 +:047E1F00000000005F +:047E2000000000005E +:047E2100000000005D +:047E2200000000005C +:047E2300000000005B +:047E2400000000005A +:047E25000000000059 +:047E26000000000058 +:047E27000000000057 +:047E28000000000056 +:047E29000000000055 +:047E2A000000000054 +:047E2B000000000053 +:047E2C000000000052 +:047E2D000000000051 +:047E2E000000000050 +:047E2F00000000004F +:047E3000000000004E +:047E3100000000004D +:047E3200000000004C +:047E3300000000004B +:047E3400000000004A +:047E35000000000049 +:047E36000000000048 +:047E37000000000047 +:047E38000000000046 +:047E39000000000045 +:047E3A000000000044 +:047E3B000000000043 +:047E3C000000000042 +:047E3D000000000041 +:047E3E000000000040 +:047E3F00000000003F +:047E4000000000003E +:047E4100000000003D +:047E4200000000003C +:047E4300000000003B +:047E4400000000003A +:047E45000000000039 +:047E46000000000038 +:047E47000000000037 +:047E48000000000036 +:047E49000000000035 +:047E4A000000000034 +:047E4B000000000033 +:047E4C000000000032 +:047E4D000000000031 +:047E4E000000000030 +:047E4F00000000002F +:047E5000000000002E +:047E5100000000002D +:047E5200000000002C +:047E5300000000002B +:047E5400000000002A +:047E55000000000029 +:047E56000000000028 +:047E57000000000027 +:047E58000000000026 +:047E59000000000025 +:047E5A000000000024 +:047E5B000000000023 +:047E5C000000000022 +:047E5D000000000021 +:047E5E000000000020 +:047E5F00000000001F +:047E6000000000001E +:047E6100000000001D +:047E6200000000001C +:047E6300000000001B +:047E6400000000001A +:047E65000000000019 +:047E66000000000018 +:047E67000000000017 +:047E68000000000016 +:047E69000000000015 +:047E6A000000000014 +:047E6B000000000013 +:047E6C000000000012 +:047E6D000000000011 +:047E6E000000000010 +:047E6F00000000000F +:047E7000000000000E +:047E7100000000000D +:047E7200000000000C +:047E7300000000000B +:047E7400000000000A +:047E75000000000009 +:047E76000000000008 +:047E77000000000007 +:047E78000000000006 +:047E79000000000005 +:047E7A000000000004 +:047E7B000000000003 +:047E7C000000000002 +:047E7D000000000001 +:047E7E000000000000 +:047E7F0000000000FF +:047E800000000000FE +:047E810000000000FD +:047E820000000000FC +:047E830000000000FB +:047E840000000000FA +:047E850000000000F9 +:047E860000000000F8 +:047E870000000000F7 +:047E880000000000F6 +:047E890000000000F5 +:047E8A0000000000F4 +:047E8B0000000000F3 +:047E8C0000000000F2 +:047E8D0000000000F1 +:047E8E0000000000F0 +:047E8F0000000000EF +:047E900000000000EE +:047E910000000000ED +:047E920000000000EC +:047E930000000000EB +:047E940000000000EA +:047E950000000000E9 +:047E960000000000E8 +:047E970000000000E7 +:047E980000000000E6 +:047E990000000000E5 +:047E9A0000000000E4 +:047E9B0000000000E3 +:047E9C0000000000E2 +:047E9D0000000000E1 +:047E9E0000000000E0 +:047E9F0000000000DF +:047EA00000000000DE +:047EA10000000000DD +:047EA20000000000DC +:047EA30000000000DB +:047EA40000000000DA +:047EA50000000000D9 +:047EA60000000000D8 +:047EA70000000000D7 +:047EA80000000000D6 +:047EA90000000000D5 +:047EAA0000000000D4 +:047EAB0000000000D3 +:047EAC0000000000D2 +:047EAD0000000000D1 +:047EAE0000000000D0 +:047EAF0000000000CF +:047EB00000000000CE +:047EB10000000000CD +:047EB20000000000CC +:047EB30000000000CB +:047EB40000000000CA +:047EB50000000000C9 +:047EB60000000000C8 +:047EB70000000000C7 +:047EB80000000000C6 +:047EB90000000000C5 +:047EBA0000000000C4 +:047EBB0000000000C3 +:047EBC0000000000C2 +:047EBD0000000000C1 +:047EBE0000000000C0 +:047EBF0000000000BF +:047EC00000000000BE +:047EC10000000000BD +:047EC20000000000BC +:047EC30000000000BB +:047EC40000000000BA +:047EC50000000000B9 +:047EC60000000000B8 +:047EC70000000000B7 +:047EC80000000000B6 +:047EC90000000000B5 +:047ECA0000000000B4 +:047ECB0000000000B3 +:047ECC0000000000B2 +:047ECD0000000000B1 +:047ECE0000000000B0 +:047ECF0000000000AF +:047ED00000000000AE +:047ED10000000000AD +:047ED20000000000AC +:047ED30000000000AB +:047ED40000000000AA +:047ED50000000000A9 +:047ED60000000000A8 +:047ED70000000000A7 +:047ED80000000000A6 +:047ED90000000000A5 +:047EDA0000000000A4 +:047EDB0000000000A3 +:047EDC0000000000A2 +:047EDD0000000000A1 +:047EDE0000000000A0 +:047EDF00000000009F +:047EE000000000009E +:047EE100000000009D +:047EE200000000009C +:047EE300000000009B +:047EE400000000009A +:047EE5000000000099 +:047EE6000000000098 +:047EE7000000000097 +:047EE8000000000096 +:047EE9000000000095 +:047EEA000000000094 +:047EEB000000000093 +:047EEC000000000092 +:047EED000000000091 +:047EEE000000000090 +:047EEF00000000008F +:047EF000000000008E +:047EF100000000008D +:047EF200000000008C +:047EF300000000008B +:047EF400000000008A +:047EF5000000000089 +:047EF6000000000088 +:047EF7000000000087 +:047EF8000000000086 +:047EF9000000000085 +:047EFA000000000084 +:047EFB000000000083 +:047EFC000000000082 +:047EFD000000000081 +:047EFE000000000080 +:047EFF00000000007F +:047F0000000000007D +:047F0100000000007C +:047F0200000000007B +:047F0300000000007A +:047F04000000000079 +:047F05000000000078 +:047F06000000000077 +:047F07000000000076 +:047F08000000000075 +:047F09000000000074 +:047F0A000000000073 +:047F0B000000000072 +:047F0C000000000071 +:047F0D000000000070 +:047F0E00000000006F +:047F0F00000000006E +:047F1000000000006D +:047F1100000000006C +:047F1200000000006B +:047F1300000000006A +:047F14000000000069 +:047F15000000000068 +:047F16000000000067 +:047F17000000000066 +:047F18000000000065 +:047F19000000000064 +:047F1A000000000063 +:047F1B000000000062 +:047F1C000000000061 +:047F1D000000000060 +:047F1E00000000005F +:047F1F00000000005E +:047F2000000000005D +:047F2100000000005C +:047F2200000000005B +:047F2300000000005A +:047F24000000000059 +:047F25000000000058 +:047F26000000000057 +:047F27000000000056 +:047F28000000000055 +:047F29000000000054 +:047F2A000000000053 +:047F2B000000000052 +:047F2C000000000051 +:047F2D000000000050 +:047F2E00000000004F +:047F2F00000000004E +:047F3000000000004D +:047F3100000000004C +:047F3200000000004B +:047F3300000000004A +:047F34000000000049 +:047F35000000000048 +:047F36000000000047 +:047F37000000000046 +:047F38000000000045 +:047F39000000000044 +:047F3A000000000043 +:047F3B000000000042 +:047F3C000000000041 +:047F3D000000000040 +:047F3E00000000003F +:047F3F00000000003E +:047F4000000000003D +:047F4100000000003C +:047F4200000000003B +:047F4300000000003A +:047F44000000000039 +:047F45000000000038 +:047F46000000000037 +:047F47000000000036 +:047F48000000000035 +:047F49000000000034 +:047F4A000000000033 +:047F4B000000000032 +:047F4C000000000031 +:047F4D000000000030 +:047F4E00000000002F +:047F4F00000000002E +:047F5000000000002D +:047F5100000000002C +:047F5200000000002B +:047F5300000000002A +:047F54000000000029 +:047F55000000000028 +:047F56000000000027 +:047F57000000000026 +:047F58000000000025 +:047F59000000000024 +:047F5A000000000023 +:047F5B000000000022 +:047F5C000000000021 +:047F5D000000000020 +:047F5E00000000001F +:047F5F00000000001E +:047F6000000000001D +:047F6100000000001C +:047F6200000000001B +:047F6300000000001A +:047F64000000000019 +:047F65000000000018 +:047F66000000000017 +:047F67000000000016 +:047F68000000000015 +:047F69000000000014 +:047F6A000000000013 +:047F6B000000000012 +:047F6C000000000011 +:047F6D000000000010 +:047F6E00000000000F +:047F6F00000000000E +:047F7000000000000D +:047F7100000000000C +:047F7200000000000B +:047F7300000000000A +:047F74000000000009 +:047F75000000000008 +:047F76000000000007 +:047F77000000000006 +:047F78000000000005 +:047F79000000000004 +:047F7A000000000003 +:047F7B000000000002 +:047F7C000000000001 +:047F7D000000000000 +:047F7E0000000000FF +:047F7F0000000000FE +:047F800000000000FD +:047F810000000000FC +:047F820000000000FB +:047F830000000000FA +:047F840000000000F9 +:047F850000000000F8 +:047F860000000000F7 +:047F870000000000F6 +:047F880000000000F5 +:047F890000000000F4 +:047F8A0000000000F3 +:047F8B0000000000F2 +:047F8C0000000000F1 +:047F8D0000000000F0 +:047F8E0000000000EF +:047F8F0000000000EE +:047F900000000000ED +:047F910000000000EC +:047F920000000000EB +:047F930000000000EA +:047F940000000000E9 +:047F950000000000E8 +:047F960000000000E7 +:047F970000000000E6 +:047F980000000000E5 +:047F990000000000E4 +:047F9A0000000000E3 +:047F9B0000000000E2 +:047F9C0000000000E1 +:047F9D0000000000E0 +:047F9E0000000000DF +:047F9F0000000000DE +:047FA00000000000DD +:047FA10000000000DC +:047FA20000000000DB +:047FA30000000000DA +:047FA40000000000D9 +:047FA50000000000D8 +:047FA60000000000D7 +:047FA70000000000D6 +:047FA80000000000D5 +:047FA90000000000D4 +:047FAA0000000000D3 +:047FAB0000000000D2 +:047FAC0000000000D1 +:047FAD0000000000D0 +:047FAE0000000000CF +:047FAF0000000000CE +:047FB00000000000CD +:047FB10000000000CC +:047FB20000000000CB +:047FB30000000000CA +:047FB40000000000C9 +:047FB50000000000C8 +:047FB60000000000C7 +:047FB70000000000C6 +:047FB80000000000C5 +:047FB90000000000C4 +:047FBA0000000000C3 +:047FBB0000000000C2 +:047FBC0000000000C1 +:047FBD0000000000C0 +:047FBE0000000000BF +:047FBF0000000000BE +:047FC00000000000BD +:047FC10000000000BC +:047FC20000000000BB +:047FC30000000000BA +:047FC40000000000B9 +:047FC50000000000B8 +:047FC60000000000B7 +:047FC70000000000B6 +:047FC80000000000B5 +:047FC90000000000B4 +:047FCA0000000000B3 +:047FCB0000000000B2 +:047FCC0000000000B1 +:047FCD0000000000B0 +:047FCE0000000000AF +:047FCF0000000000AE +:047FD00000000000AD +:047FD10000000000AC +:047FD20000000000AB +:047FD30000000000AA +:047FD40000000000A9 +:047FD50000000000A8 +:047FD60000000000A7 +:047FD70000000000A6 +:047FD80000000000A5 +:047FD90000000000A4 +:047FDA0000000000A3 +:047FDB0000000000A2 +:047FDC0000000000A1 +:047FDD0000000000A0 +:047FDE00000000009F +:047FDF00000000009E +:047FE000000000009D +:047FE100000000009C +:047FE200000000009B +:047FE300000000009A +:047FE4000000000099 +:047FE5000000000098 +:047FE6000000000097 +:047FE7000000000096 +:047FE8000000000095 +:047FE9000000000094 +:047FEA000000000093 +:047FEB000000000092 +:047FEC000000000091 +:047FED000000000090 +:047FEE00000000008F +:047FEF00000000008E +:047FF000000000008D +:047FF100000000008C +:047FF200000000008B +:047FF300000000008A +:047FF4000000000089 +:047FF5000000000088 +:047FF6000000000087 +:047FF7000000000086 +:047FF8000000000085 +:047FF9000000000084 +:047FFA000000000083 +:047FFB000000000082 +:047FFC000000000081 +:047FFD000000000080 +:047FFE00000000007F +:047FFF00000000007E +:04800000000000007C +:04800100000000007B +:04800200000000007A +:048003000000000079 +:048004000000000078 +:048005000000000077 +:048006000000000076 +:048007000000000075 +:048008000000000074 +:048009000000000073 +:04800A000000000072 +:04800B000000000071 +:04800C000000000070 +:04800D00000000006F +:04800E00000000006E +:04800F00000000006D +:04801000000000006C +:04801100000000006B +:04801200000000006A +:048013000000000069 +:048014000000000068 +:048015000000000067 +:048016000000000066 +:048017000000000065 +:048018000000000064 +:048019000000000063 +:04801A000000000062 +:04801B000000000061 +:04801C000000000060 +:04801D00000000005F +:04801E00000000005E +:04801F00000000005D +:04802000000000005C +:04802100000000005B +:04802200000000005A +:048023000000000059 +:048024000000000058 +:048025000000000057 +:048026000000000056 +:048027000000000055 +:048028000000000054 +:048029000000000053 +:04802A000000000052 +:04802B000000000051 +:04802C000000000050 +:04802D00000000004F +:04802E00000000004E +:04802F00000000004D +:04803000000000004C +:04803100000000004B +:04803200000000004A +:048033000000000049 +:048034000000000048 +:048035000000000047 +:048036000000000046 +:048037000000000045 +:048038000000000044 +:048039000000000043 +:04803A000000000042 +:04803B000000000041 +:04803C000000000040 +:04803D00000000003F +:04803E00000000003E +:04803F00000000003D +:04804000000000003C +:04804100000000003B +:04804200000000003A +:048043000000000039 +:048044000000000038 +:048045000000000037 +:048046000000000036 +:048047000000000035 +:048048000000000034 +:048049000000000033 +:04804A000000000032 +:04804B000000000031 +:04804C000000000030 +:04804D00000000002F +:04804E00000000002E +:04804F00000000002D +:04805000000000002C +:04805100000000002B +:04805200000000002A +:048053000000000029 +:048054000000000028 +:048055000000000027 +:048056000000000026 +:048057000000000025 +:048058000000000024 +:048059000000000023 +:04805A000000000022 +:04805B000000000021 +:04805C000000000020 +:04805D00000000001F +:04805E00000000001E +:04805F00000000001D +:04806000000000001C +:04806100000000001B +:04806200000000001A +:048063000000000019 +:048064000000000018 +:048065000000000017 +:048066000000000016 +:048067000000000015 +:048068000000000014 +:048069000000000013 +:04806A000000000012 +:04806B000000000011 +:04806C000000000010 +:04806D00000000000F +:04806E00000000000E +:04806F00000000000D +:04807000000000000C +:04807100000000000B +:04807200000000000A +:048073000000000009 +:048074000000000008 +:048075000000000007 +:048076000000000006 +:048077000000000005 +:048078000000000004 +:048079000000000003 +:04807A000000000002 +:04807B000000000001 +:04807C000000000000 +:04807D0000000000FF +:04807E0000000000FE +:04807F0000000000FD +:0480800000000000FC +:0480810000000000FB +:0480820000000000FA +:0480830000000000F9 +:0480840000000000F8 +:0480850000000000F7 +:0480860000000000F6 +:0480870000000000F5 +:0480880000000000F4 +:0480890000000000F3 +:04808A0000000000F2 +:04808B0000000000F1 +:04808C0000000000F0 +:04808D0000000000EF +:04808E0000000000EE +:04808F0000000000ED +:0480900000000000EC +:0480910000000000EB +:0480920000000000EA +:0480930000000000E9 +:0480940000000000E8 +:0480950000000000E7 +:0480960000000000E6 +:0480970000000000E5 +:0480980000000000E4 +:0480990000000000E3 +:04809A0000000000E2 +:04809B0000000000E1 +:04809C0000000000E0 +:04809D0000000000DF +:04809E0000000000DE +:04809F0000000000DD +:0480A00000000000DC +:0480A10000000000DB +:0480A20000000000DA +:0480A30000000000D9 +:0480A40000000000D8 +:0480A50000000000D7 +:0480A60000000000D6 +:0480A70000000000D5 +:0480A80000000000D4 +:0480A90000000000D3 +:0480AA0000000000D2 +:0480AB0000000000D1 +:0480AC0000000000D0 +:0480AD0000000000CF +:0480AE0000000000CE +:0480AF0000000000CD +:0480B00000000000CC +:0480B10000000000CB +:0480B20000000000CA +:0480B30000000000C9 +:0480B40000000000C8 +:0480B50000000000C7 +:0480B60000000000C6 +:0480B70000000000C5 +:0480B80000000000C4 +:0480B90000000000C3 +:0480BA0000000000C2 +:0480BB0000000000C1 +:0480BC0000000000C0 +:0480BD0000000000BF +:0480BE0000000000BE +:0480BF0000000000BD +:0480C00000000000BC +:0480C10000000000BB +:0480C20000000000BA +:0480C30000000000B9 +:0480C40000000000B8 +:0480C50000000000B7 +:0480C60000000000B6 +:0480C70000000000B5 +:0480C80000000000B4 +:0480C90000000000B3 +:0480CA0000000000B2 +:0480CB0000000000B1 +:0480CC0000000000B0 +:0480CD0000000000AF +:0480CE0000000000AE +:0480CF0000000000AD +:0480D00000000000AC +:0480D10000000000AB +:0480D20000000000AA +:0480D30000000000A9 +:0480D40000000000A8 +:0480D50000000000A7 +:0480D60000000000A6 +:0480D70000000000A5 +:0480D80000000000A4 +:0480D90000000000A3 +:0480DA0000000000A2 +:0480DB0000000000A1 +:0480DC0000000000A0 +:0480DD00000000009F +:0480DE00000000009E +:0480DF00000000009D +:0480E000000000009C +:0480E100000000009B +:0480E200000000009A +:0480E3000000000099 +:0480E4000000000098 +:0480E5000000000097 +:0480E6000000000096 +:0480E7000000000095 +:0480E8000000000094 +:0480E9000000000093 +:0480EA000000000092 +:0480EB000000000091 +:0480EC000000000090 +:0480ED00000000008F +:0480EE00000000008E +:0480EF00000000008D +:0480F000000000008C +:0480F100000000008B +:0480F200000000008A +:0480F3000000000089 +:0480F4000000000088 +:0480F5000000000087 +:0480F6000000000086 +:0480F7000000000085 +:0480F8000000000084 +:0480F9000000000083 +:0480FA000000000082 +:0480FB000000000081 +:0480FC000000000080 +:0480FD00000000007F +:0480FE00000000007E +:0480FF00000000007D +:04810000000000007B +:04810100000000007A +:048102000000000079 +:048103000000000078 +:048104000000000077 +:048105000000000076 +:048106000000000075 +:048107000000000074 +:048108000000000073 +:048109000000000072 +:04810A000000000071 +:04810B000000000070 +:04810C00000000006F +:04810D00000000006E +:04810E00000000006D +:04810F00000000006C +:04811000000000006B +:04811100000000006A +:048112000000000069 +:048113000000000068 +:048114000000000067 +:048115000000000066 +:048116000000000065 +:048117000000000064 +:048118000000000063 +:048119000000000062 +:04811A000000000061 +:04811B000000000060 +:04811C00000000005F +:04811D00000000005E +:04811E00000000005D +:04811F00000000005C +:04812000000000005B +:04812100000000005A +:048122000000000059 +:048123000000000058 +:048124000000000057 +:048125000000000056 +:048126000000000055 +:048127000000000054 +:048128000000000053 +:048129000000000052 +:04812A000000000051 +:04812B000000000050 +:04812C00000000004F +:04812D00000000004E +:04812E00000000004D +:04812F00000000004C +:04813000000000004B +:04813100000000004A +:048132000000000049 +:048133000000000048 +:048134000000000047 +:048135000000000046 +:048136000000000045 +:048137000000000044 +:048138000000000043 +:048139000000000042 +:04813A000000000041 +:04813B000000000040 +:04813C00000000003F +:04813D00000000003E +:04813E00000000003D +:04813F00000000003C +:04814000000000003B +:04814100000000003A +:048142000000000039 +:048143000000000038 +:048144000000000037 +:048145000000000036 +:048146000000000035 +:048147000000000034 +:048148000000000033 +:048149000000000032 +:04814A000000000031 +:04814B000000000030 +:04814C00000000002F +:04814D00000000002E +:04814E00000000002D +:04814F00000000002C +:04815000000000002B +:04815100000000002A +:048152000000000029 +:048153000000000028 +:048154000000000027 +:048155000000000026 +:048156000000000025 +:048157000000000024 +:048158000000000023 +:048159000000000022 +:04815A000000000021 +:04815B000000000020 +:04815C00000000001F +:04815D00000000001E +:04815E00000000001D +:04815F00000000001C +:04816000000000001B +:04816100000000001A +:048162000000000019 +:048163000000000018 +:048164000000000017 +:048165000000000016 +:048166000000000015 +:048167000000000014 +:048168000000000013 +:048169000000000012 +:04816A000000000011 +:04816B000000000010 +:04816C00000000000F +:04816D00000000000E +:04816E00000000000D +:04816F00000000000C +:04817000000000000B +:04817100000000000A +:048172000000000009 +:048173000000000008 +:048174000000000007 +:048175000000000006 +:048176000000000005 +:048177000000000004 +:048178000000000003 +:048179000000000002 +:04817A000000000001 +:04817B000000000000 +:04817C0000000000FF +:04817D0000000000FE +:04817E0000000000FD +:04817F0000000000FC +:0481800000000000FB +:0481810000000000FA +:0481820000000000F9 +:0481830000000000F8 +:0481840000000000F7 +:0481850000000000F6 +:0481860000000000F5 +:0481870000000000F4 +:0481880000000000F3 +:0481890000000000F2 +:04818A0000000000F1 +:04818B0000000000F0 +:04818C0000000000EF +:04818D0000000000EE +:04818E0000000000ED +:04818F0000000000EC +:0481900000000000EB +:0481910000000000EA +:0481920000000000E9 +:0481930000000000E8 +:0481940000000000E7 +:0481950000000000E6 +:0481960000000000E5 +:0481970000000000E4 +:0481980000000000E3 +:0481990000000000E2 +:04819A0000000000E1 +:04819B0000000000E0 +:04819C0000000000DF +:04819D0000000000DE +:04819E0000000000DD +:04819F0000000000DC +:0481A00000000000DB +:0481A10000000000DA +:0481A20000000000D9 +:0481A30000000000D8 +:0481A40000000000D7 +:0481A50000000000D6 +:0481A60000000000D5 +:0481A70000000000D4 +:0481A80000000000D3 +:0481A90000000000D2 +:0481AA0000000000D1 +:0481AB0000000000D0 +:0481AC0000000000CF +:0481AD0000000000CE +:0481AE0000000000CD +:0481AF0000000000CC +:0481B00000000000CB +:0481B10000000000CA +:0481B20000000000C9 +:0481B30000000000C8 +:0481B40000000000C7 +:0481B50000000000C6 +:0481B60000000000C5 +:0481B70000000000C4 +:0481B80000000000C3 +:0481B90000000000C2 +:0481BA0000000000C1 +:0481BB0000000000C0 +:0481BC0000000000BF +:0481BD0000000000BE +:0481BE0000000000BD +:0481BF0000000000BC +:0481C00000000000BB +:0481C10000000000BA +:0481C20000000000B9 +:0481C30000000000B8 +:0481C40000000000B7 +:0481C50000000000B6 +:0481C60000000000B5 +:0481C70000000000B4 +:0481C80000000000B3 +:0481C90000000000B2 +:0481CA0000000000B1 +:0481CB0000000000B0 +:0481CC0000000000AF +:0481CD0000000000AE +:0481CE0000000000AD +:0481CF0000000000AC +:0481D00000000000AB +:0481D10000000000AA +:0481D20000000000A9 +:0481D30000000000A8 +:0481D40000000000A7 +:0481D50000000000A6 +:0481D60000000000A5 +:0481D70000000000A4 +:0481D80000000000A3 +:0481D90000000000A2 +:0481DA0000000000A1 +:0481DB0000000000A0 +:0481DC00000000009F +:0481DD00000000009E +:0481DE00000000009D +:0481DF00000000009C +:0481E000000000009B +:0481E100000000009A +:0481E2000000000099 +:0481E3000000000098 +:0481E4000000000097 +:0481E5000000000096 +:0481E6000000000095 +:0481E7000000000094 +:0481E8000000000093 +:0481E9000000000092 +:0481EA000000000091 +:0481EB000000000090 +:0481EC00000000008F +:0481ED00000000008E +:0481EE00000000008D +:0481EF00000000008C +:0481F000000000008B +:0481F100000000008A +:0481F2000000000089 +:0481F3000000000088 +:0481F4000000000087 +:0481F5000000000086 +:0481F6000000000085 +:0481F7000000000084 +:0481F8000000000083 +:0481F9000000000082 +:0481FA000000000081 +:0481FB000000000080 +:0481FC00000000007F +:0481FD00000000007E +:0481FE00000000007D +:0481FF00000000007C +:04820000000000007A +:048201000000000079 +:048202000000000078 +:048203000000000077 +:048204000000000076 +:048205000000000075 +:048206000000000074 +:048207000000000073 +:048208000000000072 +:048209000000000071 +:04820A000000000070 +:04820B00000000006F +:04820C00000000006E +:04820D00000000006D +:04820E00000000006C +:04820F00000000006B +:04821000000000006A +:048211000000000069 +:048212000000000068 +:048213000000000067 +:048214000000000066 +:048215000000000065 +:048216000000000064 +:048217000000000063 +:048218000000000062 +:048219000000000061 +:04821A000000000060 +:04821B00000000005F +:04821C00000000005E +:04821D00000000005D +:04821E00000000005C +:04821F00000000005B +:04822000000000005A +:048221000000000059 +:048222000000000058 +:048223000000000057 +:048224000000000056 +:048225000000000055 +:048226000000000054 +:048227000000000053 +:048228000000000052 +:048229000000000051 +:04822A000000000050 +:04822B00000000004F +:04822C00000000004E +:04822D00000000004D +:04822E00000000004C +:04822F00000000004B +:04823000000000004A +:048231000000000049 +:048232000000000048 +:048233000000000047 +:048234000000000046 +:048235000000000045 +:048236000000000044 +:048237000000000043 +:048238000000000042 +:048239000000000041 +:04823A000000000040 +:04823B00000000003F +:04823C00000000003E +:04823D00000000003D +:04823E00000000003C +:04823F00000000003B +:04824000000000003A +:048241000000000039 +:048242000000000038 +:048243000000000037 +:048244000000000036 +:048245000000000035 +:048246000000000034 +:048247000000000033 +:048248000000000032 +:048249000000000031 +:04824A000000000030 +:04824B00000000002F +:04824C00000000002E +:04824D00000000002D +:04824E00000000002C +:04824F00000000002B +:04825000000000002A +:048251000000000029 +:048252000000000028 +:048253000000000027 +:048254000000000026 +:048255000000000025 +:048256000000000024 +:048257000000000023 +:048258000000000022 +:048259000000000021 +:04825A000000000020 +:04825B00000000001F +:04825C00000000001E +:04825D00000000001D +:04825E00000000001C +:04825F00000000001B +:04826000000000001A +:048261000000000019 +:048262000000000018 +:048263000000000017 +:048264000000000016 +:048265000000000015 +:048266000000000014 +:048267000000000013 +:048268000000000012 +:048269000000000011 +:04826A000000000010 +:04826B00000000000F +:04826C00000000000E +:04826D00000000000D +:04826E00000000000C +:04826F00000000000B +:04827000000000000A +:048271000000000009 +:048272000000000008 +:048273000000000007 +:048274000000000006 +:048275000000000005 +:048276000000000004 +:048277000000000003 +:048278000000000002 +:048279000000000001 +:04827A000000000000 +:04827B0000000000FF +:04827C0000000000FE +:04827D0000000000FD +:04827E0000000000FC +:04827F0000000000FB +:0482800000000000FA +:0482810000000000F9 +:0482820000000000F8 +:0482830000000000F7 +:0482840000000000F6 +:0482850000000000F5 +:0482860000000000F4 +:0482870000000000F3 +:0482880000000000F2 +:0482890000000000F1 +:04828A0000000000F0 +:04828B0000000000EF +:04828C0000000000EE +:04828D0000000000ED +:04828E0000000000EC +:04828F0000000000EB +:0482900000000000EA +:0482910000000000E9 +:0482920000000000E8 +:0482930000000000E7 +:0482940000000000E6 +:0482950000000000E5 +:0482960000000000E4 +:0482970000000000E3 +:0482980000000000E2 +:0482990000000000E1 +:04829A0000000000E0 +:04829B0000000000DF +:04829C0000000000DE +:04829D0000000000DD +:04829E0000000000DC +:04829F0000000000DB +:0482A00000000000DA +:0482A10000000000D9 +:0482A20000000000D8 +:0482A30000000000D7 +:0482A40000000000D6 +:0482A50000000000D5 +:0482A60000000000D4 +:0482A70000000000D3 +:0482A80000000000D2 +:0482A90000000000D1 +:0482AA0000000000D0 +:0482AB0000000000CF +:0482AC0000000000CE +:0482AD0000000000CD +:0482AE0000000000CC +:0482AF0000000000CB +:0482B00000000000CA +:0482B10000000000C9 +:0482B20000000000C8 +:0482B30000000000C7 +:0482B40000000000C6 +:0482B50000000000C5 +:0482B60000000000C4 +:0482B70000000000C3 +:0482B80000000000C2 +:0482B90000000000C1 +:0482BA0000000000C0 +:0482BB0000000000BF +:0482BC0000000000BE +:0482BD0000000000BD +:0482BE0000000000BC +:0482BF0000000000BB +:0482C00000000000BA +:0482C10000000000B9 +:0482C20000000000B8 +:0482C30000000000B7 +:0482C40000000000B6 +:0482C50000000000B5 +:0482C60000000000B4 +:0482C70000000000B3 +:0482C80000000000B2 +:0482C90000000000B1 +:0482CA0000000000B0 +:0482CB0000000000AF +:0482CC0000000000AE +:0482CD0000000000AD +:0482CE0000000000AC +:0482CF0000000000AB +:0482D00000000000AA +:0482D10000000000A9 +:0482D20000000000A8 +:0482D30000000000A7 +:0482D40000000000A6 +:0482D50000000000A5 +:0482D60000000000A4 +:0482D70000000000A3 +:0482D80000000000A2 +:0482D90000000000A1 +:0482DA0000000000A0 +:0482DB00000000009F +:0482DC00000000009E +:0482DD00000000009D +:0482DE00000000009C +:0482DF00000000009B +:0482E000000000009A +:0482E1000000000099 +:0482E2000000000098 +:0482E3000000000097 +:0482E4000000000096 +:0482E5000000000095 +:0482E6000000000094 +:0482E7000000000093 +:0482E8000000000092 +:0482E9000000000091 +:0482EA000000000090 +:0482EB00000000008F +:0482EC00000000008E +:0482ED00000000008D +:0482EE00000000008C +:0482EF00000000008B +:0482F000000000008A +:0482F1000000000089 +:0482F2000000000088 +:0482F3000000000087 +:0482F4000000000086 +:0482F5000000000085 +:0482F6000000000084 +:0482F7000000000083 +:0482F8000000000082 +:0482F9000000000081 +:0482FA000000000080 +:0482FB00000000007F +:0482FC00000000007E +:0482FD00000000007D +:0482FE00000000007C +:0482FF00000000007B +:048300000000000079 +:048301000000000078 +:048302000000000077 +:048303000000000076 +:048304000000000075 +:048305000000000074 +:048306000000000073 +:048307000000000072 +:048308000000000071 +:048309000000000070 +:04830A00000000006F +:04830B00000000006E +:04830C00000000006D +:04830D00000000006C +:04830E00000000006B +:04830F00000000006A +:048310000000000069 +:048311000000000068 +:048312000000000067 +:048313000000000066 +:048314000000000065 +:048315000000000064 +:048316000000000063 +:048317000000000062 +:048318000000000061 +:048319000000000060 +:04831A00000000005F +:04831B00000000005E +:04831C00000000005D +:04831D00000000005C +:04831E00000000005B +:04831F00000000005A +:048320000000000059 +:048321000000000058 +:048322000000000057 +:048323000000000056 +:048324000000000055 +:048325000000000054 +:048326000000000053 +:048327000000000052 +:048328000000000051 +:048329000000000050 +:04832A00000000004F +:04832B00000000004E +:04832C00000000004D +:04832D00000000004C +:04832E00000000004B +:04832F00000000004A +:048330000000000049 +:048331000000000048 +:048332000000000047 +:048333000000000046 +:048334000000000045 +:048335000000000044 +:048336000000000043 +:048337000000000042 +:048338000000000041 +:048339000000000040 +:04833A00000000003F +:04833B00000000003E +:04833C00000000003D +:04833D00000000003C +:04833E00000000003B +:04833F00000000003A +:048340000000000039 +:048341000000000038 +:048342000000000037 +:048343000000000036 +:048344000000000035 +:048345000000000034 +:048346000000000033 +:048347000000000032 +:048348000000000031 +:048349000000000030 +:04834A00000000002F +:04834B00000000002E +:04834C00000000002D +:04834D00000000002C +:04834E00000000002B +:04834F00000000002A +:048350000000000029 +:048351000000000028 +:048352000000000027 +:048353000000000026 +:048354000000000025 +:048355000000000024 +:048356000000000023 +:048357000000000022 +:048358000000000021 +:048359000000000020 +:04835A00000000001F +:04835B00000000001E +:04835C00000000001D +:04835D00000000001C +:04835E00000000001B +:04835F00000000001A +:048360000000000019 +:048361000000000018 +:048362000000000017 +:048363000000000016 +:048364000000000015 +:048365000000000014 +:048366000000000013 +:048367000000000012 +:048368000000000011 +:048369000000000010 +:04836A00000000000F +:04836B00000000000E +:04836C00000000000D +:04836D00000000000C +:04836E00000000000B +:04836F00000000000A +:048370000000000009 +:048371000000000008 +:048372000000000007 +:048373000000000006 +:048374000000000005 +:048375000000000004 +:048376000000000003 +:048377000000000002 +:048378000000000001 +:048379000000000000 +:04837A0000000000FF +:04837B0000000000FE +:04837C0000000000FD +:04837D0000000000FC +:04837E0000000000FB +:04837F0000000000FA +:0483800000000000F9 +:0483810000000000F8 +:0483820000000000F7 +:0483830000000000F6 +:0483840000000000F5 +:0483850000000000F4 +:0483860000000000F3 +:0483870000000000F2 +:0483880000000000F1 +:0483890000000000F0 +:04838A0000000000EF +:04838B0000000000EE +:04838C0000000000ED +:04838D0000000000EC +:04838E0000000000EB +:04838F0000000000EA +:0483900000000000E9 +:0483910000000000E8 +:0483920000000000E7 +:0483930000000000E6 +:0483940000000000E5 +:0483950000000000E4 +:0483960000000000E3 +:0483970000000000E2 +:0483980000000000E1 +:0483990000000000E0 +:04839A0000000000DF +:04839B0000000000DE +:04839C0000000000DD +:04839D0000000000DC +:04839E0000000000DB +:04839F0000000000DA +:0483A00000000000D9 +:0483A10000000000D8 +:0483A20000000000D7 +:0483A30000000000D6 +:0483A40000000000D5 +:0483A50000000000D4 +:0483A60000000000D3 +:0483A70000000000D2 +:0483A80000000000D1 +:0483A90000000000D0 +:0483AA0000000000CF +:0483AB0000000000CE +:0483AC0000000000CD +:0483AD0000000000CC +:0483AE0000000000CB +:0483AF0000000000CA +:0483B00000000000C9 +:0483B10000000000C8 +:0483B20000000000C7 +:0483B30000000000C6 +:0483B40000000000C5 +:0483B50000000000C4 +:0483B60000000000C3 +:0483B70000000000C2 +:0483B80000000000C1 +:0483B90000000000C0 +:0483BA0000000000BF +:0483BB0000000000BE +:0483BC0000000000BD +:0483BD0000000000BC +:0483BE0000000000BB +:0483BF0000000000BA +:0483C00000000000B9 +:0483C10000000000B8 +:0483C20000000000B7 +:0483C30000000000B6 +:0483C40000000000B5 +:0483C50000000000B4 +:0483C60000000000B3 +:0483C70000000000B2 +:0483C80000000000B1 +:0483C90000000000B0 +:0483CA0000000000AF +:0483CB0000000000AE +:0483CC0000000000AD +:0483CD0000000000AC +:0483CE0000000000AB +:0483CF0000000000AA +:0483D00000000000A9 +:0483D10000000000A8 +:0483D20000000000A7 +:0483D30000000000A6 +:0483D40000000000A5 +:0483D50000000000A4 +:0483D60000000000A3 +:0483D70000000000A2 +:0483D80000000000A1 +:0483D90000000000A0 +:0483DA00000000009F +:0483DB00000000009E +:0483DC00000000009D +:0483DD00000000009C +:0483DE00000000009B +:0483DF00000000009A +:0483E0000000000099 +:0483E1000000000098 +:0483E2000000000097 +:0483E3000000000096 +:0483E4000000000095 +:0483E5000000000094 +:0483E6000000000093 +:0483E7000000000092 +:0483E8000000000091 +:0483E9000000000090 +:0483EA00000000008F +:0483EB00000000008E +:0483EC00000000008D +:0483ED00000000008C +:0483EE00000000008B +:0483EF00000000008A +:0483F0000000000089 +:0483F1000000000088 +:0483F2000000000087 +:0483F3000000000086 +:0483F4000000000085 +:0483F5000000000084 +:0483F6000000000083 +:0483F7000000000082 +:0483F8000000000081 +:0483F9000000000080 +:0483FA00000000007F +:0483FB00000000007E +:0483FC00000000007D +:0483FD00000000007C +:0483FE00000000007B +:0483FF00000000007A +:048400000000000078 +:048401000000000077 +:048402000000000076 +:048403000000000075 +:048404000000000074 +:048405000000000073 +:048406000000000072 +:048407000000000071 +:048408000000000070 +:04840900000000006F +:04840A00000000006E +:04840B00000000006D +:04840C00000000006C +:04840D00000000006B +:04840E00000000006A +:04840F000000000069 +:048410000000000068 +:048411000000000067 +:048412000000000066 +:048413000000000065 +:048414000000000064 +:048415000000000063 +:048416000000000062 +:048417000000000061 +:048418000000000060 +:04841900000000005F +:04841A00000000005E +:04841B00000000005D +:04841C00000000005C +:04841D00000000005B +:04841E00000000005A +:04841F000000000059 +:048420000000000058 +:048421000000000057 +:048422000000000056 +:048423000000000055 +:048424000000000054 +:048425000000000053 +:048426000000000052 +:048427000000000051 +:048428000000000050 +:04842900000000004F +:04842A00000000004E +:04842B00000000004D +:04842C00000000004C +:04842D00000000004B +:04842E00000000004A +:04842F000000000049 +:048430000000000048 +:048431000000000047 +:048432000000000046 +:048433000000000045 +:048434000000000044 +:048435000000000043 +:048436000000000042 +:048437000000000041 +:048438000000000040 +:04843900000000003F +:04843A00000000003E +:04843B00000000003D +:04843C00000000003C +:04843D00000000003B +:04843E00000000003A +:04843F000000000039 +:048440000000000038 +:048441000000000037 +:048442000000000036 +:048443000000000035 +:048444000000000034 +:048445000000000033 +:048446000000000032 +:048447000000000031 +:048448000000000030 +:04844900000000002F +:04844A00000000002E +:04844B00000000002D +:04844C00000000002C +:04844D00000000002B +:04844E00000000002A +:04844F000000000029 +:048450000000000028 +:048451000000000027 +:048452000000000026 +:048453000000000025 +:048454000000000024 +:048455000000000023 +:048456000000000022 +:048457000000000021 +:048458000000000020 +:04845900000000001F +:04845A00000000001E +:04845B00000000001D +:04845C00000000001C +:04845D00000000001B +:04845E00000000001A +:04845F000000000019 +:048460000000000018 +:048461000000000017 +:048462000000000016 +:048463000000000015 +:048464000000000014 +:048465000000000013 +:048466000000000012 +:048467000000000011 +:048468000000000010 +:04846900000000000F +:04846A00000000000E +:04846B00000000000D +:04846C00000000000C +:04846D00000000000B +:04846E00000000000A +:04846F000000000009 +:048470000000000008 +:048471000000000007 +:048472000000000006 +:048473000000000005 +:048474000000000004 +:048475000000000003 +:048476000000000002 +:048477000000000001 +:048478000000000000 +:0484790000000000FF +:04847A0000000000FE +:04847B0000000000FD +:04847C0000000000FC +:04847D0000000000FB +:04847E0000000000FA +:04847F0000000000F9 +:0484800000000000F8 +:0484810000000000F7 +:0484820000000000F6 +:0484830000000000F5 +:0484840000000000F4 +:0484850000000000F3 +:0484860000000000F2 +:0484870000000000F1 +:0484880000000000F0 +:0484890000000000EF +:04848A0000000000EE +:04848B0000000000ED +:04848C0000000000EC +:04848D0000000000EB +:04848E0000000000EA +:04848F0000000000E9 +:0484900000000000E8 +:0484910000000000E7 +:0484920000000000E6 +:0484930000000000E5 +:0484940000000000E4 +:0484950000000000E3 +:0484960000000000E2 +:0484970000000000E1 +:0484980000000000E0 +:0484990000000000DF +:04849A0000000000DE +:04849B0000000000DD +:04849C0000000000DC +:04849D0000000000DB +:04849E0000000000DA +:04849F0000000000D9 +:0484A00000000000D8 +:0484A10000000000D7 +:0484A20000000000D6 +:0484A30000000000D5 +:0484A40000000000D4 +:0484A50000000000D3 +:0484A60000000000D2 +:0484A70000000000D1 +:0484A80000000000D0 +:0484A90000000000CF +:0484AA0000000000CE +:0484AB0000000000CD +:0484AC0000000000CC +:0484AD0000000000CB +:0484AE0000000000CA +:0484AF0000000000C9 +:0484B00000000000C8 +:0484B10000000000C7 +:0484B20000000000C6 +:0484B30000000000C5 +:0484B40000000000C4 +:0484B50000000000C3 +:0484B60000000000C2 +:0484B70000000000C1 +:0484B80000000000C0 +:0484B90000000000BF +:0484BA0000000000BE +:0484BB0000000000BD +:0484BC0000000000BC +:0484BD0000000000BB +:0484BE0000000000BA +:0484BF0000000000B9 +:0484C00000000000B8 +:0484C10000000000B7 +:0484C20000000000B6 +:0484C30000000000B5 +:0484C40000000000B4 +:0484C50000000000B3 +:0484C60000000000B2 +:0484C70000000000B1 +:0484C80000000000B0 +:0484C90000000000AF +:0484CA0000000000AE +:0484CB0000000000AD +:0484CC0000000000AC +:0484CD0000000000AB +:0484CE0000000000AA +:0484CF0000000000A9 +:0484D00000000000A8 +:0484D10000000000A7 +:0484D20000000000A6 +:0484D30000000000A5 +:0484D40000000000A4 +:0484D50000000000A3 +:0484D60000000000A2 +:0484D70000000000A1 +:0484D80000000000A0 +:0484D900000000009F +:0484DA00000000009E +:0484DB00000000009D +:0484DC00000000009C +:0484DD00000000009B +:0484DE00000000009A +:0484DF000000000099 +:0484E0000000000098 +:0484E1000000000097 +:0484E2000000000096 +:0484E3000000000095 +:0484E4000000000094 +:0484E5000000000093 +:0484E6000000000092 +:0484E7000000000091 +:0484E8000000000090 +:0484E900000000008F +:0484EA00000000008E +:0484EB00000000008D +:0484EC00000000008C +:0484ED00000000008B +:0484EE00000000008A +:0484EF000000000089 +:0484F0000000000088 +:0484F1000000000087 +:0484F2000000000086 +:0484F3000000000085 +:0484F4000000000084 +:0484F5000000000083 +:0484F6000000000082 +:0484F7000000000081 +:0484F8000000000080 +:0484F900000000007F +:0484FA00000000007E +:0484FB00000000007D +:0484FC00000000007C +:0484FD00000000007B +:0484FE00000000007A +:0484FF000000000079 +:048500000000000077 +:048501000000000076 +:048502000000000075 +:048503000000000074 +:048504000000000073 +:048505000000000072 +:048506000000000071 +:048507000000000070 +:04850800000000006F +:04850900000000006E +:04850A00000000006D +:04850B00000000006C +:04850C00000000006B +:04850D00000000006A +:04850E000000000069 +:04850F000000000068 +:048510000000000067 +:048511000000000066 +:048512000000000065 +:048513000000000064 +:048514000000000063 +:048515000000000062 +:048516000000000061 +:048517000000000060 +:04851800000000005F +:04851900000000005E +:04851A00000000005D +:04851B00000000005C +:04851C00000000005B +:04851D00000000005A +:04851E000000000059 +:04851F000000000058 +:048520000000000057 +:048521000000000056 +:048522000000000055 +:048523000000000054 +:048524000000000053 +:048525000000000052 +:048526000000000051 +:048527000000000050 +:04852800000000004F +:04852900000000004E +:04852A00000000004D +:04852B00000000004C +:04852C00000000004B +:04852D00000000004A +:04852E000000000049 +:04852F000000000048 +:048530000000000047 +:048531000000000046 +:048532000000000045 +:048533000000000044 +:048534000000000043 +:048535000000000042 +:048536000000000041 +:048537000000000040 +:04853800000000003F +:04853900000000003E +:04853A00000000003D +:04853B00000000003C +:04853C00000000003B +:04853D00000000003A +:04853E000000000039 +:04853F000000000038 +:048540000000000037 +:048541000000000036 +:048542000000000035 +:048543000000000034 +:048544000000000033 +:048545000000000032 +:048546000000000031 +:048547000000000030 +:04854800000000002F +:04854900000000002E +:04854A00000000002D +:04854B00000000002C +:04854C00000000002B +:04854D00000000002A +:04854E000000000029 +:04854F000000000028 +:048550000000000027 +:048551000000000026 +:048552000000000025 +:048553000000000024 +:048554000000000023 +:048555000000000022 +:048556000000000021 +:048557000000000020 +:04855800000000001F +:04855900000000001E +:04855A00000000001D +:04855B00000000001C +:04855C00000000001B +:04855D00000000001A +:04855E000000000019 +:04855F000000000018 +:048560000000000017 +:048561000000000016 +:048562000000000015 +:048563000000000014 +:048564000000000013 +:048565000000000012 +:048566000000000011 +:048567000000000010 +:04856800000000000F +:04856900000000000E +:04856A00000000000D +:04856B00000000000C +:04856C00000000000B +:04856D00000000000A +:04856E000000000009 +:04856F000000000008 +:048570000000000007 +:048571000000000006 +:048572000000000005 +:048573000000000004 +:048574000000000003 +:048575000000000002 +:048576000000000001 +:048577000000000000 +:0485780000000000FF +:0485790000000000FE +:04857A0000000000FD +:04857B0000000000FC +:04857C0000000000FB +:04857D0000000000FA +:04857E0000000000F9 +:04857F0000000000F8 +:0485800000000000F7 +:0485810000000000F6 +:0485820000000000F5 +:0485830000000000F4 +:0485840000000000F3 +:0485850000000000F2 +:0485860000000000F1 +:0485870000000000F0 +:0485880000000000EF +:0485890000000000EE +:04858A0000000000ED +:04858B0000000000EC +:04858C0000000000EB +:04858D0000000000EA +:04858E0000000000E9 +:04858F0000000000E8 +:0485900000000000E7 +:0485910000000000E6 +:0485920000000000E5 +:0485930000000000E4 +:0485940000000000E3 +:0485950000000000E2 +:0485960000000000E1 +:0485970000000000E0 +:0485980000000000DF +:0485990000000000DE +:04859A0000000000DD +:04859B0000000000DC +:04859C0000000000DB +:04859D0000000000DA +:04859E0000000000D9 +:04859F0000000000D8 +:0485A00000000000D7 +:0485A10000000000D6 +:0485A20000000000D5 +:0485A30000000000D4 +:0485A40000000000D3 +:0485A50000000000D2 +:0485A60000000000D1 +:0485A70000000000D0 +:0485A80000000000CF +:0485A90000000000CE +:0485AA0000000000CD +:0485AB0000000000CC +:0485AC0000000000CB +:0485AD0000000000CA +:0485AE0000000000C9 +:0485AF0000000000C8 +:0485B00000000000C7 +:0485B10000000000C6 +:0485B20000000000C5 +:0485B30000000000C4 +:0485B40000000000C3 +:0485B50000000000C2 +:0485B60000000000C1 +:0485B70000000000C0 +:0485B80000000000BF +:0485B90000000000BE +:0485BA0000000000BD +:0485BB0000000000BC +:0485BC0000000000BB +:0485BD0000000000BA +:0485BE0000000000B9 +:0485BF0000000000B8 +:0485C00000000000B7 +:0485C10000000000B6 +:0485C20000000000B5 +:0485C30000000000B4 +:0485C40000000000B3 +:0485C50000000000B2 +:0485C60000000000B1 +:0485C70000000000B0 +:0485C80000000000AF +:0485C90000000000AE +:0485CA0000000000AD +:0485CB0000000000AC +:0485CC0000000000AB +:0485CD0000000000AA +:0485CE0000000000A9 +:0485CF0000000000A8 +:0485D00000000000A7 +:0485D10000000000A6 +:0485D20000000000A5 +:0485D30000000000A4 +:0485D40000000000A3 +:0485D50000000000A2 +:0485D60000000000A1 +:0485D70000000000A0 +:0485D800000000009F +:0485D900000000009E +:0485DA00000000009D +:0485DB00000000009C +:0485DC00000000009B +:0485DD00000000009A +:0485DE000000000099 +:0485DF000000000098 +:0485E0000000000097 +:0485E1000000000096 +:0485E2000000000095 +:0485E3000000000094 +:0485E4000000000093 +:0485E5000000000092 +:0485E6000000000091 +:0485E7000000000090 +:0485E800000000008F +:0485E900000000008E +:0485EA00000000008D +:0485EB00000000008C +:0485EC00000000008B +:0485ED00000000008A +:0485EE000000000089 +:0485EF000000000088 +:0485F0000000000087 +:0485F1000000000086 +:0485F2000000000085 +:0485F3000000000084 +:0485F4000000000083 +:0485F5000000000082 +:0485F6000000000081 +:0485F7000000000080 +:0485F800000000007F +:0485F900000000007E +:0485FA00000000007D +:0485FB00000000007C +:0485FC00000000007B +:0485FD00000000007A +:0485FE000000000079 +:0485FF000000000078 +:048600000000000076 +:048601000000000075 +:048602000000000074 +:048603000000000073 +:048604000000000072 +:048605000000000071 +:048606000000000070 +:04860700000000006F +:04860800000000006E +:04860900000000006D +:04860A00000000006C +:04860B00000000006B +:04860C00000000006A +:04860D000000000069 +:04860E000000000068 +:04860F000000000067 +:048610000000000066 +:048611000000000065 +:048612000000000064 +:048613000000000063 +:048614000000000062 +:048615000000000061 +:048616000000000060 +:04861700000000005F +:04861800000000005E +:04861900000000005D +:04861A00000000005C +:04861B00000000005B +:04861C00000000005A +:04861D000000000059 +:04861E000000000058 +:04861F000000000057 +:048620000000000056 +:048621000000000055 +:048622000000000054 +:048623000000000053 +:048624000000000052 +:048625000000000051 +:048626000000000050 +:04862700000000004F +:04862800000000004E +:04862900000000004D +:04862A00000000004C +:04862B00000000004B +:04862C00000000004A +:04862D000000000049 +:04862E000000000048 +:04862F000000000047 +:048630000000000046 +:048631000000000045 +:048632000000000044 +:048633000000000043 +:048634000000000042 +:048635000000000041 +:048636000000000040 +:04863700000000003F +:04863800000000003E +:04863900000000003D +:04863A00000000003C +:04863B00000000003B +:04863C00000000003A +:04863D000000000039 +:04863E000000000038 +:04863F000000000037 +:048640000000000036 +:048641000000000035 +:048642000000000034 +:048643000000000033 +:048644000000000032 +:048645000000000031 +:048646000000000030 +:04864700000000002F +:04864800000000002E +:04864900000000002D +:04864A00000000002C +:04864B00000000002B +:04864C00000000002A +:04864D000000000029 +:04864E000000000028 +:04864F000000000027 +:048650000000000026 +:048651000000000025 +:048652000000000024 +:048653000000000023 +:048654000000000022 +:048655000000000021 +:048656000000000020 +:04865700000000001F +:04865800000000001E +:04865900000000001D +:04865A00000000001C +:04865B00000000001B +:04865C00000000001A +:04865D000000000019 +:04865E000000000018 +:04865F000000000017 +:048660000000000016 +:048661000000000015 +:048662000000000014 +:048663000000000013 +:048664000000000012 +:048665000000000011 +:048666000000000010 +:04866700000000000F +:04866800000000000E +:04866900000000000D +:04866A00000000000C +:04866B00000000000B +:04866C00000000000A +:04866D000000000009 +:04866E000000000008 +:04866F000000000007 +:048670000000000006 +:048671000000000005 +:048672000000000004 +:048673000000000003 +:048674000000000002 +:048675000000000001 +:048676000000000000 +:0486770000000000FF +:0486780000000000FE +:0486790000000000FD +:04867A0000000000FC +:04867B0000000000FB +:04867C0000000000FA +:04867D0000000000F9 +:04867E0000000000F8 +:04867F0000000000F7 +:0486800000000000F6 +:0486810000000000F5 +:0486820000000000F4 +:0486830000000000F3 +:0486840000000000F2 +:0486850000000000F1 +:0486860000000000F0 +:0486870000000000EF +:0486880000000000EE +:0486890000000000ED +:04868A0000000000EC +:04868B0000000000EB +:04868C0000000000EA +:04868D0000000000E9 +:04868E0000000000E8 +:04868F0000000000E7 +:0486900000000000E6 +:0486910000000000E5 +:0486920000000000E4 +:0486930000000000E3 +:0486940000000000E2 +:0486950000000000E1 +:0486960000000000E0 +:0486970000000000DF +:0486980000000000DE +:0486990000000000DD +:04869A0000000000DC +:04869B0000000000DB +:04869C0000000000DA +:04869D0000000000D9 +:04869E0000000000D8 +:04869F0000000000D7 +:0486A00000000000D6 +:0486A10000000000D5 +:0486A20000000000D4 +:0486A30000000000D3 +:0486A40000000000D2 +:0486A50000000000D1 +:0486A60000000000D0 +:0486A70000000000CF +:0486A80000000000CE +:0486A90000000000CD +:0486AA0000000000CC +:0486AB0000000000CB +:0486AC0000000000CA +:0486AD0000000000C9 +:0486AE0000000000C8 +:0486AF0000000000C7 +:0486B00000000000C6 +:0486B10000000000C5 +:0486B20000000000C4 +:0486B30000000000C3 +:0486B40000000000C2 +:0486B50000000000C1 +:0486B60000000000C0 +:0486B70000000000BF +:0486B80000000000BE +:0486B90000000000BD +:0486BA0000000000BC +:0486BB0000000000BB +:0486BC0000000000BA +:0486BD0000000000B9 +:0486BE0000000000B8 +:0486BF0000000000B7 +:0486C00000000000B6 +:0486C10000000000B5 +:0486C20000000000B4 +:0486C30000000000B3 +:0486C40000000000B2 +:0486C50000000000B1 +:0486C60000000000B0 +:0486C70000000000AF +:0486C80000000000AE +:0486C90000000000AD +:0486CA0000000000AC +:0486CB0000000000AB +:0486CC0000000000AA +:0486CD0000000000A9 +:0486CE0000000000A8 +:0486CF0000000000A7 +:0486D00000000000A6 +:0486D10000000000A5 +:0486D20000000000A4 +:0486D30000000000A3 +:0486D40000000000A2 +:0486D50000000000A1 +:0486D60000000000A0 +:0486D700000000009F +:0486D800000000009E +:0486D900000000009D +:0486DA00000000009C +:0486DB00000000009B +:0486DC00000000009A +:0486DD000000000099 +:0486DE000000000098 +:0486DF000000000097 +:0486E0000000000096 +:0486E1000000000095 +:0486E2000000000094 +:0486E3000000000093 +:0486E4000000000092 +:0486E5000000000091 +:0486E6000000000090 +:0486E700000000008F +:0486E800000000008E +:0486E900000000008D +:0486EA00000000008C +:0486EB00000000008B +:0486EC00000000008A +:0486ED000000000089 +:0486EE000000000088 +:0486EF000000000087 +:0486F0000000000086 +:0486F1000000000085 +:0486F2000000000084 +:0486F3000000000083 +:0486F4000000000082 +:0486F5000000000081 +:0486F6000000000080 +:0486F700000000007F +:0486F800000000007E +:0486F900000000007D +:0486FA00000000007C +:0486FB00000000007B +:0486FC00000000007A +:0486FD000000000079 +:0486FE000000000078 +:0486FF000000000077 +:048700000000000075 +:048701000000000074 +:048702000000000073 +:048703000000000072 +:048704000000000071 +:048705000000000070 +:04870600000000006F +:04870700000000006E +:04870800000000006D +:04870900000000006C +:04870A00000000006B +:04870B00000000006A +:04870C000000000069 +:04870D000000000068 +:04870E000000000067 +:04870F000000000066 +:048710000000000065 +:048711000000000064 +:048712000000000063 +:048713000000000062 +:048714000000000061 +:048715000000000060 +:04871600000000005F +:04871700000000005E +:04871800000000005D +:04871900000000005C +:04871A00000000005B +:04871B00000000005A +:04871C000000000059 +:04871D000000000058 +:04871E000000000057 +:04871F000000000056 +:048720000000000055 +:048721000000000054 +:048722000000000053 +:048723000000000052 +:048724000000000051 +:048725000000000050 +:04872600000000004F +:04872700000000004E +:04872800000000004D +:04872900000000004C +:04872A00000000004B +:04872B00000000004A +:04872C000000000049 +:04872D000000000048 +:04872E000000000047 +:04872F000000000046 +:048730000000000045 +:048731000000000044 +:048732000000000043 +:048733000000000042 +:048734000000000041 +:048735000000000040 +:04873600000000003F +:04873700000000003E +:04873800000000003D +:04873900000000003C +:04873A00000000003B +:04873B00000000003A +:04873C000000000039 +:04873D000000000038 +:04873E000000000037 +:04873F000000000036 +:048740000000000035 +:048741000000000034 +:048742000000000033 +:048743000000000032 +:048744000000000031 +:048745000000000030 +:04874600000000002F +:04874700000000002E +:04874800000000002D +:04874900000000002C +:04874A00000000002B +:04874B00000000002A +:04874C000000000029 +:04874D000000000028 +:04874E000000000027 +:04874F000000000026 +:048750000000000025 +:048751000000000024 +:048752000000000023 +:048753000000000022 +:048754000000000021 +:048755000000000020 +:04875600000000001F +:04875700000000001E +:04875800000000001D +:04875900000000001C +:04875A00000000001B +:04875B00000000001A +:04875C000000000019 +:04875D000000000018 +:04875E000000000017 +:04875F000000000016 +:048760000000000015 +:048761000000000014 +:048762000000000013 +:048763000000000012 +:048764000000000011 +:048765000000000010 +:04876600000000000F +:04876700000000000E +:04876800000000000D +:04876900000000000C +:04876A00000000000B +:04876B00000000000A +:04876C000000000009 +:04876D000000000008 +:04876E000000000007 +:04876F000000000006 +:048770000000000005 +:048771000000000004 +:048772000000000003 +:048773000000000002 +:048774000000000001 +:048775000000000000 +:0487760000000000FF +:0487770000000000FE +:0487780000000000FD +:0487790000000000FC +:04877A0000000000FB +:04877B0000000000FA +:04877C0000000000F9 +:04877D0000000000F8 +:04877E0000000000F7 +:04877F0000000000F6 +:0487800000000000F5 +:0487810000000000F4 +:0487820000000000F3 +:0487830000000000F2 +:0487840000000000F1 +:0487850000000000F0 +:0487860000000000EF +:0487870000000000EE +:0487880000000000ED +:0487890000000000EC +:04878A0000000000EB +:04878B0000000000EA +:04878C0000000000E9 +:04878D0000000000E8 +:04878E0000000000E7 +:04878F0000000000E6 +:0487900000000000E5 +:0487910000000000E4 +:0487920000000000E3 +:0487930000000000E2 +:0487940000000000E1 +:0487950000000000E0 +:0487960000000000DF +:0487970000000000DE +:0487980000000000DD +:0487990000000000DC +:04879A0000000000DB +:04879B0000000000DA +:04879C0000000000D9 +:04879D0000000000D8 +:04879E0000000000D7 +:04879F0000000000D6 +:0487A00000000000D5 +:0487A10000000000D4 +:0487A20000000000D3 +:0487A30000000000D2 +:0487A40000000000D1 +:0487A50000000000D0 +:0487A60000000000CF +:0487A70000000000CE +:0487A80000000000CD +:0487A90000000000CC +:0487AA0000000000CB +:0487AB0000000000CA +:0487AC0000000000C9 +:0487AD0000000000C8 +:0487AE0000000000C7 +:0487AF0000000000C6 +:0487B00000000000C5 +:0487B10000000000C4 +:0487B20000000000C3 +:0487B30000000000C2 +:0487B40000000000C1 +:0487B50000000000C0 +:0487B60000000000BF +:0487B70000000000BE +:0487B80000000000BD +:0487B90000000000BC +:0487BA0000000000BB +:0487BB0000000000BA +:0487BC0000000000B9 +:0487BD0000000000B8 +:0487BE0000000000B7 +:0487BF0000000000B6 +:0487C00000000000B5 +:0487C10000000000B4 +:0487C20000000000B3 +:0487C30000000000B2 +:0487C40000000000B1 +:0487C50000000000B0 +:0487C60000000000AF +:0487C70000000000AE +:0487C80000000000AD +:0487C90000000000AC +:0487CA0000000000AB +:0487CB0000000000AA +:0487CC0000000000A9 +:0487CD0000000000A8 +:0487CE0000000000A7 +:0487CF0000000000A6 +:0487D00000000000A5 +:0487D10000000000A4 +:0487D20000000000A3 +:0487D30000000000A2 +:0487D40000000000A1 +:0487D50000000000A0 +:0487D600000000009F +:0487D700000000009E +:0487D800000000009D +:0487D900000000009C +:0487DA00000000009B +:0487DB00000000009A +:0487DC000000000099 +:0487DD000000000098 +:0487DE000000000097 +:0487DF000000000096 +:0487E0000000000095 +:0487E1000000000094 +:0487E2000000000093 +:0487E3000000000092 +:0487E4000000000091 +:0487E5000000000090 +:0487E600000000008F +:0487E700000000008E +:0487E800000000008D +:0487E900000000008C +:0487EA00000000008B +:0487EB00000000008A +:0487EC000000000089 +:0487ED000000000088 +:0487EE000000000087 +:0487EF000000000086 +:0487F0000000000085 +:0487F1000000000084 +:0487F2000000000083 +:0487F3000000000082 +:0487F4000000000081 +:0487F5000000000080 +:0487F600000000007F +:0487F700000000007E +:0487F800000000007D +:0487F900000000007C +:0487FA00000000007B +:0487FB00000000007A +:0487FC000000000079 +:0487FD000000000078 +:0487FE000000000077 +:0487FF000000000076 +:048800000000000074 +:048801000000000073 +:048802000000000072 +:048803000000000071 +:048804000000000070 +:04880500000000006F +:04880600000000006E +:04880700000000006D +:04880800000000006C +:04880900000000006B +:04880A00000000006A +:04880B000000000069 +:04880C000000000068 +:04880D000000000067 +:04880E000000000066 +:04880F000000000065 +:048810000000000064 +:048811000000000063 +:048812000000000062 +:048813000000000061 +:048814000000000060 +:04881500000000005F +:04881600000000005E +:04881700000000005D +:04881800000000005C +:04881900000000005B +:04881A00000000005A +:04881B000000000059 +:04881C000000000058 +:04881D000000000057 +:04881E000000000056 +:04881F000000000055 +:048820000000000054 +:048821000000000053 +:048822000000000052 +:048823000000000051 +:048824000000000050 +:04882500000000004F +:04882600000000004E +:04882700000000004D +:04882800000000004C +:04882900000000004B +:04882A00000000004A +:04882B000000000049 +:04882C000000000048 +:04882D000000000047 +:04882E000000000046 +:04882F000000000045 +:048830000000000044 +:048831000000000043 +:048832000000000042 +:048833000000000041 +:048834000000000040 +:04883500000000003F +:04883600000000003E +:04883700000000003D +:04883800000000003C +:04883900000000003B +:04883A00000000003A +:04883B000000000039 +:04883C000000000038 +:04883D000000000037 +:04883E000000000036 +:04883F000000000035 +:048840000000000034 +:048841000000000033 +:048842000000000032 +:048843000000000031 +:048844000000000030 +:04884500000000002F +:04884600000000002E +:04884700000000002D +:04884800000000002C +:04884900000000002B +:04884A00000000002A +:04884B000000000029 +:04884C000000000028 +:04884D000000000027 +:04884E000000000026 +:04884F000000000025 +:048850000000000024 +:048851000000000023 +:048852000000000022 +:048853000000000021 +:048854000000000020 +:04885500000000001F +:04885600000000001E +:04885700000000001D +:04885800000000001C +:04885900000000001B +:04885A00000000001A +:04885B000000000019 +:04885C000000000018 +:04885D000000000017 +:04885E000000000016 +:04885F000000000015 +:048860000000000014 +:048861000000000013 +:048862000000000012 +:048863000000000011 +:048864000000000010 +:04886500000000000F +:04886600000000000E +:04886700000000000D +:04886800000000000C +:04886900000000000B +:04886A00000000000A +:04886B000000000009 +:04886C000000000008 +:04886D000000000007 +:04886E000000000006 +:04886F000000000005 +:048870000000000004 +:048871000000000003 +:048872000000000002 +:048873000000000001 +:048874000000000000 +:0488750000000000FF +:0488760000000000FE +:0488770000000000FD +:0488780000000000FC +:0488790000000000FB +:04887A0000000000FA +:04887B0000000000F9 +:04887C0000000000F8 +:04887D0000000000F7 +:04887E0000000000F6 +:04887F0000000000F5 +:0488800000000000F4 +:0488810000000000F3 +:0488820000000000F2 +:0488830000000000F1 +:0488840000000000F0 +:0488850000000000EF +:0488860000000000EE +:0488870000000000ED +:0488880000000000EC +:0488890000000000EB +:04888A0000000000EA +:04888B0000000000E9 +:04888C0000000000E8 +:04888D0000000000E7 +:04888E0000000000E6 +:04888F0000000000E5 +:0488900000000000E4 +:0488910000000000E3 +:0488920000000000E2 +:0488930000000000E1 +:0488940000000000E0 +:0488950000000000DF +:0488960000000000DE +:0488970000000000DD +:0488980000000000DC +:0488990000000000DB +:04889A0000000000DA +:04889B0000000000D9 +:04889C0000000000D8 +:04889D0000000000D7 +:04889E0000000000D6 +:04889F0000000000D5 +:0488A00000000000D4 +:0488A10000000000D3 +:0488A20000000000D2 +:0488A30000000000D1 +:0488A40000000000D0 +:0488A50000000000CF +:0488A60000000000CE +:0488A70000000000CD +:0488A80000000000CC +:0488A90000000000CB +:0488AA0000000000CA +:0488AB0000000000C9 +:0488AC0000000000C8 +:0488AD0000000000C7 +:0488AE0000000000C6 +:0488AF0000000000C5 +:0488B00000000000C4 +:0488B10000000000C3 +:0488B20000000000C2 +:0488B30000000000C1 +:0488B40000000000C0 +:0488B50000000000BF +:0488B60000000000BE +:0488B70000000000BD +:0488B80000000000BC +:0488B90000000000BB +:0488BA0000000000BA +:0488BB0000000000B9 +:0488BC0000000000B8 +:0488BD0000000000B7 +:0488BE0000000000B6 +:0488BF0000000000B5 +:0488C00000000000B4 +:0488C10000000000B3 +:0488C20000000000B2 +:0488C30000000000B1 +:0488C40000000000B0 +:0488C50000000000AF +:0488C60000000000AE +:0488C70000000000AD +:0488C80000000000AC +:0488C90000000000AB +:0488CA0000000000AA +:0488CB0000000000A9 +:0488CC0000000000A8 +:0488CD0000000000A7 +:0488CE0000000000A6 +:0488CF0000000000A5 +:0488D00000000000A4 +:0488D10000000000A3 +:0488D20000000000A2 +:0488D30000000000A1 +:0488D40000000000A0 +:0488D500000000009F +:0488D600000000009E +:0488D700000000009D +:0488D800000000009C +:0488D900000000009B +:0488DA00000000009A +:0488DB000000000099 +:0488DC000000000098 +:0488DD000000000097 +:0488DE000000000096 +:0488DF000000000095 +:0488E0000000000094 +:0488E1000000000093 +:0488E2000000000092 +:0488E3000000000091 +:0488E4000000000090 +:0488E500000000008F +:0488E600000000008E +:0488E700000000008D +:0488E800000000008C +:0488E900000000008B +:0488EA00000000008A +:0488EB000000000089 +:0488EC000000000088 +:0488ED000000000087 +:0488EE000000000086 +:0488EF000000000085 +:0488F0000000000084 +:0488F1000000000083 +:0488F2000000000082 +:0488F3000000000081 +:0488F4000000000080 +:0488F500000000007F +:0488F600000000007E +:0488F700000000007D +:0488F800000000007C +:0488F900000000007B +:0488FA00000000007A +:0488FB000000000079 +:0488FC000000000078 +:0488FD000000000077 +:0488FE000000000076 +:0488FF000000000075 +:048900000000000073 +:048901000000000072 +:048902000000000071 +:048903000000000070 +:04890400000000006F +:04890500000000006E +:04890600000000006D +:04890700000000006C +:04890800000000006B +:04890900000000006A +:04890A000000000069 +:04890B000000000068 +:04890C000000000067 +:04890D000000000066 +:04890E000000000065 +:04890F000000000064 +:048910000000000063 +:048911000000000062 +:048912000000000061 +:048913000000000060 +:04891400000000005F +:04891500000000005E +:04891600000000005D +:04891700000000005C +:04891800000000005B +:04891900000000005A +:04891A000000000059 +:04891B000000000058 +:04891C000000000057 +:04891D000000000056 +:04891E000000000055 +:04891F000000000054 +:048920000000000053 +:048921000000000052 +:048922000000000051 +:048923000000000050 +:04892400000000004F +:04892500000000004E +:04892600000000004D +:04892700000000004C +:04892800000000004B +:04892900000000004A +:04892A000000000049 +:04892B000000000048 +:04892C000000000047 +:04892D000000000046 +:04892E000000000045 +:04892F000000000044 +:048930000000000043 +:048931000000000042 +:048932000000000041 +:048933000000000040 +:04893400000000003F +:04893500000000003E +:04893600000000003D +:04893700000000003C +:04893800000000003B +:04893900000000003A +:04893A000000000039 +:04893B000000000038 +:04893C000000000037 +:04893D000000000036 +:04893E000000000035 +:04893F000000000034 +:048940000000000033 +:048941000000000032 +:048942000000000031 +:048943000000000030 +:04894400000000002F +:04894500000000002E +:04894600000000002D +:04894700000000002C +:04894800000000002B +:04894900000000002A +:04894A000000000029 +:04894B000000000028 +:04894C000000000027 +:04894D000000000026 +:04894E000000000025 +:04894F000000000024 +:048950000000000023 +:048951000000000022 +:048952000000000021 +:048953000000000020 +:04895400000000001F +:04895500000000001E +:04895600000000001D +:04895700000000001C +:04895800000000001B +:04895900000000001A +:04895A000000000019 +:04895B000000000018 +:04895C000000000017 +:04895D000000000016 +:04895E000000000015 +:04895F000000000014 +:048960000000000013 +:048961000000000012 +:048962000000000011 +:048963000000000010 +:04896400000000000F +:04896500000000000E +:04896600000000000D +:04896700000000000C +:04896800000000000B +:04896900000000000A +:04896A000000000009 +:04896B000000000008 +:04896C000000000007 +:04896D000000000006 +:04896E000000000005 +:04896F000000000004 +:048970000000000003 +:048971000000000002 +:048972000000000001 +:048973000000000000 +:0489740000000000FF +:0489750000000000FE +:0489760000000000FD +:0489770000000000FC +:0489780000000000FB +:0489790000000000FA +:04897A0000000000F9 +:04897B0000000000F8 +:04897C0000000000F7 +:04897D0000000000F6 +:04897E0000000000F5 +:04897F0000000000F4 +:0489800000000000F3 +:0489810000000000F2 +:0489820000000000F1 +:0489830000000000F0 +:0489840000000000EF +:0489850000000000EE +:0489860000000000ED +:0489870000000000EC +:0489880000000000EB +:0489890000000000EA +:04898A0000000000E9 +:04898B0000000000E8 +:04898C0000000000E7 +:04898D0000000000E6 +:04898E0000000000E5 +:04898F0000000000E4 +:0489900000000000E3 +:0489910000000000E2 +:0489920000000000E1 +:0489930000000000E0 +:0489940000000000DF +:0489950000000000DE +:0489960000000000DD +:0489970000000000DC +:0489980000000000DB +:0489990000000000DA +:04899A0000000000D9 +:04899B0000000000D8 +:04899C0000000000D7 +:04899D0000000000D6 +:04899E0000000000D5 +:04899F0000000000D4 +:0489A00000000000D3 +:0489A10000000000D2 +:0489A20000000000D1 +:0489A30000000000D0 +:0489A40000000000CF +:0489A50000000000CE +:0489A60000000000CD +:0489A70000000000CC +:0489A80000000000CB +:0489A90000000000CA +:0489AA0000000000C9 +:0489AB0000000000C8 +:0489AC0000000000C7 +:0489AD0000000000C6 +:0489AE0000000000C5 +:0489AF0000000000C4 +:0489B00000000000C3 +:0489B10000000000C2 +:0489B20000000000C1 +:0489B30000000000C0 +:0489B40000000000BF +:0489B50000000000BE +:0489B60000000000BD +:0489B70000000000BC +:0489B80000000000BB +:0489B90000000000BA +:0489BA0000000000B9 +:0489BB0000000000B8 +:0489BC0000000000B7 +:0489BD0000000000B6 +:0489BE0000000000B5 +:0489BF0000000000B4 +:0489C00000000000B3 +:0489C10000000000B2 +:0489C20000000000B1 +:0489C30000000000B0 +:0489C40000000000AF +:0489C50000000000AE +:0489C60000000000AD +:0489C70000000000AC +:0489C80000000000AB +:0489C90000000000AA +:0489CA0000000000A9 +:0489CB0000000000A8 +:0489CC0000000000A7 +:0489CD0000000000A6 +:0489CE0000000000A5 +:0489CF0000000000A4 +:0489D00000000000A3 +:0489D10000000000A2 +:0489D20000000000A1 +:0489D30000000000A0 +:0489D400000000009F +:0489D500000000009E +:0489D600000000009D +:0489D700000000009C +:0489D800000000009B +:0489D900000000009A +:0489DA000000000099 +:0489DB000000000098 +:0489DC000000000097 +:0489DD000000000096 +:0489DE000000000095 +:0489DF000000000094 +:0489E0000000000093 +:0489E1000000000092 +:0489E2000000000091 +:0489E3000000000090 +:0489E400000000008F +:0489E500000000008E +:0489E600000000008D +:0489E700000000008C +:0489E800000000008B +:0489E900000000008A +:0489EA000000000089 +:0489EB000000000088 +:0489EC000000000087 +:0489ED000000000086 +:0489EE000000000085 +:0489EF000000000084 +:0489F0000000000083 +:0489F1000000000082 +:0489F2000000000081 +:0489F3000000000080 +:0489F400000000007F +:0489F500000000007E +:0489F600000000007D +:0489F700000000007C +:0489F800000000007B +:0489F900000000007A +:0489FA000000000079 +:0489FB000000000078 +:0489FC000000000077 +:0489FD000000000076 +:0489FE000000000075 +:0489FF000000000074 +:048A00000000000072 +:048A01000000000071 +:048A02000000000070 +:048A0300000000006F +:048A0400000000006E +:048A0500000000006D +:048A0600000000006C +:048A0700000000006B +:048A0800000000006A +:048A09000000000069 +:048A0A000000000068 +:048A0B000000000067 +:048A0C000000000066 +:048A0D000000000065 +:048A0E000000000064 +:048A0F000000000063 +:048A10000000000062 +:048A11000000000061 +:048A12000000000060 +:048A1300000000005F +:048A1400000000005E +:048A1500000000005D +:048A1600000000005C +:048A1700000000005B +:048A1800000000005A +:048A19000000000059 +:048A1A000000000058 +:048A1B000000000057 +:048A1C000000000056 +:048A1D000000000055 +:048A1E000000000054 +:048A1F000000000053 +:048A20000000000052 +:048A21000000000051 +:048A22000000000050 +:048A2300000000004F +:048A2400000000004E +:048A2500000000004D +:048A2600000000004C +:048A2700000000004B +:048A2800000000004A +:048A29000000000049 +:048A2A000000000048 +:048A2B000000000047 +:048A2C000000000046 +:048A2D000000000045 +:048A2E000000000044 +:048A2F000000000043 +:048A30000000000042 +:048A31000000000041 +:048A32000000000040 +:048A3300000000003F +:048A3400000000003E +:048A3500000000003D +:048A3600000000003C +:048A3700000000003B +:048A3800000000003A +:048A39000000000039 +:048A3A000000000038 +:048A3B000000000037 +:048A3C000000000036 +:048A3D000000000035 +:048A3E000000000034 +:048A3F000000000033 +:048A40000000000032 +:048A41000000000031 +:048A42000000000030 +:048A4300000000002F +:048A4400000000002E +:048A4500000000002D +:048A4600000000002C +:048A4700000000002B +:048A4800000000002A +:048A49000000000029 +:048A4A000000000028 +:048A4B000000000027 +:048A4C000000000026 +:048A4D000000000025 +:048A4E000000000024 +:048A4F000000000023 +:048A50000000000022 +:048A51000000000021 +:048A52000000000020 +:048A5300000000001F +:048A5400000000001E +:048A5500000000001D +:048A5600000000001C +:048A5700000000001B +:048A5800000000001A +:048A59000000000019 +:048A5A000000000018 +:048A5B000000000017 +:048A5C000000000016 +:048A5D000000000015 +:048A5E000000000014 +:048A5F000000000013 +:048A60000000000012 +:048A61000000000011 +:048A62000000000010 +:048A6300000000000F +:048A6400000000000E +:048A6500000000000D +:048A6600000000000C +:048A6700000000000B +:048A6800000000000A +:048A69000000000009 +:048A6A000000000008 +:048A6B000000000007 +:048A6C000000000006 +:048A6D000000000005 +:048A6E000000000004 +:048A6F000000000003 +:048A70000000000002 +:048A71000000000001 +:048A72000000000000 +:048A730000000000FF +:048A740000000000FE +:048A750000000000FD +:048A760000000000FC +:048A770000000000FB +:048A780000000000FA +:048A790000000000F9 +:048A7A0000000000F8 +:048A7B0000000000F7 +:048A7C0000000000F6 +:048A7D0000000000F5 +:048A7E0000000000F4 +:048A7F0000000000F3 +:048A800000000000F2 +:048A810000000000F1 +:048A820000000000F0 +:048A830000000000EF +:048A840000000000EE +:048A850000000000ED +:048A860000000000EC +:048A870000000000EB +:048A880000000000EA +:048A890000000000E9 +:048A8A0000000000E8 +:048A8B0000000000E7 +:048A8C0000000000E6 +:048A8D0000000000E5 +:048A8E0000000000E4 +:048A8F0000000000E3 +:048A900000000000E2 +:048A910000000000E1 +:048A920000000000E0 +:048A930000000000DF +:048A940000000000DE +:048A950000000000DD +:048A960000000000DC +:048A970000000000DB +:048A980000000000DA +:048A990000000000D9 +:048A9A0000000000D8 +:048A9B0000000000D7 +:048A9C0000000000D6 +:048A9D0000000000D5 +:048A9E0000000000D4 +:048A9F0000000000D3 +:048AA00000000000D2 +:048AA10000000000D1 +:048AA20000000000D0 +:048AA30000000000CF +:048AA40000000000CE +:048AA50000000000CD +:048AA60000000000CC +:048AA70000000000CB +:048AA80000000000CA +:048AA90000000000C9 +:048AAA0000000000C8 +:048AAB0000000000C7 +:048AAC0000000000C6 +:048AAD0000000000C5 +:048AAE0000000000C4 +:048AAF0000000000C3 +:048AB00000000000C2 +:048AB10000000000C1 +:048AB20000000000C0 +:048AB30000000000BF +:048AB40000000000BE +:048AB50000000000BD +:048AB60000000000BC +:048AB70000000000BB +:048AB80000000000BA +:048AB90000000000B9 +:048ABA0000000000B8 +:048ABB0000000000B7 +:048ABC0000000000B6 +:048ABD0000000000B5 +:048ABE0000000000B4 +:048ABF0000000000B3 +:048AC00000000000B2 +:048AC10000000000B1 +:048AC20000000000B0 +:048AC30000000000AF +:048AC40000000000AE +:048AC50000000000AD +:048AC60000000000AC +:048AC70000000000AB +:048AC80000000000AA +:048AC90000000000A9 +:048ACA0000000000A8 +:048ACB0000000000A7 +:048ACC0000000000A6 +:048ACD0000000000A5 +:048ACE0000000000A4 +:048ACF0000000000A3 +:048AD00000000000A2 +:048AD10000000000A1 +:048AD20000000000A0 +:048AD300000000009F +:048AD400000000009E +:048AD500000000009D +:048AD600000000009C +:048AD700000000009B +:048AD800000000009A +:048AD9000000000099 +:048ADA000000000098 +:048ADB000000000097 +:048ADC000000000096 +:048ADD000000000095 +:048ADE000000000094 +:048ADF000000000093 +:048AE0000000000092 +:048AE1000000000091 +:048AE2000000000090 +:048AE300000000008F +:048AE400000000008E +:048AE500000000008D +:048AE600000000008C +:048AE700000000008B +:048AE800000000008A +:048AE9000000000089 +:048AEA000000000088 +:048AEB000000000087 +:048AEC000000000086 +:048AED000000000085 +:048AEE000000000084 +:048AEF000000000083 +:048AF0000000000082 +:048AF1000000000081 +:048AF2000000000080 +:048AF300000000007F +:048AF400000000007E +:048AF500000000007D +:048AF600000000007C +:048AF700000000007B +:048AF800000000007A +:048AF9000000000079 +:048AFA000000000078 +:048AFB000000000077 +:048AFC000000000076 +:048AFD000000000075 +:048AFE000000000074 +:048AFF000000000073 +:048B00000000000071 +:048B01000000000070 +:048B0200000000006F +:048B0300000000006E +:048B0400000000006D +:048B0500000000006C +:048B0600000000006B +:048B0700000000006A +:048B08000000000069 +:048B09000000000068 +:048B0A000000000067 +:048B0B000000000066 +:048B0C000000000065 +:048B0D000000000064 +:048B0E000000000063 +:048B0F000000000062 +:048B10000000000061 +:048B11000000000060 +:048B1200000000005F +:048B1300000000005E +:048B1400000000005D +:048B1500000000005C +:048B1600000000005B +:048B1700000000005A +:048B18000000000059 +:048B19000000000058 +:048B1A000000000057 +:048B1B000000000056 +:048B1C000000000055 +:048B1D000000000054 +:048B1E000000000053 +:048B1F000000000052 +:048B20000000000051 +:048B21000000000050 +:048B2200000000004F +:048B2300000000004E +:048B2400000000004D +:048B2500000000004C +:048B2600000000004B +:048B2700000000004A +:048B28000000000049 +:048B29000000000048 +:048B2A000000000047 +:048B2B000000000046 +:048B2C000000000045 +:048B2D000000000044 +:048B2E000000000043 +:048B2F000000000042 +:048B30000000000041 +:048B31000000000040 +:048B3200000000003F +:048B3300000000003E +:048B3400000000003D +:048B3500000000003C +:048B3600000000003B +:048B3700000000003A +:048B38000000000039 +:048B39000000000038 +:048B3A000000000037 +:048B3B000000000036 +:048B3C000000000035 +:048B3D000000000034 +:048B3E000000000033 +:048B3F000000000032 +:048B40000000000031 +:048B41000000000030 +:048B4200000000002F +:048B4300000000002E +:048B4400000000002D +:048B4500000000002C +:048B4600000000002B +:048B4700000000002A +:048B48000000000029 +:048B49000000000028 +:048B4A000000000027 +:048B4B000000000026 +:048B4C000000000025 +:048B4D000000000024 +:048B4E000000000023 +:048B4F000000000022 +:048B50000000000021 +:048B51000000000020 +:048B5200000000001F +:048B5300000000001E +:048B5400000000001D +:048B5500000000001C +:048B5600000000001B +:048B5700000000001A +:048B58000000000019 +:048B59000000000018 +:048B5A000000000017 +:048B5B000000000016 +:048B5C000000000015 +:048B5D000000000014 +:048B5E000000000013 +:048B5F000000000012 +:048B60000000000011 +:048B61000000000010 +:048B6200000000000F +:048B6300000000000E +:048B6400000000000D +:048B6500000000000C +:048B6600000000000B +:048B6700000000000A +:048B68000000000009 +:048B69000000000008 +:048B6A000000000007 +:048B6B000000000006 +:048B6C000000000005 +:048B6D000000000004 +:048B6E000000000003 +:048B6F000000000002 +:048B70000000000001 +:048B71000000000000 +:048B720000000000FF +:048B730000000000FE +:048B740000000000FD +:048B750000000000FC +:048B760000000000FB +:048B770000000000FA +:048B780000000000F9 +:048B790000000000F8 +:048B7A0000000000F7 +:048B7B0000000000F6 +:048B7C0000000000F5 +:048B7D0000000000F4 +:048B7E0000000000F3 +:048B7F0000000000F2 +:048B800000000000F1 +:048B810000000000F0 +:048B820000000000EF +:048B830000000000EE +:048B840000000000ED +:048B850000000000EC +:048B860000000000EB +:048B870000000000EA +:048B880000000000E9 +:048B890000000000E8 +:048B8A0000000000E7 +:048B8B0000000000E6 +:048B8C0000000000E5 +:048B8D0000000000E4 +:048B8E0000000000E3 +:048B8F0000000000E2 +:048B900000000000E1 +:048B910000000000E0 +:048B920000000000DF +:048B930000000000DE +:048B940000000000DD +:048B950000000000DC +:048B960000000000DB +:048B970000000000DA +:048B980000000000D9 +:048B990000000000D8 +:048B9A0000000000D7 +:048B9B0000000000D6 +:048B9C0000000000D5 +:048B9D0000000000D4 +:048B9E0000000000D3 +:048B9F0000000000D2 +:048BA00000000000D1 +:048BA10000000000D0 +:048BA20000000000CF +:048BA30000000000CE +:048BA40000000000CD +:048BA50000000000CC +:048BA60000000000CB +:048BA70000000000CA +:048BA80000000000C9 +:048BA90000000000C8 +:048BAA0000000000C7 +:048BAB0000000000C6 +:048BAC0000000000C5 +:048BAD0000000000C4 +:048BAE0000000000C3 +:048BAF0000000000C2 +:048BB00000000000C1 +:048BB10000000000C0 +:048BB20000000000BF +:048BB30000000000BE +:048BB40000000000BD +:048BB50000000000BC +:048BB60000000000BB +:048BB70000000000BA +:048BB80000000000B9 +:048BB90000000000B8 +:048BBA0000000000B7 +:048BBB0000000000B6 +:048BBC0000000000B5 +:048BBD0000000000B4 +:048BBE0000000000B3 +:048BBF0000000000B2 +:048BC00000000000B1 +:048BC10000000000B0 +:048BC20000000000AF +:048BC30000000000AE +:048BC40000000000AD +:048BC50000000000AC +:048BC60000000000AB +:048BC70000000000AA +:048BC80000000000A9 +:048BC90000000000A8 +:048BCA0000000000A7 +:048BCB0000000000A6 +:048BCC0000000000A5 +:048BCD0000000000A4 +:048BCE0000000000A3 +:048BCF0000000000A2 +:048BD00000000000A1 +:048BD10000000000A0 +:048BD200000000009F +:048BD300000000009E +:048BD400000000009D +:048BD500000000009C +:048BD600000000009B +:048BD700000000009A +:048BD8000000000099 +:048BD9000000000098 +:048BDA000000000097 +:048BDB000000000096 +:048BDC000000000095 +:048BDD000000000094 +:048BDE000000000093 +:048BDF000000000092 +:048BE0000000000091 +:048BE1000000000090 +:048BE200000000008F +:048BE300000000008E +:048BE400000000008D +:048BE500000000008C +:048BE600000000008B +:048BE700000000008A +:048BE8000000000089 +:048BE9000000000088 +:048BEA000000000087 +:048BEB000000000086 +:048BEC000000000085 +:048BED000000000084 +:048BEE000000000083 +:048BEF000000000082 +:048BF0000000000081 +:048BF1000000000080 +:048BF200000000007F +:048BF300000000007E +:048BF400000000007D +:048BF500000000007C +:048BF600000000007B +:048BF700000000007A +:048BF8000000000079 +:048BF9000000000078 +:048BFA000000000077 +:048BFB000000000076 +:048BFC000000000075 +:048BFD000000000074 +:048BFE000000000073 +:048BFF000000000072 +:048C00000000000070 +:048C0100000000006F +:048C0200000000006E +:048C0300000000006D +:048C0400000000006C +:048C0500000000006B +:048C0600000000006A +:048C07000000000069 +:048C08000000000068 +:048C09000000000067 +:048C0A000000000066 +:048C0B000000000065 +:048C0C000000000064 +:048C0D000000000063 +:048C0E000000000062 +:048C0F000000000061 +:048C10000000000060 +:048C1100000000005F +:048C1200000000005E +:048C1300000000005D +:048C1400000000005C +:048C1500000000005B +:048C1600000000005A +:048C17000000000059 +:048C18000000000058 +:048C19000000000057 +:048C1A000000000056 +:048C1B000000000055 +:048C1C000000000054 +:048C1D000000000053 +:048C1E000000000052 +:048C1F000000000051 +:048C20000000000050 +:048C2100000000004F +:048C2200000000004E +:048C2300000000004D +:048C2400000000004C +:048C2500000000004B +:048C2600000000004A +:048C27000000000049 +:048C28000000000048 +:048C29000000000047 +:048C2A000000000046 +:048C2B000000000045 +:048C2C000000000044 +:048C2D000000000043 +:048C2E000000000042 +:048C2F000000000041 +:048C30000000000040 +:048C3100000000003F +:048C3200000000003E +:048C3300000000003D +:048C3400000000003C +:048C3500000000003B +:048C3600000000003A +:048C37000000000039 +:048C38000000000038 +:048C39000000000037 +:048C3A000000000036 +:048C3B000000000035 +:048C3C000000000034 +:048C3D000000000033 +:048C3E000000000032 +:048C3F000000000031 +:048C40000000000030 +:048C4100000000002F +:048C4200000000002E +:048C4300000000002D +:048C4400000000002C +:048C4500000000002B +:048C4600000000002A +:048C47000000000029 +:048C48000000000028 +:048C49000000000027 +:048C4A000000000026 +:048C4B000000000025 +:048C4C000000000024 +:048C4D000000000023 +:048C4E000000000022 +:048C4F000000000021 +:048C50000000000020 +:048C5100000000001F +:048C5200000000001E +:048C5300000000001D +:048C5400000000001C +:048C5500000000001B +:048C5600000000001A +:048C57000000000019 +:048C58000000000018 +:048C59000000000017 +:048C5A000000000016 +:048C5B000000000015 +:048C5C000000000014 +:048C5D000000000013 +:048C5E000000000012 +:048C5F000000000011 +:048C60000000000010 +:048C6100000000000F +:048C6200000000000E +:048C6300000000000D +:048C6400000000000C +:048C6500000000000B +:048C6600000000000A +:048C67000000000009 +:048C68000000000008 +:048C69000000000007 +:048C6A000000000006 +:048C6B000000000005 +:048C6C000000000004 +:048C6D000000000003 +:048C6E000000000002 +:048C6F000000000001 +:048C70000000000000 +:048C710000000000FF +:048C720000000000FE +:048C730000000000FD +:048C740000000000FC +:048C750000000000FB +:048C760000000000FA +:048C770000000000F9 +:048C780000000000F8 +:048C790000000000F7 +:048C7A0000000000F6 +:048C7B0000000000F5 +:048C7C0000000000F4 +:048C7D0000000000F3 +:048C7E0000000000F2 +:048C7F0000000000F1 +:048C800000000000F0 +:048C810000000000EF +:048C820000000000EE +:048C830000000000ED +:048C840000000000EC +:048C850000000000EB +:048C860000000000EA +:048C870000000000E9 +:048C880000000000E8 +:048C890000000000E7 +:048C8A0000000000E6 +:048C8B0000000000E5 +:048C8C0000000000E4 +:048C8D0000000000E3 +:048C8E0000000000E2 +:048C8F0000000000E1 +:048C900000000000E0 +:048C910000000000DF +:048C920000000000DE +:048C930000000000DD +:048C940000000000DC +:048C950000000000DB +:048C960000000000DA +:048C970000000000D9 +:048C980000000000D8 +:048C990000000000D7 +:048C9A0000000000D6 +:048C9B0000000000D5 +:048C9C0000000000D4 +:048C9D0000000000D3 +:048C9E0000000000D2 +:048C9F0000000000D1 +:048CA00000000000D0 +:048CA10000000000CF +:048CA20000000000CE +:048CA30000000000CD +:048CA40000000000CC +:048CA50000000000CB +:048CA60000000000CA +:048CA70000000000C9 +:048CA80000000000C8 +:048CA90000000000C7 +:048CAA0000000000C6 +:048CAB0000000000C5 +:048CAC0000000000C4 +:048CAD0000000000C3 +:048CAE0000000000C2 +:048CAF0000000000C1 +:048CB00000000000C0 +:048CB10000000000BF +:048CB20000000000BE +:048CB30000000000BD +:048CB40000000000BC +:048CB50000000000BB +:048CB60000000000BA +:048CB70000000000B9 +:048CB80000000000B8 +:048CB90000000000B7 +:048CBA0000000000B6 +:048CBB0000000000B5 +:048CBC0000000000B4 +:048CBD0000000000B3 +:048CBE0000000000B2 +:048CBF0000000000B1 +:048CC00000000000B0 +:048CC10000000000AF +:048CC20000000000AE +:048CC30000000000AD +:048CC40000000000AC +:048CC50000000000AB +:048CC60000000000AA +:048CC70000000000A9 +:048CC80000000000A8 +:048CC90000000000A7 +:048CCA0000000000A6 +:048CCB0000000000A5 +:048CCC0000000000A4 +:048CCD0000000000A3 +:048CCE0000000000A2 +:048CCF0000000000A1 +:048CD00000000000A0 +:048CD100000000009F +:048CD200000000009E +:048CD300000000009D +:048CD400000000009C +:048CD500000000009B +:048CD600000000009A +:048CD7000000000099 +:048CD8000000000098 +:048CD9000000000097 +:048CDA000000000096 +:048CDB000000000095 +:048CDC000000000094 +:048CDD000000000093 +:048CDE000000000092 +:048CDF000000000091 +:048CE0000000000090 +:048CE100000000008F +:048CE200000000008E +:048CE300000000008D +:048CE400000000008C +:048CE500000000008B +:048CE600000000008A +:048CE7000000000089 +:048CE8000000000088 +:048CE9000000000087 +:048CEA000000000086 +:048CEB000000000085 +:048CEC000000000084 +:048CED000000000083 +:048CEE000000000082 +:048CEF000000000081 +:048CF0000000000080 +:048CF100000000007F +:048CF200000000007E +:048CF300000000007D +:048CF400000000007C +:048CF500000000007B +:048CF600000000007A +:048CF7000000000079 +:048CF8000000000078 +:048CF9000000000077 +:048CFA000000000076 +:048CFB000000000075 +:048CFC000000000074 +:048CFD000000000073 +:048CFE000000000072 +:048CFF000000000071 +:048D0000000000006F +:048D0100000000006E +:048D0200000000006D +:048D0300000000006C +:048D0400000000006B +:048D0500000000006A +:048D06000000000069 +:048D07000000000068 +:048D08000000000067 +:048D09000000000066 +:048D0A000000000065 +:048D0B000000000064 +:048D0C000000000063 +:048D0D000000000062 +:048D0E000000000061 +:048D0F000000000060 +:048D1000000000005F +:048D1100000000005E +:048D1200000000005D +:048D1300000000005C +:048D1400000000005B +:048D1500000000005A +:048D16000000000059 +:048D17000000000058 +:048D18000000000057 +:048D19000000000056 +:048D1A000000000055 +:048D1B000000000054 +:048D1C000000000053 +:048D1D000000000052 +:048D1E000000000051 +:048D1F000000000050 +:048D2000000000004F +:048D2100000000004E +:048D2200000000004D +:048D2300000000004C +:048D2400000000004B +:048D2500000000004A +:048D26000000000049 +:048D27000000000048 +:048D28000000000047 +:048D29000000000046 +:048D2A000000000045 +:048D2B000000000044 +:048D2C000000000043 +:048D2D000000000042 +:048D2E000000000041 +:048D2F000000000040 +:048D3000000000003F +:048D3100000000003E +:048D3200000000003D +:048D3300000000003C +:048D3400000000003B +:048D3500000000003A +:048D36000000000039 +:048D37000000000038 +:048D38000000000037 +:048D39000000000036 +:048D3A000000000035 +:048D3B000000000034 +:048D3C000000000033 +:048D3D000000000032 +:048D3E000000000031 +:048D3F000000000030 +:048D4000000000002F +:048D4100000000002E +:048D4200000000002D +:048D4300000000002C +:048D4400000000002B +:048D4500000000002A +:048D46000000000029 +:048D47000000000028 +:048D48000000000027 +:048D49000000000026 +:048D4A000000000025 +:048D4B000000000024 +:048D4C000000000023 +:048D4D000000000022 +:048D4E000000000021 +:048D4F000000000020 +:048D5000000000001F +:048D5100000000001E +:048D5200000000001D +:048D5300000000001C +:048D5400000000001B +:048D5500000000001A +:048D56000000000019 +:048D57000000000018 +:048D58000000000017 +:048D59000000000016 +:048D5A000000000015 +:048D5B000000000014 +:048D5C000000000013 +:048D5D000000000012 +:048D5E000000000011 +:048D5F000000000010 +:048D6000000000000F +:048D6100000000000E +:048D6200000000000D +:048D6300000000000C +:048D6400000000000B +:048D6500000000000A +:048D66000000000009 +:048D67000000000008 +:048D68000000000007 +:048D69000000000006 +:048D6A000000000005 +:048D6B000000000004 +:048D6C000000000003 +:048D6D000000000002 +:048D6E000000000001 +:048D6F000000000000 +:048D700000000000FF +:048D710000000000FE +:048D720000000000FD +:048D730000000000FC +:048D740000000000FB +:048D750000000000FA +:048D760000000000F9 +:048D770000000000F8 +:048D780000000000F7 +:048D790000000000F6 +:048D7A0000000000F5 +:048D7B0000000000F4 +:048D7C0000000000F3 +:048D7D0000000000F2 +:048D7E0000000000F1 +:048D7F0000000000F0 +:048D800000000000EF +:048D810000000000EE +:048D820000000000ED +:048D830000000000EC +:048D840000000000EB +:048D850000000000EA +:048D860000000000E9 +:048D870000000000E8 +:048D880000000000E7 +:048D890000000000E6 +:048D8A0000000000E5 +:048D8B0000000000E4 +:048D8C0000000000E3 +:048D8D0000000000E2 +:048D8E0000000000E1 +:048D8F0000000000E0 +:048D900000000000DF +:048D910000000000DE +:048D920000000000DD +:048D930000000000DC +:048D940000000000DB +:048D950000000000DA +:048D960000000000D9 +:048D970000000000D8 +:048D980000000000D7 +:048D990000000000D6 +:048D9A0000000000D5 +:048D9B0000000000D4 +:048D9C0000000000D3 +:048D9D0000000000D2 +:048D9E0000000000D1 +:048D9F0000000000D0 +:048DA00000000000CF +:048DA10000000000CE +:048DA20000000000CD +:048DA30000000000CC +:048DA40000000000CB +:048DA50000000000CA +:048DA60000000000C9 +:048DA70000000000C8 +:048DA80000000000C7 +:048DA90000000000C6 +:048DAA0000000000C5 +:048DAB0000000000C4 +:048DAC0000000000C3 +:048DAD0000000000C2 +:048DAE0000000000C1 +:048DAF0000000000C0 +:048DB00000000000BF +:048DB10000000000BE +:048DB20000000000BD +:048DB30000000000BC +:048DB40000000000BB +:048DB50000000000BA +:048DB60000000000B9 +:048DB70000000000B8 +:048DB80000000000B7 +:048DB90000000000B6 +:048DBA0000000000B5 +:048DBB0000000000B4 +:048DBC0000000000B3 +:048DBD0000000000B2 +:048DBE0000000000B1 +:048DBF0000000000B0 +:048DC00000000000AF +:048DC10000000000AE +:048DC20000000000AD +:048DC30000000000AC +:048DC40000000000AB +:048DC50000000000AA +:048DC60000000000A9 +:048DC70000000000A8 +:048DC80000000000A7 +:048DC90000000000A6 +:048DCA0000000000A5 +:048DCB0000000000A4 +:048DCC0000000000A3 +:048DCD0000000000A2 +:048DCE0000000000A1 +:048DCF0000000000A0 +:048DD000000000009F +:048DD100000000009E +:048DD200000000009D +:048DD300000000009C +:048DD400000000009B +:048DD500000000009A +:048DD6000000000099 +:048DD7000000000098 +:048DD8000000000097 +:048DD9000000000096 +:048DDA000000000095 +:048DDB000000000094 +:048DDC000000000093 +:048DDD000000000092 +:048DDE000000000091 +:048DDF000000000090 +:048DE000000000008F +:048DE100000000008E +:048DE200000000008D +:048DE300000000008C +:048DE400000000008B +:048DE500000000008A +:048DE6000000000089 +:048DE7000000000088 +:048DE8000000000087 +:048DE9000000000086 +:048DEA000000000085 +:048DEB000000000084 +:048DEC000000000083 +:048DED000000000082 +:048DEE000000000081 +:048DEF000000000080 +:048DF000000000007F +:048DF100000000007E +:048DF200000000007D +:048DF300000000007C +:048DF400000000007B +:048DF500000000007A +:048DF6000000000079 +:048DF7000000000078 +:048DF8000000000077 +:048DF9000000000076 +:048DFA000000000075 +:048DFB000000000074 +:048DFC000000000073 +:048DFD000000000072 +:048DFE000000000071 +:048DFF000000000070 +:048E0000000000006E +:048E0100000000006D +:048E0200000000006C +:048E0300000000006B +:048E0400000000006A +:048E05000000000069 +:048E06000000000068 +:048E07000000000067 +:048E08000000000066 +:048E09000000000065 +:048E0A000000000064 +:048E0B000000000063 +:048E0C000000000062 +:048E0D000000000061 +:048E0E000000000060 +:048E0F00000000005F +:048E1000000000005E +:048E1100000000005D +:048E1200000000005C +:048E1300000000005B +:048E1400000000005A +:048E15000000000059 +:048E16000000000058 +:048E17000000000057 +:048E18000000000056 +:048E19000000000055 +:048E1A000000000054 +:048E1B000000000053 +:048E1C000000000052 +:048E1D000000000051 +:048E1E000000000050 +:048E1F00000000004F +:048E2000000000004E +:048E2100000000004D +:048E2200000000004C +:048E2300000000004B +:048E2400000000004A +:048E25000000000049 +:048E26000000000048 +:048E27000000000047 +:048E28000000000046 +:048E29000000000045 +:048E2A000000000044 +:048E2B000000000043 +:048E2C000000000042 +:048E2D000000000041 +:048E2E000000000040 +:048E2F00000000003F +:048E3000000000003E +:048E3100000000003D +:048E3200000000003C +:048E3300000000003B +:048E3400000000003A +:048E35000000000039 +:048E36000000000038 +:048E37000000000037 +:048E38000000000036 +:048E39000000000035 +:048E3A000000000034 +:048E3B000000000033 +:048E3C000000000032 +:048E3D000000000031 +:048E3E000000000030 +:048E3F00000000002F +:048E4000000000002E +:048E4100000000002D +:048E4200000000002C +:048E4300000000002B +:048E4400000000002A +:048E45000000000029 +:048E46000000000028 +:048E47000000000027 +:048E48000000000026 +:048E49000000000025 +:048E4A000000000024 +:048E4B000000000023 +:048E4C000000000022 +:048E4D000000000021 +:048E4E000000000020 +:048E4F00000000001F +:048E5000000000001E +:048E5100000000001D +:048E5200000000001C +:048E5300000000001B +:048E5400000000001A +:048E55000000000019 +:048E56000000000018 +:048E57000000000017 +:048E58000000000016 +:048E59000000000015 +:048E5A000000000014 +:048E5B000000000013 +:048E5C000000000012 +:048E5D000000000011 +:048E5E000000000010 +:048E5F00000000000F +:048E6000000000000E +:048E6100000000000D +:048E6200000000000C +:048E6300000000000B +:048E6400000000000A +:048E65000000000009 +:048E66000000000008 +:048E67000000000007 +:048E68000000000006 +:048E69000000000005 +:048E6A000000000004 +:048E6B000000000003 +:048E6C000000000002 +:048E6D000000000001 +:048E6E000000000000 +:048E6F0000000000FF +:048E700000000000FE +:048E710000000000FD +:048E720000000000FC +:048E730000000000FB +:048E740000000000FA +:048E750000000000F9 +:048E760000000000F8 +:048E770000000000F7 +:048E780000000000F6 +:048E790000000000F5 +:048E7A0000000000F4 +:048E7B0000000000F3 +:048E7C0000000000F2 +:048E7D0000000000F1 +:048E7E0000000000F0 +:048E7F0000000000EF +:048E800000000000EE +:048E810000000000ED +:048E820000000000EC +:048E830000000000EB +:048E840000000000EA +:048E850000000000E9 +:048E860000000000E8 +:048E870000000000E7 +:048E880000000000E6 +:048E890000000000E5 +:048E8A0000000000E4 +:048E8B0000000000E3 +:048E8C0000000000E2 +:048E8D0000000000E1 +:048E8E0000000000E0 +:048E8F0000000000DF +:048E900000000000DE +:048E910000000000DD +:048E920000000000DC +:048E930000000000DB +:048E940000000000DA +:048E950000000000D9 +:048E960000000000D8 +:048E970000000000D7 +:048E980000000000D6 +:048E990000000000D5 +:048E9A0000000000D4 +:048E9B0000000000D3 +:048E9C0000000000D2 +:048E9D0000000000D1 +:048E9E0000000000D0 +:048E9F0000000000CF +:048EA00000000000CE +:048EA10000000000CD +:048EA20000000000CC +:048EA30000000000CB +:048EA40000000000CA +:048EA50000000000C9 +:048EA60000000000C8 +:048EA70000000000C7 +:048EA80000000000C6 +:048EA90000000000C5 +:048EAA0000000000C4 +:048EAB0000000000C3 +:048EAC0000000000C2 +:048EAD0000000000C1 +:048EAE0000000000C0 +:048EAF0000000000BF +:048EB00000000000BE +:048EB10000000000BD +:048EB20000000000BC +:048EB30000000000BB +:048EB40000000000BA +:048EB50000000000B9 +:048EB60000000000B8 +:048EB70000000000B7 +:048EB80000000000B6 +:048EB90000000000B5 +:048EBA0000000000B4 +:048EBB0000000000B3 +:048EBC0000000000B2 +:048EBD0000000000B1 +:048EBE0000000000B0 +:048EBF0000000000AF +:048EC00000000000AE +:048EC10000000000AD +:048EC20000000000AC +:048EC30000000000AB +:048EC40000000000AA +:048EC50000000000A9 +:048EC60000000000A8 +:048EC70000000000A7 +:048EC80000000000A6 +:048EC90000000000A5 +:048ECA0000000000A4 +:048ECB0000000000A3 +:048ECC0000000000A2 +:048ECD0000000000A1 +:048ECE0000000000A0 +:048ECF00000000009F +:048ED000000000009E +:048ED100000000009D +:048ED200000000009C +:048ED300000000009B +:048ED400000000009A +:048ED5000000000099 +:048ED6000000000098 +:048ED7000000000097 +:048ED8000000000096 +:048ED9000000000095 +:048EDA000000000094 +:048EDB000000000093 +:048EDC000000000092 +:048EDD000000000091 +:048EDE000000000090 +:048EDF00000000008F +:048EE000000000008E +:048EE100000000008D +:048EE200000000008C +:048EE300000000008B +:048EE400000000008A +:048EE5000000000089 +:048EE6000000000088 +:048EE7000000000087 +:048EE8000000000086 +:048EE9000000000085 +:048EEA000000000084 +:048EEB000000000083 +:048EEC000000000082 +:048EED000000000081 +:048EEE000000000080 +:048EEF00000000007F +:048EF000000000007E +:048EF100000000007D +:048EF200000000007C +:048EF300000000007B +:048EF400000000007A +:048EF5000000000079 +:048EF6000000000078 +:048EF7000000000077 +:048EF8000000000076 +:048EF9000000000075 +:048EFA000000000074 +:048EFB000000000073 +:048EFC000000000072 +:048EFD000000000071 +:048EFE000000000070 +:048EFF00000000006F +:048F0000000000006D +:048F0100000000006C +:048F0200000000006B +:048F0300000000006A +:048F04000000000069 +:048F05000000000068 +:048F06000000000067 +:048F07000000000066 +:048F08000000000065 +:048F09000000000064 +:048F0A000000000063 +:048F0B000000000062 +:048F0C000000000061 +:048F0D000000000060 +:048F0E00000000005F +:048F0F00000000005E +:048F1000000000005D +:048F1100000000005C +:048F1200000000005B +:048F1300000000005A +:048F14000000000059 +:048F15000000000058 +:048F16000000000057 +:048F17000000000056 +:048F18000000000055 +:048F19000000000054 +:048F1A000000000053 +:048F1B000000000052 +:048F1C000000000051 +:048F1D000000000050 +:048F1E00000000004F +:048F1F00000000004E +:048F2000000000004D +:048F2100000000004C +:048F2200000000004B +:048F2300000000004A +:048F24000000000049 +:048F25000000000048 +:048F26000000000047 +:048F27000000000046 +:048F28000000000045 +:048F29000000000044 +:048F2A000000000043 +:048F2B000000000042 +:048F2C000000000041 +:048F2D000000000040 +:048F2E00000000003F +:048F2F00000000003E +:048F3000000000003D +:048F3100000000003C +:048F3200000000003B +:048F3300000000003A +:048F34000000000039 +:048F35000000000038 +:048F36000000000037 +:048F37000000000036 +:048F38000000000035 +:048F39000000000034 +:048F3A000000000033 +:048F3B000000000032 +:048F3C000000000031 +:048F3D000000000030 +:048F3E00000000002F +:048F3F00000000002E +:048F4000000000002D +:048F4100000000002C +:048F4200000000002B +:048F4300000000002A +:048F44000000000029 +:048F45000000000028 +:048F46000000000027 +:048F47000000000026 +:048F48000000000025 +:048F49000000000024 +:048F4A000000000023 +:048F4B000000000022 +:048F4C000000000021 +:048F4D000000000020 +:048F4E00000000001F +:048F4F00000000001E +:048F5000000000001D +:048F5100000000001C +:048F5200000000001B +:048F5300000000001A +:048F54000000000019 +:048F55000000000018 +:048F56000000000017 +:048F57000000000016 +:048F58000000000015 +:048F59000000000014 +:048F5A000000000013 +:048F5B000000000012 +:048F5C000000000011 +:048F5D000000000010 +:048F5E00000000000F +:048F5F00000000000E +:048F6000000000000D +:048F6100000000000C +:048F6200000000000B +:048F6300000000000A +:048F64000000000009 +:048F65000000000008 +:048F66000000000007 +:048F67000000000006 +:048F68000000000005 +:048F69000000000004 +:048F6A000000000003 +:048F6B000000000002 +:048F6C000000000001 +:048F6D000000000000 +:048F6E0000000000FF +:048F6F0000000000FE +:048F700000000000FD +:048F710000000000FC +:048F720000000000FB +:048F730000000000FA +:048F740000000000F9 +:048F750000000000F8 +:048F760000000000F7 +:048F770000000000F6 +:048F780000000000F5 +:048F790000000000F4 +:048F7A0000000000F3 +:048F7B0000000000F2 +:048F7C0000000000F1 +:048F7D0000000000F0 +:048F7E0000000000EF +:048F7F0000000000EE +:048F800000000000ED +:048F810000000000EC +:048F820000000000EB +:048F830000000000EA +:048F840000000000E9 +:048F850000000000E8 +:048F860000000000E7 +:048F870000000000E6 +:048F880000000000E5 +:048F890000000000E4 +:048F8A0000000000E3 +:048F8B0000000000E2 +:048F8C0000000000E1 +:048F8D0000000000E0 +:048F8E0000000000DF +:048F8F0000000000DE +:048F900000000000DD +:048F910000000000DC +:048F920000000000DB +:048F930000000000DA +:048F940000000000D9 +:048F950000000000D8 +:048F960000000000D7 +:048F970000000000D6 +:048F980000000000D5 +:048F990000000000D4 +:048F9A0000000000D3 +:048F9B0000000000D2 +:048F9C0000000000D1 +:048F9D0000000000D0 +:048F9E0000000000CF +:048F9F0000000000CE +:048FA00000000000CD +:048FA10000000000CC +:048FA20000000000CB +:048FA30000000000CA +:048FA40000000000C9 +:048FA50000000000C8 +:048FA60000000000C7 +:048FA70000000000C6 +:048FA80000000000C5 +:048FA90000000000C4 +:048FAA0000000000C3 +:048FAB0000000000C2 +:048FAC0000000000C1 +:048FAD0000000000C0 +:048FAE0000000000BF +:048FAF0000000000BE +:048FB00000000000BD +:048FB10000000000BC +:048FB20000000000BB +:048FB30000000000BA +:048FB40000000000B9 +:048FB50000000000B8 +:048FB60000000000B7 +:048FB70000000000B6 +:048FB80000000000B5 +:048FB90000000000B4 +:048FBA0000000000B3 +:048FBB0000000000B2 +:048FBC0000000000B1 +:048FBD0000000000B0 +:048FBE0000000000AF +:048FBF0000000000AE +:048FC00000000000AD +:048FC10000000000AC +:048FC20000000000AB +:048FC30000000000AA +:048FC40000000000A9 +:048FC50000000000A8 +:048FC60000000000A7 +:048FC70000000000A6 +:048FC80000000000A5 +:048FC90000000000A4 +:048FCA0000000000A3 +:048FCB0000000000A2 +:048FCC0000000000A1 +:048FCD0000000000A0 +:048FCE00000000009F +:048FCF00000000009E +:048FD000000000009D +:048FD100000000009C +:048FD200000000009B +:048FD300000000009A +:048FD4000000000099 +:048FD5000000000098 +:048FD6000000000097 +:048FD7000000000096 +:048FD8000000000095 +:048FD9000000000094 +:048FDA000000000093 +:048FDB000000000092 +:048FDC000000000091 +:048FDD000000000090 +:048FDE00000000008F +:048FDF00000000008E +:048FE000000000008D +:048FE100000000008C +:048FE200000000008B +:048FE300000000008A +:048FE4000000000089 +:048FE5000000000088 +:048FE6000000000087 +:048FE7000000000086 +:048FE8000000000085 +:048FE9000000000084 +:048FEA000000000083 +:048FEB000000000082 +:048FEC000000000081 +:048FED000000000080 +:048FEE00000000007F +:048FEF00000000007E +:048FF000000000007D +:048FF100000000007C +:048FF200000000007B +:048FF300000000007A +:048FF4000000000079 +:048FF5000000000078 +:048FF6000000000077 +:048FF7000000000076 +:048FF8000000000075 +:048FF9000000000074 +:048FFA000000000073 +:048FFB000000000072 +:048FFC000000000071 +:048FFD000000000070 +:048FFE00000000006F +:048FFF00000000006E +:04900000000000006C +:04900100000000006B +:04900200000000006A +:049003000000000069 +:049004000000000068 +:049005000000000067 +:049006000000000066 +:049007000000000065 +:049008000000000064 +:049009000000000063 +:04900A000000000062 +:04900B000000000061 +:04900C000000000060 +:04900D00000000005F +:04900E00000000005E +:04900F00000000005D +:04901000000000005C +:04901100000000005B +:04901200000000005A +:049013000000000059 +:049014000000000058 +:049015000000000057 +:049016000000000056 +:049017000000000055 +:049018000000000054 +:049019000000000053 +:04901A000000000052 +:04901B000000000051 +:04901C000000000050 +:04901D00000000004F +:04901E00000000004E +:04901F00000000004D +:04902000000000004C +:04902100000000004B +:04902200000000004A +:049023000000000049 +:049024000000000048 +:049025000000000047 +:049026000000000046 +:049027000000000045 +:049028000000000044 +:049029000000000043 +:04902A000000000042 +:04902B000000000041 +:04902C000000000040 +:04902D00000000003F +:04902E00000000003E +:04902F00000000003D +:04903000000000003C +:04903100000000003B +:04903200000000003A +:049033000000000039 +:049034000000000038 +:049035000000000037 +:049036000000000036 +:049037000000000035 +:049038000000000034 +:049039000000000033 +:04903A000000000032 +:04903B000000000031 +:04903C000000000030 +:04903D00000000002F +:04903E00000000002E +:04903F00000000002D +:04904000000000002C +:04904100000000002B +:04904200000000002A +:049043000000000029 +:049044000000000028 +:049045000000000027 +:049046000000000026 +:049047000000000025 +:049048000000000024 +:049049000000000023 +:04904A000000000022 +:04904B000000000021 +:04904C000000000020 +:04904D00000000001F +:04904E00000000001E +:04904F00000000001D +:04905000000000001C +:04905100000000001B +:04905200000000001A +:049053000000000019 +:049054000000000018 +:049055000000000017 +:049056000000000016 +:049057000000000015 +:049058000000000014 +:049059000000000013 +:04905A000000000012 +:04905B000000000011 +:04905C000000000010 +:04905D00000000000F +:04905E00000000000E +:04905F00000000000D +:04906000000000000C +:04906100000000000B +:04906200000000000A +:049063000000000009 +:049064000000000008 +:049065000000000007 +:049066000000000006 +:049067000000000005 +:049068000000000004 +:049069000000000003 +:04906A000000000002 +:04906B000000000001 +:04906C000000000000 +:04906D0000000000FF +:04906E0000000000FE +:04906F0000000000FD +:0490700000000000FC +:0490710000000000FB +:0490720000000000FA +:0490730000000000F9 +:0490740000000000F8 +:0490750000000000F7 +:0490760000000000F6 +:0490770000000000F5 +:0490780000000000F4 +:0490790000000000F3 +:04907A0000000000F2 +:04907B0000000000F1 +:04907C0000000000F0 +:04907D0000000000EF +:04907E0000000000EE +:04907F0000000000ED +:0490800000000000EC +:0490810000000000EB +:0490820000000000EA +:0490830000000000E9 +:0490840000000000E8 +:0490850000000000E7 +:0490860000000000E6 +:0490870000000000E5 +:0490880000000000E4 +:0490890000000000E3 +:04908A0000000000E2 +:04908B0000000000E1 +:04908C0000000000E0 +:04908D0000000000DF +:04908E0000000000DE +:04908F0000000000DD +:0490900000000000DC +:0490910000000000DB +:0490920000000000DA +:0490930000000000D9 +:0490940000000000D8 +:0490950000000000D7 +:0490960000000000D6 +:0490970000000000D5 +:0490980000000000D4 +:0490990000000000D3 +:04909A0000000000D2 +:04909B0000000000D1 +:04909C0000000000D0 +:04909D0000000000CF +:04909E0000000000CE +:04909F0000000000CD +:0490A00000000000CC +:0490A10000000000CB +:0490A20000000000CA +:0490A30000000000C9 +:0490A40000000000C8 +:0490A50000000000C7 +:0490A60000000000C6 +:0490A70000000000C5 +:0490A80000000000C4 +:0490A90000000000C3 +:0490AA0000000000C2 +:0490AB0000000000C1 +:0490AC0000000000C0 +:0490AD0000000000BF +:0490AE0000000000BE +:0490AF0000000000BD +:0490B00000000000BC +:0490B10000000000BB +:0490B20000000000BA +:0490B30000000000B9 +:0490B40000000000B8 +:0490B50000000000B7 +:0490B60000000000B6 +:0490B70000000000B5 +:0490B80000000000B4 +:0490B90000000000B3 +:0490BA0000000000B2 +:0490BB0000000000B1 +:0490BC0000000000B0 +:0490BD0000000000AF +:0490BE0000000000AE +:0490BF0000000000AD +:0490C00000000000AC +:0490C10000000000AB +:0490C20000000000AA +:0490C30000000000A9 +:0490C40000000000A8 +:0490C50000000000A7 +:0490C60000000000A6 +:0490C70000000000A5 +:0490C80000000000A4 +:0490C90000000000A3 +:0490CA0000000000A2 +:0490CB0000000000A1 +:0490CC0000000000A0 +:0490CD00000000009F +:0490CE00000000009E +:0490CF00000000009D +:0490D000000000009C +:0490D100000000009B +:0490D200000000009A +:0490D3000000000099 +:0490D4000000000098 +:0490D5000000000097 +:0490D6000000000096 +:0490D7000000000095 +:0490D8000000000094 +:0490D9000000000093 +:0490DA000000000092 +:0490DB000000000091 +:0490DC000000000090 +:0490DD00000000008F +:0490DE00000000008E +:0490DF00000000008D +:0490E000000000008C +:0490E100000000008B +:0490E200000000008A +:0490E3000000000089 +:0490E4000000000088 +:0490E5000000000087 +:0490E6000000000086 +:0490E7000000000085 +:0490E8000000000084 +:0490E9000000000083 +:0490EA000000000082 +:0490EB000000000081 +:0490EC000000000080 +:0490ED00000000007F +:0490EE00000000007E +:0490EF00000000007D +:0490F000000000007C +:0490F100000000007B +:0490F200000000007A +:0490F3000000000079 +:0490F4000000000078 +:0490F5000000000077 +:0490F6000000000076 +:0490F7000000000075 +:0490F8000000000074 +:0490F9000000000073 +:0490FA000000000072 +:0490FB000000000071 +:0490FC000000000070 +:0490FD00000000006F +:0490FE00000000006E +:0490FF00000000006D +:04910000000000006B +:04910100000000006A +:049102000000000069 +:049103000000000068 +:049104000000000067 +:049105000000000066 +:049106000000000065 +:049107000000000064 +:049108000000000063 +:049109000000000062 +:04910A000000000061 +:04910B000000000060 +:04910C00000000005F +:04910D00000000005E +:04910E00000000005D +:04910F00000000005C +:04911000000000005B +:04911100000000005A +:049112000000000059 +:049113000000000058 +:049114000000000057 +:049115000000000056 +:049116000000000055 +:049117000000000054 +:049118000000000053 +:049119000000000052 +:04911A000000000051 +:04911B000000000050 +:04911C00000000004F +:04911D00000000004E +:04911E00000000004D +:04911F00000000004C +:04912000000000004B +:04912100000000004A +:049122000000000049 +:049123000000000048 +:049124000000000047 +:049125000000000046 +:049126000000000045 +:049127000000000044 +:049128000000000043 +:049129000000000042 +:04912A000000000041 +:04912B000000000040 +:04912C00000000003F +:04912D00000000003E +:04912E00000000003D +:04912F00000000003C +:04913000000000003B +:04913100000000003A +:049132000000000039 +:049133000000000038 +:049134000000000037 +:049135000000000036 +:049136000000000035 +:049137000000000034 +:049138000000000033 +:049139000000000032 +:04913A000000000031 +:04913B000000000030 +:04913C00000000002F +:04913D00000000002E +:04913E00000000002D +:04913F00000000002C +:04914000000000002B +:04914100000000002A +:049142000000000029 +:049143000000000028 +:049144000000000027 +:049145000000000026 +:049146000000000025 +:049147000000000024 +:049148000000000023 +:049149000000000022 +:04914A000000000021 +:04914B000000000020 +:04914C00000000001F +:04914D00000000001E +:04914E00000000001D +:04914F00000000001C +:04915000000000001B +:04915100000000001A +:049152000000000019 +:049153000000000018 +:049154000000000017 +:049155000000000016 +:049156000000000015 +:049157000000000014 +:049158000000000013 +:049159000000000012 +:04915A000000000011 +:04915B000000000010 +:04915C00000000000F +:04915D00000000000E +:04915E00000000000D +:04915F00000000000C +:04916000000000000B +:04916100000000000A +:049162000000000009 +:049163000000000008 +:049164000000000007 +:049165000000000006 +:049166000000000005 +:049167000000000004 +:049168000000000003 +:049169000000000002 +:04916A000000000001 +:04916B000000000000 +:04916C0000000000FF +:04916D0000000000FE +:04916E0000000000FD +:04916F0000000000FC +:0491700000000000FB +:0491710000000000FA +:0491720000000000F9 +:0491730000000000F8 +:0491740000000000F7 +:0491750000000000F6 +:0491760000000000F5 +:0491770000000000F4 +:0491780000000000F3 +:0491790000000000F2 +:04917A0000000000F1 +:04917B0000000000F0 +:04917C0000000000EF +:04917D0000000000EE +:04917E0000000000ED +:04917F0000000000EC +:0491800000000000EB +:0491810000000000EA +:0491820000000000E9 +:0491830000000000E8 +:0491840000000000E7 +:0491850000000000E6 +:0491860000000000E5 +:0491870000000000E4 +:0491880000000000E3 +:0491890000000000E2 +:04918A0000000000E1 +:04918B0000000000E0 +:04918C0000000000DF +:04918D0000000000DE +:04918E0000000000DD +:04918F0000000000DC +:0491900000000000DB +:0491910000000000DA +:0491920000000000D9 +:0491930000000000D8 +:0491940000000000D7 +:0491950000000000D6 +:0491960000000000D5 +:0491970000000000D4 +:0491980000000000D3 +:0491990000000000D2 +:04919A0000000000D1 +:04919B0000000000D0 +:04919C0000000000CF +:04919D0000000000CE +:04919E0000000000CD +:04919F0000000000CC +:0491A00000000000CB +:0491A10000000000CA +:0491A20000000000C9 +:0491A30000000000C8 +:0491A40000000000C7 +:0491A50000000000C6 +:0491A60000000000C5 +:0491A70000000000C4 +:0491A80000000000C3 +:0491A90000000000C2 +:0491AA0000000000C1 +:0491AB0000000000C0 +:0491AC0000000000BF +:0491AD0000000000BE +:0491AE0000000000BD +:0491AF0000000000BC +:0491B00000000000BB +:0491B10000000000BA +:0491B20000000000B9 +:0491B30000000000B8 +:0491B40000000000B7 +:0491B50000000000B6 +:0491B60000000000B5 +:0491B70000000000B4 +:0491B80000000000B3 +:0491B90000000000B2 +:0491BA0000000000B1 +:0491BB0000000000B0 +:0491BC0000000000AF +:0491BD0000000000AE +:0491BE0000000000AD +:0491BF0000000000AC +:0491C00000000000AB +:0491C10000000000AA +:0491C20000000000A9 +:0491C30000000000A8 +:0491C40000000000A7 +:0491C50000000000A6 +:0491C60000000000A5 +:0491C70000000000A4 +:0491C80000000000A3 +:0491C90000000000A2 +:0491CA0000000000A1 +:0491CB0000000000A0 +:0491CC00000000009F +:0491CD00000000009E +:0491CE00000000009D +:0491CF00000000009C +:0491D000000000009B +:0491D100000000009A +:0491D2000000000099 +:0491D3000000000098 +:0491D4000000000097 +:0491D5000000000096 +:0491D6000000000095 +:0491D7000000000094 +:0491D8000000000093 +:0491D9000000000092 +:0491DA000000000091 +:0491DB000000000090 +:0491DC00000000008F +:0491DD00000000008E +:0491DE00000000008D +:0491DF00000000008C +:0491E000000000008B +:0491E100000000008A +:0491E2000000000089 +:0491E3000000000088 +:0491E4000000000087 +:0491E5000000000086 +:0491E6000000000085 +:0491E7000000000084 +:0491E8000000000083 +:0491E9000000000082 +:0491EA000000000081 +:0491EB000000000080 +:0491EC00000000007F +:0491ED00000000007E +:0491EE00000000007D +:0491EF00000000007C +:0491F000000000007B +:0491F100000000007A +:0491F2000000000079 +:0491F3000000000078 +:0491F4000000000077 +:0491F5000000000076 +:0491F6000000000075 +:0491F7000000000074 +:0491F8000000000073 +:0491F9000000000072 +:0491FA000000000071 +:0491FB000000000070 +:0491FC00000000006F +:0491FD00000000006E +:0491FE00000000006D +:0491FF00000000006C +:04920000000000006A +:049201000000000069 +:049202000000000068 +:049203000000000067 +:049204000000000066 +:049205000000000065 +:049206000000000064 +:049207000000000063 +:049208000000000062 +:049209000000000061 +:04920A000000000060 +:04920B00000000005F +:04920C00000000005E +:04920D00000000005D +:04920E00000000005C +:04920F00000000005B +:04921000000000005A +:049211000000000059 +:049212000000000058 +:049213000000000057 +:049214000000000056 +:049215000000000055 +:049216000000000054 +:049217000000000053 +:049218000000000052 +:049219000000000051 +:04921A000000000050 +:04921B00000000004F +:04921C00000000004E +:04921D00000000004D +:04921E00000000004C +:04921F00000000004B +:04922000000000004A +:049221000000000049 +:049222000000000048 +:049223000000000047 +:049224000000000046 +:049225000000000045 +:049226000000000044 +:049227000000000043 +:049228000000000042 +:049229000000000041 +:04922A000000000040 +:04922B00000000003F +:04922C00000000003E +:04922D00000000003D +:04922E00000000003C +:04922F00000000003B +:04923000000000003A +:049231000000000039 +:049232000000000038 +:049233000000000037 +:049234000000000036 +:049235000000000035 +:049236000000000034 +:049237000000000033 +:049238000000000032 +:049239000000000031 +:04923A000000000030 +:04923B00000000002F +:04923C00000000002E +:04923D00000000002D +:04923E00000000002C +:04923F00000000002B +:04924000000000002A +:049241000000000029 +:049242000000000028 +:049243000000000027 +:049244000000000026 +:049245000000000025 +:049246000000000024 +:049247000000000023 +:049248000000000022 +:049249000000000021 +:04924A000000000020 +:04924B00000000001F +:04924C00000000001E +:04924D00000000001D +:04924E00000000001C +:04924F00000000001B +:04925000000000001A +:049251000000000019 +:049252000000000018 +:049253000000000017 +:049254000000000016 +:049255000000000015 +:049256000000000014 +:049257000000000013 +:049258000000000012 +:049259000000000011 +:04925A000000000010 +:04925B00000000000F +:04925C00000000000E +:04925D00000000000D +:04925E00000000000C +:04925F00000000000B +:04926000000000000A +:049261000000000009 +:049262000000000008 +:049263000000000007 +:049264000000000006 +:049265000000000005 +:049266000000000004 +:049267000000000003 +:049268000000000002 +:049269000000000001 +:04926A000000000000 +:04926B0000000000FF +:04926C0000000000FE +:04926D0000000000FD +:04926E0000000000FC +:04926F0000000000FB +:0492700000000000FA +:0492710000000000F9 +:0492720000000000F8 +:0492730000000000F7 +:0492740000000000F6 +:0492750000000000F5 +:0492760000000000F4 +:0492770000000000F3 +:0492780000000000F2 +:0492790000000000F1 +:04927A0000000000F0 +:04927B0000000000EF +:04927C0000000000EE +:04927D0000000000ED +:04927E0000000000EC +:04927F0000000000EB +:0492800000000000EA +:0492810000000000E9 +:0492820000000000E8 +:0492830000000000E7 +:0492840000000000E6 +:0492850000000000E5 +:0492860000000000E4 +:0492870000000000E3 +:0492880000000000E2 +:0492890000000000E1 +:04928A0000000000E0 +:04928B0000000000DF +:04928C0000000000DE +:04928D0000000000DD +:04928E0000000000DC +:04928F0000000000DB +:0492900000000000DA +:0492910000000000D9 +:0492920000000000D8 +:0492930000000000D7 +:0492940000000000D6 +:0492950000000000D5 +:0492960000000000D4 +:0492970000000000D3 +:0492980000000000D2 +:0492990000000000D1 +:04929A0000000000D0 +:04929B0000000000CF +:04929C0000000000CE +:04929D0000000000CD +:04929E0000000000CC +:04929F0000000000CB +:0492A00000000000CA +:0492A10000000000C9 +:0492A20000000000C8 +:0492A30000000000C7 +:0492A40000000000C6 +:0492A50000000000C5 +:0492A60000000000C4 +:0492A70000000000C3 +:0492A80000000000C2 +:0492A90000000000C1 +:0492AA0000000000C0 +:0492AB0000000000BF +:0492AC0000000000BE +:0492AD0000000000BD +:0492AE0000000000BC +:0492AF0000000000BB +:0492B00000000000BA +:0492B10000000000B9 +:0492B20000000000B8 +:0492B30000000000B7 +:0492B40000000000B6 +:0492B50000000000B5 +:0492B60000000000B4 +:0492B70000000000B3 +:0492B80000000000B2 +:0492B90000000000B1 +:0492BA0000000000B0 +:0492BB0000000000AF +:0492BC0000000000AE +:0492BD0000000000AD +:0492BE0000000000AC +:0492BF0000000000AB +:0492C00000000000AA +:0492C10000000000A9 +:0492C20000000000A8 +:0492C30000000000A7 +:0492C40000000000A6 +:0492C50000000000A5 +:0492C60000000000A4 +:0492C70000000000A3 +:0492C80000000000A2 +:0492C90000000000A1 +:0492CA0000000000A0 +:0492CB00000000009F +:0492CC00000000009E +:0492CD00000000009D +:0492CE00000000009C +:0492CF00000000009B +:0492D000000000009A +:0492D1000000000099 +:0492D2000000000098 +:0492D3000000000097 +:0492D4000000000096 +:0492D5000000000095 +:0492D6000000000094 +:0492D7000000000093 +:0492D8000000000092 +:0492D9000000000091 +:0492DA000000000090 +:0492DB00000000008F +:0492DC00000000008E +:0492DD00000000008D +:0492DE00000000008C +:0492DF00000000008B +:0492E000000000008A +:0492E1000000000089 +:0492E2000000000088 +:0492E3000000000087 +:0492E4000000000086 +:0492E5000000000085 +:0492E6000000000084 +:0492E7000000000083 +:0492E8000000000082 +:0492E9000000000081 +:0492EA000000000080 +:0492EB00000000007F +:0492EC00000000007E +:0492ED00000000007D +:0492EE00000000007C +:0492EF00000000007B +:0492F000000000007A +:0492F1000000000079 +:0492F2000000000078 +:0492F3000000000077 +:0492F4000000000076 +:0492F5000000000075 +:0492F6000000000074 +:0492F7000000000073 +:0492F8000000000072 +:0492F9000000000071 +:0492FA000000000070 +:0492FB00000000006F +:0492FC00000000006E +:0492FD00000000006D +:0492FE00000000006C +:0492FF00000000006B +:049300000000000069 +:049301000000000068 +:049302000000000067 +:049303000000000066 +:049304000000000065 +:049305000000000064 +:049306000000000063 +:049307000000000062 +:049308000000000061 +:049309000000000060 +:04930A00000000005F +:04930B00000000005E +:04930C00000000005D +:04930D00000000005C +:04930E00000000005B +:04930F00000000005A +:049310000000000059 +:049311000000000058 +:049312000000000057 +:049313000000000056 +:049314000000000055 +:049315000000000054 +:049316000000000053 +:049317000000000052 +:049318000000000051 +:049319000000000050 +:04931A00000000004F +:04931B00000000004E +:04931C00000000004D +:04931D00000000004C +:04931E00000000004B +:04931F00000000004A +:049320000000000049 +:049321000000000048 +:049322000000000047 +:049323000000000046 +:049324000000000045 +:049325000000000044 +:049326000000000043 +:049327000000000042 +:049328000000000041 +:049329000000000040 +:04932A00000000003F +:04932B00000000003E +:04932C00000000003D +:04932D00000000003C +:04932E00000000003B +:04932F00000000003A +:049330000000000039 +:049331000000000038 +:049332000000000037 +:049333000000000036 +:049334000000000035 +:049335000000000034 +:049336000000000033 +:049337000000000032 +:049338000000000031 +:049339000000000030 +:04933A00000000002F +:04933B00000000002E +:04933C00000000002D +:04933D00000000002C +:04933E00000000002B +:04933F00000000002A +:049340000000000029 +:049341000000000028 +:049342000000000027 +:049343000000000026 +:049344000000000025 +:049345000000000024 +:049346000000000023 +:049347000000000022 +:049348000000000021 +:049349000000000020 +:04934A00000000001F +:04934B00000000001E +:04934C00000000001D +:04934D00000000001C +:04934E00000000001B +:04934F00000000001A +:049350000000000019 +:049351000000000018 +:049352000000000017 +:049353000000000016 +:049354000000000015 +:049355000000000014 +:049356000000000013 +:049357000000000012 +:049358000000000011 +:049359000000000010 +:04935A00000000000F +:04935B00000000000E +:04935C00000000000D +:04935D00000000000C +:04935E00000000000B +:04935F00000000000A +:049360000000000009 +:049361000000000008 +:049362000000000007 +:049363000000000006 +:049364000000000005 +:049365000000000004 +:049366000000000003 +:049367000000000002 +:049368000000000001 +:049369000000000000 +:04936A0000000000FF +:04936B0000000000FE +:04936C0000000000FD +:04936D0000000000FC +:04936E0000000000FB +:04936F0000000000FA +:0493700000000000F9 +:0493710000000000F8 +:0493720000000000F7 +:0493730000000000F6 +:0493740000000000F5 +:0493750000000000F4 +:0493760000000000F3 +:0493770000000000F2 +:0493780000000000F1 +:0493790000000000F0 +:04937A0000000000EF +:04937B0000000000EE +:04937C0000000000ED +:04937D0000000000EC +:04937E0000000000EB +:04937F0000000000EA +:0493800000000000E9 +:0493810000000000E8 +:0493820000000000E7 +:0493830000000000E6 +:0493840000000000E5 +:0493850000000000E4 +:0493860000000000E3 +:0493870000000000E2 +:0493880000000000E1 +:0493890000000000E0 +:04938A0000000000DF +:04938B0000000000DE +:04938C0000000000DD +:04938D0000000000DC +:04938E0000000000DB +:04938F0000000000DA +:0493900000000000D9 +:0493910000000000D8 +:0493920000000000D7 +:0493930000000000D6 +:0493940000000000D5 +:0493950000000000D4 +:0493960000000000D3 +:0493970000000000D2 +:0493980000000000D1 +:0493990000000000D0 +:04939A0000000000CF +:04939B0000000000CE +:04939C0000000000CD +:04939D0000000000CC +:04939E0000000000CB +:04939F0000000000CA +:0493A00000000000C9 +:0493A10000000000C8 +:0493A20000000000C7 +:0493A30000000000C6 +:0493A40000000000C5 +:0493A50000000000C4 +:0493A60000000000C3 +:0493A70000000000C2 +:0493A80000000000C1 +:0493A90000000000C0 +:0493AA0000000000BF +:0493AB0000000000BE +:0493AC0000000000BD +:0493AD0000000000BC +:0493AE0000000000BB +:0493AF0000000000BA +:0493B00000000000B9 +:0493B10000000000B8 +:0493B20000000000B7 +:0493B30000000000B6 +:0493B40000000000B5 +:0493B50000000000B4 +:0493B60000000000B3 +:0493B70000000000B2 +:0493B80000000000B1 +:0493B90000000000B0 +:0493BA0000000000AF +:0493BB0000000000AE +:0493BC0000000000AD +:0493BD0000000000AC +:0493BE0000000000AB +:0493BF0000000000AA +:0493C00000000000A9 +:0493C10000000000A8 +:0493C20000000000A7 +:0493C30000000000A6 +:0493C40000000000A5 +:0493C50000000000A4 +:0493C60000000000A3 +:0493C70000000000A2 +:0493C80000000000A1 +:0493C90000000000A0 +:0493CA00000000009F +:0493CB00000000009E +:0493CC00000000009D +:0493CD00000000009C +:0493CE00000000009B +:0493CF00000000009A +:0493D0000000000099 +:0493D1000000000098 +:0493D2000000000097 +:0493D3000000000096 +:0493D4000000000095 +:0493D5000000000094 +:0493D6000000000093 +:0493D7000000000092 +:0493D8000000000091 +:0493D9000000000090 +:0493DA00000000008F +:0493DB00000000008E +:0493DC00000000008D +:0493DD00000000008C +:0493DE00000000008B +:0493DF00000000008A +:0493E0000000000089 +:0493E1000000000088 +:0493E2000000000087 +:0493E3000000000086 +:0493E4000000000085 +:0493E5000000000084 +:0493E6000000000083 +:0493E7000000000082 +:0493E8000000000081 +:0493E9000000000080 +:0493EA00000000007F +:0493EB00000000007E +:0493EC00000000007D +:0493ED00000000007C +:0493EE00000000007B +:0493EF00000000007A +:0493F0000000000079 +:0493F1000000000078 +:0493F2000000000077 +:0493F3000000000076 +:0493F4000000000075 +:0493F5000000000074 +:0493F6000000000073 +:0493F7000000000072 +:0493F8000000000071 +:0493F9000000000070 +:0493FA00000000006F +:0493FB00000000006E +:0493FC00000000006D +:0493FD00000000006C +:0493FE00000000006B +:0493FF00000000006A +:049400000000000068 +:049401000000000067 +:049402000000000066 +:049403000000000065 +:049404000000000064 +:049405000000000063 +:049406000000000062 +:049407000000000061 +:049408000000000060 +:04940900000000005F +:04940A00000000005E +:04940B00000000005D +:04940C00000000005C +:04940D00000000005B +:04940E00000000005A +:04940F000000000059 +:049410000000000058 +:049411000000000057 +:049412000000000056 +:049413000000000055 +:049414000000000054 +:049415000000000053 +:049416000000000052 +:049417000000000051 +:049418000000000050 +:04941900000000004F +:04941A00000000004E +:04941B00000000004D +:04941C00000000004C +:04941D00000000004B +:04941E00000000004A +:04941F000000000049 +:049420000000000048 +:049421000000000047 +:049422000000000046 +:049423000000000045 +:049424000000000044 +:049425000000000043 +:049426000000000042 +:049427000000000041 +:049428000000000040 +:04942900000000003F +:04942A00000000003E +:04942B00000000003D +:04942C00000000003C +:04942D00000000003B +:04942E00000000003A +:04942F000000000039 +:049430000000000038 +:049431000000000037 +:049432000000000036 +:049433000000000035 +:049434000000000034 +:049435000000000033 +:049436000000000032 +:049437000000000031 +:049438000000000030 +:04943900000000002F +:04943A00000000002E +:04943B00000000002D +:04943C00000000002C +:04943D00000000002B +:04943E00000000002A +:04943F000000000029 +:049440000000000028 +:049441000000000027 +:049442000000000026 +:049443000000000025 +:049444000000000024 +:049445000000000023 +:049446000000000022 +:049447000000000021 +:049448000000000020 +:04944900000000001F +:04944A00000000001E +:04944B00000000001D +:04944C00000000001C +:04944D00000000001B +:04944E00000000001A +:04944F000000000019 +:049450000000000018 +:049451000000000017 +:049452000000000016 +:049453000000000015 +:049454000000000014 +:049455000000000013 +:049456000000000012 +:049457000000000011 +:049458000000000010 +:04945900000000000F +:04945A00000000000E +:04945B00000000000D +:04945C00000000000C +:04945D00000000000B +:04945E00000000000A +:04945F000000000009 +:049460000000000008 +:049461000000000007 +:049462000000000006 +:049463000000000005 +:049464000000000004 +:049465000000000003 +:049466000000000002 +:049467000000000001 +:049468000000000000 +:0494690000000000FF +:04946A0000000000FE +:04946B0000000000FD +:04946C0000000000FC +:04946D0000000000FB +:04946E0000000000FA +:04946F0000000000F9 +:0494700000000000F8 +:0494710000000000F7 +:0494720000000000F6 +:0494730000000000F5 +:0494740000000000F4 +:0494750000000000F3 +:0494760000000000F2 +:0494770000000000F1 +:0494780000000000F0 +:0494790000000000EF +:04947A0000000000EE +:04947B0000000000ED +:04947C0000000000EC +:04947D0000000000EB +:04947E0000000000EA +:04947F0000000000E9 +:0494800000000000E8 +:0494810000000000E7 +:0494820000000000E6 +:0494830000000000E5 +:0494840000000000E4 +:0494850000000000E3 +:0494860000000000E2 +:0494870000000000E1 +:0494880000000000E0 +:0494890000000000DF +:04948A0000000000DE +:04948B0000000000DD +:04948C0000000000DC +:04948D0000000000DB +:04948E0000000000DA +:04948F0000000000D9 +:0494900000000000D8 +:0494910000000000D7 +:0494920000000000D6 +:0494930000000000D5 +:0494940000000000D4 +:0494950000000000D3 +:0494960000000000D2 +:0494970000000000D1 +:0494980000000000D0 +:0494990000000000CF +:04949A0000000000CE +:04949B0000000000CD +:04949C0000000000CC +:04949D0000000000CB +:04949E0000000000CA +:04949F0000000000C9 +:0494A00000000000C8 +:0494A10000000000C7 +:0494A20000000000C6 +:0494A30000000000C5 +:0494A40000000000C4 +:0494A50000000000C3 +:0494A60000000000C2 +:0494A70000000000C1 +:0494A80000000000C0 +:0494A90000000000BF +:0494AA0000000000BE +:0494AB0000000000BD +:0494AC0000000000BC +:0494AD0000000000BB +:0494AE0000000000BA +:0494AF0000000000B9 +:0494B00000000000B8 +:0494B10000000000B7 +:0494B20000000000B6 +:0494B30000000000B5 +:0494B40000000000B4 +:0494B50000000000B3 +:0494B60000000000B2 +:0494B70000000000B1 +:0494B80000000000B0 +:0494B90000000000AF +:0494BA0000000000AE +:0494BB0000000000AD +:0494BC0000000000AC +:0494BD0000000000AB +:0494BE0000000000AA +:0494BF0000000000A9 +:0494C00000000000A8 +:0494C10000000000A7 +:0494C20000000000A6 +:0494C30000000000A5 +:0494C40000000000A4 +:0494C50000000000A3 +:0494C60000000000A2 +:0494C70000000000A1 +:0494C80000000000A0 +:0494C900000000009F +:0494CA00000000009E +:0494CB00000000009D +:0494CC00000000009C +:0494CD00000000009B +:0494CE00000000009A +:0494CF000000000099 +:0494D0000000000098 +:0494D1000000000097 +:0494D2000000000096 +:0494D3000000000095 +:0494D4000000000094 +:0494D5000000000093 +:0494D6000000000092 +:0494D7000000000091 +:0494D8000000000090 +:0494D900000000008F +:0494DA00000000008E +:0494DB00000000008D +:0494DC00000000008C +:0494DD00000000008B +:0494DE00000000008A +:0494DF000000000089 +:0494E0000000000088 +:0494E1000000000087 +:0494E2000000000086 +:0494E3000000000085 +:0494E4000000000084 +:0494E5000000000083 +:0494E6000000000082 +:0494E7000000000081 +:0494E8000000000080 +:0494E900000000007F +:0494EA00000000007E +:0494EB00000000007D +:0494EC00000000007C +:0494ED00000000007B +:0494EE00000000007A +:0494EF000000000079 +:0494F0000000000078 +:0494F1000000000077 +:0494F2000000000076 +:0494F3000000000075 +:0494F4000000000074 +:0494F5000000000073 +:0494F6000000000072 +:0494F7000000000071 +:0494F8000000000070 +:0494F900000000006F +:0494FA00000000006E +:0494FB00000000006D +:0494FC00000000006C +:0494FD00000000006B +:0494FE00000000006A +:0494FF000000000069 +:049500000000000067 +:049501000000000066 +:049502000000000065 +:049503000000000064 +:049504000000000063 +:049505000000000062 +:049506000000000061 +:049507000000000060 +:04950800000000005F +:04950900000000005E +:04950A00000000005D +:04950B00000000005C +:04950C00000000005B +:04950D00000000005A +:04950E000000000059 +:04950F000000000058 +:049510000000000057 +:049511000000000056 +:049512000000000055 +:049513000000000054 +:049514000000000053 +:049515000000000052 +:049516000000000051 +:049517000000000050 +:04951800000000004F +:04951900000000004E +:04951A00000000004D +:04951B00000000004C +:04951C00000000004B +:04951D00000000004A +:04951E000000000049 +:04951F000000000048 +:049520000000000047 +:049521000000000046 +:049522000000000045 +:049523000000000044 +:049524000000000043 +:049525000000000042 +:049526000000000041 +:049527000000000040 +:04952800000000003F +:04952900000000003E +:04952A00000000003D +:04952B00000000003C +:04952C00000000003B +:04952D00000000003A +:04952E000000000039 +:04952F000000000038 +:049530000000000037 +:049531000000000036 +:049532000000000035 +:049533000000000034 +:049534000000000033 +:049535000000000032 +:049536000000000031 +:049537000000000030 +:04953800000000002F +:04953900000000002E +:04953A00000000002D +:04953B00000000002C +:04953C00000000002B +:04953D00000000002A +:04953E000000000029 +:04953F000000000028 +:049540000000000027 +:049541000000000026 +:049542000000000025 +:049543000000000024 +:049544000000000023 +:049545000000000022 +:049546000000000021 +:049547000000000020 +:04954800000000001F +:04954900000000001E +:04954A00000000001D +:04954B00000000001C +:04954C00000000001B +:04954D00000000001A +:04954E000000000019 +:04954F000000000018 +:049550000000000017 +:049551000000000016 +:049552000000000015 +:049553000000000014 +:049554000000000013 +:049555000000000012 +:049556000000000011 +:049557000000000010 +:04955800000000000F +:04955900000000000E +:04955A00000000000D +:04955B00000000000C +:04955C00000000000B +:04955D00000000000A +:04955E000000000009 +:04955F000000000008 +:049560000000000007 +:049561000000000006 +:049562000000000005 +:049563000000000004 +:049564000000000003 +:049565000000000002 +:049566000000000001 +:049567000000000000 +:0495680000000000FF +:0495690000000000FE +:04956A0000000000FD +:04956B0000000000FC +:04956C0000000000FB +:04956D0000000000FA +:04956E0000000000F9 +:04956F0000000000F8 +:0495700000000000F7 +:0495710000000000F6 +:0495720000000000F5 +:0495730000000000F4 +:0495740000000000F3 +:0495750000000000F2 +:0495760000000000F1 +:0495770000000000F0 +:0495780000000000EF +:0495790000000000EE +:04957A0000000000ED +:04957B0000000000EC +:04957C0000000000EB +:04957D0000000000EA +:04957E0000000000E9 +:04957F0000000000E8 +:0495800000000000E7 +:0495810000000000E6 +:0495820000000000E5 +:0495830000000000E4 +:0495840000000000E3 +:0495850000000000E2 +:0495860000000000E1 +:0495870000000000E0 +:0495880000000000DF +:0495890000000000DE +:04958A0000000000DD +:04958B0000000000DC +:04958C0000000000DB +:04958D0000000000DA +:04958E0000000000D9 +:04958F0000000000D8 +:0495900000000000D7 +:0495910000000000D6 +:0495920000000000D5 +:0495930000000000D4 +:0495940000000000D3 +:0495950000000000D2 +:0495960000000000D1 +:0495970000000000D0 +:0495980000000000CF +:0495990000000000CE +:04959A0000000000CD +:04959B0000000000CC +:04959C0000000000CB +:04959D0000000000CA +:04959E0000000000C9 +:04959F0000000000C8 +:0495A00000000000C7 +:0495A10000000000C6 +:0495A20000000000C5 +:0495A30000000000C4 +:0495A40000000000C3 +:0495A50000000000C2 +:0495A60000000000C1 +:0495A70000000000C0 +:0495A80000000000BF +:0495A90000000000BE +:0495AA0000000000BD +:0495AB0000000000BC +:0495AC0000000000BB +:0495AD0000000000BA +:0495AE0000000000B9 +:0495AF0000000000B8 +:0495B00000000000B7 +:0495B10000000000B6 +:0495B20000000000B5 +:0495B30000000000B4 +:0495B40000000000B3 +:0495B50000000000B2 +:0495B60000000000B1 +:0495B70000000000B0 +:0495B80000000000AF +:0495B90000000000AE +:0495BA0000000000AD +:0495BB0000000000AC +:0495BC0000000000AB +:0495BD0000000000AA +:0495BE0000000000A9 +:0495BF0000000000A8 +:0495C00000000000A7 +:0495C10000000000A6 +:0495C20000000000A5 +:0495C30000000000A4 +:0495C40000000000A3 +:0495C50000000000A2 +:0495C60000000000A1 +:0495C70000000000A0 +:0495C800000000009F +:0495C900000000009E +:0495CA00000000009D +:0495CB00000000009C +:0495CC00000000009B +:0495CD00000000009A +:0495CE000000000099 +:0495CF000000000098 +:0495D0000000000097 +:0495D1000000000096 +:0495D2000000000095 +:0495D3000000000094 +:0495D4000000000093 +:0495D5000000000092 +:0495D6000000000091 +:0495D7000000000090 +:0495D800000000008F +:0495D900000000008E +:0495DA00000000008D +:0495DB00000000008C +:0495DC00000000008B +:0495DD00000000008A +:0495DE000000000089 +:0495DF000000000088 +:0495E0000000000087 +:0495E1000000000086 +:0495E2000000000085 +:0495E3000000000084 +:0495E4000000000083 +:0495E5000000000082 +:0495E6000000000081 +:0495E7000000000080 +:0495E800000000007F +:0495E900000000007E +:0495EA00000000007D +:0495EB00000000007C +:0495EC00000000007B +:0495ED00000000007A +:0495EE000000000079 +:0495EF000000000078 +:0495F0000000000077 +:0495F1000000000076 +:0495F2000000000075 +:0495F3000000000074 +:0495F4000000000073 +:0495F5000000000072 +:0495F6000000000071 +:0495F7000000000070 +:0495F800000000006F +:0495F900000000006E +:0495FA00000000006D +:0495FB00000000006C +:0495FC00000000006B +:0495FD00000000006A +:0495FE000000000069 +:0495FF000000000068 +:049600000000000066 +:049601000000000065 +:049602000000000064 +:049603000000000063 +:049604000000000062 +:049605000000000061 +:049606000000000060 +:04960700000000005F +:04960800000000005E +:04960900000000005D +:04960A00000000005C +:04960B00000000005B +:04960C00000000005A +:04960D000000000059 +:04960E000000000058 +:04960F000000000057 +:049610000000000056 +:049611000000000055 +:049612000000000054 +:049613000000000053 +:049614000000000052 +:049615000000000051 +:049616000000000050 +:04961700000000004F +:04961800000000004E +:04961900000000004D +:04961A00000000004C +:04961B00000000004B +:04961C00000000004A +:04961D000000000049 +:04961E000000000048 +:04961F000000000047 +:049620000000000046 +:049621000000000045 +:049622000000000044 +:049623000000000043 +:049624000000000042 +:049625000000000041 +:049626000000000040 +:04962700000000003F +:04962800000000003E +:04962900000000003D +:04962A00000000003C +:04962B00000000003B +:04962C00000000003A +:04962D000000000039 +:04962E000000000038 +:04962F000000000037 +:049630000000000036 +:049631000000000035 +:049632000000000034 +:049633000000000033 +:049634000000000032 +:049635000000000031 +:049636000000000030 +:04963700000000002F +:04963800000000002E +:04963900000000002D +:04963A00000000002C +:04963B00000000002B +:04963C00000000002A +:04963D000000000029 +:04963E000000000028 +:04963F000000000027 +:049640000000000026 +:049641000000000025 +:049642000000000024 +:049643000000000023 +:049644000000000022 +:049645000000000021 +:049646000000000020 +:04964700000000001F +:04964800000000001E +:04964900000000001D +:04964A00000000001C +:04964B00000000001B +:04964C00000000001A +:04964D000000000019 +:04964E000000000018 +:04964F000000000017 +:049650000000000016 +:049651000000000015 +:049652000000000014 +:049653000000000013 +:049654000000000012 +:049655000000000011 +:049656000000000010 +:04965700000000000F +:04965800000000000E +:04965900000000000D +:04965A00000000000C +:04965B00000000000B +:04965C00000000000A +:04965D000000000009 +:04965E000000000008 +:04965F000000000007 +:049660000000000006 +:049661000000000005 +:049662000000000004 +:049663000000000003 +:049664000000000002 +:049665000000000001 +:049666000000000000 +:0496670000000000FF +:0496680000000000FE +:0496690000000000FD +:04966A0000000000FC +:04966B0000000000FB +:04966C0000000000FA +:04966D0000000000F9 +:04966E0000000000F8 +:04966F0000000000F7 +:0496700000000000F6 +:0496710000000000F5 +:0496720000000000F4 +:0496730000000000F3 +:0496740000000000F2 +:0496750000000000F1 +:0496760000000000F0 +:0496770000000000EF +:0496780000000000EE +:0496790000000000ED +:04967A0000000000EC +:04967B0000000000EB +:04967C0000000000EA +:04967D0000000000E9 +:04967E0000000000E8 +:04967F0000000000E7 +:0496800000000000E6 +:0496810000000000E5 +:0496820000000000E4 +:0496830000000000E3 +:0496840000000000E2 +:0496850000000000E1 +:0496860000000000E0 +:0496870000000000DF +:0496880000000000DE +:0496890000000000DD +:04968A0000000000DC +:04968B0000000000DB +:04968C0000000000DA +:04968D0000000000D9 +:04968E0000000000D8 +:04968F0000000000D7 +:0496900000000000D6 +:0496910000000000D5 +:0496920000000000D4 +:0496930000000000D3 +:0496940000000000D2 +:0496950000000000D1 +:0496960000000000D0 +:0496970000000000CF +:0496980000000000CE +:0496990000000000CD +:04969A0000000000CC +:04969B0000000000CB +:04969C0000000000CA +:04969D0000000000C9 +:04969E0000000000C8 +:04969F0000000000C7 +:0496A00000000000C6 +:0496A10000000000C5 +:0496A20000000000C4 +:0496A30000000000C3 +:0496A40000000000C2 +:0496A50000000000C1 +:0496A60000000000C0 +:0496A70000000000BF +:0496A80000000000BE +:0496A90000000000BD +:0496AA0000000000BC +:0496AB0000000000BB +:0496AC0000000000BA +:0496AD0000000000B9 +:0496AE0000000000B8 +:0496AF0000000000B7 +:0496B00000000000B6 +:0496B10000000000B5 +:0496B20000000000B4 +:0496B30000000000B3 +:0496B40000000000B2 +:0496B50000000000B1 +:0496B60000000000B0 +:0496B70000000000AF +:0496B80000000000AE +:0496B90000000000AD +:0496BA0000000000AC +:0496BB0000000000AB +:0496BC0000000000AA +:0496BD0000000000A9 +:0496BE0000000000A8 +:0496BF0000000000A7 +:0496C00000000000A6 +:0496C10000000000A5 +:0496C20000000000A4 +:0496C30000000000A3 +:0496C40000000000A2 +:0496C50000000000A1 +:0496C60000000000A0 +:0496C700000000009F +:0496C800000000009E +:0496C900000000009D +:0496CA00000000009C +:0496CB00000000009B +:0496CC00000000009A +:0496CD000000000099 +:0496CE000000000098 +:0496CF000000000097 +:0496D0000000000096 +:0496D1000000000095 +:0496D2000000000094 +:0496D3000000000093 +:0496D4000000000092 +:0496D5000000000091 +:0496D6000000000090 +:0496D700000000008F +:0496D800000000008E +:0496D900000000008D +:0496DA00000000008C +:0496DB00000000008B +:0496DC00000000008A +:0496DD000000000089 +:0496DE000000000088 +:0496DF000000000087 +:0496E0000000000086 +:0496E1000000000085 +:0496E2000000000084 +:0496E3000000000083 +:0496E4000000000082 +:0496E5000000000081 +:0496E6000000000080 +:0496E700000000007F +:0496E800000000007E +:0496E900000000007D +:0496EA00000000007C +:0496EB00000000007B +:0496EC00000000007A +:0496ED000000000079 +:0496EE000000000078 +:0496EF000000000077 +:0496F0000000000076 +:0496F1000000000075 +:0496F2000000000074 +:0496F3000000000073 +:0496F4000000000072 +:0496F5000000000071 +:0496F6000000000070 +:0496F700000000006F +:0496F800000000006E +:0496F900000000006D +:0496FA00000000006C +:0496FB00000000006B +:0496FC00000000006A +:0496FD000000000069 +:0496FE000000000068 +:0496FF000000000067 +:049700000000000065 +:049701000000000064 +:049702000000000063 +:049703000000000062 +:049704000000000061 +:049705000000000060 +:04970600000000005F +:04970700000000005E +:04970800000000005D +:04970900000000005C +:04970A00000000005B +:04970B00000000005A +:04970C000000000059 +:04970D000000000058 +:04970E000000000057 +:04970F000000000056 +:049710000000000055 +:049711000000000054 +:049712000000000053 +:049713000000000052 +:049714000000000051 +:049715000000000050 +:04971600000000004F +:04971700000000004E +:04971800000000004D +:04971900000000004C +:04971A00000000004B +:04971B00000000004A +:04971C000000000049 +:04971D000000000048 +:04971E000000000047 +:04971F000000000046 +:049720000000000045 +:049721000000000044 +:049722000000000043 +:049723000000000042 +:049724000000000041 +:049725000000000040 +:04972600000000003F +:04972700000000003E +:04972800000000003D +:04972900000000003C +:04972A00000000003B +:04972B00000000003A +:04972C000000000039 +:04972D000000000038 +:04972E000000000037 +:04972F000000000036 +:049730000000000035 +:049731000000000034 +:049732000000000033 +:049733000000000032 +:049734000000000031 +:049735000000000030 +:04973600000000002F +:04973700000000002E +:04973800000000002D +:04973900000000002C +:04973A00000000002B +:04973B00000000002A +:04973C000000000029 +:04973D000000000028 +:04973E000000000027 +:04973F000000000026 +:049740000000000025 +:049741000000000024 +:049742000000000023 +:049743000000000022 +:049744000000000021 +:049745000000000020 +:04974600000000001F +:04974700000000001E +:04974800000000001D +:04974900000000001C +:04974A00000000001B +:04974B00000000001A +:04974C000000000019 +:04974D000000000018 +:04974E000000000017 +:04974F000000000016 +:049750000000000015 +:049751000000000014 +:049752000000000013 +:049753000000000012 +:049754000000000011 +:049755000000000010 +:04975600000000000F +:04975700000000000E +:04975800000000000D +:04975900000000000C +:04975A00000000000B +:04975B00000000000A +:04975C000000000009 +:04975D000000000008 +:04975E000000000007 +:04975F000000000006 +:049760000000000005 +:049761000000000004 +:049762000000000003 +:049763000000000002 +:049764000000000001 +:049765000000000000 +:0497660000000000FF +:0497670000000000FE +:0497680000000000FD +:0497690000000000FC +:04976A0000000000FB +:04976B0000000000FA +:04976C0000000000F9 +:04976D0000000000F8 +:04976E0000000000F7 +:04976F0000000000F6 +:0497700000000000F5 +:0497710000000000F4 +:0497720000000000F3 +:0497730000000000F2 +:0497740000000000F1 +:0497750000000000F0 +:0497760000000000EF +:0497770000000000EE +:0497780000000000ED +:0497790000000000EC +:04977A0000000000EB +:04977B0000000000EA +:04977C0000000000E9 +:04977D0000000000E8 +:04977E0000000000E7 +:04977F0000000000E6 +:0497800000000000E5 +:0497810000000000E4 +:0497820000000000E3 +:0497830000000000E2 +:0497840000000000E1 +:0497850000000000E0 +:0497860000000000DF +:0497870000000000DE +:0497880000000000DD +:0497890000000000DC +:04978A0000000000DB +:04978B0000000000DA +:04978C0000000000D9 +:04978D0000000000D8 +:04978E0000000000D7 +:04978F0000000000D6 +:0497900000000000D5 +:0497910000000000D4 +:0497920000000000D3 +:0497930000000000D2 +:0497940000000000D1 +:0497950000000000D0 +:0497960000000000CF +:0497970000000000CE +:0497980000000000CD +:0497990000000000CC +:04979A0000000000CB +:04979B0000000000CA +:04979C0000000000C9 +:04979D0000000000C8 +:04979E0000000000C7 +:04979F0000000000C6 +:0497A00000000000C5 +:0497A10000000000C4 +:0497A20000000000C3 +:0497A30000000000C2 +:0497A40000000000C1 +:0497A50000000000C0 +:0497A60000000000BF +:0497A70000000000BE +:0497A80000000000BD +:0497A90000000000BC +:0497AA0000000000BB +:0497AB0000000000BA +:0497AC0000000000B9 +:0497AD0000000000B8 +:0497AE0000000000B7 +:0497AF0000000000B6 +:0497B00000000000B5 +:0497B10000000000B4 +:0497B20000000000B3 +:0497B30000000000B2 +:0497B40000000000B1 +:0497B50000000000B0 +:0497B60000000000AF +:0497B70000000000AE +:0497B80000000000AD +:0497B90000000000AC +:0497BA0000000000AB +:0497BB0000000000AA +:0497BC0000000000A9 +:0497BD0000000000A8 +:0497BE0000000000A7 +:0497BF0000000000A6 +:0497C00000000000A5 +:0497C10000000000A4 +:0497C20000000000A3 +:0497C30000000000A2 +:0497C40000000000A1 +:0497C50000000000A0 +:0497C600000000009F +:0497C700000000009E +:0497C800000000009D +:0497C900000000009C +:0497CA00000000009B +:0497CB00000000009A +:0497CC000000000099 +:0497CD000000000098 +:0497CE000000000097 +:0497CF000000000096 +:0497D0000000000095 +:0497D1000000000094 +:0497D2000000000093 +:0497D3000000000092 +:0497D4000000000091 +:0497D5000000000090 +:0497D600000000008F +:0497D700000000008E +:0497D800000000008D +:0497D900000000008C +:0497DA00000000008B +:0497DB00000000008A +:0497DC000000000089 +:0497DD000000000088 +:0497DE000000000087 +:0497DF000000000086 +:0497E0000000000085 +:0497E1000000000084 +:0497E2000000000083 +:0497E3000000000082 +:0497E4000000000081 +:0497E5000000000080 +:0497E600000000007F +:0497E700000000007E +:0497E800000000007D +:0497E900000000007C +:0497EA00000000007B +:0497EB00000000007A +:0497EC000000000079 +:0497ED000000000078 +:0497EE000000000077 +:0497EF000000000076 +:0497F0000000000075 +:0497F1000000000074 +:0497F2000000000073 +:0497F3000000000072 +:0497F4000000000071 +:0497F5000000000070 +:0497F600000000006F +:0497F700000000006E +:0497F800000000006D +:0497F900000000006C +:0497FA00000000006B +:0497FB00000000006A +:0497FC000000000069 +:0497FD000000000068 +:0497FE000000000067 +:0497FF000000000066 +:049800000000000064 +:049801000000000063 +:049802000000000062 +:049803000000000061 +:049804000000000060 +:04980500000000005F +:04980600000000005E +:04980700000000005D +:04980800000000005C +:04980900000000005B +:04980A00000000005A +:04980B000000000059 +:04980C000000000058 +:04980D000000000057 +:04980E000000000056 +:04980F000000000055 +:049810000000000054 +:049811000000000053 +:049812000000000052 +:049813000000000051 +:049814000000000050 +:04981500000000004F +:04981600000000004E +:04981700000000004D +:04981800000000004C +:04981900000000004B +:04981A00000000004A +:04981B000000000049 +:04981C000000000048 +:04981D000000000047 +:04981E000000000046 +:04981F000000000045 +:049820000000000044 +:049821000000000043 +:049822000000000042 +:049823000000000041 +:049824000000000040 +:04982500000000003F +:04982600000000003E +:04982700000000003D +:04982800000000003C +:04982900000000003B +:04982A00000000003A +:04982B000000000039 +:04982C000000000038 +:04982D000000000037 +:04982E000000000036 +:04982F000000000035 +:049830000000000034 +:049831000000000033 +:049832000000000032 +:049833000000000031 +:049834000000000030 +:04983500000000002F +:04983600000000002E +:04983700000000002D +:04983800000000002C +:04983900000000002B +:04983A00000000002A +:04983B000000000029 +:04983C000000000028 +:04983D000000000027 +:04983E000000000026 +:04983F000000000025 +:049840000000000024 +:049841000000000023 +:049842000000000022 +:049843000000000021 +:049844000000000020 +:04984500000000001F +:04984600000000001E +:04984700000000001D +:04984800000000001C +:04984900000000001B +:04984A00000000001A +:04984B000000000019 +:04984C000000000018 +:04984D000000000017 +:04984E000000000016 +:04984F000000000015 +:049850000000000014 +:049851000000000013 +:049852000000000012 +:049853000000000011 +:049854000000000010 +:04985500000000000F +:04985600000000000E +:04985700000000000D +:04985800000000000C +:04985900000000000B +:04985A00000000000A +:04985B000000000009 +:04985C000000000008 +:04985D000000000007 +:04985E000000000006 +:04985F000000000005 +:049860000000000004 +:049861000000000003 +:049862000000000002 +:049863000000000001 +:049864000000000000 +:0498650000000000FF +:0498660000000000FE +:0498670000000000FD +:0498680000000000FC +:0498690000000000FB +:04986A0000000000FA +:04986B0000000000F9 +:04986C0000000000F8 +:04986D0000000000F7 +:04986E0000000000F6 +:04986F0000000000F5 +:0498700000000000F4 +:0498710000000000F3 +:0498720000000000F2 +:0498730000000000F1 +:0498740000000000F0 +:0498750000000000EF +:0498760000000000EE +:0498770000000000ED +:0498780000000000EC +:0498790000000000EB +:04987A0000000000EA +:04987B0000000000E9 +:04987C0000000000E8 +:04987D0000000000E7 +:04987E0000000000E6 +:04987F0000000000E5 +:0498800000000000E4 +:0498810000000000E3 +:0498820000000000E2 +:0498830000000000E1 +:0498840000000000E0 +:0498850000000000DF +:0498860000000000DE +:0498870000000000DD +:0498880000000000DC +:0498890000000000DB +:04988A0000000000DA +:04988B0000000000D9 +:04988C0000000000D8 +:04988D0000000000D7 +:04988E0000000000D6 +:04988F0000000000D5 +:0498900000000000D4 +:0498910000000000D3 +:0498920000000000D2 +:0498930000000000D1 +:0498940000000000D0 +:0498950000000000CF +:0498960000000000CE +:0498970000000000CD +:0498980000000000CC +:0498990000000000CB +:04989A0000000000CA +:04989B0000000000C9 +:04989C0000000000C8 +:04989D0000000000C7 +:04989E0000000000C6 +:04989F0000000000C5 +:0498A00000000000C4 +:0498A10000000000C3 +:0498A20000000000C2 +:0498A30000000000C1 +:0498A40000000000C0 +:0498A50000000000BF +:0498A60000000000BE +:0498A70000000000BD +:0498A80000000000BC +:0498A90000000000BB +:0498AA0000000000BA +:0498AB0000000000B9 +:0498AC0000000000B8 +:0498AD0000000000B7 +:0498AE0000000000B6 +:0498AF0000000000B5 +:0498B00000000000B4 +:0498B10000000000B3 +:0498B20000000000B2 +:0498B30000000000B1 +:0498B40000000000B0 +:0498B50000000000AF +:0498B60000000000AE +:0498B70000000000AD +:0498B80000000000AC +:0498B90000000000AB +:0498BA0000000000AA +:0498BB0000000000A9 +:0498BC0000000000A8 +:0498BD0000000000A7 +:0498BE0000000000A6 +:0498BF0000000000A5 +:0498C00000000000A4 +:0498C10000000000A3 +:0498C20000000000A2 +:0498C30000000000A1 +:0498C40000000000A0 +:0498C500000000009F +:0498C600000000009E +:0498C700000000009D +:0498C800000000009C +:0498C900000000009B +:0498CA00000000009A +:0498CB000000000099 +:0498CC000000000098 +:0498CD000000000097 +:0498CE000000000096 +:0498CF000000000095 +:0498D0000000000094 +:0498D1000000000093 +:0498D2000000000092 +:0498D3000000000091 +:0498D4000000000090 +:0498D500000000008F +:0498D600000000008E +:0498D700000000008D +:0498D800000000008C +:0498D900000000008B +:0498DA00000000008A +:0498DB000000000089 +:0498DC000000000088 +:0498DD000000000087 +:0498DE000000000086 +:0498DF000000000085 +:0498E0000000000084 +:0498E1000000000083 +:0498E2000000000082 +:0498E3000000000081 +:0498E4000000000080 +:0498E500000000007F +:0498E600000000007E +:0498E700000000007D +:0498E800000000007C +:0498E900000000007B +:0498EA00000000007A +:0498EB000000000079 +:0498EC000000000078 +:0498ED000000000077 +:0498EE000000000076 +:0498EF000000000075 +:0498F0000000000074 +:0498F1000000000073 +:0498F2000000000072 +:0498F3000000000071 +:0498F4000000000070 +:0498F500000000006F +:0498F600000000006E +:0498F700000000006D +:0498F800000000006C +:0498F900000000006B +:0498FA00000000006A +:0498FB000000000069 +:0498FC000000000068 +:0498FD000000000067 +:0498FE000000000066 +:0498FF000000000065 +:049900000000000063 +:049901000000000062 +:049902000000000061 +:049903000000000060 +:04990400000000005F +:04990500000000005E +:04990600000000005D +:04990700000000005C +:04990800000000005B +:04990900000000005A +:04990A000000000059 +:04990B000000000058 +:04990C000000000057 +:04990D000000000056 +:04990E000000000055 +:04990F000000000054 +:049910000000000053 +:049911000000000052 +:049912000000000051 +:049913000000000050 +:04991400000000004F +:04991500000000004E +:04991600000000004D +:04991700000000004C +:04991800000000004B +:04991900000000004A +:04991A000000000049 +:04991B000000000048 +:04991C000000000047 +:04991D000000000046 +:04991E000000000045 +:04991F000000000044 +:049920000000000043 +:049921000000000042 +:049922000000000041 +:049923000000000040 +:04992400000000003F +:04992500000000003E +:04992600000000003D +:04992700000000003C +:04992800000000003B +:04992900000000003A +:04992A000000000039 +:04992B000000000038 +:04992C000000000037 +:04992D000000000036 +:04992E000000000035 +:04992F000000000034 +:049930000000000033 +:049931000000000032 +:049932000000000031 +:049933000000000030 +:04993400000000002F +:04993500000000002E +:04993600000000002D +:04993700000000002C +:04993800000000002B +:04993900000000002A +:04993A000000000029 +:04993B000000000028 +:04993C000000000027 +:04993D000000000026 +:04993E000000000025 +:04993F000000000024 +:049940000000000023 +:049941000000000022 +:049942000000000021 +:049943000000000020 +:04994400000000001F +:04994500000000001E +:04994600000000001D +:04994700000000001C +:04994800000000001B +:04994900000000001A +:04994A000000000019 +:04994B000000000018 +:04994C000000000017 +:04994D000000000016 +:04994E000000000015 +:04994F000000000014 +:049950000000000013 +:049951000000000012 +:049952000000000011 +:049953000000000010 +:04995400000000000F +:04995500000000000E +:04995600000000000D +:04995700000000000C +:04995800000000000B +:04995900000000000A +:04995A000000000009 +:04995B000000000008 +:04995C000000000007 +:04995D000000000006 +:04995E000000000005 +:04995F000000000004 +:049960000000000003 +:049961000000000002 +:049962000000000001 +:049963000000000000 +:0499640000000000FF +:0499650000000000FE +:0499660000000000FD +:0499670000000000FC +:0499680000000000FB +:0499690000000000FA +:04996A0000000000F9 +:04996B0000000000F8 +:04996C0000000000F7 +:04996D0000000000F6 +:04996E0000000000F5 +:04996F0000000000F4 +:0499700000000000F3 +:0499710000000000F2 +:0499720000000000F1 +:0499730000000000F0 +:0499740000000000EF +:0499750000000000EE +:0499760000000000ED +:0499770000000000EC +:0499780000000000EB +:0499790000000000EA +:04997A0000000000E9 +:04997B0000000000E8 +:04997C0000000000E7 +:04997D0000000000E6 +:04997E0000000000E5 +:04997F0000000000E4 +:0499800000000000E3 +:0499810000000000E2 +:0499820000000000E1 +:0499830000000000E0 +:0499840000000000DF +:0499850000000000DE +:0499860000000000DD +:0499870000000000DC +:0499880000000000DB +:0499890000000000DA +:04998A0000000000D9 +:04998B0000000000D8 +:04998C0000000000D7 +:04998D0000000000D6 +:04998E0000000000D5 +:04998F0000000000D4 +:0499900000000000D3 +:0499910000000000D2 +:0499920000000000D1 +:0499930000000000D0 +:0499940000000000CF +:0499950000000000CE +:0499960000000000CD +:0499970000000000CC +:0499980000000000CB +:0499990000000000CA +:04999A0000000000C9 +:04999B0000000000C8 +:04999C0000000000C7 +:04999D0000000000C6 +:04999E0000000000C5 +:04999F0000000000C4 +:0499A00000000000C3 +:0499A10000000000C2 +:0499A20000000000C1 +:0499A30000000000C0 +:0499A40000000000BF +:0499A50000000000BE +:0499A60000000000BD +:0499A70000000000BC +:0499A80000000000BB +:0499A90000000000BA +:0499AA0000000000B9 +:0499AB0000000000B8 +:0499AC0000000000B7 +:0499AD0000000000B6 +:0499AE0000000000B5 +:0499AF0000000000B4 +:0499B00000000000B3 +:0499B10000000000B2 +:0499B20000000000B1 +:0499B30000000000B0 +:0499B40000000000AF +:0499B50000000000AE +:0499B60000000000AD +:0499B70000000000AC +:0499B80000000000AB +:0499B90000000000AA +:0499BA0000000000A9 +:0499BB0000000000A8 +:0499BC0000000000A7 +:0499BD0000000000A6 +:0499BE0000000000A5 +:0499BF0000000000A4 +:0499C00000000000A3 +:0499C10000000000A2 +:0499C20000000000A1 +:0499C30000000000A0 +:0499C400000000009F +:0499C500000000009E +:0499C600000000009D +:0499C700000000009C +:0499C800000000009B +:0499C900000000009A +:0499CA000000000099 +:0499CB000000000098 +:0499CC000000000097 +:0499CD000000000096 +:0499CE000000000095 +:0499CF000000000094 +:0499D0000000000093 +:0499D1000000000092 +:0499D2000000000091 +:0499D3000000000090 +:0499D400000000008F +:0499D500000000008E +:0499D600000000008D +:0499D700000000008C +:0499D800000000008B +:0499D900000000008A +:0499DA000000000089 +:0499DB000000000088 +:0499DC000000000087 +:0499DD000000000086 +:0499DE000000000085 +:0499DF000000000084 +:0499E0000000000083 +:0499E1000000000082 +:0499E2000000000081 +:0499E3000000000080 +:0499E400000000007F +:0499E500000000007E +:0499E600000000007D +:0499E700000000007C +:0499E800000000007B +:0499E900000000007A +:0499EA000000000079 +:0499EB000000000078 +:0499EC000000000077 +:0499ED000000000076 +:0499EE000000000075 +:0499EF000000000074 +:0499F0000000000073 +:0499F1000000000072 +:0499F2000000000071 +:0499F3000000000070 +:0499F400000000006F +:0499F500000000006E +:0499F600000000006D +:0499F700000000006C +:0499F800000000006B +:0499F900000000006A +:0499FA000000000069 +:0499FB000000000068 +:0499FC000000000067 +:0499FD000000000066 +:0499FE000000000065 +:0499FF000000000064 +:049A00000000000062 +:049A01000000000061 +:049A02000000000060 +:049A0300000000005F +:049A0400000000005E +:049A0500000000005D +:049A0600000000005C +:049A0700000000005B +:049A0800000000005A +:049A09000000000059 +:049A0A000000000058 +:049A0B000000000057 +:049A0C000000000056 +:049A0D000000000055 +:049A0E000000000054 +:049A0F000000000053 +:049A10000000000052 +:049A11000000000051 +:049A12000000000050 +:049A1300000000004F +:049A1400000000004E +:049A1500000000004D +:049A1600000000004C +:049A1700000000004B +:049A1800000000004A +:049A19000000000049 +:049A1A000000000048 +:049A1B000000000047 +:049A1C000000000046 +:049A1D000000000045 +:049A1E000000000044 +:049A1F000000000043 +:049A20000000000042 +:049A21000000000041 +:049A22000000000040 +:049A2300000000003F +:049A2400000000003E +:049A2500000000003D +:049A2600000000003C +:049A2700000000003B +:049A2800000000003A +:049A29000000000039 +:049A2A000000000038 +:049A2B000000000037 +:049A2C000000000036 +:049A2D000000000035 +:049A2E000000000034 +:049A2F000000000033 +:049A30000000000032 +:049A31000000000031 +:049A32000000000030 +:049A3300000000002F +:049A3400000000002E +:049A3500000000002D +:049A3600000000002C +:049A3700000000002B +:049A3800000000002A +:049A39000000000029 +:049A3A000000000028 +:049A3B000000000027 +:049A3C000000000026 +:049A3D000000000025 +:049A3E000000000024 +:049A3F000000000023 +:049A40000000000022 +:049A41000000000021 +:049A42000000000020 +:049A4300000000001F +:049A4400000000001E +:049A4500000000001D +:049A4600000000001C +:049A4700000000001B +:049A4800000000001A +:049A49000000000019 +:049A4A000000000018 +:049A4B000000000017 +:049A4C000000000016 +:049A4D000000000015 +:049A4E000000000014 +:049A4F000000000013 +:049A50000000000012 +:049A51000000000011 +:049A52000000000010 +:049A5300000000000F +:049A5400000000000E +:049A5500000000000D +:049A5600000000000C +:049A5700000000000B +:049A5800000000000A +:049A59000000000009 +:049A5A000000000008 +:049A5B000000000007 +:049A5C000000000006 +:049A5D000000000005 +:049A5E000000000004 +:049A5F000000000003 +:049A60000000000002 +:049A61000000000001 +:049A62000000000000 +:049A630000000000FF +:049A640000000000FE +:049A650000000000FD +:049A660000000000FC +:049A670000000000FB +:049A680000000000FA +:049A690000000000F9 +:049A6A0000000000F8 +:049A6B0000000000F7 +:049A6C0000000000F6 +:049A6D0000000000F5 +:049A6E0000000000F4 +:049A6F0000000000F3 +:049A700000000000F2 +:049A710000000000F1 +:049A720000000000F0 +:049A730000000000EF +:049A740000000000EE +:049A750000000000ED +:049A760000000000EC +:049A770000000000EB +:049A780000000000EA +:049A790000000000E9 +:049A7A0000000000E8 +:049A7B0000000000E7 +:049A7C0000000000E6 +:049A7D0000000000E5 +:049A7E0000000000E4 +:049A7F0000000000E3 +:049A800000000000E2 +:049A810000000000E1 +:049A820000000000E0 +:049A830000000000DF +:049A840000000000DE +:049A850000000000DD +:049A860000000000DC +:049A870000000000DB +:049A880000000000DA +:049A890000000000D9 +:049A8A0000000000D8 +:049A8B0000000000D7 +:049A8C0000000000D6 +:049A8D0000000000D5 +:049A8E0000000000D4 +:049A8F0000000000D3 +:049A900000000000D2 +:049A910000000000D1 +:049A920000000000D0 +:049A930000000000CF +:049A940000000000CE +:049A950000000000CD +:049A960000000000CC +:049A970000000000CB +:049A980000000000CA +:049A990000000000C9 +:049A9A0000000000C8 +:049A9B0000000000C7 +:049A9C0000000000C6 +:049A9D0000000000C5 +:049A9E0000000000C4 +:049A9F0000000000C3 +:049AA00000000000C2 +:049AA10000000000C1 +:049AA20000000000C0 +:049AA30000000000BF +:049AA40000000000BE +:049AA50000000000BD +:049AA60000000000BC +:049AA70000000000BB +:049AA80000000000BA +:049AA90000000000B9 +:049AAA0000000000B8 +:049AAB0000000000B7 +:049AAC0000000000B6 +:049AAD0000000000B5 +:049AAE0000000000B4 +:049AAF0000000000B3 +:049AB00000000000B2 +:049AB10000000000B1 +:049AB20000000000B0 +:049AB30000000000AF +:049AB40000000000AE +:049AB50000000000AD +:049AB60000000000AC +:049AB70000000000AB +:049AB80000000000AA +:049AB90000000000A9 +:049ABA0000000000A8 +:049ABB0000000000A7 +:049ABC0000000000A6 +:049ABD0000000000A5 +:049ABE0000000000A4 +:049ABF0000000000A3 +:049AC00000000000A2 +:049AC10000000000A1 +:049AC20000000000A0 +:049AC300000000009F +:049AC400000000009E +:049AC500000000009D +:049AC600000000009C +:049AC700000000009B +:049AC800000000009A +:049AC9000000000099 +:049ACA000000000098 +:049ACB000000000097 +:049ACC000000000096 +:049ACD000000000095 +:049ACE000000000094 +:049ACF000000000093 +:049AD0000000000092 +:049AD1000000000091 +:049AD2000000000090 +:049AD300000000008F +:049AD400000000008E +:049AD500000000008D +:049AD600000000008C +:049AD700000000008B +:049AD800000000008A +:049AD9000000000089 +:049ADA000000000088 +:049ADB000000000087 +:049ADC000000000086 +:049ADD000000000085 +:049ADE000000000084 +:049ADF000000000083 +:049AE0000000000082 +:049AE1000000000081 +:049AE2000000000080 +:049AE300000000007F +:049AE400000000007E +:049AE500000000007D +:049AE600000000007C +:049AE700000000007B +:049AE800000000007A +:049AE9000000000079 +:049AEA000000000078 +:049AEB000000000077 +:049AEC000000000076 +:049AED000000000075 +:049AEE000000000074 +:049AEF000000000073 +:049AF0000000000072 +:049AF1000000000071 +:049AF2000000000070 +:049AF300000000006F +:049AF400000000006E +:049AF500000000006D +:049AF600000000006C +:049AF700000000006B +:049AF800000000006A +:049AF9000000000069 +:049AFA000000000068 +:049AFB000000000067 +:049AFC000000000066 +:049AFD000000000065 +:049AFE000000000064 +:049AFF000000000063 +:049B00000000000061 +:049B01000000000060 +:049B0200000000005F +:049B0300000000005E +:049B0400000000005D +:049B0500000000005C +:049B0600000000005B +:049B0700000000005A +:049B08000000000059 +:049B09000000000058 +:049B0A000000000057 +:049B0B000000000056 +:049B0C000000000055 +:049B0D000000000054 +:049B0E000000000053 +:049B0F000000000052 +:049B10000000000051 +:049B11000000000050 +:049B1200000000004F +:049B1300000000004E +:049B1400000000004D +:049B1500000000004C +:049B1600000000004B +:049B1700000000004A +:049B18000000000049 +:049B19000000000048 +:049B1A000000000047 +:049B1B000000000046 +:049B1C000000000045 +:049B1D000000000044 +:049B1E000000000043 +:049B1F000000000042 +:049B20000000000041 +:049B21000000000040 +:049B2200000000003F +:049B2300000000003E +:049B2400000000003D +:049B2500000000003C +:049B2600000000003B +:049B2700000000003A +:049B28000000000039 +:049B29000000000038 +:049B2A000000000037 +:049B2B000000000036 +:049B2C000000000035 +:049B2D000000000034 +:049B2E000000000033 +:049B2F000000000032 +:049B30000000000031 +:049B31000000000030 +:049B3200000000002F +:049B3300000000002E +:049B3400000000002D +:049B3500000000002C +:049B3600000000002B +:049B3700000000002A +:049B38000000000029 +:049B39000000000028 +:049B3A000000000027 +:049B3B000000000026 +:049B3C000000000025 +:049B3D000000000024 +:049B3E000000000023 +:049B3F000000000022 +:049B40000000000021 +:049B41000000000020 +:049B4200000000001F +:049B4300000000001E +:049B4400000000001D +:049B4500000000001C +:049B4600000000001B +:049B4700000000001A +:049B48000000000019 +:049B49000000000018 +:049B4A000000000017 +:049B4B000000000016 +:049B4C000000000015 +:049B4D000000000014 +:049B4E000000000013 +:049B4F000000000012 +:049B50000000000011 +:049B51000000000010 +:049B5200000000000F +:049B5300000000000E +:049B5400000000000D +:049B5500000000000C +:049B5600000000000B +:049B5700000000000A +:049B58000000000009 +:049B59000000000008 +:049B5A000000000007 +:049B5B000000000006 +:049B5C000000000005 +:049B5D000000000004 +:049B5E000000000003 +:049B5F000000000002 +:049B60000000000001 +:049B61000000000000 +:049B620000000000FF +:049B630000000000FE +:049B640000000000FD +:049B650000000000FC +:049B660000000000FB +:049B670000000000FA +:049B680000000000F9 +:049B690000000000F8 +:049B6A0000000000F7 +:049B6B0000000000F6 +:049B6C0000000000F5 +:049B6D0000000000F4 +:049B6E0000000000F3 +:049B6F0000000000F2 +:049B700000000000F1 +:049B710000000000F0 +:049B720000000000EF +:049B730000000000EE +:049B740000000000ED +:049B750000000000EC +:049B760000000000EB +:049B770000000000EA +:049B780000000000E9 +:049B790000000000E8 +:049B7A0000000000E7 +:049B7B0000000000E6 +:049B7C0000000000E5 +:049B7D0000000000E4 +:049B7E0000000000E3 +:049B7F0000000000E2 +:049B800000000000E1 +:049B810000000000E0 +:049B820000000000DF +:049B830000000000DE +:049B840000000000DD +:049B850000000000DC +:049B860000000000DB +:049B870000000000DA +:049B880000000000D9 +:049B890000000000D8 +:049B8A0000000000D7 +:049B8B0000000000D6 +:049B8C0000000000D5 +:049B8D0000000000D4 +:049B8E0000000000D3 +:049B8F0000000000D2 +:049B900000000000D1 +:049B910000000000D0 +:049B920000000000CF +:049B930000000000CE +:049B940000000000CD +:049B950000000000CC +:049B960000000000CB +:049B970000000000CA +:049B980000000000C9 +:049B990000000000C8 +:049B9A0000000000C7 +:049B9B0000000000C6 +:049B9C0000000000C5 +:049B9D0000000000C4 +:049B9E0000000000C3 +:049B9F0000000000C2 +:049BA00000000000C1 +:049BA10000000000C0 +:049BA20000000000BF +:049BA30000000000BE +:049BA40000000000BD +:049BA50000000000BC +:049BA60000000000BB +:049BA70000000000BA +:049BA80000000000B9 +:049BA90000000000B8 +:049BAA0000000000B7 +:049BAB0000000000B6 +:049BAC0000000000B5 +:049BAD0000000000B4 +:049BAE0000000000B3 +:049BAF0000000000B2 +:049BB00000000000B1 +:049BB10000000000B0 +:049BB20000000000AF +:049BB30000000000AE +:049BB40000000000AD +:049BB50000000000AC +:049BB60000000000AB +:049BB70000000000AA +:049BB80000000000A9 +:049BB90000000000A8 +:049BBA0000000000A7 +:049BBB0000000000A6 +:049BBC0000000000A5 +:049BBD0000000000A4 +:049BBE0000000000A3 +:049BBF0000000000A2 +:049BC00000000000A1 +:049BC10000000000A0 +:049BC200000000009F +:049BC300000000009E +:049BC400000000009D +:049BC500000000009C +:049BC600000000009B +:049BC700000000009A +:049BC8000000000099 +:049BC9000000000098 +:049BCA000000000097 +:049BCB000000000096 +:049BCC000000000095 +:049BCD000000000094 +:049BCE000000000093 +:049BCF000000000092 +:049BD0000000000091 +:049BD1000000000090 +:049BD200000000008F +:049BD300000000008E +:049BD400000000008D +:049BD500000000008C +:049BD600000000008B +:049BD700000000008A +:049BD8000000000089 +:049BD9000000000088 +:049BDA000000000087 +:049BDB000000000086 +:049BDC000000000085 +:049BDD000000000084 +:049BDE000000000083 +:049BDF000000000082 +:049BE0000000000081 +:049BE1000000000080 +:049BE200000000007F +:049BE300000000007E +:049BE400000000007D +:049BE500000000007C +:049BE600000000007B +:049BE700000000007A +:049BE8000000000079 +:049BE9000000000078 +:049BEA000000000077 +:049BEB000000000076 +:049BEC000000000075 +:049BED000000000074 +:049BEE000000000073 +:049BEF000000000072 +:049BF0000000000071 +:049BF1000000000070 +:049BF200000000006F +:049BF300000000006E +:049BF400000000006D +:049BF500000000006C +:049BF600000000006B +:049BF700000000006A +:049BF8000000000069 +:049BF9000000000068 +:049BFA000000000067 +:049BFB000000000066 +:049BFC000000000065 +:049BFD000000000064 +:049BFE000000000063 +:049BFF000000000062 +:049C00000000000060 +:049C0100000000005F +:049C0200000000005E +:049C0300000000005D +:049C0400000000005C +:049C0500000000005B +:049C0600000000005A +:049C07000000000059 +:049C08000000000058 +:049C09000000000057 +:049C0A000000000056 +:049C0B000000000055 +:049C0C000000000054 +:049C0D000000000053 +:049C0E000000000052 +:049C0F000000000051 +:049C10000000000050 +:049C1100000000004F +:049C1200000000004E +:049C1300000000004D +:049C1400000000004C +:049C1500000000004B +:049C1600000000004A +:049C17000000000049 +:049C18000000000048 +:049C19000000000047 +:049C1A000000000046 +:049C1B000000000045 +:049C1C000000000044 +:049C1D000000000043 +:049C1E000000000042 +:049C1F000000000041 +:049C20000000000040 +:049C2100000000003F +:049C2200000000003E +:049C2300000000003D +:049C2400000000003C +:049C2500000000003B +:049C2600000000003A +:049C27000000000039 +:049C28000000000038 +:049C29000000000037 +:049C2A000000000036 +:049C2B000000000035 +:049C2C000000000034 +:049C2D000000000033 +:049C2E000000000032 +:049C2F000000000031 +:049C30000000000030 +:049C3100000000002F +:049C3200000000002E +:049C3300000000002D +:049C3400000000002C +:049C3500000000002B +:049C3600000000002A +:049C37000000000029 +:049C38000000000028 +:049C39000000000027 +:049C3A000000000026 +:049C3B000000000025 +:049C3C000000000024 +:049C3D000000000023 +:049C3E000000000022 +:049C3F000000000021 +:049C40000000000020 +:049C4100000000001F +:049C4200000000001E +:049C4300000000001D +:049C4400000000001C +:049C4500000000001B +:049C4600000000001A +:049C47000000000019 +:049C48000000000018 +:049C49000000000017 +:049C4A000000000016 +:049C4B000000000015 +:049C4C000000000014 +:049C4D000000000013 +:049C4E000000000012 +:049C4F000000000011 +:049C50000000000010 +:049C5100000000000F +:049C5200000000000E +:049C5300000000000D +:049C5400000000000C +:049C5500000000000B +:049C5600000000000A +:049C57000000000009 +:049C58000000000008 +:049C59000000000007 +:049C5A000000000006 +:049C5B000000000005 +:049C5C000000000004 +:049C5D000000000003 +:049C5E000000000002 +:049C5F000000000001 +:049C60000000000000 +:049C610000000000FF +:049C620000000000FE +:049C630000000000FD +:049C640000000000FC +:049C650000000000FB +:049C660000000000FA +:049C670000000000F9 +:049C680000000000F8 +:049C690000000000F7 +:049C6A0000000000F6 +:049C6B0000000000F5 +:049C6C0000000000F4 +:049C6D0000000000F3 +:049C6E0000000000F2 +:049C6F0000000000F1 +:049C700000000000F0 +:049C710000000000EF +:049C720000000000EE +:049C730000000000ED +:049C740000000000EC +:049C750000000000EB +:049C760000000000EA +:049C770000000000E9 +:049C780000000000E8 +:049C790000000000E7 +:049C7A0000000000E6 +:049C7B0000000000E5 +:049C7C0000000000E4 +:049C7D0000000000E3 +:049C7E0000000000E2 +:049C7F0000000000E1 +:049C800000000000E0 +:049C810000000000DF +:049C820000000000DE +:049C830000000000DD +:049C840000000000DC +:049C850000000000DB +:049C860000000000DA +:049C870000000000D9 +:049C880000000000D8 +:049C890000000000D7 +:049C8A0000000000D6 +:049C8B0000000000D5 +:049C8C0000000000D4 +:049C8D0000000000D3 +:049C8E0000000000D2 +:049C8F0000000000D1 +:049C900000000000D0 +:049C910000000000CF +:049C920000000000CE +:049C930000000000CD +:049C940000000000CC +:049C950000000000CB +:049C960000000000CA +:049C970000000000C9 +:049C980000000000C8 +:049C990000000000C7 +:049C9A0000000000C6 +:049C9B0000000000C5 +:049C9C0000000000C4 +:049C9D0000000000C3 +:049C9E0000000000C2 +:049C9F0000000000C1 +:049CA00000000000C0 +:049CA10000000000BF +:049CA20000000000BE +:049CA30000000000BD +:049CA40000000000BC +:049CA50000000000BB +:049CA60000000000BA +:049CA70000000000B9 +:049CA80000000000B8 +:049CA90000000000B7 +:049CAA0000000000B6 +:049CAB0000000000B5 +:049CAC0000000000B4 +:049CAD0000000000B3 +:049CAE0000000000B2 +:049CAF0000000000B1 +:049CB00000000000B0 +:049CB10000000000AF +:049CB20000000000AE +:049CB30000000000AD +:049CB40000000000AC +:049CB50000000000AB +:049CB60000000000AA +:049CB70000000000A9 +:049CB80000000000A8 +:049CB90000000000A7 +:049CBA0000000000A6 +:049CBB0000000000A5 +:049CBC0000000000A4 +:049CBD0000000000A3 +:049CBE0000000000A2 +:049CBF0000000000A1 +:049CC00000000000A0 +:049CC100000000009F +:049CC200000000009E +:049CC300000000009D +:049CC400000000009C +:049CC500000000009B +:049CC600000000009A +:049CC7000000000099 +:049CC8000000000098 +:049CC9000000000097 +:049CCA000000000096 +:049CCB000000000095 +:049CCC000000000094 +:049CCD000000000093 +:049CCE000000000092 +:049CCF000000000091 +:049CD0000000000090 +:049CD100000000008F +:049CD200000000008E +:049CD300000000008D +:049CD400000000008C +:049CD500000000008B +:049CD600000000008A +:049CD7000000000089 +:049CD8000000000088 +:049CD9000000000087 +:049CDA000000000086 +:049CDB000000000085 +:049CDC000000000084 +:049CDD000000000083 +:049CDE000000000082 +:049CDF000000000081 +:049CE0000000000080 +:049CE100000000007F +:049CE200000000007E +:049CE300000000007D +:049CE400000000007C +:049CE500000000007B +:049CE600000000007A +:049CE7000000000079 +:049CE8000000000078 +:049CE9000000000077 +:049CEA000000000076 +:049CEB000000000075 +:049CEC000000000074 +:049CED000000000073 +:049CEE000000000072 +:049CEF000000000071 +:049CF0000000000070 +:049CF100000000006F +:049CF200000000006E +:049CF300000000006D +:049CF400000000006C +:049CF500000000006B +:049CF600000000006A +:049CF7000000000069 +:049CF8000000000068 +:049CF9000000000067 +:049CFA000000000066 +:049CFB000000000065 +:049CFC000000000064 +:049CFD000000000063 +:049CFE000000000062 +:049CFF000000000061 +:049D0000000000005F +:049D0100000000005E +:049D0200000000005D +:049D0300000000005C +:049D0400000000005B +:049D0500000000005A +:049D06000000000059 +:049D07000000000058 +:049D08000000000057 +:049D09000000000056 +:049D0A000000000055 +:049D0B000000000054 +:049D0C000000000053 +:049D0D000000000052 +:049D0E000000000051 +:049D0F000000000050 +:049D1000000000004F +:049D1100000000004E +:049D1200000000004D +:049D1300000000004C +:049D1400000000004B +:049D1500000000004A +:049D16000000000049 +:049D17000000000048 +:049D18000000000047 +:049D19000000000046 +:049D1A000000000045 +:049D1B000000000044 +:049D1C000000000043 +:049D1D000000000042 +:049D1E000000000041 +:049D1F000000000040 +:049D2000000000003F +:049D2100000000003E +:049D2200000000003D +:049D2300000000003C +:049D2400000000003B +:049D2500000000003A +:049D26000000000039 +:049D27000000000038 +:049D28000000000037 +:049D29000000000036 +:049D2A000000000035 +:049D2B000000000034 +:049D2C000000000033 +:049D2D000000000032 +:049D2E000000000031 +:049D2F000000000030 +:049D3000000000002F +:049D3100000000002E +:049D3200000000002D +:049D3300000000002C +:049D3400000000002B +:049D3500000000002A +:049D36000000000029 +:049D37000000000028 +:049D38000000000027 +:049D39000000000026 +:049D3A000000000025 +:049D3B000000000024 +:049D3C000000000023 +:049D3D000000000022 +:049D3E000000000021 +:049D3F000000000020 +:049D4000000000001F +:049D4100000000001E +:049D4200000000001D +:049D4300000000001C +:049D4400000000001B +:049D4500000000001A +:049D46000000000019 +:049D47000000000018 +:049D48000000000017 +:049D49000000000016 +:049D4A000000000015 +:049D4B000000000014 +:049D4C000000000013 +:049D4D000000000012 +:049D4E000000000011 +:049D4F000000000010 +:049D5000000000000F +:049D5100000000000E +:049D5200000000000D +:049D5300000000000C +:049D5400000000000B +:049D5500000000000A +:049D56000000000009 +:049D57000000000008 +:049D58000000000007 +:049D59000000000006 +:049D5A000000000005 +:049D5B000000000004 +:049D5C000000000003 +:049D5D000000000002 +:049D5E000000000001 +:049D5F000000000000 +:049D600000000000FF +:049D610000000000FE +:049D620000000000FD +:049D630000000000FC +:049D640000000000FB +:049D650000000000FA +:049D660000000000F9 +:049D670000000000F8 +:049D680000000000F7 +:049D690000000000F6 +:049D6A0000000000F5 +:049D6B0000000000F4 +:049D6C0000000000F3 +:049D6D0000000000F2 +:049D6E0000000000F1 +:049D6F0000000000F0 +:049D700000000000EF +:049D710000000000EE +:049D720000000000ED +:049D730000000000EC +:049D740000000000EB +:049D750000000000EA +:049D760000000000E9 +:049D770000000000E8 +:049D780000000000E7 +:049D790000000000E6 +:049D7A0000000000E5 +:049D7B0000000000E4 +:049D7C0000000000E3 +:049D7D0000000000E2 +:049D7E0000000000E1 +:049D7F0000000000E0 +:049D800000000000DF +:049D810000000000DE +:049D820000000000DD +:049D830000000000DC +:049D840000000000DB +:049D850000000000DA +:049D860000000000D9 +:049D870000000000D8 +:049D880000000000D7 +:049D890000000000D6 +:049D8A0000000000D5 +:049D8B0000000000D4 +:049D8C0000000000D3 +:049D8D0000000000D2 +:049D8E0000000000D1 +:049D8F0000000000D0 +:049D900000000000CF +:049D910000000000CE +:049D920000000000CD +:049D930000000000CC +:049D940000000000CB +:049D950000000000CA +:049D960000000000C9 +:049D970000000000C8 +:049D980000000000C7 +:049D990000000000C6 +:049D9A0000000000C5 +:049D9B0000000000C4 +:049D9C0000000000C3 +:049D9D0000000000C2 +:049D9E0000000000C1 +:049D9F0000000000C0 +:049DA00000000000BF +:049DA10000000000BE +:049DA20000000000BD +:049DA30000000000BC +:049DA40000000000BB +:049DA50000000000BA +:049DA60000000000B9 +:049DA70000000000B8 +:049DA80000000000B7 +:049DA90000000000B6 +:049DAA0000000000B5 +:049DAB0000000000B4 +:049DAC0000000000B3 +:049DAD0000000000B2 +:049DAE0000000000B1 +:049DAF0000000000B0 +:049DB00000000000AF +:049DB10000000000AE +:049DB20000000000AD +:049DB30000000000AC +:049DB40000000000AB +:049DB50000000000AA +:049DB60000000000A9 +:049DB70000000000A8 +:049DB80000000000A7 +:049DB90000000000A6 +:049DBA0000000000A5 +:049DBB0000000000A4 +:049DBC0000000000A3 +:049DBD0000000000A2 +:049DBE0000000000A1 +:049DBF0000000000A0 +:049DC000000000009F +:049DC100000000009E +:049DC200000000009D +:049DC300000000009C +:049DC400000000009B +:049DC500000000009A +:049DC6000000000099 +:049DC7000000000098 +:049DC8000000000097 +:049DC9000000000096 +:049DCA000000000095 +:049DCB000000000094 +:049DCC000000000093 +:049DCD000000000092 +:049DCE000000000091 +:049DCF000000000090 +:049DD000000000008F +:049DD100000000008E +:049DD200000000008D +:049DD300000000008C +:049DD400000000008B +:049DD500000000008A +:049DD6000000000089 +:049DD7000000000088 +:049DD8000000000087 +:049DD9000000000086 +:049DDA000000000085 +:049DDB000000000084 +:049DDC000000000083 +:049DDD000000000082 +:049DDE000000000081 +:049DDF000000000080 +:049DE000000000007F +:049DE100000000007E +:049DE200000000007D +:049DE300000000007C +:049DE400000000007B +:049DE500000000007A +:049DE6000000000079 +:049DE7000000000078 +:049DE8000000000077 +:049DE9000000000076 +:049DEA000000000075 +:049DEB000000000074 +:049DEC000000000073 +:049DED000000000072 +:049DEE000000000071 +:049DEF000000000070 +:049DF000000000006F +:049DF100000000006E +:049DF200000000006D +:049DF300000000006C +:049DF400000000006B +:049DF500000000006A +:049DF6000000000069 +:049DF7000000000068 +:049DF8000000000067 +:049DF9000000000066 +:049DFA000000000065 +:049DFB000000000064 +:049DFC000000000063 +:049DFD000000000062 +:049DFE000000000061 +:049DFF000000000060 +:049E0000000000005E +:049E0100000000005D +:049E0200000000005C +:049E0300000000005B +:049E0400000000005A +:049E05000000000059 +:049E06000000000058 +:049E07000000000057 +:049E08000000000056 +:049E09000000000055 +:049E0A000000000054 +:049E0B000000000053 +:049E0C000000000052 +:049E0D000000000051 +:049E0E000000000050 +:049E0F00000000004F +:049E1000000000004E +:049E1100000000004D +:049E1200000000004C +:049E1300000000004B +:049E1400000000004A +:049E15000000000049 +:049E16000000000048 +:049E17000000000047 +:049E18000000000046 +:049E19000000000045 +:049E1A000000000044 +:049E1B000000000043 +:049E1C000000000042 +:049E1D000000000041 +:049E1E000000000040 +:049E1F00000000003F +:049E2000000000003E +:049E2100000000003D +:049E2200000000003C +:049E2300000000003B +:049E2400000000003A +:049E25000000000039 +:049E26000000000038 +:049E27000000000037 +:049E28000000000036 +:049E29000000000035 +:049E2A000000000034 +:049E2B000000000033 +:049E2C000000000032 +:049E2D000000000031 +:049E2E000000000030 +:049E2F00000000002F +:049E3000000000002E +:049E3100000000002D +:049E3200000000002C +:049E3300000000002B +:049E3400000000002A +:049E35000000000029 +:049E36000000000028 +:049E37000000000027 +:049E38000000000026 +:049E39000000000025 +:049E3A000000000024 +:049E3B000000000023 +:049E3C000000000022 +:049E3D000000000021 +:049E3E000000000020 +:049E3F00000000001F +:049E4000000000001E +:049E4100000000001D +:049E4200000000001C +:049E4300000000001B +:049E4400000000001A +:049E45000000000019 +:049E46000000000018 +:049E47000000000017 +:049E48000000000016 +:049E49000000000015 +:049E4A000000000014 +:049E4B000000000013 +:049E4C000000000012 +:049E4D000000000011 +:049E4E000000000010 +:049E4F00000000000F +:049E5000000000000E +:049E5100000000000D +:049E5200000000000C +:049E5300000000000B +:049E5400000000000A +:049E55000000000009 +:049E56000000000008 +:049E57000000000007 +:049E58000000000006 +:049E59000000000005 +:049E5A000000000004 +:049E5B000000000003 +:049E5C000000000002 +:049E5D000000000001 +:049E5E000000000000 +:049E5F0000000000FF +:049E600000000000FE +:049E610000000000FD +:049E620000000000FC +:049E630000000000FB +:049E640000000000FA +:049E650000000000F9 +:049E660000000000F8 +:049E670000000000F7 +:049E680000000000F6 +:049E690000000000F5 +:049E6A0000000000F4 +:049E6B0000000000F3 +:049E6C0000000000F2 +:049E6D0000000000F1 +:049E6E0000000000F0 +:049E6F0000000000EF +:049E700000000000EE +:049E710000000000ED +:049E720000000000EC +:049E730000000000EB +:049E740000000000EA +:049E750000000000E9 +:049E760000000000E8 +:049E770000000000E7 +:049E780000000000E6 +:049E790000000000E5 +:049E7A0000000000E4 +:049E7B0000000000E3 +:049E7C0000000000E2 +:049E7D0000000000E1 +:049E7E0000000000E0 +:049E7F0000000000DF +:049E800000000000DE +:049E810000000000DD +:049E820000000000DC +:049E830000000000DB +:049E840000000000DA +:049E850000000000D9 +:049E860000000000D8 +:049E870000000000D7 +:049E880000000000D6 +:049E890000000000D5 +:049E8A0000000000D4 +:049E8B0000000000D3 +:049E8C0000000000D2 +:049E8D0000000000D1 +:049E8E0000000000D0 +:049E8F0000000000CF +:049E900000000000CE +:049E910000000000CD +:049E920000000000CC +:049E930000000000CB +:049E940000000000CA +:049E950000000000C9 +:049E960000000000C8 +:049E970000000000C7 +:049E980000000000C6 +:049E990000000000C5 +:049E9A0000000000C4 +:049E9B0000000000C3 +:049E9C0000000000C2 +:049E9D0000000000C1 +:049E9E0000000000C0 +:049E9F0000000000BF +:049EA00000000000BE +:049EA10000000000BD +:049EA20000000000BC +:049EA30000000000BB +:049EA40000000000BA +:049EA50000000000B9 +:049EA60000000000B8 +:049EA70000000000B7 +:049EA80000000000B6 +:049EA90000000000B5 +:049EAA0000000000B4 +:049EAB0000000000B3 +:049EAC0000000000B2 +:049EAD0000000000B1 +:049EAE0000000000B0 +:049EAF0000000000AF +:049EB00000000000AE +:049EB10000000000AD +:049EB20000000000AC +:049EB30000000000AB +:049EB40000000000AA +:049EB50000000000A9 +:049EB60000000000A8 +:049EB70000000000A7 +:049EB80000000000A6 +:049EB90000000000A5 +:049EBA0000000000A4 +:049EBB0000000000A3 +:049EBC0000000000A2 +:049EBD0000000000A1 +:049EBE0000000000A0 +:049EBF00000000009F +:049EC000000000009E +:049EC100000000009D +:049EC200000000009C +:049EC300000000009B +:049EC400000000009A +:049EC5000000000099 +:049EC6000000000098 +:049EC7000000000097 +:049EC8000000000096 +:049EC9000000000095 +:049ECA000000000094 +:049ECB000000000093 +:049ECC000000000092 +:049ECD000000000091 +:049ECE000000000090 +:049ECF00000000008F +:049ED000000000008E +:049ED100000000008D +:049ED200000000008C +:049ED300000000008B +:049ED400000000008A +:049ED5000000000089 +:049ED6000000000088 +:049ED7000000000087 +:049ED8000000000086 +:049ED9000000000085 +:049EDA000000000084 +:049EDB000000000083 +:049EDC000000000082 +:049EDD000000000081 +:049EDE000000000080 +:049EDF00000000007F +:049EE000000000007E +:049EE100000000007D +:049EE200000000007C +:049EE300000000007B +:049EE400000000007A +:049EE5000000000079 +:049EE6000000000078 +:049EE7000000000077 +:049EE8000000000076 +:049EE9000000000075 +:049EEA000000000074 +:049EEB000000000073 +:049EEC000000000072 +:049EED000000000071 +:049EEE000000000070 +:049EEF00000000006F +:049EF000000000006E +:049EF100000000006D +:049EF200000000006C +:049EF300000000006B +:049EF400000000006A +:049EF5000000000069 +:049EF6000000000068 +:049EF7000000000067 +:049EF8000000000066 +:049EF9000000000065 +:049EFA000000000064 +:049EFB000000000063 +:049EFC000000000062 +:049EFD000000000061 +:049EFE000000000060 +:049EFF00000000005F +:049F0000000000005D +:049F0100000000005C +:049F0200000000005B +:049F0300000000005A +:049F04000000000059 +:049F05000000000058 +:049F06000000000057 +:049F07000000000056 +:049F08000000000055 +:049F09000000000054 +:049F0A000000000053 +:049F0B000000000052 +:049F0C000000000051 +:049F0D000000000050 +:049F0E00000000004F +:049F0F00000000004E +:049F1000000000004D +:049F1100000000004C +:049F1200000000004B +:049F1300000000004A +:049F14000000000049 +:049F15000000000048 +:049F16000000000047 +:049F17000000000046 +:049F18000000000045 +:049F19000000000044 +:049F1A000000000043 +:049F1B000000000042 +:049F1C000000000041 +:049F1D000000000040 +:049F1E00000000003F +:049F1F00000000003E +:049F2000000000003D +:049F2100000000003C +:049F2200000000003B +:049F2300000000003A +:049F24000000000039 +:049F25000000000038 +:049F26000000000037 +:049F27000000000036 +:049F28000000000035 +:049F29000000000034 +:049F2A000000000033 +:049F2B000000000032 +:049F2C000000000031 +:049F2D000000000030 +:049F2E00000000002F +:049F2F00000000002E +:049F3000000000002D +:049F3100000000002C +:049F3200000000002B +:049F3300000000002A +:049F34000000000029 +:049F35000000000028 +:049F36000000000027 +:049F37000000000026 +:049F38000000000025 +:049F39000000000024 +:049F3A000000000023 +:049F3B000000000022 +:049F3C000000000021 +:049F3D000000000020 +:049F3E00000000001F +:049F3F00000000001E +:049F4000000000001D +:049F4100000000001C +:049F4200000000001B +:049F4300000000001A +:049F44000000000019 +:049F45000000000018 +:049F46000000000017 +:049F47000000000016 +:049F48000000000015 +:049F49000000000014 +:049F4A000000000013 +:049F4B000000000012 +:049F4C000000000011 +:049F4D000000000010 +:049F4E00000000000F +:049F4F00000000000E +:049F5000000000000D +:049F5100000000000C +:049F5200000000000B +:049F5300000000000A +:049F54000000000009 +:049F55000000000008 +:049F56000000000007 +:049F57000000000006 +:049F58000000000005 +:049F59000000000004 +:049F5A000000000003 +:049F5B000000000002 +:049F5C000000000001 +:049F5D000000000000 +:049F5E0000000000FF +:049F5F0000000000FE +:049F600000000000FD +:049F610000000000FC +:049F620000000000FB +:049F630000000000FA +:049F640000000000F9 +:049F650000000000F8 +:049F660000000000F7 +:049F670000000000F6 +:049F680000000000F5 +:049F690000000000F4 +:049F6A0000000000F3 +:049F6B0000000000F2 +:049F6C0000000000F1 +:049F6D0000000000F0 +:049F6E0000000000EF +:049F6F0000000000EE +:049F700000000000ED +:049F710000000000EC +:049F720000000000EB +:049F730000000000EA +:049F740000000000E9 +:049F750000000000E8 +:049F760000000000E7 +:049F770000000000E6 +:049F780000000000E5 +:049F790000000000E4 +:049F7A0000000000E3 +:049F7B0000000000E2 +:049F7C0000000000E1 +:049F7D0000000000E0 +:049F7E0000000000DF +:049F7F0000000000DE +:049F800000000000DD +:049F810000000000DC +:049F820000000000DB +:049F830000000000DA +:049F840000000000D9 +:049F850000000000D8 +:049F860000000000D7 +:049F870000000000D6 +:049F880000000000D5 +:049F890000000000D4 +:049F8A0000000000D3 +:049F8B0000000000D2 +:049F8C0000000000D1 +:049F8D0000000000D0 +:049F8E0000000000CF +:049F8F0000000000CE +:049F900000000000CD +:049F910000000000CC +:049F920000000000CB +:049F930000000000CA +:049F940000000000C9 +:049F950000000000C8 +:049F960000000000C7 +:049F970000000000C6 +:049F980000000000C5 +:049F990000000000C4 +:049F9A0000000000C3 +:049F9B0000000000C2 +:049F9C0000000000C1 +:049F9D0000000000C0 +:049F9E0000000000BF +:049F9F0000000000BE +:049FA00000000000BD +:049FA10000000000BC +:049FA20000000000BB +:049FA30000000000BA +:049FA40000000000B9 +:049FA50000000000B8 +:049FA60000000000B7 +:049FA70000000000B6 +:049FA80000000000B5 +:049FA90000000000B4 +:049FAA0000000000B3 +:049FAB0000000000B2 +:049FAC0000000000B1 +:049FAD0000000000B0 +:049FAE0000000000AF +:049FAF0000000000AE +:049FB00000000000AD +:049FB10000000000AC +:049FB20000000000AB +:049FB30000000000AA +:049FB40000000000A9 +:049FB50000000000A8 +:049FB60000000000A7 +:049FB70000000000A6 +:049FB80000000000A5 +:049FB90000000000A4 +:049FBA0000000000A3 +:049FBB0000000000A2 +:049FBC0000000000A1 +:049FBD0000000000A0 +:049FBE00000000009F +:049FBF00000000009E +:049FC000000000009D +:049FC100000000009C +:049FC200000000009B +:049FC300000000009A +:049FC4000000000099 +:049FC5000000000098 +:049FC6000000000097 +:049FC7000000000096 +:049FC8000000000095 +:049FC9000000000094 +:049FCA000000000093 +:049FCB000000000092 +:049FCC000000000091 +:049FCD000000000090 +:049FCE00000000008F +:049FCF00000000008E +:049FD000000000008D +:049FD100000000008C +:049FD200000000008B +:049FD300000000008A +:049FD4000000000089 +:049FD5000000000088 +:049FD6000000000087 +:049FD7000000000086 +:049FD8000000000085 +:049FD9000000000084 +:049FDA000000000083 +:049FDB000000000082 +:049FDC000000000081 +:049FDD000000000080 +:049FDE00000000007F +:049FDF00000000007E +:049FE000000000007D +:049FE100000000007C +:049FE200000000007B +:049FE300000000007A +:049FE4000000000079 +:049FE5000000000078 +:049FE6000000000077 +:049FE7000000000076 +:049FE8000000000075 +:049FE9000000000074 +:049FEA000000000073 +:049FEB000000000072 +:049FEC000000000071 +:049FED000000000070 +:049FEE00000000006F +:049FEF00000000006E +:049FF000000000006D +:049FF100000000006C +:049FF200000000006B +:049FF300000000006A +:049FF4000000000069 +:049FF5000000000068 +:049FF6000000000067 +:049FF7000000000066 +:049FF8000000000065 +:049FF9000000000064 +:049FFA000000000063 +:049FFB000000000062 +:049FFC000000000061 +:049FFD000000000060 +:049FFE00000000005F +:049FFF00000000005E +:04A00000000000005C +:04A00100000000005B +:04A00200000000005A +:04A003000000000059 +:04A004000000000058 +:04A005000000000057 +:04A006000000000056 +:04A007000000000055 +:04A008000000000054 +:04A009000000000053 +:04A00A000000000052 +:04A00B000000000051 +:04A00C000000000050 +:04A00D00000000004F +:04A00E00000000004E +:04A00F00000000004D +:04A01000000000004C +:04A01100000000004B +:04A01200000000004A +:04A013000000000049 +:04A014000000000048 +:04A015000000000047 +:04A016000000000046 +:04A017000000000045 +:04A018000000000044 +:04A019000000000043 +:04A01A000000000042 +:04A01B000000000041 +:04A01C000000000040 +:04A01D00000000003F +:04A01E00000000003E +:04A01F00000000003D +:04A02000000000003C +:04A02100000000003B +:04A02200000000003A +:04A023000000000039 +:04A024000000000038 +:04A025000000000037 +:04A026000000000036 +:04A027000000000035 +:04A028000000000034 +:04A029000000000033 +:04A02A000000000032 +:04A02B000000000031 +:04A02C000000000030 +:04A02D00000000002F +:04A02E00000000002E +:04A02F00000000002D +:04A03000000000002C +:04A03100000000002B +:04A03200000000002A +:04A033000000000029 +:04A034000000000028 +:04A035000000000027 +:04A036000000000026 +:04A037000000000025 +:04A038000000000024 +:04A039000000000023 +:04A03A000000000022 +:04A03B000000000021 +:04A03C000000000020 +:04A03D00000000001F +:04A03E00000000001E +:04A03F00000000001D +:04A04000000000001C +:04A04100000000001B +:04A04200000000001A +:04A043000000000019 +:04A044000000000018 +:04A045000000000017 +:04A046000000000016 +:04A047000000000015 +:04A048000000000014 +:04A049000000000013 +:04A04A000000000012 +:04A04B000000000011 +:04A04C000000000010 +:04A04D00000000000F +:04A04E00000000000E +:04A04F00000000000D +:04A05000000000000C +:04A05100000000000B +:04A05200000000000A +:04A053000000000009 +:04A054000000000008 +:04A055000000000007 +:04A056000000000006 +:04A057000000000005 +:04A058000000000004 +:04A059000000000003 +:04A05A000000000002 +:04A05B000000000001 +:04A05C000000000000 +:04A05D0000000000FF +:04A05E0000000000FE +:04A05F0000000000FD +:04A0600000000000FC +:04A0610000000000FB +:04A0620000000000FA +:04A0630000000000F9 +:04A0640000000000F8 +:04A0650000000000F7 +:04A0660000000000F6 +:04A0670000000000F5 +:04A0680000000000F4 +:04A0690000000000F3 +:04A06A0000000000F2 +:04A06B0000000000F1 +:04A06C0000000000F0 +:04A06D0000000000EF +:04A06E0000000000EE +:04A06F0000000000ED +:04A0700000000000EC +:04A0710000000000EB +:04A0720000000000EA +:04A0730000000000E9 +:04A0740000000000E8 +:04A0750000000000E7 +:04A0760000000000E6 +:04A0770000000000E5 +:04A0780000000000E4 +:04A0790000000000E3 +:04A07A0000000000E2 +:04A07B0000000000E1 +:04A07C0000000000E0 +:04A07D0000000000DF +:04A07E0000000000DE +:04A07F0000000000DD +:04A0800000000000DC +:04A0810000000000DB +:04A0820000000000DA +:04A0830000000000D9 +:04A0840000000000D8 +:04A0850000000000D7 +:04A0860000000000D6 +:04A0870000000000D5 +:04A0880000000000D4 +:04A0890000000000D3 +:04A08A0000000000D2 +:04A08B0000000000D1 +:04A08C0000000000D0 +:04A08D0000000000CF +:04A08E0000000000CE +:04A08F0000000000CD +:04A0900000000000CC +:04A0910000000000CB +:04A0920000000000CA +:04A0930000000000C9 +:04A0940000000000C8 +:04A0950000000000C7 +:04A0960000000000C6 +:04A0970000000000C5 +:04A0980000000000C4 +:04A0990000000000C3 +:04A09A0000000000C2 +:04A09B0000000000C1 +:04A09C0000000000C0 +:04A09D0000000000BF +:04A09E0000000000BE +:04A09F0000000000BD +:04A0A00000000000BC +:04A0A10000000000BB +:04A0A20000000000BA +:04A0A30000000000B9 +:04A0A40000000000B8 +:04A0A50000000000B7 +:04A0A60000000000B6 +:04A0A70000000000B5 +:04A0A80000000000B4 +:04A0A90000000000B3 +:04A0AA0000000000B2 +:04A0AB0000000000B1 +:04A0AC0000000000B0 +:04A0AD0000000000AF +:04A0AE0000000000AE +:04A0AF0000000000AD +:04A0B00000000000AC +:04A0B10000000000AB +:04A0B20000000000AA +:04A0B30000000000A9 +:04A0B40000000000A8 +:04A0B50000000000A7 +:04A0B60000000000A6 +:04A0B70000000000A5 +:04A0B80000000000A4 +:04A0B90000000000A3 +:04A0BA0000000000A2 +:04A0BB0000000000A1 +:04A0BC0000000000A0 +:04A0BD00000000009F +:04A0BE00000000009E +:04A0BF00000000009D +:04A0C000000000009C +:04A0C100000000009B +:04A0C200000000009A +:04A0C3000000000099 +:04A0C4000000000098 +:04A0C5000000000097 +:04A0C6000000000096 +:04A0C7000000000095 +:04A0C8000000000094 +:04A0C9000000000093 +:04A0CA000000000092 +:04A0CB000000000091 +:04A0CC000000000090 +:04A0CD00000000008F +:04A0CE00000000008E +:04A0CF00000000008D +:04A0D000000000008C +:04A0D100000000008B +:04A0D200000000008A +:04A0D3000000000089 +:04A0D4000000000088 +:04A0D5000000000087 +:04A0D6000000000086 +:04A0D7000000000085 +:04A0D8000000000084 +:04A0D9000000000083 +:04A0DA000000000082 +:04A0DB000000000081 +:04A0DC000000000080 +:04A0DD00000000007F +:04A0DE00000000007E +:04A0DF00000000007D +:04A0E000000000007C +:04A0E100000000007B +:04A0E200000000007A +:04A0E3000000000079 +:04A0E4000000000078 +:04A0E5000000000077 +:04A0E6000000000076 +:04A0E7000000000075 +:04A0E8000000000074 +:04A0E9000000000073 +:04A0EA000000000072 +:04A0EB000000000071 +:04A0EC000000000070 +:04A0ED00000000006F +:04A0EE00000000006E +:04A0EF00000000006D +:04A0F000000000006C +:04A0F100000000006B +:04A0F200000000006A +:04A0F3000000000069 +:04A0F4000000000068 +:04A0F5000000000067 +:04A0F6000000000066 +:04A0F7000000000065 +:04A0F8000000000064 +:04A0F9000000000063 +:04A0FA000000000062 +:04A0FB000000000061 +:04A0FC000000000060 +:04A0FD00000000005F +:04A0FE00000000005E +:04A0FF00000000005D +:04A10000000000005B +:04A10100000000005A +:04A102000000000059 +:04A103000000000058 +:04A104000000000057 +:04A105000000000056 +:04A106000000000055 +:04A107000000000054 +:04A108000000000053 +:04A109000000000052 +:04A10A000000000051 +:04A10B000000000050 +:04A10C00000000004F +:04A10D00000000004E +:04A10E00000000004D +:04A10F00000000004C +:04A11000000000004B +:04A11100000000004A +:04A112000000000049 +:04A113000000000048 +:04A114000000000047 +:04A115000000000046 +:04A116000000000045 +:04A117000000000044 +:04A118000000000043 +:04A119000000000042 +:04A11A000000000041 +:04A11B000000000040 +:04A11C00000000003F +:04A11D00000000003E +:04A11E00000000003D +:04A11F00000000003C +:04A12000000000003B +:04A12100000000003A +:04A122000000000039 +:04A123000000000038 +:04A124000000000037 +:04A125000000000036 +:04A126000000000035 +:04A127000000000034 +:04A128000000000033 +:04A129000000000032 +:04A12A000000000031 +:04A12B000000000030 +:04A12C00000000002F +:04A12D00000000002E +:04A12E00000000002D +:04A12F00000000002C +:04A13000000000002B +:04A13100000000002A +:04A132000000000029 +:04A133000000000028 +:04A134000000000027 +:04A135000000000026 +:04A136000000000025 +:04A137000000000024 +:04A138000000000023 +:04A139000000000022 +:04A13A000000000021 +:04A13B000000000020 +:04A13C00000000001F +:04A13D00000000001E +:04A13E00000000001D +:04A13F00000000001C +:04A14000000000001B +:04A14100000000001A +:04A142000000000019 +:04A143000000000018 +:04A144000000000017 +:04A145000000000016 +:04A146000000000015 +:04A147000000000014 +:04A148000000000013 +:04A149000000000012 +:04A14A000000000011 +:04A14B000000000010 +:04A14C00000000000F +:04A14D00000000000E +:04A14E00000000000D +:04A14F00000000000C +:04A15000000000000B +:04A15100000000000A +:04A152000000000009 +:04A153000000000008 +:04A154000000000007 +:04A155000000000006 +:04A156000000000005 +:04A157000000000004 +:04A158000000000003 +:04A159000000000002 +:04A15A000000000001 +:04A15B000000000000 +:04A15C0000000000FF +:04A15D0000000000FE +:04A15E0000000000FD +:04A15F0000000000FC +:04A1600000000000FB +:04A1610000000000FA +:04A1620000000000F9 +:04A1630000000000F8 +:04A1640000000000F7 +:04A1650000000000F6 +:04A1660000000000F5 +:04A1670000000000F4 +:04A1680000000000F3 +:04A1690000000000F2 +:04A16A0000000000F1 +:04A16B0000000000F0 +:04A16C0000000000EF +:04A16D0000000000EE +:04A16E0000000000ED +:04A16F0000000000EC +:04A1700000000000EB +:04A1710000000000EA +:04A1720000000000E9 +:04A1730000000000E8 +:04A1740000000000E7 +:04A1750000000000E6 +:04A1760000000000E5 +:04A1770000000000E4 +:04A1780000000000E3 +:04A1790000000000E2 +:04A17A0000000000E1 +:04A17B0000000000E0 +:04A17C0000000000DF +:04A17D0000000000DE +:04A17E0000000000DD +:04A17F0000000000DC +:04A1800000000000DB +:04A1810000000000DA +:04A1820000000000D9 +:04A1830000000000D8 +:04A1840000000000D7 +:04A1850000000000D6 +:04A1860000000000D5 +:04A1870000000000D4 +:04A1880000000000D3 +:04A1890000000000D2 +:04A18A0000000000D1 +:04A18B0000000000D0 +:04A18C0000000000CF +:04A18D0000000000CE +:04A18E0000000000CD +:04A18F0000000000CC +:04A1900000000000CB +:04A1910000000000CA +:04A1920000000000C9 +:04A1930000000000C8 +:04A1940000000000C7 +:04A1950000000000C6 +:04A1960000000000C5 +:04A1970000000000C4 +:04A1980000000000C3 +:04A1990000000000C2 +:04A19A0000000000C1 +:04A19B0000000000C0 +:04A19C0000000000BF +:04A19D0000000000BE +:04A19E0000000000BD +:04A19F0000000000BC +:04A1A00000000000BB +:04A1A10000000000BA +:04A1A20000000000B9 +:04A1A30000000000B8 +:04A1A40000000000B7 +:04A1A50000000000B6 +:04A1A60000000000B5 +:04A1A70000000000B4 +:04A1A80000000000B3 +:04A1A90000000000B2 +:04A1AA0000000000B1 +:04A1AB0000000000B0 +:04A1AC0000000000AF +:04A1AD0000000000AE +:04A1AE0000000000AD +:04A1AF0000000000AC +:04A1B00000000000AB +:04A1B10000000000AA +:04A1B20000000000A9 +:04A1B30000000000A8 +:04A1B40000000000A7 +:04A1B50000000000A6 +:04A1B60000000000A5 +:04A1B70000000000A4 +:04A1B80000000000A3 +:04A1B90000000000A2 +:04A1BA0000000000A1 +:04A1BB0000000000A0 +:04A1BC00000000009F +:04A1BD00000000009E +:04A1BE00000000009D +:04A1BF00000000009C +:04A1C000000000009B +:04A1C100000000009A +:04A1C2000000000099 +:04A1C3000000000098 +:04A1C4000000000097 +:04A1C5000000000096 +:04A1C6000000000095 +:04A1C7000000000094 +:04A1C8000000000093 +:04A1C9000000000092 +:04A1CA000000000091 +:04A1CB000000000090 +:04A1CC00000000008F +:04A1CD00000000008E +:04A1CE00000000008D +:04A1CF00000000008C +:04A1D000000000008B +:04A1D100000000008A +:04A1D2000000000089 +:04A1D3000000000088 +:04A1D4000000000087 +:04A1D5000000000086 +:04A1D6000000000085 +:04A1D7000000000084 +:04A1D8000000000083 +:04A1D9000000000082 +:04A1DA000000000081 +:04A1DB000000000080 +:04A1DC00000000007F +:04A1DD00000000007E +:04A1DE00000000007D +:04A1DF00000000007C +:04A1E000000000007B +:04A1E100000000007A +:04A1E2000000000079 +:04A1E3000000000078 +:04A1E4000000000077 +:04A1E5000000000076 +:04A1E6000000000075 +:04A1E7000000000074 +:04A1E8000000000073 +:04A1E9000000000072 +:04A1EA000000000071 +:04A1EB000000000070 +:04A1EC00000000006F +:04A1ED00000000006E +:04A1EE00000000006D +:04A1EF00000000006C +:04A1F000000000006B +:04A1F100000000006A +:04A1F2000000000069 +:04A1F3000000000068 +:04A1F4000000000067 +:04A1F5000000000066 +:04A1F6000000000065 +:04A1F7000000000064 +:04A1F8000000000063 +:04A1F9000000000062 +:04A1FA000000000061 +:04A1FB000000000060 +:04A1FC00000000005F +:04A1FD00000000005E +:04A1FE00000000005D +:04A1FF00000000005C +:04A20000000000005A +:04A201000000000059 +:04A202000000000058 +:04A203000000000057 +:04A204000000000056 +:04A205000000000055 +:04A206000000000054 +:04A207000000000053 +:04A208000000000052 +:04A209000000000051 +:04A20A000000000050 +:04A20B00000000004F +:04A20C00000000004E +:04A20D00000000004D +:04A20E00000000004C +:04A20F00000000004B +:04A21000000000004A +:04A211000000000049 +:04A212000000000048 +:04A213000000000047 +:04A214000000000046 +:04A215000000000045 +:04A216000000000044 +:04A217000000000043 +:04A218000000000042 +:04A219000000000041 +:04A21A000000000040 +:04A21B00000000003F +:04A21C00000000003E +:04A21D00000000003D +:04A21E00000000003C +:04A21F00000000003B +:04A22000000000003A +:04A221000000000039 +:04A222000000000038 +:04A223000000000037 +:04A224000000000036 +:04A225000000000035 +:04A226000000000034 +:04A227000000000033 +:04A228000000000032 +:04A229000000000031 +:04A22A000000000030 +:04A22B00000000002F +:04A22C00000000002E +:04A22D00000000002D +:04A22E00000000002C +:04A22F00000000002B +:04A23000000000002A +:04A231000000000029 +:04A232000000000028 +:04A233000000000027 +:04A234000000000026 +:04A235000000000025 +:04A236000000000024 +:04A237000000000023 +:04A238000000000022 +:04A239000000000021 +:04A23A000000000020 +:04A23B00000000001F +:04A23C00000000001E +:04A23D00000000001D +:04A23E00000000001C +:04A23F00000000001B +:04A24000000000001A +:04A241000000000019 +:04A242000000000018 +:04A243000000000017 +:04A244000000000016 +:04A245000000000015 +:04A246000000000014 +:04A247000000000013 +:04A248000000000012 +:04A249000000000011 +:04A24A000000000010 +:04A24B00000000000F +:04A24C00000000000E +:04A24D00000000000D +:04A24E00000000000C +:04A24F00000000000B +:04A25000000000000A +:04A251000000000009 +:04A252000000000008 +:04A253000000000007 +:04A254000000000006 +:04A255000000000005 +:04A256000000000004 +:04A257000000000003 +:04A258000000000002 +:04A259000000000001 +:04A25A000000000000 +:04A25B0000000000FF +:04A25C0000000000FE +:04A25D0000000000FD +:04A25E0000000000FC +:04A25F0000000000FB +:04A2600000000000FA +:04A2610000000000F9 +:04A2620000000000F8 +:04A2630000000000F7 +:04A2640000000000F6 +:04A2650000000000F5 +:04A2660000000000F4 +:04A2670000000000F3 +:04A2680000000000F2 +:04A2690000000000F1 +:04A26A0000000000F0 +:04A26B0000000000EF +:04A26C0000000000EE +:04A26D0000000000ED +:04A26E0000000000EC +:04A26F0000000000EB +:04A2700000000000EA +:04A2710000000000E9 +:04A2720000000000E8 +:04A2730000000000E7 +:04A2740000000000E6 +:04A2750000000000E5 +:04A2760000000000E4 +:04A2770000000000E3 +:04A2780000000000E2 +:04A2790000000000E1 +:04A27A0000000000E0 +:04A27B0000000000DF +:04A27C0000000000DE +:04A27D0000000000DD +:04A27E0000000000DC +:04A27F0000000000DB +:04A2800000000000DA +:04A2810000000000D9 +:04A2820000000000D8 +:04A2830000000000D7 +:04A2840000000000D6 +:04A2850000000000D5 +:04A2860000000000D4 +:04A2870000000000D3 +:04A2880000000000D2 +:04A2890000000000D1 +:04A28A0000000000D0 +:04A28B0000000000CF +:04A28C0000000000CE +:04A28D0000000000CD +:04A28E0000000000CC +:04A28F0000000000CB +:04A2900000000000CA +:04A2910000000000C9 +:04A2920000000000C8 +:04A2930000000000C7 +:04A2940000000000C6 +:04A2950000000000C5 +:04A2960000000000C4 +:04A2970000000000C3 +:04A2980000000000C2 +:04A2990000000000C1 +:04A29A0000000000C0 +:04A29B0000000000BF +:04A29C0000000000BE +:04A29D0000000000BD +:04A29E0000000000BC +:04A29F0000000000BB +:04A2A00000000000BA +:04A2A10000000000B9 +:04A2A20000000000B8 +:04A2A30000000000B7 +:04A2A40000000000B6 +:04A2A50000000000B5 +:04A2A60000000000B4 +:04A2A70000000000B3 +:04A2A80000000000B2 +:04A2A90000000000B1 +:04A2AA0000000000B0 +:04A2AB0000000000AF +:04A2AC0000000000AE +:04A2AD0000000000AD +:04A2AE0000000000AC +:04A2AF0000000000AB +:04A2B00000000000AA +:04A2B10000000000A9 +:04A2B20000000000A8 +:04A2B30000000000A7 +:04A2B40000000000A6 +:04A2B50000000000A5 +:04A2B60000000000A4 +:04A2B70000000000A3 +:04A2B80000000000A2 +:04A2B90000000000A1 +:04A2BA0000000000A0 +:04A2BB00000000009F +:04A2BC00000000009E +:04A2BD00000000009D +:04A2BE00000000009C +:04A2BF00000000009B +:04A2C000000000009A +:04A2C1000000000099 +:04A2C2000000000098 +:04A2C3000000000097 +:04A2C4000000000096 +:04A2C5000000000095 +:04A2C6000000000094 +:04A2C7000000000093 +:04A2C8000000000092 +:04A2C9000000000091 +:04A2CA000000000090 +:04A2CB00000000008F +:04A2CC00000000008E +:04A2CD00000000008D +:04A2CE00000000008C +:04A2CF00000000008B +:04A2D000000000008A +:04A2D1000000000089 +:04A2D2000000000088 +:04A2D3000000000087 +:04A2D4000000000086 +:04A2D5000000000085 +:04A2D6000000000084 +:04A2D7000000000083 +:04A2D8000000000082 +:04A2D9000000000081 +:04A2DA000000000080 +:04A2DB00000000007F +:04A2DC00000000007E +:04A2DD00000000007D +:04A2DE00000000007C +:04A2DF00000000007B +:04A2E000000000007A +:04A2E1000000000079 +:04A2E2000000000078 +:04A2E3000000000077 +:04A2E4000000000076 +:04A2E5000000000075 +:04A2E6000000000074 +:04A2E7000000000073 +:04A2E8000000000072 +:04A2E9000000000071 +:04A2EA000000000070 +:04A2EB00000000006F +:04A2EC00000000006E +:04A2ED00000000006D +:04A2EE00000000006C +:04A2EF00000000006B +:04A2F000000000006A +:04A2F1000000000069 +:04A2F2000000000068 +:04A2F3000000000067 +:04A2F4000000000066 +:04A2F5000000000065 +:04A2F6000000000064 +:04A2F7000000000063 +:04A2F8000000000062 +:04A2F9000000000061 +:04A2FA000000000060 +:04A2FB00000000005F +:04A2FC00000000005E +:04A2FD00000000005D +:04A2FE00000000005C +:04A2FF00000000005B +:04A300000000000059 +:04A301000000000058 +:04A302000000000057 +:04A303000000000056 +:04A304000000000055 +:04A305000000000054 +:04A306000000000053 +:04A307000000000052 +:04A308000000000051 +:04A309000000000050 +:04A30A00000000004F +:04A30B00000000004E +:04A30C00000000004D +:04A30D00000000004C +:04A30E00000000004B +:04A30F00000000004A +:04A310000000000049 +:04A311000000000048 +:04A312000000000047 +:04A313000000000046 +:04A314000000000045 +:04A315000000000044 +:04A316000000000043 +:04A317000000000042 +:04A318000000000041 +:04A319000000000040 +:04A31A00000000003F +:04A31B00000000003E +:04A31C00000000003D +:04A31D00000000003C +:04A31E00000000003B +:04A31F00000000003A +:04A320000000000039 +:04A321000000000038 +:04A322000000000037 +:04A323000000000036 +:04A324000000000035 +:04A325000000000034 +:04A326000000000033 +:04A327000000000032 +:04A328000000000031 +:04A329000000000030 +:04A32A00000000002F +:04A32B00000000002E +:04A32C00000000002D +:04A32D00000000002C +:04A32E00000000002B +:04A32F00000000002A +:04A330000000000029 +:04A331000000000028 +:04A332000000000027 +:04A333000000000026 +:04A334000000000025 +:04A335000000000024 +:04A336000000000023 +:04A337000000000022 +:04A338000000000021 +:04A339000000000020 +:04A33A00000000001F +:04A33B00000000001E +:04A33C00000000001D +:04A33D00000000001C +:04A33E00000000001B +:04A33F00000000001A +:04A340000000000019 +:04A341000000000018 +:04A342000000000017 +:04A343000000000016 +:04A344000000000015 +:04A345000000000014 +:04A346000000000013 +:04A347000000000012 +:04A348000000000011 +:04A349000000000010 +:04A34A00000000000F +:04A34B00000000000E +:04A34C00000000000D +:04A34D00000000000C +:04A34E00000000000B +:04A34F00000000000A +:04A350000000000009 +:04A351000000000008 +:04A352000000000007 +:04A353000000000006 +:04A354000000000005 +:04A355000000000004 +:04A356000000000003 +:04A357000000000002 +:04A358000000000001 +:04A359000000000000 +:04A35A0000000000FF +:04A35B0000000000FE +:04A35C0000000000FD +:04A35D0000000000FC +:04A35E0000000000FB +:04A35F0000000000FA +:04A3600000000000F9 +:04A3610000000000F8 +:04A3620000000000F7 +:04A3630000000000F6 +:04A3640000000000F5 +:04A3650000000000F4 +:04A3660000000000F3 +:04A3670000000000F2 +:04A3680000000000F1 +:04A3690000000000F0 +:04A36A0000000000EF +:04A36B0000000000EE +:04A36C0000000000ED +:04A36D0000000000EC +:04A36E0000000000EB +:04A36F0000000000EA +:04A3700000000000E9 +:04A3710000000000E8 +:04A3720000000000E7 +:04A3730000000000E6 +:04A3740000000000E5 +:04A3750000000000E4 +:04A3760000000000E3 +:04A3770000000000E2 +:04A3780000000000E1 +:04A3790000000000E0 +:04A37A0000000000DF +:04A37B0000000000DE +:04A37C0000000000DD +:04A37D0000000000DC +:04A37E0000000000DB +:04A37F0000000000DA +:04A3800000000000D9 +:04A3810000000000D8 +:04A3820000000000D7 +:04A3830000000000D6 +:04A3840000000000D5 +:04A3850000000000D4 +:04A3860000000000D3 +:04A3870000000000D2 +:04A3880000000000D1 +:04A3890000000000D0 +:04A38A0000000000CF +:04A38B0000000000CE +:04A38C0000000000CD +:04A38D0000000000CC +:04A38E0000000000CB +:04A38F0000000000CA +:04A3900000000000C9 +:04A3910000000000C8 +:04A3920000000000C7 +:04A3930000000000C6 +:04A3940000000000C5 +:04A3950000000000C4 +:04A3960000000000C3 +:04A3970000000000C2 +:04A3980000000000C1 +:04A3990000000000C0 +:04A39A0000000000BF +:04A39B0000000000BE +:04A39C0000000000BD +:04A39D0000000000BC +:04A39E0000000000BB +:04A39F0000000000BA +:04A3A00000000000B9 +:04A3A10000000000B8 +:04A3A20000000000B7 +:04A3A30000000000B6 +:04A3A40000000000B5 +:04A3A50000000000B4 +:04A3A60000000000B3 +:04A3A70000000000B2 +:04A3A80000000000B1 +:04A3A90000000000B0 +:04A3AA0000000000AF +:04A3AB0000000000AE +:04A3AC0000000000AD +:04A3AD0000000000AC +:04A3AE0000000000AB +:04A3AF0000000000AA +:04A3B00000000000A9 +:04A3B10000000000A8 +:04A3B20000000000A7 +:04A3B30000000000A6 +:04A3B40000000000A5 +:04A3B50000000000A4 +:04A3B60000000000A3 +:04A3B70000000000A2 +:04A3B80000000000A1 +:04A3B90000000000A0 +:04A3BA00000000009F +:04A3BB00000000009E +:04A3BC00000000009D +:04A3BD00000000009C +:04A3BE00000000009B +:04A3BF00000000009A +:04A3C0000000000099 +:04A3C1000000000098 +:04A3C2000000000097 +:04A3C3000000000096 +:04A3C4000000000095 +:04A3C5000000000094 +:04A3C6000000000093 +:04A3C7000000000092 +:04A3C8000000000091 +:04A3C9000000000090 +:04A3CA00000000008F +:04A3CB00000000008E +:04A3CC00000000008D +:04A3CD00000000008C +:04A3CE00000000008B +:04A3CF00000000008A +:04A3D0000000000089 +:04A3D1000000000088 +:04A3D2000000000087 +:04A3D3000000000086 +:04A3D4000000000085 +:04A3D5000000000084 +:04A3D6000000000083 +:04A3D7000000000082 +:04A3D8000000000081 +:04A3D9000000000080 +:04A3DA00000000007F +:04A3DB00000000007E +:04A3DC00000000007D +:04A3DD00000000007C +:04A3DE00000000007B +:04A3DF00000000007A +:04A3E0000000000079 +:04A3E1000000000078 +:04A3E2000000000077 +:04A3E3000000000076 +:04A3E4000000000075 +:04A3E5000000000074 +:04A3E6000000000073 +:04A3E7000000000072 +:04A3E8000000000071 +:04A3E9000000000070 +:04A3EA00000000006F +:04A3EB00000000006E +:04A3EC00000000006D +:04A3ED00000000006C +:04A3EE00000000006B +:04A3EF00000000006A +:04A3F0000000000069 +:04A3F1000000000068 +:04A3F2000000000067 +:04A3F3000000000066 +:04A3F4000000000065 +:04A3F5000000000064 +:04A3F6000000000063 +:04A3F7000000000062 +:04A3F8000000000061 +:04A3F9000000000060 +:04A3FA00000000005F +:04A3FB00000000005E +:04A3FC00000000005D +:04A3FD00000000005C +:04A3FE00000000005B +:04A3FF00000000005A +:04A400000000000058 +:04A401000000000057 +:04A402000000000056 +:04A403000000000055 +:04A404000000000054 +:04A405000000000053 +:04A406000000000052 +:04A407000000000051 +:04A408000000000050 +:04A40900000000004F +:04A40A00000000004E +:04A40B00000000004D +:04A40C00000000004C +:04A40D00000000004B +:04A40E00000000004A +:04A40F000000000049 +:04A410000000000048 +:04A411000000000047 +:04A412000000000046 +:04A413000000000045 +:04A414000000000044 +:04A415000000000043 +:04A416000000000042 +:04A417000000000041 +:04A418000000000040 +:04A41900000000003F +:04A41A00000000003E +:04A41B00000000003D +:04A41C00000000003C +:04A41D00000000003B +:04A41E00000000003A +:04A41F000000000039 +:04A420000000000038 +:04A421000000000037 +:04A422000000000036 +:04A423000000000035 +:04A424000000000034 +:04A425000000000033 +:04A426000000000032 +:04A427000000000031 +:04A428000000000030 +:04A42900000000002F +:04A42A00000000002E +:04A42B00000000002D +:04A42C00000000002C +:04A42D00000000002B +:04A42E00000000002A +:04A42F000000000029 +:04A430000000000028 +:04A431000000000027 +:04A432000000000026 +:04A433000000000025 +:04A434000000000024 +:04A435000000000023 +:04A436000000000022 +:04A437000000000021 +:04A438000000000020 +:04A43900000000001F +:04A43A00000000001E +:04A43B00000000001D +:04A43C00000000001C +:04A43D00000000001B +:04A43E00000000001A +:04A43F000000000019 +:04A440000000000018 +:04A441000000000017 +:04A442000000000016 +:04A443000000000015 +:04A444000000000014 +:04A445000000000013 +:04A446000000000012 +:04A447000000000011 +:04A448000000000010 +:04A44900000000000F +:04A44A00000000000E +:04A44B00000000000D +:04A44C00000000000C +:04A44D00000000000B +:04A44E00000000000A +:04A44F000000000009 +:04A450000000000008 +:04A451000000000007 +:04A452000000000006 +:04A453000000000005 +:04A454000000000004 +:04A455000000000003 +:04A456000000000002 +:04A457000000000001 +:04A458000000000000 +:04A4590000000000FF +:04A45A0000000000FE +:04A45B0000000000FD +:04A45C0000000000FC +:04A45D0000000000FB +:04A45E0000000000FA +:04A45F0000000000F9 +:04A4600000000000F8 +:04A4610000000000F7 +:04A4620000000000F6 +:04A4630000000000F5 +:04A4640000000000F4 +:04A4650000000000F3 +:04A4660000000000F2 +:04A4670000000000F1 +:04A4680000000000F0 +:04A4690000000000EF +:04A46A0000000000EE +:04A46B0000000000ED +:04A46C0000000000EC +:04A46D0000000000EB +:04A46E0000000000EA +:04A46F0000000000E9 +:04A4700000000000E8 +:04A4710000000000E7 +:04A4720000000000E6 +:04A4730000000000E5 +:04A4740000000000E4 +:04A4750000000000E3 +:04A4760000000000E2 +:04A4770000000000E1 +:04A4780000000000E0 +:04A4790000000000DF +:04A47A0000000000DE +:04A47B0000000000DD +:04A47C0000000000DC +:04A47D0000000000DB +:04A47E0000000000DA +:04A47F0000000000D9 +:04A4800000000000D8 +:04A4810000000000D7 +:04A4820000000000D6 +:04A4830000000000D5 +:04A4840000000000D4 +:04A4850000000000D3 +:04A4860000000000D2 +:04A4870000000000D1 +:04A4880000000000D0 +:04A4890000000000CF +:04A48A0000000000CE +:04A48B0000000000CD +:04A48C0000000000CC +:04A48D0000000000CB +:04A48E0000000000CA +:04A48F0000000000C9 +:04A4900000000000C8 +:04A4910000000000C7 +:04A4920000000000C6 +:04A4930000000000C5 +:04A4940000000000C4 +:04A4950000000000C3 +:04A4960000000000C2 +:04A4970000000000C1 +:04A4980000000000C0 +:04A4990000000000BF +:04A49A0000000000BE +:04A49B0000000000BD +:04A49C0000000000BC +:04A49D0000000000BB +:04A49E0000000000BA +:04A49F0000000000B9 +:04A4A00000000000B8 +:04A4A10000000000B7 +:04A4A20000000000B6 +:04A4A30000000000B5 +:04A4A40000000000B4 +:04A4A50000000000B3 +:04A4A60000000000B2 +:04A4A70000000000B1 +:04A4A80000000000B0 +:04A4A90000000000AF +:04A4AA0000000000AE +:04A4AB0000000000AD +:04A4AC0000000000AC +:04A4AD0000000000AB +:04A4AE0000000000AA +:04A4AF0000000000A9 +:04A4B00000000000A8 +:04A4B10000000000A7 +:04A4B20000000000A6 +:04A4B30000000000A5 +:04A4B40000000000A4 +:04A4B50000000000A3 +:04A4B60000000000A2 +:04A4B70000000000A1 +:04A4B80000000000A0 +:04A4B900000000009F +:04A4BA00000000009E +:04A4BB00000000009D +:04A4BC00000000009C +:04A4BD00000000009B +:04A4BE00000000009A +:04A4BF000000000099 +:04A4C0000000000098 +:04A4C1000000000097 +:04A4C2000000000096 +:04A4C3000000000095 +:04A4C4000000000094 +:04A4C5000000000093 +:04A4C6000000000092 +:04A4C7000000000091 +:04A4C8000000000090 +:04A4C900000000008F +:04A4CA00000000008E +:04A4CB00000000008D +:04A4CC00000000008C +:04A4CD00000000008B +:04A4CE00000000008A +:04A4CF000000000089 +:04A4D0000000000088 +:04A4D1000000000087 +:04A4D2000000000086 +:04A4D3000000000085 +:04A4D4000000000084 +:04A4D5000000000083 +:04A4D6000000000082 +:04A4D7000000000081 +:04A4D8000000000080 +:04A4D900000000007F +:04A4DA00000000007E +:04A4DB00000000007D +:04A4DC00000000007C +:04A4DD00000000007B +:04A4DE00000000007A +:04A4DF000000000079 +:04A4E0000000000078 +:04A4E1000000000077 +:04A4E2000000000076 +:04A4E3000000000075 +:04A4E4000000000074 +:04A4E5000000000073 +:04A4E6000000000072 +:04A4E7000000000071 +:04A4E8000000000070 +:04A4E900000000006F +:04A4EA00000000006E +:04A4EB00000000006D +:04A4EC00000000006C +:04A4ED00000000006B +:04A4EE00000000006A +:04A4EF000000000069 +:04A4F0000000000068 +:04A4F1000000000067 +:04A4F2000000000066 +:04A4F3000000000065 +:04A4F4000000000064 +:04A4F5000000000063 +:04A4F6000000000062 +:04A4F7000000000061 +:04A4F8000000000060 +:04A4F900000000005F +:04A4FA00000000005E +:04A4FB00000000005D +:04A4FC00000000005C +:04A4FD00000000005B +:04A4FE00000000005A +:04A4FF000000000059 +:04A500000000000057 +:04A501000000000056 +:04A502000000000055 +:04A503000000000054 +:04A504000000000053 +:04A505000000000052 +:04A506000000000051 +:04A507000000000050 +:04A50800000000004F +:04A50900000000004E +:04A50A00000000004D +:04A50B00000000004C +:04A50C00000000004B +:04A50D00000000004A +:04A50E000000000049 +:04A50F000000000048 +:04A510000000000047 +:04A511000000000046 +:04A512000000000045 +:04A513000000000044 +:04A514000000000043 +:04A515000000000042 +:04A516000000000041 +:04A517000000000040 +:04A51800000000003F +:04A51900000000003E +:04A51A00000000003D +:04A51B00000000003C +:04A51C00000000003B +:04A51D00000000003A +:04A51E000000000039 +:04A51F000000000038 +:04A520000000000037 +:04A521000000000036 +:04A522000000000035 +:04A523000000000034 +:04A524000000000033 +:04A525000000000032 +:04A526000000000031 +:04A527000000000030 +:04A52800000000002F +:04A52900000000002E +:04A52A00000000002D +:04A52B00000000002C +:04A52C00000000002B +:04A52D00000000002A +:04A52E000000000029 +:04A52F000000000028 +:04A530000000000027 +:04A531000000000026 +:04A532000000000025 +:04A533000000000024 +:04A534000000000023 +:04A535000000000022 +:04A536000000000021 +:04A537000000000020 +:04A53800000000001F +:04A53900000000001E +:04A53A00000000001D +:04A53B00000000001C +:04A53C00000000001B +:04A53D00000000001A +:04A53E000000000019 +:04A53F000000000018 +:04A540000000000017 +:04A541000000000016 +:04A542000000000015 +:04A543000000000014 +:04A544000000000013 +:04A545000000000012 +:04A546000000000011 +:04A547000000000010 +:04A54800000000000F +:04A54900000000000E +:04A54A00000000000D +:04A54B00000000000C +:04A54C00000000000B +:04A54D00000000000A +:04A54E000000000009 +:04A54F000000000008 +:04A550000000000007 +:04A551000000000006 +:04A552000000000005 +:04A553000000000004 +:04A554000000000003 +:04A555000000000002 +:04A556000000000001 +:04A557000000000000 +:04A5580000000000FF +:04A5590000000000FE +:04A55A0000000000FD +:04A55B0000000000FC +:04A55C0000000000FB +:04A55D0000000000FA +:04A55E0000000000F9 +:04A55F0000000000F8 +:04A5600000000000F7 +:04A5610000000000F6 +:04A5620000000000F5 +:04A5630000000000F4 +:04A5640000000000F3 +:04A5650000000000F2 +:04A5660000000000F1 +:04A5670000000000F0 +:04A5680000000000EF +:04A5690000000000EE +:04A56A0000000000ED +:04A56B0000000000EC +:04A56C0000000000EB +:04A56D0000000000EA +:04A56E0000000000E9 +:04A56F0000000000E8 +:04A5700000000000E7 +:04A5710000000000E6 +:04A5720000000000E5 +:04A5730000000000E4 +:04A5740000000000E3 +:04A5750000000000E2 +:04A5760000000000E1 +:04A5770000000000E0 +:04A5780000000000DF +:04A5790000000000DE +:04A57A0000000000DD +:04A57B0000000000DC +:04A57C0000000000DB +:04A57D0000000000DA +:04A57E0000000000D9 +:04A57F0000000000D8 +:04A5800000000000D7 +:04A5810000000000D6 +:04A5820000000000D5 +:04A5830000000000D4 +:04A5840000000000D3 +:04A5850000000000D2 +:04A5860000000000D1 +:04A5870000000000D0 +:04A5880000000000CF +:04A5890000000000CE +:04A58A0000000000CD +:04A58B0000000000CC +:04A58C0000000000CB +:04A58D0000000000CA +:04A58E0000000000C9 +:04A58F0000000000C8 +:04A5900000000000C7 +:04A5910000000000C6 +:04A5920000000000C5 +:04A5930000000000C4 +:04A5940000000000C3 +:04A5950000000000C2 +:04A5960000000000C1 +:04A5970000000000C0 +:04A5980000000000BF +:04A5990000000000BE +:04A59A0000000000BD +:04A59B0000000000BC +:04A59C0000000000BB +:04A59D0000000000BA +:04A59E0000000000B9 +:04A59F0000000000B8 +:04A5A00000000000B7 +:04A5A10000000000B6 +:04A5A20000000000B5 +:04A5A30000000000B4 +:04A5A40000000000B3 +:04A5A50000000000B2 +:04A5A60000000000B1 +:04A5A70000000000B0 +:04A5A80000000000AF +:04A5A90000000000AE +:04A5AA0000000000AD +:04A5AB0000000000AC +:04A5AC0000000000AB +:04A5AD0000000000AA +:04A5AE0000000000A9 +:04A5AF0000000000A8 +:04A5B00000000000A7 +:04A5B10000000000A6 +:04A5B20000000000A5 +:04A5B30000000000A4 +:04A5B40000000000A3 +:04A5B50000000000A2 +:04A5B60000000000A1 +:04A5B70000000000A0 +:04A5B800000000009F +:04A5B900000000009E +:04A5BA00000000009D +:04A5BB00000000009C +:04A5BC00000000009B +:04A5BD00000000009A +:04A5BE000000000099 +:04A5BF000000000098 +:04A5C0000000000097 +:04A5C1000000000096 +:04A5C2000000000095 +:04A5C3000000000094 +:04A5C4000000000093 +:04A5C5000000000092 +:04A5C6000000000091 +:04A5C7000000000090 +:04A5C800000000008F +:04A5C900000000008E +:04A5CA00000000008D +:04A5CB00000000008C +:04A5CC00000000008B +:04A5CD00000000008A +:04A5CE000000000089 +:04A5CF000000000088 +:04A5D0000000000087 +:04A5D1000000000086 +:04A5D2000000000085 +:04A5D3000000000084 +:04A5D4000000000083 +:04A5D5000000000082 +:04A5D6000000000081 +:04A5D7000000000080 +:04A5D800000000007F +:04A5D900000000007E +:04A5DA00000000007D +:04A5DB00000000007C +:04A5DC00000000007B +:04A5DD00000000007A +:04A5DE000000000079 +:04A5DF000000000078 +:04A5E0000000000077 +:04A5E1000000000076 +:04A5E2000000000075 +:04A5E3000000000074 +:04A5E4000000000073 +:04A5E5000000000072 +:04A5E6000000000071 +:04A5E7000000000070 +:04A5E800000000006F +:04A5E900000000006E +:04A5EA00000000006D +:04A5EB00000000006C +:04A5EC00000000006B +:04A5ED00000000006A +:04A5EE000000000069 +:04A5EF000000000068 +:04A5F0000000000067 +:04A5F1000000000066 +:04A5F2000000000065 +:04A5F3000000000064 +:04A5F4000000000063 +:04A5F5000000000062 +:04A5F6000000000061 +:04A5F7000000000060 +:04A5F800000000005F +:04A5F900000000005E +:04A5FA00000000005D +:04A5FB00000000005C +:04A5FC00000000005B +:04A5FD00000000005A +:04A5FE000000000059 +:04A5FF000000000058 +:04A600000000000056 +:04A601000000000055 +:04A602000000000054 +:04A603000000000053 +:04A604000000000052 +:04A605000000000051 +:04A606000000000050 +:04A60700000000004F +:04A60800000000004E +:04A60900000000004D +:04A60A00000000004C +:04A60B00000000004B +:04A60C00000000004A +:04A60D000000000049 +:04A60E000000000048 +:04A60F000000000047 +:04A610000000000046 +:04A611000000000045 +:04A612000000000044 +:04A613000000000043 +:04A614000000000042 +:04A615000000000041 +:04A616000000000040 +:04A61700000000003F +:04A61800000000003E +:04A61900000000003D +:04A61A00000000003C +:04A61B00000000003B +:04A61C00000000003A +:04A61D000000000039 +:04A61E000000000038 +:04A61F000000000037 +:04A620000000000036 +:04A621000000000035 +:04A622000000000034 +:04A623000000000033 +:04A624000000000032 +:04A625000000000031 +:04A626000000000030 +:04A62700000000002F +:04A62800000000002E +:04A62900000000002D +:04A62A00000000002C +:04A62B00000000002B +:04A62C00000000002A +:04A62D000000000029 +:04A62E000000000028 +:04A62F000000000027 +:04A630000000000026 +:04A631000000000025 +:04A632000000000024 +:04A633000000000023 +:04A634000000000022 +:04A635000000000021 +:04A636000000000020 +:04A63700000000001F +:04A63800000000001E +:04A63900000000001D +:04A63A00000000001C +:04A63B00000000001B +:04A63C00000000001A +:04A63D000000000019 +:04A63E000000000018 +:04A63F000000000017 +:04A640000000000016 +:04A641000000000015 +:04A642000000000014 +:04A643000000000013 +:04A644000000000012 +:04A645000000000011 +:04A646000000000010 +:04A64700000000000F +:04A64800000000000E +:04A64900000000000D +:04A64A00000000000C +:04A64B00000000000B +:04A64C00000000000A +:04A64D000000000009 +:04A64E000000000008 +:04A64F000000000007 +:04A650000000000006 +:04A651000000000005 +:04A652000000000004 +:04A653000000000003 +:04A654000000000002 +:04A655000000000001 +:04A656000000000000 +:04A6570000000000FF +:04A6580000000000FE +:04A6590000000000FD +:04A65A0000000000FC +:04A65B0000000000FB +:04A65C0000000000FA +:04A65D0000000000F9 +:04A65E0000000000F8 +:04A65F0000000000F7 +:04A6600000000000F6 +:04A6610000000000F5 +:04A6620000000000F4 +:04A6630000000000F3 +:04A6640000000000F2 +:04A6650000000000F1 +:04A6660000000000F0 +:04A6670000000000EF +:04A6680000000000EE +:04A6690000000000ED +:04A66A0000000000EC +:04A66B0000000000EB +:04A66C0000000000EA +:04A66D0000000000E9 +:04A66E0000000000E8 +:04A66F0000000000E7 +:04A6700000000000E6 +:04A6710000000000E5 +:04A6720000000000E4 +:04A6730000000000E3 +:04A6740000000000E2 +:04A6750000000000E1 +:04A6760000000000E0 +:04A6770000000000DF +:04A6780000000000DE +:04A6790000000000DD +:04A67A0000000000DC +:04A67B0000000000DB +:04A67C0000000000DA +:04A67D0000000000D9 +:04A67E0000000000D8 +:04A67F0000000000D7 +:04A6800000000000D6 +:04A6810000000000D5 +:04A6820000000000D4 +:04A6830000000000D3 +:04A6840000000000D2 +:04A6850000000000D1 +:04A6860000000000D0 +:04A6870000000000CF +:04A6880000000000CE +:04A6890000000000CD +:04A68A0000000000CC +:04A68B0000000000CB +:04A68C0000000000CA +:04A68D0000000000C9 +:04A68E0000000000C8 +:04A68F0000000000C7 +:04A6900000000000C6 +:04A6910000000000C5 +:04A6920000000000C4 +:04A6930000000000C3 +:04A6940000000000C2 +:04A6950000000000C1 +:04A6960000000000C0 +:04A6970000000000BF +:04A6980000000000BE +:04A6990000000000BD +:04A69A0000000000BC +:04A69B0000000000BB +:04A69C0000000000BA +:04A69D0000000000B9 +:04A69E0000000000B8 +:04A69F0000000000B7 +:04A6A00000000000B6 +:04A6A10000000000B5 +:04A6A20000000000B4 +:04A6A30000000000B3 +:04A6A40000000000B2 +:04A6A50000000000B1 +:04A6A60000000000B0 +:04A6A70000000000AF +:04A6A80000000000AE +:04A6A90000000000AD +:04A6AA0000000000AC +:04A6AB0000000000AB +:04A6AC0000000000AA +:04A6AD0000000000A9 +:04A6AE0000000000A8 +:04A6AF0000000000A7 +:04A6B00000000000A6 +:04A6B10000000000A5 +:04A6B20000000000A4 +:04A6B30000000000A3 +:04A6B40000000000A2 +:04A6B50000000000A1 +:04A6B60000000000A0 +:04A6B700000000009F +:04A6B800000000009E +:04A6B900000000009D +:04A6BA00000000009C +:04A6BB00000000009B +:04A6BC00000000009A +:04A6BD000000000099 +:04A6BE000000000098 +:04A6BF000000000097 +:04A6C0000000000096 +:04A6C1000000000095 +:04A6C2000000000094 +:04A6C3000000000093 +:04A6C4000000000092 +:04A6C5000000000091 +:04A6C6000000000090 +:04A6C700000000008F +:04A6C800000000008E +:04A6C900000000008D +:04A6CA00000000008C +:04A6CB00000000008B +:04A6CC00000000008A +:04A6CD000000000089 +:04A6CE000000000088 +:04A6CF000000000087 +:04A6D0000000000086 +:04A6D1000000000085 +:04A6D2000000000084 +:04A6D3000000000083 +:04A6D4000000000082 +:04A6D5000000000081 +:04A6D6000000000080 +:04A6D700000000007F +:04A6D800000000007E +:04A6D900000000007D +:04A6DA00000000007C +:04A6DB00000000007B +:04A6DC00000000007A +:04A6DD000000000079 +:04A6DE000000000078 +:04A6DF000000000077 +:04A6E0000000000076 +:04A6E1000000000075 +:04A6E2000000000074 +:04A6E3000000000073 +:04A6E4000000000072 +:04A6E5000000000071 +:04A6E6000000000070 +:04A6E700000000006F +:04A6E800000000006E +:04A6E900000000006D +:04A6EA00000000006C +:04A6EB00000000006B +:04A6EC00000000006A +:04A6ED000000000069 +:04A6EE000000000068 +:04A6EF000000000067 +:04A6F0000000000066 +:04A6F1000000000065 +:04A6F2000000000064 +:04A6F3000000000063 +:04A6F4000000000062 +:04A6F5000000000061 +:04A6F6000000000060 +:04A6F700000000005F +:04A6F800000000005E +:04A6F900000000005D +:04A6FA00000000005C +:04A6FB00000000005B +:04A6FC00000000005A +:04A6FD000000000059 +:04A6FE000000000058 +:04A6FF000000000057 +:04A700000000000055 +:04A701000000000054 +:04A702000000000053 +:04A703000000000052 +:04A704000000000051 +:04A705000000000050 +:04A70600000000004F +:04A70700000000004E +:04A70800000000004D +:04A70900000000004C +:04A70A00000000004B +:04A70B00000000004A +:04A70C000000000049 +:04A70D000000000048 +:04A70E000000000047 +:04A70F000000000046 +:04A710000000000045 +:04A711000000000044 +:04A712000000000043 +:04A713000000000042 +:04A714000000000041 +:04A715000000000040 +:04A71600000000003F +:04A71700000000003E +:04A71800000000003D +:04A71900000000003C +:04A71A00000000003B +:04A71B00000000003A +:04A71C000000000039 +:04A71D000000000038 +:04A71E000000000037 +:04A71F000000000036 +:04A720000000000035 +:04A721000000000034 +:04A722000000000033 +:04A723000000000032 +:04A724000000000031 +:04A725000000000030 +:04A72600000000002F +:04A72700000000002E +:04A72800000000002D +:04A72900000000002C +:04A72A00000000002B +:04A72B00000000002A +:04A72C000000000029 +:04A72D000000000028 +:04A72E000000000027 +:04A72F000000000026 +:04A730000000000025 +:04A731000000000024 +:04A732000000000023 +:04A733000000000022 +:04A734000000000021 +:04A735000000000020 +:04A73600000000001F +:04A73700000000001E +:04A73800000000001D +:04A73900000000001C +:04A73A00000000001B +:04A73B00000000001A +:04A73C000000000019 +:04A73D000000000018 +:04A73E000000000017 +:04A73F000000000016 +:04A740000000000015 +:04A741000000000014 +:04A742000000000013 +:04A743000000000012 +:04A744000000000011 +:04A745000000000010 +:04A74600000000000F +:04A74700000000000E +:04A74800000000000D +:04A74900000000000C +:04A74A00000000000B +:04A74B00000000000A +:04A74C000000000009 +:04A74D000000000008 +:04A74E000000000007 +:04A74F000000000006 +:04A750000000000005 +:04A751000000000004 +:04A752000000000003 +:04A753000000000002 +:04A754000000000001 +:04A755000000000000 +:04A7560000000000FF +:04A7570000000000FE +:04A7580000000000FD +:04A7590000000000FC +:04A75A0000000000FB +:04A75B0000000000FA +:04A75C0000000000F9 +:04A75D0000000000F8 +:04A75E0000000000F7 +:04A75F0000000000F6 +:04A7600000000000F5 +:04A7610000000000F4 +:04A7620000000000F3 +:04A7630000000000F2 +:04A7640000000000F1 +:04A7650000000000F0 +:04A7660000000000EF +:04A7670000000000EE +:04A7680000000000ED +:04A7690000000000EC +:04A76A0000000000EB +:04A76B0000000000EA +:04A76C0000000000E9 +:04A76D0000000000E8 +:04A76E0000000000E7 +:04A76F0000000000E6 +:04A7700000000000E5 +:04A7710000000000E4 +:04A7720000000000E3 +:04A7730000000000E2 +:04A7740000000000E1 +:04A7750000000000E0 +:04A7760000000000DF +:04A7770000000000DE +:04A7780000000000DD +:04A7790000000000DC +:04A77A0000000000DB +:04A77B0000000000DA +:04A77C0000000000D9 +:04A77D0000000000D8 +:04A77E0000000000D7 +:04A77F0000000000D6 +:04A7800000000000D5 +:04A7810000000000D4 +:04A7820000000000D3 +:04A7830000000000D2 +:04A7840000000000D1 +:04A7850000000000D0 +:04A7860000000000CF +:04A7870000000000CE +:04A7880000000000CD +:04A7890000000000CC +:04A78A0000000000CB +:04A78B0000000000CA +:04A78C0000000000C9 +:04A78D0000000000C8 +:04A78E0000000000C7 +:04A78F0000000000C6 +:04A7900000000000C5 +:04A7910000000000C4 +:04A7920000000000C3 +:04A7930000000000C2 +:04A7940000000000C1 +:04A7950000000000C0 +:04A7960000000000BF +:04A7970000000000BE +:04A7980000000000BD +:04A7990000000000BC +:04A79A0000000000BB +:04A79B0000000000BA +:04A79C0000000000B9 +:04A79D0000000000B8 +:04A79E0000000000B7 +:04A79F0000000000B6 +:04A7A00000000000B5 +:04A7A10000000000B4 +:04A7A20000000000B3 +:04A7A30000000000B2 +:04A7A40000000000B1 +:04A7A50000000000B0 +:04A7A60000000000AF +:04A7A70000000000AE +:04A7A80000000000AD +:04A7A90000000000AC +:04A7AA0000000000AB +:04A7AB0000000000AA +:04A7AC0000000000A9 +:04A7AD0000000000A8 +:04A7AE0000000000A7 +:04A7AF0000000000A6 +:04A7B00000000000A5 +:04A7B10000000000A4 +:04A7B20000000000A3 +:04A7B30000000000A2 +:04A7B40000000000A1 +:04A7B50000000000A0 +:04A7B600000000009F +:04A7B700000000009E +:04A7B800000000009D +:04A7B900000000009C +:04A7BA00000000009B +:04A7BB00000000009A +:04A7BC000000000099 +:04A7BD000000000098 +:04A7BE000000000097 +:04A7BF000000000096 +:04A7C0000000000095 +:04A7C1000000000094 +:04A7C2000000000093 +:04A7C3000000000092 +:04A7C4000000000091 +:04A7C5000000000090 +:04A7C600000000008F +:04A7C700000000008E +:04A7C800000000008D +:04A7C900000000008C +:04A7CA00000000008B +:04A7CB00000000008A +:04A7CC000000000089 +:04A7CD000000000088 +:04A7CE000000000087 +:04A7CF000000000086 +:04A7D0000000000085 +:04A7D1000000000084 +:04A7D2000000000083 +:04A7D3000000000082 +:04A7D4000000000081 +:04A7D5000000000080 +:04A7D600000000007F +:04A7D700000000007E +:04A7D800000000007D +:04A7D900000000007C +:04A7DA00000000007B +:04A7DB00000000007A +:04A7DC000000000079 +:04A7DD000000000078 +:04A7DE000000000077 +:04A7DF000000000076 +:04A7E0000000000075 +:04A7E1000000000074 +:04A7E2000000000073 +:04A7E3000000000072 +:04A7E4000000000071 +:04A7E5000000000070 +:04A7E600000000006F +:04A7E700000000006E +:04A7E800000000006D +:04A7E900000000006C +:04A7EA00000000006B +:04A7EB00000000006A +:04A7EC000000000069 +:04A7ED000000000068 +:04A7EE000000000067 +:04A7EF000000000066 +:04A7F0000000000065 +:04A7F1000000000064 +:04A7F2000000000063 +:04A7F3000000000062 +:04A7F4000000000061 +:04A7F5000000000060 +:04A7F600000000005F +:04A7F700000000005E +:04A7F800000000005D +:04A7F900000000005C +:04A7FA00000000005B +:04A7FB00000000005A +:04A7FC000000000059 +:04A7FD000000000058 +:04A7FE000000000057 +:04A7FF000000000056 +:04A800000000000054 +:04A801000000000053 +:04A802000000000052 +:04A803000000000051 +:04A804000000000050 +:04A80500000000004F +:04A80600000000004E +:04A80700000000004D +:04A80800000000004C +:04A80900000000004B +:04A80A00000000004A +:04A80B000000000049 +:04A80C000000000048 +:04A80D000000000047 +:04A80E000000000046 +:04A80F000000000045 +:04A810000000000044 +:04A811000000000043 +:04A812000000000042 +:04A813000000000041 +:04A814000000000040 +:04A81500000000003F +:04A81600000000003E +:04A81700000000003D +:04A81800000000003C +:04A81900000000003B +:04A81A00000000003A +:04A81B000000000039 +:04A81C000000000038 +:04A81D000000000037 +:04A81E000000000036 +:04A81F000000000035 +:04A820000000000034 +:04A821000000000033 +:04A822000000000032 +:04A823000000000031 +:04A824000000000030 +:04A82500000000002F +:04A82600000000002E +:04A82700000000002D +:04A82800000000002C +:04A82900000000002B +:04A82A00000000002A +:04A82B000000000029 +:04A82C000000000028 +:04A82D000000000027 +:04A82E000000000026 +:04A82F000000000025 +:04A830000000000024 +:04A831000000000023 +:04A832000000000022 +:04A833000000000021 +:04A834000000000020 +:04A83500000000001F +:04A83600000000001E +:04A83700000000001D +:04A83800000000001C +:04A83900000000001B +:04A83A00000000001A +:04A83B000000000019 +:04A83C000000000018 +:04A83D000000000017 +:04A83E000000000016 +:04A83F000000000015 +:04A840000000000014 +:04A841000000000013 +:04A842000000000012 +:04A843000000000011 +:04A844000000000010 +:04A84500000000000F +:04A84600000000000E +:04A84700000000000D +:04A84800000000000C +:04A84900000000000B +:04A84A00000000000A +:04A84B000000000009 +:04A84C000000000008 +:04A84D000000000007 +:04A84E000000000006 +:04A84F000000000005 +:04A850000000000004 +:04A851000000000003 +:04A852000000000002 +:04A853000000000001 +:04A854000000000000 +:04A8550000000000FF +:04A8560000000000FE +:04A8570000000000FD +:04A8580000000000FC +:04A8590000000000FB +:04A85A0000000000FA +:04A85B0000000000F9 +:04A85C0000000000F8 +:04A85D0000000000F7 +:04A85E0000000000F6 +:04A85F0000000000F5 +:04A8600000000000F4 +:04A8610000000000F3 +:04A8620000000000F2 +:04A8630000000000F1 +:04A8640000000000F0 +:04A8650000000000EF +:04A8660000000000EE +:04A8670000000000ED +:04A8680000000000EC +:04A8690000000000EB +:04A86A0000000000EA +:04A86B0000000000E9 +:04A86C0000000000E8 +:04A86D0000000000E7 +:04A86E0000000000E6 +:04A86F0000000000E5 +:04A8700000000000E4 +:04A8710000000000E3 +:04A8720000000000E2 +:04A8730000000000E1 +:04A8740000000000E0 +:04A8750000000000DF +:04A8760000000000DE +:04A8770000000000DD +:04A8780000000000DC +:04A8790000000000DB +:04A87A0000000000DA +:04A87B0000000000D9 +:04A87C0000000000D8 +:04A87D0000000000D7 +:04A87E0000000000D6 +:04A87F0000000000D5 +:04A8800000000000D4 +:04A8810000000000D3 +:04A8820000000000D2 +:04A8830000000000D1 +:04A8840000000000D0 +:04A8850000000000CF +:04A8860000000000CE +:04A8870000000000CD +:04A8880000000000CC +:04A8890000000000CB +:04A88A0000000000CA +:04A88B0000000000C9 +:04A88C0000000000C8 +:04A88D0000000000C7 +:04A88E0000000000C6 +:04A88F0000000000C5 +:04A8900000000000C4 +:04A8910000000000C3 +:04A8920000000000C2 +:04A8930000000000C1 +:04A8940000000000C0 +:04A8950000000000BF +:04A8960000000000BE +:04A8970000000000BD +:04A8980000000000BC +:04A8990000000000BB +:04A89A0000000000BA +:04A89B0000000000B9 +:04A89C0000000000B8 +:04A89D0000000000B7 +:04A89E0000000000B6 +:04A89F0000000000B5 +:04A8A00000000000B4 +:04A8A10000000000B3 +:04A8A20000000000B2 +:04A8A30000000000B1 +:04A8A40000000000B0 +:04A8A50000000000AF +:04A8A60000000000AE +:04A8A70000000000AD +:04A8A80000000000AC +:04A8A90000000000AB +:04A8AA0000000000AA +:04A8AB0000000000A9 +:04A8AC0000000000A8 +:04A8AD0000000000A7 +:04A8AE0000000000A6 +:04A8AF0000000000A5 +:04A8B00000000000A4 +:04A8B10000000000A3 +:04A8B20000000000A2 +:04A8B30000000000A1 +:04A8B40000000000A0 +:04A8B500000000009F +:04A8B600000000009E +:04A8B700000000009D +:04A8B800000000009C +:04A8B900000000009B +:04A8BA00000000009A +:04A8BB000000000099 +:04A8BC000000000098 +:04A8BD000000000097 +:04A8BE000000000096 +:04A8BF000000000095 +:04A8C0000000000094 +:04A8C1000000000093 +:04A8C2000000000092 +:04A8C3000000000091 +:04A8C4000000000090 +:04A8C500000000008F +:04A8C600000000008E +:04A8C700000000008D +:04A8C800000000008C +:04A8C900000000008B +:04A8CA00000000008A +:04A8CB000000000089 +:04A8CC000000000088 +:04A8CD000000000087 +:04A8CE000000000086 +:04A8CF000000000085 +:04A8D0000000000084 +:04A8D1000000000083 +:04A8D2000000000082 +:04A8D3000000000081 +:04A8D4000000000080 +:04A8D500000000007F +:04A8D600000000007E +:04A8D700000000007D +:04A8D800000000007C +:04A8D900000000007B +:04A8DA00000000007A +:04A8DB000000000079 +:04A8DC000000000078 +:04A8DD000000000077 +:04A8DE000000000076 +:04A8DF000000000075 +:04A8E0000000000074 +:04A8E1000000000073 +:04A8E2000000000072 +:04A8E3000000000071 +:04A8E4000000000070 +:04A8E500000000006F +:04A8E600000000006E +:04A8E700000000006D +:04A8E800000000006C +:04A8E900000000006B +:04A8EA00000000006A +:04A8EB000000000069 +:04A8EC000000000068 +:04A8ED000000000067 +:04A8EE000000000066 +:04A8EF000000000065 +:04A8F0000000000064 +:04A8F1000000000063 +:04A8F2000000000062 +:04A8F3000000000061 +:04A8F4000000000060 +:04A8F500000000005F +:04A8F600000000005E +:04A8F700000000005D +:04A8F800000000005C +:04A8F900000000005B +:04A8FA00000000005A +:04A8FB000000000059 +:04A8FC000000000058 +:04A8FD000000000057 +:04A8FE000000000056 +:04A8FF000000000055 +:04A900000000000053 +:04A901000000000052 +:04A902000000000051 +:04A903000000000050 +:04A90400000000004F +:04A90500000000004E +:04A90600000000004D +:04A90700000000004C +:04A90800000000004B +:04A90900000000004A +:04A90A000000000049 +:04A90B000000000048 +:04A90C000000000047 +:04A90D000000000046 +:04A90E000000000045 +:04A90F000000000044 +:04A910000000000043 +:04A911000000000042 +:04A912000000000041 +:04A913000000000040 +:04A91400000000003F +:04A91500000000003E +:04A91600000000003D +:04A91700000000003C +:04A91800000000003B +:04A91900000000003A +:04A91A000000000039 +:04A91B000000000038 +:04A91C000000000037 +:04A91D000000000036 +:04A91E000000000035 +:04A91F000000000034 +:04A920000000000033 +:04A921000000000032 +:04A922000000000031 +:04A923000000000030 +:04A92400000000002F +:04A92500000000002E +:04A92600000000002D +:04A92700000000002C +:04A92800000000002B +:04A92900000000002A +:04A92A000000000029 +:04A92B000000000028 +:04A92C000000000027 +:04A92D000000000026 +:04A92E000000000025 +:04A92F000000000024 +:04A930000000000023 +:04A931000000000022 +:04A932000000000021 +:04A933000000000020 +:04A93400000000001F +:04A93500000000001E +:04A93600000000001D +:04A93700000000001C +:04A93800000000001B +:04A93900000000001A +:04A93A000000000019 +:04A93B000000000018 +:04A93C000000000017 +:04A93D000000000016 +:04A93E000000000015 +:04A93F000000000014 +:04A940000000000013 +:04A941000000000012 +:04A942000000000011 +:04A943000000000010 +:04A94400000000000F +:04A94500000000000E +:04A94600000000000D +:04A94700000000000C +:04A94800000000000B +:04A94900000000000A +:04A94A000000000009 +:04A94B000000000008 +:04A94C000000000007 +:04A94D000000000006 +:04A94E000000000005 +:04A94F000000000004 +:04A950000000000003 +:04A951000000000002 +:04A952000000000001 +:04A953000000000000 +:04A9540000000000FF +:04A9550000000000FE +:04A9560000000000FD +:04A9570000000000FC +:04A9580000000000FB +:04A9590000000000FA +:04A95A0000000000F9 +:04A95B0000000000F8 +:04A95C0000000000F7 +:04A95D0000000000F6 +:04A95E0000000000F5 +:04A95F0000000000F4 +:04A9600000000000F3 +:04A9610000000000F2 +:04A9620000000000F1 +:04A9630000000000F0 +:04A9640000000000EF +:04A9650000000000EE +:04A9660000000000ED +:04A9670000000000EC +:04A9680000000000EB +:04A9690000000000EA +:04A96A0000000000E9 +:04A96B0000000000E8 +:04A96C0000000000E7 +:04A96D0000000000E6 +:04A96E0000000000E5 +:04A96F0000000000E4 +:04A9700000000000E3 +:04A9710000000000E2 +:04A9720000000000E1 +:04A9730000000000E0 +:04A9740000000000DF +:04A9750000000000DE +:04A9760000000000DD +:04A9770000000000DC +:04A9780000000000DB +:04A9790000000000DA +:04A97A0000000000D9 +:04A97B0000000000D8 +:04A97C0000000000D7 +:04A97D0000000000D6 +:04A97E0000000000D5 +:04A97F0000000000D4 +:04A9800000000000D3 +:04A9810000000000D2 +:04A9820000000000D1 +:04A9830000000000D0 +:04A9840000000000CF +:04A9850000000000CE +:04A9860000000000CD +:04A9870000000000CC +:04A9880000000000CB +:04A9890000000000CA +:04A98A0000000000C9 +:04A98B0000000000C8 +:04A98C0000000000C7 +:04A98D0000000000C6 +:04A98E0000000000C5 +:04A98F0000000000C4 +:04A9900000000000C3 +:04A9910000000000C2 +:04A9920000000000C1 +:04A9930000000000C0 +:04A9940000000000BF +:04A9950000000000BE +:04A9960000000000BD +:04A9970000000000BC +:04A9980000000000BB +:04A9990000000000BA +:04A99A0000000000B9 +:04A99B0000000000B8 +:04A99C0000000000B7 +:04A99D0000000000B6 +:04A99E0000000000B5 +:04A99F0000000000B4 +:04A9A00000000000B3 +:04A9A10000000000B2 +:04A9A20000000000B1 +:04A9A30000000000B0 +:04A9A40000000000AF +:04A9A50000000000AE +:04A9A60000000000AD +:04A9A70000000000AC +:04A9A80000000000AB +:04A9A90000000000AA +:04A9AA0000000000A9 +:04A9AB0000000000A8 +:04A9AC0000000000A7 +:04A9AD0000000000A6 +:04A9AE0000000000A5 +:04A9AF0000000000A4 +:04A9B00000000000A3 +:04A9B10000000000A2 +:04A9B20000000000A1 +:04A9B30000000000A0 +:04A9B400000000009F +:04A9B500000000009E +:04A9B600000000009D +:04A9B700000000009C +:04A9B800000000009B +:04A9B900000000009A +:04A9BA000000000099 +:04A9BB000000000098 +:04A9BC000000000097 +:04A9BD000000000096 +:04A9BE000000000095 +:04A9BF000000000094 +:04A9C0000000000093 +:04A9C1000000000092 +:04A9C2000000000091 +:04A9C3000000000090 +:04A9C400000000008F +:04A9C500000000008E +:04A9C600000000008D +:04A9C700000000008C +:04A9C800000000008B +:04A9C900000000008A +:04A9CA000000000089 +:04A9CB000000000088 +:04A9CC000000000087 +:04A9CD000000000086 +:04A9CE000000000085 +:04A9CF000000000084 +:04A9D0000000000083 +:04A9D1000000000082 +:04A9D2000000000081 +:04A9D3000000000080 +:04A9D400000000007F +:04A9D500000000007E +:04A9D600000000007D +:04A9D700000000007C +:04A9D800000000007B +:04A9D900000000007A +:04A9DA000000000079 +:04A9DB000000000078 +:04A9DC000000000077 +:04A9DD000000000076 +:04A9DE000000000075 +:04A9DF000000000074 +:04A9E0000000000073 +:04A9E1000000000072 +:04A9E2000000000071 +:04A9E3000000000070 +:04A9E400000000006F +:04A9E500000000006E +:04A9E600000000006D +:04A9E700000000006C +:04A9E800000000006B +:04A9E900000000006A +:04A9EA000000000069 +:04A9EB000000000068 +:04A9EC000000000067 +:04A9ED000000000066 +:04A9EE000000000065 +:04A9EF000000000064 +:04A9F0000000000063 +:04A9F1000000000062 +:04A9F2000000000061 +:04A9F3000000000060 +:04A9F400000000005F +:04A9F500000000005E +:04A9F600000000005D +:04A9F700000000005C +:04A9F800000000005B +:04A9F900000000005A +:04A9FA000000000059 +:04A9FB000000000058 +:04A9FC000000000057 +:04A9FD000000000056 +:04A9FE000000000055 +:04A9FF000000000054 +:04AA00000000000052 +:04AA01000000000051 +:04AA02000000000050 +:04AA0300000000004F +:04AA0400000000004E +:04AA0500000000004D +:04AA0600000000004C +:04AA0700000000004B +:04AA0800000000004A +:04AA09000000000049 +:04AA0A000000000048 +:04AA0B000000000047 +:04AA0C000000000046 +:04AA0D000000000045 +:04AA0E000000000044 +:04AA0F000000000043 +:04AA10000000000042 +:04AA11000000000041 +:04AA12000000000040 +:04AA1300000000003F +:04AA1400000000003E +:04AA1500000000003D +:04AA1600000000003C +:04AA1700000000003B +:04AA1800000000003A +:04AA19000000000039 +:04AA1A000000000038 +:04AA1B000000000037 +:04AA1C000000000036 +:04AA1D000000000035 +:04AA1E000000000034 +:04AA1F000000000033 +:04AA20000000000032 +:04AA21000000000031 +:04AA22000000000030 +:04AA2300000000002F +:04AA2400000000002E +:04AA2500000000002D +:04AA2600000000002C +:04AA2700000000002B +:04AA2800000000002A +:04AA29000000000029 +:04AA2A000000000028 +:04AA2B000000000027 +:04AA2C000000000026 +:04AA2D000000000025 +:04AA2E000000000024 +:04AA2F000000000023 +:04AA30000000000022 +:04AA31000000000021 +:04AA32000000000020 +:04AA3300000000001F +:04AA3400000000001E +:04AA3500000000001D +:04AA3600000000001C +:04AA3700000000001B +:04AA3800000000001A +:04AA39000000000019 +:04AA3A000000000018 +:04AA3B000000000017 +:04AA3C000000000016 +:04AA3D000000000015 +:04AA3E000000000014 +:04AA3F000000000013 +:04AA40000000000012 +:04AA41000000000011 +:04AA42000000000010 +:04AA4300000000000F +:04AA4400000000000E +:04AA4500000000000D +:04AA4600000000000C +:04AA4700000000000B +:04AA4800000000000A +:04AA49000000000009 +:04AA4A000000000008 +:04AA4B000000000007 +:04AA4C000000000006 +:04AA4D000000000005 +:04AA4E000000000004 +:04AA4F000000000003 +:04AA50000000000002 +:04AA51000000000001 +:04AA52000000000000 +:04AA530000000000FF +:04AA540000000000FE +:04AA550000000000FD +:04AA560000000000FC +:04AA570000000000FB +:04AA580000000000FA +:04AA590000000000F9 +:04AA5A0000000000F8 +:04AA5B0000000000F7 +:04AA5C0000000000F6 +:04AA5D0000000000F5 +:04AA5E0000000000F4 +:04AA5F0000000000F3 +:04AA600000000000F2 +:04AA610000000000F1 +:04AA620000000000F0 +:04AA630000000000EF +:04AA640000000000EE +:04AA650000000000ED +:04AA660000000000EC +:04AA670000000000EB +:04AA680000000000EA +:04AA690000000000E9 +:04AA6A0000000000E8 +:04AA6B0000000000E7 +:04AA6C0000000000E6 +:04AA6D0000000000E5 +:04AA6E0000000000E4 +:04AA6F0000000000E3 +:04AA700000000000E2 +:04AA710000000000E1 +:04AA720000000000E0 +:04AA730000000000DF +:04AA740000000000DE +:04AA750000000000DD +:04AA760000000000DC +:04AA770000000000DB +:04AA780000000000DA +:04AA790000000000D9 +:04AA7A0000000000D8 +:04AA7B0000000000D7 +:04AA7C0000000000D6 +:04AA7D0000000000D5 +:04AA7E0000000000D4 +:04AA7F0000000000D3 +:04AA800000000000D2 +:04AA810000000000D1 +:04AA820000000000D0 +:04AA830000000000CF +:04AA840000000000CE +:04AA850000000000CD +:04AA860000000000CC +:04AA870000000000CB +:04AA880000000000CA +:04AA890000000000C9 +:04AA8A0000000000C8 +:04AA8B0000000000C7 +:04AA8C0000000000C6 +:04AA8D0000000000C5 +:04AA8E0000000000C4 +:04AA8F0000000000C3 +:04AA900000000000C2 +:04AA910000000000C1 +:04AA920000000000C0 +:04AA930000000000BF +:04AA940000000000BE +:04AA950000000000BD +:04AA960000000000BC +:04AA970000000000BB +:04AA980000000000BA +:04AA990000000000B9 +:04AA9A0000000000B8 +:04AA9B0000000000B7 +:04AA9C0000000000B6 +:04AA9D0000000000B5 +:04AA9E0000000000B4 +:04AA9F0000000000B3 +:04AAA00000000000B2 +:04AAA10000000000B1 +:04AAA20000000000B0 +:04AAA30000000000AF +:04AAA40000000000AE +:04AAA50000000000AD +:04AAA60000000000AC +:04AAA70000000000AB +:04AAA80000000000AA +:04AAA90000000000A9 +:04AAAA0000000000A8 +:04AAAB0000000000A7 +:04AAAC0000000000A6 +:04AAAD0000000000A5 +:04AAAE0000000000A4 +:04AAAF0000000000A3 +:04AAB00000000000A2 +:04AAB10000000000A1 +:04AAB20000000000A0 +:04AAB300000000009F +:04AAB400000000009E +:04AAB500000000009D +:04AAB600000000009C +:04AAB700000000009B +:04AAB800000000009A +:04AAB9000000000099 +:04AABA000000000098 +:04AABB000000000097 +:04AABC000000000096 +:04AABD000000000095 +:04AABE000000000094 +:04AABF000000000093 +:04AAC0000000000092 +:04AAC1000000000091 +:04AAC2000000000090 +:04AAC300000000008F +:04AAC400000000008E +:04AAC500000000008D +:04AAC600000000008C +:04AAC700000000008B +:04AAC800000000008A +:04AAC9000000000089 +:04AACA000000000088 +:04AACB000000000087 +:04AACC000000000086 +:04AACD000000000085 +:04AACE000000000084 +:04AACF000000000083 +:04AAD0000000000082 +:04AAD1000000000081 +:04AAD2000000000080 +:04AAD300000000007F +:04AAD400000000007E +:04AAD500000000007D +:04AAD600000000007C +:04AAD700000000007B +:04AAD800000000007A +:04AAD9000000000079 +:04AADA000000000078 +:04AADB000000000077 +:04AADC000000000076 +:04AADD000000000075 +:04AADE000000000074 +:04AADF000000000073 +:04AAE0000000000072 +:04AAE1000000000071 +:04AAE2000000000070 +:04AAE300000000006F +:04AAE400000000006E +:04AAE500000000006D +:04AAE600000000006C +:04AAE700000000006B +:04AAE800000000006A +:04AAE9000000000069 +:04AAEA000000000068 +:04AAEB000000000067 +:04AAEC000000000066 +:04AAED000000000065 +:04AAEE000000000064 +:04AAEF000000000063 +:04AAF0000000000062 +:04AAF1000000000061 +:04AAF2000000000060 +:04AAF300000000005F +:04AAF400000000005E +:04AAF500000000005D +:04AAF600000000005C +:04AAF700000000005B +:04AAF800000000005A +:04AAF9000000000059 +:04AAFA000000000058 +:04AAFB000000000057 +:04AAFC000000000056 +:04AAFD000000000055 +:04AAFE000000000054 +:04AAFF000000000053 +:04AB00000000000051 +:04AB01000000000050 +:04AB0200000000004F +:04AB0300000000004E +:04AB0400000000004D +:04AB0500000000004C +:04AB0600000000004B +:04AB0700000000004A +:04AB08000000000049 +:04AB09000000000048 +:04AB0A000000000047 +:04AB0B000000000046 +:04AB0C000000000045 +:04AB0D000000000044 +:04AB0E000000000043 +:04AB0F000000000042 +:04AB10000000000041 +:04AB11000000000040 +:04AB1200000000003F +:04AB1300000000003E +:04AB1400000000003D +:04AB1500000000003C +:04AB1600000000003B +:04AB1700000000003A +:04AB18000000000039 +:04AB19000000000038 +:04AB1A000000000037 +:04AB1B000000000036 +:04AB1C000000000035 +:04AB1D000000000034 +:04AB1E000000000033 +:04AB1F000000000032 +:04AB20000000000031 +:04AB21000000000030 +:04AB2200000000002F +:04AB2300000000002E +:04AB2400000000002D +:04AB2500000000002C +:04AB2600000000002B +:04AB2700000000002A +:04AB28000000000029 +:04AB29000000000028 +:04AB2A000000000027 +:04AB2B000000000026 +:04AB2C000000000025 +:04AB2D000000000024 +:04AB2E000000000023 +:04AB2F000000000022 +:04AB30000000000021 +:04AB31000000000020 +:04AB3200000000001F +:04AB3300000000001E +:04AB3400000000001D +:04AB3500000000001C +:04AB3600000000001B +:04AB3700000000001A +:04AB38000000000019 +:04AB39000000000018 +:04AB3A000000000017 +:04AB3B000000000016 +:04AB3C000000000015 +:04AB3D000000000014 +:04AB3E000000000013 +:04AB3F000000000012 +:04AB40000000000011 +:04AB41000000000010 +:04AB4200000000000F +:04AB4300000000000E +:04AB4400000000000D +:04AB4500000000000C +:04AB4600000000000B +:04AB4700000000000A +:04AB48000000000009 +:04AB49000000000008 +:04AB4A000000000007 +:04AB4B000000000006 +:04AB4C000000000005 +:04AB4D000000000004 +:04AB4E000000000003 +:04AB4F000000000002 +:04AB50000000000001 +:04AB51000000000000 +:04AB520000000000FF +:04AB530000000000FE +:04AB540000000000FD +:04AB550000000000FC +:04AB560000000000FB +:04AB570000000000FA +:04AB580000000000F9 +:04AB590000000000F8 +:04AB5A0000000000F7 +:04AB5B0000000000F6 +:04AB5C0000000000F5 +:04AB5D0000000000F4 +:04AB5E0000000000F3 +:04AB5F0000000000F2 +:04AB600000000000F1 +:04AB610000000000F0 +:04AB620000000000EF +:04AB630000000000EE +:04AB640000000000ED +:04AB650000000000EC +:04AB660000000000EB +:04AB670000000000EA +:04AB680000000000E9 +:04AB690000000000E8 +:04AB6A0000000000E7 +:04AB6B0000000000E6 +:04AB6C0000000000E5 +:04AB6D0000000000E4 +:04AB6E0000000000E3 +:04AB6F0000000000E2 +:04AB700000000000E1 +:04AB710000000000E0 +:04AB720000000000DF +:04AB730000000000DE +:04AB740000000000DD +:04AB750000000000DC +:04AB760000000000DB +:04AB770000000000DA +:04AB780000000000D9 +:04AB790000000000D8 +:04AB7A0000000000D7 +:04AB7B0000000000D6 +:04AB7C0000000000D5 +:04AB7D0000000000D4 +:04AB7E0000000000D3 +:04AB7F0000000000D2 +:04AB800000000000D1 +:04AB810000000000D0 +:04AB820000000000CF +:04AB830000000000CE +:04AB840000000000CD +:04AB850000000000CC +:04AB860000000000CB +:04AB870000000000CA +:04AB880000000000C9 +:04AB890000000000C8 +:04AB8A0000000000C7 +:04AB8B0000000000C6 +:04AB8C0000000000C5 +:04AB8D0000000000C4 +:04AB8E0000000000C3 +:04AB8F0000000000C2 +:04AB900000000000C1 +:04AB910000000000C0 +:04AB920000000000BF +:04AB930000000000BE +:04AB940000000000BD +:04AB950000000000BC +:04AB960000000000BB +:04AB970000000000BA +:04AB980000000000B9 +:04AB990000000000B8 +:04AB9A0000000000B7 +:04AB9B0000000000B6 +:04AB9C0000000000B5 +:04AB9D0000000000B4 +:04AB9E0000000000B3 +:04AB9F0000000000B2 +:04ABA00000000000B1 +:04ABA10000000000B0 +:04ABA20000000000AF +:04ABA30000000000AE +:04ABA40000000000AD +:04ABA50000000000AC +:04ABA60000000000AB +:04ABA70000000000AA +:04ABA80000000000A9 +:04ABA90000000000A8 +:04ABAA0000000000A7 +:04ABAB0000000000A6 +:04ABAC0000000000A5 +:04ABAD0000000000A4 +:04ABAE0000000000A3 +:04ABAF0000000000A2 +:04ABB00000000000A1 +:04ABB10000000000A0 +:04ABB200000000009F +:04ABB300000000009E +:04ABB400000000009D +:04ABB500000000009C +:04ABB600000000009B +:04ABB700000000009A +:04ABB8000000000099 +:04ABB9000000000098 +:04ABBA000000000097 +:04ABBB000000000096 +:04ABBC000000000095 +:04ABBD000000000094 +:04ABBE000000000093 +:04ABBF000000000092 +:04ABC0000000000091 +:04ABC1000000000090 +:04ABC200000000008F +:04ABC300000000008E +:04ABC400000000008D +:04ABC500000000008C +:04ABC600000000008B +:04ABC700000000008A +:04ABC8000000000089 +:04ABC9000000000088 +:04ABCA000000000087 +:04ABCB000000000086 +:04ABCC000000000085 +:04ABCD000000000084 +:04ABCE000000000083 +:04ABCF000000000082 +:04ABD0000000000081 +:04ABD1000000000080 +:04ABD200000000007F +:04ABD300000000007E +:04ABD400000000007D +:04ABD500000000007C +:04ABD600000000007B +:04ABD700000000007A +:04ABD8000000000079 +:04ABD9000000000078 +:04ABDA000000000077 +:04ABDB000000000076 +:04ABDC000000000075 +:04ABDD000000000074 +:04ABDE000000000073 +:04ABDF000000000072 +:04ABE0000000000071 +:04ABE1000000000070 +:04ABE200000000006F +:04ABE300000000006E +:04ABE400000000006D +:04ABE500000000006C +:04ABE600000000006B +:04ABE700000000006A +:04ABE8000000000069 +:04ABE9000000000068 +:04ABEA000000000067 +:04ABEB000000000066 +:04ABEC000000000065 +:04ABED000000000064 +:04ABEE000000000063 +:04ABEF000000000062 +:04ABF0000000000061 +:04ABF1000000000060 +:04ABF200000000005F +:04ABF300000000005E +:04ABF400000000005D +:04ABF500000000005C +:04ABF600000000005B +:04ABF700000000005A +:04ABF8000000000059 +:04ABF9000000000058 +:04ABFA000000000057 +:04ABFB000000000056 +:04ABFC000000000055 +:04ABFD000000000054 +:04ABFE000000000053 +:04ABFF000000000052 +:04AC00000000000050 +:04AC0100000000004F +:04AC0200000000004E +:04AC0300000000004D +:04AC0400000000004C +:04AC0500000000004B +:04AC0600000000004A +:04AC07000000000049 +:04AC08000000000048 +:04AC09000000000047 +:04AC0A000000000046 +:04AC0B000000000045 +:04AC0C000000000044 +:04AC0D000000000043 +:04AC0E000000000042 +:04AC0F000000000041 +:04AC10000000000040 +:04AC1100000000003F +:04AC1200000000003E +:04AC1300000000003D +:04AC1400000000003C +:04AC1500000000003B +:04AC1600000000003A +:04AC17000000000039 +:04AC18000000000038 +:04AC19000000000037 +:04AC1A000000000036 +:04AC1B000000000035 +:04AC1C000000000034 +:04AC1D000000000033 +:04AC1E000000000032 +:04AC1F000000000031 +:04AC20000000000030 +:04AC2100000000002F +:04AC2200000000002E +:04AC2300000000002D +:04AC2400000000002C +:04AC2500000000002B +:04AC2600000000002A +:04AC27000000000029 +:04AC28000000000028 +:04AC29000000000027 +:04AC2A000000000026 +:04AC2B000000000025 +:04AC2C000000000024 +:04AC2D000000000023 +:04AC2E000000000022 +:04AC2F000000000021 +:04AC30000000000020 +:04AC3100000000001F +:04AC3200000000001E +:04AC3300000000001D +:04AC3400000000001C +:04AC3500000000001B +:04AC3600000000001A +:04AC37000000000019 +:04AC38000000000018 +:04AC39000000000017 +:04AC3A000000000016 +:04AC3B000000000015 +:04AC3C000000000014 +:04AC3D000000000013 +:04AC3E000000000012 +:04AC3F000000000011 +:04AC40000000000010 +:04AC4100000000000F +:04AC4200000000000E +:04AC4300000000000D +:04AC4400000000000C +:04AC4500000000000B +:04AC4600000000000A +:04AC47000000000009 +:04AC48000000000008 +:04AC49000000000007 +:04AC4A000000000006 +:04AC4B000000000005 +:04AC4C000000000004 +:04AC4D000000000003 +:04AC4E000000000002 +:04AC4F000000000001 +:04AC50000000000000 +:04AC510000000000FF +:04AC520000000000FE +:04AC530000000000FD +:04AC540000000000FC +:04AC550000000000FB +:04AC560000000000FA +:04AC570000000000F9 +:04AC580000000000F8 +:04AC590000000000F7 +:04AC5A0000000000F6 +:04AC5B0000000000F5 +:04AC5C0000000000F4 +:04AC5D0000000000F3 +:04AC5E0000000000F2 +:04AC5F0000000000F1 +:04AC600000000000F0 +:04AC610000000000EF +:04AC620000000000EE +:04AC630000000000ED +:04AC640000000000EC +:04AC650000000000EB +:04AC660000000000EA +:04AC670000000000E9 +:04AC680000000000E8 +:04AC690000000000E7 +:04AC6A0000000000E6 +:04AC6B0000000000E5 +:04AC6C0000000000E4 +:04AC6D0000000000E3 +:04AC6E0000000000E2 +:04AC6F0000000000E1 +:04AC700000000000E0 +:04AC710000000000DF +:04AC720000000000DE +:04AC730000000000DD +:04AC740000000000DC +:04AC750000000000DB +:04AC760000000000DA +:04AC770000000000D9 +:04AC780000000000D8 +:04AC790000000000D7 +:04AC7A0000000000D6 +:04AC7B0000000000D5 +:04AC7C0000000000D4 +:04AC7D0000000000D3 +:04AC7E0000000000D2 +:04AC7F0000000000D1 +:04AC800000000000D0 +:04AC810000000000CF +:04AC820000000000CE +:04AC830000000000CD +:04AC840000000000CC +:04AC850000000000CB +:04AC860000000000CA +:04AC870000000000C9 +:04AC880000000000C8 +:04AC890000000000C7 +:04AC8A0000000000C6 +:04AC8B0000000000C5 +:04AC8C0000000000C4 +:04AC8D0000000000C3 +:04AC8E0000000000C2 +:04AC8F0000000000C1 +:04AC900000000000C0 +:04AC910000000000BF +:04AC920000000000BE +:04AC930000000000BD +:04AC940000000000BC +:04AC950000000000BB +:04AC960000000000BA +:04AC970000000000B9 +:04AC980000000000B8 +:04AC990000000000B7 +:04AC9A0000000000B6 +:04AC9B0000000000B5 +:04AC9C0000000000B4 +:04AC9D0000000000B3 +:04AC9E0000000000B2 +:04AC9F0000000000B1 +:04ACA00000000000B0 +:04ACA10000000000AF +:04ACA20000000000AE +:04ACA30000000000AD +:04ACA40000000000AC +:04ACA50000000000AB +:04ACA60000000000AA +:04ACA70000000000A9 +:04ACA80000000000A8 +:04ACA90000000000A7 +:04ACAA0000000000A6 +:04ACAB0000000000A5 +:04ACAC0000000000A4 +:04ACAD0000000000A3 +:04ACAE0000000000A2 +:04ACAF0000000000A1 +:04ACB00000000000A0 +:04ACB100000000009F +:04ACB200000000009E +:04ACB300000000009D +:04ACB400000000009C +:04ACB500000000009B +:04ACB600000000009A +:04ACB7000000000099 +:04ACB8000000000098 +:04ACB9000000000097 +:04ACBA000000000096 +:04ACBB000000000095 +:04ACBC000000000094 +:04ACBD000000000093 +:04ACBE000000000092 +:04ACBF000000000091 +:04ACC0000000000090 +:04ACC100000000008F +:04ACC200000000008E +:04ACC300000000008D +:04ACC400000000008C +:04ACC500000000008B +:04ACC600000000008A +:04ACC7000000000089 +:04ACC8000000000088 +:04ACC9000000000087 +:04ACCA000000000086 +:04ACCB000000000085 +:04ACCC000000000084 +:04ACCD000000000083 +:04ACCE000000000082 +:04ACCF000000000081 +:04ACD0000000000080 +:04ACD100000000007F +:04ACD200000000007E +:04ACD300000000007D +:04ACD400000000007C +:04ACD500000000007B +:04ACD600000000007A +:04ACD7000000000079 +:04ACD8000000000078 +:04ACD9000000000077 +:04ACDA000000000076 +:04ACDB000000000075 +:04ACDC000000000074 +:04ACDD000000000073 +:04ACDE000000000072 +:04ACDF000000000071 +:04ACE0000000000070 +:04ACE100000000006F +:04ACE200000000006E +:04ACE300000000006D +:04ACE400000000006C +:04ACE500000000006B +:04ACE600000000006A +:04ACE7000000000069 +:04ACE8000000000068 +:04ACE9000000000067 +:04ACEA000000000066 +:04ACEB000000000065 +:04ACEC000000000064 +:04ACED000000000063 +:04ACEE000000000062 +:04ACEF000000000061 +:04ACF0000000000060 +:04ACF100000000005F +:04ACF200000000005E +:04ACF300000000005D +:04ACF400000000005C +:04ACF500000000005B +:04ACF600000000005A +:04ACF7000000000059 +:04ACF8000000000058 +:04ACF9000000000057 +:04ACFA000000000056 +:04ACFB000000000055 +:04ACFC000000000054 +:04ACFD000000000053 +:04ACFE000000000052 +:04ACFF000000000051 +:04AD0000000000004F +:04AD0100000000004E +:04AD0200000000004D +:04AD0300000000004C +:04AD0400000000004B +:04AD0500000000004A +:04AD06000000000049 +:04AD07000000000048 +:04AD08000000000047 +:04AD09000000000046 +:04AD0A000000000045 +:04AD0B000000000044 +:04AD0C000000000043 +:04AD0D000000000042 +:04AD0E000000000041 +:04AD0F000000000040 +:04AD1000000000003F +:04AD1100000000003E +:04AD1200000000003D +:04AD1300000000003C +:04AD1400000000003B +:04AD1500000000003A +:04AD16000000000039 +:04AD17000000000038 +:04AD18000000000037 +:04AD19000000000036 +:04AD1A000000000035 +:04AD1B000000000034 +:04AD1C000000000033 +:04AD1D000000000032 +:04AD1E000000000031 +:04AD1F000000000030 +:04AD2000000000002F +:04AD2100000000002E +:04AD2200000000002D +:04AD2300000000002C +:04AD2400000000002B +:04AD2500000000002A +:04AD26000000000029 +:04AD27000000000028 +:04AD28000000000027 +:04AD29000000000026 +:04AD2A000000000025 +:04AD2B000000000024 +:04AD2C000000000023 +:04AD2D000000000022 +:04AD2E000000000021 +:04AD2F000000000020 +:04AD3000000000001F +:04AD3100000000001E +:04AD3200000000001D +:04AD3300000000001C +:04AD3400000000001B +:04AD3500000000001A +:04AD36000000000019 +:04AD37000000000018 +:04AD38000000000017 +:04AD39000000000016 +:04AD3A000000000015 +:04AD3B000000000014 +:04AD3C000000000013 +:04AD3D000000000012 +:04AD3E000000000011 +:04AD3F000000000010 +:04AD4000000000000F +:04AD4100000000000E +:04AD4200000000000D +:04AD4300000000000C +:04AD4400000000000B +:04AD4500000000000A +:04AD46000000000009 +:04AD47000000000008 +:04AD48000000000007 +:04AD49000000000006 +:04AD4A000000000005 +:04AD4B000000000004 +:04AD4C000000000003 +:04AD4D000000000002 +:04AD4E000000000001 +:04AD4F000000000000 +:04AD500000000000FF +:04AD510000000000FE +:04AD520000000000FD +:04AD530000000000FC +:04AD540000000000FB +:04AD550000000000FA +:04AD560000000000F9 +:04AD570000000000F8 +:04AD580000000000F7 +:04AD590000000000F6 +:04AD5A0000000000F5 +:04AD5B0000000000F4 +:04AD5C0000000000F3 +:04AD5D0000000000F2 +:04AD5E0000000000F1 +:04AD5F0000000000F0 +:04AD600000000000EF +:04AD610000000000EE +:04AD620000000000ED +:04AD630000000000EC +:04AD640000000000EB +:04AD650000000000EA +:04AD660000000000E9 +:04AD670000000000E8 +:04AD680000000000E7 +:04AD690000000000E6 +:04AD6A0000000000E5 +:04AD6B0000000000E4 +:04AD6C0000000000E3 +:04AD6D0000000000E2 +:04AD6E0000000000E1 +:04AD6F0000000000E0 +:04AD700000000000DF +:04AD710000000000DE +:04AD720000000000DD +:04AD730000000000DC +:04AD740000000000DB +:04AD750000000000DA +:04AD760000000000D9 +:04AD770000000000D8 +:04AD780000000000D7 +:04AD790000000000D6 +:04AD7A0000000000D5 +:04AD7B0000000000D4 +:04AD7C0000000000D3 +:04AD7D0000000000D2 +:04AD7E0000000000D1 +:04AD7F0000000000D0 +:04AD800000000000CF +:04AD810000000000CE +:04AD820000000000CD +:04AD830000000000CC +:04AD840000000000CB +:04AD850000000000CA +:04AD860000000000C9 +:04AD870000000000C8 +:04AD880000000000C7 +:04AD890000000000C6 +:04AD8A0000000000C5 +:04AD8B0000000000C4 +:04AD8C0000000000C3 +:04AD8D0000000000C2 +:04AD8E0000000000C1 +:04AD8F0000000000C0 +:04AD900000000000BF +:04AD910000000000BE +:04AD920000000000BD +:04AD930000000000BC +:04AD940000000000BB +:04AD950000000000BA +:04AD960000000000B9 +:04AD970000000000B8 +:04AD980000000000B7 +:04AD990000000000B6 +:04AD9A0000000000B5 +:04AD9B0000000000B4 +:04AD9C0000000000B3 +:04AD9D0000000000B2 +:04AD9E0000000000B1 +:04AD9F0000000000B0 +:04ADA00000000000AF +:04ADA10000000000AE +:04ADA20000000000AD +:04ADA30000000000AC +:04ADA40000000000AB +:04ADA50000000000AA +:04ADA60000000000A9 +:04ADA70000000000A8 +:04ADA80000000000A7 +:04ADA90000000000A6 +:04ADAA0000000000A5 +:04ADAB0000000000A4 +:04ADAC0000000000A3 +:04ADAD0000000000A2 +:04ADAE0000000000A1 +:04ADAF0000000000A0 +:04ADB000000000009F +:04ADB100000000009E +:04ADB200000000009D +:04ADB300000000009C +:04ADB400000000009B +:04ADB500000000009A +:04ADB6000000000099 +:04ADB7000000000098 +:04ADB8000000000097 +:04ADB9000000000096 +:04ADBA000000000095 +:04ADBB000000000094 +:04ADBC000000000093 +:04ADBD000000000092 +:04ADBE000000000091 +:04ADBF000000000090 +:04ADC000000000008F +:04ADC100000000008E +:04ADC200000000008D +:04ADC300000000008C +:04ADC400000000008B +:04ADC500000000008A +:04ADC6000000000089 +:04ADC7000000000088 +:04ADC8000000000087 +:04ADC9000000000086 +:04ADCA000000000085 +:04ADCB000000000084 +:04ADCC000000000083 +:04ADCD000000000082 +:04ADCE000000000081 +:04ADCF000000000080 +:04ADD000000000007F +:04ADD100000000007E +:04ADD200000000007D +:04ADD300000000007C +:04ADD400000000007B +:04ADD500000000007A +:04ADD6000000000079 +:04ADD7000000000078 +:04ADD8000000000077 +:04ADD9000000000076 +:04ADDA000000000075 +:04ADDB000000000074 +:04ADDC000000000073 +:04ADDD000000000072 +:04ADDE000000000071 +:04ADDF000000000070 +:04ADE000000000006F +:04ADE100000000006E +:04ADE200000000006D +:04ADE300000000006C +:04ADE400000000006B +:04ADE500000000006A +:04ADE6000000000069 +:04ADE7000000000068 +:04ADE8000000000067 +:04ADE9000000000066 +:04ADEA000000000065 +:04ADEB000000000064 +:04ADEC000000000063 +:04ADED000000000062 +:04ADEE000000000061 +:04ADEF000000000060 +:04ADF000000000005F +:04ADF100000000005E +:04ADF200000000005D +:04ADF300000000005C +:04ADF400000000005B +:04ADF500000000005A +:04ADF6000000000059 +:04ADF7000000000058 +:04ADF8000000000057 +:04ADF9000000000056 +:04ADFA000000000055 +:04ADFB000000000054 +:04ADFC000000000053 +:04ADFD000000000052 +:04ADFE000000000051 +:04ADFF000000000050 +:04AE0000000000004E +:04AE0100000000004D +:04AE0200000000004C +:04AE0300000000004B +:04AE0400000000004A +:04AE05000000000049 +:04AE06000000000048 +:04AE07000000000047 +:04AE08000000000046 +:04AE09000000000045 +:04AE0A000000000044 +:04AE0B000000000043 +:04AE0C000000000042 +:04AE0D000000000041 +:04AE0E000000000040 +:04AE0F00000000003F +:04AE1000000000003E +:04AE1100000000003D +:04AE1200000000003C +:04AE1300000000003B +:04AE1400000000003A +:04AE15000000000039 +:04AE16000000000038 +:04AE17000000000037 +:04AE18000000000036 +:04AE19000000000035 +:04AE1A000000000034 +:04AE1B000000000033 +:04AE1C000000000032 +:04AE1D000000000031 +:04AE1E000000000030 +:04AE1F00000000002F +:04AE2000000000002E +:04AE2100000000002D +:04AE2200000000002C +:04AE2300000000002B +:04AE2400000000002A +:04AE25000000000029 +:04AE26000000000028 +:04AE27000000000027 +:04AE28000000000026 +:04AE29000000000025 +:04AE2A000000000024 +:04AE2B000000000023 +:04AE2C000000000022 +:04AE2D000000000021 +:04AE2E000000000020 +:04AE2F00000000001F +:04AE3000000000001E +:04AE3100000000001D +:04AE3200000000001C +:04AE3300000000001B +:04AE3400000000001A +:04AE35000000000019 +:04AE36000000000018 +:04AE37000000000017 +:04AE38000000000016 +:04AE39000000000015 +:04AE3A000000000014 +:04AE3B000000000013 +:04AE3C000000000012 +:04AE3D000000000011 +:04AE3E000000000010 +:04AE3F00000000000F +:04AE4000000000000E +:04AE4100000000000D +:04AE4200000000000C +:04AE4300000000000B +:04AE4400000000000A +:04AE45000000000009 +:04AE46000000000008 +:04AE47000000000007 +:04AE48000000000006 +:04AE49000000000005 +:04AE4A000000000004 +:04AE4B000000000003 +:04AE4C000000000002 +:04AE4D000000000001 +:04AE4E000000000000 +:04AE4F0000000000FF +:04AE500000000000FE +:04AE510000000000FD +:04AE520000000000FC +:04AE530000000000FB +:04AE540000000000FA +:04AE550000000000F9 +:04AE560000000000F8 +:04AE570000000000F7 +:04AE580000000000F6 +:04AE590000000000F5 +:04AE5A0000000000F4 +:04AE5B0000000000F3 +:04AE5C0000000000F2 +:04AE5D0000000000F1 +:04AE5E0000000000F0 +:04AE5F0000000000EF +:04AE600000000000EE +:04AE610000000000ED +:04AE620000000000EC +:04AE630000000000EB +:04AE640000000000EA +:04AE650000000000E9 +:04AE660000000000E8 +:04AE670000000000E7 +:04AE680000000000E6 +:04AE690000000000E5 +:04AE6A0000000000E4 +:04AE6B0000000000E3 +:04AE6C0000000000E2 +:04AE6D0000000000E1 +:04AE6E0000000000E0 +:04AE6F0000000000DF +:04AE700000000000DE +:04AE710000000000DD +:04AE720000000000DC +:04AE730000000000DB +:04AE740000000000DA +:04AE750000000000D9 +:04AE760000000000D8 +:04AE770000000000D7 +:04AE780000000000D6 +:04AE790000000000D5 +:04AE7A0000000000D4 +:04AE7B0000000000D3 +:04AE7C0000000000D2 +:04AE7D0000000000D1 +:04AE7E0000000000D0 +:04AE7F0000000000CF +:04AE800000000000CE +:04AE810000000000CD +:04AE820000000000CC +:04AE830000000000CB +:04AE840000000000CA +:04AE850000000000C9 +:04AE860000000000C8 +:04AE870000000000C7 +:04AE880000000000C6 +:04AE890000000000C5 +:04AE8A0000000000C4 +:04AE8B0000000000C3 +:04AE8C0000000000C2 +:04AE8D0000000000C1 +:04AE8E0000000000C0 +:04AE8F0000000000BF +:04AE900000000000BE +:04AE910000000000BD +:04AE920000000000BC +:04AE930000000000BB +:04AE940000000000BA +:04AE950000000000B9 +:04AE960000000000B8 +:04AE970000000000B7 +:04AE980000000000B6 +:04AE990000000000B5 +:04AE9A0000000000B4 +:04AE9B0000000000B3 +:04AE9C0000000000B2 +:04AE9D0000000000B1 +:04AE9E0000000000B0 +:04AE9F0000000000AF +:04AEA00000000000AE +:04AEA10000000000AD +:04AEA20000000000AC +:04AEA30000000000AB +:04AEA40000000000AA +:04AEA50000000000A9 +:04AEA60000000000A8 +:04AEA70000000000A7 +:04AEA80000000000A6 +:04AEA90000000000A5 +:04AEAA0000000000A4 +:04AEAB0000000000A3 +:04AEAC0000000000A2 +:04AEAD0000000000A1 +:04AEAE0000000000A0 +:04AEAF00000000009F +:04AEB000000000009E +:04AEB100000000009D +:04AEB200000000009C +:04AEB300000000009B +:04AEB400000000009A +:04AEB5000000000099 +:04AEB6000000000098 +:04AEB7000000000097 +:04AEB8000000000096 +:04AEB9000000000095 +:04AEBA000000000094 +:04AEBB000000000093 +:04AEBC000000000092 +:04AEBD000000000091 +:04AEBE000000000090 +:04AEBF00000000008F +:04AEC000000000008E +:04AEC100000000008D +:04AEC200000000008C +:04AEC300000000008B +:04AEC400000000008A +:04AEC5000000000089 +:04AEC6000000000088 +:04AEC7000000000087 +:04AEC8000000000086 +:04AEC9000000000085 +:04AECA000000000084 +:04AECB000000000083 +:04AECC000000000082 +:04AECD000000000081 +:04AECE000000000080 +:04AECF00000000007F +:04AED000000000007E +:04AED100000000007D +:04AED200000000007C +:04AED300000000007B +:04AED400000000007A +:04AED5000000000079 +:04AED6000000000078 +:04AED7000000000077 +:04AED8000000000076 +:04AED9000000000075 +:04AEDA000000000074 +:04AEDB000000000073 +:04AEDC000000000072 +:04AEDD000000000071 +:04AEDE000000000070 +:04AEDF00000000006F +:04AEE000000000006E +:04AEE100000000006D +:04AEE200000000006C +:04AEE300000000006B +:04AEE400000000006A +:04AEE5000000000069 +:04AEE6000000000068 +:04AEE7000000000067 +:04AEE8000000000066 +:04AEE9000000000065 +:04AEEA000000000064 +:04AEEB000000000063 +:04AEEC000000000062 +:04AEED000000000061 +:04AEEE000000000060 +:04AEEF00000000005F +:04AEF000000000005E +:04AEF100000000005D +:04AEF200000000005C +:04AEF300000000005B +:04AEF400000000005A +:04AEF5000000000059 +:04AEF6000000000058 +:04AEF7000000000057 +:04AEF8000000000056 +:04AEF9000000000055 +:04AEFA000000000054 +:04AEFB000000000053 +:04AEFC000000000052 +:04AEFD000000000051 +:04AEFE000000000050 +:04AEFF00000000004F +:04AF0000000000004D +:04AF0100000000004C +:04AF0200000000004B +:04AF0300000000004A +:04AF04000000000049 +:04AF05000000000048 +:04AF06000000000047 +:04AF07000000000046 +:04AF08000000000045 +:04AF09000000000044 +:04AF0A000000000043 +:04AF0B000000000042 +:04AF0C000000000041 +:04AF0D000000000040 +:04AF0E00000000003F +:04AF0F00000000003E +:04AF1000000000003D +:04AF1100000000003C +:04AF1200000000003B +:04AF1300000000003A +:04AF14000000000039 +:04AF15000000000038 +:04AF16000000000037 +:04AF17000000000036 +:04AF18000000000035 +:04AF19000000000034 +:04AF1A000000000033 +:04AF1B000000000032 +:04AF1C000000000031 +:04AF1D000000000030 +:04AF1E00000000002F +:04AF1F00000000002E +:04AF2000000000002D +:04AF2100000000002C +:04AF2200000000002B +:04AF2300000000002A +:04AF24000000000029 +:04AF25000000000028 +:04AF26000000000027 +:04AF27000000000026 +:04AF28000000000025 +:04AF29000000000024 +:04AF2A000000000023 +:04AF2B000000000022 +:04AF2C000000000021 +:04AF2D000000000020 +:04AF2E00000000001F +:04AF2F00000000001E +:04AF3000000000001D +:04AF3100000000001C +:04AF3200000000001B +:04AF3300000000001A +:04AF34000000000019 +:04AF35000000000018 +:04AF36000000000017 +:04AF37000000000016 +:04AF38000000000015 +:04AF39000000000014 +:04AF3A000000000013 +:04AF3B000000000012 +:04AF3C000000000011 +:04AF3D000000000010 +:04AF3E00000000000F +:04AF3F00000000000E +:04AF4000000000000D +:04AF4100000000000C +:04AF4200000000000B +:04AF4300000000000A +:04AF44000000000009 +:04AF45000000000008 +:04AF46000000000007 +:04AF47000000000006 +:04AF48000000000005 +:04AF49000000000004 +:04AF4A000000000003 +:04AF4B000000000002 +:04AF4C000000000001 +:04AF4D000000000000 +:04AF4E0000000000FF +:04AF4F0000000000FE +:04AF500000000000FD +:04AF510000000000FC +:04AF520000000000FB +:04AF530000000000FA +:04AF540000000000F9 +:04AF550000000000F8 +:04AF560000000000F7 +:04AF570000000000F6 +:04AF580000000000F5 +:04AF590000000000F4 +:04AF5A0000000000F3 +:04AF5B0000000000F2 +:04AF5C0000000000F1 +:04AF5D0000000000F0 +:04AF5E0000000000EF +:04AF5F0000000000EE +:04AF600000000000ED +:04AF610000000000EC +:04AF620000000000EB +:04AF630000000000EA +:04AF640000000000E9 +:04AF650000000000E8 +:04AF660000000000E7 +:04AF670000000000E6 +:04AF680000000000E5 +:04AF690000000000E4 +:04AF6A0000000000E3 +:04AF6B0000000000E2 +:04AF6C0000000000E1 +:04AF6D0000000000E0 +:04AF6E0000000000DF +:04AF6F0000000000DE +:04AF700000000000DD +:04AF710000000000DC +:04AF720000000000DB +:04AF730000000000DA +:04AF740000000000D9 +:04AF750000000000D8 +:04AF760000000000D7 +:04AF770000000000D6 +:04AF780000000000D5 +:04AF790000000000D4 +:04AF7A0000000000D3 +:04AF7B0000000000D2 +:04AF7C0000000000D1 +:04AF7D0000000000D0 +:04AF7E0000000000CF +:04AF7F0000000000CE +:04AF800000000000CD +:04AF810000000000CC +:04AF820000000000CB +:04AF830000000000CA +:04AF840000000000C9 +:04AF850000000000C8 +:04AF860000000000C7 +:04AF870000000000C6 +:04AF880000000000C5 +:04AF890000000000C4 +:04AF8A0000000000C3 +:04AF8B0000000000C2 +:04AF8C0000000000C1 +:04AF8D0000000000C0 +:04AF8E0000000000BF +:04AF8F0000000000BE +:04AF900000000000BD +:04AF910000000000BC +:04AF920000000000BB +:04AF930000000000BA +:04AF940000000000B9 +:04AF950000000000B8 +:04AF960000000000B7 +:04AF970000000000B6 +:04AF980000000000B5 +:04AF990000000000B4 +:04AF9A0000000000B3 +:04AF9B0000000000B2 +:04AF9C0000000000B1 +:04AF9D0000000000B0 +:04AF9E0000000000AF +:04AF9F0000000000AE +:04AFA00000000000AD +:04AFA10000000000AC +:04AFA20000000000AB +:04AFA30000000000AA +:04AFA40000000000A9 +:04AFA50000000000A8 +:04AFA60000000000A7 +:04AFA70000000000A6 +:04AFA80000000000A5 +:04AFA90000000000A4 +:04AFAA0000000000A3 +:04AFAB0000000000A2 +:04AFAC0000000000A1 +:04AFAD0000000000A0 +:04AFAE00000000009F +:04AFAF00000000009E +:04AFB000000000009D +:04AFB100000000009C +:04AFB200000000009B +:04AFB300000000009A +:04AFB4000000000099 +:04AFB5000000000098 +:04AFB6000000000097 +:04AFB7000000000096 +:04AFB8000000000095 +:04AFB9000000000094 +:04AFBA000000000093 +:04AFBB000000000092 +:04AFBC000000000091 +:04AFBD000000000090 +:04AFBE00000000008F +:04AFBF00000000008E +:04AFC000000000008D +:04AFC100000000008C +:04AFC200000000008B +:04AFC300000000008A +:04AFC4000000000089 +:04AFC5000000000088 +:04AFC6000000000087 +:04AFC7000000000086 +:04AFC8000000000085 +:04AFC9000000000084 +:04AFCA000000000083 +:04AFCB000000000082 +:04AFCC000000000081 +:04AFCD000000000080 +:04AFCE00000000007F +:04AFCF00000000007E +:04AFD000000000007D +:04AFD100000000007C +:04AFD200000000007B +:04AFD300000000007A +:04AFD4000000000079 +:04AFD5000000000078 +:04AFD6000000000077 +:04AFD7000000000076 +:04AFD8000000000075 +:04AFD9000000000074 +:04AFDA000000000073 +:04AFDB000000000072 +:04AFDC000000000071 +:04AFDD000000000070 +:04AFDE00000000006F +:04AFDF00000000006E +:04AFE000000000006D +:04AFE100000000006C +:04AFE200000000006B +:04AFE300000000006A +:04AFE4000000000069 +:04AFE5000000000068 +:04AFE6000000000067 +:04AFE7000000000066 +:04AFE8000000000065 +:04AFE9000000000064 +:04AFEA000000000063 +:04AFEB000000000062 +:04AFEC000000000061 +:04AFED000000000060 +:04AFEE00000000005F +:04AFEF00000000005E +:04AFF000000000005D +:04AFF100000000005C +:04AFF200000000005B +:04AFF300000000005A +:04AFF4000000000059 +:04AFF5000000000058 +:04AFF6000000000057 +:04AFF7000000000056 +:04AFF8000000000055 +:04AFF9000000000054 +:04AFFA000000000053 +:04AFFB000000000052 +:04AFFC000000000051 +:04AFFD000000000050 +:04AFFE00000000004F +:04AFFF00000000004E +:04B00000000000004C +:04B00100000000004B +:04B00200000000004A +:04B003000000000049 +:04B004000000000048 +:04B005000000000047 +:04B006000000000046 +:04B007000000000045 +:04B008000000000044 +:04B009000000000043 +:04B00A000000000042 +:04B00B000000000041 +:04B00C000000000040 +:04B00D00000000003F +:04B00E00000000003E +:04B00F00000000003D +:04B01000000000003C +:04B01100000000003B +:04B01200000000003A +:04B013000000000039 +:04B014000000000038 +:04B015000000000037 +:04B016000000000036 +:04B017000000000035 +:04B018000000000034 +:04B019000000000033 +:04B01A000000000032 +:04B01B000000000031 +:04B01C000000000030 +:04B01D00000000002F +:04B01E00000000002E +:04B01F00000000002D +:04B02000000000002C +:04B02100000000002B +:04B02200000000002A +:04B023000000000029 +:04B024000000000028 +:04B025000000000027 +:04B026000000000026 +:04B027000000000025 +:04B028000000000024 +:04B029000000000023 +:04B02A000000000022 +:04B02B000000000021 +:04B02C000000000020 +:04B02D00000000001F +:04B02E00000000001E +:04B02F00000000001D +:04B03000000000001C +:04B03100000000001B +:04B03200000000001A +:04B033000000000019 +:04B034000000000018 +:04B035000000000017 +:04B036000000000016 +:04B037000000000015 +:04B038000000000014 +:04B039000000000013 +:04B03A000000000012 +:04B03B000000000011 +:04B03C000000000010 +:04B03D00000000000F +:04B03E00000000000E +:04B03F00000000000D +:04B04000000000000C +:04B04100000000000B +:04B04200000000000A +:04B043000000000009 +:04B044000000000008 +:04B045000000000007 +:04B046000000000006 +:04B047000000000005 +:04B048000000000004 +:04B049000000000003 +:04B04A000000000002 +:04B04B000000000001 +:04B04C000000000000 +:04B04D0000000000FF +:04B04E0000000000FE +:04B04F0000000000FD +:04B0500000000000FC +:04B0510000000000FB +:04B0520000000000FA +:04B0530000000000F9 +:04B0540000000000F8 +:04B0550000000000F7 +:04B0560000000000F6 +:04B0570000000000F5 +:04B0580000000000F4 +:04B0590000000000F3 +:04B05A0000000000F2 +:04B05B0000000000F1 +:04B05C0000000000F0 +:04B05D0000000000EF +:04B05E0000000000EE +:04B05F0000000000ED +:04B0600000000000EC +:04B0610000000000EB +:04B0620000000000EA +:04B0630000000000E9 +:04B0640000000000E8 +:04B0650000000000E7 +:04B0660000000000E6 +:04B0670000000000E5 +:04B0680000000000E4 +:04B0690000000000E3 +:04B06A0000000000E2 +:04B06B0000000000E1 +:04B06C0000000000E0 +:04B06D0000000000DF +:04B06E0000000000DE +:04B06F0000000000DD +:04B0700000000000DC +:04B0710000000000DB +:04B0720000000000DA +:04B0730000000000D9 +:04B0740000000000D8 +:04B0750000000000D7 +:04B0760000000000D6 +:04B0770000000000D5 +:04B0780000000000D4 +:04B0790000000000D3 +:04B07A0000000000D2 +:04B07B0000000000D1 +:04B07C0000000000D0 +:04B07D0000000000CF +:04B07E0000000000CE +:04B07F0000000000CD +:04B0800000000000CC +:04B0810000000000CB +:04B0820000000000CA +:04B0830000000000C9 +:04B0840000000000C8 +:04B0850000000000C7 +:04B0860000000000C6 +:04B0870000000000C5 +:04B0880000000000C4 +:04B0890000000000C3 +:04B08A0000000000C2 +:04B08B0000000000C1 +:04B08C0000000000C0 +:04B08D0000000000BF +:04B08E0000000000BE +:04B08F0000000000BD +:04B0900000000000BC +:04B0910000000000BB +:04B0920000000000BA +:04B0930000000000B9 +:04B0940000000000B8 +:04B0950000000000B7 +:04B0960000000000B6 +:04B0970000000000B5 +:04B0980000000000B4 +:04B0990000000000B3 +:04B09A0000000000B2 +:04B09B0000000000B1 +:04B09C0000000000B0 +:04B09D0000000000AF +:04B09E0000000000AE +:04B09F0000000000AD +:04B0A00000000000AC +:04B0A10000000000AB +:04B0A20000000000AA +:04B0A30000000000A9 +:04B0A40000000000A8 +:04B0A50000000000A7 +:04B0A60000000000A6 +:04B0A70000000000A5 +:04B0A80000000000A4 +:04B0A90000000000A3 +:04B0AA0000000000A2 +:04B0AB0000000000A1 +:04B0AC0000000000A0 +:04B0AD00000000009F +:04B0AE00000000009E +:04B0AF00000000009D +:04B0B000000000009C +:04B0B100000000009B +:04B0B200000000009A +:04B0B3000000000099 +:04B0B4000000000098 +:04B0B5000000000097 +:04B0B6000000000096 +:04B0B7000000000095 +:04B0B8000000000094 +:04B0B9000000000093 +:04B0BA000000000092 +:04B0BB000000000091 +:04B0BC000000000090 +:04B0BD00000000008F +:04B0BE00000000008E +:04B0BF00000000008D +:04B0C000000000008C +:04B0C100000000008B +:04B0C200000000008A +:04B0C3000000000089 +:04B0C4000000000088 +:04B0C5000000000087 +:04B0C6000000000086 +:04B0C7000000000085 +:04B0C8000000000084 +:04B0C9000000000083 +:04B0CA000000000082 +:04B0CB000000000081 +:04B0CC000000000080 +:04B0CD00000000007F +:04B0CE00000000007E +:04B0CF00000000007D +:04B0D000000000007C +:04B0D100000000007B +:04B0D200000000007A +:04B0D3000000000079 +:04B0D4000000000078 +:04B0D5000000000077 +:04B0D6000000000076 +:04B0D7000000000075 +:04B0D8000000000074 +:04B0D9000000000073 +:04B0DA000000000072 +:04B0DB000000000071 +:04B0DC000000000070 +:04B0DD00000000006F +:04B0DE00000000006E +:04B0DF00000000006D +:04B0E000000000006C +:04B0E100000000006B +:04B0E200000000006A +:04B0E3000000000069 +:04B0E4000000000068 +:04B0E5000000000067 +:04B0E6000000000066 +:04B0E7000000000065 +:04B0E8000000000064 +:04B0E9000000000063 +:04B0EA000000000062 +:04B0EB000000000061 +:04B0EC000000000060 +:04B0ED00000000005F +:04B0EE00000000005E +:04B0EF00000000005D +:04B0F000000000005C +:04B0F100000000005B +:04B0F200000000005A +:04B0F3000000000059 +:04B0F4000000000058 +:04B0F5000000000057 +:04B0F6000000000056 +:04B0F7000000000055 +:04B0F8000000000054 +:04B0F9000000000053 +:04B0FA000000000052 +:04B0FB000000000051 +:04B0FC000000000050 +:04B0FD00000000004F +:04B0FE00000000004E +:04B0FF00000000004D +:04B10000000000004B +:04B10100000000004A +:04B102000000000049 +:04B103000000000048 +:04B104000000000047 +:04B105000000000046 +:04B106000000000045 +:04B107000000000044 +:04B108000000000043 +:04B109000000000042 +:04B10A000000000041 +:04B10B000000000040 +:04B10C00000000003F +:04B10D00000000003E +:04B10E00000000003D +:04B10F00000000003C +:04B11000000000003B +:04B11100000000003A +:04B112000000000039 +:04B113000000000038 +:04B114000000000037 +:04B115000000000036 +:04B116000000000035 +:04B117000000000034 +:04B118000000000033 +:04B119000000000032 +:04B11A000000000031 +:04B11B000000000030 +:04B11C00000000002F +:04B11D00000000002E +:04B11E00000000002D +:04B11F00000000002C +:04B12000000000002B +:04B12100000000002A +:04B122000000000029 +:04B123000000000028 +:04B124000000000027 +:04B125000000000026 +:04B126000000000025 +:04B127000000000024 +:04B128000000000023 +:04B129000000000022 +:04B12A000000000021 +:04B12B000000000020 +:04B12C00000000001F +:04B12D00000000001E +:04B12E00000000001D +:04B12F00000000001C +:04B13000000000001B +:04B13100000000001A +:04B132000000000019 +:04B133000000000018 +:04B134000000000017 +:04B135000000000016 +:04B136000000000015 +:04B137000000000014 +:04B138000000000013 +:04B139000000000012 +:04B13A000000000011 +:04B13B000000000010 +:04B13C00000000000F +:04B13D00000000000E +:04B13E00000000000D +:04B13F00000000000C +:04B14000000000000B +:04B14100000000000A +:04B142000000000009 +:04B143000000000008 +:04B144000000000007 +:04B145000000000006 +:04B146000000000005 +:04B147000000000004 +:04B148000000000003 +:04B149000000000002 +:04B14A000000000001 +:04B14B000000000000 +:04B14C0000000000FF +:04B14D0000000000FE +:04B14E0000000000FD +:04B14F0000000000FC +:04B1500000000000FB +:04B1510000000000FA +:04B1520000000000F9 +:04B1530000000000F8 +:04B1540000000000F7 +:04B1550000000000F6 +:04B1560000000000F5 +:04B1570000000000F4 +:04B1580000000000F3 +:04B1590000000000F2 +:04B15A0000000000F1 +:04B15B0000000000F0 +:04B15C0000000000EF +:04B15D0000000000EE +:04B15E0000000000ED +:04B15F0000000000EC +:04B1600000000000EB +:04B1610000000000EA +:04B1620000000000E9 +:04B1630000000000E8 +:04B1640000000000E7 +:04B1650000000000E6 +:04B1660000000000E5 +:04B1670000000000E4 +:04B1680000000000E3 +:04B1690000000000E2 +:04B16A0000000000E1 +:04B16B0000000000E0 +:04B16C0000000000DF +:04B16D0000000000DE +:04B16E0000000000DD +:04B16F0000000000DC +:04B1700000000000DB +:04B1710000000000DA +:04B1720000000000D9 +:04B1730000000000D8 +:04B1740000000000D7 +:04B1750000000000D6 +:04B1760000000000D5 +:04B1770000000000D4 +:04B1780000000000D3 +:04B1790000000000D2 +:04B17A0000000000D1 +:04B17B0000000000D0 +:04B17C0000000000CF +:04B17D0000000000CE +:04B17E0000000000CD +:04B17F0000000000CC +:04B1800000000000CB +:04B1810000000000CA +:04B1820000000000C9 +:04B1830000000000C8 +:04B1840000000000C7 +:04B1850000000000C6 +:04B1860000000000C5 +:04B1870000000000C4 +:04B1880000000000C3 +:04B1890000000000C2 +:04B18A0000000000C1 +:04B18B0000000000C0 +:04B18C0000000000BF +:04B18D0000000000BE +:04B18E0000000000BD +:04B18F0000000000BC +:04B1900000000000BB +:04B1910000000000BA +:04B1920000000000B9 +:04B1930000000000B8 +:04B1940000000000B7 +:04B1950000000000B6 +:04B1960000000000B5 +:04B1970000000000B4 +:04B1980000000000B3 +:04B1990000000000B2 +:04B19A0000000000B1 +:04B19B0000000000B0 +:04B19C0000000000AF +:04B19D0000000000AE +:04B19E0000000000AD +:04B19F0000000000AC +:04B1A00000000000AB +:04B1A10000000000AA +:04B1A20000000000A9 +:04B1A30000000000A8 +:04B1A40000000000A7 +:04B1A50000000000A6 +:04B1A60000000000A5 +:04B1A70000000000A4 +:04B1A80000000000A3 +:04B1A90000000000A2 +:04B1AA0000000000A1 +:04B1AB0000000000A0 +:04B1AC00000000009F +:04B1AD00000000009E +:04B1AE00000000009D +:04B1AF00000000009C +:04B1B000000000009B +:04B1B100000000009A +:04B1B2000000000099 +:04B1B3000000000098 +:04B1B4000000000097 +:04B1B5000000000096 +:04B1B6000000000095 +:04B1B7000000000094 +:04B1B8000000000093 +:04B1B9000000000092 +:04B1BA000000000091 +:04B1BB000000000090 +:04B1BC00000000008F +:04B1BD00000000008E +:04B1BE00000000008D +:04B1BF00000000008C +:04B1C000000000008B +:04B1C100000000008A +:04B1C2000000000089 +:04B1C3000000000088 +:04B1C4000000000087 +:04B1C5000000000086 +:04B1C6000000000085 +:04B1C7000000000084 +:04B1C8000000000083 +:04B1C9000000000082 +:04B1CA000000000081 +:04B1CB000000000080 +:04B1CC00000000007F +:04B1CD00000000007E +:04B1CE00000000007D +:04B1CF00000000007C +:04B1D000000000007B +:04B1D100000000007A +:04B1D2000000000079 +:04B1D3000000000078 +:04B1D4000000000077 +:04B1D5000000000076 +:04B1D6000000000075 +:04B1D7000000000074 +:04B1D8000000000073 +:04B1D9000000000072 +:04B1DA000000000071 +:04B1DB000000000070 +:04B1DC00000000006F +:04B1DD00000000006E +:04B1DE00000000006D +:04B1DF00000000006C +:04B1E000000000006B +:04B1E100000000006A +:04B1E2000000000069 +:04B1E3000000000068 +:04B1E4000000000067 +:04B1E5000000000066 +:04B1E6000000000065 +:04B1E7000000000064 +:04B1E8000000000063 +:04B1E9000000000062 +:04B1EA000000000061 +:04B1EB000000000060 +:04B1EC00000000005F +:04B1ED00000000005E +:04B1EE00000000005D +:04B1EF00000000005C +:04B1F000000000005B +:04B1F100000000005A +:04B1F2000000000059 +:04B1F3000000000058 +:04B1F4000000000057 +:04B1F5000000000056 +:04B1F6000000000055 +:04B1F7000000000054 +:04B1F8000000000053 +:04B1F9000000000052 +:04B1FA000000000051 +:04B1FB000000000050 +:04B1FC00000000004F +:04B1FD00000000004E +:04B1FE00000000004D +:04B1FF00000000004C +:04B20000000000004A +:04B201000000000049 +:04B202000000000048 +:04B203000000000047 +:04B204000000000046 +:04B205000000000045 +:04B206000000000044 +:04B207000000000043 +:04B208000000000042 +:04B209000000000041 +:04B20A000000000040 +:04B20B00000000003F +:04B20C00000000003E +:04B20D00000000003D +:04B20E00000000003C +:04B20F00000000003B +:04B21000000000003A +:04B211000000000039 +:04B212000000000038 +:04B213000000000037 +:04B214000000000036 +:04B215000000000035 +:04B216000000000034 +:04B217000000000033 +:04B218000000000032 +:04B219000000000031 +:04B21A000000000030 +:04B21B00000000002F +:04B21C00000000002E +:04B21D00000000002D +:04B21E00000000002C +:04B21F00000000002B +:04B22000000000002A +:04B221000000000029 +:04B222000000000028 +:04B223000000000027 +:04B224000000000026 +:04B225000000000025 +:04B226000000000024 +:04B227000000000023 +:04B228000000000022 +:04B229000000000021 +:04B22A000000000020 +:04B22B00000000001F +:04B22C00000000001E +:04B22D00000000001D +:04B22E00000000001C +:04B22F00000000001B +:04B23000000000001A +:04B231000000000019 +:04B232000000000018 +:04B233000000000017 +:04B234000000000016 +:04B235000000000015 +:04B236000000000014 +:04B237000000000013 +:04B238000000000012 +:04B239000000000011 +:04B23A000000000010 +:04B23B00000000000F +:04B23C00000000000E +:04B23D00000000000D +:04B23E00000000000C +:04B23F00000000000B +:04B24000000000000A +:04B241000000000009 +:04B242000000000008 +:04B243000000000007 +:04B244000000000006 +:04B245000000000005 +:04B246000000000004 +:04B247000000000003 +:04B248000000000002 +:04B249000000000001 +:04B24A000000000000 +:04B24B0000000000FF +:04B24C0000000000FE +:04B24D0000000000FD +:04B24E0000000000FC +:04B24F0000000000FB +:04B2500000000000FA +:04B2510000000000F9 +:04B2520000000000F8 +:04B2530000000000F7 +:04B2540000000000F6 +:04B2550000000000F5 +:04B2560000000000F4 +:04B2570000000000F3 +:04B2580000000000F2 +:04B2590000000000F1 +:04B25A0000000000F0 +:04B25B0000000000EF +:04B25C0000000000EE +:04B25D0000000000ED +:04B25E0000000000EC +:04B25F0000000000EB +:04B2600000000000EA +:04B2610000000000E9 +:04B2620000000000E8 +:04B2630000000000E7 +:04B2640000000000E6 +:04B2650000000000E5 +:04B2660000000000E4 +:04B2670000000000E3 +:04B2680000000000E2 +:04B2690000000000E1 +:04B26A0000000000E0 +:04B26B0000000000DF +:04B26C0000000000DE +:04B26D0000000000DD +:04B26E0000000000DC +:04B26F0000000000DB +:04B2700000000000DA +:04B2710000000000D9 +:04B2720000000000D8 +:04B2730000000000D7 +:04B2740000000000D6 +:04B2750000000000D5 +:04B2760000000000D4 +:04B2770000000000D3 +:04B2780000000000D2 +:04B2790000000000D1 +:04B27A0000000000D0 +:04B27B0000000000CF +:04B27C0000000000CE +:04B27D0000000000CD +:04B27E0000000000CC +:04B27F0000000000CB +:04B2800000000000CA +:04B2810000000000C9 +:04B2820000000000C8 +:04B2830000000000C7 +:04B2840000000000C6 +:04B2850000000000C5 +:04B2860000000000C4 +:04B2870000000000C3 +:04B2880000000000C2 +:04B2890000000000C1 +:04B28A0000000000C0 +:04B28B0000000000BF +:04B28C0000000000BE +:04B28D0000000000BD +:04B28E0000000000BC +:04B28F0000000000BB +:04B2900000000000BA +:04B2910000000000B9 +:04B2920000000000B8 +:04B2930000000000B7 +:04B2940000000000B6 +:04B2950000000000B5 +:04B2960000000000B4 +:04B2970000000000B3 +:04B2980000000000B2 +:04B2990000000000B1 +:04B29A0000000000B0 +:04B29B0000000000AF +:04B29C0000000000AE +:04B29D0000000000AD +:04B29E0000000000AC +:04B29F0000000000AB +:04B2A00000000000AA +:04B2A10000000000A9 +:04B2A20000000000A8 +:04B2A30000000000A7 +:04B2A40000000000A6 +:04B2A50000000000A5 +:04B2A60000000000A4 +:04B2A70000000000A3 +:04B2A80000000000A2 +:04B2A90000000000A1 +:04B2AA0000000000A0 +:04B2AB00000000009F +:04B2AC00000000009E +:04B2AD00000000009D +:04B2AE00000000009C +:04B2AF00000000009B +:04B2B000000000009A +:04B2B1000000000099 +:04B2B2000000000098 +:04B2B3000000000097 +:04B2B4000000000096 +:04B2B5000000000095 +:04B2B6000000000094 +:04B2B7000000000093 +:04B2B8000000000092 +:04B2B9000000000091 +:04B2BA000000000090 +:04B2BB00000000008F +:04B2BC00000000008E +:04B2BD00000000008D +:04B2BE00000000008C +:04B2BF00000000008B +:04B2C000000000008A +:04B2C1000000000089 +:04B2C2000000000088 +:04B2C3000000000087 +:04B2C4000000000086 +:04B2C5000000000085 +:04B2C6000000000084 +:04B2C7000000000083 +:04B2C8000000000082 +:04B2C9000000000081 +:04B2CA000000000080 +:04B2CB00000000007F +:04B2CC00000000007E +:04B2CD00000000007D +:04B2CE00000000007C +:04B2CF00000000007B +:04B2D000000000007A +:04B2D1000000000079 +:04B2D2000000000078 +:04B2D3000000000077 +:04B2D4000000000076 +:04B2D5000000000075 +:04B2D6000000000074 +:04B2D7000000000073 +:04B2D8000000000072 +:04B2D9000000000071 +:04B2DA000000000070 +:04B2DB00000000006F +:04B2DC00000000006E +:04B2DD00000000006D +:04B2DE00000000006C +:04B2DF00000000006B +:04B2E000000000006A +:04B2E1000000000069 +:04B2E2000000000068 +:04B2E3000000000067 +:04B2E4000000000066 +:04B2E5000000000065 +:04B2E6000000000064 +:04B2E7000000000063 +:04B2E8000000000062 +:04B2E9000000000061 +:04B2EA000000000060 +:04B2EB00000000005F +:04B2EC00000000005E +:04B2ED00000000005D +:04B2EE00000000005C +:04B2EF00000000005B +:04B2F000000000005A +:04B2F1000000000059 +:04B2F2000000000058 +:04B2F3000000000057 +:04B2F4000000000056 +:04B2F5000000000055 +:04B2F6000000000054 +:04B2F7000000000053 +:04B2F8000000000052 +:04B2F9000000000051 +:04B2FA000000000050 +:04B2FB00000000004F +:04B2FC00000000004E +:04B2FD00000000004D +:04B2FE00000000004C +:04B2FF00000000004B +:04B300000000000049 +:04B301000000000048 +:04B302000000000047 +:04B303000000000046 +:04B304000000000045 +:04B305000000000044 +:04B306000000000043 +:04B307000000000042 +:04B308000000000041 +:04B309000000000040 +:04B30A00000000003F +:04B30B00000000003E +:04B30C00000000003D +:04B30D00000000003C +:04B30E00000000003B +:04B30F00000000003A +:04B310000000000039 +:04B311000000000038 +:04B312000000000037 +:04B313000000000036 +:04B314000000000035 +:04B315000000000034 +:04B316000000000033 +:04B317000000000032 +:04B318000000000031 +:04B319000000000030 +:04B31A00000000002F +:04B31B00000000002E +:04B31C00000000002D +:04B31D00000000002C +:04B31E00000000002B +:04B31F00000000002A +:04B320000000000029 +:04B321000000000028 +:04B322000000000027 +:04B323000000000026 +:04B324000000000025 +:04B325000000000024 +:04B326000000000023 +:04B327000000000022 +:04B328000000000021 +:04B329000000000020 +:04B32A00000000001F +:04B32B00000000001E +:04B32C00000000001D +:04B32D00000000001C +:04B32E00000000001B +:04B32F00000000001A +:04B330000000000019 +:04B331000000000018 +:04B332000000000017 +:04B333000000000016 +:04B334000000000015 +:04B335000000000014 +:04B336000000000013 +:04B337000000000012 +:04B338000000000011 +:04B339000000000010 +:04B33A00000000000F +:04B33B00000000000E +:04B33C00000000000D +:04B33D00000000000C +:04B33E00000000000B +:04B33F00000000000A +:04B340000000000009 +:04B341000000000008 +:04B342000000000007 +:04B343000000000006 +:04B344000000000005 +:04B345000000000004 +:04B346000000000003 +:04B347000000000002 +:04B348000000000001 +:04B349000000000000 +:04B34A0000000000FF +:04B34B0000000000FE +:04B34C0000000000FD +:04B34D0000000000FC +:04B34E0000000000FB +:04B34F0000000000FA +:04B3500000000000F9 +:04B3510000000000F8 +:04B3520000000000F7 +:04B3530000000000F6 +:04B3540000000000F5 +:04B3550000000000F4 +:04B3560000000000F3 +:04B3570000000000F2 +:04B3580000000000F1 +:04B3590000000000F0 +:04B35A0000000000EF +:04B35B0000000000EE +:04B35C0000000000ED +:04B35D0000000000EC +:04B35E0000000000EB +:04B35F0000000000EA +:04B3600000000000E9 +:04B3610000000000E8 +:04B3620000000000E7 +:04B3630000000000E6 +:04B3640000000000E5 +:04B3650000000000E4 +:04B3660000000000E3 +:04B3670000000000E2 +:04B3680000000000E1 +:04B3690000000000E0 +:04B36A0000000000DF +:04B36B0000000000DE +:04B36C0000000000DD +:04B36D0000000000DC +:04B36E0000000000DB +:04B36F0000000000DA +:04B3700000000000D9 +:04B3710000000000D8 +:04B3720000000000D7 +:04B3730000000000D6 +:04B3740000000000D5 +:04B3750000000000D4 +:04B3760000000000D3 +:04B3770000000000D2 +:04B3780000000000D1 +:04B3790000000000D0 +:04B37A0000000000CF +:04B37B0000000000CE +:04B37C0000000000CD +:04B37D0000000000CC +:04B37E0000000000CB +:04B37F0000000000CA +:04B3800000000000C9 +:04B3810000000000C8 +:04B3820000000000C7 +:04B3830000000000C6 +:04B3840000000000C5 +:04B3850000000000C4 +:04B3860000000000C3 +:04B3870000000000C2 +:04B3880000000000C1 +:04B3890000000000C0 +:04B38A0000000000BF +:04B38B0000000000BE +:04B38C0000000000BD +:04B38D0000000000BC +:04B38E0000000000BB +:04B38F0000000000BA +:04B3900000000000B9 +:04B3910000000000B8 +:04B3920000000000B7 +:04B3930000000000B6 +:04B3940000000000B5 +:04B3950000000000B4 +:04B3960000000000B3 +:04B3970000000000B2 +:04B3980000000000B1 +:04B3990000000000B0 +:04B39A0000000000AF +:04B39B0000000000AE +:04B39C0000000000AD +:04B39D0000000000AC +:04B39E0000000000AB +:04B39F0000000000AA +:04B3A00000000000A9 +:04B3A10000000000A8 +:04B3A20000000000A7 +:04B3A30000000000A6 +:04B3A40000000000A5 +:04B3A50000000000A4 +:04B3A60000000000A3 +:04B3A70000000000A2 +:04B3A80000000000A1 +:04B3A90000000000A0 +:04B3AA00000000009F +:04B3AB00000000009E +:04B3AC00000000009D +:04B3AD00000000009C +:04B3AE00000000009B +:04B3AF00000000009A +:04B3B0000000000099 +:04B3B1000000000098 +:04B3B2000000000097 +:04B3B3000000000096 +:04B3B4000000000095 +:04B3B5000000000094 +:04B3B6000000000093 +:04B3B7000000000092 +:04B3B8000000000091 +:04B3B9000000000090 +:04B3BA00000000008F +:04B3BB00000000008E +:04B3BC00000000008D +:04B3BD00000000008C +:04B3BE00000000008B +:04B3BF00000000008A +:04B3C0000000000089 +:04B3C1000000000088 +:04B3C2000000000087 +:04B3C3000000000086 +:04B3C4000000000085 +:04B3C5000000000084 +:04B3C6000000000083 +:04B3C7000000000082 +:04B3C8000000000081 +:04B3C9000000000080 +:04B3CA00000000007F +:04B3CB00000000007E +:04B3CC00000000007D +:04B3CD00000000007C +:04B3CE00000000007B +:04B3CF00000000007A +:04B3D0000000000079 +:04B3D1000000000078 +:04B3D2000000000077 +:04B3D3000000000076 +:04B3D4000000000075 +:04B3D5000000000074 +:04B3D6000000000073 +:04B3D7000000000072 +:04B3D8000000000071 +:04B3D9000000000070 +:04B3DA00000000006F +:04B3DB00000000006E +:04B3DC00000000006D +:04B3DD00000000006C +:04B3DE00000000006B +:04B3DF00000000006A +:04B3E0000000000069 +:04B3E1000000000068 +:04B3E2000000000067 +:04B3E3000000000066 +:04B3E4000000000065 +:04B3E5000000000064 +:04B3E6000000000063 +:04B3E7000000000062 +:04B3E8000000000061 +:04B3E9000000000060 +:04B3EA00000000005F +:04B3EB00000000005E +:04B3EC00000000005D +:04B3ED00000000005C +:04B3EE00000000005B +:04B3EF00000000005A +:04B3F0000000000059 +:04B3F1000000000058 +:04B3F2000000000057 +:04B3F3000000000056 +:04B3F4000000000055 +:04B3F5000000000054 +:04B3F6000000000053 +:04B3F7000000000052 +:04B3F8000000000051 +:04B3F9000000000050 +:04B3FA00000000004F +:04B3FB00000000004E +:04B3FC00000000004D +:04B3FD00000000004C +:04B3FE00000000004B +:04B3FF00000000004A +:04B400000000000048 +:04B401000000000047 +:04B402000000000046 +:04B403000000000045 +:04B404000000000044 +:04B405000000000043 +:04B406000000000042 +:04B407000000000041 +:04B408000000000040 +:04B40900000000003F +:04B40A00000000003E +:04B40B00000000003D +:04B40C00000000003C +:04B40D00000000003B +:04B40E00000000003A +:04B40F000000000039 +:04B410000000000038 +:04B411000000000037 +:04B412000000000036 +:04B413000000000035 +:04B414000000000034 +:04B415000000000033 +:04B416000000000032 +:04B417000000000031 +:04B418000000000030 +:04B41900000000002F +:04B41A00000000002E +:04B41B00000000002D +:04B41C00000000002C +:04B41D00000000002B +:04B41E00000000002A +:04B41F000000000029 +:04B420000000000028 +:04B421000000000027 +:04B422000000000026 +:04B423000000000025 +:04B424000000000024 +:04B425000000000023 +:04B426000000000022 +:04B427000000000021 +:04B428000000000020 +:04B42900000000001F +:04B42A00000000001E +:04B42B00000000001D +:04B42C00000000001C +:04B42D00000000001B +:04B42E00000000001A +:04B42F000000000019 +:04B430000000000018 +:04B431000000000017 +:04B432000000000016 +:04B433000000000015 +:04B434000000000014 +:04B435000000000013 +:04B436000000000012 +:04B437000000000011 +:04B438000000000010 +:04B43900000000000F +:04B43A00000000000E +:04B43B00000000000D +:04B43C00000000000C +:04B43D00000000000B +:04B43E00000000000A +:04B43F000000000009 +:04B440000000000008 +:04B441000000000007 +:04B442000000000006 +:04B443000000000005 +:04B444000000000004 +:04B445000000000003 +:04B446000000000002 +:04B447000000000001 +:04B448000000000000 +:04B4490000000000FF +:04B44A0000000000FE +:04B44B0000000000FD +:04B44C0000000000FC +:04B44D0000000000FB +:04B44E0000000000FA +:04B44F0000000000F9 +:04B4500000000000F8 +:04B4510000000000F7 +:04B4520000000000F6 +:04B4530000000000F5 +:04B4540000000000F4 +:04B4550000000000F3 +:04B4560000000000F2 +:04B4570000000000F1 +:04B4580000000000F0 +:04B4590000000000EF +:04B45A0000000000EE +:04B45B0000000000ED +:04B45C0000000000EC +:04B45D0000000000EB +:04B45E0000000000EA +:04B45F0000000000E9 +:04B4600000000000E8 +:04B4610000000000E7 +:04B4620000000000E6 +:04B4630000000000E5 +:04B4640000000000E4 +:04B4650000000000E3 +:04B4660000000000E2 +:04B4670000000000E1 +:04B4680000000000E0 +:04B4690000000000DF +:04B46A0000000000DE +:04B46B0000000000DD +:04B46C0000000000DC +:04B46D0000000000DB +:04B46E0000000000DA +:04B46F0000000000D9 +:04B4700000000000D8 +:04B4710000000000D7 +:04B4720000000000D6 +:04B4730000000000D5 +:04B4740000000000D4 +:04B4750000000000D3 +:04B4760000000000D2 +:04B4770000000000D1 +:04B4780000000000D0 +:04B4790000000000CF +:04B47A0000000000CE +:04B47B0000000000CD +:04B47C0000000000CC +:04B47D0000000000CB +:04B47E0000000000CA +:04B47F0000000000C9 +:04B4800000000000C8 +:04B4810000000000C7 +:04B4820000000000C6 +:04B4830000000000C5 +:04B4840000000000C4 +:04B4850000000000C3 +:04B4860000000000C2 +:04B4870000000000C1 +:04B4880000000000C0 +:04B4890000000000BF +:04B48A0000000000BE +:04B48B0000000000BD +:04B48C0000000000BC +:04B48D0000000000BB +:04B48E0000000000BA +:04B48F0000000000B9 +:04B4900000000000B8 +:04B4910000000000B7 +:04B4920000000000B6 +:04B4930000000000B5 +:04B4940000000000B4 +:04B4950000000000B3 +:04B4960000000000B2 +:04B4970000000000B1 +:04B4980000000000B0 +:04B4990000000000AF +:04B49A0000000000AE +:04B49B0000000000AD +:04B49C0000000000AC +:04B49D0000000000AB +:04B49E0000000000AA +:04B49F0000000000A9 +:04B4A00000000000A8 +:04B4A10000000000A7 +:04B4A20000000000A6 +:04B4A30000000000A5 +:04B4A40000000000A4 +:04B4A50000000000A3 +:04B4A60000000000A2 +:04B4A70000000000A1 +:04B4A80000000000A0 +:04B4A900000000009F +:04B4AA00000000009E +:04B4AB00000000009D +:04B4AC00000000009C +:04B4AD00000000009B +:04B4AE00000000009A +:04B4AF000000000099 +:04B4B0000000000098 +:04B4B1000000000097 +:04B4B2000000000096 +:04B4B3000000000095 +:04B4B4000000000094 +:04B4B5000000000093 +:04B4B6000000000092 +:04B4B7000000000091 +:04B4B8000000000090 +:04B4B900000000008F +:04B4BA00000000008E +:04B4BB00000000008D +:04B4BC00000000008C +:04B4BD00000000008B +:04B4BE00000000008A +:04B4BF000000000089 +:04B4C0000000000088 +:04B4C1000000000087 +:04B4C2000000000086 +:04B4C3000000000085 +:04B4C4000000000084 +:04B4C5000000000083 +:04B4C6000000000082 +:04B4C7000000000081 +:04B4C8000000000080 +:04B4C900000000007F +:04B4CA00000000007E +:04B4CB00000000007D +:04B4CC00000000007C +:04B4CD00000000007B +:04B4CE00000000007A +:04B4CF000000000079 +:04B4D0000000000078 +:04B4D1000000000077 +:04B4D2000000000076 +:04B4D3000000000075 +:04B4D4000000000074 +:04B4D5000000000073 +:04B4D6000000000072 +:04B4D7000000000071 +:04B4D8000000000070 +:04B4D900000000006F +:04B4DA00000000006E +:04B4DB00000000006D +:04B4DC00000000006C +:04B4DD00000000006B +:04B4DE00000000006A +:04B4DF000000000069 +:04B4E0000000000068 +:04B4E1000000000067 +:04B4E2000000000066 +:04B4E3000000000065 +:04B4E4000000000064 +:04B4E5000000000063 +:04B4E6000000000062 +:04B4E7000000000061 +:04B4E8000000000060 +:04B4E900000000005F +:04B4EA00000000005E +:04B4EB00000000005D +:04B4EC00000000005C +:04B4ED00000000005B +:04B4EE00000000005A +:04B4EF000000000059 +:04B4F0000000000058 +:04B4F1000000000057 +:04B4F2000000000056 +:04B4F3000000000055 +:04B4F4000000000054 +:04B4F5000000000053 +:04B4F6000000000052 +:04B4F7000000000051 +:04B4F8000000000050 +:04B4F900000000004F +:04B4FA00000000004E +:04B4FB00000000004D +:04B4FC00000000004C +:04B4FD00000000004B +:04B4FE00000000004A +:04B4FF000000000049 +:04B500000000000047 +:04B501000000000046 +:04B502000000000045 +:04B503000000000044 +:04B504000000000043 +:04B505000000000042 +:04B506000000000041 +:04B507000000000040 +:04B50800000000003F +:04B50900000000003E +:04B50A00000000003D +:04B50B00000000003C +:04B50C00000000003B +:04B50D00000000003A +:04B50E000000000039 +:04B50F000000000038 +:04B510000000000037 +:04B511000000000036 +:04B512000000000035 +:04B513000000000034 +:04B514000000000033 +:04B515000000000032 +:04B516000000000031 +:04B517000000000030 +:04B51800000000002F +:04B51900000000002E +:04B51A00000000002D +:04B51B00000000002C +:04B51C00000000002B +:04B51D00000000002A +:04B51E000000000029 +:04B51F000000000028 +:04B520000000000027 +:04B521000000000026 +:04B522000000000025 +:04B523000000000024 +:04B524000000000023 +:04B525000000000022 +:04B526000000000021 +:04B527000000000020 +:04B52800000000001F +:04B52900000000001E +:04B52A00000000001D +:04B52B00000000001C +:04B52C00000000001B +:04B52D00000000001A +:04B52E000000000019 +:04B52F000000000018 +:04B530000000000017 +:04B531000000000016 +:04B532000000000015 +:04B533000000000014 +:04B534000000000013 +:04B535000000000012 +:04B536000000000011 +:04B537000000000010 +:04B53800000000000F +:04B53900000000000E +:04B53A00000000000D +:04B53B00000000000C +:04B53C00000000000B +:04B53D00000000000A +:04B53E000000000009 +:04B53F000000000008 +:04B540000000000007 +:04B541000000000006 +:04B542000000000005 +:04B543000000000004 +:04B544000000000003 +:04B545000000000002 +:04B546000000000001 +:04B547000000000000 +:04B5480000000000FF +:04B5490000000000FE +:04B54A0000000000FD +:04B54B0000000000FC +:04B54C0000000000FB +:04B54D0000000000FA +:04B54E0000000000F9 +:04B54F0000000000F8 +:04B5500000000000F7 +:04B5510000000000F6 +:04B5520000000000F5 +:04B5530000000000F4 +:04B5540000000000F3 +:04B5550000000000F2 +:04B5560000000000F1 +:04B5570000000000F0 +:04B5580000000000EF +:04B5590000000000EE +:04B55A0000000000ED +:04B55B0000000000EC +:04B55C0000000000EB +:04B55D0000000000EA +:04B55E0000000000E9 +:04B55F0000000000E8 +:04B5600000000000E7 +:04B5610000000000E6 +:04B5620000000000E5 +:04B5630000000000E4 +:04B5640000000000E3 +:04B5650000000000E2 +:04B5660000000000E1 +:04B5670000000000E0 +:04B5680000000000DF +:04B5690000000000DE +:04B56A0000000000DD +:04B56B0000000000DC +:04B56C0000000000DB +:04B56D0000000000DA +:04B56E0000000000D9 +:04B56F0000000000D8 +:04B5700000000000D7 +:04B5710000000000D6 +:04B5720000000000D5 +:04B5730000000000D4 +:04B5740000000000D3 +:04B5750000000000D2 +:04B5760000000000D1 +:04B5770000000000D0 +:04B5780000000000CF +:04B5790000000000CE +:04B57A0000000000CD +:04B57B0000000000CC +:04B57C0000000000CB +:04B57D0000000000CA +:04B57E0000000000C9 +:04B57F0000000000C8 +:04B5800000000000C7 +:04B5810000000000C6 +:04B5820000000000C5 +:04B5830000000000C4 +:04B5840000000000C3 +:04B5850000000000C2 +:04B5860000000000C1 +:04B5870000000000C0 +:04B5880000000000BF +:04B5890000000000BE +:04B58A0000000000BD +:04B58B0000000000BC +:04B58C0000000000BB +:04B58D0000000000BA +:04B58E0000000000B9 +:04B58F0000000000B8 +:04B5900000000000B7 +:04B5910000000000B6 +:04B5920000000000B5 +:04B5930000000000B4 +:04B5940000000000B3 +:04B5950000000000B2 +:04B5960000000000B1 +:04B5970000000000B0 +:04B5980000000000AF +:04B5990000000000AE +:04B59A0000000000AD +:04B59B0000000000AC +:04B59C0000000000AB +:04B59D0000000000AA +:04B59E0000000000A9 +:04B59F0000000000A8 +:04B5A00000000000A7 +:04B5A10000000000A6 +:04B5A20000000000A5 +:04B5A30000000000A4 +:04B5A40000000000A3 +:04B5A50000000000A2 +:04B5A60000000000A1 +:04B5A70000000000A0 +:04B5A800000000009F +:04B5A900000000009E +:04B5AA00000000009D +:04B5AB00000000009C +:04B5AC00000000009B +:04B5AD00000000009A +:04B5AE000000000099 +:04B5AF000000000098 +:04B5B0000000000097 +:04B5B1000000000096 +:04B5B2000000000095 +:04B5B3000000000094 +:04B5B4000000000093 +:04B5B5000000000092 +:04B5B6000000000091 +:04B5B7000000000090 +:04B5B800000000008F +:04B5B900000000008E +:04B5BA00000000008D +:04B5BB00000000008C +:04B5BC00000000008B +:04B5BD00000000008A +:04B5BE000000000089 +:04B5BF000000000088 +:04B5C0000000000087 +:04B5C1000000000086 +:04B5C2000000000085 +:04B5C3000000000084 +:04B5C4000000000083 +:04B5C5000000000082 +:04B5C6000000000081 +:04B5C7000000000080 +:04B5C800000000007F +:04B5C900000000007E +:04B5CA00000000007D +:04B5CB00000000007C +:04B5CC00000000007B +:04B5CD00000000007A +:04B5CE000000000079 +:04B5CF000000000078 +:04B5D0000000000077 +:04B5D1000000000076 +:04B5D2000000000075 +:04B5D3000000000074 +:04B5D4000000000073 +:04B5D5000000000072 +:04B5D6000000000071 +:04B5D7000000000070 +:04B5D800000000006F +:04B5D900000000006E +:04B5DA00000000006D +:04B5DB00000000006C +:04B5DC00000000006B +:04B5DD00000000006A +:04B5DE000000000069 +:04B5DF000000000068 +:04B5E0000000000067 +:04B5E1000000000066 +:04B5E2000000000065 +:04B5E3000000000064 +:04B5E4000000000063 +:04B5E5000000000062 +:04B5E6000000000061 +:04B5E7000000000060 +:04B5E800000000005F +:04B5E900000000005E +:04B5EA00000000005D +:04B5EB00000000005C +:04B5EC00000000005B +:04B5ED00000000005A +:04B5EE000000000059 +:04B5EF000000000058 +:04B5F0000000000057 +:04B5F1000000000056 +:04B5F2000000000055 +:04B5F3000000000054 +:04B5F4000000000053 +:04B5F5000000000052 +:04B5F6000000000051 +:04B5F7000000000050 +:04B5F800000000004F +:04B5F900000000004E +:04B5FA00000000004D +:04B5FB00000000004C +:04B5FC00000000004B +:04B5FD00000000004A +:04B5FE000000000049 +:04B5FF000000000048 +:04B600000000000046 +:04B601000000000045 +:04B602000000000044 +:04B603000000000043 +:04B604000000000042 +:04B605000000000041 +:04B606000000000040 +:04B60700000000003F +:04B60800000000003E +:04B60900000000003D +:04B60A00000000003C +:04B60B00000000003B +:04B60C00000000003A +:04B60D000000000039 +:04B60E000000000038 +:04B60F000000000037 +:04B610000000000036 +:04B611000000000035 +:04B612000000000034 +:04B613000000000033 +:04B614000000000032 +:04B615000000000031 +:04B616000000000030 +:04B61700000000002F +:04B61800000000002E +:04B61900000000002D +:04B61A00000000002C +:04B61B00000000002B +:04B61C00000000002A +:04B61D000000000029 +:04B61E000000000028 +:04B61F000000000027 +:04B620000000000026 +:04B621000000000025 +:04B622000000000024 +:04B623000000000023 +:04B624000000000022 +:04B625000000000021 +:04B626000000000020 +:04B62700000000001F +:04B62800000000001E +:04B62900000000001D +:04B62A00000000001C +:04B62B00000000001B +:04B62C00000000001A +:04B62D000000000019 +:04B62E000000000018 +:04B62F000000000017 +:04B630000000000016 +:04B631000000000015 +:04B632000000000014 +:04B633000000000013 +:04B634000000000012 +:04B635000000000011 +:04B636000000000010 +:04B63700000000000F +:04B63800000000000E +:04B63900000000000D +:04B63A00000000000C +:04B63B00000000000B +:04B63C00000000000A +:04B63D000000000009 +:04B63E000000000008 +:04B63F000000000007 +:04B640000000000006 +:04B641000000000005 +:04B642000000000004 +:04B643000000000003 +:04B644000000000002 +:04B645000000000001 +:04B646000000000000 +:04B6470000000000FF +:04B6480000000000FE +:04B6490000000000FD +:04B64A0000000000FC +:04B64B0000000000FB +:04B64C0000000000FA +:04B64D0000000000F9 +:04B64E0000000000F8 +:04B64F0000000000F7 +:04B6500000000000F6 +:04B6510000000000F5 +:04B6520000000000F4 +:04B6530000000000F3 +:04B6540000000000F2 +:04B6550000000000F1 +:04B6560000000000F0 +:04B6570000000000EF +:04B6580000000000EE +:04B6590000000000ED +:04B65A0000000000EC +:04B65B0000000000EB +:04B65C0000000000EA +:04B65D0000000000E9 +:04B65E0000000000E8 +:04B65F0000000000E7 +:04B6600000000000E6 +:04B6610000000000E5 +:04B6620000000000E4 +:04B6630000000000E3 +:04B6640000000000E2 +:04B6650000000000E1 +:04B6660000000000E0 +:04B6670000000000DF +:04B6680000000000DE +:04B6690000000000DD +:04B66A0000000000DC +:04B66B0000000000DB +:04B66C0000000000DA +:04B66D0000000000D9 +:04B66E0000000000D8 +:04B66F0000000000D7 +:04B6700000000000D6 +:04B6710000000000D5 +:04B6720000000000D4 +:04B6730000000000D3 +:04B6740000000000D2 +:04B6750000000000D1 +:04B6760000000000D0 +:04B6770000000000CF +:04B6780000000000CE +:04B6790000000000CD +:04B67A0000000000CC +:04B67B0000000000CB +:04B67C0000000000CA +:04B67D0000000000C9 +:04B67E0000000000C8 +:04B67F0000000000C7 +:04B6800000000000C6 +:04B6810000000000C5 +:04B6820000000000C4 +:04B6830000000000C3 +:04B6840000000000C2 +:04B6850000000000C1 +:04B6860000000000C0 +:04B6870000000000BF +:04B6880000000000BE +:04B6890000000000BD +:04B68A0000000000BC +:04B68B0000000000BB +:04B68C0000000000BA +:04B68D0000000000B9 +:04B68E0000000000B8 +:04B68F0000000000B7 +:04B6900000000000B6 +:04B6910000000000B5 +:04B6920000000000B4 +:04B6930000000000B3 +:04B6940000000000B2 +:04B6950000000000B1 +:04B6960000000000B0 +:04B6970000000000AF +:04B6980000000000AE +:04B6990000000000AD +:04B69A0000000000AC +:04B69B0000000000AB +:04B69C0000000000AA +:04B69D0000000000A9 +:04B69E0000000000A8 +:04B69F0000000000A7 +:04B6A00000000000A6 +:04B6A10000000000A5 +:04B6A20000000000A4 +:04B6A30000000000A3 +:04B6A40000000000A2 +:04B6A50000000000A1 +:04B6A60000000000A0 +:04B6A700000000009F +:04B6A800000000009E +:04B6A900000000009D +:04B6AA00000000009C +:04B6AB00000000009B +:04B6AC00000000009A +:04B6AD000000000099 +:04B6AE000000000098 +:04B6AF000000000097 +:04B6B0000000000096 +:04B6B1000000000095 +:04B6B2000000000094 +:04B6B3000000000093 +:04B6B4000000000092 +:04B6B5000000000091 +:04B6B6000000000090 +:04B6B700000000008F +:04B6B800000000008E +:04B6B900000000008D +:04B6BA00000000008C +:04B6BB00000000008B +:04B6BC00000000008A +:04B6BD000000000089 +:04B6BE000000000088 +:04B6BF000000000087 +:04B6C0000000000086 +:04B6C1000000000085 +:04B6C2000000000084 +:04B6C3000000000083 +:04B6C4000000000082 +:04B6C5000000000081 +:04B6C6000000000080 +:04B6C700000000007F +:04B6C800000000007E +:04B6C900000000007D +:04B6CA00000000007C +:04B6CB00000000007B +:04B6CC00000000007A +:04B6CD000000000079 +:04B6CE000000000078 +:04B6CF000000000077 +:04B6D0000000000076 +:04B6D1000000000075 +:04B6D2000000000074 +:04B6D3000000000073 +:04B6D4000000000072 +:04B6D5000000000071 +:04B6D6000000000070 +:04B6D700000000006F +:04B6D800000000006E +:04B6D900000000006D +:04B6DA00000000006C +:04B6DB00000000006B +:04B6DC00000000006A +:04B6DD000000000069 +:04B6DE000000000068 +:04B6DF000000000067 +:04B6E0000000000066 +:04B6E1000000000065 +:04B6E2000000000064 +:04B6E3000000000063 +:04B6E4000000000062 +:04B6E5000000000061 +:04B6E6000000000060 +:04B6E700000000005F +:04B6E800000000005E +:04B6E900000000005D +:04B6EA00000000005C +:04B6EB00000000005B +:04B6EC00000000005A +:04B6ED000000000059 +:04B6EE000000000058 +:04B6EF000000000057 +:04B6F0000000000056 +:04B6F1000000000055 +:04B6F2000000000054 +:04B6F3000000000053 +:04B6F4000000000052 +:04B6F5000000000051 +:04B6F6000000000050 +:04B6F700000000004F +:04B6F800000000004E +:04B6F900000000004D +:04B6FA00000000004C +:04B6FB00000000004B +:04B6FC00000000004A +:04B6FD000000000049 +:04B6FE000000000048 +:04B6FF000000000047 +:04B700000000000045 +:04B701000000000044 +:04B702000000000043 +:04B703000000000042 +:04B704000000000041 +:04B705000000000040 +:04B70600000000003F +:04B70700000000003E +:04B70800000000003D +:04B70900000000003C +:04B70A00000000003B +:04B70B00000000003A +:04B70C000000000039 +:04B70D000000000038 +:04B70E000000000037 +:04B70F000000000036 +:04B710000000000035 +:04B711000000000034 +:04B712000000000033 +:04B713000000000032 +:04B714000000000031 +:04B715000000000030 +:04B71600000000002F +:04B71700000000002E +:04B71800000000002D +:04B71900000000002C +:04B71A00000000002B +:04B71B00000000002A +:04B71C000000000029 +:04B71D000000000028 +:04B71E000000000027 +:04B71F000000000026 +:04B720000000000025 +:04B721000000000024 +:04B722000000000023 +:04B723000000000022 +:04B724000000000021 +:04B725000000000020 +:04B72600000000001F +:04B72700000000001E +:04B72800000000001D +:04B72900000000001C +:04B72A00000000001B +:04B72B00000000001A +:04B72C000000000019 +:04B72D000000000018 +:04B72E000000000017 +:04B72F000000000016 +:04B730000000000015 +:04B731000000000014 +:04B732000000000013 +:04B733000000000012 +:04B734000000000011 +:04B735000000000010 +:04B73600000000000F +:04B73700000000000E +:04B73800000000000D +:04B73900000000000C +:04B73A00000000000B +:04B73B00000000000A +:04B73C000000000009 +:04B73D000000000008 +:04B73E000000000007 +:04B73F000000000006 +:04B740000000000005 +:04B741000000000004 +:04B742000000000003 +:04B743000000000002 +:04B744000000000001 +:04B745000000000000 +:04B7460000000000FF +:04B7470000000000FE +:04B7480000000000FD +:04B7490000000000FC +:04B74A0000000000FB +:04B74B0000000000FA +:04B74C0000000000F9 +:04B74D0000000000F8 +:04B74E0000000000F7 +:04B74F0000000000F6 +:04B7500000000000F5 +:04B7510000000000F4 +:04B7520000000000F3 +:04B7530000000000F2 +:04B7540000000000F1 +:04B7550000000000F0 +:04B7560000000000EF +:04B7570000000000EE +:04B7580000000000ED +:04B7590000000000EC +:04B75A0000000000EB +:04B75B0000000000EA +:04B75C0000000000E9 +:04B75D0000000000E8 +:04B75E0000000000E7 +:04B75F0000000000E6 +:04B7600000000000E5 +:04B7610000000000E4 +:04B7620000000000E3 +:04B7630000000000E2 +:04B7640000000000E1 +:04B7650000000000E0 +:04B7660000000000DF +:04B7670000000000DE +:04B7680000000000DD +:04B7690000000000DC +:04B76A0000000000DB +:04B76B0000000000DA +:04B76C0000000000D9 +:04B76D0000000000D8 +:04B76E0000000000D7 +:04B76F0000000000D6 +:04B7700000000000D5 +:04B7710000000000D4 +:04B7720000000000D3 +:04B7730000000000D2 +:04B7740000000000D1 +:04B7750000000000D0 +:04B7760000000000CF +:04B7770000000000CE +:04B7780000000000CD +:04B7790000000000CC +:04B77A0000000000CB +:04B77B0000000000CA +:04B77C0000000000C9 +:04B77D0000000000C8 +:04B77E0000000000C7 +:04B77F0000000000C6 +:04B7800000000000C5 +:04B7810000000000C4 +:04B7820000000000C3 +:04B7830000000000C2 +:04B7840000000000C1 +:04B7850000000000C0 +:04B7860000000000BF +:04B7870000000000BE +:04B7880000000000BD +:04B7890000000000BC +:04B78A0000000000BB +:04B78B0000000000BA +:04B78C0000000000B9 +:04B78D0000000000B8 +:04B78E0000000000B7 +:04B78F0000000000B6 +:04B7900000000000B5 +:04B7910000000000B4 +:04B7920000000000B3 +:04B7930000000000B2 +:04B7940000000000B1 +:04B7950000000000B0 +:04B7960000000000AF +:04B7970000000000AE +:04B7980000000000AD +:04B7990000000000AC +:04B79A0000000000AB +:04B79B0000000000AA +:04B79C0000000000A9 +:04B79D0000000000A8 +:04B79E0000000000A7 +:04B79F0000000000A6 +:04B7A00000000000A5 +:04B7A10000000000A4 +:04B7A20000000000A3 +:04B7A30000000000A2 +:04B7A40000000000A1 +:04B7A50000000000A0 +:04B7A600000000009F +:04B7A700000000009E +:04B7A800000000009D +:04B7A900000000009C +:04B7AA00000000009B +:04B7AB00000000009A +:04B7AC000000000099 +:04B7AD000000000098 +:04B7AE000000000097 +:04B7AF000000000096 +:04B7B0000000000095 +:04B7B1000000000094 +:04B7B2000000000093 +:04B7B3000000000092 +:04B7B4000000000091 +:04B7B5000000000090 +:04B7B600000000008F +:04B7B700000000008E +:04B7B800000000008D +:04B7B900000000008C +:04B7BA00000000008B +:04B7BB00000000008A +:04B7BC000000000089 +:04B7BD000000000088 +:04B7BE000000000087 +:04B7BF000000000086 +:04B7C0000000000085 +:04B7C1000000000084 +:04B7C2000000000083 +:04B7C3000000000082 +:04B7C4000000000081 +:04B7C5000000000080 +:04B7C600000000007F +:04B7C700000000007E +:04B7C800000000007D +:04B7C900000000007C +:04B7CA00000000007B +:04B7CB00000000007A +:04B7CC000000000079 +:04B7CD000000000078 +:04B7CE000000000077 +:04B7CF000000000076 +:04B7D0000000000075 +:04B7D1000000000074 +:04B7D2000000000073 +:04B7D3000000000072 +:04B7D4000000000071 +:04B7D5000000000070 +:04B7D600000000006F +:04B7D700000000006E +:04B7D800000000006D +:04B7D900000000006C +:04B7DA00000000006B +:04B7DB00000000006A +:04B7DC000000000069 +:04B7DD000000000068 +:04B7DE000000000067 +:04B7DF000000000066 +:04B7E0000000000065 +:04B7E1000000000064 +:04B7E2000000000063 +:04B7E3000000000062 +:04B7E4000000000061 +:04B7E5000000000060 +:04B7E600000000005F +:04B7E700000000005E +:04B7E800000000005D +:04B7E900000000005C +:04B7EA00000000005B +:04B7EB00000000005A +:04B7EC000000000059 +:04B7ED000000000058 +:04B7EE000000000057 +:04B7EF000000000056 +:04B7F0000000000055 +:04B7F1000000000054 +:04B7F2000000000053 +:04B7F3000000000052 +:04B7F4000000000051 +:04B7F5000000000050 +:04B7F600000000004F +:04B7F700000000004E +:04B7F800000000004D +:04B7F900000000004C +:04B7FA00000000004B +:04B7FB00000000004A +:04B7FC000000000049 +:04B7FD000000000048 +:04B7FE000000000047 +:04B7FF000000000046 +:04B800000000000044 +:04B801000000000043 +:04B802000000000042 +:04B803000000000041 +:04B804000000000040 +:04B80500000000003F +:04B80600000000003E +:04B80700000000003D +:04B80800000000003C +:04B80900000000003B +:04B80A00000000003A +:04B80B000000000039 +:04B80C000000000038 +:04B80D000000000037 +:04B80E000000000036 +:04B80F000000000035 +:04B810000000000034 +:04B811000000000033 +:04B812000000000032 +:04B813000000000031 +:04B814000000000030 +:04B81500000000002F +:04B81600000000002E +:04B81700000000002D +:04B81800000000002C +:04B81900000000002B +:04B81A00000000002A +:04B81B000000000029 +:04B81C000000000028 +:04B81D000000000027 +:04B81E000000000026 +:04B81F000000000025 +:04B820000000000024 +:04B821000000000023 +:04B822000000000022 +:04B823000000000021 +:04B824000000000020 +:04B82500000000001F +:04B82600000000001E +:04B82700000000001D +:04B82800000000001C +:04B82900000000001B +:04B82A00000000001A +:04B82B000000000019 +:04B82C000000000018 +:04B82D000000000017 +:04B82E000000000016 +:04B82F000000000015 +:04B830000000000014 +:04B831000000000013 +:04B832000000000012 +:04B833000000000011 +:04B834000000000010 +:04B83500000000000F +:04B83600000000000E +:04B83700000000000D +:04B83800000000000C +:04B83900000000000B +:04B83A00000000000A +:04B83B000000000009 +:04B83C000000000008 +:04B83D000000000007 +:04B83E000000000006 +:04B83F000000000005 +:04B840000000000004 +:04B841000000000003 +:04B842000000000002 +:04B843000000000001 +:04B844000000000000 +:04B8450000000000FF +:04B8460000000000FE +:04B8470000000000FD +:04B8480000000000FC +:04B8490000000000FB +:04B84A0000000000FA +:04B84B0000000000F9 +:04B84C0000000000F8 +:04B84D0000000000F7 +:04B84E0000000000F6 +:04B84F0000000000F5 +:04B8500000000000F4 +:04B8510000000000F3 +:04B8520000000000F2 +:04B8530000000000F1 +:04B8540000000000F0 +:04B8550000000000EF +:04B8560000000000EE +:04B8570000000000ED +:04B8580000000000EC +:04B8590000000000EB +:04B85A0000000000EA +:04B85B0000000000E9 +:04B85C0000000000E8 +:04B85D0000000000E7 +:04B85E0000000000E6 +:04B85F0000000000E5 +:04B8600000000000E4 +:04B8610000000000E3 +:04B8620000000000E2 +:04B8630000000000E1 +:04B8640000000000E0 +:04B8650000000000DF +:04B8660000000000DE +:04B8670000000000DD +:04B8680000000000DC +:04B8690000000000DB +:04B86A0000000000DA +:04B86B0000000000D9 +:04B86C0000000000D8 +:04B86D0000000000D7 +:04B86E0000000000D6 +:04B86F0000000000D5 +:04B8700000000000D4 +:04B8710000000000D3 +:04B8720000000000D2 +:04B8730000000000D1 +:04B8740000000000D0 +:04B8750000000000CF +:04B8760000000000CE +:04B8770000000000CD +:04B8780000000000CC +:04B8790000000000CB +:04B87A0000000000CA +:04B87B0000000000C9 +:04B87C0000000000C8 +:04B87D0000000000C7 +:04B87E0000000000C6 +:04B87F0000000000C5 +:04B8800000000000C4 +:04B8810000000000C3 +:04B8820000000000C2 +:04B8830000000000C1 +:04B8840000000000C0 +:04B8850000000000BF +:04B8860000000000BE +:04B8870000000000BD +:04B8880000000000BC +:04B8890000000000BB +:04B88A0000000000BA +:04B88B0000000000B9 +:04B88C0000000000B8 +:04B88D0000000000B7 +:04B88E0000000000B6 +:04B88F0000000000B5 +:04B8900000000000B4 +:04B8910000000000B3 +:04B8920000000000B2 +:04B8930000000000B1 +:04B8940000000000B0 +:04B8950000000000AF +:04B8960000000000AE +:04B8970000000000AD +:04B8980000000000AC +:04B8990000000000AB +:04B89A0000000000AA +:04B89B0000000000A9 +:04B89C0000000000A8 +:04B89D0000000000A7 +:04B89E0000000000A6 +:04B89F0000000000A5 +:04B8A00000000000A4 +:04B8A10000000000A3 +:04B8A20000000000A2 +:04B8A30000000000A1 +:04B8A40000000000A0 +:04B8A500000000009F +:04B8A600000000009E +:04B8A700000000009D +:04B8A800000000009C +:04B8A900000000009B +:04B8AA00000000009A +:04B8AB000000000099 +:04B8AC000000000098 +:04B8AD000000000097 +:04B8AE000000000096 +:04B8AF000000000095 +:04B8B0000000000094 +:04B8B1000000000093 +:04B8B2000000000092 +:04B8B3000000000091 +:04B8B4000000000090 +:04B8B500000000008F +:04B8B600000000008E +:04B8B700000000008D +:04B8B800000000008C +:04B8B900000000008B +:04B8BA00000000008A +:04B8BB000000000089 +:04B8BC000000000088 +:04B8BD000000000087 +:04B8BE000000000086 +:04B8BF000000000085 +:04B8C0000000000084 +:04B8C1000000000083 +:04B8C2000000000082 +:04B8C3000000000081 +:04B8C4000000000080 +:04B8C500000000007F +:04B8C600000000007E +:04B8C700000000007D +:04B8C800000000007C +:04B8C900000000007B +:04B8CA00000000007A +:04B8CB000000000079 +:04B8CC000000000078 +:04B8CD000000000077 +:04B8CE000000000076 +:04B8CF000000000075 +:04B8D0000000000074 +:04B8D1000000000073 +:04B8D2000000000072 +:04B8D3000000000071 +:04B8D4000000000070 +:04B8D500000000006F +:04B8D600000000006E +:04B8D700000000006D +:04B8D800000000006C +:04B8D900000000006B +:04B8DA00000000006A +:04B8DB000000000069 +:04B8DC000000000068 +:04B8DD000000000067 +:04B8DE000000000066 +:04B8DF000000000065 +:04B8E0000000000064 +:04B8E1000000000063 +:04B8E2000000000062 +:04B8E3000000000061 +:04B8E4000000000060 +:04B8E500000000005F +:04B8E600000000005E +:04B8E700000000005D +:04B8E800000000005C +:04B8E900000000005B +:04B8EA00000000005A +:04B8EB000000000059 +:04B8EC000000000058 +:04B8ED000000000057 +:04B8EE000000000056 +:04B8EF000000000055 +:04B8F0000000000054 +:04B8F1000000000053 +:04B8F2000000000052 +:04B8F3000000000051 +:04B8F4000000000050 +:04B8F500000000004F +:04B8F600000000004E +:04B8F700000000004D +:04B8F800000000004C +:04B8F900000000004B +:04B8FA00000000004A +:04B8FB000000000049 +:04B8FC000000000048 +:04B8FD000000000047 +:04B8FE000000000046 +:04B8FF000000000045 +:04B900000000000043 +:04B901000000000042 +:04B902000000000041 +:04B903000000000040 +:04B90400000000003F +:04B90500000000003E +:04B90600000000003D +:04B90700000000003C +:04B90800000000003B +:04B90900000000003A +:04B90A000000000039 +:04B90B000000000038 +:04B90C000000000037 +:04B90D000000000036 +:04B90E000000000035 +:04B90F000000000034 +:04B910000000000033 +:04B911000000000032 +:04B912000000000031 +:04B913000000000030 +:04B91400000000002F +:04B91500000000002E +:04B91600000000002D +:04B91700000000002C +:04B91800000000002B +:04B91900000000002A +:04B91A000000000029 +:04B91B000000000028 +:04B91C000000000027 +:04B91D000000000026 +:04B91E000000000025 +:04B91F000000000024 +:04B920000000000023 +:04B921000000000022 +:04B922000000000021 +:04B923000000000020 +:04B92400000000001F +:04B92500000000001E +:04B92600000000001D +:04B92700000000001C +:04B92800000000001B +:04B92900000000001A +:04B92A000000000019 +:04B92B000000000018 +:04B92C000000000017 +:04B92D000000000016 +:04B92E000000000015 +:04B92F000000000014 +:04B930000000000013 +:04B931000000000012 +:04B932000000000011 +:04B933000000000010 +:04B93400000000000F +:04B93500000000000E +:04B93600000000000D +:04B93700000000000C +:04B93800000000000B +:04B93900000000000A +:04B93A000000000009 +:04B93B000000000008 +:04B93C000000000007 +:04B93D000000000006 +:04B93E000000000005 +:04B93F000000000004 +:04B940000000000003 +:04B941000000000002 +:04B942000000000001 +:04B943000000000000 +:04B9440000000000FF +:04B9450000000000FE +:04B9460000000000FD +:04B9470000000000FC +:04B9480000000000FB +:04B9490000000000FA +:04B94A0000000000F9 +:04B94B0000000000F8 +:04B94C0000000000F7 +:04B94D0000000000F6 +:04B94E0000000000F5 +:04B94F0000000000F4 +:04B9500000000000F3 +:04B9510000000000F2 +:04B9520000000000F1 +:04B9530000000000F0 +:04B9540000000000EF +:04B9550000000000EE +:04B9560000000000ED +:04B9570000000000EC +:04B9580000000000EB +:04B9590000000000EA +:04B95A0000000000E9 +:04B95B0000000000E8 +:04B95C0000000000E7 +:04B95D0000000000E6 +:04B95E0000000000E5 +:04B95F0000000000E4 +:04B9600000000000E3 +:04B9610000000000E2 +:04B9620000000000E1 +:04B9630000000000E0 +:04B9640000000000DF +:04B9650000000000DE +:04B9660000000000DD +:04B9670000000000DC +:04B9680000000000DB +:04B9690000000000DA +:04B96A0000000000D9 +:04B96B0000000000D8 +:04B96C0000000000D7 +:04B96D0000000000D6 +:04B96E0000000000D5 +:04B96F0000000000D4 +:04B9700000000000D3 +:04B9710000000000D2 +:04B9720000000000D1 +:04B9730000000000D0 +:04B9740000000000CF +:04B9750000000000CE +:04B9760000000000CD +:04B9770000000000CC +:04B9780000000000CB +:04B9790000000000CA +:04B97A0000000000C9 +:04B97B0000000000C8 +:04B97C0000000000C7 +:04B97D0000000000C6 +:04B97E0000000000C5 +:04B97F0000000000C4 +:04B9800000000000C3 +:04B9810000000000C2 +:04B9820000000000C1 +:04B9830000000000C0 +:04B9840000000000BF +:04B9850000000000BE +:04B9860000000000BD +:04B9870000000000BC +:04B9880000000000BB +:04B9890000000000BA +:04B98A0000000000B9 +:04B98B0000000000B8 +:04B98C0000000000B7 +:04B98D0000000000B6 +:04B98E0000000000B5 +:04B98F0000000000B4 +:04B9900000000000B3 +:04B9910000000000B2 +:04B9920000000000B1 +:04B9930000000000B0 +:04B9940000000000AF +:04B9950000000000AE +:04B9960000000000AD +:04B9970000000000AC +:04B9980000000000AB +:04B9990000000000AA +:04B99A0000000000A9 +:04B99B0000000000A8 +:04B99C0000000000A7 +:04B99D0000000000A6 +:04B99E0000000000A5 +:04B99F0000000000A4 +:04B9A00000000000A3 +:04B9A10000000000A2 +:04B9A20000000000A1 +:04B9A30000000000A0 +:04B9A400000000009F +:04B9A500000000009E +:04B9A600000000009D +:04B9A700000000009C +:04B9A800000000009B +:04B9A900000000009A +:04B9AA000000000099 +:04B9AB000000000098 +:04B9AC000000000097 +:04B9AD000000000096 +:04B9AE000000000095 +:04B9AF000000000094 +:04B9B0000000000093 +:04B9B1000000000092 +:04B9B2000000000091 +:04B9B3000000000090 +:04B9B400000000008F +:04B9B500000000008E +:04B9B600000000008D +:04B9B700000000008C +:04B9B800000000008B +:04B9B900000000008A +:04B9BA000000000089 +:04B9BB000000000088 +:04B9BC000000000087 +:04B9BD000000000086 +:04B9BE000000000085 +:04B9BF000000000084 +:04B9C0000000000083 +:04B9C1000000000082 +:04B9C2000000000081 +:04B9C3000000000080 +:04B9C400000000007F +:04B9C500000000007E +:04B9C600000000007D +:04B9C700000000007C +:04B9C800000000007B +:04B9C900000000007A +:04B9CA000000000079 +:04B9CB000000000078 +:04B9CC000000000077 +:04B9CD000000000076 +:04B9CE000000000075 +:04B9CF000000000074 +:04B9D0000000000073 +:04B9D1000000000072 +:04B9D2000000000071 +:04B9D3000000000070 +:04B9D400000000006F +:04B9D500000000006E +:04B9D600000000006D +:04B9D700000000006C +:04B9D800000000006B +:04B9D900000000006A +:04B9DA000000000069 +:04B9DB000000000068 +:04B9DC000000000067 +:04B9DD000000000066 +:04B9DE000000000065 +:04B9DF000000000064 +:04B9E0000000000063 +:04B9E1000000000062 +:04B9E2000000000061 +:04B9E3000000000060 +:04B9E400000000005F +:04B9E500000000005E +:04B9E600000000005D +:04B9E700000000005C +:04B9E800000000005B +:04B9E900000000005A +:04B9EA000000000059 +:04B9EB000000000058 +:04B9EC000000000057 +:04B9ED000000000056 +:04B9EE000000000055 +:04B9EF000000000054 +:04B9F0000000000053 +:04B9F1000000000052 +:04B9F2000000000051 +:04B9F3000000000050 +:04B9F400000000004F +:04B9F500000000004E +:04B9F600000000004D +:04B9F700000000004C +:04B9F800000000004B +:04B9F900000000004A +:04B9FA000000000049 +:04B9FB000000000048 +:04B9FC000000000047 +:04B9FD000000000046 +:04B9FE000000000045 +:04B9FF000000000044 +:04BA00000000000042 +:04BA01000000000041 +:04BA02000000000040 +:04BA0300000000003F +:04BA0400000000003E +:04BA0500000000003D +:04BA0600000000003C +:04BA0700000000003B +:04BA0800000000003A +:04BA09000000000039 +:04BA0A000000000038 +:04BA0B000000000037 +:04BA0C000000000036 +:04BA0D000000000035 +:04BA0E000000000034 +:04BA0F000000000033 +:04BA10000000000032 +:04BA11000000000031 +:04BA12000000000030 +:04BA1300000000002F +:04BA1400000000002E +:04BA1500000000002D +:04BA1600000000002C +:04BA1700000000002B +:04BA1800000000002A +:04BA19000000000029 +:04BA1A000000000028 +:04BA1B000000000027 +:04BA1C000000000026 +:04BA1D000000000025 +:04BA1E000000000024 +:04BA1F000000000023 +:04BA20000000000022 +:04BA21000000000021 +:04BA22000000000020 +:04BA2300000000001F +:04BA2400000000001E +:04BA2500000000001D +:04BA2600000000001C +:04BA2700000000001B +:04BA2800000000001A +:04BA29000000000019 +:04BA2A000000000018 +:04BA2B000000000017 +:04BA2C000000000016 +:04BA2D000000000015 +:04BA2E000000000014 +:04BA2F000000000013 +:04BA30000000000012 +:04BA31000000000011 +:04BA32000000000010 +:04BA3300000000000F +:04BA3400000000000E +:04BA3500000000000D +:04BA3600000000000C +:04BA3700000000000B +:04BA3800000000000A +:04BA39000000000009 +:04BA3A000000000008 +:04BA3B000000000007 +:04BA3C000000000006 +:04BA3D000000000005 +:04BA3E000000000004 +:04BA3F000000000003 +:04BA40000000000002 +:04BA41000000000001 +:04BA42000000000000 +:04BA430000000000FF +:04BA440000000000FE +:04BA450000000000FD +:04BA460000000000FC +:04BA470000000000FB +:04BA480000000000FA +:04BA490000000000F9 +:04BA4A0000000000F8 +:04BA4B0000000000F7 +:04BA4C0000000000F6 +:04BA4D0000000000F5 +:04BA4E0000000000F4 +:04BA4F0000000000F3 +:04BA500000000000F2 +:04BA510000000000F1 +:04BA520000000000F0 +:04BA530000000000EF +:04BA540000000000EE +:04BA550000000000ED +:04BA560000000000EC +:04BA570000000000EB +:04BA580000000000EA +:04BA590000000000E9 +:04BA5A0000000000E8 +:04BA5B0000000000E7 +:04BA5C0000000000E6 +:04BA5D0000000000E5 +:04BA5E0000000000E4 +:04BA5F0000000000E3 +:04BA600000000000E2 +:04BA610000000000E1 +:04BA620000000000E0 +:04BA630000000000DF +:04BA640000000000DE +:04BA650000000000DD +:04BA660000000000DC +:04BA670000000000DB +:04BA680000000000DA +:04BA690000000000D9 +:04BA6A0000000000D8 +:04BA6B0000000000D7 +:04BA6C0000000000D6 +:04BA6D0000000000D5 +:04BA6E0000000000D4 +:04BA6F0000000000D3 +:04BA700000000000D2 +:04BA710000000000D1 +:04BA720000000000D0 +:04BA730000000000CF +:04BA740000000000CE +:04BA750000000000CD +:04BA760000000000CC +:04BA770000000000CB +:04BA780000000000CA +:04BA790000000000C9 +:04BA7A0000000000C8 +:04BA7B0000000000C7 +:04BA7C0000000000C6 +:04BA7D0000000000C5 +:04BA7E0000000000C4 +:04BA7F0000000000C3 +:04BA800000000000C2 +:04BA810000000000C1 +:04BA820000000000C0 +:04BA830000000000BF +:04BA840000000000BE +:04BA850000000000BD +:04BA860000000000BC +:04BA870000000000BB +:04BA880000000000BA +:04BA890000000000B9 +:04BA8A0000000000B8 +:04BA8B0000000000B7 +:04BA8C0000000000B6 +:04BA8D0000000000B5 +:04BA8E0000000000B4 +:04BA8F0000000000B3 +:04BA900000000000B2 +:04BA910000000000B1 +:04BA920000000000B0 +:04BA930000000000AF +:04BA940000000000AE +:04BA950000000000AD +:04BA960000000000AC +:04BA970000000000AB +:04BA980000000000AA +:04BA990000000000A9 +:04BA9A0000000000A8 +:04BA9B0000000000A7 +:04BA9C0000000000A6 +:04BA9D0000000000A5 +:04BA9E0000000000A4 +:04BA9F0000000000A3 +:04BAA00000000000A2 +:04BAA10000000000A1 +:04BAA20000000000A0 +:04BAA300000000009F +:04BAA400000000009E +:04BAA500000000009D +:04BAA600000000009C +:04BAA700000000009B +:04BAA800000000009A +:04BAA9000000000099 +:04BAAA000000000098 +:04BAAB000000000097 +:04BAAC000000000096 +:04BAAD000000000095 +:04BAAE000000000094 +:04BAAF000000000093 +:04BAB0000000000092 +:04BAB1000000000091 +:04BAB2000000000090 +:04BAB300000000008F +:04BAB400000000008E +:04BAB500000000008D +:04BAB600000000008C +:04BAB700000000008B +:04BAB800000000008A +:04BAB9000000000089 +:04BABA000000000088 +:04BABB000000000087 +:04BABC000000000086 +:04BABD000000000085 +:04BABE000000000084 +:04BABF000000000083 +:04BAC0000000000082 +:04BAC1000000000081 +:04BAC2000000000080 +:04BAC300000000007F +:04BAC400000000007E +:04BAC500000000007D +:04BAC600000000007C +:04BAC700000000007B +:04BAC800000000007A +:04BAC9000000000079 +:04BACA000000000078 +:04BACB000000000077 +:04BACC000000000076 +:04BACD000000000075 +:04BACE000000000074 +:04BACF000000000073 +:04BAD0000000000072 +:04BAD1000000000071 +:04BAD2000000000070 +:04BAD300000000006F +:04BAD400000000006E +:04BAD500000000006D +:04BAD600000000006C +:04BAD700000000006B +:04BAD800000000006A +:04BAD9000000000069 +:04BADA000000000068 +:04BADB000000000067 +:04BADC000000000066 +:04BADD000000000065 +:04BADE000000000064 +:04BADF000000000063 +:04BAE0000000000062 +:04BAE1000000000061 +:04BAE2000000000060 +:04BAE300000000005F +:04BAE400000000005E +:04BAE500000000005D +:04BAE600000000005C +:04BAE700000000005B +:04BAE800000000005A +:04BAE9000000000059 +:04BAEA000000000058 +:04BAEB000000000057 +:04BAEC000000000056 +:04BAED000000000055 +:04BAEE000000000054 +:04BAEF000000000053 +:04BAF0000000000052 +:04BAF1000000000051 +:04BAF2000000000050 +:04BAF300000000004F +:04BAF400000000004E +:04BAF500000000004D +:04BAF600000000004C +:04BAF700000000004B +:04BAF800000000004A +:04BAF9000000000049 +:04BAFA000000000048 +:04BAFB000000000047 +:04BAFC000000000046 +:04BAFD000000000045 +:04BAFE000000000044 +:04BAFF000000000043 +:04BB00000000000041 +:04BB01000000000040 +:04BB0200000000003F +:04BB0300000000003E +:04BB0400000000003D +:04BB0500000000003C +:04BB0600000000003B +:04BB0700000000003A +:04BB08000000000039 +:04BB09000000000038 +:04BB0A000000000037 +:04BB0B000000000036 +:04BB0C000000000035 +:04BB0D000000000034 +:04BB0E000000000033 +:04BB0F000000000032 +:04BB10000000000031 +:04BB11000000000030 +:04BB1200000000002F +:04BB1300000000002E +:04BB1400000000002D +:04BB1500000000002C +:04BB1600000000002B +:04BB1700000000002A +:04BB18000000000029 +:04BB19000000000028 +:04BB1A000000000027 +:04BB1B000000000026 +:04BB1C000000000025 +:04BB1D000000000024 +:04BB1E000000000023 +:04BB1F000000000022 +:04BB20000000000021 +:04BB21000000000020 +:04BB2200000000001F +:04BB2300000000001E +:04BB2400000000001D +:04BB2500000000001C +:04BB2600000000001B +:04BB2700000000001A +:04BB28000000000019 +:04BB29000000000018 +:04BB2A000000000017 +:04BB2B000000000016 +:04BB2C000000000015 +:04BB2D000000000014 +:04BB2E000000000013 +:04BB2F000000000012 +:04BB30000000000011 +:04BB31000000000010 +:04BB3200000000000F +:04BB3300000000000E +:04BB3400000000000D +:04BB3500000000000C +:04BB3600000000000B +:04BB3700000000000A +:04BB38000000000009 +:04BB39000000000008 +:04BB3A000000000007 +:04BB3B000000000006 +:04BB3C000000000005 +:04BB3D000000000004 +:04BB3E000000000003 +:04BB3F000000000002 +:04BB40000000000001 +:04BB41000000000000 +:04BB420000000000FF +:04BB430000000000FE +:04BB440000000000FD +:04BB450000000000FC +:04BB460000000000FB +:04BB470000000000FA +:04BB480000000000F9 +:04BB490000000000F8 +:04BB4A0000000000F7 +:04BB4B0000000000F6 +:04BB4C0000000000F5 +:04BB4D0000000000F4 +:04BB4E0000000000F3 +:04BB4F0000000000F2 +:04BB500000000000F1 +:04BB510000000000F0 +:04BB520000000000EF +:04BB530000000000EE +:04BB540000000000ED +:04BB550000000000EC +:04BB560000000000EB +:04BB570000000000EA +:04BB580000000000E9 +:04BB590000000000E8 +:04BB5A0000000000E7 +:04BB5B0000000000E6 +:04BB5C0000000000E5 +:04BB5D0000000000E4 +:04BB5E0000000000E3 +:04BB5F0000000000E2 +:04BB600000000000E1 +:04BB610000000000E0 +:04BB620000000000DF +:04BB630000000000DE +:04BB640000000000DD +:04BB650000000000DC +:04BB660000000000DB +:04BB670000000000DA +:04BB680000000000D9 +:04BB690000000000D8 +:04BB6A0000000000D7 +:04BB6B0000000000D6 +:04BB6C0000000000D5 +:04BB6D0000000000D4 +:04BB6E0000000000D3 +:04BB6F0000000000D2 +:04BB700000000000D1 +:04BB710000000000D0 +:04BB720000000000CF +:04BB730000000000CE +:04BB740000000000CD +:04BB750000000000CC +:04BB760000000000CB +:04BB770000000000CA +:04BB780000000000C9 +:04BB790000000000C8 +:04BB7A0000000000C7 +:04BB7B0000000000C6 +:04BB7C0000000000C5 +:04BB7D0000000000C4 +:04BB7E0000000000C3 +:04BB7F0000000000C2 +:04BB800000000000C1 +:04BB810000000000C0 +:04BB820000000000BF +:04BB830000000000BE +:04BB840000000000BD +:04BB850000000000BC +:04BB860000000000BB +:04BB870000000000BA +:04BB880000000000B9 +:04BB890000000000B8 +:04BB8A0000000000B7 +:04BB8B0000000000B6 +:04BB8C0000000000B5 +:04BB8D0000000000B4 +:04BB8E0000000000B3 +:04BB8F0000000000B2 +:04BB900000000000B1 +:04BB910000000000B0 +:04BB920000000000AF +:04BB930000000000AE +:04BB940000000000AD +:04BB950000000000AC +:04BB960000000000AB +:04BB970000000000AA +:04BB980000000000A9 +:04BB990000000000A8 +:04BB9A0000000000A7 +:04BB9B0000000000A6 +:04BB9C0000000000A5 +:04BB9D0000000000A4 +:04BB9E0000000000A3 +:04BB9F0000000000A2 +:04BBA00000000000A1 +:04BBA10000000000A0 +:04BBA200000000009F +:04BBA300000000009E +:04BBA400000000009D +:04BBA500000000009C +:04BBA600000000009B +:04BBA700000000009A +:04BBA8000000000099 +:04BBA9000000000098 +:04BBAA000000000097 +:04BBAB000000000096 +:04BBAC000000000095 +:04BBAD000000000094 +:04BBAE000000000093 +:04BBAF000000000092 +:04BBB0000000000091 +:04BBB1000000000090 +:04BBB200000000008F +:04BBB300000000008E +:04BBB400000000008D +:04BBB500000000008C +:04BBB600000000008B +:04BBB700000000008A +:04BBB8000000000089 +:04BBB9000000000088 +:04BBBA000000000087 +:04BBBB000000000086 +:04BBBC000000000085 +:04BBBD000000000084 +:04BBBE000000000083 +:04BBBF000000000082 +:04BBC0000000000081 +:04BBC1000000000080 +:04BBC200000000007F +:04BBC300000000007E +:04BBC400000000007D +:04BBC500000000007C +:04BBC600000000007B +:04BBC700000000007A +:04BBC8000000000079 +:04BBC9000000000078 +:04BBCA000000000077 +:04BBCB000000000076 +:04BBCC000000000075 +:04BBCD000000000074 +:04BBCE000000000073 +:04BBCF000000000072 +:04BBD0000000000071 +:04BBD1000000000070 +:04BBD200000000006F +:04BBD300000000006E +:04BBD400000000006D +:04BBD500000000006C +:04BBD600000000006B +:04BBD700000000006A +:04BBD8000000000069 +:04BBD9000000000068 +:04BBDA000000000067 +:04BBDB000000000066 +:04BBDC000000000065 +:04BBDD000000000064 +:04BBDE000000000063 +:04BBDF000000000062 +:04BBE0000000000061 +:04BBE1000000000060 +:04BBE200000000005F +:04BBE300000000005E +:04BBE400000000005D +:04BBE500000000005C +:04BBE600000000005B +:04BBE700000000005A +:04BBE8000000000059 +:04BBE9000000000058 +:04BBEA000000000057 +:04BBEB000000000056 +:04BBEC000000000055 +:04BBED000000000054 +:04BBEE000000000053 +:04BBEF000000000052 +:04BBF0000000000051 +:04BBF1000000000050 +:04BBF200000000004F +:04BBF300000000004E +:04BBF400000000004D +:04BBF500000000004C +:04BBF600000000004B +:04BBF700000000004A +:04BBF8000000000049 +:04BBF9000000000048 +:04BBFA000000000047 +:04BBFB000000000046 +:04BBFC000000000045 +:04BBFD000000000044 +:04BBFE000000000043 +:04BBFF000000000042 +:04BC00000000000040 +:04BC0100000000003F +:04BC0200000000003E +:04BC0300000000003D +:04BC0400000000003C +:04BC0500000000003B +:04BC0600000000003A +:04BC07000000000039 +:04BC08000000000038 +:04BC09000000000037 +:04BC0A000000000036 +:04BC0B000000000035 +:04BC0C000000000034 +:04BC0D000000000033 +:04BC0E000000000032 +:04BC0F000000000031 +:04BC10000000000030 +:04BC1100000000002F +:04BC1200000000002E +:04BC1300000000002D +:04BC1400000000002C +:04BC1500000000002B +:04BC1600000000002A +:04BC17000000000029 +:04BC18000000000028 +:04BC19000000000027 +:04BC1A000000000026 +:04BC1B000000000025 +:04BC1C000000000024 +:04BC1D000000000023 +:04BC1E000000000022 +:04BC1F000000000021 +:04BC20000000000020 +:04BC2100000000001F +:04BC2200000000001E +:04BC2300000000001D +:04BC2400000000001C +:04BC2500000000001B +:04BC2600000000001A +:04BC27000000000019 +:04BC28000000000018 +:04BC29000000000017 +:04BC2A000000000016 +:04BC2B000000000015 +:04BC2C000000000014 +:04BC2D000000000013 +:04BC2E000000000012 +:04BC2F000000000011 +:04BC30000000000010 +:04BC3100000000000F +:04BC3200000000000E +:04BC3300000000000D +:04BC3400000000000C +:04BC3500000000000B +:04BC3600000000000A +:04BC37000000000009 +:04BC38000000000008 +:04BC39000000000007 +:04BC3A000000000006 +:04BC3B000000000005 +:04BC3C000000000004 +:04BC3D000000000003 +:04BC3E000000000002 +:04BC3F000000000001 +:04BC40000000000000 +:04BC410000000000FF +:04BC420000000000FE +:04BC430000000000FD +:04BC440000000000FC +:04BC450000000000FB +:04BC460000000000FA +:04BC470000000000F9 +:04BC480000000000F8 +:04BC490000000000F7 +:04BC4A0000000000F6 +:04BC4B0000000000F5 +:04BC4C0000000000F4 +:04BC4D0000000000F3 +:04BC4E0000000000F2 +:04BC4F0000000000F1 +:04BC500000000000F0 +:04BC510000000000EF +:04BC520000000000EE +:04BC530000000000ED +:04BC540000000000EC +:04BC550000000000EB +:04BC560000000000EA +:04BC570000000000E9 +:04BC580000000000E8 +:04BC590000000000E7 +:04BC5A0000000000E6 +:04BC5B0000000000E5 +:04BC5C0000000000E4 +:04BC5D0000000000E3 +:04BC5E0000000000E2 +:04BC5F0000000000E1 +:04BC600000000000E0 +:04BC610000000000DF +:04BC620000000000DE +:04BC630000000000DD +:04BC640000000000DC +:04BC650000000000DB +:04BC660000000000DA +:04BC670000000000D9 +:04BC680000000000D8 +:04BC690000000000D7 +:04BC6A0000000000D6 +:04BC6B0000000000D5 +:04BC6C0000000000D4 +:04BC6D0000000000D3 +:04BC6E0000000000D2 +:04BC6F0000000000D1 +:04BC700000000000D0 +:04BC710000000000CF +:04BC720000000000CE +:04BC730000000000CD +:04BC740000000000CC +:04BC750000000000CB +:04BC760000000000CA +:04BC770000000000C9 +:04BC780000000000C8 +:04BC790000000000C7 +:04BC7A0000000000C6 +:04BC7B0000000000C5 +:04BC7C0000000000C4 +:04BC7D0000000000C3 +:04BC7E0000000000C2 +:04BC7F0000000000C1 +:04BC800000000000C0 +:04BC810000000000BF +:04BC820000000000BE +:04BC830000000000BD +:04BC840000000000BC +:04BC850000000000BB +:04BC860000000000BA +:04BC870000000000B9 +:04BC880000000000B8 +:04BC890000000000B7 +:04BC8A0000000000B6 +:04BC8B0000000000B5 +:04BC8C0000000000B4 +:04BC8D0000000000B3 +:04BC8E0000000000B2 +:04BC8F0000000000B1 +:04BC900000000000B0 +:04BC910000000000AF +:04BC920000000000AE +:04BC930000000000AD +:04BC940000000000AC +:04BC950000000000AB +:04BC960000000000AA +:04BC970000000000A9 +:04BC980000000000A8 +:04BC990000000000A7 +:04BC9A0000000000A6 +:04BC9B0000000000A5 +:04BC9C0000000000A4 +:04BC9D0000000000A3 +:04BC9E0000000000A2 +:04BC9F0000000000A1 +:04BCA00000000000A0 +:04BCA100000000009F +:04BCA200000000009E +:04BCA300000000009D +:04BCA400000000009C +:04BCA500000000009B +:04BCA600000000009A +:04BCA7000000000099 +:04BCA8000000000098 +:04BCA9000000000097 +:04BCAA000000000096 +:04BCAB000000000095 +:04BCAC000000000094 +:04BCAD000000000093 +:04BCAE000000000092 +:04BCAF000000000091 +:04BCB0000000000090 +:04BCB100000000008F +:04BCB200000000008E +:04BCB300000000008D +:04BCB400000000008C +:04BCB500000000008B +:04BCB600000000008A +:04BCB7000000000089 +:04BCB8000000000088 +:04BCB9000000000087 +:04BCBA000000000086 +:04BCBB000000000085 +:04BCBC000000000084 +:04BCBD000000000083 +:04BCBE000000000082 +:04BCBF000000000081 +:04BCC0000000000080 +:04BCC100000000007F +:04BCC200000000007E +:04BCC300000000007D +:04BCC400000000007C +:04BCC500000000007B +:04BCC600000000007A +:04BCC7000000000079 +:04BCC8000000000078 +:04BCC9000000000077 +:04BCCA000000000076 +:04BCCB000000000075 +:04BCCC000000000074 +:04BCCD000000000073 +:04BCCE000000000072 +:04BCCF000000000071 +:04BCD0000000000070 +:04BCD100000000006F +:04BCD200000000006E +:04BCD300000000006D +:04BCD400000000006C +:04BCD500000000006B +:04BCD600000000006A +:04BCD7000000000069 +:04BCD8000000000068 +:04BCD9000000000067 +:04BCDA000000000066 +:04BCDB000000000065 +:04BCDC000000000064 +:04BCDD000000000063 +:04BCDE000000000062 +:04BCDF000000000061 +:04BCE0000000000060 +:04BCE100000000005F +:04BCE200000000005E +:04BCE300000000005D +:04BCE400000000005C +:04BCE500000000005B +:04BCE600000000005A +:04BCE7000000000059 +:04BCE8000000000058 +:04BCE9000000000057 +:04BCEA000000000056 +:04BCEB000000000055 +:04BCEC000000000054 +:04BCED000000000053 +:04BCEE000000000052 +:04BCEF000000000051 +:04BCF0000000000050 +:04BCF100000000004F +:04BCF200000000004E +:04BCF300000000004D +:04BCF400000000004C +:04BCF500000000004B +:04BCF600000000004A +:04BCF7000000000049 +:04BCF8000000000048 +:04BCF9000000000047 +:04BCFA000000000046 +:04BCFB000000000045 +:04BCFC000000000044 +:04BCFD000000000043 +:04BCFE000000000042 +:04BCFF000000000041 +:04BD0000000000003F +:04BD0100000000003E +:04BD0200000000003D +:04BD0300000000003C +:04BD0400000000003B +:04BD0500000000003A +:04BD06000000000039 +:04BD07000000000038 +:04BD08000000000037 +:04BD09000000000036 +:04BD0A000000000035 +:04BD0B000000000034 +:04BD0C000000000033 +:04BD0D000000000032 +:04BD0E000000000031 +:04BD0F000000000030 +:04BD1000000000002F +:04BD1100000000002E +:04BD1200000000002D +:04BD1300000000002C +:04BD1400000000002B +:04BD1500000000002A +:04BD16000000000029 +:04BD17000000000028 +:04BD18000000000027 +:04BD19000000000026 +:04BD1A000000000025 +:04BD1B000000000024 +:04BD1C000000000023 +:04BD1D000000000022 +:04BD1E000000000021 +:04BD1F000000000020 +:04BD2000000000001F +:04BD2100000000001E +:04BD2200000000001D +:04BD2300000000001C +:04BD2400000000001B +:04BD2500000000001A +:04BD26000000000019 +:04BD27000000000018 +:04BD28000000000017 +:04BD29000000000016 +:04BD2A000000000015 +:04BD2B000000000014 +:04BD2C000000000013 +:04BD2D000000000012 +:04BD2E000000000011 +:04BD2F000000000010 +:04BD3000000000000F +:04BD3100000000000E +:04BD3200000000000D +:04BD3300000000000C +:04BD3400000000000B +:04BD3500000000000A +:04BD36000000000009 +:04BD37000000000008 +:04BD38000000000007 +:04BD39000000000006 +:04BD3A000000000005 +:04BD3B000000000004 +:04BD3C000000000003 +:04BD3D000000000002 +:04BD3E000000000001 +:04BD3F000000000000 +:04BD400000000000FF +:04BD410000000000FE +:04BD420000000000FD +:04BD430000000000FC +:04BD440000000000FB +:04BD450000000000FA +:04BD460000000000F9 +:04BD470000000000F8 +:04BD480000000000F7 +:04BD490000000000F6 +:04BD4A0000000000F5 +:04BD4B0000000000F4 +:04BD4C0000000000F3 +:04BD4D0000000000F2 +:04BD4E0000000000F1 +:04BD4F0000000000F0 +:04BD500000000000EF +:04BD510000000000EE +:04BD520000000000ED +:04BD530000000000EC +:04BD540000000000EB +:04BD550000000000EA +:04BD560000000000E9 +:04BD570000000000E8 +:04BD580000000000E7 +:04BD590000000000E6 +:04BD5A0000000000E5 +:04BD5B0000000000E4 +:04BD5C0000000000E3 +:04BD5D0000000000E2 +:04BD5E0000000000E1 +:04BD5F0000000000E0 +:04BD600000000000DF +:04BD610000000000DE +:04BD620000000000DD +:04BD630000000000DC +:04BD640000000000DB +:04BD650000000000DA +:04BD660000000000D9 +:04BD670000000000D8 +:04BD680000000000D7 +:04BD690000000000D6 +:04BD6A0000000000D5 +:04BD6B0000000000D4 +:04BD6C0000000000D3 +:04BD6D0000000000D2 +:04BD6E0000000000D1 +:04BD6F0000000000D0 +:04BD700000000000CF +:04BD710000000000CE +:04BD720000000000CD +:04BD730000000000CC +:04BD740000000000CB +:04BD750000000000CA +:04BD760000000000C9 +:04BD770000000000C8 +:04BD780000000000C7 +:04BD790000000000C6 +:04BD7A0000000000C5 +:04BD7B0000000000C4 +:04BD7C0000000000C3 +:04BD7D0000000000C2 +:04BD7E0000000000C1 +:04BD7F0000000000C0 +:04BD800000000000BF +:04BD810000000000BE +:04BD820000000000BD +:04BD830000000000BC +:04BD840000000000BB +:04BD850000000000BA +:04BD860000000000B9 +:04BD870000000000B8 +:04BD880000000000B7 +:04BD890000000000B6 +:04BD8A0000000000B5 +:04BD8B0000000000B4 +:04BD8C0000000000B3 +:04BD8D0000000000B2 +:04BD8E0000000000B1 +:04BD8F0000000000B0 +:04BD900000000000AF +:04BD910000000000AE +:04BD920000000000AD +:04BD930000000000AC +:04BD940000000000AB +:04BD950000000000AA +:04BD960000000000A9 +:04BD970000000000A8 +:04BD980000000000A7 +:04BD990000000000A6 +:04BD9A0000000000A5 +:04BD9B0000000000A4 +:04BD9C0000000000A3 +:04BD9D0000000000A2 +:04BD9E0000000000A1 +:04BD9F0000000000A0 +:04BDA000000000009F +:04BDA100000000009E +:04BDA200000000009D +:04BDA300000000009C +:04BDA400000000009B +:04BDA500000000009A +:04BDA6000000000099 +:04BDA7000000000098 +:04BDA8000000000097 +:04BDA9000000000096 +:04BDAA000000000095 +:04BDAB000000000094 +:04BDAC000000000093 +:04BDAD000000000092 +:04BDAE000000000091 +:04BDAF000000000090 +:04BDB000000000008F +:04BDB100000000008E +:04BDB200000000008D +:04BDB300000000008C +:04BDB400000000008B +:04BDB500000000008A +:04BDB6000000000089 +:04BDB7000000000088 +:04BDB8000000000087 +:04BDB9000000000086 +:04BDBA000000000085 +:04BDBB000000000084 +:04BDBC000000000083 +:04BDBD000000000082 +:04BDBE000000000081 +:04BDBF000000000080 +:04BDC000000000007F +:04BDC100000000007E +:04BDC200000000007D +:04BDC300000000007C +:04BDC400000000007B +:04BDC500000000007A +:04BDC6000000000079 +:04BDC7000000000078 +:04BDC8000000000077 +:04BDC9000000000076 +:04BDCA000000000075 +:04BDCB000000000074 +:04BDCC000000000073 +:04BDCD000000000072 +:04BDCE000000000071 +:04BDCF000000000070 +:04BDD000000000006F +:04BDD100000000006E +:04BDD200000000006D +:04BDD300000000006C +:04BDD400000000006B +:04BDD500000000006A +:04BDD6000000000069 +:04BDD7000000000068 +:04BDD8000000000067 +:04BDD9000000000066 +:04BDDA000000000065 +:04BDDB000000000064 +:04BDDC000000000063 +:04BDDD000000000062 +:04BDDE000000000061 +:04BDDF000000000060 +:04BDE000000000005F +:04BDE100000000005E +:04BDE200000000005D +:04BDE300000000005C +:04BDE400000000005B +:04BDE500000000005A +:04BDE6000000000059 +:04BDE7000000000058 +:04BDE8000000000057 +:04BDE9000000000056 +:04BDEA000000000055 +:04BDEB000000000054 +:04BDEC000000000053 +:04BDED000000000052 +:04BDEE000000000051 +:04BDEF000000000050 +:04BDF000000000004F +:04BDF100000000004E +:04BDF200000000004D +:04BDF300000000004C +:04BDF400000000004B +:04BDF500000000004A +:04BDF6000000000049 +:04BDF7000000000048 +:04BDF8000000000047 +:04BDF9000000000046 +:04BDFA000000000045 +:04BDFB000000000044 +:04BDFC000000000043 +:04BDFD000000000042 +:04BDFE000000000041 +:04BDFF000000000040 +:04BE0000000000003E +:04BE0100000000003D +:04BE0200000000003C +:04BE0300000000003B +:04BE0400000000003A +:04BE05000000000039 +:04BE06000000000038 +:04BE07000000000037 +:04BE08000000000036 +:04BE09000000000035 +:04BE0A000000000034 +:04BE0B000000000033 +:04BE0C000000000032 +:04BE0D000000000031 +:04BE0E000000000030 +:04BE0F00000000002F +:04BE1000000000002E +:04BE1100000000002D +:04BE1200000000002C +:04BE1300000000002B +:04BE1400000000002A +:04BE15000000000029 +:04BE16000000000028 +:04BE17000000000027 +:04BE18000000000026 +:04BE19000000000025 +:04BE1A000000000024 +:04BE1B000000000023 +:04BE1C000000000022 +:04BE1D000000000021 +:04BE1E000000000020 +:04BE1F00000000001F +:04BE2000000000001E +:04BE2100000000001D +:04BE2200000000001C +:04BE2300000000001B +:04BE2400000000001A +:04BE25000000000019 +:04BE26000000000018 +:04BE27000000000017 +:04BE28000000000016 +:04BE29000000000015 +:04BE2A000000000014 +:04BE2B000000000013 +:04BE2C000000000012 +:04BE2D000000000011 +:04BE2E000000000010 +:04BE2F00000000000F +:04BE3000000000000E +:04BE3100000000000D +:04BE3200000000000C +:04BE3300000000000B +:04BE3400000000000A +:04BE35000000000009 +:04BE36000000000008 +:04BE37000000000007 +:04BE38000000000006 +:04BE39000000000005 +:04BE3A000000000004 +:04BE3B000000000003 +:04BE3C000000000002 +:04BE3D000000000001 +:04BE3E000000000000 +:04BE3F0000000000FF +:04BE400000000000FE +:04BE410000000000FD +:04BE420000000000FC +:04BE430000000000FB +:04BE440000000000FA +:04BE450000000000F9 +:04BE460000000000F8 +:04BE470000000000F7 +:04BE480000000000F6 +:04BE490000000000F5 +:04BE4A0000000000F4 +:04BE4B0000000000F3 +:04BE4C0000000000F2 +:04BE4D0000000000F1 +:04BE4E0000000000F0 +:04BE4F0000000000EF +:04BE500000000000EE +:04BE510000000000ED +:04BE520000000000EC +:04BE530000000000EB +:04BE540000000000EA +:04BE550000000000E9 +:04BE560000000000E8 +:04BE570000000000E7 +:04BE580000000000E6 +:04BE590000000000E5 +:04BE5A0000000000E4 +:04BE5B0000000000E3 +:04BE5C0000000000E2 +:04BE5D0000000000E1 +:04BE5E0000000000E0 +:04BE5F0000000000DF +:04BE600000000000DE +:04BE610000000000DD +:04BE620000000000DC +:04BE630000000000DB +:04BE640000000000DA +:04BE650000000000D9 +:04BE660000000000D8 +:04BE670000000000D7 +:04BE680000000000D6 +:04BE690000000000D5 +:04BE6A0000000000D4 +:04BE6B0000000000D3 +:04BE6C0000000000D2 +:04BE6D0000000000D1 +:04BE6E0000000000D0 +:04BE6F0000000000CF +:04BE700000000000CE +:04BE710000000000CD +:04BE720000000000CC +:04BE730000000000CB +:04BE740000000000CA +:04BE750000000000C9 +:04BE760000000000C8 +:04BE770000000000C7 +:04BE780000000000C6 +:04BE790000000000C5 +:04BE7A0000000000C4 +:04BE7B0000000000C3 +:04BE7C0000000000C2 +:04BE7D0000000000C1 +:04BE7E0000000000C0 +:04BE7F0000000000BF +:04BE800000000000BE +:04BE810000000000BD +:04BE820000000000BC +:04BE830000000000BB +:04BE840000000000BA +:04BE850000000000B9 +:04BE860000000000B8 +:04BE870000000000B7 +:04BE880000000000B6 +:04BE890000000000B5 +:04BE8A0000000000B4 +:04BE8B0000000000B3 +:04BE8C0000000000B2 +:04BE8D0000000000B1 +:04BE8E0000000000B0 +:04BE8F0000000000AF +:04BE900000000000AE +:04BE910000000000AD +:04BE920000000000AC +:04BE930000000000AB +:04BE940000000000AA +:04BE950000000000A9 +:04BE960000000000A8 +:04BE970000000000A7 +:04BE980000000000A6 +:04BE990000000000A5 +:04BE9A0000000000A4 +:04BE9B0000000000A3 +:04BE9C0000000000A2 +:04BE9D0000000000A1 +:04BE9E0000000000A0 +:04BE9F00000000009F +:04BEA000000000009E +:04BEA100000000009D +:04BEA200000000009C +:04BEA300000000009B +:04BEA400000000009A +:04BEA5000000000099 +:04BEA6000000000098 +:04BEA7000000000097 +:04BEA8000000000096 +:04BEA9000000000095 +:04BEAA000000000094 +:04BEAB000000000093 +:04BEAC000000000092 +:04BEAD000000000091 +:04BEAE000000000090 +:04BEAF00000000008F +:04BEB000000000008E +:04BEB100000000008D +:04BEB200000000008C +:04BEB300000000008B +:04BEB400000000008A +:04BEB5000000000089 +:04BEB6000000000088 +:04BEB7000000000087 +:04BEB8000000000086 +:04BEB9000000000085 +:04BEBA000000000084 +:04BEBB000000000083 +:04BEBC000000000082 +:04BEBD000000000081 +:04BEBE000000000080 +:04BEBF00000000007F +:04BEC000000000007E +:04BEC100000000007D +:04BEC200000000007C +:04BEC300000000007B +:04BEC400000000007A +:04BEC5000000000079 +:04BEC6000000000078 +:04BEC7000000000077 +:04BEC8000000000076 +:04BEC9000000000075 +:04BECA000000000074 +:04BECB000000000073 +:04BECC000000000072 +:04BECD000000000071 +:04BECE000000000070 +:04BECF00000000006F +:04BED000000000006E +:04BED100000000006D +:04BED200000000006C +:04BED300000000006B +:04BED400000000006A +:04BED5000000000069 +:04BED6000000000068 +:04BED7000000000067 +:04BED8000000000066 +:04BED9000000000065 +:04BEDA000000000064 +:04BEDB000000000063 +:04BEDC000000000062 +:04BEDD000000000061 +:04BEDE000000000060 +:04BEDF00000000005F +:04BEE000000000005E +:04BEE100000000005D +:04BEE200000000005C +:04BEE300000000005B +:04BEE400000000005A +:04BEE5000000000059 +:04BEE6000000000058 +:04BEE7000000000057 +:04BEE8000000000056 +:04BEE9000000000055 +:04BEEA000000000054 +:04BEEB000000000053 +:04BEEC000000000052 +:04BEED000000000051 +:04BEEE000000000050 +:04BEEF00000000004F +:04BEF000000000004E +:04BEF100000000004D +:04BEF200000000004C +:04BEF300000000004B +:04BEF400000000004A +:04BEF5000000000049 +:04BEF6000000000048 +:04BEF7000000000047 +:04BEF8000000000046 +:04BEF9000000000045 +:04BEFA000000000044 +:04BEFB000000000043 +:04BEFC000000000042 +:04BEFD000000000041 +:04BEFE000000000040 +:04BEFF00000000003F +:04BF0000000000003D +:04BF0100000000003C +:04BF0200000000003B +:04BF0300000000003A +:04BF04000000000039 +:04BF05000000000038 +:04BF06000000000037 +:04BF07000000000036 +:04BF08000000000035 +:04BF09000000000034 +:04BF0A000000000033 +:04BF0B000000000032 +:04BF0C000000000031 +:04BF0D000000000030 +:04BF0E00000000002F +:04BF0F00000000002E +:04BF1000000000002D +:04BF1100000000002C +:04BF1200000000002B +:04BF1300000000002A +:04BF14000000000029 +:04BF15000000000028 +:04BF16000000000027 +:04BF17000000000026 +:04BF18000000000025 +:04BF19000000000024 +:04BF1A000000000023 +:04BF1B000000000022 +:04BF1C000000000021 +:04BF1D000000000020 +:04BF1E00000000001F +:04BF1F00000000001E +:04BF2000000000001D +:04BF2100000000001C +:04BF2200000000001B +:04BF2300000000001A +:04BF24000000000019 +:04BF25000000000018 +:04BF26000000000017 +:04BF27000000000016 +:04BF28000000000015 +:04BF29000000000014 +:04BF2A000000000013 +:04BF2B000000000012 +:04BF2C000000000011 +:04BF2D000000000010 +:04BF2E00000000000F +:04BF2F00000000000E +:04BF3000000000000D +:04BF3100000000000C +:04BF3200000000000B +:04BF3300000000000A +:04BF34000000000009 +:04BF35000000000008 +:04BF36000000000007 +:04BF37000000000006 +:04BF38000000000005 +:04BF39000000000004 +:04BF3A000000000003 +:04BF3B000000000002 +:04BF3C000000000001 +:04BF3D000000000000 +:04BF3E0000000000FF +:04BF3F0000000000FE +:04BF400000000000FD +:04BF410000000000FC +:04BF420000000000FB +:04BF430000000000FA +:04BF440000000000F9 +:04BF450000000000F8 +:04BF460000000000F7 +:04BF470000000000F6 +:04BF480000000000F5 +:04BF490000000000F4 +:04BF4A0000000000F3 +:04BF4B0000000000F2 +:04BF4C0000000000F1 +:04BF4D0000000000F0 +:04BF4E0000000000EF +:04BF4F0000000000EE +:04BF500000000000ED +:04BF510000000000EC +:04BF520000000000EB +:04BF530000000000EA +:04BF540000000000E9 +:04BF550000000000E8 +:04BF560000000000E7 +:04BF570000000000E6 +:04BF580000000000E5 +:04BF590000000000E4 +:04BF5A0000000000E3 +:04BF5B0000000000E2 +:04BF5C0000000000E1 +:04BF5D0000000000E0 +:04BF5E0000000000DF +:04BF5F0000000000DE +:04BF600000000000DD +:04BF610000000000DC +:04BF620000000000DB +:04BF630000000000DA +:04BF640000000000D9 +:04BF650000000000D8 +:04BF660000000000D7 +:04BF670000000000D6 +:04BF680000000000D5 +:04BF690000000000D4 +:04BF6A0000000000D3 +:04BF6B0000000000D2 +:04BF6C0000000000D1 +:04BF6D0000000000D0 +:04BF6E0000000000CF +:04BF6F0000000000CE +:04BF700000000000CD +:04BF710000000000CC +:04BF720000000000CB +:04BF730000000000CA +:04BF740000000000C9 +:04BF750000000000C8 +:04BF760000000000C7 +:04BF770000000000C6 +:04BF780000000000C5 +:04BF790000000000C4 +:04BF7A0000000000C3 +:04BF7B0000000000C2 +:04BF7C0000000000C1 +:04BF7D0000000000C0 +:04BF7E0000000000BF +:04BF7F0000000000BE +:04BF800000000000BD +:04BF810000000000BC +:04BF820000000000BB +:04BF830000000000BA +:04BF840000000000B9 +:04BF850000000000B8 +:04BF860000000000B7 +:04BF870000000000B6 +:04BF880000000000B5 +:04BF890000000000B4 +:04BF8A0000000000B3 +:04BF8B0000000000B2 +:04BF8C0000000000B1 +:04BF8D0000000000B0 +:04BF8E0000000000AF +:04BF8F0000000000AE +:04BF900000000000AD +:04BF910000000000AC +:04BF920000000000AB +:04BF930000000000AA +:04BF940000000000A9 +:04BF950000000000A8 +:04BF960000000000A7 +:04BF970000000000A6 +:04BF980000000000A5 +:04BF990000000000A4 +:04BF9A0000000000A3 +:04BF9B0000000000A2 +:04BF9C0000000000A1 +:04BF9D0000000000A0 +:04BF9E00000000009F +:04BF9F00000000009E +:04BFA000000000009D +:04BFA100000000009C +:04BFA200000000009B +:04BFA300000000009A +:04BFA4000000000099 +:04BFA5000000000098 +:04BFA6000000000097 +:04BFA7000000000096 +:04BFA8000000000095 +:04BFA9000000000094 +:04BFAA000000000093 +:04BFAB000000000092 +:04BFAC000000000091 +:04BFAD000000000090 +:04BFAE00000000008F +:04BFAF00000000008E +:04BFB000000000008D +:04BFB100000000008C +:04BFB200000000008B +:04BFB300000000008A +:04BFB4000000000089 +:04BFB5000000000088 +:04BFB6000000000087 +:04BFB7000000000086 +:04BFB8000000000085 +:04BFB9000000000084 +:04BFBA000000000083 +:04BFBB000000000082 +:04BFBC000000000081 +:04BFBD000000000080 +:04BFBE00000000007F +:04BFBF00000000007E +:04BFC000000000007D +:04BFC100000000007C +:04BFC200000000007B +:04BFC300000000007A +:04BFC4000000000079 +:04BFC5000000000078 +:04BFC6000000000077 +:04BFC7000000000076 +:04BFC8000000000075 +:04BFC9000000000074 +:04BFCA000000000073 +:04BFCB000000000072 +:04BFCC000000000071 +:04BFCD000000000070 +:04BFCE00000000006F +:04BFCF00000000006E +:04BFD000000000006D +:04BFD100000000006C +:04BFD200000000006B +:04BFD300000000006A +:04BFD4000000000069 +:04BFD5000000000068 +:04BFD6000000000067 +:04BFD7000000000066 +:04BFD8000000000065 +:04BFD9000000000064 +:04BFDA000000000063 +:04BFDB000000000062 +:04BFDC000000000061 +:04BFDD000000000060 +:04BFDE00000000005F +:04BFDF00000000005E +:04BFE000000000005D +:04BFE100000000005C +:04BFE200000000005B +:04BFE300000000005A +:04BFE4000000000059 +:04BFE5000000000058 +:04BFE6000000000057 +:04BFE7000000000056 +:04BFE8000000000055 +:04BFE9000000000054 +:04BFEA000000000053 +:04BFEB000000000052 +:04BFEC000000000051 +:04BFED000000000050 +:04BFEE00000000004F +:04BFEF00000000004E +:04BFF000000000004D +:04BFF100000000004C +:04BFF200000000004B +:04BFF300000000004A +:04BFF4000000000049 +:04BFF5000000000048 +:04BFF6000000000047 +:04BFF7000000000046 +:04BFF8000000000045 +:04BFF9000000000044 +:04BFFA000000000043 +:04BFFB000000000042 +:04BFFC000000000041 +:04BFFD000000000040 +:04BFFE00000000003F +:04BFFF00000000003E +:04C00000000000003C +:04C00100000000003B +:04C00200000000003A +:04C003000000000039 +:04C004000000000038 +:04C005000000000037 +:04C006000000000036 +:04C007000000000035 +:04C008000000000034 +:04C009000000000033 +:04C00A000000000032 +:04C00B000000000031 +:04C00C000000000030 +:04C00D00000000002F +:04C00E00000000002E +:04C00F00000000002D +:04C01000000000002C +:04C01100000000002B +:04C01200000000002A +:04C013000000000029 +:04C014000000000028 +:04C015000000000027 +:04C016000000000026 +:04C017000000000025 +:04C018000000000024 +:04C019000000000023 +:04C01A000000000022 +:04C01B000000000021 +:04C01C000000000020 +:04C01D00000000001F +:04C01E00000000001E +:04C01F00000000001D +:04C02000000000001C +:04C02100000000001B +:04C02200000000001A +:04C023000000000019 +:04C024000000000018 +:04C025000000000017 +:04C026000000000016 +:04C027000000000015 +:04C028000000000014 +:04C029000000000013 +:04C02A000000000012 +:04C02B000000000011 +:04C02C000000000010 +:04C02D00000000000F +:04C02E00000000000E +:04C02F00000000000D +:04C03000000000000C +:04C03100000000000B +:04C03200000000000A +:04C033000000000009 +:04C034000000000008 +:04C035000000000007 +:04C036000000000006 +:04C037000000000005 +:04C038000000000004 +:04C039000000000003 +:04C03A000000000002 +:04C03B000000000001 +:04C03C000000000000 +:04C03D0000000000FF +:04C03E0000000000FE +:04C03F0000000000FD +:04C0400000000000FC +:04C0410000000000FB +:04C0420000000000FA +:04C0430000000000F9 +:04C0440000000000F8 +:04C0450000000000F7 +:04C0460000000000F6 +:04C0470000000000F5 +:04C0480000000000F4 +:04C0490000000000F3 +:04C04A0000000000F2 +:04C04B0000000000F1 +:04C04C0000000000F0 +:04C04D0000000000EF +:04C04E0000000000EE +:04C04F0000000000ED +:04C0500000000000EC +:04C0510000000000EB +:04C0520000000000EA +:04C0530000000000E9 +:04C0540000000000E8 +:04C0550000000000E7 +:04C0560000000000E6 +:04C0570000000000E5 +:04C0580000000000E4 +:04C0590000000000E3 +:04C05A0000000000E2 +:04C05B0000000000E1 +:04C05C0000000000E0 +:04C05D0000000000DF +:04C05E0000000000DE +:04C05F0000000000DD +:04C0600000000000DC +:04C0610000000000DB +:04C0620000000000DA +:04C0630000000000D9 +:04C0640000000000D8 +:04C0650000000000D7 +:04C0660000000000D6 +:04C0670000000000D5 +:04C0680000000000D4 +:04C0690000000000D3 +:04C06A0000000000D2 +:04C06B0000000000D1 +:04C06C0000000000D0 +:04C06D0000000000CF +:04C06E0000000000CE +:04C06F0000000000CD +:04C0700000000000CC +:04C0710000000000CB +:04C0720000000000CA +:04C0730000000000C9 +:04C0740000000000C8 +:04C0750000000000C7 +:04C0760000000000C6 +:04C0770000000000C5 +:04C0780000000000C4 +:04C0790000000000C3 +:04C07A0000000000C2 +:04C07B0000000000C1 +:04C07C0000000000C0 +:04C07D0000000000BF +:04C07E0000000000BE +:04C07F0000000000BD +:04C0800000000000BC +:04C0810000000000BB +:04C0820000000000BA +:04C0830000000000B9 +:04C0840000000000B8 +:04C0850000000000B7 +:04C0860000000000B6 +:04C0870000000000B5 +:04C0880000000000B4 +:04C0890000000000B3 +:04C08A0000000000B2 +:04C08B0000000000B1 +:04C08C0000000000B0 +:04C08D0000000000AF +:04C08E0000000000AE +:04C08F0000000000AD +:04C0900000000000AC +:04C0910000000000AB +:04C0920000000000AA +:04C0930000000000A9 +:04C0940000000000A8 +:04C0950000000000A7 +:04C0960000000000A6 +:04C0970000000000A5 +:04C0980000000000A4 +:04C0990000000000A3 +:04C09A0000000000A2 +:04C09B0000000000A1 +:04C09C0000000000A0 +:04C09D00000000009F +:04C09E00000000009E +:04C09F00000000009D +:04C0A000000000009C +:04C0A100000000009B +:04C0A200000000009A +:04C0A3000000000099 +:04C0A4000000000098 +:04C0A5000000000097 +:04C0A6000000000096 +:04C0A7000000000095 +:04C0A8000000000094 +:04C0A9000000000093 +:04C0AA000000000092 +:04C0AB000000000091 +:04C0AC000000000090 +:04C0AD00000000008F +:04C0AE00000000008E +:04C0AF00000000008D +:04C0B000000000008C +:04C0B100000000008B +:04C0B200000000008A +:04C0B3000000000089 +:04C0B4000000000088 +:04C0B5000000000087 +:04C0B6000000000086 +:04C0B7000000000085 +:04C0B8000000000084 +:04C0B9000000000083 +:04C0BA000000000082 +:04C0BB000000000081 +:04C0BC000000000080 +:04C0BD00000000007F +:04C0BE00000000007E +:04C0BF00000000007D +:04C0C000000000007C +:04C0C100000000007B +:04C0C200000000007A +:04C0C3000000000079 +:04C0C4000000000078 +:04C0C5000000000077 +:04C0C6000000000076 +:04C0C7000000000075 +:04C0C8000000000074 +:04C0C9000000000073 +:04C0CA000000000072 +:04C0CB000000000071 +:04C0CC000000000070 +:04C0CD00000000006F +:04C0CE00000000006E +:04C0CF00000000006D +:04C0D000000000006C +:04C0D100000000006B +:04C0D200000000006A +:04C0D3000000000069 +:04C0D4000000000068 +:04C0D5000000000067 +:04C0D6000000000066 +:04C0D7000000000065 +:04C0D8000000000064 +:04C0D9000000000063 +:04C0DA000000000062 +:04C0DB000000000061 +:04C0DC000000000060 +:04C0DD00000000005F +:04C0DE00000000005E +:04C0DF00000000005D +:04C0E000000000005C +:04C0E100000000005B +:04C0E200000000005A +:04C0E3000000000059 +:04C0E4000000000058 +:04C0E5000000000057 +:04C0E6000000000056 +:04C0E7000000000055 +:04C0E8000000000054 +:04C0E9000000000053 +:04C0EA000000000052 +:04C0EB000000000051 +:04C0EC000000000050 +:04C0ED00000000004F +:04C0EE00000000004E +:04C0EF00000000004D +:04C0F000000000004C +:04C0F100000000004B +:04C0F200000000004A +:04C0F3000000000049 +:04C0F4000000000048 +:04C0F5000000000047 +:04C0F6000000000046 +:04C0F7000000000045 +:04C0F8000000000044 +:04C0F9000000000043 +:04C0FA000000000042 +:04C0FB000000000041 +:04C0FC000000000040 +:04C0FD00000000003F +:04C0FE00000000003E +:04C0FF00000000003D +:04C10000000000003B +:04C10100000000003A +:04C102000000000039 +:04C103000000000038 +:04C104000000000037 +:04C105000000000036 +:04C106000000000035 +:04C107000000000034 +:04C108000000000033 +:04C109000000000032 +:04C10A000000000031 +:04C10B000000000030 +:04C10C00000000002F +:04C10D00000000002E +:04C10E00000000002D +:04C10F00000000002C +:04C11000000000002B +:04C11100000000002A +:04C112000000000029 +:04C113000000000028 +:04C114000000000027 +:04C115000000000026 +:04C116000000000025 +:04C117000000000024 +:04C118000000000023 +:04C119000000000022 +:04C11A000000000021 +:04C11B000000000020 +:04C11C00000000001F +:04C11D00000000001E +:04C11E00000000001D +:04C11F00000000001C +:04C12000000000001B +:04C12100000000001A +:04C122000000000019 +:04C123000000000018 +:04C124000000000017 +:04C125000000000016 +:04C126000000000015 +:04C127000000000014 +:04C128000000000013 +:04C129000000000012 +:04C12A000000000011 +:04C12B000000000010 +:04C12C00000000000F +:04C12D00000000000E +:04C12E00000000000D +:04C12F00000000000C +:04C13000000000000B +:04C13100000000000A +:04C132000000000009 +:04C133000000000008 +:04C134000000000007 +:04C135000000000006 +:04C136000000000005 +:04C137000000000004 +:04C138000000000003 +:04C139000000000002 +:04C13A000000000001 +:04C13B000000000000 +:04C13C0000000000FF +:04C13D0000000000FE +:04C13E0000000000FD +:04C13F0000000000FC +:04C1400000000000FB +:04C1410000000000FA +:04C1420000000000F9 +:04C1430000000000F8 +:04C1440000000000F7 +:04C1450000000000F6 +:04C1460000000000F5 +:04C1470000000000F4 +:04C1480000000000F3 +:04C1490000000000F2 +:04C14A0000000000F1 +:04C14B0000000000F0 +:04C14C0000000000EF +:04C14D0000000000EE +:04C14E0000000000ED +:04C14F0000000000EC +:04C1500000000000EB +:04C1510000000000EA +:04C1520000000000E9 +:04C1530000000000E8 +:04C1540000000000E7 +:04C1550000000000E6 +:04C1560000000000E5 +:04C1570000000000E4 +:04C1580000000000E3 +:04C1590000000000E2 +:04C15A0000000000E1 +:04C15B0000000000E0 +:04C15C0000000000DF +:04C15D0000000000DE +:04C15E0000000000DD +:04C15F0000000000DC +:04C1600000000000DB +:04C1610000000000DA +:04C1620000000000D9 +:04C1630000000000D8 +:04C1640000000000D7 +:04C1650000000000D6 +:04C1660000000000D5 +:04C1670000000000D4 +:04C1680000000000D3 +:04C1690000000000D2 +:04C16A0000000000D1 +:04C16B0000000000D0 +:04C16C0000000000CF +:04C16D0000000000CE +:04C16E0000000000CD +:04C16F0000000000CC +:04C1700000000000CB +:04C1710000000000CA +:04C1720000000000C9 +:04C1730000000000C8 +:04C1740000000000C7 +:04C1750000000000C6 +:04C1760000000000C5 +:04C1770000000000C4 +:04C1780000000000C3 +:04C1790000000000C2 +:04C17A0000000000C1 +:04C17B0000000000C0 +:04C17C0000000000BF +:04C17D0000000000BE +:04C17E0000000000BD +:04C17F0000000000BC +:04C1800000000000BB +:04C1810000000000BA +:04C1820000000000B9 +:04C1830000000000B8 +:04C1840000000000B7 +:04C1850000000000B6 +:04C1860000000000B5 +:04C1870000000000B4 +:04C1880000000000B3 +:04C1890000000000B2 +:04C18A0000000000B1 +:04C18B0000000000B0 +:04C18C0000000000AF +:04C18D0000000000AE +:04C18E0000000000AD +:04C18F0000000000AC +:04C1900000000000AB +:04C1910000000000AA +:04C1920000000000A9 +:04C1930000000000A8 +:04C1940000000000A7 +:04C1950000000000A6 +:04C1960000000000A5 +:04C1970000000000A4 +:04C1980000000000A3 +:04C1990000000000A2 +:04C19A0000000000A1 +:04C19B0000000000A0 +:04C19C00000000009F +:04C19D00000000009E +:04C19E00000000009D +:04C19F00000000009C +:04C1A000000000009B +:04C1A100000000009A +:04C1A2000000000099 +:04C1A3000000000098 +:04C1A4000000000097 +:04C1A5000000000096 +:04C1A6000000000095 +:04C1A7000000000094 +:04C1A8000000000093 +:04C1A9000000000092 +:04C1AA000000000091 +:04C1AB000000000090 +:04C1AC00000000008F +:04C1AD00000000008E +:04C1AE00000000008D +:04C1AF00000000008C +:04C1B000000000008B +:04C1B100000000008A +:04C1B2000000000089 +:04C1B3000000000088 +:04C1B4000000000087 +:04C1B5000000000086 +:04C1B6000000000085 +:04C1B7000000000084 +:04C1B8000000000083 +:04C1B9000000000082 +:04C1BA000000000081 +:04C1BB000000000080 +:04C1BC00000000007F +:04C1BD00000000007E +:04C1BE00000000007D +:04C1BF00000000007C +:04C1C000000000007B +:04C1C100000000007A +:04C1C2000000000079 +:04C1C3000000000078 +:04C1C4000000000077 +:04C1C5000000000076 +:04C1C6000000000075 +:04C1C7000000000074 +:04C1C8000000000073 +:04C1C9000000000072 +:04C1CA000000000071 +:04C1CB000000000070 +:04C1CC00000000006F +:04C1CD00000000006E +:04C1CE00000000006D +:04C1CF00000000006C +:04C1D000000000006B +:04C1D100000000006A +:04C1D2000000000069 +:04C1D3000000000068 +:04C1D4000000000067 +:04C1D5000000000066 +:04C1D6000000000065 +:04C1D7000000000064 +:04C1D8000000000063 +:04C1D9000000000062 +:04C1DA000000000061 +:04C1DB000000000060 +:04C1DC00000000005F +:04C1DD00000000005E +:04C1DE00000000005D +:04C1DF00000000005C +:04C1E000000000005B +:04C1E100000000005A +:04C1E2000000000059 +:04C1E3000000000058 +:04C1E4000000000057 +:04C1E5000000000056 +:04C1E6000000000055 +:04C1E7000000000054 +:04C1E8000000000053 +:04C1E9000000000052 +:04C1EA000000000051 +:04C1EB000000000050 +:04C1EC00000000004F +:04C1ED00000000004E +:04C1EE00000000004D +:04C1EF00000000004C +:04C1F000000000004B +:04C1F100000000004A +:04C1F2000000000049 +:04C1F3000000000048 +:04C1F4000000000047 +:04C1F5000000000046 +:04C1F6000000000045 +:04C1F7000000000044 +:04C1F8000000000043 +:04C1F9000000000042 +:04C1FA000000000041 +:04C1FB000000000040 +:04C1FC00000000003F +:04C1FD00000000003E +:04C1FE00000000003D +:04C1FF00000000003C +:04C20000000000003A +:04C201000000000039 +:04C202000000000038 +:04C203000000000037 +:04C204000000000036 +:04C205000000000035 +:04C206000000000034 +:04C207000000000033 +:04C208000000000032 +:04C209000000000031 +:04C20A000000000030 +:04C20B00000000002F +:04C20C00000000002E +:04C20D00000000002D +:04C20E00000000002C +:04C20F00000000002B +:04C21000000000002A +:04C211000000000029 +:04C212000000000028 +:04C213000000000027 +:04C214000000000026 +:04C215000000000025 +:04C216000000000024 +:04C217000000000023 +:04C218000000000022 +:04C219000000000021 +:04C21A000000000020 +:04C21B00000000001F +:04C21C00000000001E +:04C21D00000000001D +:04C21E00000000001C +:04C21F00000000001B +:04C22000000000001A +:04C221000000000019 +:04C222000000000018 +:04C223000000000017 +:04C224000000000016 +:04C225000000000015 +:04C226000000000014 +:04C227000000000013 +:04C228000000000012 +:04C229000000000011 +:04C22A000000000010 +:04C22B00000000000F +:04C22C00000000000E +:04C22D00000000000D +:04C22E00000000000C +:04C22F00000000000B +:04C23000000000000A +:04C231000000000009 +:04C232000000000008 +:04C233000000000007 +:04C234000000000006 +:04C235000000000005 +:04C236000000000004 +:04C237000000000003 +:04C238000000000002 +:04C239000000000001 +:04C23A000000000000 +:04C23B0000000000FF +:04C23C0000000000FE +:04C23D0000000000FD +:04C23E0000000000FC +:04C23F0000000000FB +:04C2400000000000FA +:04C2410000000000F9 +:04C2420000000000F8 +:04C2430000000000F7 +:04C2440000000000F6 +:04C2450000000000F5 +:04C2460000000000F4 +:04C2470000000000F3 +:04C2480000000000F2 +:04C2490000000000F1 +:04C24A0000000000F0 +:04C24B0000000000EF +:04C24C0000000000EE +:04C24D0000000000ED +:04C24E0000000000EC +:04C24F0000000000EB +:04C2500000000000EA +:04C2510000000000E9 +:04C2520000000000E8 +:04C2530000000000E7 +:04C2540000000000E6 +:04C2550000000000E5 +:04C2560000000000E4 +:04C2570000000000E3 +:04C2580000000000E2 +:04C2590000000000E1 +:04C25A0000000000E0 +:04C25B0000000000DF +:04C25C0000000000DE +:04C25D0000000000DD +:04C25E0000000000DC +:04C25F0000000000DB +:04C2600000000000DA +:04C2610000000000D9 +:04C2620000000000D8 +:04C2630000000000D7 +:04C2640000000000D6 +:04C2650000000000D5 +:04C2660000000000D4 +:04C2670000000000D3 +:04C2680000000000D2 +:04C2690000000000D1 +:04C26A0000000000D0 +:04C26B0000000000CF +:04C26C0000000000CE +:04C26D0000000000CD +:04C26E0000000000CC +:04C26F0000000000CB +:04C2700000000000CA +:04C2710000000000C9 +:04C2720000000000C8 +:04C2730000000000C7 +:04C2740000000000C6 +:04C2750000000000C5 +:04C2760000000000C4 +:04C2770000000000C3 +:04C2780000000000C2 +:04C2790000000000C1 +:04C27A0000000000C0 +:04C27B0000000000BF +:04C27C0000000000BE +:04C27D0000000000BD +:04C27E0000000000BC +:04C27F0000000000BB +:04C2800000000000BA +:04C2810000000000B9 +:04C2820000000000B8 +:04C2830000000000B7 +:04C2840000000000B6 +:04C2850000000000B5 +:04C2860000000000B4 +:04C2870000000000B3 +:04C2880000000000B2 +:04C2890000000000B1 +:04C28A0000000000B0 +:04C28B0000000000AF +:04C28C0000000000AE +:04C28D0000000000AD +:04C28E0000000000AC +:04C28F0000000000AB +:04C2900000000000AA +:04C2910000000000A9 +:04C2920000000000A8 +:04C2930000000000A7 +:04C2940000000000A6 +:04C2950000000000A5 +:04C2960000000000A4 +:04C2970000000000A3 +:04C2980000000000A2 +:04C2990000000000A1 +:04C29A0000000000A0 +:04C29B00000000009F +:04C29C00000000009E +:04C29D00000000009D +:04C29E00000000009C +:04C29F00000000009B +:04C2A000000000009A +:04C2A1000000000099 +:04C2A2000000000098 +:04C2A3000000000097 +:04C2A4000000000096 +:04C2A5000000000095 +:04C2A6000000000094 +:04C2A7000000000093 +:04C2A8000000000092 +:04C2A9000000000091 +:04C2AA000000000090 +:04C2AB00000000008F +:04C2AC00000000008E +:04C2AD00000000008D +:04C2AE00000000008C +:04C2AF00000000008B +:04C2B000000000008A +:04C2B1000000000089 +:04C2B2000000000088 +:04C2B3000000000087 +:04C2B4000000000086 +:04C2B5000000000085 +:04C2B6000000000084 +:04C2B7000000000083 +:04C2B8000000000082 +:04C2B9000000000081 +:04C2BA000000000080 +:04C2BB00000000007F +:04C2BC00000000007E +:04C2BD00000000007D +:04C2BE00000000007C +:04C2BF00000000007B +:04C2C000000000007A +:04C2C1000000000079 +:04C2C2000000000078 +:04C2C3000000000077 +:04C2C4000000000076 +:04C2C5000000000075 +:04C2C6000000000074 +:04C2C7000000000073 +:04C2C8000000000072 +:04C2C9000000000071 +:04C2CA000000000070 +:04C2CB00000000006F +:04C2CC00000000006E +:04C2CD00000000006D +:04C2CE00000000006C +:04C2CF00000000006B +:04C2D000000000006A +:04C2D1000000000069 +:04C2D2000000000068 +:04C2D3000000000067 +:04C2D4000000000066 +:04C2D5000000000065 +:04C2D6000000000064 +:04C2D7000000000063 +:04C2D8000000000062 +:04C2D9000000000061 +:04C2DA000000000060 +:04C2DB00000000005F +:04C2DC00000000005E +:04C2DD00000000005D +:04C2DE00000000005C +:04C2DF00000000005B +:04C2E000000000005A +:04C2E1000000000059 +:04C2E2000000000058 +:04C2E3000000000057 +:04C2E4000000000056 +:04C2E5000000000055 +:04C2E6000000000054 +:04C2E7000000000053 +:04C2E8000000000052 +:04C2E9000000000051 +:04C2EA000000000050 +:04C2EB00000000004F +:04C2EC00000000004E +:04C2ED00000000004D +:04C2EE00000000004C +:04C2EF00000000004B +:04C2F000000000004A +:04C2F1000000000049 +:04C2F2000000000048 +:04C2F3000000000047 +:04C2F4000000000046 +:04C2F5000000000045 +:04C2F6000000000044 +:04C2F7000000000043 +:04C2F8000000000042 +:04C2F9000000000041 +:04C2FA000000000040 +:04C2FB00000000003F +:04C2FC00000000003E +:04C2FD00000000003D +:04C2FE00000000003C +:04C2FF00000000003B +:04C300000000000039 +:04C301000000000038 +:04C302000000000037 +:04C303000000000036 +:04C304000000000035 +:04C305000000000034 +:04C306000000000033 +:04C307000000000032 +:04C308000000000031 +:04C309000000000030 +:04C30A00000000002F +:04C30B00000000002E +:04C30C00000000002D +:04C30D00000000002C +:04C30E00000000002B +:04C30F00000000002A +:04C310000000000029 +:04C311000000000028 +:04C312000000000027 +:04C313000000000026 +:04C314000000000025 +:04C315000000000024 +:04C316000000000023 +:04C317000000000022 +:04C318000000000021 +:04C319000000000020 +:04C31A00000000001F +:04C31B00000000001E +:04C31C00000000001D +:04C31D00000000001C +:04C31E00000000001B +:04C31F00000000001A +:04C320000000000019 +:04C321000000000018 +:04C322000000000017 +:04C323000000000016 +:04C324000000000015 +:04C325000000000014 +:04C326000000000013 +:04C327000000000012 +:04C328000000000011 +:04C329000000000010 +:04C32A00000000000F +:04C32B00000000000E +:04C32C00000000000D +:04C32D00000000000C +:04C32E00000000000B +:04C32F00000000000A +:04C330000000000009 +:04C331000000000008 +:04C332000000000007 +:04C333000000000006 +:04C334000000000005 +:04C335000000000004 +:04C336000000000003 +:04C337000000000002 +:04C338000000000001 +:04C339000000000000 +:04C33A0000000000FF +:04C33B0000000000FE +:04C33C0000000000FD +:04C33D0000000000FC +:04C33E0000000000FB +:04C33F0000000000FA +:04C3400000000000F9 +:04C3410000000000F8 +:04C3420000000000F7 +:04C3430000000000F6 +:04C3440000000000F5 +:04C3450000000000F4 +:04C3460000000000F3 +:04C3470000000000F2 +:04C3480000000000F1 +:04C3490000000000F0 +:04C34A0000000000EF +:04C34B0000000000EE +:04C34C0000000000ED +:04C34D0000000000EC +:04C34E0000000000EB +:04C34F0000000000EA +:04C3500000000000E9 +:04C3510000000000E8 +:04C3520000000000E7 +:04C3530000000000E6 +:04C3540000000000E5 +:04C3550000000000E4 +:04C3560000000000E3 +:04C3570000000000E2 +:04C3580000000000E1 +:04C3590000000000E0 +:04C35A0000000000DF +:04C35B0000000000DE +:04C35C0000000000DD +:04C35D0000000000DC +:04C35E0000000000DB +:04C35F0000000000DA +:04C3600000000000D9 +:04C3610000000000D8 +:04C3620000000000D7 +:04C3630000000000D6 +:04C3640000000000D5 +:04C3650000000000D4 +:04C3660000000000D3 +:04C3670000000000D2 +:04C3680000000000D1 +:04C3690000000000D0 +:04C36A0000000000CF +:04C36B0000000000CE +:04C36C0000000000CD +:04C36D0000000000CC +:04C36E0000000000CB +:04C36F0000000000CA +:04C3700000000000C9 +:04C3710000000000C8 +:04C3720000000000C7 +:04C3730000000000C6 +:04C3740000000000C5 +:04C3750000000000C4 +:04C3760000000000C3 +:04C3770000000000C2 +:04C3780000000000C1 +:04C3790000000000C0 +:04C37A0000000000BF +:04C37B0000000000BE +:04C37C0000000000BD +:04C37D0000000000BC +:04C37E0000000000BB +:04C37F0000000000BA +:04C3800000000000B9 +:04C3810000000000B8 +:04C3820000000000B7 +:04C3830000000000B6 +:04C3840000000000B5 +:04C3850000000000B4 +:04C3860000000000B3 +:04C3870000000000B2 +:04C3880000000000B1 +:04C3890000000000B0 +:04C38A0000000000AF +:04C38B0000000000AE +:04C38C0000000000AD +:04C38D0000000000AC +:04C38E0000000000AB +:04C38F0000000000AA +:04C3900000000000A9 +:04C3910000000000A8 +:04C3920000000000A7 +:04C3930000000000A6 +:04C3940000000000A5 +:04C3950000000000A4 +:04C3960000000000A3 +:04C3970000000000A2 +:04C3980000000000A1 +:04C3990000000000A0 +:04C39A00000000009F +:04C39B00000000009E +:04C39C00000000009D +:04C39D00000000009C +:04C39E00000000009B +:04C39F00000000009A +:04C3A0000000000099 +:04C3A1000000000098 +:04C3A2000000000097 +:04C3A3000000000096 +:04C3A4000000000095 +:04C3A5000000000094 +:04C3A6000000000093 +:04C3A7000000000092 +:04C3A8000000000091 +:04C3A9000000000090 +:04C3AA00000000008F +:04C3AB00000000008E +:04C3AC00000000008D +:04C3AD00000000008C +:04C3AE00000000008B +:04C3AF00000000008A +:04C3B0000000000089 +:04C3B1000000000088 +:04C3B2000000000087 +:04C3B3000000000086 +:04C3B4000000000085 +:04C3B5000000000084 +:04C3B6000000000083 +:04C3B7000000000082 +:04C3B8000000000081 +:04C3B9000000000080 +:04C3BA00000000007F +:04C3BB00000000007E +:04C3BC00000000007D +:04C3BD00000000007C +:04C3BE00000000007B +:04C3BF00000000007A +:04C3C0000000000079 +:04C3C1000000000078 +:04C3C2000000000077 +:04C3C3000000000076 +:04C3C4000000000075 +:04C3C5000000000074 +:04C3C6000000000073 +:04C3C7000000000072 +:04C3C8000000000071 +:04C3C9000000000070 +:04C3CA00000000006F +:04C3CB00000000006E +:04C3CC00000000006D +:04C3CD00000000006C +:04C3CE00000000006B +:04C3CF00000000006A +:04C3D0000000000069 +:04C3D1000000000068 +:04C3D2000000000067 +:04C3D3000000000066 +:04C3D4000000000065 +:04C3D5000000000064 +:04C3D6000000000063 +:04C3D7000000000062 +:04C3D8000000000061 +:04C3D9000000000060 +:04C3DA00000000005F +:04C3DB00000000005E +:04C3DC00000000005D +:04C3DD00000000005C +:04C3DE00000000005B +:04C3DF00000000005A +:04C3E0000000000059 +:04C3E1000000000058 +:04C3E2000000000057 +:04C3E3000000000056 +:04C3E4000000000055 +:04C3E5000000000054 +:04C3E6000000000053 +:04C3E7000000000052 +:04C3E8000000000051 +:04C3E9000000000050 +:04C3EA00000000004F +:04C3EB00000000004E +:04C3EC00000000004D +:04C3ED00000000004C +:04C3EE00000000004B +:04C3EF00000000004A +:04C3F0000000000049 +:04C3F1000000000048 +:04C3F2000000000047 +:04C3F3000000000046 +:04C3F4000000000045 +:04C3F5000000000044 +:04C3F6000000000043 +:04C3F7000000000042 +:04C3F8000000000041 +:04C3F9000000000040 +:04C3FA00000000003F +:04C3FB00000000003E +:04C3FC00000000003D +:04C3FD00000000003C +:04C3FE00000000003B +:04C3FF00000000003A +:04C400000000000038 +:04C401000000000037 +:04C402000000000036 +:04C403000000000035 +:04C404000000000034 +:04C405000000000033 +:04C406000000000032 +:04C407000000000031 +:04C408000000000030 +:04C40900000000002F +:04C40A00000000002E +:04C40B00000000002D +:04C40C00000000002C +:04C40D00000000002B +:04C40E00000000002A +:04C40F000000000029 +:04C410000000000028 +:04C411000000000027 +:04C412000000000026 +:04C413000000000025 +:04C414000000000024 +:04C415000000000023 +:04C416000000000022 +:04C417000000000021 +:04C418000000000020 +:04C41900000000001F +:04C41A00000000001E +:04C41B00000000001D +:04C41C00000000001C +:04C41D00000000001B +:04C41E00000000001A +:04C41F000000000019 +:04C420000000000018 +:04C421000000000017 +:04C422000000000016 +:04C423000000000015 +:04C424000000000014 +:04C425000000000013 +:04C426000000000012 +:04C427000000000011 +:04C428000000000010 +:04C42900000000000F +:04C42A00000000000E +:04C42B00000000000D +:04C42C00000000000C +:04C42D00000000000B +:04C42E00000000000A +:04C42F000000000009 +:04C430000000000008 +:04C431000000000007 +:04C432000000000006 +:04C433000000000005 +:04C434000000000004 +:04C435000000000003 +:04C436000000000002 +:04C437000000000001 +:04C438000000000000 +:04C4390000000000FF +:04C43A0000000000FE +:04C43B0000000000FD +:04C43C0000000000FC +:04C43D0000000000FB +:04C43E0000000000FA +:04C43F0000000000F9 +:04C4400000000000F8 +:04C4410000000000F7 +:04C4420000000000F6 +:04C4430000000000F5 +:04C4440000000000F4 +:04C4450000000000F3 +:04C4460000000000F2 +:04C4470000000000F1 +:04C4480000000000F0 +:04C4490000000000EF +:04C44A0000000000EE +:04C44B0000000000ED +:04C44C0000000000EC +:04C44D0000000000EB +:04C44E0000000000EA +:04C44F0000000000E9 +:04C4500000000000E8 +:04C4510000000000E7 +:04C4520000000000E6 +:04C4530000000000E5 +:04C4540000000000E4 +:04C4550000000000E3 +:04C4560000000000E2 +:04C4570000000000E1 +:04C4580000000000E0 +:04C4590000000000DF +:04C45A0000000000DE +:04C45B0000000000DD +:04C45C0000000000DC +:04C45D0000000000DB +:04C45E0000000000DA +:04C45F0000000000D9 +:04C4600000000000D8 +:04C4610000000000D7 +:04C4620000000000D6 +:04C4630000000000D5 +:04C4640000000000D4 +:04C4650000000000D3 +:04C4660000000000D2 +:04C4670000000000D1 +:04C4680000000000D0 +:04C4690000000000CF +:04C46A0000000000CE +:04C46B0000000000CD +:04C46C0000000000CC +:04C46D0000000000CB +:04C46E0000000000CA +:04C46F0000000000C9 +:04C4700000000000C8 +:04C4710000000000C7 +:04C4720000000000C6 +:04C4730000000000C5 +:04C4740000000000C4 +:04C4750000000000C3 +:04C4760000000000C2 +:04C4770000000000C1 +:04C4780000000000C0 +:04C4790000000000BF +:04C47A0000000000BE +:04C47B0000000000BD +:04C47C0000000000BC +:04C47D0000000000BB +:04C47E0000000000BA +:04C47F0000000000B9 +:04C4800000000000B8 +:04C4810000000000B7 +:04C4820000000000B6 +:04C4830000000000B5 +:04C4840000000000B4 +:04C4850000000000B3 +:04C4860000000000B2 +:04C4870000000000B1 +:04C4880000000000B0 +:04C4890000000000AF +:04C48A0000000000AE +:04C48B0000000000AD +:04C48C0000000000AC +:04C48D0000000000AB +:04C48E0000000000AA +:04C48F0000000000A9 +:04C4900000000000A8 +:04C4910000000000A7 +:04C4920000000000A6 +:04C4930000000000A5 +:04C4940000000000A4 +:04C4950000000000A3 +:04C4960000000000A2 +:04C4970000000000A1 +:04C4980000000000A0 +:04C49900000000009F +:04C49A00000000009E +:04C49B00000000009D +:04C49C00000000009C +:04C49D00000000009B +:04C49E00000000009A +:04C49F000000000099 +:04C4A0000000000098 +:04C4A1000000000097 +:04C4A2000000000096 +:04C4A3000000000095 +:04C4A4000000000094 +:04C4A5000000000093 +:04C4A6000000000092 +:04C4A7000000000091 +:04C4A8000000000090 +:04C4A900000000008F +:04C4AA00000000008E +:04C4AB00000000008D +:04C4AC00000000008C +:04C4AD00000000008B +:04C4AE00000000008A +:04C4AF000000000089 +:04C4B0000000000088 +:04C4B1000000000087 +:04C4B2000000000086 +:04C4B3000000000085 +:04C4B4000000000084 +:04C4B5000000000083 +:04C4B6000000000082 +:04C4B7000000000081 +:04C4B8000000000080 +:04C4B900000000007F +:04C4BA00000000007E +:04C4BB00000000007D +:04C4BC00000000007C +:04C4BD00000000007B +:04C4BE00000000007A +:04C4BF000000000079 +:04C4C0000000000078 +:04C4C1000000000077 +:04C4C2000000000076 +:04C4C3000000000075 +:04C4C4000000000074 +:04C4C5000000000073 +:04C4C6000000000072 +:04C4C7000000000071 +:04C4C8000000000070 +:04C4C900000000006F +:04C4CA00000000006E +:04C4CB00000000006D +:04C4CC00000000006C +:04C4CD00000000006B +:04C4CE00000000006A +:04C4CF000000000069 +:04C4D0000000000068 +:04C4D1000000000067 +:04C4D2000000000066 +:04C4D3000000000065 +:04C4D4000000000064 +:04C4D5000000000063 +:04C4D6000000000062 +:04C4D7000000000061 +:04C4D8000000000060 +:04C4D900000000005F +:04C4DA00000000005E +:04C4DB00000000005D +:04C4DC00000000005C +:04C4DD00000000005B +:04C4DE00000000005A +:04C4DF000000000059 +:04C4E0000000000058 +:04C4E1000000000057 +:04C4E2000000000056 +:04C4E3000000000055 +:04C4E4000000000054 +:04C4E5000000000053 +:04C4E6000000000052 +:04C4E7000000000051 +:04C4E8000000000050 +:04C4E900000000004F +:04C4EA00000000004E +:04C4EB00000000004D +:04C4EC00000000004C +:04C4ED00000000004B +:04C4EE00000000004A +:04C4EF000000000049 +:04C4F0000000000048 +:04C4F1000000000047 +:04C4F2000000000046 +:04C4F3000000000045 +:04C4F4000000000044 +:04C4F5000000000043 +:04C4F6000000000042 +:04C4F7000000000041 +:04C4F8000000000040 +:04C4F900000000003F +:04C4FA00000000003E +:04C4FB00000000003D +:04C4FC00000000003C +:04C4FD00000000003B +:04C4FE00000000003A +:04C4FF000000000039 +:04C500000000000037 +:04C501000000000036 +:04C502000000000035 +:04C503000000000034 +:04C504000000000033 +:04C505000000000032 +:04C506000000000031 +:04C507000000000030 +:04C50800000000002F +:04C50900000000002E +:04C50A00000000002D +:04C50B00000000002C +:04C50C00000000002B +:04C50D00000000002A +:04C50E000000000029 +:04C50F000000000028 +:04C510000000000027 +:04C511000000000026 +:04C512000000000025 +:04C513000000000024 +:04C514000000000023 +:04C515000000000022 +:04C516000000000021 +:04C517000000000020 +:04C51800000000001F +:04C51900000000001E +:04C51A00000000001D +:04C51B00000000001C +:04C51C00000000001B +:04C51D00000000001A +:04C51E000000000019 +:04C51F000000000018 +:04C520000000000017 +:04C521000000000016 +:04C522000000000015 +:04C523000000000014 +:04C524000000000013 +:04C525000000000012 +:04C526000000000011 +:04C527000000000010 +:04C52800000000000F +:04C52900000000000E +:04C52A00000000000D +:04C52B00000000000C +:04C52C00000000000B +:04C52D00000000000A +:04C52E000000000009 +:04C52F000000000008 +:04C530000000000007 +:04C531000000000006 +:04C532000000000005 +:04C533000000000004 +:04C534000000000003 +:04C535000000000002 +:04C536000000000001 +:04C537000000000000 +:04C5380000000000FF +:04C5390000000000FE +:04C53A0000000000FD +:04C53B0000000000FC +:04C53C0000000000FB +:04C53D0000000000FA +:04C53E0000000000F9 +:04C53F0000000000F8 +:04C5400000000000F7 +:04C5410000000000F6 +:04C5420000000000F5 +:04C5430000000000F4 +:04C5440000000000F3 +:04C5450000000000F2 +:04C5460000000000F1 +:04C5470000000000F0 +:04C5480000000000EF +:04C5490000000000EE +:04C54A0000000000ED +:04C54B0000000000EC +:04C54C0000000000EB +:04C54D0000000000EA +:04C54E0000000000E9 +:04C54F0000000000E8 +:04C5500000000000E7 +:04C5510000000000E6 +:04C5520000000000E5 +:04C5530000000000E4 +:04C5540000000000E3 +:04C5550000000000E2 +:04C5560000000000E1 +:04C5570000000000E0 +:04C5580000000000DF +:04C5590000000000DE +:04C55A0000000000DD +:04C55B0000000000DC +:04C55C0000000000DB +:04C55D0000000000DA +:04C55E0000000000D9 +:04C55F0000000000D8 +:04C5600000000000D7 +:04C5610000000000D6 +:04C5620000000000D5 +:04C5630000000000D4 +:04C5640000000000D3 +:04C5650000000000D2 +:04C5660000000000D1 +:04C5670000000000D0 +:04C5680000000000CF +:04C5690000000000CE +:04C56A0000000000CD +:04C56B0000000000CC +:04C56C0000000000CB +:04C56D0000000000CA +:04C56E0000000000C9 +:04C56F0000000000C8 +:04C5700000000000C7 +:04C5710000000000C6 +:04C5720000000000C5 +:04C5730000000000C4 +:04C5740000000000C3 +:04C5750000000000C2 +:04C5760000000000C1 +:04C5770000000000C0 +:04C5780000000000BF +:04C5790000000000BE +:04C57A0000000000BD +:04C57B0000000000BC +:04C57C0000000000BB +:04C57D0000000000BA +:04C57E0000000000B9 +:04C57F0000000000B8 +:04C5800000000000B7 +:04C5810000000000B6 +:04C5820000000000B5 +:04C5830000000000B4 +:04C5840000000000B3 +:04C5850000000000B2 +:04C5860000000000B1 +:04C5870000000000B0 +:04C5880000000000AF +:04C5890000000000AE +:04C58A0000000000AD +:04C58B0000000000AC +:04C58C0000000000AB +:04C58D0000000000AA +:04C58E0000000000A9 +:04C58F0000000000A8 +:04C5900000000000A7 +:04C5910000000000A6 +:04C5920000000000A5 +:04C5930000000000A4 +:04C5940000000000A3 +:04C5950000000000A2 +:04C5960000000000A1 +:04C5970000000000A0 +:04C59800000000009F +:04C59900000000009E +:04C59A00000000009D +:04C59B00000000009C +:04C59C00000000009B +:04C59D00000000009A +:04C59E000000000099 +:04C59F000000000098 +:04C5A0000000000097 +:04C5A1000000000096 +:04C5A2000000000095 +:04C5A3000000000094 +:04C5A4000000000093 +:04C5A5000000000092 +:04C5A6000000000091 +:04C5A7000000000090 +:04C5A800000000008F +:04C5A900000000008E +:04C5AA00000000008D +:04C5AB00000000008C +:04C5AC00000000008B +:04C5AD00000000008A +:04C5AE000000000089 +:04C5AF000000000088 +:04C5B0000000000087 +:04C5B1000000000086 +:04C5B2000000000085 +:04C5B3000000000084 +:04C5B4000000000083 +:04C5B5000000000082 +:04C5B6000000000081 +:04C5B7000000000080 +:04C5B800000000007F +:04C5B900000000007E +:04C5BA00000000007D +:04C5BB00000000007C +:04C5BC00000000007B +:04C5BD00000000007A +:04C5BE000000000079 +:04C5BF000000000078 +:04C5C0000000000077 +:04C5C1000000000076 +:04C5C2000000000075 +:04C5C3000000000074 +:04C5C4000000000073 +:04C5C5000000000072 +:04C5C6000000000071 +:04C5C7000000000070 +:04C5C800000000006F +:04C5C900000000006E +:04C5CA00000000006D +:04C5CB00000000006C +:04C5CC00000000006B +:04C5CD00000000006A +:04C5CE000000000069 +:04C5CF000000000068 +:04C5D0000000000067 +:04C5D1000000000066 +:04C5D2000000000065 +:04C5D3000000000064 +:04C5D4000000000063 +:04C5D5000000000062 +:04C5D6000000000061 +:04C5D7000000000060 +:04C5D800000000005F +:04C5D900000000005E +:04C5DA00000000005D +:04C5DB00000000005C +:04C5DC00000000005B +:04C5DD00000000005A +:04C5DE000000000059 +:04C5DF000000000058 +:04C5E0000000000057 +:04C5E1000000000056 +:04C5E2000000000055 +:04C5E3000000000054 +:04C5E4000000000053 +:04C5E5000000000052 +:04C5E6000000000051 +:04C5E7000000000050 +:04C5E800000000004F +:04C5E900000000004E +:04C5EA00000000004D +:04C5EB00000000004C +:04C5EC00000000004B +:04C5ED00000000004A +:04C5EE000000000049 +:04C5EF000000000048 +:04C5F0000000000047 +:04C5F1000000000046 +:04C5F2000000000045 +:04C5F3000000000044 +:04C5F4000000000043 +:04C5F5000000000042 +:04C5F6000000000041 +:04C5F7000000000040 +:04C5F800000000003F +:04C5F900000000003E +:04C5FA00000000003D +:04C5FB00000000003C +:04C5FC00000000003B +:04C5FD00000000003A +:04C5FE000000000039 +:04C5FF000000000038 +:04C600000000000036 +:04C601000000000035 +:04C602000000000034 +:04C603000000000033 +:04C604000000000032 +:04C605000000000031 +:04C606000000000030 +:04C60700000000002F +:04C60800000000002E +:04C60900000000002D +:04C60A00000000002C +:04C60B00000000002B +:04C60C00000000002A +:04C60D000000000029 +:04C60E000000000028 +:04C60F000000000027 +:04C610000000000026 +:04C611000000000025 +:04C612000000000024 +:04C613000000000023 +:04C614000000000022 +:04C615000000000021 +:04C616000000000020 +:04C61700000000001F +:04C61800000000001E +:04C61900000000001D +:04C61A00000000001C +:04C61B00000000001B +:04C61C00000000001A +:04C61D000000000019 +:04C61E000000000018 +:04C61F000000000017 +:04C620000000000016 +:04C621000000000015 +:04C622000000000014 +:04C623000000000013 +:04C624000000000012 +:04C625000000000011 +:04C626000000000010 +:04C62700000000000F +:04C62800000000000E +:04C62900000000000D +:04C62A00000000000C +:04C62B00000000000B +:04C62C00000000000A +:04C62D000000000009 +:04C62E000000000008 +:04C62F000000000007 +:04C630000000000006 +:04C631000000000005 +:04C632000000000004 +:04C633000000000003 +:04C634000000000002 +:04C635000000000001 +:04C636000000000000 +:04C6370000000000FF +:04C6380000000000FE +:04C6390000000000FD +:04C63A0000000000FC +:04C63B0000000000FB +:04C63C0000000000FA +:04C63D0000000000F9 +:04C63E0000000000F8 +:04C63F0000000000F7 +:04C6400000000000F6 +:04C6410000000000F5 +:04C6420000000000F4 +:04C6430000000000F3 +:04C6440000000000F2 +:04C6450000000000F1 +:04C6460000000000F0 +:04C6470000000000EF +:04C6480000000000EE +:04C6490000000000ED +:04C64A0000000000EC +:04C64B0000000000EB +:04C64C0000000000EA +:04C64D0000000000E9 +:04C64E0000000000E8 +:04C64F0000000000E7 +:04C6500000000000E6 +:04C6510000000000E5 +:04C6520000000000E4 +:04C6530000000000E3 +:04C6540000000000E2 +:04C6550000000000E1 +:04C6560000000000E0 +:04C6570000000000DF +:04C6580000000000DE +:04C6590000000000DD +:04C65A0000000000DC +:04C65B0000000000DB +:04C65C0000000000DA +:04C65D0000000000D9 +:04C65E0000000000D8 +:04C65F0000000000D7 +:04C6600000000000D6 +:04C6610000000000D5 +:04C6620000000000D4 +:04C6630000000000D3 +:04C6640000000000D2 +:04C6650000000000D1 +:04C6660000000000D0 +:04C6670000000000CF +:04C6680000000000CE +:04C6690000000000CD +:04C66A0000000000CC +:04C66B0000000000CB +:04C66C0000000000CA +:04C66D0000000000C9 +:04C66E0000000000C8 +:04C66F0000000000C7 +:04C6700000000000C6 +:04C6710000000000C5 +:04C6720000000000C4 +:04C6730000000000C3 +:04C6740000000000C2 +:04C6750000000000C1 +:04C6760000000000C0 +:04C6770000000000BF +:04C6780000000000BE +:04C6790000000000BD +:04C67A0000000000BC +:04C67B0000000000BB +:04C67C0000000000BA +:04C67D0000000000B9 +:04C67E0000000000B8 +:04C67F0000000000B7 +:04C6800000000000B6 +:04C6810000000000B5 +:04C6820000000000B4 +:04C6830000000000B3 +:04C6840000000000B2 +:04C6850000000000B1 +:04C6860000000000B0 +:04C6870000000000AF +:04C6880000000000AE +:04C6890000000000AD +:04C68A0000000000AC +:04C68B0000000000AB +:04C68C0000000000AA +:04C68D0000000000A9 +:04C68E0000000000A8 +:04C68F0000000000A7 +:04C6900000000000A6 +:04C6910000000000A5 +:04C6920000000000A4 +:04C6930000000000A3 +:04C6940000000000A2 +:04C6950000000000A1 +:04C6960000000000A0 +:04C69700000000009F +:04C69800000000009E +:04C69900000000009D +:04C69A00000000009C +:04C69B00000000009B +:04C69C00000000009A +:04C69D000000000099 +:04C69E000000000098 +:04C69F000000000097 +:04C6A0000000000096 +:04C6A1000000000095 +:04C6A2000000000094 +:04C6A3000000000093 +:04C6A4000000000092 +:04C6A5000000000091 +:04C6A6000000000090 +:04C6A700000000008F +:04C6A800000000008E +:04C6A900000000008D +:04C6AA00000000008C +:04C6AB00000000008B +:04C6AC00000000008A +:04C6AD000000000089 +:04C6AE000000000088 +:04C6AF000000000087 +:04C6B0000000000086 +:04C6B1000000000085 +:04C6B2000000000084 +:04C6B3000000000083 +:04C6B4000000000082 +:04C6B5000000000081 +:04C6B6000000000080 +:04C6B700000000007F +:04C6B800000000007E +:04C6B900000000007D +:04C6BA00000000007C +:04C6BB00000000007B +:04C6BC00000000007A +:04C6BD000000000079 +:04C6BE000000000078 +:04C6BF000000000077 +:04C6C0000000000076 +:04C6C1000000000075 +:04C6C2000000000074 +:04C6C3000000000073 +:04C6C4000000000072 +:04C6C5000000000071 +:04C6C6000000000070 +:04C6C700000000006F +:04C6C800000000006E +:04C6C900000000006D +:04C6CA00000000006C +:04C6CB00000000006B +:04C6CC00000000006A +:04C6CD000000000069 +:04C6CE000000000068 +:04C6CF000000000067 +:04C6D0000000000066 +:04C6D1000000000065 +:04C6D2000000000064 +:04C6D3000000000063 +:04C6D4000000000062 +:04C6D5000000000061 +:04C6D6000000000060 +:04C6D700000000005F +:04C6D800000000005E +:04C6D900000000005D +:04C6DA00000000005C +:04C6DB00000000005B +:04C6DC00000000005A +:04C6DD000000000059 +:04C6DE000000000058 +:04C6DF000000000057 +:04C6E0000000000056 +:04C6E1000000000055 +:04C6E2000000000054 +:04C6E3000000000053 +:04C6E4000000000052 +:04C6E5000000000051 +:04C6E6000000000050 +:04C6E700000000004F +:04C6E800000000004E +:04C6E900000000004D +:04C6EA00000000004C +:04C6EB00000000004B +:04C6EC00000000004A +:04C6ED000000000049 +:04C6EE000000000048 +:04C6EF000000000047 +:04C6F0000000000046 +:04C6F1000000000045 +:04C6F2000000000044 +:04C6F3000000000043 +:04C6F4000000000042 +:04C6F5000000000041 +:04C6F6000000000040 +:04C6F700000000003F +:04C6F800000000003E +:04C6F900000000003D +:04C6FA00000000003C +:04C6FB00000000003B +:04C6FC00000000003A +:04C6FD000000000039 +:04C6FE000000000038 +:04C6FF000000000037 +:04C700000000000035 +:04C701000000000034 +:04C702000000000033 +:04C703000000000032 +:04C704000000000031 +:04C705000000000030 +:04C70600000000002F +:04C70700000000002E +:04C70800000000002D +:04C70900000000002C +:04C70A00000000002B +:04C70B00000000002A +:04C70C000000000029 +:04C70D000000000028 +:04C70E000000000027 +:04C70F000000000026 +:04C710000000000025 +:04C711000000000024 +:04C712000000000023 +:04C713000000000022 +:04C714000000000021 +:04C715000000000020 +:04C71600000000001F +:04C71700000000001E +:04C71800000000001D +:04C71900000000001C +:04C71A00000000001B +:04C71B00000000001A +:04C71C000000000019 +:04C71D000000000018 +:04C71E000000000017 +:04C71F000000000016 +:04C720000000000015 +:04C721000000000014 +:04C722000000000013 +:04C723000000000012 +:04C724000000000011 +:04C725000000000010 +:04C72600000000000F +:04C72700000000000E +:04C72800000000000D +:04C72900000000000C +:04C72A00000000000B +:04C72B00000000000A +:04C72C000000000009 +:04C72D000000000008 +:04C72E000000000007 +:04C72F000000000006 +:04C730000000000005 +:04C731000000000004 +:04C732000000000003 +:04C733000000000002 +:04C734000000000001 +:04C735000000000000 +:04C7360000000000FF +:04C7370000000000FE +:04C7380000000000FD +:04C7390000000000FC +:04C73A0000000000FB +:04C73B0000000000FA +:04C73C0000000000F9 +:04C73D0000000000F8 +:04C73E0000000000F7 +:04C73F0000000000F6 +:04C7400000000000F5 +:04C7410000000000F4 +:04C7420000000000F3 +:04C7430000000000F2 +:04C7440000000000F1 +:04C7450000000000F0 +:04C7460000000000EF +:04C7470000000000EE +:04C7480000000000ED +:04C7490000000000EC +:04C74A0000000000EB +:04C74B0000000000EA +:04C74C0000000000E9 +:04C74D0000000000E8 +:04C74E0000000000E7 +:04C74F0000000000E6 +:04C7500000000000E5 +:04C7510000000000E4 +:04C7520000000000E3 +:04C7530000000000E2 +:04C7540000000000E1 +:04C7550000000000E0 +:04C7560000000000DF +:04C7570000000000DE +:04C7580000000000DD +:04C7590000000000DC +:04C75A0000000000DB +:04C75B0000000000DA +:04C75C0000000000D9 +:04C75D0000000000D8 +:04C75E0000000000D7 +:04C75F0000000000D6 +:04C7600000000000D5 +:04C7610000000000D4 +:04C7620000000000D3 +:04C7630000000000D2 +:04C7640000000000D1 +:04C7650000000000D0 +:04C7660000000000CF +:04C7670000000000CE +:04C7680000000000CD +:04C7690000000000CC +:04C76A0000000000CB +:04C76B0000000000CA +:04C76C0000000000C9 +:04C76D0000000000C8 +:04C76E0000000000C7 +:04C76F0000000000C6 +:04C7700000000000C5 +:04C7710000000000C4 +:04C7720000000000C3 +:04C7730000000000C2 +:04C7740000000000C1 +:04C7750000000000C0 +:04C7760000000000BF +:04C7770000000000BE +:04C7780000000000BD +:04C7790000000000BC +:04C77A0000000000BB +:04C77B0000000000BA +:04C77C0000000000B9 +:04C77D0000000000B8 +:04C77E0000000000B7 +:04C77F0000000000B6 +:04C7800000000000B5 +:04C7810000000000B4 +:04C7820000000000B3 +:04C7830000000000B2 +:04C7840000000000B1 +:04C7850000000000B0 +:04C7860000000000AF +:04C7870000000000AE +:04C7880000000000AD +:04C7890000000000AC +:04C78A0000000000AB +:04C78B0000000000AA +:04C78C0000000000A9 +:04C78D0000000000A8 +:04C78E0000000000A7 +:04C78F0000000000A6 +:04C7900000000000A5 +:04C7910000000000A4 +:04C7920000000000A3 +:04C7930000000000A2 +:04C7940000000000A1 +:04C7950000000000A0 +:04C79600000000009F +:04C79700000000009E +:04C79800000000009D +:04C79900000000009C +:04C79A00000000009B +:04C79B00000000009A +:04C79C000000000099 +:04C79D000000000098 +:04C79E000000000097 +:04C79F000000000096 +:04C7A0000000000095 +:04C7A1000000000094 +:04C7A2000000000093 +:04C7A3000000000092 +:04C7A4000000000091 +:04C7A5000000000090 +:04C7A600000000008F +:04C7A700000000008E +:04C7A800000000008D +:04C7A900000000008C +:04C7AA00000000008B +:04C7AB00000000008A +:04C7AC000000000089 +:04C7AD000000000088 +:04C7AE000000000087 +:04C7AF000000000086 +:04C7B0000000000085 +:04C7B1000000000084 +:04C7B2000000000083 +:04C7B3000000000082 +:04C7B4000000000081 +:04C7B5000000000080 +:04C7B600000000007F +:04C7B700000000007E +:04C7B800000000007D +:04C7B900000000007C +:04C7BA00000000007B +:04C7BB00000000007A +:04C7BC000000000079 +:04C7BD000000000078 +:04C7BE000000000077 +:04C7BF000000000076 +:04C7C0000000000075 +:04C7C1000000000074 +:04C7C2000000000073 +:04C7C3000000000072 +:04C7C4000000000071 +:04C7C5000000000070 +:04C7C600000000006F +:04C7C700000000006E +:04C7C800000000006D +:04C7C900000000006C +:04C7CA00000000006B +:04C7CB00000000006A +:04C7CC000000000069 +:04C7CD000000000068 +:04C7CE000000000067 +:04C7CF000000000066 +:04C7D0000000000065 +:04C7D1000000000064 +:04C7D2000000000063 +:04C7D3000000000062 +:04C7D4000000000061 +:04C7D5000000000060 +:04C7D600000000005F +:04C7D700000000005E +:04C7D800000000005D +:04C7D900000000005C +:04C7DA00000000005B +:04C7DB00000000005A +:04C7DC000000000059 +:04C7DD000000000058 +:04C7DE000000000057 +:04C7DF000000000056 +:04C7E0000000000055 +:04C7E1000000000054 +:04C7E2000000000053 +:04C7E3000000000052 +:04C7E4000000000051 +:04C7E5000000000050 +:04C7E600000000004F +:04C7E700000000004E +:04C7E800000000004D +:04C7E900000000004C +:04C7EA00000000004B +:04C7EB00000000004A +:04C7EC000000000049 +:04C7ED000000000048 +:04C7EE000000000047 +:04C7EF000000000046 +:04C7F0000000000045 +:04C7F1000000000044 +:04C7F2000000000043 +:04C7F3000000000042 +:04C7F4000000000041 +:04C7F5000000000040 +:04C7F600000000003F +:04C7F700000000003E +:04C7F800000000003D +:04C7F900000000003C +:04C7FA00000000003B +:04C7FB00000000003A +:04C7FC000000000039 +:04C7FD000000000038 +:04C7FE000000000037 +:04C7FF000000000036 +:00000001ff diff --git a/nios_system/synthesis/submodules/nios_system_onchip_memory.v b/nios_system/synthesis/submodules/nios_system_onchip_memory.v new file mode 100644 index 0000000..685f015 --- /dev/null +++ b/nios_system/synthesis/submodules/nios_system_onchip_memory.v @@ -0,0 +1,85 @@ +//Legal Notice: (C)2016 Altera Corporation. All rights reserved. Your +//use of Altera Corporation's design tools, logic functions and other +//software and tools, and its AMPP partner logic functions, and any +//output files any of the foregoing (including device programming or +//simulation files), and any associated documentation or information are +//expressly subject to the terms and conditions of the Altera Program +//License Subscription Agreement or other applicable license agreement, +//including, without limitation, that your use is for the sole purpose +//of programming logic devices manufactured by Altera and sold by Altera +//or its authorized distributors. Please refer to the applicable +//agreement for further details. + +// synthesis translate_off +`timescale 1ns / 1ps +// synthesis translate_on + +// turn off superfluous verilog processor warnings +// altera message_level Level1 +// altera message_off 10034 10035 10036 10037 10230 10240 10030 + +module nios_system_onchip_memory ( + // inputs: + address, + byteenable, + chipselect, + clk, + clken, + reset, + reset_req, + write, + writedata, + + // outputs: + readdata + ) +; + + parameter INIT_FILE = "nios_system_onchip_memory.hex"; + + + output [ 31: 0] readdata; + input [ 15: 0] address; + input [ 3: 0] byteenable; + input chipselect; + input clk; + input clken; + input reset; + input reset_req; + input write; + input [ 31: 0] writedata; + + wire clocken0; + wire [ 31: 0] readdata; + wire wren; + assign wren = chipselect & write; + assign clocken0 = clken & ~reset_req; + altsyncram the_altsyncram + ( + .address_a (address), + .byteena_a (byteenable), + .clock0 (clk), + .clocken0 (clocken0), + .data_a (writedata), + .q_a (readdata), + .wren_a (wren) + ); + + defparam the_altsyncram.byte_size = 8, + the_altsyncram.init_file = INIT_FILE, + the_altsyncram.lpm_type = "altsyncram", + the_altsyncram.maximum_depth = 51200, + the_altsyncram.numwords_a = 51200, + the_altsyncram.operation_mode = "SINGLE_PORT", + the_altsyncram.outdata_reg_a = "UNREGISTERED", + the_altsyncram.ram_block_type = "AUTO", + the_altsyncram.read_during_write_mode_mixed_ports = "DONT_CARE", + the_altsyncram.width_a = 32, + the_altsyncram.width_byteena_a = 4, + the_altsyncram.widthad_a = 16; + + //s1, which is an e_avalon_slave + //s2, which is an e_avalon_slave + +endmodule + diff --git a/nios_system/synthesis/submodules/nios_system_pio_0.v b/nios_system/synthesis/submodules/nios_system_pio_0.v new file mode 100644 index 0000000..4f92a98 --- /dev/null +++ b/nios_system/synthesis/submodules/nios_system_pio_0.v @@ -0,0 +1,58 @@ +//Legal Notice: (C)2016 Altera Corporation. All rights reserved. Your +//use of Altera Corporation's design tools, logic functions and other +//software and tools, and its AMPP partner logic functions, and any +//output files any of the foregoing (including device programming or +//simulation files), and any associated documentation or information are +//expressly subject to the terms and conditions of the Altera Program +//License Subscription Agreement or other applicable license agreement, +//including, without limitation, that your use is for the sole purpose +//of programming logic devices manufactured by Altera and sold by Altera +//or its authorized distributors. Please refer to the applicable +//agreement for further details. + +// synthesis translate_off +`timescale 1ns / 1ps +// synthesis translate_on + +// turn off superfluous verilog processor warnings +// altera message_level Level1 +// altera message_off 10034 10035 10036 10037 10230 10240 10030 + +module nios_system_pio_0 ( + // inputs: + address, + clk, + in_port, + reset_n, + + // outputs: + readdata + ) +; + + output [ 31: 0] readdata; + input [ 1: 0] address; + input clk; + input [ 17: 0] in_port; + input reset_n; + + wire clk_en; + wire [ 17: 0] data_in; + wire [ 17: 0] read_mux_out; + reg [ 31: 0] readdata; + assign clk_en = 1; + //s1, which is an e_avalon_slave + assign read_mux_out = {18 {(address == 0)}} & data_in; + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + readdata <= 0; + else if (clk_en) + readdata <= {32'b0 | read_mux_out}; + end + + + assign data_in = in_port; + +endmodule + diff --git a/nios_system/synthesis/submodules/nios_system_push_switches.v b/nios_system/synthesis/submodules/nios_system_push_switches.v new file mode 100644 index 0000000..381d964 --- /dev/null +++ b/nios_system/synthesis/submodules/nios_system_push_switches.v @@ -0,0 +1,58 @@ +//Legal Notice: (C)2016 Altera Corporation. All rights reserved. Your +//use of Altera Corporation's design tools, logic functions and other +//software and tools, and its AMPP partner logic functions, and any +//output files any of the foregoing (including device programming or +//simulation files), and any associated documentation or information are +//expressly subject to the terms and conditions of the Altera Program +//License Subscription Agreement or other applicable license agreement, +//including, without limitation, that your use is for the sole purpose +//of programming logic devices manufactured by Altera and sold by Altera +//or its authorized distributors. Please refer to the applicable +//agreement for further details. + +// synthesis translate_off +`timescale 1ns / 1ps +// synthesis translate_on + +// turn off superfluous verilog processor warnings +// altera message_level Level1 +// altera message_off 10034 10035 10036 10037 10230 10240 10030 + +module nios_system_push_switches ( + // inputs: + address, + clk, + in_port, + reset_n, + + // outputs: + readdata + ) +; + + output [ 31: 0] readdata; + input [ 1: 0] address; + input clk; + input [ 2: 0] in_port; + input reset_n; + + wire clk_en; + wire [ 2: 0] data_in; + wire [ 2: 0] read_mux_out; + reg [ 31: 0] readdata; + assign clk_en = 1; + //s1, which is an e_avalon_slave + assign read_mux_out = {3 {(address == 0)}} & data_in; + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + readdata <= 0; + else if (clk_en) + readdata <= {32'b0 | read_mux_out}; + end + + + assign data_in = in_port; + +endmodule + diff --git a/nios_system/synthesis/submodules/nios_system_rsp_xbar_demux.sv b/nios_system/synthesis/submodules/nios_system_rsp_xbar_demux.sv new file mode 100644 index 0000000..f34687d --- /dev/null +++ b/nios_system/synthesis/submodules/nios_system_rsp_xbar_demux.sv @@ -0,0 +1,116 @@ +// (C) 2001-2013 Altera Corporation. All rights reserved. +// Your use of Altera Corporation's design tools, logic functions and other +// software and tools, and its AMPP partner logic functions, and any output +// files any of the foregoing (including device programming or simulation +// files), and any associated documentation or information are expressly subject +// to the terms and conditions of the Altera Program License Subscription +// Agreement, Altera MegaCore Function License Agreement, or other applicable +// license agreement, including, without limitation, that your use is for the +// sole purpose of programming logic devices manufactured by Altera and sold by +// Altera or its authorized distributors. Please refer to the applicable +// agreement for further details. + + +// $Id: //acds/rel/13.0sp1/ip/merlin/altera_merlin_demultiplexer/altera_merlin_demultiplexer.sv.terp#1 $ +// $Revision: #1 $ +// $Date: 2013/03/07 $ +// $Author: swbranch $ + +// ------------------------------------- +// Merlin Demultiplexer +// +// Asserts valid on the appropriate output +// given a one-hot channel signal. +// ------------------------------------- + +`timescale 1 ns / 1 ns + +// ------------------------------------------ +// Generation parameters: +// output_name: nios_system_rsp_xbar_demux +// ST_DATA_W: 96 +// ST_CHANNEL_W: 18 +// NUM_OUTPUTS: 2 +// VALID_WIDTH: 1 +// ------------------------------------------ + +//------------------------------------------ +// Message Supression Used +// QIS Warnings +// 15610 - Warning: Design contains x input pin(s) that do not drive logic +//------------------------------------------ + +module nios_system_rsp_xbar_demux +( + // ------------------- + // Sink + // ------------------- + input [1-1 : 0] sink_valid, + input [96-1 : 0] sink_data, // ST_DATA_W=96 + input [18-1 : 0] sink_channel, // ST_CHANNEL_W=18 + input sink_startofpacket, + input sink_endofpacket, + output sink_ready, + + // ------------------- + // Sources + // ------------------- + output reg src0_valid, + output reg [96-1 : 0] src0_data, // ST_DATA_W=96 + output reg [18-1 : 0] src0_channel, // ST_CHANNEL_W=18 + output reg src0_startofpacket, + output reg src0_endofpacket, + input src0_ready, + + output reg src1_valid, + output reg [96-1 : 0] src1_data, // ST_DATA_W=96 + output reg [18-1 : 0] src1_channel, // ST_CHANNEL_W=18 + output reg src1_startofpacket, + output reg src1_endofpacket, + input src1_ready, + + + // ------------------- + // Clock & Reset + // ------------------- + (*altera_attribute = "-name MESSAGE_DISABLE 15610" *) // setting message suppression on clk + input clk, + (*altera_attribute = "-name MESSAGE_DISABLE 15610" *) // setting message suppression on reset + input reset + +); + + localparam NUM_OUTPUTS = 2; + wire [NUM_OUTPUTS - 1 : 0] ready_vector; + + // ------------------- + // Demux + // ------------------- + always @* begin + src0_data = sink_data; + src0_startofpacket = sink_startofpacket; + src0_endofpacket = sink_endofpacket; + src0_channel = sink_channel >> NUM_OUTPUTS; + + src0_valid = sink_channel[0] && sink_valid; + + src1_data = sink_data; + src1_startofpacket = sink_startofpacket; + src1_endofpacket = sink_endofpacket; + src1_channel = sink_channel >> NUM_OUTPUTS; + + src1_valid = sink_channel[1] && sink_valid; + + end + + // ------------------- + // Backpressure + // ------------------- + assign ready_vector[0] = src0_ready; + assign ready_vector[1] = src1_ready; + + assign sink_ready = |(sink_channel & {{16{1'b0}},{ready_vector[NUM_OUTPUTS - 1 : 0]}}); + +endmodule + + diff --git a/nios_system/synthesis/submodules/nios_system_rsp_xbar_demux_002.sv b/nios_system/synthesis/submodules/nios_system_rsp_xbar_demux_002.sv new file mode 100644 index 0000000..d81d1d6 --- /dev/null +++ b/nios_system/synthesis/submodules/nios_system_rsp_xbar_demux_002.sv @@ -0,0 +1,101 @@ +// (C) 2001-2013 Altera Corporation. All rights reserved. +// Your use of Altera Corporation's design tools, logic functions and other +// software and tools, and its AMPP partner logic functions, and any output +// files any of the foregoing (including device programming or simulation +// files), and any associated documentation or information are expressly subject +// to the terms and conditions of the Altera Program License Subscription +// Agreement, Altera MegaCore Function License Agreement, or other applicable +// license agreement, including, without limitation, that your use is for the +// sole purpose of programming logic devices manufactured by Altera and sold by +// Altera or its authorized distributors. Please refer to the applicable +// agreement for further details. + + +// $Id: //acds/rel/13.0sp1/ip/merlin/altera_merlin_demultiplexer/altera_merlin_demultiplexer.sv.terp#1 $ +// $Revision: #1 $ +// $Date: 2013/03/07 $ +// $Author: swbranch $ + +// ------------------------------------- +// Merlin Demultiplexer +// +// Asserts valid on the appropriate output +// given a one-hot channel signal. +// ------------------------------------- + +`timescale 1 ns / 1 ns + +// ------------------------------------------ +// Generation parameters: +// output_name: nios_system_rsp_xbar_demux_002 +// ST_DATA_W: 96 +// ST_CHANNEL_W: 18 +// NUM_OUTPUTS: 1 +// VALID_WIDTH: 1 +// ------------------------------------------ + +//------------------------------------------ +// Message Supression Used +// QIS Warnings +// 15610 - Warning: Design contains x input pin(s) that do not drive logic +//------------------------------------------ + +module nios_system_rsp_xbar_demux_002 +( + // ------------------- + // Sink + // ------------------- + input [1-1 : 0] sink_valid, + input [96-1 : 0] sink_data, // ST_DATA_W=96 + input [18-1 : 0] sink_channel, // ST_CHANNEL_W=18 + input sink_startofpacket, + input sink_endofpacket, + output sink_ready, + + // ------------------- + // Sources + // ------------------- + output reg src0_valid, + output reg [96-1 : 0] src0_data, // ST_DATA_W=96 + output reg [18-1 : 0] src0_channel, // ST_CHANNEL_W=18 + output reg src0_startofpacket, + output reg src0_endofpacket, + input src0_ready, + + + // ------------------- + // Clock & Reset + // ------------------- + (*altera_attribute = "-name MESSAGE_DISABLE 15610" *) // setting message suppression on clk + input clk, + (*altera_attribute = "-name MESSAGE_DISABLE 15610" *) // setting message suppression on reset + input reset + +); + + localparam NUM_OUTPUTS = 1; + wire [NUM_OUTPUTS - 1 : 0] ready_vector; + + // ------------------- + // Demux + // ------------------- + always @* begin + src0_data = sink_data; + src0_startofpacket = sink_startofpacket; + src0_endofpacket = sink_endofpacket; + src0_channel = sink_channel >> NUM_OUTPUTS; + + src0_valid = sink_channel[0] && sink_valid; + + end + + // ------------------- + // Backpressure + // ------------------- + assign ready_vector[0] = src0_ready; + + assign sink_ready = |(sink_channel & {{17{1'b0}},{ready_vector[NUM_OUTPUTS - 1 : 0]}}); + +endmodule + + diff --git a/nios_system/synthesis/submodules/nios_system_rsp_xbar_demux_003.sv b/nios_system/synthesis/submodules/nios_system_rsp_xbar_demux_003.sv new file mode 100644 index 0000000..a362586 --- /dev/null +++ b/nios_system/synthesis/submodules/nios_system_rsp_xbar_demux_003.sv @@ -0,0 +1,101 @@ +// (C) 2001-2013 Altera Corporation. All rights reserved. +// Your use of Altera Corporation's design tools, logic functions and other +// software and tools, and its AMPP partner logic functions, and any output +// files any of the foregoing (including device programming or simulation +// files), and any associated documentation or information are expressly subject +// to the terms and conditions of the Altera Program License Subscription +// Agreement, Altera MegaCore Function License Agreement, or other applicable +// license agreement, including, without limitation, that your use is for the +// sole purpose of programming logic devices manufactured by Altera and sold by +// Altera or its authorized distributors. Please refer to the applicable +// agreement for further details. + + +// $Id: //acds/rel/13.0sp1/ip/merlin/altera_merlin_demultiplexer/altera_merlin_demultiplexer.sv.terp#1 $ +// $Revision: #1 $ +// $Date: 2013/03/07 $ +// $Author: swbranch $ + +// ------------------------------------- +// Merlin Demultiplexer +// +// Asserts valid on the appropriate output +// given a one-hot channel signal. +// ------------------------------------- + +`timescale 1 ns / 1 ns + +// ------------------------------------------ +// Generation parameters: +// output_name: nios_system_rsp_xbar_demux_003 +// ST_DATA_W: 96 +// ST_CHANNEL_W: 18 +// NUM_OUTPUTS: 1 +// VALID_WIDTH: 1 +// ------------------------------------------ + +//------------------------------------------ +// Message Supression Used +// QIS Warnings +// 15610 - Warning: Design contains x input pin(s) that do not drive logic +//------------------------------------------ + +module nios_system_rsp_xbar_demux_003 +( + // ------------------- + // Sink + // ------------------- + input [1-1 : 0] sink_valid, + input [96-1 : 0] sink_data, // ST_DATA_W=96 + input [18-1 : 0] sink_channel, // ST_CHANNEL_W=18 + input sink_startofpacket, + input sink_endofpacket, + output sink_ready, + + // ------------------- + // Sources + // ------------------- + output reg src0_valid, + output reg [96-1 : 0] src0_data, // ST_DATA_W=96 + output reg [18-1 : 0] src0_channel, // ST_CHANNEL_W=18 + output reg src0_startofpacket, + output reg src0_endofpacket, + input src0_ready, + + + // ------------------- + // Clock & Reset + // ------------------- + (*altera_attribute = "-name MESSAGE_DISABLE 15610" *) // setting message suppression on clk + input clk, + (*altera_attribute = "-name MESSAGE_DISABLE 15610" *) // setting message suppression on reset + input reset + +); + + localparam NUM_OUTPUTS = 1; + wire [NUM_OUTPUTS - 1 : 0] ready_vector; + + // ------------------- + // Demux + // ------------------- + always @* begin + src0_data = sink_data; + src0_startofpacket = sink_startofpacket; + src0_endofpacket = sink_endofpacket; + src0_channel = sink_channel >> NUM_OUTPUTS; + + src0_valid = sink_channel[0] && sink_valid; + + end + + // ------------------- + // Backpressure + // ------------------- + assign ready_vector[0] = src0_ready; + + assign sink_ready = |(sink_channel & {{17{1'b0}},{ready_vector[NUM_OUTPUTS - 1 : 0]}}); + +endmodule + + diff --git a/nios_system/synthesis/submodules/nios_system_rsp_xbar_mux.sv b/nios_system/synthesis/submodules/nios_system_rsp_xbar_mux.sv new file mode 100644 index 0000000..a829592 --- /dev/null +++ b/nios_system/synthesis/submodules/nios_system_rsp_xbar_mux.sv @@ -0,0 +1,331 @@ +// (C) 2001-2013 Altera Corporation. All rights reserved. +// Your use of Altera Corporation's design tools, logic functions and other +// software and tools, and its AMPP partner logic functions, and any output +// files any of the foregoing (including device programming or simulation +// files), and any associated documentation or information are expressly subject +// to the terms and conditions of the Altera Program License Subscription +// Agreement, Altera MegaCore Function License Agreement, or other applicable +// license agreement, including, without limitation, that your use is for the +// sole purpose of programming logic devices manufactured by Altera and sold by +// Altera or its authorized distributors. Please refer to the applicable +// agreement for further details. + + +// $Id: //acds/rel/13.0sp1/ip/merlin/altera_merlin_multiplexer/altera_merlin_multiplexer.sv.terp#1 $ +// $Revision: #1 $ +// $Date: 2013/03/07 $ +// $Author: swbranch $ + +// ------------------------------------------ +// Merlin Multiplexer +// ------------------------------------------ + +`timescale 1 ns / 1 ns + + +// ------------------------------------------ +// Generation parameters: +// output_name: nios_system_rsp_xbar_mux +// NUM_INPUTS: 2 +// ARBITRATION_SHARES: 1 1 +// ARBITRATION_SCHEME "no-arb" +// PIPELINE_ARB: 0 +// PKT_TRANS_LOCK: 59 (arbitration locking enabled) +// ST_DATA_W: 96 +// ST_CHANNEL_W: 18 +// ------------------------------------------ + +module nios_system_rsp_xbar_mux +( + // ---------------------- + // Sinks + // ---------------------- + input sink0_valid, + input [96-1 : 0] sink0_data, + input [18-1: 0] sink0_channel, + input sink0_startofpacket, + input sink0_endofpacket, + output sink0_ready, + + input sink1_valid, + input [96-1 : 0] sink1_data, + input [18-1: 0] sink1_channel, + input sink1_startofpacket, + input sink1_endofpacket, + output sink1_ready, + + + // ---------------------- + // Source + // ---------------------- + output src_valid, + output [96-1 : 0] src_data, + output [18-1 : 0] src_channel, + output src_startofpacket, + output src_endofpacket, + input src_ready, + + // ---------------------- + // Clock & Reset + // ---------------------- + input clk, + input reset +); + localparam PAYLOAD_W = 96 + 18 + 2; + localparam NUM_INPUTS = 2; + localparam SHARE_COUNTER_W = 1; + localparam PIPELINE_ARB = 0; + localparam ST_DATA_W = 96; + localparam ST_CHANNEL_W = 18; + localparam PKT_TRANS_LOCK = 59; + + // ------------------------------------------ + // Signals + // ------------------------------------------ + wire [NUM_INPUTS - 1 : 0] request; + wire [NUM_INPUTS - 1 : 0] valid; + wire [NUM_INPUTS - 1 : 0] grant; + wire [NUM_INPUTS - 1 : 0] next_grant; + reg [NUM_INPUTS - 1 : 0] saved_grant; + reg [PAYLOAD_W - 1 : 0] src_payload; + wire last_cycle; + reg packet_in_progress; + reg update_grant; + + wire [PAYLOAD_W - 1 : 0] sink0_payload; + wire [PAYLOAD_W - 1 : 0] sink1_payload; + + assign valid[0] = sink0_valid; + assign valid[1] = sink1_valid; + + + // ------------------------------------------ + // ------------------------------------------ + // Grant Logic & Updates + // ------------------------------------------ + // ------------------------------------------ + reg [NUM_INPUTS - 1 : 0] lock; + always @* begin + lock[0] = sink0_data[59]; + lock[1] = sink1_data[59]; + end + + assign last_cycle = src_valid & src_ready & src_endofpacket & ~(|(lock & grant)); + + // ------------------------------------------ + // We're working on a packet at any time valid is high, except + // when this is the endofpacket. + // ------------------------------------------ + always @(posedge clk or posedge reset) begin + if (reset) begin + packet_in_progress <= 1'b0; + end + else begin + if (src_valid) + packet_in_progress <= 1'b1; + if (last_cycle) + packet_in_progress <= 1'b0; + end + end + + + // ------------------------------------------ + // Shares + // + // Special case: all-equal shares _should_ be optimized into assigning a + // constant to next_grant_share. + // Special case: all-1's shares _should_ result in the share counter + // being optimized away. + // ------------------------------------------ + // Input | arb shares | counter load value + // 0 | 1 | 0 + // 1 | 1 | 0 + wire [SHARE_COUNTER_W - 1 : 0] share_0 = 1'd0; + wire [SHARE_COUNTER_W - 1 : 0] share_1 = 1'd0; + + // ------------------------------------------ + // Choose the share value corresponding to the grant. + // ------------------------------------------ + reg [SHARE_COUNTER_W - 1 : 0] next_grant_share; + always @* begin + next_grant_share = + share_0 & { SHARE_COUNTER_W {next_grant[0]} } | + share_1 & { SHARE_COUNTER_W {next_grant[1]} }; + end + + // ------------------------------------------ + // Flag to indicate first packet of an arb sequence. + // ------------------------------------------ + wire grant_changed = ~packet_in_progress && !(saved_grant & valid); + reg first_packet_r; + wire first_packet = grant_changed | first_packet_r; + always @(posedge clk or posedge reset) begin + if (reset) begin + first_packet_r <= 1'b0; + end + else begin + if (update_grant) + first_packet_r <= 1'b1; + else if (last_cycle) + first_packet_r <= 1'b0; + else if (grant_changed) + first_packet_r <= 1'b1; + end + end + + // ------------------------------------------ + // Compute the next share-count value. + // ------------------------------------------ + reg [SHARE_COUNTER_W - 1 : 0] p1_share_count; + reg [SHARE_COUNTER_W - 1 : 0] share_count; + reg share_count_zero_flag; + + always @* begin + if (first_packet) begin + p1_share_count = next_grant_share; + end + else begin + // Update the counter, but don't decrement below 0. + p1_share_count = share_count_zero_flag ? '0 : share_count - 1'b1; + end + end + + // ------------------------------------------ + // Update the share counter and share-counter=zero flag. + // ------------------------------------------ + always @(posedge clk or posedge reset) begin + if (reset) begin + share_count <= '0; + share_count_zero_flag <= 1'b1; + end + else begin + if (last_cycle) begin + share_count <= p1_share_count; + share_count_zero_flag <= (p1_share_count == '0); + end + end + end + + // ------------------------------------------ + // For each input, maintain a final_packet signal which goes active for the + // last packet of a full-share packet sequence. Example: if I have 4 + // shares and I'm continuously requesting, final_packet is active in the + // 4th packet. + // ------------------------------------------ + wire final_packet_0 = 1'b1; + + wire final_packet_1 = 1'b1; + + + // ------------------------------------------ + // Concatenate all final_packet signals (wire or reg) into a handy vector. + // ------------------------------------------ + wire [NUM_INPUTS - 1 : 0] final_packet = { + final_packet_1, + final_packet_0 + }; + + // ------------------------------------------ + // ------------------------------------------ + wire p1_done = |(final_packet & grant); + + // ------------------------------------------ + // Flag for the first cycle of packets within an + // arb sequence + // ------------------------------------------ + reg first_cycle; + always @(posedge clk, posedge reset) begin + if (reset) + first_cycle <= 0; + else + first_cycle <= last_cycle && ~p1_done; + end + + + always @* begin + update_grant = 0; + + // ------------------------------------------ + // No arbitration pipeline, update grant whenever + // the current arb winner has consumed all shares, + // or all requests are low + // ------------------------------------------ + update_grant = (last_cycle && p1_done) || (first_cycle && !valid); + update_grant = last_cycle; + end + + wire save_grant; + assign save_grant = 1; + assign grant = next_grant; + + always @(posedge clk, posedge reset) begin + if (reset) + saved_grant <= '0; + else if (save_grant) + saved_grant <= next_grant; + end + + // ------------------------------------------ + // ------------------------------------------ + // Arbitrator + // ------------------------------------------ + // ------------------------------------------ + + // ------------------------------------------ + // Create a request vector that stays high during + // the packet for unpipelined arbitration. + // + // The pipelined arbitration scheme does not require + // request to be held high during the packet. + // ------------------------------------------ + assign request = valid; + + + altera_merlin_arbitrator + #( + .NUM_REQUESTERS(NUM_INPUTS), + .SCHEME ("no-arb"), + .PIPELINE (0) + ) arb ( + .clk (clk), + .reset (reset), + .request (request), + .grant (next_grant), + .save_top_priority (src_valid), + .increment_top_priority (update_grant) + ); + + // ------------------------------------------ + // ------------------------------------------ + // Mux + // + // Implemented as a sum of products. + // ------------------------------------------ + // ------------------------------------------ + + assign sink0_ready = src_ready && grant[0]; + assign sink1_ready = src_ready && grant[1]; + + assign src_valid = |(grant & valid); + + always @* begin + src_payload = + sink0_payload & {PAYLOAD_W {grant[0]} } | + sink1_payload & {PAYLOAD_W {grant[1]} }; + end + + // ------------------------------------------ + // Mux Payload Mapping + // ------------------------------------------ + + assign sink0_payload = {sink0_channel,sink0_data, + sink0_startofpacket,sink0_endofpacket}; + assign sink1_payload = {sink1_channel,sink1_data, + sink1_startofpacket,sink1_endofpacket}; + + assign {src_channel,src_data,src_startofpacket,src_endofpacket} = src_payload; + +endmodule + + + diff --git a/nios_system/synthesis/submodules/nios_system_rsp_xbar_mux_001.sv b/nios_system/synthesis/submodules/nios_system_rsp_xbar_mux_001.sv new file mode 100644 index 0000000..ab346d9 --- /dev/null +++ b/nios_system/synthesis/submodules/nios_system_rsp_xbar_mux_001.sv @@ -0,0 +1,651 @@ +// (C) 2001-2013 Altera Corporation. All rights reserved. +// Your use of Altera Corporation's design tools, logic functions and other +// software and tools, and its AMPP partner logic functions, and any output +// files any of the foregoing (including device programming or simulation +// files), and any associated documentation or information are expressly subject +// to the terms and conditions of the Altera Program License Subscription +// Agreement, Altera MegaCore Function License Agreement, or other applicable +// license agreement, including, without limitation, that your use is for the +// sole purpose of programming logic devices manufactured by Altera and sold by +// Altera or its authorized distributors. Please refer to the applicable +// agreement for further details. + + +// $Id: //acds/rel/13.0sp1/ip/merlin/altera_merlin_multiplexer/altera_merlin_multiplexer.sv.terp#1 $ +// $Revision: #1 $ +// $Date: 2013/03/07 $ +// $Author: swbranch $ + +// ------------------------------------------ +// Merlin Multiplexer +// ------------------------------------------ + +`timescale 1 ns / 1 ns + + +// ------------------------------------------ +// Generation parameters: +// output_name: nios_system_rsp_xbar_mux_001 +// NUM_INPUTS: 18 +// ARBITRATION_SHARES: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +// ARBITRATION_SCHEME "no-arb" +// PIPELINE_ARB: 0 +// PKT_TRANS_LOCK: 59 (arbitration locking enabled) +// ST_DATA_W: 96 +// ST_CHANNEL_W: 18 +// ------------------------------------------ + +module nios_system_rsp_xbar_mux_001 +( + // ---------------------- + // Sinks + // ---------------------- + input sink0_valid, + input [96-1 : 0] sink0_data, + input [18-1: 0] sink0_channel, + input sink0_startofpacket, + input sink0_endofpacket, + output sink0_ready, + + input sink1_valid, + input [96-1 : 0] sink1_data, + input [18-1: 0] sink1_channel, + input sink1_startofpacket, + input sink1_endofpacket, + output sink1_ready, + + input sink2_valid, + input [96-1 : 0] sink2_data, + input [18-1: 0] sink2_channel, + input sink2_startofpacket, + input sink2_endofpacket, + output sink2_ready, + + input sink3_valid, + input [96-1 : 0] sink3_data, + input [18-1: 0] sink3_channel, + input sink3_startofpacket, + input sink3_endofpacket, + output sink3_ready, + + input sink4_valid, + input [96-1 : 0] sink4_data, + input [18-1: 0] sink4_channel, + input sink4_startofpacket, + input sink4_endofpacket, + output sink4_ready, + + input sink5_valid, + input [96-1 : 0] sink5_data, + input [18-1: 0] sink5_channel, + input sink5_startofpacket, + input sink5_endofpacket, + output sink5_ready, + + input sink6_valid, + input [96-1 : 0] sink6_data, + input [18-1: 0] sink6_channel, + input sink6_startofpacket, + input sink6_endofpacket, + output sink6_ready, + + input sink7_valid, + input [96-1 : 0] sink7_data, + input [18-1: 0] sink7_channel, + input sink7_startofpacket, + input sink7_endofpacket, + output sink7_ready, + + input sink8_valid, + input [96-1 : 0] sink8_data, + input [18-1: 0] sink8_channel, + input sink8_startofpacket, + input sink8_endofpacket, + output sink8_ready, + + input sink9_valid, + input [96-1 : 0] sink9_data, + input [18-1: 0] sink9_channel, + input sink9_startofpacket, + input sink9_endofpacket, + output sink9_ready, + + input sink10_valid, + input [96-1 : 0] sink10_data, + input [18-1: 0] sink10_channel, + input sink10_startofpacket, + input sink10_endofpacket, + output sink10_ready, + + input sink11_valid, + input [96-1 : 0] sink11_data, + input [18-1: 0] sink11_channel, + input sink11_startofpacket, + input sink11_endofpacket, + output sink11_ready, + + input sink12_valid, + input [96-1 : 0] sink12_data, + input [18-1: 0] sink12_channel, + input sink12_startofpacket, + input sink12_endofpacket, + output sink12_ready, + + input sink13_valid, + input [96-1 : 0] sink13_data, + input [18-1: 0] sink13_channel, + input sink13_startofpacket, + input sink13_endofpacket, + output sink13_ready, + + input sink14_valid, + input [96-1 : 0] sink14_data, + input [18-1: 0] sink14_channel, + input sink14_startofpacket, + input sink14_endofpacket, + output sink14_ready, + + input sink15_valid, + input [96-1 : 0] sink15_data, + input [18-1: 0] sink15_channel, + input sink15_startofpacket, + input sink15_endofpacket, + output sink15_ready, + + input sink16_valid, + input [96-1 : 0] sink16_data, + input [18-1: 0] sink16_channel, + input sink16_startofpacket, + input sink16_endofpacket, + output sink16_ready, + + input sink17_valid, + input [96-1 : 0] sink17_data, + input [18-1: 0] sink17_channel, + input sink17_startofpacket, + input sink17_endofpacket, + output sink17_ready, + + + // ---------------------- + // Source + // ---------------------- + output src_valid, + output [96-1 : 0] src_data, + output [18-1 : 0] src_channel, + output src_startofpacket, + output src_endofpacket, + input src_ready, + + // ---------------------- + // Clock & Reset + // ---------------------- + input clk, + input reset +); + localparam PAYLOAD_W = 96 + 18 + 2; + localparam NUM_INPUTS = 18; + localparam SHARE_COUNTER_W = 1; + localparam PIPELINE_ARB = 0; + localparam ST_DATA_W = 96; + localparam ST_CHANNEL_W = 18; + localparam PKT_TRANS_LOCK = 59; + + // ------------------------------------------ + // Signals + // ------------------------------------------ + wire [NUM_INPUTS - 1 : 0] request; + wire [NUM_INPUTS - 1 : 0] valid; + wire [NUM_INPUTS - 1 : 0] grant; + wire [NUM_INPUTS - 1 : 0] next_grant; + reg [NUM_INPUTS - 1 : 0] saved_grant; + reg [PAYLOAD_W - 1 : 0] src_payload; + wire last_cycle; + reg packet_in_progress; + reg update_grant; + + wire [PAYLOAD_W - 1 : 0] sink0_payload; + wire [PAYLOAD_W - 1 : 0] sink1_payload; + wire [PAYLOAD_W - 1 : 0] sink2_payload; + wire [PAYLOAD_W - 1 : 0] sink3_payload; + wire [PAYLOAD_W - 1 : 0] sink4_payload; + wire [PAYLOAD_W - 1 : 0] sink5_payload; + wire [PAYLOAD_W - 1 : 0] sink6_payload; + wire [PAYLOAD_W - 1 : 0] sink7_payload; + wire [PAYLOAD_W - 1 : 0] sink8_payload; + wire [PAYLOAD_W - 1 : 0] sink9_payload; + wire [PAYLOAD_W - 1 : 0] sink10_payload; + wire [PAYLOAD_W - 1 : 0] sink11_payload; + wire [PAYLOAD_W - 1 : 0] sink12_payload; + wire [PAYLOAD_W - 1 : 0] sink13_payload; + wire [PAYLOAD_W - 1 : 0] sink14_payload; + wire [PAYLOAD_W - 1 : 0] sink15_payload; + wire [PAYLOAD_W - 1 : 0] sink16_payload; + wire [PAYLOAD_W - 1 : 0] sink17_payload; + + assign valid[0] = sink0_valid; + assign valid[1] = sink1_valid; + assign valid[2] = sink2_valid; + assign valid[3] = sink3_valid; + assign valid[4] = sink4_valid; + assign valid[5] = sink5_valid; + assign valid[6] = sink6_valid; + assign valid[7] = sink7_valid; + assign valid[8] = sink8_valid; + assign valid[9] = sink9_valid; + assign valid[10] = sink10_valid; + assign valid[11] = sink11_valid; + assign valid[12] = sink12_valid; + assign valid[13] = sink13_valid; + assign valid[14] = sink14_valid; + assign valid[15] = sink15_valid; + assign valid[16] = sink16_valid; + assign valid[17] = sink17_valid; + + + // ------------------------------------------ + // ------------------------------------------ + // Grant Logic & Updates + // ------------------------------------------ + // ------------------------------------------ + reg [NUM_INPUTS - 1 : 0] lock; + always @* begin + lock[0] = sink0_data[59]; + lock[1] = sink1_data[59]; + lock[2] = sink2_data[59]; + lock[3] = sink3_data[59]; + lock[4] = sink4_data[59]; + lock[5] = sink5_data[59]; + lock[6] = sink6_data[59]; + lock[7] = sink7_data[59]; + lock[8] = sink8_data[59]; + lock[9] = sink9_data[59]; + lock[10] = sink10_data[59]; + lock[11] = sink11_data[59]; + lock[12] = sink12_data[59]; + lock[13] = sink13_data[59]; + lock[14] = sink14_data[59]; + lock[15] = sink15_data[59]; + lock[16] = sink16_data[59]; + lock[17] = sink17_data[59]; + end + + assign last_cycle = src_valid & src_ready & src_endofpacket & ~(|(lock & grant)); + + // ------------------------------------------ + // We're working on a packet at any time valid is high, except + // when this is the endofpacket. + // ------------------------------------------ + always @(posedge clk or posedge reset) begin + if (reset) begin + packet_in_progress <= 1'b0; + end + else begin + if (src_valid) + packet_in_progress <= 1'b1; + if (last_cycle) + packet_in_progress <= 1'b0; + end + end + + + // ------------------------------------------ + // Shares + // + // Special case: all-equal shares _should_ be optimized into assigning a + // constant to next_grant_share. + // Special case: all-1's shares _should_ result in the share counter + // being optimized away. + // ------------------------------------------ + // Input | arb shares | counter load value + // 0 | 1 | 0 + // 1 | 1 | 0 + // 2 | 1 | 0 + // 3 | 1 | 0 + // 4 | 1 | 0 + // 5 | 1 | 0 + // 6 | 1 | 0 + // 7 | 1 | 0 + // 8 | 1 | 0 + // 9 | 1 | 0 + // 10 | 1 | 0 + // 11 | 1 | 0 + // 12 | 1 | 0 + // 13 | 1 | 0 + // 14 | 1 | 0 + // 15 | 1 | 0 + // 16 | 1 | 0 + // 17 | 1 | 0 + wire [SHARE_COUNTER_W - 1 : 0] share_0 = 1'd0; + wire [SHARE_COUNTER_W - 1 : 0] share_1 = 1'd0; + wire [SHARE_COUNTER_W - 1 : 0] share_2 = 1'd0; + wire [SHARE_COUNTER_W - 1 : 0] share_3 = 1'd0; + wire [SHARE_COUNTER_W - 1 : 0] share_4 = 1'd0; + wire [SHARE_COUNTER_W - 1 : 0] share_5 = 1'd0; + wire [SHARE_COUNTER_W - 1 : 0] share_6 = 1'd0; + wire [SHARE_COUNTER_W - 1 : 0] share_7 = 1'd0; + wire [SHARE_COUNTER_W - 1 : 0] share_8 = 1'd0; + wire [SHARE_COUNTER_W - 1 : 0] share_9 = 1'd0; + wire [SHARE_COUNTER_W - 1 : 0] share_10 = 1'd0; + wire [SHARE_COUNTER_W - 1 : 0] share_11 = 1'd0; + wire [SHARE_COUNTER_W - 1 : 0] share_12 = 1'd0; + wire [SHARE_COUNTER_W - 1 : 0] share_13 = 1'd0; + wire [SHARE_COUNTER_W - 1 : 0] share_14 = 1'd0; + wire [SHARE_COUNTER_W - 1 : 0] share_15 = 1'd0; + wire [SHARE_COUNTER_W - 1 : 0] share_16 = 1'd0; + wire [SHARE_COUNTER_W - 1 : 0] share_17 = 1'd0; + + // ------------------------------------------ + // Choose the share value corresponding to the grant. + // ------------------------------------------ + reg [SHARE_COUNTER_W - 1 : 0] next_grant_share; + always @* begin + next_grant_share = + share_0 & { SHARE_COUNTER_W {next_grant[0]} } | + share_1 & { SHARE_COUNTER_W {next_grant[1]} } | + share_2 & { SHARE_COUNTER_W {next_grant[2]} } | + share_3 & { SHARE_COUNTER_W {next_grant[3]} } | + share_4 & { SHARE_COUNTER_W {next_grant[4]} } | + share_5 & { SHARE_COUNTER_W {next_grant[5]} } | + share_6 & { SHARE_COUNTER_W {next_grant[6]} } | + share_7 & { SHARE_COUNTER_W {next_grant[7]} } | + share_8 & { SHARE_COUNTER_W {next_grant[8]} } | + share_9 & { SHARE_COUNTER_W {next_grant[9]} } | + share_10 & { SHARE_COUNTER_W {next_grant[10]} } | + share_11 & { SHARE_COUNTER_W {next_grant[11]} } | + share_12 & { SHARE_COUNTER_W {next_grant[12]} } | + share_13 & { SHARE_COUNTER_W {next_grant[13]} } | + share_14 & { SHARE_COUNTER_W {next_grant[14]} } | + share_15 & { SHARE_COUNTER_W {next_grant[15]} } | + share_16 & { SHARE_COUNTER_W {next_grant[16]} } | + share_17 & { SHARE_COUNTER_W {next_grant[17]} }; + end + + // ------------------------------------------ + // Flag to indicate first packet of an arb sequence. + // ------------------------------------------ + wire grant_changed = ~packet_in_progress && !(saved_grant & valid); + reg first_packet_r; + wire first_packet = grant_changed | first_packet_r; + always @(posedge clk or posedge reset) begin + if (reset) begin + first_packet_r <= 1'b0; + end + else begin + if (update_grant) + first_packet_r <= 1'b1; + else if (last_cycle) + first_packet_r <= 1'b0; + else if (grant_changed) + first_packet_r <= 1'b1; + end + end + + // ------------------------------------------ + // Compute the next share-count value. + // ------------------------------------------ + reg [SHARE_COUNTER_W - 1 : 0] p1_share_count; + reg [SHARE_COUNTER_W - 1 : 0] share_count; + reg share_count_zero_flag; + + always @* begin + if (first_packet) begin + p1_share_count = next_grant_share; + end + else begin + // Update the counter, but don't decrement below 0. + p1_share_count = share_count_zero_flag ? '0 : share_count - 1'b1; + end + end + + // ------------------------------------------ + // Update the share counter and share-counter=zero flag. + // ------------------------------------------ + always @(posedge clk or posedge reset) begin + if (reset) begin + share_count <= '0; + share_count_zero_flag <= 1'b1; + end + else begin + if (last_cycle) begin + share_count <= p1_share_count; + share_count_zero_flag <= (p1_share_count == '0); + end + end + end + + // ------------------------------------------ + // For each input, maintain a final_packet signal which goes active for the + // last packet of a full-share packet sequence. Example: if I have 4 + // shares and I'm continuously requesting, final_packet is active in the + // 4th packet. + // ------------------------------------------ + wire final_packet_0 = 1'b1; + + wire final_packet_1 = 1'b1; + + wire final_packet_2 = 1'b1; + + wire final_packet_3 = 1'b1; + + wire final_packet_4 = 1'b1; + + wire final_packet_5 = 1'b1; + + wire final_packet_6 = 1'b1; + + wire final_packet_7 = 1'b1; + + wire final_packet_8 = 1'b1; + + wire final_packet_9 = 1'b1; + + wire final_packet_10 = 1'b1; + + wire final_packet_11 = 1'b1; + + wire final_packet_12 = 1'b1; + + wire final_packet_13 = 1'b1; + + wire final_packet_14 = 1'b1; + + wire final_packet_15 = 1'b1; + + wire final_packet_16 = 1'b1; + + wire final_packet_17 = 1'b1; + + + // ------------------------------------------ + // Concatenate all final_packet signals (wire or reg) into a handy vector. + // ------------------------------------------ + wire [NUM_INPUTS - 1 : 0] final_packet = { + final_packet_17, + final_packet_16, + final_packet_15, + final_packet_14, + final_packet_13, + final_packet_12, + final_packet_11, + final_packet_10, + final_packet_9, + final_packet_8, + final_packet_7, + final_packet_6, + final_packet_5, + final_packet_4, + final_packet_3, + final_packet_2, + final_packet_1, + final_packet_0 + }; + + // ------------------------------------------ + // ------------------------------------------ + wire p1_done = |(final_packet & grant); + + // ------------------------------------------ + // Flag for the first cycle of packets within an + // arb sequence + // ------------------------------------------ + reg first_cycle; + always @(posedge clk, posedge reset) begin + if (reset) + first_cycle <= 0; + else + first_cycle <= last_cycle && ~p1_done; + end + + + always @* begin + update_grant = 0; + + // ------------------------------------------ + // No arbitration pipeline, update grant whenever + // the current arb winner has consumed all shares, + // or all requests are low + // ------------------------------------------ + update_grant = (last_cycle && p1_done) || (first_cycle && !valid); + update_grant = last_cycle; + end + + wire save_grant; + assign save_grant = 1; + assign grant = next_grant; + + always @(posedge clk, posedge reset) begin + if (reset) + saved_grant <= '0; + else if (save_grant) + saved_grant <= next_grant; + end + + // ------------------------------------------ + // ------------------------------------------ + // Arbitrator + // ------------------------------------------ + // ------------------------------------------ + + // ------------------------------------------ + // Create a request vector that stays high during + // the packet for unpipelined arbitration. + // + // The pipelined arbitration scheme does not require + // request to be held high during the packet. + // ------------------------------------------ + assign request = valid; + + + altera_merlin_arbitrator + #( + .NUM_REQUESTERS(NUM_INPUTS), + .SCHEME ("no-arb"), + .PIPELINE (0) + ) arb ( + .clk (clk), + .reset (reset), + .request (request), + .grant (next_grant), + .save_top_priority (src_valid), + .increment_top_priority (update_grant) + ); + + // ------------------------------------------ + // ------------------------------------------ + // Mux + // + // Implemented as a sum of products. + // ------------------------------------------ + // ------------------------------------------ + + assign sink0_ready = src_ready && grant[0]; + assign sink1_ready = src_ready && grant[1]; + assign sink2_ready = src_ready && grant[2]; + assign sink3_ready = src_ready && grant[3]; + assign sink4_ready = src_ready && grant[4]; + assign sink5_ready = src_ready && grant[5]; + assign sink6_ready = src_ready && grant[6]; + assign sink7_ready = src_ready && grant[7]; + assign sink8_ready = src_ready && grant[8]; + assign sink9_ready = src_ready && grant[9]; + assign sink10_ready = src_ready && grant[10]; + assign sink11_ready = src_ready && grant[11]; + assign sink12_ready = src_ready && grant[12]; + assign sink13_ready = src_ready && grant[13]; + assign sink14_ready = src_ready && grant[14]; + assign sink15_ready = src_ready && grant[15]; + assign sink16_ready = src_ready && grant[16]; + assign sink17_ready = src_ready && grant[17]; + + assign src_valid = |(grant & valid); + + always @* begin + src_payload = + sink0_payload & {PAYLOAD_W {grant[0]} } | + sink1_payload & {PAYLOAD_W {grant[1]} } | + sink2_payload & {PAYLOAD_W {grant[2]} } | + sink3_payload & {PAYLOAD_W {grant[3]} } | + sink4_payload & {PAYLOAD_W {grant[4]} } | + sink5_payload & {PAYLOAD_W {grant[5]} } | + sink6_payload & {PAYLOAD_W {grant[6]} } | + sink7_payload & {PAYLOAD_W {grant[7]} } | + sink8_payload & {PAYLOAD_W {grant[8]} } | + sink9_payload & {PAYLOAD_W {grant[9]} } | + sink10_payload & {PAYLOAD_W {grant[10]} } | + sink11_payload & {PAYLOAD_W {grant[11]} } | + sink12_payload & {PAYLOAD_W {grant[12]} } | + sink13_payload & {PAYLOAD_W {grant[13]} } | + sink14_payload & {PAYLOAD_W {grant[14]} } | + sink15_payload & {PAYLOAD_W {grant[15]} } | + sink16_payload & {PAYLOAD_W {grant[16]} } | + sink17_payload & {PAYLOAD_W {grant[17]} }; + end + + // ------------------------------------------ + // Mux Payload Mapping + // ------------------------------------------ + + assign sink0_payload = {sink0_channel,sink0_data, + sink0_startofpacket,sink0_endofpacket}; + assign sink1_payload = {sink1_channel,sink1_data, + sink1_startofpacket,sink1_endofpacket}; + assign sink2_payload = {sink2_channel,sink2_data, + sink2_startofpacket,sink2_endofpacket}; + assign sink3_payload = {sink3_channel,sink3_data, + sink3_startofpacket,sink3_endofpacket}; + assign sink4_payload = {sink4_channel,sink4_data, + sink4_startofpacket,sink4_endofpacket}; + assign sink5_payload = {sink5_channel,sink5_data, + sink5_startofpacket,sink5_endofpacket}; + assign sink6_payload = {sink6_channel,sink6_data, + sink6_startofpacket,sink6_endofpacket}; + assign sink7_payload = {sink7_channel,sink7_data, + sink7_startofpacket,sink7_endofpacket}; + assign sink8_payload = {sink8_channel,sink8_data, + sink8_startofpacket,sink8_endofpacket}; + assign sink9_payload = {sink9_channel,sink9_data, + sink9_startofpacket,sink9_endofpacket}; + assign sink10_payload = {sink10_channel,sink10_data, + sink10_startofpacket,sink10_endofpacket}; + assign sink11_payload = {sink11_channel,sink11_data, + sink11_startofpacket,sink11_endofpacket}; + assign sink12_payload = {sink12_channel,sink12_data, + sink12_startofpacket,sink12_endofpacket}; + assign sink13_payload = {sink13_channel,sink13_data, + sink13_startofpacket,sink13_endofpacket}; + assign sink14_payload = {sink14_channel,sink14_data, + sink14_startofpacket,sink14_endofpacket}; + assign sink15_payload = {sink15_channel,sink15_data, + sink15_startofpacket,sink15_endofpacket}; + assign sink16_payload = {sink16_channel,sink16_data, + sink16_startofpacket,sink16_endofpacket}; + assign sink17_payload = {sink17_channel,sink17_data, + sink17_startofpacket,sink17_endofpacket}; + + assign {src_channel,src_data,src_startofpacket,src_endofpacket} = src_payload; + +endmodule + + + diff --git a/nios_system/synthesis/submodules/nios_system_switches.v b/nios_system/synthesis/submodules/nios_system_switches.v new file mode 100644 index 0000000..5121337 --- /dev/null +++ b/nios_system/synthesis/submodules/nios_system_switches.v @@ -0,0 +1,58 @@ +//Legal Notice: (C)2016 Altera Corporation. All rights reserved. Your +//use of Altera Corporation's design tools, logic functions and other +//software and tools, and its AMPP partner logic functions, and any +//output files any of the foregoing (including device programming or +//simulation files), and any associated documentation or information are +//expressly subject to the terms and conditions of the Altera Program +//License Subscription Agreement or other applicable license agreement, +//including, without limitation, that your use is for the sole purpose +//of programming logic devices manufactured by Altera and sold by Altera +//or its authorized distributors. Please refer to the applicable +//agreement for further details. + +// synthesis translate_off +`timescale 1ns / 1ps +// synthesis translate_on + +// turn off superfluous verilog processor warnings +// altera message_level Level1 +// altera message_off 10034 10035 10036 10037 10230 10240 10030 + +module nios_system_switches ( + // inputs: + address, + clk, + in_port, + reset_n, + + // outputs: + readdata + ) +; + + output [ 31: 0] readdata; + input [ 1: 0] address; + input clk; + input [ 17: 0] in_port; + input reset_n; + + wire clk_en; + wire [ 17: 0] data_in; + wire [ 17: 0] read_mux_out; + reg [ 31: 0] readdata; + assign clk_en = 1; + //s1, which is an e_avalon_slave + assign read_mux_out = {18 {(address == 0)}} & data_in; + always @(posedge clk or negedge reset_n) + begin + if (reset_n == 0) + readdata <= 0; + else if (clk_en) + readdata <= {32'b0 | read_mux_out}; + end + + + assign data_in = in_port; + +endmodule + diff --git a/nios_system_generation.rpt b/nios_system_generation.rpt new file mode 100644 index 0000000..512cd5a --- /dev/null +++ b/nios_system_generation.rpt @@ -0,0 +1,154 @@ +Info: Starting: Create block symbol file (.bsf) +Info: ip-generate --project-directory=C:/Users/takayun/Desktop/qsys_tutorial/ --output-directory=C:/Users/takayun/Desktop/qsys_tutorial/nios_system/ --report-file=bsf:C:/Users/takayun/Desktop/qsys_tutorial/nios_system.bsf --system-info=DEVICE_FAMILY="Cyclone IV E" --system-info=DEVICE=EP4CE115F29C7 --system-info=DEVICE_SPEEDGRADE=7 --component-file=C:/Users/takayun/Desktop/qsys_tutorial/nios_system.qsys +Progress: Loading qsys_tutorial/nios_system.qsys +Progress: Reading input file +Progress: Adding clk_0 [clock_source 13.0] +Progress: Parameterizing module clk_0 +Progress: Adding nios2_processor [altera_nios2_qsys 13.0] +Progress: Parameterizing module nios2_processor +Progress: Adding onchip_memory [altera_avalon_onchip_memory2 13.0.1.99.2] +Progress: Parameterizing module onchip_memory +Progress: Adding switches [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module switches +Progress: Adding jtag_uart [altera_avalon_jtag_uart 13.0.1.99.2] +Progress: Parameterizing module jtag_uart +Progress: Adding LEDs [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module LEDs +Progress: Building connections +Progress: Parameterizing connections +Progress: Validating +Progress: Done reading input file +Info: nios_system.switches: PIO inputs are not hardwired in test bench. Undefined values will be read from PIO inputs during simulation. +Info: ip-generate succeeded. +Info: Finished: Create block symbol file (.bsf) +Info: +Info: Starting: Create HDL design files for synthesis +Info: ip-generate --project-directory=C:/Users/takayun/Desktop/qsys_tutorial/ --output-directory=C:/Users/takayun/Desktop/qsys_tutorial/nios_system/synthesis/ --file-set=QUARTUS_SYNTH --report-file=sopcinfo:C:/Users/takayun/Desktop/qsys_tutorial/nios_system.sopcinfo --report-file=html:C:/Users/takayun/Desktop/qsys_tutorial/nios_system.html --report-file=qip:C:/Users/takayun/Desktop/qsys_tutorial/nios_system/synthesis/nios_system.qip --report-file=cmp:C:/Users/takayun/Desktop/qsys_tutorial/nios_system.cmp --report-file=svd --system-info=DEVICE_FAMILY="Cyclone IV E" --system-info=DEVICE=EP4CE115F29C7 --system-info=DEVICE_SPEEDGRADE=7 --component-file=C:/Users/takayun/Desktop/qsys_tutorial/nios_system.qsys --language=VERILOG +Progress: Loading qsys_tutorial/nios_system.qsys +Progress: Reading input file +Progress: Adding clk_0 [clock_source 13.0] +Progress: Parameterizing module clk_0 +Progress: Adding nios2_processor [altera_nios2_qsys 13.0] +Progress: Parameterizing module nios2_processor +Progress: Adding onchip_memory [altera_avalon_onchip_memory2 13.0.1.99.2] +Progress: Parameterizing module onchip_memory +Progress: Adding switches [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module switches +Progress: Adding jtag_uart [altera_avalon_jtag_uart 13.0.1.99.2] +Progress: Parameterizing module jtag_uart +Progress: Adding LEDs [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module LEDs +Progress: Building connections +Progress: Parameterizing connections +Progress: Validating +Progress: Done reading input file +Info: nios_system.switches: PIO inputs are not hardwired in test bench. Undefined values will be read from PIO inputs during simulation. +Info: nios_system: Generating nios_system "nios_system" for QUARTUS_SYNTH +Info: pipeline_bridge_swap_transform: After transform: 6 modules, 23 connections +Info: No custom instruction connections, skipping transform +Info: merlin_translator_transform: After transform: 13 modules, 51 connections +Info: merlin_domain_transform: After transform: 26 modules, 137 connections +Info: merlin_router_transform: After transform: 33 modules, 165 connections +Info: reset_adaptation_transform: After transform: 34 modules, 130 connections +Info: merlin_network_to_switch_transform: After transform: 47 modules, 158 connections +Info: merlin_mm_transform: After transform: 47 modules, 158 connections +Info: merlin_interrupt_mapper_transform: After transform: 48 modules, 161 connections +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Info: nios2_processor: Starting RTL generation for module 'nios_system_nios2_processor' +Info: nios2_processor: Generation command is [exec C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2/eperl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2/cpu_lib -I C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2/nios_lib -I C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2 -I C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2 -- C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2/generate_rtl.epl --name=nios_system_nios2_processor --dir=C:/Users/takayun/AppData/Local/Temp/alt7087_588662107794788817.dir/0001_nios2_processor_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7087_588662107794788817.dir/0001_nios2_processor_gen//nios_system_nios2_processor_processor_configuration.pl --do_build_sim=0 --bogus ] +Info: nios2_processor: # 2016.10.13 16:14:14 (*) Starting Nios II generation +Info: nios2_processor: # 2016.10.13 16:14:14 (*) Checking for plaintext license. +Info: nios2_processor: # 2016.10.13 16:14:14 (*) Couldn't query license setup in Quartus directory C:/altera/13.0sp1/quartus +Info: nios2_processor: # 2016.10.13 16:14:14 (*) Defaulting to contents of LM_LICENSE_FILE environment variable +Info: nios2_processor: # 2016.10.13 16:14:14 (*) LM_LICENSE_FILE environment variable is empty +Info: nios2_processor: # 2016.10.13 16:14:14 (*) Plaintext license not found. +Info: nios2_processor: # 2016.10.13 16:14:14 (*) No license required to generate encrypted Nios II/e. +Info: nios2_processor: # 2016.10.13 16:14:14 (*) Elaborating CPU configuration settings +Info: nios2_processor: # 2016.10.13 16:14:14 (*) Creating all objects for CPU +Info: nios2_processor: # 2016.10.13 16:14:16 (*) Generating RTL from CPU objects +Info: nios2_processor: # 2016.10.13 16:14:16 (*) Creating plain-text RTL +Info: nios2_processor: # 2016.10.13 16:14:18 (*) Done Nios II generation +Info: nios2_processor: Done RTL generation for module 'nios_system_nios2_processor' +Info: nios2_processor: "nios_system" instantiated altera_nios2_qsys "nios2_processor" +Info: onchip_memory: Starting RTL generation for module 'nios_system_onchip_memory' +Info: onchip_memory: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_onchip_memory2 -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_onchip_memory2/generate_rtl.pl --name=nios_system_onchip_memory --dir=C:/Users/takayun/AppData/Local/Temp/alt7087_588662107794788817.dir/0002_onchip_memory_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7087_588662107794788817.dir/0002_onchip_memory_gen//nios_system_onchip_memory_component_configuration.pl --do_build_sim=0 ] +Info: onchip_memory: Done RTL generation for module 'nios_system_onchip_memory' +Info: onchip_memory: "nios_system" instantiated altera_avalon_onchip_memory2 "onchip_memory" +Info: switches: Starting RTL generation for module 'nios_system_switches' +Info: switches: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_switches --dir=C:/Users/takayun/AppData/Local/Temp/alt7087_588662107794788817.dir/0003_switches_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7087_588662107794788817.dir/0003_switches_gen//nios_system_switches_component_configuration.pl --do_build_sim=0 ] +Info: switches: Done RTL generation for module 'nios_system_switches' +Info: switches: "nios_system" instantiated altera_avalon_pio "switches" +Info: jtag_uart: Starting RTL generation for module 'nios_system_jtag_uart' +Info: jtag_uart: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_jtag_uart -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_jtag_uart/generate_rtl.pl --name=nios_system_jtag_uart --dir=C:/Users/takayun/AppData/Local/Temp/alt7087_588662107794788817.dir/0004_jtag_uart_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7087_588662107794788817.dir/0004_jtag_uart_gen//nios_system_jtag_uart_component_configuration.pl --do_build_sim=0 ] +Info: jtag_uart: Done RTL generation for module 'nios_system_jtag_uart' +Info: jtag_uart: "nios_system" instantiated altera_avalon_jtag_uart "jtag_uart" +Info: LEDs: Starting RTL generation for module 'nios_system_LEDs' +Info: LEDs: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_LEDs --dir=C:/Users/takayun/AppData/Local/Temp/alt7087_588662107794788817.dir/0005_LEDs_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7087_588662107794788817.dir/0005_LEDs_gen//nios_system_LEDs_component_configuration.pl --do_build_sim=0 ] +Info: LEDs: Done RTL generation for module 'nios_system_LEDs' +Info: LEDs: "nios_system" instantiated altera_avalon_pio "LEDs" +Info: nios2_processor_instruction_master_translator: "nios_system" instantiated altera_merlin_master_translator "nios2_processor_instruction_master_translator" +Info: nios2_processor_jtag_debug_module_translator: "nios_system" instantiated altera_merlin_slave_translator "nios2_processor_jtag_debug_module_translator" +Info: nios2_processor_instruction_master_translator_avalon_universal_master_0_agent: "nios_system" instantiated altera_merlin_master_agent "nios2_processor_instruction_master_translator_avalon_universal_master_0_agent" +Info: nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent: "nios_system" instantiated altera_merlin_slave_agent "nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent" +Info: nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo: "nios_system" instantiated altera_avalon_sc_fifo "nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo" +Info: addr_router: "nios_system" instantiated altera_merlin_router "addr_router" +Info: addr_router_001: "nios_system" instantiated altera_merlin_router "addr_router_001" +Info: id_router: "nios_system" instantiated altera_merlin_router "id_router" +Info: id_router_002: "nios_system" instantiated altera_merlin_router "id_router_002" +Info: rst_controller: "nios_system" instantiated altera_reset_controller "rst_controller" +Info: cmd_xbar_demux: "nios_system" instantiated altera_merlin_demultiplexer "cmd_xbar_demux" +Info: cmd_xbar_demux_001: "nios_system" instantiated altera_merlin_demultiplexer "cmd_xbar_demux_001" +Info: cmd_xbar_mux: "nios_system" instantiated altera_merlin_multiplexer "cmd_xbar_mux" +Info: rsp_xbar_demux_002: "nios_system" instantiated altera_merlin_demultiplexer "rsp_xbar_demux_002" +Info: rsp_xbar_mux: "nios_system" instantiated altera_merlin_multiplexer "rsp_xbar_mux" +Info: Reusing file C:/Users/takayun/Desktop/qsys_tutorial/nios_system/synthesis/submodules/altera_merlin_arbitrator.sv +Info: rsp_xbar_mux_001: "nios_system" instantiated altera_merlin_multiplexer "rsp_xbar_mux_001" +Info: Reusing file C:/Users/takayun/Desktop/qsys_tutorial/nios_system/synthesis/submodules/altera_merlin_arbitrator.sv +Info: irq_mapper: "nios_system" instantiated altera_irq_mapper "irq_mapper" +Info: nios_system: Done nios_system" with 23 modules, 64 files, 1233875 bytes +Info: ip-generate succeeded. +Info: Finished: Create HDL design files for synthesis diff --git a/nios_system_generation_1.rpt b/nios_system_generation_1.rpt new file mode 100644 index 0000000..2896051 --- /dev/null +++ b/nios_system_generation_1.rpt @@ -0,0 +1,154 @@ +Info: Starting: Create block symbol file (.bsf) +Info: ip-generate --project-directory=C:/Users/takayun/Desktop/qsys_tutorial/ --output-directory=C:/Users/takayun/Desktop/qsys_tutorial/nios_system/ --report-file=bsf:C:/Users/takayun/Desktop/qsys_tutorial/nios_system.bsf --system-info=DEVICE_FAMILY="Cyclone IV E" --system-info=DEVICE=EP4CE115F29C7 --system-info=DEVICE_SPEEDGRADE=7 --component-file=C:/Users/takayun/Desktop/qsys_tutorial/nios_system.qsys +Progress: Loading qsys_tutorial/nios_system.qsys +Progress: Reading input file +Progress: Adding clk_0 [clock_source 13.0] +Progress: Parameterizing module clk_0 +Progress: Adding nios2_processor [altera_nios2_qsys 13.0] +Progress: Parameterizing module nios2_processor +Progress: Adding onchip_memory [altera_avalon_onchip_memory2 13.0.1.99.2] +Progress: Parameterizing module onchip_memory +Progress: Adding switches [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module switches +Progress: Adding jtag_uart [altera_avalon_jtag_uart 13.0.1.99.2] +Progress: Parameterizing module jtag_uart +Progress: Adding LEDs [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module LEDs +Progress: Building connections +Progress: Parameterizing connections +Progress: Validating +Progress: Done reading input file +Info: nios_system.switches: PIO inputs are not hardwired in test bench. Undefined values will be read from PIO inputs during simulation. +Info: ip-generate succeeded. +Info: Finished: Create block symbol file (.bsf) +Info: +Info: Starting: Create HDL design files for synthesis +Info: ip-generate --project-directory=C:/Users/takayun/Desktop/qsys_tutorial/ --output-directory=C:/Users/takayun/Desktop/qsys_tutorial/nios_system/synthesis/ --file-set=QUARTUS_SYNTH --report-file=sopcinfo:C:/Users/takayun/Desktop/qsys_tutorial/nios_system.sopcinfo --report-file=html:C:/Users/takayun/Desktop/qsys_tutorial/nios_system.html --report-file=qip:C:/Users/takayun/Desktop/qsys_tutorial/nios_system/synthesis/nios_system.qip --report-file=cmp:C:/Users/takayun/Desktop/qsys_tutorial/nios_system.cmp --report-file=svd --system-info=DEVICE_FAMILY="Cyclone IV E" --system-info=DEVICE=EP4CE115F29C7 --system-info=DEVICE_SPEEDGRADE=7 --component-file=C:/Users/takayun/Desktop/qsys_tutorial/nios_system.qsys --language=VERILOG +Progress: Loading qsys_tutorial/nios_system.qsys +Progress: Reading input file +Progress: Adding clk_0 [clock_source 13.0] +Progress: Parameterizing module clk_0 +Progress: Adding nios2_processor [altera_nios2_qsys 13.0] +Progress: Parameterizing module nios2_processor +Progress: Adding onchip_memory [altera_avalon_onchip_memory2 13.0.1.99.2] +Progress: Parameterizing module onchip_memory +Progress: Adding switches [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module switches +Progress: Adding jtag_uart [altera_avalon_jtag_uart 13.0.1.99.2] +Progress: Parameterizing module jtag_uart +Progress: Adding LEDs [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module LEDs +Progress: Building connections +Progress: Parameterizing connections +Progress: Validating +Progress: Done reading input file +Info: nios_system.switches: PIO inputs are not hardwired in test bench. Undefined values will be read from PIO inputs during simulation. +Info: nios_system: Generating nios_system "nios_system" for QUARTUS_SYNTH +Info: pipeline_bridge_swap_transform: After transform: 6 modules, 23 connections +Info: No custom instruction connections, skipping transform +Info: merlin_translator_transform: After transform: 13 modules, 51 connections +Info: merlin_domain_transform: After transform: 26 modules, 137 connections +Info: merlin_router_transform: After transform: 33 modules, 165 connections +Info: reset_adaptation_transform: After transform: 34 modules, 130 connections +Info: merlin_network_to_switch_transform: After transform: 47 modules, 158 connections +Info: merlin_mm_transform: After transform: 47 modules, 158 connections +Info: merlin_interrupt_mapper_transform: After transform: 48 modules, 161 connections +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Info: nios2_processor: Starting RTL generation for module 'nios_system_nios2_processor' +Info: nios2_processor: Generation command is [exec C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2/eperl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2/cpu_lib -I C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2/nios_lib -I C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2 -I C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2 -- C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2/generate_rtl.epl --name=nios_system_nios2_processor --dir=C:/Users/takayun/AppData/Local/Temp/alt7087_8164123695301960079.dir/0001_nios2_processor_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7087_8164123695301960079.dir/0001_nios2_processor_gen//nios_system_nios2_processor_processor_configuration.pl --do_build_sim=0 --bogus ] +Info: nios2_processor: # 2016.10.13 16:58:12 (*) Starting Nios II generation +Info: nios2_processor: # 2016.10.13 16:58:12 (*) Checking for plaintext license. +Info: nios2_processor: # 2016.10.13 16:58:12 (*) Couldn't query license setup in Quartus directory C:/altera/13.0sp1/quartus +Info: nios2_processor: # 2016.10.13 16:58:12 (*) Defaulting to contents of LM_LICENSE_FILE environment variable +Info: nios2_processor: # 2016.10.13 16:58:12 (*) LM_LICENSE_FILE environment variable is empty +Info: nios2_processor: # 2016.10.13 16:58:12 (*) Plaintext license not found. +Info: nios2_processor: # 2016.10.13 16:58:12 (*) No license required to generate encrypted Nios II/e. +Info: nios2_processor: # 2016.10.13 16:58:12 (*) Elaborating CPU configuration settings +Info: nios2_processor: # 2016.10.13 16:58:12 (*) Creating all objects for CPU +Info: nios2_processor: # 2016.10.13 16:58:13 (*) Generating RTL from CPU objects +Info: nios2_processor: # 2016.10.13 16:58:13 (*) Creating plain-text RTL +Info: nios2_processor: # 2016.10.13 16:58:15 (*) Done Nios II generation +Info: nios2_processor: Done RTL generation for module 'nios_system_nios2_processor' +Info: nios2_processor: "nios_system" instantiated altera_nios2_qsys "nios2_processor" +Info: onchip_memory: Starting RTL generation for module 'nios_system_onchip_memory' +Info: onchip_memory: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_onchip_memory2 -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_onchip_memory2/generate_rtl.pl --name=nios_system_onchip_memory --dir=C:/Users/takayun/AppData/Local/Temp/alt7087_8164123695301960079.dir/0002_onchip_memory_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7087_8164123695301960079.dir/0002_onchip_memory_gen//nios_system_onchip_memory_component_configuration.pl --do_build_sim=0 ] +Info: onchip_memory: Done RTL generation for module 'nios_system_onchip_memory' +Info: onchip_memory: "nios_system" instantiated altera_avalon_onchip_memory2 "onchip_memory" +Info: switches: Starting RTL generation for module 'nios_system_switches' +Info: switches: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_switches --dir=C:/Users/takayun/AppData/Local/Temp/alt7087_8164123695301960079.dir/0003_switches_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7087_8164123695301960079.dir/0003_switches_gen//nios_system_switches_component_configuration.pl --do_build_sim=0 ] +Info: switches: Done RTL generation for module 'nios_system_switches' +Info: switches: "nios_system" instantiated altera_avalon_pio "switches" +Info: jtag_uart: Starting RTL generation for module 'nios_system_jtag_uart' +Info: jtag_uart: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_jtag_uart -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_jtag_uart/generate_rtl.pl --name=nios_system_jtag_uart --dir=C:/Users/takayun/AppData/Local/Temp/alt7087_8164123695301960079.dir/0004_jtag_uart_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7087_8164123695301960079.dir/0004_jtag_uart_gen//nios_system_jtag_uart_component_configuration.pl --do_build_sim=0 ] +Info: jtag_uart: Done RTL generation for module 'nios_system_jtag_uart' +Info: jtag_uart: "nios_system" instantiated altera_avalon_jtag_uart "jtag_uart" +Info: LEDs: Starting RTL generation for module 'nios_system_LEDs' +Info: LEDs: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_LEDs --dir=C:/Users/takayun/AppData/Local/Temp/alt7087_8164123695301960079.dir/0005_LEDs_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7087_8164123695301960079.dir/0005_LEDs_gen//nios_system_LEDs_component_configuration.pl --do_build_sim=0 ] +Info: LEDs: Done RTL generation for module 'nios_system_LEDs' +Info: LEDs: "nios_system" instantiated altera_avalon_pio "LEDs" +Info: nios2_processor_instruction_master_translator: "nios_system" instantiated altera_merlin_master_translator "nios2_processor_instruction_master_translator" +Info: nios2_processor_jtag_debug_module_translator: "nios_system" instantiated altera_merlin_slave_translator "nios2_processor_jtag_debug_module_translator" +Info: nios2_processor_instruction_master_translator_avalon_universal_master_0_agent: "nios_system" instantiated altera_merlin_master_agent "nios2_processor_instruction_master_translator_avalon_universal_master_0_agent" +Info: nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent: "nios_system" instantiated altera_merlin_slave_agent "nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent" +Info: nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo: "nios_system" instantiated altera_avalon_sc_fifo "nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo" +Info: addr_router: "nios_system" instantiated altera_merlin_router "addr_router" +Info: addr_router_001: "nios_system" instantiated altera_merlin_router "addr_router_001" +Info: id_router: "nios_system" instantiated altera_merlin_router "id_router" +Info: id_router_002: "nios_system" instantiated altera_merlin_router "id_router_002" +Info: rst_controller: "nios_system" instantiated altera_reset_controller "rst_controller" +Info: cmd_xbar_demux: "nios_system" instantiated altera_merlin_demultiplexer "cmd_xbar_demux" +Info: cmd_xbar_demux_001: "nios_system" instantiated altera_merlin_demultiplexer "cmd_xbar_demux_001" +Info: cmd_xbar_mux: "nios_system" instantiated altera_merlin_multiplexer "cmd_xbar_mux" +Info: rsp_xbar_demux_002: "nios_system" instantiated altera_merlin_demultiplexer "rsp_xbar_demux_002" +Info: rsp_xbar_mux: "nios_system" instantiated altera_merlin_multiplexer "rsp_xbar_mux" +Info: Reusing file C:/Users/takayun/Desktop/qsys_tutorial/nios_system/synthesis/submodules/altera_merlin_arbitrator.sv +Info: rsp_xbar_mux_001: "nios_system" instantiated altera_merlin_multiplexer "rsp_xbar_mux_001" +Info: Reusing file C:/Users/takayun/Desktop/qsys_tutorial/nios_system/synthesis/submodules/altera_merlin_arbitrator.sv +Info: irq_mapper: "nios_system" instantiated altera_irq_mapper "irq_mapper" +Info: nios_system: Done nios_system" with 23 modules, 64 files, 1233875 bytes +Info: ip-generate succeeded. +Info: Finished: Create HDL design files for synthesis diff --git a/nios_system_generation_10.rpt b/nios_system_generation_10.rpt new file mode 100644 index 0000000..d44873f --- /dev/null +++ b/nios_system_generation_10.rpt @@ -0,0 +1,186 @@ +Info: Starting: Create block symbol file (.bsf) +Info: ip-generate --project-directory=C:/Users/takayun/Documents/DE2-115/qsys_tutorial/ --output-directory=C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/ --report-file=bsf:C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.bsf --system-info=DEVICE_FAMILY="Cyclone IV E" --system-info=DEVICE=EP4CE115F29C7 --system-info=DEVICE_SPEEDGRADE=7 --component-file=C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.qsys +Progress: Loading qsys_tutorial/nios_system.qsys +Progress: Reading input file +Progress: Adding clk_0 [clock_source 13.0] +Progress: Parameterizing module clk_0 +Progress: Adding nios2_processor [altera_nios2_qsys 13.0] +Progress: Parameterizing module nios2_processor +Progress: Adding onchip_memory [altera_avalon_onchip_memory2 13.0.1.99.2] +Progress: Parameterizing module onchip_memory +Progress: Adding jtag_uart [altera_avalon_jtag_uart 13.0.1.99.2] +Progress: Parameterizing module jtag_uart +Progress: Adding LEDs [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module LEDs +Progress: Adding LEDRs [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module LEDRs +Progress: Adding switches [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module switches +Progress: Adding push_switches [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module push_switches +Progress: Building connections +Progress: Parameterizing connections +Progress: Validating +Progress: Done reading input file +Info: nios_system.switches: PIO inputs are not hardwired in test bench. Undefined values will be read from PIO inputs during simulation. +Info: nios_system.push_switches: PIO inputs are not hardwired in test bench. Undefined values will be read from PIO inputs during simulation. +Info: ip-generate succeeded. +Info: Finished: Create block symbol file (.bsf) +Info: +Info: Starting: Create HDL design files for synthesis +Info: ip-generate --project-directory=C:/Users/takayun/Documents/DE2-115/qsys_tutorial/ --output-directory=C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/synthesis/ --file-set=QUARTUS_SYNTH --report-file=sopcinfo:C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.sopcinfo --report-file=html:C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.html --report-file=qip:C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/synthesis/nios_system.qip --report-file=cmp:C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.cmp --report-file=svd --system-info=DEVICE_FAMILY="Cyclone IV E" --system-info=DEVICE=EP4CE115F29C7 --system-info=DEVICE_SPEEDGRADE=7 --component-file=C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.qsys --language=VERILOG +Progress: Loading qsys_tutorial/nios_system.qsys +Progress: Reading input file +Progress: Adding clk_0 [clock_source 13.0] +Progress: Parameterizing module clk_0 +Progress: Adding nios2_processor [altera_nios2_qsys 13.0] +Progress: Parameterizing module nios2_processor +Progress: Adding onchip_memory [altera_avalon_onchip_memory2 13.0.1.99.2] +Progress: Parameterizing module onchip_memory +Progress: Adding jtag_uart [altera_avalon_jtag_uart 13.0.1.99.2] +Progress: Parameterizing module jtag_uart +Progress: Adding LEDs [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module LEDs +Progress: Adding LEDRs [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module LEDRs +Progress: Adding switches [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module switches +Progress: Adding push_switches [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module push_switches +Progress: Building connections +Progress: Parameterizing connections +Progress: Validating +Progress: Done reading input file +Info: nios_system.switches: PIO inputs are not hardwired in test bench. Undefined values will be read from PIO inputs during simulation. +Info: nios_system.push_switches: PIO inputs are not hardwired in test bench. Undefined values will be read from PIO inputs during simulation. +Info: nios_system: Generating nios_system "nios_system" for QUARTUS_SYNTH +Info: pipeline_bridge_swap_transform: After transform: 8 modules, 31 connections +Info: No custom instruction connections, skipping transform +Info: merlin_translator_transform: After transform: 17 modules, 67 connections +Info: merlin_domain_transform: After transform: 34 modules, 181 connections +Info: merlin_router_transform: After transform: 43 modules, 217 connections +Info: reset_adaptation_transform: After transform: 44 modules, 170 connections +Info: merlin_network_to_switch_transform: After transform: 61 modules, 206 connections +Info: merlin_mm_transform: After transform: 61 modules, 206 connections +Info: merlin_interrupt_mapper_transform: After transform: 62 modules, 209 connections +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Info: nios2_processor: Starting RTL generation for module 'nios_system_nios2_processor' +Info: nios2_processor: Generation command is [exec C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2/eperl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2/cpu_lib -I C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2/nios_lib -I C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2 -I C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2 -- C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2/generate_rtl.epl --name=nios_system_nios2_processor --dir=C:/Users/takayun/AppData/Local/Temp/alt7115_95487825793286862.dir/0068_nios2_processor_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7115_95487825793286862.dir/0068_nios2_processor_gen//nios_system_nios2_processor_processor_configuration.pl --do_build_sim=0 --bogus ] +Info: nios2_processor: # 2016.11.10 10:13:30 (*) Starting Nios II generation +Info: nios2_processor: # 2016.11.10 10:13:30 (*) Checking for plaintext license. +Info: nios2_processor: # 2016.11.10 10:13:30 (*) Couldn't query license setup in Quartus directory C:/altera/13.0sp1/quartus +Info: nios2_processor: # 2016.11.10 10:13:30 (*) Defaulting to contents of LM_LICENSE_FILE environment variable +Info: nios2_processor: # 2016.11.10 10:13:30 (*) LM_LICENSE_FILE environment variable is empty +Info: nios2_processor: # 2016.11.10 10:13:30 (*) Plaintext license not found. +Info: nios2_processor: # 2016.11.10 10:13:30 (*) No license required to generate encrypted Nios II/e. +Info: nios2_processor: # 2016.11.10 10:13:30 (*) Elaborating CPU configuration settings +Info: nios2_processor: # 2016.11.10 10:13:30 (*) Creating all objects for CPU +Info: nios2_processor: # 2016.11.10 10:13:31 (*) Generating RTL from CPU objects +Info: nios2_processor: # 2016.11.10 10:13:31 (*) Creating plain-text RTL +Info: nios2_processor: # 2016.11.10 10:13:33 (*) Done Nios II generation +Info: nios2_processor: Done RTL generation for module 'nios_system_nios2_processor' +Info: nios2_processor: "nios_system" instantiated altera_nios2_qsys "nios2_processor" +Info: onchip_memory: Starting RTL generation for module 'nios_system_onchip_memory' +Info: onchip_memory: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_onchip_memory2 -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_onchip_memory2/generate_rtl.pl --name=nios_system_onchip_memory --dir=C:/Users/takayun/AppData/Local/Temp/alt7115_95487825793286862.dir/0069_onchip_memory_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7115_95487825793286862.dir/0069_onchip_memory_gen//nios_system_onchip_memory_component_configuration.pl --do_build_sim=0 ] +Info: onchip_memory: Done RTL generation for module 'nios_system_onchip_memory' +Info: onchip_memory: "nios_system" instantiated altera_avalon_onchip_memory2 "onchip_memory" +Info: jtag_uart: Starting RTL generation for module 'nios_system_jtag_uart' +Info: jtag_uart: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_jtag_uart -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_jtag_uart/generate_rtl.pl --name=nios_system_jtag_uart --dir=C:/Users/takayun/AppData/Local/Temp/alt7115_95487825793286862.dir/0070_jtag_uart_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7115_95487825793286862.dir/0070_jtag_uart_gen//nios_system_jtag_uart_component_configuration.pl --do_build_sim=0 ] +Info: jtag_uart: Done RTL generation for module 'nios_system_jtag_uart' +Info: jtag_uart: "nios_system" instantiated altera_avalon_jtag_uart "jtag_uart" +Info: LEDs: Starting RTL generation for module 'nios_system_LEDs' +Info: LEDs: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_LEDs --dir=C:/Users/takayun/AppData/Local/Temp/alt7115_95487825793286862.dir/0071_LEDs_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7115_95487825793286862.dir/0071_LEDs_gen//nios_system_LEDs_component_configuration.pl --do_build_sim=0 ] +Info: LEDs: Done RTL generation for module 'nios_system_LEDs' +Info: LEDs: "nios_system" instantiated altera_avalon_pio "LEDs" +Info: LEDRs: Starting RTL generation for module 'nios_system_LEDRs' +Info: LEDRs: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_LEDRs --dir=C:/Users/takayun/AppData/Local/Temp/alt7115_95487825793286862.dir/0072_LEDRs_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7115_95487825793286862.dir/0072_LEDRs_gen//nios_system_LEDRs_component_configuration.pl --do_build_sim=0 ] +Info: LEDRs: Done RTL generation for module 'nios_system_LEDRs' +Info: LEDRs: "nios_system" instantiated altera_avalon_pio "LEDRs" +Info: switches: Starting RTL generation for module 'nios_system_switches' +Info: switches: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_switches --dir=C:/Users/takayun/AppData/Local/Temp/alt7115_95487825793286862.dir/0073_switches_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7115_95487825793286862.dir/0073_switches_gen//nios_system_switches_component_configuration.pl --do_build_sim=0 ] +Info: switches: Done RTL generation for module 'nios_system_switches' +Info: switches: "nios_system" instantiated altera_avalon_pio "switches" +Info: push_switches: Starting RTL generation for module 'nios_system_push_switches' +Info: push_switches: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_push_switches --dir=C:/Users/takayun/AppData/Local/Temp/alt7115_95487825793286862.dir/0074_push_switches_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7115_95487825793286862.dir/0074_push_switches_gen//nios_system_push_switches_component_configuration.pl --do_build_sim=0 ] +Info: push_switches: Done RTL generation for module 'nios_system_push_switches' +Info: push_switches: "nios_system" instantiated altera_avalon_pio "push_switches" +Info: nios2_processor_instruction_master_translator: "nios_system" instantiated altera_merlin_master_translator "nios2_processor_instruction_master_translator" +Info: nios2_processor_jtag_debug_module_translator: "nios_system" instantiated altera_merlin_slave_translator "nios2_processor_jtag_debug_module_translator" +Info: nios2_processor_instruction_master_translator_avalon_universal_master_0_agent: "nios_system" instantiated altera_merlin_master_agent "nios2_processor_instruction_master_translator_avalon_universal_master_0_agent" +Info: nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent: "nios_system" instantiated altera_merlin_slave_agent "nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent" +Info: nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo: "nios_system" instantiated altera_avalon_sc_fifo "nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo" +Info: addr_router: "nios_system" instantiated altera_merlin_router "addr_router" +Info: addr_router_001: "nios_system" instantiated altera_merlin_router "addr_router_001" +Info: id_router: "nios_system" instantiated altera_merlin_router "id_router" +Info: id_router_002: "nios_system" instantiated altera_merlin_router "id_router_002" +Info: rst_controller: "nios_system" instantiated altera_reset_controller "rst_controller" +Info: cmd_xbar_demux: "nios_system" instantiated altera_merlin_demultiplexer "cmd_xbar_demux" +Info: cmd_xbar_demux_001: "nios_system" instantiated altera_merlin_demultiplexer "cmd_xbar_demux_001" +Info: cmd_xbar_mux: "nios_system" instantiated altera_merlin_multiplexer "cmd_xbar_mux" +Info: rsp_xbar_demux_002: "nios_system" instantiated altera_merlin_demultiplexer "rsp_xbar_demux_002" +Info: rsp_xbar_mux: "nios_system" instantiated altera_merlin_multiplexer "rsp_xbar_mux" +Info: Reusing file C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/synthesis/submodules/altera_merlin_arbitrator.sv +Info: rsp_xbar_mux_001: "nios_system" instantiated altera_merlin_multiplexer "rsp_xbar_mux_001" +Info: Reusing file C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/synthesis/submodules/altera_merlin_arbitrator.sv +Info: irq_mapper: "nios_system" instantiated altera_irq_mapper "irq_mapper" +Info: nios_system: Done nios_system" with 25 modules, 78 files, 1510254 bytes +Info: ip-generate succeeded. +Info: Finished: Create HDL design files for synthesis diff --git a/nios_system_generation_11.rpt b/nios_system_generation_11.rpt new file mode 100644 index 0000000..2175699 --- /dev/null +++ b/nios_system_generation_11.rpt @@ -0,0 +1,186 @@ +Info: Starting: Create block symbol file (.bsf) +Info: ip-generate --project-directory=C:/Users/takayun/Documents/DE2-115/qsys_tutorial/ --output-directory=C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/ --report-file=bsf:C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.bsf --system-info=DEVICE_FAMILY="Cyclone IV E" --system-info=DEVICE=EP4CE115F29C7 --system-info=DEVICE_SPEEDGRADE=7 --component-file=C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.qsys +Progress: Loading qsys_tutorial/nios_system.qsys +Progress: Reading input file +Progress: Adding clk_0 [clock_source 13.0] +Progress: Parameterizing module clk_0 +Progress: Adding nios2_processor [altera_nios2_qsys 13.0] +Progress: Parameterizing module nios2_processor +Progress: Adding onchip_memory [altera_avalon_onchip_memory2 13.0.1.99.2] +Progress: Parameterizing module onchip_memory +Progress: Adding jtag_uart [altera_avalon_jtag_uart 13.0.1.99.2] +Progress: Parameterizing module jtag_uart +Progress: Adding LEDs [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module LEDs +Progress: Adding LEDRs [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module LEDRs +Progress: Adding switches [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module switches +Progress: Adding push_switches [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module push_switches +Progress: Building connections +Progress: Parameterizing connections +Progress: Validating +Progress: Done reading input file +Info: nios_system.switches: PIO inputs are not hardwired in test bench. Undefined values will be read from PIO inputs during simulation. +Info: nios_system.push_switches: PIO inputs are not hardwired in test bench. Undefined values will be read from PIO inputs during simulation. +Info: ip-generate succeeded. +Info: Finished: Create block symbol file (.bsf) +Info: +Info: Starting: Create HDL design files for synthesis +Info: ip-generate --project-directory=C:/Users/takayun/Documents/DE2-115/qsys_tutorial/ --output-directory=C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/synthesis/ --file-set=QUARTUS_SYNTH --report-file=sopcinfo:C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.sopcinfo --report-file=html:C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.html --report-file=qip:C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/synthesis/nios_system.qip --report-file=cmp:C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.cmp --report-file=svd --system-info=DEVICE_FAMILY="Cyclone IV E" --system-info=DEVICE=EP4CE115F29C7 --system-info=DEVICE_SPEEDGRADE=7 --component-file=C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.qsys --language=VERILOG +Progress: Loading qsys_tutorial/nios_system.qsys +Progress: Reading input file +Progress: Adding clk_0 [clock_source 13.0] +Progress: Parameterizing module clk_0 +Progress: Adding nios2_processor [altera_nios2_qsys 13.0] +Progress: Parameterizing module nios2_processor +Progress: Adding onchip_memory [altera_avalon_onchip_memory2 13.0.1.99.2] +Progress: Parameterizing module onchip_memory +Progress: Adding jtag_uart [altera_avalon_jtag_uart 13.0.1.99.2] +Progress: Parameterizing module jtag_uart +Progress: Adding LEDs [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module LEDs +Progress: Adding LEDRs [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module LEDRs +Progress: Adding switches [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module switches +Progress: Adding push_switches [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module push_switches +Progress: Building connections +Progress: Parameterizing connections +Progress: Validating +Progress: Done reading input file +Info: nios_system.switches: PIO inputs are not hardwired in test bench. Undefined values will be read from PIO inputs during simulation. +Info: nios_system.push_switches: PIO inputs are not hardwired in test bench. Undefined values will be read from PIO inputs during simulation. +Info: nios_system: Generating nios_system "nios_system" for QUARTUS_SYNTH +Info: pipeline_bridge_swap_transform: After transform: 8 modules, 31 connections +Info: No custom instruction connections, skipping transform +Info: merlin_translator_transform: After transform: 17 modules, 67 connections +Info: merlin_domain_transform: After transform: 34 modules, 181 connections +Info: merlin_router_transform: After transform: 43 modules, 217 connections +Info: reset_adaptation_transform: After transform: 44 modules, 170 connections +Info: merlin_network_to_switch_transform: After transform: 61 modules, 206 connections +Info: merlin_mm_transform: After transform: 61 modules, 206 connections +Info: merlin_interrupt_mapper_transform: After transform: 62 modules, 209 connections +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Info: nios2_processor: Starting RTL generation for module 'nios_system_nios2_processor' +Info: nios2_processor: Generation command is [exec C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2/eperl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2/cpu_lib -I C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2/nios_lib -I C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2 -I C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2 -- C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2/generate_rtl.epl --name=nios_system_nios2_processor --dir=C:/Users/takayun/AppData/Local/Temp/alt7115_95487825793286862.dir/0091_nios2_processor_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7115_95487825793286862.dir/0091_nios2_processor_gen//nios_system_nios2_processor_processor_configuration.pl --do_build_sim=0 --bogus ] +Info: nios2_processor: # 2016.11.10 10:40:15 (*) Starting Nios II generation +Info: nios2_processor: # 2016.11.10 10:40:15 (*) Checking for plaintext license. +Info: nios2_processor: # 2016.11.10 10:40:15 (*) Couldn't query license setup in Quartus directory C:/altera/13.0sp1/quartus +Info: nios2_processor: # 2016.11.10 10:40:15 (*) Defaulting to contents of LM_LICENSE_FILE environment variable +Info: nios2_processor: # 2016.11.10 10:40:15 (*) LM_LICENSE_FILE environment variable is empty +Info: nios2_processor: # 2016.11.10 10:40:15 (*) Plaintext license not found. +Info: nios2_processor: # 2016.11.10 10:40:15 (*) No license required to generate encrypted Nios II/e. +Info: nios2_processor: # 2016.11.10 10:40:15 (*) Elaborating CPU configuration settings +Info: nios2_processor: # 2016.11.10 10:40:15 (*) Creating all objects for CPU +Info: nios2_processor: # 2016.11.10 10:40:16 (*) Generating RTL from CPU objects +Info: nios2_processor: # 2016.11.10 10:40:16 (*) Creating plain-text RTL +Info: nios2_processor: # 2016.11.10 10:40:19 (*) Done Nios II generation +Info: nios2_processor: Done RTL generation for module 'nios_system_nios2_processor' +Info: nios2_processor: "nios_system" instantiated altera_nios2_qsys "nios2_processor" +Info: onchip_memory: Starting RTL generation for module 'nios_system_onchip_memory' +Info: onchip_memory: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_onchip_memory2 -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_onchip_memory2/generate_rtl.pl --name=nios_system_onchip_memory --dir=C:/Users/takayun/AppData/Local/Temp/alt7115_95487825793286862.dir/0092_onchip_memory_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7115_95487825793286862.dir/0092_onchip_memory_gen//nios_system_onchip_memory_component_configuration.pl --do_build_sim=0 ] +Info: onchip_memory: Done RTL generation for module 'nios_system_onchip_memory' +Info: onchip_memory: "nios_system" instantiated altera_avalon_onchip_memory2 "onchip_memory" +Info: jtag_uart: Starting RTL generation for module 'nios_system_jtag_uart' +Info: jtag_uart: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_jtag_uart -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_jtag_uart/generate_rtl.pl --name=nios_system_jtag_uart --dir=C:/Users/takayun/AppData/Local/Temp/alt7115_95487825793286862.dir/0093_jtag_uart_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7115_95487825793286862.dir/0093_jtag_uart_gen//nios_system_jtag_uart_component_configuration.pl --do_build_sim=0 ] +Info: jtag_uart: Done RTL generation for module 'nios_system_jtag_uart' +Info: jtag_uart: "nios_system" instantiated altera_avalon_jtag_uart "jtag_uart" +Info: LEDs: Starting RTL generation for module 'nios_system_LEDs' +Info: LEDs: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_LEDs --dir=C:/Users/takayun/AppData/Local/Temp/alt7115_95487825793286862.dir/0094_LEDs_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7115_95487825793286862.dir/0094_LEDs_gen//nios_system_LEDs_component_configuration.pl --do_build_sim=0 ] +Info: LEDs: Done RTL generation for module 'nios_system_LEDs' +Info: LEDs: "nios_system" instantiated altera_avalon_pio "LEDs" +Info: LEDRs: Starting RTL generation for module 'nios_system_LEDRs' +Info: LEDRs: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_LEDRs --dir=C:/Users/takayun/AppData/Local/Temp/alt7115_95487825793286862.dir/0095_LEDRs_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7115_95487825793286862.dir/0095_LEDRs_gen//nios_system_LEDRs_component_configuration.pl --do_build_sim=0 ] +Info: LEDRs: Done RTL generation for module 'nios_system_LEDRs' +Info: LEDRs: "nios_system" instantiated altera_avalon_pio "LEDRs" +Info: switches: Starting RTL generation for module 'nios_system_switches' +Info: switches: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_switches --dir=C:/Users/takayun/AppData/Local/Temp/alt7115_95487825793286862.dir/0096_switches_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7115_95487825793286862.dir/0096_switches_gen//nios_system_switches_component_configuration.pl --do_build_sim=0 ] +Info: switches: Done RTL generation for module 'nios_system_switches' +Info: switches: "nios_system" instantiated altera_avalon_pio "switches" +Info: push_switches: Starting RTL generation for module 'nios_system_push_switches' +Info: push_switches: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_push_switches --dir=C:/Users/takayun/AppData/Local/Temp/alt7115_95487825793286862.dir/0097_push_switches_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7115_95487825793286862.dir/0097_push_switches_gen//nios_system_push_switches_component_configuration.pl --do_build_sim=0 ] +Info: push_switches: Done RTL generation for module 'nios_system_push_switches' +Info: push_switches: "nios_system" instantiated altera_avalon_pio "push_switches" +Info: nios2_processor_instruction_master_translator: "nios_system" instantiated altera_merlin_master_translator "nios2_processor_instruction_master_translator" +Info: nios2_processor_jtag_debug_module_translator: "nios_system" instantiated altera_merlin_slave_translator "nios2_processor_jtag_debug_module_translator" +Info: nios2_processor_instruction_master_translator_avalon_universal_master_0_agent: "nios_system" instantiated altera_merlin_master_agent "nios2_processor_instruction_master_translator_avalon_universal_master_0_agent" +Info: nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent: "nios_system" instantiated altera_merlin_slave_agent "nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent" +Info: nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo: "nios_system" instantiated altera_avalon_sc_fifo "nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo" +Info: addr_router: "nios_system" instantiated altera_merlin_router "addr_router" +Info: addr_router_001: "nios_system" instantiated altera_merlin_router "addr_router_001" +Info: id_router: "nios_system" instantiated altera_merlin_router "id_router" +Info: id_router_002: "nios_system" instantiated altera_merlin_router "id_router_002" +Info: rst_controller: "nios_system" instantiated altera_reset_controller "rst_controller" +Info: cmd_xbar_demux: "nios_system" instantiated altera_merlin_demultiplexer "cmd_xbar_demux" +Info: cmd_xbar_demux_001: "nios_system" instantiated altera_merlin_demultiplexer "cmd_xbar_demux_001" +Info: cmd_xbar_mux: "nios_system" instantiated altera_merlin_multiplexer "cmd_xbar_mux" +Info: rsp_xbar_demux_002: "nios_system" instantiated altera_merlin_demultiplexer "rsp_xbar_demux_002" +Info: rsp_xbar_mux: "nios_system" instantiated altera_merlin_multiplexer "rsp_xbar_mux" +Info: Reusing file C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/synthesis/submodules/altera_merlin_arbitrator.sv +Info: rsp_xbar_mux_001: "nios_system" instantiated altera_merlin_multiplexer "rsp_xbar_mux_001" +Info: Reusing file C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/synthesis/submodules/altera_merlin_arbitrator.sv +Info: irq_mapper: "nios_system" instantiated altera_irq_mapper "irq_mapper" +Info: nios_system: Done nios_system" with 25 modules, 78 files, 1510254 bytes +Info: ip-generate succeeded. +Info: Finished: Create HDL design files for synthesis diff --git a/nios_system_generation_12.rpt b/nios_system_generation_12.rpt new file mode 100644 index 0000000..7c54d23 --- /dev/null +++ b/nios_system_generation_12.rpt @@ -0,0 +1,278 @@ +Info: Starting: Create block symbol file (.bsf) +Info: ip-generate --project-directory=C:/Users/takayun/Documents/DE2-115/qsys_tutorial/ --output-directory=C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/ --report-file=bsf:C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.bsf --system-info=DEVICE_FAMILY="Cyclone IV E" --system-info=DEVICE=EP4CE115F29C7 --system-info=DEVICE_SPEEDGRADE=7 --component-file=C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.qsys +Progress: Loading qsys_tutorial/nios_system.qsys +Progress: Reading input file +Progress: Adding clk_0 [clock_source 13.0] +Progress: Parameterizing module clk_0 +Progress: Adding nios2_processor [altera_nios2_qsys 13.0] +Progress: Parameterizing module nios2_processor +Progress: Adding onchip_memory [altera_avalon_onchip_memory2 13.0.1.99.2] +Progress: Parameterizing module onchip_memory +Progress: Adding jtag_uart [altera_avalon_jtag_uart 13.0.1.99.2] +Progress: Parameterizing module jtag_uart +Progress: Adding LEDs [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module LEDs +Progress: Adding LEDRs [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module LEDRs +Progress: Adding switches [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module switches +Progress: Adding push_switches [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module push_switches +Progress: Adding hex0 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex0 +Progress: Adding hex1 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex1 +Progress: Adding hex2 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex2 +Progress: Adding hex3 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex3 +Progress: Adding hex4 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex4 +Progress: Adding hex5 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex5 +Progress: Adding hex6 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex6 +Progress: Adding pio_0 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module pio_0 +Progress: Building connections +Progress: Parameterizing connections +Progress: Validating +Progress: Done reading input file +Info: nios_system.switches: PIO inputs are not hardwired in test bench. Undefined values will be read from PIO inputs during simulation. +Info: nios_system.push_switches: PIO inputs are not hardwired in test bench. Undefined values will be read from PIO inputs during simulation. +Info: ip-generate succeeded. +Info: Finished: Create block symbol file (.bsf) +Info: +Info: Starting: Create HDL design files for synthesis +Info: ip-generate --project-directory=C:/Users/takayun/Documents/DE2-115/qsys_tutorial/ --output-directory=C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/synthesis/ --file-set=QUARTUS_SYNTH --report-file=sopcinfo:C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.sopcinfo --report-file=html:C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.html --report-file=qip:C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/synthesis/nios_system.qip --report-file=cmp:C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.cmp --report-file=svd --system-info=DEVICE_FAMILY="Cyclone IV E" --system-info=DEVICE=EP4CE115F29C7 --system-info=DEVICE_SPEEDGRADE=7 --component-file=C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.qsys --language=VERILOG +Progress: Loading qsys_tutorial/nios_system.qsys +Progress: Reading input file +Progress: Adding clk_0 [clock_source 13.0] +Progress: Parameterizing module clk_0 +Progress: Adding nios2_processor [altera_nios2_qsys 13.0] +Progress: Parameterizing module nios2_processor +Progress: Adding onchip_memory [altera_avalon_onchip_memory2 13.0.1.99.2] +Progress: Parameterizing module onchip_memory +Progress: Adding jtag_uart [altera_avalon_jtag_uart 13.0.1.99.2] +Progress: Parameterizing module jtag_uart +Progress: Adding LEDs [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module LEDs +Progress: Adding LEDRs [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module LEDRs +Progress: Adding switches [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module switches +Progress: Adding push_switches [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module push_switches +Progress: Adding hex0 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex0 +Progress: Adding hex1 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex1 +Progress: Adding hex2 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex2 +Progress: Adding hex3 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex3 +Progress: Adding hex4 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex4 +Progress: Adding hex5 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex5 +Progress: Adding hex6 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex6 +Progress: Adding pio_0 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module pio_0 +Progress: Building connections +Progress: Parameterizing connections +Progress: Validating +Progress: Done reading input file +Info: nios_system.switches: PIO inputs are not hardwired in test bench. Undefined values will be read from PIO inputs during simulation. +Info: nios_system.push_switches: PIO inputs are not hardwired in test bench. Undefined values will be read from PIO inputs during simulation. +Info: nios_system: Generating nios_system "nios_system" for QUARTUS_SYNTH +Info: pipeline_bridge_swap_transform: After transform: 16 modules, 63 connections +Info: No custom instruction connections, skipping transform +Info: merlin_translator_transform: After transform: 33 modules, 131 connections +Info: merlin_domain_transform: After transform: 66 modules, 357 connections +Info: merlin_router_transform: After transform: 83 modules, 425 connections +Info: reset_adaptation_transform: After transform: 84 modules, 330 connections +Info: merlin_network_to_switch_transform: After transform: 117 modules, 398 connections +Info: merlin_mm_transform: After transform: 117 modules, 398 connections +Info: merlin_interrupt_mapper_transform: After transform: 118 modules, 401 connections +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Info: nios2_processor: Starting RTL generation for module 'nios_system_nios2_processor' +Info: nios2_processor: Generation command is [exec C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2/eperl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2/cpu_lib -I C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2/nios_lib -I C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2 -I C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2 -- C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2/generate_rtl.epl --name=nios_system_nios2_processor --dir=C:/Users/takayun/AppData/Local/Temp/alt7122_4250281716460532653.dir/0001_nios2_processor_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7122_4250281716460532653.dir/0001_nios2_processor_gen//nios_system_nios2_processor_processor_configuration.pl --do_build_sim=0 --bogus ] +Info: nios2_processor: # 2016.11.17 09:23:48 (*) Starting Nios II generation +Info: nios2_processor: # 2016.11.17 09:23:48 (*) Checking for plaintext license. +Info: nios2_processor: # 2016.11.17 09:23:49 (*) Couldn't query license setup in Quartus directory C:/altera/13.0sp1/quartus +Info: nios2_processor: # 2016.11.17 09:23:49 (*) Defaulting to contents of LM_LICENSE_FILE environment variable +Info: nios2_processor: # 2016.11.17 09:23:49 (*) LM_LICENSE_FILE environment variable is empty +Info: nios2_processor: # 2016.11.17 09:23:49 (*) Plaintext license not found. +Info: nios2_processor: # 2016.11.17 09:23:49 (*) No license required to generate encrypted Nios II/e. +Info: nios2_processor: # 2016.11.17 09:23:49 (*) Elaborating CPU configuration settings +Info: nios2_processor: # 2016.11.17 09:23:49 (*) Creating all objects for CPU +Info: nios2_processor: # 2016.11.17 09:23:50 (*) Generating RTL from CPU objects +Info: nios2_processor: # 2016.11.17 09:23:50 (*) Creating plain-text RTL +Info: nios2_processor: # 2016.11.17 09:23:52 (*) Done Nios II generation +Info: nios2_processor: Done RTL generation for module 'nios_system_nios2_processor' +Info: nios2_processor: "nios_system" instantiated altera_nios2_qsys "nios2_processor" +Info: onchip_memory: Starting RTL generation for module 'nios_system_onchip_memory' +Info: onchip_memory: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_onchip_memory2 -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_onchip_memory2/generate_rtl.pl --name=nios_system_onchip_memory --dir=C:/Users/takayun/AppData/Local/Temp/alt7122_4250281716460532653.dir/0002_onchip_memory_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7122_4250281716460532653.dir/0002_onchip_memory_gen//nios_system_onchip_memory_component_configuration.pl --do_build_sim=0 ] +Info: onchip_memory: Done RTL generation for module 'nios_system_onchip_memory' +Info: onchip_memory: "nios_system" instantiated altera_avalon_onchip_memory2 "onchip_memory" +Info: jtag_uart: Starting RTL generation for module 'nios_system_jtag_uart' +Info: jtag_uart: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_jtag_uart -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_jtag_uart/generate_rtl.pl --name=nios_system_jtag_uart --dir=C:/Users/takayun/AppData/Local/Temp/alt7122_4250281716460532653.dir/0003_jtag_uart_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7122_4250281716460532653.dir/0003_jtag_uart_gen//nios_system_jtag_uart_component_configuration.pl --do_build_sim=0 ] +Info: jtag_uart: Done RTL generation for module 'nios_system_jtag_uart' +Info: jtag_uart: "nios_system" instantiated altera_avalon_jtag_uart "jtag_uart" +Info: LEDs: Starting RTL generation for module 'nios_system_LEDs' +Info: LEDs: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_LEDs --dir=C:/Users/takayun/AppData/Local/Temp/alt7122_4250281716460532653.dir/0004_LEDs_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7122_4250281716460532653.dir/0004_LEDs_gen//nios_system_LEDs_component_configuration.pl --do_build_sim=0 ] +Info: LEDs: Done RTL generation for module 'nios_system_LEDs' +Info: LEDs: "nios_system" instantiated altera_avalon_pio "LEDs" +Info: LEDRs: Starting RTL generation for module 'nios_system_LEDRs' +Info: LEDRs: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_LEDRs --dir=C:/Users/takayun/AppData/Local/Temp/alt7122_4250281716460532653.dir/0005_LEDRs_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7122_4250281716460532653.dir/0005_LEDRs_gen//nios_system_LEDRs_component_configuration.pl --do_build_sim=0 ] +Info: LEDRs: Done RTL generation for module 'nios_system_LEDRs' +Info: LEDRs: "nios_system" instantiated altera_avalon_pio "LEDRs" +Info: switches: Starting RTL generation for module 'nios_system_switches' +Info: switches: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_switches --dir=C:/Users/takayun/AppData/Local/Temp/alt7122_4250281716460532653.dir/0006_switches_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7122_4250281716460532653.dir/0006_switches_gen//nios_system_switches_component_configuration.pl --do_build_sim=0 ] +Info: switches: Done RTL generation for module 'nios_system_switches' +Info: switches: "nios_system" instantiated altera_avalon_pio "switches" +Info: push_switches: Starting RTL generation for module 'nios_system_push_switches' +Info: push_switches: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_push_switches --dir=C:/Users/takayun/AppData/Local/Temp/alt7122_4250281716460532653.dir/0007_push_switches_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7122_4250281716460532653.dir/0007_push_switches_gen//nios_system_push_switches_component_configuration.pl --do_build_sim=0 ] +Info: push_switches: Done RTL generation for module 'nios_system_push_switches' +Info: push_switches: "nios_system" instantiated altera_avalon_pio "push_switches" +Info: hex0: Starting RTL generation for module 'nios_system_hex0' +Info: hex0: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_hex0 --dir=C:/Users/takayun/AppData/Local/Temp/alt7122_4250281716460532653.dir/0008_hex0_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7122_4250281716460532653.dir/0008_hex0_gen//nios_system_hex0_component_configuration.pl --do_build_sim=0 ] +Info: hex0: Done RTL generation for module 'nios_system_hex0' +Info: hex0: "nios_system" instantiated altera_avalon_pio "hex0" +Info: nios2_processor_instruction_master_translator: "nios_system" instantiated altera_merlin_master_translator "nios2_processor_instruction_master_translator" +Info: nios2_processor_jtag_debug_module_translator: "nios_system" instantiated altera_merlin_slave_translator "nios2_processor_jtag_debug_module_translator" +Info: nios2_processor_instruction_master_translator_avalon_universal_master_0_agent: "nios_system" instantiated altera_merlin_master_agent "nios2_processor_instruction_master_translator_avalon_universal_master_0_agent" +Info: nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent: "nios_system" instantiated altera_merlin_slave_agent "nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent" +Info: nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo: "nios_system" instantiated altera_avalon_sc_fifo "nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo" +Info: addr_router: "nios_system" instantiated altera_merlin_router "addr_router" +Info: addr_router_001: "nios_system" instantiated altera_merlin_router "addr_router_001" +Info: id_router: "nios_system" instantiated altera_merlin_router "id_router" +Info: id_router_002: "nios_system" instantiated altera_merlin_router "id_router_002" +Info: rst_controller: "nios_system" instantiated altera_reset_controller "rst_controller" +Info: cmd_xbar_demux: "nios_system" instantiated altera_merlin_demultiplexer "cmd_xbar_demux" +Info: cmd_xbar_demux_001: "nios_system" instantiated altera_merlin_demultiplexer "cmd_xbar_demux_001" +Info: cmd_xbar_mux: "nios_system" instantiated altera_merlin_multiplexer "cmd_xbar_mux" +Info: rsp_xbar_demux_002: "nios_system" instantiated altera_merlin_demultiplexer "rsp_xbar_demux_002" +Info: rsp_xbar_mux: "nios_system" instantiated altera_merlin_multiplexer "rsp_xbar_mux" +Info: Reusing file C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/synthesis/submodules/altera_merlin_arbitrator.sv +Info: rsp_xbar_mux_001: "nios_system" instantiated altera_merlin_multiplexer "rsp_xbar_mux_001" +Info: Reusing file C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/synthesis/submodules/altera_merlin_arbitrator.sv +Info: irq_mapper: "nios_system" instantiated altera_irq_mapper "irq_mapper" +Info: nios_system: Done nios_system" with 26 modules, 134 files, 2613303 bytes +Info: ip-generate succeeded. +Info: Finished: Create HDL design files for synthesis diff --git a/nios_system_generation_13.rpt b/nios_system_generation_13.rpt new file mode 100644 index 0000000..c5494fe --- /dev/null +++ b/nios_system_generation_13.rpt @@ -0,0 +1,278 @@ +Info: Starting: Create block symbol file (.bsf) +Info: ip-generate --project-directory=C:/Users/takayun/Documents/DE2-115/qsys_tutorial/ --output-directory=C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/ --report-file=bsf:C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.bsf --system-info=DEVICE_FAMILY="Cyclone IV E" --system-info=DEVICE=EP4CE115F29C7 --system-info=DEVICE_SPEEDGRADE=7 --component-file=C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.qsys +Progress: Loading qsys_tutorial/nios_system.qsys +Progress: Reading input file +Progress: Adding clk_0 [clock_source 13.0] +Progress: Parameterizing module clk_0 +Progress: Adding nios2_processor [altera_nios2_qsys 13.0] +Progress: Parameterizing module nios2_processor +Progress: Adding onchip_memory [altera_avalon_onchip_memory2 13.0.1.99.2] +Progress: Parameterizing module onchip_memory +Progress: Adding jtag_uart [altera_avalon_jtag_uart 13.0.1.99.2] +Progress: Parameterizing module jtag_uart +Progress: Adding LEDs [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module LEDs +Progress: Adding LEDRs [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module LEDRs +Progress: Adding switches [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module switches +Progress: Adding push_switches [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module push_switches +Progress: Adding hex0 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex0 +Progress: Adding hex1 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex1 +Progress: Adding hex2 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex2 +Progress: Adding hex3 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex3 +Progress: Adding hex4 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex4 +Progress: Adding hex5 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex5 +Progress: Adding hex6 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex6 +Progress: Adding pio_0 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module pio_0 +Progress: Building connections +Progress: Parameterizing connections +Progress: Validating +Progress: Done reading input file +Info: nios_system.switches: PIO inputs are not hardwired in test bench. Undefined values will be read from PIO inputs during simulation. +Info: nios_system.push_switches: PIO inputs are not hardwired in test bench. Undefined values will be read from PIO inputs during simulation. +Info: ip-generate succeeded. +Info: Finished: Create block symbol file (.bsf) +Info: +Info: Starting: Create HDL design files for synthesis +Info: ip-generate --project-directory=C:/Users/takayun/Documents/DE2-115/qsys_tutorial/ --output-directory=C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/synthesis/ --file-set=QUARTUS_SYNTH --report-file=sopcinfo:C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.sopcinfo --report-file=html:C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.html --report-file=qip:C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/synthesis/nios_system.qip --report-file=cmp:C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.cmp --report-file=svd --system-info=DEVICE_FAMILY="Cyclone IV E" --system-info=DEVICE=EP4CE115F29C7 --system-info=DEVICE_SPEEDGRADE=7 --component-file=C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.qsys --language=VERILOG +Progress: Loading qsys_tutorial/nios_system.qsys +Progress: Reading input file +Progress: Adding clk_0 [clock_source 13.0] +Progress: Parameterizing module clk_0 +Progress: Adding nios2_processor [altera_nios2_qsys 13.0] +Progress: Parameterizing module nios2_processor +Progress: Adding onchip_memory [altera_avalon_onchip_memory2 13.0.1.99.2] +Progress: Parameterizing module onchip_memory +Progress: Adding jtag_uart [altera_avalon_jtag_uart 13.0.1.99.2] +Progress: Parameterizing module jtag_uart +Progress: Adding LEDs [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module LEDs +Progress: Adding LEDRs [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module LEDRs +Progress: Adding switches [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module switches +Progress: Adding push_switches [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module push_switches +Progress: Adding hex0 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex0 +Progress: Adding hex1 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex1 +Progress: Adding hex2 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex2 +Progress: Adding hex3 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex3 +Progress: Adding hex4 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex4 +Progress: Adding hex5 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex5 +Progress: Adding hex6 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex6 +Progress: Adding pio_0 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module pio_0 +Progress: Building connections +Progress: Parameterizing connections +Progress: Validating +Progress: Done reading input file +Info: nios_system.switches: PIO inputs are not hardwired in test bench. Undefined values will be read from PIO inputs during simulation. +Info: nios_system.push_switches: PIO inputs are not hardwired in test bench. Undefined values will be read from PIO inputs during simulation. +Info: nios_system: Generating nios_system "nios_system" for QUARTUS_SYNTH +Info: pipeline_bridge_swap_transform: After transform: 16 modules, 63 connections +Info: No custom instruction connections, skipping transform +Info: merlin_translator_transform: After transform: 33 modules, 131 connections +Info: merlin_domain_transform: After transform: 66 modules, 357 connections +Info: merlin_router_transform: After transform: 83 modules, 425 connections +Info: reset_adaptation_transform: After transform: 84 modules, 330 connections +Info: merlin_network_to_switch_transform: After transform: 117 modules, 398 connections +Info: merlin_mm_transform: After transform: 117 modules, 398 connections +Info: merlin_interrupt_mapper_transform: After transform: 118 modules, 401 connections +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Info: nios2_processor: Starting RTL generation for module 'nios_system_nios2_processor' +Info: nios2_processor: Generation command is [exec C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2/eperl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2/cpu_lib -I C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2/nios_lib -I C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2 -I C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2 -- C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2/generate_rtl.epl --name=nios_system_nios2_processor --dir=C:/Users/takayun/AppData/Local/Temp/alt7130_2991110928299906872.dir/0001_nios2_processor_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7130_2991110928299906872.dir/0001_nios2_processor_gen//nios_system_nios2_processor_processor_configuration.pl --do_build_sim=0 --bogus ] +Info: nios2_processor: # 2016.11.25 16:56:17 (*) Starting Nios II generation +Info: nios2_processor: # 2016.11.25 16:56:17 (*) Checking for plaintext license. +Info: nios2_processor: # 2016.11.25 16:56:18 (*) Couldn't query license setup in Quartus directory C:/altera/13.0sp1/quartus +Info: nios2_processor: # 2016.11.25 16:56:18 (*) Defaulting to contents of LM_LICENSE_FILE environment variable +Info: nios2_processor: # 2016.11.25 16:56:18 (*) LM_LICENSE_FILE environment variable is empty +Info: nios2_processor: # 2016.11.25 16:56:18 (*) Plaintext license not found. +Info: nios2_processor: # 2016.11.25 16:56:18 (*) No license required to generate encrypted Nios II/e. +Info: nios2_processor: # 2016.11.25 16:56:18 (*) Elaborating CPU configuration settings +Info: nios2_processor: # 2016.11.25 16:56:18 (*) Creating all objects for CPU +Info: nios2_processor: # 2016.11.25 16:56:19 (*) Generating RTL from CPU objects +Info: nios2_processor: # 2016.11.25 16:56:19 (*) Creating plain-text RTL +Info: nios2_processor: # 2016.11.25 16:56:21 (*) Done Nios II generation +Info: nios2_processor: Done RTL generation for module 'nios_system_nios2_processor' +Info: nios2_processor: "nios_system" instantiated altera_nios2_qsys "nios2_processor" +Info: onchip_memory: Starting RTL generation for module 'nios_system_onchip_memory' +Info: onchip_memory: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_onchip_memory2 -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_onchip_memory2/generate_rtl.pl --name=nios_system_onchip_memory --dir=C:/Users/takayun/AppData/Local/Temp/alt7130_2991110928299906872.dir/0002_onchip_memory_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7130_2991110928299906872.dir/0002_onchip_memory_gen//nios_system_onchip_memory_component_configuration.pl --do_build_sim=0 ] +Info: onchip_memory: Done RTL generation for module 'nios_system_onchip_memory' +Info: onchip_memory: "nios_system" instantiated altera_avalon_onchip_memory2 "onchip_memory" +Info: jtag_uart: Starting RTL generation for module 'nios_system_jtag_uart' +Info: jtag_uart: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_jtag_uart -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_jtag_uart/generate_rtl.pl --name=nios_system_jtag_uart --dir=C:/Users/takayun/AppData/Local/Temp/alt7130_2991110928299906872.dir/0003_jtag_uart_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7130_2991110928299906872.dir/0003_jtag_uart_gen//nios_system_jtag_uart_component_configuration.pl --do_build_sim=0 ] +Info: jtag_uart: Done RTL generation for module 'nios_system_jtag_uart' +Info: jtag_uart: "nios_system" instantiated altera_avalon_jtag_uart "jtag_uart" +Info: LEDs: Starting RTL generation for module 'nios_system_LEDs' +Info: LEDs: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_LEDs --dir=C:/Users/takayun/AppData/Local/Temp/alt7130_2991110928299906872.dir/0004_LEDs_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7130_2991110928299906872.dir/0004_LEDs_gen//nios_system_LEDs_component_configuration.pl --do_build_sim=0 ] +Info: LEDs: Done RTL generation for module 'nios_system_LEDs' +Info: LEDs: "nios_system" instantiated altera_avalon_pio "LEDs" +Info: LEDRs: Starting RTL generation for module 'nios_system_LEDRs' +Info: LEDRs: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_LEDRs --dir=C:/Users/takayun/AppData/Local/Temp/alt7130_2991110928299906872.dir/0005_LEDRs_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7130_2991110928299906872.dir/0005_LEDRs_gen//nios_system_LEDRs_component_configuration.pl --do_build_sim=0 ] +Info: LEDRs: Done RTL generation for module 'nios_system_LEDRs' +Info: LEDRs: "nios_system" instantiated altera_avalon_pio "LEDRs" +Info: switches: Starting RTL generation for module 'nios_system_switches' +Info: switches: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_switches --dir=C:/Users/takayun/AppData/Local/Temp/alt7130_2991110928299906872.dir/0006_switches_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7130_2991110928299906872.dir/0006_switches_gen//nios_system_switches_component_configuration.pl --do_build_sim=0 ] +Info: switches: Done RTL generation for module 'nios_system_switches' +Info: switches: "nios_system" instantiated altera_avalon_pio "switches" +Info: push_switches: Starting RTL generation for module 'nios_system_push_switches' +Info: push_switches: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_push_switches --dir=C:/Users/takayun/AppData/Local/Temp/alt7130_2991110928299906872.dir/0007_push_switches_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7130_2991110928299906872.dir/0007_push_switches_gen//nios_system_push_switches_component_configuration.pl --do_build_sim=0 ] +Info: push_switches: Done RTL generation for module 'nios_system_push_switches' +Info: push_switches: "nios_system" instantiated altera_avalon_pio "push_switches" +Info: hex0: Starting RTL generation for module 'nios_system_hex0' +Info: hex0: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_hex0 --dir=C:/Users/takayun/AppData/Local/Temp/alt7130_2991110928299906872.dir/0008_hex0_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7130_2991110928299906872.dir/0008_hex0_gen//nios_system_hex0_component_configuration.pl --do_build_sim=0 ] +Info: hex0: Done RTL generation for module 'nios_system_hex0' +Info: hex0: "nios_system" instantiated altera_avalon_pio "hex0" +Info: nios2_processor_instruction_master_translator: "nios_system" instantiated altera_merlin_master_translator "nios2_processor_instruction_master_translator" +Info: nios2_processor_jtag_debug_module_translator: "nios_system" instantiated altera_merlin_slave_translator "nios2_processor_jtag_debug_module_translator" +Info: nios2_processor_instruction_master_translator_avalon_universal_master_0_agent: "nios_system" instantiated altera_merlin_master_agent "nios2_processor_instruction_master_translator_avalon_universal_master_0_agent" +Info: nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent: "nios_system" instantiated altera_merlin_slave_agent "nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent" +Info: nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo: "nios_system" instantiated altera_avalon_sc_fifo "nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo" +Info: addr_router: "nios_system" instantiated altera_merlin_router "addr_router" +Info: addr_router_001: "nios_system" instantiated altera_merlin_router "addr_router_001" +Info: id_router: "nios_system" instantiated altera_merlin_router "id_router" +Info: id_router_002: "nios_system" instantiated altera_merlin_router "id_router_002" +Info: rst_controller: "nios_system" instantiated altera_reset_controller "rst_controller" +Info: cmd_xbar_demux: "nios_system" instantiated altera_merlin_demultiplexer "cmd_xbar_demux" +Info: cmd_xbar_demux_001: "nios_system" instantiated altera_merlin_demultiplexer "cmd_xbar_demux_001" +Info: cmd_xbar_mux: "nios_system" instantiated altera_merlin_multiplexer "cmd_xbar_mux" +Info: rsp_xbar_demux_002: "nios_system" instantiated altera_merlin_demultiplexer "rsp_xbar_demux_002" +Info: rsp_xbar_mux: "nios_system" instantiated altera_merlin_multiplexer "rsp_xbar_mux" +Info: Reusing file C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/synthesis/submodules/altera_merlin_arbitrator.sv +Info: rsp_xbar_mux_001: "nios_system" instantiated altera_merlin_multiplexer "rsp_xbar_mux_001" +Info: Reusing file C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/synthesis/submodules/altera_merlin_arbitrator.sv +Info: irq_mapper: "nios_system" instantiated altera_irq_mapper "irq_mapper" +Info: nios_system: Done nios_system" with 26 modules, 134 files, 2677815 bytes +Info: ip-generate succeeded. +Info: Finished: Create HDL design files for synthesis diff --git a/nios_system_generation_14.rpt b/nios_system_generation_14.rpt new file mode 100644 index 0000000..e784d71 --- /dev/null +++ b/nios_system_generation_14.rpt @@ -0,0 +1,293 @@ +Info: Starting: Create block symbol file (.bsf) +Info: ip-generate --project-directory=C:/Users/takayun/Documents/DE2-115/qsys_tutorial/ --output-directory=C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/ --report-file=bsf:C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.bsf --system-info=DEVICE_FAMILY="Cyclone IV E" --system-info=DEVICE=EP4CE115F29C7 --system-info=DEVICE_SPEEDGRADE=7 --component-file=C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.qsys +Progress: Loading qsys_tutorial/nios_system.qsys +Progress: Reading input file +Progress: Adding clk_0 [clock_source 13.0] +Progress: Parameterizing module clk_0 +Progress: Adding nios2_processor [altera_nios2_qsys 13.0] +Progress: Parameterizing module nios2_processor +Progress: Adding onchip_memory [altera_avalon_onchip_memory2 13.0.1.99.2] +Progress: Parameterizing module onchip_memory +Progress: Adding jtag_uart [altera_avalon_jtag_uart 13.0.1.99.2] +Progress: Parameterizing module jtag_uart +Progress: Adding LEDs [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module LEDs +Progress: Adding LEDRs [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module LEDRs +Progress: Adding switches [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module switches +Progress: Adding push_switches [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module push_switches +Progress: Adding hex0 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex0 +Progress: Adding hex1 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex1 +Progress: Adding hex2 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex2 +Progress: Adding hex3 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex3 +Progress: Adding hex4 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex4 +Progress: Adding hex5 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex5 +Progress: Adding hex6 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex6 +Progress: Adding pio_0 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module pio_0 +Progress: Adding lcd [altera_avalon_lcd_16207 13.0.1.99.2] +Progress: Parameterizing module lcd +Progress: Building connections +Progress: Parameterizing connections +Progress: Validating +Progress: Done reading input file +Info: nios_system.switches: PIO inputs are not hardwired in test bench. Undefined values will be read from PIO inputs during simulation. +Info: nios_system.push_switches: PIO inputs are not hardwired in test bench. Undefined values will be read from PIO inputs during simulation. +Info: ip-generate succeeded. +Info: Finished: Create block symbol file (.bsf) +Info: +Info: Starting: Create HDL design files for synthesis +Info: ip-generate --project-directory=C:/Users/takayun/Documents/DE2-115/qsys_tutorial/ --output-directory=C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/synthesis/ --file-set=QUARTUS_SYNTH --report-file=sopcinfo:C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.sopcinfo --report-file=html:C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.html --report-file=qip:C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/synthesis/nios_system.qip --report-file=cmp:C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.cmp --report-file=svd --system-info=DEVICE_FAMILY="Cyclone IV E" --system-info=DEVICE=EP4CE115F29C7 --system-info=DEVICE_SPEEDGRADE=7 --component-file=C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.qsys --language=VERILOG +Progress: Loading qsys_tutorial/nios_system.qsys +Progress: Reading input file +Progress: Adding clk_0 [clock_source 13.0] +Progress: Parameterizing module clk_0 +Progress: Adding nios2_processor [altera_nios2_qsys 13.0] +Progress: Parameterizing module nios2_processor +Progress: Adding onchip_memory [altera_avalon_onchip_memory2 13.0.1.99.2] +Progress: Parameterizing module onchip_memory +Progress: Adding jtag_uart [altera_avalon_jtag_uart 13.0.1.99.2] +Progress: Parameterizing module jtag_uart +Progress: Adding LEDs [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module LEDs +Progress: Adding LEDRs [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module LEDRs +Progress: Adding switches [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module switches +Progress: Adding push_switches [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module push_switches +Progress: Adding hex0 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex0 +Progress: Adding hex1 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex1 +Progress: Adding hex2 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex2 +Progress: Adding hex3 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex3 +Progress: Adding hex4 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex4 +Progress: Adding hex5 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex5 +Progress: Adding hex6 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex6 +Progress: Adding pio_0 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module pio_0 +Progress: Adding lcd [altera_avalon_lcd_16207 13.0.1.99.2] +Progress: Parameterizing module lcd +Progress: Building connections +Progress: Parameterizing connections +Progress: Validating +Progress: Done reading input file +Info: nios_system.switches: PIO inputs are not hardwired in test bench. Undefined values will be read from PIO inputs during simulation. +Info: nios_system.push_switches: PIO inputs are not hardwired in test bench. Undefined values will be read from PIO inputs during simulation. +Info: nios_system: Generating nios_system "nios_system" for QUARTUS_SYNTH +Info: pipeline_bridge_swap_transform: After transform: 17 modules, 67 connections +Info: No custom instruction connections, skipping transform +Info: merlin_translator_transform: After transform: 35 modules, 139 connections +Info: merlin_domain_transform: After transform: 70 modules, 379 connections +Info: merlin_router_transform: After transform: 88 modules, 451 connections +Info: reset_adaptation_transform: After transform: 89 modules, 350 connections +Info: merlin_network_to_switch_transform: After transform: 124 modules, 422 connections +Info: merlin_mm_transform: After transform: 124 modules, 422 connections +Info: merlin_interrupt_mapper_transform: After transform: 125 modules, 425 connections +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Info: nios2_processor: Starting RTL generation for module 'nios_system_nios2_processor' +Info: nios2_processor: Generation command is [exec C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2/eperl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2/cpu_lib -I C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2/nios_lib -I C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2 -I C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2 -- C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2/generate_rtl.epl --name=nios_system_nios2_processor --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0001_nios2_processor_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0001_nios2_processor_gen//nios_system_nios2_processor_processor_configuration.pl --do_build_sim=0 --bogus ] +Info: nios2_processor: # 2016.12.01 22:08:05 (*) Starting Nios II generation +Info: nios2_processor: # 2016.12.01 22:08:05 (*) Checking for plaintext license. +Info: nios2_processor: # 2016.12.01 22:08:06 (*) Couldn't query license setup in Quartus directory C:/altera/13.0sp1/quartus +Info: nios2_processor: # 2016.12.01 22:08:06 (*) Defaulting to contents of LM_LICENSE_FILE environment variable +Info: nios2_processor: # 2016.12.01 22:08:06 (*) LM_LICENSE_FILE environment variable is empty +Info: nios2_processor: # 2016.12.01 22:08:06 (*) Plaintext license not found. +Info: nios2_processor: # 2016.12.01 22:08:06 (*) No license required to generate encrypted Nios II/e. +Info: nios2_processor: # 2016.12.01 22:08:06 (*) Elaborating CPU configuration settings +Info: nios2_processor: # 2016.12.01 22:08:06 (*) Creating all objects for CPU +Info: nios2_processor: # 2016.12.01 22:08:07 (*) Generating RTL from CPU objects +Info: nios2_processor: # 2016.12.01 22:08:07 (*) Creating plain-text RTL +Info: nios2_processor: # 2016.12.01 22:08:09 (*) Done Nios II generation +Info: nios2_processor: Done RTL generation for module 'nios_system_nios2_processor' +Info: nios2_processor: "nios_system" instantiated altera_nios2_qsys "nios2_processor" +Info: onchip_memory: Starting RTL generation for module 'nios_system_onchip_memory' +Info: onchip_memory: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_onchip_memory2 -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_onchip_memory2/generate_rtl.pl --name=nios_system_onchip_memory --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0002_onchip_memory_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0002_onchip_memory_gen//nios_system_onchip_memory_component_configuration.pl --do_build_sim=0 ] +Info: onchip_memory: Done RTL generation for module 'nios_system_onchip_memory' +Info: onchip_memory: "nios_system" instantiated altera_avalon_onchip_memory2 "onchip_memory" +Info: jtag_uart: Starting RTL generation for module 'nios_system_jtag_uart' +Info: jtag_uart: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_jtag_uart -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_jtag_uart/generate_rtl.pl --name=nios_system_jtag_uart --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0003_jtag_uart_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0003_jtag_uart_gen//nios_system_jtag_uart_component_configuration.pl --do_build_sim=0 ] +Info: jtag_uart: Done RTL generation for module 'nios_system_jtag_uart' +Info: jtag_uart: "nios_system" instantiated altera_avalon_jtag_uart "jtag_uart" +Info: LEDs: Starting RTL generation for module 'nios_system_LEDs' +Info: LEDs: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_LEDs --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0004_LEDs_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0004_LEDs_gen//nios_system_LEDs_component_configuration.pl --do_build_sim=0 ] +Info: LEDs: Done RTL generation for module 'nios_system_LEDs' +Info: LEDs: "nios_system" instantiated altera_avalon_pio "LEDs" +Info: LEDRs: Starting RTL generation for module 'nios_system_LEDRs' +Info: LEDRs: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_LEDRs --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0005_LEDRs_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0005_LEDRs_gen//nios_system_LEDRs_component_configuration.pl --do_build_sim=0 ] +Info: LEDRs: Done RTL generation for module 'nios_system_LEDRs' +Info: LEDRs: "nios_system" instantiated altera_avalon_pio "LEDRs" +Info: switches: Starting RTL generation for module 'nios_system_switches' +Info: switches: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_switches --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0006_switches_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0006_switches_gen//nios_system_switches_component_configuration.pl --do_build_sim=0 ] +Info: switches: Done RTL generation for module 'nios_system_switches' +Info: switches: "nios_system" instantiated altera_avalon_pio "switches" +Info: push_switches: Starting RTL generation for module 'nios_system_push_switches' +Info: push_switches: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_push_switches --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0007_push_switches_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0007_push_switches_gen//nios_system_push_switches_component_configuration.pl --do_build_sim=0 ] +Info: push_switches: Done RTL generation for module 'nios_system_push_switches' +Info: push_switches: "nios_system" instantiated altera_avalon_pio "push_switches" +Info: hex0: Starting RTL generation for module 'nios_system_hex0' +Info: hex0: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_hex0 --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0008_hex0_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0008_hex0_gen//nios_system_hex0_component_configuration.pl --do_build_sim=0 ] +Info: hex0: Done RTL generation for module 'nios_system_hex0' +Info: hex0: "nios_system" instantiated altera_avalon_pio "hex0" +Info: lcd: Starting RTL generation for module 'nios_system_lcd' +Info: lcd: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_lcd_16207 -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_lcd_16207/generate_rtl.pl --name=nios_system_lcd --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0009_lcd_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0009_lcd_gen//nios_system_lcd_component_configuration.pl --do_build_sim=0 ] +Info: lcd: Done RTL generation for module 'nios_system_lcd' +Info: lcd: "nios_system" instantiated altera_avalon_lcd_16207 "lcd" +Info: nios2_processor_instruction_master_translator: "nios_system" instantiated altera_merlin_master_translator "nios2_processor_instruction_master_translator" +Info: nios2_processor_jtag_debug_module_translator: "nios_system" instantiated altera_merlin_slave_translator "nios2_processor_jtag_debug_module_translator" +Info: nios2_processor_instruction_master_translator_avalon_universal_master_0_agent: "nios_system" instantiated altera_merlin_master_agent "nios2_processor_instruction_master_translator_avalon_universal_master_0_agent" +Info: nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent: "nios_system" instantiated altera_merlin_slave_agent "nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent" +Info: nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo: "nios_system" instantiated altera_avalon_sc_fifo "nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo" +Info: addr_router: "nios_system" instantiated altera_merlin_router "addr_router" +Info: addr_router_001: "nios_system" instantiated altera_merlin_router "addr_router_001" +Info: id_router: "nios_system" instantiated altera_merlin_router "id_router" +Info: id_router_002: "nios_system" instantiated altera_merlin_router "id_router_002" +Info: rst_controller: "nios_system" instantiated altera_reset_controller "rst_controller" +Info: cmd_xbar_demux: "nios_system" instantiated altera_merlin_demultiplexer "cmd_xbar_demux" +Info: cmd_xbar_demux_001: "nios_system" instantiated altera_merlin_demultiplexer "cmd_xbar_demux_001" +Info: cmd_xbar_mux: "nios_system" instantiated altera_merlin_multiplexer "cmd_xbar_mux" +Info: rsp_xbar_demux_002: "nios_system" instantiated altera_merlin_demultiplexer "rsp_xbar_demux_002" +Info: rsp_xbar_mux: "nios_system" instantiated altera_merlin_multiplexer "rsp_xbar_mux" +Info: Reusing file C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/synthesis/submodules/altera_merlin_arbitrator.sv +Info: rsp_xbar_mux_001: "nios_system" instantiated altera_merlin_multiplexer "rsp_xbar_mux_001" +Info: Reusing file C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/synthesis/submodules/altera_merlin_arbitrator.sv +Info: irq_mapper: "nios_system" instantiated altera_irq_mapper "irq_mapper" +Info: nios_system: Done nios_system" with 27 modules, 141 files, 2818453 bytes +Info: ip-generate succeeded. +Info: Finished: Create HDL design files for synthesis diff --git a/nios_system_generation_15.rpt b/nios_system_generation_15.rpt new file mode 100644 index 0000000..afb37ec --- /dev/null +++ b/nios_system_generation_15.rpt @@ -0,0 +1,293 @@ +Info: Starting: Create block symbol file (.bsf) +Info: ip-generate --project-directory=C:/Users/takayun/Documents/DE2-115/qsys_tutorial/ --output-directory=C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/ --report-file=bsf:C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.bsf --system-info=DEVICE_FAMILY="Cyclone IV E" --system-info=DEVICE=EP4CE115F29C7 --system-info=DEVICE_SPEEDGRADE=7 --component-file=C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.qsys +Progress: Loading qsys_tutorial/nios_system.qsys +Progress: Reading input file +Progress: Adding clk_0 [clock_source 13.0] +Progress: Parameterizing module clk_0 +Progress: Adding nios2_processor [altera_nios2_qsys 13.0] +Progress: Parameterizing module nios2_processor +Progress: Adding onchip_memory [altera_avalon_onchip_memory2 13.0.1.99.2] +Progress: Parameterizing module onchip_memory +Progress: Adding jtag_uart [altera_avalon_jtag_uart 13.0.1.99.2] +Progress: Parameterizing module jtag_uart +Progress: Adding LEDs [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module LEDs +Progress: Adding LEDRs [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module LEDRs +Progress: Adding switches [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module switches +Progress: Adding push_switches [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module push_switches +Progress: Adding hex0 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex0 +Progress: Adding hex1 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex1 +Progress: Adding hex2 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex2 +Progress: Adding hex3 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex3 +Progress: Adding hex4 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex4 +Progress: Adding hex5 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex5 +Progress: Adding hex6 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex6 +Progress: Adding pio_0 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module pio_0 +Progress: Adding lcd [altera_avalon_lcd_16207 13.0.1.99.2] +Progress: Parameterizing module lcd +Progress: Building connections +Progress: Parameterizing connections +Progress: Validating +Progress: Done reading input file +Info: nios_system.switches: PIO inputs are not hardwired in test bench. Undefined values will be read from PIO inputs during simulation. +Info: nios_system.push_switches: PIO inputs are not hardwired in test bench. Undefined values will be read from PIO inputs during simulation. +Info: ip-generate succeeded. +Info: Finished: Create block symbol file (.bsf) +Info: +Info: Starting: Create HDL design files for synthesis +Info: ip-generate --project-directory=C:/Users/takayun/Documents/DE2-115/qsys_tutorial/ --output-directory=C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/synthesis/ --file-set=QUARTUS_SYNTH --report-file=sopcinfo:C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.sopcinfo --report-file=html:C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.html --report-file=qip:C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/synthesis/nios_system.qip --report-file=cmp:C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.cmp --report-file=svd --system-info=DEVICE_FAMILY="Cyclone IV E" --system-info=DEVICE=EP4CE115F29C7 --system-info=DEVICE_SPEEDGRADE=7 --component-file=C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.qsys --language=VERILOG +Progress: Loading qsys_tutorial/nios_system.qsys +Progress: Reading input file +Progress: Adding clk_0 [clock_source 13.0] +Progress: Parameterizing module clk_0 +Progress: Adding nios2_processor [altera_nios2_qsys 13.0] +Progress: Parameterizing module nios2_processor +Progress: Adding onchip_memory [altera_avalon_onchip_memory2 13.0.1.99.2] +Progress: Parameterizing module onchip_memory +Progress: Adding jtag_uart [altera_avalon_jtag_uart 13.0.1.99.2] +Progress: Parameterizing module jtag_uart +Progress: Adding LEDs [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module LEDs +Progress: Adding LEDRs [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module LEDRs +Progress: Adding switches [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module switches +Progress: Adding push_switches [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module push_switches +Progress: Adding hex0 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex0 +Progress: Adding hex1 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex1 +Progress: Adding hex2 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex2 +Progress: Adding hex3 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex3 +Progress: Adding hex4 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex4 +Progress: Adding hex5 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex5 +Progress: Adding hex6 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex6 +Progress: Adding pio_0 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module pio_0 +Progress: Adding lcd [altera_avalon_lcd_16207 13.0.1.99.2] +Progress: Parameterizing module lcd +Progress: Building connections +Progress: Parameterizing connections +Progress: Validating +Progress: Done reading input file +Info: nios_system.switches: PIO inputs are not hardwired in test bench. Undefined values will be read from PIO inputs during simulation. +Info: nios_system.push_switches: PIO inputs are not hardwired in test bench. Undefined values will be read from PIO inputs during simulation. +Info: nios_system: Generating nios_system "nios_system" for QUARTUS_SYNTH +Info: pipeline_bridge_swap_transform: After transform: 17 modules, 67 connections +Info: No custom instruction connections, skipping transform +Info: merlin_translator_transform: After transform: 35 modules, 139 connections +Info: merlin_domain_transform: After transform: 70 modules, 379 connections +Info: merlin_router_transform: After transform: 88 modules, 451 connections +Info: reset_adaptation_transform: After transform: 89 modules, 350 connections +Info: merlin_network_to_switch_transform: After transform: 124 modules, 422 connections +Info: merlin_mm_transform: After transform: 124 modules, 422 connections +Info: merlin_interrupt_mapper_transform: After transform: 125 modules, 425 connections +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Info: nios2_processor: Starting RTL generation for module 'nios_system_nios2_processor' +Info: nios2_processor: Generation command is [exec C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2/eperl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2/cpu_lib -I C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2/nios_lib -I C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2 -I C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2 -- C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2/generate_rtl.epl --name=nios_system_nios2_processor --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0026_nios2_processor_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0026_nios2_processor_gen//nios_system_nios2_processor_processor_configuration.pl --do_build_sim=0 --bogus ] +Info: nios2_processor: # 2016.12.01 22:29:13 (*) Starting Nios II generation +Info: nios2_processor: # 2016.12.01 22:29:13 (*) Checking for plaintext license. +Info: nios2_processor: # 2016.12.01 22:29:13 (*) Couldn't query license setup in Quartus directory C:/altera/13.0sp1/quartus +Info: nios2_processor: # 2016.12.01 22:29:13 (*) Defaulting to contents of LM_LICENSE_FILE environment variable +Info: nios2_processor: # 2016.12.01 22:29:13 (*) LM_LICENSE_FILE environment variable is empty +Info: nios2_processor: # 2016.12.01 22:29:13 (*) Plaintext license not found. +Info: nios2_processor: # 2016.12.01 22:29:13 (*) No license required to generate encrypted Nios II/e. +Info: nios2_processor: # 2016.12.01 22:29:13 (*) Elaborating CPU configuration settings +Info: nios2_processor: # 2016.12.01 22:29:13 (*) Creating all objects for CPU +Info: nios2_processor: # 2016.12.01 22:29:15 (*) Generating RTL from CPU objects +Info: nios2_processor: # 2016.12.01 22:29:15 (*) Creating plain-text RTL +Info: nios2_processor: # 2016.12.01 22:29:17 (*) Done Nios II generation +Info: nios2_processor: Done RTL generation for module 'nios_system_nios2_processor' +Info: nios2_processor: "nios_system" instantiated altera_nios2_qsys "nios2_processor" +Info: onchip_memory: Starting RTL generation for module 'nios_system_onchip_memory' +Info: onchip_memory: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_onchip_memory2 -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_onchip_memory2/generate_rtl.pl --name=nios_system_onchip_memory --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0027_onchip_memory_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0027_onchip_memory_gen//nios_system_onchip_memory_component_configuration.pl --do_build_sim=0 ] +Info: onchip_memory: Done RTL generation for module 'nios_system_onchip_memory' +Info: onchip_memory: "nios_system" instantiated altera_avalon_onchip_memory2 "onchip_memory" +Info: jtag_uart: Starting RTL generation for module 'nios_system_jtag_uart' +Info: jtag_uart: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_jtag_uart -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_jtag_uart/generate_rtl.pl --name=nios_system_jtag_uart --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0028_jtag_uart_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0028_jtag_uart_gen//nios_system_jtag_uart_component_configuration.pl --do_build_sim=0 ] +Info: jtag_uart: Done RTL generation for module 'nios_system_jtag_uart' +Info: jtag_uart: "nios_system" instantiated altera_avalon_jtag_uart "jtag_uart" +Info: LEDs: Starting RTL generation for module 'nios_system_LEDs' +Info: LEDs: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_LEDs --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0029_LEDs_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0029_LEDs_gen//nios_system_LEDs_component_configuration.pl --do_build_sim=0 ] +Info: LEDs: Done RTL generation for module 'nios_system_LEDs' +Info: LEDs: "nios_system" instantiated altera_avalon_pio "LEDs" +Info: LEDRs: Starting RTL generation for module 'nios_system_LEDRs' +Info: LEDRs: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_LEDRs --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0030_LEDRs_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0030_LEDRs_gen//nios_system_LEDRs_component_configuration.pl --do_build_sim=0 ] +Info: LEDRs: Done RTL generation for module 'nios_system_LEDRs' +Info: LEDRs: "nios_system" instantiated altera_avalon_pio "LEDRs" +Info: switches: Starting RTL generation for module 'nios_system_switches' +Info: switches: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_switches --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0031_switches_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0031_switches_gen//nios_system_switches_component_configuration.pl --do_build_sim=0 ] +Info: switches: Done RTL generation for module 'nios_system_switches' +Info: switches: "nios_system" instantiated altera_avalon_pio "switches" +Info: push_switches: Starting RTL generation for module 'nios_system_push_switches' +Info: push_switches: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_push_switches --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0032_push_switches_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0032_push_switches_gen//nios_system_push_switches_component_configuration.pl --do_build_sim=0 ] +Info: push_switches: Done RTL generation for module 'nios_system_push_switches' +Info: push_switches: "nios_system" instantiated altera_avalon_pio "push_switches" +Info: hex0: Starting RTL generation for module 'nios_system_hex0' +Info: hex0: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_hex0 --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0033_hex0_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0033_hex0_gen//nios_system_hex0_component_configuration.pl --do_build_sim=0 ] +Info: hex0: Done RTL generation for module 'nios_system_hex0' +Info: hex0: "nios_system" instantiated altera_avalon_pio "hex0" +Info: lcd: Starting RTL generation for module 'nios_system_lcd' +Info: lcd: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_lcd_16207 -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_lcd_16207/generate_rtl.pl --name=nios_system_lcd --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0034_lcd_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0034_lcd_gen//nios_system_lcd_component_configuration.pl --do_build_sim=0 ] +Info: lcd: Done RTL generation for module 'nios_system_lcd' +Info: lcd: "nios_system" instantiated altera_avalon_lcd_16207 "lcd" +Info: nios2_processor_instruction_master_translator: "nios_system" instantiated altera_merlin_master_translator "nios2_processor_instruction_master_translator" +Info: nios2_processor_jtag_debug_module_translator: "nios_system" instantiated altera_merlin_slave_translator "nios2_processor_jtag_debug_module_translator" +Info: nios2_processor_instruction_master_translator_avalon_universal_master_0_agent: "nios_system" instantiated altera_merlin_master_agent "nios2_processor_instruction_master_translator_avalon_universal_master_0_agent" +Info: nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent: "nios_system" instantiated altera_merlin_slave_agent "nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent" +Info: nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo: "nios_system" instantiated altera_avalon_sc_fifo "nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo" +Info: addr_router: "nios_system" instantiated altera_merlin_router "addr_router" +Info: addr_router_001: "nios_system" instantiated altera_merlin_router "addr_router_001" +Info: id_router: "nios_system" instantiated altera_merlin_router "id_router" +Info: id_router_002: "nios_system" instantiated altera_merlin_router "id_router_002" +Info: rst_controller: "nios_system" instantiated altera_reset_controller "rst_controller" +Info: cmd_xbar_demux: "nios_system" instantiated altera_merlin_demultiplexer "cmd_xbar_demux" +Info: cmd_xbar_demux_001: "nios_system" instantiated altera_merlin_demultiplexer "cmd_xbar_demux_001" +Info: cmd_xbar_mux: "nios_system" instantiated altera_merlin_multiplexer "cmd_xbar_mux" +Info: rsp_xbar_demux_002: "nios_system" instantiated altera_merlin_demultiplexer "rsp_xbar_demux_002" +Info: rsp_xbar_mux: "nios_system" instantiated altera_merlin_multiplexer "rsp_xbar_mux" +Info: Reusing file C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/synthesis/submodules/altera_merlin_arbitrator.sv +Info: rsp_xbar_mux_001: "nios_system" instantiated altera_merlin_multiplexer "rsp_xbar_mux_001" +Info: Reusing file C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/synthesis/submodules/altera_merlin_arbitrator.sv +Info: irq_mapper: "nios_system" instantiated altera_irq_mapper "irq_mapper" +Info: nios_system: Done nios_system" with 27 modules, 141 files, 2818453 bytes +Info: ip-generate succeeded. +Info: Finished: Create HDL design files for synthesis diff --git a/nios_system_generation_16.rpt b/nios_system_generation_16.rpt new file mode 100644 index 0000000..7328a6e --- /dev/null +++ b/nios_system_generation_16.rpt @@ -0,0 +1,326 @@ +Info: Starting: Create block symbol file (.bsf) +Info: ip-generate --project-directory=C:/Users/takayun/Documents/DE2-115/qsys_tutorial/ --output-directory=C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/ --report-file=bsf:C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.bsf --system-info=DEVICE_FAMILY="Cyclone IV E" --system-info=DEVICE=EP4CE115F29C7 --system-info=DEVICE_SPEEDGRADE=7 --component-file=C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.qsys +Progress: Loading qsys_tutorial/nios_system.qsys +Progress: Reading input file +Progress: Adding clk_0 [clock_source 13.0] +Progress: Parameterizing module clk_0 +Progress: Adding nios2_processor [altera_nios2_qsys 13.0] +Progress: Parameterizing module nios2_processor +Progress: Adding onchip_memory [altera_avalon_onchip_memory2 13.0.1.99.2] +Progress: Parameterizing module onchip_memory +Progress: Adding jtag_uart [altera_avalon_jtag_uart 13.0.1.99.2] +Progress: Parameterizing module jtag_uart +Progress: Adding LEDs [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module LEDs +Progress: Adding LEDRs [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module LEDRs +Progress: Adding switches [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module switches +Progress: Adding push_switches [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module push_switches +Progress: Adding hex0 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex0 +Progress: Adding hex1 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex1 +Progress: Adding hex2 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex2 +Progress: Adding hex3 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex3 +Progress: Adding hex4 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex4 +Progress: Adding hex5 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex5 +Progress: Adding hex6 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex6 +Progress: Adding pio_0 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module pio_0 +Progress: Adding lcd_data [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module lcd_data +Progress: Adding lcd_E [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module lcd_E +Progress: Adding lcd_RS [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module lcd_RS +Progress: Adding lcd_RW [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module lcd_RW +Progress: Building connections +Progress: Parameterizing connections +Progress: Validating +Progress: Done reading input file +Info: nios_system.switches: PIO inputs are not hardwired in test bench. Undefined values will be read from PIO inputs during simulation. +Info: nios_system.push_switches: PIO inputs are not hardwired in test bench. Undefined values will be read from PIO inputs during simulation. +Info: ip-generate succeeded. +Info: Finished: Create block symbol file (.bsf) +Info: +Info: Starting: Create HDL design files for synthesis +Info: ip-generate --project-directory=C:/Users/takayun/Documents/DE2-115/qsys_tutorial/ --output-directory=C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/synthesis/ --file-set=QUARTUS_SYNTH --report-file=sopcinfo:C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.sopcinfo --report-file=html:C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.html --report-file=qip:C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/synthesis/nios_system.qip --report-file=cmp:C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.cmp --report-file=svd --system-info=DEVICE_FAMILY="Cyclone IV E" --system-info=DEVICE=EP4CE115F29C7 --system-info=DEVICE_SPEEDGRADE=7 --component-file=C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.qsys --language=VERILOG +Progress: Loading qsys_tutorial/nios_system.qsys +Progress: Reading input file +Progress: Adding clk_0 [clock_source 13.0] +Progress: Parameterizing module clk_0 +Progress: Adding nios2_processor [altera_nios2_qsys 13.0] +Progress: Parameterizing module nios2_processor +Progress: Adding onchip_memory [altera_avalon_onchip_memory2 13.0.1.99.2] +Progress: Parameterizing module onchip_memory +Progress: Adding jtag_uart [altera_avalon_jtag_uart 13.0.1.99.2] +Progress: Parameterizing module jtag_uart +Progress: Adding LEDs [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module LEDs +Progress: Adding LEDRs [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module LEDRs +Progress: Adding switches [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module switches +Progress: Adding push_switches [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module push_switches +Progress: Adding hex0 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex0 +Progress: Adding hex1 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex1 +Progress: Adding hex2 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex2 +Progress: Adding hex3 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex3 +Progress: Adding hex4 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex4 +Progress: Adding hex5 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex5 +Progress: Adding hex6 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex6 +Progress: Adding pio_0 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module pio_0 +Progress: Adding lcd_data [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module lcd_data +Progress: Adding lcd_E [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module lcd_E +Progress: Adding lcd_RS [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module lcd_RS +Progress: Adding lcd_RW [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module lcd_RW +Progress: Building connections +Progress: Parameterizing connections +Progress: Validating +Progress: Done reading input file +Info: nios_system.switches: PIO inputs are not hardwired in test bench. Undefined values will be read from PIO inputs during simulation. +Info: nios_system.push_switches: PIO inputs are not hardwired in test bench. Undefined values will be read from PIO inputs during simulation. +Info: nios_system: Generating nios_system "nios_system" for QUARTUS_SYNTH +Info: pipeline_bridge_swap_transform: After transform: 20 modules, 79 connections +Info: No custom instruction connections, skipping transform +Info: merlin_translator_transform: After transform: 41 modules, 163 connections +Info: merlin_domain_transform: After transform: 82 modules, 445 connections +Info: merlin_router_transform: After transform: 103 modules, 529 connections +Info: reset_adaptation_transform: After transform: 104 modules, 410 connections +Info: merlin_network_to_switch_transform: After transform: 145 modules, 494 connections +Info: merlin_mm_transform: After transform: 145 modules, 494 connections +Info: merlin_interrupt_mapper_transform: After transform: 146 modules, 497 connections +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Info: nios2_processor: Starting RTL generation for module 'nios_system_nios2_processor' +Info: nios2_processor: Generation command is [exec C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2/eperl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2/cpu_lib -I C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2/nios_lib -I C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2 -I C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2 -- C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2/generate_rtl.epl --name=nios_system_nios2_processor --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0051_nios2_processor_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0051_nios2_processor_gen//nios_system_nios2_processor_processor_configuration.pl --do_build_sim=0 --bogus ] +Info: nios2_processor: # 2016.12.01 23:13:10 (*) Starting Nios II generation +Info: nios2_processor: # 2016.12.01 23:13:10 (*) Checking for plaintext license. +Info: nios2_processor: # 2016.12.01 23:13:10 (*) Couldn't query license setup in Quartus directory C:/altera/13.0sp1/quartus +Info: nios2_processor: # 2016.12.01 23:13:10 (*) Defaulting to contents of LM_LICENSE_FILE environment variable +Info: nios2_processor: # 2016.12.01 23:13:10 (*) LM_LICENSE_FILE environment variable is empty +Info: nios2_processor: # 2016.12.01 23:13:10 (*) Plaintext license not found. +Info: nios2_processor: # 2016.12.01 23:13:10 (*) No license required to generate encrypted Nios II/e. +Info: nios2_processor: # 2016.12.01 23:13:10 (*) Elaborating CPU configuration settings +Info: nios2_processor: # 2016.12.01 23:13:10 (*) Creating all objects for CPU +Info: nios2_processor: # 2016.12.01 23:13:11 (*) Generating RTL from CPU objects +Info: nios2_processor: # 2016.12.01 23:13:11 (*) Creating plain-text RTL +Info: nios2_processor: # 2016.12.01 23:13:13 (*) Done Nios II generation +Info: nios2_processor: Done RTL generation for module 'nios_system_nios2_processor' +Info: nios2_processor: "nios_system" instantiated altera_nios2_qsys "nios2_processor" +Info: onchip_memory: Starting RTL generation for module 'nios_system_onchip_memory' +Info: onchip_memory: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_onchip_memory2 -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_onchip_memory2/generate_rtl.pl --name=nios_system_onchip_memory --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0052_onchip_memory_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0052_onchip_memory_gen//nios_system_onchip_memory_component_configuration.pl --do_build_sim=0 ] +Info: onchip_memory: Done RTL generation for module 'nios_system_onchip_memory' +Info: onchip_memory: "nios_system" instantiated altera_avalon_onchip_memory2 "onchip_memory" +Info: jtag_uart: Starting RTL generation for module 'nios_system_jtag_uart' +Info: jtag_uart: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_jtag_uart -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_jtag_uart/generate_rtl.pl --name=nios_system_jtag_uart --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0053_jtag_uart_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0053_jtag_uart_gen//nios_system_jtag_uart_component_configuration.pl --do_build_sim=0 ] +Info: jtag_uart: Done RTL generation for module 'nios_system_jtag_uart' +Info: jtag_uart: "nios_system" instantiated altera_avalon_jtag_uart "jtag_uart" +Info: LEDs: Starting RTL generation for module 'nios_system_LEDs' +Info: LEDs: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_LEDs --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0054_LEDs_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0054_LEDs_gen//nios_system_LEDs_component_configuration.pl --do_build_sim=0 ] +Info: LEDs: Done RTL generation for module 'nios_system_LEDs' +Info: LEDs: "nios_system" instantiated altera_avalon_pio "LEDs" +Info: LEDRs: Starting RTL generation for module 'nios_system_LEDRs' +Info: LEDRs: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_LEDRs --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0055_LEDRs_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0055_LEDRs_gen//nios_system_LEDRs_component_configuration.pl --do_build_sim=0 ] +Info: LEDRs: Done RTL generation for module 'nios_system_LEDRs' +Info: LEDRs: "nios_system" instantiated altera_avalon_pio "LEDRs" +Info: switches: Starting RTL generation for module 'nios_system_switches' +Info: switches: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_switches --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0056_switches_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0056_switches_gen//nios_system_switches_component_configuration.pl --do_build_sim=0 ] +Info: switches: Done RTL generation for module 'nios_system_switches' +Info: switches: "nios_system" instantiated altera_avalon_pio "switches" +Info: push_switches: Starting RTL generation for module 'nios_system_push_switches' +Info: push_switches: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_push_switches --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0057_push_switches_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0057_push_switches_gen//nios_system_push_switches_component_configuration.pl --do_build_sim=0 ] +Info: push_switches: Done RTL generation for module 'nios_system_push_switches' +Info: push_switches: "nios_system" instantiated altera_avalon_pio "push_switches" +Info: hex0: Starting RTL generation for module 'nios_system_hex0' +Info: hex0: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_hex0 --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0058_hex0_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0058_hex0_gen//nios_system_hex0_component_configuration.pl --do_build_sim=0 ] +Info: hex0: Done RTL generation for module 'nios_system_hex0' +Info: hex0: "nios_system" instantiated altera_avalon_pio "hex0" +Info: lcd_E: Starting RTL generation for module 'nios_system_lcd_E' +Info: lcd_E: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_lcd_E --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0059_lcd_E_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0059_lcd_E_gen//nios_system_lcd_E_component_configuration.pl --do_build_sim=0 ] +Info: lcd_E: Done RTL generation for module 'nios_system_lcd_E' +Info: lcd_E: "nios_system" instantiated altera_avalon_pio "lcd_E" +Info: nios2_processor_instruction_master_translator: "nios_system" instantiated altera_merlin_master_translator "nios2_processor_instruction_master_translator" +Info: nios2_processor_jtag_debug_module_translator: "nios_system" instantiated altera_merlin_slave_translator "nios2_processor_jtag_debug_module_translator" +Info: nios2_processor_instruction_master_translator_avalon_universal_master_0_agent: "nios_system" instantiated altera_merlin_master_agent "nios2_processor_instruction_master_translator_avalon_universal_master_0_agent" +Info: nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent: "nios_system" instantiated altera_merlin_slave_agent "nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent" +Info: nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo: "nios_system" instantiated altera_avalon_sc_fifo "nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo" +Info: addr_router: "nios_system" instantiated altera_merlin_router "addr_router" +Info: addr_router_001: "nios_system" instantiated altera_merlin_router "addr_router_001" +Info: id_router: "nios_system" instantiated altera_merlin_router "id_router" +Info: id_router_002: "nios_system" instantiated altera_merlin_router "id_router_002" +Info: rst_controller: "nios_system" instantiated altera_reset_controller "rst_controller" +Info: cmd_xbar_demux: "nios_system" instantiated altera_merlin_demultiplexer "cmd_xbar_demux" +Info: cmd_xbar_demux_001: "nios_system" instantiated altera_merlin_demultiplexer "cmd_xbar_demux_001" +Info: cmd_xbar_mux: "nios_system" instantiated altera_merlin_multiplexer "cmd_xbar_mux" +Info: rsp_xbar_demux_002: "nios_system" instantiated altera_merlin_demultiplexer "rsp_xbar_demux_002" +Info: rsp_xbar_mux: "nios_system" instantiated altera_merlin_multiplexer "rsp_xbar_mux" +Info: Reusing file C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/synthesis/submodules/altera_merlin_arbitrator.sv +Info: rsp_xbar_mux_001: "nios_system" instantiated altera_merlin_multiplexer "rsp_xbar_mux_001" +Info: Reusing file C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/synthesis/submodules/altera_merlin_arbitrator.sv +Info: irq_mapper: "nios_system" instantiated altera_irq_mapper "irq_mapper" +Info: nios_system: Done nios_system" with 27 modules, 162 files, 3231032 bytes +Info: ip-generate succeeded. +Info: Finished: Create HDL design files for synthesis diff --git a/nios_system_generation_17.rpt b/nios_system_generation_17.rpt new file mode 100644 index 0000000..b1bbf7e --- /dev/null +++ b/nios_system_generation_17.rpt @@ -0,0 +1,337 @@ +Info: Starting: Create block symbol file (.bsf) +Info: ip-generate --project-directory=C:/Users/takayun/Documents/DE2-115/qsys_tutorial/ --output-directory=C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/ --report-file=bsf:C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.bsf --system-info=DEVICE_FAMILY="Cyclone IV E" --system-info=DEVICE=EP4CE115F29C7 --system-info=DEVICE_SPEEDGRADE=7 --component-file=C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.qsys +Progress: Loading qsys_tutorial/nios_system.qsys +Progress: Reading input file +Progress: Adding clk_0 [clock_source 13.0] +Progress: Parameterizing module clk_0 +Progress: Adding nios2_processor [altera_nios2_qsys 13.0] +Progress: Parameterizing module nios2_processor +Progress: Adding onchip_memory [altera_avalon_onchip_memory2 13.0.1.99.2] +Progress: Parameterizing module onchip_memory +Progress: Adding jtag_uart [altera_avalon_jtag_uart 13.0.1.99.2] +Progress: Parameterizing module jtag_uart +Progress: Adding LEDs [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module LEDs +Progress: Adding LEDRs [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module LEDRs +Progress: Adding switches [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module switches +Progress: Adding push_switches [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module push_switches +Progress: Adding hex0 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex0 +Progress: Adding hex1 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex1 +Progress: Adding hex2 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex2 +Progress: Adding hex3 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex3 +Progress: Adding hex4 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex4 +Progress: Adding hex5 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex5 +Progress: Adding hex6 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex6 +Progress: Adding pio_0 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module pio_0 +Progress: Adding lcd_data [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module lcd_data +Progress: Adding lcd_E [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module lcd_E +Progress: Adding lcd_RS [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module lcd_RS +Progress: Adding lcd_RW [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module lcd_RW +Progress: Adding lcd_16207_0 [altera_avalon_lcd_16207 13.0.1.99.2] +Progress: Parameterizing module lcd_16207_0 +Progress: Building connections +Progress: Parameterizing connections +Progress: Validating +Progress: Done reading input file +Info: nios_system.switches: PIO inputs are not hardwired in test bench. Undefined values will be read from PIO inputs during simulation. +Info: nios_system.push_switches: PIO inputs are not hardwired in test bench. Undefined values will be read from PIO inputs during simulation. +Warning: nios_system.lcd_16207_0: lcd_16207_0.external must be exported, or connected to a matching conduit. +Info: ip-generate succeeded. +Info: Finished: Create block symbol file (.bsf) +Info: +Info: Starting: Create HDL design files for synthesis +Info: ip-generate --project-directory=C:/Users/takayun/Documents/DE2-115/qsys_tutorial/ --output-directory=C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/synthesis/ --file-set=QUARTUS_SYNTH --report-file=sopcinfo:C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.sopcinfo --report-file=html:C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.html --report-file=qip:C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/synthesis/nios_system.qip --report-file=cmp:C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.cmp --report-file=svd --system-info=DEVICE_FAMILY="Cyclone IV E" --system-info=DEVICE=EP4CE115F29C7 --system-info=DEVICE_SPEEDGRADE=7 --component-file=C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.qsys --language=VERILOG +Progress: Loading qsys_tutorial/nios_system.qsys +Progress: Reading input file +Progress: Adding clk_0 [clock_source 13.0] +Progress: Parameterizing module clk_0 +Progress: Adding nios2_processor [altera_nios2_qsys 13.0] +Progress: Parameterizing module nios2_processor +Progress: Adding onchip_memory [altera_avalon_onchip_memory2 13.0.1.99.2] +Progress: Parameterizing module onchip_memory +Progress: Adding jtag_uart [altera_avalon_jtag_uart 13.0.1.99.2] +Progress: Parameterizing module jtag_uart +Progress: Adding LEDs [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module LEDs +Progress: Adding LEDRs [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module LEDRs +Progress: Adding switches [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module switches +Progress: Adding push_switches [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module push_switches +Progress: Adding hex0 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex0 +Progress: Adding hex1 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex1 +Progress: Adding hex2 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex2 +Progress: Adding hex3 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex3 +Progress: Adding hex4 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex4 +Progress: Adding hex5 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex5 +Progress: Adding hex6 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex6 +Progress: Adding pio_0 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module pio_0 +Progress: Adding lcd_data [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module lcd_data +Progress: Adding lcd_E [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module lcd_E +Progress: Adding lcd_RS [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module lcd_RS +Progress: Adding lcd_RW [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module lcd_RW +Progress: Adding lcd_16207_0 [altera_avalon_lcd_16207 13.0.1.99.2] +Progress: Parameterizing module lcd_16207_0 +Progress: Building connections +Progress: Parameterizing connections +Progress: Validating +Progress: Done reading input file +Info: nios_system.switches: PIO inputs are not hardwired in test bench. Undefined values will be read from PIO inputs during simulation. +Info: nios_system.push_switches: PIO inputs are not hardwired in test bench. Undefined values will be read from PIO inputs during simulation. +Warning: nios_system.lcd_16207_0: lcd_16207_0.external must be exported, or connected to a matching conduit. +Info: nios_system: Generating nios_system "nios_system" for QUARTUS_SYNTH +Info: pipeline_bridge_swap_transform: After transform: 21 modules, 82 connections +Info: No custom instruction connections, skipping transform +Info: merlin_translator_transform: After transform: 42 modules, 166 connections +Info: merlin_domain_transform: After transform: 83 modules, 448 connections +Info: merlin_router_transform: After transform: 104 modules, 532 connections +Info: reset_adaptation_transform: After transform: 105 modules, 412 connections +Info: merlin_network_to_switch_transform: After transform: 146 modules, 496 connections +Info: merlin_mm_transform: After transform: 146 modules, 496 connections +Info: merlin_interrupt_mapper_transform: After transform: 147 modules, 499 connections +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Info: nios2_processor: Starting RTL generation for module 'nios_system_nios2_processor' +Info: nios2_processor: Generation command is [exec C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2/eperl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2/cpu_lib -I C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2/nios_lib -I C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2 -I C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2 -- C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2/generate_rtl.epl --name=nios_system_nios2_processor --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0076_nios2_processor_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0076_nios2_processor_gen//nios_system_nios2_processor_processor_configuration.pl --do_build_sim=0 --bogus ] +Info: nios2_processor: # 2016.12.01 23:35:35 (*) Starting Nios II generation +Info: nios2_processor: # 2016.12.01 23:35:35 (*) Checking for plaintext license. +Info: nios2_processor: # 2016.12.01 23:35:35 (*) Couldn't query license setup in Quartus directory C:/altera/13.0sp1/quartus +Info: nios2_processor: # 2016.12.01 23:35:35 (*) Defaulting to contents of LM_LICENSE_FILE environment variable +Info: nios2_processor: # 2016.12.01 23:35:35 (*) LM_LICENSE_FILE environment variable is empty +Info: nios2_processor: # 2016.12.01 23:35:35 (*) Plaintext license not found. +Info: nios2_processor: # 2016.12.01 23:35:35 (*) No license required to generate encrypted Nios II/e. +Info: nios2_processor: # 2016.12.01 23:35:35 (*) Elaborating CPU configuration settings +Info: nios2_processor: # 2016.12.01 23:35:35 (*) Creating all objects for CPU +Info: nios2_processor: # 2016.12.01 23:35:37 (*) Generating RTL from CPU objects +Info: nios2_processor: # 2016.12.01 23:35:37 (*) Creating plain-text RTL +Info: nios2_processor: # 2016.12.01 23:35:39 (*) Done Nios II generation +Info: nios2_processor: Done RTL generation for module 'nios_system_nios2_processor' +Info: nios2_processor: "nios_system" instantiated altera_nios2_qsys "nios2_processor" +Info: onchip_memory: Starting RTL generation for module 'nios_system_onchip_memory' +Info: onchip_memory: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_onchip_memory2 -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_onchip_memory2/generate_rtl.pl --name=nios_system_onchip_memory --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0077_onchip_memory_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0077_onchip_memory_gen//nios_system_onchip_memory_component_configuration.pl --do_build_sim=0 ] +Info: onchip_memory: Done RTL generation for module 'nios_system_onchip_memory' +Info: onchip_memory: "nios_system" instantiated altera_avalon_onchip_memory2 "onchip_memory" +Info: jtag_uart: Starting RTL generation for module 'nios_system_jtag_uart' +Info: jtag_uart: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_jtag_uart -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_jtag_uart/generate_rtl.pl --name=nios_system_jtag_uart --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0078_jtag_uart_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0078_jtag_uart_gen//nios_system_jtag_uart_component_configuration.pl --do_build_sim=0 ] +Info: jtag_uart: Done RTL generation for module 'nios_system_jtag_uart' +Info: jtag_uart: "nios_system" instantiated altera_avalon_jtag_uart "jtag_uart" +Info: LEDs: Starting RTL generation for module 'nios_system_LEDs' +Info: LEDs: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_LEDs --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0079_LEDs_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0079_LEDs_gen//nios_system_LEDs_component_configuration.pl --do_build_sim=0 ] +Info: LEDs: Done RTL generation for module 'nios_system_LEDs' +Info: LEDs: "nios_system" instantiated altera_avalon_pio "LEDs" +Info: LEDRs: Starting RTL generation for module 'nios_system_LEDRs' +Info: LEDRs: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_LEDRs --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0080_LEDRs_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0080_LEDRs_gen//nios_system_LEDRs_component_configuration.pl --do_build_sim=0 ] +Info: LEDRs: Done RTL generation for module 'nios_system_LEDRs' +Info: LEDRs: "nios_system" instantiated altera_avalon_pio "LEDRs" +Info: switches: Starting RTL generation for module 'nios_system_switches' +Info: switches: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_switches --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0081_switches_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0081_switches_gen//nios_system_switches_component_configuration.pl --do_build_sim=0 ] +Info: switches: Done RTL generation for module 'nios_system_switches' +Info: switches: "nios_system" instantiated altera_avalon_pio "switches" +Info: push_switches: Starting RTL generation for module 'nios_system_push_switches' +Info: push_switches: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_push_switches --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0082_push_switches_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0082_push_switches_gen//nios_system_push_switches_component_configuration.pl --do_build_sim=0 ] +Info: push_switches: Done RTL generation for module 'nios_system_push_switches' +Info: push_switches: "nios_system" instantiated altera_avalon_pio "push_switches" +Info: hex0: Starting RTL generation for module 'nios_system_hex0' +Info: hex0: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_hex0 --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0083_hex0_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0083_hex0_gen//nios_system_hex0_component_configuration.pl --do_build_sim=0 ] +Info: hex0: Done RTL generation for module 'nios_system_hex0' +Info: hex0: "nios_system" instantiated altera_avalon_pio "hex0" +Info: lcd_E: Starting RTL generation for module 'nios_system_lcd_E' +Info: lcd_E: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_lcd_E --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0084_lcd_E_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0084_lcd_E_gen//nios_system_lcd_E_component_configuration.pl --do_build_sim=0 ] +Info: lcd_E: Done RTL generation for module 'nios_system_lcd_E' +Info: lcd_E: "nios_system" instantiated altera_avalon_pio "lcd_E" +Info: lcd_16207_0: Starting RTL generation for module 'nios_system_lcd_16207_0' +Info: lcd_16207_0: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_lcd_16207 -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_lcd_16207/generate_rtl.pl --name=nios_system_lcd_16207_0 --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0085_lcd_16207_0_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0085_lcd_16207_0_gen//nios_system_lcd_16207_0_component_configuration.pl --do_build_sim=0 ] +Info: lcd_16207_0: Done RTL generation for module 'nios_system_lcd_16207_0' +Info: lcd_16207_0: "nios_system" instantiated altera_avalon_lcd_16207 "lcd_16207_0" +Info: nios2_processor_instruction_master_translator: "nios_system" instantiated altera_merlin_master_translator "nios2_processor_instruction_master_translator" +Info: nios2_processor_jtag_debug_module_translator: "nios_system" instantiated altera_merlin_slave_translator "nios2_processor_jtag_debug_module_translator" +Info: nios2_processor_instruction_master_translator_avalon_universal_master_0_agent: "nios_system" instantiated altera_merlin_master_agent "nios2_processor_instruction_master_translator_avalon_universal_master_0_agent" +Info: nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent: "nios_system" instantiated altera_merlin_slave_agent "nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent" +Info: nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo: "nios_system" instantiated altera_avalon_sc_fifo "nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo" +Info: addr_router: "nios_system" instantiated altera_merlin_router "addr_router" +Info: addr_router_001: "nios_system" instantiated altera_merlin_router "addr_router_001" +Info: id_router: "nios_system" instantiated altera_merlin_router "id_router" +Info: id_router_002: "nios_system" instantiated altera_merlin_router "id_router_002" +Info: rst_controller: "nios_system" instantiated altera_reset_controller "rst_controller" +Info: cmd_xbar_demux: "nios_system" instantiated altera_merlin_demultiplexer "cmd_xbar_demux" +Info: cmd_xbar_demux_001: "nios_system" instantiated altera_merlin_demultiplexer "cmd_xbar_demux_001" +Info: cmd_xbar_mux: "nios_system" instantiated altera_merlin_multiplexer "cmd_xbar_mux" +Info: rsp_xbar_demux_002: "nios_system" instantiated altera_merlin_demultiplexer "rsp_xbar_demux_002" +Info: rsp_xbar_mux: "nios_system" instantiated altera_merlin_multiplexer "rsp_xbar_mux" +Info: Reusing file C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/synthesis/submodules/altera_merlin_arbitrator.sv +Info: rsp_xbar_mux_001: "nios_system" instantiated altera_merlin_multiplexer "rsp_xbar_mux_001" +Info: Reusing file C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/synthesis/submodules/altera_merlin_arbitrator.sv +Info: irq_mapper: "nios_system" instantiated altera_irq_mapper "irq_mapper" +Info: nios_system: Done nios_system" with 28 modules, 163 files, 3234959 bytes +Info: ip-generate succeeded. +Info: Finished: Create HDL design files for synthesis diff --git a/nios_system_generation_18.rpt b/nios_system_generation_18.rpt new file mode 100644 index 0000000..d42ec4f --- /dev/null +++ b/nios_system_generation_18.rpt @@ -0,0 +1,344 @@ +Info: Starting: Create block symbol file (.bsf) +Info: ip-generate --project-directory=C:/Users/takayun/Documents/DE2-115/qsys_tutorial/ --output-directory=C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/ --report-file=bsf:C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.bsf --system-info=DEVICE_FAMILY="Cyclone IV E" --system-info=DEVICE=EP4CE115F29C7 --system-info=DEVICE_SPEEDGRADE=7 --component-file=C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.qsys +Progress: Loading qsys_tutorial/nios_system.qsys +Progress: Reading input file +Progress: Adding clk_0 [clock_source 13.0] +Progress: Parameterizing module clk_0 +Progress: Adding nios2_processor [altera_nios2_qsys 13.0] +Progress: Parameterizing module nios2_processor +Progress: Adding onchip_memory [altera_avalon_onchip_memory2 13.0.1.99.2] +Progress: Parameterizing module onchip_memory +Progress: Adding jtag_uart [altera_avalon_jtag_uart 13.0.1.99.2] +Progress: Parameterizing module jtag_uart +Progress: Adding LEDs [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module LEDs +Progress: Adding LEDRs [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module LEDRs +Progress: Adding switches [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module switches +Progress: Adding push_switches [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module push_switches +Progress: Adding hex0 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex0 +Progress: Adding hex1 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex1 +Progress: Adding hex2 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex2 +Progress: Adding hex3 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex3 +Progress: Adding hex4 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex4 +Progress: Adding hex5 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex5 +Progress: Adding hex6 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex6 +Progress: Adding pio_0 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module pio_0 +Progress: Adding lcd_data [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module lcd_data +Progress: Adding lcd_E [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module lcd_E +Progress: Adding lcd_RS [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module lcd_RS +Progress: Adding lcd_RW [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module lcd_RW +Progress: Adding lcd_16207_0 [altera_avalon_lcd_16207 13.0.1.99.2] +Progress: Parameterizing module lcd_16207_0 +Progress: Building connections +Progress: Parameterizing connections +Progress: Validating +Progress: Done reading input file +Info: nios_system.switches: PIO inputs are not hardwired in test bench. Undefined values will be read from PIO inputs during simulation. +Info: nios_system.push_switches: PIO inputs are not hardwired in test bench. Undefined values will be read from PIO inputs during simulation. +Warning: nios_system.lcd_16207_0: lcd_16207_0.external must be exported, or connected to a matching conduit. +Info: ip-generate succeeded. +Info: Finished: Create block symbol file (.bsf) +Info: +Info: Starting: Create HDL design files for synthesis +Info: ip-generate --project-directory=C:/Users/takayun/Documents/DE2-115/qsys_tutorial/ --output-directory=C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/synthesis/ --file-set=QUARTUS_SYNTH --report-file=sopcinfo:C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.sopcinfo --report-file=html:C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.html --report-file=qip:C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/synthesis/nios_system.qip --report-file=cmp:C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.cmp --report-file=svd --system-info=DEVICE_FAMILY="Cyclone IV E" --system-info=DEVICE=EP4CE115F29C7 --system-info=DEVICE_SPEEDGRADE=7 --component-file=C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.qsys --language=VERILOG +Progress: Loading qsys_tutorial/nios_system.qsys +Progress: Reading input file +Progress: Adding clk_0 [clock_source 13.0] +Progress: Parameterizing module clk_0 +Progress: Adding nios2_processor [altera_nios2_qsys 13.0] +Progress: Parameterizing module nios2_processor +Progress: Adding onchip_memory [altera_avalon_onchip_memory2 13.0.1.99.2] +Progress: Parameterizing module onchip_memory +Progress: Adding jtag_uart [altera_avalon_jtag_uart 13.0.1.99.2] +Progress: Parameterizing module jtag_uart +Progress: Adding LEDs [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module LEDs +Progress: Adding LEDRs [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module LEDRs +Progress: Adding switches [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module switches +Progress: Adding push_switches [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module push_switches +Progress: Adding hex0 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex0 +Progress: Adding hex1 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex1 +Progress: Adding hex2 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex2 +Progress: Adding hex3 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex3 +Progress: Adding hex4 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex4 +Progress: Adding hex5 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex5 +Progress: Adding hex6 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex6 +Progress: Adding pio_0 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module pio_0 +Progress: Adding lcd_data [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module lcd_data +Progress: Adding lcd_E [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module lcd_E +Progress: Adding lcd_RS [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module lcd_RS +Progress: Adding lcd_RW [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module lcd_RW +Progress: Adding lcd_16207_0 [altera_avalon_lcd_16207 13.0.1.99.2] +Progress: Parameterizing module lcd_16207_0 +Progress: Building connections +Progress: Parameterizing connections +Progress: Validating +Progress: Done reading input file +Info: nios_system.switches: PIO inputs are not hardwired in test bench. Undefined values will be read from PIO inputs during simulation. +Info: nios_system.push_switches: PIO inputs are not hardwired in test bench. Undefined values will be read from PIO inputs during simulation. +Warning: nios_system.lcd_16207_0: lcd_16207_0.external must be exported, or connected to a matching conduit. +Info: nios_system: Generating nios_system "nios_system" for QUARTUS_SYNTH +Info: pipeline_bridge_swap_transform: After transform: 21 modules, 84 connections +Info: No custom instruction connections, skipping transform +Info: merlin_translator_transform: After transform: 43 modules, 172 connections +Info: merlin_domain_transform: After transform: 86 modules, 467 connections +Info: merlin_router_transform: After transform: 108 modules, 555 connections +Info: reset_adaptation_transform: After transform: 109 modules, 430 connections +Info: merlin_network_to_switch_transform: After transform: 152 modules, 520 connections +Info: merlin_mm_transform: After transform: 152 modules, 520 connections +Info: merlin_interrupt_mapper_transform: After transform: 153 modules, 523 connections +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Info: nios2_processor: Starting RTL generation for module 'nios_system_nios2_processor' +Info: nios2_processor: Generation command is [exec C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2/eperl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2/cpu_lib -I C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2/nios_lib -I C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2 -I C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2 -- C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2/generate_rtl.epl --name=nios_system_nios2_processor --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0102_nios2_processor_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0102_nios2_processor_gen//nios_system_nios2_processor_processor_configuration.pl --do_build_sim=0 --bogus ] +Info: nios2_processor: # 2016.12.01 23:42:50 (*) Starting Nios II generation +Info: nios2_processor: # 2016.12.01 23:42:50 (*) Checking for plaintext license. +Info: nios2_processor: # 2016.12.01 23:42:51 (*) Couldn't query license setup in Quartus directory C:/altera/13.0sp1/quartus +Info: nios2_processor: # 2016.12.01 23:42:51 (*) Defaulting to contents of LM_LICENSE_FILE environment variable +Info: nios2_processor: # 2016.12.01 23:42:51 (*) LM_LICENSE_FILE environment variable is empty +Info: nios2_processor: # 2016.12.01 23:42:51 (*) Plaintext license not found. +Info: nios2_processor: # 2016.12.01 23:42:51 (*) No license required to generate encrypted Nios II/e. +Info: nios2_processor: # 2016.12.01 23:42:51 (*) Elaborating CPU configuration settings +Info: nios2_processor: # 2016.12.01 23:42:51 (*) Creating all objects for CPU +Info: nios2_processor: # 2016.12.01 23:42:52 (*) Generating RTL from CPU objects +Info: nios2_processor: # 2016.12.01 23:42:52 (*) Creating plain-text RTL +Info: nios2_processor: # 2016.12.01 23:42:54 (*) Done Nios II generation +Info: nios2_processor: Done RTL generation for module 'nios_system_nios2_processor' +Info: nios2_processor: "nios_system" instantiated altera_nios2_qsys "nios2_processor" +Info: onchip_memory: Starting RTL generation for module 'nios_system_onchip_memory' +Info: onchip_memory: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_onchip_memory2 -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_onchip_memory2/generate_rtl.pl --name=nios_system_onchip_memory --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0103_onchip_memory_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0103_onchip_memory_gen//nios_system_onchip_memory_component_configuration.pl --do_build_sim=0 ] +Info: onchip_memory: Done RTL generation for module 'nios_system_onchip_memory' +Info: onchip_memory: "nios_system" instantiated altera_avalon_onchip_memory2 "onchip_memory" +Info: jtag_uart: Starting RTL generation for module 'nios_system_jtag_uart' +Info: jtag_uart: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_jtag_uart -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_jtag_uart/generate_rtl.pl --name=nios_system_jtag_uart --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0104_jtag_uart_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0104_jtag_uart_gen//nios_system_jtag_uart_component_configuration.pl --do_build_sim=0 ] +Info: jtag_uart: Done RTL generation for module 'nios_system_jtag_uart' +Info: jtag_uart: "nios_system" instantiated altera_avalon_jtag_uart "jtag_uart" +Info: LEDs: Starting RTL generation for module 'nios_system_LEDs' +Info: LEDs: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_LEDs --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0105_LEDs_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0105_LEDs_gen//nios_system_LEDs_component_configuration.pl --do_build_sim=0 ] +Info: LEDs: Done RTL generation for module 'nios_system_LEDs' +Info: LEDs: "nios_system" instantiated altera_avalon_pio "LEDs" +Info: LEDRs: Starting RTL generation for module 'nios_system_LEDRs' +Info: LEDRs: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_LEDRs --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0106_LEDRs_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0106_LEDRs_gen//nios_system_LEDRs_component_configuration.pl --do_build_sim=0 ] +Info: LEDRs: Done RTL generation for module 'nios_system_LEDRs' +Info: LEDRs: "nios_system" instantiated altera_avalon_pio "LEDRs" +Info: switches: Starting RTL generation for module 'nios_system_switches' +Info: switches: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_switches --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0107_switches_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0107_switches_gen//nios_system_switches_component_configuration.pl --do_build_sim=0 ] +Info: switches: Done RTL generation for module 'nios_system_switches' +Info: switches: "nios_system" instantiated altera_avalon_pio "switches" +Info: push_switches: Starting RTL generation for module 'nios_system_push_switches' +Info: push_switches: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_push_switches --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0108_push_switches_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0108_push_switches_gen//nios_system_push_switches_component_configuration.pl --do_build_sim=0 ] +Info: push_switches: Done RTL generation for module 'nios_system_push_switches' +Info: push_switches: "nios_system" instantiated altera_avalon_pio "push_switches" +Info: hex0: Starting RTL generation for module 'nios_system_hex0' +Info: hex0: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_hex0 --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0109_hex0_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0109_hex0_gen//nios_system_hex0_component_configuration.pl --do_build_sim=0 ] +Info: hex0: Done RTL generation for module 'nios_system_hex0' +Info: hex0: "nios_system" instantiated altera_avalon_pio "hex0" +Info: lcd_E: Starting RTL generation for module 'nios_system_lcd_E' +Info: lcd_E: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_lcd_E --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0110_lcd_E_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0110_lcd_E_gen//nios_system_lcd_E_component_configuration.pl --do_build_sim=0 ] +Info: lcd_E: Done RTL generation for module 'nios_system_lcd_E' +Info: lcd_E: "nios_system" instantiated altera_avalon_pio "lcd_E" +Info: lcd_16207_0: Starting RTL generation for module 'nios_system_lcd_16207_0' +Info: lcd_16207_0: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_lcd_16207 -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_lcd_16207/generate_rtl.pl --name=nios_system_lcd_16207_0 --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0111_lcd_16207_0_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0111_lcd_16207_0_gen//nios_system_lcd_16207_0_component_configuration.pl --do_build_sim=0 ] +Info: lcd_16207_0: Done RTL generation for module 'nios_system_lcd_16207_0' +Info: lcd_16207_0: "nios_system" instantiated altera_avalon_lcd_16207 "lcd_16207_0" +Info: nios2_processor_instruction_master_translator: "nios_system" instantiated altera_merlin_master_translator "nios2_processor_instruction_master_translator" +Info: nios2_processor_jtag_debug_module_translator: "nios_system" instantiated altera_merlin_slave_translator "nios2_processor_jtag_debug_module_translator" +Info: nios2_processor_instruction_master_translator_avalon_universal_master_0_agent: "nios_system" instantiated altera_merlin_master_agent "nios2_processor_instruction_master_translator_avalon_universal_master_0_agent" +Info: nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent: "nios_system" instantiated altera_merlin_slave_agent "nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent" +Info: nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo: "nios_system" instantiated altera_avalon_sc_fifo "nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo" +Info: addr_router: "nios_system" instantiated altera_merlin_router "addr_router" +Info: addr_router_001: "nios_system" instantiated altera_merlin_router "addr_router_001" +Info: id_router: "nios_system" instantiated altera_merlin_router "id_router" +Info: id_router_003: "nios_system" instantiated altera_merlin_router "id_router_003" +Info: rst_controller: "nios_system" instantiated altera_reset_controller "rst_controller" +Info: cmd_xbar_demux: "nios_system" instantiated altera_merlin_demultiplexer "cmd_xbar_demux" +Info: cmd_xbar_demux_001: "nios_system" instantiated altera_merlin_demultiplexer "cmd_xbar_demux_001" +Info: cmd_xbar_mux: "nios_system" instantiated altera_merlin_multiplexer "cmd_xbar_mux" +Info: rsp_xbar_demux: "nios_system" instantiated altera_merlin_demultiplexer "rsp_xbar_demux" +Info: rsp_xbar_demux_003: "nios_system" instantiated altera_merlin_demultiplexer "rsp_xbar_demux_003" +Info: rsp_xbar_mux: "nios_system" instantiated altera_merlin_multiplexer "rsp_xbar_mux" +Info: Reusing file C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/synthesis/submodules/altera_merlin_arbitrator.sv +Info: rsp_xbar_mux_001: "nios_system" instantiated altera_merlin_multiplexer "rsp_xbar_mux_001" +Info: Reusing file C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/synthesis/submodules/altera_merlin_arbitrator.sv +Info: irq_mapper: "nios_system" instantiated altera_irq_mapper "irq_mapper" +Info: nios_system: Done nios_system" with 29 modules, 171 files, 3402353 bytes +Info: ip-generate succeeded. +Info: Finished: Create HDL design files for synthesis diff --git a/nios_system_generation_19.rpt b/nios_system_generation_19.rpt new file mode 100644 index 0000000..c624b77 --- /dev/null +++ b/nios_system_generation_19.rpt @@ -0,0 +1,342 @@ +Info: Starting: Create block symbol file (.bsf) +Info: ip-generate --project-directory=C:/Users/takayun/Documents/DE2-115/qsys_tutorial/ --output-directory=C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/ --report-file=bsf:C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.bsf --system-info=DEVICE_FAMILY="Cyclone IV E" --system-info=DEVICE=EP4CE115F29C7 --system-info=DEVICE_SPEEDGRADE=7 --component-file=C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.qsys +Progress: Loading qsys_tutorial/nios_system.qsys +Progress: Reading input file +Progress: Adding clk_0 [clock_source 13.0] +Progress: Parameterizing module clk_0 +Progress: Adding nios2_processor [altera_nios2_qsys 13.0] +Progress: Parameterizing module nios2_processor +Progress: Adding onchip_memory [altera_avalon_onchip_memory2 13.0.1.99.2] +Progress: Parameterizing module onchip_memory +Progress: Adding jtag_uart [altera_avalon_jtag_uart 13.0.1.99.2] +Progress: Parameterizing module jtag_uart +Progress: Adding LEDs [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module LEDs +Progress: Adding LEDRs [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module LEDRs +Progress: Adding switches [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module switches +Progress: Adding push_switches [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module push_switches +Progress: Adding hex0 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex0 +Progress: Adding hex1 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex1 +Progress: Adding hex2 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex2 +Progress: Adding hex3 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex3 +Progress: Adding hex4 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex4 +Progress: Adding hex5 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex5 +Progress: Adding hex6 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex6 +Progress: Adding pio_0 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module pio_0 +Progress: Adding lcd_data [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module lcd_data +Progress: Adding lcd_E [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module lcd_E +Progress: Adding lcd_RS [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module lcd_RS +Progress: Adding lcd_RW [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module lcd_RW +Progress: Adding lcd_16207_0 [altera_avalon_lcd_16207 13.0.1.99.2] +Progress: Parameterizing module lcd_16207_0 +Progress: Building connections +Progress: Parameterizing connections +Progress: Validating +Progress: Done reading input file +Info: nios_system.switches: PIO inputs are not hardwired in test bench. Undefined values will be read from PIO inputs during simulation. +Info: nios_system.push_switches: PIO inputs are not hardwired in test bench. Undefined values will be read from PIO inputs during simulation. +Info: ip-generate succeeded. +Info: Finished: Create block symbol file (.bsf) +Info: +Info: Starting: Create HDL design files for synthesis +Info: ip-generate --project-directory=C:/Users/takayun/Documents/DE2-115/qsys_tutorial/ --output-directory=C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/synthesis/ --file-set=QUARTUS_SYNTH --report-file=sopcinfo:C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.sopcinfo --report-file=html:C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.html --report-file=qip:C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/synthesis/nios_system.qip --report-file=cmp:C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.cmp --report-file=svd --system-info=DEVICE_FAMILY="Cyclone IV E" --system-info=DEVICE=EP4CE115F29C7 --system-info=DEVICE_SPEEDGRADE=7 --component-file=C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.qsys --language=VERILOG +Progress: Loading qsys_tutorial/nios_system.qsys +Progress: Reading input file +Progress: Adding clk_0 [clock_source 13.0] +Progress: Parameterizing module clk_0 +Progress: Adding nios2_processor [altera_nios2_qsys 13.0] +Progress: Parameterizing module nios2_processor +Progress: Adding onchip_memory [altera_avalon_onchip_memory2 13.0.1.99.2] +Progress: Parameterizing module onchip_memory +Progress: Adding jtag_uart [altera_avalon_jtag_uart 13.0.1.99.2] +Progress: Parameterizing module jtag_uart +Progress: Adding LEDs [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module LEDs +Progress: Adding LEDRs [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module LEDRs +Progress: Adding switches [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module switches +Progress: Adding push_switches [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module push_switches +Progress: Adding hex0 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex0 +Progress: Adding hex1 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex1 +Progress: Adding hex2 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex2 +Progress: Adding hex3 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex3 +Progress: Adding hex4 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex4 +Progress: Adding hex5 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex5 +Progress: Adding hex6 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex6 +Progress: Adding pio_0 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module pio_0 +Progress: Adding lcd_data [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module lcd_data +Progress: Adding lcd_E [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module lcd_E +Progress: Adding lcd_RS [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module lcd_RS +Progress: Adding lcd_RW [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module lcd_RW +Progress: Adding lcd_16207_0 [altera_avalon_lcd_16207 13.0.1.99.2] +Progress: Parameterizing module lcd_16207_0 +Progress: Building connections +Progress: Parameterizing connections +Progress: Validating +Progress: Done reading input file +Info: nios_system.switches: PIO inputs are not hardwired in test bench. Undefined values will be read from PIO inputs during simulation. +Info: nios_system.push_switches: PIO inputs are not hardwired in test bench. Undefined values will be read from PIO inputs during simulation. +Info: nios_system: Generating nios_system "nios_system" for QUARTUS_SYNTH +Info: pipeline_bridge_swap_transform: After transform: 21 modules, 84 connections +Info: No custom instruction connections, skipping transform +Info: merlin_translator_transform: After transform: 43 modules, 172 connections +Info: merlin_domain_transform: After transform: 86 modules, 467 connections +Info: merlin_router_transform: After transform: 108 modules, 555 connections +Info: reset_adaptation_transform: After transform: 109 modules, 430 connections +Info: merlin_network_to_switch_transform: After transform: 152 modules, 520 connections +Info: merlin_mm_transform: After transform: 152 modules, 520 connections +Info: merlin_interrupt_mapper_transform: After transform: 153 modules, 523 connections +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Info: nios2_processor: Starting RTL generation for module 'nios_system_nios2_processor' +Info: nios2_processor: Generation command is [exec C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2/eperl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2/cpu_lib -I C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2/nios_lib -I C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2 -I C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2 -- C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2/generate_rtl.epl --name=nios_system_nios2_processor --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0129_nios2_processor_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0129_nios2_processor_gen//nios_system_nios2_processor_processor_configuration.pl --do_build_sim=0 --bogus ] +Info: nios2_processor: # 2016.12.01 23:44:38 (*) Starting Nios II generation +Info: nios2_processor: # 2016.12.01 23:44:38 (*) Checking for plaintext license. +Info: nios2_processor: # 2016.12.01 23:44:39 (*) Couldn't query license setup in Quartus directory C:/altera/13.0sp1/quartus +Info: nios2_processor: # 2016.12.01 23:44:39 (*) Defaulting to contents of LM_LICENSE_FILE environment variable +Info: nios2_processor: # 2016.12.01 23:44:39 (*) LM_LICENSE_FILE environment variable is empty +Info: nios2_processor: # 2016.12.01 23:44:39 (*) Plaintext license not found. +Info: nios2_processor: # 2016.12.01 23:44:39 (*) No license required to generate encrypted Nios II/e. +Info: nios2_processor: # 2016.12.01 23:44:39 (*) Elaborating CPU configuration settings +Info: nios2_processor: # 2016.12.01 23:44:39 (*) Creating all objects for CPU +Info: nios2_processor: # 2016.12.01 23:44:40 (*) Generating RTL from CPU objects +Info: nios2_processor: # 2016.12.01 23:44:40 (*) Creating plain-text RTL +Info: nios2_processor: # 2016.12.01 23:44:42 (*) Done Nios II generation +Info: nios2_processor: Done RTL generation for module 'nios_system_nios2_processor' +Info: nios2_processor: "nios_system" instantiated altera_nios2_qsys "nios2_processor" +Info: onchip_memory: Starting RTL generation for module 'nios_system_onchip_memory' +Info: onchip_memory: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_onchip_memory2 -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_onchip_memory2/generate_rtl.pl --name=nios_system_onchip_memory --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0130_onchip_memory_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0130_onchip_memory_gen//nios_system_onchip_memory_component_configuration.pl --do_build_sim=0 ] +Info: onchip_memory: Done RTL generation for module 'nios_system_onchip_memory' +Info: onchip_memory: "nios_system" instantiated altera_avalon_onchip_memory2 "onchip_memory" +Info: jtag_uart: Starting RTL generation for module 'nios_system_jtag_uart' +Info: jtag_uart: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_jtag_uart -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_jtag_uart/generate_rtl.pl --name=nios_system_jtag_uart --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0131_jtag_uart_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0131_jtag_uart_gen//nios_system_jtag_uart_component_configuration.pl --do_build_sim=0 ] +Info: jtag_uart: Done RTL generation for module 'nios_system_jtag_uart' +Info: jtag_uart: "nios_system" instantiated altera_avalon_jtag_uart "jtag_uart" +Info: LEDs: Starting RTL generation for module 'nios_system_LEDs' +Info: LEDs: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_LEDs --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0132_LEDs_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0132_LEDs_gen//nios_system_LEDs_component_configuration.pl --do_build_sim=0 ] +Info: LEDs: Done RTL generation for module 'nios_system_LEDs' +Info: LEDs: "nios_system" instantiated altera_avalon_pio "LEDs" +Info: LEDRs: Starting RTL generation for module 'nios_system_LEDRs' +Info: LEDRs: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_LEDRs --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0133_LEDRs_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0133_LEDRs_gen//nios_system_LEDRs_component_configuration.pl --do_build_sim=0 ] +Info: LEDRs: Done RTL generation for module 'nios_system_LEDRs' +Info: LEDRs: "nios_system" instantiated altera_avalon_pio "LEDRs" +Info: switches: Starting RTL generation for module 'nios_system_switches' +Info: switches: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_switches --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0134_switches_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0134_switches_gen//nios_system_switches_component_configuration.pl --do_build_sim=0 ] +Info: switches: Done RTL generation for module 'nios_system_switches' +Info: switches: "nios_system" instantiated altera_avalon_pio "switches" +Info: push_switches: Starting RTL generation for module 'nios_system_push_switches' +Info: push_switches: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_push_switches --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0135_push_switches_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0135_push_switches_gen//nios_system_push_switches_component_configuration.pl --do_build_sim=0 ] +Info: push_switches: Done RTL generation for module 'nios_system_push_switches' +Info: push_switches: "nios_system" instantiated altera_avalon_pio "push_switches" +Info: hex0: Starting RTL generation for module 'nios_system_hex0' +Info: hex0: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_hex0 --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0136_hex0_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0136_hex0_gen//nios_system_hex0_component_configuration.pl --do_build_sim=0 ] +Info: hex0: Done RTL generation for module 'nios_system_hex0' +Info: hex0: "nios_system" instantiated altera_avalon_pio "hex0" +Info: lcd_E: Starting RTL generation for module 'nios_system_lcd_E' +Info: lcd_E: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_lcd_E --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0137_lcd_E_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0137_lcd_E_gen//nios_system_lcd_E_component_configuration.pl --do_build_sim=0 ] +Info: lcd_E: Done RTL generation for module 'nios_system_lcd_E' +Info: lcd_E: "nios_system" instantiated altera_avalon_pio "lcd_E" +Info: lcd_16207_0: Starting RTL generation for module 'nios_system_lcd_16207_0' +Info: lcd_16207_0: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_lcd_16207 -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_lcd_16207/generate_rtl.pl --name=nios_system_lcd_16207_0 --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0138_lcd_16207_0_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0138_lcd_16207_0_gen//nios_system_lcd_16207_0_component_configuration.pl --do_build_sim=0 ] +Info: lcd_16207_0: Done RTL generation for module 'nios_system_lcd_16207_0' +Info: lcd_16207_0: "nios_system" instantiated altera_avalon_lcd_16207 "lcd_16207_0" +Info: nios2_processor_instruction_master_translator: "nios_system" instantiated altera_merlin_master_translator "nios2_processor_instruction_master_translator" +Info: nios2_processor_jtag_debug_module_translator: "nios_system" instantiated altera_merlin_slave_translator "nios2_processor_jtag_debug_module_translator" +Info: nios2_processor_instruction_master_translator_avalon_universal_master_0_agent: "nios_system" instantiated altera_merlin_master_agent "nios2_processor_instruction_master_translator_avalon_universal_master_0_agent" +Info: nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent: "nios_system" instantiated altera_merlin_slave_agent "nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent" +Info: nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo: "nios_system" instantiated altera_avalon_sc_fifo "nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo" +Info: addr_router: "nios_system" instantiated altera_merlin_router "addr_router" +Info: addr_router_001: "nios_system" instantiated altera_merlin_router "addr_router_001" +Info: id_router: "nios_system" instantiated altera_merlin_router "id_router" +Info: id_router_003: "nios_system" instantiated altera_merlin_router "id_router_003" +Info: rst_controller: "nios_system" instantiated altera_reset_controller "rst_controller" +Info: cmd_xbar_demux: "nios_system" instantiated altera_merlin_demultiplexer "cmd_xbar_demux" +Info: cmd_xbar_demux_001: "nios_system" instantiated altera_merlin_demultiplexer "cmd_xbar_demux_001" +Info: cmd_xbar_mux: "nios_system" instantiated altera_merlin_multiplexer "cmd_xbar_mux" +Info: rsp_xbar_demux: "nios_system" instantiated altera_merlin_demultiplexer "rsp_xbar_demux" +Info: rsp_xbar_demux_003: "nios_system" instantiated altera_merlin_demultiplexer "rsp_xbar_demux_003" +Info: rsp_xbar_mux: "nios_system" instantiated altera_merlin_multiplexer "rsp_xbar_mux" +Info: Reusing file C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/synthesis/submodules/altera_merlin_arbitrator.sv +Info: rsp_xbar_mux_001: "nios_system" instantiated altera_merlin_multiplexer "rsp_xbar_mux_001" +Info: Reusing file C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/synthesis/submodules/altera_merlin_arbitrator.sv +Info: irq_mapper: "nios_system" instantiated altera_irq_mapper "irq_mapper" +Info: nios_system: Done nios_system" with 29 modules, 171 files, 3402606 bytes +Info: ip-generate succeeded. +Info: Finished: Create HDL design files for synthesis diff --git a/nios_system_generation_2.rpt b/nios_system_generation_2.rpt new file mode 100644 index 0000000..ecb627d --- /dev/null +++ b/nios_system_generation_2.rpt @@ -0,0 +1,154 @@ +Info: Starting: Create block symbol file (.bsf) +Info: ip-generate --project-directory=C:/Users/takayun/Desktop/qsys_tutorial/ --output-directory=C:/Users/takayun/Desktop/qsys_tutorial/nios_system/ --report-file=bsf:C:/Users/takayun/Desktop/qsys_tutorial/nios_system.bsf --system-info=DEVICE_FAMILY="Cyclone IV E" --system-info=DEVICE=EP4CE115F29C7 --system-info=DEVICE_SPEEDGRADE=7 --component-file=C:/Users/takayun/Desktop/qsys_tutorial/nios_system.qsys +Progress: Loading qsys_tutorial/nios_system.qsys +Progress: Reading input file +Progress: Adding clk_0 [clock_source 13.0] +Progress: Parameterizing module clk_0 +Progress: Adding nios2_processor [altera_nios2_qsys 13.0] +Progress: Parameterizing module nios2_processor +Progress: Adding onchip_memory [altera_avalon_onchip_memory2 13.0.1.99.2] +Progress: Parameterizing module onchip_memory +Progress: Adding switches [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module switches +Progress: Adding jtag_uart [altera_avalon_jtag_uart 13.0.1.99.2] +Progress: Parameterizing module jtag_uart +Progress: Adding LEDs [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module LEDs +Progress: Building connections +Progress: Parameterizing connections +Progress: Validating +Progress: Done reading input file +Info: nios_system.switches: PIO inputs are not hardwired in test bench. Undefined values will be read from PIO inputs during simulation. +Info: ip-generate succeeded. +Info: Finished: Create block symbol file (.bsf) +Info: +Info: Starting: Create HDL design files for synthesis +Info: ip-generate --project-directory=C:/Users/takayun/Desktop/qsys_tutorial/ --output-directory=C:/Users/takayun/Desktop/qsys_tutorial/nios_system/synthesis/ --file-set=QUARTUS_SYNTH --report-file=sopcinfo:C:/Users/takayun/Desktop/qsys_tutorial/nios_system.sopcinfo --report-file=html:C:/Users/takayun/Desktop/qsys_tutorial/nios_system.html --report-file=qip:C:/Users/takayun/Desktop/qsys_tutorial/nios_system/synthesis/nios_system.qip --report-file=cmp:C:/Users/takayun/Desktop/qsys_tutorial/nios_system.cmp --report-file=svd --system-info=DEVICE_FAMILY="Cyclone IV E" --system-info=DEVICE=EP4CE115F29C7 --system-info=DEVICE_SPEEDGRADE=7 --component-file=C:/Users/takayun/Desktop/qsys_tutorial/nios_system.qsys --language=VERILOG +Progress: Loading qsys_tutorial/nios_system.qsys +Progress: Reading input file +Progress: Adding clk_0 [clock_source 13.0] +Progress: Parameterizing module clk_0 +Progress: Adding nios2_processor [altera_nios2_qsys 13.0] +Progress: Parameterizing module nios2_processor +Progress: Adding onchip_memory [altera_avalon_onchip_memory2 13.0.1.99.2] +Progress: Parameterizing module onchip_memory +Progress: Adding switches [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module switches +Progress: Adding jtag_uart [altera_avalon_jtag_uart 13.0.1.99.2] +Progress: Parameterizing module jtag_uart +Progress: Adding LEDs [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module LEDs +Progress: Building connections +Progress: Parameterizing connections +Progress: Validating +Progress: Done reading input file +Info: nios_system.switches: PIO inputs are not hardwired in test bench. Undefined values will be read from PIO inputs during simulation. +Info: nios_system: Generating nios_system "nios_system" for QUARTUS_SYNTH +Info: pipeline_bridge_swap_transform: After transform: 6 modules, 23 connections +Info: No custom instruction connections, skipping transform +Info: merlin_translator_transform: After transform: 13 modules, 51 connections +Info: merlin_domain_transform: After transform: 26 modules, 137 connections +Info: merlin_router_transform: After transform: 33 modules, 165 connections +Info: reset_adaptation_transform: After transform: 34 modules, 130 connections +Info: merlin_network_to_switch_transform: After transform: 47 modules, 158 connections +Info: merlin_mm_transform: After transform: 47 modules, 158 connections +Info: merlin_interrupt_mapper_transform: After transform: 48 modules, 161 connections +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Info: nios2_processor: Starting RTL generation for module 'nios_system_nios2_processor' +Info: nios2_processor: Generation command is [exec C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2/eperl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2/cpu_lib -I C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2/nios_lib -I C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2 -I C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2 -- C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2/generate_rtl.epl --name=nios_system_nios2_processor --dir=C:/Users/takayun/AppData/Local/Temp/alt7094_7381845228037269778.dir/0001_nios2_processor_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7094_7381845228037269778.dir/0001_nios2_processor_gen//nios_system_nios2_processor_processor_configuration.pl --do_build_sim=0 --bogus ] +Info: nios2_processor: # 2016.10.20 10:19:05 (*) Starting Nios II generation +Info: nios2_processor: # 2016.10.20 10:19:05 (*) Checking for plaintext license. +Info: nios2_processor: # 2016.10.20 10:19:06 (*) Couldn't query license setup in Quartus directory C:/altera/13.0sp1/quartus +Info: nios2_processor: # 2016.10.20 10:19:06 (*) Defaulting to contents of LM_LICENSE_FILE environment variable +Info: nios2_processor: # 2016.10.20 10:19:06 (*) LM_LICENSE_FILE environment variable is empty +Info: nios2_processor: # 2016.10.20 10:19:06 (*) Plaintext license not found. +Info: nios2_processor: # 2016.10.20 10:19:06 (*) No license required to generate encrypted Nios II/e. +Info: nios2_processor: # 2016.10.20 10:19:06 (*) Elaborating CPU configuration settings +Info: nios2_processor: # 2016.10.20 10:19:06 (*) Creating all objects for CPU +Info: nios2_processor: # 2016.10.20 10:19:07 (*) Generating RTL from CPU objects +Info: nios2_processor: # 2016.10.20 10:19:07 (*) Creating plain-text RTL +Info: nios2_processor: # 2016.10.20 10:19:10 (*) Done Nios II generation +Info: nios2_processor: Done RTL generation for module 'nios_system_nios2_processor' +Info: nios2_processor: "nios_system" instantiated altera_nios2_qsys "nios2_processor" +Info: onchip_memory: Starting RTL generation for module 'nios_system_onchip_memory' +Info: onchip_memory: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_onchip_memory2 -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_onchip_memory2/generate_rtl.pl --name=nios_system_onchip_memory --dir=C:/Users/takayun/AppData/Local/Temp/alt7094_7381845228037269778.dir/0002_onchip_memory_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7094_7381845228037269778.dir/0002_onchip_memory_gen//nios_system_onchip_memory_component_configuration.pl --do_build_sim=0 ] +Info: onchip_memory: Done RTL generation for module 'nios_system_onchip_memory' +Info: onchip_memory: "nios_system" instantiated altera_avalon_onchip_memory2 "onchip_memory" +Info: switches: Starting RTL generation for module 'nios_system_switches' +Info: switches: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_switches --dir=C:/Users/takayun/AppData/Local/Temp/alt7094_7381845228037269778.dir/0003_switches_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7094_7381845228037269778.dir/0003_switches_gen//nios_system_switches_component_configuration.pl --do_build_sim=0 ] +Info: switches: Done RTL generation for module 'nios_system_switches' +Info: switches: "nios_system" instantiated altera_avalon_pio "switches" +Info: jtag_uart: Starting RTL generation for module 'nios_system_jtag_uart' +Info: jtag_uart: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_jtag_uart -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_jtag_uart/generate_rtl.pl --name=nios_system_jtag_uart --dir=C:/Users/takayun/AppData/Local/Temp/alt7094_7381845228037269778.dir/0004_jtag_uart_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7094_7381845228037269778.dir/0004_jtag_uart_gen//nios_system_jtag_uart_component_configuration.pl --do_build_sim=0 ] +Info: jtag_uart: Done RTL generation for module 'nios_system_jtag_uart' +Info: jtag_uart: "nios_system" instantiated altera_avalon_jtag_uart "jtag_uart" +Info: LEDs: Starting RTL generation for module 'nios_system_LEDs' +Info: LEDs: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_LEDs --dir=C:/Users/takayun/AppData/Local/Temp/alt7094_7381845228037269778.dir/0005_LEDs_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7094_7381845228037269778.dir/0005_LEDs_gen//nios_system_LEDs_component_configuration.pl --do_build_sim=0 ] +Info: LEDs: Done RTL generation for module 'nios_system_LEDs' +Info: LEDs: "nios_system" instantiated altera_avalon_pio "LEDs" +Info: nios2_processor_instruction_master_translator: "nios_system" instantiated altera_merlin_master_translator "nios2_processor_instruction_master_translator" +Info: nios2_processor_jtag_debug_module_translator: "nios_system" instantiated altera_merlin_slave_translator "nios2_processor_jtag_debug_module_translator" +Info: nios2_processor_instruction_master_translator_avalon_universal_master_0_agent: "nios_system" instantiated altera_merlin_master_agent "nios2_processor_instruction_master_translator_avalon_universal_master_0_agent" +Info: nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent: "nios_system" instantiated altera_merlin_slave_agent "nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent" +Info: nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo: "nios_system" instantiated altera_avalon_sc_fifo "nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo" +Info: addr_router: "nios_system" instantiated altera_merlin_router "addr_router" +Info: addr_router_001: "nios_system" instantiated altera_merlin_router "addr_router_001" +Info: id_router: "nios_system" instantiated altera_merlin_router "id_router" +Info: id_router_002: "nios_system" instantiated altera_merlin_router "id_router_002" +Info: rst_controller: "nios_system" instantiated altera_reset_controller "rst_controller" +Info: cmd_xbar_demux: "nios_system" instantiated altera_merlin_demultiplexer "cmd_xbar_demux" +Info: cmd_xbar_demux_001: "nios_system" instantiated altera_merlin_demultiplexer "cmd_xbar_demux_001" +Info: cmd_xbar_mux: "nios_system" instantiated altera_merlin_multiplexer "cmd_xbar_mux" +Info: rsp_xbar_demux_002: "nios_system" instantiated altera_merlin_demultiplexer "rsp_xbar_demux_002" +Info: rsp_xbar_mux: "nios_system" instantiated altera_merlin_multiplexer "rsp_xbar_mux" +Info: Reusing file C:/Users/takayun/Desktop/qsys_tutorial/nios_system/synthesis/submodules/altera_merlin_arbitrator.sv +Info: rsp_xbar_mux_001: "nios_system" instantiated altera_merlin_multiplexer "rsp_xbar_mux_001" +Info: Reusing file C:/Users/takayun/Desktop/qsys_tutorial/nios_system/synthesis/submodules/altera_merlin_arbitrator.sv +Info: irq_mapper: "nios_system" instantiated altera_irq_mapper "irq_mapper" +Info: nios_system: Done nios_system" with 23 modules, 64 files, 1233875 bytes +Info: ip-generate succeeded. +Info: Finished: Create HDL design files for synthesis diff --git a/nios_system_generation_20.rpt b/nios_system_generation_20.rpt new file mode 100644 index 0000000..c84387e --- /dev/null +++ b/nios_system_generation_20.rpt @@ -0,0 +1,320 @@ +Info: Starting: Create block symbol file (.bsf) +Info: ip-generate --project-directory=C:/Users/takayun/Documents/DE2-115/qsys_tutorial/ --output-directory=C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/ --report-file=bsf:C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.bsf --system-info=DEVICE_FAMILY="Cyclone IV E" --system-info=DEVICE=EP4CE115F29C7 --system-info=DEVICE_SPEEDGRADE=7 --component-file=C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.qsys +Progress: Loading qsys_tutorial/nios_system.qsys +Progress: Reading input file +Progress: Adding clk_0 [clock_source 13.0] +Progress: Parameterizing module clk_0 +Progress: Adding nios2_processor [altera_nios2_qsys 13.0] +Progress: Parameterizing module nios2_processor +Progress: Adding onchip_memory [altera_avalon_onchip_memory2 13.0.1.99.2] +Progress: Parameterizing module onchip_memory +Progress: Adding jtag_uart [altera_avalon_jtag_uart 13.0.1.99.2] +Progress: Parameterizing module jtag_uart +Progress: Adding LEDs [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module LEDs +Progress: Adding LEDRs [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module LEDRs +Progress: Adding switches [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module switches +Progress: Adding push_switches [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module push_switches +Progress: Adding hex0 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex0 +Progress: Adding hex1 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex1 +Progress: Adding hex2 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex2 +Progress: Adding hex3 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex3 +Progress: Adding hex4 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex4 +Progress: Adding hex5 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex5 +Progress: Adding hex6 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex6 +Progress: Adding hex7 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex7 +Progress: Adding lcd_16207_0 [altera_avalon_lcd_16207 13.0.1.99.2] +Progress: Parameterizing module lcd_16207_0 +Progress: Adding lcd_on [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module lcd_on +Progress: Adding lcd_blon [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module lcd_blon +Progress: Building connections +Progress: Parameterizing connections +Progress: Validating +Progress: Done reading input file +Info: nios_system.switches: PIO inputs are not hardwired in test bench. Undefined values will be read from PIO inputs during simulation. +Info: nios_system.push_switches: PIO inputs are not hardwired in test bench. Undefined values will be read from PIO inputs during simulation. +Info: ip-generate succeeded. +Info: Finished: Create block symbol file (.bsf) +Info: +Info: Starting: Create HDL design files for synthesis +Info: ip-generate --project-directory=C:/Users/takayun/Documents/DE2-115/qsys_tutorial/ --output-directory=C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/synthesis/ --file-set=QUARTUS_SYNTH --report-file=sopcinfo:C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.sopcinfo --report-file=html:C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.html --report-file=qip:C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/synthesis/nios_system.qip --report-file=cmp:C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.cmp --report-file=svd --system-info=DEVICE_FAMILY="Cyclone IV E" --system-info=DEVICE=EP4CE115F29C7 --system-info=DEVICE_SPEEDGRADE=7 --component-file=C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.qsys --language=VERILOG +Progress: Loading qsys_tutorial/nios_system.qsys +Progress: Reading input file +Progress: Adding clk_0 [clock_source 13.0] +Progress: Parameterizing module clk_0 +Progress: Adding nios2_processor [altera_nios2_qsys 13.0] +Progress: Parameterizing module nios2_processor +Progress: Adding onchip_memory [altera_avalon_onchip_memory2 13.0.1.99.2] +Progress: Parameterizing module onchip_memory +Progress: Adding jtag_uart [altera_avalon_jtag_uart 13.0.1.99.2] +Progress: Parameterizing module jtag_uart +Progress: Adding LEDs [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module LEDs +Progress: Adding LEDRs [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module LEDRs +Progress: Adding switches [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module switches +Progress: Adding push_switches [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module push_switches +Progress: Adding hex0 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex0 +Progress: Adding hex1 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex1 +Progress: Adding hex2 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex2 +Progress: Adding hex3 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex3 +Progress: Adding hex4 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex4 +Progress: Adding hex5 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex5 +Progress: Adding hex6 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex6 +Progress: Adding hex7 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex7 +Progress: Adding lcd_16207_0 [altera_avalon_lcd_16207 13.0.1.99.2] +Progress: Parameterizing module lcd_16207_0 +Progress: Adding lcd_on [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module lcd_on +Progress: Adding lcd_blon [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module lcd_blon +Progress: Building connections +Progress: Parameterizing connections +Progress: Validating +Progress: Done reading input file +Info: nios_system.switches: PIO inputs are not hardwired in test bench. Undefined values will be read from PIO inputs during simulation. +Info: nios_system.push_switches: PIO inputs are not hardwired in test bench. Undefined values will be read from PIO inputs during simulation. +Info: nios_system: Generating nios_system "nios_system" for QUARTUS_SYNTH +Info: pipeline_bridge_swap_transform: After transform: 19 modules, 76 connections +Info: No custom instruction connections, skipping transform +Info: merlin_translator_transform: After transform: 39 modules, 156 connections +Info: merlin_domain_transform: After transform: 78 modules, 423 connections +Info: merlin_router_transform: After transform: 98 modules, 503 connections +Info: reset_adaptation_transform: After transform: 99 modules, 390 connections +Info: merlin_network_to_switch_transform: After transform: 138 modules, 472 connections +Info: merlin_mm_transform: After transform: 138 modules, 472 connections +Info: merlin_interrupt_mapper_transform: After transform: 139 modules, 475 connections +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Info: nios2_processor: Starting RTL generation for module 'nios_system_nios2_processor' +Info: nios2_processor: Generation command is [exec C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2/eperl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2/cpu_lib -I C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2/nios_lib -I C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2 -I C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2 -- C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2/generate_rtl.epl --name=nios_system_nios2_processor --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0156_nios2_processor_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0156_nios2_processor_gen//nios_system_nios2_processor_processor_configuration.pl --do_build_sim=0 --bogus ] +Info: nios2_processor: # 2016.12.01 23:49:05 (*) Starting Nios II generation +Info: nios2_processor: # 2016.12.01 23:49:05 (*) Checking for plaintext license. +Info: nios2_processor: # 2016.12.01 23:49:06 (*) Couldn't query license setup in Quartus directory C:/altera/13.0sp1/quartus +Info: nios2_processor: # 2016.12.01 23:49:06 (*) Defaulting to contents of LM_LICENSE_FILE environment variable +Info: nios2_processor: # 2016.12.01 23:49:06 (*) LM_LICENSE_FILE environment variable is empty +Info: nios2_processor: # 2016.12.01 23:49:06 (*) Plaintext license not found. +Info: nios2_processor: # 2016.12.01 23:49:06 (*) No license required to generate encrypted Nios II/e. +Info: nios2_processor: # 2016.12.01 23:49:06 (*) Elaborating CPU configuration settings +Info: nios2_processor: # 2016.12.01 23:49:06 (*) Creating all objects for CPU +Info: nios2_processor: # 2016.12.01 23:49:07 (*) Generating RTL from CPU objects +Info: nios2_processor: # 2016.12.01 23:49:07 (*) Creating plain-text RTL +Info: nios2_processor: # 2016.12.01 23:49:09 (*) Done Nios II generation +Info: nios2_processor: Done RTL generation for module 'nios_system_nios2_processor' +Info: nios2_processor: "nios_system" instantiated altera_nios2_qsys "nios2_processor" +Info: onchip_memory: Starting RTL generation for module 'nios_system_onchip_memory' +Info: onchip_memory: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_onchip_memory2 -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_onchip_memory2/generate_rtl.pl --name=nios_system_onchip_memory --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0157_onchip_memory_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0157_onchip_memory_gen//nios_system_onchip_memory_component_configuration.pl --do_build_sim=0 ] +Info: onchip_memory: Done RTL generation for module 'nios_system_onchip_memory' +Info: onchip_memory: "nios_system" instantiated altera_avalon_onchip_memory2 "onchip_memory" +Info: jtag_uart: Starting RTL generation for module 'nios_system_jtag_uart' +Info: jtag_uart: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_jtag_uart -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_jtag_uart/generate_rtl.pl --name=nios_system_jtag_uart --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0158_jtag_uart_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0158_jtag_uart_gen//nios_system_jtag_uart_component_configuration.pl --do_build_sim=0 ] +Info: jtag_uart: Done RTL generation for module 'nios_system_jtag_uart' +Info: jtag_uart: "nios_system" instantiated altera_avalon_jtag_uart "jtag_uart" +Info: LEDs: Starting RTL generation for module 'nios_system_LEDs' +Info: LEDs: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_LEDs --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0159_LEDs_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0159_LEDs_gen//nios_system_LEDs_component_configuration.pl --do_build_sim=0 ] +Info: LEDs: Done RTL generation for module 'nios_system_LEDs' +Info: LEDs: "nios_system" instantiated altera_avalon_pio "LEDs" +Info: LEDRs: Starting RTL generation for module 'nios_system_LEDRs' +Info: LEDRs: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_LEDRs --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0160_LEDRs_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0160_LEDRs_gen//nios_system_LEDRs_component_configuration.pl --do_build_sim=0 ] +Info: LEDRs: Done RTL generation for module 'nios_system_LEDRs' +Info: LEDRs: "nios_system" instantiated altera_avalon_pio "LEDRs" +Info: switches: Starting RTL generation for module 'nios_system_switches' +Info: switches: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_switches --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0161_switches_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0161_switches_gen//nios_system_switches_component_configuration.pl --do_build_sim=0 ] +Info: switches: Done RTL generation for module 'nios_system_switches' +Info: switches: "nios_system" instantiated altera_avalon_pio "switches" +Info: push_switches: Starting RTL generation for module 'nios_system_push_switches' +Info: push_switches: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_push_switches --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0162_push_switches_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0162_push_switches_gen//nios_system_push_switches_component_configuration.pl --do_build_sim=0 ] +Info: push_switches: Done RTL generation for module 'nios_system_push_switches' +Info: push_switches: "nios_system" instantiated altera_avalon_pio "push_switches" +Info: hex0: Starting RTL generation for module 'nios_system_hex0' +Info: hex0: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_hex0 --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0163_hex0_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0163_hex0_gen//nios_system_hex0_component_configuration.pl --do_build_sim=0 ] +Info: hex0: Done RTL generation for module 'nios_system_hex0' +Info: hex0: "nios_system" instantiated altera_avalon_pio "hex0" +Info: lcd_16207_0: Starting RTL generation for module 'nios_system_lcd_16207_0' +Info: lcd_16207_0: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_lcd_16207 -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_lcd_16207/generate_rtl.pl --name=nios_system_lcd_16207_0 --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0164_lcd_16207_0_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0164_lcd_16207_0_gen//nios_system_lcd_16207_0_component_configuration.pl --do_build_sim=0 ] +Info: lcd_16207_0: Done RTL generation for module 'nios_system_lcd_16207_0' +Info: lcd_16207_0: "nios_system" instantiated altera_avalon_lcd_16207 "lcd_16207_0" +Info: lcd_on: Starting RTL generation for module 'nios_system_lcd_on' +Info: lcd_on: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_lcd_on --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0165_lcd_on_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0165_lcd_on_gen//nios_system_lcd_on_component_configuration.pl --do_build_sim=0 ] +Info: lcd_on: Done RTL generation for module 'nios_system_lcd_on' +Info: lcd_on: "nios_system" instantiated altera_avalon_pio "lcd_on" +Info: nios2_processor_instruction_master_translator: "nios_system" instantiated altera_merlin_master_translator "nios2_processor_instruction_master_translator" +Info: nios2_processor_jtag_debug_module_translator: "nios_system" instantiated altera_merlin_slave_translator "nios2_processor_jtag_debug_module_translator" +Info: nios2_processor_instruction_master_translator_avalon_universal_master_0_agent: "nios_system" instantiated altera_merlin_master_agent "nios2_processor_instruction_master_translator_avalon_universal_master_0_agent" +Info: nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent: "nios_system" instantiated altera_merlin_slave_agent "nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent" +Info: nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo: "nios_system" instantiated altera_avalon_sc_fifo "nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo" +Info: addr_router: "nios_system" instantiated altera_merlin_router "addr_router" +Info: addr_router_001: "nios_system" instantiated altera_merlin_router "addr_router_001" +Info: id_router: "nios_system" instantiated altera_merlin_router "id_router" +Info: id_router_003: "nios_system" instantiated altera_merlin_router "id_router_003" +Info: rst_controller: "nios_system" instantiated altera_reset_controller "rst_controller" +Info: cmd_xbar_demux: "nios_system" instantiated altera_merlin_demultiplexer "cmd_xbar_demux" +Info: cmd_xbar_demux_001: "nios_system" instantiated altera_merlin_demultiplexer "cmd_xbar_demux_001" +Info: cmd_xbar_mux: "nios_system" instantiated altera_merlin_multiplexer "cmd_xbar_mux" +Info: rsp_xbar_demux: "nios_system" instantiated altera_merlin_demultiplexer "rsp_xbar_demux" +Info: rsp_xbar_demux_003: "nios_system" instantiated altera_merlin_demultiplexer "rsp_xbar_demux_003" +Info: rsp_xbar_mux: "nios_system" instantiated altera_merlin_multiplexer "rsp_xbar_mux" +Info: Reusing file C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/synthesis/submodules/altera_merlin_arbitrator.sv +Info: rsp_xbar_mux_001: "nios_system" instantiated altera_merlin_multiplexer "rsp_xbar_mux_001" +Info: Reusing file C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/synthesis/submodules/altera_merlin_arbitrator.sv +Info: irq_mapper: "nios_system" instantiated altera_irq_mapper "irq_mapper" +Info: nios_system: Done nios_system" with 29 modules, 157 files, 3126120 bytes +Info: ip-generate succeeded. +Info: Finished: Create HDL design files for synthesis diff --git a/nios_system_generation_21.rpt b/nios_system_generation_21.rpt new file mode 100644 index 0000000..ea0520b --- /dev/null +++ b/nios_system_generation_21.rpt @@ -0,0 +1,320 @@ +Info: Starting: Create block symbol file (.bsf) +Info: ip-generate --project-directory=C:/Users/takayun/Documents/DE2-115/qsys_tutorial/ --output-directory=C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/ --report-file=bsf:C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.bsf --system-info=DEVICE_FAMILY="Cyclone IV E" --system-info=DEVICE=EP4CE115F29C7 --system-info=DEVICE_SPEEDGRADE=7 --component-file=C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.qsys +Progress: Loading qsys_tutorial/nios_system.qsys +Progress: Reading input file +Progress: Adding clk_0 [clock_source 13.0] +Progress: Parameterizing module clk_0 +Progress: Adding nios2_processor [altera_nios2_qsys 13.0] +Progress: Parameterizing module nios2_processor +Progress: Adding onchip_memory [altera_avalon_onchip_memory2 13.0.1.99.2] +Progress: Parameterizing module onchip_memory +Progress: Adding jtag_uart [altera_avalon_jtag_uart 13.0.1.99.2] +Progress: Parameterizing module jtag_uart +Progress: Adding LEDs [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module LEDs +Progress: Adding LEDRs [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module LEDRs +Progress: Adding switches [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module switches +Progress: Adding push_switches [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module push_switches +Progress: Adding hex0 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex0 +Progress: Adding hex1 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex1 +Progress: Adding hex2 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex2 +Progress: Adding hex3 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex3 +Progress: Adding hex4 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex4 +Progress: Adding hex5 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex5 +Progress: Adding hex6 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex6 +Progress: Adding hex7 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex7 +Progress: Adding lcd_16207_0 [altera_avalon_lcd_16207 13.0.1.99.2] +Progress: Parameterizing module lcd_16207_0 +Progress: Adding lcd_on [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module lcd_on +Progress: Adding lcd_blon [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module lcd_blon +Progress: Building connections +Progress: Parameterizing connections +Progress: Validating +Progress: Done reading input file +Info: nios_system.switches: PIO inputs are not hardwired in test bench. Undefined values will be read from PIO inputs during simulation. +Info: nios_system.push_switches: PIO inputs are not hardwired in test bench. Undefined values will be read from PIO inputs during simulation. +Info: ip-generate succeeded. +Info: Finished: Create block symbol file (.bsf) +Info: +Info: Starting: Create HDL design files for synthesis +Info: ip-generate --project-directory=C:/Users/takayun/Documents/DE2-115/qsys_tutorial/ --output-directory=C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/synthesis/ --file-set=QUARTUS_SYNTH --report-file=sopcinfo:C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.sopcinfo --report-file=html:C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.html --report-file=qip:C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/synthesis/nios_system.qip --report-file=cmp:C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.cmp --report-file=svd --system-info=DEVICE_FAMILY="Cyclone IV E" --system-info=DEVICE=EP4CE115F29C7 --system-info=DEVICE_SPEEDGRADE=7 --component-file=C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.qsys --language=VERILOG +Progress: Loading qsys_tutorial/nios_system.qsys +Progress: Reading input file +Progress: Adding clk_0 [clock_source 13.0] +Progress: Parameterizing module clk_0 +Progress: Adding nios2_processor [altera_nios2_qsys 13.0] +Progress: Parameterizing module nios2_processor +Progress: Adding onchip_memory [altera_avalon_onchip_memory2 13.0.1.99.2] +Progress: Parameterizing module onchip_memory +Progress: Adding jtag_uart [altera_avalon_jtag_uart 13.0.1.99.2] +Progress: Parameterizing module jtag_uart +Progress: Adding LEDs [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module LEDs +Progress: Adding LEDRs [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module LEDRs +Progress: Adding switches [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module switches +Progress: Adding push_switches [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module push_switches +Progress: Adding hex0 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex0 +Progress: Adding hex1 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex1 +Progress: Adding hex2 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex2 +Progress: Adding hex3 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex3 +Progress: Adding hex4 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex4 +Progress: Adding hex5 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex5 +Progress: Adding hex6 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex6 +Progress: Adding hex7 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex7 +Progress: Adding lcd_16207_0 [altera_avalon_lcd_16207 13.0.1.99.2] +Progress: Parameterizing module lcd_16207_0 +Progress: Adding lcd_on [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module lcd_on +Progress: Adding lcd_blon [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module lcd_blon +Progress: Building connections +Progress: Parameterizing connections +Progress: Validating +Progress: Done reading input file +Info: nios_system.switches: PIO inputs are not hardwired in test bench. Undefined values will be read from PIO inputs during simulation. +Info: nios_system.push_switches: PIO inputs are not hardwired in test bench. Undefined values will be read from PIO inputs during simulation. +Info: nios_system: Generating nios_system "nios_system" for QUARTUS_SYNTH +Info: pipeline_bridge_swap_transform: After transform: 19 modules, 76 connections +Info: No custom instruction connections, skipping transform +Info: merlin_translator_transform: After transform: 39 modules, 156 connections +Info: merlin_domain_transform: After transform: 78 modules, 423 connections +Info: merlin_router_transform: After transform: 98 modules, 503 connections +Info: reset_adaptation_transform: After transform: 99 modules, 390 connections +Info: merlin_network_to_switch_transform: After transform: 138 modules, 472 connections +Info: merlin_mm_transform: After transform: 138 modules, 472 connections +Info: merlin_interrupt_mapper_transform: After transform: 139 modules, 475 connections +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Info: nios2_processor: Starting RTL generation for module 'nios_system_nios2_processor' +Info: nios2_processor: Generation command is [exec C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2/eperl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2/cpu_lib -I C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2/nios_lib -I C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2 -I C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2 -- C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2/generate_rtl.epl --name=nios_system_nios2_processor --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0183_nios2_processor_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0183_nios2_processor_gen//nios_system_nios2_processor_processor_configuration.pl --do_build_sim=0 --bogus ] +Info: nios2_processor: # 2016.12.02 01:03:07 (*) Starting Nios II generation +Info: nios2_processor: # 2016.12.02 01:03:07 (*) Checking for plaintext license. +Info: nios2_processor: # 2016.12.02 01:03:08 (*) Couldn't query license setup in Quartus directory C:/altera/13.0sp1/quartus +Info: nios2_processor: # 2016.12.02 01:03:08 (*) Defaulting to contents of LM_LICENSE_FILE environment variable +Info: nios2_processor: # 2016.12.02 01:03:08 (*) LM_LICENSE_FILE environment variable is empty +Info: nios2_processor: # 2016.12.02 01:03:08 (*) Plaintext license not found. +Info: nios2_processor: # 2016.12.02 01:03:08 (*) No license required to generate encrypted Nios II/e. +Info: nios2_processor: # 2016.12.02 01:03:08 (*) Elaborating CPU configuration settings +Info: nios2_processor: # 2016.12.02 01:03:08 (*) Creating all objects for CPU +Info: nios2_processor: # 2016.12.02 01:03:09 (*) Generating RTL from CPU objects +Info: nios2_processor: # 2016.12.02 01:03:09 (*) Creating plain-text RTL +Info: nios2_processor: # 2016.12.02 01:03:11 (*) Done Nios II generation +Info: nios2_processor: Done RTL generation for module 'nios_system_nios2_processor' +Info: nios2_processor: "nios_system" instantiated altera_nios2_qsys "nios2_processor" +Info: onchip_memory: Starting RTL generation for module 'nios_system_onchip_memory' +Info: onchip_memory: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_onchip_memory2 -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_onchip_memory2/generate_rtl.pl --name=nios_system_onchip_memory --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0184_onchip_memory_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0184_onchip_memory_gen//nios_system_onchip_memory_component_configuration.pl --do_build_sim=0 ] +Info: onchip_memory: Done RTL generation for module 'nios_system_onchip_memory' +Info: onchip_memory: "nios_system" instantiated altera_avalon_onchip_memory2 "onchip_memory" +Info: jtag_uart: Starting RTL generation for module 'nios_system_jtag_uart' +Info: jtag_uart: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_jtag_uart -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_jtag_uart/generate_rtl.pl --name=nios_system_jtag_uart --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0185_jtag_uart_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0185_jtag_uart_gen//nios_system_jtag_uart_component_configuration.pl --do_build_sim=0 ] +Info: jtag_uart: Done RTL generation for module 'nios_system_jtag_uart' +Info: jtag_uart: "nios_system" instantiated altera_avalon_jtag_uart "jtag_uart" +Info: LEDs: Starting RTL generation for module 'nios_system_LEDs' +Info: LEDs: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_LEDs --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0186_LEDs_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0186_LEDs_gen//nios_system_LEDs_component_configuration.pl --do_build_sim=0 ] +Info: LEDs: Done RTL generation for module 'nios_system_LEDs' +Info: LEDs: "nios_system" instantiated altera_avalon_pio "LEDs" +Info: LEDRs: Starting RTL generation for module 'nios_system_LEDRs' +Info: LEDRs: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_LEDRs --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0187_LEDRs_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0187_LEDRs_gen//nios_system_LEDRs_component_configuration.pl --do_build_sim=0 ] +Info: LEDRs: Done RTL generation for module 'nios_system_LEDRs' +Info: LEDRs: "nios_system" instantiated altera_avalon_pio "LEDRs" +Info: switches: Starting RTL generation for module 'nios_system_switches' +Info: switches: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_switches --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0188_switches_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0188_switches_gen//nios_system_switches_component_configuration.pl --do_build_sim=0 ] +Info: switches: Done RTL generation for module 'nios_system_switches' +Info: switches: "nios_system" instantiated altera_avalon_pio "switches" +Info: push_switches: Starting RTL generation for module 'nios_system_push_switches' +Info: push_switches: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_push_switches --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0189_push_switches_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0189_push_switches_gen//nios_system_push_switches_component_configuration.pl --do_build_sim=0 ] +Info: push_switches: Done RTL generation for module 'nios_system_push_switches' +Info: push_switches: "nios_system" instantiated altera_avalon_pio "push_switches" +Info: hex0: Starting RTL generation for module 'nios_system_hex0' +Info: hex0: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_hex0 --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0190_hex0_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0190_hex0_gen//nios_system_hex0_component_configuration.pl --do_build_sim=0 ] +Info: hex0: Done RTL generation for module 'nios_system_hex0' +Info: hex0: "nios_system" instantiated altera_avalon_pio "hex0" +Info: lcd_16207_0: Starting RTL generation for module 'nios_system_lcd_16207_0' +Info: lcd_16207_0: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_lcd_16207 -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_lcd_16207/generate_rtl.pl --name=nios_system_lcd_16207_0 --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0191_lcd_16207_0_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0191_lcd_16207_0_gen//nios_system_lcd_16207_0_component_configuration.pl --do_build_sim=0 ] +Info: lcd_16207_0: Done RTL generation for module 'nios_system_lcd_16207_0' +Info: lcd_16207_0: "nios_system" instantiated altera_avalon_lcd_16207 "lcd_16207_0" +Info: lcd_on: Starting RTL generation for module 'nios_system_lcd_on' +Info: lcd_on: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_lcd_on --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0192_lcd_on_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0192_lcd_on_gen//nios_system_lcd_on_component_configuration.pl --do_build_sim=0 ] +Info: lcd_on: Done RTL generation for module 'nios_system_lcd_on' +Info: lcd_on: "nios_system" instantiated altera_avalon_pio "lcd_on" +Info: nios2_processor_instruction_master_translator: "nios_system" instantiated altera_merlin_master_translator "nios2_processor_instruction_master_translator" +Info: nios2_processor_jtag_debug_module_translator: "nios_system" instantiated altera_merlin_slave_translator "nios2_processor_jtag_debug_module_translator" +Info: nios2_processor_instruction_master_translator_avalon_universal_master_0_agent: "nios_system" instantiated altera_merlin_master_agent "nios2_processor_instruction_master_translator_avalon_universal_master_0_agent" +Info: nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent: "nios_system" instantiated altera_merlin_slave_agent "nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent" +Info: nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo: "nios_system" instantiated altera_avalon_sc_fifo "nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo" +Info: addr_router: "nios_system" instantiated altera_merlin_router "addr_router" +Info: addr_router_001: "nios_system" instantiated altera_merlin_router "addr_router_001" +Info: id_router: "nios_system" instantiated altera_merlin_router "id_router" +Info: id_router_003: "nios_system" instantiated altera_merlin_router "id_router_003" +Info: rst_controller: "nios_system" instantiated altera_reset_controller "rst_controller" +Info: cmd_xbar_demux: "nios_system" instantiated altera_merlin_demultiplexer "cmd_xbar_demux" +Info: cmd_xbar_demux_001: "nios_system" instantiated altera_merlin_demultiplexer "cmd_xbar_demux_001" +Info: cmd_xbar_mux: "nios_system" instantiated altera_merlin_multiplexer "cmd_xbar_mux" +Info: rsp_xbar_demux: "nios_system" instantiated altera_merlin_demultiplexer "rsp_xbar_demux" +Info: rsp_xbar_demux_003: "nios_system" instantiated altera_merlin_demultiplexer "rsp_xbar_demux_003" +Info: rsp_xbar_mux: "nios_system" instantiated altera_merlin_multiplexer "rsp_xbar_mux" +Info: Reusing file C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/synthesis/submodules/altera_merlin_arbitrator.sv +Info: rsp_xbar_mux_001: "nios_system" instantiated altera_merlin_multiplexer "rsp_xbar_mux_001" +Info: Reusing file C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/synthesis/submodules/altera_merlin_arbitrator.sv +Info: irq_mapper: "nios_system" instantiated altera_irq_mapper "irq_mapper" +Info: nios_system: Done nios_system" with 29 modules, 157 files, 4115408 bytes +Info: ip-generate succeeded. +Info: Finished: Create HDL design files for synthesis diff --git a/nios_system_generation_22.rpt b/nios_system_generation_22.rpt new file mode 100644 index 0000000..786b4c2 --- /dev/null +++ b/nios_system_generation_22.rpt @@ -0,0 +1,319 @@ +Info: Starting: Create block symbol file (.bsf) +Info: ip-generate --project-directory=C:/Users/takayun/Documents/DE2-115/qsys_tutorial/ --output-directory=C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/ --report-file=bsf:C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.bsf --system-info=DEVICE_FAMILY="Cyclone IV E" --system-info=DEVICE=EP4CE115F29C7 --system-info=DEVICE_SPEEDGRADE=7 --component-file=C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.qsys +Progress: Loading qsys_tutorial/nios_system.qsys +Progress: Reading input file +Progress: Adding clk_0 [clock_source 13.0] +Progress: Parameterizing module clk_0 +Progress: Adding nios2_processor [altera_nios2_qsys 13.0] +Progress: Parameterizing module nios2_processor +Progress: Adding onchip_memory [altera_avalon_onchip_memory2 13.0.1.99.2] +Progress: Parameterizing module onchip_memory +Progress: Adding jtag_uart [altera_avalon_jtag_uart 13.0.1.99.2] +Progress: Parameterizing module jtag_uart +Progress: Adding LEDs [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module LEDs +Progress: Adding LEDRs [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module LEDRs +Progress: Adding switches [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module switches +Progress: Adding push_switches [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module push_switches +Progress: Adding hex0 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex0 +Progress: Adding hex1 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex1 +Progress: Adding hex2 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex2 +Progress: Adding hex3 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex3 +Progress: Adding hex4 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex4 +Progress: Adding hex5 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex5 +Progress: Adding hex6 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex6 +Progress: Adding hex7 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex7 +Progress: Adding lcd_16207_0 [altera_avalon_lcd_16207 13.0.1.99.2] +Progress: Parameterizing module lcd_16207_0 +Progress: Adding lcd_on [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module lcd_on +Progress: Adding lcd_blon [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module lcd_blon +Progress: Building connections +Progress: Parameterizing connections +Progress: Validating +Progress: Done reading input file +Info: nios_system.switches: PIO inputs are not hardwired in test bench. Undefined values will be read from PIO inputs during simulation. +Info: nios_system.push_switches: PIO inputs are not hardwired in test bench. Undefined values will be read from PIO inputs during simulation. +Info: ip-generate succeeded. +Info: Finished: Create block symbol file (.bsf) +Info: +Info: Starting: Create HDL design files for synthesis +Info: ip-generate --project-directory=C:/Users/takayun/Documents/DE2-115/qsys_tutorial/ --output-directory=C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/synthesis/ --file-set=QUARTUS_SYNTH --report-file=sopcinfo:C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.sopcinfo --report-file=html:C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.html --report-file=qip:C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/synthesis/nios_system.qip --report-file=cmp:C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.cmp --report-file=svd --system-info=DEVICE_FAMILY="Cyclone IV E" --system-info=DEVICE=EP4CE115F29C7 --system-info=DEVICE_SPEEDGRADE=7 --component-file=C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.qsys --language=VERILOG +Progress: Loading qsys_tutorial/nios_system.qsys +Progress: Reading input file +Progress: Adding clk_0 [clock_source 13.0] +Progress: Parameterizing module clk_0 +Progress: Adding nios2_processor [altera_nios2_qsys 13.0] +Progress: Parameterizing module nios2_processor +Progress: Adding onchip_memory [altera_avalon_onchip_memory2 13.0.1.99.2] +Progress: Parameterizing module onchip_memory +Progress: Adding jtag_uart [altera_avalon_jtag_uart 13.0.1.99.2] +Progress: Parameterizing module jtag_uart +Progress: Adding LEDs [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module LEDs +Progress: Adding LEDRs [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module LEDRs +Progress: Adding switches [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module switches +Progress: Adding push_switches [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module push_switches +Progress: Adding hex0 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex0 +Progress: Adding hex1 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex1 +Progress: Adding hex2 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex2 +Progress: Adding hex3 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex3 +Progress: Adding hex4 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex4 +Progress: Adding hex5 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex5 +Progress: Adding hex6 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex6 +Progress: Adding hex7 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module hex7 +Progress: Adding lcd_16207_0 [altera_avalon_lcd_16207 13.0.1.99.2] +Progress: Parameterizing module lcd_16207_0 +Progress: Adding lcd_on [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module lcd_on +Progress: Adding lcd_blon [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module lcd_blon +Progress: Building connections +Progress: Parameterizing connections +Progress: Validating +Progress: Done reading input file +Info: nios_system.switches: PIO inputs are not hardwired in test bench. Undefined values will be read from PIO inputs during simulation. +Info: nios_system.push_switches: PIO inputs are not hardwired in test bench. Undefined values will be read from PIO inputs during simulation. +Info: nios_system: Generating nios_system "nios_system" for QUARTUS_SYNTH +Info: pipeline_bridge_swap_transform: After transform: 19 modules, 75 connections +Info: No custom instruction connections, skipping transform +Info: merlin_translator_transform: After transform: 39 modules, 155 connections +Info: merlin_domain_transform: After transform: 78 modules, 423 connections +Info: merlin_router_transform: After transform: 98 modules, 503 connections +Info: reset_adaptation_transform: After transform: 99 modules, 390 connections +Info: merlin_network_to_switch_transform: After transform: 138 modules, 470 connections +Info: merlin_mm_transform: After transform: 138 modules, 470 connections +Info: merlin_interrupt_mapper_transform: After transform: 139 modules, 473 connections +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Info: nios2_processor: Starting RTL generation for module 'nios_system_nios2_processor' +Info: nios2_processor: Generation command is [exec C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2/eperl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2/cpu_lib -I C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2/nios_lib -I C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2 -I C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2 -- C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2/generate_rtl.epl --name=nios_system_nios2_processor --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0210_nios2_processor_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0210_nios2_processor_gen//nios_system_nios2_processor_processor_configuration.pl --do_build_sim=0 --bogus ] +Info: nios2_processor: # 2016.12.02 01:19:36 (*) Starting Nios II generation +Info: nios2_processor: # 2016.12.02 01:19:36 (*) Checking for plaintext license. +Info: nios2_processor: # 2016.12.02 01:19:36 (*) Couldn't query license setup in Quartus directory C:/altera/13.0sp1/quartus +Info: nios2_processor: # 2016.12.02 01:19:36 (*) Defaulting to contents of LM_LICENSE_FILE environment variable +Info: nios2_processor: # 2016.12.02 01:19:36 (*) LM_LICENSE_FILE environment variable is empty +Info: nios2_processor: # 2016.12.02 01:19:36 (*) Plaintext license not found. +Info: nios2_processor: # 2016.12.02 01:19:36 (*) No license required to generate encrypted Nios II/e. +Info: nios2_processor: # 2016.12.02 01:19:36 (*) Elaborating CPU configuration settings +Info: nios2_processor: # 2016.12.02 01:19:36 (*) Creating all objects for CPU +Info: nios2_processor: # 2016.12.02 01:19:37 (*) Generating RTL from CPU objects +Info: nios2_processor: # 2016.12.02 01:19:37 (*) Creating plain-text RTL +Info: nios2_processor: # 2016.12.02 01:19:40 (*) Done Nios II generation +Info: nios2_processor: Done RTL generation for module 'nios_system_nios2_processor' +Info: nios2_processor: "nios_system" instantiated altera_nios2_qsys "nios2_processor" +Info: onchip_memory: Starting RTL generation for module 'nios_system_onchip_memory' +Info: onchip_memory: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_onchip_memory2 -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_onchip_memory2/generate_rtl.pl --name=nios_system_onchip_memory --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0211_onchip_memory_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0211_onchip_memory_gen//nios_system_onchip_memory_component_configuration.pl --do_build_sim=0 ] +Info: onchip_memory: Done RTL generation for module 'nios_system_onchip_memory' +Info: onchip_memory: "nios_system" instantiated altera_avalon_onchip_memory2 "onchip_memory" +Info: jtag_uart: Starting RTL generation for module 'nios_system_jtag_uart' +Info: jtag_uart: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_jtag_uart -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_jtag_uart/generate_rtl.pl --name=nios_system_jtag_uart --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0212_jtag_uart_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0212_jtag_uart_gen//nios_system_jtag_uart_component_configuration.pl --do_build_sim=0 ] +Info: jtag_uart: Done RTL generation for module 'nios_system_jtag_uart' +Info: jtag_uart: "nios_system" instantiated altera_avalon_jtag_uart "jtag_uart" +Info: LEDs: Starting RTL generation for module 'nios_system_LEDs' +Info: LEDs: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_LEDs --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0213_LEDs_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0213_LEDs_gen//nios_system_LEDs_component_configuration.pl --do_build_sim=0 ] +Info: LEDs: Done RTL generation for module 'nios_system_LEDs' +Info: LEDs: "nios_system" instantiated altera_avalon_pio "LEDs" +Info: LEDRs: Starting RTL generation for module 'nios_system_LEDRs' +Info: LEDRs: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_LEDRs --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0214_LEDRs_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0214_LEDRs_gen//nios_system_LEDRs_component_configuration.pl --do_build_sim=0 ] +Info: LEDRs: Done RTL generation for module 'nios_system_LEDRs' +Info: LEDRs: "nios_system" instantiated altera_avalon_pio "LEDRs" +Info: switches: Starting RTL generation for module 'nios_system_switches' +Info: switches: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_switches --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0215_switches_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0215_switches_gen//nios_system_switches_component_configuration.pl --do_build_sim=0 ] +Info: switches: Done RTL generation for module 'nios_system_switches' +Info: switches: "nios_system" instantiated altera_avalon_pio "switches" +Info: push_switches: Starting RTL generation for module 'nios_system_push_switches' +Info: push_switches: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_push_switches --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0216_push_switches_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0216_push_switches_gen//nios_system_push_switches_component_configuration.pl --do_build_sim=0 ] +Info: push_switches: Done RTL generation for module 'nios_system_push_switches' +Info: push_switches: "nios_system" instantiated altera_avalon_pio "push_switches" +Info: hex0: Starting RTL generation for module 'nios_system_hex0' +Info: hex0: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_hex0 --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0217_hex0_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0217_hex0_gen//nios_system_hex0_component_configuration.pl --do_build_sim=0 ] +Info: hex0: Done RTL generation for module 'nios_system_hex0' +Info: hex0: "nios_system" instantiated altera_avalon_pio "hex0" +Info: lcd_16207_0: Starting RTL generation for module 'nios_system_lcd_16207_0' +Info: lcd_16207_0: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_lcd_16207 -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_lcd_16207/generate_rtl.pl --name=nios_system_lcd_16207_0 --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0218_lcd_16207_0_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0218_lcd_16207_0_gen//nios_system_lcd_16207_0_component_configuration.pl --do_build_sim=0 ] +Info: lcd_16207_0: Done RTL generation for module 'nios_system_lcd_16207_0' +Info: lcd_16207_0: "nios_system" instantiated altera_avalon_lcd_16207 "lcd_16207_0" +Info: lcd_on: Starting RTL generation for module 'nios_system_lcd_on' +Info: lcd_on: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_lcd_on --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0219_lcd_on_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_4389524620788569279.dir/0219_lcd_on_gen//nios_system_lcd_on_component_configuration.pl --do_build_sim=0 ] +Info: lcd_on: Done RTL generation for module 'nios_system_lcd_on' +Info: lcd_on: "nios_system" instantiated altera_avalon_pio "lcd_on" +Info: nios2_processor_instruction_master_translator: "nios_system" instantiated altera_merlin_master_translator "nios2_processor_instruction_master_translator" +Info: nios2_processor_jtag_debug_module_translator: "nios_system" instantiated altera_merlin_slave_translator "nios2_processor_jtag_debug_module_translator" +Info: nios2_processor_instruction_master_translator_avalon_universal_master_0_agent: "nios_system" instantiated altera_merlin_master_agent "nios2_processor_instruction_master_translator_avalon_universal_master_0_agent" +Info: nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent: "nios_system" instantiated altera_merlin_slave_agent "nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent" +Info: nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo: "nios_system" instantiated altera_avalon_sc_fifo "nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo" +Info: addr_router: "nios_system" instantiated altera_merlin_router "addr_router" +Info: addr_router_001: "nios_system" instantiated altera_merlin_router "addr_router_001" +Info: id_router: "nios_system" instantiated altera_merlin_router "id_router" +Info: id_router_002: "nios_system" instantiated altera_merlin_router "id_router_002" +Info: rst_controller: "nios_system" instantiated altera_reset_controller "rst_controller" +Info: cmd_xbar_demux: "nios_system" instantiated altera_merlin_demultiplexer "cmd_xbar_demux" +Info: cmd_xbar_demux_001: "nios_system" instantiated altera_merlin_demultiplexer "cmd_xbar_demux_001" +Info: cmd_xbar_mux: "nios_system" instantiated altera_merlin_multiplexer "cmd_xbar_mux" +Info: rsp_xbar_demux_002: "nios_system" instantiated altera_merlin_demultiplexer "rsp_xbar_demux_002" +Info: rsp_xbar_mux: "nios_system" instantiated altera_merlin_multiplexer "rsp_xbar_mux" +Info: Reusing file C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/synthesis/submodules/altera_merlin_arbitrator.sv +Info: rsp_xbar_mux_001: "nios_system" instantiated altera_merlin_multiplexer "rsp_xbar_mux_001" +Info: Reusing file C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/synthesis/submodules/altera_merlin_arbitrator.sv +Info: irq_mapper: "nios_system" instantiated altera_irq_mapper "irq_mapper" +Info: nios_system: Done nios_system" with 28 modules, 155 files, 4086283 bytes +Info: ip-generate succeeded. +Info: Finished: Create HDL design files for synthesis diff --git a/nios_system_generation_3.rpt b/nios_system_generation_3.rpt new file mode 100644 index 0000000..faa6ad7 --- /dev/null +++ b/nios_system_generation_3.rpt @@ -0,0 +1,169 @@ +Info: Starting: Create block symbol file (.bsf) +Info: ip-generate --project-directory=C:/Users/takayun/Desktop/qsys_tutorial/ --output-directory=C:/Users/takayun/Desktop/qsys_tutorial/nios_system/ --report-file=bsf:C:/Users/takayun/Desktop/qsys_tutorial/nios_system.bsf --system-info=DEVICE_FAMILY="Cyclone IV E" --system-info=DEVICE=EP4CE115F29C7 --system-info=DEVICE_SPEEDGRADE=7 --component-file=C:/Users/takayun/Desktop/qsys_tutorial/nios_system.qsys +Progress: Loading qsys_tutorial/nios_system.qsys +Progress: Reading input file +Progress: Adding clk_0 [clock_source 13.0] +Progress: Parameterizing module clk_0 +Progress: Adding nios2_processor [altera_nios2_qsys 13.0] +Progress: Parameterizing module nios2_processor +Progress: Adding onchip_memory [altera_avalon_onchip_memory2 13.0.1.99.2] +Progress: Parameterizing module onchip_memory +Progress: Adding switches [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module switches +Progress: Adding jtag_uart [altera_avalon_jtag_uart 13.0.1.99.2] +Progress: Parameterizing module jtag_uart +Progress: Adding LEDs [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module LEDs +Progress: Adding LEDRs [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module LEDRs +Progress: Building connections +Progress: Parameterizing connections +Progress: Validating +Progress: Done reading input file +Info: nios_system.switches: PIO inputs are not hardwired in test bench. Undefined values will be read from PIO inputs during simulation. +Info: ip-generate succeeded. +Info: Finished: Create block symbol file (.bsf) +Info: +Info: Starting: Create HDL design files for synthesis +Info: ip-generate --project-directory=C:/Users/takayun/Desktop/qsys_tutorial/ --output-directory=C:/Users/takayun/Desktop/qsys_tutorial/nios_system/synthesis/ --file-set=QUARTUS_SYNTH --report-file=sopcinfo:C:/Users/takayun/Desktop/qsys_tutorial/nios_system.sopcinfo --report-file=html:C:/Users/takayun/Desktop/qsys_tutorial/nios_system.html --report-file=qip:C:/Users/takayun/Desktop/qsys_tutorial/nios_system/synthesis/nios_system.qip --report-file=cmp:C:/Users/takayun/Desktop/qsys_tutorial/nios_system.cmp --report-file=svd --system-info=DEVICE_FAMILY="Cyclone IV E" --system-info=DEVICE=EP4CE115F29C7 --system-info=DEVICE_SPEEDGRADE=7 --component-file=C:/Users/takayun/Desktop/qsys_tutorial/nios_system.qsys --language=VERILOG +Progress: Loading qsys_tutorial/nios_system.qsys +Progress: Reading input file +Progress: Adding clk_0 [clock_source 13.0] +Progress: Parameterizing module clk_0 +Progress: Adding nios2_processor [altera_nios2_qsys 13.0] +Progress: Parameterizing module nios2_processor +Progress: Adding onchip_memory [altera_avalon_onchip_memory2 13.0.1.99.2] +Progress: Parameterizing module onchip_memory +Progress: Adding switches [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module switches +Progress: Adding jtag_uart [altera_avalon_jtag_uart 13.0.1.99.2] +Progress: Parameterizing module jtag_uart +Progress: Adding LEDs [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module LEDs +Progress: Adding LEDRs [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module LEDRs +Progress: Building connections +Progress: Parameterizing connections +Progress: Validating +Progress: Done reading input file +Info: nios_system.switches: PIO inputs are not hardwired in test bench. Undefined values will be read from PIO inputs during simulation. +Info: nios_system: Generating nios_system "nios_system" for QUARTUS_SYNTH +Info: pipeline_bridge_swap_transform: After transform: 7 modules, 27 connections +Info: No custom instruction connections, skipping transform +Info: merlin_translator_transform: After transform: 15 modules, 59 connections +Info: merlin_domain_transform: After transform: 30 modules, 159 connections +Info: merlin_router_transform: After transform: 38 modules, 191 connections +Info: reset_adaptation_transform: After transform: 39 modules, 150 connections +Info: merlin_network_to_switch_transform: After transform: 54 modules, 182 connections +Info: merlin_mm_transform: After transform: 54 modules, 182 connections +Info: merlin_interrupt_mapper_transform: After transform: 55 modules, 185 connections +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Info: nios2_processor: Starting RTL generation for module 'nios_system_nios2_processor' +Info: nios2_processor: Generation command is [exec C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2/eperl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2/cpu_lib -I C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2/nios_lib -I C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2 -I C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2 -- C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2/generate_rtl.epl --name=nios_system_nios2_processor --dir=C:/Users/takayun/AppData/Local/Temp/alt7101_5652275834961544250.dir/0001_nios2_processor_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7101_5652275834961544250.dir/0001_nios2_processor_gen//nios_system_nios2_processor_processor_configuration.pl --do_build_sim=0 --bogus ] +Info: nios2_processor: # 2016.10.27 10:06:29 (*) Starting Nios II generation +Info: nios2_processor: # 2016.10.27 10:06:29 (*) Checking for plaintext license. +Info: nios2_processor: # 2016.10.27 10:06:30 (*) Couldn't query license setup in Quartus directory C:/altera/13.0sp1/quartus +Info: nios2_processor: # 2016.10.27 10:06:30 (*) Defaulting to contents of LM_LICENSE_FILE environment variable +Info: nios2_processor: # 2016.10.27 10:06:30 (*) LM_LICENSE_FILE environment variable is empty +Info: nios2_processor: # 2016.10.27 10:06:30 (*) Plaintext license not found. +Info: nios2_processor: # 2016.10.27 10:06:30 (*) No license required to generate encrypted Nios II/e. +Info: nios2_processor: # 2016.10.27 10:06:30 (*) Elaborating CPU configuration settings +Info: nios2_processor: # 2016.10.27 10:06:30 (*) Creating all objects for CPU +Info: nios2_processor: # 2016.10.27 10:06:31 (*) Generating RTL from CPU objects +Info: nios2_processor: # 2016.10.27 10:06:31 (*) Creating plain-text RTL +Info: nios2_processor: # 2016.10.27 10:06:33 (*) Done Nios II generation +Info: nios2_processor: Done RTL generation for module 'nios_system_nios2_processor' +Info: nios2_processor: "nios_system" instantiated altera_nios2_qsys "nios2_processor" +Info: onchip_memory: Starting RTL generation for module 'nios_system_onchip_memory' +Info: onchip_memory: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_onchip_memory2 -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_onchip_memory2/generate_rtl.pl --name=nios_system_onchip_memory --dir=C:/Users/takayun/AppData/Local/Temp/alt7101_5652275834961544250.dir/0002_onchip_memory_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7101_5652275834961544250.dir/0002_onchip_memory_gen//nios_system_onchip_memory_component_configuration.pl --do_build_sim=0 ] +Info: onchip_memory: Done RTL generation for module 'nios_system_onchip_memory' +Info: onchip_memory: "nios_system" instantiated altera_avalon_onchip_memory2 "onchip_memory" +Info: switches: Starting RTL generation for module 'nios_system_switches' +Info: switches: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_switches --dir=C:/Users/takayun/AppData/Local/Temp/alt7101_5652275834961544250.dir/0003_switches_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7101_5652275834961544250.dir/0003_switches_gen//nios_system_switches_component_configuration.pl --do_build_sim=0 ] +Info: switches: Done RTL generation for module 'nios_system_switches' +Info: switches: "nios_system" instantiated altera_avalon_pio "switches" +Info: jtag_uart: Starting RTL generation for module 'nios_system_jtag_uart' +Info: jtag_uart: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_jtag_uart -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_jtag_uart/generate_rtl.pl --name=nios_system_jtag_uart --dir=C:/Users/takayun/AppData/Local/Temp/alt7101_5652275834961544250.dir/0004_jtag_uart_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7101_5652275834961544250.dir/0004_jtag_uart_gen//nios_system_jtag_uart_component_configuration.pl --do_build_sim=0 ] +Info: jtag_uart: Done RTL generation for module 'nios_system_jtag_uart' +Info: jtag_uart: "nios_system" instantiated altera_avalon_jtag_uart "jtag_uart" +Info: LEDs: Starting RTL generation for module 'nios_system_LEDs' +Info: LEDs: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_LEDs --dir=C:/Users/takayun/AppData/Local/Temp/alt7101_5652275834961544250.dir/0005_LEDs_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7101_5652275834961544250.dir/0005_LEDs_gen//nios_system_LEDs_component_configuration.pl --do_build_sim=0 ] +Info: LEDs: Done RTL generation for module 'nios_system_LEDs' +Info: LEDs: "nios_system" instantiated altera_avalon_pio "LEDs" +Info: LEDRs: Starting RTL generation for module 'nios_system_LEDRs' +Info: LEDRs: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_LEDRs --dir=C:/Users/takayun/AppData/Local/Temp/alt7101_5652275834961544250.dir/0006_LEDRs_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7101_5652275834961544250.dir/0006_LEDRs_gen//nios_system_LEDRs_component_configuration.pl --do_build_sim=0 ] +Info: LEDRs: Done RTL generation for module 'nios_system_LEDRs' +Info: LEDRs: "nios_system" instantiated altera_avalon_pio "LEDRs" +Info: nios2_processor_instruction_master_translator: "nios_system" instantiated altera_merlin_master_translator "nios2_processor_instruction_master_translator" +Info: nios2_processor_jtag_debug_module_translator: "nios_system" instantiated altera_merlin_slave_translator "nios2_processor_jtag_debug_module_translator" +Info: nios2_processor_instruction_master_translator_avalon_universal_master_0_agent: "nios_system" instantiated altera_merlin_master_agent "nios2_processor_instruction_master_translator_avalon_universal_master_0_agent" +Info: nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent: "nios_system" instantiated altera_merlin_slave_agent "nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent" +Info: nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo: "nios_system" instantiated altera_avalon_sc_fifo "nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo" +Info: addr_router: "nios_system" instantiated altera_merlin_router "addr_router" +Info: addr_router_001: "nios_system" instantiated altera_merlin_router "addr_router_001" +Info: id_router: "nios_system" instantiated altera_merlin_router "id_router" +Info: id_router_002: "nios_system" instantiated altera_merlin_router "id_router_002" +Info: rst_controller: "nios_system" instantiated altera_reset_controller "rst_controller" +Info: cmd_xbar_demux: "nios_system" instantiated altera_merlin_demultiplexer "cmd_xbar_demux" +Info: cmd_xbar_demux_001: "nios_system" instantiated altera_merlin_demultiplexer "cmd_xbar_demux_001" +Info: cmd_xbar_mux: "nios_system" instantiated altera_merlin_multiplexer "cmd_xbar_mux" +Info: rsp_xbar_demux_002: "nios_system" instantiated altera_merlin_demultiplexer "rsp_xbar_demux_002" +Info: rsp_xbar_mux: "nios_system" instantiated altera_merlin_multiplexer "rsp_xbar_mux" +Info: Reusing file C:/Users/takayun/Desktop/qsys_tutorial/nios_system/synthesis/submodules/altera_merlin_arbitrator.sv +Info: rsp_xbar_mux_001: "nios_system" instantiated altera_merlin_multiplexer "rsp_xbar_mux_001" +Info: Reusing file C:/Users/takayun/Desktop/qsys_tutorial/nios_system/synthesis/submodules/altera_merlin_arbitrator.sv +Info: irq_mapper: "nios_system" instantiated altera_irq_mapper "irq_mapper" +Info: nios_system: Done nios_system" with 24 modules, 71 files, 1371812 bytes +Info: ip-generate succeeded. +Info: Finished: Create HDL design files for synthesis diff --git a/nios_system_generation_4.rpt b/nios_system_generation_4.rpt new file mode 100644 index 0000000..1973cdc --- /dev/null +++ b/nios_system_generation_4.rpt @@ -0,0 +1,169 @@ +Info: Starting: Create block symbol file (.bsf) +Info: ip-generate --project-directory=C:/Users/takayun/Desktop/qsys_tutorial/ --output-directory=C:/Users/takayun/Desktop/qsys_tutorial/nios_system/ --report-file=bsf:C:/Users/takayun/Desktop/qsys_tutorial/nios_system.bsf --system-info=DEVICE_FAMILY="Cyclone IV E" --system-info=DEVICE=EP4CE115F29C7 --system-info=DEVICE_SPEEDGRADE=7 --component-file=C:/Users/takayun/Desktop/qsys_tutorial/nios_system.qsys +Progress: Loading qsys_tutorial/nios_system.qsys +Progress: Reading input file +Progress: Adding clk_0 [clock_source 13.0] +Progress: Parameterizing module clk_0 +Progress: Adding nios2_processor [altera_nios2_qsys 13.0] +Progress: Parameterizing module nios2_processor +Progress: Adding onchip_memory [altera_avalon_onchip_memory2 13.0.1.99.2] +Progress: Parameterizing module onchip_memory +Progress: Adding switches [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module switches +Progress: Adding jtag_uart [altera_avalon_jtag_uart 13.0.1.99.2] +Progress: Parameterizing module jtag_uart +Progress: Adding LEDs [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module LEDs +Progress: Adding LEDRs [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module LEDRs +Progress: Building connections +Progress: Parameterizing connections +Progress: Validating +Progress: Done reading input file +Info: nios_system.switches: PIO inputs are not hardwired in test bench. Undefined values will be read from PIO inputs during simulation. +Info: ip-generate succeeded. +Info: Finished: Create block symbol file (.bsf) +Info: +Info: Starting: Create HDL design files for synthesis +Info: ip-generate --project-directory=C:/Users/takayun/Desktop/qsys_tutorial/ --output-directory=C:/Users/takayun/Desktop/qsys_tutorial/nios_system/synthesis/ --file-set=QUARTUS_SYNTH --report-file=sopcinfo:C:/Users/takayun/Desktop/qsys_tutorial/nios_system.sopcinfo --report-file=html:C:/Users/takayun/Desktop/qsys_tutorial/nios_system.html --report-file=qip:C:/Users/takayun/Desktop/qsys_tutorial/nios_system/synthesis/nios_system.qip --report-file=cmp:C:/Users/takayun/Desktop/qsys_tutorial/nios_system.cmp --report-file=svd --system-info=DEVICE_FAMILY="Cyclone IV E" --system-info=DEVICE=EP4CE115F29C7 --system-info=DEVICE_SPEEDGRADE=7 --component-file=C:/Users/takayun/Desktop/qsys_tutorial/nios_system.qsys --language=VERILOG +Progress: Loading qsys_tutorial/nios_system.qsys +Progress: Reading input file +Progress: Adding clk_0 [clock_source 13.0] +Progress: Parameterizing module clk_0 +Progress: Adding nios2_processor [altera_nios2_qsys 13.0] +Progress: Parameterizing module nios2_processor +Progress: Adding onchip_memory [altera_avalon_onchip_memory2 13.0.1.99.2] +Progress: Parameterizing module onchip_memory +Progress: Adding switches [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module switches +Progress: Adding jtag_uart [altera_avalon_jtag_uart 13.0.1.99.2] +Progress: Parameterizing module jtag_uart +Progress: Adding LEDs [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module LEDs +Progress: Adding LEDRs [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module LEDRs +Progress: Building connections +Progress: Parameterizing connections +Progress: Validating +Progress: Done reading input file +Info: nios_system.switches: PIO inputs are not hardwired in test bench. Undefined values will be read from PIO inputs during simulation. +Info: nios_system: Generating nios_system "nios_system" for QUARTUS_SYNTH +Info: pipeline_bridge_swap_transform: After transform: 7 modules, 27 connections +Info: No custom instruction connections, skipping transform +Info: merlin_translator_transform: After transform: 15 modules, 59 connections +Info: merlin_domain_transform: After transform: 30 modules, 159 connections +Info: merlin_router_transform: After transform: 38 modules, 191 connections +Info: reset_adaptation_transform: After transform: 39 modules, 150 connections +Info: merlin_network_to_switch_transform: After transform: 54 modules, 182 connections +Info: merlin_mm_transform: After transform: 54 modules, 182 connections +Info: merlin_interrupt_mapper_transform: After transform: 55 modules, 185 connections +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Info: nios2_processor: Starting RTL generation for module 'nios_system_nios2_processor' +Info: nios2_processor: Generation command is [exec C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2/eperl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2/cpu_lib -I C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2/nios_lib -I C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2 -I C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2 -- C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2/generate_rtl.epl --name=nios_system_nios2_processor --dir=C:/Users/takayun/AppData/Local/Temp/alt7101_4069057683900320684.dir/0001_nios2_processor_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7101_4069057683900320684.dir/0001_nios2_processor_gen//nios_system_nios2_processor_processor_configuration.pl --do_build_sim=0 --bogus ] +Info: nios2_processor: # 2016.10.27 10:23:09 (*) Starting Nios II generation +Info: nios2_processor: # 2016.10.27 10:23:09 (*) Checking for plaintext license. +Info: nios2_processor: # 2016.10.27 10:23:09 (*) Couldn't query license setup in Quartus directory C:/altera/13.0sp1/quartus +Info: nios2_processor: # 2016.10.27 10:23:09 (*) Defaulting to contents of LM_LICENSE_FILE environment variable +Info: nios2_processor: # 2016.10.27 10:23:09 (*) LM_LICENSE_FILE environment variable is empty +Info: nios2_processor: # 2016.10.27 10:23:09 (*) Plaintext license not found. +Info: nios2_processor: # 2016.10.27 10:23:09 (*) No license required to generate encrypted Nios II/e. +Info: nios2_processor: # 2016.10.27 10:23:09 (*) Elaborating CPU configuration settings +Info: nios2_processor: # 2016.10.27 10:23:09 (*) Creating all objects for CPU +Info: nios2_processor: # 2016.10.27 10:23:10 (*) Generating RTL from CPU objects +Info: nios2_processor: # 2016.10.27 10:23:10 (*) Creating plain-text RTL +Info: nios2_processor: # 2016.10.27 10:23:12 (*) Done Nios II generation +Info: nios2_processor: Done RTL generation for module 'nios_system_nios2_processor' +Info: nios2_processor: "nios_system" instantiated altera_nios2_qsys "nios2_processor" +Info: onchip_memory: Starting RTL generation for module 'nios_system_onchip_memory' +Info: onchip_memory: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_onchip_memory2 -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_onchip_memory2/generate_rtl.pl --name=nios_system_onchip_memory --dir=C:/Users/takayun/AppData/Local/Temp/alt7101_4069057683900320684.dir/0002_onchip_memory_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7101_4069057683900320684.dir/0002_onchip_memory_gen//nios_system_onchip_memory_component_configuration.pl --do_build_sim=0 ] +Info: onchip_memory: Done RTL generation for module 'nios_system_onchip_memory' +Info: onchip_memory: "nios_system" instantiated altera_avalon_onchip_memory2 "onchip_memory" +Info: switches: Starting RTL generation for module 'nios_system_switches' +Info: switches: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_switches --dir=C:/Users/takayun/AppData/Local/Temp/alt7101_4069057683900320684.dir/0003_switches_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7101_4069057683900320684.dir/0003_switches_gen//nios_system_switches_component_configuration.pl --do_build_sim=0 ] +Info: switches: Done RTL generation for module 'nios_system_switches' +Info: switches: "nios_system" instantiated altera_avalon_pio "switches" +Info: jtag_uart: Starting RTL generation for module 'nios_system_jtag_uart' +Info: jtag_uart: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_jtag_uart -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_jtag_uart/generate_rtl.pl --name=nios_system_jtag_uart --dir=C:/Users/takayun/AppData/Local/Temp/alt7101_4069057683900320684.dir/0004_jtag_uart_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7101_4069057683900320684.dir/0004_jtag_uart_gen//nios_system_jtag_uart_component_configuration.pl --do_build_sim=0 ] +Info: jtag_uart: Done RTL generation for module 'nios_system_jtag_uart' +Info: jtag_uart: "nios_system" instantiated altera_avalon_jtag_uart "jtag_uart" +Info: LEDs: Starting RTL generation for module 'nios_system_LEDs' +Info: LEDs: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_LEDs --dir=C:/Users/takayun/AppData/Local/Temp/alt7101_4069057683900320684.dir/0005_LEDs_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7101_4069057683900320684.dir/0005_LEDs_gen//nios_system_LEDs_component_configuration.pl --do_build_sim=0 ] +Info: LEDs: Done RTL generation for module 'nios_system_LEDs' +Info: LEDs: "nios_system" instantiated altera_avalon_pio "LEDs" +Info: LEDRs: Starting RTL generation for module 'nios_system_LEDRs' +Info: LEDRs: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_LEDRs --dir=C:/Users/takayun/AppData/Local/Temp/alt7101_4069057683900320684.dir/0006_LEDRs_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7101_4069057683900320684.dir/0006_LEDRs_gen//nios_system_LEDRs_component_configuration.pl --do_build_sim=0 ] +Info: LEDRs: Done RTL generation for module 'nios_system_LEDRs' +Info: LEDRs: "nios_system" instantiated altera_avalon_pio "LEDRs" +Info: nios2_processor_instruction_master_translator: "nios_system" instantiated altera_merlin_master_translator "nios2_processor_instruction_master_translator" +Info: nios2_processor_jtag_debug_module_translator: "nios_system" instantiated altera_merlin_slave_translator "nios2_processor_jtag_debug_module_translator" +Info: nios2_processor_instruction_master_translator_avalon_universal_master_0_agent: "nios_system" instantiated altera_merlin_master_agent "nios2_processor_instruction_master_translator_avalon_universal_master_0_agent" +Info: nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent: "nios_system" instantiated altera_merlin_slave_agent "nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent" +Info: nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo: "nios_system" instantiated altera_avalon_sc_fifo "nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo" +Info: addr_router: "nios_system" instantiated altera_merlin_router "addr_router" +Info: addr_router_001: "nios_system" instantiated altera_merlin_router "addr_router_001" +Info: id_router: "nios_system" instantiated altera_merlin_router "id_router" +Info: id_router_002: "nios_system" instantiated altera_merlin_router "id_router_002" +Info: rst_controller: "nios_system" instantiated altera_reset_controller "rst_controller" +Info: cmd_xbar_demux: "nios_system" instantiated altera_merlin_demultiplexer "cmd_xbar_demux" +Info: cmd_xbar_demux_001: "nios_system" instantiated altera_merlin_demultiplexer "cmd_xbar_demux_001" +Info: cmd_xbar_mux: "nios_system" instantiated altera_merlin_multiplexer "cmd_xbar_mux" +Info: rsp_xbar_demux_002: "nios_system" instantiated altera_merlin_demultiplexer "rsp_xbar_demux_002" +Info: rsp_xbar_mux: "nios_system" instantiated altera_merlin_multiplexer "rsp_xbar_mux" +Info: Reusing file C:/Users/takayun/Desktop/qsys_tutorial/nios_system/synthesis/submodules/altera_merlin_arbitrator.sv +Info: rsp_xbar_mux_001: "nios_system" instantiated altera_merlin_multiplexer "rsp_xbar_mux_001" +Info: Reusing file C:/Users/takayun/Desktop/qsys_tutorial/nios_system/synthesis/submodules/altera_merlin_arbitrator.sv +Info: irq_mapper: "nios_system" instantiated altera_irq_mapper "irq_mapper" +Info: nios_system: Done nios_system" with 24 modules, 71 files, 1371812 bytes +Info: ip-generate succeeded. +Info: Finished: Create HDL design files for synthesis diff --git a/nios_system_generation_5.rpt b/nios_system_generation_5.rpt new file mode 100644 index 0000000..a713582 --- /dev/null +++ b/nios_system_generation_5.rpt @@ -0,0 +1,169 @@ +Info: Starting: Create block symbol file (.bsf) +Info: ip-generate --project-directory=C:/Users/takayun/Desktop/qsys_tutorial/ --output-directory=C:/Users/takayun/Desktop/qsys_tutorial/nios_system/ --report-file=bsf:C:/Users/takayun/Desktop/qsys_tutorial/nios_system.bsf --system-info=DEVICE_FAMILY="Cyclone IV E" --system-info=DEVICE=EP4CE115F29C7 --system-info=DEVICE_SPEEDGRADE=7 --component-file=C:/Users/takayun/Desktop/qsys_tutorial/nios_system.qsys +Progress: Loading qsys_tutorial/nios_system.qsys +Progress: Reading input file +Progress: Adding clk_0 [clock_source 13.0] +Progress: Parameterizing module clk_0 +Progress: Adding nios2_processor [altera_nios2_qsys 13.0] +Progress: Parameterizing module nios2_processor +Progress: Adding onchip_memory [altera_avalon_onchip_memory2 13.0.1.99.2] +Progress: Parameterizing module onchip_memory +Progress: Adding switches [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module switches +Progress: Adding jtag_uart [altera_avalon_jtag_uart 13.0.1.99.2] +Progress: Parameterizing module jtag_uart +Progress: Adding LEDs [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module LEDs +Progress: Adding LEDRs [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module LEDRs +Progress: Building connections +Progress: Parameterizing connections +Progress: Validating +Progress: Done reading input file +Info: nios_system.switches: PIO inputs are not hardwired in test bench. Undefined values will be read from PIO inputs during simulation. +Info: ip-generate succeeded. +Info: Finished: Create block symbol file (.bsf) +Info: +Info: Starting: Create HDL design files for synthesis +Info: ip-generate --project-directory=C:/Users/takayun/Desktop/qsys_tutorial/ --output-directory=C:/Users/takayun/Desktop/qsys_tutorial/nios_system/synthesis/ --file-set=QUARTUS_SYNTH --report-file=sopcinfo:C:/Users/takayun/Desktop/qsys_tutorial/nios_system.sopcinfo --report-file=html:C:/Users/takayun/Desktop/qsys_tutorial/nios_system.html --report-file=qip:C:/Users/takayun/Desktop/qsys_tutorial/nios_system/synthesis/nios_system.qip --report-file=cmp:C:/Users/takayun/Desktop/qsys_tutorial/nios_system.cmp --report-file=svd --system-info=DEVICE_FAMILY="Cyclone IV E" --system-info=DEVICE=EP4CE115F29C7 --system-info=DEVICE_SPEEDGRADE=7 --component-file=C:/Users/takayun/Desktop/qsys_tutorial/nios_system.qsys --language=VERILOG +Progress: Loading qsys_tutorial/nios_system.qsys +Progress: Reading input file +Progress: Adding clk_0 [clock_source 13.0] +Progress: Parameterizing module clk_0 +Progress: Adding nios2_processor [altera_nios2_qsys 13.0] +Progress: Parameterizing module nios2_processor +Progress: Adding onchip_memory [altera_avalon_onchip_memory2 13.0.1.99.2] +Progress: Parameterizing module onchip_memory +Progress: Adding switches [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module switches +Progress: Adding jtag_uart [altera_avalon_jtag_uart 13.0.1.99.2] +Progress: Parameterizing module jtag_uart +Progress: Adding LEDs [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module LEDs +Progress: Adding LEDRs [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module LEDRs +Progress: Building connections +Progress: Parameterizing connections +Progress: Validating +Progress: Done reading input file +Info: nios_system.switches: PIO inputs are not hardwired in test bench. Undefined values will be read from PIO inputs during simulation. +Info: nios_system: Generating nios_system "nios_system" for QUARTUS_SYNTH +Info: pipeline_bridge_swap_transform: After transform: 7 modules, 27 connections +Info: No custom instruction connections, skipping transform +Info: merlin_translator_transform: After transform: 15 modules, 59 connections +Info: merlin_domain_transform: After transform: 30 modules, 159 connections +Info: merlin_router_transform: After transform: 38 modules, 191 connections +Info: reset_adaptation_transform: After transform: 39 modules, 150 connections +Info: merlin_network_to_switch_transform: After transform: 54 modules, 182 connections +Info: merlin_mm_transform: After transform: 54 modules, 182 connections +Info: merlin_interrupt_mapper_transform: After transform: 55 modules, 185 connections +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Info: nios2_processor: Starting RTL generation for module 'nios_system_nios2_processor' +Info: nios2_processor: Generation command is [exec C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2/eperl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2/cpu_lib -I C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2/nios_lib -I C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2 -I C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2 -- C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2/generate_rtl.epl --name=nios_system_nios2_processor --dir=C:/Users/takayun/AppData/Local/Temp/alt7101_4069057683900320684.dir/0023_nios2_processor_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7101_4069057683900320684.dir/0023_nios2_processor_gen//nios_system_nios2_processor_processor_configuration.pl --do_build_sim=0 --bogus ] +Info: nios2_processor: # 2016.10.27 10:33:36 (*) Starting Nios II generation +Info: nios2_processor: # 2016.10.27 10:33:36 (*) Checking for plaintext license. +Info: nios2_processor: # 2016.10.27 10:33:36 (*) Couldn't query license setup in Quartus directory C:/altera/13.0sp1/quartus +Info: nios2_processor: # 2016.10.27 10:33:36 (*) Defaulting to contents of LM_LICENSE_FILE environment variable +Info: nios2_processor: # 2016.10.27 10:33:36 (*) LM_LICENSE_FILE environment variable is empty +Info: nios2_processor: # 2016.10.27 10:33:36 (*) Plaintext license not found. +Info: nios2_processor: # 2016.10.27 10:33:36 (*) No license required to generate encrypted Nios II/e. +Info: nios2_processor: # 2016.10.27 10:33:36 (*) Elaborating CPU configuration settings +Info: nios2_processor: # 2016.10.27 10:33:36 (*) Creating all objects for CPU +Info: nios2_processor: # 2016.10.27 10:33:37 (*) Generating RTL from CPU objects +Info: nios2_processor: # 2016.10.27 10:33:37 (*) Creating plain-text RTL +Info: nios2_processor: # 2016.10.27 10:33:40 (*) Done Nios II generation +Info: nios2_processor: Done RTL generation for module 'nios_system_nios2_processor' +Info: nios2_processor: "nios_system" instantiated altera_nios2_qsys "nios2_processor" +Info: onchip_memory: Starting RTL generation for module 'nios_system_onchip_memory' +Info: onchip_memory: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_onchip_memory2 -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_onchip_memory2/generate_rtl.pl --name=nios_system_onchip_memory --dir=C:/Users/takayun/AppData/Local/Temp/alt7101_4069057683900320684.dir/0024_onchip_memory_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7101_4069057683900320684.dir/0024_onchip_memory_gen//nios_system_onchip_memory_component_configuration.pl --do_build_sim=0 ] +Info: onchip_memory: Done RTL generation for module 'nios_system_onchip_memory' +Info: onchip_memory: "nios_system" instantiated altera_avalon_onchip_memory2 "onchip_memory" +Info: switches: Starting RTL generation for module 'nios_system_switches' +Info: switches: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_switches --dir=C:/Users/takayun/AppData/Local/Temp/alt7101_4069057683900320684.dir/0025_switches_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7101_4069057683900320684.dir/0025_switches_gen//nios_system_switches_component_configuration.pl --do_build_sim=0 ] +Info: switches: Done RTL generation for module 'nios_system_switches' +Info: switches: "nios_system" instantiated altera_avalon_pio "switches" +Info: jtag_uart: Starting RTL generation for module 'nios_system_jtag_uart' +Info: jtag_uart: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_jtag_uart -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_jtag_uart/generate_rtl.pl --name=nios_system_jtag_uart --dir=C:/Users/takayun/AppData/Local/Temp/alt7101_4069057683900320684.dir/0026_jtag_uart_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7101_4069057683900320684.dir/0026_jtag_uart_gen//nios_system_jtag_uart_component_configuration.pl --do_build_sim=0 ] +Info: jtag_uart: Done RTL generation for module 'nios_system_jtag_uart' +Info: jtag_uart: "nios_system" instantiated altera_avalon_jtag_uart "jtag_uart" +Info: LEDs: Starting RTL generation for module 'nios_system_LEDs' +Info: LEDs: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_LEDs --dir=C:/Users/takayun/AppData/Local/Temp/alt7101_4069057683900320684.dir/0027_LEDs_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7101_4069057683900320684.dir/0027_LEDs_gen//nios_system_LEDs_component_configuration.pl --do_build_sim=0 ] +Info: LEDs: Done RTL generation for module 'nios_system_LEDs' +Info: LEDs: "nios_system" instantiated altera_avalon_pio "LEDs" +Info: LEDRs: Starting RTL generation for module 'nios_system_LEDRs' +Info: LEDRs: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_LEDRs --dir=C:/Users/takayun/AppData/Local/Temp/alt7101_4069057683900320684.dir/0028_LEDRs_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7101_4069057683900320684.dir/0028_LEDRs_gen//nios_system_LEDRs_component_configuration.pl --do_build_sim=0 ] +Info: LEDRs: Done RTL generation for module 'nios_system_LEDRs' +Info: LEDRs: "nios_system" instantiated altera_avalon_pio "LEDRs" +Info: nios2_processor_instruction_master_translator: "nios_system" instantiated altera_merlin_master_translator "nios2_processor_instruction_master_translator" +Info: nios2_processor_jtag_debug_module_translator: "nios_system" instantiated altera_merlin_slave_translator "nios2_processor_jtag_debug_module_translator" +Info: nios2_processor_instruction_master_translator_avalon_universal_master_0_agent: "nios_system" instantiated altera_merlin_master_agent "nios2_processor_instruction_master_translator_avalon_universal_master_0_agent" +Info: nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent: "nios_system" instantiated altera_merlin_slave_agent "nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent" +Info: nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo: "nios_system" instantiated altera_avalon_sc_fifo "nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo" +Info: addr_router: "nios_system" instantiated altera_merlin_router "addr_router" +Info: addr_router_001: "nios_system" instantiated altera_merlin_router "addr_router_001" +Info: id_router: "nios_system" instantiated altera_merlin_router "id_router" +Info: id_router_002: "nios_system" instantiated altera_merlin_router "id_router_002" +Info: rst_controller: "nios_system" instantiated altera_reset_controller "rst_controller" +Info: cmd_xbar_demux: "nios_system" instantiated altera_merlin_demultiplexer "cmd_xbar_demux" +Info: cmd_xbar_demux_001: "nios_system" instantiated altera_merlin_demultiplexer "cmd_xbar_demux_001" +Info: cmd_xbar_mux: "nios_system" instantiated altera_merlin_multiplexer "cmd_xbar_mux" +Info: rsp_xbar_demux_002: "nios_system" instantiated altera_merlin_demultiplexer "rsp_xbar_demux_002" +Info: rsp_xbar_mux: "nios_system" instantiated altera_merlin_multiplexer "rsp_xbar_mux" +Info: Reusing file C:/Users/takayun/Desktop/qsys_tutorial/nios_system/synthesis/submodules/altera_merlin_arbitrator.sv +Info: rsp_xbar_mux_001: "nios_system" instantiated altera_merlin_multiplexer "rsp_xbar_mux_001" +Info: Reusing file C:/Users/takayun/Desktop/qsys_tutorial/nios_system/synthesis/submodules/altera_merlin_arbitrator.sv +Info: irq_mapper: "nios_system" instantiated altera_irq_mapper "irq_mapper" +Info: nios_system: Done nios_system" with 24 modules, 71 files, 1371812 bytes +Info: ip-generate succeeded. +Info: Finished: Create HDL design files for synthesis diff --git a/nios_system_generation_6.rpt b/nios_system_generation_6.rpt new file mode 100644 index 0000000..e42c807 --- /dev/null +++ b/nios_system_generation_6.rpt @@ -0,0 +1,169 @@ +Info: Starting: Create block symbol file (.bsf) +Info: ip-generate --project-directory=C:/Users/takayun/Desktop/qsys_tutorial/ --output-directory=C:/Users/takayun/Desktop/qsys_tutorial/nios_system/ --report-file=bsf:C:/Users/takayun/Desktop/qsys_tutorial/nios_system.bsf --system-info=DEVICE_FAMILY="Cyclone IV E" --system-info=DEVICE=EP4CE115F29C7 --system-info=DEVICE_SPEEDGRADE=7 --component-file=C:/Users/takayun/Desktop/qsys_tutorial/nios_system.qsys +Progress: Loading qsys_tutorial/nios_system.qsys +Progress: Reading input file +Progress: Adding clk_0 [clock_source 13.0] +Progress: Parameterizing module clk_0 +Progress: Adding nios2_processor [altera_nios2_qsys 13.0] +Progress: Parameterizing module nios2_processor +Progress: Adding onchip_memory [altera_avalon_onchip_memory2 13.0.1.99.2] +Progress: Parameterizing module onchip_memory +Progress: Adding switches [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module switches +Progress: Adding jtag_uart [altera_avalon_jtag_uart 13.0.1.99.2] +Progress: Parameterizing module jtag_uart +Progress: Adding LEDs [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module LEDs +Progress: Adding LEDRs [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module LEDRs +Progress: Building connections +Progress: Parameterizing connections +Progress: Validating +Progress: Done reading input file +Info: nios_system.switches: PIO inputs are not hardwired in test bench. Undefined values will be read from PIO inputs during simulation. +Info: ip-generate succeeded. +Info: Finished: Create block symbol file (.bsf) +Info: +Info: Starting: Create HDL design files for synthesis +Info: ip-generate --project-directory=C:/Users/takayun/Desktop/qsys_tutorial/ --output-directory=C:/Users/takayun/Desktop/qsys_tutorial/nios_system/synthesis/ --file-set=QUARTUS_SYNTH --report-file=sopcinfo:C:/Users/takayun/Desktop/qsys_tutorial/nios_system.sopcinfo --report-file=html:C:/Users/takayun/Desktop/qsys_tutorial/nios_system.html --report-file=qip:C:/Users/takayun/Desktop/qsys_tutorial/nios_system/synthesis/nios_system.qip --report-file=cmp:C:/Users/takayun/Desktop/qsys_tutorial/nios_system.cmp --report-file=svd --system-info=DEVICE_FAMILY="Cyclone IV E" --system-info=DEVICE=EP4CE115F29C7 --system-info=DEVICE_SPEEDGRADE=7 --component-file=C:/Users/takayun/Desktop/qsys_tutorial/nios_system.qsys --language=VERILOG +Progress: Loading qsys_tutorial/nios_system.qsys +Progress: Reading input file +Progress: Adding clk_0 [clock_source 13.0] +Progress: Parameterizing module clk_0 +Progress: Adding nios2_processor [altera_nios2_qsys 13.0] +Progress: Parameterizing module nios2_processor +Progress: Adding onchip_memory [altera_avalon_onchip_memory2 13.0.1.99.2] +Progress: Parameterizing module onchip_memory +Progress: Adding switches [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module switches +Progress: Adding jtag_uart [altera_avalon_jtag_uart 13.0.1.99.2] +Progress: Parameterizing module jtag_uart +Progress: Adding LEDs [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module LEDs +Progress: Adding LEDRs [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module LEDRs +Progress: Building connections +Progress: Parameterizing connections +Progress: Validating +Progress: Done reading input file +Info: nios_system.switches: PIO inputs are not hardwired in test bench. Undefined values will be read from PIO inputs during simulation. +Info: nios_system: Generating nios_system "nios_system" for QUARTUS_SYNTH +Info: pipeline_bridge_swap_transform: After transform: 7 modules, 27 connections +Info: No custom instruction connections, skipping transform +Info: merlin_translator_transform: After transform: 15 modules, 59 connections +Info: merlin_domain_transform: After transform: 30 modules, 159 connections +Info: merlin_router_transform: After transform: 38 modules, 191 connections +Info: reset_adaptation_transform: After transform: 39 modules, 150 connections +Info: merlin_network_to_switch_transform: After transform: 54 modules, 182 connections +Info: merlin_mm_transform: After transform: 54 modules, 182 connections +Info: merlin_interrupt_mapper_transform: After transform: 55 modules, 185 connections +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Info: nios2_processor: Starting RTL generation for module 'nios_system_nios2_processor' +Info: nios2_processor: Generation command is [exec C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2/eperl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2/cpu_lib -I C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2/nios_lib -I C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2 -I C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2 -- C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2/generate_rtl.epl --name=nios_system_nios2_processor --dir=C:/Users/takayun/AppData/Local/Temp/alt7101_4069057683900320684.dir/0045_nios2_processor_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7101_4069057683900320684.dir/0045_nios2_processor_gen//nios_system_nios2_processor_processor_configuration.pl --do_build_sim=0 --bogus ] +Info: nios2_processor: # 2016.10.27 10:38:02 (*) Starting Nios II generation +Info: nios2_processor: # 2016.10.27 10:38:02 (*) Checking for plaintext license. +Info: nios2_processor: # 2016.10.27 10:38:02 (*) Couldn't query license setup in Quartus directory C:/altera/13.0sp1/quartus +Info: nios2_processor: # 2016.10.27 10:38:02 (*) Defaulting to contents of LM_LICENSE_FILE environment variable +Info: nios2_processor: # 2016.10.27 10:38:02 (*) LM_LICENSE_FILE environment variable is empty +Info: nios2_processor: # 2016.10.27 10:38:02 (*) Plaintext license not found. +Info: nios2_processor: # 2016.10.27 10:38:02 (*) No license required to generate encrypted Nios II/e. +Info: nios2_processor: # 2016.10.27 10:38:02 (*) Elaborating CPU configuration settings +Info: nios2_processor: # 2016.10.27 10:38:02 (*) Creating all objects for CPU +Info: nios2_processor: # 2016.10.27 10:38:04 (*) Generating RTL from CPU objects +Info: nios2_processor: # 2016.10.27 10:38:04 (*) Creating plain-text RTL +Info: nios2_processor: # 2016.10.27 10:38:06 (*) Done Nios II generation +Info: nios2_processor: Done RTL generation for module 'nios_system_nios2_processor' +Info: nios2_processor: "nios_system" instantiated altera_nios2_qsys "nios2_processor" +Info: onchip_memory: Starting RTL generation for module 'nios_system_onchip_memory' +Info: onchip_memory: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_onchip_memory2 -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_onchip_memory2/generate_rtl.pl --name=nios_system_onchip_memory --dir=C:/Users/takayun/AppData/Local/Temp/alt7101_4069057683900320684.dir/0046_onchip_memory_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7101_4069057683900320684.dir/0046_onchip_memory_gen//nios_system_onchip_memory_component_configuration.pl --do_build_sim=0 ] +Info: onchip_memory: Done RTL generation for module 'nios_system_onchip_memory' +Info: onchip_memory: "nios_system" instantiated altera_avalon_onchip_memory2 "onchip_memory" +Info: switches: Starting RTL generation for module 'nios_system_switches' +Info: switches: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_switches --dir=C:/Users/takayun/AppData/Local/Temp/alt7101_4069057683900320684.dir/0047_switches_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7101_4069057683900320684.dir/0047_switches_gen//nios_system_switches_component_configuration.pl --do_build_sim=0 ] +Info: switches: Done RTL generation for module 'nios_system_switches' +Info: switches: "nios_system" instantiated altera_avalon_pio "switches" +Info: jtag_uart: Starting RTL generation for module 'nios_system_jtag_uart' +Info: jtag_uart: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_jtag_uart -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_jtag_uart/generate_rtl.pl --name=nios_system_jtag_uart --dir=C:/Users/takayun/AppData/Local/Temp/alt7101_4069057683900320684.dir/0048_jtag_uart_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7101_4069057683900320684.dir/0048_jtag_uart_gen//nios_system_jtag_uart_component_configuration.pl --do_build_sim=0 ] +Info: jtag_uart: Done RTL generation for module 'nios_system_jtag_uart' +Info: jtag_uart: "nios_system" instantiated altera_avalon_jtag_uart "jtag_uart" +Info: LEDs: Starting RTL generation for module 'nios_system_LEDs' +Info: LEDs: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_LEDs --dir=C:/Users/takayun/AppData/Local/Temp/alt7101_4069057683900320684.dir/0049_LEDs_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7101_4069057683900320684.dir/0049_LEDs_gen//nios_system_LEDs_component_configuration.pl --do_build_sim=0 ] +Info: LEDs: Done RTL generation for module 'nios_system_LEDs' +Info: LEDs: "nios_system" instantiated altera_avalon_pio "LEDs" +Info: LEDRs: Starting RTL generation for module 'nios_system_LEDRs' +Info: LEDRs: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_LEDRs --dir=C:/Users/takayun/AppData/Local/Temp/alt7101_4069057683900320684.dir/0050_LEDRs_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7101_4069057683900320684.dir/0050_LEDRs_gen//nios_system_LEDRs_component_configuration.pl --do_build_sim=0 ] +Info: LEDRs: Done RTL generation for module 'nios_system_LEDRs' +Info: LEDRs: "nios_system" instantiated altera_avalon_pio "LEDRs" +Info: nios2_processor_instruction_master_translator: "nios_system" instantiated altera_merlin_master_translator "nios2_processor_instruction_master_translator" +Info: nios2_processor_jtag_debug_module_translator: "nios_system" instantiated altera_merlin_slave_translator "nios2_processor_jtag_debug_module_translator" +Info: nios2_processor_instruction_master_translator_avalon_universal_master_0_agent: "nios_system" instantiated altera_merlin_master_agent "nios2_processor_instruction_master_translator_avalon_universal_master_0_agent" +Info: nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent: "nios_system" instantiated altera_merlin_slave_agent "nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent" +Info: nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo: "nios_system" instantiated altera_avalon_sc_fifo "nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo" +Info: addr_router: "nios_system" instantiated altera_merlin_router "addr_router" +Info: addr_router_001: "nios_system" instantiated altera_merlin_router "addr_router_001" +Info: id_router: "nios_system" instantiated altera_merlin_router "id_router" +Info: id_router_002: "nios_system" instantiated altera_merlin_router "id_router_002" +Info: rst_controller: "nios_system" instantiated altera_reset_controller "rst_controller" +Info: cmd_xbar_demux: "nios_system" instantiated altera_merlin_demultiplexer "cmd_xbar_demux" +Info: cmd_xbar_demux_001: "nios_system" instantiated altera_merlin_demultiplexer "cmd_xbar_demux_001" +Info: cmd_xbar_mux: "nios_system" instantiated altera_merlin_multiplexer "cmd_xbar_mux" +Info: rsp_xbar_demux_002: "nios_system" instantiated altera_merlin_demultiplexer "rsp_xbar_demux_002" +Info: rsp_xbar_mux: "nios_system" instantiated altera_merlin_multiplexer "rsp_xbar_mux" +Info: Reusing file C:/Users/takayun/Desktop/qsys_tutorial/nios_system/synthesis/submodules/altera_merlin_arbitrator.sv +Info: rsp_xbar_mux_001: "nios_system" instantiated altera_merlin_multiplexer "rsp_xbar_mux_001" +Info: Reusing file C:/Users/takayun/Desktop/qsys_tutorial/nios_system/synthesis/submodules/altera_merlin_arbitrator.sv +Info: irq_mapper: "nios_system" instantiated altera_irq_mapper "irq_mapper" +Info: nios_system: Done nios_system" with 24 modules, 71 files, 1371812 bytes +Info: ip-generate succeeded. +Info: Finished: Create HDL design files for synthesis diff --git a/nios_system_generation_7.rpt b/nios_system_generation_7.rpt new file mode 100644 index 0000000..d6874bd --- /dev/null +++ b/nios_system_generation_7.rpt @@ -0,0 +1,169 @@ +Info: Starting: Create block symbol file (.bsf) +Info: ip-generate --project-directory=C:/Users/takayun/Documents/DE2-115/qsys_tutorial/ --output-directory=C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/ --report-file=bsf:C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.bsf --system-info=DEVICE_FAMILY="Cyclone IV E" --system-info=DEVICE=EP4CE115F29C7 --system-info=DEVICE_SPEEDGRADE=7 --component-file=C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.qsys +Progress: Loading qsys_tutorial/nios_system.qsys +Progress: Reading input file +Progress: Adding clk_0 [clock_source 13.0] +Progress: Parameterizing module clk_0 +Progress: Adding nios2_processor [altera_nios2_qsys 13.0] +Progress: Parameterizing module nios2_processor +Progress: Adding onchip_memory [altera_avalon_onchip_memory2 13.0.1.99.2] +Progress: Parameterizing module onchip_memory +Progress: Adding jtag_uart [altera_avalon_jtag_uart 13.0.1.99.2] +Progress: Parameterizing module jtag_uart +Progress: Adding LEDs [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module LEDs +Progress: Adding LEDRs [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module LEDRs +Progress: Adding pio_0 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module pio_0 +Progress: Building connections +Progress: Parameterizing connections +Progress: Validating +Progress: Done reading input file +Info: nios_system.pio_0: PIO inputs are not hardwired in test bench. Undefined values will be read from PIO inputs during simulation. +Info: ip-generate succeeded. +Info: Finished: Create block symbol file (.bsf) +Info: +Info: Starting: Create HDL design files for synthesis +Info: ip-generate --project-directory=C:/Users/takayun/Documents/DE2-115/qsys_tutorial/ --output-directory=C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/synthesis/ --file-set=QUARTUS_SYNTH --report-file=sopcinfo:C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.sopcinfo --report-file=html:C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.html --report-file=qip:C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/synthesis/nios_system.qip --report-file=cmp:C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.cmp --report-file=svd --system-info=DEVICE_FAMILY="Cyclone IV E" --system-info=DEVICE=EP4CE115F29C7 --system-info=DEVICE_SPEEDGRADE=7 --component-file=C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.qsys --language=VERILOG +Progress: Loading qsys_tutorial/nios_system.qsys +Progress: Reading input file +Progress: Adding clk_0 [clock_source 13.0] +Progress: Parameterizing module clk_0 +Progress: Adding nios2_processor [altera_nios2_qsys 13.0] +Progress: Parameterizing module nios2_processor +Progress: Adding onchip_memory [altera_avalon_onchip_memory2 13.0.1.99.2] +Progress: Parameterizing module onchip_memory +Progress: Adding jtag_uart [altera_avalon_jtag_uart 13.0.1.99.2] +Progress: Parameterizing module jtag_uart +Progress: Adding LEDs [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module LEDs +Progress: Adding LEDRs [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module LEDRs +Progress: Adding pio_0 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module pio_0 +Progress: Building connections +Progress: Parameterizing connections +Progress: Validating +Progress: Done reading input file +Info: nios_system.pio_0: PIO inputs are not hardwired in test bench. Undefined values will be read from PIO inputs during simulation. +Info: nios_system: Generating nios_system "nios_system" for QUARTUS_SYNTH +Info: pipeline_bridge_swap_transform: After transform: 7 modules, 27 connections +Info: No custom instruction connections, skipping transform +Info: merlin_translator_transform: After transform: 15 modules, 59 connections +Info: merlin_domain_transform: After transform: 30 modules, 159 connections +Info: merlin_router_transform: After transform: 38 modules, 191 connections +Info: reset_adaptation_transform: After transform: 39 modules, 150 connections +Info: merlin_network_to_switch_transform: After transform: 54 modules, 182 connections +Info: merlin_mm_transform: After transform: 54 modules, 182 connections +Info: merlin_interrupt_mapper_transform: After transform: 55 modules, 185 connections +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Info: nios2_processor: Starting RTL generation for module 'nios_system_nios2_processor' +Info: nios2_processor: Generation command is [exec C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2/eperl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2/cpu_lib -I C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2/nios_lib -I C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2 -I C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2 -- C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2/generate_rtl.epl --name=nios_system_nios2_processor --dir=C:/Users/takayun/AppData/Local/Temp/alt7115_95487825793286862.dir/0001_nios2_processor_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7115_95487825793286862.dir/0001_nios2_processor_gen//nios_system_nios2_processor_processor_configuration.pl --do_build_sim=0 --bogus ] +Info: nios2_processor: # 2016.11.10 09:12:21 (*) Starting Nios II generation +Info: nios2_processor: # 2016.11.10 09:12:21 (*) Checking for plaintext license. +Info: nios2_processor: # 2016.11.10 09:12:22 (*) Couldn't query license setup in Quartus directory C:/altera/13.0sp1/quartus +Info: nios2_processor: # 2016.11.10 09:12:22 (*) Defaulting to contents of LM_LICENSE_FILE environment variable +Info: nios2_processor: # 2016.11.10 09:12:22 (*) LM_LICENSE_FILE environment variable is empty +Info: nios2_processor: # 2016.11.10 09:12:22 (*) Plaintext license not found. +Info: nios2_processor: # 2016.11.10 09:12:22 (*) No license required to generate encrypted Nios II/e. +Info: nios2_processor: # 2016.11.10 09:12:22 (*) Elaborating CPU configuration settings +Info: nios2_processor: # 2016.11.10 09:12:22 (*) Creating all objects for CPU +Info: nios2_processor: # 2016.11.10 09:12:23 (*) Generating RTL from CPU objects +Info: nios2_processor: # 2016.11.10 09:12:23 (*) Creating plain-text RTL +Info: nios2_processor: # 2016.11.10 09:12:25 (*) Done Nios II generation +Info: nios2_processor: Done RTL generation for module 'nios_system_nios2_processor' +Info: nios2_processor: "nios_system" instantiated altera_nios2_qsys "nios2_processor" +Info: onchip_memory: Starting RTL generation for module 'nios_system_onchip_memory' +Info: onchip_memory: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_onchip_memory2 -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_onchip_memory2/generate_rtl.pl --name=nios_system_onchip_memory --dir=C:/Users/takayun/AppData/Local/Temp/alt7115_95487825793286862.dir/0002_onchip_memory_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7115_95487825793286862.dir/0002_onchip_memory_gen//nios_system_onchip_memory_component_configuration.pl --do_build_sim=0 ] +Info: onchip_memory: Done RTL generation for module 'nios_system_onchip_memory' +Info: onchip_memory: "nios_system" instantiated altera_avalon_onchip_memory2 "onchip_memory" +Info: jtag_uart: Starting RTL generation for module 'nios_system_jtag_uart' +Info: jtag_uart: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_jtag_uart -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_jtag_uart/generate_rtl.pl --name=nios_system_jtag_uart --dir=C:/Users/takayun/AppData/Local/Temp/alt7115_95487825793286862.dir/0003_jtag_uart_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7115_95487825793286862.dir/0003_jtag_uart_gen//nios_system_jtag_uart_component_configuration.pl --do_build_sim=0 ] +Info: jtag_uart: Done RTL generation for module 'nios_system_jtag_uart' +Info: jtag_uart: "nios_system" instantiated altera_avalon_jtag_uart "jtag_uart" +Info: LEDs: Starting RTL generation for module 'nios_system_LEDs' +Info: LEDs: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_LEDs --dir=C:/Users/takayun/AppData/Local/Temp/alt7115_95487825793286862.dir/0004_LEDs_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7115_95487825793286862.dir/0004_LEDs_gen//nios_system_LEDs_component_configuration.pl --do_build_sim=0 ] +Info: LEDs: Done RTL generation for module 'nios_system_LEDs' +Info: LEDs: "nios_system" instantiated altera_avalon_pio "LEDs" +Info: LEDRs: Starting RTL generation for module 'nios_system_LEDRs' +Info: LEDRs: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_LEDRs --dir=C:/Users/takayun/AppData/Local/Temp/alt7115_95487825793286862.dir/0005_LEDRs_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7115_95487825793286862.dir/0005_LEDRs_gen//nios_system_LEDRs_component_configuration.pl --do_build_sim=0 ] +Info: LEDRs: Done RTL generation for module 'nios_system_LEDRs' +Info: LEDRs: "nios_system" instantiated altera_avalon_pio "LEDRs" +Info: pio_0: Starting RTL generation for module 'nios_system_pio_0' +Info: pio_0: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_pio_0 --dir=C:/Users/takayun/AppData/Local/Temp/alt7115_95487825793286862.dir/0006_pio_0_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7115_95487825793286862.dir/0006_pio_0_gen//nios_system_pio_0_component_configuration.pl --do_build_sim=0 ] +Info: pio_0: Done RTL generation for module 'nios_system_pio_0' +Info: pio_0: "nios_system" instantiated altera_avalon_pio "pio_0" +Info: nios2_processor_instruction_master_translator: "nios_system" instantiated altera_merlin_master_translator "nios2_processor_instruction_master_translator" +Info: nios2_processor_jtag_debug_module_translator: "nios_system" instantiated altera_merlin_slave_translator "nios2_processor_jtag_debug_module_translator" +Info: nios2_processor_instruction_master_translator_avalon_universal_master_0_agent: "nios_system" instantiated altera_merlin_master_agent "nios2_processor_instruction_master_translator_avalon_universal_master_0_agent" +Info: nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent: "nios_system" instantiated altera_merlin_slave_agent "nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent" +Info: nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo: "nios_system" instantiated altera_avalon_sc_fifo "nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo" +Info: addr_router: "nios_system" instantiated altera_merlin_router "addr_router" +Info: addr_router_001: "nios_system" instantiated altera_merlin_router "addr_router_001" +Info: id_router: "nios_system" instantiated altera_merlin_router "id_router" +Info: id_router_002: "nios_system" instantiated altera_merlin_router "id_router_002" +Info: rst_controller: "nios_system" instantiated altera_reset_controller "rst_controller" +Info: cmd_xbar_demux: "nios_system" instantiated altera_merlin_demultiplexer "cmd_xbar_demux" +Info: cmd_xbar_demux_001: "nios_system" instantiated altera_merlin_demultiplexer "cmd_xbar_demux_001" +Info: cmd_xbar_mux: "nios_system" instantiated altera_merlin_multiplexer "cmd_xbar_mux" +Info: rsp_xbar_demux_002: "nios_system" instantiated altera_merlin_demultiplexer "rsp_xbar_demux_002" +Info: rsp_xbar_mux: "nios_system" instantiated altera_merlin_multiplexer "rsp_xbar_mux" +Info: Reusing file C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/synthesis/submodules/altera_merlin_arbitrator.sv +Info: rsp_xbar_mux_001: "nios_system" instantiated altera_merlin_multiplexer "rsp_xbar_mux_001" +Info: Reusing file C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/synthesis/submodules/altera_merlin_arbitrator.sv +Info: irq_mapper: "nios_system" instantiated altera_irq_mapper "irq_mapper" +Info: nios_system: Done nios_system" with 24 modules, 71 files, 1372825 bytes +Info: ip-generate succeeded. +Info: Finished: Create HDL design files for synthesis diff --git a/nios_system_generation_8.rpt b/nios_system_generation_8.rpt new file mode 100644 index 0000000..6f090ae --- /dev/null +++ b/nios_system_generation_8.rpt @@ -0,0 +1,169 @@ +Info: Starting: Create block symbol file (.bsf) +Info: ip-generate --project-directory=C:/Users/takayun/Documents/DE2-115/qsys_tutorial/ --output-directory=C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/ --report-file=bsf:C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.bsf --system-info=DEVICE_FAMILY="Cyclone IV E" --system-info=DEVICE=EP4CE115F29C7 --system-info=DEVICE_SPEEDGRADE=7 --component-file=C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.qsys +Progress: Loading qsys_tutorial/nios_system.qsys +Progress: Reading input file +Progress: Adding clk_0 [clock_source 13.0] +Progress: Parameterizing module clk_0 +Progress: Adding nios2_processor [altera_nios2_qsys 13.0] +Progress: Parameterizing module nios2_processor +Progress: Adding onchip_memory [altera_avalon_onchip_memory2 13.0.1.99.2] +Progress: Parameterizing module onchip_memory +Progress: Adding jtag_uart [altera_avalon_jtag_uart 13.0.1.99.2] +Progress: Parameterizing module jtag_uart +Progress: Adding LEDs [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module LEDs +Progress: Adding LEDRs [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module LEDRs +Progress: Adding pio_0 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module pio_0 +Progress: Building connections +Progress: Parameterizing connections +Progress: Validating +Progress: Done reading input file +Info: nios_system.pio_0: PIO inputs are not hardwired in test bench. Undefined values will be read from PIO inputs during simulation. +Info: ip-generate succeeded. +Info: Finished: Create block symbol file (.bsf) +Info: +Info: Starting: Create HDL design files for synthesis +Info: ip-generate --project-directory=C:/Users/takayun/Documents/DE2-115/qsys_tutorial/ --output-directory=C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/synthesis/ --file-set=QUARTUS_SYNTH --report-file=sopcinfo:C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.sopcinfo --report-file=html:C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.html --report-file=qip:C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/synthesis/nios_system.qip --report-file=cmp:C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.cmp --report-file=svd --system-info=DEVICE_FAMILY="Cyclone IV E" --system-info=DEVICE=EP4CE115F29C7 --system-info=DEVICE_SPEEDGRADE=7 --component-file=C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.qsys --language=VERILOG +Progress: Loading qsys_tutorial/nios_system.qsys +Progress: Reading input file +Progress: Adding clk_0 [clock_source 13.0] +Progress: Parameterizing module clk_0 +Progress: Adding nios2_processor [altera_nios2_qsys 13.0] +Progress: Parameterizing module nios2_processor +Progress: Adding onchip_memory [altera_avalon_onchip_memory2 13.0.1.99.2] +Progress: Parameterizing module onchip_memory +Progress: Adding jtag_uart [altera_avalon_jtag_uart 13.0.1.99.2] +Progress: Parameterizing module jtag_uart +Progress: Adding LEDs [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module LEDs +Progress: Adding LEDRs [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module LEDRs +Progress: Adding pio_0 [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module pio_0 +Progress: Building connections +Progress: Parameterizing connections +Progress: Validating +Progress: Done reading input file +Info: nios_system.pio_0: PIO inputs are not hardwired in test bench. Undefined values will be read from PIO inputs during simulation. +Info: nios_system: Generating nios_system "nios_system" for QUARTUS_SYNTH +Info: pipeline_bridge_swap_transform: After transform: 7 modules, 27 connections +Info: No custom instruction connections, skipping transform +Info: merlin_translator_transform: After transform: 15 modules, 59 connections +Info: merlin_domain_transform: After transform: 30 modules, 159 connections +Info: merlin_router_transform: After transform: 38 modules, 191 connections +Info: reset_adaptation_transform: After transform: 39 modules, 150 connections +Info: merlin_network_to_switch_transform: After transform: 54 modules, 182 connections +Info: merlin_mm_transform: After transform: 54 modules, 182 connections +Info: merlin_interrupt_mapper_transform: After transform: 55 modules, 185 connections +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Info: nios2_processor: Starting RTL generation for module 'nios_system_nios2_processor' +Info: nios2_processor: Generation command is [exec C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2/eperl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2/cpu_lib -I C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2/nios_lib -I C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2 -I C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2 -- C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2/generate_rtl.epl --name=nios_system_nios2_processor --dir=C:/Users/takayun/AppData/Local/Temp/alt7115_95487825793286862.dir/0023_nios2_processor_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7115_95487825793286862.dir/0023_nios2_processor_gen//nios_system_nios2_processor_processor_configuration.pl --do_build_sim=0 --bogus ] +Info: nios2_processor: # 2016.11.10 09:19:44 (*) Starting Nios II generation +Info: nios2_processor: # 2016.11.10 09:19:44 (*) Checking for plaintext license. +Info: nios2_processor: # 2016.11.10 09:19:44 (*) Couldn't query license setup in Quartus directory C:/altera/13.0sp1/quartus +Info: nios2_processor: # 2016.11.10 09:19:44 (*) Defaulting to contents of LM_LICENSE_FILE environment variable +Info: nios2_processor: # 2016.11.10 09:19:44 (*) LM_LICENSE_FILE environment variable is empty +Info: nios2_processor: # 2016.11.10 09:19:44 (*) Plaintext license not found. +Info: nios2_processor: # 2016.11.10 09:19:44 (*) No license required to generate encrypted Nios II/e. +Info: nios2_processor: # 2016.11.10 09:19:44 (*) Elaborating CPU configuration settings +Info: nios2_processor: # 2016.11.10 09:19:45 (*) Creating all objects for CPU +Info: nios2_processor: # 2016.11.10 09:19:46 (*) Generating RTL from CPU objects +Info: nios2_processor: # 2016.11.10 09:19:46 (*) Creating plain-text RTL +Info: nios2_processor: # 2016.11.10 09:19:48 (*) Done Nios II generation +Info: nios2_processor: Done RTL generation for module 'nios_system_nios2_processor' +Info: nios2_processor: "nios_system" instantiated altera_nios2_qsys "nios2_processor" +Info: onchip_memory: Starting RTL generation for module 'nios_system_onchip_memory' +Info: onchip_memory: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_onchip_memory2 -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_onchip_memory2/generate_rtl.pl --name=nios_system_onchip_memory --dir=C:/Users/takayun/AppData/Local/Temp/alt7115_95487825793286862.dir/0024_onchip_memory_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7115_95487825793286862.dir/0024_onchip_memory_gen//nios_system_onchip_memory_component_configuration.pl --do_build_sim=0 ] +Info: onchip_memory: Done RTL generation for module 'nios_system_onchip_memory' +Info: onchip_memory: "nios_system" instantiated altera_avalon_onchip_memory2 "onchip_memory" +Info: jtag_uart: Starting RTL generation for module 'nios_system_jtag_uart' +Info: jtag_uart: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_jtag_uart -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_jtag_uart/generate_rtl.pl --name=nios_system_jtag_uart --dir=C:/Users/takayun/AppData/Local/Temp/alt7115_95487825793286862.dir/0025_jtag_uart_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7115_95487825793286862.dir/0025_jtag_uart_gen//nios_system_jtag_uart_component_configuration.pl --do_build_sim=0 ] +Info: jtag_uart: Done RTL generation for module 'nios_system_jtag_uart' +Info: jtag_uart: "nios_system" instantiated altera_avalon_jtag_uart "jtag_uart" +Info: LEDs: Starting RTL generation for module 'nios_system_LEDs' +Info: LEDs: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_LEDs --dir=C:/Users/takayun/AppData/Local/Temp/alt7115_95487825793286862.dir/0026_LEDs_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7115_95487825793286862.dir/0026_LEDs_gen//nios_system_LEDs_component_configuration.pl --do_build_sim=0 ] +Info: LEDs: Done RTL generation for module 'nios_system_LEDs' +Info: LEDs: "nios_system" instantiated altera_avalon_pio "LEDs" +Info: LEDRs: Starting RTL generation for module 'nios_system_LEDRs' +Info: LEDRs: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_LEDRs --dir=C:/Users/takayun/AppData/Local/Temp/alt7115_95487825793286862.dir/0027_LEDRs_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7115_95487825793286862.dir/0027_LEDRs_gen//nios_system_LEDRs_component_configuration.pl --do_build_sim=0 ] +Info: LEDRs: Done RTL generation for module 'nios_system_LEDRs' +Info: LEDRs: "nios_system" instantiated altera_avalon_pio "LEDRs" +Info: pio_0: Starting RTL generation for module 'nios_system_pio_0' +Info: pio_0: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_pio_0 --dir=C:/Users/takayun/AppData/Local/Temp/alt7115_95487825793286862.dir/0028_pio_0_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7115_95487825793286862.dir/0028_pio_0_gen//nios_system_pio_0_component_configuration.pl --do_build_sim=0 ] +Info: pio_0: Done RTL generation for module 'nios_system_pio_0' +Info: pio_0: "nios_system" instantiated altera_avalon_pio "pio_0" +Info: nios2_processor_instruction_master_translator: "nios_system" instantiated altera_merlin_master_translator "nios2_processor_instruction_master_translator" +Info: nios2_processor_jtag_debug_module_translator: "nios_system" instantiated altera_merlin_slave_translator "nios2_processor_jtag_debug_module_translator" +Info: nios2_processor_instruction_master_translator_avalon_universal_master_0_agent: "nios_system" instantiated altera_merlin_master_agent "nios2_processor_instruction_master_translator_avalon_universal_master_0_agent" +Info: nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent: "nios_system" instantiated altera_merlin_slave_agent "nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent" +Info: nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo: "nios_system" instantiated altera_avalon_sc_fifo "nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo" +Info: addr_router: "nios_system" instantiated altera_merlin_router "addr_router" +Info: addr_router_001: "nios_system" instantiated altera_merlin_router "addr_router_001" +Info: id_router: "nios_system" instantiated altera_merlin_router "id_router" +Info: id_router_002: "nios_system" instantiated altera_merlin_router "id_router_002" +Info: rst_controller: "nios_system" instantiated altera_reset_controller "rst_controller" +Info: cmd_xbar_demux: "nios_system" instantiated altera_merlin_demultiplexer "cmd_xbar_demux" +Info: cmd_xbar_demux_001: "nios_system" instantiated altera_merlin_demultiplexer "cmd_xbar_demux_001" +Info: cmd_xbar_mux: "nios_system" instantiated altera_merlin_multiplexer "cmd_xbar_mux" +Info: rsp_xbar_demux_002: "nios_system" instantiated altera_merlin_demultiplexer "rsp_xbar_demux_002" +Info: rsp_xbar_mux: "nios_system" instantiated altera_merlin_multiplexer "rsp_xbar_mux" +Info: Reusing file C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/synthesis/submodules/altera_merlin_arbitrator.sv +Info: rsp_xbar_mux_001: "nios_system" instantiated altera_merlin_multiplexer "rsp_xbar_mux_001" +Info: Reusing file C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/synthesis/submodules/altera_merlin_arbitrator.sv +Info: irq_mapper: "nios_system" instantiated altera_irq_mapper "irq_mapper" +Info: nios_system: Done nios_system" with 24 modules, 71 files, 1371201 bytes +Info: ip-generate succeeded. +Info: Finished: Create HDL design files for synthesis diff --git a/nios_system_generation_9.rpt b/nios_system_generation_9.rpt new file mode 100644 index 0000000..a941e9c --- /dev/null +++ b/nios_system_generation_9.rpt @@ -0,0 +1,186 @@ +Info: Starting: Create block symbol file (.bsf) +Info: ip-generate --project-directory=C:/Users/takayun/Documents/DE2-115/qsys_tutorial/ --output-directory=C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/ --report-file=bsf:C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.bsf --system-info=DEVICE_FAMILY="Cyclone IV E" --system-info=DEVICE=EP4CE115F29C7 --system-info=DEVICE_SPEEDGRADE=7 --component-file=C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.qsys +Progress: Loading qsys_tutorial/nios_system.qsys +Progress: Reading input file +Progress: Adding clk_0 [clock_source 13.0] +Progress: Parameterizing module clk_0 +Progress: Adding nios2_processor [altera_nios2_qsys 13.0] +Progress: Parameterizing module nios2_processor +Progress: Adding onchip_memory [altera_avalon_onchip_memory2 13.0.1.99.2] +Progress: Parameterizing module onchip_memory +Progress: Adding jtag_uart [altera_avalon_jtag_uart 13.0.1.99.2] +Progress: Parameterizing module jtag_uart +Progress: Adding LEDs [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module LEDs +Progress: Adding LEDRs [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module LEDRs +Progress: Adding switches [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module switches +Progress: Adding push_switches [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module push_switches +Progress: Building connections +Progress: Parameterizing connections +Progress: Validating +Progress: Done reading input file +Info: nios_system.switches: PIO inputs are not hardwired in test bench. Undefined values will be read from PIO inputs during simulation. +Info: nios_system.push_switches: PIO inputs are not hardwired in test bench. Undefined values will be read from PIO inputs during simulation. +Info: ip-generate succeeded. +Info: Finished: Create block symbol file (.bsf) +Info: +Info: Starting: Create HDL design files for synthesis +Info: ip-generate --project-directory=C:/Users/takayun/Documents/DE2-115/qsys_tutorial/ --output-directory=C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/synthesis/ --file-set=QUARTUS_SYNTH --report-file=sopcinfo:C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.sopcinfo --report-file=html:C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.html --report-file=qip:C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/synthesis/nios_system.qip --report-file=cmp:C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.cmp --report-file=svd --system-info=DEVICE_FAMILY="Cyclone IV E" --system-info=DEVICE=EP4CE115F29C7 --system-info=DEVICE_SPEEDGRADE=7 --component-file=C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.qsys --language=VERILOG +Progress: Loading qsys_tutorial/nios_system.qsys +Progress: Reading input file +Progress: Adding clk_0 [clock_source 13.0] +Progress: Parameterizing module clk_0 +Progress: Adding nios2_processor [altera_nios2_qsys 13.0] +Progress: Parameterizing module nios2_processor +Progress: Adding onchip_memory [altera_avalon_onchip_memory2 13.0.1.99.2] +Progress: Parameterizing module onchip_memory +Progress: Adding jtag_uart [altera_avalon_jtag_uart 13.0.1.99.2] +Progress: Parameterizing module jtag_uart +Progress: Adding LEDs [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module LEDs +Progress: Adding LEDRs [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module LEDRs +Progress: Adding switches [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module switches +Progress: Adding push_switches [altera_avalon_pio 13.0.1.99.2] +Progress: Parameterizing module push_switches +Progress: Building connections +Progress: Parameterizing connections +Progress: Validating +Progress: Done reading input file +Info: nios_system.switches: PIO inputs are not hardwired in test bench. Undefined values will be read from PIO inputs during simulation. +Info: nios_system.push_switches: PIO inputs are not hardwired in test bench. Undefined values will be read from PIO inputs during simulation. +Info: nios_system: Generating nios_system "nios_system" for QUARTUS_SYNTH +Info: pipeline_bridge_swap_transform: After transform: 8 modules, 31 connections +Info: No custom instruction connections, skipping transform +Info: merlin_translator_transform: After transform: 17 modules, 67 connections +Info: merlin_domain_transform: After transform: 34 modules, 181 connections +Info: merlin_router_transform: After transform: 43 modules, 217 connections +Info: reset_adaptation_transform: After transform: 44 modules, 170 connections +Info: merlin_network_to_switch_transform: After transform: 61 modules, 206 connections +Info: merlin_mm_transform: After transform: 61 modules, 206 connections +Info: merlin_interrupt_mapper_transform: After transform: 62 modules, 209 connections +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning: nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Info: nios2_processor: Starting RTL generation for module 'nios_system_nios2_processor' +Info: nios2_processor: Generation command is [exec C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2/eperl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2/cpu_lib -I C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2/nios_lib -I C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2 -I C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2 -- C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2/generate_rtl.epl --name=nios_system_nios2_processor --dir=C:/Users/takayun/AppData/Local/Temp/alt7115_95487825793286862.dir/0045_nios2_processor_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7115_95487825793286862.dir/0045_nios2_processor_gen//nios_system_nios2_processor_processor_configuration.pl --do_build_sim=0 --bogus ] +Info: nios2_processor: # 2016.11.10 10:03:01 (*) Starting Nios II generation +Info: nios2_processor: # 2016.11.10 10:03:01 (*) Checking for plaintext license. +Info: nios2_processor: # 2016.11.10 10:03:02 (*) Couldn't query license setup in Quartus directory C:/altera/13.0sp1/quartus +Info: nios2_processor: # 2016.11.10 10:03:02 (*) Defaulting to contents of LM_LICENSE_FILE environment variable +Info: nios2_processor: # 2016.11.10 10:03:02 (*) LM_LICENSE_FILE environment variable is empty +Info: nios2_processor: # 2016.11.10 10:03:02 (*) Plaintext license not found. +Info: nios2_processor: # 2016.11.10 10:03:02 (*) No license required to generate encrypted Nios II/e. +Info: nios2_processor: # 2016.11.10 10:03:02 (*) Elaborating CPU configuration settings +Info: nios2_processor: # 2016.11.10 10:03:02 (*) Creating all objects for CPU +Info: nios2_processor: # 2016.11.10 10:03:03 (*) Generating RTL from CPU objects +Info: nios2_processor: # 2016.11.10 10:03:03 (*) Creating plain-text RTL +Info: nios2_processor: # 2016.11.10 10:03:05 (*) Done Nios II generation +Info: nios2_processor: Done RTL generation for module 'nios_system_nios2_processor' +Info: nios2_processor: "nios_system" instantiated altera_nios2_qsys "nios2_processor" +Info: onchip_memory: Starting RTL generation for module 'nios_system_onchip_memory' +Info: onchip_memory: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_onchip_memory2 -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_onchip_memory2/generate_rtl.pl --name=nios_system_onchip_memory --dir=C:/Users/takayun/AppData/Local/Temp/alt7115_95487825793286862.dir/0046_onchip_memory_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7115_95487825793286862.dir/0046_onchip_memory_gen//nios_system_onchip_memory_component_configuration.pl --do_build_sim=0 ] +Info: onchip_memory: Done RTL generation for module 'nios_system_onchip_memory' +Info: onchip_memory: "nios_system" instantiated altera_avalon_onchip_memory2 "onchip_memory" +Info: jtag_uart: Starting RTL generation for module 'nios_system_jtag_uart' +Info: jtag_uart: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_jtag_uart -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_jtag_uart/generate_rtl.pl --name=nios_system_jtag_uart --dir=C:/Users/takayun/AppData/Local/Temp/alt7115_95487825793286862.dir/0047_jtag_uart_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7115_95487825793286862.dir/0047_jtag_uart_gen//nios_system_jtag_uart_component_configuration.pl --do_build_sim=0 ] +Info: jtag_uart: Done RTL generation for module 'nios_system_jtag_uart' +Info: jtag_uart: "nios_system" instantiated altera_avalon_jtag_uart "jtag_uart" +Info: LEDs: Starting RTL generation for module 'nios_system_LEDs' +Info: LEDs: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_LEDs --dir=C:/Users/takayun/AppData/Local/Temp/alt7115_95487825793286862.dir/0048_LEDs_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7115_95487825793286862.dir/0048_LEDs_gen//nios_system_LEDs_component_configuration.pl --do_build_sim=0 ] +Info: LEDs: Done RTL generation for module 'nios_system_LEDs' +Info: LEDs: "nios_system" instantiated altera_avalon_pio "LEDs" +Info: LEDRs: Starting RTL generation for module 'nios_system_LEDRs' +Info: LEDRs: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_LEDRs --dir=C:/Users/takayun/AppData/Local/Temp/alt7115_95487825793286862.dir/0049_LEDRs_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7115_95487825793286862.dir/0049_LEDRs_gen//nios_system_LEDRs_component_configuration.pl --do_build_sim=0 ] +Info: LEDRs: Done RTL generation for module 'nios_system_LEDRs' +Info: LEDRs: "nios_system" instantiated altera_avalon_pio "LEDRs" +Info: switches: Starting RTL generation for module 'nios_system_switches' +Info: switches: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_switches --dir=C:/Users/takayun/AppData/Local/Temp/alt7115_95487825793286862.dir/0050_switches_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7115_95487825793286862.dir/0050_switches_gen//nios_system_switches_component_configuration.pl --do_build_sim=0 ] +Info: switches: Done RTL generation for module 'nios_system_switches' +Info: switches: "nios_system" instantiated altera_avalon_pio "switches" +Info: push_switches: Starting RTL generation for module 'nios_system_push_switches' +Info: push_switches: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_push_switches --dir=C:/Users/takayun/AppData/Local/Temp/alt7115_95487825793286862.dir/0051_push_switches_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7115_95487825793286862.dir/0051_push_switches_gen//nios_system_push_switches_component_configuration.pl --do_build_sim=0 ] +Info: push_switches: Done RTL generation for module 'nios_system_push_switches' +Info: push_switches: "nios_system" instantiated altera_avalon_pio "push_switches" +Info: nios2_processor_instruction_master_translator: "nios_system" instantiated altera_merlin_master_translator "nios2_processor_instruction_master_translator" +Info: nios2_processor_jtag_debug_module_translator: "nios_system" instantiated altera_merlin_slave_translator "nios2_processor_jtag_debug_module_translator" +Info: nios2_processor_instruction_master_translator_avalon_universal_master_0_agent: "nios_system" instantiated altera_merlin_master_agent "nios2_processor_instruction_master_translator_avalon_universal_master_0_agent" +Info: nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent: "nios_system" instantiated altera_merlin_slave_agent "nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent" +Info: nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo: "nios_system" instantiated altera_avalon_sc_fifo "nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo" +Info: addr_router: "nios_system" instantiated altera_merlin_router "addr_router" +Info: addr_router_001: "nios_system" instantiated altera_merlin_router "addr_router_001" +Info: id_router: "nios_system" instantiated altera_merlin_router "id_router" +Info: id_router_002: "nios_system" instantiated altera_merlin_router "id_router_002" +Info: rst_controller: "nios_system" instantiated altera_reset_controller "rst_controller" +Info: cmd_xbar_demux: "nios_system" instantiated altera_merlin_demultiplexer "cmd_xbar_demux" +Info: cmd_xbar_demux_001: "nios_system" instantiated altera_merlin_demultiplexer "cmd_xbar_demux_001" +Info: cmd_xbar_mux: "nios_system" instantiated altera_merlin_multiplexer "cmd_xbar_mux" +Info: rsp_xbar_demux_002: "nios_system" instantiated altera_merlin_demultiplexer "rsp_xbar_demux_002" +Info: rsp_xbar_mux: "nios_system" instantiated altera_merlin_multiplexer "rsp_xbar_mux" +Info: Reusing file C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/synthesis/submodules/altera_merlin_arbitrator.sv +Info: rsp_xbar_mux_001: "nios_system" instantiated altera_merlin_multiplexer "rsp_xbar_mux_001" +Info: Reusing file C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/synthesis/submodules/altera_merlin_arbitrator.sv +Info: irq_mapper: "nios_system" instantiated altera_irq_mapper "irq_mapper" +Info: nios_system: Done nios_system" with 25 modules, 78 files, 1510254 bytes +Info: ip-generate succeeded. +Info: Finished: Create HDL design files for synthesis diff --git a/output_files/lights.asm.rpt b/output_files/lights.asm.rpt new file mode 100644 index 0000000..82bb4a8 --- /dev/null +++ b/output_files/lights.asm.rpt @@ -0,0 +1,127 @@ +Assembler report for lights +Fri Dec 02 01:33:21 2016 +Quartus II 64-Bit Version 13.0.1 Build 232 06/12/2013 Service Pack 1 SJ Web Edition + + +--------------------- +; Table of Contents ; +--------------------- + 1. Legal Notice + 2. Assembler Summary + 3. Assembler Settings + 4. Assembler Encrypted IP Cores Summary + 5. Assembler Generated Files + 6. Assembler Device Options: C:/Users/takayun/Documents/DE2-115/qsys_tutorial/output_files/lights.sof + 7. Assembler Messages + + + +---------------- +; Legal Notice ; +---------------- +Copyright (C) 1991-2013 Altera Corporation +Your use of Altera Corporation's design tools, logic functions +and other software and tools, and its AMPP partner logic +functions, and any output files from any of the foregoing +(including device programming or simulation files), and any +associated documentation or information are expressly subject +to the terms and conditions of the Altera Program License +Subscription Agreement, Altera MegaCore Function License +Agreement, or other applicable license agreement, including, +without limitation, that your use is for the sole purpose of +programming logic devices manufactured by Altera and sold by +Altera or its authorized distributors. Please refer to the +applicable agreement for further details. + + + ++---------------------------------------------------------------+ +; Assembler Summary ; ++-----------------------+---------------------------------------+ +; Assembler Status ; Successful - Fri Dec 02 01:33:21 2016 ; +; Revision Name ; lights ; +; Top-level Entity Name ; lights ; +; Family ; Cyclone IV E ; +; Device ; EP4CE115F29C7 ; ++-----------------------+---------------------------------------+ + + ++--------------------------------------------------------------------------------------------------------+ +; Assembler Settings ; ++-----------------------------------------------------------------------------+----------+---------------+ +; Option ; Setting ; Default Value ; ++-----------------------------------------------------------------------------+----------+---------------+ +; Use smart compilation ; Off ; Off ; +; Enable parallel Assembler and TimeQuest Timing Analyzer during compilation ; On ; On ; +; Enable compact report table ; Off ; Off ; +; Generate compressed bitstreams ; On ; On ; +; Compression mode ; Off ; Off ; +; Clock source for configuration device ; Internal ; Internal ; +; Clock frequency of the configuration device ; 10 MHZ ; 10 MHz ; +; Divide clock frequency by ; 1 ; 1 ; +; Auto user code ; On ; On ; +; Use configuration device ; Off ; Off ; +; Configuration device ; Auto ; Auto ; +; Configuration device auto user code ; Off ; Off ; +; Generate Tabular Text File (.ttf) For Target Device ; Off ; Off ; +; Generate Raw Binary File (.rbf) For Target Device ; Off ; Off ; +; Generate Hexadecimal (Intel-Format) Output File (.hexout) for Target Device ; Off ; Off ; +; Hexadecimal Output File start address ; 0 ; 0 ; +; Hexadecimal Output File count direction ; Up ; Up ; +; Release clears before tri-states ; Off ; Off ; +; Auto-restart configuration after error ; On ; On ; +; Enable OCT_DONE ; Off ; Off ; +; Generate Serial Vector Format File (.svf) for Target Device ; Off ; Off ; +; Generate a JEDEC STAPL Format File (.jam) for Target Device ; Off ; Off ; +; Generate a compressed Jam STAPL Byte Code 2.0 File (.jbc) for Target Device ; Off ; Off ; +; Generate a compressed Jam STAPL Byte Code 2.0 File (.jbc) for Target Device ; On ; On ; ++-----------------------------------------------------------------------------+----------+---------------+ + + ++------------------------------------------------+ +; Assembler Encrypted IP Cores Summary ; ++--------+------------------------+--------------+ +; Vendor ; IP Core Name ; License Type ; ++--------+------------------------+--------------+ +; Altera ; Signal Tap (6AF7 BCE1) ; Licensed ; +; Altera ; Signal Tap (6AF7 BCEC) ; Licensed ; ++--------+------------------------+--------------+ + + ++--------------------------------------------------------------------------+ +; Assembler Generated Files ; ++--------------------------------------------------------------------------+ +; File Name ; ++--------------------------------------------------------------------------+ +; C:/Users/takayun/Documents/DE2-115/qsys_tutorial/output_files/lights.sof ; ++--------------------------------------------------------------------------+ + + ++----------------------------------------------------------------------------------------------------+ +; Assembler Device Options: C:/Users/takayun/Documents/DE2-115/qsys_tutorial/output_files/lights.sof ; ++----------------+-----------------------------------------------------------------------------------+ +; Option ; Setting ; ++----------------+-----------------------------------------------------------------------------------+ +; Device ; EP4CE115F29C7 ; +; JTAG usercode ; 0x0079493A ; +; Checksum ; 0x0079493A ; ++----------------+-----------------------------------------------------------------------------------+ + + ++--------------------+ +; Assembler Messages ; ++--------------------+ +Info: ******************************************************************* +Info: Running Quartus II 64-Bit Assembler + Info: Version 13.0.1 Build 232 06/12/2013 Service Pack 1 SJ Web Edition + Info: Processing started: Fri Dec 02 01:33:14 2016 +Info: Command: quartus_asm --read_settings_files=off --write_settings_files=off lights -c lights +Info (115031): Writing out detailed assembly data for power analysis +Info (115030): Assembler is generating device programming files +Info: Quartus II 64-Bit Assembler was successful. 0 errors, 0 warnings + Info: Peak virtual memory: 477 megabytes + Info: Processing ended: Fri Dec 02 01:33:21 2016 + Info: Elapsed time: 00:00:07 + Info: Total CPU time (on all processors): 00:00:06 + + diff --git a/output_files/lights.cdf b/output_files/lights.cdf new file mode 100644 index 0000000..2adeddc --- /dev/null +++ b/output_files/lights.cdf @@ -0,0 +1,13 @@ +/* Quartus II 64-Bit Version 13.0.1 Build 232 06/12/2013 Service Pack 1 SJ Web Edition */ +JedecChain; + FileRevision(JESD32A); + DefaultMfr(6E); + + P ActionCode(Cfg) + Device PartName(EP4CE115F29) Path("C:/Users/takayun/Documents/DE2-115/qsys_tutorial/output_files/") File("lights.sof") MfrSpec(OpMask(1)); + +ChainEnd; + +AlteraBegin; + ChainType(JTAG); +AlteraEnd; diff --git a/output_files/lights.done b/output_files/lights.done new file mode 100644 index 0000000..033af12 --- /dev/null +++ b/output_files/lights.done @@ -0,0 +1 @@ +Fri Dec 02 01:33:29 2016 diff --git a/output_files/lights.fit.rpt b/output_files/lights.fit.rpt new file mode 100644 index 0000000..a9a8fe4 --- /dev/null +++ b/output_files/lights.fit.rpt @@ -0,0 +1,11508 @@ +Fitter report for lights +Fri Dec 02 01:33:11 2016 +Quartus II 64-Bit Version 13.0.1 Build 232 06/12/2013 Service Pack 1 SJ Web Edition + + +--------------------- +; Table of Contents ; +--------------------- + 1. Legal Notice + 2. Fitter Summary + 3. Fitter Settings + 4. Parallel Compilation + 5. I/O Assignment Warnings + 6. Fitter Netlist Optimizations + 7. Ignored Assignments + 8. Incremental Compilation Preservation Summary + 9. Incremental Compilation Partition Settings + 10. Incremental Compilation Placement Preservation + 11. Pin-Out File + 12. Fitter Resource Usage Summary + 13. Fitter Partition Statistics + 14. Input Pins + 15. Output Pins + 16. Dual Purpose and Dedicated Pins + 17. I/O Bank Usage + 18. All Package Pins + 19. Fitter Resource Utilization by Entity + 20. Delay Chain Summary + 21. Pad To Core Delay Chain Fanout + 22. Control Signals + 23. Global & Other Fast Signals + 24. Non-Global High Fan-Out Signals + 25. Fitter RAM Summary + 26. |lights|nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_register_bank_b_module:nios_system_nios2_processor_register_bank_b|altsyncram:the_altsyncram|altsyncram_1rh1:auto_generated|ALTSYNCRAM + 27. |lights|nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_register_bank_a_module:nios_system_nios2_processor_register_bank_a|altsyncram:the_altsyncram|altsyncram_0rh1:auto_generated|ALTSYNCRAM + 28. |lights|nios_system:NiosII|nios_system_onchip_memory:onchip_memory|altsyncram:the_altsyncram|altsyncram_4ed1:auto_generated|ALTSYNCRAM + 29. |lights|nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_ocimem:the_nios_system_nios2_processor_nios2_ocimem|nios_system_nios2_processor_ociram_sp_ram_module:nios_system_nios2_processor_ociram_sp_ram|altsyncram:the_altsyncram|altsyncram_4891:auto_generated|ALTSYNCRAM + 30. Other Routing Usage Summary + 31. LAB Logic Elements + 32. LAB-wide Signals + 33. LAB Signals Sourced + 34. LAB Signals Sourced Out + 35. LAB Distinct Inputs + 36. I/O Rules Summary + 37. I/O Rules Details + 38. I/O Rules Matrix + 39. Fitter Device Options + 40. Operating Settings and Conditions + 41. Fitter Messages + 42. Fitter Suppressed Messages + + + +---------------- +; Legal Notice ; +---------------- +Copyright (C) 1991-2013 Altera Corporation +Your use of Altera Corporation's design tools, logic functions +and other software and tools, and its AMPP partner logic +functions, and any output files from any of the foregoing +(including device programming or simulation files), and any +associated documentation or information are expressly subject +to the terms and conditions of the Altera Program License +Subscription Agreement, Altera MegaCore Function License +Agreement, or other applicable license agreement, including, +without limitation, that your use is for the sole purpose of +programming logic devices manufactured by Altera and sold by +Altera or its authorized distributors. Please refer to the +applicable agreement for further details. + + + ++--------------------------------------------------------------------------------------+ +; Fitter Summary ; ++------------------------------------+-------------------------------------------------+ +; Fitter Status ; Successful - Fri Dec 02 01:33:11 2016 ; +; Quartus II 64-Bit Version ; 13.0.1 Build 232 06/12/2013 SP 1 SJ Web Edition ; +; Revision Name ; lights ; +; Top-level Entity Name ; lights ; +; Family ; Cyclone IV E ; +; Device ; EP4CE115F29C7 ; +; Timing Models ; Final ; +; Total logic elements ; 2,232 / 114,480 ( 2 % ) ; +; Total combinational functions ; 2,062 / 114,480 ( 2 % ) ; +; Dedicated logic registers ; 1,204 / 114,480 ( 1 % ) ; +; Total registers ; 1204 ; +; Total pins ; 118 / 529 ( 22 % ) ; +; Total virtual pins ; 0 ; +; Total memory bits ; 1,649,664 / 3,981,312 ( 41 % ) ; +; Embedded Multiplier 9-bit elements ; 0 / 532 ( 0 % ) ; +; Total PLLs ; 0 / 4 ( 0 % ) ; ++------------------------------------+-------------------------------------------------+ + + ++------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Fitter Settings ; ++----------------------------------------------------------------------------+---------------------------------------+---------------------------------------+ +; Option ; Setting ; Default Value ; ++----------------------------------------------------------------------------+---------------------------------------+---------------------------------------+ +; Device ; EP4CE115F29C7 ; ; +; Nominal Core Supply Voltage ; 1.2V ; ; +; Minimum Core Junction Temperature ; 0 ; ; +; Maximum Core Junction Temperature ; 85 ; ; +; Fit Attempts to Skip ; 0 ; 0.0 ; +; Use smart compilation ; Off ; Off ; +; Enable parallel Assembler and TimeQuest Timing Analyzer during compilation ; On ; On ; +; Enable compact report table ; Off ; Off ; +; Auto Merge PLLs ; On ; On ; +; Router Timing Optimization Level ; Normal ; Normal ; +; Perform Clocking Topology Analysis During Routing ; Off ; Off ; +; Placement Effort Multiplier ; 1.0 ; 1.0 ; +; Router Effort Multiplier ; 1.0 ; 1.0 ; +; Optimize Hold Timing ; All Paths ; All Paths ; +; Optimize Multi-Corner Timing ; On ; On ; +; PowerPlay Power Optimization ; Normal compilation ; Normal compilation ; +; SSN Optimization ; Off ; Off ; +; Optimize Timing ; Normal compilation ; Normal compilation ; +; Optimize Timing for ECOs ; Off ; Off ; +; Regenerate full fit report during ECO compiles ; Off ; Off ; +; Optimize IOC Register Placement for Timing ; Normal ; Normal ; +; Limit to One Fitting Attempt ; Off ; Off ; +; Final Placement Optimizations ; Automatically ; Automatically ; +; Fitter Aggressive Routability Optimizations ; Automatically ; Automatically ; +; Fitter Initial Placement Seed ; 1 ; 1 ; +; PCI I/O ; Off ; Off ; +; Weak Pull-Up Resistor ; Off ; Off ; +; Enable Bus-Hold Circuitry ; Off ; Off ; +; Auto Packed Registers ; Auto ; Auto ; +; Auto Delay Chains ; On ; On ; +; Auto Delay Chains for High Fanout Input Pins ; Off ; Off ; +; Allow Single-ended Buffer for Differential-XSTL Input ; Off ; Off ; +; Treat Bidirectional Pin as Output Pin ; Off ; Off ; +; Perform Physical Synthesis for Combinational Logic for Fitting ; Off ; Off ; +; Perform Physical Synthesis for Combinational Logic for Performance ; Off ; Off ; +; Perform Register Duplication for Performance ; Off ; Off ; +; Perform Logic to Memory Mapping for Fitting ; Off ; Off ; +; Perform Register Retiming for Performance ; Off ; Off ; +; Perform Asynchronous Signal Pipelining ; Off ; Off ; +; Fitter Effort ; Auto Fit ; Auto Fit ; +; Physical Synthesis Effort Level ; Normal ; Normal ; +; Logic Cell Insertion - Logic Duplication ; Auto ; Auto ; +; Auto Register Duplication ; Auto ; Auto ; +; Auto Global Clock ; On ; On ; +; Auto Global Register Control Signals ; On ; On ; +; Reserve all unused pins ; As input tri-stated with weak pull-up ; As input tri-stated with weak pull-up ; +; Synchronizer Identification ; Off ; Off ; +; Enable Beneficial Skew Optimization ; On ; On ; +; Optimize Design for Metastability ; On ; On ; +; Force Fitter to Avoid Periphery Placement Warnings ; Off ; Off ; +; Enable input tri-state on active configuration pins in user mode ; Off ; Off ; ++----------------------------------------------------------------------------+---------------------------------------+---------------------------------------+ + + +Parallel compilation was disabled, but you have multiple processors available. Enable parallel compilation to reduce compilation time. ++-------------------------------------+ +; Parallel Compilation ; ++----------------------------+--------+ +; Processors ; Number ; ++----------------------------+--------+ +; Number detected on machine ; 4 ; +; Maximum allowed ; 1 ; ++----------------------------+--------+ + + ++----------------------------------------------------+ +; I/O Assignment Warnings ; ++-------------+--------------------------------------+ +; Pin Name ; Reason ; ++-------------+--------------------------------------+ +; LEDG[0] ; Missing drive strength and slew rate ; +; LEDG[1] ; Missing drive strength and slew rate ; +; LEDG[2] ; Missing drive strength and slew rate ; +; LEDG[3] ; Missing drive strength and slew rate ; +; LEDG[4] ; Missing drive strength and slew rate ; +; LEDG[5] ; Missing drive strength and slew rate ; +; LEDG[6] ; Missing drive strength and slew rate ; +; LEDG[7] ; Missing drive strength and slew rate ; +; LEDR[0] ; Missing drive strength and slew rate ; +; LEDR[1] ; Missing drive strength and slew rate ; +; LEDR[2] ; Missing drive strength and slew rate ; +; LEDR[3] ; Missing drive strength and slew rate ; +; LEDR[4] ; Missing drive strength and slew rate ; +; LEDR[5] ; Missing drive strength and slew rate ; +; LEDR[6] ; Missing drive strength and slew rate ; +; LEDR[7] ; Missing drive strength and slew rate ; +; LEDR[8] ; Missing drive strength and slew rate ; +; LEDR[9] ; Missing drive strength and slew rate ; +; LEDR[10] ; Missing drive strength and slew rate ; +; LEDR[11] ; Missing drive strength and slew rate ; +; LEDR[12] ; Missing drive strength and slew rate ; +; LEDR[13] ; Missing drive strength and slew rate ; +; LEDR[14] ; Missing drive strength and slew rate ; +; LEDR[15] ; Missing drive strength and slew rate ; +; LEDR[16] ; Missing drive strength and slew rate ; +; LEDR[17] ; Missing drive strength and slew rate ; +; HEX0[0] ; Missing drive strength and slew rate ; +; HEX0[1] ; Missing drive strength and slew rate ; +; HEX0[2] ; Missing drive strength and slew rate ; +; HEX0[3] ; Missing drive strength and slew rate ; +; HEX0[4] ; Missing drive strength and slew rate ; +; HEX0[5] ; Missing drive strength and slew rate ; +; HEX0[6] ; Missing drive strength and slew rate ; +; HEX1[0] ; Missing drive strength and slew rate ; +; HEX1[1] ; Missing drive strength and slew rate ; +; HEX1[2] ; Missing drive strength and slew rate ; +; HEX1[3] ; Missing drive strength and slew rate ; +; HEX1[4] ; Missing drive strength and slew rate ; +; HEX1[5] ; Missing drive strength and slew rate ; +; HEX1[6] ; Missing drive strength and slew rate ; +; HEX2[0] ; Missing drive strength and slew rate ; +; HEX2[1] ; Missing drive strength and slew rate ; +; HEX2[2] ; Missing drive strength and slew rate ; +; HEX2[3] ; Missing drive strength and slew rate ; +; HEX2[4] ; Missing drive strength and slew rate ; +; HEX2[5] ; Missing drive strength and slew rate ; +; HEX2[6] ; Missing drive strength and slew rate ; +; HEX3[0] ; Missing drive strength and slew rate ; +; HEX3[1] ; Missing drive strength and slew rate ; +; HEX3[2] ; Missing drive strength ; +; HEX3[3] ; Missing drive strength ; +; HEX3[4] ; Missing drive strength ; +; HEX3[5] ; Missing drive strength ; +; HEX3[6] ; Missing drive strength ; +; HEX4[0] ; Missing drive strength ; +; HEX4[1] ; Missing drive strength ; +; HEX4[2] ; Missing drive strength ; +; HEX4[3] ; Missing drive strength ; +; HEX4[4] ; Missing drive strength ; +; HEX4[5] ; Missing drive strength ; +; HEX4[6] ; Missing drive strength ; +; HEX5[0] ; Missing drive strength ; +; HEX5[1] ; Missing drive strength ; +; HEX5[2] ; Missing drive strength ; +; HEX5[3] ; Missing drive strength ; +; HEX5[4] ; Missing drive strength ; +; HEX5[5] ; Missing drive strength ; +; HEX5[6] ; Missing drive strength ; +; HEX6[0] ; Missing drive strength ; +; HEX6[1] ; Missing drive strength ; +; HEX6[2] ; Missing drive strength ; +; HEX6[3] ; Missing drive strength ; +; HEX6[4] ; Missing drive strength ; +; HEX6[5] ; Missing drive strength ; +; HEX6[6] ; Missing drive strength ; +; HEX7[0] ; Missing drive strength ; +; HEX7[1] ; Missing drive strength ; +; HEX7[2] ; Missing drive strength ; +; HEX7[3] ; Missing drive strength ; +; HEX7[4] ; Missing drive strength ; +; HEX7[5] ; Missing drive strength ; +; HEX7[6] ; Missing drive strength ; +; LCD_RS ; Missing drive strength ; +; LCD_RW ; Missing drive strength ; +; LCD_data[0] ; Missing drive strength ; +; LCD_data[1] ; Missing drive strength ; +; LCD_data[2] ; Missing drive strength ; +; LCD_data[3] ; Missing drive strength ; +; LCD_data[4] ; Missing drive strength ; +; LCD_data[5] ; Missing drive strength ; +; LCD_data[6] ; Missing drive strength ; +; LCD_data[7] ; Missing drive strength ; +; LCD_EN ; Missing drive strength ; +; LCD_ON ; Missing drive strength ; +; LCD_BLON ; Missing drive strength ; ++-------------+--------------------------------------+ + + ++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Fitter Netlist Optimizations ; ++-----------------------------------------------------------------------------------------------------------------------+-----------------+------------------+---------------------+-----------+----------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-----------------------+ +; Node ; Action ; Operation ; Reason ; Node Port ; Node Port Name ; Destination Node ; Destination Port ; Destination Port Name ; ++-----------------------------------------------------------------------------------------------------------------------+-----------------+------------------+---------------------+-----------+----------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-----------------------+ +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|rdata[0] ; Packed Register ; Register Packing ; Timing optimization ; Q ; ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_w:the_nios_system_jtag_uart_scfifo_w|scfifo:wfifo|scfifo_jr21:auto_generated|a_dpfifo_q131:dpfifo|dpram_nl21:FIFOram|altsyncram_r1m1:altsyncram1|q_b[0] ; PORTBDATAOUT ; ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|rdata[1] ; Packed Register ; Register Packing ; Timing optimization ; Q ; ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_w:the_nios_system_jtag_uart_scfifo_w|scfifo:wfifo|scfifo_jr21:auto_generated|a_dpfifo_q131:dpfifo|dpram_nl21:FIFOram|altsyncram_r1m1:altsyncram1|q_b[1] ; PORTBDATAOUT ; ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|rdata[2] ; Packed Register ; Register Packing ; Timing optimization ; Q ; ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_w:the_nios_system_jtag_uart_scfifo_w|scfifo:wfifo|scfifo_jr21:auto_generated|a_dpfifo_q131:dpfifo|dpram_nl21:FIFOram|altsyncram_r1m1:altsyncram1|q_b[2] ; PORTBDATAOUT ; ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|rdata[3] ; Packed Register ; Register Packing ; Timing optimization ; Q ; ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_w:the_nios_system_jtag_uart_scfifo_w|scfifo:wfifo|scfifo_jr21:auto_generated|a_dpfifo_q131:dpfifo|dpram_nl21:FIFOram|altsyncram_r1m1:altsyncram1|q_b[3] ; PORTBDATAOUT ; ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|rdata[4] ; Packed Register ; Register Packing ; Timing optimization ; Q ; ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_w:the_nios_system_jtag_uart_scfifo_w|scfifo:wfifo|scfifo_jr21:auto_generated|a_dpfifo_q131:dpfifo|dpram_nl21:FIFOram|altsyncram_r1m1:altsyncram1|q_b[4] ; PORTBDATAOUT ; ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|rdata[5] ; Packed Register ; Register Packing ; Timing optimization ; Q ; ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_w:the_nios_system_jtag_uart_scfifo_w|scfifo:wfifo|scfifo_jr21:auto_generated|a_dpfifo_q131:dpfifo|dpram_nl21:FIFOram|altsyncram_r1m1:altsyncram1|q_b[5] ; PORTBDATAOUT ; ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|rdata[6] ; Packed Register ; Register Packing ; Timing optimization ; Q ; ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_w:the_nios_system_jtag_uart_scfifo_w|scfifo:wfifo|scfifo_jr21:auto_generated|a_dpfifo_q131:dpfifo|dpram_nl21:FIFOram|altsyncram_r1m1:altsyncram1|q_b[6] ; PORTBDATAOUT ; ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|rdata[7] ; Packed Register ; Register Packing ; Timing optimization ; Q ; ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_w:the_nios_system_jtag_uart_scfifo_w|scfifo:wfifo|scfifo_jr21:auto_generated|a_dpfifo_q131:dpfifo|dpram_nl21:FIFOram|altsyncram_r1m1:altsyncram1|q_b[7] ; PORTBDATAOUT ; ; ++-----------------------------------------------------------------------------------------------------------------------+-----------------+------------------+---------------------+-----------+----------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-----------------------+ + + ++--------------------------------------------------------------------------------------------------+ +; Ignored Assignments ; ++--------------+----------------+--------------+------------------+---------------+----------------+ +; Name ; Ignored Entity ; Ignored From ; Ignored To ; Ignored Value ; Ignored Source ; ++--------------+----------------+--------------+------------------+---------------+----------------+ +; Location ; ; ; AUD_ADCDAT ; PIN_D2 ; QSF Assignment ; +; Location ; ; ; AUD_ADCLRCK ; PIN_C2 ; QSF Assignment ; +; Location ; ; ; AUD_BCLK ; PIN_F2 ; QSF Assignment ; +; Location ; ; ; AUD_DACDAT ; PIN_D1 ; QSF Assignment ; +; Location ; ; ; AUD_DACLRCK ; PIN_E3 ; QSF Assignment ; +; Location ; ; ; AUD_XCK ; PIN_E1 ; QSF Assignment ; +; Location ; ; ; CLOCK2_50 ; PIN_AG14 ; QSF Assignment ; +; Location ; ; ; CLOCK3_50 ; PIN_AG15 ; QSF Assignment ; +; Location ; ; ; DRAM_ADDR[0] ; PIN_R6 ; QSF Assignment ; +; Location ; ; ; DRAM_ADDR[10] ; PIN_R5 ; QSF Assignment ; +; Location ; ; ; DRAM_ADDR[11] ; PIN_AA5 ; QSF Assignment ; +; Location ; ; ; DRAM_ADDR[12] ; PIN_Y7 ; QSF Assignment ; +; Location ; ; ; DRAM_ADDR[1] ; PIN_V8 ; QSF Assignment ; +; Location ; ; ; DRAM_ADDR[2] ; PIN_U8 ; QSF Assignment ; +; Location ; ; ; DRAM_ADDR[3] ; PIN_P1 ; QSF Assignment ; +; Location ; ; ; DRAM_ADDR[4] ; PIN_V5 ; QSF Assignment ; +; Location ; ; ; DRAM_ADDR[5] ; PIN_W8 ; QSF Assignment ; +; Location ; ; ; DRAM_ADDR[6] ; PIN_W7 ; QSF Assignment ; +; Location ; ; ; DRAM_ADDR[7] ; PIN_AA7 ; QSF Assignment ; +; Location ; ; ; DRAM_ADDR[8] ; PIN_Y5 ; QSF Assignment ; +; Location ; ; ; DRAM_ADDR[9] ; PIN_Y6 ; QSF Assignment ; +; Location ; ; ; DRAM_BA[0] ; PIN_U7 ; QSF Assignment ; +; Location ; ; ; DRAM_BA[1] ; PIN_R4 ; QSF Assignment ; +; Location ; ; ; DRAM_CAS_N ; PIN_V7 ; QSF Assignment ; +; Location ; ; ; DRAM_CKE ; PIN_AA6 ; QSF Assignment ; +; Location ; ; ; DRAM_CLK ; PIN_AE5 ; QSF Assignment ; +; Location ; ; ; DRAM_CS_N ; PIN_T4 ; QSF Assignment ; +; Location ; ; ; DRAM_DQM[0] ; PIN_U2 ; QSF Assignment ; +; Location ; ; ; DRAM_DQM[1] ; PIN_W4 ; QSF Assignment ; +; Location ; ; ; DRAM_DQM[2] ; PIN_K8 ; QSF Assignment ; +; Location ; ; ; DRAM_DQM[3] ; PIN_N8 ; QSF Assignment ; +; Location ; ; ; DRAM_DQ[0] ; PIN_W3 ; QSF Assignment ; +; Location ; ; ; DRAM_DQ[10] ; PIN_AB1 ; QSF Assignment ; +; Location ; ; ; DRAM_DQ[11] ; PIN_AA3 ; QSF Assignment ; +; Location ; ; ; DRAM_DQ[12] ; PIN_AB2 ; QSF Assignment ; +; Location ; ; ; DRAM_DQ[13] ; PIN_AC1 ; QSF Assignment ; +; Location ; ; ; DRAM_DQ[14] ; PIN_AB3 ; QSF Assignment ; +; Location ; ; ; DRAM_DQ[15] ; PIN_AC2 ; QSF Assignment ; +; Location ; ; ; DRAM_DQ[16] ; PIN_M8 ; QSF Assignment ; +; Location ; ; ; DRAM_DQ[17] ; PIN_L8 ; QSF Assignment ; +; Location ; ; ; DRAM_DQ[18] ; PIN_P2 ; QSF Assignment ; +; Location ; ; ; DRAM_DQ[19] ; PIN_N3 ; QSF Assignment ; +; Location ; ; ; DRAM_DQ[1] ; PIN_W2 ; QSF Assignment ; +; Location ; ; ; DRAM_DQ[20] ; PIN_N4 ; QSF Assignment ; +; Location ; ; ; DRAM_DQ[21] ; PIN_M4 ; QSF Assignment ; +; Location ; ; ; DRAM_DQ[22] ; PIN_M7 ; QSF Assignment ; +; Location ; ; ; DRAM_DQ[23] ; PIN_L7 ; QSF Assignment ; +; Location ; ; ; DRAM_DQ[24] ; PIN_U5 ; QSF Assignment ; +; Location ; ; ; DRAM_DQ[25] ; PIN_R7 ; QSF Assignment ; +; Location ; ; ; DRAM_DQ[26] ; PIN_R1 ; QSF Assignment ; +; Location ; ; ; DRAM_DQ[27] ; PIN_R2 ; QSF Assignment ; +; Location ; ; ; DRAM_DQ[28] ; PIN_R3 ; QSF Assignment ; +; Location ; ; ; DRAM_DQ[29] ; PIN_T3 ; QSF Assignment ; +; Location ; ; ; DRAM_DQ[2] ; PIN_V4 ; QSF Assignment ; +; Location ; ; ; DRAM_DQ[30] ; PIN_U4 ; QSF Assignment ; +; Location ; ; ; DRAM_DQ[31] ; PIN_U1 ; QSF Assignment ; +; Location ; ; ; DRAM_DQ[3] ; PIN_W1 ; QSF Assignment ; +; Location ; ; ; DRAM_DQ[4] ; PIN_V3 ; QSF Assignment ; +; Location ; ; ; DRAM_DQ[5] ; PIN_V2 ; QSF Assignment ; +; Location ; ; ; DRAM_DQ[6] ; PIN_V1 ; QSF Assignment ; +; Location ; ; ; DRAM_DQ[7] ; PIN_U3 ; QSF Assignment ; +; Location ; ; ; DRAM_DQ[8] ; PIN_Y3 ; QSF Assignment ; +; Location ; ; ; DRAM_DQ[9] ; PIN_Y4 ; QSF Assignment ; +; Location ; ; ; DRAM_RAS_N ; PIN_U6 ; QSF Assignment ; +; Location ; ; ; DRAM_WE_N ; PIN_V6 ; QSF Assignment ; +; Location ; ; ; EEP_I2C_SCLK ; PIN_D14 ; QSF Assignment ; +; Location ; ; ; EEP_I2C_SDAT ; PIN_E14 ; QSF Assignment ; +; Location ; ; ; ENET0_GTX_CLK ; PIN_A17 ; QSF Assignment ; +; Location ; ; ; ENET0_INT_N ; PIN_A21 ; QSF Assignment ; +; Location ; ; ; ENET0_LINK100 ; PIN_C14 ; QSF Assignment ; +; Location ; ; ; ENET0_MDC ; PIN_C20 ; QSF Assignment ; +; Location ; ; ; ENET0_MDIO ; PIN_B21 ; QSF Assignment ; +; Location ; ; ; ENET0_RST_N ; PIN_C19 ; QSF Assignment ; +; Location ; ; ; ENET0_RX_CLK ; PIN_A15 ; QSF Assignment ; +; Location ; ; ; ENET0_RX_COL ; PIN_E15 ; QSF Assignment ; +; Location ; ; ; ENET0_RX_CRS ; PIN_D15 ; QSF Assignment ; +; Location ; ; ; ENET0_RX_DATA[0] ; PIN_C16 ; QSF Assignment ; +; Location ; ; ; ENET0_RX_DATA[1] ; PIN_D16 ; QSF Assignment ; +; Location ; ; ; ENET0_RX_DATA[2] ; PIN_D17 ; QSF Assignment ; +; Location ; ; ; ENET0_RX_DATA[3] ; PIN_C15 ; QSF Assignment ; +; Location ; ; ; ENET0_RX_DV ; PIN_C17 ; QSF Assignment ; +; Location ; ; ; ENET0_RX_ER ; PIN_D18 ; QSF Assignment ; +; Location ; ; ; ENET0_TX_CLK ; PIN_B17 ; QSF Assignment ; +; Location ; ; ; ENET0_TX_DATA[0] ; PIN_C18 ; QSF Assignment ; +; Location ; ; ; ENET0_TX_DATA[1] ; PIN_D19 ; QSF Assignment ; +; Location ; ; ; ENET0_TX_DATA[2] ; PIN_A19 ; QSF Assignment ; +; Location ; ; ; ENET0_TX_DATA[3] ; PIN_B19 ; QSF Assignment ; +; Location ; ; ; ENET0_TX_EN ; PIN_A18 ; QSF Assignment ; +; Location ; ; ; ENET0_TX_ER ; PIN_B18 ; QSF Assignment ; +; Location ; ; ; ENET1_GTX_CLK ; PIN_C23 ; QSF Assignment ; +; Location ; ; ; ENET1_INT_N ; PIN_D24 ; QSF Assignment ; +; Location ; ; ; ENET1_LINK100 ; PIN_D13 ; QSF Assignment ; +; Location ; ; ; ENET1_MDC ; PIN_D23 ; QSF Assignment ; +; Location ; ; ; ENET1_MDIO ; PIN_D25 ; QSF Assignment ; +; Location ; ; ; ENET1_RST_N ; PIN_D22 ; QSF Assignment ; +; Location ; ; ; ENET1_RX_CLK ; PIN_B15 ; QSF Assignment ; +; Location ; ; ; ENET1_RX_COL ; PIN_B22 ; QSF Assignment ; +; Location ; ; ; ENET1_RX_CRS ; PIN_D20 ; QSF Assignment ; +; Location ; ; ; ENET1_RX_DATA[0] ; PIN_B23 ; QSF Assignment ; +; Location ; ; ; ENET1_RX_DATA[1] ; PIN_C21 ; QSF Assignment ; +; Location ; ; ; ENET1_RX_DATA[2] ; PIN_A23 ; QSF Assignment ; +; Location ; ; ; ENET1_RX_DATA[3] ; PIN_D21 ; QSF Assignment ; +; Location ; ; ; ENET1_RX_DV ; PIN_A22 ; QSF Assignment ; +; Location ; ; ; ENET1_RX_ER ; PIN_C24 ; QSF Assignment ; +; Location ; ; ; ENET1_TX_CLK ; PIN_C22 ; QSF Assignment ; +; Location ; ; ; ENET1_TX_DATA[0] ; PIN_C25 ; QSF Assignment ; +; Location ; ; ; ENET1_TX_DATA[1] ; PIN_A26 ; QSF Assignment ; +; Location ; ; ; ENET1_TX_DATA[2] ; PIN_B26 ; QSF Assignment ; +; Location ; ; ; ENET1_TX_DATA[3] ; PIN_C26 ; QSF Assignment ; +; Location ; ; ; ENET1_TX_EN ; PIN_B25 ; QSF Assignment ; +; Location ; ; ; ENET1_TX_ER ; PIN_A25 ; QSF Assignment ; +; Location ; ; ; ENETCLK_25 ; PIN_A14 ; QSF Assignment ; +; Location ; ; ; EX_IO[0] ; PIN_J10 ; QSF Assignment ; +; Location ; ; ; EX_IO[1] ; PIN_J14 ; QSF Assignment ; +; Location ; ; ; EX_IO[2] ; PIN_H13 ; QSF Assignment ; +; Location ; ; ; EX_IO[3] ; PIN_H14 ; QSF Assignment ; +; Location ; ; ; EX_IO[4] ; PIN_F14 ; QSF Assignment ; +; Location ; ; ; EX_IO[5] ; PIN_E10 ; QSF Assignment ; +; Location ; ; ; EX_IO[6] ; PIN_D9 ; QSF Assignment ; +; Location ; ; ; FL_ADDR[0] ; PIN_AG12 ; QSF Assignment ; +; Location ; ; ; FL_ADDR[10] ; PIN_AE9 ; QSF Assignment ; +; Location ; ; ; FL_ADDR[11] ; PIN_AF9 ; QSF Assignment ; +; Location ; ; ; FL_ADDR[12] ; PIN_AA10 ; QSF Assignment ; +; Location ; ; ; FL_ADDR[13] ; PIN_AD8 ; QSF Assignment ; +; Location ; ; ; FL_ADDR[14] ; PIN_AC8 ; QSF Assignment ; +; Location ; ; ; FL_ADDR[15] ; PIN_Y10 ; QSF Assignment ; +; Location ; ; ; FL_ADDR[16] ; PIN_AA8 ; QSF Assignment ; +; Location ; ; ; FL_ADDR[17] ; PIN_AH12 ; QSF Assignment ; +; Location ; ; ; FL_ADDR[18] ; PIN_AC12 ; QSF Assignment ; +; Location ; ; ; FL_ADDR[19] ; PIN_AD12 ; QSF Assignment ; +; Location ; ; ; FL_ADDR[1] ; PIN_AH7 ; QSF Assignment ; +; Location ; ; ; FL_ADDR[20] ; PIN_AE10 ; QSF Assignment ; +; Location ; ; ; FL_ADDR[21] ; PIN_AD10 ; QSF Assignment ; +; Location ; ; ; FL_ADDR[22] ; PIN_AD11 ; QSF Assignment ; +; Location ; ; ; FL_ADDR[2] ; PIN_Y13 ; QSF Assignment ; +; Location ; ; ; FL_ADDR[3] ; PIN_Y14 ; QSF Assignment ; +; Location ; ; ; FL_ADDR[4] ; PIN_Y12 ; QSF Assignment ; +; Location ; ; ; FL_ADDR[5] ; PIN_AA13 ; QSF Assignment ; +; Location ; ; ; FL_ADDR[6] ; PIN_AA12 ; QSF Assignment ; +; Location ; ; ; FL_ADDR[7] ; PIN_AB13 ; QSF Assignment ; +; Location ; ; ; FL_ADDR[8] ; PIN_AB12 ; QSF Assignment ; +; Location ; ; ; FL_ADDR[9] ; PIN_AB10 ; QSF Assignment ; +; Location ; ; ; FL_CE_N ; PIN_AG7 ; QSF Assignment ; +; Location ; ; ; FL_DQ[0] ; PIN_AH8 ; QSF Assignment ; +; Location ; ; ; FL_DQ[1] ; PIN_AF10 ; QSF Assignment ; +; Location ; ; ; FL_DQ[2] ; PIN_AG10 ; QSF Assignment ; +; Location ; ; ; FL_DQ[3] ; PIN_AH10 ; QSF Assignment ; +; Location ; ; ; FL_DQ[4] ; PIN_AF11 ; QSF Assignment ; +; Location ; ; ; FL_DQ[5] ; PIN_AG11 ; QSF Assignment ; +; Location ; ; ; FL_DQ[6] ; PIN_AH11 ; QSF Assignment ; +; Location ; ; ; FL_DQ[7] ; PIN_AF12 ; QSF Assignment ; +; Location ; ; ; FL_OE_N ; PIN_AG8 ; QSF Assignment ; +; Location ; ; ; FL_RST_N ; PIN_AE11 ; QSF Assignment ; +; Location ; ; ; FL_RY ; PIN_Y1 ; QSF Assignment ; +; Location ; ; ; FL_WE_N ; PIN_AC10 ; QSF Assignment ; +; Location ; ; ; FL_WP_N ; PIN_AE12 ; QSF Assignment ; +; Location ; ; ; GPIO[0] ; PIN_AB22 ; QSF Assignment ; +; Location ; ; ; GPIO[10] ; PIN_AC19 ; QSF Assignment ; +; Location ; ; ; GPIO[11] ; PIN_AF16 ; QSF Assignment ; +; Location ; ; ; GPIO[12] ; PIN_AD19 ; QSF Assignment ; +; Location ; ; ; GPIO[13] ; PIN_AF15 ; QSF Assignment ; +; Location ; ; ; GPIO[14] ; PIN_AF24 ; QSF Assignment ; +; Location ; ; ; GPIO[15] ; PIN_AE21 ; QSF Assignment ; +; Location ; ; ; GPIO[16] ; PIN_AF25 ; QSF Assignment ; +; Location ; ; ; GPIO[17] ; PIN_AC22 ; QSF Assignment ; +; Location ; ; ; GPIO[18] ; PIN_AE22 ; QSF Assignment ; +; Location ; ; ; GPIO[19] ; PIN_AF21 ; QSF Assignment ; +; Location ; ; ; GPIO[1] ; PIN_AC15 ; QSF Assignment ; +; Location ; ; ; GPIO[20] ; PIN_AF22 ; QSF Assignment ; +; Location ; ; ; GPIO[21] ; PIN_AD22 ; QSF Assignment ; +; Location ; ; ; GPIO[22] ; PIN_AG25 ; QSF Assignment ; +; Location ; ; ; GPIO[23] ; PIN_AD25 ; QSF Assignment ; +; Location ; ; ; GPIO[24] ; PIN_AH25 ; QSF Assignment ; +; Location ; ; ; GPIO[25] ; PIN_AE25 ; QSF Assignment ; +; Location ; ; ; GPIO[26] ; PIN_AG22 ; QSF Assignment ; +; Location ; ; ; GPIO[27] ; PIN_AE24 ; QSF Assignment ; +; Location ; ; ; GPIO[28] ; PIN_AH22 ; QSF Assignment ; +; Location ; ; ; GPIO[29] ; PIN_AF26 ; QSF Assignment ; +; Location ; ; ; GPIO[2] ; PIN_AB21 ; QSF Assignment ; +; Location ; ; ; GPIO[30] ; PIN_AE20 ; QSF Assignment ; +; Location ; ; ; GPIO[31] ; PIN_AG23 ; QSF Assignment ; +; Location ; ; ; GPIO[32] ; PIN_AF20 ; QSF Assignment ; +; Location ; ; ; GPIO[33] ; PIN_AH26 ; QSF Assignment ; +; Location ; ; ; GPIO[34] ; PIN_AH23 ; QSF Assignment ; +; Location ; ; ; GPIO[35] ; PIN_AG26 ; QSF Assignment ; +; Location ; ; ; GPIO[3] ; PIN_Y17 ; QSF Assignment ; +; Location ; ; ; GPIO[4] ; PIN_AC21 ; QSF Assignment ; +; Location ; ; ; GPIO[5] ; PIN_Y16 ; QSF Assignment ; +; Location ; ; ; GPIO[6] ; PIN_AD21 ; QSF Assignment ; +; Location ; ; ; GPIO[7] ; PIN_AE16 ; QSF Assignment ; +; Location ; ; ; GPIO[8] ; PIN_AD15 ; QSF Assignment ; +; Location ; ; ; GPIO[9] ; PIN_AE15 ; QSF Assignment ; +; Location ; ; ; HSMC_CLKIN0 ; PIN_AH15 ; QSF Assignment ; +; Location ; ; ; HSMC_CLKIN_N1 ; PIN_J28 ; QSF Assignment ; +; Location ; ; ; HSMC_CLKIN_N2 ; PIN_Y28 ; QSF Assignment ; +; Location ; ; ; HSMC_CLKIN_P1 ; PIN_J27 ; QSF Assignment ; +; Location ; ; ; HSMC_CLKIN_P2 ; PIN_Y27 ; QSF Assignment ; +; Location ; ; ; HSMC_CLKOUT0 ; PIN_AD28 ; QSF Assignment ; +; Location ; ; ; HSMC_CLKOUT_N1 ; PIN_G24 ; QSF Assignment ; +; Location ; ; ; HSMC_CLKOUT_N2 ; PIN_V24 ; QSF Assignment ; +; Location ; ; ; HSMC_CLKOUT_P1 ; PIN_G23 ; QSF Assignment ; +; Location ; ; ; HSMC_CLKOUT_P2 ; PIN_V23 ; QSF Assignment ; +; Location ; ; ; HSMC_D[0] ; PIN_AE26 ; QSF Assignment ; +; Location ; ; ; HSMC_D[1] ; PIN_AE28 ; QSF Assignment ; +; Location ; ; ; HSMC_D[2] ; PIN_AE27 ; QSF Assignment ; +; Location ; ; ; HSMC_D[3] ; PIN_AF27 ; QSF Assignment ; +; Location ; ; ; HSMC_RX_D_N[0] ; PIN_F25 ; QSF Assignment ; +; Location ; ; ; HSMC_RX_D_N[10] ; PIN_U26 ; QSF Assignment ; +; Location ; ; ; HSMC_RX_D_N[11] ; PIN_L22 ; QSF Assignment ; +; Location ; ; ; HSMC_RX_D_N[12] ; PIN_N26 ; QSF Assignment ; +; Location ; ; ; HSMC_RX_D_N[13] ; PIN_P26 ; QSF Assignment ; +; Location ; ; ; HSMC_RX_D_N[14] ; PIN_R21 ; QSF Assignment ; +; Location ; ; ; HSMC_RX_D_N[15] ; PIN_R23 ; QSF Assignment ; +; Location ; ; ; HSMC_RX_D_N[16] ; PIN_T22 ; QSF Assignment ; +; Location ; ; ; HSMC_RX_D_N[1] ; PIN_C27 ; QSF Assignment ; +; Location ; ; ; HSMC_RX_D_N[2] ; PIN_E26 ; QSF Assignment ; +; Location ; ; ; HSMC_RX_D_N[3] ; PIN_G26 ; QSF Assignment ; +; Location ; ; ; HSMC_RX_D_N[4] ; PIN_H26 ; QSF Assignment ; +; Location ; ; ; HSMC_RX_D_N[5] ; PIN_K26 ; QSF Assignment ; +; Location ; ; ; HSMC_RX_D_N[6] ; PIN_L24 ; QSF Assignment ; +; Location ; ; ; HSMC_RX_D_N[7] ; PIN_M26 ; QSF Assignment ; +; Location ; ; ; HSMC_RX_D_N[8] ; PIN_R26 ; QSF Assignment ; +; Location ; ; ; HSMC_RX_D_N[9] ; PIN_T26 ; QSF Assignment ; +; Location ; ; ; HSMC_RX_D_P[0] ; PIN_F24 ; QSF Assignment ; +; Location ; ; ; HSMC_RX_D_P[10] ; PIN_U25 ; QSF Assignment ; +; Location ; ; ; HSMC_RX_D_P[11] ; PIN_L21 ; QSF Assignment ; +; Location ; ; ; HSMC_RX_D_P[12] ; PIN_N25 ; QSF Assignment ; +; Location ; ; ; HSMC_RX_D_P[13] ; PIN_P25 ; QSF Assignment ; +; Location ; ; ; HSMC_RX_D_P[14] ; PIN_P21 ; QSF Assignment ; +; Location ; ; ; HSMC_RX_D_P[15] ; PIN_R22 ; QSF Assignment ; +; Location ; ; ; HSMC_RX_D_P[16] ; PIN_T21 ; QSF Assignment ; +; Location ; ; ; HSMC_RX_D_P[1] ; PIN_D26 ; QSF Assignment ; +; Location ; ; ; HSMC_RX_D_P[2] ; PIN_F26 ; QSF Assignment ; +; Location ; ; ; HSMC_RX_D_P[3] ; PIN_G25 ; QSF Assignment ; +; Location ; ; ; HSMC_RX_D_P[4] ; PIN_H25 ; QSF Assignment ; +; Location ; ; ; HSMC_RX_D_P[5] ; PIN_K25 ; QSF Assignment ; +; Location ; ; ; HSMC_RX_D_P[6] ; PIN_L23 ; QSF Assignment ; +; Location ; ; ; HSMC_RX_D_P[7] ; PIN_M25 ; QSF Assignment ; +; Location ; ; ; HSMC_RX_D_P[8] ; PIN_R25 ; QSF Assignment ; +; Location ; ; ; HSMC_RX_D_P[9] ; PIN_T25 ; QSF Assignment ; +; Location ; ; ; HSMC_TX_D_N[0] ; PIN_D28 ; QSF Assignment ; +; Location ; ; ; HSMC_TX_D_N[10] ; PIN_J26 ; QSF Assignment ; +; Location ; ; ; HSMC_TX_D_N[11] ; PIN_L28 ; QSF Assignment ; +; Location ; ; ; HSMC_TX_D_N[12] ; PIN_V26 ; QSF Assignment ; +; Location ; ; ; HSMC_TX_D_N[13] ; PIN_R28 ; QSF Assignment ; +; Location ; ; ; HSMC_TX_D_N[14] ; PIN_U28 ; QSF Assignment ; +; Location ; ; ; HSMC_TX_D_N[15] ; PIN_V28 ; QSF Assignment ; +; Location ; ; ; HSMC_TX_D_N[16] ; PIN_V22 ; QSF Assignment ; +; Location ; ; ; HSMC_TX_D_N[1] ; PIN_E28 ; QSF Assignment ; +; Location ; ; ; HSMC_TX_D_N[2] ; PIN_F28 ; QSF Assignment ; +; Location ; ; ; HSMC_TX_D_N[3] ; PIN_G28 ; QSF Assignment ; +; Location ; ; ; HSMC_TX_D_N[4] ; PIN_K28 ; QSF Assignment ; +; Location ; ; ; HSMC_TX_D_N[5] ; PIN_M28 ; QSF Assignment ; +; Location ; ; ; HSMC_TX_D_N[6] ; PIN_K22 ; QSF Assignment ; +; Location ; ; ; HSMC_TX_D_N[7] ; PIN_H24 ; QSF Assignment ; +; Location ; ; ; HSMC_TX_D_N[8] ; PIN_J24 ; QSF Assignment ; +; Location ; ; ; HSMC_TX_D_N[9] ; PIN_P28 ; QSF Assignment ; +; Location ; ; ; HSMC_TX_D_P[0] ; PIN_D27 ; QSF Assignment ; +; Location ; ; ; HSMC_TX_D_P[10] ; PIN_J25 ; QSF Assignment ; +; Location ; ; ; HSMC_TX_D_P[11] ; PIN_L27 ; QSF Assignment ; +; Location ; ; ; HSMC_TX_D_P[12] ; PIN_V25 ; QSF Assignment ; +; Location ; ; ; HSMC_TX_D_P[13] ; PIN_R27 ; QSF Assignment ; +; Location ; ; ; HSMC_TX_D_P[14] ; PIN_U27 ; QSF Assignment ; +; Location ; ; ; HSMC_TX_D_P[15] ; PIN_V27 ; QSF Assignment ; +; Location ; ; ; HSMC_TX_D_P[16] ; PIN_U22 ; QSF Assignment ; +; Location ; ; ; HSMC_TX_D_P[1] ; PIN_E27 ; QSF Assignment ; +; Location ; ; ; HSMC_TX_D_P[2] ; PIN_F27 ; QSF Assignment ; +; Location ; ; ; HSMC_TX_D_P[3] ; PIN_G27 ; QSF Assignment ; +; Location ; ; ; HSMC_TX_D_P[4] ; PIN_K27 ; QSF Assignment ; +; Location ; ; ; HSMC_TX_D_P[5] ; PIN_M27 ; QSF Assignment ; +; Location ; ; ; HSMC_TX_D_P[6] ; PIN_K21 ; QSF Assignment ; +; Location ; ; ; HSMC_TX_D_P[7] ; PIN_H23 ; QSF Assignment ; +; Location ; ; ; HSMC_TX_D_P[8] ; PIN_J23 ; QSF Assignment ; +; Location ; ; ; HSMC_TX_D_P[9] ; PIN_P27 ; QSF Assignment ; +; Location ; ; ; I2C_SCLK ; PIN_B7 ; QSF Assignment ; +; Location ; ; ; I2C_SDAT ; PIN_A8 ; QSF Assignment ; +; Location ; ; ; IRDA_RXD ; PIN_Y15 ; QSF Assignment ; +; Location ; ; ; LEDG[8] ; PIN_F17 ; QSF Assignment ; +; Location ; ; ; OTG_ADDR[0] ; PIN_H7 ; QSF Assignment ; +; Location ; ; ; OTG_ADDR[1] ; PIN_C3 ; QSF Assignment ; +; Location ; ; ; OTG_CS_N ; PIN_A3 ; QSF Assignment ; +; Location ; ; ; OTG_DACK_N[0] ; PIN_C4 ; QSF Assignment ; +; Location ; ; ; OTG_DACK_N[1] ; PIN_D4 ; QSF Assignment ; +; Location ; ; ; OTG_DATA[0] ; PIN_J6 ; QSF Assignment ; +; Location ; ; ; OTG_DATA[10] ; PIN_G1 ; QSF Assignment ; +; Location ; ; ; OTG_DATA[11] ; PIN_G2 ; QSF Assignment ; +; Location ; ; ; OTG_DATA[12] ; PIN_G3 ; QSF Assignment ; +; Location ; ; ; OTG_DATA[13] ; PIN_F1 ; QSF Assignment ; +; Location ; ; ; OTG_DATA[14] ; PIN_F3 ; QSF Assignment ; +; Location ; ; ; OTG_DATA[15] ; PIN_G4 ; QSF Assignment ; +; Location ; ; ; OTG_DATA[1] ; PIN_K4 ; QSF Assignment ; +; Location ; ; ; OTG_DATA[2] ; PIN_J5 ; QSF Assignment ; +; Location ; ; ; OTG_DATA[3] ; PIN_K3 ; QSF Assignment ; +; Location ; ; ; OTG_DATA[4] ; PIN_J4 ; QSF Assignment ; +; Location ; ; ; OTG_DATA[5] ; PIN_J3 ; QSF Assignment ; +; Location ; ; ; OTG_DATA[6] ; PIN_J7 ; QSF Assignment ; +; Location ; ; ; OTG_DATA[7] ; PIN_H6 ; QSF Assignment ; +; Location ; ; ; OTG_DATA[8] ; PIN_H3 ; QSF Assignment ; +; Location ; ; ; OTG_DATA[9] ; PIN_H4 ; QSF Assignment ; +; Location ; ; ; OTG_DREQ[0] ; PIN_J1 ; QSF Assignment ; +; Location ; ; ; OTG_DREQ[1] ; PIN_B4 ; QSF Assignment ; +; Location ; ; ; OTG_FSPEED ; PIN_C6 ; QSF Assignment ; +; Location ; ; ; OTG_INT[0] ; PIN_A6 ; QSF Assignment ; +; Location ; ; ; OTG_INT[1] ; PIN_D5 ; QSF Assignment ; +; Location ; ; ; OTG_LSPEED ; PIN_B6 ; QSF Assignment ; +; Location ; ; ; OTG_RD_N ; PIN_B3 ; QSF Assignment ; +; Location ; ; ; OTG_RST_N ; PIN_C5 ; QSF Assignment ; +; Location ; ; ; OTG_WR_N ; PIN_A4 ; QSF Assignment ; +; Location ; ; ; PS2_CLK ; PIN_G6 ; QSF Assignment ; +; Location ; ; ; PS2_CLK2 ; PIN_G5 ; QSF Assignment ; +; Location ; ; ; PS2_DAT ; PIN_H5 ; QSF Assignment ; +; Location ; ; ; PS2_DAT2 ; PIN_F5 ; QSF Assignment ; +; Location ; ; ; SD_CLK ; PIN_AE13 ; QSF Assignment ; +; Location ; ; ; SD_CMD ; PIN_AD14 ; QSF Assignment ; +; Location ; ; ; SD_DAT[0] ; PIN_AE14 ; QSF Assignment ; +; Location ; ; ; SD_DAT[1] ; PIN_AF13 ; QSF Assignment ; +; Location ; ; ; SD_DAT[2] ; PIN_AB14 ; QSF Assignment ; +; Location ; ; ; SD_DAT[3] ; PIN_AC14 ; QSF Assignment ; +; Location ; ; ; SD_WP_N ; PIN_AF14 ; QSF Assignment ; +; Location ; ; ; SMA_CLKIN ; PIN_AH14 ; QSF Assignment ; +; Location ; ; ; SMA_CLKOUT ; PIN_AE23 ; QSF Assignment ; +; Location ; ; ; SRAM_ADDR[0] ; PIN_AB7 ; QSF Assignment ; +; Location ; ; ; SRAM_ADDR[10] ; PIN_AF2 ; QSF Assignment ; +; Location ; ; ; SRAM_ADDR[11] ; PIN_AD3 ; QSF Assignment ; +; Location ; ; ; SRAM_ADDR[12] ; PIN_AB4 ; QSF Assignment ; +; Location ; ; ; SRAM_ADDR[13] ; PIN_AC3 ; QSF Assignment ; +; Location ; ; ; SRAM_ADDR[14] ; PIN_AA4 ; QSF Assignment ; +; Location ; ; ; SRAM_ADDR[15] ; PIN_AB11 ; QSF Assignment ; +; Location ; ; ; SRAM_ADDR[16] ; PIN_AC11 ; QSF Assignment ; +; Location ; ; ; SRAM_ADDR[17] ; PIN_AB9 ; QSF Assignment ; +; Location ; ; ; SRAM_ADDR[18] ; PIN_AB8 ; QSF Assignment ; +; Location ; ; ; SRAM_ADDR[19] ; PIN_T8 ; QSF Assignment ; +; Location ; ; ; SRAM_ADDR[1] ; PIN_AD7 ; QSF Assignment ; +; Location ; ; ; SRAM_ADDR[2] ; PIN_AE7 ; QSF Assignment ; +; Location ; ; ; SRAM_ADDR[3] ; PIN_AC7 ; QSF Assignment ; +; Location ; ; ; SRAM_ADDR[4] ; PIN_AB6 ; QSF Assignment ; +; Location ; ; ; SRAM_ADDR[5] ; PIN_AE6 ; QSF Assignment ; +; Location ; ; ; SRAM_ADDR[6] ; PIN_AB5 ; QSF Assignment ; +; Location ; ; ; SRAM_ADDR[7] ; PIN_AC5 ; QSF Assignment ; +; Location ; ; ; SRAM_ADDR[8] ; PIN_AF5 ; QSF Assignment ; +; Location ; ; ; SRAM_ADDR[9] ; PIN_T7 ; QSF Assignment ; +; Location ; ; ; SRAM_CE_N ; PIN_AF8 ; QSF Assignment ; +; Location ; ; ; SRAM_DQ[0] ; PIN_AH3 ; QSF Assignment ; +; Location ; ; ; SRAM_DQ[10] ; PIN_AE2 ; QSF Assignment ; +; Location ; ; ; SRAM_DQ[11] ; PIN_AE1 ; QSF Assignment ; +; Location ; ; ; SRAM_DQ[12] ; PIN_AE3 ; QSF Assignment ; +; Location ; ; ; SRAM_DQ[13] ; PIN_AE4 ; QSF Assignment ; +; Location ; ; ; SRAM_DQ[14] ; PIN_AF3 ; QSF Assignment ; +; Location ; ; ; SRAM_DQ[15] ; PIN_AG3 ; QSF Assignment ; +; Location ; ; ; SRAM_DQ[1] ; PIN_AF4 ; QSF Assignment ; +; Location ; ; ; SRAM_DQ[2] ; PIN_AG4 ; QSF Assignment ; +; Location ; ; ; SRAM_DQ[3] ; PIN_AH4 ; QSF Assignment ; +; Location ; ; ; SRAM_DQ[4] ; PIN_AF6 ; QSF Assignment ; +; Location ; ; ; SRAM_DQ[5] ; PIN_AG6 ; QSF Assignment ; +; Location ; ; ; SRAM_DQ[6] ; PIN_AH6 ; QSF Assignment ; +; Location ; ; ; SRAM_DQ[7] ; PIN_AF7 ; QSF Assignment ; +; Location ; ; ; SRAM_DQ[8] ; PIN_AD1 ; QSF Assignment ; +; Location ; ; ; SRAM_DQ[9] ; PIN_AD2 ; QSF Assignment ; +; Location ; ; ; SRAM_LB_N ; PIN_AD4 ; QSF Assignment ; +; Location ; ; ; SRAM_OE_N ; PIN_AD5 ; QSF Assignment ; +; Location ; ; ; SRAM_UB_N ; PIN_AC4 ; QSF Assignment ; +; Location ; ; ; SRAM_WE_N ; PIN_AE8 ; QSF Assignment ; +; Location ; ; ; TD_CLK27 ; PIN_B14 ; QSF Assignment ; +; Location ; ; ; TD_DATA[0] ; PIN_E8 ; QSF Assignment ; +; Location ; ; ; TD_DATA[1] ; PIN_A7 ; QSF Assignment ; +; Location ; ; ; TD_DATA[2] ; PIN_D8 ; QSF Assignment ; +; Location ; ; ; TD_DATA[3] ; PIN_C7 ; QSF Assignment ; +; Location ; ; ; TD_DATA[4] ; PIN_D7 ; QSF Assignment ; +; Location ; ; ; TD_DATA[5] ; PIN_D6 ; QSF Assignment ; +; Location ; ; ; TD_DATA[6] ; PIN_E7 ; QSF Assignment ; +; Location ; ; ; TD_DATA[7] ; PIN_F7 ; QSF Assignment ; +; Location ; ; ; TD_HS ; PIN_E5 ; QSF Assignment ; +; Location ; ; ; TD_RESET_N ; PIN_G7 ; QSF Assignment ; +; Location ; ; ; TD_VS ; PIN_E4 ; QSF Assignment ; +; Location ; ; ; UART_CTS ; PIN_G14 ; QSF Assignment ; +; Location ; ; ; UART_RTS ; PIN_J13 ; QSF Assignment ; +; Location ; ; ; UART_RXD ; PIN_G12 ; QSF Assignment ; +; Location ; ; ; UART_TXD ; PIN_G9 ; QSF Assignment ; +; Location ; ; ; VGA_BLANK_N ; PIN_F11 ; QSF Assignment ; +; Location ; ; ; VGA_B[0] ; PIN_B10 ; QSF Assignment ; +; Location ; ; ; VGA_B[1] ; PIN_A10 ; QSF Assignment ; +; Location ; ; ; VGA_B[2] ; PIN_C11 ; QSF Assignment ; +; Location ; ; ; VGA_B[3] ; PIN_B11 ; QSF Assignment ; +; Location ; ; ; VGA_B[4] ; PIN_A11 ; QSF Assignment ; +; Location ; ; ; VGA_B[5] ; PIN_C12 ; QSF Assignment ; +; Location ; ; ; VGA_B[6] ; PIN_D11 ; QSF Assignment ; +; Location ; ; ; VGA_B[7] ; PIN_D12 ; QSF Assignment ; +; Location ; ; ; VGA_CLK ; PIN_A12 ; QSF Assignment ; +; Location ; ; ; VGA_G[0] ; PIN_G8 ; QSF Assignment ; +; Location ; ; ; VGA_G[1] ; PIN_G11 ; QSF Assignment ; +; Location ; ; ; VGA_G[2] ; PIN_F8 ; QSF Assignment ; +; Location ; ; ; VGA_G[3] ; PIN_H12 ; QSF Assignment ; +; Location ; ; ; VGA_G[4] ; PIN_C8 ; QSF Assignment ; +; Location ; ; ; VGA_G[5] ; PIN_B8 ; QSF Assignment ; +; Location ; ; ; VGA_G[6] ; PIN_F10 ; QSF Assignment ; +; Location ; ; ; VGA_G[7] ; PIN_C9 ; QSF Assignment ; +; Location ; ; ; VGA_HS ; PIN_G13 ; QSF Assignment ; +; Location ; ; ; VGA_R[0] ; PIN_E12 ; QSF Assignment ; +; Location ; ; ; VGA_R[1] ; PIN_E11 ; QSF Assignment ; +; Location ; ; ; VGA_R[2] ; PIN_D10 ; QSF Assignment ; +; Location ; ; ; VGA_R[3] ; PIN_F12 ; QSF Assignment ; +; Location ; ; ; VGA_R[4] ; PIN_G10 ; QSF Assignment ; +; Location ; ; ; VGA_R[5] ; PIN_J12 ; QSF Assignment ; +; Location ; ; ; VGA_R[6] ; PIN_H8 ; QSF Assignment ; +; Location ; ; ; VGA_R[7] ; PIN_H10 ; QSF Assignment ; +; Location ; ; ; VGA_SYNC_N ; PIN_C10 ; QSF Assignment ; +; Location ; ; ; VGA_VS ; PIN_C13 ; QSF Assignment ; +; I/O Standard ; ; ; AUD_ADCDAT ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; AUD_ADCLRCK ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; AUD_BCLK ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; AUD_DACDAT ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; AUD_DACLRCK ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; AUD_XCK ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; CLOCK2_50 ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; CLOCK3_50 ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; DRAM_ADDR[0] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; DRAM_ADDR[10] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; DRAM_ADDR[11] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; DRAM_ADDR[12] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; DRAM_ADDR[1] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; DRAM_ADDR[2] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; DRAM_ADDR[3] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; DRAM_ADDR[4] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; DRAM_ADDR[5] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; DRAM_ADDR[6] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; DRAM_ADDR[7] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; DRAM_ADDR[8] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; DRAM_ADDR[9] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; DRAM_BA[0] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; DRAM_BA[1] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; DRAM_CAS_N ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; DRAM_CKE ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; DRAM_CLK ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; DRAM_CS_N ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; DRAM_DQM[0] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; DRAM_DQM[1] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; DRAM_DQM[2] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; DRAM_DQM[3] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; DRAM_DQ[0] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; DRAM_DQ[10] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; DRAM_DQ[11] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; DRAM_DQ[12] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; DRAM_DQ[13] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; DRAM_DQ[14] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; DRAM_DQ[15] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; DRAM_DQ[16] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; DRAM_DQ[17] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; DRAM_DQ[18] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; DRAM_DQ[19] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; DRAM_DQ[1] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; DRAM_DQ[20] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; DRAM_DQ[21] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; DRAM_DQ[22] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; DRAM_DQ[23] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; DRAM_DQ[24] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; DRAM_DQ[25] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; DRAM_DQ[26] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; DRAM_DQ[27] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; DRAM_DQ[28] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; DRAM_DQ[29] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; DRAM_DQ[2] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; DRAM_DQ[30] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; DRAM_DQ[31] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; DRAM_DQ[3] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; DRAM_DQ[4] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; DRAM_DQ[5] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; DRAM_DQ[6] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; DRAM_DQ[7] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; DRAM_DQ[8] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; DRAM_DQ[9] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; DRAM_RAS_N ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; DRAM_WE_N ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; EEP_I2C_SCLK ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; EEP_I2C_SDAT ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; ENET0_GTX_CLK ; 2.5 V ; QSF Assignment ; +; I/O Standard ; ; ; ENET0_INT_N ; 2.5 V ; QSF Assignment ; +; I/O Standard ; ; ; ENET0_LINK100 ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; ENET0_MDC ; 2.5 V ; QSF Assignment ; +; I/O Standard ; ; ; ENET0_MDIO ; 2.5 V ; QSF Assignment ; +; I/O Standard ; ; ; ENET0_RST_N ; 2.5 V ; QSF Assignment ; +; I/O Standard ; ; ; ENET0_RX_CLK ; 2.5 V ; QSF Assignment ; +; I/O Standard ; ; ; ENET0_RX_COL ; 2.5 V ; QSF Assignment ; +; I/O Standard ; ; ; ENET0_RX_CRS ; 2.5 V ; QSF Assignment ; +; I/O Standard ; ; ; ENET0_RX_DATA[0] ; 2.5 V ; QSF Assignment ; +; I/O Standard ; ; ; ENET0_RX_DATA[1] ; 2.5 V ; QSF Assignment ; +; I/O Standard ; ; ; ENET0_RX_DATA[2] ; 2.5 V ; QSF Assignment ; +; I/O Standard ; ; ; ENET0_RX_DATA[3] ; 2.5 V ; QSF Assignment ; +; I/O Standard ; ; ; ENET0_RX_DV ; 2.5 V ; QSF Assignment ; +; I/O Standard ; ; ; ENET0_RX_ER ; 2.5 V ; QSF Assignment ; +; I/O Standard ; ; ; ENET0_TX_CLK ; 2.5 V ; QSF Assignment ; +; I/O Standard ; ; ; ENET0_TX_DATA[0] ; 2.5 V ; QSF Assignment ; +; I/O Standard ; ; ; ENET0_TX_DATA[1] ; 2.5 V ; QSF Assignment ; +; I/O Standard ; ; ; ENET0_TX_DATA[2] ; 2.5 V ; QSF Assignment ; +; I/O Standard ; ; ; ENET0_TX_DATA[3] ; 2.5 V ; QSF Assignment ; +; I/O Standard ; ; ; ENET0_TX_EN ; 2.5 V ; QSF Assignment ; +; I/O Standard ; ; ; ENET0_TX_ER ; 2.5 V ; QSF Assignment ; +; I/O Standard ; ; ; ENET1_GTX_CLK ; 2.5 V ; QSF Assignment ; +; I/O Standard ; ; ; ENET1_INT_N ; 2.5 V ; QSF Assignment ; +; I/O Standard ; ; ; ENET1_LINK100 ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; ENET1_MDC ; 2.5 V ; QSF Assignment ; +; I/O Standard ; ; ; ENET1_MDIO ; 2.5 V ; QSF Assignment ; +; I/O Standard ; ; ; ENET1_RST_N ; 2.5 V ; QSF Assignment ; +; I/O Standard ; ; ; ENET1_RX_CLK ; 2.5 V ; QSF Assignment ; +; I/O Standard ; ; ; ENET1_RX_COL ; 2.5 V ; QSF Assignment ; +; I/O Standard ; ; ; ENET1_RX_CRS ; 2.5 V ; QSF Assignment ; +; I/O Standard ; ; ; ENET1_RX_DATA[0] ; 2.5 V ; QSF Assignment ; +; I/O Standard ; ; ; ENET1_RX_DATA[1] ; 2.5 V ; QSF Assignment ; +; I/O Standard ; ; ; ENET1_RX_DATA[2] ; 2.5 V ; QSF Assignment ; +; I/O Standard ; ; ; ENET1_RX_DATA[3] ; 2.5 V ; QSF Assignment ; +; I/O Standard ; ; ; ENET1_RX_DV ; 2.5 V ; QSF Assignment ; +; I/O Standard ; ; ; ENET1_RX_ER ; 2.5 V ; QSF Assignment ; +; I/O Standard ; ; ; ENET1_TX_CLK ; 2.5 V ; QSF Assignment ; +; I/O Standard ; ; ; ENET1_TX_DATA[0] ; 2.5 V ; QSF Assignment ; +; I/O Standard ; ; ; ENET1_TX_DATA[1] ; 2.5 V ; QSF Assignment ; +; I/O Standard ; ; ; ENET1_TX_DATA[2] ; 2.5 V ; QSF Assignment ; +; I/O Standard ; ; ; ENET1_TX_DATA[3] ; 2.5 V ; QSF Assignment ; +; I/O Standard ; ; ; ENET1_TX_EN ; 2.5 V ; QSF Assignment ; +; I/O Standard ; ; ; ENET1_TX_ER ; 2.5 V ; QSF Assignment ; +; I/O Standard ; ; ; ENETCLK_25 ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; EX_IO[0] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; EX_IO[1] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; EX_IO[2] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; EX_IO[3] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; EX_IO[4] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; EX_IO[5] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; EX_IO[6] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; FL_ADDR[0] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; FL_ADDR[10] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; FL_ADDR[11] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; FL_ADDR[12] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; FL_ADDR[13] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; FL_ADDR[14] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; FL_ADDR[15] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; FL_ADDR[16] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; FL_ADDR[17] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; FL_ADDR[18] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; FL_ADDR[19] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; FL_ADDR[1] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; FL_ADDR[20] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; FL_ADDR[21] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; FL_ADDR[22] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; FL_ADDR[2] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; FL_ADDR[3] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; FL_ADDR[4] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; FL_ADDR[5] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; FL_ADDR[6] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; FL_ADDR[7] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; FL_ADDR[8] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; FL_ADDR[9] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; FL_CE_N ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; FL_DQ[0] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; FL_DQ[1] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; FL_DQ[2] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; FL_DQ[3] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; FL_DQ[4] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; FL_DQ[5] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; FL_DQ[6] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; FL_DQ[7] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; FL_OE_N ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; FL_RST_N ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; FL_RY ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; FL_WE_N ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; FL_WP_N ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; GPIO[0] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; GPIO[10] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; GPIO[11] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; GPIO[12] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; GPIO[13] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; GPIO[14] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; GPIO[15] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; GPIO[16] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; GPIO[17] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; GPIO[18] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; GPIO[19] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; GPIO[1] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; GPIO[20] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; GPIO[21] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; GPIO[22] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; GPIO[23] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; GPIO[24] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; GPIO[25] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; GPIO[26] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; GPIO[27] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; GPIO[28] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; GPIO[29] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; GPIO[2] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; GPIO[30] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; GPIO[31] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; GPIO[32] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; GPIO[33] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; GPIO[34] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; GPIO[35] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; GPIO[3] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; GPIO[4] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; GPIO[5] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; GPIO[6] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; GPIO[7] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; GPIO[8] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; GPIO[9] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; HSMC_CLKIN0 ; 3.0-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; HSMC_CLKIN_N1 ; LVDS ; QSF Assignment ; +; I/O Standard ; ; ; HSMC_CLKIN_N2 ; LVDS ; QSF Assignment ; +; I/O Standard ; ; ; HSMC_CLKIN_P1 ; LVDS ; QSF Assignment ; +; I/O Standard ; ; ; HSMC_CLKIN_P2 ; LVDS ; QSF Assignment ; +; I/O Standard ; ; ; HSMC_CLKOUT0 ; 2.5 V ; QSF Assignment ; +; I/O Standard ; ; ; HSMC_CLKOUT_N1 ; LVDS ; QSF Assignment ; +; I/O Standard ; ; ; HSMC_CLKOUT_N2 ; LVDS ; QSF Assignment ; +; I/O Standard ; ; ; HSMC_CLKOUT_P1 ; LVDS ; QSF Assignment ; +; I/O Standard ; ; ; HSMC_CLKOUT_P2 ; LVDS ; QSF Assignment ; +; I/O Standard ; ; ; HSMC_D[0] ; 2.5 V ; QSF Assignment ; +; I/O Standard ; ; ; HSMC_D[1] ; 2.5 V ; QSF Assignment ; +; I/O Standard ; ; ; HSMC_D[2] ; 2.5 V ; QSF Assignment ; +; I/O Standard ; ; ; HSMC_D[3] ; 2.5 V ; QSF Assignment ; +; I/O Standard ; ; ; HSMC_RX_D_N[0] ; LVDS ; QSF Assignment ; +; I/O Standard ; ; ; HSMC_RX_D_N[10] ; LVDS ; QSF Assignment ; +; I/O Standard ; ; ; HSMC_RX_D_N[11] ; LVDS ; QSF Assignment ; +; I/O Standard ; ; ; HSMC_RX_D_N[12] ; LVDS ; QSF Assignment ; +; I/O Standard ; ; ; HSMC_RX_D_N[13] ; LVDS ; QSF Assignment ; +; I/O Standard ; ; ; HSMC_RX_D_N[14] ; LVDS ; QSF Assignment ; +; I/O Standard ; ; ; HSMC_RX_D_N[15] ; LVDS ; QSF Assignment ; +; I/O Standard ; ; ; HSMC_RX_D_N[16] ; LVDS ; QSF Assignment ; +; I/O Standard ; ; ; HSMC_RX_D_N[1] ; LVDS ; QSF Assignment ; +; I/O Standard ; ; ; HSMC_RX_D_N[2] ; LVDS ; QSF Assignment ; +; I/O Standard ; ; ; HSMC_RX_D_N[3] ; LVDS ; QSF Assignment ; +; I/O Standard ; ; ; HSMC_RX_D_N[4] ; LVDS ; QSF Assignment ; +; I/O Standard ; ; ; HSMC_RX_D_N[5] ; LVDS ; QSF Assignment ; +; I/O Standard ; ; ; HSMC_RX_D_N[6] ; LVDS ; QSF Assignment ; +; I/O Standard ; ; ; HSMC_RX_D_N[7] ; LVDS ; QSF Assignment ; +; I/O Standard ; ; ; HSMC_RX_D_N[8] ; LVDS ; QSF Assignment ; +; I/O Standard ; ; ; HSMC_RX_D_N[9] ; LVDS ; QSF Assignment ; +; I/O Standard ; ; ; HSMC_RX_D_P[0] ; LVDS ; QSF Assignment ; +; I/O Standard ; ; ; HSMC_RX_D_P[10] ; LVDS ; QSF Assignment ; +; I/O Standard ; ; ; HSMC_RX_D_P[11] ; LVDS ; QSF Assignment ; +; I/O Standard ; ; ; HSMC_RX_D_P[12] ; LVDS ; QSF Assignment ; +; I/O Standard ; ; ; HSMC_RX_D_P[13] ; LVDS ; QSF Assignment ; +; I/O Standard ; ; ; HSMC_RX_D_P[14] ; LVDS ; QSF Assignment ; +; I/O Standard ; ; ; HSMC_RX_D_P[15] ; LVDS ; QSF Assignment ; +; I/O Standard ; ; ; HSMC_RX_D_P[16] ; LVDS ; QSF Assignment ; +; I/O Standard ; ; ; HSMC_RX_D_P[1] ; LVDS ; QSF Assignment ; +; I/O Standard ; ; ; HSMC_RX_D_P[2] ; LVDS ; QSF Assignment ; +; I/O Standard ; ; ; HSMC_RX_D_P[3] ; LVDS ; QSF Assignment ; +; I/O Standard ; ; ; HSMC_RX_D_P[4] ; LVDS ; QSF Assignment ; +; I/O Standard ; ; ; HSMC_RX_D_P[5] ; LVDS ; QSF Assignment ; +; I/O Standard ; ; ; HSMC_RX_D_P[6] ; LVDS ; QSF Assignment ; +; I/O Standard ; ; ; HSMC_RX_D_P[7] ; LVDS ; QSF Assignment ; +; I/O Standard ; ; ; HSMC_RX_D_P[8] ; LVDS ; QSF Assignment ; +; I/O Standard ; ; ; HSMC_RX_D_P[9] ; LVDS ; QSF Assignment ; +; I/O Standard ; ; ; HSMC_TX_D_N[0] ; LVDS ; QSF Assignment ; +; I/O Standard ; ; ; HSMC_TX_D_N[10] ; LVDS ; QSF Assignment ; +; I/O Standard ; ; ; HSMC_TX_D_N[11] ; LVDS ; QSF Assignment ; +; I/O Standard ; ; ; HSMC_TX_D_N[12] ; LVDS ; QSF Assignment ; +; I/O Standard ; ; ; HSMC_TX_D_N[13] ; LVDS ; QSF Assignment ; +; I/O Standard ; ; ; HSMC_TX_D_N[14] ; LVDS ; QSF Assignment ; +; I/O Standard ; ; ; HSMC_TX_D_N[15] ; LVDS ; QSF Assignment ; +; I/O Standard ; ; ; HSMC_TX_D_N[16] ; LVDS ; QSF Assignment ; +; I/O Standard ; ; ; HSMC_TX_D_N[1] ; LVDS ; QSF Assignment ; +; I/O Standard ; ; ; HSMC_TX_D_N[2] ; LVDS ; QSF Assignment ; +; I/O Standard ; ; ; HSMC_TX_D_N[3] ; LVDS ; QSF Assignment ; +; I/O Standard ; ; ; HSMC_TX_D_N[4] ; LVDS ; QSF Assignment ; +; I/O Standard ; ; ; HSMC_TX_D_N[5] ; LVDS ; QSF Assignment ; +; I/O Standard ; ; ; HSMC_TX_D_N[6] ; LVDS ; QSF Assignment ; +; I/O Standard ; ; ; HSMC_TX_D_N[7] ; LVDS ; QSF Assignment ; +; I/O Standard ; ; ; HSMC_TX_D_N[8] ; LVDS ; QSF Assignment ; +; I/O Standard ; ; ; HSMC_TX_D_N[9] ; LVDS ; QSF Assignment ; +; I/O Standard ; ; ; HSMC_TX_D_P[0] ; LVDS ; QSF Assignment ; +; I/O Standard ; ; ; HSMC_TX_D_P[10] ; LVDS ; QSF Assignment ; +; I/O Standard ; ; ; HSMC_TX_D_P[11] ; LVDS ; QSF Assignment ; +; I/O Standard ; ; ; HSMC_TX_D_P[12] ; LVDS ; QSF Assignment ; +; I/O Standard ; ; ; HSMC_TX_D_P[13] ; LVDS ; QSF Assignment ; +; I/O Standard ; ; ; HSMC_TX_D_P[14] ; LVDS ; QSF Assignment ; +; I/O Standard ; ; ; HSMC_TX_D_P[15] ; LVDS ; QSF Assignment ; +; I/O Standard ; ; ; HSMC_TX_D_P[16] ; LVDS ; QSF Assignment ; +; I/O Standard ; ; ; HSMC_TX_D_P[1] ; LVDS ; QSF Assignment ; +; I/O Standard ; ; ; HSMC_TX_D_P[2] ; LVDS ; QSF Assignment ; +; I/O Standard ; ; ; HSMC_TX_D_P[3] ; LVDS ; QSF Assignment ; +; I/O Standard ; ; ; HSMC_TX_D_P[4] ; LVDS ; QSF Assignment ; +; I/O Standard ; ; ; HSMC_TX_D_P[5] ; LVDS ; QSF Assignment ; +; I/O Standard ; ; ; HSMC_TX_D_P[6] ; LVDS ; QSF Assignment ; +; I/O Standard ; ; ; HSMC_TX_D_P[7] ; LVDS ; QSF Assignment ; +; I/O Standard ; ; ; HSMC_TX_D_P[8] ; LVDS ; QSF Assignment ; +; I/O Standard ; ; ; HSMC_TX_D_P[9] ; LVDS ; QSF Assignment ; +; I/O Standard ; ; ; I2C_SCLK ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; I2C_SDAT ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; IRDA_RXD ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; LEDG[8] ; 2.5 V ; QSF Assignment ; +; I/O Standard ; ; ; OTG_ADDR[0] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; OTG_ADDR[1] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; OTG_CS_N ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; OTG_DACK_N[0] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; OTG_DACK_N[1] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; OTG_DATA[0] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; OTG_DATA[10] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; OTG_DATA[11] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; OTG_DATA[12] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; OTG_DATA[13] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; OTG_DATA[14] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; OTG_DATA[15] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; OTG_DATA[1] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; OTG_DATA[2] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; OTG_DATA[3] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; OTG_DATA[4] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; OTG_DATA[5] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; OTG_DATA[6] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; OTG_DATA[7] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; OTG_DATA[8] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; OTG_DATA[9] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; OTG_DREQ[0] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; OTG_DREQ[1] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; OTG_FSPEED ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; OTG_INT[0] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; OTG_INT[1] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; OTG_LSPEED ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; OTG_RD_N ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; OTG_RST_N ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; OTG_WR_N ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; PS2_CLK ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; PS2_CLK2 ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; PS2_DAT ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; PS2_DAT2 ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; SD_CLK ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; SD_CMD ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; SD_DAT[0] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; SD_DAT[1] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; SD_DAT[2] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; SD_DAT[3] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; SD_WP_N ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; SMA_CLKIN ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; SMA_CLKOUT ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; SRAM_ADDR[0] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; SRAM_ADDR[10] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; SRAM_ADDR[11] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; SRAM_ADDR[12] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; SRAM_ADDR[13] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; SRAM_ADDR[14] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; SRAM_ADDR[15] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; SRAM_ADDR[16] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; SRAM_ADDR[17] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; SRAM_ADDR[18] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; SRAM_ADDR[19] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; SRAM_ADDR[1] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; SRAM_ADDR[2] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; SRAM_ADDR[3] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; SRAM_ADDR[4] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; SRAM_ADDR[5] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; SRAM_ADDR[6] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; SRAM_ADDR[7] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; SRAM_ADDR[8] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; SRAM_ADDR[9] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; SRAM_CE_N ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; SRAM_DQ[0] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; SRAM_DQ[10] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; SRAM_DQ[11] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; SRAM_DQ[12] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; SRAM_DQ[13] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; SRAM_DQ[14] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; SRAM_DQ[15] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; SRAM_DQ[1] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; SRAM_DQ[2] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; SRAM_DQ[3] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; SRAM_DQ[4] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; SRAM_DQ[5] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; SRAM_DQ[6] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; SRAM_DQ[7] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; SRAM_DQ[8] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; SRAM_DQ[9] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; SRAM_LB_N ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; SRAM_OE_N ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; SRAM_UB_N ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; SRAM_WE_N ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; TD_CLK27 ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; TD_DATA[0] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; TD_DATA[1] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; TD_DATA[2] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; TD_DATA[3] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; TD_DATA[4] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; TD_DATA[5] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; TD_DATA[6] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; TD_DATA[7] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; TD_HS ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; TD_RESET_N ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; TD_VS ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; UART_CTS ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; UART_RTS ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; UART_RXD ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; UART_TXD ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; VGA_BLANK_N ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; VGA_B[0] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; VGA_B[1] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; VGA_B[2] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; VGA_B[3] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; VGA_B[4] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; VGA_B[5] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; VGA_B[6] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; VGA_B[7] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; VGA_CLK ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; VGA_G[0] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; VGA_G[1] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; VGA_G[2] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; VGA_G[3] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; VGA_G[4] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; VGA_G[5] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; VGA_G[6] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; VGA_G[7] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; VGA_HS ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; VGA_R[0] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; VGA_R[1] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; VGA_R[2] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; VGA_R[3] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; VGA_R[4] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; VGA_R[5] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; VGA_R[6] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; VGA_R[7] ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; VGA_SYNC_N ; 3.3-V LVTTL ; QSF Assignment ; +; I/O Standard ; ; ; VGA_VS ; 3.3-V LVTTL ; QSF Assignment ; ++--------------+----------------+--------------+------------------+---------------+----------------+ + + ++----------------------------------------------+ +; Incremental Compilation Preservation Summary ; ++---------------------+------------------------+ +; Type ; Value ; ++---------------------+------------------------+ +; Placement (by node) ; ; +; -- Requested ; 0 / 3866 ( 0.00 % ) ; +; -- Achieved ; 0 / 3866 ( 0.00 % ) ; +; ; ; +; Routing (by net) ; ; +; -- Requested ; 0 / 0 ( 0.00 % ) ; +; -- Achieved ; 0 / 0 ( 0.00 % ) ; ++---------------------+------------------------+ + + ++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Incremental Compilation Partition Settings ; ++--------------------------------+----------------+-------------------+-------------------------+------------------------+------------------------------+--------------------------------+ +; Partition Name ; Partition Type ; Netlist Type Used ; Preservation Level Used ; Netlist Type Requested ; Preservation Level Requested ; Contents ; ++--------------------------------+----------------+-------------------+-------------------------+------------------------+------------------------------+--------------------------------+ +; Top ; User-created ; Source File ; N/A ; Source File ; N/A ; ; +; sld_hub:auto_hub ; Auto-generated ; Post-Synthesis ; N/A ; Post-Synthesis ; N/A ; sld_hub:auto_hub ; +; hard_block:auto_generated_inst ; Auto-generated ; Source File ; N/A ; Source File ; N/A ; hard_block:auto_generated_inst ; ++--------------------------------+----------------+-------------------+-------------------------+------------------------+------------------------------+--------------------------------+ + + ++------------------------------------------------------------------------------------------------------------+ +; Incremental Compilation Placement Preservation ; ++--------------------------------+---------+-------------------+-------------------------+-------------------+ +; Partition Name ; # Nodes ; # Preserved Nodes ; Preservation Level Used ; Netlist Type Used ; ++--------------------------------+---------+-------------------+-------------------------+-------------------+ +; Top ; 3599 ; 0 ; N/A ; Source File ; +; sld_hub:auto_hub ; 257 ; 0 ; N/A ; Post-Synthesis ; +; hard_block:auto_generated_inst ; 10 ; 0 ; N/A ; Source File ; ++--------------------------------+---------+-------------------+-------------------------+-------------------+ + + ++--------------+ +; Pin-Out File ; ++--------------+ +The pin-out file can be found in C:/Users/takayun/Documents/DE2-115/qsys_tutorial/output_files/lights.pin. + + ++------------------------------------------------------------------------------+ +; Fitter Resource Usage Summary ; ++---------------------------------------------+--------------------------------+ +; Resource ; Usage ; ++---------------------------------------------+--------------------------------+ +; Total logic elements ; 2,232 / 114,480 ( 2 % ) ; +; -- Combinational with no register ; 1028 ; +; -- Register only ; 170 ; +; -- Combinational with a register ; 1034 ; +; ; ; +; Logic element usage by number of LUT inputs ; ; +; -- 4 input functions ; 1077 ; +; -- 3 input functions ; 679 ; +; -- <=2 input functions ; 306 ; +; -- Register only ; 170 ; +; ; ; +; Logic elements by mode ; ; +; -- normal mode ; 1915 ; +; -- arithmetic mode ; 147 ; +; ; ; +; Total registers* ; 1,204 / 117,053 ( 1 % ) ; +; -- Dedicated logic registers ; 1,204 / 114,480 ( 1 % ) ; +; -- I/O registers ; 0 / 2,573 ( 0 % ) ; +; ; ; +; Total LABs: partially or completely used ; 156 / 7,155 ( 2 % ) ; +; Virtual pins ; 0 ; +; I/O pins ; 118 / 529 ( 22 % ) ; +; -- Clock pins ; 1 / 7 ( 14 % ) ; +; -- Dedicated input pins ; 3 / 9 ( 33 % ) ; +; ; ; +; Global signals ; 4 ; +; M9Ks ; 205 / 432 ( 47 % ) ; +; Total block memory bits ; 1,649,664 / 3,981,312 ( 41 % ) ; +; Total block memory implementation bits ; 1,889,280 / 3,981,312 ( 47 % ) ; +; Embedded Multiplier 9-bit elements ; 0 / 532 ( 0 % ) ; +; PLLs ; 0 / 4 ( 0 % ) ; +; Global clocks ; 4 / 20 ( 20 % ) ; +; JTAGs ; 1 / 1 ( 100 % ) ; +; CRC blocks ; 0 / 1 ( 0 % ) ; +; ASMI blocks ; 0 / 1 ( 0 % ) ; +; Impedance control blocks ; 0 / 4 ( 0 % ) ; +; Average interconnect usage (total/H/V) ; 2% / 1% / 2% ; +; Peak interconnect usage (total/H/V) ; 25% / 22% / 30% ; +; Maximum fan-out ; 1229 ; +; Highest non-global fan-out ; 204 ; +; Total fan-out ; 15201 ; +; Average fan-out ; 3.95 ; ++---------------------------------------------+--------------------------------+ +* Register count does not include registers inside RAM blocks or DSP blocks. + + + ++---------------------------------------------------------------------------------------------------------------------------------+ +; Fitter Partition Statistics ; ++---------------------------------------------+-------------------------+------------------------+--------------------------------+ +; Statistic ; Top ; sld_hub:auto_hub ; hard_block:auto_generated_inst ; ++---------------------------------------------+-------------------------+------------------------+--------------------------------+ +; Difficulty Clustering Region ; Low ; Low ; Low ; +; ; ; ; ; +; Total logic elements ; 2061 / 114480 ( 2 % ) ; 171 / 114480 ( < 1 % ) ; 0 / 114480 ( 0 % ) ; +; -- Combinational with no register ; 954 ; 74 ; 0 ; +; -- Register only ; 159 ; 11 ; 0 ; +; -- Combinational with a register ; 948 ; 86 ; 0 ; +; ; ; ; ; +; Logic element usage by number of LUT inputs ; ; ; ; +; -- 4 input functions ; 1007 ; 70 ; 0 ; +; -- 3 input functions ; 632 ; 47 ; 0 ; +; -- <=2 input functions ; 263 ; 43 ; 0 ; +; -- Register only ; 159 ; 11 ; 0 ; +; ; ; ; ; +; Logic elements by mode ; ; ; ; +; -- normal mode ; 1763 ; 152 ; 0 ; +; -- arithmetic mode ; 139 ; 8 ; 0 ; +; ; ; ; ; +; Total registers ; 1107 ; 97 ; 0 ; +; -- Dedicated logic registers ; 1107 / 114480 ( < 1 % ) ; 97 / 114480 ( < 1 % ) ; 0 / 114480 ( 0 % ) ; +; ; ; ; ; +; Total LABs: partially or completely used ; 142 / 7155 ( 2 % ) ; 15 / 7155 ( < 1 % ) ; 0 / 7155 ( 0 % ) ; +; ; ; ; ; +; Virtual pins ; 0 ; 0 ; 0 ; +; I/O pins ; 118 ; 0 ; 0 ; +; Embedded Multiplier 9-bit elements ; 0 / 532 ( 0 % ) ; 0 / 532 ( 0 % ) ; 0 / 532 ( 0 % ) ; +; Total memory bits ; 1649664 ; 0 ; 0 ; +; Total RAM block bits ; 1889280 ; 0 ; 0 ; +; JTAG ; 1 / 1 ( 100 % ) ; 0 / 1 ( 0 % ) ; 0 / 1 ( 0 % ) ; +; M9K ; 205 / 432 ( 47 % ) ; 0 / 432 ( 0 % ) ; 0 / 432 ( 0 % ) ; +; Clock control block ; 4 / 24 ( 16 % ) ; 0 / 24 ( 0 % ) ; 0 / 24 ( 0 % ) ; +; ; ; ; ; +; Connections ; ; ; ; +; -- Input Connections ; 268 ; 140 ; 0 ; +; -- Registered Input Connections ; 130 ; 107 ; 0 ; +; -- Output Connections ; 235 ; 173 ; 0 ; +; -- Registered Output Connections ; 4 ; 172 ; 0 ; +; ; ; ; ; +; Internal Connections ; ; ; ; +; -- Total Connections ; 14515 ; 1016 ; 5 ; +; -- Registered Connections ; 4720 ; 712 ; 0 ; +; ; ; ; ; +; External Connections ; ; ; ; +; -- Top ; 192 ; 311 ; 0 ; +; -- sld_hub:auto_hub ; 311 ; 2 ; 0 ; +; -- hard_block:auto_generated_inst ; 0 ; 0 ; 0 ; +; ; ; ; ; +; Partition Interface ; ; ; ; +; -- Input Ports ; 63 ; 23 ; 0 ; +; -- Output Ports ; 102 ; 40 ; 0 ; +; -- Bidir Ports ; 0 ; 0 ; 0 ; +; ; ; ; ; +; Registered Ports ; ; ; ; +; -- Registered Input Ports ; 0 ; 3 ; 0 ; +; -- Registered Output Ports ; 0 ; 29 ; 0 ; +; ; ; ; ; +; Port Connectivity ; ; ; ; +; -- Input Ports driven by GND ; 0 ; 9 ; 0 ; +; -- Output Ports driven by GND ; 0 ; 1 ; 0 ; +; -- Input Ports driven by VCC ; 0 ; 0 ; 0 ; +; -- Output Ports driven by VCC ; 0 ; 0 ; 0 ; +; -- Input Ports with no Source ; 0 ; 1 ; 0 ; +; -- Output Ports with no Source ; 0 ; 0 ; 0 ; +; -- Input Ports with no Fanout ; 0 ; 2 ; 0 ; +; -- Output Ports with no Fanout ; 0 ; 26 ; 0 ; ++---------------------------------------------+-------------------------+------------------------+--------------------------------+ + + ++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Input Pins ; ++----------+-------+----------+--------------+--------------+--------------+-----------------------+--------------------+--------+----------------+---------------+-----------------+----------+--------------+--------------+---------------------------+----------------------+ +; Name ; Pin # ; I/O Bank ; X coordinate ; Y coordinate ; Z coordinate ; Combinational Fan-Out ; Registered Fan-Out ; Global ; Input Register ; Power Up High ; PCI I/O Enabled ; Bus Hold ; Weak Pull Up ; I/O Standard ; Termination Control Block ; Location assigned by ; ++----------+-------+----------+--------------+--------------+--------------+-----------------------+--------------------+--------+----------------+---------------+-----------------+----------+--------------+--------------+---------------------------+----------------------+ +; CLOCK_50 ; Y2 ; 2 ; 0 ; 36 ; 14 ; 1229 ; 0 ; yes ; no ; no ; yes ; no ; Off ; 3.3-V LVTTL ; -- ; User ; +; KEY[0] ; M23 ; 6 ; 115 ; 40 ; 7 ; 1 ; 0 ; no ; no ; no ; yes ; no ; Off ; 2.5 V ; -- ; User ; +; KEY[1] ; M21 ; 6 ; 115 ; 53 ; 14 ; 1 ; 0 ; no ; no ; no ; yes ; no ; Off ; 2.5 V ; -- ; User ; +; KEY[2] ; N21 ; 6 ; 115 ; 42 ; 14 ; 1 ; 0 ; no ; no ; no ; yes ; no ; Off ; 2.5 V ; -- ; User ; +; KEY[3] ; R24 ; 5 ; 115 ; 35 ; 21 ; 1 ; 0 ; no ; no ; no ; yes ; no ; Off ; 2.5 V ; -- ; User ; +; SW[0] ; AB28 ; 5 ; 115 ; 17 ; 0 ; 1 ; 0 ; no ; no ; no ; yes ; no ; Off ; 2.5 V ; -- ; User ; +; SW[10] ; AC24 ; 5 ; 115 ; 4 ; 14 ; 1 ; 0 ; no ; no ; no ; yes ; no ; Off ; 2.5 V ; -- ; User ; +; SW[11] ; AB24 ; 5 ; 115 ; 5 ; 14 ; 1 ; 0 ; no ; no ; no ; yes ; no ; Off ; 2.5 V ; -- ; User ; +; SW[12] ; AB23 ; 5 ; 115 ; 7 ; 14 ; 1 ; 0 ; no ; no ; no ; yes ; no ; Off ; 2.5 V ; -- ; User ; +; SW[13] ; AA24 ; 5 ; 115 ; 9 ; 21 ; 1 ; 0 ; no ; no ; no ; yes ; no ; Off ; 2.5 V ; -- ; User ; +; SW[14] ; AA23 ; 5 ; 115 ; 10 ; 7 ; 1 ; 0 ; no ; no ; no ; yes ; no ; Off ; 2.5 V ; -- ; User ; +; SW[15] ; AA22 ; 5 ; 115 ; 6 ; 14 ; 1 ; 0 ; no ; no ; no ; yes ; no ; Off ; 2.5 V ; -- ; User ; +; SW[16] ; Y24 ; 5 ; 115 ; 13 ; 0 ; 1 ; 0 ; no ; no ; no ; yes ; no ; Off ; 2.5 V ; -- ; User ; +; SW[17] ; Y23 ; 5 ; 115 ; 14 ; 7 ; 1 ; 0 ; no ; no ; no ; yes ; no ; Off ; 2.5 V ; -- ; User ; +; SW[1] ; AC28 ; 5 ; 115 ; 14 ; 0 ; 1 ; 0 ; no ; no ; no ; yes ; no ; Off ; 2.5 V ; -- ; User ; +; SW[2] ; AC27 ; 5 ; 115 ; 15 ; 7 ; 1 ; 0 ; no ; no ; no ; yes ; no ; Off ; 2.5 V ; -- ; User ; +; SW[3] ; AD27 ; 5 ; 115 ; 13 ; 7 ; 1 ; 0 ; no ; no ; no ; yes ; no ; Off ; 2.5 V ; -- ; User ; +; SW[4] ; AB27 ; 5 ; 115 ; 18 ; 7 ; 1 ; 0 ; no ; no ; no ; yes ; no ; Off ; 2.5 V ; -- ; User ; +; SW[5] ; AC26 ; 5 ; 115 ; 11 ; 7 ; 1 ; 0 ; no ; no ; no ; yes ; no ; Off ; 2.5 V ; -- ; User ; +; SW[6] ; AD26 ; 5 ; 115 ; 10 ; 0 ; 1 ; 0 ; no ; no ; no ; yes ; no ; Off ; 2.5 V ; -- ; User ; +; SW[7] ; AB26 ; 5 ; 115 ; 15 ; 0 ; 1 ; 0 ; no ; no ; no ; yes ; no ; Off ; 2.5 V ; -- ; User ; +; SW[8] ; AC25 ; 5 ; 115 ; 4 ; 21 ; 1 ; 0 ; no ; no ; no ; yes ; no ; Off ; 2.5 V ; -- ; User ; +; SW[9] ; AB25 ; 5 ; 115 ; 16 ; 7 ; 1 ; 0 ; no ; no ; no ; yes ; no ; Off ; 2.5 V ; -- ; User ; ++----------+-------+----------+--------------+--------------+--------------+-----------------------+--------------------+--------+----------------+---------------+-----------------+----------+--------------+--------------+---------------------------+----------------------+ + + ++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Output Pins ; ++-------------+-------+----------+--------------+--------------+--------------+-----------------+------------------------+---------------+-----------+-----------------+------------+---------------+----------+--------------+--------------+------------------+-----------------------------------+---------------------------+----------------------------+-----------------------------+----------------------+----------------------+---------------------+ +; Name ; Pin # ; I/O Bank ; X coordinate ; Y coordinate ; Z coordinate ; Output Register ; Output Enable Register ; Power Up High ; Slew Rate ; PCI I/O Enabled ; Open Drain ; TRI Primitive ; Bus Hold ; Weak Pull Up ; I/O Standard ; Current Strength ; Termination ; Termination Control Block ; Output Buffer Pre-emphasis ; Voltage Output Differential ; Location assigned by ; Output Enable Source ; Output Enable Group ; ++-------------+-------+----------+--------------+--------------+--------------+-----------------+------------------------+---------------+-----------+-----------------+------------+---------------+----------+--------------+--------------+------------------+-----------------------------------+---------------------------+----------------------------+-----------------------------+----------------------+----------------------+---------------------+ +; HEX0[0] ; G18 ; 7 ; 69 ; 73 ; 21 ; no ; no ; no ; 2 ; no ; no ; no ; no ; Off ; 2.5 V ; Default ; Series 50 Ohm without Calibration ; -- ; no ; no ; User ; - ; - ; +; HEX0[1] ; F22 ; 7 ; 107 ; 73 ; 21 ; no ; no ; no ; 2 ; no ; no ; no ; no ; Off ; 2.5 V ; Default ; Series 50 Ohm without Calibration ; -- ; no ; no ; User ; - ; - ; +; HEX0[2] ; E17 ; 7 ; 67 ; 73 ; 21 ; no ; no ; no ; 2 ; no ; no ; no ; no ; Off ; 2.5 V ; Default ; Series 50 Ohm without Calibration ; -- ; no ; no ; User ; - ; - ; +; HEX0[3] ; L26 ; 6 ; 115 ; 50 ; 0 ; no ; no ; no ; 2 ; no ; no ; no ; no ; Off ; 2.5 V ; Default ; Series 50 Ohm without Calibration ; -- ; no ; no ; User ; - ; - ; +; HEX0[4] ; L25 ; 6 ; 115 ; 54 ; 14 ; no ; no ; no ; 2 ; no ; no ; no ; no ; Off ; 2.5 V ; Default ; Series 50 Ohm without Calibration ; -- ; no ; no ; User ; - ; - ; +; HEX0[5] ; J22 ; 6 ; 115 ; 67 ; 14 ; no ; no ; no ; 2 ; no ; no ; no ; no ; Off ; 2.5 V ; Default ; Series 50 Ohm without Calibration ; -- ; no ; no ; User ; - ; - ; +; HEX0[6] ; H22 ; 6 ; 115 ; 69 ; 0 ; no ; no ; no ; 2 ; no ; no ; no ; no ; Off ; 2.5 V ; Default ; Series 50 Ohm without Calibration ; -- ; no ; no ; User ; - ; - ; +; HEX1[0] ; M24 ; 6 ; 115 ; 41 ; 0 ; no ; no ; no ; 2 ; no ; no ; no ; no ; Off ; 2.5 V ; Default ; Series 50 Ohm without Calibration ; -- ; no ; no ; User ; - ; - ; +; HEX1[1] ; Y22 ; 5 ; 115 ; 30 ; 7 ; no ; no ; no ; 2 ; no ; no ; no ; no ; Off ; 2.5 V ; Default ; Series 50 Ohm without Calibration ; -- ; no ; no ; User ; - ; - ; +; HEX1[2] ; W21 ; 5 ; 115 ; 25 ; 21 ; no ; no ; no ; 2 ; no ; no ; no ; no ; Off ; 2.5 V ; Default ; Series 50 Ohm without Calibration ; -- ; no ; no ; User ; - ; - ; +; HEX1[3] ; W22 ; 5 ; 115 ; 30 ; 0 ; no ; no ; no ; 2 ; no ; no ; no ; no ; Off ; 2.5 V ; Default ; Series 50 Ohm without Calibration ; -- ; no ; no ; User ; - ; - ; +; HEX1[4] ; W25 ; 5 ; 115 ; 20 ; 7 ; no ; no ; no ; 2 ; no ; no ; no ; no ; Off ; 2.5 V ; Default ; Series 50 Ohm without Calibration ; -- ; no ; no ; User ; - ; - ; +; HEX1[5] ; U23 ; 5 ; 115 ; 22 ; 0 ; no ; no ; no ; 2 ; no ; no ; no ; no ; Off ; 2.5 V ; Default ; Series 50 Ohm without Calibration ; -- ; no ; no ; User ; - ; - ; +; HEX1[6] ; U24 ; 5 ; 115 ; 28 ; 7 ; no ; no ; no ; 2 ; no ; no ; no ; no ; Off ; 2.5 V ; Default ; Series 50 Ohm without Calibration ; -- ; no ; no ; User ; - ; - ; +; HEX2[0] ; AA25 ; 5 ; 115 ; 17 ; 7 ; no ; no ; no ; 2 ; no ; no ; no ; no ; Off ; 2.5 V ; Default ; Series 50 Ohm without Calibration ; -- ; no ; no ; User ; - ; - ; +; HEX2[1] ; AA26 ; 5 ; 115 ; 16 ; 0 ; no ; no ; no ; 2 ; no ; no ; no ; no ; Off ; 2.5 V ; Default ; Series 50 Ohm without Calibration ; -- ; no ; no ; User ; - ; - ; +; HEX2[2] ; Y25 ; 5 ; 115 ; 19 ; 7 ; no ; no ; no ; 2 ; no ; no ; no ; no ; Off ; 2.5 V ; Default ; Series 50 Ohm without Calibration ; -- ; no ; no ; User ; - ; - ; +; HEX2[3] ; W26 ; 5 ; 115 ; 19 ; 0 ; no ; no ; no ; 2 ; no ; no ; no ; no ; Off ; 2.5 V ; Default ; Series 50 Ohm without Calibration ; -- ; no ; no ; User ; - ; - ; +; HEX2[4] ; Y26 ; 5 ; 115 ; 18 ; 0 ; no ; no ; no ; 2 ; no ; no ; no ; no ; Off ; 2.5 V ; Default ; Series 50 Ohm without Calibration ; -- ; no ; no ; User ; - ; - ; +; HEX2[5] ; W27 ; 5 ; 115 ; 20 ; 0 ; no ; no ; no ; 2 ; no ; no ; no ; no ; Off ; 2.5 V ; Default ; Series 50 Ohm without Calibration ; -- ; no ; no ; User ; - ; - ; +; HEX2[6] ; W28 ; 5 ; 115 ; 21 ; 14 ; no ; no ; no ; 2 ; no ; no ; no ; no ; Off ; 2.5 V ; Default ; Series 50 Ohm without Calibration ; -- ; no ; no ; User ; - ; - ; +; HEX3[0] ; V21 ; 5 ; 115 ; 25 ; 14 ; no ; no ; no ; 2 ; no ; no ; no ; no ; Off ; 2.5 V ; Default ; Series 50 Ohm without Calibration ; -- ; no ; no ; User ; - ; - ; +; HEX3[1] ; U21 ; 5 ; 115 ; 29 ; 0 ; no ; no ; no ; 2 ; no ; no ; no ; no ; Off ; 2.5 V ; Default ; Series 50 Ohm without Calibration ; -- ; no ; no ; User ; - ; - ; +; HEX3[2] ; AB20 ; 4 ; 100 ; 0 ; 0 ; no ; no ; no ; 2 ; no ; no ; no ; no ; Off ; 3.3-V LVTTL ; 8mA ; Off ; -- ; no ; no ; User ; - ; - ; +; HEX3[3] ; AA21 ; 4 ; 111 ; 0 ; 0 ; no ; no ; no ; 2 ; no ; no ; no ; no ; Off ; 3.3-V LVTTL ; 8mA ; Off ; -- ; no ; no ; User ; - ; - ; +; HEX3[4] ; AD24 ; 4 ; 105 ; 0 ; 21 ; no ; no ; no ; 2 ; no ; no ; no ; no ; Off ; 3.3-V LVTTL ; 8mA ; Off ; -- ; no ; no ; User ; - ; - ; +; HEX3[5] ; AF23 ; 4 ; 105 ; 0 ; 7 ; no ; no ; no ; 2 ; no ; no ; no ; no ; Off ; 3.3-V LVTTL ; 8mA ; Off ; -- ; no ; no ; User ; - ; - ; +; HEX3[6] ; Y19 ; 4 ; 105 ; 0 ; 0 ; no ; no ; no ; 2 ; no ; no ; no ; no ; Off ; 3.3-V LVTTL ; 8mA ; Off ; -- ; no ; no ; User ; - ; - ; +; HEX4[0] ; AB19 ; 4 ; 98 ; 0 ; 21 ; no ; no ; no ; 2 ; no ; no ; no ; no ; Off ; 3.3-V LVTTL ; 8mA ; Off ; -- ; no ; no ; User ; - ; - ; +; HEX4[1] ; AA19 ; 4 ; 107 ; 0 ; 7 ; no ; no ; no ; 2 ; no ; no ; no ; no ; Off ; 3.3-V LVTTL ; 8mA ; Off ; -- ; no ; no ; User ; - ; - ; +; HEX4[2] ; AG21 ; 4 ; 74 ; 0 ; 7 ; no ; no ; no ; 2 ; no ; no ; no ; no ; Off ; 3.3-V LVTTL ; 8mA ; Off ; -- ; no ; no ; User ; - ; - ; +; HEX4[3] ; AH21 ; 4 ; 74 ; 0 ; 0 ; no ; no ; no ; 2 ; no ; no ; no ; no ; Off ; 3.3-V LVTTL ; 8mA ; Off ; -- ; no ; no ; User ; - ; - ; +; HEX4[4] ; AE19 ; 4 ; 83 ; 0 ; 21 ; no ; no ; no ; 2 ; no ; no ; no ; no ; Off ; 3.3-V LVTTL ; 8mA ; Off ; -- ; no ; no ; User ; - ; - ; +; HEX4[5] ; AF19 ; 4 ; 83 ; 0 ; 14 ; no ; no ; no ; 2 ; no ; no ; no ; no ; Off ; 3.3-V LVTTL ; 8mA ; Off ; -- ; no ; no ; User ; - ; - ; +; HEX4[6] ; AE18 ; 4 ; 79 ; 0 ; 21 ; no ; no ; no ; 2 ; no ; no ; no ; no ; Off ; 3.3-V LVTTL ; 8mA ; Off ; -- ; no ; no ; User ; - ; - ; +; HEX5[0] ; AD18 ; 4 ; 85 ; 0 ; 7 ; no ; no ; no ; 2 ; no ; no ; no ; no ; Off ; 3.3-V LVTTL ; 8mA ; Off ; -- ; no ; no ; User ; - ; - ; +; HEX5[1] ; AC18 ; 4 ; 87 ; 0 ; 14 ; no ; no ; no ; 2 ; no ; no ; no ; no ; Off ; 3.3-V LVTTL ; 8mA ; Off ; -- ; no ; no ; User ; - ; - ; +; HEX5[2] ; AB18 ; 4 ; 98 ; 0 ; 14 ; no ; no ; no ; 2 ; no ; no ; no ; no ; Off ; 3.3-V LVTTL ; 8mA ; Off ; -- ; no ; no ; User ; - ; - ; +; HEX5[3] ; AH19 ; 4 ; 72 ; 0 ; 0 ; no ; no ; no ; 2 ; no ; no ; no ; no ; Off ; 3.3-V LVTTL ; 8mA ; Off ; -- ; no ; no ; User ; - ; - ; +; HEX5[4] ; AG19 ; 4 ; 72 ; 0 ; 7 ; no ; no ; no ; 2 ; no ; no ; no ; no ; Off ; 3.3-V LVTTL ; 8mA ; Off ; -- ; no ; no ; User ; - ; - ; +; HEX5[5] ; AF18 ; 4 ; 79 ; 0 ; 14 ; no ; no ; no ; 2 ; no ; no ; no ; no ; Off ; 3.3-V LVTTL ; 8mA ; Off ; -- ; no ; no ; User ; - ; - ; +; HEX5[6] ; AH18 ; 4 ; 69 ; 0 ; 0 ; no ; no ; no ; 2 ; no ; no ; no ; no ; Off ; 3.3-V LVTTL ; 8mA ; Off ; -- ; no ; no ; User ; - ; - ; +; HEX6[0] ; AA17 ; 4 ; 89 ; 0 ; 21 ; no ; no ; no ; 2 ; no ; no ; no ; no ; Off ; 3.3-V LVTTL ; 8mA ; Off ; -- ; no ; no ; User ; - ; - ; +; HEX6[1] ; AB16 ; 4 ; 65 ; 0 ; 0 ; no ; no ; no ; 2 ; no ; no ; no ; no ; Off ; 3.3-V LVTTL ; 8mA ; Off ; -- ; no ; no ; User ; - ; - ; +; HEX6[2] ; AA16 ; 4 ; 65 ; 0 ; 7 ; no ; no ; no ; 2 ; no ; no ; no ; no ; Off ; 3.3-V LVTTL ; 8mA ; Off ; -- ; no ; no ; User ; - ; - ; +; HEX6[3] ; AB17 ; 4 ; 89 ; 0 ; 14 ; no ; no ; no ; 2 ; no ; no ; no ; no ; Off ; 3.3-V LVTTL ; 8mA ; Off ; -- ; no ; no ; User ; - ; - ; +; HEX6[4] ; AB15 ; 4 ; 67 ; 0 ; 14 ; no ; no ; no ; 2 ; no ; no ; no ; no ; Off ; 3.3-V LVTTL ; 8mA ; Off ; -- ; no ; no ; User ; - ; - ; +; HEX6[5] ; AA15 ; 4 ; 67 ; 0 ; 21 ; no ; no ; no ; 2 ; no ; no ; no ; no ; Off ; 3.3-V LVTTL ; 8mA ; Off ; -- ; no ; no ; User ; - ; - ; +; HEX6[6] ; AC17 ; 4 ; 74 ; 0 ; 21 ; no ; no ; no ; 2 ; no ; no ; no ; no ; Off ; 3.3-V LVTTL ; 8mA ; Off ; -- ; no ; no ; User ; - ; - ; +; HEX7[0] ; AD17 ; 4 ; 74 ; 0 ; 14 ; no ; no ; no ; 2 ; no ; no ; no ; no ; Off ; 3.3-V LVTTL ; 8mA ; Off ; -- ; no ; no ; User ; - ; - ; +; HEX7[1] ; AE17 ; 4 ; 67 ; 0 ; 7 ; no ; no ; no ; 2 ; no ; no ; no ; no ; Off ; 3.3-V LVTTL ; 8mA ; Off ; -- ; no ; no ; User ; - ; - ; +; HEX7[2] ; AG17 ; 4 ; 62 ; 0 ; 21 ; no ; no ; no ; 2 ; no ; no ; no ; no ; Off ; 3.3-V LVTTL ; 8mA ; Off ; -- ; no ; no ; User ; - ; - ; +; HEX7[3] ; AH17 ; 4 ; 62 ; 0 ; 14 ; no ; no ; no ; 2 ; no ; no ; no ; no ; Off ; 3.3-V LVTTL ; 8mA ; Off ; -- ; no ; no ; User ; - ; - ; +; HEX7[4] ; AF17 ; 4 ; 67 ; 0 ; 0 ; no ; no ; no ; 2 ; no ; no ; no ; no ; Off ; 3.3-V LVTTL ; 8mA ; Off ; -- ; no ; no ; User ; - ; - ; +; HEX7[5] ; AG18 ; 4 ; 69 ; 0 ; 7 ; no ; no ; no ; 2 ; no ; no ; no ; no ; Off ; 3.3-V LVTTL ; 8mA ; Off ; -- ; no ; no ; User ; - ; - ; +; HEX7[6] ; AA14 ; 3 ; 54 ; 0 ; 21 ; no ; no ; no ; 2 ; no ; no ; no ; no ; Off ; 3.3-V LVTTL ; 8mA ; Off ; -- ; no ; no ; User ; - ; - ; +; LCD_BLON ; L6 ; 1 ; 0 ; 47 ; 21 ; no ; no ; no ; 2 ; no ; no ; no ; no ; Off ; 3.3-V LVTTL ; 8mA ; Off ; -- ; no ; no ; User ; - ; - ; +; LCD_EN ; L4 ; 1 ; 0 ; 52 ; 0 ; no ; no ; no ; 2 ; no ; no ; no ; no ; Off ; 3.3-V LVTTL ; 8mA ; Off ; -- ; no ; no ; User ; - ; - ; +; LCD_ON ; L5 ; 1 ; 0 ; 58 ; 14 ; no ; no ; no ; 2 ; no ; no ; no ; no ; Off ; 3.3-V LVTTL ; 8mA ; Off ; -- ; no ; no ; User ; - ; - ; +; LCD_RS ; M2 ; 1 ; 0 ; 44 ; 14 ; no ; no ; no ; 2 ; no ; no ; no ; no ; Off ; 3.3-V LVTTL ; 8mA ; Off ; -- ; no ; no ; User ; - ; - ; +; LCD_RW ; M1 ; 1 ; 0 ; 44 ; 21 ; no ; no ; no ; 2 ; no ; no ; no ; no ; Off ; 3.3-V LVTTL ; 8mA ; Off ; -- ; no ; no ; User ; - ; - ; +; LCD_data[0] ; L3 ; 1 ; 0 ; 52 ; 14 ; no ; no ; no ; 2 ; yes ; no ; yes ; no ; Off ; 3.3-V LVTTL ; 8mA ; Off ; -- ; no ; no ; User ; - ; - ; +; LCD_data[1] ; L1 ; 1 ; 0 ; 44 ; 7 ; no ; no ; no ; 2 ; yes ; no ; yes ; no ; Off ; 3.3-V LVTTL ; 8mA ; Off ; -- ; no ; no ; User ; - ; - ; +; LCD_data[2] ; L2 ; 1 ; 0 ; 44 ; 0 ; no ; no ; no ; 2 ; yes ; no ; yes ; no ; Off ; 3.3-V LVTTL ; 8mA ; Off ; -- ; no ; no ; User ; - ; - ; +; LCD_data[3] ; K7 ; 1 ; 0 ; 49 ; 7 ; no ; no ; no ; 2 ; yes ; no ; yes ; no ; Off ; 3.3-V LVTTL ; 8mA ; Off ; -- ; no ; no ; User ; - ; - ; +; LCD_data[4] ; K1 ; 1 ; 0 ; 54 ; 7 ; no ; no ; no ; 2 ; yes ; no ; yes ; no ; Off ; 3.3-V LVTTL ; 8mA ; Off ; -- ; no ; no ; User ; - ; - ; +; LCD_data[5] ; K2 ; 1 ; 0 ; 55 ; 21 ; no ; no ; no ; 2 ; yes ; no ; yes ; no ; Off ; 3.3-V LVTTL ; 8mA ; Off ; -- ; no ; no ; User ; - ; - ; +; LCD_data[6] ; M3 ; 1 ; 0 ; 51 ; 14 ; no ; no ; no ; 2 ; yes ; no ; yes ; no ; Off ; 3.3-V LVTTL ; 8mA ; Off ; -- ; no ; no ; User ; - ; - ; +; LCD_data[7] ; M5 ; 1 ; 0 ; 47 ; 0 ; no ; no ; no ; 2 ; yes ; no ; yes ; no ; Off ; 3.3-V LVTTL ; 8mA ; Off ; -- ; no ; no ; User ; - ; - ; +; LEDG[0] ; E21 ; 7 ; 107 ; 73 ; 7 ; no ; no ; no ; 2 ; no ; no ; no ; no ; Off ; 2.5 V ; Default ; Series 50 Ohm without Calibration ; -- ; no ; no ; User ; - ; - ; +; LEDG[1] ; E22 ; 7 ; 111 ; 73 ; 7 ; no ; no ; no ; 2 ; no ; no ; no ; no ; Off ; 2.5 V ; Default ; Series 50 Ohm without Calibration ; -- ; no ; no ; User ; - ; - ; +; LEDG[2] ; E25 ; 7 ; 83 ; 73 ; 0 ; no ; no ; no ; 2 ; no ; no ; no ; no ; Off ; 2.5 V ; Default ; Series 50 Ohm without Calibration ; -- ; no ; no ; User ; - ; - ; +; LEDG[3] ; E24 ; 7 ; 85 ; 73 ; 21 ; no ; no ; no ; 2 ; no ; no ; no ; no ; Off ; 2.5 V ; Default ; Series 50 Ohm without Calibration ; -- ; no ; no ; User ; - ; - ; +; LEDG[4] ; H21 ; 7 ; 72 ; 73 ; 14 ; no ; no ; no ; 2 ; no ; no ; no ; no ; Off ; 2.5 V ; Default ; Series 50 Ohm without Calibration ; -- ; no ; no ; User ; - ; - ; +; LEDG[5] ; G20 ; 7 ; 74 ; 73 ; 14 ; no ; no ; no ; 2 ; no ; no ; no ; no ; Off ; 2.5 V ; Default ; Series 50 Ohm without Calibration ; -- ; no ; no ; User ; - ; - ; +; LEDG[6] ; G22 ; 7 ; 72 ; 73 ; 21 ; no ; no ; no ; 2 ; no ; no ; no ; no ; Off ; 2.5 V ; Default ; Series 50 Ohm without Calibration ; -- ; no ; no ; User ; - ; - ; +; LEDG[7] ; G21 ; 7 ; 74 ; 73 ; 21 ; no ; no ; no ; 2 ; no ; no ; no ; no ; Off ; 2.5 V ; Default ; Series 50 Ohm without Calibration ; -- ; no ; no ; User ; - ; - ; +; LEDR[0] ; G19 ; 7 ; 69 ; 73 ; 14 ; no ; no ; no ; 2 ; no ; no ; no ; no ; Off ; 2.5 V ; Default ; Series 50 Ohm without Calibration ; -- ; no ; no ; User ; - ; - ; +; LEDR[10] ; J15 ; 7 ; 60 ; 73 ; 21 ; no ; no ; no ; 2 ; no ; no ; no ; no ; Off ; 2.5 V ; Default ; Series 50 Ohm without Calibration ; -- ; no ; no ; User ; - ; - ; +; LEDR[11] ; H16 ; 7 ; 65 ; 73 ; 21 ; no ; no ; no ; 2 ; no ; no ; no ; no ; Off ; 2.5 V ; Default ; Series 50 Ohm without Calibration ; -- ; no ; no ; User ; - ; - ; +; LEDR[12] ; J16 ; 7 ; 65 ; 73 ; 14 ; no ; no ; no ; 2 ; no ; no ; no ; no ; Off ; 2.5 V ; Default ; Series 50 Ohm without Calibration ; -- ; no ; no ; User ; - ; - ; +; LEDR[13] ; H17 ; 7 ; 67 ; 73 ; 7 ; no ; no ; no ; 2 ; no ; no ; no ; no ; Off ; 2.5 V ; Default ; Series 50 Ohm without Calibration ; -- ; no ; no ; User ; - ; - ; +; LEDR[14] ; F15 ; 7 ; 58 ; 73 ; 0 ; no ; no ; no ; 2 ; no ; no ; no ; no ; Off ; 2.5 V ; Default ; Series 50 Ohm without Calibration ; -- ; no ; no ; User ; - ; - ; +; LEDR[15] ; G15 ; 7 ; 65 ; 73 ; 7 ; no ; no ; no ; 2 ; no ; no ; no ; no ; Off ; 2.5 V ; Default ; Series 50 Ohm without Calibration ; -- ; no ; no ; User ; - ; - ; +; LEDR[16] ; G16 ; 7 ; 67 ; 73 ; 0 ; no ; no ; no ; 2 ; no ; no ; no ; no ; Off ; 2.5 V ; Default ; Series 50 Ohm without Calibration ; -- ; no ; no ; User ; - ; - ; +; LEDR[17] ; H15 ; 7 ; 60 ; 73 ; 14 ; no ; no ; no ; 2 ; no ; no ; no ; no ; Off ; 2.5 V ; Default ; Series 50 Ohm without Calibration ; -- ; no ; no ; User ; - ; - ; +; LEDR[1] ; F19 ; 7 ; 94 ; 73 ; 0 ; no ; no ; no ; 2 ; no ; no ; no ; no ; Off ; 2.5 V ; Default ; Series 50 Ohm without Calibration ; -- ; no ; no ; User ; - ; - ; +; LEDR[2] ; E19 ; 7 ; 94 ; 73 ; 7 ; no ; no ; no ; 2 ; no ; no ; no ; no ; Off ; 2.5 V ; Default ; Series 50 Ohm without Calibration ; -- ; no ; no ; User ; - ; - ; +; LEDR[3] ; F21 ; 7 ; 107 ; 73 ; 14 ; no ; no ; no ; 2 ; no ; no ; no ; no ; Off ; 2.5 V ; Default ; Series 50 Ohm without Calibration ; -- ; no ; no ; User ; - ; - ; +; LEDR[4] ; F18 ; 7 ; 87 ; 73 ; 14 ; no ; no ; no ; 2 ; no ; no ; no ; no ; Off ; 2.5 V ; Default ; Series 50 Ohm without Calibration ; -- ; no ; no ; User ; - ; - ; +; LEDR[5] ; E18 ; 7 ; 87 ; 73 ; 7 ; no ; no ; no ; 2 ; no ; no ; no ; no ; Off ; 2.5 V ; Default ; Series 50 Ohm without Calibration ; -- ; no ; no ; User ; - ; - ; +; LEDR[6] ; J19 ; 7 ; 72 ; 73 ; 7 ; no ; no ; no ; 2 ; no ; no ; no ; no ; Off ; 2.5 V ; Default ; Series 50 Ohm without Calibration ; -- ; no ; no ; User ; - ; - ; +; LEDR[7] ; H19 ; 7 ; 72 ; 73 ; 0 ; no ; no ; no ; 2 ; no ; no ; no ; no ; Off ; 2.5 V ; Default ; Series 50 Ohm without Calibration ; -- ; no ; no ; User ; - ; - ; +; LEDR[8] ; J17 ; 7 ; 69 ; 73 ; 0 ; no ; no ; no ; 2 ; no ; no ; no ; no ; Off ; 2.5 V ; Default ; Series 50 Ohm without Calibration ; -- ; no ; no ; User ; - ; - ; +; LEDR[9] ; G17 ; 7 ; 83 ; 73 ; 21 ; no ; no ; no ; 2 ; no ; no ; no ; no ; Off ; 2.5 V ; Default ; Series 50 Ohm without Calibration ; -- ; no ; no ; User ; - ; - ; ++-------------+-------+----------+--------------+--------------+--------------+-----------------+------------------------+---------------+-----------+-----------------+------------+---------------+----------+--------------+--------------+------------------+-----------------------------------+---------------------------+----------------------------+-----------------------------+----------------------+----------------------+---------------------+ + + ++-------------------------------------------------------------------------------------------------------------------------+ +; Dual Purpose and Dedicated Pins ; ++----------+-----------------------------+--------------------------+-------------------------+---------------------------+ +; Location ; Pin Name ; Reserved As ; User Signal Name ; Pin Type ; ++----------+-----------------------------+--------------------------+-------------------------+---------------------------+ +; F4 ; DIFFIO_L5n, DATA1, ASDO ; As input tri-stated ; ~ALTERA_ASDO_DATA1~ ; Dual Purpose Pin ; +; E2 ; DIFFIO_L8p, FLASH_nCE, nCSO ; As input tri-stated ; ~ALTERA_FLASH_nCE_nCSO~ ; Dual Purpose Pin ; +; M6 ; nSTATUS ; - ; - ; Dedicated Programming Pin ; +; P3 ; DCLK ; As output driving ground ; ~ALTERA_DCLK~ ; Dual Purpose Pin ; +; N7 ; DATA0 ; As input tri-stated ; ~ALTERA_DATA0~ ; Dual Purpose Pin ; +; P4 ; nCONFIG ; - ; - ; Dedicated Programming Pin ; +; P7 ; TDI ; - ; altera_reserved_tdi ; JTAG Pin ; +; P5 ; TCK ; - ; altera_reserved_tck ; JTAG Pin ; +; P8 ; TMS ; - ; altera_reserved_tms ; JTAG Pin ; +; P6 ; TDO ; - ; altera_reserved_tdo ; JTAG Pin ; +; R8 ; nCE ; - ; - ; Dedicated Programming Pin ; +; P24 ; CONF_DONE ; - ; - ; Dedicated Programming Pin ; +; N22 ; MSEL0 ; - ; - ; Dedicated Programming Pin ; +; P23 ; MSEL1 ; - ; - ; Dedicated Programming Pin ; +; M22 ; MSEL2 ; - ; - ; Dedicated Programming Pin ; +; P22 ; MSEL3 ; - ; - ; Dedicated Programming Pin ; +; P28 ; DIFFIO_R23n, nCEO ; Use as programming pin ; ~ALTERA_nCEO~ ; Dual Purpose Pin ; ++----------+-----------------------------+--------------------------+-------------------------+---------------------------+ + + ++------------------------------------------------------------+ +; I/O Bank Usage ; ++----------+------------------+---------------+--------------+ +; I/O Bank ; Usage ; VCCIO Voltage ; VREF Voltage ; ++----------+------------------+---------------+--------------+ +; 1 ; 17 / 56 ( 30 % ) ; 3.3V ; -- ; +; 2 ; 1 / 63 ( 2 % ) ; 3.3V ; -- ; +; 3 ; 1 / 73 ( 1 % ) ; 3.3V ; -- ; +; 4 ; 32 / 71 ( 45 % ) ; 3.3V ; -- ; +; 5 ; 34 / 65 ( 52 % ) ; 2.5V ; -- ; +; 6 ; 9 / 58 ( 16 % ) ; 2.5V ; -- ; +; 7 ; 29 / 72 ( 40 % ) ; 2.5V ; -- ; +; 8 ; 0 / 71 ( 0 % ) ; 2.5V ; -- ; ++----------+------------------+---------------+--------------+ + + ++-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; All Package Pins ; ++----------+------------+----------+-----------------------------------------------------------+--------+--------------+---------+------------+-----------------+----------+--------------+ +; Location ; Pad Number ; I/O Bank ; Pin Name/Usage ; Dir. ; I/O Standard ; Voltage ; I/O Type ; User Assignment ; Bus Hold ; Weak Pull Up ; ++----------+------------+----------+-----------------------------------------------------------+--------+--------------+---------+------------+-----------------+----------+--------------+ +; A2 ; ; 8 ; VCCIO8 ; power ; ; 2.5V ; -- ; ; -- ; -- ; +; A3 ; 535 ; 8 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; A4 ; 532 ; 8 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; A5 ; ; 8 ; VCCIO8 ; power ; ; 2.5V ; -- ; ; -- ; -- ; +; A6 ; 504 ; 8 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; A7 ; 501 ; 8 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; A8 ; 517 ; 8 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; A9 ; ; 8 ; VCCIO8 ; power ; ; 2.5V ; -- ; ; -- ; -- ; +; A10 ; 491 ; 8 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; A11 ; 487 ; 8 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; A12 ; 482 ; 8 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; A13 ; ; 8 ; VCCIO8 ; power ; ; 2.5V ; -- ; ; -- ; -- ; +; A14 ; 472 ; 8 ; GND+ ; ; ; ; Column I/O ; ; -- ; -- ; +; A15 ; 470 ; 7 ; GND+ ; ; ; ; Column I/O ; ; -- ; -- ; +; A16 ; ; 7 ; VCCIO7 ; power ; ; 2.5V ; -- ; ; -- ; -- ; +; A17 ; 462 ; 7 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; A18 ; 442 ; 7 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; A19 ; 440 ; 7 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; A20 ; ; 7 ; VCCIO7 ; power ; ; 2.5V ; -- ; ; -- ; -- ; +; A21 ; 425 ; 7 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; A22 ; 423 ; 7 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; A23 ; 412 ; 7 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; A24 ; ; 7 ; VCCIO7 ; power ; ; 2.5V ; -- ; ; -- ; -- ; +; A25 ; 405 ; 7 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; A26 ; 404 ; 7 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; A27 ; ; 7 ; VCCIO7 ; power ; ; 2.5V ; -- ; ; -- ; -- ; +; AA1 ; ; 2 ; VCCIO2 ; power ; ; 3.3V ; -- ; ; -- ; -- ; +; AA2 ; ; ; GND ; gnd ; ; ; -- ; ; -- ; -- ; +; AA3 ; 102 ; 2 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; AA4 ; 101 ; 2 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; AA5 ; 119 ; 2 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; AA6 ; 118 ; 2 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; AA7 ; 120 ; 2 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; AA8 ; 154 ; 3 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; AA9 ; ; ; GNDA1 ; gnd ; ; ; -- ; ; -- ; -- ; +; AA10 ; 155 ; 3 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; AA11 ; ; 3 ; VCCIO3 ; power ; ; 3.3V ; -- ; ; -- ; -- ; +; AA12 ; 188 ; 3 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; AA13 ; 190 ; 3 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; AA14 ; 191 ; 3 ; HEX7[6] ; output ; 3.3-V LVTTL ; ; Column I/O ; Y ; no ; Off ; +; AA15 ; 213 ; 4 ; HEX6[5] ; output ; 3.3-V LVTTL ; ; Column I/O ; Y ; no ; Off ; +; AA16 ; 211 ; 4 ; HEX6[2] ; output ; 3.3-V LVTTL ; ; Column I/O ; Y ; no ; Off ; +; AA17 ; 241 ; 4 ; HEX6[0] ; output ; 3.3-V LVTTL ; ; Column I/O ; Y ; no ; Off ; +; AA18 ; ; 4 ; VCCIO4 ; power ; ; 3.3V ; -- ; ; -- ; -- ; +; AA19 ; 264 ; 4 ; HEX4[1] ; output ; 3.3-V LVTTL ; ; Column I/O ; Y ; no ; Off ; +; AA20 ; ; ; GNDA4 ; gnd ; ; ; -- ; ; -- ; -- ; +; AA21 ; 269 ; 4 ; HEX3[3] ; output ; 3.3-V LVTTL ; ; Column I/O ; Y ; no ; Off ; +; AA22 ; 275 ; 5 ; SW[15] ; input ; 2.5 V ; ; Row I/O ; Y ; no ; Off ; +; AA23 ; 280 ; 5 ; SW[14] ; input ; 2.5 V ; ; Row I/O ; Y ; no ; Off ; +; AA24 ; 279 ; 5 ; SW[13] ; input ; 2.5 V ; ; Row I/O ; Y ; no ; Off ; +; AA25 ; 294 ; 5 ; HEX2[0] ; output ; 2.5 V ; ; Row I/O ; Y ; no ; Off ; +; AA26 ; 293 ; 5 ; HEX2[1] ; output ; 2.5 V ; ; Row I/O ; Y ; no ; Off ; +; AA27 ; ; ; GND ; gnd ; ; ; -- ; ; -- ; -- ; +; AA28 ; ; 5 ; VCCIO5 ; power ; ; 2.5V ; -- ; ; -- ; -- ; +; AB1 ; 86 ; 2 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; AB2 ; 85 ; 2 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; AB3 ; 99 ; 2 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; AB4 ; 121 ; 2 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; -- ; -- ; +; AB5 ; 127 ; 2 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; AB6 ; 126 ; 2 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; AB7 ; 152 ; 3 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; AB8 ; 148 ; 3 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; AB9 ; 147 ; 3 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; AB10 ; 173 ; 3 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; AB11 ; 164 ; 3 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; -- ; -- ; +; AB12 ; 180 ; 3 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; AB13 ; 181 ; 3 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; -- ; -- ; +; AB14 ; 192 ; 3 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; AB15 ; 214 ; 4 ; HEX6[4] ; output ; 3.3-V LVTTL ; ; Column I/O ; Y ; no ; Off ; +; AB16 ; 212 ; 4 ; HEX6[1] ; output ; 3.3-V LVTTL ; ; Column I/O ; Y ; no ; Off ; +; AB17 ; 242 ; 4 ; HEX6[3] ; output ; 3.3-V LVTTL ; ; Column I/O ; Y ; no ; Off ; +; AB18 ; 254 ; 4 ; HEX5[2] ; output ; 3.3-V LVTTL ; ; Column I/O ; Y ; no ; Off ; +; AB19 ; 253 ; 4 ; HEX4[0] ; output ; 3.3-V LVTTL ; ; Column I/O ; Y ; no ; Off ; +; AB20 ; 257 ; 4 ; HEX3[2] ; output ; 3.3-V LVTTL ; ; Column I/O ; Y ; no ; Off ; +; AB21 ; 266 ; 4 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; AB22 ; 265 ; 4 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; AB23 ; 276 ; 5 ; SW[12] ; input ; 2.5 V ; ; Row I/O ; Y ; no ; Off ; +; AB24 ; 274 ; 5 ; SW[11] ; input ; 2.5 V ; ; Row I/O ; Y ; no ; Off ; +; AB25 ; 292 ; 5 ; SW[9] ; input ; 2.5 V ; ; Row I/O ; Y ; no ; Off ; +; AB26 ; 291 ; 5 ; SW[7] ; input ; 2.5 V ; ; Row I/O ; Y ; no ; Off ; +; AB27 ; 296 ; 5 ; SW[4] ; input ; 2.5 V ; ; Row I/O ; Y ; no ; Off ; +; AB28 ; 295 ; 5 ; SW[0] ; input ; 2.5 V ; ; Row I/O ; Y ; no ; Off ; +; AC1 ; 94 ; 2 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; AC2 ; 93 ; 2 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; AC3 ; 95 ; 2 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; AC4 ; 125 ; 2 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; AC5 ; 124 ; 2 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; AC6 ; ; ; GND ; gnd ; ; ; -- ; ; -- ; -- ; +; AC7 ; 144 ; 3 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; AC8 ; 153 ; 3 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; AC9 ; ; ; GND ; gnd ; ; ; -- ; ; -- ; -- ; +; AC10 ; 174 ; 3 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; AC11 ; 185 ; 3 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; AC12 ; 179 ; 3 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; AC13 ; ; ; GND ; gnd ; ; ; -- ; ; -- ; -- ; +; AC14 ; 195 ; 3 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; AC15 ; 203 ; 4 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; AC16 ; ; ; GND ; gnd ; ; ; -- ; ; -- ; -- ; +; AC17 ; 221 ; 4 ; HEX6[6] ; output ; 3.3-V LVTTL ; ; Column I/O ; Y ; no ; Off ; +; AC18 ; 240 ; 4 ; HEX5[1] ; output ; 3.3-V LVTTL ; ; Column I/O ; Y ; no ; Off ; +; AC19 ; 247 ; 4 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; AC20 ; ; ; GND ; gnd ; ; ; -- ; ; -- ; -- ; +; AC21 ; 258 ; 4 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; AC22 ; 267 ; 4 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; AC23 ; ; ; GND ; gnd ; ; ; -- ; ; -- ; -- ; +; AC24 ; 273 ; 5 ; SW[10] ; input ; 2.5 V ; ; Row I/O ; Y ; no ; Off ; +; AC25 ; 272 ; 5 ; SW[8] ; input ; 2.5 V ; ; Row I/O ; Y ; no ; Off ; +; AC26 ; 282 ; 5 ; SW[5] ; input ; 2.5 V ; ; Row I/O ; Y ; no ; Off ; +; AC27 ; 290 ; 5 ; SW[2] ; input ; 2.5 V ; ; Row I/O ; Y ; no ; Off ; +; AC28 ; 289 ; 5 ; SW[1] ; input ; 2.5 V ; ; Row I/O ; Y ; no ; Off ; +; AD1 ; 98 ; 2 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; AD2 ; 97 ; 2 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; AD3 ; 96 ; 2 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; AD4 ; 130 ; 3 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; AD5 ; 128 ; 3 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; AD6 ; ; 3 ; VCCIO3 ; power ; ; 3.3V ; -- ; ; -- ; -- ; +; AD7 ; 134 ; 3 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; AD8 ; 143 ; 3 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; AD9 ; ; 3 ; VCCIO3 ; power ; ; 3.3V ; -- ; ; -- ; -- ; +; AD10 ; 149 ; 3 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; AD11 ; 186 ; 3 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; AD12 ; 182 ; 3 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; AD13 ; ; 3 ; VCCIO3 ; power ; ; 3.3V ; -- ; ; -- ; -- ; +; AD14 ; 196 ; 3 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; AD15 ; 204 ; 4 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; AD16 ; ; 4 ; VCCIO4 ; power ; ; 3.3V ; -- ; ; -- ; -- ; +; AD17 ; 222 ; 4 ; HEX7[0] ; output ; 3.3-V LVTTL ; ; Column I/O ; Y ; no ; Off ; +; AD18 ; 237 ; 4 ; HEX5[0] ; output ; 3.3-V LVTTL ; ; Column I/O ; Y ; no ; Off ; +; AD19 ; 248 ; 4 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; AD20 ; ; 4 ; VCCIO4 ; power ; ; 3.3V ; -- ; ; -- ; -- ; +; AD21 ; 259 ; 4 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; AD22 ; 268 ; 4 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; AD23 ; ; 4 ; VCCIO4 ; power ; ; 3.3V ; -- ; ; -- ; -- ; +; AD24 ; 260 ; 4 ; HEX3[4] ; output ; 3.3-V LVTTL ; ; Column I/O ; Y ; no ; Off ; +; AD25 ; 255 ; 4 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; AD26 ; 281 ; 5 ; SW[6] ; input ; 2.5 V ; ; Row I/O ; Y ; no ; Off ; +; AD27 ; 286 ; 5 ; SW[3] ; input ; 2.5 V ; ; Row I/O ; Y ; no ; Off ; +; AD28 ; 285 ; 5 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; AE1 ; 106 ; 2 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; AE2 ; 105 ; 2 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; AE3 ; 122 ; 2 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; AE4 ; 132 ; 3 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; AE5 ; 135 ; 3 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; AE6 ; 129 ; 3 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; AE7 ; 158 ; 3 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; AE8 ; 161 ; 3 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; AE9 ; 163 ; 3 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; AE10 ; 165 ; 3 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; AE11 ; 171 ; 3 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; AE12 ; 169 ; 3 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; AE13 ; 177 ; 3 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; AE14 ; 183 ; 3 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; AE15 ; 205 ; 4 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; AE16 ; 209 ; 4 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; AE17 ; 215 ; 4 ; HEX7[1] ; output ; 3.3-V LVTTL ; ; Column I/O ; Y ; no ; Off ; +; AE18 ; 225 ; 4 ; HEX4[6] ; output ; 3.3-V LVTTL ; ; Column I/O ; Y ; no ; Off ; +; AE19 ; 231 ; 4 ; HEX4[4] ; output ; 3.3-V LVTTL ; ; Column I/O ; Y ; no ; Off ; +; AE20 ; 235 ; 4 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; AE21 ; 238 ; 4 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; AE22 ; 251 ; 4 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; AE23 ; 261 ; 4 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; AE24 ; 256 ; 4 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; AE25 ; 243 ; 4 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; AE26 ; 278 ; 5 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; AE27 ; 284 ; 5 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; AE28 ; 283 ; 5 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; AF1 ; ; ; GND ; gnd ; ; ; -- ; ; -- ; -- ; +; AF2 ; 123 ; 2 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; AF3 ; 138 ; 3 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; AF4 ; 131 ; 3 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; AF5 ; 136 ; 3 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; AF6 ; 139 ; 3 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; AF7 ; 159 ; 3 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; AF8 ; 162 ; 3 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; AF9 ; 160 ; 3 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; AF10 ; 166 ; 3 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; AF11 ; 172 ; 3 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; AF12 ; 170 ; 3 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; AF13 ; 178 ; 3 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; AF14 ; 184 ; 3 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; AF15 ; 206 ; 4 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; AF16 ; 210 ; 4 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; AF17 ; 216 ; 4 ; HEX7[4] ; output ; 3.3-V LVTTL ; ; Column I/O ; Y ; no ; Off ; +; AF18 ; 226 ; 4 ; HEX5[5] ; output ; 3.3-V LVTTL ; ; Column I/O ; Y ; no ; Off ; +; AF19 ; 232 ; 4 ; HEX4[5] ; output ; 3.3-V LVTTL ; ; Column I/O ; Y ; no ; Off ; +; AF20 ; 236 ; 4 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; AF21 ; 239 ; 4 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; AF22 ; 252 ; 4 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; AF23 ; 262 ; 4 ; HEX3[5] ; output ; 3.3-V LVTTL ; ; Column I/O ; Y ; no ; Off ; +; AF24 ; 233 ; 4 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; AF25 ; 234 ; 4 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; AF26 ; 244 ; 4 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; AF27 ; 277 ; 5 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; AF28 ; ; ; GND ; gnd ; ; ; -- ; ; -- ; -- ; +; AG1 ; ; 2 ; VCCIO2 ; power ; ; 3.3V ; -- ; ; -- ; -- ; +; AG2 ; ; ; GND ; gnd ; ; ; -- ; ; -- ; -- ; +; AG3 ; 133 ; 3 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; AG4 ; 141 ; 3 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; AG5 ; ; ; GND ; gnd ; ; ; -- ; ; -- ; -- ; +; AG6 ; 145 ; 3 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; AG7 ; 150 ; 3 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; AG8 ; 156 ; 3 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; AG9 ; ; ; GND ; gnd ; ; ; -- ; ; -- ; -- ; +; AG10 ; 167 ; 3 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; AG11 ; 175 ; 3 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; AG12 ; 193 ; 3 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; AG13 ; ; ; GND ; gnd ; ; ; -- ; ; -- ; -- ; +; AG14 ; 199 ; 3 ; GND+ ; ; ; ; Column I/O ; ; -- ; -- ; +; AG15 ; 201 ; 4 ; GND+ ; ; ; ; Column I/O ; ; -- ; -- ; +; AG16 ; ; ; GND ; gnd ; ; ; -- ; ; -- ; -- ; +; AG17 ; 207 ; 4 ; HEX7[2] ; output ; 3.3-V LVTTL ; ; Column I/O ; Y ; no ; Off ; +; AG18 ; 217 ; 4 ; HEX7[5] ; output ; 3.3-V LVTTL ; ; Column I/O ; Y ; no ; Off ; +; AG19 ; 219 ; 4 ; HEX5[4] ; output ; 3.3-V LVTTL ; ; Column I/O ; Y ; no ; Off ; +; AG20 ; ; ; GND ; gnd ; ; ; -- ; ; -- ; -- ; +; AG21 ; 223 ; 4 ; HEX4[2] ; output ; 3.3-V LVTTL ; ; Column I/O ; Y ; no ; Off ; +; AG22 ; 227 ; 4 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; AG23 ; 229 ; 4 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; AG24 ; ; ; GND ; gnd ; ; ; -- ; ; -- ; -- ; +; AG25 ; 245 ; 4 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; AG26 ; 270 ; 4 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; AG27 ; ; ; GND ; gnd ; ; ; -- ; ; -- ; -- ; +; AG28 ; ; 5 ; VCCIO5 ; power ; ; 2.5V ; -- ; ; -- ; -- ; +; AH2 ; ; 3 ; VCCIO3 ; power ; ; 3.3V ; -- ; ; -- ; -- ; +; AH3 ; 137 ; 3 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; AH4 ; 142 ; 3 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; AH5 ; ; 3 ; VCCIO3 ; power ; ; 3.3V ; -- ; ; -- ; -- ; +; AH6 ; 146 ; 3 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; AH7 ; 151 ; 3 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; AH8 ; 157 ; 3 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; AH9 ; ; 3 ; VCCIO3 ; power ; ; 3.3V ; -- ; ; -- ; -- ; +; AH10 ; 168 ; 3 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; AH11 ; 176 ; 3 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; AH12 ; 194 ; 3 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; AH13 ; ; 3 ; VCCIO3 ; power ; ; 3.3V ; -- ; ; -- ; -- ; +; AH14 ; 200 ; 3 ; GND+ ; ; ; ; Column I/O ; ; -- ; -- ; +; AH15 ; 202 ; 4 ; GND+ ; ; ; ; Column I/O ; ; -- ; -- ; +; AH16 ; ; 4 ; VCCIO4 ; power ; ; 3.3V ; -- ; ; -- ; -- ; +; AH17 ; 208 ; 4 ; HEX7[3] ; output ; 3.3-V LVTTL ; ; Column I/O ; Y ; no ; Off ; +; AH18 ; 218 ; 4 ; HEX5[6] ; output ; 3.3-V LVTTL ; ; Column I/O ; Y ; no ; Off ; +; AH19 ; 220 ; 4 ; HEX5[3] ; output ; 3.3-V LVTTL ; ; Column I/O ; Y ; no ; Off ; +; AH20 ; ; 4 ; VCCIO4 ; power ; ; 3.3V ; -- ; ; -- ; -- ; +; AH21 ; 224 ; 4 ; HEX4[3] ; output ; 3.3-V LVTTL ; ; Column I/O ; Y ; no ; Off ; +; AH22 ; 228 ; 4 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; AH23 ; 230 ; 4 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; AH24 ; ; 4 ; VCCIO4 ; power ; ; 3.3V ; -- ; ; -- ; -- ; +; AH25 ; 246 ; 4 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; AH26 ; 271 ; 4 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; AH27 ; ; 4 ; VCCIO4 ; power ; ; 3.3V ; -- ; ; -- ; -- ; +; B1 ; ; 1 ; VCCIO1 ; power ; ; 3.3V ; -- ; ; -- ; -- ; +; B2 ; ; ; GND ; gnd ; ; ; -- ; ; -- ; -- ; +; B3 ; 534 ; 8 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; B4 ; 533 ; 8 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; B5 ; ; ; GND ; gnd ; ; ; -- ; ; -- ; -- ; +; B6 ; 505 ; 8 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; B7 ; 502 ; 8 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; B8 ; 518 ; 8 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; B9 ; ; ; GND ; gnd ; ; ; -- ; ; -- ; -- ; +; B10 ; 492 ; 8 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; B11 ; 488 ; 8 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; B12 ; ; ; GND ; gnd ; ; ; -- ; ; -- ; -- ; +; B13 ; ; ; GND ; gnd ; ; ; -- ; ; -- ; -- ; +; B14 ; 473 ; 8 ; GND+ ; ; ; ; Column I/O ; ; -- ; -- ; +; B15 ; 471 ; 7 ; GND+ ; ; ; ; Column I/O ; ; -- ; -- ; +; B16 ; ; ; GND ; gnd ; ; ; -- ; ; -- ; -- ; +; B17 ; 463 ; 7 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; B18 ; 443 ; 7 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; B19 ; 441 ; 7 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; B20 ; ; ; GND ; gnd ; ; ; -- ; ; -- ; -- ; +; B21 ; 426 ; 7 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; B22 ; 424 ; 7 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; B23 ; 413 ; 7 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; B24 ; ; ; GND ; gnd ; ; ; -- ; ; -- ; -- ; +; B25 ; 406 ; 7 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; B26 ; 401 ; 7 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; B27 ; ; ; GND ; gnd ; ; ; -- ; ; -- ; -- ; +; B28 ; ; 6 ; VCCIO6 ; power ; ; 2.5V ; -- ; ; -- ; -- ; +; C1 ; ; ; GND ; gnd ; ; ; -- ; ; -- ; -- ; +; C2 ; 1 ; 1 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; C3 ; 543 ; 8 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; C4 ; 539 ; 8 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; C5 ; 538 ; 8 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; C6 ; 536 ; 8 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; C7 ; 521 ; 8 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; C8 ; 519 ; 8 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; C9 ; 510 ; 8 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; C10 ; 495 ; 8 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; C11 ; 508 ; 8 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; C12 ; 478 ; 8 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; C13 ; 474 ; 8 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; C14 ; 476 ; 8 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; C15 ; 468 ; 7 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; C16 ; 460 ; 7 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; C17 ; 438 ; 7 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; C18 ; 429 ; 7 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; C19 ; 435 ; 7 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; C20 ; 431 ; 7 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; C21 ; 422 ; 7 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; C22 ; 418 ; 7 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; C23 ; 415 ; 7 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; C24 ; 416 ; 7 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; C25 ; 411 ; 7 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; C26 ; 400 ; 7 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; C27 ; 382 ; 6 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; C28 ; ; ; GND ; gnd ; ; ; -- ; ; -- ; -- ; +; D1 ; 3 ; 1 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; D2 ; 2 ; 1 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; D3 ; ; ; GND ; gnd ; ; ; -- ; ; -- ; -- ; +; D4 ; 540 ; 8 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; D5 ; 537 ; 8 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; D6 ; 524 ; 8 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; D7 ; 522 ; 8 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; D8 ; 520 ; 8 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; D9 ; 511 ; 8 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; D10 ; 496 ; 8 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; D11 ; 509 ; 8 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; D12 ; 479 ; 8 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; D13 ; 475 ; 8 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; D14 ; 477 ; 8 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; D15 ; 469 ; 7 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; D16 ; 461 ; 7 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; D17 ; 439 ; 7 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; D18 ; 430 ; 7 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; D19 ; 436 ; 7 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; D20 ; 432 ; 7 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; D21 ; 419 ; 7 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; D22 ; 402 ; 7 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; D23 ; 414 ; 7 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; D24 ; 417 ; 7 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; D25 ; 410 ; 7 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; D26 ; 383 ; 6 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; D27 ; 381 ; 6 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; D28 ; 380 ; 6 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; E1 ; 17 ; 1 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; E2 ; 16 ; 1 ; ~ALTERA_FLASH_nCE_nCSO~ / RESERVED_INPUT_WITH_WEAK_PULLUP ; input ; 3.3-V LVTTL ; ; Row I/O ; N ; no ; On ; +; E3 ; 7 ; 1 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; E4 ; 541 ; 8 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; E5 ; 542 ; 8 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; E6 ; ; 8 ; VCCIO8 ; power ; ; 2.5V ; -- ; ; -- ; -- ; +; E7 ; 523 ; 8 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; E8 ; 526 ; 8 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; E9 ; ; 8 ; VCCIO8 ; power ; ; 2.5V ; -- ; ; -- ; -- ; +; E10 ; 516 ; 8 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; E11 ; 499 ; 8 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; E12 ; 497 ; 8 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; E13 ; ; 8 ; VCCIO8 ; power ; ; 2.5V ; -- ; ; -- ; -- ; +; E14 ; 486 ; 8 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; E15 ; 467 ; 7 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; E16 ; ; 7 ; VCCIO7 ; power ; ; 2.5V ; -- ; ; -- ; -- ; +; E17 ; 456 ; 7 ; HEX0[2] ; output ; 2.5 V ; ; Column I/O ; Y ; no ; Off ; +; E18 ; 427 ; 7 ; LEDR[5] ; output ; 2.5 V ; ; Column I/O ; Y ; no ; Off ; +; E19 ; 421 ; 7 ; LEDR[2] ; output ; 2.5 V ; ; Column I/O ; Y ; no ; Off ; +; E20 ; ; 7 ; VCCIO7 ; power ; ; 2.5V ; -- ; ; -- ; -- ; +; E21 ; 407 ; 7 ; LEDG[0] ; output ; 2.5 V ; ; Column I/O ; Y ; no ; Off ; +; E22 ; 403 ; 7 ; LEDG[1] ; output ; 2.5 V ; ; Column I/O ; Y ; no ; Off ; +; E23 ; ; 7 ; VCCIO7 ; power ; ; 2.5V ; -- ; ; -- ; -- ; +; E24 ; 433 ; 7 ; LEDG[3] ; output ; 2.5 V ; ; Column I/O ; Y ; no ; Off ; +; E25 ; 434 ; 7 ; LEDG[2] ; output ; 2.5 V ; ; Column I/O ; Y ; no ; Off ; +; E26 ; 378 ; 6 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; E27 ; 375 ; 6 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; E28 ; 374 ; 6 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; F1 ; 19 ; 1 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; F2 ; 18 ; 1 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; F3 ; 8 ; 1 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; F4 ; 10 ; 1 ; ~ALTERA_ASDO_DATA1~ / RESERVED_INPUT_WITH_WEAK_PULLUP ; input ; 3.3-V LVTTL ; ; Row I/O ; N ; no ; On ; +; F5 ; 9 ; 1 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; F6 ; ; ; GND ; gnd ; ; ; -- ; ; -- ; -- ; +; F7 ; 531 ; 8 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; F8 ; 527 ; 8 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; F9 ; ; ; GND ; gnd ; ; ; -- ; ; -- ; -- ; +; F10 ; 512 ; 8 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; F11 ; 500 ; 8 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; F12 ; 498 ; 8 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; F13 ; ; ; GND ; gnd ; ; ; -- ; ; -- ; -- ; +; F14 ; 485 ; 8 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; F15 ; 466 ; 7 ; LEDR[14] ; output ; 2.5 V ; ; Column I/O ; Y ; no ; Off ; +; F16 ; ; ; GND ; gnd ; ; ; -- ; ; -- ; -- ; +; F17 ; 455 ; 7 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; F18 ; 428 ; 7 ; LEDR[4] ; output ; 2.5 V ; ; Column I/O ; Y ; no ; Off ; +; F19 ; 420 ; 7 ; LEDR[1] ; output ; 2.5 V ; ; Column I/O ; Y ; no ; Off ; +; F20 ; ; ; GND ; gnd ; ; ; -- ; ; -- ; -- ; +; F21 ; 408 ; 7 ; LEDR[3] ; output ; 2.5 V ; ; Column I/O ; Y ; no ; Off ; +; F22 ; 409 ; 7 ; HEX0[1] ; output ; 2.5 V ; ; Column I/O ; Y ; no ; Off ; +; F23 ; ; ; GND ; gnd ; ; ; -- ; ; -- ; -- ; +; F24 ; 396 ; 6 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; F25 ; 395 ; 6 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; F26 ; 379 ; 6 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; F27 ; 373 ; 6 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; F28 ; 372 ; 6 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; G1 ; 26 ; 1 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; G2 ; 25 ; 1 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; G3 ; 13 ; 1 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; G4 ; 12 ; 1 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; G5 ; 6 ; 1 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; G6 ; 5 ; 1 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; G7 ; 530 ; 8 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; G8 ; 528 ; 8 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; G9 ; 525 ; 8 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; -- ; -- ; +; G10 ; 513 ; 8 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; G11 ; 506 ; 8 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; G12 ; 503 ; 8 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; -- ; -- ; +; G13 ; 493 ; 8 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; G14 ; 484 ; 8 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; -- ; -- ; +; G15 ; 457 ; 7 ; LEDR[15] ; output ; 2.5 V ; ; Column I/O ; Y ; no ; Off ; +; G16 ; 453 ; 7 ; LEDR[16] ; output ; 2.5 V ; ; Column I/O ; Y ; no ; Off ; +; G17 ; 437 ; 7 ; LEDR[9] ; output ; 2.5 V ; ; Column I/O ; Y ; no ; Off ; +; G18 ; 452 ; 7 ; HEX0[0] ; output ; 2.5 V ; ; Column I/O ; Y ; no ; Off ; +; G19 ; 451 ; 7 ; LEDR[0] ; output ; 2.5 V ; ; Column I/O ; Y ; no ; Off ; +; G20 ; 444 ; 7 ; LEDG[5] ; output ; 2.5 V ; ; Column I/O ; Y ; no ; Off ; +; G21 ; 445 ; 7 ; LEDG[7] ; output ; 2.5 V ; ; Column I/O ; Y ; no ; Off ; +; G22 ; 449 ; 7 ; LEDG[6] ; output ; 2.5 V ; ; Column I/O ; Y ; no ; Off ; +; G23 ; 398 ; 6 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; G24 ; 397 ; 6 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; G25 ; 393 ; 6 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; G26 ; 392 ; 6 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; G27 ; 367 ; 6 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; G28 ; 366 ; 6 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; H1 ; ; 1 ; VCCIO1 ; power ; ; 3.3V ; -- ; ; -- ; -- ; +; H2 ; ; ; GND ; gnd ; ; ; -- ; ; -- ; -- ; +; H3 ; 15 ; 1 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; H4 ; 14 ; 1 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; H5 ; 20 ; 1 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; H6 ; 11 ; 1 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; H7 ; 4 ; 1 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; -- ; -- ; +; H8 ; 529 ; 8 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; H9 ; ; ; GNDA3 ; gnd ; ; ; -- ; ; -- ; -- ; +; H10 ; 514 ; 8 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; H11 ; ; 8 ; VCCIO8 ; power ; ; 2.5V ; -- ; ; -- ; -- ; +; H12 ; 507 ; 8 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; H13 ; 494 ; 8 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; H14 ; 480 ; 8 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; H15 ; 464 ; 7 ; LEDR[17] ; output ; 2.5 V ; ; Column I/O ; Y ; no ; Off ; +; H16 ; 459 ; 7 ; LEDR[11] ; output ; 2.5 V ; ; Column I/O ; Y ; no ; Off ; +; H17 ; 454 ; 7 ; LEDR[13] ; output ; 2.5 V ; ; Column I/O ; Y ; no ; Off ; +; H18 ; ; 7 ; VCCIO7 ; power ; ; 2.5V ; -- ; ; -- ; -- ; +; H19 ; 446 ; 7 ; LEDR[7] ; output ; 2.5 V ; ; Column I/O ; Y ; no ; Off ; +; H20 ; ; ; GNDA2 ; gnd ; ; ; -- ; ; -- ; -- ; +; H21 ; 448 ; 7 ; LEDG[4] ; output ; 2.5 V ; ; Column I/O ; Y ; no ; Off ; +; H22 ; 399 ; 6 ; HEX0[6] ; output ; 2.5 V ; ; Row I/O ; Y ; no ; Off ; +; H23 ; 391 ; 6 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; H24 ; 390 ; 6 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; H25 ; 377 ; 6 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; H26 ; 376 ; 6 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; H27 ; ; ; GND ; gnd ; ; ; -- ; ; -- ; -- ; +; H28 ; ; 6 ; VCCIO6 ; power ; ; 2.5V ; -- ; ; -- ; -- ; +; J1 ; 64 ; 1 ; GND+ ; ; ; ; Row I/O ; ; -- ; -- ; +; J2 ; ; ; GND ; gnd ; ; ; -- ; ; -- ; -- ; +; J3 ; 23 ; 1 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; J4 ; 22 ; 1 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; J5 ; 36 ; 1 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; J6 ; 35 ; 1 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; J7 ; 37 ; 1 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; J8 ; ; -- ; VCCA3 ; power ; ; 2.5V ; -- ; ; -- ; -- ; +; J9 ; ; ; VCCD_PLL3 ; power ; ; 1.2V ; -- ; ; -- ; -- ; +; J10 ; 515 ; 8 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; J11 ; ; ; GND ; gnd ; ; ; -- ; ; -- ; -- ; +; J12 ; 490 ; 8 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; J13 ; 489 ; 8 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; J14 ; 481 ; 8 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; J15 ; 465 ; 7 ; LEDR[10] ; output ; 2.5 V ; ; Column I/O ; Y ; no ; Off ; +; J16 ; 458 ; 7 ; LEDR[12] ; output ; 2.5 V ; ; Column I/O ; Y ; no ; Off ; +; J17 ; 450 ; 7 ; LEDR[8] ; output ; 2.5 V ; ; Column I/O ; Y ; no ; Off ; +; J18 ; ; ; GND ; gnd ; ; ; -- ; ; -- ; -- ; +; J19 ; 447 ; 7 ; LEDR[6] ; output ; 2.5 V ; ; Column I/O ; Y ; no ; Off ; +; J20 ; ; ; VCCD_PLL2 ; power ; ; 1.2V ; -- ; ; -- ; -- ; +; J21 ; ; -- ; VCCA2 ; power ; ; 2.5V ; -- ; ; -- ; -- ; +; J22 ; 394 ; 6 ; HEX0[5] ; output ; 2.5 V ; ; Row I/O ; Y ; no ; Off ; +; J23 ; 387 ; 6 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; J24 ; 386 ; 6 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; J25 ; 365 ; 6 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; J26 ; 364 ; 6 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; J27 ; 338 ; 6 ; GND+ ; ; ; ; Row I/O ; ; -- ; -- ; +; J28 ; 337 ; 6 ; GND+ ; ; ; ; Row I/O ; ; -- ; -- ; +; K1 ; 28 ; 1 ; LCD_data[4] ; output ; 3.3-V LVTTL ; ; Row I/O ; Y ; no ; Off ; +; K2 ; 27 ; 1 ; LCD_data[5] ; output ; 3.3-V LVTTL ; ; Row I/O ; Y ; no ; Off ; +; K3 ; 30 ; 1 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; K4 ; 29 ; 1 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; K5 ; ; 1 ; VCCIO1 ; power ; ; 3.3V ; -- ; ; -- ; -- ; +; K6 ; ; ; GND ; gnd ; ; ; -- ; ; -- ; -- ; +; K7 ; 38 ; 1 ; LCD_data[3] ; output ; 3.3-V LVTTL ; ; Row I/O ; Y ; no ; Off ; +; K8 ; 39 ; 1 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; K9 ; ; ; VCCINT ; power ; ; 1.2V ; -- ; ; -- ; -- ; +; K10 ; ; ; GND ; gnd ; ; ; -- ; ; -- ; -- ; +; K11 ; ; ; VCCINT ; power ; ; 1.2V ; -- ; ; -- ; -- ; +; K12 ; ; ; GND ; gnd ; ; ; -- ; ; -- ; -- ; +; K13 ; ; ; VCCINT ; power ; ; 1.2V ; -- ; ; -- ; -- ; +; K14 ; ; ; GND ; gnd ; ; ; -- ; ; -- ; -- ; +; K15 ; ; ; VCCINT ; power ; ; 1.2V ; -- ; ; -- ; -- ; +; K16 ; ; ; GND ; gnd ; ; ; -- ; ; -- ; -- ; +; K17 ; ; ; VCCINT ; power ; ; 1.2V ; -- ; ; -- ; -- ; +; K18 ; ; ; GND ; gnd ; ; ; -- ; ; -- ; -- ; +; K19 ; ; ; VCCINT ; power ; ; 1.2V ; -- ; ; -- ; -- ; +; K20 ; ; ; GND ; gnd ; ; ; -- ; ; -- ; -- ; +; K21 ; 389 ; 6 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; K22 ; 388 ; 6 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; K23 ; ; ; GND ; gnd ; ; ; -- ; ; -- ; -- ; +; K24 ; ; 6 ; VCCIO6 ; power ; ; 2.5V ; -- ; ; -- ; -- ; +; K25 ; 371 ; 6 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; K26 ; 370 ; 6 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; K27 ; 362 ; 6 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; K28 ; 361 ; 6 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; L1 ; 49 ; 1 ; LCD_data[1] ; output ; 3.3-V LVTTL ; ; Row I/O ; Y ; no ; Off ; +; L2 ; 48 ; 1 ; LCD_data[2] ; output ; 3.3-V LVTTL ; ; Row I/O ; Y ; no ; Off ; +; L3 ; 32 ; 1 ; LCD_data[0] ; output ; 3.3-V LVTTL ; ; Row I/O ; Y ; no ; Off ; +; L4 ; 31 ; 1 ; LCD_EN ; output ; 3.3-V LVTTL ; ; Row I/O ; Y ; no ; Off ; +; L5 ; 21 ; 1 ; LCD_ON ; output ; 3.3-V LVTTL ; ; Row I/O ; Y ; no ; Off ; +; L6 ; 43 ; 1 ; LCD_BLON ; output ; 3.3-V LVTTL ; ; Row I/O ; Y ; no ; Off ; +; L7 ; 42 ; 1 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; L8 ; 40 ; 1 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; L9 ; ; ; GND ; gnd ; ; ; -- ; ; -- ; -- ; +; L10 ; ; ; VCCINT ; power ; ; 1.2V ; -- ; ; -- ; -- ; +; L11 ; ; ; GND ; gnd ; ; ; -- ; ; -- ; -- ; +; L12 ; ; ; VCCINT ; power ; ; 1.2V ; -- ; ; -- ; -- ; +; L13 ; ; ; GND ; gnd ; ; ; -- ; ; -- ; -- ; +; L14 ; ; ; VCCINT ; power ; ; 1.2V ; -- ; ; -- ; -- ; +; L15 ; ; ; GND ; gnd ; ; ; -- ; ; -- ; -- ; +; L16 ; ; ; VCCINT ; power ; ; 1.2V ; -- ; ; -- ; -- ; +; L17 ; ; ; GND ; gnd ; ; ; -- ; ; -- ; -- ; +; L18 ; ; ; VCCINT ; power ; ; 1.2V ; -- ; ; -- ; -- ; +; L19 ; ; ; GND ; gnd ; ; ; -- ; ; -- ; -- ; +; L20 ; ; ; VCCINT ; power ; ; 1.2V ; -- ; ; -- ; -- ; +; L21 ; 385 ; 6 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; L22 ; 384 ; 6 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; L23 ; 360 ; 6 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; L24 ; 359 ; 6 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; L25 ; 369 ; 6 ; HEX0[4] ; output ; 2.5 V ; ; Row I/O ; Y ; no ; Off ; +; L26 ; 363 ; 6 ; HEX0[3] ; output ; 2.5 V ; ; Row I/O ; Y ; no ; Off ; +; L27 ; 358 ; 6 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; L28 ; 357 ; 6 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; M1 ; 51 ; 1 ; LCD_RW ; output ; 3.3-V LVTTL ; ; Row I/O ; Y ; no ; Off ; +; M2 ; 50 ; 1 ; LCD_RS ; output ; 3.3-V LVTTL ; ; Row I/O ; Y ; no ; Off ; +; M3 ; 34 ; 1 ; LCD_data[6] ; output ; 3.3-V LVTTL ; ; Row I/O ; Y ; no ; Off ; +; M4 ; 33 ; 1 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; M5 ; 41 ; 1 ; LCD_data[7] ; output ; 3.3-V LVTTL ; ; Row I/O ; Y ; no ; Off ; +; M6 ; 24 ; 1 ; ^nSTATUS ; ; ; ; -- ; ; -- ; -- ; +; M7 ; 47 ; 1 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; M8 ; 46 ; 1 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; M9 ; ; ; VCCINT ; power ; ; 1.2V ; -- ; ; -- ; -- ; +; M10 ; ; ; GND ; gnd ; ; ; -- ; ; -- ; -- ; +; M11 ; ; ; VCCINT ; power ; ; 1.2V ; -- ; ; -- ; -- ; +; M12 ; ; ; GND ; gnd ; ; ; -- ; ; -- ; -- ; +; M13 ; ; ; VCCINT ; power ; ; 1.2V ; -- ; ; -- ; -- ; +; M14 ; ; ; GND ; gnd ; ; ; -- ; ; -- ; -- ; +; M15 ; ; ; VCCINT ; power ; ; 1.2V ; -- ; ; -- ; -- ; +; M16 ; ; ; GND ; gnd ; ; ; -- ; ; -- ; -- ; +; M17 ; ; ; VCCINT ; power ; ; 1.2V ; -- ; ; -- ; -- ; +; M18 ; ; ; GND ; gnd ; ; ; -- ; ; -- ; -- ; +; M19 ; ; ; VCCINT ; power ; ; 1.2V ; -- ; ; -- ; -- ; +; M20 ; ; ; GND ; gnd ; ; ; -- ; ; -- ; -- ; +; M21 ; 368 ; 6 ; KEY[1] ; input ; 2.5 V ; ; Row I/O ; Y ; no ; Off ; +; M22 ; 342 ; 6 ; ^MSEL2 ; ; ; ; -- ; ; -- ; -- ; +; M23 ; 344 ; 6 ; KEY[0] ; input ; 2.5 V ; ; Row I/O ; Y ; no ; Off ; +; M24 ; 347 ; 6 ; HEX1[0] ; output ; 2.5 V ; ; Row I/O ; Y ; no ; Off ; +; M25 ; 356 ; 6 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; M26 ; 355 ; 6 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; M27 ; 354 ; 6 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; M28 ; 353 ; 6 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; N1 ; ; 1 ; VCCIO1 ; power ; ; 3.3V ; -- ; ; -- ; -- ; +; N2 ; ; ; GND ; gnd ; ; ; -- ; ; -- ; -- ; +; N3 ; 45 ; 1 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; N4 ; 44 ; 1 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; N5 ; ; 1 ; VCCIO1 ; power ; ; 3.3V ; -- ; ; -- ; -- ; +; N6 ; ; ; GND ; gnd ; ; ; -- ; ; -- ; -- ; +; N7 ; 56 ; 1 ; ~ALTERA_DATA0~ / RESERVED_INPUT_WITH_WEAK_PULLUP ; input ; 3.3-V LVTTL ; ; Row I/O ; N ; no ; On ; +; N8 ; 54 ; 1 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; N9 ; ; ; GND ; gnd ; ; ; -- ; ; -- ; -- ; +; N10 ; ; ; VCCINT ; power ; ; 1.2V ; -- ; ; -- ; -- ; +; N11 ; ; ; GND ; gnd ; ; ; -- ; ; -- ; -- ; +; N12 ; ; ; VCCINT ; power ; ; 1.2V ; -- ; ; -- ; -- ; +; N13 ; ; ; GND ; gnd ; ; ; -- ; ; -- ; -- ; +; N14 ; ; ; VCCINT ; power ; ; 1.2V ; -- ; ; -- ; -- ; +; N15 ; ; ; GND ; gnd ; ; ; -- ; ; -- ; -- ; +; N16 ; ; ; VCCINT ; power ; ; 1.2V ; -- ; ; -- ; -- ; +; N17 ; ; ; GND ; gnd ; ; ; -- ; ; -- ; -- ; +; N18 ; ; ; VCCINT ; power ; ; 1.2V ; -- ; ; -- ; -- ; +; N19 ; ; ; GND ; gnd ; ; ; -- ; ; -- ; -- ; +; N20 ; ; ; VCCINT ; power ; ; 1.2V ; -- ; ; -- ; -- ; +; N21 ; 348 ; 6 ; KEY[2] ; input ; 2.5 V ; ; Row I/O ; Y ; no ; Off ; +; N22 ; 340 ; 6 ; ^MSEL0 ; ; ; ; -- ; ; -- ; -- ; +; N23 ; ; ; GND ; gnd ; ; ; -- ; ; -- ; -- ; +; N24 ; ; 6 ; VCCIO6 ; power ; ; 2.5V ; -- ; ; -- ; -- ; +; N25 ; 352 ; 6 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; N26 ; 351 ; 6 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; N27 ; ; ; GND ; gnd ; ; ; -- ; ; -- ; -- ; +; N28 ; ; 6 ; VCCIO6 ; power ; ; 2.5V ; -- ; ; -- ; -- ; +; P1 ; 53 ; 1 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; P2 ; 52 ; 1 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; P3 ; 55 ; 1 ; ~ALTERA_DCLK~ ; output ; 3.3-V LVTTL ; ; Row I/O ; N ; no ; On ; +; P4 ; 57 ; 1 ; ^nCONFIG ; ; ; ; -- ; ; -- ; -- ; +; P5 ; 59 ; 1 ; altera_reserved_tck ; input ; 3.3-V LVTTL ; ; -- ; N ; no ; Off ; +; P6 ; 61 ; 1 ; altera_reserved_tdo ; output ; 3.3-V LVTTL ; ; -- ; N ; no ; Off ; +; P7 ; 58 ; 1 ; altera_reserved_tdi ; input ; 3.3-V LVTTL ; ; -- ; N ; no ; Off ; +; P8 ; 60 ; 1 ; altera_reserved_tms ; input ; 3.3-V LVTTL ; ; -- ; N ; no ; Off ; +; P9 ; ; ; VCCINT ; power ; ; 1.2V ; -- ; ; -- ; -- ; +; P10 ; ; ; GND ; gnd ; ; ; -- ; ; -- ; -- ; +; P11 ; ; ; VCCINT ; power ; ; 1.2V ; -- ; ; -- ; -- ; +; P12 ; ; ; GND ; gnd ; ; ; -- ; ; -- ; -- ; +; P13 ; ; ; VCCINT ; power ; ; 1.2V ; -- ; ; -- ; -- ; +; P14 ; ; ; GND ; gnd ; ; ; -- ; ; -- ; -- ; +; P15 ; ; ; VCCINT ; power ; ; 1.2V ; -- ; ; -- ; -- ; +; P16 ; ; ; GND ; gnd ; ; ; -- ; ; -- ; -- ; +; P17 ; ; ; VCCINT ; power ; ; 1.2V ; -- ; ; -- ; -- ; +; P18 ; ; ; GND ; gnd ; ; ; -- ; ; -- ; -- ; +; P19 ; ; ; VCCINT ; power ; ; 1.2V ; -- ; ; -- ; -- ; +; P20 ; ; ; GND ; gnd ; ; ; -- ; ; -- ; -- ; +; P21 ; 334 ; 5 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; P22 ; 343 ; 6 ; ^MSEL3 ; ; ; ; -- ; ; -- ; -- ; +; P23 ; 341 ; 6 ; ^MSEL1 ; ; ; ; -- ; ; -- ; -- ; +; P24 ; 339 ; 6 ; ^CONF_DONE ; ; ; ; -- ; ; -- ; -- ; +; P25 ; 346 ; 6 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; P26 ; 345 ; 6 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; P27 ; 350 ; 6 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; P28 ; 349 ; 6 ; ~ALTERA_nCEO~ / RESERVED_OUTPUT_OPEN_DRAIN ; output ; 2.5 V ; ; Row I/O ; N ; no ; Off ; +; R1 ; 68 ; 2 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; R2 ; 67 ; 2 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; R3 ; 73 ; 2 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; R4 ; 74 ; 2 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; R5 ; 77 ; 2 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; R6 ; 70 ; 2 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; R7 ; 69 ; 2 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; R8 ; 62 ; 1 ; ^nCE ; ; ; ; -- ; ; -- ; -- ; +; R9 ; ; ; GND ; gnd ; ; ; -- ; ; -- ; -- ; +; R10 ; ; ; VCCINT ; power ; ; 1.2V ; -- ; ; -- ; -- ; +; R11 ; ; ; GND ; gnd ; ; ; -- ; ; -- ; -- ; +; R12 ; ; ; VCCINT ; power ; ; 1.2V ; -- ; ; -- ; -- ; +; R13 ; ; ; GND ; gnd ; ; ; -- ; ; -- ; -- ; +; R14 ; ; ; VCCINT ; power ; ; 1.2V ; -- ; ; -- ; -- ; +; R15 ; ; ; GND ; gnd ; ; ; -- ; ; -- ; -- ; +; R16 ; ; ; VCCINT ; power ; ; 1.2V ; -- ; ; -- ; -- ; +; R17 ; ; ; GND ; gnd ; ; ; -- ; ; -- ; -- ; +; R18 ; ; ; VCCINT ; power ; ; 1.2V ; -- ; ; -- ; -- ; +; R19 ; ; ; GND ; gnd ; ; ; -- ; ; -- ; -- ; +; R20 ; ; ; VCCINT ; power ; ; 1.2V ; -- ; ; -- ; -- ; +; R21 ; 333 ; 5 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; R22 ; 332 ; 5 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; R23 ; 331 ; 5 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; R24 ; 330 ; 5 ; KEY[3] ; input ; 2.5 V ; ; Row I/O ; Y ; no ; Off ; +; R25 ; 327 ; 5 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; R26 ; 326 ; 5 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; R27 ; 329 ; 5 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; R28 ; 328 ; 5 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; T1 ; ; 2 ; VCCIO2 ; power ; ; 3.3V ; -- ; ; -- ; -- ; +; T2 ; ; ; GND ; gnd ; ; ; -- ; ; -- ; -- ; +; T3 ; 76 ; 2 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; T4 ; 75 ; 2 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; T5 ; ; 2 ; VCCIO2 ; power ; ; 3.3V ; -- ; ; -- ; -- ; +; T6 ; ; ; GND ; gnd ; ; ; -- ; ; -- ; -- ; +; T7 ; 78 ; 2 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; -- ; -- ; +; T8 ; 100 ; 2 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; -- ; -- ; +; T9 ; ; ; VCCINT ; power ; ; 1.2V ; -- ; ; -- ; -- ; +; T10 ; ; ; GND ; gnd ; ; ; -- ; ; -- ; -- ; +; T11 ; ; ; VCCINT ; power ; ; 1.2V ; -- ; ; -- ; -- ; +; T12 ; ; ; GND ; gnd ; ; ; -- ; ; -- ; -- ; +; T13 ; ; ; VCCINT ; power ; ; 1.2V ; -- ; ; -- ; -- ; +; T14 ; ; ; GND ; gnd ; ; ; -- ; ; -- ; -- ; +; T15 ; ; ; VCCINT ; power ; ; 1.2V ; -- ; ; -- ; -- ; +; T16 ; ; ; GND ; gnd ; ; ; -- ; ; -- ; -- ; +; T17 ; ; ; VCCINT ; power ; ; 1.2V ; -- ; ; -- ; -- ; +; T18 ; ; ; GND ; gnd ; ; ; -- ; ; -- ; -- ; +; T19 ; ; ; VCCINT ; power ; ; 1.2V ; -- ; ; -- ; -- ; +; T20 ; ; ; GND ; gnd ; ; ; -- ; ; -- ; -- ; +; T21 ; 325 ; 5 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; T22 ; 324 ; 5 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; T23 ; ; ; GND ; gnd ; ; ; -- ; ; -- ; -- ; +; T24 ; ; 5 ; VCCIO5 ; power ; ; 2.5V ; -- ; ; -- ; -- ; +; T25 ; 323 ; 5 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; T26 ; 322 ; 5 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; T27 ; ; ; GND ; gnd ; ; ; -- ; ; -- ; -- ; +; T28 ; ; 5 ; VCCIO5 ; power ; ; 2.5V ; -- ; ; -- ; -- ; +; U1 ; 80 ; 2 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; U2 ; 79 ; 2 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; U3 ; 71 ; 2 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; U4 ; 72 ; 2 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; U5 ; 90 ; 2 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; U6 ; 89 ; 2 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; U7 ; 103 ; 2 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; U8 ; 104 ; 2 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; U9 ; ; ; GND ; gnd ; ; ; -- ; ; -- ; -- ; +; U10 ; ; ; VCCINT ; power ; ; 1.2V ; -- ; ; -- ; -- ; +; U11 ; ; ; GND ; gnd ; ; ; -- ; ; -- ; -- ; +; U12 ; ; ; VCCINT ; power ; ; 1.2V ; -- ; ; -- ; -- ; +; U13 ; ; ; GND ; gnd ; ; ; -- ; ; -- ; -- ; +; U14 ; ; ; VCCINT ; power ; ; 1.2V ; -- ; ; -- ; -- ; +; U15 ; ; ; GND ; gnd ; ; ; -- ; ; -- ; -- ; +; U16 ; ; ; VCCINT ; power ; ; 1.2V ; -- ; ; -- ; -- ; +; U17 ; ; ; GND ; gnd ; ; ; -- ; ; -- ; -- ; +; U18 ; ; ; VCCINT ; power ; ; 1.2V ; -- ; ; -- ; -- ; +; U19 ; ; ; GND ; gnd ; ; ; -- ; ; -- ; -- ; +; U20 ; ; ; VCCINT ; power ; ; 1.2V ; -- ; ; -- ; -- ; +; U21 ; 319 ; 5 ; HEX3[1] ; output ; 2.5 V ; ; Row I/O ; Y ; no ; Off ; +; U22 ; 313 ; 5 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; U23 ; 305 ; 5 ; HEX1[5] ; output ; 2.5 V ; ; Row I/O ; Y ; no ; Off ; +; U24 ; 316 ; 5 ; HEX1[6] ; output ; 2.5 V ; ; Row I/O ; Y ; no ; Off ; +; U25 ; 315 ; 5 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; U26 ; 314 ; 5 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; U27 ; 318 ; 5 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; U28 ; 317 ; 5 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; V1 ; 84 ; 2 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; V2 ; 83 ; 2 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; V3 ; 82 ; 2 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; V4 ; 81 ; 2 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; V5 ; 108 ; 2 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; V6 ; 107 ; 2 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; V7 ; 110 ; 2 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; V8 ; 109 ; 2 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; V9 ; ; ; VCCINT ; power ; ; 1.2V ; -- ; ; -- ; -- ; +; V10 ; ; ; GND ; gnd ; ; ; -- ; ; -- ; -- ; +; V11 ; ; ; VCCINT ; power ; ; 1.2V ; -- ; ; -- ; -- ; +; V12 ; ; ; GND ; gnd ; ; ; -- ; ; -- ; -- ; +; V13 ; ; ; VCCINT ; power ; ; 1.2V ; -- ; ; -- ; -- ; +; V14 ; ; ; GND ; gnd ; ; ; -- ; ; -- ; -- ; +; V15 ; ; ; VCCINT ; power ; ; 1.2V ; -- ; ; -- ; -- ; +; V16 ; ; ; GND ; gnd ; ; ; -- ; ; -- ; -- ; +; V17 ; ; ; VCCINT ; power ; ; 1.2V ; -- ; ; -- ; -- ; +; V18 ; ; ; GND ; gnd ; ; ; -- ; ; -- ; -- ; +; V19 ; ; ; VCCINT ; power ; ; 1.2V ; -- ; ; -- ; -- ; +; V20 ; ; ; GND ; gnd ; ; ; -- ; ; -- ; -- ; +; V21 ; 311 ; 5 ; HEX3[0] ; output ; 2.5 V ; ; Row I/O ; Y ; no ; Off ; +; V22 ; 312 ; 5 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; V23 ; 309 ; 5 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; V24 ; 308 ; 5 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; V25 ; 307 ; 5 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; V26 ; 306 ; 5 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; V27 ; 304 ; 5 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; V28 ; 303 ; 5 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; W1 ; 88 ; 2 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; W2 ; 87 ; 2 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; W3 ; 112 ; 2 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; W4 ; 111 ; 2 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; W5 ; ; 2 ; VCCIO2 ; power ; ; 3.3V ; -- ; ; -- ; -- ; +; W6 ; ; ; GND ; gnd ; ; ; -- ; ; -- ; -- ; +; W7 ; 115 ; 2 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; W8 ; 116 ; 2 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; W9 ; ; ; GND ; gnd ; ; ; -- ; ; -- ; -- ; +; W10 ; ; ; VCCINT ; power ; ; 1.2V ; -- ; ; -- ; -- ; +; W11 ; ; ; GND ; gnd ; ; ; -- ; ; -- ; -- ; +; W12 ; ; ; VCCINT ; power ; ; 1.2V ; -- ; ; -- ; -- ; +; W13 ; ; ; GND ; gnd ; ; ; -- ; ; -- ; -- ; +; W14 ; ; ; VCCINT ; power ; ; 1.2V ; -- ; ; -- ; -- ; +; W15 ; ; ; GND ; gnd ; ; ; -- ; ; -- ; -- ; +; W16 ; ; ; VCCINT ; power ; ; 1.2V ; -- ; ; -- ; -- ; +; W17 ; ; ; GND ; gnd ; ; ; -- ; ; -- ; -- ; +; W18 ; ; ; VCCINT ; power ; ; 1.2V ; -- ; ; -- ; -- ; +; W19 ; ; ; GND ; gnd ; ; ; -- ; ; -- ; -- ; +; W20 ; ; ; VCCINT ; power ; ; 1.2V ; -- ; ; -- ; -- ; +; W21 ; 310 ; 5 ; HEX1[2] ; output ; 2.5 V ; ; Row I/O ; Y ; no ; Off ; +; W22 ; 321 ; 5 ; HEX1[3] ; output ; 2.5 V ; ; Row I/O ; Y ; no ; Off ; +; W23 ; ; ; GND ; gnd ; ; ; -- ; ; -- ; -- ; +; W24 ; ; 5 ; VCCIO5 ; power ; ; 2.5V ; -- ; ; -- ; -- ; +; W25 ; 300 ; 5 ; HEX1[4] ; output ; 2.5 V ; ; Row I/O ; Y ; no ; Off ; +; W26 ; 299 ; 5 ; HEX2[3] ; output ; 2.5 V ; ; Row I/O ; Y ; no ; Off ; +; W27 ; 301 ; 5 ; HEX2[5] ; output ; 2.5 V ; ; Row I/O ; Y ; no ; Off ; +; W28 ; 302 ; 5 ; HEX2[6] ; output ; 2.5 V ; ; Row I/O ; Y ; no ; Off ; +; Y1 ; 66 ; 2 ; GND+ ; ; ; ; Row I/O ; ; -- ; -- ; +; Y2 ; 65 ; 2 ; CLOCK_50 ; input ; 3.3-V LVTTL ; ; Row I/O ; Y ; no ; Off ; +; Y3 ; 92 ; 2 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; Y4 ; 91 ; 2 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; Y5 ; 114 ; 2 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; Y6 ; 113 ; 2 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; Y7 ; 117 ; 2 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Row I/O ; ; no ; On ; +; Y8 ; ; -- ; VCCA1 ; power ; ; 2.5V ; -- ; ; -- ; -- ; +; Y9 ; ; ; VCCD_PLL1 ; power ; ; 1.2V ; -- ; ; -- ; -- ; +; Y10 ; 140 ; 3 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; -- ; -- ; +; Y11 ; ; ; GND ; gnd ; ; ; -- ; ; -- ; -- ; +; Y12 ; 187 ; 3 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; Y13 ; 189 ; 3 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; Y14 ; 197 ; 3 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; Y15 ; 198 ; 3 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; Y16 ; 250 ; 4 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; Y17 ; 249 ; 4 ; RESERVED_INPUT_WITH_WEAK_PULLUP ; ; ; ; Column I/O ; ; no ; On ; +; Y18 ; ; ; GND ; gnd ; ; ; -- ; ; -- ; -- ; +; Y19 ; 263 ; 4 ; HEX3[6] ; output ; 3.3-V LVTTL ; ; Column I/O ; Y ; no ; Off ; +; Y20 ; ; ; VCCD_PLL4 ; power ; ; 1.2V ; -- ; ; -- ; -- ; +; Y21 ; ; -- ; VCCA4 ; power ; ; 2.5V ; -- ; ; -- ; -- ; +; Y22 ; 320 ; 5 ; HEX1[1] ; output ; 2.5 V ; ; Row I/O ; Y ; no ; Off ; +; Y23 ; 288 ; 5 ; SW[17] ; input ; 2.5 V ; ; Row I/O ; Y ; no ; Off ; +; Y24 ; 287 ; 5 ; SW[16] ; input ; 2.5 V ; ; Row I/O ; Y ; no ; Off ; +; Y25 ; 298 ; 5 ; HEX2[2] ; output ; 2.5 V ; ; Row I/O ; Y ; no ; Off ; +; Y26 ; 297 ; 5 ; HEX2[4] ; output ; 2.5 V ; ; Row I/O ; Y ; no ; Off ; +; Y27 ; 336 ; 5 ; GND+ ; ; ; ; Row I/O ; ; -- ; -- ; +; Y28 ; 335 ; 5 ; GND+ ; ; ; ; Row I/O ; ; -- ; -- ; ++----------+------------+----------+-----------------------------------------------------------+--------+--------------+---------+------------+-----------------+----------+--------------+ +Note: Pin directions (input, output or bidir) are based on device operating in user mode. + + ++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Fitter Resource Utilization by Entity ; ++--------------------------------------------------------------------------------------------------------------------------------+-------------+---------------------------+---------------+-------------+------+--------------+---------+-----------+------+--------------+--------------+-------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------+ +; Compilation Hierarchy Node ; Logic Cells ; Dedicated Logic Registers ; I/O Registers ; Memory Bits ; M9Ks ; DSP Elements ; DSP 9x9 ; DSP 18x18 ; Pins ; Virtual Pins ; LUT-Only LCs ; Register-Only LCs ; LUT/Register LCs ; Full Hierarchy Name ; Library Name ; ++--------------------------------------------------------------------------------------------------------------------------------+-------------+---------------------------+---------------+-------------+------+--------------+---------+-----------+------+--------------+--------------+-------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------+ +; |lights ; 2232 (1) ; 1204 (0) ; 0 (0) ; 1649664 ; 205 ; 0 ; 0 ; 0 ; 118 ; 0 ; 1028 (1) ; 170 (0) ; 1034 (0) ; |lights ; work ; +; |nios_system:NiosII| ; 2060 (0) ; 1107 (0) ; 0 (0) ; 1649664 ; 205 ; 0 ; 0 ; 0 ; 0 ; 0 ; 953 (0) ; 159 (0) ; 948 (0) ; |lights|nios_system:NiosII ; work ; +; |altera_avalon_sc_fifo:hex0_s1_translator_avalon_universal_slave_0_agent_rsp_fifo| ; 5 (5) ; 4 (4) ; 0 (0) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 1 (1) ; 0 (0) ; 4 (4) ; |lights|nios_system:NiosII|altera_avalon_sc_fifo:hex0_s1_translator_avalon_universal_slave_0_agent_rsp_fifo ; altera_reserved_qsys_nios_system ; +; |altera_avalon_sc_fifo:hex1_s1_translator_avalon_universal_slave_0_agent_rsp_fifo| ; 5 (5) ; 4 (4) ; 0 (0) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 1 (1) ; 0 (0) ; 4 (4) ; |lights|nios_system:NiosII|altera_avalon_sc_fifo:hex1_s1_translator_avalon_universal_slave_0_agent_rsp_fifo ; altera_reserved_qsys_nios_system ; +; |altera_avalon_sc_fifo:hex2_s1_translator_avalon_universal_slave_0_agent_rsp_fifo| ; 5 (5) ; 4 (4) ; 0 (0) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 1 (1) ; 0 (0) ; 4 (4) ; |lights|nios_system:NiosII|altera_avalon_sc_fifo:hex2_s1_translator_avalon_universal_slave_0_agent_rsp_fifo ; altera_reserved_qsys_nios_system ; +; |altera_avalon_sc_fifo:hex3_s1_translator_avalon_universal_slave_0_agent_rsp_fifo| ; 5 (5) ; 4 (4) ; 0 (0) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 1 (1) ; 0 (0) ; 4 (4) ; |lights|nios_system:NiosII|altera_avalon_sc_fifo:hex3_s1_translator_avalon_universal_slave_0_agent_rsp_fifo ; altera_reserved_qsys_nios_system ; +; |altera_avalon_sc_fifo:hex4_s1_translator_avalon_universal_slave_0_agent_rsp_fifo| ; 5 (5) ; 4 (4) ; 0 (0) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 1 (1) ; 0 (0) ; 4 (4) ; |lights|nios_system:NiosII|altera_avalon_sc_fifo:hex4_s1_translator_avalon_universal_slave_0_agent_rsp_fifo ; altera_reserved_qsys_nios_system ; +; |altera_avalon_sc_fifo:hex5_s1_translator_avalon_universal_slave_0_agent_rsp_fifo| ; 5 (5) ; 4 (4) ; 0 (0) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 1 (1) ; 0 (0) ; 4 (4) ; |lights|nios_system:NiosII|altera_avalon_sc_fifo:hex5_s1_translator_avalon_universal_slave_0_agent_rsp_fifo ; altera_reserved_qsys_nios_system ; +; |altera_avalon_sc_fifo:hex6_s1_translator_avalon_universal_slave_0_agent_rsp_fifo| ; 5 (5) ; 4 (4) ; 0 (0) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 1 (1) ; 0 (0) ; 4 (4) ; |lights|nios_system:NiosII|altera_avalon_sc_fifo:hex6_s1_translator_avalon_universal_slave_0_agent_rsp_fifo ; altera_reserved_qsys_nios_system ; +; |altera_avalon_sc_fifo:hex7_s1_translator_avalon_universal_slave_0_agent_rsp_fifo| ; 5 (5) ; 4 (4) ; 0 (0) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 1 (1) ; 0 (0) ; 4 (4) ; |lights|nios_system:NiosII|altera_avalon_sc_fifo:hex7_s1_translator_avalon_universal_slave_0_agent_rsp_fifo ; altera_reserved_qsys_nios_system ; +; |altera_avalon_sc_fifo:jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rsp_fifo| ; 6 (6) ; 4 (4) ; 0 (0) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 2 (2) ; 0 (0) ; 4 (4) ; |lights|nios_system:NiosII|altera_avalon_sc_fifo:jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rsp_fifo ; altera_reserved_qsys_nios_system ; +; |altera_avalon_sc_fifo:lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rsp_fifo| ; 6 (6) ; 4 (4) ; 0 (0) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 2 (2) ; 0 (0) ; 4 (4) ; |lights|nios_system:NiosII|altera_avalon_sc_fifo:lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rsp_fifo ; altera_reserved_qsys_nios_system ; +; |altera_avalon_sc_fifo:lcd_blon_s1_translator_avalon_universal_slave_0_agent_rsp_fifo| ; 5 (5) ; 4 (4) ; 0 (0) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 1 (1) ; 0 (0) ; 4 (4) ; |lights|nios_system:NiosII|altera_avalon_sc_fifo:lcd_blon_s1_translator_avalon_universal_slave_0_agent_rsp_fifo ; altera_reserved_qsys_nios_system ; +; |altera_avalon_sc_fifo:lcd_on_s1_translator_avalon_universal_slave_0_agent_rsp_fifo| ; 5 (5) ; 4 (4) ; 0 (0) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 1 (1) ; 0 (0) ; 4 (4) ; |lights|nios_system:NiosII|altera_avalon_sc_fifo:lcd_on_s1_translator_avalon_universal_slave_0_agent_rsp_fifo ; altera_reserved_qsys_nios_system ; +; |altera_avalon_sc_fifo:ledrs_s1_translator_avalon_universal_slave_0_agent_rsp_fifo| ; 5 (5) ; 4 (4) ; 0 (0) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 1 (1) ; 0 (0) ; 4 (4) ; |lights|nios_system:NiosII|altera_avalon_sc_fifo:ledrs_s1_translator_avalon_universal_slave_0_agent_rsp_fifo ; altera_reserved_qsys_nios_system ; +; |altera_avalon_sc_fifo:leds_s1_translator_avalon_universal_slave_0_agent_rsp_fifo| ; 5 (5) ; 4 (4) ; 0 (0) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 1 (1) ; 0 (0) ; 4 (4) ; |lights|nios_system:NiosII|altera_avalon_sc_fifo:leds_s1_translator_avalon_universal_slave_0_agent_rsp_fifo ; altera_reserved_qsys_nios_system ; +; |altera_avalon_sc_fifo:nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo| ; 10 (10) ; 6 (6) ; 0 (0) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 4 (4) ; 1 (1) ; 5 (5) ; |lights|nios_system:NiosII|altera_avalon_sc_fifo:nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo ; altera_reserved_qsys_nios_system ; +; |altera_avalon_sc_fifo:onchip_memory_s1_translator_avalon_universal_slave_0_agent_rsp_fifo| ; 9 (9) ; 6 (6) ; 0 (0) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 3 (3) ; 0 (0) ; 6 (6) ; |lights|nios_system:NiosII|altera_avalon_sc_fifo:onchip_memory_s1_translator_avalon_universal_slave_0_agent_rsp_fifo ; altera_reserved_qsys_nios_system ; +; |altera_avalon_sc_fifo:push_switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo| ; 5 (5) ; 4 (4) ; 0 (0) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 1 (1) ; 0 (0) ; 4 (4) ; |lights|nios_system:NiosII|altera_avalon_sc_fifo:push_switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo ; altera_reserved_qsys_nios_system ; +; |altera_avalon_sc_fifo:switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo| ; 5 (5) ; 4 (4) ; 0 (0) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 1 (1) ; 0 (0) ; 4 (4) ; |lights|nios_system:NiosII|altera_avalon_sc_fifo:switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo ; altera_reserved_qsys_nios_system ; +; |altera_merlin_master_agent:nios2_processor_data_master_translator_avalon_universal_master_0_agent| ; 2 (2) ; 1 (1) ; 0 (0) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 1 (1) ; 0 (0) ; 1 (1) ; |lights|nios_system:NiosII|altera_merlin_master_agent:nios2_processor_data_master_translator_avalon_universal_master_0_agent ; altera_reserved_qsys_nios_system ; +; |altera_merlin_master_agent:nios2_processor_instruction_master_translator_avalon_universal_master_0_agent| ; 1 (1) ; 0 (0) ; 0 (0) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 (0) ; 0 (0) ; 1 (1) ; |lights|nios_system:NiosII|altera_merlin_master_agent:nios2_processor_instruction_master_translator_avalon_universal_master_0_agent ; altera_reserved_qsys_nios_system ; +; |altera_merlin_master_translator:nios2_processor_data_master_translator| ; 9 (9) ; 3 (3) ; 0 (0) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 6 (6) ; 0 (0) ; 3 (3) ; |lights|nios_system:NiosII|altera_merlin_master_translator:nios2_processor_data_master_translator ; altera_reserved_qsys_nios_system ; +; |altera_merlin_master_translator:nios2_processor_instruction_master_translator| ; 4 (4) ; 1 (1) ; 0 (0) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 3 (3) ; 0 (0) ; 1 (1) ; |lights|nios_system:NiosII|altera_merlin_master_translator:nios2_processor_instruction_master_translator ; altera_reserved_qsys_nios_system ; +; |altera_merlin_slave_agent:lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent| ; 1 (1) ; 0 (0) ; 0 (0) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 1 (1) ; 0 (0) ; 0 (0) ; |lights|nios_system:NiosII|altera_merlin_slave_agent:lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent ; altera_reserved_qsys_nios_system ; +; |altera_merlin_slave_agent:nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent| ; 2 (2) ; 0 (0) ; 0 (0) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 2 (2) ; 0 (0) ; 0 (0) ; |lights|nios_system:NiosII|altera_merlin_slave_agent:nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent ; altera_reserved_qsys_nios_system ; +; |altera_merlin_slave_agent:onchip_memory_s1_translator_avalon_universal_slave_0_agent| ; 2 (2) ; 0 (0) ; 0 (0) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 2 (2) ; 0 (0) ; 0 (0) ; |lights|nios_system:NiosII|altera_merlin_slave_agent:onchip_memory_s1_translator_avalon_universal_slave_0_agent ; altera_reserved_qsys_nios_system ; +; |altera_merlin_slave_agent:push_switches_s1_translator_avalon_universal_slave_0_agent| ; 1 (1) ; 0 (0) ; 0 (0) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 1 (1) ; 0 (0) ; 0 (0) ; |lights|nios_system:NiosII|altera_merlin_slave_agent:push_switches_s1_translator_avalon_universal_slave_0_agent ; altera_reserved_qsys_nios_system ; +; |altera_merlin_slave_agent:switches_s1_translator_avalon_universal_slave_0_agent| ; 1 (1) ; 0 (0) ; 0 (0) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 1 (1) ; 0 (0) ; 0 (0) ; |lights|nios_system:NiosII|altera_merlin_slave_agent:switches_s1_translator_avalon_universal_slave_0_agent ; altera_reserved_qsys_nios_system ; +; |altera_merlin_slave_translator:hex0_s1_translator| ; 13 (13) ; 10 (10) ; 0 (0) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 3 (3) ; 0 (0) ; 10 (10) ; |lights|nios_system:NiosII|altera_merlin_slave_translator:hex0_s1_translator ; altera_reserved_qsys_nios_system ; +; |altera_merlin_slave_translator:hex1_s1_translator| ; 13 (13) ; 10 (10) ; 0 (0) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 3 (3) ; 0 (0) ; 10 (10) ; |lights|nios_system:NiosII|altera_merlin_slave_translator:hex1_s1_translator ; altera_reserved_qsys_nios_system ; +; |altera_merlin_slave_translator:hex2_s1_translator| ; 13 (13) ; 10 (10) ; 0 (0) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 3 (3) ; 0 (0) ; 10 (10) ; |lights|nios_system:NiosII|altera_merlin_slave_translator:hex2_s1_translator ; altera_reserved_qsys_nios_system ; +; |altera_merlin_slave_translator:hex3_s1_translator| ; 12 (12) ; 10 (10) ; 0 (0) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 2 (2) ; 0 (0) ; 10 (10) ; |lights|nios_system:NiosII|altera_merlin_slave_translator:hex3_s1_translator ; altera_reserved_qsys_nios_system ; +; |altera_merlin_slave_translator:hex4_s1_translator| ; 13 (13) ; 10 (10) ; 0 (0) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 3 (3) ; 0 (0) ; 10 (10) ; |lights|nios_system:NiosII|altera_merlin_slave_translator:hex4_s1_translator ; altera_reserved_qsys_nios_system ; +; |altera_merlin_slave_translator:hex5_s1_translator| ; 13 (13) ; 10 (10) ; 0 (0) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 3 (3) ; 0 (0) ; 10 (10) ; |lights|nios_system:NiosII|altera_merlin_slave_translator:hex5_s1_translator ; altera_reserved_qsys_nios_system ; +; |altera_merlin_slave_translator:hex6_s1_translator| ; 12 (12) ; 10 (10) ; 0 (0) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 2 (2) ; 0 (0) ; 10 (10) ; |lights|nios_system:NiosII|altera_merlin_slave_translator:hex6_s1_translator ; altera_reserved_qsys_nios_system ; +; |altera_merlin_slave_translator:hex7_s1_translator| ; 13 (13) ; 10 (10) ; 0 (0) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 3 (3) ; 0 (0) ; 10 (10) ; |lights|nios_system:NiosII|altera_merlin_slave_translator:hex7_s1_translator ; altera_reserved_qsys_nios_system ; +; |altera_merlin_slave_translator:jtag_uart_avalon_jtag_slave_translator| ; 23 (23) ; 23 (23) ; 0 (0) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 (0) ; 0 (0) ; 23 (23) ; |lights|nios_system:NiosII|altera_merlin_slave_translator:jtag_uart_avalon_jtag_slave_translator ; altera_reserved_qsys_nios_system ; +; |altera_merlin_slave_translator:lcd_16207_0_control_slave_translator| ; 22 (22) ; 15 (15) ; 0 (0) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 7 (7) ; 0 (0) ; 15 (15) ; |lights|nios_system:NiosII|altera_merlin_slave_translator:lcd_16207_0_control_slave_translator ; altera_reserved_qsys_nios_system ; +; |altera_merlin_slave_translator:lcd_blon_s1_translator| ; 6 (6) ; 4 (4) ; 0 (0) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 2 (2) ; 0 (0) ; 4 (4) ; |lights|nios_system:NiosII|altera_merlin_slave_translator:lcd_blon_s1_translator ; altera_reserved_qsys_nios_system ; +; |altera_merlin_slave_translator:lcd_on_s1_translator| ; 7 (7) ; 4 (4) ; 0 (0) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 3 (3) ; 0 (0) ; 4 (4) ; |lights|nios_system:NiosII|altera_merlin_slave_translator:lcd_on_s1_translator ; altera_reserved_qsys_nios_system ; +; |altera_merlin_slave_translator:ledrs_s1_translator| ; 24 (24) ; 21 (21) ; 0 (0) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 3 (3) ; 0 (0) ; 21 (21) ; |lights|nios_system:NiosII|altera_merlin_slave_translator:ledrs_s1_translator ; altera_reserved_qsys_nios_system ; +; |altera_merlin_slave_translator:leds_s1_translator| ; 13 (13) ; 11 (11) ; 0 (0) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 2 (2) ; 0 (0) ; 11 (11) ; |lights|nios_system:NiosII|altera_merlin_slave_translator:leds_s1_translator ; altera_reserved_qsys_nios_system ; +; |altera_merlin_slave_translator:nios2_processor_jtag_debug_module_translator| ; 33 (33) ; 33 (33) ; 0 (0) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 (0) ; 0 (0) ; 33 (33) ; |lights|nios_system:NiosII|altera_merlin_slave_translator:nios2_processor_jtag_debug_module_translator ; altera_reserved_qsys_nios_system ; +; |altera_merlin_slave_translator:onchip_memory_s1_translator| ; 1 (1) ; 1 (1) ; 0 (0) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 (0) ; 0 (0) ; 1 (1) ; |lights|nios_system:NiosII|altera_merlin_slave_translator:onchip_memory_s1_translator ; altera_reserved_qsys_nios_system ; +; |altera_merlin_slave_translator:push_switches_s1_translator| ; 9 (9) ; 6 (6) ; 0 (0) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 3 (3) ; 0 (0) ; 6 (6) ; |lights|nios_system:NiosII|altera_merlin_slave_translator:push_switches_s1_translator ; altera_reserved_qsys_nios_system ; +; |altera_merlin_slave_translator:switches_s1_translator| ; 24 (24) ; 21 (21) ; 0 (0) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 3 (3) ; 0 (0) ; 21 (21) ; |lights|nios_system:NiosII|altera_merlin_slave_translator:switches_s1_translator ; altera_reserved_qsys_nios_system ; +; |altera_reset_controller:rst_controller| ; 10 (7) ; 9 (6) ; 0 (0) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 (0) ; 7 (5) ; 3 (2) ; |lights|nios_system:NiosII|altera_reset_controller:rst_controller ; altera_reserved_qsys_nios_system ; +; |altera_reset_synchronizer:alt_rst_sync_uq1| ; 3 (3) ; 3 (3) ; 0 (0) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 (0) ; 2 (2) ; 1 (1) ; |lights|nios_system:NiosII|altera_reset_controller:rst_controller|altera_reset_synchronizer:alt_rst_sync_uq1 ; altera_reserved_qsys_nios_system ; +; |nios_system_LEDRs:ledrs| ; 38 (38) ; 18 (18) ; 0 (0) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 2 (2) ; 18 (18) ; 18 (18) ; |lights|nios_system:NiosII|nios_system_LEDRs:ledrs ; altera_reserved_qsys_nios_system ; +; |nios_system_LEDs:leds| ; 19 (19) ; 8 (8) ; 0 (0) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 3 (3) ; 8 (8) ; 8 (8) ; |lights|nios_system:NiosII|nios_system_LEDs:leds ; altera_reserved_qsys_nios_system ; +; |nios_system_addr_router:addr_router| ; 2 (2) ; 0 (0) ; 0 (0) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 2 (2) ; 0 (0) ; 0 (0) ; |lights|nios_system:NiosII|nios_system_addr_router:addr_router ; altera_reserved_qsys_nios_system ; +; |nios_system_addr_router_001:addr_router_001| ; 30 (30) ; 0 (0) ; 0 (0) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 30 (30) ; 0 (0) ; 0 (0) ; |lights|nios_system:NiosII|nios_system_addr_router_001:addr_router_001 ; altera_reserved_qsys_nios_system ; +; |nios_system_cmd_xbar_demux:cmd_xbar_demux| ; 2 (2) ; 0 (0) ; 0 (0) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 2 (2) ; 0 (0) ; 0 (0) ; |lights|nios_system:NiosII|nios_system_cmd_xbar_demux:cmd_xbar_demux ; altera_reserved_qsys_nios_system ; +; |nios_system_cmd_xbar_demux:rsp_xbar_demux_001| ; 2 (2) ; 0 (0) ; 0 (0) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 2 (2) ; 0 (0) ; 0 (0) ; |lights|nios_system:NiosII|nios_system_cmd_xbar_demux:rsp_xbar_demux_001 ; altera_reserved_qsys_nios_system ; +; |nios_system_cmd_xbar_demux:rsp_xbar_demux| ; 2 (2) ; 0 (0) ; 0 (0) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 2 (2) ; 0 (0) ; 0 (0) ; |lights|nios_system:NiosII|nios_system_cmd_xbar_demux:rsp_xbar_demux ; altera_reserved_qsys_nios_system ; +; |nios_system_cmd_xbar_demux_001:cmd_xbar_demux_001| ; 14 (14) ; 0 (0) ; 0 (0) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 14 (14) ; 0 (0) ; 0 (0) ; |lights|nios_system:NiosII|nios_system_cmd_xbar_demux_001:cmd_xbar_demux_001 ; altera_reserved_qsys_nios_system ; +; |nios_system_cmd_xbar_mux:cmd_xbar_mux_001| ; 60 (57) ; 5 (3) ; 0 (0) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 41 (40) ; 0 (0) ; 19 (16) ; |lights|nios_system:NiosII|nios_system_cmd_xbar_mux:cmd_xbar_mux_001 ; altera_reserved_qsys_nios_system ; +; |altera_merlin_arbitrator:arb| ; 4 (4) ; 2 (2) ; 0 (0) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 1 (1) ; 0 (0) ; 3 (3) ; |lights|nios_system:NiosII|nios_system_cmd_xbar_mux:cmd_xbar_mux_001|altera_merlin_arbitrator:arb ; altera_reserved_qsys_nios_system ; +; |nios_system_cmd_xbar_mux:cmd_xbar_mux| ; 55 (52) ; 5 (3) ; 0 (0) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 4 (3) ; 1 (0) ; 50 (47) ; |lights|nios_system:NiosII|nios_system_cmd_xbar_mux:cmd_xbar_mux ; altera_reserved_qsys_nios_system ; +; |altera_merlin_arbitrator:arb| ; 5 (5) ; 2 (2) ; 0 (0) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 1 (1) ; 1 (1) ; 3 (3) ; |lights|nios_system:NiosII|nios_system_cmd_xbar_mux:cmd_xbar_mux|altera_merlin_arbitrator:arb ; altera_reserved_qsys_nios_system ; +; |nios_system_hex0:hex0| ; 16 (16) ; 7 (7) ; 0 (0) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 2 (2) ; 7 (7) ; 7 (7) ; |lights|nios_system:NiosII|nios_system_hex0:hex0 ; altera_reserved_qsys_nios_system ; +; |nios_system_hex0:hex1| ; 16 (16) ; 7 (7) ; 0 (0) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 2 (2) ; 7 (7) ; 7 (7) ; |lights|nios_system:NiosII|nios_system_hex0:hex1 ; altera_reserved_qsys_nios_system ; +; |nios_system_hex0:hex2| ; 16 (16) ; 7 (7) ; 0 (0) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 2 (2) ; 7 (7) ; 7 (7) ; |lights|nios_system:NiosII|nios_system_hex0:hex2 ; altera_reserved_qsys_nios_system ; +; |nios_system_hex0:hex3| ; 16 (16) ; 7 (7) ; 0 (0) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 2 (2) ; 7 (7) ; 7 (7) ; |lights|nios_system:NiosII|nios_system_hex0:hex3 ; altera_reserved_qsys_nios_system ; +; |nios_system_hex0:hex4| ; 16 (16) ; 7 (7) ; 0 (0) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 2 (2) ; 7 (7) ; 7 (7) ; |lights|nios_system:NiosII|nios_system_hex0:hex4 ; altera_reserved_qsys_nios_system ; +; |nios_system_hex0:hex5| ; 16 (16) ; 7 (7) ; 0 (0) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 2 (2) ; 7 (7) ; 7 (7) ; |lights|nios_system:NiosII|nios_system_hex0:hex5 ; altera_reserved_qsys_nios_system ; +; |nios_system_hex0:hex6| ; 16 (16) ; 7 (7) ; 0 (0) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 2 (2) ; 7 (7) ; 7 (7) ; |lights|nios_system:NiosII|nios_system_hex0:hex6 ; altera_reserved_qsys_nios_system ; +; |nios_system_hex0:hex7| ; 16 (16) ; 7 (7) ; 0 (0) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 2 (2) ; 7 (7) ; 7 (7) ; |lights|nios_system:NiosII|nios_system_hex0:hex7 ; altera_reserved_qsys_nios_system ; +; |nios_system_jtag_uart:jtag_uart| ; 157 (39) ; 104 (13) ; 0 (0) ; 1024 ; 2 ; 0 ; 0 ; 0 ; 0 ; 0 ; 43 (16) ; 17 (2) ; 97 (20) ; |lights|nios_system:NiosII|nios_system_jtag_uart:jtag_uart ; altera_reserved_qsys_nios_system ; +; |alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic| ; 68 (68) ; 51 (51) ; 0 (0) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 16 (16) ; 15 (15) ; 37 (37) ; |lights|nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic ; work ; +; |nios_system_jtag_uart_scfifo_r:the_nios_system_jtag_uart_scfifo_r| ; 26 (0) ; 20 (0) ; 0 (0) ; 512 ; 1 ; 0 ; 0 ; 0 ; 0 ; 0 ; 6 (0) ; 0 (0) ; 20 (0) ; |lights|nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_r:the_nios_system_jtag_uart_scfifo_r ; altera_reserved_qsys_nios_system ; +; |scfifo:rfifo| ; 26 (0) ; 20 (0) ; 0 (0) ; 512 ; 1 ; 0 ; 0 ; 0 ; 0 ; 0 ; 6 (0) ; 0 (0) ; 20 (0) ; |lights|nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_r:the_nios_system_jtag_uart_scfifo_r|scfifo:rfifo ; work ; +; |scfifo_jr21:auto_generated| ; 26 (0) ; 20 (0) ; 0 (0) ; 512 ; 1 ; 0 ; 0 ; 0 ; 0 ; 0 ; 6 (0) ; 0 (0) ; 20 (0) ; |lights|nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_r:the_nios_system_jtag_uart_scfifo_r|scfifo:rfifo|scfifo_jr21:auto_generated ; work ; +; |a_dpfifo_q131:dpfifo| ; 26 (0) ; 20 (0) ; 0 (0) ; 512 ; 1 ; 0 ; 0 ; 0 ; 0 ; 0 ; 6 (0) ; 0 (0) ; 20 (0) ; |lights|nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_r:the_nios_system_jtag_uart_scfifo_r|scfifo:rfifo|scfifo_jr21:auto_generated|a_dpfifo_q131:dpfifo ; work ; +; |a_fefifo_7cf:fifo_state| ; 14 (8) ; 8 (2) ; 0 (0) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 6 (6) ; 0 (0) ; 8 (2) ; |lights|nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_r:the_nios_system_jtag_uart_scfifo_r|scfifo:rfifo|scfifo_jr21:auto_generated|a_dpfifo_q131:dpfifo|a_fefifo_7cf:fifo_state ; work ; +; |cntr_do7:count_usedw| ; 6 (6) ; 6 (6) ; 0 (0) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 (0) ; 0 (0) ; 6 (6) ; |lights|nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_r:the_nios_system_jtag_uart_scfifo_r|scfifo:rfifo|scfifo_jr21:auto_generated|a_dpfifo_q131:dpfifo|a_fefifo_7cf:fifo_state|cntr_do7:count_usedw ; work ; +; |cntr_1ob:rd_ptr_count| ; 6 (6) ; 6 (6) ; 0 (0) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 (0) ; 0 (0) ; 6 (6) ; |lights|nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_r:the_nios_system_jtag_uart_scfifo_r|scfifo:rfifo|scfifo_jr21:auto_generated|a_dpfifo_q131:dpfifo|cntr_1ob:rd_ptr_count ; work ; +; |cntr_1ob:wr_ptr| ; 6 (6) ; 6 (6) ; 0 (0) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 (0) ; 0 (0) ; 6 (6) ; |lights|nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_r:the_nios_system_jtag_uart_scfifo_r|scfifo:rfifo|scfifo_jr21:auto_generated|a_dpfifo_q131:dpfifo|cntr_1ob:wr_ptr ; work ; +; |dpram_nl21:FIFOram| ; 0 (0) ; 0 (0) ; 0 (0) ; 512 ; 1 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 (0) ; 0 (0) ; 0 (0) ; |lights|nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_r:the_nios_system_jtag_uart_scfifo_r|scfifo:rfifo|scfifo_jr21:auto_generated|a_dpfifo_q131:dpfifo|dpram_nl21:FIFOram ; work ; +; |altsyncram_r1m1:altsyncram1| ; 0 (0) ; 0 (0) ; 0 (0) ; 512 ; 1 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 (0) ; 0 (0) ; 0 (0) ; |lights|nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_r:the_nios_system_jtag_uart_scfifo_r|scfifo:rfifo|scfifo_jr21:auto_generated|a_dpfifo_q131:dpfifo|dpram_nl21:FIFOram|altsyncram_r1m1:altsyncram1 ; work ; +; |nios_system_jtag_uart_scfifo_w:the_nios_system_jtag_uart_scfifo_w| ; 25 (0) ; 20 (0) ; 0 (0) ; 512 ; 1 ; 0 ; 0 ; 0 ; 0 ; 0 ; 5 (0) ; 0 (0) ; 20 (0) ; |lights|nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_w:the_nios_system_jtag_uart_scfifo_w ; altera_reserved_qsys_nios_system ; +; |scfifo:wfifo| ; 25 (0) ; 20 (0) ; 0 (0) ; 512 ; 1 ; 0 ; 0 ; 0 ; 0 ; 0 ; 5 (0) ; 0 (0) ; 20 (0) ; |lights|nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_w:the_nios_system_jtag_uart_scfifo_w|scfifo:wfifo ; work ; +; |scfifo_jr21:auto_generated| ; 25 (0) ; 20 (0) ; 0 (0) ; 512 ; 1 ; 0 ; 0 ; 0 ; 0 ; 0 ; 5 (0) ; 0 (0) ; 20 (0) ; |lights|nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_w:the_nios_system_jtag_uart_scfifo_w|scfifo:wfifo|scfifo_jr21:auto_generated ; work ; +; |a_dpfifo_q131:dpfifo| ; 25 (0) ; 20 (0) ; 0 (0) ; 512 ; 1 ; 0 ; 0 ; 0 ; 0 ; 0 ; 5 (0) ; 0 (0) ; 20 (0) ; |lights|nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_w:the_nios_system_jtag_uart_scfifo_w|scfifo:wfifo|scfifo_jr21:auto_generated|a_dpfifo_q131:dpfifo ; work ; +; |a_fefifo_7cf:fifo_state| ; 13 (7) ; 8 (2) ; 0 (0) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 5 (5) ; 0 (0) ; 8 (2) ; |lights|nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_w:the_nios_system_jtag_uart_scfifo_w|scfifo:wfifo|scfifo_jr21:auto_generated|a_dpfifo_q131:dpfifo|a_fefifo_7cf:fifo_state ; work ; +; |cntr_do7:count_usedw| ; 6 (6) ; 6 (6) ; 0 (0) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 (0) ; 0 (0) ; 6 (6) ; |lights|nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_w:the_nios_system_jtag_uart_scfifo_w|scfifo:wfifo|scfifo_jr21:auto_generated|a_dpfifo_q131:dpfifo|a_fefifo_7cf:fifo_state|cntr_do7:count_usedw ; work ; +; |cntr_1ob:rd_ptr_count| ; 6 (6) ; 6 (6) ; 0 (0) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 (0) ; 0 (0) ; 6 (6) ; |lights|nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_w:the_nios_system_jtag_uart_scfifo_w|scfifo:wfifo|scfifo_jr21:auto_generated|a_dpfifo_q131:dpfifo|cntr_1ob:rd_ptr_count ; work ; +; |cntr_1ob:wr_ptr| ; 6 (6) ; 6 (6) ; 0 (0) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 (0) ; 0 (0) ; 6 (6) ; |lights|nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_w:the_nios_system_jtag_uart_scfifo_w|scfifo:wfifo|scfifo_jr21:auto_generated|a_dpfifo_q131:dpfifo|cntr_1ob:wr_ptr ; work ; +; |dpram_nl21:FIFOram| ; 0 (0) ; 0 (0) ; 0 (0) ; 512 ; 1 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 (0) ; 0 (0) ; 0 (0) ; |lights|nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_w:the_nios_system_jtag_uart_scfifo_w|scfifo:wfifo|scfifo_jr21:auto_generated|a_dpfifo_q131:dpfifo|dpram_nl21:FIFOram ; work ; +; |altsyncram_r1m1:altsyncram1| ; 0 (0) ; 0 (0) ; 0 (0) ; 512 ; 1 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 (0) ; 0 (0) ; 0 (0) ; |lights|nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_w:the_nios_system_jtag_uart_scfifo_w|scfifo:wfifo|scfifo_jr21:auto_generated|a_dpfifo_q131:dpfifo|dpram_nl21:FIFOram|altsyncram_r1m1:altsyncram1 ; work ; +; |nios_system_lcd_16207_0:lcd_16207_0| ; 12 (12) ; 0 (0) ; 0 (0) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 4 (4) ; 0 (0) ; 8 (8) ; |lights|nios_system:NiosII|nios_system_lcd_16207_0:lcd_16207_0 ; altera_reserved_qsys_nios_system ; +; |nios_system_lcd_on:lcd_blon| ; 4 (4) ; 1 (1) ; 0 (0) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 2 (2) ; 0 (0) ; 2 (2) ; |lights|nios_system:NiosII|nios_system_lcd_on:lcd_blon ; altera_reserved_qsys_nios_system ; +; |nios_system_lcd_on:lcd_on| ; 4 (4) ; 1 (1) ; 0 (0) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 2 (2) ; 0 (0) ; 2 (2) ; |lights|nios_system:NiosII|nios_system_lcd_on:lcd_on ; altera_reserved_qsys_nios_system ; +; |nios_system_nios2_processor:nios2_processor| ; 1040 (658) ; 576 (306) ; 0 (0) ; 10240 ; 3 ; 0 ; 0 ; 0 ; 0 ; 0 ; 440 (328) ; 51 (5) ; 549 (326) ; |lights|nios_system:NiosII|nios_system_nios2_processor:nios2_processor ; altera_reserved_qsys_nios_system ; +; |nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci| ; 381 (81) ; 269 (80) ; 0 (0) ; 8192 ; 1 ; 0 ; 0 ; 0 ; 0 ; 0 ; 112 (1) ; 46 (1) ; 223 (79) ; |lights|nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci ; altera_reserved_qsys_nios_system ; +; |nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper| ; 139 (0) ; 96 (0) ; 0 (0) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 43 (0) ; 43 (0) ; 53 (0) ; |lights|nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper ; altera_reserved_qsys_nios_system ; +; |nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk| ; 50 (46) ; 49 (45) ; 0 (0) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 1 (1) ; 39 (37) ; 10 (8) ; |lights|nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk ; altera_reserved_qsys_nios_system ; +; |altera_std_synchronizer:the_altera_std_synchronizer3| ; 2 (2) ; 2 (2) ; 0 (0) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 (0) ; 1 (1) ; 1 (1) ; |lights|nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk|altera_std_synchronizer:the_altera_std_synchronizer3 ; work ; +; |altera_std_synchronizer:the_altera_std_synchronizer4| ; 2 (2) ; 2 (2) ; 0 (0) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 (0) ; 1 (1) ; 1 (1) ; |lights|nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk|altera_std_synchronizer:the_altera_std_synchronizer4 ; work ; +; |nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck| ; 87 (83) ; 47 (43) ; 0 (0) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 40 (40) ; 4 (0) ; 43 (43) ; |lights|nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck ; altera_reserved_qsys_nios_system ; +; |altera_std_synchronizer:the_altera_std_synchronizer1| ; 2 (2) ; 2 (2) ; 0 (0) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 (0) ; 2 (2) ; 0 (0) ; |lights|nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|altera_std_synchronizer:the_altera_std_synchronizer1 ; work ; +; |altera_std_synchronizer:the_altera_std_synchronizer2| ; 2 (2) ; 2 (2) ; 0 (0) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 (0) ; 2 (2) ; 0 (0) ; |lights|nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|altera_std_synchronizer:the_altera_std_synchronizer2 ; work ; +; |sld_virtual_jtag_basic:nios_system_nios2_processor_jtag_debug_module_phy| ; 4 (4) ; 0 (0) ; 0 (0) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 2 (2) ; 0 (0) ; 2 (2) ; |lights|nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|sld_virtual_jtag_basic:nios_system_nios2_processor_jtag_debug_module_phy ; work ; +; |nios_system_nios2_processor_nios2_avalon_reg:the_nios_system_nios2_processor_nios2_avalon_reg| ; 9 (9) ; 3 (3) ; 0 (0) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 6 (6) ; 0 (0) ; 3 (3) ; |lights|nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_avalon_reg:the_nios_system_nios2_processor_nios2_avalon_reg ; altera_reserved_qsys_nios_system ; +; |nios_system_nios2_processor_nios2_oci_break:the_nios_system_nios2_processor_nios2_oci_break| ; 32 (32) ; 32 (32) ; 0 (0) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 (0) ; 0 (0) ; 32 (32) ; |lights|nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_oci_break:the_nios_system_nios2_processor_nios2_oci_break ; altera_reserved_qsys_nios_system ; +; |nios_system_nios2_processor_nios2_oci_debug:the_nios_system_nios2_processor_nios2_oci_debug| ; 11 (9) ; 9 (7) ; 0 (0) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 (0) ; 1 (0) ; 10 (9) ; |lights|nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_oci_debug:the_nios_system_nios2_processor_nios2_oci_debug ; altera_reserved_qsys_nios_system ; +; |altera_std_synchronizer:the_altera_std_synchronizer| ; 2 (2) ; 2 (2) ; 0 (0) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 (0) ; 1 (1) ; 1 (1) ; |lights|nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_oci_debug:the_nios_system_nios2_processor_nios2_oci_debug|altera_std_synchronizer:the_altera_std_synchronizer ; work ; +; |nios_system_nios2_processor_nios2_ocimem:the_nios_system_nios2_processor_nios2_ocimem| ; 112 (112) ; 49 (49) ; 0 (0) ; 8192 ; 1 ; 0 ; 0 ; 0 ; 0 ; 0 ; 62 (62) ; 1 (1) ; 49 (49) ; |lights|nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_ocimem:the_nios_system_nios2_processor_nios2_ocimem ; altera_reserved_qsys_nios_system ; +; |nios_system_nios2_processor_ociram_sp_ram_module:nios_system_nios2_processor_ociram_sp_ram| ; 0 (0) ; 0 (0) ; 0 (0) ; 8192 ; 1 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 (0) ; 0 (0) ; 0 (0) ; |lights|nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_ocimem:the_nios_system_nios2_processor_nios2_ocimem|nios_system_nios2_processor_ociram_sp_ram_module:nios_system_nios2_processor_ociram_sp_ram ; altera_reserved_qsys_nios_system ; +; |altsyncram:the_altsyncram| ; 0 (0) ; 0 (0) ; 0 (0) ; 8192 ; 1 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 (0) ; 0 (0) ; 0 (0) ; |lights|nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_ocimem:the_nios_system_nios2_processor_nios2_ocimem|nios_system_nios2_processor_ociram_sp_ram_module:nios_system_nios2_processor_ociram_sp_ram|altsyncram:the_altsyncram ; work ; +; |altsyncram_4891:auto_generated| ; 0 (0) ; 0 (0) ; 0 (0) ; 8192 ; 1 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 (0) ; 0 (0) ; 0 (0) ; |lights|nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_ocimem:the_nios_system_nios2_processor_nios2_ocimem|nios_system_nios2_processor_ociram_sp_ram_module:nios_system_nios2_processor_ociram_sp_ram|altsyncram:the_altsyncram|altsyncram_4891:auto_generated ; work ; +; |nios_system_nios2_processor_register_bank_a_module:nios_system_nios2_processor_register_bank_a| ; 0 (0) ; 0 (0) ; 0 (0) ; 1024 ; 1 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 (0) ; 0 (0) ; 0 (0) ; |lights|nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_register_bank_a_module:nios_system_nios2_processor_register_bank_a ; altera_reserved_qsys_nios_system ; +; |altsyncram:the_altsyncram| ; 0 (0) ; 0 (0) ; 0 (0) ; 1024 ; 1 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 (0) ; 0 (0) ; 0 (0) ; |lights|nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_register_bank_a_module:nios_system_nios2_processor_register_bank_a|altsyncram:the_altsyncram ; work ; +; |altsyncram_0rh1:auto_generated| ; 0 (0) ; 0 (0) ; 0 (0) ; 1024 ; 1 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 (0) ; 0 (0) ; 0 (0) ; |lights|nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_register_bank_a_module:nios_system_nios2_processor_register_bank_a|altsyncram:the_altsyncram|altsyncram_0rh1:auto_generated ; work ; +; |nios_system_nios2_processor_register_bank_b_module:nios_system_nios2_processor_register_bank_b| ; 0 (0) ; 0 (0) ; 0 (0) ; 1024 ; 1 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 (0) ; 0 (0) ; 0 (0) ; |lights|nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_register_bank_b_module:nios_system_nios2_processor_register_bank_b ; altera_reserved_qsys_nios_system ; +; |altsyncram:the_altsyncram| ; 0 (0) ; 0 (0) ; 0 (0) ; 1024 ; 1 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 (0) ; 0 (0) ; 0 (0) ; |lights|nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_register_bank_b_module:nios_system_nios2_processor_register_bank_b|altsyncram:the_altsyncram ; work ; +; |altsyncram_1rh1:auto_generated| ; 0 (0) ; 0 (0) ; 0 (0) ; 1024 ; 1 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 (0) ; 0 (0) ; 0 (0) ; |lights|nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_register_bank_b_module:nios_system_nios2_processor_register_bank_b|altsyncram:the_altsyncram|altsyncram_1rh1:auto_generated ; work ; +; |nios_system_nios2_processor_test_bench:the_nios_system_nios2_processor_test_bench| ; 1 (1) ; 1 (1) ; 0 (0) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 (0) ; 0 (0) ; 1 (1) ; |lights|nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_test_bench:the_nios_system_nios2_processor_test_bench ; altera_reserved_qsys_nios_system ; +; |nios_system_onchip_memory:onchip_memory| ; 171 (1) ; 3 (0) ; 0 (0) ; 1638400 ; 200 ; 0 ; 0 ; 0 ; 0 ; 0 ; 168 (1) ; 0 (0) ; 3 (0) ; |lights|nios_system:NiosII|nios_system_onchip_memory:onchip_memory ; altera_reserved_qsys_nios_system ; +; |altsyncram:the_altsyncram| ; 170 (0) ; 3 (0) ; 0 (0) ; 1638400 ; 200 ; 0 ; 0 ; 0 ; 0 ; 0 ; 167 (0) ; 0 (0) ; 3 (0) ; |lights|nios_system:NiosII|nios_system_onchip_memory:onchip_memory|altsyncram:the_altsyncram ; work ; +; |altsyncram_4ed1:auto_generated| ; 170 (3) ; 3 (3) ; 0 (0) ; 1638400 ; 200 ; 0 ; 0 ; 0 ; 0 ; 0 ; 167 (0) ; 0 (0) ; 3 (3) ; |lights|nios_system:NiosII|nios_system_onchip_memory:onchip_memory|altsyncram:the_altsyncram|altsyncram_4ed1:auto_generated ; work ; +; |decode_qsa:decode3| ; 7 (7) ; 0 (0) ; 0 (0) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 7 (7) ; 0 (0) ; 0 (0) ; |lights|nios_system:NiosII|nios_system_onchip_memory:onchip_memory|altsyncram:the_altsyncram|altsyncram_4ed1:auto_generated|decode_qsa:decode3 ; work ; +; |mux_nob:mux2| ; 160 (160) ; 0 (0) ; 0 (0) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 160 (160) ; 0 (0) ; 0 (0) ; |lights|nios_system:NiosII|nios_system_onchip_memory:onchip_memory|altsyncram:the_altsyncram|altsyncram_4ed1:auto_generated|mux_nob:mux2 ; work ; +; |nios_system_push_switches:push_switches| ; 3 (3) ; 3 (3) ; 0 (0) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 (0) ; 0 (0) ; 3 (3) ; |lights|nios_system:NiosII|nios_system_push_switches:push_switches ; altera_reserved_qsys_nios_system ; +; |nios_system_rsp_xbar_mux:rsp_xbar_mux| ; 11 (11) ; 0 (0) ; 0 (0) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 (0) ; 0 (0) ; 11 (11) ; |lights|nios_system:NiosII|nios_system_rsp_xbar_mux:rsp_xbar_mux ; altera_reserved_qsys_nios_system ; +; |nios_system_rsp_xbar_mux_001:rsp_xbar_mux_001| ; 113 (113) ; 0 (0) ; 0 (0) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 89 (89) ; 0 (0) ; 24 (24) ; |lights|nios_system:NiosII|nios_system_rsp_xbar_mux_001:rsp_xbar_mux_001 ; altera_reserved_qsys_nios_system ; +; |nios_system_switches:switches| ; 18 (18) ; 18 (18) ; 0 (0) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 (0) ; 0 (0) ; 18 (18) ; |lights|nios_system:NiosII|nios_system_switches:switches ; altera_reserved_qsys_nios_system ; +; |sld_hub:auto_hub| ; 171 (1) ; 97 (0) ; 0 (0) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 74 (1) ; 11 (0) ; 86 (0) ; |lights|sld_hub:auto_hub ; work ; +; |sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst| ; 170 (127) ; 97 (69) ; 0 (0) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 73 (58) ; 11 (11) ; 86 (61) ; |lights|sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst ; work ; +; |sld_rom_sr:hub_info_reg| ; 23 (23) ; 9 (9) ; 0 (0) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 14 (14) ; 0 (0) ; 9 (9) ; |lights|sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_rom_sr:hub_info_reg ; work ; +; |sld_shadow_jsm:shadow_jsm| ; 20 (20) ; 19 (19) ; 0 (0) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 1 (1) ; 0 (0) ; 19 (19) ; |lights|sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm ; work ; ++--------------------------------------------------------------------------------------------------------------------------------+-------------+---------------------------+---------------+-------------+------+--------------+---------+-----------+------+--------------+--------------+-------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------+ +Note: For table entries with two numbers listed, the numbers in parentheses indicate the number of resources of the given type used by the specific entity alone. The numbers listed outside of parentheses indicate the total resources of the given type used by the specific entity and all of its sub-entities in the hierarchy. + + ++---------------------------------------------------------------------------------------------+ +; Delay Chain Summary ; ++-------------+----------+---------------+---------------+-----------------------+-----+------+ +; Name ; Pin Type ; Pad to Core 0 ; Pad to Core 1 ; Pad to Input Register ; TCO ; TCOE ; ++-------------+----------+---------------+---------------+-----------------------+-----+------+ +; LEDG[0] ; Output ; -- ; -- ; -- ; -- ; -- ; +; LEDG[1] ; Output ; -- ; -- ; -- ; -- ; -- ; +; LEDG[2] ; Output ; -- ; -- ; -- ; -- ; -- ; +; LEDG[3] ; Output ; -- ; -- ; -- ; -- ; -- ; +; LEDG[4] ; Output ; -- ; -- ; -- ; -- ; -- ; +; LEDG[5] ; Output ; -- ; -- ; -- ; -- ; -- ; +; LEDG[6] ; Output ; -- ; -- ; -- ; -- ; -- ; +; LEDG[7] ; Output ; -- ; -- ; -- ; -- ; -- ; +; LEDR[0] ; Output ; -- ; -- ; -- ; -- ; -- ; +; LEDR[1] ; Output ; -- ; -- ; -- ; -- ; -- ; +; LEDR[2] ; Output ; -- ; -- ; -- ; -- ; -- ; +; LEDR[3] ; Output ; -- ; -- ; -- ; -- ; -- ; +; LEDR[4] ; Output ; -- ; -- ; -- ; -- ; -- ; +; LEDR[5] ; Output ; -- ; -- ; -- ; -- ; -- ; +; LEDR[6] ; Output ; -- ; -- ; -- ; -- ; -- ; +; LEDR[7] ; Output ; -- ; -- ; -- ; -- ; -- ; +; LEDR[8] ; Output ; -- ; -- ; -- ; -- ; -- ; +; LEDR[9] ; Output ; -- ; -- ; -- ; -- ; -- ; +; LEDR[10] ; Output ; -- ; -- ; -- ; -- ; -- ; +; LEDR[11] ; Output ; -- ; -- ; -- ; -- ; -- ; +; LEDR[12] ; Output ; -- ; -- ; -- ; -- ; -- ; +; LEDR[13] ; Output ; -- ; -- ; -- ; -- ; -- ; +; LEDR[14] ; Output ; -- ; -- ; -- ; -- ; -- ; +; LEDR[15] ; Output ; -- ; -- ; -- ; -- ; -- ; +; LEDR[16] ; Output ; -- ; -- ; -- ; -- ; -- ; +; LEDR[17] ; Output ; -- ; -- ; -- ; -- ; -- ; +; HEX0[0] ; Output ; -- ; -- ; -- ; -- ; -- ; +; HEX0[1] ; Output ; -- ; -- ; -- ; -- ; -- ; +; HEX0[2] ; Output ; -- ; -- ; -- ; -- ; -- ; +; HEX0[3] ; Output ; -- ; -- ; -- ; -- ; -- ; +; HEX0[4] ; Output ; -- ; -- ; -- ; -- ; -- ; +; HEX0[5] ; Output ; -- ; -- ; -- ; -- ; -- ; +; HEX0[6] ; Output ; -- ; -- ; -- ; -- ; -- ; +; HEX1[0] ; Output ; -- ; -- ; -- ; -- ; -- ; +; HEX1[1] ; Output ; -- ; -- ; -- ; -- ; -- ; +; HEX1[2] ; Output ; -- ; -- ; -- ; -- ; -- ; +; HEX1[3] ; Output ; -- ; -- ; -- ; -- ; -- ; +; HEX1[4] ; Output ; -- ; -- ; -- ; -- ; -- ; +; HEX1[5] ; Output ; -- ; -- ; -- ; -- ; -- ; +; HEX1[6] ; Output ; -- ; -- ; -- ; -- ; -- ; +; HEX2[0] ; Output ; -- ; -- ; -- ; -- ; -- ; +; HEX2[1] ; Output ; -- ; -- ; -- ; -- ; -- ; +; HEX2[2] ; Output ; -- ; -- ; -- ; -- ; -- ; +; HEX2[3] ; Output ; -- ; -- ; -- ; -- ; -- ; +; HEX2[4] ; Output ; -- ; -- ; -- ; -- ; -- ; +; HEX2[5] ; Output ; -- ; -- ; -- ; -- ; -- ; +; HEX2[6] ; Output ; -- ; -- ; -- ; -- ; -- ; +; HEX3[0] ; Output ; -- ; -- ; -- ; -- ; -- ; +; HEX3[1] ; Output ; -- ; -- ; -- ; -- ; -- ; +; HEX3[2] ; Output ; -- ; -- ; -- ; -- ; -- ; +; HEX3[3] ; Output ; -- ; -- ; -- ; -- ; -- ; +; HEX3[4] ; Output ; -- ; -- ; -- ; -- ; -- ; +; HEX3[5] ; Output ; -- ; -- ; -- ; -- ; -- ; +; HEX3[6] ; Output ; -- ; -- ; -- ; -- ; -- ; +; HEX4[0] ; Output ; -- ; -- ; -- ; -- ; -- ; +; HEX4[1] ; Output ; -- ; -- ; -- ; -- ; -- ; +; HEX4[2] ; Output ; -- ; -- ; -- ; -- ; -- ; +; HEX4[3] ; Output ; -- ; -- ; -- ; -- ; -- ; +; HEX4[4] ; Output ; -- ; -- ; -- ; -- ; -- ; +; HEX4[5] ; Output ; -- ; -- ; -- ; -- ; -- ; +; HEX4[6] ; Output ; -- ; -- ; -- ; -- ; -- ; +; HEX5[0] ; Output ; -- ; -- ; -- ; -- ; -- ; +; HEX5[1] ; Output ; -- ; -- ; -- ; -- ; -- ; +; HEX5[2] ; Output ; -- ; -- ; -- ; -- ; -- ; +; HEX5[3] ; Output ; -- ; -- ; -- ; -- ; -- ; +; HEX5[4] ; Output ; -- ; -- ; -- ; -- ; -- ; +; HEX5[5] ; Output ; -- ; -- ; -- ; -- ; -- ; +; HEX5[6] ; Output ; -- ; -- ; -- ; -- ; -- ; +; HEX6[0] ; Output ; -- ; -- ; -- ; -- ; -- ; +; HEX6[1] ; Output ; -- ; -- ; -- ; -- ; -- ; +; HEX6[2] ; Output ; -- ; -- ; -- ; -- ; -- ; +; HEX6[3] ; Output ; -- ; -- ; -- ; -- ; -- ; +; HEX6[4] ; Output ; -- ; -- ; -- ; -- ; -- ; +; HEX6[5] ; Output ; -- ; -- ; -- ; -- ; -- ; +; HEX6[6] ; Output ; -- ; -- ; -- ; -- ; -- ; +; HEX7[0] ; Output ; -- ; -- ; -- ; -- ; -- ; +; HEX7[1] ; Output ; -- ; -- ; -- ; -- ; -- ; +; HEX7[2] ; Output ; -- ; -- ; -- ; -- ; -- ; +; HEX7[3] ; Output ; -- ; -- ; -- ; -- ; -- ; +; HEX7[4] ; Output ; -- ; -- ; -- ; -- ; -- ; +; HEX7[5] ; Output ; -- ; -- ; -- ; -- ; -- ; +; HEX7[6] ; Output ; -- ; -- ; -- ; -- ; -- ; +; LCD_RS ; Output ; -- ; -- ; -- ; -- ; -- ; +; LCD_RW ; Output ; -- ; -- ; -- ; -- ; -- ; +; LCD_data[0] ; Output ; -- ; -- ; -- ; -- ; -- ; +; LCD_data[1] ; Output ; -- ; -- ; -- ; -- ; -- ; +; LCD_data[2] ; Output ; -- ; -- ; -- ; -- ; -- ; +; LCD_data[3] ; Output ; -- ; -- ; -- ; -- ; -- ; +; LCD_data[4] ; Output ; -- ; -- ; -- ; -- ; -- ; +; LCD_data[5] ; Output ; -- ; -- ; -- ; -- ; -- ; +; LCD_data[6] ; Output ; -- ; -- ; -- ; -- ; -- ; +; LCD_data[7] ; Output ; -- ; -- ; -- ; -- ; -- ; +; LCD_EN ; Output ; -- ; -- ; -- ; -- ; -- ; +; LCD_ON ; Output ; -- ; -- ; -- ; -- ; -- ; +; LCD_BLON ; Output ; -- ; -- ; -- ; -- ; -- ; +; CLOCK_50 ; Input ; (0) 0 ps ; -- ; -- ; -- ; -- ; +; SW[0] ; Input ; (6) 1314 ps ; -- ; -- ; -- ; -- ; +; KEY[1] ; Input ; (6) 1314 ps ; -- ; -- ; -- ; -- ; +; SW[1] ; Input ; (6) 1314 ps ; -- ; -- ; -- ; -- ; +; KEY[2] ; Input ; -- ; (6) 1314 ps ; -- ; -- ; -- ; +; SW[2] ; Input ; (6) 1314 ps ; -- ; -- ; -- ; -- ; +; KEY[3] ; Input ; -- ; (6) 1314 ps ; -- ; -- ; -- ; +; SW[3] ; Input ; (6) 1314 ps ; -- ; -- ; -- ; -- ; +; SW[4] ; Input ; -- ; (6) 1314 ps ; -- ; -- ; -- ; +; SW[5] ; Input ; (6) 1314 ps ; -- ; -- ; -- ; -- ; +; SW[6] ; Input ; (6) 1314 ps ; -- ; -- ; -- ; -- ; +; SW[7] ; Input ; -- ; (6) 1314 ps ; -- ; -- ; -- ; +; SW[8] ; Input ; (6) 1314 ps ; -- ; -- ; -- ; -- ; +; SW[9] ; Input ; -- ; (6) 1314 ps ; -- ; -- ; -- ; +; SW[10] ; Input ; (6) 1314 ps ; -- ; -- ; -- ; -- ; +; SW[11] ; Input ; (6) 1314 ps ; -- ; -- ; -- ; -- ; +; SW[12] ; Input ; (6) 1314 ps ; -- ; -- ; -- ; -- ; +; SW[13] ; Input ; (6) 1314 ps ; -- ; -- ; -- ; -- ; +; SW[14] ; Input ; (6) 1314 ps ; -- ; -- ; -- ; -- ; +; SW[15] ; Input ; (6) 1314 ps ; -- ; -- ; -- ; -- ; +; SW[16] ; Input ; (6) 1314 ps ; -- ; -- ; -- ; -- ; +; SW[17] ; Input ; (6) 1314 ps ; -- ; -- ; -- ; -- ; +; KEY[0] ; Input ; -- ; (6) 1314 ps ; -- ; -- ; -- ; ++-------------+----------+---------------+---------------+-----------------------+-----+------+ + + ++-----------------------------------------------------------------------------------------------------------------+ +; Pad To Core Delay Chain Fanout ; ++-----------------------------------------------------------------------------------+-------------------+---------+ +; Source Pin / Fanout ; Pad To Core Index ; Setting ; ++-----------------------------------------------------------------------------------+-------------------+---------+ +; CLOCK_50 ; ; ; +; SW[0] ; ; ; +; - nios_system:NiosII|nios_system_switches:switches|read_mux_out[0] ; 0 ; 6 ; +; KEY[1] ; ; ; +; - nios_system:NiosII|nios_system_push_switches:push_switches|read_mux_out[0] ; 0 ; 6 ; +; SW[1] ; ; ; +; - nios_system:NiosII|nios_system_switches:switches|read_mux_out[1] ; 0 ; 6 ; +; KEY[2] ; ; ; +; - nios_system:NiosII|nios_system_push_switches:push_switches|read_mux_out[1] ; 1 ; 6 ; +; SW[2] ; ; ; +; - nios_system:NiosII|nios_system_switches:switches|read_mux_out[2] ; 0 ; 6 ; +; KEY[3] ; ; ; +; - nios_system:NiosII|nios_system_push_switches:push_switches|read_mux_out[2] ; 1 ; 6 ; +; SW[3] ; ; ; +; - nios_system:NiosII|nios_system_switches:switches|read_mux_out[3] ; 0 ; 6 ; +; SW[4] ; ; ; +; - nios_system:NiosII|nios_system_switches:switches|read_mux_out[4] ; 1 ; 6 ; +; SW[5] ; ; ; +; - nios_system:NiosII|nios_system_switches:switches|read_mux_out[5] ; 0 ; 6 ; +; SW[6] ; ; ; +; - nios_system:NiosII|nios_system_switches:switches|read_mux_out[6] ; 0 ; 6 ; +; SW[7] ; ; ; +; - nios_system:NiosII|nios_system_switches:switches|read_mux_out[7] ; 1 ; 6 ; +; SW[8] ; ; ; +; - nios_system:NiosII|nios_system_switches:switches|read_mux_out[8] ; 0 ; 6 ; +; SW[9] ; ; ; +; - nios_system:NiosII|nios_system_switches:switches|read_mux_out[9] ; 1 ; 6 ; +; SW[10] ; ; ; +; - nios_system:NiosII|nios_system_switches:switches|read_mux_out[10] ; 0 ; 6 ; +; SW[11] ; ; ; +; - nios_system:NiosII|nios_system_switches:switches|read_mux_out[11] ; 0 ; 6 ; +; SW[12] ; ; ; +; - nios_system:NiosII|nios_system_switches:switches|read_mux_out[12] ; 0 ; 6 ; +; SW[13] ; ; ; +; - nios_system:NiosII|nios_system_switches:switches|read_mux_out[13] ; 0 ; 6 ; +; SW[14] ; ; ; +; - nios_system:NiosII|nios_system_switches:switches|read_mux_out[14] ; 0 ; 6 ; +; SW[15] ; ; ; +; - nios_system:NiosII|nios_system_switches:switches|read_mux_out[15] ; 0 ; 6 ; +; SW[16] ; ; ; +; - nios_system:NiosII|nios_system_switches:switches|read_mux_out[16] ; 0 ; 6 ; +; SW[17] ; ; ; +; - nios_system:NiosII|nios_system_switches:switches|read_mux_out[17] ; 0 ; 6 ; +; KEY[0] ; ; ; +; - nios_system:NiosII|altera_reset_controller:rst_controller|merged_reset~0 ; 1 ; 6 ; ++-----------------------------------------------------------------------------------+-------------------+---------+ + + ++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Control Signals ; ++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------+---------+----------------------------+--------+----------------------+------------------+---------------------------+ +; Name ; Location ; Fan-Out ; Usage ; Global ; Global Resource Used ; Global Line Name ; Enable Signal Source Name ; ++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------+---------+----------------------------+--------+----------------------+------------------+---------------------------+ +; CLOCK_50 ; PIN_Y2 ; 1227 ; Clock ; yes ; Global Clock ; GCLK4 ; -- ; +; altera_internal_jtag~TCKUTAP ; JTAG_X1_Y37_N0 ; 183 ; Clock ; yes ; Global Clock ; GCLK1 ; -- ; +; altera_internal_jtag~TMSUTAP ; JTAG_X1_Y37_N0 ; 21 ; Sync. clear ; no ; -- ; -- ; -- ; +; nios_system:NiosII|altera_avalon_sc_fifo:nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo|mem_used[1]~0 ; LCCOMB_X67_Y39_N0 ; 3 ; Clock enable ; no ; -- ; -- ; -- ; +; nios_system:NiosII|altera_avalon_sc_fifo:onchip_memory_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem_used[1]~0 ; LCCOMB_X66_Y37_N30 ; 2 ; Clock enable ; no ; -- ; -- ; -- ; +; nios_system:NiosII|altera_merlin_slave_translator:lcd_16207_0_control_slave_translator|wait_latency_counter[0]~23 ; LCCOMB_X69_Y39_N6 ; 6 ; Sync. clear ; no ; -- ; -- ; -- ; +; nios_system:NiosII|altera_reset_controller:rst_controller|merged_reset~0 ; LCCOMB_X62_Y40_N18 ; 3 ; Async. clear ; yes ; Global Clock ; GCLK14 ; -- ; +; nios_system:NiosII|altera_reset_controller:rst_controller|r_sync_rst ; FF_X60_Y39_N11 ; 791 ; Async. clear ; yes ; Global Clock ; GCLK17 ; -- ; +; nios_system:NiosII|altera_reset_controller:rst_controller|r_sync_rst_dly ; FF_X60_Y39_N15 ; 204 ; Clock enable ; no ; -- ; -- ; -- ; +; nios_system:NiosII|nios_system_LEDRs:ledrs|always0~1 ; LCCOMB_X68_Y36_N10 ; 18 ; Clock enable ; no ; -- ; -- ; -- ; +; nios_system:NiosII|nios_system_LEDs:leds|always0~2 ; LCCOMB_X68_Y38_N24 ; 8 ; Clock enable ; no ; -- ; -- ; -- ; +; nios_system:NiosII|nios_system_cmd_xbar_mux:cmd_xbar_mux_001|altera_merlin_arbitrator:arb|top_priority_reg[0]~0 ; LCCOMB_X67_Y37_N16 ; 2 ; Clock enable ; no ; -- ; -- ; -- ; +; nios_system:NiosII|nios_system_cmd_xbar_mux:cmd_xbar_mux_001|update_grant~1 ; LCCOMB_X66_Y37_N6 ; 4 ; Clock enable ; no ; -- ; -- ; -- ; +; nios_system:NiosII|nios_system_cmd_xbar_mux:cmd_xbar_mux|altera_merlin_arbitrator:arb|top_priority_reg[0]~2 ; LCCOMB_X67_Y40_N22 ; 2 ; Clock enable ; no ; -- ; -- ; -- ; +; nios_system:NiosII|nios_system_cmd_xbar_mux:cmd_xbar_mux|update_grant~1 ; LCCOMB_X67_Y40_N18 ; 4 ; Clock enable ; no ; -- ; -- ; -- ; +; nios_system:NiosII|nios_system_hex0:hex0|always0~1 ; LCCOMB_X70_Y38_N24 ; 7 ; Clock enable ; no ; -- ; -- ; -- ; +; nios_system:NiosII|nios_system_hex0:hex1|always0~1 ; LCCOMB_X70_Y32_N2 ; 7 ; Clock enable ; no ; -- ; -- ; -- ; +; nios_system:NiosII|nios_system_hex0:hex2|always0~1 ; LCCOMB_X70_Y36_N22 ; 7 ; Clock enable ; no ; -- ; -- ; -- ; +; nios_system:NiosII|nios_system_hex0:hex3|always0~1 ; LCCOMB_X69_Y37_N28 ; 7 ; Clock enable ; no ; -- ; -- ; -- ; +; nios_system:NiosII|nios_system_hex0:hex4|always0~1 ; LCCOMB_X69_Y37_N26 ; 7 ; Clock enable ; no ; -- ; -- ; -- ; +; nios_system:NiosII|nios_system_hex0:hex5|always0~1 ; LCCOMB_X68_Y34_N20 ; 7 ; Clock enable ; no ; -- ; -- ; -- ; +; nios_system:NiosII|nios_system_hex0:hex6|always0~1 ; LCCOMB_X70_Y35_N8 ; 7 ; Clock enable ; no ; -- ; -- ; -- ; +; nios_system:NiosII|nios_system_hex0:hex7|always0~1 ; LCCOMB_X68_Y35_N16 ; 7 ; Clock enable ; no ; -- ; -- ; -- ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|r_ena~0 ; LCCOMB_X66_Y44_N12 ; 1 ; Clock enable ; no ; -- ; -- ; -- ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[0]~4 ; LCCOMB_X63_Y44_N18 ; 21 ; Clock enable ; no ; -- ; -- ; -- ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|wdata[1]~0 ; LCCOMB_X65_Y45_N18 ; 8 ; Clock enable ; no ; -- ; -- ; -- ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|write_stalled~1 ; LCCOMB_X63_Y44_N30 ; 5 ; Clock enable ; no ; -- ; -- ; -- ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|fifo_rd~2 ; LCCOMB_X66_Y43_N16 ; 8 ; Clock enable ; no ; -- ; -- ; -- ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|fifo_wr ; FF_X65_Y42_N9 ; 15 ; Clock enable, Write enable ; no ; -- ; -- ; -- ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|ien_AF~2 ; LCCOMB_X67_Y38_N20 ; 3 ; Clock enable ; no ; -- ; -- ; -- ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_r:the_nios_system_jtag_uart_scfifo_r|scfifo:rfifo|scfifo_jr21:auto_generated|a_dpfifo_q131:dpfifo|a_fefifo_7cf:fifo_state|_~4 ; LCCOMB_X66_Y43_N28 ; 6 ; Clock enable ; no ; -- ; -- ; -- ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_w:the_nios_system_jtag_uart_scfifo_w|scfifo:wfifo|scfifo_jr21:auto_generated|a_dpfifo_q131:dpfifo|a_fefifo_7cf:fifo_state|_~0 ; LCCOMB_X67_Y42_N0 ; 6 ; Clock enable ; no ; -- ; -- ; -- ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|r_val~0 ; LCCOMB_X66_Y44_N14 ; 11 ; Clock enable ; no ; -- ; -- ; -- ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|read_0 ; FF_X66_Y43_N27 ; 16 ; Sync. load ; no ; -- ; -- ; -- ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|wr_rfifo ; LCCOMB_X66_Y43_N4 ; 13 ; Clock enable, Write enable ; no ; -- ; -- ; -- ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|D_iw[4] ; FF_X63_Y36_N25 ; 41 ; Sync. load ; no ; -- ; -- ; -- ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|E_alu_result~26 ; LCCOMB_X65_Y33_N16 ; 49 ; Sync. clear ; no ; -- ; -- ; -- ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|E_new_inst ; FF_X62_Y34_N23 ; 42 ; Sync. load ; no ; -- ; -- ; -- ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|E_valid ; FF_X61_Y32_N9 ; 25 ; Clock enable ; no ; -- ; -- ; -- ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|F_pc_sel_nxt.10~0 ; LCCOMB_X61_Y31_N2 ; 16 ; Sync. load ; no ; -- ; -- ; -- ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|F_valid~0 ; LCCOMB_X66_Y40_N14 ; 34 ; Clock enable ; no ; -- ; -- ; -- ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|R_ctrl_hi_imm16 ; FF_X60_Y35_N9 ; 17 ; Sync. load ; no ; -- ; -- ; -- ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|R_ctrl_shift_rot ; FF_X63_Y34_N9 ; 22 ; Sync. load ; no ; -- ; -- ; -- ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|R_src1~31 ; LCCOMB_X62_Y34_N26 ; 32 ; Sync. load ; no ; -- ; -- ; -- ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|R_src2_hi~0 ; LCCOMB_X61_Y37_N4 ; 15 ; Sync. clear ; no ; -- ; -- ; -- ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|W_alu_result[2] ; FF_X66_Y31_N27 ; 131 ; Output enable ; no ; -- ; -- ; -- ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|W_rf_wren ; LCCOMB_X60_Y39_N16 ; 2 ; Write enable ; no ; -- ; -- ; -- ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|W_status_reg_pie_inst_nxt~2 ; LCCOMB_X61_Y31_N0 ; 15 ; Sync. clear ; no ; -- ; -- ; -- ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|W_valid ; FF_X61_Y32_N29 ; 20 ; Clock enable ; no ; -- ; -- ; -- ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|av_ld_byte0_data[4]~0 ; LCCOMB_X66_Y36_N12 ; 8 ; Clock enable ; no ; -- ; -- ; -- ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|av_ld_byte1_data_en~0 ; LCCOMB_X66_Y33_N30 ; 8 ; Clock enable ; no ; -- ; -- ; -- ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|av_ld_rshift8~1 ; LCCOMB_X66_Y36_N18 ; 30 ; Clock enable, Sync. load ; no ; -- ; -- ; -- ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|address[8] ; FF_X62_Y38_N17 ; 36 ; Sync. load ; no ; -- ; -- ; -- ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk|jxuir ; FF_X60_Y43_N13 ; 2 ; Clock enable ; no ; -- ; -- ; -- ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk|take_action_ocimem_a ; LCCOMB_X60_Y41_N10 ; 15 ; Clock enable, Sync. load ; no ; -- ; -- ; -- ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk|take_action_ocimem_a~0 ; LCCOMB_X60_Y40_N14 ; 16 ; Clock enable ; no ; -- ; -- ; -- ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk|take_action_ocimem_b ; LCCOMB_X60_Y41_N20 ; 33 ; Sync. load ; no ; -- ; -- ; -- ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk|take_no_action_break_a~0 ; LCCOMB_X61_Y43_N28 ; 64 ; Clock enable ; no ; -- ; -- ; -- ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk|update_jdo_strobe ; FF_X60_Y43_N27 ; 39 ; Clock enable ; no ; -- ; -- ; -- ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[2]~13 ; LCCOMB_X63_Y44_N8 ; 13 ; Clock enable ; no ; -- ; -- ; -- ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[34]~21 ; LCCOMB_X62_Y44_N28 ; 18 ; Clock enable ; no ; -- ; -- ; -- ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[36]~29 ; LCCOMB_X62_Y44_N4 ; 2 ; Clock enable ; no ; -- ; -- ; -- ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|sld_virtual_jtag_basic:nios_system_nios2_processor_jtag_debug_module_phy|virtual_state_sdr~0 ; LCCOMB_X63_Y44_N2 ; 39 ; Sync. load ; no ; -- ; -- ; -- ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|sld_virtual_jtag_basic:nios_system_nios2_processor_jtag_debug_module_phy|virtual_state_uir~0 ; LCCOMB_X60_Y43_N16 ; 4 ; Clock enable ; no ; -- ; -- ; -- ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_avalon_reg:the_nios_system_nios2_processor_nios2_avalon_reg|take_action_oci_intr_mask_reg~0 ; LCCOMB_X65_Y40_N8 ; 2 ; Clock enable ; no ; -- ; -- ; -- ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_ocimem:the_nios_system_nios2_processor_nios2_ocimem|MonDReg[0]~9 ; LCCOMB_X60_Y40_N26 ; 32 ; Clock enable ; no ; -- ; -- ; -- ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_ocimem:the_nios_system_nios2_processor_nios2_ocimem|ociram_wr_en ; LCCOMB_X65_Y40_N22 ; 2 ; Write enable ; no ; -- ; -- ; -- ; +; nios_system:NiosII|nios_system_onchip_memory:onchip_memory|altsyncram:the_altsyncram|altsyncram_4ed1:auto_generated|decode_qsa:decode3|w_anode1849w[3] ; LCCOMB_X67_Y31_N20 ; 32 ; Write enable ; no ; -- ; -- ; -- ; +; nios_system:NiosII|nios_system_onchip_memory:onchip_memory|altsyncram:the_altsyncram|altsyncram_4ed1:auto_generated|decode_qsa:decode3|w_anode1866w[3] ; LCCOMB_X67_Y31_N30 ; 32 ; Write enable ; no ; -- ; -- ; -- ; +; nios_system:NiosII|nios_system_onchip_memory:onchip_memory|altsyncram:the_altsyncram|altsyncram_4ed1:auto_generated|decode_qsa:decode3|w_anode1876w[3] ; LCCOMB_X67_Y31_N18 ; 32 ; Write enable ; no ; -- ; -- ; -- ; +; nios_system:NiosII|nios_system_onchip_memory:onchip_memory|altsyncram:the_altsyncram|altsyncram_4ed1:auto_generated|decode_qsa:decode3|w_anode1886w[3] ; LCCOMB_X67_Y31_N22 ; 32 ; Write enable ; no ; -- ; -- ; -- ; +; nios_system:NiosII|nios_system_onchip_memory:onchip_memory|altsyncram:the_altsyncram|altsyncram_4ed1:auto_generated|decode_qsa:decode3|w_anode1896w[3] ; LCCOMB_X67_Y31_N12 ; 32 ; Write enable ; no ; -- ; -- ; -- ; +; nios_system:NiosII|nios_system_onchip_memory:onchip_memory|altsyncram:the_altsyncram|altsyncram_4ed1:auto_generated|decode_qsa:decode3|w_anode1906w[3] ; LCCOMB_X67_Y31_N8 ; 32 ; Write enable ; no ; -- ; -- ; -- ; +; nios_system:NiosII|nios_system_onchip_memory:onchip_memory|altsyncram:the_altsyncram|altsyncram_4ed1:auto_generated|decode_qsa:decode3|w_anode1916w[3] ; LCCOMB_X67_Y31_N2 ; 8 ; Write enable ; no ; -- ; -- ; -- ; +; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; FF_X61_Y46_N19 ; 71 ; Async. clear ; no ; -- ; -- ; -- ; +; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|design_hash_proc~0 ; LCCOMB_X60_Y45_N0 ; 4 ; Sync. load ; no ; -- ; -- ; -- ; +; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|hub_info_reg_ena ; LCCOMB_X60_Y45_N2 ; 4 ; Clock enable ; no ; -- ; -- ; -- ; +; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|hub_info_reg_ena~0 ; LCCOMB_X60_Y45_N26 ; 6 ; Clock enable ; no ; -- ; -- ; -- ; +; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|identity_contrib_shift_reg[0]~2 ; LCCOMB_X61_Y45_N4 ; 4 ; Clock enable ; no ; -- ; -- ; -- ; +; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|identity_contrib_update_reg[0]~0 ; LCCOMB_X61_Y45_N2 ; 4 ; Clock enable ; no ; -- ; -- ; -- ; +; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[1][0]~5 ; LCCOMB_X60_Y46_N20 ; 5 ; Clock enable ; no ; -- ; -- ; -- ; +; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[2][0]~12 ; LCCOMB_X60_Y46_N0 ; 5 ; Clock enable ; no ; -- ; -- ; -- ; +; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[2]~3 ; LCCOMB_X60_Y44_N12 ; 5 ; Clock enable ; no ; -- ; -- ; -- ; +; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|mixer_addr_reg[0]~14 ; LCCOMB_X60_Y45_N24 ; 5 ; Clock enable ; no ; -- ; -- ; -- ; +; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|mixer_addr_reg[0]~19 ; LCCOMB_X60_Y45_N28 ; 5 ; Sync. load ; no ; -- ; -- ; -- ; +; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|node_ena~3 ; LCCOMB_X60_Y46_N8 ; 2 ; Clock enable ; no ; -- ; -- ; -- ; +; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|shadow_irf_reg[1][0]~2 ; LCCOMB_X59_Y44_N20 ; 5 ; Clock enable ; no ; -- ; -- ; -- ; +; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|shadow_irf_reg[2][0]~9 ; LCCOMB_X59_Y46_N28 ; 5 ; Clock enable ; no ; -- ; -- ; -- ; +; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_rom_sr:hub_info_reg|WORD_SR[0]~19 ; LCCOMB_X65_Y46_N28 ; 4 ; Clock enable ; no ; -- ; -- ; -- ; +; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_rom_sr:hub_info_reg|word_counter[4]~22 ; LCCOMB_X66_Y46_N12 ; 5 ; Sync. clear ; no ; -- ; -- ; -- ; +; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_rom_sr:hub_info_reg|word_counter[4]~23 ; LCCOMB_X65_Y46_N6 ; 5 ; Clock enable ; no ; -- ; -- ; -- ; +; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[0] ; FF_X63_Y46_N13 ; 15 ; Async. clear ; no ; -- ; -- ; -- ; +; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[11] ; FF_X61_Y46_N7 ; 12 ; Clock enable ; no ; -- ; -- ; -- ; +; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[3] ; FF_X61_Y46_N23 ; 40 ; Sync. load ; no ; -- ; -- ; -- ; +; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[4] ; FF_X61_Y46_N11 ; 46 ; Sync. clear ; no ; -- ; -- ; -- ; +; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[8] ; FF_X61_Y46_N13 ; 13 ; Async. clear ; no ; -- ; -- ; -- ; +; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|virtual_ir_dr_scan_proc~0 ; LCCOMB_X61_Y46_N2 ; 3 ; Clock enable ; no ; -- ; -- ; -- ; +; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|virtual_ir_scan_reg ; FF_X62_Y46_N25 ; 31 ; Async. clear ; no ; -- ; -- ; -- ; ++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------+---------+----------------------------+--------+----------------------+------------------+---------------------------+ + + ++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Global & Other Fast Signals ; ++--------------------------------------------------------------------------+--------------------+---------+--------------------------------------+----------------------+------------------+---------------------------+ +; Name ; Location ; Fan-Out ; Fan-Out Using Intentional Clock Skew ; Global Resource Used ; Global Line Name ; Enable Signal Source Name ; ++--------------------------------------------------------------------------+--------------------+---------+--------------------------------------+----------------------+------------------+---------------------------+ +; CLOCK_50 ; PIN_Y2 ; 1227 ; 0 ; Global Clock ; GCLK4 ; -- ; +; altera_internal_jtag~TCKUTAP ; JTAG_X1_Y37_N0 ; 183 ; 0 ; Global Clock ; GCLK1 ; -- ; +; nios_system:NiosII|altera_reset_controller:rst_controller|merged_reset~0 ; LCCOMB_X62_Y40_N18 ; 3 ; 0 ; Global Clock ; GCLK14 ; -- ; +; nios_system:NiosII|altera_reset_controller:rst_controller|r_sync_rst ; FF_X60_Y39_N11 ; 791 ; 0 ; Global Clock ; GCLK17 ; -- ; ++--------------------------------------------------------------------------+--------------------+---------+--------------------------------------+----------------------+------------------+---------------------------+ + + ++-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Non-Global High Fan-Out Signals ; ++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------+ +; Name ; Fan-Out ; ++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------+ +; nios_system:NiosII|altera_reset_controller:rst_controller|r_sync_rst_dly ; 204 ; +; nios_system:NiosII|nios_system_cmd_xbar_mux:cmd_xbar_mux_001|src_data[48] ; 200 ; +; nios_system:NiosII|nios_system_cmd_xbar_mux:cmd_xbar_mux_001|src_data[47] ; 200 ; +; nios_system:NiosII|nios_system_cmd_xbar_mux:cmd_xbar_mux_001|src_data[46] ; 200 ; +; nios_system:NiosII|nios_system_cmd_xbar_mux:cmd_xbar_mux_001|src_data[45] ; 200 ; +; nios_system:NiosII|nios_system_cmd_xbar_mux:cmd_xbar_mux_001|src_data[44] ; 200 ; +; nios_system:NiosII|nios_system_cmd_xbar_mux:cmd_xbar_mux_001|src_data[43] ; 200 ; +; nios_system:NiosII|nios_system_cmd_xbar_mux:cmd_xbar_mux_001|src_data[42] ; 200 ; +; nios_system:NiosII|nios_system_cmd_xbar_mux:cmd_xbar_mux_001|src_data[41] ; 200 ; +; nios_system:NiosII|nios_system_cmd_xbar_mux:cmd_xbar_mux_001|src_data[40] ; 200 ; +; nios_system:NiosII|nios_system_cmd_xbar_mux:cmd_xbar_mux_001|src_data[39] ; 200 ; +; nios_system:NiosII|nios_system_cmd_xbar_mux:cmd_xbar_mux_001|src_data[38] ; 200 ; +; nios_system:NiosII|nios_system_cmd_xbar_mux:cmd_xbar_mux_001|src_data[50] ; 192 ; +; nios_system:NiosII|nios_system_cmd_xbar_mux:cmd_xbar_mux_001|src_data[49] ; 192 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|W_alu_result[2] ; 131 ; +; nios_system:NiosII|nios_system_onchip_memory:onchip_memory|altsyncram:the_altsyncram|altsyncram_4ed1:auto_generated|address_reg_a[1] ; 112 ; +; nios_system:NiosII|nios_system_onchip_memory:onchip_memory|altsyncram:the_altsyncram|altsyncram_4ed1:auto_generated|address_reg_a[0] ; 112 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|W_alu_result[3] ; 111 ; +; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; 71 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk|take_no_action_break_a~0 ; 64 ; +; nios_system:NiosII|nios_system_cmd_xbar_mux:cmd_xbar_mux_001|saved_grant[1] ; 58 ; +; nios_system:NiosII|nios_system_cmd_xbar_mux:cmd_xbar_mux|saved_grant[1] ; 51 ; +; nios_system:NiosII|nios_system_cmd_xbar_mux:cmd_xbar_mux_001|src_data[35] ; 50 ; +; nios_system:NiosII|nios_system_cmd_xbar_mux:cmd_xbar_mux_001|src_data[34] ; 50 ; +; nios_system:NiosII|nios_system_cmd_xbar_mux:cmd_xbar_mux_001|src_data[33] ; 50 ; +; nios_system:NiosII|nios_system_cmd_xbar_mux:cmd_xbar_mux_001|src_data[32] ; 50 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|E_alu_result~26 ; 49 ; +; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[4] ; 46 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_ocimem:the_nios_system_nios2_processor_nios2_ocimem|jtag_ram_access ; 46 ; +; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[1][1] ; 42 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|E_new_inst ; 42 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|D_iw[4] ; 41 ; +; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[3] ; 40 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk|update_jdo_strobe ; 39 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|sld_virtual_jtag_basic:nios_system_nios2_processor_jtag_debug_module_phy|virtual_state_sdr~0 ; 39 ; +; nios_system:NiosII|altera_merlin_slave_translator:nios2_processor_jtag_debug_module_translator|read_latency_shift_reg[0] ; 38 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|address[8] ; 36 ; +; nios_system:NiosII|altera_avalon_sc_fifo:nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][76] ; 35 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|R_ctrl_ld ; 35 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|F_valid~0 ; 34 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk|take_action_ocimem_b ; 33 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|av_ld_aligning_data ; 33 ; +; nios_system:NiosII|nios_system_cmd_xbar_demux:rsp_xbar_demux_001|src0_valid ; 33 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|R_logic_op[0] ; 33 ; +; nios_system:NiosII|nios_system_onchip_memory:onchip_memory|altsyncram:the_altsyncram|altsyncram_4ed1:auto_generated|decode_qsa:decode3|w_anode1896w[3] ; 32 ; +; nios_system:NiosII|nios_system_onchip_memory:onchip_memory|altsyncram:the_altsyncram|altsyncram_4ed1:auto_generated|decode_qsa:decode3|w_anode1906w[3] ; 32 ; +; nios_system:NiosII|nios_system_onchip_memory:onchip_memory|altsyncram:the_altsyncram|altsyncram_4ed1:auto_generated|decode_qsa:decode3|w_anode1886w[3] ; 32 ; +; nios_system:NiosII|nios_system_onchip_memory:onchip_memory|altsyncram:the_altsyncram|altsyncram_4ed1:auto_generated|decode_qsa:decode3|w_anode1849w[3] ; 32 ; +; nios_system:NiosII|nios_system_onchip_memory:onchip_memory|altsyncram:the_altsyncram|altsyncram_4ed1:auto_generated|decode_qsa:decode3|w_anode1876w[3] ; 32 ; +; nios_system:NiosII|nios_system_onchip_memory:onchip_memory|altsyncram:the_altsyncram|altsyncram_4ed1:auto_generated|decode_qsa:decode3|w_anode1866w[3] ; 32 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_ocimem:the_nios_system_nios2_processor_nios2_ocimem|MonDReg[0]~9 ; 32 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_ocimem:the_nios_system_nios2_processor_nios2_ocimem|jtag_ram_rd_d1 ; 32 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk|jdo[36] ; 32 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk|jdo[37] ; 32 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|D_iw[15]~0 ; 32 ; +; nios_system:NiosII|nios_system_onchip_memory:onchip_memory|altsyncram:the_altsyncram|altsyncram_4ed1:auto_generated|address_reg_a[2] ; 32 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|R_ctrl_shift_rot_right ; 32 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|R_src1~31 ; 32 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|R_src2_use_imm ; 32 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|R_logic_op[1] ; 32 ; +; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|virtual_ir_scan_reg ; 31 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|readdata~0 ; 31 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|av_ld_rshift8~1 ; 30 ; +; nios_system:NiosII|nios_system_cmd_xbar_demux:rsp_xbar_demux|src1_valid ; 30 ; +; nios_system:NiosII|altera_merlin_slave_translator:lcd_16207_0_control_slave_translator|wait_latency_counter[0]~24 ; 29 ; +; nios_system:NiosII|altera_merlin_master_translator:nios2_processor_data_master_translator|uav_write~0 ; 29 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|W_alu_result[6] ; 29 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|W_alu_result[5] ; 28 ; +; nios_system:NiosII|nios_system_cmd_xbar_demux:rsp_xbar_demux_001|src1_valid ; 27 ; +; nios_system:NiosII|altera_merlin_slave_translator:jtag_uart_avalon_jtag_slave_translator|read_latency_shift_reg[0] ; 27 ; +; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[1][0] ; 26 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_test_bench:the_nios_system_nios2_processor_test_bench|d_write ; 26 ; +; nios_system:NiosII|nios_system_cmd_xbar_mux:cmd_xbar_mux_001|saved_grant[0] ; 25 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|E_valid ; 25 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|D_iw[14] ; 24 ; +; nios_system:NiosII|altera_avalon_sc_fifo:lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rsp_fifo|write~0 ; 24 ; +; nios_system:NiosII|altera_merlin_master_translator:nios2_processor_data_master_translator|write_accepted ; 24 ; +; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|hub_mode_reg[1] ; 23 ; +; nios_system:NiosII|altera_merlin_slave_translator:switches_s1_translator|read_latency_shift_reg[0] ; 23 ; +; nios_system:NiosII|altera_merlin_slave_translator:ledrs_s1_translator|read_latency_shift_reg[0] ; 23 ; +; nios_system:NiosII|altera_merlin_master_agent:nios2_processor_data_master_translator_avalon_universal_master_0_agent|hold_waitrequest ; 23 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|D_iw[2] ; 22 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|R_ctrl_shift_rot ; 22 ; +; altera_internal_jtag~TMSUTAP ; 21 ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[0]~4 ; 21 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|D_iw[15] ; 21 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|D_iw[12] ; 21 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|D_iw[3] ; 21 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|R_ctrl_logic ; 21 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|E_alu_sub ; 21 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|W_alu_result[28]~19 ; 20 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|W_valid ; 20 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|W_alu_result[28]~20 ; 19 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|D_iw[21] ; 19 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|D_iw[16] ; 19 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|D_iw[1] ; 19 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|W_alu_result[4] ; 19 ; +; altera_internal_jtag~TDIUTAP ; 18 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[34]~21 ; 18 ; +; nios_system:NiosII|nios_system_cmd_xbar_mux:cmd_xbar_mux|saved_grant[0] ; 18 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|D_iw[0] ; 18 ; +; nios_system:NiosII|nios_system_LEDRs:ledrs|always0~1 ; 18 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|d_writedata[0] ; 18 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|R_src1~30 ; 17 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|R_ctrl_hi_imm16 ; 17 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|R_ctrl_br_cmp ; 17 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|d_read ; 17 ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|fifo_wr ; 16 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr~19 ; 16 ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|read_0 ; 16 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|av_fill_bit~1 ; 16 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk|take_action_ocimem_a~0 ; 16 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|F_pc_sel_nxt.10~0 ; 16 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|R_ctrl_jmp_direct ; 16 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|R_src2_lo~0 ; 16 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|D_iw[5] ; 16 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|R_ctrl_rdctl_inst ; 16 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|d_writedata[1] ; 16 ; +; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[0] ; 15 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk|take_action_ocimem_a ; 15 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|W_status_reg_pie_inst_nxt~2 ; 15 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|R_src2_hi~0 ; 15 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|D_iw[11] ; 15 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|d_writedata[6] ; 15 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|d_writedata[5] ; 15 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|d_writedata[4] ; 15 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|d_writedata[3] ; 15 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|d_writedata[2] ; 15 ; +; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[1] ; 14 ; +; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[0] ; 14 ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|wr_rfifo ; 14 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|D_iw[13] ; 14 ; +; nios_system:NiosII|altera_merlin_master_translator:nios2_processor_data_master_translator|read_accepted ; 14 ; +; nios_system:NiosII|nios_system_addr_router_001:addr_router_001|Equal1~2 ; 14 ; +; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[8] ; 13 ; +; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[2] ; 13 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[2]~13 ; 13 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|Equal2~5 ; 13 ; +; nios_system:NiosII|altera_merlin_slave_translator:leds_s1_translator|read_latency_shift_reg[0] ; 13 ; +; nios_system:NiosII|altera_merlin_slave_translator:lcd_16207_0_control_slave_translator|read_latency_shift_reg[0] ; 13 ; +; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[6] ; 12 ; +; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[11] ; 12 ; +; nios_system:NiosII|altera_merlin_slave_translator:hex7_s1_translator|read_latency_shift_reg[0] ; 12 ; +; nios_system:NiosII|altera_merlin_slave_translator:hex6_s1_translator|read_latency_shift_reg[0] ; 12 ; +; nios_system:NiosII|altera_merlin_slave_translator:hex5_s1_translator|read_latency_shift_reg[0] ; 12 ; +; nios_system:NiosII|altera_merlin_slave_translator:hex4_s1_translator|read_latency_shift_reg[0] ; 12 ; +; nios_system:NiosII|altera_merlin_slave_translator:hex3_s1_translator|read_latency_shift_reg[0] ; 12 ; +; nios_system:NiosII|altera_merlin_slave_translator:hex2_s1_translator|read_latency_shift_reg[0] ; 12 ; +; nios_system:NiosII|altera_merlin_slave_translator:hex1_s1_translator|read_latency_shift_reg[0] ; 12 ; +; nios_system:NiosII|altera_merlin_slave_translator:hex0_s1_translator|read_latency_shift_reg[0] ; 12 ; +; nios_system:NiosII|altera_merlin_slave_translator:onchip_memory_s1_translator|read_latency_shift_reg[0] ; 12 ; +; nios_system:NiosII|nios_system_addr_router_001:addr_router_001|Equal8~0 ; 12 ; +; nios_system:NiosII|nios_system_LEDs:leds|always0~1 ; 12 ; +; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|mixer_addr_reg[3] ; 11 ; +; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|mixer_addr_reg[2] ; 11 ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|r_val~0 ; 11 ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[9] ; 11 ; +; nios_system:NiosII|altera_avalon_sc_fifo:nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo|mem_used[1] ; 11 ; +; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[2][0] ; 10 ; +; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|mixer_addr_reg[1] ; 10 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|Equal133~0 ; 10 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_ocimem:the_nios_system_nios2_processor_nios2_ocimem|waitrequest ; 10 ; +; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[5] ; 9 ; +; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|mixer_addr_reg[0] ; 9 ; +; ~GND ; 9 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|av_fill_bit~0 ; 9 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|R_ctrl_ld_signed ; 9 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|hbreak_enabled ; 9 ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|state ; 9 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|D_iw[6] ; 9 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|D_iw[8] ; 9 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|D_iw[7] ; 9 ; +; nios_system:NiosII|altera_avalon_sc_fifo:jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rsp_fifo|mem_used[1] ; 9 ; +; nios_system:NiosII|altera_avalon_sc_fifo:onchip_memory_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem_used[1] ; 9 ; +; nios_system:NiosII|altera_avalon_sc_fifo:onchip_memory_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][76] ; 9 ; +; nios_system:NiosII|nios_system_addr_router_001:addr_router_001|Equal9~0 ; 9 ; +; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[4] ; 8 ; +; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|node_ena[1]~reg0 ; 8 ; +; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|mixer_addr_reg[4] ; 8 ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|wdata[1]~0 ; 8 ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|fifo_rd~2 ; 8 ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_r:the_nios_system_jtag_uart_scfifo_r|scfifo:rfifo|scfifo_jr21:auto_generated|a_dpfifo_q131:dpfifo|a_fefifo_7cf:fifo_state|b_non_empty ; 8 ; +; nios_system:NiosII|nios_system_onchip_memory:onchip_memory|altsyncram:the_altsyncram|altsyncram_4ed1:auto_generated|decode_qsa:decode3|w_anode1916w[3] ; 8 ; +; nios_system:NiosII|nios_system_cmd_xbar_mux:cmd_xbar_mux_001|src_data[52] ; 8 ; +; nios_system:NiosII|nios_system_cmd_xbar_mux:cmd_xbar_mux_001|src_data[53] ; 8 ; +; nios_system:NiosII|nios_system_cmd_xbar_mux:cmd_xbar_mux_001|src_data[51] ; 8 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|av_ld_byte1_data_en~0 ; 8 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|av_ld_byte0_data[4]~0 ; 8 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|av_ld_rshift8~0 ; 8 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|D_ctrl_retaddr~0 ; 8 ; +; nios_system:NiosII|nios_system_addr_router_001:addr_router_001|Equal16~1 ; 8 ; +; nios_system:NiosII|altera_merlin_slave_translator:push_switches_s1_translator|read_latency_shift_reg[0] ; 8 ; +; nios_system:NiosII|nios_system_LEDs:leds|always0~2 ; 8 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|W_alu_result[8] ; 8 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|W_alu_result[7] ; 8 ; +; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|virtual_dr_scan_reg ; 7 ; +; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_rom_sr:hub_info_reg|word_counter[0] ; 7 ; +; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_rom_sr:hub_info_reg|word_counter[2] ; 7 ; +; nios_system:NiosII|nios_system_cmd_xbar_mux:cmd_xbar_mux_001|src_payload~31 ; 7 ; +; nios_system:NiosII|nios_system_cmd_xbar_mux:cmd_xbar_mux_001|src_payload~30 ; 7 ; +; nios_system:NiosII|nios_system_cmd_xbar_mux:cmd_xbar_mux_001|src_payload~29 ; 7 ; +; nios_system:NiosII|nios_system_cmd_xbar_mux:cmd_xbar_mux_001|src_payload~28 ; 7 ; +; nios_system:NiosII|nios_system_cmd_xbar_mux:cmd_xbar_mux_001|src_payload~27 ; 7 ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_w:the_nios_system_jtag_uart_scfifo_w|scfifo:wfifo|scfifo_jr21:auto_generated|a_dpfifo_q131:dpfifo|a_fefifo_7cf:fifo_state|b_full ; 7 ; +; nios_system:NiosII|nios_system_cmd_xbar_mux:cmd_xbar_mux_001|src_payload~26 ; 7 ; +; nios_system:NiosII|nios_system_cmd_xbar_mux:cmd_xbar_mux_001|src_payload~25 ; 7 ; +; nios_system:NiosII|nios_system_cmd_xbar_mux:cmd_xbar_mux_001|src_payload~24 ; 7 ; +; nios_system:NiosII|nios_system_cmd_xbar_mux:cmd_xbar_mux_001|src_payload~23 ; 7 ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_r:the_nios_system_jtag_uart_scfifo_r|scfifo:rfifo|scfifo_jr21:auto_generated|a_dpfifo_q131:dpfifo|a_fefifo_7cf:fifo_state|b_full ; 7 ; +; nios_system:NiosII|nios_system_cmd_xbar_mux:cmd_xbar_mux_001|src_payload~22 ; 7 ; +; nios_system:NiosII|nios_system_cmd_xbar_mux:cmd_xbar_mux_001|src_payload~21 ; 7 ; +; nios_system:NiosII|nios_system_cmd_xbar_mux:cmd_xbar_mux_001|src_payload~20 ; 7 ; +; nios_system:NiosII|nios_system_cmd_xbar_mux:cmd_xbar_mux_001|src_payload~19 ; 7 ; +; nios_system:NiosII|nios_system_cmd_xbar_mux:cmd_xbar_mux_001|src_payload~18 ; 7 ; +; nios_system:NiosII|nios_system_cmd_xbar_mux:cmd_xbar_mux_001|src_payload~17 ; 7 ; +; nios_system:NiosII|nios_system_cmd_xbar_mux:cmd_xbar_mux_001|src_payload~16 ; 7 ; +; nios_system:NiosII|nios_system_cmd_xbar_mux:cmd_xbar_mux_001|src_payload~15 ; 7 ; +; nios_system:NiosII|nios_system_cmd_xbar_mux:cmd_xbar_mux_001|src_payload~14 ; 7 ; +; nios_system:NiosII|nios_system_cmd_xbar_mux:cmd_xbar_mux_001|src_payload~13 ; 7 ; +; nios_system:NiosII|nios_system_cmd_xbar_mux:cmd_xbar_mux_001|src_payload~12 ; 7 ; +; nios_system:NiosII|nios_system_cmd_xbar_mux:cmd_xbar_mux_001|src_payload~11 ; 7 ; +; nios_system:NiosII|nios_system_cmd_xbar_mux:cmd_xbar_mux_001|src_payload~10 ; 7 ; +; nios_system:NiosII|nios_system_cmd_xbar_mux:cmd_xbar_mux_001|src_payload~9 ; 7 ; +; nios_system:NiosII|nios_system_cmd_xbar_mux:cmd_xbar_mux_001|src_payload~8 ; 7 ; +; nios_system:NiosII|nios_system_cmd_xbar_mux:cmd_xbar_mux_001|src_payload~7 ; 7 ; +; nios_system:NiosII|nios_system_cmd_xbar_mux:cmd_xbar_mux_001|src_payload~6 ; 7 ; +; nios_system:NiosII|nios_system_cmd_xbar_mux:cmd_xbar_mux_001|src_payload~5 ; 7 ; +; nios_system:NiosII|nios_system_cmd_xbar_mux:cmd_xbar_mux_001|src_payload~4 ; 7 ; +; nios_system:NiosII|nios_system_cmd_xbar_mux:cmd_xbar_mux_001|src_payload~3 ; 7 ; +; nios_system:NiosII|nios_system_cmd_xbar_mux:cmd_xbar_mux_001|src_payload~2 ; 7 ; +; nios_system:NiosII|nios_system_cmd_xbar_mux:cmd_xbar_mux_001|src_payload~1 ; 7 ; +; nios_system:NiosII|nios_system_cmd_xbar_mux:cmd_xbar_mux_001|src_payload~0 ; 7 ; +; nios_system:NiosII|nios_system_onchip_memory:onchip_memory|wren~0 ; 7 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk|jdo[35] ; 7 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|R_ctrl_break ; 7 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|R_ctrl_exception ; 7 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|write ; 7 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|i_read ; 7 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|sld_virtual_jtag_basic:nios_system_nios2_processor_jtag_debug_module_phy|virtual_state_cdr ; 7 ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|av_waitrequest ; 7 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|E_src1[0] ; 7 ; +; nios_system:NiosII|nios_system_hex0:hex7|always0~1 ; 7 ; +; nios_system:NiosII|nios_system_hex0:hex6|always0~1 ; 7 ; +; nios_system:NiosII|nios_system_hex0:hex5|always0~1 ; 7 ; +; nios_system:NiosII|nios_system_addr_router_001:addr_router_001|Equal1~4 ; 7 ; +; nios_system:NiosII|nios_system_hex0:hex4|always0~1 ; 7 ; +; nios_system:NiosII|nios_system_hex0:hex3|always0~1 ; 7 ; +; nios_system:NiosII|nios_system_hex0:hex2|always0~1 ; 7 ; +; nios_system:NiosII|nios_system_hex0:hex1|always0~1 ; 7 ; +; nios_system:NiosII|nios_system_hex0:hex0|always0~1 ; 7 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|d_writedata[7] ; 7 ; +; nios_system:NiosII|altera_avalon_sc_fifo:lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rsp_fifo|mem_used[1] ; 7 ; +; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_rom_sr:hub_info_reg|clear_signal ; 6 ; +; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|node_ena_proc~1 ; 6 ; +; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|hub_info_reg_ena~0 ; 6 ; +; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_rom_sr:hub_info_reg|word_counter[3] ; 6 ; +; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[3] ; 6 ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_r:the_nios_system_jtag_uart_scfifo_r|scfifo:rfifo|scfifo_jr21:auto_generated|a_dpfifo_q131:dpfifo|a_fefifo_7cf:fifo_state|_~4 ; 6 ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_w:the_nios_system_jtag_uart_scfifo_w|scfifo:wfifo|scfifo_jr21:auto_generated|a_dpfifo_q131:dpfifo|a_fefifo_7cf:fifo_state|_~0 ; 6 ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|t_ena~reg0 ; 6 ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_r:the_nios_system_jtag_uart_scfifo_r|scfifo:rfifo|scfifo_jr21:auto_generated|a_dpfifo_q131:dpfifo|a_fefifo_7cf:fifo_state|cntr_do7:count_usedw|counter_reg_bit[0] ; 6 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|address[0] ; 6 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_ocimem:the_nios_system_nios2_processor_nios2_ocimem|Equal0~0 ; 6 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_ocimem:the_nios_system_nios2_processor_nios2_ocimem|MonAReg[2] ; 6 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_ocimem:the_nios_system_nios2_processor_nios2_ocimem|MonAReg[3] ; 6 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_ocimem:the_nios_system_nios2_processor_nios2_ocimem|MonAReg[4] ; 6 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|D_ctrl_b_is_dst~1 ; 6 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|R_valid ; 6 ; +; nios_system:NiosII|nios_system_lcd_on:lcd_blon|always0~0 ; 6 ; +; nios_system:NiosII|nios_system_lcd_on:lcd_on|always0~0 ; 6 ; +; nios_system:NiosII|altera_merlin_slave_translator:lcd_blon_s1_translator|read_latency_shift_reg[0] ; 6 ; +; nios_system:NiosII|altera_merlin_slave_translator:lcd_on_s1_translator|read_latency_shift_reg[0] ; 6 ; +; nios_system:NiosII|altera_merlin_slave_translator:lcd_16207_0_control_slave_translator|wait_latency_counter[0]~23 ; 6 ; +; nios_system:NiosII|nios_system_hex0:hex6|always0~0 ; 6 ; +; nios_system:NiosII|nios_system_hex0:hex5|always0~0 ; 6 ; +; nios_system:NiosII|nios_system_hex0:hex3|always0~0 ; 6 ; +; nios_system:NiosII|nios_system_LEDRs:ledrs|always0~0 ; 6 ; +; nios_system:NiosII|nios_system_LEDs:leds|always0~0 ; 6 ; +; nios_system:NiosII|altera_merlin_master_translator:nios2_processor_data_master_translator|uav_read~0 ; 6 ; +; nios_system:NiosII|altera_merlin_slave_translator:lcd_16207_0_control_slave_translator|wait_latency_counter[4] ; 6 ; +; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_rom_sr:hub_info_reg|word_counter[4]~23 ; 5 ; +; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_rom_sr:hub_info_reg|word_counter[4]~22 ; 5 ; +; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|mixer_addr_reg[0]~19 ; 5 ; +; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|mixer_addr_reg[0]~14 ; 5 ; +; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|shadow_irf_reg[2][0]~9 ; 5 ; +; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|shadow_irf_reg[1][0]~2 ; 5 ; +; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[2]~3 ; 5 ; +; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[3]~0 ; 5 ; +; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[2][0]~12 ; 5 ; +; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[1][0]~5 ; 5 ; +; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_proc~0 ; 5 ; +; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|Equal11~0 ; 5 ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_r:the_nios_system_jtag_uart_scfifo_r|scfifo:rfifo|scfifo_jr21:auto_generated|a_dpfifo_q131:dpfifo|a_fefifo_7cf:fifo_state|cntr_do7:count_usedw|counter_reg_bit[5] ; 5 ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_r:the_nios_system_jtag_uart_scfifo_r|scfifo:rfifo|scfifo_jr21:auto_generated|a_dpfifo_q131:dpfifo|a_fefifo_7cf:fifo_state|cntr_do7:count_usedw|counter_reg_bit[4] ; 5 ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_r:the_nios_system_jtag_uart_scfifo_r|scfifo:rfifo|scfifo_jr21:auto_generated|a_dpfifo_q131:dpfifo|a_fefifo_7cf:fifo_state|cntr_do7:count_usedw|counter_reg_bit[1] ; 5 ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_r:the_nios_system_jtag_uart_scfifo_r|scfifo:rfifo|scfifo_jr21:auto_generated|a_dpfifo_q131:dpfifo|a_fefifo_7cf:fifo_state|cntr_do7:count_usedw|counter_reg_bit[2] ; 5 ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_r:the_nios_system_jtag_uart_scfifo_r|scfifo:rfifo|scfifo_jr21:auto_generated|a_dpfifo_q131:dpfifo|a_fefifo_7cf:fifo_state|cntr_do7:count_usedw|counter_reg_bit[3] ; 5 ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_w:the_nios_system_jtag_uart_scfifo_w|scfifo:wfifo|scfifo_jr21:auto_generated|a_dpfifo_q131:dpfifo|a_fefifo_7cf:fifo_state|cntr_do7:count_usedw|counter_reg_bit[4] ; 5 ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_w:the_nios_system_jtag_uart_scfifo_w|scfifo:wfifo|scfifo_jr21:auto_generated|a_dpfifo_q131:dpfifo|a_fefifo_7cf:fifo_state|cntr_do7:count_usedw|counter_reg_bit[5] ; 5 ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_w:the_nios_system_jtag_uart_scfifo_w|scfifo:wfifo|scfifo_jr21:auto_generated|a_dpfifo_q131:dpfifo|a_fefifo_7cf:fifo_state|cntr_do7:count_usedw|counter_reg_bit[1] ; 5 ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_w:the_nios_system_jtag_uart_scfifo_w|scfifo:wfifo|scfifo_jr21:auto_generated|a_dpfifo_q131:dpfifo|a_fefifo_7cf:fifo_state|cntr_do7:count_usedw|counter_reg_bit[2] ; 5 ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_w:the_nios_system_jtag_uart_scfifo_w|scfifo:wfifo|scfifo_jr21:auto_generated|a_dpfifo_q131:dpfifo|a_fefifo_7cf:fifo_state|cntr_do7:count_usedw|counter_reg_bit[0] ; 5 ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_w:the_nios_system_jtag_uart_scfifo_w|scfifo:wfifo|scfifo_jr21:auto_generated|a_dpfifo_q131:dpfifo|a_fefifo_7cf:fifo_state|cntr_do7:count_usedw|counter_reg_bit[3] ; 5 ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|write_stalled~1 ; 5 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_avalon_reg:the_nios_system_nios2_processor_nios2_avalon_reg|Equal0~1 ; 5 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_avalon_reg:the_nios_system_nios2_processor_nios2_avalon_reg|Equal0~0 ; 5 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|E_arith_result[1]~5 ; 5 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|E_arith_result[0]~4 ; 5 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|D_dst_regnum[3]~0 ; 5 ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|jupdate~0 ; 5 ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift~6 ; 5 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk|jdo[34] ; 5 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk|jdo[17] ; 5 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|Equal101~5 ; 5 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|W_status_reg_pie ; 5 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|hbreak_req~0 ; 5 ; +; nios_system:NiosII|altera_merlin_master_agent:nios2_processor_data_master_translator_avalon_universal_master_0_agent|cp_valid ; 5 ; +; nios_system:NiosII|altera_merlin_master_translator:nios2_processor_instruction_master_translator|read_accepted ; 5 ; +; nios_system:NiosII|altera_merlin_slave_translator:lcd_blon_s1_translator|wait_latency_counter[0]~0 ; 5 ; +; nios_system:NiosII|altera_merlin_slave_translator:lcd_on_s1_translator|wait_latency_counter[0] ; 5 ; +; nios_system:NiosII|altera_merlin_slave_translator:hex6_s1_translator|wait_latency_counter[1]~0 ; 5 ; +; nios_system:NiosII|altera_merlin_slave_translator:hex3_s1_translator|wait_latency_counter[1]~0 ; 5 ; +; nios_system:NiosII|altera_merlin_slave_translator:leds_s1_translator|wait_latency_counter[1]~0 ; 5 ; +; nios_system:NiosII|altera_merlin_slave_translator:hex7_s1_translator|wait_latency_counter[0] ; 5 ; +; nios_system:NiosII|nios_system_hex0:hex7|always0~0 ; 5 ; +; nios_system:NiosII|altera_merlin_slave_translator:hex5_s1_translator|wait_latency_counter[0] ; 5 ; +; nios_system:NiosII|altera_merlin_slave_translator:hex4_s1_translator|wait_latency_counter[0] ; 5 ; +; nios_system:NiosII|nios_system_hex0:hex4|always0~0 ; 5 ; +; nios_system:NiosII|altera_merlin_slave_translator:hex2_s1_translator|wait_latency_counter[0] ; 5 ; +; nios_system:NiosII|nios_system_hex0:hex2|always0~0 ; 5 ; +; nios_system:NiosII|altera_merlin_slave_translator:hex1_s1_translator|wait_latency_counter[0] ; 5 ; +; nios_system:NiosII|nios_system_hex0:hex1|always0~0 ; 5 ; +; nios_system:NiosII|altera_merlin_slave_translator:hex0_s1_translator|wait_latency_counter[0] ; 5 ; +; nios_system:NiosII|nios_system_hex0:hex0|always0~0 ; 5 ; +; nios_system:NiosII|altera_merlin_slave_translator:ledrs_s1_translator|wait_latency_counter[0] ; 5 ; +; nios_system:NiosII|nios_system_addr_router_001:addr_router_001|Equal1~1 ; 5 ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[9] ; 5 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|E_src1[5] ; 5 ; +; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_rom_sr:hub_info_reg|WORD_SR[0]~19 ; 4 ; +; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|identity_contrib_shift_reg[0]~2 ; 4 ; +; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|identity_contrib_update_reg[0]~0 ; 4 ; +; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|hub_info_reg_ena ; 4 ; +; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|design_hash_proc~0 ; 4 ; +; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|node_ena_proc~0 ; 4 ; +; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[15] ; 4 ; +; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_rom_sr:hub_info_reg|word_counter[1] ; 4 ; +; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_rom_sr:hub_info_reg|word_counter[4] ; 4 ; +; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[1] ; 4 ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|fifo_rd~3 ; 4 ; +; nios_system:NiosII|altera_merlin_slave_agent:switches_s1_translator_avalon_universal_slave_0_agent|m0_write~2 ; 4 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_avalon_reg:the_nios_system_nios2_processor_nios2_avalon_reg|Equal0~2 ; 4 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|E_src1[30] ; 4 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|E_src1[20] ; 4 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|E_src1[21] ; 4 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|E_src1[22] ; 4 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|E_src1[23] ; 4 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|E_src1[24] ; 4 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|E_src1[25] ; 4 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|E_src1[26] ; 4 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|E_src1[27] ; 4 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|E_src1[28] ; 4 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|E_src1[29] ; 4 ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[10] ; 4 ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|write_stalled ; 4 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|E_src1[19] ; 4 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|av_ld_align_cycle[0] ; 4 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|av_ld_getting_data~13 ; 4 ; +; nios_system:NiosII|nios_system_cmd_xbar_demux:rsp_xbar_demux|src0_valid ; 4 ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[1] ; 4 ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|user_saw_rvalid ; 4 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|sld_virtual_jtag_basic:nios_system_nios2_processor_jtag_debug_module_phy|virtual_state_uir~0 ; 4 ; +; nios_system:NiosII|nios_system_cmd_xbar_mux:cmd_xbar_mux|update_grant~1 ; 4 ; +; nios_system:NiosII|nios_system_cmd_xbar_mux:cmd_xbar_mux_001|update_grant~1 ; 4 ; +; nios_system:NiosII|altera_merlin_slave_agent:nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent|local_read~1 ; 4 ; +; nios_system:NiosII|nios_system_cmd_xbar_demux:cmd_xbar_demux|src0_valid~0 ; 4 ; +; nios_system:NiosII|altera_avalon_sc_fifo:push_switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem_used[0] ; 4 ; +; nios_system:NiosII|nios_system_cmd_xbar_mux:cmd_xbar_mux_001|WideOr1 ; 4 ; +; nios_system:NiosII|nios_system_cmd_xbar_demux_001:cmd_xbar_demux_001|src1_valid~0 ; 4 ; +; nios_system:NiosII|nios_system_cmd_xbar_demux:cmd_xbar_demux|src1_valid~0 ; 4 ; +; nios_system:NiosII|altera_avalon_sc_fifo:lcd_blon_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem_used[0] ; 4 ; +; nios_system:NiosII|altera_merlin_slave_translator:lcd_on_s1_translator|wait_latency_counter[0]~0 ; 4 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|D_iw[17] ; 4 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|D_iw[18] ; 4 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|D_iw[19] ; 4 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|D_iw[20] ; 4 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|D_ctrl_shift_logical~0 ; 4 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|R_ctrl_br_nxt~0 ; 4 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|Equal2~4 ; 4 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|Equal2~3 ; 4 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|Equal2~0 ; 4 ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex7_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem_used[0] ; 4 ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex5_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem_used[0] ; 4 ; +; nios_system:NiosII|altera_merlin_slave_translator:hex5_s1_translator|wait_latency_counter[0]~0 ; 4 ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex3_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem_used[0] ; 4 ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex1_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem_used[0] ; 4 ; +; nios_system:NiosII|altera_avalon_sc_fifo:ledrs_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem_used[0] ; 4 ; +; nios_system:NiosII|altera_merlin_slave_translator:ledrs_s1_translator|wait_latency_counter[1]~0 ; 4 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|Mux37~0 ; 4 ; +; nios_system:NiosII|altera_merlin_slave_translator:lcd_blon_s1_translator|wait_latency_counter[0] ; 4 ; +; nios_system:NiosII|altera_avalon_sc_fifo:lcd_blon_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem_used[1] ; 4 ; +; nios_system:NiosII|nios_system_addr_router_001:addr_router_001|Equal0~2 ; 4 ; +; nios_system:NiosII|altera_merlin_slave_translator:lcd_on_s1_translator|wait_latency_counter[1] ; 4 ; +; nios_system:NiosII|altera_avalon_sc_fifo:lcd_on_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem_used[1] ; 4 ; +; nios_system:NiosII|altera_merlin_slave_translator:push_switches_s1_translator|wait_latency_counter[0] ; 4 ; +; nios_system:NiosII|altera_merlin_slave_agent:push_switches_s1_translator_avalon_universal_slave_0_agent|m0_write~0 ; 4 ; +; nios_system:NiosII|altera_avalon_sc_fifo:push_switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem_used[1] ; 4 ; +; nios_system:NiosII|altera_merlin_slave_translator:switches_s1_translator|wait_latency_counter[0] ; 4 ; +; nios_system:NiosII|altera_avalon_sc_fifo:switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem_used[1] ; 4 ; +; nios_system:NiosII|altera_avalon_sc_fifo:lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rsp_fifo|mem_used[0] ; 4 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|E_src2[4] ; 4 ; +; nios_system:NiosII|altera_merlin_slave_translator:lcd_16207_0_control_slave_translator|av_waitrequest_generated~2 ; 4 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|E_src2[0] ; 4 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|E_src1[1] ; 4 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|E_src2[1] ; 4 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|E_src2[2] ; 4 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|E_src2[3] ; 4 ; +; nios_system:NiosII|altera_merlin_slave_translator:hex7_s1_translator|wait_latency_counter[1] ; 4 ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex7_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem_used[1] ; 4 ; +; nios_system:NiosII|nios_system_addr_router_001:addr_router_001|Equal4~2 ; 4 ; +; nios_system:NiosII|altera_merlin_slave_translator:hex6_s1_translator|wait_latency_counter[0] ; 4 ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex6_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem_used[1] ; 4 ; +; nios_system:NiosII|altera_merlin_slave_translator:hex5_s1_translator|wait_latency_counter[1] ; 4 ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex5_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem_used[1] ; 4 ; +; nios_system:NiosII|altera_merlin_slave_translator:hex4_s1_translator|wait_latency_counter[1] ; 4 ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex4_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem_used[1] ; 4 ; +; nios_system:NiosII|altera_merlin_slave_translator:hex3_s1_translator|wait_latency_counter[0] ; 4 ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex3_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem_used[1] ; 4 ; +; nios_system:NiosII|altera_merlin_slave_translator:hex2_s1_translator|wait_latency_counter[1] ; 4 ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex2_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem_used[1] ; 4 ; +; nios_system:NiosII|nios_system_addr_router_001:addr_router_001|Equal1~3 ; 4 ; +; nios_system:NiosII|altera_merlin_slave_translator:hex1_s1_translator|wait_latency_counter[1] ; 4 ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex1_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem_used[1] ; 4 ; +; nios_system:NiosII|altera_merlin_slave_translator:hex0_s1_translator|wait_latency_counter[1] ; 4 ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex0_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem_used[1] ; 4 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|d_writedata[10] ; 4 ; +; nios_system:NiosII|altera_merlin_slave_translator:ledrs_s1_translator|wait_latency_counter[1] ; 4 ; +; nios_system:NiosII|altera_avalon_sc_fifo:ledrs_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem_used[1] ; 4 ; +; nios_system:NiosII|nios_system_addr_router_001:addr_router_001|Equal2~2 ; 4 ; +; nios_system:NiosII|altera_merlin_slave_translator:leds_s1_translator|wait_latency_counter[0] ; 4 ; +; nios_system:NiosII|altera_avalon_sc_fifo:leds_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem_used[1] ; 4 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[31] ; 4 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_ocimem:the_nios_system_nios2_processor_nios2_ocimem|MonARegAddrInc[8]~16 ; 4 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_register_bank_b_module:nios_system_nios2_processor_register_bank_b|altsyncram:the_altsyncram|altsyncram_1rh1:auto_generated|q_b[1] ; 4 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_register_bank_b_module:nios_system_nios2_processor_register_bank_b|altsyncram:the_altsyncram|altsyncram_1rh1:auto_generated|q_b[2] ; 4 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_register_bank_b_module:nios_system_nios2_processor_register_bank_b|altsyncram:the_altsyncram|altsyncram_1rh1:auto_generated|q_b[3] ; 4 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_register_bank_b_module:nios_system_nios2_processor_register_bank_b|altsyncram:the_altsyncram|altsyncram_1rh1:auto_generated|q_b[4] ; 4 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_register_bank_b_module:nios_system_nios2_processor_register_bank_b|altsyncram:the_altsyncram|altsyncram_1rh1:auto_generated|q_b[5] ; 4 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_register_bank_b_module:nios_system_nios2_processor_register_bank_b|altsyncram:the_altsyncram|altsyncram_1rh1:auto_generated|q_b[6] ; 4 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_register_bank_b_module:nios_system_nios2_processor_register_bank_b|altsyncram:the_altsyncram|altsyncram_1rh1:auto_generated|q_b[7] ; 4 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_register_bank_b_module:nios_system_nios2_processor_register_bank_b|altsyncram:the_altsyncram|altsyncram_1rh1:auto_generated|q_b[0] ; 4 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|E_src1[6] ; 4 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|E_src1[7] ; 4 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|E_src1[8] ; 4 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|E_src1[9] ; 4 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|E_src1[10] ; 4 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|E_src1[11] ; 4 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|E_src1[12] ; 4 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|E_src1[13] ; 4 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|E_src1[14] ; 4 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|E_src1[15] ; 4 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|E_src1[16] ; 4 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|E_src1[17] ; 4 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|E_src1[18] ; 4 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|E_src1[4] ; 4 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|E_src1[2] ; 4 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|E_src1[3] ; 4 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|W_alu_result[13] ; 4 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|W_alu_result[14] ; 4 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|W_alu_result[9] ; 4 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|W_alu_result[10] ; 4 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|W_alu_result[11] ; 4 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|W_alu_result[12] ; 4 ; +; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_rom_sr:hub_info_reg|WORD_SR~9 ; 3 ; +; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|tms_cnt[0] ; 3 ; +; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|hub_mode_reg[0] ; 3 ; +; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|design_hash_reg~8 ; 3 ; +; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|virtual_ir_dr_scan_proc~0 ; 3 ; +; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|jtag_ir_reg[1] ; 3 ; +; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[2][0]~11 ; 3 ; +; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[1][0]~4 ; 3 ; +; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[7] ; 3 ; +; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[5] ; 3 ; +; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|node_ena[2]~reg0 ; 3 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|D_ctrl_logic~9 ; 3 ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|ien_AF~2 ; 3 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk|jdo[24] ; 3 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk|jdo[22] ; 3 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk|jdo[23] ; 3 ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|write1 ; 3 ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_w:the_nios_system_jtag_uart_scfifo_w|scfifo:wfifo|scfifo_jr21:auto_generated|a_dpfifo_q131:dpfifo|a_fefifo_7cf:fifo_state|b_non_empty ; 3 ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift~11 ; 3 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_oci_debug:the_nios_system_nios2_processor_nios2_oci_debug|monitor_error ; 3 ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|av_waitrequest~1 ; 3 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk|jdo[18] ; 3 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk|jdo[19] ; 3 ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|rst2 ; 3 ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|r_ena1 ; 3 ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|r_val ; 3 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk|jdo[25] ; 3 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_avalon_reg:the_nios_system_nios2_processor_nios2_avalon_reg|take_action_ocireg~0 ; 3 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk|jdo[26] ; 3 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk|jdo[27] ; 3 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk|jdo[28] ; 3 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk|jdo[29] ; 3 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk|jdo[30] ; 3 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk|jdo[31] ; 3 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|R_ctrl_wrctl_inst ; 3 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_avalon_reg:the_nios_system_nios2_processor_nios2_avalon_reg|oci_single_step_mode ; 3 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk|jdo[20] ; 3 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk|jdo[21] ; 3 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|W_ienable_reg[5] ; 3 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|W_bstatus_reg ; 3 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|W_estatus_reg ; 3 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|E_src1[31] ; 3 ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|rvalid0 ; 3 ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|t_dav ; 3 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_oci_debug:the_nios_system_nios2_processor_nios2_oci_debug|monitor_ready ; 3 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk|ir[0] ; 3 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk|ir[1] ; 3 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk|enable_action_strobe ; 3 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|av_ld_align_cycle[1] ; 3 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|D_ctrl_implicit_dst_retaddr~0 ; 3 ; +; nios_system:NiosII|altera_merlin_master_agent:nios2_processor_instruction_master_translator_avalon_universal_master_0_agent|av_readdatavalid~0 ; 3 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|read ; 3 ; +; nios_system:NiosII|altera_merlin_slave_translator:push_switches_s1_translator|wait_latency_counter[1]~0 ; 3 ; +; nios_system:NiosII|altera_merlin_slave_translator:switches_s1_translator|wait_latency_counter[1]~0 ; 3 ; +; nios_system:NiosII|nios_system_cmd_xbar_mux:cmd_xbar_mux|WideOr1 ; 3 ; +; nios_system:NiosII|nios_system_cmd_xbar_demux_001:cmd_xbar_demux_001|src0_valid~0 ; 3 ; +; nios_system:NiosII|altera_avalon_sc_fifo:nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo|mem_used[1]~0 ; 3 ; +; nios_system:NiosII|altera_avalon_sc_fifo:nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo|mem_used[0] ; 3 ; +; nios_system:NiosII|altera_avalon_sc_fifo:switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem_used[0] ; 3 ; +; nios_system:NiosII|altera_avalon_sc_fifo:jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rsp_fifo|mem_used[0] ; 3 ; +; nios_system:NiosII|nios_system_addr_router:addr_router|Equal0~1 ; 3 ; +; nios_system:NiosII|nios_system_addr_router:addr_router|Equal0~0 ; 3 ; +; nios_system:NiosII|altera_avalon_sc_fifo:onchip_memory_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem_used[0] ; 3 ; +; nios_system:NiosII|altera_avalon_sc_fifo:lcd_on_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem_used[0] ; 3 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|F_pc[3] ; 3 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|F_pc[9] ; 3 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|D_iw[22] ; 3 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|D_iw[10] ; 3 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|R_ctrl_force_src2_zero ; 3 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|D_iw[9] ; 3 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|Equal2~2 ; 3 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|Equal101~0 ; 3 ; +; nios_system:NiosII|altera_merlin_slave_translator:hex7_s1_translator|wait_latency_counter[1]~0 ; 3 ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex6_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem_used[0] ; 3 ; +; nios_system:NiosII|altera_merlin_slave_translator:hex4_s1_translator|wait_latency_counter[0]~0 ; 3 ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex4_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem_used[0] ; 3 ; +; nios_system:NiosII|altera_merlin_slave_translator:hex2_s1_translator|wait_latency_counter[1]~0 ; 3 ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex2_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem_used[0] ; 3 ; +; nios_system:NiosII|altera_merlin_slave_translator:hex1_s1_translator|wait_latency_counter[1]~0 ; 3 ; +; nios_system:NiosII|altera_merlin_slave_translator:hex0_s1_translator|wait_latency_counter[1]~0 ; 3 ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex0_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem_used[0] ; 3 ; +; nios_system:NiosII|altera_avalon_sc_fifo:leds_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem_used[0] ; 3 ; +; nios_system:NiosII|altera_merlin_master_translator:nios2_processor_data_master_translator|av_waitrequest~2 ; 3 ; +; nios_system:NiosII|altera_merlin_master_translator:nios2_processor_data_master_translator|write_accepted~0 ; 3 ; +; nios_system:NiosII|altera_merlin_slave_translator:lcd_blon_s1_translator|wait_latency_counter[1] ; 3 ; +; nios_system:NiosII|nios_system_addr_router_001:addr_router_001|Equal7~0 ; 3 ; +; nios_system:NiosII|altera_merlin_slave_translator:push_switches_s1_translator|wait_latency_counter[1] ; 3 ; +; nios_system:NiosII|altera_merlin_slave_translator:switches_s1_translator|wait_latency_counter[1] ; 3 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|av_ld_getting_data~12 ; 3 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|E_src2[5] ; 3 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|E_src2[6] ; 3 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|E_src2[7] ; 3 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|E_src2[8] ; 3 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|E_src2[9] ; 3 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|E_src2[10] ; 3 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|E_src2[11] ; 3 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|E_src2[12] ; 3 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|E_src2[13] ; 3 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|E_src2[14] ; 3 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|E_src2[15] ; 3 ; +; nios_system:NiosII|nios_system_addr_router_001:addr_router_001|Equal3~0 ; 3 ; +; nios_system:NiosII|altera_merlin_slave_translator:hex6_s1_translator|wait_latency_counter[1] ; 3 ; +; nios_system:NiosII|altera_merlin_slave_translator:hex3_s1_translator|wait_latency_counter[1] ; 3 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|d_writedata[17] ; 3 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|d_writedata[16] ; 3 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|d_writedata[15] ; 3 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|d_writedata[14] ; 3 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|d_writedata[13] ; 3 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|d_writedata[12] ; 3 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|d_writedata[11] ; 3 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|d_writedata[9] ; 3 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|d_writedata[8] ; 3 ; +; nios_system:NiosII|altera_merlin_slave_translator:leds_s1_translator|wait_latency_counter[1] ; 3 ; +; nios_system:NiosII|altera_reset_controller:rst_controller|r_sync_rst ; 3 ; +; nios_system:NiosII|nios_system_lcd_on:lcd_blon|data_out ; 3 ; +; nios_system:NiosII|nios_system_lcd_on:lcd_on|data_out ; 3 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[15] ; 3 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[7] ; 3 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|E_shift_rot_result[24] ; 3 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|E_shift_rot_result[25] ; 3 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|E_shift_rot_result[26] ; 3 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|E_shift_rot_result[27] ; 3 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|E_shift_rot_result[28] ; 3 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|E_shift_rot_result[23] ; 3 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|E_shift_rot_result[29] ; 3 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|E_shift_rot_result[22] ; 3 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|E_shift_rot_result[30] ; 3 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[35] ; 3 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|E_shift_rot_result[21] ; 3 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|E_shift_rot_result[31] ; 3 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|E_src2[30] ; 3 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|E_src2[19] ; 3 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|E_src2[20] ; 3 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|E_src2[21] ; 3 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|E_src2[22] ; 3 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|E_src2[23] ; 3 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|E_src2[24] ; 3 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|E_src2[25] ; 3 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|E_src2[26] ; 3 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|E_src2[27] ; 3 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|E_src2[28] ; 3 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|E_src2[29] ; 3 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|E_shift_rot_result[20] ; 3 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|E_shift_rot_result[0] ; 3 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|av_ld_byte1_data[7] ; 3 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_oci_debug:the_nios_system_nios2_processor_nios2_oci_debug|jtag_break ; 3 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|E_shift_rot_result[19] ; 3 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|F_pc[4] ; 3 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|F_pc[5] ; 3 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|F_pc[6] ; 3 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|F_pc[7] ; 3 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|F_pc[8] ; 3 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|F_pc[10] ; 3 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|F_pc[11] ; 3 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|F_pc[12] ; 3 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|F_pc[13] ; 3 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|F_pc[14] ; 3 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|F_pc[15] ; 3 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|F_pc[2] ; 3 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|E_shift_rot_result[1] ; 3 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|F_pc[0] ; 3 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|F_pc[1] ; 3 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|E_shift_rot_result[6] ; 3 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|E_shift_rot_result[5] ; 3 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|E_shift_rot_result[8] ; 3 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|E_shift_rot_result[7] ; 3 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|E_shift_rot_result[13] ; 3 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|E_shift_rot_result[14] ; 3 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|E_shift_rot_result[9] ; 3 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|E_shift_rot_result[10] ; 3 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|E_shift_rot_result[11] ; 3 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|E_shift_rot_result[12] ; 3 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|E_shift_rot_result[15] ; 3 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|E_shift_rot_result[16] ; 3 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|E_shift_rot_result[17] ; 3 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|E_shift_rot_result[18] ; 3 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|E_src2[16] ; 3 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|E_src2[17] ; 3 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|E_src2[18] ; 3 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|E_shift_rot_result[4] ; 3 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|E_shift_rot_result[2] ; 3 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|E_shift_rot_result[3] ; 3 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[0] ; 3 ; +; nios_system:NiosII|altera_merlin_slave_translator:lcd_16207_0_control_slave_translator|wait_latency_counter[1] ; 3 ; +; nios_system:NiosII|altera_merlin_slave_translator:lcd_16207_0_control_slave_translator|wait_latency_counter[0] ; 3 ; +; nios_system:NiosII|altera_merlin_slave_translator:lcd_16207_0_control_slave_translator|wait_latency_counter[3] ; 3 ; +; nios_system:NiosII|altera_merlin_slave_translator:lcd_16207_0_control_slave_translator|wait_latency_counter[2] ; 3 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|W_alu_result[15] ; 3 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|W_alu_result[16] ; 3 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|W_alu_result[17] ; 3 ; +; nios_system:NiosII|altera_merlin_slave_translator:lcd_16207_0_control_slave_translator|wait_latency_counter[5] ; 3 ; +; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|identity_contrib_shift_reg[3] ; 2 ; +; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|identity_contrib_shift_reg[2] ; 2 ; +; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|identity_contrib_shift_reg[1] ; 2 ; +; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|reset_ena_reg_proc~0 ; 2 ; +; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|identity_contrib_shift_reg[0]~0 ; 2 ; +; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_rom_sr:hub_info_reg|WORD_SR~6 ; 2 ; +; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|hub_minor_ver_reg~1 ; 2 ; +; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|design_hash_reg[1]~7 ; 2 ; +; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|jtag_ir_reg[0] ; 2 ; +; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|Equal0~1 ; 2 ; +; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|jtag_ir_reg[2] ; 2 ; +; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|jtag_ir_reg[4] ; 2 ; +; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|jtag_ir_reg[5] ; 2 ; +; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|jtag_ir_reg[3] ; 2 ; +; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|Equal0~0 ; 2 ; +; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|jtag_ir_reg[6] ; 2 ; +; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|jtag_ir_reg[7] ; 2 ; +; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|jtag_ir_reg[8] ; 2 ; +; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|jtag_ir_reg[9] ; 2 ; +; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|hub_mode_reg[2] ; 2 ; +; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|node_ena~3 ; 2 ; +; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[1][0]~3 ; 2 ; +; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[1][0]~2 ; 2 ; +; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[1][0]~1 ; 2 ; +; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|tdo_bypass_reg ; 2 ; +; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[14] ; 2 ; +; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[12] ; 2 ; +; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[10] ; 2 ; +; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[9] ; 2 ; +; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[2] ; 2 ; +; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|tms_cnt[1] ; 2 ; +; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|tms_cnt[2] ; 2 ; +; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[13] ; 2 ; +; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[6] ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|D_wr_dst_reg~4 ; 2 ; +; nios_system:NiosII|nios_system_cmd_xbar_mux:cmd_xbar_mux|altera_merlin_arbitrator:arb|top_priority_reg[0]~2 ; 2 ; +; nios_system:NiosII|altera_merlin_slave_translator:hex7_s1_translator|read_latency_shift_reg~3 ; 2 ; +; nios_system:NiosII|altera_merlin_slave_translator:hex4_s1_translator|read_latency_shift_reg~3 ; 2 ; +; nios_system:NiosII|altera_merlin_slave_translator:hex2_s1_translator|read_latency_shift_reg~3 ; 2 ; +; nios_system:NiosII|altera_merlin_slave_translator:hex1_s1_translator|read_latency_shift_reg~3 ; 2 ; +; nios_system:NiosII|altera_merlin_slave_translator:hex0_s1_translator|read_latency_shift_reg~3 ; 2 ; +; nios_system:NiosII|altera_merlin_slave_translator:push_switches_s1_translator|read_latency_shift_reg~3 ; 2 ; +; nios_system:NiosII|altera_merlin_slave_translator:switches_s1_translator|read_latency_shift_reg~3 ; 2 ; +; nios_system:NiosII|nios_system_addr_router_001:addr_router_001|Equal4~3 ; 2 ; +; nios_system:NiosII|nios_system_addr_router_001:addr_router_001|src_channel[1]~9 ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[13] ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[9] ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[11] ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[10] ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[12] ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[8] ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[14] ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[24] ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[16] ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk|jdo[13] ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk|jdo[9] ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk|jdo[11] ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk|jdo[10] ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk|jdo[12] ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk|jdo[8] ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk|jdo[15] ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk|jdo[14] ; 2 ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|jupdate ; 2 ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|write ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[23] ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk|jdo[7] ; 2 ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[7] ; 2 ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[6] ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_ocimem:the_nios_system_nios2_processor_nios2_ocimem|MonDReg[23] ; 2 ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[5] ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_ocimem:the_nios_system_nios2_processor_nios2_ocimem|MonDReg[24] ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk|jdo[6] ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[6] ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_ocimem:the_nios_system_nios2_processor_nios2_ocimem|MonDReg[25] ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_ocimem:the_nios_system_nios2_processor_nios2_ocimem|MonDReg[26] ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_ocimem:the_nios_system_nios2_processor_nios2_ocimem|MonDReg[27] ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_ocimem:the_nios_system_nios2_processor_nios2_ocimem|MonDReg[28] ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_ocimem:the_nios_system_nios2_processor_nios2_ocimem|MonDReg[30] ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_ocimem:the_nios_system_nios2_processor_nios2_ocimem|MonDReg[31] ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_oci_debug:the_nios_system_nios2_processor_nios2_oci_debug|resetlatch ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk|jdo[16] ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_ocimem:the_nios_system_nios2_processor_nios2_ocimem|MonDReg[17] ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_ocimem:the_nios_system_nios2_processor_nios2_ocimem|MonDReg[21] ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_ocimem:the_nios_system_nios2_processor_nios2_ocimem|MonDReg[22] ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_ocimem:the_nios_system_nios2_processor_nios2_ocimem|MonDReg[10] ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_ocimem:the_nios_system_nios2_processor_nios2_ocimem|MonDReg[6] ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_ocimem:the_nios_system_nios2_processor_nios2_ocimem|MonDReg[7] ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_ocimem:the_nios_system_nios2_processor_nios2_ocimem|MonDReg[15] ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_ocimem:the_nios_system_nios2_processor_nios2_ocimem|MonDReg[14] ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_ocimem:the_nios_system_nios2_processor_nios2_ocimem|MonDReg[13] ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_ocimem:the_nios_system_nios2_processor_nios2_ocimem|MonDReg[11] ; 2 ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|always2~0 ; 2 ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|jupdate1 ; 2 ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|write_valid ; 2 ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|write2 ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_ocimem:the_nios_system_nios2_processor_nios2_ocimem|MonDReg[19] ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_ocimem:the_nios_system_nios2_processor_nios2_ocimem|MonDReg[20] ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[22] ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[19] ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|W_rf_wr_data[30]~34 ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|W_rf_wr_data[20]~33 ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|W_rf_wr_data[21]~32 ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|W_rf_wr_data[22]~31 ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|W_rf_wr_data[23]~30 ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|W_rf_wr_data[24]~29 ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|W_rf_wr_data[25]~28 ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|W_rf_wr_data[26]~27 ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|W_rf_wr_data[27]~26 ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|W_rf_wr_data[28]~25 ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|W_rf_wr_data[29]~24 ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|W_rf_wr_data[31]~23 ; 2 ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_r:the_nios_system_jtag_uart_scfifo_r|scfifo:rfifo|scfifo_jr21:auto_generated|a_dpfifo_q131:dpfifo|cntr_1ob:rd_ptr_count|counter_reg_bit[5] ; 2 ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_r:the_nios_system_jtag_uart_scfifo_r|scfifo:rfifo|scfifo_jr21:auto_generated|a_dpfifo_q131:dpfifo|cntr_1ob:rd_ptr_count|counter_reg_bit[4] ; 2 ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_r:the_nios_system_jtag_uart_scfifo_r|scfifo:rfifo|scfifo_jr21:auto_generated|a_dpfifo_q131:dpfifo|cntr_1ob:rd_ptr_count|counter_reg_bit[3] ; 2 ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_r:the_nios_system_jtag_uart_scfifo_r|scfifo:rfifo|scfifo_jr21:auto_generated|a_dpfifo_q131:dpfifo|cntr_1ob:rd_ptr_count|counter_reg_bit[2] ; 2 ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_r:the_nios_system_jtag_uart_scfifo_r|scfifo:rfifo|scfifo_jr21:auto_generated|a_dpfifo_q131:dpfifo|cntr_1ob:rd_ptr_count|counter_reg_bit[1] ; 2 ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_r:the_nios_system_jtag_uart_scfifo_r|scfifo:rfifo|scfifo_jr21:auto_generated|a_dpfifo_q131:dpfifo|cntr_1ob:rd_ptr_count|counter_reg_bit[0] ; 2 ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_r:the_nios_system_jtag_uart_scfifo_r|scfifo:rfifo|scfifo_jr21:auto_generated|a_dpfifo_q131:dpfifo|cntr_1ob:wr_ptr|counter_reg_bit[5] ; 2 ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_r:the_nios_system_jtag_uart_scfifo_r|scfifo:rfifo|scfifo_jr21:auto_generated|a_dpfifo_q131:dpfifo|cntr_1ob:wr_ptr|counter_reg_bit[4] ; 2 ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_r:the_nios_system_jtag_uart_scfifo_r|scfifo:rfifo|scfifo_jr21:auto_generated|a_dpfifo_q131:dpfifo|cntr_1ob:wr_ptr|counter_reg_bit[3] ; 2 ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_r:the_nios_system_jtag_uart_scfifo_r|scfifo:rfifo|scfifo_jr21:auto_generated|a_dpfifo_q131:dpfifo|cntr_1ob:wr_ptr|counter_reg_bit[2] ; 2 ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_r:the_nios_system_jtag_uart_scfifo_r|scfifo:rfifo|scfifo_jr21:auto_generated|a_dpfifo_q131:dpfifo|cntr_1ob:wr_ptr|counter_reg_bit[1] ; 2 ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_r:the_nios_system_jtag_uart_scfifo_r|scfifo:rfifo|scfifo_jr21:auto_generated|a_dpfifo_q131:dpfifo|cntr_1ob:wr_ptr|counter_reg_bit[0] ; 2 ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_w:the_nios_system_jtag_uart_scfifo_w|scfifo:wfifo|scfifo_jr21:auto_generated|a_dpfifo_q131:dpfifo|cntr_1ob:rd_ptr_count|counter_reg_bit[5] ; 2 ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_w:the_nios_system_jtag_uart_scfifo_w|scfifo:wfifo|scfifo_jr21:auto_generated|a_dpfifo_q131:dpfifo|cntr_1ob:rd_ptr_count|counter_reg_bit[4] ; 2 ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_w:the_nios_system_jtag_uart_scfifo_w|scfifo:wfifo|scfifo_jr21:auto_generated|a_dpfifo_q131:dpfifo|cntr_1ob:rd_ptr_count|counter_reg_bit[3] ; 2 ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_w:the_nios_system_jtag_uart_scfifo_w|scfifo:wfifo|scfifo_jr21:auto_generated|a_dpfifo_q131:dpfifo|cntr_1ob:rd_ptr_count|counter_reg_bit[2] ; 2 ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_w:the_nios_system_jtag_uart_scfifo_w|scfifo:wfifo|scfifo_jr21:auto_generated|a_dpfifo_q131:dpfifo|cntr_1ob:rd_ptr_count|counter_reg_bit[1] ; 2 ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_w:the_nios_system_jtag_uart_scfifo_w|scfifo:wfifo|scfifo_jr21:auto_generated|a_dpfifo_q131:dpfifo|cntr_1ob:rd_ptr_count|counter_reg_bit[0] ; 2 ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_w:the_nios_system_jtag_uart_scfifo_w|scfifo:wfifo|scfifo_jr21:auto_generated|a_dpfifo_q131:dpfifo|cntr_1ob:wr_ptr|counter_reg_bit[5] ; 2 ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_w:the_nios_system_jtag_uart_scfifo_w|scfifo:wfifo|scfifo_jr21:auto_generated|a_dpfifo_q131:dpfifo|cntr_1ob:wr_ptr|counter_reg_bit[4] ; 2 ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_w:the_nios_system_jtag_uart_scfifo_w|scfifo:wfifo|scfifo_jr21:auto_generated|a_dpfifo_q131:dpfifo|cntr_1ob:wr_ptr|counter_reg_bit[3] ; 2 ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_w:the_nios_system_jtag_uart_scfifo_w|scfifo:wfifo|scfifo_jr21:auto_generated|a_dpfifo_q131:dpfifo|cntr_1ob:wr_ptr|counter_reg_bit[2] ; 2 ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_w:the_nios_system_jtag_uart_scfifo_w|scfifo:wfifo|scfifo_jr21:auto_generated|a_dpfifo_q131:dpfifo|cntr_1ob:wr_ptr|counter_reg_bit[1] ; 2 ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_w:the_nios_system_jtag_uart_scfifo_w|scfifo:wfifo|scfifo_jr21:auto_generated|a_dpfifo_q131:dpfifo|cntr_1ob:wr_ptr|counter_reg_bit[0] ; 2 ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|read ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[25] ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[36]~29 ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|writedata[1] ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk|jdo[5] ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_ocimem:the_nios_system_nios2_processor_nios2_ocimem|MonDReg[3] ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[5] ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk|altera_std_synchronizer:the_altera_std_synchronizer4|dreg[0] ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[26] ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[27] ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[28] ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[29] ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[30] ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[32] ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[33] ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk|altera_std_synchronizer:the_altera_std_synchronizer3|dreg[0] ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_ocimem:the_nios_system_nios2_processor_nios2_ocimem|MonDReg[16] ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[18] ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|W_rf_wr_data[19]~22 ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_oci_debug:the_nios_system_nios2_processor_nios2_oci_debug|monitor_go ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|av_ld_byte3_data[7] ; 2 ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|rvalid ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|av_ld_byte3_data[6] ; 2 ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|woverflow ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|av_ld_byte3_data[5] ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|av_ld_byte3_data[4] ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|av_ld_byte3_data[3] ; 2 ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|ac ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_avalon_reg:the_nios_system_nios2_processor_nios2_avalon_reg|take_action_oci_intr_mask_reg~0 ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|writedata[5] ; 2 ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|t_pause~reg0 ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|writedata[3] ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[20] ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[21] ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|d_byteenable[3] ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|d_writedata[23] ; 2 ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|read1 ; 2 ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|rvalid0~0 ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_oci_debug:the_nios_system_nios2_processor_nios2_oci_debug|always1~0 ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_ocimem:the_nios_system_nios2_processor_nios2_ocimem|avalon_ram_wr~0 ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_ocimem:the_nios_system_nios2_processor_nios2_ocimem|jtag_rd ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_ocimem:the_nios_system_nios2_processor_nios2_ocimem|jtag_ram_rd ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_ocimem:the_nios_system_nios2_processor_nios2_ocimem|ociram_addr[7]~7 ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|address[7] ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_ocimem:the_nios_system_nios2_processor_nios2_ocimem|ociram_addr[6]~6 ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|address[6] ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_ocimem:the_nios_system_nios2_processor_nios2_ocimem|ociram_addr[5]~5 ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|address[5] ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_ocimem:the_nios_system_nios2_processor_nios2_ocimem|ociram_addr[4]~4 ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|address[4] ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_ocimem:the_nios_system_nios2_processor_nios2_ocimem|ociram_addr[3]~3 ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|address[3] ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_ocimem:the_nios_system_nios2_processor_nios2_ocimem|ociram_addr[2]~2 ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|address[2] ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_ocimem:the_nios_system_nios2_processor_nios2_ocimem|ociram_addr[1]~1 ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|address[1] ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_ocimem:the_nios_system_nios2_processor_nios2_ocimem|ociram_addr[0]~0 ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|writedata[0] ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_ocimem:the_nios_system_nios2_processor_nios2_ocimem|ociram_wr_en ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|debugaccess ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_ocimem:the_nios_system_nios2_processor_nios2_ocimem|jtag_ram_wr ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[36] ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[37] ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk|jdo[4] ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_ocimem:the_nios_system_nios2_processor_nios2_ocimem|MonDReg[2] ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[4] ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk|jxuir ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[34] ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk|jdo[32] ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk|jdo[33] ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[17] ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|d_writedata[18] ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|d_writedata[19] ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|d_writedata[20] ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|d_writedata[21] ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|av_ld_byte3_data[2] ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|d_writedata[22] ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|E_shift_rot_fill_bit~0 ; 2 ; +; nios_system:NiosII|nios_system_onchip_memory:onchip_memory|altsyncram:the_altsyncram|altsyncram_4ed1:auto_generated|mux_nob:mux2|result_node[31]~95 ; 2 ; +; nios_system:NiosII|altera_merlin_slave_translator:nios2_processor_jtag_debug_module_translator|av_readdata_pre[31] ; 2 ; +; nios_system:NiosII|nios_system_onchip_memory:onchip_memory|altsyncram:the_altsyncram|altsyncram_4ed1:auto_generated|mux_nob:mux2|result_node[30]~92 ; 2 ; +; nios_system:NiosII|altera_merlin_slave_translator:nios2_processor_jtag_debug_module_translator|av_readdata_pre[30] ; 2 ; +; nios_system:NiosII|nios_system_onchip_memory:onchip_memory|altsyncram:the_altsyncram|altsyncram_4ed1:auto_generated|mux_nob:mux2|result_node[29]~89 ; 2 ; +; nios_system:NiosII|altera_merlin_slave_translator:nios2_processor_jtag_debug_module_translator|av_readdata_pre[29] ; 2 ; +; nios_system:NiosII|nios_system_onchip_memory:onchip_memory|altsyncram:the_altsyncram|altsyncram_4ed1:auto_generated|mux_nob:mux2|result_node[28]~86 ; 2 ; +; nios_system:NiosII|altera_merlin_slave_translator:nios2_processor_jtag_debug_module_translator|av_readdata_pre[28] ; 2 ; +; nios_system:NiosII|nios_system_onchip_memory:onchip_memory|altsyncram:the_altsyncram|altsyncram_4ed1:auto_generated|mux_nob:mux2|result_node[27]~83 ; 2 ; +; nios_system:NiosII|altera_merlin_slave_translator:nios2_processor_jtag_debug_module_translator|av_readdata_pre[27] ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|d_byteenable[2] ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|d_byteenable[1] ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|av_ld_byte3_data[1] ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|av_ld_byte3_data[0] ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_avalon_reg:the_nios_system_nios2_processor_nios2_avalon_reg|oci_ienable[5] ; 2 ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|av_readdata[8]~0 ; 2 ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|pause_irq ; 2 ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|ien_AF ; 2 ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|av_readdata[9] ; 2 ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|ien_AE ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|R_ctrl_crst ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|W_ienable_reg_nxt~0 ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_oci_debug:the_nios_system_nios2_processor_nios2_oci_debug|altera_std_synchronizer:the_altera_std_synchronizer|dreg[0] ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_oci_debug:the_nios_system_nios2_processor_nios2_oci_debug|break_on_reset ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|d_byteenable[0] ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|E_wrctl_status~0 ; 2 ; +; nios_system:NiosII|nios_system_onchip_memory:onchip_memory|altsyncram:the_altsyncram|altsyncram_4ed1:auto_generated|mux_nob:mux2|result_node[26]~80 ; 2 ; +; nios_system:NiosII|altera_merlin_slave_translator:nios2_processor_jtag_debug_module_translator|av_readdata_pre[26] ; 2 ; +; nios_system:NiosII|nios_system_onchip_memory:onchip_memory|altsyncram:the_altsyncram|altsyncram_4ed1:auto_generated|mux_nob:mux2|result_node[25]~77 ; 2 ; +; nios_system:NiosII|altera_merlin_slave_translator:nios2_processor_jtag_debug_module_translator|av_readdata_pre[25] ; 2 ; +; nios_system:NiosII|nios_system_onchip_memory:onchip_memory|altsyncram:the_altsyncram|altsyncram_4ed1:auto_generated|mux_nob:mux2|result_node[24]~74 ; 2 ; +; nios_system:NiosII|altera_merlin_slave_translator:nios2_processor_jtag_debug_module_translator|av_readdata_pre[24] ; 2 ; +; nios_system:NiosII|nios_system_onchip_memory:onchip_memory|altsyncram:the_altsyncram|altsyncram_4ed1:auto_generated|mux_nob:mux2|result_node[23]~71 ; 2 ; +; nios_system:NiosII|altera_merlin_slave_translator:nios2_processor_jtag_debug_module_translator|av_readdata_pre[23] ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|E_wrctl_bstatus~0 ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|E_arith_src1[31] ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|E_arith_src2[31] ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|E_invert_arith_src_msb ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|E_logic_result[30]~32 ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|E_logic_result[1]~31 ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|E_logic_result[19]~30 ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|E_logic_result[20]~29 ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|E_logic_result[21]~28 ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|E_logic_result[22]~27 ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|E_logic_result[23]~26 ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|E_logic_result[24]~25 ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|E_logic_result[25]~24 ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|E_logic_result[26]~23 ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|E_logic_result[27]~22 ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|E_logic_result[28]~21 ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|E_logic_result[29]~20 ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|E_logic_result[31]~19 ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|E_src2[31] ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|E_logic_result[0]~18 ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|R_compare_op[1] ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|R_compare_op[0] ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|D_dst_regnum[2]~6 ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|D_dst_regnum[4]~5 ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|D_dst_regnum[3]~4 ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|D_dst_regnum[1]~3 ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|D_dst_regnum[0]~1 ; 2 ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[0] ; 2 ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|state~1 ; 2 ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[8] ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk|jdo[3] ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[3] ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_ocimem:the_nios_system_nios2_processor_nios2_ocimem|MonAReg[5] ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_ocimem:the_nios_system_nios2_processor_nios2_ocimem|MonAReg[6] ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_ocimem:the_nios_system_nios2_processor_nios2_ocimem|MonAReg[7] ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_ocimem:the_nios_system_nios2_processor_nios2_ocimem|MonAReg[8] ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_ocimem:the_nios_system_nios2_processor_nios2_ocimem|MonAReg[9] ; 2 ; +; nios_system:NiosII|nios_system_cmd_xbar_mux:cmd_xbar_mux_001|altera_merlin_arbitrator:arb|top_priority_reg[0]~0 ; 2 ; +; nios_system:NiosII|nios_system_cmd_xbar_mux:cmd_xbar_mux|altera_merlin_arbitrator:arb|grant[0]~1 ; 2 ; +; nios_system:NiosII|nios_system_cmd_xbar_mux:cmd_xbar_mux_001|altera_merlin_arbitrator:arb|grant[0]~1 ; 2 ; +; nios_system:NiosII|nios_system_onchip_memory:onchip_memory|altsyncram:the_altsyncram|altsyncram_4ed1:auto_generated|mux_nob:mux2|result_node[17]~68 ; 2 ; +; nios_system:NiosII|altera_merlin_slave_translator:nios2_processor_jtag_debug_module_translator|av_readdata_pre[17] ; 2 ; +; nios_system:NiosII|nios_system_onchip_memory:onchip_memory|altsyncram:the_altsyncram|altsyncram_4ed1:auto_generated|mux_nob:mux2|result_node[18]~65 ; 2 ; +; nios_system:NiosII|altera_merlin_slave_translator:nios2_processor_jtag_debug_module_translator|av_readdata_pre[18] ; 2 ; +; nios_system:NiosII|nios_system_onchip_memory:onchip_memory|altsyncram:the_altsyncram|altsyncram_4ed1:auto_generated|mux_nob:mux2|result_node[19]~62 ; 2 ; +; nios_system:NiosII|altera_merlin_slave_translator:nios2_processor_jtag_debug_module_translator|av_readdata_pre[19] ; 2 ; +; nios_system:NiosII|nios_system_onchip_memory:onchip_memory|altsyncram:the_altsyncram|altsyncram_4ed1:auto_generated|mux_nob:mux2|result_node[20]~59 ; 2 ; +; nios_system:NiosII|altera_merlin_slave_translator:nios2_processor_jtag_debug_module_translator|av_readdata_pre[20] ; 2 ; +; nios_system:NiosII|nios_system_onchip_memory:onchip_memory|altsyncram:the_altsyncram|altsyncram_4ed1:auto_generated|mux_nob:mux2|result_node[21]~56 ; 2 ; +; nios_system:NiosII|altera_merlin_slave_translator:nios2_processor_jtag_debug_module_translator|av_readdata_pre[21] ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|W_rf_wr_data[18]~21 ; 2 ; +; nios_system:NiosII|nios_system_onchip_memory:onchip_memory|altsyncram:the_altsyncram|altsyncram_4ed1:auto_generated|mux_nob:mux2|result_node[22]~53 ; 2 ; +; nios_system:NiosII|altera_merlin_slave_translator:nios2_processor_jtag_debug_module_translator|av_readdata_pre[22] ; 2 ; +; nios_system:NiosII|nios_system_onchip_memory:onchip_memory|altsyncram:the_altsyncram|altsyncram_4ed1:auto_generated|mux_nob:mux2|result_node[10]~50 ; 2 ; +; nios_system:NiosII|altera_merlin_slave_translator:nios2_processor_jtag_debug_module_translator|av_readdata_pre[10] ; 2 ; +; nios_system:NiosII|nios_system_onchip_memory:onchip_memory|altsyncram:the_altsyncram|altsyncram_4ed1:auto_generated|mux_nob:mux2|result_node[6]~47 ; 2 ; +; nios_system:NiosII|altera_merlin_slave_translator:nios2_processor_jtag_debug_module_translator|av_readdata_pre[6] ; 2 ; +; nios_system:NiosII|nios_system_onchip_memory:onchip_memory|altsyncram:the_altsyncram|altsyncram_4ed1:auto_generated|mux_nob:mux2|result_node[8]~44 ; 2 ; +; nios_system:NiosII|altera_merlin_slave_translator:nios2_processor_jtag_debug_module_translator|av_readdata_pre[8] ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|D_ctrl_exception~3 ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|D_ctrl_exception~2 ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|F_pc_no_crst_nxt[16]~0 ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|D_ctrl_jmp_direct~0 ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|E_stall~5 ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|av_ld_aligning_data_nxt~1 ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|av_ld_waiting_for_data_nxt~0 ; 2 ; +; nios_system:NiosII|nios_system_onchip_memory:onchip_memory|altsyncram:the_altsyncram|altsyncram_4ed1:auto_generated|mux_nob:mux2|result_node[7]~41 ; 2 ; +; nios_system:NiosII|altera_merlin_slave_translator:nios2_processor_jtag_debug_module_translator|av_readdata_pre[7] ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|D_ctrl_force_src2_zero~3 ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|D_ctrl_exception~0 ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|D_ctrl_break~0 ; 2 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|Equal101~4 ; 2 ; +; nios_system:NiosII|nios_system_onchip_memory:onchip_memory|altsyncram:the_altsyncram|altsyncram_4ed1:auto_generated|mux_nob:mux2|result_node[9]~38 ; 2 ; +; nios_system:NiosII|altera_merlin_slave_translator:nios2_processor_jtag_debug_module_translator|av_readdata_pre[9] ; 2 ; +; nios_system:NiosII|nios_system_onchip_memory:onchip_memory|altsyncram:the_altsyncram|altsyncram_4ed1:auto_generated|mux_nob:mux2|result_node[15]~35 ; 2 ; +; nios_system:NiosII|altera_merlin_slave_translator:nios2_processor_jtag_debug_module_translator|av_readdata_pre[15] ; 2 ; +; nios_system:NiosII|nios_system_onchip_memory:onchip_memory|altsyncram:the_altsyncram|altsyncram_4ed1:auto_generated|mux_nob:mux2|result_node[16]~32 ; 2 ; +; nios_system:NiosII|altera_merlin_slave_translator:nios2_processor_jtag_debug_module_translator|av_readdata_pre[16] ; 2 ; +; nios_system:NiosII|nios_system_onchip_memory:onchip_memory|altsyncram:the_altsyncram|altsyncram_4ed1:auto_generated|mux_nob:mux2|result_node[14]~29 ; 2 ; +; nios_system:NiosII|altera_merlin_slave_translator:nios2_processor_jtag_debug_module_translator|av_readdata_pre[14] ; 2 ; +; nios_system:NiosII|nios_system_onchip_memory:onchip_memory|altsyncram:the_altsyncram|altsyncram_4ed1:auto_generated|mux_nob:mux2|result_node[5]~26 ; 2 ; +; nios_system:NiosII|altera_merlin_slave_translator:nios2_processor_jtag_debug_module_translator|av_readdata_pre[5] ; 2 ; +; nios_system:NiosII|nios_system_onchip_memory:onchip_memory|altsyncram:the_altsyncram|altsyncram_4ed1:auto_generated|mux_nob:mux2|result_node[12]~23 ; 2 ; +; nios_system:NiosII|altera_merlin_slave_translator:nios2_processor_jtag_debug_module_translator|av_readdata_pre[12] ; 2 ; +; nios_system:NiosII|nios_system_onchip_memory:onchip_memory|altsyncram:the_altsyncram|altsyncram_4ed1:auto_generated|mux_nob:mux2|result_node[13]~20 ; 2 ; +; nios_system:NiosII|altera_merlin_slave_translator:nios2_processor_jtag_debug_module_translator|av_readdata_pre[13] ; 2 ; +; nios_system:NiosII|nios_system_onchip_memory:onchip_memory|altsyncram:the_altsyncram|altsyncram_4ed1:auto_generated|mux_nob:mux2|result_node[11]~17 ; 2 ; +; nios_system:NiosII|altera_merlin_slave_translator:nios2_processor_jtag_debug_module_translator|av_readdata_pre[11] ; 2 ; +; nios_system:NiosII|nios_system_onchip_memory:onchip_memory|altsyncram:the_altsyncram|altsyncram_4ed1:auto_generated|mux_nob:mux2|result_node[2]~14 ; 2 ; +; nios_system:NiosII|altera_merlin_slave_translator:nios2_processor_jtag_debug_module_translator|av_readdata_pre[2] ; 2 ; ++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------+ + + ++------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Fitter RAM Summary ; ++-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------+------------------+--------------+--------------+--------------+--------------+--------------+------------------------+-------------------------+------------------------+-------------------------+---------+-----------------------------+-----------------------------+-----------------------------+-----------------------------+---------------------+------+---------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------+-----------------+-----------------+ +; Name ; Type ; Mode ; Clock Mode ; Port A Depth ; Port A Width ; Port B Depth ; Port B Width ; Port A Input Registers ; Port A Output Registers ; Port B Input Registers ; Port B Output Registers ; Size ; Implementation Port A Depth ; Implementation Port A Width ; Implementation Port B Depth ; Implementation Port B Width ; Implementation Bits ; M9Ks ; MIF ; Location ; Mixed Width RDW Mode ; Port A RDW Mode ; Port B RDW Mode ; ++-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------+------------------+--------------+--------------+--------------+--------------+--------------+------------------------+-------------------------+------------------------+-------------------------+---------+-----------------------------+-----------------------------+-----------------------------+-----------------------------+---------------------+------+---------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------+-----------------+-----------------+ +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_r:the_nios_system_jtag_uart_scfifo_r|scfifo:rfifo|scfifo_jr21:auto_generated|a_dpfifo_q131:dpfifo|dpram_nl21:FIFOram|altsyncram_r1m1:altsyncram1|ALTSYNCRAM ; AUTO ; Simple Dual Port ; Dual Clocks ; 64 ; 8 ; 64 ; 8 ; yes ; no ; yes ; no ; 512 ; 64 ; 8 ; 64 ; 8 ; 512 ; 1 ; None ; M9K_X64_Y45_N0 ; Don't care ; Old data ; Old data ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_w:the_nios_system_jtag_uart_scfifo_w|scfifo:wfifo|scfifo_jr21:auto_generated|a_dpfifo_q131:dpfifo|dpram_nl21:FIFOram|altsyncram_r1m1:altsyncram1|ALTSYNCRAM ; AUTO ; Simple Dual Port ; Dual Clocks ; 64 ; 8 ; 64 ; 8 ; yes ; no ; yes ; yes ; 512 ; 64 ; 8 ; 64 ; 8 ; 512 ; 1 ; None ; M9K_X64_Y44_N0 ; Don't care ; Old data ; Old data ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_ocimem:the_nios_system_nios2_processor_nios2_ocimem|nios_system_nios2_processor_ociram_sp_ram_module:nios_system_nios2_processor_ociram_sp_ram|altsyncram:the_altsyncram|altsyncram_4891:auto_generated|ALTSYNCRAM ; AUTO ; Single Port ; Single Clock ; 256 ; 32 ; -- ; -- ; yes ; no ; -- ; -- ; 8192 ; 256 ; 32 ; -- ; -- ; 8192 ; 1 ; nios_system_nios2_processor_ociram_default_contents.mif ; M9K_X64_Y39_N0 ; Don't care ; Old data ; Old data ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_register_bank_a_module:nios_system_nios2_processor_register_bank_a|altsyncram:the_altsyncram|altsyncram_0rh1:auto_generated|ALTSYNCRAM ; AUTO ; Simple Dual Port ; Single Clock ; 32 ; 32 ; 32 ; 32 ; yes ; no ; yes ; no ; 1024 ; 32 ; 32 ; 32 ; 32 ; 1024 ; 1 ; nios_system_nios2_processor_rf_ram_a.mif ; M9K_X64_Y32_N0 ; Don't care ; Old data ; Old data ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_register_bank_b_module:nios_system_nios2_processor_register_bank_b|altsyncram:the_altsyncram|altsyncram_1rh1:auto_generated|ALTSYNCRAM ; AUTO ; Simple Dual Port ; Single Clock ; 32 ; 32 ; 32 ; 32 ; yes ; no ; yes ; no ; 1024 ; 32 ; 32 ; 32 ; 32 ; 1024 ; 1 ; nios_system_nios2_processor_rf_ram_b.mif ; M9K_X64_Y33_N0 ; Don't care ; Old data ; Old data ; +; nios_system:NiosII|nios_system_onchip_memory:onchip_memory|altsyncram:the_altsyncram|altsyncram_4ed1:auto_generated|ALTSYNCRAM ; AUTO ; Single Port ; Single Clock ; 51200 ; 32 ; -- ; -- ; yes ; no ; -- ; -- ; 1638400 ; 51200 ; 32 ; -- ; -- ; 1638400 ; 200 ; nios_system_onchip_memory.hex ; M9K_X64_Y55_N0, M9K_X78_Y56_N0, M9K_X78_Y52_N0, M9K_X78_Y55_N0, M9K_X78_Y40_N0, M9K_X78_Y46_N0, M9K_X64_Y60_N0, M9K_X64_Y56_N0, M9K_X64_Y57_N0, M9K_X78_Y57_N0, M9K_X64_Y50_N0, M9K_X78_Y50_N0, M9K_X51_Y55_N0, M9K_X64_Y48_N0, M9K_X78_Y41_N0, M9K_X51_Y51_N0, M9K_X78_Y51_N0, M9K_X37_Y49_N0, M9K_X64_Y27_N0, M9K_X78_Y25_N0, M9K_X64_Y24_N0, M9K_X64_Y53_N0, M9K_X64_Y51_N0, M9K_X64_Y47_N0, M9K_X78_Y47_N0, M9K_X51_Y42_N0, M9K_X78_Y53_N0, M9K_X78_Y24_N0, M9K_X51_Y22_N0, M9K_X64_Y22_N0, M9K_X64_Y31_N0, M9K_X78_Y39_N0, M9K_X78_Y42_N0, M9K_X78_Y19_N0, M9K_X64_Y38_N0, M9K_X64_Y36_N0, M9K_X64_Y19_N0, M9K_X64_Y42_N0, M9K_X64_Y40_N0, M9K_X51_Y45_N0, M9K_X37_Y46_N0, M9K_X51_Y46_N0, M9K_X37_Y44_N0, M9K_X37_Y43_N0, M9K_X64_Y41_N0, M9K_X51_Y47_N0, M9K_X64_Y46_N0, M9K_X37_Y47_N0, M9K_X64_Y43_N0, M9K_X51_Y48_N0, M9K_X51_Y49_N0, M9K_X78_Y58_N0, M9K_X64_Y58_N0, M9K_X64_Y59_N0, M9K_X64_Y54_N0, M9K_X64_Y61_N0, M9K_X64_Y52_N0, M9K_X78_Y44_N0, M9K_X64_Y49_N0, M9K_X78_Y49_N0, M9K_X78_Y43_N0, M9K_X78_Y45_N0, M9K_X78_Y48_N0, M9K_X37_Y16_N0, M9K_X64_Y10_N0, M9K_X37_Y25_N0, M9K_X37_Y26_N0, M9K_X37_Y21_N0, M9K_X51_Y30_N0, M9K_X64_Y13_N0, M9K_X64_Y9_N0, M9K_X78_Y16_N0, M9K_X78_Y13_N0, M9K_X51_Y12_N0, M9K_X78_Y21_N0, M9K_X64_Y12_N0, M9K_X51_Y31_N0, M9K_X37_Y31_N0, M9K_X37_Y41_N0, M9K_X78_Y15_N0, M9K_X37_Y20_N0, M9K_X78_Y23_N0, M9K_X51_Y27_N0, M9K_X64_Y26_N0, M9K_X51_Y26_N0, M9K_X78_Y33_N0, M9K_X78_Y27_N0, M9K_X78_Y31_N0, M9K_X78_Y14_N0, M9K_X64_Y11_N0, M9K_X51_Y37_N0, M9K_X51_Y13_N0, M9K_X37_Y30_N0, M9K_X51_Y28_N0, M9K_X51_Y16_N0, M9K_X51_Y29_N0, M9K_X37_Y29_N0, M9K_X37_Y28_N0, M9K_X37_Y27_N0, M9K_X64_Y21_N0, M9K_X64_Y25_N0, M9K_X51_Y9_N0, M9K_X51_Y15_N0, M9K_X51_Y24_N0, M9K_X51_Y14_N0, M9K_X51_Y18_N0, M9K_X78_Y12_N0, M9K_X51_Y10_N0, M9K_X37_Y14_N0, M9K_X64_Y14_N0, M9K_X51_Y11_N0, M9K_X51_Y17_N0, M9K_X15_Y29_N0, M9K_X78_Y28_N0, M9K_X37_Y38_N0, M9K_X78_Y26_N0, M9K_X78_Y29_N0, M9K_X37_Y33_N0, M9K_X15_Y32_N0, M9K_X37_Y36_N0, M9K_X37_Y32_N0, M9K_X51_Y32_N0, M9K_X15_Y36_N0, M9K_X15_Y35_N0, M9K_X37_Y34_N0, M9K_X37_Y54_N0, M9K_X51_Y62_N0, M9K_X37_Y39_N0, M9K_X37_Y45_N0, M9K_X37_Y59_N0, M9K_X37_Y51_N0, M9K_X78_Y18_N0, M9K_X64_Y16_N0, M9K_X64_Y15_N0, M9K_X78_Y34_N0, M9K_X64_Y29_N0, M9K_X15_Y34_N0, M9K_X51_Y60_N0, M9K_X64_Y62_N0, M9K_X51_Y59_N0, M9K_X51_Y57_N0, M9K_X51_Y61_N0, M9K_X51_Y34_N0, M9K_X64_Y28_N0, M9K_X51_Y40_N0, M9K_X37_Y42_N0, M9K_X64_Y35_N0, M9K_X51_Y41_N0, M9K_X37_Y40_N0, M9K_X51_Y38_N0, M9K_X78_Y38_N0, M9K_X37_Y55_N0, M9K_X51_Y39_N0, M9K_X37_Y52_N0, M9K_X78_Y35_N0, M9K_X51_Y43_N0, M9K_X37_Y35_N0, M9K_X51_Y19_N0, M9K_X51_Y35_N0, M9K_X37_Y37_N0, M9K_X64_Y20_N0, M9K_X37_Y22_N0, M9K_X37_Y19_N0, M9K_X51_Y56_N0, M9K_X51_Y54_N0, M9K_X51_Y53_N0, M9K_X104_Y50_N0, M9K_X78_Y54_N0, M9K_X51_Y52_N0, M9K_X51_Y58_N0, M9K_X37_Y50_N0, M9K_X37_Y57_N0, M9K_X37_Y48_N0, M9K_X37_Y58_N0, M9K_X51_Y50_N0, M9K_X64_Y23_N0, M9K_X64_Y18_N0, M9K_X78_Y22_N0, M9K_X64_Y17_N0, M9K_X78_Y20_N0, M9K_X64_Y30_N0, M9K_X78_Y17_N0, M9K_X51_Y23_N0, M9K_X37_Y53_N0, M9K_X51_Y21_N0, M9K_X37_Y56_N0, M9K_X51_Y44_N0, M9K_X37_Y23_N0, M9K_X64_Y34_N0, M9K_X78_Y36_N0, M9K_X51_Y33_N0, M9K_X64_Y37_N0, M9K_X78_Y37_N0, M9K_X78_Y30_N0, M9K_X51_Y25_N0, M9K_X78_Y32_N0, M9K_X51_Y36_N0, M9K_X51_Y20_N0, M9K_X37_Y18_N0, M9K_X37_Y24_N0 ; Don't care ; Old data ; Old data ; ++-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------+------------------+--------------+--------------+--------------+--------------+--------------+------------------------+-------------------------+------------------------+-------------------------+---------+-----------------------------+-----------------------------+-----------------------------+-----------------------------+---------------------+------+---------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------+-----------------+-----------------+ +Note: Fitter may spread logical memories into multiple blocks to improve timing. The actual required RAM blocks can be found in the Fitter Resource Usage section. + + +RAM content values are presented in the following format: (Binary) (Octal) (Decimal) (Hexadecimal) ++------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; |lights|nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_register_bank_b_module:nios_system_nios2_processor_register_bank_b|altsyncram:the_altsyncram|altsyncram_1rh1:auto_generated|ALTSYNCRAM ; ++------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Addr ; +0 ; +1 ; +2 ; +3 ; +4 ; +5 ; +6 ; +7 ; ++----------+------------------------------+------------------------------+------------------------------+------------------------------+------------------------------+------------------------------+------------------------------+------------------------------+ +;0;(11011110101011011011111011101111) (170526875) (-559038737) (-2-1-5-2-4-1-1-1) ;(11011110101011011011111011101111) (170526875) (-559038737) (-2-1-5-2-4-1-1-1) ;(11011110101011011011111011101111) (170526875) (-559038737) (-2-1-5-2-4-1-1-1) ;(11011110101011011011111011101111) (170526875) (-559038737) (-2-1-5-2-4-1-1-1) ;(11011110101011011011111011101111) (170526875) (-559038737) (-2-1-5-2-4-1-1-1) ;(11011110101011011011111011101111) (170526875) (-559038737) (-2-1-5-2-4-1-1-1) ;(11011110101011011011111011101111) (170526875) (-559038737) (-2-1-5-2-4-1-1-1) ;(11011110101011011011111011101111) (170526875) (-559038737) (-2-1-5-2-4-1-1-1) ; +;8;(11011110101011011011111011101111) (170526875) (-559038737) (-2-1-5-2-4-1-1-1) ;(11011110101011011011111011101111) (170526875) (-559038737) (-2-1-5-2-4-1-1-1) ;(11011110101011011011111011101111) (170526875) (-559038737) (-2-1-5-2-4-1-1-1) ;(11011110101011011011111011101111) (170526875) (-559038737) (-2-1-5-2-4-1-1-1) ;(11011110101011011011111011101111) (170526875) (-559038737) (-2-1-5-2-4-1-1-1) ;(11011110101011011011111011101111) (170526875) (-559038737) (-2-1-5-2-4-1-1-1) ;(11011110101011011011111011101111) (170526875) (-559038737) (-2-1-5-2-4-1-1-1) ;(11011110101011011011111011101111) (170526875) (-559038737) (-2-1-5-2-4-1-1-1) ; +;16;(11011110101011011011111011101111) (170526875) (-559038737) (-2-1-5-2-4-1-1-1) ;(11011110101011011011111011101111) (170526875) (-559038737) (-2-1-5-2-4-1-1-1) ;(11011110101011011011111011101111) (170526875) (-559038737) (-2-1-5-2-4-1-1-1) ;(11011110101011011011111011101111) (170526875) (-559038737) (-2-1-5-2-4-1-1-1) ;(11011110101011011011111011101111) (170526875) (-559038737) (-2-1-5-2-4-1-1-1) ;(11011110101011011011111011101111) (170526875) (-559038737) (-2-1-5-2-4-1-1-1) ;(11011110101011011011111011101111) (170526875) (-559038737) (-2-1-5-2-4-1-1-1) ;(11011110101011011011111011101111) (170526875) (-559038737) (-2-1-5-2-4-1-1-1) ; +;24;(11011110101011011011111011101111) (170526875) (-559038737) (-2-1-5-2-4-1-1-1) ;(11011110101011011011111011101111) (170526875) (-559038737) (-2-1-5-2-4-1-1-1) ;(11011110101011011011111011101111) (170526875) (-559038737) (-2-1-5-2-4-1-1-1) ;(11011110101011011011111011101111) (170526875) (-559038737) (-2-1-5-2-4-1-1-1) ;(11011110101011011011111011101111) (170526875) (-559038737) (-2-1-5-2-4-1-1-1) ;(11011110101011011011111011101111) (170526875) (-559038737) (-2-1-5-2-4-1-1-1) ;(11011110101011011011111011101111) (170526875) (-559038737) (-2-1-5-2-4-1-1-1) ;(11011110101011011011111011101111) (170526875) (-559038737) (-2-1-5-2-4-1-1-1) ; + + +RAM content values are presented in the following format: (Binary) (Octal) (Decimal) (Hexadecimal) ++------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; |lights|nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_register_bank_a_module:nios_system_nios2_processor_register_bank_a|altsyncram:the_altsyncram|altsyncram_0rh1:auto_generated|ALTSYNCRAM ; ++------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Addr ; +0 ; +1 ; +2 ; +3 ; +4 ; +5 ; +6 ; +7 ; ++----------+------------------------------+------------------------------+------------------------------+------------------------------+------------------------------+------------------------------+------------------------------+------------------------------+ +;0;(11011110101011011011111011101111) (170526875) (-559038737) (-2-1-5-2-4-1-1-1) ;(11011110101011011011111011101111) (170526875) (-559038737) (-2-1-5-2-4-1-1-1) ;(11011110101011011011111011101111) (170526875) (-559038737) (-2-1-5-2-4-1-1-1) ;(11011110101011011011111011101111) (170526875) (-559038737) (-2-1-5-2-4-1-1-1) ;(11011110101011011011111011101111) (170526875) (-559038737) (-2-1-5-2-4-1-1-1) ;(11011110101011011011111011101111) (170526875) (-559038737) (-2-1-5-2-4-1-1-1) ;(11011110101011011011111011101111) (170526875) (-559038737) (-2-1-5-2-4-1-1-1) ;(11011110101011011011111011101111) (170526875) (-559038737) (-2-1-5-2-4-1-1-1) ; +;8;(11011110101011011011111011101111) (170526875) (-559038737) (-2-1-5-2-4-1-1-1) ;(11011110101011011011111011101111) (170526875) (-559038737) (-2-1-5-2-4-1-1-1) ;(11011110101011011011111011101111) (170526875) (-559038737) (-2-1-5-2-4-1-1-1) ;(11011110101011011011111011101111) (170526875) (-559038737) (-2-1-5-2-4-1-1-1) ;(11011110101011011011111011101111) (170526875) (-559038737) (-2-1-5-2-4-1-1-1) ;(11011110101011011011111011101111) (170526875) (-559038737) (-2-1-5-2-4-1-1-1) ;(11011110101011011011111011101111) (170526875) (-559038737) (-2-1-5-2-4-1-1-1) ;(11011110101011011011111011101111) (170526875) (-559038737) (-2-1-5-2-4-1-1-1) ; +;16;(11011110101011011011111011101111) (170526875) (-559038737) (-2-1-5-2-4-1-1-1) ;(11011110101011011011111011101111) (170526875) (-559038737) (-2-1-5-2-4-1-1-1) ;(11011110101011011011111011101111) (170526875) (-559038737) (-2-1-5-2-4-1-1-1) ;(11011110101011011011111011101111) (170526875) (-559038737) (-2-1-5-2-4-1-1-1) ;(11011110101011011011111011101111) (170526875) (-559038737) (-2-1-5-2-4-1-1-1) ;(11011110101011011011111011101111) (170526875) (-559038737) (-2-1-5-2-4-1-1-1) ;(11011110101011011011111011101111) (170526875) (-559038737) (-2-1-5-2-4-1-1-1) ;(11011110101011011011111011101111) (170526875) (-559038737) (-2-1-5-2-4-1-1-1) ; +;24;(11011110101011011011111011101111) (170526875) (-559038737) (-2-1-5-2-4-1-1-1) ;(11011110101011011011111011101111) (170526875) (-559038737) (-2-1-5-2-4-1-1-1) ;(11011110101011011011111011101111) (170526875) (-559038737) (-2-1-5-2-4-1-1-1) ;(11011110101011011011111011101111) (170526875) (-559038737) (-2-1-5-2-4-1-1-1) ;(11011110101011011011111011101111) (170526875) (-559038737) (-2-1-5-2-4-1-1-1) ;(11011110101011011011111011101111) (170526875) (-559038737) (-2-1-5-2-4-1-1-1) ;(11011110101011011011111011101111) (170526875) (-559038737) (-2-1-5-2-4-1-1-1) ;(11011110101011011011111011101111) (170526875) (-559038737) (-2-1-5-2-4-1-1-1) ; + + +RAM content values are presented in the following format: (Binary) (Octal) (Decimal) (Hexadecimal) ++------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; |lights|nios_system:NiosII|nios_system_onchip_memory:onchip_memory|altsyncram:the_altsyncram|altsyncram_4ed1:auto_generated|ALTSYNCRAM ; ++------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Addr ; +0 ; +1 ; +2 ; +3 ; +4 ; +5 ; +6 ; +7 ; ++----------+------------------------------+------------------------------+------------------------------+------------------------------+------------------------------+------------------------------+------------------------------+------------------------------+ +;0;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;8;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;16;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;24;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;32;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;40;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;48;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;56;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;64;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;72;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;80;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;88;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;96;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;104;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;112;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;120;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;128;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;136;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;144;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;152;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;160;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;168;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;176;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;184;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;192;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;200;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;208;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;216;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;224;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;232;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;240;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;248;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;256;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;264;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;272;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;280;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;288;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;296;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;304;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;312;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;320;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;328;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;336;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;344;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;352;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;360;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;368;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;376;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;384;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;392;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;400;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;408;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;416;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;424;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;432;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;440;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;448;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;456;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;464;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;472;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;480;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;488;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;496;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;504;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;512;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;520;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;528;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;536;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;544;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;552;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;560;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;568;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;576;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;584;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;592;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;600;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;608;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;616;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;624;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;632;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;640;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;648;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;656;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;664;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;672;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;680;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;688;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;696;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;704;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;712;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;720;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;728;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;736;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;744;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;752;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;760;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;768;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;776;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;784;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;792;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;800;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;808;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;816;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;824;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;832;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;840;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;848;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;856;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;864;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;872;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;880;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;888;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;896;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;904;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;912;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;920;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;928;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;936;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;944;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;952;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;960;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;968;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;976;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;984;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;992;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;1000;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;1008;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;1016;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;1024;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;1032;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;1040;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;1048;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;1056;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;1064;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;1072;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;1080;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;1088;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;1096;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;1104;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;1112;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;1120;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;1128;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;1136;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;1144;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;1152;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;1160;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;1168;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;1176;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;1184;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;1192;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;1200;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;1208;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;1216;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;1224;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;1232;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;1240;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;1248;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;1256;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;1264;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;1272;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;1280;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;1288;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;1296;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;1304;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;1312;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;1320;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;1328;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;1336;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;1344;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;1352;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;1360;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;1368;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;1376;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;1384;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;1392;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;1400;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;1408;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;1416;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;1424;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;1432;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;1440;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;1448;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;1456;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;1464;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;1472;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;1480;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;1488;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;1496;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;1504;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;1512;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;1520;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;1528;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;1536;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;1544;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;1552;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;1560;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;1568;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;1576;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;1584;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;1592;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;1600;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;1608;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;1616;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;1624;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;1632;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;1640;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;1648;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;1656;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;1664;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;1672;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;1680;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;1688;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;1696;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;1704;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;1712;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;1720;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;1728;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;1736;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;1744;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;1752;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;1760;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;1768;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;1776;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;1784;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;1792;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;1800;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;1808;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;1816;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;1824;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;1832;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;1840;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;1848;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;1856;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;1864;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;1872;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;1880;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;1888;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;1896;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;1904;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;1912;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;1920;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;1928;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;1936;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;1944;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;1952;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;1960;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;1968;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;1976;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;1984;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;1992;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;2000;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;2008;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;2016;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;2024;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;2032;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;2040;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;2048;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;2056;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;2064;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;2072;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;2080;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;2088;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;2096;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;2104;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;2112;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;2120;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;2128;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;2136;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;2144;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;2152;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;2160;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;2168;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;2176;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;2184;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;2192;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;2200;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;2208;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;2216;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;2224;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;2232;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;2240;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;2248;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;2256;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;2264;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;2272;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;2280;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;2288;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;2296;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;2304;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;2312;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;2320;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;2328;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;2336;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;2344;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;2352;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;2360;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;2368;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;2376;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;2384;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;2392;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;2400;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;2408;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;2416;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;2424;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;2432;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;2440;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;2448;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;2456;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;2464;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;2472;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;2480;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;2488;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;2496;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;2504;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;2512;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;2520;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;2528;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;2536;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;2544;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;2552;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;2560;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;2568;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;2576;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;2584;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;2592;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;2600;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;2608;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;2616;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;2624;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;2632;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;2640;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;2648;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;2656;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;2664;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;2672;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;2680;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;2688;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;2696;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;2704;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;2712;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;2720;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;2728;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;2736;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;2744;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;2752;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;2760;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;2768;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;2776;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;2784;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;2792;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;2800;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;2808;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;2816;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;2824;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;2832;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;2840;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;2848;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;2856;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;2864;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;2872;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;2880;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;2888;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;2896;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;2904;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;2912;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;2920;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;2928;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;2936;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;2944;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;2952;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;2960;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;2968;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;2976;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;2984;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;2992;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;3000;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;3008;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;3016;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;3024;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;3032;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;3040;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;3048;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;3056;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;3064;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;3072;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;3080;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;3088;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;3096;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;3104;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;3112;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;3120;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;3128;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;3136;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;3144;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;3152;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;3160;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;3168;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;3176;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;3184;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;3192;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;3200;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;3208;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;3216;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;3224;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;3232;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;3240;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;3248;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;3256;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;3264;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;3272;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;3280;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;3288;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;3296;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;3304;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;3312;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;3320;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;3328;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;3336;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;3344;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;3352;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;3360;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;3368;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;3376;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;3384;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;3392;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;3400;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;3408;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;3416;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;3424;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;3432;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;3440;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;3448;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;3456;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;3464;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;3472;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;3480;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;3488;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;3496;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;3504;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;3512;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;3520;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;3528;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;3536;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;3544;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;3552;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;3560;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;3568;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;3576;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;3584;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;3592;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;3600;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;3608;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;3616;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;3624;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;3632;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;3640;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;3648;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;3656;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;3664;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;3672;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;3680;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;3688;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;3696;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;3704;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;3712;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;3720;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;3728;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;3736;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;3744;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;3752;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;3760;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;3768;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;3776;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;3784;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;3792;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;3800;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;3808;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;3816;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;3824;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;3832;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;3840;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;3848;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;3856;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;3864;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;3872;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;3880;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;3888;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;3896;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;3904;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;3912;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;3920;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;3928;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;3936;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;3944;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;3952;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;3960;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;3968;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;3976;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;3984;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;3992;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;4000;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;4008;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;4016;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;4024;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;4032;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;4040;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;4048;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;4056;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;4064;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;4072;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;4080;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;4088;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;4096;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;4104;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;4112;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;4120;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;4128;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;4136;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;4144;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;4152;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;4160;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;4168;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;4176;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;4184;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;4192;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;4200;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;4208;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;4216;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;4224;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;4232;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;4240;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;4248;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;4256;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;4264;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;4272;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;4280;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;4288;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;4296;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;4304;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;4312;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;4320;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;4328;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;4336;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;4344;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;4352;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;4360;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;4368;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;4376;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;4384;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;4392;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;4400;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;4408;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;4416;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;4424;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;4432;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;4440;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;4448;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;4456;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;4464;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;4472;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;4480;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;4488;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;4496;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;4504;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;4512;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;4520;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;4528;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;4536;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;4544;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;4552;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;4560;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;4568;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;4576;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;4584;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;4592;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;4600;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;4608;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;4616;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;4624;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;4632;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;4640;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;4648;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;4656;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;4664;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;4672;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;4680;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;4688;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;4696;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;4704;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;4712;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;4720;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;4728;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;4736;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;4744;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;4752;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;4760;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;4768;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;4776;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;4784;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;4792;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;4800;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;4808;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;4816;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;4824;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;4832;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;4840;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;4848;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;4856;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;4864;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;4872;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;4880;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;4888;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;4896;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;4904;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;4912;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;4920;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;4928;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;4936;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;4944;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;4952;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;4960;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;4968;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;4976;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;4984;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;4992;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;5000;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;5008;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;5016;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;5024;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;5032;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;5040;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;5048;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;5056;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;5064;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;5072;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;5080;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;5088;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;5096;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;5104;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;5112;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;5120;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;5128;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;5136;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;5144;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;5152;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;5160;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;5168;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;5176;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;5184;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;5192;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;5200;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;5208;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;5216;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;5224;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;5232;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;5240;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;5248;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;5256;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;5264;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;5272;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;5280;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;5288;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;5296;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;5304;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;5312;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;5320;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;5328;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;5336;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;5344;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;5352;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;5360;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;5368;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;5376;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;5384;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;5392;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;5400;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;5408;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;5416;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;5424;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;5432;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;5440;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;5448;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;5456;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;5464;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;5472;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;5480;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;5488;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;5496;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;5504;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;5512;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;5520;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;5528;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;5536;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;5544;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;5552;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;5560;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;5568;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;5576;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;5584;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;5592;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;5600;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;5608;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;5616;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;5624;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;5632;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;5640;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;5648;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;5656;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;5664;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;5672;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;5680;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;5688;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;5696;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;5704;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;5712;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;5720;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;5728;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;5736;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;5744;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;5752;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;5760;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;5768;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;5776;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;5784;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;5792;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;5800;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;5808;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;5816;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;5824;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;5832;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;5840;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;5848;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;5856;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;5864;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;5872;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;5880;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;5888;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;5896;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;5904;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;5912;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;5920;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;5928;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;5936;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;5944;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;5952;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;5960;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;5968;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;5976;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;5984;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;5992;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;6000;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;6008;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;6016;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;6024;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;6032;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;6040;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;6048;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;6056;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;6064;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;6072;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;6080;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;6088;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;6096;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;6104;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;6112;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;6120;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;6128;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;6136;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;6144;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;6152;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;6160;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;6168;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;6176;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;6184;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;6192;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;6200;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;6208;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;6216;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;6224;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;6232;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;6240;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;6248;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;6256;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;6264;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;6272;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;6280;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;6288;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;6296;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;6304;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;6312;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;6320;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;6328;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;6336;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;6344;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;6352;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;6360;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;6368;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;6376;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;6384;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;6392;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;6400;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;6408;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;6416;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;6424;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;6432;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;6440;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;6448;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;6456;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;6464;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;6472;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;6480;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;6488;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;6496;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;6504;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;6512;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;6520;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;6528;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;6536;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;6544;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;6552;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;6560;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;6568;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;6576;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;6584;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;6592;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;6600;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;6608;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;6616;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;6624;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;6632;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;6640;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;6648;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;6656;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;6664;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;6672;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;6680;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;6688;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;6696;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;6704;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;6712;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;6720;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;6728;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;6736;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;6744;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;6752;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;6760;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;6768;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;6776;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;6784;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;6792;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;6800;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;6808;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;6816;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;6824;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;6832;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;6840;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;6848;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;6856;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;6864;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;6872;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;6880;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;6888;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;6896;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;6904;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;6912;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;6920;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;6928;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;6936;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;6944;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;6952;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;6960;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;6968;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;6976;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;6984;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;6992;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;7000;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;7008;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;7016;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;7024;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;7032;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;7040;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;7048;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;7056;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;7064;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;7072;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;7080;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;7088;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;7096;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;7104;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;7112;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;7120;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;7128;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;7136;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;7144;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;7152;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;7160;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;7168;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;7176;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;7184;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;7192;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;7200;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;7208;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;7216;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;7224;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;7232;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;7240;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;7248;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;7256;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;7264;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;7272;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;7280;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;7288;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;7296;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;7304;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;7312;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;7320;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;7328;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;7336;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;7344;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;7352;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;7360;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;7368;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;7376;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;7384;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;7392;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;7400;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;7408;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;7416;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;7424;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;7432;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;7440;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;7448;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;7456;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;7464;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;7472;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;7480;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;7488;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;7496;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;7504;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;7512;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;7520;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;7528;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;7536;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;7544;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;7552;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;7560;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;7568;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;7576;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;7584;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;7592;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;7600;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;7608;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;7616;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;7624;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;7632;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;7640;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;7648;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;7656;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;7664;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;7672;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;7680;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;7688;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;7696;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;7704;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;7712;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;7720;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;7728;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;7736;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;7744;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;7752;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;7760;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;7768;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;7776;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;7784;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;7792;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;7800;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;7808;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;7816;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;7824;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;7832;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;7840;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;7848;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;7856;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;7864;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;7872;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;7880;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;7888;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;7896;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;7904;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;7912;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;7920;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;7928;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;7936;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;7944;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;7952;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;7960;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;7968;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;7976;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;7984;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;7992;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;8000;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;8008;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;8016;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;8024;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;8032;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;8040;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;8048;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;8056;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;8064;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;8072;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;8080;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;8088;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;8096;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;8104;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;8112;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;8120;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;8128;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;8136;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;8144;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;8152;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;8160;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;8168;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;8176;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;8184;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;8192;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;8200;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;8208;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;8216;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;8224;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;8232;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;8240;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;8248;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;8256;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;8264;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;8272;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;8280;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;8288;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;8296;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;8304;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;8312;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;8320;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;8328;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;8336;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;8344;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;8352;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;8360;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;8368;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;8376;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;8384;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;8392;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;8400;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;8408;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;8416;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;8424;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;8432;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;8440;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;8448;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;8456;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;8464;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;8472;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;8480;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;8488;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;8496;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;8504;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;8512;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;8520;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;8528;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;8536;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;8544;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;8552;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;8560;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;8568;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;8576;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;8584;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;8592;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;8600;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;8608;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;8616;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;8624;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;8632;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;8640;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;8648;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;8656;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;8664;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;8672;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;8680;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;8688;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;8696;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;8704;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;8712;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;8720;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;8728;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;8736;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;8744;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;8752;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;8760;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;8768;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;8776;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;8784;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;8792;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;8800;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;8808;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;8816;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;8824;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;8832;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;8840;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;8848;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;8856;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;8864;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;8872;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;8880;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;8888;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;8896;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;8904;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;8912;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;8920;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;8928;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;8936;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;8944;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;8952;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;8960;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;8968;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;8976;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;8984;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;8992;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;9000;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;9008;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;9016;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;9024;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;9032;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;9040;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;9048;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;9056;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;9064;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;9072;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;9080;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;9088;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;9096;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;9104;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;9112;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;9120;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;9128;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;9136;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;9144;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;9152;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;9160;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;9168;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;9176;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;9184;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;9192;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;9200;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;9208;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;9216;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;9224;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;9232;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;9240;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;9248;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;9256;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;9264;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;9272;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;9280;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;9288;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;9296;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;9304;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;9312;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;9320;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;9328;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;9336;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;9344;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;9352;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;9360;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;9368;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;9376;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;9384;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;9392;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;9400;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;9408;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;9416;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;9424;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;9432;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;9440;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;9448;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;9456;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;9464;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;9472;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;9480;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;9488;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;9496;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;9504;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;9512;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;9520;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;9528;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;9536;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;9544;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;9552;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;9560;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;9568;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;9576;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;9584;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;9592;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;9600;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;9608;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;9616;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;9624;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;9632;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;9640;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;9648;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;9656;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;9664;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;9672;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;9680;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;9688;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;9696;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;9704;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;9712;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;9720;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;9728;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;9736;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;9744;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;9752;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;9760;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;9768;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;9776;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;9784;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;9792;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;9800;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;9808;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;9816;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;9824;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;9832;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;9840;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;9848;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;9856;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;9864;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;9872;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;9880;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;9888;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;9896;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;9904;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;9912;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;9920;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;9928;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;9936;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;9944;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;9952;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;9960;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;9968;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;9976;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;9984;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;9992;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;10000;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;10008;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;10016;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;10024;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;10032;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;10040;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;10048;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;10056;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;10064;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;10072;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;10080;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;10088;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;10096;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;10104;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;10112;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;10120;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;10128;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;10136;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;10144;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;10152;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;10160;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;10168;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;10176;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;10184;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;10192;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;10200;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;10208;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;10216;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;10224;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;10232;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;10240;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;10248;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;10256;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;10264;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;10272;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;10280;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;10288;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;10296;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;10304;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;10312;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;10320;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;10328;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;10336;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;10344;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;10352;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;10360;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;10368;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;10376;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;10384;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;10392;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;10400;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;10408;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;10416;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;10424;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;10432;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;10440;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;10448;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;10456;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;10464;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;10472;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;10480;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;10488;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;10496;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;10504;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;10512;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;10520;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;10528;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;10536;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;10544;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;10552;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;10560;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;10568;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;10576;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;10584;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;10592;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;10600;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;10608;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;10616;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;10624;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;10632;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;10640;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;10648;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;10656;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;10664;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;10672;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;10680;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;10688;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;10696;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;10704;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;10712;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;10720;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;10728;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;10736;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;10744;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;10752;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;10760;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;10768;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;10776;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;10784;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;10792;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;10800;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;10808;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;10816;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;10824;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;10832;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;10840;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;10848;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;10856;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;10864;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;10872;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;10880;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;10888;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;10896;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;10904;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;10912;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;10920;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;10928;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;10936;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;10944;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;10952;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;10960;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;10968;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;10976;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;10984;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;10992;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;11000;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;11008;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;11016;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;11024;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;11032;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;11040;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;11048;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;11056;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;11064;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;11072;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;11080;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;11088;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;11096;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;11104;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;11112;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;11120;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;11128;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;11136;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;11144;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;11152;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;11160;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;11168;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;11176;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;11184;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;11192;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;11200;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;11208;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;11216;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;11224;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;11232;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;11240;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;11248;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;11256;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;11264;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;11272;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;11280;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;11288;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;11296;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;11304;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;11312;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;11320;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;11328;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;11336;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;11344;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;11352;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;11360;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;11368;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;11376;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;11384;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;11392;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;11400;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;11408;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;11416;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;11424;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;11432;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;11440;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;11448;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;11456;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;11464;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;11472;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;11480;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;11488;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;11496;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;11504;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;11512;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;11520;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;11528;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;11536;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;11544;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;11552;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;11560;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;11568;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;11576;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;11584;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;11592;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;11600;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;11608;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;11616;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;11624;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;11632;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;11640;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;11648;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;11656;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;11664;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;11672;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;11680;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;11688;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;11696;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;11704;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;11712;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;11720;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;11728;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;11736;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;11744;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;11752;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;11760;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;11768;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;11776;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;11784;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;11792;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;11800;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;11808;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;11816;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;11824;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;11832;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;11840;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;11848;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;11856;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;11864;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;11872;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;11880;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;11888;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;11896;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;11904;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;11912;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;11920;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;11928;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;11936;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;11944;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;11952;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;11960;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;11968;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;11976;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;11984;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;11992;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;12000;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;12008;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;12016;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;12024;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;12032;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;12040;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;12048;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;12056;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;12064;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;12072;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;12080;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;12088;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;12096;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;12104;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;12112;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;12120;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;12128;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;12136;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;12144;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;12152;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;12160;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;12168;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;12176;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;12184;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;12192;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;12200;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;12208;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;12216;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;12224;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;12232;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;12240;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;12248;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;12256;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;12264;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;12272;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;12280;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;12288;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;12296;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;12304;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;12312;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;12320;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;12328;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;12336;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;12344;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;12352;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;12360;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;12368;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;12376;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;12384;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;12392;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;12400;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;12408;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;12416;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;12424;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;12432;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;12440;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;12448;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;12456;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;12464;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;12472;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;12480;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;12488;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;12496;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;12504;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;12512;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;12520;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;12528;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;12536;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;12544;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;12552;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;12560;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;12568;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;12576;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;12584;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;12592;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;12600;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;12608;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;12616;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;12624;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;12632;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;12640;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;12648;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;12656;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;12664;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;12672;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;12680;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;12688;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;12696;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;12704;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;12712;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;12720;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;12728;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;12736;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;12744;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;12752;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;12760;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;12768;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;12776;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;12784;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;12792;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;12800;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;12808;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;12816;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;12824;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;12832;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;12840;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;12848;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;12856;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;12864;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;12872;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;12880;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;12888;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;12896;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;12904;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;12912;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;12920;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;12928;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;12936;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;12944;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;12952;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;12960;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;12968;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;12976;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;12984;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;12992;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;13000;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;13008;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;13016;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;13024;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;13032;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;13040;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;13048;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;13056;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;13064;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;13072;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;13080;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;13088;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;13096;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;13104;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;13112;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;13120;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;13128;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;13136;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;13144;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;13152;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;13160;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;13168;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;13176;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;13184;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;13192;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;13200;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;13208;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;13216;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;13224;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;13232;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;13240;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;13248;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;13256;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;13264;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;13272;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;13280;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;13288;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;13296;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;13304;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;13312;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;13320;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;13328;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;13336;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;13344;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;13352;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;13360;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;13368;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;13376;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;13384;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;13392;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;13400;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;13408;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;13416;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;13424;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;13432;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;13440;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;13448;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;13456;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;13464;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;13472;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;13480;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;13488;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;13496;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;13504;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;13512;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;13520;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;13528;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;13536;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;13544;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;13552;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;13560;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;13568;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;13576;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;13584;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;13592;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;13600;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;13608;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;13616;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;13624;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;13632;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;13640;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;13648;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;13656;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;13664;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;13672;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;13680;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;13688;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;13696;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;13704;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;13712;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;13720;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;13728;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;13736;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;13744;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;13752;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;13760;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;13768;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;13776;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;13784;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;13792;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;13800;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;13808;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;13816;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;13824;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;13832;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;13840;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;13848;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;13856;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;13864;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;13872;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;13880;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;13888;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;13896;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;13904;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;13912;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;13920;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;13928;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;13936;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;13944;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;13952;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;13960;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;13968;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;13976;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;13984;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;13992;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;14000;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;14008;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;14016;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;14024;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;14032;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;14040;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;14048;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;14056;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;14064;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;14072;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;14080;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;14088;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;14096;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;14104;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;14112;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;14120;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;14128;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;14136;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;14144;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;14152;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;14160;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;14168;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;14176;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;14184;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;14192;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;14200;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;14208;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;14216;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;14224;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;14232;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;14240;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;14248;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;14256;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;14264;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;14272;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;14280;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;14288;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;14296;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;14304;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;14312;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;14320;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;14328;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;14336;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;14344;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;14352;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;14360;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;14368;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;14376;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;14384;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;14392;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;14400;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;14408;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;14416;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;14424;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;14432;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;14440;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;14448;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;14456;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;14464;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;14472;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;14480;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;14488;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;14496;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;14504;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;14512;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;14520;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;14528;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;14536;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;14544;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;14552;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;14560;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;14568;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;14576;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;14584;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;14592;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;14600;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;14608;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;14616;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;14624;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;14632;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;14640;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;14648;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;14656;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;14664;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;14672;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;14680;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;14688;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;14696;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;14704;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;14712;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;14720;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;14728;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;14736;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;14744;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;14752;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;14760;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;14768;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;14776;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;14784;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;14792;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;14800;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;14808;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;14816;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;14824;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;14832;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;14840;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;14848;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;14856;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;14864;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;14872;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;14880;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;14888;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;14896;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;14904;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;14912;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;14920;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;14928;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;14936;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;14944;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;14952;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;14960;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;14968;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;14976;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;14984;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;14992;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;15000;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;15008;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;15016;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;15024;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;15032;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;15040;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;15048;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;15056;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;15064;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;15072;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;15080;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;15088;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;15096;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;15104;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;15112;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;15120;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;15128;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;15136;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;15144;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;15152;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;15160;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;15168;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;15176;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;15184;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;15192;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;15200;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;15208;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;15216;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;15224;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;15232;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;15240;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;15248;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;15256;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;15264;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;15272;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;15280;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;15288;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;15296;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;15304;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;15312;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;15320;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;15328;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;15336;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;15344;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;15352;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;15360;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;15368;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;15376;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;15384;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;15392;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;15400;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;15408;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;15416;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;15424;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;15432;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;15440;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;15448;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;15456;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;15464;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;15472;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;15480;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;15488;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;15496;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;15504;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;15512;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;15520;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;15528;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;15536;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;15544;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;15552;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;15560;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;15568;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;15576;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;15584;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;15592;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;15600;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;15608;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;15616;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;15624;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;15632;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;15640;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;15648;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;15656;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;15664;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;15672;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;15680;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;15688;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;15696;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;15704;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;15712;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;15720;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;15728;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;15736;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;15744;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;15752;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;15760;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;15768;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;15776;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;15784;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;15792;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;15800;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;15808;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;15816;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;15824;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;15832;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;15840;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;15848;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;15856;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;15864;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;15872;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;15880;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;15888;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;15896;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;15904;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;15912;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;15920;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;15928;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;15936;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;15944;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;15952;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;15960;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;15968;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;15976;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;15984;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;15992;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;16000;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;16008;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;16016;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;16024;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;16032;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;16040;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;16048;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;16056;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;16064;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;16072;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;16080;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;16088;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;16096;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;16104;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;16112;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;16120;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;16128;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;16136;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;16144;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;16152;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;16160;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;16168;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;16176;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;16184;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;16192;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;16200;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;16208;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;16216;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;16224;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;16232;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;16240;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;16248;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;16256;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;16264;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;16272;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;16280;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;16288;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;16296;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;16304;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;16312;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;16320;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;16328;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;16336;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;16344;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;16352;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;16360;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;16368;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;16376;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;16384;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;16392;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;16400;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;16408;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;16416;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;16424;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;16432;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;16440;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;16448;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;16456;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;16464;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;16472;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;16480;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;16488;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;16496;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;16504;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;16512;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;16520;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;16528;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;16536;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;16544;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;16552;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;16560;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;16568;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;16576;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;16584;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;16592;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;16600;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;16608;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;16616;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;16624;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;16632;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;16640;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;16648;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;16656;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;16664;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;16672;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;16680;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;16688;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;16696;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;16704;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;16712;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;16720;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;16728;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;16736;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;16744;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;16752;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;16760;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;16768;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;16776;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;16784;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;16792;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;16800;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;16808;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;16816;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;16824;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;16832;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;16840;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;16848;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;16856;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;16864;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;16872;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;16880;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;16888;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;16896;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;16904;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;16912;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;16920;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;16928;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;16936;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;16944;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;16952;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;16960;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;16968;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;16976;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;16984;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;16992;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;17000;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;17008;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;17016;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;17024;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;17032;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;17040;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;17048;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;17056;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;17064;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;17072;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;17080;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;17088;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;17096;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;17104;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;17112;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;17120;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;17128;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;17136;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;17144;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;17152;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;17160;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;17168;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;17176;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;17184;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;17192;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;17200;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;17208;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;17216;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;17224;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;17232;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;17240;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;17248;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;17256;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;17264;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;17272;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;17280;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;17288;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;17296;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;17304;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;17312;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;17320;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;17328;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;17336;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;17344;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;17352;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;17360;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;17368;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;17376;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;17384;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;17392;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;17400;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;17408;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;17416;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;17424;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;17432;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;17440;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;17448;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;17456;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;17464;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;17472;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;17480;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;17488;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;17496;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;17504;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;17512;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;17520;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;17528;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;17536;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;17544;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;17552;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;17560;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;17568;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;17576;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;17584;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;17592;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;17600;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;17608;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;17616;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;17624;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;17632;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;17640;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;17648;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;17656;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;17664;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;17672;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;17680;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;17688;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;17696;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;17704;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;17712;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;17720;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;17728;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;17736;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;17744;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;17752;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;17760;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;17768;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;17776;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;17784;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;17792;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;17800;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;17808;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;17816;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;17824;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;17832;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;17840;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;17848;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;17856;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;17864;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;17872;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;17880;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;17888;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;17896;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;17904;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;17912;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;17920;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;17928;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;17936;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;17944;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;17952;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;17960;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;17968;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;17976;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;17984;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;17992;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;18000;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;18008;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;18016;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;18024;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;18032;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;18040;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;18048;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;18056;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;18064;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;18072;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;18080;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;18088;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;18096;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;18104;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;18112;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;18120;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;18128;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;18136;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;18144;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;18152;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;18160;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;18168;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;18176;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;18184;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;18192;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;18200;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;18208;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;18216;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;18224;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;18232;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;18240;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;18248;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;18256;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;18264;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;18272;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;18280;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;18288;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;18296;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;18304;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;18312;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;18320;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;18328;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;18336;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;18344;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;18352;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;18360;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;18368;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;18376;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;18384;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;18392;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;18400;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;18408;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;18416;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;18424;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;18432;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;18440;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;18448;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;18456;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;18464;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;18472;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;18480;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;18488;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;18496;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;18504;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;18512;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;18520;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;18528;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;18536;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;18544;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;18552;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;18560;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;18568;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;18576;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;18584;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;18592;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;18600;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;18608;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;18616;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;18624;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;18632;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;18640;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;18648;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;18656;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;18664;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;18672;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;18680;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;18688;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;18696;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;18704;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;18712;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;18720;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;18728;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;18736;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;18744;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;18752;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;18760;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;18768;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;18776;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;18784;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;18792;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;18800;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;18808;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;18816;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;18824;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;18832;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;18840;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;18848;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;18856;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;18864;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;18872;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;18880;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;18888;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;18896;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;18904;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;18912;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;18920;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;18928;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;18936;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;18944;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;18952;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;18960;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;18968;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;18976;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;18984;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;18992;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;19000;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;19008;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;19016;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;19024;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;19032;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;19040;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;19048;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;19056;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;19064;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;19072;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;19080;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;19088;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;19096;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;19104;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;19112;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;19120;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;19128;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;19136;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;19144;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;19152;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;19160;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;19168;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;19176;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;19184;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;19192;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;19200;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;19208;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;19216;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;19224;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;19232;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;19240;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;19248;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;19256;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;19264;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;19272;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;19280;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;19288;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;19296;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;19304;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;19312;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;19320;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;19328;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;19336;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;19344;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;19352;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;19360;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;19368;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;19376;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;19384;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;19392;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;19400;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;19408;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;19416;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;19424;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;19432;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;19440;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;19448;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;19456;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;19464;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;19472;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;19480;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;19488;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;19496;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;19504;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;19512;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;19520;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;19528;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;19536;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;19544;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;19552;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;19560;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;19568;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;19576;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;19584;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;19592;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;19600;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;19608;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;19616;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;19624;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;19632;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;19640;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;19648;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;19656;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;19664;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;19672;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;19680;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;19688;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;19696;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;19704;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;19712;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;19720;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;19728;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;19736;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;19744;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;19752;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;19760;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;19768;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;19776;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;19784;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;19792;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;19800;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;19808;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;19816;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;19824;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;19832;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;19840;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;19848;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;19856;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;19864;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;19872;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;19880;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;19888;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;19896;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;19904;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;19912;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;19920;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;19928;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;19936;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;19944;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;19952;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;19960;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;19968;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;19976;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;19984;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;19992;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;20000;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;20008;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;20016;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;20024;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;20032;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;20040;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;20048;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;20056;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;20064;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;20072;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;20080;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;20088;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;20096;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;20104;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;20112;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;20120;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;20128;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;20136;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;20144;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;20152;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;20160;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;20168;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;20176;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;20184;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;20192;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;20200;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;20208;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;20216;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;20224;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;20232;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;20240;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;20248;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;20256;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;20264;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;20272;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;20280;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;20288;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;20296;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;20304;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;20312;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;20320;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;20328;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;20336;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;20344;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;20352;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;20360;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;20368;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;20376;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;20384;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;20392;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;20400;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;20408;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;20416;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;20424;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;20432;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;20440;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;20448;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;20456;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;20464;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;20472;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;20480;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;20488;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;20496;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;20504;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;20512;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;20520;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;20528;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;20536;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;20544;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;20552;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;20560;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;20568;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;20576;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;20584;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;20592;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;20600;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;20608;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;20616;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;20624;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;20632;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;20640;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;20648;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;20656;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;20664;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;20672;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;20680;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;20688;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;20696;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;20704;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;20712;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;20720;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;20728;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;20736;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;20744;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;20752;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;20760;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;20768;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;20776;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;20784;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;20792;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;20800;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;20808;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;20816;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;20824;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;20832;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;20840;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;20848;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;20856;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;20864;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;20872;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;20880;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;20888;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;20896;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;20904;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;20912;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;20920;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;20928;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;20936;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;20944;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;20952;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;20960;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;20968;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;20976;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;20984;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;20992;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;21000;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;21008;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;21016;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;21024;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;21032;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;21040;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;21048;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;21056;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;21064;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;21072;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;21080;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;21088;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;21096;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;21104;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;21112;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;21120;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;21128;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;21136;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;21144;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;21152;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;21160;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;21168;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;21176;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;21184;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;21192;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;21200;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;21208;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;21216;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;21224;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;21232;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;21240;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;21248;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;21256;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;21264;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;21272;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;21280;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;21288;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;21296;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;21304;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;21312;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;21320;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;21328;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;21336;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;21344;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;21352;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;21360;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;21368;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;21376;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;21384;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;21392;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;21400;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;21408;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;21416;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;21424;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;21432;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;21440;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;21448;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;21456;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;21464;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;21472;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;21480;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;21488;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;21496;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;21504;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;21512;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;21520;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;21528;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;21536;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;21544;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;21552;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;21560;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;21568;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;21576;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;21584;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;21592;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;21600;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;21608;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;21616;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;21624;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;21632;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;21640;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;21648;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;21656;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;21664;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;21672;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;21680;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;21688;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;21696;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;21704;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;21712;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;21720;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;21728;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;21736;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;21744;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;21752;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;21760;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;21768;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;21776;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;21784;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;21792;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;21800;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;21808;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;21816;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;21824;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;21832;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;21840;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;21848;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;21856;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;21864;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;21872;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;21880;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;21888;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;21896;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;21904;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;21912;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;21920;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;21928;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;21936;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;21944;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;21952;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;21960;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;21968;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;21976;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;21984;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;21992;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;22000;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;22008;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;22016;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;22024;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;22032;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;22040;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;22048;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;22056;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;22064;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;22072;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;22080;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;22088;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;22096;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;22104;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;22112;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;22120;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;22128;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;22136;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;22144;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;22152;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;22160;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;22168;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;22176;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;22184;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;22192;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;22200;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;22208;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;22216;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;22224;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;22232;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;22240;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;22248;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;22256;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;22264;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;22272;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;22280;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;22288;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;22296;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;22304;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;22312;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;22320;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;22328;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;22336;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;22344;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;22352;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;22360;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;22368;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;22376;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;22384;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;22392;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;22400;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;22408;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;22416;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;22424;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;22432;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;22440;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;22448;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;22456;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;22464;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;22472;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;22480;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;22488;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;22496;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;22504;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;22512;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;22520;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;22528;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;22536;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;22544;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;22552;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;22560;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;22568;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;22576;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;22584;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;22592;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;22600;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;22608;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;22616;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;22624;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;22632;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;22640;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;22648;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;22656;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;22664;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;22672;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;22680;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;22688;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;22696;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;22704;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;22712;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;22720;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;22728;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;22736;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;22744;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;22752;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;22760;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;22768;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;22776;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;22784;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;22792;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;22800;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;22808;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;22816;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;22824;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;22832;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;22840;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;22848;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;22856;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;22864;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;22872;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;22880;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;22888;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;22896;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;22904;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;22912;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;22920;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;22928;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;22936;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;22944;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;22952;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;22960;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;22968;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;22976;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;22984;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;22992;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;23000;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;23008;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;23016;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;23024;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;23032;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;23040;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;23048;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;23056;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;23064;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;23072;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;23080;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;23088;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;23096;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;23104;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;23112;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;23120;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;23128;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;23136;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;23144;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;23152;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;23160;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;23168;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;23176;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;23184;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;23192;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;23200;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;23208;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;23216;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;23224;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;23232;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;23240;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;23248;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;23256;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;23264;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;23272;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;23280;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;23288;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;23296;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;23304;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;23312;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;23320;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;23328;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;23336;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;23344;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;23352;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;23360;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;23368;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;23376;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;23384;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;23392;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;23400;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;23408;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;23416;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;23424;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;23432;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;23440;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;23448;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;23456;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;23464;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;23472;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;23480;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;23488;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;23496;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;23504;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;23512;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;23520;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;23528;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;23536;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;23544;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;23552;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;23560;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;23568;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;23576;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;23584;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;23592;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;23600;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;23608;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;23616;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;23624;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;23632;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;23640;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;23648;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;23656;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;23664;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;23672;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;23680;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;23688;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;23696;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;23704;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;23712;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;23720;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;23728;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;23736;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;23744;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;23752;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;23760;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;23768;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;23776;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;23784;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;23792;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;23800;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;23808;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;23816;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;23824;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;23832;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;23840;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;23848;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;23856;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;23864;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;23872;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;23880;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;23888;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;23896;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;23904;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;23912;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;23920;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;23928;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;23936;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;23944;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;23952;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;23960;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;23968;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;23976;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;23984;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;23992;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;24000;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;24008;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;24016;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;24024;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;24032;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;24040;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;24048;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;24056;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;24064;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;24072;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;24080;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;24088;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;24096;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;24104;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;24112;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;24120;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;24128;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;24136;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;24144;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;24152;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;24160;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;24168;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;24176;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;24184;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;24192;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;24200;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;24208;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;24216;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;24224;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;24232;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;24240;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;24248;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;24256;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;24264;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;24272;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;24280;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;24288;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;24296;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;24304;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;24312;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;24320;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;24328;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;24336;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;24344;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;24352;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;24360;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;24368;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;24376;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;24384;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;24392;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;24400;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;24408;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;24416;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;24424;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;24432;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;24440;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;24448;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;24456;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;24464;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;24472;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;24480;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;24488;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;24496;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;24504;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;24512;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;24520;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;24528;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;24536;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;24544;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;24552;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;24560;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;24568;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;24576;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;24584;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;24592;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;24600;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;24608;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;24616;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;24624;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;24632;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;24640;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;24648;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;24656;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;24664;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;24672;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;24680;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;24688;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;24696;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;24704;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;24712;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;24720;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;24728;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;24736;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;24744;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;24752;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;24760;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;24768;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;24776;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;24784;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;24792;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;24800;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;24808;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;24816;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;24824;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;24832;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;24840;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;24848;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;24856;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;24864;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;24872;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;24880;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;24888;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;24896;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;24904;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;24912;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;24920;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;24928;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;24936;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;24944;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;24952;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;24960;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;24968;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;24976;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;24984;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;24992;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;25000;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;25008;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;25016;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;25024;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;25032;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;25040;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;25048;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;25056;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;25064;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;25072;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;25080;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;25088;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;25096;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;25104;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;25112;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;25120;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;25128;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;25136;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;25144;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;25152;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;25160;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;25168;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;25176;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;25184;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;25192;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;25200;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;25208;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;25216;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;25224;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;25232;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;25240;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;25248;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;25256;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;25264;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;25272;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;25280;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;25288;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;25296;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;25304;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;25312;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;25320;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;25328;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;25336;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;25344;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;25352;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;25360;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;25368;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;25376;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;25384;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;25392;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;25400;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;25408;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;25416;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;25424;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;25432;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;25440;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;25448;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;25456;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;25464;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;25472;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;25480;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;25488;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;25496;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;25504;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;25512;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;25520;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;25528;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;25536;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;25544;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;25552;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;25560;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;25568;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;25576;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;25584;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;25592;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;25600;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;25608;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;25616;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;25624;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;25632;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;25640;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;25648;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;25656;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;25664;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;25672;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;25680;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;25688;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;25696;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;25704;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;25712;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;25720;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;25728;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;25736;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;25744;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;25752;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;25760;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;25768;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;25776;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;25784;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;25792;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;25800;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;25808;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;25816;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;25824;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;25832;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;25840;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;25848;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;25856;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;25864;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;25872;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;25880;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;25888;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;25896;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;25904;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;25912;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;25920;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;25928;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;25936;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;25944;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;25952;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;25960;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;25968;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;25976;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;25984;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;25992;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;26000;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;26008;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;26016;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;26024;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;26032;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;26040;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;26048;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;26056;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;26064;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;26072;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;26080;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;26088;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;26096;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;26104;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;26112;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;26120;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;26128;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;26136;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;26144;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;26152;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;26160;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;26168;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;26176;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;26184;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;26192;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;26200;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;26208;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;26216;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;26224;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;26232;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;26240;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;26248;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;26256;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;26264;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;26272;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;26280;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;26288;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;26296;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;26304;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;26312;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;26320;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;26328;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;26336;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;26344;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;26352;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;26360;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;26368;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;26376;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;26384;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;26392;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;26400;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;26408;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;26416;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;26424;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;26432;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;26440;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;26448;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;26456;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;26464;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;26472;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;26480;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;26488;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;26496;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;26504;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;26512;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;26520;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;26528;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;26536;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;26544;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;26552;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;26560;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;26568;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;26576;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;26584;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;26592;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;26600;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;26608;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;26616;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;26624;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;26632;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;26640;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;26648;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;26656;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;26664;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;26672;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;26680;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;26688;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;26696;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;26704;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;26712;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;26720;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;26728;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;26736;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;26744;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;26752;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;26760;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;26768;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;26776;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;26784;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;26792;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;26800;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;26808;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;26816;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;26824;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;26832;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;26840;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;26848;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;26856;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;26864;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;26872;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;26880;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;26888;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;26896;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;26904;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;26912;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;26920;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;26928;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;26936;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;26944;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;26952;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;26960;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;26968;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;26976;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;26984;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;26992;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;27000;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;27008;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;27016;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;27024;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;27032;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;27040;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;27048;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;27056;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;27064;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;27072;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;27080;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;27088;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;27096;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;27104;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;27112;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;27120;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;27128;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;27136;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;27144;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;27152;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;27160;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;27168;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;27176;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;27184;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;27192;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;27200;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;27208;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;27216;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;27224;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;27232;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;27240;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;27248;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;27256;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;27264;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;27272;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;27280;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;27288;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;27296;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;27304;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;27312;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;27320;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;27328;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;27336;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;27344;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;27352;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;27360;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;27368;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;27376;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;27384;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;27392;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;27400;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;27408;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;27416;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;27424;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;27432;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;27440;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;27448;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;27456;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;27464;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;27472;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;27480;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;27488;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;27496;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;27504;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;27512;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;27520;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;27528;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;27536;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;27544;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;27552;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;27560;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;27568;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;27576;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;27584;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;27592;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;27600;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;27608;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;27616;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;27624;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;27632;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;27640;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;27648;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;27656;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;27664;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;27672;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;27680;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;27688;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;27696;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;27704;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;27712;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;27720;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;27728;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;27736;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;27744;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;27752;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;27760;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;27768;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;27776;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;27784;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;27792;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;27800;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;27808;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;27816;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;27824;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;27832;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;27840;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;27848;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;27856;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;27864;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;27872;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;27880;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;27888;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;27896;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;27904;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;27912;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;27920;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;27928;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;27936;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;27944;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;27952;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;27960;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;27968;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;27976;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;27984;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;27992;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;28000;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;28008;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;28016;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;28024;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;28032;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;28040;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;28048;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;28056;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;28064;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;28072;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;28080;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;28088;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;28096;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;28104;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;28112;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;28120;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;28128;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;28136;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;28144;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;28152;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;28160;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;28168;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;28176;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;28184;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;28192;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;28200;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;28208;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;28216;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;28224;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;28232;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;28240;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;28248;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;28256;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;28264;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;28272;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;28280;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;28288;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;28296;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;28304;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;28312;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;28320;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;28328;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;28336;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;28344;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;28352;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;28360;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;28368;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;28376;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;28384;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;28392;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;28400;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;28408;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;28416;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;28424;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;28432;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;28440;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;28448;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;28456;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;28464;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;28472;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;28480;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;28488;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;28496;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;28504;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;28512;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;28520;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;28528;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;28536;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;28544;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;28552;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;28560;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;28568;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;28576;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;28584;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;28592;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;28600;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;28608;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;28616;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;28624;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;28632;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;28640;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;28648;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;28656;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;28664;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;28672;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;28680;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;28688;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;28696;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;28704;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;28712;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;28720;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;28728;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;28736;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;28744;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;28752;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;28760;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;28768;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;28776;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;28784;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;28792;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;28800;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;28808;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;28816;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;28824;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;28832;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;28840;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;28848;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;28856;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;28864;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;28872;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;28880;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;28888;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;28896;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;28904;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;28912;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;28920;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;28928;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;28936;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;28944;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;28952;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;28960;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;28968;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;28976;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;28984;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;28992;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;29000;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;29008;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;29016;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;29024;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;29032;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;29040;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;29048;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;29056;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;29064;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;29072;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;29080;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;29088;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;29096;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;29104;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;29112;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;29120;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;29128;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;29136;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;29144;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;29152;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;29160;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;29168;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;29176;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;29184;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;29192;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;29200;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;29208;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;29216;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;29224;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;29232;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;29240;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;29248;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;29256;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;29264;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;29272;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;29280;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;29288;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;29296;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;29304;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;29312;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;29320;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;29328;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;29336;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;29344;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;29352;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;29360;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;29368;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;29376;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;29384;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;29392;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;29400;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;29408;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;29416;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;29424;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;29432;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;29440;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;29448;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;29456;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;29464;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;29472;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;29480;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;29488;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;29496;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;29504;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;29512;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;29520;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;29528;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;29536;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;29544;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;29552;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;29560;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;29568;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;29576;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;29584;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;29592;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;29600;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;29608;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;29616;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;29624;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;29632;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;29640;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;29648;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;29656;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;29664;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;29672;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;29680;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;29688;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;29696;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;29704;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;29712;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;29720;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;29728;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;29736;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;29744;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;29752;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;29760;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;29768;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;29776;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;29784;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;29792;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;29800;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;29808;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;29816;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;29824;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;29832;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;29840;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;29848;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;29856;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;29864;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;29872;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;29880;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;29888;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;29896;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;29904;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;29912;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;29920;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;29928;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;29936;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;29944;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;29952;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;29960;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;29968;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;29976;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;29984;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;29992;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;30000;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;30008;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;30016;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;30024;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;30032;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;30040;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;30048;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;30056;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;30064;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;30072;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;30080;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;30088;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;30096;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;30104;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;30112;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;30120;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;30128;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;30136;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;30144;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;30152;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;30160;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;30168;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;30176;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;30184;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;30192;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;30200;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;30208;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;30216;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;30224;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;30232;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;30240;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;30248;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;30256;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;30264;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;30272;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;30280;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;30288;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;30296;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;30304;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;30312;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;30320;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;30328;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;30336;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;30344;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;30352;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;30360;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;30368;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;30376;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;30384;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;30392;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;30400;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;30408;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;30416;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;30424;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;30432;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;30440;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;30448;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;30456;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;30464;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;30472;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;30480;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;30488;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;30496;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;30504;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;30512;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;30520;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;30528;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;30536;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;30544;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;30552;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;30560;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;30568;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;30576;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;30584;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;30592;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;30600;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;30608;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;30616;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;30624;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;30632;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;30640;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;30648;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;30656;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;30664;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;30672;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;30680;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;30688;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;30696;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;30704;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;30712;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;30720;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;30728;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;30736;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;30744;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;30752;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;30760;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;30768;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;30776;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;30784;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;30792;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;30800;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;30808;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;30816;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;30824;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;30832;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;30840;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;30848;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;30856;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;30864;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;30872;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;30880;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;30888;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;30896;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;30904;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;30912;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;30920;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;30928;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;30936;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;30944;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;30952;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;30960;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;30968;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;30976;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;30984;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;30992;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;31000;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;31008;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;31016;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;31024;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;31032;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;31040;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;31048;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;31056;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;31064;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;31072;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;31080;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;31088;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;31096;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;31104;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;31112;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;31120;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;31128;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;31136;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;31144;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;31152;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;31160;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;31168;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;31176;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;31184;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;31192;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;31200;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;31208;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;31216;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;31224;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;31232;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;31240;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;31248;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;31256;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;31264;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;31272;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;31280;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;31288;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;31296;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;31304;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;31312;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;31320;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;31328;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;31336;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;31344;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;31352;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;31360;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;31368;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;31376;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;31384;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;31392;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;31400;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;31408;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;31416;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;31424;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;31432;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;31440;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;31448;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;31456;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;31464;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;31472;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;31480;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;31488;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;31496;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;31504;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;31512;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;31520;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;31528;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;31536;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;31544;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;31552;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;31560;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;31568;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;31576;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;31584;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;31592;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;31600;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;31608;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;31616;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;31624;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;31632;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;31640;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;31648;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;31656;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;31664;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;31672;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;31680;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;31688;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;31696;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;31704;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;31712;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;31720;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;31728;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;31736;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;31744;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;31752;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;31760;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;31768;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;31776;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;31784;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;31792;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;31800;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;31808;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;31816;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;31824;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;31832;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;31840;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;31848;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;31856;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;31864;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;31872;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;31880;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;31888;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;31896;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;31904;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;31912;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;31920;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;31928;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;31936;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;31944;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;31952;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;31960;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;31968;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;31976;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;31984;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;31992;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;32000;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;32008;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;32016;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;32024;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;32032;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;32040;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;32048;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;32056;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;32064;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;32072;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;32080;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;32088;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;32096;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;32104;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;32112;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;32120;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;32128;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;32136;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;32144;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;32152;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;32160;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;32168;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;32176;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;32184;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;32192;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;32200;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;32208;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;32216;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;32224;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;32232;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;32240;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;32248;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;32256;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;32264;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;32272;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;32280;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;32288;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;32296;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;32304;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;32312;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;32320;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;32328;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;32336;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;32344;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;32352;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;32360;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;32368;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;32376;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;32384;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;32392;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;32400;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;32408;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;32416;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;32424;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;32432;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;32440;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;32448;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;32456;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;32464;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;32472;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;32480;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;32488;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;32496;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;32504;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;32512;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;32520;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;32528;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;32536;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;32544;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;32552;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;32560;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;32568;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;32576;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;32584;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;32592;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;32600;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;32608;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;32616;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;32624;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;32632;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;32640;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;32648;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;32656;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;32664;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;32672;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;32680;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;32688;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;32696;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;32704;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;32712;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;32720;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;32728;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;32736;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;32744;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;32752;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;32760;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;32768;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;32776;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;32784;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;32792;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;32800;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;32808;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;32816;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;32824;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;32832;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;32840;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;32848;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;32856;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;32864;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;32872;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;32880;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;32888;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;32896;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;32904;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;32912;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;32920;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;32928;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;32936;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;32944;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;32952;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;32960;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;32968;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;32976;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;32984;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;32992;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;33000;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;33008;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;33016;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;33024;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;33032;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;33040;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;33048;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;33056;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;33064;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;33072;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;33080;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;33088;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;33096;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;33104;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;33112;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;33120;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;33128;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;33136;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;33144;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;33152;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;33160;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;33168;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;33176;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;33184;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;33192;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;33200;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;33208;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;33216;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;33224;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;33232;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;33240;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;33248;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;33256;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;33264;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;33272;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;33280;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;33288;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;33296;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;33304;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;33312;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;33320;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;33328;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;33336;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;33344;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;33352;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;33360;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;33368;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;33376;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;33384;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;33392;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;33400;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;33408;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;33416;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;33424;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;33432;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;33440;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;33448;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;33456;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;33464;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;33472;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;33480;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;33488;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;33496;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;33504;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;33512;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;33520;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;33528;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;33536;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;33544;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;33552;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;33560;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;33568;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;33576;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;33584;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;33592;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;33600;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;33608;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;33616;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;33624;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;33632;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;33640;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;33648;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;33656;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;33664;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;33672;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;33680;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;33688;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;33696;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;33704;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;33712;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;33720;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;33728;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;33736;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;33744;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;33752;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;33760;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;33768;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;33776;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;33784;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;33792;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;33800;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;33808;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;33816;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;33824;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;33832;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;33840;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;33848;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;33856;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;33864;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;33872;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;33880;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;33888;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;33896;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;33904;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;33912;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;33920;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;33928;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;33936;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;33944;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;33952;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;33960;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;33968;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;33976;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;33984;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;33992;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;34000;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;34008;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;34016;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;34024;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;34032;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;34040;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;34048;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;34056;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;34064;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;34072;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;34080;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;34088;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;34096;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;34104;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;34112;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;34120;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;34128;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;34136;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;34144;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;34152;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;34160;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;34168;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;34176;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;34184;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;34192;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;34200;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;34208;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;34216;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;34224;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;34232;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;34240;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;34248;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;34256;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;34264;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;34272;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;34280;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;34288;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;34296;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;34304;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;34312;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;34320;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;34328;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;34336;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;34344;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;34352;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;34360;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;34368;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;34376;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;34384;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;34392;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;34400;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;34408;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;34416;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;34424;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;34432;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;34440;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;34448;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;34456;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;34464;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;34472;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;34480;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;34488;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;34496;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;34504;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;34512;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;34520;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;34528;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;34536;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;34544;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;34552;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;34560;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;34568;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;34576;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;34584;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;34592;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;34600;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;34608;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;34616;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;34624;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;34632;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;34640;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;34648;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;34656;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;34664;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;34672;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;34680;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;34688;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;34696;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;34704;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;34712;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;34720;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;34728;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;34736;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;34744;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;34752;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;34760;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;34768;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;34776;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;34784;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;34792;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;34800;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;34808;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;34816;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;34824;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;34832;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;34840;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;34848;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;34856;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;34864;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;34872;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;34880;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;34888;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;34896;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;34904;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;34912;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;34920;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;34928;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;34936;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;34944;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;34952;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;34960;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;34968;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;34976;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;34984;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;34992;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;35000;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;35008;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;35016;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;35024;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;35032;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;35040;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;35048;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;35056;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;35064;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;35072;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;35080;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;35088;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;35096;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;35104;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;35112;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;35120;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;35128;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;35136;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;35144;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;35152;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;35160;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;35168;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;35176;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;35184;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;35192;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;35200;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;35208;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;35216;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;35224;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;35232;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;35240;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;35248;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;35256;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;35264;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;35272;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;35280;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;35288;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;35296;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;35304;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;35312;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;35320;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;35328;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;35336;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;35344;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;35352;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;35360;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;35368;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;35376;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;35384;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;35392;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;35400;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;35408;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;35416;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;35424;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;35432;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;35440;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;35448;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;35456;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;35464;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;35472;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;35480;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;35488;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;35496;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;35504;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;35512;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;35520;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;35528;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;35536;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;35544;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;35552;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;35560;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;35568;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;35576;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;35584;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;35592;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;35600;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;35608;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;35616;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;35624;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;35632;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;35640;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;35648;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;35656;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;35664;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;35672;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;35680;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;35688;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;35696;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;35704;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;35712;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;35720;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;35728;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;35736;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;35744;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;35752;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;35760;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;35768;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;35776;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;35784;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;35792;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;35800;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;35808;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;35816;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;35824;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;35832;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;35840;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;35848;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;35856;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;35864;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;35872;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;35880;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;35888;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;35896;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;35904;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;35912;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;35920;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;35928;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;35936;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;35944;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;35952;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;35960;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;35968;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;35976;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;35984;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;35992;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;36000;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;36008;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;36016;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;36024;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;36032;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;36040;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;36048;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;36056;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;36064;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;36072;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;36080;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;36088;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;36096;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;36104;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;36112;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;36120;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;36128;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;36136;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;36144;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;36152;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;36160;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;36168;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;36176;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;36184;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;36192;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;36200;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;36208;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;36216;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;36224;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;36232;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;36240;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;36248;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;36256;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;36264;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;36272;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;36280;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;36288;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;36296;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;36304;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;36312;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;36320;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;36328;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;36336;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;36344;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;36352;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;36360;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;36368;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;36376;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;36384;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;36392;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;36400;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;36408;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;36416;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;36424;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;36432;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;36440;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;36448;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;36456;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;36464;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;36472;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;36480;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;36488;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;36496;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;36504;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;36512;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;36520;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;36528;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;36536;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;36544;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;36552;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;36560;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;36568;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;36576;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;36584;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;36592;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;36600;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;36608;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;36616;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;36624;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;36632;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;36640;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;36648;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;36656;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;36664;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;36672;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;36680;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;36688;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;36696;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;36704;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;36712;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;36720;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;36728;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;36736;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;36744;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;36752;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;36760;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;36768;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;36776;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;36784;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;36792;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;36800;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;36808;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;36816;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;36824;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;36832;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;36840;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;36848;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;36856;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;36864;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;36872;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;36880;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;36888;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;36896;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;36904;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;36912;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;36920;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;36928;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;36936;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;36944;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;36952;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;36960;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;36968;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;36976;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;36984;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;36992;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;37000;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;37008;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;37016;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;37024;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;37032;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;37040;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;37048;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;37056;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;37064;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;37072;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;37080;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;37088;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;37096;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;37104;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;37112;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;37120;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;37128;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;37136;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;37144;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;37152;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;37160;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;37168;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;37176;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;37184;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;37192;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;37200;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;37208;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;37216;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;37224;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;37232;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;37240;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;37248;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;37256;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;37264;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;37272;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;37280;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;37288;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;37296;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;37304;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;37312;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;37320;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;37328;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;37336;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;37344;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;37352;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;37360;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;37368;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;37376;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;37384;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;37392;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;37400;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;37408;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;37416;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;37424;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;37432;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;37440;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;37448;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;37456;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;37464;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;37472;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;37480;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;37488;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;37496;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;37504;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;37512;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;37520;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;37528;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;37536;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;37544;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;37552;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;37560;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;37568;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;37576;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;37584;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;37592;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;37600;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;37608;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;37616;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;37624;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;37632;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;37640;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;37648;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;37656;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;37664;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;37672;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;37680;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;37688;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;37696;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;37704;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;37712;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;37720;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;37728;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;37736;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;37744;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;37752;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;37760;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;37768;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;37776;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;37784;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;37792;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;37800;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;37808;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;37816;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;37824;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;37832;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;37840;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;37848;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;37856;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;37864;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;37872;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;37880;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;37888;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;37896;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;37904;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;37912;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;37920;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;37928;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;37936;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;37944;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;37952;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;37960;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;37968;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;37976;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;37984;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;37992;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;38000;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;38008;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;38016;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;38024;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;38032;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;38040;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;38048;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;38056;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;38064;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;38072;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;38080;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;38088;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;38096;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;38104;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;38112;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;38120;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;38128;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;38136;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;38144;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;38152;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;38160;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;38168;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;38176;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;38184;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;38192;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;38200;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;38208;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;38216;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;38224;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;38232;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;38240;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;38248;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;38256;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;38264;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;38272;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;38280;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;38288;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;38296;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;38304;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;38312;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;38320;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;38328;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;38336;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;38344;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;38352;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;38360;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;38368;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;38376;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;38384;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;38392;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;38400;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;38408;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;38416;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;38424;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;38432;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;38440;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;38448;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;38456;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;38464;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;38472;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;38480;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;38488;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;38496;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;38504;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;38512;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;38520;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;38528;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;38536;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;38544;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;38552;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;38560;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;38568;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;38576;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;38584;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;38592;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;38600;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;38608;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;38616;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;38624;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;38632;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;38640;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;38648;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;38656;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;38664;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;38672;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;38680;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;38688;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;38696;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;38704;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;38712;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;38720;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;38728;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;38736;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;38744;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;38752;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;38760;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;38768;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;38776;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;38784;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;38792;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;38800;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;38808;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;38816;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;38824;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;38832;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;38840;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;38848;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;38856;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;38864;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;38872;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;38880;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;38888;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;38896;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;38904;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;38912;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;38920;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;38928;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;38936;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;38944;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;38952;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;38960;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;38968;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;38976;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;38984;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;38992;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;39000;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;39008;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;39016;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;39024;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;39032;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;39040;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;39048;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;39056;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;39064;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;39072;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;39080;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;39088;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;39096;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;39104;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;39112;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;39120;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;39128;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;39136;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;39144;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;39152;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;39160;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;39168;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;39176;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;39184;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;39192;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;39200;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;39208;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;39216;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;39224;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;39232;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;39240;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;39248;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;39256;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;39264;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;39272;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;39280;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;39288;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;39296;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;39304;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;39312;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;39320;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;39328;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;39336;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;39344;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;39352;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;39360;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;39368;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;39376;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;39384;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;39392;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;39400;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;39408;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;39416;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;39424;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;39432;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;39440;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;39448;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;39456;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;39464;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;39472;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;39480;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;39488;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;39496;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;39504;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;39512;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;39520;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;39528;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;39536;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;39544;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;39552;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;39560;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;39568;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;39576;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;39584;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;39592;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;39600;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;39608;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;39616;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;39624;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;39632;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;39640;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;39648;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;39656;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;39664;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;39672;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;39680;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;39688;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;39696;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;39704;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;39712;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;39720;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;39728;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;39736;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;39744;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;39752;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;39760;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;39768;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;39776;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;39784;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;39792;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;39800;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;39808;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;39816;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;39824;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;39832;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;39840;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;39848;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;39856;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;39864;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;39872;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;39880;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;39888;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;39896;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;39904;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;39912;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;39920;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;39928;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;39936;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;39944;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;39952;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;39960;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;39968;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;39976;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;39984;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;39992;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;40000;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;40008;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;40016;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;40024;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;40032;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;40040;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;40048;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;40056;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;40064;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;40072;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;40080;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;40088;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;40096;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;40104;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;40112;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;40120;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;40128;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;40136;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;40144;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;40152;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;40160;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;40168;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;40176;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;40184;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;40192;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;40200;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;40208;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;40216;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;40224;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;40232;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;40240;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;40248;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;40256;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;40264;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;40272;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;40280;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;40288;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;40296;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;40304;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;40312;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;40320;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;40328;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;40336;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;40344;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;40352;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;40360;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;40368;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;40376;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;40384;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;40392;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;40400;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;40408;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;40416;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;40424;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;40432;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;40440;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;40448;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;40456;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;40464;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;40472;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;40480;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;40488;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;40496;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;40504;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;40512;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;40520;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;40528;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;40536;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;40544;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;40552;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;40560;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;40568;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;40576;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;40584;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;40592;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;40600;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;40608;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;40616;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;40624;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;40632;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;40640;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;40648;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;40656;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;40664;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;40672;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;40680;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;40688;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;40696;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;40704;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;40712;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;40720;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;40728;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;40736;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;40744;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;40752;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;40760;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;40768;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;40776;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;40784;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;40792;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;40800;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;40808;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;40816;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;40824;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;40832;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;40840;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;40848;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;40856;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;40864;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;40872;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;40880;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;40888;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;40896;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;40904;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;40912;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;40920;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;40928;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;40936;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;40944;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;40952;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;40960;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;40968;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;40976;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;40984;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;40992;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;41000;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;41008;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;41016;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;41024;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;41032;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;41040;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;41048;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;41056;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;41064;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;41072;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;41080;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;41088;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;41096;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;41104;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;41112;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;41120;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;41128;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;41136;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;41144;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;41152;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;41160;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;41168;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;41176;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;41184;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;41192;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;41200;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;41208;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;41216;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;41224;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;41232;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;41240;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;41248;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;41256;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;41264;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;41272;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;41280;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;41288;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;41296;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;41304;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;41312;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;41320;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;41328;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;41336;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;41344;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;41352;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;41360;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;41368;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;41376;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;41384;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;41392;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;41400;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;41408;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;41416;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;41424;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;41432;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;41440;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;41448;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;41456;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;41464;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;41472;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;41480;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;41488;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;41496;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;41504;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;41512;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;41520;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;41528;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;41536;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;41544;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;41552;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;41560;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;41568;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;41576;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;41584;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;41592;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;41600;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;41608;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;41616;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;41624;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;41632;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;41640;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;41648;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;41656;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;41664;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;41672;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;41680;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;41688;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;41696;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;41704;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;41712;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;41720;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;41728;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;41736;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;41744;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;41752;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;41760;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;41768;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;41776;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;41784;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;41792;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;41800;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;41808;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;41816;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;41824;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;41832;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;41840;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;41848;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;41856;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;41864;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;41872;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;41880;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;41888;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;41896;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;41904;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;41912;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;41920;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;41928;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;41936;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;41944;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;41952;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;41960;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;41968;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;41976;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;41984;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;41992;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;42000;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;42008;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;42016;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;42024;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;42032;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;42040;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;42048;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;42056;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;42064;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;42072;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;42080;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;42088;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;42096;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;42104;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;42112;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;42120;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;42128;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;42136;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;42144;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;42152;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;42160;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;42168;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;42176;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;42184;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;42192;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;42200;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;42208;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;42216;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;42224;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;42232;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;42240;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;42248;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;42256;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;42264;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;42272;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;42280;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;42288;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;42296;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;42304;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;42312;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;42320;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;42328;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;42336;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;42344;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;42352;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;42360;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;42368;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;42376;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;42384;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;42392;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;42400;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;42408;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;42416;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;42424;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;42432;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;42440;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;42448;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;42456;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;42464;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;42472;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;42480;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;42488;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;42496;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;42504;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;42512;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;42520;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;42528;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;42536;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;42544;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;42552;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;42560;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;42568;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;42576;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;42584;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;42592;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;42600;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;42608;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;42616;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;42624;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;42632;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;42640;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;42648;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;42656;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;42664;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;42672;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;42680;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;42688;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;42696;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;42704;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;42712;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;42720;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;42728;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;42736;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;42744;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;42752;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;42760;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;42768;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;42776;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;42784;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;42792;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;42800;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;42808;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;42816;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;42824;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;42832;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;42840;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;42848;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;42856;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;42864;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;42872;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;42880;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;42888;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;42896;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;42904;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;42912;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;42920;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;42928;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;42936;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;42944;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;42952;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;42960;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;42968;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;42976;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;42984;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;42992;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;43000;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;43008;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;43016;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;43024;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;43032;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;43040;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;43048;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;43056;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;43064;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;43072;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;43080;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;43088;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;43096;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;43104;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;43112;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;43120;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;43128;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;43136;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;43144;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;43152;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;43160;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;43168;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;43176;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;43184;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;43192;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;43200;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;43208;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;43216;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;43224;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;43232;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;43240;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;43248;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;43256;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;43264;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;43272;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;43280;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;43288;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;43296;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;43304;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;43312;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;43320;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;43328;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;43336;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;43344;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;43352;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;43360;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;43368;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;43376;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;43384;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;43392;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;43400;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;43408;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;43416;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;43424;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;43432;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;43440;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;43448;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;43456;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;43464;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;43472;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;43480;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;43488;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;43496;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;43504;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;43512;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;43520;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;43528;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;43536;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;43544;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;43552;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;43560;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;43568;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;43576;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;43584;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;43592;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;43600;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;43608;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;43616;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;43624;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;43632;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;43640;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;43648;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;43656;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;43664;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;43672;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;43680;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;43688;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;43696;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;43704;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;43712;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;43720;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;43728;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;43736;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;43744;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;43752;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;43760;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;43768;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;43776;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;43784;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;43792;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;43800;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;43808;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;43816;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;43824;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;43832;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;43840;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;43848;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;43856;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;43864;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;43872;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;43880;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;43888;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;43896;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;43904;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;43912;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;43920;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;43928;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;43936;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;43944;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;43952;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;43960;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;43968;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;43976;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;43984;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;43992;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;44000;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;44008;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;44016;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;44024;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;44032;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;44040;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;44048;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;44056;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;44064;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;44072;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;44080;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;44088;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;44096;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;44104;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;44112;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;44120;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;44128;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;44136;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;44144;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;44152;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;44160;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;44168;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;44176;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;44184;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;44192;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;44200;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;44208;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;44216;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;44224;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;44232;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;44240;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;44248;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;44256;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;44264;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;44272;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;44280;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;44288;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;44296;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;44304;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;44312;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;44320;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;44328;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;44336;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;44344;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;44352;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;44360;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;44368;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;44376;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;44384;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;44392;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;44400;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;44408;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;44416;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;44424;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;44432;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;44440;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;44448;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;44456;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;44464;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;44472;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;44480;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;44488;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;44496;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;44504;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;44512;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;44520;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;44528;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;44536;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;44544;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;44552;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;44560;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;44568;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;44576;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;44584;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;44592;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;44600;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;44608;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;44616;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;44624;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;44632;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;44640;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;44648;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;44656;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;44664;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;44672;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;44680;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;44688;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;44696;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;44704;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;44712;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;44720;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;44728;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;44736;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;44744;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;44752;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;44760;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;44768;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;44776;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;44784;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;44792;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;44800;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;44808;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;44816;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;44824;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;44832;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;44840;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;44848;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;44856;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;44864;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;44872;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;44880;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;44888;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;44896;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;44904;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;44912;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;44920;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;44928;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;44936;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;44944;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;44952;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;44960;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;44968;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;44976;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;44984;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;44992;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;45000;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;45008;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;45016;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;45024;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;45032;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;45040;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;45048;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;45056;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;45064;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;45072;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;45080;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;45088;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;45096;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;45104;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;45112;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;45120;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;45128;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;45136;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;45144;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;45152;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;45160;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;45168;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;45176;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;45184;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;45192;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;45200;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;45208;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;45216;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;45224;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;45232;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;45240;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;45248;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;45256;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;45264;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;45272;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;45280;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;45288;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;45296;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;45304;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;45312;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;45320;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;45328;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;45336;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;45344;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;45352;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;45360;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;45368;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;45376;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;45384;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;45392;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;45400;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;45408;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;45416;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;45424;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;45432;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;45440;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;45448;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;45456;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;45464;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;45472;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;45480;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;45488;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;45496;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;45504;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;45512;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;45520;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;45528;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;45536;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;45544;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;45552;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;45560;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;45568;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;45576;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;45584;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;45592;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;45600;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;45608;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;45616;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;45624;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;45632;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;45640;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;45648;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;45656;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;45664;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;45672;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;45680;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;45688;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;45696;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;45704;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;45712;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;45720;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;45728;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;45736;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;45744;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;45752;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;45760;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;45768;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;45776;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;45784;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;45792;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;45800;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;45808;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;45816;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;45824;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;45832;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;45840;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;45848;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;45856;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;45864;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;45872;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;45880;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;45888;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;45896;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;45904;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;45912;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;45920;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;45928;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;45936;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;45944;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;45952;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;45960;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;45968;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;45976;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;45984;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;45992;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;46000;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;46008;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;46016;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;46024;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;46032;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;46040;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;46048;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;46056;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;46064;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;46072;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;46080;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;46088;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;46096;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;46104;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;46112;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;46120;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;46128;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;46136;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;46144;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;46152;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;46160;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;46168;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;46176;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;46184;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;46192;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;46200;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;46208;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;46216;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;46224;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;46232;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;46240;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;46248;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;46256;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;46264;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;46272;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;46280;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;46288;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;46296;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;46304;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;46312;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;46320;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;46328;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;46336;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;46344;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;46352;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;46360;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;46368;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;46376;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;46384;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;46392;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;46400;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;46408;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;46416;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;46424;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;46432;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;46440;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;46448;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;46456;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;46464;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;46472;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;46480;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;46488;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;46496;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;46504;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;46512;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;46520;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;46528;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;46536;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;46544;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;46552;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;46560;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;46568;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;46576;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;46584;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;46592;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;46600;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;46608;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;46616;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;46624;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;46632;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;46640;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;46648;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;46656;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;46664;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;46672;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;46680;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;46688;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;46696;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;46704;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;46712;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;46720;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;46728;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;46736;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;46744;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;46752;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;46760;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;46768;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;46776;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;46784;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;46792;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;46800;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;46808;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;46816;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;46824;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;46832;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;46840;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;46848;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;46856;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;46864;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;46872;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;46880;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;46888;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;46896;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;46904;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;46912;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;46920;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;46928;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;46936;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;46944;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;46952;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;46960;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;46968;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;46976;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;46984;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;46992;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;47000;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;47008;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;47016;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;47024;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;47032;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;47040;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;47048;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;47056;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;47064;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;47072;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;47080;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;47088;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;47096;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;47104;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;47112;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;47120;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;47128;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;47136;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;47144;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;47152;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;47160;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;47168;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;47176;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;47184;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;47192;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;47200;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;47208;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;47216;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;47224;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;47232;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;47240;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;47248;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;47256;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;47264;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;47272;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;47280;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;47288;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;47296;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;47304;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;47312;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;47320;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;47328;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;47336;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;47344;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;47352;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;47360;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;47368;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;47376;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;47384;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;47392;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;47400;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;47408;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;47416;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;47424;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;47432;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;47440;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;47448;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;47456;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;47464;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;47472;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;47480;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;47488;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;47496;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;47504;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;47512;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;47520;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;47528;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;47536;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;47544;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;47552;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;47560;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;47568;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;47576;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;47584;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;47592;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;47600;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;47608;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;47616;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;47624;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;47632;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;47640;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;47648;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;47656;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;47664;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;47672;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;47680;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;47688;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;47696;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;47704;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;47712;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;47720;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;47728;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;47736;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;47744;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;47752;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;47760;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;47768;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;47776;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;47784;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;47792;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;47800;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;47808;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;47816;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;47824;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;47832;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;47840;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;47848;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;47856;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;47864;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;47872;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;47880;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;47888;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;47896;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;47904;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;47912;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;47920;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;47928;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;47936;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;47944;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;47952;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;47960;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;47968;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;47976;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;47984;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;47992;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;48000;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;48008;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;48016;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;48024;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;48032;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;48040;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;48048;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;48056;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;48064;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;48072;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;48080;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;48088;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;48096;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;48104;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;48112;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;48120;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;48128;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;48136;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;48144;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;48152;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;48160;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;48168;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;48176;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;48184;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;48192;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;48200;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;48208;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;48216;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;48224;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;48232;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;48240;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;48248;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;48256;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;48264;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;48272;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;48280;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;48288;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;48296;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;48304;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;48312;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;48320;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;48328;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;48336;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;48344;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;48352;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;48360;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;48368;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;48376;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;48384;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;48392;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;48400;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;48408;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;48416;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;48424;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;48432;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;48440;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;48448;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;48456;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;48464;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;48472;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;48480;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;48488;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;48496;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;48504;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;48512;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;48520;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;48528;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;48536;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;48544;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;48552;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;48560;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;48568;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;48576;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;48584;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;48592;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;48600;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;48608;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;48616;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;48624;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;48632;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;48640;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;48648;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;48656;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;48664;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;48672;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;48680;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;48688;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;48696;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;48704;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;48712;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;48720;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;48728;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;48736;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;48744;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;48752;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;48760;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;48768;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;48776;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;48784;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;48792;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;48800;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;48808;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;48816;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;48824;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;48832;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;48840;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;48848;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;48856;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;48864;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;48872;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;48880;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;48888;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;48896;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;48904;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;48912;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;48920;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;48928;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;48936;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;48944;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;48952;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;48960;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;48968;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;48976;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;48984;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;48992;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;49000;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;49008;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;49016;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;49024;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;49032;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;49040;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;49048;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;49056;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;49064;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;49072;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;49080;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;49088;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;49096;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;49104;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;49112;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;49120;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;49128;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;49136;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;49144;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;49152;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;49160;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;49168;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;49176;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;49184;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;49192;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;49200;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;49208;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;49216;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;49224;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;49232;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;49240;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;49248;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;49256;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;49264;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;49272;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;49280;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;49288;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;49296;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;49304;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;49312;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;49320;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;49328;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;49336;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;49344;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;49352;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;49360;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;49368;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;49376;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;49384;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;49392;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;49400;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;49408;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;49416;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;49424;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;49432;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;49440;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;49448;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;49456;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;49464;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;49472;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;49480;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;49488;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;49496;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;49504;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;49512;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;49520;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;49528;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;49536;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;49544;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;49552;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;49560;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;49568;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;49576;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;49584;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;49592;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;49600;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;49608;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;49616;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;49624;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;49632;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;49640;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;49648;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;49656;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;49664;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;49672;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;49680;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;49688;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;49696;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;49704;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;49712;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;49720;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;49728;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;49736;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;49744;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;49752;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;49760;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;49768;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;49776;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;49784;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;49792;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;49800;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;49808;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;49816;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;49824;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;49832;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;49840;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;49848;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;49856;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;49864;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;49872;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;49880;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;49888;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;49896;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;49904;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;49912;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;49920;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;49928;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;49936;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;49944;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;49952;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;49960;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;49968;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;49976;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;49984;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;49992;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;50000;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;50008;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;50016;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;50024;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;50032;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;50040;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;50048;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;50056;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;50064;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;50072;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;50080;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;50088;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;50096;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;50104;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;50112;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;50120;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;50128;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;50136;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;50144;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;50152;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;50160;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;50168;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;50176;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;50184;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;50192;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;50200;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;50208;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;50216;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;50224;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;50232;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;50240;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;50248;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;50256;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;50264;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;50272;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;50280;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;50288;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;50296;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;50304;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;50312;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;50320;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;50328;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;50336;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;50344;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;50352;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;50360;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;50368;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;50376;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;50384;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;50392;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;50400;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;50408;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;50416;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;50424;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;50432;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;50440;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;50448;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;50456;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;50464;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;50472;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;50480;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;50488;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;50496;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;50504;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;50512;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;50520;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;50528;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;50536;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;50544;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;50552;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;50560;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;50568;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;50576;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;50584;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;50592;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;50600;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;50608;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;50616;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;50624;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;50632;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;50640;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;50648;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;50656;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;50664;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;50672;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;50680;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;50688;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;50696;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;50704;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;50712;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;50720;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;50728;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;50736;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;50744;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;50752;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;50760;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;50768;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;50776;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;50784;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;50792;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;50800;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;50808;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;50816;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;50824;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;50832;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;50840;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;50848;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;50856;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;50864;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;50872;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;50880;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;50888;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;50896;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;50904;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;50912;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;50920;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;50928;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;50936;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;50944;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;50952;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;50960;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;50968;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;50976;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;50984;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;50992;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;51000;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;51008;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;51016;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;51024;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;51032;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;51040;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;51048;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;51056;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;51064;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;51072;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;51080;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;51088;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;51096;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;51104;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;51112;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;51120;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;51128;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;51136;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;51144;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;51152;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;51160;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;51168;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;51176;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;51184;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; +;51192;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ;(00000000000000000000000000000000) (0) (0) (00) ; + + +RAM content values are presented in the following format: (Binary) (Octal) (Decimal) (Hexadecimal) ++------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; |lights|nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_ocimem:the_nios_system_nios2_processor_nios2_ocimem|nios_system_nios2_processor_ociram_sp_ram_module:nios_system_nios2_processor_ociram_sp_ram|altsyncram:the_altsyncram|altsyncram_4891:auto_generated|ALTSYNCRAM ; ++------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Addr ; +0 ; +1 ; +2 ; +3 ; +4 ; +5 ; +6 ; +7 ; ++----------+------------------------------+------------------------------+------------------------------+------------------------------+------------------------------+------------------------------+------------------------------+------------------------------+ +;0;(10001000100110010111101011111001) (-289051463) (-2003207431) (-7-7-6-6-8-50-7) ;(10101011101010101110010110010101) (-277731505) (-1414863467) (-5-4-5-5-1-10-6-11) ;(00110010111111010001010011010001) (1982245025) (855446737) (32FD14D1) ;(10110110011000011001001111000100) (1000017574) (-1235119164) (-4-9-9-14-6-12-3-12) ;(11000110101001101010101000001001) (1463681825) (-962156023) (-3-9-5-9-5-5-15-7) ;(00001011010000111101111001011011) (1320757133) (188997211) (B43DE5B) ;(11010001110110010011000000101000) (-1316580434) (-774295512) (-2-14-2-6-12-15-13-8) ;(10111100110100001000111000101010) (1833812922) (-1127182806) (-4-3-2-15-7-1-13-6) ; +;8;(00011100100010111010111010000101) (-852240091) (478916229) (1C8BAE85) ;(10110001000111011010110101100011) (477032413) (-1323455133) (-4-14-14-2-5-2-9-13) ;(10000110010011011101111101100010) (-711969292) (-2041716894) (-7-9-11-2-20-9-14) ;(01101000001100000001010010000110) (-1428438738) (1747981446) (68301486) ;(01010001101000111101100011010000) (3270672) (1369692368) (51A3D8D0) ;(01111010111101111101001110011110) (833300692) (2063061918) (7AF7D39E) ;(01000111011000011011010100000011) (-1417151245) (1197585667) (4761B503) ;(00101010100101110110111000010100) (950699728) (714567188) (2A976E14) ; +;16;(10011000000101000001000001000001) (1669683267) (-1743515583) (-6-7-14-11-14-15-11-15) ;(01001100000111110110010001110001) (-739821487) (1277125745) (4C1F6471) ;(01000001110111000000101000110101) (-1980478583) (1104939573) (41DC0A35) ;(01111101010010000100101011100011) (1079594399) (2101889763) (7D484AE3) ;(00101010000100110010100111110011) (909657467) (705898995) (2A1329F3) ;(01000100111011001111010010011001) (-1674311417) (1156379801) (44ECF499) ;(11011100110011011101000100100101) (-19460037) (-590491355) (-2-3-3-2-2-14-13-11) ;(00100100000000010100001011101001) (105274055) (604062441) (240142E9) ; +;24;(00111011011111100100101100000101) (-1252489187) (998132485) (3B7E4B05) ;(10111011100100101110011101100010) (1714269412) (-1148000414) (-4-4-6-13-1-8-9-14) ;(01000101100101001010001111000101) (-1602361943) (1167369157) (4594A3C5) ;(11101010000011011001010000001111) (1720501535) (-368208881) (-1-5-15-2-6-11-15-1) ;(01100110010100100101110101111100) (-1817994370) (1716673916) (66525D7C) ;(00001111010101010010001001000010) (1725221102) (257237570) (F552242) ;(01000101001010111101010100101101) (-1634731193) (1160500525) (452BD52D) ;(11010001111101001110110100010001) (-1307644061) (-772477679) (-2-140-11-1-2-14-15) ; +;32;(01011101010110010000010000100010) (1378718394) (1566114850) (5D590422) ;(11001000000000010110101101011111) (1812422351) (-939431073) (-3-7-15-14-9-4-10-1) ;(10011010101110010100111100000111) (1920920573) (-1699131641) (-6-5-4-6-110-15-9) ;(00010110101110101100100110110100) (-1638422632) (381340084) (16BAC9B4) ;(11111110010101101001101011100011) (-152262435) (-27878685) (-1-10-9-6-5-1-13) ;(11000110111000011110011011100111) (1482520161) (-958273817) (-3-9-1-14-1-9-1-9) ;(00101111111100011001100100110010) (1479347166) (804362546) (2FF19932) ;(11111110101100000101100010101101) (-123723523) (-21997395) (-1-4-15-10-7-5-3) ; +;40;(00011101110011001110011001010001) (-731804175) (499967569) (1DCCE651) ;(11100001100010111001101111111011) (659905291) (-510944261) (-1-14-7-4-6-40-5) ;(11100010111101001111110001100100) (792365662) (-487261084) (-1-130-110-3-9-12) ;(00000101110100110100100001000111) (564644107) (97732679) (5D34847) ;(00000111011110101000000101000011) (736500503) (125468995) (77A8143) ;(00101100111001000010000001111111) (1176052881) (753148031) (2CE4207F) ;(00111111001111100101000100010011) (-872484169) (1061048595) (3F3E5113) ;(11000010010011010010100000000011) (1035380817) (-1035130877) (-3-13-11-2-13-7-15-13) ; +;48;(11100010100010011011010100000011) (759521921) (-494291709) (-1-13-7-6-4-10-15-13) ;(11010001011010111100110101001110) (-1350063966) (-781464242) (-2-14-9-4-3-2-11-2) ;(01010111101010000100000111001111) (604557069) (1470644687) (57A841CF) ;(00010001100101001111011101010100) (2145173524) (294975316) (1194F754) ;(01011100100100100101101000110001) (1296971413) (1553095217) (5C925A31) ;(01000000111111010110100101000110) (-2070219142) (1090349382) (40FD6946) ;(11100011100101111110010111010111) (862952245) (-476584489) (-1-12-6-8-1-10-2-9) ;(11101010110110100111010101010011) (1783662041) (-354781869) (-1-5-2-5-8-10-10-13) ; +;56;(11101011101010001110110000000001) (1869355519) (-341251071) (-1-4-5-7-1-3-15-15) ;(11110101101100111001110100001011) (-1223061365) (-172778229) (-10-4-12-6-2-15-5) ;(10001000101011110011100110100011) (-281692191) (-2001782365) (-7-7-50-12-6-5-13) ;(01011011011111110010010000111110) (1190138428) (1535059006) (5B7F243E) ;(01001111001010111011010010111010) (-434751376) (1328264378) (4F2BB4BA) ;(10010100010100011010001000110100) (1088994230) (-1806589388) (-6-11-10-14-5-13-12-12) ;(00010000111111011001100001001101) (2077314115) (285055053) (10FD984D) ;(10101101010011101111010011110111) (-106721763) (-1387334409) (-5-2-11-10-110-9) ; +;64;(01111111111010010111111110001011) (1329826669) (2146008971) (7FE97F8B) ;(00001000111010100110000101001101) (1072460515) (149578061) (8EA614D) ;(10011111001011000101110011110100) (-1917237766) (-1624482572) (-60-13-3-10-30-12) ;(00111111100100001011011110100010) (-845800950) (1066448802) (3F90B7A2) ;(10001100001010111100011101110100) (77416730) (-1943287948) (-7-3-13-4-3-8-8-12) ;(01000101110111010110001110100101) (-1580222003) (1172136869) (45DD63A5) ;(00110010000001000011001010011100) (1906063938) (839135900) (3204329C) ;(10011001000010011011111000001101) (1767010181) (-1727414771) (-6-6-15-6-4-1-15-3) ; +;72;(10111110011001011100100101111011) (2001050443) (-1100625541) (-4-1-9-10-3-6-8-5) ;(01111000111100111101010010100100) (632301300) (2029245604) (78F3D4A4) ;(00111110111010001011011100011100) (-917801158) (1055438620) (3EE8B71C) ;(10011110100110100000110111100100) (-1983887386) (-1634071068) (-6-1-6-5-15-2-1-12) ;(01010110110110110100001001101011) (519157505) (1457209963) (56DB426B) ;(11100110100001101001110110000001) (1158706119) (-427385471) (-1-9-7-9-6-2-7-15) ;(00100000101010110000011001010010) (-242364174) (548079186) (20AB0652) ;(00000101110100100100011111101101) (564443755) (97667053) (5D247ED) ; +;80;(00011110110111001100111100010010) (-627819874) (517787410) (1EDCCF12) ;(00011110010010000011101101011010) (-672931764) (508050266) (1E483B5A) ;(10001110010010001110111100011110) (286840602) (-1907822818) (-7-1-11-7-10-14-2) ;(11110001100110101110111110111111) (-1631210101) (-241504321) (-14-6-5-10-4-1) ;(10011000001100110101110100100011) (1679329609) (-1741464285) (-6-7-12-12-10-2-13-13) ;(10010101010010101100100100100011) (1187217609) (-1790260957) (-6-10-11-5-3-6-13-13) ;(01000110011110011100111011010110) (-1511136322) (1182387926) (4679CED6) ;(10101110000110001101100110111000) (-24139462) (-1374103112) (-5-1-14-7-2-6-4-8) ; +;88;(10111110010101111101101101001000) (1995461378) (-1101538488) (-4-1-10-8-2-4-11-8) ;(00101010111110010011001111100011) (981264447) (720974819) (2AF933E3) ;(00111111000001001110001001000100) (-888773488) (1057284676) (3F04E244) ;(01011101000100011100100101011000) (1356860882) (1561446744) (5D11C958) ;(01100101101111011010100011001011) (-1885126631) (1706928331) (65BDA8CB) ;(11000101001111111110011001100100) (1329919958) (-985667996) (-3-10-120-1-9-9-12) ;(01111001011111001110101011001000) (694714366) (2038229704) (797CEAC8) ;(10101010101001000000011011100101) (-379290785) (-1432090907) (-5-5-5-11-15-9-1-11) ; +;96;(11110111100001011110001001001110) (-1036416662) (-142220722) (-8-7-10-1-13-11-2) ;(10010101010100010000000001110111) (1188873333) (-1789853577) (-6-10-10-14-15-15-8-9) ;(01011011011011110101010110100011) (1186168995) (1534023075) (5B6F55A3) ;(00101010001111000111010010011010) (922104936) (708605082) (2A3C749A) ;(10101001001011100110101011100110) (-516828784) (-1456575770) (-5-6-13-1-9-5-1-10) ;(10110010000100010111111110110000) (573983528) (-1307476048) (-4-13-14-14-80-50) ;(00100110001010100010010101001110) (317455220) (640296270) (262A254E) ;(10111000110001001101101001110100) (1430861034) (-1195058572) (-4-7-3-11-2-5-8-12) ; +;104;(11110110100100000111000011101110) (-1133707422) (-158306066) (-9-6-15-8-15-1-2) ;(10011110011111111000000010111000) (-1992593862) (-1635811144) (-6-1-80-7-15-4-8) ;(10000011010001010010100010110100) (-1014102570) (-2092619596) (-7-12-11-10-13-7-4-12) ;(01001010101011110110110110011000) (-893817018) (1253010840) (4AAF6D98) ;(10010110000000100011001101110010) (1265104728) (-1778240654) (-6-9-15-13-12-12-8-14) ;(11010001000101100110001111101101) (-1377348727) (-787061779) (-2-14-14-9-9-12-1-3) ;(00110011101000111100000000000111) (2055772711) (866369543) (33A3C007) ;(00001110011111110000011011101110) (1637603356) (243205870) (E7F06EE) ; +;112;(00110100001110000101011110000111) (2121086311) (876107655) (34385787) ;(00101110110111111101011110110000) (1372786364) (786421680) (2EDFD7B0) ;(00000000110101100000111001001011) (65407113) (14028363) (D60E4B) ;(01001001010100110101110000110000) (-1022827588) (1230199856) (49535C30) ;(11101000001111110101110000010100) (1534845542) (-398500844) (-1-7-120-10-3-14-12) ;(01011110000011000100110001011001) (1455562483) (1577864281) (5E0C4C59) ;(00011101011110111001010001001010) (-758255184) (494638154) (1D7B944A) ;(01101010111001101001011100110001) (-1170937483) (1793496881) (6AE69731) ; +;120;(10111111100001000001010011100100) (2110718214) (-1081862940) (-40-7-11-14-11-1-12) ;(01110100010100011100001000010010) (-18109922) (1951515154) (7451C212) ;(01110100111011011110011011010010) (30912378) (1961748178) (74EDE6D2) ;(00001000000011101010111110100101) (1003527645) (135180197) (80EAFA5) ;(11110010000100000101001011011000) (-1573726450) (-233811240) (-13-14-15-10-13-2-8) ;(11001100000010000001100111111011) (-2080795709) (-871884293) (-3-3-15-7-14-60-5) ;(10001001100100111110010110110110) (-190564168) (-1986796106) (-7-6-6-12-1-10-4-10) ;(11100010000011110010110111110110) (720816284) (-502321674) (-1-13-150-13-20-10) ; +;128;(00001111001001100111101001100101) (1711475145) (254179941) (F267A65) ;(01111010100011101000010000000111) (801051063) (2056160263) (7A8E8407) ;(11100111101111100110010101101101) (1274652073) (-406952595) (-1-8-4-1-9-10-9-3) ;(00000001101110100100110010100011) (156446243) (28986531) (1BA4CA3) ;(01111111100110011000111001000100) (1303856160) (2140769860) (7F998E44) ;(00101001110110000011010000100000) (871064744) (702034976) (29D83420) ;(00010100100111111001101001110011) (-1847252133) (346004083) (149F9A73) ;(01100100001110101110010100011110) (-2025888508) (1681581342) (643AE51E) ; +;136;(00010010010101110001010011010011) (-2069354973) (307696851) (125714D3) ;(01101110010010011101110000100001) (-820094903) (1850334241) (6E49DC21) ;(00001011001000100111100101000110) (1310474506) (186808646) (B227946) ;(00110110000010101000001101111101) (-1987433017) (906658685) (360A837D) ;(10110010000110000111000001110100) (575776034) (-1307021196) (-4-13-14-7-8-15-8-12) ;(00010111101100001011110110111101) (-1540830621) (397458877) (17B0BDBD) ;(10010011100011111100011100111101) (1008416641) (-1819293891) (-6-12-70-3-8-12-3) ;(11100111001111110101000000011110) (1234839554) (-415281122) (-1-8-120-10-15-14-2) ; +;144;(01110000101101011011100001111110) (-387116768) (1890957438) (70B5B87E) ;(00101010001010101110110110001010) (917599316) (707456394) (2A2AED8A) ;(11111001011011001100100010000001) (-644633577) (-110311295) (-6-9-3-3-7-7-15) ;(00000010000110110100100111100001) (206644741) (35342817) (21B49E1) ;(10000110100100010110000000001101) (-691066819) (-2037293043) (-7-9-6-14-9-15-15-3) ;(10110100010111100001110100010010) (797122292) (-1268900590) (-4-11-10-1-14-2-14-14) ;(01100100110110010110010001001110) (-1976188828) (1691968590) (64D9644E) ;(01001000011011001011101011111001) (-1114348277) (1215085305) (486CBAF9) ; +;152;(00111000011010101100111100100000) (-1557387152) (946523936) (386ACF20) ;(00001101000100111000010011010100) (1504702324) (219382996) (D1384D4) ;(01100010010001010101111101110111) (2073773919) (1648713591) (62455F77) ;(10000110011011111101111000100000) (-701569796) (-2039488992) (-7-9-90-2-1-140) ;(00000000011011111110110011101100) (33766354) (7335148) (6FECEC) ;(10010100111010000100010100010100) (1136715590) (-1796717292) (-6-11-1-7-11-10-14-12) ;(01111011101010111100001100110011) (910290519) (2074854195) (7BABC333) ;(10101111101010101000010001000101) (122207975) (-1347779515) (-50-5-5-7-11-11-11) ; +;160;(10110001000101110101111000111010) (475362942) (-1323868614) (-4-14-14-8-10-1-12-6) ;(11100000100011011110011000101001) (560552569) (-527571415) (-1-15-7-2-1-9-13-7) ;(01111111000100101010010100101101) (1262071511) (2131928365) (7F12A52D) ;(00001110001100100010100100001001) (1614424411) (238168329) (E322909) ;(00011000011110000100110111000110) (-1258920590) (410537414) (18784DC6) ;(10110010001110111100110000100000) (586451908) (-1304703968) (-4-13-12-4-3-3-140) ;(00100110011011001001111000110100) (338149768) (644652596) (266C9E34) ;(11001000010101111110101011110011) (1837922177) (-933762317) (-3-7-10-8-1-50-13) ; +;168;(00101010111000111011000101100100) (975763248) (719565156) (2AE3B164) ;(00000011100010101100111100101010) (342547452) (59428650) (38ACF2A) ;(11000001101010111100011000001101) (964899829) (-1045707251) (-3-14-5-4-3-9-15-3) ;(10001010111101111000011110111101) (-59623159) (-1963489347) (-7-50-8-7-8-4-3) ;(00000100001101110010001110101001) (415621651) (70722473) (43723A9) ;(11000011011111001001010100101101) (1149269269) (-1015245523) (-3-12-8-3-6-10-13-3) ;(01101001001110100011011000011111) (-1326017907) (1765422623) (693A361F) ;(11011010010010111000111010011001) (-260103251) (-632582503) (-2-5-11-4-7-1-6-7) ; +;176;(11111011100011111101101100010000) (-434022360) (-74458352) (-4-70-2-4-150) ;(01001101011000110110010111110010) (-616820886) (1298359794) (4D6365F2) ;(01110001001000110101100011101001) (-331796593) (1898141929) (712358E9) ;(10000101110110101110000011111010) (-768766462) (-2049253126) (-7-10-2-5-1-150-6) ;(01111110100000101010010000011000) (1198071086) (2122490904) (7E82A418) ;(11010011010010010011011101101000) (-1160576934) (-750176408) (-2-12-11-6-12-8-9-8) ;(01110011100111000110010111101100) (-95388190) (1939629548) (739C65EC) ;(01110011101101100110101100011001) (-86985513) (1941334809) (73B66B19) ; +;184;(00100010000101000010100000010110) (-89943270) (571746326) (22142816) ;(11111111010010011000001100100010) (-55476336) (-11959518) (-11-6-7-12-13-14) ;(00110010011001100100100101011110) (1936477240) (845564254) (3266495E) ;(11100010011011101000001000010100) (750690542) (-496074220) (-1-13-9-1-7-13-14-12) ;(11001000110001000111000100110001) (1873227275) (-926650063) (-3-7-3-11-8-14-12-15) ;(01100110000001111001001111011000) (-1840739214) (1711772632) (660793D8) ;(01101000100111111000110101101001) (-1394744393) (1755286889) (689F8D69) ;(11111010101011100011010000001011) (-524345765) (-89246709) (-5-5-1-12-11-15-5) ; +;192;(00110111010100011000101110100111) (-1865628945) (928091047) (37518BA7) ;(11110010100001100101111111100101) (-1536320033) (-226074651) (-13-7-9-100-1-11) ;(00011011101101000100111100111101) (-939919821) (464801597) (1BB44F3D) ;(00111011110011100100010011000101) (-1226492287) (1003373765) (3BCE44C5) ;(10101111111100101101000110001000) (144256478) (-1343041144) (-500-13-2-14-7-8) ;(10011000010101000100001011011010) (1689714498) (-1739308326) (-6-7-10-11-11-13-2-6) ;(10000101101110110101100010111101) (-778672559) (-2051319619) (-7-10-4-4-10-7-4-3) ;(00001100010100110001001101011101) (1424611535) (206771037) (C53135D) ; +;200;(01001001010111111000000010111100) (-1019783374) (1230995644) (495F80BC) ;(10000101001111001001010111011100) (-818214100) (-2059627044) (-7-10-12-3-6-10-2-4) ;(11011101111010010011011111110001) (89423279) (-571918351) (-2-2-1-6-12-80-15) ;(01000001100011111001010001010010) (-2003771526) (1099928658) (418F9452) ;(01110110011010010110010000011100) (189811090) (1986618396) (7669641C) ;(00001110011101010010010000110100) (1635222064) (242558004) (E752434) ;(10110000111111100001011110100111) (447119517) (-1325525081) (-4-150-1-14-8-5-9) ;(11010001101111101001101110001000) (-1325294874) (-776037496) (-2-14-4-1-6-4-7-8) ; +;208;(11001111101111111110101101110110) (-1725044916) (-809505930) (-30-40-1-4-8-10) ;(10000000101101001000101000010001) (-1280221813) (-2135651823) (-7-15-4-11-7-5-14-15) ;(10010011001001111100011010011110) (976416402) (-1826109794) (-6-12-13-8-3-9-6-2) ;(10111110110010100101101010001000) (2032161078) (-1094034808) (-4-1-3-5-10-5-7-8) ;(11100111000111010100001010001111) (1224430735) (-417512817) (-1-8-14-2-11-13-7-1) ;(10110011000110001101001001110101) (675857035) (-1290218891) (-4-12-14-7-2-13-8-11) ;(01010110111111101010001101011110) (530037888) (1459528542) (56FEA35E) ;(00010100000011001101011010111101) (-1891814021) (336385725) (140CD6BD) ; +;216;(10111000110010010011011111001110) (1431939586) (-1194772530) (-4-7-3-6-12-8-3-2) ;(01010100000011101110101000110110) (256081418) (1410263606) (540EEA36) ;(11101110010110001111110001111111) (2143365695) (-296158081) (-1-1-10-70-3-8-1) ;(01010110000101011100001110001001) (457857963) (1444266889) (5615C389) ;(01000110011010010010101011010000) (-1515258328) (1181297360) (46692AD0) ;(01011100011100010011111001010001) (1286753473) (1550925393) (5C713E51) ;(01101011101010010101111101100000) (-1090193404) (1806262112) (6BA95F60) ;(00001110000101100110011100110010) (1605463462) (236349234) (E166732) ; +;224;(10101100000011100100100111110101) (-226849365) (-1408349707) (-5-3-15-1-11-60-11) ;(11001001101001011110101001110110) (1963521980) (-911873418) (-3-6-5-10-1-5-8-10) ;(00000101101100000100110110000110) (554046606) (95440262) (5B04D86) ;(10110010100110101100011100010010) (616249292) (-1298479342) (-4-13-6-5-3-8-14-14) ;(01001110001101000100010010010011) (-532441425) (1312048275) (4E344493) ;(11010100010111101101111001001000) (-1055253374) (-731980216) (-2-11-10-1-2-1-11-8) ;(00111101101001111110010000100110) (-1038172546) (1034413094) (3DA7E426) ;(01001101011010101000100100110111) (-614979181) (1298827575) (4D6A8937) ; +;232;(10011001101101011001101111010100) (1819988890) (-1716151340) (-6-6-4-10-6-4-2-12) ;(00011111100010100101011101010001) (-552513775) (529160017) (1F8A5751) ;(10001011000001111110011001001110) (-33563718) (-1962416562) (-7-4-15-8-1-9-11-2) ;(10110100110111001101010010010110) (836858096) (-1260596074) (-4-11-2-3-2-11-6-10) ;(01000010111110000100111111100110) (-1871435902) (1123569638) (42F84FE6) ;(11110001110101011001010100101111) (-1612465321) (-237660881) (-14-2-10-6-10-13-1) ;(10100010111001011010010000101101) (-1358972075) (-1562008531) (-5-13-1-10-5-11-13-3) ;(00010101101100011010111100010110) (-1740639870) (363966230) (15B1AF16) ; +;240;(00010110100000000001001010111100) (-1654956022) (377492156) (168012BC) ;(00101110001001110110011000010010) (1316695726) (774333970) (2E276612) ;(10001001100100010011111010101010) (-191089582) (-1986969942) (-7-6-6-14-12-1-5-6) ;(11000110000001111010000110100010) (1413877456) (-972578398) (-3-9-15-8-5-14-5-14) ;(11111101100010110101010001001101) (-235125663) (-41200563) (-2-7-4-10-11-11-3) ;(10101110110000110001101001010011) (30320993) (-1362945453) (-5-1-3-12-14-5-10-13) ;(00100101111110010101100010101101) (281286959) (637098157) (25F958AD) ;(00110110010110010000001111101100) (-1963732838) (911803372) (365903EC) ; +;248;(00010100011101100001100001100101) (-1859553151) (343283813) (14761865) ;(01010110100011001100001000111011) (495657425) (1452065339) (568CC23B) ;(10110000001110000110001100000101) (385767275) (-1338481915) (-4-15-12-7-9-12-15-11) ;(11111011100111101011110110001010) (-430241166) (-73482870) (-4-6-1-4-2-7-6) ;(10100010010110010001000111010100) (-1404083406) (-1571221036) (-5-13-10-6-14-14-2-12) ;(10000000011011100011111110111011) (-1301889161) (-2140258373) (-7-15-9-1-120-4-5) ;(10011101111100110101001001100100) (-2055642986) (-1644998044) (-6-20-12-10-13-9-12) ;(11010110001010110011100000010100) (-870176458) (-701810668) (-2-9-13-4-12-7-14-12) ; + + ++---------------------------------------------------------+ +; Other Routing Usage Summary ; ++-----------------------------+---------------------------+ +; Other Routing Resource Type ; Usage ; ++-----------------------------+---------------------------+ +; Block interconnects ; 6,716 / 342,891 ( 2 % ) ; +; C16 interconnects ; 375 / 10,120 ( 4 % ) ; +; C4 interconnects ; 4,305 / 209,544 ( 2 % ) ; +; Direct links ; 341 / 342,891 ( < 1 % ) ; +; Global clocks ; 4 / 20 ( 20 % ) ; +; Local interconnects ; 1,184 / 119,088 ( < 1 % ) ; +; R24 interconnects ; 439 / 9,963 ( 4 % ) ; +; R4 interconnects ; 3,940 / 289,782 ( 1 % ) ; ++-----------------------------+---------------------------+ + + ++-----------------------------------------------------------------------------+ +; LAB Logic Elements ; ++---------------------------------------------+-------------------------------+ +; Number of Logic Elements (Average = 14.31) ; Number of LABs (Total = 156) ; ++---------------------------------------------+-------------------------------+ +; 1 ; 1 ; +; 2 ; 2 ; +; 3 ; 1 ; +; 4 ; 1 ; +; 5 ; 1 ; +; 6 ; 1 ; +; 7 ; 1 ; +; 8 ; 1 ; +; 9 ; 2 ; +; 10 ; 4 ; +; 11 ; 5 ; +; 12 ; 7 ; +; 13 ; 1 ; +; 14 ; 18 ; +; 15 ; 28 ; +; 16 ; 82 ; ++---------------------------------------------+-------------------------------+ + + ++--------------------------------------------------------------------+ +; LAB-wide Signals ; ++------------------------------------+-------------------------------+ +; LAB-wide Signals (Average = 2.23) ; Number of LABs (Total = 156) ; ++------------------------------------+-------------------------------+ +; 1 Async. clear ; 109 ; +; 1 Clock ; 129 ; +; 1 Clock enable ; 52 ; +; 1 Sync. clear ; 6 ; +; 1 Sync. load ; 28 ; +; 2 Async. clears ; 3 ; +; 2 Clock enables ; 12 ; +; 2 Clocks ; 9 ; ++------------------------------------+-------------------------------+ + + ++------------------------------------------------------------------------------+ +; LAB Signals Sourced ; ++----------------------------------------------+-------------------------------+ +; Number of Signals Sourced (Average = 21.70) ; Number of LABs (Total = 156) ; ++----------------------------------------------+-------------------------------+ +; 0 ; 1 ; +; 1 ; 0 ; +; 2 ; 0 ; +; 3 ; 1 ; +; 4 ; 1 ; +; 5 ; 0 ; +; 6 ; 1 ; +; 7 ; 1 ; +; 8 ; 0 ; +; 9 ; 0 ; +; 10 ; 2 ; +; 11 ; 0 ; +; 12 ; 3 ; +; 13 ; 2 ; +; 14 ; 4 ; +; 15 ; 2 ; +; 16 ; 17 ; +; 17 ; 3 ; +; 18 ; 5 ; +; 19 ; 4 ; +; 20 ; 9 ; +; 21 ; 6 ; +; 22 ; 7 ; +; 23 ; 18 ; +; 24 ; 14 ; +; 25 ; 17 ; +; 26 ; 9 ; +; 27 ; 11 ; +; 28 ; 3 ; +; 29 ; 5 ; +; 30 ; 2 ; +; 31 ; 3 ; +; 32 ; 5 ; ++----------------------------------------------+-------------------------------+ + + ++---------------------------------------------------------------------------------+ +; LAB Signals Sourced Out ; ++-------------------------------------------------+-------------------------------+ +; Number of Signals Sourced Out (Average = 9.19) ; Number of LABs (Total = 156) ; ++-------------------------------------------------+-------------------------------+ +; 0 ; 1 ; +; 1 ; 0 ; +; 2 ; 8 ; +; 3 ; 4 ; +; 4 ; 15 ; +; 5 ; 7 ; +; 6 ; 10 ; +; 7 ; 12 ; +; 8 ; 15 ; +; 9 ; 12 ; +; 10 ; 16 ; +; 11 ; 9 ; +; 12 ; 8 ; +; 13 ; 12 ; +; 14 ; 5 ; +; 15 ; 6 ; +; 16 ; 11 ; +; 17 ; 3 ; +; 18 ; 0 ; +; 19 ; 0 ; +; 20 ; 2 ; ++-------------------------------------------------+-------------------------------+ + + ++------------------------------------------------------------------------------+ +; LAB Distinct Inputs ; ++----------------------------------------------+-------------------------------+ +; Number of Distinct Inputs (Average = 19.24) ; Number of LABs (Total = 156) ; ++----------------------------------------------+-------------------------------+ +; 0 ; 0 ; +; 1 ; 0 ; +; 2 ; 0 ; +; 3 ; 2 ; +; 4 ; 3 ; +; 5 ; 4 ; +; 6 ; 1 ; +; 7 ; 3 ; +; 8 ; 4 ; +; 9 ; 1 ; +; 10 ; 2 ; +; 11 ; 2 ; +; 12 ; 9 ; +; 13 ; 4 ; +; 14 ; 7 ; +; 15 ; 4 ; +; 16 ; 9 ; +; 17 ; 4 ; +; 18 ; 11 ; +; 19 ; 7 ; +; 20 ; 7 ; +; 21 ; 10 ; +; 22 ; 8 ; +; 23 ; 5 ; +; 24 ; 5 ; +; 25 ; 5 ; +; 26 ; 12 ; +; 27 ; 4 ; +; 28 ; 3 ; +; 29 ; 2 ; +; 30 ; 2 ; +; 31 ; 3 ; +; 32 ; 6 ; +; 33 ; 5 ; +; 34 ; 1 ; ++----------------------------------------------+-------------------------------+ + + ++------------------------------------------+ +; I/O Rules Summary ; ++----------------------------------+-------+ +; I/O Rules Statistic ; Total ; ++----------------------------------+-------+ +; Total I/O Rules ; 30 ; +; Number of I/O Rules Passed ; 12 ; +; Number of I/O Rules Failed ; 0 ; +; Number of I/O Rules Unchecked ; 0 ; +; Number of I/O Rules Inapplicable ; 18 ; ++----------------------------------+-------+ + + ++-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; I/O Rules Details ; ++--------------+-----------+-----------------------------------+------------------------------------------------------------------------------------------------------+----------+--------------------------------------------------------------------------+---------------------+-------------------+ +; Status ; ID ; Category ; Rule Description ; Severity ; Information ; Area ; Extra Information ; ++--------------+-----------+-----------------------------------+------------------------------------------------------------------------------------------------------+----------+--------------------------------------------------------------------------+---------------------+-------------------+ +; Pass ; IO_000001 ; Capacity Checks ; Number of pins in an I/O bank should not exceed the number of locations available. ; Critical ; 0 such failures found. ; I/O ; ; +; Inapplicable ; IO_000002 ; Capacity Checks ; Number of clocks in an I/O bank should not exceed the number of clocks available. ; Critical ; No Global Signal assignments found. ; I/O ; ; +; Pass ; IO_000003 ; Capacity Checks ; Number of pins in a Vrefgroup should not exceed the number of locations available. ; Critical ; 0 such failures found. ; I/O ; ; +; Inapplicable ; IO_000004 ; Voltage Compatibility Checks ; The I/O bank should support the requested VCCIO. ; Critical ; No IOBANK_VCCIO assignments found. ; I/O ; ; +; Inapplicable ; IO_000005 ; Voltage Compatibility Checks ; The I/O bank should not have competing VREF values. ; Critical ; No VREF I/O Standard assignments found. ; I/O ; ; +; Pass ; IO_000006 ; Voltage Compatibility Checks ; The I/O bank should not have competing VCCIO values. ; Critical ; 0 such failures found. ; I/O ; ; +; Pass ; IO_000007 ; Valid Location Checks ; Checks for unavailable locations. ; Critical ; 0 such failures found. ; I/O ; ; +; Inapplicable ; IO_000008 ; Valid Location Checks ; Checks for reserved locations. ; Critical ; No reserved LogicLock region found. ; I/O ; ; +; Pass ; IO_000009 ; I/O Properties Checks for One I/O ; The location should support the requested I/O standard. ; Critical ; 0 such failures found. ; I/O ; ; +; Pass ; IO_000010 ; I/O Properties Checks for One I/O ; The location should support the requested I/O direction. ; Critical ; 0 such failures found. ; I/O ; ; +; Inapplicable ; IO_000011 ; I/O Properties Checks for One I/O ; The location should support the requested Current Strength. ; Critical ; No Current Strength assignments found. ; I/O ; ; +; Pass ; IO_000012 ; I/O Properties Checks for One I/O ; The location should support the requested On Chip Termination value. ; Critical ; 0 such failures found. ; I/O ; ; +; Inapplicable ; IO_000013 ; I/O Properties Checks for One I/O ; The location should support the requested Bus Hold value. ; Critical ; No Enable Bus-Hold Circuitry assignments found. ; I/O ; ; +; Inapplicable ; IO_000014 ; I/O Properties Checks for One I/O ; The location should support the requested Weak Pull Up value. ; Critical ; No Weak Pull-Up Resistor assignments found. ; I/O ; ; +; Pass ; IO_000015 ; I/O Properties Checks for One I/O ; The location should support the requested PCI Clamp Diode. ; Critical ; 0 such failures found. ; I/O ; ; +; Inapplicable ; IO_000018 ; I/O Properties Checks for One I/O ; The I/O standard should support the requested Current Strength. ; Critical ; No Current Strength assignments found. ; I/O ; ; +; Pass ; IO_000019 ; I/O Properties Checks for One I/O ; The I/O standard should support the requested On Chip Termination value. ; Critical ; 0 such failures found. ; I/O ; ; +; Pass ; IO_000020 ; I/O Properties Checks for One I/O ; The I/O standard should support the requested PCI Clamp Diode. ; Critical ; 0 such failures found. ; I/O ; ; +; Inapplicable ; IO_000021 ; I/O Properties Checks for One I/O ; The I/O standard should support the requested Weak Pull Up value. ; Critical ; No Weak Pull-Up Resistor assignments found. ; I/O ; ; +; Inapplicable ; IO_000022 ; I/O Properties Checks for One I/O ; The I/O standard should support the requested Bus Hold value. ; Critical ; No Enable Bus-Hold Circuitry assignments found. ; I/O ; ; +; Inapplicable ; IO_000023 ; I/O Properties Checks for One I/O ; The I/O standard should support the Open Drain value. ; Critical ; No open drain assignments found. ; I/O ; ; +; Pass ; IO_000024 ; I/O Properties Checks for One I/O ; The I/O direction should support the On Chip Termination value. ; Critical ; 0 such failures found. ; I/O ; ; +; Inapplicable ; IO_000026 ; I/O Properties Checks for One I/O ; On Chip Termination and Current Strength should not be used at the same time. ; Critical ; No Current Strength assignments found. ; I/O ; ; +; Inapplicable ; IO_000027 ; I/O Properties Checks for One I/O ; Weak Pull Up and Bus Hold should not be used at the same time. ; Critical ; No Enable Bus-Hold Circuitry or Weak Pull-Up Resistor assignments found. ; I/O ; ; +; Inapplicable ; IO_000045 ; I/O Properties Checks for One I/O ; The I/O standard should support the requested Slew Rate value. ; Critical ; No Slew Rate assignments found. ; I/O ; ; +; Inapplicable ; IO_000046 ; I/O Properties Checks for One I/O ; The location should support the requested Slew Rate value. ; Critical ; No Slew Rate assignments found. ; I/O ; ; +; Inapplicable ; IO_000047 ; I/O Properties Checks for One I/O ; On Chip Termination and Slew Rate should not be used at the same time. ; Critical ; No Slew Rate assignments found. ; I/O ; ; +; Pass ; IO_000033 ; Electromigration Checks ; Current density for consecutive I/Os should not exceed 240mA for row I/Os and 240mA for column I/Os. ; Critical ; 0 such failures found. ; I/O ; ; +; Inapplicable ; IO_000034 ; SI Related Distance Checks ; Single-ended outputs should be 5 LAB row(s) away from a differential I/O. ; High ; No Differential I/O Standard assignments found. ; I/O ; ; +; Inapplicable ; IO_000042 ; SI Related SSO Limit Checks ; No more than 20 outputs are allowed in a VREF group when VREF is being read from. ; High ; No VREF I/O Standard assignments found. ; I/O ; ; +; ---- ; ---- ; Disclaimer ; OCT rules are checked but not reported. ; None ; ---- ; On Chip Termination ; ; ++--------------+-----------+-----------------------------------+------------------------------------------------------------------------------------------------------+----------+--------------------------------------------------------------------------+---------------------+-------------------+ + + ++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; I/O Rules Matrix ; ++---------------------+--------------+--------------+--------------+--------------+--------------+-----------+--------------+--------------+-----------+-----------+--------------+--------------+--------------+--------------+--------------+--------------+--------------+--------------+--------------+--------------+--------------+--------------+--------------+--------------+--------------+--------------+--------------+-----------+--------------+--------------+ +; Pin/Rules ; IO_000001 ; IO_000002 ; IO_000003 ; IO_000004 ; IO_000005 ; IO_000006 ; IO_000007 ; IO_000008 ; IO_000009 ; IO_000010 ; IO_000011 ; IO_000012 ; IO_000013 ; IO_000014 ; IO_000015 ; IO_000018 ; IO_000019 ; IO_000020 ; IO_000021 ; IO_000022 ; IO_000023 ; IO_000024 ; IO_000026 ; IO_000027 ; IO_000045 ; IO_000046 ; IO_000047 ; IO_000033 ; IO_000034 ; IO_000042 ; ++---------------------+--------------+--------------+--------------+--------------+--------------+-----------+--------------+--------------+-----------+-----------+--------------+--------------+--------------+--------------+--------------+--------------+--------------+--------------+--------------+--------------+--------------+--------------+--------------+--------------+--------------+--------------+--------------+-----------+--------------+--------------+ +; Total Pass ; 118 ; 0 ; 118 ; 0 ; 0 ; 122 ; 118 ; 0 ; 122 ; 122 ; 0 ; 49 ; 0 ; 0 ; 31 ; 0 ; 49 ; 31 ; 0 ; 0 ; 0 ; 49 ; 0 ; 0 ; 0 ; 0 ; 0 ; 122 ; 0 ; 0 ; +; Total Unchecked ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; Total Inapplicable ; 4 ; 122 ; 4 ; 122 ; 122 ; 0 ; 4 ; 122 ; 0 ; 0 ; 122 ; 73 ; 122 ; 122 ; 91 ; 122 ; 73 ; 91 ; 122 ; 122 ; 122 ; 73 ; 122 ; 122 ; 122 ; 122 ; 122 ; 0 ; 122 ; 122 ; +; Total Fail ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; LEDG[0] ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; +; LEDG[1] ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; +; LEDG[2] ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; +; LEDG[3] ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; +; LEDG[4] ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; +; LEDG[5] ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; +; LEDG[6] ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; +; LEDG[7] ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; +; LEDR[0] ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; +; LEDR[1] ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; +; LEDR[2] ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; +; LEDR[3] ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; +; LEDR[4] ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; +; LEDR[5] ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; +; LEDR[6] ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; +; LEDR[7] ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; +; LEDR[8] ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; +; LEDR[9] ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; +; LEDR[10] ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; +; LEDR[11] ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; +; LEDR[12] ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; +; LEDR[13] ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; +; LEDR[14] ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; +; LEDR[15] ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; +; LEDR[16] ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; +; LEDR[17] ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; +; HEX0[0] ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; +; HEX0[1] ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; +; HEX0[2] ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; +; HEX0[3] ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; +; HEX0[4] ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; +; HEX0[5] ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; +; HEX0[6] ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; +; HEX1[0] ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; +; HEX1[1] ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; +; HEX1[2] ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; +; HEX1[3] ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; +; HEX1[4] ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; +; HEX1[5] ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; +; HEX1[6] ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; +; HEX2[0] ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; +; HEX2[1] ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; +; HEX2[2] ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; +; HEX2[3] ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; +; HEX2[4] ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; +; HEX2[5] ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; +; HEX2[6] ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; +; HEX3[0] ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; +; HEX3[1] ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; +; HEX3[2] ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; +; HEX3[3] ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; +; HEX3[4] ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; +; HEX3[5] ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; +; HEX3[6] ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; +; HEX4[0] ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; +; HEX4[1] ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; +; HEX4[2] ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; +; HEX4[3] ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; +; HEX4[4] ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; +; HEX4[5] ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; +; HEX4[6] ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; +; HEX5[0] ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; +; HEX5[1] ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; +; HEX5[2] ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; +; HEX5[3] ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; +; HEX5[4] ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; +; HEX5[5] ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; +; HEX5[6] ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; +; HEX6[0] ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; +; HEX6[1] ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; +; HEX6[2] ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; +; HEX6[3] ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; +; HEX6[4] ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; +; HEX6[5] ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; +; HEX6[6] ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; +; HEX7[0] ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; +; HEX7[1] ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; +; HEX7[2] ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; +; HEX7[3] ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; +; HEX7[4] ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; +; HEX7[5] ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; +; HEX7[6] ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; +; LCD_RS ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; +; LCD_RW ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; +; LCD_data[0] ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; +; LCD_data[1] ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; +; LCD_data[2] ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; +; LCD_data[3] ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; +; LCD_data[4] ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; +; LCD_data[5] ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; +; LCD_data[6] ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; +; LCD_data[7] ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; +; LCD_EN ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; +; LCD_ON ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; +; LCD_BLON ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; +; CLOCK_50 ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; +; SW[0] ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; +; KEY[1] ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; +; SW[1] ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; +; KEY[2] ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; +; SW[2] ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; +; KEY[3] ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; +; SW[3] ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; +; SW[4] ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; +; SW[5] ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; +; SW[6] ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; +; SW[7] ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; +; SW[8] ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; +; SW[9] ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; +; SW[10] ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; +; SW[11] ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; +; SW[12] ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; +; SW[13] ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; +; SW[14] ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; +; SW[15] ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; +; SW[16] ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; +; SW[17] ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; +; KEY[0] ; Pass ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Pass ; Inapplicable ; Pass ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; +; altera_reserved_tms ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; +; altera_reserved_tck ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; +; altera_reserved_tdi ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; +; altera_reserved_tdo ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; Pass ; Pass ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Inapplicable ; Pass ; Inapplicable ; Inapplicable ; ++---------------------+--------------+--------------+--------------+--------------+--------------+-----------+--------------+--------------+-----------+-----------+--------------+--------------+--------------+--------------+--------------+--------------+--------------+--------------+--------------+--------------+--------------+--------------+--------------+--------------+--------------+--------------+--------------+-----------+--------------+--------------+ + + ++---------------------------------------------------------------------------------------------+ +; Fitter Device Options ; ++------------------------------------------------------------------+--------------------------+ +; Option ; Setting ; ++------------------------------------------------------------------+--------------------------+ +; Enable user-supplied start-up clock (CLKUSR) ; Off ; +; Enable device-wide reset (DEV_CLRn) ; Off ; +; Enable device-wide output enable (DEV_OE) ; Off ; +; Enable INIT_DONE output ; Off ; +; Configuration scheme ; Active Serial ; +; Error detection CRC ; Off ; +; Enable open drain on CRC_ERROR pin ; Off ; +; Enable input tri-state on active configuration pins in user mode ; Off ; +; Configuration Voltage Level ; Auto ; +; Force Configuration Voltage Level ; Off ; +; nCEO ; As output driving ground ; +; Data[0] ; As input tri-stated ; +; Data[1]/ASDO ; As input tri-stated ; +; Data[7..2] ; Unreserved ; +; FLASH_nCE/nCSO ; As input tri-stated ; +; Other Active Parallel pins ; Unreserved ; +; DCLK ; As output driving ground ; +; Base pin-out file on sameframe device ; Off ; ++------------------------------------------------------------------+--------------------------+ + + ++------------------------------------+ +; Operating Settings and Conditions ; ++---------------------------+--------+ +; Setting ; Value ; ++---------------------------+--------+ +; Nominal Core Voltage ; 1.20 V ; +; Low Junction Temperature ; 0 �C ; +; High Junction Temperature ; 85 �C ; ++---------------------------+--------+ + + ++-----------------+ +; Fitter Messages ; ++-----------------+ +Warning (20028): Parallel compilation is not licensed and has been disabled +Info (119006): Selected device EP4CE115F29C7 for design "lights" +Info (21077): Core supply voltage is 1.2V +Info (21077): Low junction temperature is 0 degrees C +Info (21077): High junction temperature is 85 degrees C +Info (171003): Fitter is performing an Auto Fit compilation, which may decrease Fitter effort to reduce compilation time +Warning (292013): Feature LogicLock is only available with a valid subscription license. You can purchase a software subscription to gain full access to this feature. +Info (176444): Device migration not selected. If you intend to use device migration later, you may need to change the pin assignments as they may be incompatible with other devices + Info (176445): Device EP4CE40F29C7 is compatible + Info (176445): Device EP4CE40F29I7 is compatible + Info (176445): Device EP4CE30F29C7 is compatible + Info (176445): Device EP4CE30F29I7 is compatible + Info (176445): Device EP4CE55F29C7 is compatible + Info (176445): Device EP4CE55F29I7 is compatible + Info (176445): Device EP4CE75F29C7 is compatible + Info (176445): Device EP4CE75F29I7 is compatible + Info (176445): Device EP4CE115F29I7 is compatible +Info (169124): Fitter converted 5 user pins into dedicated programming pins + Info (169125): Pin ~ALTERA_ASDO_DATA1~ is reserved at location F4 + Info (169125): Pin ~ALTERA_FLASH_nCE_nCSO~ is reserved at location E2 + Info (169125): Pin ~ALTERA_DCLK~ is reserved at location P3 + Info (169125): Pin ~ALTERA_DATA0~ is reserved at location N7 + Info (169125): Pin ~ALTERA_nCEO~ is reserved at location P28 +Warning (15714): Some pins have incomplete I/O assignments. Refer to the I/O Assignment Warnings report for details +Info (176045): Design uses memory blocks. Violating setup or hold times of memory block address registers for either read or write operations could cause memory contents to be corrupted. Make sure that all memory block address registers meet the setup and hold time requirements. +Info (332164): Evaluating HDL-embedded SDC commands + Info (332165): Entity alt_jtag_atlantic + Info (332166): set_false_path -from [get_registers {*|alt_jtag_atlantic:*|jupdate}] -to [get_registers {*|alt_jtag_atlantic:*|jupdate1*}] + Info (332166): set_false_path -from [get_registers {*|alt_jtag_atlantic:*|rdata[*]}] -to [get_registers {*|alt_jtag_atlantic*|td_shift[*]}] + Info (332166): set_false_path -from [get_registers {*|alt_jtag_atlantic:*|rdata[*]}] -to [get_registers {*|alt_jtag_atlantic*|td_shift[*]}] + Info (332166): set_false_path -from [get_registers {*|alt_jtag_atlantic:*|rdata[*]}] -to [get_registers {*|alt_jtag_atlantic*|td_shift[*]}] + Info (332166): set_false_path -from [get_registers {*|alt_jtag_atlantic:*|rdata[*]}] -to [get_registers {*|alt_jtag_atlantic*|td_shift[*]}] + Info (332166): set_false_path -from [get_registers {*|alt_jtag_atlantic:*|rdata[*]}] -to [get_registers {*|alt_jtag_atlantic*|td_shift[*]}] + Info (332166): set_false_path -from [get_registers {*|alt_jtag_atlantic:*|rdata[*]}] -to [get_registers {*|alt_jtag_atlantic*|td_shift[*]}] + Info (332166): set_false_path -from [get_registers {*|alt_jtag_atlantic:*|rdata[*]}] -to [get_registers {*|alt_jtag_atlantic*|td_shift[*]}] + Info (332166): set_false_path -from [get_registers {*|alt_jtag_atlantic:*|rdata[*]}] -to [get_registers {*|alt_jtag_atlantic*|td_shift[*]}] + Info (332166): set_false_path -from [get_registers {*|alt_jtag_atlantic:*|read}] -to [get_registers {*|alt_jtag_atlantic:*|read1*}] + Info (332166): set_false_path -from [get_registers {*|alt_jtag_atlantic:*|read_req}] + Info (332166): set_false_path -from [get_registers {*|alt_jtag_atlantic:*|rvalid}] -to [get_registers {*|alt_jtag_atlantic*|td_shift[*]}] + Info (332166): set_false_path -from [get_registers {*|t_dav}] -to [get_registers {*|alt_jtag_atlantic:*|tck_t_dav}] + Info (332166): set_false_path -from [get_registers {*|alt_jtag_atlantic:*|user_saw_rvalid}] -to [get_registers {*|alt_jtag_atlantic:*|rvalid0*}] + Info (332166): set_false_path -from [get_registers {*|alt_jtag_atlantic:*|wdata[*]}] -to [get_registers {*}] + Info (332166): set_false_path -from [get_registers {*|alt_jtag_atlantic:*|wdata[*]}] -to [get_registers {*}] + Info (332166): set_false_path -from [get_registers {*|alt_jtag_atlantic:*|wdata[*]}] -to [get_registers {*}] + Info (332166): set_false_path -from [get_registers {*|alt_jtag_atlantic:*|wdata[*]}] -to [get_registers {*}] + Info (332166): set_false_path -from [get_registers {*|alt_jtag_atlantic:*|wdata[*]}] -to [get_registers {*}] + Info (332166): set_false_path -from [get_registers {*|alt_jtag_atlantic:*|wdata[*]}] -to [get_registers {*}] + Info (332166): set_false_path -from [get_registers {*|alt_jtag_atlantic:*|wdata[*]}] -to [get_registers {*}] + Info (332166): set_false_path -from [get_registers {*|alt_jtag_atlantic:*|wdata[*]}] -to [get_registers {*}] + Info (332166): set_false_path -from [get_registers {*|alt_jtag_atlantic:*|write}] -to [get_registers {*|alt_jtag_atlantic:*|write1*}] + Info (332166): set_false_path -from [get_registers {*|alt_jtag_atlantic:*|write_stalled}] -to [get_registers {*|alt_jtag_atlantic:*|t_ena*}] + Info (332166): set_false_path -from [get_registers {*|alt_jtag_atlantic:*|write_stalled}] -to [get_registers {*|alt_jtag_atlantic:*|t_pause*}] + Info (332166): set_false_path -from [get_registers {*|alt_jtag_atlantic:*|write_valid}] + Info (332165): Entity altera_std_synchronizer + Info (332166): set_false_path -to [get_keepers {*altera_std_synchronizer:*|din_s1}] + Info (332165): Entity sld_jtag_hub + Info (332166): create_clock -name altera_reserved_tck [get_ports {altera_reserved_tck}] -period 10MHz + Info (332166): set_clock_groups -asynchronous -group {altera_reserved_tck} +Critical Warning (332012): Synopsys Design Constraints File file not found: 'lights.sdc'. A Synopsys Design Constraints File is required by the TimeQuest Timing Analyzer to get proper timing constraints. Without it, the Compiler will not properly optimize the design. +Warning (332060): Node: CLOCK_50 was determined to be a clock but was found without an associated clock assignment. +Critical Warning (332168): The following clock transfers have no clock uncertainty assignment. For more accurate results, apply clock uncertainty assignments or use the derive_clock_uncertainty command. + Critical Warning (332169): From altera_reserved_tck (Rise) to altera_reserved_tck (Rise) (setup and hold) + Critical Warning (332169): From altera_reserved_tck (Rise) to altera_reserved_tck (Fall) (setup and hold) + Critical Warning (332169): From altera_reserved_tck (Fall) to altera_reserved_tck (Fall) (setup and hold) +Info (332129): Detected timing requirements -- optimizing circuit to achieve only the specified requirements +Info (332111): Found 1 clocks + Info (332111): Period Clock Name + Info (332111): ======== ============ + Info (332111): 100.000 altera_reserved_tck +Info (176353): Automatically promoted node CLOCK_50~input (placed in PIN Y2 (CLK2, DIFFCLK_1p)) + Info (176355): Automatically promoted destinations to use location or clock signal Global Clock CLKCTRL_G4 +Info (176353): Automatically promoted node altera_internal_jtag~TCKUTAP + Info (176355): Automatically promoted destinations to use location or clock signal Global Clock +Info (176353): Automatically promoted node nios_system:NiosII|altera_reset_controller:rst_controller|r_sync_rst + Info (176355): Automatically promoted destinations to use location or clock signal Global Clock + Info (176356): Following destination nodes may be non-global or may not use global or regional clocks + Info (176357): Destination node nios_system:NiosII|altera_reset_controller:rst_controller|WideOr0~0 + Info (176357): Destination node nios_system:NiosII|nios_system_nios2_processor:nios2_processor|W_rf_wren + Info (176357): Destination node nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_oci_debug:the_nios_system_nios2_processor_nios2_oci_debug|altera_std_synchronizer:the_altera_std_synchronizer|din_s1~0 +Info (176353): Automatically promoted node nios_system:NiosII|altera_reset_controller:rst_controller|merged_reset~0 + Info (176355): Automatically promoted destinations to use location or clock signal Global Clock +Info (176233): Starting register packing +Info (176235): Finished register packing + Extra Info (176218): Packed 8 registers into blocks of type EC +Warning (15709): Ignored I/O standard assignments to the following nodes + Warning (15710): Ignored I/O standard assignment to node "AUD_ADCDAT" + Warning (15710): Ignored I/O standard assignment to node "AUD_ADCLRCK" + Warning (15710): Ignored I/O standard assignment to node "AUD_BCLK" + Warning (15710): Ignored I/O standard assignment to node "AUD_DACDAT" + Warning (15710): Ignored I/O standard assignment to node "AUD_DACLRCK" + Warning (15710): Ignored I/O standard assignment to node "AUD_XCK" + Warning (15710): Ignored I/O standard assignment to node "CLOCK2_50" + Warning (15710): Ignored I/O standard assignment to node "CLOCK3_50" + Warning (15710): Ignored I/O standard assignment to node "DRAM_ADDR[0]" + Warning (15710): Ignored I/O standard assignment to node "DRAM_ADDR[10]" + Warning (15710): Ignored I/O standard assignment to node "DRAM_ADDR[11]" + Warning (15710): Ignored I/O standard assignment to node "DRAM_ADDR[12]" + Warning (15710): Ignored I/O standard assignment to node "DRAM_ADDR[1]" + Warning (15710): Ignored I/O standard assignment to node "DRAM_ADDR[2]" + Warning (15710): Ignored I/O standard assignment to node "DRAM_ADDR[3]" + Warning (15710): Ignored I/O standard assignment to node "DRAM_ADDR[4]" + Warning (15710): Ignored I/O standard assignment to node "DRAM_ADDR[5]" + Warning (15710): Ignored I/O standard assignment to node "DRAM_ADDR[6]" + Warning (15710): Ignored I/O standard assignment to node "DRAM_ADDR[7]" + Warning (15710): Ignored I/O standard assignment to node "DRAM_ADDR[8]" + Warning (15710): Ignored I/O standard assignment to node "DRAM_ADDR[9]" + Warning (15710): Ignored I/O standard assignment to node "DRAM_BA[0]" + Warning (15710): Ignored I/O standard assignment to node "DRAM_BA[1]" + Warning (15710): Ignored I/O standard assignment to node "DRAM_CAS_N" + Warning (15710): Ignored I/O standard assignment to node "DRAM_CKE" + Warning (15710): Ignored I/O standard assignment to node "DRAM_CLK" + Warning (15710): Ignored I/O standard assignment to node "DRAM_CS_N" + Warning (15710): Ignored I/O standard assignment to node "DRAM_DQM[0]" + Warning (15710): Ignored I/O standard assignment to node "DRAM_DQM[1]" + Warning (15710): Ignored I/O standard assignment to node "DRAM_DQM[2]" + Warning (15710): Ignored I/O standard assignment to node "DRAM_DQM[3]" + Warning (15710): Ignored I/O standard assignment to node "DRAM_DQ[0]" + Warning (15710): Ignored I/O standard assignment to node "DRAM_DQ[10]" + Warning (15710): Ignored I/O standard assignment to node "DRAM_DQ[11]" + Warning (15710): Ignored I/O standard assignment to node "DRAM_DQ[12]" + Warning (15710): Ignored I/O standard assignment to node "DRAM_DQ[13]" + Warning (15710): Ignored I/O standard assignment to node "DRAM_DQ[14]" + Warning (15710): Ignored I/O standard assignment to node "DRAM_DQ[15]" + Warning (15710): Ignored I/O standard assignment to node "DRAM_DQ[16]" + Warning (15710): Ignored I/O standard assignment to node "DRAM_DQ[17]" + Warning (15710): Ignored I/O standard assignment to node "DRAM_DQ[18]" + Warning (15710): Ignored I/O standard assignment to node "DRAM_DQ[19]" + Warning (15710): Ignored I/O standard assignment to node "DRAM_DQ[1]" + Warning (15710): Ignored I/O standard assignment to node "DRAM_DQ[20]" + Warning (15710): Ignored I/O standard assignment to node "DRAM_DQ[21]" + Warning (15710): Ignored I/O standard assignment to node "DRAM_DQ[22]" + Warning (15710): Ignored I/O standard assignment to node "DRAM_DQ[23]" + Warning (15710): Ignored I/O standard assignment to node "DRAM_DQ[24]" + Warning (15710): Ignored I/O standard assignment to node "DRAM_DQ[25]" + Warning (15710): Ignored I/O standard assignment to node "DRAM_DQ[26]" + Warning (15710): Ignored I/O standard assignment to node "DRAM_DQ[27]" + Warning (15710): Ignored I/O standard assignment to node "DRAM_DQ[28]" + Warning (15710): Ignored I/O standard assignment to node "DRAM_DQ[29]" + Warning (15710): Ignored I/O standard assignment to node "DRAM_DQ[2]" + Warning (15710): Ignored I/O standard assignment to node "DRAM_DQ[30]" + Warning (15710): Ignored I/O standard assignment to node "DRAM_DQ[31]" + Warning (15710): Ignored I/O standard assignment to node "DRAM_DQ[3]" + Warning (15710): Ignored I/O standard assignment to node "DRAM_DQ[4]" + Warning (15710): Ignored I/O standard assignment to node "DRAM_DQ[5]" + Warning (15710): Ignored I/O standard assignment to node "DRAM_DQ[6]" + Warning (15710): Ignored I/O standard assignment to node "DRAM_DQ[7]" + Warning (15710): Ignored I/O standard assignment to node "DRAM_DQ[8]" + Warning (15710): Ignored I/O standard assignment to node "DRAM_DQ[9]" + Warning (15710): Ignored I/O standard assignment to node "DRAM_RAS_N" + Warning (15710): Ignored I/O standard assignment to node "DRAM_WE_N" + Warning (15710): Ignored I/O standard assignment to node "EEP_I2C_SCLK" + Warning (15710): Ignored I/O standard assignment to node "EEP_I2C_SDAT" + Warning (15710): Ignored I/O standard assignment to node "ENET0_GTX_CLK" + Warning (15710): Ignored I/O standard assignment to node "ENET0_INT_N" + Warning (15710): Ignored I/O standard assignment to node "ENET0_LINK100" + Warning (15710): Ignored I/O standard assignment to node "ENET0_MDC" + Warning (15710): Ignored I/O standard assignment to node "ENET0_MDIO" + Warning (15710): Ignored I/O standard assignment to node "ENET0_RST_N" + Warning (15710): Ignored I/O standard assignment to node "ENET0_RX_CLK" + Warning (15710): Ignored I/O standard assignment to node "ENET0_RX_COL" + Warning (15710): Ignored I/O standard assignment to node "ENET0_RX_CRS" + Warning (15710): Ignored I/O standard assignment to node "ENET0_RX_DATA[0]" + Warning (15710): Ignored I/O standard assignment to node "ENET0_RX_DATA[1]" + Warning (15710): Ignored I/O standard assignment to node "ENET0_RX_DATA[2]" + Warning (15710): Ignored I/O standard assignment to node "ENET0_RX_DATA[3]" + Warning (15710): Ignored I/O standard assignment to node "ENET0_RX_DV" + Warning (15710): Ignored I/O standard assignment to node "ENET0_RX_ER" + Warning (15710): Ignored I/O standard assignment to node "ENET0_TX_CLK" + Warning (15710): Ignored I/O standard assignment to node "ENET0_TX_DATA[0]" + Warning (15710): Ignored I/O standard assignment to node "ENET0_TX_DATA[1]" + Warning (15710): Ignored I/O standard assignment to node "ENET0_TX_DATA[2]" + Warning (15710): Ignored I/O standard assignment to node "ENET0_TX_DATA[3]" + Warning (15710): Ignored I/O standard assignment to node "ENET0_TX_EN" + Warning (15710): Ignored I/O standard assignment to node "ENET0_TX_ER" + Warning (15710): Ignored I/O standard assignment to node "ENET1_GTX_CLK" + Warning (15710): Ignored I/O standard assignment to node "ENET1_INT_N" + Warning (15710): Ignored I/O standard assignment to node "ENET1_LINK100" + Warning (15710): Ignored I/O standard assignment to node "ENET1_MDC" + Warning (15710): Ignored I/O standard assignment to node "ENET1_MDIO" + Warning (15710): Ignored I/O standard assignment to node "ENET1_RST_N" + Warning (15710): Ignored I/O standard assignment to node "ENET1_RX_CLK" + Warning (15710): Ignored I/O standard assignment to node "ENET1_RX_COL" + Warning (15710): Ignored I/O standard assignment to node "ENET1_RX_CRS" + Warning (15710): Ignored I/O standard assignment to node "ENET1_RX_DATA[0]" + Warning (15710): Ignored I/O standard assignment to node "ENET1_RX_DATA[1]" + Warning (15710): Ignored I/O standard assignment to node "ENET1_RX_DATA[2]" + Warning (15710): Ignored I/O standard assignment to node "ENET1_RX_DATA[3]" + Warning (15710): Ignored I/O standard assignment to node "ENET1_RX_DV" + Warning (15710): Ignored I/O standard assignment to node "ENET1_RX_ER" + Warning (15710): Ignored I/O standard assignment to node "ENET1_TX_CLK" + Warning (15710): Ignored I/O standard assignment to node "ENET1_TX_DATA[0]" + Warning (15710): Ignored I/O standard assignment to node "ENET1_TX_DATA[1]" + Warning (15710): Ignored I/O standard assignment to node "ENET1_TX_DATA[2]" + Warning (15710): Ignored I/O standard assignment to node "ENET1_TX_DATA[3]" + Warning (15710): Ignored I/O standard assignment to node "ENET1_TX_EN" + Warning (15710): Ignored I/O standard assignment to node "ENET1_TX_ER" + Warning (15710): Ignored I/O standard assignment to node "ENETCLK_25" + Warning (15710): Ignored I/O standard assignment to node "EX_IO[0]" + Warning (15710): Ignored I/O standard assignment to node "EX_IO[1]" + Warning (15710): Ignored I/O standard assignment to node "EX_IO[2]" + Warning (15710): Ignored I/O standard assignment to node "EX_IO[3]" + Warning (15710): Ignored I/O standard assignment to node "EX_IO[4]" + Warning (15710): Ignored I/O standard assignment to node "EX_IO[5]" + Warning (15710): Ignored I/O standard assignment to node "EX_IO[6]" + Warning (15710): Ignored I/O standard assignment to node "FL_ADDR[0]" + Warning (15710): Ignored I/O standard assignment to node "FL_ADDR[10]" + Warning (15710): Ignored I/O standard assignment to node "FL_ADDR[11]" + Warning (15710): Ignored I/O standard assignment to node "FL_ADDR[12]" + Warning (15710): Ignored I/O standard assignment to node "FL_ADDR[13]" + Warning (15710): Ignored I/O standard assignment to node "FL_ADDR[14]" + Warning (15710): Ignored I/O standard assignment to node "FL_ADDR[15]" + Warning (15710): Ignored I/O standard assignment to node "FL_ADDR[16]" + Warning (15710): Ignored I/O standard assignment to node "FL_ADDR[17]" + Warning (15710): Ignored I/O standard assignment to node "FL_ADDR[18]" + Warning (15710): Ignored I/O standard assignment to node "FL_ADDR[19]" + Warning (15710): Ignored I/O standard assignment to node "FL_ADDR[1]" + Warning (15710): Ignored I/O standard assignment to node "FL_ADDR[20]" + Warning (15710): Ignored I/O standard assignment to node "FL_ADDR[21]" + Warning (15710): Ignored I/O standard assignment to node "FL_ADDR[22]" + Warning (15710): Ignored I/O standard assignment to node "FL_ADDR[2]" + Warning (15710): Ignored I/O standard assignment to node "FL_ADDR[3]" + Warning (15710): Ignored I/O standard assignment to node "FL_ADDR[4]" + Warning (15710): Ignored I/O standard assignment to node "FL_ADDR[5]" + Warning (15710): Ignored I/O standard assignment to node "FL_ADDR[6]" + Warning (15710): Ignored I/O standard assignment to node "FL_ADDR[7]" + Warning (15710): Ignored I/O standard assignment to node "FL_ADDR[8]" + Warning (15710): Ignored I/O standard assignment to node "FL_ADDR[9]" + Warning (15710): Ignored I/O standard assignment to node "FL_CE_N" + Warning (15710): Ignored I/O standard assignment to node "FL_DQ[0]" + Warning (15710): Ignored I/O standard assignment to node "FL_DQ[1]" + Warning (15710): Ignored I/O standard assignment to node "FL_DQ[2]" + Warning (15710): Ignored I/O standard assignment to node "FL_DQ[3]" + Warning (15710): Ignored I/O standard assignment to node "FL_DQ[4]" + Warning (15710): Ignored I/O standard assignment to node "FL_DQ[5]" + Warning (15710): Ignored I/O standard assignment to node "FL_DQ[6]" + Warning (15710): Ignored I/O standard assignment to node "FL_DQ[7]" + Warning (15710): Ignored I/O standard assignment to node "FL_OE_N" + Warning (15710): Ignored I/O standard assignment to node "FL_RST_N" + Warning (15710): Ignored I/O standard assignment to node "FL_RY" + Warning (15710): Ignored I/O standard assignment to node "FL_WE_N" + Warning (15710): Ignored I/O standard assignment to node "FL_WP_N" + Warning (15710): Ignored I/O standard assignment to node "GPIO[0]" + Warning (15710): Ignored I/O standard assignment to node "GPIO[10]" + Warning (15710): Ignored I/O standard assignment to node "GPIO[11]" + Warning (15710): Ignored I/O standard assignment to node "GPIO[12]" + Warning (15710): Ignored I/O standard assignment to node "GPIO[13]" + Warning (15710): Ignored I/O standard assignment to node "GPIO[14]" + Warning (15710): Ignored I/O standard assignment to node "GPIO[15]" + Warning (15710): Ignored I/O standard assignment to node "GPIO[16]" + Warning (15710): Ignored I/O standard assignment to node "GPIO[17]" + Warning (15710): Ignored I/O standard assignment to node "GPIO[18]" + Warning (15710): Ignored I/O standard assignment to node "GPIO[19]" + Warning (15710): Ignored I/O standard assignment to node "GPIO[1]" + Warning (15710): Ignored I/O standard assignment to node "GPIO[20]" + Warning (15710): Ignored I/O standard assignment to node "GPIO[21]" + Warning (15710): Ignored I/O standard assignment to node "GPIO[22]" + Warning (15710): Ignored I/O standard assignment to node "GPIO[23]" + Warning (15710): Ignored I/O standard assignment to node "GPIO[24]" + Warning (15710): Ignored I/O standard assignment to node "GPIO[25]" + Warning (15710): Ignored I/O standard assignment to node "GPIO[26]" + Warning (15710): Ignored I/O standard assignment to node "GPIO[27]" + Warning (15710): Ignored I/O standard assignment to node "GPIO[28]" + Warning (15710): Ignored I/O standard assignment to node "GPIO[29]" + Warning (15710): Ignored I/O standard assignment to node "GPIO[2]" + Warning (15710): Ignored I/O standard assignment to node "GPIO[30]" + Warning (15710): Ignored I/O standard assignment to node "GPIO[31]" + Warning (15710): Ignored I/O standard assignment to node "GPIO[32]" + Warning (15710): Ignored I/O standard assignment to node "GPIO[33]" + Warning (15710): Ignored I/O standard assignment to node "GPIO[34]" + Warning (15710): Ignored I/O standard assignment to node "GPIO[35]" + Warning (15710): Ignored I/O standard assignment to node "GPIO[3]" + Warning (15710): Ignored I/O standard assignment to node "GPIO[4]" + Warning (15710): Ignored I/O standard assignment to node "GPIO[5]" + Warning (15710): Ignored I/O standard assignment to node "GPIO[6]" + Warning (15710): Ignored I/O standard assignment to node "GPIO[7]" + Warning (15710): Ignored I/O standard assignment to node "GPIO[8]" + Warning (15710): Ignored I/O standard assignment to node "GPIO[9]" + Warning (15710): Ignored I/O standard assignment to node "HSMC_CLKIN0" + Warning (15710): Ignored I/O standard assignment to node "HSMC_CLKIN_N1" + Warning (15710): Ignored I/O standard assignment to node "HSMC_CLKIN_N2" + Warning (15710): Ignored I/O standard assignment to node "HSMC_CLKIN_P1" + Warning (15710): Ignored I/O standard assignment to node "HSMC_CLKIN_P2" + Warning (15710): Ignored I/O standard assignment to node "HSMC_CLKOUT0" + Warning (15710): Ignored I/O standard assignment to node "HSMC_CLKOUT_N1" + Warning (15710): Ignored I/O standard assignment to node "HSMC_CLKOUT_N2" + Warning (15710): Ignored I/O standard assignment to node "HSMC_CLKOUT_P1" + Warning (15710): Ignored I/O standard assignment to node "HSMC_CLKOUT_P2" + Warning (15710): Ignored I/O standard assignment to node "HSMC_D[0]" + Warning (15710): Ignored I/O standard assignment to node "HSMC_D[1]" + Warning (15710): Ignored I/O standard assignment to node "HSMC_D[2]" + Warning (15710): Ignored I/O standard assignment to node "HSMC_D[3]" + Warning (15710): Ignored I/O standard assignment to node "HSMC_RX_D_N[0]" + Warning (15710): Ignored I/O standard assignment to node "HSMC_RX_D_N[10]" + Warning (15710): Ignored I/O standard assignment to node "HSMC_RX_D_N[11]" + Warning (15710): Ignored I/O standard assignment to node "HSMC_RX_D_N[12]" + Warning (15710): Ignored I/O standard assignment to node "HSMC_RX_D_N[13]" + Warning (15710): Ignored I/O standard assignment to node "HSMC_RX_D_N[14]" + Warning (15710): Ignored I/O standard assignment to node "HSMC_RX_D_N[15]" + Warning (15710): Ignored I/O standard assignment to node "HSMC_RX_D_N[16]" + Warning (15710): Ignored I/O standard assignment to node "HSMC_RX_D_N[1]" + Warning (15710): Ignored I/O standard assignment to node "HSMC_RX_D_N[2]" + Warning (15710): Ignored I/O standard assignment to node "HSMC_RX_D_N[3]" + Warning (15710): Ignored I/O standard assignment to node "HSMC_RX_D_N[4]" + Warning (15710): Ignored I/O standard assignment to node "HSMC_RX_D_N[5]" + Warning (15710): Ignored I/O standard assignment to node "HSMC_RX_D_N[6]" + Warning (15710): Ignored I/O standard assignment to node "HSMC_RX_D_N[7]" + Warning (15710): Ignored I/O standard assignment to node "HSMC_RX_D_N[8]" + Warning (15710): Ignored I/O standard assignment to node "HSMC_RX_D_N[9]" + Warning (15710): Ignored I/O standard assignment to node "HSMC_RX_D_P[0]" + Warning (15710): Ignored I/O standard assignment to node "HSMC_RX_D_P[10]" + Warning (15710): Ignored I/O standard assignment to node "HSMC_RX_D_P[11]" + Warning (15710): Ignored I/O standard assignment to node "HSMC_RX_D_P[12]" + Warning (15710): Ignored I/O standard assignment to node "HSMC_RX_D_P[13]" + Warning (15710): Ignored I/O standard assignment to node "HSMC_RX_D_P[14]" + Warning (15710): Ignored I/O standard assignment to node "HSMC_RX_D_P[15]" + Warning (15710): Ignored I/O standard assignment to node "HSMC_RX_D_P[16]" + Warning (15710): Ignored I/O standard assignment to node "HSMC_RX_D_P[1]" + Warning (15710): Ignored I/O standard assignment to node "HSMC_RX_D_P[2]" + Warning (15710): Ignored I/O standard assignment to node "HSMC_RX_D_P[3]" + Warning (15710): Ignored I/O standard assignment to node "HSMC_RX_D_P[4]" + Warning (15710): Ignored I/O standard assignment to node "HSMC_RX_D_P[5]" + Warning (15710): Ignored I/O standard assignment to node "HSMC_RX_D_P[6]" + Warning (15710): Ignored I/O standard assignment to node "HSMC_RX_D_P[7]" + Warning (15710): Ignored I/O standard assignment to node "HSMC_RX_D_P[8]" + Warning (15710): Ignored I/O standard assignment to node "HSMC_RX_D_P[9]" + Warning (15710): Ignored I/O standard assignment to node "HSMC_TX_D_N[0]" + Warning (15710): Ignored I/O standard assignment to node "HSMC_TX_D_N[10]" + Warning (15710): Ignored I/O standard assignment to node "HSMC_TX_D_N[11]" + Warning (15710): Ignored I/O standard assignment to node "HSMC_TX_D_N[12]" + Warning (15710): Ignored I/O standard assignment to node "HSMC_TX_D_N[13]" + Warning (15710): Ignored I/O standard assignment to node "HSMC_TX_D_N[14]" + Warning (15710): Ignored I/O standard assignment to node "HSMC_TX_D_N[15]" + Warning (15710): Ignored I/O standard assignment to node "HSMC_TX_D_N[16]" + Warning (15710): Ignored I/O standard assignment to node "HSMC_TX_D_N[1]" + Warning (15710): Ignored I/O standard assignment to node "HSMC_TX_D_N[2]" + Warning (15710): Ignored I/O standard assignment to node "HSMC_TX_D_N[3]" + Warning (15710): Ignored I/O standard assignment to node "HSMC_TX_D_N[4]" + Warning (15710): Ignored I/O standard assignment to node "HSMC_TX_D_N[5]" + Warning (15710): Ignored I/O standard assignment to node "HSMC_TX_D_N[6]" + Warning (15710): Ignored I/O standard assignment to node "HSMC_TX_D_N[7]" + Warning (15710): Ignored I/O standard assignment to node "HSMC_TX_D_N[8]" + Warning (15710): Ignored I/O standard assignment to node "HSMC_TX_D_N[9]" + Warning (15710): Ignored I/O standard assignment to node "HSMC_TX_D_P[0]" + Warning (15710): Ignored I/O standard assignment to node "HSMC_TX_D_P[10]" + Warning (15710): Ignored I/O standard assignment to node "HSMC_TX_D_P[11]" + Warning (15710): Ignored I/O standard assignment to node "HSMC_TX_D_P[12]" + Warning (15710): Ignored I/O standard assignment to node "HSMC_TX_D_P[13]" + Warning (15710): Ignored I/O standard assignment to node "HSMC_TX_D_P[14]" + Warning (15710): Ignored I/O standard assignment to node "HSMC_TX_D_P[15]" + Warning (15710): Ignored I/O standard assignment to node "HSMC_TX_D_P[16]" + Warning (15710): Ignored I/O standard assignment to node "HSMC_TX_D_P[1]" + Warning (15710): Ignored I/O standard assignment to node "HSMC_TX_D_P[2]" + Warning (15710): Ignored I/O standard assignment to node "HSMC_TX_D_P[3]" + Warning (15710): Ignored I/O standard assignment to node "HSMC_TX_D_P[4]" + Warning (15710): Ignored I/O standard assignment to node "HSMC_TX_D_P[5]" + Warning (15710): Ignored I/O standard assignment to node "HSMC_TX_D_P[6]" + Warning (15710): Ignored I/O standard assignment to node "HSMC_TX_D_P[7]" + Warning (15710): Ignored I/O standard assignment to node "HSMC_TX_D_P[8]" + Warning (15710): Ignored I/O standard assignment to node "HSMC_TX_D_P[9]" + Warning (15710): Ignored I/O standard assignment to node "I2C_SCLK" + Warning (15710): Ignored I/O standard assignment to node "I2C_SDAT" + Warning (15710): Ignored I/O standard assignment to node "IRDA_RXD" + Warning (15710): Ignored I/O standard assignment to node "LEDG[8]" + Warning (15710): Ignored I/O standard assignment to node "OTG_ADDR[0]" + Warning (15710): Ignored I/O standard assignment to node "OTG_ADDR[1]" + Warning (15710): Ignored I/O standard assignment to node "OTG_CS_N" + Warning (15710): Ignored I/O standard assignment to node "OTG_DACK_N[0]" + Warning (15710): Ignored I/O standard assignment to node "OTG_DACK_N[1]" + Warning (15710): Ignored I/O standard assignment to node "OTG_DATA[0]" + Warning (15710): Ignored I/O standard assignment to node "OTG_DATA[10]" + Warning (15710): Ignored I/O standard assignment to node "OTG_DATA[11]" + Warning (15710): Ignored I/O standard assignment to node "OTG_DATA[12]" + Warning (15710): Ignored I/O standard assignment to node "OTG_DATA[13]" + Warning (15710): Ignored I/O standard assignment to node "OTG_DATA[14]" + Warning (15710): Ignored I/O standard assignment to node "OTG_DATA[15]" + Warning (15710): Ignored I/O standard assignment to node "OTG_DATA[1]" + Warning (15710): Ignored I/O standard assignment to node "OTG_DATA[2]" + Warning (15710): Ignored I/O standard assignment to node "OTG_DATA[3]" + Warning (15710): Ignored I/O standard assignment to node "OTG_DATA[4]" + Warning (15710): Ignored I/O standard assignment to node "OTG_DATA[5]" + Warning (15710): Ignored I/O standard assignment to node "OTG_DATA[6]" + Warning (15710): Ignored I/O standard assignment to node "OTG_DATA[7]" + Warning (15710): Ignored I/O standard assignment to node "OTG_DATA[8]" + Warning (15710): Ignored I/O standard assignment to node "OTG_DATA[9]" + Warning (15710): Ignored I/O standard assignment to node "OTG_DREQ[0]" + Warning (15710): Ignored I/O standard assignment to node "OTG_DREQ[1]" + Warning (15710): Ignored I/O standard assignment to node "OTG_FSPEED" + Warning (15710): Ignored I/O standard assignment to node "OTG_INT[0]" + Warning (15710): Ignored I/O standard assignment to node "OTG_INT[1]" + Warning (15710): Ignored I/O standard assignment to node "OTG_LSPEED" + Warning (15710): Ignored I/O standard assignment to node "OTG_RD_N" + Warning (15710): Ignored I/O standard assignment to node "OTG_RST_N" + Warning (15710): Ignored I/O standard assignment to node "OTG_WR_N" + Warning (15710): Ignored I/O standard assignment to node "PS2_CLK" + Warning (15710): Ignored I/O standard assignment to node "PS2_CLK2" + Warning (15710): Ignored I/O standard assignment to node "PS2_DAT" + Warning (15710): Ignored I/O standard assignment to node "PS2_DAT2" + Warning (15710): Ignored I/O standard assignment to node "SD_CLK" + Warning (15710): Ignored I/O standard assignment to node "SD_CMD" + Warning (15710): Ignored I/O standard assignment to node "SD_DAT[0]" + Warning (15710): Ignored I/O standard assignment to node "SD_DAT[1]" + Warning (15710): Ignored I/O standard assignment to node "SD_DAT[2]" + Warning (15710): Ignored I/O standard assignment to node "SD_DAT[3]" + Warning (15710): Ignored I/O standard assignment to node "SD_WP_N" + Warning (15710): Ignored I/O standard assignment to node "SMA_CLKIN" + Warning (15710): Ignored I/O standard assignment to node "SMA_CLKOUT" + Warning (15710): Ignored I/O standard assignment to node "SRAM_ADDR[0]" + Warning (15710): Ignored I/O standard assignment to node "SRAM_ADDR[10]" + Warning (15710): Ignored I/O standard assignment to node "SRAM_ADDR[11]" + Warning (15710): Ignored I/O standard assignment to node "SRAM_ADDR[12]" + Warning (15710): Ignored I/O standard assignment to node "SRAM_ADDR[13]" + Warning (15710): Ignored I/O standard assignment to node "SRAM_ADDR[14]" + Warning (15710): Ignored I/O standard assignment to node "SRAM_ADDR[15]" + Warning (15710): Ignored I/O standard assignment to node "SRAM_ADDR[16]" + Warning (15710): Ignored I/O standard assignment to node "SRAM_ADDR[17]" + Warning (15710): Ignored I/O standard assignment to node "SRAM_ADDR[18]" + Warning (15710): Ignored I/O standard assignment to node "SRAM_ADDR[19]" + Warning (15710): Ignored I/O standard assignment to node "SRAM_ADDR[1]" + Warning (15710): Ignored I/O standard assignment to node "SRAM_ADDR[2]" + Warning (15710): Ignored I/O standard assignment to node "SRAM_ADDR[3]" + Warning (15710): Ignored I/O standard assignment to node "SRAM_ADDR[4]" + Warning (15710): Ignored I/O standard assignment to node "SRAM_ADDR[5]" + Warning (15710): Ignored I/O standard assignment to node "SRAM_ADDR[6]" + Warning (15710): Ignored I/O standard assignment to node "SRAM_ADDR[7]" + Warning (15710): Ignored I/O standard assignment to node "SRAM_ADDR[8]" + Warning (15710): Ignored I/O standard assignment to node "SRAM_ADDR[9]" + Warning (15710): Ignored I/O standard assignment to node "SRAM_CE_N" + Warning (15710): Ignored I/O standard assignment to node "SRAM_DQ[0]" + Warning (15710): Ignored I/O standard assignment to node "SRAM_DQ[10]" + Warning (15710): Ignored I/O standard assignment to node "SRAM_DQ[11]" + Warning (15710): Ignored I/O standard assignment to node "SRAM_DQ[12]" + Warning (15710): Ignored I/O standard assignment to node "SRAM_DQ[13]" + Warning (15710): Ignored I/O standard assignment to node "SRAM_DQ[14]" + Warning (15710): Ignored I/O standard assignment to node "SRAM_DQ[15]" + Warning (15710): Ignored I/O standard assignment to node "SRAM_DQ[1]" + Warning (15710): Ignored I/O standard assignment to node "SRAM_DQ[2]" + Warning (15710): Ignored I/O standard assignment to node "SRAM_DQ[3]" + Warning (15710): Ignored I/O standard assignment to node "SRAM_DQ[4]" + Warning (15710): Ignored I/O standard assignment to node "SRAM_DQ[5]" + Warning (15710): Ignored I/O standard assignment to node "SRAM_DQ[6]" + Warning (15710): Ignored I/O standard assignment to node "SRAM_DQ[7]" + Warning (15710): Ignored I/O standard assignment to node "SRAM_DQ[8]" + Warning (15710): Ignored I/O standard assignment to node "SRAM_DQ[9]" + Warning (15710): Ignored I/O standard assignment to node "SRAM_LB_N" + Warning (15710): Ignored I/O standard assignment to node "SRAM_OE_N" + Warning (15710): Ignored I/O standard assignment to node "SRAM_UB_N" + Warning (15710): Ignored I/O standard assignment to node "SRAM_WE_N" + Warning (15710): Ignored I/O standard assignment to node "TD_CLK27" + Warning (15710): Ignored I/O standard assignment to node "TD_DATA[0]" + Warning (15710): Ignored I/O standard assignment to node "TD_DATA[1]" + Warning (15710): Ignored I/O standard assignment to node "TD_DATA[2]" + Warning (15710): Ignored I/O standard assignment to node "TD_DATA[3]" + Warning (15710): Ignored I/O standard assignment to node "TD_DATA[4]" + Warning (15710): Ignored I/O standard assignment to node "TD_DATA[5]" + Warning (15710): Ignored I/O standard assignment to node "TD_DATA[6]" + Warning (15710): Ignored I/O standard assignment to node "TD_DATA[7]" + Warning (15710): Ignored I/O standard assignment to node "TD_HS" + Warning (15710): Ignored I/O standard assignment to node "TD_RESET_N" + Warning (15710): Ignored I/O standard assignment to node "TD_VS" + Warning (15710): Ignored I/O standard assignment to node "UART_CTS" + Warning (15710): Ignored I/O standard assignment to node "UART_RTS" + Warning (15710): Ignored I/O standard assignment to node "UART_RXD" + Warning (15710): Ignored I/O standard assignment to node "UART_TXD" + Warning (15710): Ignored I/O standard assignment to node "VGA_BLANK_N" + Warning (15710): Ignored I/O standard assignment to node "VGA_B[0]" + Warning (15710): Ignored I/O standard assignment to node "VGA_B[1]" + Warning (15710): Ignored I/O standard assignment to node "VGA_B[2]" + Warning (15710): Ignored I/O standard assignment to node "VGA_B[3]" + Warning (15710): Ignored I/O standard assignment to node "VGA_B[4]" + Warning (15710): Ignored I/O standard assignment to node "VGA_B[5]" + Warning (15710): Ignored I/O standard assignment to node "VGA_B[6]" + Warning (15710): Ignored I/O standard assignment to node "VGA_B[7]" + Warning (15710): Ignored I/O standard assignment to node "VGA_CLK" + Warning (15710): Ignored I/O standard assignment to node "VGA_G[0]" + Warning (15710): Ignored I/O standard assignment to node "VGA_G[1]" + Warning (15710): Ignored I/O standard assignment to node "VGA_G[2]" + Warning (15710): Ignored I/O standard assignment to node "VGA_G[3]" + Warning (15710): Ignored I/O standard assignment to node "VGA_G[4]" + Warning (15710): Ignored I/O standard assignment to node "VGA_G[5]" + Warning (15710): Ignored I/O standard assignment to node "VGA_G[6]" + Warning (15710): Ignored I/O standard assignment to node "VGA_G[7]" + Warning (15710): Ignored I/O standard assignment to node "VGA_HS" + Warning (15710): Ignored I/O standard assignment to node "VGA_R[0]" + Warning (15710): Ignored I/O standard assignment to node "VGA_R[1]" + Warning (15710): Ignored I/O standard assignment to node "VGA_R[2]" + Warning (15710): Ignored I/O standard assignment to node "VGA_R[3]" + Warning (15710): Ignored I/O standard assignment to node "VGA_R[4]" + Warning (15710): Ignored I/O standard assignment to node "VGA_R[5]" + Warning (15710): Ignored I/O standard assignment to node "VGA_R[6]" + Warning (15710): Ignored I/O standard assignment to node "VGA_R[7]" + Warning (15710): Ignored I/O standard assignment to node "VGA_SYNC_N" + Warning (15710): Ignored I/O standard assignment to node "VGA_VS" +Warning (15705): Ignored locations or region assignments to the following nodes + Warning (15706): Node "AUD_ADCDAT" is assigned to location or region, but does not exist in design + Warning (15706): Node "AUD_ADCLRCK" is assigned to location or region, but does not exist in design + Warning (15706): Node "AUD_BCLK" is assigned to location or region, but does not exist in design + Warning (15706): Node "AUD_DACDAT" is assigned to location or region, but does not exist in design + Warning (15706): Node "AUD_DACLRCK" is assigned to location or region, but does not exist in design + Warning (15706): Node "AUD_XCK" is assigned to location or region, but does not exist in design + Warning (15706): Node "CLOCK2_50" is assigned to location or region, but does not exist in design + Warning (15706): Node "CLOCK3_50" is assigned to location or region, but does not exist in design + Warning (15706): Node "DRAM_ADDR[0]" is assigned to location or region, but does not exist in design + Warning (15706): Node "DRAM_ADDR[10]" is assigned to location or region, but does not exist in design + Warning (15706): Node "DRAM_ADDR[11]" is assigned to location or region, but does not exist in design + Warning (15706): Node "DRAM_ADDR[12]" is assigned to location or region, but does not exist in design + Warning (15706): Node "DRAM_ADDR[1]" is assigned to location or region, but does not exist in design + Warning (15706): Node "DRAM_ADDR[2]" is assigned to location or region, but does not exist in design + Warning (15706): Node "DRAM_ADDR[3]" is assigned to location or region, but does not exist in design + Warning (15706): Node "DRAM_ADDR[4]" is assigned to location or region, but does not exist in design + Warning (15706): Node "DRAM_ADDR[5]" is assigned to location or region, but does not exist in design + Warning (15706): Node "DRAM_ADDR[6]" is assigned to location or region, but does not exist in design + Warning (15706): Node "DRAM_ADDR[7]" is assigned to location or region, but does not exist in design + Warning (15706): Node "DRAM_ADDR[8]" is assigned to location or region, but does not exist in design + Warning (15706): Node "DRAM_ADDR[9]" is assigned to location or region, but does not exist in design + Warning (15706): Node "DRAM_BA[0]" is assigned to location or region, but does not exist in design + Warning (15706): Node "DRAM_BA[1]" is assigned to location or region, but does not exist in design + Warning (15706): Node "DRAM_CAS_N" is assigned to location or region, but does not exist in design + Warning (15706): Node "DRAM_CKE" is assigned to location or region, but does not exist in design + Warning (15706): Node "DRAM_CLK" is assigned to location or region, but does not exist in design + Warning (15706): Node "DRAM_CS_N" is assigned to location or region, but does not exist in design + Warning (15706): Node "DRAM_DQM[0]" is assigned to location or region, but does not exist in design + Warning (15706): Node "DRAM_DQM[1]" is assigned to location or region, but does not exist in design + Warning (15706): Node "DRAM_DQM[2]" is assigned to location or region, but does not exist in design + Warning (15706): Node "DRAM_DQM[3]" is assigned to location or region, but does not exist in design + Warning (15706): Node "DRAM_DQ[0]" is assigned to location or region, but does not exist in design + Warning (15706): Node "DRAM_DQ[10]" is assigned to location or region, but does not exist in design + Warning (15706): Node "DRAM_DQ[11]" is assigned to location or region, but does not exist in design + Warning (15706): Node "DRAM_DQ[12]" is assigned to location or region, but does not exist in design + Warning (15706): Node "DRAM_DQ[13]" is assigned to location or region, but does not exist in design + Warning (15706): Node "DRAM_DQ[14]" is assigned to location or region, but does not exist in design + Warning (15706): Node "DRAM_DQ[15]" is assigned to location or region, but does not exist in design + Warning (15706): Node "DRAM_DQ[16]" is assigned to location or region, but does not exist in design + Warning (15706): Node "DRAM_DQ[17]" is assigned to location or region, but does not exist in design + Warning (15706): Node "DRAM_DQ[18]" is assigned to location or region, but does not exist in design + Warning (15706): Node "DRAM_DQ[19]" is assigned to location or region, but does not exist in design + Warning (15706): Node "DRAM_DQ[1]" is assigned to location or region, but does not exist in design + Warning (15706): Node "DRAM_DQ[20]" is assigned to location or region, but does not exist in design + Warning (15706): Node "DRAM_DQ[21]" is assigned to location or region, but does not exist in design + Warning (15706): Node "DRAM_DQ[22]" is assigned to location or region, but does not exist in design + Warning (15706): Node "DRAM_DQ[23]" is assigned to location or region, but does not exist in design + Warning (15706): Node "DRAM_DQ[24]" is assigned to location or region, but does not exist in design + Warning (15706): Node "DRAM_DQ[25]" is assigned to location or region, but does not exist in design + Warning (15706): Node "DRAM_DQ[26]" is assigned to location or region, but does not exist in design + Warning (15706): Node "DRAM_DQ[27]" is assigned to location or region, but does not exist in design + Warning (15706): Node "DRAM_DQ[28]" is assigned to location or region, but does not exist in design + Warning (15706): Node "DRAM_DQ[29]" is assigned to location or region, but does not exist in design + Warning (15706): Node "DRAM_DQ[2]" is assigned to location or region, but does not exist in design + Warning (15706): Node "DRAM_DQ[30]" is assigned to location or region, but does not exist in design + Warning (15706): Node "DRAM_DQ[31]" is assigned to location or region, but does not exist in design + Warning (15706): Node "DRAM_DQ[3]" is assigned to location or region, but does not exist in design + Warning (15706): Node "DRAM_DQ[4]" is assigned to location or region, but does not exist in design + Warning (15706): Node "DRAM_DQ[5]" is assigned to location or region, but does not exist in design + Warning (15706): Node "DRAM_DQ[6]" is assigned to location or region, but does not exist in design + Warning (15706): Node "DRAM_DQ[7]" is assigned to location or region, but does not exist in design + Warning (15706): Node "DRAM_DQ[8]" is assigned to location or region, but does not exist in design + Warning (15706): Node "DRAM_DQ[9]" is assigned to location or region, but does not exist in design + Warning (15706): Node "DRAM_RAS_N" is assigned to location or region, but does not exist in design + Warning (15706): Node "DRAM_WE_N" is assigned to location or region, but does not exist in design + Warning (15706): Node "EEP_I2C_SCLK" is assigned to location or region, but does not exist in design + Warning (15706): Node "EEP_I2C_SDAT" is assigned to location or region, but does not exist in design + Warning (15706): Node "ENET0_GTX_CLK" is assigned to location or region, but does not exist in design + Warning (15706): Node "ENET0_INT_N" is assigned to location or region, but does not exist in design + Warning (15706): Node "ENET0_LINK100" is assigned to location or region, but does not exist in design + Warning (15706): Node "ENET0_MDC" is assigned to location or region, but does not exist in design + Warning (15706): Node "ENET0_MDIO" is assigned to location or region, but does not exist in design + Warning (15706): Node "ENET0_RST_N" is assigned to location or region, but does not exist in design + Warning (15706): Node "ENET0_RX_CLK" is assigned to location or region, but does not exist in design + Warning (15706): Node "ENET0_RX_COL" is assigned to location or region, but does not exist in design + Warning (15706): Node "ENET0_RX_CRS" is assigned to location or region, but does not exist in design + Warning (15706): Node "ENET0_RX_DATA[0]" is assigned to location or region, but does not exist in design + Warning (15706): Node "ENET0_RX_DATA[1]" is assigned to location or region, but does not exist in design + Warning (15706): Node "ENET0_RX_DATA[2]" is assigned to location or region, but does not exist in design + Warning (15706): Node "ENET0_RX_DATA[3]" is assigned to location or region, but does not exist in design + Warning (15706): Node "ENET0_RX_DV" is assigned to location or region, but does not exist in design + Warning (15706): Node "ENET0_RX_ER" is assigned to location or region, but does not exist in design + Warning (15706): Node "ENET0_TX_CLK" is assigned to location or region, but does not exist in design + Warning (15706): Node "ENET0_TX_DATA[0]" is assigned to location or region, but does not exist in design + Warning (15706): Node "ENET0_TX_DATA[1]" is assigned to location or region, but does not exist in design + Warning (15706): Node "ENET0_TX_DATA[2]" is assigned to location or region, but does not exist in design + Warning (15706): Node "ENET0_TX_DATA[3]" is assigned to location or region, but does not exist in design + Warning (15706): Node "ENET0_TX_EN" is assigned to location or region, but does not exist in design + Warning (15706): Node "ENET0_TX_ER" is assigned to location or region, but does not exist in design + Warning (15706): Node "ENET1_GTX_CLK" is assigned to location or region, but does not exist in design + Warning (15706): Node "ENET1_INT_N" is assigned to location or region, but does not exist in design + Warning (15706): Node "ENET1_LINK100" is assigned to location or region, but does not exist in design + Warning (15706): Node "ENET1_MDC" is assigned to location or region, but does not exist in design + Warning (15706): Node "ENET1_MDIO" is assigned to location or region, but does not exist in design + Warning (15706): Node "ENET1_RST_N" is assigned to location or region, but does not exist in design + Warning (15706): Node "ENET1_RX_CLK" is assigned to location or region, but does not exist in design + Warning (15706): Node "ENET1_RX_COL" is assigned to location or region, but does not exist in design + Warning (15706): Node "ENET1_RX_CRS" is assigned to location or region, but does not exist in design + Warning (15706): Node "ENET1_RX_DATA[0]" is assigned to location or region, but does not exist in design + Warning (15706): Node "ENET1_RX_DATA[1]" is assigned to location or region, but does not exist in design + Warning (15706): Node "ENET1_RX_DATA[2]" is assigned to location or region, but does not exist in design + Warning (15706): Node "ENET1_RX_DATA[3]" is assigned to location or region, but does not exist in design + Warning (15706): Node "ENET1_RX_DV" is assigned to location or region, but does not exist in design + Warning (15706): Node "ENET1_RX_ER" is assigned to location or region, but does not exist in design + Warning (15706): Node "ENET1_TX_CLK" is assigned to location or region, but does not exist in design + Warning (15706): Node "ENET1_TX_DATA[0]" is assigned to location or region, but does not exist in design + Warning (15706): Node "ENET1_TX_DATA[1]" is assigned to location or region, but does not exist in design + Warning (15706): Node "ENET1_TX_DATA[2]" is assigned to location or region, but does not exist in design + Warning (15706): Node "ENET1_TX_DATA[3]" is assigned to location or region, but does not exist in design + Warning (15706): Node "ENET1_TX_EN" is assigned to location or region, but does not exist in design + Warning (15706): Node "ENET1_TX_ER" is assigned to location or region, but does not exist in design + Warning (15706): Node "ENETCLK_25" is assigned to location or region, but does not exist in design + Warning (15706): Node "EX_IO[0]" is assigned to location or region, but does not exist in design + Warning (15706): Node "EX_IO[1]" is assigned to location or region, but does not exist in design + Warning (15706): Node "EX_IO[2]" is assigned to location or region, but does not exist in design + Warning (15706): Node "EX_IO[3]" is assigned to location or region, but does not exist in design + Warning (15706): Node "EX_IO[4]" is assigned to location or region, but does not exist in design + Warning (15706): Node "EX_IO[5]" is assigned to location or region, but does not exist in design + Warning (15706): Node "EX_IO[6]" is assigned to location or region, but does not exist in design + Warning (15706): Node "FL_ADDR[0]" is assigned to location or region, but does not exist in design + Warning (15706): Node "FL_ADDR[10]" is assigned to location or region, but does not exist in design + Warning (15706): Node "FL_ADDR[11]" is assigned to location or region, but does not exist in design + Warning (15706): Node "FL_ADDR[12]" is assigned to location or region, but does not exist in design + Warning (15706): Node "FL_ADDR[13]" is assigned to location or region, but does not exist in design + Warning (15706): Node "FL_ADDR[14]" is assigned to location or region, but does not exist in design + Warning (15706): Node "FL_ADDR[15]" is assigned to location or region, but does not exist in design + Warning (15706): Node "FL_ADDR[16]" is assigned to location or region, but does not exist in design + Warning (15706): Node "FL_ADDR[17]" is assigned to location or region, but does not exist in design + Warning (15706): Node "FL_ADDR[18]" is assigned to location or region, but does not exist in design + Warning (15706): Node "FL_ADDR[19]" is assigned to location or region, but does not exist in design + Warning (15706): Node "FL_ADDR[1]" is assigned to location or region, but does not exist in design + Warning (15706): Node "FL_ADDR[20]" is assigned to location or region, but does not exist in design + Warning (15706): Node "FL_ADDR[21]" is assigned to location or region, but does not exist in design + Warning (15706): Node "FL_ADDR[22]" is assigned to location or region, but does not exist in design + Warning (15706): Node "FL_ADDR[2]" is assigned to location or region, but does not exist in design + Warning (15706): Node "FL_ADDR[3]" is assigned to location or region, but does not exist in design + Warning (15706): Node "FL_ADDR[4]" is assigned to location or region, but does not exist in design + Warning (15706): Node "FL_ADDR[5]" is assigned to location or region, but does not exist in design + Warning (15706): Node "FL_ADDR[6]" is assigned to location or region, but does not exist in design + Warning (15706): Node "FL_ADDR[7]" is assigned to location or region, but does not exist in design + Warning (15706): Node "FL_ADDR[8]" is assigned to location or region, but does not exist in design + Warning (15706): Node "FL_ADDR[9]" is assigned to location or region, but does not exist in design + Warning (15706): Node "FL_CE_N" is assigned to location or region, but does not exist in design + Warning (15706): Node "FL_DQ[0]" is assigned to location or region, but does not exist in design + Warning (15706): Node "FL_DQ[1]" is assigned to location or region, but does not exist in design + Warning (15706): Node "FL_DQ[2]" is assigned to location or region, but does not exist in design + Warning (15706): Node "FL_DQ[3]" is assigned to location or region, but does not exist in design + Warning (15706): Node "FL_DQ[4]" is assigned to location or region, but does not exist in design + Warning (15706): Node "FL_DQ[5]" is assigned to location or region, but does not exist in design + Warning (15706): Node "FL_DQ[6]" is assigned to location or region, but does not exist in design + Warning (15706): Node "FL_DQ[7]" is assigned to location or region, but does not exist in design + Warning (15706): Node "FL_OE_N" is assigned to location or region, but does not exist in design + Warning (15706): Node "FL_RST_N" is assigned to location or region, but does not exist in design + Warning (15706): Node "FL_RY" is assigned to location or region, but does not exist in design + Warning (15706): Node "FL_WE_N" is assigned to location or region, but does not exist in design + Warning (15706): Node "FL_WP_N" is assigned to location or region, but does not exist in design + Warning (15706): Node "GPIO[0]" is assigned to location or region, but does not exist in design + Warning (15706): Node "GPIO[10]" is assigned to location or region, but does not exist in design + Warning (15706): Node "GPIO[11]" is assigned to location or region, but does not exist in design + Warning (15706): Node "GPIO[12]" is assigned to location or region, but does not exist in design + Warning (15706): Node "GPIO[13]" is assigned to location or region, but does not exist in design + Warning (15706): Node "GPIO[14]" is assigned to location or region, but does not exist in design + Warning (15706): Node "GPIO[15]" is assigned to location or region, but does not exist in design + Warning (15706): Node "GPIO[16]" is assigned to location or region, but does not exist in design + Warning (15706): Node "GPIO[17]" is assigned to location or region, but does not exist in design + Warning (15706): Node "GPIO[18]" is assigned to location or region, but does not exist in design + Warning (15706): Node "GPIO[19]" is assigned to location or region, but does not exist in design + Warning (15706): Node "GPIO[1]" is assigned to location or region, but does not exist in design + Warning (15706): Node "GPIO[20]" is assigned to location or region, but does not exist in design + Warning (15706): Node "GPIO[21]" is assigned to location or region, but does not exist in design + Warning (15706): Node "GPIO[22]" is assigned to location or region, but does not exist in design + Warning (15706): Node "GPIO[23]" is assigned to location or region, but does not exist in design + Warning (15706): Node "GPIO[24]" is assigned to location or region, but does not exist in design + Warning (15706): Node "GPIO[25]" is assigned to location or region, but does not exist in design + Warning (15706): Node "GPIO[26]" is assigned to location or region, but does not exist in design + Warning (15706): Node "GPIO[27]" is assigned to location or region, but does not exist in design + Warning (15706): Node "GPIO[28]" is assigned to location or region, but does not exist in design + Warning (15706): Node "GPIO[29]" is assigned to location or region, but does not exist in design + Warning (15706): Node "GPIO[2]" is assigned to location or region, but does not exist in design + Warning (15706): Node "GPIO[30]" is assigned to location or region, but does not exist in design + Warning (15706): Node "GPIO[31]" is assigned to location or region, but does not exist in design + Warning (15706): Node "GPIO[32]" is assigned to location or region, but does not exist in design + Warning (15706): Node "GPIO[33]" is assigned to location or region, but does not exist in design + Warning (15706): Node "GPIO[34]" is assigned to location or region, but does not exist in design + Warning (15706): Node "GPIO[35]" is assigned to location or region, but does not exist in design + Warning (15706): Node "GPIO[3]" is assigned to location or region, but does not exist in design + Warning (15706): Node "GPIO[4]" is assigned to location or region, but does not exist in design + Warning (15706): Node "GPIO[5]" is assigned to location or region, but does not exist in design + Warning (15706): Node "GPIO[6]" is assigned to location or region, but does not exist in design + Warning (15706): Node "GPIO[7]" is assigned to location or region, but does not exist in design + Warning (15706): Node "GPIO[8]" is assigned to location or region, but does not exist in design + Warning (15706): Node "GPIO[9]" is assigned to location or region, but does not exist in design + Warning (15706): Node "HSMC_CLKIN0" is assigned to location or region, but does not exist in design + Warning (15706): Node "HSMC_CLKIN_N1" is assigned to location or region, but does not exist in design + Warning (15706): Node "HSMC_CLKIN_N2" is assigned to location or region, but does not exist in design + Warning (15706): Node "HSMC_CLKIN_P1" is assigned to location or region, but does not exist in design + Warning (15706): Node "HSMC_CLKIN_P2" is assigned to location or region, but does not exist in design + Warning (15706): Node "HSMC_CLKOUT0" is assigned to location or region, but does not exist in design + Warning (15706): Node "HSMC_CLKOUT_N1" is assigned to location or region, but does not exist in design + Warning (15706): Node "HSMC_CLKOUT_N2" is assigned to location or region, but does not exist in design + Warning (15706): Node "HSMC_CLKOUT_P1" is assigned to location or region, but does not exist in design + Warning (15706): Node "HSMC_CLKOUT_P2" is assigned to location or region, but does not exist in design + Warning (15706): Node "HSMC_D[0]" is assigned to location or region, but does not exist in design + Warning (15706): Node "HSMC_D[1]" is assigned to location or region, but does not exist in design + Warning (15706): Node "HSMC_D[2]" is assigned to location or region, but does not exist in design + Warning (15706): Node "HSMC_D[3]" is assigned to location or region, but does not exist in design + Warning (15706): Node "HSMC_RX_D_N[0]" is assigned to location or region, but does not exist in design + Warning (15706): Node "HSMC_RX_D_N[10]" is assigned to location or region, but does not exist in design + Warning (15706): Node "HSMC_RX_D_N[11]" is assigned to location or region, but does not exist in design + Warning (15706): Node "HSMC_RX_D_N[12]" is assigned to location or region, but does not exist in design + Warning (15706): Node "HSMC_RX_D_N[13]" is assigned to location or region, but does not exist in design + Warning (15706): Node "HSMC_RX_D_N[14]" is assigned to location or region, but does not exist in design + Warning (15706): Node "HSMC_RX_D_N[15]" is assigned to location or region, but does not exist in design + Warning (15706): Node "HSMC_RX_D_N[16]" is assigned to location or region, but does not exist in design + Warning (15706): Node "HSMC_RX_D_N[1]" is assigned to location or region, but does not exist in design + Warning (15706): Node "HSMC_RX_D_N[2]" is assigned to location or region, but does not exist in design + Warning (15706): Node "HSMC_RX_D_N[3]" is assigned to location or region, but does not exist in design + Warning (15706): Node "HSMC_RX_D_N[4]" is assigned to location or region, but does not exist in design + Warning (15706): Node "HSMC_RX_D_N[5]" is assigned to location or region, but does not exist in design + Warning (15706): Node "HSMC_RX_D_N[6]" is assigned to location or region, but does not exist in design + Warning (15706): Node "HSMC_RX_D_N[7]" is assigned to location or region, but does not exist in design + Warning (15706): Node "HSMC_RX_D_N[8]" is assigned to location or region, but does not exist in design + Warning (15706): Node "HSMC_RX_D_N[9]" is assigned to location or region, but does not exist in design + Warning (15706): Node "HSMC_RX_D_P[0]" is assigned to location or region, but does not exist in design + Warning (15706): Node "HSMC_RX_D_P[10]" is assigned to location or region, but does not exist in design + Warning (15706): Node "HSMC_RX_D_P[11]" is assigned to location or region, but does not exist in design + Warning (15706): Node "HSMC_RX_D_P[12]" is assigned to location or region, but does not exist in design + Warning (15706): Node "HSMC_RX_D_P[13]" is assigned to location or region, but does not exist in design + Warning (15706): Node "HSMC_RX_D_P[14]" is assigned to location or region, but does not exist in design + Warning (15706): Node "HSMC_RX_D_P[15]" is assigned to location or region, but does not exist in design + Warning (15706): Node "HSMC_RX_D_P[16]" is assigned to location or region, but does not exist in design + Warning (15706): Node "HSMC_RX_D_P[1]" is assigned to location or region, but does not exist in design + Warning (15706): Node "HSMC_RX_D_P[2]" is assigned to location or region, but does not exist in design + Warning (15706): Node "HSMC_RX_D_P[3]" is assigned to location or region, but does not exist in design + Warning (15706): Node "HSMC_RX_D_P[4]" is assigned to location or region, but does not exist in design + Warning (15706): Node "HSMC_RX_D_P[5]" is assigned to location or region, but does not exist in design + Warning (15706): Node "HSMC_RX_D_P[6]" is assigned to location or region, but does not exist in design + Warning (15706): Node "HSMC_RX_D_P[7]" is assigned to location or region, but does not exist in design + Warning (15706): Node "HSMC_RX_D_P[8]" is assigned to location or region, but does not exist in design + Warning (15706): Node "HSMC_RX_D_P[9]" is assigned to location or region, but does not exist in design + Warning (15706): Node "HSMC_TX_D_N[0]" is assigned to location or region, but does not exist in design + Warning (15706): Node "HSMC_TX_D_N[10]" is assigned to location or region, but does not exist in design + Warning (15706): Node "HSMC_TX_D_N[11]" is assigned to location or region, but does not exist in design + Warning (15706): Node "HSMC_TX_D_N[12]" is assigned to location or region, but does not exist in design + Warning (15706): Node "HSMC_TX_D_N[13]" is assigned to location or region, but does not exist in design + Warning (15706): Node "HSMC_TX_D_N[14]" is assigned to location or region, but does not exist in design + Warning (15706): Node "HSMC_TX_D_N[15]" is assigned to location or region, but does not exist in design + Warning (15706): Node "HSMC_TX_D_N[16]" is assigned to location or region, but does not exist in design + Warning (15706): Node "HSMC_TX_D_N[1]" is assigned to location or region, but does not exist in design + Warning (15706): Node "HSMC_TX_D_N[2]" is assigned to location or region, but does not exist in design + Warning (15706): Node "HSMC_TX_D_N[3]" is assigned to location or region, but does not exist in design + Warning (15706): Node "HSMC_TX_D_N[4]" is assigned to location or region, but does not exist in design + Warning (15706): Node "HSMC_TX_D_N[5]" is assigned to location or region, but does not exist in design + Warning (15706): Node "HSMC_TX_D_N[6]" is assigned to location or region, but does not exist in design + Warning (15706): Node "HSMC_TX_D_N[7]" is assigned to location or region, but does not exist in design + Warning (15706): Node "HSMC_TX_D_N[8]" is assigned to location or region, but does not exist in design + Warning (15706): Node "HSMC_TX_D_N[9]" is assigned to location or region, but does not exist in design + Warning (15706): Node "HSMC_TX_D_P[0]" is assigned to location or region, but does not exist in design + Warning (15706): Node "HSMC_TX_D_P[10]" is assigned to location or region, but does not exist in design + Warning (15706): Node "HSMC_TX_D_P[11]" is assigned to location or region, but does not exist in design + Warning (15706): Node "HSMC_TX_D_P[12]" is assigned to location or region, but does not exist in design + Warning (15706): Node "HSMC_TX_D_P[13]" is assigned to location or region, but does not exist in design + Warning (15706): Node "HSMC_TX_D_P[14]" is assigned to location or region, but does not exist in design + Warning (15706): Node "HSMC_TX_D_P[15]" is assigned to location or region, but does not exist in design + Warning (15706): Node "HSMC_TX_D_P[16]" is assigned to location or region, but does not exist in design + Warning (15706): Node "HSMC_TX_D_P[1]" is assigned to location or region, but does not exist in design + Warning (15706): Node "HSMC_TX_D_P[2]" is assigned to location or region, but does not exist in design + Warning (15706): Node "HSMC_TX_D_P[3]" is assigned to location or region, but does not exist in design + Warning (15706): Node "HSMC_TX_D_P[4]" is assigned to location or region, but does not exist in design + Warning (15706): Node "HSMC_TX_D_P[5]" is assigned to location or region, but does not exist in design + Warning (15706): Node "HSMC_TX_D_P[6]" is assigned to location or region, but does not exist in design + Warning (15706): Node "HSMC_TX_D_P[7]" is assigned to location or region, but does not exist in design + Warning (15706): Node "HSMC_TX_D_P[8]" is assigned to location or region, but does not exist in design + Warning (15706): Node "HSMC_TX_D_P[9]" is assigned to location or region, but does not exist in design + Warning (15706): Node "I2C_SCLK" is assigned to location or region, but does not exist in design + Warning (15706): Node "I2C_SDAT" is assigned to location or region, but does not exist in design + Warning (15706): Node "IRDA_RXD" is assigned to location or region, but does not exist in design + Warning (15706): Node "LEDG[8]" is assigned to location or region, but does not exist in design + Warning (15706): Node "OTG_ADDR[0]" is assigned to location or region, but does not exist in design + Warning (15706): Node "OTG_ADDR[1]" is assigned to location or region, but does not exist in design + Warning (15706): Node "OTG_CS_N" is assigned to location or region, but does not exist in design + Warning (15706): Node "OTG_DACK_N[0]" is assigned to location or region, but does not exist in design + Warning (15706): Node "OTG_DACK_N[1]" is assigned to location or region, but does not exist in design + Warning (15706): Node "OTG_DATA[0]" is assigned to location or region, but does not exist in design + Warning (15706): Node "OTG_DATA[10]" is assigned to location or region, but does not exist in design + Warning (15706): Node "OTG_DATA[11]" is assigned to location or region, but does not exist in design + Warning (15706): Node "OTG_DATA[12]" is assigned to location or region, but does not exist in design + Warning (15706): Node "OTG_DATA[13]" is assigned to location or region, but does not exist in design + Warning (15706): Node "OTG_DATA[14]" is assigned to location or region, but does not exist in design + Warning (15706): Node "OTG_DATA[15]" is assigned to location or region, but does not exist in design + Warning (15706): Node "OTG_DATA[1]" is assigned to location or region, but does not exist in design + Warning (15706): Node "OTG_DATA[2]" is assigned to location or region, but does not exist in design + Warning (15706): Node "OTG_DATA[3]" is assigned to location or region, but does not exist in design + Warning (15706): Node "OTG_DATA[4]" is assigned to location or region, but does not exist in design + Warning (15706): Node "OTG_DATA[5]" is assigned to location or region, but does not exist in design + Warning (15706): Node "OTG_DATA[6]" is assigned to location or region, but does not exist in design + Warning (15706): Node "OTG_DATA[7]" is assigned to location or region, but does not exist in design + Warning (15706): Node "OTG_DATA[8]" is assigned to location or region, but does not exist in design + Warning (15706): Node "OTG_DATA[9]" is assigned to location or region, but does not exist in design + Warning (15706): Node "OTG_DREQ[0]" is assigned to location or region, but does not exist in design + Warning (15706): Node "OTG_DREQ[1]" is assigned to location or region, but does not exist in design + Warning (15706): Node "OTG_FSPEED" is assigned to location or region, but does not exist in design + Warning (15706): Node "OTG_INT[0]" is assigned to location or region, but does not exist in design + Warning (15706): Node "OTG_INT[1]" is assigned to location or region, but does not exist in design + Warning (15706): Node "OTG_LSPEED" is assigned to location or region, but does not exist in design + Warning (15706): Node "OTG_RD_N" is assigned to location or region, but does not exist in design + Warning (15706): Node "OTG_RST_N" is assigned to location or region, but does not exist in design + Warning (15706): Node "OTG_WR_N" is assigned to location or region, but does not exist in design + Warning (15706): Node "PS2_CLK" is assigned to location or region, but does not exist in design + Warning (15706): Node "PS2_CLK2" is assigned to location or region, but does not exist in design + Warning (15706): Node "PS2_DAT" is assigned to location or region, but does not exist in design + Warning (15706): Node "PS2_DAT2" is assigned to location or region, but does not exist in design + Warning (15706): Node "SD_CLK" is assigned to location or region, but does not exist in design + Warning (15706): Node "SD_CMD" is assigned to location or region, but does not exist in design + Warning (15706): Node "SD_DAT[0]" is assigned to location or region, but does not exist in design + Warning (15706): Node "SD_DAT[1]" is assigned to location or region, but does not exist in design + Warning (15706): Node "SD_DAT[2]" is assigned to location or region, but does not exist in design + Warning (15706): Node "SD_DAT[3]" is assigned to location or region, but does not exist in design + Warning (15706): Node "SD_WP_N" is assigned to location or region, but does not exist in design + Warning (15706): Node "SMA_CLKIN" is assigned to location or region, but does not exist in design + Warning (15706): Node "SMA_CLKOUT" is assigned to location or region, but does not exist in design + Warning (15706): Node "SRAM_ADDR[0]" is assigned to location or region, but does not exist in design + Warning (15706): Node "SRAM_ADDR[10]" is assigned to location or region, but does not exist in design + Warning (15706): Node "SRAM_ADDR[11]" is assigned to location or region, but does not exist in design + Warning (15706): Node "SRAM_ADDR[12]" is assigned to location or region, but does not exist in design + Warning (15706): Node "SRAM_ADDR[13]" is assigned to location or region, but does not exist in design + Warning (15706): Node "SRAM_ADDR[14]" is assigned to location or region, but does not exist in design + Warning (15706): Node "SRAM_ADDR[15]" is assigned to location or region, but does not exist in design + Warning (15706): Node "SRAM_ADDR[16]" is assigned to location or region, but does not exist in design + Warning (15706): Node "SRAM_ADDR[17]" is assigned to location or region, but does not exist in design + Warning (15706): Node "SRAM_ADDR[18]" is assigned to location or region, but does not exist in design + Warning (15706): Node "SRAM_ADDR[19]" is assigned to location or region, but does not exist in design + Warning (15706): Node "SRAM_ADDR[1]" is assigned to location or region, but does not exist in design + Warning (15706): Node "SRAM_ADDR[2]" is assigned to location or region, but does not exist in design + Warning (15706): Node "SRAM_ADDR[3]" is assigned to location or region, but does not exist in design + Warning (15706): Node "SRAM_ADDR[4]" is assigned to location or region, but does not exist in design + Warning (15706): Node "SRAM_ADDR[5]" is assigned to location or region, but does not exist in design + Warning (15706): Node "SRAM_ADDR[6]" is assigned to location or region, but does not exist in design + Warning (15706): Node "SRAM_ADDR[7]" is assigned to location or region, but does not exist in design + Warning (15706): Node "SRAM_ADDR[8]" is assigned to location or region, but does not exist in design + Warning (15706): Node "SRAM_ADDR[9]" is assigned to location or region, but does not exist in design + Warning (15706): Node "SRAM_CE_N" is assigned to location or region, but does not exist in design + Warning (15706): Node "SRAM_DQ[0]" is assigned to location or region, but does not exist in design + Warning (15706): Node "SRAM_DQ[10]" is assigned to location or region, but does not exist in design + Warning (15706): Node "SRAM_DQ[11]" is assigned to location or region, but does not exist in design + Warning (15706): Node "SRAM_DQ[12]" is assigned to location or region, but does not exist in design + Warning (15706): Node "SRAM_DQ[13]" is assigned to location or region, but does not exist in design + Warning (15706): Node "SRAM_DQ[14]" is assigned to location or region, but does not exist in design + Warning (15706): Node "SRAM_DQ[15]" is assigned to location or region, but does not exist in design + Warning (15706): Node "SRAM_DQ[1]" is assigned to location or region, but does not exist in design + Warning (15706): Node "SRAM_DQ[2]" is assigned to location or region, but does not exist in design + Warning (15706): Node "SRAM_DQ[3]" is assigned to location or region, but does not exist in design + Warning (15706): Node "SRAM_DQ[4]" is assigned to location or region, but does not exist in design + Warning (15706): Node "SRAM_DQ[5]" is assigned to location or region, but does not exist in design + Warning (15706): Node "SRAM_DQ[6]" is assigned to location or region, but does not exist in design + Warning (15706): Node "SRAM_DQ[7]" is assigned to location or region, but does not exist in design + Warning (15706): Node "SRAM_DQ[8]" is assigned to location or region, but does not exist in design + Warning (15706): Node "SRAM_DQ[9]" is assigned to location or region, but does not exist in design + Warning (15706): Node "SRAM_LB_N" is assigned to location or region, but does not exist in design + Warning (15706): Node "SRAM_OE_N" is assigned to location or region, but does not exist in design + Warning (15706): Node "SRAM_UB_N" is assigned to location or region, but does not exist in design + Warning (15706): Node "SRAM_WE_N" is assigned to location or region, but does not exist in design + Warning (15706): Node "TD_CLK27" is assigned to location or region, but does not exist in design + Warning (15706): Node "TD_DATA[0]" is assigned to location or region, but does not exist in design + Warning (15706): Node "TD_DATA[1]" is assigned to location or region, but does not exist in design + Warning (15706): Node "TD_DATA[2]" is assigned to location or region, but does not exist in design + Warning (15706): Node "TD_DATA[3]" is assigned to location or region, but does not exist in design + Warning (15706): Node "TD_DATA[4]" is assigned to location or region, but does not exist in design + Warning (15706): Node "TD_DATA[5]" is assigned to location or region, but does not exist in design + Warning (15706): Node "TD_DATA[6]" is assigned to location or region, but does not exist in design + Warning (15706): Node "TD_DATA[7]" is assigned to location or region, but does not exist in design + Warning (15706): Node "TD_HS" is assigned to location or region, but does not exist in design + Warning (15706): Node "TD_RESET_N" is assigned to location or region, but does not exist in design + Warning (15706): Node "TD_VS" is assigned to location or region, but does not exist in design + Warning (15706): Node "UART_CTS" is assigned to location or region, but does not exist in design + Warning (15706): Node "UART_RTS" is assigned to location or region, but does not exist in design + Warning (15706): Node "UART_RXD" is assigned to location or region, but does not exist in design + Warning (15706): Node "UART_TXD" is assigned to location or region, but does not exist in design + Warning (15706): Node "VGA_BLANK_N" is assigned to location or region, but does not exist in design + Warning (15706): Node "VGA_B[0]" is assigned to location or region, but does not exist in design + Warning (15706): Node "VGA_B[1]" is assigned to location or region, but does not exist in design + Warning (15706): Node "VGA_B[2]" is assigned to location or region, but does not exist in design + Warning (15706): Node "VGA_B[3]" is assigned to location or region, but does not exist in design + Warning (15706): Node "VGA_B[4]" is assigned to location or region, but does not exist in design + Warning (15706): Node "VGA_B[5]" is assigned to location or region, but does not exist in design + Warning (15706): Node "VGA_B[6]" is assigned to location or region, but does not exist in design + Warning (15706): Node "VGA_B[7]" is assigned to location or region, but does not exist in design + Warning (15706): Node "VGA_CLK" is assigned to location or region, but does not exist in design + Warning (15706): Node "VGA_G[0]" is assigned to location or region, but does not exist in design + Warning (15706): Node "VGA_G[1]" is assigned to location or region, but does not exist in design + Warning (15706): Node "VGA_G[2]" is assigned to location or region, but does not exist in design + Warning (15706): Node "VGA_G[3]" is assigned to location or region, but does not exist in design + Warning (15706): Node "VGA_G[4]" is assigned to location or region, but does not exist in design + Warning (15706): Node "VGA_G[5]" is assigned to location or region, but does not exist in design + Warning (15706): Node "VGA_G[6]" is assigned to location or region, but does not exist in design + Warning (15706): Node "VGA_G[7]" is assigned to location or region, but does not exist in design + Warning (15706): Node "VGA_HS" is assigned to location or region, but does not exist in design + Warning (15706): Node "VGA_R[0]" is assigned to location or region, but does not exist in design + Warning (15706): Node "VGA_R[1]" is assigned to location or region, but does not exist in design + Warning (15706): Node "VGA_R[2]" is assigned to location or region, but does not exist in design + Warning (15706): Node "VGA_R[3]" is assigned to location or region, but does not exist in design + Warning (15706): Node "VGA_R[4]" is assigned to location or region, but does not exist in design + Warning (15706): Node "VGA_R[5]" is assigned to location or region, but does not exist in design + Warning (15706): Node "VGA_R[6]" is assigned to location or region, but does not exist in design + Warning (15706): Node "VGA_R[7]" is assigned to location or region, but does not exist in design + Warning (15706): Node "VGA_SYNC_N" is assigned to location or region, but does not exist in design + Warning (15706): Node "VGA_VS" is assigned to location or region, but does not exist in design +Info (171121): Fitter preparation operations ending: elapsed time is 00:00:05 +Info (170189): Fitter placement preparation operations beginning +Info (170190): Fitter placement preparation operations ending: elapsed time is 00:00:01 +Info (170191): Fitter placement operations beginning +Info (170137): Fitter placement was successful +Info (170192): Fitter placement operations ending: elapsed time is 00:00:02 +Info (170193): Fitter routing operations beginning +Info (170195): Router estimated average interconnect usage is 2% of the available device resources + Info (170196): Router estimated peak interconnect usage is 23% of the available device resources in the region that extends from location X58_Y24 to location X68_Y36 +Info (170194): Fitter routing operations ending: elapsed time is 00:00:03 +Info (170199): The Fitter performed an Auto Fit compilation. Optimizations were skipped to reduce compilation time. + Info (170201): Optimizations that may affect the design's routability were skipped + Info (170200): Optimizations that may affect the design's timing were skipped +Info (11888): Total time spent on timing analysis during the Fitter is 0.75 seconds. +Info (334003): Started post-fitting delay annotation +Info (334004): Delay annotation completed successfully +Info (334003): Started post-fitting delay annotation +Info (334004): Delay annotation completed successfully +Info (11218): Fitter post-fit operations ending: elapsed time is 00:00:04 +Warning (171167): Found invalid Fitter assignments. See the Ignored Assignments panel in the Fitter Compilation Report for more information. +Warning (169177): 9 pins must meet Altera requirements for 3.3-, 3.0-, and 2.5-V interfaces. For more information, refer to AN 447: Interfacing Cyclone IV E Devices with 3.3/3.0/2.5-V LVTTL/LVCMOS I/O Systems. + Info (169178): Pin LCD_data[0] uses I/O standard 3.3-V LVTTL at L3 + Info (169178): Pin LCD_data[1] uses I/O standard 3.3-V LVTTL at L1 + Info (169178): Pin LCD_data[2] uses I/O standard 3.3-V LVTTL at L2 + Info (169178): Pin LCD_data[3] uses I/O standard 3.3-V LVTTL at K7 + Info (169178): Pin LCD_data[4] uses I/O standard 3.3-V LVTTL at K1 + Info (169178): Pin LCD_data[5] uses I/O standard 3.3-V LVTTL at K2 + Info (169178): Pin LCD_data[6] uses I/O standard 3.3-V LVTTL at M3 + Info (169178): Pin LCD_data[7] uses I/O standard 3.3-V LVTTL at M5 + Info (169178): Pin CLOCK_50 uses I/O standard 3.3-V LVTTL at Y2 +Info (144001): Generated suppressed messages file C:/Users/takayun/Documents/DE2-115/qsys_tutorial/output_files/lights.fit.smsg +Info: Quartus II 64-Bit Fitter was successful. 0 errors, 827 warnings + Info: Peak virtual memory: 1016 megabytes + Info: Processing ended: Fri Dec 02 01:33:13 2016 + Info: Elapsed time: 00:00:31 + Info: Total CPU time (on all processors): 00:00:31 + + ++----------------------------+ +; Fitter Suppressed Messages ; ++----------------------------+ +The suppressed messages can be found in C:/Users/takayun/Documents/DE2-115/qsys_tutorial/output_files/lights.fit.smsg. + + diff --git a/output_files/lights.fit.smsg b/output_files/lights.fit.smsg new file mode 100644 index 0000000..7121cbb --- /dev/null +++ b/output_files/lights.fit.smsg @@ -0,0 +1,8 @@ +Extra Info (176273): Performing register packing on registers with non-logic cell location assignments +Extra Info (176274): Completed register packing on registers with non-logic cell location assignments +Extra Info (176236): Started Fast Input/Output/OE register processing +Extra Info (176237): Finished Fast Input/Output/OE register processing +Extra Info (176238): Start inferring scan chains for DSP blocks +Extra Info (176239): Inferring scan chains for DSP blocks is complete +Extra Info (176248): Moving registers into I/O cells, Multiplier Blocks, and RAM blocks to improve timing and density +Extra Info (176249): Finished moving registers into I/O cells, Multiplier Blocks, and RAM blocks diff --git a/output_files/lights.fit.summary b/output_files/lights.fit.summary new file mode 100644 index 0000000..f000b78 --- /dev/null +++ b/output_files/lights.fit.summary @@ -0,0 +1,16 @@ +Fitter Status : Successful - Fri Dec 02 01:33:11 2016 +Quartus II 64-Bit Version : 13.0.1 Build 232 06/12/2013 SP 1 SJ Web Edition +Revision Name : lights +Top-level Entity Name : lights +Family : Cyclone IV E +Device : EP4CE115F29C7 +Timing Models : Final +Total logic elements : 2,232 / 114,480 ( 2 % ) + Total combinational functions : 2,062 / 114,480 ( 2 % ) + Dedicated logic registers : 1,204 / 114,480 ( 1 % ) +Total registers : 1204 +Total pins : 118 / 529 ( 22 % ) +Total virtual pins : 0 +Total memory bits : 1,649,664 / 3,981,312 ( 41 % ) +Embedded Multiplier 9-bit elements : 0 / 532 ( 0 % ) +Total PLLs : 0 / 4 ( 0 % ) diff --git a/output_files/lights.flow.rpt b/output_files/lights.flow.rpt new file mode 100644 index 0000000..53da3cf --- /dev/null +++ b/output_files/lights.flow.rpt @@ -0,0 +1,123 @@ +Flow report for lights +Fri Dec 02 01:33:28 2016 +Quartus II 64-Bit Version 13.0.1 Build 232 06/12/2013 Service Pack 1 SJ Web Edition + + +--------------------- +; Table of Contents ; +--------------------- + 1. Legal Notice + 2. Flow Summary + 3. Flow Settings + 4. Flow Non-Default Global Settings + 5. Flow Elapsed Time + 6. Flow OS Summary + 7. Flow Log + 8. Flow Messages + 9. Flow Suppressed Messages + + + +---------------- +; Legal Notice ; +---------------- +Copyright (C) 1991-2013 Altera Corporation +Your use of Altera Corporation's design tools, logic functions +and other software and tools, and its AMPP partner logic +functions, and any output files from any of the foregoing +(including device programming or simulation files), and any +associated documentation or information are expressly subject +to the terms and conditions of the Altera Program License +Subscription Agreement, Altera MegaCore Function License +Agreement, or other applicable license agreement, including, +without limitation, that your use is for the sole purpose of +programming logic devices manufactured by Altera and sold by +Altera or its authorized distributors. Please refer to the +applicable agreement for further details. + + + ++--------------------------------------------------------------------------------------+ +; Flow Summary ; ++------------------------------------+-------------------------------------------------+ +; Flow Status ; Successful - Fri Dec 02 01:33:21 2016 ; +; Quartus II 64-Bit Version ; 13.0.1 Build 232 06/12/2013 SP 1 SJ Web Edition ; +; Revision Name ; lights ; +; Top-level Entity Name ; lights ; +; Family ; Cyclone IV E ; +; Device ; EP4CE115F29C7 ; +; Timing Models ; Final ; +; Total logic elements ; 2,232 / 114,480 ( 2 % ) ; +; Total combinational functions ; 2,062 / 114,480 ( 2 % ) ; +; Dedicated logic registers ; 1,204 / 114,480 ( 1 % ) ; +; Total registers ; 1204 ; +; Total pins ; 118 / 529 ( 22 % ) ; +; Total virtual pins ; 0 ; +; Total memory bits ; 1,649,664 / 3,981,312 ( 41 % ) ; +; Embedded Multiplier 9-bit elements ; 0 / 532 ( 0 % ) ; +; Total PLLs ; 0 / 4 ( 0 % ) ; ++------------------------------------+-------------------------------------------------+ + + ++-----------------------------------------+ +; Flow Settings ; ++-------------------+---------------------+ +; Option ; Setting ; ++-------------------+---------------------+ +; Start date & time ; 12/02/2016 01:32:08 ; +; Main task ; Compilation ; +; Revision Name ; lights ; ++-------------------+---------------------+ + + ++------------------------------------------------------------------------------------------------------------------+ +; Flow Non-Default Global Settings ; ++-------------------------------------+---------------------------------+---------------+-------------+------------+ +; Assignment Name ; Value ; Default Value ; Entity Name ; Section Id ; ++-------------------------------------+---------------------------------+---------------+-------------+------------+ +; COMPILER_SIGNATURE_ID ; 224508679122295.148060992813004 ; -- ; -- ; -- ; +; MAX_CORE_JUNCTION_TEMP ; 85 ; -- ; -- ; -- ; +; MIN_CORE_JUNCTION_TEMP ; 0 ; -- ; -- ; -- ; +; NOMINAL_CORE_SUPPLY_VOLTAGE ; 1.2V ; -- ; -- ; -- ; +; PARTITION_COLOR ; 16764057 ; -- ; -- ; Top ; +; PARTITION_FITTER_PRESERVATION_LEVEL ; PLACEMENT_AND_ROUTING ; -- ; -- ; Top ; +; PARTITION_NETLIST_TYPE ; SOURCE ; -- ; -- ; Top ; +; PROJECT_OUTPUT_DIRECTORY ; output_files ; -- ; -- ; -- ; ++-------------------------------------+---------------------------------+---------------+-------------+------------+ + + ++-------------------------------------------------------------------------------------------------------------------------------+ +; Flow Elapsed Time ; ++---------------------------+--------------+-------------------------+---------------------+------------------------------------+ +; Module Name ; Elapsed Time ; Average Processors Used ; Peak Virtual Memory ; Total CPU Time (on all processors) ; ++---------------------------+--------------+-------------------------+---------------------+------------------------------------+ +; Analysis & Synthesis ; 00:00:32 ; 1.0 ; 654 MB ; 00:00:31 ; +; Fitter ; 00:00:29 ; 1.0 ; 1016 MB ; 00:00:29 ; +; Assembler ; 00:00:07 ; 1.0 ; 477 MB ; 00:00:06 ; +; TimeQuest Timing Analyzer ; 00:00:06 ; 1.0 ; 606 MB ; 00:00:05 ; +; Total ; 00:01:14 ; -- ; -- ; 00:01:11 ; ++---------------------------+--------------+-------------------------+---------------------+------------------------------------+ + + ++----------------------------------------------------------------------------------------+ +; Flow OS Summary ; ++---------------------------+------------------+-----------+------------+----------------+ +; Module Name ; Machine Hostname ; OS Name ; OS Version ; Processor type ; ++---------------------------+------------------+-----------+------------+----------------+ +; Analysis & Synthesis ; LAPTOP-V9RF6EJU ; Windows 7 ; 6.2 ; x86_64 ; +; Fitter ; LAPTOP-V9RF6EJU ; Windows 7 ; 6.2 ; x86_64 ; +; Assembler ; LAPTOP-V9RF6EJU ; Windows 7 ; 6.2 ; x86_64 ; +; TimeQuest Timing Analyzer ; LAPTOP-V9RF6EJU ; Windows 7 ; 6.2 ; x86_64 ; ++---------------------------+------------------+-----------+------------+----------------+ + + +------------ +; Flow Log ; +------------ +quartus_map --read_settings_files=on --write_settings_files=off lights -c lights +quartus_fit --read_settings_files=off --write_settings_files=off lights -c lights +quartus_asm --read_settings_files=off --write_settings_files=off lights -c lights +quartus_sta lights -c lights + + + diff --git a/output_files/lights.jdi b/output_files/lights.jdi new file mode 100644 index 0000000..b0cfc33 --- /dev/null +++ b/output_files/lights.jdi @@ -0,0 +1,144 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/output_files/lights.map.rpt b/output_files/lights.map.rpt new file mode 100644 index 0000000..77cca81 --- /dev/null +++ b/output_files/lights.map.rpt @@ -0,0 +1,7186 @@ +Analysis & Synthesis report for lights +Fri Dec 02 01:32:41 2016 +Quartus II 64-Bit Version 13.0.1 Build 232 06/12/2013 Service Pack 1 SJ Web Edition + + +--------------------- +; Table of Contents ; +--------------------- + 1. Legal Notice + 2. Analysis & Synthesis Summary + 3. Analysis & Synthesis Settings + 4. Parallel Compilation + 5. Analysis & Synthesis Source Files Read + 6. Analysis & Synthesis Resource Usage Summary + 7. Analysis & Synthesis Resource Utilization by Entity + 8. Analysis & Synthesis RAM Summary + 9. State Machine - |lights|nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|DRsize + 10. Registers Protected by Synthesis + 11. Registers Removed During Synthesis + 12. Removed Registers Triggering Further Register Optimizations + 13. General Register Statistics + 14. Inverted Register Statistics + 15. Multiplexer Restructuring Statistics (Restructuring Performed) + 16. Source assignments for nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_register_bank_a_module:nios_system_nios2_processor_register_bank_a|altsyncram:the_altsyncram|altsyncram_0rh1:auto_generated + 17. Source assignments for nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_register_bank_b_module:nios_system_nios2_processor_register_bank_b|altsyncram:the_altsyncram|altsyncram_1rh1:auto_generated + 18. Source assignments for nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_oci_debug:the_nios_system_nios2_processor_nios2_oci_debug|altera_std_synchronizer:the_altera_std_synchronizer + 19. Source assignments for nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_ocimem:the_nios_system_nios2_processor_nios2_ocimem|nios_system_nios2_processor_ociram_sp_ram_module:nios_system_nios2_processor_ociram_sp_ram|altsyncram:the_altsyncram|altsyncram_4891:auto_generated + 20. Source assignments for nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|altera_std_synchronizer:the_altera_std_synchronizer1 + 21. Source assignments for nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|altera_std_synchronizer:the_altera_std_synchronizer2 + 22. Source assignments for nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk|altera_std_synchronizer:the_altera_std_synchronizer3 + 23. Source assignments for nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk|altera_std_synchronizer:the_altera_std_synchronizer4 + 24. Source assignments for nios_system:NiosII|nios_system_onchip_memory:onchip_memory|altsyncram:the_altsyncram|altsyncram_4ed1:auto_generated + 25. Source assignments for nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_w:the_nios_system_jtag_uart_scfifo_w|scfifo:wfifo|scfifo_jr21:auto_generated|a_dpfifo_q131:dpfifo|dpram_nl21:FIFOram|altsyncram_r1m1:altsyncram1 + 26. Source assignments for nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_r:the_nios_system_jtag_uart_scfifo_r|scfifo:rfifo|scfifo_jr21:auto_generated|a_dpfifo_q131:dpfifo|dpram_nl21:FIFOram|altsyncram_r1m1:altsyncram1 + 27. Source assignments for nios_system:NiosII|altera_reset_controller:rst_controller + 28. Source assignments for nios_system:NiosII|altera_reset_controller:rst_controller|altera_reset_synchronizer:alt_rst_sync_uq1 + 29. Source assignments for nios_system:NiosII|nios_system_cmd_xbar_demux:cmd_xbar_demux + 30. Source assignments for nios_system:NiosII|nios_system_cmd_xbar_demux_001:cmd_xbar_demux_001 + 31. Source assignments for nios_system:NiosII|nios_system_cmd_xbar_demux:rsp_xbar_demux + 32. Source assignments for nios_system:NiosII|nios_system_cmd_xbar_demux:rsp_xbar_demux_001 + 33. Source assignments for nios_system:NiosII|nios_system_rsp_xbar_demux_002:rsp_xbar_demux_002 + 34. Source assignments for nios_system:NiosII|nios_system_rsp_xbar_demux_002:rsp_xbar_demux_003 + 35. Source assignments for nios_system:NiosII|nios_system_rsp_xbar_demux_002:rsp_xbar_demux_004 + 36. Source assignments for nios_system:NiosII|nios_system_rsp_xbar_demux_002:rsp_xbar_demux_005 + 37. Source assignments for nios_system:NiosII|nios_system_rsp_xbar_demux_002:rsp_xbar_demux_006 + 38. Source assignments for nios_system:NiosII|nios_system_rsp_xbar_demux_002:rsp_xbar_demux_007 + 39. Source assignments for nios_system:NiosII|nios_system_rsp_xbar_demux_002:rsp_xbar_demux_008 + 40. Source assignments for nios_system:NiosII|nios_system_rsp_xbar_demux_002:rsp_xbar_demux_009 + 41. Source assignments for nios_system:NiosII|nios_system_rsp_xbar_demux_002:rsp_xbar_demux_010 + 42. Source assignments for nios_system:NiosII|nios_system_rsp_xbar_demux_002:rsp_xbar_demux_011 + 43. Source assignments for nios_system:NiosII|nios_system_rsp_xbar_demux_002:rsp_xbar_demux_012 + 44. Source assignments for nios_system:NiosII|nios_system_rsp_xbar_demux_002:rsp_xbar_demux_013 + 45. Source assignments for nios_system:NiosII|nios_system_rsp_xbar_demux_002:rsp_xbar_demux_014 + 46. Source assignments for nios_system:NiosII|nios_system_rsp_xbar_demux_002:rsp_xbar_demux_015 + 47. Source assignments for nios_system:NiosII|nios_system_rsp_xbar_demux_002:rsp_xbar_demux_016 + 48. Source assignments for nios_system:NiosII|nios_system_rsp_xbar_demux_002:rsp_xbar_demux_017 + 49. Parameter Settings for User Entity Instance: nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_register_bank_a_module:nios_system_nios2_processor_register_bank_a + 50. Parameter Settings for User Entity Instance: nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_register_bank_a_module:nios_system_nios2_processor_register_bank_a|altsyncram:the_altsyncram + 51. Parameter Settings for User Entity Instance: nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_register_bank_b_module:nios_system_nios2_processor_register_bank_b + 52. Parameter Settings for User Entity Instance: nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_register_bank_b_module:nios_system_nios2_processor_register_bank_b|altsyncram:the_altsyncram + 53. Parameter Settings for User Entity Instance: nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_oci_debug:the_nios_system_nios2_processor_nios2_oci_debug|altera_std_synchronizer:the_altera_std_synchronizer + 54. Parameter Settings for User Entity Instance: nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_ocimem:the_nios_system_nios2_processor_nios2_ocimem|nios_system_nios2_processor_ociram_sp_ram_module:nios_system_nios2_processor_ociram_sp_ram + 55. Parameter Settings for User Entity Instance: nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_ocimem:the_nios_system_nios2_processor_nios2_ocimem|nios_system_nios2_processor_ociram_sp_ram_module:nios_system_nios2_processor_ociram_sp_ram|altsyncram:the_altsyncram + 56. Parameter Settings for User Entity Instance: nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|altera_std_synchronizer:the_altera_std_synchronizer1 + 57. Parameter Settings for User Entity Instance: nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|altera_std_synchronizer:the_altera_std_synchronizer2 + 58. Parameter Settings for User Entity Instance: nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk|altera_std_synchronizer:the_altera_std_synchronizer3 + 59. Parameter Settings for User Entity Instance: nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk|altera_std_synchronizer:the_altera_std_synchronizer4 + 60. Parameter Settings for User Entity Instance: nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|sld_virtual_jtag_basic:nios_system_nios2_processor_jtag_debug_module_phy + 61. Parameter Settings for User Entity Instance: nios_system:NiosII|nios_system_onchip_memory:onchip_memory + 62. Parameter Settings for User Entity Instance: nios_system:NiosII|nios_system_onchip_memory:onchip_memory|altsyncram:the_altsyncram + 63. Parameter Settings for User Entity Instance: nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_w:the_nios_system_jtag_uart_scfifo_w|scfifo:wfifo + 64. Parameter Settings for User Entity Instance: nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_r:the_nios_system_jtag_uart_scfifo_r|scfifo:rfifo + 65. Parameter Settings for User Entity Instance: nios_system:NiosII|altera_merlin_master_translator:nios2_processor_instruction_master_translator + 66. Parameter Settings for User Entity Instance: nios_system:NiosII|altera_merlin_master_translator:nios2_processor_data_master_translator + 67. Parameter Settings for User Entity Instance: nios_system:NiosII|altera_merlin_slave_translator:nios2_processor_jtag_debug_module_translator + 68. Parameter Settings for User Entity Instance: nios_system:NiosII|altera_merlin_slave_translator:onchip_memory_s1_translator + 69. Parameter Settings for User Entity Instance: nios_system:NiosII|altera_merlin_slave_translator:leds_s1_translator + 70. Parameter Settings for User Entity Instance: nios_system:NiosII|altera_merlin_slave_translator:jtag_uart_avalon_jtag_slave_translator + 71. Parameter Settings for User Entity Instance: nios_system:NiosII|altera_merlin_slave_translator:ledrs_s1_translator + 72. Parameter Settings for User Entity Instance: nios_system:NiosII|altera_merlin_slave_translator:switches_s1_translator + 73. Parameter Settings for User Entity Instance: nios_system:NiosII|altera_merlin_slave_translator:push_switches_s1_translator + 74. Parameter Settings for User Entity Instance: nios_system:NiosII|altera_merlin_slave_translator:hex0_s1_translator + 75. Parameter Settings for User Entity Instance: nios_system:NiosII|altera_merlin_slave_translator:hex1_s1_translator + 76. Parameter Settings for User Entity Instance: nios_system:NiosII|altera_merlin_slave_translator:hex2_s1_translator + 77. Parameter Settings for User Entity Instance: nios_system:NiosII|altera_merlin_slave_translator:hex3_s1_translator + 78. Parameter Settings for User Entity Instance: nios_system:NiosII|altera_merlin_slave_translator:hex4_s1_translator + 79. Parameter Settings for User Entity Instance: nios_system:NiosII|altera_merlin_slave_translator:hex5_s1_translator + 80. Parameter Settings for User Entity Instance: nios_system:NiosII|altera_merlin_slave_translator:hex6_s1_translator + 81. Parameter Settings for User Entity Instance: nios_system:NiosII|altera_merlin_slave_translator:hex7_s1_translator + 82. Parameter Settings for User Entity Instance: nios_system:NiosII|altera_merlin_slave_translator:lcd_16207_0_control_slave_translator + 83. Parameter Settings for User Entity Instance: nios_system:NiosII|altera_merlin_slave_translator:lcd_on_s1_translator + 84. Parameter Settings for User Entity Instance: nios_system:NiosII|altera_merlin_slave_translator:lcd_blon_s1_translator + 85. Parameter Settings for User Entity Instance: nios_system:NiosII|altera_merlin_master_agent:nios2_processor_instruction_master_translator_avalon_universal_master_0_agent + 86. Parameter Settings for User Entity Instance: nios_system:NiosII|altera_merlin_master_agent:nios2_processor_data_master_translator_avalon_universal_master_0_agent + 87. Parameter Settings for User Entity Instance: nios_system:NiosII|altera_merlin_slave_agent:nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent + 88. Parameter Settings for User Entity Instance: nios_system:NiosII|altera_merlin_slave_agent:nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor + 89. Parameter Settings for User Entity Instance: nios_system:NiosII|altera_avalon_sc_fifo:nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo + 90. Parameter Settings for User Entity Instance: nios_system:NiosII|altera_merlin_slave_agent:onchip_memory_s1_translator_avalon_universal_slave_0_agent + 91. Parameter Settings for User Entity Instance: nios_system:NiosII|altera_merlin_slave_agent:onchip_memory_s1_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor + 92. Parameter Settings for User Entity Instance: nios_system:NiosII|altera_avalon_sc_fifo:onchip_memory_s1_translator_avalon_universal_slave_0_agent_rsp_fifo + 93. Parameter Settings for User Entity Instance: nios_system:NiosII|altera_merlin_slave_agent:leds_s1_translator_avalon_universal_slave_0_agent + 94. Parameter Settings for User Entity Instance: nios_system:NiosII|altera_merlin_slave_agent:leds_s1_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor + 95. Parameter Settings for User Entity Instance: nios_system:NiosII|altera_avalon_sc_fifo:leds_s1_translator_avalon_universal_slave_0_agent_rsp_fifo + 96. Parameter Settings for User Entity Instance: nios_system:NiosII|altera_merlin_slave_agent:jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent + 97. Parameter Settings for User Entity Instance: nios_system:NiosII|altera_merlin_slave_agent:jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor + 98. Parameter Settings for User Entity Instance: nios_system:NiosII|altera_avalon_sc_fifo:jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rsp_fifo + 99. Parameter Settings for User Entity Instance: nios_system:NiosII|altera_merlin_slave_agent:ledrs_s1_translator_avalon_universal_slave_0_agent +100. Parameter Settings for User Entity Instance: nios_system:NiosII|altera_merlin_slave_agent:ledrs_s1_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor +101. Parameter Settings for User Entity Instance: nios_system:NiosII|altera_avalon_sc_fifo:ledrs_s1_translator_avalon_universal_slave_0_agent_rsp_fifo +102. Parameter Settings for User Entity Instance: nios_system:NiosII|altera_merlin_slave_agent:switches_s1_translator_avalon_universal_slave_0_agent +103. Parameter Settings for User Entity Instance: nios_system:NiosII|altera_merlin_slave_agent:switches_s1_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor +104. Parameter Settings for User Entity Instance: nios_system:NiosII|altera_avalon_sc_fifo:switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo +105. Parameter Settings for User Entity Instance: nios_system:NiosII|altera_merlin_slave_agent:push_switches_s1_translator_avalon_universal_slave_0_agent +106. Parameter Settings for User Entity Instance: nios_system:NiosII|altera_merlin_slave_agent:push_switches_s1_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor +107. Parameter Settings for User Entity Instance: nios_system:NiosII|altera_avalon_sc_fifo:push_switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo +108. Parameter Settings for User Entity Instance: nios_system:NiosII|altera_merlin_slave_agent:hex0_s1_translator_avalon_universal_slave_0_agent +109. Parameter Settings for User Entity Instance: nios_system:NiosII|altera_merlin_slave_agent:hex0_s1_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor +110. Parameter Settings for User Entity Instance: nios_system:NiosII|altera_avalon_sc_fifo:hex0_s1_translator_avalon_universal_slave_0_agent_rsp_fifo +111. Parameter Settings for User Entity Instance: nios_system:NiosII|altera_merlin_slave_agent:hex1_s1_translator_avalon_universal_slave_0_agent +112. Parameter Settings for User Entity Instance: nios_system:NiosII|altera_merlin_slave_agent:hex1_s1_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor +113. Parameter Settings for User Entity Instance: nios_system:NiosII|altera_avalon_sc_fifo:hex1_s1_translator_avalon_universal_slave_0_agent_rsp_fifo +114. Parameter Settings for User Entity Instance: nios_system:NiosII|altera_merlin_slave_agent:hex2_s1_translator_avalon_universal_slave_0_agent +115. Parameter Settings for User Entity Instance: nios_system:NiosII|altera_merlin_slave_agent:hex2_s1_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor +116. Parameter Settings for User Entity Instance: nios_system:NiosII|altera_avalon_sc_fifo:hex2_s1_translator_avalon_universal_slave_0_agent_rsp_fifo +117. Parameter Settings for User Entity Instance: nios_system:NiosII|altera_merlin_slave_agent:hex3_s1_translator_avalon_universal_slave_0_agent +118. Parameter Settings for User Entity Instance: nios_system:NiosII|altera_merlin_slave_agent:hex3_s1_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor +119. Parameter Settings for User Entity Instance: nios_system:NiosII|altera_avalon_sc_fifo:hex3_s1_translator_avalon_universal_slave_0_agent_rsp_fifo +120. Parameter Settings for User Entity Instance: nios_system:NiosII|altera_merlin_slave_agent:hex4_s1_translator_avalon_universal_slave_0_agent +121. Parameter Settings for User Entity Instance: nios_system:NiosII|altera_merlin_slave_agent:hex4_s1_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor +122. Parameter Settings for User Entity Instance: nios_system:NiosII|altera_avalon_sc_fifo:hex4_s1_translator_avalon_universal_slave_0_agent_rsp_fifo +123. Parameter Settings for User Entity Instance: nios_system:NiosII|altera_merlin_slave_agent:hex5_s1_translator_avalon_universal_slave_0_agent +124. Parameter Settings for User Entity Instance: nios_system:NiosII|altera_merlin_slave_agent:hex5_s1_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor +125. Parameter Settings for User Entity Instance: nios_system:NiosII|altera_avalon_sc_fifo:hex5_s1_translator_avalon_universal_slave_0_agent_rsp_fifo +126. Parameter Settings for User Entity Instance: nios_system:NiosII|altera_merlin_slave_agent:hex6_s1_translator_avalon_universal_slave_0_agent +127. Parameter Settings for User Entity Instance: nios_system:NiosII|altera_merlin_slave_agent:hex6_s1_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor +128. Parameter Settings for User Entity Instance: nios_system:NiosII|altera_avalon_sc_fifo:hex6_s1_translator_avalon_universal_slave_0_agent_rsp_fifo +129. Parameter Settings for User Entity Instance: nios_system:NiosII|altera_merlin_slave_agent:hex7_s1_translator_avalon_universal_slave_0_agent +130. Parameter Settings for User Entity Instance: nios_system:NiosII|altera_merlin_slave_agent:hex7_s1_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor +131. Parameter Settings for User Entity Instance: nios_system:NiosII|altera_avalon_sc_fifo:hex7_s1_translator_avalon_universal_slave_0_agent_rsp_fifo +132. Parameter Settings for User Entity Instance: nios_system:NiosII|altera_merlin_slave_agent:lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent +133. Parameter Settings for User Entity Instance: nios_system:NiosII|altera_merlin_slave_agent:lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor +134. Parameter Settings for User Entity Instance: nios_system:NiosII|altera_avalon_sc_fifo:lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rsp_fifo +135. Parameter Settings for User Entity Instance: nios_system:NiosII|altera_merlin_slave_agent:lcd_on_s1_translator_avalon_universal_slave_0_agent +136. Parameter Settings for User Entity Instance: nios_system:NiosII|altera_merlin_slave_agent:lcd_on_s1_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor +137. Parameter Settings for User Entity Instance: nios_system:NiosII|altera_avalon_sc_fifo:lcd_on_s1_translator_avalon_universal_slave_0_agent_rsp_fifo +138. Parameter Settings for User Entity Instance: nios_system:NiosII|altera_merlin_slave_agent:lcd_blon_s1_translator_avalon_universal_slave_0_agent +139. Parameter Settings for User Entity Instance: nios_system:NiosII|altera_merlin_slave_agent:lcd_blon_s1_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor +140. Parameter Settings for User Entity Instance: nios_system:NiosII|altera_avalon_sc_fifo:lcd_blon_s1_translator_avalon_universal_slave_0_agent_rsp_fifo +141. Parameter Settings for User Entity Instance: nios_system:NiosII|nios_system_addr_router:addr_router|nios_system_addr_router_default_decode:the_default_decode +142. Parameter Settings for User Entity Instance: nios_system:NiosII|nios_system_addr_router_001:addr_router_001|nios_system_addr_router_001_default_decode:the_default_decode +143. Parameter Settings for User Entity Instance: nios_system:NiosII|nios_system_id_router:id_router|nios_system_id_router_default_decode:the_default_decode +144. Parameter Settings for User Entity Instance: nios_system:NiosII|nios_system_id_router:id_router_001|nios_system_id_router_default_decode:the_default_decode +145. Parameter Settings for User Entity Instance: nios_system:NiosII|nios_system_id_router_002:id_router_002|nios_system_id_router_002_default_decode:the_default_decode +146. Parameter Settings for User Entity Instance: nios_system:NiosII|nios_system_id_router_002:id_router_003|nios_system_id_router_002_default_decode:the_default_decode +147. Parameter Settings for User Entity Instance: nios_system:NiosII|nios_system_id_router_002:id_router_004|nios_system_id_router_002_default_decode:the_default_decode +148. Parameter Settings for User Entity Instance: nios_system:NiosII|nios_system_id_router_002:id_router_005|nios_system_id_router_002_default_decode:the_default_decode +149. Parameter Settings for User Entity Instance: nios_system:NiosII|nios_system_id_router_002:id_router_006|nios_system_id_router_002_default_decode:the_default_decode +150. Parameter Settings for User Entity Instance: nios_system:NiosII|nios_system_id_router_002:id_router_007|nios_system_id_router_002_default_decode:the_default_decode +151. Parameter Settings for User Entity Instance: nios_system:NiosII|nios_system_id_router_002:id_router_008|nios_system_id_router_002_default_decode:the_default_decode +152. Parameter Settings for User Entity Instance: nios_system:NiosII|nios_system_id_router_002:id_router_009|nios_system_id_router_002_default_decode:the_default_decode +153. Parameter Settings for User Entity Instance: nios_system:NiosII|nios_system_id_router_002:id_router_010|nios_system_id_router_002_default_decode:the_default_decode +154. Parameter Settings for User Entity Instance: nios_system:NiosII|nios_system_id_router_002:id_router_011|nios_system_id_router_002_default_decode:the_default_decode +155. Parameter Settings for User Entity Instance: nios_system:NiosII|nios_system_id_router_002:id_router_012|nios_system_id_router_002_default_decode:the_default_decode +156. Parameter Settings for User Entity Instance: nios_system:NiosII|nios_system_id_router_002:id_router_013|nios_system_id_router_002_default_decode:the_default_decode +157. Parameter Settings for User Entity Instance: nios_system:NiosII|nios_system_id_router_002:id_router_014|nios_system_id_router_002_default_decode:the_default_decode +158. Parameter Settings for User Entity Instance: nios_system:NiosII|nios_system_id_router_002:id_router_015|nios_system_id_router_002_default_decode:the_default_decode +159. Parameter Settings for User Entity Instance: nios_system:NiosII|nios_system_id_router_002:id_router_016|nios_system_id_router_002_default_decode:the_default_decode +160. Parameter Settings for User Entity Instance: nios_system:NiosII|nios_system_id_router_002:id_router_017|nios_system_id_router_002_default_decode:the_default_decode +161. Parameter Settings for User Entity Instance: nios_system:NiosII|altera_reset_controller:rst_controller +162. Parameter Settings for User Entity Instance: nios_system:NiosII|altera_reset_controller:rst_controller|altera_reset_synchronizer:alt_rst_sync_uq1 +163. Parameter Settings for User Entity Instance: nios_system:NiosII|nios_system_cmd_xbar_mux:cmd_xbar_mux|altera_merlin_arbitrator:arb +164. Parameter Settings for User Entity Instance: nios_system:NiosII|nios_system_cmd_xbar_mux:cmd_xbar_mux|altera_merlin_arbitrator:arb|altera_merlin_arb_adder:adder +165. Parameter Settings for User Entity Instance: nios_system:NiosII|nios_system_cmd_xbar_mux:cmd_xbar_mux_001|altera_merlin_arbitrator:arb +166. Parameter Settings for User Entity Instance: nios_system:NiosII|nios_system_cmd_xbar_mux:cmd_xbar_mux_001|altera_merlin_arbitrator:arb|altera_merlin_arb_adder:adder +167. Parameter Settings for User Entity Instance: nios_system:NiosII|nios_system_rsp_xbar_mux:rsp_xbar_mux|altera_merlin_arbitrator:arb +168. Parameter Settings for User Entity Instance: nios_system:NiosII|nios_system_rsp_xbar_mux:rsp_xbar_mux|altera_merlin_arbitrator:arb|altera_merlin_arb_adder:adder +169. Parameter Settings for User Entity Instance: nios_system:NiosII|nios_system_rsp_xbar_mux_001:rsp_xbar_mux_001|altera_merlin_arbitrator:arb +170. Parameter Settings for User Entity Instance: nios_system:NiosII|nios_system_rsp_xbar_mux_001:rsp_xbar_mux_001|altera_merlin_arbitrator:arb|altera_merlin_arb_adder:adder +171. altsyncram Parameter Settings by Entity Instance +172. scfifo Parameter Settings by Entity Instance +173. Port Connectivity Checks: "nios_system:NiosII|nios_system_rsp_xbar_mux_001:rsp_xbar_mux_001|altera_merlin_arbitrator:arb|altera_merlin_arb_adder:adder" +174. Port Connectivity Checks: "nios_system:NiosII|nios_system_rsp_xbar_mux:rsp_xbar_mux|altera_merlin_arbitrator:arb|altera_merlin_arb_adder:adder" +175. Port Connectivity Checks: "nios_system:NiosII|nios_system_cmd_xbar_mux:cmd_xbar_mux|altera_merlin_arbitrator:arb|altera_merlin_arb_adder:adder" +176. Port Connectivity Checks: "nios_system:NiosII|altera_reset_controller:rst_controller" +177. Port Connectivity Checks: "nios_system:NiosII|nios_system_id_router_002:id_router_002|nios_system_id_router_002_default_decode:the_default_decode" +178. Port Connectivity Checks: "nios_system:NiosII|nios_system_id_router:id_router|nios_system_id_router_default_decode:the_default_decode" +179. Port Connectivity Checks: "nios_system:NiosII|nios_system_addr_router_001:addr_router_001|nios_system_addr_router_001_default_decode:the_default_decode" +180. Port Connectivity Checks: "nios_system:NiosII|nios_system_addr_router:addr_router|nios_system_addr_router_default_decode:the_default_decode" +181. Port Connectivity Checks: "nios_system:NiosII|altera_avalon_sc_fifo:lcd_blon_s1_translator_avalon_universal_slave_0_agent_rsp_fifo" +182. Port Connectivity Checks: "nios_system:NiosII|altera_merlin_slave_agent:lcd_blon_s1_translator_avalon_universal_slave_0_agent" +183. Port Connectivity Checks: "nios_system:NiosII|altera_avalon_sc_fifo:lcd_on_s1_translator_avalon_universal_slave_0_agent_rsp_fifo" +184. Port Connectivity Checks: "nios_system:NiosII|altera_merlin_slave_agent:lcd_on_s1_translator_avalon_universal_slave_0_agent" +185. Port Connectivity Checks: "nios_system:NiosII|altera_avalon_sc_fifo:lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rsp_fifo" +186. Port Connectivity Checks: "nios_system:NiosII|altera_merlin_slave_agent:lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent" +187. Port Connectivity Checks: "nios_system:NiosII|altera_avalon_sc_fifo:hex7_s1_translator_avalon_universal_slave_0_agent_rsp_fifo" +188. Port Connectivity Checks: "nios_system:NiosII|altera_merlin_slave_agent:hex7_s1_translator_avalon_universal_slave_0_agent" +189. Port Connectivity Checks: "nios_system:NiosII|altera_avalon_sc_fifo:hex6_s1_translator_avalon_universal_slave_0_agent_rsp_fifo" +190. Port Connectivity Checks: "nios_system:NiosII|altera_merlin_slave_agent:hex6_s1_translator_avalon_universal_slave_0_agent" +191. Port Connectivity Checks: "nios_system:NiosII|altera_avalon_sc_fifo:hex5_s1_translator_avalon_universal_slave_0_agent_rsp_fifo" +192. Port Connectivity Checks: "nios_system:NiosII|altera_merlin_slave_agent:hex5_s1_translator_avalon_universal_slave_0_agent" +193. Port Connectivity Checks: "nios_system:NiosII|altera_avalon_sc_fifo:hex4_s1_translator_avalon_universal_slave_0_agent_rsp_fifo" +194. Port Connectivity Checks: "nios_system:NiosII|altera_merlin_slave_agent:hex4_s1_translator_avalon_universal_slave_0_agent" +195. Port Connectivity Checks: "nios_system:NiosII|altera_avalon_sc_fifo:hex3_s1_translator_avalon_universal_slave_0_agent_rsp_fifo" +196. Port Connectivity Checks: "nios_system:NiosII|altera_merlin_slave_agent:hex3_s1_translator_avalon_universal_slave_0_agent" +197. Port Connectivity Checks: "nios_system:NiosII|altera_avalon_sc_fifo:hex2_s1_translator_avalon_universal_slave_0_agent_rsp_fifo" +198. Port Connectivity Checks: "nios_system:NiosII|altera_merlin_slave_agent:hex2_s1_translator_avalon_universal_slave_0_agent" +199. Port Connectivity Checks: "nios_system:NiosII|altera_avalon_sc_fifo:hex1_s1_translator_avalon_universal_slave_0_agent_rsp_fifo" +200. Port Connectivity Checks: "nios_system:NiosII|altera_merlin_slave_agent:hex1_s1_translator_avalon_universal_slave_0_agent" +201. Port Connectivity Checks: "nios_system:NiosII|altera_avalon_sc_fifo:hex0_s1_translator_avalon_universal_slave_0_agent_rsp_fifo" +202. Port Connectivity Checks: "nios_system:NiosII|altera_merlin_slave_agent:hex0_s1_translator_avalon_universal_slave_0_agent" +203. Port Connectivity Checks: "nios_system:NiosII|altera_avalon_sc_fifo:push_switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo" +204. Port Connectivity Checks: "nios_system:NiosII|altera_merlin_slave_agent:push_switches_s1_translator_avalon_universal_slave_0_agent" +205. Port Connectivity Checks: "nios_system:NiosII|altera_avalon_sc_fifo:switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo" +206. Port Connectivity Checks: "nios_system:NiosII|altera_merlin_slave_agent:switches_s1_translator_avalon_universal_slave_0_agent" +207. Port Connectivity Checks: "nios_system:NiosII|altera_avalon_sc_fifo:ledrs_s1_translator_avalon_universal_slave_0_agent_rsp_fifo" +208. Port Connectivity Checks: "nios_system:NiosII|altera_merlin_slave_agent:ledrs_s1_translator_avalon_universal_slave_0_agent" +209. Port Connectivity Checks: "nios_system:NiosII|altera_avalon_sc_fifo:jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rsp_fifo" +210. Port Connectivity Checks: "nios_system:NiosII|altera_merlin_slave_agent:jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent" +211. Port Connectivity Checks: "nios_system:NiosII|altera_avalon_sc_fifo:leds_s1_translator_avalon_universal_slave_0_agent_rsp_fifo" +212. Port Connectivity Checks: "nios_system:NiosII|altera_merlin_slave_agent:leds_s1_translator_avalon_universal_slave_0_agent" +213. Port Connectivity Checks: "nios_system:NiosII|altera_avalon_sc_fifo:onchip_memory_s1_translator_avalon_universal_slave_0_agent_rsp_fifo" +214. Port Connectivity Checks: "nios_system:NiosII|altera_merlin_slave_agent:onchip_memory_s1_translator_avalon_universal_slave_0_agent" +215. Port Connectivity Checks: "nios_system:NiosII|altera_avalon_sc_fifo:nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo" +216. Port Connectivity Checks: "nios_system:NiosII|altera_merlin_slave_agent:nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent" +217. Port Connectivity Checks: "nios_system:NiosII|altera_merlin_master_agent:nios2_processor_data_master_translator_avalon_universal_master_0_agent" +218. Port Connectivity Checks: "nios_system:NiosII|altera_merlin_master_agent:nios2_processor_instruction_master_translator_avalon_universal_master_0_agent" +219. Port Connectivity Checks: "nios_system:NiosII|altera_merlin_slave_translator:lcd_blon_s1_translator" +220. Port Connectivity Checks: "nios_system:NiosII|altera_merlin_slave_translator:lcd_on_s1_translator" +221. Port Connectivity Checks: "nios_system:NiosII|altera_merlin_slave_translator:lcd_16207_0_control_slave_translator" +222. Port Connectivity Checks: "nios_system:NiosII|altera_merlin_slave_translator:hex7_s1_translator" +223. Port Connectivity Checks: "nios_system:NiosII|altera_merlin_slave_translator:hex6_s1_translator" +224. Port Connectivity Checks: "nios_system:NiosII|altera_merlin_slave_translator:hex5_s1_translator" +225. Port Connectivity Checks: "nios_system:NiosII|altera_merlin_slave_translator:hex4_s1_translator" +226. Port Connectivity Checks: "nios_system:NiosII|altera_merlin_slave_translator:hex3_s1_translator" +227. Port Connectivity Checks: "nios_system:NiosII|altera_merlin_slave_translator:hex2_s1_translator" +228. Port Connectivity Checks: "nios_system:NiosII|altera_merlin_slave_translator:hex1_s1_translator" +229. Port Connectivity Checks: "nios_system:NiosII|altera_merlin_slave_translator:hex0_s1_translator" +230. Port Connectivity Checks: "nios_system:NiosII|altera_merlin_slave_translator:push_switches_s1_translator" +231. Port Connectivity Checks: "nios_system:NiosII|altera_merlin_slave_translator:switches_s1_translator" +232. Port Connectivity Checks: "nios_system:NiosII|altera_merlin_slave_translator:ledrs_s1_translator" +233. Port Connectivity Checks: "nios_system:NiosII|altera_merlin_slave_translator:jtag_uart_avalon_jtag_slave_translator" +234. Port Connectivity Checks: "nios_system:NiosII|altera_merlin_slave_translator:leds_s1_translator" +235. Port Connectivity Checks: "nios_system:NiosII|altera_merlin_slave_translator:onchip_memory_s1_translator" +236. Port Connectivity Checks: "nios_system:NiosII|altera_merlin_slave_translator:nios2_processor_jtag_debug_module_translator" +237. Port Connectivity Checks: "nios_system:NiosII|altera_merlin_master_translator:nios2_processor_data_master_translator" +238. Port Connectivity Checks: "nios_system:NiosII|altera_merlin_master_translator:nios2_processor_instruction_master_translator" +239. Port Connectivity Checks: "nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic" +240. Port Connectivity Checks: "nios_system:NiosII|nios_system_jtag_uart:jtag_uart" +241. Port Connectivity Checks: "nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|sld_virtual_jtag_basic:nios_system_nios2_processor_jtag_debug_module_phy" +242. Port Connectivity Checks: "nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk|altera_std_synchronizer:the_altera_std_synchronizer4" +243. Port Connectivity Checks: "nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk|altera_std_synchronizer:the_altera_std_synchronizer3" +244. Port Connectivity Checks: "nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_oci_pib:the_nios_system_nios2_processor_nios2_oci_pib" +245. Port Connectivity Checks: "nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_oci_fifo:the_nios_system_nios2_processor_nios2_oci_fifo|nios_system_nios2_processor_nios2_oci_fifowp_inc:nios_system_nios2_processor_nios2_oci_fifowp_inc_fifowp" +246. Port Connectivity Checks: "nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_oci_dtrace:the_nios_system_nios2_processor_nios2_oci_dtrace|nios_system_nios2_processor_nios2_oci_td_mode:nios_system_nios2_processor_nios2_oci_trc_ctrl_td_mode" +247. Port Connectivity Checks: "nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_oci_itrace:the_nios_system_nios2_processor_nios2_oci_itrace" +248. Port Connectivity Checks: "nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_oci_dbrk:the_nios_system_nios2_processor_nios2_oci_dbrk" +249. Port Connectivity Checks: "nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_oci_xbrk:the_nios_system_nios2_processor_nios2_oci_xbrk" +250. Port Connectivity Checks: "nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_oci_debug:the_nios_system_nios2_processor_nios2_oci_debug" +251. Port Connectivity Checks: "nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci" +252. Port Connectivity Checks: "nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_test_bench:the_nios_system_nios2_processor_test_bench" +253. Port Connectivity Checks: "nios_system:NiosII|nios_system_nios2_processor:nios2_processor" +254. Port Connectivity Checks: "nios_system:NiosII" +255. Elapsed Time Per Partition +256. Analysis & Synthesis Messages +257. Analysis & Synthesis Suppressed Messages + + + +---------------- +; Legal Notice ; +---------------- +Copyright (C) 1991-2013 Altera Corporation +Your use of Altera Corporation's design tools, logic functions +and other software and tools, and its AMPP partner logic +functions, and any output files from any of the foregoing +(including device programming or simulation files), and any +associated documentation or information are expressly subject +to the terms and conditions of the Altera Program License +Subscription Agreement, Altera MegaCore Function License +Agreement, or other applicable license agreement, including, +without limitation, that your use is for the sole purpose of +programming logic devices manufactured by Altera and sold by +Altera or its authorized distributors. Please refer to the +applicable agreement for further details. + + + ++--------------------------------------------------------------------------------------+ +; Analysis & Synthesis Summary ; ++------------------------------------+-------------------------------------------------+ +; Analysis & Synthesis Status ; Successful - Fri Dec 02 01:32:41 2016 ; +; Quartus II 64-Bit Version ; 13.0.1 Build 232 06/12/2013 SP 1 SJ Web Edition ; +; Revision Name ; lights ; +; Top-level Entity Name ; lights ; +; Family ; Cyclone IV E ; +; Total logic elements ; 2,333 ; +; Total combinational functions ; 2,058 ; +; Dedicated logic registers ; 1,212 ; +; Total registers ; 1212 ; +; Total pins ; 118 ; +; Total virtual pins ; 0 ; +; Total memory bits ; 1,649,664 ; +; Embedded Multiplier 9-bit elements ; 0 ; +; Total PLLs ; 0 ; ++------------------------------------+-------------------------------------------------+ + + ++----------------------------------------------------------------------------------------------------------------------+ +; Analysis & Synthesis Settings ; ++----------------------------------------------------------------------------+--------------------+--------------------+ +; Option ; Setting ; Default Value ; ++----------------------------------------------------------------------------+--------------------+--------------------+ +; Device ; EP4CE115F29C7 ; ; +; Top-level entity name ; lights ; lights ; +; Family name ; Cyclone IV E ; Cyclone IV GX ; +; Use smart compilation ; Off ; Off ; +; Enable parallel Assembler and TimeQuest Timing Analyzer during compilation ; On ; On ; +; Enable compact report table ; Off ; Off ; +; Restructure Multiplexers ; Auto ; Auto ; +; Create Debugging Nodes for IP Cores ; Off ; Off ; +; Preserve fewer node names ; On ; On ; +; Disable OpenCore Plus hardware evaluation ; Off ; Off ; +; Verilog Version ; Verilog_2001 ; Verilog_2001 ; +; VHDL Version ; VHDL_1993 ; VHDL_1993 ; +; State Machine Processing ; Auto ; Auto ; +; Safe State Machine ; Off ; Off ; +; Extract Verilog State Machines ; On ; On ; +; Extract VHDL State Machines ; On ; On ; +; Ignore Verilog initial constructs ; Off ; Off ; +; Iteration limit for constant Verilog loops ; 5000 ; 5000 ; +; Iteration limit for non-constant Verilog loops ; 250 ; 250 ; +; Add Pass-Through Logic to Inferred RAMs ; On ; On ; +; Infer RAMs from Raw Logic ; On ; On ; +; Parallel Synthesis ; On ; On ; +; DSP Block Balancing ; Auto ; Auto ; +; NOT Gate Push-Back ; On ; On ; +; Power-Up Don't Care ; On ; On ; +; Remove Redundant Logic Cells ; Off ; Off ; +; Remove Duplicate Registers ; On ; On ; +; Ignore CARRY Buffers ; Off ; Off ; +; Ignore CASCADE Buffers ; Off ; Off ; +; Ignore GLOBAL Buffers ; Off ; Off ; +; Ignore ROW GLOBAL Buffers ; Off ; Off ; +; Ignore LCELL Buffers ; Off ; Off ; +; Ignore SOFT Buffers ; On ; On ; +; Limit AHDL Integers to 32 Bits ; Off ; Off ; +; Optimization Technique ; Balanced ; Balanced ; +; Carry Chain Length ; 70 ; 70 ; +; Auto Carry Chains ; On ; On ; +; Auto Open-Drain Pins ; On ; On ; +; Perform WYSIWYG Primitive Resynthesis ; Off ; Off ; +; Auto ROM Replacement ; On ; On ; +; Auto RAM Replacement ; On ; On ; +; Auto DSP Block Replacement ; On ; On ; +; Auto Shift Register Replacement ; Auto ; Auto ; +; Allow Shift Register Merging across Hierarchies ; Auto ; Auto ; +; Auto Clock Enable Replacement ; On ; On ; +; Strict RAM Replacement ; Off ; Off ; +; Allow Synchronous Control Signals ; On ; On ; +; Force Use of Synchronous Clear Signals ; Off ; Off ; +; Auto RAM Block Balancing ; On ; On ; +; Auto RAM to Logic Cell Conversion ; Off ; Off ; +; Auto Resource Sharing ; Off ; Off ; +; Allow Any RAM Size For Recognition ; Off ; Off ; +; Allow Any ROM Size For Recognition ; Off ; Off ; +; Allow Any Shift Register Size For Recognition ; Off ; Off ; +; Use LogicLock Constraints during Resource Balancing ; On ; On ; +; Ignore translate_off and synthesis_off directives ; Off ; Off ; +; Timing-Driven Synthesis ; On ; On ; +; Report Parameter Settings ; On ; On ; +; Report Source Assignments ; On ; On ; +; Report Connectivity Checks ; On ; On ; +; Ignore Maximum Fan-Out Assignments ; Off ; Off ; +; Synchronization Register Chain Length ; 2 ; 2 ; +; PowerPlay Power Optimization ; Normal compilation ; Normal compilation ; +; HDL message level ; Level2 ; Level2 ; +; Suppress Register Optimization Related Messages ; Off ; Off ; +; Number of Removed Registers Reported in Synthesis Report ; 5000 ; 5000 ; +; Number of Swept Nodes Reported in Synthesis Report ; 5000 ; 5000 ; +; Number of Inverted Registers Reported in Synthesis Report ; 100 ; 100 ; +; Clock MUX Protection ; On ; On ; +; Auto Gated Clock Conversion ; Off ; Off ; +; Block Design Naming ; Auto ; Auto ; +; SDC constraint protection ; Off ; Off ; +; Synthesis Effort ; Auto ; Auto ; +; Shift Register Replacement - Allow Asynchronous Clear Signal ; On ; On ; +; Pre-Mapping Resynthesis Optimization ; Off ; Off ; +; Analysis & Synthesis Message Level ; Medium ; Medium ; +; Disable Register Merging Across Hierarchies ; Auto ; Auto ; +; Resource Aware Inference For Block RAM ; On ; On ; +; Synthesis Seed ; 1 ; 1 ; ++----------------------------------------------------------------------------+--------------------+--------------------+ + + +Parallel compilation was disabled, but you have multiple processors available. Enable parallel compilation to reduce compilation time. ++-------------------------------------+ +; Parallel Compilation ; ++----------------------------+--------+ +; Processors ; Number ; ++----------------------------+--------+ +; Number detected on machine ; 4 ; +; Maximum allowed ; 1 ; ++----------------------------+--------+ + + ++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Analysis & Synthesis Source Files Read ; ++---------------------------------------------------------------------------------------------------------------------------------------+-----------------+------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------+----------------------------------+ +; File Name with User-Entered Path ; Used in Netlist ; File Type ; File Name with Absolute Path ; Library ; ++---------------------------------------------------------------------------------------------------------------------------------------+-----------------+------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------+----------------------------------+ +; lights.vhd ; yes ; User VHDL File ; C:/Users/takayun/Documents/DE2-115/qsys_tutorial/lights.vhd ; ; +; nios_system/synthesis/nios_system.v ; yes ; User Verilog HDL File ; C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system/synthesis/nios_system.v ; ; +; C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/altera_avalon_sc_fifo.v ; yes ; Auto-Found Verilog HDL File ; C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/altera_avalon_sc_fifo.v ; altera_reserved_qsys_nios_system ; +; C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/altera_merlin_arbitrator.sv ; yes ; Auto-Found SystemVerilog HDL File ; C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/altera_merlin_arbitrator.sv ; altera_reserved_qsys_nios_system ; +; C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/altera_merlin_burst_uncompressor.sv ; yes ; Auto-Found SystemVerilog HDL File ; C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/altera_merlin_burst_uncompressor.sv ; altera_reserved_qsys_nios_system ; +; C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/altera_merlin_master_agent.sv ; yes ; Auto-Found SystemVerilog HDL File ; C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/altera_merlin_master_agent.sv ; altera_reserved_qsys_nios_system ; +; C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/altera_merlin_master_translator.sv ; yes ; Auto-Found SystemVerilog HDL File ; C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/altera_merlin_master_translator.sv ; altera_reserved_qsys_nios_system ; +; C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/altera_merlin_slave_agent.sv ; yes ; Auto-Found SystemVerilog HDL File ; C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/altera_merlin_slave_agent.sv ; altera_reserved_qsys_nios_system ; +; C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/altera_merlin_slave_translator.sv ; yes ; Auto-Found SystemVerilog HDL File ; C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/altera_merlin_slave_translator.sv ; altera_reserved_qsys_nios_system ; +; C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/altera_reset_controller.v ; yes ; Auto-Found Verilog HDL File ; C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/altera_reset_controller.v ; altera_reserved_qsys_nios_system ; +; C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/altera_reset_synchronizer.v ; yes ; Auto-Found Verilog HDL File ; C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/altera_reset_synchronizer.v ; altera_reserved_qsys_nios_system ; +; C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_LEDRs.v ; yes ; Auto-Found Verilog HDL File ; C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_LEDRs.v ; altera_reserved_qsys_nios_system ; +; C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_LEDs.v ; yes ; Auto-Found Verilog HDL File ; C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_LEDs.v ; altera_reserved_qsys_nios_system ; +; C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_addr_router.sv ; yes ; Auto-Found SystemVerilog HDL File ; C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_addr_router.sv ; altera_reserved_qsys_nios_system ; +; C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_addr_router_001.sv ; yes ; Auto-Found SystemVerilog HDL File ; C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_addr_router_001.sv ; altera_reserved_qsys_nios_system ; +; C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_cmd_xbar_demux.sv ; yes ; Auto-Found SystemVerilog HDL File ; C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_cmd_xbar_demux.sv ; altera_reserved_qsys_nios_system ; +; C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_cmd_xbar_demux_001.sv ; yes ; Auto-Found SystemVerilog HDL File ; C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_cmd_xbar_demux_001.sv ; altera_reserved_qsys_nios_system ; +; C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_cmd_xbar_mux.sv ; yes ; Auto-Found SystemVerilog HDL File ; C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_cmd_xbar_mux.sv ; altera_reserved_qsys_nios_system ; +; C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_hex0.v ; yes ; Auto-Found Verilog HDL File ; C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_hex0.v ; altera_reserved_qsys_nios_system ; +; C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_id_router.sv ; yes ; Auto-Found SystemVerilog HDL File ; C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_id_router.sv ; altera_reserved_qsys_nios_system ; +; C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_id_router_002.sv ; yes ; Auto-Found SystemVerilog HDL File ; C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_id_router_002.sv ; altera_reserved_qsys_nios_system ; +; C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_irq_mapper.sv ; yes ; Auto-Found SystemVerilog HDL File ; C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_irq_mapper.sv ; altera_reserved_qsys_nios_system ; +; C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_jtag_uart.v ; yes ; Auto-Found Verilog HDL File ; C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_jtag_uart.v ; altera_reserved_qsys_nios_system ; +; C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_lcd_16207_0.v ; yes ; Auto-Found Verilog HDL File ; C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_lcd_16207_0.v ; altera_reserved_qsys_nios_system ; +; C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_lcd_on.v ; yes ; Auto-Found Verilog HDL File ; C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_lcd_on.v ; altera_reserved_qsys_nios_system ; +; C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor.v ; yes ; Auto-Found Verilog HDL File ; C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor.v ; altera_reserved_qsys_nios_system ; +; C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor_jtag_debug_module_sysclk.v ; yes ; Auto-Found Verilog HDL File ; C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor_jtag_debug_module_sysclk.v ; altera_reserved_qsys_nios_system ; +; C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor_jtag_debug_module_tck.v ; yes ; Auto-Found Verilog HDL File ; C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor_jtag_debug_module_tck.v ; altera_reserved_qsys_nios_system ; +; C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor_jtag_debug_module_wrapper.v ; yes ; Auto-Found Verilog HDL File ; C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor_jtag_debug_module_wrapper.v ; altera_reserved_qsys_nios_system ; +; C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor_oci_test_bench.v ; yes ; Auto-Found Verilog HDL File ; C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor_oci_test_bench.v ; altera_reserved_qsys_nios_system ; +; C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor_test_bench.v ; yes ; Auto-Found Verilog HDL File ; C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_nios2_processor_test_bench.v ; altera_reserved_qsys_nios_system ; +; C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_onchip_memory.v ; yes ; Auto-Found Verilog HDL File ; C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_onchip_memory.v ; altera_reserved_qsys_nios_system ; +; C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_push_switches.v ; yes ; Auto-Found Verilog HDL File ; C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_push_switches.v ; altera_reserved_qsys_nios_system ; +; C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_rsp_xbar_demux_002.sv ; yes ; Auto-Found SystemVerilog HDL File ; C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_rsp_xbar_demux_002.sv ; altera_reserved_qsys_nios_system ; +; C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_rsp_xbar_mux.sv ; yes ; Auto-Found SystemVerilog HDL File ; C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_rsp_xbar_mux.sv ; altera_reserved_qsys_nios_system ; +; C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_rsp_xbar_mux_001.sv ; yes ; Auto-Found SystemVerilog HDL File ; C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_rsp_xbar_mux_001.sv ; altera_reserved_qsys_nios_system ; +; C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_switches.v ; yes ; Auto-Found Verilog HDL File ; C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/nios_system_switches.v ; altera_reserved_qsys_nios_system ; +; altsyncram.tdf ; yes ; Megafunction ; c:/altera/13.0sp1/quartus/libraries/megafunctions/altsyncram.tdf ; ; +; stratix_ram_block.inc ; yes ; Megafunction ; c:/altera/13.0sp1/quartus/libraries/megafunctions/stratix_ram_block.inc ; ; +; lpm_mux.inc ; yes ; Megafunction ; c:/altera/13.0sp1/quartus/libraries/megafunctions/lpm_mux.inc ; ; +; lpm_decode.inc ; yes ; Megafunction ; c:/altera/13.0sp1/quartus/libraries/megafunctions/lpm_decode.inc ; ; +; aglobal130.inc ; yes ; Megafunction ; c:/altera/13.0sp1/quartus/libraries/megafunctions/aglobal130.inc ; ; +; a_rdenreg.inc ; yes ; Megafunction ; c:/altera/13.0sp1/quartus/libraries/megafunctions/a_rdenreg.inc ; ; +; altrom.inc ; yes ; Megafunction ; c:/altera/13.0sp1/quartus/libraries/megafunctions/altrom.inc ; ; +; altram.inc ; yes ; Megafunction ; c:/altera/13.0sp1/quartus/libraries/megafunctions/altram.inc ; ; +; altdpram.inc ; yes ; Megafunction ; c:/altera/13.0sp1/quartus/libraries/megafunctions/altdpram.inc ; ; +; db/altsyncram_0rh1.tdf ; yes ; Auto-Generated Megafunction ; C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/altsyncram_0rh1.tdf ; ; +; db/altsyncram_1rh1.tdf ; yes ; Auto-Generated Megafunction ; C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/altsyncram_1rh1.tdf ; ; +; altera_std_synchronizer.v ; yes ; Megafunction ; c:/altera/13.0sp1/quartus/libraries/megafunctions/altera_std_synchronizer.v ; ; +; db/altsyncram_4891.tdf ; yes ; Auto-Generated Megafunction ; C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/altsyncram_4891.tdf ; ; +; sld_virtual_jtag_basic.v ; yes ; Megafunction ; c:/altera/13.0sp1/quartus/libraries/megafunctions/sld_virtual_jtag_basic.v ; ; +; db/altsyncram_4ed1.tdf ; yes ; Auto-Generated Megafunction ; C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/altsyncram_4ed1.tdf ; ; +; db/decode_qsa.tdf ; yes ; Auto-Generated Megafunction ; C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/decode_qsa.tdf ; ; +; db/mux_nob.tdf ; yes ; Auto-Generated Megafunction ; C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/mux_nob.tdf ; ; +; scfifo.tdf ; yes ; Megafunction ; c:/altera/13.0sp1/quartus/libraries/megafunctions/scfifo.tdf ; ; +; a_regfifo.inc ; yes ; Megafunction ; c:/altera/13.0sp1/quartus/libraries/megafunctions/a_regfifo.inc ; ; +; a_dpfifo.inc ; yes ; Megafunction ; c:/altera/13.0sp1/quartus/libraries/megafunctions/a_dpfifo.inc ; ; +; a_i2fifo.inc ; yes ; Megafunction ; c:/altera/13.0sp1/quartus/libraries/megafunctions/a_i2fifo.inc ; ; +; a_fffifo.inc ; yes ; Megafunction ; c:/altera/13.0sp1/quartus/libraries/megafunctions/a_fffifo.inc ; ; +; a_f2fifo.inc ; yes ; Megafunction ; c:/altera/13.0sp1/quartus/libraries/megafunctions/a_f2fifo.inc ; ; +; db/scfifo_jr21.tdf ; yes ; Auto-Generated Megafunction ; C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/scfifo_jr21.tdf ; ; +; db/a_dpfifo_q131.tdf ; yes ; Auto-Generated Megafunction ; C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/a_dpfifo_q131.tdf ; ; +; db/a_fefifo_7cf.tdf ; yes ; Auto-Generated Megafunction ; C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/a_fefifo_7cf.tdf ; ; +; db/cntr_do7.tdf ; yes ; Auto-Generated Megafunction ; C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/cntr_do7.tdf ; ; +; db/dpram_nl21.tdf ; yes ; Auto-Generated Megafunction ; C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/dpram_nl21.tdf ; ; +; db/altsyncram_r1m1.tdf ; yes ; Auto-Generated Megafunction ; C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/altsyncram_r1m1.tdf ; ; +; db/cntr_1ob.tdf ; yes ; Auto-Generated Megafunction ; C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/cntr_1ob.tdf ; ; +; alt_jtag_atlantic.v ; yes ; Encrypted Megafunction ; c:/altera/13.0sp1/quartus/libraries/megafunctions/alt_jtag_atlantic.v ; ; +; sld_hub.vhd ; yes ; Encrypted Megafunction ; c:/altera/13.0sp1/quartus/libraries/megafunctions/sld_hub.vhd ; ; +; sld_jtag_hub.vhd ; yes ; Encrypted Megafunction ; c:/altera/13.0sp1/quartus/libraries/megafunctions/sld_jtag_hub.vhd ; ; +; sld_rom_sr.vhd ; yes ; Encrypted Megafunction ; c:/altera/13.0sp1/quartus/libraries/megafunctions/sld_rom_sr.vhd ; ; ++---------------------------------------------------------------------------------------------------------------------------------------+-----------------+------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------+----------------------------------+ + + ++--------------------------------------------------------------+ +; Analysis & Synthesis Resource Usage Summary ; ++---------------------------------------------+----------------+ +; Resource ; Usage ; ++---------------------------------------------+----------------+ +; Estimated Total logic elements ; 2,333 ; +; ; ; +; Total combinational functions ; 2058 ; +; Logic element usage by number of LUT inputs ; ; +; -- 4 input functions ; 1077 ; +; -- 3 input functions ; 679 ; +; -- <=2 input functions ; 302 ; +; ; ; +; Logic elements by mode ; ; +; -- normal mode ; 1911 ; +; -- arithmetic mode ; 147 ; +; ; ; +; Total registers ; 1212 ; +; -- Dedicated logic registers ; 1212 ; +; -- I/O registers ; 0 ; +; ; ; +; I/O pins ; 118 ; +; Total memory bits ; 1649664 ; +; Embedded Multiplier 9-bit elements ; 0 ; +; Maximum fan-out node ; CLOCK_50~input ; +; Maximum fan-out ; 1365 ; +; Total fan-out ; 16742 ; +; Average fan-out ; 4.35 ; ++---------------------------------------------+----------------+ + + ++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Analysis & Synthesis Resource Utilization by Entity ; ++--------------------------------------------------------------------------------------------------------------------------------+-------------------+--------------+-------------+--------------+---------+-----------+------+--------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------+ +; Compilation Hierarchy Node ; LC Combinationals ; LC Registers ; Memory Bits ; DSP Elements ; DSP 9x9 ; DSP 18x18 ; Pins ; Virtual Pins ; Full Hierarchy Name ; Library Name ; ++--------------------------------------------------------------------------------------------------------------------------------+-------------------+--------------+-------------+--------------+---------+-----------+------+--------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------+ +; |lights ; 2058 (1) ; 1212 (0) ; 1649664 ; 0 ; 0 ; 0 ; 118 ; 0 ; |lights ; work ; +; |nios_system:NiosII| ; 1897 (0) ; 1115 (0) ; 1649664 ; 0 ; 0 ; 0 ; 0 ; 0 ; |lights|nios_system:NiosII ; work ; +; |altera_avalon_sc_fifo:hex0_s1_translator_avalon_universal_slave_0_agent_rsp_fifo| ; 5 (5) ; 4 (4) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; |lights|nios_system:NiosII|altera_avalon_sc_fifo:hex0_s1_translator_avalon_universal_slave_0_agent_rsp_fifo ; altera_reserved_qsys_nios_system ; +; |altera_avalon_sc_fifo:hex1_s1_translator_avalon_universal_slave_0_agent_rsp_fifo| ; 5 (5) ; 4 (4) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; |lights|nios_system:NiosII|altera_avalon_sc_fifo:hex1_s1_translator_avalon_universal_slave_0_agent_rsp_fifo ; altera_reserved_qsys_nios_system ; +; |altera_avalon_sc_fifo:hex2_s1_translator_avalon_universal_slave_0_agent_rsp_fifo| ; 5 (5) ; 4 (4) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; |lights|nios_system:NiosII|altera_avalon_sc_fifo:hex2_s1_translator_avalon_universal_slave_0_agent_rsp_fifo ; altera_reserved_qsys_nios_system ; +; |altera_avalon_sc_fifo:hex3_s1_translator_avalon_universal_slave_0_agent_rsp_fifo| ; 5 (5) ; 4 (4) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; |lights|nios_system:NiosII|altera_avalon_sc_fifo:hex3_s1_translator_avalon_universal_slave_0_agent_rsp_fifo ; altera_reserved_qsys_nios_system ; +; |altera_avalon_sc_fifo:hex4_s1_translator_avalon_universal_slave_0_agent_rsp_fifo| ; 5 (5) ; 4 (4) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; |lights|nios_system:NiosII|altera_avalon_sc_fifo:hex4_s1_translator_avalon_universal_slave_0_agent_rsp_fifo ; altera_reserved_qsys_nios_system ; +; |altera_avalon_sc_fifo:hex5_s1_translator_avalon_universal_slave_0_agent_rsp_fifo| ; 5 (5) ; 4 (4) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; |lights|nios_system:NiosII|altera_avalon_sc_fifo:hex5_s1_translator_avalon_universal_slave_0_agent_rsp_fifo ; altera_reserved_qsys_nios_system ; +; |altera_avalon_sc_fifo:hex6_s1_translator_avalon_universal_slave_0_agent_rsp_fifo| ; 5 (5) ; 4 (4) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; |lights|nios_system:NiosII|altera_avalon_sc_fifo:hex6_s1_translator_avalon_universal_slave_0_agent_rsp_fifo ; altera_reserved_qsys_nios_system ; +; |altera_avalon_sc_fifo:hex7_s1_translator_avalon_universal_slave_0_agent_rsp_fifo| ; 5 (5) ; 4 (4) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; |lights|nios_system:NiosII|altera_avalon_sc_fifo:hex7_s1_translator_avalon_universal_slave_0_agent_rsp_fifo ; altera_reserved_qsys_nios_system ; +; |altera_avalon_sc_fifo:jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rsp_fifo| ; 6 (6) ; 4 (4) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; |lights|nios_system:NiosII|altera_avalon_sc_fifo:jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rsp_fifo ; altera_reserved_qsys_nios_system ; +; |altera_avalon_sc_fifo:lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rsp_fifo| ; 6 (6) ; 4 (4) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; |lights|nios_system:NiosII|altera_avalon_sc_fifo:lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rsp_fifo ; altera_reserved_qsys_nios_system ; +; |altera_avalon_sc_fifo:lcd_blon_s1_translator_avalon_universal_slave_0_agent_rsp_fifo| ; 5 (5) ; 4 (4) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; |lights|nios_system:NiosII|altera_avalon_sc_fifo:lcd_blon_s1_translator_avalon_universal_slave_0_agent_rsp_fifo ; altera_reserved_qsys_nios_system ; +; |altera_avalon_sc_fifo:lcd_on_s1_translator_avalon_universal_slave_0_agent_rsp_fifo| ; 5 (5) ; 4 (4) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; |lights|nios_system:NiosII|altera_avalon_sc_fifo:lcd_on_s1_translator_avalon_universal_slave_0_agent_rsp_fifo ; altera_reserved_qsys_nios_system ; +; |altera_avalon_sc_fifo:ledrs_s1_translator_avalon_universal_slave_0_agent_rsp_fifo| ; 5 (5) ; 4 (4) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; |lights|nios_system:NiosII|altera_avalon_sc_fifo:ledrs_s1_translator_avalon_universal_slave_0_agent_rsp_fifo ; altera_reserved_qsys_nios_system ; +; |altera_avalon_sc_fifo:leds_s1_translator_avalon_universal_slave_0_agent_rsp_fifo| ; 5 (5) ; 4 (4) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; |lights|nios_system:NiosII|altera_avalon_sc_fifo:leds_s1_translator_avalon_universal_slave_0_agent_rsp_fifo ; altera_reserved_qsys_nios_system ; +; |altera_avalon_sc_fifo:nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo| ; 8 (8) ; 6 (6) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; |lights|nios_system:NiosII|altera_avalon_sc_fifo:nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo ; altera_reserved_qsys_nios_system ; +; |altera_avalon_sc_fifo:onchip_memory_s1_translator_avalon_universal_slave_0_agent_rsp_fifo| ; 7 (7) ; 6 (6) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; |lights|nios_system:NiosII|altera_avalon_sc_fifo:onchip_memory_s1_translator_avalon_universal_slave_0_agent_rsp_fifo ; altera_reserved_qsys_nios_system ; +; |altera_avalon_sc_fifo:push_switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo| ; 5 (5) ; 4 (4) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; |lights|nios_system:NiosII|altera_avalon_sc_fifo:push_switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo ; altera_reserved_qsys_nios_system ; +; |altera_avalon_sc_fifo:switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo| ; 5 (5) ; 4 (4) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; |lights|nios_system:NiosII|altera_avalon_sc_fifo:switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo ; altera_reserved_qsys_nios_system ; +; |altera_merlin_master_agent:nios2_processor_data_master_translator_avalon_universal_master_0_agent| ; 1 (1) ; 1 (1) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; |lights|nios_system:NiosII|altera_merlin_master_agent:nios2_processor_data_master_translator_avalon_universal_master_0_agent ; altera_reserved_qsys_nios_system ; +; |altera_merlin_master_agent:nios2_processor_instruction_master_translator_avalon_universal_master_0_agent| ; 1 (1) ; 0 (0) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; |lights|nios_system:NiosII|altera_merlin_master_agent:nios2_processor_instruction_master_translator_avalon_universal_master_0_agent ; altera_reserved_qsys_nios_system ; +; |altera_merlin_master_translator:nios2_processor_data_master_translator| ; 9 (9) ; 3 (3) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; |lights|nios_system:NiosII|altera_merlin_master_translator:nios2_processor_data_master_translator ; altera_reserved_qsys_nios_system ; +; |altera_merlin_master_translator:nios2_processor_instruction_master_translator| ; 4 (4) ; 1 (1) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; |lights|nios_system:NiosII|altera_merlin_master_translator:nios2_processor_instruction_master_translator ; altera_reserved_qsys_nios_system ; +; |altera_merlin_slave_agent:lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent| ; 1 (1) ; 0 (0) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; |lights|nios_system:NiosII|altera_merlin_slave_agent:lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent ; altera_reserved_qsys_nios_system ; +; |altera_merlin_slave_agent:nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent| ; 2 (2) ; 0 (0) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; |lights|nios_system:NiosII|altera_merlin_slave_agent:nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent ; altera_reserved_qsys_nios_system ; +; |altera_merlin_slave_agent:onchip_memory_s1_translator_avalon_universal_slave_0_agent| ; 2 (2) ; 0 (0) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; |lights|nios_system:NiosII|altera_merlin_slave_agent:onchip_memory_s1_translator_avalon_universal_slave_0_agent ; altera_reserved_qsys_nios_system ; +; |altera_merlin_slave_agent:push_switches_s1_translator_avalon_universal_slave_0_agent| ; 1 (1) ; 0 (0) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; |lights|nios_system:NiosII|altera_merlin_slave_agent:push_switches_s1_translator_avalon_universal_slave_0_agent ; altera_reserved_qsys_nios_system ; +; |altera_merlin_slave_agent:switches_s1_translator_avalon_universal_slave_0_agent| ; 1 (1) ; 0 (0) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; |lights|nios_system:NiosII|altera_merlin_slave_agent:switches_s1_translator_avalon_universal_slave_0_agent ; altera_reserved_qsys_nios_system ; +; |altera_merlin_slave_translator:hex0_s1_translator| ; 6 (6) ; 10 (10) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; |lights|nios_system:NiosII|altera_merlin_slave_translator:hex0_s1_translator ; altera_reserved_qsys_nios_system ; +; |altera_merlin_slave_translator:hex1_s1_translator| ; 6 (6) ; 10 (10) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; |lights|nios_system:NiosII|altera_merlin_slave_translator:hex1_s1_translator ; altera_reserved_qsys_nios_system ; +; |altera_merlin_slave_translator:hex2_s1_translator| ; 6 (6) ; 10 (10) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; |lights|nios_system:NiosII|altera_merlin_slave_translator:hex2_s1_translator ; altera_reserved_qsys_nios_system ; +; |altera_merlin_slave_translator:hex3_s1_translator| ; 5 (5) ; 10 (10) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; |lights|nios_system:NiosII|altera_merlin_slave_translator:hex3_s1_translator ; altera_reserved_qsys_nios_system ; +; |altera_merlin_slave_translator:hex4_s1_translator| ; 6 (6) ; 10 (10) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; |lights|nios_system:NiosII|altera_merlin_slave_translator:hex4_s1_translator ; altera_reserved_qsys_nios_system ; +; |altera_merlin_slave_translator:hex5_s1_translator| ; 6 (6) ; 10 (10) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; |lights|nios_system:NiosII|altera_merlin_slave_translator:hex5_s1_translator ; altera_reserved_qsys_nios_system ; +; |altera_merlin_slave_translator:hex6_s1_translator| ; 5 (5) ; 10 (10) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; |lights|nios_system:NiosII|altera_merlin_slave_translator:hex6_s1_translator ; altera_reserved_qsys_nios_system ; +; |altera_merlin_slave_translator:hex7_s1_translator| ; 6 (6) ; 10 (10) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; |lights|nios_system:NiosII|altera_merlin_slave_translator:hex7_s1_translator ; altera_reserved_qsys_nios_system ; +; |altera_merlin_slave_translator:jtag_uart_avalon_jtag_slave_translator| ; 9 (9) ; 23 (23) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; |lights|nios_system:NiosII|altera_merlin_slave_translator:jtag_uart_avalon_jtag_slave_translator ; altera_reserved_qsys_nios_system ; +; |altera_merlin_slave_translator:lcd_16207_0_control_slave_translator| ; 14 (14) ; 15 (15) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; |lights|nios_system:NiosII|altera_merlin_slave_translator:lcd_16207_0_control_slave_translator ; altera_reserved_qsys_nios_system ; +; |altera_merlin_slave_translator:lcd_blon_s1_translator| ; 5 (5) ; 4 (4) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; |lights|nios_system:NiosII|altera_merlin_slave_translator:lcd_blon_s1_translator ; altera_reserved_qsys_nios_system ; +; |altera_merlin_slave_translator:lcd_on_s1_translator| ; 6 (6) ; 4 (4) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; |lights|nios_system:NiosII|altera_merlin_slave_translator:lcd_on_s1_translator ; altera_reserved_qsys_nios_system ; +; |altera_merlin_slave_translator:ledrs_s1_translator| ; 6 (6) ; 21 (21) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; |lights|nios_system:NiosII|altera_merlin_slave_translator:ledrs_s1_translator ; altera_reserved_qsys_nios_system ; +; |altera_merlin_slave_translator:leds_s1_translator| ; 5 (5) ; 11 (11) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; |lights|nios_system:NiosII|altera_merlin_slave_translator:leds_s1_translator ; altera_reserved_qsys_nios_system ; +; |altera_merlin_slave_translator:nios2_processor_jtag_debug_module_translator| ; 1 (1) ; 33 (33) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; |lights|nios_system:NiosII|altera_merlin_slave_translator:nios2_processor_jtag_debug_module_translator ; altera_reserved_qsys_nios_system ; +; |altera_merlin_slave_translator:onchip_memory_s1_translator| ; 1 (1) ; 1 (1) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; |lights|nios_system:NiosII|altera_merlin_slave_translator:onchip_memory_s1_translator ; altera_reserved_qsys_nios_system ; +; |altera_merlin_slave_translator:push_switches_s1_translator| ; 6 (6) ; 6 (6) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; |lights|nios_system:NiosII|altera_merlin_slave_translator:push_switches_s1_translator ; altera_reserved_qsys_nios_system ; +; |altera_merlin_slave_translator:switches_s1_translator| ; 6 (6) ; 21 (21) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; |lights|nios_system:NiosII|altera_merlin_slave_translator:switches_s1_translator ; altera_reserved_qsys_nios_system ; +; |altera_reset_controller:rst_controller| ; 2 (2) ; 9 (6) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; |lights|nios_system:NiosII|altera_reset_controller:rst_controller ; altera_reserved_qsys_nios_system ; +; |altera_reset_synchronizer:alt_rst_sync_uq1| ; 0 (0) ; 3 (3) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; |lights|nios_system:NiosII|altera_reset_controller:rst_controller|altera_reset_synchronizer:alt_rst_sync_uq1 ; altera_reserved_qsys_nios_system ; +; |nios_system_LEDRs:ledrs| ; 20 (20) ; 18 (18) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; |lights|nios_system:NiosII|nios_system_LEDRs:ledrs ; altera_reserved_qsys_nios_system ; +; |nios_system_LEDs:leds| ; 11 (11) ; 8 (8) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; |lights|nios_system:NiosII|nios_system_LEDs:leds ; altera_reserved_qsys_nios_system ; +; |nios_system_addr_router:addr_router| ; 2 (2) ; 0 (0) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; |lights|nios_system:NiosII|nios_system_addr_router:addr_router ; altera_reserved_qsys_nios_system ; +; |nios_system_addr_router_001:addr_router_001| ; 30 (30) ; 0 (0) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; |lights|nios_system:NiosII|nios_system_addr_router_001:addr_router_001 ; altera_reserved_qsys_nios_system ; +; |nios_system_cmd_xbar_demux:cmd_xbar_demux| ; 2 (2) ; 0 (0) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; |lights|nios_system:NiosII|nios_system_cmd_xbar_demux:cmd_xbar_demux ; altera_reserved_qsys_nios_system ; +; |nios_system_cmd_xbar_demux:rsp_xbar_demux_001| ; 2 (2) ; 0 (0) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; |lights|nios_system:NiosII|nios_system_cmd_xbar_demux:rsp_xbar_demux_001 ; altera_reserved_qsys_nios_system ; +; |nios_system_cmd_xbar_demux:rsp_xbar_demux| ; 2 (2) ; 0 (0) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; |lights|nios_system:NiosII|nios_system_cmd_xbar_demux:rsp_xbar_demux ; altera_reserved_qsys_nios_system ; +; |nios_system_cmd_xbar_demux_001:cmd_xbar_demux_001| ; 14 (14) ; 0 (0) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; |lights|nios_system:NiosII|nios_system_cmd_xbar_demux_001:cmd_xbar_demux_001 ; altera_reserved_qsys_nios_system ; +; |nios_system_cmd_xbar_mux:cmd_xbar_mux_001| ; 60 (56) ; 5 (3) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; |lights|nios_system:NiosII|nios_system_cmd_xbar_mux:cmd_xbar_mux_001 ; altera_reserved_qsys_nios_system ; +; |altera_merlin_arbitrator:arb| ; 4 (4) ; 2 (2) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; |lights|nios_system:NiosII|nios_system_cmd_xbar_mux:cmd_xbar_mux_001|altera_merlin_arbitrator:arb ; altera_reserved_qsys_nios_system ; +; |nios_system_cmd_xbar_mux:cmd_xbar_mux| ; 54 (50) ; 5 (3) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; |lights|nios_system:NiosII|nios_system_cmd_xbar_mux:cmd_xbar_mux ; altera_reserved_qsys_nios_system ; +; |altera_merlin_arbitrator:arb| ; 4 (4) ; 2 (2) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; |lights|nios_system:NiosII|nios_system_cmd_xbar_mux:cmd_xbar_mux|altera_merlin_arbitrator:arb ; altera_reserved_qsys_nios_system ; +; |nios_system_hex0:hex0| ; 9 (9) ; 7 (7) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; |lights|nios_system:NiosII|nios_system_hex0:hex0 ; altera_reserved_qsys_nios_system ; +; |nios_system_hex0:hex1| ; 9 (9) ; 7 (7) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; |lights|nios_system:NiosII|nios_system_hex0:hex1 ; altera_reserved_qsys_nios_system ; +; |nios_system_hex0:hex2| ; 9 (9) ; 7 (7) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; |lights|nios_system:NiosII|nios_system_hex0:hex2 ; altera_reserved_qsys_nios_system ; +; |nios_system_hex0:hex3| ; 9 (9) ; 7 (7) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; |lights|nios_system:NiosII|nios_system_hex0:hex3 ; altera_reserved_qsys_nios_system ; +; |nios_system_hex0:hex4| ; 9 (9) ; 7 (7) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; |lights|nios_system:NiosII|nios_system_hex0:hex4 ; altera_reserved_qsys_nios_system ; +; |nios_system_hex0:hex5| ; 9 (9) ; 7 (7) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; |lights|nios_system:NiosII|nios_system_hex0:hex5 ; altera_reserved_qsys_nios_system ; +; |nios_system_hex0:hex6| ; 9 (9) ; 7 (7) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; |lights|nios_system:NiosII|nios_system_hex0:hex6 ; altera_reserved_qsys_nios_system ; +; |nios_system_hex0:hex7| ; 9 (9) ; 7 (7) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; |lights|nios_system:NiosII|nios_system_hex0:hex7 ; altera_reserved_qsys_nios_system ; +; |nios_system_jtag_uart:jtag_uart| ; 140 (36) ; 112 (13) ; 1024 ; 0 ; 0 ; 0 ; 0 ; 0 ; |lights|nios_system:NiosII|nios_system_jtag_uart:jtag_uart ; altera_reserved_qsys_nios_system ; +; |alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic| ; 53 (53) ; 59 (59) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; |lights|nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic ; work ; +; |nios_system_jtag_uart_scfifo_r:the_nios_system_jtag_uart_scfifo_r| ; 26 (0) ; 20 (0) ; 512 ; 0 ; 0 ; 0 ; 0 ; 0 ; |lights|nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_r:the_nios_system_jtag_uart_scfifo_r ; altera_reserved_qsys_nios_system ; +; |scfifo:rfifo| ; 26 (0) ; 20 (0) ; 512 ; 0 ; 0 ; 0 ; 0 ; 0 ; |lights|nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_r:the_nios_system_jtag_uart_scfifo_r|scfifo:rfifo ; work ; +; |scfifo_jr21:auto_generated| ; 26 (0) ; 20 (0) ; 512 ; 0 ; 0 ; 0 ; 0 ; 0 ; |lights|nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_r:the_nios_system_jtag_uart_scfifo_r|scfifo:rfifo|scfifo_jr21:auto_generated ; work ; +; |a_dpfifo_q131:dpfifo| ; 26 (0) ; 20 (0) ; 512 ; 0 ; 0 ; 0 ; 0 ; 0 ; |lights|nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_r:the_nios_system_jtag_uart_scfifo_r|scfifo:rfifo|scfifo_jr21:auto_generated|a_dpfifo_q131:dpfifo ; work ; +; |a_fefifo_7cf:fifo_state| ; 14 (8) ; 8 (2) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; |lights|nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_r:the_nios_system_jtag_uart_scfifo_r|scfifo:rfifo|scfifo_jr21:auto_generated|a_dpfifo_q131:dpfifo|a_fefifo_7cf:fifo_state ; work ; +; |cntr_do7:count_usedw| ; 6 (6) ; 6 (6) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; |lights|nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_r:the_nios_system_jtag_uart_scfifo_r|scfifo:rfifo|scfifo_jr21:auto_generated|a_dpfifo_q131:dpfifo|a_fefifo_7cf:fifo_state|cntr_do7:count_usedw ; work ; +; |cntr_1ob:rd_ptr_count| ; 6 (6) ; 6 (6) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; |lights|nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_r:the_nios_system_jtag_uart_scfifo_r|scfifo:rfifo|scfifo_jr21:auto_generated|a_dpfifo_q131:dpfifo|cntr_1ob:rd_ptr_count ; work ; +; |cntr_1ob:wr_ptr| ; 6 (6) ; 6 (6) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; |lights|nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_r:the_nios_system_jtag_uart_scfifo_r|scfifo:rfifo|scfifo_jr21:auto_generated|a_dpfifo_q131:dpfifo|cntr_1ob:wr_ptr ; work ; +; |dpram_nl21:FIFOram| ; 0 (0) ; 0 (0) ; 512 ; 0 ; 0 ; 0 ; 0 ; 0 ; |lights|nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_r:the_nios_system_jtag_uart_scfifo_r|scfifo:rfifo|scfifo_jr21:auto_generated|a_dpfifo_q131:dpfifo|dpram_nl21:FIFOram ; work ; +; |altsyncram_r1m1:altsyncram1| ; 0 (0) ; 0 (0) ; 512 ; 0 ; 0 ; 0 ; 0 ; 0 ; |lights|nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_r:the_nios_system_jtag_uart_scfifo_r|scfifo:rfifo|scfifo_jr21:auto_generated|a_dpfifo_q131:dpfifo|dpram_nl21:FIFOram|altsyncram_r1m1:altsyncram1 ; work ; +; |nios_system_jtag_uart_scfifo_w:the_nios_system_jtag_uart_scfifo_w| ; 25 (0) ; 20 (0) ; 512 ; 0 ; 0 ; 0 ; 0 ; 0 ; |lights|nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_w:the_nios_system_jtag_uart_scfifo_w ; altera_reserved_qsys_nios_system ; +; |scfifo:wfifo| ; 25 (0) ; 20 (0) ; 512 ; 0 ; 0 ; 0 ; 0 ; 0 ; |lights|nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_w:the_nios_system_jtag_uart_scfifo_w|scfifo:wfifo ; work ; +; |scfifo_jr21:auto_generated| ; 25 (0) ; 20 (0) ; 512 ; 0 ; 0 ; 0 ; 0 ; 0 ; |lights|nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_w:the_nios_system_jtag_uart_scfifo_w|scfifo:wfifo|scfifo_jr21:auto_generated ; work ; +; |a_dpfifo_q131:dpfifo| ; 25 (0) ; 20 (0) ; 512 ; 0 ; 0 ; 0 ; 0 ; 0 ; |lights|nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_w:the_nios_system_jtag_uart_scfifo_w|scfifo:wfifo|scfifo_jr21:auto_generated|a_dpfifo_q131:dpfifo ; work ; +; |a_fefifo_7cf:fifo_state| ; 13 (7) ; 8 (2) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; |lights|nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_w:the_nios_system_jtag_uart_scfifo_w|scfifo:wfifo|scfifo_jr21:auto_generated|a_dpfifo_q131:dpfifo|a_fefifo_7cf:fifo_state ; work ; +; |cntr_do7:count_usedw| ; 6 (6) ; 6 (6) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; |lights|nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_w:the_nios_system_jtag_uart_scfifo_w|scfifo:wfifo|scfifo_jr21:auto_generated|a_dpfifo_q131:dpfifo|a_fefifo_7cf:fifo_state|cntr_do7:count_usedw ; work ; +; |cntr_1ob:rd_ptr_count| ; 6 (6) ; 6 (6) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; |lights|nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_w:the_nios_system_jtag_uart_scfifo_w|scfifo:wfifo|scfifo_jr21:auto_generated|a_dpfifo_q131:dpfifo|cntr_1ob:rd_ptr_count ; work ; +; |cntr_1ob:wr_ptr| ; 6 (6) ; 6 (6) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; |lights|nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_w:the_nios_system_jtag_uart_scfifo_w|scfifo:wfifo|scfifo_jr21:auto_generated|a_dpfifo_q131:dpfifo|cntr_1ob:wr_ptr ; work ; +; |dpram_nl21:FIFOram| ; 0 (0) ; 0 (0) ; 512 ; 0 ; 0 ; 0 ; 0 ; 0 ; |lights|nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_w:the_nios_system_jtag_uart_scfifo_w|scfifo:wfifo|scfifo_jr21:auto_generated|a_dpfifo_q131:dpfifo|dpram_nl21:FIFOram ; work ; +; |altsyncram_r1m1:altsyncram1| ; 0 (0) ; 0 (0) ; 512 ; 0 ; 0 ; 0 ; 0 ; 0 ; |lights|nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_w:the_nios_system_jtag_uart_scfifo_w|scfifo:wfifo|scfifo_jr21:auto_generated|a_dpfifo_q131:dpfifo|dpram_nl21:FIFOram|altsyncram_r1m1:altsyncram1 ; work ; +; |nios_system_lcd_16207_0:lcd_16207_0| ; 12 (12) ; 0 (0) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; |lights|nios_system:NiosII|nios_system_lcd_16207_0:lcd_16207_0 ; altera_reserved_qsys_nios_system ; +; |nios_system_lcd_on:lcd_blon| ; 4 (4) ; 1 (1) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; |lights|nios_system:NiosII|nios_system_lcd_on:lcd_blon ; altera_reserved_qsys_nios_system ; +; |nios_system_lcd_on:lcd_on| ; 4 (4) ; 1 (1) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; |lights|nios_system:NiosII|nios_system_lcd_on:lcd_on ; altera_reserved_qsys_nios_system ; +; |nios_system_nios2_processor:nios2_processor| ; 929 (643) ; 576 (306) ; 10240 ; 0 ; 0 ; 0 ; 0 ; 0 ; |lights|nios_system:NiosII|nios_system_nios2_processor:nios2_processor ; altera_reserved_qsys_nios_system ; +; |nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci| ; 286 (34) ; 269 (80) ; 8192 ; 0 ; 0 ; 0 ; 0 ; 0 ; |lights|nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci ; altera_reserved_qsys_nios_system ; +; |nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper| ; 92 (0) ; 96 (0) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; |lights|nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper ; altera_reserved_qsys_nios_system ; +; |nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk| ; 6 (6) ; 49 (45) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; |lights|nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk ; altera_reserved_qsys_nios_system ; +; |altera_std_synchronizer:the_altera_std_synchronizer3| ; 0 (0) ; 2 (2) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; |lights|nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk|altera_std_synchronizer:the_altera_std_synchronizer3 ; work ; +; |altera_std_synchronizer:the_altera_std_synchronizer4| ; 0 (0) ; 2 (2) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; |lights|nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk|altera_std_synchronizer:the_altera_std_synchronizer4 ; work ; +; |nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck| ; 82 (82) ; 47 (43) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; |lights|nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck ; altera_reserved_qsys_nios_system ; +; |altera_std_synchronizer:the_altera_std_synchronizer1| ; 0 (0) ; 2 (2) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; |lights|nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|altera_std_synchronizer:the_altera_std_synchronizer1 ; work ; +; |altera_std_synchronizer:the_altera_std_synchronizer2| ; 0 (0) ; 2 (2) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; |lights|nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|altera_std_synchronizer:the_altera_std_synchronizer2 ; work ; +; |sld_virtual_jtag_basic:nios_system_nios2_processor_jtag_debug_module_phy| ; 4 (4) ; 0 (0) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; |lights|nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|sld_virtual_jtag_basic:nios_system_nios2_processor_jtag_debug_module_phy ; work ; +; |nios_system_nios2_processor_nios2_avalon_reg:the_nios_system_nios2_processor_nios2_avalon_reg| ; 8 (8) ; 3 (3) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; |lights|nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_avalon_reg:the_nios_system_nios2_processor_nios2_avalon_reg ; altera_reserved_qsys_nios_system ; +; |nios_system_nios2_processor_nios2_oci_break:the_nios_system_nios2_processor_nios2_oci_break| ; 32 (32) ; 32 (32) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; |lights|nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_oci_break:the_nios_system_nios2_processor_nios2_oci_break ; altera_reserved_qsys_nios_system ; +; |nios_system_nios2_processor_nios2_oci_debug:the_nios_system_nios2_processor_nios2_oci_debug| ; 9 (8) ; 9 (7) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; |lights|nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_oci_debug:the_nios_system_nios2_processor_nios2_oci_debug ; altera_reserved_qsys_nios_system ; +; |altera_std_synchronizer:the_altera_std_synchronizer| ; 1 (1) ; 2 (2) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; |lights|nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_oci_debug:the_nios_system_nios2_processor_nios2_oci_debug|altera_std_synchronizer:the_altera_std_synchronizer ; work ; +; |nios_system_nios2_processor_nios2_ocimem:the_nios_system_nios2_processor_nios2_ocimem| ; 111 (111) ; 49 (49) ; 8192 ; 0 ; 0 ; 0 ; 0 ; 0 ; |lights|nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_ocimem:the_nios_system_nios2_processor_nios2_ocimem ; altera_reserved_qsys_nios_system ; +; |nios_system_nios2_processor_ociram_sp_ram_module:nios_system_nios2_processor_ociram_sp_ram| ; 0 (0) ; 0 (0) ; 8192 ; 0 ; 0 ; 0 ; 0 ; 0 ; |lights|nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_ocimem:the_nios_system_nios2_processor_nios2_ocimem|nios_system_nios2_processor_ociram_sp_ram_module:nios_system_nios2_processor_ociram_sp_ram ; altera_reserved_qsys_nios_system ; +; |altsyncram:the_altsyncram| ; 0 (0) ; 0 (0) ; 8192 ; 0 ; 0 ; 0 ; 0 ; 0 ; |lights|nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_ocimem:the_nios_system_nios2_processor_nios2_ocimem|nios_system_nios2_processor_ociram_sp_ram_module:nios_system_nios2_processor_ociram_sp_ram|altsyncram:the_altsyncram ; work ; +; |altsyncram_4891:auto_generated| ; 0 (0) ; 0 (0) ; 8192 ; 0 ; 0 ; 0 ; 0 ; 0 ; |lights|nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_ocimem:the_nios_system_nios2_processor_nios2_ocimem|nios_system_nios2_processor_ociram_sp_ram_module:nios_system_nios2_processor_ociram_sp_ram|altsyncram:the_altsyncram|altsyncram_4891:auto_generated ; work ; +; |nios_system_nios2_processor_register_bank_a_module:nios_system_nios2_processor_register_bank_a| ; 0 (0) ; 0 (0) ; 1024 ; 0 ; 0 ; 0 ; 0 ; 0 ; |lights|nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_register_bank_a_module:nios_system_nios2_processor_register_bank_a ; altera_reserved_qsys_nios_system ; +; |altsyncram:the_altsyncram| ; 0 (0) ; 0 (0) ; 1024 ; 0 ; 0 ; 0 ; 0 ; 0 ; |lights|nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_register_bank_a_module:nios_system_nios2_processor_register_bank_a|altsyncram:the_altsyncram ; work ; +; |altsyncram_0rh1:auto_generated| ; 0 (0) ; 0 (0) ; 1024 ; 0 ; 0 ; 0 ; 0 ; 0 ; |lights|nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_register_bank_a_module:nios_system_nios2_processor_register_bank_a|altsyncram:the_altsyncram|altsyncram_0rh1:auto_generated ; work ; +; |nios_system_nios2_processor_register_bank_b_module:nios_system_nios2_processor_register_bank_b| ; 0 (0) ; 0 (0) ; 1024 ; 0 ; 0 ; 0 ; 0 ; 0 ; |lights|nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_register_bank_b_module:nios_system_nios2_processor_register_bank_b ; altera_reserved_qsys_nios_system ; +; |altsyncram:the_altsyncram| ; 0 (0) ; 0 (0) ; 1024 ; 0 ; 0 ; 0 ; 0 ; 0 ; |lights|nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_register_bank_b_module:nios_system_nios2_processor_register_bank_b|altsyncram:the_altsyncram ; work ; +; |altsyncram_1rh1:auto_generated| ; 0 (0) ; 0 (0) ; 1024 ; 0 ; 0 ; 0 ; 0 ; 0 ; |lights|nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_register_bank_b_module:nios_system_nios2_processor_register_bank_b|altsyncram:the_altsyncram|altsyncram_1rh1:auto_generated ; work ; +; |nios_system_nios2_processor_test_bench:the_nios_system_nios2_processor_test_bench| ; 0 (0) ; 1 (1) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; |lights|nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_test_bench:the_nios_system_nios2_processor_test_bench ; altera_reserved_qsys_nios_system ; +; |nios_system_onchip_memory:onchip_memory| ; 168 (1) ; 3 (0) ; 1638400 ; 0 ; 0 ; 0 ; 0 ; 0 ; |lights|nios_system:NiosII|nios_system_onchip_memory:onchip_memory ; altera_reserved_qsys_nios_system ; +; |altsyncram:the_altsyncram| ; 167 (0) ; 3 (0) ; 1638400 ; 0 ; 0 ; 0 ; 0 ; 0 ; |lights|nios_system:NiosII|nios_system_onchip_memory:onchip_memory|altsyncram:the_altsyncram ; work ; +; |altsyncram_4ed1:auto_generated| ; 167 (0) ; 3 (3) ; 1638400 ; 0 ; 0 ; 0 ; 0 ; 0 ; |lights|nios_system:NiosII|nios_system_onchip_memory:onchip_memory|altsyncram:the_altsyncram|altsyncram_4ed1:auto_generated ; work ; +; |decode_qsa:decode3| ; 7 (7) ; 0 (0) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; |lights|nios_system:NiosII|nios_system_onchip_memory:onchip_memory|altsyncram:the_altsyncram|altsyncram_4ed1:auto_generated|decode_qsa:decode3 ; work ; +; |mux_nob:mux2| ; 160 (160) ; 0 (0) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; |lights|nios_system:NiosII|nios_system_onchip_memory:onchip_memory|altsyncram:the_altsyncram|altsyncram_4ed1:auto_generated|mux_nob:mux2 ; work ; +; |nios_system_push_switches:push_switches| ; 3 (3) ; 3 (3) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; |lights|nios_system:NiosII|nios_system_push_switches:push_switches ; altera_reserved_qsys_nios_system ; +; |nios_system_rsp_xbar_mux:rsp_xbar_mux| ; 11 (11) ; 0 (0) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; |lights|nios_system:NiosII|nios_system_rsp_xbar_mux:rsp_xbar_mux ; altera_reserved_qsys_nios_system ; +; |nios_system_rsp_xbar_mux_001:rsp_xbar_mux_001| ; 113 (113) ; 0 (0) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; |lights|nios_system:NiosII|nios_system_rsp_xbar_mux_001:rsp_xbar_mux_001 ; altera_reserved_qsys_nios_system ; +; |nios_system_switches:switches| ; 18 (18) ; 18 (18) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; |lights|nios_system:NiosII|nios_system_switches:switches ; altera_reserved_qsys_nios_system ; +; |sld_hub:auto_hub| ; 160 (1) ; 97 (0) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; |lights|sld_hub:auto_hub ; work ; +; |sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst| ; 159 (119) ; 97 (69) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; |lights|sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst ; work ; +; |sld_rom_sr:hub_info_reg| ; 23 (23) ; 9 (9) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; |lights|sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_rom_sr:hub_info_reg ; work ; +; |sld_shadow_jsm:shadow_jsm| ; 17 (17) ; 19 (19) ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; |lights|sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm ; work ; ++--------------------------------------------------------------------------------------------------------------------------------+-------------------+--------------+-------------+--------------+---------+-----------+------+--------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------+ +Note: For table entries with two numbers listed, the numbers in parentheses indicate the number of resources of the given type used by the specific entity alone. The numbers listed outside of parentheses indicate the total resources of the given type used by the specific entity and all of its sub-entities in the hierarchy. + + ++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Analysis & Synthesis RAM Summary ; ++-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------+------------------+--------------+--------------+--------------+--------------+---------+---------------------------------------------------------+ +; Name ; Type ; Mode ; Port A Depth ; Port A Width ; Port B Depth ; Port B Width ; Size ; MIF ; ++-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------+------------------+--------------+--------------+--------------+--------------+---------+---------------------------------------------------------+ +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_r:the_nios_system_jtag_uart_scfifo_r|scfifo:rfifo|scfifo_jr21:auto_generated|a_dpfifo_q131:dpfifo|dpram_nl21:FIFOram|altsyncram_r1m1:altsyncram1|ALTSYNCRAM ; AUTO ; Simple Dual Port ; 64 ; 8 ; 64 ; 8 ; 512 ; None ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_w:the_nios_system_jtag_uart_scfifo_w|scfifo:wfifo|scfifo_jr21:auto_generated|a_dpfifo_q131:dpfifo|dpram_nl21:FIFOram|altsyncram_r1m1:altsyncram1|ALTSYNCRAM ; AUTO ; Simple Dual Port ; 64 ; 8 ; 64 ; 8 ; 512 ; None ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_ocimem:the_nios_system_nios2_processor_nios2_ocimem|nios_system_nios2_processor_ociram_sp_ram_module:nios_system_nios2_processor_ociram_sp_ram|altsyncram:the_altsyncram|altsyncram_4891:auto_generated|ALTSYNCRAM ; AUTO ; Single Port ; 256 ; 32 ; -- ; -- ; 8192 ; nios_system_nios2_processor_ociram_default_contents.mif ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_register_bank_a_module:nios_system_nios2_processor_register_bank_a|altsyncram:the_altsyncram|altsyncram_0rh1:auto_generated|ALTSYNCRAM ; AUTO ; Simple Dual Port ; 32 ; 32 ; 32 ; 32 ; 1024 ; nios_system_nios2_processor_rf_ram_a.mif ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_register_bank_b_module:nios_system_nios2_processor_register_bank_b|altsyncram:the_altsyncram|altsyncram_1rh1:auto_generated|ALTSYNCRAM ; AUTO ; Simple Dual Port ; 32 ; 32 ; 32 ; 32 ; 1024 ; nios_system_nios2_processor_rf_ram_b.mif ; +; nios_system:NiosII|nios_system_onchip_memory:onchip_memory|altsyncram:the_altsyncram|altsyncram_4ed1:auto_generated|ALTSYNCRAM ; AUTO ; Single Port ; 51200 ; 32 ; -- ; -- ; 1638400 ; nios_system_onchip_memory.hex ; ++-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------+------------------+--------------+--------------+--------------+--------------+---------+---------------------------------------------------------+ + + +Encoding Type: One-Hot ++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; State Machine - |lights|nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|DRsize ; ++------------+------------+------------+------------+------------+------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Name ; DRsize.101 ; DRsize.100 ; DRsize.011 ; DRsize.010 ; DRsize.001 ; DRsize.000 ; ++------------+------------+------------+------------+------------+------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; DRsize.000 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; DRsize.001 ; 0 ; 0 ; 0 ; 0 ; 1 ; 1 ; +; DRsize.010 ; 0 ; 0 ; 0 ; 1 ; 0 ; 1 ; +; DRsize.011 ; 0 ; 0 ; 1 ; 0 ; 0 ; 1 ; +; DRsize.100 ; 0 ; 1 ; 0 ; 0 ; 0 ; 1 ; +; DRsize.101 ; 1 ; 0 ; 0 ; 0 ; 0 ; 1 ; ++------------+------------+------------+------------+------------+------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + + ++-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Registers Protected by Synthesis ; ++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------+--------------------------------------------+ +; Register Name ; Protected by Synthesis Attribute or Preserve Register Assignment ; Not to be Touched by Netlist Optimizations ; ++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------+--------------------------------------------+ +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|altera_std_synchronizer:the_altera_std_synchronizer2|dreg[0] ; yes ; yes ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|altera_std_synchronizer:the_altera_std_synchronizer1|dreg[0] ; yes ; yes ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|altera_std_synchronizer:the_altera_std_synchronizer2|din_s1 ; yes ; yes ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|altera_std_synchronizer:the_altera_std_synchronizer1|din_s1 ; yes ; yes ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|tck_t_dav ; yes ; yes ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|rvalid ; yes ; yes ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|user_saw_rvalid ; yes ; yes ; +; nios_system:NiosII|altera_reset_controller:rst_controller|altera_reset_synchronizer_int_chain[2] ; yes ; yes ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|write_stalled ; yes ; yes ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|rdata[7] ; yes ; yes ; +; nios_system:NiosII|altera_reset_controller:rst_controller|altera_reset_synchronizer_int_chain[1] ; yes ; yes ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_oci_debug:the_nios_system_nios2_processor_nios2_oci_debug|altera_std_synchronizer:the_altera_std_synchronizer|dreg[0] ; yes ; yes ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|rdata[0] ; yes ; yes ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|read_req ; yes ; yes ; +; nios_system:NiosII|altera_reset_controller:rst_controller|altera_reset_synchronizer_int_chain[0] ; yes ; yes ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_oci_debug:the_nios_system_nios2_processor_nios2_oci_debug|altera_std_synchronizer:the_altera_std_synchronizer|din_s1 ; yes ; yes ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk|altera_std_synchronizer:the_altera_std_synchronizer4|dreg[0] ; yes ; yes ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk|altera_std_synchronizer:the_altera_std_synchronizer3|dreg[0] ; yes ; yes ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|rdata[1] ; yes ; yes ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|read ; yes ; yes ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|wdata[0] ; yes ; yes ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|wdata[1] ; yes ; yes ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|wdata[2] ; yes ; yes ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|wdata[3] ; yes ; yes ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|wdata[4] ; yes ; yes ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|wdata[5] ; yes ; yes ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|wdata[6] ; yes ; yes ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|wdata[7] ; yes ; yes ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|write_valid ; yes ; yes ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk|altera_std_synchronizer:the_altera_std_synchronizer4|din_s1 ; yes ; yes ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk|altera_std_synchronizer:the_altera_std_synchronizer3|din_s1 ; yes ; yes ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|rdata[2] ; yes ; yes ; +; nios_system:NiosII|altera_reset_controller:rst_controller|altera_reset_synchronizer:alt_rst_sync_uq1|altera_reset_synchronizer_int_chain[0] ; yes ; yes ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|jupdate ; yes ; yes ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|write ; yes ; yes ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|rdata[3] ; yes ; yes ; +; nios_system:NiosII|altera_reset_controller:rst_controller|altera_reset_synchronizer:alt_rst_sync_uq1|altera_reset_synchronizer_int_chain[1] ; yes ; yes ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|rdata[4] ; yes ; yes ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|rdata[5] ; yes ; yes ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|rdata[6] ; yes ; yes ; ++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------+--------------------------------------------+ + + ++-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Registers Removed During Synthesis ; ++-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Register name ; Reason for Removal ; ++-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; nios_system:NiosII|nios_system_cmd_xbar_mux:cmd_xbar_mux_001|locked[0,1] ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|nios_system_cmd_xbar_mux:cmd_xbar_mux|locked[0,1] ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_merlin_slave_translator:lcd_blon_s1_translator|av_readdata_pre[1..31] ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_merlin_slave_translator:lcd_blon_s1_translator|av_chipselect_pre ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_merlin_slave_translator:lcd_on_s1_translator|av_readdata_pre[1..31] ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_merlin_slave_translator:lcd_on_s1_translator|av_chipselect_pre ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_merlin_slave_translator:hex7_s1_translator|av_readdata_pre[7..31] ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_merlin_slave_translator:hex7_s1_translator|av_chipselect_pre ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_merlin_slave_translator:hex6_s1_translator|av_readdata_pre[7..31] ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_merlin_slave_translator:hex6_s1_translator|av_chipselect_pre ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_merlin_slave_translator:hex5_s1_translator|av_readdata_pre[7..31] ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_merlin_slave_translator:hex5_s1_translator|av_chipselect_pre ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_merlin_slave_translator:hex4_s1_translator|av_readdata_pre[7..31] ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_merlin_slave_translator:hex4_s1_translator|av_chipselect_pre ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_merlin_slave_translator:hex3_s1_translator|av_readdata_pre[7..31] ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_merlin_slave_translator:hex3_s1_translator|av_chipselect_pre ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_merlin_slave_translator:hex2_s1_translator|av_readdata_pre[7..31] ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_merlin_slave_translator:hex2_s1_translator|av_chipselect_pre ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_merlin_slave_translator:hex1_s1_translator|av_readdata_pre[7..31] ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_merlin_slave_translator:hex1_s1_translator|av_chipselect_pre ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_merlin_slave_translator:hex0_s1_translator|av_readdata_pre[7..31] ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_merlin_slave_translator:hex0_s1_translator|av_chipselect_pre ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_merlin_slave_translator:ledrs_s1_translator|av_readdata_pre[18..31] ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_merlin_slave_translator:ledrs_s1_translator|av_chipselect_pre ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_merlin_slave_translator:jtag_uart_avalon_jtag_slave_translator|av_readdata_pre[11,23..31] ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_merlin_slave_translator:jtag_uart_avalon_jtag_slave_translator|av_chipselect_pre ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_merlin_slave_translator:leds_s1_translator|av_readdata_pre[8..31] ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_merlin_slave_translator:leds_s1_translator|av_chipselect_pre ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_merlin_slave_translator:onchip_memory_s1_translator|av_chipselect_pre ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|nios_system_push_switches:push_switches|readdata[3..31] ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|nios_system_switches:switches|readdata[18..31] ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|W_ienable_reg[0..4,6..31] ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|W_ipending_reg[0..4,6..31] ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|R_ctrl_custom ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_oci_im:the_nios_system_nios2_processor_nios2_oci_im|trc_im_addr[0..6] ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_oci_im:the_nios_system_nios2_processor_nios2_oci_im|trc_wrap ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_oci_dbrk:the_nios_system_nios2_processor_nios2_oci_dbrk|dbrk_goto1 ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_oci_dbrk:the_nios_system_nios2_processor_nios2_oci_dbrk|dbrk_break_pulse ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_oci_dbrk:the_nios_system_nios2_processor_nios2_oci_dbrk|dbrk_goto0 ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_oci_xbrk:the_nios_system_nios2_processor_nios2_oci_xbrk|xbrk_break ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_merlin_slave_translator:push_switches_s1_translator|av_readdata_pre[3..31] ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_merlin_slave_translator:switches_s1_translator|av_readdata_pre[18..31] ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|W_control_rd_data[1..4,6..31] ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_avalon_sc_fifo:lcd_blon_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][80] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:lcd_blon_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][79] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:lcd_blon_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][78] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:lcd_blon_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][77] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:lcd_blon_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][76] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:lcd_blon_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][80] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:lcd_blon_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][79] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:lcd_blon_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][78] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:lcd_blon_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][77] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:lcd_blon_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][76] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:lcd_on_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][80] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:lcd_on_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][79] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:lcd_on_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][78] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:lcd_on_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][77] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:lcd_on_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][76] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:lcd_on_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][80] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:lcd_on_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][79] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:lcd_on_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][78] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:lcd_on_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][77] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:lcd_on_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][76] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][80] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][79] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][78] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][77] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][76] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][80] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][79] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][78] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][77] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][76] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex7_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][80] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex7_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][79] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex7_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][78] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex7_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][77] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex7_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][76] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex7_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][80] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex7_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][79] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex7_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][78] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex7_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][77] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex7_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][76] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex6_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][80] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex6_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][79] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex6_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][78] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex6_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][77] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex6_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][76] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex6_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][80] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex6_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][79] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex6_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][78] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex6_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][77] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex6_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][76] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex5_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][80] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex5_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][79] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex5_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][78] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex5_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][77] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex5_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][76] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex5_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][80] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex5_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][79] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex5_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][78] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex5_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][77] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex5_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][76] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex4_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][80] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex4_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][79] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex4_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][78] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex4_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][77] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex4_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][76] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex4_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][80] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex4_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][79] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex4_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][78] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex4_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][77] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex4_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][76] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex3_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][80] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex3_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][79] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex3_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][78] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex3_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][77] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex3_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][76] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex3_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][80] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex3_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][79] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex3_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][78] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex3_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][77] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex3_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][76] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex2_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][80] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex2_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][79] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex2_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][78] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex2_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][77] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex2_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][76] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex2_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][80] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex2_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][79] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex2_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][78] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex2_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][77] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex2_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][76] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex1_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][80] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex1_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][79] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex1_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][78] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex1_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][77] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex1_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][76] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex1_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][80] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex1_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][79] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex1_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][78] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex1_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][77] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex1_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][76] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex0_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][80] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex0_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][79] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex0_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][78] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex0_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][77] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex0_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][76] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex0_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][80] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex0_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][79] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex0_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][78] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex0_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][77] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex0_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][76] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:push_switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][80] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:push_switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][79] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:push_switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][78] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:push_switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][77] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:push_switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][76] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:push_switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][80] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:push_switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][79] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:push_switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][78] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:push_switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][77] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:push_switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][76] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][80] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][79] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][78] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][77] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][76] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][80] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][79] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][78] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][77] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][76] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:ledrs_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][80] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:ledrs_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][79] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:ledrs_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][78] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:ledrs_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][77] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:ledrs_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][76] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:ledrs_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][80] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:ledrs_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][79] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:ledrs_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][78] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:ledrs_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][77] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:ledrs_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][76] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][80] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][79] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][78] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][77] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][76] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][80] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][79] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][78] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][77] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][76] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:leds_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][80] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:leds_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][79] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:leds_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][78] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:leds_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][77] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:leds_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][76] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:leds_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][80] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:leds_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][79] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:leds_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][78] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:leds_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][77] ; Lost fanout ; +; nios_system:NiosII|altera_avalon_sc_fifo:leds_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][76] ; Lost fanout ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|rst1 ; Merged with nios_system:NiosII|altera_merlin_slave_translator:hex6_s1_translator|waitrequest_reset_override ; +; nios_system:NiosII|altera_merlin_slave_translator:hex6_s1_translator|waitrequest_reset_override ; Merged with nios_system:NiosII|altera_merlin_slave_translator:nios2_processor_jtag_debug_module_translator|waitrequest_reset_override ; +; nios_system:NiosII|altera_merlin_slave_translator:nios2_processor_jtag_debug_module_translator|waitrequest_reset_override ; Merged with nios_system:NiosII|altera_merlin_slave_translator:onchip_memory_s1_translator|waitrequest_reset_override ; +; nios_system:NiosII|altera_merlin_slave_translator:onchip_memory_s1_translator|waitrequest_reset_override ; Merged with nios_system:NiosII|altera_merlin_slave_translator:leds_s1_translator|waitrequest_reset_override ; +; nios_system:NiosII|altera_merlin_slave_translator:leds_s1_translator|waitrequest_reset_override ; Merged with nios_system:NiosII|altera_merlin_slave_translator:jtag_uart_avalon_jtag_slave_translator|waitrequest_reset_override ; +; nios_system:NiosII|altera_merlin_slave_translator:jtag_uart_avalon_jtag_slave_translator|waitrequest_reset_override ; Merged with nios_system:NiosII|altera_merlin_slave_translator:ledrs_s1_translator|waitrequest_reset_override ; +; nios_system:NiosII|altera_merlin_slave_translator:ledrs_s1_translator|waitrequest_reset_override ; Merged with nios_system:NiosII|altera_merlin_slave_translator:switches_s1_translator|waitrequest_reset_override ; +; nios_system:NiosII|altera_merlin_slave_translator:switches_s1_translator|waitrequest_reset_override ; Merged with nios_system:NiosII|altera_merlin_slave_translator:push_switches_s1_translator|waitrequest_reset_override ; +; nios_system:NiosII|altera_merlin_slave_translator:push_switches_s1_translator|waitrequest_reset_override ; Merged with nios_system:NiosII|altera_merlin_slave_translator:hex0_s1_translator|waitrequest_reset_override ; +; nios_system:NiosII|altera_merlin_slave_translator:hex0_s1_translator|waitrequest_reset_override ; Merged with nios_system:NiosII|altera_merlin_slave_translator:hex1_s1_translator|waitrequest_reset_override ; +; nios_system:NiosII|altera_merlin_slave_translator:hex1_s1_translator|waitrequest_reset_override ; Merged with nios_system:NiosII|altera_merlin_slave_translator:hex2_s1_translator|waitrequest_reset_override ; +; nios_system:NiosII|altera_merlin_slave_translator:hex2_s1_translator|waitrequest_reset_override ; Merged with nios_system:NiosII|altera_merlin_slave_translator:hex3_s1_translator|waitrequest_reset_override ; +; nios_system:NiosII|altera_merlin_slave_translator:hex3_s1_translator|waitrequest_reset_override ; Merged with nios_system:NiosII|altera_merlin_slave_translator:hex4_s1_translator|waitrequest_reset_override ; +; nios_system:NiosII|altera_merlin_slave_translator:hex4_s1_translator|waitrequest_reset_override ; Merged with nios_system:NiosII|altera_merlin_slave_translator:hex5_s1_translator|waitrequest_reset_override ; +; nios_system:NiosII|altera_merlin_slave_translator:hex5_s1_translator|waitrequest_reset_override ; Merged with nios_system:NiosII|altera_merlin_slave_translator:hex7_s1_translator|waitrequest_reset_override ; +; nios_system:NiosII|altera_merlin_slave_translator:hex7_s1_translator|waitrequest_reset_override ; Merged with nios_system:NiosII|altera_merlin_slave_translator:lcd_16207_0_control_slave_translator|waitrequest_reset_override ; +; nios_system:NiosII|altera_merlin_slave_translator:lcd_16207_0_control_slave_translator|waitrequest_reset_override ; Merged with nios_system:NiosII|altera_merlin_slave_translator:lcd_on_s1_translator|waitrequest_reset_override ; +; nios_system:NiosII|altera_merlin_slave_translator:lcd_on_s1_translator|waitrequest_reset_override ; Merged with nios_system:NiosII|altera_merlin_slave_translator:lcd_blon_s1_translator|waitrequest_reset_override ; +; nios_system:NiosII|altera_merlin_slave_translator:lcd_blon_s1_translator|waitrequest_reset_override ; Merged with nios_system:NiosII|altera_merlin_master_agent:nios2_processor_instruction_master_translator_avalon_universal_master_0_agent|hold_waitrequest ; +; nios_system:NiosII|altera_merlin_master_agent:nios2_processor_instruction_master_translator_avalon_universal_master_0_agent|hold_waitrequest ; Merged with nios_system:NiosII|altera_merlin_master_agent:nios2_processor_data_master_translator_avalon_universal_master_0_agent|hold_waitrequest ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_avalon_reg:the_nios_system_nios2_processor_nios2_avalon_reg|oci_ienable[22] ; Merged with nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_avalon_reg:the_nios_system_nios2_processor_nios2_avalon_reg|oci_ienable[23] ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_avalon_reg:the_nios_system_nios2_processor_nios2_avalon_reg|oci_ienable[23] ; Merged with nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_avalon_reg:the_nios_system_nios2_processor_nios2_avalon_reg|oci_ienable[24] ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_avalon_reg:the_nios_system_nios2_processor_nios2_avalon_reg|oci_ienable[24] ; Merged with nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_avalon_reg:the_nios_system_nios2_processor_nios2_avalon_reg|oci_ienable[25] ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_avalon_reg:the_nios_system_nios2_processor_nios2_avalon_reg|oci_ienable[25] ; Merged with nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_avalon_reg:the_nios_system_nios2_processor_nios2_avalon_reg|oci_ienable[7] ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_avalon_reg:the_nios_system_nios2_processor_nios2_avalon_reg|oci_ienable[7] ; Merged with nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_avalon_reg:the_nios_system_nios2_processor_nios2_avalon_reg|oci_ienable[27] ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_avalon_reg:the_nios_system_nios2_processor_nios2_avalon_reg|oci_ienable[27] ; Merged with nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_avalon_reg:the_nios_system_nios2_processor_nios2_avalon_reg|oci_ienable[28] ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_avalon_reg:the_nios_system_nios2_processor_nios2_avalon_reg|oci_ienable[28] ; Merged with nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_avalon_reg:the_nios_system_nios2_processor_nios2_avalon_reg|oci_ienable[29] ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_avalon_reg:the_nios_system_nios2_processor_nios2_avalon_reg|oci_ienable[29] ; Merged with nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_avalon_reg:the_nios_system_nios2_processor_nios2_avalon_reg|oci_ienable[30] ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_avalon_reg:the_nios_system_nios2_processor_nios2_avalon_reg|oci_ienable[30] ; Merged with nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_avalon_reg:the_nios_system_nios2_processor_nios2_avalon_reg|oci_ienable[31] ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_avalon_reg:the_nios_system_nios2_processor_nios2_avalon_reg|oci_ienable[31] ; Merged with nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_avalon_reg:the_nios_system_nios2_processor_nios2_avalon_reg|oci_ienable[0] ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_avalon_reg:the_nios_system_nios2_processor_nios2_avalon_reg|oci_ienable[0] ; Merged with nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_avalon_reg:the_nios_system_nios2_processor_nios2_avalon_reg|oci_ienable[1] ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_avalon_reg:the_nios_system_nios2_processor_nios2_avalon_reg|oci_ienable[1] ; Merged with nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_avalon_reg:the_nios_system_nios2_processor_nios2_avalon_reg|oci_ienable[2] ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_avalon_reg:the_nios_system_nios2_processor_nios2_avalon_reg|oci_ienable[2] ; Merged with nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_avalon_reg:the_nios_system_nios2_processor_nios2_avalon_reg|oci_ienable[3] ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_avalon_reg:the_nios_system_nios2_processor_nios2_avalon_reg|oci_ienable[3] ; Merged with nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_avalon_reg:the_nios_system_nios2_processor_nios2_avalon_reg|oci_ienable[4] ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_avalon_reg:the_nios_system_nios2_processor_nios2_avalon_reg|oci_ienable[4] ; Merged with nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_avalon_reg:the_nios_system_nios2_processor_nios2_avalon_reg|oci_ienable[6] ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_avalon_reg:the_nios_system_nios2_processor_nios2_avalon_reg|oci_ienable[6] ; Merged with nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_avalon_reg:the_nios_system_nios2_processor_nios2_avalon_reg|oci_ienable[8] ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_avalon_reg:the_nios_system_nios2_processor_nios2_avalon_reg|oci_ienable[8] ; Merged with nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_avalon_reg:the_nios_system_nios2_processor_nios2_avalon_reg|oci_ienable[9] ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_avalon_reg:the_nios_system_nios2_processor_nios2_avalon_reg|oci_ienable[9] ; Merged with nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_avalon_reg:the_nios_system_nios2_processor_nios2_avalon_reg|oci_ienable[10] ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_avalon_reg:the_nios_system_nios2_processor_nios2_avalon_reg|oci_ienable[10] ; Merged with nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_avalon_reg:the_nios_system_nios2_processor_nios2_avalon_reg|oci_ienable[11] ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_avalon_reg:the_nios_system_nios2_processor_nios2_avalon_reg|oci_ienable[11] ; Merged with nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_avalon_reg:the_nios_system_nios2_processor_nios2_avalon_reg|oci_ienable[12] ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_avalon_reg:the_nios_system_nios2_processor_nios2_avalon_reg|oci_ienable[12] ; Merged with nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_avalon_reg:the_nios_system_nios2_processor_nios2_avalon_reg|oci_ienable[13] ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_avalon_reg:the_nios_system_nios2_processor_nios2_avalon_reg|oci_ienable[13] ; Merged with nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_avalon_reg:the_nios_system_nios2_processor_nios2_avalon_reg|oci_ienable[14] ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_avalon_reg:the_nios_system_nios2_processor_nios2_avalon_reg|oci_ienable[14] ; Merged with nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_avalon_reg:the_nios_system_nios2_processor_nios2_avalon_reg|oci_ienable[15] ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_avalon_reg:the_nios_system_nios2_processor_nios2_avalon_reg|oci_ienable[15] ; Merged with nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_avalon_reg:the_nios_system_nios2_processor_nios2_avalon_reg|oci_ienable[26] ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_avalon_reg:the_nios_system_nios2_processor_nios2_avalon_reg|oci_ienable[26] ; Merged with nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_avalon_reg:the_nios_system_nios2_processor_nios2_avalon_reg|oci_ienable[16] ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_avalon_reg:the_nios_system_nios2_processor_nios2_avalon_reg|oci_ienable[16] ; Merged with nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_avalon_reg:the_nios_system_nios2_processor_nios2_avalon_reg|oci_ienable[17] ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_avalon_reg:the_nios_system_nios2_processor_nios2_avalon_reg|oci_ienable[17] ; Merged with nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_avalon_reg:the_nios_system_nios2_processor_nios2_avalon_reg|oci_ienable[18] ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_avalon_reg:the_nios_system_nios2_processor_nios2_avalon_reg|oci_ienable[18] ; Merged with nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_avalon_reg:the_nios_system_nios2_processor_nios2_avalon_reg|oci_ienable[19] ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_avalon_reg:the_nios_system_nios2_processor_nios2_avalon_reg|oci_ienable[19] ; Merged with nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_avalon_reg:the_nios_system_nios2_processor_nios2_avalon_reg|oci_ienable[20] ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_avalon_reg:the_nios_system_nios2_processor_nios2_avalon_reg|oci_ienable[20] ; Merged with nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_avalon_reg:the_nios_system_nios2_processor_nios2_avalon_reg|oci_ienable[21] ; +; nios_system:NiosII|altera_avalon_sc_fifo:lcd_blon_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][55] ; Merged with nios_system:NiosII|altera_avalon_sc_fifo:lcd_blon_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][62] ; +; nios_system:NiosII|altera_avalon_sc_fifo:lcd_blon_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][61] ; Merged with nios_system:NiosII|altera_avalon_sc_fifo:lcd_blon_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][62] ; +; nios_system:NiosII|altera_avalon_sc_fifo:lcd_on_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][55] ; Merged with nios_system:NiosII|altera_avalon_sc_fifo:lcd_on_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][62] ; +; nios_system:NiosII|altera_avalon_sc_fifo:lcd_on_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][61] ; Merged with nios_system:NiosII|altera_avalon_sc_fifo:lcd_on_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][62] ; +; nios_system:NiosII|altera_avalon_sc_fifo:lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][61] ; Merged with nios_system:NiosII|altera_avalon_sc_fifo:lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][62] ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex7_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][61] ; Merged with nios_system:NiosII|altera_avalon_sc_fifo:hex7_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][62] ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex7_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][55] ; Merged with nios_system:NiosII|altera_avalon_sc_fifo:hex7_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][62] ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex6_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][55] ; Merged with nios_system:NiosII|altera_avalon_sc_fifo:hex6_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][62] ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex6_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][61] ; Merged with nios_system:NiosII|altera_avalon_sc_fifo:hex6_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][62] ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex5_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][55] ; Merged with nios_system:NiosII|altera_avalon_sc_fifo:hex5_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][62] ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex5_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][61] ; Merged with nios_system:NiosII|altera_avalon_sc_fifo:hex5_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][62] ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex4_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][61] ; Merged with nios_system:NiosII|altera_avalon_sc_fifo:hex4_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][62] ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex3_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][55] ; Merged with nios_system:NiosII|altera_avalon_sc_fifo:hex3_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][62] ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex3_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][61] ; Merged with nios_system:NiosII|altera_avalon_sc_fifo:hex3_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][62] ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex2_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][61] ; Merged with nios_system:NiosII|altera_avalon_sc_fifo:hex2_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][62] ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex2_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][55] ; Merged with nios_system:NiosII|altera_avalon_sc_fifo:hex2_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][62] ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex1_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][61] ; Merged with nios_system:NiosII|altera_avalon_sc_fifo:hex1_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][62] ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex1_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][55] ; Merged with nios_system:NiosII|altera_avalon_sc_fifo:hex1_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][62] ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex0_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][55] ; Merged with nios_system:NiosII|altera_avalon_sc_fifo:hex0_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][62] ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex0_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][61] ; Merged with nios_system:NiosII|altera_avalon_sc_fifo:hex0_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][62] ; +; nios_system:NiosII|altera_avalon_sc_fifo:push_switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][61] ; Merged with nios_system:NiosII|altera_avalon_sc_fifo:push_switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][62] ; +; nios_system:NiosII|altera_avalon_sc_fifo:push_switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][55] ; Merged with nios_system:NiosII|altera_avalon_sc_fifo:push_switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][62] ; +; nios_system:NiosII|altera_avalon_sc_fifo:switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][61] ; Merged with nios_system:NiosII|altera_avalon_sc_fifo:switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][62] ; +; nios_system:NiosII|altera_avalon_sc_fifo:switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][55] ; Merged with nios_system:NiosII|altera_avalon_sc_fifo:switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][62] ; +; nios_system:NiosII|altera_avalon_sc_fifo:ledrs_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][55] ; Merged with nios_system:NiosII|altera_avalon_sc_fifo:ledrs_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][61] ; +; nios_system:NiosII|altera_avalon_sc_fifo:jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][61] ; Merged with nios_system:NiosII|altera_avalon_sc_fifo:jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][62] ; +; nios_system:NiosII|altera_avalon_sc_fifo:jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][55] ; Merged with nios_system:NiosII|altera_avalon_sc_fifo:jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][62] ; +; nios_system:NiosII|altera_avalon_sc_fifo:leds_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][61] ; Merged with nios_system:NiosII|altera_avalon_sc_fifo:leds_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][62] ; +; nios_system:NiosII|altera_avalon_sc_fifo:leds_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][55] ; Merged with nios_system:NiosII|altera_avalon_sc_fifo:leds_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][62] ; +; nios_system:NiosII|altera_avalon_sc_fifo:onchip_memory_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][77] ; Merged with nios_system:NiosII|altera_avalon_sc_fifo:onchip_memory_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][79] ; +; nios_system:NiosII|altera_avalon_sc_fifo:onchip_memory_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][62] ; Merged with nios_system:NiosII|altera_avalon_sc_fifo:onchip_memory_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][79] ; +; nios_system:NiosII|altera_avalon_sc_fifo:onchip_memory_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][61] ; Merged with nios_system:NiosII|altera_avalon_sc_fifo:onchip_memory_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][79] ; +; nios_system:NiosII|altera_avalon_sc_fifo:onchip_memory_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][78] ; Merged with nios_system:NiosII|altera_avalon_sc_fifo:onchip_memory_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][79] ; +; nios_system:NiosII|altera_avalon_sc_fifo:onchip_memory_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][55] ; Merged with nios_system:NiosII|altera_avalon_sc_fifo:onchip_memory_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][79] ; +; nios_system:NiosII|altera_avalon_sc_fifo:nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][78] ; Merged with nios_system:NiosII|altera_avalon_sc_fifo:nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][80] ; +; nios_system:NiosII|altera_avalon_sc_fifo:nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][62] ; Merged with nios_system:NiosII|altera_avalon_sc_fifo:nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][80] ; +; nios_system:NiosII|altera_avalon_sc_fifo:nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][61] ; Merged with nios_system:NiosII|altera_avalon_sc_fifo:nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][80] ; +; nios_system:NiosII|altera_avalon_sc_fifo:nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][55] ; Merged with nios_system:NiosII|altera_avalon_sc_fifo:nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][80] ; +; nios_system:NiosII|altera_avalon_sc_fifo:nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][79] ; Merged with nios_system:NiosII|altera_avalon_sc_fifo:nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][80] ; +; nios_system:NiosII|altera_avalon_sc_fifo:lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][55] ; Merged with nios_system:NiosII|altera_avalon_sc_fifo:lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][62] ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex4_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][55] ; Merged with nios_system:NiosII|altera_avalon_sc_fifo:hex4_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][62] ; +; nios_system:NiosII|altera_avalon_sc_fifo:ledrs_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][61] ; Merged with nios_system:NiosII|altera_avalon_sc_fifo:ledrs_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][62] ; +; nios_system:NiosII|altera_avalon_sc_fifo:onchip_memory_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][79] ; Merged with nios_system:NiosII|altera_avalon_sc_fifo:onchip_memory_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][80] ; +; nios_system:NiosII|altera_avalon_sc_fifo:nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][77] ; Merged with nios_system:NiosII|altera_avalon_sc_fifo:nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][80] ; +; nios_system:NiosII|altera_avalon_sc_fifo:lcd_blon_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][61] ; Merged with nios_system:NiosII|altera_avalon_sc_fifo:lcd_blon_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][55] ; +; nios_system:NiosII|altera_avalon_sc_fifo:lcd_blon_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][62] ; Merged with nios_system:NiosII|altera_avalon_sc_fifo:lcd_blon_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][55] ; +; nios_system:NiosII|altera_merlin_slave_agent:lcd_blon_s1_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor|burst_uncompress_byte_counter[1] ; Merged with nios_system:NiosII|altera_merlin_slave_agent:lcd_blon_s1_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor|burst_uncompress_byte_counter[0] ; +; nios_system:NiosII|altera_avalon_sc_fifo:lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][61] ; Merged with nios_system:NiosII|altera_avalon_sc_fifo:lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][55] ; +; nios_system:NiosII|altera_avalon_sc_fifo:lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][62] ; Merged with nios_system:NiosII|altera_avalon_sc_fifo:lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][55] ; +; nios_system:NiosII|altera_merlin_slave_agent:lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor|burst_uncompress_byte_counter[1] ; Merged with nios_system:NiosII|altera_merlin_slave_agent:lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor|burst_uncompress_byte_counter[0] ; +; nios_system:NiosII|altera_merlin_slave_agent:hex6_s1_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor|burst_uncompress_byte_counter[1] ; Merged with nios_system:NiosII|altera_merlin_slave_agent:hex6_s1_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor|burst_uncompress_byte_counter[0] ; +; nios_system:NiosII|altera_merlin_slave_agent:hex5_s1_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor|burst_uncompress_byte_counter[1] ; Merged with nios_system:NiosII|altera_merlin_slave_agent:hex5_s1_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor|burst_uncompress_byte_counter[0] ; +; nios_system:NiosII|altera_merlin_slave_agent:hex4_s1_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor|burst_uncompress_byte_counter[1] ; Merged with nios_system:NiosII|altera_merlin_slave_agent:hex4_s1_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor|burst_uncompress_byte_counter[0] ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex3_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][61] ; Merged with nios_system:NiosII|altera_avalon_sc_fifo:hex3_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][55] ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex3_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][62] ; Merged with nios_system:NiosII|altera_avalon_sc_fifo:hex3_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][55] ; +; nios_system:NiosII|altera_merlin_slave_agent:hex3_s1_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor|burst_uncompress_byte_counter[1] ; Merged with nios_system:NiosII|altera_merlin_slave_agent:hex3_s1_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor|burst_uncompress_byte_counter[0] ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex2_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][61] ; Merged with nios_system:NiosII|altera_avalon_sc_fifo:hex2_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][55] ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex2_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][62] ; Merged with nios_system:NiosII|altera_avalon_sc_fifo:hex2_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][55] ; +; nios_system:NiosII|altera_merlin_slave_agent:hex2_s1_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor|burst_uncompress_byte_counter[1] ; Merged with nios_system:NiosII|altera_merlin_slave_agent:hex2_s1_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor|burst_uncompress_byte_counter[0] ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex1_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][61] ; Merged with nios_system:NiosII|altera_avalon_sc_fifo:hex1_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][55] ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex1_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][62] ; Merged with nios_system:NiosII|altera_avalon_sc_fifo:hex1_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][55] ; +; nios_system:NiosII|altera_merlin_slave_agent:hex1_s1_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor|burst_uncompress_byte_counter[1] ; Merged with nios_system:NiosII|altera_merlin_slave_agent:hex1_s1_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor|burst_uncompress_byte_counter[0] ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex0_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][61] ; Merged with nios_system:NiosII|altera_avalon_sc_fifo:hex0_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][55] ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex0_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][62] ; Merged with nios_system:NiosII|altera_avalon_sc_fifo:hex0_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][55] ; +; nios_system:NiosII|altera_merlin_slave_agent:hex0_s1_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor|burst_uncompress_byte_counter[1] ; Merged with nios_system:NiosII|altera_merlin_slave_agent:hex0_s1_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor|burst_uncompress_byte_counter[0] ; +; nios_system:NiosII|altera_avalon_sc_fifo:push_switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][61] ; Merged with nios_system:NiosII|altera_avalon_sc_fifo:push_switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][55] ; +; nios_system:NiosII|altera_avalon_sc_fifo:push_switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][62] ; Merged with nios_system:NiosII|altera_avalon_sc_fifo:push_switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][55] ; +; nios_system:NiosII|altera_merlin_slave_agent:push_switches_s1_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor|burst_uncompress_byte_counter[1] ; Merged with nios_system:NiosII|altera_merlin_slave_agent:push_switches_s1_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor|burst_uncompress_byte_counter[0] ; +; nios_system:NiosII|altera_avalon_sc_fifo:switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][61] ; Merged with nios_system:NiosII|altera_avalon_sc_fifo:switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][55] ; +; nios_system:NiosII|altera_avalon_sc_fifo:switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][62] ; Merged with nios_system:NiosII|altera_avalon_sc_fifo:switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][55] ; +; nios_system:NiosII|altera_merlin_slave_agent:switches_s1_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor|burst_uncompress_byte_counter[1] ; Merged with nios_system:NiosII|altera_merlin_slave_agent:switches_s1_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor|burst_uncompress_byte_counter[0] ; +; nios_system:NiosII|altera_avalon_sc_fifo:ledrs_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][61] ; Merged with nios_system:NiosII|altera_avalon_sc_fifo:ledrs_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][55] ; +; nios_system:NiosII|altera_avalon_sc_fifo:ledrs_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][62] ; Merged with nios_system:NiosII|altera_avalon_sc_fifo:ledrs_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][55] ; +; nios_system:NiosII|altera_merlin_slave_agent:ledrs_s1_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor|burst_uncompress_byte_counter[1] ; Merged with nios_system:NiosII|altera_merlin_slave_agent:ledrs_s1_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor|burst_uncompress_byte_counter[0] ; +; nios_system:NiosII|altera_avalon_sc_fifo:jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][61] ; Merged with nios_system:NiosII|altera_avalon_sc_fifo:jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][55] ; +; nios_system:NiosII|altera_avalon_sc_fifo:jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][62] ; Merged with nios_system:NiosII|altera_avalon_sc_fifo:jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][55] ; +; nios_system:NiosII|altera_merlin_slave_agent:jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor|burst_uncompress_byte_counter[1] ; Merged with nios_system:NiosII|altera_merlin_slave_agent:jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor|burst_uncompress_byte_counter[0] ; +; nios_system:NiosII|altera_avalon_sc_fifo:leds_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][61] ; Merged with nios_system:NiosII|altera_avalon_sc_fifo:leds_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][55] ; +; nios_system:NiosII|altera_avalon_sc_fifo:leds_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][62] ; Merged with nios_system:NiosII|altera_avalon_sc_fifo:leds_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][55] ; +; nios_system:NiosII|altera_merlin_slave_agent:leds_s1_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor|burst_uncompress_byte_counter[1] ; Merged with nios_system:NiosII|altera_merlin_slave_agent:leds_s1_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor|burst_uncompress_byte_counter[0] ; +; nios_system:NiosII|altera_avalon_sc_fifo:onchip_memory_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][61] ; Merged with nios_system:NiosII|altera_avalon_sc_fifo:onchip_memory_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][55] ; +; nios_system:NiosII|altera_avalon_sc_fifo:onchip_memory_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][62] ; Merged with nios_system:NiosII|altera_avalon_sc_fifo:onchip_memory_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][55] ; +; nios_system:NiosII|altera_avalon_sc_fifo:onchip_memory_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][77] ; Merged with nios_system:NiosII|altera_avalon_sc_fifo:onchip_memory_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][55] ; +; nios_system:NiosII|altera_avalon_sc_fifo:onchip_memory_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][78] ; Merged with nios_system:NiosII|altera_avalon_sc_fifo:onchip_memory_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][55] ; +; nios_system:NiosII|altera_avalon_sc_fifo:onchip_memory_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][79] ; Merged with nios_system:NiosII|altera_avalon_sc_fifo:onchip_memory_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][55] ; +; nios_system:NiosII|altera_avalon_sc_fifo:onchip_memory_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][80] ; Merged with nios_system:NiosII|altera_avalon_sc_fifo:onchip_memory_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][55] ; +; nios_system:NiosII|altera_merlin_slave_agent:onchip_memory_s1_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor|burst_uncompress_byte_counter[1] ; Merged with nios_system:NiosII|altera_merlin_slave_agent:onchip_memory_s1_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor|burst_uncompress_byte_counter[0] ; +; nios_system:NiosII|altera_avalon_sc_fifo:nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][61] ; Merged with nios_system:NiosII|altera_avalon_sc_fifo:nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][55] ; +; nios_system:NiosII|altera_avalon_sc_fifo:nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][62] ; Merged with nios_system:NiosII|altera_avalon_sc_fifo:nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][55] ; +; nios_system:NiosII|altera_avalon_sc_fifo:nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][77] ; Merged with nios_system:NiosII|altera_avalon_sc_fifo:nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][55] ; +; nios_system:NiosII|altera_avalon_sc_fifo:nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][78] ; Merged with nios_system:NiosII|altera_avalon_sc_fifo:nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][55] ; +; nios_system:NiosII|altera_avalon_sc_fifo:nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][79] ; Merged with nios_system:NiosII|altera_avalon_sc_fifo:nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][55] ; +; nios_system:NiosII|altera_avalon_sc_fifo:nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][80] ; Merged with nios_system:NiosII|altera_avalon_sc_fifo:nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][55] ; +; nios_system:NiosII|altera_merlin_slave_agent:nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor|burst_uncompress_byte_counter[1] ; Merged with nios_system:NiosII|altera_merlin_slave_agent:nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor|burst_uncompress_byte_counter[0] ; +; nios_system:NiosII|altera_merlin_slave_agent:lcd_on_s1_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor|burst_uncompress_byte_counter[1] ; Merged with nios_system:NiosII|altera_merlin_slave_agent:lcd_on_s1_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor|burst_uncompress_byte_counter[0] ; +; nios_system:NiosII|altera_merlin_slave_agent:hex7_s1_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor|burst_uncompress_byte_counter[1] ; Merged with nios_system:NiosII|altera_merlin_slave_agent:hex7_s1_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor|burst_uncompress_byte_counter[0] ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex5_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][61] ; Merged with nios_system:NiosII|altera_avalon_sc_fifo:hex5_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][55] ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex5_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][62] ; Merged with nios_system:NiosII|altera_avalon_sc_fifo:hex5_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][55] ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex4_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][61] ; Merged with nios_system:NiosII|altera_avalon_sc_fifo:hex4_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][55] ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex4_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][62] ; Merged with nios_system:NiosII|altera_avalon_sc_fifo:hex4_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][55] ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex7_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][61] ; Merged with nios_system:NiosII|altera_avalon_sc_fifo:hex7_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][55] ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex7_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][62] ; Merged with nios_system:NiosII|altera_avalon_sc_fifo:hex7_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][55] ; +; nios_system:NiosII|altera_avalon_sc_fifo:lcd_on_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][61] ; Merged with nios_system:NiosII|altera_avalon_sc_fifo:lcd_on_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][55] ; +; nios_system:NiosII|altera_avalon_sc_fifo:lcd_on_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][62] ; Merged with nios_system:NiosII|altera_avalon_sc_fifo:lcd_on_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][55] ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex6_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][61] ; Merged with nios_system:NiosII|altera_avalon_sc_fifo:hex6_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][55] ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex6_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][62] ; Merged with nios_system:NiosII|altera_avalon_sc_fifo:hex6_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][55] ; +; nios_system:NiosII|altera_avalon_sc_fifo:lcd_blon_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][62] ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_avalon_sc_fifo:lcd_on_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][62] ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_avalon_sc_fifo:lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][62] ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex7_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][62] ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex6_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][62] ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex5_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][62] ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex4_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][62] ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex3_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][62] ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex2_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][62] ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex1_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][62] ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex0_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][62] ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_avalon_sc_fifo:push_switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][62] ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_avalon_sc_fifo:switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][62] ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_avalon_sc_fifo:ledrs_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][62] ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_avalon_sc_fifo:jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][62] ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_avalon_sc_fifo:leds_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][62] ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_avalon_sc_fifo:onchip_memory_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][80] ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_avalon_sc_fifo:nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][80] ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_oci_break:the_nios_system_nios2_processor_nios2_oci_break|trigger_state ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_avalon_sc_fifo:lcd_blon_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][55] ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_merlin_slave_agent:lcd_blon_s1_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor|burst_uncompress_busy ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_merlin_slave_agent:lcd_blon_s1_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor|burst_uncompress_byte_counter[0,2] ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_avalon_sc_fifo:lcd_on_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][55] ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_merlin_slave_agent:lcd_on_s1_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor|burst_uncompress_busy ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_merlin_slave_agent:lcd_on_s1_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor|burst_uncompress_byte_counter[0,2] ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_avalon_sc_fifo:lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][55] ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_merlin_slave_agent:lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor|burst_uncompress_busy ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_merlin_slave_agent:lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor|burst_uncompress_byte_counter[0,2] ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex7_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][55] ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_merlin_slave_agent:hex7_s1_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor|burst_uncompress_busy ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_merlin_slave_agent:hex7_s1_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor|burst_uncompress_byte_counter[0,2] ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex6_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][55] ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_merlin_slave_agent:hex6_s1_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor|burst_uncompress_busy ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_merlin_slave_agent:hex6_s1_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor|burst_uncompress_byte_counter[0,2] ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex5_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][55] ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_merlin_slave_agent:hex5_s1_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor|burst_uncompress_busy ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_merlin_slave_agent:hex5_s1_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor|burst_uncompress_byte_counter[0,2] ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex4_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][55] ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_merlin_slave_agent:hex4_s1_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor|burst_uncompress_busy ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_merlin_slave_agent:hex4_s1_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor|burst_uncompress_byte_counter[0,2] ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex3_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][55] ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_merlin_slave_agent:hex3_s1_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor|burst_uncompress_busy ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_merlin_slave_agent:hex3_s1_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor|burst_uncompress_byte_counter[0,2] ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex2_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][55] ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_merlin_slave_agent:hex2_s1_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor|burst_uncompress_busy ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_merlin_slave_agent:hex2_s1_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor|burst_uncompress_byte_counter[0,2] ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex1_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][55] ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_merlin_slave_agent:hex1_s1_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor|burst_uncompress_busy ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_merlin_slave_agent:hex1_s1_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor|burst_uncompress_byte_counter[0,2] ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex0_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][55] ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_merlin_slave_agent:hex0_s1_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor|burst_uncompress_busy ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_merlin_slave_agent:hex0_s1_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor|burst_uncompress_byte_counter[0,2] ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_avalon_sc_fifo:push_switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][55] ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_merlin_slave_agent:push_switches_s1_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor|burst_uncompress_busy ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_merlin_slave_agent:push_switches_s1_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor|burst_uncompress_byte_counter[0,2] ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_avalon_sc_fifo:switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][55] ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_merlin_slave_agent:switches_s1_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor|burst_uncompress_busy ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_merlin_slave_agent:switches_s1_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor|burst_uncompress_byte_counter[0,2] ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_avalon_sc_fifo:ledrs_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][55] ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_merlin_slave_agent:ledrs_s1_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor|burst_uncompress_busy ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_merlin_slave_agent:ledrs_s1_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor|burst_uncompress_byte_counter[0,2] ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_avalon_sc_fifo:jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][55] ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_merlin_slave_agent:jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor|burst_uncompress_busy ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_merlin_slave_agent:jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor|burst_uncompress_byte_counter[0,2] ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_avalon_sc_fifo:leds_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][55] ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_merlin_slave_agent:leds_s1_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor|burst_uncompress_busy ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_merlin_slave_agent:leds_s1_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor|burst_uncompress_byte_counter[0,2] ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_avalon_sc_fifo:onchip_memory_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][55] ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_merlin_slave_agent:onchip_memory_s1_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor|burst_uncompress_busy ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_merlin_slave_agent:onchip_memory_s1_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor|burst_uncompress_byte_counter[0,2] ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_avalon_sc_fifo:nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][55] ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_merlin_slave_agent:nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor|burst_uncompress_busy ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_merlin_slave_agent:nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor|burst_uncompress_byte_counter[0,2] ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_oci_dbrk:the_nios_system_nios2_processor_nios2_oci_dbrk|dbrk_break ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_oci_break:the_nios_system_nios2_processor_nios2_oci_break|trigbrktype ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_reset_controller:rst_controller|r_early_rst ; Merged with nios_system:NiosII|altera_reset_controller:rst_controller|r_sync_rst_dly ; +; nios_system:NiosII|altera_avalon_sc_fifo:leds_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][96] ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_avalon_sc_fifo:jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][96] ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_avalon_sc_fifo:ledrs_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][96] ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_avalon_sc_fifo:switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][96] ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_avalon_sc_fifo:push_switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][96] ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex0_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][96] ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex1_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][96] ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex2_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][96] ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex3_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][96] ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex4_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][96] ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex5_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][96] ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex6_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][96] ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex7_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][96] ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_avalon_sc_fifo:lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][96] ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_avalon_sc_fifo:lcd_on_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][96] ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_avalon_sc_fifo:lcd_blon_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][96] ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_avalon_sc_fifo:nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][96] ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_avalon_sc_fifo:onchip_memory_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][96] ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_avalon_sc_fifo:leds_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][96] ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_avalon_sc_fifo:jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][96] ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_avalon_sc_fifo:ledrs_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][96] ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_avalon_sc_fifo:switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][96] ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_avalon_sc_fifo:push_switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][96] ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex0_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][96] ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex1_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][96] ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex2_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][96] ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex3_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][96] ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex4_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][96] ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex5_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][96] ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex6_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][96] ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex7_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][96] ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_avalon_sc_fifo:lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][96] ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_avalon_sc_fifo:lcd_on_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][96] ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_avalon_sc_fifo:lcd_blon_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][96] ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_avalon_sc_fifo:nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][96] ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|altera_avalon_sc_fifo:onchip_memory_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][96] ; Stuck at GND due to stuck port data_in ; +; nios_system:NiosII|nios_system_cmd_xbar_mux:cmd_xbar_mux|share_count_zero_flag ; Stuck at VCC due to stuck port data_in ; +; nios_system:NiosII|nios_system_cmd_xbar_mux:cmd_xbar_mux_001|share_count_zero_flag ; Stuck at VCC due to stuck port data_in ; +; nios_system:NiosII|nios_system_cmd_xbar_mux:cmd_xbar_mux|share_count[0] ; Lost fanout ; +; nios_system:NiosII|nios_system_cmd_xbar_mux:cmd_xbar_mux_001|share_count[0] ; Lost fanout ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|DRsize~3 ; Lost fanout ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|DRsize~4 ; Lost fanout ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|DRsize~5 ; Lost fanout ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|DRsize.101 ; Lost fanout ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|DRsize.011 ; Merged with nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|DRsize.001 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|DRsize.001 ; Stuck at GND due to stuck port data_in ; +; Total Number of Removed Registers = 975 ; ; ++-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + + ++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Removed Registers Triggering Further Register Optimizations ; ++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Register name ; Reason for Removal ; Registers Removed due to This Register ; ++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_oci_dbrk:the_nios_system_nios2_processor_nios2_oci_dbrk|dbrk_break_pulse ; Stuck at GND ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_oci_dbrk:the_nios_system_nios2_processor_nios2_oci_dbrk|dbrk_break, ; +; ; due to stuck port data_in ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_oci_break:the_nios_system_nios2_processor_nios2_oci_break|trigbrktype ; +; nios_system:NiosII|altera_avalon_sc_fifo:lcd_blon_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][62] ; Stuck at GND ; nios_system:NiosII|altera_avalon_sc_fifo:lcd_blon_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][55], ; +; ; due to stuck port data_in ; nios_system:NiosII|altera_merlin_slave_agent:lcd_blon_s1_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor|burst_uncompress_byte_counter[0] ; +; nios_system:NiosII|altera_avalon_sc_fifo:lcd_on_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][62] ; Stuck at GND ; nios_system:NiosII|altera_avalon_sc_fifo:lcd_on_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][55], ; +; ; due to stuck port data_in ; nios_system:NiosII|altera_merlin_slave_agent:lcd_on_s1_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor|burst_uncompress_byte_counter[0] ; +; nios_system:NiosII|altera_avalon_sc_fifo:lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][62] ; Stuck at GND ; nios_system:NiosII|altera_avalon_sc_fifo:lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][55], ; +; ; due to stuck port data_in ; nios_system:NiosII|altera_merlin_slave_agent:lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor|burst_uncompress_byte_counter[0] ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex7_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][62] ; Stuck at GND ; nios_system:NiosII|altera_avalon_sc_fifo:hex7_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][55], ; +; ; due to stuck port data_in ; nios_system:NiosII|altera_merlin_slave_agent:hex7_s1_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor|burst_uncompress_byte_counter[0] ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex6_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][62] ; Stuck at GND ; nios_system:NiosII|altera_avalon_sc_fifo:hex6_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][55], ; +; ; due to stuck port data_in ; nios_system:NiosII|altera_merlin_slave_agent:hex6_s1_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor|burst_uncompress_byte_counter[0] ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex5_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][62] ; Stuck at GND ; nios_system:NiosII|altera_avalon_sc_fifo:hex5_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][55], ; +; ; due to stuck port data_in ; nios_system:NiosII|altera_merlin_slave_agent:hex5_s1_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor|burst_uncompress_byte_counter[0] ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex4_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][62] ; Stuck at GND ; nios_system:NiosII|altera_avalon_sc_fifo:hex4_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][55], ; +; ; due to stuck port data_in ; nios_system:NiosII|altera_merlin_slave_agent:hex4_s1_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor|burst_uncompress_byte_counter[0] ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex3_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][62] ; Stuck at GND ; nios_system:NiosII|altera_avalon_sc_fifo:hex3_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][55], ; +; ; due to stuck port data_in ; nios_system:NiosII|altera_merlin_slave_agent:hex3_s1_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor|burst_uncompress_byte_counter[0] ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex2_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][62] ; Stuck at GND ; nios_system:NiosII|altera_avalon_sc_fifo:hex2_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][55], ; +; ; due to stuck port data_in ; nios_system:NiosII|altera_merlin_slave_agent:hex2_s1_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor|burst_uncompress_byte_counter[0] ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex1_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][62] ; Stuck at GND ; nios_system:NiosII|altera_avalon_sc_fifo:hex1_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][55], ; +; ; due to stuck port data_in ; nios_system:NiosII|altera_merlin_slave_agent:hex1_s1_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor|burst_uncompress_byte_counter[0] ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex0_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][62] ; Stuck at GND ; nios_system:NiosII|altera_avalon_sc_fifo:hex0_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][55], ; +; ; due to stuck port data_in ; nios_system:NiosII|altera_merlin_slave_agent:hex0_s1_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor|burst_uncompress_byte_counter[0] ; +; nios_system:NiosII|altera_avalon_sc_fifo:push_switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][62] ; Stuck at GND ; nios_system:NiosII|altera_avalon_sc_fifo:push_switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][55], ; +; ; due to stuck port data_in ; nios_system:NiosII|altera_merlin_slave_agent:push_switches_s1_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor|burst_uncompress_byte_counter[0] ; +; nios_system:NiosII|altera_avalon_sc_fifo:switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][62] ; Stuck at GND ; nios_system:NiosII|altera_avalon_sc_fifo:switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][55], ; +; ; due to stuck port data_in ; nios_system:NiosII|altera_merlin_slave_agent:switches_s1_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor|burst_uncompress_byte_counter[0] ; +; nios_system:NiosII|altera_avalon_sc_fifo:ledrs_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][62] ; Stuck at GND ; nios_system:NiosII|altera_avalon_sc_fifo:ledrs_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][55], ; +; ; due to stuck port data_in ; nios_system:NiosII|altera_merlin_slave_agent:ledrs_s1_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor|burst_uncompress_byte_counter[0] ; +; nios_system:NiosII|altera_avalon_sc_fifo:jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][62] ; Stuck at GND ; nios_system:NiosII|altera_avalon_sc_fifo:jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][55], ; +; ; due to stuck port data_in ; nios_system:NiosII|altera_merlin_slave_agent:jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor|burst_uncompress_byte_counter[0] ; +; nios_system:NiosII|altera_avalon_sc_fifo:leds_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][62] ; Stuck at GND ; nios_system:NiosII|altera_avalon_sc_fifo:leds_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][55], ; +; ; due to stuck port data_in ; nios_system:NiosII|altera_merlin_slave_agent:leds_s1_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor|burst_uncompress_byte_counter[0] ; +; nios_system:NiosII|altera_avalon_sc_fifo:onchip_memory_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][80] ; Stuck at GND ; nios_system:NiosII|altera_avalon_sc_fifo:onchip_memory_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][55], ; +; ; due to stuck port data_in ; nios_system:NiosII|altera_merlin_slave_agent:onchip_memory_s1_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor|burst_uncompress_byte_counter[0] ; +; nios_system:NiosII|altera_avalon_sc_fifo:nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][80] ; Stuck at GND ; nios_system:NiosII|altera_avalon_sc_fifo:nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][55], ; +; ; due to stuck port data_in ; nios_system:NiosII|altera_merlin_slave_agent:nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor|burst_uncompress_byte_counter[0] ; +; nios_system:NiosII|nios_system_push_switches:push_switches|readdata[12] ; Stuck at GND ; nios_system:NiosII|altera_merlin_slave_translator:push_switches_s1_translator|av_readdata_pre[12] ; +; ; due to stuck port data_in ; ; +; nios_system:NiosII|nios_system_push_switches:push_switches|readdata[11] ; Stuck at GND ; nios_system:NiosII|altera_merlin_slave_translator:push_switches_s1_translator|av_readdata_pre[11] ; +; ; due to stuck port data_in ; ; +; nios_system:NiosII|nios_system_push_switches:push_switches|readdata[10] ; Stuck at GND ; nios_system:NiosII|altera_merlin_slave_translator:push_switches_s1_translator|av_readdata_pre[10] ; +; ; due to stuck port data_in ; ; +; nios_system:NiosII|nios_system_push_switches:push_switches|readdata[9] ; Stuck at GND ; nios_system:NiosII|altera_merlin_slave_translator:push_switches_s1_translator|av_readdata_pre[9] ; +; ; due to stuck port data_in ; ; +; nios_system:NiosII|nios_system_push_switches:push_switches|readdata[8] ; Stuck at GND ; nios_system:NiosII|altera_merlin_slave_translator:push_switches_s1_translator|av_readdata_pre[8] ; +; ; due to stuck port data_in ; ; +; nios_system:NiosII|nios_system_push_switches:push_switches|readdata[7] ; Stuck at GND ; nios_system:NiosII|altera_merlin_slave_translator:push_switches_s1_translator|av_readdata_pre[7] ; +; ; due to stuck port data_in ; ; +; nios_system:NiosII|nios_system_push_switches:push_switches|readdata[6] ; Stuck at GND ; nios_system:NiosII|altera_merlin_slave_translator:push_switches_s1_translator|av_readdata_pre[6] ; +; ; due to stuck port data_in ; ; +; nios_system:NiosII|nios_system_push_switches:push_switches|readdata[5] ; Stuck at GND ; nios_system:NiosII|altera_merlin_slave_translator:push_switches_s1_translator|av_readdata_pre[5] ; +; ; due to stuck port data_in ; ; +; nios_system:NiosII|nios_system_push_switches:push_switches|readdata[4] ; Stuck at GND ; nios_system:NiosII|altera_merlin_slave_translator:push_switches_s1_translator|av_readdata_pre[4] ; +; ; due to stuck port data_in ; ; +; nios_system:NiosII|nios_system_push_switches:push_switches|readdata[3] ; Stuck at GND ; nios_system:NiosII|altera_merlin_slave_translator:push_switches_s1_translator|av_readdata_pre[3] ; +; ; due to stuck port data_in ; ; +; nios_system:NiosII|nios_system_switches:switches|readdata[31] ; Stuck at GND ; nios_system:NiosII|altera_merlin_slave_translator:switches_s1_translator|av_readdata_pre[31] ; +; ; due to stuck port data_in ; ; +; nios_system:NiosII|nios_system_switches:switches|readdata[30] ; Stuck at GND ; nios_system:NiosII|altera_merlin_slave_translator:switches_s1_translator|av_readdata_pre[30] ; +; ; due to stuck port data_in ; ; +; nios_system:NiosII|nios_system_switches:switches|readdata[29] ; Stuck at GND ; nios_system:NiosII|altera_merlin_slave_translator:switches_s1_translator|av_readdata_pre[29] ; +; ; due to stuck port data_in ; ; +; nios_system:NiosII|nios_system_switches:switches|readdata[28] ; Stuck at GND ; nios_system:NiosII|altera_merlin_slave_translator:switches_s1_translator|av_readdata_pre[28] ; +; ; due to stuck port data_in ; ; +; nios_system:NiosII|nios_system_switches:switches|readdata[27] ; Stuck at GND ; nios_system:NiosII|altera_merlin_slave_translator:switches_s1_translator|av_readdata_pre[27] ; +; ; due to stuck port data_in ; ; +; nios_system:NiosII|nios_system_switches:switches|readdata[26] ; Stuck at GND ; nios_system:NiosII|altera_merlin_slave_translator:switches_s1_translator|av_readdata_pre[26] ; +; ; due to stuck port data_in ; ; +; nios_system:NiosII|nios_system_switches:switches|readdata[25] ; Stuck at GND ; nios_system:NiosII|altera_merlin_slave_translator:switches_s1_translator|av_readdata_pre[25] ; +; ; due to stuck port data_in ; ; +; nios_system:NiosII|nios_system_switches:switches|readdata[24] ; Stuck at GND ; nios_system:NiosII|altera_merlin_slave_translator:switches_s1_translator|av_readdata_pre[24] ; +; ; due to stuck port data_in ; ; +; nios_system:NiosII|nios_system_switches:switches|readdata[23] ; Stuck at GND ; nios_system:NiosII|altera_merlin_slave_translator:switches_s1_translator|av_readdata_pre[23] ; +; ; due to stuck port data_in ; ; +; nios_system:NiosII|nios_system_switches:switches|readdata[22] ; Stuck at GND ; nios_system:NiosII|altera_merlin_slave_translator:switches_s1_translator|av_readdata_pre[22] ; +; ; due to stuck port data_in ; ; +; nios_system:NiosII|nios_system_switches:switches|readdata[21] ; Stuck at GND ; nios_system:NiosII|altera_merlin_slave_translator:switches_s1_translator|av_readdata_pre[21] ; +; ; due to stuck port data_in ; ; +; nios_system:NiosII|nios_system_switches:switches|readdata[20] ; Stuck at GND ; nios_system:NiosII|altera_merlin_slave_translator:switches_s1_translator|av_readdata_pre[20] ; +; ; due to stuck port data_in ; ; +; nios_system:NiosII|nios_system_switches:switches|readdata[19] ; Stuck at GND ; nios_system:NiosII|altera_merlin_slave_translator:switches_s1_translator|av_readdata_pre[19] ; +; ; due to stuck port data_in ; ; +; nios_system:NiosII|nios_system_switches:switches|readdata[18] ; Stuck at GND ; nios_system:NiosII|altera_merlin_slave_translator:switches_s1_translator|av_readdata_pre[18] ; +; ; due to stuck port data_in ; ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|W_ienable_reg[31] ; Stuck at GND ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|W_control_rd_data[31] ; +; ; due to stuck port data_in ; ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|W_ienable_reg[30] ; Stuck at GND ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|W_control_rd_data[30] ; +; ; due to stuck port data_in ; ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|W_ienable_reg[29] ; Stuck at GND ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|W_control_rd_data[29] ; +; ; due to stuck port data_in ; ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|W_ienable_reg[28] ; Stuck at GND ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|W_control_rd_data[28] ; +; ; due to stuck port data_in ; ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|W_ienable_reg[27] ; Stuck at GND ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|W_control_rd_data[27] ; +; ; due to stuck port data_in ; ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|W_ienable_reg[26] ; Stuck at GND ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|W_control_rd_data[26] ; +; ; due to stuck port data_in ; ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|W_ienable_reg[25] ; Stuck at GND ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|W_control_rd_data[25] ; +; ; due to stuck port data_in ; ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|W_ienable_reg[24] ; Stuck at GND ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|W_control_rd_data[24] ; +; ; due to stuck port data_in ; ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|W_ienable_reg[23] ; Stuck at GND ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|W_control_rd_data[23] ; +; ; due to stuck port data_in ; ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|W_ienable_reg[22] ; Stuck at GND ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|W_control_rd_data[22] ; +; ; due to stuck port data_in ; ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|W_ienable_reg[21] ; Stuck at GND ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|W_control_rd_data[21] ; +; ; due to stuck port data_in ; ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|W_ienable_reg[20] ; Stuck at GND ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|W_control_rd_data[20] ; +; ; due to stuck port data_in ; ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|W_ienable_reg[19] ; Stuck at GND ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|W_control_rd_data[19] ; +; ; due to stuck port data_in ; ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|W_ienable_reg[18] ; Stuck at GND ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|W_control_rd_data[18] ; +; ; due to stuck port data_in ; ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|W_ienable_reg[17] ; Stuck at GND ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|W_control_rd_data[17] ; +; ; due to stuck port data_in ; ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|W_ienable_reg[16] ; Stuck at GND ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|W_control_rd_data[16] ; +; ; due to stuck port data_in ; ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|W_ienable_reg[15] ; Stuck at GND ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|W_control_rd_data[15] ; +; ; due to stuck port data_in ; ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|W_ienable_reg[14] ; Stuck at GND ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|W_control_rd_data[14] ; +; ; due to stuck port data_in ; ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|W_ienable_reg[13] ; Stuck at GND ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|W_control_rd_data[13] ; +; ; due to stuck port data_in ; ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|W_ienable_reg[12] ; Stuck at GND ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|W_control_rd_data[12] ; +; ; due to stuck port data_in ; ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|W_ienable_reg[11] ; Stuck at GND ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|W_control_rd_data[11] ; +; ; due to stuck port data_in ; ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|W_ienable_reg[10] ; Stuck at GND ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|W_control_rd_data[10] ; +; ; due to stuck port data_in ; ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|W_ienable_reg[9] ; Stuck at GND ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|W_control_rd_data[9] ; +; ; due to stuck port data_in ; ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|W_ienable_reg[8] ; Stuck at GND ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|W_control_rd_data[8] ; +; ; due to stuck port data_in ; ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|W_ienable_reg[7] ; Stuck at GND ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|W_control_rd_data[7] ; +; ; due to stuck port data_in ; ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|W_ienable_reg[6] ; Stuck at GND ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|W_control_rd_data[6] ; +; ; due to stuck port data_in ; ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|W_ienable_reg[4] ; Stuck at GND ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|W_control_rd_data[4] ; +; ; due to stuck port data_in ; ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|W_ienable_reg[3] ; Stuck at GND ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|W_control_rd_data[3] ; +; ; due to stuck port data_in ; ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|W_ienable_reg[2] ; Stuck at GND ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|W_control_rd_data[2] ; +; ; due to stuck port data_in ; ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|W_ienable_reg[1] ; Stuck at GND ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|W_control_rd_data[1] ; +; ; due to stuck port data_in ; ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_oci_dbrk:the_nios_system_nios2_processor_nios2_oci_dbrk|dbrk_goto1 ; Stuck at GND ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_oci_break:the_nios_system_nios2_processor_nios2_oci_break|trigger_state ; +; ; due to stuck port data_in ; ; +; nios_system:NiosII|nios_system_push_switches:push_switches|readdata[31] ; Stuck at GND ; nios_system:NiosII|altera_merlin_slave_translator:push_switches_s1_translator|av_readdata_pre[31] ; +; ; due to stuck port data_in ; ; +; nios_system:NiosII|nios_system_push_switches:push_switches|readdata[30] ; Stuck at GND ; nios_system:NiosII|altera_merlin_slave_translator:push_switches_s1_translator|av_readdata_pre[30] ; +; ; due to stuck port data_in ; ; +; nios_system:NiosII|nios_system_push_switches:push_switches|readdata[29] ; Stuck at GND ; nios_system:NiosII|altera_merlin_slave_translator:push_switches_s1_translator|av_readdata_pre[29] ; +; ; due to stuck port data_in ; ; +; nios_system:NiosII|nios_system_push_switches:push_switches|readdata[28] ; Stuck at GND ; nios_system:NiosII|altera_merlin_slave_translator:push_switches_s1_translator|av_readdata_pre[28] ; +; ; due to stuck port data_in ; ; +; nios_system:NiosII|nios_system_push_switches:push_switches|readdata[27] ; Stuck at GND ; nios_system:NiosII|altera_merlin_slave_translator:push_switches_s1_translator|av_readdata_pre[27] ; +; ; due to stuck port data_in ; ; +; nios_system:NiosII|nios_system_push_switches:push_switches|readdata[26] ; Stuck at GND ; nios_system:NiosII|altera_merlin_slave_translator:push_switches_s1_translator|av_readdata_pre[26] ; +; ; due to stuck port data_in ; ; +; nios_system:NiosII|nios_system_push_switches:push_switches|readdata[25] ; Stuck at GND ; nios_system:NiosII|altera_merlin_slave_translator:push_switches_s1_translator|av_readdata_pre[25] ; +; ; due to stuck port data_in ; ; +; nios_system:NiosII|nios_system_push_switches:push_switches|readdata[24] ; Stuck at GND ; nios_system:NiosII|altera_merlin_slave_translator:push_switches_s1_translator|av_readdata_pre[24] ; +; ; due to stuck port data_in ; ; +; nios_system:NiosII|nios_system_push_switches:push_switches|readdata[23] ; Stuck at GND ; nios_system:NiosII|altera_merlin_slave_translator:push_switches_s1_translator|av_readdata_pre[23] ; +; ; due to stuck port data_in ; ; +; nios_system:NiosII|nios_system_push_switches:push_switches|readdata[22] ; Stuck at GND ; nios_system:NiosII|altera_merlin_slave_translator:push_switches_s1_translator|av_readdata_pre[22] ; +; ; due to stuck port data_in ; ; +; nios_system:NiosII|nios_system_push_switches:push_switches|readdata[21] ; Stuck at GND ; nios_system:NiosII|altera_merlin_slave_translator:push_switches_s1_translator|av_readdata_pre[21] ; +; ; due to stuck port data_in ; ; +; nios_system:NiosII|nios_system_push_switches:push_switches|readdata[20] ; Stuck at GND ; nios_system:NiosII|altera_merlin_slave_translator:push_switches_s1_translator|av_readdata_pre[20] ; +; ; due to stuck port data_in ; ; +; nios_system:NiosII|nios_system_push_switches:push_switches|readdata[19] ; Stuck at GND ; nios_system:NiosII|altera_merlin_slave_translator:push_switches_s1_translator|av_readdata_pre[19] ; +; ; due to stuck port data_in ; ; +; nios_system:NiosII|nios_system_push_switches:push_switches|readdata[18] ; Stuck at GND ; nios_system:NiosII|altera_merlin_slave_translator:push_switches_s1_translator|av_readdata_pre[18] ; +; ; due to stuck port data_in ; ; +; nios_system:NiosII|nios_system_push_switches:push_switches|readdata[17] ; Stuck at GND ; nios_system:NiosII|altera_merlin_slave_translator:push_switches_s1_translator|av_readdata_pre[17] ; +; ; due to stuck port data_in ; ; +; nios_system:NiosII|nios_system_push_switches:push_switches|readdata[16] ; Stuck at GND ; nios_system:NiosII|altera_merlin_slave_translator:push_switches_s1_translator|av_readdata_pre[16] ; +; ; due to stuck port data_in ; ; +; nios_system:NiosII|nios_system_push_switches:push_switches|readdata[15] ; Stuck at GND ; nios_system:NiosII|altera_merlin_slave_translator:push_switches_s1_translator|av_readdata_pre[15] ; +; ; due to stuck port data_in ; ; +; nios_system:NiosII|nios_system_push_switches:push_switches|readdata[14] ; Stuck at GND ; nios_system:NiosII|altera_merlin_slave_translator:push_switches_s1_translator|av_readdata_pre[14] ; +; ; due to stuck port data_in ; ; +; nios_system:NiosII|nios_system_push_switches:push_switches|readdata[13] ; Stuck at GND ; nios_system:NiosII|altera_merlin_slave_translator:push_switches_s1_translator|av_readdata_pre[13] ; +; ; due to stuck port data_in ; ; +; nios_system:NiosII|altera_avalon_sc_fifo:leds_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][96] ; Stuck at GND ; nios_system:NiosII|altera_avalon_sc_fifo:leds_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][96] ; +; ; due to stuck port data_in ; ; +; nios_system:NiosII|altera_avalon_sc_fifo:jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][96] ; Stuck at GND ; nios_system:NiosII|altera_avalon_sc_fifo:jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][96] ; +; ; due to stuck port data_in ; ; +; nios_system:NiosII|altera_avalon_sc_fifo:ledrs_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][96] ; Stuck at GND ; nios_system:NiosII|altera_avalon_sc_fifo:ledrs_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][96] ; +; ; due to stuck port data_in ; ; +; nios_system:NiosII|altera_avalon_sc_fifo:switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][96] ; Stuck at GND ; nios_system:NiosII|altera_avalon_sc_fifo:switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][96] ; +; ; due to stuck port data_in ; ; +; nios_system:NiosII|altera_avalon_sc_fifo:push_switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][96] ; Stuck at GND ; nios_system:NiosII|altera_avalon_sc_fifo:push_switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][96] ; +; ; due to stuck port data_in ; ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex0_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][96] ; Stuck at GND ; nios_system:NiosII|altera_avalon_sc_fifo:hex0_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][96] ; +; ; due to stuck port data_in ; ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex1_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][96] ; Stuck at GND ; nios_system:NiosII|altera_avalon_sc_fifo:hex1_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][96] ; +; ; due to stuck port data_in ; ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex2_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][96] ; Stuck at GND ; nios_system:NiosII|altera_avalon_sc_fifo:hex2_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][96] ; +; ; due to stuck port data_in ; ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex3_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][96] ; Stuck at GND ; nios_system:NiosII|altera_avalon_sc_fifo:hex3_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][96] ; +; ; due to stuck port data_in ; ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex4_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][96] ; Stuck at GND ; nios_system:NiosII|altera_avalon_sc_fifo:hex4_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][96] ; +; ; due to stuck port data_in ; ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex5_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][96] ; Stuck at GND ; nios_system:NiosII|altera_avalon_sc_fifo:hex5_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][96] ; +; ; due to stuck port data_in ; ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex6_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][96] ; Stuck at GND ; nios_system:NiosII|altera_avalon_sc_fifo:hex6_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][96] ; +; ; due to stuck port data_in ; ; +; nios_system:NiosII|altera_avalon_sc_fifo:hex7_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][96] ; Stuck at GND ; nios_system:NiosII|altera_avalon_sc_fifo:hex7_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][96] ; +; ; due to stuck port data_in ; ; +; nios_system:NiosII|altera_avalon_sc_fifo:lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][96] ; Stuck at GND ; nios_system:NiosII|altera_avalon_sc_fifo:lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][96] ; +; ; due to stuck port data_in ; ; +; nios_system:NiosII|altera_avalon_sc_fifo:lcd_on_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][96] ; Stuck at GND ; nios_system:NiosII|altera_avalon_sc_fifo:lcd_on_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][96] ; +; ; due to stuck port data_in ; ; +; nios_system:NiosII|altera_avalon_sc_fifo:lcd_blon_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][96] ; Stuck at GND ; nios_system:NiosII|altera_avalon_sc_fifo:lcd_blon_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][96] ; +; ; due to stuck port data_in ; ; +; nios_system:NiosII|altera_avalon_sc_fifo:nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][96] ; Stuck at GND ; nios_system:NiosII|altera_avalon_sc_fifo:nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][96] ; +; ; due to stuck port data_in ; ; +; nios_system:NiosII|altera_avalon_sc_fifo:onchip_memory_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[1][96] ; Stuck at GND ; nios_system:NiosII|altera_avalon_sc_fifo:onchip_memory_s1_translator_avalon_universal_slave_0_agent_rsp_fifo|mem[0][96] ; +; ; due to stuck port data_in ; ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|DRsize~3 ; Lost Fanouts ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|DRsize.101 ; ++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + + ++------------------------------------------------------+ +; General Register Statistics ; ++----------------------------------------------+-------+ +; Statistic ; Value ; ++----------------------------------------------+-------+ +; Total registers ; 1212 ; +; Number of registers using Synchronous Clear ; 69 ; +; Number of registers using Synchronous Load ; 166 ; +; Number of registers using Asynchronous Clear ; 885 ; +; Number of registers using Asynchronous Load ; 0 ; +; Number of registers using Clock Enable ; 476 ; +; Number of registers using Preset ; 0 ; ++----------------------------------------------+-------+ + + ++-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Inverted Register Statistics ; ++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------+ +; Inverted Register ; Fan out ; ++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------+ +; nios_system:NiosII|altera_reset_controller:rst_controller|r_sync_rst ; 801 ; +; nios_system:NiosII|altera_merlin_master_agent:nios2_processor_data_master_translator_avalon_universal_master_0_agent|hold_waitrequest ; 23 ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|av_waitrequest ; 7 ; +; nios_system:NiosII|altera_reset_controller:rst_controller|r_sync_rst_chain[1] ; 2 ; +; nios_system:NiosII|altera_reset_controller:rst_controller|r_sync_rst_dly ; 228 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|i_read ; 7 ; +; nios_system:NiosII|nios_system_cmd_xbar_mux:cmd_xbar_mux_001|altera_merlin_arbitrator:arb|top_priority_reg[0] ; 2 ; +; nios_system:NiosII|nios_system_cmd_xbar_mux:cmd_xbar_mux|altera_merlin_arbitrator:arb|top_priority_reg[0] ; 2 ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[9] ; 11 ; +; nios_system:NiosII|altera_reset_controller:rst_controller|altera_reset_synchronizer_int_chain[2] ; 1 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|hbreak_enabled ; 9 ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|t_dav ; 3 ; +; nios_system:NiosII|altera_reset_controller:rst_controller|altera_reset_synchronizer_int_chain[1] ; 1 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_avalon_reg:the_nios_system_nios2_processor_nios2_avalon_reg|oci_ienable[5] ; 2 ; +; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|rst2 ; 3 ; +; nios_system:NiosII|altera_reset_controller:rst_controller|altera_reset_synchronizer_int_chain[0] ; 1 ; +; nios_system:NiosII|altera_reset_controller:rst_controller|altera_reset_synchronizer:alt_rst_sync_uq1|altera_reset_synchronizer_int_chain_out ; 1 ; +; nios_system:NiosII|altera_reset_controller:rst_controller|altera_reset_synchronizer:alt_rst_sync_uq1|altera_reset_synchronizer_int_chain[0] ; 1 ; +; nios_system:NiosII|altera_reset_controller:rst_controller|altera_reset_synchronizer:alt_rst_sync_uq1|altera_reset_synchronizer_int_chain[1] ; 1 ; +; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|tdo ; 1 ; +; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|jtag_ir_reg[2] ; 2 ; +; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|jtag_ir_reg[1] ; 3 ; +; Total number of inverted registers = 22 ; ; ++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------+ + + ++-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Multiplexer Restructuring Statistics (Restructuring Performed) ; ++--------------------+-----------+---------------+----------------------+------------------------+------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Multiplexer Inputs ; Bus Width ; Baseline Area ; Area if Restructured ; Saving if Restructured ; Registered ; Example Multiplexer Output ; ++--------------------+-----------+---------------+----------------------+------------------------+------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; 3:1 ; 2 bits ; 4 LEs ; 2 LEs ; 2 LEs ; Yes ; |lights|nios_system:NiosII|altera_merlin_slave_translator:leds_s1_translator|wait_latency_counter[1] ; +; 3:1 ; 2 bits ; 4 LEs ; 2 LEs ; 2 LEs ; Yes ; |lights|nios_system:NiosII|altera_merlin_slave_translator:ledrs_s1_translator|wait_latency_counter[1] ; +; 3:1 ; 2 bits ; 4 LEs ; 2 LEs ; 2 LEs ; Yes ; |lights|nios_system:NiosII|altera_merlin_slave_translator:hex0_s1_translator|wait_latency_counter[1] ; +; 3:1 ; 2 bits ; 4 LEs ; 2 LEs ; 2 LEs ; Yes ; |lights|nios_system:NiosII|altera_merlin_slave_translator:hex1_s1_translator|wait_latency_counter[1] ; +; 3:1 ; 2 bits ; 4 LEs ; 2 LEs ; 2 LEs ; Yes ; |lights|nios_system:NiosII|altera_merlin_slave_translator:hex2_s1_translator|wait_latency_counter[1] ; +; 3:1 ; 2 bits ; 4 LEs ; 2 LEs ; 2 LEs ; Yes ; |lights|nios_system:NiosII|altera_merlin_slave_translator:hex3_s1_translator|wait_latency_counter[1] ; +; 3:1 ; 2 bits ; 4 LEs ; 2 LEs ; 2 LEs ; Yes ; |lights|nios_system:NiosII|altera_merlin_slave_translator:hex4_s1_translator|wait_latency_counter[0] ; +; 3:1 ; 2 bits ; 4 LEs ; 2 LEs ; 2 LEs ; Yes ; |lights|nios_system:NiosII|altera_merlin_slave_translator:hex5_s1_translator|wait_latency_counter[0] ; +; 3:1 ; 2 bits ; 4 LEs ; 2 LEs ; 2 LEs ; Yes ; |lights|nios_system:NiosII|altera_merlin_slave_translator:hex6_s1_translator|wait_latency_counter[1] ; +; 3:1 ; 2 bits ; 4 LEs ; 2 LEs ; 2 LEs ; Yes ; |lights|nios_system:NiosII|altera_merlin_slave_translator:hex7_s1_translator|wait_latency_counter[1] ; +; 3:1 ; 6 bits ; 12 LEs ; 6 LEs ; 6 LEs ; Yes ; |lights|nios_system:NiosII|altera_merlin_slave_translator:lcd_16207_0_control_slave_translator|wait_latency_counter[0] ; +; 3:1 ; 2 bits ; 4 LEs ; 2 LEs ; 2 LEs ; Yes ; |lights|nios_system:NiosII|altera_merlin_slave_translator:lcd_on_s1_translator|wait_latency_counter[0] ; +; 3:1 ; 2 bits ; 4 LEs ; 2 LEs ; 2 LEs ; Yes ; |lights|nios_system:NiosII|altera_merlin_slave_translator:lcd_blon_s1_translator|wait_latency_counter[0] ; +; 3:1 ; 16 bits ; 32 LEs ; 32 LEs ; 0 LEs ; Yes ; |lights|nios_system:NiosII|nios_system_nios2_processor:nios2_processor|E_src2[12] ; +; 3:1 ; 15 bits ; 30 LEs ; 15 LEs ; 15 LEs ; Yes ; |lights|nios_system:NiosII|nios_system_nios2_processor:nios2_processor|E_src1[27] ; +; 3:1 ; 17 bits ; 34 LEs ; 34 LEs ; 0 LEs ; Yes ; |lights|nios_system:NiosII|nios_system_nios2_processor:nios2_processor|E_src1[12] ; +; 3:1 ; 32 bits ; 64 LEs ; 64 LEs ; 0 LEs ; Yes ; |lights|nios_system:NiosII|nios_system_nios2_processor:nios2_processor|E_shift_rot_result[12] ; +; 3:1 ; 2 bits ; 4 LEs ; 2 LEs ; 2 LEs ; Yes ; |lights|nios_system:NiosII|altera_merlin_slave_translator:switches_s1_translator|wait_latency_counter[1] ; +; 3:1 ; 2 bits ; 4 LEs ; 2 LEs ; 2 LEs ; Yes ; |lights|nios_system:NiosII|altera_merlin_slave_translator:push_switches_s1_translator|wait_latency_counter[1] ; +; 3:1 ; 10 bits ; 20 LEs ; 10 LEs ; 10 LEs ; Yes ; |lights|nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[4] ; +; 3:1 ; 32 bits ; 64 LEs ; 64 LEs ; 0 LEs ; Yes ; |lights|nios_system:NiosII|nios_system_nios2_processor:nios2_processor|D_iw[15] ; +; 3:1 ; 8 bits ; 16 LEs ; 8 LEs ; 8 LEs ; Yes ; |lights|nios_system:NiosII|nios_system_nios2_processor:nios2_processor|av_ld_byte0_data[4] ; +; 3:1 ; 16 bits ; 32 LEs ; 32 LEs ; 0 LEs ; Yes ; |lights|nios_system:NiosII|nios_system_nios2_processor:nios2_processor|av_ld_byte2_data[2] ; +; 3:1 ; 4 bits ; 8 LEs ; 8 LEs ; 0 LEs ; Yes ; |lights|nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|readdata[0] ; +; 3:1 ; 2 bits ; 4 LEs ; 4 LEs ; 0 LEs ; Yes ; |lights|nios_system:NiosII|nios_system_nios2_processor:nios2_processor|d_byteenable[1] ; +; 4:1 ; 18 bits ; 36 LEs ; 36 LEs ; 0 LEs ; Yes ; |lights|nios_system:NiosII|nios_system_nios2_processor:nios2_processor|W_alu_result[10] ; +; 4:1 ; 15 bits ; 30 LEs ; 30 LEs ; 0 LEs ; Yes ; |lights|nios_system:NiosII|nios_system_nios2_processor:nios2_processor|E_src2[20] ; +; 4:1 ; 2 bits ; 4 LEs ; 4 LEs ; 0 LEs ; Yes ; |lights|nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[8] ; +; 4:1 ; 23 bits ; 46 LEs ; 46 LEs ; 0 LEs ; Yes ; |lights|nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_ocimem:the_nios_system_nios2_processor_nios2_ocimem|MonDReg[15] ; +; 4:1 ; 9 bits ; 18 LEs ; 18 LEs ; 0 LEs ; Yes ; |lights|nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_ocimem:the_nios_system_nios2_processor_nios2_ocimem|MonDReg[0] ; +; 3:1 ; 8 bits ; 16 LEs ; 16 LEs ; 0 LEs ; Yes ; |lights|nios_system:NiosII|nios_system_nios2_processor:nios2_processor|d_writedata[31] ; +; 6:1 ; 2 bits ; 8 LEs ; 2 LEs ; 6 LEs ; Yes ; |lights|nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[36] ; +; 6:1 ; 2 bits ; 8 LEs ; 4 LEs ; 4 LEs ; Yes ; |lights|nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[34] ; +; 6:1 ; 13 bits ; 52 LEs ; 26 LEs ; 26 LEs ; Yes ; |lights|nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[2] ; +; 6:1 ; 16 bits ; 64 LEs ; 32 LEs ; 32 LEs ; Yes ; |lights|nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[18] ; +; 5:1 ; 13 bits ; 39 LEs ; 39 LEs ; 0 LEs ; Yes ; |lights|nios_system:NiosII|nios_system_nios2_processor:nios2_processor|W_alu_result[28] ; +; 4:1 ; 17 bits ; 34 LEs ; 34 LEs ; 0 LEs ; Yes ; |lights|nios_system:NiosII|nios_system_nios2_processor:nios2_processor|F_pc[10] ; +; 4:1 ; 9 bits ; 18 LEs ; 9 LEs ; 9 LEs ; Yes ; |lights|nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_ocimem:the_nios_system_nios2_processor_nios2_ocimem|MonAReg[2] ; +; 5:1 ; 32 bits ; 96 LEs ; 32 LEs ; 64 LEs ; Yes ; |lights|nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_oci_break:the_nios_system_nios2_processor_nios2_oci_break|break_readreg[15] ; +; 5:1 ; 2 bits ; 6 LEs ; 6 LEs ; 0 LEs ; Yes ; |lights|nios_system:NiosII|nios_system_nios2_processor:nios2_processor|d_byteenable[3] ; +; 5:1 ; 3 bits ; 9 LEs ; 6 LEs ; 3 LEs ; Yes ; |lights|nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[7] ; +; 5:1 ; 4 bits ; 12 LEs ; 8 LEs ; 4 LEs ; Yes ; |lights|nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[5] ; +; 4:1 ; 32 bits ; 64 LEs ; 64 LEs ; 0 LEs ; No ; |lights|nios_system:NiosII|nios_system_nios2_processor:nios2_processor|E_logic_result[18] ; +; 4:1 ; 30 bits ; 60 LEs ; 60 LEs ; 0 LEs ; No ; |lights|nios_system:NiosII|nios_system_nios2_processor:nios2_processor|W_rf_wr_data[19] ; +; 4:1 ; 5 bits ; 10 LEs ; 10 LEs ; 0 LEs ; No ; |lights|nios_system:NiosII|nios_system_nios2_processor:nios2_processor|D_dst_regnum[3] ; +; 3:1 ; 4 bits ; 8 LEs ; 4 LEs ; 4 LEs ; Yes ; |lights|sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|hub_minor_ver_reg[1] ; +; 4:1 ; 5 bits ; 10 LEs ; 5 LEs ; 5 LEs ; Yes ; |lights|sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|mixer_addr_reg[0] ; +; 6:1 ; 5 bits ; 20 LEs ; 5 LEs ; 15 LEs ; Yes ; |lights|sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[2][0] ; +; 6:1 ; 5 bits ; 20 LEs ; 5 LEs ; 15 LEs ; Yes ; |lights|sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[1][0] ; +; 5:1 ; 5 bits ; 15 LEs ; 5 LEs ; 10 LEs ; Yes ; |lights|sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_rom_sr:hub_info_reg|word_counter[4] ; +; 6:1 ; 5 bits ; 20 LEs ; 5 LEs ; 15 LEs ; Yes ; |lights|sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|shadow_irf_reg[2][1] ; +; 6:1 ; 5 bits ; 20 LEs ; 5 LEs ; 15 LEs ; Yes ; |lights|sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|shadow_irf_reg[1][3] ; +; 8:1 ; 5 bits ; 25 LEs ; 10 LEs ; 15 LEs ; Yes ; |lights|sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[3] ; +; 34:1 ; 4 bits ; 88 LEs ; 60 LEs ; 28 LEs ; Yes ; |lights|sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|design_hash_reg[1] ; +; 28:1 ; 4 bits ; 72 LEs ; 48 LEs ; 24 LEs ; Yes ; |lights|sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_rom_sr:hub_info_reg|WORD_SR[0] ; ++--------------------+-----------+---------------+----------------------+------------------------+------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + + ++-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Source assignments for nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_register_bank_a_module:nios_system_nios2_processor_register_bank_a|altsyncram:the_altsyncram|altsyncram_0rh1:auto_generated ; ++---------------------------------+--------------------+------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Assignment ; Value ; From ; To ; ++---------------------------------+--------------------+------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; OPTIMIZE_POWER_DURING_SYNTHESIS ; NORMAL_COMPILATION ; - ; - ; ++---------------------------------+--------------------+------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + + ++-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Source assignments for nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_register_bank_b_module:nios_system_nios2_processor_register_bank_b|altsyncram:the_altsyncram|altsyncram_1rh1:auto_generated ; ++---------------------------------+--------------------+------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Assignment ; Value ; From ; To ; ++---------------------------------+--------------------+------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; OPTIMIZE_POWER_DURING_SYNTHESIS ; NORMAL_COMPILATION ; - ; - ; ++---------------------------------+--------------------+------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + + ++-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Source assignments for nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_oci_debug:the_nios_system_nios2_processor_nios2_oci_debug|altera_std_synchronizer:the_altera_std_synchronizer ; ++-----------------------------+------------------------+------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Assignment ; Value ; From ; To ; ++-----------------------------+------------------------+------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; SYNCHRONIZER_IDENTIFICATION ; FORCED_IF_ASYNCHRONOUS ; - ; dreg[0] ; +; DONT_MERGE_REGISTER ; ON ; - ; dreg[0] ; +; PRESERVE_REGISTER ; ON ; - ; dreg[0] ; +; SYNCHRONIZER_IDENTIFICATION ; FORCED_IF_ASYNCHRONOUS ; - ; din_s1 ; +; DONT_MERGE_REGISTER ; ON ; - ; din_s1 ; +; PRESERVE_REGISTER ; ON ; - ; din_s1 ; ++-----------------------------+------------------------+------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + + ++-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Source assignments for nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_ocimem:the_nios_system_nios2_processor_nios2_ocimem|nios_system_nios2_processor_ociram_sp_ram_module:nios_system_nios2_processor_ociram_sp_ram|altsyncram:the_altsyncram|altsyncram_4891:auto_generated ; ++---------------------------------+--------------------+------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Assignment ; Value ; From ; To ; ++---------------------------------+--------------------+------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; OPTIMIZE_POWER_DURING_SYNTHESIS ; NORMAL_COMPILATION ; - ; - ; ++---------------------------------+--------------------+------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + + ++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Source assignments for nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|altera_std_synchronizer:the_altera_std_synchronizer1 ; ++-----------------------------+------------------------+------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Assignment ; Value ; From ; To ; ++-----------------------------+------------------------+------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; SYNCHRONIZER_IDENTIFICATION ; FORCED_IF_ASYNCHRONOUS ; - ; dreg[0] ; +; DONT_MERGE_REGISTER ; ON ; - ; dreg[0] ; +; PRESERVE_REGISTER ; ON ; - ; dreg[0] ; +; SYNCHRONIZER_IDENTIFICATION ; FORCED_IF_ASYNCHRONOUS ; - ; din_s1 ; +; DONT_MERGE_REGISTER ; ON ; - ; din_s1 ; +; PRESERVE_REGISTER ; ON ; - ; din_s1 ; ++-----------------------------+------------------------+------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + + ++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Source assignments for nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|altera_std_synchronizer:the_altera_std_synchronizer2 ; ++-----------------------------+------------------------+------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Assignment ; Value ; From ; To ; ++-----------------------------+------------------------+------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; SYNCHRONIZER_IDENTIFICATION ; FORCED_IF_ASYNCHRONOUS ; - ; dreg[0] ; +; DONT_MERGE_REGISTER ; ON ; - ; dreg[0] ; +; PRESERVE_REGISTER ; ON ; - ; dreg[0] ; +; SYNCHRONIZER_IDENTIFICATION ; FORCED_IF_ASYNCHRONOUS ; - ; din_s1 ; +; DONT_MERGE_REGISTER ; ON ; - ; din_s1 ; +; PRESERVE_REGISTER ; ON ; - ; din_s1 ; ++-----------------------------+------------------------+------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + + ++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Source assignments for nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk|altera_std_synchronizer:the_altera_std_synchronizer3 ; ++-----------------------------+------------------------+------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Assignment ; Value ; From ; To ; ++-----------------------------+------------------------+------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; SYNCHRONIZER_IDENTIFICATION ; FORCED_IF_ASYNCHRONOUS ; - ; dreg[0] ; +; DONT_MERGE_REGISTER ; ON ; - ; dreg[0] ; +; PRESERVE_REGISTER ; ON ; - ; dreg[0] ; +; SYNCHRONIZER_IDENTIFICATION ; FORCED_IF_ASYNCHRONOUS ; - ; din_s1 ; +; DONT_MERGE_REGISTER ; ON ; - ; din_s1 ; +; PRESERVE_REGISTER ; ON ; - ; din_s1 ; ++-----------------------------+------------------------+------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + + ++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Source assignments for nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk|altera_std_synchronizer:the_altera_std_synchronizer4 ; ++-----------------------------+------------------------+------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Assignment ; Value ; From ; To ; ++-----------------------------+------------------------+------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; SYNCHRONIZER_IDENTIFICATION ; FORCED_IF_ASYNCHRONOUS ; - ; dreg[0] ; +; DONT_MERGE_REGISTER ; ON ; - ; dreg[0] ; +; PRESERVE_REGISTER ; ON ; - ; dreg[0] ; +; SYNCHRONIZER_IDENTIFICATION ; FORCED_IF_ASYNCHRONOUS ; - ; din_s1 ; +; DONT_MERGE_REGISTER ; ON ; - ; din_s1 ; +; PRESERVE_REGISTER ; ON ; - ; din_s1 ; ++-----------------------------+------------------------+------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + + ++--------------------------------------------------------------------------------------------------------------------------------------------+ +; Source assignments for nios_system:NiosII|nios_system_onchip_memory:onchip_memory|altsyncram:the_altsyncram|altsyncram_4ed1:auto_generated ; ++---------------------------------+--------------------+------+------------------------------------------------------------------------------+ +; Assignment ; Value ; From ; To ; ++---------------------------------+--------------------+------+------------------------------------------------------------------------------+ +; OPTIMIZE_POWER_DURING_SYNTHESIS ; NORMAL_COMPILATION ; - ; - ; ++---------------------------------+--------------------+------+------------------------------------------------------------------------------+ + + ++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Source assignments for nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_w:the_nios_system_jtag_uart_scfifo_w|scfifo:wfifo|scfifo_jr21:auto_generated|a_dpfifo_q131:dpfifo|dpram_nl21:FIFOram|altsyncram_r1m1:altsyncram1 ; ++---------------------------------+--------------------+------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Assignment ; Value ; From ; To ; ++---------------------------------+--------------------+------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; OPTIMIZE_POWER_DURING_SYNTHESIS ; NORMAL_COMPILATION ; - ; - ; ++---------------------------------+--------------------+------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + + ++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Source assignments for nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_r:the_nios_system_jtag_uart_scfifo_r|scfifo:rfifo|scfifo_jr21:auto_generated|a_dpfifo_q131:dpfifo|dpram_nl21:FIFOram|altsyncram_r1m1:altsyncram1 ; ++---------------------------------+--------------------+------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Assignment ; Value ; From ; To ; ++---------------------------------+--------------------+------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; OPTIMIZE_POWER_DURING_SYNTHESIS ; NORMAL_COMPILATION ; - ; - ; ++---------------------------------+--------------------+------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + + ++----------------------------------------------------------------------------------+ +; Source assignments for nios_system:NiosII|altera_reset_controller:rst_controller ; ++-------------------+-------+------+-----------------------------------------------+ +; Assignment ; Value ; From ; To ; ++-------------------+-------+------+-----------------------------------------------+ +; PRESERVE_REGISTER ; on ; - ; altera_reset_synchronizer_int_chain[2] ; +; PRESERVE_REGISTER ; on ; - ; altera_reset_synchronizer_int_chain[1] ; +; PRESERVE_REGISTER ; on ; - ; altera_reset_synchronizer_int_chain[0] ; ++-------------------+-------+------+-----------------------------------------------+ + + ++-----------------------------------------------------------------------------------------------------------------------------+ +; Source assignments for nios_system:NiosII|altera_reset_controller:rst_controller|altera_reset_synchronizer:alt_rst_sync_uq1 ; ++-------------------+-------+------+------------------------------------------------------------------------------------------+ +; Assignment ; Value ; From ; To ; ++-------------------+-------+------+------------------------------------------------------------------------------------------+ +; PRESERVE_REGISTER ; on ; - ; altera_reset_synchronizer_int_chain[1] ; +; PRESERVE_REGISTER ; on ; - ; altera_reset_synchronizer_int_chain[0] ; ++-------------------+-------+------+------------------------------------------------------------------------------------------+ + + ++-------------------------------------------------------------------------------------+ +; Source assignments for nios_system:NiosII|nios_system_cmd_xbar_demux:cmd_xbar_demux ; ++-----------------+-------+------+----------------------------------------------------+ +; Assignment ; Value ; From ; To ; ++-----------------+-------+------+----------------------------------------------------+ +; MESSAGE_DISABLE ; 15610 ; - ; clk ; +; MESSAGE_DISABLE ; 15610 ; - ; reset ; ++-----------------+-------+------+----------------------------------------------------+ + + ++---------------------------------------------------------------------------------------------+ +; Source assignments for nios_system:NiosII|nios_system_cmd_xbar_demux_001:cmd_xbar_demux_001 ; ++-----------------+-------+------+------------------------------------------------------------+ +; Assignment ; Value ; From ; To ; ++-----------------+-------+------+------------------------------------------------------------+ +; MESSAGE_DISABLE ; 15610 ; - ; clk ; +; MESSAGE_DISABLE ; 15610 ; - ; reset ; ++-----------------+-------+------+------------------------------------------------------------+ + + ++-------------------------------------------------------------------------------------+ +; Source assignments for nios_system:NiosII|nios_system_cmd_xbar_demux:rsp_xbar_demux ; ++-----------------+-------+------+----------------------------------------------------+ +; Assignment ; Value ; From ; To ; ++-----------------+-------+------+----------------------------------------------------+ +; MESSAGE_DISABLE ; 15610 ; - ; clk ; +; MESSAGE_DISABLE ; 15610 ; - ; reset ; ++-----------------+-------+------+----------------------------------------------------+ + + ++-----------------------------------------------------------------------------------------+ +; Source assignments for nios_system:NiosII|nios_system_cmd_xbar_demux:rsp_xbar_demux_001 ; ++-----------------+-------+------+--------------------------------------------------------+ +; Assignment ; Value ; From ; To ; ++-----------------+-------+------+--------------------------------------------------------+ +; MESSAGE_DISABLE ; 15610 ; - ; clk ; +; MESSAGE_DISABLE ; 15610 ; - ; reset ; ++-----------------+-------+------+--------------------------------------------------------+ + + ++---------------------------------------------------------------------------------------------+ +; Source assignments for nios_system:NiosII|nios_system_rsp_xbar_demux_002:rsp_xbar_demux_002 ; ++-----------------+-------+------+------------------------------------------------------------+ +; Assignment ; Value ; From ; To ; ++-----------------+-------+------+------------------------------------------------------------+ +; MESSAGE_DISABLE ; 15610 ; - ; clk ; +; MESSAGE_DISABLE ; 15610 ; - ; reset ; ++-----------------+-------+------+------------------------------------------------------------+ + + ++---------------------------------------------------------------------------------------------+ +; Source assignments for nios_system:NiosII|nios_system_rsp_xbar_demux_002:rsp_xbar_demux_003 ; ++-----------------+-------+------+------------------------------------------------------------+ +; Assignment ; Value ; From ; To ; ++-----------------+-------+------+------------------------------------------------------------+ +; MESSAGE_DISABLE ; 15610 ; - ; clk ; +; MESSAGE_DISABLE ; 15610 ; - ; reset ; ++-----------------+-------+------+------------------------------------------------------------+ + + ++---------------------------------------------------------------------------------------------+ +; Source assignments for nios_system:NiosII|nios_system_rsp_xbar_demux_002:rsp_xbar_demux_004 ; ++-----------------+-------+------+------------------------------------------------------------+ +; Assignment ; Value ; From ; To ; ++-----------------+-------+------+------------------------------------------------------------+ +; MESSAGE_DISABLE ; 15610 ; - ; clk ; +; MESSAGE_DISABLE ; 15610 ; - ; reset ; ++-----------------+-------+------+------------------------------------------------------------+ + + ++---------------------------------------------------------------------------------------------+ +; Source assignments for nios_system:NiosII|nios_system_rsp_xbar_demux_002:rsp_xbar_demux_005 ; ++-----------------+-------+------+------------------------------------------------------------+ +; Assignment ; Value ; From ; To ; ++-----------------+-------+------+------------------------------------------------------------+ +; MESSAGE_DISABLE ; 15610 ; - ; clk ; +; MESSAGE_DISABLE ; 15610 ; - ; reset ; ++-----------------+-------+------+------------------------------------------------------------+ + + ++---------------------------------------------------------------------------------------------+ +; Source assignments for nios_system:NiosII|nios_system_rsp_xbar_demux_002:rsp_xbar_demux_006 ; ++-----------------+-------+------+------------------------------------------------------------+ +; Assignment ; Value ; From ; To ; ++-----------------+-------+------+------------------------------------------------------------+ +; MESSAGE_DISABLE ; 15610 ; - ; clk ; +; MESSAGE_DISABLE ; 15610 ; - ; reset ; ++-----------------+-------+------+------------------------------------------------------------+ + + ++---------------------------------------------------------------------------------------------+ +; Source assignments for nios_system:NiosII|nios_system_rsp_xbar_demux_002:rsp_xbar_demux_007 ; ++-----------------+-------+------+------------------------------------------------------------+ +; Assignment ; Value ; From ; To ; ++-----------------+-------+------+------------------------------------------------------------+ +; MESSAGE_DISABLE ; 15610 ; - ; clk ; +; MESSAGE_DISABLE ; 15610 ; - ; reset ; ++-----------------+-------+------+------------------------------------------------------------+ + + ++---------------------------------------------------------------------------------------------+ +; Source assignments for nios_system:NiosII|nios_system_rsp_xbar_demux_002:rsp_xbar_demux_008 ; ++-----------------+-------+------+------------------------------------------------------------+ +; Assignment ; Value ; From ; To ; ++-----------------+-------+------+------------------------------------------------------------+ +; MESSAGE_DISABLE ; 15610 ; - ; clk ; +; MESSAGE_DISABLE ; 15610 ; - ; reset ; ++-----------------+-------+------+------------------------------------------------------------+ + + ++---------------------------------------------------------------------------------------------+ +; Source assignments for nios_system:NiosII|nios_system_rsp_xbar_demux_002:rsp_xbar_demux_009 ; ++-----------------+-------+------+------------------------------------------------------------+ +; Assignment ; Value ; From ; To ; ++-----------------+-------+------+------------------------------------------------------------+ +; MESSAGE_DISABLE ; 15610 ; - ; clk ; +; MESSAGE_DISABLE ; 15610 ; - ; reset ; ++-----------------+-------+------+------------------------------------------------------------+ + + ++---------------------------------------------------------------------------------------------+ +; Source assignments for nios_system:NiosII|nios_system_rsp_xbar_demux_002:rsp_xbar_demux_010 ; ++-----------------+-------+------+------------------------------------------------------------+ +; Assignment ; Value ; From ; To ; ++-----------------+-------+------+------------------------------------------------------------+ +; MESSAGE_DISABLE ; 15610 ; - ; clk ; +; MESSAGE_DISABLE ; 15610 ; - ; reset ; ++-----------------+-------+------+------------------------------------------------------------+ + + ++---------------------------------------------------------------------------------------------+ +; Source assignments for nios_system:NiosII|nios_system_rsp_xbar_demux_002:rsp_xbar_demux_011 ; ++-----------------+-------+------+------------------------------------------------------------+ +; Assignment ; Value ; From ; To ; ++-----------------+-------+------+------------------------------------------------------------+ +; MESSAGE_DISABLE ; 15610 ; - ; clk ; +; MESSAGE_DISABLE ; 15610 ; - ; reset ; ++-----------------+-------+------+------------------------------------------------------------+ + + ++---------------------------------------------------------------------------------------------+ +; Source assignments for nios_system:NiosII|nios_system_rsp_xbar_demux_002:rsp_xbar_demux_012 ; ++-----------------+-------+------+------------------------------------------------------------+ +; Assignment ; Value ; From ; To ; ++-----------------+-------+------+------------------------------------------------------------+ +; MESSAGE_DISABLE ; 15610 ; - ; clk ; +; MESSAGE_DISABLE ; 15610 ; - ; reset ; ++-----------------+-------+------+------------------------------------------------------------+ + + ++---------------------------------------------------------------------------------------------+ +; Source assignments for nios_system:NiosII|nios_system_rsp_xbar_demux_002:rsp_xbar_demux_013 ; ++-----------------+-------+------+------------------------------------------------------------+ +; Assignment ; Value ; From ; To ; ++-----------------+-------+------+------------------------------------------------------------+ +; MESSAGE_DISABLE ; 15610 ; - ; clk ; +; MESSAGE_DISABLE ; 15610 ; - ; reset ; ++-----------------+-------+------+------------------------------------------------------------+ + + ++---------------------------------------------------------------------------------------------+ +; Source assignments for nios_system:NiosII|nios_system_rsp_xbar_demux_002:rsp_xbar_demux_014 ; ++-----------------+-------+------+------------------------------------------------------------+ +; Assignment ; Value ; From ; To ; ++-----------------+-------+------+------------------------------------------------------------+ +; MESSAGE_DISABLE ; 15610 ; - ; clk ; +; MESSAGE_DISABLE ; 15610 ; - ; reset ; ++-----------------+-------+------+------------------------------------------------------------+ + + ++---------------------------------------------------------------------------------------------+ +; Source assignments for nios_system:NiosII|nios_system_rsp_xbar_demux_002:rsp_xbar_demux_015 ; ++-----------------+-------+------+------------------------------------------------------------+ +; Assignment ; Value ; From ; To ; ++-----------------+-------+------+------------------------------------------------------------+ +; MESSAGE_DISABLE ; 15610 ; - ; clk ; +; MESSAGE_DISABLE ; 15610 ; - ; reset ; ++-----------------+-------+------+------------------------------------------------------------+ + + ++---------------------------------------------------------------------------------------------+ +; Source assignments for nios_system:NiosII|nios_system_rsp_xbar_demux_002:rsp_xbar_demux_016 ; ++-----------------+-------+------+------------------------------------------------------------+ +; Assignment ; Value ; From ; To ; ++-----------------+-------+------+------------------------------------------------------------+ +; MESSAGE_DISABLE ; 15610 ; - ; clk ; +; MESSAGE_DISABLE ; 15610 ; - ; reset ; ++-----------------+-------+------+------------------------------------------------------------+ + + ++---------------------------------------------------------------------------------------------+ +; Source assignments for nios_system:NiosII|nios_system_rsp_xbar_demux_002:rsp_xbar_demux_017 ; ++-----------------+-------+------+------------------------------------------------------------+ +; Assignment ; Value ; From ; To ; ++-----------------+-------+------+------------------------------------------------------------+ +; MESSAGE_DISABLE ; 15610 ; - ; clk ; +; MESSAGE_DISABLE ; 15610 ; - ; reset ; ++-----------------+-------+------+------------------------------------------------------------+ + + ++------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Settings for User Entity Instance: nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_register_bank_a_module:nios_system_nios2_processor_register_bank_a ; ++----------------+------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Name ; Value ; Type ; ++----------------+------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------+ +; lpm_file ; nios_system_nios2_processor_rf_ram_a.mif ; String ; ++----------------+------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------+ +Note: In order to hide this table in the UI and the text report file, please set the "Show Parameter Settings in Synthesis Report" option in "Analysis and Synthesis Settings -> More Settings" to "Off". + + ++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Settings for User Entity Instance: nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_register_bank_a_module:nios_system_nios2_processor_register_bank_a|altsyncram:the_altsyncram ; ++------------------------------------+------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Name ; Value ; Type ; ++------------------------------------+------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+ +; BYTE_SIZE_BLOCK ; 8 ; Untyped ; +; AUTO_CARRY_CHAINS ; ON ; AUTO_CARRY ; +; IGNORE_CARRY_BUFFERS ; OFF ; IGNORE_CARRY ; +; AUTO_CASCADE_CHAINS ; ON ; AUTO_CASCADE ; +; IGNORE_CASCADE_BUFFERS ; OFF ; IGNORE_CASCADE ; +; WIDTH_BYTEENA ; 1 ; Untyped ; +; OPERATION_MODE ; DUAL_PORT ; Untyped ; +; WIDTH_A ; 32 ; Signed Integer ; +; WIDTHAD_A ; 5 ; Signed Integer ; +; NUMWORDS_A ; 32 ; Signed Integer ; +; OUTDATA_REG_A ; UNREGISTERED ; Untyped ; +; ADDRESS_ACLR_A ; NONE ; Untyped ; +; OUTDATA_ACLR_A ; NONE ; Untyped ; +; WRCONTROL_ACLR_A ; NONE ; Untyped ; +; INDATA_ACLR_A ; NONE ; Untyped ; +; BYTEENA_ACLR_A ; NONE ; Untyped ; +; WIDTH_B ; 32 ; Signed Integer ; +; WIDTHAD_B ; 5 ; Signed Integer ; +; NUMWORDS_B ; 32 ; Signed Integer ; +; INDATA_REG_B ; CLOCK1 ; Untyped ; +; WRCONTROL_WRADDRESS_REG_B ; CLOCK1 ; Untyped ; +; RDCONTROL_REG_B ; CLOCK0 ; Untyped ; +; ADDRESS_REG_B ; CLOCK0 ; Untyped ; +; OUTDATA_REG_B ; UNREGISTERED ; Untyped ; +; BYTEENA_REG_B ; CLOCK1 ; Untyped ; +; INDATA_ACLR_B ; NONE ; Untyped ; +; WRCONTROL_ACLR_B ; NONE ; Untyped ; +; ADDRESS_ACLR_B ; NONE ; Untyped ; +; OUTDATA_ACLR_B ; NONE ; Untyped ; +; RDCONTROL_ACLR_B ; NONE ; Untyped ; +; BYTEENA_ACLR_B ; NONE ; Untyped ; +; WIDTH_BYTEENA_A ; 1 ; Untyped ; +; WIDTH_BYTEENA_B ; 1 ; Untyped ; +; RAM_BLOCK_TYPE ; AUTO ; Untyped ; +; BYTE_SIZE ; 8 ; Untyped ; +; READ_DURING_WRITE_MODE_MIXED_PORTS ; DONT_CARE ; Untyped ; +; READ_DURING_WRITE_MODE_PORT_A ; NEW_DATA_NO_NBE_READ ; Untyped ; +; READ_DURING_WRITE_MODE_PORT_B ; NEW_DATA_NO_NBE_READ ; Untyped ; +; INIT_FILE ; nios_system_nios2_processor_rf_ram_a.mif ; Untyped ; +; INIT_FILE_LAYOUT ; PORT_A ; Untyped ; +; MAXIMUM_DEPTH ; 0 ; Signed Integer ; +; CLOCK_ENABLE_INPUT_A ; NORMAL ; Untyped ; +; CLOCK_ENABLE_INPUT_B ; NORMAL ; Untyped ; +; CLOCK_ENABLE_OUTPUT_A ; NORMAL ; Untyped ; +; CLOCK_ENABLE_OUTPUT_B ; NORMAL ; Untyped ; +; CLOCK_ENABLE_CORE_A ; USE_INPUT_CLKEN ; Untyped ; +; CLOCK_ENABLE_CORE_B ; USE_INPUT_CLKEN ; Untyped ; +; ENABLE_ECC ; FALSE ; Untyped ; +; ECC_PIPELINE_STAGE_ENABLED ; FALSE ; Untyped ; +; WIDTH_ECCSTATUS ; 3 ; Untyped ; +; DEVICE_FAMILY ; Cyclone IV E ; Untyped ; +; CBXI_PARAMETER ; altsyncram_0rh1 ; Untyped ; ++------------------------------------+------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+ +Note: In order to hide this table in the UI and the text report file, please set the "Show Parameter Settings in Synthesis Report" option in "Analysis and Synthesis Settings -> More Settings" to "Off". + + ++------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Settings for User Entity Instance: nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_register_bank_b_module:nios_system_nios2_processor_register_bank_b ; ++----------------+------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Name ; Value ; Type ; ++----------------+------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------+ +; lpm_file ; nios_system_nios2_processor_rf_ram_b.mif ; String ; ++----------------+------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------+ +Note: In order to hide this table in the UI and the text report file, please set the "Show Parameter Settings in Synthesis Report" option in "Analysis and Synthesis Settings -> More Settings" to "Off". + + ++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Settings for User Entity Instance: nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_register_bank_b_module:nios_system_nios2_processor_register_bank_b|altsyncram:the_altsyncram ; ++------------------------------------+------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Name ; Value ; Type ; ++------------------------------------+------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+ +; BYTE_SIZE_BLOCK ; 8 ; Untyped ; +; AUTO_CARRY_CHAINS ; ON ; AUTO_CARRY ; +; IGNORE_CARRY_BUFFERS ; OFF ; IGNORE_CARRY ; +; AUTO_CASCADE_CHAINS ; ON ; AUTO_CASCADE ; +; IGNORE_CASCADE_BUFFERS ; OFF ; IGNORE_CASCADE ; +; WIDTH_BYTEENA ; 1 ; Untyped ; +; OPERATION_MODE ; DUAL_PORT ; Untyped ; +; WIDTH_A ; 32 ; Signed Integer ; +; WIDTHAD_A ; 5 ; Signed Integer ; +; NUMWORDS_A ; 32 ; Signed Integer ; +; OUTDATA_REG_A ; UNREGISTERED ; Untyped ; +; ADDRESS_ACLR_A ; NONE ; Untyped ; +; OUTDATA_ACLR_A ; NONE ; Untyped ; +; WRCONTROL_ACLR_A ; NONE ; Untyped ; +; INDATA_ACLR_A ; NONE ; Untyped ; +; BYTEENA_ACLR_A ; NONE ; Untyped ; +; WIDTH_B ; 32 ; Signed Integer ; +; WIDTHAD_B ; 5 ; Signed Integer ; +; NUMWORDS_B ; 32 ; Signed Integer ; +; INDATA_REG_B ; CLOCK1 ; Untyped ; +; WRCONTROL_WRADDRESS_REG_B ; CLOCK1 ; Untyped ; +; RDCONTROL_REG_B ; CLOCK0 ; Untyped ; +; ADDRESS_REG_B ; CLOCK0 ; Untyped ; +; OUTDATA_REG_B ; UNREGISTERED ; Untyped ; +; BYTEENA_REG_B ; CLOCK1 ; Untyped ; +; INDATA_ACLR_B ; NONE ; Untyped ; +; WRCONTROL_ACLR_B ; NONE ; Untyped ; +; ADDRESS_ACLR_B ; NONE ; Untyped ; +; OUTDATA_ACLR_B ; NONE ; Untyped ; +; RDCONTROL_ACLR_B ; NONE ; Untyped ; +; BYTEENA_ACLR_B ; NONE ; Untyped ; +; WIDTH_BYTEENA_A ; 1 ; Untyped ; +; WIDTH_BYTEENA_B ; 1 ; Untyped ; +; RAM_BLOCK_TYPE ; AUTO ; Untyped ; +; BYTE_SIZE ; 8 ; Untyped ; +; READ_DURING_WRITE_MODE_MIXED_PORTS ; DONT_CARE ; Untyped ; +; READ_DURING_WRITE_MODE_PORT_A ; NEW_DATA_NO_NBE_READ ; Untyped ; +; READ_DURING_WRITE_MODE_PORT_B ; NEW_DATA_NO_NBE_READ ; Untyped ; +; INIT_FILE ; nios_system_nios2_processor_rf_ram_b.mif ; Untyped ; +; INIT_FILE_LAYOUT ; PORT_A ; Untyped ; +; MAXIMUM_DEPTH ; 0 ; Signed Integer ; +; CLOCK_ENABLE_INPUT_A ; NORMAL ; Untyped ; +; CLOCK_ENABLE_INPUT_B ; NORMAL ; Untyped ; +; CLOCK_ENABLE_OUTPUT_A ; NORMAL ; Untyped ; +; CLOCK_ENABLE_OUTPUT_B ; NORMAL ; Untyped ; +; CLOCK_ENABLE_CORE_A ; USE_INPUT_CLKEN ; Untyped ; +; CLOCK_ENABLE_CORE_B ; USE_INPUT_CLKEN ; Untyped ; +; ENABLE_ECC ; FALSE ; Untyped ; +; ECC_PIPELINE_STAGE_ENABLED ; FALSE ; Untyped ; +; WIDTH_ECCSTATUS ; 3 ; Untyped ; +; DEVICE_FAMILY ; Cyclone IV E ; Untyped ; +; CBXI_PARAMETER ; altsyncram_1rh1 ; Untyped ; ++------------------------------------+------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+ +Note: In order to hide this table in the UI and the text report file, please set the "Show Parameter Settings in Synthesis Report" option in "Analysis and Synthesis Settings -> More Settings" to "Off". + + ++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Settings for User Entity Instance: nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_oci_debug:the_nios_system_nios2_processor_nios2_oci_debug|altera_std_synchronizer:the_altera_std_synchronizer ; ++----------------+-------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Name ; Value ; Type ; ++----------------+-------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; depth ; 2 ; Signed Integer ; ++----------------+-------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +Note: In order to hide this table in the UI and the text report file, please set the "Show Parameter Settings in Synthesis Report" option in "Analysis and Synthesis Settings -> More Settings" to "Off". + + ++------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Settings for User Entity Instance: nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_ocimem:the_nios_system_nios2_processor_nios2_ocimem|nios_system_nios2_processor_ociram_sp_ram_module:nios_system_nios2_processor_ociram_sp_ram ; ++----------------+---------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Name ; Value ; Type ; ++----------------+---------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; lpm_file ; nios_system_nios2_processor_ociram_default_contents.mif ; String ; ++----------------+---------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +Note: In order to hide this table in the UI and the text report file, please set the "Show Parameter Settings in Synthesis Report" option in "Analysis and Synthesis Settings -> More Settings" to "Off". + + ++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Settings for User Entity Instance: nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_ocimem:the_nios_system_nios2_processor_nios2_ocimem|nios_system_nios2_processor_ociram_sp_ram_module:nios_system_nios2_processor_ociram_sp_ram|altsyncram:the_altsyncram ; ++------------------------------------+---------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Name ; Value ; Type ; ++------------------------------------+---------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; BYTE_SIZE_BLOCK ; 8 ; Untyped ; +; AUTO_CARRY_CHAINS ; ON ; AUTO_CARRY ; +; IGNORE_CARRY_BUFFERS ; OFF ; IGNORE_CARRY ; +; AUTO_CASCADE_CHAINS ; ON ; AUTO_CASCADE ; +; IGNORE_CASCADE_BUFFERS ; OFF ; IGNORE_CASCADE ; +; WIDTH_BYTEENA ; 1 ; Untyped ; +; OPERATION_MODE ; SINGLE_PORT ; Untyped ; +; WIDTH_A ; 32 ; Signed Integer ; +; WIDTHAD_A ; 8 ; Signed Integer ; +; NUMWORDS_A ; 256 ; Signed Integer ; +; OUTDATA_REG_A ; UNREGISTERED ; Untyped ; +; ADDRESS_ACLR_A ; NONE ; Untyped ; +; OUTDATA_ACLR_A ; NONE ; Untyped ; +; WRCONTROL_ACLR_A ; NONE ; Untyped ; +; INDATA_ACLR_A ; NONE ; Untyped ; +; BYTEENA_ACLR_A ; NONE ; Untyped ; +; WIDTH_B ; 1 ; Untyped ; +; WIDTHAD_B ; 1 ; Untyped ; +; NUMWORDS_B ; 1 ; Untyped ; +; INDATA_REG_B ; CLOCK1 ; Untyped ; +; WRCONTROL_WRADDRESS_REG_B ; CLOCK1 ; Untyped ; +; RDCONTROL_REG_B ; CLOCK1 ; Untyped ; +; ADDRESS_REG_B ; CLOCK1 ; Untyped ; +; OUTDATA_REG_B ; UNREGISTERED ; Untyped ; +; BYTEENA_REG_B ; CLOCK1 ; Untyped ; +; INDATA_ACLR_B ; NONE ; Untyped ; +; WRCONTROL_ACLR_B ; NONE ; Untyped ; +; ADDRESS_ACLR_B ; NONE ; Untyped ; +; OUTDATA_ACLR_B ; NONE ; Untyped ; +; RDCONTROL_ACLR_B ; NONE ; Untyped ; +; BYTEENA_ACLR_B ; NONE ; Untyped ; +; WIDTH_BYTEENA_A ; 4 ; Signed Integer ; +; WIDTH_BYTEENA_B ; 1 ; Untyped ; +; RAM_BLOCK_TYPE ; AUTO ; Untyped ; +; BYTE_SIZE ; 8 ; Untyped ; +; READ_DURING_WRITE_MODE_MIXED_PORTS ; DONT_CARE ; Untyped ; +; READ_DURING_WRITE_MODE_PORT_A ; NEW_DATA_NO_NBE_READ ; Untyped ; +; READ_DURING_WRITE_MODE_PORT_B ; NEW_DATA_NO_NBE_READ ; Untyped ; +; INIT_FILE ; nios_system_nios2_processor_ociram_default_contents.mif ; Untyped ; +; INIT_FILE_LAYOUT ; PORT_A ; Untyped ; +; MAXIMUM_DEPTH ; 0 ; Signed Integer ; +; CLOCK_ENABLE_INPUT_A ; NORMAL ; Untyped ; +; CLOCK_ENABLE_INPUT_B ; NORMAL ; Untyped ; +; CLOCK_ENABLE_OUTPUT_A ; NORMAL ; Untyped ; +; CLOCK_ENABLE_OUTPUT_B ; NORMAL ; Untyped ; +; CLOCK_ENABLE_CORE_A ; USE_INPUT_CLKEN ; Untyped ; +; CLOCK_ENABLE_CORE_B ; USE_INPUT_CLKEN ; Untyped ; +; ENABLE_ECC ; FALSE ; Untyped ; +; ECC_PIPELINE_STAGE_ENABLED ; FALSE ; Untyped ; +; WIDTH_ECCSTATUS ; 3 ; Untyped ; +; DEVICE_FAMILY ; Cyclone IV E ; Untyped ; +; CBXI_PARAMETER ; altsyncram_4891 ; Untyped ; ++------------------------------------+---------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +Note: In order to hide this table in the UI and the text report file, please set the "Show Parameter Settings in Synthesis Report" option in "Analysis and Synthesis Settings -> More Settings" to "Off". + + ++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Settings for User Entity Instance: nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|altera_std_synchronizer:the_altera_std_synchronizer1 ; ++----------------+-------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Name ; Value ; Type ; ++----------------+-------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; depth ; 2 ; Signed Integer ; ++----------------+-------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +Note: In order to hide this table in the UI and the text report file, please set the "Show Parameter Settings in Synthesis Report" option in "Analysis and Synthesis Settings -> More Settings" to "Off". + + ++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Settings for User Entity Instance: nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|altera_std_synchronizer:the_altera_std_synchronizer2 ; ++----------------+-------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Name ; Value ; Type ; ++----------------+-------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; depth ; 2 ; Signed Integer ; ++----------------+-------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +Note: In order to hide this table in the UI and the text report file, please set the "Show Parameter Settings in Synthesis Report" option in "Analysis and Synthesis Settings -> More Settings" to "Off". + + ++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Settings for User Entity Instance: nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk|altera_std_synchronizer:the_altera_std_synchronizer3 ; ++----------------+-------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Name ; Value ; Type ; ++----------------+-------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; depth ; 2 ; Signed Integer ; ++----------------+-------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +Note: In order to hide this table in the UI and the text report file, please set the "Show Parameter Settings in Synthesis Report" option in "Analysis and Synthesis Settings -> More Settings" to "Off". + + ++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Settings for User Entity Instance: nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk|altera_std_synchronizer:the_altera_std_synchronizer4 ; ++----------------+-------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Name ; Value ; Type ; ++----------------+-------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; depth ; 2 ; Signed Integer ; ++----------------+-------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +Note: In order to hide this table in the UI and the text report file, please set the "Show Parameter Settings in Synthesis Report" option in "Analysis and Synthesis Settings -> More Settings" to "Off". + + ++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Settings for User Entity Instance: nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|sld_virtual_jtag_basic:nios_system_nios2_processor_jtag_debug_module_phy ; ++-------------------------+------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Name ; Value ; Type ; ++-------------------------+------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; sld_mfg_id ; 70 ; Signed Integer ; +; sld_type_id ; 34 ; Signed Integer ; +; sld_version ; 3 ; Signed Integer ; +; sld_instance_index ; 0 ; Signed Integer ; +; sld_auto_instance_index ; YES ; String ; +; sld_ir_width ; 2 ; Signed Integer ; +; sld_sim_n_scan ; 0 ; Signed Integer ; +; sld_sim_action ; ; String ; +; sld_sim_total_length ; 0 ; Signed Integer ; +; lpm_type ; sld_virtual_jtag_basic ; String ; +; lpm_hint ; UNUSED ; String ; ++-------------------------+------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +Note: In order to hide this table in the UI and the text report file, please set the "Show Parameter Settings in Synthesis Report" option in "Analysis and Synthesis Settings -> More Settings" to "Off". + + ++---------------------------------------------------------------------------------------------------------+ +; Parameter Settings for User Entity Instance: nios_system:NiosII|nios_system_onchip_memory:onchip_memory ; ++----------------+-------------------------------+--------------------------------------------------------+ +; Parameter Name ; Value ; Type ; ++----------------+-------------------------------+--------------------------------------------------------+ +; INIT_FILE ; nios_system_onchip_memory.hex ; String ; ++----------------+-------------------------------+--------------------------------------------------------+ +Note: In order to hide this table in the UI and the text report file, please set the "Show Parameter Settings in Synthesis Report" option in "Analysis and Synthesis Settings -> More Settings" to "Off". + + ++-----------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Settings for User Entity Instance: nios_system:NiosII|nios_system_onchip_memory:onchip_memory|altsyncram:the_altsyncram ; ++------------------------------------+-------------------------------+--------------------------------------------------------------+ +; Parameter Name ; Value ; Type ; ++------------------------------------+-------------------------------+--------------------------------------------------------------+ +; BYTE_SIZE_BLOCK ; 8 ; Untyped ; +; AUTO_CARRY_CHAINS ; ON ; AUTO_CARRY ; +; IGNORE_CARRY_BUFFERS ; OFF ; IGNORE_CARRY ; +; AUTO_CASCADE_CHAINS ; ON ; AUTO_CASCADE ; +; IGNORE_CASCADE_BUFFERS ; OFF ; IGNORE_CASCADE ; +; WIDTH_BYTEENA ; 1 ; Untyped ; +; OPERATION_MODE ; SINGLE_PORT ; Untyped ; +; WIDTH_A ; 32 ; Signed Integer ; +; WIDTHAD_A ; 16 ; Signed Integer ; +; NUMWORDS_A ; 51200 ; Signed Integer ; +; OUTDATA_REG_A ; UNREGISTERED ; Untyped ; +; ADDRESS_ACLR_A ; NONE ; Untyped ; +; OUTDATA_ACLR_A ; NONE ; Untyped ; +; WRCONTROL_ACLR_A ; NONE ; Untyped ; +; INDATA_ACLR_A ; NONE ; Untyped ; +; BYTEENA_ACLR_A ; NONE ; Untyped ; +; WIDTH_B ; 1 ; Untyped ; +; WIDTHAD_B ; 1 ; Untyped ; +; NUMWORDS_B ; 1 ; Untyped ; +; INDATA_REG_B ; CLOCK1 ; Untyped ; +; WRCONTROL_WRADDRESS_REG_B ; CLOCK1 ; Untyped ; +; RDCONTROL_REG_B ; CLOCK1 ; Untyped ; +; ADDRESS_REG_B ; CLOCK1 ; Untyped ; +; OUTDATA_REG_B ; UNREGISTERED ; Untyped ; +; BYTEENA_REG_B ; CLOCK1 ; Untyped ; +; INDATA_ACLR_B ; NONE ; Untyped ; +; WRCONTROL_ACLR_B ; NONE ; Untyped ; +; ADDRESS_ACLR_B ; NONE ; Untyped ; +; OUTDATA_ACLR_B ; NONE ; Untyped ; +; RDCONTROL_ACLR_B ; NONE ; Untyped ; +; BYTEENA_ACLR_B ; NONE ; Untyped ; +; WIDTH_BYTEENA_A ; 4 ; Signed Integer ; +; WIDTH_BYTEENA_B ; 1 ; Untyped ; +; RAM_BLOCK_TYPE ; AUTO ; Untyped ; +; BYTE_SIZE ; 8 ; Signed Integer ; +; READ_DURING_WRITE_MODE_MIXED_PORTS ; DONT_CARE ; Untyped ; +; READ_DURING_WRITE_MODE_PORT_A ; NEW_DATA_NO_NBE_READ ; Untyped ; +; READ_DURING_WRITE_MODE_PORT_B ; NEW_DATA_NO_NBE_READ ; Untyped ; +; INIT_FILE ; nios_system_onchip_memory.hex ; Untyped ; +; INIT_FILE_LAYOUT ; PORT_A ; Untyped ; +; MAXIMUM_DEPTH ; 51200 ; Signed Integer ; +; CLOCK_ENABLE_INPUT_A ; NORMAL ; Untyped ; +; CLOCK_ENABLE_INPUT_B ; NORMAL ; Untyped ; +; CLOCK_ENABLE_OUTPUT_A ; NORMAL ; Untyped ; +; CLOCK_ENABLE_OUTPUT_B ; NORMAL ; Untyped ; +; CLOCK_ENABLE_CORE_A ; USE_INPUT_CLKEN ; Untyped ; +; CLOCK_ENABLE_CORE_B ; USE_INPUT_CLKEN ; Untyped ; +; ENABLE_ECC ; FALSE ; Untyped ; +; ECC_PIPELINE_STAGE_ENABLED ; FALSE ; Untyped ; +; WIDTH_ECCSTATUS ; 3 ; Untyped ; +; DEVICE_FAMILY ; Cyclone IV E ; Untyped ; +; CBXI_PARAMETER ; altsyncram_4ed1 ; Untyped ; ++------------------------------------+-------------------------------+--------------------------------------------------------------+ +Note: In order to hide this table in the UI and the text report file, please set the "Show Parameter Settings in Synthesis Report" option in "Analysis and Synthesis Settings -> More Settings" to "Off". + + ++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Settings for User Entity Instance: nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_w:the_nios_system_jtag_uart_scfifo_w|scfifo:wfifo ; ++-------------------------+--------------+---------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Name ; Value ; Type ; ++-------------------------+--------------+---------------------------------------------------------------------------------------------------------------------------------------+ +; AUTO_CARRY_CHAINS ; ON ; AUTO_CARRY ; +; IGNORE_CARRY_BUFFERS ; OFF ; IGNORE_CARRY ; +; AUTO_CASCADE_CHAINS ; ON ; AUTO_CASCADE ; +; IGNORE_CASCADE_BUFFERS ; OFF ; IGNORE_CASCADE ; +; lpm_width ; 8 ; Signed Integer ; +; LPM_NUMWORDS ; 64 ; Signed Integer ; +; LPM_WIDTHU ; 6 ; Signed Integer ; +; LPM_SHOWAHEAD ; OFF ; Untyped ; +; UNDERFLOW_CHECKING ; OFF ; Untyped ; +; OVERFLOW_CHECKING ; OFF ; Untyped ; +; ALLOW_RWCYCLE_WHEN_FULL ; OFF ; Untyped ; +; ADD_RAM_OUTPUT_REGISTER ; OFF ; Untyped ; +; ALMOST_FULL_VALUE ; 0 ; Untyped ; +; ALMOST_EMPTY_VALUE ; 0 ; Untyped ; +; USE_EAB ; ON ; Untyped ; +; MAXIMIZE_SPEED ; 5 ; Untyped ; +; DEVICE_FAMILY ; Cyclone IV E ; Untyped ; +; OPTIMIZE_FOR_SPEED ; 5 ; Untyped ; +; CBXI_PARAMETER ; scfifo_jr21 ; Untyped ; ++-------------------------+--------------+---------------------------------------------------------------------------------------------------------------------------------------+ +Note: In order to hide this table in the UI and the text report file, please set the "Show Parameter Settings in Synthesis Report" option in "Analysis and Synthesis Settings -> More Settings" to "Off". + + ++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Settings for User Entity Instance: nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_r:the_nios_system_jtag_uart_scfifo_r|scfifo:rfifo ; ++-------------------------+--------------+---------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Name ; Value ; Type ; ++-------------------------+--------------+---------------------------------------------------------------------------------------------------------------------------------------+ +; AUTO_CARRY_CHAINS ; ON ; AUTO_CARRY ; +; IGNORE_CARRY_BUFFERS ; OFF ; IGNORE_CARRY ; +; AUTO_CASCADE_CHAINS ; ON ; AUTO_CASCADE ; +; IGNORE_CASCADE_BUFFERS ; OFF ; IGNORE_CASCADE ; +; lpm_width ; 8 ; Signed Integer ; +; LPM_NUMWORDS ; 64 ; Signed Integer ; +; LPM_WIDTHU ; 6 ; Signed Integer ; +; LPM_SHOWAHEAD ; OFF ; Untyped ; +; UNDERFLOW_CHECKING ; OFF ; Untyped ; +; OVERFLOW_CHECKING ; OFF ; Untyped ; +; ALLOW_RWCYCLE_WHEN_FULL ; OFF ; Untyped ; +; ADD_RAM_OUTPUT_REGISTER ; OFF ; Untyped ; +; ALMOST_FULL_VALUE ; 0 ; Untyped ; +; ALMOST_EMPTY_VALUE ; 0 ; Untyped ; +; USE_EAB ; ON ; Untyped ; +; MAXIMIZE_SPEED ; 5 ; Untyped ; +; DEVICE_FAMILY ; Cyclone IV E ; Untyped ; +; OPTIMIZE_FOR_SPEED ; 5 ; Untyped ; +; CBXI_PARAMETER ; scfifo_jr21 ; Untyped ; ++-------------------------+--------------+---------------------------------------------------------------------------------------------------------------------------------------+ +Note: In order to hide this table in the UI and the text report file, please set the "Show Parameter Settings in Synthesis Report" option in "Analysis and Synthesis Settings -> More Settings" to "Off". + + ++-----------------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Settings for User Entity Instance: nios_system:NiosII|altera_merlin_master_translator:nios2_processor_instruction_master_translator ; ++-----------------------------+-------+---------------------------------------------------------------------------------------------------------+ +; Parameter Name ; Value ; Type ; ++-----------------------------+-------+---------------------------------------------------------------------------------------------------------+ +; AV_ADDRESS_W ; 19 ; Signed Integer ; +; AV_DATA_W ; 32 ; Signed Integer ; +; AV_BURSTCOUNT_W ; 1 ; Signed Integer ; +; AV_BYTEENABLE_W ; 4 ; Signed Integer ; +; USE_BURSTCOUNT ; 0 ; Signed Integer ; +; USE_BEGINBURSTTRANSFER ; 0 ; Signed Integer ; +; USE_BEGINTRANSFER ; 0 ; Signed Integer ; +; USE_CHIPSELECT ; 0 ; Signed Integer ; +; USE_READ ; 1 ; Signed Integer ; +; USE_READDATAVALID ; 0 ; Signed Integer ; +; USE_WRITE ; 0 ; Signed Integer ; +; USE_WAITREQUEST ; 1 ; Signed Integer ; +; USE_WRITERESPONSE ; 0 ; Signed Integer ; +; USE_READRESPONSE ; 0 ; Signed Integer ; +; AV_REGISTERINCOMINGSIGNALS ; 0 ; Signed Integer ; +; AV_SYMBOLS_PER_WORD ; 4 ; Signed Integer ; +; AV_ADDRESS_SYMBOLS ; 1 ; Signed Integer ; +; AV_CONSTANT_BURST_BEHAVIOR ; 0 ; Signed Integer ; +; AV_BURSTCOUNT_SYMBOLS ; 0 ; Signed Integer ; +; AV_LINEWRAPBURSTS ; 1 ; Signed Integer ; +; UAV_ADDRESS_W ; 19 ; Signed Integer ; +; UAV_BURSTCOUNT_W ; 3 ; Signed Integer ; +; UAV_CONSTANT_BURST_BEHAVIOR ; 0 ; Signed Integer ; ++-----------------------------+-------+---------------------------------------------------------------------------------------------------------+ +Note: In order to hide this table in the UI and the text report file, please set the "Show Parameter Settings in Synthesis Report" option in "Analysis and Synthesis Settings -> More Settings" to "Off". + + ++----------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Settings for User Entity Instance: nios_system:NiosII|altera_merlin_master_translator:nios2_processor_data_master_translator ; ++-----------------------------+-------+--------------------------------------------------------------------------------------------------+ +; Parameter Name ; Value ; Type ; ++-----------------------------+-------+--------------------------------------------------------------------------------------------------+ +; AV_ADDRESS_W ; 19 ; Signed Integer ; +; AV_DATA_W ; 32 ; Signed Integer ; +; AV_BURSTCOUNT_W ; 1 ; Signed Integer ; +; AV_BYTEENABLE_W ; 4 ; Signed Integer ; +; USE_BURSTCOUNT ; 0 ; Signed Integer ; +; USE_BEGINBURSTTRANSFER ; 0 ; Signed Integer ; +; USE_BEGINTRANSFER ; 0 ; Signed Integer ; +; USE_CHIPSELECT ; 0 ; Signed Integer ; +; USE_READ ; 1 ; Signed Integer ; +; USE_READDATAVALID ; 0 ; Signed Integer ; +; USE_WRITE ; 1 ; Signed Integer ; +; USE_WAITREQUEST ; 1 ; Signed Integer ; +; USE_WRITERESPONSE ; 0 ; Signed Integer ; +; USE_READRESPONSE ; 0 ; Signed Integer ; +; AV_REGISTERINCOMINGSIGNALS ; 1 ; Signed Integer ; +; AV_SYMBOLS_PER_WORD ; 4 ; Signed Integer ; +; AV_ADDRESS_SYMBOLS ; 1 ; Signed Integer ; +; AV_CONSTANT_BURST_BEHAVIOR ; 0 ; Signed Integer ; +; AV_BURSTCOUNT_SYMBOLS ; 0 ; Signed Integer ; +; AV_LINEWRAPBURSTS ; 0 ; Signed Integer ; +; UAV_ADDRESS_W ; 19 ; Signed Integer ; +; UAV_BURSTCOUNT_W ; 3 ; Signed Integer ; +; UAV_CONSTANT_BURST_BEHAVIOR ; 0 ; Signed Integer ; ++-----------------------------+-------+--------------------------------------------------------------------------------------------------+ +Note: In order to hide this table in the UI and the text report file, please set the "Show Parameter Settings in Synthesis Report" option in "Analysis and Synthesis Settings -> More Settings" to "Off". + + ++---------------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Settings for User Entity Instance: nios_system:NiosII|altera_merlin_slave_translator:nios2_processor_jtag_debug_module_translator ; ++--------------------------------+-------+----------------------------------------------------------------------------------------------------+ +; Parameter Name ; Value ; Type ; ++--------------------------------+-------+----------------------------------------------------------------------------------------------------+ +; AV_ADDRESS_W ; 9 ; Signed Integer ; +; AV_DATA_W ; 32 ; Signed Integer ; +; AV_BURSTCOUNT_W ; 1 ; Signed Integer ; +; AV_BYTEENABLE_W ; 4 ; Signed Integer ; +; UAV_BYTEENABLE_W ; 4 ; Signed Integer ; +; AV_READLATENCY ; 0 ; Signed Integer ; +; AV_READ_WAIT_CYCLES ; 1 ; Signed Integer ; +; AV_WRITE_WAIT_CYCLES ; 0 ; Signed Integer ; +; AV_SETUP_WAIT_CYCLES ; 0 ; Signed Integer ; +; AV_DATA_HOLD_CYCLES ; 0 ; Signed Integer ; +; USE_READDATAVALID ; 0 ; Signed Integer ; +; USE_WAITREQUEST ; 1 ; Signed Integer ; +; USE_READRESPONSE ; 0 ; Signed Integer ; +; USE_WRITERESPONSE ; 0 ; Signed Integer ; +; AV_SYMBOLS_PER_WORD ; 4 ; Signed Integer ; +; AV_ADDRESS_SYMBOLS ; 0 ; Signed Integer ; +; AV_BURSTCOUNT_SYMBOLS ; 0 ; Signed Integer ; +; BITS_PER_WORD ; 2 ; Signed Integer ; +; UAV_ADDRESS_W ; 19 ; Signed Integer ; +; UAV_BURSTCOUNT_W ; 3 ; Signed Integer ; +; UAV_DATA_W ; 32 ; Signed Integer ; +; AV_CONSTANT_BURST_BEHAVIOR ; 0 ; Signed Integer ; +; UAV_CONSTANT_BURST_BEHAVIOR ; 0 ; Signed Integer ; +; CHIPSELECT_THROUGH_READLATENCY ; 0 ; Signed Integer ; +; USE_UAV_CLKEN ; 0 ; Signed Integer ; +; AV_REQUIRE_UNALIGNED_ADDRESSES ; 0 ; Signed Integer ; ++--------------------------------+-------+----------------------------------------------------------------------------------------------------+ +Note: In order to hide this table in the UI and the text report file, please set the "Show Parameter Settings in Synthesis Report" option in "Analysis and Synthesis Settings -> More Settings" to "Off". + + ++----------------------------------------------------------------------------------------------------------------------------+ +; Parameter Settings for User Entity Instance: nios_system:NiosII|altera_merlin_slave_translator:onchip_memory_s1_translator ; ++--------------------------------+-------+-----------------------------------------------------------------------------------+ +; Parameter Name ; Value ; Type ; ++--------------------------------+-------+-----------------------------------------------------------------------------------+ +; AV_ADDRESS_W ; 16 ; Signed Integer ; +; AV_DATA_W ; 32 ; Signed Integer ; +; AV_BURSTCOUNT_W ; 1 ; Signed Integer ; +; AV_BYTEENABLE_W ; 4 ; Signed Integer ; +; UAV_BYTEENABLE_W ; 4 ; Signed Integer ; +; AV_READLATENCY ; 1 ; Signed Integer ; +; AV_READ_WAIT_CYCLES ; 0 ; Signed Integer ; +; AV_WRITE_WAIT_CYCLES ; 0 ; Signed Integer ; +; AV_SETUP_WAIT_CYCLES ; 0 ; Signed Integer ; +; AV_DATA_HOLD_CYCLES ; 0 ; Signed Integer ; +; USE_READDATAVALID ; 0 ; Signed Integer ; +; USE_WAITREQUEST ; 0 ; Signed Integer ; +; USE_READRESPONSE ; 0 ; Signed Integer ; +; USE_WRITERESPONSE ; 0 ; Signed Integer ; +; AV_SYMBOLS_PER_WORD ; 4 ; Signed Integer ; +; AV_ADDRESS_SYMBOLS ; 0 ; Signed Integer ; +; AV_BURSTCOUNT_SYMBOLS ; 0 ; Signed Integer ; +; BITS_PER_WORD ; 2 ; Signed Integer ; +; UAV_ADDRESS_W ; 19 ; Signed Integer ; +; UAV_BURSTCOUNT_W ; 3 ; Signed Integer ; +; UAV_DATA_W ; 32 ; Signed Integer ; +; AV_CONSTANT_BURST_BEHAVIOR ; 0 ; Signed Integer ; +; UAV_CONSTANT_BURST_BEHAVIOR ; 0 ; Signed Integer ; +; CHIPSELECT_THROUGH_READLATENCY ; 0 ; Signed Integer ; +; USE_UAV_CLKEN ; 0 ; Signed Integer ; +; AV_REQUIRE_UNALIGNED_ADDRESSES ; 0 ; Signed Integer ; ++--------------------------------+-------+-----------------------------------------------------------------------------------+ +Note: In order to hide this table in the UI and the text report file, please set the "Show Parameter Settings in Synthesis Report" option in "Analysis and Synthesis Settings -> More Settings" to "Off". + + ++-------------------------------------------------------------------------------------------------------------------+ +; Parameter Settings for User Entity Instance: nios_system:NiosII|altera_merlin_slave_translator:leds_s1_translator ; ++--------------------------------+-------+--------------------------------------------------------------------------+ +; Parameter Name ; Value ; Type ; ++--------------------------------+-------+--------------------------------------------------------------------------+ +; AV_ADDRESS_W ; 2 ; Signed Integer ; +; AV_DATA_W ; 32 ; Signed Integer ; +; AV_BURSTCOUNT_W ; 1 ; Signed Integer ; +; AV_BYTEENABLE_W ; 1 ; Signed Integer ; +; UAV_BYTEENABLE_W ; 4 ; Signed Integer ; +; AV_READLATENCY ; 0 ; Signed Integer ; +; AV_READ_WAIT_CYCLES ; 1 ; Signed Integer ; +; AV_WRITE_WAIT_CYCLES ; 0 ; Signed Integer ; +; AV_SETUP_WAIT_CYCLES ; 0 ; Signed Integer ; +; AV_DATA_HOLD_CYCLES ; 0 ; Signed Integer ; +; USE_READDATAVALID ; 0 ; Signed Integer ; +; USE_WAITREQUEST ; 0 ; Signed Integer ; +; USE_READRESPONSE ; 0 ; Signed Integer ; +; USE_WRITERESPONSE ; 0 ; Signed Integer ; +; AV_SYMBOLS_PER_WORD ; 4 ; Signed Integer ; +; AV_ADDRESS_SYMBOLS ; 0 ; Signed Integer ; +; AV_BURSTCOUNT_SYMBOLS ; 0 ; Signed Integer ; +; BITS_PER_WORD ; 2 ; Signed Integer ; +; UAV_ADDRESS_W ; 19 ; Signed Integer ; +; UAV_BURSTCOUNT_W ; 3 ; Signed Integer ; +; UAV_DATA_W ; 32 ; Signed Integer ; +; AV_CONSTANT_BURST_BEHAVIOR ; 0 ; Signed Integer ; +; UAV_CONSTANT_BURST_BEHAVIOR ; 0 ; Signed Integer ; +; CHIPSELECT_THROUGH_READLATENCY ; 0 ; Signed Integer ; +; USE_UAV_CLKEN ; 0 ; Signed Integer ; +; AV_REQUIRE_UNALIGNED_ADDRESSES ; 0 ; Signed Integer ; ++--------------------------------+-------+--------------------------------------------------------------------------+ +Note: In order to hide this table in the UI and the text report file, please set the "Show Parameter Settings in Synthesis Report" option in "Analysis and Synthesis Settings -> More Settings" to "Off". + + ++---------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Settings for User Entity Instance: nios_system:NiosII|altera_merlin_slave_translator:jtag_uart_avalon_jtag_slave_translator ; ++--------------------------------+-------+----------------------------------------------------------------------------------------------+ +; Parameter Name ; Value ; Type ; ++--------------------------------+-------+----------------------------------------------------------------------------------------------+ +; AV_ADDRESS_W ; 1 ; Signed Integer ; +; AV_DATA_W ; 32 ; Signed Integer ; +; AV_BURSTCOUNT_W ; 1 ; Signed Integer ; +; AV_BYTEENABLE_W ; 1 ; Signed Integer ; +; UAV_BYTEENABLE_W ; 4 ; Signed Integer ; +; AV_READLATENCY ; 0 ; Signed Integer ; +; AV_READ_WAIT_CYCLES ; 1 ; Signed Integer ; +; AV_WRITE_WAIT_CYCLES ; 0 ; Signed Integer ; +; AV_SETUP_WAIT_CYCLES ; 0 ; Signed Integer ; +; AV_DATA_HOLD_CYCLES ; 0 ; Signed Integer ; +; USE_READDATAVALID ; 0 ; Signed Integer ; +; USE_WAITREQUEST ; 1 ; Signed Integer ; +; USE_READRESPONSE ; 0 ; Signed Integer ; +; USE_WRITERESPONSE ; 0 ; Signed Integer ; +; AV_SYMBOLS_PER_WORD ; 4 ; Signed Integer ; +; AV_ADDRESS_SYMBOLS ; 0 ; Signed Integer ; +; AV_BURSTCOUNT_SYMBOLS ; 0 ; Signed Integer ; +; BITS_PER_WORD ; 2 ; Signed Integer ; +; UAV_ADDRESS_W ; 19 ; Signed Integer ; +; UAV_BURSTCOUNT_W ; 3 ; Signed Integer ; +; UAV_DATA_W ; 32 ; Signed Integer ; +; AV_CONSTANT_BURST_BEHAVIOR ; 0 ; Signed Integer ; +; UAV_CONSTANT_BURST_BEHAVIOR ; 0 ; Signed Integer ; +; CHIPSELECT_THROUGH_READLATENCY ; 0 ; Signed Integer ; +; USE_UAV_CLKEN ; 0 ; Signed Integer ; +; AV_REQUIRE_UNALIGNED_ADDRESSES ; 0 ; Signed Integer ; ++--------------------------------+-------+----------------------------------------------------------------------------------------------+ +Note: In order to hide this table in the UI and the text report file, please set the "Show Parameter Settings in Synthesis Report" option in "Analysis and Synthesis Settings -> More Settings" to "Off". + + ++--------------------------------------------------------------------------------------------------------------------+ +; Parameter Settings for User Entity Instance: nios_system:NiosII|altera_merlin_slave_translator:ledrs_s1_translator ; ++--------------------------------+-------+---------------------------------------------------------------------------+ +; Parameter Name ; Value ; Type ; ++--------------------------------+-------+---------------------------------------------------------------------------+ +; AV_ADDRESS_W ; 2 ; Signed Integer ; +; AV_DATA_W ; 32 ; Signed Integer ; +; AV_BURSTCOUNT_W ; 1 ; Signed Integer ; +; AV_BYTEENABLE_W ; 1 ; Signed Integer ; +; UAV_BYTEENABLE_W ; 4 ; Signed Integer ; +; AV_READLATENCY ; 0 ; Signed Integer ; +; AV_READ_WAIT_CYCLES ; 1 ; Signed Integer ; +; AV_WRITE_WAIT_CYCLES ; 0 ; Signed Integer ; +; AV_SETUP_WAIT_CYCLES ; 0 ; Signed Integer ; +; AV_DATA_HOLD_CYCLES ; 0 ; Signed Integer ; +; USE_READDATAVALID ; 0 ; Signed Integer ; +; USE_WAITREQUEST ; 0 ; Signed Integer ; +; USE_READRESPONSE ; 0 ; Signed Integer ; +; USE_WRITERESPONSE ; 0 ; Signed Integer ; +; AV_SYMBOLS_PER_WORD ; 4 ; Signed Integer ; +; AV_ADDRESS_SYMBOLS ; 0 ; Signed Integer ; +; AV_BURSTCOUNT_SYMBOLS ; 0 ; Signed Integer ; +; BITS_PER_WORD ; 2 ; Signed Integer ; +; UAV_ADDRESS_W ; 19 ; Signed Integer ; +; UAV_BURSTCOUNT_W ; 3 ; Signed Integer ; +; UAV_DATA_W ; 32 ; Signed Integer ; +; AV_CONSTANT_BURST_BEHAVIOR ; 0 ; Signed Integer ; +; UAV_CONSTANT_BURST_BEHAVIOR ; 0 ; Signed Integer ; +; CHIPSELECT_THROUGH_READLATENCY ; 0 ; Signed Integer ; +; USE_UAV_CLKEN ; 0 ; Signed Integer ; +; AV_REQUIRE_UNALIGNED_ADDRESSES ; 0 ; Signed Integer ; ++--------------------------------+-------+---------------------------------------------------------------------------+ +Note: In order to hide this table in the UI and the text report file, please set the "Show Parameter Settings in Synthesis Report" option in "Analysis and Synthesis Settings -> More Settings" to "Off". + + ++-----------------------------------------------------------------------------------------------------------------------+ +; Parameter Settings for User Entity Instance: nios_system:NiosII|altera_merlin_slave_translator:switches_s1_translator ; ++--------------------------------+-------+------------------------------------------------------------------------------+ +; Parameter Name ; Value ; Type ; ++--------------------------------+-------+------------------------------------------------------------------------------+ +; AV_ADDRESS_W ; 2 ; Signed Integer ; +; AV_DATA_W ; 32 ; Signed Integer ; +; AV_BURSTCOUNT_W ; 1 ; Signed Integer ; +; AV_BYTEENABLE_W ; 1 ; Signed Integer ; +; UAV_BYTEENABLE_W ; 4 ; Signed Integer ; +; AV_READLATENCY ; 0 ; Signed Integer ; +; AV_READ_WAIT_CYCLES ; 1 ; Signed Integer ; +; AV_WRITE_WAIT_CYCLES ; 0 ; Signed Integer ; +; AV_SETUP_WAIT_CYCLES ; 0 ; Signed Integer ; +; AV_DATA_HOLD_CYCLES ; 0 ; Signed Integer ; +; USE_READDATAVALID ; 0 ; Signed Integer ; +; USE_WAITREQUEST ; 0 ; Signed Integer ; +; USE_READRESPONSE ; 0 ; Signed Integer ; +; USE_WRITERESPONSE ; 0 ; Signed Integer ; +; AV_SYMBOLS_PER_WORD ; 4 ; Signed Integer ; +; AV_ADDRESS_SYMBOLS ; 0 ; Signed Integer ; +; AV_BURSTCOUNT_SYMBOLS ; 0 ; Signed Integer ; +; BITS_PER_WORD ; 2 ; Signed Integer ; +; UAV_ADDRESS_W ; 19 ; Signed Integer ; +; UAV_BURSTCOUNT_W ; 3 ; Signed Integer ; +; UAV_DATA_W ; 32 ; Signed Integer ; +; AV_CONSTANT_BURST_BEHAVIOR ; 0 ; Signed Integer ; +; UAV_CONSTANT_BURST_BEHAVIOR ; 0 ; Signed Integer ; +; CHIPSELECT_THROUGH_READLATENCY ; 0 ; Signed Integer ; +; USE_UAV_CLKEN ; 0 ; Signed Integer ; +; AV_REQUIRE_UNALIGNED_ADDRESSES ; 0 ; Signed Integer ; ++--------------------------------+-------+------------------------------------------------------------------------------+ +Note: In order to hide this table in the UI and the text report file, please set the "Show Parameter Settings in Synthesis Report" option in "Analysis and Synthesis Settings -> More Settings" to "Off". + + ++----------------------------------------------------------------------------------------------------------------------------+ +; Parameter Settings for User Entity Instance: nios_system:NiosII|altera_merlin_slave_translator:push_switches_s1_translator ; ++--------------------------------+-------+-----------------------------------------------------------------------------------+ +; Parameter Name ; Value ; Type ; ++--------------------------------+-------+-----------------------------------------------------------------------------------+ +; AV_ADDRESS_W ; 2 ; Signed Integer ; +; AV_DATA_W ; 32 ; Signed Integer ; +; AV_BURSTCOUNT_W ; 1 ; Signed Integer ; +; AV_BYTEENABLE_W ; 1 ; Signed Integer ; +; UAV_BYTEENABLE_W ; 4 ; Signed Integer ; +; AV_READLATENCY ; 0 ; Signed Integer ; +; AV_READ_WAIT_CYCLES ; 1 ; Signed Integer ; +; AV_WRITE_WAIT_CYCLES ; 0 ; Signed Integer ; +; AV_SETUP_WAIT_CYCLES ; 0 ; Signed Integer ; +; AV_DATA_HOLD_CYCLES ; 0 ; Signed Integer ; +; USE_READDATAVALID ; 0 ; Signed Integer ; +; USE_WAITREQUEST ; 0 ; Signed Integer ; +; USE_READRESPONSE ; 0 ; Signed Integer ; +; USE_WRITERESPONSE ; 0 ; Signed Integer ; +; AV_SYMBOLS_PER_WORD ; 4 ; Signed Integer ; +; AV_ADDRESS_SYMBOLS ; 0 ; Signed Integer ; +; AV_BURSTCOUNT_SYMBOLS ; 0 ; Signed Integer ; +; BITS_PER_WORD ; 2 ; Signed Integer ; +; UAV_ADDRESS_W ; 19 ; Signed Integer ; +; UAV_BURSTCOUNT_W ; 3 ; Signed Integer ; +; UAV_DATA_W ; 32 ; Signed Integer ; +; AV_CONSTANT_BURST_BEHAVIOR ; 0 ; Signed Integer ; +; UAV_CONSTANT_BURST_BEHAVIOR ; 0 ; Signed Integer ; +; CHIPSELECT_THROUGH_READLATENCY ; 0 ; Signed Integer ; +; USE_UAV_CLKEN ; 0 ; Signed Integer ; +; AV_REQUIRE_UNALIGNED_ADDRESSES ; 0 ; Signed Integer ; ++--------------------------------+-------+-----------------------------------------------------------------------------------+ +Note: In order to hide this table in the UI and the text report file, please set the "Show Parameter Settings in Synthesis Report" option in "Analysis and Synthesis Settings -> More Settings" to "Off". + + ++-------------------------------------------------------------------------------------------------------------------+ +; Parameter Settings for User Entity Instance: nios_system:NiosII|altera_merlin_slave_translator:hex0_s1_translator ; ++--------------------------------+-------+--------------------------------------------------------------------------+ +; Parameter Name ; Value ; Type ; ++--------------------------------+-------+--------------------------------------------------------------------------+ +; AV_ADDRESS_W ; 2 ; Signed Integer ; +; AV_DATA_W ; 32 ; Signed Integer ; +; AV_BURSTCOUNT_W ; 1 ; Signed Integer ; +; AV_BYTEENABLE_W ; 1 ; Signed Integer ; +; UAV_BYTEENABLE_W ; 4 ; Signed Integer ; +; AV_READLATENCY ; 0 ; Signed Integer ; +; AV_READ_WAIT_CYCLES ; 1 ; Signed Integer ; +; AV_WRITE_WAIT_CYCLES ; 0 ; Signed Integer ; +; AV_SETUP_WAIT_CYCLES ; 0 ; Signed Integer ; +; AV_DATA_HOLD_CYCLES ; 0 ; Signed Integer ; +; USE_READDATAVALID ; 0 ; Signed Integer ; +; USE_WAITREQUEST ; 0 ; Signed Integer ; +; USE_READRESPONSE ; 0 ; Signed Integer ; +; USE_WRITERESPONSE ; 0 ; Signed Integer ; +; AV_SYMBOLS_PER_WORD ; 4 ; Signed Integer ; +; AV_ADDRESS_SYMBOLS ; 0 ; Signed Integer ; +; AV_BURSTCOUNT_SYMBOLS ; 0 ; Signed Integer ; +; BITS_PER_WORD ; 2 ; Signed Integer ; +; UAV_ADDRESS_W ; 19 ; Signed Integer ; +; UAV_BURSTCOUNT_W ; 3 ; Signed Integer ; +; UAV_DATA_W ; 32 ; Signed Integer ; +; AV_CONSTANT_BURST_BEHAVIOR ; 0 ; Signed Integer ; +; UAV_CONSTANT_BURST_BEHAVIOR ; 0 ; Signed Integer ; +; CHIPSELECT_THROUGH_READLATENCY ; 0 ; Signed Integer ; +; USE_UAV_CLKEN ; 0 ; Signed Integer ; +; AV_REQUIRE_UNALIGNED_ADDRESSES ; 0 ; Signed Integer ; ++--------------------------------+-------+--------------------------------------------------------------------------+ +Note: In order to hide this table in the UI and the text report file, please set the "Show Parameter Settings in Synthesis Report" option in "Analysis and Synthesis Settings -> More Settings" to "Off". + + ++-------------------------------------------------------------------------------------------------------------------+ +; Parameter Settings for User Entity Instance: nios_system:NiosII|altera_merlin_slave_translator:hex1_s1_translator ; ++--------------------------------+-------+--------------------------------------------------------------------------+ +; Parameter Name ; Value ; Type ; ++--------------------------------+-------+--------------------------------------------------------------------------+ +; AV_ADDRESS_W ; 2 ; Signed Integer ; +; AV_DATA_W ; 32 ; Signed Integer ; +; AV_BURSTCOUNT_W ; 1 ; Signed Integer ; +; AV_BYTEENABLE_W ; 1 ; Signed Integer ; +; UAV_BYTEENABLE_W ; 4 ; Signed Integer ; +; AV_READLATENCY ; 0 ; Signed Integer ; +; AV_READ_WAIT_CYCLES ; 1 ; Signed Integer ; +; AV_WRITE_WAIT_CYCLES ; 0 ; Signed Integer ; +; AV_SETUP_WAIT_CYCLES ; 0 ; Signed Integer ; +; AV_DATA_HOLD_CYCLES ; 0 ; Signed Integer ; +; USE_READDATAVALID ; 0 ; Signed Integer ; +; USE_WAITREQUEST ; 0 ; Signed Integer ; +; USE_READRESPONSE ; 0 ; Signed Integer ; +; USE_WRITERESPONSE ; 0 ; Signed Integer ; +; AV_SYMBOLS_PER_WORD ; 4 ; Signed Integer ; +; AV_ADDRESS_SYMBOLS ; 0 ; Signed Integer ; +; AV_BURSTCOUNT_SYMBOLS ; 0 ; Signed Integer ; +; BITS_PER_WORD ; 2 ; Signed Integer ; +; UAV_ADDRESS_W ; 19 ; Signed Integer ; +; UAV_BURSTCOUNT_W ; 3 ; Signed Integer ; +; UAV_DATA_W ; 32 ; Signed Integer ; +; AV_CONSTANT_BURST_BEHAVIOR ; 0 ; Signed Integer ; +; UAV_CONSTANT_BURST_BEHAVIOR ; 0 ; Signed Integer ; +; CHIPSELECT_THROUGH_READLATENCY ; 0 ; Signed Integer ; +; USE_UAV_CLKEN ; 0 ; Signed Integer ; +; AV_REQUIRE_UNALIGNED_ADDRESSES ; 0 ; Signed Integer ; ++--------------------------------+-------+--------------------------------------------------------------------------+ +Note: In order to hide this table in the UI and the text report file, please set the "Show Parameter Settings in Synthesis Report" option in "Analysis and Synthesis Settings -> More Settings" to "Off". + + ++-------------------------------------------------------------------------------------------------------------------+ +; Parameter Settings for User Entity Instance: nios_system:NiosII|altera_merlin_slave_translator:hex2_s1_translator ; ++--------------------------------+-------+--------------------------------------------------------------------------+ +; Parameter Name ; Value ; Type ; ++--------------------------------+-------+--------------------------------------------------------------------------+ +; AV_ADDRESS_W ; 2 ; Signed Integer ; +; AV_DATA_W ; 32 ; Signed Integer ; +; AV_BURSTCOUNT_W ; 1 ; Signed Integer ; +; AV_BYTEENABLE_W ; 1 ; Signed Integer ; +; UAV_BYTEENABLE_W ; 4 ; Signed Integer ; +; AV_READLATENCY ; 0 ; Signed Integer ; +; AV_READ_WAIT_CYCLES ; 1 ; Signed Integer ; +; AV_WRITE_WAIT_CYCLES ; 0 ; Signed Integer ; +; AV_SETUP_WAIT_CYCLES ; 0 ; Signed Integer ; +; AV_DATA_HOLD_CYCLES ; 0 ; Signed Integer ; +; USE_READDATAVALID ; 0 ; Signed Integer ; +; USE_WAITREQUEST ; 0 ; Signed Integer ; +; USE_READRESPONSE ; 0 ; Signed Integer ; +; USE_WRITERESPONSE ; 0 ; Signed Integer ; +; AV_SYMBOLS_PER_WORD ; 4 ; Signed Integer ; +; AV_ADDRESS_SYMBOLS ; 0 ; Signed Integer ; +; AV_BURSTCOUNT_SYMBOLS ; 0 ; Signed Integer ; +; BITS_PER_WORD ; 2 ; Signed Integer ; +; UAV_ADDRESS_W ; 19 ; Signed Integer ; +; UAV_BURSTCOUNT_W ; 3 ; Signed Integer ; +; UAV_DATA_W ; 32 ; Signed Integer ; +; AV_CONSTANT_BURST_BEHAVIOR ; 0 ; Signed Integer ; +; UAV_CONSTANT_BURST_BEHAVIOR ; 0 ; Signed Integer ; +; CHIPSELECT_THROUGH_READLATENCY ; 0 ; Signed Integer ; +; USE_UAV_CLKEN ; 0 ; Signed Integer ; +; AV_REQUIRE_UNALIGNED_ADDRESSES ; 0 ; Signed Integer ; ++--------------------------------+-------+--------------------------------------------------------------------------+ +Note: In order to hide this table in the UI and the text report file, please set the "Show Parameter Settings in Synthesis Report" option in "Analysis and Synthesis Settings -> More Settings" to "Off". + + ++-------------------------------------------------------------------------------------------------------------------+ +; Parameter Settings for User Entity Instance: nios_system:NiosII|altera_merlin_slave_translator:hex3_s1_translator ; ++--------------------------------+-------+--------------------------------------------------------------------------+ +; Parameter Name ; Value ; Type ; ++--------------------------------+-------+--------------------------------------------------------------------------+ +; AV_ADDRESS_W ; 2 ; Signed Integer ; +; AV_DATA_W ; 32 ; Signed Integer ; +; AV_BURSTCOUNT_W ; 1 ; Signed Integer ; +; AV_BYTEENABLE_W ; 1 ; Signed Integer ; +; UAV_BYTEENABLE_W ; 4 ; Signed Integer ; +; AV_READLATENCY ; 0 ; Signed Integer ; +; AV_READ_WAIT_CYCLES ; 1 ; Signed Integer ; +; AV_WRITE_WAIT_CYCLES ; 0 ; Signed Integer ; +; AV_SETUP_WAIT_CYCLES ; 0 ; Signed Integer ; +; AV_DATA_HOLD_CYCLES ; 0 ; Signed Integer ; +; USE_READDATAVALID ; 0 ; Signed Integer ; +; USE_WAITREQUEST ; 0 ; Signed Integer ; +; USE_READRESPONSE ; 0 ; Signed Integer ; +; USE_WRITERESPONSE ; 0 ; Signed Integer ; +; AV_SYMBOLS_PER_WORD ; 4 ; Signed Integer ; +; AV_ADDRESS_SYMBOLS ; 0 ; Signed Integer ; +; AV_BURSTCOUNT_SYMBOLS ; 0 ; Signed Integer ; +; BITS_PER_WORD ; 2 ; Signed Integer ; +; UAV_ADDRESS_W ; 19 ; Signed Integer ; +; UAV_BURSTCOUNT_W ; 3 ; Signed Integer ; +; UAV_DATA_W ; 32 ; Signed Integer ; +; AV_CONSTANT_BURST_BEHAVIOR ; 0 ; Signed Integer ; +; UAV_CONSTANT_BURST_BEHAVIOR ; 0 ; Signed Integer ; +; CHIPSELECT_THROUGH_READLATENCY ; 0 ; Signed Integer ; +; USE_UAV_CLKEN ; 0 ; Signed Integer ; +; AV_REQUIRE_UNALIGNED_ADDRESSES ; 0 ; Signed Integer ; ++--------------------------------+-------+--------------------------------------------------------------------------+ +Note: In order to hide this table in the UI and the text report file, please set the "Show Parameter Settings in Synthesis Report" option in "Analysis and Synthesis Settings -> More Settings" to "Off". + + ++-------------------------------------------------------------------------------------------------------------------+ +; Parameter Settings for User Entity Instance: nios_system:NiosII|altera_merlin_slave_translator:hex4_s1_translator ; ++--------------------------------+-------+--------------------------------------------------------------------------+ +; Parameter Name ; Value ; Type ; ++--------------------------------+-------+--------------------------------------------------------------------------+ +; AV_ADDRESS_W ; 2 ; Signed Integer ; +; AV_DATA_W ; 32 ; Signed Integer ; +; AV_BURSTCOUNT_W ; 1 ; Signed Integer ; +; AV_BYTEENABLE_W ; 1 ; Signed Integer ; +; UAV_BYTEENABLE_W ; 4 ; Signed Integer ; +; AV_READLATENCY ; 0 ; Signed Integer ; +; AV_READ_WAIT_CYCLES ; 1 ; Signed Integer ; +; AV_WRITE_WAIT_CYCLES ; 0 ; Signed Integer ; +; AV_SETUP_WAIT_CYCLES ; 0 ; Signed Integer ; +; AV_DATA_HOLD_CYCLES ; 0 ; Signed Integer ; +; USE_READDATAVALID ; 0 ; Signed Integer ; +; USE_WAITREQUEST ; 0 ; Signed Integer ; +; USE_READRESPONSE ; 0 ; Signed Integer ; +; USE_WRITERESPONSE ; 0 ; Signed Integer ; +; AV_SYMBOLS_PER_WORD ; 4 ; Signed Integer ; +; AV_ADDRESS_SYMBOLS ; 0 ; Signed Integer ; +; AV_BURSTCOUNT_SYMBOLS ; 0 ; Signed Integer ; +; BITS_PER_WORD ; 2 ; Signed Integer ; +; UAV_ADDRESS_W ; 19 ; Signed Integer ; +; UAV_BURSTCOUNT_W ; 3 ; Signed Integer ; +; UAV_DATA_W ; 32 ; Signed Integer ; +; AV_CONSTANT_BURST_BEHAVIOR ; 0 ; Signed Integer ; +; UAV_CONSTANT_BURST_BEHAVIOR ; 0 ; Signed Integer ; +; CHIPSELECT_THROUGH_READLATENCY ; 0 ; Signed Integer ; +; USE_UAV_CLKEN ; 0 ; Signed Integer ; +; AV_REQUIRE_UNALIGNED_ADDRESSES ; 0 ; Signed Integer ; ++--------------------------------+-------+--------------------------------------------------------------------------+ +Note: In order to hide this table in the UI and the text report file, please set the "Show Parameter Settings in Synthesis Report" option in "Analysis and Synthesis Settings -> More Settings" to "Off". + + ++-------------------------------------------------------------------------------------------------------------------+ +; Parameter Settings for User Entity Instance: nios_system:NiosII|altera_merlin_slave_translator:hex5_s1_translator ; ++--------------------------------+-------+--------------------------------------------------------------------------+ +; Parameter Name ; Value ; Type ; ++--------------------------------+-------+--------------------------------------------------------------------------+ +; AV_ADDRESS_W ; 2 ; Signed Integer ; +; AV_DATA_W ; 32 ; Signed Integer ; +; AV_BURSTCOUNT_W ; 1 ; Signed Integer ; +; AV_BYTEENABLE_W ; 1 ; Signed Integer ; +; UAV_BYTEENABLE_W ; 4 ; Signed Integer ; +; AV_READLATENCY ; 0 ; Signed Integer ; +; AV_READ_WAIT_CYCLES ; 1 ; Signed Integer ; +; AV_WRITE_WAIT_CYCLES ; 0 ; Signed Integer ; +; AV_SETUP_WAIT_CYCLES ; 0 ; Signed Integer ; +; AV_DATA_HOLD_CYCLES ; 0 ; Signed Integer ; +; USE_READDATAVALID ; 0 ; Signed Integer ; +; USE_WAITREQUEST ; 0 ; Signed Integer ; +; USE_READRESPONSE ; 0 ; Signed Integer ; +; USE_WRITERESPONSE ; 0 ; Signed Integer ; +; AV_SYMBOLS_PER_WORD ; 4 ; Signed Integer ; +; AV_ADDRESS_SYMBOLS ; 0 ; Signed Integer ; +; AV_BURSTCOUNT_SYMBOLS ; 0 ; Signed Integer ; +; BITS_PER_WORD ; 2 ; Signed Integer ; +; UAV_ADDRESS_W ; 19 ; Signed Integer ; +; UAV_BURSTCOUNT_W ; 3 ; Signed Integer ; +; UAV_DATA_W ; 32 ; Signed Integer ; +; AV_CONSTANT_BURST_BEHAVIOR ; 0 ; Signed Integer ; +; UAV_CONSTANT_BURST_BEHAVIOR ; 0 ; Signed Integer ; +; CHIPSELECT_THROUGH_READLATENCY ; 0 ; Signed Integer ; +; USE_UAV_CLKEN ; 0 ; Signed Integer ; +; AV_REQUIRE_UNALIGNED_ADDRESSES ; 0 ; Signed Integer ; ++--------------------------------+-------+--------------------------------------------------------------------------+ +Note: In order to hide this table in the UI and the text report file, please set the "Show Parameter Settings in Synthesis Report" option in "Analysis and Synthesis Settings -> More Settings" to "Off". + + ++-------------------------------------------------------------------------------------------------------------------+ +; Parameter Settings for User Entity Instance: nios_system:NiosII|altera_merlin_slave_translator:hex6_s1_translator ; ++--------------------------------+-------+--------------------------------------------------------------------------+ +; Parameter Name ; Value ; Type ; ++--------------------------------+-------+--------------------------------------------------------------------------+ +; AV_ADDRESS_W ; 2 ; Signed Integer ; +; AV_DATA_W ; 32 ; Signed Integer ; +; AV_BURSTCOUNT_W ; 1 ; Signed Integer ; +; AV_BYTEENABLE_W ; 1 ; Signed Integer ; +; UAV_BYTEENABLE_W ; 4 ; Signed Integer ; +; AV_READLATENCY ; 0 ; Signed Integer ; +; AV_READ_WAIT_CYCLES ; 1 ; Signed Integer ; +; AV_WRITE_WAIT_CYCLES ; 0 ; Signed Integer ; +; AV_SETUP_WAIT_CYCLES ; 0 ; Signed Integer ; +; AV_DATA_HOLD_CYCLES ; 0 ; Signed Integer ; +; USE_READDATAVALID ; 0 ; Signed Integer ; +; USE_WAITREQUEST ; 0 ; Signed Integer ; +; USE_READRESPONSE ; 0 ; Signed Integer ; +; USE_WRITERESPONSE ; 0 ; Signed Integer ; +; AV_SYMBOLS_PER_WORD ; 4 ; Signed Integer ; +; AV_ADDRESS_SYMBOLS ; 0 ; Signed Integer ; +; AV_BURSTCOUNT_SYMBOLS ; 0 ; Signed Integer ; +; BITS_PER_WORD ; 2 ; Signed Integer ; +; UAV_ADDRESS_W ; 19 ; Signed Integer ; +; UAV_BURSTCOUNT_W ; 3 ; Signed Integer ; +; UAV_DATA_W ; 32 ; Signed Integer ; +; AV_CONSTANT_BURST_BEHAVIOR ; 0 ; Signed Integer ; +; UAV_CONSTANT_BURST_BEHAVIOR ; 0 ; Signed Integer ; +; CHIPSELECT_THROUGH_READLATENCY ; 0 ; Signed Integer ; +; USE_UAV_CLKEN ; 0 ; Signed Integer ; +; AV_REQUIRE_UNALIGNED_ADDRESSES ; 0 ; Signed Integer ; ++--------------------------------+-------+--------------------------------------------------------------------------+ +Note: In order to hide this table in the UI and the text report file, please set the "Show Parameter Settings in Synthesis Report" option in "Analysis and Synthesis Settings -> More Settings" to "Off". + + ++-------------------------------------------------------------------------------------------------------------------+ +; Parameter Settings for User Entity Instance: nios_system:NiosII|altera_merlin_slave_translator:hex7_s1_translator ; ++--------------------------------+-------+--------------------------------------------------------------------------+ +; Parameter Name ; Value ; Type ; ++--------------------------------+-------+--------------------------------------------------------------------------+ +; AV_ADDRESS_W ; 2 ; Signed Integer ; +; AV_DATA_W ; 32 ; Signed Integer ; +; AV_BURSTCOUNT_W ; 1 ; Signed Integer ; +; AV_BYTEENABLE_W ; 1 ; Signed Integer ; +; UAV_BYTEENABLE_W ; 4 ; Signed Integer ; +; AV_READLATENCY ; 0 ; Signed Integer ; +; AV_READ_WAIT_CYCLES ; 1 ; Signed Integer ; +; AV_WRITE_WAIT_CYCLES ; 0 ; Signed Integer ; +; AV_SETUP_WAIT_CYCLES ; 0 ; Signed Integer ; +; AV_DATA_HOLD_CYCLES ; 0 ; Signed Integer ; +; USE_READDATAVALID ; 0 ; Signed Integer ; +; USE_WAITREQUEST ; 0 ; Signed Integer ; +; USE_READRESPONSE ; 0 ; Signed Integer ; +; USE_WRITERESPONSE ; 0 ; Signed Integer ; +; AV_SYMBOLS_PER_WORD ; 4 ; Signed Integer ; +; AV_ADDRESS_SYMBOLS ; 0 ; Signed Integer ; +; AV_BURSTCOUNT_SYMBOLS ; 0 ; Signed Integer ; +; BITS_PER_WORD ; 2 ; Signed Integer ; +; UAV_ADDRESS_W ; 19 ; Signed Integer ; +; UAV_BURSTCOUNT_W ; 3 ; Signed Integer ; +; UAV_DATA_W ; 32 ; Signed Integer ; +; AV_CONSTANT_BURST_BEHAVIOR ; 0 ; Signed Integer ; +; UAV_CONSTANT_BURST_BEHAVIOR ; 0 ; Signed Integer ; +; CHIPSELECT_THROUGH_READLATENCY ; 0 ; Signed Integer ; +; USE_UAV_CLKEN ; 0 ; Signed Integer ; +; AV_REQUIRE_UNALIGNED_ADDRESSES ; 0 ; Signed Integer ; ++--------------------------------+-------+--------------------------------------------------------------------------+ +Note: In order to hide this table in the UI and the text report file, please set the "Show Parameter Settings in Synthesis Report" option in "Analysis and Synthesis Settings -> More Settings" to "Off". + + ++-------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Settings for User Entity Instance: nios_system:NiosII|altera_merlin_slave_translator:lcd_16207_0_control_slave_translator ; ++--------------------------------+-------+--------------------------------------------------------------------------------------------+ +; Parameter Name ; Value ; Type ; ++--------------------------------+-------+--------------------------------------------------------------------------------------------+ +; AV_ADDRESS_W ; 2 ; Signed Integer ; +; AV_DATA_W ; 8 ; Signed Integer ; +; AV_BURSTCOUNT_W ; 1 ; Signed Integer ; +; AV_BYTEENABLE_W ; 1 ; Signed Integer ; +; UAV_BYTEENABLE_W ; 4 ; Signed Integer ; +; AV_READLATENCY ; 0 ; Signed Integer ; +; AV_READ_WAIT_CYCLES ; 13 ; Signed Integer ; +; AV_WRITE_WAIT_CYCLES ; 13 ; Signed Integer ; +; AV_SETUP_WAIT_CYCLES ; 13 ; Signed Integer ; +; AV_DATA_HOLD_CYCLES ; 13 ; Signed Integer ; +; USE_READDATAVALID ; 0 ; Signed Integer ; +; USE_WAITREQUEST ; 0 ; Signed Integer ; +; USE_READRESPONSE ; 0 ; Signed Integer ; +; USE_WRITERESPONSE ; 0 ; Signed Integer ; +; AV_SYMBOLS_PER_WORD ; 4 ; Signed Integer ; +; AV_ADDRESS_SYMBOLS ; 0 ; Signed Integer ; +; AV_BURSTCOUNT_SYMBOLS ; 0 ; Signed Integer ; +; BITS_PER_WORD ; 2 ; Signed Integer ; +; UAV_ADDRESS_W ; 19 ; Signed Integer ; +; UAV_BURSTCOUNT_W ; 3 ; Signed Integer ; +; UAV_DATA_W ; 32 ; Signed Integer ; +; AV_CONSTANT_BURST_BEHAVIOR ; 0 ; Signed Integer ; +; UAV_CONSTANT_BURST_BEHAVIOR ; 0 ; Signed Integer ; +; CHIPSELECT_THROUGH_READLATENCY ; 0 ; Signed Integer ; +; USE_UAV_CLKEN ; 0 ; Signed Integer ; +; AV_REQUIRE_UNALIGNED_ADDRESSES ; 0 ; Signed Integer ; ++--------------------------------+-------+--------------------------------------------------------------------------------------------+ +Note: In order to hide this table in the UI and the text report file, please set the "Show Parameter Settings in Synthesis Report" option in "Analysis and Synthesis Settings -> More Settings" to "Off". + + ++---------------------------------------------------------------------------------------------------------------------+ +; Parameter Settings for User Entity Instance: nios_system:NiosII|altera_merlin_slave_translator:lcd_on_s1_translator ; ++--------------------------------+-------+----------------------------------------------------------------------------+ +; Parameter Name ; Value ; Type ; ++--------------------------------+-------+----------------------------------------------------------------------------+ +; AV_ADDRESS_W ; 2 ; Signed Integer ; +; AV_DATA_W ; 32 ; Signed Integer ; +; AV_BURSTCOUNT_W ; 1 ; Signed Integer ; +; AV_BYTEENABLE_W ; 1 ; Signed Integer ; +; UAV_BYTEENABLE_W ; 4 ; Signed Integer ; +; AV_READLATENCY ; 0 ; Signed Integer ; +; AV_READ_WAIT_CYCLES ; 1 ; Signed Integer ; +; AV_WRITE_WAIT_CYCLES ; 0 ; Signed Integer ; +; AV_SETUP_WAIT_CYCLES ; 0 ; Signed Integer ; +; AV_DATA_HOLD_CYCLES ; 0 ; Signed Integer ; +; USE_READDATAVALID ; 0 ; Signed Integer ; +; USE_WAITREQUEST ; 0 ; Signed Integer ; +; USE_READRESPONSE ; 0 ; Signed Integer ; +; USE_WRITERESPONSE ; 0 ; Signed Integer ; +; AV_SYMBOLS_PER_WORD ; 4 ; Signed Integer ; +; AV_ADDRESS_SYMBOLS ; 0 ; Signed Integer ; +; AV_BURSTCOUNT_SYMBOLS ; 0 ; Signed Integer ; +; BITS_PER_WORD ; 2 ; Signed Integer ; +; UAV_ADDRESS_W ; 19 ; Signed Integer ; +; UAV_BURSTCOUNT_W ; 3 ; Signed Integer ; +; UAV_DATA_W ; 32 ; Signed Integer ; +; AV_CONSTANT_BURST_BEHAVIOR ; 0 ; Signed Integer ; +; UAV_CONSTANT_BURST_BEHAVIOR ; 0 ; Signed Integer ; +; CHIPSELECT_THROUGH_READLATENCY ; 0 ; Signed Integer ; +; USE_UAV_CLKEN ; 0 ; Signed Integer ; +; AV_REQUIRE_UNALIGNED_ADDRESSES ; 0 ; Signed Integer ; ++--------------------------------+-------+----------------------------------------------------------------------------+ +Note: In order to hide this table in the UI and the text report file, please set the "Show Parameter Settings in Synthesis Report" option in "Analysis and Synthesis Settings -> More Settings" to "Off". + + ++-----------------------------------------------------------------------------------------------------------------------+ +; Parameter Settings for User Entity Instance: nios_system:NiosII|altera_merlin_slave_translator:lcd_blon_s1_translator ; ++--------------------------------+-------+------------------------------------------------------------------------------+ +; Parameter Name ; Value ; Type ; ++--------------------------------+-------+------------------------------------------------------------------------------+ +; AV_ADDRESS_W ; 2 ; Signed Integer ; +; AV_DATA_W ; 32 ; Signed Integer ; +; AV_BURSTCOUNT_W ; 1 ; Signed Integer ; +; AV_BYTEENABLE_W ; 1 ; Signed Integer ; +; UAV_BYTEENABLE_W ; 4 ; Signed Integer ; +; AV_READLATENCY ; 0 ; Signed Integer ; +; AV_READ_WAIT_CYCLES ; 1 ; Signed Integer ; +; AV_WRITE_WAIT_CYCLES ; 0 ; Signed Integer ; +; AV_SETUP_WAIT_CYCLES ; 0 ; Signed Integer ; +; AV_DATA_HOLD_CYCLES ; 0 ; Signed Integer ; +; USE_READDATAVALID ; 0 ; Signed Integer ; +; USE_WAITREQUEST ; 0 ; Signed Integer ; +; USE_READRESPONSE ; 0 ; Signed Integer ; +; USE_WRITERESPONSE ; 0 ; Signed Integer ; +; AV_SYMBOLS_PER_WORD ; 4 ; Signed Integer ; +; AV_ADDRESS_SYMBOLS ; 0 ; Signed Integer ; +; AV_BURSTCOUNT_SYMBOLS ; 0 ; Signed Integer ; +; BITS_PER_WORD ; 2 ; Signed Integer ; +; UAV_ADDRESS_W ; 19 ; Signed Integer ; +; UAV_BURSTCOUNT_W ; 3 ; Signed Integer ; +; UAV_DATA_W ; 32 ; Signed Integer ; +; AV_CONSTANT_BURST_BEHAVIOR ; 0 ; Signed Integer ; +; UAV_CONSTANT_BURST_BEHAVIOR ; 0 ; Signed Integer ; +; CHIPSELECT_THROUGH_READLATENCY ; 0 ; Signed Integer ; +; USE_UAV_CLKEN ; 0 ; Signed Integer ; +; AV_REQUIRE_UNALIGNED_ADDRESSES ; 0 ; Signed Integer ; ++--------------------------------+-------+------------------------------------------------------------------------------+ +Note: In order to hide this table in the UI and the text report file, please set the "Show Parameter Settings in Synthesis Report" option in "Analysis and Synthesis Settings -> More Settings" to "Off". + + ++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Settings for User Entity Instance: nios_system:NiosII|altera_merlin_master_agent:nios2_processor_instruction_master_translator_avalon_universal_master_0_agent ; ++---------------------------+-------+--------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Name ; Value ; Type ; ++---------------------------+-------+--------------------------------------------------------------------------------------------------------------------------------------+ +; PKT_QOS_H ; 75 ; Signed Integer ; +; PKT_QOS_L ; 75 ; Signed Integer ; +; PKT_DATA_SIDEBAND_H ; 73 ; Signed Integer ; +; PKT_DATA_SIDEBAND_L ; 73 ; Signed Integer ; +; PKT_ADDR_SIDEBAND_H ; 72 ; Signed Integer ; +; PKT_ADDR_SIDEBAND_L ; 72 ; Signed Integer ; +; PKT_CACHE_H ; 93 ; Signed Integer ; +; PKT_CACHE_L ; 90 ; Signed Integer ; +; PKT_THREAD_ID_H ; 86 ; Signed Integer ; +; PKT_THREAD_ID_L ; 86 ; Signed Integer ; +; PKT_BEGIN_BURST ; 74 ; Signed Integer ; +; PKT_PROTECTION_H ; 89 ; Signed Integer ; +; PKT_PROTECTION_L ; 87 ; Signed Integer ; +; PKT_BURSTWRAP_H ; 66 ; Signed Integer ; +; PKT_BURSTWRAP_L ; 64 ; Signed Integer ; +; PKT_BYTE_CNT_H ; 63 ; Signed Integer ; +; PKT_BYTE_CNT_L ; 61 ; Signed Integer ; +; PKT_ADDR_H ; 54 ; Signed Integer ; +; PKT_ADDR_L ; 36 ; Signed Integer ; +; PKT_BURST_SIZE_H ; 69 ; Signed Integer ; +; PKT_BURST_SIZE_L ; 67 ; Signed Integer ; +; PKT_BURST_TYPE_H ; 71 ; Signed Integer ; +; PKT_BURST_TYPE_L ; 70 ; Signed Integer ; +; PKT_TRANS_EXCLUSIVE ; 60 ; Signed Integer ; +; PKT_TRANS_LOCK ; 59 ; Signed Integer ; +; PKT_TRANS_COMPRESSED_READ ; 55 ; Signed Integer ; +; PKT_TRANS_POSTED ; 56 ; Signed Integer ; +; PKT_TRANS_WRITE ; 57 ; Signed Integer ; +; PKT_TRANS_READ ; 58 ; Signed Integer ; +; PKT_DATA_H ; 31 ; Signed Integer ; +; PKT_DATA_L ; 0 ; Signed Integer ; +; PKT_BYTEEN_H ; 35 ; Signed Integer ; +; PKT_BYTEEN_L ; 32 ; Signed Integer ; +; PKT_SRC_ID_H ; 80 ; Signed Integer ; +; PKT_SRC_ID_L ; 76 ; Signed Integer ; +; PKT_DEST_ID_H ; 85 ; Signed Integer ; +; PKT_DEST_ID_L ; 81 ; Signed Integer ; +; PKT_RESPONSE_STATUS_L ; 94 ; Signed Integer ; +; PKT_RESPONSE_STATUS_H ; 95 ; Signed Integer ; +; ST_DATA_W ; 96 ; Signed Integer ; +; ST_CHANNEL_W ; 18 ; Signed Integer ; +; AV_BURSTCOUNT_W ; 3 ; Signed Integer ; +; ID ; 1 ; Signed Integer ; +; SUPPRESS_0_BYTEEN_RSP ; 0 ; Signed Integer ; +; BURSTWRAP_VALUE ; 3 ; Signed Integer ; +; CACHE_VALUE ; 0 ; Signed Integer ; +; SECURE_ACCESS_BIT ; 1 ; Signed Integer ; +; USE_READRESPONSE ; 0 ; Signed Integer ; +; USE_WRITERESPONSE ; 0 ; Signed Integer ; +; PKT_BURSTWRAP_W ; 3 ; Signed Integer ; +; PKT_BYTE_CNT_W ; 3 ; Signed Integer ; +; PKT_PROTECTION_W ; 3 ; Signed Integer ; +; PKT_ADDR_W ; 19 ; Signed Integer ; +; PKT_DATA_W ; 32 ; Signed Integer ; +; PKT_BYTEEN_W ; 4 ; Signed Integer ; +; PKT_SRC_ID_W ; 5 ; Signed Integer ; +; PKT_DEST_ID_W ; 5 ; Signed Integer ; ++---------------------------+-------+--------------------------------------------------------------------------------------------------------------------------------------+ +Note: In order to hide this table in the UI and the text report file, please set the "Show Parameter Settings in Synthesis Report" option in "Analysis and Synthesis Settings -> More Settings" to "Off". + + ++-------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Settings for User Entity Instance: nios_system:NiosII|altera_merlin_master_agent:nios2_processor_data_master_translator_avalon_universal_master_0_agent ; ++---------------------------+-------+-------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Name ; Value ; Type ; ++---------------------------+-------+-------------------------------------------------------------------------------------------------------------------------------+ +; PKT_QOS_H ; 75 ; Signed Integer ; +; PKT_QOS_L ; 75 ; Signed Integer ; +; PKT_DATA_SIDEBAND_H ; 73 ; Signed Integer ; +; PKT_DATA_SIDEBAND_L ; 73 ; Signed Integer ; +; PKT_ADDR_SIDEBAND_H ; 72 ; Signed Integer ; +; PKT_ADDR_SIDEBAND_L ; 72 ; Signed Integer ; +; PKT_CACHE_H ; 93 ; Signed Integer ; +; PKT_CACHE_L ; 90 ; Signed Integer ; +; PKT_THREAD_ID_H ; 86 ; Signed Integer ; +; PKT_THREAD_ID_L ; 86 ; Signed Integer ; +; PKT_BEGIN_BURST ; 74 ; Signed Integer ; +; PKT_PROTECTION_H ; 89 ; Signed Integer ; +; PKT_PROTECTION_L ; 87 ; Signed Integer ; +; PKT_BURSTWRAP_H ; 66 ; Signed Integer ; +; PKT_BURSTWRAP_L ; 64 ; Signed Integer ; +; PKT_BYTE_CNT_H ; 63 ; Signed Integer ; +; PKT_BYTE_CNT_L ; 61 ; Signed Integer ; +; PKT_ADDR_H ; 54 ; Signed Integer ; +; PKT_ADDR_L ; 36 ; Signed Integer ; +; PKT_BURST_SIZE_H ; 69 ; Signed Integer ; +; PKT_BURST_SIZE_L ; 67 ; Signed Integer ; +; PKT_BURST_TYPE_H ; 71 ; Signed Integer ; +; PKT_BURST_TYPE_L ; 70 ; Signed Integer ; +; PKT_TRANS_EXCLUSIVE ; 60 ; Signed Integer ; +; PKT_TRANS_LOCK ; 59 ; Signed Integer ; +; PKT_TRANS_COMPRESSED_READ ; 55 ; Signed Integer ; +; PKT_TRANS_POSTED ; 56 ; Signed Integer ; +; PKT_TRANS_WRITE ; 57 ; Signed Integer ; +; PKT_TRANS_READ ; 58 ; Signed Integer ; +; PKT_DATA_H ; 31 ; Signed Integer ; +; PKT_DATA_L ; 0 ; Signed Integer ; +; PKT_BYTEEN_H ; 35 ; Signed Integer ; +; PKT_BYTEEN_L ; 32 ; Signed Integer ; +; PKT_SRC_ID_H ; 80 ; Signed Integer ; +; PKT_SRC_ID_L ; 76 ; Signed Integer ; +; PKT_DEST_ID_H ; 85 ; Signed Integer ; +; PKT_DEST_ID_L ; 81 ; Signed Integer ; +; PKT_RESPONSE_STATUS_L ; 94 ; Signed Integer ; +; PKT_RESPONSE_STATUS_H ; 95 ; Signed Integer ; +; ST_DATA_W ; 96 ; Signed Integer ; +; ST_CHANNEL_W ; 18 ; Signed Integer ; +; AV_BURSTCOUNT_W ; 3 ; Signed Integer ; +; ID ; 0 ; Signed Integer ; +; SUPPRESS_0_BYTEEN_RSP ; 0 ; Signed Integer ; +; BURSTWRAP_VALUE ; 7 ; Signed Integer ; +; CACHE_VALUE ; 0 ; Signed Integer ; +; SECURE_ACCESS_BIT ; 1 ; Signed Integer ; +; USE_READRESPONSE ; 0 ; Signed Integer ; +; USE_WRITERESPONSE ; 0 ; Signed Integer ; +; PKT_BURSTWRAP_W ; 3 ; Signed Integer ; +; PKT_BYTE_CNT_W ; 3 ; Signed Integer ; +; PKT_PROTECTION_W ; 3 ; Signed Integer ; +; PKT_ADDR_W ; 19 ; Signed Integer ; +; PKT_DATA_W ; 32 ; Signed Integer ; +; PKT_BYTEEN_W ; 4 ; Signed Integer ; +; PKT_SRC_ID_W ; 5 ; Signed Integer ; +; PKT_DEST_ID_W ; 5 ; Signed Integer ; ++---------------------------+-------+-------------------------------------------------------------------------------------------------------------------------------+ +Note: In order to hide this table in the UI and the text report file, please set the "Show Parameter Settings in Synthesis Report" option in "Analysis and Synthesis Settings -> More Settings" to "Off". + + ++-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Settings for User Entity Instance: nios_system:NiosII|altera_merlin_slave_agent:nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent ; ++---------------------------+-------+-----------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Name ; Value ; Type ; ++---------------------------+-------+-----------------------------------------------------------------------------------------------------------------------------------+ +; PKT_BEGIN_BURST ; 74 ; Signed Integer ; +; PKT_DATA_H ; 31 ; Signed Integer ; +; PKT_DATA_L ; 0 ; Signed Integer ; +; PKT_SYMBOL_W ; 8 ; Signed Integer ; +; PKT_BYTEEN_H ; 35 ; Signed Integer ; +; PKT_BYTEEN_L ; 32 ; Signed Integer ; +; PKT_ADDR_H ; 54 ; Signed Integer ; +; PKT_ADDR_L ; 36 ; Signed Integer ; +; PKT_TRANS_LOCK ; 59 ; Signed Integer ; +; PKT_TRANS_COMPRESSED_READ ; 55 ; Signed Integer ; +; PKT_TRANS_POSTED ; 56 ; Signed Integer ; +; PKT_TRANS_WRITE ; 57 ; Signed Integer ; +; PKT_TRANS_READ ; 58 ; Signed Integer ; +; PKT_SRC_ID_H ; 80 ; Signed Integer ; +; PKT_SRC_ID_L ; 76 ; Signed Integer ; +; PKT_DEST_ID_H ; 85 ; Signed Integer ; +; PKT_DEST_ID_L ; 81 ; Signed Integer ; +; PKT_BURSTWRAP_H ; 66 ; Signed Integer ; +; PKT_BURSTWRAP_L ; 64 ; Signed Integer ; +; PKT_BYTE_CNT_H ; 63 ; Signed Integer ; +; PKT_BYTE_CNT_L ; 61 ; Signed Integer ; +; PKT_PROTECTION_H ; 89 ; Signed Integer ; +; PKT_PROTECTION_L ; 87 ; Signed Integer ; +; PKT_RESPONSE_STATUS_H ; 95 ; Signed Integer ; +; PKT_RESPONSE_STATUS_L ; 94 ; Signed Integer ; +; PKT_BURST_SIZE_H ; 69 ; Signed Integer ; +; PKT_BURST_SIZE_L ; 67 ; Signed Integer ; +; ST_DATA_W ; 96 ; Signed Integer ; +; ST_CHANNEL_W ; 18 ; Signed Integer ; +; ADDR_W ; 19 ; Signed Integer ; +; AVS_DATA_W ; 32 ; Signed Integer ; +; AVS_BURSTCOUNT_W ; 3 ; Signed Integer ; +; PKT_SYMBOLS ; 4 ; Signed Integer ; +; PREVENT_FIFO_OVERFLOW ; 1 ; Signed Integer ; +; SUPPRESS_0_BYTEEN_CMD ; 0 ; Signed Integer ; +; USE_READRESPONSE ; 0 ; Signed Integer ; +; USE_WRITERESPONSE ; 0 ; Signed Integer ; +; AVS_BE_W ; 4 ; Signed Integer ; +; BURST_SIZE_W ; 3 ; Signed Integer ; +; FIFO_DATA_W ; 97 ; Signed Integer ; ++---------------------------+-------+-----------------------------------------------------------------------------------------------------------------------------------+ +Note: In order to hide this table in the UI and the text report file, please set the "Show Parameter Settings in Synthesis Report" option in "Analysis and Synthesis Settings -> More Settings" to "Off". + + ++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Settings for User Entity Instance: nios_system:NiosII|altera_merlin_slave_agent:nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor ; ++----------------+-------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Name ; Value ; Type ; ++----------------+-------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; ADDR_W ; 19 ; Signed Integer ; +; BURSTWRAP_W ; 3 ; Signed Integer ; +; BYTE_CNT_W ; 3 ; Signed Integer ; +; PKT_SYMBOLS ; 4 ; Signed Integer ; +; BURST_SIZE_W ; 3 ; Signed Integer ; ++----------------+-------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +Note: In order to hide this table in the UI and the text report file, please set the "Show Parameter Settings in Synthesis Report" option in "Analysis and Synthesis Settings -> More Settings" to "Off". + + ++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Settings for User Entity Instance: nios_system:NiosII|altera_avalon_sc_fifo:nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo ; ++---------------------+-------+----------------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Name ; Value ; Type ; ++---------------------+-------+----------------------------------------------------------------------------------------------------------------------------------------------+ +; SYMBOLS_PER_BEAT ; 1 ; Signed Integer ; +; BITS_PER_SYMBOL ; 97 ; Signed Integer ; +; FIFO_DEPTH ; 2 ; Signed Integer ; +; CHANNEL_WIDTH ; 0 ; Signed Integer ; +; ERROR_WIDTH ; 0 ; Signed Integer ; +; USE_PACKETS ; 1 ; Signed Integer ; +; USE_FILL_LEVEL ; 0 ; Signed Integer ; +; USE_STORE_FORWARD ; 0 ; Signed Integer ; +; USE_ALMOST_FULL_IF ; 0 ; Signed Integer ; +; USE_ALMOST_EMPTY_IF ; 0 ; Signed Integer ; +; EMPTY_LATENCY ; 1 ; Signed Integer ; +; USE_MEMORY_BLOCKS ; 0 ; Signed Integer ; +; DATA_WIDTH ; 97 ; Signed Integer ; +; EMPTY_WIDTH ; 0 ; Signed Integer ; ++---------------------+-------+----------------------------------------------------------------------------------------------------------------------------------------------+ +Note: In order to hide this table in the UI and the text report file, please set the "Show Parameter Settings in Synthesis Report" option in "Analysis and Synthesis Settings -> More Settings" to "Off". + + ++------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Settings for User Entity Instance: nios_system:NiosII|altera_merlin_slave_agent:onchip_memory_s1_translator_avalon_universal_slave_0_agent ; ++---------------------------+-------+------------------------------------------------------------------------------------------------------------------+ +; Parameter Name ; Value ; Type ; ++---------------------------+-------+------------------------------------------------------------------------------------------------------------------+ +; PKT_BEGIN_BURST ; 74 ; Signed Integer ; +; PKT_DATA_H ; 31 ; Signed Integer ; +; PKT_DATA_L ; 0 ; Signed Integer ; +; PKT_SYMBOL_W ; 8 ; Signed Integer ; +; PKT_BYTEEN_H ; 35 ; Signed Integer ; +; PKT_BYTEEN_L ; 32 ; Signed Integer ; +; PKT_ADDR_H ; 54 ; Signed Integer ; +; PKT_ADDR_L ; 36 ; Signed Integer ; +; PKT_TRANS_LOCK ; 59 ; Signed Integer ; +; PKT_TRANS_COMPRESSED_READ ; 55 ; Signed Integer ; +; PKT_TRANS_POSTED ; 56 ; Signed Integer ; +; PKT_TRANS_WRITE ; 57 ; Signed Integer ; +; PKT_TRANS_READ ; 58 ; Signed Integer ; +; PKT_SRC_ID_H ; 80 ; Signed Integer ; +; PKT_SRC_ID_L ; 76 ; Signed Integer ; +; PKT_DEST_ID_H ; 85 ; Signed Integer ; +; PKT_DEST_ID_L ; 81 ; Signed Integer ; +; PKT_BURSTWRAP_H ; 66 ; Signed Integer ; +; PKT_BURSTWRAP_L ; 64 ; Signed Integer ; +; PKT_BYTE_CNT_H ; 63 ; Signed Integer ; +; PKT_BYTE_CNT_L ; 61 ; Signed Integer ; +; PKT_PROTECTION_H ; 89 ; Signed Integer ; +; PKT_PROTECTION_L ; 87 ; Signed Integer ; +; PKT_RESPONSE_STATUS_H ; 95 ; Signed Integer ; +; PKT_RESPONSE_STATUS_L ; 94 ; Signed Integer ; +; PKT_BURST_SIZE_H ; 69 ; Signed Integer ; +; PKT_BURST_SIZE_L ; 67 ; Signed Integer ; +; ST_DATA_W ; 96 ; Signed Integer ; +; ST_CHANNEL_W ; 18 ; Signed Integer ; +; ADDR_W ; 19 ; Signed Integer ; +; AVS_DATA_W ; 32 ; Signed Integer ; +; AVS_BURSTCOUNT_W ; 3 ; Signed Integer ; +; PKT_SYMBOLS ; 4 ; Signed Integer ; +; PREVENT_FIFO_OVERFLOW ; 1 ; Signed Integer ; +; SUPPRESS_0_BYTEEN_CMD ; 0 ; Signed Integer ; +; USE_READRESPONSE ; 0 ; Signed Integer ; +; USE_WRITERESPONSE ; 0 ; Signed Integer ; +; AVS_BE_W ; 4 ; Signed Integer ; +; BURST_SIZE_W ; 3 ; Signed Integer ; +; FIFO_DATA_W ; 97 ; Signed Integer ; ++---------------------------+-------+------------------------------------------------------------------------------------------------------------------+ +Note: In order to hide this table in the UI and the text report file, please set the "Show Parameter Settings in Synthesis Report" option in "Analysis and Synthesis Settings -> More Settings" to "Off". + + ++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Settings for User Entity Instance: nios_system:NiosII|altera_merlin_slave_agent:onchip_memory_s1_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor ; ++----------------+-------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Name ; Value ; Type ; ++----------------+-------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; ADDR_W ; 19 ; Signed Integer ; +; BURSTWRAP_W ; 3 ; Signed Integer ; +; BYTE_CNT_W ; 3 ; Signed Integer ; +; PKT_SYMBOLS ; 4 ; Signed Integer ; +; BURST_SIZE_W ; 3 ; Signed Integer ; ++----------------+-------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +Note: In order to hide this table in the UI and the text report file, please set the "Show Parameter Settings in Synthesis Report" option in "Analysis and Synthesis Settings -> More Settings" to "Off". + + ++-----------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Settings for User Entity Instance: nios_system:NiosII|altera_avalon_sc_fifo:onchip_memory_s1_translator_avalon_universal_slave_0_agent_rsp_fifo ; ++---------------------+-------+-----------------------------------------------------------------------------------------------------------------------------+ +; Parameter Name ; Value ; Type ; ++---------------------+-------+-----------------------------------------------------------------------------------------------------------------------------+ +; SYMBOLS_PER_BEAT ; 1 ; Signed Integer ; +; BITS_PER_SYMBOL ; 97 ; Signed Integer ; +; FIFO_DEPTH ; 2 ; Signed Integer ; +; CHANNEL_WIDTH ; 0 ; Signed Integer ; +; ERROR_WIDTH ; 0 ; Signed Integer ; +; USE_PACKETS ; 1 ; Signed Integer ; +; USE_FILL_LEVEL ; 0 ; Signed Integer ; +; USE_STORE_FORWARD ; 0 ; Signed Integer ; +; USE_ALMOST_FULL_IF ; 0 ; Signed Integer ; +; USE_ALMOST_EMPTY_IF ; 0 ; Signed Integer ; +; EMPTY_LATENCY ; 1 ; Signed Integer ; +; USE_MEMORY_BLOCKS ; 0 ; Signed Integer ; +; DATA_WIDTH ; 97 ; Signed Integer ; +; EMPTY_WIDTH ; 0 ; Signed Integer ; ++---------------------+-------+-----------------------------------------------------------------------------------------------------------------------------+ +Note: In order to hide this table in the UI and the text report file, please set the "Show Parameter Settings in Synthesis Report" option in "Analysis and Synthesis Settings -> More Settings" to "Off". + + ++---------------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Settings for User Entity Instance: nios_system:NiosII|altera_merlin_slave_agent:leds_s1_translator_avalon_universal_slave_0_agent ; ++---------------------------+-------+---------------------------------------------------------------------------------------------------------+ +; Parameter Name ; Value ; Type ; ++---------------------------+-------+---------------------------------------------------------------------------------------------------------+ +; PKT_BEGIN_BURST ; 74 ; Signed Integer ; +; PKT_DATA_H ; 31 ; Signed Integer ; +; PKT_DATA_L ; 0 ; Signed Integer ; +; PKT_SYMBOL_W ; 8 ; Signed Integer ; +; PKT_BYTEEN_H ; 35 ; Signed Integer ; +; PKT_BYTEEN_L ; 32 ; Signed Integer ; +; PKT_ADDR_H ; 54 ; Signed Integer ; +; PKT_ADDR_L ; 36 ; Signed Integer ; +; PKT_TRANS_LOCK ; 59 ; Signed Integer ; +; PKT_TRANS_COMPRESSED_READ ; 55 ; Signed Integer ; +; PKT_TRANS_POSTED ; 56 ; Signed Integer ; +; PKT_TRANS_WRITE ; 57 ; Signed Integer ; +; PKT_TRANS_READ ; 58 ; Signed Integer ; +; PKT_SRC_ID_H ; 80 ; Signed Integer ; +; PKT_SRC_ID_L ; 76 ; Signed Integer ; +; PKT_DEST_ID_H ; 85 ; Signed Integer ; +; PKT_DEST_ID_L ; 81 ; Signed Integer ; +; PKT_BURSTWRAP_H ; 66 ; Signed Integer ; +; PKT_BURSTWRAP_L ; 64 ; Signed Integer ; +; PKT_BYTE_CNT_H ; 63 ; Signed Integer ; +; PKT_BYTE_CNT_L ; 61 ; Signed Integer ; +; PKT_PROTECTION_H ; 89 ; Signed Integer ; +; PKT_PROTECTION_L ; 87 ; Signed Integer ; +; PKT_RESPONSE_STATUS_H ; 95 ; Signed Integer ; +; PKT_RESPONSE_STATUS_L ; 94 ; Signed Integer ; +; PKT_BURST_SIZE_H ; 69 ; Signed Integer ; +; PKT_BURST_SIZE_L ; 67 ; Signed Integer ; +; ST_DATA_W ; 96 ; Signed Integer ; +; ST_CHANNEL_W ; 18 ; Signed Integer ; +; ADDR_W ; 19 ; Signed Integer ; +; AVS_DATA_W ; 32 ; Signed Integer ; +; AVS_BURSTCOUNT_W ; 3 ; Signed Integer ; +; PKT_SYMBOLS ; 4 ; Signed Integer ; +; PREVENT_FIFO_OVERFLOW ; 1 ; Signed Integer ; +; SUPPRESS_0_BYTEEN_CMD ; 0 ; Signed Integer ; +; USE_READRESPONSE ; 0 ; Signed Integer ; +; USE_WRITERESPONSE ; 0 ; Signed Integer ; +; AVS_BE_W ; 4 ; Signed Integer ; +; BURST_SIZE_W ; 3 ; Signed Integer ; +; FIFO_DATA_W ; 97 ; Signed Integer ; ++---------------------------+-------+---------------------------------------------------------------------------------------------------------+ +Note: In order to hide this table in the UI and the text report file, please set the "Show Parameter Settings in Synthesis Report" option in "Analysis and Synthesis Settings -> More Settings" to "Off". + + ++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Settings for User Entity Instance: nios_system:NiosII|altera_merlin_slave_agent:leds_s1_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor ; ++----------------+-------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Name ; Value ; Type ; ++----------------+-------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; ADDR_W ; 19 ; Signed Integer ; +; BURSTWRAP_W ; 3 ; Signed Integer ; +; BYTE_CNT_W ; 3 ; Signed Integer ; +; PKT_SYMBOLS ; 4 ; Signed Integer ; +; BURST_SIZE_W ; 3 ; Signed Integer ; ++----------------+-------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +Note: In order to hide this table in the UI and the text report file, please set the "Show Parameter Settings in Synthesis Report" option in "Analysis and Synthesis Settings -> More Settings" to "Off". + + ++--------------------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Settings for User Entity Instance: nios_system:NiosII|altera_avalon_sc_fifo:leds_s1_translator_avalon_universal_slave_0_agent_rsp_fifo ; ++---------------------+-------+--------------------------------------------------------------------------------------------------------------------+ +; Parameter Name ; Value ; Type ; ++---------------------+-------+--------------------------------------------------------------------------------------------------------------------+ +; SYMBOLS_PER_BEAT ; 1 ; Signed Integer ; +; BITS_PER_SYMBOL ; 97 ; Signed Integer ; +; FIFO_DEPTH ; 2 ; Signed Integer ; +; CHANNEL_WIDTH ; 0 ; Signed Integer ; +; ERROR_WIDTH ; 0 ; Signed Integer ; +; USE_PACKETS ; 1 ; Signed Integer ; +; USE_FILL_LEVEL ; 0 ; Signed Integer ; +; USE_STORE_FORWARD ; 0 ; Signed Integer ; +; USE_ALMOST_FULL_IF ; 0 ; Signed Integer ; +; USE_ALMOST_EMPTY_IF ; 0 ; Signed Integer ; +; EMPTY_LATENCY ; 1 ; Signed Integer ; +; USE_MEMORY_BLOCKS ; 0 ; Signed Integer ; +; DATA_WIDTH ; 97 ; Signed Integer ; +; EMPTY_WIDTH ; 0 ; Signed Integer ; ++---------------------+-------+--------------------------------------------------------------------------------------------------------------------+ +Note: In order to hide this table in the UI and the text report file, please set the "Show Parameter Settings in Synthesis Report" option in "Analysis and Synthesis Settings -> More Settings" to "Off". + + ++-----------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Settings for User Entity Instance: nios_system:NiosII|altera_merlin_slave_agent:jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent ; ++---------------------------+-------+-----------------------------------------------------------------------------------------------------------------------------+ +; Parameter Name ; Value ; Type ; ++---------------------------+-------+-----------------------------------------------------------------------------------------------------------------------------+ +; PKT_BEGIN_BURST ; 74 ; Signed Integer ; +; PKT_DATA_H ; 31 ; Signed Integer ; +; PKT_DATA_L ; 0 ; Signed Integer ; +; PKT_SYMBOL_W ; 8 ; Signed Integer ; +; PKT_BYTEEN_H ; 35 ; Signed Integer ; +; PKT_BYTEEN_L ; 32 ; Signed Integer ; +; PKT_ADDR_H ; 54 ; Signed Integer ; +; PKT_ADDR_L ; 36 ; Signed Integer ; +; PKT_TRANS_LOCK ; 59 ; Signed Integer ; +; PKT_TRANS_COMPRESSED_READ ; 55 ; Signed Integer ; +; PKT_TRANS_POSTED ; 56 ; Signed Integer ; +; PKT_TRANS_WRITE ; 57 ; Signed Integer ; +; PKT_TRANS_READ ; 58 ; Signed Integer ; +; PKT_SRC_ID_H ; 80 ; Signed Integer ; +; PKT_SRC_ID_L ; 76 ; Signed Integer ; +; PKT_DEST_ID_H ; 85 ; Signed Integer ; +; PKT_DEST_ID_L ; 81 ; Signed Integer ; +; PKT_BURSTWRAP_H ; 66 ; Signed Integer ; +; PKT_BURSTWRAP_L ; 64 ; Signed Integer ; +; PKT_BYTE_CNT_H ; 63 ; Signed Integer ; +; PKT_BYTE_CNT_L ; 61 ; Signed Integer ; +; PKT_PROTECTION_H ; 89 ; Signed Integer ; +; PKT_PROTECTION_L ; 87 ; Signed Integer ; +; PKT_RESPONSE_STATUS_H ; 95 ; Signed Integer ; +; PKT_RESPONSE_STATUS_L ; 94 ; Signed Integer ; +; PKT_BURST_SIZE_H ; 69 ; Signed Integer ; +; PKT_BURST_SIZE_L ; 67 ; Signed Integer ; +; ST_DATA_W ; 96 ; Signed Integer ; +; ST_CHANNEL_W ; 18 ; Signed Integer ; +; ADDR_W ; 19 ; Signed Integer ; +; AVS_DATA_W ; 32 ; Signed Integer ; +; AVS_BURSTCOUNT_W ; 3 ; Signed Integer ; +; PKT_SYMBOLS ; 4 ; Signed Integer ; +; PREVENT_FIFO_OVERFLOW ; 1 ; Signed Integer ; +; SUPPRESS_0_BYTEEN_CMD ; 0 ; Signed Integer ; +; USE_READRESPONSE ; 0 ; Signed Integer ; +; USE_WRITERESPONSE ; 0 ; Signed Integer ; +; AVS_BE_W ; 4 ; Signed Integer ; +; BURST_SIZE_W ; 3 ; Signed Integer ; +; FIFO_DATA_W ; 97 ; Signed Integer ; ++---------------------------+-------+-----------------------------------------------------------------------------------------------------------------------------+ +Note: In order to hide this table in the UI and the text report file, please set the "Show Parameter Settings in Synthesis Report" option in "Analysis and Synthesis Settings -> More Settings" to "Off". + + ++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Settings for User Entity Instance: nios_system:NiosII|altera_merlin_slave_agent:jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor ; ++----------------+-------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Name ; Value ; Type ; ++----------------+-------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; ADDR_W ; 19 ; Signed Integer ; +; BURSTWRAP_W ; 3 ; Signed Integer ; +; BYTE_CNT_W ; 3 ; Signed Integer ; +; PKT_SYMBOLS ; 4 ; Signed Integer ; +; BURST_SIZE_W ; 3 ; Signed Integer ; ++----------------+-------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +Note: In order to hide this table in the UI and the text report file, please set the "Show Parameter Settings in Synthesis Report" option in "Analysis and Synthesis Settings -> More Settings" to "Off". + + ++----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Settings for User Entity Instance: nios_system:NiosII|altera_avalon_sc_fifo:jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rsp_fifo ; ++---------------------+-------+----------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Name ; Value ; Type ; ++---------------------+-------+----------------------------------------------------------------------------------------------------------------------------------------+ +; SYMBOLS_PER_BEAT ; 1 ; Signed Integer ; +; BITS_PER_SYMBOL ; 97 ; Signed Integer ; +; FIFO_DEPTH ; 2 ; Signed Integer ; +; CHANNEL_WIDTH ; 0 ; Signed Integer ; +; ERROR_WIDTH ; 0 ; Signed Integer ; +; USE_PACKETS ; 1 ; Signed Integer ; +; USE_FILL_LEVEL ; 0 ; Signed Integer ; +; USE_STORE_FORWARD ; 0 ; Signed Integer ; +; USE_ALMOST_FULL_IF ; 0 ; Signed Integer ; +; USE_ALMOST_EMPTY_IF ; 0 ; Signed Integer ; +; EMPTY_LATENCY ; 1 ; Signed Integer ; +; USE_MEMORY_BLOCKS ; 0 ; Signed Integer ; +; DATA_WIDTH ; 97 ; Signed Integer ; +; EMPTY_WIDTH ; 0 ; Signed Integer ; ++---------------------+-------+----------------------------------------------------------------------------------------------------------------------------------------+ +Note: In order to hide this table in the UI and the text report file, please set the "Show Parameter Settings in Synthesis Report" option in "Analysis and Synthesis Settings -> More Settings" to "Off". + + ++----------------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Settings for User Entity Instance: nios_system:NiosII|altera_merlin_slave_agent:ledrs_s1_translator_avalon_universal_slave_0_agent ; ++---------------------------+-------+----------------------------------------------------------------------------------------------------------+ +; Parameter Name ; Value ; Type ; ++---------------------------+-------+----------------------------------------------------------------------------------------------------------+ +; PKT_BEGIN_BURST ; 74 ; Signed Integer ; +; PKT_DATA_H ; 31 ; Signed Integer ; +; PKT_DATA_L ; 0 ; Signed Integer ; +; PKT_SYMBOL_W ; 8 ; Signed Integer ; +; PKT_BYTEEN_H ; 35 ; Signed Integer ; +; PKT_BYTEEN_L ; 32 ; Signed Integer ; +; PKT_ADDR_H ; 54 ; Signed Integer ; +; PKT_ADDR_L ; 36 ; Signed Integer ; +; PKT_TRANS_LOCK ; 59 ; Signed Integer ; +; PKT_TRANS_COMPRESSED_READ ; 55 ; Signed Integer ; +; PKT_TRANS_POSTED ; 56 ; Signed Integer ; +; PKT_TRANS_WRITE ; 57 ; Signed Integer ; +; PKT_TRANS_READ ; 58 ; Signed Integer ; +; PKT_SRC_ID_H ; 80 ; Signed Integer ; +; PKT_SRC_ID_L ; 76 ; Signed Integer ; +; PKT_DEST_ID_H ; 85 ; Signed Integer ; +; PKT_DEST_ID_L ; 81 ; Signed Integer ; +; PKT_BURSTWRAP_H ; 66 ; Signed Integer ; +; PKT_BURSTWRAP_L ; 64 ; Signed Integer ; +; PKT_BYTE_CNT_H ; 63 ; Signed Integer ; +; PKT_BYTE_CNT_L ; 61 ; Signed Integer ; +; PKT_PROTECTION_H ; 89 ; Signed Integer ; +; PKT_PROTECTION_L ; 87 ; Signed Integer ; +; PKT_RESPONSE_STATUS_H ; 95 ; Signed Integer ; +; PKT_RESPONSE_STATUS_L ; 94 ; Signed Integer ; +; PKT_BURST_SIZE_H ; 69 ; Signed Integer ; +; PKT_BURST_SIZE_L ; 67 ; Signed Integer ; +; ST_DATA_W ; 96 ; Signed Integer ; +; ST_CHANNEL_W ; 18 ; Signed Integer ; +; ADDR_W ; 19 ; Signed Integer ; +; AVS_DATA_W ; 32 ; Signed Integer ; +; AVS_BURSTCOUNT_W ; 3 ; Signed Integer ; +; PKT_SYMBOLS ; 4 ; Signed Integer ; +; PREVENT_FIFO_OVERFLOW ; 1 ; Signed Integer ; +; SUPPRESS_0_BYTEEN_CMD ; 0 ; Signed Integer ; +; USE_READRESPONSE ; 0 ; Signed Integer ; +; USE_WRITERESPONSE ; 0 ; Signed Integer ; +; AVS_BE_W ; 4 ; Signed Integer ; +; BURST_SIZE_W ; 3 ; Signed Integer ; +; FIFO_DATA_W ; 97 ; Signed Integer ; ++---------------------------+-------+----------------------------------------------------------------------------------------------------------+ +Note: In order to hide this table in the UI and the text report file, please set the "Show Parameter Settings in Synthesis Report" option in "Analysis and Synthesis Settings -> More Settings" to "Off". + + ++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Settings for User Entity Instance: nios_system:NiosII|altera_merlin_slave_agent:ledrs_s1_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor ; ++----------------+-------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Name ; Value ; Type ; ++----------------+-------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; ADDR_W ; 19 ; Signed Integer ; +; BURSTWRAP_W ; 3 ; Signed Integer ; +; BYTE_CNT_W ; 3 ; Signed Integer ; +; PKT_SYMBOLS ; 4 ; Signed Integer ; +; BURST_SIZE_W ; 3 ; Signed Integer ; ++----------------+-------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +Note: In order to hide this table in the UI and the text report file, please set the "Show Parameter Settings in Synthesis Report" option in "Analysis and Synthesis Settings -> More Settings" to "Off". + + ++---------------------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Settings for User Entity Instance: nios_system:NiosII|altera_avalon_sc_fifo:ledrs_s1_translator_avalon_universal_slave_0_agent_rsp_fifo ; ++---------------------+-------+---------------------------------------------------------------------------------------------------------------------+ +; Parameter Name ; Value ; Type ; ++---------------------+-------+---------------------------------------------------------------------------------------------------------------------+ +; SYMBOLS_PER_BEAT ; 1 ; Signed Integer ; +; BITS_PER_SYMBOL ; 97 ; Signed Integer ; +; FIFO_DEPTH ; 2 ; Signed Integer ; +; CHANNEL_WIDTH ; 0 ; Signed Integer ; +; ERROR_WIDTH ; 0 ; Signed Integer ; +; USE_PACKETS ; 1 ; Signed Integer ; +; USE_FILL_LEVEL ; 0 ; Signed Integer ; +; USE_STORE_FORWARD ; 0 ; Signed Integer ; +; USE_ALMOST_FULL_IF ; 0 ; Signed Integer ; +; USE_ALMOST_EMPTY_IF ; 0 ; Signed Integer ; +; EMPTY_LATENCY ; 1 ; Signed Integer ; +; USE_MEMORY_BLOCKS ; 0 ; Signed Integer ; +; DATA_WIDTH ; 97 ; Signed Integer ; +; EMPTY_WIDTH ; 0 ; Signed Integer ; ++---------------------+-------+---------------------------------------------------------------------------------------------------------------------+ +Note: In order to hide this table in the UI and the text report file, please set the "Show Parameter Settings in Synthesis Report" option in "Analysis and Synthesis Settings -> More Settings" to "Off". + + ++-------------------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Settings for User Entity Instance: nios_system:NiosII|altera_merlin_slave_agent:switches_s1_translator_avalon_universal_slave_0_agent ; ++---------------------------+-------+-------------------------------------------------------------------------------------------------------------+ +; Parameter Name ; Value ; Type ; ++---------------------------+-------+-------------------------------------------------------------------------------------------------------------+ +; PKT_BEGIN_BURST ; 74 ; Signed Integer ; +; PKT_DATA_H ; 31 ; Signed Integer ; +; PKT_DATA_L ; 0 ; Signed Integer ; +; PKT_SYMBOL_W ; 8 ; Signed Integer ; +; PKT_BYTEEN_H ; 35 ; Signed Integer ; +; PKT_BYTEEN_L ; 32 ; Signed Integer ; +; PKT_ADDR_H ; 54 ; Signed Integer ; +; PKT_ADDR_L ; 36 ; Signed Integer ; +; PKT_TRANS_LOCK ; 59 ; Signed Integer ; +; PKT_TRANS_COMPRESSED_READ ; 55 ; Signed Integer ; +; PKT_TRANS_POSTED ; 56 ; Signed Integer ; +; PKT_TRANS_WRITE ; 57 ; Signed Integer ; +; PKT_TRANS_READ ; 58 ; Signed Integer ; +; PKT_SRC_ID_H ; 80 ; Signed Integer ; +; PKT_SRC_ID_L ; 76 ; Signed Integer ; +; PKT_DEST_ID_H ; 85 ; Signed Integer ; +; PKT_DEST_ID_L ; 81 ; Signed Integer ; +; PKT_BURSTWRAP_H ; 66 ; Signed Integer ; +; PKT_BURSTWRAP_L ; 64 ; Signed Integer ; +; PKT_BYTE_CNT_H ; 63 ; Signed Integer ; +; PKT_BYTE_CNT_L ; 61 ; Signed Integer ; +; PKT_PROTECTION_H ; 89 ; Signed Integer ; +; PKT_PROTECTION_L ; 87 ; Signed Integer ; +; PKT_RESPONSE_STATUS_H ; 95 ; Signed Integer ; +; PKT_RESPONSE_STATUS_L ; 94 ; Signed Integer ; +; PKT_BURST_SIZE_H ; 69 ; Signed Integer ; +; PKT_BURST_SIZE_L ; 67 ; Signed Integer ; +; ST_DATA_W ; 96 ; Signed Integer ; +; ST_CHANNEL_W ; 18 ; Signed Integer ; +; ADDR_W ; 19 ; Signed Integer ; +; AVS_DATA_W ; 32 ; Signed Integer ; +; AVS_BURSTCOUNT_W ; 3 ; Signed Integer ; +; PKT_SYMBOLS ; 4 ; Signed Integer ; +; PREVENT_FIFO_OVERFLOW ; 1 ; Signed Integer ; +; SUPPRESS_0_BYTEEN_CMD ; 0 ; Signed Integer ; +; USE_READRESPONSE ; 0 ; Signed Integer ; +; USE_WRITERESPONSE ; 0 ; Signed Integer ; +; AVS_BE_W ; 4 ; Signed Integer ; +; BURST_SIZE_W ; 3 ; Signed Integer ; +; FIFO_DATA_W ; 97 ; Signed Integer ; ++---------------------------+-------+-------------------------------------------------------------------------------------------------------------+ +Note: In order to hide this table in the UI and the text report file, please set the "Show Parameter Settings in Synthesis Report" option in "Analysis and Synthesis Settings -> More Settings" to "Off". + + ++-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Settings for User Entity Instance: nios_system:NiosII|altera_merlin_slave_agent:switches_s1_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor ; ++----------------+-------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Name ; Value ; Type ; ++----------------+-------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; ADDR_W ; 19 ; Signed Integer ; +; BURSTWRAP_W ; 3 ; Signed Integer ; +; BYTE_CNT_W ; 3 ; Signed Integer ; +; PKT_SYMBOLS ; 4 ; Signed Integer ; +; BURST_SIZE_W ; 3 ; Signed Integer ; ++----------------+-------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +Note: In order to hide this table in the UI and the text report file, please set the "Show Parameter Settings in Synthesis Report" option in "Analysis and Synthesis Settings -> More Settings" to "Off". + + ++------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Settings for User Entity Instance: nios_system:NiosII|altera_avalon_sc_fifo:switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo ; ++---------------------+-------+------------------------------------------------------------------------------------------------------------------------+ +; Parameter Name ; Value ; Type ; ++---------------------+-------+------------------------------------------------------------------------------------------------------------------------+ +; SYMBOLS_PER_BEAT ; 1 ; Signed Integer ; +; BITS_PER_SYMBOL ; 97 ; Signed Integer ; +; FIFO_DEPTH ; 2 ; Signed Integer ; +; CHANNEL_WIDTH ; 0 ; Signed Integer ; +; ERROR_WIDTH ; 0 ; Signed Integer ; +; USE_PACKETS ; 1 ; Signed Integer ; +; USE_FILL_LEVEL ; 0 ; Signed Integer ; +; USE_STORE_FORWARD ; 0 ; Signed Integer ; +; USE_ALMOST_FULL_IF ; 0 ; Signed Integer ; +; USE_ALMOST_EMPTY_IF ; 0 ; Signed Integer ; +; EMPTY_LATENCY ; 1 ; Signed Integer ; +; USE_MEMORY_BLOCKS ; 0 ; Signed Integer ; +; DATA_WIDTH ; 97 ; Signed Integer ; +; EMPTY_WIDTH ; 0 ; Signed Integer ; ++---------------------+-------+------------------------------------------------------------------------------------------------------------------------+ +Note: In order to hide this table in the UI and the text report file, please set the "Show Parameter Settings in Synthesis Report" option in "Analysis and Synthesis Settings -> More Settings" to "Off". + + ++------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Settings for User Entity Instance: nios_system:NiosII|altera_merlin_slave_agent:push_switches_s1_translator_avalon_universal_slave_0_agent ; ++---------------------------+-------+------------------------------------------------------------------------------------------------------------------+ +; Parameter Name ; Value ; Type ; ++---------------------------+-------+------------------------------------------------------------------------------------------------------------------+ +; PKT_BEGIN_BURST ; 74 ; Signed Integer ; +; PKT_DATA_H ; 31 ; Signed Integer ; +; PKT_DATA_L ; 0 ; Signed Integer ; +; PKT_SYMBOL_W ; 8 ; Signed Integer ; +; PKT_BYTEEN_H ; 35 ; Signed Integer ; +; PKT_BYTEEN_L ; 32 ; Signed Integer ; +; PKT_ADDR_H ; 54 ; Signed Integer ; +; PKT_ADDR_L ; 36 ; Signed Integer ; +; PKT_TRANS_LOCK ; 59 ; Signed Integer ; +; PKT_TRANS_COMPRESSED_READ ; 55 ; Signed Integer ; +; PKT_TRANS_POSTED ; 56 ; Signed Integer ; +; PKT_TRANS_WRITE ; 57 ; Signed Integer ; +; PKT_TRANS_READ ; 58 ; Signed Integer ; +; PKT_SRC_ID_H ; 80 ; Signed Integer ; +; PKT_SRC_ID_L ; 76 ; Signed Integer ; +; PKT_DEST_ID_H ; 85 ; Signed Integer ; +; PKT_DEST_ID_L ; 81 ; Signed Integer ; +; PKT_BURSTWRAP_H ; 66 ; Signed Integer ; +; PKT_BURSTWRAP_L ; 64 ; Signed Integer ; +; PKT_BYTE_CNT_H ; 63 ; Signed Integer ; +; PKT_BYTE_CNT_L ; 61 ; Signed Integer ; +; PKT_PROTECTION_H ; 89 ; Signed Integer ; +; PKT_PROTECTION_L ; 87 ; Signed Integer ; +; PKT_RESPONSE_STATUS_H ; 95 ; Signed Integer ; +; PKT_RESPONSE_STATUS_L ; 94 ; Signed Integer ; +; PKT_BURST_SIZE_H ; 69 ; Signed Integer ; +; PKT_BURST_SIZE_L ; 67 ; Signed Integer ; +; ST_DATA_W ; 96 ; Signed Integer ; +; ST_CHANNEL_W ; 18 ; Signed Integer ; +; ADDR_W ; 19 ; Signed Integer ; +; AVS_DATA_W ; 32 ; Signed Integer ; +; AVS_BURSTCOUNT_W ; 3 ; Signed Integer ; +; PKT_SYMBOLS ; 4 ; Signed Integer ; +; PREVENT_FIFO_OVERFLOW ; 1 ; Signed Integer ; +; SUPPRESS_0_BYTEEN_CMD ; 0 ; Signed Integer ; +; USE_READRESPONSE ; 0 ; Signed Integer ; +; USE_WRITERESPONSE ; 0 ; Signed Integer ; +; AVS_BE_W ; 4 ; Signed Integer ; +; BURST_SIZE_W ; 3 ; Signed Integer ; +; FIFO_DATA_W ; 97 ; Signed Integer ; ++---------------------------+-------+------------------------------------------------------------------------------------------------------------------+ +Note: In order to hide this table in the UI and the text report file, please set the "Show Parameter Settings in Synthesis Report" option in "Analysis and Synthesis Settings -> More Settings" to "Off". + + ++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Settings for User Entity Instance: nios_system:NiosII|altera_merlin_slave_agent:push_switches_s1_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor ; ++----------------+-------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Name ; Value ; Type ; ++----------------+-------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; ADDR_W ; 19 ; Signed Integer ; +; BURSTWRAP_W ; 3 ; Signed Integer ; +; BYTE_CNT_W ; 3 ; Signed Integer ; +; PKT_SYMBOLS ; 4 ; Signed Integer ; +; BURST_SIZE_W ; 3 ; Signed Integer ; ++----------------+-------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +Note: In order to hide this table in the UI and the text report file, please set the "Show Parameter Settings in Synthesis Report" option in "Analysis and Synthesis Settings -> More Settings" to "Off". + + ++-----------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Settings for User Entity Instance: nios_system:NiosII|altera_avalon_sc_fifo:push_switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo ; ++---------------------+-------+-----------------------------------------------------------------------------------------------------------------------------+ +; Parameter Name ; Value ; Type ; ++---------------------+-------+-----------------------------------------------------------------------------------------------------------------------------+ +; SYMBOLS_PER_BEAT ; 1 ; Signed Integer ; +; BITS_PER_SYMBOL ; 97 ; Signed Integer ; +; FIFO_DEPTH ; 2 ; Signed Integer ; +; CHANNEL_WIDTH ; 0 ; Signed Integer ; +; ERROR_WIDTH ; 0 ; Signed Integer ; +; USE_PACKETS ; 1 ; Signed Integer ; +; USE_FILL_LEVEL ; 0 ; Signed Integer ; +; USE_STORE_FORWARD ; 0 ; Signed Integer ; +; USE_ALMOST_FULL_IF ; 0 ; Signed Integer ; +; USE_ALMOST_EMPTY_IF ; 0 ; Signed Integer ; +; EMPTY_LATENCY ; 1 ; Signed Integer ; +; USE_MEMORY_BLOCKS ; 0 ; Signed Integer ; +; DATA_WIDTH ; 97 ; Signed Integer ; +; EMPTY_WIDTH ; 0 ; Signed Integer ; ++---------------------+-------+-----------------------------------------------------------------------------------------------------------------------------+ +Note: In order to hide this table in the UI and the text report file, please set the "Show Parameter Settings in Synthesis Report" option in "Analysis and Synthesis Settings -> More Settings" to "Off". + + ++---------------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Settings for User Entity Instance: nios_system:NiosII|altera_merlin_slave_agent:hex0_s1_translator_avalon_universal_slave_0_agent ; ++---------------------------+-------+---------------------------------------------------------------------------------------------------------+ +; Parameter Name ; Value ; Type ; ++---------------------------+-------+---------------------------------------------------------------------------------------------------------+ +; PKT_BEGIN_BURST ; 74 ; Signed Integer ; +; PKT_DATA_H ; 31 ; Signed Integer ; +; PKT_DATA_L ; 0 ; Signed Integer ; +; PKT_SYMBOL_W ; 8 ; Signed Integer ; +; PKT_BYTEEN_H ; 35 ; Signed Integer ; +; PKT_BYTEEN_L ; 32 ; Signed Integer ; +; PKT_ADDR_H ; 54 ; Signed Integer ; +; PKT_ADDR_L ; 36 ; Signed Integer ; +; PKT_TRANS_LOCK ; 59 ; Signed Integer ; +; PKT_TRANS_COMPRESSED_READ ; 55 ; Signed Integer ; +; PKT_TRANS_POSTED ; 56 ; Signed Integer ; +; PKT_TRANS_WRITE ; 57 ; Signed Integer ; +; PKT_TRANS_READ ; 58 ; Signed Integer ; +; PKT_SRC_ID_H ; 80 ; Signed Integer ; +; PKT_SRC_ID_L ; 76 ; Signed Integer ; +; PKT_DEST_ID_H ; 85 ; Signed Integer ; +; PKT_DEST_ID_L ; 81 ; Signed Integer ; +; PKT_BURSTWRAP_H ; 66 ; Signed Integer ; +; PKT_BURSTWRAP_L ; 64 ; Signed Integer ; +; PKT_BYTE_CNT_H ; 63 ; Signed Integer ; +; PKT_BYTE_CNT_L ; 61 ; Signed Integer ; +; PKT_PROTECTION_H ; 89 ; Signed Integer ; +; PKT_PROTECTION_L ; 87 ; Signed Integer ; +; PKT_RESPONSE_STATUS_H ; 95 ; Signed Integer ; +; PKT_RESPONSE_STATUS_L ; 94 ; Signed Integer ; +; PKT_BURST_SIZE_H ; 69 ; Signed Integer ; +; PKT_BURST_SIZE_L ; 67 ; Signed Integer ; +; ST_DATA_W ; 96 ; Signed Integer ; +; ST_CHANNEL_W ; 18 ; Signed Integer ; +; ADDR_W ; 19 ; Signed Integer ; +; AVS_DATA_W ; 32 ; Signed Integer ; +; AVS_BURSTCOUNT_W ; 3 ; Signed Integer ; +; PKT_SYMBOLS ; 4 ; Signed Integer ; +; PREVENT_FIFO_OVERFLOW ; 1 ; Signed Integer ; +; SUPPRESS_0_BYTEEN_CMD ; 0 ; Signed Integer ; +; USE_READRESPONSE ; 0 ; Signed Integer ; +; USE_WRITERESPONSE ; 0 ; Signed Integer ; +; AVS_BE_W ; 4 ; Signed Integer ; +; BURST_SIZE_W ; 3 ; Signed Integer ; +; FIFO_DATA_W ; 97 ; Signed Integer ; ++---------------------------+-------+---------------------------------------------------------------------------------------------------------+ +Note: In order to hide this table in the UI and the text report file, please set the "Show Parameter Settings in Synthesis Report" option in "Analysis and Synthesis Settings -> More Settings" to "Off". + + ++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Settings for User Entity Instance: nios_system:NiosII|altera_merlin_slave_agent:hex0_s1_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor ; ++----------------+-------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Name ; Value ; Type ; ++----------------+-------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; ADDR_W ; 19 ; Signed Integer ; +; BURSTWRAP_W ; 3 ; Signed Integer ; +; BYTE_CNT_W ; 3 ; Signed Integer ; +; PKT_SYMBOLS ; 4 ; Signed Integer ; +; BURST_SIZE_W ; 3 ; Signed Integer ; ++----------------+-------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +Note: In order to hide this table in the UI and the text report file, please set the "Show Parameter Settings in Synthesis Report" option in "Analysis and Synthesis Settings -> More Settings" to "Off". + + ++--------------------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Settings for User Entity Instance: nios_system:NiosII|altera_avalon_sc_fifo:hex0_s1_translator_avalon_universal_slave_0_agent_rsp_fifo ; ++---------------------+-------+--------------------------------------------------------------------------------------------------------------------+ +; Parameter Name ; Value ; Type ; ++---------------------+-------+--------------------------------------------------------------------------------------------------------------------+ +; SYMBOLS_PER_BEAT ; 1 ; Signed Integer ; +; BITS_PER_SYMBOL ; 97 ; Signed Integer ; +; FIFO_DEPTH ; 2 ; Signed Integer ; +; CHANNEL_WIDTH ; 0 ; Signed Integer ; +; ERROR_WIDTH ; 0 ; Signed Integer ; +; USE_PACKETS ; 1 ; Signed Integer ; +; USE_FILL_LEVEL ; 0 ; Signed Integer ; +; USE_STORE_FORWARD ; 0 ; Signed Integer ; +; USE_ALMOST_FULL_IF ; 0 ; Signed Integer ; +; USE_ALMOST_EMPTY_IF ; 0 ; Signed Integer ; +; EMPTY_LATENCY ; 1 ; Signed Integer ; +; USE_MEMORY_BLOCKS ; 0 ; Signed Integer ; +; DATA_WIDTH ; 97 ; Signed Integer ; +; EMPTY_WIDTH ; 0 ; Signed Integer ; ++---------------------+-------+--------------------------------------------------------------------------------------------------------------------+ +Note: In order to hide this table in the UI and the text report file, please set the "Show Parameter Settings in Synthesis Report" option in "Analysis and Synthesis Settings -> More Settings" to "Off". + + ++---------------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Settings for User Entity Instance: nios_system:NiosII|altera_merlin_slave_agent:hex1_s1_translator_avalon_universal_slave_0_agent ; ++---------------------------+-------+---------------------------------------------------------------------------------------------------------+ +; Parameter Name ; Value ; Type ; ++---------------------------+-------+---------------------------------------------------------------------------------------------------------+ +; PKT_BEGIN_BURST ; 74 ; Signed Integer ; +; PKT_DATA_H ; 31 ; Signed Integer ; +; PKT_DATA_L ; 0 ; Signed Integer ; +; PKT_SYMBOL_W ; 8 ; Signed Integer ; +; PKT_BYTEEN_H ; 35 ; Signed Integer ; +; PKT_BYTEEN_L ; 32 ; Signed Integer ; +; PKT_ADDR_H ; 54 ; Signed Integer ; +; PKT_ADDR_L ; 36 ; Signed Integer ; +; PKT_TRANS_LOCK ; 59 ; Signed Integer ; +; PKT_TRANS_COMPRESSED_READ ; 55 ; Signed Integer ; +; PKT_TRANS_POSTED ; 56 ; Signed Integer ; +; PKT_TRANS_WRITE ; 57 ; Signed Integer ; +; PKT_TRANS_READ ; 58 ; Signed Integer ; +; PKT_SRC_ID_H ; 80 ; Signed Integer ; +; PKT_SRC_ID_L ; 76 ; Signed Integer ; +; PKT_DEST_ID_H ; 85 ; Signed Integer ; +; PKT_DEST_ID_L ; 81 ; Signed Integer ; +; PKT_BURSTWRAP_H ; 66 ; Signed Integer ; +; PKT_BURSTWRAP_L ; 64 ; Signed Integer ; +; PKT_BYTE_CNT_H ; 63 ; Signed Integer ; +; PKT_BYTE_CNT_L ; 61 ; Signed Integer ; +; PKT_PROTECTION_H ; 89 ; Signed Integer ; +; PKT_PROTECTION_L ; 87 ; Signed Integer ; +; PKT_RESPONSE_STATUS_H ; 95 ; Signed Integer ; +; PKT_RESPONSE_STATUS_L ; 94 ; Signed Integer ; +; PKT_BURST_SIZE_H ; 69 ; Signed Integer ; +; PKT_BURST_SIZE_L ; 67 ; Signed Integer ; +; ST_DATA_W ; 96 ; Signed Integer ; +; ST_CHANNEL_W ; 18 ; Signed Integer ; +; ADDR_W ; 19 ; Signed Integer ; +; AVS_DATA_W ; 32 ; Signed Integer ; +; AVS_BURSTCOUNT_W ; 3 ; Signed Integer ; +; PKT_SYMBOLS ; 4 ; Signed Integer ; +; PREVENT_FIFO_OVERFLOW ; 1 ; Signed Integer ; +; SUPPRESS_0_BYTEEN_CMD ; 0 ; Signed Integer ; +; USE_READRESPONSE ; 0 ; Signed Integer ; +; USE_WRITERESPONSE ; 0 ; Signed Integer ; +; AVS_BE_W ; 4 ; Signed Integer ; +; BURST_SIZE_W ; 3 ; Signed Integer ; +; FIFO_DATA_W ; 97 ; Signed Integer ; ++---------------------------+-------+---------------------------------------------------------------------------------------------------------+ +Note: In order to hide this table in the UI and the text report file, please set the "Show Parameter Settings in Synthesis Report" option in "Analysis and Synthesis Settings -> More Settings" to "Off". + + ++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Settings for User Entity Instance: nios_system:NiosII|altera_merlin_slave_agent:hex1_s1_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor ; ++----------------+-------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Name ; Value ; Type ; ++----------------+-------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; ADDR_W ; 19 ; Signed Integer ; +; BURSTWRAP_W ; 3 ; Signed Integer ; +; BYTE_CNT_W ; 3 ; Signed Integer ; +; PKT_SYMBOLS ; 4 ; Signed Integer ; +; BURST_SIZE_W ; 3 ; Signed Integer ; ++----------------+-------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +Note: In order to hide this table in the UI and the text report file, please set the "Show Parameter Settings in Synthesis Report" option in "Analysis and Synthesis Settings -> More Settings" to "Off". + + ++--------------------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Settings for User Entity Instance: nios_system:NiosII|altera_avalon_sc_fifo:hex1_s1_translator_avalon_universal_slave_0_agent_rsp_fifo ; ++---------------------+-------+--------------------------------------------------------------------------------------------------------------------+ +; Parameter Name ; Value ; Type ; ++---------------------+-------+--------------------------------------------------------------------------------------------------------------------+ +; SYMBOLS_PER_BEAT ; 1 ; Signed Integer ; +; BITS_PER_SYMBOL ; 97 ; Signed Integer ; +; FIFO_DEPTH ; 2 ; Signed Integer ; +; CHANNEL_WIDTH ; 0 ; Signed Integer ; +; ERROR_WIDTH ; 0 ; Signed Integer ; +; USE_PACKETS ; 1 ; Signed Integer ; +; USE_FILL_LEVEL ; 0 ; Signed Integer ; +; USE_STORE_FORWARD ; 0 ; Signed Integer ; +; USE_ALMOST_FULL_IF ; 0 ; Signed Integer ; +; USE_ALMOST_EMPTY_IF ; 0 ; Signed Integer ; +; EMPTY_LATENCY ; 1 ; Signed Integer ; +; USE_MEMORY_BLOCKS ; 0 ; Signed Integer ; +; DATA_WIDTH ; 97 ; Signed Integer ; +; EMPTY_WIDTH ; 0 ; Signed Integer ; ++---------------------+-------+--------------------------------------------------------------------------------------------------------------------+ +Note: In order to hide this table in the UI and the text report file, please set the "Show Parameter Settings in Synthesis Report" option in "Analysis and Synthesis Settings -> More Settings" to "Off". + + ++---------------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Settings for User Entity Instance: nios_system:NiosII|altera_merlin_slave_agent:hex2_s1_translator_avalon_universal_slave_0_agent ; ++---------------------------+-------+---------------------------------------------------------------------------------------------------------+ +; Parameter Name ; Value ; Type ; ++---------------------------+-------+---------------------------------------------------------------------------------------------------------+ +; PKT_BEGIN_BURST ; 74 ; Signed Integer ; +; PKT_DATA_H ; 31 ; Signed Integer ; +; PKT_DATA_L ; 0 ; Signed Integer ; +; PKT_SYMBOL_W ; 8 ; Signed Integer ; +; PKT_BYTEEN_H ; 35 ; Signed Integer ; +; PKT_BYTEEN_L ; 32 ; Signed Integer ; +; PKT_ADDR_H ; 54 ; Signed Integer ; +; PKT_ADDR_L ; 36 ; Signed Integer ; +; PKT_TRANS_LOCK ; 59 ; Signed Integer ; +; PKT_TRANS_COMPRESSED_READ ; 55 ; Signed Integer ; +; PKT_TRANS_POSTED ; 56 ; Signed Integer ; +; PKT_TRANS_WRITE ; 57 ; Signed Integer ; +; PKT_TRANS_READ ; 58 ; Signed Integer ; +; PKT_SRC_ID_H ; 80 ; Signed Integer ; +; PKT_SRC_ID_L ; 76 ; Signed Integer ; +; PKT_DEST_ID_H ; 85 ; Signed Integer ; +; PKT_DEST_ID_L ; 81 ; Signed Integer ; +; PKT_BURSTWRAP_H ; 66 ; Signed Integer ; +; PKT_BURSTWRAP_L ; 64 ; Signed Integer ; +; PKT_BYTE_CNT_H ; 63 ; Signed Integer ; +; PKT_BYTE_CNT_L ; 61 ; Signed Integer ; +; PKT_PROTECTION_H ; 89 ; Signed Integer ; +; PKT_PROTECTION_L ; 87 ; Signed Integer ; +; PKT_RESPONSE_STATUS_H ; 95 ; Signed Integer ; +; PKT_RESPONSE_STATUS_L ; 94 ; Signed Integer ; +; PKT_BURST_SIZE_H ; 69 ; Signed Integer ; +; PKT_BURST_SIZE_L ; 67 ; Signed Integer ; +; ST_DATA_W ; 96 ; Signed Integer ; +; ST_CHANNEL_W ; 18 ; Signed Integer ; +; ADDR_W ; 19 ; Signed Integer ; +; AVS_DATA_W ; 32 ; Signed Integer ; +; AVS_BURSTCOUNT_W ; 3 ; Signed Integer ; +; PKT_SYMBOLS ; 4 ; Signed Integer ; +; PREVENT_FIFO_OVERFLOW ; 1 ; Signed Integer ; +; SUPPRESS_0_BYTEEN_CMD ; 0 ; Signed Integer ; +; USE_READRESPONSE ; 0 ; Signed Integer ; +; USE_WRITERESPONSE ; 0 ; Signed Integer ; +; AVS_BE_W ; 4 ; Signed Integer ; +; BURST_SIZE_W ; 3 ; Signed Integer ; +; FIFO_DATA_W ; 97 ; Signed Integer ; ++---------------------------+-------+---------------------------------------------------------------------------------------------------------+ +Note: In order to hide this table in the UI and the text report file, please set the "Show Parameter Settings in Synthesis Report" option in "Analysis and Synthesis Settings -> More Settings" to "Off". + + ++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Settings for User Entity Instance: nios_system:NiosII|altera_merlin_slave_agent:hex2_s1_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor ; ++----------------+-------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Name ; Value ; Type ; ++----------------+-------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; ADDR_W ; 19 ; Signed Integer ; +; BURSTWRAP_W ; 3 ; Signed Integer ; +; BYTE_CNT_W ; 3 ; Signed Integer ; +; PKT_SYMBOLS ; 4 ; Signed Integer ; +; BURST_SIZE_W ; 3 ; Signed Integer ; ++----------------+-------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +Note: In order to hide this table in the UI and the text report file, please set the "Show Parameter Settings in Synthesis Report" option in "Analysis and Synthesis Settings -> More Settings" to "Off". + + ++--------------------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Settings for User Entity Instance: nios_system:NiosII|altera_avalon_sc_fifo:hex2_s1_translator_avalon_universal_slave_0_agent_rsp_fifo ; ++---------------------+-------+--------------------------------------------------------------------------------------------------------------------+ +; Parameter Name ; Value ; Type ; ++---------------------+-------+--------------------------------------------------------------------------------------------------------------------+ +; SYMBOLS_PER_BEAT ; 1 ; Signed Integer ; +; BITS_PER_SYMBOL ; 97 ; Signed Integer ; +; FIFO_DEPTH ; 2 ; Signed Integer ; +; CHANNEL_WIDTH ; 0 ; Signed Integer ; +; ERROR_WIDTH ; 0 ; Signed Integer ; +; USE_PACKETS ; 1 ; Signed Integer ; +; USE_FILL_LEVEL ; 0 ; Signed Integer ; +; USE_STORE_FORWARD ; 0 ; Signed Integer ; +; USE_ALMOST_FULL_IF ; 0 ; Signed Integer ; +; USE_ALMOST_EMPTY_IF ; 0 ; Signed Integer ; +; EMPTY_LATENCY ; 1 ; Signed Integer ; +; USE_MEMORY_BLOCKS ; 0 ; Signed Integer ; +; DATA_WIDTH ; 97 ; Signed Integer ; +; EMPTY_WIDTH ; 0 ; Signed Integer ; ++---------------------+-------+--------------------------------------------------------------------------------------------------------------------+ +Note: In order to hide this table in the UI and the text report file, please set the "Show Parameter Settings in Synthesis Report" option in "Analysis and Synthesis Settings -> More Settings" to "Off". + + ++---------------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Settings for User Entity Instance: nios_system:NiosII|altera_merlin_slave_agent:hex3_s1_translator_avalon_universal_slave_0_agent ; ++---------------------------+-------+---------------------------------------------------------------------------------------------------------+ +; Parameter Name ; Value ; Type ; ++---------------------------+-------+---------------------------------------------------------------------------------------------------------+ +; PKT_BEGIN_BURST ; 74 ; Signed Integer ; +; PKT_DATA_H ; 31 ; Signed Integer ; +; PKT_DATA_L ; 0 ; Signed Integer ; +; PKT_SYMBOL_W ; 8 ; Signed Integer ; +; PKT_BYTEEN_H ; 35 ; Signed Integer ; +; PKT_BYTEEN_L ; 32 ; Signed Integer ; +; PKT_ADDR_H ; 54 ; Signed Integer ; +; PKT_ADDR_L ; 36 ; Signed Integer ; +; PKT_TRANS_LOCK ; 59 ; Signed Integer ; +; PKT_TRANS_COMPRESSED_READ ; 55 ; Signed Integer ; +; PKT_TRANS_POSTED ; 56 ; Signed Integer ; +; PKT_TRANS_WRITE ; 57 ; Signed Integer ; +; PKT_TRANS_READ ; 58 ; Signed Integer ; +; PKT_SRC_ID_H ; 80 ; Signed Integer ; +; PKT_SRC_ID_L ; 76 ; Signed Integer ; +; PKT_DEST_ID_H ; 85 ; Signed Integer ; +; PKT_DEST_ID_L ; 81 ; Signed Integer ; +; PKT_BURSTWRAP_H ; 66 ; Signed Integer ; +; PKT_BURSTWRAP_L ; 64 ; Signed Integer ; +; PKT_BYTE_CNT_H ; 63 ; Signed Integer ; +; PKT_BYTE_CNT_L ; 61 ; Signed Integer ; +; PKT_PROTECTION_H ; 89 ; Signed Integer ; +; PKT_PROTECTION_L ; 87 ; Signed Integer ; +; PKT_RESPONSE_STATUS_H ; 95 ; Signed Integer ; +; PKT_RESPONSE_STATUS_L ; 94 ; Signed Integer ; +; PKT_BURST_SIZE_H ; 69 ; Signed Integer ; +; PKT_BURST_SIZE_L ; 67 ; Signed Integer ; +; ST_DATA_W ; 96 ; Signed Integer ; +; ST_CHANNEL_W ; 18 ; Signed Integer ; +; ADDR_W ; 19 ; Signed Integer ; +; AVS_DATA_W ; 32 ; Signed Integer ; +; AVS_BURSTCOUNT_W ; 3 ; Signed Integer ; +; PKT_SYMBOLS ; 4 ; Signed Integer ; +; PREVENT_FIFO_OVERFLOW ; 1 ; Signed Integer ; +; SUPPRESS_0_BYTEEN_CMD ; 0 ; Signed Integer ; +; USE_READRESPONSE ; 0 ; Signed Integer ; +; USE_WRITERESPONSE ; 0 ; Signed Integer ; +; AVS_BE_W ; 4 ; Signed Integer ; +; BURST_SIZE_W ; 3 ; Signed Integer ; +; FIFO_DATA_W ; 97 ; Signed Integer ; ++---------------------------+-------+---------------------------------------------------------------------------------------------------------+ +Note: In order to hide this table in the UI and the text report file, please set the "Show Parameter Settings in Synthesis Report" option in "Analysis and Synthesis Settings -> More Settings" to "Off". + + ++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Settings for User Entity Instance: nios_system:NiosII|altera_merlin_slave_agent:hex3_s1_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor ; ++----------------+-------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Name ; Value ; Type ; ++----------------+-------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; ADDR_W ; 19 ; Signed Integer ; +; BURSTWRAP_W ; 3 ; Signed Integer ; +; BYTE_CNT_W ; 3 ; Signed Integer ; +; PKT_SYMBOLS ; 4 ; Signed Integer ; +; BURST_SIZE_W ; 3 ; Signed Integer ; ++----------------+-------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +Note: In order to hide this table in the UI and the text report file, please set the "Show Parameter Settings in Synthesis Report" option in "Analysis and Synthesis Settings -> More Settings" to "Off". + + ++--------------------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Settings for User Entity Instance: nios_system:NiosII|altera_avalon_sc_fifo:hex3_s1_translator_avalon_universal_slave_0_agent_rsp_fifo ; ++---------------------+-------+--------------------------------------------------------------------------------------------------------------------+ +; Parameter Name ; Value ; Type ; ++---------------------+-------+--------------------------------------------------------------------------------------------------------------------+ +; SYMBOLS_PER_BEAT ; 1 ; Signed Integer ; +; BITS_PER_SYMBOL ; 97 ; Signed Integer ; +; FIFO_DEPTH ; 2 ; Signed Integer ; +; CHANNEL_WIDTH ; 0 ; Signed Integer ; +; ERROR_WIDTH ; 0 ; Signed Integer ; +; USE_PACKETS ; 1 ; Signed Integer ; +; USE_FILL_LEVEL ; 0 ; Signed Integer ; +; USE_STORE_FORWARD ; 0 ; Signed Integer ; +; USE_ALMOST_FULL_IF ; 0 ; Signed Integer ; +; USE_ALMOST_EMPTY_IF ; 0 ; Signed Integer ; +; EMPTY_LATENCY ; 1 ; Signed Integer ; +; USE_MEMORY_BLOCKS ; 0 ; Signed Integer ; +; DATA_WIDTH ; 97 ; Signed Integer ; +; EMPTY_WIDTH ; 0 ; Signed Integer ; ++---------------------+-------+--------------------------------------------------------------------------------------------------------------------+ +Note: In order to hide this table in the UI and the text report file, please set the "Show Parameter Settings in Synthesis Report" option in "Analysis and Synthesis Settings -> More Settings" to "Off". + + ++---------------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Settings for User Entity Instance: nios_system:NiosII|altera_merlin_slave_agent:hex4_s1_translator_avalon_universal_slave_0_agent ; ++---------------------------+-------+---------------------------------------------------------------------------------------------------------+ +; Parameter Name ; Value ; Type ; ++---------------------------+-------+---------------------------------------------------------------------------------------------------------+ +; PKT_BEGIN_BURST ; 74 ; Signed Integer ; +; PKT_DATA_H ; 31 ; Signed Integer ; +; PKT_DATA_L ; 0 ; Signed Integer ; +; PKT_SYMBOL_W ; 8 ; Signed Integer ; +; PKT_BYTEEN_H ; 35 ; Signed Integer ; +; PKT_BYTEEN_L ; 32 ; Signed Integer ; +; PKT_ADDR_H ; 54 ; Signed Integer ; +; PKT_ADDR_L ; 36 ; Signed Integer ; +; PKT_TRANS_LOCK ; 59 ; Signed Integer ; +; PKT_TRANS_COMPRESSED_READ ; 55 ; Signed Integer ; +; PKT_TRANS_POSTED ; 56 ; Signed Integer ; +; PKT_TRANS_WRITE ; 57 ; Signed Integer ; +; PKT_TRANS_READ ; 58 ; Signed Integer ; +; PKT_SRC_ID_H ; 80 ; Signed Integer ; +; PKT_SRC_ID_L ; 76 ; Signed Integer ; +; PKT_DEST_ID_H ; 85 ; Signed Integer ; +; PKT_DEST_ID_L ; 81 ; Signed Integer ; +; PKT_BURSTWRAP_H ; 66 ; Signed Integer ; +; PKT_BURSTWRAP_L ; 64 ; Signed Integer ; +; PKT_BYTE_CNT_H ; 63 ; Signed Integer ; +; PKT_BYTE_CNT_L ; 61 ; Signed Integer ; +; PKT_PROTECTION_H ; 89 ; Signed Integer ; +; PKT_PROTECTION_L ; 87 ; Signed Integer ; +; PKT_RESPONSE_STATUS_H ; 95 ; Signed Integer ; +; PKT_RESPONSE_STATUS_L ; 94 ; Signed Integer ; +; PKT_BURST_SIZE_H ; 69 ; Signed Integer ; +; PKT_BURST_SIZE_L ; 67 ; Signed Integer ; +; ST_DATA_W ; 96 ; Signed Integer ; +; ST_CHANNEL_W ; 18 ; Signed Integer ; +; ADDR_W ; 19 ; Signed Integer ; +; AVS_DATA_W ; 32 ; Signed Integer ; +; AVS_BURSTCOUNT_W ; 3 ; Signed Integer ; +; PKT_SYMBOLS ; 4 ; Signed Integer ; +; PREVENT_FIFO_OVERFLOW ; 1 ; Signed Integer ; +; SUPPRESS_0_BYTEEN_CMD ; 0 ; Signed Integer ; +; USE_READRESPONSE ; 0 ; Signed Integer ; +; USE_WRITERESPONSE ; 0 ; Signed Integer ; +; AVS_BE_W ; 4 ; Signed Integer ; +; BURST_SIZE_W ; 3 ; Signed Integer ; +; FIFO_DATA_W ; 97 ; Signed Integer ; ++---------------------------+-------+---------------------------------------------------------------------------------------------------------+ +Note: In order to hide this table in the UI and the text report file, please set the "Show Parameter Settings in Synthesis Report" option in "Analysis and Synthesis Settings -> More Settings" to "Off". + + ++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Settings for User Entity Instance: nios_system:NiosII|altera_merlin_slave_agent:hex4_s1_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor ; ++----------------+-------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Name ; Value ; Type ; ++----------------+-------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; ADDR_W ; 19 ; Signed Integer ; +; BURSTWRAP_W ; 3 ; Signed Integer ; +; BYTE_CNT_W ; 3 ; Signed Integer ; +; PKT_SYMBOLS ; 4 ; Signed Integer ; +; BURST_SIZE_W ; 3 ; Signed Integer ; ++----------------+-------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +Note: In order to hide this table in the UI and the text report file, please set the "Show Parameter Settings in Synthesis Report" option in "Analysis and Synthesis Settings -> More Settings" to "Off". + + ++--------------------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Settings for User Entity Instance: nios_system:NiosII|altera_avalon_sc_fifo:hex4_s1_translator_avalon_universal_slave_0_agent_rsp_fifo ; ++---------------------+-------+--------------------------------------------------------------------------------------------------------------------+ +; Parameter Name ; Value ; Type ; ++---------------------+-------+--------------------------------------------------------------------------------------------------------------------+ +; SYMBOLS_PER_BEAT ; 1 ; Signed Integer ; +; BITS_PER_SYMBOL ; 97 ; Signed Integer ; +; FIFO_DEPTH ; 2 ; Signed Integer ; +; CHANNEL_WIDTH ; 0 ; Signed Integer ; +; ERROR_WIDTH ; 0 ; Signed Integer ; +; USE_PACKETS ; 1 ; Signed Integer ; +; USE_FILL_LEVEL ; 0 ; Signed Integer ; +; USE_STORE_FORWARD ; 0 ; Signed Integer ; +; USE_ALMOST_FULL_IF ; 0 ; Signed Integer ; +; USE_ALMOST_EMPTY_IF ; 0 ; Signed Integer ; +; EMPTY_LATENCY ; 1 ; Signed Integer ; +; USE_MEMORY_BLOCKS ; 0 ; Signed Integer ; +; DATA_WIDTH ; 97 ; Signed Integer ; +; EMPTY_WIDTH ; 0 ; Signed Integer ; ++---------------------+-------+--------------------------------------------------------------------------------------------------------------------+ +Note: In order to hide this table in the UI and the text report file, please set the "Show Parameter Settings in Synthesis Report" option in "Analysis and Synthesis Settings -> More Settings" to "Off". + + ++---------------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Settings for User Entity Instance: nios_system:NiosII|altera_merlin_slave_agent:hex5_s1_translator_avalon_universal_slave_0_agent ; ++---------------------------+-------+---------------------------------------------------------------------------------------------------------+ +; Parameter Name ; Value ; Type ; ++---------------------------+-------+---------------------------------------------------------------------------------------------------------+ +; PKT_BEGIN_BURST ; 74 ; Signed Integer ; +; PKT_DATA_H ; 31 ; Signed Integer ; +; PKT_DATA_L ; 0 ; Signed Integer ; +; PKT_SYMBOL_W ; 8 ; Signed Integer ; +; PKT_BYTEEN_H ; 35 ; Signed Integer ; +; PKT_BYTEEN_L ; 32 ; Signed Integer ; +; PKT_ADDR_H ; 54 ; Signed Integer ; +; PKT_ADDR_L ; 36 ; Signed Integer ; +; PKT_TRANS_LOCK ; 59 ; Signed Integer ; +; PKT_TRANS_COMPRESSED_READ ; 55 ; Signed Integer ; +; PKT_TRANS_POSTED ; 56 ; Signed Integer ; +; PKT_TRANS_WRITE ; 57 ; Signed Integer ; +; PKT_TRANS_READ ; 58 ; Signed Integer ; +; PKT_SRC_ID_H ; 80 ; Signed Integer ; +; PKT_SRC_ID_L ; 76 ; Signed Integer ; +; PKT_DEST_ID_H ; 85 ; Signed Integer ; +; PKT_DEST_ID_L ; 81 ; Signed Integer ; +; PKT_BURSTWRAP_H ; 66 ; Signed Integer ; +; PKT_BURSTWRAP_L ; 64 ; Signed Integer ; +; PKT_BYTE_CNT_H ; 63 ; Signed Integer ; +; PKT_BYTE_CNT_L ; 61 ; Signed Integer ; +; PKT_PROTECTION_H ; 89 ; Signed Integer ; +; PKT_PROTECTION_L ; 87 ; Signed Integer ; +; PKT_RESPONSE_STATUS_H ; 95 ; Signed Integer ; +; PKT_RESPONSE_STATUS_L ; 94 ; Signed Integer ; +; PKT_BURST_SIZE_H ; 69 ; Signed Integer ; +; PKT_BURST_SIZE_L ; 67 ; Signed Integer ; +; ST_DATA_W ; 96 ; Signed Integer ; +; ST_CHANNEL_W ; 18 ; Signed Integer ; +; ADDR_W ; 19 ; Signed Integer ; +; AVS_DATA_W ; 32 ; Signed Integer ; +; AVS_BURSTCOUNT_W ; 3 ; Signed Integer ; +; PKT_SYMBOLS ; 4 ; Signed Integer ; +; PREVENT_FIFO_OVERFLOW ; 1 ; Signed Integer ; +; SUPPRESS_0_BYTEEN_CMD ; 0 ; Signed Integer ; +; USE_READRESPONSE ; 0 ; Signed Integer ; +; USE_WRITERESPONSE ; 0 ; Signed Integer ; +; AVS_BE_W ; 4 ; Signed Integer ; +; BURST_SIZE_W ; 3 ; Signed Integer ; +; FIFO_DATA_W ; 97 ; Signed Integer ; ++---------------------------+-------+---------------------------------------------------------------------------------------------------------+ +Note: In order to hide this table in the UI and the text report file, please set the "Show Parameter Settings in Synthesis Report" option in "Analysis and Synthesis Settings -> More Settings" to "Off". + + ++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Settings for User Entity Instance: nios_system:NiosII|altera_merlin_slave_agent:hex5_s1_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor ; ++----------------+-------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Name ; Value ; Type ; ++----------------+-------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; ADDR_W ; 19 ; Signed Integer ; +; BURSTWRAP_W ; 3 ; Signed Integer ; +; BYTE_CNT_W ; 3 ; Signed Integer ; +; PKT_SYMBOLS ; 4 ; Signed Integer ; +; BURST_SIZE_W ; 3 ; Signed Integer ; ++----------------+-------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +Note: In order to hide this table in the UI and the text report file, please set the "Show Parameter Settings in Synthesis Report" option in "Analysis and Synthesis Settings -> More Settings" to "Off". + + ++--------------------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Settings for User Entity Instance: nios_system:NiosII|altera_avalon_sc_fifo:hex5_s1_translator_avalon_universal_slave_0_agent_rsp_fifo ; ++---------------------+-------+--------------------------------------------------------------------------------------------------------------------+ +; Parameter Name ; Value ; Type ; ++---------------------+-------+--------------------------------------------------------------------------------------------------------------------+ +; SYMBOLS_PER_BEAT ; 1 ; Signed Integer ; +; BITS_PER_SYMBOL ; 97 ; Signed Integer ; +; FIFO_DEPTH ; 2 ; Signed Integer ; +; CHANNEL_WIDTH ; 0 ; Signed Integer ; +; ERROR_WIDTH ; 0 ; Signed Integer ; +; USE_PACKETS ; 1 ; Signed Integer ; +; USE_FILL_LEVEL ; 0 ; Signed Integer ; +; USE_STORE_FORWARD ; 0 ; Signed Integer ; +; USE_ALMOST_FULL_IF ; 0 ; Signed Integer ; +; USE_ALMOST_EMPTY_IF ; 0 ; Signed Integer ; +; EMPTY_LATENCY ; 1 ; Signed Integer ; +; USE_MEMORY_BLOCKS ; 0 ; Signed Integer ; +; DATA_WIDTH ; 97 ; Signed Integer ; +; EMPTY_WIDTH ; 0 ; Signed Integer ; ++---------------------+-------+--------------------------------------------------------------------------------------------------------------------+ +Note: In order to hide this table in the UI and the text report file, please set the "Show Parameter Settings in Synthesis Report" option in "Analysis and Synthesis Settings -> More Settings" to "Off". + + ++---------------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Settings for User Entity Instance: nios_system:NiosII|altera_merlin_slave_agent:hex6_s1_translator_avalon_universal_slave_0_agent ; ++---------------------------+-------+---------------------------------------------------------------------------------------------------------+ +; Parameter Name ; Value ; Type ; ++---------------------------+-------+---------------------------------------------------------------------------------------------------------+ +; PKT_BEGIN_BURST ; 74 ; Signed Integer ; +; PKT_DATA_H ; 31 ; Signed Integer ; +; PKT_DATA_L ; 0 ; Signed Integer ; +; PKT_SYMBOL_W ; 8 ; Signed Integer ; +; PKT_BYTEEN_H ; 35 ; Signed Integer ; +; PKT_BYTEEN_L ; 32 ; Signed Integer ; +; PKT_ADDR_H ; 54 ; Signed Integer ; +; PKT_ADDR_L ; 36 ; Signed Integer ; +; PKT_TRANS_LOCK ; 59 ; Signed Integer ; +; PKT_TRANS_COMPRESSED_READ ; 55 ; Signed Integer ; +; PKT_TRANS_POSTED ; 56 ; Signed Integer ; +; PKT_TRANS_WRITE ; 57 ; Signed Integer ; +; PKT_TRANS_READ ; 58 ; Signed Integer ; +; PKT_SRC_ID_H ; 80 ; Signed Integer ; +; PKT_SRC_ID_L ; 76 ; Signed Integer ; +; PKT_DEST_ID_H ; 85 ; Signed Integer ; +; PKT_DEST_ID_L ; 81 ; Signed Integer ; +; PKT_BURSTWRAP_H ; 66 ; Signed Integer ; +; PKT_BURSTWRAP_L ; 64 ; Signed Integer ; +; PKT_BYTE_CNT_H ; 63 ; Signed Integer ; +; PKT_BYTE_CNT_L ; 61 ; Signed Integer ; +; PKT_PROTECTION_H ; 89 ; Signed Integer ; +; PKT_PROTECTION_L ; 87 ; Signed Integer ; +; PKT_RESPONSE_STATUS_H ; 95 ; Signed Integer ; +; PKT_RESPONSE_STATUS_L ; 94 ; Signed Integer ; +; PKT_BURST_SIZE_H ; 69 ; Signed Integer ; +; PKT_BURST_SIZE_L ; 67 ; Signed Integer ; +; ST_DATA_W ; 96 ; Signed Integer ; +; ST_CHANNEL_W ; 18 ; Signed Integer ; +; ADDR_W ; 19 ; Signed Integer ; +; AVS_DATA_W ; 32 ; Signed Integer ; +; AVS_BURSTCOUNT_W ; 3 ; Signed Integer ; +; PKT_SYMBOLS ; 4 ; Signed Integer ; +; PREVENT_FIFO_OVERFLOW ; 1 ; Signed Integer ; +; SUPPRESS_0_BYTEEN_CMD ; 0 ; Signed Integer ; +; USE_READRESPONSE ; 0 ; Signed Integer ; +; USE_WRITERESPONSE ; 0 ; Signed Integer ; +; AVS_BE_W ; 4 ; Signed Integer ; +; BURST_SIZE_W ; 3 ; Signed Integer ; +; FIFO_DATA_W ; 97 ; Signed Integer ; ++---------------------------+-------+---------------------------------------------------------------------------------------------------------+ +Note: In order to hide this table in the UI and the text report file, please set the "Show Parameter Settings in Synthesis Report" option in "Analysis and Synthesis Settings -> More Settings" to "Off". + + ++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Settings for User Entity Instance: nios_system:NiosII|altera_merlin_slave_agent:hex6_s1_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor ; ++----------------+-------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Name ; Value ; Type ; ++----------------+-------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; ADDR_W ; 19 ; Signed Integer ; +; BURSTWRAP_W ; 3 ; Signed Integer ; +; BYTE_CNT_W ; 3 ; Signed Integer ; +; PKT_SYMBOLS ; 4 ; Signed Integer ; +; BURST_SIZE_W ; 3 ; Signed Integer ; ++----------------+-------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +Note: In order to hide this table in the UI and the text report file, please set the "Show Parameter Settings in Synthesis Report" option in "Analysis and Synthesis Settings -> More Settings" to "Off". + + ++--------------------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Settings for User Entity Instance: nios_system:NiosII|altera_avalon_sc_fifo:hex6_s1_translator_avalon_universal_slave_0_agent_rsp_fifo ; ++---------------------+-------+--------------------------------------------------------------------------------------------------------------------+ +; Parameter Name ; Value ; Type ; ++---------------------+-------+--------------------------------------------------------------------------------------------------------------------+ +; SYMBOLS_PER_BEAT ; 1 ; Signed Integer ; +; BITS_PER_SYMBOL ; 97 ; Signed Integer ; +; FIFO_DEPTH ; 2 ; Signed Integer ; +; CHANNEL_WIDTH ; 0 ; Signed Integer ; +; ERROR_WIDTH ; 0 ; Signed Integer ; +; USE_PACKETS ; 1 ; Signed Integer ; +; USE_FILL_LEVEL ; 0 ; Signed Integer ; +; USE_STORE_FORWARD ; 0 ; Signed Integer ; +; USE_ALMOST_FULL_IF ; 0 ; Signed Integer ; +; USE_ALMOST_EMPTY_IF ; 0 ; Signed Integer ; +; EMPTY_LATENCY ; 1 ; Signed Integer ; +; USE_MEMORY_BLOCKS ; 0 ; Signed Integer ; +; DATA_WIDTH ; 97 ; Signed Integer ; +; EMPTY_WIDTH ; 0 ; Signed Integer ; ++---------------------+-------+--------------------------------------------------------------------------------------------------------------------+ +Note: In order to hide this table in the UI and the text report file, please set the "Show Parameter Settings in Synthesis Report" option in "Analysis and Synthesis Settings -> More Settings" to "Off". + + ++---------------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Settings for User Entity Instance: nios_system:NiosII|altera_merlin_slave_agent:hex7_s1_translator_avalon_universal_slave_0_agent ; ++---------------------------+-------+---------------------------------------------------------------------------------------------------------+ +; Parameter Name ; Value ; Type ; ++---------------------------+-------+---------------------------------------------------------------------------------------------------------+ +; PKT_BEGIN_BURST ; 74 ; Signed Integer ; +; PKT_DATA_H ; 31 ; Signed Integer ; +; PKT_DATA_L ; 0 ; Signed Integer ; +; PKT_SYMBOL_W ; 8 ; Signed Integer ; +; PKT_BYTEEN_H ; 35 ; Signed Integer ; +; PKT_BYTEEN_L ; 32 ; Signed Integer ; +; PKT_ADDR_H ; 54 ; Signed Integer ; +; PKT_ADDR_L ; 36 ; Signed Integer ; +; PKT_TRANS_LOCK ; 59 ; Signed Integer ; +; PKT_TRANS_COMPRESSED_READ ; 55 ; Signed Integer ; +; PKT_TRANS_POSTED ; 56 ; Signed Integer ; +; PKT_TRANS_WRITE ; 57 ; Signed Integer ; +; PKT_TRANS_READ ; 58 ; Signed Integer ; +; PKT_SRC_ID_H ; 80 ; Signed Integer ; +; PKT_SRC_ID_L ; 76 ; Signed Integer ; +; PKT_DEST_ID_H ; 85 ; Signed Integer ; +; PKT_DEST_ID_L ; 81 ; Signed Integer ; +; PKT_BURSTWRAP_H ; 66 ; Signed Integer ; +; PKT_BURSTWRAP_L ; 64 ; Signed Integer ; +; PKT_BYTE_CNT_H ; 63 ; Signed Integer ; +; PKT_BYTE_CNT_L ; 61 ; Signed Integer ; +; PKT_PROTECTION_H ; 89 ; Signed Integer ; +; PKT_PROTECTION_L ; 87 ; Signed Integer ; +; PKT_RESPONSE_STATUS_H ; 95 ; Signed Integer ; +; PKT_RESPONSE_STATUS_L ; 94 ; Signed Integer ; +; PKT_BURST_SIZE_H ; 69 ; Signed Integer ; +; PKT_BURST_SIZE_L ; 67 ; Signed Integer ; +; ST_DATA_W ; 96 ; Signed Integer ; +; ST_CHANNEL_W ; 18 ; Signed Integer ; +; ADDR_W ; 19 ; Signed Integer ; +; AVS_DATA_W ; 32 ; Signed Integer ; +; AVS_BURSTCOUNT_W ; 3 ; Signed Integer ; +; PKT_SYMBOLS ; 4 ; Signed Integer ; +; PREVENT_FIFO_OVERFLOW ; 1 ; Signed Integer ; +; SUPPRESS_0_BYTEEN_CMD ; 0 ; Signed Integer ; +; USE_READRESPONSE ; 0 ; Signed Integer ; +; USE_WRITERESPONSE ; 0 ; Signed Integer ; +; AVS_BE_W ; 4 ; Signed Integer ; +; BURST_SIZE_W ; 3 ; Signed Integer ; +; FIFO_DATA_W ; 97 ; Signed Integer ; ++---------------------------+-------+---------------------------------------------------------------------------------------------------------+ +Note: In order to hide this table in the UI and the text report file, please set the "Show Parameter Settings in Synthesis Report" option in "Analysis and Synthesis Settings -> More Settings" to "Off". + + ++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Settings for User Entity Instance: nios_system:NiosII|altera_merlin_slave_agent:hex7_s1_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor ; ++----------------+-------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Name ; Value ; Type ; ++----------------+-------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; ADDR_W ; 19 ; Signed Integer ; +; BURSTWRAP_W ; 3 ; Signed Integer ; +; BYTE_CNT_W ; 3 ; Signed Integer ; +; PKT_SYMBOLS ; 4 ; Signed Integer ; +; BURST_SIZE_W ; 3 ; Signed Integer ; ++----------------+-------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +Note: In order to hide this table in the UI and the text report file, please set the "Show Parameter Settings in Synthesis Report" option in "Analysis and Synthesis Settings -> More Settings" to "Off". + + ++--------------------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Settings for User Entity Instance: nios_system:NiosII|altera_avalon_sc_fifo:hex7_s1_translator_avalon_universal_slave_0_agent_rsp_fifo ; ++---------------------+-------+--------------------------------------------------------------------------------------------------------------------+ +; Parameter Name ; Value ; Type ; ++---------------------+-------+--------------------------------------------------------------------------------------------------------------------+ +; SYMBOLS_PER_BEAT ; 1 ; Signed Integer ; +; BITS_PER_SYMBOL ; 97 ; Signed Integer ; +; FIFO_DEPTH ; 2 ; Signed Integer ; +; CHANNEL_WIDTH ; 0 ; Signed Integer ; +; ERROR_WIDTH ; 0 ; Signed Integer ; +; USE_PACKETS ; 1 ; Signed Integer ; +; USE_FILL_LEVEL ; 0 ; Signed Integer ; +; USE_STORE_FORWARD ; 0 ; Signed Integer ; +; USE_ALMOST_FULL_IF ; 0 ; Signed Integer ; +; USE_ALMOST_EMPTY_IF ; 0 ; Signed Integer ; +; EMPTY_LATENCY ; 1 ; Signed Integer ; +; USE_MEMORY_BLOCKS ; 0 ; Signed Integer ; +; DATA_WIDTH ; 97 ; Signed Integer ; +; EMPTY_WIDTH ; 0 ; Signed Integer ; ++---------------------+-------+--------------------------------------------------------------------------------------------------------------------+ +Note: In order to hide this table in the UI and the text report file, please set the "Show Parameter Settings in Synthesis Report" option in "Analysis and Synthesis Settings -> More Settings" to "Off". + + ++---------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Settings for User Entity Instance: nios_system:NiosII|altera_merlin_slave_agent:lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent ; ++---------------------------+-------+---------------------------------------------------------------------------------------------------------------------------+ +; Parameter Name ; Value ; Type ; ++---------------------------+-------+---------------------------------------------------------------------------------------------------------------------------+ +; PKT_BEGIN_BURST ; 74 ; Signed Integer ; +; PKT_DATA_H ; 31 ; Signed Integer ; +; PKT_DATA_L ; 0 ; Signed Integer ; +; PKT_SYMBOL_W ; 8 ; Signed Integer ; +; PKT_BYTEEN_H ; 35 ; Signed Integer ; +; PKT_BYTEEN_L ; 32 ; Signed Integer ; +; PKT_ADDR_H ; 54 ; Signed Integer ; +; PKT_ADDR_L ; 36 ; Signed Integer ; +; PKT_TRANS_LOCK ; 59 ; Signed Integer ; +; PKT_TRANS_COMPRESSED_READ ; 55 ; Signed Integer ; +; PKT_TRANS_POSTED ; 56 ; Signed Integer ; +; PKT_TRANS_WRITE ; 57 ; Signed Integer ; +; PKT_TRANS_READ ; 58 ; Signed Integer ; +; PKT_SRC_ID_H ; 80 ; Signed Integer ; +; PKT_SRC_ID_L ; 76 ; Signed Integer ; +; PKT_DEST_ID_H ; 85 ; Signed Integer ; +; PKT_DEST_ID_L ; 81 ; Signed Integer ; +; PKT_BURSTWRAP_H ; 66 ; Signed Integer ; +; PKT_BURSTWRAP_L ; 64 ; Signed Integer ; +; PKT_BYTE_CNT_H ; 63 ; Signed Integer ; +; PKT_BYTE_CNT_L ; 61 ; Signed Integer ; +; PKT_PROTECTION_H ; 89 ; Signed Integer ; +; PKT_PROTECTION_L ; 87 ; Signed Integer ; +; PKT_RESPONSE_STATUS_H ; 95 ; Signed Integer ; +; PKT_RESPONSE_STATUS_L ; 94 ; Signed Integer ; +; PKT_BURST_SIZE_H ; 69 ; Signed Integer ; +; PKT_BURST_SIZE_L ; 67 ; Signed Integer ; +; ST_DATA_W ; 96 ; Signed Integer ; +; ST_CHANNEL_W ; 18 ; Signed Integer ; +; ADDR_W ; 19 ; Signed Integer ; +; AVS_DATA_W ; 32 ; Signed Integer ; +; AVS_BURSTCOUNT_W ; 3 ; Signed Integer ; +; PKT_SYMBOLS ; 4 ; Signed Integer ; +; PREVENT_FIFO_OVERFLOW ; 1 ; Signed Integer ; +; SUPPRESS_0_BYTEEN_CMD ; 0 ; Signed Integer ; +; USE_READRESPONSE ; 0 ; Signed Integer ; +; USE_WRITERESPONSE ; 0 ; Signed Integer ; +; AVS_BE_W ; 4 ; Signed Integer ; +; BURST_SIZE_W ; 3 ; Signed Integer ; +; FIFO_DATA_W ; 97 ; Signed Integer ; ++---------------------------+-------+---------------------------------------------------------------------------------------------------------------------------+ +Note: In order to hide this table in the UI and the text report file, please set the "Show Parameter Settings in Synthesis Report" option in "Analysis and Synthesis Settings -> More Settings" to "Off". + + ++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Settings for User Entity Instance: nios_system:NiosII|altera_merlin_slave_agent:lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor ; ++----------------+-------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Name ; Value ; Type ; ++----------------+-------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; ADDR_W ; 19 ; Signed Integer ; +; BURSTWRAP_W ; 3 ; Signed Integer ; +; BYTE_CNT_W ; 3 ; Signed Integer ; +; PKT_SYMBOLS ; 4 ; Signed Integer ; +; BURST_SIZE_W ; 3 ; Signed Integer ; ++----------------+-------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +Note: In order to hide this table in the UI and the text report file, please set the "Show Parameter Settings in Synthesis Report" option in "Analysis and Synthesis Settings -> More Settings" to "Off". + + ++--------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Settings for User Entity Instance: nios_system:NiosII|altera_avalon_sc_fifo:lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rsp_fifo ; ++---------------------+-------+--------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Name ; Value ; Type ; ++---------------------+-------+--------------------------------------------------------------------------------------------------------------------------------------+ +; SYMBOLS_PER_BEAT ; 1 ; Signed Integer ; +; BITS_PER_SYMBOL ; 97 ; Signed Integer ; +; FIFO_DEPTH ; 2 ; Signed Integer ; +; CHANNEL_WIDTH ; 0 ; Signed Integer ; +; ERROR_WIDTH ; 0 ; Signed Integer ; +; USE_PACKETS ; 1 ; Signed Integer ; +; USE_FILL_LEVEL ; 0 ; Signed Integer ; +; USE_STORE_FORWARD ; 0 ; Signed Integer ; +; USE_ALMOST_FULL_IF ; 0 ; Signed Integer ; +; USE_ALMOST_EMPTY_IF ; 0 ; Signed Integer ; +; EMPTY_LATENCY ; 1 ; Signed Integer ; +; USE_MEMORY_BLOCKS ; 0 ; Signed Integer ; +; DATA_WIDTH ; 97 ; Signed Integer ; +; EMPTY_WIDTH ; 0 ; Signed Integer ; ++---------------------+-------+--------------------------------------------------------------------------------------------------------------------------------------+ +Note: In order to hide this table in the UI and the text report file, please set the "Show Parameter Settings in Synthesis Report" option in "Analysis and Synthesis Settings -> More Settings" to "Off". + + ++-----------------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Settings for User Entity Instance: nios_system:NiosII|altera_merlin_slave_agent:lcd_on_s1_translator_avalon_universal_slave_0_agent ; ++---------------------------+-------+-----------------------------------------------------------------------------------------------------------+ +; Parameter Name ; Value ; Type ; ++---------------------------+-------+-----------------------------------------------------------------------------------------------------------+ +; PKT_BEGIN_BURST ; 74 ; Signed Integer ; +; PKT_DATA_H ; 31 ; Signed Integer ; +; PKT_DATA_L ; 0 ; Signed Integer ; +; PKT_SYMBOL_W ; 8 ; Signed Integer ; +; PKT_BYTEEN_H ; 35 ; Signed Integer ; +; PKT_BYTEEN_L ; 32 ; Signed Integer ; +; PKT_ADDR_H ; 54 ; Signed Integer ; +; PKT_ADDR_L ; 36 ; Signed Integer ; +; PKT_TRANS_LOCK ; 59 ; Signed Integer ; +; PKT_TRANS_COMPRESSED_READ ; 55 ; Signed Integer ; +; PKT_TRANS_POSTED ; 56 ; Signed Integer ; +; PKT_TRANS_WRITE ; 57 ; Signed Integer ; +; PKT_TRANS_READ ; 58 ; Signed Integer ; +; PKT_SRC_ID_H ; 80 ; Signed Integer ; +; PKT_SRC_ID_L ; 76 ; Signed Integer ; +; PKT_DEST_ID_H ; 85 ; Signed Integer ; +; PKT_DEST_ID_L ; 81 ; Signed Integer ; +; PKT_BURSTWRAP_H ; 66 ; Signed Integer ; +; PKT_BURSTWRAP_L ; 64 ; Signed Integer ; +; PKT_BYTE_CNT_H ; 63 ; Signed Integer ; +; PKT_BYTE_CNT_L ; 61 ; Signed Integer ; +; PKT_PROTECTION_H ; 89 ; Signed Integer ; +; PKT_PROTECTION_L ; 87 ; Signed Integer ; +; PKT_RESPONSE_STATUS_H ; 95 ; Signed Integer ; +; PKT_RESPONSE_STATUS_L ; 94 ; Signed Integer ; +; PKT_BURST_SIZE_H ; 69 ; Signed Integer ; +; PKT_BURST_SIZE_L ; 67 ; Signed Integer ; +; ST_DATA_W ; 96 ; Signed Integer ; +; ST_CHANNEL_W ; 18 ; Signed Integer ; +; ADDR_W ; 19 ; Signed Integer ; +; AVS_DATA_W ; 32 ; Signed Integer ; +; AVS_BURSTCOUNT_W ; 3 ; Signed Integer ; +; PKT_SYMBOLS ; 4 ; Signed Integer ; +; PREVENT_FIFO_OVERFLOW ; 1 ; Signed Integer ; +; SUPPRESS_0_BYTEEN_CMD ; 0 ; Signed Integer ; +; USE_READRESPONSE ; 0 ; Signed Integer ; +; USE_WRITERESPONSE ; 0 ; Signed Integer ; +; AVS_BE_W ; 4 ; Signed Integer ; +; BURST_SIZE_W ; 3 ; Signed Integer ; +; FIFO_DATA_W ; 97 ; Signed Integer ; ++---------------------------+-------+-----------------------------------------------------------------------------------------------------------+ +Note: In order to hide this table in the UI and the text report file, please set the "Show Parameter Settings in Synthesis Report" option in "Analysis and Synthesis Settings -> More Settings" to "Off". + + ++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Settings for User Entity Instance: nios_system:NiosII|altera_merlin_slave_agent:lcd_on_s1_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor ; ++----------------+-------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Name ; Value ; Type ; ++----------------+-------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; ADDR_W ; 19 ; Signed Integer ; +; BURSTWRAP_W ; 3 ; Signed Integer ; +; BYTE_CNT_W ; 3 ; Signed Integer ; +; PKT_SYMBOLS ; 4 ; Signed Integer ; +; BURST_SIZE_W ; 3 ; Signed Integer ; ++----------------+-------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +Note: In order to hide this table in the UI and the text report file, please set the "Show Parameter Settings in Synthesis Report" option in "Analysis and Synthesis Settings -> More Settings" to "Off". + + ++----------------------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Settings for User Entity Instance: nios_system:NiosII|altera_avalon_sc_fifo:lcd_on_s1_translator_avalon_universal_slave_0_agent_rsp_fifo ; ++---------------------+-------+----------------------------------------------------------------------------------------------------------------------+ +; Parameter Name ; Value ; Type ; ++---------------------+-------+----------------------------------------------------------------------------------------------------------------------+ +; SYMBOLS_PER_BEAT ; 1 ; Signed Integer ; +; BITS_PER_SYMBOL ; 97 ; Signed Integer ; +; FIFO_DEPTH ; 2 ; Signed Integer ; +; CHANNEL_WIDTH ; 0 ; Signed Integer ; +; ERROR_WIDTH ; 0 ; Signed Integer ; +; USE_PACKETS ; 1 ; Signed Integer ; +; USE_FILL_LEVEL ; 0 ; Signed Integer ; +; USE_STORE_FORWARD ; 0 ; Signed Integer ; +; USE_ALMOST_FULL_IF ; 0 ; Signed Integer ; +; USE_ALMOST_EMPTY_IF ; 0 ; Signed Integer ; +; EMPTY_LATENCY ; 1 ; Signed Integer ; +; USE_MEMORY_BLOCKS ; 0 ; Signed Integer ; +; DATA_WIDTH ; 97 ; Signed Integer ; +; EMPTY_WIDTH ; 0 ; Signed Integer ; ++---------------------+-------+----------------------------------------------------------------------------------------------------------------------+ +Note: In order to hide this table in the UI and the text report file, please set the "Show Parameter Settings in Synthesis Report" option in "Analysis and Synthesis Settings -> More Settings" to "Off". + + ++-------------------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Settings for User Entity Instance: nios_system:NiosII|altera_merlin_slave_agent:lcd_blon_s1_translator_avalon_universal_slave_0_agent ; ++---------------------------+-------+-------------------------------------------------------------------------------------------------------------+ +; Parameter Name ; Value ; Type ; ++---------------------------+-------+-------------------------------------------------------------------------------------------------------------+ +; PKT_BEGIN_BURST ; 74 ; Signed Integer ; +; PKT_DATA_H ; 31 ; Signed Integer ; +; PKT_DATA_L ; 0 ; Signed Integer ; +; PKT_SYMBOL_W ; 8 ; Signed Integer ; +; PKT_BYTEEN_H ; 35 ; Signed Integer ; +; PKT_BYTEEN_L ; 32 ; Signed Integer ; +; PKT_ADDR_H ; 54 ; Signed Integer ; +; PKT_ADDR_L ; 36 ; Signed Integer ; +; PKT_TRANS_LOCK ; 59 ; Signed Integer ; +; PKT_TRANS_COMPRESSED_READ ; 55 ; Signed Integer ; +; PKT_TRANS_POSTED ; 56 ; Signed Integer ; +; PKT_TRANS_WRITE ; 57 ; Signed Integer ; +; PKT_TRANS_READ ; 58 ; Signed Integer ; +; PKT_SRC_ID_H ; 80 ; Signed Integer ; +; PKT_SRC_ID_L ; 76 ; Signed Integer ; +; PKT_DEST_ID_H ; 85 ; Signed Integer ; +; PKT_DEST_ID_L ; 81 ; Signed Integer ; +; PKT_BURSTWRAP_H ; 66 ; Signed Integer ; +; PKT_BURSTWRAP_L ; 64 ; Signed Integer ; +; PKT_BYTE_CNT_H ; 63 ; Signed Integer ; +; PKT_BYTE_CNT_L ; 61 ; Signed Integer ; +; PKT_PROTECTION_H ; 89 ; Signed Integer ; +; PKT_PROTECTION_L ; 87 ; Signed Integer ; +; PKT_RESPONSE_STATUS_H ; 95 ; Signed Integer ; +; PKT_RESPONSE_STATUS_L ; 94 ; Signed Integer ; +; PKT_BURST_SIZE_H ; 69 ; Signed Integer ; +; PKT_BURST_SIZE_L ; 67 ; Signed Integer ; +; ST_DATA_W ; 96 ; Signed Integer ; +; ST_CHANNEL_W ; 18 ; Signed Integer ; +; ADDR_W ; 19 ; Signed Integer ; +; AVS_DATA_W ; 32 ; Signed Integer ; +; AVS_BURSTCOUNT_W ; 3 ; Signed Integer ; +; PKT_SYMBOLS ; 4 ; Signed Integer ; +; PREVENT_FIFO_OVERFLOW ; 1 ; Signed Integer ; +; SUPPRESS_0_BYTEEN_CMD ; 0 ; Signed Integer ; +; USE_READRESPONSE ; 0 ; Signed Integer ; +; USE_WRITERESPONSE ; 0 ; Signed Integer ; +; AVS_BE_W ; 4 ; Signed Integer ; +; BURST_SIZE_W ; 3 ; Signed Integer ; +; FIFO_DATA_W ; 97 ; Signed Integer ; ++---------------------------+-------+-------------------------------------------------------------------------------------------------------------+ +Note: In order to hide this table in the UI and the text report file, please set the "Show Parameter Settings in Synthesis Report" option in "Analysis and Synthesis Settings -> More Settings" to "Off". + + ++-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Settings for User Entity Instance: nios_system:NiosII|altera_merlin_slave_agent:lcd_blon_s1_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor ; ++----------------+-------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Name ; Value ; Type ; ++----------------+-------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; ADDR_W ; 19 ; Signed Integer ; +; BURSTWRAP_W ; 3 ; Signed Integer ; +; BYTE_CNT_W ; 3 ; Signed Integer ; +; PKT_SYMBOLS ; 4 ; Signed Integer ; +; BURST_SIZE_W ; 3 ; Signed Integer ; ++----------------+-------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +Note: In order to hide this table in the UI and the text report file, please set the "Show Parameter Settings in Synthesis Report" option in "Analysis and Synthesis Settings -> More Settings" to "Off". + + ++------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Settings for User Entity Instance: nios_system:NiosII|altera_avalon_sc_fifo:lcd_blon_s1_translator_avalon_universal_slave_0_agent_rsp_fifo ; ++---------------------+-------+------------------------------------------------------------------------------------------------------------------------+ +; Parameter Name ; Value ; Type ; ++---------------------+-------+------------------------------------------------------------------------------------------------------------------------+ +; SYMBOLS_PER_BEAT ; 1 ; Signed Integer ; +; BITS_PER_SYMBOL ; 97 ; Signed Integer ; +; FIFO_DEPTH ; 2 ; Signed Integer ; +; CHANNEL_WIDTH ; 0 ; Signed Integer ; +; ERROR_WIDTH ; 0 ; Signed Integer ; +; USE_PACKETS ; 1 ; Signed Integer ; +; USE_FILL_LEVEL ; 0 ; Signed Integer ; +; USE_STORE_FORWARD ; 0 ; Signed Integer ; +; USE_ALMOST_FULL_IF ; 0 ; Signed Integer ; +; USE_ALMOST_EMPTY_IF ; 0 ; Signed Integer ; +; EMPTY_LATENCY ; 1 ; Signed Integer ; +; USE_MEMORY_BLOCKS ; 0 ; Signed Integer ; +; DATA_WIDTH ; 97 ; Signed Integer ; +; EMPTY_WIDTH ; 0 ; Signed Integer ; ++---------------------+-------+------------------------------------------------------------------------------------------------------------------------+ +Note: In order to hide this table in the UI and the text report file, please set the "Show Parameter Settings in Synthesis Report" option in "Analysis and Synthesis Settings -> More Settings" to "Off". + + ++---------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Settings for User Entity Instance: nios_system:NiosII|nios_system_addr_router:addr_router|nios_system_addr_router_default_decode:the_default_decode ; ++--------------------+-------+----------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Name ; Value ; Type ; ++--------------------+-------+----------------------------------------------------------------------------------------------------------------------------------+ +; DEFAULT_CHANNEL ; 1 ; Signed Integer ; +; DEFAULT_WR_CHANNEL ; -1 ; Signed Integer ; +; DEFAULT_RD_CHANNEL ; -1 ; Signed Integer ; +; DEFAULT_DESTID ; 15 ; Signed Integer ; ++--------------------+-------+----------------------------------------------------------------------------------------------------------------------------------+ +Note: In order to hide this table in the UI and the text report file, please set the "Show Parameter Settings in Synthesis Report" option in "Analysis and Synthesis Settings -> More Settings" to "Off". + + ++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Settings for User Entity Instance: nios_system:NiosII|nios_system_addr_router_001:addr_router_001|nios_system_addr_router_001_default_decode:the_default_decode ; ++--------------------+-------+----------------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Name ; Value ; Type ; ++--------------------+-------+----------------------------------------------------------------------------------------------------------------------------------------------+ +; DEFAULT_CHANNEL ; 1 ; Signed Integer ; +; DEFAULT_WR_CHANNEL ; -1 ; Signed Integer ; +; DEFAULT_RD_CHANNEL ; -1 ; Signed Integer ; +; DEFAULT_DESTID ; 15 ; Signed Integer ; ++--------------------+-------+----------------------------------------------------------------------------------------------------------------------------------------------+ +Note: In order to hide this table in the UI and the text report file, please set the "Show Parameter Settings in Synthesis Report" option in "Analysis and Synthesis Settings -> More Settings" to "Off". + + ++---------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Settings for User Entity Instance: nios_system:NiosII|nios_system_id_router:id_router|nios_system_id_router_default_decode:the_default_decode ; ++--------------------+-------+----------------------------------------------------------------------------------------------------------------------------+ +; Parameter Name ; Value ; Type ; ++--------------------+-------+----------------------------------------------------------------------------------------------------------------------------+ +; DEFAULT_CHANNEL ; 0 ; Signed Integer ; +; DEFAULT_WR_CHANNEL ; -1 ; Signed Integer ; +; DEFAULT_RD_CHANNEL ; -1 ; Signed Integer ; +; DEFAULT_DESTID ; 1 ; Signed Integer ; ++--------------------+-------+----------------------------------------------------------------------------------------------------------------------------+ +Note: In order to hide this table in the UI and the text report file, please set the "Show Parameter Settings in Synthesis Report" option in "Analysis and Synthesis Settings -> More Settings" to "Off". + + ++-------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Settings for User Entity Instance: nios_system:NiosII|nios_system_id_router:id_router_001|nios_system_id_router_default_decode:the_default_decode ; ++--------------------+-------+--------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Name ; Value ; Type ; ++--------------------+-------+--------------------------------------------------------------------------------------------------------------------------------+ +; DEFAULT_CHANNEL ; 0 ; Signed Integer ; +; DEFAULT_WR_CHANNEL ; -1 ; Signed Integer ; +; DEFAULT_RD_CHANNEL ; -1 ; Signed Integer ; +; DEFAULT_DESTID ; 1 ; Signed Integer ; ++--------------------+-------+--------------------------------------------------------------------------------------------------------------------------------+ +Note: In order to hide this table in the UI and the text report file, please set the "Show Parameter Settings in Synthesis Report" option in "Analysis and Synthesis Settings -> More Settings" to "Off". + + ++---------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Settings for User Entity Instance: nios_system:NiosII|nios_system_id_router_002:id_router_002|nios_system_id_router_002_default_decode:the_default_decode ; ++--------------------+-------+----------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Name ; Value ; Type ; ++--------------------+-------+----------------------------------------------------------------------------------------------------------------------------------------+ +; DEFAULT_CHANNEL ; 0 ; Signed Integer ; +; DEFAULT_WR_CHANNEL ; -1 ; Signed Integer ; +; DEFAULT_RD_CHANNEL ; -1 ; Signed Integer ; +; DEFAULT_DESTID ; 0 ; Signed Integer ; ++--------------------+-------+----------------------------------------------------------------------------------------------------------------------------------------+ +Note: In order to hide this table in the UI and the text report file, please set the "Show Parameter Settings in Synthesis Report" option in "Analysis and Synthesis Settings -> More Settings" to "Off". + + ++---------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Settings for User Entity Instance: nios_system:NiosII|nios_system_id_router_002:id_router_003|nios_system_id_router_002_default_decode:the_default_decode ; ++--------------------+-------+----------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Name ; Value ; Type ; ++--------------------+-------+----------------------------------------------------------------------------------------------------------------------------------------+ +; DEFAULT_CHANNEL ; 0 ; Signed Integer ; +; DEFAULT_WR_CHANNEL ; -1 ; Signed Integer ; +; DEFAULT_RD_CHANNEL ; -1 ; Signed Integer ; +; DEFAULT_DESTID ; 0 ; Signed Integer ; ++--------------------+-------+----------------------------------------------------------------------------------------------------------------------------------------+ +Note: In order to hide this table in the UI and the text report file, please set the "Show Parameter Settings in Synthesis Report" option in "Analysis and Synthesis Settings -> More Settings" to "Off". + + ++---------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Settings for User Entity Instance: nios_system:NiosII|nios_system_id_router_002:id_router_004|nios_system_id_router_002_default_decode:the_default_decode ; ++--------------------+-------+----------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Name ; Value ; Type ; ++--------------------+-------+----------------------------------------------------------------------------------------------------------------------------------------+ +; DEFAULT_CHANNEL ; 0 ; Signed Integer ; +; DEFAULT_WR_CHANNEL ; -1 ; Signed Integer ; +; DEFAULT_RD_CHANNEL ; -1 ; Signed Integer ; +; DEFAULT_DESTID ; 0 ; Signed Integer ; ++--------------------+-------+----------------------------------------------------------------------------------------------------------------------------------------+ +Note: In order to hide this table in the UI and the text report file, please set the "Show Parameter Settings in Synthesis Report" option in "Analysis and Synthesis Settings -> More Settings" to "Off". + + ++---------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Settings for User Entity Instance: nios_system:NiosII|nios_system_id_router_002:id_router_005|nios_system_id_router_002_default_decode:the_default_decode ; ++--------------------+-------+----------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Name ; Value ; Type ; ++--------------------+-------+----------------------------------------------------------------------------------------------------------------------------------------+ +; DEFAULT_CHANNEL ; 0 ; Signed Integer ; +; DEFAULT_WR_CHANNEL ; -1 ; Signed Integer ; +; DEFAULT_RD_CHANNEL ; -1 ; Signed Integer ; +; DEFAULT_DESTID ; 0 ; Signed Integer ; ++--------------------+-------+----------------------------------------------------------------------------------------------------------------------------------------+ +Note: In order to hide this table in the UI and the text report file, please set the "Show Parameter Settings in Synthesis Report" option in "Analysis and Synthesis Settings -> More Settings" to "Off". + + ++---------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Settings for User Entity Instance: nios_system:NiosII|nios_system_id_router_002:id_router_006|nios_system_id_router_002_default_decode:the_default_decode ; ++--------------------+-------+----------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Name ; Value ; Type ; ++--------------------+-------+----------------------------------------------------------------------------------------------------------------------------------------+ +; DEFAULT_CHANNEL ; 0 ; Signed Integer ; +; DEFAULT_WR_CHANNEL ; -1 ; Signed Integer ; +; DEFAULT_RD_CHANNEL ; -1 ; Signed Integer ; +; DEFAULT_DESTID ; 0 ; Signed Integer ; ++--------------------+-------+----------------------------------------------------------------------------------------------------------------------------------------+ +Note: In order to hide this table in the UI and the text report file, please set the "Show Parameter Settings in Synthesis Report" option in "Analysis and Synthesis Settings -> More Settings" to "Off". + + ++---------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Settings for User Entity Instance: nios_system:NiosII|nios_system_id_router_002:id_router_007|nios_system_id_router_002_default_decode:the_default_decode ; ++--------------------+-------+----------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Name ; Value ; Type ; ++--------------------+-------+----------------------------------------------------------------------------------------------------------------------------------------+ +; DEFAULT_CHANNEL ; 0 ; Signed Integer ; +; DEFAULT_WR_CHANNEL ; -1 ; Signed Integer ; +; DEFAULT_RD_CHANNEL ; -1 ; Signed Integer ; +; DEFAULT_DESTID ; 0 ; Signed Integer ; ++--------------------+-------+----------------------------------------------------------------------------------------------------------------------------------------+ +Note: In order to hide this table in the UI and the text report file, please set the "Show Parameter Settings in Synthesis Report" option in "Analysis and Synthesis Settings -> More Settings" to "Off". + + ++---------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Settings for User Entity Instance: nios_system:NiosII|nios_system_id_router_002:id_router_008|nios_system_id_router_002_default_decode:the_default_decode ; ++--------------------+-------+----------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Name ; Value ; Type ; ++--------------------+-------+----------------------------------------------------------------------------------------------------------------------------------------+ +; DEFAULT_CHANNEL ; 0 ; Signed Integer ; +; DEFAULT_WR_CHANNEL ; -1 ; Signed Integer ; +; DEFAULT_RD_CHANNEL ; -1 ; Signed Integer ; +; DEFAULT_DESTID ; 0 ; Signed Integer ; ++--------------------+-------+----------------------------------------------------------------------------------------------------------------------------------------+ +Note: In order to hide this table in the UI and the text report file, please set the "Show Parameter Settings in Synthesis Report" option in "Analysis and Synthesis Settings -> More Settings" to "Off". + + ++---------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Settings for User Entity Instance: nios_system:NiosII|nios_system_id_router_002:id_router_009|nios_system_id_router_002_default_decode:the_default_decode ; ++--------------------+-------+----------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Name ; Value ; Type ; ++--------------------+-------+----------------------------------------------------------------------------------------------------------------------------------------+ +; DEFAULT_CHANNEL ; 0 ; Signed Integer ; +; DEFAULT_WR_CHANNEL ; -1 ; Signed Integer ; +; DEFAULT_RD_CHANNEL ; -1 ; Signed Integer ; +; DEFAULT_DESTID ; 0 ; Signed Integer ; ++--------------------+-------+----------------------------------------------------------------------------------------------------------------------------------------+ +Note: In order to hide this table in the UI and the text report file, please set the "Show Parameter Settings in Synthesis Report" option in "Analysis and Synthesis Settings -> More Settings" to "Off". + + ++---------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Settings for User Entity Instance: nios_system:NiosII|nios_system_id_router_002:id_router_010|nios_system_id_router_002_default_decode:the_default_decode ; ++--------------------+-------+----------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Name ; Value ; Type ; ++--------------------+-------+----------------------------------------------------------------------------------------------------------------------------------------+ +; DEFAULT_CHANNEL ; 0 ; Signed Integer ; +; DEFAULT_WR_CHANNEL ; -1 ; Signed Integer ; +; DEFAULT_RD_CHANNEL ; -1 ; Signed Integer ; +; DEFAULT_DESTID ; 0 ; Signed Integer ; ++--------------------+-------+----------------------------------------------------------------------------------------------------------------------------------------+ +Note: In order to hide this table in the UI and the text report file, please set the "Show Parameter Settings in Synthesis Report" option in "Analysis and Synthesis Settings -> More Settings" to "Off". + + ++---------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Settings for User Entity Instance: nios_system:NiosII|nios_system_id_router_002:id_router_011|nios_system_id_router_002_default_decode:the_default_decode ; ++--------------------+-------+----------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Name ; Value ; Type ; ++--------------------+-------+----------------------------------------------------------------------------------------------------------------------------------------+ +; DEFAULT_CHANNEL ; 0 ; Signed Integer ; +; DEFAULT_WR_CHANNEL ; -1 ; Signed Integer ; +; DEFAULT_RD_CHANNEL ; -1 ; Signed Integer ; +; DEFAULT_DESTID ; 0 ; Signed Integer ; ++--------------------+-------+----------------------------------------------------------------------------------------------------------------------------------------+ +Note: In order to hide this table in the UI and the text report file, please set the "Show Parameter Settings in Synthesis Report" option in "Analysis and Synthesis Settings -> More Settings" to "Off". + + ++---------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Settings for User Entity Instance: nios_system:NiosII|nios_system_id_router_002:id_router_012|nios_system_id_router_002_default_decode:the_default_decode ; ++--------------------+-------+----------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Name ; Value ; Type ; ++--------------------+-------+----------------------------------------------------------------------------------------------------------------------------------------+ +; DEFAULT_CHANNEL ; 0 ; Signed Integer ; +; DEFAULT_WR_CHANNEL ; -1 ; Signed Integer ; +; DEFAULT_RD_CHANNEL ; -1 ; Signed Integer ; +; DEFAULT_DESTID ; 0 ; Signed Integer ; ++--------------------+-------+----------------------------------------------------------------------------------------------------------------------------------------+ +Note: In order to hide this table in the UI and the text report file, please set the "Show Parameter Settings in Synthesis Report" option in "Analysis and Synthesis Settings -> More Settings" to "Off". + + ++---------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Settings for User Entity Instance: nios_system:NiosII|nios_system_id_router_002:id_router_013|nios_system_id_router_002_default_decode:the_default_decode ; ++--------------------+-------+----------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Name ; Value ; Type ; ++--------------------+-------+----------------------------------------------------------------------------------------------------------------------------------------+ +; DEFAULT_CHANNEL ; 0 ; Signed Integer ; +; DEFAULT_WR_CHANNEL ; -1 ; Signed Integer ; +; DEFAULT_RD_CHANNEL ; -1 ; Signed Integer ; +; DEFAULT_DESTID ; 0 ; Signed Integer ; ++--------------------+-------+----------------------------------------------------------------------------------------------------------------------------------------+ +Note: In order to hide this table in the UI and the text report file, please set the "Show Parameter Settings in Synthesis Report" option in "Analysis and Synthesis Settings -> More Settings" to "Off". + + ++---------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Settings for User Entity Instance: nios_system:NiosII|nios_system_id_router_002:id_router_014|nios_system_id_router_002_default_decode:the_default_decode ; ++--------------------+-------+----------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Name ; Value ; Type ; ++--------------------+-------+----------------------------------------------------------------------------------------------------------------------------------------+ +; DEFAULT_CHANNEL ; 0 ; Signed Integer ; +; DEFAULT_WR_CHANNEL ; -1 ; Signed Integer ; +; DEFAULT_RD_CHANNEL ; -1 ; Signed Integer ; +; DEFAULT_DESTID ; 0 ; Signed Integer ; ++--------------------+-------+----------------------------------------------------------------------------------------------------------------------------------------+ +Note: In order to hide this table in the UI and the text report file, please set the "Show Parameter Settings in Synthesis Report" option in "Analysis and Synthesis Settings -> More Settings" to "Off". + + ++---------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Settings for User Entity Instance: nios_system:NiosII|nios_system_id_router_002:id_router_015|nios_system_id_router_002_default_decode:the_default_decode ; ++--------------------+-------+----------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Name ; Value ; Type ; ++--------------------+-------+----------------------------------------------------------------------------------------------------------------------------------------+ +; DEFAULT_CHANNEL ; 0 ; Signed Integer ; +; DEFAULT_WR_CHANNEL ; -1 ; Signed Integer ; +; DEFAULT_RD_CHANNEL ; -1 ; Signed Integer ; +; DEFAULT_DESTID ; 0 ; Signed Integer ; ++--------------------+-------+----------------------------------------------------------------------------------------------------------------------------------------+ +Note: In order to hide this table in the UI and the text report file, please set the "Show Parameter Settings in Synthesis Report" option in "Analysis and Synthesis Settings -> More Settings" to "Off". + + ++---------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Settings for User Entity Instance: nios_system:NiosII|nios_system_id_router_002:id_router_016|nios_system_id_router_002_default_decode:the_default_decode ; ++--------------------+-------+----------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Name ; Value ; Type ; ++--------------------+-------+----------------------------------------------------------------------------------------------------------------------------------------+ +; DEFAULT_CHANNEL ; 0 ; Signed Integer ; +; DEFAULT_WR_CHANNEL ; -1 ; Signed Integer ; +; DEFAULT_RD_CHANNEL ; -1 ; Signed Integer ; +; DEFAULT_DESTID ; 0 ; Signed Integer ; ++--------------------+-------+----------------------------------------------------------------------------------------------------------------------------------------+ +Note: In order to hide this table in the UI and the text report file, please set the "Show Parameter Settings in Synthesis Report" option in "Analysis and Synthesis Settings -> More Settings" to "Off". + + ++---------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Settings for User Entity Instance: nios_system:NiosII|nios_system_id_router_002:id_router_017|nios_system_id_router_002_default_decode:the_default_decode ; ++--------------------+-------+----------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Name ; Value ; Type ; ++--------------------+-------+----------------------------------------------------------------------------------------------------------------------------------------+ +; DEFAULT_CHANNEL ; 0 ; Signed Integer ; +; DEFAULT_WR_CHANNEL ; -1 ; Signed Integer ; +; DEFAULT_RD_CHANNEL ; -1 ; Signed Integer ; +; DEFAULT_DESTID ; 0 ; Signed Integer ; ++--------------------+-------+----------------------------------------------------------------------------------------------------------------------------------------+ +Note: In order to hide this table in the UI and the text report file, please set the "Show Parameter Settings in Synthesis Report" option in "Analysis and Synthesis Settings -> More Settings" to "Off". + + ++--------------------------------------------------------------------------------------------------------+ +; Parameter Settings for User Entity Instance: nios_system:NiosII|altera_reset_controller:rst_controller ; ++-------------------------+----------+-------------------------------------------------------------------+ +; Parameter Name ; Value ; Type ; ++-------------------------+----------+-------------------------------------------------------------------+ +; NUM_RESET_INPUTS ; 2 ; Signed Integer ; +; OUTPUT_RESET_SYNC_EDGES ; deassert ; String ; +; SYNC_DEPTH ; 2 ; Signed Integer ; +; RESET_REQUEST_PRESENT ; 1 ; Signed Integer ; ++-------------------------+----------+-------------------------------------------------------------------+ +Note: In order to hide this table in the UI and the text report file, please set the "Show Parameter Settings in Synthesis Report" option in "Analysis and Synthesis Settings -> More Settings" to "Off". + + ++---------------------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Settings for User Entity Instance: nios_system:NiosII|altera_reset_controller:rst_controller|altera_reset_synchronizer:alt_rst_sync_uq1 ; ++----------------+-------+--------------------------------------------------------------------------------------------------------------------------+ +; Parameter Name ; Value ; Type ; ++----------------+-------+--------------------------------------------------------------------------------------------------------------------------+ +; ASYNC_RESET ; 1 ; Unsigned Binary ; +; DEPTH ; 2 ; Signed Integer ; ++----------------+-------+--------------------------------------------------------------------------------------------------------------------------+ +Note: In order to hide this table in the UI and the text report file, please set the "Show Parameter Settings in Synthesis Report" option in "Analysis and Synthesis Settings -> More Settings" to "Off". + + ++------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Settings for User Entity Instance: nios_system:NiosII|nios_system_cmd_xbar_mux:cmd_xbar_mux|altera_merlin_arbitrator:arb ; ++----------------+-------------+-----------------------------------------------------------------------------------------------------+ +; Parameter Name ; Value ; Type ; ++----------------+-------------+-----------------------------------------------------------------------------------------------------+ +; NUM_REQUESTERS ; 2 ; Signed Integer ; +; SCHEME ; round-robin ; String ; +; PIPELINE ; 1 ; Signed Integer ; ++----------------+-------------+-----------------------------------------------------------------------------------------------------+ +Note: In order to hide this table in the UI and the text report file, please set the "Show Parameter Settings in Synthesis Report" option in "Analysis and Synthesis Settings -> More Settings" to "Off". + + ++------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Settings for User Entity Instance: nios_system:NiosII|nios_system_cmd_xbar_mux:cmd_xbar_mux|altera_merlin_arbitrator:arb|altera_merlin_arb_adder:adder ; ++----------------+-------+-----------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Name ; Value ; Type ; ++----------------+-------+-----------------------------------------------------------------------------------------------------------------------------------------+ +; WIDTH ; 4 ; Signed Integer ; ++----------------+-------+-----------------------------------------------------------------------------------------------------------------------------------------+ +Note: In order to hide this table in the UI and the text report file, please set the "Show Parameter Settings in Synthesis Report" option in "Analysis and Synthesis Settings -> More Settings" to "Off". + + ++----------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Settings for User Entity Instance: nios_system:NiosII|nios_system_cmd_xbar_mux:cmd_xbar_mux_001|altera_merlin_arbitrator:arb ; ++----------------+-------------+---------------------------------------------------------------------------------------------------------+ +; Parameter Name ; Value ; Type ; ++----------------+-------------+---------------------------------------------------------------------------------------------------------+ +; NUM_REQUESTERS ; 2 ; Signed Integer ; +; SCHEME ; round-robin ; String ; +; PIPELINE ; 1 ; Signed Integer ; ++----------------+-------------+---------------------------------------------------------------------------------------------------------+ +Note: In order to hide this table in the UI and the text report file, please set the "Show Parameter Settings in Synthesis Report" option in "Analysis and Synthesis Settings -> More Settings" to "Off". + + ++----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Settings for User Entity Instance: nios_system:NiosII|nios_system_cmd_xbar_mux:cmd_xbar_mux_001|altera_merlin_arbitrator:arb|altera_merlin_arb_adder:adder ; ++----------------+-------+---------------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Name ; Value ; Type ; ++----------------+-------+---------------------------------------------------------------------------------------------------------------------------------------------+ +; WIDTH ; 4 ; Signed Integer ; ++----------------+-------+---------------------------------------------------------------------------------------------------------------------------------------------+ +Note: In order to hide this table in the UI and the text report file, please set the "Show Parameter Settings in Synthesis Report" option in "Analysis and Synthesis Settings -> More Settings" to "Off". + + ++------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Settings for User Entity Instance: nios_system:NiosII|nios_system_rsp_xbar_mux:rsp_xbar_mux|altera_merlin_arbitrator:arb ; ++----------------+--------+----------------------------------------------------------------------------------------------------------+ +; Parameter Name ; Value ; Type ; ++----------------+--------+----------------------------------------------------------------------------------------------------------+ +; NUM_REQUESTERS ; 2 ; Signed Integer ; +; SCHEME ; no-arb ; String ; +; PIPELINE ; 0 ; Signed Integer ; ++----------------+--------+----------------------------------------------------------------------------------------------------------+ +Note: In order to hide this table in the UI and the text report file, please set the "Show Parameter Settings in Synthesis Report" option in "Analysis and Synthesis Settings -> More Settings" to "Off". + + ++------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Settings for User Entity Instance: nios_system:NiosII|nios_system_rsp_xbar_mux:rsp_xbar_mux|altera_merlin_arbitrator:arb|altera_merlin_arb_adder:adder ; ++----------------+-------+-----------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Name ; Value ; Type ; ++----------------+-------+-----------------------------------------------------------------------------------------------------------------------------------------+ +; WIDTH ; 4 ; Signed Integer ; ++----------------+-------+-----------------------------------------------------------------------------------------------------------------------------------------+ +Note: In order to hide this table in the UI and the text report file, please set the "Show Parameter Settings in Synthesis Report" option in "Analysis and Synthesis Settings -> More Settings" to "Off". + + ++--------------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Settings for User Entity Instance: nios_system:NiosII|nios_system_rsp_xbar_mux_001:rsp_xbar_mux_001|altera_merlin_arbitrator:arb ; ++----------------+--------+------------------------------------------------------------------------------------------------------------------+ +; Parameter Name ; Value ; Type ; ++----------------+--------+------------------------------------------------------------------------------------------------------------------+ +; NUM_REQUESTERS ; 18 ; Signed Integer ; +; SCHEME ; no-arb ; String ; +; PIPELINE ; 0 ; Signed Integer ; ++----------------+--------+------------------------------------------------------------------------------------------------------------------+ +Note: In order to hide this table in the UI and the text report file, please set the "Show Parameter Settings in Synthesis Report" option in "Analysis and Synthesis Settings -> More Settings" to "Off". + + ++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Settings for User Entity Instance: nios_system:NiosII|nios_system_rsp_xbar_mux_001:rsp_xbar_mux_001|altera_merlin_arbitrator:arb|altera_merlin_arb_adder:adder ; ++----------------+-------+-------------------------------------------------------------------------------------------------------------------------------------------------+ +; Parameter Name ; Value ; Type ; ++----------------+-------+-------------------------------------------------------------------------------------------------------------------------------------------------+ +; WIDTH ; 36 ; Signed Integer ; ++----------------+-------+-------------------------------------------------------------------------------------------------------------------------------------------------+ +Note: In order to hide this table in the UI and the text report file, please set the "Show Parameter Settings in Synthesis Report" option in "Analysis and Synthesis Settings -> More Settings" to "Off". + + ++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; altsyncram Parameter Settings by Entity Instance ; ++-------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Name ; Value ; ++-------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Number of entity instances ; 4 ; +; Entity Instance ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_register_bank_a_module:nios_system_nios2_processor_register_bank_a|altsyncram:the_altsyncram ; +; -- OPERATION_MODE ; DUAL_PORT ; +; -- WIDTH_A ; 32 ; +; -- NUMWORDS_A ; 32 ; +; -- OUTDATA_REG_A ; UNREGISTERED ; +; -- WIDTH_B ; 32 ; +; -- NUMWORDS_B ; 32 ; +; -- ADDRESS_REG_B ; CLOCK0 ; +; -- OUTDATA_REG_B ; UNREGISTERED ; +; -- RAM_BLOCK_TYPE ; AUTO ; +; -- READ_DURING_WRITE_MODE_MIXED_PORTS ; DONT_CARE ; +; Entity Instance ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_register_bank_b_module:nios_system_nios2_processor_register_bank_b|altsyncram:the_altsyncram ; +; -- OPERATION_MODE ; DUAL_PORT ; +; -- WIDTH_A ; 32 ; +; -- NUMWORDS_A ; 32 ; +; -- OUTDATA_REG_A ; UNREGISTERED ; +; -- WIDTH_B ; 32 ; +; -- NUMWORDS_B ; 32 ; +; -- ADDRESS_REG_B ; CLOCK0 ; +; -- OUTDATA_REG_B ; UNREGISTERED ; +; -- RAM_BLOCK_TYPE ; AUTO ; +; -- READ_DURING_WRITE_MODE_MIXED_PORTS ; DONT_CARE ; +; Entity Instance ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_ocimem:the_nios_system_nios2_processor_nios2_ocimem|nios_system_nios2_processor_ociram_sp_ram_module:nios_system_nios2_processor_ociram_sp_ram|altsyncram:the_altsyncram ; +; -- OPERATION_MODE ; SINGLE_PORT ; +; -- WIDTH_A ; 32 ; +; -- NUMWORDS_A ; 256 ; +; -- OUTDATA_REG_A ; UNREGISTERED ; +; -- WIDTH_B ; 1 ; +; -- NUMWORDS_B ; 1 ; +; -- ADDRESS_REG_B ; CLOCK1 ; +; -- OUTDATA_REG_B ; UNREGISTERED ; +; -- RAM_BLOCK_TYPE ; AUTO ; +; -- READ_DURING_WRITE_MODE_MIXED_PORTS ; DONT_CARE ; +; Entity Instance ; nios_system:NiosII|nios_system_onchip_memory:onchip_memory|altsyncram:the_altsyncram ; +; -- OPERATION_MODE ; SINGLE_PORT ; +; -- WIDTH_A ; 32 ; +; -- NUMWORDS_A ; 51200 ; +; -- OUTDATA_REG_A ; UNREGISTERED ; +; -- WIDTH_B ; 1 ; +; -- NUMWORDS_B ; 1 ; +; -- ADDRESS_REG_B ; CLOCK1 ; +; -- OUTDATA_REG_B ; UNREGISTERED ; +; -- RAM_BLOCK_TYPE ; AUTO ; +; -- READ_DURING_WRITE_MODE_MIXED_PORTS ; DONT_CARE ; ++-------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + + ++----------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; scfifo Parameter Settings by Entity Instance ; ++----------------------------+-----------------------------------------------------------------------------------------------------------------------------------+ +; Name ; Value ; ++----------------------------+-----------------------------------------------------------------------------------------------------------------------------------+ +; Number of entity instances ; 2 ; +; Entity Instance ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_w:the_nios_system_jtag_uart_scfifo_w|scfifo:wfifo ; +; -- FIFO Type ; Single Clock ; +; -- lpm_width ; 8 ; +; -- LPM_NUMWORDS ; 64 ; +; -- LPM_SHOWAHEAD ; OFF ; +; -- USE_EAB ; ON ; +; Entity Instance ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_r:the_nios_system_jtag_uart_scfifo_r|scfifo:rfifo ; +; -- FIFO Type ; Single Clock ; +; -- lpm_width ; 8 ; +; -- LPM_NUMWORDS ; 64 ; +; -- LPM_SHOWAHEAD ; OFF ; +; -- USE_EAB ; ON ; ++----------------------------+-----------------------------------------------------------------------------------------------------------------------------------+ + + ++---------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Port Connectivity Checks: "nios_system:NiosII|nios_system_rsp_xbar_mux_001:rsp_xbar_mux_001|altera_merlin_arbitrator:arb|altera_merlin_arb_adder:adder" ; ++----------+--------+----------+--------------------------------------------------------------------------------------------------------------------------+ +; Port ; Type ; Severity ; Details ; ++----------+--------+----------+--------------------------------------------------------------------------------------------------------------------------+ +; b[35..1] ; Input ; Info ; Stuck at GND ; +; b[0] ; Input ; Info ; Stuck at VCC ; +; sum ; Output ; Info ; Connected to dangling logic. Logic that only feeds a dangling port will be removed. ; ++----------+--------+----------+--------------------------------------------------------------------------------------------------------------------------+ + + ++-------------------------------------------------------------------------------------------------------------------------------------------------+ +; Port Connectivity Checks: "nios_system:NiosII|nios_system_rsp_xbar_mux:rsp_xbar_mux|altera_merlin_arbitrator:arb|altera_merlin_arb_adder:adder" ; ++---------+--------+----------+-------------------------------------------------------------------------------------------------------------------+ +; Port ; Type ; Severity ; Details ; ++---------+--------+----------+-------------------------------------------------------------------------------------------------------------------+ +; b[3..1] ; Input ; Info ; Stuck at GND ; +; b[0] ; Input ; Info ; Stuck at VCC ; +; sum ; Output ; Info ; Connected to dangling logic. Logic that only feeds a dangling port will be removed. ; ++---------+--------+----------+-------------------------------------------------------------------------------------------------------------------+ + + ++-------------------------------------------------------------------------------------------------------------------------------------------------+ +; Port Connectivity Checks: "nios_system:NiosII|nios_system_cmd_xbar_mux:cmd_xbar_mux|altera_merlin_arbitrator:arb|altera_merlin_arb_adder:adder" ; ++---------+-------+----------+--------------------------------------------------------------------------------------------------------------------+ +; Port ; Type ; Severity ; Details ; ++---------+-------+----------+--------------------------------------------------------------------------------------------------------------------+ +; b[3..2] ; Input ; Info ; Stuck at GND ; ++---------+-------+----------+--------------------------------------------------------------------------------------------------------------------+ + + ++---------------------------------------------------------------------------------------+ +; Port Connectivity Checks: "nios_system:NiosII|altera_reset_controller:rst_controller" ; ++------------+-------+----------+-------------------------------------------------------+ +; Port ; Type ; Severity ; Details ; ++------------+-------+----------+-------------------------------------------------------+ +; reset_in2 ; Input ; Info ; Stuck at GND ; +; reset_in3 ; Input ; Info ; Stuck at GND ; +; reset_in4 ; Input ; Info ; Stuck at GND ; +; reset_in5 ; Input ; Info ; Stuck at GND ; +; reset_in6 ; Input ; Info ; Stuck at GND ; +; reset_in7 ; Input ; Info ; Stuck at GND ; +; reset_in8 ; Input ; Info ; Stuck at GND ; +; reset_in9 ; Input ; Info ; Stuck at GND ; +; reset_in10 ; Input ; Info ; Stuck at GND ; +; reset_in11 ; Input ; Info ; Stuck at GND ; +; reset_in12 ; Input ; Info ; Stuck at GND ; +; reset_in13 ; Input ; Info ; Stuck at GND ; +; reset_in14 ; Input ; Info ; Stuck at GND ; +; reset_in15 ; Input ; Info ; Stuck at GND ; ++------------+-------+----------+-------------------------------------------------------+ + + ++----------------------------------------------------------------------------------------------------------------------------------------------------+ +; Port Connectivity Checks: "nios_system:NiosII|nios_system_id_router_002:id_router_002|nios_system_id_router_002_default_decode:the_default_decode" ; ++------------------------+--------+----------+-------------------------------------------------------------------------------------------------------+ +; Port ; Type ; Severity ; Details ; ++------------------------+--------+----------+-------------------------------------------------------------------------------------------------------+ +; default_destination_id ; Output ; Info ; Connected to dangling logic. Logic that only feeds a dangling port will be removed. ; +; default_wr_channel ; Output ; Info ; Explicitly unconnected ; +; default_rd_channel ; Output ; Info ; Explicitly unconnected ; ++------------------------+--------+----------+-------------------------------------------------------------------------------------------------------+ + + ++----------------------------------------------------------------------------------------------------------------------------------------+ +; Port Connectivity Checks: "nios_system:NiosII|nios_system_id_router:id_router|nios_system_id_router_default_decode:the_default_decode" ; ++------------------------+--------+----------+-------------------------------------------------------------------------------------------+ +; Port ; Type ; Severity ; Details ; ++------------------------+--------+----------+-------------------------------------------------------------------------------------------+ +; default_destination_id ; Output ; Info ; Connected to dangling logic. Logic that only feeds a dangling port will be removed. ; +; default_wr_channel ; Output ; Info ; Explicitly unconnected ; +; default_rd_channel ; Output ; Info ; Explicitly unconnected ; ++------------------------+--------+----------+-------------------------------------------------------------------------------------------+ + + ++----------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Port Connectivity Checks: "nios_system:NiosII|nios_system_addr_router_001:addr_router_001|nios_system_addr_router_001_default_decode:the_default_decode" ; ++--------------------+--------+----------+-----------------------------------------------------------------------------------------------------------------+ +; Port ; Type ; Severity ; Details ; ++--------------------+--------+----------+-----------------------------------------------------------------------------------------------------------------+ +; default_wr_channel ; Output ; Info ; Explicitly unconnected ; +; default_rd_channel ; Output ; Info ; Explicitly unconnected ; ++--------------------+--------+----------+-----------------------------------------------------------------------------------------------------------------+ + + ++----------------------------------------------------------------------------------------------------------------------------------------------+ +; Port Connectivity Checks: "nios_system:NiosII|nios_system_addr_router:addr_router|nios_system_addr_router_default_decode:the_default_decode" ; ++--------------------+--------+----------+-----------------------------------------------------------------------------------------------------+ +; Port ; Type ; Severity ; Details ; ++--------------------+--------+----------+-----------------------------------------------------------------------------------------------------+ +; default_wr_channel ; Output ; Info ; Explicitly unconnected ; +; default_rd_channel ; Output ; Info ; Explicitly unconnected ; ++--------------------+--------+----------+-----------------------------------------------------------------------------------------------------+ + + ++-------------------------------------------------------------------------------------------------------------------------------------+ +; Port Connectivity Checks: "nios_system:NiosII|altera_avalon_sc_fifo:lcd_blon_s1_translator_avalon_universal_slave_0_agent_rsp_fifo" ; ++-------------------+--------+----------+---------------------------------------------------------------------------------------------+ +; Port ; Type ; Severity ; Details ; ++-------------------+--------+----------+---------------------------------------------------------------------------------------------+ +; csr_address ; Input ; Info ; Stuck at GND ; +; csr_read ; Input ; Info ; Stuck at GND ; +; csr_write ; Input ; Info ; Stuck at GND ; +; csr_readdata ; Output ; Info ; Explicitly unconnected ; +; csr_writedata ; Input ; Info ; Stuck at GND ; +; almost_full_data ; Output ; Info ; Explicitly unconnected ; +; almost_empty_data ; Output ; Info ; Explicitly unconnected ; +; in_empty ; Input ; Info ; Stuck at GND ; +; out_empty ; Output ; Info ; Explicitly unconnected ; +; in_error ; Input ; Info ; Stuck at GND ; +; out_error ; Output ; Info ; Explicitly unconnected ; +; in_channel ; Input ; Info ; Stuck at GND ; +; out_channel ; Output ; Info ; Explicitly unconnected ; ++-------------------+--------+----------+---------------------------------------------------------------------------------------------+ + + ++--------------------------------------------------------------------------------------------------------------------------------+ +; Port Connectivity Checks: "nios_system:NiosII|altera_merlin_slave_agent:lcd_blon_s1_translator_avalon_universal_slave_0_agent" ; ++-------------------------+--------+----------+----------------------------------------------------------------------------------+ +; Port ; Type ; Severity ; Details ; ++-------------------------+--------+----------+----------------------------------------------------------------------------------+ +; m0_response ; Input ; Info ; Stuck at GND ; +; m0_writeresponserequest ; Output ; Info ; Explicitly unconnected ; +; m0_writeresponsevalid ; Input ; Info ; Stuck at GND ; ++-------------------------+--------+----------+----------------------------------------------------------------------------------+ + + ++-----------------------------------------------------------------------------------------------------------------------------------+ +; Port Connectivity Checks: "nios_system:NiosII|altera_avalon_sc_fifo:lcd_on_s1_translator_avalon_universal_slave_0_agent_rsp_fifo" ; ++-------------------+--------+----------+-------------------------------------------------------------------------------------------+ +; Port ; Type ; Severity ; Details ; ++-------------------+--------+----------+-------------------------------------------------------------------------------------------+ +; csr_address ; Input ; Info ; Stuck at GND ; +; csr_read ; Input ; Info ; Stuck at GND ; +; csr_write ; Input ; Info ; Stuck at GND ; +; csr_readdata ; Output ; Info ; Explicitly unconnected ; +; csr_writedata ; Input ; Info ; Stuck at GND ; +; almost_full_data ; Output ; Info ; Explicitly unconnected ; +; almost_empty_data ; Output ; Info ; Explicitly unconnected ; +; in_empty ; Input ; Info ; Stuck at GND ; +; out_empty ; Output ; Info ; Explicitly unconnected ; +; in_error ; Input ; Info ; Stuck at GND ; +; out_error ; Output ; Info ; Explicitly unconnected ; +; in_channel ; Input ; Info ; Stuck at GND ; +; out_channel ; Output ; Info ; Explicitly unconnected ; ++-------------------+--------+----------+-------------------------------------------------------------------------------------------+ + + ++------------------------------------------------------------------------------------------------------------------------------+ +; Port Connectivity Checks: "nios_system:NiosII|altera_merlin_slave_agent:lcd_on_s1_translator_avalon_universal_slave_0_agent" ; ++-------------------------+--------+----------+--------------------------------------------------------------------------------+ +; Port ; Type ; Severity ; Details ; ++-------------------------+--------+----------+--------------------------------------------------------------------------------+ +; m0_response ; Input ; Info ; Stuck at GND ; +; m0_writeresponserequest ; Output ; Info ; Explicitly unconnected ; +; m0_writeresponsevalid ; Input ; Info ; Stuck at GND ; ++-------------------------+--------+----------+--------------------------------------------------------------------------------+ + + ++---------------------------------------------------------------------------------------------------------------------------------------------------+ +; Port Connectivity Checks: "nios_system:NiosII|altera_avalon_sc_fifo:lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent_rsp_fifo" ; ++-------------------+--------+----------+-----------------------------------------------------------------------------------------------------------+ +; Port ; Type ; Severity ; Details ; ++-------------------+--------+----------+-----------------------------------------------------------------------------------------------------------+ +; csr_address ; Input ; Info ; Stuck at GND ; +; csr_read ; Input ; Info ; Stuck at GND ; +; csr_write ; Input ; Info ; Stuck at GND ; +; csr_readdata ; Output ; Info ; Explicitly unconnected ; +; csr_writedata ; Input ; Info ; Stuck at GND ; +; almost_full_data ; Output ; Info ; Explicitly unconnected ; +; almost_empty_data ; Output ; Info ; Explicitly unconnected ; +; in_empty ; Input ; Info ; Stuck at GND ; +; out_empty ; Output ; Info ; Explicitly unconnected ; +; in_error ; Input ; Info ; Stuck at GND ; +; out_error ; Output ; Info ; Explicitly unconnected ; +; in_channel ; Input ; Info ; Stuck at GND ; +; out_channel ; Output ; Info ; Explicitly unconnected ; ++-------------------+--------+----------+-----------------------------------------------------------------------------------------------------------+ + + ++----------------------------------------------------------------------------------------------------------------------------------------------+ +; Port Connectivity Checks: "nios_system:NiosII|altera_merlin_slave_agent:lcd_16207_0_control_slave_translator_avalon_universal_slave_0_agent" ; ++-------------------------+--------+----------+------------------------------------------------------------------------------------------------+ +; Port ; Type ; Severity ; Details ; ++-------------------------+--------+----------+------------------------------------------------------------------------------------------------+ +; m0_response ; Input ; Info ; Stuck at GND ; +; m0_writeresponserequest ; Output ; Info ; Explicitly unconnected ; +; m0_writeresponsevalid ; Input ; Info ; Stuck at GND ; ++-------------------------+--------+----------+------------------------------------------------------------------------------------------------+ + + ++---------------------------------------------------------------------------------------------------------------------------------+ +; Port Connectivity Checks: "nios_system:NiosII|altera_avalon_sc_fifo:hex7_s1_translator_avalon_universal_slave_0_agent_rsp_fifo" ; ++-------------------+--------+----------+-----------------------------------------------------------------------------------------+ +; Port ; Type ; Severity ; Details ; ++-------------------+--------+----------+-----------------------------------------------------------------------------------------+ +; csr_address ; Input ; Info ; Stuck at GND ; +; csr_read ; Input ; Info ; Stuck at GND ; +; csr_write ; Input ; Info ; Stuck at GND ; +; csr_readdata ; Output ; Info ; Explicitly unconnected ; +; csr_writedata ; Input ; Info ; Stuck at GND ; +; almost_full_data ; Output ; Info ; Explicitly unconnected ; +; almost_empty_data ; Output ; Info ; Explicitly unconnected ; +; in_empty ; Input ; Info ; Stuck at GND ; +; out_empty ; Output ; Info ; Explicitly unconnected ; +; in_error ; Input ; Info ; Stuck at GND ; +; out_error ; Output ; Info ; Explicitly unconnected ; +; in_channel ; Input ; Info ; Stuck at GND ; +; out_channel ; Output ; Info ; Explicitly unconnected ; ++-------------------+--------+----------+-----------------------------------------------------------------------------------------+ + + ++----------------------------------------------------------------------------------------------------------------------------+ +; Port Connectivity Checks: "nios_system:NiosII|altera_merlin_slave_agent:hex7_s1_translator_avalon_universal_slave_0_agent" ; ++-------------------------+--------+----------+------------------------------------------------------------------------------+ +; Port ; Type ; Severity ; Details ; ++-------------------------+--------+----------+------------------------------------------------------------------------------+ +; m0_response ; Input ; Info ; Stuck at GND ; +; m0_writeresponserequest ; Output ; Info ; Explicitly unconnected ; +; m0_writeresponsevalid ; Input ; Info ; Stuck at GND ; ++-------------------------+--------+----------+------------------------------------------------------------------------------+ + + ++---------------------------------------------------------------------------------------------------------------------------------+ +; Port Connectivity Checks: "nios_system:NiosII|altera_avalon_sc_fifo:hex6_s1_translator_avalon_universal_slave_0_agent_rsp_fifo" ; ++-------------------+--------+----------+-----------------------------------------------------------------------------------------+ +; Port ; Type ; Severity ; Details ; ++-------------------+--------+----------+-----------------------------------------------------------------------------------------+ +; csr_address ; Input ; Info ; Stuck at GND ; +; csr_read ; Input ; Info ; Stuck at GND ; +; csr_write ; Input ; Info ; Stuck at GND ; +; csr_readdata ; Output ; Info ; Explicitly unconnected ; +; csr_writedata ; Input ; Info ; Stuck at GND ; +; almost_full_data ; Output ; Info ; Explicitly unconnected ; +; almost_empty_data ; Output ; Info ; Explicitly unconnected ; +; in_empty ; Input ; Info ; Stuck at GND ; +; out_empty ; Output ; Info ; Explicitly unconnected ; +; in_error ; Input ; Info ; Stuck at GND ; +; out_error ; Output ; Info ; Explicitly unconnected ; +; in_channel ; Input ; Info ; Stuck at GND ; +; out_channel ; Output ; Info ; Explicitly unconnected ; ++-------------------+--------+----------+-----------------------------------------------------------------------------------------+ + + ++----------------------------------------------------------------------------------------------------------------------------+ +; Port Connectivity Checks: "nios_system:NiosII|altera_merlin_slave_agent:hex6_s1_translator_avalon_universal_slave_0_agent" ; ++-------------------------+--------+----------+------------------------------------------------------------------------------+ +; Port ; Type ; Severity ; Details ; ++-------------------------+--------+----------+------------------------------------------------------------------------------+ +; m0_response ; Input ; Info ; Stuck at GND ; +; m0_writeresponserequest ; Output ; Info ; Explicitly unconnected ; +; m0_writeresponsevalid ; Input ; Info ; Stuck at GND ; ++-------------------------+--------+----------+------------------------------------------------------------------------------+ + + ++---------------------------------------------------------------------------------------------------------------------------------+ +; Port Connectivity Checks: "nios_system:NiosII|altera_avalon_sc_fifo:hex5_s1_translator_avalon_universal_slave_0_agent_rsp_fifo" ; ++-------------------+--------+----------+-----------------------------------------------------------------------------------------+ +; Port ; Type ; Severity ; Details ; ++-------------------+--------+----------+-----------------------------------------------------------------------------------------+ +; csr_address ; Input ; Info ; Stuck at GND ; +; csr_read ; Input ; Info ; Stuck at GND ; +; csr_write ; Input ; Info ; Stuck at GND ; +; csr_readdata ; Output ; Info ; Explicitly unconnected ; +; csr_writedata ; Input ; Info ; Stuck at GND ; +; almost_full_data ; Output ; Info ; Explicitly unconnected ; +; almost_empty_data ; Output ; Info ; Explicitly unconnected ; +; in_empty ; Input ; Info ; Stuck at GND ; +; out_empty ; Output ; Info ; Explicitly unconnected ; +; in_error ; Input ; Info ; Stuck at GND ; +; out_error ; Output ; Info ; Explicitly unconnected ; +; in_channel ; Input ; Info ; Stuck at GND ; +; out_channel ; Output ; Info ; Explicitly unconnected ; ++-------------------+--------+----------+-----------------------------------------------------------------------------------------+ + + ++----------------------------------------------------------------------------------------------------------------------------+ +; Port Connectivity Checks: "nios_system:NiosII|altera_merlin_slave_agent:hex5_s1_translator_avalon_universal_slave_0_agent" ; ++-------------------------+--------+----------+------------------------------------------------------------------------------+ +; Port ; Type ; Severity ; Details ; ++-------------------------+--------+----------+------------------------------------------------------------------------------+ +; m0_response ; Input ; Info ; Stuck at GND ; +; m0_writeresponserequest ; Output ; Info ; Explicitly unconnected ; +; m0_writeresponsevalid ; Input ; Info ; Stuck at GND ; ++-------------------------+--------+----------+------------------------------------------------------------------------------+ + + ++---------------------------------------------------------------------------------------------------------------------------------+ +; Port Connectivity Checks: "nios_system:NiosII|altera_avalon_sc_fifo:hex4_s1_translator_avalon_universal_slave_0_agent_rsp_fifo" ; ++-------------------+--------+----------+-----------------------------------------------------------------------------------------+ +; Port ; Type ; Severity ; Details ; ++-------------------+--------+----------+-----------------------------------------------------------------------------------------+ +; csr_address ; Input ; Info ; Stuck at GND ; +; csr_read ; Input ; Info ; Stuck at GND ; +; csr_write ; Input ; Info ; Stuck at GND ; +; csr_readdata ; Output ; Info ; Explicitly unconnected ; +; csr_writedata ; Input ; Info ; Stuck at GND ; +; almost_full_data ; Output ; Info ; Explicitly unconnected ; +; almost_empty_data ; Output ; Info ; Explicitly unconnected ; +; in_empty ; Input ; Info ; Stuck at GND ; +; out_empty ; Output ; Info ; Explicitly unconnected ; +; in_error ; Input ; Info ; Stuck at GND ; +; out_error ; Output ; Info ; Explicitly unconnected ; +; in_channel ; Input ; Info ; Stuck at GND ; +; out_channel ; Output ; Info ; Explicitly unconnected ; ++-------------------+--------+----------+-----------------------------------------------------------------------------------------+ + + ++----------------------------------------------------------------------------------------------------------------------------+ +; Port Connectivity Checks: "nios_system:NiosII|altera_merlin_slave_agent:hex4_s1_translator_avalon_universal_slave_0_agent" ; ++-------------------------+--------+----------+------------------------------------------------------------------------------+ +; Port ; Type ; Severity ; Details ; ++-------------------------+--------+----------+------------------------------------------------------------------------------+ +; m0_response ; Input ; Info ; Stuck at GND ; +; m0_writeresponserequest ; Output ; Info ; Explicitly unconnected ; +; m0_writeresponsevalid ; Input ; Info ; Stuck at GND ; ++-------------------------+--------+----------+------------------------------------------------------------------------------+ + + ++---------------------------------------------------------------------------------------------------------------------------------+ +; Port Connectivity Checks: "nios_system:NiosII|altera_avalon_sc_fifo:hex3_s1_translator_avalon_universal_slave_0_agent_rsp_fifo" ; ++-------------------+--------+----------+-----------------------------------------------------------------------------------------+ +; Port ; Type ; Severity ; Details ; ++-------------------+--------+----------+-----------------------------------------------------------------------------------------+ +; csr_address ; Input ; Info ; Stuck at GND ; +; csr_read ; Input ; Info ; Stuck at GND ; +; csr_write ; Input ; Info ; Stuck at GND ; +; csr_readdata ; Output ; Info ; Explicitly unconnected ; +; csr_writedata ; Input ; Info ; Stuck at GND ; +; almost_full_data ; Output ; Info ; Explicitly unconnected ; +; almost_empty_data ; Output ; Info ; Explicitly unconnected ; +; in_empty ; Input ; Info ; Stuck at GND ; +; out_empty ; Output ; Info ; Explicitly unconnected ; +; in_error ; Input ; Info ; Stuck at GND ; +; out_error ; Output ; Info ; Explicitly unconnected ; +; in_channel ; Input ; Info ; Stuck at GND ; +; out_channel ; Output ; Info ; Explicitly unconnected ; ++-------------------+--------+----------+-----------------------------------------------------------------------------------------+ + + ++----------------------------------------------------------------------------------------------------------------------------+ +; Port Connectivity Checks: "nios_system:NiosII|altera_merlin_slave_agent:hex3_s1_translator_avalon_universal_slave_0_agent" ; ++-------------------------+--------+----------+------------------------------------------------------------------------------+ +; Port ; Type ; Severity ; Details ; ++-------------------------+--------+----------+------------------------------------------------------------------------------+ +; m0_response ; Input ; Info ; Stuck at GND ; +; m0_writeresponserequest ; Output ; Info ; Explicitly unconnected ; +; m0_writeresponsevalid ; Input ; Info ; Stuck at GND ; ++-------------------------+--------+----------+------------------------------------------------------------------------------+ + + ++---------------------------------------------------------------------------------------------------------------------------------+ +; Port Connectivity Checks: "nios_system:NiosII|altera_avalon_sc_fifo:hex2_s1_translator_avalon_universal_slave_0_agent_rsp_fifo" ; ++-------------------+--------+----------+-----------------------------------------------------------------------------------------+ +; Port ; Type ; Severity ; Details ; ++-------------------+--------+----------+-----------------------------------------------------------------------------------------+ +; csr_address ; Input ; Info ; Stuck at GND ; +; csr_read ; Input ; Info ; Stuck at GND ; +; csr_write ; Input ; Info ; Stuck at GND ; +; csr_readdata ; Output ; Info ; Explicitly unconnected ; +; csr_writedata ; Input ; Info ; Stuck at GND ; +; almost_full_data ; Output ; Info ; Explicitly unconnected ; +; almost_empty_data ; Output ; Info ; Explicitly unconnected ; +; in_empty ; Input ; Info ; Stuck at GND ; +; out_empty ; Output ; Info ; Explicitly unconnected ; +; in_error ; Input ; Info ; Stuck at GND ; +; out_error ; Output ; Info ; Explicitly unconnected ; +; in_channel ; Input ; Info ; Stuck at GND ; +; out_channel ; Output ; Info ; Explicitly unconnected ; ++-------------------+--------+----------+-----------------------------------------------------------------------------------------+ + + ++----------------------------------------------------------------------------------------------------------------------------+ +; Port Connectivity Checks: "nios_system:NiosII|altera_merlin_slave_agent:hex2_s1_translator_avalon_universal_slave_0_agent" ; ++-------------------------+--------+----------+------------------------------------------------------------------------------+ +; Port ; Type ; Severity ; Details ; ++-------------------------+--------+----------+------------------------------------------------------------------------------+ +; m0_response ; Input ; Info ; Stuck at GND ; +; m0_writeresponserequest ; Output ; Info ; Explicitly unconnected ; +; m0_writeresponsevalid ; Input ; Info ; Stuck at GND ; ++-------------------------+--------+----------+------------------------------------------------------------------------------+ + + ++---------------------------------------------------------------------------------------------------------------------------------+ +; Port Connectivity Checks: "nios_system:NiosII|altera_avalon_sc_fifo:hex1_s1_translator_avalon_universal_slave_0_agent_rsp_fifo" ; ++-------------------+--------+----------+-----------------------------------------------------------------------------------------+ +; Port ; Type ; Severity ; Details ; ++-------------------+--------+----------+-----------------------------------------------------------------------------------------+ +; csr_address ; Input ; Info ; Stuck at GND ; +; csr_read ; Input ; Info ; Stuck at GND ; +; csr_write ; Input ; Info ; Stuck at GND ; +; csr_readdata ; Output ; Info ; Explicitly unconnected ; +; csr_writedata ; Input ; Info ; Stuck at GND ; +; almost_full_data ; Output ; Info ; Explicitly unconnected ; +; almost_empty_data ; Output ; Info ; Explicitly unconnected ; +; in_empty ; Input ; Info ; Stuck at GND ; +; out_empty ; Output ; Info ; Explicitly unconnected ; +; in_error ; Input ; Info ; Stuck at GND ; +; out_error ; Output ; Info ; Explicitly unconnected ; +; in_channel ; Input ; Info ; Stuck at GND ; +; out_channel ; Output ; Info ; Explicitly unconnected ; ++-------------------+--------+----------+-----------------------------------------------------------------------------------------+ + + ++----------------------------------------------------------------------------------------------------------------------------+ +; Port Connectivity Checks: "nios_system:NiosII|altera_merlin_slave_agent:hex1_s1_translator_avalon_universal_slave_0_agent" ; ++-------------------------+--------+----------+------------------------------------------------------------------------------+ +; Port ; Type ; Severity ; Details ; ++-------------------------+--------+----------+------------------------------------------------------------------------------+ +; m0_response ; Input ; Info ; Stuck at GND ; +; m0_writeresponserequest ; Output ; Info ; Explicitly unconnected ; +; m0_writeresponsevalid ; Input ; Info ; Stuck at GND ; ++-------------------------+--------+----------+------------------------------------------------------------------------------+ + + ++---------------------------------------------------------------------------------------------------------------------------------+ +; Port Connectivity Checks: "nios_system:NiosII|altera_avalon_sc_fifo:hex0_s1_translator_avalon_universal_slave_0_agent_rsp_fifo" ; ++-------------------+--------+----------+-----------------------------------------------------------------------------------------+ +; Port ; Type ; Severity ; Details ; ++-------------------+--------+----------+-----------------------------------------------------------------------------------------+ +; csr_address ; Input ; Info ; Stuck at GND ; +; csr_read ; Input ; Info ; Stuck at GND ; +; csr_write ; Input ; Info ; Stuck at GND ; +; csr_readdata ; Output ; Info ; Explicitly unconnected ; +; csr_writedata ; Input ; Info ; Stuck at GND ; +; almost_full_data ; Output ; Info ; Explicitly unconnected ; +; almost_empty_data ; Output ; Info ; Explicitly unconnected ; +; in_empty ; Input ; Info ; Stuck at GND ; +; out_empty ; Output ; Info ; Explicitly unconnected ; +; in_error ; Input ; Info ; Stuck at GND ; +; out_error ; Output ; Info ; Explicitly unconnected ; +; in_channel ; Input ; Info ; Stuck at GND ; +; out_channel ; Output ; Info ; Explicitly unconnected ; ++-------------------+--------+----------+-----------------------------------------------------------------------------------------+ + + ++----------------------------------------------------------------------------------------------------------------------------+ +; Port Connectivity Checks: "nios_system:NiosII|altera_merlin_slave_agent:hex0_s1_translator_avalon_universal_slave_0_agent" ; ++-------------------------+--------+----------+------------------------------------------------------------------------------+ +; Port ; Type ; Severity ; Details ; ++-------------------------+--------+----------+------------------------------------------------------------------------------+ +; m0_response ; Input ; Info ; Stuck at GND ; +; m0_writeresponserequest ; Output ; Info ; Explicitly unconnected ; +; m0_writeresponsevalid ; Input ; Info ; Stuck at GND ; ++-------------------------+--------+----------+------------------------------------------------------------------------------+ + + ++------------------------------------------------------------------------------------------------------------------------------------------+ +; Port Connectivity Checks: "nios_system:NiosII|altera_avalon_sc_fifo:push_switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo" ; ++-------------------+--------+----------+--------------------------------------------------------------------------------------------------+ +; Port ; Type ; Severity ; Details ; ++-------------------+--------+----------+--------------------------------------------------------------------------------------------------+ +; csr_address ; Input ; Info ; Stuck at GND ; +; csr_read ; Input ; Info ; Stuck at GND ; +; csr_write ; Input ; Info ; Stuck at GND ; +; csr_readdata ; Output ; Info ; Explicitly unconnected ; +; csr_writedata ; Input ; Info ; Stuck at GND ; +; almost_full_data ; Output ; Info ; Explicitly unconnected ; +; almost_empty_data ; Output ; Info ; Explicitly unconnected ; +; in_empty ; Input ; Info ; Stuck at GND ; +; out_empty ; Output ; Info ; Explicitly unconnected ; +; in_error ; Input ; Info ; Stuck at GND ; +; out_error ; Output ; Info ; Explicitly unconnected ; +; in_channel ; Input ; Info ; Stuck at GND ; +; out_channel ; Output ; Info ; Explicitly unconnected ; ++-------------------+--------+----------+--------------------------------------------------------------------------------------------------+ + + ++-------------------------------------------------------------------------------------------------------------------------------------+ +; Port Connectivity Checks: "nios_system:NiosII|altera_merlin_slave_agent:push_switches_s1_translator_avalon_universal_slave_0_agent" ; ++-------------------------+--------+----------+---------------------------------------------------------------------------------------+ +; Port ; Type ; Severity ; Details ; ++-------------------------+--------+----------+---------------------------------------------------------------------------------------+ +; m0_response ; Input ; Info ; Stuck at GND ; +; m0_writeresponserequest ; Output ; Info ; Explicitly unconnected ; +; m0_writeresponsevalid ; Input ; Info ; Stuck at GND ; ++-------------------------+--------+----------+---------------------------------------------------------------------------------------+ + + ++-------------------------------------------------------------------------------------------------------------------------------------+ +; Port Connectivity Checks: "nios_system:NiosII|altera_avalon_sc_fifo:switches_s1_translator_avalon_universal_slave_0_agent_rsp_fifo" ; ++-------------------+--------+----------+---------------------------------------------------------------------------------------------+ +; Port ; Type ; Severity ; Details ; ++-------------------+--------+----------+---------------------------------------------------------------------------------------------+ +; csr_address ; Input ; Info ; Stuck at GND ; +; csr_read ; Input ; Info ; Stuck at GND ; +; csr_write ; Input ; Info ; Stuck at GND ; +; csr_readdata ; Output ; Info ; Explicitly unconnected ; +; csr_writedata ; Input ; Info ; Stuck at GND ; +; almost_full_data ; Output ; Info ; Explicitly unconnected ; +; almost_empty_data ; Output ; Info ; Explicitly unconnected ; +; in_empty ; Input ; Info ; Stuck at GND ; +; out_empty ; Output ; Info ; Explicitly unconnected ; +; in_error ; Input ; Info ; Stuck at GND ; +; out_error ; Output ; Info ; Explicitly unconnected ; +; in_channel ; Input ; Info ; Stuck at GND ; +; out_channel ; Output ; Info ; Explicitly unconnected ; ++-------------------+--------+----------+---------------------------------------------------------------------------------------------+ + + ++--------------------------------------------------------------------------------------------------------------------------------+ +; Port Connectivity Checks: "nios_system:NiosII|altera_merlin_slave_agent:switches_s1_translator_avalon_universal_slave_0_agent" ; ++-------------------------+--------+----------+----------------------------------------------------------------------------------+ +; Port ; Type ; Severity ; Details ; ++-------------------------+--------+----------+----------------------------------------------------------------------------------+ +; m0_response ; Input ; Info ; Stuck at GND ; +; m0_writeresponserequest ; Output ; Info ; Explicitly unconnected ; +; m0_writeresponsevalid ; Input ; Info ; Stuck at GND ; ++-------------------------+--------+----------+----------------------------------------------------------------------------------+ + + ++----------------------------------------------------------------------------------------------------------------------------------+ +; Port Connectivity Checks: "nios_system:NiosII|altera_avalon_sc_fifo:ledrs_s1_translator_avalon_universal_slave_0_agent_rsp_fifo" ; ++-------------------+--------+----------+------------------------------------------------------------------------------------------+ +; Port ; Type ; Severity ; Details ; ++-------------------+--------+----------+------------------------------------------------------------------------------------------+ +; csr_address ; Input ; Info ; Stuck at GND ; +; csr_read ; Input ; Info ; Stuck at GND ; +; csr_write ; Input ; Info ; Stuck at GND ; +; csr_readdata ; Output ; Info ; Explicitly unconnected ; +; csr_writedata ; Input ; Info ; Stuck at GND ; +; almost_full_data ; Output ; Info ; Explicitly unconnected ; +; almost_empty_data ; Output ; Info ; Explicitly unconnected ; +; in_empty ; Input ; Info ; Stuck at GND ; +; out_empty ; Output ; Info ; Explicitly unconnected ; +; in_error ; Input ; Info ; Stuck at GND ; +; out_error ; Output ; Info ; Explicitly unconnected ; +; in_channel ; Input ; Info ; Stuck at GND ; +; out_channel ; Output ; Info ; Explicitly unconnected ; ++-------------------+--------+----------+------------------------------------------------------------------------------------------+ + + ++-----------------------------------------------------------------------------------------------------------------------------+ +; Port Connectivity Checks: "nios_system:NiosII|altera_merlin_slave_agent:ledrs_s1_translator_avalon_universal_slave_0_agent" ; ++-------------------------+--------+----------+-------------------------------------------------------------------------------+ +; Port ; Type ; Severity ; Details ; ++-------------------------+--------+----------+-------------------------------------------------------------------------------+ +; m0_response ; Input ; Info ; Stuck at GND ; +; m0_writeresponserequest ; Output ; Info ; Explicitly unconnected ; +; m0_writeresponsevalid ; Input ; Info ; Stuck at GND ; ++-------------------------+--------+----------+-------------------------------------------------------------------------------+ + + ++-----------------------------------------------------------------------------------------------------------------------------------------------------+ +; Port Connectivity Checks: "nios_system:NiosII|altera_avalon_sc_fifo:jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent_rsp_fifo" ; ++-------------------+--------+----------+-------------------------------------------------------------------------------------------------------------+ +; Port ; Type ; Severity ; Details ; ++-------------------+--------+----------+-------------------------------------------------------------------------------------------------------------+ +; csr_address ; Input ; Info ; Stuck at GND ; +; csr_read ; Input ; Info ; Stuck at GND ; +; csr_write ; Input ; Info ; Stuck at GND ; +; csr_readdata ; Output ; Info ; Explicitly unconnected ; +; csr_writedata ; Input ; Info ; Stuck at GND ; +; almost_full_data ; Output ; Info ; Explicitly unconnected ; +; almost_empty_data ; Output ; Info ; Explicitly unconnected ; +; in_empty ; Input ; Info ; Stuck at GND ; +; out_empty ; Output ; Info ; Explicitly unconnected ; +; in_error ; Input ; Info ; Stuck at GND ; +; out_error ; Output ; Info ; Explicitly unconnected ; +; in_channel ; Input ; Info ; Stuck at GND ; +; out_channel ; Output ; Info ; Explicitly unconnected ; ++-------------------+--------+----------+-------------------------------------------------------------------------------------------------------------+ + + ++------------------------------------------------------------------------------------------------------------------------------------------------+ +; Port Connectivity Checks: "nios_system:NiosII|altera_merlin_slave_agent:jtag_uart_avalon_jtag_slave_translator_avalon_universal_slave_0_agent" ; ++-------------------------+--------+----------+--------------------------------------------------------------------------------------------------+ +; Port ; Type ; Severity ; Details ; ++-------------------------+--------+----------+--------------------------------------------------------------------------------------------------+ +; m0_response ; Input ; Info ; Stuck at GND ; +; m0_writeresponserequest ; Output ; Info ; Explicitly unconnected ; +; m0_writeresponsevalid ; Input ; Info ; Stuck at GND ; ++-------------------------+--------+----------+--------------------------------------------------------------------------------------------------+ + + ++---------------------------------------------------------------------------------------------------------------------------------+ +; Port Connectivity Checks: "nios_system:NiosII|altera_avalon_sc_fifo:leds_s1_translator_avalon_universal_slave_0_agent_rsp_fifo" ; ++-------------------+--------+----------+-----------------------------------------------------------------------------------------+ +; Port ; Type ; Severity ; Details ; ++-------------------+--------+----------+-----------------------------------------------------------------------------------------+ +; csr_address ; Input ; Info ; Stuck at GND ; +; csr_read ; Input ; Info ; Stuck at GND ; +; csr_write ; Input ; Info ; Stuck at GND ; +; csr_readdata ; Output ; Info ; Explicitly unconnected ; +; csr_writedata ; Input ; Info ; Stuck at GND ; +; almost_full_data ; Output ; Info ; Explicitly unconnected ; +; almost_empty_data ; Output ; Info ; Explicitly unconnected ; +; in_empty ; Input ; Info ; Stuck at GND ; +; out_empty ; Output ; Info ; Explicitly unconnected ; +; in_error ; Input ; Info ; Stuck at GND ; +; out_error ; Output ; Info ; Explicitly unconnected ; +; in_channel ; Input ; Info ; Stuck at GND ; +; out_channel ; Output ; Info ; Explicitly unconnected ; ++-------------------+--------+----------+-----------------------------------------------------------------------------------------+ + + ++----------------------------------------------------------------------------------------------------------------------------+ +; Port Connectivity Checks: "nios_system:NiosII|altera_merlin_slave_agent:leds_s1_translator_avalon_universal_slave_0_agent" ; ++-------------------------+--------+----------+------------------------------------------------------------------------------+ +; Port ; Type ; Severity ; Details ; ++-------------------------+--------+----------+------------------------------------------------------------------------------+ +; m0_response ; Input ; Info ; Stuck at GND ; +; m0_writeresponserequest ; Output ; Info ; Explicitly unconnected ; +; m0_writeresponsevalid ; Input ; Info ; Stuck at GND ; ++-------------------------+--------+----------+------------------------------------------------------------------------------+ + + ++------------------------------------------------------------------------------------------------------------------------------------------+ +; Port Connectivity Checks: "nios_system:NiosII|altera_avalon_sc_fifo:onchip_memory_s1_translator_avalon_universal_slave_0_agent_rsp_fifo" ; ++-------------------+--------+----------+--------------------------------------------------------------------------------------------------+ +; Port ; Type ; Severity ; Details ; ++-------------------+--------+----------+--------------------------------------------------------------------------------------------------+ +; csr_address ; Input ; Info ; Stuck at GND ; +; csr_read ; Input ; Info ; Stuck at GND ; +; csr_write ; Input ; Info ; Stuck at GND ; +; csr_readdata ; Output ; Info ; Explicitly unconnected ; +; csr_writedata ; Input ; Info ; Stuck at GND ; +; almost_full_data ; Output ; Info ; Explicitly unconnected ; +; almost_empty_data ; Output ; Info ; Explicitly unconnected ; +; in_empty ; Input ; Info ; Stuck at GND ; +; out_empty ; Output ; Info ; Explicitly unconnected ; +; in_error ; Input ; Info ; Stuck at GND ; +; out_error ; Output ; Info ; Explicitly unconnected ; +; in_channel ; Input ; Info ; Stuck at GND ; +; out_channel ; Output ; Info ; Explicitly unconnected ; ++-------------------+--------+----------+--------------------------------------------------------------------------------------------------+ + + ++-------------------------------------------------------------------------------------------------------------------------------------+ +; Port Connectivity Checks: "nios_system:NiosII|altera_merlin_slave_agent:onchip_memory_s1_translator_avalon_universal_slave_0_agent" ; ++-------------------------+--------+----------+---------------------------------------------------------------------------------------+ +; Port ; Type ; Severity ; Details ; ++-------------------------+--------+----------+---------------------------------------------------------------------------------------+ +; m0_response ; Input ; Info ; Stuck at GND ; +; m0_writeresponserequest ; Output ; Info ; Explicitly unconnected ; +; m0_writeresponsevalid ; Input ; Info ; Stuck at GND ; ++-------------------------+--------+----------+---------------------------------------------------------------------------------------+ + + ++-----------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Port Connectivity Checks: "nios_system:NiosII|altera_avalon_sc_fifo:nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo" ; ++-------------------+--------+----------+-------------------------------------------------------------------------------------------------------------------+ +; Port ; Type ; Severity ; Details ; ++-------------------+--------+----------+-------------------------------------------------------------------------------------------------------------------+ +; csr_address ; Input ; Info ; Stuck at GND ; +; csr_read ; Input ; Info ; Stuck at GND ; +; csr_write ; Input ; Info ; Stuck at GND ; +; csr_readdata ; Output ; Info ; Explicitly unconnected ; +; csr_writedata ; Input ; Info ; Stuck at GND ; +; almost_full_data ; Output ; Info ; Explicitly unconnected ; +; almost_empty_data ; Output ; Info ; Explicitly unconnected ; +; in_empty ; Input ; Info ; Stuck at GND ; +; out_empty ; Output ; Info ; Explicitly unconnected ; +; in_error ; Input ; Info ; Stuck at GND ; +; out_error ; Output ; Info ; Explicitly unconnected ; +; in_channel ; Input ; Info ; Stuck at GND ; +; out_channel ; Output ; Info ; Explicitly unconnected ; ++-------------------+--------+----------+-------------------------------------------------------------------------------------------------------------------+ + + ++------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Port Connectivity Checks: "nios_system:NiosII|altera_merlin_slave_agent:nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent" ; ++-------------------------+--------+----------+--------------------------------------------------------------------------------------------------------+ +; Port ; Type ; Severity ; Details ; ++-------------------------+--------+----------+--------------------------------------------------------------------------------------------------------+ +; m0_response ; Input ; Info ; Stuck at GND ; +; m0_writeresponserequest ; Output ; Info ; Explicitly unconnected ; +; m0_writeresponsevalid ; Input ; Info ; Stuck at GND ; ++-------------------------+--------+----------+--------------------------------------------------------------------------------------------------------+ + + ++--------------------------------------------------------------------------------------------------------------------------------------------------+ +; Port Connectivity Checks: "nios_system:NiosII|altera_merlin_master_agent:nios2_processor_data_master_translator_avalon_universal_master_0_agent" ; ++-------------------------+--------+----------+----------------------------------------------------------------------------------------------------+ +; Port ; Type ; Severity ; Details ; ++-------------------------+--------+----------+----------------------------------------------------------------------------------------------------+ +; av_response ; Output ; Info ; Explicitly unconnected ; +; av_writeresponserequest ; Input ; Info ; Stuck at GND ; +; av_writeresponsevalid ; Output ; Info ; Explicitly unconnected ; ++-------------------------+--------+----------+----------------------------------------------------------------------------------------------------+ + + ++---------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Port Connectivity Checks: "nios_system:NiosII|altera_merlin_master_agent:nios2_processor_instruction_master_translator_avalon_universal_master_0_agent" ; ++-------------------------+--------+----------+-----------------------------------------------------------------------------------------------------------+ +; Port ; Type ; Severity ; Details ; ++-------------------------+--------+----------+-----------------------------------------------------------------------------------------------------------+ +; av_response ; Output ; Info ; Explicitly unconnected ; +; av_writeresponserequest ; Input ; Info ; Stuck at GND ; +; av_writeresponsevalid ; Output ; Info ; Explicitly unconnected ; ++-------------------------+--------+----------+-----------------------------------------------------------------------------------------------------------+ + + ++------------------------------------------------------------------------------------------------------+ +; Port Connectivity Checks: "nios_system:NiosII|altera_merlin_slave_translator:lcd_blon_s1_translator" ; ++--------------------------+--------+----------+-------------------------------------------------------+ +; Port ; Type ; Severity ; Details ; ++--------------------------+--------+----------+-------------------------------------------------------+ +; av_read ; Output ; Info ; Explicitly unconnected ; +; av_begintransfer ; Output ; Info ; Explicitly unconnected ; +; av_beginbursttransfer ; Output ; Info ; Explicitly unconnected ; +; av_burstcount ; Output ; Info ; Explicitly unconnected ; +; av_byteenable ; Output ; Info ; Explicitly unconnected ; +; av_readdatavalid ; Input ; Info ; Stuck at GND ; +; av_waitrequest ; Input ; Info ; Stuck at GND ; +; av_writebyteenable ; Output ; Info ; Explicitly unconnected ; +; av_lock ; Output ; Info ; Explicitly unconnected ; +; av_clken ; Output ; Info ; Explicitly unconnected ; +; uav_clken ; Input ; Info ; Stuck at GND ; +; av_debugaccess ; Output ; Info ; Explicitly unconnected ; +; av_outputenable ; Output ; Info ; Explicitly unconnected ; +; uav_response ; Output ; Info ; Explicitly unconnected ; +; av_response ; Input ; Info ; Stuck at GND ; +; uav_writeresponserequest ; Input ; Info ; Stuck at GND ; +; uav_writeresponsevalid ; Output ; Info ; Explicitly unconnected ; +; av_writeresponserequest ; Output ; Info ; Explicitly unconnected ; +; av_writeresponsevalid ; Input ; Info ; Stuck at GND ; ++--------------------------+--------+----------+-------------------------------------------------------+ + + ++----------------------------------------------------------------------------------------------------+ +; Port Connectivity Checks: "nios_system:NiosII|altera_merlin_slave_translator:lcd_on_s1_translator" ; ++--------------------------+--------+----------+-----------------------------------------------------+ +; Port ; Type ; Severity ; Details ; ++--------------------------+--------+----------+-----------------------------------------------------+ +; av_read ; Output ; Info ; Explicitly unconnected ; +; av_begintransfer ; Output ; Info ; Explicitly unconnected ; +; av_beginbursttransfer ; Output ; Info ; Explicitly unconnected ; +; av_burstcount ; Output ; Info ; Explicitly unconnected ; +; av_byteenable ; Output ; Info ; Explicitly unconnected ; +; av_readdatavalid ; Input ; Info ; Stuck at GND ; +; av_waitrequest ; Input ; Info ; Stuck at GND ; +; av_writebyteenable ; Output ; Info ; Explicitly unconnected ; +; av_lock ; Output ; Info ; Explicitly unconnected ; +; av_clken ; Output ; Info ; Explicitly unconnected ; +; uav_clken ; Input ; Info ; Stuck at GND ; +; av_debugaccess ; Output ; Info ; Explicitly unconnected ; +; av_outputenable ; Output ; Info ; Explicitly unconnected ; +; uav_response ; Output ; Info ; Explicitly unconnected ; +; av_response ; Input ; Info ; Stuck at GND ; +; uav_writeresponserequest ; Input ; Info ; Stuck at GND ; +; uav_writeresponsevalid ; Output ; Info ; Explicitly unconnected ; +; av_writeresponserequest ; Output ; Info ; Explicitly unconnected ; +; av_writeresponsevalid ; Input ; Info ; Stuck at GND ; ++--------------------------+--------+----------+-----------------------------------------------------+ + + ++--------------------------------------------------------------------------------------------------------------------+ +; Port Connectivity Checks: "nios_system:NiosII|altera_merlin_slave_translator:lcd_16207_0_control_slave_translator" ; ++--------------------------+--------+----------+---------------------------------------------------------------------+ +; Port ; Type ; Severity ; Details ; ++--------------------------+--------+----------+---------------------------------------------------------------------+ +; av_beginbursttransfer ; Output ; Info ; Explicitly unconnected ; +; av_burstcount ; Output ; Info ; Explicitly unconnected ; +; av_byteenable ; Output ; Info ; Explicitly unconnected ; +; av_readdatavalid ; Input ; Info ; Stuck at GND ; +; av_waitrequest ; Input ; Info ; Stuck at GND ; +; av_writebyteenable ; Output ; Info ; Explicitly unconnected ; +; av_lock ; Output ; Info ; Explicitly unconnected ; +; av_chipselect ; Output ; Info ; Explicitly unconnected ; +; av_clken ; Output ; Info ; Explicitly unconnected ; +; uav_clken ; Input ; Info ; Stuck at GND ; +; av_debugaccess ; Output ; Info ; Explicitly unconnected ; +; av_outputenable ; Output ; Info ; Explicitly unconnected ; +; uav_response ; Output ; Info ; Explicitly unconnected ; +; av_response ; Input ; Info ; Stuck at GND ; +; uav_writeresponserequest ; Input ; Info ; Stuck at GND ; +; uav_writeresponsevalid ; Output ; Info ; Explicitly unconnected ; +; av_writeresponserequest ; Output ; Info ; Explicitly unconnected ; +; av_writeresponsevalid ; Input ; Info ; Stuck at GND ; ++--------------------------+--------+----------+---------------------------------------------------------------------+ + + ++--------------------------------------------------------------------------------------------------+ +; Port Connectivity Checks: "nios_system:NiosII|altera_merlin_slave_translator:hex7_s1_translator" ; ++--------------------------+--------+----------+---------------------------------------------------+ +; Port ; Type ; Severity ; Details ; ++--------------------------+--------+----------+---------------------------------------------------+ +; av_read ; Output ; Info ; Explicitly unconnected ; +; av_begintransfer ; Output ; Info ; Explicitly unconnected ; +; av_beginbursttransfer ; Output ; Info ; Explicitly unconnected ; +; av_burstcount ; Output ; Info ; Explicitly unconnected ; +; av_byteenable ; Output ; Info ; Explicitly unconnected ; +; av_readdatavalid ; Input ; Info ; Stuck at GND ; +; av_waitrequest ; Input ; Info ; Stuck at GND ; +; av_writebyteenable ; Output ; Info ; Explicitly unconnected ; +; av_lock ; Output ; Info ; Explicitly unconnected ; +; av_clken ; Output ; Info ; Explicitly unconnected ; +; uav_clken ; Input ; Info ; Stuck at GND ; +; av_debugaccess ; Output ; Info ; Explicitly unconnected ; +; av_outputenable ; Output ; Info ; Explicitly unconnected ; +; uav_response ; Output ; Info ; Explicitly unconnected ; +; av_response ; Input ; Info ; Stuck at GND ; +; uav_writeresponserequest ; Input ; Info ; Stuck at GND ; +; uav_writeresponsevalid ; Output ; Info ; Explicitly unconnected ; +; av_writeresponserequest ; Output ; Info ; Explicitly unconnected ; +; av_writeresponsevalid ; Input ; Info ; Stuck at GND ; ++--------------------------+--------+----------+---------------------------------------------------+ + + ++--------------------------------------------------------------------------------------------------+ +; Port Connectivity Checks: "nios_system:NiosII|altera_merlin_slave_translator:hex6_s1_translator" ; ++--------------------------+--------+----------+---------------------------------------------------+ +; Port ; Type ; Severity ; Details ; ++--------------------------+--------+----------+---------------------------------------------------+ +; av_read ; Output ; Info ; Explicitly unconnected ; +; av_begintransfer ; Output ; Info ; Explicitly unconnected ; +; av_beginbursttransfer ; Output ; Info ; Explicitly unconnected ; +; av_burstcount ; Output ; Info ; Explicitly unconnected ; +; av_byteenable ; Output ; Info ; Explicitly unconnected ; +; av_readdatavalid ; Input ; Info ; Stuck at GND ; +; av_waitrequest ; Input ; Info ; Stuck at GND ; +; av_writebyteenable ; Output ; Info ; Explicitly unconnected ; +; av_lock ; Output ; Info ; Explicitly unconnected ; +; av_clken ; Output ; Info ; Explicitly unconnected ; +; uav_clken ; Input ; Info ; Stuck at GND ; +; av_debugaccess ; Output ; Info ; Explicitly unconnected ; +; av_outputenable ; Output ; Info ; Explicitly unconnected ; +; uav_response ; Output ; Info ; Explicitly unconnected ; +; av_response ; Input ; Info ; Stuck at GND ; +; uav_writeresponserequest ; Input ; Info ; Stuck at GND ; +; uav_writeresponsevalid ; Output ; Info ; Explicitly unconnected ; +; av_writeresponserequest ; Output ; Info ; Explicitly unconnected ; +; av_writeresponsevalid ; Input ; Info ; Stuck at GND ; ++--------------------------+--------+----------+---------------------------------------------------+ + + ++--------------------------------------------------------------------------------------------------+ +; Port Connectivity Checks: "nios_system:NiosII|altera_merlin_slave_translator:hex5_s1_translator" ; ++--------------------------+--------+----------+---------------------------------------------------+ +; Port ; Type ; Severity ; Details ; ++--------------------------+--------+----------+---------------------------------------------------+ +; av_read ; Output ; Info ; Explicitly unconnected ; +; av_begintransfer ; Output ; Info ; Explicitly unconnected ; +; av_beginbursttransfer ; Output ; Info ; Explicitly unconnected ; +; av_burstcount ; Output ; Info ; Explicitly unconnected ; +; av_byteenable ; Output ; Info ; Explicitly unconnected ; +; av_readdatavalid ; Input ; Info ; Stuck at GND ; +; av_waitrequest ; Input ; Info ; Stuck at GND ; +; av_writebyteenable ; Output ; Info ; Explicitly unconnected ; +; av_lock ; Output ; Info ; Explicitly unconnected ; +; av_clken ; Output ; Info ; Explicitly unconnected ; +; uav_clken ; Input ; Info ; Stuck at GND ; +; av_debugaccess ; Output ; Info ; Explicitly unconnected ; +; av_outputenable ; Output ; Info ; Explicitly unconnected ; +; uav_response ; Output ; Info ; Explicitly unconnected ; +; av_response ; Input ; Info ; Stuck at GND ; +; uav_writeresponserequest ; Input ; Info ; Stuck at GND ; +; uav_writeresponsevalid ; Output ; Info ; Explicitly unconnected ; +; av_writeresponserequest ; Output ; Info ; Explicitly unconnected ; +; av_writeresponsevalid ; Input ; Info ; Stuck at GND ; ++--------------------------+--------+----------+---------------------------------------------------+ + + ++--------------------------------------------------------------------------------------------------+ +; Port Connectivity Checks: "nios_system:NiosII|altera_merlin_slave_translator:hex4_s1_translator" ; ++--------------------------+--------+----------+---------------------------------------------------+ +; Port ; Type ; Severity ; Details ; ++--------------------------+--------+----------+---------------------------------------------------+ +; av_read ; Output ; Info ; Explicitly unconnected ; +; av_begintransfer ; Output ; Info ; Explicitly unconnected ; +; av_beginbursttransfer ; Output ; Info ; Explicitly unconnected ; +; av_burstcount ; Output ; Info ; Explicitly unconnected ; +; av_byteenable ; Output ; Info ; Explicitly unconnected ; +; av_readdatavalid ; Input ; Info ; Stuck at GND ; +; av_waitrequest ; Input ; Info ; Stuck at GND ; +; av_writebyteenable ; Output ; Info ; Explicitly unconnected ; +; av_lock ; Output ; Info ; Explicitly unconnected ; +; av_clken ; Output ; Info ; Explicitly unconnected ; +; uav_clken ; Input ; Info ; Stuck at GND ; +; av_debugaccess ; Output ; Info ; Explicitly unconnected ; +; av_outputenable ; Output ; Info ; Explicitly unconnected ; +; uav_response ; Output ; Info ; Explicitly unconnected ; +; av_response ; Input ; Info ; Stuck at GND ; +; uav_writeresponserequest ; Input ; Info ; Stuck at GND ; +; uav_writeresponsevalid ; Output ; Info ; Explicitly unconnected ; +; av_writeresponserequest ; Output ; Info ; Explicitly unconnected ; +; av_writeresponsevalid ; Input ; Info ; Stuck at GND ; ++--------------------------+--------+----------+---------------------------------------------------+ + + ++--------------------------------------------------------------------------------------------------+ +; Port Connectivity Checks: "nios_system:NiosII|altera_merlin_slave_translator:hex3_s1_translator" ; ++--------------------------+--------+----------+---------------------------------------------------+ +; Port ; Type ; Severity ; Details ; ++--------------------------+--------+----------+---------------------------------------------------+ +; av_read ; Output ; Info ; Explicitly unconnected ; +; av_begintransfer ; Output ; Info ; Explicitly unconnected ; +; av_beginbursttransfer ; Output ; Info ; Explicitly unconnected ; +; av_burstcount ; Output ; Info ; Explicitly unconnected ; +; av_byteenable ; Output ; Info ; Explicitly unconnected ; +; av_readdatavalid ; Input ; Info ; Stuck at GND ; +; av_waitrequest ; Input ; Info ; Stuck at GND ; +; av_writebyteenable ; Output ; Info ; Explicitly unconnected ; +; av_lock ; Output ; Info ; Explicitly unconnected ; +; av_clken ; Output ; Info ; Explicitly unconnected ; +; uav_clken ; Input ; Info ; Stuck at GND ; +; av_debugaccess ; Output ; Info ; Explicitly unconnected ; +; av_outputenable ; Output ; Info ; Explicitly unconnected ; +; uav_response ; Output ; Info ; Explicitly unconnected ; +; av_response ; Input ; Info ; Stuck at GND ; +; uav_writeresponserequest ; Input ; Info ; Stuck at GND ; +; uav_writeresponsevalid ; Output ; Info ; Explicitly unconnected ; +; av_writeresponserequest ; Output ; Info ; Explicitly unconnected ; +; av_writeresponsevalid ; Input ; Info ; Stuck at GND ; ++--------------------------+--------+----------+---------------------------------------------------+ + + ++--------------------------------------------------------------------------------------------------+ +; Port Connectivity Checks: "nios_system:NiosII|altera_merlin_slave_translator:hex2_s1_translator" ; ++--------------------------+--------+----------+---------------------------------------------------+ +; Port ; Type ; Severity ; Details ; ++--------------------------+--------+----------+---------------------------------------------------+ +; av_read ; Output ; Info ; Explicitly unconnected ; +; av_begintransfer ; Output ; Info ; Explicitly unconnected ; +; av_beginbursttransfer ; Output ; Info ; Explicitly unconnected ; +; av_burstcount ; Output ; Info ; Explicitly unconnected ; +; av_byteenable ; Output ; Info ; Explicitly unconnected ; +; av_readdatavalid ; Input ; Info ; Stuck at GND ; +; av_waitrequest ; Input ; Info ; Stuck at GND ; +; av_writebyteenable ; Output ; Info ; Explicitly unconnected ; +; av_lock ; Output ; Info ; Explicitly unconnected ; +; av_clken ; Output ; Info ; Explicitly unconnected ; +; uav_clken ; Input ; Info ; Stuck at GND ; +; av_debugaccess ; Output ; Info ; Explicitly unconnected ; +; av_outputenable ; Output ; Info ; Explicitly unconnected ; +; uav_response ; Output ; Info ; Explicitly unconnected ; +; av_response ; Input ; Info ; Stuck at GND ; +; uav_writeresponserequest ; Input ; Info ; Stuck at GND ; +; uav_writeresponsevalid ; Output ; Info ; Explicitly unconnected ; +; av_writeresponserequest ; Output ; Info ; Explicitly unconnected ; +; av_writeresponsevalid ; Input ; Info ; Stuck at GND ; ++--------------------------+--------+----------+---------------------------------------------------+ + + ++--------------------------------------------------------------------------------------------------+ +; Port Connectivity Checks: "nios_system:NiosII|altera_merlin_slave_translator:hex1_s1_translator" ; ++--------------------------+--------+----------+---------------------------------------------------+ +; Port ; Type ; Severity ; Details ; ++--------------------------+--------+----------+---------------------------------------------------+ +; av_read ; Output ; Info ; Explicitly unconnected ; +; av_begintransfer ; Output ; Info ; Explicitly unconnected ; +; av_beginbursttransfer ; Output ; Info ; Explicitly unconnected ; +; av_burstcount ; Output ; Info ; Explicitly unconnected ; +; av_byteenable ; Output ; Info ; Explicitly unconnected ; +; av_readdatavalid ; Input ; Info ; Stuck at GND ; +; av_waitrequest ; Input ; Info ; Stuck at GND ; +; av_writebyteenable ; Output ; Info ; Explicitly unconnected ; +; av_lock ; Output ; Info ; Explicitly unconnected ; +; av_clken ; Output ; Info ; Explicitly unconnected ; +; uav_clken ; Input ; Info ; Stuck at GND ; +; av_debugaccess ; Output ; Info ; Explicitly unconnected ; +; av_outputenable ; Output ; Info ; Explicitly unconnected ; +; uav_response ; Output ; Info ; Explicitly unconnected ; +; av_response ; Input ; Info ; Stuck at GND ; +; uav_writeresponserequest ; Input ; Info ; Stuck at GND ; +; uav_writeresponsevalid ; Output ; Info ; Explicitly unconnected ; +; av_writeresponserequest ; Output ; Info ; Explicitly unconnected ; +; av_writeresponsevalid ; Input ; Info ; Stuck at GND ; ++--------------------------+--------+----------+---------------------------------------------------+ + + ++--------------------------------------------------------------------------------------------------+ +; Port Connectivity Checks: "nios_system:NiosII|altera_merlin_slave_translator:hex0_s1_translator" ; ++--------------------------+--------+----------+---------------------------------------------------+ +; Port ; Type ; Severity ; Details ; ++--------------------------+--------+----------+---------------------------------------------------+ +; av_read ; Output ; Info ; Explicitly unconnected ; +; av_begintransfer ; Output ; Info ; Explicitly unconnected ; +; av_beginbursttransfer ; Output ; Info ; Explicitly unconnected ; +; av_burstcount ; Output ; Info ; Explicitly unconnected ; +; av_byteenable ; Output ; Info ; Explicitly unconnected ; +; av_readdatavalid ; Input ; Info ; Stuck at GND ; +; av_waitrequest ; Input ; Info ; Stuck at GND ; +; av_writebyteenable ; Output ; Info ; Explicitly unconnected ; +; av_lock ; Output ; Info ; Explicitly unconnected ; +; av_clken ; Output ; Info ; Explicitly unconnected ; +; uav_clken ; Input ; Info ; Stuck at GND ; +; av_debugaccess ; Output ; Info ; Explicitly unconnected ; +; av_outputenable ; Output ; Info ; Explicitly unconnected ; +; uav_response ; Output ; Info ; Explicitly unconnected ; +; av_response ; Input ; Info ; Stuck at GND ; +; uav_writeresponserequest ; Input ; Info ; Stuck at GND ; +; uav_writeresponsevalid ; Output ; Info ; Explicitly unconnected ; +; av_writeresponserequest ; Output ; Info ; Explicitly unconnected ; +; av_writeresponsevalid ; Input ; Info ; Stuck at GND ; ++--------------------------+--------+----------+---------------------------------------------------+ + + ++-----------------------------------------------------------------------------------------------------------+ +; Port Connectivity Checks: "nios_system:NiosII|altera_merlin_slave_translator:push_switches_s1_translator" ; ++--------------------------+--------+----------+------------------------------------------------------------+ +; Port ; Type ; Severity ; Details ; ++--------------------------+--------+----------+------------------------------------------------------------+ +; av_write ; Output ; Info ; Explicitly unconnected ; +; av_read ; Output ; Info ; Explicitly unconnected ; +; av_writedata ; Output ; Info ; Explicitly unconnected ; +; av_begintransfer ; Output ; Info ; Explicitly unconnected ; +; av_beginbursttransfer ; Output ; Info ; Explicitly unconnected ; +; av_burstcount ; Output ; Info ; Explicitly unconnected ; +; av_byteenable ; Output ; Info ; Explicitly unconnected ; +; av_readdatavalid ; Input ; Info ; Stuck at GND ; +; av_waitrequest ; Input ; Info ; Stuck at GND ; +; av_writebyteenable ; Output ; Info ; Explicitly unconnected ; +; av_lock ; Output ; Info ; Explicitly unconnected ; +; av_chipselect ; Output ; Info ; Explicitly unconnected ; +; av_clken ; Output ; Info ; Explicitly unconnected ; +; uav_clken ; Input ; Info ; Stuck at GND ; +; av_debugaccess ; Output ; Info ; Explicitly unconnected ; +; av_outputenable ; Output ; Info ; Explicitly unconnected ; +; uav_response ; Output ; Info ; Explicitly unconnected ; +; av_response ; Input ; Info ; Stuck at GND ; +; uav_writeresponserequest ; Input ; Info ; Stuck at GND ; +; uav_writeresponsevalid ; Output ; Info ; Explicitly unconnected ; +; av_writeresponserequest ; Output ; Info ; Explicitly unconnected ; +; av_writeresponsevalid ; Input ; Info ; Stuck at GND ; ++--------------------------+--------+----------+------------------------------------------------------------+ + + ++------------------------------------------------------------------------------------------------------+ +; Port Connectivity Checks: "nios_system:NiosII|altera_merlin_slave_translator:switches_s1_translator" ; ++--------------------------+--------+----------+-------------------------------------------------------+ +; Port ; Type ; Severity ; Details ; ++--------------------------+--------+----------+-------------------------------------------------------+ +; av_write ; Output ; Info ; Explicitly unconnected ; +; av_read ; Output ; Info ; Explicitly unconnected ; +; av_writedata ; Output ; Info ; Explicitly unconnected ; +; av_begintransfer ; Output ; Info ; Explicitly unconnected ; +; av_beginbursttransfer ; Output ; Info ; Explicitly unconnected ; +; av_burstcount ; Output ; Info ; Explicitly unconnected ; +; av_byteenable ; Output ; Info ; Explicitly unconnected ; +; av_readdatavalid ; Input ; Info ; Stuck at GND ; +; av_waitrequest ; Input ; Info ; Stuck at GND ; +; av_writebyteenable ; Output ; Info ; Explicitly unconnected ; +; av_lock ; Output ; Info ; Explicitly unconnected ; +; av_chipselect ; Output ; Info ; Explicitly unconnected ; +; av_clken ; Output ; Info ; Explicitly unconnected ; +; uav_clken ; Input ; Info ; Stuck at GND ; +; av_debugaccess ; Output ; Info ; Explicitly unconnected ; +; av_outputenable ; Output ; Info ; Explicitly unconnected ; +; uav_response ; Output ; Info ; Explicitly unconnected ; +; av_response ; Input ; Info ; Stuck at GND ; +; uav_writeresponserequest ; Input ; Info ; Stuck at GND ; +; uav_writeresponsevalid ; Output ; Info ; Explicitly unconnected ; +; av_writeresponserequest ; Output ; Info ; Explicitly unconnected ; +; av_writeresponsevalid ; Input ; Info ; Stuck at GND ; ++--------------------------+--------+----------+-------------------------------------------------------+ + + ++---------------------------------------------------------------------------------------------------+ +; Port Connectivity Checks: "nios_system:NiosII|altera_merlin_slave_translator:ledrs_s1_translator" ; ++--------------------------+--------+----------+----------------------------------------------------+ +; Port ; Type ; Severity ; Details ; ++--------------------------+--------+----------+----------------------------------------------------+ +; av_read ; Output ; Info ; Explicitly unconnected ; +; av_begintransfer ; Output ; Info ; Explicitly unconnected ; +; av_beginbursttransfer ; Output ; Info ; Explicitly unconnected ; +; av_burstcount ; Output ; Info ; Explicitly unconnected ; +; av_byteenable ; Output ; Info ; Explicitly unconnected ; +; av_readdatavalid ; Input ; Info ; Stuck at GND ; +; av_waitrequest ; Input ; Info ; Stuck at GND ; +; av_writebyteenable ; Output ; Info ; Explicitly unconnected ; +; av_lock ; Output ; Info ; Explicitly unconnected ; +; av_clken ; Output ; Info ; Explicitly unconnected ; +; uav_clken ; Input ; Info ; Stuck at GND ; +; av_debugaccess ; Output ; Info ; Explicitly unconnected ; +; av_outputenable ; Output ; Info ; Explicitly unconnected ; +; uav_response ; Output ; Info ; Explicitly unconnected ; +; av_response ; Input ; Info ; Stuck at GND ; +; uav_writeresponserequest ; Input ; Info ; Stuck at GND ; +; uav_writeresponsevalid ; Output ; Info ; Explicitly unconnected ; +; av_writeresponserequest ; Output ; Info ; Explicitly unconnected ; +; av_writeresponsevalid ; Input ; Info ; Stuck at GND ; ++--------------------------+--------+----------+----------------------------------------------------+ + + ++----------------------------------------------------------------------------------------------------------------------+ +; Port Connectivity Checks: "nios_system:NiosII|altera_merlin_slave_translator:jtag_uart_avalon_jtag_slave_translator" ; ++--------------------------+--------+----------+-----------------------------------------------------------------------+ +; Port ; Type ; Severity ; Details ; ++--------------------------+--------+----------+-----------------------------------------------------------------------+ +; av_begintransfer ; Output ; Info ; Explicitly unconnected ; +; av_beginbursttransfer ; Output ; Info ; Explicitly unconnected ; +; av_burstcount ; Output ; Info ; Explicitly unconnected ; +; av_byteenable ; Output ; Info ; Explicitly unconnected ; +; av_readdatavalid ; Input ; Info ; Stuck at GND ; +; av_writebyteenable ; Output ; Info ; Explicitly unconnected ; +; av_lock ; Output ; Info ; Explicitly unconnected ; +; av_clken ; Output ; Info ; Explicitly unconnected ; +; uav_clken ; Input ; Info ; Stuck at GND ; +; av_debugaccess ; Output ; Info ; Explicitly unconnected ; +; av_outputenable ; Output ; Info ; Explicitly unconnected ; +; uav_response ; Output ; Info ; Explicitly unconnected ; +; av_response ; Input ; Info ; Stuck at GND ; +; uav_writeresponserequest ; Input ; Info ; Stuck at GND ; +; uav_writeresponsevalid ; Output ; Info ; Explicitly unconnected ; +; av_writeresponserequest ; Output ; Info ; Explicitly unconnected ; +; av_writeresponsevalid ; Input ; Info ; Stuck at GND ; ++--------------------------+--------+----------+-----------------------------------------------------------------------+ + + ++--------------------------------------------------------------------------------------------------+ +; Port Connectivity Checks: "nios_system:NiosII|altera_merlin_slave_translator:leds_s1_translator" ; ++--------------------------+--------+----------+---------------------------------------------------+ +; Port ; Type ; Severity ; Details ; ++--------------------------+--------+----------+---------------------------------------------------+ +; av_read ; Output ; Info ; Explicitly unconnected ; +; av_begintransfer ; Output ; Info ; Explicitly unconnected ; +; av_beginbursttransfer ; Output ; Info ; Explicitly unconnected ; +; av_burstcount ; Output ; Info ; Explicitly unconnected ; +; av_byteenable ; Output ; Info ; Explicitly unconnected ; +; av_readdatavalid ; Input ; Info ; Stuck at GND ; +; av_waitrequest ; Input ; Info ; Stuck at GND ; +; av_writebyteenable ; Output ; Info ; Explicitly unconnected ; +; av_lock ; Output ; Info ; Explicitly unconnected ; +; av_clken ; Output ; Info ; Explicitly unconnected ; +; uav_clken ; Input ; Info ; Stuck at GND ; +; av_debugaccess ; Output ; Info ; Explicitly unconnected ; +; av_outputenable ; Output ; Info ; Explicitly unconnected ; +; uav_response ; Output ; Info ; Explicitly unconnected ; +; av_response ; Input ; Info ; Stuck at GND ; +; uav_writeresponserequest ; Input ; Info ; Stuck at GND ; +; uav_writeresponsevalid ; Output ; Info ; Explicitly unconnected ; +; av_writeresponserequest ; Output ; Info ; Explicitly unconnected ; +; av_writeresponsevalid ; Input ; Info ; Stuck at GND ; ++--------------------------+--------+----------+---------------------------------------------------+ + + ++-----------------------------------------------------------------------------------------------------------+ +; Port Connectivity Checks: "nios_system:NiosII|altera_merlin_slave_translator:onchip_memory_s1_translator" ; ++--------------------------+--------+----------+------------------------------------------------------------+ +; Port ; Type ; Severity ; Details ; ++--------------------------+--------+----------+------------------------------------------------------------+ +; av_read ; Output ; Info ; Explicitly unconnected ; +; av_begintransfer ; Output ; Info ; Explicitly unconnected ; +; av_beginbursttransfer ; Output ; Info ; Explicitly unconnected ; +; av_burstcount ; Output ; Info ; Explicitly unconnected ; +; av_readdatavalid ; Input ; Info ; Stuck at GND ; +; av_waitrequest ; Input ; Info ; Stuck at GND ; +; av_writebyteenable ; Output ; Info ; Explicitly unconnected ; +; av_lock ; Output ; Info ; Explicitly unconnected ; +; uav_clken ; Input ; Info ; Stuck at GND ; +; av_debugaccess ; Output ; Info ; Explicitly unconnected ; +; av_outputenable ; Output ; Info ; Explicitly unconnected ; +; uav_response ; Output ; Info ; Explicitly unconnected ; +; av_response ; Input ; Info ; Stuck at GND ; +; uav_writeresponserequest ; Input ; Info ; Stuck at GND ; +; uav_writeresponsevalid ; Output ; Info ; Explicitly unconnected ; +; av_writeresponserequest ; Output ; Info ; Explicitly unconnected ; +; av_writeresponsevalid ; Input ; Info ; Stuck at GND ; ++--------------------------+--------+----------+------------------------------------------------------------+ + + ++----------------------------------------------------------------------------------------------------------------------------+ +; Port Connectivity Checks: "nios_system:NiosII|altera_merlin_slave_translator:nios2_processor_jtag_debug_module_translator" ; ++--------------------------+--------+----------+-----------------------------------------------------------------------------+ +; Port ; Type ; Severity ; Details ; ++--------------------------+--------+----------+-----------------------------------------------------------------------------+ +; av_begintransfer ; Output ; Info ; Explicitly unconnected ; +; av_beginbursttransfer ; Output ; Info ; Explicitly unconnected ; +; av_burstcount ; Output ; Info ; Explicitly unconnected ; +; av_readdatavalid ; Input ; Info ; Stuck at GND ; +; av_writebyteenable ; Output ; Info ; Explicitly unconnected ; +; av_lock ; Output ; Info ; Explicitly unconnected ; +; av_chipselect ; Output ; Info ; Explicitly unconnected ; +; av_clken ; Output ; Info ; Explicitly unconnected ; +; uav_clken ; Input ; Info ; Stuck at GND ; +; av_outputenable ; Output ; Info ; Explicitly unconnected ; +; uav_response ; Output ; Info ; Explicitly unconnected ; +; av_response ; Input ; Info ; Stuck at GND ; +; uav_writeresponserequest ; Input ; Info ; Stuck at GND ; +; uav_writeresponsevalid ; Output ; Info ; Explicitly unconnected ; +; av_writeresponserequest ; Output ; Info ; Explicitly unconnected ; +; av_writeresponsevalid ; Input ; Info ; Stuck at GND ; ++--------------------------+--------+----------+-----------------------------------------------------------------------------+ + + ++-----------------------------------------------------------------------------------------------------------------------+ +; Port Connectivity Checks: "nios_system:NiosII|altera_merlin_master_translator:nios2_processor_data_master_translator" ; ++--------------------------+--------+----------+------------------------------------------------------------------------+ +; Port ; Type ; Severity ; Details ; ++--------------------------+--------+----------+------------------------------------------------------------------------+ +; av_burstcount ; Input ; Info ; Stuck at VCC ; +; av_beginbursttransfer ; Input ; Info ; Stuck at GND ; +; av_begintransfer ; Input ; Info ; Stuck at GND ; +; av_chipselect ; Input ; Info ; Stuck at GND ; +; av_readdatavalid ; Output ; Info ; Explicitly unconnected ; +; av_lock ; Input ; Info ; Stuck at GND ; +; uav_clken ; Output ; Info ; Explicitly unconnected ; +; av_clken ; Input ; Info ; Stuck at VCC ; +; uav_response ; Input ; Info ; Stuck at GND ; +; av_response ; Output ; Info ; Explicitly unconnected ; +; uav_writeresponserequest ; Output ; Info ; Explicitly unconnected ; +; uav_writeresponsevalid ; Input ; Info ; Stuck at GND ; +; av_writeresponserequest ; Input ; Info ; Stuck at GND ; +; av_writeresponsevalid ; Output ; Info ; Explicitly unconnected ; ++--------------------------+--------+----------+------------------------------------------------------------------------+ + + ++------------------------------------------------------------------------------------------------------------------------------+ +; Port Connectivity Checks: "nios_system:NiosII|altera_merlin_master_translator:nios2_processor_instruction_master_translator" ; ++--------------------------+--------+----------+-------------------------------------------------------------------------------+ +; Port ; Type ; Severity ; Details ; ++--------------------------+--------+----------+-------------------------------------------------------------------------------+ +; av_burstcount ; Input ; Info ; Stuck at VCC ; +; av_byteenable ; Input ; Info ; Stuck at VCC ; +; av_beginbursttransfer ; Input ; Info ; Stuck at GND ; +; av_begintransfer ; Input ; Info ; Stuck at GND ; +; av_chipselect ; Input ; Info ; Stuck at GND ; +; av_readdatavalid ; Output ; Info ; Explicitly unconnected ; +; av_write ; Input ; Info ; Stuck at GND ; +; av_writedata ; Input ; Info ; Stuck at GND ; +; av_lock ; Input ; Info ; Stuck at GND ; +; av_debugaccess ; Input ; Info ; Stuck at GND ; +; uav_clken ; Output ; Info ; Explicitly unconnected ; +; av_clken ; Input ; Info ; Stuck at VCC ; +; uav_response ; Input ; Info ; Stuck at GND ; +; av_response ; Output ; Info ; Explicitly unconnected ; +; uav_writeresponserequest ; Output ; Info ; Explicitly unconnected ; +; uav_writeresponsevalid ; Input ; Info ; Stuck at GND ; +; av_writeresponserequest ; Input ; Info ; Stuck at GND ; +; av_writeresponsevalid ; Output ; Info ; Explicitly unconnected ; ++--------------------------+--------+----------+-------------------------------------------------------------------------------+ + + ++-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Port Connectivity Checks: "nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic" ; ++----------------+--------+----------+----------------------------------------------------------------------------------------------------------------------------------------------+ +; Port ; Type ; Severity ; Details ; ++----------------+--------+----------+----------------------------------------------------------------------------------------------------------------------------------------------+ +; raw_tck ; Input ; Warning ; Declared by entity but not connected by instance. If a default value exists, it will be used. Otherwise, the port will be connected to GND. ; +; tck ; Input ; Warning ; Declared by entity but not connected by instance. If a default value exists, it will be used. Otherwise, the port will be connected to GND. ; +; tdi ; Input ; Warning ; Declared by entity but not connected by instance. If a default value exists, it will be used. Otherwise, the port will be connected to GND. ; +; rti ; Input ; Warning ; Declared by entity but not connected by instance. If a default value exists, it will be used. Otherwise, the port will be connected to GND. ; +; shift ; Input ; Warning ; Declared by entity but not connected by instance. If a default value exists, it will be used. Otherwise, the port will be connected to GND. ; +; update ; Input ; Warning ; Declared by entity but not connected by instance. If a default value exists, it will be used. Otherwise, the port will be connected to GND. ; +; usr1 ; Input ; Warning ; Declared by entity but not connected by instance. If a default value exists, it will be used. Otherwise, the port will be connected to GND. ; +; clr ; Input ; Warning ; Declared by entity but not connected by instance. If a default value exists, it will be used. Otherwise, the port will be connected to GND. ; +; ena ; Input ; Warning ; Declared by entity but not connected by instance. If a default value exists, it will be used. Otherwise, the port will be connected to GND. ; +; ir_in ; Input ; Warning ; Declared by entity but not connected by instance. If a default value exists, it will be used. Otherwise, the port will be connected to GND. ; +; tdo ; Output ; Warning ; Declared by entity but not connected by instance. Logic that only feeds a dangling port will be removed. ; +; irq ; Output ; Warning ; Declared by entity but not connected by instance. Logic that only feeds a dangling port will be removed. ; +; ir_out ; Output ; Warning ; Declared by entity but not connected by instance. Logic that only feeds a dangling port will be removed. ; +; jtag_state_cdr ; Input ; Warning ; Declared by entity but not connected by instance. If a default value exists, it will be used. Otherwise, the port will be connected to GND. ; +; jtag_state_sdr ; Input ; Warning ; Declared by entity but not connected by instance. If a default value exists, it will be used. Otherwise, the port will be connected to GND. ; +; jtag_state_udr ; Input ; Warning ; Declared by entity but not connected by instance. If a default value exists, it will be used. Otherwise, the port will be connected to GND. ; ++----------------+--------+----------+----------------------------------------------------------------------------------------------------------------------------------------------+ + + ++----------------------------------------------------------------------------------------------------------------------------------------------+ +; Port Connectivity Checks: "nios_system:NiosII|nios_system_jtag_uart:jtag_uart" ; ++---------------+--------+----------+----------------------------------------------------------------------------------------------------------+ +; Port ; Type ; Severity ; Details ; ++---------------+--------+----------+----------------------------------------------------------------------------------------------------------+ +; dataavailable ; Output ; Warning ; Declared by entity but not connected by instance. Logic that only feeds a dangling port will be removed. ; +; readyfordata ; Output ; Warning ; Declared by entity but not connected by instance. Logic that only feeds a dangling port will be removed. ; ++---------------+--------+----------+----------------------------------------------------------------------------------------------------------+ + + ++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Port Connectivity Checks: "nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|sld_virtual_jtag_basic:nios_system_nios2_processor_jtag_debug_module_phy" ; ++--------------------+--------+----------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Port ; Type ; Severity ; Details ; ++--------------------+--------+----------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; virtual_state_e1dr ; Output ; Warning ; Declared by entity but not connected by instance. Logic that only feeds a dangling port will be removed. ; +; virtual_state_pdr ; Output ; Warning ; Declared by entity but not connected by instance. Logic that only feeds a dangling port will be removed. ; +; virtual_state_e2dr ; Output ; Warning ; Declared by entity but not connected by instance. Logic that only feeds a dangling port will be removed. ; +; virtual_state_cir ; Output ; Warning ; Declared by entity but not connected by instance. Logic that only feeds a dangling port will be removed. ; +; tms ; Output ; Warning ; Declared by entity but not connected by instance. Logic that only feeds a dangling port will be removed. ; +; jtag_state_tlr ; Output ; Warning ; Declared by entity but not connected by instance. Logic that only feeds a dangling port will be removed. ; +; jtag_state_sdrs ; Output ; Warning ; Declared by entity but not connected by instance. Logic that only feeds a dangling port will be removed. ; +; jtag_state_cdr ; Output ; Warning ; Declared by entity but not connected by instance. Logic that only feeds a dangling port will be removed. ; +; jtag_state_sdr ; Output ; Warning ; Declared by entity but not connected by instance. Logic that only feeds a dangling port will be removed. ; +; jtag_state_e1dr ; Output ; Warning ; Declared by entity but not connected by instance. Logic that only feeds a dangling port will be removed. ; +; jtag_state_pdr ; Output ; Warning ; Declared by entity but not connected by instance. Logic that only feeds a dangling port will be removed. ; +; jtag_state_e2dr ; Output ; Warning ; Declared by entity but not connected by instance. Logic that only feeds a dangling port will be removed. ; +; jtag_state_udr ; Output ; Warning ; Declared by entity but not connected by instance. Logic that only feeds a dangling port will be removed. ; +; jtag_state_sirs ; Output ; Warning ; Declared by entity but not connected by instance. Logic that only feeds a dangling port will be removed. ; +; jtag_state_cir ; Output ; Warning ; Declared by entity but not connected by instance. Logic that only feeds a dangling port will be removed. ; +; jtag_state_sir ; Output ; Warning ; Declared by entity but not connected by instance. Logic that only feeds a dangling port will be removed. ; +; jtag_state_e1ir ; Output ; Warning ; Declared by entity but not connected by instance. Logic that only feeds a dangling port will be removed. ; +; jtag_state_pir ; Output ; Warning ; Declared by entity but not connected by instance. Logic that only feeds a dangling port will be removed. ; +; jtag_state_e2ir ; Output ; Warning ; Declared by entity but not connected by instance. Logic that only feeds a dangling port will be removed. ; +; jtag_state_uir ; Output ; Warning ; Declared by entity but not connected by instance. Logic that only feeds a dangling port will be removed. ; ++--------------------+--------+----------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + + ++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Port Connectivity Checks: "nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk|altera_std_synchronizer:the_altera_std_synchronizer4" ; ++---------+-------+----------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Port ; Type ; Severity ; Details ; ++---------+-------+----------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; reset_n ; Input ; Info ; Stuck at VCC ; ++---------+-------+----------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + + ++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Port Connectivity Checks: "nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk|altera_std_synchronizer:the_altera_std_synchronizer3" ; ++---------+-------+----------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Port ; Type ; Severity ; Details ; ++---------+-------+----------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; reset_n ; Input ; Info ; Stuck at VCC ; ++---------+-------+----------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + + ++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Port Connectivity Checks: "nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_oci_pib:the_nios_system_nios2_processor_nios2_oci_pib" ; ++---------+--------+----------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Port ; Type ; Severity ; Details ; ++---------+--------+----------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; clkx2 ; Input ; Info ; Stuck at GND ; +; tr_clk ; Output ; Info ; Connected to dangling logic. Logic that only feeds a dangling port will be removed. ; +; tr_data ; Output ; Info ; Connected to dangling logic. Logic that only feeds a dangling port will be removed. ; ++---------+--------+----------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + + ++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Port Connectivity Checks: "nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_oci_fifo:the_nios_system_nios2_processor_nios2_oci_fifo|nios_system_nios2_processor_nios2_oci_fifowp_inc:nios_system_nios2_processor_nios2_oci_fifowp_inc_fifowp" ; ++------------+--------+----------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Port ; Type ; Severity ; Details ; ++------------+--------+----------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; fifowp_inc ; Output ; Info ; Connected to dangling logic. Logic that only feeds a dangling port will be removed. ; ++------------+--------+----------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + + ++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Port Connectivity Checks: "nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_oci_dtrace:the_nios_system_nios2_processor_nios2_oci_dtrace|nios_system_nios2_processor_nios2_oci_td_mode:nios_system_nios2_processor_nios2_oci_trc_ctrl_td_mode" ; ++---------+--------+----------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Port ; Type ; Severity ; Details ; ++---------+--------+----------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; td_mode ; Output ; Info ; Connected to dangling logic. Logic that only feeds a dangling port will be removed. ; ++---------+--------+----------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + + ++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Port Connectivity Checks: "nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_oci_itrace:the_nios_system_nios2_processor_nios2_oci_itrace" ; ++------+-------+----------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Port ; Type ; Severity ; Details ; ++------+-------+----------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; jdo ; Input ; Warning ; Input port expression (38 bits) is wider than the input port (16 bits) it drives. The 22 most-significant bit(s) in the expression will be dangling if they have no other fanouts. ; ++------+-------+----------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + + ++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Port Connectivity Checks: "nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_oci_dbrk:the_nios_system_nios2_processor_nios2_oci_dbrk" ; ++--------------+--------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Port ; Type ; Severity ; Details ; ++--------------+--------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; dbrk_trigout ; Output ; Info ; Connected to dangling logic. Logic that only feeds a dangling port will be removed. ; ++--------------+--------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + + ++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Port Connectivity Checks: "nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_oci_xbrk:the_nios_system_nios2_processor_nios2_oci_xbrk" ; ++--------------+--------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Port ; Type ; Severity ; Details ; ++--------------+--------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; xbrk_trigout ; Output ; Info ; Connected to dangling logic. Logic that only feeds a dangling port will be removed. ; ++--------------+--------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + + ++------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Port Connectivity Checks: "nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_oci_debug:the_nios_system_nios2_processor_nios2_oci_debug" ; ++----------+-------+----------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Port ; Type ; Severity ; Details ; ++----------+-------+----------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; debugreq ; Input ; Info ; Stuck at GND ; ++----------+-------+----------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + + ++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Port Connectivity Checks: "nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci" ; ++--------------------+--------+----------+-----------------------------------------------------------------------------------------------------------------------------------+ +; Port ; Type ; Severity ; Details ; ++--------------------+--------+----------+-----------------------------------------------------------------------------------------------------------------------------------+ +; oci_ienable[31..6] ; Output ; Info ; Connected to dangling logic. Logic that only feeds a dangling port will be removed. ; +; oci_ienable[4..0] ; Output ; Info ; Connected to dangling logic. Logic that only feeds a dangling port will be removed. ; ++--------------------+--------+----------+-----------------------------------------------------------------------------------------------------------------------------------+ + + ++------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Port Connectivity Checks: "nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_test_bench:the_nios_system_nios2_processor_test_bench" ; ++-----------------+-------+----------+-----------------------------------------------------------------------------------------------------------------------------------------+ +; Port ; Type ; Severity ; Details ; ++-----------------+-------+----------+-----------------------------------------------------------------------------------------------------------------------------------------+ +; F_pcb[1..0] ; Input ; Info ; Stuck at GND ; +; i_address[1..0] ; Input ; Info ; Stuck at GND ; ++-----------------+-------+----------+-----------------------------------------------------------------------------------------------------------------------------------------+ + + ++--------------------------------------------------------------------------------------------+ +; Port Connectivity Checks: "nios_system:NiosII|nios_system_nios2_processor:nios2_processor" ; ++--------------+--------+----------+---------------------------------------------------------+ +; Port ; Type ; Severity ; Details ; ++--------------+--------+----------+---------------------------------------------------------+ +; no_ci_readra ; Output ; Info ; Explicitly unconnected ; ++--------------+--------+----------+---------------------------------------------------------+ + + ++---------------------------------------------------------------------------------------------------------------------------------------------------+ +; Port Connectivity Checks: "nios_system:NiosII" ; ++------------------+-------+------------------+-----------------------------------------------------------------------------------------------------+ +; Port ; Type ; Severity ; Details ; ++------------------+-------+------------------+-----------------------------------------------------------------------------------------------------+ +; lcd_16207_0_data ; Bidir ; Critical Warning ; Port on prototype, e.g. VHDL component, declared as "Output" but port on entity declared as "Bidir" ; ++------------------+-------+------------------+-----------------------------------------------------------------------------------------------------+ + + ++---------------------------------+ +; Elapsed Time Per Partition ; ++------------------+--------------+ +; Partition Name ; Elapsed Time ; ++------------------+--------------+ +; Top ; 00:00:07 ; +; sld_hub:auto_hub ; 00:00:00 ; ++------------------+--------------+ + + ++-------------------------------+ +; Analysis & Synthesis Messages ; ++-------------------------------+ +Info: ******************************************************************* +Info: Running Quartus II 64-Bit Analysis & Synthesis + Info: Version 13.0.1 Build 232 06/12/2013 Service Pack 1 SJ Web Edition + Info: Processing started: Fri Dec 02 01:32:07 2016 +Info: Command: quartus_map --read_settings_files=on --write_settings_files=off lights -c lights +Warning (20028): Parallel compilation is not licensed and has been disabled +Info (12248): Elaborating Qsys system entity "nios_system.qsys" +Info (12250): 2016.12.02.01:32:09 Progress: Loading qsys_tutorial/nios_system.qsys +Info (12250): 2016.12.02.01:32:09 Progress: Reading input file +Info (12250): 2016.12.02.01:32:09 Progress: Adding clk_0 [clock_source 13.0] +Info (12250): 2016.12.02.01:32:09 Progress: Parameterizing module clk_0 +Info (12250): 2016.12.02.01:32:09 Progress: Adding nios2_processor [altera_nios2_qsys 13.0] +Info (12250): 2016.12.02.01:32:10 Progress: Parameterizing module nios2_processor +Info (12250): 2016.12.02.01:32:10 Progress: Adding onchip_memory [altera_avalon_onchip_memory2 13.0.1.99.2] +Info (12250): 2016.12.02.01:32:10 Progress: Parameterizing module onchip_memory +Info (12250): 2016.12.02.01:32:10 Progress: Adding jtag_uart [altera_avalon_jtag_uart 13.0.1.99.2] +Info (12250): 2016.12.02.01:32:10 Progress: Parameterizing module jtag_uart +Info (12250): 2016.12.02.01:32:10 Progress: Adding LEDs [altera_avalon_pio 13.0.1.99.2] +Info (12250): 2016.12.02.01:32:10 Progress: Parameterizing module LEDs +Info (12250): 2016.12.02.01:32:10 Progress: Adding LEDRs [altera_avalon_pio 13.0.1.99.2] +Info (12250): 2016.12.02.01:32:10 Progress: Parameterizing module LEDRs +Info (12250): 2016.12.02.01:32:10 Progress: Adding switches [altera_avalon_pio 13.0.1.99.2] +Info (12250): 2016.12.02.01:32:10 Progress: Parameterizing module switches +Info (12250): 2016.12.02.01:32:10 Progress: Adding push_switches [altera_avalon_pio 13.0.1.99.2] +Info (12250): 2016.12.02.01:32:10 Progress: Parameterizing module push_switches +Info (12250): 2016.12.02.01:32:10 Progress: Adding hex0 [altera_avalon_pio 13.0.1.99.2] +Info (12250): 2016.12.02.01:32:10 Progress: Parameterizing module hex0 +Info (12250): 2016.12.02.01:32:10 Progress: Adding hex1 [altera_avalon_pio 13.0.1.99.2] +Info (12250): 2016.12.02.01:32:10 Progress: Parameterizing module hex1 +Info (12250): 2016.12.02.01:32:10 Progress: Adding hex2 [altera_avalon_pio 13.0.1.99.2] +Info (12250): 2016.12.02.01:32:10 Progress: Parameterizing module hex2 +Info (12250): 2016.12.02.01:32:10 Progress: Adding hex3 [altera_avalon_pio 13.0.1.99.2] +Info (12250): 2016.12.02.01:32:10 Progress: Parameterizing module hex3 +Info (12250): 2016.12.02.01:32:10 Progress: Adding hex4 [altera_avalon_pio 13.0.1.99.2] +Info (12250): 2016.12.02.01:32:10 Progress: Parameterizing module hex4 +Info (12250): 2016.12.02.01:32:10 Progress: Adding hex5 [altera_avalon_pio 13.0.1.99.2] +Info (12250): 2016.12.02.01:32:10 Progress: Parameterizing module hex5 +Info (12250): 2016.12.02.01:32:10 Progress: Adding hex6 [altera_avalon_pio 13.0.1.99.2] +Info (12250): 2016.12.02.01:32:10 Progress: Parameterizing module hex6 +Info (12250): 2016.12.02.01:32:10 Progress: Adding hex7 [altera_avalon_pio 13.0.1.99.2] +Info (12250): 2016.12.02.01:32:10 Progress: Parameterizing module hex7 +Info (12250): 2016.12.02.01:32:10 Progress: Adding lcd_16207_0 [altera_avalon_lcd_16207 13.0.1.99.2] +Info (12250): 2016.12.02.01:32:10 Progress: Parameterizing module lcd_16207_0 +Info (12250): 2016.12.02.01:32:10 Progress: Adding lcd_on [altera_avalon_pio 13.0.1.99.2] +Info (12250): 2016.12.02.01:32:10 Progress: Parameterizing module lcd_on +Info (12250): 2016.12.02.01:32:10 Progress: Adding lcd_blon [altera_avalon_pio 13.0.1.99.2] +Info (12250): 2016.12.02.01:32:10 Progress: Parameterizing module lcd_blon +Info (12250): 2016.12.02.01:32:10 Progress: Building connections +Info (12250): 2016.12.02.01:32:10 Progress: Parameterizing connections +Info (12250): 2016.12.02.01:32:10 Progress: Validating +Info (12250): 2016.12.02.01:32:11 Progress: Done reading input file +Info (12250): Nios_system.switches: PIO inputs are not hardwired in test bench. Undefined values will be read from PIO inputs during simulation. +Info (12250): Nios_system.push_switches: PIO inputs are not hardwired in test bench. Undefined values will be read from PIO inputs during simulation. +Info (12250): Nios_system: Generating nios_system "nios_system" for QUARTUS_SYNTH +Info (12250): Pipeline_bridge_swap_transform: After transform: 19 modules, 75 connections +Info (12250): No custom instruction connections, skipping transform +Info (12250): Merlin_translator_transform: After transform: 39 modules, 155 connections +Info (12250): Merlin_domain_transform: After transform: 78 modules, 423 connections +Info (12250): Merlin_router_transform: After transform: 98 modules, 503 connections +Info (12250): Reset_adaptation_transform: After transform: 99 modules, 390 connections +Info (12250): Merlin_network_to_switch_transform: After transform: 138 modules, 470 connections +Info (12250): Merlin_mm_transform: After transform: 138 modules, 470 connections +Info (12250): Merlin_interrupt_mapper_transform: After transform: 139 modules, 473 connections +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Warning (12251): Nios_system: "No matching role found for rst_controller:reset_out:reset_req (reset_req)" +Info (12250): Nios2_processor: Starting RTL generation for module 'nios_system_nios2_processor' +Info (12250): Nios2_processor: Generation command is [exec C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2/eperl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2/cpu_lib -I C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2/nios_lib -I C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2 -I C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2 -- C:/altera/13.0sp1/quartus/../ip/altera/nios2_ip/altera_nios2/generate_rtl.epl --name=nios_system_nios2_processor --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_6175737974426620063.dir/0001_nios2_processor_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_6175737974426620063.dir/0001_nios2_processor_gen//nios_system_nios2_processor_processor_configuration.pl --do_build_sim=0 --bogus ] +Info (12250): Nios2_processor: # 2016.12.02 01:32:17 (*) Starting Nios II generation +Info (12250): Nios2_processor: # 2016.12.02 01:32:17 (*) Checking for plaintext license. +Info (12250): Nios2_processor: # 2016.12.02 01:32:17 (*) Couldn't query license setup in Quartus directory C:/altera/13.0sp1/quartus +Info (12250): Nios2_processor: # 2016.12.02 01:32:17 (*) Defaulting to contents of LM_LICENSE_FILE environment variable +Info (12250): Nios2_processor: # 2016.12.02 01:32:17 (*) LM_LICENSE_FILE environment variable is empty +Info (12250): Nios2_processor: # 2016.12.02 01:32:17 (*) Plaintext license not found. +Info (12250): Nios2_processor: # 2016.12.02 01:32:17 (*) No license required to generate encrypted Nios II/e. +Info (12250): Nios2_processor: # 2016.12.02 01:32:17 (*) Elaborating CPU configuration settings +Info (12250): Nios2_processor: # 2016.12.02 01:32:17 (*) Creating all objects for CPU +Info (12250): Nios2_processor: # 2016.12.02 01:32:18 (*) Generating RTL from CPU objects +Info (12250): Nios2_processor: # 2016.12.02 01:32:18 (*) Creating plain-text RTL +Info (12250): Nios2_processor: # 2016.12.02 01:32:20 (*) Done Nios II generation +Info (12250): Nios2_processor: Done RTL generation for module 'nios_system_nios2_processor' +Info (12250): Nios2_processor: "nios_system" instantiated altera_nios2_qsys "nios2_processor" +Info (12250): Onchip_memory: Starting RTL generation for module 'nios_system_onchip_memory' +Info (12250): Onchip_memory: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_onchip_memory2 -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_onchip_memory2/generate_rtl.pl --name=nios_system_onchip_memory --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_6175737974426620063.dir/0002_onchip_memory_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_6175737974426620063.dir/0002_onchip_memory_gen//nios_system_onchip_memory_component_configuration.pl --do_build_sim=0 ] +Info (12250): Onchip_memory: Done RTL generation for module 'nios_system_onchip_memory' +Info (12250): Onchip_memory: "nios_system" instantiated altera_avalon_onchip_memory2 "onchip_memory" +Info (12250): Jtag_uart: Starting RTL generation for module 'nios_system_jtag_uart' +Info (12250): Jtag_uart: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_jtag_uart -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_jtag_uart/generate_rtl.pl --name=nios_system_jtag_uart --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_6175737974426620063.dir/0003_jtag_uart_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_6175737974426620063.dir/0003_jtag_uart_gen//nios_system_jtag_uart_component_configuration.pl --do_build_sim=0 ] +Info (12250): Jtag_uart: Done RTL generation for module 'nios_system_jtag_uart' +Info (12250): Jtag_uart: "nios_system" instantiated altera_avalon_jtag_uart "jtag_uart" +Info (12250): LEDs: Starting RTL generation for module 'nios_system_LEDs' +Info (12250): LEDs: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_LEDs --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_6175737974426620063.dir/0004_LEDs_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_6175737974426620063.dir/0004_LEDs_gen//nios_system_LEDs_component_configuration.pl --do_build_sim=0 ] +Info (12250): LEDs: Done RTL generation for module 'nios_system_LEDs' +Info (12250): LEDs: "nios_system" instantiated altera_avalon_pio "LEDs" +Info (12250): LEDRs: Starting RTL generation for module 'nios_system_LEDRs' +Info (12250): LEDRs: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_LEDRs --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_6175737974426620063.dir/0005_LEDRs_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_6175737974426620063.dir/0005_LEDRs_gen//nios_system_LEDRs_component_configuration.pl --do_build_sim=0 ] +Info (12250): LEDRs: Done RTL generation for module 'nios_system_LEDRs' +Info (12250): LEDRs: "nios_system" instantiated altera_avalon_pio "LEDRs" +Info (12250): Switches: Starting RTL generation for module 'nios_system_switches' +Info (12250): Switches: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_switches --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_6175737974426620063.dir/0006_switches_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_6175737974426620063.dir/0006_switches_gen//nios_system_switches_component_configuration.pl --do_build_sim=0 ] +Info (12250): Switches: Done RTL generation for module 'nios_system_switches' +Info (12250): Switches: "nios_system" instantiated altera_avalon_pio "switches" +Info (12250): Push_switches: Starting RTL generation for module 'nios_system_push_switches' +Info (12250): Push_switches: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_push_switches --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_6175737974426620063.dir/0007_push_switches_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_6175737974426620063.dir/0007_push_switches_gen//nios_system_push_switches_component_configuration.pl --do_build_sim=0 ] +Info (12250): Push_switches: Done RTL generation for module 'nios_system_push_switches' +Info (12250): Push_switches: "nios_system" instantiated altera_avalon_pio "push_switches" +Info (12250): Hex0: Starting RTL generation for module 'nios_system_hex0' +Info (12250): Hex0: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_hex0 --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_6175737974426620063.dir/0008_hex0_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_6175737974426620063.dir/0008_hex0_gen//nios_system_hex0_component_configuration.pl --do_build_sim=0 ] +Info (12250): Hex0: Done RTL generation for module 'nios_system_hex0' +Info (12250): Hex0: "nios_system" instantiated altera_avalon_pio "hex0" +Info (12250): Lcd_16207_0: Starting RTL generation for module 'nios_system_lcd_16207_0' +Info (12250): Lcd_16207_0: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_lcd_16207 -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_lcd_16207/generate_rtl.pl --name=nios_system_lcd_16207_0 --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_6175737974426620063.dir/0009_lcd_16207_0_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_6175737974426620063.dir/0009_lcd_16207_0_gen//nios_system_lcd_16207_0_component_configuration.pl --do_build_sim=0 ] +Info (12250): Lcd_16207_0: Done RTL generation for module 'nios_system_lcd_16207_0' +Info (12250): Lcd_16207_0: "nios_system" instantiated altera_avalon_lcd_16207 "lcd_16207_0" +Info (12250): Lcd_on: Starting RTL generation for module 'nios_system_lcd_on' +Info (12250): Lcd_on: Generation command is [exec C:/altera/13.0sp1/quartus/bin/perl/bin/perl.exe -I C:/altera/13.0sp1/quartus/common/ip/altera/common/perl/5.8.3 -I C:/altera/13.0sp1/quartus/sopc_builder/bin/europa -I C:/altera/13.0sp1/quartus/sopc_builder/bin/perl_lib -I C:/altera/13.0sp1/quartus/sopc_builder/bin -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/common -I C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio -- C:/altera/13.0sp1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl --name=nios_system_lcd_on --dir=C:/Users/takayun/AppData/Local/Temp/alt7136_6175737974426620063.dir/0010_lcd_on_gen/ --quartus_dir=C:/altera/13.0sp1/quartus --verilog --config=C:/Users/takayun/AppData/Local/Temp/alt7136_6175737974426620063.dir/0010_lcd_on_gen//nios_system_lcd_on_component_configuration.pl --do_build_sim=0 ] +Info (12250): Lcd_on: Done RTL generation for module 'nios_system_lcd_on' +Info (12250): Lcd_on: "nios_system" instantiated altera_avalon_pio "lcd_on" +Info (12250): Nios2_processor_instruction_master_translator: "nios_system" instantiated altera_merlin_master_translator "nios2_processor_instruction_master_translator" +Info (12250): Nios2_processor_jtag_debug_module_translator: "nios_system" instantiated altera_merlin_slave_translator "nios2_processor_jtag_debug_module_translator" +Info (12250): Nios2_processor_instruction_master_translator_avalon_universal_master_0_agent: "nios_system" instantiated altera_merlin_master_agent "nios2_processor_instruction_master_translator_avalon_universal_master_0_agent" +Info (12250): Nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent: "nios_system" instantiated altera_merlin_slave_agent "nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent" +Info (12250): Nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo: "nios_system" instantiated altera_avalon_sc_fifo "nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo" +Info (12250): Addr_router: "nios_system" instantiated altera_merlin_router "addr_router" +Info (12250): Addr_router_001: "nios_system" instantiated altera_merlin_router "addr_router_001" +Info (12250): Id_router: "nios_system" instantiated altera_merlin_router "id_router" +Info (12250): Id_router_002: "nios_system" instantiated altera_merlin_router "id_router_002" +Info (12250): Rst_controller: "nios_system" instantiated altera_reset_controller "rst_controller" +Info (12250): Cmd_xbar_demux: "nios_system" instantiated altera_merlin_demultiplexer "cmd_xbar_demux" +Info (12250): Cmd_xbar_demux_001: "nios_system" instantiated altera_merlin_demultiplexer "cmd_xbar_demux_001" +Info (12250): Cmd_xbar_mux: "nios_system" instantiated altera_merlin_multiplexer "cmd_xbar_mux" +Info (12250): Rsp_xbar_demux_002: "nios_system" instantiated altera_merlin_demultiplexer "rsp_xbar_demux_002" +Info (12250): Rsp_xbar_mux: "nios_system" instantiated altera_merlin_multiplexer "rsp_xbar_mux" +Info (12250): Reusing file C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/altera_merlin_arbitrator.sv +Info (12250): Rsp_xbar_mux_001: "nios_system" instantiated altera_merlin_multiplexer "rsp_xbar_mux_001" +Info (12250): Reusing file C:/Users/takayun/Documents/DE2-115/qsys_tutorial/db/ip/nios_system/submodules/altera_merlin_arbitrator.sv +Info (12250): Irq_mapper: "nios_system" instantiated altera_irq_mapper "irq_mapper" +Info (12250): Nios_system: Done nios_system" with 28 modules, 155 files, 4086283 bytes +Info (12249): Finished elaborating Qsys system entity "nios_system.qsys" +Info (12021): Found 2 design units, including 1 entities, in source file lights.vhd + Info (12022): Found design unit 1: lights-lights_rtl + Info (12023): Found entity 1: lights +Info (12021): Found 1 design units, including 1 entities, in source file nios_system/synthesis/nios_system.v + Info (12023): Found entity 1: nios_system +Info (12021): Found 1 design units, including 1 entities, in source file db/ip/nios_system/nios_system.v + Info (12023): Found entity 1: nios_system +Info (12021): Found 1 design units, including 1 entities, in source file db/ip/nios_system/submodules/altera_avalon_sc_fifo.v + Info (12023): Found entity 1: altera_avalon_sc_fifo +Info (12021): Found 2 design units, including 2 entities, in source file db/ip/nios_system/submodules/altera_merlin_arbitrator.sv + Info (12023): Found entity 1: altera_merlin_arbitrator + Info (12023): Found entity 2: altera_merlin_arb_adder +Info (12021): Found 1 design units, including 1 entities, in source file db/ip/nios_system/submodules/altera_merlin_burst_uncompressor.sv + Info (12023): Found entity 1: altera_merlin_burst_uncompressor +Info (12021): Found 1 design units, including 1 entities, in source file db/ip/nios_system/submodules/altera_merlin_master_agent.sv + Info (12023): Found entity 1: altera_merlin_master_agent +Info (12021): Found 1 design units, including 1 entities, in source file db/ip/nios_system/submodules/altera_merlin_master_translator.sv + Info (12023): Found entity 1: altera_merlin_master_translator +Info (12021): Found 1 design units, including 1 entities, in source file db/ip/nios_system/submodules/altera_merlin_slave_agent.sv + Info (12023): Found entity 1: altera_merlin_slave_agent +Info (12021): Found 1 design units, including 1 entities, in source file db/ip/nios_system/submodules/altera_merlin_slave_translator.sv + Info (12023): Found entity 1: altera_merlin_slave_translator +Info (12021): Found 1 design units, including 1 entities, in source file db/ip/nios_system/submodules/altera_reset_controller.v + Info (12023): Found entity 1: altera_reset_controller +Info (12021): Found 1 design units, including 1 entities, in source file db/ip/nios_system/submodules/altera_reset_synchronizer.v + Info (12023): Found entity 1: altera_reset_synchronizer +Info (12021): Found 1 design units, including 1 entities, in source file db/ip/nios_system/submodules/nios_system_ledrs.v + Info (12023): Found entity 1: nios_system_LEDRs +Info (12021): Found 1 design units, including 1 entities, in source file db/ip/nios_system/submodules/nios_system_leds.v + Info (12023): Found entity 1: nios_system_LEDs +Info (12021): Found 2 design units, including 2 entities, in source file db/ip/nios_system/submodules/nios_system_addr_router.sv + Info (12023): Found entity 1: nios_system_addr_router_default_decode + Info (12023): Found entity 2: nios_system_addr_router +Info (12021): Found 2 design units, including 2 entities, in source file db/ip/nios_system/submodules/nios_system_addr_router_001.sv + Info (12023): Found entity 1: nios_system_addr_router_001_default_decode + Info (12023): Found entity 2: nios_system_addr_router_001 +Info (12021): Found 1 design units, including 1 entities, in source file db/ip/nios_system/submodules/nios_system_cmd_xbar_demux.sv + Info (12023): Found entity 1: nios_system_cmd_xbar_demux +Info (12021): Found 1 design units, including 1 entities, in source file db/ip/nios_system/submodules/nios_system_cmd_xbar_demux_001.sv + Info (12023): Found entity 1: nios_system_cmd_xbar_demux_001 +Info (12021): Found 1 design units, including 1 entities, in source file db/ip/nios_system/submodules/nios_system_cmd_xbar_mux.sv + Info (12023): Found entity 1: nios_system_cmd_xbar_mux +Info (12021): Found 1 design units, including 1 entities, in source file db/ip/nios_system/submodules/nios_system_hex0.v + Info (12023): Found entity 1: nios_system_hex0 +Info (12021): Found 2 design units, including 2 entities, in source file db/ip/nios_system/submodules/nios_system_id_router.sv + Info (12023): Found entity 1: nios_system_id_router_default_decode + Info (12023): Found entity 2: nios_system_id_router +Info (12021): Found 2 design units, including 2 entities, in source file db/ip/nios_system/submodules/nios_system_id_router_002.sv + Info (12023): Found entity 1: nios_system_id_router_002_default_decode + Info (12023): Found entity 2: nios_system_id_router_002 +Info (12021): Found 1 design units, including 1 entities, in source file db/ip/nios_system/submodules/nios_system_irq_mapper.sv + Info (12023): Found entity 1: nios_system_irq_mapper +Info (12021): Found 5 design units, including 5 entities, in source file db/ip/nios_system/submodules/nios_system_jtag_uart.v + Info (12023): Found entity 1: nios_system_jtag_uart_sim_scfifo_w + Info (12023): Found entity 2: nios_system_jtag_uart_scfifo_w + Info (12023): Found entity 3: nios_system_jtag_uart_sim_scfifo_r + Info (12023): Found entity 4: nios_system_jtag_uart_scfifo_r + Info (12023): Found entity 5: nios_system_jtag_uart +Info (12021): Found 1 design units, including 1 entities, in source file db/ip/nios_system/submodules/nios_system_lcd_16207_0.v + Info (12023): Found entity 1: nios_system_lcd_16207_0 +Info (12021): Found 1 design units, including 1 entities, in source file db/ip/nios_system/submodules/nios_system_lcd_on.v + Info (12023): Found entity 1: nios_system_lcd_on +Info (12021): Found 21 design units, including 21 entities, in source file db/ip/nios_system/submodules/nios_system_nios2_processor.v + Info (12023): Found entity 1: nios_system_nios2_processor_register_bank_a_module + Info (12023): Found entity 2: nios_system_nios2_processor_register_bank_b_module + Info (12023): Found entity 3: nios_system_nios2_processor_nios2_oci_debug + Info (12023): Found entity 4: nios_system_nios2_processor_ociram_sp_ram_module + Info (12023): Found entity 5: nios_system_nios2_processor_nios2_ocimem + Info (12023): Found entity 6: nios_system_nios2_processor_nios2_avalon_reg + Info (12023): Found entity 7: nios_system_nios2_processor_nios2_oci_break + Info (12023): Found entity 8: nios_system_nios2_processor_nios2_oci_xbrk + Info (12023): Found entity 9: nios_system_nios2_processor_nios2_oci_dbrk + Info (12023): Found entity 10: nios_system_nios2_processor_nios2_oci_itrace + Info (12023): Found entity 11: nios_system_nios2_processor_nios2_oci_td_mode + Info (12023): Found entity 12: nios_system_nios2_processor_nios2_oci_dtrace + Info (12023): Found entity 13: nios_system_nios2_processor_nios2_oci_compute_tm_count + Info (12023): Found entity 14: nios_system_nios2_processor_nios2_oci_fifowp_inc + Info (12023): Found entity 15: nios_system_nios2_processor_nios2_oci_fifocount_inc + Info (12023): Found entity 16: nios_system_nios2_processor_nios2_oci_fifo + Info (12023): Found entity 17: nios_system_nios2_processor_nios2_oci_pib + Info (12023): Found entity 18: nios_system_nios2_processor_nios2_oci_im + Info (12023): Found entity 19: nios_system_nios2_processor_nios2_performance_monitors + Info (12023): Found entity 20: nios_system_nios2_processor_nios2_oci + Info (12023): Found entity 21: nios_system_nios2_processor +Info (12021): Found 1 design units, including 1 entities, in source file db/ip/nios_system/submodules/nios_system_nios2_processor_jtag_debug_module_sysclk.v + Info (12023): Found entity 1: nios_system_nios2_processor_jtag_debug_module_sysclk +Info (12021): Found 1 design units, including 1 entities, in source file db/ip/nios_system/submodules/nios_system_nios2_processor_jtag_debug_module_tck.v + Info (12023): Found entity 1: nios_system_nios2_processor_jtag_debug_module_tck +Info (12021): Found 1 design units, including 1 entities, in source file db/ip/nios_system/submodules/nios_system_nios2_processor_jtag_debug_module_wrapper.v + Info (12023): Found entity 1: nios_system_nios2_processor_jtag_debug_module_wrapper +Info (12021): Found 1 design units, including 1 entities, in source file db/ip/nios_system/submodules/nios_system_nios2_processor_oci_test_bench.v + Info (12023): Found entity 1: nios_system_nios2_processor_oci_test_bench +Info (12021): Found 1 design units, including 1 entities, in source file db/ip/nios_system/submodules/nios_system_nios2_processor_test_bench.v + Info (12023): Found entity 1: nios_system_nios2_processor_test_bench +Info (12021): Found 1 design units, including 1 entities, in source file db/ip/nios_system/submodules/nios_system_onchip_memory.v + Info (12023): Found entity 1: nios_system_onchip_memory +Info (12021): Found 1 design units, including 1 entities, in source file db/ip/nios_system/submodules/nios_system_push_switches.v + Info (12023): Found entity 1: nios_system_push_switches +Info (12021): Found 1 design units, including 1 entities, in source file db/ip/nios_system/submodules/nios_system_rsp_xbar_demux_002.sv + Info (12023): Found entity 1: nios_system_rsp_xbar_demux_002 +Info (12021): Found 1 design units, including 1 entities, in source file db/ip/nios_system/submodules/nios_system_rsp_xbar_mux.sv + Info (12023): Found entity 1: nios_system_rsp_xbar_mux +Info (12021): Found 1 design units, including 1 entities, in source file db/ip/nios_system/submodules/nios_system_rsp_xbar_mux_001.sv + Info (12023): Found entity 1: nios_system_rsp_xbar_mux_001 +Info (12021): Found 1 design units, including 1 entities, in source file db/ip/nios_system/submodules/nios_system_switches.v + Info (12023): Found entity 1: nios_system_switches +Info (12127): Elaborating entity "lights" for the top level hierarchy +Info (12128): Elaborating entity "nios_system" for hierarchy "nios_system:NiosII" +Info (12128): Elaborating entity "nios_system_nios2_processor" for hierarchy "nios_system:NiosII|nios_system_nios2_processor:nios2_processor" +Info (12128): Elaborating entity "nios_system_nios2_processor_test_bench" for hierarchy "nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_test_bench:the_nios_system_nios2_processor_test_bench" +Info (12128): Elaborating entity "nios_system_nios2_processor_register_bank_a_module" for hierarchy "nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_register_bank_a_module:nios_system_nios2_processor_register_bank_a" +Info (12128): Elaborating entity "altsyncram" for hierarchy "nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_register_bank_a_module:nios_system_nios2_processor_register_bank_a|altsyncram:the_altsyncram" +Info (12130): Elaborated megafunction instantiation "nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_register_bank_a_module:nios_system_nios2_processor_register_bank_a|altsyncram:the_altsyncram" +Info (12133): Instantiated megafunction "nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_register_bank_a_module:nios_system_nios2_processor_register_bank_a|altsyncram:the_altsyncram" with the following parameter: + Info (12134): Parameter "address_reg_b" = "CLOCK0" + Info (12134): Parameter "init_file" = "nios_system_nios2_processor_rf_ram_a.mif" + Info (12134): Parameter "maximum_depth" = "0" + Info (12134): Parameter "numwords_a" = "32" + Info (12134): Parameter "numwords_b" = "32" + Info (12134): Parameter "operation_mode" = "DUAL_PORT" + Info (12134): Parameter "outdata_reg_b" = "UNREGISTERED" + Info (12134): Parameter "ram_block_type" = "AUTO" + Info (12134): Parameter "rdcontrol_reg_b" = "CLOCK0" + Info (12134): Parameter "read_during_write_mode_mixed_ports" = "DONT_CARE" + Info (12134): Parameter "width_a" = "32" + Info (12134): Parameter "width_b" = "32" + Info (12134): Parameter "widthad_a" = "5" + Info (12134): Parameter "widthad_b" = "5" +Info (12021): Found 1 design units, including 1 entities, in source file db/altsyncram_0rh1.tdf + Info (12023): Found entity 1: altsyncram_0rh1 +Info (12128): Elaborating entity "altsyncram_0rh1" for hierarchy "nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_register_bank_a_module:nios_system_nios2_processor_register_bank_a|altsyncram:the_altsyncram|altsyncram_0rh1:auto_generated" +Info (12128): Elaborating entity "nios_system_nios2_processor_register_bank_b_module" for hierarchy "nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_register_bank_b_module:nios_system_nios2_processor_register_bank_b" +Info (12128): Elaborating entity "altsyncram" for hierarchy "nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_register_bank_b_module:nios_system_nios2_processor_register_bank_b|altsyncram:the_altsyncram" +Info (12130): Elaborated megafunction instantiation "nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_register_bank_b_module:nios_system_nios2_processor_register_bank_b|altsyncram:the_altsyncram" +Info (12133): Instantiated megafunction "nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_register_bank_b_module:nios_system_nios2_processor_register_bank_b|altsyncram:the_altsyncram" with the following parameter: + Info (12134): Parameter "address_reg_b" = "CLOCK0" + Info (12134): Parameter "init_file" = "nios_system_nios2_processor_rf_ram_b.mif" + Info (12134): Parameter "maximum_depth" = "0" + Info (12134): Parameter "numwords_a" = "32" + Info (12134): Parameter "numwords_b" = "32" + Info (12134): Parameter "operation_mode" = "DUAL_PORT" + Info (12134): Parameter "outdata_reg_b" = "UNREGISTERED" + Info (12134): Parameter "ram_block_type" = "AUTO" + Info (12134): Parameter "rdcontrol_reg_b" = "CLOCK0" + Info (12134): Parameter "read_during_write_mode_mixed_ports" = "DONT_CARE" + Info (12134): Parameter "width_a" = "32" + Info (12134): Parameter "width_b" = "32" + Info (12134): Parameter "widthad_a" = "5" + Info (12134): Parameter "widthad_b" = "5" +Info (12021): Found 1 design units, including 1 entities, in source file db/altsyncram_1rh1.tdf + Info (12023): Found entity 1: altsyncram_1rh1 +Info (12128): Elaborating entity "altsyncram_1rh1" for hierarchy "nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_register_bank_b_module:nios_system_nios2_processor_register_bank_b|altsyncram:the_altsyncram|altsyncram_1rh1:auto_generated" +Info (12128): Elaborating entity "nios_system_nios2_processor_nios2_oci" for hierarchy "nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci" +Info (12128): Elaborating entity "nios_system_nios2_processor_nios2_oci_debug" for hierarchy "nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_oci_debug:the_nios_system_nios2_processor_nios2_oci_debug" +Info (12128): Elaborating entity "altera_std_synchronizer" for hierarchy "nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_oci_debug:the_nios_system_nios2_processor_nios2_oci_debug|altera_std_synchronizer:the_altera_std_synchronizer" +Info (12130): Elaborated megafunction instantiation "nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_oci_debug:the_nios_system_nios2_processor_nios2_oci_debug|altera_std_synchronizer:the_altera_std_synchronizer" +Info (12133): Instantiated megafunction "nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_oci_debug:the_nios_system_nios2_processor_nios2_oci_debug|altera_std_synchronizer:the_altera_std_synchronizer" with the following parameter: + Info (12134): Parameter "depth" = "2" +Info (12128): Elaborating entity "nios_system_nios2_processor_nios2_ocimem" for hierarchy "nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_ocimem:the_nios_system_nios2_processor_nios2_ocimem" +Info (12128): Elaborating entity "nios_system_nios2_processor_ociram_sp_ram_module" for hierarchy "nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_ocimem:the_nios_system_nios2_processor_nios2_ocimem|nios_system_nios2_processor_ociram_sp_ram_module:nios_system_nios2_processor_ociram_sp_ram" +Info (12128): Elaborating entity "altsyncram" for hierarchy "nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_ocimem:the_nios_system_nios2_processor_nios2_ocimem|nios_system_nios2_processor_ociram_sp_ram_module:nios_system_nios2_processor_ociram_sp_ram|altsyncram:the_altsyncram" +Info (12130): Elaborated megafunction instantiation "nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_ocimem:the_nios_system_nios2_processor_nios2_ocimem|nios_system_nios2_processor_ociram_sp_ram_module:nios_system_nios2_processor_ociram_sp_ram|altsyncram:the_altsyncram" +Info (12133): Instantiated megafunction "nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_ocimem:the_nios_system_nios2_processor_nios2_ocimem|nios_system_nios2_processor_ociram_sp_ram_module:nios_system_nios2_processor_ociram_sp_ram|altsyncram:the_altsyncram" with the following parameter: + Info (12134): Parameter "init_file" = "nios_system_nios2_processor_ociram_default_contents.mif" + Info (12134): Parameter "maximum_depth" = "0" + Info (12134): Parameter "numwords_a" = "256" + Info (12134): Parameter "operation_mode" = "SINGLE_PORT" + Info (12134): Parameter "outdata_reg_a" = "UNREGISTERED" + Info (12134): Parameter "ram_block_type" = "AUTO" + Info (12134): Parameter "width_a" = "32" + Info (12134): Parameter "width_byteena_a" = "4" + Info (12134): Parameter "widthad_a" = "8" +Info (12021): Found 1 design units, including 1 entities, in source file db/altsyncram_4891.tdf + Info (12023): Found entity 1: altsyncram_4891 +Info (12128): Elaborating entity "altsyncram_4891" for hierarchy "nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_ocimem:the_nios_system_nios2_processor_nios2_ocimem|nios_system_nios2_processor_ociram_sp_ram_module:nios_system_nios2_processor_ociram_sp_ram|altsyncram:the_altsyncram|altsyncram_4891:auto_generated" +Info (12128): Elaborating entity "nios_system_nios2_processor_nios2_avalon_reg" for hierarchy "nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_avalon_reg:the_nios_system_nios2_processor_nios2_avalon_reg" +Info (12128): Elaborating entity "nios_system_nios2_processor_nios2_oci_break" for hierarchy "nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_oci_break:the_nios_system_nios2_processor_nios2_oci_break" +Info (12128): Elaborating entity "nios_system_nios2_processor_nios2_oci_xbrk" for hierarchy "nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_oci_xbrk:the_nios_system_nios2_processor_nios2_oci_xbrk" +Info (12128): Elaborating entity "nios_system_nios2_processor_nios2_oci_dbrk" for hierarchy "nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_oci_dbrk:the_nios_system_nios2_processor_nios2_oci_dbrk" +Info (12128): Elaborating entity "nios_system_nios2_processor_nios2_oci_itrace" for hierarchy "nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_oci_itrace:the_nios_system_nios2_processor_nios2_oci_itrace" +Info (12128): Elaborating entity "nios_system_nios2_processor_nios2_oci_dtrace" for hierarchy "nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_oci_dtrace:the_nios_system_nios2_processor_nios2_oci_dtrace" +Info (12128): Elaborating entity "nios_system_nios2_processor_nios2_oci_td_mode" for hierarchy "nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_oci_dtrace:the_nios_system_nios2_processor_nios2_oci_dtrace|nios_system_nios2_processor_nios2_oci_td_mode:nios_system_nios2_processor_nios2_oci_trc_ctrl_td_mode" +Info (12128): Elaborating entity "nios_system_nios2_processor_nios2_oci_fifo" for hierarchy "nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_oci_fifo:the_nios_system_nios2_processor_nios2_oci_fifo" +Info (12128): Elaborating entity "nios_system_nios2_processor_nios2_oci_compute_tm_count" for hierarchy "nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_oci_fifo:the_nios_system_nios2_processor_nios2_oci_fifo|nios_system_nios2_processor_nios2_oci_compute_tm_count:nios_system_nios2_processor_nios2_oci_compute_tm_count_tm_count" +Info (12128): Elaborating entity "nios_system_nios2_processor_nios2_oci_fifowp_inc" for hierarchy "nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_oci_fifo:the_nios_system_nios2_processor_nios2_oci_fifo|nios_system_nios2_processor_nios2_oci_fifowp_inc:nios_system_nios2_processor_nios2_oci_fifowp_inc_fifowp" +Info (12128): Elaborating entity "nios_system_nios2_processor_nios2_oci_fifocount_inc" for hierarchy "nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_oci_fifo:the_nios_system_nios2_processor_nios2_oci_fifo|nios_system_nios2_processor_nios2_oci_fifocount_inc:nios_system_nios2_processor_nios2_oci_fifocount_inc_fifocount" +Info (12128): Elaborating entity "nios_system_nios2_processor_oci_test_bench" for hierarchy "nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_oci_fifo:the_nios_system_nios2_processor_nios2_oci_fifo|nios_system_nios2_processor_oci_test_bench:the_nios_system_nios2_processor_oci_test_bench" +Info (12128): Elaborating entity "nios_system_nios2_processor_nios2_oci_pib" for hierarchy "nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_oci_pib:the_nios_system_nios2_processor_nios2_oci_pib" +Info (12128): Elaborating entity "nios_system_nios2_processor_nios2_oci_im" for hierarchy "nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_oci_im:the_nios_system_nios2_processor_nios2_oci_im" +Info (12128): Elaborating entity "nios_system_nios2_processor_jtag_debug_module_wrapper" for hierarchy "nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper" +Info (12128): Elaborating entity "nios_system_nios2_processor_jtag_debug_module_tck" for hierarchy "nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck" +Info (12128): Elaborating entity "nios_system_nios2_processor_jtag_debug_module_sysclk" for hierarchy "nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_sysclk:the_nios_system_nios2_processor_jtag_debug_module_sysclk" +Info (12128): Elaborating entity "sld_virtual_jtag_basic" for hierarchy "nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|sld_virtual_jtag_basic:nios_system_nios2_processor_jtag_debug_module_phy" +Info (12130): Elaborated megafunction instantiation "nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|sld_virtual_jtag_basic:nios_system_nios2_processor_jtag_debug_module_phy" +Info (12133): Instantiated megafunction "nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|sld_virtual_jtag_basic:nios_system_nios2_processor_jtag_debug_module_phy" with the following parameter: + Info (12134): Parameter "sld_auto_instance_index" = "YES" + Info (12134): Parameter "sld_instance_index" = "0" + Info (12134): Parameter "sld_ir_width" = "2" + Info (12134): Parameter "sld_mfg_id" = "70" + Info (12134): Parameter "sld_sim_action" = "" + Info (12134): Parameter "sld_sim_n_scan" = "0" + Info (12134): Parameter "sld_sim_total_length" = "0" + Info (12134): Parameter "sld_type_id" = "34" + Info (12134): Parameter "sld_version" = "3" +Info (12128): Elaborating entity "sld_virtual_jtag_impl" for hierarchy "nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|sld_virtual_jtag_basic:nios_system_nios2_processor_jtag_debug_module_phy|sld_virtual_jtag_impl:sld_virtual_jtag_impl_inst" +Info (12131): Elaborated megafunction instantiation "nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|sld_virtual_jtag_basic:nios_system_nios2_processor_jtag_debug_module_phy|sld_virtual_jtag_impl:sld_virtual_jtag_impl_inst", which is child of megafunction instantiation "nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|sld_virtual_jtag_basic:nios_system_nios2_processor_jtag_debug_module_phy" +Info (12128): Elaborating entity "nios_system_onchip_memory" for hierarchy "nios_system:NiosII|nios_system_onchip_memory:onchip_memory" +Info (12128): Elaborating entity "altsyncram" for hierarchy "nios_system:NiosII|nios_system_onchip_memory:onchip_memory|altsyncram:the_altsyncram" +Info (12130): Elaborated megafunction instantiation "nios_system:NiosII|nios_system_onchip_memory:onchip_memory|altsyncram:the_altsyncram" +Info (12133): Instantiated megafunction "nios_system:NiosII|nios_system_onchip_memory:onchip_memory|altsyncram:the_altsyncram" with the following parameter: + Info (12134): Parameter "byte_size" = "8" + Info (12134): Parameter "init_file" = "nios_system_onchip_memory.hex" + Info (12134): Parameter "lpm_type" = "altsyncram" + Info (12134): Parameter "maximum_depth" = "51200" + Info (12134): Parameter "numwords_a" = "51200" + Info (12134): Parameter "operation_mode" = "SINGLE_PORT" + Info (12134): Parameter "outdata_reg_a" = "UNREGISTERED" + Info (12134): Parameter "ram_block_type" = "AUTO" + Info (12134): Parameter "read_during_write_mode_mixed_ports" = "DONT_CARE" + Info (12134): Parameter "width_a" = "32" + Info (12134): Parameter "width_byteena_a" = "4" + Info (12134): Parameter "widthad_a" = "16" +Info (12021): Found 1 design units, including 1 entities, in source file db/altsyncram_4ed1.tdf + Info (12023): Found entity 1: altsyncram_4ed1 +Info (12128): Elaborating entity "altsyncram_4ed1" for hierarchy "nios_system:NiosII|nios_system_onchip_memory:onchip_memory|altsyncram:the_altsyncram|altsyncram_4ed1:auto_generated" +Info (12021): Found 1 design units, including 1 entities, in source file db/decode_qsa.tdf + Info (12023): Found entity 1: decode_qsa +Info (12128): Elaborating entity "decode_qsa" for hierarchy "nios_system:NiosII|nios_system_onchip_memory:onchip_memory|altsyncram:the_altsyncram|altsyncram_4ed1:auto_generated|decode_qsa:decode3" +Info (12021): Found 1 design units, including 1 entities, in source file db/mux_nob.tdf + Info (12023): Found entity 1: mux_nob +Info (12128): Elaborating entity "mux_nob" for hierarchy "nios_system:NiosII|nios_system_onchip_memory:onchip_memory|altsyncram:the_altsyncram|altsyncram_4ed1:auto_generated|mux_nob:mux2" +Info (12128): Elaborating entity "nios_system_jtag_uart" for hierarchy "nios_system:NiosII|nios_system_jtag_uart:jtag_uart" +Info (12128): Elaborating entity "nios_system_jtag_uart_scfifo_w" for hierarchy "nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_w:the_nios_system_jtag_uart_scfifo_w" +Info (12128): Elaborating entity "scfifo" for hierarchy "nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_w:the_nios_system_jtag_uart_scfifo_w|scfifo:wfifo" +Info (12130): Elaborated megafunction instantiation "nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_w:the_nios_system_jtag_uart_scfifo_w|scfifo:wfifo" +Info (12133): Instantiated megafunction "nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_w:the_nios_system_jtag_uart_scfifo_w|scfifo:wfifo" with the following parameter: + Info (12134): Parameter "lpm_hint" = "RAM_BLOCK_TYPE=AUTO" + Info (12134): Parameter "lpm_numwords" = "64" + Info (12134): Parameter "lpm_showahead" = "OFF" + Info (12134): Parameter "lpm_type" = "scfifo" + Info (12134): Parameter "lpm_width" = "8" + Info (12134): Parameter "lpm_widthu" = "6" + Info (12134): Parameter "overflow_checking" = "OFF" + Info (12134): Parameter "underflow_checking" = "OFF" + Info (12134): Parameter "use_eab" = "ON" +Info (12021): Found 1 design units, including 1 entities, in source file db/scfifo_jr21.tdf + Info (12023): Found entity 1: scfifo_jr21 +Info (12128): Elaborating entity "scfifo_jr21" for hierarchy "nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_w:the_nios_system_jtag_uart_scfifo_w|scfifo:wfifo|scfifo_jr21:auto_generated" +Info (12021): Found 1 design units, including 1 entities, in source file db/a_dpfifo_q131.tdf + Info (12023): Found entity 1: a_dpfifo_q131 +Info (12128): Elaborating entity "a_dpfifo_q131" for hierarchy "nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_w:the_nios_system_jtag_uart_scfifo_w|scfifo:wfifo|scfifo_jr21:auto_generated|a_dpfifo_q131:dpfifo" +Info (12021): Found 1 design units, including 1 entities, in source file db/a_fefifo_7cf.tdf + Info (12023): Found entity 1: a_fefifo_7cf +Info (12128): Elaborating entity "a_fefifo_7cf" for hierarchy "nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_w:the_nios_system_jtag_uart_scfifo_w|scfifo:wfifo|scfifo_jr21:auto_generated|a_dpfifo_q131:dpfifo|a_fefifo_7cf:fifo_state" +Info (12021): Found 1 design units, including 1 entities, in source file db/cntr_do7.tdf + Info (12023): Found entity 1: cntr_do7 +Info (12128): Elaborating entity "cntr_do7" for hierarchy "nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_w:the_nios_system_jtag_uart_scfifo_w|scfifo:wfifo|scfifo_jr21:auto_generated|a_dpfifo_q131:dpfifo|a_fefifo_7cf:fifo_state|cntr_do7:count_usedw" +Info (12021): Found 1 design units, including 1 entities, in source file db/dpram_nl21.tdf + Info (12023): Found entity 1: dpram_nl21 +Info (12128): Elaborating entity "dpram_nl21" for hierarchy "nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_w:the_nios_system_jtag_uart_scfifo_w|scfifo:wfifo|scfifo_jr21:auto_generated|a_dpfifo_q131:dpfifo|dpram_nl21:FIFOram" +Info (12021): Found 1 design units, including 1 entities, in source file db/altsyncram_r1m1.tdf + Info (12023): Found entity 1: altsyncram_r1m1 +Info (12128): Elaborating entity "altsyncram_r1m1" for hierarchy "nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_w:the_nios_system_jtag_uart_scfifo_w|scfifo:wfifo|scfifo_jr21:auto_generated|a_dpfifo_q131:dpfifo|dpram_nl21:FIFOram|altsyncram_r1m1:altsyncram1" +Info (12021): Found 1 design units, including 1 entities, in source file db/cntr_1ob.tdf + Info (12023): Found entity 1: cntr_1ob +Info (12128): Elaborating entity "cntr_1ob" for hierarchy "nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_w:the_nios_system_jtag_uart_scfifo_w|scfifo:wfifo|scfifo_jr21:auto_generated|a_dpfifo_q131:dpfifo|cntr_1ob:rd_ptr_count" +Info (12128): Elaborating entity "nios_system_jtag_uart_scfifo_r" for hierarchy "nios_system:NiosII|nios_system_jtag_uart:jtag_uart|nios_system_jtag_uart_scfifo_r:the_nios_system_jtag_uart_scfifo_r" +Info (12128): Elaborating entity "alt_jtag_atlantic" for hierarchy "nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic" +Info (12130): Elaborated megafunction instantiation "nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic" +Info (12133): Instantiated megafunction "nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic" with the following parameter: + Info (12134): Parameter "INSTANCE_ID" = "0" + Info (12134): Parameter "LOG2_RXFIFO_DEPTH" = "6" + Info (12134): Parameter "LOG2_TXFIFO_DEPTH" = "6" + Info (12134): Parameter "SLD_AUTO_INSTANCE_INDEX" = "YES" +Info (12128): Elaborating entity "nios_system_LEDs" for hierarchy "nios_system:NiosII|nios_system_LEDs:leds" +Info (12128): Elaborating entity "nios_system_LEDRs" for hierarchy "nios_system:NiosII|nios_system_LEDRs:ledrs" +Info (12128): Elaborating entity "nios_system_switches" for hierarchy "nios_system:NiosII|nios_system_switches:switches" +Info (12128): Elaborating entity "nios_system_push_switches" for hierarchy "nios_system:NiosII|nios_system_push_switches:push_switches" +Info (12128): Elaborating entity "nios_system_hex0" for hierarchy "nios_system:NiosII|nios_system_hex0:hex0" +Info (12128): Elaborating entity "nios_system_lcd_16207_0" for hierarchy "nios_system:NiosII|nios_system_lcd_16207_0:lcd_16207_0" +Info (12128): Elaborating entity "nios_system_lcd_on" for hierarchy "nios_system:NiosII|nios_system_lcd_on:lcd_on" +Info (12128): Elaborating entity "altera_merlin_master_translator" for hierarchy "nios_system:NiosII|altera_merlin_master_translator:nios2_processor_instruction_master_translator" +Info (12128): Elaborating entity "altera_merlin_master_translator" for hierarchy "nios_system:NiosII|altera_merlin_master_translator:nios2_processor_data_master_translator" +Info (12128): Elaborating entity "altera_merlin_slave_translator" for hierarchy "nios_system:NiosII|altera_merlin_slave_translator:nios2_processor_jtag_debug_module_translator" +Info (12128): Elaborating entity "altera_merlin_slave_translator" for hierarchy "nios_system:NiosII|altera_merlin_slave_translator:onchip_memory_s1_translator" +Info (12128): Elaborating entity "altera_merlin_slave_translator" for hierarchy "nios_system:NiosII|altera_merlin_slave_translator:leds_s1_translator" +Info (12128): Elaborating entity "altera_merlin_slave_translator" for hierarchy "nios_system:NiosII|altera_merlin_slave_translator:jtag_uart_avalon_jtag_slave_translator" +Info (12128): Elaborating entity "altera_merlin_slave_translator" for hierarchy "nios_system:NiosII|altera_merlin_slave_translator:lcd_16207_0_control_slave_translator" +Info (12128): Elaborating entity "altera_merlin_master_agent" for hierarchy "nios_system:NiosII|altera_merlin_master_agent:nios2_processor_instruction_master_translator_avalon_universal_master_0_agent" +Info (12128): Elaborating entity "altera_merlin_master_agent" for hierarchy "nios_system:NiosII|altera_merlin_master_agent:nios2_processor_data_master_translator_avalon_universal_master_0_agent" +Info (12128): Elaborating entity "altera_merlin_slave_agent" for hierarchy "nios_system:NiosII|altera_merlin_slave_agent:nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent" +Info (12128): Elaborating entity "altera_merlin_burst_uncompressor" for hierarchy "nios_system:NiosII|altera_merlin_slave_agent:nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent|altera_merlin_burst_uncompressor:uncompressor" +Info (12128): Elaborating entity "altera_avalon_sc_fifo" for hierarchy "nios_system:NiosII|altera_avalon_sc_fifo:nios2_processor_jtag_debug_module_translator_avalon_universal_slave_0_agent_rsp_fifo" +Info (12128): Elaborating entity "nios_system_addr_router" for hierarchy "nios_system:NiosII|nios_system_addr_router:addr_router" +Info (12128): Elaborating entity "nios_system_addr_router_default_decode" for hierarchy "nios_system:NiosII|nios_system_addr_router:addr_router|nios_system_addr_router_default_decode:the_default_decode" +Info (12128): Elaborating entity "nios_system_addr_router_001" for hierarchy "nios_system:NiosII|nios_system_addr_router_001:addr_router_001" +Info (12128): Elaborating entity "nios_system_addr_router_001_default_decode" for hierarchy "nios_system:NiosII|nios_system_addr_router_001:addr_router_001|nios_system_addr_router_001_default_decode:the_default_decode" +Info (12128): Elaborating entity "nios_system_id_router" for hierarchy "nios_system:NiosII|nios_system_id_router:id_router" +Info (12128): Elaborating entity "nios_system_id_router_default_decode" for hierarchy "nios_system:NiosII|nios_system_id_router:id_router|nios_system_id_router_default_decode:the_default_decode" +Info (12128): Elaborating entity "nios_system_id_router_002" for hierarchy "nios_system:NiosII|nios_system_id_router_002:id_router_002" +Info (12128): Elaborating entity "nios_system_id_router_002_default_decode" for hierarchy "nios_system:NiosII|nios_system_id_router_002:id_router_002|nios_system_id_router_002_default_decode:the_default_decode" +Info (12128): Elaborating entity "altera_reset_controller" for hierarchy "nios_system:NiosII|altera_reset_controller:rst_controller" +Info (12128): Elaborating entity "altera_reset_synchronizer" for hierarchy "nios_system:NiosII|altera_reset_controller:rst_controller|altera_reset_synchronizer:alt_rst_sync_uq1" +Info (12128): Elaborating entity "nios_system_cmd_xbar_demux" for hierarchy "nios_system:NiosII|nios_system_cmd_xbar_demux:cmd_xbar_demux" +Info (12128): Elaborating entity "nios_system_cmd_xbar_demux_001" for hierarchy "nios_system:NiosII|nios_system_cmd_xbar_demux_001:cmd_xbar_demux_001" +Info (12128): Elaborating entity "nios_system_cmd_xbar_mux" for hierarchy "nios_system:NiosII|nios_system_cmd_xbar_mux:cmd_xbar_mux" +Info (12128): Elaborating entity "altera_merlin_arbitrator" for hierarchy "nios_system:NiosII|nios_system_cmd_xbar_mux:cmd_xbar_mux|altera_merlin_arbitrator:arb" +Info (12128): Elaborating entity "altera_merlin_arb_adder" for hierarchy "nios_system:NiosII|nios_system_cmd_xbar_mux:cmd_xbar_mux|altera_merlin_arbitrator:arb|altera_merlin_arb_adder:adder" +Info (12128): Elaborating entity "nios_system_rsp_xbar_demux_002" for hierarchy "nios_system:NiosII|nios_system_rsp_xbar_demux_002:rsp_xbar_demux_002" +Info (12128): Elaborating entity "nios_system_rsp_xbar_mux" for hierarchy "nios_system:NiosII|nios_system_rsp_xbar_mux:rsp_xbar_mux" +Info (12128): Elaborating entity "altera_merlin_arbitrator" for hierarchy "nios_system:NiosII|nios_system_rsp_xbar_mux:rsp_xbar_mux|altera_merlin_arbitrator:arb" +Info (12128): Elaborating entity "nios_system_rsp_xbar_mux_001" for hierarchy "nios_system:NiosII|nios_system_rsp_xbar_mux_001:rsp_xbar_mux_001" +Info (12128): Elaborating entity "altera_merlin_arbitrator" for hierarchy "nios_system:NiosII|nios_system_rsp_xbar_mux_001:rsp_xbar_mux_001|altera_merlin_arbitrator:arb" +Info (12128): Elaborating entity "altera_merlin_arb_adder" for hierarchy "nios_system:NiosII|nios_system_rsp_xbar_mux_001:rsp_xbar_mux_001|altera_merlin_arbitrator:arb|altera_merlin_arb_adder:adder" +Info (12128): Elaborating entity "nios_system_irq_mapper" for hierarchy "nios_system:NiosII|nios_system_irq_mapper:irq_mapper" +Warning (12241): 5 hierarchies have connectivity warnings - see the Connectivity Checks report folder +Warning (13046): Tri-state node(s) do not directly drive top-level pin(s) + Warning (13047): Converted the fan-out from the tri-state buffer "nios_system:NiosII|nios_system_lcd_16207_0:lcd_16207_0|LCD_data[0]" to the node "nios_system:NiosII|altera_merlin_slave_translator:lcd_16207_0_control_slave_translator|av_readdata_pre[0]" into an OR gate + Warning (13047): Converted the fan-out from the tri-state buffer "nios_system:NiosII|nios_system_lcd_16207_0:lcd_16207_0|LCD_data[1]" to the node "nios_system:NiosII|altera_merlin_slave_translator:lcd_16207_0_control_slave_translator|av_readdata_pre[1]" into an OR gate + Warning (13047): Converted the fan-out from the tri-state buffer "nios_system:NiosII|nios_system_lcd_16207_0:lcd_16207_0|LCD_data[2]" to the node "nios_system:NiosII|altera_merlin_slave_translator:lcd_16207_0_control_slave_translator|av_readdata_pre[2]" into an OR gate + Warning (13047): Converted the fan-out from the tri-state buffer "nios_system:NiosII|nios_system_lcd_16207_0:lcd_16207_0|LCD_data[3]" to the node "nios_system:NiosII|altera_merlin_slave_translator:lcd_16207_0_control_slave_translator|av_readdata_pre[3]" into an OR gate + Warning (13047): Converted the fan-out from the tri-state buffer "nios_system:NiosII|nios_system_lcd_16207_0:lcd_16207_0|LCD_data[4]" to the node "nios_system:NiosII|altera_merlin_slave_translator:lcd_16207_0_control_slave_translator|av_readdata_pre[4]" into an OR gate + Warning (13047): Converted the fan-out from the tri-state buffer "nios_system:NiosII|nios_system_lcd_16207_0:lcd_16207_0|LCD_data[5]" to the node "nios_system:NiosII|altera_merlin_slave_translator:lcd_16207_0_control_slave_translator|av_readdata_pre[5]" into an OR gate + Warning (13047): Converted the fan-out from the tri-state buffer "nios_system:NiosII|nios_system_lcd_16207_0:lcd_16207_0|LCD_data[6]" to the node "nios_system:NiosII|altera_merlin_slave_translator:lcd_16207_0_control_slave_translator|av_readdata_pre[6]" into an OR gate + Warning (13047): Converted the fan-out from the tri-state buffer "nios_system:NiosII|nios_system_lcd_16207_0:lcd_16207_0|LCD_data[7]" to the node "nios_system:NiosII|altera_merlin_slave_translator:lcd_16207_0_control_slave_translator|av_readdata_pre[7]" into an OR gate +Info (13000): Registers with preset signals will power-up high +Info (13003): DEV_CLRn pin will set, and not reset, register with preset signal due to NOT Gate Push-Back +Info (286031): Timing-Driven Synthesis is running on partition "Top" +Info (17049): 166 registers lost all their fanouts during netlist optimizations. +Info (13000): Registers with preset signals will power-up high +Info (13003): DEV_CLRn pin will set, and not reset, register with preset signal due to NOT Gate Push-Back +Warning (13024): Output pins are stuck at VCC or GND + Warning (13410): Pin "sld_hub:auto_hub|receive[0][0]" is stuck at GND +Info (286031): Timing-Driven Synthesis is running on partition "sld_hub:auto_hub" +Info (144001): Generated suppressed messages file C:/Users/takayun/Documents/DE2-115/qsys_tutorial/output_files/lights.map.smsg +Info (16010): Generating hard_block partition "hard_block:auto_generated_inst" + Info (16011): Adding 0 node(s), including 0 DDIO, 0 PLL, 0 transceiver and 0 LCELL +Info (21057): Implemented 2881 device resources after synthesis - the final resource count might be different + Info (21058): Implemented 26 input pins + Info (21059): Implemented 96 output pins + Info (21061): Implemented 2422 logic cells + Info (21064): Implemented 336 RAM segments +Info: Quartus II 64-Bit Analysis & Synthesis was successful. 0 errors, 149 warnings + Info: Peak virtual memory: 654 megabytes + Info: Processing ended: Fri Dec 02 01:32:41 2016 + Info: Elapsed time: 00:00:34 + Info: Total CPU time (on all processors): 00:00:33 + + ++------------------------------------------+ +; Analysis & Synthesis Suppressed Messages ; ++------------------------------------------+ +The suppressed messages can be found in C:/Users/takayun/Documents/DE2-115/qsys_tutorial/output_files/lights.map.smsg. + + diff --git a/output_files/lights.map.smsg b/output_files/lights.map.smsg new file mode 100644 index 0000000..e539087 --- /dev/null +++ b/output_files/lights.map.smsg @@ -0,0 +1,12 @@ +Info (10281): Verilog HDL Declaration information at nios_system_addr_router.sv(48): object "DEFAULT_WR_CHANNEL" differs only in case from object "default_wr_channel" in the same scope +Info (10281): Verilog HDL Declaration information at nios_system_addr_router.sv(49): object "DEFAULT_RD_CHANNEL" differs only in case from object "default_rd_channel" in the same scope +Info (10281): Verilog HDL Declaration information at nios_system_addr_router_001.sv(48): object "DEFAULT_WR_CHANNEL" differs only in case from object "default_wr_channel" in the same scope +Info (10281): Verilog HDL Declaration information at nios_system_addr_router_001.sv(49): object "DEFAULT_RD_CHANNEL" differs only in case from object "default_rd_channel" in the same scope +Info (10281): Verilog HDL Declaration information at nios_system_id_router.sv(48): object "DEFAULT_WR_CHANNEL" differs only in case from object "default_wr_channel" in the same scope +Info (10281): Verilog HDL Declaration information at nios_system_id_router.sv(49): object "DEFAULT_RD_CHANNEL" differs only in case from object "default_rd_channel" in the same scope +Info (10281): Verilog HDL Declaration information at nios_system_id_router_002.sv(48): object "DEFAULT_WR_CHANNEL" differs only in case from object "default_wr_channel" in the same scope +Info (10281): Verilog HDL Declaration information at nios_system_id_router_002.sv(49): object "DEFAULT_RD_CHANNEL" differs only in case from object "default_rd_channel" in the same scope +Warning (10037): Verilog HDL or VHDL warning at nios_system_nios2_processor.v(1567): conditional expression evaluates to a constant +Warning (10037): Verilog HDL or VHDL warning at nios_system_nios2_processor.v(1569): conditional expression evaluates to a constant +Warning (10037): Verilog HDL or VHDL warning at nios_system_nios2_processor.v(1725): conditional expression evaluates to a constant +Warning (10037): Verilog HDL or VHDL warning at nios_system_nios2_processor.v(2553): conditional expression evaluates to a constant diff --git a/output_files/lights.map.summary b/output_files/lights.map.summary new file mode 100644 index 0000000..590a392 --- /dev/null +++ b/output_files/lights.map.summary @@ -0,0 +1,14 @@ +Analysis & Synthesis Status : Successful - Fri Dec 02 01:32:41 2016 +Quartus II 64-Bit Version : 13.0.1 Build 232 06/12/2013 SP 1 SJ Web Edition +Revision Name : lights +Top-level Entity Name : lights +Family : Cyclone IV E +Total logic elements : 2,333 + Total combinational functions : 2,058 + Dedicated logic registers : 1,212 +Total registers : 1212 +Total pins : 118 +Total virtual pins : 0 +Total memory bits : 1,649,664 +Embedded Multiplier 9-bit elements : 0 +Total PLLs : 0 diff --git a/output_files/lights.pin b/output_files/lights.pin new file mode 100644 index 0000000..3b89a2b --- /dev/null +++ b/output_files/lights.pin @@ -0,0 +1,850 @@ + -- Copyright (C) 1991-2013 Altera Corporation + -- Your use of Altera Corporation's design tools, logic functions + -- and other software and tools, and its AMPP partner logic + -- functions, and any output files from any of the foregoing + -- (including device programming or simulation files), and any + -- associated documentation or information are expressly subject + -- to the terms and conditions of the Altera Program License + -- Subscription Agreement, Altera MegaCore Function License + -- Agreement, or other applicable license agreement, including, + -- without limitation, that your use is for the sole purpose of + -- programming logic devices manufactured by Altera and sold by + -- Altera or its authorized distributors. Please refer to the + -- applicable agreement for further details. + -- + -- This is a Quartus II output file. It is for reporting purposes only, and is + -- not intended for use as a Quartus II input file. This file cannot be used + -- to make Quartus II pin assignments - for instructions on how to make pin + -- assignments, please see Quartus II help. + --------------------------------------------------------------------------------- + + + + --------------------------------------------------------------------------------- + -- NC : No Connect. This pin has no internal connection to the device. + -- DNU : Do Not Use. This pin MUST NOT be connected. + -- VCCINT : Dedicated power pin, which MUST be connected to VCC (1.2V). + -- VCCIO : Dedicated power pin, which MUST be connected to VCC + -- of its bank. + -- Bank 1: 3.3V + -- Bank 2: 3.3V + -- Bank 3: 3.3V + -- Bank 4: 3.3V + -- Bank 5: 2.5V + -- Bank 6: 2.5V + -- Bank 7: 2.5V + -- Bank 8: 2.5V + -- GND : Dedicated ground pin. Dedicated GND pins MUST be connected to GND. + -- It can also be used to report unused dedicated pins. The connection + -- on the board for unused dedicated pins depends on whether this will + -- be used in a future design. One example is device migration. When + -- using device migration, refer to the device pin-tables. If it is a + -- GND pin in the pin table or if it will not be used in a future design + -- for another purpose the it MUST be connected to GND. If it is an unused + -- dedicated pin, then it can be connected to a valid signal on the board + -- (low, high, or toggling) if that signal is required for a different + -- revision of the design. + -- GND+ : Unused input pin. It can also be used to report unused dual-purpose pins. + -- This pin should be connected to GND. It may also be connected to a + -- valid signal on the board (low, high, or toggling) if that signal + -- is required for a different revision of the design. + -- GND* : Unused I/O pin. Connect each pin marked GND* directly to GND + -- or leave it unconnected. + -- RESERVED : Unused I/O pin, which MUST be left unconnected. + -- RESERVED_INPUT : Pin is tri-stated and should be connected to the board. + -- RESERVED_INPUT_WITH_WEAK_PULLUP : Pin is tri-stated with internal weak pull-up resistor. + -- RESERVED_INPUT_WITH_BUS_HOLD : Pin is tri-stated with bus-hold circuitry. + -- RESERVED_OUTPUT_DRIVEN_HIGH : Pin is output driven high. + --------------------------------------------------------------------------------- + + + + --------------------------------------------------------------------------------- + -- Pin directions (input, output or bidir) are based on device operating in user mode. + --------------------------------------------------------------------------------- + +Quartus II 64-Bit Version 13.0.1 Build 232 06/12/2013 Service Pack 1 SJ Web Edition +CHIP "lights" ASSIGNED TO AN: EP4CE115F29C7 + +Pin Name/Usage : Location : Dir. : I/O Standard : Voltage : I/O Bank : User Assignment +------------------------------------------------------------------------------------------------------------- +VCCIO8 : A2 : power : : 2.5V : 8 : +RESERVED_INPUT_WITH_WEAK_PULLUP : A3 : : : : 8 : +RESERVED_INPUT_WITH_WEAK_PULLUP : A4 : : : : 8 : +VCCIO8 : A5 : power : : 2.5V : 8 : +RESERVED_INPUT_WITH_WEAK_PULLUP : A6 : : : : 8 : +RESERVED_INPUT_WITH_WEAK_PULLUP : A7 : : : : 8 : +RESERVED_INPUT_WITH_WEAK_PULLUP : A8 : : : : 8 : +VCCIO8 : A9 : power : : 2.5V : 8 : +RESERVED_INPUT_WITH_WEAK_PULLUP : A10 : : : : 8 : +RESERVED_INPUT_WITH_WEAK_PULLUP : A11 : : : : 8 : +RESERVED_INPUT_WITH_WEAK_PULLUP : A12 : : : : 8 : +VCCIO8 : A13 : power : : 2.5V : 8 : +GND+ : A14 : : : : 8 : +GND+ : A15 : : : : 7 : +VCCIO7 : A16 : power : : 2.5V : 7 : +RESERVED_INPUT_WITH_WEAK_PULLUP : A17 : : : : 7 : +RESERVED_INPUT_WITH_WEAK_PULLUP : A18 : : : : 7 : +RESERVED_INPUT_WITH_WEAK_PULLUP : A19 : : : : 7 : +VCCIO7 : A20 : power : : 2.5V : 7 : +RESERVED_INPUT_WITH_WEAK_PULLUP : A21 : : : : 7 : +RESERVED_INPUT_WITH_WEAK_PULLUP : A22 : : : : 7 : +RESERVED_INPUT_WITH_WEAK_PULLUP : A23 : : : : 7 : +VCCIO7 : A24 : power : : 2.5V : 7 : +RESERVED_INPUT_WITH_WEAK_PULLUP : A25 : : : : 7 : +RESERVED_INPUT_WITH_WEAK_PULLUP : A26 : : : : 7 : +VCCIO7 : A27 : power : : 2.5V : 7 : +VCCIO2 : AA1 : power : : 3.3V : 2 : +GND : AA2 : gnd : : : : +RESERVED_INPUT_WITH_WEAK_PULLUP : AA3 : : : : 2 : +RESERVED_INPUT_WITH_WEAK_PULLUP : AA4 : : : : 2 : +RESERVED_INPUT_WITH_WEAK_PULLUP : AA5 : : : : 2 : +RESERVED_INPUT_WITH_WEAK_PULLUP : AA6 : : : : 2 : +RESERVED_INPUT_WITH_WEAK_PULLUP : AA7 : : : : 2 : +RESERVED_INPUT_WITH_WEAK_PULLUP : AA8 : : : : 3 : +GNDA1 : AA9 : gnd : : : : +RESERVED_INPUT_WITH_WEAK_PULLUP : AA10 : : : : 3 : +VCCIO3 : AA11 : power : : 3.3V : 3 : +RESERVED_INPUT_WITH_WEAK_PULLUP : AA12 : : : : 3 : +RESERVED_INPUT_WITH_WEAK_PULLUP : AA13 : : : : 3 : +HEX7[6] : AA14 : output : 3.3-V LVTTL : : 3 : Y +HEX6[5] : AA15 : output : 3.3-V LVTTL : : 4 : Y +HEX6[2] : AA16 : output : 3.3-V LVTTL : : 4 : Y +HEX6[0] : AA17 : output : 3.3-V LVTTL : : 4 : Y +VCCIO4 : AA18 : power : : 3.3V : 4 : +HEX4[1] : AA19 : output : 3.3-V LVTTL : : 4 : Y +GNDA4 : AA20 : gnd : : : : +HEX3[3] : AA21 : output : 3.3-V LVTTL : : 4 : Y +SW[15] : AA22 : input : 2.5 V : : 5 : Y +SW[14] : AA23 : input : 2.5 V : : 5 : Y +SW[13] : AA24 : input : 2.5 V : : 5 : Y +HEX2[0] : AA25 : output : 2.5 V : : 5 : Y +HEX2[1] : AA26 : output : 2.5 V : : 5 : Y +GND : AA27 : gnd : : : : +VCCIO5 : AA28 : power : : 2.5V : 5 : +RESERVED_INPUT_WITH_WEAK_PULLUP : AB1 : : : : 2 : +RESERVED_INPUT_WITH_WEAK_PULLUP : AB2 : : : : 2 : +RESERVED_INPUT_WITH_WEAK_PULLUP : AB3 : : : : 2 : +RESERVED_INPUT_WITH_WEAK_PULLUP : AB4 : : : : 2 : +RESERVED_INPUT_WITH_WEAK_PULLUP : AB5 : : : : 2 : +RESERVED_INPUT_WITH_WEAK_PULLUP : AB6 : : : : 2 : +RESERVED_INPUT_WITH_WEAK_PULLUP : AB7 : : : : 3 : +RESERVED_INPUT_WITH_WEAK_PULLUP : AB8 : : : : 3 : +RESERVED_INPUT_WITH_WEAK_PULLUP : AB9 : : : : 3 : +RESERVED_INPUT_WITH_WEAK_PULLUP : AB10 : : : : 3 : +RESERVED_INPUT_WITH_WEAK_PULLUP : AB11 : : : : 3 : +RESERVED_INPUT_WITH_WEAK_PULLUP : AB12 : : : : 3 : +RESERVED_INPUT_WITH_WEAK_PULLUP : AB13 : : : : 3 : +RESERVED_INPUT_WITH_WEAK_PULLUP : AB14 : : : : 3 : +HEX6[4] : AB15 : output : 3.3-V LVTTL : : 4 : Y +HEX6[1] : AB16 : output : 3.3-V LVTTL : : 4 : Y +HEX6[3] : AB17 : output : 3.3-V LVTTL : : 4 : Y +HEX5[2] : AB18 : output : 3.3-V LVTTL : : 4 : Y +HEX4[0] : AB19 : output : 3.3-V LVTTL : : 4 : Y +HEX3[2] : AB20 : output : 3.3-V LVTTL : : 4 : Y +RESERVED_INPUT_WITH_WEAK_PULLUP : AB21 : : : : 4 : +RESERVED_INPUT_WITH_WEAK_PULLUP : AB22 : : : : 4 : +SW[12] : AB23 : input : 2.5 V : : 5 : Y +SW[11] : AB24 : input : 2.5 V : : 5 : Y +SW[9] : AB25 : input : 2.5 V : : 5 : Y +SW[7] : AB26 : input : 2.5 V : : 5 : Y +SW[4] : AB27 : input : 2.5 V : : 5 : Y +SW[0] : AB28 : input : 2.5 V : : 5 : Y +RESERVED_INPUT_WITH_WEAK_PULLUP : AC1 : : : : 2 : +RESERVED_INPUT_WITH_WEAK_PULLUP : AC2 : : : : 2 : +RESERVED_INPUT_WITH_WEAK_PULLUP : AC3 : : : : 2 : +RESERVED_INPUT_WITH_WEAK_PULLUP : AC4 : : : : 2 : +RESERVED_INPUT_WITH_WEAK_PULLUP : AC5 : : : : 2 : +GND : AC6 : gnd : : : : +RESERVED_INPUT_WITH_WEAK_PULLUP : AC7 : : : : 3 : +RESERVED_INPUT_WITH_WEAK_PULLUP : AC8 : : : : 3 : +GND : AC9 : gnd : : : : +RESERVED_INPUT_WITH_WEAK_PULLUP : AC10 : : : : 3 : +RESERVED_INPUT_WITH_WEAK_PULLUP : AC11 : : : : 3 : +RESERVED_INPUT_WITH_WEAK_PULLUP : AC12 : : : : 3 : +GND : AC13 : gnd : : : : +RESERVED_INPUT_WITH_WEAK_PULLUP : AC14 : : : : 3 : +RESERVED_INPUT_WITH_WEAK_PULLUP : AC15 : : : : 4 : +GND : AC16 : gnd : : : : +HEX6[6] : AC17 : output : 3.3-V LVTTL : : 4 : Y +HEX5[1] : AC18 : output : 3.3-V LVTTL : : 4 : Y +RESERVED_INPUT_WITH_WEAK_PULLUP : AC19 : : : : 4 : +GND : AC20 : gnd : : : : +RESERVED_INPUT_WITH_WEAK_PULLUP : AC21 : : : : 4 : +RESERVED_INPUT_WITH_WEAK_PULLUP : AC22 : : : : 4 : +GND : AC23 : gnd : : : : +SW[10] : AC24 : input : 2.5 V : : 5 : Y +SW[8] : AC25 : input : 2.5 V : : 5 : Y +SW[5] : AC26 : input : 2.5 V : : 5 : Y +SW[2] : AC27 : input : 2.5 V : : 5 : Y +SW[1] : AC28 : input : 2.5 V : : 5 : Y +RESERVED_INPUT_WITH_WEAK_PULLUP : AD1 : : : : 2 : +RESERVED_INPUT_WITH_WEAK_PULLUP : AD2 : : : : 2 : +RESERVED_INPUT_WITH_WEAK_PULLUP : AD3 : : : : 2 : +RESERVED_INPUT_WITH_WEAK_PULLUP : AD4 : : : : 3 : +RESERVED_INPUT_WITH_WEAK_PULLUP : AD5 : : : : 3 : +VCCIO3 : AD6 : power : : 3.3V : 3 : +RESERVED_INPUT_WITH_WEAK_PULLUP : AD7 : : : : 3 : +RESERVED_INPUT_WITH_WEAK_PULLUP : AD8 : : : : 3 : +VCCIO3 : AD9 : power : : 3.3V : 3 : +RESERVED_INPUT_WITH_WEAK_PULLUP : AD10 : : : : 3 : +RESERVED_INPUT_WITH_WEAK_PULLUP : AD11 : : : : 3 : +RESERVED_INPUT_WITH_WEAK_PULLUP : AD12 : : : : 3 : +VCCIO3 : AD13 : power : : 3.3V : 3 : +RESERVED_INPUT_WITH_WEAK_PULLUP : AD14 : : : : 3 : +RESERVED_INPUT_WITH_WEAK_PULLUP : AD15 : : : : 4 : +VCCIO4 : AD16 : power : : 3.3V : 4 : +HEX7[0] : AD17 : output : 3.3-V LVTTL : : 4 : Y +HEX5[0] : AD18 : output : 3.3-V LVTTL : : 4 : Y +RESERVED_INPUT_WITH_WEAK_PULLUP : AD19 : : : : 4 : +VCCIO4 : AD20 : power : : 3.3V : 4 : +RESERVED_INPUT_WITH_WEAK_PULLUP : AD21 : : : : 4 : +RESERVED_INPUT_WITH_WEAK_PULLUP : AD22 : : : : 4 : +VCCIO4 : AD23 : power : : 3.3V : 4 : +HEX3[4] : AD24 : output : 3.3-V LVTTL : : 4 : Y +RESERVED_INPUT_WITH_WEAK_PULLUP : AD25 : : : : 4 : +SW[6] : AD26 : input : 2.5 V : : 5 : Y +SW[3] : AD27 : input : 2.5 V : : 5 : Y +RESERVED_INPUT_WITH_WEAK_PULLUP : AD28 : : : : 5 : +RESERVED_INPUT_WITH_WEAK_PULLUP : AE1 : : : : 2 : +RESERVED_INPUT_WITH_WEAK_PULLUP : AE2 : : : : 2 : +RESERVED_INPUT_WITH_WEAK_PULLUP : AE3 : : : : 2 : +RESERVED_INPUT_WITH_WEAK_PULLUP : AE4 : : : : 3 : +RESERVED_INPUT_WITH_WEAK_PULLUP : AE5 : : : : 3 : +RESERVED_INPUT_WITH_WEAK_PULLUP : AE6 : : : : 3 : +RESERVED_INPUT_WITH_WEAK_PULLUP : AE7 : : : : 3 : +RESERVED_INPUT_WITH_WEAK_PULLUP : AE8 : : : : 3 : +RESERVED_INPUT_WITH_WEAK_PULLUP : AE9 : : : : 3 : +RESERVED_INPUT_WITH_WEAK_PULLUP : AE10 : : : : 3 : +RESERVED_INPUT_WITH_WEAK_PULLUP : AE11 : : : : 3 : +RESERVED_INPUT_WITH_WEAK_PULLUP : AE12 : : : : 3 : +RESERVED_INPUT_WITH_WEAK_PULLUP : AE13 : : : : 3 : +RESERVED_INPUT_WITH_WEAK_PULLUP : AE14 : : : : 3 : +RESERVED_INPUT_WITH_WEAK_PULLUP : AE15 : : : : 4 : +RESERVED_INPUT_WITH_WEAK_PULLUP : AE16 : : : : 4 : +HEX7[1] : AE17 : output : 3.3-V LVTTL : : 4 : Y +HEX4[6] : AE18 : output : 3.3-V LVTTL : : 4 : Y +HEX4[4] : AE19 : output : 3.3-V LVTTL : : 4 : Y +RESERVED_INPUT_WITH_WEAK_PULLUP : AE20 : : : : 4 : +RESERVED_INPUT_WITH_WEAK_PULLUP : AE21 : : : : 4 : +RESERVED_INPUT_WITH_WEAK_PULLUP : AE22 : : : : 4 : +RESERVED_INPUT_WITH_WEAK_PULLUP : AE23 : : : : 4 : +RESERVED_INPUT_WITH_WEAK_PULLUP : AE24 : : : : 4 : +RESERVED_INPUT_WITH_WEAK_PULLUP : AE25 : : : : 4 : +RESERVED_INPUT_WITH_WEAK_PULLUP : AE26 : : : : 5 : +RESERVED_INPUT_WITH_WEAK_PULLUP : AE27 : : : : 5 : +RESERVED_INPUT_WITH_WEAK_PULLUP : AE28 : : : : 5 : +GND : AF1 : gnd : : : : +RESERVED_INPUT_WITH_WEAK_PULLUP : AF2 : : : : 2 : +RESERVED_INPUT_WITH_WEAK_PULLUP : AF3 : : : : 3 : +RESERVED_INPUT_WITH_WEAK_PULLUP : AF4 : : : : 3 : +RESERVED_INPUT_WITH_WEAK_PULLUP : AF5 : : : : 3 : +RESERVED_INPUT_WITH_WEAK_PULLUP : AF6 : : : : 3 : +RESERVED_INPUT_WITH_WEAK_PULLUP : AF7 : : : : 3 : +RESERVED_INPUT_WITH_WEAK_PULLUP : AF8 : : : : 3 : +RESERVED_INPUT_WITH_WEAK_PULLUP : AF9 : : : : 3 : +RESERVED_INPUT_WITH_WEAK_PULLUP : AF10 : : : : 3 : +RESERVED_INPUT_WITH_WEAK_PULLUP : AF11 : : : : 3 : +RESERVED_INPUT_WITH_WEAK_PULLUP : AF12 : : : : 3 : +RESERVED_INPUT_WITH_WEAK_PULLUP : AF13 : : : : 3 : +RESERVED_INPUT_WITH_WEAK_PULLUP : AF14 : : : : 3 : +RESERVED_INPUT_WITH_WEAK_PULLUP : AF15 : : : : 4 : +RESERVED_INPUT_WITH_WEAK_PULLUP : AF16 : : : : 4 : +HEX7[4] : AF17 : output : 3.3-V LVTTL : : 4 : Y +HEX5[5] : AF18 : output : 3.3-V LVTTL : : 4 : Y +HEX4[5] : AF19 : output : 3.3-V LVTTL : : 4 : Y +RESERVED_INPUT_WITH_WEAK_PULLUP : AF20 : : : : 4 : +RESERVED_INPUT_WITH_WEAK_PULLUP : AF21 : : : : 4 : +RESERVED_INPUT_WITH_WEAK_PULLUP : AF22 : : : : 4 : +HEX3[5] : AF23 : output : 3.3-V LVTTL : : 4 : Y +RESERVED_INPUT_WITH_WEAK_PULLUP : AF24 : : : : 4 : +RESERVED_INPUT_WITH_WEAK_PULLUP : AF25 : : : : 4 : +RESERVED_INPUT_WITH_WEAK_PULLUP : AF26 : : : : 4 : +RESERVED_INPUT_WITH_WEAK_PULLUP : AF27 : : : : 5 : +GND : AF28 : gnd : : : : +VCCIO2 : AG1 : power : : 3.3V : 2 : +GND : AG2 : gnd : : : : +RESERVED_INPUT_WITH_WEAK_PULLUP : AG3 : : : : 3 : +RESERVED_INPUT_WITH_WEAK_PULLUP : AG4 : : : : 3 : +GND : AG5 : gnd : : : : +RESERVED_INPUT_WITH_WEAK_PULLUP : AG6 : : : : 3 : +RESERVED_INPUT_WITH_WEAK_PULLUP : AG7 : : : : 3 : +RESERVED_INPUT_WITH_WEAK_PULLUP : AG8 : : : : 3 : +GND : AG9 : gnd : : : : +RESERVED_INPUT_WITH_WEAK_PULLUP : AG10 : : : : 3 : +RESERVED_INPUT_WITH_WEAK_PULLUP : AG11 : : : : 3 : +RESERVED_INPUT_WITH_WEAK_PULLUP : AG12 : : : : 3 : +GND : AG13 : gnd : : : : +GND+ : AG14 : : : : 3 : +GND+ : AG15 : : : : 4 : +GND : AG16 : gnd : : : : +HEX7[2] : AG17 : output : 3.3-V LVTTL : : 4 : Y +HEX7[5] : AG18 : output : 3.3-V LVTTL : : 4 : Y +HEX5[4] : AG19 : output : 3.3-V LVTTL : : 4 : Y +GND : AG20 : gnd : : : : +HEX4[2] : AG21 : output : 3.3-V LVTTL : : 4 : Y +RESERVED_INPUT_WITH_WEAK_PULLUP : AG22 : : : : 4 : +RESERVED_INPUT_WITH_WEAK_PULLUP : AG23 : : : : 4 : +GND : AG24 : gnd : : : : +RESERVED_INPUT_WITH_WEAK_PULLUP : AG25 : : : : 4 : +RESERVED_INPUT_WITH_WEAK_PULLUP : AG26 : : : : 4 : +GND : AG27 : gnd : : : : +VCCIO5 : AG28 : power : : 2.5V : 5 : +VCCIO3 : AH2 : power : : 3.3V : 3 : +RESERVED_INPUT_WITH_WEAK_PULLUP : AH3 : : : : 3 : +RESERVED_INPUT_WITH_WEAK_PULLUP : AH4 : : : : 3 : +VCCIO3 : AH5 : power : : 3.3V : 3 : +RESERVED_INPUT_WITH_WEAK_PULLUP : AH6 : : : : 3 : +RESERVED_INPUT_WITH_WEAK_PULLUP : AH7 : : : : 3 : +RESERVED_INPUT_WITH_WEAK_PULLUP : AH8 : : : : 3 : +VCCIO3 : AH9 : power : : 3.3V : 3 : +RESERVED_INPUT_WITH_WEAK_PULLUP : AH10 : : : : 3 : +RESERVED_INPUT_WITH_WEAK_PULLUP : AH11 : : : : 3 : +RESERVED_INPUT_WITH_WEAK_PULLUP : AH12 : : : : 3 : +VCCIO3 : AH13 : power : : 3.3V : 3 : +GND+ : AH14 : : : : 3 : +GND+ : AH15 : : : : 4 : +VCCIO4 : AH16 : power : : 3.3V : 4 : +HEX7[3] : AH17 : output : 3.3-V LVTTL : : 4 : Y +HEX5[6] : AH18 : output : 3.3-V LVTTL : : 4 : Y +HEX5[3] : AH19 : output : 3.3-V LVTTL : : 4 : Y +VCCIO4 : AH20 : power : : 3.3V : 4 : +HEX4[3] : AH21 : output : 3.3-V LVTTL : : 4 : Y +RESERVED_INPUT_WITH_WEAK_PULLUP : AH22 : : : : 4 : +RESERVED_INPUT_WITH_WEAK_PULLUP : AH23 : : : : 4 : +VCCIO4 : AH24 : power : : 3.3V : 4 : +RESERVED_INPUT_WITH_WEAK_PULLUP : AH25 : : : : 4 : +RESERVED_INPUT_WITH_WEAK_PULLUP : AH26 : : : : 4 : +VCCIO4 : AH27 : power : : 3.3V : 4 : +VCCIO1 : B1 : power : : 3.3V : 1 : +GND : B2 : gnd : : : : +RESERVED_INPUT_WITH_WEAK_PULLUP : B3 : : : : 8 : +RESERVED_INPUT_WITH_WEAK_PULLUP : B4 : : : : 8 : +GND : B5 : gnd : : : : +RESERVED_INPUT_WITH_WEAK_PULLUP : B6 : : : : 8 : +RESERVED_INPUT_WITH_WEAK_PULLUP : B7 : : : : 8 : +RESERVED_INPUT_WITH_WEAK_PULLUP : B8 : : : : 8 : +GND : B9 : gnd : : : : +RESERVED_INPUT_WITH_WEAK_PULLUP : B10 : : : : 8 : +RESERVED_INPUT_WITH_WEAK_PULLUP : B11 : : : : 8 : +GND : B12 : gnd : : : : +GND : B13 : gnd : : : : +GND+ : B14 : : : : 8 : +GND+ : B15 : : : : 7 : +GND : B16 : gnd : : : : +RESERVED_INPUT_WITH_WEAK_PULLUP : B17 : : : : 7 : +RESERVED_INPUT_WITH_WEAK_PULLUP : B18 : : : : 7 : +RESERVED_INPUT_WITH_WEAK_PULLUP : B19 : : : : 7 : +GND : B20 : gnd : : : : +RESERVED_INPUT_WITH_WEAK_PULLUP : B21 : : : : 7 : +RESERVED_INPUT_WITH_WEAK_PULLUP : B22 : : : : 7 : +RESERVED_INPUT_WITH_WEAK_PULLUP : B23 : : : : 7 : +GND : B24 : gnd : : : : +RESERVED_INPUT_WITH_WEAK_PULLUP : B25 : : : : 7 : +RESERVED_INPUT_WITH_WEAK_PULLUP : B26 : : : : 7 : +GND : B27 : gnd : : : : +VCCIO6 : B28 : power : : 2.5V : 6 : +GND : C1 : gnd : : : : +RESERVED_INPUT_WITH_WEAK_PULLUP : C2 : : : : 1 : +RESERVED_INPUT_WITH_WEAK_PULLUP : C3 : : : : 8 : +RESERVED_INPUT_WITH_WEAK_PULLUP : C4 : : : : 8 : +RESERVED_INPUT_WITH_WEAK_PULLUP : C5 : : : : 8 : +RESERVED_INPUT_WITH_WEAK_PULLUP : C6 : : : : 8 : +RESERVED_INPUT_WITH_WEAK_PULLUP : C7 : : : : 8 : +RESERVED_INPUT_WITH_WEAK_PULLUP : C8 : : : : 8 : +RESERVED_INPUT_WITH_WEAK_PULLUP : C9 : : : : 8 : +RESERVED_INPUT_WITH_WEAK_PULLUP : C10 : : : : 8 : +RESERVED_INPUT_WITH_WEAK_PULLUP : C11 : : : : 8 : +RESERVED_INPUT_WITH_WEAK_PULLUP : C12 : : : : 8 : +RESERVED_INPUT_WITH_WEAK_PULLUP : C13 : : : : 8 : +RESERVED_INPUT_WITH_WEAK_PULLUP : C14 : : : : 8 : +RESERVED_INPUT_WITH_WEAK_PULLUP : C15 : : : : 7 : +RESERVED_INPUT_WITH_WEAK_PULLUP : C16 : : : : 7 : +RESERVED_INPUT_WITH_WEAK_PULLUP : C17 : : : : 7 : +RESERVED_INPUT_WITH_WEAK_PULLUP : C18 : : : : 7 : +RESERVED_INPUT_WITH_WEAK_PULLUP : C19 : : : : 7 : +RESERVED_INPUT_WITH_WEAK_PULLUP : C20 : : : : 7 : +RESERVED_INPUT_WITH_WEAK_PULLUP : C21 : : : : 7 : +RESERVED_INPUT_WITH_WEAK_PULLUP : C22 : : : : 7 : +RESERVED_INPUT_WITH_WEAK_PULLUP : C23 : : : : 7 : +RESERVED_INPUT_WITH_WEAK_PULLUP : C24 : : : : 7 : +RESERVED_INPUT_WITH_WEAK_PULLUP : C25 : : : : 7 : +RESERVED_INPUT_WITH_WEAK_PULLUP : C26 : : : : 7 : +RESERVED_INPUT_WITH_WEAK_PULLUP : C27 : : : : 6 : +GND : C28 : gnd : : : : +RESERVED_INPUT_WITH_WEAK_PULLUP : D1 : : : : 1 : +RESERVED_INPUT_WITH_WEAK_PULLUP : D2 : : : : 1 : +GND : D3 : gnd : : : : +RESERVED_INPUT_WITH_WEAK_PULLUP : D4 : : : : 8 : +RESERVED_INPUT_WITH_WEAK_PULLUP : D5 : : : : 8 : +RESERVED_INPUT_WITH_WEAK_PULLUP : D6 : : : : 8 : +RESERVED_INPUT_WITH_WEAK_PULLUP : D7 : : : : 8 : +RESERVED_INPUT_WITH_WEAK_PULLUP : D8 : : : : 8 : +RESERVED_INPUT_WITH_WEAK_PULLUP : D9 : : : : 8 : +RESERVED_INPUT_WITH_WEAK_PULLUP : D10 : : : : 8 : +RESERVED_INPUT_WITH_WEAK_PULLUP : D11 : : : : 8 : +RESERVED_INPUT_WITH_WEAK_PULLUP : D12 : : : : 8 : +RESERVED_INPUT_WITH_WEAK_PULLUP : D13 : : : : 8 : +RESERVED_INPUT_WITH_WEAK_PULLUP : D14 : : : : 8 : +RESERVED_INPUT_WITH_WEAK_PULLUP : D15 : : : : 7 : +RESERVED_INPUT_WITH_WEAK_PULLUP : D16 : : : : 7 : +RESERVED_INPUT_WITH_WEAK_PULLUP : D17 : : : : 7 : +RESERVED_INPUT_WITH_WEAK_PULLUP : D18 : : : : 7 : +RESERVED_INPUT_WITH_WEAK_PULLUP : D19 : : : : 7 : +RESERVED_INPUT_WITH_WEAK_PULLUP : D20 : : : : 7 : +RESERVED_INPUT_WITH_WEAK_PULLUP : D21 : : : : 7 : +RESERVED_INPUT_WITH_WEAK_PULLUP : D22 : : : : 7 : +RESERVED_INPUT_WITH_WEAK_PULLUP : D23 : : : : 7 : +RESERVED_INPUT_WITH_WEAK_PULLUP : D24 : : : : 7 : +RESERVED_INPUT_WITH_WEAK_PULLUP : D25 : : : : 7 : +RESERVED_INPUT_WITH_WEAK_PULLUP : D26 : : : : 6 : +RESERVED_INPUT_WITH_WEAK_PULLUP : D27 : : : : 6 : +RESERVED_INPUT_WITH_WEAK_PULLUP : D28 : : : : 6 : +RESERVED_INPUT_WITH_WEAK_PULLUP : E1 : : : : 1 : +~ALTERA_FLASH_nCE_nCSO~ / RESERVED_INPUT_WITH_WEAK_PULLUP : E2 : input : 3.3-V LVTTL : : 1 : N +RESERVED_INPUT_WITH_WEAK_PULLUP : E3 : : : : 1 : +RESERVED_INPUT_WITH_WEAK_PULLUP : E4 : : : : 8 : +RESERVED_INPUT_WITH_WEAK_PULLUP : E5 : : : : 8 : +VCCIO8 : E6 : power : : 2.5V : 8 : +RESERVED_INPUT_WITH_WEAK_PULLUP : E7 : : : : 8 : +RESERVED_INPUT_WITH_WEAK_PULLUP : E8 : : : : 8 : +VCCIO8 : E9 : power : : 2.5V : 8 : +RESERVED_INPUT_WITH_WEAK_PULLUP : E10 : : : : 8 : +RESERVED_INPUT_WITH_WEAK_PULLUP : E11 : : : : 8 : +RESERVED_INPUT_WITH_WEAK_PULLUP : E12 : : : : 8 : +VCCIO8 : E13 : power : : 2.5V : 8 : +RESERVED_INPUT_WITH_WEAK_PULLUP : E14 : : : : 8 : +RESERVED_INPUT_WITH_WEAK_PULLUP : E15 : : : : 7 : +VCCIO7 : E16 : power : : 2.5V : 7 : +HEX0[2] : E17 : output : 2.5 V : : 7 : Y +LEDR[5] : E18 : output : 2.5 V : : 7 : Y +LEDR[2] : E19 : output : 2.5 V : : 7 : Y +VCCIO7 : E20 : power : : 2.5V : 7 : +LEDG[0] : E21 : output : 2.5 V : : 7 : Y +LEDG[1] : E22 : output : 2.5 V : : 7 : Y +VCCIO7 : E23 : power : : 2.5V : 7 : +LEDG[3] : E24 : output : 2.5 V : : 7 : Y +LEDG[2] : E25 : output : 2.5 V : : 7 : Y +RESERVED_INPUT_WITH_WEAK_PULLUP : E26 : : : : 6 : +RESERVED_INPUT_WITH_WEAK_PULLUP : E27 : : : : 6 : +RESERVED_INPUT_WITH_WEAK_PULLUP : E28 : : : : 6 : +RESERVED_INPUT_WITH_WEAK_PULLUP : F1 : : : : 1 : +RESERVED_INPUT_WITH_WEAK_PULLUP : F2 : : : : 1 : +RESERVED_INPUT_WITH_WEAK_PULLUP : F3 : : : : 1 : +~ALTERA_ASDO_DATA1~ / RESERVED_INPUT_WITH_WEAK_PULLUP : F4 : input : 3.3-V LVTTL : : 1 : N +RESERVED_INPUT_WITH_WEAK_PULLUP : F5 : : : : 1 : +GND : F6 : gnd : : : : +RESERVED_INPUT_WITH_WEAK_PULLUP : F7 : : : : 8 : +RESERVED_INPUT_WITH_WEAK_PULLUP : F8 : : : : 8 : +GND : F9 : gnd : : : : +RESERVED_INPUT_WITH_WEAK_PULLUP : F10 : : : : 8 : +RESERVED_INPUT_WITH_WEAK_PULLUP : F11 : : : : 8 : +RESERVED_INPUT_WITH_WEAK_PULLUP : F12 : : : : 8 : +GND : F13 : gnd : : : : +RESERVED_INPUT_WITH_WEAK_PULLUP : F14 : : : : 8 : +LEDR[14] : F15 : output : 2.5 V : : 7 : Y +GND : F16 : gnd : : : : +RESERVED_INPUT_WITH_WEAK_PULLUP : F17 : : : : 7 : +LEDR[4] : F18 : output : 2.5 V : : 7 : Y +LEDR[1] : F19 : output : 2.5 V : : 7 : Y +GND : F20 : gnd : : : : +LEDR[3] : F21 : output : 2.5 V : : 7 : Y +HEX0[1] : F22 : output : 2.5 V : : 7 : Y +GND : F23 : gnd : : : : +RESERVED_INPUT_WITH_WEAK_PULLUP : F24 : : : : 6 : +RESERVED_INPUT_WITH_WEAK_PULLUP : F25 : : : : 6 : +RESERVED_INPUT_WITH_WEAK_PULLUP : F26 : : : : 6 : +RESERVED_INPUT_WITH_WEAK_PULLUP : F27 : : : : 6 : +RESERVED_INPUT_WITH_WEAK_PULLUP : F28 : : : : 6 : +RESERVED_INPUT_WITH_WEAK_PULLUP : G1 : : : : 1 : +RESERVED_INPUT_WITH_WEAK_PULLUP : G2 : : : : 1 : +RESERVED_INPUT_WITH_WEAK_PULLUP : G3 : : : : 1 : +RESERVED_INPUT_WITH_WEAK_PULLUP : G4 : : : : 1 : +RESERVED_INPUT_WITH_WEAK_PULLUP : G5 : : : : 1 : +RESERVED_INPUT_WITH_WEAK_PULLUP : G6 : : : : 1 : +RESERVED_INPUT_WITH_WEAK_PULLUP : G7 : : : : 8 : +RESERVED_INPUT_WITH_WEAK_PULLUP : G8 : : : : 8 : +RESERVED_INPUT_WITH_WEAK_PULLUP : G9 : : : : 8 : +RESERVED_INPUT_WITH_WEAK_PULLUP : G10 : : : : 8 : +RESERVED_INPUT_WITH_WEAK_PULLUP : G11 : : : : 8 : +RESERVED_INPUT_WITH_WEAK_PULLUP : G12 : : : : 8 : +RESERVED_INPUT_WITH_WEAK_PULLUP : G13 : : : : 8 : +RESERVED_INPUT_WITH_WEAK_PULLUP : G14 : : : : 8 : +LEDR[15] : G15 : output : 2.5 V : : 7 : Y +LEDR[16] : G16 : output : 2.5 V : : 7 : Y +LEDR[9] : G17 : output : 2.5 V : : 7 : Y +HEX0[0] : G18 : output : 2.5 V : : 7 : Y +LEDR[0] : G19 : output : 2.5 V : : 7 : Y +LEDG[5] : G20 : output : 2.5 V : : 7 : Y +LEDG[7] : G21 : output : 2.5 V : : 7 : Y +LEDG[6] : G22 : output : 2.5 V : : 7 : Y +RESERVED_INPUT_WITH_WEAK_PULLUP : G23 : : : : 6 : +RESERVED_INPUT_WITH_WEAK_PULLUP : G24 : : : : 6 : +RESERVED_INPUT_WITH_WEAK_PULLUP : G25 : : : : 6 : +RESERVED_INPUT_WITH_WEAK_PULLUP : G26 : : : : 6 : +RESERVED_INPUT_WITH_WEAK_PULLUP : G27 : : : : 6 : +RESERVED_INPUT_WITH_WEAK_PULLUP : G28 : : : : 6 : +VCCIO1 : H1 : power : : 3.3V : 1 : +GND : H2 : gnd : : : : +RESERVED_INPUT_WITH_WEAK_PULLUP : H3 : : : : 1 : +RESERVED_INPUT_WITH_WEAK_PULLUP : H4 : : : : 1 : +RESERVED_INPUT_WITH_WEAK_PULLUP : H5 : : : : 1 : +RESERVED_INPUT_WITH_WEAK_PULLUP : H6 : : : : 1 : +RESERVED_INPUT_WITH_WEAK_PULLUP : H7 : : : : 1 : +RESERVED_INPUT_WITH_WEAK_PULLUP : H8 : : : : 8 : +GNDA3 : H9 : gnd : : : : +RESERVED_INPUT_WITH_WEAK_PULLUP : H10 : : : : 8 : +VCCIO8 : H11 : power : : 2.5V : 8 : +RESERVED_INPUT_WITH_WEAK_PULLUP : H12 : : : : 8 : +RESERVED_INPUT_WITH_WEAK_PULLUP : H13 : : : : 8 : +RESERVED_INPUT_WITH_WEAK_PULLUP : H14 : : : : 8 : +LEDR[17] : H15 : output : 2.5 V : : 7 : Y +LEDR[11] : H16 : output : 2.5 V : : 7 : Y +LEDR[13] : H17 : output : 2.5 V : : 7 : Y +VCCIO7 : H18 : power : : 2.5V : 7 : +LEDR[7] : H19 : output : 2.5 V : : 7 : Y +GNDA2 : H20 : gnd : : : : +LEDG[4] : H21 : output : 2.5 V : : 7 : Y +HEX0[6] : H22 : output : 2.5 V : : 6 : Y +RESERVED_INPUT_WITH_WEAK_PULLUP : H23 : : : : 6 : +RESERVED_INPUT_WITH_WEAK_PULLUP : H24 : : : : 6 : +RESERVED_INPUT_WITH_WEAK_PULLUP : H25 : : : : 6 : +RESERVED_INPUT_WITH_WEAK_PULLUP : H26 : : : : 6 : +GND : H27 : gnd : : : : +VCCIO6 : H28 : power : : 2.5V : 6 : +GND+ : J1 : : : : 1 : +GND : J2 : gnd : : : : +RESERVED_INPUT_WITH_WEAK_PULLUP : J3 : : : : 1 : +RESERVED_INPUT_WITH_WEAK_PULLUP : J4 : : : : 1 : +RESERVED_INPUT_WITH_WEAK_PULLUP : J5 : : : : 1 : +RESERVED_INPUT_WITH_WEAK_PULLUP : J6 : : : : 1 : +RESERVED_INPUT_WITH_WEAK_PULLUP : J7 : : : : 1 : +VCCA3 : J8 : power : : 2.5V : : +VCCD_PLL3 : J9 : power : : 1.2V : : +RESERVED_INPUT_WITH_WEAK_PULLUP : J10 : : : : 8 : +GND : J11 : gnd : : : : +RESERVED_INPUT_WITH_WEAK_PULLUP : J12 : : : : 8 : +RESERVED_INPUT_WITH_WEAK_PULLUP : J13 : : : : 8 : +RESERVED_INPUT_WITH_WEAK_PULLUP : J14 : : : : 8 : +LEDR[10] : J15 : output : 2.5 V : : 7 : Y +LEDR[12] : J16 : output : 2.5 V : : 7 : Y +LEDR[8] : J17 : output : 2.5 V : : 7 : Y +GND : J18 : gnd : : : : +LEDR[6] : J19 : output : 2.5 V : : 7 : Y +VCCD_PLL2 : J20 : power : : 1.2V : : +VCCA2 : J21 : power : : 2.5V : : +HEX0[5] : J22 : output : 2.5 V : : 6 : Y +RESERVED_INPUT_WITH_WEAK_PULLUP : J23 : : : : 6 : +RESERVED_INPUT_WITH_WEAK_PULLUP : J24 : : : : 6 : +RESERVED_INPUT_WITH_WEAK_PULLUP : J25 : : : : 6 : +RESERVED_INPUT_WITH_WEAK_PULLUP : J26 : : : : 6 : +GND+ : J27 : : : : 6 : +GND+ : J28 : : : : 6 : +LCD_data[4] : K1 : output : 3.3-V LVTTL : : 1 : Y +LCD_data[5] : K2 : output : 3.3-V LVTTL : : 1 : Y +RESERVED_INPUT_WITH_WEAK_PULLUP : K3 : : : : 1 : +RESERVED_INPUT_WITH_WEAK_PULLUP : K4 : : : : 1 : +VCCIO1 : K5 : power : : 3.3V : 1 : +GND : K6 : gnd : : : : +LCD_data[3] : K7 : output : 3.3-V LVTTL : : 1 : Y +RESERVED_INPUT_WITH_WEAK_PULLUP : K8 : : : : 1 : +VCCINT : K9 : power : : 1.2V : : +GND : K10 : gnd : : : : +VCCINT : K11 : power : : 1.2V : : +GND : K12 : gnd : : : : +VCCINT : K13 : power : : 1.2V : : +GND : K14 : gnd : : : : +VCCINT : K15 : power : : 1.2V : : +GND : K16 : gnd : : : : +VCCINT : K17 : power : : 1.2V : : +GND : K18 : gnd : : : : +VCCINT : K19 : power : : 1.2V : : +GND : K20 : gnd : : : : +RESERVED_INPUT_WITH_WEAK_PULLUP : K21 : : : : 6 : +RESERVED_INPUT_WITH_WEAK_PULLUP : K22 : : : : 6 : +GND : K23 : gnd : : : : +VCCIO6 : K24 : power : : 2.5V : 6 : +RESERVED_INPUT_WITH_WEAK_PULLUP : K25 : : : : 6 : +RESERVED_INPUT_WITH_WEAK_PULLUP : K26 : : : : 6 : +RESERVED_INPUT_WITH_WEAK_PULLUP : K27 : : : : 6 : +RESERVED_INPUT_WITH_WEAK_PULLUP : K28 : : : : 6 : +LCD_data[1] : L1 : output : 3.3-V LVTTL : : 1 : Y +LCD_data[2] : L2 : output : 3.3-V LVTTL : : 1 : Y +LCD_data[0] : L3 : output : 3.3-V LVTTL : : 1 : Y +LCD_EN : L4 : output : 3.3-V LVTTL : : 1 : Y +LCD_ON : L5 : output : 3.3-V LVTTL : : 1 : Y +LCD_BLON : L6 : output : 3.3-V LVTTL : : 1 : Y +RESERVED_INPUT_WITH_WEAK_PULLUP : L7 : : : : 1 : +RESERVED_INPUT_WITH_WEAK_PULLUP : L8 : : : : 1 : +GND : L9 : gnd : : : : +VCCINT : L10 : power : : 1.2V : : +GND : L11 : gnd : : : : +VCCINT : L12 : power : : 1.2V : : +GND : L13 : gnd : : : : +VCCINT : L14 : power : : 1.2V : : +GND : L15 : gnd : : : : +VCCINT : L16 : power : : 1.2V : : +GND : L17 : gnd : : : : +VCCINT : L18 : power : : 1.2V : : +GND : L19 : gnd : : : : +VCCINT : L20 : power : : 1.2V : : +RESERVED_INPUT_WITH_WEAK_PULLUP : L21 : : : : 6 : +RESERVED_INPUT_WITH_WEAK_PULLUP : L22 : : : : 6 : +RESERVED_INPUT_WITH_WEAK_PULLUP : L23 : : : : 6 : +RESERVED_INPUT_WITH_WEAK_PULLUP : L24 : : : : 6 : +HEX0[4] : L25 : output : 2.5 V : : 6 : Y +HEX0[3] : L26 : output : 2.5 V : : 6 : Y +RESERVED_INPUT_WITH_WEAK_PULLUP : L27 : : : : 6 : +RESERVED_INPUT_WITH_WEAK_PULLUP : L28 : : : : 6 : +LCD_RW : M1 : output : 3.3-V LVTTL : : 1 : Y +LCD_RS : M2 : output : 3.3-V LVTTL : : 1 : Y +LCD_data[6] : M3 : output : 3.3-V LVTTL : : 1 : Y +RESERVED_INPUT_WITH_WEAK_PULLUP : M4 : : : : 1 : +LCD_data[7] : M5 : output : 3.3-V LVTTL : : 1 : Y +nSTATUS : M6 : : : : 1 : +RESERVED_INPUT_WITH_WEAK_PULLUP : M7 : : : : 1 : +RESERVED_INPUT_WITH_WEAK_PULLUP : M8 : : : : 1 : +VCCINT : M9 : power : : 1.2V : : +GND : M10 : gnd : : : : +VCCINT : M11 : power : : 1.2V : : +GND : M12 : gnd : : : : +VCCINT : M13 : power : : 1.2V : : +GND : M14 : gnd : : : : +VCCINT : M15 : power : : 1.2V : : +GND : M16 : gnd : : : : +VCCINT : M17 : power : : 1.2V : : +GND : M18 : gnd : : : : +VCCINT : M19 : power : : 1.2V : : +GND : M20 : gnd : : : : +KEY[1] : M21 : input : 2.5 V : : 6 : Y +MSEL2 : M22 : : : : 6 : +KEY[0] : M23 : input : 2.5 V : : 6 : Y +HEX1[0] : M24 : output : 2.5 V : : 6 : Y +RESERVED_INPUT_WITH_WEAK_PULLUP : M25 : : : : 6 : +RESERVED_INPUT_WITH_WEAK_PULLUP : M26 : : : : 6 : +RESERVED_INPUT_WITH_WEAK_PULLUP : M27 : : : : 6 : +RESERVED_INPUT_WITH_WEAK_PULLUP : M28 : : : : 6 : +VCCIO1 : N1 : power : : 3.3V : 1 : +GND : N2 : gnd : : : : +RESERVED_INPUT_WITH_WEAK_PULLUP : N3 : : : : 1 : +RESERVED_INPUT_WITH_WEAK_PULLUP : N4 : : : : 1 : +VCCIO1 : N5 : power : : 3.3V : 1 : +GND : N6 : gnd : : : : +~ALTERA_DATA0~ / RESERVED_INPUT_WITH_WEAK_PULLUP : N7 : input : 3.3-V LVTTL : : 1 : N +RESERVED_INPUT_WITH_WEAK_PULLUP : N8 : : : : 1 : +GND : N9 : gnd : : : : +VCCINT : N10 : power : : 1.2V : : +GND : N11 : gnd : : : : +VCCINT : N12 : power : : 1.2V : : +GND : N13 : gnd : : : : +VCCINT : N14 : power : : 1.2V : : +GND : N15 : gnd : : : : +VCCINT : N16 : power : : 1.2V : : +GND : N17 : gnd : : : : +VCCINT : N18 : power : : 1.2V : : +GND : N19 : gnd : : : : +VCCINT : N20 : power : : 1.2V : : +KEY[2] : N21 : input : 2.5 V : : 6 : Y +MSEL0 : N22 : : : : 6 : +GND : N23 : gnd : : : : +VCCIO6 : N24 : power : : 2.5V : 6 : +RESERVED_INPUT_WITH_WEAK_PULLUP : N25 : : : : 6 : +RESERVED_INPUT_WITH_WEAK_PULLUP : N26 : : : : 6 : +GND : N27 : gnd : : : : +VCCIO6 : N28 : power : : 2.5V : 6 : +RESERVED_INPUT_WITH_WEAK_PULLUP : P1 : : : : 1 : +RESERVED_INPUT_WITH_WEAK_PULLUP : P2 : : : : 1 : +~ALTERA_DCLK~ : P3 : output : 3.3-V LVTTL : : 1 : N +nCONFIG : P4 : : : : 1 : +altera_reserved_tck : P5 : input : 3.3-V LVTTL : : 1 : N +altera_reserved_tdo : P6 : output : 3.3-V LVTTL : : 1 : N +altera_reserved_tdi : P7 : input : 3.3-V LVTTL : : 1 : N +altera_reserved_tms : P8 : input : 3.3-V LVTTL : : 1 : N +VCCINT : P9 : power : : 1.2V : : +GND : P10 : gnd : : : : +VCCINT : P11 : power : : 1.2V : : +GND : P12 : gnd : : : : +VCCINT : P13 : power : : 1.2V : : +GND : P14 : gnd : : : : +VCCINT : P15 : power : : 1.2V : : +GND : P16 : gnd : : : : +VCCINT : P17 : power : : 1.2V : : +GND : P18 : gnd : : : : +VCCINT : P19 : power : : 1.2V : : +GND : P20 : gnd : : : : +RESERVED_INPUT_WITH_WEAK_PULLUP : P21 : : : : 5 : +MSEL3 : P22 : : : : 6 : +MSEL1 : P23 : : : : 6 : +CONF_DONE : P24 : : : : 6 : +RESERVED_INPUT_WITH_WEAK_PULLUP : P25 : : : : 6 : +RESERVED_INPUT_WITH_WEAK_PULLUP : P26 : : : : 6 : +RESERVED_INPUT_WITH_WEAK_PULLUP : P27 : : : : 6 : +~ALTERA_nCEO~ / RESERVED_OUTPUT_OPEN_DRAIN : P28 : output : 2.5 V : : 6 : N +RESERVED_INPUT_WITH_WEAK_PULLUP : R1 : : : : 2 : +RESERVED_INPUT_WITH_WEAK_PULLUP : R2 : : : : 2 : +RESERVED_INPUT_WITH_WEAK_PULLUP : R3 : : : : 2 : +RESERVED_INPUT_WITH_WEAK_PULLUP : R4 : : : : 2 : +RESERVED_INPUT_WITH_WEAK_PULLUP : R5 : : : : 2 : +RESERVED_INPUT_WITH_WEAK_PULLUP : R6 : : : : 2 : +RESERVED_INPUT_WITH_WEAK_PULLUP : R7 : : : : 2 : +nCE : R8 : : : : 1 : +GND : R9 : gnd : : : : +VCCINT : R10 : power : : 1.2V : : +GND : R11 : gnd : : : : +VCCINT : R12 : power : : 1.2V : : +GND : R13 : gnd : : : : +VCCINT : R14 : power : : 1.2V : : +GND : R15 : gnd : : : : +VCCINT : R16 : power : : 1.2V : : +GND : R17 : gnd : : : : +VCCINT : R18 : power : : 1.2V : : +GND : R19 : gnd : : : : +VCCINT : R20 : power : : 1.2V : : +RESERVED_INPUT_WITH_WEAK_PULLUP : R21 : : : : 5 : +RESERVED_INPUT_WITH_WEAK_PULLUP : R22 : : : : 5 : +RESERVED_INPUT_WITH_WEAK_PULLUP : R23 : : : : 5 : +KEY[3] : R24 : input : 2.5 V : : 5 : Y +RESERVED_INPUT_WITH_WEAK_PULLUP : R25 : : : : 5 : +RESERVED_INPUT_WITH_WEAK_PULLUP : R26 : : : : 5 : +RESERVED_INPUT_WITH_WEAK_PULLUP : R27 : : : : 5 : +RESERVED_INPUT_WITH_WEAK_PULLUP : R28 : : : : 5 : +VCCIO2 : T1 : power : : 3.3V : 2 : +GND : T2 : gnd : : : : +RESERVED_INPUT_WITH_WEAK_PULLUP : T3 : : : : 2 : +RESERVED_INPUT_WITH_WEAK_PULLUP : T4 : : : : 2 : +VCCIO2 : T5 : power : : 3.3V : 2 : +GND : T6 : gnd : : : : +RESERVED_INPUT_WITH_WEAK_PULLUP : T7 : : : : 2 : +RESERVED_INPUT_WITH_WEAK_PULLUP : T8 : : : : 2 : +VCCINT : T9 : power : : 1.2V : : +GND : T10 : gnd : : : : +VCCINT : T11 : power : : 1.2V : : +GND : T12 : gnd : : : : +VCCINT : T13 : power : : 1.2V : : +GND : T14 : gnd : : : : +VCCINT : T15 : power : : 1.2V : : +GND : T16 : gnd : : : : +VCCINT : T17 : power : : 1.2V : : +GND : T18 : gnd : : : : +VCCINT : T19 : power : : 1.2V : : +GND : T20 : gnd : : : : +RESERVED_INPUT_WITH_WEAK_PULLUP : T21 : : : : 5 : +RESERVED_INPUT_WITH_WEAK_PULLUP : T22 : : : : 5 : +GND : T23 : gnd : : : : +VCCIO5 : T24 : power : : 2.5V : 5 : +RESERVED_INPUT_WITH_WEAK_PULLUP : T25 : : : : 5 : +RESERVED_INPUT_WITH_WEAK_PULLUP : T26 : : : : 5 : +GND : T27 : gnd : : : : +VCCIO5 : T28 : power : : 2.5V : 5 : +RESERVED_INPUT_WITH_WEAK_PULLUP : U1 : : : : 2 : +RESERVED_INPUT_WITH_WEAK_PULLUP : U2 : : : : 2 : +RESERVED_INPUT_WITH_WEAK_PULLUP : U3 : : : : 2 : +RESERVED_INPUT_WITH_WEAK_PULLUP : U4 : : : : 2 : +RESERVED_INPUT_WITH_WEAK_PULLUP : U5 : : : : 2 : +RESERVED_INPUT_WITH_WEAK_PULLUP : U6 : : : : 2 : +RESERVED_INPUT_WITH_WEAK_PULLUP : U7 : : : : 2 : +RESERVED_INPUT_WITH_WEAK_PULLUP : U8 : : : : 2 : +GND : U9 : gnd : : : : +VCCINT : U10 : power : : 1.2V : : +GND : U11 : gnd : : : : +VCCINT : U12 : power : : 1.2V : : +GND : U13 : gnd : : : : +VCCINT : U14 : power : : 1.2V : : +GND : U15 : gnd : : : : +VCCINT : U16 : power : : 1.2V : : +GND : U17 : gnd : : : : +VCCINT : U18 : power : : 1.2V : : +GND : U19 : gnd : : : : +VCCINT : U20 : power : : 1.2V : : +HEX3[1] : U21 : output : 2.5 V : : 5 : Y +RESERVED_INPUT_WITH_WEAK_PULLUP : U22 : : : : 5 : +HEX1[5] : U23 : output : 2.5 V : : 5 : Y +HEX1[6] : U24 : output : 2.5 V : : 5 : Y +RESERVED_INPUT_WITH_WEAK_PULLUP : U25 : : : : 5 : +RESERVED_INPUT_WITH_WEAK_PULLUP : U26 : : : : 5 : +RESERVED_INPUT_WITH_WEAK_PULLUP : U27 : : : : 5 : +RESERVED_INPUT_WITH_WEAK_PULLUP : U28 : : : : 5 : +RESERVED_INPUT_WITH_WEAK_PULLUP : V1 : : : : 2 : +RESERVED_INPUT_WITH_WEAK_PULLUP : V2 : : : : 2 : +RESERVED_INPUT_WITH_WEAK_PULLUP : V3 : : : : 2 : +RESERVED_INPUT_WITH_WEAK_PULLUP : V4 : : : : 2 : +RESERVED_INPUT_WITH_WEAK_PULLUP : V5 : : : : 2 : +RESERVED_INPUT_WITH_WEAK_PULLUP : V6 : : : : 2 : +RESERVED_INPUT_WITH_WEAK_PULLUP : V7 : : : : 2 : +RESERVED_INPUT_WITH_WEAK_PULLUP : V8 : : : : 2 : +VCCINT : V9 : power : : 1.2V : : +GND : V10 : gnd : : : : +VCCINT : V11 : power : : 1.2V : : +GND : V12 : gnd : : : : +VCCINT : V13 : power : : 1.2V : : +GND : V14 : gnd : : : : +VCCINT : V15 : power : : 1.2V : : +GND : V16 : gnd : : : : +VCCINT : V17 : power : : 1.2V : : +GND : V18 : gnd : : : : +VCCINT : V19 : power : : 1.2V : : +GND : V20 : gnd : : : : +HEX3[0] : V21 : output : 2.5 V : : 5 : Y +RESERVED_INPUT_WITH_WEAK_PULLUP : V22 : : : : 5 : +RESERVED_INPUT_WITH_WEAK_PULLUP : V23 : : : : 5 : +RESERVED_INPUT_WITH_WEAK_PULLUP : V24 : : : : 5 : +RESERVED_INPUT_WITH_WEAK_PULLUP : V25 : : : : 5 : +RESERVED_INPUT_WITH_WEAK_PULLUP : V26 : : : : 5 : +RESERVED_INPUT_WITH_WEAK_PULLUP : V27 : : : : 5 : +RESERVED_INPUT_WITH_WEAK_PULLUP : V28 : : : : 5 : +RESERVED_INPUT_WITH_WEAK_PULLUP : W1 : : : : 2 : +RESERVED_INPUT_WITH_WEAK_PULLUP : W2 : : : : 2 : +RESERVED_INPUT_WITH_WEAK_PULLUP : W3 : : : : 2 : +RESERVED_INPUT_WITH_WEAK_PULLUP : W4 : : : : 2 : +VCCIO2 : W5 : power : : 3.3V : 2 : +GND : W6 : gnd : : : : +RESERVED_INPUT_WITH_WEAK_PULLUP : W7 : : : : 2 : +RESERVED_INPUT_WITH_WEAK_PULLUP : W8 : : : : 2 : +GND : W9 : gnd : : : : +VCCINT : W10 : power : : 1.2V : : +GND : W11 : gnd : : : : +VCCINT : W12 : power : : 1.2V : : +GND : W13 : gnd : : : : +VCCINT : W14 : power : : 1.2V : : +GND : W15 : gnd : : : : +VCCINT : W16 : power : : 1.2V : : +GND : W17 : gnd : : : : +VCCINT : W18 : power : : 1.2V : : +GND : W19 : gnd : : : : +VCCINT : W20 : power : : 1.2V : : +HEX1[2] : W21 : output : 2.5 V : : 5 : Y +HEX1[3] : W22 : output : 2.5 V : : 5 : Y +GND : W23 : gnd : : : : +VCCIO5 : W24 : power : : 2.5V : 5 : +HEX1[4] : W25 : output : 2.5 V : : 5 : Y +HEX2[3] : W26 : output : 2.5 V : : 5 : Y +HEX2[5] : W27 : output : 2.5 V : : 5 : Y +HEX2[6] : W28 : output : 2.5 V : : 5 : Y +GND+ : Y1 : : : : 2 : +CLOCK_50 : Y2 : input : 3.3-V LVTTL : : 2 : Y +RESERVED_INPUT_WITH_WEAK_PULLUP : Y3 : : : : 2 : +RESERVED_INPUT_WITH_WEAK_PULLUP : Y4 : : : : 2 : +RESERVED_INPUT_WITH_WEAK_PULLUP : Y5 : : : : 2 : +RESERVED_INPUT_WITH_WEAK_PULLUP : Y6 : : : : 2 : +RESERVED_INPUT_WITH_WEAK_PULLUP : Y7 : : : : 2 : +VCCA1 : Y8 : power : : 2.5V : : +VCCD_PLL1 : Y9 : power : : 1.2V : : +RESERVED_INPUT_WITH_WEAK_PULLUP : Y10 : : : : 3 : +GND : Y11 : gnd : : : : +RESERVED_INPUT_WITH_WEAK_PULLUP : Y12 : : : : 3 : +RESERVED_INPUT_WITH_WEAK_PULLUP : Y13 : : : : 3 : +RESERVED_INPUT_WITH_WEAK_PULLUP : Y14 : : : : 3 : +RESERVED_INPUT_WITH_WEAK_PULLUP : Y15 : : : : 3 : +RESERVED_INPUT_WITH_WEAK_PULLUP : Y16 : : : : 4 : +RESERVED_INPUT_WITH_WEAK_PULLUP : Y17 : : : : 4 : +GND : Y18 : gnd : : : : +HEX3[6] : Y19 : output : 3.3-V LVTTL : : 4 : Y +VCCD_PLL4 : Y20 : power : : 1.2V : : +VCCA4 : Y21 : power : : 2.5V : : +HEX1[1] : Y22 : output : 2.5 V : : 5 : Y +SW[17] : Y23 : input : 2.5 V : : 5 : Y +SW[16] : Y24 : input : 2.5 V : : 5 : Y +HEX2[2] : Y25 : output : 2.5 V : : 5 : Y +HEX2[4] : Y26 : output : 2.5 V : : 5 : Y +GND+ : Y27 : : : : 5 : +GND+ : Y28 : : : : 5 : diff --git a/output_files/lights.sof b/output_files/lights.sof new file mode 100644 index 0000000..64b093e --- /dev/null +++ b/output_files/lights.sof Binary files differ diff --git a/output_files/lights.sta.rpt b/output_files/lights.sta.rpt new file mode 100644 index 0000000..11c1619 --- /dev/null +++ b/output_files/lights.sta.rpt @@ -0,0 +1,2976 @@ +TimeQuest Timing Analyzer report for lights +Fri Dec 02 01:33:28 2016 +Quartus II 64-Bit Version 13.0.1 Build 232 06/12/2013 Service Pack 1 SJ Web Edition + + +--------------------- +; Table of Contents ; +--------------------- + 1. Legal Notice + 2. TimeQuest Timing Analyzer Summary + 3. Parallel Compilation + 4. Clocks + 5. Slow 1200mV 85C Model Fmax Summary + 6. Timing Closure Recommendations + 7. Slow 1200mV 85C Model Setup Summary + 8. Slow 1200mV 85C Model Hold Summary + 9. Slow 1200mV 85C Model Recovery Summary + 10. Slow 1200mV 85C Model Removal Summary + 11. Slow 1200mV 85C Model Minimum Pulse Width Summary + 12. Slow 1200mV 85C Model Setup: 'altera_reserved_tck' + 13. Slow 1200mV 85C Model Hold: 'altera_reserved_tck' + 14. Slow 1200mV 85C Model Recovery: 'altera_reserved_tck' + 15. Slow 1200mV 85C Model Removal: 'altera_reserved_tck' + 16. Slow 1200mV 85C Model Minimum Pulse Width: 'altera_reserved_tck' + 17. Setup Times + 18. Hold Times + 19. Clock to Output Times + 20. Minimum Clock to Output Times + 21. MTBF Summary + 22. Synchronizer Summary + 23. Synchronizer Chain #1: Typical MTBF is Greater than 1 Billion Years + 24. Synchronizer Chain #2: Typical MTBF is Greater than 1 Billion Years + 25. Slow 1200mV 0C Model Fmax Summary + 26. Slow 1200mV 0C Model Setup Summary + 27. Slow 1200mV 0C Model Hold Summary + 28. Slow 1200mV 0C Model Recovery Summary + 29. Slow 1200mV 0C Model Removal Summary + 30. Slow 1200mV 0C Model Minimum Pulse Width Summary + 31. Slow 1200mV 0C Model Setup: 'altera_reserved_tck' + 32. Slow 1200mV 0C Model Hold: 'altera_reserved_tck' + 33. Slow 1200mV 0C Model Recovery: 'altera_reserved_tck' + 34. Slow 1200mV 0C Model Removal: 'altera_reserved_tck' + 35. Slow 1200mV 0C Model Minimum Pulse Width: 'altera_reserved_tck' + 36. Setup Times + 37. Hold Times + 38. Clock to Output Times + 39. Minimum Clock to Output Times + 40. MTBF Summary + 41. Synchronizer Summary + 42. Synchronizer Chain #1: Typical MTBF is Greater than 1 Billion Years + 43. Synchronizer Chain #2: Typical MTBF is Greater than 1 Billion Years + 44. Fast 1200mV 0C Model Setup Summary + 45. Fast 1200mV 0C Model Hold Summary + 46. Fast 1200mV 0C Model Recovery Summary + 47. Fast 1200mV 0C Model Removal Summary + 48. Fast 1200mV 0C Model Minimum Pulse Width Summary + 49. Fast 1200mV 0C Model Setup: 'altera_reserved_tck' + 50. Fast 1200mV 0C Model Hold: 'altera_reserved_tck' + 51. Fast 1200mV 0C Model Recovery: 'altera_reserved_tck' + 52. Fast 1200mV 0C Model Removal: 'altera_reserved_tck' + 53. Fast 1200mV 0C Model Minimum Pulse Width: 'altera_reserved_tck' + 54. Setup Times + 55. Hold Times + 56. Clock to Output Times + 57. Minimum Clock to Output Times + 58. MTBF Summary + 59. Synchronizer Summary + 60. Synchronizer Chain #1: Typical MTBF is Greater than 1 Billion Years + 61. Synchronizer Chain #2: Typical MTBF is Greater than 1 Billion Years + 62. Multicorner Timing Analysis Summary + 63. Setup Times + 64. Hold Times + 65. Clock to Output Times + 66. Minimum Clock to Output Times + 67. Board Trace Model Assignments + 68. Input Transition Times + 69. Signal Integrity Metrics (Slow 1200mv 0c Model) + 70. Signal Integrity Metrics (Slow 1200mv 85c Model) + 71. Signal Integrity Metrics (Fast 1200mv 0c Model) + 72. Setup Transfers + 73. Hold Transfers + 74. Recovery Transfers + 75. Removal Transfers + 76. Report TCCS + 77. Report RSKM + 78. Unconstrained Paths + 79. TimeQuest Timing Analyzer Messages + + + +---------------- +; Legal Notice ; +---------------- +Copyright (C) 1991-2013 Altera Corporation +Your use of Altera Corporation's design tools, logic functions +and other software and tools, and its AMPP partner logic +functions, and any output files from any of the foregoing +(including device programming or simulation files), and any +associated documentation or information are expressly subject +to the terms and conditions of the Altera Program License +Subscription Agreement, Altera MegaCore Function License +Agreement, or other applicable license agreement, including, +without limitation, that your use is for the sole purpose of +programming logic devices manufactured by Altera and sold by +Altera or its authorized distributors. Please refer to the +applicable agreement for further details. + + + ++----------------------------------------------------------------------------------------+ +; TimeQuest Timing Analyzer Summary ; ++--------------------+-------------------------------------------------------------------+ +; Quartus II Version ; Version 13.0.1 Build 232 06/12/2013 Service Pack 1 SJ Web Edition ; +; Revision Name ; lights ; +; Device Family ; Cyclone IV E ; +; Device Name ; EP4CE115F29C7 ; +; Timing Models ; Final ; +; Delay Model ; Combined ; +; Rise/Fall Delays ; Enabled ; ++--------------------+-------------------------------------------------------------------+ + + +Parallel compilation was disabled, but you have multiple processors available. Enable parallel compilation to reduce compilation time. ++-------------------------------------+ +; Parallel Compilation ; ++----------------------------+--------+ +; Processors ; Number ; ++----------------------------+--------+ +; Number detected on machine ; 4 ; +; Maximum allowed ; 1 ; ++----------------------------+--------+ + + ++-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Clocks ; ++---------------------+------+---------+-----------+-------+--------+------------+-----------+-------------+-------+--------+-----------+------------+----------+--------+--------+-------------------------+ +; Clock Name ; Type ; Period ; Frequency ; Rise ; Fall ; Duty Cycle ; Divide by ; Multiply by ; Phase ; Offset ; Edge List ; Edge Shift ; Inverted ; Master ; Source ; Targets ; ++---------------------+------+---------+-----------+-------+--------+------------+-----------+-------------+-------+--------+-----------+------------+----------+--------+--------+-------------------------+ +; altera_reserved_tck ; Base ; 100.000 ; 10.0 MHz ; 0.000 ; 50.000 ; ; ; ; ; ; ; ; ; ; ; { altera_reserved_tck } ; ++---------------------+------+---------+-----------+-------+--------+------------+-----------+-------------+-------+--------+-----------+------------+----------+--------+--------+-------------------------+ + + ++----------------------------------------------------------+ +; Slow 1200mV 85C Model Fmax Summary ; ++-----------+-----------------+---------------------+------+ +; Fmax ; Restricted Fmax ; Clock Name ; Note ; ++-----------+-----------------+---------------------+------+ +; 118.4 MHz ; 118.4 MHz ; altera_reserved_tck ; ; ++-----------+-----------------+---------------------+------+ +This panel reports FMAX for every clock in the design, regardless of the user-specified clock periods. FMAX is only computed for paths where the source and destination registers or ports are driven by the same clock. Paths of different clocks, including generated clocks, are ignored. For paths between a clock and its inversion, FMAX is computed as if the rising and falling edges are scaled along with FMAX, such that the duty cycle (in terms of a percentage) is maintained. Altera recommends that you always use clock constraints and other slack reports for sign-off analysis. + + +---------------------------------- +; Timing Closure Recommendations ; +---------------------------------- +HTML report is unavailable in plain text report export. + + ++----------------------------------------------+ +; Slow 1200mV 85C Model Setup Summary ; ++---------------------+--------+---------------+ +; Clock ; Slack ; End Point TNS ; ++---------------------+--------+---------------+ +; altera_reserved_tck ; 45.777 ; 0.000 ; ++---------------------+--------+---------------+ + + ++---------------------------------------------+ +; Slow 1200mV 85C Model Hold Summary ; ++---------------------+-------+---------------+ +; Clock ; Slack ; End Point TNS ; ++---------------------+-------+---------------+ +; altera_reserved_tck ; 0.403 ; 0.000 ; ++---------------------+-------+---------------+ + + ++----------------------------------------------+ +; Slow 1200mV 85C Model Recovery Summary ; ++---------------------+--------+---------------+ +; Clock ; Slack ; End Point TNS ; ++---------------------+--------+---------------+ +; altera_reserved_tck ; 47.734 ; 0.000 ; ++---------------------+--------+---------------+ + + ++---------------------------------------------+ +; Slow 1200mV 85C Model Removal Summary ; ++---------------------+-------+---------------+ +; Clock ; Slack ; End Point TNS ; ++---------------------+-------+---------------+ +; altera_reserved_tck ; 1.385 ; 0.000 ; ++---------------------+-------+---------------+ + + ++---------------------------------------------------+ +; Slow 1200mV 85C Model Minimum Pulse Width Summary ; ++---------------------+--------+--------------------+ +; Clock ; Slack ; End Point TNS ; ++---------------------+--------+--------------------+ +; altera_reserved_tck ; 49.549 ; 0.000 ; ++---------------------+--------+--------------------+ + + ++------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Slow 1200mV 85C Model Setup: 'altera_reserved_tck' ; ++--------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+---------------------+--------------+------------+------------+ +; Slack ; From Node ; To Node ; Launch Clock ; Latch Clock ; Relationship ; Clock Skew ; Data Delay ; ++--------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+---------------------+--------------+------------+------------+ +; 45.777 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[5] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|tdo ; altera_reserved_tck ; altera_reserved_tck ; 50.000 ; 0.163 ; 4.404 ; +; 45.917 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[6] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|tdo ; altera_reserved_tck ; altera_reserved_tck ; 50.000 ; 0.163 ; 4.264 ; +; 46.569 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_rom_sr:hub_info_reg|WORD_SR[0] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|tdo ; altera_reserved_tck ; altera_reserved_tck ; 50.000 ; 0.173 ; 3.622 ; +; 46.953 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[1] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|tdo ; altera_reserved_tck ; altera_reserved_tck ; 50.000 ; 0.160 ; 3.225 ; +; 46.971 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[0] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|tdo ; altera_reserved_tck ; altera_reserved_tck ; 50.000 ; 0.160 ; 3.207 ; +; 47.096 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[2] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|tdo ; altera_reserved_tck ; altera_reserved_tck ; 50.000 ; 0.160 ; 3.082 ; +; 47.127 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|virtual_ir_scan_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|tdo ; altera_reserved_tck ; altera_reserved_tck ; 50.000 ; 0.167 ; 3.058 ; +; 47.142 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[4] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|tdo ; altera_reserved_tck ; altera_reserved_tck ; 50.000 ; 0.166 ; 3.042 ; +; 47.357 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[3] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|tdo ; altera_reserved_tck ; altera_reserved_tck ; 50.000 ; 0.166 ; 2.827 ; +; 47.380 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|tdo_bypass_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|tdo ; altera_reserved_tck ; altera_reserved_tck ; 50.000 ; 0.160 ; 2.798 ; +; 47.492 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[2][0] ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|jupdate ; altera_reserved_tck ; altera_reserved_tck ; 50.000 ; 0.159 ; 2.685 ; +; 47.509 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|design_hash_reg[0] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|tdo ; altera_reserved_tck ; altera_reserved_tck ; 50.000 ; 0.161 ; 2.670 ; +; 47.707 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|node_ena[2]~reg0 ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|jupdate ; altera_reserved_tck ; altera_reserved_tck ; 50.000 ; 0.159 ; 2.470 ; +; 47.765 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|virtual_ir_scan_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|jupdate ; altera_reserved_tck ; altera_reserved_tck ; 50.000 ; 0.161 ; 2.414 ; +; 47.907 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|hub_minor_ver_reg[0] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|tdo ; altera_reserved_tck ; altera_reserved_tck ; 50.000 ; 0.162 ; 2.273 ; +; 47.987 ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[0] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|tdo ; altera_reserved_tck ; altera_reserved_tck ; 50.000 ; 0.161 ; 2.192 ; +; 48.269 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[8] ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|jupdate ; altera_reserved_tck ; altera_reserved_tck ; 50.000 ; 0.160 ; 1.909 ; +; 48.929 ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[0] ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|tdo~reg0 ; altera_reserved_tck ; altera_reserved_tck ; 50.000 ; 0.167 ; 1.256 ; +; 95.214 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[3] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[1][1] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.073 ; 4.731 ; +; 95.214 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[3] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[1][0] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.073 ; 4.731 ; +; 95.214 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[3] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[1][2] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.073 ; 4.731 ; +; 95.214 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[3] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[1][3] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.073 ; 4.731 ; +; 95.214 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[3] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[1][4] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.073 ; 4.731 ; +; 95.252 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|virtual_ir_scan_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[1][1] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.072 ; 4.694 ; +; 95.252 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|virtual_ir_scan_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[1][0] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.072 ; 4.694 ; +; 95.252 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|virtual_ir_scan_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[1][2] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.072 ; 4.694 ; +; 95.252 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|virtual_ir_scan_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[1][3] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.072 ; 4.694 ; +; 95.252 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|virtual_ir_scan_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[1][4] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.072 ; 4.694 ; +; 95.377 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|node_ena[1]~reg0 ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[25] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.069 ; 4.572 ; +; 95.435 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|node_ena[1]~reg0 ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[26] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.069 ; 4.514 ; +; 95.495 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[3] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[2][0] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.078 ; 4.445 ; +; 95.495 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[3] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[2][1] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.078 ; 4.445 ; +; 95.495 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[3] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[2][2] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.078 ; 4.445 ; +; 95.495 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[3] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[2][3] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.078 ; 4.445 ; +; 95.495 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[3] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[2][4] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.078 ; 4.445 ; +; 95.519 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|virtual_ir_scan_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[2][0] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.077 ; 4.422 ; +; 95.519 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|virtual_ir_scan_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[2][1] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.077 ; 4.422 ; +; 95.519 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|virtual_ir_scan_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[2][2] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.077 ; 4.422 ; +; 95.519 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|virtual_ir_scan_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[2][3] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.077 ; 4.422 ; +; 95.519 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|virtual_ir_scan_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[2][4] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.077 ; 4.422 ; +; 95.532 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|node_ena[1]~reg0 ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[27] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.069 ; 4.417 ; +; 95.532 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|node_ena[1]~reg0 ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[24] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.069 ; 4.417 ; +; 95.532 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|node_ena[1]~reg0 ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[32] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.069 ; 4.417 ; +; 95.532 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|node_ena[1]~reg0 ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[30] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.069 ; 4.417 ; +; 95.532 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|node_ena[1]~reg0 ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[29] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.069 ; 4.417 ; +; 95.532 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|node_ena[1]~reg0 ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[28] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.069 ; 4.417 ; +; 95.576 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|node_ena[1]~reg0 ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[34] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.069 ; 4.373 ; +; 95.576 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|node_ena[1]~reg0 ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[33] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.069 ; 4.373 ; +; 95.626 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[4] ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[25] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.068 ; 4.324 ; +; 95.684 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[4] ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[26] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.068 ; 4.266 ; +; 95.693 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[2][0] ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|write ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.084 ; 4.241 ; +; 95.693 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[2][0] ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|wdata[7] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.084 ; 4.241 ; +; 95.693 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[2][0] ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|wdata[6] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.084 ; 4.241 ; +; 95.693 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[2][0] ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|wdata[5] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.084 ; 4.241 ; +; 95.693 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[2][0] ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|wdata[4] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.084 ; 4.241 ; +; 95.693 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[2][0] ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|wdata[3] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.084 ; 4.241 ; +; 95.693 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[2][0] ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|wdata[2] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.084 ; 4.241 ; +; 95.693 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[2][0] ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|wdata[1] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.084 ; 4.241 ; +; 95.719 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[5] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[0] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.076 ; 4.223 ; +; 95.719 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[5] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[3] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.076 ; 4.223 ; +; 95.719 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[5] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[2] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.076 ; 4.223 ; +; 95.719 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[5] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[1] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.076 ; 4.223 ; +; 95.765 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|virtual_ir_scan_reg ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[25] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.067 ; 4.186 ; +; 95.765 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[3] ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[27] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.068 ; 4.185 ; +; 95.765 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[3] ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[25] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.068 ; 4.185 ; +; 95.765 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[3] ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[24] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.068 ; 4.185 ; +; 95.765 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[3] ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[32] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.068 ; 4.185 ; +; 95.765 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[3] ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[30] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.068 ; 4.185 ; +; 95.765 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[3] ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[29] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.068 ; 4.185 ; +; 95.765 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[3] ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[28] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.068 ; 4.185 ; +; 95.765 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[3] ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[26] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.068 ; 4.185 ; +; 95.787 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[5] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[1][1] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.076 ; 4.155 ; +; 95.787 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[5] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[1][0] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.076 ; 4.155 ; +; 95.787 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[5] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[1][2] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.076 ; 4.155 ; +; 95.787 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[5] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[1][3] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.076 ; 4.155 ; +; 95.787 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[5] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[1][4] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.076 ; 4.155 ; +; 95.809 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[3] ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[34] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.068 ; 4.141 ; +; 95.809 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[3] ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[33] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.068 ; 4.141 ; +; 95.819 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[5] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[4] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.076 ; 4.123 ; +; 95.823 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|virtual_ir_scan_reg ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[26] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.067 ; 4.128 ; +; 95.830 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|node_ena[1]~reg0 ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[23] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.071 ; 4.117 ; +; 95.830 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|node_ena[1]~reg0 ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[22] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.071 ; 4.117 ; +; 95.830 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|node_ena[1]~reg0 ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[18] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.071 ; 4.117 ; +; 95.830 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|node_ena[1]~reg0 ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[19] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.071 ; 4.117 ; +; 95.830 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|node_ena[1]~reg0 ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[20] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.071 ; 4.117 ; +; 95.830 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|node_ena[1]~reg0 ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[21] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.071 ; 4.117 ; +; 95.830 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|node_ena[1]~reg0 ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[16] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.071 ; 4.117 ; +; 95.830 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|node_ena[1]~reg0 ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[17] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.071 ; 4.117 ; +; 95.840 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[6] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[0] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.076 ; 4.102 ; +; 95.840 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[6] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[3] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.076 ; 4.102 ; +; 95.840 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[6] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[2] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.076 ; 4.102 ; +; 95.840 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[6] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[1] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.076 ; 4.102 ; +; 95.842 ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[1] ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[7] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.078 ; 4.098 ; +; 95.854 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[5] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|shadow_irf_reg[1][1] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.076 ; 4.088 ; +; 95.854 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[5] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|shadow_irf_reg[1][0] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.076 ; 4.088 ; +; 95.854 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[5] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|shadow_irf_reg[1][2] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.076 ; 4.088 ; +; 95.854 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[5] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|shadow_irf_reg[1][3] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.076 ; 4.088 ; +; 95.854 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[5] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|shadow_irf_reg[1][4] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.076 ; 4.088 ; +; 95.864 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[2][0] ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|write_stalled ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.083 ; 4.071 ; +; 95.864 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[2][0] ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|wdata[0] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.083 ; 4.071 ; ++--------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+---------------------+--------------+------------+------------+ + + ++------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Slow 1200mV 85C Model Hold: 'altera_reserved_tck' ; ++-------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+---------------------+--------------+------------+------------+ +; Slack ; From Node ; To Node ; Launch Clock ; Latch Clock ; Relationship ; Clock Skew ; Data Delay ; ++-------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+---------------------+--------------+------------+------------+ +; 0.403 ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|write_stalled ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|write_stalled ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.080 ; 0.669 ; +; 0.403 ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[7] ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[7] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.080 ; 0.669 ; +; 0.403 ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[31] ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[31] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.080 ; 0.669 ; +; 0.404 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|tms_cnt[1] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|tms_cnt[1] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.079 ; 0.669 ; +; 0.404 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|tms_cnt[2] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|tms_cnt[2] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.079 ; 0.669 ; +; 0.404 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[0] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[0] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.079 ; 0.669 ; +; 0.404 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[1] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[1] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.079 ; 0.669 ; +; 0.404 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[6] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[6] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.079 ; 0.669 ; +; 0.404 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[4] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[4] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.079 ; 0.669 ; +; 0.404 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[11] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[11] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.079 ; 0.669 ; +; 0.404 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[5] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[5] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.079 ; 0.669 ; +; 0.404 ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|user_saw_rvalid ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|user_saw_rvalid ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.079 ; 0.669 ; +; 0.404 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|hub_mode_reg[0] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|hub_mode_reg[0] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.079 ; 0.669 ; +; 0.404 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[4] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[4] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.079 ; 0.669 ; +; 0.404 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|hub_mode_reg[1] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|hub_mode_reg[1] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.079 ; 0.669 ; +; 0.404 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|hub_mode_reg[2] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|hub_mode_reg[2] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.079 ; 0.669 ; +; 0.404 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[6] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[6] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.079 ; 0.669 ; +; 0.404 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|tdo_bypass_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|tdo_bypass_reg ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.079 ; 0.669 ; +; 0.404 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[13] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[13] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.079 ; 0.669 ; +; 0.405 ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|jupdate ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|jupdate ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.078 ; 0.669 ; +; 0.408 ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|state ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|state ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.080 ; 0.674 ; +; 0.409 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|tms_cnt[0] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|tms_cnt[0] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.079 ; 0.674 ; +; 0.409 ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|write ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|write ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.079 ; 0.674 ; +; 0.409 ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|read ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|read ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.079 ; 0.674 ; +; 0.422 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|tms_cnt[2] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[0] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.079 ; 0.687 ; +; 0.424 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|tms_cnt[1] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|tms_cnt[2] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.079 ; 0.689 ; +; 0.427 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|tms_cnt[0] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|tms_cnt[1] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.079 ; 0.692 ; +; 0.429 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|jtag_ir_reg[3] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|jtag_ir_reg[2] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.079 ; 0.694 ; +; 0.429 ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[5] ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[6] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.079 ; 0.694 ; +; 0.430 ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|altera_std_synchronizer:the_altera_std_synchronizer1|din_s1 ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|altera_std_synchronizer:the_altera_std_synchronizer1|dreg[0] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.080 ; 0.696 ; +; 0.430 ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[6] ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[7] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.079 ; 0.695 ; +; 0.431 ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[2] ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[3] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.079 ; 0.696 ; +; 0.431 ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[4] ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[5] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.079 ; 0.696 ; +; 0.431 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|hub_minor_ver_reg[2] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|hub_minor_ver_reg[1] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.079 ; 0.696 ; +; 0.431 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|hub_minor_ver_reg[1] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|hub_minor_ver_reg[0] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.079 ; 0.696 ; +; 0.432 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[13] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[14] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.079 ; 0.697 ; +; 0.432 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|shadow_irf_reg[1][3] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[1][3] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.080 ; 0.698 ; +; 0.433 ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[7] ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[8] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.079 ; 0.698 ; +; 0.433 ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|altera_std_synchronizer:the_altera_std_synchronizer2|din_s1 ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|altera_std_synchronizer:the_altera_std_synchronizer2|dreg[0] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.079 ; 0.698 ; +; 0.436 ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[4] ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[3] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.080 ; 0.702 ; +; 0.436 ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[6] ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[5] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.080 ; 0.702 ; +; 0.436 ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[8] ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[7] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.079 ; 0.701 ; +; 0.437 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|jtag_ir_reg[1] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|jtag_ir_reg[0] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.079 ; 0.702 ; +; 0.437 ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[6] ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|wdata[2] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.079 ; 0.702 ; +; 0.438 ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[12] ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[11] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.079 ; 0.703 ; +; 0.439 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|jtag_ir_reg[4] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|jtag_ir_reg[3] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.079 ; 0.704 ; +; 0.439 ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[7] ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|wdata[3] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.079 ; 0.704 ; +; 0.439 ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[13] ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[12] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.079 ; 0.704 ; +; 0.439 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|identity_contrib_shift_reg[1] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|identity_contrib_update_reg[1] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.080 ; 0.705 ; +; 0.440 ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[8] ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|wdata[4] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.079 ; 0.705 ; +; 0.440 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|identity_contrib_shift_reg[1] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|identity_contrib_shift_reg[0] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.080 ; 0.706 ; +; 0.442 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|jtag_ir_reg[2] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|jtag_ir_reg[1] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.079 ; 0.707 ; +; 0.443 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[5] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[8] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.079 ; 0.708 ; +; 0.443 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[5] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[6] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.079 ; 0.708 ; +; 0.445 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[5] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|reset_ena_reg ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.079 ; 0.710 ; +; 0.452 ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[2] ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[1] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.080 ; 0.718 ; +; 0.453 ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[26] ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[25] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.079 ; 0.718 ; +; 0.453 ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[1] ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[2] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.079 ; 0.718 ; +; 0.454 ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[5] ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|wdata[1] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.079 ; 0.719 ; +; 0.462 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[8] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[2] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.079 ; 0.727 ; +; 0.475 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[4] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[5] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.079 ; 0.740 ; +; 0.555 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|jtag_ir_reg[0] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|virtual_dr_scan_reg ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.079 ; 0.820 ; +; 0.555 ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[3] ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[4] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.079 ; 0.820 ; +; 0.555 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_rom_sr:hub_info_reg|WORD_SR[2] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_rom_sr:hub_info_reg|WORD_SR[1] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.079 ; 0.820 ; +; 0.556 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|jtag_ir_reg[0] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|virtual_ir_scan_reg ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.079 ; 0.821 ; +; 0.557 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[6] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[7] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.079 ; 0.822 ; +; 0.561 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[14] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[15] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.079 ; 0.826 ; +; 0.576 ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[23] ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[22] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.080 ; 0.842 ; +; 0.577 ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[22] ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[21] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.080 ; 0.843 ; +; 0.577 ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[0] ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[1] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.079 ; 0.842 ; +; 0.578 ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[20] ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[19] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.080 ; 0.844 ; +; 0.584 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[7] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[8] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.079 ; 0.849 ; +; 0.585 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[7] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|reset_ena_reg ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.079 ; 0.850 ; +; 0.591 ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[4] ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[3] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.080 ; 0.857 ; +; 0.593 ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|ir_out[0] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[0] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.080 ; 0.859 ; +; 0.597 ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[9] ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[9] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.080 ; 0.863 ; +; 0.598 ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[9] ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[3] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.080 ; 0.864 ; +; 0.600 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[2] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[3] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.079 ; 0.865 ; +; 0.600 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|jtag_ir_reg[8] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|jtag_ir_reg[7] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.079 ; 0.865 ; +; 0.600 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|identity_contrib_shift_reg[0] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|identity_contrib_update_reg[0] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.080 ; 0.866 ; +; 0.600 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|design_hash_reg[1] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|design_hash_reg[0] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.080 ; 0.866 ; +; 0.601 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|jtag_ir_reg[5] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|jtag_ir_reg[4] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.079 ; 0.866 ; +; 0.601 ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|altera_std_synchronizer:the_altera_std_synchronizer1|dreg[0] ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|ir_out[1] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.080 ; 0.867 ; +; 0.602 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|design_hash_reg[3] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|design_hash_reg[2] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.080 ; 0.868 ; +; 0.602 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|design_hash_reg[2] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|design_hash_reg[1] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.080 ; 0.868 ; +; 0.603 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[2] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[9] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.080 ; 0.869 ; +; 0.605 ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[36] ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[35] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.081 ; 0.872 ; +; 0.608 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|jtag_ir_reg[6] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|jtag_ir_reg[5] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.079 ; 0.873 ; +; 0.609 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|identity_contrib_shift_reg[3] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|identity_contrib_update_reg[3] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.080 ; 0.875 ; +; 0.609 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|identity_contrib_shift_reg[3] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|identity_contrib_shift_reg[2] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.080 ; 0.875 ; +; 0.611 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|jtag_ir_reg[7] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|jtag_ir_reg[6] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.079 ; 0.876 ; +; 0.611 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[3] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[5] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.079 ; 0.876 ; +; 0.616 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[7] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[4] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.079 ; 0.881 ; +; 0.624 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[3] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[2] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.079 ; 0.889 ; +; 0.637 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[4] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[3] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.079 ; 0.902 ; +; 0.637 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[2] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[1][2] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.080 ; 0.903 ; +; 0.638 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[2] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|shadow_irf_reg[1][2] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.080 ; 0.904 ; +; 0.639 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|shadow_irf_reg[1][1] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[1][1] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.080 ; 0.905 ; +; 0.639 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|shadow_irf_reg[2][2] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[2][2] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.079 ; 0.904 ; +; 0.639 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[2][4] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|shadow_irf_reg[2][4] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.079 ; 0.904 ; ++-------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+---------------------+--------------+------------+------------+ + + ++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Slow 1200mV 85C Model Recovery: 'altera_reserved_tck' ; ++--------+--------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------+---------------------+---------------------+--------------+------------+------------+ +; Slack ; From Node ; To Node ; Launch Clock ; Latch Clock ; Relationship ; Clock Skew ; Data Delay ; ++--------+--------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------+---------------------+---------------------+--------------+------------+------------+ +; 47.734 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|jupdate ; altera_reserved_tck ; altera_reserved_tck ; 50.000 ; 0.160 ; 2.444 ; +; 47.994 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|tdo~reg0 ; altera_reserved_tck ; altera_reserved_tck ; 50.000 ; 0.165 ; 2.189 ; +; 48.268 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[8] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|tdo ; altera_reserved_tck ; altera_reserved_tck ; 50.000 ; 0.166 ; 1.916 ; +; 97.411 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[2] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.084 ; 2.523 ; +; 97.411 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[3] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.084 ; 2.523 ; +; 97.411 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[4] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.084 ; 2.523 ; +; 97.411 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[5] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.084 ; 2.523 ; +; 97.411 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[6] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.084 ; 2.523 ; +; 97.411 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[7] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.084 ; 2.523 ; +; 97.411 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[8] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.084 ; 2.523 ; +; 97.411 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[0] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.084 ; 2.523 ; +; 97.411 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[1] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.084 ; 2.523 ; +; 97.443 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|write_valid ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.080 ; 2.495 ; +; 97.443 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|read_req ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.080 ; 2.495 ; +; 97.443 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|read ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.080 ; 2.495 ; +; 97.446 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|write ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.083 ; 2.489 ; +; 97.446 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|wdata[7] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.083 ; 2.489 ; +; 97.446 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|wdata[6] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.083 ; 2.489 ; +; 97.446 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[8] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.083 ; 2.489 ; +; 97.446 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[7] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.083 ; 2.489 ; +; 97.446 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[6] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.083 ; 2.489 ; +; 97.446 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[5] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.083 ; 2.489 ; +; 97.446 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|wdata[5] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.083 ; 2.489 ; +; 97.446 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|wdata[4] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.083 ; 2.489 ; +; 97.446 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|wdata[3] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.083 ; 2.489 ; +; 97.446 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|wdata[2] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.083 ; 2.489 ; +; 97.446 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|wdata[1] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.083 ; 2.489 ; +; 97.459 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|state ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.076 ; 2.483 ; +; 97.550 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|shadow_irf_reg[1][1] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.073 ; 2.395 ; +; 97.550 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[1][1] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.073 ; 2.395 ; +; 97.550 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|shadow_irf_reg[1][0] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.073 ; 2.395 ; +; 97.550 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[1][0] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.073 ; 2.395 ; +; 97.550 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|shadow_irf_reg[1][2] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.073 ; 2.395 ; +; 97.550 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[1][2] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.073 ; 2.395 ; +; 97.550 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|shadow_irf_reg[1][3] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.073 ; 2.395 ; +; 97.550 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[1][3] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.073 ; 2.395 ; +; 97.550 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|shadow_irf_reg[1][4] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.073 ; 2.395 ; +; 97.550 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[1][4] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.073 ; 2.395 ; +; 97.556 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[0] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.073 ; 2.389 ; +; 97.556 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|hub_mode_reg[0] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.073 ; 2.389 ; +; 97.556 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[4] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.073 ; 2.389 ; +; 97.556 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[3] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.073 ; 2.389 ; +; 97.556 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[2] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.073 ; 2.389 ; +; 97.556 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[1] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.073 ; 2.389 ; +; 97.743 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[9] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.082 ; 2.193 ; +; 97.743 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[10] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.082 ; 2.193 ; +; 97.743 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|write_stalled ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.082 ; 2.193 ; +; 97.743 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[4] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.082 ; 2.193 ; +; 97.743 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[3] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.082 ; 2.193 ; +; 97.743 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[2] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.082 ; 2.193 ; +; 97.743 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[1] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.082 ; 2.193 ; +; 97.743 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[0] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.082 ; 2.193 ; +; 97.743 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[9] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.082 ; 2.193 ; +; 97.743 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|wdata[0] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.082 ; 2.193 ; +; 97.752 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|tck_t_dav ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.077 ; 2.189 ; +; 97.752 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|user_saw_rvalid ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.077 ; 2.189 ; +; 98.034 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|virtual_ir_scan_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|hub_mode_reg[2] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.078 ; 1.906 ; +; 98.095 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[0] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|jtag_ir_reg[9] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.078 ; 1.845 ; +; 98.095 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[0] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|jtag_ir_reg[8] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.078 ; 1.845 ; +; 98.095 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[0] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|jtag_ir_reg[7] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.078 ; 1.845 ; +; 98.095 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[0] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|jtag_ir_reg[6] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.078 ; 1.845 ; +; 98.095 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[0] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|jtag_ir_reg[5] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.078 ; 1.845 ; +; 98.095 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[0] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|jtag_ir_reg[4] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.078 ; 1.845 ; +; 98.095 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[0] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|jtag_ir_reg[3] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.078 ; 1.845 ; +; 98.095 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[0] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|jtag_ir_reg[2] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.078 ; 1.845 ; +; 98.095 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[0] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|jtag_ir_reg[1] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.078 ; 1.845 ; +; 98.095 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[0] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|jtag_ir_reg[0] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.078 ; 1.845 ; +; 98.095 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[0] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|virtual_dr_scan_reg ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.078 ; 1.845 ; +; 98.095 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[0] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|virtual_ir_scan_reg ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.078 ; 1.845 ; +; 98.116 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[5] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.076 ; 1.826 ; +; 98.116 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|hub_mode_reg[1] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.076 ; 1.826 ; +; 98.116 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[6] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.076 ; 1.826 ; +; 98.145 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|node_ena[1]~reg0 ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.079 ; 1.794 ; +; 98.145 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|node_ena[2]~reg0 ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.079 ; 1.794 ; +; 98.168 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|shadow_irf_reg[2][0] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.078 ; 1.772 ; +; 98.168 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[2][0] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.078 ; 1.772 ; +; 98.168 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|shadow_irf_reg[2][1] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.078 ; 1.772 ; +; 98.168 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[2][1] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.078 ; 1.772 ; +; 98.168 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|shadow_irf_reg[2][2] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.078 ; 1.772 ; +; 98.168 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[2][2] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.078 ; 1.772 ; +; 98.168 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|shadow_irf_reg[2][3] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.078 ; 1.772 ; +; 98.168 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[2][3] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.078 ; 1.772 ; +; 98.168 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|shadow_irf_reg[2][4] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.078 ; 1.772 ; +; 98.168 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[2][4] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.078 ; 1.772 ; ++--------+--------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------+---------------------+---------------------+--------------+------------+------------+ + + ++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Slow 1200mV 85C Model Removal: 'altera_reserved_tck' ; ++--------+--------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------+---------------------+---------------------+--------------+------------+------------+ +; Slack ; From Node ; To Node ; Launch Clock ; Latch Clock ; Relationship ; Clock Skew ; Data Delay ; ++--------+--------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------+---------------------+---------------------+--------------+------------+------------+ +; 1.385 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|shadow_irf_reg[2][0] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.080 ; 1.651 ; +; 1.385 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[2][0] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.080 ; 1.651 ; +; 1.385 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|shadow_irf_reg[2][1] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.080 ; 1.651 ; +; 1.385 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[2][1] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.080 ; 1.651 ; +; 1.385 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|shadow_irf_reg[2][2] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.080 ; 1.651 ; +; 1.385 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[2][2] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.080 ; 1.651 ; +; 1.385 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|shadow_irf_reg[2][3] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.080 ; 1.651 ; +; 1.385 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[2][3] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.080 ; 1.651 ; +; 1.385 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|shadow_irf_reg[2][4] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.080 ; 1.651 ; +; 1.385 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[2][4] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.080 ; 1.651 ; +; 1.413 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|node_ena[1]~reg0 ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.080 ; 1.679 ; +; 1.413 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|node_ena[2]~reg0 ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.080 ; 1.679 ; +; 1.437 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[5] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.082 ; 1.705 ; +; 1.437 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|hub_mode_reg[1] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.082 ; 1.705 ; +; 1.437 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[6] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.082 ; 1.705 ; +; 1.455 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[0] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|jtag_ir_reg[9] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.080 ; 1.721 ; +; 1.455 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[0] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|jtag_ir_reg[8] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.080 ; 1.721 ; +; 1.455 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[0] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|jtag_ir_reg[7] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.080 ; 1.721 ; +; 1.455 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[0] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|jtag_ir_reg[6] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.080 ; 1.721 ; +; 1.455 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[0] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|jtag_ir_reg[5] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.080 ; 1.721 ; +; 1.455 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[0] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|jtag_ir_reg[4] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.080 ; 1.721 ; +; 1.455 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[0] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|jtag_ir_reg[3] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.080 ; 1.721 ; +; 1.455 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[0] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|jtag_ir_reg[2] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.080 ; 1.721 ; +; 1.455 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[0] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|jtag_ir_reg[1] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.080 ; 1.721 ; +; 1.455 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[0] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|jtag_ir_reg[0] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.080 ; 1.721 ; +; 1.455 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[0] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|virtual_dr_scan_reg ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.080 ; 1.721 ; +; 1.455 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[0] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|virtual_ir_scan_reg ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.080 ; 1.721 ; +; 1.480 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|virtual_ir_scan_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|hub_mode_reg[2] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.080 ; 1.746 ; +; 1.783 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|tck_t_dav ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.081 ; 2.050 ; +; 1.783 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|user_saw_rvalid ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.081 ; 2.050 ; +; 1.798 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[9] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.077 ; 2.061 ; +; 1.798 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[10] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.077 ; 2.061 ; +; 1.798 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|write_stalled ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.077 ; 2.061 ; +; 1.798 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[4] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.077 ; 2.061 ; +; 1.798 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[3] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.077 ; 2.061 ; +; 1.798 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[2] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.077 ; 2.061 ; +; 1.798 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[1] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.077 ; 2.061 ; +; 1.798 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[0] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.077 ; 2.061 ; +; 1.798 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[9] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.077 ; 2.061 ; +; 1.798 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|wdata[0] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.077 ; 2.061 ; +; 1.982 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[0] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.085 ; 2.253 ; +; 1.982 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|hub_mode_reg[0] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.085 ; 2.253 ; +; 1.982 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[4] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.085 ; 2.253 ; +; 1.982 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[3] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.085 ; 2.253 ; +; 1.982 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[2] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.085 ; 2.253 ; +; 1.982 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[1] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.085 ; 2.253 ; +; 1.996 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|shadow_irf_reg[1][1] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.086 ; 2.268 ; +; 1.996 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[1][1] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.086 ; 2.268 ; +; 1.996 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|shadow_irf_reg[1][0] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.086 ; 2.268 ; +; 1.996 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[1][0] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.086 ; 2.268 ; +; 1.996 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|shadow_irf_reg[1][2] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.086 ; 2.268 ; +; 1.996 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[1][2] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.086 ; 2.268 ; +; 1.996 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|shadow_irf_reg[1][3] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.086 ; 2.268 ; +; 1.996 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[1][3] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.086 ; 2.268 ; +; 1.996 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|shadow_irf_reg[1][4] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.086 ; 2.268 ; +; 1.996 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[1][4] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.086 ; 2.268 ; +; 2.078 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|state ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.083 ; 2.347 ; +; 2.101 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|write ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.075 ; 2.362 ; +; 2.101 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|wdata[7] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.075 ; 2.362 ; +; 2.101 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|wdata[6] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.075 ; 2.362 ; +; 2.101 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[8] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.075 ; 2.362 ; +; 2.101 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[7] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.075 ; 2.362 ; +; 2.101 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[6] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.075 ; 2.362 ; +; 2.101 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[5] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.075 ; 2.362 ; +; 2.101 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|wdata[5] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.075 ; 2.362 ; +; 2.101 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|wdata[4] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.075 ; 2.362 ; +; 2.101 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|wdata[3] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.075 ; 2.362 ; +; 2.101 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|wdata[2] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.075 ; 2.362 ; +; 2.101 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|wdata[1] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.075 ; 2.362 ; +; 2.109 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|write_valid ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.078 ; 2.373 ; +; 2.109 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|read_req ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.078 ; 2.373 ; +; 2.109 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|read ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.078 ; 2.373 ; +; 2.125 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[2] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.074 ; 2.385 ; +; 2.125 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[3] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.074 ; 2.385 ; +; 2.125 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[4] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.074 ; 2.385 ; +; 2.125 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[5] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.074 ; 2.385 ; +; 2.125 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[6] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.074 ; 2.385 ; +; 2.125 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[7] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.074 ; 2.385 ; +; 2.125 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[8] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.074 ; 2.385 ; +; 2.125 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[0] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.074 ; 2.385 ; +; 2.125 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[1] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.074 ; 2.385 ; +; 51.250 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[8] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|tdo ; altera_reserved_tck ; altera_reserved_tck ; -50.000 ; 0.327 ; 1.763 ; +; 51.537 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|tdo~reg0 ; altera_reserved_tck ; altera_reserved_tck ; -50.000 ; 0.327 ; 2.050 ; +; 51.806 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|jupdate ; altera_reserved_tck ; altera_reserved_tck ; -50.000 ; 0.322 ; 2.314 ; ++--------+--------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------+---------------------+---------------------+--------------+------------+------------+ + + ++------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Slow 1200mV 85C Model Minimum Pulse Width: 'altera_reserved_tck' ; ++--------+--------------+----------------+------------------+---------------------+------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Slack ; Actual Width ; Required Width ; Type ; Clock ; Clock Edge ; Target ; ++--------+--------------+----------------+------------------+---------------------+------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; 49.549 ; 49.769 ; 0.220 ; High Pulse Width ; altera_reserved_tck ; Fall ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|jupdate ; +; 49.549 ; 49.769 ; 0.220 ; High Pulse Width ; altera_reserved_tck ; Fall ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|tdo~reg0 ; +; 49.549 ; 49.769 ; 0.220 ; High Pulse Width ; altera_reserved_tck ; Fall ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|tdo ; +; 49.600 ; 49.788 ; 0.188 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|read ; +; 49.600 ; 49.788 ; 0.188 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|read_req ; +; 49.600 ; 49.788 ; 0.188 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|tck_t_dav ; +; 49.600 ; 49.788 ; 0.188 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|user_saw_rvalid ; +; 49.600 ; 49.788 ; 0.188 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|write_valid ; +; 49.600 ; 49.788 ; 0.188 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|altera_std_synchronizer:the_altera_std_synchronizer2|din_s1 ; +; 49.600 ; 49.788 ; 0.188 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|altera_std_synchronizer:the_altera_std_synchronizer2|dreg[0] ; +; 49.600 ; 49.788 ; 0.188 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|ir_out[0] ; +; 49.600 ; 49.788 ; 0.188 ; Low Pulse Width ; altera_reserved_tck ; Rise ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[2][0] ; +; 49.600 ; 49.788 ; 0.188 ; Low Pulse Width ; altera_reserved_tck ; Rise ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[2][1] ; +; 49.600 ; 49.788 ; 0.188 ; Low Pulse Width ; altera_reserved_tck ; Rise ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[2][2] ; +; 49.600 ; 49.788 ; 0.188 ; Low Pulse Width ; altera_reserved_tck ; Rise ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[2][3] ; +; 49.600 ; 49.788 ; 0.188 ; Low Pulse Width ; altera_reserved_tck ; Rise ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[2][4] ; +; 49.600 ; 49.788 ; 0.188 ; Low Pulse Width ; altera_reserved_tck ; Rise ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|shadow_irf_reg[2][0] ; +; 49.600 ; 49.788 ; 0.188 ; Low Pulse Width ; altera_reserved_tck ; Rise ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|shadow_irf_reg[2][1] ; +; 49.600 ; 49.788 ; 0.188 ; Low Pulse Width ; altera_reserved_tck ; Rise ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|shadow_irf_reg[2][2] ; +; 49.600 ; 49.788 ; 0.188 ; Low Pulse Width ; altera_reserved_tck ; Rise ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|shadow_irf_reg[2][3] ; +; 49.600 ; 49.788 ; 0.188 ; Low Pulse Width ; altera_reserved_tck ; Rise ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|shadow_irf_reg[2][4] ; +; 49.601 ; 49.789 ; 0.188 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[0] ; +; 49.601 ; 49.789 ; 0.188 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[1] ; +; 49.601 ; 49.789 ; 0.188 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[2] ; +; 49.601 ; 49.789 ; 0.188 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[3] ; +; 49.601 ; 49.789 ; 0.188 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[4] ; +; 49.601 ; 49.789 ; 0.188 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[5] ; +; 49.601 ; 49.789 ; 0.188 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[6] ; +; 49.601 ; 49.789 ; 0.188 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[7] ; +; 49.601 ; 49.789 ; 0.188 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[8] ; +; 49.601 ; 49.789 ; 0.188 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[9] ; +; 49.601 ; 49.789 ; 0.188 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|state ; +; 49.601 ; 49.789 ; 0.188 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[0] ; +; 49.601 ; 49.789 ; 0.188 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[10] ; +; 49.601 ; 49.789 ; 0.188 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[1] ; +; 49.601 ; 49.789 ; 0.188 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[2] ; +; 49.601 ; 49.789 ; 0.188 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[3] ; +; 49.601 ; 49.789 ; 0.188 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[4] ; +; 49.601 ; 49.789 ; 0.188 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[5] ; +; 49.601 ; 49.789 ; 0.188 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[6] ; +; 49.601 ; 49.789 ; 0.188 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[7] ; +; 49.601 ; 49.789 ; 0.188 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[8] ; +; 49.601 ; 49.789 ; 0.188 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[9] ; +; 49.601 ; 49.789 ; 0.188 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|wdata[0] ; +; 49.601 ; 49.789 ; 0.188 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|wdata[1] ; +; 49.601 ; 49.789 ; 0.188 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|wdata[2] ; +; 49.601 ; 49.789 ; 0.188 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|wdata[3] ; +; 49.601 ; 49.789 ; 0.188 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|wdata[4] ; +; 49.601 ; 49.789 ; 0.188 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|wdata[5] ; +; 49.601 ; 49.789 ; 0.188 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|wdata[6] ; +; 49.601 ; 49.789 ; 0.188 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|wdata[7] ; +; 49.601 ; 49.789 ; 0.188 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|write ; +; 49.601 ; 49.789 ; 0.188 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|write_stalled ; +; 49.601 ; 49.789 ; 0.188 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|DRsize.000 ; +; 49.601 ; 49.789 ; 0.188 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|DRsize.010 ; +; 49.601 ; 49.789 ; 0.188 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|DRsize.100 ; +; 49.601 ; 49.789 ; 0.188 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|altera_std_synchronizer:the_altera_std_synchronizer1|din_s1 ; +; 49.601 ; 49.789 ; 0.188 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|altera_std_synchronizer:the_altera_std_synchronizer1|dreg[0] ; +; 49.601 ; 49.789 ; 0.188 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|ir_out[1] ; +; 49.601 ; 49.789 ; 0.188 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[0] ; +; 49.601 ; 49.789 ; 0.188 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[10] ; +; 49.601 ; 49.789 ; 0.188 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[11] ; +; 49.601 ; 49.789 ; 0.188 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[12] ; +; 49.601 ; 49.789 ; 0.188 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[13] ; +; 49.601 ; 49.789 ; 0.188 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[14] ; +; 49.601 ; 49.789 ; 0.188 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[15] ; +; 49.601 ; 49.789 ; 0.188 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[16] ; +; 49.601 ; 49.789 ; 0.188 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[17] ; +; 49.601 ; 49.789 ; 0.188 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[18] ; +; 49.601 ; 49.789 ; 0.188 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[19] ; +; 49.601 ; 49.789 ; 0.188 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[1] ; +; 49.601 ; 49.789 ; 0.188 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[20] ; +; 49.601 ; 49.789 ; 0.188 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[21] ; +; 49.601 ; 49.789 ; 0.188 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[22] ; +; 49.601 ; 49.789 ; 0.188 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[23] ; +; 49.601 ; 49.789 ; 0.188 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[24] ; +; 49.601 ; 49.789 ; 0.188 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[25] ; +; 49.601 ; 49.789 ; 0.188 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[26] ; +; 49.601 ; 49.789 ; 0.188 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[27] ; +; 49.601 ; 49.789 ; 0.188 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[28] ; +; 49.601 ; 49.789 ; 0.188 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[29] ; +; 49.601 ; 49.789 ; 0.188 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[2] ; +; 49.601 ; 49.789 ; 0.188 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[30] ; +; 49.601 ; 49.789 ; 0.188 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[32] ; +; 49.601 ; 49.789 ; 0.188 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[33] ; +; 49.601 ; 49.789 ; 0.188 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[34] ; +; 49.601 ; 49.789 ; 0.188 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[35] ; +; 49.601 ; 49.789 ; 0.188 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[36] ; +; 49.601 ; 49.789 ; 0.188 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[37] ; +; 49.601 ; 49.789 ; 0.188 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[3] ; +; 49.601 ; 49.789 ; 0.188 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[4] ; +; 49.601 ; 49.789 ; 0.188 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[5] ; +; 49.601 ; 49.789 ; 0.188 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[6] ; +; 49.601 ; 49.789 ; 0.188 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[8] ; +; 49.601 ; 49.789 ; 0.188 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[9] ; +; 49.601 ; 49.789 ; 0.188 ; Low Pulse Width ; altera_reserved_tck ; Rise ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; +; 49.601 ; 49.789 ; 0.188 ; Low Pulse Width ; altera_reserved_tck ; Rise ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|design_hash_reg[0] ; +; 49.601 ; 49.789 ; 0.188 ; Low Pulse Width ; altera_reserved_tck ; Rise ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|design_hash_reg[1] ; +; 49.601 ; 49.789 ; 0.188 ; Low Pulse Width ; altera_reserved_tck ; Rise ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|design_hash_reg[2] ; +; 49.601 ; 49.789 ; 0.188 ; Low Pulse Width ; altera_reserved_tck ; Rise ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|design_hash_reg[3] ; ++--------+--------------+----------------+------------------+---------------------+------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + + ++----------------------------------------------------------------------------------------------+ +; Setup Times ; ++---------------------+---------------------+-------+-------+------------+---------------------+ +; Data Port ; Clock Port ; Rise ; Fall ; Clock Edge ; Clock Reference ; ++---------------------+---------------------+-------+-------+------------+---------------------+ +; altera_reserved_tdi ; altera_reserved_tck ; 5.966 ; 6.153 ; Rise ; altera_reserved_tck ; +; altera_reserved_tms ; altera_reserved_tck ; 8.682 ; 8.853 ; Rise ; altera_reserved_tck ; ++---------------------+---------------------+-------+-------+------------+---------------------+ + + ++------------------------------------------------------------------------------------------------+ +; Hold Times ; ++---------------------+---------------------+--------+--------+------------+---------------------+ +; Data Port ; Clock Port ; Rise ; Fall ; Clock Edge ; Clock Reference ; ++---------------------+---------------------+--------+--------+------------+---------------------+ +; altera_reserved_tdi ; altera_reserved_tck ; -1.018 ; -1.163 ; Rise ; altera_reserved_tck ; +; altera_reserved_tms ; altera_reserved_tck ; -2.179 ; -2.292 ; Rise ; altera_reserved_tck ; ++---------------------+---------------------+--------+--------+------------+---------------------+ + + ++------------------------------------------------------------------------------------------------+ +; Clock to Output Times ; ++---------------------+---------------------+--------+--------+------------+---------------------+ +; Data Port ; Clock Port ; Rise ; Fall ; Clock Edge ; Clock Reference ; ++---------------------+---------------------+--------+--------+------------+---------------------+ +; altera_reserved_tdo ; altera_reserved_tck ; 16.072 ; 16.482 ; Fall ; altera_reserved_tck ; ++---------------------+---------------------+--------+--------+------------+---------------------+ + + ++------------------------------------------------------------------------------------------------+ +; Minimum Clock to Output Times ; ++---------------------+---------------------+--------+--------+------------+---------------------+ +; Data Port ; Clock Port ; Rise ; Fall ; Clock Edge ; Clock Reference ; ++---------------------+---------------------+--------+--------+------------+---------------------+ +; altera_reserved_tdo ; altera_reserved_tck ; 13.593 ; 14.008 ; Fall ; altera_reserved_tck ; ++---------------------+---------------------+--------+--------+------------+---------------------+ + + +---------------- +; MTBF Summary ; +---------------- +Typical MTBF of Design is 1e+09 years or 3.15e+16 seconds. + +Number of Synchronizer Chains Found: 2 +Shortest Synchronizer Chain: 2 Registers +Fraction of Chains for which MTBFs Could Not be Calculated: 0.000 +Worst Case Available Settling Time: 197.101 ns + +Typical MTBF values are calculated based on the nominal silicon characteristics, at nominal operating conditions. + - Under typical conditions, an increase of 100ps in available settling time will increase MTBF values by a factor of 10.8 + + + ++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Synchronizer Summary ; ++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------+-------------------------+ +; Source Node ; Synchronization Node ; Typical MTBF (Years) ; Included in Design MTBF ; ++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------+-------------------------+ +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|hbreak_enabled ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|altera_std_synchronizer:the_altera_std_synchronizer1|din_s1 ; Greater than 1 Billion ; Yes ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_oci_debug:the_nios_system_nios2_processor_nios2_oci_debug|monitor_ready ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|altera_std_synchronizer:the_altera_std_synchronizer2|din_s1 ; Greater than 1 Billion ; Yes ; ++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------+-------------------------+ + + +Synchronizer Chain #1: Typical MTBF is Greater than 1 Billion Years +=============================================================================== ++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Chain Summary ; ++-------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Property ; Value ; ++-------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Source Node ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|hbreak_enabled ; +; Synchronization Node ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|altera_std_synchronizer:the_altera_std_synchronizer1|din_s1 ; +; Typical MTBF (years) ; Greater than 1 Billion ; +; Included in Design MTBF ; Yes ; ++-------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + ++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Statistics ; ++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------+--------------+------------------+--------------+ +; Property ; Value ; Clock Period ; Active Edge Rate ; Output Slack ; ++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------+--------------+------------------+--------------+ +; Method of Synchronizer Identification ; User Specified ; ; ; ; +; Typical MTBF (years) ; Greater than 1 Billion ; ; ; ; +; Number of Synchronization Registers in Chain ; 2 ; ; ; ; +; Available Settling Time (ns) ; 197.101 ; ; ; ; +; Data Toggle Rate Used in MTBF Calculation (millions of transitions / sec) ; 1.25 ; ; ; ; +; Source Clock ; ; ; ; ; +; Unknown ; ; ; ; ; +; Synchronization Clock ; ; ; ; ; +; altera_reserved_tck ; ; 100.000 ; 10.0 MHz ; ; +; Asynchronous Source ; ; ; ; ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|hbreak_enabled ; ; ; ; ; +; Synchronization Registers ; ; ; ; ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|altera_std_synchronizer:the_altera_std_synchronizer1|din_s1 ; ; ; ; 99.150 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|altera_std_synchronizer:the_altera_std_synchronizer1|dreg[0] ; ; ; ; 97.951 ; ++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------+--------------+------------------+--------------+ + + + +Synchronizer Chain #2: Typical MTBF is Greater than 1 Billion Years +=============================================================================== ++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Chain Summary ; ++-------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Property ; Value ; ++-------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Source Node ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_oci_debug:the_nios_system_nios2_processor_nios2_oci_debug|monitor_ready ; +; Synchronization Node ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|altera_std_synchronizer:the_altera_std_synchronizer2|din_s1 ; +; Typical MTBF (years) ; Greater than 1 Billion ; +; Included in Design MTBF ; Yes ; ++-------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + ++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Statistics ; ++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------+--------------+------------------+--------------+ +; Property ; Value ; Clock Period ; Active Edge Rate ; Output Slack ; ++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------+--------------+------------------+--------------+ +; Method of Synchronizer Identification ; User Specified ; ; ; ; +; Typical MTBF (years) ; Greater than 1 Billion ; ; ; ; +; Number of Synchronization Registers in Chain ; 2 ; ; ; ; +; Available Settling Time (ns) ; 197.313 ; ; ; ; +; Data Toggle Rate Used in MTBF Calculation (millions of transitions / sec) ; 1.25 ; ; ; ; +; Source Clock ; ; ; ; ; +; Unknown ; ; ; ; ; +; Synchronization Clock ; ; ; ; ; +; altera_reserved_tck ; ; 100.000 ; 10.0 MHz ; ; +; Asynchronous Source ; ; ; ; ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_oci_debug:the_nios_system_nios2_processor_nios2_oci_debug|monitor_ready ; ; ; ; ; +; Synchronization Registers ; ; ; ; ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|altera_std_synchronizer:the_altera_std_synchronizer2|din_s1 ; ; ; ; 99.148 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|altera_std_synchronizer:the_altera_std_synchronizer2|dreg[0] ; ; ; ; 98.165 ; ++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------+--------------+------------------+--------------+ + + + ++-----------------------------------------------------------+ +; Slow 1200mV 0C Model Fmax Summary ; ++------------+-----------------+---------------------+------+ +; Fmax ; Restricted Fmax ; Clock Name ; Note ; ++------------+-----------------+---------------------+------+ +; 134.52 MHz ; 134.52 MHz ; altera_reserved_tck ; ; ++------------+-----------------+---------------------+------+ +This panel reports FMAX for every clock in the design, regardless of the user-specified clock periods. FMAX is only computed for paths where the source and destination registers or ports are driven by the same clock. Paths of different clocks, including generated clocks, are ignored. For paths between a clock and its inversion, FMAX is computed as if the rising and falling edges are scaled along with FMAX, such that the duty cycle (in terms of a percentage) is maintained. Altera recommends that you always use clock constraints and other slack reports for sign-off analysis. + + ++----------------------------------------------+ +; Slow 1200mV 0C Model Setup Summary ; ++---------------------+--------+---------------+ +; Clock ; Slack ; End Point TNS ; ++---------------------+--------+---------------+ +; altera_reserved_tck ; 46.283 ; 0.000 ; ++---------------------+--------+---------------+ + + ++---------------------------------------------+ +; Slow 1200mV 0C Model Hold Summary ; ++---------------------+-------+---------------+ +; Clock ; Slack ; End Point TNS ; ++---------------------+-------+---------------+ +; altera_reserved_tck ; 0.353 ; 0.000 ; ++---------------------+-------+---------------+ + + ++----------------------------------------------+ +; Slow 1200mV 0C Model Recovery Summary ; ++---------------------+--------+---------------+ +; Clock ; Slack ; End Point TNS ; ++---------------------+--------+---------------+ +; altera_reserved_tck ; 48.047 ; 0.000 ; ++---------------------+--------+---------------+ + + ++---------------------------------------------+ +; Slow 1200mV 0C Model Removal Summary ; ++---------------------+-------+---------------+ +; Clock ; Slack ; End Point TNS ; ++---------------------+-------+---------------+ +; altera_reserved_tck ; 1.278 ; 0.000 ; ++---------------------+-------+---------------+ + + ++--------------------------------------------------+ +; Slow 1200mV 0C Model Minimum Pulse Width Summary ; ++---------------------+--------+-------------------+ +; Clock ; Slack ; End Point TNS ; ++---------------------+--------+-------------------+ +; altera_reserved_tck ; 49.476 ; 0.000 ; ++---------------------+--------+-------------------+ + + ++------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Slow 1200mV 0C Model Setup: 'altera_reserved_tck' ; ++--------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+---------------------+--------------+------------+------------+ +; Slack ; From Node ; To Node ; Launch Clock ; Latch Clock ; Relationship ; Clock Skew ; Data Delay ; ++--------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+---------------------+--------------+------------+------------+ +; 46.283 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[5] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|tdo ; altera_reserved_tck ; altera_reserved_tck ; 50.000 ; 0.243 ; 3.979 ; +; 46.391 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[6] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|tdo ; altera_reserved_tck ; altera_reserved_tck ; 50.000 ; 0.243 ; 3.871 ; +; 46.925 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_rom_sr:hub_info_reg|WORD_SR[0] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|tdo ; altera_reserved_tck ; altera_reserved_tck ; 50.000 ; 0.253 ; 3.347 ; +; 47.311 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[1] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|tdo ; altera_reserved_tck ; altera_reserved_tck ; 50.000 ; 0.239 ; 2.947 ; +; 47.335 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[0] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|tdo ; altera_reserved_tck ; altera_reserved_tck ; 50.000 ; 0.239 ; 2.923 ; +; 47.435 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[4] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|tdo ; altera_reserved_tck ; altera_reserved_tck ; 50.000 ; 0.246 ; 2.830 ; +; 47.444 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[2] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|tdo ; altera_reserved_tck ; altera_reserved_tck ; 50.000 ; 0.239 ; 2.814 ; +; 47.487 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|virtual_ir_scan_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|tdo ; altera_reserved_tck ; altera_reserved_tck ; 50.000 ; 0.247 ; 2.779 ; +; 47.701 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|tdo_bypass_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|tdo ; altera_reserved_tck ; altera_reserved_tck ; 50.000 ; 0.239 ; 2.557 ; +; 47.713 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[3] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|tdo ; altera_reserved_tck ; altera_reserved_tck ; 50.000 ; 0.246 ; 2.552 ; +; 47.813 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[2][0] ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|jupdate ; altera_reserved_tck ; altera_reserved_tck ; 50.000 ; 0.240 ; 2.446 ; +; 47.865 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|design_hash_reg[0] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|tdo ; altera_reserved_tck ; altera_reserved_tck ; 50.000 ; 0.241 ; 2.395 ; +; 47.959 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|node_ena[2]~reg0 ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|jupdate ; altera_reserved_tck ; altera_reserved_tck ; 50.000 ; 0.240 ; 2.300 ; +; 48.054 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|virtual_ir_scan_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|jupdate ; altera_reserved_tck ; altera_reserved_tck ; 50.000 ; 0.242 ; 2.207 ; +; 48.216 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|hub_minor_ver_reg[0] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|tdo ; altera_reserved_tck ; altera_reserved_tck ; 50.000 ; 0.242 ; 2.045 ; +; 48.232 ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[0] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|tdo ; altera_reserved_tck ; altera_reserved_tck ; 50.000 ; 0.240 ; 2.027 ; +; 48.514 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[8] ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|jupdate ; altera_reserved_tck ; altera_reserved_tck ; 50.000 ; 0.241 ; 1.746 ; +; 49.121 ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[0] ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|tdo~reg0 ; altera_reserved_tck ; altera_reserved_tck ; 50.000 ; 0.246 ; 1.144 ; +; 95.603 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[3] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[1][1] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.065 ; 4.351 ; +; 95.603 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[3] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[1][0] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.065 ; 4.351 ; +; 95.603 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[3] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[1][2] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.065 ; 4.351 ; +; 95.603 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[3] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[1][3] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.065 ; 4.351 ; +; 95.603 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[3] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[1][4] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.065 ; 4.351 ; +; 95.636 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|virtual_ir_scan_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[1][1] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.064 ; 4.319 ; +; 95.636 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|virtual_ir_scan_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[1][0] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.064 ; 4.319 ; +; 95.636 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|virtual_ir_scan_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[1][2] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.064 ; 4.319 ; +; 95.636 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|virtual_ir_scan_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[1][3] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.064 ; 4.319 ; +; 95.636 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|virtual_ir_scan_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[1][4] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.064 ; 4.319 ; +; 95.777 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|node_ena[1]~reg0 ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[25] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.062 ; 4.180 ; +; 95.830 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|node_ena[1]~reg0 ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[26] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.062 ; 4.127 ; +; 95.865 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[3] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[2][0] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.071 ; 4.083 ; +; 95.865 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[3] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[2][1] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.071 ; 4.083 ; +; 95.865 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[3] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[2][2] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.071 ; 4.083 ; +; 95.865 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[3] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[2][3] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.071 ; 4.083 ; +; 95.865 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[3] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[2][4] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.071 ; 4.083 ; +; 95.872 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|node_ena[1]~reg0 ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[27] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.062 ; 4.085 ; +; 95.872 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|node_ena[1]~reg0 ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[24] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.062 ; 4.085 ; +; 95.872 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|node_ena[1]~reg0 ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[32] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.062 ; 4.085 ; +; 95.872 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|node_ena[1]~reg0 ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[30] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.062 ; 4.085 ; +; 95.872 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|node_ena[1]~reg0 ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[29] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.062 ; 4.085 ; +; 95.872 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|node_ena[1]~reg0 ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[28] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.062 ; 4.085 ; +; 95.898 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|virtual_ir_scan_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[2][0] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.070 ; 4.051 ; +; 95.898 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|virtual_ir_scan_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[2][1] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.070 ; 4.051 ; +; 95.898 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|virtual_ir_scan_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[2][2] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.070 ; 4.051 ; +; 95.898 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|virtual_ir_scan_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[2][3] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.070 ; 4.051 ; +; 95.898 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|virtual_ir_scan_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[2][4] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.070 ; 4.051 ; +; 95.918 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|node_ena[1]~reg0 ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[34] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.062 ; 4.039 ; +; 95.918 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|node_ena[1]~reg0 ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[33] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.062 ; 4.039 ; +; 96.012 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[4] ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[25] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.061 ; 3.946 ; +; 96.031 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[5] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[0] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.069 ; 3.919 ; +; 96.031 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[5] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[3] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.069 ; 3.919 ; +; 96.031 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[5] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[2] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.069 ; 3.919 ; +; 96.031 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[5] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[1] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.069 ; 3.919 ; +; 96.057 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[2][0] ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|write ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.078 ; 3.884 ; +; 96.057 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[2][0] ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|wdata[7] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.078 ; 3.884 ; +; 96.057 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[2][0] ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|wdata[6] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.078 ; 3.884 ; +; 96.057 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[2][0] ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|wdata[5] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.078 ; 3.884 ; +; 96.057 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[2][0] ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|wdata[4] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.078 ; 3.884 ; +; 96.057 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[2][0] ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|wdata[3] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.078 ; 3.884 ; +; 96.057 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[2][0] ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|wdata[2] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.078 ; 3.884 ; +; 96.057 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[2][0] ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|wdata[1] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.078 ; 3.884 ; +; 96.065 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[4] ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[26] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.061 ; 3.893 ; +; 96.101 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[3] ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[27] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.061 ; 3.857 ; +; 96.101 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[3] ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[25] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.061 ; 3.857 ; +; 96.101 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[3] ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[24] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.061 ; 3.857 ; +; 96.101 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[3] ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[32] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.061 ; 3.857 ; +; 96.101 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[3] ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[30] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.061 ; 3.857 ; +; 96.101 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[3] ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[29] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.061 ; 3.857 ; +; 96.101 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[3] ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[28] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.061 ; 3.857 ; +; 96.101 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[3] ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[26] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.061 ; 3.857 ; +; 96.138 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[6] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[0] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.069 ; 3.812 ; +; 96.138 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[6] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[3] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.069 ; 3.812 ; +; 96.138 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[6] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[2] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.069 ; 3.812 ; +; 96.138 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[6] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[1] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.069 ; 3.812 ; +; 96.147 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[3] ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[34] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.061 ; 3.811 ; +; 96.147 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[3] ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[33] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.061 ; 3.811 ; +; 96.159 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|virtual_ir_scan_reg ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[25] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.060 ; 3.800 ; +; 96.166 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|node_ena[1]~reg0 ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[23] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.064 ; 3.789 ; +; 96.166 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|node_ena[1]~reg0 ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[22] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.064 ; 3.789 ; +; 96.166 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|node_ena[1]~reg0 ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[18] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.064 ; 3.789 ; +; 96.166 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|node_ena[1]~reg0 ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[19] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.064 ; 3.789 ; +; 96.166 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|node_ena[1]~reg0 ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[20] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.064 ; 3.789 ; +; 96.166 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|node_ena[1]~reg0 ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[21] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.064 ; 3.789 ; +; 96.166 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|node_ena[1]~reg0 ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[16] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.064 ; 3.789 ; +; 96.166 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|node_ena[1]~reg0 ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[17] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.064 ; 3.789 ; +; 96.182 ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[1] ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[7] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.072 ; 3.765 ; +; 96.187 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[5] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[1][1] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.068 ; 3.764 ; +; 96.187 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[5] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[1][0] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.068 ; 3.764 ; +; 96.187 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[5] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[1][2] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.068 ; 3.764 ; +; 96.187 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[5] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[1][3] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.068 ; 3.764 ; +; 96.187 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[5] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[1][4] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.068 ; 3.764 ; +; 96.201 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[5] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[4] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.069 ; 3.749 ; +; 96.203 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|node_ena[2]~reg0 ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|write ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.078 ; 3.738 ; +; 96.203 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|node_ena[2]~reg0 ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|wdata[7] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.078 ; 3.738 ; +; 96.203 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|node_ena[2]~reg0 ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|wdata[6] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.078 ; 3.738 ; +; 96.203 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|node_ena[2]~reg0 ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|wdata[5] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.078 ; 3.738 ; +; 96.203 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|node_ena[2]~reg0 ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|wdata[4] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.078 ; 3.738 ; +; 96.203 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|node_ena[2]~reg0 ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|wdata[3] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.078 ; 3.738 ; +; 96.203 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|node_ena[2]~reg0 ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|wdata[2] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.078 ; 3.738 ; +; 96.203 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|node_ena[2]~reg0 ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|wdata[1] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.078 ; 3.738 ; ++--------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+---------------------+--------------+------------+------------+ + + ++------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Slow 1200mV 0C Model Hold: 'altera_reserved_tck' ; ++-------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+---------------------+--------------+------------+------------+ +; Slack ; From Node ; To Node ; Launch Clock ; Latch Clock ; Relationship ; Clock Skew ; Data Delay ; ++-------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+---------------------+--------------+------------+------------+ +; 0.353 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[1] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[1] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.073 ; 0.597 ; +; 0.353 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[6] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[6] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.073 ; 0.597 ; +; 0.353 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[4] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[4] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.073 ; 0.597 ; +; 0.353 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[11] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[11] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.073 ; 0.597 ; +; 0.353 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[5] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[5] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.073 ; 0.597 ; +; 0.353 ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|write_stalled ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|write_stalled ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.073 ; 0.597 ; +; 0.353 ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|user_saw_rvalid ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|user_saw_rvalid ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.073 ; 0.597 ; +; 0.353 ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[7] ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[7] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.073 ; 0.597 ; +; 0.353 ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[31] ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[31] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.073 ; 0.597 ; +; 0.353 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|hub_mode_reg[0] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|hub_mode_reg[0] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.073 ; 0.597 ; +; 0.353 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[4] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[4] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.073 ; 0.597 ; +; 0.353 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|hub_mode_reg[1] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|hub_mode_reg[1] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.073 ; 0.597 ; +; 0.353 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|hub_mode_reg[2] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|hub_mode_reg[2] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.073 ; 0.597 ; +; 0.353 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[6] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[6] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.073 ; 0.597 ; +; 0.353 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|tdo_bypass_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|tdo_bypass_reg ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.073 ; 0.597 ; +; 0.353 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[13] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[13] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.073 ; 0.597 ; +; 0.354 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|tms_cnt[1] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|tms_cnt[1] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.072 ; 0.597 ; +; 0.354 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|tms_cnt[2] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|tms_cnt[2] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.072 ; 0.597 ; +; 0.354 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[0] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[0] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.072 ; 0.597 ; +; 0.355 ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|jupdate ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|jupdate ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.071 ; 0.597 ; +; 0.364 ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|state ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|state ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.073 ; 0.608 ; +; 0.364 ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|write ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|write ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.073 ; 0.608 ; +; 0.364 ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|read ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|read ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.073 ; 0.608 ; +; 0.365 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|tms_cnt[0] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|tms_cnt[0] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.072 ; 0.608 ; +; 0.381 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|tms_cnt[2] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[0] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.072 ; 0.624 ; +; 0.382 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|tms_cnt[1] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|tms_cnt[2] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.072 ; 0.625 ; +; 0.385 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|tms_cnt[0] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|tms_cnt[1] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.072 ; 0.628 ; +; 0.386 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|jtag_ir_reg[3] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|jtag_ir_reg[2] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.073 ; 0.630 ; +; 0.393 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|jtag_ir_reg[1] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|jtag_ir_reg[0] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.073 ; 0.637 ; +; 0.395 ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|altera_std_synchronizer:the_altera_std_synchronizer1|din_s1 ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|altera_std_synchronizer:the_altera_std_synchronizer1|dreg[0] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.073 ; 0.639 ; +; 0.395 ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[5] ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[6] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.072 ; 0.638 ; +; 0.395 ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[6] ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[7] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.072 ; 0.638 ; +; 0.395 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|hub_minor_ver_reg[2] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|hub_minor_ver_reg[1] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.073 ; 0.639 ; +; 0.395 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|hub_minor_ver_reg[1] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|hub_minor_ver_reg[0] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.073 ; 0.639 ; +; 0.396 ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[4] ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[5] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.072 ; 0.639 ; +; 0.396 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[13] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[14] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.073 ; 0.640 ; +; 0.397 ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[2] ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[3] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.072 ; 0.640 ; +; 0.397 ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|altera_std_synchronizer:the_altera_std_synchronizer2|din_s1 ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|altera_std_synchronizer:the_altera_std_synchronizer2|dreg[0] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.073 ; 0.641 ; +; 0.397 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|shadow_irf_reg[1][3] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[1][3] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.073 ; 0.641 ; +; 0.398 ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[7] ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[8] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.072 ; 0.641 ; +; 0.400 ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[6] ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|wdata[2] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.073 ; 0.644 ; +; 0.400 ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[8] ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[7] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.073 ; 0.644 ; +; 0.401 ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[4] ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[3] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.073 ; 0.645 ; +; 0.401 ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[6] ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[5] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.073 ; 0.645 ; +; 0.402 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|jtag_ir_reg[4] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|jtag_ir_reg[3] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.073 ; 0.646 ; +; 0.402 ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[12] ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[11] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.073 ; 0.646 ; +; 0.403 ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[7] ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|wdata[3] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.073 ; 0.647 ; +; 0.403 ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[13] ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[12] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.073 ; 0.647 ; +; 0.404 ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[8] ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|wdata[4] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.073 ; 0.648 ; +; 0.404 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|identity_contrib_shift_reg[1] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|identity_contrib_update_reg[1] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.072 ; 0.647 ; +; 0.405 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|jtag_ir_reg[2] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|jtag_ir_reg[1] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.073 ; 0.649 ; +; 0.405 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|identity_contrib_shift_reg[1] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|identity_contrib_shift_reg[0] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.072 ; 0.648 ; +; 0.406 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[5] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[8] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.073 ; 0.650 ; +; 0.406 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[5] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[6] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.073 ; 0.650 ; +; 0.408 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[5] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|reset_ena_reg ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.073 ; 0.652 ; +; 0.415 ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[26] ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[25] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.073 ; 0.659 ; +; 0.415 ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[2] ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[1] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.073 ; 0.659 ; +; 0.416 ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[5] ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|wdata[1] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.073 ; 0.660 ; +; 0.417 ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[1] ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[2] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.072 ; 0.660 ; +; 0.424 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[8] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[2] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.073 ; 0.668 ; +; 0.434 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[4] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[5] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.073 ; 0.678 ; +; 0.500 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|jtag_ir_reg[0] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|virtual_dr_scan_reg ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.073 ; 0.744 ; +; 0.500 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|jtag_ir_reg[0] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|virtual_ir_scan_reg ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.073 ; 0.744 ; +; 0.507 ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[3] ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[4] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.072 ; 0.750 ; +; 0.507 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_rom_sr:hub_info_reg|WORD_SR[2] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_rom_sr:hub_info_reg|WORD_SR[1] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.073 ; 0.751 ; +; 0.508 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[6] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[7] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.073 ; 0.752 ; +; 0.512 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[14] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[15] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.073 ; 0.756 ; +; 0.527 ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[23] ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[22] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.073 ; 0.771 ; +; 0.528 ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[22] ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[21] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.073 ; 0.772 ; +; 0.528 ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[0] ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[1] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.072 ; 0.771 ; +; 0.529 ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[20] ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[19] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.073 ; 0.773 ; +; 0.533 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[7] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[8] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.073 ; 0.777 ; +; 0.534 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[7] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|reset_ena_reg ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.073 ; 0.778 ; +; 0.539 ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[9] ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[9] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.073 ; 0.783 ; +; 0.540 ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[9] ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[3] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.073 ; 0.784 ; +; 0.544 ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[4] ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[3] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.073 ; 0.788 ; +; 0.547 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|jtag_ir_reg[5] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|jtag_ir_reg[4] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.073 ; 0.791 ; +; 0.547 ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|ir_out[0] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[0] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.074 ; 0.792 ; +; 0.547 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|design_hash_reg[1] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|design_hash_reg[0] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.073 ; 0.791 ; +; 0.548 ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|altera_std_synchronizer:the_altera_std_synchronizer1|dreg[0] ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|ir_out[1] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.073 ; 0.792 ; +; 0.548 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|identity_contrib_shift_reg[0] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|identity_contrib_update_reg[0] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.072 ; 0.791 ; +; 0.549 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|design_hash_reg[3] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|design_hash_reg[2] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.073 ; 0.793 ; +; 0.549 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|design_hash_reg[2] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|design_hash_reg[1] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.073 ; 0.793 ; +; 0.553 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|jtag_ir_reg[8] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|jtag_ir_reg[7] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.073 ; 0.797 ; +; 0.554 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|jtag_ir_reg[6] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|jtag_ir_reg[5] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.073 ; 0.798 ; +; 0.555 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[2] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[3] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.073 ; 0.799 ; +; 0.555 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|identity_contrib_shift_reg[3] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|identity_contrib_update_reg[3] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.072 ; 0.798 ; +; 0.556 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|jtag_ir_reg[7] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|jtag_ir_reg[6] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.073 ; 0.800 ; +; 0.556 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|identity_contrib_shift_reg[3] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|identity_contrib_shift_reg[2] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.072 ; 0.799 ; +; 0.557 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[3] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[5] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.073 ; 0.801 ; +; 0.559 ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[36] ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[35] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.074 ; 0.804 ; +; 0.560 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[2] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[9] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.074 ; 0.805 ; +; 0.567 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[7] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[4] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.073 ; 0.811 ; +; 0.568 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[3] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[2] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.073 ; 0.812 ; +; 0.579 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[4] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[3] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.073 ; 0.823 ; +; 0.582 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|shadow_irf_reg[1][1] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[1][1] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.073 ; 0.826 ; +; 0.583 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|shadow_irf_reg[2][0] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[2][0] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.072 ; 0.826 ; +; 0.583 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|shadow_irf_reg[2][2] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[2][2] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.072 ; 0.826 ; +; 0.583 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[2][3] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|shadow_irf_reg[2][3] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.072 ; 0.826 ; +; 0.584 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|hub_mode_reg[2] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.073 ; 0.828 ; ++-------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+---------------------+--------------+------------+------------+ + + ++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Slow 1200mV 0C Model Recovery: 'altera_reserved_tck' ; ++--------+--------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------+---------------------+---------------------+--------------+------------+------------+ +; Slack ; From Node ; To Node ; Launch Clock ; Latch Clock ; Relationship ; Clock Skew ; Data Delay ; ++--------+--------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------+---------------------+---------------------+--------------+------------+------------+ +; 48.047 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|jupdate ; altera_reserved_tck ; altera_reserved_tck ; 50.000 ; 0.241 ; 2.213 ; +; 48.303 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|tdo~reg0 ; altera_reserved_tck ; altera_reserved_tck ; 50.000 ; 0.245 ; 1.961 ; +; 48.540 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[8] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|tdo ; altera_reserved_tck ; altera_reserved_tck ; 50.000 ; 0.246 ; 1.725 ; +; 97.663 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[2] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.077 ; 2.279 ; +; 97.663 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[3] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.077 ; 2.279 ; +; 97.663 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[4] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.077 ; 2.279 ; +; 97.663 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[5] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.077 ; 2.279 ; +; 97.663 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[6] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.077 ; 2.279 ; +; 97.663 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[7] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.077 ; 2.279 ; +; 97.663 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[8] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.077 ; 2.279 ; +; 97.663 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[0] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.077 ; 2.279 ; +; 97.663 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[1] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.077 ; 2.279 ; +; 97.685 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|write_valid ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.072 ; 2.262 ; +; 97.685 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|write ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.077 ; 2.257 ; +; 97.685 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|wdata[7] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.077 ; 2.257 ; +; 97.685 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|wdata[6] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.077 ; 2.257 ; +; 97.685 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|read_req ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.072 ; 2.262 ; +; 97.685 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|read ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.072 ; 2.262 ; +; 97.685 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[8] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.077 ; 2.257 ; +; 97.685 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[7] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.077 ; 2.257 ; +; 97.685 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[6] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.077 ; 2.257 ; +; 97.685 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[5] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.077 ; 2.257 ; +; 97.685 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|wdata[5] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.077 ; 2.257 ; +; 97.685 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|wdata[4] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.077 ; 2.257 ; +; 97.685 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|wdata[3] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.077 ; 2.257 ; +; 97.685 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|wdata[2] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.077 ; 2.257 ; +; 97.685 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|wdata[1] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.077 ; 2.257 ; +; 97.707 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|state ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.068 ; 2.244 ; +; 97.778 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|shadow_irf_reg[1][1] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.065 ; 2.176 ; +; 97.778 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[1][1] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.065 ; 2.176 ; +; 97.778 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|shadow_irf_reg[1][0] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.065 ; 2.176 ; +; 97.778 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[1][0] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.065 ; 2.176 ; +; 97.778 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|shadow_irf_reg[1][2] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.065 ; 2.176 ; +; 97.778 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[1][2] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.065 ; 2.176 ; +; 97.778 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|shadow_irf_reg[1][3] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.065 ; 2.176 ; +; 97.778 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[1][3] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.065 ; 2.176 ; +; 97.778 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|shadow_irf_reg[1][4] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.065 ; 2.176 ; +; 97.778 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[1][4] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.065 ; 2.176 ; +; 97.792 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[0] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.066 ; 2.161 ; +; 97.792 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|hub_mode_reg[0] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.066 ; 2.161 ; +; 97.792 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[4] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.066 ; 2.161 ; +; 97.792 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[3] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.066 ; 2.161 ; +; 97.792 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[2] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.066 ; 2.161 ; +; 97.792 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[1] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.066 ; 2.161 ; +; 97.968 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[9] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.074 ; 1.977 ; +; 97.968 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[10] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.074 ; 1.977 ; +; 97.968 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|write_stalled ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.074 ; 1.977 ; +; 97.968 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[4] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.074 ; 1.977 ; +; 97.968 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[3] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.074 ; 1.977 ; +; 97.968 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[2] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.074 ; 1.977 ; +; 97.968 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[1] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.074 ; 1.977 ; +; 97.968 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[0] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.074 ; 1.977 ; +; 97.968 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[9] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.074 ; 1.977 ; +; 97.968 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|wdata[0] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.074 ; 1.977 ; +; 97.987 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|tck_t_dav ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.071 ; 1.961 ; +; 97.987 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|user_saw_rvalid ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.071 ; 1.961 ; +; 98.222 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|virtual_ir_scan_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|hub_mode_reg[2] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.072 ; 1.725 ; +; 98.247 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[0] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|jtag_ir_reg[9] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.072 ; 1.700 ; +; 98.247 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[0] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|jtag_ir_reg[8] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.072 ; 1.700 ; +; 98.247 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[0] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|jtag_ir_reg[7] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.072 ; 1.700 ; +; 98.247 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[0] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|jtag_ir_reg[6] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.072 ; 1.700 ; +; 98.247 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[0] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|jtag_ir_reg[5] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.072 ; 1.700 ; +; 98.247 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[0] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|jtag_ir_reg[4] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.072 ; 1.700 ; +; 98.247 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[0] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|jtag_ir_reg[3] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.072 ; 1.700 ; +; 98.247 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[0] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|jtag_ir_reg[2] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.072 ; 1.700 ; +; 98.247 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[0] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|jtag_ir_reg[1] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.072 ; 1.700 ; +; 98.247 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[0] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|jtag_ir_reg[0] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.072 ; 1.700 ; +; 98.247 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[0] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|virtual_dr_scan_reg ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.072 ; 1.700 ; +; 98.247 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[0] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|virtual_ir_scan_reg ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.072 ; 1.700 ; +; 98.306 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[5] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.070 ; 1.643 ; +; 98.306 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|hub_mode_reg[1] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.070 ; 1.643 ; +; 98.306 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[6] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.070 ; 1.643 ; +; 98.335 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|node_ena[1]~reg0 ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.072 ; 1.612 ; +; 98.335 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|node_ena[2]~reg0 ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.072 ; 1.612 ; +; 98.357 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|shadow_irf_reg[2][0] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.071 ; 1.591 ; +; 98.357 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[2][0] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.071 ; 1.591 ; +; 98.357 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|shadow_irf_reg[2][1] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.071 ; 1.591 ; +; 98.357 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[2][1] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.071 ; 1.591 ; +; 98.357 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|shadow_irf_reg[2][2] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.071 ; 1.591 ; +; 98.357 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[2][2] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.071 ; 1.591 ; +; 98.357 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|shadow_irf_reg[2][3] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.071 ; 1.591 ; +; 98.357 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[2][3] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.071 ; 1.591 ; +; 98.357 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|shadow_irf_reg[2][4] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.071 ; 1.591 ; +; 98.357 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[2][4] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.071 ; 1.591 ; ++--------+--------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------+---------------------+---------------------+--------------+------------+------------+ + + ++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Slow 1200mV 0C Model Removal: 'altera_reserved_tck' ; ++--------+--------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------+---------------------+---------------------+--------------+------------+------------+ +; Slack ; From Node ; To Node ; Launch Clock ; Latch Clock ; Relationship ; Clock Skew ; Data Delay ; ++--------+--------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------+---------------------+---------------------+--------------+------------+------------+ +; 1.278 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|shadow_irf_reg[2][0] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.074 ; 1.523 ; +; 1.278 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[2][0] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.074 ; 1.523 ; +; 1.278 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|shadow_irf_reg[2][1] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.074 ; 1.523 ; +; 1.278 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[2][1] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.074 ; 1.523 ; +; 1.278 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|shadow_irf_reg[2][2] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.074 ; 1.523 ; +; 1.278 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[2][2] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.074 ; 1.523 ; +; 1.278 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|shadow_irf_reg[2][3] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.074 ; 1.523 ; +; 1.278 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[2][3] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.074 ; 1.523 ; +; 1.278 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|shadow_irf_reg[2][4] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.074 ; 1.523 ; +; 1.278 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[2][4] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.074 ; 1.523 ; +; 1.298 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|node_ena[1]~reg0 ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.074 ; 1.543 ; +; 1.298 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|node_ena[2]~reg0 ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.074 ; 1.543 ; +; 1.306 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[0] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|jtag_ir_reg[9] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.073 ; 1.550 ; +; 1.306 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[0] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|jtag_ir_reg[8] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.073 ; 1.550 ; +; 1.306 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[0] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|jtag_ir_reg[7] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.073 ; 1.550 ; +; 1.306 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[0] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|jtag_ir_reg[6] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.073 ; 1.550 ; +; 1.306 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[0] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|jtag_ir_reg[5] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.073 ; 1.550 ; +; 1.306 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[0] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|jtag_ir_reg[4] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.073 ; 1.550 ; +; 1.306 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[0] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|jtag_ir_reg[3] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.073 ; 1.550 ; +; 1.306 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[0] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|jtag_ir_reg[2] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.073 ; 1.550 ; +; 1.306 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[0] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|jtag_ir_reg[1] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.073 ; 1.550 ; +; 1.306 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[0] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|jtag_ir_reg[0] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.073 ; 1.550 ; +; 1.306 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[0] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|virtual_dr_scan_reg ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.073 ; 1.550 ; +; 1.306 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[0] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|virtual_ir_scan_reg ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.073 ; 1.550 ; +; 1.313 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[5] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.076 ; 1.560 ; +; 1.313 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|hub_mode_reg[1] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.076 ; 1.560 ; +; 1.313 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[6] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.076 ; 1.560 ; +; 1.357 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|virtual_ir_scan_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|hub_mode_reg[2] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.074 ; 1.602 ; +; 1.633 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|tck_t_dav ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.075 ; 1.879 ; +; 1.633 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|user_saw_rvalid ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.075 ; 1.879 ; +; 1.650 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[9] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.072 ; 1.893 ; +; 1.650 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[10] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.072 ; 1.893 ; +; 1.650 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|write_stalled ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.072 ; 1.893 ; +; 1.650 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[4] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.072 ; 1.893 ; +; 1.650 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[3] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.072 ; 1.893 ; +; 1.650 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[2] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.072 ; 1.893 ; +; 1.650 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[1] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.072 ; 1.893 ; +; 1.650 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[0] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.072 ; 1.893 ; +; 1.650 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[9] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.072 ; 1.893 ; +; 1.650 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|wdata[0] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.072 ; 1.893 ; +; 1.802 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[0] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.080 ; 2.053 ; +; 1.802 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|hub_mode_reg[0] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.080 ; 2.053 ; +; 1.802 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[4] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.080 ; 2.053 ; +; 1.802 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[3] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.080 ; 2.053 ; +; 1.802 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[2] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.080 ; 2.053 ; +; 1.802 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[1] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.080 ; 2.053 ; +; 1.806 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|shadow_irf_reg[1][1] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.081 ; 2.058 ; +; 1.806 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[1][1] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.081 ; 2.058 ; +; 1.806 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|shadow_irf_reg[1][0] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.081 ; 2.058 ; +; 1.806 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[1][0] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.081 ; 2.058 ; +; 1.806 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|shadow_irf_reg[1][2] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.081 ; 2.058 ; +; 1.806 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[1][2] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.081 ; 2.058 ; +; 1.806 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|shadow_irf_reg[1][3] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.081 ; 2.058 ; +; 1.806 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[1][3] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.081 ; 2.058 ; +; 1.806 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|shadow_irf_reg[1][4] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.081 ; 2.058 ; +; 1.806 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[1][4] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.081 ; 2.058 ; +; 1.882 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|state ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.078 ; 2.131 ; +; 1.901 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|write ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.069 ; 2.141 ; +; 1.901 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|wdata[7] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.069 ; 2.141 ; +; 1.901 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|wdata[6] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.069 ; 2.141 ; +; 1.901 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[8] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.069 ; 2.141 ; +; 1.901 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[7] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.069 ; 2.141 ; +; 1.901 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[6] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.069 ; 2.141 ; +; 1.901 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[5] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.069 ; 2.141 ; +; 1.901 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|wdata[5] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.069 ; 2.141 ; +; 1.901 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|wdata[4] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.069 ; 2.141 ; +; 1.901 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|wdata[3] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.069 ; 2.141 ; +; 1.901 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|wdata[2] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.069 ; 2.141 ; +; 1.901 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|wdata[1] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.069 ; 2.141 ; +; 1.903 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|write_valid ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.074 ; 2.148 ; +; 1.903 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|read_req ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.074 ; 2.148 ; +; 1.903 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|read ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.074 ; 2.148 ; +; 1.929 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[2] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.068 ; 2.168 ; +; 1.929 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[3] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.068 ; 2.168 ; +; 1.929 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[4] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.068 ; 2.168 ; +; 1.929 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[5] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.068 ; 2.168 ; +; 1.929 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[6] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.068 ; 2.168 ; +; 1.929 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[7] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.068 ; 2.168 ; +; 1.929 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[8] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.068 ; 2.168 ; +; 1.929 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[0] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.068 ; 2.168 ; +; 1.929 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[1] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.068 ; 2.168 ; +; 51.048 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[8] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|tdo ; altera_reserved_tck ; altera_reserved_tck ; -50.000 ; 0.399 ; 1.618 ; +; 51.310 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|tdo~reg0 ; altera_reserved_tck ; altera_reserved_tck ; -50.000 ; 0.398 ; 1.879 ; +; 51.542 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|jupdate ; altera_reserved_tck ; altera_reserved_tck ; -50.000 ; 0.393 ; 2.106 ; ++--------+--------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------+---------------------+---------------------+--------------+------------+------------+ + + ++------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Slow 1200mV 0C Model Minimum Pulse Width: 'altera_reserved_tck' ; ++--------+--------------+----------------+------------------+---------------------+------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Slack ; Actual Width ; Required Width ; Type ; Clock ; Clock Edge ; Target ; ++--------+--------------+----------------+------------------+---------------------+------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; 49.476 ; 49.694 ; 0.218 ; High Pulse Width ; altera_reserved_tck ; Fall ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|tdo~reg0 ; +; 49.476 ; 49.694 ; 0.218 ; High Pulse Width ; altera_reserved_tck ; Fall ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|tdo ; +; 49.477 ; 49.695 ; 0.218 ; High Pulse Width ; altera_reserved_tck ; Fall ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|jupdate ; +; 49.520 ; 49.706 ; 0.186 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[0] ; +; 49.520 ; 49.706 ; 0.186 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[1] ; +; 49.520 ; 49.706 ; 0.186 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[2] ; +; 49.520 ; 49.706 ; 0.186 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[3] ; +; 49.520 ; 49.706 ; 0.186 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[4] ; +; 49.520 ; 49.706 ; 0.186 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[5] ; +; 49.520 ; 49.706 ; 0.186 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[6] ; +; 49.520 ; 49.706 ; 0.186 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[7] ; +; 49.520 ; 49.706 ; 0.186 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[8] ; +; 49.520 ; 49.706 ; 0.186 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|tck_t_dav ; +; 49.520 ; 49.706 ; 0.186 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[5] ; +; 49.520 ; 49.706 ; 0.186 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[6] ; +; 49.520 ; 49.706 ; 0.186 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[7] ; +; 49.520 ; 49.706 ; 0.186 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[8] ; +; 49.520 ; 49.706 ; 0.186 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|user_saw_rvalid ; +; 49.520 ; 49.706 ; 0.186 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|wdata[1] ; +; 49.520 ; 49.706 ; 0.186 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|wdata[2] ; +; 49.520 ; 49.706 ; 0.186 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|wdata[3] ; +; 49.520 ; 49.706 ; 0.186 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|wdata[4] ; +; 49.520 ; 49.706 ; 0.186 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|wdata[5] ; +; 49.520 ; 49.706 ; 0.186 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|wdata[6] ; +; 49.520 ; 49.706 ; 0.186 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|wdata[7] ; +; 49.520 ; 49.706 ; 0.186 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|write ; +; 49.520 ; 49.706 ; 0.186 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|altera_std_synchronizer:the_altera_std_synchronizer2|din_s1 ; +; 49.520 ; 49.706 ; 0.186 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|altera_std_synchronizer:the_altera_std_synchronizer2|dreg[0] ; +; 49.520 ; 49.706 ; 0.186 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|ir_out[0] ; +; 49.520 ; 49.706 ; 0.186 ; Low Pulse Width ; altera_reserved_tck ; Rise ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|design_hash_reg[0] ; +; 49.520 ; 49.706 ; 0.186 ; Low Pulse Width ; altera_reserved_tck ; Rise ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|design_hash_reg[1] ; +; 49.520 ; 49.706 ; 0.186 ; Low Pulse Width ; altera_reserved_tck ; Rise ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|design_hash_reg[2] ; +; 49.520 ; 49.706 ; 0.186 ; Low Pulse Width ; altera_reserved_tck ; Rise ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|design_hash_reg[3] ; +; 49.520 ; 49.706 ; 0.186 ; Low Pulse Width ; altera_reserved_tck ; Rise ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|hub_minor_ver_reg[0] ; +; 49.520 ; 49.706 ; 0.186 ; Low Pulse Width ; altera_reserved_tck ; Rise ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|hub_minor_ver_reg[1] ; +; 49.520 ; 49.706 ; 0.186 ; Low Pulse Width ; altera_reserved_tck ; Rise ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|hub_minor_ver_reg[2] ; +; 49.520 ; 49.706 ; 0.186 ; Low Pulse Width ; altera_reserved_tck ; Rise ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|hub_minor_ver_reg[3] ; +; 49.520 ; 49.706 ; 0.186 ; Low Pulse Width ; altera_reserved_tck ; Rise ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|hub_mode_reg[1] ; +; 49.520 ; 49.706 ; 0.186 ; Low Pulse Width ; altera_reserved_tck ; Rise ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|identity_contrib_shift_reg[0] ; +; 49.520 ; 49.706 ; 0.186 ; Low Pulse Width ; altera_reserved_tck ; Rise ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|identity_contrib_shift_reg[1] ; +; 49.520 ; 49.706 ; 0.186 ; Low Pulse Width ; altera_reserved_tck ; Rise ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|identity_contrib_shift_reg[2] ; +; 49.520 ; 49.706 ; 0.186 ; Low Pulse Width ; altera_reserved_tck ; Rise ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|identity_contrib_shift_reg[3] ; +; 49.520 ; 49.706 ; 0.186 ; Low Pulse Width ; altera_reserved_tck ; Rise ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|identity_contrib_update_reg[0] ; +; 49.520 ; 49.706 ; 0.186 ; Low Pulse Width ; altera_reserved_tck ; Rise ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|identity_contrib_update_reg[1] ; +; 49.520 ; 49.706 ; 0.186 ; Low Pulse Width ; altera_reserved_tck ; Rise ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|identity_contrib_update_reg[2] ; +; 49.520 ; 49.706 ; 0.186 ; Low Pulse Width ; altera_reserved_tck ; Rise ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|identity_contrib_update_reg[3] ; +; 49.520 ; 49.706 ; 0.186 ; Low Pulse Width ; altera_reserved_tck ; Rise ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[2][0] ; +; 49.520 ; 49.706 ; 0.186 ; Low Pulse Width ; altera_reserved_tck ; Rise ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[2][1] ; +; 49.520 ; 49.706 ; 0.186 ; Low Pulse Width ; altera_reserved_tck ; Rise ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[2][2] ; +; 49.520 ; 49.706 ; 0.186 ; Low Pulse Width ; altera_reserved_tck ; Rise ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[2][3] ; +; 49.520 ; 49.706 ; 0.186 ; Low Pulse Width ; altera_reserved_tck ; Rise ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[2][4] ; +; 49.520 ; 49.706 ; 0.186 ; Low Pulse Width ; altera_reserved_tck ; Rise ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[5] ; +; 49.520 ; 49.706 ; 0.186 ; Low Pulse Width ; altera_reserved_tck ; Rise ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[6] ; +; 49.520 ; 49.706 ; 0.186 ; Low Pulse Width ; altera_reserved_tck ; Rise ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|mixer_addr_reg[0] ; +; 49.520 ; 49.706 ; 0.186 ; Low Pulse Width ; altera_reserved_tck ; Rise ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|mixer_addr_reg[1] ; +; 49.520 ; 49.706 ; 0.186 ; Low Pulse Width ; altera_reserved_tck ; Rise ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|mixer_addr_reg[2] ; +; 49.520 ; 49.706 ; 0.186 ; Low Pulse Width ; altera_reserved_tck ; Rise ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|mixer_addr_reg[3] ; +; 49.520 ; 49.706 ; 0.186 ; Low Pulse Width ; altera_reserved_tck ; Rise ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|mixer_addr_reg[4] ; +; 49.520 ; 49.706 ; 0.186 ; Low Pulse Width ; altera_reserved_tck ; Rise ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|shadow_irf_reg[2][0] ; +; 49.520 ; 49.706 ; 0.186 ; Low Pulse Width ; altera_reserved_tck ; Rise ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|shadow_irf_reg[2][1] ; +; 49.520 ; 49.706 ; 0.186 ; Low Pulse Width ; altera_reserved_tck ; Rise ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|shadow_irf_reg[2][2] ; +; 49.520 ; 49.706 ; 0.186 ; Low Pulse Width ; altera_reserved_tck ; Rise ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|shadow_irf_reg[2][3] ; +; 49.520 ; 49.706 ; 0.186 ; Low Pulse Width ; altera_reserved_tck ; Rise ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|shadow_irf_reg[2][4] ; +; 49.521 ; 49.707 ; 0.186 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[9] ; +; 49.521 ; 49.707 ; 0.186 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|state ; +; 49.521 ; 49.707 ; 0.186 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[0] ; +; 49.521 ; 49.707 ; 0.186 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[10] ; +; 49.521 ; 49.707 ; 0.186 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[1] ; +; 49.521 ; 49.707 ; 0.186 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[2] ; +; 49.521 ; 49.707 ; 0.186 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[3] ; +; 49.521 ; 49.707 ; 0.186 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[4] ; +; 49.521 ; 49.707 ; 0.186 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[9] ; +; 49.521 ; 49.707 ; 0.186 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|wdata[0] ; +; 49.521 ; 49.707 ; 0.186 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|write_stalled ; +; 49.521 ; 49.707 ; 0.186 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|altera_std_synchronizer:the_altera_std_synchronizer1|din_s1 ; +; 49.521 ; 49.707 ; 0.186 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|altera_std_synchronizer:the_altera_std_synchronizer1|dreg[0] ; +; 49.521 ; 49.707 ; 0.186 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|ir_out[1] ; +; 49.521 ; 49.707 ; 0.186 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[0] ; +; 49.521 ; 49.707 ; 0.186 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[15] ; +; 49.521 ; 49.707 ; 0.186 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[16] ; +; 49.521 ; 49.707 ; 0.186 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[17] ; +; 49.521 ; 49.707 ; 0.186 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[18] ; +; 49.521 ; 49.707 ; 0.186 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[19] ; +; 49.521 ; 49.707 ; 0.186 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[1] ; +; 49.521 ; 49.707 ; 0.186 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[20] ; +; 49.521 ; 49.707 ; 0.186 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[21] ; +; 49.521 ; 49.707 ; 0.186 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[22] ; +; 49.521 ; 49.707 ; 0.186 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[23] ; +; 49.521 ; 49.707 ; 0.186 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[2] ; +; 49.521 ; 49.707 ; 0.186 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[31] ; +; 49.521 ; 49.707 ; 0.186 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[35] ; +; 49.521 ; 49.707 ; 0.186 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[36] ; +; 49.521 ; 49.707 ; 0.186 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[37] ; +; 49.521 ; 49.707 ; 0.186 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[3] ; +; 49.521 ; 49.707 ; 0.186 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[4] ; +; 49.521 ; 49.707 ; 0.186 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[5] ; +; 49.521 ; 49.707 ; 0.186 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[6] ; +; 49.521 ; 49.707 ; 0.186 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[7] ; +; 49.521 ; 49.707 ; 0.186 ; Low Pulse Width ; altera_reserved_tck ; Rise ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; +; 49.521 ; 49.707 ; 0.186 ; Low Pulse Width ; altera_reserved_tck ; Rise ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|hub_mode_reg[0] ; ++--------+--------------+----------------+------------------+---------------------+------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + + ++----------------------------------------------------------------------------------------------+ +; Setup Times ; ++---------------------+---------------------+-------+-------+------------+---------------------+ +; Data Port ; Clock Port ; Rise ; Fall ; Clock Edge ; Clock Reference ; ++---------------------+---------------------+-------+-------+------------+---------------------+ +; altera_reserved_tdi ; altera_reserved_tck ; 5.681 ; 5.963 ; Rise ; altera_reserved_tck ; +; altera_reserved_tms ; altera_reserved_tck ; 8.434 ; 8.616 ; Rise ; altera_reserved_tck ; ++---------------------+---------------------+-------+-------+------------+---------------------+ + + ++------------------------------------------------------------------------------------------------+ +; Hold Times ; ++---------------------+---------------------+--------+--------+------------+---------------------+ +; Data Port ; Clock Port ; Rise ; Fall ; Clock Edge ; Clock Reference ; ++---------------------+---------------------+--------+--------+------------+---------------------+ +; altera_reserved_tdi ; altera_reserved_tck ; -1.039 ; -1.299 ; Rise ; altera_reserved_tck ; +; altera_reserved_tms ; altera_reserved_tck ; -2.262 ; -2.479 ; Rise ; altera_reserved_tck ; ++---------------------+---------------------+--------+--------+------------+---------------------+ + + ++------------------------------------------------------------------------------------------------+ +; Clock to Output Times ; ++---------------------+---------------------+--------+--------+------------+---------------------+ +; Data Port ; Clock Port ; Rise ; Fall ; Clock Edge ; Clock Reference ; ++---------------------+---------------------+--------+--------+------------+---------------------+ +; altera_reserved_tdo ; altera_reserved_tck ; 15.072 ; 15.134 ; Fall ; altera_reserved_tck ; ++---------------------+---------------------+--------+--------+------------+---------------------+ + + ++------------------------------------------------------------------------------------------------+ +; Minimum Clock to Output Times ; ++---------------------+---------------------+--------+--------+------------+---------------------+ +; Data Port ; Clock Port ; Rise ; Fall ; Clock Edge ; Clock Reference ; ++---------------------+---------------------+--------+--------+------------+---------------------+ +; altera_reserved_tdo ; altera_reserved_tck ; 12.632 ; 12.709 ; Fall ; altera_reserved_tck ; ++---------------------+---------------------+--------+--------+------------+---------------------+ + + +---------------- +; MTBF Summary ; +---------------- +Typical MTBF of Design is 1e+09 years or 3.15e+16 seconds. + +Number of Synchronizer Chains Found: 2 +Shortest Synchronizer Chain: 2 Registers +Fraction of Chains for which MTBFs Could Not be Calculated: 0.000 +Worst Case Available Settling Time: 197.386 ns + +Typical MTBF values are calculated based on the nominal silicon characteristics, at nominal operating conditions. + - Under typical conditions, an increase of 100ps in available settling time will increase MTBF values by a factor of 10.8 + + + ++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Synchronizer Summary ; ++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------+-------------------------+ +; Source Node ; Synchronization Node ; Typical MTBF (Years) ; Included in Design MTBF ; ++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------+-------------------------+ +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|hbreak_enabled ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|altera_std_synchronizer:the_altera_std_synchronizer1|din_s1 ; Greater than 1 Billion ; Yes ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_oci_debug:the_nios_system_nios2_processor_nios2_oci_debug|monitor_ready ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|altera_std_synchronizer:the_altera_std_synchronizer2|din_s1 ; Greater than 1 Billion ; Yes ; ++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------+-------------------------+ + + +Synchronizer Chain #1: Typical MTBF is Greater than 1 Billion Years +=============================================================================== ++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Chain Summary ; ++-------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Property ; Value ; ++-------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Source Node ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|hbreak_enabled ; +; Synchronization Node ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|altera_std_synchronizer:the_altera_std_synchronizer1|din_s1 ; +; Typical MTBF (years) ; Greater than 1 Billion ; +; Included in Design MTBF ; Yes ; ++-------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + ++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Statistics ; ++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------+--------------+------------------+--------------+ +; Property ; Value ; Clock Period ; Active Edge Rate ; Output Slack ; ++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------+--------------+------------------+--------------+ +; Method of Synchronizer Identification ; User Specified ; ; ; ; +; Typical MTBF (years) ; Greater than 1 Billion ; ; ; ; +; Number of Synchronization Registers in Chain ; 2 ; ; ; ; +; Available Settling Time (ns) ; 197.386 ; ; ; ; +; Data Toggle Rate Used in MTBF Calculation (millions of transitions / sec) ; 1.25 ; ; ; ; +; Source Clock ; ; ; ; ; +; Unknown ; ; ; ; ; +; Synchronization Clock ; ; ; ; ; +; altera_reserved_tck ; ; 100.000 ; 10.0 MHz ; ; +; Asynchronous Source ; ; ; ; ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|hbreak_enabled ; ; ; ; ; +; Synchronization Registers ; ; ; ; ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|altera_std_synchronizer:the_altera_std_synchronizer1|din_s1 ; ; ; ; 99.236 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|altera_std_synchronizer:the_altera_std_synchronizer1|dreg[0] ; ; ; ; 98.150 ; ++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------+--------------+------------------+--------------+ + + + +Synchronizer Chain #2: Typical MTBF is Greater than 1 Billion Years +=============================================================================== ++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Chain Summary ; ++-------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Property ; Value ; ++-------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Source Node ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_oci_debug:the_nios_system_nios2_processor_nios2_oci_debug|monitor_ready ; +; Synchronization Node ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|altera_std_synchronizer:the_altera_std_synchronizer2|din_s1 ; +; Typical MTBF (years) ; Greater than 1 Billion ; +; Included in Design MTBF ; Yes ; ++-------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + ++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Statistics ; ++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------+--------------+------------------+--------------+ +; Property ; Value ; Clock Period ; Active Edge Rate ; Output Slack ; ++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------+--------------+------------------+--------------+ +; Method of Synchronizer Identification ; User Specified ; ; ; ; +; Typical MTBF (years) ; Greater than 1 Billion ; ; ; ; +; Number of Synchronization Registers in Chain ; 2 ; ; ; ; +; Available Settling Time (ns) ; 197.573 ; ; ; ; +; Data Toggle Rate Used in MTBF Calculation (millions of transitions / sec) ; 1.25 ; ; ; ; +; Source Clock ; ; ; ; ; +; Unknown ; ; ; ; ; +; Synchronization Clock ; ; ; ; ; +; altera_reserved_tck ; ; 100.000 ; 10.0 MHz ; ; +; Asynchronous Source ; ; ; ; ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_oci_debug:the_nios_system_nios2_processor_nios2_oci_debug|monitor_ready ; ; ; ; ; +; Synchronization Registers ; ; ; ; ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|altera_std_synchronizer:the_altera_std_synchronizer2|din_s1 ; ; ; ; 99.233 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|altera_std_synchronizer:the_altera_std_synchronizer2|dreg[0] ; ; ; ; 98.340 ; ++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------+--------------+------------------+--------------+ + + + ++----------------------------------------------+ +; Fast 1200mV 0C Model Setup Summary ; ++---------------------+--------+---------------+ +; Clock ; Slack ; End Point TNS ; ++---------------------+--------+---------------+ +; altera_reserved_tck ; 48.270 ; 0.000 ; ++---------------------+--------+---------------+ + + ++---------------------------------------------+ +; Fast 1200mV 0C Model Hold Summary ; ++---------------------+-------+---------------+ +; Clock ; Slack ; End Point TNS ; ++---------------------+-------+---------------+ +; altera_reserved_tck ; 0.180 ; 0.000 ; ++---------------------+-------+---------------+ + + ++----------------------------------------------+ +; Fast 1200mV 0C Model Recovery Summary ; ++---------------------+--------+---------------+ +; Clock ; Slack ; End Point TNS ; ++---------------------+--------+---------------+ +; altera_reserved_tck ; 49.194 ; 0.000 ; ++---------------------+--------+---------------+ + + ++---------------------------------------------+ +; Fast 1200mV 0C Model Removal Summary ; ++---------------------+-------+---------------+ +; Clock ; Slack ; End Point TNS ; ++---------------------+-------+---------------+ +; altera_reserved_tck ; 0.657 ; 0.000 ; ++---------------------+-------+---------------+ + + ++--------------------------------------------------+ +; Fast 1200mV 0C Model Minimum Pulse Width Summary ; ++---------------------+--------+-------------------+ +; Clock ; Slack ; End Point TNS ; ++---------------------+--------+-------------------+ +; altera_reserved_tck ; 49.301 ; 0.000 ; ++---------------------+--------+-------------------+ + + ++------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Fast 1200mV 0C Model Setup: 'altera_reserved_tck' ; ++--------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+---------------------+--------------+------------+------------+ +; Slack ; From Node ; To Node ; Launch Clock ; Latch Clock ; Relationship ; Clock Skew ; Data Delay ; ++--------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+---------------------+--------------+------------+------------+ +; 48.270 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[5] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|tdo ; altera_reserved_tck ; altera_reserved_tck ; 50.000 ; 0.445 ; 2.182 ; +; 48.336 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[6] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|tdo ; altera_reserved_tck ; altera_reserved_tck ; 50.000 ; 0.445 ; 2.116 ; +; 48.626 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_rom_sr:hub_info_reg|WORD_SR[0] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|tdo ; altera_reserved_tck ; altera_reserved_tck ; 50.000 ; 0.451 ; 1.832 ; +; 48.878 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[1] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|tdo ; altera_reserved_tck ; altera_reserved_tck ; 50.000 ; 0.441 ; 1.570 ; +; 48.895 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[0] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|tdo ; altera_reserved_tck ; altera_reserved_tck ; 50.000 ; 0.441 ; 1.553 ; +; 48.924 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[2] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|tdo ; altera_reserved_tck ; altera_reserved_tck ; 50.000 ; 0.441 ; 1.524 ; +; 48.928 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[4] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|tdo ; altera_reserved_tck ; altera_reserved_tck ; 50.000 ; 0.448 ; 1.527 ; +; 48.959 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|virtual_ir_scan_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|tdo ; altera_reserved_tck ; altera_reserved_tck ; 50.000 ; 0.448 ; 1.496 ; +; 49.044 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[3] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|tdo ; altera_reserved_tck ; altera_reserved_tck ; 50.000 ; 0.448 ; 1.411 ; +; 49.077 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|tdo_bypass_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|tdo ; altera_reserved_tck ; altera_reserved_tck ; 50.000 ; 0.441 ; 1.371 ; +; 49.123 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[2][0] ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|jupdate ; altera_reserved_tck ; altera_reserved_tck ; 50.000 ; 0.445 ; 1.329 ; +; 49.152 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|design_hash_reg[0] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|tdo ; altera_reserved_tck ; altera_reserved_tck ; 50.000 ; 0.444 ; 1.299 ; +; 49.173 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|node_ena[2]~reg0 ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|jupdate ; altera_reserved_tck ; altera_reserved_tck ; 50.000 ; 0.445 ; 1.279 ; +; 49.267 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|virtual_ir_scan_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|jupdate ; altera_reserved_tck ; altera_reserved_tck ; 50.000 ; 0.446 ; 1.186 ; +; 49.362 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|hub_minor_ver_reg[0] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|tdo ; altera_reserved_tck ; altera_reserved_tck ; 50.000 ; 0.444 ; 1.089 ; +; 49.389 ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[0] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|tdo ; altera_reserved_tck ; altera_reserved_tck ; 50.000 ; 0.442 ; 1.060 ; +; 49.467 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[8] ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|jupdate ; altera_reserved_tck ; altera_reserved_tck ; 50.000 ; 0.446 ; 0.986 ; +; 49.815 ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[0] ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|tdo~reg0 ; altera_reserved_tck ; altera_reserved_tck ; 50.000 ; 0.445 ; 0.637 ; +; 97.595 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|virtual_ir_scan_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[1][1] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.034 ; 2.378 ; +; 97.595 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|virtual_ir_scan_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[1][0] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.034 ; 2.378 ; +; 97.595 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|virtual_ir_scan_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[1][2] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.034 ; 2.378 ; +; 97.595 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|virtual_ir_scan_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[1][3] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.034 ; 2.378 ; +; 97.595 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|virtual_ir_scan_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[1][4] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.034 ; 2.378 ; +; 97.676 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[3] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[1][1] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.034 ; 2.297 ; +; 97.676 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[3] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[1][0] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.034 ; 2.297 ; +; 97.676 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[3] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[1][2] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.034 ; 2.297 ; +; 97.676 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[3] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[1][3] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.034 ; 2.297 ; +; 97.676 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[3] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[1][4] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.034 ; 2.297 ; +; 97.681 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|node_ena[1]~reg0 ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[25] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.030 ; 2.296 ; +; 97.713 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|node_ena[1]~reg0 ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[26] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.030 ; 2.264 ; +; 97.745 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|virtual_ir_scan_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[2][0] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.040 ; 2.222 ; +; 97.745 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|virtual_ir_scan_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[2][1] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.040 ; 2.222 ; +; 97.745 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|virtual_ir_scan_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[2][2] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.040 ; 2.222 ; +; 97.745 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|virtual_ir_scan_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[2][3] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.040 ; 2.222 ; +; 97.745 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|virtual_ir_scan_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[2][4] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.040 ; 2.222 ; +; 97.799 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|node_ena[1]~reg0 ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[27] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.030 ; 2.178 ; +; 97.799 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|node_ena[1]~reg0 ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[24] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.030 ; 2.178 ; +; 97.799 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|node_ena[1]~reg0 ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[32] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.030 ; 2.178 ; +; 97.799 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|node_ena[1]~reg0 ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[30] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.030 ; 2.178 ; +; 97.799 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|node_ena[1]~reg0 ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[29] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.030 ; 2.178 ; +; 97.799 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|node_ena[1]~reg0 ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[28] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.030 ; 2.178 ; +; 97.815 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[4] ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[25] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.029 ; 2.163 ; +; 97.821 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|node_ena[1]~reg0 ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[34] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.030 ; 2.156 ; +; 97.821 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|node_ena[1]~reg0 ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[33] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.030 ; 2.156 ; +; 97.826 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[3] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[2][0] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.040 ; 2.141 ; +; 97.826 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[3] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[2][1] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.040 ; 2.141 ; +; 97.826 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[3] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[2][2] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.040 ; 2.141 ; +; 97.826 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[3] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[2][3] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.040 ; 2.141 ; +; 97.826 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[3] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[2][4] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.040 ; 2.141 ; +; 97.835 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[5] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[0] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.038 ; 2.134 ; +; 97.835 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[5] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[3] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.038 ; 2.134 ; +; 97.835 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[5] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[2] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.038 ; 2.134 ; +; 97.835 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[5] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[1] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.038 ; 2.134 ; +; 97.847 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[4] ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[26] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.029 ; 2.131 ; +; 97.861 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|virtual_ir_scan_reg ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[25] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.029 ; 2.117 ; +; 97.877 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[5] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[4] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.038 ; 2.092 ; +; 97.891 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|virtual_ir_scan_reg ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[26] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.029 ; 2.087 ; +; 97.897 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[5] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[1][1] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.037 ; 2.073 ; +; 97.897 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[5] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[1][0] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.037 ; 2.073 ; +; 97.897 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[5] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[1][2] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.037 ; 2.073 ; +; 97.897 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[5] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[1][3] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.037 ; 2.073 ; +; 97.897 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[5] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[1][4] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.037 ; 2.073 ; +; 97.897 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[3] ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[27] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.029 ; 2.081 ; +; 97.897 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[3] ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[25] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.029 ; 2.081 ; +; 97.897 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[3] ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[24] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.029 ; 2.081 ; +; 97.897 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[3] ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[32] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.029 ; 2.081 ; +; 97.897 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[3] ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[30] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.029 ; 2.081 ; +; 97.897 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[3] ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[29] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.029 ; 2.081 ; +; 97.897 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[3] ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[28] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.029 ; 2.081 ; +; 97.897 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[3] ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[26] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.029 ; 2.081 ; +; 97.901 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[6] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[0] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.038 ; 2.068 ; +; 97.901 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[6] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[3] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.038 ; 2.068 ; +; 97.901 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[6] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[2] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.038 ; 2.068 ; +; 97.901 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[6] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[1] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.038 ; 2.068 ; +; 97.915 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[2][0] ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|write ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.042 ; 2.050 ; +; 97.915 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[2][0] ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|wdata[7] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.042 ; 2.050 ; +; 97.915 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[2][0] ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|wdata[6] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.042 ; 2.050 ; +; 97.915 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[2][0] ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|wdata[5] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.042 ; 2.050 ; +; 97.915 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[2][0] ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|wdata[4] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.042 ; 2.050 ; +; 97.915 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[2][0] ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|wdata[3] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.042 ; 2.050 ; +; 97.915 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[2][0] ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|wdata[2] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.042 ; 2.050 ; +; 97.915 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[2][0] ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|wdata[1] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.042 ; 2.050 ; +; 97.917 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|node_ena[2]~reg0 ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|write ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.042 ; 2.048 ; +; 97.917 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|node_ena[2]~reg0 ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|wdata[7] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.042 ; 2.048 ; +; 97.917 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|node_ena[2]~reg0 ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|wdata[6] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.042 ; 2.048 ; +; 97.917 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|node_ena[2]~reg0 ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|wdata[5] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.042 ; 2.048 ; +; 97.917 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|node_ena[2]~reg0 ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|wdata[4] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.042 ; 2.048 ; +; 97.917 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|node_ena[2]~reg0 ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|wdata[3] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.042 ; 2.048 ; +; 97.917 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|node_ena[2]~reg0 ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|wdata[2] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.042 ; 2.048 ; +; 97.917 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|node_ena[2]~reg0 ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|wdata[1] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.042 ; 2.048 ; +; 97.919 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[3] ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[34] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.029 ; 2.059 ; +; 97.919 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[3] ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[33] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.029 ; 2.059 ; +; 97.942 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[4] ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[27] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.029 ; 2.036 ; +; 97.942 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[4] ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[24] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.029 ; 2.036 ; +; 97.942 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[4] ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[32] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.029 ; 2.036 ; +; 97.942 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[4] ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[30] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.029 ; 2.036 ; +; 97.942 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[4] ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[29] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.029 ; 2.036 ; +; 97.942 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[4] ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[28] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.029 ; 2.036 ; +; 97.943 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[6] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[4] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.038 ; 2.026 ; +; 97.955 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[7] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[1][1] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.034 ; 2.018 ; ++--------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+---------------------+--------------+------------+------------+ + + ++------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Fast 1200mV 0C Model Hold: 'altera_reserved_tck' ; ++-------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+---------------------+--------------+------------+------------+ +; Slack ; From Node ; To Node ; Launch Clock ; Latch Clock ; Relationship ; Clock Skew ; Data Delay ; ++-------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+---------------------+--------------+------------+------------+ +; 0.180 ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|jupdate ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|jupdate ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.043 ; 0.307 ; +; 0.181 ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[7] ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[7] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.042 ; 0.307 ; +; 0.181 ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[31] ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[31] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.042 ; 0.307 ; +; 0.181 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|hub_mode_reg[0] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|hub_mode_reg[0] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.042 ; 0.307 ; +; 0.181 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[4] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[4] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.042 ; 0.307 ; +; 0.181 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|tdo_bypass_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|tdo_bypass_reg ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.042 ; 0.307 ; +; 0.182 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|tms_cnt[1] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|tms_cnt[1] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.041 ; 0.307 ; +; 0.182 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|tms_cnt[2] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|tms_cnt[2] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.041 ; 0.307 ; +; 0.182 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[0] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[0] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.041 ; 0.307 ; +; 0.182 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[1] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[1] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.041 ; 0.307 ; +; 0.182 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[6] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[6] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.041 ; 0.307 ; +; 0.182 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[4] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[4] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.041 ; 0.307 ; +; 0.182 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[11] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[11] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.041 ; 0.307 ; +; 0.182 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[5] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[5] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.041 ; 0.307 ; +; 0.182 ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|write_stalled ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|write_stalled ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.041 ; 0.307 ; +; 0.182 ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|user_saw_rvalid ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|user_saw_rvalid ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.041 ; 0.307 ; +; 0.182 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|hub_mode_reg[1] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|hub_mode_reg[1] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.041 ; 0.307 ; +; 0.182 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|hub_mode_reg[2] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|hub_mode_reg[2] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.041 ; 0.307 ; +; 0.182 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[6] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[6] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.041 ; 0.307 ; +; 0.182 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[13] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[13] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.041 ; 0.307 ; +; 0.188 ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|altera_std_synchronizer:the_altera_std_synchronizer1|din_s1 ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|altera_std_synchronizer:the_altera_std_synchronizer1|dreg[0] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.042 ; 0.314 ; +; 0.188 ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|state ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|state ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.042 ; 0.314 ; +; 0.188 ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[5] ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[6] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.041 ; 0.313 ; +; 0.188 ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[6] ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[7] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.041 ; 0.313 ; +; 0.188 ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|read ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|read ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.042 ; 0.314 ; +; 0.188 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|hub_minor_ver_reg[2] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|hub_minor_ver_reg[1] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.042 ; 0.314 ; +; 0.188 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|hub_minor_ver_reg[1] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|hub_minor_ver_reg[0] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.042 ; 0.314 ; +; 0.189 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|tms_cnt[0] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|tms_cnt[0] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.041 ; 0.314 ; +; 0.189 ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[4] ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[5] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.041 ; 0.314 ; +; 0.189 ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|write ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|write ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.041 ; 0.314 ; +; 0.190 ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[2] ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[3] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.041 ; 0.315 ; +; 0.190 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[13] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[14] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.041 ; 0.315 ; +; 0.191 ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[7] ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[8] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.041 ; 0.316 ; +; 0.191 ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[4] ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[3] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.042 ; 0.317 ; +; 0.191 ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[6] ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[5] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.042 ; 0.317 ; +; 0.191 ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|altera_std_synchronizer:the_altera_std_synchronizer2|din_s1 ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|altera_std_synchronizer:the_altera_std_synchronizer2|dreg[0] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.041 ; 0.316 ; +; 0.191 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|shadow_irf_reg[1][3] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[1][3] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.041 ; 0.316 ; +; 0.191 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|tms_cnt[0] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|tms_cnt[1] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.041 ; 0.316 ; +; 0.191 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|tms_cnt[1] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|tms_cnt[2] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.041 ; 0.316 ; +; 0.192 ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[6] ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|wdata[2] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.041 ; 0.317 ; +; 0.192 ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[12] ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[11] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.042 ; 0.318 ; +; 0.192 ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[8] ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[7] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.041 ; 0.317 ; +; 0.193 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|jtag_ir_reg[4] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|jtag_ir_reg[3] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.041 ; 0.318 ; +; 0.193 ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[13] ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[12] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.042 ; 0.319 ; +; 0.193 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|identity_contrib_shift_reg[1] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|identity_contrib_update_reg[1] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.042 ; 0.319 ; +; 0.194 ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[7] ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|wdata[3] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.041 ; 0.319 ; +; 0.194 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|identity_contrib_shift_reg[1] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|identity_contrib_shift_reg[0] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.042 ; 0.320 ; +; 0.194 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|tms_cnt[2] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[0] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.041 ; 0.319 ; +; 0.195 ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[8] ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|wdata[4] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.041 ; 0.320 ; +; 0.195 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[5] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[6] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.041 ; 0.320 ; +; 0.196 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|jtag_ir_reg[2] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|jtag_ir_reg[1] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.041 ; 0.321 ; +; 0.197 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[5] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[8] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.041 ; 0.322 ; +; 0.197 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|jtag_ir_reg[3] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|jtag_ir_reg[2] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.041 ; 0.322 ; +; 0.198 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[5] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|reset_ena_reg ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.041 ; 0.323 ; +; 0.199 ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[26] ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[25] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.042 ; 0.325 ; +; 0.199 ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[2] ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[1] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.042 ; 0.325 ; +; 0.200 ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[1] ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[2] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.041 ; 0.325 ; +; 0.201 ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[5] ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|wdata[1] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.041 ; 0.326 ; +; 0.203 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|jtag_ir_reg[1] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|jtag_ir_reg[0] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.041 ; 0.328 ; +; 0.207 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[8] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[2] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.041 ; 0.332 ; +; 0.212 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[4] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[5] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.041 ; 0.337 ; +; 0.248 ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[3] ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[4] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.041 ; 0.373 ; +; 0.249 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_rom_sr:hub_info_reg|WORD_SR[2] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_rom_sr:hub_info_reg|WORD_SR[1] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.041 ; 0.374 ; +; 0.250 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[6] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[7] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.041 ; 0.375 ; +; 0.252 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[14] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[15] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.041 ; 0.377 ; +; 0.252 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|jtag_ir_reg[0] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|virtual_dr_scan_reg ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.041 ; 0.377 ; +; 0.253 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|jtag_ir_reg[0] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|virtual_ir_scan_reg ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.041 ; 0.378 ; +; 0.256 ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|ir_out[0] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[0] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.042 ; 0.382 ; +; 0.257 ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[4] ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[3] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.041 ; 0.382 ; +; 0.260 ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[23] ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[22] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.041 ; 0.385 ; +; 0.261 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[2] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[3] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.041 ; 0.386 ; +; 0.261 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|jtag_ir_reg[8] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|jtag_ir_reg[7] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.041 ; 0.386 ; +; 0.261 ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[22] ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[21] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.041 ; 0.386 ; +; 0.261 ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[0] ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[1] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.041 ; 0.386 ; +; 0.261 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|identity_contrib_shift_reg[0] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|identity_contrib_update_reg[0] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.042 ; 0.387 ; +; 0.262 ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[20] ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[19] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.041 ; 0.387 ; +; 0.262 ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[36] ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[35] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.042 ; 0.388 ; +; 0.262 ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|altera_std_synchronizer:the_altera_std_synchronizer1|dreg[0] ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|ir_out[1] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.042 ; 0.388 ; +; 0.262 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|design_hash_reg[1] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|design_hash_reg[0] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.041 ; 0.387 ; +; 0.263 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[2] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[9] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.042 ; 0.389 ; +; 0.263 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|jtag_ir_reg[5] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|jtag_ir_reg[4] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.041 ; 0.388 ; +; 0.264 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|design_hash_reg[3] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|design_hash_reg[2] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.041 ; 0.389 ; +; 0.264 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|design_hash_reg[2] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|design_hash_reg[1] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.041 ; 0.389 ; +; 0.265 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[7] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[8] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.041 ; 0.390 ; +; 0.265 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[7] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|reset_ena_reg ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.041 ; 0.390 ; +; 0.266 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|jtag_ir_reg[6] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|jtag_ir_reg[5] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.041 ; 0.391 ; +; 0.266 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|identity_contrib_shift_reg[3] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|identity_contrib_update_reg[3] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.042 ; 0.392 ; +; 0.267 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|identity_contrib_shift_reg[3] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|identity_contrib_shift_reg[2] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.042 ; 0.393 ; +; 0.268 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[7] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[4] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.041 ; 0.393 ; +; 0.269 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|jtag_ir_reg[7] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|jtag_ir_reg[6] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.041 ; 0.394 ; +; 0.273 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[3] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[2] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.042 ; 0.399 ; +; 0.276 ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[9] ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[9] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.041 ; 0.401 ; +; 0.278 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[0] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[1][0] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.042 ; 0.404 ; +; 0.278 ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[9] ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[3] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.041 ; 0.403 ; +; 0.279 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[2] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|shadow_irf_reg[1][2] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.042 ; 0.405 ; +; 0.279 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[2] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[1][2] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.042 ; 0.405 ; +; 0.279 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[3] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[5] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.041 ; 0.404 ; +; 0.280 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[1] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|shadow_irf_reg[1][1] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.042 ; 0.406 ; +; 0.280 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[1] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[1][1] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.042 ; 0.406 ; +; 0.280 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[4] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[3] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.042 ; 0.406 ; ++-------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+---------------------+--------------+------------+------------+ + + ++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Fast 1200mV 0C Model Recovery: 'altera_reserved_tck' ; ++--------+--------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------+---------------------+---------------------+--------------+------------+------------+ +; Slack ; From Node ; To Node ; Launch Clock ; Latch Clock ; Relationship ; Clock Skew ; Data Delay ; ++--------+--------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------+---------------------+---------------------+--------------+------------+------------+ +; 49.194 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|jupdate ; altera_reserved_tck ; altera_reserved_tck ; 50.000 ; 0.446 ; 1.259 ; +; 49.350 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|tdo~reg0 ; altera_reserved_tck ; altera_reserved_tck ; 50.000 ; 0.448 ; 1.105 ; +; 49.484 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[8] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|tdo ; altera_reserved_tck ; altera_reserved_tck ; 50.000 ; 0.448 ; 0.971 ; +; 98.666 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[2] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.041 ; 1.300 ; +; 98.666 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[3] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.041 ; 1.300 ; +; 98.666 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[4] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.041 ; 1.300 ; +; 98.666 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[5] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.041 ; 1.300 ; +; 98.666 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[6] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.041 ; 1.300 ; +; 98.666 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[7] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.041 ; 1.300 ; +; 98.666 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[8] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.041 ; 1.300 ; +; 98.666 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[0] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.041 ; 1.300 ; +; 98.666 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[1] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.041 ; 1.300 ; +; 98.680 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|write_valid ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.036 ; 1.291 ; +; 98.680 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|read_req ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.036 ; 1.291 ; +; 98.680 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|read ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.036 ; 1.291 ; +; 98.684 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|write ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.041 ; 1.282 ; +; 98.684 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|wdata[7] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.041 ; 1.282 ; +; 98.684 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|wdata[6] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.041 ; 1.282 ; +; 98.684 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[8] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.041 ; 1.282 ; +; 98.684 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[7] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.041 ; 1.282 ; +; 98.684 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[6] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.041 ; 1.282 ; +; 98.684 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[5] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.041 ; 1.282 ; +; 98.684 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|wdata[5] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.041 ; 1.282 ; +; 98.684 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|wdata[4] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.041 ; 1.282 ; +; 98.684 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|wdata[3] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.041 ; 1.282 ; +; 98.684 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|wdata[2] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.041 ; 1.282 ; +; 98.684 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|wdata[1] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.041 ; 1.282 ; +; 98.705 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|state ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.036 ; 1.266 ; +; 98.747 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|shadow_irf_reg[1][1] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.034 ; 1.226 ; +; 98.747 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[1][1] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.034 ; 1.226 ; +; 98.747 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|shadow_irf_reg[1][0] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.034 ; 1.226 ; +; 98.747 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[1][0] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.034 ; 1.226 ; +; 98.747 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|shadow_irf_reg[1][2] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.034 ; 1.226 ; +; 98.747 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[1][2] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.034 ; 1.226 ; +; 98.747 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|shadow_irf_reg[1][3] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.034 ; 1.226 ; +; 98.747 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[1][3] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.034 ; 1.226 ; +; 98.747 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|shadow_irf_reg[1][4] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.034 ; 1.226 ; +; 98.747 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[1][4] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.034 ; 1.226 ; +; 98.751 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[0] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.035 ; 1.221 ; +; 98.751 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|hub_mode_reg[0] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.035 ; 1.221 ; +; 98.751 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[4] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.035 ; 1.221 ; +; 98.751 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[3] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.035 ; 1.221 ; +; 98.751 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[2] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.035 ; 1.221 ; +; 98.751 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[1] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.035 ; 1.221 ; +; 98.831 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[9] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.038 ; 1.138 ; +; 98.831 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[10] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.038 ; 1.138 ; +; 98.831 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|write_stalled ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.038 ; 1.138 ; +; 98.831 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[4] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.038 ; 1.138 ; +; 98.831 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[3] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.038 ; 1.138 ; +; 98.831 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[2] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.038 ; 1.138 ; +; 98.831 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[1] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.038 ; 1.138 ; +; 98.831 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[0] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.038 ; 1.138 ; +; 98.831 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[9] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.038 ; 1.138 ; +; 98.831 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|wdata[0] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.038 ; 1.138 ; +; 98.864 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|tck_t_dav ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.038 ; 1.105 ; +; 98.864 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|user_saw_rvalid ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.038 ; 1.105 ; +; 99.001 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|virtual_ir_scan_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|hub_mode_reg[2] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.041 ; 0.965 ; +; 99.039 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[0] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|jtag_ir_reg[9] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.041 ; 0.927 ; +; 99.039 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[0] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|jtag_ir_reg[8] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.041 ; 0.927 ; +; 99.039 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[0] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|jtag_ir_reg[7] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.041 ; 0.927 ; +; 99.039 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[0] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|jtag_ir_reg[6] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.041 ; 0.927 ; +; 99.039 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[0] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|jtag_ir_reg[5] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.041 ; 0.927 ; +; 99.039 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[0] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|jtag_ir_reg[4] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.041 ; 0.927 ; +; 99.039 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[0] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|jtag_ir_reg[3] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.041 ; 0.927 ; +; 99.039 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[0] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|jtag_ir_reg[2] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.041 ; 0.927 ; +; 99.039 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[0] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|jtag_ir_reg[1] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.041 ; 0.927 ; +; 99.039 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[0] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|jtag_ir_reg[0] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.041 ; 0.927 ; +; 99.039 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[0] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|virtual_dr_scan_reg ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.041 ; 0.927 ; +; 99.039 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[0] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|virtual_ir_scan_reg ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.041 ; 0.927 ; +; 99.050 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[5] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.038 ; 0.919 ; +; 99.050 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|hub_mode_reg[1] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.038 ; 0.919 ; +; 99.050 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[6] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.038 ; 0.919 ; +; 99.070 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|node_ena[1]~reg0 ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.041 ; 0.896 ; +; 99.070 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|node_ena[2]~reg0 ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.041 ; 0.896 ; +; 99.081 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|shadow_irf_reg[2][0] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.040 ; 0.886 ; +; 99.081 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[2][0] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.040 ; 0.886 ; +; 99.081 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|shadow_irf_reg[2][1] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.040 ; 0.886 ; +; 99.081 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[2][1] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.040 ; 0.886 ; +; 99.081 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|shadow_irf_reg[2][2] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.040 ; 0.886 ; +; 99.081 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[2][2] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.040 ; 0.886 ; +; 99.081 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|shadow_irf_reg[2][3] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.040 ; 0.886 ; +; 99.081 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[2][3] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.040 ; 0.886 ; +; 99.081 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|shadow_irf_reg[2][4] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.040 ; 0.886 ; +; 99.081 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[2][4] ; altera_reserved_tck ; altera_reserved_tck ; 100.000 ; -0.040 ; 0.886 ; ++--------+--------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------+---------------------+---------------------+--------------+------------+------------+ + + ++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Fast 1200mV 0C Model Removal: 'altera_reserved_tck' ; ++--------+--------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------+---------------------+---------------------+--------------+------------+------------+ +; Slack ; From Node ; To Node ; Launch Clock ; Latch Clock ; Relationship ; Clock Skew ; Data Delay ; ++--------+--------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------+---------------------+---------------------+--------------+------------+------------+ +; 0.657 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|shadow_irf_reg[2][0] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.042 ; 0.783 ; +; 0.657 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[2][0] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.042 ; 0.783 ; +; 0.657 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|shadow_irf_reg[2][1] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.042 ; 0.783 ; +; 0.657 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[2][1] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.042 ; 0.783 ; +; 0.657 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|shadow_irf_reg[2][2] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.042 ; 0.783 ; +; 0.657 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[2][2] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.042 ; 0.783 ; +; 0.657 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|shadow_irf_reg[2][3] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.042 ; 0.783 ; +; 0.657 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[2][3] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.042 ; 0.783 ; +; 0.657 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|shadow_irf_reg[2][4] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.042 ; 0.783 ; +; 0.657 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[2][4] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.042 ; 0.783 ; +; 0.664 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|node_ena[1]~reg0 ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.042 ; 0.790 ; +; 0.664 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|node_ena[2]~reg0 ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.042 ; 0.790 ; +; 0.670 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[0] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|jtag_ir_reg[9] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.041 ; 0.795 ; +; 0.670 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[0] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|jtag_ir_reg[8] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.041 ; 0.795 ; +; 0.670 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[0] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|jtag_ir_reg[7] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.041 ; 0.795 ; +; 0.670 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[0] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|jtag_ir_reg[6] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.041 ; 0.795 ; +; 0.670 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[0] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|jtag_ir_reg[5] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.041 ; 0.795 ; +; 0.670 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[0] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|jtag_ir_reg[4] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.041 ; 0.795 ; +; 0.670 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[0] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|jtag_ir_reg[3] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.041 ; 0.795 ; +; 0.670 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[0] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|jtag_ir_reg[2] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.041 ; 0.795 ; +; 0.670 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[0] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|jtag_ir_reg[1] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.041 ; 0.795 ; +; 0.670 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[0] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|jtag_ir_reg[0] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.041 ; 0.795 ; +; 0.670 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[0] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|virtual_dr_scan_reg ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.041 ; 0.795 ; +; 0.670 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[0] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|virtual_ir_scan_reg ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.041 ; 0.795 ; +; 0.683 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[5] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.044 ; 0.811 ; +; 0.683 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|hub_mode_reg[1] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.044 ; 0.811 ; +; 0.683 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[6] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.044 ; 0.811 ; +; 0.687 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|virtual_ir_scan_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|hub_mode_reg[2] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.041 ; 0.812 ; +; 0.835 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|tck_t_dav ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.044 ; 0.963 ; +; 0.835 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|user_saw_rvalid ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.044 ; 0.963 ; +; 0.869 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[9] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.044 ; 0.997 ; +; 0.869 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[10] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.044 ; 0.997 ; +; 0.869 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|write_stalled ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.044 ; 0.997 ; +; 0.869 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[4] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.044 ; 0.997 ; +; 0.869 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[3] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.044 ; 0.997 ; +; 0.869 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[2] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.044 ; 0.997 ; +; 0.869 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[1] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.044 ; 0.997 ; +; 0.869 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[0] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.044 ; 0.997 ; +; 0.869 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[9] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.044 ; 0.997 ; +; 0.869 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|wdata[0] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.044 ; 0.997 ; +; 0.933 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[0] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.048 ; 1.065 ; +; 0.933 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|hub_mode_reg[0] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.048 ; 1.065 ; +; 0.933 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[4] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.048 ; 1.065 ; +; 0.933 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[3] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.048 ; 1.065 ; +; 0.933 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[2] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.048 ; 1.065 ; +; 0.933 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[1] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.048 ; 1.065 ; +; 0.941 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|shadow_irf_reg[1][1] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.048 ; 1.073 ; +; 0.941 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[1][1] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.048 ; 1.073 ; +; 0.941 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|shadow_irf_reg[1][0] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.048 ; 1.073 ; +; 0.941 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[1][0] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.048 ; 1.073 ; +; 0.941 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|shadow_irf_reg[1][2] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.048 ; 1.073 ; +; 0.941 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[1][2] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.048 ; 1.073 ; +; 0.941 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|shadow_irf_reg[1][3] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.048 ; 1.073 ; +; 0.941 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[1][3] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.048 ; 1.073 ; +; 0.941 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|shadow_irf_reg[1][4] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.048 ; 1.073 ; +; 0.941 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irf_reg[1][4] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.048 ; 1.073 ; +; 0.969 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|state ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.047 ; 1.100 ; +; 0.997 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|write ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.041 ; 1.122 ; +; 0.997 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|wdata[7] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.041 ; 1.122 ; +; 0.997 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|wdata[6] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.041 ; 1.122 ; +; 0.997 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[8] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.041 ; 1.122 ; +; 0.997 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[7] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.041 ; 1.122 ; +; 0.997 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[6] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.041 ; 1.122 ; +; 0.997 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[5] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.041 ; 1.122 ; +; 0.997 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|wdata[5] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.041 ; 1.122 ; +; 0.997 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|wdata[4] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.041 ; 1.122 ; +; 0.997 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|wdata[3] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.041 ; 1.122 ; +; 0.997 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|wdata[2] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.041 ; 1.122 ; +; 0.997 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|wdata[1] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.041 ; 1.122 ; +; 0.999 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|write_valid ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.047 ; 1.130 ; +; 0.999 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|read_req ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.047 ; 1.130 ; +; 0.999 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|read ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.047 ; 1.130 ; +; 1.004 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[2] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.041 ; 1.129 ; +; 1.004 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[3] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.041 ; 1.129 ; +; 1.004 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[4] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.041 ; 1.129 ; +; 1.004 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[5] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.041 ; 1.129 ; +; 1.004 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[6] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.041 ; 1.129 ; +; 1.004 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[7] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.041 ; 1.129 ; +; 1.004 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[8] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.041 ; 1.129 ; +; 1.004 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[0] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.041 ; 1.129 ; +; 1.004 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[1] ; altera_reserved_tck ; altera_reserved_tck ; 0.000 ; 0.041 ; 1.129 ; +; 50.227 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[8] ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|tdo ; altera_reserved_tck ; altera_reserved_tck ; -50.000 ; 0.535 ; 0.846 ; +; 50.344 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|tdo~reg0 ; altera_reserved_tck ; altera_reserved_tck ; -50.000 ; 0.535 ; 0.963 ; +; 50.490 ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|jupdate ; altera_reserved_tck ; altera_reserved_tck ; -50.000 ; 0.533 ; 1.107 ; ++--------+--------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------+---------------------+---------------------+--------------+------------+------------+ + + ++------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Fast 1200mV 0C Model Minimum Pulse Width: 'altera_reserved_tck' ; ++--------+--------------+----------------+------------------+---------------------+------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Slack ; Actual Width ; Required Width ; Type ; Clock ; Clock Edge ; Target ; ++--------+--------------+----------------+------------------+---------------------+------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; 49.301 ; 49.517 ; 0.216 ; High Pulse Width ; altera_reserved_tck ; Fall ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|tdo~reg0 ; +; 49.301 ; 49.517 ; 0.216 ; High Pulse Width ; altera_reserved_tck ; Fall ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|tdo ; +; 49.303 ; 49.519 ; 0.216 ; High Pulse Width ; altera_reserved_tck ; Fall ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|jupdate ; +; 49.344 ; 49.528 ; 0.184 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[1] ; +; 49.344 ; 49.528 ; 0.184 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[24] ; +; 49.344 ; 49.528 ; 0.184 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[25] ; +; 49.344 ; 49.528 ; 0.184 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[26] ; +; 49.344 ; 49.528 ; 0.184 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[27] ; +; 49.344 ; 49.528 ; 0.184 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[28] ; +; 49.344 ; 49.528 ; 0.184 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[29] ; +; 49.344 ; 49.528 ; 0.184 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[2] ; +; 49.344 ; 49.528 ; 0.184 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[30] ; +; 49.344 ; 49.528 ; 0.184 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[32] ; +; 49.344 ; 49.528 ; 0.184 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[33] ; +; 49.344 ; 49.528 ; 0.184 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[34] ; +; 49.344 ; 49.528 ; 0.184 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[3] ; +; 49.344 ; 49.528 ; 0.184 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[4] ; +; 49.344 ; 49.528 ; 0.184 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[5] ; +; 49.344 ; 49.528 ; 0.184 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[6] ; +; 49.344 ; 49.528 ; 0.184 ; Low Pulse Width ; altera_reserved_tck ; Rise ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|hub_minor_ver_reg[0] ; +; 49.344 ; 49.528 ; 0.184 ; Low Pulse Width ; altera_reserved_tck ; Rise ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|hub_minor_ver_reg[1] ; +; 49.344 ; 49.528 ; 0.184 ; Low Pulse Width ; altera_reserved_tck ; Rise ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|hub_minor_ver_reg[2] ; +; 49.344 ; 49.528 ; 0.184 ; Low Pulse Width ; altera_reserved_tck ; Rise ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|hub_minor_ver_reg[3] ; +; 49.344 ; 49.528 ; 0.184 ; Low Pulse Width ; altera_reserved_tck ; Rise ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|mixer_addr_reg[0] ; +; 49.344 ; 49.528 ; 0.184 ; Low Pulse Width ; altera_reserved_tck ; Rise ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|mixer_addr_reg[1] ; +; 49.344 ; 49.528 ; 0.184 ; Low Pulse Width ; altera_reserved_tck ; Rise ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|mixer_addr_reg[2] ; +; 49.344 ; 49.528 ; 0.184 ; Low Pulse Width ; altera_reserved_tck ; Rise ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|mixer_addr_reg[3] ; +; 49.344 ; 49.528 ; 0.184 ; Low Pulse Width ; altera_reserved_tck ; Rise ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|mixer_addr_reg[4] ; +; 49.345 ; 49.529 ; 0.184 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|tck_t_dav ; +; 49.345 ; 49.529 ; 0.184 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[5] ; +; 49.345 ; 49.529 ; 0.184 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[6] ; +; 49.345 ; 49.529 ; 0.184 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[7] ; +; 49.345 ; 49.529 ; 0.184 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[8] ; +; 49.345 ; 49.529 ; 0.184 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|user_saw_rvalid ; +; 49.345 ; 49.529 ; 0.184 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|wdata[1] ; +; 49.345 ; 49.529 ; 0.184 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|wdata[2] ; +; 49.345 ; 49.529 ; 0.184 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|wdata[3] ; +; 49.345 ; 49.529 ; 0.184 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|wdata[4] ; +; 49.345 ; 49.529 ; 0.184 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|wdata[5] ; +; 49.345 ; 49.529 ; 0.184 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|wdata[6] ; +; 49.345 ; 49.529 ; 0.184 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|wdata[7] ; +; 49.345 ; 49.529 ; 0.184 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|write ; +; 49.345 ; 49.529 ; 0.184 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[16] ; +; 49.345 ; 49.529 ; 0.184 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[17] ; +; 49.345 ; 49.529 ; 0.184 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[18] ; +; 49.345 ; 49.529 ; 0.184 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[19] ; +; 49.345 ; 49.529 ; 0.184 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[20] ; +; 49.345 ; 49.529 ; 0.184 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[21] ; +; 49.345 ; 49.529 ; 0.184 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[22] ; +; 49.345 ; 49.529 ; 0.184 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[23] ; +; 49.345 ; 49.529 ; 0.184 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[31] ; +; 49.345 ; 49.529 ; 0.184 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|sr[7] ; +; 49.345 ; 49.529 ; 0.184 ; Low Pulse Width ; altera_reserved_tck ; Rise ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|clr_reg ; +; 49.345 ; 49.529 ; 0.184 ; Low Pulse Width ; altera_reserved_tck ; Rise ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|design_hash_reg[0] ; +; 49.345 ; 49.529 ; 0.184 ; Low Pulse Width ; altera_reserved_tck ; Rise ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|design_hash_reg[1] ; +; 49.345 ; 49.529 ; 0.184 ; Low Pulse Width ; altera_reserved_tck ; Rise ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|design_hash_reg[2] ; +; 49.345 ; 49.529 ; 0.184 ; Low Pulse Width ; altera_reserved_tck ; Rise ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|design_hash_reg[3] ; +; 49.345 ; 49.529 ; 0.184 ; Low Pulse Width ; altera_reserved_tck ; Rise ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|hub_mode_reg[1] ; +; 49.345 ; 49.529 ; 0.184 ; Low Pulse Width ; altera_reserved_tck ; Rise ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|hub_mode_reg[2] ; +; 49.345 ; 49.529 ; 0.184 ; Low Pulse Width ; altera_reserved_tck ; Rise ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|identity_contrib_shift_reg[0] ; +; 49.345 ; 49.529 ; 0.184 ; Low Pulse Width ; altera_reserved_tck ; Rise ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|identity_contrib_shift_reg[1] ; +; 49.345 ; 49.529 ; 0.184 ; Low Pulse Width ; altera_reserved_tck ; Rise ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|identity_contrib_shift_reg[2] ; +; 49.345 ; 49.529 ; 0.184 ; Low Pulse Width ; altera_reserved_tck ; Rise ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|identity_contrib_shift_reg[3] ; +; 49.345 ; 49.529 ; 0.184 ; Low Pulse Width ; altera_reserved_tck ; Rise ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|identity_contrib_update_reg[0] ; +; 49.345 ; 49.529 ; 0.184 ; Low Pulse Width ; altera_reserved_tck ; Rise ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|identity_contrib_update_reg[1] ; +; 49.345 ; 49.529 ; 0.184 ; Low Pulse Width ; altera_reserved_tck ; Rise ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|identity_contrib_update_reg[2] ; +; 49.345 ; 49.529 ; 0.184 ; Low Pulse Width ; altera_reserved_tck ; Rise ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|identity_contrib_update_reg[3] ; +; 49.345 ; 49.529 ; 0.184 ; Low Pulse Width ; altera_reserved_tck ; Rise ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[5] ; +; 49.345 ; 49.529 ; 0.184 ; Low Pulse Width ; altera_reserved_tck ; Rise ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|irsr_reg[6] ; +; 49.345 ; 49.529 ; 0.184 ; Low Pulse Width ; altera_reserved_tck ; Rise ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|node_ena[1]~reg0 ; +; 49.345 ; 49.529 ; 0.184 ; Low Pulse Width ; altera_reserved_tck ; Rise ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|node_ena[2]~reg0 ; +; 49.345 ; 49.529 ; 0.184 ; Low Pulse Width ; altera_reserved_tck ; Rise ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|reset_ena_reg ; +; 49.345 ; 49.529 ; 0.184 ; Low Pulse Width ; altera_reserved_tck ; Rise ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[11] ; +; 49.345 ; 49.529 ; 0.184 ; Low Pulse Width ; altera_reserved_tck ; Rise ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[12] ; +; 49.345 ; 49.529 ; 0.184 ; Low Pulse Width ; altera_reserved_tck ; Rise ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[13] ; +; 49.345 ; 49.529 ; 0.184 ; Low Pulse Width ; altera_reserved_tck ; Rise ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[14] ; +; 49.345 ; 49.529 ; 0.184 ; Low Pulse Width ; altera_reserved_tck ; Rise ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[15] ; +; 49.345 ; 49.529 ; 0.184 ; Low Pulse Width ; altera_reserved_tck ; Rise ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[1] ; +; 49.345 ; 49.529 ; 0.184 ; Low Pulse Width ; altera_reserved_tck ; Rise ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[2] ; +; 49.345 ; 49.529 ; 0.184 ; Low Pulse Width ; altera_reserved_tck ; Rise ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[3] ; +; 49.345 ; 49.529 ; 0.184 ; Low Pulse Width ; altera_reserved_tck ; Rise ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[4] ; +; 49.345 ; 49.529 ; 0.184 ; Low Pulse Width ; altera_reserved_tck ; Rise ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[5] ; +; 49.345 ; 49.529 ; 0.184 ; Low Pulse Width ; altera_reserved_tck ; Rise ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[6] ; +; 49.345 ; 49.529 ; 0.184 ; Low Pulse Width ; altera_reserved_tck ; Rise ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[7] ; +; 49.345 ; 49.529 ; 0.184 ; Low Pulse Width ; altera_reserved_tck ; Rise ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[8] ; +; 49.345 ; 49.529 ; 0.184 ; Low Pulse Width ; altera_reserved_tck ; Rise ; sld_hub:auto_hub|sld_jtag_hub:\jtag_hub_gen:sld_jtag_hub_inst|sld_shadow_jsm:shadow_jsm|state[9] ; +; 49.346 ; 49.530 ; 0.184 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[0] ; +; 49.346 ; 49.530 ; 0.184 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[1] ; +; 49.346 ; 49.530 ; 0.184 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[2] ; +; 49.346 ; 49.530 ; 0.184 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[3] ; +; 49.346 ; 49.530 ; 0.184 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[4] ; +; 49.346 ; 49.530 ; 0.184 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[5] ; +; 49.346 ; 49.530 ; 0.184 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[6] ; +; 49.346 ; 49.530 ; 0.184 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[7] ; +; 49.346 ; 49.530 ; 0.184 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[8] ; +; 49.346 ; 49.530 ; 0.184 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|count[9] ; +; 49.346 ; 49.530 ; 0.184 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|read ; +; 49.346 ; 49.530 ; 0.184 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|read_req ; +; 49.346 ; 49.530 ; 0.184 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|state ; +; 49.346 ; 49.530 ; 0.184 ; Low Pulse Width ; altera_reserved_tck ; Rise ; nios_system:NiosII|nios_system_jtag_uart:jtag_uart|alt_jtag_atlantic:nios_system_jtag_uart_alt_jtag_atlantic|td_shift[0] ; ++--------+--------------+----------------+------------------+---------------------+------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + + ++----------------------------------------------------------------------------------------------+ +; Setup Times ; ++---------------------+---------------------+-------+-------+------------+---------------------+ +; Data Port ; Clock Port ; Rise ; Fall ; Clock Edge ; Clock Reference ; ++---------------------+---------------------+-------+-------+------------+---------------------+ +; altera_reserved_tdi ; altera_reserved_tck ; 2.759 ; 3.054 ; Rise ; altera_reserved_tck ; +; altera_reserved_tms ; altera_reserved_tck ; 3.650 ; 4.067 ; Rise ; altera_reserved_tck ; ++---------------------+---------------------+-------+-------+------------+---------------------+ + + ++------------------------------------------------------------------------------------------------+ +; Hold Times ; ++---------------------+---------------------+--------+--------+------------+---------------------+ +; Data Port ; Clock Port ; Rise ; Fall ; Clock Edge ; Clock Reference ; ++---------------------+---------------------+--------+--------+------------+---------------------+ +; altera_reserved_tdi ; altera_reserved_tck ; -0.365 ; -0.660 ; Rise ; altera_reserved_tck ; +; altera_reserved_tms ; altera_reserved_tck ; -0.709 ; -1.040 ; Rise ; altera_reserved_tck ; ++---------------------+---------------------+--------+--------+------------+---------------------+ + + ++----------------------------------------------------------------------------------------------+ +; Clock to Output Times ; ++---------------------+---------------------+-------+-------+------------+---------------------+ +; Data Port ; Clock Port ; Rise ; Fall ; Clock Edge ; Clock Reference ; ++---------------------+---------------------+-------+-------+------------+---------------------+ +; altera_reserved_tdo ; altera_reserved_tck ; 8.450 ; 9.059 ; Fall ; altera_reserved_tck ; ++---------------------+---------------------+-------+-------+------------+---------------------+ + + ++----------------------------------------------------------------------------------------------+ +; Minimum Clock to Output Times ; ++---------------------+---------------------+-------+-------+------------+---------------------+ +; Data Port ; Clock Port ; Rise ; Fall ; Clock Edge ; Clock Reference ; ++---------------------+---------------------+-------+-------+------------+---------------------+ +; altera_reserved_tdo ; altera_reserved_tck ; 7.186 ; 7.788 ; Fall ; altera_reserved_tck ; ++---------------------+---------------------+-------+-------+------------+---------------------+ + + +---------------- +; MTBF Summary ; +---------------- +Typical MTBF of Design is 1e+09 years or 3.15e+16 seconds. + +Number of Synchronizer Chains Found: 2 +Shortest Synchronizer Chain: 2 Registers +Fraction of Chains for which MTBFs Could Not be Calculated: 0.000 +Worst Case Available Settling Time: 198.621 ns + +Typical MTBF values are calculated based on the nominal silicon characteristics, at nominal operating conditions. + - Under typical conditions, an increase of 100ps in available settling time will increase MTBF values by a factor of 10.8 + + + ++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Synchronizer Summary ; ++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------+-------------------------+ +; Source Node ; Synchronization Node ; Typical MTBF (Years) ; Included in Design MTBF ; ++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------+-------------------------+ +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|hbreak_enabled ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|altera_std_synchronizer:the_altera_std_synchronizer1|din_s1 ; Greater than 1 Billion ; Yes ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_oci_debug:the_nios_system_nios2_processor_nios2_oci_debug|monitor_ready ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|altera_std_synchronizer:the_altera_std_synchronizer2|din_s1 ; Greater than 1 Billion ; Yes ; ++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------+-------------------------+ + + +Synchronizer Chain #1: Typical MTBF is Greater than 1 Billion Years +=============================================================================== ++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Chain Summary ; ++-------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Property ; Value ; ++-------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Source Node ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|hbreak_enabled ; +; Synchronization Node ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|altera_std_synchronizer:the_altera_std_synchronizer1|din_s1 ; +; Typical MTBF (years) ; Greater than 1 Billion ; +; Included in Design MTBF ; Yes ; ++-------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + ++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Statistics ; ++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------+--------------+------------------+--------------+ +; Property ; Value ; Clock Period ; Active Edge Rate ; Output Slack ; ++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------+--------------+------------------+--------------+ +; Method of Synchronizer Identification ; User Specified ; ; ; ; +; Typical MTBF (years) ; Greater than 1 Billion ; ; ; ; +; Number of Synchronization Registers in Chain ; 2 ; ; ; ; +; Available Settling Time (ns) ; 198.621 ; ; ; ; +; Data Toggle Rate Used in MTBF Calculation (millions of transitions / sec) ; 1.25 ; ; ; ; +; Source Clock ; ; ; ; ; +; Unknown ; ; ; ; ; +; Synchronization Clock ; ; ; ; ; +; altera_reserved_tck ; ; 100.000 ; 10.0 MHz ; ; +; Asynchronous Source ; ; ; ; ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|hbreak_enabled ; ; ; ; ; +; Synchronization Registers ; ; ; ; ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|altera_std_synchronizer:the_altera_std_synchronizer1|din_s1 ; ; ; ; 99.593 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|altera_std_synchronizer:the_altera_std_synchronizer1|dreg[0] ; ; ; ; 99.028 ; ++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------+--------------+------------------+--------------+ + + + +Synchronizer Chain #2: Typical MTBF is Greater than 1 Billion Years +=============================================================================== ++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Chain Summary ; ++-------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Property ; Value ; ++-------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Source Node ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_oci_debug:the_nios_system_nios2_processor_nios2_oci_debug|monitor_ready ; +; Synchronization Node ; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|altera_std_synchronizer:the_altera_std_synchronizer2|din_s1 ; +; Typical MTBF (years) ; Greater than 1 Billion ; +; Included in Design MTBF ; Yes ; ++-------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + ++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Statistics ; ++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------+--------------+------------------+--------------+ +; Property ; Value ; Clock Period ; Active Edge Rate ; Output Slack ; ++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------+--------------+------------------+--------------+ +; Method of Synchronizer Identification ; User Specified ; ; ; ; +; Typical MTBF (years) ; Greater than 1 Billion ; ; ; ; +; Number of Synchronization Registers in Chain ; 2 ; ; ; ; +; Available Settling Time (ns) ; 198.717 ; ; ; ; +; Data Toggle Rate Used in MTBF Calculation (millions of transitions / sec) ; 1.25 ; ; ; ; +; Source Clock ; ; ; ; ; +; Unknown ; ; ; ; ; +; Synchronization Clock ; ; ; ; ; +; altera_reserved_tck ; ; 100.000 ; 10.0 MHz ; ; +; Asynchronous Source ; ; ; ; ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_nios2_oci_debug:the_nios_system_nios2_processor_nios2_oci_debug|monitor_ready ; ; ; ; ; +; Synchronization Registers ; ; ; ; ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|altera_std_synchronizer:the_altera_std_synchronizer2|din_s1 ; ; ; ; 99.591 ; +; nios_system:NiosII|nios_system_nios2_processor:nios2_processor|nios_system_nios2_processor_nios2_oci:the_nios_system_nios2_processor_nios2_oci|nios_system_nios2_processor_jtag_debug_module_wrapper:the_nios_system_nios2_processor_jtag_debug_module_wrapper|nios_system_nios2_processor_jtag_debug_module_tck:the_nios_system_nios2_processor_jtag_debug_module_tck|altera_std_synchronizer:the_altera_std_synchronizer2|dreg[0] ; ; ; ; 99.126 ; ++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------+--------------+------------------+--------------+ + + + ++----------------------------------------------------------------------------------+ +; Multicorner Timing Analysis Summary ; ++----------------------+--------+-------+----------+---------+---------------------+ +; Clock ; Setup ; Hold ; Recovery ; Removal ; Minimum Pulse Width ; ++----------------------+--------+-------+----------+---------+---------------------+ +; Worst-case Slack ; 45.777 ; 0.180 ; 47.734 ; 0.657 ; 49.301 ; +; altera_reserved_tck ; 45.777 ; 0.180 ; 47.734 ; 0.657 ; 49.301 ; +; Design-wide TNS ; 0.0 ; 0.0 ; 0.0 ; 0.0 ; 0.0 ; +; altera_reserved_tck ; 0.000 ; 0.000 ; 0.000 ; 0.000 ; 0.000 ; ++----------------------+--------+-------+----------+---------+---------------------+ + + ++----------------------------------------------------------------------------------------------+ +; Setup Times ; ++---------------------+---------------------+-------+-------+------------+---------------------+ +; Data Port ; Clock Port ; Rise ; Fall ; Clock Edge ; Clock Reference ; ++---------------------+---------------------+-------+-------+------------+---------------------+ +; altera_reserved_tdi ; altera_reserved_tck ; 5.966 ; 6.153 ; Rise ; altera_reserved_tck ; +; altera_reserved_tms ; altera_reserved_tck ; 8.682 ; 8.853 ; Rise ; altera_reserved_tck ; ++---------------------+---------------------+-------+-------+------------+---------------------+ + + ++------------------------------------------------------------------------------------------------+ +; Hold Times ; ++---------------------+---------------------+--------+--------+------------+---------------------+ +; Data Port ; Clock Port ; Rise ; Fall ; Clock Edge ; Clock Reference ; ++---------------------+---------------------+--------+--------+------------+---------------------+ +; altera_reserved_tdi ; altera_reserved_tck ; -0.365 ; -0.660 ; Rise ; altera_reserved_tck ; +; altera_reserved_tms ; altera_reserved_tck ; -0.709 ; -1.040 ; Rise ; altera_reserved_tck ; ++---------------------+---------------------+--------+--------+------------+---------------------+ + + ++------------------------------------------------------------------------------------------------+ +; Clock to Output Times ; ++---------------------+---------------------+--------+--------+------------+---------------------+ +; Data Port ; Clock Port ; Rise ; Fall ; Clock Edge ; Clock Reference ; ++---------------------+---------------------+--------+--------+------------+---------------------+ +; altera_reserved_tdo ; altera_reserved_tck ; 16.072 ; 16.482 ; Fall ; altera_reserved_tck ; ++---------------------+---------------------+--------+--------+------------+---------------------+ + + ++----------------------------------------------------------------------------------------------+ +; Minimum Clock to Output Times ; ++---------------------+---------------------+-------+-------+------------+---------------------+ +; Data Port ; Clock Port ; Rise ; Fall ; Clock Edge ; Clock Reference ; ++---------------------+---------------------+-------+-------+------------+---------------------+ +; altera_reserved_tdo ; altera_reserved_tck ; 7.186 ; 7.788 ; Fall ; altera_reserved_tck ; ++---------------------+---------------------+-------+-------+------------+---------------------+ + + ++------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Board Trace Model Assignments ; ++---------------------+--------------+-------------------+-------------------------+-------------------------+---------------+---------------------+----------------+------------------+--------+------------------+------------------------+------------------------+--------------+---------------+-----------------+-------+---------------------+--------------------+---------------+-----------------+-------------+ +; Pin ; I/O Standard ; Near Tline Length ; Near Tline L per Length ; Near Tline C per Length ; Near Series R ; Near Differential R ; Near Pull-up R ; Near Pull-down R ; Near C ; Far Tline Length ; Far Tline L per Length ; Far Tline C per Length ; Far Series R ; Far Pull-up R ; Far Pull-down R ; Far C ; Termination Voltage ; Far Differential R ; EBD File Name ; EBD Signal Name ; EBD Far-end ; ++---------------------+--------------+-------------------+-------------------------+-------------------------+---------------+---------------------+----------------+------------------+--------+------------------+------------------------+------------------------+--------------+---------------+-----------------+-------+---------------------+--------------------+---------------+-----------------+-------------+ +; LEDG[0] ; 2.5 V ; 0 in ; 0 H/in ; 0 F/in ; short ; - ; open ; open ; open ; 0 in ; 0 H/in ; 0 F/in ; short ; open ; open ; open ; 0 V ; - ; n/a ; n/a ; n/a ; +; LEDG[1] ; 2.5 V ; 0 in ; 0 H/in ; 0 F/in ; short ; - ; open ; open ; open ; 0 in ; 0 H/in ; 0 F/in ; short ; open ; open ; open ; 0 V ; - ; n/a ; n/a ; n/a ; +; LEDG[2] ; 2.5 V ; 0 in ; 0 H/in ; 0 F/in ; short ; - ; open ; open ; open ; 0 in ; 0 H/in ; 0 F/in ; short ; open ; open ; open ; 0 V ; - ; n/a ; n/a ; n/a ; +; LEDG[3] ; 2.5 V ; 0 in ; 0 H/in ; 0 F/in ; short ; - ; open ; open ; open ; 0 in ; 0 H/in ; 0 F/in ; short ; open ; open ; open ; 0 V ; - ; n/a ; n/a ; n/a ; +; LEDG[4] ; 2.5 V ; 0 in ; 0 H/in ; 0 F/in ; short ; - ; open ; open ; open ; 0 in ; 0 H/in ; 0 F/in ; short ; open ; open ; open ; 0 V ; - ; n/a ; n/a ; n/a ; +; LEDG[5] ; 2.5 V ; 0 in ; 0 H/in ; 0 F/in ; short ; - ; open ; open ; open ; 0 in ; 0 H/in ; 0 F/in ; short ; open ; open ; open ; 0 V ; - ; n/a ; n/a ; n/a ; +; LEDG[6] ; 2.5 V ; 0 in ; 0 H/in ; 0 F/in ; short ; - ; open ; open ; open ; 0 in ; 0 H/in ; 0 F/in ; short ; open ; open ; open ; 0 V ; - ; n/a ; n/a ; n/a ; +; LEDG[7] ; 2.5 V ; 0 in ; 0 H/in ; 0 F/in ; short ; - ; open ; open ; open ; 0 in ; 0 H/in ; 0 F/in ; short ; open ; open ; open ; 0 V ; - ; n/a ; n/a ; n/a ; +; LEDR[0] ; 2.5 V ; 0 in ; 0 H/in ; 0 F/in ; short ; - ; open ; open ; open ; 0 in ; 0 H/in ; 0 F/in ; short ; open ; open ; open ; 0 V ; - ; n/a ; n/a ; n/a ; +; LEDR[1] ; 2.5 V ; 0 in ; 0 H/in ; 0 F/in ; short ; - ; open ; open ; open ; 0 in ; 0 H/in ; 0 F/in ; short ; open ; open ; open ; 0 V ; - ; n/a ; n/a ; n/a ; +; LEDR[2] ; 2.5 V ; 0 in ; 0 H/in ; 0 F/in ; short ; - ; open ; open ; open ; 0 in ; 0 H/in ; 0 F/in ; short ; open ; open ; open ; 0 V ; - ; n/a ; n/a ; n/a ; +; LEDR[3] ; 2.5 V ; 0 in ; 0 H/in ; 0 F/in ; short ; - ; open ; open ; open ; 0 in ; 0 H/in ; 0 F/in ; short ; open ; open ; open ; 0 V ; - ; n/a ; n/a ; n/a ; +; LEDR[4] ; 2.5 V ; 0 in ; 0 H/in ; 0 F/in ; short ; - ; open ; open ; open ; 0 in ; 0 H/in ; 0 F/in ; short ; open ; open ; open ; 0 V ; - ; n/a ; n/a ; n/a ; +; LEDR[5] ; 2.5 V ; 0 in ; 0 H/in ; 0 F/in ; short ; - ; open ; open ; open ; 0 in ; 0 H/in ; 0 F/in ; short ; open ; open ; open ; 0 V ; - ; n/a ; n/a ; n/a ; +; LEDR[6] ; 2.5 V ; 0 in ; 0 H/in ; 0 F/in ; short ; - ; open ; open ; open ; 0 in ; 0 H/in ; 0 F/in ; short ; open ; open ; open ; 0 V ; - ; n/a ; n/a ; n/a ; +; LEDR[7] ; 2.5 V ; 0 in ; 0 H/in ; 0 F/in ; short ; - ; open ; open ; open ; 0 in ; 0 H/in ; 0 F/in ; short ; open ; open ; open ; 0 V ; - ; n/a ; n/a ; n/a ; +; LEDR[8] ; 2.5 V ; 0 in ; 0 H/in ; 0 F/in ; short ; - ; open ; open ; open ; 0 in ; 0 H/in ; 0 F/in ; short ; open ; open ; open ; 0 V ; - ; n/a ; n/a ; n/a ; +; LEDR[9] ; 2.5 V ; 0 in ; 0 H/in ; 0 F/in ; short ; - ; open ; open ; open ; 0 in ; 0 H/in ; 0 F/in ; short ; open ; open ; open ; 0 V ; - ; n/a ; n/a ; n/a ; +; LEDR[10] ; 2.5 V ; 0 in ; 0 H/in ; 0 F/in ; short ; - ; open ; open ; open ; 0 in ; 0 H/in ; 0 F/in ; short ; open ; open ; open ; 0 V ; - ; n/a ; n/a ; n/a ; +; LEDR[11] ; 2.5 V ; 0 in ; 0 H/in ; 0 F/in ; short ; - ; open ; open ; open ; 0 in ; 0 H/in ; 0 F/in ; short ; open ; open ; open ; 0 V ; - ; n/a ; n/a ; n/a ; +; LEDR[12] ; 2.5 V ; 0 in ; 0 H/in ; 0 F/in ; short ; - ; open ; open ; open ; 0 in ; 0 H/in ; 0 F/in ; short ; open ; open ; open ; 0 V ; - ; n/a ; n/a ; n/a ; +; LEDR[13] ; 2.5 V ; 0 in ; 0 H/in ; 0 F/in ; short ; - ; open ; open ; open ; 0 in ; 0 H/in ; 0 F/in ; short ; open ; open ; open ; 0 V ; - ; n/a ; n/a ; n/a ; +; LEDR[14] ; 2.5 V ; 0 in ; 0 H/in ; 0 F/in ; short ; - ; open ; open ; open ; 0 in ; 0 H/in ; 0 F/in ; short ; open ; open ; open ; 0 V ; - ; n/a ; n/a ; n/a ; +; LEDR[15] ; 2.5 V ; 0 in ; 0 H/in ; 0 F/in ; short ; - ; open ; open ; open ; 0 in ; 0 H/in ; 0 F/in ; short ; open ; open ; open ; 0 V ; - ; n/a ; n/a ; n/a ; +; LEDR[16] ; 2.5 V ; 0 in ; 0 H/in ; 0 F/in ; short ; - ; open ; open ; open ; 0 in ; 0 H/in ; 0 F/in ; short ; open ; open ; open ; 0 V ; - ; n/a ; n/a ; n/a ; +; LEDR[17] ; 2.5 V ; 0 in ; 0 H/in ; 0 F/in ; short ; - ; open ; open ; open ; 0 in ; 0 H/in ; 0 F/in ; short ; open ; open ; open ; 0 V ; - ; n/a ; n/a ; n/a ; +; HEX0[0] ; 2.5 V ; 0 in ; 0 H/in ; 0 F/in ; short ; - ; open ; open ; open ; 0 in ; 0 H/in ; 0 F/in ; short ; open ; open ; open ; 0 V ; - ; n/a ; n/a ; n/a ; +; HEX0[1] ; 2.5 V ; 0 in ; 0 H/in ; 0 F/in ; short ; - ; open ; open ; open ; 0 in ; 0 H/in ; 0 F/in ; short ; open ; open ; open ; 0 V ; - ; n/a ; n/a ; n/a ; +; HEX0[2] ; 2.5 V ; 0 in ; 0 H/in ; 0 F/in ; short ; - ; open ; open ; open ; 0 in ; 0 H/in ; 0 F/in ; short ; open ; open ; open ; 0 V ; - ; n/a ; n/a ; n/a ; +; HEX0[3] ; 2.5 V ; 0 in ; 0 H/in ; 0 F/in ; short ; - ; open ; open ; open ; 0 in ; 0 H/in ; 0 F/in ; short ; open ; open ; open ; 0 V ; - ; n/a ; n/a ; n/a ; +; HEX0[4] ; 2.5 V ; 0 in ; 0 H/in ; 0 F/in ; short ; - ; open ; open ; open ; 0 in ; 0 H/in ; 0 F/in ; short ; open ; open ; open ; 0 V ; - ; n/a ; n/a ; n/a ; +; HEX0[5] ; 2.5 V ; 0 in ; 0 H/in ; 0 F/in ; short ; - ; open ; open ; open ; 0 in ; 0 H/in ; 0 F/in ; short ; open ; open ; open ; 0 V ; - ; n/a ; n/a ; n/a ; +; HEX0[6] ; 2.5 V ; 0 in ; 0 H/in ; 0 F/in ; short ; - ; open ; open ; open ; 0 in ; 0 H/in ; 0 F/in ; short ; open ; open ; open ; 0 V ; - ; n/a ; n/a ; n/a ; +; HEX1[0] ; 2.5 V ; 0 in ; 0 H/in ; 0 F/in ; short ; - ; open ; open ; open ; 0 in ; 0 H/in ; 0 F/in ; short ; open ; open ; open ; 0 V ; - ; n/a ; n/a ; n/a ; +; HEX1[1] ; 2.5 V ; 0 in ; 0 H/in ; 0 F/in ; short ; - ; open ; open ; open ; 0 in ; 0 H/in ; 0 F/in ; short ; open ; open ; open ; 0 V ; - ; n/a ; n/a ; n/a ; +; HEX1[2] ; 2.5 V ; 0 in ; 0 H/in ; 0 F/in ; short ; - ; open ; open ; open ; 0 in ; 0 H/in ; 0 F/in ; short ; open ; open ; open ; 0 V ; - ; n/a ; n/a ; n/a ; +; HEX1[3] ; 2.5 V ; 0 in ; 0 H/in ; 0 F/in ; short ; - ; open ; open ; open ; 0 in ; 0 H/in ; 0 F/in ; short ; open ; open ; open ; 0 V ; - ; n/a ; n/a ; n/a ; +; HEX1[4] ; 2.5 V ; 0 in ; 0 H/in ; 0 F/in ; short ; - ; open ; open ; open ; 0 in ; 0 H/in ; 0 F/in ; short ; open ; open ; open ; 0 V ; - ; n/a ; n/a ; n/a ; +; HEX1[5] ; 2.5 V ; 0 in ; 0 H/in ; 0 F/in ; short ; - ; open ; open ; open ; 0 in ; 0 H/in ; 0 F/in ; short ; open ; open ; open ; 0 V ; - ; n/a ; n/a ; n/a ; +; HEX1[6] ; 2.5 V ; 0 in ; 0 H/in ; 0 F/in ; short ; - ; open ; open ; open ; 0 in ; 0 H/in ; 0 F/in ; short ; open ; open ; open ; 0 V ; - ; n/a ; n/a ; n/a ; +; HEX2[0] ; 2.5 V ; 0 in ; 0 H/in ; 0 F/in ; short ; - ; open ; open ; open ; 0 in ; 0 H/in ; 0 F/in ; short ; open ; open ; open ; 0 V ; - ; n/a ; n/a ; n/a ; +; HEX2[1] ; 2.5 V ; 0 in ; 0 H/in ; 0 F/in ; short ; - ; open ; open ; open ; 0 in ; 0 H/in ; 0 F/in ; short ; open ; open ; open ; 0 V ; - ; n/a ; n/a ; n/a ; +; HEX2[2] ; 2.5 V ; 0 in ; 0 H/in ; 0 F/in ; short ; - ; open ; open ; open ; 0 in ; 0 H/in ; 0 F/in ; short ; open ; open ; open ; 0 V ; - ; n/a ; n/a ; n/a ; +; HEX2[3] ; 2.5 V ; 0 in ; 0 H/in ; 0 F/in ; short ; - ; open ; open ; open ; 0 in ; 0 H/in ; 0 F/in ; short ; open ; open ; open ; 0 V ; - ; n/a ; n/a ; n/a ; +; HEX2[4] ; 2.5 V ; 0 in ; 0 H/in ; 0 F/in ; short ; - ; open ; open ; open ; 0 in ; 0 H/in ; 0 F/in ; short ; open ; open ; open ; 0 V ; - ; n/a ; n/a ; n/a ; +; HEX2[5] ; 2.5 V ; 0 in ; 0 H/in ; 0 F/in ; short ; - ; open ; open ; open ; 0 in ; 0 H/in ; 0 F/in ; short ; open ; open ; open ; 0 V ; - ; n/a ; n/a ; n/a ; +; HEX2[6] ; 2.5 V ; 0 in ; 0 H/in ; 0 F/in ; short ; - ; open ; open ; open ; 0 in ; 0 H/in ; 0 F/in ; short ; open ; open ; open ; 0 V ; - ; n/a ; n/a ; n/a ; +; HEX3[0] ; 2.5 V ; 0 in ; 0 H/in ; 0 F/in ; short ; - ; open ; open ; open ; 0 in ; 0 H/in ; 0 F/in ; short ; open ; open ; open ; 0 V ; - ; n/a ; n/a ; n/a ; +; HEX3[1] ; 2.5 V ; 0 in ; 0 H/in ; 0 F/in ; short ; - ; open ; open ; open ; 0 in ; 0 H/in ; 0 F/in ; short ; open ; open ; open ; 0 V ; - ; n/a ; n/a ; n/a ; +; HEX3[2] ; 3.3-V LVTTL ; 0 in ; 0 H/in ; 0 F/in ; short ; - ; open ; open ; open ; 0 in ; 0 H/in ; 0 F/in ; short ; open ; open ; open ; 0 V ; - ; n/a ; n/a ; n/a ; +; HEX3[3] ; 3.3-V LVTTL ; 0 in ; 0 H/in ; 0 F/in ; short ; - ; open ; open ; open ; 0 in ; 0 H/in ; 0 F/in ; short ; open ; open ; open ; 0 V ; - ; n/a ; n/a ; n/a ; +; HEX3[4] ; 3.3-V LVTTL ; 0 in ; 0 H/in ; 0 F/in ; short ; - ; open ; open ; open ; 0 in ; 0 H/in ; 0 F/in ; short ; open ; open ; open ; 0 V ; - ; n/a ; n/a ; n/a ; +; HEX3[5] ; 3.3-V LVTTL ; 0 in ; 0 H/in ; 0 F/in ; short ; - ; open ; open ; open ; 0 in ; 0 H/in ; 0 F/in ; short ; open ; open ; open ; 0 V ; - ; n/a ; n/a ; n/a ; +; HEX3[6] ; 3.3-V LVTTL ; 0 in ; 0 H/in ; 0 F/in ; short ; - ; open ; open ; open ; 0 in ; 0 H/in ; 0 F/in ; short ; open ; open ; open ; 0 V ; - ; n/a ; n/a ; n/a ; +; HEX4[0] ; 3.3-V LVTTL ; 0 in ; 0 H/in ; 0 F/in ; short ; - ; open ; open ; open ; 0 in ; 0 H/in ; 0 F/in ; short ; open ; open ; open ; 0 V ; - ; n/a ; n/a ; n/a ; +; HEX4[1] ; 3.3-V LVTTL ; 0 in ; 0 H/in ; 0 F/in ; short ; - ; open ; open ; open ; 0 in ; 0 H/in ; 0 F/in ; short ; open ; open ; open ; 0 V ; - ; n/a ; n/a ; n/a ; +; HEX4[2] ; 3.3-V LVTTL ; 0 in ; 0 H/in ; 0 F/in ; short ; - ; open ; open ; open ; 0 in ; 0 H/in ; 0 F/in ; short ; open ; open ; open ; 0 V ; - ; n/a ; n/a ; n/a ; +; HEX4[3] ; 3.3-V LVTTL ; 0 in ; 0 H/in ; 0 F/in ; short ; - ; open ; open ; open ; 0 in ; 0 H/in ; 0 F/in ; short ; open ; open ; open ; 0 V ; - ; n/a ; n/a ; n/a ; +; HEX4[4] ; 3.3-V LVTTL ; 0 in ; 0 H/in ; 0 F/in ; short ; - ; open ; open ; open ; 0 in ; 0 H/in ; 0 F/in ; short ; open ; open ; open ; 0 V ; - ; n/a ; n/a ; n/a ; +; HEX4[5] ; 3.3-V LVTTL ; 0 in ; 0 H/in ; 0 F/in ; short ; - ; open ; open ; open ; 0 in ; 0 H/in ; 0 F/in ; short ; open ; open ; open ; 0 V ; - ; n/a ; n/a ; n/a ; +; HEX4[6] ; 3.3-V LVTTL ; 0 in ; 0 H/in ; 0 F/in ; short ; - ; open ; open ; open ; 0 in ; 0 H/in ; 0 F/in ; short ; open ; open ; open ; 0 V ; - ; n/a ; n/a ; n/a ; +; HEX5[0] ; 3.3-V LVTTL ; 0 in ; 0 H/in ; 0 F/in ; short ; - ; open ; open ; open ; 0 in ; 0 H/in ; 0 F/in ; short ; open ; open ; open ; 0 V ; - ; n/a ; n/a ; n/a ; +; HEX5[1] ; 3.3-V LVTTL ; 0 in ; 0 H/in ; 0 F/in ; short ; - ; open ; open ; open ; 0 in ; 0 H/in ; 0 F/in ; short ; open ; open ; open ; 0 V ; - ; n/a ; n/a ; n/a ; +; HEX5[2] ; 3.3-V LVTTL ; 0 in ; 0 H/in ; 0 F/in ; short ; - ; open ; open ; open ; 0 in ; 0 H/in ; 0 F/in ; short ; open ; open ; open ; 0 V ; - ; n/a ; n/a ; n/a ; +; HEX5[3] ; 3.3-V LVTTL ; 0 in ; 0 H/in ; 0 F/in ; short ; - ; open ; open ; open ; 0 in ; 0 H/in ; 0 F/in ; short ; open ; open ; open ; 0 V ; - ; n/a ; n/a ; n/a ; +; HEX5[4] ; 3.3-V LVTTL ; 0 in ; 0 H/in ; 0 F/in ; short ; - ; open ; open ; open ; 0 in ; 0 H/in ; 0 F/in ; short ; open ; open ; open ; 0 V ; - ; n/a ; n/a ; n/a ; +; HEX5[5] ; 3.3-V LVTTL ; 0 in ; 0 H/in ; 0 F/in ; short ; - ; open ; open ; open ; 0 in ; 0 H/in ; 0 F/in ; short ; open ; open ; open ; 0 V ; - ; n/a ; n/a ; n/a ; +; HEX5[6] ; 3.3-V LVTTL ; 0 in ; 0 H/in ; 0 F/in ; short ; - ; open ; open ; open ; 0 in ; 0 H/in ; 0 F/in ; short ; open ; open ; open ; 0 V ; - ; n/a ; n/a ; n/a ; +; HEX6[0] ; 3.3-V LVTTL ; 0 in ; 0 H/in ; 0 F/in ; short ; - ; open ; open ; open ; 0 in ; 0 H/in ; 0 F/in ; short ; open ; open ; open ; 0 V ; - ; n/a ; n/a ; n/a ; +; HEX6[1] ; 3.3-V LVTTL ; 0 in ; 0 H/in ; 0 F/in ; short ; - ; open ; open ; open ; 0 in ; 0 H/in ; 0 F/in ; short ; open ; open ; open ; 0 V ; - ; n/a ; n/a ; n/a ; +; HEX6[2] ; 3.3-V LVTTL ; 0 in ; 0 H/in ; 0 F/in ; short ; - ; open ; open ; open ; 0 in ; 0 H/in ; 0 F/in ; short ; open ; open ; open ; 0 V ; - ; n/a ; n/a ; n/a ; +; HEX6[3] ; 3.3-V LVTTL ; 0 in ; 0 H/in ; 0 F/in ; short ; - ; open ; open ; open ; 0 in ; 0 H/in ; 0 F/in ; short ; open ; open ; open ; 0 V ; - ; n/a ; n/a ; n/a ; +; HEX6[4] ; 3.3-V LVTTL ; 0 in ; 0 H/in ; 0 F/in ; short ; - ; open ; open ; open ; 0 in ; 0 H/in ; 0 F/in ; short ; open ; open ; open ; 0 V ; - ; n/a ; n/a ; n/a ; +; HEX6[5] ; 3.3-V LVTTL ; 0 in ; 0 H/in ; 0 F/in ; short ; - ; open ; open ; open ; 0 in ; 0 H/in ; 0 F/in ; short ; open ; open ; open ; 0 V ; - ; n/a ; n/a ; n/a ; +; HEX6[6] ; 3.3-V LVTTL ; 0 in ; 0 H/in ; 0 F/in ; short ; - ; open ; open ; open ; 0 in ; 0 H/in ; 0 F/in ; short ; open ; open ; open ; 0 V ; - ; n/a ; n/a ; n/a ; +; HEX7[0] ; 3.3-V LVTTL ; 0 in ; 0 H/in ; 0 F/in ; short ; - ; open ; open ; open ; 0 in ; 0 H/in ; 0 F/in ; short ; open ; open ; open ; 0 V ; - ; n/a ; n/a ; n/a ; +; HEX7[1] ; 3.3-V LVTTL ; 0 in ; 0 H/in ; 0 F/in ; short ; - ; open ; open ; open ; 0 in ; 0 H/in ; 0 F/in ; short ; open ; open ; open ; 0 V ; - ; n/a ; n/a ; n/a ; +; HEX7[2] ; 3.3-V LVTTL ; 0 in ; 0 H/in ; 0 F/in ; short ; - ; open ; open ; open ; 0 in ; 0 H/in ; 0 F/in ; short ; open ; open ; open ; 0 V ; - ; n/a ; n/a ; n/a ; +; HEX7[3] ; 3.3-V LVTTL ; 0 in ; 0 H/in ; 0 F/in ; short ; - ; open ; open ; open ; 0 in ; 0 H/in ; 0 F/in ; short ; open ; open ; open ; 0 V ; - ; n/a ; n/a ; n/a ; +; HEX7[4] ; 3.3-V LVTTL ; 0 in ; 0 H/in ; 0 F/in ; short ; - ; open ; open ; open ; 0 in ; 0 H/in ; 0 F/in ; short ; open ; open ; open ; 0 V ; - ; n/a ; n/a ; n/a ; +; HEX7[5] ; 3.3-V LVTTL ; 0 in ; 0 H/in ; 0 F/in ; short ; - ; open ; open ; open ; 0 in ; 0 H/in ; 0 F/in ; short ; open ; open ; open ; 0 V ; - ; n/a ; n/a ; n/a ; +; HEX7[6] ; 3.3-V LVTTL ; 0 in ; 0 H/in ; 0 F/in ; short ; - ; open ; open ; open ; 0 in ; 0 H/in ; 0 F/in ; short ; open ; open ; open ; 0 V ; - ; n/a ; n/a ; n/a ; +; LCD_RS ; 3.3-V LVTTL ; 0 in ; 0 H/in ; 0 F/in ; short ; - ; open ; open ; open ; 0 in ; 0 H/in ; 0 F/in ; short ; open ; open ; open ; 0 V ; - ; n/a ; n/a ; n/a ; +; LCD_RW ; 3.3-V LVTTL ; 0 in ; 0 H/in ; 0 F/in ; short ; - ; open ; open ; open ; 0 in ; 0 H/in ; 0 F/in ; short ; open ; open ; open ; 0 V ; - ; n/a ; n/a ; n/a ; +; LCD_data[0] ; 3.3-V LVTTL ; 0 in ; 0 H/in ; 0 F/in ; short ; - ; open ; open ; open ; 0 in ; 0 H/in ; 0 F/in ; short ; open ; open ; open ; 0 V ; - ; n/a ; n/a ; n/a ; +; LCD_data[1] ; 3.3-V LVTTL ; 0 in ; 0 H/in ; 0 F/in ; short ; - ; open ; open ; open ; 0 in ; 0 H/in ; 0 F/in ; short ; open ; open ; open ; 0 V ; - ; n/a ; n/a ; n/a ; +; LCD_data[2] ; 3.3-V LVTTL ; 0 in ; 0 H/in ; 0 F/in ; short ; - ; open ; open ; open ; 0 in ; 0 H/in ; 0 F/in ; short ; open ; open ; open ; 0 V ; - ; n/a ; n/a ; n/a ; +; LCD_data[3] ; 3.3-V LVTTL ; 0 in ; 0 H/in ; 0 F/in ; short ; - ; open ; open ; open ; 0 in ; 0 H/in ; 0 F/in ; short ; open ; open ; open ; 0 V ; - ; n/a ; n/a ; n/a ; +; LCD_data[4] ; 3.3-V LVTTL ; 0 in ; 0 H/in ; 0 F/in ; short ; - ; open ; open ; open ; 0 in ; 0 H/in ; 0 F/in ; short ; open ; open ; open ; 0 V ; - ; n/a ; n/a ; n/a ; +; LCD_data[5] ; 3.3-V LVTTL ; 0 in ; 0 H/in ; 0 F/in ; short ; - ; open ; open ; open ; 0 in ; 0 H/in ; 0 F/in ; short ; open ; open ; open ; 0 V ; - ; n/a ; n/a ; n/a ; +; LCD_data[6] ; 3.3-V LVTTL ; 0 in ; 0 H/in ; 0 F/in ; short ; - ; open ; open ; open ; 0 in ; 0 H/in ; 0 F/in ; short ; open ; open ; open ; 0 V ; - ; n/a ; n/a ; n/a ; +; LCD_data[7] ; 3.3-V LVTTL ; 0 in ; 0 H/in ; 0 F/in ; short ; - ; open ; open ; open ; 0 in ; 0 H/in ; 0 F/in ; short ; open ; open ; open ; 0 V ; - ; n/a ; n/a ; n/a ; +; LCD_EN ; 3.3-V LVTTL ; 0 in ; 0 H/in ; 0 F/in ; short ; - ; open ; open ; open ; 0 in ; 0 H/in ; 0 F/in ; short ; open ; open ; open ; 0 V ; - ; n/a ; n/a ; n/a ; +; LCD_ON ; 3.3-V LVTTL ; 0 in ; 0 H/in ; 0 F/in ; short ; - ; open ; open ; open ; 0 in ; 0 H/in ; 0 F/in ; short ; open ; open ; open ; 0 V ; - ; n/a ; n/a ; n/a ; +; LCD_BLON ; 3.3-V LVTTL ; 0 in ; 0 H/in ; 0 F/in ; short ; - ; open ; open ; open ; 0 in ; 0 H/in ; 0 F/in ; short ; open ; open ; open ; 0 V ; - ; n/a ; n/a ; n/a ; +; altera_reserved_tdo ; 3.3-V LVTTL ; 0 in ; 0 H/in ; 0 F/in ; short ; - ; open ; open ; open ; 0 in ; 0 H/in ; 0 F/in ; short ; open ; open ; open ; 0 V ; - ; n/a ; n/a ; n/a ; +; ~ALTERA_DCLK~ ; 3.3-V LVTTL ; 0 in ; 0 H/in ; 0 F/in ; short ; - ; open ; open ; open ; 0 in ; 0 H/in ; 0 F/in ; short ; open ; open ; open ; 0 V ; - ; n/a ; n/a ; n/a ; +; ~ALTERA_nCEO~ ; 2.5 V ; 0 in ; 0 H/in ; 0 F/in ; short ; - ; open ; open ; open ; 0 in ; 0 H/in ; 0 F/in ; short ; open ; open ; open ; 0 V ; - ; n/a ; n/a ; n/a ; ++---------------------+--------------+-------------------+-------------------------+-------------------------+---------------+---------------------+----------------+------------------+--------+------------------+------------------------+------------------------+--------------+---------------+-----------------+-------+---------------------+--------------------+---------------+-----------------+-------------+ + + ++----------------------------------------------------------------------------+ +; Input Transition Times ; ++-------------------------+--------------+-----------------+-----------------+ +; Pin ; I/O Standard ; 10-90 Rise Time ; 90-10 Fall Time ; ++-------------------------+--------------+-----------------+-----------------+ +; CLOCK_50 ; 3.3-V LVTTL ; 2640 ps ; 2640 ps ; +; SW[0] ; 2.5 V ; 2000 ps ; 2000 ps ; +; KEY[1] ; 2.5 V ; 2000 ps ; 2000 ps ; +; SW[1] ; 2.5 V ; 2000 ps ; 2000 ps ; +; KEY[2] ; 2.5 V ; 2000 ps ; 2000 ps ; +; SW[2] ; 2.5 V ; 2000 ps ; 2000 ps ; +; KEY[3] ; 2.5 V ; 2000 ps ; 2000 ps ; +; SW[3] ; 2.5 V ; 2000 ps ; 2000 ps ; +; SW[4] ; 2.5 V ; 2000 ps ; 2000 ps ; +; SW[5] ; 2.5 V ; 2000 ps ; 2000 ps ; +; SW[6] ; 2.5 V ; 2000 ps ; 2000 ps ; +; SW[7] ; 2.5 V ; 2000 ps ; 2000 ps ; +; SW[8] ; 2.5 V ; 2000 ps ; 2000 ps ; +; SW[9] ; 2.5 V ; 2000 ps ; 2000 ps ; +; SW[10] ; 2.5 V ; 2000 ps ; 2000 ps ; +; SW[11] ; 2.5 V ; 2000 ps ; 2000 ps ; +; SW[12] ; 2.5 V ; 2000 ps ; 2000 ps ; +; SW[13] ; 2.5 V ; 2000 ps ; 2000 ps ; +; SW[14] ; 2.5 V ; 2000 ps ; 2000 ps ; +; SW[15] ; 2.5 V ; 2000 ps ; 2000 ps ; +; SW[16] ; 2.5 V ; 2000 ps ; 2000 ps ; +; SW[17] ; 2.5 V ; 2000 ps ; 2000 ps ; +; KEY[0] ; 2.5 V ; 2000 ps ; 2000 ps ; +; altera_reserved_tms ; 3.3-V LVTTL ; 2640 ps ; 2640 ps ; +; altera_reserved_tck ; 3.3-V LVTTL ; 2640 ps ; 2640 ps ; +; altera_reserved_tdi ; 3.3-V LVTTL ; 2640 ps ; 2640 ps ; +; ~ALTERA_ASDO_DATA1~ ; 3.3-V LVTTL ; 2640 ps ; 2640 ps ; +; ~ALTERA_FLASH_nCE_nCSO~ ; 3.3-V LVTTL ; 2640 ps ; 2640 ps ; +; ~ALTERA_DATA0~ ; 3.3-V LVTTL ; 2640 ps ; 2640 ps ; ++-------------------------+--------------+-----------------+-----------------+ + + ++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Signal Integrity Metrics (Slow 1200mv 0c Model) ; ++---------------------+--------------+---------------------+---------------------+------------------------------+------------------------------+---------------------+---------------------+--------------------------------------+--------------------------------------+-----------------------------+-----------------------------+----------------------------+----------------------------+-----------------------------+-----------------------------+--------------------+--------------------+-------------------------------------+-------------------------------------+----------------------------+----------------------------+---------------------------+---------------------------+ +; Pin ; I/O Standard ; Board Delay on Rise ; Board Delay on Fall ; Steady State Voh at FPGA Pin ; Steady State Vol at FPGA Pin ; Voh Max at FPGA Pin ; Vol Min at FPGA Pin ; Ringback Voltage on Rise at FPGA Pin ; Ringback Voltage on Fall at FPGA Pin ; 10-90 Rise Time at FPGA Pin ; 90-10 Fall Time at FPGA Pin ; Monotonic Rise at FPGA Pin ; Monotonic Fall at FPGA Pin ; Steady State Voh at Far-end ; Steady State Vol at Far-end ; Voh Max at Far-end ; Vol Min at Far-end ; Ringback Voltage on Rise at Far-end ; Ringback Voltage on Fall at Far-end ; 10-90 Rise Time at Far-end ; 90-10 Fall Time at Far-end ; Monotonic Rise at Far-end ; Monotonic Fall at Far-end ; ++---------------------+--------------+---------------------+---------------------+------------------------------+------------------------------+---------------------+---------------------+--------------------------------------+--------------------------------------+-----------------------------+-----------------------------+----------------------------+----------------------------+-----------------------------+-----------------------------+--------------------+--------------------+-------------------------------------+-------------------------------------+----------------------------+----------------------------+---------------------------+---------------------------+ +; LEDG[0] ; 2.5 V ; 0 s ; 0 s ; 2.32 V ; 4.49e-09 V ; 2.38 V ; -0.00552 V ; 0.096 V ; 0.019 V ; 4.18e-10 s ; 3.59e-10 s ; No ; Yes ; 2.32 V ; 4.49e-09 V ; 2.38 V ; -0.00552 V ; 0.096 V ; 0.019 V ; 4.18e-10 s ; 3.59e-10 s ; No ; Yes ; +; LEDG[1] ; 2.5 V ; 0 s ; 0 s ; 2.32 V ; 4.49e-09 V ; 2.38 V ; -0.00552 V ; 0.096 V ; 0.019 V ; 4.18e-10 s ; 3.59e-10 s ; No ; Yes ; 2.32 V ; 4.49e-09 V ; 2.38 V ; -0.00552 V ; 0.096 V ; 0.019 V ; 4.18e-10 s ; 3.59e-10 s ; No ; Yes ; +; LEDG[2] ; 2.5 V ; 0 s ; 0 s ; 2.32 V ; 4.49e-09 V ; 2.38 V ; -0.00552 V ; 0.096 V ; 0.019 V ; 4.18e-10 s ; 3.59e-10 s ; No ; Yes ; 2.32 V ; 4.49e-09 V ; 2.38 V ; -0.00552 V ; 0.096 V ; 0.019 V ; 4.18e-10 s ; 3.59e-10 s ; No ; Yes ; +; LEDG[3] ; 2.5 V ; 0 s ; 0 s ; 2.32 V ; 4.49e-09 V ; 2.38 V ; -0.00552 V ; 0.096 V ; 0.019 V ; 4.18e-10 s ; 3.59e-10 s ; No ; Yes ; 2.32 V ; 4.49e-09 V ; 2.38 V ; -0.00552 V ; 0.096 V ; 0.019 V ; 4.18e-10 s ; 3.59e-10 s ; No ; Yes ; +; LEDG[4] ; 2.5 V ; 0 s ; 0 s ; 2.32 V ; 4.49e-09 V ; 2.38 V ; -0.00552 V ; 0.096 V ; 0.019 V ; 4.18e-10 s ; 3.59e-10 s ; No ; Yes ; 2.32 V ; 4.49e-09 V ; 2.38 V ; -0.00552 V ; 0.096 V ; 0.019 V ; 4.18e-10 s ; 3.59e-10 s ; No ; Yes ; +; LEDG[5] ; 2.5 V ; 0 s ; 0 s ; 2.32 V ; 4.49e-09 V ; 2.38 V ; -0.00552 V ; 0.096 V ; 0.019 V ; 4.18e-10 s ; 3.59e-10 s ; No ; Yes ; 2.32 V ; 4.49e-09 V ; 2.38 V ; -0.00552 V ; 0.096 V ; 0.019 V ; 4.18e-10 s ; 3.59e-10 s ; No ; Yes ; +; LEDG[6] ; 2.5 V ; 0 s ; 0 s ; 2.32 V ; 4.49e-09 V ; 2.38 V ; -0.00552 V ; 0.096 V ; 0.019 V ; 4.18e-10 s ; 3.59e-10 s ; No ; Yes ; 2.32 V ; 4.49e-09 V ; 2.38 V ; -0.00552 V ; 0.096 V ; 0.019 V ; 4.18e-10 s ; 3.59e-10 s ; No ; Yes ; +; LEDG[7] ; 2.5 V ; 0 s ; 0 s ; 2.32 V ; 4.49e-09 V ; 2.38 V ; -0.00552 V ; 0.096 V ; 0.019 V ; 4.18e-10 s ; 3.59e-10 s ; No ; Yes ; 2.32 V ; 4.49e-09 V ; 2.38 V ; -0.00552 V ; 0.096 V ; 0.019 V ; 4.18e-10 s ; 3.59e-10 s ; No ; Yes ; +; LEDR[0] ; 2.5 V ; 0 s ; 0 s ; 2.32 V ; 4.49e-09 V ; 2.38 V ; -0.00552 V ; 0.096 V ; 0.019 V ; 4.18e-10 s ; 3.59e-10 s ; No ; Yes ; 2.32 V ; 4.49e-09 V ; 2.38 V ; -0.00552 V ; 0.096 V ; 0.019 V ; 4.18e-10 s ; 3.59e-10 s ; No ; Yes ; +; LEDR[1] ; 2.5 V ; 0 s ; 0 s ; 2.32 V ; 4.49e-09 V ; 2.38 V ; -0.00552 V ; 0.096 V ; 0.019 V ; 4.18e-10 s ; 3.59e-10 s ; No ; Yes ; 2.32 V ; 4.49e-09 V ; 2.38 V ; -0.00552 V ; 0.096 V ; 0.019 V ; 4.18e-10 s ; 3.59e-10 s ; No ; Yes ; +; LEDR[2] ; 2.5 V ; 0 s ; 0 s ; 2.32 V ; 4.49e-09 V ; 2.38 V ; -0.00552 V ; 0.096 V ; 0.019 V ; 4.18e-10 s ; 3.59e-10 s ; No ; Yes ; 2.32 V ; 4.49e-09 V ; 2.38 V ; -0.00552 V ; 0.096 V ; 0.019 V ; 4.18e-10 s ; 3.59e-10 s ; No ; Yes ; +; LEDR[3] ; 2.5 V ; 0 s ; 0 s ; 2.32 V ; 4.49e-09 V ; 2.38 V ; -0.00552 V ; 0.096 V ; 0.019 V ; 4.18e-10 s ; 3.59e-10 s ; No ; Yes ; 2.32 V ; 4.49e-09 V ; 2.38 V ; -0.00552 V ; 0.096 V ; 0.019 V ; 4.18e-10 s ; 3.59e-10 s ; No ; Yes ; +; LEDR[4] ; 2.5 V ; 0 s ; 0 s ; 2.32 V ; 4.49e-09 V ; 2.38 V ; -0.00552 V ; 0.096 V ; 0.019 V ; 4.18e-10 s ; 3.59e-10 s ; No ; Yes ; 2.32 V ; 4.49e-09 V ; 2.38 V ; -0.00552 V ; 0.096 V ; 0.019 V ; 4.18e-10 s ; 3.59e-10 s ; No ; Yes ; +; LEDR[5] ; 2.5 V ; 0 s ; 0 s ; 2.32 V ; 4.49e-09 V ; 2.38 V ; -0.00552 V ; 0.096 V ; 0.019 V ; 4.18e-10 s ; 3.59e-10 s ; No ; Yes ; 2.32 V ; 4.49e-09 V ; 2.38 V ; -0.00552 V ; 0.096 V ; 0.019 V ; 4.18e-10 s ; 3.59e-10 s ; No ; Yes ; +; LEDR[6] ; 2.5 V ; 0 s ; 0 s ; 2.32 V ; 4.49e-09 V ; 2.38 V ; -0.00552 V ; 0.096 V ; 0.019 V ; 4.18e-10 s ; 3.59e-10 s ; No ; Yes ; 2.32 V ; 4.49e-09 V ; 2.38 V ; -0.00552 V ; 0.096 V ; 0.019 V ; 4.18e-10 s ; 3.59e-10 s ; No ; Yes ; +; LEDR[7] ; 2.5 V ; 0 s ; 0 s ; 2.32 V ; 4.49e-09 V ; 2.38 V ; -0.00552 V ; 0.096 V ; 0.019 V ; 4.18e-10 s ; 3.59e-10 s ; No ; Yes ; 2.32 V ; 4.49e-09 V ; 2.38 V ; -0.00552 V ; 0.096 V ; 0.019 V ; 4.18e-10 s ; 3.59e-10 s ; No ; Yes ; +; LEDR[8] ; 2.5 V ; 0 s ; 0 s ; 2.32 V ; 4.49e-09 V ; 2.38 V ; -0.00552 V ; 0.096 V ; 0.019 V ; 4.18e-10 s ; 3.59e-10 s ; No ; Yes ; 2.32 V ; 4.49e-09 V ; 2.38 V ; -0.00552 V ; 0.096 V ; 0.019 V ; 4.18e-10 s ; 3.59e-10 s ; No ; Yes ; +; LEDR[9] ; 2.5 V ; 0 s ; 0 s ; 2.32 V ; 4.49e-09 V ; 2.33 V ; -0.00467 V ; 0.226 V ; 0.087 V ; 2.91e-09 s ; 2.74e-09 s ; Yes ; Yes ; 2.32 V ; 4.49e-09 V ; 2.33 V ; -0.00467 V ; 0.226 V ; 0.087 V ; 2.91e-09 s ; 2.74e-09 s ; Yes ; Yes ; +; LEDR[10] ; 2.5 V ; 0 s ; 0 s ; 2.32 V ; 4.49e-09 V ; 2.38 V ; -0.00552 V ; 0.096 V ; 0.019 V ; 4.18e-10 s ; 3.59e-10 s ; No ; Yes ; 2.32 V ; 4.49e-09 V ; 2.38 V ; -0.00552 V ; 0.096 V ; 0.019 V ; 4.18e-10 s ; 3.59e-10 s ; No ; Yes ; +; LEDR[11] ; 2.5 V ; 0 s ; 0 s ; 2.32 V ; 4.49e-09 V ; 2.38 V ; -0.00552 V ; 0.096 V ; 0.019 V ; 4.18e-10 s ; 3.59e-10 s ; No ; Yes ; 2.32 V ; 4.49e-09 V ; 2.38 V ; -0.00552 V ; 0.096 V ; 0.019 V ; 4.18e-10 s ; 3.59e-10 s ; No ; Yes ; +; LEDR[12] ; 2.5 V ; 0 s ; 0 s ; 2.32 V ; 4.49e-09 V ; 2.38 V ; -0.00552 V ; 0.096 V ; 0.019 V ; 4.18e-10 s ; 3.59e-10 s ; No ; Yes ; 2.32 V ; 4.49e-09 V ; 2.38 V ; -0.00552 V ; 0.096 V ; 0.019 V ; 4.18e-10 s ; 3.59e-10 s ; No ; Yes ; +; LEDR[13] ; 2.5 V ; 0 s ; 0 s ; 2.32 V ; 4.49e-09 V ; 2.38 V ; -0.00552 V ; 0.096 V ; 0.019 V ; 4.18e-10 s ; 3.59e-10 s ; No ; Yes ; 2.32 V ; 4.49e-09 V ; 2.38 V ; -0.00552 V ; 0.096 V ; 0.019 V ; 4.18e-10 s ; 3.59e-10 s ; No ; Yes ; +; LEDR[14] ; 2.5 V ; 0 s ; 0 s ; 2.32 V ; 4.49e-09 V ; 2.38 V ; -0.00552 V ; 0.096 V ; 0.019 V ; 4.18e-10 s ; 3.59e-10 s ; No ; Yes ; 2.32 V ; 4.49e-09 V ; 2.38 V ; -0.00552 V ; 0.096 V ; 0.019 V ; 4.18e-10 s ; 3.59e-10 s ; No ; Yes ; +; LEDR[15] ; 2.5 V ; 0 s ; 0 s ; 2.32 V ; 4.49e-09 V ; 2.33 V ; -0.00467 V ; 0.226 V ; 0.087 V ; 2.91e-09 s ; 2.74e-09 s ; Yes ; Yes ; 2.32 V ; 4.49e-09 V ; 2.33 V ; -0.00467 V ; 0.226 V ; 0.087 V ; 2.91e-09 s ; 2.74e-09 s ; Yes ; Yes ; +; LEDR[16] ; 2.5 V ; 0 s ; 0 s ; 2.32 V ; 4.49e-09 V ; 2.38 V ; -0.00552 V ; 0.096 V ; 0.019 V ; 4.18e-10 s ; 3.59e-10 s ; No ; Yes ; 2.32 V ; 4.49e-09 V ; 2.38 V ; -0.00552 V ; 0.096 V ; 0.019 V ; 4.18e-10 s ; 3.59e-10 s ; No ; Yes ; +; LEDR[17] ; 2.5 V ; 0 s ; 0 s ; 2.32 V ; 4.49e-09 V ; 2.38 V ; -0.00552 V ; 0.096 V ; 0.019 V ; 4.18e-10 s ; 3.59e-10 s ; No ; Yes ; 2.32 V ; 4.49e-09 V ; 2.38 V ; -0.00552 V ; 0.096 V ; 0.019 V ; 4.18e-10 s ; 3.59e-10 s ; No ; Yes ; +; HEX0[0] ; 2.5 V ; 0 s ; 0 s ; 2.32 V ; 4.49e-09 V ; 2.38 V ; -0.00552 V ; 0.096 V ; 0.019 V ; 4.18e-10 s ; 3.59e-10 s ; No ; Yes ; 2.32 V ; 4.49e-09 V ; 2.38 V ; -0.00552 V ; 0.096 V ; 0.019 V ; 4.18e-10 s ; 3.59e-10 s ; No ; Yes ; +; HEX0[1] ; 2.5 V ; 0 s ; 0 s ; 2.32 V ; 4.49e-09 V ; 2.33 V ; -0.00467 V ; 0.226 V ; 0.087 V ; 2.91e-09 s ; 2.74e-09 s ; Yes ; Yes ; 2.32 V ; 4.49e-09 V ; 2.33 V ; -0.00467 V ; 0.226 V ; 0.087 V ; 2.91e-09 s ; 2.74e-09 s ; Yes ; Yes ; +; HEX0[2] ; 2.5 V ; 0 s ; 0 s ; 2.32 V ; 4.49e-09 V ; 2.38 V ; -0.00552 V ; 0.096 V ; 0.019 V ; 4.18e-10 s ; 3.59e-10 s ; No ; Yes ; 2.32 V ; 4.49e-09 V ; 2.38 V ; -0.00552 V ; 0.096 V ; 0.019 V ; 4.18e-10 s ; 3.59e-10 s ; No ; Yes ; +; HEX0[3] ; 2.5 V ; 0 s ; 0 s ; 2.32 V ; 3.07e-09 V ; 2.38 V ; -0.0144 V ; 0.227 V ; 0.024 V ; 3.14e-10 s ; 3.39e-10 s ; Yes ; Yes ; 2.32 V ; 3.07e-09 V ; 2.38 V ; -0.0144 V ; 0.227 V ; 0.024 V ; 3.14e-10 s ; 3.39e-10 s ; Yes ; Yes ; +; HEX0[4] ; 2.5 V ; 0 s ; 0 s ; 2.32 V ; 3.07e-09 V ; 2.38 V ; -0.0144 V ; 0.227 V ; 0.024 V ; 3.14e-10 s ; 3.39e-10 s ; Yes ; Yes ; 2.32 V ; 3.07e-09 V ; 2.38 V ; -0.0144 V ; 0.227 V ; 0.024 V ; 3.14e-10 s ; 3.39e-10 s ; Yes ; Yes ; +; HEX0[5] ; 2.5 V ; 0 s ; 0 s ; 2.32 V ; 3.07e-09 V ; 2.33 V ; -0.00496 V ; 0.223 V ; 0.086 V ; 2.9e-09 s ; 2.73e-09 s ; Yes ; Yes ; 2.32 V ; 3.07e-09 V ; 2.33 V ; -0.00496 V ; 0.223 V ; 0.086 V ; 2.9e-09 s ; 2.73e-09 s ; Yes ; Yes ; +; HEX0[6] ; 2.5 V ; 0 s ; 0 s ; 2.32 V ; 3.07e-09 V ; 2.38 V ; -0.0144 V ; 0.227 V ; 0.024 V ; 3.14e-10 s ; 3.39e-10 s ; Yes ; Yes ; 2.32 V ; 3.07e-09 V ; 2.38 V ; -0.0144 V ; 0.227 V ; 0.024 V ; 3.14e-10 s ; 3.39e-10 s ; Yes ; Yes ; +; HEX1[0] ; 2.5 V ; 0 s ; 0 s ; 2.32 V ; 3.07e-09 V ; 2.38 V ; -0.0144 V ; 0.227 V ; 0.024 V ; 3.14e-10 s ; 3.39e-10 s ; Yes ; Yes ; 2.32 V ; 3.07e-09 V ; 2.38 V ; -0.0144 V ; 0.227 V ; 0.024 V ; 3.14e-10 s ; 3.39e-10 s ; Yes ; Yes ; +; HEX1[1] ; 2.5 V ; 0 s ; 0 s ; 2.32 V ; 3.07e-09 V ; 2.37 V ; -0.00994 V ; 0.186 V ; 0.028 V ; 4.98e-10 s ; 4.96e-10 s ; Yes ; Yes ; 2.32 V ; 3.07e-09 V ; 2.37 V ; -0.00994 V ; 0.186 V ; 0.028 V ; 4.98e-10 s ; 4.96e-10 s ; Yes ; Yes ; +; HEX1[2] ; 2.5 V ; 0 s ; 0 s ; 2.32 V ; 3.07e-09 V ; 2.37 V ; -0.00994 V ; 0.186 V ; 0.028 V ; 4.98e-10 s ; 4.96e-10 s ; Yes ; Yes ; 2.32 V ; 3.07e-09 V ; 2.37 V ; -0.00994 V ; 0.186 V ; 0.028 V ; 4.98e-10 s ; 4.96e-10 s ; Yes ; Yes ; +; HEX1[3] ; 2.5 V ; 0 s ; 0 s ; 2.32 V ; 3.07e-09 V ; 2.37 V ; -0.00994 V ; 0.186 V ; 0.028 V ; 4.98e-10 s ; 4.96e-10 s ; Yes ; Yes ; 2.32 V ; 3.07e-09 V ; 2.37 V ; -0.00994 V ; 0.186 V ; 0.028 V ; 4.98e-10 s ; 4.96e-10 s ; Yes ; Yes ; +; HEX1[4] ; 2.5 V ; 0 s ; 0 s ; 2.32 V ; 3.07e-09 V ; 2.37 V ; -0.00994 V ; 0.186 V ; 0.028 V ; 4.98e-10 s ; 4.96e-10 s ; Yes ; Yes ; 2.32 V ; 3.07e-09 V ; 2.37 V ; -0.00994 V ; 0.186 V ; 0.028 V ; 4.98e-10 s ; 4.96e-10 s ; Yes ; Yes ; +; HEX1[5] ; 2.5 V ; 0 s ; 0 s ; 2.32 V ; 3.07e-09 V ; 2.33 V ; -0.00496 V ; 0.223 V ; 0.086 V ; 2.9e-09 s ; 2.73e-09 s ; Yes ; Yes ; 2.32 V ; 3.07e-09 V ; 2.33 V ; -0.00496 V ; 0.223 V ; 0.086 V ; 2.9e-09 s ; 2.73e-09 s ; Yes ; Yes ; +; HEX1[6] ; 2.5 V ; 0 s ; 0 s ; 2.32 V ; 3.07e-09 V ; 2.33 V ; -0.00496 V ; 0.223 V ; 0.086 V ; 2.9e-09 s ; 2.73e-09 s ; Yes ; Yes ; 2.32 V ; 3.07e-09 V ; 2.33 V ; -0.00496 V ; 0.223 V ; 0.086 V ; 2.9e-09 s ; 2.73e-09 s ; Yes ; Yes ; +; HEX2[0] ; 2.5 V ; 0 s ; 0 s ; 2.32 V ; 3.07e-09 V ; 2.37 V ; -0.00994 V ; 0.186 V ; 0.028 V ; 4.98e-10 s ; 4.96e-10 s ; Yes ; Yes ; 2.32 V ; 3.07e-09 V ; 2.37 V ; -0.00994 V ; 0.186 V ; 0.028 V ; 4.98e-10 s ; 4.96e-10 s ; Yes ; Yes ; +; HEX2[1] ; 2.5 V ; 0 s ; 0 s ; 2.32 V ; 3.07e-09 V ; 2.37 V ; -0.00994 V ; 0.186 V ; 0.028 V ; 4.98e-10 s ; 4.96e-10 s ; Yes ; Yes ; 2.32 V ; 3.07e-09 V ; 2.37 V ; -0.00994 V ; 0.186 V ; 0.028 V ; 4.98e-10 s ; 4.96e-10 s ; Yes ; Yes ; +; HEX2[2] ; 2.5 V ; 0 s ; 0 s ; 2.32 V ; 3.07e-09 V ; 2.37 V ; -0.00994 V ; 0.186 V ; 0.028 V ; 4.98e-10 s ; 4.96e-10 s ; Yes ; Yes ; 2.32 V ; 3.07e-09 V ; 2.37 V ; -0.00994 V ; 0.186 V ; 0.028 V ; 4.98e-10 s ; 4.96e-10 s ; Yes ; Yes ; +; HEX2[3] ; 2.5 V ; 0 s ; 0 s ; 2.32 V ; 3.07e-09 V ; 2.37 V ; -0.00994 V ; 0.186 V ; 0.028 V ; 4.98e-10 s ; 4.96e-10 s ; Yes ; Yes ; 2.32 V ; 3.07e-09 V ; 2.37 V ; -0.00994 V ; 0.186 V ; 0.028 V ; 4.98e-10 s ; 4.96e-10 s ; Yes ; Yes ; +; HEX2[4] ; 2.5 V ; 0 s ; 0 s ; 2.32 V ; 3.07e-09 V ; 2.37 V ; -0.00994 V ; 0.186 V ; 0.028 V ; 4.98e-10 s ; 4.96e-10 s ; Yes ; Yes ; 2.32 V ; 3.07e-09 V ; 2.37 V ; -0.00994 V ; 0.186 V ; 0.028 V ; 4.98e-10 s ; 4.96e-10 s ; Yes ; Yes ; +; HEX2[5] ; 2.5 V ; 0 s ; 0 s ; 2.32 V ; 3.07e-09 V ; 2.37 V ; -0.00994 V ; 0.186 V ; 0.028 V ; 4.98e-10 s ; 4.96e-10 s ; Yes ; Yes ; 2.32 V ; 3.07e-09 V ; 2.37 V ; -0.00994 V ; 0.186 V ; 0.028 V ; 4.98e-10 s ; 4.96e-10 s ; Yes ; Yes ; +; HEX2[6] ; 2.5 V ; 0 s ; 0 s ; 2.32 V ; 3.07e-09 V ; 2.37 V ; -0.00994 V ; 0.186 V ; 0.028 V ; 4.98e-10 s ; 4.96e-10 s ; Yes ; Yes ; 2.32 V ; 3.07e-09 V ; 2.37 V ; -0.00994 V ; 0.186 V ; 0.028 V ; 4.98e-10 s ; 4.96e-10 s ; Yes ; Yes ; +; HEX3[0] ; 2.5 V ; 0 s ; 0 s ; 2.32 V ; 3.07e-09 V ; 2.37 V ; -0.00994 V ; 0.186 V ; 0.028 V ; 4.98e-10 s ; 4.96e-10 s ; Yes ; Yes ; 2.32 V ; 3.07e-09 V ; 2.37 V ; -0.00994 V ; 0.186 V ; 0.028 V ; 4.98e-10 s ; 4.96e-10 s ; Yes ; Yes ; +; HEX3[1] ; 2.5 V ; 0 s ; 0 s ; 2.32 V ; 3.07e-09 V ; 2.38 V ; -0.0144 V ; 0.227 V ; 0.024 V ; 3.14e-10 s ; 3.39e-10 s ; Yes ; Yes ; 2.32 V ; 3.07e-09 V ; 2.38 V ; -0.0144 V ; 0.227 V ; 0.024 V ; 3.14e-10 s ; 3.39e-10 s ; Yes ; Yes ; +; HEX3[2] ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.08 V ; 1.58e-08 V ; 3.09 V ; -0.012 V ; 0.232 V ; 0.268 V ; 4.75e-09 s ; 3.5e-09 s ; Yes ; No ; 3.08 V ; 1.58e-08 V ; 3.09 V ; -0.012 V ; 0.232 V ; 0.268 V ; 4.75e-09 s ; 3.5e-09 s ; Yes ; No ; +; HEX3[3] ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.08 V ; 1.58e-08 V ; 3.13 V ; -0.117 V ; 0.143 V ; 0.259 V ; 6.22e-10 s ; 4.46e-10 s ; No ; No ; 3.08 V ; 1.58e-08 V ; 3.13 V ; -0.117 V ; 0.143 V ; 0.259 V ; 6.22e-10 s ; 4.46e-10 s ; No ; No ; +; HEX3[4] ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.08 V ; 1.58e-08 V ; 3.13 V ; -0.117 V ; 0.143 V ; 0.259 V ; 6.22e-10 s ; 4.46e-10 s ; No ; No ; 3.08 V ; 1.58e-08 V ; 3.13 V ; -0.117 V ; 0.143 V ; 0.259 V ; 6.22e-10 s ; 4.46e-10 s ; No ; No ; +; HEX3[5] ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.08 V ; 1.58e-08 V ; 3.13 V ; -0.117 V ; 0.143 V ; 0.259 V ; 6.22e-10 s ; 4.46e-10 s ; No ; No ; 3.08 V ; 1.58e-08 V ; 3.13 V ; -0.117 V ; 0.143 V ; 0.259 V ; 6.22e-10 s ; 4.46e-10 s ; No ; No ; +; HEX3[6] ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.08 V ; 1.58e-08 V ; 3.13 V ; -0.117 V ; 0.143 V ; 0.259 V ; 6.22e-10 s ; 4.46e-10 s ; No ; No ; 3.08 V ; 1.58e-08 V ; 3.13 V ; -0.117 V ; 0.143 V ; 0.259 V ; 6.22e-10 s ; 4.46e-10 s ; No ; No ; +; HEX4[0] ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.08 V ; 1.58e-08 V ; 3.13 V ; -0.117 V ; 0.143 V ; 0.259 V ; 6.22e-10 s ; 4.46e-10 s ; No ; No ; 3.08 V ; 1.58e-08 V ; 3.13 V ; -0.117 V ; 0.143 V ; 0.259 V ; 6.22e-10 s ; 4.46e-10 s ; No ; No ; +; HEX4[1] ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.08 V ; 1.58e-08 V ; 3.13 V ; -0.117 V ; 0.143 V ; 0.259 V ; 6.22e-10 s ; 4.46e-10 s ; No ; No ; 3.08 V ; 1.58e-08 V ; 3.13 V ; -0.117 V ; 0.143 V ; 0.259 V ; 6.22e-10 s ; 4.46e-10 s ; No ; No ; +; HEX4[2] ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.08 V ; 1.58e-08 V ; 3.13 V ; -0.117 V ; 0.143 V ; 0.259 V ; 6.22e-10 s ; 4.46e-10 s ; No ; No ; 3.08 V ; 1.58e-08 V ; 3.13 V ; -0.117 V ; 0.143 V ; 0.259 V ; 6.22e-10 s ; 4.46e-10 s ; No ; No ; +; HEX4[3] ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.08 V ; 1.58e-08 V ; 3.13 V ; -0.117 V ; 0.143 V ; 0.259 V ; 6.22e-10 s ; 4.46e-10 s ; No ; No ; 3.08 V ; 1.58e-08 V ; 3.13 V ; -0.117 V ; 0.143 V ; 0.259 V ; 6.22e-10 s ; 4.46e-10 s ; No ; No ; +; HEX4[4] ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.08 V ; 1.58e-08 V ; 3.13 V ; -0.117 V ; 0.143 V ; 0.259 V ; 6.22e-10 s ; 4.46e-10 s ; No ; No ; 3.08 V ; 1.58e-08 V ; 3.13 V ; -0.117 V ; 0.143 V ; 0.259 V ; 6.22e-10 s ; 4.46e-10 s ; No ; No ; +; HEX4[5] ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.08 V ; 1.58e-08 V ; 3.13 V ; -0.117 V ; 0.143 V ; 0.259 V ; 6.22e-10 s ; 4.46e-10 s ; No ; No ; 3.08 V ; 1.58e-08 V ; 3.13 V ; -0.117 V ; 0.143 V ; 0.259 V ; 6.22e-10 s ; 4.46e-10 s ; No ; No ; +; HEX4[6] ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.08 V ; 1.58e-08 V ; 3.13 V ; -0.117 V ; 0.143 V ; 0.259 V ; 6.22e-10 s ; 4.46e-10 s ; No ; No ; 3.08 V ; 1.58e-08 V ; 3.13 V ; -0.117 V ; 0.143 V ; 0.259 V ; 6.22e-10 s ; 4.46e-10 s ; No ; No ; +; HEX5[0] ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.08 V ; 1.58e-08 V ; 3.13 V ; -0.117 V ; 0.143 V ; 0.259 V ; 6.22e-10 s ; 4.46e-10 s ; No ; No ; 3.08 V ; 1.58e-08 V ; 3.13 V ; -0.117 V ; 0.143 V ; 0.259 V ; 6.22e-10 s ; 4.46e-10 s ; No ; No ; +; HEX5[1] ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.08 V ; 1.58e-08 V ; 3.09 V ; -0.012 V ; 0.232 V ; 0.268 V ; 4.75e-09 s ; 3.5e-09 s ; Yes ; No ; 3.08 V ; 1.58e-08 V ; 3.09 V ; -0.012 V ; 0.232 V ; 0.268 V ; 4.75e-09 s ; 3.5e-09 s ; Yes ; No ; +; HEX5[2] ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.08 V ; 1.58e-08 V ; 3.13 V ; -0.117 V ; 0.143 V ; 0.259 V ; 6.22e-10 s ; 4.46e-10 s ; No ; No ; 3.08 V ; 1.58e-08 V ; 3.13 V ; -0.117 V ; 0.143 V ; 0.259 V ; 6.22e-10 s ; 4.46e-10 s ; No ; No ; +; HEX5[3] ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.08 V ; 1.58e-08 V ; 3.13 V ; -0.117 V ; 0.143 V ; 0.259 V ; 6.22e-10 s ; 4.46e-10 s ; No ; No ; 3.08 V ; 1.58e-08 V ; 3.13 V ; -0.117 V ; 0.143 V ; 0.259 V ; 6.22e-10 s ; 4.46e-10 s ; No ; No ; +; HEX5[4] ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.08 V ; 1.58e-08 V ; 3.13 V ; -0.117 V ; 0.143 V ; 0.259 V ; 6.22e-10 s ; 4.46e-10 s ; No ; No ; 3.08 V ; 1.58e-08 V ; 3.13 V ; -0.117 V ; 0.143 V ; 0.259 V ; 6.22e-10 s ; 4.46e-10 s ; No ; No ; +; HEX5[5] ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.08 V ; 1.58e-08 V ; 3.13 V ; -0.117 V ; 0.143 V ; 0.259 V ; 6.22e-10 s ; 4.46e-10 s ; No ; No ; 3.08 V ; 1.58e-08 V ; 3.13 V ; -0.117 V ; 0.143 V ; 0.259 V ; 6.22e-10 s ; 4.46e-10 s ; No ; No ; +; HEX5[6] ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.08 V ; 1.58e-08 V ; 3.13 V ; -0.117 V ; 0.143 V ; 0.259 V ; 6.22e-10 s ; 4.46e-10 s ; No ; No ; 3.08 V ; 1.58e-08 V ; 3.13 V ; -0.117 V ; 0.143 V ; 0.259 V ; 6.22e-10 s ; 4.46e-10 s ; No ; No ; +; HEX6[0] ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.08 V ; 1.58e-08 V ; 3.13 V ; -0.117 V ; 0.143 V ; 0.259 V ; 6.22e-10 s ; 4.46e-10 s ; No ; No ; 3.08 V ; 1.58e-08 V ; 3.13 V ; -0.117 V ; 0.143 V ; 0.259 V ; 6.22e-10 s ; 4.46e-10 s ; No ; No ; +; HEX6[1] ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.08 V ; 1.58e-08 V ; 3.13 V ; -0.117 V ; 0.143 V ; 0.259 V ; 6.22e-10 s ; 4.46e-10 s ; No ; No ; 3.08 V ; 1.58e-08 V ; 3.13 V ; -0.117 V ; 0.143 V ; 0.259 V ; 6.22e-10 s ; 4.46e-10 s ; No ; No ; +; HEX6[2] ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.08 V ; 1.58e-08 V ; 3.13 V ; -0.117 V ; 0.143 V ; 0.259 V ; 6.22e-10 s ; 4.46e-10 s ; No ; No ; 3.08 V ; 1.58e-08 V ; 3.13 V ; -0.117 V ; 0.143 V ; 0.259 V ; 6.22e-10 s ; 4.46e-10 s ; No ; No ; +; HEX6[3] ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.08 V ; 1.58e-08 V ; 3.13 V ; -0.117 V ; 0.143 V ; 0.259 V ; 6.22e-10 s ; 4.46e-10 s ; No ; No ; 3.08 V ; 1.58e-08 V ; 3.13 V ; -0.117 V ; 0.143 V ; 0.259 V ; 6.22e-10 s ; 4.46e-10 s ; No ; No ; +; HEX6[4] ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.08 V ; 1.58e-08 V ; 3.13 V ; -0.117 V ; 0.143 V ; 0.259 V ; 6.22e-10 s ; 4.46e-10 s ; No ; No ; 3.08 V ; 1.58e-08 V ; 3.13 V ; -0.117 V ; 0.143 V ; 0.259 V ; 6.22e-10 s ; 4.46e-10 s ; No ; No ; +; HEX6[5] ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.08 V ; 1.58e-08 V ; 3.09 V ; -0.012 V ; 0.232 V ; 0.268 V ; 4.75e-09 s ; 3.5e-09 s ; Yes ; No ; 3.08 V ; 1.58e-08 V ; 3.09 V ; -0.012 V ; 0.232 V ; 0.268 V ; 4.75e-09 s ; 3.5e-09 s ; Yes ; No ; +; HEX6[6] ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.08 V ; 1.58e-08 V ; 3.13 V ; -0.117 V ; 0.143 V ; 0.259 V ; 6.22e-10 s ; 4.46e-10 s ; No ; No ; 3.08 V ; 1.58e-08 V ; 3.13 V ; -0.117 V ; 0.143 V ; 0.259 V ; 6.22e-10 s ; 4.46e-10 s ; No ; No ; +; HEX7[0] ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.08 V ; 1.58e-08 V ; 3.13 V ; -0.117 V ; 0.143 V ; 0.259 V ; 6.22e-10 s ; 4.46e-10 s ; No ; No ; 3.08 V ; 1.58e-08 V ; 3.13 V ; -0.117 V ; 0.143 V ; 0.259 V ; 6.22e-10 s ; 4.46e-10 s ; No ; No ; +; HEX7[1] ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.08 V ; 1.58e-08 V ; 3.13 V ; -0.117 V ; 0.143 V ; 0.259 V ; 6.22e-10 s ; 4.46e-10 s ; No ; No ; 3.08 V ; 1.58e-08 V ; 3.13 V ; -0.117 V ; 0.143 V ; 0.259 V ; 6.22e-10 s ; 4.46e-10 s ; No ; No ; +; HEX7[2] ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.08 V ; 1.58e-08 V ; 3.13 V ; -0.117 V ; 0.143 V ; 0.259 V ; 6.22e-10 s ; 4.46e-10 s ; No ; No ; 3.08 V ; 1.58e-08 V ; 3.13 V ; -0.117 V ; 0.143 V ; 0.259 V ; 6.22e-10 s ; 4.46e-10 s ; No ; No ; +; HEX7[3] ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.08 V ; 1.58e-08 V ; 3.13 V ; -0.117 V ; 0.143 V ; 0.259 V ; 6.22e-10 s ; 4.46e-10 s ; No ; No ; 3.08 V ; 1.58e-08 V ; 3.13 V ; -0.117 V ; 0.143 V ; 0.259 V ; 6.22e-10 s ; 4.46e-10 s ; No ; No ; +; HEX7[4] ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.08 V ; 1.58e-08 V ; 3.13 V ; -0.117 V ; 0.143 V ; 0.259 V ; 6.22e-10 s ; 4.46e-10 s ; No ; No ; 3.08 V ; 1.58e-08 V ; 3.13 V ; -0.117 V ; 0.143 V ; 0.259 V ; 6.22e-10 s ; 4.46e-10 s ; No ; No ; +; HEX7[5] ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.08 V ; 1.58e-08 V ; 3.13 V ; -0.117 V ; 0.143 V ; 0.259 V ; 6.22e-10 s ; 4.46e-10 s ; No ; No ; 3.08 V ; 1.58e-08 V ; 3.13 V ; -0.117 V ; 0.143 V ; 0.259 V ; 6.22e-10 s ; 4.46e-10 s ; No ; No ; +; HEX7[6] ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.08 V ; 1.58e-08 V ; 3.13 V ; -0.117 V ; 0.143 V ; 0.259 V ; 6.22e-10 s ; 4.46e-10 s ; No ; No ; 3.08 V ; 1.58e-08 V ; 3.13 V ; -0.117 V ; 0.143 V ; 0.259 V ; 6.22e-10 s ; 4.46e-10 s ; No ; No ; +; LCD_RS ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.08 V ; 1.11e-08 V ; 3.13 V ; -0.0798 V ; 0.192 V ; 0.22 V ; 8.68e-10 s ; 6.46e-10 s ; No ; No ; 3.08 V ; 1.11e-08 V ; 3.13 V ; -0.0798 V ; 0.192 V ; 0.22 V ; 8.68e-10 s ; 6.46e-10 s ; No ; No ; +; LCD_RW ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.08 V ; 1.11e-08 V ; 3.13 V ; -0.0798 V ; 0.192 V ; 0.22 V ; 8.68e-10 s ; 6.46e-10 s ; No ; No ; 3.08 V ; 1.11e-08 V ; 3.13 V ; -0.0798 V ; 0.192 V ; 0.22 V ; 8.68e-10 s ; 6.46e-10 s ; No ; No ; +; LCD_data[0] ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.08 V ; 1.11e-08 V ; 3.13 V ; -0.0798 V ; 0.192 V ; 0.22 V ; 8.68e-10 s ; 6.46e-10 s ; No ; No ; 3.08 V ; 1.11e-08 V ; 3.13 V ; -0.0798 V ; 0.192 V ; 0.22 V ; 8.68e-10 s ; 6.46e-10 s ; No ; No ; +; LCD_data[1] ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.08 V ; 1.11e-08 V ; 3.13 V ; -0.0798 V ; 0.192 V ; 0.22 V ; 8.68e-10 s ; 6.46e-10 s ; No ; No ; 3.08 V ; 1.11e-08 V ; 3.13 V ; -0.0798 V ; 0.192 V ; 0.22 V ; 8.68e-10 s ; 6.46e-10 s ; No ; No ; +; LCD_data[2] ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.08 V ; 1.11e-08 V ; 3.13 V ; -0.0798 V ; 0.192 V ; 0.22 V ; 8.68e-10 s ; 6.46e-10 s ; No ; No ; 3.08 V ; 1.11e-08 V ; 3.13 V ; -0.0798 V ; 0.192 V ; 0.22 V ; 8.68e-10 s ; 6.46e-10 s ; No ; No ; +; LCD_data[3] ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.08 V ; 1.11e-08 V ; 3.13 V ; -0.0798 V ; 0.192 V ; 0.22 V ; 8.68e-10 s ; 6.46e-10 s ; No ; No ; 3.08 V ; 1.11e-08 V ; 3.13 V ; -0.0798 V ; 0.192 V ; 0.22 V ; 8.68e-10 s ; 6.46e-10 s ; No ; No ; +; LCD_data[4] ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.08 V ; 1.11e-08 V ; 3.13 V ; -0.0798 V ; 0.192 V ; 0.22 V ; 8.68e-10 s ; 6.46e-10 s ; No ; No ; 3.08 V ; 1.11e-08 V ; 3.13 V ; -0.0798 V ; 0.192 V ; 0.22 V ; 8.68e-10 s ; 6.46e-10 s ; No ; No ; +; LCD_data[5] ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.08 V ; 1.11e-08 V ; 3.13 V ; -0.0798 V ; 0.192 V ; 0.22 V ; 8.68e-10 s ; 6.46e-10 s ; No ; No ; 3.08 V ; 1.11e-08 V ; 3.13 V ; -0.0798 V ; 0.192 V ; 0.22 V ; 8.68e-10 s ; 6.46e-10 s ; No ; No ; +; LCD_data[6] ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.08 V ; 1.11e-08 V ; 3.13 V ; -0.0798 V ; 0.192 V ; 0.22 V ; 8.68e-10 s ; 6.46e-10 s ; No ; No ; 3.08 V ; 1.11e-08 V ; 3.13 V ; -0.0798 V ; 0.192 V ; 0.22 V ; 8.68e-10 s ; 6.46e-10 s ; No ; No ; +; LCD_data[7] ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.08 V ; 1.11e-08 V ; 3.09 V ; -0.0117 V ; 0.268 V ; 0.262 V ; 4.74e-09 s ; 3.5e-09 s ; No ; No ; 3.08 V ; 1.11e-08 V ; 3.09 V ; -0.0117 V ; 0.268 V ; 0.262 V ; 4.74e-09 s ; 3.5e-09 s ; No ; No ; +; LCD_EN ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.08 V ; 1.11e-08 V ; 3.13 V ; -0.0798 V ; 0.192 V ; 0.22 V ; 8.68e-10 s ; 6.46e-10 s ; No ; No ; 3.08 V ; 1.11e-08 V ; 3.13 V ; -0.0798 V ; 0.192 V ; 0.22 V ; 8.68e-10 s ; 6.46e-10 s ; No ; No ; +; LCD_ON ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.08 V ; 1.11e-08 V ; 3.09 V ; -0.0117 V ; 0.268 V ; 0.262 V ; 4.74e-09 s ; 3.5e-09 s ; No ; No ; 3.08 V ; 1.11e-08 V ; 3.09 V ; -0.0117 V ; 0.268 V ; 0.262 V ; 4.74e-09 s ; 3.5e-09 s ; No ; No ; +; LCD_BLON ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.08 V ; 1.11e-08 V ; 3.13 V ; -0.0798 V ; 0.192 V ; 0.22 V ; 8.68e-10 s ; 6.46e-10 s ; No ; No ; 3.08 V ; 1.11e-08 V ; 3.13 V ; -0.0798 V ; 0.192 V ; 0.22 V ; 8.68e-10 s ; 6.46e-10 s ; No ; No ; +; altera_reserved_tdo ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.08 V ; 4.33e-08 V ; 3.11 V ; -0.0128 V ; 0.235 V ; 0.229 V ; 6.79e-10 s ; 1.6e-09 s ; Yes ; Yes ; 3.08 V ; 4.33e-08 V ; 3.11 V ; -0.0128 V ; 0.235 V ; 0.229 V ; 6.79e-10 s ; 1.6e-09 s ; Yes ; Yes ; +; ~ALTERA_DCLK~ ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.08 V ; 5.73e-09 V ; 3.19 V ; -0.173 V ; 0.149 V ; 0.259 V ; 2.79e-10 s ; 2.42e-10 s ; Yes ; Yes ; 3.08 V ; 5.73e-09 V ; 3.19 V ; -0.173 V ; 0.149 V ; 0.259 V ; 2.79e-10 s ; 2.42e-10 s ; Yes ; Yes ; +; ~ALTERA_nCEO~ ; 2.5 V ; 0 s ; 0 s ; 2.32 V ; 4.18e-09 V ; 2.38 V ; -0.00483 V ; 0.152 V ; 0.012 V ; 4.81e-10 s ; 6.29e-10 s ; Yes ; Yes ; 2.32 V ; 4.18e-09 V ; 2.38 V ; -0.00483 V ; 0.152 V ; 0.012 V ; 4.81e-10 s ; 6.29e-10 s ; Yes ; Yes ; ++---------------------+--------------+---------------------+---------------------+------------------------------+------------------------------+---------------------+---------------------+--------------------------------------+--------------------------------------+-----------------------------+-----------------------------+----------------------------+----------------------------+-----------------------------+-----------------------------+--------------------+--------------------+-------------------------------------+-------------------------------------+----------------------------+----------------------------+---------------------------+---------------------------+ + + ++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Signal Integrity Metrics (Slow 1200mv 85c Model) ; ++---------------------+--------------+---------------------+---------------------+------------------------------+------------------------------+---------------------+---------------------+--------------------------------------+--------------------------------------+-----------------------------+-----------------------------+----------------------------+----------------------------+-----------------------------+-----------------------------+--------------------+--------------------+-------------------------------------+-------------------------------------+----------------------------+----------------------------+---------------------------+---------------------------+ +; Pin ; I/O Standard ; Board Delay on Rise ; Board Delay on Fall ; Steady State Voh at FPGA Pin ; Steady State Vol at FPGA Pin ; Voh Max at FPGA Pin ; Vol Min at FPGA Pin ; Ringback Voltage on Rise at FPGA Pin ; Ringback Voltage on Fall at FPGA Pin ; 10-90 Rise Time at FPGA Pin ; 90-10 Fall Time at FPGA Pin ; Monotonic Rise at FPGA Pin ; Monotonic Fall at FPGA Pin ; Steady State Voh at Far-end ; Steady State Vol at Far-end ; Voh Max at Far-end ; Vol Min at Far-end ; Ringback Voltage on Rise at Far-end ; Ringback Voltage on Fall at Far-end ; 10-90 Rise Time at Far-end ; 90-10 Fall Time at Far-end ; Monotonic Rise at Far-end ; Monotonic Fall at Far-end ; ++---------------------+--------------+---------------------+---------------------+------------------------------+------------------------------+---------------------+---------------------+--------------------------------------+--------------------------------------+-----------------------------+-----------------------------+----------------------------+----------------------------+-----------------------------+-----------------------------+--------------------+--------------------+-------------------------------------+-------------------------------------+----------------------------+----------------------------+---------------------------+---------------------------+ +; LEDG[0] ; 2.5 V ; 0 s ; 0 s ; 2.32 V ; 6.92e-07 V ; 2.35 V ; -0.00996 V ; 0.121 V ; 0.03 V ; 4.64e-10 s ; 4.47e-10 s ; Yes ; Yes ; 2.32 V ; 6.92e-07 V ; 2.35 V ; -0.00996 V ; 0.121 V ; 0.03 V ; 4.64e-10 s ; 4.47e-10 s ; Yes ; Yes ; +; LEDG[1] ; 2.5 V ; 0 s ; 0 s ; 2.32 V ; 6.92e-07 V ; 2.35 V ; -0.00996 V ; 0.121 V ; 0.03 V ; 4.64e-10 s ; 4.47e-10 s ; Yes ; Yes ; 2.32 V ; 6.92e-07 V ; 2.35 V ; -0.00996 V ; 0.121 V ; 0.03 V ; 4.64e-10 s ; 4.47e-10 s ; Yes ; Yes ; +; LEDG[2] ; 2.5 V ; 0 s ; 0 s ; 2.32 V ; 6.92e-07 V ; 2.35 V ; -0.00996 V ; 0.121 V ; 0.03 V ; 4.64e-10 s ; 4.47e-10 s ; Yes ; Yes ; 2.32 V ; 6.92e-07 V ; 2.35 V ; -0.00996 V ; 0.121 V ; 0.03 V ; 4.64e-10 s ; 4.47e-10 s ; Yes ; Yes ; +; LEDG[3] ; 2.5 V ; 0 s ; 0 s ; 2.32 V ; 6.92e-07 V ; 2.35 V ; -0.00996 V ; 0.121 V ; 0.03 V ; 4.64e-10 s ; 4.47e-10 s ; Yes ; Yes ; 2.32 V ; 6.92e-07 V ; 2.35 V ; -0.00996 V ; 0.121 V ; 0.03 V ; 4.64e-10 s ; 4.47e-10 s ; Yes ; Yes ; +; LEDG[4] ; 2.5 V ; 0 s ; 0 s ; 2.32 V ; 6.92e-07 V ; 2.35 V ; -0.00996 V ; 0.121 V ; 0.03 V ; 4.64e-10 s ; 4.47e-10 s ; Yes ; Yes ; 2.32 V ; 6.92e-07 V ; 2.35 V ; -0.00996 V ; 0.121 V ; 0.03 V ; 4.64e-10 s ; 4.47e-10 s ; Yes ; Yes ; +; LEDG[5] ; 2.5 V ; 0 s ; 0 s ; 2.32 V ; 6.92e-07 V ; 2.35 V ; -0.00996 V ; 0.121 V ; 0.03 V ; 4.64e-10 s ; 4.47e-10 s ; Yes ; Yes ; 2.32 V ; 6.92e-07 V ; 2.35 V ; -0.00996 V ; 0.121 V ; 0.03 V ; 4.64e-10 s ; 4.47e-10 s ; Yes ; Yes ; +; LEDG[6] ; 2.5 V ; 0 s ; 0 s ; 2.32 V ; 6.92e-07 V ; 2.35 V ; -0.00996 V ; 0.121 V ; 0.03 V ; 4.64e-10 s ; 4.47e-10 s ; Yes ; Yes ; 2.32 V ; 6.92e-07 V ; 2.35 V ; -0.00996 V ; 0.121 V ; 0.03 V ; 4.64e-10 s ; 4.47e-10 s ; Yes ; Yes ; +; LEDG[7] ; 2.5 V ; 0 s ; 0 s ; 2.32 V ; 6.92e-07 V ; 2.35 V ; -0.00996 V ; 0.121 V ; 0.03 V ; 4.64e-10 s ; 4.47e-10 s ; Yes ; Yes ; 2.32 V ; 6.92e-07 V ; 2.35 V ; -0.00996 V ; 0.121 V ; 0.03 V ; 4.64e-10 s ; 4.47e-10 s ; Yes ; Yes ; +; LEDR[0] ; 2.5 V ; 0 s ; 0 s ; 2.32 V ; 6.92e-07 V ; 2.35 V ; -0.00996 V ; 0.121 V ; 0.03 V ; 4.64e-10 s ; 4.47e-10 s ; Yes ; Yes ; 2.32 V ; 6.92e-07 V ; 2.35 V ; -0.00996 V ; 0.121 V ; 0.03 V ; 4.64e-10 s ; 4.47e-10 s ; Yes ; Yes ; +; LEDR[1] ; 2.5 V ; 0 s ; 0 s ; 2.32 V ; 6.92e-07 V ; 2.35 V ; -0.00996 V ; 0.121 V ; 0.03 V ; 4.64e-10 s ; 4.47e-10 s ; Yes ; Yes ; 2.32 V ; 6.92e-07 V ; 2.35 V ; -0.00996 V ; 0.121 V ; 0.03 V ; 4.64e-10 s ; 4.47e-10 s ; Yes ; Yes ; +; LEDR[2] ; 2.5 V ; 0 s ; 0 s ; 2.32 V ; 6.92e-07 V ; 2.35 V ; -0.00996 V ; 0.121 V ; 0.03 V ; 4.64e-10 s ; 4.47e-10 s ; Yes ; Yes ; 2.32 V ; 6.92e-07 V ; 2.35 V ; -0.00996 V ; 0.121 V ; 0.03 V ; 4.64e-10 s ; 4.47e-10 s ; Yes ; Yes ; +; LEDR[3] ; 2.5 V ; 0 s ; 0 s ; 2.32 V ; 6.92e-07 V ; 2.35 V ; -0.00996 V ; 0.121 V ; 0.03 V ; 4.64e-10 s ; 4.47e-10 s ; Yes ; Yes ; 2.32 V ; 6.92e-07 V ; 2.35 V ; -0.00996 V ; 0.121 V ; 0.03 V ; 4.64e-10 s ; 4.47e-10 s ; Yes ; Yes ; +; LEDR[4] ; 2.5 V ; 0 s ; 0 s ; 2.32 V ; 6.92e-07 V ; 2.35 V ; -0.00996 V ; 0.121 V ; 0.03 V ; 4.64e-10 s ; 4.47e-10 s ; Yes ; Yes ; 2.32 V ; 6.92e-07 V ; 2.35 V ; -0.00996 V ; 0.121 V ; 0.03 V ; 4.64e-10 s ; 4.47e-10 s ; Yes ; Yes ; +; LEDR[5] ; 2.5 V ; 0 s ; 0 s ; 2.32 V ; 6.92e-07 V ; 2.35 V ; -0.00996 V ; 0.121 V ; 0.03 V ; 4.64e-10 s ; 4.47e-10 s ; Yes ; Yes ; 2.32 V ; 6.92e-07 V ; 2.35 V ; -0.00996 V ; 0.121 V ; 0.03 V ; 4.64e-10 s ; 4.47e-10 s ; Yes ; Yes ; +; LEDR[6] ; 2.5 V ; 0 s ; 0 s ; 2.32 V ; 6.92e-07 V ; 2.35 V ; -0.00996 V ; 0.121 V ; 0.03 V ; 4.64e-10 s ; 4.47e-10 s ; Yes ; Yes ; 2.32 V ; 6.92e-07 V ; 2.35 V ; -0.00996 V ; 0.121 V ; 0.03 V ; 4.64e-10 s ; 4.47e-10 s ; Yes ; Yes ; +; LEDR[7] ; 2.5 V ; 0 s ; 0 s ; 2.32 V ; 6.92e-07 V ; 2.35 V ; -0.00996 V ; 0.121 V ; 0.03 V ; 4.64e-10 s ; 4.47e-10 s ; Yes ; Yes ; 2.32 V ; 6.92e-07 V ; 2.35 V ; -0.00996 V ; 0.121 V ; 0.03 V ; 4.64e-10 s ; 4.47e-10 s ; Yes ; Yes ; +; LEDR[8] ; 2.5 V ; 0 s ; 0 s ; 2.32 V ; 6.92e-07 V ; 2.35 V ; -0.00996 V ; 0.121 V ; 0.03 V ; 4.64e-10 s ; 4.47e-10 s ; Yes ; Yes ; 2.32 V ; 6.92e-07 V ; 2.35 V ; -0.00996 V ; 0.121 V ; 0.03 V ; 4.64e-10 s ; 4.47e-10 s ; Yes ; Yes ; +; LEDR[9] ; 2.5 V ; 0 s ; 0 s ; 2.32 V ; 6.92e-07 V ; 2.33 V ; -0.00265 V ; 0.133 V ; 0.056 V ; 3.55e-09 s ; 3.31e-09 s ; Yes ; Yes ; 2.32 V ; 6.92e-07 V ; 2.33 V ; -0.00265 V ; 0.133 V ; 0.056 V ; 3.55e-09 s ; 3.31e-09 s ; Yes ; Yes ; +; LEDR[10] ; 2.5 V ; 0 s ; 0 s ; 2.32 V ; 6.92e-07 V ; 2.35 V ; -0.00996 V ; 0.121 V ; 0.03 V ; 4.64e-10 s ; 4.47e-10 s ; Yes ; Yes ; 2.32 V ; 6.92e-07 V ; 2.35 V ; -0.00996 V ; 0.121 V ; 0.03 V ; 4.64e-10 s ; 4.47e-10 s ; Yes ; Yes ; +; LEDR[11] ; 2.5 V ; 0 s ; 0 s ; 2.32 V ; 6.92e-07 V ; 2.35 V ; -0.00996 V ; 0.121 V ; 0.03 V ; 4.64e-10 s ; 4.47e-10 s ; Yes ; Yes ; 2.32 V ; 6.92e-07 V ; 2.35 V ; -0.00996 V ; 0.121 V ; 0.03 V ; 4.64e-10 s ; 4.47e-10 s ; Yes ; Yes ; +; LEDR[12] ; 2.5 V ; 0 s ; 0 s ; 2.32 V ; 6.92e-07 V ; 2.35 V ; -0.00996 V ; 0.121 V ; 0.03 V ; 4.64e-10 s ; 4.47e-10 s ; Yes ; Yes ; 2.32 V ; 6.92e-07 V ; 2.35 V ; -0.00996 V ; 0.121 V ; 0.03 V ; 4.64e-10 s ; 4.47e-10 s ; Yes ; Yes ; +; LEDR[13] ; 2.5 V ; 0 s ; 0 s ; 2.32 V ; 6.92e-07 V ; 2.35 V ; -0.00996 V ; 0.121 V ; 0.03 V ; 4.64e-10 s ; 4.47e-10 s ; Yes ; Yes ; 2.32 V ; 6.92e-07 V ; 2.35 V ; -0.00996 V ; 0.121 V ; 0.03 V ; 4.64e-10 s ; 4.47e-10 s ; Yes ; Yes ; +; LEDR[14] ; 2.5 V ; 0 s ; 0 s ; 2.32 V ; 6.92e-07 V ; 2.35 V ; -0.00996 V ; 0.121 V ; 0.03 V ; 4.64e-10 s ; 4.47e-10 s ; Yes ; Yes ; 2.32 V ; 6.92e-07 V ; 2.35 V ; -0.00996 V ; 0.121 V ; 0.03 V ; 4.64e-10 s ; 4.47e-10 s ; Yes ; Yes ; +; LEDR[15] ; 2.5 V ; 0 s ; 0 s ; 2.32 V ; 6.92e-07 V ; 2.33 V ; -0.00265 V ; 0.133 V ; 0.056 V ; 3.55e-09 s ; 3.31e-09 s ; Yes ; Yes ; 2.32 V ; 6.92e-07 V ; 2.33 V ; -0.00265 V ; 0.133 V ; 0.056 V ; 3.55e-09 s ; 3.31e-09 s ; Yes ; Yes ; +; LEDR[16] ; 2.5 V ; 0 s ; 0 s ; 2.32 V ; 6.92e-07 V ; 2.35 V ; -0.00996 V ; 0.121 V ; 0.03 V ; 4.64e-10 s ; 4.47e-10 s ; Yes ; Yes ; 2.32 V ; 6.92e-07 V ; 2.35 V ; -0.00996 V ; 0.121 V ; 0.03 V ; 4.64e-10 s ; 4.47e-10 s ; Yes ; Yes ; +; LEDR[17] ; 2.5 V ; 0 s ; 0 s ; 2.32 V ; 6.92e-07 V ; 2.35 V ; -0.00996 V ; 0.121 V ; 0.03 V ; 4.64e-10 s ; 4.47e-10 s ; Yes ; Yes ; 2.32 V ; 6.92e-07 V ; 2.35 V ; -0.00996 V ; 0.121 V ; 0.03 V ; 4.64e-10 s ; 4.47e-10 s ; Yes ; Yes ; +; HEX0[0] ; 2.5 V ; 0 s ; 0 s ; 2.32 V ; 6.92e-07 V ; 2.35 V ; -0.00996 V ; 0.121 V ; 0.03 V ; 4.64e-10 s ; 4.47e-10 s ; Yes ; Yes ; 2.32 V ; 6.92e-07 V ; 2.35 V ; -0.00996 V ; 0.121 V ; 0.03 V ; 4.64e-10 s ; 4.47e-10 s ; Yes ; Yes ; +; HEX0[1] ; 2.5 V ; 0 s ; 0 s ; 2.32 V ; 6.92e-07 V ; 2.33 V ; -0.00265 V ; 0.133 V ; 0.056 V ; 3.55e-09 s ; 3.31e-09 s ; Yes ; Yes ; 2.32 V ; 6.92e-07 V ; 2.33 V ; -0.00265 V ; 0.133 V ; 0.056 V ; 3.55e-09 s ; 3.31e-09 s ; Yes ; Yes ; +; HEX0[2] ; 2.5 V ; 0 s ; 0 s ; 2.32 V ; 6.92e-07 V ; 2.35 V ; -0.00996 V ; 0.121 V ; 0.03 V ; 4.64e-10 s ; 4.47e-10 s ; Yes ; Yes ; 2.32 V ; 6.92e-07 V ; 2.35 V ; -0.00996 V ; 0.121 V ; 0.03 V ; 4.64e-10 s ; 4.47e-10 s ; Yes ; Yes ; +; HEX0[3] ; 2.5 V ; 0 s ; 0 s ; 2.32 V ; 4.67e-07 V ; 2.36 V ; -0.00552 V ; 0.11 V ; 0.007 V ; 4.54e-10 s ; 4.35e-10 s ; Yes ; Yes ; 2.32 V ; 4.67e-07 V ; 2.36 V ; -0.00552 V ; 0.11 V ; 0.007 V ; 4.54e-10 s ; 4.35e-10 s ; Yes ; Yes ; +; HEX0[4] ; 2.5 V ; 0 s ; 0 s ; 2.32 V ; 4.67e-07 V ; 2.36 V ; -0.00552 V ; 0.11 V ; 0.007 V ; 4.54e-10 s ; 4.35e-10 s ; Yes ; Yes ; 2.32 V ; 4.67e-07 V ; 2.36 V ; -0.00552 V ; 0.11 V ; 0.007 V ; 4.54e-10 s ; 4.35e-10 s ; Yes ; Yes ; +; HEX0[5] ; 2.5 V ; 0 s ; 0 s ; 2.32 V ; 4.67e-07 V ; 2.33 V ; -0.00269 V ; 0.13 V ; 0.055 V ; 3.54e-09 s ; 3.29e-09 s ; Yes ; Yes ; 2.32 V ; 4.67e-07 V ; 2.33 V ; -0.00269 V ; 0.13 V ; 0.055 V ; 3.54e-09 s ; 3.29e-09 s ; Yes ; Yes ; +; HEX0[6] ; 2.5 V ; 0 s ; 0 s ; 2.32 V ; 4.67e-07 V ; 2.36 V ; -0.00552 V ; 0.11 V ; 0.007 V ; 4.54e-10 s ; 4.35e-10 s ; Yes ; Yes ; 2.32 V ; 4.67e-07 V ; 2.36 V ; -0.00552 V ; 0.11 V ; 0.007 V ; 4.54e-10 s ; 4.35e-10 s ; Yes ; Yes ; +; HEX1[0] ; 2.5 V ; 0 s ; 0 s ; 2.32 V ; 4.67e-07 V ; 2.36 V ; -0.00552 V ; 0.11 V ; 0.007 V ; 4.54e-10 s ; 4.35e-10 s ; Yes ; Yes ; 2.32 V ; 4.67e-07 V ; 2.36 V ; -0.00552 V ; 0.11 V ; 0.007 V ; 4.54e-10 s ; 4.35e-10 s ; Yes ; Yes ; +; HEX1[1] ; 2.5 V ; 0 s ; 0 s ; 2.32 V ; 4.67e-07 V ; 2.35 V ; -0.00942 V ; 0.116 V ; 0.033 V ; 6.66e-10 s ; 6.27e-10 s ; Yes ; Yes ; 2.32 V ; 4.67e-07 V ; 2.35 V ; -0.00942 V ; 0.116 V ; 0.033 V ; 6.66e-10 s ; 6.27e-10 s ; Yes ; Yes ; +; HEX1[2] ; 2.5 V ; 0 s ; 0 s ; 2.32 V ; 4.67e-07 V ; 2.35 V ; -0.00942 V ; 0.116 V ; 0.033 V ; 6.66e-10 s ; 6.27e-10 s ; Yes ; Yes ; 2.32 V ; 4.67e-07 V ; 2.35 V ; -0.00942 V ; 0.116 V ; 0.033 V ; 6.66e-10 s ; 6.27e-10 s ; Yes ; Yes ; +; HEX1[3] ; 2.5 V ; 0 s ; 0 s ; 2.32 V ; 4.67e-07 V ; 2.35 V ; -0.00942 V ; 0.116 V ; 0.033 V ; 6.66e-10 s ; 6.27e-10 s ; Yes ; Yes ; 2.32 V ; 4.67e-07 V ; 2.35 V ; -0.00942 V ; 0.116 V ; 0.033 V ; 6.66e-10 s ; 6.27e-10 s ; Yes ; Yes ; +; HEX1[4] ; 2.5 V ; 0 s ; 0 s ; 2.32 V ; 4.67e-07 V ; 2.35 V ; -0.00942 V ; 0.116 V ; 0.033 V ; 6.66e-10 s ; 6.27e-10 s ; Yes ; Yes ; 2.32 V ; 4.67e-07 V ; 2.35 V ; -0.00942 V ; 0.116 V ; 0.033 V ; 6.66e-10 s ; 6.27e-10 s ; Yes ; Yes ; +; HEX1[5] ; 2.5 V ; 0 s ; 0 s ; 2.32 V ; 4.67e-07 V ; 2.33 V ; -0.00269 V ; 0.13 V ; 0.055 V ; 3.54e-09 s ; 3.29e-09 s ; Yes ; Yes ; 2.32 V ; 4.67e-07 V ; 2.33 V ; -0.00269 V ; 0.13 V ; 0.055 V ; 3.54e-09 s ; 3.29e-09 s ; Yes ; Yes ; +; HEX1[6] ; 2.5 V ; 0 s ; 0 s ; 2.32 V ; 4.67e-07 V ; 2.33 V ; -0.00269 V ; 0.13 V ; 0.055 V ; 3.54e-09 s ; 3.29e-09 s ; Yes ; Yes ; 2.32 V ; 4.67e-07 V ; 2.33 V ; -0.00269 V ; 0.13 V ; 0.055 V ; 3.54e-09 s ; 3.29e-09 s ; Yes ; Yes ; +; HEX2[0] ; 2.5 V ; 0 s ; 0 s ; 2.32 V ; 4.67e-07 V ; 2.35 V ; -0.00942 V ; 0.116 V ; 0.033 V ; 6.66e-10 s ; 6.27e-10 s ; Yes ; Yes ; 2.32 V ; 4.67e-07 V ; 2.35 V ; -0.00942 V ; 0.116 V ; 0.033 V ; 6.66e-10 s ; 6.27e-10 s ; Yes ; Yes ; +; HEX2[1] ; 2.5 V ; 0 s ; 0 s ; 2.32 V ; 4.67e-07 V ; 2.35 V ; -0.00942 V ; 0.116 V ; 0.033 V ; 6.66e-10 s ; 6.27e-10 s ; Yes ; Yes ; 2.32 V ; 4.67e-07 V ; 2.35 V ; -0.00942 V ; 0.116 V ; 0.033 V ; 6.66e-10 s ; 6.27e-10 s ; Yes ; Yes ; +; HEX2[2] ; 2.5 V ; 0 s ; 0 s ; 2.32 V ; 4.67e-07 V ; 2.35 V ; -0.00942 V ; 0.116 V ; 0.033 V ; 6.66e-10 s ; 6.27e-10 s ; Yes ; Yes ; 2.32 V ; 4.67e-07 V ; 2.35 V ; -0.00942 V ; 0.116 V ; 0.033 V ; 6.66e-10 s ; 6.27e-10 s ; Yes ; Yes ; +; HEX2[3] ; 2.5 V ; 0 s ; 0 s ; 2.32 V ; 4.67e-07 V ; 2.35 V ; -0.00942 V ; 0.116 V ; 0.033 V ; 6.66e-10 s ; 6.27e-10 s ; Yes ; Yes ; 2.32 V ; 4.67e-07 V ; 2.35 V ; -0.00942 V ; 0.116 V ; 0.033 V ; 6.66e-10 s ; 6.27e-10 s ; Yes ; Yes ; +; HEX2[4] ; 2.5 V ; 0 s ; 0 s ; 2.32 V ; 4.67e-07 V ; 2.35 V ; -0.00942 V ; 0.116 V ; 0.033 V ; 6.66e-10 s ; 6.27e-10 s ; Yes ; Yes ; 2.32 V ; 4.67e-07 V ; 2.35 V ; -0.00942 V ; 0.116 V ; 0.033 V ; 6.66e-10 s ; 6.27e-10 s ; Yes ; Yes ; +; HEX2[5] ; 2.5 V ; 0 s ; 0 s ; 2.32 V ; 4.67e-07 V ; 2.35 V ; -0.00942 V ; 0.116 V ; 0.033 V ; 6.66e-10 s ; 6.27e-10 s ; Yes ; Yes ; 2.32 V ; 4.67e-07 V ; 2.35 V ; -0.00942 V ; 0.116 V ; 0.033 V ; 6.66e-10 s ; 6.27e-10 s ; Yes ; Yes ; +; HEX2[6] ; 2.5 V ; 0 s ; 0 s ; 2.32 V ; 4.67e-07 V ; 2.35 V ; -0.00942 V ; 0.116 V ; 0.033 V ; 6.66e-10 s ; 6.27e-10 s ; Yes ; Yes ; 2.32 V ; 4.67e-07 V ; 2.35 V ; -0.00942 V ; 0.116 V ; 0.033 V ; 6.66e-10 s ; 6.27e-10 s ; Yes ; Yes ; +; HEX3[0] ; 2.5 V ; 0 s ; 0 s ; 2.32 V ; 4.67e-07 V ; 2.35 V ; -0.00942 V ; 0.116 V ; 0.033 V ; 6.66e-10 s ; 6.27e-10 s ; Yes ; Yes ; 2.32 V ; 4.67e-07 V ; 2.35 V ; -0.00942 V ; 0.116 V ; 0.033 V ; 6.66e-10 s ; 6.27e-10 s ; Yes ; Yes ; +; HEX3[1] ; 2.5 V ; 0 s ; 0 s ; 2.32 V ; 4.67e-07 V ; 2.36 V ; -0.00552 V ; 0.11 V ; 0.007 V ; 4.54e-10 s ; 4.35e-10 s ; Yes ; Yes ; 2.32 V ; 4.67e-07 V ; 2.36 V ; -0.00552 V ; 0.11 V ; 0.007 V ; 4.54e-10 s ; 4.35e-10 s ; Yes ; Yes ; +; HEX3[2] ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.08 V ; 1.9e-06 V ; 3.08 V ; -0.00581 V ; 0.138 V ; 0.22 V ; 5.55e-09 s ; 4.38e-09 s ; Yes ; Yes ; 3.08 V ; 1.9e-06 V ; 3.08 V ; -0.00581 V ; 0.138 V ; 0.22 V ; 5.55e-09 s ; 4.38e-09 s ; Yes ; Yes ; +; HEX3[3] ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.08 V ; 1.9e-06 V ; 3.11 V ; -0.0625 V ; 0.224 V ; 0.17 V ; 6.86e-10 s ; 6.31e-10 s ; Yes ; No ; 3.08 V ; 1.9e-06 V ; 3.11 V ; -0.0625 V ; 0.224 V ; 0.17 V ; 6.86e-10 s ; 6.31e-10 s ; Yes ; No ; +; HEX3[4] ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.08 V ; 1.9e-06 V ; 3.11 V ; -0.0625 V ; 0.224 V ; 0.17 V ; 6.86e-10 s ; 6.31e-10 s ; Yes ; No ; 3.08 V ; 1.9e-06 V ; 3.11 V ; -0.0625 V ; 0.224 V ; 0.17 V ; 6.86e-10 s ; 6.31e-10 s ; Yes ; No ; +; HEX3[5] ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.08 V ; 1.9e-06 V ; 3.11 V ; -0.0625 V ; 0.224 V ; 0.17 V ; 6.86e-10 s ; 6.31e-10 s ; Yes ; No ; 3.08 V ; 1.9e-06 V ; 3.11 V ; -0.0625 V ; 0.224 V ; 0.17 V ; 6.86e-10 s ; 6.31e-10 s ; Yes ; No ; +; HEX3[6] ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.08 V ; 1.9e-06 V ; 3.11 V ; -0.0625 V ; 0.224 V ; 0.17 V ; 6.86e-10 s ; 6.31e-10 s ; Yes ; No ; 3.08 V ; 1.9e-06 V ; 3.11 V ; -0.0625 V ; 0.224 V ; 0.17 V ; 6.86e-10 s ; 6.31e-10 s ; Yes ; No ; +; HEX4[0] ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.08 V ; 1.9e-06 V ; 3.11 V ; -0.0625 V ; 0.224 V ; 0.17 V ; 6.86e-10 s ; 6.31e-10 s ; Yes ; No ; 3.08 V ; 1.9e-06 V ; 3.11 V ; -0.0625 V ; 0.224 V ; 0.17 V ; 6.86e-10 s ; 6.31e-10 s ; Yes ; No ; +; HEX4[1] ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.08 V ; 1.9e-06 V ; 3.11 V ; -0.0625 V ; 0.224 V ; 0.17 V ; 6.86e-10 s ; 6.31e-10 s ; Yes ; No ; 3.08 V ; 1.9e-06 V ; 3.11 V ; -0.0625 V ; 0.224 V ; 0.17 V ; 6.86e-10 s ; 6.31e-10 s ; Yes ; No ; +; HEX4[2] ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.08 V ; 1.9e-06 V ; 3.11 V ; -0.0625 V ; 0.224 V ; 0.17 V ; 6.86e-10 s ; 6.31e-10 s ; Yes ; No ; 3.08 V ; 1.9e-06 V ; 3.11 V ; -0.0625 V ; 0.224 V ; 0.17 V ; 6.86e-10 s ; 6.31e-10 s ; Yes ; No ; +; HEX4[3] ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.08 V ; 1.9e-06 V ; 3.11 V ; -0.0625 V ; 0.224 V ; 0.17 V ; 6.86e-10 s ; 6.31e-10 s ; Yes ; No ; 3.08 V ; 1.9e-06 V ; 3.11 V ; -0.0625 V ; 0.224 V ; 0.17 V ; 6.86e-10 s ; 6.31e-10 s ; Yes ; No ; +; HEX4[4] ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.08 V ; 1.9e-06 V ; 3.11 V ; -0.0625 V ; 0.224 V ; 0.17 V ; 6.86e-10 s ; 6.31e-10 s ; Yes ; No ; 3.08 V ; 1.9e-06 V ; 3.11 V ; -0.0625 V ; 0.224 V ; 0.17 V ; 6.86e-10 s ; 6.31e-10 s ; Yes ; No ; +; HEX4[5] ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.08 V ; 1.9e-06 V ; 3.11 V ; -0.0625 V ; 0.224 V ; 0.17 V ; 6.86e-10 s ; 6.31e-10 s ; Yes ; No ; 3.08 V ; 1.9e-06 V ; 3.11 V ; -0.0625 V ; 0.224 V ; 0.17 V ; 6.86e-10 s ; 6.31e-10 s ; Yes ; No ; +; HEX4[6] ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.08 V ; 1.9e-06 V ; 3.11 V ; -0.0625 V ; 0.224 V ; 0.17 V ; 6.86e-10 s ; 6.31e-10 s ; Yes ; No ; 3.08 V ; 1.9e-06 V ; 3.11 V ; -0.0625 V ; 0.224 V ; 0.17 V ; 6.86e-10 s ; 6.31e-10 s ; Yes ; No ; +; HEX5[0] ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.08 V ; 1.9e-06 V ; 3.11 V ; -0.0625 V ; 0.224 V ; 0.17 V ; 6.86e-10 s ; 6.31e-10 s ; Yes ; No ; 3.08 V ; 1.9e-06 V ; 3.11 V ; -0.0625 V ; 0.224 V ; 0.17 V ; 6.86e-10 s ; 6.31e-10 s ; Yes ; No ; +; HEX5[1] ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.08 V ; 1.9e-06 V ; 3.08 V ; -0.00581 V ; 0.138 V ; 0.22 V ; 5.55e-09 s ; 4.38e-09 s ; Yes ; Yes ; 3.08 V ; 1.9e-06 V ; 3.08 V ; -0.00581 V ; 0.138 V ; 0.22 V ; 5.55e-09 s ; 4.38e-09 s ; Yes ; Yes ; +; HEX5[2] ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.08 V ; 1.9e-06 V ; 3.11 V ; -0.0625 V ; 0.224 V ; 0.17 V ; 6.86e-10 s ; 6.31e-10 s ; Yes ; No ; 3.08 V ; 1.9e-06 V ; 3.11 V ; -0.0625 V ; 0.224 V ; 0.17 V ; 6.86e-10 s ; 6.31e-10 s ; Yes ; No ; +; HEX5[3] ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.08 V ; 1.9e-06 V ; 3.11 V ; -0.0625 V ; 0.224 V ; 0.17 V ; 6.86e-10 s ; 6.31e-10 s ; Yes ; No ; 3.08 V ; 1.9e-06 V ; 3.11 V ; -0.0625 V ; 0.224 V ; 0.17 V ; 6.86e-10 s ; 6.31e-10 s ; Yes ; No ; +; HEX5[4] ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.08 V ; 1.9e-06 V ; 3.11 V ; -0.0625 V ; 0.224 V ; 0.17 V ; 6.86e-10 s ; 6.31e-10 s ; Yes ; No ; 3.08 V ; 1.9e-06 V ; 3.11 V ; -0.0625 V ; 0.224 V ; 0.17 V ; 6.86e-10 s ; 6.31e-10 s ; Yes ; No ; +; HEX5[5] ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.08 V ; 1.9e-06 V ; 3.11 V ; -0.0625 V ; 0.224 V ; 0.17 V ; 6.86e-10 s ; 6.31e-10 s ; Yes ; No ; 3.08 V ; 1.9e-06 V ; 3.11 V ; -0.0625 V ; 0.224 V ; 0.17 V ; 6.86e-10 s ; 6.31e-10 s ; Yes ; No ; +; HEX5[6] ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.08 V ; 1.9e-06 V ; 3.11 V ; -0.0625 V ; 0.224 V ; 0.17 V ; 6.86e-10 s ; 6.31e-10 s ; Yes ; No ; 3.08 V ; 1.9e-06 V ; 3.11 V ; -0.0625 V ; 0.224 V ; 0.17 V ; 6.86e-10 s ; 6.31e-10 s ; Yes ; No ; +; HEX6[0] ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.08 V ; 1.9e-06 V ; 3.11 V ; -0.0625 V ; 0.224 V ; 0.17 V ; 6.86e-10 s ; 6.31e-10 s ; Yes ; No ; 3.08 V ; 1.9e-06 V ; 3.11 V ; -0.0625 V ; 0.224 V ; 0.17 V ; 6.86e-10 s ; 6.31e-10 s ; Yes ; No ; +; HEX6[1] ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.08 V ; 1.9e-06 V ; 3.11 V ; -0.0625 V ; 0.224 V ; 0.17 V ; 6.86e-10 s ; 6.31e-10 s ; Yes ; No ; 3.08 V ; 1.9e-06 V ; 3.11 V ; -0.0625 V ; 0.224 V ; 0.17 V ; 6.86e-10 s ; 6.31e-10 s ; Yes ; No ; +; HEX6[2] ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.08 V ; 1.9e-06 V ; 3.11 V ; -0.0625 V ; 0.224 V ; 0.17 V ; 6.86e-10 s ; 6.31e-10 s ; Yes ; No ; 3.08 V ; 1.9e-06 V ; 3.11 V ; -0.0625 V ; 0.224 V ; 0.17 V ; 6.86e-10 s ; 6.31e-10 s ; Yes ; No ; +; HEX6[3] ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.08 V ; 1.9e-06 V ; 3.11 V ; -0.0625 V ; 0.224 V ; 0.17 V ; 6.86e-10 s ; 6.31e-10 s ; Yes ; No ; 3.08 V ; 1.9e-06 V ; 3.11 V ; -0.0625 V ; 0.224 V ; 0.17 V ; 6.86e-10 s ; 6.31e-10 s ; Yes ; No ; +; HEX6[4] ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.08 V ; 1.9e-06 V ; 3.11 V ; -0.0625 V ; 0.224 V ; 0.17 V ; 6.86e-10 s ; 6.31e-10 s ; Yes ; No ; 3.08 V ; 1.9e-06 V ; 3.11 V ; -0.0625 V ; 0.224 V ; 0.17 V ; 6.86e-10 s ; 6.31e-10 s ; Yes ; No ; +; HEX6[5] ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.08 V ; 1.9e-06 V ; 3.08 V ; -0.00581 V ; 0.138 V ; 0.22 V ; 5.55e-09 s ; 4.38e-09 s ; Yes ; Yes ; 3.08 V ; 1.9e-06 V ; 3.08 V ; -0.00581 V ; 0.138 V ; 0.22 V ; 5.55e-09 s ; 4.38e-09 s ; Yes ; Yes ; +; HEX6[6] ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.08 V ; 1.9e-06 V ; 3.11 V ; -0.0625 V ; 0.224 V ; 0.17 V ; 6.86e-10 s ; 6.31e-10 s ; Yes ; No ; 3.08 V ; 1.9e-06 V ; 3.11 V ; -0.0625 V ; 0.224 V ; 0.17 V ; 6.86e-10 s ; 6.31e-10 s ; Yes ; No ; +; HEX7[0] ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.08 V ; 1.9e-06 V ; 3.11 V ; -0.0625 V ; 0.224 V ; 0.17 V ; 6.86e-10 s ; 6.31e-10 s ; Yes ; No ; 3.08 V ; 1.9e-06 V ; 3.11 V ; -0.0625 V ; 0.224 V ; 0.17 V ; 6.86e-10 s ; 6.31e-10 s ; Yes ; No ; +; HEX7[1] ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.08 V ; 1.9e-06 V ; 3.11 V ; -0.0625 V ; 0.224 V ; 0.17 V ; 6.86e-10 s ; 6.31e-10 s ; Yes ; No ; 3.08 V ; 1.9e-06 V ; 3.11 V ; -0.0625 V ; 0.224 V ; 0.17 V ; 6.86e-10 s ; 6.31e-10 s ; Yes ; No ; +; HEX7[2] ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.08 V ; 1.9e-06 V ; 3.11 V ; -0.0625 V ; 0.224 V ; 0.17 V ; 6.86e-10 s ; 6.31e-10 s ; Yes ; No ; 3.08 V ; 1.9e-06 V ; 3.11 V ; -0.0625 V ; 0.224 V ; 0.17 V ; 6.86e-10 s ; 6.31e-10 s ; Yes ; No ; +; HEX7[3] ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.08 V ; 1.9e-06 V ; 3.11 V ; -0.0625 V ; 0.224 V ; 0.17 V ; 6.86e-10 s ; 6.31e-10 s ; Yes ; No ; 3.08 V ; 1.9e-06 V ; 3.11 V ; -0.0625 V ; 0.224 V ; 0.17 V ; 6.86e-10 s ; 6.31e-10 s ; Yes ; No ; +; HEX7[4] ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.08 V ; 1.9e-06 V ; 3.11 V ; -0.0625 V ; 0.224 V ; 0.17 V ; 6.86e-10 s ; 6.31e-10 s ; Yes ; No ; 3.08 V ; 1.9e-06 V ; 3.11 V ; -0.0625 V ; 0.224 V ; 0.17 V ; 6.86e-10 s ; 6.31e-10 s ; Yes ; No ; +; HEX7[5] ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.08 V ; 1.9e-06 V ; 3.11 V ; -0.0625 V ; 0.224 V ; 0.17 V ; 6.86e-10 s ; 6.31e-10 s ; Yes ; No ; 3.08 V ; 1.9e-06 V ; 3.11 V ; -0.0625 V ; 0.224 V ; 0.17 V ; 6.86e-10 s ; 6.31e-10 s ; Yes ; No ; +; HEX7[6] ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.08 V ; 1.9e-06 V ; 3.11 V ; -0.0625 V ; 0.224 V ; 0.17 V ; 6.86e-10 s ; 6.31e-10 s ; Yes ; No ; 3.08 V ; 1.9e-06 V ; 3.11 V ; -0.0625 V ; 0.224 V ; 0.17 V ; 6.86e-10 s ; 6.31e-10 s ; Yes ; No ; +; LCD_RS ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.08 V ; 1.28e-06 V ; 3.11 V ; -0.0528 V ; 0.302 V ; 0.199 V ; 9.51e-10 s ; 8.47e-10 s ; Yes ; No ; 3.08 V ; 1.28e-06 V ; 3.11 V ; -0.0528 V ; 0.302 V ; 0.199 V ; 9.51e-10 s ; 8.47e-10 s ; Yes ; No ; +; LCD_RW ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.08 V ; 1.28e-06 V ; 3.11 V ; -0.0528 V ; 0.302 V ; 0.199 V ; 9.51e-10 s ; 8.47e-10 s ; Yes ; No ; 3.08 V ; 1.28e-06 V ; 3.11 V ; -0.0528 V ; 0.302 V ; 0.199 V ; 9.51e-10 s ; 8.47e-10 s ; Yes ; No ; +; LCD_data[0] ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.08 V ; 1.28e-06 V ; 3.11 V ; -0.0528 V ; 0.302 V ; 0.199 V ; 9.51e-10 s ; 8.47e-10 s ; Yes ; No ; 3.08 V ; 1.28e-06 V ; 3.11 V ; -0.0528 V ; 0.302 V ; 0.199 V ; 9.51e-10 s ; 8.47e-10 s ; Yes ; No ; +; LCD_data[1] ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.08 V ; 1.28e-06 V ; 3.11 V ; -0.0528 V ; 0.302 V ; 0.199 V ; 9.51e-10 s ; 8.47e-10 s ; Yes ; No ; 3.08 V ; 1.28e-06 V ; 3.11 V ; -0.0528 V ; 0.302 V ; 0.199 V ; 9.51e-10 s ; 8.47e-10 s ; Yes ; No ; +; LCD_data[2] ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.08 V ; 1.28e-06 V ; 3.11 V ; -0.0528 V ; 0.302 V ; 0.199 V ; 9.51e-10 s ; 8.47e-10 s ; Yes ; No ; 3.08 V ; 1.28e-06 V ; 3.11 V ; -0.0528 V ; 0.302 V ; 0.199 V ; 9.51e-10 s ; 8.47e-10 s ; Yes ; No ; +; LCD_data[3] ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.08 V ; 1.28e-06 V ; 3.11 V ; -0.0528 V ; 0.302 V ; 0.199 V ; 9.51e-10 s ; 8.47e-10 s ; Yes ; No ; 3.08 V ; 1.28e-06 V ; 3.11 V ; -0.0528 V ; 0.302 V ; 0.199 V ; 9.51e-10 s ; 8.47e-10 s ; Yes ; No ; +; LCD_data[4] ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.08 V ; 1.28e-06 V ; 3.11 V ; -0.0528 V ; 0.302 V ; 0.199 V ; 9.51e-10 s ; 8.47e-10 s ; Yes ; No ; 3.08 V ; 1.28e-06 V ; 3.11 V ; -0.0528 V ; 0.302 V ; 0.199 V ; 9.51e-10 s ; 8.47e-10 s ; Yes ; No ; +; LCD_data[5] ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.08 V ; 1.28e-06 V ; 3.11 V ; -0.0528 V ; 0.302 V ; 0.199 V ; 9.51e-10 s ; 8.47e-10 s ; Yes ; No ; 3.08 V ; 1.28e-06 V ; 3.11 V ; -0.0528 V ; 0.302 V ; 0.199 V ; 9.51e-10 s ; 8.47e-10 s ; Yes ; No ; +; LCD_data[6] ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.08 V ; 1.28e-06 V ; 3.11 V ; -0.0528 V ; 0.302 V ; 0.199 V ; 9.51e-10 s ; 8.47e-10 s ; Yes ; No ; 3.08 V ; 1.28e-06 V ; 3.11 V ; -0.0528 V ; 0.302 V ; 0.199 V ; 9.51e-10 s ; 8.47e-10 s ; Yes ; No ; +; LCD_data[7] ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.08 V ; 1.28e-06 V ; 3.08 V ; -0.00641 V ; 0.261 V ; 0.26 V ; 5.52e-09 s ; 4.36e-09 s ; Yes ; Yes ; 3.08 V ; 1.28e-06 V ; 3.08 V ; -0.00641 V ; 0.261 V ; 0.26 V ; 5.52e-09 s ; 4.36e-09 s ; Yes ; Yes ; +; LCD_EN ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.08 V ; 1.28e-06 V ; 3.11 V ; -0.0528 V ; 0.302 V ; 0.199 V ; 9.51e-10 s ; 8.47e-10 s ; Yes ; No ; 3.08 V ; 1.28e-06 V ; 3.11 V ; -0.0528 V ; 0.302 V ; 0.199 V ; 9.51e-10 s ; 8.47e-10 s ; Yes ; No ; +; LCD_ON ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.08 V ; 1.28e-06 V ; 3.08 V ; -0.00641 V ; 0.261 V ; 0.26 V ; 5.52e-09 s ; 4.36e-09 s ; Yes ; Yes ; 3.08 V ; 1.28e-06 V ; 3.08 V ; -0.00641 V ; 0.261 V ; 0.26 V ; 5.52e-09 s ; 4.36e-09 s ; Yes ; Yes ; +; LCD_BLON ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.08 V ; 1.28e-06 V ; 3.11 V ; -0.0528 V ; 0.302 V ; 0.199 V ; 9.51e-10 s ; 8.47e-10 s ; Yes ; No ; 3.08 V ; 1.28e-06 V ; 3.11 V ; -0.0528 V ; 0.302 V ; 0.199 V ; 9.51e-10 s ; 8.47e-10 s ; Yes ; No ; +; altera_reserved_tdo ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.08 V ; 5.02e-06 V ; 3.09 V ; -0.00287 V ; 0.055 V ; 0.123 V ; 8.59e-10 s ; 2.03e-09 s ; Yes ; Yes ; 3.08 V ; 5.02e-06 V ; 3.09 V ; -0.00287 V ; 0.055 V ; 0.123 V ; 8.59e-10 s ; 2.03e-09 s ; Yes ; Yes ; +; ~ALTERA_DCLK~ ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.08 V ; 6.54e-07 V ; 3.14 V ; -0.115 V ; 0.146 V ; 0.141 V ; 3.07e-10 s ; 3.96e-10 s ; Yes ; No ; 3.08 V ; 6.54e-07 V ; 3.14 V ; -0.115 V ; 0.146 V ; 0.141 V ; 3.07e-10 s ; 3.96e-10 s ; Yes ; No ; +; ~ALTERA_nCEO~ ; 2.5 V ; 0 s ; 0 s ; 2.32 V ; 6.15e-07 V ; 2.35 V ; -0.00712 V ; 0.093 V ; 0.02 V ; 6.21e-10 s ; 7.9e-10 s ; Yes ; Yes ; 2.32 V ; 6.15e-07 V ; 2.35 V ; -0.00712 V ; 0.093 V ; 0.02 V ; 6.21e-10 s ; 7.9e-10 s ; Yes ; Yes ; ++---------------------+--------------+---------------------+---------------------+------------------------------+------------------------------+---------------------+---------------------+--------------------------------------+--------------------------------------+-----------------------------+-----------------------------+----------------------------+----------------------------+-----------------------------+-----------------------------+--------------------+--------------------+-------------------------------------+-------------------------------------+----------------------------+----------------------------+---------------------------+---------------------------+ + + ++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Signal Integrity Metrics (Fast 1200mv 0c Model) ; ++---------------------+--------------+---------------------+---------------------+------------------------------+------------------------------+---------------------+---------------------+--------------------------------------+--------------------------------------+-----------------------------+-----------------------------+----------------------------+----------------------------+-----------------------------+-----------------------------+--------------------+--------------------+-------------------------------------+-------------------------------------+----------------------------+----------------------------+---------------------------+---------------------------+ +; Pin ; I/O Standard ; Board Delay on Rise ; Board Delay on Fall ; Steady State Voh at FPGA Pin ; Steady State Vol at FPGA Pin ; Voh Max at FPGA Pin ; Vol Min at FPGA Pin ; Ringback Voltage on Rise at FPGA Pin ; Ringback Voltage on Fall at FPGA Pin ; 10-90 Rise Time at FPGA Pin ; 90-10 Fall Time at FPGA Pin ; Monotonic Rise at FPGA Pin ; Monotonic Fall at FPGA Pin ; Steady State Voh at Far-end ; Steady State Vol at Far-end ; Voh Max at Far-end ; Vol Min at Far-end ; Ringback Voltage on Rise at Far-end ; Ringback Voltage on Fall at Far-end ; 10-90 Rise Time at Far-end ; 90-10 Fall Time at Far-end ; Monotonic Rise at Far-end ; Monotonic Fall at Far-end ; ++---------------------+--------------+---------------------+---------------------+------------------------------+------------------------------+---------------------+---------------------+--------------------------------------+--------------------------------------+-----------------------------+-----------------------------+----------------------------+----------------------------+-----------------------------+-----------------------------+--------------------+--------------------+-------------------------------------+-------------------------------------+----------------------------+----------------------------+---------------------------+---------------------------+ +; LEDG[0] ; 2.5 V ; 0 s ; 0 s ; 2.62 V ; 4.05e-08 V ; 2.72 V ; -0.0349 V ; 0.173 V ; 0.1 V ; 2.72e-10 s ; 2.69e-10 s ; Yes ; Yes ; 2.62 V ; 4.05e-08 V ; 2.72 V ; -0.0349 V ; 0.173 V ; 0.1 V ; 2.72e-10 s ; 2.69e-10 s ; Yes ; Yes ; +; LEDG[1] ; 2.5 V ; 0 s ; 0 s ; 2.62 V ; 4.05e-08 V ; 2.72 V ; -0.0349 V ; 0.173 V ; 0.1 V ; 2.72e-10 s ; 2.69e-10 s ; Yes ; Yes ; 2.62 V ; 4.05e-08 V ; 2.72 V ; -0.0349 V ; 0.173 V ; 0.1 V ; 2.72e-10 s ; 2.69e-10 s ; Yes ; Yes ; +; LEDG[2] ; 2.5 V ; 0 s ; 0 s ; 2.62 V ; 4.05e-08 V ; 2.72 V ; -0.0349 V ; 0.173 V ; 0.1 V ; 2.72e-10 s ; 2.69e-10 s ; Yes ; Yes ; 2.62 V ; 4.05e-08 V ; 2.72 V ; -0.0349 V ; 0.173 V ; 0.1 V ; 2.72e-10 s ; 2.69e-10 s ; Yes ; Yes ; +; LEDG[3] ; 2.5 V ; 0 s ; 0 s ; 2.62 V ; 4.05e-08 V ; 2.72 V ; -0.0349 V ; 0.173 V ; 0.1 V ; 2.72e-10 s ; 2.69e-10 s ; Yes ; Yes ; 2.62 V ; 4.05e-08 V ; 2.72 V ; -0.0349 V ; 0.173 V ; 0.1 V ; 2.72e-10 s ; 2.69e-10 s ; Yes ; Yes ; +; LEDG[4] ; 2.5 V ; 0 s ; 0 s ; 2.62 V ; 4.05e-08 V ; 2.72 V ; -0.0349 V ; 0.173 V ; 0.1 V ; 2.72e-10 s ; 2.69e-10 s ; Yes ; Yes ; 2.62 V ; 4.05e-08 V ; 2.72 V ; -0.0349 V ; 0.173 V ; 0.1 V ; 2.72e-10 s ; 2.69e-10 s ; Yes ; Yes ; +; LEDG[5] ; 2.5 V ; 0 s ; 0 s ; 2.62 V ; 4.05e-08 V ; 2.72 V ; -0.0349 V ; 0.173 V ; 0.1 V ; 2.72e-10 s ; 2.69e-10 s ; Yes ; Yes ; 2.62 V ; 4.05e-08 V ; 2.72 V ; -0.0349 V ; 0.173 V ; 0.1 V ; 2.72e-10 s ; 2.69e-10 s ; Yes ; Yes ; +; LEDG[6] ; 2.5 V ; 0 s ; 0 s ; 2.62 V ; 4.05e-08 V ; 2.72 V ; -0.0349 V ; 0.173 V ; 0.1 V ; 2.72e-10 s ; 2.69e-10 s ; Yes ; Yes ; 2.62 V ; 4.05e-08 V ; 2.72 V ; -0.0349 V ; 0.173 V ; 0.1 V ; 2.72e-10 s ; 2.69e-10 s ; Yes ; Yes ; +; LEDG[7] ; 2.5 V ; 0 s ; 0 s ; 2.62 V ; 4.05e-08 V ; 2.72 V ; -0.0349 V ; 0.173 V ; 0.1 V ; 2.72e-10 s ; 2.69e-10 s ; Yes ; Yes ; 2.62 V ; 4.05e-08 V ; 2.72 V ; -0.0349 V ; 0.173 V ; 0.1 V ; 2.72e-10 s ; 2.69e-10 s ; Yes ; Yes ; +; LEDR[0] ; 2.5 V ; 0 s ; 0 s ; 2.62 V ; 4.05e-08 V ; 2.72 V ; -0.0349 V ; 0.173 V ; 0.1 V ; 2.72e-10 s ; 2.69e-10 s ; Yes ; Yes ; 2.62 V ; 4.05e-08 V ; 2.72 V ; -0.0349 V ; 0.173 V ; 0.1 V ; 2.72e-10 s ; 2.69e-10 s ; Yes ; Yes ; +; LEDR[1] ; 2.5 V ; 0 s ; 0 s ; 2.62 V ; 4.05e-08 V ; 2.72 V ; -0.0349 V ; 0.173 V ; 0.1 V ; 2.72e-10 s ; 2.69e-10 s ; Yes ; Yes ; 2.62 V ; 4.05e-08 V ; 2.72 V ; -0.0349 V ; 0.173 V ; 0.1 V ; 2.72e-10 s ; 2.69e-10 s ; Yes ; Yes ; +; LEDR[2] ; 2.5 V ; 0 s ; 0 s ; 2.62 V ; 4.05e-08 V ; 2.72 V ; -0.0349 V ; 0.173 V ; 0.1 V ; 2.72e-10 s ; 2.69e-10 s ; Yes ; Yes ; 2.62 V ; 4.05e-08 V ; 2.72 V ; -0.0349 V ; 0.173 V ; 0.1 V ; 2.72e-10 s ; 2.69e-10 s ; Yes ; Yes ; +; LEDR[3] ; 2.5 V ; 0 s ; 0 s ; 2.62 V ; 4.05e-08 V ; 2.72 V ; -0.0349 V ; 0.173 V ; 0.1 V ; 2.72e-10 s ; 2.69e-10 s ; Yes ; Yes ; 2.62 V ; 4.05e-08 V ; 2.72 V ; -0.0349 V ; 0.173 V ; 0.1 V ; 2.72e-10 s ; 2.69e-10 s ; Yes ; Yes ; +; LEDR[4] ; 2.5 V ; 0 s ; 0 s ; 2.62 V ; 4.05e-08 V ; 2.72 V ; -0.0349 V ; 0.173 V ; 0.1 V ; 2.72e-10 s ; 2.69e-10 s ; Yes ; Yes ; 2.62 V ; 4.05e-08 V ; 2.72 V ; -0.0349 V ; 0.173 V ; 0.1 V ; 2.72e-10 s ; 2.69e-10 s ; Yes ; Yes ; +; LEDR[5] ; 2.5 V ; 0 s ; 0 s ; 2.62 V ; 4.05e-08 V ; 2.72 V ; -0.0349 V ; 0.173 V ; 0.1 V ; 2.72e-10 s ; 2.69e-10 s ; Yes ; Yes ; 2.62 V ; 4.05e-08 V ; 2.72 V ; -0.0349 V ; 0.173 V ; 0.1 V ; 2.72e-10 s ; 2.69e-10 s ; Yes ; Yes ; +; LEDR[6] ; 2.5 V ; 0 s ; 0 s ; 2.62 V ; 4.05e-08 V ; 2.72 V ; -0.0349 V ; 0.173 V ; 0.1 V ; 2.72e-10 s ; 2.69e-10 s ; Yes ; Yes ; 2.62 V ; 4.05e-08 V ; 2.72 V ; -0.0349 V ; 0.173 V ; 0.1 V ; 2.72e-10 s ; 2.69e-10 s ; Yes ; Yes ; +; LEDR[7] ; 2.5 V ; 0 s ; 0 s ; 2.62 V ; 4.05e-08 V ; 2.72 V ; -0.0349 V ; 0.173 V ; 0.1 V ; 2.72e-10 s ; 2.69e-10 s ; Yes ; Yes ; 2.62 V ; 4.05e-08 V ; 2.72 V ; -0.0349 V ; 0.173 V ; 0.1 V ; 2.72e-10 s ; 2.69e-10 s ; Yes ; Yes ; +; LEDR[8] ; 2.5 V ; 0 s ; 0 s ; 2.62 V ; 4.05e-08 V ; 2.72 V ; -0.0349 V ; 0.173 V ; 0.1 V ; 2.72e-10 s ; 2.69e-10 s ; Yes ; Yes ; 2.62 V ; 4.05e-08 V ; 2.72 V ; -0.0349 V ; 0.173 V ; 0.1 V ; 2.72e-10 s ; 2.69e-10 s ; Yes ; Yes ; +; LEDR[9] ; 2.5 V ; 0 s ; 0 s ; 2.62 V ; 4.05e-08 V ; 2.64 V ; -0.0113 V ; 0.208 V ; 0.179 V ; 2.38e-09 s ; 2.23e-09 s ; No ; Yes ; 2.62 V ; 4.05e-08 V ; 2.64 V ; -0.0113 V ; 0.208 V ; 0.179 V ; 2.38e-09 s ; 2.23e-09 s ; No ; Yes ; +; LEDR[10] ; 2.5 V ; 0 s ; 0 s ; 2.62 V ; 4.05e-08 V ; 2.72 V ; -0.0349 V ; 0.173 V ; 0.1 V ; 2.72e-10 s ; 2.69e-10 s ; Yes ; Yes ; 2.62 V ; 4.05e-08 V ; 2.72 V ; -0.0349 V ; 0.173 V ; 0.1 V ; 2.72e-10 s ; 2.69e-10 s ; Yes ; Yes ; +; LEDR[11] ; 2.5 V ; 0 s ; 0 s ; 2.62 V ; 4.05e-08 V ; 2.72 V ; -0.0349 V ; 0.173 V ; 0.1 V ; 2.72e-10 s ; 2.69e-10 s ; Yes ; Yes ; 2.62 V ; 4.05e-08 V ; 2.72 V ; -0.0349 V ; 0.173 V ; 0.1 V ; 2.72e-10 s ; 2.69e-10 s ; Yes ; Yes ; +; LEDR[12] ; 2.5 V ; 0 s ; 0 s ; 2.62 V ; 4.05e-08 V ; 2.72 V ; -0.0349 V ; 0.173 V ; 0.1 V ; 2.72e-10 s ; 2.69e-10 s ; Yes ; Yes ; 2.62 V ; 4.05e-08 V ; 2.72 V ; -0.0349 V ; 0.173 V ; 0.1 V ; 2.72e-10 s ; 2.69e-10 s ; Yes ; Yes ; +; LEDR[13] ; 2.5 V ; 0 s ; 0 s ; 2.62 V ; 4.05e-08 V ; 2.72 V ; -0.0349 V ; 0.173 V ; 0.1 V ; 2.72e-10 s ; 2.69e-10 s ; Yes ; Yes ; 2.62 V ; 4.05e-08 V ; 2.72 V ; -0.0349 V ; 0.173 V ; 0.1 V ; 2.72e-10 s ; 2.69e-10 s ; Yes ; Yes ; +; LEDR[14] ; 2.5 V ; 0 s ; 0 s ; 2.62 V ; 4.05e-08 V ; 2.72 V ; -0.0349 V ; 0.173 V ; 0.1 V ; 2.72e-10 s ; 2.69e-10 s ; Yes ; Yes ; 2.62 V ; 4.05e-08 V ; 2.72 V ; -0.0349 V ; 0.173 V ; 0.1 V ; 2.72e-10 s ; 2.69e-10 s ; Yes ; Yes ; +; LEDR[15] ; 2.5 V ; 0 s ; 0 s ; 2.62 V ; 4.05e-08 V ; 2.64 V ; -0.0113 V ; 0.208 V ; 0.179 V ; 2.38e-09 s ; 2.23e-09 s ; No ; Yes ; 2.62 V ; 4.05e-08 V ; 2.64 V ; -0.0113 V ; 0.208 V ; 0.179 V ; 2.38e-09 s ; 2.23e-09 s ; No ; Yes ; +; LEDR[16] ; 2.5 V ; 0 s ; 0 s ; 2.62 V ; 4.05e-08 V ; 2.72 V ; -0.0349 V ; 0.173 V ; 0.1 V ; 2.72e-10 s ; 2.69e-10 s ; Yes ; Yes ; 2.62 V ; 4.05e-08 V ; 2.72 V ; -0.0349 V ; 0.173 V ; 0.1 V ; 2.72e-10 s ; 2.69e-10 s ; Yes ; Yes ; +; LEDR[17] ; 2.5 V ; 0 s ; 0 s ; 2.62 V ; 4.05e-08 V ; 2.72 V ; -0.0349 V ; 0.173 V ; 0.1 V ; 2.72e-10 s ; 2.69e-10 s ; Yes ; Yes ; 2.62 V ; 4.05e-08 V ; 2.72 V ; -0.0349 V ; 0.173 V ; 0.1 V ; 2.72e-10 s ; 2.69e-10 s ; Yes ; Yes ; +; HEX0[0] ; 2.5 V ; 0 s ; 0 s ; 2.62 V ; 4.05e-08 V ; 2.72 V ; -0.0349 V ; 0.173 V ; 0.1 V ; 2.72e-10 s ; 2.69e-10 s ; Yes ; Yes ; 2.62 V ; 4.05e-08 V ; 2.72 V ; -0.0349 V ; 0.173 V ; 0.1 V ; 2.72e-10 s ; 2.69e-10 s ; Yes ; Yes ; +; HEX0[1] ; 2.5 V ; 0 s ; 0 s ; 2.62 V ; 4.05e-08 V ; 2.64 V ; -0.0113 V ; 0.208 V ; 0.179 V ; 2.38e-09 s ; 2.23e-09 s ; No ; Yes ; 2.62 V ; 4.05e-08 V ; 2.64 V ; -0.0113 V ; 0.208 V ; 0.179 V ; 2.38e-09 s ; 2.23e-09 s ; No ; Yes ; +; HEX0[2] ; 2.5 V ; 0 s ; 0 s ; 2.62 V ; 4.05e-08 V ; 2.72 V ; -0.0349 V ; 0.173 V ; 0.1 V ; 2.72e-10 s ; 2.69e-10 s ; Yes ; Yes ; 2.62 V ; 4.05e-08 V ; 2.72 V ; -0.0349 V ; 0.173 V ; 0.1 V ; 2.72e-10 s ; 2.69e-10 s ; Yes ; Yes ; +; HEX0[3] ; 2.5 V ; 0 s ; 0 s ; 2.62 V ; 2.74e-08 V ; 2.73 V ; -0.0384 V ; 0.169 V ; 0.089 V ; 2.7e-10 s ; 2.62e-10 s ; Yes ; Yes ; 2.62 V ; 2.74e-08 V ; 2.73 V ; -0.0384 V ; 0.169 V ; 0.089 V ; 2.7e-10 s ; 2.62e-10 s ; Yes ; Yes ; +; HEX0[4] ; 2.5 V ; 0 s ; 0 s ; 2.62 V ; 2.74e-08 V ; 2.73 V ; -0.0384 V ; 0.169 V ; 0.089 V ; 2.7e-10 s ; 2.62e-10 s ; Yes ; Yes ; 2.62 V ; 2.74e-08 V ; 2.73 V ; -0.0384 V ; 0.169 V ; 0.089 V ; 2.7e-10 s ; 2.62e-10 s ; Yes ; Yes ; +; HEX0[5] ; 2.5 V ; 0 s ; 0 s ; 2.62 V ; 2.74e-08 V ; 2.64 V ; -0.0117 V ; 0.202 V ; 0.176 V ; 2.38e-09 s ; 2.22e-09 s ; No ; Yes ; 2.62 V ; 2.74e-08 V ; 2.64 V ; -0.0117 V ; 0.202 V ; 0.176 V ; 2.38e-09 s ; 2.22e-09 s ; No ; Yes ; +; HEX0[6] ; 2.5 V ; 0 s ; 0 s ; 2.62 V ; 2.74e-08 V ; 2.73 V ; -0.0384 V ; 0.169 V ; 0.089 V ; 2.7e-10 s ; 2.62e-10 s ; Yes ; Yes ; 2.62 V ; 2.74e-08 V ; 2.73 V ; -0.0384 V ; 0.169 V ; 0.089 V ; 2.7e-10 s ; 2.62e-10 s ; Yes ; Yes ; +; HEX1[0] ; 2.5 V ; 0 s ; 0 s ; 2.62 V ; 2.74e-08 V ; 2.73 V ; -0.0384 V ; 0.169 V ; 0.089 V ; 2.7e-10 s ; 2.62e-10 s ; Yes ; Yes ; 2.62 V ; 2.74e-08 V ; 2.73 V ; -0.0384 V ; 0.169 V ; 0.089 V ; 2.7e-10 s ; 2.62e-10 s ; Yes ; Yes ; +; HEX1[1] ; 2.5 V ; 0 s ; 0 s ; 2.62 V ; 2.74e-08 V ; 2.71 V ; -0.0317 V ; 0.148 V ; 0.064 V ; 4.51e-10 s ; 4.15e-10 s ; No ; Yes ; 2.62 V ; 2.74e-08 V ; 2.71 V ; -0.0317 V ; 0.148 V ; 0.064 V ; 4.51e-10 s ; 4.15e-10 s ; No ; Yes ; +; HEX1[2] ; 2.5 V ; 0 s ; 0 s ; 2.62 V ; 2.74e-08 V ; 2.71 V ; -0.0317 V ; 0.148 V ; 0.064 V ; 4.51e-10 s ; 4.15e-10 s ; No ; Yes ; 2.62 V ; 2.74e-08 V ; 2.71 V ; -0.0317 V ; 0.148 V ; 0.064 V ; 4.51e-10 s ; 4.15e-10 s ; No ; Yes ; +; HEX1[3] ; 2.5 V ; 0 s ; 0 s ; 2.62 V ; 2.74e-08 V ; 2.71 V ; -0.0317 V ; 0.148 V ; 0.064 V ; 4.51e-10 s ; 4.15e-10 s ; No ; Yes ; 2.62 V ; 2.74e-08 V ; 2.71 V ; -0.0317 V ; 0.148 V ; 0.064 V ; 4.51e-10 s ; 4.15e-10 s ; No ; Yes ; +; HEX1[4] ; 2.5 V ; 0 s ; 0 s ; 2.62 V ; 2.74e-08 V ; 2.71 V ; -0.0317 V ; 0.148 V ; 0.064 V ; 4.51e-10 s ; 4.15e-10 s ; No ; Yes ; 2.62 V ; 2.74e-08 V ; 2.71 V ; -0.0317 V ; 0.148 V ; 0.064 V ; 4.51e-10 s ; 4.15e-10 s ; No ; Yes ; +; HEX1[5] ; 2.5 V ; 0 s ; 0 s ; 2.62 V ; 2.74e-08 V ; 2.64 V ; -0.0117 V ; 0.202 V ; 0.176 V ; 2.38e-09 s ; 2.22e-09 s ; No ; Yes ; 2.62 V ; 2.74e-08 V ; 2.64 V ; -0.0117 V ; 0.202 V ; 0.176 V ; 2.38e-09 s ; 2.22e-09 s ; No ; Yes ; +; HEX1[6] ; 2.5 V ; 0 s ; 0 s ; 2.62 V ; 2.74e-08 V ; 2.64 V ; -0.0117 V ; 0.202 V ; 0.176 V ; 2.38e-09 s ; 2.22e-09 s ; No ; Yes ; 2.62 V ; 2.74e-08 V ; 2.64 V ; -0.0117 V ; 0.202 V ; 0.176 V ; 2.38e-09 s ; 2.22e-09 s ; No ; Yes ; +; HEX2[0] ; 2.5 V ; 0 s ; 0 s ; 2.62 V ; 2.74e-08 V ; 2.71 V ; -0.0317 V ; 0.148 V ; 0.064 V ; 4.51e-10 s ; 4.15e-10 s ; No ; Yes ; 2.62 V ; 2.74e-08 V ; 2.71 V ; -0.0317 V ; 0.148 V ; 0.064 V ; 4.51e-10 s ; 4.15e-10 s ; No ; Yes ; +; HEX2[1] ; 2.5 V ; 0 s ; 0 s ; 2.62 V ; 2.74e-08 V ; 2.71 V ; -0.0317 V ; 0.148 V ; 0.064 V ; 4.51e-10 s ; 4.15e-10 s ; No ; Yes ; 2.62 V ; 2.74e-08 V ; 2.71 V ; -0.0317 V ; 0.148 V ; 0.064 V ; 4.51e-10 s ; 4.15e-10 s ; No ; Yes ; +; HEX2[2] ; 2.5 V ; 0 s ; 0 s ; 2.62 V ; 2.74e-08 V ; 2.71 V ; -0.0317 V ; 0.148 V ; 0.064 V ; 4.51e-10 s ; 4.15e-10 s ; No ; Yes ; 2.62 V ; 2.74e-08 V ; 2.71 V ; -0.0317 V ; 0.148 V ; 0.064 V ; 4.51e-10 s ; 4.15e-10 s ; No ; Yes ; +; HEX2[3] ; 2.5 V ; 0 s ; 0 s ; 2.62 V ; 2.74e-08 V ; 2.71 V ; -0.0317 V ; 0.148 V ; 0.064 V ; 4.51e-10 s ; 4.15e-10 s ; No ; Yes ; 2.62 V ; 2.74e-08 V ; 2.71 V ; -0.0317 V ; 0.148 V ; 0.064 V ; 4.51e-10 s ; 4.15e-10 s ; No ; Yes ; +; HEX2[4] ; 2.5 V ; 0 s ; 0 s ; 2.62 V ; 2.74e-08 V ; 2.71 V ; -0.0317 V ; 0.148 V ; 0.064 V ; 4.51e-10 s ; 4.15e-10 s ; No ; Yes ; 2.62 V ; 2.74e-08 V ; 2.71 V ; -0.0317 V ; 0.148 V ; 0.064 V ; 4.51e-10 s ; 4.15e-10 s ; No ; Yes ; +; HEX2[5] ; 2.5 V ; 0 s ; 0 s ; 2.62 V ; 2.74e-08 V ; 2.71 V ; -0.0317 V ; 0.148 V ; 0.064 V ; 4.51e-10 s ; 4.15e-10 s ; No ; Yes ; 2.62 V ; 2.74e-08 V ; 2.71 V ; -0.0317 V ; 0.148 V ; 0.064 V ; 4.51e-10 s ; 4.15e-10 s ; No ; Yes ; +; HEX2[6] ; 2.5 V ; 0 s ; 0 s ; 2.62 V ; 2.74e-08 V ; 2.71 V ; -0.0317 V ; 0.148 V ; 0.064 V ; 4.51e-10 s ; 4.15e-10 s ; No ; Yes ; 2.62 V ; 2.74e-08 V ; 2.71 V ; -0.0317 V ; 0.148 V ; 0.064 V ; 4.51e-10 s ; 4.15e-10 s ; No ; Yes ; +; HEX3[0] ; 2.5 V ; 0 s ; 0 s ; 2.62 V ; 2.74e-08 V ; 2.71 V ; -0.0317 V ; 0.148 V ; 0.064 V ; 4.51e-10 s ; 4.15e-10 s ; No ; Yes ; 2.62 V ; 2.74e-08 V ; 2.71 V ; -0.0317 V ; 0.148 V ; 0.064 V ; 4.51e-10 s ; 4.15e-10 s ; No ; Yes ; +; HEX3[1] ; 2.5 V ; 0 s ; 0 s ; 2.62 V ; 2.74e-08 V ; 2.73 V ; -0.0384 V ; 0.169 V ; 0.089 V ; 2.7e-10 s ; 2.62e-10 s ; Yes ; Yes ; 2.62 V ; 2.74e-08 V ; 2.73 V ; -0.0384 V ; 0.169 V ; 0.089 V ; 2.7e-10 s ; 2.62e-10 s ; Yes ; Yes ; +; HEX3[2] ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.46 V ; 1.85e-07 V ; 3.48 V ; -0.0173 V ; 0.356 V ; 0.324 V ; 3.89e-09 s ; 3.06e-09 s ; No ; No ; 3.46 V ; 1.85e-07 V ; 3.48 V ; -0.0173 V ; 0.356 V ; 0.324 V ; 3.89e-09 s ; 3.06e-09 s ; No ; No ; +; HEX3[3] ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.46 V ; 1.85e-07 V ; 3.57 V ; -0.141 V ; 0.301 V ; 0.239 V ; 4.61e-10 s ; 4.2e-10 s ; No ; No ; 3.46 V ; 1.85e-07 V ; 3.57 V ; -0.141 V ; 0.301 V ; 0.239 V ; 4.61e-10 s ; 4.2e-10 s ; No ; No ; +; HEX3[4] ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.46 V ; 1.85e-07 V ; 3.57 V ; -0.141 V ; 0.301 V ; 0.239 V ; 4.61e-10 s ; 4.2e-10 s ; No ; No ; 3.46 V ; 1.85e-07 V ; 3.57 V ; -0.141 V ; 0.301 V ; 0.239 V ; 4.61e-10 s ; 4.2e-10 s ; No ; No ; +; HEX3[5] ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.46 V ; 1.85e-07 V ; 3.57 V ; -0.141 V ; 0.301 V ; 0.239 V ; 4.61e-10 s ; 4.2e-10 s ; No ; No ; 3.46 V ; 1.85e-07 V ; 3.57 V ; -0.141 V ; 0.301 V ; 0.239 V ; 4.61e-10 s ; 4.2e-10 s ; No ; No ; +; HEX3[6] ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.46 V ; 1.85e-07 V ; 3.57 V ; -0.141 V ; 0.301 V ; 0.239 V ; 4.61e-10 s ; 4.2e-10 s ; No ; No ; 3.46 V ; 1.85e-07 V ; 3.57 V ; -0.141 V ; 0.301 V ; 0.239 V ; 4.61e-10 s ; 4.2e-10 s ; No ; No ; +; HEX4[0] ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.46 V ; 1.85e-07 V ; 3.57 V ; -0.141 V ; 0.301 V ; 0.239 V ; 4.61e-10 s ; 4.2e-10 s ; No ; No ; 3.46 V ; 1.85e-07 V ; 3.57 V ; -0.141 V ; 0.301 V ; 0.239 V ; 4.61e-10 s ; 4.2e-10 s ; No ; No ; +; HEX4[1] ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.46 V ; 1.85e-07 V ; 3.57 V ; -0.141 V ; 0.301 V ; 0.239 V ; 4.61e-10 s ; 4.2e-10 s ; No ; No ; 3.46 V ; 1.85e-07 V ; 3.57 V ; -0.141 V ; 0.301 V ; 0.239 V ; 4.61e-10 s ; 4.2e-10 s ; No ; No ; +; HEX4[2] ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.46 V ; 1.85e-07 V ; 3.57 V ; -0.141 V ; 0.301 V ; 0.239 V ; 4.61e-10 s ; 4.2e-10 s ; No ; No ; 3.46 V ; 1.85e-07 V ; 3.57 V ; -0.141 V ; 0.301 V ; 0.239 V ; 4.61e-10 s ; 4.2e-10 s ; No ; No ; +; HEX4[3] ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.46 V ; 1.85e-07 V ; 3.57 V ; -0.141 V ; 0.301 V ; 0.239 V ; 4.61e-10 s ; 4.2e-10 s ; No ; No ; 3.46 V ; 1.85e-07 V ; 3.57 V ; -0.141 V ; 0.301 V ; 0.239 V ; 4.61e-10 s ; 4.2e-10 s ; No ; No ; +; HEX4[4] ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.46 V ; 1.85e-07 V ; 3.57 V ; -0.141 V ; 0.301 V ; 0.239 V ; 4.61e-10 s ; 4.2e-10 s ; No ; No ; 3.46 V ; 1.85e-07 V ; 3.57 V ; -0.141 V ; 0.301 V ; 0.239 V ; 4.61e-10 s ; 4.2e-10 s ; No ; No ; +; HEX4[5] ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.46 V ; 1.85e-07 V ; 3.57 V ; -0.141 V ; 0.301 V ; 0.239 V ; 4.61e-10 s ; 4.2e-10 s ; No ; No ; 3.46 V ; 1.85e-07 V ; 3.57 V ; -0.141 V ; 0.301 V ; 0.239 V ; 4.61e-10 s ; 4.2e-10 s ; No ; No ; +; HEX4[6] ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.46 V ; 1.85e-07 V ; 3.57 V ; -0.141 V ; 0.301 V ; 0.239 V ; 4.61e-10 s ; 4.2e-10 s ; No ; No ; 3.46 V ; 1.85e-07 V ; 3.57 V ; -0.141 V ; 0.301 V ; 0.239 V ; 4.61e-10 s ; 4.2e-10 s ; No ; No ; +; HEX5[0] ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.46 V ; 1.85e-07 V ; 3.57 V ; -0.141 V ; 0.301 V ; 0.239 V ; 4.61e-10 s ; 4.2e-10 s ; No ; No ; 3.46 V ; 1.85e-07 V ; 3.57 V ; -0.141 V ; 0.301 V ; 0.239 V ; 4.61e-10 s ; 4.2e-10 s ; No ; No ; +; HEX5[1] ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.46 V ; 1.85e-07 V ; 3.48 V ; -0.0173 V ; 0.356 V ; 0.324 V ; 3.89e-09 s ; 3.06e-09 s ; No ; No ; 3.46 V ; 1.85e-07 V ; 3.48 V ; -0.0173 V ; 0.356 V ; 0.324 V ; 3.89e-09 s ; 3.06e-09 s ; No ; No ; +; HEX5[2] ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.46 V ; 1.85e-07 V ; 3.57 V ; -0.141 V ; 0.301 V ; 0.239 V ; 4.61e-10 s ; 4.2e-10 s ; No ; No ; 3.46 V ; 1.85e-07 V ; 3.57 V ; -0.141 V ; 0.301 V ; 0.239 V ; 4.61e-10 s ; 4.2e-10 s ; No ; No ; +; HEX5[3] ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.46 V ; 1.85e-07 V ; 3.57 V ; -0.141 V ; 0.301 V ; 0.239 V ; 4.61e-10 s ; 4.2e-10 s ; No ; No ; 3.46 V ; 1.85e-07 V ; 3.57 V ; -0.141 V ; 0.301 V ; 0.239 V ; 4.61e-10 s ; 4.2e-10 s ; No ; No ; +; HEX5[4] ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.46 V ; 1.85e-07 V ; 3.57 V ; -0.141 V ; 0.301 V ; 0.239 V ; 4.61e-10 s ; 4.2e-10 s ; No ; No ; 3.46 V ; 1.85e-07 V ; 3.57 V ; -0.141 V ; 0.301 V ; 0.239 V ; 4.61e-10 s ; 4.2e-10 s ; No ; No ; +; HEX5[5] ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.46 V ; 1.85e-07 V ; 3.57 V ; -0.141 V ; 0.301 V ; 0.239 V ; 4.61e-10 s ; 4.2e-10 s ; No ; No ; 3.46 V ; 1.85e-07 V ; 3.57 V ; -0.141 V ; 0.301 V ; 0.239 V ; 4.61e-10 s ; 4.2e-10 s ; No ; No ; +; HEX5[6] ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.46 V ; 1.85e-07 V ; 3.57 V ; -0.141 V ; 0.301 V ; 0.239 V ; 4.61e-10 s ; 4.2e-10 s ; No ; No ; 3.46 V ; 1.85e-07 V ; 3.57 V ; -0.141 V ; 0.301 V ; 0.239 V ; 4.61e-10 s ; 4.2e-10 s ; No ; No ; +; HEX6[0] ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.46 V ; 1.85e-07 V ; 3.57 V ; -0.141 V ; 0.301 V ; 0.239 V ; 4.61e-10 s ; 4.2e-10 s ; No ; No ; 3.46 V ; 1.85e-07 V ; 3.57 V ; -0.141 V ; 0.301 V ; 0.239 V ; 4.61e-10 s ; 4.2e-10 s ; No ; No ; +; HEX6[1] ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.46 V ; 1.85e-07 V ; 3.57 V ; -0.141 V ; 0.301 V ; 0.239 V ; 4.61e-10 s ; 4.2e-10 s ; No ; No ; 3.46 V ; 1.85e-07 V ; 3.57 V ; -0.141 V ; 0.301 V ; 0.239 V ; 4.61e-10 s ; 4.2e-10 s ; No ; No ; +; HEX6[2] ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.46 V ; 1.85e-07 V ; 3.57 V ; -0.141 V ; 0.301 V ; 0.239 V ; 4.61e-10 s ; 4.2e-10 s ; No ; No ; 3.46 V ; 1.85e-07 V ; 3.57 V ; -0.141 V ; 0.301 V ; 0.239 V ; 4.61e-10 s ; 4.2e-10 s ; No ; No ; +; HEX6[3] ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.46 V ; 1.85e-07 V ; 3.57 V ; -0.141 V ; 0.301 V ; 0.239 V ; 4.61e-10 s ; 4.2e-10 s ; No ; No ; 3.46 V ; 1.85e-07 V ; 3.57 V ; -0.141 V ; 0.301 V ; 0.239 V ; 4.61e-10 s ; 4.2e-10 s ; No ; No ; +; HEX6[4] ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.46 V ; 1.85e-07 V ; 3.57 V ; -0.141 V ; 0.301 V ; 0.239 V ; 4.61e-10 s ; 4.2e-10 s ; No ; No ; 3.46 V ; 1.85e-07 V ; 3.57 V ; -0.141 V ; 0.301 V ; 0.239 V ; 4.61e-10 s ; 4.2e-10 s ; No ; No ; +; HEX6[5] ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.46 V ; 1.85e-07 V ; 3.48 V ; -0.0173 V ; 0.356 V ; 0.324 V ; 3.89e-09 s ; 3.06e-09 s ; No ; No ; 3.46 V ; 1.85e-07 V ; 3.48 V ; -0.0173 V ; 0.356 V ; 0.324 V ; 3.89e-09 s ; 3.06e-09 s ; No ; No ; +; HEX6[6] ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.46 V ; 1.85e-07 V ; 3.57 V ; -0.141 V ; 0.301 V ; 0.239 V ; 4.61e-10 s ; 4.2e-10 s ; No ; No ; 3.46 V ; 1.85e-07 V ; 3.57 V ; -0.141 V ; 0.301 V ; 0.239 V ; 4.61e-10 s ; 4.2e-10 s ; No ; No ; +; HEX7[0] ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.46 V ; 1.85e-07 V ; 3.57 V ; -0.141 V ; 0.301 V ; 0.239 V ; 4.61e-10 s ; 4.2e-10 s ; No ; No ; 3.46 V ; 1.85e-07 V ; 3.57 V ; -0.141 V ; 0.301 V ; 0.239 V ; 4.61e-10 s ; 4.2e-10 s ; No ; No ; +; HEX7[1] ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.46 V ; 1.85e-07 V ; 3.57 V ; -0.141 V ; 0.301 V ; 0.239 V ; 4.61e-10 s ; 4.2e-10 s ; No ; No ; 3.46 V ; 1.85e-07 V ; 3.57 V ; -0.141 V ; 0.301 V ; 0.239 V ; 4.61e-10 s ; 4.2e-10 s ; No ; No ; +; HEX7[2] ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.46 V ; 1.85e-07 V ; 3.57 V ; -0.141 V ; 0.301 V ; 0.239 V ; 4.61e-10 s ; 4.2e-10 s ; No ; No ; 3.46 V ; 1.85e-07 V ; 3.57 V ; -0.141 V ; 0.301 V ; 0.239 V ; 4.61e-10 s ; 4.2e-10 s ; No ; No ; +; HEX7[3] ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.46 V ; 1.85e-07 V ; 3.57 V ; -0.141 V ; 0.301 V ; 0.239 V ; 4.61e-10 s ; 4.2e-10 s ; No ; No ; 3.46 V ; 1.85e-07 V ; 3.57 V ; -0.141 V ; 0.301 V ; 0.239 V ; 4.61e-10 s ; 4.2e-10 s ; No ; No ; +; HEX7[4] ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.46 V ; 1.85e-07 V ; 3.57 V ; -0.141 V ; 0.301 V ; 0.239 V ; 4.61e-10 s ; 4.2e-10 s ; No ; No ; 3.46 V ; 1.85e-07 V ; 3.57 V ; -0.141 V ; 0.301 V ; 0.239 V ; 4.61e-10 s ; 4.2e-10 s ; No ; No ; +; HEX7[5] ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.46 V ; 1.85e-07 V ; 3.57 V ; -0.141 V ; 0.301 V ; 0.239 V ; 4.61e-10 s ; 4.2e-10 s ; No ; No ; 3.46 V ; 1.85e-07 V ; 3.57 V ; -0.141 V ; 0.301 V ; 0.239 V ; 4.61e-10 s ; 4.2e-10 s ; No ; No ; +; HEX7[6] ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.46 V ; 1.85e-07 V ; 3.57 V ; -0.141 V ; 0.301 V ; 0.239 V ; 4.61e-10 s ; 4.2e-10 s ; No ; No ; 3.46 V ; 1.85e-07 V ; 3.57 V ; -0.141 V ; 0.301 V ; 0.239 V ; 4.61e-10 s ; 4.2e-10 s ; No ; No ; +; LCD_RS ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.46 V ; 1.25e-07 V ; 3.57 V ; -0.0855 V ; 0.315 V ; 0.175 V ; 6.79e-10 s ; 6.15e-10 s ; No ; No ; 3.46 V ; 1.25e-07 V ; 3.57 V ; -0.0855 V ; 0.315 V ; 0.175 V ; 6.79e-10 s ; 6.15e-10 s ; No ; No ; +; LCD_RW ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.46 V ; 1.25e-07 V ; 3.57 V ; -0.0855 V ; 0.315 V ; 0.175 V ; 6.79e-10 s ; 6.15e-10 s ; No ; No ; 3.46 V ; 1.25e-07 V ; 3.57 V ; -0.0855 V ; 0.315 V ; 0.175 V ; 6.79e-10 s ; 6.15e-10 s ; No ; No ; +; LCD_data[0] ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.46 V ; 1.25e-07 V ; 3.57 V ; -0.0855 V ; 0.315 V ; 0.175 V ; 6.79e-10 s ; 6.15e-10 s ; No ; No ; 3.46 V ; 1.25e-07 V ; 3.57 V ; -0.0855 V ; 0.315 V ; 0.175 V ; 6.79e-10 s ; 6.15e-10 s ; No ; No ; +; LCD_data[1] ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.46 V ; 1.25e-07 V ; 3.57 V ; -0.0855 V ; 0.315 V ; 0.175 V ; 6.79e-10 s ; 6.15e-10 s ; No ; No ; 3.46 V ; 1.25e-07 V ; 3.57 V ; -0.0855 V ; 0.315 V ; 0.175 V ; 6.79e-10 s ; 6.15e-10 s ; No ; No ; +; LCD_data[2] ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.46 V ; 1.25e-07 V ; 3.57 V ; -0.0855 V ; 0.315 V ; 0.175 V ; 6.79e-10 s ; 6.15e-10 s ; No ; No ; 3.46 V ; 1.25e-07 V ; 3.57 V ; -0.0855 V ; 0.315 V ; 0.175 V ; 6.79e-10 s ; 6.15e-10 s ; No ; No ; +; LCD_data[3] ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.46 V ; 1.25e-07 V ; 3.57 V ; -0.0855 V ; 0.315 V ; 0.175 V ; 6.79e-10 s ; 6.15e-10 s ; No ; No ; 3.46 V ; 1.25e-07 V ; 3.57 V ; -0.0855 V ; 0.315 V ; 0.175 V ; 6.79e-10 s ; 6.15e-10 s ; No ; No ; +; LCD_data[4] ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.46 V ; 1.25e-07 V ; 3.57 V ; -0.0855 V ; 0.315 V ; 0.175 V ; 6.79e-10 s ; 6.15e-10 s ; No ; No ; 3.46 V ; 1.25e-07 V ; 3.57 V ; -0.0855 V ; 0.315 V ; 0.175 V ; 6.79e-10 s ; 6.15e-10 s ; No ; No ; +; LCD_data[5] ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.46 V ; 1.25e-07 V ; 3.57 V ; -0.0855 V ; 0.315 V ; 0.175 V ; 6.79e-10 s ; 6.15e-10 s ; No ; No ; 3.46 V ; 1.25e-07 V ; 3.57 V ; -0.0855 V ; 0.315 V ; 0.175 V ; 6.79e-10 s ; 6.15e-10 s ; No ; No ; +; LCD_data[6] ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.46 V ; 1.25e-07 V ; 3.57 V ; -0.0855 V ; 0.315 V ; 0.175 V ; 6.79e-10 s ; 6.15e-10 s ; No ; No ; 3.46 V ; 1.25e-07 V ; 3.57 V ; -0.0855 V ; 0.315 V ; 0.175 V ; 6.79e-10 s ; 6.15e-10 s ; No ; No ; +; LCD_data[7] ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.46 V ; 1.25e-07 V ; 3.48 V ; -0.0162 V ; 0.354 V ; 0.317 V ; 3.88e-09 s ; 3.06e-09 s ; No ; No ; 3.46 V ; 1.25e-07 V ; 3.48 V ; -0.0162 V ; 0.354 V ; 0.317 V ; 3.88e-09 s ; 3.06e-09 s ; No ; No ; +; LCD_EN ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.46 V ; 1.25e-07 V ; 3.57 V ; -0.0855 V ; 0.315 V ; 0.175 V ; 6.79e-10 s ; 6.15e-10 s ; No ; No ; 3.46 V ; 1.25e-07 V ; 3.57 V ; -0.0855 V ; 0.315 V ; 0.175 V ; 6.79e-10 s ; 6.15e-10 s ; No ; No ; +; LCD_ON ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.46 V ; 1.25e-07 V ; 3.48 V ; -0.0162 V ; 0.354 V ; 0.317 V ; 3.88e-09 s ; 3.06e-09 s ; No ; No ; 3.46 V ; 1.25e-07 V ; 3.48 V ; -0.0162 V ; 0.354 V ; 0.317 V ; 3.88e-09 s ; 3.06e-09 s ; No ; No ; +; LCD_BLON ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.46 V ; 1.25e-07 V ; 3.57 V ; -0.0855 V ; 0.315 V ; 0.175 V ; 6.79e-10 s ; 6.15e-10 s ; No ; No ; 3.46 V ; 1.25e-07 V ; 3.57 V ; -0.0855 V ; 0.315 V ; 0.175 V ; 6.79e-10 s ; 6.15e-10 s ; No ; No ; +; altera_reserved_tdo ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.46 V ; 4.9e-07 V ; 3.52 V ; -0.0234 V ; 0.372 V ; 0.263 V ; 5.16e-10 s ; 1.44e-09 s ; No ; No ; 3.46 V ; 4.9e-07 V ; 3.52 V ; -0.0234 V ; 0.372 V ; 0.263 V ; 5.16e-10 s ; 1.44e-09 s ; No ; No ; +; ~ALTERA_DCLK~ ; 3.3-V LVTTL ; 0 s ; 0 s ; 3.46 V ; 6.54e-08 V ; 3.66 V ; -0.26 V ; 0.41 V ; 0.32 V ; 1.57e-10 s ; 2.15e-10 s ; No ; Yes ; 3.46 V ; 6.54e-08 V ; 3.66 V ; -0.26 V ; 0.41 V ; 0.32 V ; 1.57e-10 s ; 2.15e-10 s ; No ; Yes ; +; ~ALTERA_nCEO~ ; 2.5 V ; 0 s ; 0 s ; 2.62 V ; 3.54e-08 V ; 2.7 V ; -0.00943 V ; 0.276 V ; 0.035 V ; 3.19e-10 s ; 4.99e-10 s ; No ; Yes ; 2.62 V ; 3.54e-08 V ; 2.7 V ; -0.00943 V ; 0.276 V ; 0.035 V ; 3.19e-10 s ; 4.99e-10 s ; No ; Yes ; ++---------------------+--------------+---------------------+---------------------+------------------------------+------------------------------+---------------------+---------------------+--------------------------------------+--------------------------------------+-----------------------------+-----------------------------+----------------------------+----------------------------+-----------------------------+-----------------------------+--------------------+--------------------+-------------------------------------+-------------------------------------+----------------------------+----------------------------+---------------------------+---------------------------+ + + ++---------------------------------------------------------------------------------------+ +; Setup Transfers ; ++---------------------+---------------------+----------+----------+----------+----------+ +; From Clock ; To Clock ; RR Paths ; FR Paths ; RF Paths ; FF Paths ; ++---------------------+---------------------+----------+----------+----------+----------+ +; altera_reserved_tck ; altera_reserved_tck ; 1728 ; 0 ; 32 ; 2 ; ++---------------------+---------------------+----------+----------+----------+----------+ +Entries labeled "false path" only account for clock-to-clock false paths and not path-based false paths. As a result, actual path counts may be lower than reported. + + ++---------------------------------------------------------------------------------------+ +; Hold Transfers ; ++---------------------+---------------------+----------+----------+----------+----------+ +; From Clock ; To Clock ; RR Paths ; FR Paths ; RF Paths ; FF Paths ; ++---------------------+---------------------+----------+----------+----------+----------+ +; altera_reserved_tck ; altera_reserved_tck ; 1728 ; 0 ; 32 ; 2 ; ++---------------------+---------------------+----------+----------+----------+----------+ +Entries labeled "false path" only account for clock-to-clock false paths and not path-based false paths. As a result, actual path counts may be lower than reported. + + ++---------------------------------------------------------------------------------------+ +; Recovery Transfers ; ++---------------------+---------------------+----------+----------+----------+----------+ +; From Clock ; To Clock ; RR Paths ; FR Paths ; RF Paths ; FF Paths ; ++---------------------+---------------------+----------+----------+----------+----------+ +; altera_reserved_tck ; altera_reserved_tck ; 81 ; 0 ; 3 ; 0 ; ++---------------------+---------------------+----------+----------+----------+----------+ +Entries labeled "false path" only account for clock-to-clock false paths and not path-based false paths. As a result, actual path counts may be lower than reported. + + ++---------------------------------------------------------------------------------------+ +; Removal Transfers ; ++---------------------+---------------------+----------+----------+----------+----------+ +; From Clock ; To Clock ; RR Paths ; FR Paths ; RF Paths ; FF Paths ; ++---------------------+---------------------+----------+----------+----------+----------+ +; altera_reserved_tck ; altera_reserved_tck ; 81 ; 0 ; 3 ; 0 ; ++---------------------+---------------------+----------+----------+----------+----------+ +Entries labeled "false path" only account for clock-to-clock false paths and not path-based false paths. As a result, actual path counts may be lower than reported. + + +--------------- +; Report TCCS ; +--------------- +No dedicated SERDES Transmitter circuitry present in device or used in design + + +--------------- +; Report RSKM ; +--------------- +No dedicated SERDES Receiver circuitry present in device or used in design + + ++------------------------------------------------+ +; Unconstrained Paths ; ++---------------------------------+-------+------+ +; Property ; Setup ; Hold ; ++---------------------------------+-------+------+ +; Illegal Clocks ; 0 ; 0 ; +; Unconstrained Clocks ; 1 ; 1 ; +; Unconstrained Input Ports ; 24 ; 24 ; +; Unconstrained Input Port Paths ; 90 ; 90 ; +; Unconstrained Output Ports ; 96 ; 96 ; +; Unconstrained Output Port Paths ; 129 ; 129 ; ++---------------------------------+-------+------+ + + ++------------------------------------+ +; TimeQuest Timing Analyzer Messages ; ++------------------------------------+ +Info: ******************************************************************* +Info: Running Quartus II 64-Bit TimeQuest Timing Analyzer + Info: Version 13.0.1 Build 232 06/12/2013 Service Pack 1 SJ Web Edition + Info: Processing started: Fri Dec 02 01:33:22 2016 +Info: Command: quartus_sta lights -c lights +Info: qsta_default_script.tcl version: #1 +Warning (20028): Parallel compilation is not licensed and has been disabled +Info (21077): Core supply voltage is 1.2V +Info (21077): Low junction temperature is 0 degrees C +Info (21077): High junction temperature is 85 degrees C +Info (332164): Evaluating HDL-embedded SDC commands + Info (332165): Entity alt_jtag_atlantic + Info (332166): set_false_path -from [get_registers {*|alt_jtag_atlantic:*|jupdate}] -to [get_registers {*|alt_jtag_atlantic:*|jupdate1*}] + Info (332166): set_false_path -from [get_registers {*|alt_jtag_atlantic:*|rdata[*]}] -to [get_registers {*|alt_jtag_atlantic*|td_shift[*]}] + Info (332166): set_false_path -from [get_registers {*|alt_jtag_atlantic:*|rdata[*]}] -to [get_registers {*|alt_jtag_atlantic*|td_shift[*]}] + Info (332166): set_false_path -from [get_registers {*|alt_jtag_atlantic:*|rdata[*]}] -to [get_registers {*|alt_jtag_atlantic*|td_shift[*]}] + Info (332166): set_false_path -from [get_registers {*|alt_jtag_atlantic:*|rdata[*]}] -to [get_registers {*|alt_jtag_atlantic*|td_shift[*]}] + Info (332166): set_false_path -from [get_registers {*|alt_jtag_atlantic:*|rdata[*]}] -to [get_registers {*|alt_jtag_atlantic*|td_shift[*]}] + Info (332166): set_false_path -from [get_registers {*|alt_jtag_atlantic:*|rdata[*]}] -to [get_registers {*|alt_jtag_atlantic*|td_shift[*]}] + Info (332166): set_false_path -from [get_registers {*|alt_jtag_atlantic:*|rdata[*]}] -to [get_registers {*|alt_jtag_atlantic*|td_shift[*]}] + Info (332166): set_false_path -from [get_registers {*|alt_jtag_atlantic:*|rdata[*]}] -to [get_registers {*|alt_jtag_atlantic*|td_shift[*]}] + Info (332166): set_false_path -from [get_registers {*|alt_jtag_atlantic:*|read}] -to [get_registers {*|alt_jtag_atlantic:*|read1*}] + Info (332166): set_false_path -from [get_registers {*|alt_jtag_atlantic:*|read_req}] + Info (332166): set_false_path -from [get_registers {*|alt_jtag_atlantic:*|rvalid}] -to [get_registers {*|alt_jtag_atlantic*|td_shift[*]}] + Info (332166): set_false_path -from [get_registers {*|t_dav}] -to [get_registers {*|alt_jtag_atlantic:*|tck_t_dav}] + Info (332166): set_false_path -from [get_registers {*|alt_jtag_atlantic:*|user_saw_rvalid}] -to [get_registers {*|alt_jtag_atlantic:*|rvalid0*}] + Info (332166): set_false_path -from [get_registers {*|alt_jtag_atlantic:*|wdata[*]}] -to [get_registers {*}] + Info (332166): set_false_path -from [get_registers {*|alt_jtag_atlantic:*|wdata[*]}] -to [get_registers {*}] + Info (332166): set_false_path -from [get_registers {*|alt_jtag_atlantic:*|wdata[*]}] -to [get_registers {*}] + Info (332166): set_false_path -from [get_registers {*|alt_jtag_atlantic:*|wdata[*]}] -to [get_registers {*}] + Info (332166): set_false_path -from [get_registers {*|alt_jtag_atlantic:*|wdata[*]}] -to [get_registers {*}] + Info (332166): set_false_path -from [get_registers {*|alt_jtag_atlantic:*|wdata[*]}] -to [get_registers {*}] + Info (332166): set_false_path -from [get_registers {*|alt_jtag_atlantic:*|wdata[*]}] -to [get_registers {*}] + Info (332166): set_false_path -from [get_registers {*|alt_jtag_atlantic:*|wdata[*]}] -to [get_registers {*}] + Info (332166): set_false_path -from [get_registers {*|alt_jtag_atlantic:*|write}] -to [get_registers {*|alt_jtag_atlantic:*|write1*}] + Info (332166): set_false_path -from [get_registers {*|alt_jtag_atlantic:*|write_stalled}] -to [get_registers {*|alt_jtag_atlantic:*|t_ena*}] + Info (332166): set_false_path -from [get_registers {*|alt_jtag_atlantic:*|write_stalled}] -to [get_registers {*|alt_jtag_atlantic:*|t_pause*}] + Info (332166): set_false_path -from [get_registers {*|alt_jtag_atlantic:*|write_valid}] + Info (332165): Entity altera_std_synchronizer + Info (332166): set_false_path -to [get_keepers {*altera_std_synchronizer:*|din_s1}] + Info (332165): Entity sld_jtag_hub + Info (332166): create_clock -name altera_reserved_tck [get_ports {altera_reserved_tck}] -period 10MHz + Info (332166): set_clock_groups -asynchronous -group {altera_reserved_tck} +Critical Warning (332012): Synopsys Design Constraints File file not found: 'lights.sdc'. A Synopsys Design Constraints File is required by the TimeQuest Timing Analyzer to get proper timing constraints. Without it, the Compiler will not properly optimize the design. +Warning (332060): Node: CLOCK_50 was determined to be a clock but was found without an associated clock assignment. +Critical Warning (332168): The following clock transfers have no clock uncertainty assignment. For more accurate results, apply clock uncertainty assignments or use the derive_clock_uncertainty command. + Critical Warning (332169): From altera_reserved_tck (Rise) to altera_reserved_tck (Rise) (setup and hold) + Critical Warning (332169): From altera_reserved_tck (Rise) to altera_reserved_tck (Fall) (setup and hold) + Critical Warning (332169): From altera_reserved_tck (Fall) to altera_reserved_tck (Fall) (setup and hold) +Info: Found TIMEQUEST_REPORT_SCRIPT_INCLUDE_DEFAULT_ANALYSIS = ON +Info: Analyzing Slow 1200mV 85C Model +Info (332146): Worst-case setup slack is 45.777 + Info (332119): Slack End Point TNS Clock + Info (332119): ========= ============= ===================== + Info (332119): 45.777 0.000 altera_reserved_tck +Info (332146): Worst-case hold slack is 0.403 + Info (332119): Slack End Point TNS Clock + Info (332119): ========= ============= ===================== + Info (332119): 0.403 0.000 altera_reserved_tck +Info (332146): Worst-case recovery slack is 47.734 + Info (332119): Slack End Point TNS Clock + Info (332119): ========= ============= ===================== + Info (332119): 47.734 0.000 altera_reserved_tck +Info (332146): Worst-case removal slack is 1.385 + Info (332119): Slack End Point TNS Clock + Info (332119): ========= ============= ===================== + Info (332119): 1.385 0.000 altera_reserved_tck +Info (332146): Worst-case minimum pulse width slack is 49.549 + Info (332119): Slack End Point TNS Clock + Info (332119): ========= ============= ===================== + Info (332119): 49.549 0.000 altera_reserved_tck +Info (332114): Report Metastability: Found 2 synchronizer chains. + Info (332114): Typical MTBF of Design is 1e+09 years or 3.15e+16 seconds. + + Info (332114): Number of Synchronizer Chains Found: 2 + Info (332114): Shortest Synchronizer Chain: 2 Registers + Info (332114): Fraction of Chains for which MTBFs Could Not be Calculated: 0.000 + Info (332114): Worst Case Available Settling Time: 197.101 ns + Info (332114): + Info (332114): Typical MTBF values are calculated based on the nominal silicon characteristics, at nominal operating conditions. + Info (332114): - Under typical conditions, an increase of 100ps in available settling time will increase MTBF values by a factor of 10.8 +Info: Analyzing Slow 1200mV 0C Model +Info (334003): Started post-fitting delay annotation +Info (334004): Delay annotation completed successfully +Warning (332060): Node: CLOCK_50 was determined to be a clock but was found without an associated clock assignment. +Critical Warning (332168): The following clock transfers have no clock uncertainty assignment. For more accurate results, apply clock uncertainty assignments or use the derive_clock_uncertainty command. + Critical Warning (332169): From altera_reserved_tck (Rise) to altera_reserved_tck (Rise) (setup and hold) + Critical Warning (332169): From altera_reserved_tck (Rise) to altera_reserved_tck (Fall) (setup and hold) + Critical Warning (332169): From altera_reserved_tck (Fall) to altera_reserved_tck (Fall) (setup and hold) +Info (332146): Worst-case setup slack is 46.283 + Info (332119): Slack End Point TNS Clock + Info (332119): ========= ============= ===================== + Info (332119): 46.283 0.000 altera_reserved_tck +Info (332146): Worst-case hold slack is 0.353 + Info (332119): Slack End Point TNS Clock + Info (332119): ========= ============= ===================== + Info (332119): 0.353 0.000 altera_reserved_tck +Info (332146): Worst-case recovery slack is 48.047 + Info (332119): Slack End Point TNS Clock + Info (332119): ========= ============= ===================== + Info (332119): 48.047 0.000 altera_reserved_tck +Info (332146): Worst-case removal slack is 1.278 + Info (332119): Slack End Point TNS Clock + Info (332119): ========= ============= ===================== + Info (332119): 1.278 0.000 altera_reserved_tck +Info (332146): Worst-case minimum pulse width slack is 49.476 + Info (332119): Slack End Point TNS Clock + Info (332119): ========= ============= ===================== + Info (332119): 49.476 0.000 altera_reserved_tck +Info (332114): Report Metastability: Found 2 synchronizer chains. + Info (332114): Typical MTBF of Design is 1e+09 years or 3.15e+16 seconds. + + Info (332114): Number of Synchronizer Chains Found: 2 + Info (332114): Shortest Synchronizer Chain: 2 Registers + Info (332114): Fraction of Chains for which MTBFs Could Not be Calculated: 0.000 + Info (332114): Worst Case Available Settling Time: 197.386 ns + Info (332114): + Info (332114): Typical MTBF values are calculated based on the nominal silicon characteristics, at nominal operating conditions. + Info (332114): - Under typical conditions, an increase of 100ps in available settling time will increase MTBF values by a factor of 10.8 +Info: Analyzing Fast 1200mV 0C Model +Warning (332060): Node: CLOCK_50 was determined to be a clock but was found without an associated clock assignment. +Critical Warning (332168): The following clock transfers have no clock uncertainty assignment. For more accurate results, apply clock uncertainty assignments or use the derive_clock_uncertainty command. + Critical Warning (332169): From altera_reserved_tck (Rise) to altera_reserved_tck (Rise) (setup and hold) + Critical Warning (332169): From altera_reserved_tck (Rise) to altera_reserved_tck (Fall) (setup and hold) + Critical Warning (332169): From altera_reserved_tck (Fall) to altera_reserved_tck (Fall) (setup and hold) +Info (332146): Worst-case setup slack is 48.270 + Info (332119): Slack End Point TNS Clock + Info (332119): ========= ============= ===================== + Info (332119): 48.270 0.000 altera_reserved_tck +Info (332146): Worst-case hold slack is 0.180 + Info (332119): Slack End Point TNS Clock + Info (332119): ========= ============= ===================== + Info (332119): 0.180 0.000 altera_reserved_tck +Info (332146): Worst-case recovery slack is 49.194 + Info (332119): Slack End Point TNS Clock + Info (332119): ========= ============= ===================== + Info (332119): 49.194 0.000 altera_reserved_tck +Info (332146): Worst-case removal slack is 0.657 + Info (332119): Slack End Point TNS Clock + Info (332119): ========= ============= ===================== + Info (332119): 0.657 0.000 altera_reserved_tck +Info (332146): Worst-case minimum pulse width slack is 49.301 + Info (332119): Slack End Point TNS Clock + Info (332119): ========= ============= ===================== + Info (332119): 49.301 0.000 altera_reserved_tck +Info (332114): Report Metastability: Found 2 synchronizer chains. + Info (332114): Typical MTBF of Design is 1e+09 years or 3.15e+16 seconds. + + Info (332114): Number of Synchronizer Chains Found: 2 + Info (332114): Shortest Synchronizer Chain: 2 Registers + Info (332114): Fraction of Chains for which MTBFs Could Not be Calculated: 0.000 + Info (332114): Worst Case Available Settling Time: 198.621 ns + Info (332114): + Info (332114): Typical MTBF values are calculated based on the nominal silicon characteristics, at nominal operating conditions. + Info (332114): - Under typical conditions, an increase of 100ps in available settling time will increase MTBF values by a factor of 10.8 +Info (332102): Design is not fully constrained for setup requirements +Info (332102): Design is not fully constrained for hold requirements +Info: Quartus II 64-Bit TimeQuest Timing Analyzer was successful. 0 errors, 17 warnings + Info: Peak virtual memory: 606 megabytes + Info: Processing ended: Fri Dec 02 01:33:28 2016 + Info: Elapsed time: 00:00:06 + Info: Total CPU time (on all processors): 00:00:05 + + diff --git a/output_files/lights.sta.summary b/output_files/lights.sta.summary new file mode 100644 index 0000000..630b706 --- /dev/null +++ b/output_files/lights.sta.summary @@ -0,0 +1,65 @@ +------------------------------------------------------------ +TimeQuest Timing Analyzer Summary +------------------------------------------------------------ + +Type : Slow 1200mV 85C Model Setup 'altera_reserved_tck' +Slack : 45.777 +TNS : 0.000 + +Type : Slow 1200mV 85C Model Hold 'altera_reserved_tck' +Slack : 0.403 +TNS : 0.000 + +Type : Slow 1200mV 85C Model Recovery 'altera_reserved_tck' +Slack : 47.734 +TNS : 0.000 + +Type : Slow 1200mV 85C Model Removal 'altera_reserved_tck' +Slack : 1.385 +TNS : 0.000 + +Type : Slow 1200mV 85C Model Minimum Pulse Width 'altera_reserved_tck' +Slack : 49.549 +TNS : 0.000 + +Type : Slow 1200mV 0C Model Setup 'altera_reserved_tck' +Slack : 46.283 +TNS : 0.000 + +Type : Slow 1200mV 0C Model Hold 'altera_reserved_tck' +Slack : 0.353 +TNS : 0.000 + +Type : Slow 1200mV 0C Model Recovery 'altera_reserved_tck' +Slack : 48.047 +TNS : 0.000 + +Type : Slow 1200mV 0C Model Removal 'altera_reserved_tck' +Slack : 1.278 +TNS : 0.000 + +Type : Slow 1200mV 0C Model Minimum Pulse Width 'altera_reserved_tck' +Slack : 49.476 +TNS : 0.000 + +Type : Fast 1200mV 0C Model Setup 'altera_reserved_tck' +Slack : 48.270 +TNS : 0.000 + +Type : Fast 1200mV 0C Model Hold 'altera_reserved_tck' +Slack : 0.180 +TNS : 0.000 + +Type : Fast 1200mV 0C Model Recovery 'altera_reserved_tck' +Slack : 49.194 +TNS : 0.000 + +Type : Fast 1200mV 0C Model Removal 'altera_reserved_tck' +Slack : 0.657 +TNS : 0.000 + +Type : Fast 1200mV 0C Model Minimum Pulse Width 'altera_reserved_tck' +Slack : 49.301 +TNS : 0.000 + +------------------------------------------------------------ diff --git a/software/qsys_tutorial/.cproject b/software/qsys_tutorial/.cproject new file mode 100644 index 0000000..7f08b3b --- /dev/null +++ b/software/qsys_tutorial/.cproject @@ -0,0 +1,508 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + make + + mem_init_install + true + false + false + + + make + + mem_init_generate + true + false + false + + + make + + help + true + false + false + + + + diff --git a/software/qsys_tutorial/.force_relink b/software/qsys_tutorial/.force_relink new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/software/qsys_tutorial/.force_relink diff --git a/software/qsys_tutorial/.project b/software/qsys_tutorial/.project new file mode 100644 index 0000000..6356557 --- /dev/null +++ b/software/qsys_tutorial/.project @@ -0,0 +1,96 @@ + + + qsys_tutorial + + + + + + com.altera.sbtgui.project.makefileBuilder + + + + + com.altera.sbtgui.project.makefileBuilder + + + + + org.eclipse.cdt.managedbuilder.core.genmakebuilder + clean,full,incremental, + + + ?name? + + + + org.eclipse.cdt.make.core.append_environment + true + + + org.eclipse.cdt.make.core.autoBuildTarget + all + + + org.eclipse.cdt.make.core.buildArguments + + + + org.eclipse.cdt.make.core.buildCommand + make + + + org.eclipse.cdt.make.core.buildLocation + ${workspace_loc://qsys_tutorial} + + + org.eclipse.cdt.make.core.cleanBuildTarget + clean + + + org.eclipse.cdt.make.core.contents + org.eclipse.cdt.make.core.activeConfigSettings + + + org.eclipse.cdt.make.core.enableAutoBuild + false + + + org.eclipse.cdt.make.core.enableCleanBuild + true + + + org.eclipse.cdt.make.core.enableFullBuild + true + + + org.eclipse.cdt.make.core.fullBuildTarget + all + + + org.eclipse.cdt.make.core.stopOnError + true + + + org.eclipse.cdt.make.core.useDefaultBuildCmd + true + + + + + org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder + full,incremental, + + + + + + org.eclipse.cdt.core.cnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.managedbuilder.core.ScannerConfigNature + org.eclipse.cdt.core.ccnature + com.altera.sbtgui.project.SBTGUINature + com.altera.sbtgui.project.SBTGUIAppNature + com.altera.sbtgui.project.SBTGUIManagedNature + + diff --git a/software/qsys_tutorial/Makefile b/software/qsys_tutorial/Makefile new file mode 100644 index 0000000..ed51d63 --- /dev/null +++ b/software/qsys_tutorial/Makefile @@ -0,0 +1,1086 @@ +#------------------------------------------------------------------------------ +# VARIABLES APPENDED TO BY INCLUDED MAKEFILE FRAGMENTS +#------------------------------------------------------------------------------ + +# List of include directories for -I compiler option (-I added when used). +# Includes the BSP. +ALT_INCLUDE_DIRS := + +# List of library directories for -L linker option (-L added when used). +# Includes the BSP. +ALT_LIBRARY_DIRS := + +# List of library names for -l linker option (-l added when used). +# Includes the BSP. +ALT_LIBRARY_NAMES := + +# List of library names for -msys-lib linker option (-msys-lib added when used). +# These are libraries that might be located in the BSP and depend on the BSP +# library, or vice versa +ALT_BSP_DEP_LIBRARY_NAMES := + +# List of dependencies for the linker. This is usually the full pathname +# of each library (*.a) file. +# Includes the BSP. +ALT_LDDEPS := + +# List of root library directories that support running make to build them. +# Includes the BSP and any ALT libraries. +MAKEABLE_LIBRARY_ROOT_DIRS := + +# Generic flags passed to the compiler for different types of input files. +ALT_CFLAGS := +ALT_CXXFLAGS := +ALT_CPPFLAGS := +ALT_ASFLAGS := +ALT_LDFLAGS := + + +#------------------------------------------------------------------------------ +# The adjust-path macro +# +# If COMSPEC/ComSpec is defined, Make is launched from Windows through +# Cygwin. The adjust-path macro converts absolute windows paths into +# unix style paths (Example: c:/dir -> /c/dir). This will ensture +# paths are readable by GNU Make. +# +# If COMSPEC/ComSpec is not defined, Make is launched from linux, and no +# adjustment is necessary +# +#------------------------------------------------------------------------------ + +ifndef COMSPEC +ifdef ComSpec +COMSPEC = $(ComSpec) +endif # ComSpec +endif # COMSPEC + +ifdef COMSPEC # if Windows OS + +ifeq ($(MAKE_VERSION),3.81) +# +# adjust-path/adjust-path-mixed for Mingw Gnu Make on Windows +# +# Example Usage: +# $(call adjust-path,c:/aaa/bbb) => /c/aaa/bbb +# $(call adjust-path-mixed,/c/aaa/bbb) => c:/aaa/bbb +# $(call adjust-path-mixed,/cygdrive/c/aaa/bbb) => c:/aaa/bbb +# + +# +# adjust-path +# - converts back slash characters into forward slashes +# - if input arg ($1) is an empty string then return the empty string +# - if input arg ($1) does not contain the string ":/", then return input arg +# - using sed, convert mixed path [c:/...] into mingw path [/c/...] +define adjust-path +$(strip \ +$(if $1,\ +$(if $(findstring :/,$(subst \,/,$1)),\ +$(shell echo $(subst \,/,$1) | sed -e 's,^\([a-zA-Z]\):/,/\1/,'),\ +$(subst \,/,$1)))) +endef + +# +# adjust-path-mixed +# - converts back slash characters into forward slashes +# - if input arg ($1) is an empty string then return the empty string +# - if input arg ($1) does not begin with a forward slash '/' char, then +# return input arg +# - using sed, convert mingw path [/c/...] or cygwin path [/c/cygdrive/...] +# into a mixed path [c:/...] +define adjust-path-mixed +$(strip \ +$(if $1,\ +$(if $(findstring $(subst \,/,$1),$(patsubst /%,%,$(subst \,/,$1))),\ +$(subst \,/,$1),\ +$(shell echo $(subst \,/,$1) | sed -e 's,^/cygdrive/\([a-zA-Z]\)/,\1:/,' -e 's,^/\([a-zA-Z]\)/,\1:/,')))) +endef + +else # MAKE_VERSION != 3.81 (MAKE_VERSION == 3.80 or MAKE_VERSION == 3.79) +# +# adjust-path for Cygwin Gnu Make +# $(call adjust-path,c:/aaa/bbb) = /cygdrive/c/aaa/bbb +# $(call adjust-path-mixed,/cygdrive/c/aaa/bbb) = c:/aaa/bbb +# +adjust-path = $(if $1,$(shell cygpath -u "$1"),) +adjust-path-mixed = $(if $1,$(shell cygpath -m "$1"),) +endif + +else # !COMSPEC + +adjust-path = $1 +adjust-path-mixed = $1 + +endif # COMSPEC + + +#vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv +# GENERATED SETTINGS START v +#vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv + +#START GENERATED +ACTIVE_BUILD_CONFIG := default +BUILD_CONFIGS := default + +# The following TYPE comment allows tools to identify the 'type' of target this +# makefile is associated with. +# TYPE: APP_MAKEFILE + +# This following VERSION comment indicates the version of the tool used to +# generate this makefile. A makefile variable is provided for VERSION as well. +# ACDS_VERSION: 13.0sp1 +ACDS_VERSION := 13.0sp1 + +# This following BUILD_NUMBER comment indicates the build number of the tool +# used to generate this makefile. +# BUILD_NUMBER: 232 + +# Define path to the application ELF. +# It may be used by the makefile fragments so is defined before including them. +# +ELF := qsys_tutorial.elf + +# Paths to C, C++, and assembly source files. +C_SRCS := +CXX_SRCS := +ASM_SRCS := + + +# Path to root of object file tree. +OBJ_ROOT_DIR := obj + +# Options to control objdump. +CREATE_OBJDUMP := 1 +OBJDUMP_INCLUDE_SOURCE := 1 +OBJDUMP_FULL_CONTENTS := 0 + +# Options to enable/disable optional files. +CREATE_ELF_DERIVED_FILES := 0 +CREATE_LINKER_MAP := 1 + +# Common arguments for ALT_CFLAGSs +APP_CFLAGS_DEFINED_SYMBOLS := +APP_CFLAGS_UNDEFINED_SYMBOLS := +APP_CFLAGS_OPTIMIZATION := -O0 +APP_CFLAGS_DEBUG_LEVEL := -g +APP_CFLAGS_WARNINGS := -Wall +APP_CFLAGS_USER_FLAGS := + +APP_ASFLAGS_USER := +APP_LDFLAGS_USER := + +# Linker options that have default values assigned later if not +# assigned here. +LINKER_SCRIPT := +CRT0 := +SYS_LIB := + +# Define path to the root of the BSP. +BSP_ROOT_DIR := ../qsys_tutorial_bsp/ + +# List of application specific include directories, library directories and library names +APP_INCLUDE_DIRS := +APP_LIBRARY_DIRS := +APP_LIBRARY_NAMES := + +# Pre- and post- processor settings. +BUILD_PRE_PROCESS := +BUILD_POST_PROCESS := + +QUARTUS_PROJECT_DIR := ../../ + + +#END GENERATED + +#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +# GENERATED SETTINGS END ^ +#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + +#------------------------------------------------------------------------------ +# DEFAULT TARGET +#------------------------------------------------------------------------------ + +# Define the variable used to echo output if not already defined. +ifeq ($(ECHO),) +ECHO := echo +endif + +# Put "all" rule before included makefile fragments because they may +# define rules and we don't want one of those to become the default rule. +.PHONY : all + +all: + @$(ECHO) [$(APP_NAME) build complete] + +all : build_pre_process libs app build_post_process + + +#------------------------------------------------------------------------------ +# VARIABLES DEPENDENT ON GENERATED CONTENT +#------------------------------------------------------------------------------ + +# Define object file directory per build configuration +CONFIG_OBJ_DIR := $(OBJ_ROOT_DIR)/$(ACTIVE_BUILD_CONFIG) + +ifeq ($(BSP_ROOT_DIR),) +$(error Edit Makefile and provide a value for BSP_ROOT_DIR) +endif + +ifeq ($(wildcard $(BSP_ROOT_DIR)),) +$(error BSP directory does not exist: $(BSP_ROOT_DIR)) +endif + +# Define absolute path to the root of the BSP. +ABS_BSP_ROOT_DIR := $(call adjust-path-mixed,$(shell cd "$(BSP_ROOT_DIR)"; pwd)) + +# Include makefile fragments. Define variable ALT_LIBRARY_ROOT_DIR before +# including each makefile fragment so that it knows the path to itself. +BSP_INCLUDE_FILE := $(BSP_ROOT_DIR)/public.mk +ALT_LIBRARY_ROOT_DIR := $(BSP_ROOT_DIR) +include $(BSP_INCLUDE_FILE) +# C2H will need this to touch the BSP public.mk and avoid the sopc file +# out-of-date error during a BSP make +ABS_BSP_INCLUDE_FILE := $(ABS_BSP_ROOT_DIR)/public.mk + + +ifneq ($(WARNING.SMALL_STACK_SIZE),) +# This WARNING is here to protect you from unknowingly using a very small stack +# If the warning is set, increase your stack size or enable the BSP small stack +# setting to eliminate the warning +$(warning WARNING: $(WARNING.SMALL_STACK_SIZE)) +endif + + +# If the BSP public.mk indicates that ALT_SIM_OPTIMIZE is set, rename the ELF +# by prefixing it with RUN_ON_HDL_SIMULATOR_ONLY_. +ifneq ($(filter -DALT_SIM_OPTIMIZE,$(ALT_CPPFLAGS)),) +ELF := RUN_ON_HDL_SIMULATOR_ONLY_$(ELF) +endif + +# If the BSP public.mk indicates that ALT_PROVIDE_GMON is set, add option to +# download_elf target +ifneq ($(filter -DALT_PROVIDE_GMON,$(ALT_CPPFLAGS)),) +GMON_OUT_FILENAME := gmon.out +WRITE_GMON_OPTION := --write-gmon $(GMON_OUT_FILENAME) +endif + +# Name of ELF application. +APP_NAME := $(basename $(ELF)) + +# Set to defaults if variables not already defined in settings. +ifeq ($(LINKER_SCRIPT),) +LINKER_SCRIPT := $(BSP_LINKER_SCRIPT) +endif +ifeq ($(CRT0),) +CRT0 := $(BSP_CRT0) +endif +ifeq ($(SYS_LIB),) +SYS_LIB := $(BSP_SYS_LIB) +endif + +OBJDUMP_NAME := $(APP_NAME).objdump +OBJDUMP_FLAGS := --disassemble --syms --all-header +ifeq ($(OBJDUMP_INCLUDE_SOURCE),1) +OBJDUMP_FLAGS += --source +endif +ifeq ($(OBJDUMP_FULL_CONTENTS),1) +OBJDUMP_FLAGS += --full-contents +endif + +# Create list of linker dependencies (*.a files). +APP_LDDEPS := $(ALT_LDDEPS) $(LDDEPS) + +# Take lists and add required prefixes. +APP_INC_DIRS := $(addprefix -I, $(ALT_INCLUDE_DIRS) $(APP_INCLUDE_DIRS) $(INC_DIRS)) +ASM_INC_PREFIX := -Wa,-I +APP_ASM_INC_DIRS := $(addprefix $(ASM_INC_PREFIX), $(ALT_INCLUDE_DIRS) $(APP_INCLUDE_DIRS) $(INC_DIRS)) +APP_LIB_DIRS := $(addprefix -L, $(ALT_LIBRARY_DIRS) $(APP_LIBRARY_DIRS) $(LIB_DIRS)) +APP_LIBS := $(addprefix -l, $(ALT_LIBRARY_NAMES) $(APP_LIBRARY_NAMES) $(LIBS)) + +ifneq ($(AVOID_NIOS2_GCC3_OPTIONS),) + +# +# Avoid Nios II GCC 3.X options. +# + +# Detect if small newlib C library is requested. +# If yes, remove the -msmallc option because it is +# now handled by other means. +ifneq ($(filter -msmallc,$(ALT_LDFLAGS)),) + ALT_LDFLAGS := $(filter-out -msmallc,$(ALT_LDFLAGS)) + ALT_C_LIBRARY := smallc +else + ALT_C_LIBRARY := c +endif + +# Put each BSP dependent library in a group to avoid circular dependencies. +APP_BSP_DEP_LIBS := $(foreach l,$(ALT_BSP_DEP_LIBRARY_NAMES),-Wl,--start-group -l$(ALT_C_LIBRARY) -lgcc -l$(l) -Wl,--end-group) + +else # !AVOID_NIOS2_GCC3_OPTIONS + +# +# Use Nios II GCC 3.X options. +# +APP_BSP_DEP_LIBS := $(addprefix -msys-lib=, $(ALT_BSP_DEP_LIBRARY_NAMES)) + +endif # !AVOID_NIOS2_GCC3_OPTIONS + +# Arguments for the C preprocessor, C/C++ compiler, assembler, and linker. +APP_CFLAGS := $(APP_CFLAGS_DEFINED_SYMBOLS) \ + $(APP_CFLAGS_UNDEFINED_SYMBOLS) \ + $(APP_CFLAGS_OPTIMIZATION) \ + $(APP_CFLAGS_DEBUG_LEVEL) \ + $(APP_CFLAGS_WARNINGS) \ + $(APP_CFLAGS_USER_FLAGS) \ + $(ALT_CFLAGS) \ + $(CFLAGS) + +# Arguments only for the C++ compiler. +APP_CXXFLAGS := $(ALT_CXXFLAGS) $(CXXFLAGS) + +# Arguments only for the C preprocessor. +# Prefix each include directory with -I. +APP_CPPFLAGS := $(APP_INC_DIRS) \ + $(ALT_CPPFLAGS) \ + $(CPPFLAGS) + +# Arguments only for the assembler. +APP_ASFLAGS := $(APP_ASM_INC_DIRS) \ + $(ALT_ASFLAGS) \ + $(APP_ASFLAGS_USER) \ + $(ASFLAGS) + +# Arguments only for the linker. +APP_LDFLAGS := $(APP_LDFLAGS_USER) + +ifneq ($(LINKER_SCRIPT),) +APP_LDFLAGS += -T'$(LINKER_SCRIPT)' +endif + +ifneq ($(AVOID_NIOS2_GCC3_OPTIONS),) + +# Avoid Nios II GCC 3.x options. +ifneq ($(CRT0),) +APP_LDFLAGS += $(CRT0) +endif + +# The equivalent of the -msys-lib option is provided +# by the GROUP() command in the linker script. +# Note this means the SYS_LIB variable is now ignored. + +else # !AVOID_NIOS2_GCC3_OPTIONS + +# Use Nios II GCC 3.x options. +ifneq ($(CRT0),) +APP_LDFLAGS += -msys-crt0='$(CRT0)' +endif +ifneq ($(SYS_LIB),) +APP_LDFLAGS += -msys-lib=$(SYS_LIB) +endif + +endif # !AVOID_NIOS2_GCC3_OPTIONS + +APP_LDFLAGS += \ + $(APP_LIB_DIRS) \ + $(ALT_LDFLAGS) \ + $(LDFLAGS) + +LINKER_MAP_NAME := $(APP_NAME).map +ifeq ($(CREATE_LINKER_MAP), 1) +APP_LDFLAGS += -Wl,-Map=$(LINKER_MAP_NAME) +endif + +# QUARTUS_PROJECT_DIR and SOPC_NAME need to be defined if you want the +# mem_init_install target of the mem_init.mk (located in the associated BSP) +# to know how to copy memory initialization files (e.g. .dat, .hex) into +# directories required for Quartus compilation or RTL simulation. + +# Defining QUARTUS_PROJECT_DIR causes mem_init_install to copy memory +# initialization files into your Quartus project directory. This is required +# to provide the initial memory contents of FPGA memories that can be +# initialized by the programming file (.sof) or Hardcopy ROMs. It is also used +# for VHDL simulation of on-chip memories. + +# Defining SOPC_NAME causes the mem_init_install target to copy memory +# initialization files into your RTL simulation directory. This is required +# to provide the initial memory contents of all memories that can be +# initialized by RTL simulation. This variable should be set to the same name +# as your SOPC Builder system name. For example, if you have a system called +# "foo.sopc", this variable should be set to "foo". + +# If SOPC_NAME is not set and QUARTUS_PROJECT_DIR is set, then derive SOPC_NAME. +ifeq ($(SOPC_NAME),) +ifneq ($(QUARTUS_PROJECT_DIR),) +SOPC_NAME := $(basename $(notdir $(wildcard $(QUARTUS_PROJECT_DIR)/*.sopcinfo))) +endif +endif + +# Defining JDI_FILE is required to specify the JTAG Debug Information File +# path. This file is generated by Quartus, and is needed along with the +# .sopcinfo file to resolve processor instance ID's from names in a multi-CPU +# systems. For multi-CPU systems, the processor instance ID is used to select +# from multiple CPU's during ELF download. + +# Both JDI_FILE and SOPCINFO_FILE are provided by the BSP if they found during +# BSP creation. If JDI_FILE is not set and QUARTUS_PROJECT_DIR is set, then +# derive JDI_FILE. We do not attempt to derive SOPCINFO_FILE since there may be +# multiple .sopcinfo files in a Quartus project. +ifeq ($(JDI_FILE),) +ifneq ($(QUARTUS_PROJECT_DIR),) +JDI_FILE := $(wildcard $(QUARTUS_PROJECT_DIR)/*.jdi) +endif +endif + +# Path to root runtime directory used for hdl simulation +RUNTIME_ROOT_DIR := $(CONFIG_OBJ_DIR)/runtime + + + +#------------------------------------------------------------------------------ +# MAKEFILE INCLUDES DEPENDENT ON GENERATED CONTENT +#------------------------------------------------------------------------------ +# mem_init.mk is a generated makefile fragment. This file defines all targets +# used to generate HDL initialization simulation files and pre-initialized +# onchip memory files. +MEM_INIT_FILE := $(BSP_ROOT_DIR)/mem_init.mk +include $(MEM_INIT_FILE) + +# Create list of object files to be built using the list of source files. +# The source file hierarchy is preserved in the object tree. +# The supported file extensions are: +# +# .c - for C files +# .cxx .cc .cpp - for C++ files +# .S .s - for assembler files +# +# Handle source files specified by --src-dir & --src-rdir differently, to +# save some processing time in calling the adjust-path macro. + +OBJ_LIST_C := $(patsubst %.c,%.o,$(filter %.c,$(C_SRCS))) +OBJ_LIST_CPP := $(patsubst %.cpp,%.o,$(filter %.cpp,$(CXX_SRCS))) +OBJ_LIST_CXX := $(patsubst %.cxx,%.o,$(filter %.cxx,$(CXX_SRCS))) +OBJ_LIST_CC := $(patsubst %.cc,%.o,$(filter %.cc,$(CXX_SRCS))) +OBJ_LIST_S := $(patsubst %.S,%.o,$(filter %.S,$(ASM_SRCS))) +OBJ_LIST_SS := $(patsubst %.s,%.o,$(filter %.s,$(ASM_SRCS))) + +OBJ_LIST := $(sort $(OBJ_LIST_C) $(OBJ_LIST_CPP) $(OBJ_LIST_CXX) \ + $(OBJ_LIST_CC) $(OBJ_LIST_S) $(OBJ_LIST_SS)) + +SDIR_OBJ_LIST_C := $(patsubst %.c,%.o,$(filter %.c,$(SDIR_C_SRCS))) +SDIR_OBJ_LIST_CPP := $(patsubst %.cpp,%.o,$(filter %.cpp,$(SDIR_CXX_SRCS))) +SDIR_OBJ_LIST_CXX := $(patsubst %.cxx,%.o,$(filter %.cxx,$(SDIR_CXX_SRCS))) +SDIR_OBJ_LIST_CC := $(patsubst %.cc,%.o,$(filter %.cc,$(SDIR_CXX_SRCS))) +SDIR_OBJ_LIST_S := $(patsubst %.S,%.o,$(filter %.S,$(SDIR_ASM_SRCS))) +SDIR_OBJ_LIST_SS := $(patsubst %.s,%.o,$(filter %.s,$(SDIR_ASM_SRCS))) + +SDIR_OBJ_LIST := $(sort $(SDIR_OBJ_LIST_C) $(SDIR_OBJ_LIST_CPP) \ + $(SDIR_OBJ_LIST_CXX) $(SDIR_OBJ_LIST_CC) $(SDIR_OBJ_LIST_S) \ + $(SDIR_OBJ_LIST_SS)) + +# Relative-pathed objects that being with "../" are handled differently. +# +# Regular objects are created as +# $(CONFIG_OBJ_DIR)//.o +# where the path structure is maintained under the obj directory. This +# applies for both absolute and relative paths; in the absolute path +# case this means the entire source path will be recreated under the obj +# directory. This is done to allow two source files with the same name +# to be included as part of the project. +# +# Note: On Cygwin, the path recreated under the obj directory will be +# the cygpath -u output path. +# +# Relative-path objects that begin with "../" cause problems under this +# scheme, as $(CONFIG_OBJ_DIR)/..// can potentially put the object +# files anywhere in the system, creating clutter and polluting the source tree. +# As such, their paths are flattened - the object file created will be +# $(CONFIG_OBJ_DIR)/.o. Due to this, two files specified with +# "../" in the beginning cannot have the same name in the project. VPATH +# will be set for these sources to allow make to relocate the source file +# via %.o rules. +# +# The following lines separate the object list into the flatten and regular +# lists, and then handles them as appropriate. + +FLATTEN_OBJ_LIST := $(filter ../%,$(OBJ_LIST)) +FLATTEN_APP_OBJS := $(addprefix $(CONFIG_OBJ_DIR)/,$(notdir $(FLATTEN_OBJ_LIST))) + +REGULAR_OBJ_LIST := $(filter-out $(FLATTEN_OBJ_LIST),$(OBJ_LIST)) +REGULAR_OBJ_LIST_C := $(filter $(OBJ_LIST_C),$(REGULAR_OBJ_LIST)) +REGULAR_OBJ_LIST_CPP := $(filter $(OBJ_LIST_CPP),$(REGULAR_OBJ_LIST)) +REGULAR_OBJ_LIST_CXX := $(filter $(OBJ_LIST_CXX),$(REGULAR_OBJ_LIST)) +REGULAR_OBJ_LIST_CC := $(filter $(OBJ_LIST_CC),$(REGULAR_OBJ_LIST)) +REGULAR_OBJ_LIST_S := $(filter $(OBJ_LIST_S),$(REGULAR_OBJ_LIST)) +REGULAR_OBJ_LIST_SS := $(filter $(OBJ_LIST_SS),$(REGULAR_OBJ_LIST)) + +FLATTEN_SDIR_OBJ_LIST := $(filter ../%,$(SDIR_OBJ_LIST)) +FLATTEN_SDIR_APP_OBJS := $(addprefix $(CONFIG_OBJ_DIR)/,$(notdir $(FLATTEN_SDIR_OBJ_LIST))) + +REGULAR_SDIR_OBJ_LIST := $(filter-out $(FLATTEN_SDIR_OBJ_LIST),$(SDIR_OBJ_LIST)) +REGULAR_SDIR_OBJ_LIST_C := $(filter $(SDIR_OBJ_LIST_C),$(REGULAR_SDIR_OBJ_LIST)) +REGULAR_SDIR_OBJ_LIST_CPP := $(filter $(SDIR_OBJ_LIST_CPP),$(REGULAR_SDIR_OBJ_LIST)) +REGULAR_SDIR_OBJ_LIST_CXX := $(filter $(SDIR_OBJ_LIST_CXX),$(REGULAR_SDIR_OBJ_LIST)) +REGULAR_SDIR_OBJ_LIST_CC := $(filter $(SDIR_OBJ_LIST_CC),$(REGULAR_SDIR_OBJ_LIST)) +REGULAR_SDIR_OBJ_LIST_S := $(filter $(SDIR_OBJ_LIST_S),$(REGULAR_SDIR_OBJ_LIST)) +REGULAR_SDIR_OBJ_LIST_SS := $(filter $(SDIR_OBJ_LIST_SS),$(REGULAR_SDIR_OBJ_LIST)) + +VPATH := $(sort $(dir $(FLATTEN_OBJ_LIST)) $(dir $(FLATTEN_SDIR_OBJ_LIST))) + +APP_OBJS_C := $(addprefix $(CONFIG_OBJ_DIR)/,\ + $(REGULAR_SDIR_OBJ_LIST_C) \ + $(foreach s,$(REGULAR_OBJ_LIST_C),$(call adjust-path,$s))) + +APP_OBJS_CPP := $(addprefix $(CONFIG_OBJ_DIR)/,\ + $(REGULAR_SDIR_OBJ_LIST_CPP) \ + $(foreach s,$(REGULAR_OBJ_LIST_CPP),$(call adjust-path,$s))) + +APP_OBJS_CXX := $(addprefix $(CONFIG_OBJ_DIR)/,\ + $(REGULAR_SDIR_OBJ_LIST_CXX) \ + $(foreach s,$(REGULAR_OBJ_LIST_CXX),$(call adjust-path,$s))) + +APP_OBJS_CC := $(addprefix $(CONFIG_OBJ_DIR)/,\ + $(REGULAR_SDIR_OBJ_LIST_CC) \ + $(foreach s,$(REGULAR_OBJ_LIST_CC),$(call adjust-path,$s))) + +APP_OBJS_S := $(addprefix $(CONFIG_OBJ_DIR)/,\ + $(REGULAR_SDIR_OBJ_LIST_S) \ + $(foreach s,$(REGULAR_OBJ_LIST_S),$(call adjust-path,$s))) + +APP_OBJS_SS := $(addprefix $(CONFIG_OBJ_DIR)/,\ + $(REGULAR_SDIR_OBJ_LIST_SS) \ + $(foreach s,$(REGULAR_OBJ_LIST_SS),$(call adjust-path,$s))) + +APP_OBJS := $(APP_OBJS_C) $(APP_OBJS_CPP) $(APP_OBJS_CXX) $(APP_OBJS_CC) \ + $(APP_OBJS_S) $(APP_OBJS_SS) \ + $(FLATTEN_APP_OBJS) $(FLATTEN_SDIR_APP_OBJS) + +# Add any extra user-provided object files. +APP_OBJS += $(OBJS) + +# Create list of dependancy files for each object file. +APP_DEPS := $(APP_OBJS:.o=.d) + +# Patch the Elf file with system specific information + +# Patch the Elf with the name of the sopc system +ifneq ($(SOPC_NAME),) +ELF_PATCH_FLAG += --sopc_system_name $(SOPC_NAME) +endif + +# Patch the Elf with the absolute path to the Quartus Project Directory +ifneq ($(QUARTUS_PROJECT_DIR),) +ABS_QUARTUS_PROJECT_DIR := $(call adjust-path-mixed,$(shell cd "$(QUARTUS_PROJECT_DIR)"; pwd)) +ELF_PATCH_FLAG += --quartus_project_dir "$(ABS_QUARTUS_PROJECT_DIR)" +endif + +# Patch the Elf and download args with the JDI_FILE if specified +ifneq ($(wildcard $(JDI_FILE)),) +ELF_PATCH_FLAG += --jdi $(JDI_FILE) +DOWNLOAD_JDI_FLAG := --jdi $(JDI_FILE) +endif + +# Patch the Elf with the SOPCINFO_FILE if specified +ifneq ($(wildcard $(SOPCINFO_FILE)),) +ELF_PATCH_FLAG += --sopcinfo $(SOPCINFO_FILE) +endif + +# Use the DOWNLOAD_CABLE variable to specify which JTAG cable to use. +# This is not needed if you only have one cable. +ifneq ($(DOWNLOAD_CABLE),) +DOWNLOAD_CABLE_FLAG := --cable '$(DOWNLOAD_CABLE)' +endif + + +#------------------------------------------------------------------------------ +# BUILD PRE/POST PROCESS +#------------------------------------------------------------------------------ +build_pre_process : + $(BUILD_PRE_PROCESS) + +build_post_process : + $(BUILD_POST_PROCESS) + +.PHONY: build_pre_process build_post_process + + +#------------------------------------------------------------------------------ +# TOOLS +#------------------------------------------------------------------------------ + +# +# Set tool default variables if not already defined. +# If these are defined, they would typically be defined in an +# included makefile fragment. +# +ifeq ($(DEFAULT_CROSS_COMPILE),) +DEFAULT_CROSS_COMPILE := nios2-elf- +endif + +ifeq ($(DEFAULT_STACK_REPORT),) +DEFAULT_STACKREPORT := nios2-stackreport +endif + +ifeq ($(DEFAULT_DOWNLOAD),) +DEFAULT_DOWNLOAD := nios2-download +endif + +ifeq ($(DEFAULT_FLASHPROG),) +DEFAULT_FLASHPROG := nios2-flash-programmer +endif + +ifeq ($(DEFAULT_ELFPATCH),) +DEFAULT_ELFPATCH := nios2-elf-insert +endif + +ifeq ($(DEFAULT_RM),) +DEFAULT_RM := rm -f +endif + +ifeq ($(DEFAULT_CP),) +DEFAULT_CP := cp -f +endif + +ifeq ($(DEFAULT_MKDIR),) +DEFAULT_MKDIR := mkdir -p +endif + +# +# Set tool variables to defaults if not already defined. +# If these are defined, they would typically be defined by a +# setting in the generated portion of this makefile. +# +ifeq ($(CROSS_COMPILE),) +CROSS_COMPILE := $(DEFAULT_CROSS_COMPILE) +endif + +ifeq ($(origin CC),default) +CC := $(CROSS_COMPILE)gcc -xc +endif + +ifeq ($(origin CXX),default) +CXX := $(CROSS_COMPILE)gcc -xc++ +endif + +ifeq ($(origin AS),default) +AS := $(CROSS_COMPILE)gcc +endif + +ifeq ($(origin AR),default) +AR := $(CROSS_COMPILE)ar +endif + +ifeq ($(origin LD),default) +LD := $(CROSS_COMPILE)g++ +endif + +ifeq ($(origin NM),default) +NM := $(CROSS_COMPILE)nm +endif + +ifeq ($(origin RM),default) +RM := $(DEFAULT_RM) +endif + +ifeq ($(origin CP),default) +CP := $(DEFAULT_CP) +endif + +ifeq ($(OBJDUMP),) +OBJDUMP := $(CROSS_COMPILE)objdump +endif + +ifeq ($(OBJCOPY),) +OBJCOPY := $(CROSS_COMPILE)objcopy +endif + +ifeq ($(STACKREPORT),) +ifeq ($(CROSS_COMPILE),nios2-elf-) +STACKREPORT := $(DEFAULT_STACKREPORT) +else +DISABLE_STACKREPORT := 1 +endif +endif + +ifeq ($(DOWNLOAD),) +DOWNLOAD := $(DEFAULT_DOWNLOAD) +endif + +ifeq ($(FLASHPROG),) +FLASHPROG := $(DEFAULT_FLASHPROG) +endif + +ifeq ($(ELFPATCH),) +ELFPATCH := $(DEFAULT_ELFPATCH) +endif + +ifeq ($(MKDIR),) +MKDIR := $(DEFAULT_MKDIR) +endif + +#------------------------------------------------------------------------------ +# PATTERN RULES TO BUILD OBJECTS +#------------------------------------------------------------------------------ + +define compile.c +@$(ECHO) Info: Compiling $< to $@ +@$(MKDIR) $(@D) +$(CC) -MP -MMD -c $(APP_CPPFLAGS) $(APP_CFLAGS) -o $@ $< +$(CC_POST_PROCESS) +endef + +define compile.cpp +@$(ECHO) Info: Compiling $< to $@ +@$(MKDIR) $(@D) +$(CXX) -MP -MMD -c $(APP_CPPFLAGS) $(APP_CXXFLAGS) $(APP_CFLAGS) -o $@ $< +$(CXX_POST_PROCESS) +endef + +# If assembling with the compiler, ensure "-Wa," is prepended to all APP_ASFLAGS +ifeq ($(AS),$(patsubst %as,%,$(AS))) +COMMA := , +APP_ASFLAGS := $(filter-out $(APP_CFLAGS),$(addprefix -Wa$(COMMA),$(patsubst -Wa$(COMMA)%,%,$(APP_ASFLAGS)))) +endif + +define compile.s +@$(ECHO) Info: Assembling $< to $@ +@$(MKDIR) $(@D) +$(AS) -MP -MMD -c $(APP_CPPFLAGS) $(APP_CFLAGS) $(APP_ASFLAGS) -o $@ $< +$(AS_POST_PROCESS) +endef + +ifeq ($(MAKE_VERSION),3.81) +.SECONDEXPANSION: + +$(APP_OBJS_C): $(CONFIG_OBJ_DIR)/%.o: $$(call adjust-path-mixed,%.c) + $(compile.c) + +$(APP_OBJS_CPP): $(CONFIG_OBJ_DIR)/%.o: $$(call adjust-path-mixed,%.cpp) + $(compile.cpp) + +$(APP_OBJS_CC): $(CONFIG_OBJ_DIR)/%.o: $$(call adjust-path-mixed,%.cc) + $(compile.cpp) + +$(APP_OBJS_CXX): $(CONFIG_OBJ_DIR)/%.o: $$(call adjust-path-mixed,%.cxx) + $(compile.cpp) + +$(APP_OBJS_S): $(CONFIG_OBJ_DIR)/%.o: $$(call adjust-path-mixed,%.S) + $(compile.s) + +$(APP_OBJS_SS): $(CONFIG_OBJ_DIR)/%.o: $$(call adjust-path-mixed,%.s) + $(compile.s) + +endif # MAKE_VERSION != 3.81 + +$(CONFIG_OBJ_DIR)/%.o: %.c + $(compile.c) + +$(CONFIG_OBJ_DIR)/%.o: %.cpp + $(compile.cpp) + +$(CONFIG_OBJ_DIR)/%.o: %.cc + $(compile.cpp) + +$(CONFIG_OBJ_DIR)/%.o: %.cxx + $(compile.cpp) + +$(CONFIG_OBJ_DIR)/%.o: %.S + $(compile.s) + +$(CONFIG_OBJ_DIR)/%.o: %.s + $(compile.s) + + +#------------------------------------------------------------------------------ +# PATTERN RULES TO INTERMEDIATE FILES +#------------------------------------------------------------------------------ + +$(CONFIG_OBJ_DIR)/%.s: %.c + @$(ECHO) Info: Compiling $< to $@ + @$(MKDIR) $(@D) + $(CC) -S $(APP_CPPFLAGS) $(APP_CFLAGS) -o $@ $< + +$(CONFIG_OBJ_DIR)/%.s: %.cpp + @$(ECHO) Info: Compiling $< to $@ + @$(MKDIR) $(@D) + $(CXX) -S $(APP_CPPFLAGS) $(APP_CXXFLAGS) $(APP_CFLAGS) -o $@ $< + +$(CONFIG_OBJ_DIR)/%.s: %.cc + @$(ECHO) Info: Compiling $< to $@ + @$(MKDIR) $(@D) + $(CXX) -S $(APP_CPPFLAGS) $(APP_CXXFLAGS) $(APP_CFLAGS) -o $@ $< + +$(CONFIG_OBJ_DIR)/%.s: %.cxx + @$(ECHO) Info: Compiling $< to $@ + @$(MKDIR) $(@D) + $(CXX) -S $(APP_CPPFLAGS) $(APP_CXXFLAGS) $(APP_CFLAGS) -o $@ $< + +$(CONFIG_OBJ_DIR)/%.i: %.c + @$(ECHO) Info: Compiling $< to $@ + @$(MKDIR) $(@D) + $(CC) -E $(APP_CPPFLAGS) $(APP_CFLAGS) -o $@ $< + +$(CONFIG_OBJ_DIR)/%.i: %.cpp + @$(ECHO) Info: Compiling $< to $@ + @$(MKDIR) $(@D) + $(CXX) -E $(APP_CPPFLAGS) $(APP_CXXFLAGS) $(APP_CFLAGS) -o $@ $< + +$(CONFIG_OBJ_DIR)/%.i: %.cc + @$(ECHO) Info: Compiling $< to $@ + @$(MKDIR) $(@D) + $(CXX) -E $(APP_CPPFLAGS) $(APP_CXXFLAGS) $(APP_CFLAGS) -o $@ $< + +$(CONFIG_OBJ_DIR)/%.i: %.cxx + @$(ECHO) Info: Compiling $< to $@ + @$(MKDIR) $(@D) + $(CXX) -E $(APP_CPPFLAGS) $(APP_CXXFLAGS) $(APP_CFLAGS) -o $@ $< + + +#------------------------------------------------------------------------------ +# TARGET RULES +#------------------------------------------------------------------------------ + +.PHONY : help +help : + @$(ECHO) "Summary of Makefile targets" + @$(ECHO) " Build targets:" + @$(ECHO) " all (default) - Application and all libraries (including BSP)" + @$(ECHO) " bsp - Just the BSP" + @$(ECHO) " libs - All libraries (including BSP)" + @$(ECHO) " flash - All flash files" + @$(ECHO) " mem_init_generate - All memory initialization files" +ifeq ($(QSYS),1) + @$(ECHO) " mem_init_install - This target is deprecated for QSys Systems" + @$(ECHO) " --> Use the mem_init_generate target and then" + @$(ECHO) " add the generated meminit.qip file to your" + @$(ECHO) " Quartus II Project." +else # if QSYS != 1 + @$(ECHO) " mem_init_install - Copy memory initialization files to Quartus II project" +endif # QSYS == 1 + @$(ECHO) + @$(ECHO) " Clean targets:" + @$(ECHO) " clean_all - Application and all libraries (including BSP)" + @$(ECHO) " clean - Just the application" + @$(ECHO) " clean_bsp - Just the BSP" + @$(ECHO) " clean_libs - All libraries (including BSP)" + @$(ECHO) + @$(ECHO) " Run targets:" + @$(ECHO) " download-elf - Download and run your elf executable" + @$(ECHO) " program-flash - Program flash contents to the board" + +# Handy rule to skip making libraries and just make application. +.PHONY : app +app : $(ELF) + +ifeq ($(CREATE_OBJDUMP), 1) +app : $(OBJDUMP_NAME) +endif + +ifeq ($(CREATE_ELF_DERIVED_FILES),1) +app : elf_derived_files +endif + +.PHONY: elf_derived_files +elf_derived_files: default_mem_init + +# Handy rule for making just the BSP. +.PHONY : bsp +bsp : + @$(ECHO) Info: Building $(BSP_ROOT_DIR) + @$(MAKE) --no-print-directory -C $(BSP_ROOT_DIR) + + +# Make sure all makeable libraries (including the BSP) are up-to-date. +LIB_TARGETS := $(patsubst %,%-recurs-make-lib,$(MAKEABLE_LIBRARY_ROOT_DIRS)) + +.PHONY : libs +libs : $(LIB_TARGETS) + +ifneq ($(strip $(LIB_TARGETS)),) +$(LIB_TARGETS): %-recurs-make-lib: + @$(ECHO) Info: Building $* + $(MAKE) --no-print-directory -C $* +endif + +ifneq ($(strip $(APP_LDDEPS)),) +$(APP_LDDEPS): libs + @true +endif + +# Rules to force your project to rebuild or relink +# .force_relink file will cause any application that depends on this project to relink +# .force_rebuild file will cause this project to rebuild object files +# .force_rebuild_all file will cause this project and any project that depends on this project to rebuild object files + +FORCE_RELINK_DEP := .force_relink +FORCE_REBUILD_DEP := .force_rebuild +FORCE_REBUILD_ALL_DEP := .force_rebuild_all +FORCE_REBUILD_DEP_LIST := $(CONFIG_OBJ_DIR)/$(FORCE_RELINK_DEP) $(CONFIG_OBJ_DIR)/$(FORCE_REBUILD_DEP) $(FORCE_REBUILD_ALL_DEP) + +$(FORCE_REBUILD_DEP_LIST): + +$(APP_OBJS): $(wildcard $(CONFIG_OBJ_DIR)/$(FORCE_REBUILD_DEP)) $(wildcard $(addsuffix /$(FORCE_REBUILD_ALL_DEP), . $(ALT_LIBRARY_DIRS))) + +$(ELF): $(wildcard $(addsuffix /$(FORCE_RELINK_DEP), $(CONFIG_OBJ_DIR) $(ALT_LIBRARY_DIRS))) + + +# Clean just the application. +.PHONY : clean +ifeq ($(CREATE_ELF_DERIVED_FILES),1) +clean : clean_elf_derived_files +endif + +clean : + @$(RM) -r $(ELF) $(OBJDUMP_NAME) $(LINKER_MAP_NAME) $(OBJ_ROOT_DIR) $(RUNTIME_ROOT_DIR) $(FORCE_REBUILD_DEP_LIST) + @$(ECHO) [$(APP_NAME) clean complete] + +# Clean just the BSP. +.PHONY : clean_bsp +clean_bsp : + @$(ECHO) Info: Cleaning $(BSP_ROOT_DIR) + @$(MAKE) --no-print-directory -C $(BSP_ROOT_DIR) clean + +# Clean all makeable libraries including the BSP. +LIB_CLEAN_TARGETS := $(patsubst %,%-recurs-make-clean-lib,$(MAKEABLE_LIBRARY_ROOT_DIRS)) + +.PHONY : clean_libs +clean_libs : $(LIB_CLEAN_TARGETS) + +ifneq ($(strip $(LIB_CLEAN_TARGETS)),) +$(LIB_CLEAN_TARGETS): %-recurs-make-clean-lib: + @$(ECHO) Info: Cleaning $* + $(MAKE) --no-print-directory -C $* clean +endif + +.PHONY: clean_elf_derived_files +clean_elf_derived_files: mem_init_clean + +# Clean application and all makeable libraries including the BSP. +.PHONY : clean_all +clean_all : clean mem_init_clean clean_libs + +# Include the dependency files unless the make goal is performing a clean +# of the application. +ifneq ($(firstword $(MAKECMDGOALS)),clean) +ifneq ($(firstword $(MAKECMDGOALS)),clean_all) +-include $(APP_DEPS) +endif +endif + +.PHONY : download-elf +download-elf : $(ELF) + @if [ "$(DOWNLOAD)" = "none" ]; \ + then \ + $(ECHO) Downloading $(ELF) not supported; \ + else \ + $(ECHO) Info: Downloading $(ELF); \ + $(DOWNLOAD) --go --cpu_name=$(CPU_NAME) $(DOWNLOAD_CABLE_FLAG) $(SOPC_SYSID_FLAG) $(DOWNLOAD_JDI_FLAG) $(WRITE_GMON_OPTION) $(ELF); \ + fi + +# Delete the target of a rule if it has changed and its commands exit +# with a nonzero exit status. +.DELETE_ON_ERROR: + +# Rules for flash programming commands +PROGRAM_FLASH_SUFFIX := -program +PROGRAM_FLASH_TARGET := $(addsuffix $(PROGRAM_FLASH_SUFFIX), $(FLASH_FILES)) + +.PHONY : program-flash +program-flash : $(PROGRAM_FLASH_TARGET) + +.PHONY : $(PROGRAM_FLASH_TARGET) +$(PROGRAM_FLASH_TARGET) : flash + @if [ "$(FLASHPROG)" = "none" ]; \ + then \ + $(ECHO) Programming flash not supported; \ + else \ + $(ECHO) Info: Programming $(basename $@).flash; \ + if [ -z "$($(basename $@)_EPCS_FLAGS)" ]; \ + then \ + $(ECHO) $(FLASHPROG) $(SOPC_SYSID_FLAG) --base=$($(basename $@)_START) $(basename $@).flash; \ + $(FLASHPROG) $(DOWNLOAD_CABLE_FLAG) $(SOPC_SYSID_FLAG) --base=$($(basename $@)_START) $(basename $@).flash; \ + else \ + $(ECHO) $(FLASHPROG) $(SOPC_SYSID_FLAG) --epcs --base=$($(basename $@)_START) $(basename $@).flash; \ + $(FLASHPROG) $(DOWNLOAD_CABLE_FLAG) $(SOPC_SYSID_FLAG) --epcs --base=$($(basename $@)_START) $(basename $@).flash; \ + fi \ + fi + + +# Rules for simulating with an HDL Simulator [QSYS only] +ifeq ($(QSYS),1) +IP_MAKE_SIMSCRIPT := ip-make-simscript + +ifeq ($(VSIM),) +VSIM_EXE := "$(if $(VSIM_DIR),$(VSIM_DIR)/,)vsim" +ifeq ($(ENABLE_VSIM_GUI),1) +VSIM := $(VSIM_EXE) -gui +else +VSIM := $(VSIM_EXE) -c +endif # ENABLE_VSIM_GUI == 1 +endif # VSIM not set + +ifeq ($(SPD),) +ifneq ($(ABS_QUARTUS_PROJECT_DIR),) +ifneq ($(SOPC_NAME),) +SPD := $(ABS_QUARTUS_PROJECT_DIR)/$(SOPC_NAME)_tb.spd +endif # SOPC_NAME set +endif # ABS_QUARTUS_PROJECT_DIR set +endif # SPD == empty string + +ifeq ($(MSIM_SCRIPT),) +SIM_SCRIPT_DIR := $(RUNTIME_ROOT_DIR)/sim +MSIM_SCRIPT := $(SIM_SCRIPT_DIR)/mentor/msim_setup.tcl +endif # MSIM_SCRIPT == empty string + +ifeq ($(MAKE_VERSION),3.81) +ABS_MEM_INIT_DESCRIPTOR_FILE := $(abspath $(MEM_INIT_DESCRIPTOR_FILE)) +else +ABS_MEM_INIT_DESCRIPTOR_FILE := $(call adjust-path-mixed,$(shell pwd))/$(MEM_INIT_DESCRIPTOR_FILE) +endif + +$(MSIM_SCRIPT): $(SPD) $(MEM_INIT_DESCRIPTOR_FILE) +ifeq ($(SPD),) + $(error No SPD file specified. Ensure QUARTUS_PROJECT_DIR variable is set) +endif + @$(MKDIR) $(SIM_SCRIPT_DIR) + $(IP_MAKE_SIMSCRIPT) --spd=$(SPD) --spd=$(MEM_INIT_DESCRIPTOR_FILE) --output-directory=$(SIM_SCRIPT_DIR) + +VSIM_COMMAND = \ + cd $(dir $(MSIM_SCRIPT)) && \ + $(VSIM) -do "do $(notdir $(MSIM_SCRIPT)); ld; $(if $(VSIM_RUN_TIME),run ${VSIM_RUN_TIME};quit;)" + +.PHONY: sim +sim: $(MSIM_SCRIPT) mem_init_generate +ifeq ($(MSIM_SCRIPT),) + $(error MSIM_SCRIPT not set) +endif + $(VSIM_COMMAND) + +endif # QSYS == 1 + + +#------------------------------------------------------------------------------ +# ELF TARGET RULE +#------------------------------------------------------------------------------ +# Rule for constructing the executable elf file. +$(ELF) : $(APP_OBJS) $(LINKER_SCRIPT) $(APP_LDDEPS) + @$(ECHO) Info: Linking $@ + $(LD) $(APP_LDFLAGS) $(APP_CFLAGS) -o $@ $(filter-out $(CRT0),$(APP_OBJS)) $(APP_LIBS) $(APP_BSP_DEP_LIBS) +ifneq ($(DISABLE_ELFPATCH),1) + $(ELFPATCH) $@ $(ELF_PATCH_FLAG) +endif +ifneq ($(DISABLE_STACKREPORT),1) + @bash -c "$(STACKREPORT) $@" +endif + +$(OBJDUMP_NAME) : $(ELF) + @$(ECHO) Info: Creating $@ + $(OBJDUMP) $(OBJDUMP_FLAGS) $< >$@ + +# Rule for printing the name of the elf file +.PHONY: print-elf-name +print-elf-name: + @$(ECHO) $(ELF) + + diff --git a/software/qsys_tutorial/create-this-app b/software/qsys_tutorial/create-this-app new file mode 100644 index 0000000..fb17597 --- /dev/null +++ b/software/qsys_tutorial/create-this-app @@ -0,0 +1,114 @@ +#!/bin/bash +# +# This script creates the hello_world application in this directory. + + +BSP_DIR=../qsys_tutorial_bsp +QUARTUS_PROJECT_DIR=../../ +NIOS2_APP_GEN_ARGS="--elf-name qsys_tutorial.elf --set OBJDUMP_INCLUDE_SOURCE 1 --src-files hello_world.c" + + +# First, check to see if $SOPC_KIT_NIOS2 environmental variable is set. +# This variable is required for the command line tools to execute correctly. +if [ -z "${SOPC_KIT_NIOS2}" ] +then + echo Required \$SOPC_KIT_NIOS2 Environmental Variable is not set! + exit 1 +fi + + +# Also make sure that the APP has not been created already. Check for +# existence of Makefile in the app directory +if [ -f ./Makefile ] +then + echo Application has already been created! Delete Makefile if you want to create a new application makefile + exit 1 +fi + + +# We are selecting hal_default bsp because it supports this application. +# Check to see if the hal_default has already been generated by checking for +# existence of the public.mk file. If not, we need to run +# create-this-bsp file to generate the bsp. +if [ ! -f ${BSP_DIR}/public.mk ]; then + # Since BSP doesn't exist, create the BSP + # Pass any command line arguments passed to this script to the BSP. + pushd ${BSP_DIR} >> /dev/null + ./create-this-bsp "$@" || { + echo "create-this-bsp failed" + exit 1 + } + popd >> /dev/null +fi + + +# Don't run make if create-this-app script is called with --no-make arg +SKIP_MAKE= +while [ $# -gt 0 ] +do + case "$1" in + --no-make) + SKIP_MAKE=1 + ;; + esac + shift +done + + +# Now we also need to go copy the sources for this application to the +# local directory. +find "${SOPC_KIT_NIOS2}/examples/software/hello_world/" -name '*.c' -or -name '*.h' -or -name 'hostfs*' | xargs -i cp -L {} ./ || { + echo "failed during copying example source files" + exit 1 +} + +find "${SOPC_KIT_NIOS2}/examples/software/hello_world/" -name 'readme.txt' -or -name 'Readme.txt' | xargs -i cp -L {} ./ || { + echo "failed copying readme file" +} + +if [ -d "${SOPC_KIT_NIOS2}/examples/software/hello_world/system" ] +then + cp -RL "${SOPC_KIT_NIOS2}/examples/software/hello_world/system" . || { + echo "failed during copying project support files" + exit 1 + } +fi + +chmod -R +w . || { + echo "failed during changing file permissions" + exit 1 +} + +cmd="nios2-app-generate-makefile --bsp-dir ${BSP_DIR} --set QUARTUS_PROJECT_DIR=${QUARTUS_PROJECT_DIR} ${NIOS2_APP_GEN_ARGS}" + +echo "create-this-app: Running \"${cmd}\"" +$cmd || { + echo "nios2-app-generate-makefile failed" + exit 1 +} + +if [ -z "$SKIP_MAKE" ]; then + cmd="make" + + echo "create-this-app: Running \"$cmd\"" + $cmd || { + echo "make failed" + exit 1 + } + + echo + echo "To download and run the application:" + echo " 1. Make sure the board is connected to the system." + echo " 2. Run 'nios2-configure-sof ' to configure the FPGA with the hardware design." + echo " 3. If you have a stdio device, run 'nios2-terminal' in a different shell." + echo " 4. Run 'make download-elf' from the application directory." + echo + echo "To debug the application:" + echo " Import the project into Nios II Software Build Tools for Eclipse." + echo " Refer to Nios II Software Build Tools for Eclipse Documentation for more information." + echo + echo -e "" +fi + + +exit 0 diff --git a/software/qsys_tutorial/obj/default/.force_relink b/software/qsys_tutorial/obj/default/.force_relink new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/software/qsys_tutorial/obj/default/.force_relink diff --git a/software/qsys_tutorial/obj/default/hello_world.d b/software/qsys_tutorial/obj/default/hello_world.d new file mode 100644 index 0000000..730c57b --- /dev/null +++ b/software/qsys_tutorial/obj/default/hello_world.d @@ -0,0 +1,6 @@ +obj/default/hello_world.o: hello_world.c ../qsys_tutorial_bsp/system.h \ + ../qsys_tutorial_bsp/linker.h + +../qsys_tutorial_bsp/system.h: + +../qsys_tutorial_bsp/linker.h: diff --git a/software/qsys_tutorial/obj/default/hello_world.o b/software/qsys_tutorial/obj/default/hello_world.o new file mode 100644 index 0000000..da41161 --- /dev/null +++ b/software/qsys_tutorial/obj/default/hello_world.o Binary files differ diff --git a/software/qsys_tutorial/readme.txt b/software/qsys_tutorial/readme.txt new file mode 100644 index 0000000..7d0742f --- /dev/null +++ b/software/qsys_tutorial/readme.txt @@ -0,0 +1,26 @@ +Readme - Hello World Software Example + +DESCRIPTION: +Simple program that prints "Hello from Nios II" + +The memory footprint of this hosted application is intended to be small (under 100 kbytes) by default +using a standard reference deisgn. + +For an even smaller, reduced footprint version of this template, and an explanation of how +to reduce the memory footprint for a given application, see the +"small_hello_world" template. + + +PERIPHERALS USED: +This example exercises the following peripherals: +- STDOUT device (UART or JTAG UART) + +SOFTWARE SOURCE FILES: +This example includes the following software source files: +- hello_world.c: Everyone needs a Hello World program, right? + +BOARD/HOST REQUIREMENTS: +This example requires only a JTAG connection with a Nios Development board. If +the host communication settings are changed from JTAG UART (default) to use a +conventional UART, a serial cable between board DB-9 connector and the host is +required. diff --git a/software/qsys_tutorial_bsp/.cproject b/software/qsys_tutorial_bsp/.cproject new file mode 100644 index 0000000..cad0737 --- /dev/null +++ b/software/qsys_tutorial_bsp/.cproject @@ -0,0 +1,481 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/software/qsys_tutorial_bsp/.project b/software/qsys_tutorial_bsp/.project new file mode 100644 index 0000000..cda4152 --- /dev/null +++ b/software/qsys_tutorial_bsp/.project @@ -0,0 +1,85 @@ + + + qsys_tutorial_bsp + + + + + + org.eclipse.cdt.managedbuilder.core.genmakebuilder + clean,full,incremental, + + + ?name? + + + + org.eclipse.cdt.make.core.append_environment + true + + + org.eclipse.cdt.make.core.autoBuildTarget + all + + + org.eclipse.cdt.make.core.buildArguments + + + + org.eclipse.cdt.make.core.buildCommand + make + + + org.eclipse.cdt.make.core.buildLocation + ${workspace_loc://qsys_tutorial_bsp} + + + org.eclipse.cdt.make.core.cleanBuildTarget + clean + + + org.eclipse.cdt.make.core.contents + org.eclipse.cdt.make.core.activeConfigSettings + + + org.eclipse.cdt.make.core.enableAutoBuild + false + + + org.eclipse.cdt.make.core.enableCleanBuild + true + + + org.eclipse.cdt.make.core.enableFullBuild + true + + + org.eclipse.cdt.make.core.fullBuildTarget + all + + + org.eclipse.cdt.make.core.stopOnError + true + + + org.eclipse.cdt.make.core.useDefaultBuildCmd + true + + + + + org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder + full,incremental, + + + + + + org.eclipse.cdt.core.cnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.managedbuilder.core.ScannerConfigNature + org.eclipse.cdt.core.ccnature + com.altera.sbtgui.project.SBTGUINature + com.altera.sbtgui.project.SBTGUIBspNature + + diff --git a/software/qsys_tutorial_bsp/HAL/inc/alt_types.h b/software/qsys_tutorial_bsp/HAL/inc/alt_types.h new file mode 100644 index 0000000..d02f171 --- /dev/null +++ b/software/qsys_tutorial_bsp/HAL/inc/alt_types.h @@ -0,0 +1,54 @@ +#ifndef __ALT_TYPES_H__ +#define __ALT_TYPES_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/* + * Don't declare these typedefs if this file is included by assembly source. + */ +#ifndef ALT_ASM_SRC +typedef signed char alt_8; +typedef unsigned char alt_u8; +typedef signed short alt_16; +typedef unsigned short alt_u16; +typedef signed long alt_32; +typedef unsigned long alt_u32; +typedef long long alt_64; +typedef unsigned long long alt_u64; +#endif + +#define ALT_INLINE __inline__ +#define ALT_ALWAYS_INLINE __attribute__ ((always_inline)) +#define ALT_WEAK __attribute__((weak)) + +#endif /* __ALT_TYPES_H__ */ diff --git a/software/qsys_tutorial_bsp/HAL/inc/altera_nios2_qsys_irq.h b/software/qsys_tutorial_bsp/HAL/inc/altera_nios2_qsys_irq.h new file mode 100644 index 0000000..6629ec9 --- /dev/null +++ b/software/qsys_tutorial_bsp/HAL/inc/altera_nios2_qsys_irq.h @@ -0,0 +1,80 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2009 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/* + * Support for the Nios II internal interrupt controller. + */ + +#ifndef __ALT_NIOS2_QSYS_IRQ_H__ +#define __ALT_NIOS2_QSYS_IRQ_H__ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * The macro ALTERA_NIOS2_IRQ_INSTANCE is used by the alt_irq_init() + * function in the auto-generated file alt_sys_init.c to create an + * instance of this interrupt controller device driver state if this + * module contains an interrupt controller. + * Only one instance of a Nios II is allowed so this macro is just empty. + */ + +#define ALTERA_NIOS2_QSYS_IRQ_INSTANCE(name, state) + +/* + * altera_nios2_irq_init() is called by the auto-generated function + * alt_irq_init() once for the Nios II if it contains an interrupt controller. + * The altera_nios2_irq_init() routine is called using the + * ALTERA_NIOS2_IRQ_INIT macro given below. + * + * This function initializes the internal interrupt controller + * so is not called if the Nios II contains an external interrupt + * controller port (because the internal interrupt controller + * is removed if this port is present). + */ + +extern void altera_nios2_qsys_irq_init( void ); + +/* + * The macro ALTERA_NIOS2_IRQ_INIT is used by the alt_irq_init() routine + * in the auto-generated file alt_sys_init.c to initialize an instance + * of the interrupt controller device driver state. + */ + +#define ALTERA_NIOS2_QSYS_IRQ_INIT(name, state) altera_nios2_qsys_irq_init() + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __ALT_NIOS2_QSYS_IRQ_H__ */ + diff --git a/software/qsys_tutorial_bsp/HAL/inc/io.h b/software/qsys_tutorial_bsp/HAL/inc/io.h new file mode 100644 index 0000000..362f103 --- /dev/null +++ b/software/qsys_tutorial_bsp/HAL/inc/io.h @@ -0,0 +1,81 @@ +#ifndef __IO_H__ +#define __IO_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/* IO Header file for Nios II Toolchain */ + +#include "alt_types.h" +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +#ifndef SYSTEM_BUS_WIDTH +#error SYSTEM_BUS_WIDTH undefined +#endif + +/* Dynamic bus access functions */ + +#define __IO_CALC_ADDRESS_DYNAMIC(BASE, OFFSET) \ + ((void *)(((alt_u8*)BASE) + (OFFSET))) + +#define IORD_32DIRECT(BASE, OFFSET) \ + __builtin_ldwio (__IO_CALC_ADDRESS_DYNAMIC ((BASE), (OFFSET))) +#define IORD_16DIRECT(BASE, OFFSET) \ + __builtin_ldhuio (__IO_CALC_ADDRESS_DYNAMIC ((BASE), (OFFSET))) +#define IORD_8DIRECT(BASE, OFFSET) \ + __builtin_ldbuio (__IO_CALC_ADDRESS_DYNAMIC ((BASE), (OFFSET))) + +#define IOWR_32DIRECT(BASE, OFFSET, DATA) \ + __builtin_stwio (__IO_CALC_ADDRESS_DYNAMIC ((BASE), (OFFSET)), (DATA)) +#define IOWR_16DIRECT(BASE, OFFSET, DATA) \ + __builtin_sthio (__IO_CALC_ADDRESS_DYNAMIC ((BASE), (OFFSET)), (DATA)) +#define IOWR_8DIRECT(BASE, OFFSET, DATA) \ + __builtin_stbio (__IO_CALC_ADDRESS_DYNAMIC ((BASE), (OFFSET)), (DATA)) + +/* Native bus access functions */ + +#define __IO_CALC_ADDRESS_NATIVE(BASE, REGNUM) \ + ((void *)(((alt_u8*)BASE) + ((REGNUM) * (SYSTEM_BUS_WIDTH/8)))) + +#define IORD(BASE, REGNUM) \ + __builtin_ldwio (__IO_CALC_ADDRESS_NATIVE ((BASE), (REGNUM))) +#define IOWR(BASE, REGNUM, DATA) \ + __builtin_stwio (__IO_CALC_ADDRESS_NATIVE ((BASE), (REGNUM)), (DATA)) + +#ifdef __cplusplus +} +#endif + +#endif /* __IO_H__ */ diff --git a/software/qsys_tutorial_bsp/HAL/inc/nios2.h b/software/qsys_tutorial_bsp/HAL/inc/nios2.h new file mode 100644 index 0000000..72cefba --- /dev/null +++ b/software/qsys_tutorial_bsp/HAL/inc/nios2.h @@ -0,0 +1,230 @@ +#ifndef __NIOS2_H__ +#define __NIOS2_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2008 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/* + * This header provides processor specific macros for accessing the Nios2 + * control registers. + */ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * Macros for accessing selected processor registers + */ + +#define NIOS2_READ_ET(et) \ + do { __asm ("mov %0, et" : "=r" (et) ); } while (0) + +#define NIOS2_WRITE_ET(et) \ + do { __asm volatile ("mov et, %z0" : : "rM" (et)); } while (0) + +#define NIOS2_READ_SP(sp) \ + do { __asm ("mov %0, sp" : "=r" (sp) ); } while (0) + +/* + * Macros for useful processor instructions + */ + +#define NIOS2_BREAK() \ + do { __asm volatile ("break"); } while (0) + +#define NIOS2_REPORT_STACK_OVERFLOW() \ + do { __asm volatile("break 3"); } while (0) + +/* + * Macros for accessing the control registers. + */ + +#define NIOS2_READ_STATUS(dest) \ + do { dest = __builtin_rdctl(0); } while (0) + +#define NIOS2_WRITE_STATUS(src) \ + do { __builtin_wrctl(0, src); } while (0) + +#define NIOS2_READ_ESTATUS(dest) \ + do { dest = __builtin_rdctl(1); } while (0) + +#define NIOS2_READ_BSTATUS(dest) \ + do { dest = __builtin_rdctl(2); } while (0) + +#define NIOS2_READ_IENABLE(dest) \ + do { dest = __builtin_rdctl(3); } while (0) + +#define NIOS2_WRITE_IENABLE(src) \ + do { __builtin_wrctl(3, src); } while (0) + +#define NIOS2_READ_IPENDING(dest) \ + do { dest = __builtin_rdctl(4); } while (0) + +#define NIOS2_READ_CPUID(dest) \ + do { dest = __builtin_rdctl(5); } while (0) + + +/* + * Macros for accessing extra exception registers. These + * are always enabled wit the MPU or MMU, and optionally + * with other advanced exception types/ + */ +#define NIOS2_READ_EXCEPTION(dest) \ + do { dest = __builtin_rdctl(7); } while (0) + +#define NIOS2_READ_BADADDR(dest) \ + do { dest = __builtin_rdctl(12); } while (0) + + +/* + * Macros for accessing control registers for MPU + * operation. These should not be used unless the + * MPU is enabled. + * + * The config register may be augmented for future + * enhancements. For now, only MPU support is provided. + */ +/* Config register */ +#define NIOS2_WRITE_CONFIG(src) \ + do { __builtin_wrctl(13, src); } while (0) + +#define NIOS2_READ_CONFIG(dest) \ + do { dest = __builtin_rdctl(13); } while (0) + +/* MPU Base Address Register */ +#define NIOS2_WRITE_MPUBASE(src) \ + do { __builtin_wrctl(14, src); } while (0) + +#define NIOS2_READ_MPUBASE(dest) \ + do { dest = __builtin_rdctl(14); } while (0) + +/* MPU Access Register */ +#define NIOS2_WRITE_MPUACC(src) \ + do { __builtin_wrctl(15, src); } while (0) + +#define NIOS2_READ_MPUACC(dest) \ + do { dest = __builtin_rdctl(15); } while (0) + + +/* + * Nios II control registers that are always present + */ +#define NIOS2_STATUS status +#define NIOS2_ESTATUS estatus +#define NIOS2_BSTATUS bstatus +#define NIOS2_IENABLE ienable +#define NIOS2_IPENDING ipending +#define NIOS2_CPUID cpuid + +/* + * STATUS, BSTATUS, ESTATUS, and SSTATUS fields. + * The presence of fields is a function of the Nios II configuration. + */ +#define NIOS2_STATUS_PIE_MSK (0x00000001) +#define NIOS2_STATUS_PIE_OFST (0) +#define NIOS2_STATUS_U_MSK (0x00000002) +#define NIOS2_STATUS_U_OFST (1) +#define NIOS2_STATUS_EH_MSK (0x00000004) +#define NIOS2_STATUS_EH_OFST (2) +#define NIOS2_STATUS_IH_MSK (0x00000008) +#define NIOS2_STATUS_IH_OFST (3) +#define NIOS2_STATUS_IL_MSK (0x000003f0) +#define NIOS2_STATUS_IL_OFST (4) +#define NIOS2_STATUS_CRS_MSK (0x0000fc00) +#define NIOS2_STATUS_CRS_OFST (10) +#define NIOS2_STATUS_PRS_MSK (0x003f0000) +#define NIOS2_STATUS_PRS_OFST (16) +#define NIOS2_STATUS_NMI_MSK (0x00400000) +#define NIOS2_STATUS_NMI_OFST (22) +#define NIOS2_STATUS_RSIE_MSK (0x00800000) +#define NIOS2_STATUS_RSIE_OFST (23) +#define NIOS2_STATUS_SRS_MSK (0x80000000) +#define NIOS2_STATUS_SRS_OFST (31) + +/* + * Bit masks & offsets available with extra exceptions support + */ + +/* Exception register */ +#define NIOS2_EXCEPTION_REG_CAUSE_MASK (0x0000007c) +#define NIOS2_EXCEPTION_REG_CAUSE_OFST (2) + +/* + * Bit masks & offsets for MPU support + * + * All bit-masks are expressed relative to the position + * of the data with a register. To read data that is LSB- + * aligned, the register read data should be masked, then + * right-shifted by the designated "OFST" macro value. The + * opposite should be used for register writes when starting + * with LSB-aligned data. + */ + +/* Config register */ +#define NIOS2_CONFIG_REG_PE_MASK (0x00000001) +#define NIOS2_CONFIG_REG_PE_OFST (0) +#define NIOS2_CONFIG_REG_ANI_MASK (0x00000002) +#define NIOS2_CONFIG_REG_ANI_OFST (1) + +/* MPU Base Address Register */ +#define NIOS2_MPUBASE_D_MASK (0x00000001) +#define NIOS2_MPUBASE_D_OFST (0) +#define NIOS2_MPUBASE_INDEX_MASK (0x0000003e) +#define NIOS2_MPUBASE_INDEX_OFST (1) +#define NIOS2_MPUBASE_BASE_ADDR_MASK (0xffffffc0) +#define NIOS2_MPUBASE_BASE_ADDR_OFST (6) + +/* MPU Access Register */ +#define NIOS2_MPUACC_LIMIT_MASK (0xffffffc0) +#define NIOS2_MPUACC_LIMIT_OFST (6) +#define NIOS2_MPUACC_MASK_MASK (0xffffffc0) +#define NIOS2_MPUACC_MASK_OFST (6) +#define NIOS2_MPUACC_C_MASK (0x00000020) +#define NIOS2_MPUACC_C_OFST (5) +#define NIOS2_MPUACC_PERM_MASK (0x0000001c) +#define NIOS2_MPUACC_PERM_OFST (2) +#define NIOS2_MPUACC_RD_MASK (0x00000002) +#define NIOS2_MPUACC_RD_OFST (1) +#define NIOS2_MPUACC_WR_MASK (0x00000001) +#define NIOS2_MPUACC_WR_OFST (0) + +/* + * Number of available IRQs in internal interrupt controller. + */ +#define NIOS2_NIRQ 32 + + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __NIOS2_H__ */ diff --git a/software/qsys_tutorial_bsp/HAL/inc/os/alt_flag.h b/software/qsys_tutorial_bsp/HAL/inc/os/alt_flag.h new file mode 100644 index 0000000..b9b4605 --- /dev/null +++ b/software/qsys_tutorial_bsp/HAL/inc/os/alt_flag.h @@ -0,0 +1,98 @@ +#ifndef __ALT_FLAG_H__ +#define __ALT_FLAG_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +/* + * This header provides macro definitions that can be used to create and use + * uc/OS-II style event flags. These macros can be used in both a uC/OS-II based + * environment, and a single threaded HAL based environment. + * + * The motivation for these macros is to allow code to be developed which is + * thread safe under uC/OS-II, but incurs no additional overhead when used in a + * single threaded HAL environment. + * + * In the case of a single threaded HAL environment, they compile to + * "do nothing" directives, which ensures they do not contribute to the final + * executable. + * + * The following macros are available: + * + * ALT_FLAG_GRP - Create a flag group instance. + * ALT_EXTERN_FLAG_GRP - Create a reference to an external flag group instance. + * ALT_STATIC_FLAG_GRP - Create a static flag group instance. + * ALT_FLAG_CREATE - Initialise a flag group. + * ALT_FLAG_PEND - Pend on a flag group. + * ALT_FLAG_POST - Set a flag condition. + + * + * Input arguments and return codes are all consistant with the equivalent + * uC/OS-II function. + * + * It's important to be careful in the use of the macros: ALT_FLAG_GRP, + * ALT_EXTERN_FLAG_GRP, and ALT_STATIC_FLAG_GRP. In these three cases the + * semi-colon is included in the macro definition; so, for example, you should + * use: + * + * ALT_FLAG_GRP(mygroup) + * + * not: + * + * ALT_FLAG_GRP(mygroup); + * + * The inclusion of the semi-colon has been necessary to ensure the macros can + * compile with no warnings when used in a single threaded HAL environment. + * + */ + +#include "priv/alt_no_error.h" + +#define ALT_FLAG_GRP(group) +#define ALT_EXTERN_FLAG_GRP(group) +#define ALT_STATIC_FLAG_GRP(group) + +#define ALT_FLAG_CREATE(group, flags) alt_no_error () +#define ALT_FLAG_PEND(group, flags, wait_type, timeout) alt_no_error () +#define ALT_FLAG_POST(group, flags, opt) alt_no_error () + +#ifndef ALT_SINGLE_THREADED +#define ALT_SINGLE_THREADED +#endif + +#endif /* __ALT_FLAG_H__ */ diff --git a/software/qsys_tutorial_bsp/HAL/inc/os/alt_hooks.h b/software/qsys_tutorial_bsp/HAL/inc/os/alt_hooks.h new file mode 100644 index 0000000..9054e3f --- /dev/null +++ b/software/qsys_tutorial_bsp/HAL/inc/os/alt_hooks.h @@ -0,0 +1,61 @@ +#ifndef __ALT_HOOKS_H__ +#define __ALT_HOOKS_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +/* + * This header provides "do-nothing" macro definitions for operating system + * hooks within the HAL. The O/S component can override these to provide it's + * own implementation. + */ + +#define ALT_OS_TIME_TICK() while(0) +#define ALT_OS_INIT() while(0) +#define ALT_OS_STOP() while(0) + +/* Call from assembly code */ +#define ALT_OS_INT_ENTER_ASM +#define ALT_OS_INT_EXIT_ASM + +/* Call from C code */ +#define ALT_OS_INT_ENTER() while(0) +#define ALT_OS_INT_EXIT() while(0) + + +#endif /* __ALT_HOOKS_H__ */ diff --git a/software/qsys_tutorial_bsp/HAL/inc/os/alt_sem.h b/software/qsys_tutorial_bsp/HAL/inc/os/alt_sem.h new file mode 100644 index 0000000..753943e --- /dev/null +++ b/software/qsys_tutorial_bsp/HAL/inc/os/alt_sem.h @@ -0,0 +1,96 @@ +#ifndef __ALT_SEM_H__ +#define __ALT_SEM_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +/* + * This header provides macro definitions that can be used to create and use + * semaphores. These macros can be used in both a uC/OS-II based environment, + * and a single threaded HAL based environment. + * + * The motivation for these macros is to allow code to be developed which is + * thread safe under uC/OS-II, but incurs no additional overhead when used in a + * single threaded HAL environment. + * + * In the case of a single threaded HAL environment, they compile to + * "do nothing" directives, which ensures they do not contribute to the final + * executable. + * + * The following macros are available: + * + * ALT_SEM - Create a semaphore instance. + * ALT_EXTERN_SEM - Create a reference to an external semaphore instance. + * ALT_STATIC_SEM - Create a static semaphore instance. + * ALT_SEM_CREATE - Initialise a semaphore. + * ALT_SEM_PEND - Pend on a semaphore. + * ALT_SEM_POST - Increment a semaphore. + * + * Input arguments and return codes are all consistant with the equivalent + * uC/OS-II function. + * + * It's important to be careful in the use of the macros: ALT_SEM, + * ALT_EXTERN_SEM, and ALT_STATIC_SEM. In these three cases the semi-colon is + * included in the macro definition; so, for example, you should use: + * + * ALT_SEM(mysem) + * + * not: + * + * ALT_SEM(mysem); + * + * The inclusion of the semi-colon has been necessary to ensure the macros can + * compile with no warnings when used in a single threaded HAL environment. + * + */ + +#include "priv/alt_no_error.h" + +#define ALT_SEM(sem) +#define ALT_EXTERN_SEM(sem) +#define ALT_STATIC_SEM(sem) + +#define ALT_SEM_CREATE(sem, value) alt_no_error () +#define ALT_SEM_PEND(sem, timeout) alt_no_error () +#define ALT_SEM_POST(sem) alt_no_error () + +#ifndef ALT_SINGLE_THREADED +#define ALT_SINGLE_THREADED +#endif + +#endif /* __ALT_SEM_H__ */ diff --git a/software/qsys_tutorial_bsp/HAL/inc/os/alt_syscall.h b/software/qsys_tutorial_bsp/HAL/inc/os/alt_syscall.h new file mode 100644 index 0000000..507c6aa --- /dev/null +++ b/software/qsys_tutorial_bsp/HAL/inc/os/alt_syscall.h @@ -0,0 +1,75 @@ +#ifndef __ALT_SYSCALL_H__ +#define __ALT_SYSCALL_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/* + * The macros defined in this file are used to provide the function names used + * for the HAL 'UNIX style' interface, e.g. read(), write() etc. + * + * Operating systems which are ported to the HAL can provide their own + * version of this file, which will be used in preference. This allows + * the operating system to provide it's own implementation of the top level + * system calls, while retaining the HAL functions under a different name, + * for example, alt_read(), alt_write() etc. + */ + +#define ALT_CLOSE close +#define ALT_ENVIRON environ +#define ALT_EXECVE execve +#define ALT_EXIT _exit +#define ALT_FCNTL fcntl +#define ALT_FORK fork +#define ALT_FSTAT fstat +#define ALT_GETPID getpid +#define ALT_GETTIMEOFDAY gettimeofday +#define ALT_IOCTL ioctl +#define ALT_ISATTY isatty +#define ALT_KILL kill +#define ALT_LINK link +#define ALT_LSEEK lseek +#define ALT_OPEN open +#define ALT_READ read +#define ALT_RENAME _rename +#define ALT_SBRK sbrk +#define ALT_SETTIMEOFDAY settimeofday +#define ALT_STAT stat +#define ALT_UNLINK unlink +#define ALT_USLEEP usleep +#define ALT_WAIT wait +#define ALT_WRITE write +#define ALT_TIMES times + +/* + * + */ + +#endif /* __ALT_SYSCALL_H__ */ diff --git a/software/qsys_tutorial_bsp/HAL/inc/priv/alt_alarm.h b/software/qsys_tutorial_bsp/HAL/inc/priv/alt_alarm.h new file mode 100644 index 0000000..45d6a0e --- /dev/null +++ b/software/qsys_tutorial_bsp/HAL/inc/priv/alt_alarm.h @@ -0,0 +1,101 @@ +#ifndef __ALT_PRIV_ALARM_H__ +#define __ALT_PRIV_ALARM_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#include "alt_types.h" + +/* + * This header provides the internal defenitions required by the public + * interface alt_alarm.h. These variables and structures are not guaranteed to + * exist in future implementations of the HAL. + */ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * "alt_alarm_s" is a structure type used to maintain lists of alarm callback + * functions. + */ + +struct alt_alarm_s +{ + alt_llist llist; /* linked list */ + alt_u32 time; /* time in system ticks of the callback */ + alt_u32 (*callback) (void* context); /* callback function. The return + * value is the period for the next callback; where + * zero indicates that the alarm should be removed + * from the list. + */ + alt_u8 rollover; /* set when desired alarm time + current time causes + overflow, to prevent premature alarm */ + void* context; /* Argument for the callback */ +}; + +/* + * "_alt_tick_rate" is a global variable used to store the system clock rate + * in ticks per second. This is initialised to zero, which coresponds to there + * being no system clock available. + * + * It is then set to it's final value by the system clock driver through a call + * to alt_sysclk_init(). + */ + +extern alt_u32 _alt_tick_rate; + +/* + * "_alt_nticks" is a global variable which records the elapsed number of + * system clock ticks since the last call to settimeofday() or since reset if + * settimeofday() has not been called. + */ + +extern volatile alt_u32 _alt_nticks; + +/* The list of registered alarms. */ + +extern alt_llist alt_alarm_list; + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_PRIV_ALARM_H__ */ diff --git a/software/qsys_tutorial_bsp/HAL/inc/priv/alt_busy_sleep.h b/software/qsys_tutorial_bsp/HAL/inc/priv/alt_busy_sleep.h new file mode 100644 index 0000000..b1af849 --- /dev/null +++ b/software/qsys_tutorial_bsp/HAL/inc/priv/alt_busy_sleep.h @@ -0,0 +1,35 @@ +#ifndef __ALT_BUSY_SLEEP_H +#define __ALT_BUSY_SLEEP_H + +/* + * Copyright (c) 2003 Altera Corporation, San Jose, California, USA. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ + +/* + * The function alt_busy_sleep provides a busy loop implementation of usleep. + * This is used to provide usleep for the standalone HAL, or when the timer is + * unavailable in uC/OS-II. + */ + +extern unsigned int alt_busy_sleep (unsigned int us); + +#endif /* __ALT_BUSY_SLEEP_H */ diff --git a/software/qsys_tutorial_bsp/HAL/inc/priv/alt_dev_llist.h b/software/qsys_tutorial_bsp/HAL/inc/priv/alt_dev_llist.h new file mode 100644 index 0000000..451b063 --- /dev/null +++ b/software/qsys_tutorial_bsp/HAL/inc/priv/alt_dev_llist.h @@ -0,0 +1,77 @@ +#ifndef __ALT_DEV_LLIST_H__ +#define __ALT_DEV_LLIST_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#include "sys/alt_llist.h" +#include "alt_types.h" + +/* + * This header provides the internal defenitions required to control file + * access. These variables and functions are not guaranteed to exist in + * future implementations of the HAL. + */ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * The alt_dev_llist is an internal structure used to form a common base + * class for all device types. The use of this structure allows common code + * to be used to manipulate the various device lists. + */ + +typedef struct { + alt_llist llist; + const char* name; +} alt_dev_llist; + +/* + * + */ + +extern int alt_dev_llist_insert (alt_dev_llist* dev, alt_llist* list); + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_DEV_LLIST_H__ */ diff --git a/software/qsys_tutorial_bsp/HAL/inc/priv/alt_exception_handler_registry.h b/software/qsys_tutorial_bsp/HAL/inc/priv/alt_exception_handler_registry.h new file mode 100644 index 0000000..c6905fa --- /dev/null +++ b/software/qsys_tutorial_bsp/HAL/inc/priv/alt_exception_handler_registry.h @@ -0,0 +1,39 @@ +#ifndef __ALT_EXCEPTION_HANDLER_REGISTRY_H__ +#define __ALT_EXCEPTION_HANDLER_REGISTRY_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2008 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ +#include "sys/alt_exceptions.h" + +/* Function pointer to exception callback routine */ +extern alt_exception_result (*alt_instruction_exception_handler) + (alt_exception_cause, alt_u32, alt_u32); + +#endif /* __ALT_EXCEPTION_HANDLER_REGISTRY_H__ */ diff --git a/software/qsys_tutorial_bsp/HAL/inc/priv/alt_file.h b/software/qsys_tutorial_bsp/HAL/inc/priv/alt_file.h new file mode 100644 index 0000000..2c3e843 --- /dev/null +++ b/software/qsys_tutorial_bsp/HAL/inc/priv/alt_file.h @@ -0,0 +1,179 @@ +#ifndef __ALT_FILE_H__ +#define __ALT_FILE_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#include "sys/alt_dev.h" +#include "sys/alt_llist.h" +#include "os/alt_sem.h" + +#include "alt_types.h" + +/* + * This header provides the internal defenitions required to control file + * access. These variables and functions are not guaranteed to exist in + * future implementations of the HAL. + */ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * The function alt_find_dev() is used to search the device list "list" to + * locate a device named "name". If a match is found, then a pointer to the + * device is returned, otherwise NULL is returned. + */ + +extern alt_dev* alt_find_dev (const char* name, alt_llist* list); + +/* + * alt_find_file() is used to search the list of registered file systems to + * find the filesystem that the file named "name" belongs to. If a match is + * found, then a pointer to the filesystems alt_dev structure is returned, + * otherwise NULL is returned. + * + * Note that a match does not indicate that the file exists, only that a + * filesystem exists that is registered for a partition that could contain + * the file. The filesystems open() function would need to be called in order + * to determine if the file exists. + */ + +extern alt_dev* alt_find_file (const char* name); + +/* + * alt_get_fd() is used to allocate a file descriptor for the device or + * filesystem "dev". A negative return value indicates an error, otherwise the + * return value is the index of the file descriptor within the file descriptor + * pool. + */ + +extern int alt_get_fd (alt_dev* dev); + +/* + * alt_release_fd() is called to free the file descriptor with index "fd". + */ + +extern void alt_release_fd (int fd); + +/* + * alt_fd_lock() is called by ioctl() to mark the file descriptor "fd" as + * being open for exclusive access. Subsequent calls to open() for the device + * associated with "fd" will fail. A device is unlocked by either calling + * close() for "fd", or by an alternate call to ioctl() (see ioctl.c for + * details). + */ + +extern int alt_fd_lock (alt_fd* fd); + +/* + * alt_fd_unlock() is called by ioctl() to unlock a descriptor previously + * locked by a call to alt_fd_lock(). + */ + +extern int alt_fd_unlock (alt_fd* fd); + +/* + * "alt_fd_list" is the pool of file descriptors. + */ + +extern alt_fd alt_fd_list[]; + +/* + * flags used by alt_fd. + * + * ALT_FD_EXCL is used to mark a file descriptor as locked for exclusive + * access, i.e. further calls to open() for the associated device should + * fail. + * + * ALT_FD_DEV marks a dile descriptor as belonging to a device as oposed to a + * filesystem. + */ + +#define ALT_FD_EXCL 0x80000000 +#define ALT_FD_DEV 0x40000000 + +#define ALT_FD_FLAGS_MASK (ALT_FD_EXCL | ALT_FD_DEV) + +/* + * "alt_dev_list" is the head of the linked list of registered devices. + */ + +extern alt_llist alt_dev_list; + +/* + * "alt_fs_list" is the head of the linked list of registered filesystems. + */ + +extern alt_llist alt_fs_list; + +/* + * "alt_fd_list_lock" is a semaphore used to ensure that access to the pool + * of file descriptors is thread safe. + */ + +ALT_EXTERN_SEM(alt_fd_list_lock) + +/* + * "alt_max_fd" is a 'high water mark'. It indicates the highest file + * descriptor allocated. Use of this can save searching the entire pool + * for active file descriptors, which helps avoid contention on access + * to the file descriptor pool. + */ + +extern alt_32 alt_max_fd; + +/* + * alt_io_redirect() is called at startup to redirect stdout, stdin, and + * stderr to the devices named in the input arguments. By default these streams + * are directed at /dev/null, and are then redirected using this function once + * all of the devices have been registered within the system. + */ + +extern void alt_io_redirect(const char* stdout_dev, + const char* stdin_dev, + const char* stderr_dev); + + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_FILE_H__ */ diff --git a/software/qsys_tutorial_bsp/HAL/inc/priv/alt_iic_isr_register.h b/software/qsys_tutorial_bsp/HAL/inc/priv/alt_iic_isr_register.h new file mode 100644 index 0000000..a0cb01c --- /dev/null +++ b/software/qsys_tutorial_bsp/HAL/inc/priv/alt_iic_isr_register.h @@ -0,0 +1,39 @@ +#ifndef __ALT_IIC_ISR_REGISTER_H_ +#define __ALT_IIC_ISR_REGISTER_H_ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2009 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ +#include "alt_types.h" +#include "sys/alt_irq.h" + +extern int alt_iic_isr_register(alt_u32 ic_id, alt_u32 irq, alt_isr_func isr, + void *isr_context, void *flags); + +#endif /* __ALT_IIC_ISR_REGISTER_H_ */ diff --git a/software/qsys_tutorial_bsp/HAL/inc/priv/alt_irq_table.h b/software/qsys_tutorial_bsp/HAL/inc/priv/alt_irq_table.h new file mode 100644 index 0000000..694ef06 --- /dev/null +++ b/software/qsys_tutorial_bsp/HAL/inc/priv/alt_irq_table.h @@ -0,0 +1,59 @@ +#ifndef __ALT_IRQ_TABLE_H__ +#define __ALT_IRQ_TABLE_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2009 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +/* + * Definition of a table describing each interrupt handler. The index into + * the array is the interrupt id associated with the handler. + * + * When an interrupt occurs, the associated handler is called with + * the argument stored in the context member. + * + * The table is physically created in alt_irq_handler.c + */ +extern struct ALT_IRQ_HANDLER +{ +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT + void (*handler)(void*); +#else + void (*handler)(void*, alt_u32); +#endif + void *context; +} alt_irq[ALT_NIRQ]; + +#endif diff --git a/software/qsys_tutorial_bsp/HAL/inc/priv/alt_legacy_irq.h b/software/qsys_tutorial_bsp/HAL/inc/priv/alt_legacy_irq.h new file mode 100644 index 0000000..c7aec02 --- /dev/null +++ b/software/qsys_tutorial_bsp/HAL/inc/priv/alt_legacy_irq.h @@ -0,0 +1,158 @@ +#ifndef __ALT_LEGACY_IRQ_H__ +#define __ALT_LEGACY_IRQ_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2009 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/* + * This file provides prototypes and inline implementations of certain routines + * used by the legacy interrupt API. Do not include this in your driver or + * application source files, use "sys/alt_irq.h" instead to access the proper + * public API. + */ + +#include +#include "system.h" + +#ifndef NIOS2_EIC_PRESENT + +#include "nios2.h" +#include "alt_types.h" + +#include "sys/alt_irq.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * alt_irq_register() can be used to register an interrupt handler. If the + * function is succesful, then the requested interrupt will be enabled upon + * return. + */ +extern int alt_irq_register (alt_u32 id, + void* context, + alt_isr_func handler); + +/* + * alt_irq_disable() disables the individual interrupt indicated by "id". + */ +static ALT_INLINE int ALT_ALWAYS_INLINE alt_irq_disable (alt_u32 id) +{ + alt_irq_context status; + extern volatile alt_u32 alt_irq_active; + + status = alt_irq_disable_all (); + + alt_irq_active &= ~(1 << id); + NIOS2_WRITE_IENABLE (alt_irq_active); + + alt_irq_enable_all(status); + + return 0; +} + +/* + * alt_irq_enable() enables the individual interrupt indicated by "id". + */ +static ALT_INLINE int ALT_ALWAYS_INLINE alt_irq_enable (alt_u32 id) +{ + alt_irq_context status; + extern volatile alt_u32 alt_irq_active; + + status = alt_irq_disable_all (); + + alt_irq_active |= (1 << id); + NIOS2_WRITE_IENABLE (alt_irq_active); + + alt_irq_enable_all(status); + + return 0; +} + +#ifndef ALT_EXCEPTION_STACK +/* + * alt_irq_initerruptable() should only be called from within an ISR. It is used + * to allow higer priority interrupts to interrupt the current ISR. The input + * argument, "priority", is the priority, i.e. interrupt number of the current + * interrupt. + * + * If this function is called, then the ISR is required to make a call to + * alt_irq_non_interruptible() before returning. The input argument to + * alt_irq_non_interruptible() is the return value from alt_irq_interruptible(). + * + * Care should be taken when using this pair of functions, since they increasing + * the system overhead associated with interrupt handling. + * + * If you are using an exception stack then nested interrupts won't work, so + * these functions are not available in that case. + */ +static ALT_INLINE alt_u32 ALT_ALWAYS_INLINE alt_irq_interruptible (alt_u32 priority) +{ + extern volatile alt_u32 alt_priority_mask; + extern volatile alt_u32 alt_irq_active; + + alt_u32 old_priority; + + old_priority = alt_priority_mask; + alt_priority_mask = (1 << priority) - 1; + + NIOS2_WRITE_IENABLE (alt_irq_active & alt_priority_mask); + + NIOS2_WRITE_STATUS (1); + + return old_priority; +} + +/* + * See Comments above for alt_irq_interruptible() for an explanation of the use of this + * function. + */ +static ALT_INLINE void ALT_ALWAYS_INLINE alt_irq_non_interruptible (alt_u32 mask) +{ + extern volatile alt_u32 alt_priority_mask; + extern volatile alt_u32 alt_irq_active; + + NIOS2_WRITE_STATUS (0); + + alt_priority_mask = mask; + + NIOS2_WRITE_IENABLE (mask & alt_irq_active); +} +#endif /* ALT_EXCEPTION_STACK */ + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* NIOS2_EIC_PRESENT */ + +#endif /* __ALT_LEGACY_IRQ_H__ */ diff --git a/software/qsys_tutorial_bsp/HAL/inc/priv/alt_no_error.h b/software/qsys_tutorial_bsp/HAL/inc/priv/alt_no_error.h new file mode 100644 index 0000000..6143fc9 --- /dev/null +++ b/software/qsys_tutorial_bsp/HAL/inc/priv/alt_no_error.h @@ -0,0 +1,77 @@ +#ifndef __ALT_NO_ERROR_H__ +#define __ALT_NO_ERROR_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#include "alt_types.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * alt_no_error() is a dummy function used by alt_sem.h and alt_flag.h. It + * substitutes for functions that have a return code by creating a function + * that always returns zero. + * + * This may seem a little obscure, but what happens is that the compiler can + * then optomise away the call to this function, and any code written which + * handles the error path (i.e. non zero return values). + * + * This allows code to be written which correctly use the uC/OS-II semaphore + * and flag utilities, without the use of those utilities impacting on + * excutables built for a single threaded HAL environment. + * + * This function is considered to be part of the internal implementation of + * the HAL, and should not be called directly by application code or device + * drivers. It is not guaranteed to be preserved in future versions of the + * HAL. + */ + +static ALT_INLINE int ALT_ALWAYS_INLINE alt_no_error (void) +{ + return 0; +} + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_NO_ERROR_H__ */ diff --git a/software/qsys_tutorial_bsp/HAL/inc/priv/nios2_gmon_data.h b/software/qsys_tutorial_bsp/HAL/inc/priv/nios2_gmon_data.h new file mode 100644 index 0000000..3f43f12 --- /dev/null +++ b/software/qsys_tutorial_bsp/HAL/inc/priv/nios2_gmon_data.h @@ -0,0 +1,47 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ +#ifndef NIOS2_GMON_DATA_H +#define NIOS2_GMON_DATA_H + +#define GMON_DATA_SIG 0 +#define GMON_DATA_WORDS 1 +#define GMON_DATA_PROFILE_DATA 2 +#define GMON_DATA_PROFILE_LOWPC 3 +#define GMON_DATA_PROFILE_HIGHPC 4 +#define GMON_DATA_PROFILE_BUCKET 5 +#define GMON_DATA_PROFILE_RATE 6 +#define GMON_DATA_MCOUNT_START 7 +#define GMON_DATA_MCOUNT_LIMIT 8 + +#define GMON_DATA_SIZE 9 + +extern unsigned int alt_gmon_data[GMON_DATA_SIZE]; + +#endif diff --git a/software/qsys_tutorial_bsp/HAL/inc/sys/alt_alarm.h b/software/qsys_tutorial_bsp/HAL/inc/sys/alt_alarm.h new file mode 100644 index 0000000..68a2f5d --- /dev/null +++ b/software/qsys_tutorial_bsp/HAL/inc/sys/alt_alarm.h @@ -0,0 +1,126 @@ +#ifndef __ALT_ALARM_H__ +#define __ALT_ALARM_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#include "alt_llist.h" +#include "alt_types.h" + +#include "priv/alt_alarm.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * "alt_alarm" is a structure type used by applications to register an alarm + * callback function. An instance of this type must be passed as an input + * argument to alt_alarm_start(). The user is not responsible for initialising + * the contents of the instance. This is done by alt_alarm_start(). + */ + +typedef struct alt_alarm_s alt_alarm; + +/* + * alt_alarm_start() can be called by an application/driver in order to register + * a function for periodic callback at the system clock frequency. Be aware that + * this callback is likely to occur in interrupt context. + */ + +extern int alt_alarm_start (alt_alarm* the_alarm, + alt_u32 nticks, + alt_u32 (*callback) (void* context), + void* context); + +/* + * alt_alarm_stop() is used to unregister a callback. Alternatively the callback + * can return zero to unregister. + */ + +extern void alt_alarm_stop (alt_alarm* the_alarm); + +/* + * Obtain the system clock rate in ticks/s. + */ + +static ALT_INLINE alt_u32 ALT_ALWAYS_INLINE alt_ticks_per_second (void) +{ + return _alt_tick_rate; +} + +/* + * alt_sysclk_init() is intended to be only used by the system clock driver + * in order to initialise the value of the clock frequency. + */ + +static ALT_INLINE int ALT_ALWAYS_INLINE alt_sysclk_init (alt_u32 nticks) +{ + if (! _alt_tick_rate) + { + _alt_tick_rate = nticks; + return 0; + } + else + { + return -1; + } +} + +/* + * alt_nticks() returns the elapsed number of system clock ticks since reset. + */ + +static ALT_INLINE alt_u32 ALT_ALWAYS_INLINE alt_nticks (void) +{ + return _alt_nticks; +} + +/* + * alt_tick() should only be called by the system clock driver. This is used + * to notify the system that the system timer period has expired. + */ + +extern void alt_tick (void); + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_ALARM_H__ */ diff --git a/software/qsys_tutorial_bsp/HAL/inc/sys/alt_cache.h b/software/qsys_tutorial_bsp/HAL/inc/sys/alt_cache.h new file mode 100644 index 0000000..c4d8db9 --- /dev/null +++ b/software/qsys_tutorial_bsp/HAL/inc/sys/alt_cache.h @@ -0,0 +1,117 @@ +#ifndef __ALT_CACHE_H__ +#define __ALT_CACHE_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003, 2007 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include + +#include "alt_types.h" + +/* + * alt_cache.h defines the processor specific functions for manipulating the + * cache. + */ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * alt_icache_flush() is called to flush the instruction cache for a memory + * region of length "len" bytes, starting at address "start". + */ + +extern void alt_icache_flush (void* start, alt_u32 len); + +/* + * alt_dcache_flush() is called to flush the data cache for a memory + * region of length "len" bytes, starting at address "start". + * Any dirty lines in the data cache are written back to memory. + */ + +extern void alt_dcache_flush (void* start, alt_u32 len); + +/* + * alt_dcache_flush() is called to flush the data cache for a memory + * region of length "len" bytes, starting at address "start". + * Any dirty lines in the data cache are NOT written back to memory. + */ + +extern void alt_dcache_flush_no_writeback (void* start, alt_u32 len); + +/* + * Flush the entire instruction cache. + */ + +extern void alt_icache_flush_all (void); + +/* + * Flush the entire data cache. + */ + +extern void alt_dcache_flush_all (void); + +/* + * Allocate a block of uncached memory. + */ + +extern volatile void* alt_uncached_malloc (size_t size); + +/* + * Free a block of uncached memory. + */ + +extern void alt_uncached_free (volatile void* ptr); + +/* + * Convert a pointer to a block of cached memory, into a block of + * uncached memory. + */ + +extern volatile void* alt_remap_uncached (void* ptr, alt_u32 len); + +/* + * Convert a pointer to a block of uncached memory, into a block of + * cached memory. + */ + +extern void* alt_remap_cached (volatile void* ptr, alt_u32 len); + +/* + * + */ + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_CACHE_H__ */ diff --git a/software/qsys_tutorial_bsp/HAL/inc/sys/alt_debug.h b/software/qsys_tutorial_bsp/HAL/inc/sys/alt_debug.h new file mode 100644 index 0000000..d9f9599 --- /dev/null +++ b/software/qsys_tutorial_bsp/HAL/inc/sys/alt_debug.h @@ -0,0 +1,45 @@ +#ifndef __ALT_DEBUG_H__ +#define __ALT_DEBUG_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/* + * The ALT_DEVUG_ASSERT macro can be used to generate a debugger break + * from within software. The break is generated if "condition" evaluates to + * false. + */ + +#define ALT_DEBUG_ASSERT(condition) if (!condition) \ +{ \ + __asm__ volatile ("break"); \ +} + +#endif /* __ALT_DEBUG_H__ */ diff --git a/software/qsys_tutorial_bsp/HAL/inc/sys/alt_dev.h b/software/qsys_tutorial_bsp/HAL/inc/sys/alt_dev.h new file mode 100644 index 0000000..66c5e41 --- /dev/null +++ b/software/qsys_tutorial_bsp/HAL/inc/sys/alt_dev.h @@ -0,0 +1,115 @@ +#ifndef __ALT_DEV_H__ +#define __ALT_DEV_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#include "system.h" +#include "sys/alt_llist.h" +#include "priv/alt_dev_llist.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * The value ALT_IRQ_NOT_CONNECTED is used to represent an unconnected + * interrupt line. It cannot evaluate to a valid interrupt number. + */ + +#define ALT_IRQ_NOT_CONNECTED (-1) + +typedef struct alt_dev_s alt_dev; + +struct stat; + +/* + * The file descriptor structure definition. + */ + +typedef struct alt_fd_s +{ + alt_dev* dev; + alt_u8* priv; + int fd_flags; +} alt_fd; + +/* + * The device structure definition. + */ + +struct alt_dev_s { + alt_llist llist; /* for internal use */ + const char* name; + int (*open) (alt_fd* fd, const char* name, int flags, int mode); + int (*close) (alt_fd* fd); + int (*read) (alt_fd* fd, char* ptr, int len); + int (*write) (alt_fd* fd, const char* ptr, int len); + int (*lseek) (alt_fd* fd, int ptr, int dir); + int (*fstat) (alt_fd* fd, struct stat* buf); + int (*ioctl) (alt_fd* fd, int req, void* arg); +}; + +/* + * Functions used to register device for access through the C standard + * library. + * + * The only difference between alt_dev_reg() and alt_fs_reg() is the + * interpretation that open() places on the device name. In the case of + * alt_dev_reg the device is assumed to be a particular character device, + * and so there must be an exact match in the name for open to succeed. + * In the case of alt_fs_reg() the name of the device is treated as the + * mount point for a directory, and so any call to open() where the name + * is the root of the device filename will succeed. + */ + +extern int alt_fs_reg (alt_dev* dev); + +static ALT_INLINE int alt_dev_reg (alt_dev* dev) +{ + extern alt_llist alt_dev_list; + + return alt_dev_llist_insert ((alt_dev_llist*) dev, &alt_dev_list); +} + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_DEV_H__ */ diff --git a/software/qsys_tutorial_bsp/HAL/inc/sys/alt_dma.h b/software/qsys_tutorial_bsp/HAL/inc/sys/alt_dma.h new file mode 100644 index 0000000..9f9b2ff --- /dev/null +++ b/software/qsys_tutorial_bsp/HAL/inc/sys/alt_dma.h @@ -0,0 +1,226 @@ +#ifndef __ALT_DMA_H__ +#define __ALT_DMA_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004-2005 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#include "sys/alt_dma_dev.h" +#include "alt_types.h" + +#include + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * This header contains the application side interface for accessing DMA + * resources. See alt_dma_dev.h for the dma device driver interface. + * + * The interface model treats a DMA transaction as being composed of two + * halves (read and write). + * + * The application can supply data for transmit using an "alt_dma_txchan" + * descriptor. Alternatively an "alt_dma_rxchan" descriptor can be used to + * receive data. + */ + +/* + * alt_dma_txchan_open() is used to obtain an "alt_dma_txchan" descriptor for + * a DMA transmit device. The name is the name of the associated physical + * device (e.g. "/dev/dma_0"). + * + * The return value will be NULL on failure, and non-NULL otherwise. + */ + +extern alt_dma_txchan alt_dma_txchan_open (const char* name); + +/* + * alt_dma_txchan_close() is provided so that an application can notify the + * system that it has finished with a given DMA transmit channel. This is only + * provided for completness. + */ + +static ALT_INLINE int alt_dma_txchan_close (alt_dma_txchan dma) +{ + return 0; +} + +/* + * alt_dma_txchan_send() posts a transmit request to a DMA transmit channel. + * The input arguments are: + * + * dma: the channel to use. + * from: a pointer to the start of the data to send. + * length: the length of the data to send in bytes. + * done: callback function that will be called once the data has been sent. + * handle: opaque value passed to "done". + * + * The return value will be negative if the request cannot be posted, and + * zero otherwise. + */ + +static ALT_INLINE int alt_dma_txchan_send (alt_dma_txchan dma, + const void* from, + alt_u32 length, + alt_txchan_done* done, + void* handle) +{ + return dma ? dma->dma_send (dma, + from, + length, + done, + handle) : -ENODEV; +} + +/* + * alt_dma_txchan_space() returns the number of tranmit requests that can be + * posted to the specified DMA transmit channel. + * + * A negative value indicates that the value could not be determined. + */ + +static ALT_INLINE int alt_dma_txchan_space (alt_dma_txchan dma) +{ + return dma ? dma->space (dma) : -ENODEV; +} + +/* + * alt_dma_txchan_ioctl() can be used to perform device specific I/O + * operations on the indicated DMA transmit channel. For example some drivers + * support options to control the width of the transfer operations. See + * alt_dma_dev.h for the list of generic requests. + * + * A negative return value indicates failure, otherwise the interpretation + * of the return value is request specific. + */ + +static ALT_INLINE int alt_dma_txchan_ioctl (alt_dma_txchan dma, + int req, + void* arg) +{ + return dma ? dma->ioctl (dma, req, arg) : -ENODEV; +} + +/* + * alt_dma_rxchan_open() is used to obtain an "alt_dma_rxchan" descriptor for + * a DMA receive channel. The name is the name of the associated physical + * device (e.g. "/dev/dma_0"). + * + * The return value will be NULL on failure, and non-NULL otherwise. + */ + +extern alt_dma_rxchan alt_dma_rxchan_open (const char* dev); + +/* + * alt_dma_rxchan_close() is provided so that an application can notify the + * system that it has finished with a given DMA receive channel. This is only + * provided for completness. + */ + +static ALT_INLINE int alt_dma_rxchan_close (alt_dma_rxchan dma) +{ + return 0; +} + +/* + * + */ + +/* + * alt_dma_rxchan_prepare() posts a receive request to a DMA receive channel. + * + * The input arguments are: + * + * dma: the channel to use. + * data: a pointer to the location that data is to be received to. + * len: the maximum length of the data to receive. + * done: callback function that will be called once the data has been + * received. + * handle: opaque value passed to "done". + * + * The return value will be negative if the request cannot be posted, and + * zero otherwise. + */ + +static ALT_INLINE int alt_dma_rxchan_prepare (alt_dma_rxchan dma, + void* data, + alt_u32 len, + alt_rxchan_done* done, + void* handle) +{ + return dma ? dma->prepare (dma, data, len, done, handle) : -ENODEV; +} + +/* + * alt_dma_rxchan_ioctl() can be used to perform device specific I/O + * operations on the indicated DMA receive channel. For example some drivers + * support options to control the width of the transfer operations. See + * alt_dma_dev.h for the list of generic requests. + * + * A negative return value indicates failure, otherwise the interpretation + * of the return value is request specific. + */ + +static ALT_INLINE int alt_dma_rxchan_ioctl (alt_dma_rxchan dma, + int req, + void* arg) +{ + return dma ? dma->ioctl (dma, req, arg) : -ENODEV; +} + +/* + * alt_dma_rxchan_depth() returns the depth of the receive FIFO used to store + * receive requests. + */ + +static ALT_INLINE alt_u32 alt_dma_rxchan_depth(alt_dma_rxchan dma) +{ + return dma->depth; +} + +/* + * + */ + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __ALT_DMA_H__ */ diff --git a/software/qsys_tutorial_bsp/HAL/inc/sys/alt_dma_dev.h b/software/qsys_tutorial_bsp/HAL/inc/sys/alt_dma_dev.h new file mode 100644 index 0000000..832463d --- /dev/null +++ b/software/qsys_tutorial_bsp/HAL/inc/sys/alt_dma_dev.h @@ -0,0 +1,200 @@ +#ifndef __ALT_DMA_DEV_H__ +#define __ALT_DMA_DEV_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004-2005 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#include "priv/alt_dev_llist.h" + +#include "alt_types.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * This header contains the device driver interface for accessing DMA + * resources. See alt_dma.h for the DMA application side interface. + * + * The interface model treats a DMA transaction as being composed of two + * halves (read and write). + * + * An "alt_dma_txchan_dev" is used to describe the device associated with a + * DMA transmit channel. An "alt_dma_rxchan_dev" is used to describe the + * device associated with a DMA receive channel. + */ + +/* + * List of generic ioctl requests that may be supported by a DMA device. + * + * ALT_DMA_RX_ONLY_ON: This causes a DMA channel to operate in a mode + * where only the receiver is under software control. + * The other side reads continously from a single + * location. The address to read is the argument to + * this request. + * ALT_DMA_RX_ONLY_OFF: Return to the default mode where both the receive + * and transmit sides of the DMA can be under software + * control. + * ALT_DMA_TX_ONLY_ON: This causes a DMA channel to operate in a mode + * where only the transmitter is under software control. + * The other side writes continously to a single + * location. The address to write to is the argument to + * this request. + * ALT_DMA_TX_ONLY_OFF: Return to the default mode where both the receive + * and transmit sides of the DMA can be under software + * control. + * ALT_DMA_SET_MODE_8: Transfer data in units of 8 bits. + * ALT_DMA_SET_MODE_16: Transfer data in units of 16 bits. + * ALT_DMA_SET_MODE_32: Transfer data in units of 32 bits. + * ALT_DMA_SET_MODE_64: Transfer data in units of 64 bits. + * ALT_DMA_SET_MODE_128: Transfer data in units of 128 bits. + * ALT_DMA_GET_MODE: Get the current transfer mode. + * + * The use of the macros: ALT_DMA_TX_STREAM_ON, ALT_DMA_TX_STREAM_OFF + * ALT_DMA_RX_STREAM_OFF and ALT_DMA_RX_STREAM_ON are depreciated. You should + * instead use the macros: ALT_DMA_RX_ONLY_ON, ALT_DMA_RX_ONLY_OFF, + * ALT_DMA_TX_ONLY_ON and ALT_DMA_TX_ONLY_OFF. + */ + +#define ALT_DMA_TX_STREAM_ON (0x1) +#define ALT_DMA_TX_STREAM_OFF (0x2) +#define ALT_DMA_RX_STREAM_ON (0x3) +#define ALT_DMA_RX_STREAM_OFF (0x4) +#define ALT_DMA_SET_MODE_8 (0x5) +#define ALT_DMA_SET_MODE_16 (0x6) +#define ALT_DMA_SET_MODE_32 (0x7) +#define ALT_DMA_SET_MODE_64 (0x8) +#define ALT_DMA_SET_MODE_128 (0x9) +#define ALT_DMA_GET_MODE (0xa) + +#define ALT_DMA_RX_ONLY_ON ALT_DMA_TX_STREAM_ON +#define ALT_DMA_RX_ONLY_OFF ALT_DMA_TX_STREAM_OFF +#define ALT_DMA_TX_ONLY_ON ALT_DMA_RX_STREAM_ON +#define ALT_DMA_TX_ONLY_OFF ALT_DMA_RX_STREAM_OFF + +/* + * + */ + +typedef struct alt_dma_txchan_dev_s alt_dma_txchan_dev; +typedef struct alt_dma_rxchan_dev_s alt_dma_rxchan_dev; + +typedef alt_dma_txchan_dev* alt_dma_txchan; +typedef alt_dma_rxchan_dev* alt_dma_rxchan; + +typedef void (alt_txchan_done)(void* handle); +typedef void (alt_rxchan_done)(void* handle, void* data); + +/* + * devices that provide a DMA transmit channel are required to provide an + * instance of the "alt_dma_txchan_dev" structure. + */ + +struct alt_dma_txchan_dev_s { + alt_llist llist; /* for internal use */ + const char* name; /* name of the device instance + * (e.g. "/dev/dma_0"). + */ + int (*space) (alt_dma_txchan dma); /* returns the maximum number of + * transmit requests that can be posted + */ + int (*dma_send) (alt_dma_txchan dma, + const void* from, + alt_u32 len, + alt_txchan_done* done, + void* handle); /* post a transmit request */ + int (*ioctl) (alt_dma_txchan dma, int req, void* arg); /* perform device + * specific I/O control. + */ +}; + +/* + * devices that provide a DMA receive channel are required to provide an + * instance of the "alt_dma_rxchan_dev" structure. + */ + +struct alt_dma_rxchan_dev_s { + alt_llist list; /* for internal use */ + const char* name; /* name of the device instance + * (e.g. "/dev/dma_0"). + */ + alt_u32 depth; /* maximum number of receive requests that + * can be posted. + */ + int (*prepare) (alt_dma_rxchan dma, + void* data, + alt_u32 len, + alt_rxchan_done* done, + void* handle); /* post a receive request */ + int (*ioctl) (alt_dma_rxchan dma, int req, void* arg); /* perform device + * specific I/O control. + */ +}; + +/* + * Register a DMA transmit channel with the system. + */ + +static ALT_INLINE int alt_dma_txchan_reg (alt_dma_txchan_dev* dev) +{ + extern alt_llist alt_dma_txchan_list; + + return alt_dev_llist_insert((alt_dev_llist*) dev, &alt_dma_txchan_list); +} + +/* + * Register a DMA receive channel with the system. + */ + +static ALT_INLINE int alt_dma_rxchan_reg (alt_dma_rxchan_dev* dev) +{ + extern alt_llist alt_dma_rxchan_list; + + return alt_dev_llist_insert((alt_dev_llist*) dev, &alt_dma_rxchan_list); +} + +/* + * + */ + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __ALT_DMA_DEV_H__ */ diff --git a/software/qsys_tutorial_bsp/HAL/inc/sys/alt_driver.h b/software/qsys_tutorial_bsp/HAL/inc/sys/alt_driver.h new file mode 100644 index 0000000..eb0f23b --- /dev/null +++ b/software/qsys_tutorial_bsp/HAL/inc/sys/alt_driver.h @@ -0,0 +1,168 @@ +#ifndef __ALT_DRIVER_H__ +#define __ALT_DRIVER_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/* + * Macros used to access a driver without HAL file descriptors. + */ + +/* + * ALT_MODULE_CLASS + * + * This macro returns the module class name for the specified module instance. + * It uses information in the system.h file. + * Neither the instance name or class name are quoted (so that they can + * be used with other pre-processor macros). + * + * Example: + * Assume the design has an instance of an altera_avalon_uart called uart1. + * Calling ALT_MODULE_CLASS(uart1) returns altera_avalon_uart. + */ + +#define ALT_MODULE_CLASS(instance) ALT_MODULE_CLASS_ ## instance + + +/* + * ALT_DRIVER_FUNC_NAME + * + * --> instance Instance name. + * --> func Function name. + * + * This macro returns the device driver function name of the specified + * module instance for the specified function name. + * + * Example: + * Assume the design has an instance of an altera_avalon_uart called uart1. + * Calling ALT_DRIVER_FUNC_NAME(uart1, write) returns + * altera_avalon_uart_write. + */ + +#define ALT_DRIVER_FUNC_NAME(instance, func) \ + ALT_DRIVER_FUNC_NAME1(ALT_MODULE_CLASS(instance), func) +#define ALT_DRIVER_FUNC_NAME1(module_class, func) \ + ALT_DRIVER_FUNC_NAME2(module_class, func) +#define ALT_DRIVER_FUNC_NAME2(module_class, func) \ + module_class ## _ ## func + +/* + * ALT_DRIVER_STATE_STRUCT + * + * --> instance Instance name. + * + * This macro returns the device driver state type name of the specified + * module instance. + * + * Example: + * Assume the design has an instance of an altera_avalon_uart called uart1. + * Calling ALT_DRIVER_STATE_STRUCT(uart1) returns: + * struct altera_avalon_uart_state_s + * + * Note that the ALT_DRIVER_FUNC_NAME macro is used even though "state" isn't + * really a function but it does match the required naming convention. + */ +#define ALT_DRIVER_STATE_STRUCT(instance) \ + struct ALT_DRIVER_FUNC_NAME(instance, state_s) + +/* + * ALT_DRIVER_STATE + * + * --> instance Instance name. + * + * This macro returns the device driver state name of the specified + * module instance. + * + * Example: + * Assume the design has an instance of an altera_avalon_uart called uart1. + * Calling ALT_DRIVER_STATE(uart1) returns uart1. + */ +#define ALT_DRIVER_STATE(instance) instance + +/* + * ALT_DRIVER_WRITE + * + * --> instance Instance name. + * --> buffer Write buffer. + * --> len Length of write buffer data. + * --> flags Control flags (e.g. O_NONBLOCK) + * + * This macro calls the "write" function of the specified driver instance. + */ + +#define ALT_DRIVER_WRITE_EXTERNS(instance) \ + extern ALT_DRIVER_STATE_STRUCT(instance) ALT_DRIVER_STATE(instance); \ + extern int ALT_DRIVER_FUNC_NAME(instance, write) \ + (ALT_DRIVER_STATE_STRUCT(instance) *, const char *, int, int); + +#define ALT_DRIVER_WRITE(instance, buffer, len, flags) \ + ALT_DRIVER_FUNC_NAME(instance, write)(&ALT_DRIVER_STATE(instance), buffer, len, flags) + + +/* + * ALT_DRIVER_READ + * + * --> instance Instance name. + * <-- buffer Read buffer. + * --> len Length of read buffer. + * --> flags Control flags (e.g. O_NONBLOCK) + * + * This macro calls the "read" function of the specified driver instance. + */ + +#define ALT_DRIVER_READ_EXTERNS(instance) \ + extern ALT_DRIVER_STATE_STRUCT(instance) ALT_DRIVER_STATE(instance); \ + extern int ALT_DRIVER_FUNC_NAME(instance, read) \ + (ALT_DRIVER_STATE_STRUCT(instance) *, const char *, int, int); + +#define ALT_DRIVER_READ(instance, buffer, len, flags) \ + ALT_DRIVER_FUNC_NAME(instance, read)(&ALT_DRIVER_STATE(instance), buffer, len, flags) + +/* + * ALT_DRIVER_IOCTL + * + * --> instance Instance name. + * --> req ioctl request (e.g. TIOCSTIMEOUT) + * --> arg Optional argument (void*) + * + * This macro calls the "ioctl" function of the specified driver instance + */ + +#define ALT_DRIVER_IOCTL_EXTERNS(instance) \ + extern ALT_DRIVER_STATE_STRUCT(instance) ALT_DRIVER_STATE(instance); \ + extern int ALT_DRIVER_FUNC_NAME(instance, ioctl) \ + (ALT_DRIVER_STATE_STRUCT(instance) *, int, void*); + +#define ALT_DRIVER_IOCTL(instance, req, arg) \ + ALT_DRIVER_FUNC_NAME(instance, ioctl)(&ALT_DRIVER_STATE(instance), req, arg) + +#endif /* __ALT_DRIVER_H__ */ diff --git a/software/qsys_tutorial_bsp/HAL/inc/sys/alt_errno.h b/software/qsys_tutorial_bsp/HAL/inc/sys/alt_errno.h new file mode 100644 index 0000000..4d3e50f --- /dev/null +++ b/software/qsys_tutorial_bsp/HAL/inc/sys/alt_errno.h @@ -0,0 +1,87 @@ +#ifndef __ALT_ERRNO_H__ +#define __ALT_ERRNO_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +/* + * errno is defined in so that it uses the thread local version + * stored in the location pointed to by "_impure_ptr". This means that the + * accesses to errno within the HAL library can cause the entirety of + * of the structure pointed to by "_impure_ptr" to be added to the + * users application. This can be undesirable in very small footprint systems. + * + * To avoid this happening, the HAL uses the macro ALT_ERRNO, defined below, + * to access errno, rather than accessing it directly. This macro will only + * use the thread local version if some other code has already caused it to be + * included into the system, otherwise it will use the global errno value. + * + * This causes a slight increases in code size where errno is accessed, but + * can lead to significant overall benefits in very small systems. The + * increase is inconsequential when compared to the size of the structure + * pointed to by _impure_ptr. + * + * Note that this macro accesses __errno() using an externally declared + * function pointer (alt_errno). This is done so that the function call uses the + * subroutine call instruction via a register rather than an immediate address. + * This is important in the case that the code has been linked for a high + * address, but __errno() is not being used. In this case the weak linkage + * would have resulted in the instruction: "call 0" which would fail to link. + */ + +extern int* (*alt_errno) (void); + +/* Must define this so that values such as EBADFD are defined in errno.h. */ +#define __LINUX_ERRNO_EXTENSIONS__ + +#include + +#include "alt_types.h" + +#undef errno + +extern int errno; + +static ALT_INLINE int* alt_get_errno(void) +{ + return ((alt_errno) ? alt_errno() : &errno); +} + +#define ALT_ERRNO *alt_get_errno() + +#endif /* __ALT_ERRNO_H__ */ diff --git a/software/qsys_tutorial_bsp/HAL/inc/sys/alt_exceptions.h b/software/qsys_tutorial_bsp/HAL/inc/sys/alt_exceptions.h new file mode 100644 index 0000000..3576a52 --- /dev/null +++ b/software/qsys_tutorial_bsp/HAL/inc/sys/alt_exceptions.h @@ -0,0 +1,127 @@ +#ifndef __ALT_EXCEPTIONS_H__ +#define __ALT_EXCEPTIONS_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2008 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ +#include "alt_types.h" +#include "system.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * This file defines instruction-generated exception handling and registry + * API, exception type enumeration, and handler return value enumeration for + * Nios II. + */ + +/* + * The following enumeration describes the value in the CPU EXCEPTION + * register CAUSE bit field. Not all exception types will cause the + * processor to go to the exception vector; these are provided for + * reference. + */ +enum alt_exception_cause_e { + /* Exeption causes that will cause jump to exception vector */ + NIOS2_EXCEPTION_INTERRUPT = 2, + NIOS2_EXCEPTION_TRAP_INST = 3, + NIOS2_EXCEPTION_UNIMPLEMENTED_INST = 4, + NIOS2_EXCEPTION_ILLEGAL_INST = 5, + NIOS2_EXCEPTION_MISALIGNED_DATA_ADDR = 6, + NIOS2_EXCEPTION_MISALIGNED_TARGET_PC = 7, + NIOS2_EXCEPTION_DIVISION_ERROR = 8, + NIOS2_EXCEPTION_SUPERVISOR_ONLY_INST_ADDR = 9, + NIOS2_EXCEPTION_SUPERVISOR_ONLY_INST = 10, + NIOS2_EXCEPTION_SUPERVISOR_ONLY_DATA_ADDR = 11, + NIOS2_EXCEPTION_TLB_MISS = 12, + NIOS2_EXCEPTION_TLB_EXECUTE_PERM_VIOLATION = 13, + NIOS2_EXCEPTION_MPU_INST_REGION_VIOLATION = 16, + + /* Exception causes that will NOT cause a jump to exception vector */ + NIOS2_EXCEPTION_RESET = 0, + NIOS2_EXCEPTION_CPU_ONLY_RESET_REQUEST = 1, + NIOS2_EXCEPTION_TLB_READ_PERM_VIOLATION = 14, + NIOS2_EXCEPTION_TLB_WRITE_PERM_VIOLATION = 15, + NIOS2_EXCEPTION_MPU_DATA_REGION_VIOLATION = 17, + /* + * This value is passed to an exception handler's cause argument if + * "extra exceptions" information (EXECPTION) register is not + * present in the processor hardware configuration. + */ + NIOS2_EXCEPTION_CAUSE_NOT_PRESENT = -1 +}; +typedef enum alt_exception_cause_e alt_exception_cause; + +/* + * These define valid return values for a user-defined instruction-generated + * exception handler. The handler should return one of these to indicate + * whether to re-issue the instruction that triggered the exception, or to + * skip it. + */ +enum alt_exception_result_e { + NIOS2_EXCEPTION_RETURN_REISSUE_INST = 0, + NIOS2_EXCEPTION_RETURN_SKIP_INST = 1 +}; +typedef enum alt_exception_result_e alt_exception_result; + +/* + * alt_instruction_exception_register() can be used to register an exception + * handler for instruction-generated exceptions that are not handled by the + * built-in exception handler (i.e. for interrupts). + * + * The registry API is optionally enabled through the "Enable + * Instruction-related Exception API" HAL BSP setting, which will + * define the macro below. + */ +#ifdef ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API +void alt_instruction_exception_register ( + alt_exception_result (*exception_handler)( + alt_exception_cause cause, + alt_u32 exception_pc, + alt_u32 bad_addr) ); +#endif /*ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API */ + +/* + * alt_exception_cause_generated_bad_addr() indicates whether a particular + * exception cause value was from an exception-type that generated a valid + * address in the BADADDR register. The contents of BADADDR is passed to + * a user-registered exception handler in all cases, whether valid or not. + * This routine should be called to validate the bad_addr argument to + * your exception handler. + */ +int alt_exception_cause_generated_bad_addr(alt_exception_cause cause); + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __ALT_EXCEPTIONS_H__ */ diff --git a/software/qsys_tutorial_bsp/HAL/inc/sys/alt_flash.h b/software/qsys_tutorial_bsp/HAL/inc/sys/alt_flash.h new file mode 100644 index 0000000..527328d --- /dev/null +++ b/software/qsys_tutorial_bsp/HAL/inc/sys/alt_flash.h @@ -0,0 +1,166 @@ +#ifndef __ALT_FLASH_H__ +#define __ALT_FLASH_H__ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +/****************************************************************************** +* * +* Alt_flash.h - User interface for flash code * +* * +* Use this interface to avoid being exposed to the internals of the device * +* driver architecture. If you chose to use the flash driver internal * +* structures we don't guarantee not to change them * +* * +* Author PRR * +* * +******************************************************************************/ + + + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +#include "alt_types.h" +#include "alt_flash_types.h" +#include "alt_flash_dev.h" +#include "sys/alt_cache.h" + +alt_flash_fd* alt_flash_open_dev(const char* name); +void alt_flash_close_dev(alt_flash_fd* fd ); + +/* + * alt_write_flash + * + * Program a buffer into flash. + * + * This routine erases all the affected erase blocks (if necessary) + * and then programs the data. However it does not read the data out first + * and preserve and none overwritten data, because this would require very + * large buffers on the target. If you need + * that functionality use the functions below. + */ +static __inline__ int __attribute__ ((always_inline)) alt_write_flash( + alt_flash_fd* fd, + int offset, + const void* src_addr, + int length ) +{ + return fd->write( fd, offset, src_addr, length ); +} + +/* + * alt_read_flash + * + * Read a block of flash for most flashes this is just memcpy + * it's here for completeness in case we need it for some serial flash device + * + */ +static __inline__ int __attribute__ ((always_inline)) alt_read_flash( + alt_flash_fd* fd, int offset, + void* dest_addr, int length ) +{ + return fd->read( fd, offset, dest_addr, length ); +} + +/* + * alt_get_flash_info + * + * Return the information on the flash sectors. + * + */ +static __inline__ int __attribute__ ((always_inline)) alt_get_flash_info( + alt_flash_fd* fd, flash_region** info, + int* number_of_regions) +{ + return fd->get_info( fd, info, number_of_regions); +} + +/* + * alt_erase_flash_block + * + * Erase a particular erase block, pass in the offset to the start of + * the block and it's size + */ +static __inline__ int __attribute__ ((always_inline)) alt_erase_flash_block( + alt_flash_fd* fd, int offset, int length) +{ + int ret_code; + ret_code = fd->erase_block( fd, offset ); + + if(!ret_code) + alt_dcache_flush((alt_u8*)fd->base_addr + offset, length); + + return ret_code; +} + +/* + * alt_write_flash_block + * + * Write a particular flash block, block_offset is the offset + * (from the base of flash) to start of the block + * data_offset is the offset (from the base of flash) + * where you wish to start programming + * + * NB this function DOES NOT check that you are only writing a single + * block of data as that would slow down this function. + * + * Use alt_write_flash if you want that level of error checking. + */ + +static __inline__ int __attribute__ ((always_inline)) alt_write_flash_block( + alt_flash_fd* fd, int block_offset, + int data_offset, + const void *data, int length) +{ + + int ret_code; + ret_code = fd->write_block( fd, block_offset, data_offset, data, length ); + + if(!ret_code) + alt_dcache_flush((alt_u8*)fd->base_addr + data_offset, length); + + return ret_code; +} + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_FLASH_H__ */ diff --git a/software/qsys_tutorial_bsp/HAL/inc/sys/alt_flash_dev.h b/software/qsys_tutorial_bsp/HAL/inc/sys/alt_flash_dev.h new file mode 100644 index 0000000..8bab601 --- /dev/null +++ b/software/qsys_tutorial_bsp/HAL/inc/sys/alt_flash_dev.h @@ -0,0 +1,98 @@ +#ifndef __ALT_FLASH_DEV_H__ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +/****************************************************************************** +* * +* Alt_flash_dev.h - Generic Flash device interfaces * +* * +* Author PRR * +* * +******************************************************************************/ +#define __ALT_FLASH_DEV_H__ + +#include "alt_flash_types.h" +#include "sys/alt_llist.h" +#include "priv/alt_dev_llist.h" + +#include "alt_types.h" + +typedef struct alt_flash_dev alt_flash_dev; +typedef alt_flash_dev alt_flash_fd; + +static ALT_INLINE int alt_flash_device_register( alt_flash_fd* fd) +{ + extern alt_llist alt_flash_dev_list; + + return alt_dev_llist_insert ((alt_dev_llist*) fd, &alt_flash_dev_list); +} + +typedef alt_flash_dev* (*alt_flash_open)(alt_flash_dev* flash, + const char* name ); +typedef int (*alt_flash_close)(alt_flash_dev* flash_info); + +typedef int (*alt_flash_write)( alt_flash_dev* flash, int offset, + const void* src_addr, int length ); + +typedef int (*alt_flash_get_flash_info)( alt_flash_dev* flash, flash_region** info, + int* number_of_regions); +typedef int (*alt_flash_write_block)( alt_flash_dev* flash, int block_offset, + int data_offset, const void* data, + int length); +typedef int (*alt_flash_erase_block)( alt_flash_dev* flash, int offset); +typedef int (*alt_flash_read)(alt_flash_dev* flash, int offset, + void* dest_addr, int length ); + +struct alt_flash_dev +{ + alt_llist llist; + const char* name; + alt_flash_open open; + alt_flash_close close; + alt_flash_write write; + alt_flash_read read; + alt_flash_get_flash_info get_info; + alt_flash_erase_block erase_block; + alt_flash_write_block write_block; + void* base_addr; + int length; + int number_of_regions; + flash_region region_info[ALT_MAX_NUMBER_OF_FLASH_REGIONS]; +}; + +#endif /* __ALT_FLASH_DEV_H__ */ diff --git a/software/qsys_tutorial_bsp/HAL/inc/sys/alt_flash_types.h b/software/qsys_tutorial_bsp/HAL/inc/sys/alt_flash_types.h new file mode 100644 index 0000000..884cbf8 --- /dev/null +++ b/software/qsys_tutorial_bsp/HAL/inc/sys/alt_flash_types.h @@ -0,0 +1,64 @@ +#ifndef __ALT_FLASH_TYPES_H__ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +/****************************************************************************** +* * +* Alt_flash_types.h - Some generic types and defines used by the flash code * +* * +* Author PRR * +* * +******************************************************************************/ +#define __ALT_FLASH_TYPES_H__ + +#ifndef ALT_MAX_NUMBER_OF_FLASH_REGIONS +#define ALT_MAX_NUMBER_OF_FLASH_REGIONS 8 +#endif /* ALT_MAX_NUMBER_OF_FLASH_REGIONS */ + +/* + * Description of a single Erase region + */ +typedef struct flash_region +{ + int offset; + int region_size; + int number_of_blocks; + int block_size; +}flash_region; + +#endif /* __ALT_FLASH_TYPES_H__ */ diff --git a/software/qsys_tutorial_bsp/HAL/inc/sys/alt_irq.h b/software/qsys_tutorial_bsp/HAL/inc/sys/alt_irq.h new file mode 100644 index 0000000..6666e52 --- /dev/null +++ b/software/qsys_tutorial_bsp/HAL/inc/sys/alt_irq.h @@ -0,0 +1,245 @@ +#ifndef __ALT_IRQ_H__ +#define __ALT_IRQ_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2009 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/* + * alt_irq.h is the Nios II specific implementation of the interrupt controller + * interface. + * + * Nios II includes optional support for an external interrupt controller. + * When an external controller is present, the "Enhanced" interrupt API + * must be used to manage individual interrupts. The enhanced API also + * supports the processor's internal interrupt controller. Certain API + * members are accessible from either the "legacy" or "enhanced" interrpt + * API. + * + * Regardless of which API is in use, this file should be included by + * application code and device drivers that register ISRs or manage interrpts. + */ +#include + +#include "nios2.h" +#include "alt_types.h" +#include "system.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * Macros used by alt_irq_enabled + */ +#define ALT_IRQ_ENABLED 1 +#define ALT_IRQ_DISABLED 0 + +/* + * Number of available interrupts in internal interrupt controller. + */ +#define ALT_NIRQ NIOS2_NIRQ + +/* + * Used by alt_irq_disable_all() and alt_irq_enable_all(). + */ +typedef int alt_irq_context; + +/* ISR Prototype */ +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT +typedef void (*alt_isr_func)(void* isr_context); +#else +typedef void (*alt_isr_func)(void* isr_context, alt_u32 id); +#endif + +/* + * The following protypes and routines are supported by both + * the enhanced and legacy interrupt APIs + */ + +/* + * alt_irq_enabled can be called to determine if the processor's global + * interrupt enable is asserted. The return value is zero if interrupts + * are disabled, and non-zero otherwise. + * + * Whether the internal or external interrupt controller is present, + * individual interrupts may still be disabled. Use the other API to query + * a specific interrupt. + */ +static ALT_INLINE int ALT_ALWAYS_INLINE alt_irq_enabled (void) +{ + int status; + + NIOS2_READ_STATUS (status); + + return status & NIOS2_STATUS_PIE_MSK; +} + +/* + * alt_irq_disable_all() + * + * This routine inhibits all interrupts by negating the status register PIE + * bit. It returns the previous contents of the CPU status register (IRQ + * context) which can be used to restore the status register PIE bit to its + * state before this routine was called. + */ +static ALT_INLINE alt_irq_context ALT_ALWAYS_INLINE + alt_irq_disable_all (void) +{ + alt_irq_context context; + + NIOS2_READ_STATUS (context); + + NIOS2_WRITE_STATUS (context & ~NIOS2_STATUS_PIE_MSK); + + return context; +} + +/* + * alt_irq_enable_all() + * + * Enable all interrupts that were previously disabled by alt_irq_disable_all() + * + * This routine accepts a context to restore the CPU status register PIE bit + * to the state prior to a call to alt_irq_disable_all(). + + * In the case of nested calls to alt_irq_disable_all()/alt_irq_enable_all(), + * this means that alt_irq_enable_all() does not necessarily re-enable + * interrupts. + * + * This routine will perform a read-modify-write sequence to restore only + * status.PIE if the processor is configured with options that add additional + * writeable status register bits. These include the MMU, MPU, the enhanced + * interrupt controller port, and shadow registers. Otherwise, as a performance + * enhancement, status is overwritten with the prior context. + */ +static ALT_INLINE void ALT_ALWAYS_INLINE + alt_irq_enable_all (alt_irq_context context) +{ +#if (NIOS2_NUM_OF_SHADOW_REG_SETS > 0) || (defined NIOS2_EIC_PRESENT) || \ + (defined NIOS2_MMU_PRESENT) || (defined NIOS2_MPU_PRESENT) + alt_irq_context status; + + NIOS2_READ_STATUS (status); + + status &= ~NIOS2_STATUS_PIE_MSK; + status |= (context & NIOS2_STATUS_PIE_MSK); + + NIOS2_WRITE_STATUS (status); +#else + NIOS2_WRITE_STATUS (context); +#endif +} + +/* + * The function alt_irq_init() is defined within the auto-generated file + * alt_sys_init.c. This function calls the initilization macros for all + * interrupt controllers in the system at config time, before any other + * non-interrupt controller driver is initialized. + * + * The "base" parameter is ignored and only present for backwards-compatibility. + * It is recommended that NULL is passed in for the "base" parameter. + */ +extern void alt_irq_init (const void* base); + +/* + * alt_irq_cpu_enable_interrupts() enables the CPU to start taking interrupts. + */ +static ALT_INLINE void ALT_ALWAYS_INLINE + alt_irq_cpu_enable_interrupts () +{ + NIOS2_WRITE_STATUS(NIOS2_STATUS_PIE_MSK +#if defined(NIOS2_EIC_PRESENT) && (NIOS2_NUM_OF_SHADOW_REG_SETS > 0) + | NIOS2_STATUS_RSIE_MSK +#endif + ); +} + + +/* + * Prototypes for the enhanced interrupt API. + */ +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT +/* + * alt_ic_isr_register() can be used to register an interrupt handler. If the + * function is succesful, then the requested interrupt will be enabled upon + * return. + */ +extern int alt_ic_isr_register(alt_u32 ic_id, + alt_u32 irq, + alt_isr_func isr, + void *isr_context, + void *flags); + +/* + * alt_ic_irq_enable() and alt_ic_irq_disable() enable/disable a specific + * interrupt by using IRQ port and interrupt controller instance. + */ +int alt_ic_irq_enable (alt_u32 ic_id, alt_u32 irq); +int alt_ic_irq_disable(alt_u32 ic_id, alt_u32 irq); + + /* + * alt_ic_irq_enabled() indicates whether a specific interrupt, as + * specified by IRQ port and interrupt controller instance is enabled. + */ +alt_u32 alt_ic_irq_enabled(alt_u32 ic_id, alt_u32 irq); + +#else +/* + * Prototypes for the legacy interrupt API. + */ +#include "priv/alt_legacy_irq.h" +#endif + + +/* + * alt_irq_pending() returns a bit list of the current pending interrupts. + * This is used by alt_irq_handler() to determine which registered interrupt + * handlers should be called. + * + * This routine is only available for the Nios II internal interrupt + * controller. + */ +#ifndef NIOS2_EIC_PRESENT +static ALT_INLINE alt_u32 ALT_ALWAYS_INLINE alt_irq_pending (void) +{ + alt_u32 active; + + NIOS2_READ_IPENDING (active); + + return active; +} +#endif + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __ALT_IRQ_H__ */ diff --git a/software/qsys_tutorial_bsp/HAL/inc/sys/alt_irq_entry.h b/software/qsys_tutorial_bsp/HAL/inc/sys/alt_irq_entry.h new file mode 100644 index 0000000..e2008d9 --- /dev/null +++ b/software/qsys_tutorial_bsp/HAL/inc/sys/alt_irq_entry.h @@ -0,0 +1,39 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/* + * This file pulls in the IRQ entry assembler and C code, which is only + * required if there are any interruptes in the system. + */ + +__asm__( "\n\t.globl alt_irq_entry" ); + +__asm__( "\n\t.globl alt_irq_handler" ); + diff --git a/software/qsys_tutorial_bsp/HAL/inc/sys/alt_license_reminder_ucosii.h b/software/qsys_tutorial_bsp/HAL/inc/sys/alt_license_reminder_ucosii.h new file mode 100644 index 0000000..2fe649c --- /dev/null +++ b/software/qsys_tutorial_bsp/HAL/inc/sys/alt_license_reminder_ucosii.h @@ -0,0 +1,77 @@ +#ifndef __ALT_LICENSE_REMINDER_UCOSII_H__ +#define __ALT_LICENSE_REMINDER_UCOSII_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#include + +#define ALT_LICENSE_REMINDER_UCOSII_STRING \ + "============== Software License Reminder ===============\n" \ + "\n" \ + "uC/OS-II is provided in source form for FREE evaluation,\n" \ + "for educational use, or for peaceful research. If you\n" \ + "plan on using uC/OS-II in a commercial product you need\n" \ + "to contact Micrium to properly license its use in your\n" \ + "product. Micrium provides ALL the source code on the\n" \ + "Altera distribution for your convenience and to help you\n" \ + "experience uC/OS-II. The fact that the source is provided\n" \ + "does NOT mean that you can use it without paying a\n" \ + "licensing fee. Please help us continue to provide the\n" \ + "Embedded community with the finest software available.\n" \ + "Your honesty is greatly appreciated.\n" \ + "\n" \ + "Please contact:\n" \ + "\n" \ + "M I C R I U M\n" \ + "949 Crestview Circle\n" \ + "Weston, FL 33327-1848\n" \ + "U.S.A.\n" \ + "\n" \ + "Phone : +1 954 217 2036\n" \ + "FAX : +1 954 217 2037\n" \ + "WEB : www.micrium.com\n" \ + "E-mail: Sales@Micrium.com\n" \ + "\n" \ + "========================================================\n" + +#define alt_license_reminder_ucosii() puts(ALT_LICENSE_REMINDER_UCOSII_STRING) + + +#endif /* __ALT_LICENSE_REMINDER_UCOSII_H__ */ + diff --git a/software/qsys_tutorial_bsp/HAL/inc/sys/alt_llist.h b/software/qsys_tutorial_bsp/HAL/inc/sys/alt_llist.h new file mode 100644 index 0000000..46f81ce --- /dev/null +++ b/software/qsys_tutorial_bsp/HAL/inc/sys/alt_llist.h @@ -0,0 +1,123 @@ +#ifndef __ALT_LIST_H__ +#define __ALT_LIST_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#include "alt_types.h" + +/* + * alt_llist.h defines structures and functions for use in manipulating linked + * lists. A list is considered to be constructed from a chain of objects of + * type alt_llist, with one object being defined to be the head element. + * + * A list is considered to be empty if it only contains the head element. + */ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * alt_llist is the structure used to represent an element within a linked + * list. + */ + +typedef struct alt_llist_s alt_llist; + +struct alt_llist_s { + alt_llist* next; /* Pointer to the next element in the list. */ + alt_llist* previous; /* Pointer to the previous element in the list. */ +}; + +/* + * ALT_LLIST_HEAD is a macro that can be used to create the head of a new + * linked list. This is named "head". The head element is initialised to + * represent an empty list. + */ + +#define ALT_LLIST_HEAD(head) alt_llist head = {&head, &head} + +/* + * ALT_LLIST_ENTRY is a macro used to define an uninitialised linked list + * entry. This is used to reserve space in structure initialisation for + * structures that inherit form alt_llist. + */ + +#define ALT_LLIST_ENTRY {0, 0} + +/* + * alt_llist_insert() insert adds the linked list entry "entry" as the + * first entry in the linked list "list". "list" is the list head element. + */ + +static ALT_INLINE void ALT_ALWAYS_INLINE alt_llist_insert(alt_llist* list, + alt_llist* entry) +{ + entry->previous = list; + entry->next = list->next; + + list->next->previous = entry; + list->next = entry; +} + +/* + * alt_llist_remove() is called to remove an element from a linked list. The + * input argument is the element to remove. + */ + +static ALT_INLINE void ALT_ALWAYS_INLINE alt_llist_remove(alt_llist* entry) +{ + entry->next->previous = entry->previous; + entry->previous->next = entry->next; + + /* + * Set the entry to point to itself, so that any further calls to + * alt_llist_remove() are harmless. + */ + + entry->previous = entry; + entry->next = entry; +} + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_LLIST_H__ */ diff --git a/software/qsys_tutorial_bsp/HAL/inc/sys/alt_load.h b/software/qsys_tutorial_bsp/HAL/inc/sys/alt_load.h new file mode 100644 index 0000000..432e9f2 --- /dev/null +++ b/software/qsys_tutorial_bsp/HAL/inc/sys/alt_load.h @@ -0,0 +1,78 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2005 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "alt_types.h" + +/* + * This macro is used to load code/data from its load address to its + * execution address for a given section. The section name is the input + * argument. Note that a leading '.' is assumed in the name. For example + * to load the section .onchip_ram, use: + * + * ALT_LOAD_SECTION_BY_NAME(onchip_ram); + * + * This requires that the apropriate linker symbols have been generated + * for the section in question. This will be the case if you are using the + * default linker script. + */ + +#define ALT_LOAD_SECTION_BY_NAME(name) \ + { \ + extern void _alt_partition_##name##_start; \ + extern void _alt_partition_##name##_end; \ + extern void _alt_partition_##name##_load_addr; \ + \ + alt_load_section(&_alt_partition_##name##_load_addr, \ + &_alt_partition_##name##_start, \ + &_alt_partition_##name##_end); \ + } + +/* + * Function used to load an individual section from flash to RAM. + * + * There is an implicit assumption here that the linker script will ensure + * that all sections are word aligned. + * + */ + +static void ALT_INLINE alt_load_section (alt_u32* from, + alt_u32* to, + alt_u32* end) +{ + if (to != from) + { + while( to != end ) + { + *to++ = *from++; + } + } +} diff --git a/software/qsys_tutorial_bsp/HAL/inc/sys/alt_log_printf.h b/software/qsys_tutorial_bsp/HAL/inc/sys/alt_log_printf.h new file mode 100644 index 0000000..c15ca05 --- /dev/null +++ b/software/qsys_tutorial_bsp/HAL/inc/sys/alt_log_printf.h @@ -0,0 +1,349 @@ +/* alt_log_printf.h + * + * ALT_LOG is designed to provide extra logging/debugging messages from HAL + * through a different port than stdout. It is enabled by the ALT_LOG_ENABLE + * define, which needs to supplied at compile time. When logging is turned off, + * code size is unaffected. Thus, this should be transparent to the user + * when it is not actively turned on, and should not affect projects in any way. + * + * There are macros sprinkled within different components, such as the jtag uart + * and timer, in the HAL code. They are always named ALT_LOG_, and can be + * safely ignored if ALT_LOG is turned off. + * + * To turn on ALT_LOG, ALT_LOG_ENABLE must be defined, and ALT_LOG_PORT_TYPE and + * ALT_LOG_PORT_BASE must be set in system.h. This is done through editing + * .ptf, by editing the alt_log_port_type & alt_log_port_base settings. + * See the documentation html file for examples. + * + * When it is turned on, it will output extra HAL messages to a port specified + * in system.h. This can be a UART or JTAG UART port. By default it will + * output boot messages, detailing every step of the boot process. + * + * Extra logging is designed to be enabled by flags, which are defined in + * alt_log_printf.c. The default value is that all flags are off, so only the + * boot up logging messages show up. ALT_LOG_FLAGS can be set to enable certain + * groupings of flags, and that grouping is done in this file. Each flag can + * also be overridden with a -D at compile time. + * + * This header file includes the necessary prototypes for using the alt_log + * functions. It also contains all the macros that are used to remove the code + * from alt log is turned off. Also, the macros in other HAL files are defined + * here at the bottom. These macros all call some C function that is in + * alt_log_printf.c. + * + * The logging has functions for printing in C (ALT_LOG_PRINTF) and in assembly + * (ALT_LOG_PUTS). This was needed because the assembly printing occurs before + * the device is initialized. The assembly function corrupts register R4-R7, + * which are not used in the normal boot process. For this reason, do not call + * the assembly function in C. + * + * author: gkwan + */ + + +#ifndef __ALT_LOG_PRINTF_H__ +#define __ALT_LOG_PRINTF_H__ + +#include + +/* Global switch to turn on logging functions */ +#ifdef ALT_LOG_ENABLE + + /* ALT_LOG_PORT_TYPE values as defined in system.h. They are defined as + * numbers here first becasue the C preprocessor does not handle string + * comparisons. */ + #define ALTERA_AVALON_JTAG_UART 1 + #define ALTERA_AVALON_UART 0 + + /* If this .h file is included by an assembly file, skip over include files + * that won't compile in assembly. */ + #ifndef ALT_ASM_SRC + #include + #include "sys/alt_alarm.h" + #include "sys/alt_dev.h" + #ifdef __ALTERA_AVALON_JTAG_UART + #include "altera_avalon_jtag_uart.h" + #endif + #endif /* ALT_ASM_SRC */ + + /* These are included for the port register offsets and masks, needed + * to write to the port. Only include if the port type is set correctly, + * otherwise error. If alt_log is turned on and the port to output to is + * incorrect or does not exist, then should exit. */ + #if ALT_LOG_PORT_TYPE == ALTERA_AVALON_JTAG_UART + #ifdef __ALTERA_AVALON_JTAG_UART + #include + #else + #error ALT_LOG: JTAG_UART port chosen, but no JTAG_UART in system. + #endif + #elif ALT_LOG_PORT_TYPE == ALTERA_AVALON_UART + #ifdef __ALTERA_AVALON_UART + #include + #else + #error ALT_LOG: UART Port chosen, but no UART in system. + #endif + #else + #error ALT_LOG: alt_log_port_type declaration invalid! + #endif + + /* ALT_LOG_ENABLE turns on the basic printing function */ + #define ALT_LOG_PRINTF(...) do {alt_log_printf_proc(__VA_ARGS__);} while (0) + + /* Assembly macro for printing in assembly, calls tx_log_str + * which is in alt_log_macro.S. + * If alt_log_boot_on_flag is 0, skips the printing */ + #define ALT_LOG_PUTS(str) movhi r4, %hiadj(alt_log_boot_on_flag) ; \ + addi r4, r4, %lo(alt_log_boot_on_flag) ; \ + ldwio r5, 0(r4) ; \ + beq r0, r5, 0f ; \ + movhi r4, %hiadj(str) ; \ + addi r4, r4, %lo(str) ; \ + call tx_log_str ; \ + 0: + + /* These defines are here to faciliate the use of one output function + * (alt_log_txchar) to print to both the JTAG UART or the UART. Depending + * on the port type, the status register, read mask, and output register + * are set to the appropriate value for the port. */ + #if ALT_LOG_PORT_TYPE == ALTERA_AVALON_JTAG_UART + #define ALT_LOG_PRINT_REG_RD IORD_ALTERA_AVALON_JTAG_UART_CONTROL + #define ALT_LOG_PRINT_MSK ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_MSK + #define ALT_LOG_PRINT_TXDATA_WR IOWR_ALTERA_AVALON_JTAG_UART_DATA + #define ALT_LOG_PRINT_REG_OFFSET (ALTERA_AVALON_JTAG_UART_CONTROL_REG*0x4) + #define ALT_LOG_PRINT_TXDATA_REG_OFFSET (ALTERA_AVALON_JTAG_UART_DATA_REG*0x4) + #elif ALT_LOG_PORT_TYPE == ALTERA_AVALON_UART + #define ALT_LOG_PRINT_REG_RD IORD_ALTERA_AVALON_UART_STATUS + #define ALT_LOG_PRINT_MSK ALTERA_AVALON_UART_STATUS_TRDY_MSK + #define ALT_LOG_PRINT_TXDATA_WR IOWR_ALTERA_AVALON_UART_TXDATA + #define ALT_LOG_PRINT_REG_OFFSET (ALTERA_AVALON_UART_STATUS_REG*0x4) + #define ALT_LOG_PRINT_TXDATA_REG_OFFSET (ALTERA_AVALON_UART_TXDATA_REG*0x4) + #endif /* ALT_LOG_PORT */ + + /* Grouping of flags via ALT_LOG_FLAGS. Each specific flag can be set via + * -D at compile time, or else they'll be set to a default value according + * to ALT_LOG_FLAGS. ALT_LOG_FLAGS = 0 or not set is the default, where + * only the boot messages will be printed. As ALT_LOG_FLAGS increase, they + * increase in intrusiveness to the program, and will affect performance. + * + * Flag Level 1 - turns on system clock and JTAG UART startup status + * 2 - turns on write echo and JTAG_UART alarm (periodic report) + * 3 - turns on JTAG UART ISR logging - will slow performance + * significantly. + * -1 - All logging output is off, but if ALT_LOG_ENABLE is + * defined all logging function is built and code size + * remains constant + * + * Flag settings - 1 = on, 0 = off. */ + + /* This flag turns on "boot" messages for printing. This includes messages + * during crt0.S, then alt_main, and finally alt_exit. */ + #ifndef ALT_LOG_BOOT_ON_FLAG_SETTING + #if ALT_LOG_FLAGS == 1 + #define ALT_LOG_BOOT_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == 2 + #define ALT_LOG_BOOT_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == 3 + #define ALT_LOG_BOOT_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == -1 /* silent mode */ + #define ALT_LOG_BOOT_ON_FLAG_SETTING 0x0 + #else /* default setting */ + #define ALT_LOG_BOOT_ON_FLAG_SETTING 0x1 + #endif + #endif /* ALT_LOG_BOOT_ON_FLAG_SETTING */ + + #ifndef ALT_LOG_SYS_CLK_ON_FLAG_SETTING + #if ALT_LOG_FLAGS == 1 + #define ALT_LOG_SYS_CLK_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == 2 + #define ALT_LOG_SYS_CLK_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == 3 + #define ALT_LOG_SYS_CLK_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == -1 /* silent mode */ + #define ALT_LOG_SYS_CLK_ON_FLAG_SETTING 0x0 + #else /* default setting */ + #define ALT_LOG_SYS_CLK_ON_FLAG_SETTING 0x0 + #endif + #endif /* ALT_LOG_SYS_CLK_ON_FLAG_SETTING */ + + #ifndef ALT_LOG_WRITE_ON_FLAG_SETTING + #if ALT_LOG_FLAGS == 1 + #define ALT_LOG_WRITE_ON_FLAG_SETTING 0x0 + #elif ALT_LOG_FLAGS == 2 + #define ALT_LOG_WRITE_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == 3 + #define ALT_LOG_WRITE_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == -1 /* silent mode */ + #define ALT_LOG_WRITE_ON_FLAG_SETTING 0x0 + #else /* default setting */ + #define ALT_LOG_WRITE_ON_FLAG_SETTING 0x0 + #endif + #endif /* ALT_LOG_WRITE_ON_FLAG_SETTING */ + + #ifndef ALT_LOG_JTAG_UART_ALARM_ON_FLAG_SETTING + #ifndef __ALTERA_AVALON_JTAG_UART + #define ALT_LOG_JTAG_UART_ALARM_ON_FLAG_SETTING 0x0 + #elif ALT_LOG_FLAGS == 1 + #define ALT_LOG_JTAG_UART_ALARM_ON_FLAG_SETTING 0x0 + #elif ALT_LOG_FLAGS == 2 + #define ALT_LOG_JTAG_UART_ALARM_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == 3 + #define ALT_LOG_JTAG_UART_ALARM_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == -1 /* silent mode */ + #define ALT_LOG_JTAG_UART_ALARM_ON_FLAG_SETTING 0x0 + #else /* default setting */ + #define ALT_LOG_JTAG_UART_ALARM_ON_FLAG_SETTING 0x0 + #endif + #endif /* ALT_LOG_JTAG_UART_ALARM_ON_FLAG_SETTING */ + + #ifndef ALT_LOG_JTAG_UART_STARTUP_INFO_ON_FLAG_SETTING + #ifndef __ALTERA_AVALON_JTAG_UART + #define ALT_LOG_JTAG_UART_STARTUP_INFO_ON_FLAG_SETTING 0x0 + #elif ALT_LOG_FLAGS == 1 + #define ALT_LOG_JTAG_UART_STARTUP_INFO_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == 2 + #define ALT_LOG_JTAG_UART_STARTUP_INFO_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == 3 + #define ALT_LOG_JTAG_UART_STARTUP_INFO_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == -1 /* silent mode */ + #define ALT_LOG_JTAG_UART_STARTUP_INFO_ON_FLAG_SETTING 0x0 + #else /* default setting */ + #define ALT_LOG_JTAG_UART_STARTUP_INFO_ON_FLAG_SETTING 0x0 + #endif + #endif /* ALT_LOG_JTAG_UART_STARTUP_INFO_FLAG_SETTING */ + + #ifndef ALT_LOG_JTAG_UART_ISR_ON_FLAG_SETTING + #ifndef __ALTERA_AVALON_JTAG_UART + #define ALT_LOG_JTAG_UART_ISR_ON_FLAG_SETTING 0x0 + #elif ALT_LOG_FLAGS == 1 + #define ALT_LOG_JTAG_UART_ISR_ON_FLAG_SETTING 0x0 + #elif ALT_LOG_FLAGS == 2 + #define ALT_LOG_JTAG_UART_ISR_ON_FLAG_SETTING 0x0 + #elif ALT_LOG_FLAGS == 3 + #define ALT_LOG_JTAG_UART_ISR_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == -1 /* silent mode */ + #define ALT_LOG_JTAG_UART_ISR_ON_FLAG_SETTING 0x0 + #else /* default setting */ + #define ALT_LOG_JTAG_UART_ISR_ON_FLAG_SETTING 0x0 + #endif + #endif /* ALT_LOG_JTAG_UART_ISR_ON_FLAG_SETTING */ + +#ifndef ALT_ASM_SRC + /* Function Prototypes */ + void alt_log_txchar(int c,char *uartBase); + void alt_log_private_printf(const char *fmt,int base,va_list args); + void alt_log_repchar(char c,int r,int base); + int alt_log_printf_proc(const char *fmt, ... ); + void alt_log_system_clock(); + #ifdef __ALTERA_AVALON_JTAG_UART + alt_u32 altera_avalon_jtag_uart_report_log(void * context); + void alt_log_jtag_uart_startup_info(altera_avalon_jtag_uart_state* dev, int base); + void alt_log_jtag_uart_print_control_reg(altera_avalon_jtag_uart_state* dev, \ + int base, const char* header); + void alt_log_jtag_uart_isr_proc(int base, altera_avalon_jtag_uart_state* dev); + #endif + void alt_log_write(const void *ptr, size_t len); + + /* extern all global variables */ + extern volatile alt_u32 alt_log_boot_on_flag; + extern volatile alt_u8 alt_log_write_on_flag; + extern volatile alt_u8 alt_log_sys_clk_on_flag; + extern volatile alt_u8 alt_log_jtag_uart_alarm_on_flag; + extern volatile alt_u8 alt_log_jtag_uart_isr_on_flag; + extern volatile alt_u8 alt_log_jtag_uart_startup_info_on_flag; + extern volatile int alt_log_sys_clk_count; + extern volatile int alt_system_clock_in_sec; + extern alt_alarm alt_log_jtag_uart_alarm_1; +#endif /* ALT_ASM_SRC */ + + + /* Below are the MACRO defines used in various HAL files. They check + * if their specific flag is turned on; if it is, then it executes its + * code. + * + * To keep this file reasonable, most of these macros calls functions, + * which are defined in alt_log_printf.c. Look there for implementation + * details. */ + + /* Boot Messages Logging */ + #define ALT_LOG_PRINT_BOOT(...) \ + do { if (alt_log_boot_on_flag==1) {ALT_LOG_PRINTF(__VA_ARGS__);} \ + } while (0) + + /* JTAG UART Logging */ + /* number of ticks before alarm runs logging function */ + #ifndef ALT_LOG_JTAG_UART_TICKS_DIVISOR + #define ALT_LOG_JTAG_UART_TICKS_DIVISOR 10 + #endif + #ifndef ALT_LOG_JTAG_UART_TICKS + #define ALT_LOG_JTAG_UART_TICKS \ + (alt_ticks_per_second()/ALT_LOG_JTAG_UART_TICKS_DIVISOR) + #endif + + /* if there's a JTAG UART defined, then enable these macros */ + #ifdef __ALTERA_AVALON_JTAG_UART + + /* Macro in altera_avalon_jtag_uart.c, to register the alarm function. + * Also, the startup register info is also printed here, as this is + * called within the device driver initialization. */ + #define ALT_LOG_JTAG_UART_ALARM_REGISTER(dev, base) \ + do { if (alt_log_jtag_uart_alarm_on_flag==1) { \ + alt_alarm_start(&alt_log_jtag_uart_alarm_1, \ + ALT_LOG_JTAG_UART_TICKS, &altera_avalon_jtag_uart_report_log,\ + dev);} \ + if (alt_log_jtag_uart_startup_info_on_flag==1) {\ + alt_log_jtag_uart_startup_info(dev, base);} \ + } while (0) + + /* JTAG UART IRQ Logging (when buffer is empty) + * Inserted in the ISR in altera_avalon_jtag_uart.c */ + #define ALT_LOG_JTAG_UART_ISR_FUNCTION(base, dev) \ + do { alt_log_jtag_uart_isr_proc(base, dev); } while (0) + /* else, define macros to nothing. Or else the jtag_uart specific types + * will throw compiler errors */ + #else + #define ALT_LOG_JTAG_UART_ALARM_REGISTER(dev, base) + #define ALT_LOG_JTAG_UART_ISR_FUNCTION(base, dev) + #endif + + /* System clock logging + * How often (in seconds) the system clock logging prints. + * The default value is every 1 second */ + #ifndef ALT_LOG_SYS_CLK_INTERVAL_MULTIPLIER + #define ALT_LOG_SYS_CLK_INTERVAL_MULTIPLIER 1 + #endif + #ifndef ALT_LOG_SYS_CLK_INTERVAL + #define ALT_LOG_SYS_CLK_INTERVAL \ + (alt_ticks_per_second()*ALT_LOG_SYS_CLK_INTERVAL_MULTIPLIER) + #endif + + /* System clock logging - prints a message every interval (set above) + * to show that the system clock is alive. + * This macro is used in altera_avalon_timer_sc.c */ + #define ALT_LOG_SYS_CLK_HEARTBEAT() \ + do { alt_log_system_clock(); } while (0) + + /* alt_write_logging - echos a message every time write() is called, + * displays the first ALT_LOG_WRITE_ECHO_LEN characters. + * This macro is used in alt_write.c */ + #ifndef ALT_LOG_WRITE_ECHO_LEN + #define ALT_LOG_WRITE_ECHO_LEN 15 + #endif + + #define ALT_LOG_WRITE_FUNCTION(ptr,len) \ + do { alt_log_write(ptr,len); } while (0) + +#else /* ALT_LOG_ENABLE not defined */ + + /* logging is off, set all relevant macros to null */ + #define ALT_LOG_PRINT_BOOT(...) + #define ALT_LOG_PRINTF(...) + #define ALT_LOG_JTAG_UART_ISR_FUNCTION(base, dev) + #define ALT_LOG_JTAG_UART_ALARM_REGISTER(dev, base) + #define ALT_LOG_SYS_CLK_HEARTBEAT() + #define ALT_LOG_PUTS(str) + #define ALT_LOG_WRITE_FUNCTION(ptr,len) + +#endif /* ALT_LOG_ENABLE */ + +#endif /* __ALT_LOG_PRINTF_H__ */ + diff --git a/software/qsys_tutorial_bsp/HAL/inc/sys/alt_set_args.h b/software/qsys_tutorial_bsp/HAL/inc/sys/alt_set_args.h new file mode 100644 index 0000000..3750e67 --- /dev/null +++ b/software/qsys_tutorial_bsp/HAL/inc/sys/alt_set_args.h @@ -0,0 +1,71 @@ +#ifndef __ALT_SET_ARGS_H__ +#define __ALT_SET_ARGS_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * The function alt_set_args() is provided in order to define the input + * arguments to main(). If this function is not called before main() then the + * argument list passed to main() will be empty. + * + * It is expected that this function will only be used by the ihost/iclient + * utility. + */ + +static inline void alt_set_args (int argc, char** argv, char** envp) +{ + extern int alt_argc; + extern char** alt_argv; + extern char** alt_envp; + + alt_argc = argc; + alt_argv = argv; + alt_envp = envp; +} + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_SET_ARGS_H__ */ diff --git a/software/qsys_tutorial_bsp/HAL/inc/sys/alt_sim.h b/software/qsys_tutorial_bsp/HAL/inc/sys/alt_sim.h new file mode 100644 index 0000000..06bd27a --- /dev/null +++ b/software/qsys_tutorial_bsp/HAL/inc/sys/alt_sim.h @@ -0,0 +1,91 @@ +#ifndef __ALT_SIM_H__ +#define __ALT_SIM_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2007 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ +#include "system.h" +#include "alt_types.h" + +/* + * Instructions that might mean something special to a simulator. + * These have no special effect on real hardware (they are just nops). + */ +#define ALT_SIM_FAIL() \ + do { __asm volatile ("cmpltui r0, r0, 0xabc1"); } while (0) + +#define ALT_SIM_PASS() \ + do { __asm volatile ("cmpltui r0, r0, 0xabc2"); } while (0) + +#define ALT_SIM_IN_TOP_OF_HOT_LOOP() \ + do { __asm volatile ("cmpltui r0, r0, 0xabc3"); } while (0) + +/* + * Routine called on exit. + */ +static ALT_ALWAYS_INLINE void alt_sim_halt(int exit_code) +{ + int r2 = exit_code; + +#if defined(NIOS2_HAS_DEBUG_STUB) && (defined(ALT_BREAK_ON_EXIT) || defined(ALT_PROVIDE_GMON)) + + int r3 = (1 << 2); + +#ifdef ALT_PROVIDE_GMON + extern unsigned int alt_gmon_data[]; + int r4 = (int)alt_gmon_data; + r3 |= (1 << 4); +#define ALT_GMON_DATA ,"D04"(r4) +#else +#define ALT_GMON_DATA +#endif /* ALT_PROVIDE_GMON */ + + if (r2) { + ALT_SIM_FAIL(); + } else { + ALT_SIM_PASS(); + } + + __asm__ volatile ("\n0:\n\taddi %0,%0, -1\n\tbgt %0,zero,0b" : : "r" (ALT_CPU_FREQ/100) ); /* Delay for >30ms */ + + __asm__ volatile ("break 2" : : "D02"(r2), "D03"(r3) ALT_GMON_DATA ); + +#else /* !DEBUG_STUB */ + if (r2) { + ALT_SIM_FAIL(); + } else { + ALT_SIM_PASS(); + } +#endif /* DEBUG_STUB */ +} + +#define ALT_SIM_HALT(exit_code) \ + alt_sim_halt(exit_code) + +#endif /* __ALT_SIM_H__ */ diff --git a/software/qsys_tutorial_bsp/HAL/inc/sys/alt_stack.h b/software/qsys_tutorial_bsp/HAL/inc/sys/alt_stack.h new file mode 100644 index 0000000..e30652a --- /dev/null +++ b/software/qsys_tutorial_bsp/HAL/inc/sys/alt_stack.h @@ -0,0 +1,126 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#ifndef __ALT_STACK_H__ +#define __ALT_STACK_H__ + +/* + * alt_stack.h is the nios2 specific implementation of functions used by the + * stack overflow code. + */ + +#include "nios2.h" + +#include "alt_types.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + + +extern char * alt_stack_limit_value; + +#ifdef ALT_EXCEPTION_STACK +extern char __alt_exception_stack_pointer[]; /* set by the linker */ +#endif /* ALT_EXCEPTION_STACK */ + + +/* + * alt_stack_limit can be called to determine the current value of the stack + * limit register. + */ + +static ALT_INLINE char * ALT_ALWAYS_INLINE alt_stack_limit (void) +{ + char * limit; + NIOS2_READ_ET(limit); + + return limit; +} + +/* + * alt_stack_pointer can be called to determine the current value of the stack + * pointer register. + */ + +static ALT_INLINE char * ALT_ALWAYS_INLINE alt_stack_pointer (void) +{ + char * pointer; + NIOS2_READ_SP(pointer); + + return pointer; +} + + +#ifdef ALT_EXCEPTION_STACK + +/* + * alt_exception_stack_pointer returns the normal stack pointer from + * where it is stored on the exception stack (uppermost 4 bytes). This + * is really only useful during exception processing, and is only + * available if a separate exception stack has been configured. + */ + +static ALT_INLINE char * ALT_ALWAYS_INLINE alt_exception_stack_pointer (void) +{ + return (char *) *(alt_u32 *)(__alt_exception_stack_pointer - sizeof(alt_u32)); +} + +#endif /* ALT_EXCEPTION_STACK */ + + +/* + * alt_set_stack_limit can be called to update the current value of the stack + * limit register. + */ + +static ALT_INLINE void ALT_ALWAYS_INLINE alt_set_stack_limit (char * limit) +{ + alt_stack_limit_value = limit; + NIOS2_WRITE_ET(limit); +} + +/* + * alt_report_stack_overflow reports that a stack overflow happened. + */ + +static ALT_INLINE void ALT_ALWAYS_INLINE alt_report_stack_overflow (void) +{ + NIOS2_REPORT_STACK_OVERFLOW(); +} + + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __ALT_STACK_H__ */ + diff --git a/software/qsys_tutorial_bsp/HAL/inc/sys/alt_stdio.h b/software/qsys_tutorial_bsp/HAL/inc/sys/alt_stdio.h new file mode 100644 index 0000000..1730360 --- /dev/null +++ b/software/qsys_tutorial_bsp/HAL/inc/sys/alt_stdio.h @@ -0,0 +1,62 @@ +#ifndef __ALT_STDIO_H__ +#define __ALT_STDIO_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +/* + * Definitions for ALT stdio routines. + */ + +#include + + +#ifdef __cplusplus +extern "C" { +#endif + +int alt_getchar(); +int alt_putchar(int c); +int alt_putstr(const char* str); +void alt_printf(const char *fmt, ...); + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_STDIO_H__ */ diff --git a/software/qsys_tutorial_bsp/HAL/inc/sys/alt_sys_init.h b/software/qsys_tutorial_bsp/HAL/inc/sys/alt_sys_init.h new file mode 100644 index 0000000..e4abc28 --- /dev/null +++ b/software/qsys_tutorial_bsp/HAL/inc/sys/alt_sys_init.h @@ -0,0 +1,62 @@ +#ifndef __ALT_SYS_INIT_H__ +#define __ALT_SYS_INIT_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * The function alt_sys_init() is defined within the auto-generated file: + * alt_sys_init.c. This function calls the initilisation macros for all + * devices, file systems, and software components within the system. + * + * The list of initilisation macros to use is constructed using the PTF and + * STF files associated with the system. + */ + +extern void alt_sys_init (void); + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_SYS_INIT_H__ */ diff --git a/software/qsys_tutorial_bsp/HAL/inc/sys/alt_sys_wrappers.h b/software/qsys_tutorial_bsp/HAL/inc/sys/alt_sys_wrappers.h new file mode 100644 index 0000000..044833b --- /dev/null +++ b/software/qsys_tutorial_bsp/HAL/inc/sys/alt_sys_wrappers.h @@ -0,0 +1,100 @@ +#ifndef __ALT_SYS_WRAPPERS_H__ +#define __ALT_SYS_WRAPPERS_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/* + * This file provides the prototypes for the HAL 'UNIX style functions. The + * names of these functions are defined in alt_syscall.h. THese are defined to + * be the standard names when running the standalone HAL, e.g. open(), close() + * etc., but the names may be redefined as a part of an operating system port + * in order to avoid name clashes. + */ + +#include "os/alt_syscall.h" + +#include +#include +#include +#include +#include +#include + +extern int ALT_CLOSE (int __fd); +extern int ALT_EXECVE (const char *__path, + char * const __argv[], + char * const __envp[]); +extern void ALT_EXIT (int __status); +extern int ALT_FSTAT (int file, struct stat *st); +extern int ALT_FCNTL (int file, int cmd, ...); +extern pid_t ALT_FORK (void); +extern pid_t ALT_GETPID (void); + +#if defined (__GNUC__) && __GNUC__ >= 4 +extern int ALT_GETTIMEOFDAY (struct timeval *ptimeval, + void *ptimezone); +#else +extern int ALT_GETTIMEOFDAY (struct timeval *ptimeval, + struct timezone *ptimezone); +#endif + +extern int ALT_IOCTL (int file, int req, void* arg); +extern int ALT_ISATTY (int file); +extern int ALT_KILL (int pid, int sig); +extern int ALT_LINK (const char *existing, const char *new); +extern off_t ALT_LSEEK (int file, off_t ptr, int dir); +extern int ALT_OPEN (const char* file, int flags, ...); +extern int ALT_READ (int file, void *ptr, size_t len); +extern int ALT_RENAME (char *existing, char *new); +extern void* ALT_SBRK (ptrdiff_t incr); +extern int ALT_SETTIMEOFDAY (const struct timeval *t, + const struct timezone *tz); +extern int ALT_STAT (const char *file, struct stat *st); +extern clock_t ALT_TIMES (struct tms *buf); +extern int ALT_UNLINK (const char *name); + +#if defined (__GNUC__) && __GNUC__ >= 4 +int ALT_USLEEP (useconds_t us); +#else +unsigned int ALT_USLEEP (unsigned int us); +#endif + +extern int ALT_WAIT (int *status); +extern int ALT_WRITE (int file, const void *ptr, size_t len); + + +extern char** ALT_ENVIRON; + +/* + * + */ + +#endif /* __ALT_SYS_WRAPPERS_H__ */ diff --git a/software/qsys_tutorial_bsp/HAL/inc/sys/alt_timestamp.h b/software/qsys_tutorial_bsp/HAL/inc/sys/alt_timestamp.h new file mode 100644 index 0000000..8a18da2 --- /dev/null +++ b/software/qsys_tutorial_bsp/HAL/inc/sys/alt_timestamp.h @@ -0,0 +1,60 @@ +#ifndef __ALT_TIMESTAMP_H__ +#define __ALT_TIMESTAMP_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#include "alt_types.h" +#include "altera_avalon_timer.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +extern int alt_timestamp_start (void); + +extern alt_timestamp_type alt_timestamp (void); + +extern alt_u32 alt_timestamp_freq (void); + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_TIMESTAMP_H__ */ diff --git a/software/qsys_tutorial_bsp/HAL/inc/sys/alt_warning.h b/software/qsys_tutorial_bsp/HAL/inc/sys/alt_warning.h new file mode 100644 index 0000000..b66e71a --- /dev/null +++ b/software/qsys_tutorial_bsp/HAL/inc/sys/alt_warning.h @@ -0,0 +1,75 @@ +#ifndef __WARNING_H__ +#define __WARNING_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/* + * alt_warning.h provides macro definitions that can be used to generate link + * time warnings. + */ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * The symbol "__alt_invalid" is used to force a link error. There should be + * no corresponding implementation of this function. + */ + +extern void __alt_invalid (void); + +#define ALT_LINK_WARNING(symbol, msg) \ + __asm__(".ifndef __evoke_link_warning_" #symbol \ + "\n\t .section .gnu.warning." #symbol \ + "\n__evoke_link_warning_" #symbol ":\n\t .string \x22" msg "\x22 \n\t .previous" \ + "\n .endif"); + +/* A canned warning for sysdeps/stub functions. */ + +#define ALT_STUB_WARNING(name) \ + ALT_LINK_WARNING (name, \ + "warning: " #name " is not implemented and will always fail") + +#define ALT_OBSOLETE_FUNCTION_WARNING(name) \ + ALT_LINK_WARNING (name, \ + "warning: " #name " is a deprecated function") + +#define ALT_LINK_ERROR(msg) \ + ALT_LINK_WARNING (__alt_invalid, msg); \ + __alt_invalid() + +#ifdef __cplusplus +} +#endif + +#endif /* __WARNING_H__ */ diff --git a/software/qsys_tutorial_bsp/HAL/inc/sys/ioctl.h b/software/qsys_tutorial_bsp/HAL/inc/sys/ioctl.h new file mode 100644 index 0000000..4d565df --- /dev/null +++ b/software/qsys_tutorial_bsp/HAL/inc/sys/ioctl.h @@ -0,0 +1,90 @@ +#ifndef __IOCTL_H__ +#define __IOCTL_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * The ioctl() system call be used to initiate a variety of control operations + * on a file descriptor. For the most part this simply translates to a call to + * the ioctl() function of the associated device driver (TIOCEXCL and + * TIOCNXCL are notable exceptions - see ioctl.c for details). + * + * The interpretation of the ioctl requests are therefore device specific. + * + * This function is equivalent to the standard Posix ioctl() call. + */ + +extern int ioctl (int fd, int req, void* arg); + +/* + * list of ioctl calls handled by the system ioctl implementation. + */ + +#define TIOCEXCL 0x740d /* exclusive use of the device */ +#define TIOCNXCL 0x740e /* allow multiple use of the device */ + +/* + * ioctl calls which can be handled by device drivers. + */ + +#define TIOCOUTQ 0x7472 /* get output queue size */ +#define TIOCMGET 0x741d /* get termios flags */ +#define TIOCMSET 0x741a /* set termios flags */ + +/* + * ioctl calls specific to JTAG UART. + */ + +#define TIOCSTIMEOUT 0x6a01 /* Set Timeout before assuming no host present */ +#define TIOCGCONNECTED 0x6a02 /* Get indication of whether host is connected */ + +/* + * + */ + +#ifdef __cplusplus +} +#endif + +#endif /* __IOCTL_H__ */ diff --git a/software/qsys_tutorial_bsp/HAL/inc/sys/termios.h b/software/qsys_tutorial_bsp/HAL/inc/sys/termios.h new file mode 100644 index 0000000..cd09539 --- /dev/null +++ b/software/qsys_tutorial_bsp/HAL/inc/sys/termios.h @@ -0,0 +1,181 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +/* + * This is the termios.h file provided with newlib. The only modification has + * been to the baud rate macro definitions, and an increase in the size of the + * termios structure to accomodate this. + */ + + +#ifndef _SYS_TERMIOS_H +# define _SYS_TERMIOS_H + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +# define _XCGETA (('x'<<8)|1) +# define _XCSETA (('x'<<8)|2) +# define _XCSETAW (('x'<<8)|3) +# define _XCSETAF (('x'<<8)|4) +# define _TCSBRK (('T'<<8)|5) +# define _TCFLSH (('T'<<8)|7) +# define _TCXONC (('T'<<8)|6) + +# define TCOOFF 0 +# define TCOON 1 +# define TCIOFF 2 +# define TCION 3 + +# define TCIFLUSH 0 +# define TCOFLUSH 1 +# define TCIOFLUSH 2 + +# define NCCS 13 + +# define TCSAFLUSH _XCSETAF +# define TCSANOW _XCSETA +# define TCSADRAIN _XCSETAW +# define TCSADFLUSH _XCSETAF + +# define IGNBRK 000001 +# define BRKINT 000002 +# define IGNPAR 000004 +# define INPCK 000020 +# define ISTRIP 000040 +# define INLCR 000100 +# define IGNCR 000200 +# define ICRNL 000400 +# define IXON 002000 +# define IXOFF 010000 + +# define OPOST 000001 +# define OCRNL 000004 +# define ONLCR 000010 +# define ONOCR 000020 +# define TAB3 014000 + +# define CLOCAL 004000 +# define CREAD 000200 +# define CSIZE 000060 +# define CS5 0 +# define CS6 020 +# define CS7 040 +# define CS8 060 +# define CSTOPB 000100 +# define HUPCL 002000 +# define PARENB 000400 +# define PAODD 001000 + +#define CCTS_OFLOW 010000 +#define CRTS_IFLOW 020000 +#define CRTSCTS (CCTS_OFLOW | CRTS_IFLOW) + +# define ECHO 0000010 +# define ECHOE 0000020 +# define ECHOK 0000040 +# define ECHONL 0000100 +# define ICANON 0000002 +# define IEXTEN 0000400 /* anybody know *what* this does?! */ +# define ISIG 0000001 +# define NOFLSH 0000200 +# define TOSTOP 0001000 + +# define VEOF 4 /* also VMIN -- thanks, AT&T */ +# define VEOL 5 /* also VTIME -- thanks again */ +# define VERASE 2 +# define VINTR 0 +# define VKILL 3 +# define VMIN 4 /* also VEOF */ +# define VQUIT 1 +# define VSUSP 10 +# define VTIME 5 /* also VEOL */ +# define VSTART 11 +# define VSTOP 12 + +# define B0 0 +# define B50 50 +# define B75 75 +# define B110 110 +# define B134 134 +# define B150 150 +# define B200 200 +# define B300 300 +# define B600 600 +# define B1200 1200 +# define B1800 1800 +# define B2400 2400 +# define B4800 4800 +# define B9600 9600 +# define B19200 19200 +# define B38400 38400 +# define B57600 57600 +# define B115200 115200 + +typedef unsigned char cc_t; +typedef unsigned short tcflag_t; +typedef unsigned long speed_t; + +struct termios { + tcflag_t c_iflag; + tcflag_t c_oflag; + tcflag_t c_cflag; + tcflag_t c_lflag; + char c_line; + cc_t c_cc[NCCS]; + speed_t c_ispeed; + speed_t c_ospeed; +}; + +# ifndef _NO_MACROS + +# define cfgetospeed(tp) ((tp)->c_ospeed) +# define cfgetispeed(tp) ((tp)->c_ispeed) +# define cfsetospeed(tp,s) (((tp)->c_ospeed = (s)), 0) +# define cfsetispeed(tp,s) (((tp)->c_ispeed = (s)), 0) +# define tcdrain(fd) _ioctl (fd, _TCSBRK, 1) +# endif /* _NO_MACROS */ + +#ifdef __cplusplus +} +#endif + +#endif /* _SYS_TERMIOS_H */ + diff --git a/software/qsys_tutorial_bsp/HAL/src/alt_alarm_start.c b/software/qsys_tutorial_bsp/HAL/src/alt_alarm_start.c new file mode 100644 index 0000000..7739959 --- /dev/null +++ b/software/qsys_tutorial_bsp/HAL/src/alt_alarm_start.c @@ -0,0 +1,112 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +#include "sys/alt_alarm.h" +#include "sys/alt_irq.h" + +/* + * alt_alarm_start is called to register an alarm with the system. The + * "alarm" structure passed as an input argument does not need to be + * initialised by the user. This is done within this function. + * + * The remaining input arguments are: + * + * nticks - The time to elapse until the alarm executes. This is specified in + * system clock ticks. + * callback - The function to run when the indicated time has elapsed. + * context - An opaque value, passed to the callback function. +* + * Care should be taken when defining the callback function since it is + * likely to execute in interrupt context. In particular, this mean that + * library calls like printf() should not be made, since they can result in + * deadlock. + * + * The interval to be used for the next callback is the return + * value from the callback function. A return value of zero indicates that the + * alarm should be unregistered. + * + * alt_alarm_start() will fail if the timer facility has not been enabled + * (i.e. there is no system clock). Failure is indicated by a negative return + * value. + */ + +int alt_alarm_start (alt_alarm* alarm, alt_u32 nticks, + alt_u32 (*callback) (void* context), + void* context) +{ + alt_irq_context irq_context; + alt_u32 current_nticks = 0; + + if (alt_ticks_per_second ()) + { + if (alarm) + { + alarm->callback = callback; + alarm->context = context; + + irq_context = alt_irq_disable_all (); + + current_nticks = alt_nticks(); + + alarm->time = nticks + current_nticks + 1; + + /* + * If the desired alarm time causes a roll-over, set the rollover + * flag. This will prevent the subsequent tick event from causing + * an alarm too early. + */ + if(alarm->time < current_nticks) + { + alarm->rollover = 1; + } + else + { + alarm->rollover = 0; + } + + alt_llist_insert (&alt_alarm_list, &alarm->llist); + alt_irq_enable_all (irq_context); + + return 0; + } + else + { + return -EINVAL; + } + } + else + { + return -ENOTSUP; + } +} diff --git a/software/qsys_tutorial_bsp/HAL/src/alt_busy_sleep.c b/software/qsys_tutorial_bsp/HAL/src/alt_busy_sleep.c new file mode 100644 index 0000000..561c0be --- /dev/null +++ b/software/qsys_tutorial_bsp/HAL/src/alt_busy_sleep.c @@ -0,0 +1,133 @@ +/* + * Copyright (c) 2003-2004 Altera Corporation, San Jose, California, USA. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + * ------------ + * + * Altera does not recommend, suggest or require that this reference design + * file be used in conjunction or combination with any other product. + * + * alt_busy_sleep.c - Microsecond delay routine which uses a calibrated busy + * loop to perform the delay. This is used to implement + * usleep for both uC/OS-II and the standalone HAL. + * + * Author PRR + * + * Calibrated delay with no timer required + * + * The ASM instructions in the routine are equivalent to + * + * for (i=0;i +#include + +#include "system.h" +#include "alt_types.h" + +#include "priv/alt_busy_sleep.h" + +unsigned int alt_busy_sleep (unsigned int us) +{ +/* + * Only delay if ALT_SIM_OPTIMIZE is not defined; i.e., if software + * is built targetting ModelSim RTL simulation, the delay will be + * skipped to speed up simulation. + */ +#ifndef ALT_SIM_OPTIMIZE + int i; + int big_loops; + alt_u32 cycles_per_loop; + + if (!strcmp(NIOS2_CPU_IMPLEMENTATION,"tiny")) + { + cycles_per_loop = 9; + } + else + { + cycles_per_loop = 3; + } + + + big_loops = us / (INT_MAX/ + (ALT_CPU_FREQ/(cycles_per_loop * 1000000))); + + if (big_loops) + { + for(i=0;i + +#include "sys/alt_errno.h" +#include "sys/alt_warning.h" +#include "priv/alt_file.h" +#include "os/alt_syscall.h" + +#ifdef ALT_USE_DIRECT_DRIVERS + +int ALT_CLOSE (int fildes) +{ + /* Generate a link time warning, should this function ever be called. */ + + ALT_STUB_WARNING(close); + + /* Indicate an error */ + + ALT_ERRNO = ENOSYS; + return -1; +} + +#else /* !ALT_USE_DIRECT_DRIVERS */ + +/* + * close() is called by an application to release a file descriptor. If the + * associated file system/device has a close() callback function registered + * then this called. The file descriptor is then marked as free. + * + * ALT_CLOSE is mapped onto the close() system call in alt_syscall.h + */ + +int ALT_CLOSE (int fildes) +{ + alt_fd* fd; + int rval; + + /* + * A common error case is that when the file descriptor was created, the call + * to open() failed resulting in a negative file descriptor. This is trapped + * below so that we don't try and process an invalid file descriptor. + */ + + fd = (fildes < 0) ? NULL : &alt_fd_list[fildes]; + + if (fd) + { + /* + * If the associated file system/device has a close function, call it so + * that any necessary cleanup code can run. + */ + + rval = (fd->dev->close) ? fd->dev->close(fd) : 0; + + /* Free the file descriptor structure and return. */ + + alt_release_fd (fildes); + if (rval < 0) + { + ALT_ERRNO = -rval; + return -1; + } + return 0; + } + else + { + ALT_ERRNO = EBADFD; + return -1; + } +} + +#endif /* ALT_USE_DIRECT_DRIVERS */ diff --git a/software/qsys_tutorial_bsp/HAL/src/alt_dcache_flush.c b/software/qsys_tutorial_bsp/HAL/src/alt_dcache_flush.c new file mode 100644 index 0000000..7ecc91a --- /dev/null +++ b/software/qsys_tutorial_bsp/HAL/src/alt_dcache_flush.c @@ -0,0 +1,97 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003-2005 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "nios2.h" +#include "system.h" + +#include "alt_types.h" +#include "sys/alt_cache.h" + +/* + * Nios II version 1.2 and newer supports the "flush by address" instruction, in + * addition to the "flush by line" instruction provided by older versions of + * the core. This newer instruction is used by preference when it is + * available. + */ + +#ifdef NIOS2_FLUSHDA_SUPPORTED +#define ALT_FLUSH_DATA(i) __asm__ volatile ("flushda (%0)" :: "r" (i)); +#else +#define ALT_FLUSH_DATA(i) __asm__ volatile ("flushd (%0)" :: "r" (i)); +#endif /* NIOS2_FLUSHDA_SUPPORTED */ + +/* + * alt_dcache_flush() is called to flush the data cache for a memory + * region of length "len" bytes, starting at address "start". + * + * Any dirty lines in the data cache are written back to memory. + */ + +void alt_dcache_flush (void* start, alt_u32 len) +{ +#if NIOS2_DCACHE_SIZE > 0 + + char* i; + char* end; + + /* + * This is the most we would ever need to flush. + * + * SPR 196942, 2006.01.13: The cache flush loop below will use the + * 'flushda' instruction if its available; in that case each line + * must be flushed individually, and thus 'len' cannot be trimmed. + */ + #ifndef NIOS2_FLUSHDA_SUPPORTED + if (len > NIOS2_DCACHE_SIZE) + { + len = NIOS2_DCACHE_SIZE; + } + #endif + + end = ((char*) start) + len; + + for (i = start; i < end; i+= NIOS2_DCACHE_LINE_SIZE) + { + ALT_FLUSH_DATA(i); + } + + /* + * For an unaligned flush request, we've got one more line left. + * Note that this is dependent on NIOS2_DCACHE_LINE_SIZE to be a + * multiple of 2 (which it always is). + */ + + if (((alt_u32) start) & (NIOS2_DCACHE_LINE_SIZE - 1)) + { + ALT_FLUSH_DATA(i); + } + +#endif /* NIOS2_DCACHE_SIZE > 0 */ +} diff --git a/software/qsys_tutorial_bsp/HAL/src/alt_dcache_flush_all.c b/software/qsys_tutorial_bsp/HAL/src/alt_dcache_flush_all.c new file mode 100644 index 0000000..6529231 --- /dev/null +++ b/software/qsys_tutorial_bsp/HAL/src/alt_dcache_flush_all.c @@ -0,0 +1,51 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003-2005 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "nios2.h" +#include "system.h" + +#include "alt_types.h" +#include "sys/alt_cache.h" + +/* + * alt_dcache_flush_all() is called to flush the entire data cache. + */ + +void alt_dcache_flush_all (void) +{ +#if NIOS2_DCACHE_SIZE > 0 + char* i; + + for (i = (char*) 0; i < (char*) NIOS2_DCACHE_SIZE; i+= NIOS2_DCACHE_LINE_SIZE) + { + __asm__ volatile ("flushd (%0)" :: "r" (i)); + } +#endif /* NIOS2_DCACHE_SIZE > 0 */ +} diff --git a/software/qsys_tutorial_bsp/HAL/src/alt_dcache_flush_no_writeback.c b/software/qsys_tutorial_bsp/HAL/src/alt_dcache_flush_no_writeback.c new file mode 100644 index 0000000..c65ca7d --- /dev/null +++ b/software/qsys_tutorial_bsp/HAL/src/alt_dcache_flush_no_writeback.c @@ -0,0 +1,88 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2007 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "nios2.h" +#include "system.h" + +#include "alt_types.h" +#include "sys/alt_cache.h" + +/* + * The INITDA instruction was added to Nios II in the 8.0 release. + * + * The INITDA instruction has one of the following possible behaviors + * depending on the processor configuration: + * 1) Flushes a line by address but does NOT write back dirty data. + * Occurs when a data cache is present that supports INITDA. + * The macro NIOS2_INITDA_SUPPORTED is defined in system.h. + * 2) Takes an unimplemented instruction exception. + * Occurs when a data cache is present that doesn't support INITDA. + * 3) Performs no operation + * Occurs when there is no data cache present. + * The macro NIOS2_DCACHE_SIZE is 0 in system.h. + */ + +#define ALT_FLUSH_DATA_NO_WRITEBACK(i) \ + __asm__ volatile ("initda (%0)" :: "r" (i)); + +/* + * alt_dcache_flush_no_writeback() is called to flush the data cache for a + * memory region of length "len" bytes, starting at address "start". + * + * Any dirty lines in the data cache are NOT written back to memory. + * Make sure you really want this behavior. If you aren't 100% sure, + * use the alt_dcache_flush() routine instead. + */ + +void alt_dcache_flush_no_writeback (void* start, alt_u32 len) +{ +#if defined(NIOS2_INITDA_SUPPORTED) + + char* i; + char* end = ((char*) start) + len; + + for (i = start; i < end; i+= NIOS2_DCACHE_LINE_SIZE) + { + ALT_FLUSH_DATA_NO_WRITEBACK(i); + } + + /* + * For an unaligned flush request, we've got one more line left. + * Note that this is dependent on NIOS2_DCACHE_LINE_SIZE to be a + * multiple of 2 (which it always is). + */ + + if (((alt_u32) start) & (NIOS2_DCACHE_LINE_SIZE - 1)) + { + ALT_FLUSH_DATA_NO_WRITEBACK(i); + } + +#endif /* NIOS2_INITDA_SUPPORTED */ +} diff --git a/software/qsys_tutorial_bsp/HAL/src/alt_dev.c b/software/qsys_tutorial_bsp/HAL/src/alt_dev.c new file mode 100644 index 0000000..ebc15e5 --- /dev/null +++ b/software/qsys_tutorial_bsp/HAL/src/alt_dev.c @@ -0,0 +1,149 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include +#include +#include +#include + +#include "sys/alt_dev.h" +#include "priv/alt_file.h" + +#include "alt_types.h" + +#include "system.h" + +/* + * This file contains the data constructs used to control access to device and + * filesytems. + */ + +/* + * "alt_fs_list" is the head of a linked list of registered filesystems. It is + * initialised as an empty list. New entries can be added using the + * alt_fs_reg() function. + */ + +ALT_LLIST_HEAD(alt_fs_list); + + +/* + * "alt_dev_list" is the head of a linked list of registered devices. It is + * configured at startup to include a single device, "alt_dev_null". This + * device is discussed below. + */ + +extern alt_dev alt_dev_null; /* forward declaration */ + +alt_llist alt_dev_list = {&alt_dev_null.llist, &alt_dev_null.llist}; + +/* + * alt_dev_null_write() is the implementation of the write() function used + * by the alt_dev_null device. It simple discards all data passed to it, and + * indicates that the data has been successfully transmitted. + */ + +static int alt_dev_null_write (alt_fd* fd, const char* ptr, int len) +{ + return len; +} + +/* + * "alt_dev_null" is used to allow output to be redirected to nowhere. It is + * the only device registered before the call to alt_sys_init(). At startup + * stin, stdout & stderr are all directed towards this device so that library + * calls like printf() will be safe but inefectual. + */ + +alt_dev alt_dev_null = { + { + &alt_dev_list, + &alt_dev_list + }, + "/dev/null", + NULL, /* open */ + NULL, /* close */ + NULL, /* write */ + alt_dev_null_write, /* write */ + NULL, /* lseek */ + NULL, /* fstat */ + NULL /* ioctl */ + }; + +/* + * "alt_fd_list_lock" is a semaphore used to control access to the file + * descriptor list. This is used to ensure that access to the list is thread + * safe. + */ + +ALT_SEM(alt_fd_list_lock) + +/* + * "alt_max_fd" is used to make access to the file descriptor list more + * efficent. It is set to be the value of the highest allocated file + * descriptor. This saves having to search the entire pool of unallocated + * file descriptors when looking for a match. + */ + +alt_32 alt_max_fd = -1; + +/* + * "alt_fd_list" is the file descriptor pool. The first three entries in the + * array are configured as standard in, standard out, and standard error. These + * are all initialised so that accesses are directed to the alt_dev_null + * device. The remaining file descriptors are initialised as unallocated. + * + * The maximum number of file descriptors within the system is specified by the + * user defined macro "ALT_MAX_FD". This is defined in "system.h", which is + * auto-genereated using the projects PTF and STF files. + */ + +alt_fd alt_fd_list[ALT_MAX_FD] = + { + { + &alt_dev_null, /* standard in */ + 0, + 0 + }, + { + &alt_dev_null, /* standard out */ + 0, + 0 + }, + { + &alt_dev_null, /* standard error */ + 0, + 0 + } + /* all other elements are set to zero */ + }; diff --git a/software/qsys_tutorial_bsp/HAL/src/alt_dev_llist_insert.c b/software/qsys_tutorial_bsp/HAL/src/alt_dev_llist_insert.c new file mode 100644 index 0000000..fa7239d --- /dev/null +++ b/software/qsys_tutorial_bsp/HAL/src/alt_dev_llist_insert.c @@ -0,0 +1,59 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "priv/alt_dev_llist.h" +#include "sys/alt_errno.h" + +/* + * + */ + +int alt_dev_llist_insert (alt_dev_llist* dev, alt_llist* list) +{ + /* + * check that the device exists, and that it has a valid name. + */ + + if (!dev || !dev->name) + { + ALT_ERRNO = EINVAL; + return -EINVAL; + } + + /* + * register the device. + */ + + alt_llist_insert(list, &dev->llist); + + return 0; +} diff --git a/software/qsys_tutorial_bsp/HAL/src/alt_dma_rxchan_open.c b/software/qsys_tutorial_bsp/HAL/src/alt_dma_rxchan_open.c new file mode 100644 index 0000000..6ea3b78 --- /dev/null +++ b/software/qsys_tutorial_bsp/HAL/src/alt_dma_rxchan_open.c @@ -0,0 +1,63 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_dma.h" +#include "sys/alt_errno.h" +#include "priv/alt_file.h" + +/* + * The list of registered DMA receive channels. + */ + +ALT_LLIST_HEAD(alt_dma_rxchan_list); + +/* + * alt_dma_txchan_open() is used to obtain an "alt_dma_txchan" descriptor for + * a DMA transmit device. The name is the name of the associated physical + * device (e.g. "/dev/dma_0"). + * + * The return value will be NULL on failure, and non-NULL otherwise. + */ + +alt_dma_rxchan alt_dma_rxchan_open (const char* name) +{ + alt_dma_rxchan dev; + + dev = (alt_dma_rxchan) alt_find_dev (name, &alt_dma_rxchan_list); + + if (!dev) + { + ALT_ERRNO = ENODEV; + } + + return dev; +} diff --git a/software/qsys_tutorial_bsp/HAL/src/alt_dma_txchan_open.c b/software/qsys_tutorial_bsp/HAL/src/alt_dma_txchan_open.c new file mode 100644 index 0000000..f41fa81 --- /dev/null +++ b/software/qsys_tutorial_bsp/HAL/src/alt_dma_txchan_open.c @@ -0,0 +1,63 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_dma.h" +#include "sys/alt_errno.h" +#include "priv/alt_file.h" + +/* + * The list of registered receive channels. + */ + +ALT_LLIST_HEAD(alt_dma_txchan_list); + +/* + * alt_dma_txchan_open() is used to obtain an "alt_dma_txchan" descriptor for + * a DMA transmit device. The name is the name of the associated physical + * device (e.g. "/dev/dma_0"). + * + * The return value will be NULL on failure, and non-NULL otherwise. + */ + +alt_dma_txchan alt_dma_txchan_open (const char* name) +{ + alt_dma_txchan dev; + + dev = (alt_dma_txchan) alt_find_dev (name, &alt_dma_txchan_list); + + if (!dev) + { + ALT_ERRNO = ENODEV; + } + + return dev; +} diff --git a/software/qsys_tutorial_bsp/HAL/src/alt_do_ctors.c b/software/qsys_tutorial_bsp/HAL/src/alt_do_ctors.c new file mode 100644 index 0000000..ff5a1f7 --- /dev/null +++ b/software/qsys_tutorial_bsp/HAL/src/alt_do_ctors.c @@ -0,0 +1,64 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT IT DIRECTLY. * +* * +* Overriding HAL Functions * +* * +* To provide your own implementation of a HAL function, include the file in * +* your Nios II IDE application project. When building the executable, the * +* Nios II IDE finds your function first, and uses it in place of the HAL * +* version. * +* * +******************************************************************************/ + +/* + * + */ + +typedef void (*constructor) (void); +extern constructor __CTOR_LIST__[]; +extern constructor __CTOR_END__[]; + +/* + * Run the C++ static constructors. + */ + +void _do_ctors(void) +{ + constructor* ctor; + + for (ctor = &__CTOR_END__[-1]; ctor >= __CTOR_LIST__; ctor--) + (*ctor) (); +} diff --git a/software/qsys_tutorial_bsp/HAL/src/alt_do_dtors.c b/software/qsys_tutorial_bsp/HAL/src/alt_do_dtors.c new file mode 100644 index 0000000..565c99f --- /dev/null +++ b/software/qsys_tutorial_bsp/HAL/src/alt_do_dtors.c @@ -0,0 +1,64 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT IT DIRECTLY. * +* * +* Overriding HAL Functions * +* * +* To provide your own implementation of a HAL function, include the file in * +* your Nios II IDE application project. When building the executable, the * +* Nios II IDE finds your function first, and uses it in place of the HAL * +* version. * +* * +******************************************************************************/ + +/* + * + */ + +typedef void (*destructor) (void); +extern destructor __DTOR_LIST__[]; +extern destructor __DTOR_END__[]; + +/* + * Run the C++ static destructors. + */ + +void _do_dtors(void) +{ + destructor* dtor; + + for (dtor = &__DTOR_END__[-1]; dtor >= __DTOR_LIST__; dtor--) + (*dtor) (); +} diff --git a/software/qsys_tutorial_bsp/HAL/src/alt_env_lock.c b/software/qsys_tutorial_bsp/HAL/src/alt_env_lock.c new file mode 100644 index 0000000..fc25a0c --- /dev/null +++ b/software/qsys_tutorial_bsp/HAL/src/alt_env_lock.c @@ -0,0 +1,53 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +/* + * These are the empty env lock/unlock stubs required by newlib. These are + * used to make accesses to environment variables thread safe. The default HAL + * configuration is single threaded, so there is nothing to do here. Note that + * this requires that environment variables are never manipulated by an interrupt + * service routine. + */ + +void __env_lock ( struct _reent *_r ) +{ +} + +/* + * + */ + +void __env_unlock ( struct _reent *_r ) +{ +} diff --git a/software/qsys_tutorial_bsp/HAL/src/alt_environ.c b/software/qsys_tutorial_bsp/HAL/src/alt_environ.c new file mode 100644 index 0000000..404efc4 --- /dev/null +++ b/software/qsys_tutorial_bsp/HAL/src/alt_environ.c @@ -0,0 +1,42 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "os/alt_syscall.h" + +/* + * These are the environment variables passed to the C code. By default there + * are no variables registered. An application can manipulate this list using + * getenv() and setenv(). + */ + +char *__env[1] = { 0 }; +char **ALT_ENVIRON = __env; diff --git a/software/qsys_tutorial_bsp/HAL/src/alt_errno.c b/software/qsys_tutorial_bsp/HAL/src/alt_errno.c new file mode 100644 index 0000000..1d8368d --- /dev/null +++ b/software/qsys_tutorial_bsp/HAL/src/alt_errno.c @@ -0,0 +1,44 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/* + * This file defines the alt_errno global variable. See comments in + * alt_errno.h for the use of this variable. + */ + + +#include "sys/alt_errno.h" +#include "alt_types.h" + +extern int ALT_WEAK *__errno (void); + +int* (*alt_errno) (void) = __errno; diff --git a/software/qsys_tutorial_bsp/HAL/src/alt_exception_entry.S b/software/qsys_tutorial_bsp/HAL/src/alt_exception_entry.S new file mode 100644 index 0000000..3afab93 --- /dev/null +++ b/software/qsys_tutorial_bsp/HAL/src/alt_exception_entry.S @@ -0,0 +1,360 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003-2008 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "system.h" + +/* + * This is the exception entry point code, which saves all the caller saved + * registers and then handles the appropriate exception. It should be pulled + * in using a .globl from all the exception handler routines. This scheme is + * used so that if an interrupt is never registered, then this code will not + * appear in the generated executable, thereby improving code footprint. + * + * If an external interrpt controller (EIC) is present, it will supply an + * interrupt vector address to the processor when an interrupt occurs. For + * The Altera Vectored Interrupt Controller (VIC) driver will establish a + * vector table and the processor will jump directly to the appropriate + * table entry, funnel routine, and then user ISR. This will bypass this code + * in entirety. This code might still be linked into a system with an EIC, + * but would then be used only for non-interrupt exceptions. + */ + + /* + * Explicitly allow the use of r1 (the assembler temporary register) + * within this code. This register is normally reserved for the use of + * the assembler. + */ + .set noat + + /* + * The top and bottom of the exception stack + */ +#ifdef ALT_EXCEPTION_STACK + + .globl __alt_exception_stack_pointer + +#ifdef ALT_STACK_CHECK + + .globl __alt_exception_stack_limit + + /* + * We need to store the value of the stack limit after interrupt somewhere. + */ + .globl alt_exception_old_stack_limit + +#endif +#endif + + .section .exceptions.entry.label, "xa" + + .globl alt_exception + .type alt_exception, @function +alt_exception: + + .section .exceptions.entry, "xa" + +#ifdef ALT_EXCEPTION_STACK + +#ifdef ALT_STACK_CHECK + stw et, %gprel(alt_exception_old_stack_limit)(gp) +#endif + + movhi et, %hiadj(__alt_exception_stack_pointer - 80) + addi et, et, %lo(__alt_exception_stack_pointer - 80) + stw sp, 76(et) + mov sp, et + +#ifdef ALT_STACK_CHECK + movhi et, %hiadj(__alt_exception_stack_limit) + addi et, et, %lo(__alt_exception_stack_limit) + stw et, %gprel(alt_stack_limit_value)(gp) +#endif + +#else + /* + * Process an exception. For all exceptions we must preserve all + * caller saved registers on the stack (See the Nios2 ABI + * documentation for details). + */ + + addi sp, sp, -76 + +#ifdef ALT_STACK_CHECK + + bltu sp, et, .Lstack_overflow + +#endif + +#endif + + stw ra, 0(sp) + + /* + * Leave a gap in the stack frame at 4(sp) for the muldiv handler to + * store zero into. + */ + + stw r1, 8(sp) + stw r2, 12(sp) + stw r3, 16(sp) + stw r4, 20(sp) + stw r5, 24(sp) + stw r6, 28(sp) + stw r7, 32(sp) + + rdctl r5, estatus + + stw r8, 36(sp) + stw r9, 40(sp) + stw r10, 44(sp) + stw r11, 48(sp) + stw r12, 52(sp) + stw r13, 56(sp) + stw r14, 60(sp) + stw r15, 64(sp) + + /* + * ea-4 contains the address of the instruction being executed + * when the exception occured. For interrupt exceptions, we will + * will be re-issue the isntruction. Store it in 72(sp) + */ + stw r5, 68(sp) /* estatus */ + addi r15, ea, -4 /* instruction that caused exception */ + stw r15, 72(sp) + + /* + * The interrupt testing code (.exceptions.irqtest) will be + * linked here. If the Internal Interrupt Controller (IIC) is + * present (an EIC is not present), the presense of an interrupt + * is determined by examining CPU control registers or an interrupt + * custom instruction, if present. + * + * If the IIC is used and an interrupt is active, the code linked + * here will call the HAL IRQ handler (alt_irq_handler()) which + * successively calls registered interrupt handler(s) until no + * interrupts remain pending. It then jumps to .exceptions.exit. If + * there is no interrupt then it continues to .exception.notirq, below. + */ + + .section .exceptions.notirq, "xa" + + /* + * Prepare to service unimplemtned instructions or traps, + * each of which is optionally inked into section .exceptions.soft, + * which will preceed .exceptions.unknown below. + * + * Unlike interrupts, we want to skip the exception-causing instructon + * upon completion, so we write ea (address of instruction *after* + * the one where the exception occured) into 72(sp). The actual + * instruction that caused the exception is written in r2, which these + * handlers will utilize. + */ + stw ea, 72(sp) /* Don't re-issue */ + ldw r2, -4(ea) /* Instruction that caused exception */ + + /* + * Other exception handling code, if enabled, will be linked here. + * This includes unimplemted (multiply/divide) instruction support + * (a BSP generaton option), and a trap handler (that would typically + * be augmented with user-specific code). These are not linked in by + * default. + */ + + /* + * In the context of linker sections, "unknown" are all exceptions + * not handled by the built-in handlers above (interupt, and trap or + * unimplemented instruction decoding, if enabled). + * + * Advanced exception types can be serviced by registering a handler. + * To do so, enable the "Enable Instruction-related Exception API" HAL + * BSP setting. If this setting is disabled, this handler code will + * either break (if the debug core is present) or enter an infinite + * loop because we don't how how to handle the exception. + */ + .section .exceptions.unknown +#ifdef ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API + /* + * The C-based HAL routine alt_instruction_exception_entry() will + * attempt to service the exception by calling a user-registered + * exception handler using alt_instruction_exception_register(). + * If no handler was registered it will either break (if the + * debugger is present) or go into an infinite loop since the + * handling behavior is undefined; in that case we will not return here. + */ + + /* Load exception-causing address as first argument (r4) */ + addi r4, ea, -4 + + /* Call the instruction-exception entry */ + call alt_instruction_exception_entry + + /* + * If alt_instruction_exception_entry() returned, the exception was + * serviced by a user-registered routine. Its return code (now in r2) + * indicates whether to re-issue or skip the exception-causing + * instruction + * + * Return code was 0: Skip. The instruction after the exception is + * already stored in 72(sp). + */ + bne r2, r0, .Lexception_exit + + /* + * Otherwise, modify 72(sp) to re-issue the instruction that caused the + * exception. + */ + addi r15, ea, -4 /* instruction that caused exception */ + stw r15, 72(sp) + +#else /* ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API disabled */ + + /* + * We got here because an instruction-related exception occured, but the + * handler API was not compiled in. We do not presume to know how to + * handle it. If the debugger is present, break, otherwise hang. + * + * If you get here then one of the following could have happened: + * + * - An instruction-generated exception occured, and the processor + * does not have the extra exceptions feature enabled, or you + * have not registered a handler using + * alt_instruction_exception_register() + * + * Some examples of instruction-generated exceptions and why they + * might occur: + * + * - Your program could have been compiled for a full-featured + * Nios II core, but it is running on a smaller core, and + * instruction emulation has been disabled by defining + * ALT_NO_INSTRUCTION_EMULATION. + * + * You can work around the problem by re-enabling instruction + * emulation, or you can figure out why your program is being + * compiled for a system other than the one that it is running on. + * + * - Your program has executed a trap instruction, but has not + * implemented a handler for this instruction. + * + * - Your program has executed an illegal instruction (one which is + * not defined in the instruction set). + * + * - Your processor includes an MMU or MPU, and you have enabled it + * before registering an exception handler to service exceptions it + * generates. + * + * The problem could also be hardware related: + * - If your hardware is broken and is generating spurious interrupts + * (a peripheral which negates its interrupt output before its + * interrupt handler has been executed will cause spurious + * interrupts) + */ +#ifdef NIOS2_HAS_DEBUG_STUB + /* + * Either tell the user now (if there is a debugger attached) or go into + * the debug monitor which will loop until a debugger is attached. + */ + break +#else + /* + * If there is no debug stub then a BREAK will probably cause a reboot. + * An infinate loop will probably be more useful. + */ +0: + br 0b +#endif /* NIOS2_HAS_DEBUG_STUB */ + +#endif /* ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API */ + + .section .exceptions.exit.label +.Lexception_exit: + + .section .exceptions.exit, "xa" + + /* + * Restore the saved registers, so that all general purpose registers + * have been restored to their state at the time the interrupt occured. + */ + + ldw r5, 68(sp) + ldw ea, 72(sp) /* This becomes the PC once eret is executed */ + ldw ra, 0(sp) + + wrctl estatus, r5 + + ldw r1, 8(sp) + ldw r2, 12(sp) + ldw r3, 16(sp) + ldw r4, 20(sp) + ldw r5, 24(sp) + ldw r6, 28(sp) + ldw r7, 32(sp) + +#ifdef ALT_EXCEPTION_STACK +#ifdef ALT_STACK_CHECK + ldw et, %gprel(alt_exception_old_stack_limit)(gp) +#endif +#endif + + ldw r8, 36(sp) + ldw r9, 40(sp) + ldw r10, 44(sp) + ldw r11, 48(sp) + ldw r12, 52(sp) + ldw r13, 56(sp) + ldw r14, 60(sp) + ldw r15, 64(sp) + +#ifdef ALT_EXCEPTION_STACK + +#ifdef ALT_STACK_CHECK + stw et, %gprel(alt_stack_limit_value)(gp) + stw zero, %gprel(alt_exception_old_stack_limit)(gp) +#endif + + ldw sp, 76(sp) + +#else + addi sp, sp, 76 + +#endif + + /* + * Return to the interrupted instruction. + */ + + eret + +#ifdef ALT_STACK_CHECK + +.Lstack_overflow: + break 3 + +#endif + diff --git a/software/qsys_tutorial_bsp/HAL/src/alt_exception_muldiv.S b/software/qsys_tutorial_bsp/HAL/src/alt_exception_muldiv.S new file mode 100644 index 0000000..55617a6 --- /dev/null +++ b/software/qsys_tutorial_bsp/HAL/src/alt_exception_muldiv.S @@ -0,0 +1,583 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003-2005 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + + /* + * This is the software multiply/divide handler for Nios2. + */ + + /* + * Provide a label which can be used to pull this file in. + */ + + .section .exceptions.start + .globl alt_exception_muldiv +alt_exception_muldiv: + + /* + * Pull in the entry/exit code. + */ + .globl alt_exception + + + .section .exceptions.soft, "xa" + + + /* INSTRUCTION EMULATION + * --------------------- + * + * Nios II processors generate exceptions for unimplemented instructions. + * The routines below emulate these instructions. Depending on the + * processor core, the only instructions that might need to be emulated + * are div, divu, mul, muli, mulxss, mulxsu, and mulxuu. + * + * The emulations match the instructions, except for the following + * limitations: + * + * 1) The emulation routines do not emulate the use of the exception + * temporary register (et) as a source operand because the exception + * handler already has modified it. + * + * 2) The routines do not emulate the use of the stack pointer (sp) or the + * exception return address register (ea) as a destination because + * modifying these registers crashes the exception handler or the + * interrupted routine. + * + * 3) To save code size, the routines do not emulate the use of the + * breakpoint registers (ba and bt) as operands. + * + * Detailed Design + * --------------- + * + * The emulation routines expect the contents of integer registers r0-r31 + * to be on the stack at addresses sp, 4(sp), 8(sp), ... 124(sp). The + * routines retrieve source operands from the stack and modify the + * destination register's value on the stack prior to the end of the + * exception handler. Then all registers except the destination register + * are restored to their previous values. + * + * The instruction that causes the exception is found at address -4(ea). + * The instruction's OP and OPX fields identify the operation to be + * performed. + * + * One instruction, muli, is an I-type instruction that is identified by + * an OP field of 0x24. + * + * muli AAAAA,BBBBB,IIIIIIIIIIIIIIII,-0x24- + * 27 22 6 0 <-- LSB of field + * + * The remaining emulated instructions are R-type and have an OP field + * of 0x3a. Their OPX fields identify them. + * + * R-type AAAAA,BBBBB,CCCCC,XXXXXX,NNNNN,-0x3a- + * 27 22 17 11 6 0 <-- LSB of field + * + * + */ + + + /* + * Split the instruction into its fields. We need 4*A, 4*B, and 4*C as + * offsets to the stack pointer for access to the stored register values. + */ + /* r2 = AAAAA,BBBBB,IIIIIIIIIIIIIIII,PPPPPP */ + roli r3, r2, 7 /* r3 = BBB,IIIIIIIIIIIIIIII,PPPPPP,AAAAA,BB */ + roli r4, r3, 3 /* r4 = IIIIIIIIIIIIIIII,PPPPPP,AAAAA,BBBBB */ + roli r6, r4, 2 /* r6 = IIIIIIIIIIIIII,PPPPPP,AAAAA,BBBBB,II */ + srai r4, r4, 16 /* r4 = (sign-extended) IMM16 */ + xori r6, r6, 0x42 /* r6 = CCC,XXXXXX,NNNNN,PPPPPP,AAAAA,bBBBB,cC */ + roli r7, r6, 5 /* r7 = XXXX,NNNNN,PPPPPP,AAAAA,bBBBB,cCCCC,XX */ + andi r5, r2, 0x3f /* r5 = 00000000000000000000000000,PPPPPP */ + xori r3, r3, 0x40 + andi r3, r3, 0x7c /* r3 = 0000000000000000000000000,aAAAA,00 */ + andi r6, r6, 0x7c /* r6 = 0000000000000000000000000,bBBBB,00 */ + andi r7, r7, 0x7c /* r7 = 0000000000000000000000000,cCCCC,00 */ + + /* Now either + * r5 = OP + * r3 = 4*(A^16) + * r4 = IMM16 (sign extended) + * r6 = 4*(B^16) + * r7 = 4*(C^16) + * or + * r5 = OP + */ + + + /* + * Save everything on the stack to make it easy for the emulation routines + * to retrieve the source register operands. The exception entry code has + * already saved some of this so we don't need to do it all again. + */ + + addi sp, sp, -60 + stw zero, 64(sp) /* Save zero on stack to avoid special case for r0. */ + /* Register at and r2-r15 have already been saved. */ + + stw r16, 0(sp) + stw r17, 4(sp) + stw r18, 8(sp) + stw r19, 12(sp) + stw r20, 16(sp) + stw r21, 20(sp) + stw r22, 24(sp) + stw r23, 28(sp) + /* et @ 32 - Has already been changed.*/ + /* bt @ 36 - Usually isn't an operand. */ + stw gp, 40(sp) + stw sp, 44(sp) + stw fp, 48(sp) + /* ea @ 52 - Don't bother to save - it's already been changed */ + /* ba @ 56 - Breakpoint register usually isn't an operand */ + /* ra @ 60 - Has already been saved */ + + + /* + * Prepare for either multiplication or division loop. + * They both loop 32 times. + */ + movi r14, 32 + + + /* + * Get the operands. + * + * It is necessary to check for muli because it uses an I-type instruction + * format, while the other instructions are have an R-type format. + */ + add r3, r3, sp /* r3 = address of A-operand. */ + ldw r3, 0(r3) /* r3 = A-operand. */ + movi r15, 0x24 /* muli opcode (I-type instruction format) */ + beq r5, r15, .Lmul_immed /* muli doesn't use the B register as a source */ + + add r6, r6, sp /* r6 = address of B-operand. */ + ldw r6, 0(r6) /* r6 = B-operand. */ + /* r4 = SSSSSSSSSSSSSSSS,-----IMM16------ */ + /* IMM16 not needed, align OPX portion */ + /* r4 = SSSSSSSSSSSSSSSS,CCCCC,-OPX--,00000 */ + srli r4, r4, 5 /* r4 = 00000,SSSSSSSSSSSSSSSS,CCCCC,-OPX-- */ + andi r4, r4, 0x3f /* r4 = 00000000000000000000000000,-OPX-- */ + + /* Now + * r5 = OP + * r3 = src1 + * r6 = src2 + * r4 = OPX (no longer can be muli) + * r7 = 4*(C^16) + * r14 = loop counter + */ + + /* ILLEGAL-INSTRUCTION EXCEPTION + * ----------------------------- + * + * This code is for Nios II cores that generate exceptions when attempting + * to execute illegal instructions. Nios II cores that support an + * illegal-instruction exception are identified by the presence of the + * macro definition NIOS2_HAS_ILLEGAL_INSTRUCTION_EXCEPTION in system.h . + * + * Remember that illegal instructions are different than unimplemented + * instructions. Illegal instructions are instruction encodings that + * have not been defined by the Nios II ISA. Unimplemented instructions + * are legal instructions that must be emulated by some Nios II cores. + * + * If we get here, all instructions except multiplies and divides + * are illegal. + * + * This code assumes that OP is not muli (because muli was tested above). + * All other multiplies and divides are legal. Anything else is illegal. + */ + + movi r8, 0x3a /* OP for R-type mul* and div* */ + bne r5, r8, .Lnot_muldiv + + /* r15 already is 0x24 */ /* OPX of divu */ + beq r4, r15, .Ldivide + + movi r15,0x27 /* OPX of mul */ + beq r4, r15, .Lmultiply + + movi r15,0x07 /* OPX of mulxuu */ + beq r4, r15, .Lmultiply + + movi r15,0x17 /* OPX of mulxsu */ + beq r4, r15, .Lmultiply + + movi r15,0x1f /* OPX of mulxss */ + beq r4, r15, .Lmultiply + + movi r15,0x25 /* OPX of div */ + bne r4, r15, .Lnot_muldiv + + + /* DIVISION + * + * Divide an unsigned dividend by an unsigned divisor using + * a shift-and-subtract algorithm. The example below shows + * 43 div 7 = 6 for 8-bit integers. This classic algorithm uses a + * single register to store both the dividend and the quotient, + * allowing both values to be shifted with a single instruction. + * + * remainder dividend:quotient + * --------- ----------------- + * initialize 00000000 00101011: + * shift 00000000 0101011:_ + * remainder >= divisor? no 00000000 0101011:0 + * shift 00000000 101011:0_ + * remainder >= divisor? no 00000000 101011:00 + * shift 00000001 01011:00_ + * remainder >= divisor? no 00000001 01011:000 + * shift 00000010 1011:000_ + * remainder >= divisor? no 00000010 1011:0000 + * shift 00000101 011:0000_ + * remainder >= divisor? no 00000101 011:00000 + * shift 00001010 11:00000_ + * remainder >= divisor? yes 00001010 11:000001 + * remainder -= divisor - 00000111 + * ---------- + * 00000011 11:000001 + * shift 00000111 1:000001_ + * remainder >= divisor? yes 00000111 1:0000011 + * remainder -= divisor - 00000111 + * ---------- + * 00000000 1:0000011 + * shift 00000001 :0000011_ + * remainder >= divisor? no 00000001 :00000110 + * + * The quotient is 00000110. + */ + +.Ldivide: + /* + * Prepare for division by assuming the result + * is unsigned, and storing its "sign" as 0. + */ + movi r17, 0 + + + /* Which division opcode? */ + xori r15, r4, 0x25 /* OPX of div */ + bne r15, zero, .Lunsigned_division + + + /* + * OPX is div. Determine and store the sign of the quotient. + * Then take the absolute value of both operands. + */ + xor r17, r3, r6 /* MSB contains sign of quotient */ + bge r3, zero, 0f + sub r3, zero, r3 /* -r3 */ +0: + bge r6, zero, 0f + sub r6, zero, r6 /* -r6 */ +0: + + +.Lunsigned_division: + /* Initialize the unsigned-division loop. */ + movi r13, 0 /* remainder = 0 */ + + /* Now + * r3 = dividend : quotient + * r4 = 0x25 for div, 0x24 for divu + * r6 = divisor + * r13 = remainder + * r14 = loop counter (already initialized to 32) + * r17 = MSB contains sign of quotient + */ + + + /* + * for (count = 32; count > 0; --count) + * { + */ +.Ldivide_loop: + + /* + * Division: + * + * (remainder:dividend:quotient) <<= 1; + */ + slli r13, r13, 1 + cmplt r15, r3, zero /* r15 = MSB of r3 */ + or r13, r13, r15 + slli r3, r3, 1 + + + /* + * if (remainder >= divisor) + * { + * set LSB of quotient + * remainder -= divisor; + * } + */ + bltu r13, r6, .Ldiv_skip + ori r3, r3, 1 + sub r13, r13, r6 +.Ldiv_skip: + + /* + * } + */ + subi r14, r14, 1 + bne r14, zero, .Ldivide_loop + + mov r9, r3 + + + /* Now + * r9 = quotient + * r4 = 0x25 for div, 0x24 for divu + * r7 = 4*(C^16) + * r17 = MSB contains sign of quotient + */ + + + /* + * Conditionally negate signed quotient. If quotient is unsigned, + * the sign already is initialized to 0. + */ + bge r17, zero, .Lstore_result + sub r9, zero, r9 /* -r9 */ + + br .Lstore_result + + + + + /* MULTIPLICATION + * + * A "product" is the number that one gets by summing a "multiplicand" + * several times. The "multiplier" specifies the number of copies of the + * multiplicand that are summed. + * + * Actual multiplication algorithms don't use repeated addition, however. + * Shift-and-add algorithms get the same answer as repeated addition, and + * they are faster. To compute the lower half of a product (pppp below) + * one shifts the product left before adding in each of the partial products + * (a * mmmm) through (d * mmmm). + * + * To compute the upper half of a product (PPPP below), one adds in the + * partial products (d * mmmm) through (a * mmmm), each time following the + * add by a right shift of the product. + * + * mmmm + * * abcd + * ------ + * #### = d * mmmm + * #### = c * mmmm + * #### = b * mmmm + * #### = a * mmmm + * -------- + * PPPPpppp + * + * The example above shows 4 partial products. Computing actual Nios II + * products requires 32 partials. + * + * It is possible to compute the result of mulxsu from the result of mulxuu + * because the only difference between the results of these two opcodes is + * the value of the partial product associated with the sign bit of rA. + * + * mulxsu = mulxuu - ((rA < 0) ? rB : 0); + * + * It is possible to compute the result of mulxss from the result of mulxsu + * because the only difference between the results of these two opcodes is + * the value of the partial product associated with the sign bit of rB. + * + * mulxss = mulxsu - ((rB < 0) ? rA : 0); + * + */ + +.Lmul_immed: + /* Opcode is muli. Change it into mul for remainder of algorithm. */ + mov r7, r6 /* Field B is dest register, not field C. */ + mov r6, r4 /* Field IMM16 is src2, not field B. */ + movi r4, 0x27 /* OPX of mul is 0x27 */ + +.Lmultiply: + /* Initialize the multiplication loop. */ + movi r9, 0 /* mul_product = 0 */ + movi r10, 0 /* mulxuu_product = 0 */ + mov r11, r6 /* save original multiplier for mulxsu and mulxss */ + mov r12, r6 /* mulxuu_multiplier (will be shifted) */ + movi r16, 1 /* used to create "rori B,A,1" from "ror B,A,r16" */ + + /* Now + * r3 = multiplicand + * r6 = mul_multiplier + * r7 = 4 * dest_register (used later as offset to sp) + * r9 = mul_product + * r10 = mulxuu_product + * r11 = original multiplier + * r12 = mulxuu_multiplier + * r14 = loop counter (already initialized) + * r15 = temp + * r16 = 1 + */ + + + /* + * for (count = 32; count > 0; --count) + * { + */ +.Lmultiply_loop: + + /* + * mul_product <<= 1; + * lsb = multiplier & 1; + */ + slli r9, r9, 1 + andi r15, r12, 1 + + /* + * if (lsb == 1) + * { + * mulxuu_product += multiplicand; + * } + */ + beq r15, zero, .Lmulx_skip + add r10, r10, r3 + cmpltu r15, r10, r3 /* Save the carry from the MSB of mulxuu_product. */ + ror r15, r15, r16 /* r15 = 0x80000000 on carry, or else 0x00000000 */ +.Lmulx_skip: + + /* + * if (MSB of mul_multiplier == 1) + * { + * mul_product += multiplicand; + * } + */ + bge r6, zero, .Lmul_skip + add r9, r9, r3 +.Lmul_skip: + + /* + * mulxuu_product >>= 1; logical shift + * mul_multiplier <<= 1; done with MSB + * mulx_multiplier >>= 1; done with LSB + */ + srli r10, r10, 1 + or r10, r10, r15 /* OR in the saved carry bit. */ + slli r6, r6, 1 + srli r12, r12, 1 + + + /* + * } + */ + subi r14, r14, 1 + bne r14, zero, .Lmultiply_loop + + + /* + * Multiply emulation loop done. + */ + + /* Now + * r3 = multiplicand + * r4 = OPX + * r7 = 4 * dest_register (used later as offset to sp) + * r9 = mul_product + * r10 = mulxuu_product + * r11 = original multiplier + * r15 = temp + */ + + + /* + * Select/compute the result based on OPX. + */ + + + /* OPX == mul? Then store. */ + xori r15, r4, 0x27 + beq r15, zero, .Lstore_result + + /* It's one of the mulx.. opcodes. Move over the result. */ + mov r9, r10 + + /* OPX == mulxuu? Then store. */ + xori r15, r4, 0x07 + beq r15, zero, .Lstore_result + + /* Compute mulxsu + * + * mulxsu = mulxuu - ((rA < 0) ? rB : 0); + */ + bge r3, zero, .Lmulxsu_skip + sub r9, r9, r11 +.Lmulxsu_skip: + + /* OPX == mulxsu? Then store. */ + xori r15, r4, 0x17 + beq r15, zero, .Lstore_result + + /* Compute mulxss + * + * mulxss = mulxsu - ((rB < 0) ? rA : 0); + */ + bge r11, zero, .Lmulxss_skip + sub r9, r9, r3 +.Lmulxss_skip: + /* At this point, assume that OPX is mulxss, so store */ + + +.Lstore_result: + add r7, r7, sp + stw r9, 0(r7) + + ldw r16, 0(sp) + ldw r17, 4(sp) + ldw r18, 8(sp) + ldw r19, 12(sp) + ldw r20, 16(sp) + ldw r21, 20(sp) + ldw r22, 24(sp) + ldw r23, 28(sp) + + /* bt @ 32 - Breakpoint register usually isn't an operand. */ + /* et @ 36 - Don't corrupt et. */ + /* gp @ 40 - Don't corrupt gp. */ + /* sp @ 44 - Don't corrupt sp. */ + ldw fp, 48(sp) + /* ea @ 52 - Don't corrupt ea. */ + /* ba @ 56 - Breakpoint register usually isn't an operand. */ + + addi sp, sp, 60 + + br .Lexception_exit + + +.Lnot_muldiv: + + addi sp, sp, 60 + + + .section .exceptions.exit.label +.Lexception_exit: + diff --git a/software/qsys_tutorial_bsp/HAL/src/alt_exception_trap.S b/software/qsys_tutorial_bsp/HAL/src/alt_exception_trap.S new file mode 100644 index 0000000..60a3d40 --- /dev/null +++ b/software/qsys_tutorial_bsp/HAL/src/alt_exception_trap.S @@ -0,0 +1,81 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003-2005 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + + /* + * This is the trap exception handler for Nios2. + */ + + /* + * Provide a label which can be used to pull this file in. + */ + + .section .exceptions.start + .globl alt_exception_trap +alt_exception_trap: + + /* + * Pull in the entry/exit code. + */ + .globl alt_exception + + .section .exceptions.soft, "xa" + +.Ltrap_handler: + + /* + * Did a trap instruction cause the exception? + * + * The instruction which the exception occurred on has been loaded + * into r2 by code in alt_exception_entry.S + * + */ + + movhi r3,0x003b /* upper half of trap opcode */ + ori r3,r3,0x683a /* lower half of trap opcode */ + bne r2,r3,.Lnot_trap + + /* + * There is no trap handler defined here, and so executing a trap + * instruction causes a software break. If you provide a trap handler, + * then you must replace the break instruction below with your handler. + * Your handler must preserve ea and the usual callee saved registers. + */ + + break + + br .Lexception_exit + +.Lnot_trap: + + + .section .exceptions.exit.label +.Lexception_exit: + + diff --git a/software/qsys_tutorial_bsp/HAL/src/alt_execve.c b/software/qsys_tutorial_bsp/HAL/src/alt_execve.c new file mode 100644 index 0000000..27b99cf --- /dev/null +++ b/software/qsys_tutorial_bsp/HAL/src/alt_execve.c @@ -0,0 +1,55 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_errno.h" +#include "sys/alt_warning.h" +#include "os/alt_syscall.h" + +/* + * execve() is used by newlib to launch new processes. This is unsupported in + * the HAL environment. However a "do-nothing" implementation is still + * provied for newlib compatability. + * + * ALT_EXECVE is mapped onto the execve() system call in alt_syscall.h + */ + +int ALT_EXECVE (char *name, char ** argv, char** env) +{ + /* Generate a link time warning, should this function ever be called. */ + + ALT_STUB_WARNING(execve); + + /* Indicate an error */ + + ALT_ERRNO = ENOSYS; + return -1; +} diff --git a/software/qsys_tutorial_bsp/HAL/src/alt_exit.c b/software/qsys_tutorial_bsp/HAL/src/alt_exit.c new file mode 100644 index 0000000..971b35e --- /dev/null +++ b/software/qsys_tutorial_bsp/HAL/src/alt_exit.c @@ -0,0 +1,71 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_irq.h" +#include "sys/alt_sim.h" +#include "os/alt_hooks.h" +#include "os/alt_syscall.h" + +#include "alt_types.h" +#include "sys/alt_log_printf.h" +/* + * _exit() is called by exit() in order to terminate the current process. + * Typically this is called when main() completes. It should never return. + * Since there is nowhere to go once this process completes, this + * implementation simply blocks forever. + * + * Note that interrupts are not disabled so that execution outside of this + * thread is allowed to continue. + * + * ALT_EXIT is mapped onto the _exit() system call in alt_syscall.h + */ + +void ALT_EXIT (int exit_code) +{ + /* ALT_LOG - please see HAL/inc/alt_log_printf.h for details */ + ALT_LOG_PRINT_BOOT("[alt_exit.c] Entering _exit() function.\r\n"); + ALT_LOG_PRINT_BOOT("[alt_exit.c] Exit code from main was %d.\r\n",exit_code); + /* Stop all other threads */ + + ALT_LOG_PRINT_BOOT("[alt_exit.c] Calling ALT_OS_STOP().\r\n"); + ALT_OS_STOP(); + + /* Provide notification to the simulator that we've stopped */ + + ALT_LOG_PRINT_BOOT("[alt_exit.c] Calling ALT_SIM_HALT().\r\n"); + ALT_SIM_HALT(exit_code); + + /* spin forever, since there's no where to go back to */ + + ALT_LOG_PRINT_BOOT("[alt_exit.c] Spinning forever.\r\n"); + while (1); +} diff --git a/software/qsys_tutorial_bsp/HAL/src/alt_fcntl.c b/software/qsys_tutorial_bsp/HAL/src/alt_fcntl.c new file mode 100644 index 0000000..69c1544 --- /dev/null +++ b/software/qsys_tutorial_bsp/HAL/src/alt_fcntl.c @@ -0,0 +1,101 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include + +#include +#include + +#include "sys/alt_errno.h" +#include "priv/alt_file.h" +#include "alt_types.h" +#include "os/alt_syscall.h" + +#define ALT_FCNTL_FLAGS_MASK ((alt_u32) (O_APPEND | O_NONBLOCK)) + +/* + * fcntl() is a limited implementation of the standard fcntl() system call. + * It can be used to change the state of the flags associated with an open + * file descriptor. Normally these flags are set during the call to + * open(). It is anticipated that the main use of this function will be to + * change the state of a device from blocking to non-blocking (where this is + * supported). + * + * The input argument "fd" is the file descriptor to be manipulated. "cmd" + * is the command to execute. This can be either F_GETFL (return the + * current value of the flags) or F_SETFL (set the value of the flags). + * + * If "cmd" is F_SETFL then the argument "arg" is the new value of flags, + * otherwise "arg" is ignored. Only the flags: O_APPEND and O_NONBLOCK + * can be updated by a call to fcntl(). All other flags remain + * unchanged. + * + * ALT_FCNTL is mapped onto the fcntl() system call in alt_syscall.h + */ + +int ALT_FCNTL (int file, int cmd, ...) +{ + alt_fd* fd; + long flags; + va_list argp; + + /* + * A common error case is that when the file descriptor was created, the call + * to open() failed resulting in a negative file descriptor. This is trapped + * below so that we don't try and process an invalid file descriptor. + */ + + fd = (file < 0) ? NULL : &alt_fd_list[file]; + + if (fd) + { + switch (cmd) + { + case F_GETFL: + return fd->fd_flags & ~((alt_u32) ALT_FD_FLAGS_MASK); + case F_SETFL: + va_start(argp, cmd); + flags = va_arg(argp, long); + fd->fd_flags &= ~ALT_FCNTL_FLAGS_MASK; + fd->fd_flags |= (flags & ALT_FCNTL_FLAGS_MASK); + va_end(argp); + return 0; + default: + ALT_ERRNO = EINVAL; + return -1; + } + } + + ALT_ERRNO = EBADFD; + return -1; +} diff --git a/software/qsys_tutorial_bsp/HAL/src/alt_fd_lock.c b/software/qsys_tutorial_bsp/HAL/src/alt_fd_lock.c new file mode 100644 index 0000000..0e2a85d --- /dev/null +++ b/software/qsys_tutorial_bsp/HAL/src/alt_fd_lock.c @@ -0,0 +1,75 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +#include "priv/alt_file.h" + +/* + * alt_fd_lock() is called as a consequence of an ioctl call to gain exclusive + * access to a device, i.e.: + * + * ioctl (fd, TIOCEXCL, NULL); + * + * If there are no other open file descriptors which reference the same + * device, then alt_fd_lock() will grant the lock. Further calls to open() + * for this device will fail until the lock is released. + * + * This is done by calling close() for this file descriptor, or by calling: + * + * ioctl (fd, TIOCNXCL, NULL); + * + * The return value is zero for success, or negative in the case of failure. + */ + +int alt_fd_lock (alt_fd* fd) +{ + int i; + int rc = 0; + + ALT_SEM_PEND(alt_fd_list_lock, 0); + + for (i = 0; i < alt_max_fd; i++) + { + if ((&alt_fd_list[i] != fd) && (alt_fd_list[i].dev == fd->dev)) + { + rc = -EACCES; + goto alt_fd_lock_exit; + } + } + fd->fd_flags |= ALT_FD_EXCL; + + alt_fd_lock_exit: + + ALT_SEM_POST(alt_fd_list_lock); + return rc; +} diff --git a/software/qsys_tutorial_bsp/HAL/src/alt_fd_unlock.c b/software/qsys_tutorial_bsp/HAL/src/alt_fd_unlock.c new file mode 100644 index 0000000..fb700dc --- /dev/null +++ b/software/qsys_tutorial_bsp/HAL/src/alt_fd_unlock.c @@ -0,0 +1,56 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +#include "priv/alt_file.h" + +/* + * alt_fd_unlock() is the inverse of alt_fd_lock(). It is called as a + * consequence of a TIOCNXCL ioctl request, e.g: + * + * ioctl (fd, TIOCNXCL, NULL); + * + * It enables multiple file descriptors to exist for the same device. This + * is normally the case, but it may have been disabled by a previous call to + * alt_fd_lock(). + * + * Return zero on sucess, and a negative value on failure. + * + * The current implementation always succeeds. + */ + +int alt_fd_unlock (alt_fd* fd) +{ + fd->fd_flags &= ~ALT_FD_EXCL; + return 0; +} diff --git a/software/qsys_tutorial_bsp/HAL/src/alt_find_dev.c b/software/qsys_tutorial_bsp/HAL/src/alt_find_dev.c new file mode 100644 index 0000000..37aefa4 --- /dev/null +++ b/software/qsys_tutorial_bsp/HAL/src/alt_find_dev.c @@ -0,0 +1,88 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include +#include + +#include "sys/alt_dev.h" +#include "priv/alt_file.h" + +#include "alt_types.h" + +/* + * alt_find_dev() is used by open() in order to locate a previously registered + * device with the name "name". The input argument "llist" is a pointer to the + * head of the device list to search. + * + * The return value is a pointer to the matching device, or NULL if there is + * no match. + * + * "name" must be an exact match for the devices registered name for a match to + * be found. + */ + +alt_dev* alt_find_dev(const char* name, alt_llist* llist) +{ + alt_dev* next = (alt_dev*) llist->next; + alt_32 len; + + len = strlen(name) + 1; + + /* + * Check each list entry in turn, until a match is found, or we reach the + * end of the list (i.e. next winds up pointing back to the list head). + */ + + while (next != (alt_dev*) llist) + { + + /* + * memcmp() is used here rather than strcmp() in order to reduce the size + * of the executable. + */ + + if (!memcmp (next->name, name, len)) + { + /* match found */ + + return next; + } + next = (alt_dev*) next->llist.next; + } + + /* No match found */ + + return NULL; +} + + diff --git a/software/qsys_tutorial_bsp/HAL/src/alt_find_file.c b/software/qsys_tutorial_bsp/HAL/src/alt_find_file.c new file mode 100644 index 0000000..2d97ec2 --- /dev/null +++ b/software/qsys_tutorial_bsp/HAL/src/alt_find_file.c @@ -0,0 +1,89 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include +#include + +#include "sys/alt_dev.h" +#include "priv/alt_file.h" + +#include "alt_types.h" + +/* + * alt_find_file() is used by open() in order to locate a previously registered + * filesystem that owns that mount point that contains the file named "name". + * + * The return value is a pointer to the matching filesystem, or NULL if there is + * no match. + * + * A match is considered to have been found if the filesystem name followed by + * either '/' or '\0' is the prefix of the filename. For example the filename: + * "/myfilesystem/junk.txt" would match: "/myfilesystem", but not: "/myfile". + */ + +alt_dev* alt_find_file (const char* name) +{ + alt_dev* next = (alt_dev*) alt_fs_list.next; + + alt_32 len; + + /* + * Check each list entry in turn, until a match is found, or we reach the + * end of the list (i.e. next winds up pointing back to the list head). + */ + + while (next != (alt_dev*) &alt_fs_list) + { + len = strlen(next->name); + + if (next->name[len-1] == '/') + { + len -= 1; + } + + if (((name[len] == '/') || (name[len] == '\0')) && + !memcmp (next->name, name, len)) + { + /* match found */ + + return next; + } + next = (alt_dev*) next->llist.next; + } + + /* No match found */ + + return NULL; +} + + diff --git a/software/qsys_tutorial_bsp/HAL/src/alt_flash_dev.c b/software/qsys_tutorial_bsp/HAL/src/alt_flash_dev.c new file mode 100644 index 0000000..213f721 --- /dev/null +++ b/software/qsys_tutorial_bsp/HAL/src/alt_flash_dev.c @@ -0,0 +1,69 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* Alt_flash.c - Functions to register a flash device to the "generic" flash * +* interface * +* * +* Author PRR * +* * +******************************************************************************/ + +#include +#include "sys/alt_llist.h" +#include "sys/alt_flash_dev.h" +#include "priv/alt_file.h" + +ALT_LLIST_HEAD(alt_flash_dev_list); + +alt_flash_fd* alt_flash_open_dev(const char* name) +{ + alt_flash_dev* dev = (alt_flash_dev*)alt_find_dev(name, &alt_flash_dev_list); + + if ((dev) && dev->open) + { + return dev->open(dev, name); + } + + return dev; +} + +void alt_flash_close_dev(alt_flash_fd* fd) +{ + if (fd && fd->close) + { + fd->close(fd); + } + return; +} + diff --git a/software/qsys_tutorial_bsp/HAL/src/alt_fork.c b/software/qsys_tutorial_bsp/HAL/src/alt_fork.c new file mode 100644 index 0000000..ce74df0 --- /dev/null +++ b/software/qsys_tutorial_bsp/HAL/src/alt_fork.c @@ -0,0 +1,57 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_warning.h" +#include "sys/alt_errno.h" +#include "os/alt_syscall.h" + +/* + * The fork() system call is used by newlib to create a duplicate copy of the + * curent process. This is unsupported in the HAL environment. However a + * "do-nothing" implementation is still provied for newlib compatability. + * + * ALT_FORK is mapped onto the fork() system call in alt_syscall.h + */ + +int ALT_FORK (void) +{ + /* Generate a link time warning, should this function ever be called. */ + + ALT_STUB_WARNING(fork); + + /* Indicate an error */ + + ALT_ERRNO = ENOSYS; + return -1; +} + + diff --git a/software/qsys_tutorial_bsp/HAL/src/alt_fs_reg.c b/software/qsys_tutorial_bsp/HAL/src/alt_fs_reg.c new file mode 100644 index 0000000..13437a1 --- /dev/null +++ b/software/qsys_tutorial_bsp/HAL/src/alt_fs_reg.c @@ -0,0 +1,75 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +#include "sys/alt_dev.h" +#include "priv/alt_file.h" + +/* + * The alt_fs_reg() function is used to register a file system. Once registered + * a device can be accessed using the standard posix calls: open(), read(), + * write() etc. + * + * System behaviour is undefined in the event that a file system is registered + * with a name that conflicts with an existing device or file system. + * + * alt_fs_reg() is not thread safe in the sense that there should be no other + * thread using the file system list at the time that alt_dev_reg() is called. In + * practice this means that alt_fs_reg() should only be called while operating + * in a single threaded mode. The expectation is that it will only be called + * by the file system initilisation functions invoked by alt_sys_init(), which in + * turn should only be called by the single threaded C startup code. + * + * A return value of zero indicates success. A negative return value indicates + * failure. + */ + +int alt_fs_reg (alt_dev* dev) +{ + /* + * check that the device has a name. + */ + + if (!dev->name) + { + return -ENODEV; + } + + /* + * register the file system. + */ + + alt_llist_insert(&alt_fs_list, &dev->llist); + + return 0; +} diff --git a/software/qsys_tutorial_bsp/HAL/src/alt_fstat.c b/software/qsys_tutorial_bsp/HAL/src/alt_fstat.c new file mode 100644 index 0000000..af5d527 --- /dev/null +++ b/software/qsys_tutorial_bsp/HAL/src/alt_fstat.c @@ -0,0 +1,128 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include + +#include "sys/alt_dev.h" +#include "sys/alt_warning.h" +#include "sys/alt_errno.h" +#include "priv/alt_file.h" +#include "os/alt_syscall.h" + +/* + * The fstat() system call is used to obtain information about the capabilities + * of an open file descriptor. By default file descriptors are marked as + * being character devices. If a device or file system wishes to advertise + * alternative capabilities then they can register an fstat() function within + * their associated alt_dev structure. This will be called to fill in the + * entries in the imput "st" structure. + * + * This function is provided for compatability with newlib. + * + * ALT_FSTAT is mapped onto the fstat() system call in alt_syscall.h + */ + +#ifdef ALT_USE_DIRECT_DRIVERS + +#include "system.h" + +/* + * Provide minimal version that just describes all file descriptors + * as character devices for provided stdio devices. + */ +int ALT_FSTAT (int file, struct stat *st) +{ + switch (file) { +#ifdef ALT_STDIN_PRESENT + case 0: /* stdin file descriptor */ +#endif /* ALT_STDIN_PRESENT */ +#ifdef ALT_STDOUT_PRESENT + case 1: /* stdout file descriptor */ +#endif /* ALT_STDOUT_PRESENT */ +#ifdef ALT_STDERR_PRESENT + case 2: /* stderr file descriptor */ +#endif /* ALT_STDERR_PRESENT */ + st->st_mode = _IFCHR; + return 0; + default: + return -1; + } + +#if !defined(ALT_STDIN_PRESENT) && !defined(ALT_STDOUT_PRESENT) && !defined(ALT_STDERR_PRESENT) + /* Generate a link time warning, should this function ever be called. */ + ALT_STUB_WARNING(fstat); +#endif +} + +#else /* !ALT_USE_DIRECT_DRIVERS */ + +int ALT_FSTAT (int file, struct stat *st) +{ + alt_fd* fd; + + /* + * A common error case is that when the file descriptor was created, the call + * to open() failed resulting in a negative file descriptor. This is trapped + * below so that we don't try and process an invalid file descriptor. + */ + + fd = (file < 0) ? NULL : &alt_fd_list[file]; + + if (fd) + { + /* Call the drivers fstat() function to fill out the "st" structure. */ + + if (fd->dev->fstat) + { + return fd->dev->fstat(fd, st); + } + + /* + * If no function is provided, mark the fd as belonging to a character + * device. + */ + + else + { + st->st_mode = _IFCHR; + return 0; + } + } + else + { + ALT_ERRNO = EBADFD; + return -1; + } +} + +#endif /* ALT_USE_DIRECT_DRIVERS */ diff --git a/software/qsys_tutorial_bsp/HAL/src/alt_get_fd.c b/software/qsys_tutorial_bsp/HAL/src/alt_get_fd.c new file mode 100644 index 0000000..db17b2c --- /dev/null +++ b/software/qsys_tutorial_bsp/HAL/src/alt_get_fd.c @@ -0,0 +1,105 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include +#include + +#include "sys/alt_dev.h" +#include "priv/alt_file.h" + +#include "alt_types.h" + +#include "system.h" + +/* + * alt_get_fd() is called to allocate a new file descriptor from the file + * descriptor pool. If a file descriptor is succesfully allocated, it is + * configured to refer to device "dev". + * + * The return value is the index of the file descriptor structure (i.e. + * the offset of the file descriptor within the file descriptor array). A + * negative value indicates failure. + */ + +int alt_get_fd (alt_dev* dev) +{ + alt_32 i; + int rc = -EMFILE; + + /* + * Take the alt_fd_list_lock semaphore in order to avoid races when + * accessing the file descriptor pool. + */ + + ALT_SEM_PEND(alt_fd_list_lock, 0); + + /* + * Search through the list of file descriptors, and allocate the first + * free descriptor that's found. + * + * If a free descriptor is found, then the value of "alt_max_fd" is + * updated accordingly. "alt_max_fd" is a 'highwater mark' which + * indicates the highest file descriptor ever allocated. This is used to + * improve efficency when searching the file descriptor list, and + * therefore reduce contention on the alt_fd_list_lock semaphore. + */ + + for (i = 0; i < ALT_MAX_FD; i++) + { + if (!alt_fd_list[i].dev) + { + alt_fd_list[i].dev = dev; + if (i > alt_max_fd) + { + alt_max_fd = i; + } + rc = i; + goto alt_get_fd_exit; + } + } + + alt_get_fd_exit: + + /* + * Release the alt_fd_list_lock semaphore now that we are done with the + * file descriptor pool. + */ + + ALT_SEM_POST(alt_fd_list_lock); + + return rc; +} + + + + diff --git a/software/qsys_tutorial_bsp/HAL/src/alt_getchar.c b/software/qsys_tutorial_bsp/HAL/src/alt_getchar.c new file mode 100644 index 0000000..a8f50d5 --- /dev/null +++ b/software/qsys_tutorial_bsp/HAL/src/alt_getchar.c @@ -0,0 +1,61 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +#ifdef ALT_USE_DIRECT_DRIVERS +#include "system.h" +#include "sys/alt_driver.h" +#include "sys/alt_stdio.h" +#include "priv/alt_file.h" +#include "unistd.h" +#endif + +/* + * Uses the ALT_DRIVER_READ() macro to call directly to driver if available. + * Otherwise, uses newlib provided getchar() routine. + */ +int +alt_getchar(void) +{ +#ifdef ALT_USE_DIRECT_DRIVERS + ALT_DRIVER_READ_EXTERNS(ALT_STDIN_DEV); + char c; + + if (ALT_DRIVER_READ(ALT_STDIN_DEV, &c, 1, alt_fd_list[STDIN_FILENO].fd_flags) <= 0) { + return -1; + } + return c; +#else + return getchar(); +#endif +} diff --git a/software/qsys_tutorial_bsp/HAL/src/alt_getpid.c b/software/qsys_tutorial_bsp/HAL/src/alt_getpid.c new file mode 100644 index 0000000..2228c7e --- /dev/null +++ b/software/qsys_tutorial_bsp/HAL/src/alt_getpid.c @@ -0,0 +1,47 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "os/alt_syscall.h" + +/* + * The getpid() system call is used by newlib to obtain the current process + * id. Since there is only ever a single process in the HAL environment, + * this just returns a constant. + * + * ALT_GETPID is mapped onto the getpid() system call in alt_syscall.h + */ + +int ALT_GETPID (void) +{ + return 0; +} + diff --git a/software/qsys_tutorial_bsp/HAL/src/alt_gettod.c b/software/qsys_tutorial_bsp/HAL/src/alt_gettod.c new file mode 100644 index 0000000..ed86cba --- /dev/null +++ b/software/qsys_tutorial_bsp/HAL/src/alt_gettod.c @@ -0,0 +1,125 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include +#include + +#include "sys/alt_alarm.h" +#include "alt_types.h" +#include "os/alt_syscall.h" + +/* + * Macro defining the number of micoseconds in a second. + */ + +#define ALT_US (1000000) + +/* + * "alt_timezone" and "alt_resettime" are the values of the the reset time and + * time zone set through the last call to settimeofday(). By default they are + * zero initialised. + */ + +struct timezone alt_timezone = {0, 0}; +struct timeval alt_resettime = {0, 0}; + +/* + * gettimeofday() can be called to obtain a time structure which indicates the + * current "wall clock" time. This is calculated using the elapsed number of + * system clock ticks, and the value of "alt_resettime" and "alt_timezone" set + * through the last call to settimeofday(). + * + * Warning: if this function is called concurrently with a call to + * settimeofday(), the value returned by gettimeofday() will be unreliable. + * + * ALT_GETTIMEOFDAY is mapped onto the gettimeofday() system call in + * alt_syscall.h + */ + + +#if defined (__GNUC__) && (__GNUC__ >= 4) +int ALT_GETTIMEOFDAY (struct timeval *ptimeval, void *ptimezone_vptr) +{ + struct timezone *ptimezone = (struct timezone*)ptimezone_vptr; +#else +int ALT_GETTIMEOFDAY (struct timeval *ptimeval, struct timezone *ptimezone) +{ +#endif + + alt_u32 nticks = alt_nticks (); + alt_u32 tick_rate = alt_ticks_per_second (); + + /* + * Check to see if the system clock is running. This is indicated by a + * non-zero system clock rate. If the system clock is not running, an error + * is generated and the contents of "ptimeval" and "ptimezone" are not + * updated. + */ + + if (tick_rate) + { + ptimeval->tv_sec = alt_resettime.tv_sec + nticks/tick_rate; + ptimeval->tv_usec = alt_resettime.tv_usec + + (alt_u32)(((alt_u64)nticks*(ALT_US/tick_rate))%ALT_US); + + while(ptimeval->tv_usec < 0) { + if (ptimeval->tv_sec <= 0) + { + ptimeval->tv_sec = 0; + ptimeval->tv_usec = 0; + break; + } + else + { + ptimeval->tv_sec--; + ptimeval->tv_usec += ALT_US; + } + } + + while(ptimeval->tv_usec >= ALT_US) { + ptimeval->tv_sec++; + ptimeval->tv_usec -= ALT_US; + } + + if (ptimezone) + { + ptimezone->tz_minuteswest = alt_timezone.tz_minuteswest; + ptimezone->tz_dsttime = alt_timezone.tz_dsttime; + } + + return 0; + } + + return -ENOTSUP; +} + diff --git a/software/qsys_tutorial_bsp/HAL/src/alt_gmon.c b/software/qsys_tutorial_bsp/HAL/src/alt_gmon.c new file mode 100644 index 0000000..6add9f1 --- /dev/null +++ b/software/qsys_tutorial_bsp/HAL/src/alt_gmon.c @@ -0,0 +1,272 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003-2005 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include +#include +#include + +#include "priv/nios2_gmon_data.h" + +#include "sys/alt_irq.h" +#include "sys/alt_alarm.h" + + +/* Macros */ + +/* How large should the bins be which we use to generate the histogram */ +#define PCSAMPLE_BYTES_PER_BUCKET 32 + +#define NIOS2_READ_EA(dest) __asm__ ("mov %0, ea" : "=r" (dest)) + +/* The compiler inserts calls to mcount() at the start of + * every function call. The structure mcount_fn_arc records t + * he return address of the function called (in from_pc) + * and the return address of the mcount function + * (in self_pc). The number of times this arc is executed is + * recorded in the field count. + */ +struct mcount_fn_arc +{ + struct mcount_fn_arc * next; + void * from_pc; + unsigned int count; +}; + +/* We need to maintain a list of pointers to the heads of each adjacency + * list so that we can find them when writing out the gmon.out file. Since + * we don't know at the start of program execution how many functions will + * be called we use a list structure to do this. + */ +struct mcount_fn_entry +{ + struct mcount_fn_entry * next; + void * self_pc; + struct mcount_fn_arc * arc_head; +}; + +/* function prototypes */ + +void __mcount_record(void * self_pc, void * from_pc, struct mcount_fn_entry * fn_entry, struct mcount_fn_entry * * fn_head) __attribute__ ((no_instrument_function)); + +static __inline__ void * mcount_allocate(unsigned int size) __attribute__ ((no_instrument_function)); +static int nios2_pcsample_init(void) __attribute__ ((no_instrument_function)); +static alt_u32 nios2_pcsample(void* alarm) __attribute__ ((no_instrument_function)); + +/* global variables */ + +/* stext and etext are defined in the linker script */ +extern char stext[]; +extern char etext[]; + +/* Is the PC sampling stuff enabled yet? */ +static int pcsample_need_init = 1; + +#define HASH_BUCKETS 64 /* Must be a power of 2 */ + +/* This points to the list of adjacency list pointers. */ +struct mcount_fn_entry * __mcount_fn_head[HASH_BUCKETS]; + +/* pointer to the in-memory buffer containing the histogram */ +static unsigned short* s_pcsamples = 0; + +/* the address of the start and end of text section */ +static const unsigned int s_low_pc = (unsigned int)stext; +static const unsigned int s_high_pc = (unsigned int)etext; + +/* the alarm structure to register for pc sampling */ +static alt_alarm s_nios2_pcsample_alarm; + +unsigned int alt_gmon_data[GMON_DATA_SIZE] = +{ + 0x6e6f6d67, /* "gmon" */ + GMON_DATA_SIZE, + 0, + (unsigned int)stext, + (unsigned int)etext, + PCSAMPLE_BYTES_PER_BUCKET, + 0, + (unsigned int)__mcount_fn_head, + (unsigned int)(__mcount_fn_head + HASH_BUCKETS) +}; + +/* This holds the current slab of memory we're allocating out of */ +static char * mcount_slab_ptr = 0; +static int mcount_slab_size = 0; + +#define MCOUNT_SLAB_INCREMENT 1020 + + +/* + * We can't use malloc to allocate memory because that's too complicated, and + * can't be called at interrupt time. Use the lower level allocator instead + * because that's interrupt safe (and because we never free anything). + * + * For speed, we allocate a block of data at once. + */ +static __inline__ void * mcount_allocate(unsigned int size) +{ + void * data; + + if (size > mcount_slab_size) + { + mcount_slab_ptr = sbrk(MCOUNT_SLAB_INCREMENT); + mcount_slab_size = MCOUNT_SLAB_INCREMENT; + } + + data = mcount_slab_ptr; + mcount_slab_ptr += size; + mcount_slab_size -= size; + + return data; +} + + +/* + * Add the arc with the values of frompc and topc given to the graph. + * This function might be called at interrupt time so must be able to + * cope with reentrancy. + * + * The fast case, where we have already allocated a function arc, has been + * handled by the assmebler code. + */ +void __mcount_record(void * self_pc, void * from_pc, struct mcount_fn_entry * fn_entry, struct mcount_fn_entry * * fn_head) +{ + alt_irq_context context; + struct mcount_fn_arc * arc_entry; + + /* Keep trying to start up the PC sampler until it is running. + * (It can't start until the timer is going). + */ + if (pcsample_need_init) + { + pcsample_need_init = 0; + pcsample_need_init = nios2_pcsample_init(); + } + + /* + * We must disable interrupts around the allocation and the list update to + * prevent corruption if the instrumented function is re-entrant. + * + * It's safe for the code above to be stepping through the chain and be + * interrupted by this code modifying it - there is an edge case which will + * leave two copies of the same arc on the list (both with count=1), but + * this is dealt with on the host. + */ + context = alt_irq_disable_all(); + + if (fn_entry == NULL) + { + /* Add it to the list of functions we must output later. */ + fn_entry = (struct mcount_fn_entry *)mcount_allocate(sizeof(struct mcount_fn_entry)); + + fn_entry->self_pc = self_pc; + fn_entry->arc_head = NULL; + + fn_entry->next = *fn_head; + *fn_head = fn_entry; + } + + /* We will need a new list entry - if there was a list entry before + * then the assembler code would have handled it. */ + arc_entry = (struct mcount_fn_arc *)mcount_allocate(sizeof(struct mcount_fn_arc)); + + arc_entry->from_pc = from_pc; + arc_entry->count = 1; + + arc_entry->next = fn_entry->arc_head; + fn_entry->arc_head = arc_entry; + + alt_irq_enable_all(context); +} + + +/* + * nios2_pcsample_init starts profiling. + * It is called the first time mcount is called, and on subsequent calls to + * mcount until it returns zero. It initializes the pc histogram and turns on + * timer driven pc sampling. + */ +static int nios2_pcsample_init(void) +{ + unsigned int pcsamples_size; + + /* We sample the PC every tick */ + unsigned int prof_rate = alt_ticks_per_second(); + if (prof_rate == 0) + return 1; + + /* allocate the histogram buffer s_pcsamples */ + pcsamples_size = (s_high_pc - s_low_pc)/PCSAMPLE_BYTES_PER_BUCKET; + s_pcsamples = (unsigned short*)sbrk(pcsamples_size * sizeof(unsigned short)); + + if (s_pcsamples != 0) + { + /* initialize the buffer to zero */ + memset(s_pcsamples, 0, pcsamples_size * sizeof(unsigned short)); + + alt_gmon_data[GMON_DATA_PROFILE_DATA] = (int)s_pcsamples; + alt_gmon_data[GMON_DATA_PROFILE_RATE] = prof_rate; + + /* Sample every tick (it's cheap) */ + alt_alarm_start(&s_nios2_pcsample_alarm, 1, nios2_pcsample, 0); + } + + return 0; +} + + +/* + * Sample the PC value and store it in the histogram + */ +static alt_u32 nios2_pcsample(void* context) +{ + unsigned int pc; + unsigned int bucket; + + /* read the exception return address - this will be + * inaccurate if there are nested interrupts but we + * assume that this is rare and the inaccuracy will + * not be great */ + NIOS2_READ_EA(pc); + + /* + * If we're within the profilable range then increment the relevant + * bucket in the histogram + */ + if (pc >= s_low_pc && pc < s_high_pc && s_pcsamples != 0) + { + bucket = (pc - s_low_pc)/PCSAMPLE_BYTES_PER_BUCKET; + s_pcsamples[bucket]++; + } + + /* Sample every tick */ + return 1; +} + diff --git a/software/qsys_tutorial_bsp/HAL/src/alt_icache_flush.c b/software/qsys_tutorial_bsp/HAL/src/alt_icache_flush.c new file mode 100644 index 0000000..4b706ed --- /dev/null +++ b/software/qsys_tutorial_bsp/HAL/src/alt_icache_flush.c @@ -0,0 +1,84 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "nios2.h" +#include "system.h" + +#include "alt_types.h" +#include "sys/alt_cache.h" + +/* + * alt_icache_flush() is called to flush the instruction cache for a memory + * region of length "len" bytes, starting at address "start". + */ + +void alt_icache_flush (void* start, alt_u32 len) +{ +#if NIOS2_ICACHE_SIZE > 0 + + char* i; + char* end; + + /* + * This is the most we would ever need to flush. + */ + + if (len > NIOS2_ICACHE_SIZE) + { + len = NIOS2_ICACHE_SIZE; + } + + end = ((char*) start) + len; + + for (i = start; i < end; i+= NIOS2_ICACHE_LINE_SIZE) + { + __asm__ volatile ("flushi %0" :: "r" (i)); + } + + /* + * For an unaligned flush request, we've got one more line left. + * Note that this is dependent on NIOS2_ICACHE_LINE_SIZE to be a + * multiple of 2 (which it always is). + */ + + if (((alt_u32) start) & (NIOS2_ICACHE_LINE_SIZE - 1)) + { + __asm__ volatile ("flushi %0" :: "r" (i)); + } + + /* + * Having flushed the cache, flush any stale instructions in the + * pipeline + */ + + __asm__ volatile ("flushp"); + +#endif /* NIOS2_ICACHE_SIZE > 0 */ +} diff --git a/software/qsys_tutorial_bsp/HAL/src/alt_icache_flush_all.c b/software/qsys_tutorial_bsp/HAL/src/alt_icache_flush_all.c new file mode 100644 index 0000000..5088552 --- /dev/null +++ b/software/qsys_tutorial_bsp/HAL/src/alt_icache_flush_all.c @@ -0,0 +1,46 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "nios2.h" +#include "system.h" + +#include "alt_types.h" +#include "sys/alt_cache.h" + +/* + * alt_icache_flush_all() is called to flush the entire instruction cache. + */ + +void alt_icache_flush_all (void) +{ +#if NIOS2_ICACHE_SIZE > 0 + alt_icache_flush (0, NIOS2_ICACHE_SIZE); +#endif +} diff --git a/software/qsys_tutorial_bsp/HAL/src/alt_iic.c b/software/qsys_tutorial_bsp/HAL/src/alt_iic.c new file mode 100644 index 0000000..1db5afa --- /dev/null +++ b/software/qsys_tutorial_bsp/HAL/src/alt_iic.c @@ -0,0 +1,106 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2009 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ +#include "system.h" + +/* + * This file implements the HAL Enhanced interrupt API for Nios II processors + * with an internal interrupt controller (IIC). For most routines, this serves + * as a wrapper layer over the legacy interrupt API (which must be used with + * the IIC only). + * + * Use of the enhanced API is recommended so that application and device + * drivers are compatible with a Nios II system configured with an external + * interrupt controller (EIC), or IIC. This will afford maximum portability. + * + * If an EIC is present, the EIC device driver must provide these routines, + * because their operation will be specific to that EIC type. + */ +#ifndef NIOS2_EIC_PRESENT +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT + +#include "sys/alt_irq.h" +#include "priv/alt_iic_isr_register.h" +#include "priv/alt_legacy_irq.h" + +/** @Function Description: This function registers an interrupt handler. + * If the function is succesful, then the requested interrupt will be enabled upon + * return. Registering a NULL handler will disable the interrupt. + * @API Type: External + * @param ic_id Ignored. + * @param irq IRQ number + * @return 0 if successful, else error (-1) + */ +int alt_ic_isr_register(alt_u32 ic_id, alt_u32 irq, alt_isr_func isr, + void *isr_context, void *flags) +{ + return alt_iic_isr_register(ic_id, irq, isr, isr_context, flags); +} + +/** @Function Description: This function enables a single interrupt. + * @API Type: External + * @param ic_id Ignored. + * @param irq IRQ number + * @return 0 if successful, else error (-1) + */ +int alt_ic_irq_enable (alt_u32 ic_id, alt_u32 irq) +{ + return alt_irq_enable(irq); +} + +/** @Function Description: This function disables a single interrupt. + * @API Type: External + * @param ic_id Ignored. + * @param irq IRQ number + * @return 0 if successful, else error (-1) + */ +int alt_ic_irq_disable(alt_u32 ic_id, alt_u32 irq) +{ + return alt_irq_disable(irq); +} + +/** @Function Description: This function to determine if corresponding + * interrupt is enabled. + * @API Type: External + * @param ic_id Ignored. + * @param irq IRQ number + * @return Zero if corresponding interrupt is disabled and + * non-zero otherwise. + */ +alt_u32 alt_ic_irq_enabled(alt_u32 ic_id, alt_u32 irq) +{ + alt_u32 irq_enabled; + + NIOS2_READ_IENABLE(irq_enabled); + + return (irq_enabled & (1 << irq)) ? 1: 0; +} + +#endif /* ALT_ENHANCED_INTERRUPT_API_PRESENT */ +#endif /* NIOS2_EIC_PRESENT */ diff --git a/software/qsys_tutorial_bsp/HAL/src/alt_iic_isr_register.c b/software/qsys_tutorial_bsp/HAL/src/alt_iic_isr_register.c new file mode 100644 index 0000000..b104395 --- /dev/null +++ b/software/qsys_tutorial_bsp/HAL/src/alt_iic_isr_register.c @@ -0,0 +1,104 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2009 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ +#include +#include "system.h" + +/* + * Provides an interrupt registry mechanism for the any CPUs internal interrupt + * controller (IIC) when the enhanced interrupt API is active. + */ +#ifndef ALT_CPU_EIC_PRESENT +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT + +#include "alt_types.h" +#include "sys/alt_irq.h" +#include "priv/alt_iic_isr_register.h" + +/* + * The header, alt_irq_entry.h, contains the exception entry point, and is + * provided by the processor component. It is included here, so that the code + * will be added to the executable only if alt_irq_register() is present, i.e. + * if no interrupts are registered - there's no need to provide any + * interrupt handling. + */ + +#include "sys/alt_irq_entry.h" + +/* + * The header, alt_irq_table.h contains a table describing which function + * handles each interrupt. + */ + +#include "priv/alt_irq_table.h" + +/** @Function Description: This function registers an interrupt handler. + * If the function is succesful, then the requested interrupt will be enabled + * upon return. Registering a NULL handler will disable the interrupt. + * + * @API Type: External + * @param ic_id Interrupt controller ID + * @param irq IRQ ID number + * @param isr Pointer to interrupt service routine + * @param isr_context Opaque pointer passed to ISR + * @param flags + * @return 0 if successful, else error (-1) + */ +int alt_iic_isr_register(alt_u32 ic_id, alt_u32 irq, alt_isr_func isr, + void *isr_context, void *flags) +{ + int rc = -EINVAL; + int id = irq; /* IRQ interpreted as the interrupt ID. */ + alt_irq_context status; + + if (id < ALT_NIRQ) + { + /* + * interrupts are disabled while the handler tables are updated to ensure + * that an interrupt doesn't occur while the tables are in an inconsistant + * state. + */ + + status = alt_irq_disable_all(); + + alt_irq[id].handler = isr; + alt_irq[id].context = isr_context; + + rc = (isr) ? alt_ic_irq_enable(ic_id, id) : alt_ic_irq_disable(ic_id, id); + + alt_irq_enable_all(status); + } + + return rc; +} + +#endif /* ALT_ENHANCED_INTERRUPT_API_PRESENT */ +#endif /* ALT_CPU_EIC_PRESENT */ diff --git a/software/qsys_tutorial_bsp/HAL/src/alt_instruction_exception_entry.c b/software/qsys_tutorial_bsp/HAL/src/alt_instruction_exception_entry.c new file mode 100644 index 0000000..f4f52fc --- /dev/null +++ b/software/qsys_tutorial_bsp/HAL/src/alt_instruction_exception_entry.c @@ -0,0 +1,203 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2008 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ +#include "sys/alt_exceptions.h" +#include "nios2.h" +#include "alt_types.h" +#include "system.h" + +/* + * This file implements support for calling user-registered handlers for + * instruction-generated exceptions. This handler could also be reached + * in the event of a spurious interrupt. + * + * The handler code is optionally enabled through the "Enable + * Instruction-related Exception API" HAL BSP setting, which will + * define the macro below. + */ +#ifdef ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API + +/* Function pointer to exception callback routine */ +alt_exception_result (*alt_instruction_exception_handler) + (alt_exception_cause, alt_u32, alt_u32) = 0x0; + +/* Link entry routine to .exceptions section */ +int alt_instruction_exception_entry (alt_u32 exception_pc) + __attribute__ ((section (".exceptions"))); + +/* + * This is the entry point for instruction-generated exceptions handling. + * This routine will be called by alt_exceptions_entry.S, after it determines + * that an exception could not be handled by handlers that preceed that + * of instruction-generated exceptions (such as interrupts). + * + * For this to function properly, you must register an exception handler + * using alt_instruction_exception_register(). This routine will call + * that handler if it has been registered. Absent a handler, it will + * break break or hang as discussed below. + */ +int alt_instruction_exception_entry (alt_u32 exception_pc) +{ + alt_u32 cause, badaddr; + +/* + * If the processor hardware has the optional EXCEPTIONS & BADADDR registers, + * read them and pass their content to the user handler. These are always + * present if the MMU or MPU is enabled, and optionally for other advanced + * exception types via the "Extra exceptions information" setting in the + * processor (hardware) configuration. + * + * If these registers are not present, the cause field will be set to + * NIOS2_EXCEPTION_CAUSE_NOT_PRESENT. Your handling routine should + * check the validity of the cause argument before proceeding. + */ +#ifdef NIOS2_HAS_EXTRA_EXCEPTION_INFO + /* Get exception cause & "badaddr" */ + NIOS2_READ_EXCEPTION(cause); + cause = ( (cause & NIOS2_EXCEPTION_REG_CAUSE_MASK) >> + NIOS2_EXCEPTION_REG_CAUSE_OFST ); + + NIOS2_READ_BADADDR(badaddr); +#else + cause = NIOS2_EXCEPTION_CAUSE_NOT_PRESENT; + badaddr = 0; +#endif /* NIOS2_HAS_EXTRA_EXCEPTION_INFO */ + + if(alt_instruction_exception_handler) { + /* + * Call handler. Its return value indicates whether the exception-causing + * instruction should be re-issued. The code that called us, + * alt_eceptions_entry.S, will look at this value and adjust the ea + * register as necessary + */ + return alt_instruction_exception_handler(cause, exception_pc, badaddr); + } + /* + * We got here because an instruction-generated exception occured, but no + * handler is present. We do not presume to know how to handle it. If the + * debugger is present, break, otherwise hang. + * + * If you've reached here in the debugger, consider examining the + * EXCEPTIONS register cause bit-field, which was read into the 'cause' + * variable above, and compare it against the exceptions-type enumeration + * in alt_exceptions.h. This register is availabe if the MMU or MPU is + * present, or if the "Extra exceptions information" hardware option is + * selected. + * + * If you get here then one of the following could have happened: + * + * - An instruction-generated exception occured, and the processor + * does not have the extra exceptions feature enabled, or you + * have not registered a handler using + * alt_instruction_exception_register() + * + * Some examples of instruction-generated exceptions and why they + * might occur: + * + * - Your program could have been compiled for a full-featured + * Nios II core, but it is running on a smaller core, and + * instruction emulation has been disabled by defining + * ALT_NO_INSTRUCTION_EMULATION. + * + * You can work around the problem by re-enabling instruction + * emulation, or you can figure out why your program is being + * compiled for a system other than the one that it is running on. + * + * - Your program has executed a trap instruction, but has not + * implemented a handler for this instruction. + * + * - Your program has executed an illegal instruction (one which is + * not defined in the instruction set). + * + * - Your processor includes an MMU or MPU, and you have enabled it + * before registering an exception handler to service exceptions it + * generates. + * + * The problem could also be hardware related: + * - If your hardware is broken and is generating spurious interrupts + * (a peripheral which negates its interrupt output before its + * interrupt handler has been executed will cause spurious interrupts) + */ + else { +#ifdef NIOS2_HAS_DEBUG_STUB + NIOS2_BREAK(); +#else + while(1) + ; +#endif /* NIOS2_HAS_DEBUG_STUB */ + } + + /* // We should not get here. Remove compiler warning. */ + return NIOS2_EXCEPTION_RETURN_REISSUE_INST; +} + +#endif /* ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API */ + +/* + * This routine indicates whether a particular exception cause will have + * set a valid address into the BADADDR register, which is included + * in the arguments to a user-registered instruction-generated exception + * handler. Many exception types do not set valid contents in BADADDR; + * this is a convenience routine to easily test the validity of that + * argument in your handler. + * + * Note that this routine will return false (0) for cause '12', + * TLB miss. This is because there are four exception types that + * share that cause, two of which do not have a valid BADADDR. You + * must determine BADADDR's validity for these. + * + * Arguments: + * cause: The 5-bit exception cause field of the EXCEPTIONS register, + * shifted to the LSB position. You may pass the 'cause' argument + * in a handler you registered directy to this routine. + * + * Return: 1: BADADDR (bad_addr argument to handler) is valid + * 0: BADADDR is not valid + */ +int alt_exception_cause_generated_bad_addr(alt_exception_cause cause) +{ + switch (cause) { + case NIOS2_EXCEPTION_SUPERVISOR_ONLY_DATA_ADDR: + return 1; + case NIOS2_EXCEPTION_MISALIGNED_DATA_ADDR: + return 1; + case NIOS2_EXCEPTION_MISALIGNED_TARGET_PC: + return 1; + case NIOS2_EXCEPTION_TLB_READ_PERM_VIOLATION: + return 1; + case NIOS2_EXCEPTION_TLB_WRITE_PERM_VIOLATION: + return 1; + case NIOS2_EXCEPTION_MPU_DATA_REGION_VIOLATION: + return 1; + default: + return 0; + } +} diff --git a/software/qsys_tutorial_bsp/HAL/src/alt_instruction_exception_register.c b/software/qsys_tutorial_bsp/HAL/src/alt_instruction_exception_register.c new file mode 100644 index 0000000..b059e1d --- /dev/null +++ b/software/qsys_tutorial_bsp/HAL/src/alt_instruction_exception_register.c @@ -0,0 +1,82 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2008 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ +#include "sys/alt_exceptions.h" +#include "alt_types.h" +#include "system.h" + +/* + * This file implements support for calling user-registered handlers for + * instruction-generated exceptions. + * + * The registry API is optionally enabled through the "Enable + * Instruction-related Exception API" HAL BSP setting, which will + * define the macro below. + */ +#ifdef ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API + +/* + * The header, alt_exception_handler_registry.h contains a struct describing + * the registered exception handler + */ +#include "priv/alt_exception_handler_registry.h" + +/* + * Pull in the exception entry assembly code. This will not be linked in + * unless this object is linked into the executable (i.e. only if + * alt_instruction_exception_register() is called). + */ +__asm__( "\n\t.globl alt_exception" ); + +/* + * alt_instruction_exception_register() is called to register a handler to + * service instruction-generated exceptions that are not handled by the + * default exception handler code (interrupts, and optionally unimplemented + * instructions and traps). + * + * Passing null (0x0) in the handler argument will disable a previously- + * registered handler. + * + * Note that if no handler is registered, exceptions that are not processed + * using the built-in handler (interrupts, and optionally unimplemented + * instructions and traps) are treated as unknown exceptions, resulting + * in either a break or an infinite loop. + */ +void alt_instruction_exception_register ( + alt_exception_result (*exception_handler)( + alt_exception_cause cause, + alt_u32 exception_pc, + alt_u32 bad_addr) ) +{ + alt_instruction_exception_handler = exception_handler; +} + +#endif /* ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API */ diff --git a/software/qsys_tutorial_bsp/HAL/src/alt_io_redirect.c b/software/qsys_tutorial_bsp/HAL/src/alt_io_redirect.c new file mode 100644 index 0000000..8c862f7 --- /dev/null +++ b/software/qsys_tutorial_bsp/HAL/src/alt_io_redirect.c @@ -0,0 +1,98 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include +#include +#include + +#include "sys/alt_dev.h" +#include "priv/alt_file.h" + + +/* + * alt_open_fd() is similar to open() in that it is used to obtain a file + * descriptor for the file named "name". The "flags" and "mode" arguments are + * identical to the "flags" and "mode" arguments of open(). + * + * The distinction between the two functions is that the file descriptor + * structure to use is passed in as an argument, rather than allocated from the + * list of free file descriptors. + * + * This is used by alt_io_redirect() to redirect the stdin, stdout and stderr + * file descriptors to point to new devices. + * + * If the device can not be succesfully opened, then the input file descriptor + * remains unchanged. + */ + +static void alt_open_fd(alt_fd* fd, const char* name, int flags, int mode) +{ + int old; + + old = open (name, flags, mode); + + if (old >= 0) + { + fd->dev = alt_fd_list[old].dev; + fd->priv = alt_fd_list[old].priv; + fd->fd_flags = alt_fd_list[old].fd_flags; + + alt_release_fd (old); + } +} + +/* + * alt_io_redirect() is called once the device/filesystem lists have been + * initialised, but before main(). Its function is to redirect standard in, + * standard out and standard error so that they point to the devices selected by + * the user (as defined in system.h). + * + * Prior to the call to this function, io is directed towards /dev/null. If + * i/o can not be redirected to the requested device, for example if the device + * does not exist, then it remains directed at /dev/null. + */ + +void alt_io_redirect(const char* stdout_dev, + const char* stdin_dev, + const char* stderr_dev) +{ + /* Redirect the channels */ + + alt_open_fd (&alt_fd_list[STDOUT_FILENO], stdout_dev, O_WRONLY, 0777); + alt_open_fd (&alt_fd_list[STDIN_FILENO], stdin_dev, O_RDONLY, 0777); + alt_open_fd (&alt_fd_list[STDERR_FILENO], stderr_dev, O_WRONLY, 0777); +} + + + + diff --git a/software/qsys_tutorial_bsp/HAL/src/alt_ioctl.c b/software/qsys_tutorial_bsp/HAL/src/alt_ioctl.c new file mode 100644 index 0000000..f5d7ef1 --- /dev/null +++ b/software/qsys_tutorial_bsp/HAL/src/alt_ioctl.c @@ -0,0 +1,170 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +#include "sys/ioctl.h" +#include "sys/alt_errno.h" +#include "sys/alt_warning.h" +#include "priv/alt_file.h" +#include "os/alt_syscall.h" + +/* + * The ioctl() system call is provided so that application code can manipulate + * the i/o capabilities of a device in device specific ways. This is identical + * to the standard posix ioctl() function. + * + * In general this implementation simply vectors ioctl requests to the + * apropriate drivers ioctl function (as registered in the drivers alt_dev + * structure). + * + * However in the case of devices (as oposed to filesystem), the TIOCEXCL and + * TIOCNXCL requests are handled without reference to the driver. These + * requests are used to lock/release a device for exclusive access. + * + * Handling these requests centrally eases the task of device driver + * development. + * + * ALT_IOCTL is mapped onto the ioctl() system call in alt_syscall.h + */ + +#ifdef ALT_USE_DIRECT_DRIVERS + +#include "system.h" +#include "sys/alt_driver.h" + +/* + * Provide minimal version that calls ioctl routine of provided stdio devices. + */ +int ALT_IOCTL (int file, int req, void* arg) +{ +#ifdef ALT_STDIN_PRESENT + ALT_DRIVER_IOCTL_EXTERNS(ALT_STDIN_DEV); +#endif +#ifdef ALT_STDOUT_PRESENT + ALT_DRIVER_IOCTL_EXTERNS(ALT_STDOUT_DEV); +#endif +#ifdef ALT_STDERR_PRESENT + ALT_DRIVER_IOCTL_EXTERNS(ALT_STDERR_DEV); +#endif + +#if !defined(ALT_STDIN_PRESENT) && !defined(ALT_STDOUT_PRESENT) && !defined(ALT_STDERR_PRESENT) + /* Generate a link time warning, should this function ever be called. */ + ALT_STUB_WARNING(ioctl); +#endif + + switch (file) { +#ifdef ALT_STDIN_PRESENT + case 0: /* stdin file descriptor */ + return ALT_DRIVER_IOCTL(ALT_STDIN_DEV, req, arg); +#endif /* ALT_STDIN_PRESENT */ +#ifdef ALT_STDOUT_PRESENT + case 1: /* stdout file descriptor */ + return ALT_DRIVER_IOCTL(ALT_STDOUT_DEV, req, arg); +#endif /* ALT_STDOUT_PRESENT */ +#ifdef ALT_STDERR_PRESENT + case 2: /* stderr file descriptor */ + return ALT_DRIVER_IOCTL(ALT_STDERR_DEV, req, arg); +#endif /* ALT_STDERR_PRESENT */ + default: + ALT_ERRNO = EBADFD; + return -1; + } +} + +#else /* !ALT_USE_DIRECT_DRIVERS */ + +int ALT_IOCTL (int file, int req, void* arg) +{ + alt_fd* fd; + int rc; + + /* + * A common error case is that when the file descriptor was created, the call + * to open() failed resulting in a negative file descriptor. This is trapped + * below so that we don't try and process an invalid file descriptor. + */ + + fd = (file < 0) ? NULL : &alt_fd_list[file]; + + if (fd) + { + + /* + * In the case of device drivers (not file systems) handle the TIOCEXCL + * and TIOCNXCL requests as special cases. + */ + + if (fd->fd_flags & ALT_FD_DEV) + { + if (req == TIOCEXCL) + { + rc = alt_fd_lock (fd); + goto ioctl_done; + } + else if (req == TIOCNXCL) + { + rc = alt_fd_unlock (fd); + goto ioctl_done; + } + } + + /* + * If the driver provides an ioctl() function, call that to handle the + * request, otherwise set the return code to indicate that the request + * could not be processed. + */ + + if (fd->dev->ioctl) + { + rc = fd->dev->ioctl(fd, req, arg); + } + else + { + rc = -ENOTTY; + } + } + else + { + rc = -EBADFD; + } + +ioctl_done: + + if (rc < 0) + { + ALT_ERRNO = -rc; + } + return rc; +} + +#endif /* ALT_USE_DIRECT_DRIVERS */ diff --git a/software/qsys_tutorial_bsp/HAL/src/alt_irq_entry.S b/software/qsys_tutorial_bsp/HAL/src/alt_irq_entry.S new file mode 100644 index 0000000..d3efe7d --- /dev/null +++ b/software/qsys_tutorial_bsp/HAL/src/alt_irq_entry.S @@ -0,0 +1,108 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003-2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "system.h" + +/* + * This is the interrupt exception entry point code, which saves all the + * registers and calls the interrupt handler. It should be pulled in using + * a .globl from alt_irq_register.c. This scheme is used so that if an + * interrupt is never registered, then this code will not appear in the + * generated executable, thereby improving code footprint. + */ + + /* + * Explicitly allow the use of r1 (the assembler temporary register) + * within this code. This register is normally reserved for the use of + * the compiler. + */ + .set noat + + /* + * Pull in the exception handler register save code. + */ + .globl alt_exception + + .globl alt_irq_entry + .section .exceptions.entry.label, "xa" +alt_irq_entry: + + /* + * Section .exceptions.entry is in alt_exception_entry.S + * This saves all the caller saved registers and reads estatus into r5 + */ + + .section .exceptions.irqtest, "xa" + +#ifdef ALT_CI_INTERRUPT_VECTOR_N + /* + * Use the interrupt vector custom instruction if present to accelerate + * this code. + * If the interrupt vector custom instruction returns a negative + * value, there are no interrupts active (estatus.pie is 0 + * or ipending is 0) so assume it is a software exception. + */ + custom ALT_CI_INTERRUPT_VECTOR_N, r4, r0, r0 + blt r4, r0, .Lnot_irq +#else + /* + * Test to see if the exception was a software exception or caused + * by an external interrupt, and vector accordingly. + */ + rdctl r4, ipending + andi r2, r5, 1 + beq r2, zero, .Lnot_irq + beq r4, zero, .Lnot_irq +#endif /* ALT_CI_INTERRUPT_VECTOR_N */ + + .section .exceptions.irqhandler, "xa" + /* + * Now that all necessary registers have been preserved, call + * alt_irq_handler() to process the interrupts. + */ + + call alt_irq_handler + + .section .exceptions.irqreturn, "xa" + + br .Lexception_exit + + .section .exceptions.notirq.label, "xa" + +.Lnot_irq: + + /* + * Section .exceptions.exit is in alt_exception_entry.S + * This restores all the caller saved registers + */ + + .section .exceptions.exit.label +.Lexception_exit: + diff --git a/software/qsys_tutorial_bsp/HAL/src/alt_irq_handler.c b/software/qsys_tutorial_bsp/HAL/src/alt_irq_handler.c new file mode 100644 index 0000000..3253d02 --- /dev/null +++ b/software/qsys_tutorial_bsp/HAL/src/alt_irq_handler.c @@ -0,0 +1,169 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2009 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include "system.h" + +/* + * This interrupt handler only works with an internal interrupt controller + * (IIC). Processors with an external interrupt controller (EIC) use an + * implementation provided by an EIC driver. + */ +#ifndef ALT_CPU_EIC_PRESENT + +#include "sys/alt_irq.h" +#include "os/alt_hooks.h" + +#include "alt_types.h" + +/* + * A table describing each interrupt handler. The index into the array is the + * interrupt id associated with the handler. + * + * When an interrupt occurs, the associated handler is called with + * the argument stored in the context member. + */ +struct ALT_IRQ_HANDLER +{ +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT + void (*handler)(void*); +#else + void (*handler)(void*, alt_u32); +#endif + void *context; +} alt_irq[ALT_NIRQ]; + +/* + * alt_irq_handler() is called by the interrupt exception handler in order to + * process any outstanding interrupts. + * + * It is defined here since it is linked in using weak linkage. + * This means that if there is never a call to alt_irq_register() (above) then + * this function will not get linked in to the executable. This is acceptable + * since if no handler is ever registered, then an interrupt can never occur. + * + * If Nios II interrupt vector custom instruction exists, use it to accelerate + * the dispatch of interrupt handlers. The Nios II interrupt vector custom + * instruction is present if the macro ALT_CI_INTERRUPT_VECTOR defined. + */ + +void alt_irq_handler (void) __attribute__ ((section (".exceptions"))); +void alt_irq_handler (void) +{ +#ifdef ALT_CI_INTERRUPT_VECTOR + alt_32 offset; + char* alt_irq_base = (char*)alt_irq; +#else + alt_u32 active; + alt_u32 mask; + alt_u32 i; +#endif /* ALT_CI_INTERRUPT_VECTOR */ + + /* + * Notify the operating system that we are at interrupt level. + */ + + ALT_OS_INT_ENTER(); + +#ifdef ALT_CI_INTERRUPT_VECTOR + /* + * Call the interrupt vector custom instruction using the + * ALT_CI_INTERRUPT_VECTOR macro. + * It returns the offset into the vector table of the lowest-valued pending + * interrupt (corresponds to highest priority) or a negative value if none. + * The custom instruction assumes that each table entry is eight bytes. + */ + while ((offset = ALT_CI_INTERRUPT_VECTOR) >= 0) { + struct ALT_IRQ_HANDLER* handler_entry = + (struct ALT_IRQ_HANDLER*)(alt_irq_base + offset); +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT + handler_entry->handler(handler_entry->context); +#else + handler_entry->handler(handler_entry->context, offset >> 3); +#endif + } +#else /* ALT_CI_INTERRUPT_VECTOR */ + /* + * Obtain from the interrupt controller a bit list of pending interrupts, + * and then process the highest priority interrupt. This process loops, + * loading the active interrupt list on each pass until alt_irq_pending() + * return zero. + * + * The maximum interrupt latency for the highest priority interrupt is + * reduced by finding out which interrupts are pending as late as possible. + * Consider the case where the high priority interupt is asserted during + * the interrupt entry sequence for a lower priority interrupt to see why + * this is the case. + */ + + active = alt_irq_pending (); + + do + { + i = 0; + mask = 1; + + /* + * Test each bit in turn looking for an active interrupt. Once one is + * found, the interrupt handler asigned by a call to alt_irq_register() is + * called to clear the interrupt condition. + */ + + do + { + if (active & mask) + { +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT + alt_irq[i].handler(alt_irq[i].context); +#else + alt_irq[i].handler(alt_irq[i].context, i); +#endif + break; + } + mask <<= 1; + i++; + + } while (1); + + active = alt_irq_pending (); + + } while (active); +#endif /* ALT_CI_INTERRUPT_VECTOR */ + + /* + * Notify the operating system that interrupt processing is complete. + */ + + ALT_OS_INT_EXIT(); +} + +#endif /* ALT_CPU_EIC_PRESENT */ diff --git a/software/qsys_tutorial_bsp/HAL/src/alt_irq_register.c b/software/qsys_tutorial_bsp/HAL/src/alt_irq_register.c new file mode 100644 index 0000000..b5ea474 --- /dev/null +++ b/software/qsys_tutorial_bsp/HAL/src/alt_irq_register.c @@ -0,0 +1,102 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2009 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ +#include +#include "system.h" + +/* + * This interrupt registry mechanism works with the Nios II internal interrupt + * controller (IIC) only. Systems with an external interrupt controller (EIC), + * or those with the IIC who are using the enhanced interrupt API will + * utilize the alt_ic_isr_register() routine to register an interrupt. + */ +#ifndef NIOS2_EIC_PRESENT + +#include "sys/alt_irq.h" +#include "priv/alt_legacy_irq.h" +#include "os/alt_hooks.h" + +#include "alt_types.h" + +/* + * The header, alt_irq_entry.h, contains the exception entry point, and is + * provided by the processor component. It is included here, so that the code + * will be added to the executable only if alt_irq_register() is present, i.e. + * if no interrupts are registered - there's no need to provide any + * interrupt handling. + */ + +#include "sys/alt_irq_entry.h" + +/* + * The header, alt_irq_table.h contains a table describing which function + * handles each interrupt. + */ + +#include "priv/alt_irq_table.h" + +/* + * alt_irq_handler() is called to register an interrupt handler. If the + * function is succesful, then the requested interrupt will be enabled upon + * return. Registering a NULL handler will disable the interrupt. + * + * The return value is 0 if the interrupt handler was registered and the + * interrupt was enabled, otherwise it is negative. + */ + +int alt_irq_register (alt_u32 id, + void* context, + alt_isr_func handler) +{ + int rc = -EINVAL; + alt_irq_context status; + + if (id < ALT_NIRQ) + { + /* + * interrupts are disabled while the handler tables are updated to ensure + * that an interrupt doesn't occur while the tables are in an inconsistant + * state. + */ + + status = alt_irq_disable_all (); + + alt_irq[id].handler = handler; + alt_irq[id].context = context; + + rc = (handler) ? alt_irq_enable (id): alt_irq_disable (id); + + alt_irq_enable_all(status); + } + return rc; +} +#endif /* NIOS2_EIC_PRESENT */ + diff --git a/software/qsys_tutorial_bsp/HAL/src/alt_irq_vars.c b/software/qsys_tutorial_bsp/HAL/src/alt_irq_vars.c new file mode 100644 index 0000000..8c0a18d --- /dev/null +++ b/software/qsys_tutorial_bsp/HAL/src/alt_irq_vars.c @@ -0,0 +1,47 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "alt_types.h" + +#include "system.h" + +/* + * These global variables are used to save the current list of enabled + * interrupts. See alt_irq.h for further details. + */ + +volatile alt_u32 alt_irq_active = 0; + +#ifndef ALT_EXCEPTION_STACK + +volatile alt_u32 alt_priority_mask = (alt_u32) -1; + +#endif + diff --git a/software/qsys_tutorial_bsp/HAL/src/alt_isatty.c b/software/qsys_tutorial_bsp/HAL/src/alt_isatty.c new file mode 100644 index 0000000..9276472 --- /dev/null +++ b/software/qsys_tutorial_bsp/HAL/src/alt_isatty.c @@ -0,0 +1,125 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include + +#include "sys/alt_dev.h" +#include "sys/alt_errno.h" +#include "sys/alt_warning.h" +#include "priv/alt_file.h" +#include "os/alt_syscall.h" + +#ifdef ALT_USE_DIRECT_DRIVERS + +#include "system.h" + +/* + * Provide minimal version that just describes all file descriptors + * as tty devices for provided stdio devices. + */ +int ALT_ISATTY (int file) +{ + switch (file) { +#ifdef ALT_STDIN_PRESENT + case 0: /* stdin file descriptor */ +#endif /* ALT_STDIN_PRESENT */ +#ifdef ALT_STDOUT_PRESENT + case 1: /* stdout file descriptor */ +#endif /* ALT_STDOUT_PRESENT */ +#ifdef ALT_STDERR_PRESENT + case 2: /* stderr file descriptor */ +#endif /* ALT_STDERR_PRESENT */ + return 1; + default: + return 0; + } + +#if !defined(ALT_STDIN_PRESENT) && !defined(ALT_STDOUT_PRESENT) && !defined(ALT_STDERR_PRESENT) + /* Generate a link time warning, should this function ever be called. */ + ALT_STUB_WARNING(isatty); +#endif +} + +#else /* !ALT_USE_DIRECT_DRIVERS */ +/* + * isatty() can be used to determine whether the input file descriptor "file" + * refers to a terminal device or not. If it is a terminal device then the + * return value is one, otherwise it is zero. + * + * ALT_ISATTY is mapped onto the isatty() system call in alt_syscall.h + */ + +int ALT_ISATTY (int file) +{ + alt_fd* fd; + struct stat stat; + + /* + * A common error case is that when the file descriptor was created, the call + * to open() failed resulting in a negative file descriptor. This is trapped + * below so that we don't try and process an invalid file descriptor. + */ + + fd = (file < 0) ? NULL : &alt_fd_list[file]; + + if (fd) + { + /* + * If a device driver does not provide an fstat() function, then it is + * treated as a terminal device by default. + */ + + if (!fd->dev->fstat) + { + return 1; + } + + /* + * If a driver does provide an implementation of the fstat() function, then + * this is called so that the device can identify itself. + */ + + else + { + fstat (file, &stat); + return (stat.st_mode == _IFCHR) ? 1 : 0; + } + } + else + { + ALT_ERRNO = EBADFD; + return 0; + } +} + +#endif /* ALT_USE_DIRECT_DRIVERS */ diff --git a/software/qsys_tutorial_bsp/HAL/src/alt_kill.c b/software/qsys_tutorial_bsp/HAL/src/alt_kill.c new file mode 100644 index 0000000..42c2e1d --- /dev/null +++ b/software/qsys_tutorial_bsp/HAL/src/alt_kill.c @@ -0,0 +1,121 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include + +#include "sys/alt_errno.h" +#include "os/alt_syscall.h" + + +/* + * kill() is used by newlib in order to send signals to processes. Since there + * is only a single process in the HAL, the only valid values for pid are + * either the current process id, or the broadcast values, i.e. pid must be + * less than or equal to zero. + * + * ALT_KILL is mapped onto the kill() system call in alt_syscall.h + */ + +int ALT_KILL (int pid, int sig) +{ + int status = 0; + + if (pid <= 0) + { + switch (sig) + { + case 0: + + /* The null signal is used to check that a pid is valid. */ + + break; + + case SIGABRT: + case SIGALRM: + case SIGFPE: + case SIGILL: + case SIGKILL: + case SIGPIPE: + case SIGQUIT: + case SIGSEGV: + case SIGTERM: + case SIGUSR1: + case SIGUSR2: + case SIGBUS: + case SIGPOLL: + case SIGPROF: + case SIGSYS: + case SIGTRAP: + case SIGVTALRM: + case SIGXCPU: + case SIGXFSZ: + + /* + * The Posix standard defines the default behaviour for all these signals + * as being eqivalent to a call to _exit(). No mechanism is provided to + * change this behaviour. + */ + + _exit(0); + case SIGCHLD: + case SIGURG: + + /* + * The Posix standard defines these signals to be ignored by default. No + * mechanism is provided to change this behaviour. + */ + + break; + default: + + /* Tried to send an unsupported signal */ + + status = EINVAL; + } + } + + else if (pid > 0) + { + /* Attempted to signal a non-existant process */ + + status = ESRCH; + } + + if (status) + { + ALT_ERRNO = status; + return -1; + } + + return 0; +} diff --git a/software/qsys_tutorial_bsp/HAL/src/alt_link.c b/software/qsys_tutorial_bsp/HAL/src/alt_link.c new file mode 100644 index 0000000..d796c59 --- /dev/null +++ b/software/qsys_tutorial_bsp/HAL/src/alt_link.c @@ -0,0 +1,56 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_warning.h" +#include "sys/alt_errno.h" +#include "os/alt_syscall.h" + +/* + * link() is used by newlib to create a new link to an existing file. This is + * unsupported in the HAL environment. However a "do-nothing" implementation + * is still provied for newlib compatability. + * + * ALT_LINK is mapped onto the link() system call in alt_syscall.h + */ + +int ALT_LINK ( char *existing, char *new) +{ + /* Generate a link time warning, should this function ever be called. */ + + ALT_STUB_WARNING(link); + + /* Indicate an error */ + + ALT_ERRNO = ENOSYS; + return -1; +} + diff --git a/software/qsys_tutorial_bsp/HAL/src/alt_load.c b/software/qsys_tutorial_bsp/HAL/src/alt_load.c new file mode 100644 index 0000000..ffab4b9 --- /dev/null +++ b/software/qsys_tutorial_bsp/HAL/src/alt_load.c @@ -0,0 +1,88 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004-2005 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_load.h" +#include "sys/alt_cache.h" + +/* + * Linker defined symbols. + */ + +extern void __flash_rwdata_start; +extern void __ram_rwdata_start; +extern void __ram_rwdata_end; +extern void __flash_rodata_start; +extern void __ram_rodata_start; +extern void __ram_rodata_end; +extern void __flash_exceptions_start; +extern void __ram_exceptions_start; +extern void __ram_exceptions_end; + +/* + * alt_load() is called when the code is executing from flash. In this case + * there is no bootloader, so this application is responsible for loading to + * RAM any sections that are required. + */ + +void alt_load (void) +{ + /* + * Copy the .rwdata section. + */ + + alt_load_section (&__flash_rwdata_start, + &__ram_rwdata_start, + &__ram_rwdata_end); + + /* + * Copy the exception handler. + */ + + alt_load_section (&__flash_exceptions_start, + &__ram_exceptions_start, + &__ram_exceptions_end); + + /* + * Copy the .rodata section. + */ + + alt_load_section (&__flash_rodata_start, + &__ram_rodata_start, + &__ram_rodata_end); + + /* + * Now ensure that the caches are in synch. + */ + + alt_dcache_flush_all(); + alt_icache_flush_all(); +} diff --git a/software/qsys_tutorial_bsp/HAL/src/alt_log_macro.S b/software/qsys_tutorial_bsp/HAL/src/alt_log_macro.S new file mode 100644 index 0000000..499c4ad --- /dev/null +++ b/software/qsys_tutorial_bsp/HAL/src/alt_log_macro.S @@ -0,0 +1,56 @@ +/* alt_log_macro.S + * + * Implements the function tx_log_str, called by the assembly macro + * ALT_LOG_PUTS(). The macro will be empty when logging is turned off, + * and this function will not be compiled. When logging is on, + * this function is used to print out the strings defined in the beginning + * of alt_log_printf.c, using port information taken from system.h and + * alt_log_printf.h. + * + * This routine only handles strings, and sends a character into the defined + * output device's output buffer when the device is ready. It's intended for + * debugging purposes, where messages can be set to print out at certain + * points in the boot code to indicate the progress of the program. + * + */ + +#ifndef __ALT_LOG_MACROS__ +#define __ALT_LOG_MACROS__ + +/* define this flag to skip assembly-incompatible parts + * of various include files. */ +#define ALT_ASM_SRC + +#ifdef ALT_LOG_ENABLE // only compile this function if this flag is defined. + + #include "system.h" + #include "sys/alt_log_printf.h" + + .global tx_log_str +tx_log_str: + /* load base uart / jtag uart address into r6 */ + movhi r6, %hiadj(ALT_LOG_PORT_BASE) + addi r6, r6, %lo(ALT_LOG_PORT_BASE) +tx_next_char: + /* if pointer points to null, return + * r4 is the pointer to the str to be printed, set by ALT_LOG_PUTS */ + ldb r7, (r4) + beq r0, r7, end_tx + + /* check device transmit ready */ +wait_tx_ready_loop: + ldwio r5, ALT_LOG_PRINT_REG_OFFSET(r6) + andi r5, r5, ALT_LOG_PRINT_MSK + beq r5, r0, wait_tx_ready_loop + /* write char */ + stwio r7, ALT_LOG_PRINT_TXDATA_REG_OFFSET (r6) + /* advance string pointer */ + addi r4, r4, 1 + br tx_next_char +end_tx: + ret + +#endif + +#endif /* __ALT_LOG_MACROS__ */ + diff --git a/software/qsys_tutorial_bsp/HAL/src/alt_log_printf.c b/software/qsys_tutorial_bsp/HAL/src/alt_log_printf.c new file mode 100644 index 0000000..1f7056d --- /dev/null +++ b/software/qsys_tutorial_bsp/HAL/src/alt_log_printf.c @@ -0,0 +1,479 @@ + +/* alt_log_printf.c + * + * This file implements the various C functions used for the + * alt_log logging/debugging print functions. The functions + * sit as is here - the job of hiding them from the compiler + * if logging is disabled is accomplished in the .h file. + * + * All the global variables for alt_log are defined here. + * These include the various flags that turn on additional + * logging options; the strings for assembly printing; and + * other globals needed by different logging options. + * + * There are 4 functions that handle the actual printing: + * alt_log_txchar: Actual function that puts 1 char to UART/JTAG UART. + * alt_log_repchar: Calls alt_log_txchar 'n' times - used by + * alt_log_private_printf for formatting. + * alt_log_private_printf: + * Stripped down implementation of printf - no floats. + * alt_log_printf_proc: + * Wrapper function for private_printf. + * + * The rest of the functions are called by the macros which + * were called by code in the other components. Each function + * is preceded by a comment, about which file it gets called + * in, and what its purpose is. + * + * author: gkwan + */ + +/* skip all code if enable is off */ +#ifdef ALT_LOG_ENABLE + +#include +#include +#include +#ifdef __ALTERA_AVALON_JTAG_UART + #include "altera_avalon_jtag_uart.h" + #include +#endif +#include "sys/alt_log_printf.h" + +/* strings for assembly puts */ +char alt_log_msg_bss[] = "[crt0.S] Clearing BSS \r\n";; +char alt_log_msg_alt_main[] = "[crt0.S] Calling alt_main.\r\n"; +char alt_log_msg_stackpointer[] \ + = "[crt0.S] Setting up stack and global pointers.\r\n"; +char alt_log_msg_cache[] = "[crt0.S] Inst & Data Cache Initialized.\r\n"; +/* char array allocation for alt_write */ +char alt_log_write_buf[ALT_LOG_WRITE_ECHO_LEN+2]; + +/* global variables for all 'on' flags */ + +/* + * The boot message flag is linked into the data (rwdata) section + * because if it is zero, it would otherwise be placed in the bss section. + * alt_log examines this variable before the BSS is cleared in the boot-up + * process. + */ +volatile alt_u32 alt_log_boot_on_flag \ + __attribute__ ((section (".data"))) = ALT_LOG_BOOT_ON_FLAG_SETTING; + +volatile alt_u8 alt_log_write_on_flag = ALT_LOG_WRITE_ON_FLAG_SETTING; + +volatile alt_u8 alt_log_sys_clk_on_flag = ALT_LOG_SYS_CLK_ON_FLAG_SETTING; + +volatile alt_u8 alt_log_jtag_uart_alarm_on_flag = \ + ALT_LOG_JTAG_UART_ALARM_ON_FLAG_SETTING; + +volatile alt_u8 alt_log_jtag_uart_isr_on_flag = \ + ALT_LOG_JTAG_UART_ISR_ON_FLAG_SETTING; + +volatile alt_u8 alt_log_jtag_uart_startup_info_on_flag = \ + ALT_LOG_JTAG_UART_STARTUP_INFO_ON_FLAG_SETTING; + +/* Global alarm object for recurrent JTAG UART status printing */ +alt_alarm alt_log_jtag_uart_alarm_1; + +/* Global ints for system clock printing and count */ +volatile int alt_log_sys_clk_count; +volatile int alt_system_clock_in_sec; + +/* enum used by alt_log_private_printf */ +enum +{ + pfState_chars, + pfState_firstFmtChar, + pfState_otherFmtChar +}; + + + + +/* Function to put one char onto the UART/JTAG UART txdata register. */ +void alt_log_txchar(int c,char *base) +{ + /* Wait until the device is ready for a character */ + while((ALT_LOG_PRINT_REG_RD(base) & ALT_LOG_PRINT_MSK) == 0) + ; + /* And pop the character into the register */ + ALT_LOG_PRINT_TXDATA_WR(base,c); +} + + +/* Called by alt_log_private_printf to print out characters repeatedly */ +void alt_log_repchar(char c,int r,int base) +{ + while(r-- > 0) + alt_log_txchar(c,(char*) base); +} + + +/* Stripped down printf function */ +void alt_log_private_printf(const char *fmt,int base,va_list args) + { + const char *w; + char c; + int state; + int fmtLeadingZero = 0; /* init these all to 0 for -W warnings. */ + int fmtLong = 0; + int fmtBeforeDecimal = 0; + int fmtAfterDecimal = 0; + int fmtBase = 0; + int fmtSigned = 0; + int fmtCase = 0; /* For hex format, if 1, A-F, else a-f. */ + + w = fmt; + state = pfState_chars; + + while(0 != (c = *w++)) + { + switch(state) + { + case pfState_chars: + if(c == '%') + { + fmtLeadingZero = 0; + fmtLong = 0; + fmtBase = 10; + fmtSigned = 1; + fmtCase = 0; /* Only %X sets this. */ + fmtBeforeDecimal = -1; + fmtAfterDecimal = -1; + state = pfState_firstFmtChar; + } + else + { + alt_log_txchar(c,(char*)base); + } + break; + + case pfState_firstFmtChar: + if(c == '0') + { + fmtLeadingZero = 1; + state = pfState_otherFmtChar; + } + else if(c == '%') + { + alt_log_txchar(c,(char*)base); + state = pfState_chars; + } + else + { + state = pfState_otherFmtChar; + goto otherFmtChar; + } + break; + + case pfState_otherFmtChar: +otherFmtChar: + if(c == '.') + { + fmtAfterDecimal = 0; + } + else if('0' <= c && c <= '9') + { + c -= '0'; + if(fmtAfterDecimal < 0) /* still before decimal */ + { + if(fmtBeforeDecimal < 0) + { + fmtBeforeDecimal = 0; + } + else + { + fmtBeforeDecimal *= 10; + } + fmtBeforeDecimal += c; + } + else + { + fmtAfterDecimal = (fmtAfterDecimal * 10) + c; + } + } + else if(c == 'l') + { + fmtLong = 1; + } + else /* we're up to the letter which determines type */ + { + switch(c) + { + case 'd': + case 'i': +doIntegerPrint: + { + unsigned long v; + unsigned long p; /* biggest power of fmtBase */ + unsigned long vShrink; /* used to count digits */ + int sign; + int digitCount; + + /* Get the value */ + if(fmtLong) + { + if (fmtSigned) + { + v = va_arg(args,long); + } + else + { + v = va_arg(args,unsigned long); + } + } + else + { + if (fmtSigned) + { + v = va_arg(args,int); + } + else + { + v = va_arg(args,unsigned int); + } + } + + /* Strip sign */ + sign = 0; + /* (assumes sign bit is #31) */ + if( fmtSigned && (v & (0x80000000)) ) + { + v = ~v + 1; + sign = 1; + } + + /* Count digits, and get largest place value */ + vShrink = v; + p = 1; + digitCount = 1; + while( (vShrink = vShrink / fmtBase) > 0 ) + { + digitCount++; + p *= fmtBase; + } + + /* Print leading characters & sign */ + fmtBeforeDecimal -= digitCount; + if(fmtLeadingZero) + { + if(sign) + { + alt_log_txchar('-',(char*)base); + fmtBeforeDecimal--; + } + alt_log_repchar('0',fmtBeforeDecimal,base); + } + else + { + if(sign) + { + fmtBeforeDecimal--; + } + alt_log_repchar(' ',fmtBeforeDecimal,base); + if(sign) + { + alt_log_txchar('-',(char*)base); + } + } + + /* Print numbery parts */ + while(p) + { + unsigned char d; + + d = v / p; + d += '0'; + if(d > '9') + { + d += (fmtCase ? 'A' : 'a') - '0' - 10; + } + alt_log_txchar(d,(char*)base); + + v = v % p; + p = p / fmtBase; + } + } + + state = pfState_chars; + break; + + case 'u': + fmtSigned = 0; + goto doIntegerPrint; + case 'o': + fmtSigned = 0; + fmtBase = 8; + goto doIntegerPrint; + case 'x': + fmtSigned = 0; + fmtBase = 16; + goto doIntegerPrint; + case 'X': + fmtSigned = 0; + fmtBase = 16; + fmtCase = 1; + goto doIntegerPrint; + + case 'c': + alt_log_repchar(' ',fmtBeforeDecimal-1,base); + alt_log_txchar(va_arg(args,int),(char*)base); + break; + + case 's': + { + char *s; + + s = va_arg(args,char *); + alt_log_repchar(' ',fmtBeforeDecimal-strlen(s),base); + + while(*s) + alt_log_txchar(*s++,(char*)base); + } + break; + } /* switch last letter of fmt */ + state=pfState_chars; + } + break; + } /* switch */ + } /* while chars left */ + } /* printf */ + +/* Main logging printf function */ +int alt_log_printf_proc(const char *fmt, ... ) +{ + va_list args; + + va_start (args, fmt); + alt_log_private_printf(fmt,ALT_LOG_PORT_BASE,args); + return (0); +} + +/* Below are the functions called by different macros in various components. */ + +/* If the system has a JTAG_UART, include JTAG_UART debugging functions */ +#ifdef __ALTERA_AVALON_JTAG_UART + +/* The alarm function in altera_avalon_jtag_uart.c. + * This function, when turned on, prints out the status + * of the JTAG UART Control register, every ALT_LOG_JTAG_UART_TICKS. + * If the flag is off, the alarm should never be registered, and this + * function should never run */ +alt_u32 altera_avalon_jtag_uart_report_log(void * context) +{ + if (alt_log_jtag_uart_alarm_on_flag) { + altera_avalon_jtag_uart_state* dev = (altera_avalon_jtag_uart_state*) context; + const char* header="JTAG Alarm:"; + alt_log_jtag_uart_print_control_reg(dev, dev->base, header); + return ALT_LOG_JTAG_UART_TICKS; + } + else + { + /* If flag is not on, return 0 to disable future alarms. + * Should never be here, alarm should not be enabled at all. */ + return 0; + } +} + +void alt_log_jtag_uart_print_control_reg(altera_avalon_jtag_uart_state* dev, int base, const char* header) +{ + unsigned int control, space, ac, wi, ri, we, re; + control = IORD_ALTERA_AVALON_JTAG_UART_CONTROL(base); + space = (control & ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_MSK) >> + ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_OFST; + we= (control & ALTERA_AVALON_JTAG_UART_CONTROL_WE_MSK) >> + ALTERA_AVALON_JTAG_UART_CONTROL_WE_OFST; + re= (control & ALTERA_AVALON_JTAG_UART_CONTROL_RE_MSK) >> + ALTERA_AVALON_JTAG_UART_CONTROL_RE_OFST; + ri= (control & ALTERA_AVALON_JTAG_UART_CONTROL_RI_MSK) >> + ALTERA_AVALON_JTAG_UART_CONTROL_RI_OFST; + wi= (control & ALTERA_AVALON_JTAG_UART_CONTROL_WI_MSK) >> + ALTERA_AVALON_JTAG_UART_CONTROL_WI_OFST; + ac= (control & ALTERA_AVALON_JTAG_UART_CONTROL_AC_MSK) >> + ALTERA_AVALON_JTAG_UART_CONTROL_AC_OFST; + +#ifdef ALTERA_AVALON_JTAG_UART_SMALL + ALT_LOG_PRINTF( + "%s HW FIFO wspace=%d AC=%d WI=%d RI=%d WE=%d RE=%d\r\n", + header,space,ac,wi,ri,we,re); +#else + ALT_LOG_PRINTF( + "%s SW CirBuf = %d, HW FIFO wspace=%d AC=%d WI=%d RI=%d WE=%d RE=%d\r\n", + header,(dev->tx_out-dev->tx_in),space,ac,wi,ri,we,re); +#endif + + return; + +} + +/* In altera_avalon_jtag_uart.c + * Same output as the alarm function above, but this is called in the driver + * init function. Hence, it gives the status of the JTAG UART control register + * right at the initialization of the driver */ +void alt_log_jtag_uart_startup_info(altera_avalon_jtag_uart_state* dev, int base) +{ + const char* header="JTAG Startup Info:"; + alt_log_jtag_uart_print_control_reg(dev, base, header); + return; +} + +/* In altera_avalon_jtag_uart.c + * When turned on, this function will print out the status of the jtag uart + * control register every time there is a jtag uart "almost-empty" interrupt. */ +void alt_log_jtag_uart_isr_proc(int base, altera_avalon_jtag_uart_state* dev) +{ + if (alt_log_jtag_uart_isr_on_flag) { + const char* header="JTAG IRQ:"; + alt_log_jtag_uart_print_control_reg(dev, base, header); + } + return; +} + +#endif /* __ALTERA_AVALON_JTAG_UART */ + +/* In alt_write.c + * When the alt_log_write_on_flag is turned on, this function gets called + * every time alt_write gets called. The first + * ALT_LOG_WRITE_ECHO_LEN characters of every printf command (or any command + * that eventually calls write()) gets echoed to the alt_log output. */ +void alt_log_write(const void *ptr, size_t len) +{ + if (alt_log_write_on_flag) { + int temp_cnt; + int length=(ALT_LOG_WRITE_ECHO_LEN>len) ? len : ALT_LOG_WRITE_ECHO_LEN; + + if (length < 2) return; + + strncpy (alt_log_write_buf,ptr,length); + alt_log_write_buf[length-1]='\n'; + alt_log_write_buf[length]='\r'; + alt_log_write_buf[length+1]='\0'; + + /* Escape Ctrl-D's. If the Ctrl-D gets sent it might kill the terminal + * connection of alt_log. It will get replaced by 'D'. */ + for (temp_cnt=0;temp_cnt < length; temp_cnt++) { + if (alt_log_write_buf[temp_cnt]== 0x4) { + alt_log_write_buf[temp_cnt]='D'; + } + } + ALT_LOG_PRINTF("Write Echo: %s",alt_log_write_buf); + } +} + +/* In altera_avalon_timer_sc + * This function prints out a system clock is alive message + * every ALT_LOG_SYS_CLK_INTERVAL (in ticks). */ +void alt_log_system_clock() +{ + if (alt_log_sys_clk_on_flag) { + alt_log_sys_clk_count++; + if (alt_log_sys_clk_count > ALT_LOG_SYS_CLK_INTERVAL) { + alt_log_sys_clk_count = 0; + ALT_LOG_PRINTF("System Clock On %u\r\n",alt_system_clock_in_sec++); + } + } +} + + +#endif diff --git a/software/qsys_tutorial_bsp/HAL/src/alt_lseek.c b/software/qsys_tutorial_bsp/HAL/src/alt_lseek.c new file mode 100644 index 0000000..7857b0d --- /dev/null +++ b/software/qsys_tutorial_bsp/HAL/src/alt_lseek.c @@ -0,0 +1,117 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004-2005 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +#include "sys/alt_errno.h" +#include "sys/alt_warning.h" +#include "priv/alt_file.h" +#include "os/alt_syscall.h" + +#ifdef ALT_USE_DIRECT_DRIVERS + +off_t ALT_LSEEK (int file, off_t ptr, int dir) +{ + /* Generate a link time warning, should this function ever be called. */ + + ALT_STUB_WARNING(lseek); + + /* Indicate an error */ + + ALT_ERRNO = ENOSYS; + return -1; +} + +#else /* !ALT_USE_DIRECT_DRIVERS */ + +/* + * lseek() can be called to move the read/write pointer associated with the + * file descriptor "file". This function simply vectors the call to the lseek() + * function provided by the driver associated with the file descriptor. + * + * If the driver does not provide an implementation of lseek() an error is + * indicated. + * + * lseek() corresponds to the standard lseek() function. + * + * ALT_LSEEK is mapped onto the lseek() system call in alt_syscall.h + * + */ + +off_t ALT_LSEEK (int file, off_t ptr, int dir) +{ + alt_fd* fd; + off_t rc = 0; + + /* + * A common error case is that when the file descriptor was created, the call + * to open() failed resulting in a negative file descriptor. This is trapped + * below so that we don't try and process an invalid file descriptor. + */ + + fd = (file < 0) ? NULL : &alt_fd_list[file]; + + if (fd) + { + /* + * If the device driver provides an implementation of the lseek() function, + * then call that to process the request. + */ + + if (fd->dev->lseek) + { + rc = fd->dev->lseek(fd, ptr, dir); + } + /* + * Otherwise return an error. + */ + + else + { + rc = -ENOTSUP; + } + } + else + { + rc = -EBADFD; + } + + if (rc < 0) + { + ALT_ERRNO = -rc; + rc = -1; + } + + return rc; +} + +#endif /* ALT_USE_DIRECT_DRIVERS */ diff --git a/software/qsys_tutorial_bsp/HAL/src/alt_main.c b/software/qsys_tutorial_bsp/HAL/src/alt_main.c new file mode 100644 index 0000000..a96229b --- /dev/null +++ b/software/qsys_tutorial_bsp/HAL/src/alt_main.c @@ -0,0 +1,161 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2007 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include +#include +#include +#include +#include + +#include "sys/alt_dev.h" +#include "sys/alt_sys_init.h" +#include "sys/alt_irq.h" +#include "sys/alt_dev.h" + +#include "os/alt_hooks.h" + +#include "priv/alt_file.h" +#include "alt_types.h" + +#include "system.h" + +#include "sys/alt_log_printf.h" + +extern void _do_ctors(void); +extern void _do_dtors(void); + +/* + * Standard arguments for main. By default, no arguments are passed to main. + * However a device driver may choose to configure these arguments by calling + * alt_set_args(). The expectation is that this facility will only be used by + * the iclient/ihost utility. + */ + +int alt_argc = 0; +char** alt_argv = {NULL}; +char** alt_envp = {NULL}; + +/* + * Prototype for the entry point to the users application. + */ + +extern int main (int, char **, char **); + +/* + * alt_main is the C entry point for the HAL. It is called by the assembler + * startup code in the processor specific crt0.S. It is responsible for: + * completing the C runtime configuration; configuring all the + * devices/filesystems/components in the system; and call the entry point for + * the users application, i.e. main(). + */ + +void alt_main (void) +{ +#ifndef ALT_NO_EXIT + int result; +#endif + + /* ALT LOG - please see HAL/sys/alt_log_printf.h for details */ + ALT_LOG_PRINT_BOOT("[alt_main.c] Entering alt_main, calling alt_irq_init.\r\n"); + /* Initialize the interrupt controller. */ + alt_irq_init (NULL); + + /* Initialize the operating system */ + ALT_LOG_PRINT_BOOT("[alt_main.c] Done alt_irq_init, calling alt_os_init.\r\n"); + ALT_OS_INIT(); + + /* + * Initialize the semaphore used to control access to the file descriptor + * list. + */ + + ALT_LOG_PRINT_BOOT("[alt_main.c] Done OS Init, calling alt_sem_create.\r\n"); + ALT_SEM_CREATE (&alt_fd_list_lock, 1); + + /* Initialize the device drivers/software components. */ + ALT_LOG_PRINT_BOOT("[alt_main.c] Calling alt_sys_init.\r\n"); + alt_sys_init(); + ALT_LOG_PRINT_BOOT("[alt_main.c] Done alt_sys_init.\r\n"); + +#if !defined(ALT_USE_DIRECT_DRIVERS) && (defined(ALT_STDIN_PRESENT) || defined(ALT_STDOUT_PRESENT) || defined(ALT_STDERR_PRESENT)) + + /* + * Redirect stdio to the apropriate devices now that the devices have + * been initialized. This is only done if the user has requested these + * devices be present (not equal to /dev/null) and if direct drivers + * aren't being used. + */ + + ALT_LOG_PRINT_BOOT("[alt_main.c] Redirecting IO.\r\n"); + alt_io_redirect(ALT_STDOUT, ALT_STDIN, ALT_STDERR); +#endif + +#ifndef ALT_NO_C_PLUS_PLUS + /* + * Call the C++ constructors + */ + + ALT_LOG_PRINT_BOOT("[alt_main.c] Calling C++ constructors.\r\n"); + _do_ctors (); +#endif /* ALT_NO_C_PLUS_PLUS */ + +#if !defined(ALT_NO_C_PLUS_PLUS) && !defined(ALT_NO_CLEAN_EXIT) && !defined(ALT_NO_EXIT) + /* + * Set the C++ destructors to be called at system shutdown. This is only done + * if a clean exit has been requested (i.e. the exit() function has not been + * redefined as _exit()). This is in the interest of reducing code footprint, + * in that the atexit() overhead is removed when it's not needed. + */ + + ALT_LOG_PRINT_BOOT("[alt_main.c] Calling atexit.\r\n"); + atexit (_do_dtors); +#endif + + /* + * Finally, call main(). The return code is then passed to a subsequent + * call to exit() unless the application is never supposed to exit. + */ + + ALT_LOG_PRINT_BOOT("[alt_main.c] Calling main.\r\n"); + +#ifdef ALT_NO_EXIT + main (alt_argc, alt_argv, alt_envp); +#else + result = main (alt_argc, alt_argv, alt_envp); + close(STDOUT_FILENO); + exit (result); +#endif + + ALT_LOG_PRINT_BOOT("[alt_main.c] After main - we should not be here?.\r\n"); +} + diff --git a/software/qsys_tutorial_bsp/HAL/src/alt_malloc_lock.c b/software/qsys_tutorial_bsp/HAL/src/alt_malloc_lock.c new file mode 100644 index 0000000..8c78f46 --- /dev/null +++ b/software/qsys_tutorial_bsp/HAL/src/alt_malloc_lock.c @@ -0,0 +1,52 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +/* + * These are the empty malloc lock/unlock stubs required by newlib. These are + * used to make newlib's malloc() function thread safe. The default HAL + * configuration is single threaded, so there is nothing to do here. Note that + * this requires that malloc is never called by an interrupt service routine. + */ + +void __malloc_lock ( struct _reent *_r ) +{ +} + +/* + * + */ + +void __malloc_unlock ( struct _reent *_r ) +{ +} diff --git a/software/qsys_tutorial_bsp/HAL/src/alt_mcount.S b/software/qsys_tutorial_bsp/HAL/src/alt_mcount.S new file mode 100644 index 0000000..3837523 --- /dev/null +++ b/software/qsys_tutorial_bsp/HAL/src/alt_mcount.S @@ -0,0 +1,198 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003-2010 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/* mcount or _mcount is inserted by GCC before the function prologue of every + * function when a program is compiled for profiling. At the start of mcount, + * we guarantee that: + * ra = self_pc (an address in the function which called mcount) + * r8 = from_pc (an address in the function which called mcount's caller) + * + * Because this is always called at the start of a function we can corrupt + * r2,r3 and r11-r15. We must not corrupt r4-r7 (because they might contain + * function arguments for the instrumented function) or r8 (which holds ra + * for the instrumented function). + */ + + .global __mcount_fn_head + + .global mcount + + /* _mcount is used by gcc4 */ + .global _mcount + +_mcount: +mcount: + /* Use a hash to speed up locating fn_entry. We use bits 5 upwards to choose + * the bucket because bits 1:0 will always be 0, and because the distribution + * of values for bits 4:2 won't be even (aligning on cache line boundaries + * will skew it). Higher bits should be fairly random. + */ + /* fn_head = mcount_fn_head + (((unsigned int)self_pc >> 5) & (HASH_BUCKETS - 1)); */ + + srli r2, ra, 3 + movhi r3, %hiadj(__mcount_fn_head) + addi r3, r3, %lo(__mcount_fn_head) + andi r2, r2, 0xFC + add r11, r2, r3 + + /* The fast case is where we have already allocated a function arc, and so + * also a function pointer. + */ + + /* First find the function being called (using self_pc) */ + mov r10, r11 +0: + ldw r10, 0(r10) + beq r10, zero, .Lnew_arc + ldw r2, 4(r10) + bne r2, ra, 0b + + /* Found a function entry for this PC. Now look for an arc with a matching + * from_pc value. There will always be at least one arc. */ + ldw r3, 8(r10) +0: + ldw r2, 4(r3) + beq r2, r8, .Lfound_arc + ldw r3, 0(r3) + bne r3, zero, 0b + +.Lnew_arc: + addi sp, sp, -24 + +.LCFI0: + stw ra, 0(sp) + stw r4, 4(sp) + stw r5, 8(sp) + stw r6, 12(sp) + stw r7, 16(sp) + stw r8, 20(sp) + +.LCFI1: + /* __mcount_record(orig_ra, orig_r8, fn_entry, *fn_head); */ + mov r4, ra + mov r5, r8 + mov r6, r10 + mov r7, r11 + call __mcount_record + + /* restore registers from the stack */ + ldw ra, 0(sp) + ldw r4, 4(sp) + ldw r5, 8(sp) + ldw r6, 12(sp) + ldw r7, 16(sp) + ldw r8, 20(sp) + + addi sp, sp, 24 + +.LCFI2: + ret + +.Lfound_arc: + /* We've found the correct arc record. Increment the count and return */ + ldw r2, 8(r3) + addi r2, r2, 1 + stw r2, 8(r3) + ret + +.Lmcount_end: + + + +/* + * Dwarf2 debug information for the function. This provides GDB with the + * information it needs to backtrace out of this function. + */ + + .section .debug_frame,"",@progbits +.LCIE: + .4byte 2f - 1f /* Length */ +1: + .4byte 0xffffffff /* CIE id */ + .byte 0x1 /* Version */ + .string "" /* Augmentation */ + .uleb128 0x1 /* Code alignment factor */ + .sleb128 -4 /* Data alignment factor */ + .byte 0x1f /* Return address register */ + + .byte 0xc /* Define CFA */ + .uleb128 0x1b /* Register 27 (sp) */ + .uleb128 0x0 /* Offset 0 */ + + .align 2 /* Padding */ +2: + +.LFDE_mcount: + .4byte 2f - 1f /* Length */ +1: + .4byte .LCIE /* Pointer to CIE */ + .4byte mcount /* Start of table entry */ + .4byte .Lmcount_end - mcount /* Size of table entry */ + + .byte 0x4 /* Advance location */ + .4byte .LCFI0 - mcount /* to .LCFI0 */ + .byte 0xe /* Define CFA offset */ + .uleb128 24 /* to 24 */ + + .byte 0x4 /* Advance location */ + .4byte .LCFI1 - .LCFI0 /* to .LCFI1 */ + .byte 0x9f /* Store ra */ + .uleb128 0x6 /* at CFA-24 */ + .byte 0x84 /* Store r4 */ + .uleb128 0x5 /* at CFA-20 */ + .byte 0x85 /* Store r5 */ + .uleb128 0x4 /* at CFA-16 */ + .byte 0x86 /* Store r6 */ + .uleb128 0x3 /* at CFA-12 */ + .byte 0x87 /* Store r7 */ + .uleb128 0x2 /* at CFA-8 */ + .byte 0x88 /* Store r8 */ + .uleb128 0x1 /* at CFA-4 */ + + .byte 0x4 /* Advance location */ + .4byte .LCFI2 - .LCFI1 /* to .LCFI2 */ + .byte 0xe /* Define CFA offset */ + .uleb128 0 /* to 0 */ + .byte 0x8 /* Same value */ + .uleb128 31 /* for ra */ + .byte 0x8 /* Same value */ + .uleb128 4 /* for r4 */ + .byte 0x8 /* Same value */ + .uleb128 5 /* for r5 */ + .byte 0x8 /* Same value */ + .uleb128 6 /* for r6 */ + .byte 0x8 /* Same value */ + .uleb128 7 /* for r7 */ + .byte 0x8 /* Same value */ + .uleb128 8 /* for r8 */ + + .align 2 +2: + diff --git a/software/qsys_tutorial_bsp/HAL/src/alt_open.c b/software/qsys_tutorial_bsp/HAL/src/alt_open.c new file mode 100644 index 0000000..4790f53 --- /dev/null +++ b/software/qsys_tutorial_bsp/HAL/src/alt_open.c @@ -0,0 +1,173 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_errno.h" +#include "sys/alt_warning.h" +#include "priv/alt_file.h" +#include "alt_types.h" +#include "os/alt_syscall.h" + +#ifdef ALT_USE_DIRECT_DRIVERS + +int ALT_OPEN (const char* file, int flags, int mode) +{ + /* Generate a link time warning, should this function ever be called. */ + + ALT_STUB_WARNING(open); + + /* Indicate an error */ + + ALT_ERRNO = ENOSYS; + return -1; +} + +#else /* !ALT_USE_DIRECT_DRIVERS */ + +extern alt_llist alt_dev_list; + +/* + * alt_file_locked() is used by open() to ensure that a device has not been + * previously locked for exclusive access using ioctl(). This test is only + * performed for devices. Filesystems are required to handle the ioctl() call + * themselves, and report the error from the filesystems open() function. + */ + +static int alt_file_locked (alt_fd* fd) +{ + alt_u32 i; + + /* + * Mark the file descriptor as belonging to a device. + */ + + fd->fd_flags |= ALT_FD_DEV; + + /* + * Loop through all current file descriptors searching for one that's locked + * for exclusive access. If a match is found, generate an error. + */ + + for (i = 0; i <= alt_max_fd; i++) + { + if ((alt_fd_list[i].dev == fd->dev) && + (alt_fd_list[i].fd_flags & ALT_FD_EXCL) && + (&alt_fd_list[i] != fd)) + { + return -EACCES; + } + } + + /* The device is not locked */ + + return 0; +} + +/* + * open() is called in order to get a file descriptor that reference the file + * or device named "name". This descriptor can then be used to manipulate the + * file/device using the standard system calls, e.g. write(), read(), ioctl() + * etc. + * + * This is equivalent to the standard open() system call. + * + * ALT_OPEN is mapped onto the open() system call in alt_syscall.h + */ + +int ALT_OPEN (const char* file, int flags, int mode) +{ + alt_dev* dev; + alt_fd* fd; + int index = -1; + int status = -ENODEV; + int isafs = 0; + + /* + * Check the device list, to see if a device with a matching name is + * registered. + */ + + if (!(dev = alt_find_dev (file, &alt_dev_list))) + { + /* No matching device, so try the filesystem list */ + + dev = alt_find_file (file); + isafs = 1; + } + + /* + * If a matching device or filesystem is found, allocate a file descriptor. + */ + + if (dev) + { + if ((index = alt_get_fd (dev)) < 0) + { + status = index; + } + else + { + fd = &alt_fd_list[index]; + fd->fd_flags = (flags & ~ALT_FD_FLAGS_MASK); + + /* If this is a device, ensure it isn't already locked */ + + if (isafs || ((status = alt_file_locked (fd)) >= 0)) + { + /* + * If the device or filesystem provides an open() callback function, + * call it now to perform any device/filesystem specific operations. + */ + + status = (dev->open) ? dev->open(fd, file, flags, mode): 0; + } + } + } + else + { + status = -ENODEV; + } + + /* Allocation failed, so clean up and return an error */ + + if (status < 0) + { + alt_release_fd (index); + ALT_ERRNO = -status; + return -1; + } + + /* return the reference upon success */ + + return index; +} + +#endif /* ALT_USE_DIRECT_DRIVERS */ diff --git a/software/qsys_tutorial_bsp/HAL/src/alt_printf.c b/software/qsys_tutorial_bsp/HAL/src/alt_printf.c new file mode 100644 index 0000000..e742b57 --- /dev/null +++ b/software/qsys_tutorial_bsp/HAL/src/alt_printf.c @@ -0,0 +1,127 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/* + * This file provides a very minimal printf implementation for use with very + * small applications. Only the following format strings are supported: + * %x + * %s + * %c + * %% + */ + +#include +#include "sys/alt_stdio.h" + +/* + * ALT printf function + */ +void +alt_printf(const char* fmt, ... ) +{ + va_list args; + va_start(args, fmt); + const char *w; + char c; + + /* Process format string. */ + w = fmt; + while ((c = *w++) != 0) + { + /* If not a format escape character, just print */ + /* character. Otherwise, process format string. */ + if (c != '%') + { + alt_putchar(c); + } + else + { + /* Get format character. If none */ + /* available, processing is complete. */ + if ((c = *w++) != 0) + { + if (c == '%') + { + /* Process "%" escape sequence. */ + alt_putchar(c); + } + else if (c == 'c') + { + int v = va_arg(args, int); + alt_putchar(v); + } + else if (c == 'x') + { + /* Process hexadecimal number format. */ + unsigned long v = va_arg(args, unsigned long); + unsigned long digit; + int digit_shift; + + /* If the number value is zero, just print and continue. */ + if (v == 0) + { + alt_putchar('0'); + continue; + } + + /* Find first non-zero digit. */ + digit_shift = 28; + while (!(v & (0xF << digit_shift))) + digit_shift -= 4; + + /* Print digits. */ + for (; digit_shift >= 0; digit_shift -= 4) + { + digit = (v & (0xF << digit_shift)) >> digit_shift; + if (digit <= 9) + c = '0' + digit; + else + c = 'a' + digit - 10; + alt_putchar(c); + } + } + else if (c == 's') + { + /* Process string format. */ + char *s = va_arg(args, char *); + + while(*s) + alt_putchar(*s++); + } + } + else + { + break; + } + } + } +} diff --git a/software/qsys_tutorial_bsp/HAL/src/alt_putchar.c b/software/qsys_tutorial_bsp/HAL/src/alt_putchar.c new file mode 100644 index 0000000..badaa02 --- /dev/null +++ b/software/qsys_tutorial_bsp/HAL/src/alt_putchar.c @@ -0,0 +1,59 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +#ifdef ALT_USE_DIRECT_DRIVERS +#include "system.h" +#include "sys/alt_driver.h" +#include "sys/alt_stdio.h" +#endif + +/* + * Uses the ALT_DRIVER_WRITE() macro to call directly to driver if available. + * Otherwise, uses newlib provided putchar() routine. + */ +int +alt_putchar(int c) +{ +#ifdef ALT_USE_DIRECT_DRIVERS + ALT_DRIVER_WRITE_EXTERNS(ALT_STDOUT_DEV); + char c1 = (char)(c & 0xff); + + if (ALT_DRIVER_WRITE(ALT_STDOUT_DEV, &c1, 1, 0) == -1) { + return -1; + } + return c; +#else + return putchar(c); +#endif +} diff --git a/software/qsys_tutorial_bsp/HAL/src/alt_putstr.c b/software/qsys_tutorial_bsp/HAL/src/alt_putstr.c new file mode 100644 index 0000000..5345945 --- /dev/null +++ b/software/qsys_tutorial_bsp/HAL/src/alt_putstr.c @@ -0,0 +1,55 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +#ifdef ALT_USE_DIRECT_DRIVERS +#include +#include "system.h" +#include "sys/alt_driver.h" +#include "sys/alt_stdio.h" +#endif + +/* + * Uses the ALT_DRIVER_WRITE() macro to call directly to driver if available. + * Otherwise, uses newlib provided fputs() routine. + */ +int +alt_putstr(const char* str) +{ +#ifdef ALT_USE_DIRECT_DRIVERS + ALT_DRIVER_WRITE_EXTERNS(ALT_STDOUT_DEV); + return ALT_DRIVER_WRITE(ALT_STDOUT_DEV, str, strlen(str), 0); +#else + return fputs(str, stdout); +#endif +} diff --git a/software/qsys_tutorial_bsp/HAL/src/alt_read.c b/software/qsys_tutorial_bsp/HAL/src/alt_read.c new file mode 100644 index 0000000..1c89777 --- /dev/null +++ b/software/qsys_tutorial_bsp/HAL/src/alt_read.c @@ -0,0 +1,125 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include + +#include "sys/alt_errno.h" +#include "sys/alt_warning.h" +#include "priv/alt_file.h" +#include "os/alt_syscall.h" + +/* + * The read() system call is used to read a block of data from a file or device. + * This function simply vectors the request to the device driver associated + * with the input file descriptor "file". + * + * ALT_READ is mapped onto the read() system call in alt_syscall.h + */ + +#ifdef ALT_USE_DIRECT_DRIVERS + +#include "system.h" +#include "sys/alt_driver.h" + +/* + * Provide minimal version that just reads from the stdin device when provided. + */ + +int ALT_READ (int file, void *ptr, size_t len) +{ +#ifdef ALT_STDIN_PRESENT + ALT_DRIVER_READ_EXTERNS(ALT_STDIN_DEV); +#endif + +#if !defined(ALT_STDIN_PRESENT) + /* Generate a link time warning, should this function ever be called. */ + ALT_STUB_WARNING(read); +#endif + + switch (file) { +#ifdef ALT_STDIN_PRESENT + case 0: /* stdin file descriptor */ + return ALT_DRIVER_READ(ALT_STDIN_DEV, ptr, len, 0); +#endif /* ALT_STDIN_PRESENT */ + default: + ALT_ERRNO = EBADFD; + return -1; + } +} + +#else /* !ALT_USE_DIRECT_DRIVERS */ + +int ALT_READ (int file, void *ptr, size_t len) +{ + alt_fd* fd; + int rval; + + /* + * A common error case is that when the file descriptor was created, the call + * to open() failed resulting in a negative file descriptor. This is trapped + * below so that we don't try and process an invalid file descriptor. + */ + + fd = (file < 0) ? NULL : &alt_fd_list[file]; + + if (fd) + { + /* + * If the file has not been opened with read access, or if the driver does + * not provide an implementation of read(), generate an error. Otherwise + * call the drivers read() function to process the request. + */ + + if (((fd->fd_flags & O_ACCMODE) != O_WRONLY) && + (fd->dev->read)) + { + if ((rval = fd->dev->read(fd, ptr, len)) < 0) + { + ALT_ERRNO = -rval; + return -1; + } + return rval; + } + else + { + ALT_ERRNO = EACCES; + } + } + else + { + ALT_ERRNO = EBADFD; + } + return -1; +} + +#endif /* ALT_USE_DIRECT_DRIVERS */ diff --git a/software/qsys_tutorial_bsp/HAL/src/alt_release_fd.c b/software/qsys_tutorial_bsp/HAL/src/alt_release_fd.c new file mode 100644 index 0000000..84733a7 --- /dev/null +++ b/software/qsys_tutorial_bsp/HAL/src/alt_release_fd.c @@ -0,0 +1,54 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_dev.h" +#include "priv/alt_file.h" + +/* + * alt_release_fd() is called to free an allocated file descriptor. This is + * done by setting the device pointer in the file descriptor structure to zero. + * + * File descriptors correcponding to standard in, standard out and standard + * error cannont be released backed to the pool. They are always reserved. + */ + +void alt_release_fd (int fd) +{ + if (fd > 2) + { + alt_fd_list[fd].fd_flags = 0; + alt_fd_list[fd].dev = 0; + } +} + + + diff --git a/software/qsys_tutorial_bsp/HAL/src/alt_remap_cached.c b/software/qsys_tutorial_bsp/HAL/src/alt_remap_cached.c new file mode 100644 index 0000000..f61cb9c --- /dev/null +++ b/software/qsys_tutorial_bsp/HAL/src/alt_remap_cached.c @@ -0,0 +1,50 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003,2007 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "sys/alt_cache.h" +#include "system.h" + +#ifdef NIOS2_MMU_PRESENT +/* Convert KERNEL region address to IO region address */ +#define BYPASS_DCACHE_MASK (0x1 << 29) +#else +/* Set bit 31 of address to bypass D-cache */ +#define BYPASS_DCACHE_MASK (0x1 << 31) +#endif + +/* + * Convert a pointer to a block of uncached memory, into a block of + * cached memory. + */ + +void* alt_remap_cached (volatile void* ptr, alt_u32 len) +{ + return (void*) (((alt_u32) ptr) & ~BYPASS_DCACHE_MASK); +} diff --git a/software/qsys_tutorial_bsp/HAL/src/alt_remap_uncached.c b/software/qsys_tutorial_bsp/HAL/src/alt_remap_uncached.c new file mode 100644 index 0000000..7ff6302 --- /dev/null +++ b/software/qsys_tutorial_bsp/HAL/src/alt_remap_uncached.c @@ -0,0 +1,51 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003,2007 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "sys/alt_cache.h" +#include "system.h" + +#ifdef NIOS2_MMU_PRESENT +/* Convert KERNEL region address to IO region address */ +#define BYPASS_DCACHE_MASK (0x1 << 29) +#else +/* Set bit 31 of address to bypass D-cache */ +#define BYPASS_DCACHE_MASK (0x1 << 31) +#endif + +/* + * Convert a pointer to a block of cached memory, into a block of + * uncached memory. + */ + +volatile void* alt_remap_uncached (void* ptr, alt_u32 len) +{ + alt_dcache_flush (ptr, len); + return (volatile void*) (((alt_u32) ptr) | BYPASS_DCACHE_MASK); +} diff --git a/software/qsys_tutorial_bsp/HAL/src/alt_rename.c b/software/qsys_tutorial_bsp/HAL/src/alt_rename.c new file mode 100644 index 0000000..48afac0 --- /dev/null +++ b/software/qsys_tutorial_bsp/HAL/src/alt_rename.c @@ -0,0 +1,55 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_errno.h" +#include "sys/alt_warning.h" +#include "os/alt_syscall.h" + +/* + * _rename() is used by newlib to rename an existing file. This is unsupported + * in the HAL environment. However a "do-nothing" implementation is still + * provied for newlib compatability. + * + * ALT_RENAME is mapped onto the _rename() system call in alt_syscall.h + */ + +int ALT_RENAME (char *existing, char *new) +{ + /* Generate a link time warning, should this function ever be called. */ + + ALT_STUB_WARNING(_rename); + + /* Indicate an error */ + + ALT_ERRNO = ENOSYS; + return -1; +} diff --git a/software/qsys_tutorial_bsp/HAL/src/alt_sbrk.c b/software/qsys_tutorial_bsp/HAL/src/alt_sbrk.c new file mode 100644 index 0000000..b8c3799 --- /dev/null +++ b/software/qsys_tutorial_bsp/HAL/src/alt_sbrk.c @@ -0,0 +1,136 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +#include "os/alt_syscall.h" + +#include "sys/alt_irq.h" +#include "sys/alt_stack.h" + +#include "system.h" + +/* + * sbrk() is called to dynamically extend the data segment for the application. + * Thie input argument "incr" is the size of the block to allocate. + * + * This simple implementation does not perform any bounds checking. Memory will + * be allocated, even if the request region colides with the stack or overflows + * the available physical memory. + * + * ALT_SBRK is mapped onto the sbrk() system call in alt_syscall.h + * + * This function is called by the profiling code to allocate memory so must be + * safe if called from an interrupt context. It must also not be instrumented + * because that would lead to an infinate loop. + */ + +extern char __alt_heap_start[]; /* set by linker */ +extern char __alt_heap_limit[]; /* set by linker */ + +static char *heap_end = __alt_heap_start; + +#if defined(ALT_EXCEPTION_STACK) && defined(ALT_STACK_CHECK) +char * alt_exception_old_stack_limit = NULL; +#endif + +caddr_t ALT_SBRK (int incr) __attribute__ ((no_instrument_function )); + +caddr_t ALT_SBRK (int incr) +{ + alt_irq_context context; + char *prev_heap_end; + + context = alt_irq_disable_all(); + + /* Always return data aligned on a word boundary */ + heap_end = (char *)(((unsigned int)heap_end + 3) & ~3); + +#ifdef ALT_MAX_HEAP_BYTES + /* + * User specified a maximum heap size. Return -1 if it would + * be exceeded by this sbrk call. + */ + if (((heap_end + incr) - __alt_heap_start) > ALT_MAX_HEAP_BYTES) { + alt_irq_enable_all(context); + return (caddr_t)-1; + } +#else + if ((heap_end + incr) > __alt_heap_limit) { + alt_irq_enable_all(context); + return (caddr_t)-1; + } +#endif + + prev_heap_end = heap_end; + heap_end += incr; + +#ifdef ALT_STACK_CHECK + /* + * If the stack and heap are contiguous then extending the heap reduces the + * space available for the stack. If we are still using the default stack + * then adjust the stack limit to note this, while checking for stack + * pointer overflow. + * If the stack limit isn't pointing at the top of the heap then the code + * is using a different stack so none of this needs to be done. + */ + + if (alt_stack_limit() == prev_heap_end) + { + if (alt_stack_pointer() <= heap_end) + alt_report_stack_overflow(); + + alt_set_stack_limit(heap_end); + } + +#ifdef ALT_EXCEPTION_STACK + /* + * If we are executing from the exception stack then compare against the + * stack we switched away from as well. The exception stack is a fixed + * size so doesn't need to be checked. + */ + + if (alt_exception_old_stack_limit == prev_heap_end) + { + if (alt_exception_old_stack_limit <= heap_end) + alt_report_stack_overflow(); + + alt_exception_old_stack_limit = heap_end; + } +#endif + +#endif + + alt_irq_enable_all(context); + + return (caddr_t) prev_heap_end; +} diff --git a/software/qsys_tutorial_bsp/HAL/src/alt_settod.c b/software/qsys_tutorial_bsp/HAL/src/alt_settod.c new file mode 100644 index 0000000..59db0f8 --- /dev/null +++ b/software/qsys_tutorial_bsp/HAL/src/alt_settod.c @@ -0,0 +1,96 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include + +#include "sys/alt_errno.h" +#include "sys/alt_alarm.h" +#include "os/alt_syscall.h" + +/* + * "alt_timezone" and "alt_resettime" are the values of the the reset time and + * time zone set through the last call to settimeofday(). By default they are + * zero initialised. + */ + +extern struct timezone alt_timezone; +extern struct timeval alt_resettime; + +/* + * Macro defining the number of micoseconds in a second. + */ + +#define ALT_US (1000000) + + +/* + * settimeofday() can be called to calibrate the system clock, so that + * subsequent calls to gettimeofday() will return the elapsed "wall clock" + * time. + * + * This is done by updating the global structures "alt_resettime" and + * "alt_timezone" so that an immediate call to gettimeofday() would return + * the value specified by "t" and "tz". + * + * Warning: if this function is called concurrently with a call to + * gettimeofday(), the value returned by gettimeofday() will be unreliable. + * + * ALT_SETTIMEOFDAY is mapped onto the settimeofday() system call in + * alt_syscall.h + */ + +int ALT_SETTIMEOFDAY (const struct timeval *t, + const struct timezone *tz) +{ + alt_u32 nticks = alt_nticks (); + alt_u32 tick_rate = alt_ticks_per_second (); + + /* If there is a system clock available, update the current time */ + + if (tick_rate) + { + alt_resettime.tv_sec = t->tv_sec - nticks/tick_rate; + alt_resettime.tv_usec = t->tv_usec - + ((nticks*(ALT_US/tick_rate))%ALT_US); + + alt_timezone.tz_minuteswest = tz->tz_minuteswest; + alt_timezone.tz_dsttime = tz->tz_dsttime; + + return 0; + } + + /* There's no system clock available */ + + ALT_ERRNO = ENOSYS; + return -1; +} diff --git a/software/qsys_tutorial_bsp/HAL/src/alt_software_exception.S b/software/qsys_tutorial_bsp/HAL/src/alt_software_exception.S new file mode 100644 index 0000000..2142594 --- /dev/null +++ b/software/qsys_tutorial_bsp/HAL/src/alt_software_exception.S @@ -0,0 +1,53 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003-2005 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + + /* + * This file provides the global symbol: software_exception. It is provided to + * support legacy code, and should not be used by new software. + * + * It is used by legacy code to invoke the software exception handler as + * defined by version 1.0 of the Nios II kit. It should only be used when you + * are providing your own interrupt entry point, i.e. you are not using + * alt_irq_entry. + */ + +#include "system.h" + + /* + * Pull in the exception handler. + */ + + .globl alt_exception + + .section .exceptions.entry.label, "xa" + + .globl software_exception + .type software_exception, @function +software_exception: diff --git a/software/qsys_tutorial_bsp/HAL/src/alt_stat.c b/software/qsys_tutorial_bsp/HAL/src/alt_stat.c new file mode 100644 index 0000000..44e207b --- /dev/null +++ b/software/qsys_tutorial_bsp/HAL/src/alt_stat.c @@ -0,0 +1,59 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include +#include +#include + +#include "os/alt_syscall.h" + +/* + * The stat() function is similar to the fstat() function in that it is used to + * obtain status information about a file. Instead of using an open file + * descriptor (like fstat()), stat() takes the name of a file as an input + * argument. + * + * ALT_STAT is mapped onto the stat() system call in alt_syscall.h + */ + +int ALT_STAT (const char *file, struct stat *st) +{ + int fd; + int rc; + + fd = open (file, 0); + rc = fstat (fd, st); + close (fd); + + return rc; +} diff --git a/software/qsys_tutorial_bsp/HAL/src/alt_tick.c b/software/qsys_tutorial_bsp/HAL/src/alt_tick.c new file mode 100644 index 0000000..c73488d --- /dev/null +++ b/software/qsys_tutorial_bsp/HAL/src/alt_tick.c @@ -0,0 +1,149 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_irq.h" +#include "sys/alt_alarm.h" +#include "os/alt_hooks.h" +#include "alt_types.h" + +/* + * "_alt_tick_rate" is used to store the value of the system clock frequency + * in ticks per second. It is initialised to zero, which corresponds to there + * being no system clock facility available. + */ + +alt_u32 _alt_tick_rate = 0; + +/* + * "_alt_nticks" is the number of system clock ticks that have elapsed since + * reset. + */ + +volatile alt_u32 _alt_nticks = 0; + +/* + * "alt_alarm_list" is the head of a linked list of registered alarms. This is + * initialised to be an empty list. + */ + +ALT_LLIST_HEAD(alt_alarm_list); + +/* + * alt_alarm_stop() is called to remove an alarm from the list of registered + * alarms. Alternatively an alarm can unregister itself by returning zero when + * the alarm executes. + */ + +void alt_alarm_stop (alt_alarm* alarm) +{ + alt_irq_context irq_context; + + irq_context = alt_irq_disable_all(); + alt_llist_remove (&alarm->llist); + alt_irq_enable_all (irq_context); +} + +/* + * alt_tick() is periodically called by the system clock driver in order to + * process the registered list of alarms. Each alarm is registed with a + * callback interval, and a callback function, "callback". + * + * The return value of the callback function indicates how many ticks are to + * elapse until the next callback. A return value of zero indicates that the + * alarm should be deactivated. + * + * alt_tick() is expected to run at interrupt level. + */ + +void alt_tick (void) +{ + alt_alarm* next; + alt_alarm* alarm = (alt_alarm*) alt_alarm_list.next; + + alt_u32 next_callback; + + /* update the tick counter */ + + _alt_nticks++; + + /* process the registered callbacks */ + + while (alarm != (alt_alarm*) &alt_alarm_list) + { + next = (alt_alarm*) alarm->llist.next; + + /* + * Upon the tick-counter rolling over it is safe to clear the + * roll-over flag; once the flag is cleared this (or subsequnt) + * tick events are enabled to generate an alarm event. + */ + if ((alarm->rollover) && (_alt_nticks == 0)) + { + alarm->rollover = 0; + } + + /* if the alarm period has expired, make the callback */ + if ((alarm->time <= _alt_nticks) && (alarm->rollover == 0)) + { + next_callback = alarm->callback (alarm->context); + + /* deactivate the alarm if the return value is zero */ + + if (next_callback == 0) + { + alt_alarm_stop (alarm); + } + else + { + alarm->time += next_callback; + + /* + * If the desired alarm time causes a roll-over, set the rollover + * flag. This will prevent the subsequent tick event from causing + * an alarm too early. + */ + if(alarm->time < _alt_nticks) + { + alarm->rollover = 1; + } + } + } + alarm = next; + } + + /* + * Update the operating system specific timer facilities. + */ + + ALT_OS_TIME_TICK(); +} + diff --git a/software/qsys_tutorial_bsp/HAL/src/alt_times.c b/software/qsys_tutorial_bsp/HAL/src/alt_times.c new file mode 100644 index 0000000..4dd965d --- /dev/null +++ b/software/qsys_tutorial_bsp/HAL/src/alt_times.c @@ -0,0 +1,71 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +#include "sys/alt_errno.h" +#include "sys/alt_alarm.h" +#include "os/alt_syscall.h" + +/* + * The times() function is used by newlib to obtain elapsed time information. + * The return value is the elapsed time since reset in system clock ticks. Note + * that this is distinct from the strict Posix version of times(), which should + * return the time since: 0 hours, 0 minutes, 0 seconds, January 1, 1970, GMT. + * + * The input structure is filled in with time accounting information. This + * implementation attributes all cpu time to the system. + * + * ALT_TIMES is mapped onto the times() system call in alt_syscall.h + */ + +clock_t ALT_TIMES (struct tms *buf) +{ + clock_t ticks = alt_nticks(); + + /* If there is no system clock present, generate an error */ + + if (!alt_ticks_per_second()) + { + ALT_ERRNO = ENOSYS; + return 0; + } + + /* Otherwise return the elapsed time */ + + buf->tms_utime = 0; + buf->tms_stime = ticks; + buf->tms_cutime = 0; + buf->tms_cstime = 0; + + return ticks; +} diff --git a/software/qsys_tutorial_bsp/HAL/src/alt_uncached_free.c b/software/qsys_tutorial_bsp/HAL/src/alt_uncached_free.c new file mode 100644 index 0000000..6e362ba --- /dev/null +++ b/software/qsys_tutorial_bsp/HAL/src/alt_uncached_free.c @@ -0,0 +1,49 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003,2007 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "sys/alt_cache.h" +#include "system.h" + +#ifdef NIOS2_MMU_PRESENT +/* Convert KERNEL region address to IO region address */ +#define BYPASS_DCACHE_MASK (0x1 << 29) +#else +/* Set bit 31 of address to bypass D-cache */ +#define BYPASS_DCACHE_MASK (0x1 << 31) +#endif + +/* + * Free a block of uncached memory. + */ + +void alt_uncached_free (volatile void* ptr) +{ + free ((void*) (((alt_u32) ptr) & ~BYPASS_DCACHE_MASK)); +} diff --git a/software/qsys_tutorial_bsp/HAL/src/alt_uncached_malloc.c b/software/qsys_tutorial_bsp/HAL/src/alt_uncached_malloc.c new file mode 100644 index 0000000..ab3416d --- /dev/null +++ b/software/qsys_tutorial_bsp/HAL/src/alt_uncached_malloc.c @@ -0,0 +1,55 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003,2007 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "sys/alt_cache.h" +#include "system.h" + +#ifdef NIOS2_MMU_PRESENT +/* Convert KERNEL region address to IO region address */ +#define BYPASS_DCACHE_MASK (0x1 << 29) +#else +/* Set bit 31 of address to bypass D-cache */ +#define BYPASS_DCACHE_MASK (0x1 << 31) +#endif + +/* + * Allocate a block of uncached memory. + */ + +volatile void* alt_uncached_malloc (size_t size) +{ + void* ptr; + + ptr = malloc (size); + + alt_dcache_flush (ptr, size); + + return ptr ? (volatile void*) (((alt_u32) ptr) | BYPASS_DCACHE_MASK) : NULL; +} diff --git a/software/qsys_tutorial_bsp/HAL/src/alt_unlink.c b/software/qsys_tutorial_bsp/HAL/src/alt_unlink.c new file mode 100644 index 0000000..29e35d6 --- /dev/null +++ b/software/qsys_tutorial_bsp/HAL/src/alt_unlink.c @@ -0,0 +1,55 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_errno.h" +#include "sys/alt_warning.h" +#include "os/alt_syscall.h" + +/* + * unlink() is used by newlib to delete an existing link to a file. This is + * unsupported in the HAL environment. However a "do-nothing" implementation + * is still provied for newlib compatability. + * + * ALT_UNLINK is mapped onto the unlink() system call in alt_syscall.h + */ + +int ALT_UNLINK (char *name) +{ + /* Generate a link time warning, should this function ever be called. */ + + ALT_STUB_WARNING(unlink); + + /* Indicate an error */ + + ALT_ERRNO = ENOSYS; + return -1; +} diff --git a/software/qsys_tutorial_bsp/HAL/src/alt_usleep.c b/software/qsys_tutorial_bsp/HAL/src/alt_usleep.c new file mode 100644 index 0000000..2330eb8 --- /dev/null +++ b/software/qsys_tutorial_bsp/HAL/src/alt_usleep.c @@ -0,0 +1,52 @@ +/* + * Copyright (c) 2003 Altera Corporation, San Jose, California, USA. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + * ------------ + * + * Altera does not recommend, suggest or require that this reference design + * file be used in conjunction or combination with any other product. + * + * usleep.c - Microsecond delay routine + */ + +#include + +#include "priv/alt_busy_sleep.h" +#include "os/alt_syscall.h" + +/* + * This function simply calls alt_busy_sleep() to perform the delay. This + * function implements the delay as a calibrated "busy loop". + * + * ALT_USLEEP is mapped onto the usleep() system call in alt_syscall.h + */ + + + +#if defined (__GNUC__) && __GNUC__ >= 4 +int ALT_USLEEP (useconds_t us) +#else +unsigned int ALT_USLEEP (unsigned int us) +#endif +{ + return alt_busy_sleep(us); +} diff --git a/software/qsys_tutorial_bsp/HAL/src/alt_wait.c b/software/qsys_tutorial_bsp/HAL/src/alt_wait.c new file mode 100644 index 0000000..a42f80f --- /dev/null +++ b/software/qsys_tutorial_bsp/HAL/src/alt_wait.c @@ -0,0 +1,52 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_errno.h" +#include "os/alt_syscall.h" + +/* + * wait() is used by newlib to wait for all child processes to exit. Since the + * HAL does not support spawning child processes, this returns immediately as + * there can't be anythign to wait for. + * + * ALT_WAIT is mapped onto the wait() system call in alt_syscall.h + */ + +int ALT_WAIT (int *status) +{ + *status = 0; + + ALT_ERRNO = ECHILD; + + return -1; +} + diff --git a/software/qsys_tutorial_bsp/HAL/src/alt_write.c b/software/qsys_tutorial_bsp/HAL/src/alt_write.c new file mode 100644 index 0000000..51debb5 --- /dev/null +++ b/software/qsys_tutorial_bsp/HAL/src/alt_write.c @@ -0,0 +1,138 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include + +#include "sys/alt_errno.h" +#include "sys/alt_warning.h" +#include "priv/alt_file.h" +#include "os/alt_syscall.h" + +#include "sys/alt_log_printf.h" + +/* + * The write() system call is used to write a block of data to a file or + * device. This function simply vectors the request to the device driver + * associated with the input file descriptor "file". + * + * ALT_WRITE is mapped onto the write() system call in alt_syscall.h + */ + +#ifdef ALT_USE_DIRECT_DRIVERS + +#include "system.h" +#include "sys/alt_driver.h" + +/* + * Provide minimal version that just writes to the stdout/stderr devices + * when provided. + */ + +int ALT_WRITE (int file, const void *ptr, size_t len) +{ +#ifdef ALT_STDOUT_PRESENT + ALT_DRIVER_WRITE_EXTERNS(ALT_STDOUT_DEV); +#endif +#ifdef ALT_STDERR_PRESENT + ALT_DRIVER_WRITE_EXTERNS(ALT_STDERR_DEV); +#endif + +#if !defined(ALT_STDOUT_PRESENT) && !defined(ALT_STDERR_PRESENT) + /* Generate a link time warning, should this function ever be called. */ + ALT_STUB_WARNING(write); +#endif + + switch (file) { +#ifdef ALT_STDOUT_PRESENT + case 1: /* stdout file descriptor */ + return ALT_DRIVER_WRITE(ALT_STDOUT_DEV, ptr, len, 0); +#endif /* ALT_STDOUT_PRESENT */ +#ifdef ALT_STDERR_PRESENT + case 2: /* stderr file descriptor */ + return ALT_DRIVER_WRITE(ALT_STDERR_DEV, ptr, len, 0); +#endif /* ALT_STDERR_PRESENT */ + default: + ALT_ERRNO = EBADFD; + return -1; + } +} + +#else /* !ALT_USE_DIRECT_DRIVERS */ + +int ALT_WRITE (int file, const void *ptr, size_t len) +{ + alt_fd* fd; + int rval; + + /* + * A common error case is that when the file descriptor was created, the call + * to open() failed resulting in a negative file descriptor. This is trapped + * below so that we don't try and process an invalid file descriptor. + */ + + fd = (file < 0) ? NULL : &alt_fd_list[file]; + + if (fd) + { + /* + * If the file has not been opened with write access, or if the driver does + * not provide an implementation of write(), generate an error. Otherwise + * call the drivers write() function to process the request. + */ + + if (((fd->fd_flags & O_ACCMODE) != O_RDONLY) && fd->dev->write) + { + + /* ALT_LOG - see altera_hal/HAL/inc/sys/alt_log_printf.h */ + ALT_LOG_WRITE_FUNCTION(ptr,len); + + if ((rval = fd->dev->write(fd, ptr, len)) < 0) + { + ALT_ERRNO = -rval; + return -1; + } + return rval; + } + else + { + ALT_ERRNO = EACCES; + } + } + else + { + ALT_ERRNO = EBADFD; + } + return -1; +} + +#endif /* ALT_USE_DIRECT_DRIVERS */ diff --git a/software/qsys_tutorial_bsp/HAL/src/altera_nios2_qsys_irq.c b/software/qsys_tutorial_bsp/HAL/src/altera_nios2_qsys_irq.c new file mode 100644 index 0000000..c7a4f93 --- /dev/null +++ b/software/qsys_tutorial_bsp/HAL/src/altera_nios2_qsys_irq.c @@ -0,0 +1,37 @@ +/* + * Copyright (c) 2009 Altera Corporation, San Jose, California, USA. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + * altera_nios2_irq.c - Support for Nios II internal interrupt controller. + * + */ + +#include "sys/alt_irq.h" +#include "altera_nios2_qsys_irq.h" + +/* + * To initialize the internal interrupt controller, just clear the IENABLE + * register so that all possible IRQs are disabled. + */ +void altera_nios2_qsys_irq_init(void) +{ + NIOS2_WRITE_IENABLE(0); +} diff --git a/software/qsys_tutorial_bsp/HAL/src/crt0.S b/software/qsys_tutorial_bsp/HAL/src/crt0.S new file mode 100644 index 0000000..582445d --- /dev/null +++ b/software/qsys_tutorial_bsp/HAL/src/crt0.S @@ -0,0 +1,456 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "system.h" +#include "nios2.h" + +/* Setup header files to work with assembler code. */ +#define ALT_ASM_SRC + +/* Debug logging facility */ +#include "sys/alt_log_printf.h" + +/*************************************************************************\ +| MACROS | +\*************************************************************************/ + +/* + * The new build tools explicitly define macros when alt_load() + * must be called. The define ALT_LOAD_EXPLICITLY_CONTROLLED tells us that + * those macros are controlling if alt_load() needs to be called. + */ +#ifdef ALT_LOAD_EXPLICITLY_CONTROLLED + +/* Need to call alt_load() if any of these sections are being copied. */ +#if defined(ALT_LOAD_COPY_RODATA) || defined(ALT_LOAD_COPY_RWDATA) || defined(ALT_LOAD_COPY_EXCEPTIONS) +#define CALL_ALT_LOAD +#endif + +#else /* !ALT_LOAD_EXPLICITLY_CONTROLLED */ + +/* + * The legacy build tools use the following macros to detect when alt_load() + * needs to be called. + */ + +#define __ALT_LOAD_SECTIONS(res, text, rodata, exc) \ + ((res##_BASE != rodata##_BASE) || \ + (res##_BASE != rwdata##_BASE) || \ + (res##_BASE != exc##_BASE)) + +#define _ALT_LOAD_SECTIONS(res, text, rodata, exc) \ + __ALT_LOAD_SECTIONS(res, text, rodata, exc) + +#define ALT_LOAD_SECTIONS _ALT_LOAD_SECTIONS(ALT_RESET_DEVICE, \ + ALT_RODATA_DEVICE, \ + ALT_RWDATA_DEVICE, \ + ALT_EXCEPTIONS_DEVICE) + +/* Call alt_load() if there is no bootloader and ALT_LOAD_SECTIONS isn't 0. */ +#if defined(ALT_NO_BOOTLOADER) && ALT_LOAD_SECTIONS +#define CALL_ALT_LOAD +#endif + +#endif /* !ALT_LOAD_EXPLICITLY_CONTROLLED */ + +/* + * When the legacy build tools define a macro called ALT_NO_BOOTLOADER, + * it indicates that initialization code is allowed at the reset address. + * The new build tools define a macro called ALT_ALLOW_CODE_AT_RESET for + * the same purpose. + */ +#ifdef ALT_NO_BOOTLOADER +#define ALT_ALLOW_CODE_AT_RESET +#endif + +/*************************************************************************\ +| EXTERNAL REFERENCES | +\*************************************************************************/ + +/* + * The entry point for user code is either "main" in hosted mode, or + * "alt_main" in standalone mode. These are explicitly referenced here, + * to ensure they are built into the executable. This allows the user + * to build them into libraries, rather than supplying them in object + * files at link time. + */ + .globl main + .globl alt_main + +/* + * Create a reference to the software multiply/divide and trap handers, + * so that if they are provided, they will appear in the executable. + */ +#ifndef ALT_NO_INSTRUCTION_EMULATION + .globl alt_exception_muldiv +#endif +#ifdef ALT_TRAP_HANDLER + .globl alt_exception_trap +#endif + +/* + * Linker defined symbols used to initialize bss. + */ +.globl __bss_start +.globl __bss_end + +/*************************************************************************\ +| RESET SECTION (.entry) | +\*************************************************************************/ + +/* + * This is the reset entry point for Nios II. + * + * At reset, only the cache line which contain the reset vector is + * initialized by the hardware. The code within the first cache line + * initializes the remainder of the instruction cache. + */ + + .section .entry, "xa" + .align 5 + +/* + * Explicitly allow the use of r1 (the assembler temporary register) + * within this code. This register is normally reserved for the use of + * the assembler. + */ + .set noat + +/* + * Some tools want to know where the reset vector is. + * Code isn't always provided at the reset vector but at least the + * __reset label always contains the reset vector address because + * it is defined at the start of the .entry section. + */ + + .globl __reset + .type __reset, @function +__reset: + +/* + * Initialize the instruction cache if present (i.e. size > 0) and + * reset code is allowed unless optimizing for RTL simulation. + * RTL simulations can ensure the instruction cache is already initialized + * so skipping this loop speeds up RTL simulation. + */ + +#if NIOS2_ICACHE_SIZE > 0 && defined(ALT_ALLOW_CODE_AT_RESET) && !defined(ALT_SIM_OPTIMIZE) + /* Assume the instruction cache size is always a power of two. */ +#if NIOS2_ICACHE_SIZE > 0x8000 + movhi r2, %hi(NIOS2_ICACHE_SIZE) +#else + movui r2, NIOS2_ICACHE_SIZE +#endif + +0: + initi r2 + addi r2, r2, -NIOS2_ICACHE_LINE_SIZE + bgt r2, zero, 0b +1: + + /* + * The following debug information tells the ISS not to run the loop above + * but to perform its actions using faster internal code. + */ + .pushsection .debug_alt_sim_info + .int 1, 1, 0b, 1b + .popsection +#endif /* Initialize Instruction Cache */ + +/* + * Jump to the _start entry point in the .text section if reset code + * is allowed or if optimizing for RTL simulation. + */ +#if defined(ALT_ALLOW_CODE_AT_RESET) || defined(ALT_SIM_OPTIMIZE) + /* Jump to the _start entry point in the .text section. */ + movhi r1, %hi(_start) + ori r1, r1, %lo(_start) + jmp r1 + + .size __reset, . - __reset +#endif /* Jump to _start */ + +/* + * When not using exit, provide an _exit symbol to prevent unresolved + * references to _exit from the linker script. + */ +#ifdef ALT_NO_EXIT + .globl _exit +_exit: +#endif + +/*************************************************************************\ +| TEXT SECTION (.text) | +\*************************************************************************/ + +/* + * Start of the .text section, and also the code entry point when + * the code is executed by a bootloader rather than directly from reset. + */ + .section .text + .align 2 + + .globl _start + .type _start, @function +_start: + +/* + * Initialize the data cache if present (i.e. size > 0) and not + * optimizing for RTL simulation. + * RTL simulations can ensure the data cache is already initialized + * so skipping this loop speeds up RTL simulation. + */ + +#if NIOS2_DCACHE_SIZE > 0 && !defined(ALT_SIM_OPTIMIZE) + + /* Assume the data cache size is always a power of two. */ +#if NIOS2_DCACHE_SIZE > 0x8000 + movhi r2, %hi(NIOS2_DCACHE_SIZE) +#else + movui r2, NIOS2_DCACHE_SIZE +#endif + +0: + initd 0(r2) + addi r2, r2, -NIOS2_DCACHE_LINE_SIZE + bgt r2, zero, 0b +1: + + /* + * The following debug information tells the ISS not to run the loop above + * but to perform its actions using faster internal code. + */ + .pushsection .debug_alt_sim_info + .int 2, 1, 0b, 1b + .popsection + +#endif /* Initialize Data Cache */ + + /* Log that caches have been initialized. */ + ALT_LOG_PUTS(alt_log_msg_cache) + + /* Log that the stack pointer is about to be setup. */ + ALT_LOG_PUTS(alt_log_msg_stackpointer) + +#if (NIOS2_NUM_OF_SHADOW_REG_SETS == 0) + /* + * Now that the caches are initialized, set up the stack pointer. + * The value provided by the linker is assumed to be correctly aligned. + */ + movhi sp, %hi(__alt_stack_pointer) + ori sp, sp, %lo(__alt_stack_pointer) + + /* Set up the global pointer. */ + movhi gp, %hi(_gp) + ori gp, gp, %lo(_gp) + +#else /* NIOS2_NUM_OF_SHADOW_REG_SETS > 0 */ + + /* + * Set up the GP and SP in all shadow register sets. + */ + + /* + * Check current register set number, if CPU resets into a shadow register + * set, switch register set to 0 by writing zero to SSTATUS register and + * execute an ERET instruction that just jumps to the next PC address + * (use the NEXTPC instruction to get this). + */ + + rdctl r2, status + + /* Get the current register set number (STATUS.CRS). */ + andi r3, r2, NIOS2_STATUS_CRS_MSK + + /* Skip switch register set if STATUS.CRS is 0. */ + beq r3, zero, .Lskip_switch_reg_set + + .set nobreak + + /* Current register set is non-zero, set SSTATUS to 0. */ + mov sstatus, zero + + /* Get next pc and store in ea. */ + nextpc ea + + /* Point to instruction after eret. */ + addi ea, ea, 8 + + /* + * Execute ERET instruction that just jumps to the next PC address + */ + eret + +.Lskip_switch_reg_set: + mov r2, zero + + /* Reset STATUS register */ + wrctl status, r2 + + movui r3, NIOS2_NUM_OF_SHADOW_REG_SETS + + /* Set up the stack pointer in register set 0. */ + movhi sp, %hi(__alt_stack_pointer) + ori sp, sp, %lo(__alt_stack_pointer) + + /* Set up the global pointer in register set 0. */ + movhi gp, %hi(_gp) + ori gp, gp, %lo(_gp) + +.Lsetup_sp_and_gp_loop: + /* + * Setup GP and SP for shadow register set + * from NIOS2_NUM_OF_SHADOW_REG_SETS to 0 + */ + + /* Skip if number of register sets is 0. */ + beq r3, zero, .Lno_shadow_register_set + + + /* Add previous register set STATUS.PRS by 1 */ + movhi r4, 1 + add r2, r2, r4 + + /* Write STATUS */ + wrctl status, r2 + + /* Clear r0 in the shadow register set (not done by hardware) */ + wrprs r0, r0 + + /* Write the GP in previous register set */ + wrprs gp, gp + + /* Only write the SP in previous register set + * if using the seperate exception stack. For normal case (single stack), + * funnel code would read the SP from previous register set. + */ +#ifdef ALT_INTERRUPT_STACK + + movhi et, %hiadj(__alt_interrupt_stack_pointer) + addi et, et, %lo(__alt_interrupt_stack_pointer) + wrprs sp, et + +#endif /* ALT_INTERRUPT_STACK */ + + /* Decrease number of register set counter by 1 */ + addi r3, r3, -1 + + br .Lsetup_sp_and_gp_loop +.Lno_shadow_register_set: + +#endif /* NIOS2_NUM_OF_SHADOW_REG_SETS */ +/* + * Clear the BSS if not optimizing for RTL simulation. + * + * This uses the symbols: __bss_start and __bss_end, which are defined + * by the linker script. They mark the begining and the end of the bss + * region. The linker script guarantees that these values are word aligned. + */ +#ifndef ALT_SIM_OPTIMIZE + /* Log that the BSS is about to be cleared. */ + ALT_LOG_PUTS(alt_log_msg_bss) + + movhi r2, %hi(__bss_start) + ori r2, r2, %lo(__bss_start) + + movhi r3, %hi(__bss_end) + ori r3, r3, %lo(__bss_end) + + beq r2, r3, 1f + +0: + stw zero, (r2) + addi r2, r2, 4 + bltu r2, r3, 0b + +1: + + /* + * The following debug information tells the ISS not to run the loop above + * but to perform its actions using faster internal code. + */ + .pushsection .debug_alt_sim_info + .int 3, 1, 0b, 1b + .popsection +#endif /* ALT_SIM_OPTIMIZE */ + +/* + * The alt_load() facility is normally used when there is no bootloader. + * It copies some sections into RAM so it acts like a mini-bootloader. + */ +#ifdef CALL_ALT_LOAD + +#ifdef ALT_STACK_CHECK + /* + * If the user has selected stack checking then we need to set up a safe + * value in the stack limit register so that the relocation functions + * don't think the stack has overflowed (the contents of the rwdata + * section aren't defined until alt_load() has been called). + */ + mov et, zero +#endif + + call alt_load + +#endif /* CALL_ALT_LOAD */ + +#ifdef ALT_STACK_CHECK + /* + * Set up the stack limit (if required). The linker has set up the + * copy of the variable which is in memory. + */ + + ldw et, %gprel(alt_stack_limit_value)(gp) +#endif + + /* Log that alt_main is about to be called. */ + ALT_LOG_PUTS(alt_log_msg_alt_main) + + /* Call the C entry point. It should never return. */ + call alt_main + + /* Wait in infinite loop in case alt_main does return. */ +alt_after_alt_main: + br alt_after_alt_main + + .size _start, . - _start + +/* + * Add information about the stack base if stack overflow checking is enabled. + */ +#ifdef ALT_STACK_CHECK + .globl alt_stack_limit_value + .section .sdata,"aws",@progbits + .align 2 + .type alt_stack_limit_value, @object + .size alt_stack_limit_value, 4 +alt_stack_limit_value: + .long __alt_stack_limit +#endif diff --git a/software/qsys_tutorial_bsp/Makefile b/software/qsys_tutorial_bsp/Makefile new file mode 100644 index 0000000..d170a1f --- /dev/null +++ b/software/qsys_tutorial_bsp/Makefile @@ -0,0 +1,766 @@ +#------------------------------------------------------------------------------ +# BSP MAKEFILE +# +# This makefile was automatically generated by the nios2-bsp-generate-files +# command. Its purpose is to build a custom Board Support Package (BSP) +# targeting a specific Nios II processor in an SOPC Builder-based design. +# +# To create an application or library Makefile which uses this BSP, try the +# nios2-app-generate-makefile or nios2-lib-generate-makefile commands. +#------------------------------------------------------------------------------ + +#------------------------------------------------------------------------------ +# TOOLS +#------------------------------------------------------------------------------ + +MKDIR := mkdir -p +ECHO := echo +SPACE := $(empty) $(empty) + +#------------------------------------------------------------------------------ +# The adjust-path macro +# +# If COMSPEC is defined, Make is launched from Windows through +# Cygwin. This adjust-path macro will call 'cygpath -u' on all +# paths to ensure they are readable by Make. +# +# If COMSPEC is not defined, Make is launched from *nix, and no adjustment +# is necessary +#------------------------------------------------------------------------------ + +ifndef COMSPEC +ifdef ComSpec +COMSPEC = $(ComSpec) +endif # ComSpec +endif # !COMSPEC + +ifdef COMSPEC + adjust-path = $(subst $(SPACE),\$(SPACE),$(shell cygpath -u "$1")) + adjust-path-mixed = $(subst $(SPACE),\$(SPACE),$(shell cygpath -m "$1")) +else + adjust-path = $(subst $(SPACE),\$(SPACE),$1) + adjust-path-mixed = $(subst $(SPACE),\$(SPACE),$1) +endif + +#------------------------------------------------------------------------------ +# DEFAULT TARGET +# +# The default target, "all", must appear before any other target in the +# Makefile. Note that extra prerequisites are added to the "all" rule later. +#------------------------------------------------------------------------------ +.PHONY: all +all: + @$(ECHO) [BSP build complete] + + +#------------------------------------------------------------------------------ +# PATHS & DIRECTORY NAMES +# +# Explicitly locate absolute path of the BSP root +#------------------------------------------------------------------------------ + +BSP_ROOT_DIR := . + +# Define absolute path to the root of the BSP. +ABS_BSP_ROOT := $(call adjust-path-mixed,$(shell pwd)) + +# Stash all BSP object files here +OBJ_DIR := ./obj + +NEWLIB_DIR = $(BSP_ROOT_DIR)/newlib + + +#------------------------------------------------------------------------------ +# MANAGED CONTENT +# +# All content between the lines "START MANAGED" and "END MANAGED" below is +# generated based on variables in the BSP settings file when the +# nios2-bsp-generate-files command is invoked. If you wish to persist any +# information pertaining to the build process, it is recomended that you +# utilize the BSP settings mechanism to do so. +# +# Note that most variable assignments in this section have a corresponding BSP +# setting that can be changed by using the nios2-bsp-create-settings or +# nios2-bsp-update-settings command before nios2-bsp-generate-files; if you +# want any variable set to a specific value when this Makefile is re-generated +# (to prevent hand-edits from being over-written), use the BSP settings +# facilities above. +#------------------------------------------------------------------------------ + +#START MANAGED + +# The following TYPE comment allows tools to identify the 'type' of target this +# makefile is associated with. +# TYPE: BSP_PRIVATE_MAKEFILE + +# This following VERSION comment indicates the version of the tool used to +# generate this makefile. A makefile variable is provided for VERSION as well. +# ACDS_VERSION: 13.0sp1 +ACDS_VERSION := 13.0sp1 + +# This following BUILD_NUMBER comment indicates the build number of the tool +# used to generate this makefile. +# BUILD_NUMBER: 232 + +SETTINGS_FILE := settings.bsp +SOPC_FILE := C:/Users/takayun/Desktop/qsys_tutorial/nios_system.sopcinfo + +#------------------------------------------------------------------------------- +# TOOL & COMMAND DEFINITIONS +# +# The base command for each build operation are expressed here. Additional +# switches may be expressed here. They will run for all instances of the +# utility. +#------------------------------------------------------------------------------- + +# Archiver command. Creates library files. +AR = nios2-elf-ar + +# Assembler command. Note that CC is used for .S files. +AS = nios2-elf-gcc + +# Custom flags only passed to the archiver. This content of this variable is +# directly passed to the archiver rather than the more standard "ARFLAGS". The +# reason for this is that GNU Make assumes some default content in ARFLAGS. +# This setting defines the value of BSP_ARFLAGS in Makefile. +BSP_ARFLAGS = -src + +# Custom flags only passed to the assembler. This setting defines the value of +# BSP_ASFLAGS in Makefile. +BSP_ASFLAGS = -Wa,-gdwarf2 + +# C/C++ compiler debug level. '-g' provides the default set of debug symbols +# typically required to debug a typical application. Omitting '-g' removes +# debug symbols from the ELF. This setting defines the value of +# BSP_CFLAGS_DEBUG in Makefile. +BSP_CFLAGS_DEBUG = -g + +# C/C++ compiler optimization level. "-O0" = no optimization,"-O2" = "normal" +# optimization, etc. "-O0" is recommended for code that you want to debug since +# compiler optimization can remove variables and produce non-sequential +# execution of code while debugging. This setting defines the value of +# BSP_CFLAGS_OPTIMIZATION in Makefile. +BSP_CFLAGS_OPTIMIZATION = -O0 + +# C/C++ compiler warning level. "-Wall" is commonly used.This setting defines +# the value of BSP_CFLAGS_WARNINGS in Makefile. +BSP_CFLAGS_WARNINGS = -Wall + +# C compiler command. +CC = nios2-elf-gcc -xc + +# C++ compiler command. +CXX = nios2-elf-gcc -xc++ + +# Command used to remove files during 'clean' target. +RM = rm -f + + +#------------------------------------------------------------------------------- +# BUILD PRE & POST PROCESS COMMANDS +# +# The following variables are treated as shell commands in the rule +# definitions for each file-type associated with the BSP build, as well as +# commands run at the beginning and end of the entire BSP build operation. +# Pre-process commands are executed before the relevant command (for example, +# a command defined in the "CC_PRE_PROCESS" variable executes before the C +# compiler for building .c files), while post-process commands are executed +# immediately afterwards. +# +# You can view each pre/post-process command in the "Build Rules: All & +# Clean", "Pattern Rules to Build Objects", and "Library Rules" sections of +# this Makefile. +#------------------------------------------------------------------------------- + + +#------------------------------------------------------------------------------- +# BSP SOURCE BUILD SETTINGS (FLAG GENERATION) +# +# Software build settings such as compiler optimization, debug level, warning +# flags, etc., may be defined in the following variables. The variables below +# are concatenated together in the 'Flags' section of this Makefile to form +# final variables of flags passed to the build tools. +# +# These settings are considered private to the BSP and apply to all library & +# driver files in it; they do NOT automatically propagate to, for example, the +# build settings for an application. +# # For additional detail and syntax requirements, please refer to GCC help +# (example: "nios2-elf-gcc --help --verbose"). +# +# Unless indicated otherwise, multiple entries in each variable should be +# space-separated. +#------------------------------------------------------------------------------- + +# Altera HAL alt_sys_init.c generated source file +GENERATED_C_FILES := $(ABS_BSP_ROOT)/alt_sys_init.c +GENERATED_C_LIB_SRCS += alt_sys_init.c + + +#------------------------------------------------------------------------------- +# BSP SOURCE FILE LISTING +# +# All source files that comprise the BSP are listed here, along with path +# information to each file expressed relative to the BSP root. The precise +# list and location of each file is derived from the driver, operating system, +# or software package source file declarations. +# +# Following specification of the source files for each component, driver, etc., +# each source file type (C, assembly, etc.) is concatenated together and used +# to construct a list of objects. Pattern rules to build each object are then +# used to build each file. +#------------------------------------------------------------------------------- + +# altera_avalon_jtag_uart_driver sources root +altera_avalon_jtag_uart_driver_SRCS_ROOT := drivers + +# altera_avalon_jtag_uart_driver sources +altera_avalon_jtag_uart_driver_C_LIB_SRCS := \ + $(altera_avalon_jtag_uart_driver_SRCS_ROOT)/src/altera_avalon_jtag_uart_init.c \ + $(altera_avalon_jtag_uart_driver_SRCS_ROOT)/src/altera_avalon_jtag_uart_read.c \ + $(altera_avalon_jtag_uart_driver_SRCS_ROOT)/src/altera_avalon_jtag_uart_write.c \ + $(altera_avalon_jtag_uart_driver_SRCS_ROOT)/src/altera_avalon_jtag_uart_ioctl.c \ + $(altera_avalon_jtag_uart_driver_SRCS_ROOT)/src/altera_avalon_jtag_uart_fd.c + +# altera_avalon_pio_driver sources root +altera_avalon_pio_driver_SRCS_ROOT := drivers + +# altera_avalon_pio_driver sources +# altera_nios2_qsys_hal_driver sources root +altera_nios2_qsys_hal_driver_SRCS_ROOT := HAL + +# altera_nios2_qsys_hal_driver sources +altera_nios2_qsys_hal_driver_C_LIB_SRCS := \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/altera_nios2_qsys_irq.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_usleep.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_busy_sleep.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_irq_vars.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_icache_flush.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_icache_flush_all.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_dcache_flush.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_dcache_flush_all.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_dcache_flush_no_writeback.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_instruction_exception_entry.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_irq_register.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_iic.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_remap_cached.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_remap_uncached.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_uncached_free.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_uncached_malloc.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_do_ctors.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_do_dtors.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_gmon.c + +altera_nios2_qsys_hal_driver_ASM_LIB_SRCS := \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_exception_entry.S \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_exception_trap.S \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_exception_muldiv.S \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_irq_entry.S \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_software_exception.S \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_mcount.S \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_log_macro.S \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/crt0.S + +# hal sources root +hal_SRCS_ROOT := HAL + +# hal sources +hal_C_LIB_SRCS := \ + $(hal_SRCS_ROOT)/src/alt_alarm_start.c \ + $(hal_SRCS_ROOT)/src/alt_close.c \ + $(hal_SRCS_ROOT)/src/alt_dev.c \ + $(hal_SRCS_ROOT)/src/alt_dev_llist_insert.c \ + $(hal_SRCS_ROOT)/src/alt_dma_rxchan_open.c \ + $(hal_SRCS_ROOT)/src/alt_dma_txchan_open.c \ + $(hal_SRCS_ROOT)/src/alt_environ.c \ + $(hal_SRCS_ROOT)/src/alt_env_lock.c \ + $(hal_SRCS_ROOT)/src/alt_errno.c \ + $(hal_SRCS_ROOT)/src/alt_execve.c \ + $(hal_SRCS_ROOT)/src/alt_exit.c \ + $(hal_SRCS_ROOT)/src/alt_fcntl.c \ + $(hal_SRCS_ROOT)/src/alt_fd_lock.c \ + $(hal_SRCS_ROOT)/src/alt_fd_unlock.c \ + $(hal_SRCS_ROOT)/src/alt_find_dev.c \ + $(hal_SRCS_ROOT)/src/alt_find_file.c \ + $(hal_SRCS_ROOT)/src/alt_flash_dev.c \ + $(hal_SRCS_ROOT)/src/alt_fork.c \ + $(hal_SRCS_ROOT)/src/alt_fs_reg.c \ + $(hal_SRCS_ROOT)/src/alt_fstat.c \ + $(hal_SRCS_ROOT)/src/alt_get_fd.c \ + $(hal_SRCS_ROOT)/src/alt_getchar.c \ + $(hal_SRCS_ROOT)/src/alt_getpid.c \ + $(hal_SRCS_ROOT)/src/alt_gettod.c \ + $(hal_SRCS_ROOT)/src/alt_iic_isr_register.c \ + $(hal_SRCS_ROOT)/src/alt_instruction_exception_register.c \ + $(hal_SRCS_ROOT)/src/alt_ioctl.c \ + $(hal_SRCS_ROOT)/src/alt_io_redirect.c \ + $(hal_SRCS_ROOT)/src/alt_irq_handler.c \ + $(hal_SRCS_ROOT)/src/alt_isatty.c \ + $(hal_SRCS_ROOT)/src/alt_kill.c \ + $(hal_SRCS_ROOT)/src/alt_link.c \ + $(hal_SRCS_ROOT)/src/alt_load.c \ + $(hal_SRCS_ROOT)/src/alt_log_printf.c \ + $(hal_SRCS_ROOT)/src/alt_lseek.c \ + $(hal_SRCS_ROOT)/src/alt_main.c \ + $(hal_SRCS_ROOT)/src/alt_malloc_lock.c \ + $(hal_SRCS_ROOT)/src/alt_open.c \ + $(hal_SRCS_ROOT)/src/alt_printf.c \ + $(hal_SRCS_ROOT)/src/alt_putchar.c \ + $(hal_SRCS_ROOT)/src/alt_putstr.c \ + $(hal_SRCS_ROOT)/src/alt_read.c \ + $(hal_SRCS_ROOT)/src/alt_release_fd.c \ + $(hal_SRCS_ROOT)/src/alt_rename.c \ + $(hal_SRCS_ROOT)/src/alt_sbrk.c \ + $(hal_SRCS_ROOT)/src/alt_settod.c \ + $(hal_SRCS_ROOT)/src/alt_stat.c \ + $(hal_SRCS_ROOT)/src/alt_tick.c \ + $(hal_SRCS_ROOT)/src/alt_times.c \ + $(hal_SRCS_ROOT)/src/alt_unlink.c \ + $(hal_SRCS_ROOT)/src/alt_wait.c \ + $(hal_SRCS_ROOT)/src/alt_write.c + + +# Assemble all component C source files +COMPONENT_C_LIB_SRCS += \ + $(altera_avalon_jtag_uart_driver_C_LIB_SRCS) \ + $(altera_nios2_qsys_hal_driver_C_LIB_SRCS) \ + $(hal_C_LIB_SRCS) + +# Assemble all component assembly source files +COMPONENT_ASM_LIB_SRCS += \ + $(altera_nios2_qsys_hal_driver_ASM_LIB_SRCS) + +# Assemble all component C++ source files +COMPONENT_CPP_LIB_SRCS += \ + +#END MANAGED + +#------------------------------------------------------------------------------ +# PUBLIC.MK +# +# The generated public.mk file contains BSP information that is shared with +# other external makefiles, such as a Nios II application makefile. System- +# dependent information such as hardware-specific compiler flags and +# simulation file generation are stored here. +# +# In addition, public.mk contains include paths that various software, +# such as a device driver, may need for the C compiler. These paths are +# written to public.mk with respect to the BSP root. In public.mk, each +# path is prefixed with a special variable, $(ALT_LIBRARY_ROOT_DIR). The +# purpose of this variable is to allow an external Makefile to append on +# path information to precisely locate paths expressed in public.mk +# Since this is the BSP Makefile, we set ALT_LIBRARY_ROOT_DIR to point right +# here ("."), at the BSP root. +# +# ALT_LIBRARY_ROOT_DIR must always be set before public.mk is included. +#------------------------------------------------------------------------------ +ALT_LIBRARY_ROOT_DIR := . +include public.mk + + +#------------------------------------------------------------------------------ +# FLAGS +# +# Include paths for BSP files are written into the public.mk file and must +# be added to the existing list of pre-processor flags. In addition, "hooks" +# for standard flags left intentionally empty (CFLAGS, CPPFLAGS, ASFLAGS, +# and CXXFLAGS) are provided for conveniently adding to the relevant flags +# on the command-line or via script that calls make. +#------------------------------------------------------------------------------ +# Assemble final list of compiler flags from generated content +BSP_CFLAGS += \ + $(BSP_CFLAGS_DEFINED_SYMBOLS) \ + $(BSP_CFLAGS_UNDEFINED_SYMBOLS) \ + $(BSP_CFLAGS_OPTIMIZATION) \ + $(BSP_CFLAGS_DEBUG) \ + $(BSP_CFLAGS_WARNINGS) \ + $(BSP_CFLAGS_USER_FLAGS) \ + $(ALT_CFLAGS) \ + $(CFLAGS) + +# Make ready the final list of include directories and other C pre-processor +# flags. Each include path is made ready by prefixing it with "-I". +BSP_CPPFLAGS += \ + $(addprefix -I, $(BSP_INC_DIRS)) \ + $(addprefix -I, $(ALT_INCLUDE_DIRS)) \ + $(ALT_CPPFLAGS) \ + $(CPPFLAGS) + +# Finish off assembler flags with any user-provided flags +BSP_ASFLAGS += $(ASFLAGS) + +# Finish off C++ flags with any user-provided flags +BSP_CXXFLAGS += $(CXXFLAGS) + +# And finally, the ordered list +C_SRCS += $(GENERATED_C_LIB_SRCS) \ + $(COMPONENT_C_LIB_SRCS) + +CXX_SRCS += $(GENERATED_CPP_LIB_SRCS) \ + $(COMPONENT_CPP_LIB_SRCS) + +ASM_SRCS += $(GENERATED_ASM_LIB_SRCS) \ + $(COMPONENT_ASM_LIB_SRCS) + + +#------------------------------------------------------------------------------ +# LIST OF GENERATED FILES +# +# A Nios II BSP relies on the generation of several source files used +# by both the BSP and any applications referencing the BSP. +#------------------------------------------------------------------------------ + + +GENERATED_H_FILES := $(ABS_BSP_ROOT)/system.h + +GENERATED_LINKER_SCRIPT := $(ABS_BSP_ROOT)/linker.x + +GENERATED_FILES += $(GENERATED_H_FILES) \ + $(GENERATED_LINKER_SCRIPT) + + +#------------------------------------------------------------------------------ +# SETUP TO BUILD OBJECTS +# +# List of object files which are to be built. This is constructed from the input +# list of C source files (C_SRCS), C++ source files (CXX_SRCS), and assembler +# source file (ASM_SRCS). The permitted file extensions are: +# +# .c .C - for C files +# .cxx .cc .cpp .CXX .CC .CPP - for C++ files +# .S .s - for assembly files +# +# Extended description: The list of objects is a sorted list (duplicates +# removed) of all possible objects, placed beneath the ./obj directory, +# including any path information stored in the "*_SRCS" variable. The +# "patsubst" commands are used to concatenate together multiple file suffix +# types for common files (i.e. c++ as .cxx, .cc, .cpp). +# +# File extensions are case-insensitive in build rules with the exception of +# assembly sources. Nios II assembly sources with the ".S" extension are first +# run through the C preprocessor. Sources with the ".s" extension are not. +#------------------------------------------------------------------------------ +OBJS = $(sort $(addprefix $(OBJ_DIR)/, \ + $(patsubst %.c, %.o, $(patsubst %.C, %.o, $(C_SRCS))) \ + $(patsubst %.cxx, %.o, $(patsubst %.CXX, %.o, \ + $(patsubst %.cc, %.o, $(patsubst %.CC, %.o, \ + $(patsubst %.cpp, %.o, $(patsubst %.CPP, %.o, \ + $(CXX_SRCS) )))))) \ + $(patsubst %.S, %.o, $(patsubst %.s, %.o, $(ASM_SRCS))) )) + +# List of dependancy files for each object file. +DEPS = $(OBJS:.o=.d) + + +# Rules to force your project to rebuild or relink +# .force_relink file will cause any application that depends on this project to relink +# .force_rebuild file will cause this project to rebuild object files +# .force_rebuild_all file will cause this project and any project that depends on this project to rebuild object files + +FORCE_RELINK_DEP := .force_relink +FORCE_REBUILD_DEP := .force_rebuild +FORCE_REBUILD_ALL_DEP := .force_rebuild_all +FORCE_REBUILD_DEP_LIST := $(FORCE_RELINK_DEP) $(FORCE_REBUILD_DEP) $(FORCE_REBUILD_ALL_DEP) + +$(FORCE_REBUILD_DEP_LIST): + +$(OBJS): $(wildcard $(FORCE_REBUILD_DEP)) $(wildcard $(FORCE_REBUILD_ALL_DEP)) + + +#------------------------------------------------------------------------------ +# BUILD RULES: ALL & CLEAN +#------------------------------------------------------------------------------ +.DELETE_ON_ERROR: + +.PHONY: all +all: build_pre_process +all: Makefile $(GENERATED_FILES) $(BSP_LIB) $(NEWLIB_DIR) +all: build_post_process + + +# clean: remove .o/.a/.d +.PHONY: clean +clean: + @$(RM) -r $(BSP_LIB) $(OBJ_DIR) $(FORCE_REBUILD_DEP_LIST) +ifneq ($(wildcard $(NEWLIB_DIR)),) + @$(RM) -r $(NEWLIB_DIR) +endif + @$(ECHO) [BSP clean complete] + + +#------------------------------------------------------------------------------ +# BUILD PRE/POST PROCESS +#------------------------------------------------------------------------------ +build_pre_process : + $(BUILD_PRE_PROCESS) + +build_post_process : + $(BUILD_POST_PROCESS) + +.PHONY: build_pre_process build_post_process + + + +#------------------------------------------------------------------------------ +# MAKEFILE UP TO DATE? +# +# Is this very Makefile up to date? Someone may have changed the BSP settings +# file or the associated target hardware. +#------------------------------------------------------------------------------ +# Skip this check when clean is the only target +ifneq ($(MAKECMDGOALS),clean) + +ifneq ($(wildcard $(SETTINGS_FILE)),$(SETTINGS_FILE)) +$(warning Warning: BSP Settings File $(SETTINGS_FILE) could not be found.) +endif + +Makefile: $(wildcard $(SETTINGS_FILE)) + @$(ECHO) Makefile not up to date. + @$(ECHO) $(SETTINGS_FILE) has been modified since the BSP Makefile was generated. + @$(ECHO) + @$(ECHO) Generate the BSP to update the Makefile, and then build again. + @$(ECHO) + @$(ECHO) To generate from Eclipse: + @$(ECHO) " 1. Right-click the BSP project." + @$(ECHO) " 2. In the Nios II Menu, click Generate BSP." + @$(ECHO) + @$(ECHO) To generate from the command line: + @$(ECHO) " nios2-bsp-generate-files --settings= --bsp-dir=" + @$(ECHO) + @exit 1 + +ifneq ($(wildcard $(SOPC_FILE)),$(SOPC_FILE)) +$(warning Warning: SOPC File $(SOPC_FILE) could not be found.) +endif + +public.mk: $(wildcard $(SOPC_FILE)) + @$(ECHO) Makefile not up to date. + @$(ECHO) $(SOPC_FILE) has been modified since the BSP was generated. + @$(ECHO) + @$(ECHO) Generate the BSP to update the Makefile, and then build again. + @$(ECHO) + @$(ECHO) To generate from Eclipse: + @$(ECHO) " 1. Right-click the BSP project." + @$(ECHO) " 2. In the Nios II Menu, click Generate BSP." + @$(ECHO) + @$(ECHO) To generate from the command line: + @$(ECHO) " nios2-bsp-generate-files --settings= --bsp-dir=" + @$(ECHO) + @exit 1 + +endif # $(MAKECMDGOALS) != clean + +#------------------------------------------------------------------------------ +# PATTERN RULES TO BUILD OBJECTS +#------------------------------------------------------------------------------ +$(OBJ_DIR)/%.o: %.c + @$(ECHO) Compiling $( + +/* + * Device headers + */ + +#include "altera_nios2_qsys_irq.h" +#include "altera_avalon_jtag_uart.h" + +/* + * Allocate the device storage + */ + +ALTERA_NIOS2_QSYS_IRQ_INSTANCE ( NIOS2_PROCESSOR, nios2_processor); +ALTERA_AVALON_JTAG_UART_INSTANCE ( JTAG_UART, jtag_uart); + +/* + * Initialize the interrupt controller devices + * and then enable interrupts in the CPU. + * Called before alt_sys_init(). + * The "base" parameter is ignored and only + * present for backwards-compatibility. + */ + +void alt_irq_init ( const void* base ) +{ + ALTERA_NIOS2_QSYS_IRQ_INIT ( NIOS2_PROCESSOR, nios2_processor); + alt_irq_cpu_enable_interrupts(); +} + +/* + * Initialize the non-interrupt controller devices. + * Called after alt_irq_init(). + */ + +void alt_sys_init( void ) +{ + ALTERA_AVALON_JTAG_UART_INIT ( JTAG_UART, jtag_uart); +} diff --git a/software/qsys_tutorial_bsp/create-this-bsp b/software/qsys_tutorial_bsp/create-this-bsp new file mode 100644 index 0000000..4b04cc7 --- /dev/null +++ b/software/qsys_tutorial_bsp/create-this-bsp @@ -0,0 +1,49 @@ +#!/bin/bash +# +# This script creates the ucosii_net_zipfs Board Support Package (BSP). + +BSP_TYPE=hal +BSP_DIR=. +SOPC_DIR=../../ +SOPC_FILE=C:/Users/takayun/Desktop/qsys_tutorial/nios_system.sopcinfo +NIOS2_BSP_ARGS="" +CPU_NAME= + + +# Don't run make if create-this-app script is called with --no-make arg +SKIP_MAKE= +while [ $# -gt 0 ] +do + case "$1" in + --no-make) + SKIP_MAKE=1 + ;; + *) + NIOS2_BSP_ARGS="$NIOS2_BSP_ARGS $1" + ;; + esac + shift +done + + +# Run nios2-bsp utility to create a hal BSP in this directory +# for the system with a .sopc file in $SOPC_FILE. +# Deprecating $SOPC_DIR in 10.1. Multiple .sopcinfo files in a directory may exist. + +if [ -z "$SOPC_FILE" ]; then + echo "WARNING: Use of a directory for locating a .sopcinfo file is deprecated in 10.1. Multiple .sopcinfo files may exist. You must specify the full .sopcinfo path." + cmd="nios2-bsp $BSP_TYPE $BSP_DIR $SOPC_DIR $NIOS2_BSP_ARGS $CPU_NAME" +else + cmd="nios2-bsp $BSP_TYPE $BSP_DIR $SOPC_FILE $NIOS2_BSP_ARGS $CPU_NAME" +fi + + +echo "create-this-bsp: Running \"$cmd\"" +$cmd || { + echo "$cmd failed" + exit 1 +} +if [ -z "$SKIP_MAKE" ]; then + echo "create-this-bsp: Running make" + make +fi diff --git a/software/qsys_tutorial_bsp/drivers/inc/altera_avalon_jtag_uart.h b/software/qsys_tutorial_bsp/drivers/inc/altera_avalon_jtag_uart.h new file mode 100644 index 0000000..95d4a99 --- /dev/null +++ b/software/qsys_tutorial_bsp/drivers/inc/altera_avalon_jtag_uart.h @@ -0,0 +1,198 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#ifndef __ALT_AVALON_JTAG_UART_H__ +#define __ALT_AVALON_JTAG_UART_H__ + +#include + +#include "sys/alt_alarm.h" +#include "sys/alt_warning.h" + +#include "os/alt_sem.h" +#include "os/alt_flag.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * If the user wants all drivers to be small rather than fast then make sure + * this one is marked as needing to be small. + */ +#if defined ALT_USE_SMALL_DRIVERS && !defined ALTERA_AVALON_JTAG_UART_SMALL +#define ALTERA_AVALON_JTAG_UART_SMALL +#endif + +/* + * If the user wants to ignore FIFO full error after timeout + */ +#if defined ALT_JTAG_UART_IGNORE_FIFO_FULL_ERROR && !defined ALTERA_AVALON_JTAG_UART_IGNORE_FIFO_FULL_ERROR +#define ALTERA_AVALON_JTAG_UART_IGNORE_FIFO_FULL_ERROR +#endif + +/* + * Constants that can be overriden. + */ +#ifndef ALTERA_AVALON_JTAG_UART_DEFAULT_TIMEOUT +#define ALTERA_AVALON_JTAG_UART_DEFAULT_TIMEOUT 10 +#endif + +#ifndef ALTERA_AVALON_JTAG_UART_BUF_LEN +#define ALTERA_AVALON_JTAG_UART_BUF_LEN 2048 +#endif + +/* + * ALT_JTAG_UART_READ_RDY and ALT_JTAG_UART_WRITE_RDY are the bitmasks + * that define uC/OS-II event flags that are releated to this device. + * + * ALT_JTAG_UART_READ_RDY indicates that there is read data in the buffer + * ready to be processed. ALT_JTAG_UART_WRITE_RDY indicates that the transmitter is + * ready for more data. + */ +#define ALT_JTAG_UART_READ_RDY 0x1 +#define ALT_JTAG_UART_WRITE_RDY 0x2 +#define ALT_JTAG_UART_TIMEOUT 0x4 + +/* + * State structure definition. Each instance of the driver uses one + * of these structures to hold its associated state. + */ + +typedef struct altera_avalon_jtag_uart_state_s +{ + unsigned int base; + +#ifndef ALTERA_AVALON_JTAG_UART_SMALL + + unsigned int timeout; /* Timeout until host is assumed inactive */ + alt_alarm alarm; + unsigned int irq_enable; + unsigned int host_inactive; + + ALT_SEM (read_lock) + ALT_SEM (write_lock) + ALT_FLAG_GRP (events) + + /* The variables below are volatile because they are modified by the + * interrupt routine. Making them volatile and reading them atomically + * means that we don't need any large critical sections. + */ + volatile unsigned int rx_in; + unsigned int rx_out; + unsigned int tx_in; + volatile unsigned int tx_out; + char rx_buf[ALTERA_AVALON_JTAG_UART_BUF_LEN]; + char tx_buf[ALTERA_AVALON_JTAG_UART_BUF_LEN]; + +#endif /* !ALTERA_AVALON_JTAG_UART_SMALL */ + +} altera_avalon_jtag_uart_state; + +/* + * Macros used by alt_sys_init when the ALT file descriptor facility isn't used. + */ + +#ifdef ALTERA_AVALON_JTAG_UART_SMALL + +#define ALTERA_AVALON_JTAG_UART_STATE_INSTANCE(name, state) \ + altera_avalon_jtag_uart_state state = \ + { \ + name##_BASE, \ + } + +#define ALTERA_AVALON_JTAG_UART_STATE_INIT(name, state) + +#else /* !ALTERA_AVALON_JTAG_UART_SMALL */ + +#define ALTERA_AVALON_JTAG_UART_STATE_INSTANCE(name, state) \ + altera_avalon_jtag_uart_state state = \ + { \ + name##_BASE, \ + ALTERA_AVALON_JTAG_UART_DEFAULT_TIMEOUT, \ + } + +/* + * Externally referenced routines + */ +extern void altera_avalon_jtag_uart_init(altera_avalon_jtag_uart_state* sp, + int irq_controller_id, int irq); + +#define ALTERA_AVALON_JTAG_UART_STATE_INIT(name, state) \ + { \ + if (name##_IRQ == ALT_IRQ_NOT_CONNECTED) \ + { \ + ALT_LINK_ERROR ("Error: Interrupt not connected for " #name ". " \ + "You have selected the interrupt driven version of " \ + "the ALTERA Avalon JTAG UART driver, but the " \ + "interrupt is not connected for this device. You can " \ + "select a polled mode driver by checking the 'small " \ + "driver' option in the HAL configuration window, or " \ + "by using the -DALTERA_AVALON_JTAG_UART_SMALL " \ + "preprocessor flag."); \ + } \ + else \ + altera_avalon_jtag_uart_init(&state, \ + name##_IRQ_INTERRUPT_CONTROLLER_ID, \ + name##_IRQ); \ + } + +#endif /* ALTERA_AVALON_JTAG_UART_SMALL */ + +/* + * Include in case non-direct version of driver required. + */ +#include "altera_avalon_jtag_uart_fd.h" + +/* + * Map alt_sys_init macros to direct or non-direct versions. + */ +#ifdef ALT_USE_DIRECT_DRIVERS + +#define ALTERA_AVALON_JTAG_UART_INSTANCE(name, state) \ + ALTERA_AVALON_JTAG_UART_STATE_INSTANCE(name, state) +#define ALTERA_AVALON_JTAG_UART_INIT(name, state) \ + ALTERA_AVALON_JTAG_UART_STATE_INIT(name, state) + +#else /* !ALT_USE_DIRECT_DRIVERS */ + +#define ALTERA_AVALON_JTAG_UART_INSTANCE(name, dev) \ + ALTERA_AVALON_JTAG_UART_DEV_INSTANCE(name, dev) +#define ALTERA_AVALON_JTAG_UART_INIT(name, dev) \ + ALTERA_AVALON_JTAG_UART_DEV_INIT(name, dev) + +#endif /* ALT_USE_DIRECT_DRIVERS */ + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __ALT_AVALON_JTAG_UART_H__ */ diff --git a/software/qsys_tutorial_bsp/drivers/inc/altera_avalon_jtag_uart_fd.h b/software/qsys_tutorial_bsp/drivers/inc/altera_avalon_jtag_uart_fd.h new file mode 100644 index 0000000..b3c3200 --- /dev/null +++ b/software/qsys_tutorial_bsp/drivers/inc/altera_avalon_jtag_uart_fd.h @@ -0,0 +1,125 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2007 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#ifndef __ALT_AVALON_JTAG_UART_FD_H__ +#define __ALT_AVALON_JTAG_UART_FD_H__ + +#include "sys/alt_dev.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * Externally referenced routines + */ +extern int altera_avalon_jtag_uart_read_fd (alt_fd* fd, char* ptr, int len); +extern int altera_avalon_jtag_uart_write_fd (alt_fd* fd, const char* ptr, + int len); + +/* + * Device structure definition. This is needed by alt_sys_init in order to + * reserve memory for the device instance. + */ + +typedef struct altera_avalon_jtag_uart_dev_s +{ + alt_dev dev; + altera_avalon_jtag_uart_state state; +} altera_avalon_jtag_uart_dev; + +/* + * Macros used by alt_sys_init when the ALT file descriptor facility is used. + */ + +#ifdef ALTERA_AVALON_JTAG_UART_SMALL + +#define ALTERA_AVALON_JTAG_UART_DEV_INSTANCE(name, d) \ + static altera_avalon_jtag_uart_dev d = \ + { \ + { \ + ALT_LLIST_ENTRY, \ + name##_NAME, \ + NULL, /* open */ \ + NULL, /* close */ \ + altera_avalon_jtag_uart_read_fd, \ + altera_avalon_jtag_uart_write_fd, \ + NULL, /* lseek */ \ + NULL, /* fstat */ \ + NULL, /* ioctl */ \ + }, \ + { \ + name##_BASE, \ + } \ + } + +#define ALTERA_AVALON_JTAG_UART_DEV_INIT(name, d) alt_dev_reg (&d.dev) + +#else /* !ALTERA_AVALON_JTAG_UART_SMALL */ + +extern int altera_avalon_jtag_uart_close_fd(alt_fd* fd); +extern int altera_avalon_jtag_uart_ioctl_fd (alt_fd* fd, int req, void* arg); + +#define ALTERA_AVALON_JTAG_UART_DEV_INSTANCE(name, d) \ + static altera_avalon_jtag_uart_dev d = \ + { \ + { \ + ALT_LLIST_ENTRY, \ + name##_NAME, \ + NULL, /* open */ \ + altera_avalon_jtag_uart_close_fd, \ + altera_avalon_jtag_uart_read_fd, \ + altera_avalon_jtag_uart_write_fd, \ + NULL, /* lseek */ \ + NULL, /* fstat */ \ + altera_avalon_jtag_uart_ioctl_fd, \ + }, \ + { \ + name##_BASE, \ + ALTERA_AVALON_JTAG_UART_DEFAULT_TIMEOUT, \ + } \ + } + +#define ALTERA_AVALON_JTAG_UART_DEV_INIT(name, d) \ + { \ + ALTERA_AVALON_JTAG_UART_STATE_INIT(name, d.state); \ + \ + /* make the device available to the system */ \ + alt_dev_reg(&d.dev); \ + } + +#endif /* ALTERA_AVALON_JTAG_UART_SMALL */ + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __ALT_AVALON_JTAG_UART_FD_H__ */ diff --git a/software/qsys_tutorial_bsp/drivers/inc/altera_avalon_jtag_uart_regs.h b/software/qsys_tutorial_bsp/drivers/inc/altera_avalon_jtag_uart_regs.h new file mode 100644 index 0000000..7f97160 --- /dev/null +++ b/software/qsys_tutorial_bsp/drivers/inc/altera_avalon_jtag_uart_regs.h @@ -0,0 +1,73 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#ifndef __ALTERA_AVALON_JTAG_UART_REGS_H__ +#define __ALTERA_AVALON_JTAG_UART_REGS_H__ + +#include + +#define ALTERA_AVALON_JTAG_UART_DATA_REG 0 +#define IOADDR_ALTERA_AVALON_JTAG_UART_DATA(base) \ + __IO_CALC_ADDRESS_NATIVE(base, ALTERA_AVALON_JTAG_UART_DATA_REG) +#define IORD_ALTERA_AVALON_JTAG_UART_DATA(base) \ + IORD(base, ALTERA_AVALON_JTAG_UART_DATA_REG) +#define IOWR_ALTERA_AVALON_JTAG_UART_DATA(base, data) \ + IOWR(base, ALTERA_AVALON_JTAG_UART_DATA_REG, data) + +#define ALTERA_AVALON_JTAG_UART_DATA_DATA_MSK (0x000000FF) +#define ALTERA_AVALON_JTAG_UART_DATA_DATA_OFST (0) +#define ALTERA_AVALON_JTAG_UART_DATA_RVALID_MSK (0x00008000) +#define ALTERA_AVALON_JTAG_UART_DATA_RVALID_OFST (15) +#define ALTERA_AVALON_JTAG_UART_DATA_RAVAIL_MSK (0xFFFF0000) +#define ALTERA_AVALON_JTAG_UART_DATA_RAVAIL_OFST (16) + + +#define ALTERA_AVALON_JTAG_UART_CONTROL_REG 1 +#define IOADDR_ALTERA_AVALON_JTAG_UART_CONTROL(base) \ + __IO_CALC_ADDRESS_NATIVE(base, ALTERA_AVALON_JTAG_UART_CONTROL_REG) +#define IORD_ALTERA_AVALON_JTAG_UART_CONTROL(base) \ + IORD(base, ALTERA_AVALON_JTAG_UART_CONTROL_REG) +#define IOWR_ALTERA_AVALON_JTAG_UART_CONTROL(base, data) \ + IOWR(base, ALTERA_AVALON_JTAG_UART_CONTROL_REG, data) + +#define ALTERA_AVALON_JTAG_UART_CONTROL_RE_MSK (0x00000001) +#define ALTERA_AVALON_JTAG_UART_CONTROL_RE_OFST (0) +#define ALTERA_AVALON_JTAG_UART_CONTROL_WE_MSK (0x00000002) +#define ALTERA_AVALON_JTAG_UART_CONTROL_WE_OFST (1) +#define ALTERA_AVALON_JTAG_UART_CONTROL_RI_MSK (0x00000100) +#define ALTERA_AVALON_JTAG_UART_CONTROL_RI_OFST (8) +#define ALTERA_AVALON_JTAG_UART_CONTROL_WI_MSK (0x00000200) +#define ALTERA_AVALON_JTAG_UART_CONTROL_WI_OFST (9) +#define ALTERA_AVALON_JTAG_UART_CONTROL_AC_MSK (0x00000400) +#define ALTERA_AVALON_JTAG_UART_CONTROL_AC_OFST (10) +#define ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_MSK (0xFFFF0000) +#define ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_OFST (16) + +#endif /* __ALTERA_AVALON_JTAG_UART_REGS_H__ */ diff --git a/software/qsys_tutorial_bsp/drivers/inc/altera_avalon_pio_regs.h b/software/qsys_tutorial_bsp/drivers/inc/altera_avalon_pio_regs.h new file mode 100644 index 0000000..052439f --- /dev/null +++ b/software/qsys_tutorial_bsp/drivers/inc/altera_avalon_pio_regs.h @@ -0,0 +1,67 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#ifndef __ALTERA_AVALON_PIO_REGS_H__ +#define __ALTERA_AVALON_PIO_REGS_H__ + +#include + +#define IOADDR_ALTERA_AVALON_PIO_DATA(base) __IO_CALC_ADDRESS_NATIVE(base, 0) +#define IORD_ALTERA_AVALON_PIO_DATA(base) IORD(base, 0) +#define IOWR_ALTERA_AVALON_PIO_DATA(base, data) IOWR(base, 0, data) + +#define IOADDR_ALTERA_AVALON_PIO_DIRECTION(base) __IO_CALC_ADDRESS_NATIVE(base, 1) +#define IORD_ALTERA_AVALON_PIO_DIRECTION(base) IORD(base, 1) +#define IOWR_ALTERA_AVALON_PIO_DIRECTION(base, data) IOWR(base, 1, data) + +#define IOADDR_ALTERA_AVALON_PIO_IRQ_MASK(base) __IO_CALC_ADDRESS_NATIVE(base, 2) +#define IORD_ALTERA_AVALON_PIO_IRQ_MASK(base) IORD(base, 2) +#define IOWR_ALTERA_AVALON_PIO_IRQ_MASK(base, data) IOWR(base, 2, data) + +#define IOADDR_ALTERA_AVALON_PIO_EDGE_CAP(base) __IO_CALC_ADDRESS_NATIVE(base, 3) +#define IORD_ALTERA_AVALON_PIO_EDGE_CAP(base) IORD(base, 3) +#define IOWR_ALTERA_AVALON_PIO_EDGE_CAP(base, data) IOWR(base, 3, data) + + +#define IOADDR_ALTERA_AVALON_PIO_SET_BIT(base) __IO_CALC_ADDRESS_NATIVE(base, 4) +#define IORD_ALTERA_AVALON_PIO_SET_BITS(base) IORD(base, 4) +#define IOWR_ALTERA_AVALON_PIO_SET_BITS(base, data) IOWR(base, 4, data) + +#define IOADDR_ALTERA_AVALON_PIO_CLEAR_BITS(base) __IO_CALC_ADDRESS_NATIVE(base, 5) +#define IORD_ALTERA_AVALON_PIO_CLEAR_BITS(base) IORD(base, 5) +#define IOWR_ALTERA_AVALON_PIO_CLEAR_BITS(base, data) IOWR(base, 5, data) + + + +/* Defintions for direction-register operation with bi-directional PIOs */ +#define ALTERA_AVALON_PIO_DIRECTION_INPUT 0 +#define ALTERA_AVALON_PIO_DIRECTION_OUTPUT 1 + +#endif /* __ALTERA_AVALON_PIO_REGS_H__ */ diff --git a/software/qsys_tutorial_bsp/drivers/src/altera_avalon_jtag_uart_fd.c b/software/qsys_tutorial_bsp/drivers/src/altera_avalon_jtag_uart_fd.c new file mode 100644 index 0000000..53dfc3b --- /dev/null +++ b/software/qsys_tutorial_bsp/drivers/src/altera_avalon_jtag_uart_fd.c @@ -0,0 +1,86 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2007 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "alt_types.h" +#include "sys/alt_dev.h" +#include "altera_avalon_jtag_uart.h" + +extern int altera_avalon_jtag_uart_read(altera_avalon_jtag_uart_state* sp, + char* buffer, int space, int flags); +extern int altera_avalon_jtag_uart_write(altera_avalon_jtag_uart_state* sp, + const char* ptr, int count, int flags); +extern int altera_avalon_jtag_uart_ioctl(altera_avalon_jtag_uart_state* sp, + int req, void* arg); +extern int altera_avalon_jtag_uart_close(altera_avalon_jtag_uart_state* sp, + int flags); + +/* ----------------------------------------------------------------------- */ +/* --------------------- WRAPPERS FOR ALT FD SUPPORT --------------------- */ +/* + * + */ + +int +altera_avalon_jtag_uart_read_fd(alt_fd* fd, char* buffer, int space) +{ + altera_avalon_jtag_uart_dev* dev = (altera_avalon_jtag_uart_dev*) fd->dev; + + return altera_avalon_jtag_uart_read(&dev->state, buffer, space, + fd->fd_flags); +} + +int +altera_avalon_jtag_uart_write_fd(alt_fd* fd, const char* buffer, int space) +{ + altera_avalon_jtag_uart_dev* dev = (altera_avalon_jtag_uart_dev*) fd->dev; + + return altera_avalon_jtag_uart_write(&dev->state, buffer, space, + fd->fd_flags); +} + +#ifndef ALTERA_AVALON_JTAG_UART_SMALL + +int +altera_avalon_jtag_uart_close_fd(alt_fd* fd) +{ + altera_avalon_jtag_uart_dev* dev = (altera_avalon_jtag_uart_dev*) fd->dev; + + return altera_avalon_jtag_uart_close(&dev->state, fd->fd_flags); +} + +int +altera_avalon_jtag_uart_ioctl_fd(alt_fd* fd, int req, void* arg) +{ + altera_avalon_jtag_uart_dev* dev = (altera_avalon_jtag_uart_dev*) fd->dev; + + return altera_avalon_jtag_uart_ioctl(&dev->state, req, arg); +} + +#endif /* ALTERA_AVALON_JTAG_UART_SMALL */ diff --git a/software/qsys_tutorial_bsp/drivers/src/altera_avalon_jtag_uart_init.c b/software/qsys_tutorial_bsp/drivers/src/altera_avalon_jtag_uart_init.c new file mode 100644 index 0000000..7317bec --- /dev/null +++ b/software/qsys_tutorial_bsp/drivers/src/altera_avalon_jtag_uart_init.c @@ -0,0 +1,256 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2007 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include +#include +#include +#include + +#include + +#include "sys/alt_irq.h" +#include "sys/alt_alarm.h" +#include "sys/ioctl.h" +#include "alt_types.h" + +#include "altera_avalon_jtag_uart_regs.h" +#include "altera_avalon_jtag_uart.h" + +#include "sys/alt_log_printf.h" + +#ifndef ALTERA_AVALON_JTAG_UART_SMALL + +/* ----------------------------------------------------------- */ +/* ------------------------- FAST DRIVER --------------------- */ +/* ----------------------------------------------------------- */ +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT +static void altera_avalon_jtag_uart_irq(void* context); +#else +static void altera_avalon_jtag_uart_irq(void* context, alt_u32 id); +#endif +static alt_u32 altera_avalon_jtag_uart_timeout(void* context); + +/* + * Driver initialization code. Register interrupts and start a timer + * which we can use to check whether the host is there. + * Return 1 on sucessful IRQ register and 0 on failure. + */ + +void altera_avalon_jtag_uart_init(altera_avalon_jtag_uart_state* sp, + int irq_controller_id, int irq) +{ + ALT_FLAG_CREATE(&sp->events, 0); + ALT_SEM_CREATE(&sp->read_lock, 1); + ALT_SEM_CREATE(&sp->write_lock, 1); + + /* enable read interrupts at the device */ + sp->irq_enable = ALTERA_AVALON_JTAG_UART_CONTROL_RE_MSK; + + IOWR_ALTERA_AVALON_JTAG_UART_CONTROL(sp->base, sp->irq_enable); + + /* register the interrupt handler */ +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT + alt_ic_isr_register(irq_controller_id, irq, altera_avalon_jtag_uart_irq, + sp, NULL); +#else + alt_irq_register(irq, sp, altera_avalon_jtag_uart_irq); +#endif + + /* Register an alarm to go off every second to check for presence of host */ + sp->host_inactive = 0; + + if (alt_alarm_start(&sp->alarm, alt_ticks_per_second(), + &altera_avalon_jtag_uart_timeout, sp) < 0) + { + /* If we can't set the alarm then record "don't know if host present" + * and behave as though the host is present. + */ + sp->timeout = INT_MAX; + } + + /* ALT_LOG - see altera_hal/HAL/inc/sys/alt_log_printf.h */ + ALT_LOG_JTAG_UART_ALARM_REGISTER(sp, sp->base); +} + +/* + * Interrupt routine + */ +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT +static void altera_avalon_jtag_uart_irq(void* context) +#else +static void altera_avalon_jtag_uart_irq(void* context, alt_u32 id) +#endif +{ + altera_avalon_jtag_uart_state* sp = (altera_avalon_jtag_uart_state*) context; + unsigned int base = sp->base; + + /* ALT_LOG - see altera_hal/HAL/inc/sys/alt_log_printf.h */ + ALT_LOG_JTAG_UART_ISR_FUNCTION(base, sp); + + for ( ; ; ) + { + unsigned int control = IORD_ALTERA_AVALON_JTAG_UART_CONTROL(base); + + /* Return once nothing more to do */ + if ((control & (ALTERA_AVALON_JTAG_UART_CONTROL_RI_MSK | ALTERA_AVALON_JTAG_UART_CONTROL_WI_MSK)) == 0) + break; + + if (control & ALTERA_AVALON_JTAG_UART_CONTROL_RI_MSK) + { + /* process a read irq. Start by assuming that there is data in the + * receive FIFO (otherwise why would we have been interrupted?) + */ + unsigned int data = 1 << ALTERA_AVALON_JTAG_UART_DATA_RAVAIL_OFST; + + for ( ; ; ) + { + /* Check whether there is space in the buffer. If not then we must not + * read any characters from the buffer as they will be lost. + */ + unsigned int next = (sp->rx_in + 1) % ALTERA_AVALON_JTAG_UART_BUF_LEN; + if (next == sp->rx_out) + break; + + /* Try to remove a character from the FIFO and find out whether there + * are any more characters remaining. + */ + data = IORD_ALTERA_AVALON_JTAG_UART_DATA(base); + + if ((data & ALTERA_AVALON_JTAG_UART_DATA_RVALID_MSK) == 0) + break; + + sp->rx_buf[sp->rx_in] = (data & ALTERA_AVALON_JTAG_UART_DATA_DATA_MSK) >> ALTERA_AVALON_JTAG_UART_DATA_DATA_OFST; + sp->rx_in = (sp->rx_in + 1) % ALTERA_AVALON_JTAG_UART_BUF_LEN; + + /* Post an event to notify jtag_uart_read that a character has been read */ + ALT_FLAG_POST (sp->events, ALT_JTAG_UART_READ_RDY, OS_FLAG_SET); + } + + if (data & ALTERA_AVALON_JTAG_UART_DATA_RAVAIL_MSK) + { + /* If there is still data available here then the buffer is full + * so turn off receive interrupts until some space becomes available. + */ + sp->irq_enable &= ~ALTERA_AVALON_JTAG_UART_CONTROL_RE_MSK; + IOWR_ALTERA_AVALON_JTAG_UART_CONTROL(base, sp->irq_enable); + + /* Dummy read to ensure IRQ is cleared prior to ISR completion */ + IORD_ALTERA_AVALON_JTAG_UART_CONTROL(base); + } + } + + if (control & ALTERA_AVALON_JTAG_UART_CONTROL_WI_MSK) + { + /* process a write irq */ + unsigned int space = (control & ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_MSK) >> ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_OFST; + + while (space > 0 && sp->tx_out != sp->tx_in) + { + IOWR_ALTERA_AVALON_JTAG_UART_DATA(base, sp->tx_buf[sp->tx_out]); + + sp->tx_out = (sp->tx_out + 1) % ALTERA_AVALON_JTAG_UART_BUF_LEN; + + /* Post an event to notify jtag_uart_write that a character has been written */ + ALT_FLAG_POST (sp->events, ALT_JTAG_UART_WRITE_RDY, OS_FLAG_SET); + + space--; + } + + if (space > 0) + { + /* If we don't have any more data available then turn off the TX interrupt */ + sp->irq_enable &= ~ALTERA_AVALON_JTAG_UART_CONTROL_WE_MSK; + IOWR_ALTERA_AVALON_JTAG_UART_CONTROL(sp->base, sp->irq_enable); + + /* Dummy read to ensure IRQ is cleared prior to ISR completion */ + IORD_ALTERA_AVALON_JTAG_UART_CONTROL(base); + } + } + } +} + +/* + * Timeout routine is called every second + */ + +static alt_u32 +altera_avalon_jtag_uart_timeout(void* context) +{ + altera_avalon_jtag_uart_state* sp = (altera_avalon_jtag_uart_state *) context; + + unsigned int control = IORD_ALTERA_AVALON_JTAG_UART_CONTROL(sp->base); + + if (control & ALTERA_AVALON_JTAG_UART_CONTROL_AC_MSK) + { + IOWR_ALTERA_AVALON_JTAG_UART_CONTROL(sp->base, sp->irq_enable | ALTERA_AVALON_JTAG_UART_CONTROL_AC_MSK); + sp->host_inactive = 0; + } + else if (sp->host_inactive < INT_MAX - 2) { + sp->host_inactive++; + + if (sp->host_inactive >= sp->timeout) { + /* Post an event to indicate host is inactive (for jtag_uart_read */ + ALT_FLAG_POST (sp->events, ALT_JTAG_UART_TIMEOUT, OS_FLAG_SET); + } + } + + return alt_ticks_per_second(); +} + +/* + * The close() routine is implemented to drain the JTAG UART transmit buffer + * when not in "small" mode. This routine will wait for transimt data to be + * emptied unless a timeout from host-activity occurs. If the driver flags + * have been set to non-blocking mode, this routine will exit immediately if + * any data remains. This routine should be called indirectly (i.e. though + * the C library close() routine) so that the file descriptor associated + * with the relevant stream (i.e. stdout) can be closed as well. This routine + * does not manage file descriptors. + * + * The close routine is not implemented for the small driver; instead it will + * map to null. This is because the small driver simply waits while characters + * are transmitted; there is no interrupt-serviced buffer to empty + */ +int altera_avalon_jtag_uart_close(altera_avalon_jtag_uart_state* sp, int flags) +{ + /* + * Wait for all transmit data to be emptied by the JTAG UART ISR, or + * for a host-inactivity timeout, in which case transmit data will be lost + */ + while ( (sp->tx_out != sp->tx_in) && (sp->host_inactive < sp->timeout) ) { + if (flags & O_NONBLOCK) { + return -EWOULDBLOCK; + } + } + + return 0; +} + +#endif /* !ALTERA_AVALON_JTAG_UART_SMALL */ diff --git a/software/qsys_tutorial_bsp/drivers/src/altera_avalon_jtag_uart_ioctl.c b/software/qsys_tutorial_bsp/drivers/src/altera_avalon_jtag_uart_ioctl.c new file mode 100644 index 0000000..cf71e6f --- /dev/null +++ b/software/qsys_tutorial_bsp/drivers/src/altera_avalon_jtag_uart_ioctl.c @@ -0,0 +1,86 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include +#include +#include +#include + +#include + +#include "sys/ioctl.h" +#include "alt_types.h" + +#include "altera_avalon_jtag_uart_regs.h" +#include "altera_avalon_jtag_uart.h" + +#include "sys/alt_log_printf.h" + +#ifndef ALTERA_AVALON_JTAG_UART_SMALL + +/* ----------------------------------------------------------- */ +/* ------------------------- FAST DRIVER --------------------- */ +/* ----------------------------------------------------------- */ + +int +altera_avalon_jtag_uart_ioctl(altera_avalon_jtag_uart_state* sp, int req, + void* arg) +{ + int rc = -ENOTTY; + + switch (req) + { + case TIOCSTIMEOUT: + /* Set the time to wait until assuming host is not connected */ + if (sp->timeout != INT_MAX) + { + int timeout = *((int *)arg); + sp->timeout = (timeout >= 2 && timeout < INT_MAX) ? timeout : INT_MAX - 1; + rc = 0; + } + break; + + case TIOCGCONNECTED: + /* Find out whether host is connected */ + if (sp->timeout != INT_MAX) + { + *((int *)arg) = (sp->host_inactive < sp->timeout) ? 1 : 0; + rc = 0; + } + break; + + default: + break; + } + + return rc; +} + +#endif /* !ALTERA_AVALON_JTAG_UART_SMALL */ diff --git a/software/qsys_tutorial_bsp/drivers/src/altera_avalon_jtag_uart_read.c b/software/qsys_tutorial_bsp/drivers/src/altera_avalon_jtag_uart_read.c new file mode 100644 index 0000000..5657adb --- /dev/null +++ b/software/qsys_tutorial_bsp/drivers/src/altera_avalon_jtag_uart_read.c @@ -0,0 +1,205 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include +#include +#include +#include + +#include + +#include "sys/alt_irq.h" +#include "sys/alt_alarm.h" +#include "sys/ioctl.h" +#include "alt_types.h" + +#include "altera_avalon_jtag_uart_regs.h" +#include "altera_avalon_jtag_uart.h" + +#include "sys/alt_log_printf.h" + +#ifdef __ucosii__ +#include "includes.h" +#endif /* __ucosii__ */ + +#ifdef ALTERA_AVALON_JTAG_UART_SMALL + +/* ----------------------------------------------------------- */ +/* ----------------------- SMALL DRIVER ---------------------- */ +/* ----------------------------------------------------------- */ + +/* Read routine. The small version blocks until it has at least one byte + * available, it then returns as much as is immediately available without + * waiting any more. It's performance will be very poor without + * interrupts. + */ + +int +altera_avalon_jtag_uart_read(altera_avalon_jtag_uart_state* sp, + char* buffer, int space, int flags) +{ + unsigned int base = sp->base; + + char * ptr = buffer; + char * end = buffer + space; + + while (ptr < end) + { + unsigned int data = IORD_ALTERA_AVALON_JTAG_UART_DATA(base); + + if (data & ALTERA_AVALON_JTAG_UART_DATA_RVALID_MSK) + *ptr++ = (data & ALTERA_AVALON_JTAG_UART_DATA_DATA_MSK) >> ALTERA_AVALON_JTAG_UART_DATA_DATA_OFST; + else if (ptr != buffer) + break; + else if(flags & O_NONBLOCK) + break; + + } + + if (ptr != buffer) + return ptr - buffer; + else if (flags & O_NONBLOCK) + return -EWOULDBLOCK; + else + return -EIO; +} + +#else /* !ALTERA_AVALON_JTAG_UART_SMALL */ + +/* ----------------------------------------------------------- */ +/* ----------------------- FAST DRIVER ----------------------- */ +/* ----------------------------------------------------------- */ + +int +altera_avalon_jtag_uart_read(altera_avalon_jtag_uart_state* sp, + char * buffer, int space, int flags) +{ + char * ptr = buffer; + + alt_irq_context context; + unsigned int n; + + /* + * When running in a multi threaded environment, obtain the "read_lock" + * semaphore. This ensures that reading from the device is thread-safe. + */ + ALT_SEM_PEND (sp->read_lock, 0); + + while (space > 0) + { + unsigned int in, out; + + /* Read as much data as possible */ + do + { + in = sp->rx_in; + out = sp->rx_out; + + if (in >= out) + n = in - out; + else + n = ALTERA_AVALON_JTAG_UART_BUF_LEN - out; + + if (n == 0) + break; /* No more data available */ + + if (n > space) + n = space; + + memcpy(ptr, sp->rx_buf + out, n); + ptr += n; + space -= n; + + sp->rx_out = (out + n) % ALTERA_AVALON_JTAG_UART_BUF_LEN; + } + while (space > 0); + + /* If we read any data then return it */ + if (ptr != buffer) + break; + + /* If in non-blocking mode then return error */ + if (flags & O_NONBLOCK) + break; + +#ifdef __ucosii__ + /* OS Present: Pend on a flag if the OS is running, otherwise spin */ + if(OSRunning == OS_TRUE) { + /* + * When running in a multi-threaded mode, we pend on the read event + * flag set and timeout event flag set in the isr. This avoids wasting CPU + * cycles waiting in this thread, when we could be doing something more + * profitable elsewhere. + */ + ALT_FLAG_PEND (sp->events, + ALT_JTAG_UART_READ_RDY | ALT_JTAG_UART_TIMEOUT, + OS_FLAG_WAIT_SET_ANY + OS_FLAG_CONSUME, + 0); + } + else { + /* Spin until more data arrives or until host disconnects */ + while (in == sp->rx_in && sp->host_inactive < sp->timeout) + ; + } +#else + /* No OS: Always spin */ + while (in == sp->rx_in && sp->host_inactive < sp->timeout) + ; +#endif /* __ucosii__ */ + + if (in == sp->rx_in) + break; + } + + /* + * Now that access to the circular buffer is complete, release the read + * semaphore so that other threads can access the buffer. + */ + + ALT_SEM_POST (sp->read_lock); + + if (ptr != buffer) + { + /* If we read any data then there is space in the buffer so enable interrupts */ + context = alt_irq_disable_all(); + sp->irq_enable |= ALTERA_AVALON_JTAG_UART_CONTROL_RE_MSK; + IOWR_ALTERA_AVALON_JTAG_UART_CONTROL(sp->base, sp->irq_enable); + alt_irq_enable_all(context); + } + + if (ptr != buffer) + return ptr - buffer; + else if (flags & O_NONBLOCK) + return -EWOULDBLOCK; + else + return -EIO; +} + +#endif /* ALTERA_AVALON_JTAG_UART_SMALL */ diff --git a/software/qsys_tutorial_bsp/drivers/src/altera_avalon_jtag_uart_write.c b/software/qsys_tutorial_bsp/drivers/src/altera_avalon_jtag_uart_write.c new file mode 100644 index 0000000..11aeca1 --- /dev/null +++ b/software/qsys_tutorial_bsp/drivers/src/altera_avalon_jtag_uart_write.c @@ -0,0 +1,217 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include +#include +#include +#include + +#include + +#include "sys/alt_irq.h" +#include "sys/alt_alarm.h" +#include "sys/ioctl.h" +#include "alt_types.h" + +#include "altera_avalon_jtag_uart_regs.h" +#include "altera_avalon_jtag_uart.h" + +#include "sys/alt_log_printf.h" + +#ifdef __ucosii__ +#include "includes.h" +#endif /* __ucosii__ */ + +#ifdef ALTERA_AVALON_JTAG_UART_SMALL + +/* ----------------------------------------------------------- */ +/* ------------------------ SMALL DRIVER --------------------- */ +/* ----------------------------------------------------------- */ + +/* Write routine. The small version blocks when there is no space to write + * into, so it's performance will be very bad if you are writing more than + * one FIFOs worth of data. But you said you didn't want to use interrupts :-) + */ + +int altera_avalon_jtag_uart_write(altera_avalon_jtag_uart_state* sp, + const char * ptr, int count, int flags) +{ + unsigned int base = sp->base; + + const char * end = ptr + count; + + while (ptr < end) + if ((IORD_ALTERA_AVALON_JTAG_UART_CONTROL(base) & ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_MSK) != 0) + IOWR_ALTERA_AVALON_JTAG_UART_DATA(base, *ptr++); + + return count; +} + +#else /* !ALTERA_AVALON_JTAG_UART_SMALL */ + +/* ----------------------------------------------------------- */ +/* ------------------------- FAST DRIVER --------------------- */ +/* ----------------------------------------------------------- */ + +int +altera_avalon_jtag_uart_write(altera_avalon_jtag_uart_state* sp, + const char * ptr, int count, int flags) +{ + /* Remove warning at optimisation level 03 by seting out to 0 */ + unsigned int in, out=0; + unsigned int n; + alt_irq_context context; + + const char * start = ptr; + + /* + * When running in a multi threaded environment, obtain the "write_lock" + * semaphore. This ensures that writing to the device is thread-safe. + */ + ALT_SEM_PEND (sp->write_lock, 0); + + do + { + /* Copy as much as we can into the transmit buffer */ + while (count > 0) + { + /* We need a stable value of the out pointer to calculate the space available */ + in = sp->tx_in; + out = sp->tx_out; + + if (in < out) + n = out - 1 - in; + else if (out > 0) + n = ALTERA_AVALON_JTAG_UART_BUF_LEN - in; + else + n = ALTERA_AVALON_JTAG_UART_BUF_LEN - 1 - in; + + if (n == 0) + break; + + if (n > count) + n = count; + + memcpy(sp->tx_buf + in, ptr, n); + ptr += n; + count -= n; + + sp->tx_in = (in + n) % ALTERA_AVALON_JTAG_UART_BUF_LEN; + } + + /* + * If interrupts are disabled then we could transmit here, we only need + * to enable interrupts if there is no space left in the FIFO + * + * For now kick the interrupt routine every time to make it transmit + * the data + */ + context = alt_irq_disable_all(); + sp->irq_enable |= ALTERA_AVALON_JTAG_UART_CONTROL_WE_MSK; + IOWR_ALTERA_AVALON_JTAG_UART_CONTROL(sp->base, sp->irq_enable); + alt_irq_enable_all(context); + + /* + * If there is any data left then either return now or block until + * some has been sent + */ + /* consider: test whether there is anything there while doing this and delay for at most 2s. */ + if (count > 0) + { + if (flags & O_NONBLOCK) + break; + +#ifdef __ucosii__ + /* OS Present: Pend on a flag if the OS is running, otherwise spin */ + if(OSRunning == OS_TRUE) { + /* + * When running in a multi-threaded mode, we pend on the write event + * flag set or the timeout flag in the isr. This avoids wasting CPU + * cycles waiting in this thread, when we could be doing something + * more profitable elsewhere. + */ +#ifdef ALTERA_AVALON_JTAG_UART_IGNORE_FIFO_FULL_ERROR + if(!sp->host_inactive) +#endif + ALT_FLAG_PEND (sp->events, + ALT_JTAG_UART_WRITE_RDY | ALT_JTAG_UART_TIMEOUT, + OS_FLAG_WAIT_SET_ANY + OS_FLAG_CONSUME, + 0); + } + else { + /* + * OS not running: Wait for data to be removed from buffer. + * Once the interrupt routine has removed some data then we + * will be able to insert some more. + */ + while (out == sp->tx_out && sp->host_inactive < sp->timeout) + ; + } +#else + /* + * No OS present: Always wait for data to be removed from buffer. Once + * the interrupt routine has removed some data then we will be able to + * insert some more. + */ + while (out == sp->tx_out && sp->host_inactive < sp->timeout) + ; +#endif /* __ucosii__ */ + + if (out == sp->tx_out) + break; + } + } + while (count > 0); + + /* + * Now that access to the circular buffer is complete, release the write + * semaphore so that other threads can access the buffer. + */ + ALT_SEM_POST (sp->write_lock); + + if (ptr != start) + return ptr - start; + else if (flags & O_NONBLOCK) + return -EWOULDBLOCK; +#ifdef ALTERA_AVALON_JTAG_UART_IGNORE_FIFO_FULL_ERROR + else if (sp->host_inactive >= sp->timeout) { + /* + * Reset the software FIFO, hardware FIFO could not be reset. + * Just throw away characters without reporting error. + */ + sp->tx_out = sp->tx_in = 0; + return ptr - start + count; + } +#endif + else + return -EIO; /* Host not connected */ +} + +#endif /* ALTERA_AVALON_JTAG_UART_SMALL */ diff --git a/software/qsys_tutorial_bsp/linker.h b/software/qsys_tutorial_bsp/linker.h new file mode 100644 index 0000000..03ce23e --- /dev/null +++ b/software/qsys_tutorial_bsp/linker.h @@ -0,0 +1,101 @@ +/* + * linker.h - Linker script mapping information + * + * Machine generated for CPU 'nios2_processor' in SOPC Builder design 'nios_system' + * SOPC Builder design path: C:/Users/takayun/Desktop/qsys_tutorial/nios_system.sopcinfo + * + * Generated: Thu Oct 13 17:08:43 JST 2016 + */ + +/* + * DO NOT MODIFY THIS FILE + * + * Changing this file will have subtle consequences + * which will almost certainly lead to a nonfunctioning + * system. If you do modify this file, be aware that your + * changes will be overwritten and lost when this file + * is generated again. + * + * DO NOT MODIFY THIS FILE + */ + +/* + * License Agreement + * + * Copyright (c) 2008 + * Altera Corporation, San Jose, California, USA. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + * This agreement shall be governed in all respects by the laws of the State + * of California and by the laws of the United States of America. + */ + +#ifndef __LINKER_H_ +#define __LINKER_H_ + + +/* + * BSP controls alt_load() behavior in crt0. + * + */ + +#define ALT_LOAD_EXPLICITLY_CONTROLLED + + +/* + * Base address and span (size in bytes) of each linker region + * + */ + +#define ONCHIP_MEMORY_REGION_BASE 0x20 +#define ONCHIP_MEMORY_REGION_SPAN 4064 +#define RESET_REGION_BASE 0x0 +#define RESET_REGION_SPAN 32 + + +/* + * Devices associated with code sections + * + */ + +#define ALT_EXCEPTIONS_DEVICE ONCHIP_MEMORY +#define ALT_RESET_DEVICE ONCHIP_MEMORY +#define ALT_RODATA_DEVICE ONCHIP_MEMORY +#define ALT_RWDATA_DEVICE ONCHIP_MEMORY +#define ALT_TEXT_DEVICE ONCHIP_MEMORY + + +/* + * Initialization code at the reset address is allowed (e.g. no external bootloader). + * + */ + +#define ALT_ALLOW_CODE_AT_RESET + + +/* + * The alt_load() facility is called from crt0 to copy sections into RAM. + * + */ + +#define ALT_LOAD_COPY_RWDATA + +#endif /* __LINKER_H_ */ diff --git a/software/qsys_tutorial_bsp/linker.x b/software/qsys_tutorial_bsp/linker.x new file mode 100644 index 0000000..342af30 --- /dev/null +++ b/software/qsys_tutorial_bsp/linker.x @@ -0,0 +1,385 @@ +/* + * linker.x - Linker script + * + * Machine generated for CPU 'nios2_processor' in SOPC Builder design 'nios_system' + * SOPC Builder design path: C:/Users/takayun/Desktop/qsys_tutorial/nios_system.sopcinfo + * + * Generated: Thu Oct 13 17:08:43 JST 2016 + */ + +/* + * DO NOT MODIFY THIS FILE + * + * Changing this file will have subtle consequences + * which will almost certainly lead to a nonfunctioning + * system. If you do modify this file, be aware that your + * changes will be overwritten and lost when this file + * is generated again. + * + * DO NOT MODIFY THIS FILE + */ + +/* + * License Agreement + * + * Copyright (c) 2008 + * Altera Corporation, San Jose, California, USA. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + * This agreement shall be governed in all respects by the laws of the State + * of California and by the laws of the United States of America. + */ + +MEMORY +{ + reset : ORIGIN = 0x0, LENGTH = 32 + onchip_memory : ORIGIN = 0x20, LENGTH = 4064 +} + +/* Define symbols for each memory base-address */ +__alt_mem_onchip_memory = 0x0; + +OUTPUT_FORMAT( "elf32-littlenios2", + "elf32-littlenios2", + "elf32-littlenios2" ) +OUTPUT_ARCH( nios2 ) +ENTRY( _start ) + +/* + * The alt_load() facility is enabled. This typically happens when there isn't + * an external bootloader (e.g. flash bootloader). + * The LMA (aka physical address) of each loaded section is + * set to the .text memory device. + * The HAL alt_load() routine called from crt0 copies sections from + * the .text memory to RAM as needed. + */ + +SECTIONS +{ + + /* + * Output sections associated with reset and exceptions (they have to be first) + */ + + .entry : + { + KEEP (*(.entry)) + } > reset + + .exceptions : + { + PROVIDE (__ram_exceptions_start = ABSOLUTE(.)); + . = ALIGN(0x20); + KEEP (*(.irq)); + KEEP (*(.exceptions.entry.label)); + KEEP (*(.exceptions.entry.user)); + KEEP (*(.exceptions.entry)); + KEEP (*(.exceptions.irqtest.user)); + KEEP (*(.exceptions.irqtest)); + KEEP (*(.exceptions.irqhandler.user)); + KEEP (*(.exceptions.irqhandler)); + KEEP (*(.exceptions.irqreturn.user)); + KEEP (*(.exceptions.irqreturn)); + KEEP (*(.exceptions.notirq.label)); + KEEP (*(.exceptions.notirq.user)); + KEEP (*(.exceptions.notirq)); + KEEP (*(.exceptions.soft.user)); + KEEP (*(.exceptions.soft)); + KEEP (*(.exceptions.unknown.user)); + KEEP (*(.exceptions.unknown)); + KEEP (*(.exceptions.exit.label)); + KEEP (*(.exceptions.exit.user)); + KEEP (*(.exceptions.exit)); + KEEP (*(.exceptions)); + PROVIDE (__ram_exceptions_end = ABSOLUTE(.)); + } > onchip_memory + + PROVIDE (__flash_exceptions_start = LOADADDR(.exceptions)); + + .text : + { + /* + * All code sections are merged into the text output section, along with + * the read only data sections. + * + */ + + PROVIDE (stext = ABSOLUTE(.)); + + *(.interp) + *(.hash) + *(.dynsym) + *(.dynstr) + *(.gnu.version) + *(.gnu.version_d) + *(.gnu.version_r) + *(.rel.init) + *(.rela.init) + *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) + *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) + *(.rel.fini) + *(.rela.fini) + *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) + *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) + *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) + *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) + *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) + *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) + *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) + *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) + *(.rel.ctors) + *(.rela.ctors) + *(.rel.dtors) + *(.rela.dtors) + *(.rel.got) + *(.rela.got) + *(.rel.sdata .rel.sdata.* .rel.gnu.linkonce.s.*) + *(.rela.sdata .rela.sdata.* .rela.gnu.linkonce.s.*) + *(.rel.sbss .rel.sbss.* .rel.gnu.linkonce.sb.*) + *(.rela.sbss .rela.sbss.* .rela.gnu.linkonce.sb.*) + *(.rel.sdata2 .rel.sdata2.* .rel.gnu.linkonce.s2.*) + *(.rela.sdata2 .rela.sdata2.* .rela.gnu.linkonce.s2.*) + *(.rel.sbss2 .rel.sbss2.* .rel.gnu.linkonce.sb2.*) + *(.rela.sbss2 .rela.sbss2.* .rela.gnu.linkonce.sb2.*) + *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) + *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) + *(.rel.plt) + *(.rela.plt) + *(.rel.dyn) + + KEEP (*(.init)) + *(.plt) + *(.text .stub .text.* .gnu.linkonce.t.*) + + /* .gnu.warning sections are handled specially by elf32.em. */ + + *(.gnu.warning.*) + KEEP (*(.fini)) + PROVIDE (__etext = ABSOLUTE(.)); + PROVIDE (_etext = ABSOLUTE(.)); + PROVIDE (etext = ABSOLUTE(.)); + + *(.eh_frame_hdr) + /* Ensure the __preinit_array_start label is properly aligned. We + could instead move the label definition inside the section, but + the linker would then create the section even if it turns out to + be empty, which isn't pretty. */ + . = ALIGN(4); + PROVIDE (__preinit_array_start = ABSOLUTE(.)); + *(.preinit_array) + PROVIDE (__preinit_array_end = ABSOLUTE(.)); + PROVIDE (__init_array_start = ABSOLUTE(.)); + *(.init_array) + PROVIDE (__init_array_end = ABSOLUTE(.)); + PROVIDE (__fini_array_start = ABSOLUTE(.)); + *(.fini_array) + PROVIDE (__fini_array_end = ABSOLUTE(.)); + SORT(CONSTRUCTORS) + KEEP (*(.eh_frame)) + *(.gcc_except_table) + *(.dynamic) + PROVIDE (__CTOR_LIST__ = ABSOLUTE(.)); + KEEP (*(.ctors)) + KEEP (*(SORT(.ctors.*))) + PROVIDE (__CTOR_END__ = ABSOLUTE(.)); + PROVIDE (__DTOR_LIST__ = ABSOLUTE(.)); + KEEP (*(.dtors)) + KEEP (*(SORT(.dtors.*))) + PROVIDE (__DTOR_END__ = ABSOLUTE(.)); + KEEP (*(.jcr)) + . = ALIGN(4); + } > onchip_memory = 0x3a880100 /* Nios II NOP instruction */ + + .rodata : + { + PROVIDE (__ram_rodata_start = ABSOLUTE(.)); + . = ALIGN(4); + *(.rodata .rodata.* .gnu.linkonce.r.*) + *(.rodata1) + . = ALIGN(4); + PROVIDE (__ram_rodata_end = ABSOLUTE(.)); + } > onchip_memory + + PROVIDE (__flash_rodata_start = LOADADDR(.rodata)); + + /* + * + * This section's LMA is set to the .text region. + * crt0 will copy to this section's specified mapped region virtual memory address (VMA) + * + * .rwdata region equals the .text region, and is set to be loaded into .text region. + * This requires two copies of .rwdata in the .text region. One read writable at VMA. + * and one read-only at LMA. crt0 will copy from LMA to VMA on reset + * + */ + + .rwdata LOADADDR (.rodata) + SIZEOF (.rodata) : AT ( LOADADDR (.rodata) + SIZEOF (.rodata)+ SIZEOF (.rwdata) ) + { + PROVIDE (__ram_rwdata_start = ABSOLUTE(.)); + . = ALIGN(4); + *(.got.plt) *(.got) + *(.data1) + *(.data .data.* .gnu.linkonce.d.*) + + _gp = ABSOLUTE(. + 0x8000); + PROVIDE(gp = _gp); + + *(.rwdata .rwdata.*) + *(.sdata .sdata.* .gnu.linkonce.s.*) + *(.sdata2 .sdata2.* .gnu.linkonce.s2.*) + + . = ALIGN(4); + _edata = ABSOLUTE(.); + PROVIDE (edata = ABSOLUTE(.)); + PROVIDE (__ram_rwdata_end = ABSOLUTE(.)); + } > onchip_memory + + PROVIDE (__flash_rwdata_start = LOADADDR(.rwdata)); + + /* + * + * This section's LMA is set to the .text region. + * crt0 will copy to this section's specified mapped region virtual memory address (VMA) + * + */ + + .bss LOADADDR (.rwdata) + SIZEOF (.rwdata) : AT ( LOADADDR (.rwdata) + SIZEOF (.rwdata) ) + { + __bss_start = ABSOLUTE(.); + PROVIDE (__sbss_start = ABSOLUTE(.)); + PROVIDE (___sbss_start = ABSOLUTE(.)); + + *(.dynsbss) + *(.sbss .sbss.* .gnu.linkonce.sb.*) + *(.sbss2 .sbss2.* .gnu.linkonce.sb2.*) + *(.scommon) + + PROVIDE (__sbss_end = ABSOLUTE(.)); + PROVIDE (___sbss_end = ABSOLUTE(.)); + + *(.dynbss) + *(.bss .bss.* .gnu.linkonce.b.*) + *(COMMON) + + . = ALIGN(4); + __bss_end = ABSOLUTE(.); + } > onchip_memory + + /* + * + * One output section mapped to the associated memory device for each of + * the available memory devices. These are not used by default, but can + * be used by user applications by using the .section directive. + * + * The output section used for the heap is treated in a special way, + * i.e. the symbols "end" and "_end" are added to point to the heap start. + * + * Because alt_load() is enabled, these sections have + * their LMA set to be loaded into the .text memory region. + * However, the alt_load() code will NOT automatically copy + * these sections into their mapped memory region. + * + */ + + /* + * + * This section's LMA is set to the .text region. + * crt0 will copy to this section's specified mapped region virtual memory address (VMA) + * + */ + + .onchip_memory LOADADDR (.bss) + SIZEOF (.bss) : AT ( LOADADDR (.bss) + SIZEOF (.bss) ) + { + PROVIDE (_alt_partition_onchip_memory_start = ABSOLUTE(.)); + *(.onchip_memory. onchip_memory.*) + . = ALIGN(4); + PROVIDE (_alt_partition_onchip_memory_end = ABSOLUTE(.)); + _end = ABSOLUTE(.); + end = ABSOLUTE(.); + __alt_stack_base = ABSOLUTE(.); + } > onchip_memory + + PROVIDE (_alt_partition_onchip_memory_load_addr = LOADADDR(.onchip_memory)); + + /* + * Stabs debugging sections. + * + */ + + .stab 0 : { *(.stab) } + .stabstr 0 : { *(.stabstr) } + .stab.excl 0 : { *(.stab.excl) } + .stab.exclstr 0 : { *(.stab.exclstr) } + .stab.index 0 : { *(.stab.index) } + .stab.indexstr 0 : { *(.stab.indexstr) } + .comment 0 : { *(.comment) } + /* DWARF debug sections. + Symbols in the DWARF debugging sections are relative to the beginning + of the section so we begin them at 0. */ + /* DWARF 1 */ + .debug 0 : { *(.debug) } + .line 0 : { *(.line) } + /* GNU DWARF 1 extensions */ + .debug_srcinfo 0 : { *(.debug_srcinfo) } + .debug_sfnames 0 : { *(.debug_sfnames) } + /* DWARF 1.1 and DWARF 2 */ + .debug_aranges 0 : { *(.debug_aranges) } + .debug_pubnames 0 : { *(.debug_pubnames) } + /* DWARF 2 */ + .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } + .debug_abbrev 0 : { *(.debug_abbrev) } + .debug_line 0 : { *(.debug_line) } + .debug_frame 0 : { *(.debug_frame) } + .debug_str 0 : { *(.debug_str) } + .debug_loc 0 : { *(.debug_loc) } + .debug_macinfo 0 : { *(.debug_macinfo) } + /* SGI/MIPS DWARF 2 extensions */ + .debug_weaknames 0 : { *(.debug_weaknames) } + .debug_funcnames 0 : { *(.debug_funcnames) } + .debug_typenames 0 : { *(.debug_typenames) } + .debug_varnames 0 : { *(.debug_varnames) } + + /* Altera debug extensions */ + .debug_alt_sim_info 0 : { *(.debug_alt_sim_info) } +} + +/* provide a pointer for the stack */ + +/* + * Don't override this, override the __alt_stack_* symbols instead. + */ +__alt_data_end = 0x1000; + +/* + * The next two symbols define the location of the default stack. You can + * override them to move the stack to a different memory. + */ +PROVIDE( __alt_stack_pointer = __alt_data_end ); +PROVIDE( __alt_stack_limit = __alt_stack_base ); + +/* + * This symbol controls where the start of the heap is. If the stack is + * contiguous with the heap then the stack will contract as memory is + * allocated to the heap. + * Override this symbol to put the heap in a different memory. + */ +PROVIDE( __alt_heap_start = end ); +PROVIDE( __alt_heap_limit = 0x1000 ); diff --git a/software/qsys_tutorial_bsp/mem_init.mk b/software/qsys_tutorial_bsp/mem_init.mk new file mode 100644 index 0000000..4caaef9 --- /dev/null +++ b/software/qsys_tutorial_bsp/mem_init.mk @@ -0,0 +1,322 @@ + +######################################################################### +####### M E M I N I T M A K E F I L E C O N T E N T ###### +######################################################################### + +######################################################################### +# This file is intended to be included by public.mk +# +# +# The following variables must be defined before including this file: +# - ELF +# +# The following variables may be defined to override the default behavior: +# - HDL_SIM_DIR +# - HDL_SIM_INSTALL_DIR +# - MEM_INIT_DIR +# - MEM_INIT_INSTALL_DIR +# - QUARTUS_PROJECT_DIR +# - SOPC_NAME +# - SIM_OPTIMIZE +# - RESET_ADDRESS +# +######################################################################### + +ifeq ($(MEM_INIT_FILE),) +# MEM_INIT_FILE should be set equal to the working relative path to this +# mem_init.mk makefile fragment +MEM_INIT_FILE := $(wildcard $(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST))) +endif + +ifeq ($(ELF2DAT),) +ELF2DAT := elf2dat +endif + +ifeq ($(ELF2HEX),) +ELF2HEX := elf2hex +endif + +ifeq ($(ELF2FLASH),) +ELF2FLASH := elf2flash +endif + +ifeq ($(FLASH2DAT),) +FLASH2DAT := flash2dat +endif + +ifeq ($(NM),) +NM := nios2-elf-nm +endif + +ifeq ($(MKDIR),) +MKDIR := mkdir -p +endif + +ifeq ($(RM),) +RM := rm -f +endif + +ifeq ($(CP),) +CP := cp +endif + +ifeq ($(ECHO),) +ECHO := echo +endif + +MEM_INIT_DIR ?= mem_init +HDL_SIM_DIR ?= $(MEM_INIT_DIR)/hdl_sim + +ifdef QUARTUS_PROJECT_DIR +MEM_INIT_INSTALL_DIR ?= $(patsubst %/,%,$(QUARTUS_PROJECT_DIR)) +ifdef SOPC_NAME +HDL_SIM_INSTALL_DIR ?= $(patsubst %/,%,$(QUARTUS_PROJECT_DIR))/$(SOPC_NAME)_sim +endif +endif + +MEM_INIT_DESCRIPTOR_FILE ?= $(MEM_INIT_DIR)/meminit.spd + +MEM_INIT_QIP_FILE ?= $(MEM_INIT_DIR)/meminit.qip + +#------------------------------------- +# Default Flash Boot Loaders +#------------------------------------- + +BOOT_LOADER_PATH ?= $(SOPC_KIT_NIOS2)/components/altera_nios2 +BOOT_LOADER_CFI ?= $(BOOT_LOADER_PATH)/boot_loader_cfi.srec +BOOT_LOADER_CFI_BE ?= $(BOOT_LOADER_PATH)/boot_loader_cfi_be.srec + + +#------------------------------------- +# Default Target +#------------------------------------- + +.PHONY: default_mem_init +ifeq ($(QSYS),1) +default_mem_init: mem_init_generate +else +default_mem_init: mem_init_install +endif +#------------------------------------- +# Runtime Macros +#------------------------------------- + +define post-process-info + @echo Post-processing to create $@... +endef + +target_stem = $(notdir $(basename $@)) + +mem_start_address = $($(target_stem)_START) +mem_end_address = $($(target_stem)_END) +mem_width = $($(target_stem)_WIDTH) +mem_endianness = $($(target_stem)_ENDIANNESS) +mem_create_lanes = $($(target_stem)_CREATE_LANES) + +mem_pad_flag = $($(target_stem)_PAD_FLAG) +mem_reloc_input_flag = $($(target_stem)_RELOC_INPUT_FLAG) +mem_no_zero_fill_flag = $($(target_stem)_NO_ZERO_FILL_FLAG) + +flash_mem_epcs_flag = $($(target_stem)_EPCS_FLAGS) +flash_mem_cfi_flag = $($(target_stem)_CFI_FLAGS) +flash_mem_boot_loader_flag = $($(target_stem)_BOOT_LOADER_FLAG) + +elf2dat_extra_args = $(mem_pad_flag) +elf2hex_extra_args = $(mem_no_zero_fill_flag) +elf2flash_extra_args = $(flash_mem_cfi_flag) $(flash_mem_epcs_flag) $(flash_mem_boot_loader_flag) +flash2dat_extra_args = $(mem_pad_flag) $(mem_reloc_input_flag) + +#------------------------------------------------------------------------------ +# BSP SPECIFIC CONTENT +# +# The content below is controlled by the BSP and SOPC System +#------------------------------------------------------------------------------ +#START OF BSP SPECIFIC + +#------------------------------------- +# Global Settings +#------------------------------------- + + +# The following TYPE comment allows tools to identify the 'type' of target this +# makefile is associated with. +# TYPE: BSP_MEMINIT_MAKEFILE + +# This following VERSION comment indicates the version of the tool used to +# generate this makefile. A makefile variable is provided for VERSION as well. +# ACDS_VERSION: 13.0sp1 +ACDS_VERSION := 13.0sp1 + +# This following BUILD_NUMBER comment indicates the build number of the tool +# used to generate this makefile. +# BUILD_NUMBER: 232 + +# Optimize for simulation +SIM_OPTIMIZE ?= 0 + +# The CPU reset address as needed by elf2flash +RESET_ADDRESS ?= 0x00000000 + +#------------------------------------- +# Pre-Initialized Memory Descriptions +#------------------------------------- + +# Memory: onchip_memory +MEM_0 := nios_system_onchip_memory +$(MEM_0)_NAME := onchip_memory +$(MEM_0)_MEM_INIT_FILE_PARAM_NAME := INIT_FILE +HEX_FILES += $(MEM_INIT_DIR)/$(MEM_0).hex +MEM_INIT_INSTALL_FILES += $(MEM_INIT_INSTALL_DIR)/$(MEM_0).hex +DAT_FILES += $(HDL_SIM_DIR)/$(MEM_0).dat +HDL_SIM_INSTALL_FILES += $(HDL_SIM_INSTALL_DIR)/$(MEM_0).dat +SYM_FILES += $(HDL_SIM_DIR)/$(MEM_0).sym +HDL_SIM_INSTALL_FILES += $(HDL_SIM_INSTALL_DIR)/$(MEM_0).sym +$(MEM_0)_START := 0x00000000 +$(MEM_0)_END := 0x00000fff +$(MEM_0)_HIERARCHICAL_PATH := onchip_memory +$(MEM_0)_WIDTH := 32 +$(MEM_0)_ENDIANNESS := --little-endian-mem +$(MEM_0)_CREATE_LANES := 0 + +.PHONY: onchip_memory +onchip_memory: check_elf_exists $(MEM_INIT_DIR)/$(MEM_0).hex $(HDL_SIM_DIR)/$(MEM_0).dat $(HDL_SIM_DIR)/$(MEM_0).sym + + +#END OF BSP SPECIFIC + +#------------------------------------- +# Pre-Initialized Memory Targets +#------------------------------------- + +.PHONY: mem_init_install mem_init_generate mem_init_clean + +ifeq ($(QSYS),1) +# Target mem_init_install is deprecated for QSys based systems +# To initialize onchip memories for Quartus II Synthesis with Qsys based systems: +# 1) Use "make mem_init_genearate" +# 2) Add the generated mem_init/meminit.qip file to your Quartus II Project +# +mem_init_install: + $(error Deprecated Makefile Target: '$@'. Use target 'mem_init_generate' and then add $(MEM_INIT_QIP_FILE) to your Quartus II Project) + +else # QSYS != 1, if SopcBuilder based system + +ifneq ($(MEM_INIT_INSTALL_DIR),) +mem_init_install: $(MEM_INIT_INSTALL_FILES) +endif + +ifneq ($(HDL_SIM_INSTALL_DIR),) +mem_init_install: $(HDL_SIM_INSTALL_FILES) +endif + +mem_init_install: mem_init_generate +ifeq ($(MEM_INIT_INSTALL_DIR),) + @echo "WARNING: MEM_INIT_INSTALL_DIR not set. Set your QUARTUS_PROJECT_DIR environment variable." +endif +ifeq ($(HDL_SIM_INSTALL_DIR),) + @echo "WARNING: HDL_SIM_INSTALL_DIR not set. Set your QUARTUS_PROJECT_DIR and SOPC_NAME environment variable." +endif + +$(MEM_INIT_INSTALL_FILES): $(MEM_INIT_INSTALL_DIR)/%: $(MEM_INIT_DIR)/% + @$(MKDIR) $(@D) + @$(CP) -v $< $@ + +$(HDL_SIM_INSTALL_FILES): $(HDL_SIM_INSTALL_DIR)/%: $(HDL_SIM_DIR)/% + @$(MKDIR) $(@D) + @$(CP) -v $< $@ + +endif # QSYS == 1 + + +mem_init_generate: hex dat sym flash $(MEM_INIT_DESCRIPTOR_FILE) $(MEM_INIT_QIP_FILE) + +mem_init_clean: + @$(RM) -r $(MEM_INIT_DIR) $(HDL_SIM_DIR) $(FLASH_FILES) + +.PHONY: hex dat sym flash + +hex: check_elf_exists $(HEX_FILES) + +dat: check_elf_exists $(DAT_FILES) + +sym: check_elf_exists $(SYM_FILES) + +flash: check_elf_exists $(FLASH_FILES) + +#------------------------------------- +# Pre-Initialized Memory Rules +#------------------------------------- + +.PHONY: check_elf_exists +check_elf_exists: $(ELF) +ifeq ($(ELF),) + $(error ELF var not set in mem_init.mk) +endif + +$(filter-out $(FLASH_DAT_FILES),$(DAT_FILES)): %.dat: $(ELF) + $(post-process-info) + @$(MKDIR) $(@D) + bash -c '$(ELF2DAT) --infile=$< --outfile=$@ \ + --base=$(mem_start_address) --end=$(mem_end_address) --width=$(mem_width) \ + $(mem_endianness) --create-lanes=$(mem_create_lanes) $(elf2dat_extra_args)' + +$(foreach i,0 1 2 3 4 5 6 7,%_lane$(i).dat): %.dat + @true + +$(HEX_FILES): %.hex: $(ELF) + $(post-process-info) + @$(MKDIR) $(@D) + bash -c '$(ELF2HEX) $< $(mem_start_address) $(mem_end_address) --width=$(mem_width) \ + $(mem_endianness) --create-lanes=$(mem_create_lanes) $(elf2hex_extra_args) $@' + +$(SYM_FILES): %.sym: $(ELF) + $(post-process-info) + @$(MKDIR) $(@D) + $(NM) -n $< > $@ + +$(FLASH_FILES): %.flash: $(ELF) + $(post-process-info) + @$(MKDIR) $(@D) + bash -c '$(ELF2FLASH) --input=$< --outfile=$@ --sim_optimize=$(SIM_OPTIMIZE) $(mem_endianness) \ + $(elf2flash_extra_args)' + +# +# Function generate_spd_entry +# Arg1: path to the memory initialization file +# Arg2: Type HEX or DAT +# Arg3: Output spd file to append +gen_spd_entry.BASE_FILE = $(basename $(notdir $1)) +gen_spd_entry.PARAM_NAME = $($(gen_spd_entry.BASE_FILE)_MEM_INIT_FILE_PARAM_NAME) +gen_spd_entry.MEM_PATH = $($(gen_spd_entry.BASE_FILE)_HIERARCHICAL_PATH) +gen_spd_entry.SETTINGS = $(strip \ + path=\"$1\" \ + type=\"$2\" \ + $(if $(gen_spd_entry.PARAM_NAME),initParamName=\"$(gen_spd_entry.PARAM_NAME)\") \ + $(if $(gen_spd_entry.MEM_PATH),memoryPath=\"$(gen_spd_entry.MEM_PATH)\") \ +) +define gen_spd_entry +$(ECHO) "" >> $3 +endef + +$(MEM_INIT_DESCRIPTOR_FILE).DAT_FILESET := $(patsubst $(dir $(MEM_INIT_DESCRIPTOR_FILE))%,%,$(DAT_FILES)) +$(MEM_INIT_DESCRIPTOR_FILE).HEX_FILESET := $(patsubst $(dir $(MEM_INIT_DESCRIPTOR_FILE))%,%,$(HEX_FILES)) + +$(MEM_INIT_DESCRIPTOR_FILE): %.spd: $(MEM_INIT_FILE) + $(post-process-info) + @$(MKDIR) $(@D) + @$(RM) $@ + @$(ECHO) "" > $@ + @$(ECHO) "" >> $@ + @$(foreach dat_file,$($@.DAT_FILESET),$(call gen_spd_entry,$(dat_file),DAT,$@) &&)true + @$(foreach hex_file,$($@.HEX_FILESET),$(call gen_spd_entry,$(hex_file),HEX,$@) &&)true + @$(ECHO) "" >> $@ + +.DELETE_ON_ERROR: $(MEM_INIT_DESCRIPTOR_FILE) + +$(MEM_INIT_QIP_FILE): %.qip: $(MEM_INIT_FILE) + $(post-process-info) + @$(MKDIR) $(@D) + @$(RM) $@ + @$(ECHO) "set_global_assignment -name SEARCH_PATH $$::quartus(qip_path)" > $@ + +.DELETE_ON_ERROR: $(MEM_INIT_QIP_FILE) diff --git a/software/qsys_tutorial_bsp/memory.gdb b/software/qsys_tutorial_bsp/memory.gdb new file mode 100644 index 0000000..ca9dafc --- /dev/null +++ b/software/qsys_tutorial_bsp/memory.gdb @@ -0,0 +1,50 @@ +# memory.gdb - GDB memory region definitions +# +# Machine generated for CPU 'nios2_processor' in SOPC Builder design 'nios_system' +# SOPC Builder design path: C:/Users/takayun/Desktop/qsys_tutorial/nios_system.sopcinfo +# +# Generated: Thu Oct 13 17:08:43 JST 2016 + +# DO NOT MODIFY THIS FILE +# +# Changing this file will have subtle consequences +# which will almost certainly lead to a nonfunctioning +# system. If you do modify this file, be aware that your +# changes will be overwritten and lost when this file +# is generated again. +# +# DO NOT MODIFY THIS FILE + +# License Agreement +# +# Copyright (c) 2008 +# Altera Corporation, San Jose, California, USA. +# All rights reserved. +# +# Permission is hereby granted, free of charge, to any person obtaining a +# copy of this software and associated documentation files (the "Software"), +# to deal in the Software without restriction, including without limitation +# the rights to use, copy, modify, merge, publish, distribute, sublicense, +# and/or sell copies of the Software, and to permit persons to whom the +# Software is furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +# DEALINGS IN THE SOFTWARE. +# +# This agreement shall be governed in all respects by the laws of the State +# of California and by the laws of the United States of America. + +# Define memory regions for each memory connected to the CPU. +# The cache attribute is specified which improves GDB performance +# by allowing GDB to cache memory contents on the host. + +# onchip_memory +memory 0x0 0x1000 cache diff --git a/software/qsys_tutorial_bsp/public.mk b/software/qsys_tutorial_bsp/public.mk new file mode 100644 index 0000000..12f8c43 --- /dev/null +++ b/software/qsys_tutorial_bsp/public.mk @@ -0,0 +1,377 @@ +#------------------------------------------------------------------------------ +# BSP "PUBLIC" MAKEFILE CONTENT +# +# This file is intended to be included in an application or library +# Makefile that is using this BSP. You can create such a Makefile with +# the nios2-app-generate-makefile or nios2-lib-generate-makefile +# commands. +# +# The following variables must be defined before including this file: +# +# ALT_LIBRARY_ROOT_DIR +# Contains the path to the BSP top-level (aka root) directory +#------------------------------------------------------------------------------ + +#------------------------------------------------------------------------------ +# PATHS +#------------------------------------------------------------------------------ + + + +# Path to the provided linker script. +BSP_LINKER_SCRIPT := $(ALT_LIBRARY_ROOT_DIR)/linker.x + +# Include paths: +# The path to root of all header files that a library wishes to make +# available for an application's use is specified here. Note that this +# may not be *all* folders within a hierarchy. For example, if it is +# desired that the application developer type: +# #include +# #include +# With files laid out like this: +# /inc/sockets.h +# /inc/ip/tcpip.h +# +# Then, only /inc need be added to the list of include +# directories. Alternatively, if you wish to be able to directly include +# all files in a hierarchy, separate paths to each folder in that +# hierarchy must be defined. + +# The following are the "base" set of include paths for a BSP. +# These paths are appended to the list that individual software +# components, drivers, etc., add in the generated portion of this +# file (below). +ALT_INCLUDE_DIRS_TO_APPEND += \ + $(ALT_LIBRARY_ROOT_DIR) \ + $(ALT_LIBRARY_ROOT_DIR)/drivers/inc + +# Additions to linker library search-path: +# Here we provide a path to "our self" for the application to construct a +# "-L " out of. This should contain a list of directories, +# relative to the library root, of all directories with .a files to link +# against. +ALT_LIBRARY_DIRS += $(ALT_LIBRARY_ROOT_DIR) + + +#------------------------------------------------------------------------------ +# COMPILATION FLAGS +#------------------------------------------------------------------------------ +# Default C pre-processor flags for a BSP: +ALT_CPPFLAGS += -DSYSTEM_BUS_WIDTH=32 \ + -pipe + + +#------------------------------------------------------------------------------ +# MANAGED CONTENT +# +# All content between the lines "START MANAGED" and "END MANAGED" below is +# generated based on variables in the BSP settings file when the +# nios2-bsp-generate-files command is invoked. If you wish to persist any +# information pertaining to the build process, it is recomended that you +# utilize the BSP settings mechanism to do so. +#------------------------------------------------------------------------------ +#START MANAGED + +# The following TYPE comment allows tools to identify the 'type' of target this +# makefile is associated with. +# TYPE: BSP_PUBLIC_MAKEFILE + +# This following VERSION comment indicates the version of the tool used to +# generate this makefile. A makefile variable is provided for VERSION as well. +# ACDS_VERSION: 13.0sp1 +ACDS_VERSION := 13.0sp1 + +# This following BUILD_NUMBER comment indicates the build number of the tool +# used to generate this makefile. +# BUILD_NUMBER: 232 + +# Qsys--generated SOPCINFO file. Required for resolving node instance ID's with +# design component names. +SOPCINFO_FILE := C:/Users/takayun/Desktop/qsys_tutorial/nios_system.sopcinfo + +# Big-Endian operation. +# setting BIG_ENDIAN is false +ALT_CFLAGS += -EL + +# Path to the provided C language runtime initialization code. +BSP_CRT0 := $(ALT_LIBRARY_ROOT_DIR)/obj/HAL/src/crt0.o + +# Name of BSP library as provided to linker using the "-msys-lib" flag or +# linker script GROUP command. +# setting BSP_SYS_LIB is hal_bsp +BSP_SYS_LIB := hal_bsp +ELF_PATCH_FLAG += --thread_model hal + +# Type identifier of the BSP library +# setting BSP_TYPE is hal +ALT_CPPFLAGS += -D__hal__ +BSP_TYPE := hal + +# CPU Name +# setting CPU_NAME is nios2_processor +CPU_NAME = nios2_processor +ELF_PATCH_FLAG += --cpu_name $(CPU_NAME) + +# Hardware Divider present. +# setting HARDWARE_DIVIDE is false +ALT_CFLAGS += -mno-hw-div + +# Hardware Multiplier present. +# setting HARDWARE_MULTIPLY is false +ALT_CFLAGS += -mno-hw-mul + +# Hardware Mulx present. +# setting HARDWARE_MULX is false +ALT_CFLAGS += -mno-hw-mulx + +# Debug Core present. +# setting HAS_DEBUG_CORE is true +CPU_HAS_DEBUG_CORE = 1 + +# Qsys generated design +# setting QSYS is 1 +QSYS := 1 +ELF_PATCH_FLAG += --qsys true + +# Design Name +# setting SOPC_NAME is nios_system +SOPC_NAME := nios_system + +# SopcBuilder Simulation Enabled +# setting SOPC_SIMULATION_ENABLED is false +ELF_PATCH_FLAG += --simulation_enabled false + +# Enable JTAG UART driver to recover when host is inactive causing buffer to +# full without returning error. Printf will not fail with this recovery. none +# setting altera_avalon_jtag_uart_driver.enable_jtag_uart_ignore_fifo_full_error is false + +# Small-footprint (polled mode) driver none +# setting altera_avalon_jtag_uart_driver.enable_small_driver is false + +# Build a custom version of newlib with the specified space-separated compiler +# flags. The custom newlib build will be placed in the <bsp root>/newlib +# directory, and will be used only for applications that utilize this BSP. +# setting hal.custom_newlib_flags is none + +# Enable support for a subset of the C++ language. This option increases code +# footprint by adding support for C++ constructors. Certain features, such as +# multiple inheritance and exceptions are not supported. If false, adds +# -DALT_NO_C_PLUS_PLUS to ALT_CPPFLAGS in public.mk, and reduces code +# footprint. none +# setting hal.enable_c_plus_plus is true + +# When your application exits, close file descriptors, call C++ destructors, +# etc. Code footprint can be reduced by disabling clean exit. If disabled, adds +# -DALT_NO_CLEAN_EXIT to ALT_CPPFLAGS and -Wl,--defsym, exit=_exit to +# ALT_LDFLAGS in public.mk. none +# setting hal.enable_clean_exit is true + +# Add exit() support. This option increases code footprint if your "main()" +# routine does "return" or call "exit()". If false, adds -DALT_NO_EXIT to +# ALT_CPPFLAGS in public.mk, and reduces footprint none +# setting hal.enable_exit is true + +# Causes code to be compiled with gprof profiling enabled and the application +# ELF to be linked with the GPROF library. If true, adds -DALT_PROVIDE_GMON to +# ALT_CPPFLAGS and -pg to ALT_CFLAGS in public.mk. none +# setting hal.enable_gprof is false + +# Enables lightweight device driver API. This reduces code and data footprint +# by removing the HAL layer that maps device names (e.g. /dev/uart0) to file +# descriptors. Instead, driver routines are called directly. The open(), +# close(), and lseek() routines will always fail if called. The read(), +# write(), fstat(), ioctl(), and isatty() routines only work for the stdio +# devices. If true, adds -DALT_USE_DIRECT_DRIVERS to ALT_CPPFLAGS in public.mk. +# The Altera Host and read-only ZIP file systems can't be used if +# hal.enable_lightweight_device_driver_api is true. +# setting hal.enable_lightweight_device_driver_api is false + +# Adds code to emulate multiply and divide instructions in case they are +# executed but aren't present in the CPU. Normally this isn't required because +# the compiler won't use multiply and divide instructions that aren't present +# in the CPU. If false, adds -DALT_NO_INSTRUCTION_EMULATION to ALT_CPPFLAGS in +# public.mk. none +# setting hal.enable_mul_div_emulation is false +ALT_CPPFLAGS += -DALT_NO_INSTRUCTION_EMULATION + +# Certain drivers are compiled with reduced functionality to reduce code +# footprint. Not all drivers observe this setting. The altera_avalon_uart and +# altera_avalon_jtag_uart drivers switch from interrupt-driven to polled +# operation. CAUTION: Several device drivers are disabled entirely. These +# include the altera_avalon_cfi_flash, altera_avalon_epcs_flash_controller, and +# altera_avalon_lcd_16207 drivers. This can result in certain API (HAL flash +# access routines) to fail. You can define a symbol provided by each driver to +# prevent it from being removed. If true, adds -DALT_USE_SMALL_DRIVERS to +# ALT_CPPFLAGS in public.mk. none +# setting hal.enable_reduced_device_drivers is false + +# Turns on HAL runtime stack checking feature. Enabling this setting causes +# additional code to be placed into each subroutine call to generate an +# exception if a stack collision occurs with the heap or statically allocated +# data. If true, adds -DALT_STACK_CHECK and -mstack-check to ALT_CPPFLAGS in +# public.mk. none +# setting hal.enable_runtime_stack_checking is false + +# The BSP is compiled with optimizations to speedup HDL simulation such as +# initializing the cache, clearing the .bss section, and skipping long delay +# loops. If true, adds -DALT_SIM_OPTIMIZE to ALT_CPPFLAGS in public.mk. When +# this setting is true, the BSP shouldn't be used to build applications that +# are expected to run real hardware. +# setting hal.enable_sim_optimize is false + +# Causes the small newlib (C library) to be used. This reduces code and data +# footprint at the expense of reduced functionality. Several newlib features +# are removed such as floating-point support in printf(), stdin input routines, +# and buffered I/O. The small C library is not compatible with Micrium +# MicroC/OS-II. If true, adds -msmallc to ALT_LDFLAGS in public.mk. none +# setting hal.enable_small_c_library is false + +# Enable SOPC Builder System ID. If a System ID SOPC Builder component is +# connected to the CPU associated with this BSP, it will be enabled in the +# creation of command-line arguments to download an ELF to the target. +# Otherwise, system ID and timestamp values are left out of public.mk for +# application Makefile "download-elf" target definition. With the system ID +# check disabled, the Nios II EDS tools will not automatically ensure that the +# application .elf file (and BSP it is linked against) corresponds to the +# hardware design on the target. If false, adds --accept-bad-sysid to +# SOPC_SYSID_FLAG in public.mk. none +# setting hal.enable_sopc_sysid_check is true + +# Enable BSP generation to query if SOPC system is big endian. If true ignores +# export of 'ALT_CFLAGS += -EB' to public.mk if big endian system. If true +# ignores export of 'ALT_CFLAGS += -EL' if little endian system. none +# setting hal.make.ignore_system_derived.big_endian is false + +# Enable BSP generation to query if SOPC system has a debug core present. If +# true ignores export of 'CPU_HAS_DEBUG_CORE = 1' to public.mk if a debug core +# is found in the system. If true ignores export of 'CPU_HAS_DEBUG_CORE = 0' if +# no debug core is found in the system. none +# setting hal.make.ignore_system_derived.debug_core_present is false + +# Enable BSP generation to query if SOPC system has FPU present. If true +# ignores export of 'ALT_CFLAGS += -mhard-float' to public.mk if FPU is found +# in the system. If true ignores export of 'ALT_CFLAGS += -mhard-soft' if FPU +# is not found in the system. none +# setting hal.make.ignore_system_derived.fpu_present is false + +# Enable BSP generation to query if SOPC system has hardware divide present. If +# true ignores export of 'ALT_CFLAGS += -mno-hw-div' to public.mk if no +# division is found in system. If true ignores export of 'ALT_CFLAGS += +# -mhw-div' if division is found in the system. none +# setting hal.make.ignore_system_derived.hardware_divide_present is false + +# Enable BSP generation to query if SOPC system floating point custom +# instruction with a divider is present. If true ignores export of 'ALT_CFLAGS +# += -mcustom-fpu-cfg=60-2' and 'ALT_LDFLAGS += -mcustom-fpu-cfg=60-2' to +# public.mk if the custom instruction is found in the system. none +# setting hal.make.ignore_system_derived.hardware_fp_cust_inst_divider_present is false + +# Enable BSP generation to query if SOPC system floating point custom +# instruction without a divider is present. If true ignores export of +# 'ALT_CFLAGS += -mcustom-fpu-cfg=60-1' and 'ALT_LDFLAGS += +# -mcustom-fpu-cfg=60-1' to public.mk if the custom instruction is found in the +# system. none +# setting hal.make.ignore_system_derived.hardware_fp_cust_inst_no_divider_present is false + +# Enable BSP generation to query if SOPC system has multiplier present. If true +# ignores export of 'ALT_CFLAGS += -mno-hw-mul' to public.mk if no multiplier +# is found in the system. If true ignores export of 'ALT_CFLAGS += -mhw-mul' if +# multiplier is found in the system. none +# setting hal.make.ignore_system_derived.hardware_multiplier_present is false + +# Enable BSP generation to query if SOPC system has hardware mulx present. If +# true ignores export of 'ALT_CFLAGS += -mno-hw-mulx' to public.mk if no mulx +# is found in the system. If true ignores export of 'ALT_CFLAGS += -mhw-mulx' +# if mulx is found in the system. none +# setting hal.make.ignore_system_derived.hardware_mulx_present is false + +# Enable BSP generation to query if SOPC system has simulation enabled. If true +# ignores export of 'ELF_PATCH_FLAG += --simulation_enabled' to public.mk. none +# setting hal.make.ignore_system_derived.sopc_simulation_enabled is false + +# Enable BSP generation to query SOPC system for system ID base address. If +# true ignores export of 'SOPC_SYSID_FLAG += --sidp=
' and +# 'ELF_PATCH_FLAG += --sidp=
' to public.mk. none +# setting hal.make.ignore_system_derived.sopc_system_base_address is false + +# Enable BSP generation to query SOPC system for system ID. If true ignores +# export of 'SOPC_SYSID_FLAG += --id=' and 'ELF_PATCH_FLAG += +# --id=' to public.mk. none +# setting hal.make.ignore_system_derived.sopc_system_id is false + +# Enable BSP generation to query SOPC system for system timestamp. If true +# ignores export of 'SOPC_SYSID_FLAG += --timestamp=' and +# 'ELF_PATCH_FLAG += --timestamp=' to public.mk. none +# setting hal.make.ignore_system_derived.sopc_system_timestamp is false + +# Slave descriptor of STDERR character-mode device. This setting is used by the +# ALT_STDERR family of defines in system.h. none +# setting hal.stderr is jtag_uart +ELF_PATCH_FLAG += --stderr_dev jtag_uart + +# Slave descriptor of STDIN character-mode device. This setting is used by the +# ALT_STDIN family of defines in system.h. none +# setting hal.stdin is jtag_uart +ELF_PATCH_FLAG += --stdin_dev jtag_uart + +# Slave descriptor of STDOUT character-mode device. This setting is used by the +# ALT_STDOUT family of defines in system.h. none +# setting hal.stdout is jtag_uart +ELF_PATCH_FLAG += --stdout_dev jtag_uart + + +#------------------------------------------------------------------------------ +# SOFTWARE COMPONENT & DRIVER INCLUDE PATHS +#------------------------------------------------------------------------------ + +ALT_INCLUDE_DIRS += $(ALT_LIBRARY_ROOT_DIR)/HAL/inc + +#------------------------------------------------------------------------------ +# SOFTWARE COMPONENT & DRIVER PRODUCED ALT_CPPFLAGS ADDITIONS +#------------------------------------------------------------------------------ + +ALT_CPPFLAGS += -DALT_SINGLE_THREADED + +#END MANAGED + + +#------------------------------------------------------------------------------ +# LIBRARY INFORMATION +#------------------------------------------------------------------------------ +# Assemble the name of the BSP *.a file using the BSP library name +# (BSP_SYS_LIB) in generated content above. +BSP_LIB := lib$(BSP_SYS_LIB).a + +# Additional libraries to link against: +# An application including this file will prefix each library with "-l". +# For example, to include the Newlib math library "m" is included, which +# becomes "-lm" when linking the application. +ALT_LIBRARY_NAMES += m + +# Additions to linker dependencies: +# An application Makefile will typically add these directly to the list +# of dependencies required to build the executable target(s). The BSP +# library (*.a) file is specified here. +ALT_LDDEPS += $(ALT_LIBRARY_ROOT_DIR)/$(BSP_LIB) + +# Is this library "Makeable"? +# Add to list of root library directories that support running 'make' +# to build them. Because libraries may or may not have a Makefile in their +# root, appending to this variable tells an application to run 'make' in +# the library root to build/update this library. +MAKEABLE_LIBRARY_ROOT_DIRS += $(ALT_LIBRARY_ROOT_DIR) + +# Additional Assembler Flags +# -gdwarf2 flag is required for stepping through assembly code +ALT_ASFLAGS += -gdwarf2 + +#------------------------------------------------------------------------------ +# FINAL INCLUDE PATH LIST +#------------------------------------------------------------------------------ +# Append static include paths to paths specified by OS/driver/sw package +# additions to the BSP thus giving them precedence in case a BSP addition +# is attempting to override BSP sources. +ALT_INCLUDE_DIRS += $(ALT_INCLUDE_DIRS_TO_APPEND) + + + diff --git a/software/qsys_tutorial_bsp/settings.bsp b/software/qsys_tutorial_bsp/settings.bsp new file mode 100644 index 0000000..f23ed4a --- /dev/null +++ b/software/qsys_tutorial_bsp/settings.bsp @@ -0,0 +1,913 @@ + + + hal + default + 2016/10/13 17:08:42 + 1476346122316 + C:\Users\takayun\Desktop\qsys_tutorial\software\qsys_tutorial_bsp + .\settings.bsp + C:\Users\takayun\Desktop\qsys_tutorial\nios_system.sopcinfo + default + nios2_processor + 1.9 + + hal.sys_clk_timer + ALT_SYS_CLK + UnquotedString + none + none + system_h_define + Slave descriptor of the system clock timer device. This device provides a periodic interrupt ("tick") and is typically required for RTOS use. This setting defines the value of ALT_SYS_CLK in system.h. + none + false + common + + + hal.timestamp_timer + ALT_TIMESTAMP_CLK + UnquotedString + none + none + system_h_define + Slave descriptor of timestamp timer device. This device is used by Altera HAL timestamp drivers for high-resolution time measurement. This setting defines the value of ALT_TIMESTAMP_CLK in system.h. + none + false + common + + + hal.max_file_descriptors + ALT_MAX_FD + DecimalNumber + 32 + 32 + system_h_define + Determines the number of file descriptors statically allocated. This setting defines the value of ALT_MAX_FD in system.h. + If hal.enable_lightweight_device_driver_api is true, there are no file descriptors so this setting is ignored. If hal.enable_lightweight_device_driver_api is false, this setting must be at least 4 because HAL needs a file descriptor for /dev/null, /dev/stdin, /dev/stdout, and /dev/stderr. + false + + + + hal.enable_instruction_related_exceptions_api + ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API + BooleanDefineOnly + false + false + system_h_define + Enables API for registering handlers to service instruction-related exceptions. Enabling this setting increases the size of the exception entry code. + These exception types can be generated if various processor options are enabled, such as the MMU, MPU, or other advanced exception types. + false + + + + hal.linker.allow_code_at_reset + ALT_ALLOW_CODE_AT_RESET + Boolean + 1 + 0 + none + Indicates if initialization code is allowed at the reset address. If true, defines the macro ALT_ALLOW_CODE_AT_RESET in linker.h. + If true, defines the macro ALT_ALLOW_CODE_AT_RESET in linker.h. This setting is typically false if an external bootloader (e.g. flash bootloader) is present. + false + + + + hal.linker.enable_alt_load + NONE + Boolean + 1 + 0 + none + Enables the alt_load() facility. The alt_load() facility copies sections from the .text memory into RAM. If true, this setting sets up the VMA/LMA of sections in linker.x to allow them to be loaded into the .text memory. + This setting is typically false if an external bootloader (e.g. flash bootloader) is present. + false + + + + hal.linker.enable_alt_load_copy_rodata + NONE + Boolean + 0 + 0 + none + Causes the alt_load() facility to copy the .rodata section. If true, this setting defines the macro ALT_LOAD_COPY_RODATA in linker.h. + none + false + + + + hal.linker.enable_alt_load_copy_rwdata + NONE + Boolean + 1 + 0 + none + Causes the alt_load() facility to copy the .rwdata section. If true, this setting defines the macro ALT_LOAD_COPY_RWDATA in linker.h. + none + false + + + + hal.linker.enable_alt_load_copy_exceptions + NONE + Boolean + 0 + 0 + none + Causes the alt_load() facility to copy the .exceptions section. If true, this setting defines the macro ALT_LOAD_COPY_EXCEPTIONS in linker.h. + none + false + + + + hal.linker.enable_exception_stack + NONE + Boolean + 0 + 0 + none + Enables use of a separate exception stack. If true, defines the macro ALT_EXCEPTION_STACK in linker.h, adds a memory region called exception_stack to linker.x, and provides the symbols __alt_exception_stack_pointer and __alt_exception_stack_limit in linker.x. + The hal.linker.exception_stack_size and hal.linker.exception_stack_memory_region_name settings must also be valid. This setting must be false for MicroC/OS-II BSPs. The exception stack can be used to improve interrupt and other exception performance if the EIC is *not* used. + false + common + + + hal.linker.exception_stack_size + NONE + DecimalNumber + 1024 + 1024 + none + Size of the exception stack in bytes. + Only used if hal.linker.enable_exception_stack is true. + false + common + + + hal.linker.exception_stack_memory_region_name + NONE + UnquotedString + onchip_memory + none + none + Name of the existing memory region that will be divided up to create the 'exception_stack' memory region. The selected region name will be adjusted automatically when the BSP is generated to create the 'exception_stack' memory region. + Only used if hal.linker.enable_exception_stack is true. + false + common + + + hal.linker.enable_interrupt_stack + NONE + Boolean + 0 + 0 + none + Enables use of a separate interrupt stack. If true, defines the macro ALT_INTERRUPT_STACK in linker.h, adds a memory region called interrupt_stack to linker.x, and provides the symbols __alt_interrupt_stack_pointer and __alt_interrupt_stack_limit in linker.x. + The hal.linker.interrupt_stack_size and hal.linker.interrupt_stack_memory_region_name settings must also be valid. This setting must be false for MicroC/OS-II BSPs. Only enable if the EIC is used exclusively. The exception stack can be used to improve interrupt and other exception performance if the EIC is *not* used. + false + common + + + hal.linker.interrupt_stack_size + NONE + DecimalNumber + 1024 + 1024 + none + Size of the interrupt stack in bytes. + Only used if hal.linker.enable_interrupt_stack is true. + false + common + + + hal.linker.interrupt_stack_memory_region_name + NONE + UnquotedString + onchip_memory + none + none + Name of the existing memory region that will be divided up to create the 'interrupt_stack' memory region. The selected region name will be adjusted automatically when the BSP is generated to create the 'interrupt_stack' memory region. + Only used if hal.linker.enable_interrupt_stack is true. + false + common + + + hal.stdin + NONE + UnquotedString + jtag_uart + none + system_h_define + Slave descriptor of STDIN character-mode device. This setting is used by the ALT_STDIN family of defines in system.h. + none + false + common + + + hal.stdout + NONE + UnquotedString + jtag_uart + none + system_h_define + Slave descriptor of STDOUT character-mode device. This setting is used by the ALT_STDOUT family of defines in system.h. + none + false + common + + + hal.stderr + NONE + UnquotedString + jtag_uart + none + system_h_define + Slave descriptor of STDERR character-mode device. This setting is used by the ALT_STDERR family of defines in system.h. + none + false + common + + + hal.log_port + NONE + UnquotedString + none + none + public_mk_define + Slave descriptor of debug logging character-mode device. If defined, it enables extra debug messages in the HAL source. This setting is used by the ALT_LOG_PORT family of defines in system.h. + none + false + none + + + hal.make.build_pre_process + BUILD_PRE_PROCESS + UnquotedString + none + none + makefile_variable + Command executed before BSP built. + none + false + none + + + hal.make.ar_pre_process + AR_PRE_PROCESS + UnquotedString + none + none + makefile_variable + Command executed before archiver execution. + none + false + none + + + hal.make.bsp_cflags_defined_symbols + BSP_CFLAGS_DEFINED_SYMBOLS + UnquotedString + none + none + makefile_variable + Preprocessor macros to define. A macro definition in this setting has the same effect as a "#define" in source code. Adding "-DALT_DEBUG" to this setting has the same effect as "#define ALT_DEBUG" in a souce file. Adding "-DFOO=1" to this setting is equivalent to the macro "#define FOO 1" in a source file. Macros defined with this setting are applied to all .S, .c, and C++ files in the BSP. This setting defines the value of BSP_CFLAGS_DEFINED_SYMBOLS in the BSP Makefile. + none + false + none + + + hal.make.ar_post_process + AR_POST_PROCESS + UnquotedString + none + none + makefile_variable + Command executed after archiver execution. + none + false + none + + + hal.make.as + AS + UnquotedString + nios2-elf-gcc + nios2-elf-gcc + makefile_variable + Assembler command. Note that CC is used for .S files. + none + false + none + + + hal.make.build_post_process + BUILD_POST_PROCESS + UnquotedString + none + none + makefile_variable + Command executed after BSP built. + none + false + none + + + hal.make.bsp_cflags_debug + BSP_CFLAGS_DEBUG + UnquotedString + -g + -g + makefile_variable + C/C++ compiler debug level. '-g' provides the default set of debug symbols typically required to debug a typical application. Omitting '-g' removes debug symbols from the ELF. This setting defines the value of BSP_CFLAGS_DEBUG in Makefile. + none + false + common + + + hal.make.ar + AR + UnquotedString + nios2-elf-ar + nios2-elf-ar + makefile_variable + Archiver command. Creates library files. + none + false + none + + + hal.make.rm + RM + UnquotedString + rm -f + rm -f + makefile_variable + Command used to remove files during 'clean' target. + none + false + none + + + hal.make.cxx_pre_process + CXX_PRE_PROCESS + UnquotedString + none + none + makefile_variable + Command executed before each C++ file is compiled. + none + false + none + + + hal.make.bsp_cflags_warnings + BSP_CFLAGS_WARNINGS + UnquotedString + -Wall + -Wall + makefile_variable + C/C++ compiler warning level. "-Wall" is commonly used.This setting defines the value of BSP_CFLAGS_WARNINGS in Makefile. + none + false + none + + + hal.make.bsp_arflags + BSP_ARFLAGS + UnquotedString + -src + -src + makefile_variable + Custom flags only passed to the archiver. This content of this variable is directly passed to the archiver rather than the more standard "ARFLAGS". The reason for this is that GNU Make assumes some default content in ARFLAGS. This setting defines the value of BSP_ARFLAGS in Makefile. + none + false + none + + + hal.make.bsp_cflags_optimization + BSP_CFLAGS_OPTIMIZATION + UnquotedString + -O0 + -O0 + makefile_variable + C/C++ compiler optimization level. "-O0" = no optimization,"-O2" = "normal" optimization, etc. "-O0" is recommended for code that you want to debug since compiler optimization can remove variables and produce non-sequential execution of code while debugging. This setting defines the value of BSP_CFLAGS_OPTIMIZATION in Makefile. + none + false + common + + + hal.make.as_post_process + AS_POST_PROCESS + UnquotedString + none + none + makefile_variable + Command executed after each assembly file is compiled. + none + false + none + + + hal.make.cc_pre_process + CC_PRE_PROCESS + UnquotedString + none + none + makefile_variable + Command executed before each .c/.S file is compiled. + none + false + none + + + hal.make.bsp_asflags + BSP_ASFLAGS + UnquotedString + -Wa,-gdwarf2 + -Wa,-gdwarf2 + makefile_variable + Custom flags only passed to the assembler. This setting defines the value of BSP_ASFLAGS in Makefile. + none + false + none + + + hal.make.as_pre_process + AS_PRE_PROCESS + UnquotedString + none + none + makefile_variable + Command executed before each assembly file is compiled. + none + false + none + + + hal.make.bsp_cflags_undefined_symbols + BSP_CFLAGS_UNDEFINED_SYMBOLS + UnquotedString + none + none + makefile_variable + Preprocessor macros to undefine. Undefined macros are similar to defined macros, but replicate the "#undef" directive in source code. To undefine the macro FOO use the syntax "-u FOO" in this setting. This is equivalent to "#undef FOO" in a source file. Note: the syntax differs from macro definition (there is a space, i.e. "-u FOO" versus "-DFOO"). Macros defined with this setting are applied to all .S, .c, and C++ files in the BSP. This setting defines the value of BSP_CFLAGS_UNDEFINED_SYMBOLS in the BSP Makefile. + none + false + none + + + hal.make.cc_post_process + CC_POST_PROCESS + UnquotedString + none + none + makefile_variable + Command executed after each .c/.S file is compiled. + none + false + none + + + hal.make.cxx_post_process + CXX_POST_PROCESS + UnquotedString + none + none + makefile_variable + Command executed before each C++ file is compiled. + none + false + none + + + hal.make.cc + CC + UnquotedString + nios2-elf-gcc -xc + nios2-elf-gcc -xc + makefile_variable + C compiler command. + none + false + none + + + hal.make.bsp_cxx_flags + BSP_CXXFLAGS + UnquotedString + none + none + makefile_variable + Custom flags only passed to the C++ compiler. This setting defines the value of BSP_CXXFLAGS in Makefile. + none + false + none + + + hal.make.bsp_inc_dirs + BSP_INC_DIRS + UnquotedString + none + none + makefile_variable + Space separated list of extra include directories to scan for header files. Directories are relative to the top-level BSP directory. The -I prefix's added by the makefile so don't add it here. This setting defines the value of BSP_INC_DIRS in Makefile. + none + false + none + + + hal.make.cxx + CXX + UnquotedString + nios2-elf-gcc -xc++ + nios2-elf-gcc -xc++ + makefile_variable + C++ compiler command. + none + false + none + + + hal.make.bsp_cflags_user_flags + BSP_CFLAGS_USER_FLAGS + UnquotedString + none + none + makefile_variable + Custom flags passed to the compiler when compiling C, C++, and .S files. This setting defines the value of BSP_CFLAGS_USER_FLAGS in Makefile. + none + false + none + + + hal.make.ignore_system_derived.sopc_system_id + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query SOPC system for system ID. If true ignores export of 'SOPC_SYSID_FLAG += --id=<sysid>' and 'ELF_PATCH_FLAG += --id=<sysid>' to public.mk. + none + false + none + + + hal.make.ignore_system_derived.sopc_system_timestamp + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query SOPC system for system timestamp. If true ignores export of 'SOPC_SYSID_FLAG += --timestamp=<timestamp>' and 'ELF_PATCH_FLAG += --timestamp=<timestamp>' to public.mk. + none + false + none + + + hal.make.ignore_system_derived.sopc_system_base_address + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query SOPC system for system ID base address. If true ignores export of 'SOPC_SYSID_FLAG += --sidp=<address>' and 'ELF_PATCH_FLAG += --sidp=<address>' to public.mk. + none + false + none + + + hal.make.ignore_system_derived.sopc_simulation_enabled + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query if SOPC system has simulation enabled. If true ignores export of 'ELF_PATCH_FLAG += --simulation_enabled' to public.mk. + none + false + none + + + hal.make.ignore_system_derived.fpu_present + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query if SOPC system has FPU present. If true ignores export of 'ALT_CFLAGS += -mhard-float' to public.mk if FPU is found in the system. If true ignores export of 'ALT_CFLAGS += -mhard-soft' if FPU is not found in the system. + none + false + none + + + hal.make.ignore_system_derived.hardware_multiplier_present + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query if SOPC system has multiplier present. If true ignores export of 'ALT_CFLAGS += -mno-hw-mul' to public.mk if no multiplier is found in the system. If true ignores export of 'ALT_CFLAGS += -mhw-mul' if multiplier is found in the system. + none + false + none + + + hal.make.ignore_system_derived.hardware_mulx_present + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query if SOPC system has hardware mulx present. If true ignores export of 'ALT_CFLAGS += -mno-hw-mulx' to public.mk if no mulx is found in the system. If true ignores export of 'ALT_CFLAGS += -mhw-mulx' if mulx is found in the system. + none + false + none + + + hal.make.ignore_system_derived.hardware_divide_present + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query if SOPC system has hardware divide present. If true ignores export of 'ALT_CFLAGS += -mno-hw-div' to public.mk if no division is found in system. If true ignores export of 'ALT_CFLAGS += -mhw-div' if division is found in the system. + none + false + none + + + hal.make.ignore_system_derived.debug_core_present + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query if SOPC system has a debug core present. If true ignores export of 'CPU_HAS_DEBUG_CORE = 1' to public.mk if a debug core is found in the system. If true ignores export of 'CPU_HAS_DEBUG_CORE = 0' if no debug core is found in the system. + none + false + none + + + hal.make.ignore_system_derived.big_endian + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query if SOPC system is big endian. If true ignores export of 'ALT_CFLAGS += -EB' to public.mk if big endian system. If true ignores export of 'ALT_CFLAGS += -EL' if little endian system. + none + false + none + + + hal.make.ignore_system_derived.hardware_fp_cust_inst_divider_present + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query if SOPC system floating point custom instruction with a divider is present. If true ignores export of 'ALT_CFLAGS += -mcustom-fpu-cfg=60-2' and 'ALT_LDFLAGS += -mcustom-fpu-cfg=60-2' to public.mk if the custom instruction is found in the system. + none + false + none + + + hal.make.ignore_system_derived.hardware_fp_cust_inst_no_divider_present + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query if SOPC system floating point custom instruction without a divider is present. If true ignores export of 'ALT_CFLAGS += -mcustom-fpu-cfg=60-1' and 'ALT_LDFLAGS += -mcustom-fpu-cfg=60-1' to public.mk if the custom instruction is found in the system. + none + false + none + + + hal.enable_exit + ALT_NO_EXIT + Boolean + 1 + 1 + public_mk_define + Add exit() support. This option increases code footprint if your "main()" routine does "return" or call "exit()". If false, adds -DALT_NO_EXIT to ALT_CPPFLAGS in public.mk, and reduces footprint + none + false + none + + + hal.enable_small_c_library + NONE + Boolean + 0 + 0 + public_mk_define + Causes the small newlib (C library) to be used. This reduces code and data footprint at the expense of reduced functionality. Several newlib features are removed such as floating-point support in printf(), stdin input routines, and buffered I/O. The small C library is not compatible with Micrium MicroC/OS-II. If true, adds -msmallc to ALT_LDFLAGS in public.mk. + none + false + common + + + hal.enable_clean_exit + ALT_NO_CLEAN_EXIT + Boolean + 1 + 1 + public_mk_define + When your application exits, close file descriptors, call C++ destructors, etc. Code footprint can be reduced by disabling clean exit. If disabled, adds -DALT_NO_CLEAN_EXIT to ALT_CPPFLAGS and -Wl,--defsym, exit=_exit to ALT_LDFLAGS in public.mk. + none + false + none + + + hal.enable_runtime_stack_checking + ALT_STACK_CHECK + Boolean + 0 + 0 + public_mk_define + Turns on HAL runtime stack checking feature. Enabling this setting causes additional code to be placed into each subroutine call to generate an exception if a stack collision occurs with the heap or statically allocated data. If true, adds -DALT_STACK_CHECK and -mstack-check to ALT_CPPFLAGS in public.mk. + none + false + none + + + hal.enable_gprof + ALT_PROVIDE_GMON + Boolean + 0 + 0 + public_mk_define + Causes code to be compiled with gprof profiling enabled and the application ELF to be linked with the GPROF library. If true, adds -DALT_PROVIDE_GMON to ALT_CPPFLAGS and -pg to ALT_CFLAGS in public.mk. + none + false + common + + + hal.enable_c_plus_plus + ALT_NO_C_PLUS_PLUS + Boolean + 1 + 1 + public_mk_define + Enable support for a subset of the C++ language. This option increases code footprint by adding support for C++ constructors. Certain features, such as multiple inheritance and exceptions are not supported. If false, adds -DALT_NO_C_PLUS_PLUS to ALT_CPPFLAGS in public.mk, and reduces code footprint. + none + false + none + + + hal.enable_reduced_device_drivers + ALT_USE_SMALL_DRIVERS + Boolean + 0 + 0 + public_mk_define + Certain drivers are compiled with reduced functionality to reduce code footprint. Not all drivers observe this setting. The altera_avalon_uart and altera_avalon_jtag_uart drivers switch from interrupt-driven to polled operation. CAUTION: Several device drivers are disabled entirely. These include the altera_avalon_cfi_flash, altera_avalon_epcs_flash_controller, and altera_avalon_lcd_16207 drivers. This can result in certain API (HAL flash access routines) to fail. You can define a symbol provided by each driver to prevent it from being removed. If true, adds -DALT_USE_SMALL_DRIVERS to ALT_CPPFLAGS in public.mk. + none + false + common + + + hal.enable_lightweight_device_driver_api + ALT_USE_DIRECT_DRIVERS + Boolean + 0 + 0 + public_mk_define + Enables lightweight device driver API. This reduces code and data footprint by removing the HAL layer that maps device names (e.g. /dev/uart0) to file descriptors. Instead, driver routines are called directly. The open(), close(), and lseek() routines will always fail if called. The read(), write(), fstat(), ioctl(), and isatty() routines only work for the stdio devices. If true, adds -DALT_USE_DIRECT_DRIVERS to ALT_CPPFLAGS in public.mk. + The Altera Host and read-only ZIP file systems can't be used if hal.enable_lightweight_device_driver_api is true. + false + none + + + hal.enable_mul_div_emulation + ALT_NO_INSTRUCTION_EMULATION + Boolean + 0 + 0 + public_mk_define + Adds code to emulate multiply and divide instructions in case they are executed but aren't present in the CPU. Normally this isn't required because the compiler won't use multiply and divide instructions that aren't present in the CPU. If false, adds -DALT_NO_INSTRUCTION_EMULATION to ALT_CPPFLAGS in public.mk. + none + false + none + + + hal.enable_sim_optimize + ALT_SIM_OPTIMIZE + Boolean + 0 + 0 + public_mk_define + The BSP is compiled with optimizations to speedup HDL simulation such as initializing the cache, clearing the .bss section, and skipping long delay loops. If true, adds -DALT_SIM_OPTIMIZE to ALT_CPPFLAGS in public.mk. + When this setting is true, the BSP shouldn't be used to build applications that are expected to run real hardware. + false + common + + + hal.enable_sopc_sysid_check + NONE + Boolean + 1 + 1 + public_mk_define + Enable SOPC Builder System ID. If a System ID SOPC Builder component is connected to the CPU associated with this BSP, it will be enabled in the creation of command-line arguments to download an ELF to the target. Otherwise, system ID and timestamp values are left out of public.mk for application Makefile "download-elf" target definition. With the system ID check disabled, the Nios II EDS tools will not automatically ensure that the application .elf file (and BSP it is linked against) corresponds to the hardware design on the target. If false, adds --accept-bad-sysid to SOPC_SYSID_FLAG in public.mk. + none + false + none + + + hal.custom_newlib_flags + CUSTOM_NEWLIB_FLAGS + UnquotedString + none + none + public_mk_define + Build a custom version of newlib with the specified space-separated compiler flags. + The custom newlib build will be placed in the &lt;bsp root>/newlib directory, and will be used only for applications that utilize this BSP. + false + none + + + hal.log_flags + ALT_LOG_FLAGS + DecimalNumber + 0 + 0 + public_mk_define + The value is assigned to ALT_LOG_FLAGS in the generated public.mk. See hal.log_port setting description. Values can be -1 through 3. + hal.log_port must be set for this to be used. + false + none + + + altera_avalon_jtag_uart_driver.enable_small_driver + ALTERA_AVALON_JTAG_UART_SMALL + BooleanDefineOnly + false + false + public_mk_define + Small-footprint (polled mode) driver + none + false + + + + altera_avalon_jtag_uart_driver.enable_jtag_uart_ignore_fifo_full_error + ALTERA_AVALON_JTAG_UART_IGNORE_FIFO_FULL_ERROR + BooleanDefineOnly + false + false + public_mk_define + Enable JTAG UART driver to recover when host is inactive causing buffer to full without returning error. Printf will not fail with this recovery. + none + false + + + + onchip_memory + 0x00000000 - 0x00000FFF + 4096 + memory + + + switches + 0x00002000 - 0x0000200F + 16 + + + + LEDs + 0x00002010 - 0x0000201F + 16 + + + + jtag_uart + 0x00002020 - 0x00002027 + 8 + printable + + + .text + onchip_memory + + + .rodata + onchip_memory + + + .rwdata + onchip_memory + + + .bss + onchip_memory + + + .heap + onchip_memory + + + .stack + onchip_memory + + \ No newline at end of file diff --git a/software/qsys_tutorial_bsp/summary.html b/software/qsys_tutorial_bsp/summary.html new file mode 100644 index 0000000..175628c --- /dev/null +++ b/software/qsys_tutorial_bsp/summary.html @@ -0,0 +1,2008 @@ + +Altera Nios II BSP Summary + +

BSP Description

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
BSP Type:hal
SOPC Design File:C:\Users\takayun\Desktop\qsys_tutorial\nios_system.sopcinfo
Quartus JDI File:default
CPU:nios2_processor
BSP Settings File:.\settings.bsp
BSP Version:default
BSP Generated On:2016/10/13 17:08:42
BSP Generated Timestamp:1476346122316
BSP Generated Location:C:\Users\takayun\Desktop\qsys_tutorial\software\qsys_tutorial_bsp
+
+

Nios II Memory Map

+ + + + + + + + + + + + + + + + +
Slave DescriptorAddress RangeSizeAttributes
jtag_uart0x00002020 - 0x000020278printable
LEDs0x00002010 - 0x0000201F16 
switches0x00002000 - 0x0000200F16 
onchip_memory0x00000000 - 0x00000FFF4096memory
+
+
+

Linker Regions

+ + + + +
RegionAddress RangeSizeMemoryOffset
+
+
+

Linker Section Mappings

+ + + + + + + + + + + + + + + + + + + + + + +
SectionRegion
.textonchip_memory
.rodataonchip_memory
.rwdataonchip_memory
.bssonchip_memory
.heaponchip_memory
.stackonchip_memory
+

Settings

+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:altera_avalon_jtag_uart_driver.enable_jtag_uart_ignore_fifo_full_error
Identifier:ALTERA_AVALON_JTAG_UART_IGNORE_FIFO_FULL_ERROR
Default Value:false
Value:false
Type:BooleanDefineOnly
Destination:public_mk_define
Description:Enable JTAG UART driver to recover when host is inactive causing buffer to full without returning error. Printf will not fail with this recovery.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:altera_avalon_jtag_uart_driver.enable_small_driver
Identifier:ALTERA_AVALON_JTAG_UART_SMALL
Default Value:false
Value:false
Type:BooleanDefineOnly
Destination:public_mk_define
Description:Small-footprint (polled mode) driver
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.custom_newlib_flags
Identifier:CUSTOM_NEWLIB_FLAGS
Default Value:none
Value:none
Type:UnquotedString
Destination:public_mk_define
Description:Build a custom version of newlib with the specified space-separated compiler flags.
Restrictions:The custom newlib build will be placed in the &lt;bsp root>/newlib directory, and will be used only for applications that utilize this BSP.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_c_plus_plus
Identifier:ALT_NO_C_PLUS_PLUS
Default Value:1
Value:1
Type:Boolean
Destination:public_mk_define
Description:Enable support for a subset of the C++ language. This option increases code footprint by adding support for C++ constructors. Certain features, such as multiple inheritance and exceptions are not supported. If false, adds -DALT_NO_C_PLUS_PLUS to ALT_CPPFLAGS in public.mk, and reduces code footprint.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_clean_exit
Identifier:ALT_NO_CLEAN_EXIT
Default Value:1
Value:1
Type:Boolean
Destination:public_mk_define
Description:When your application exits, close file descriptors, call C++ destructors, etc. Code footprint can be reduced by disabling clean exit. If disabled, adds -DALT_NO_CLEAN_EXIT to ALT_CPPFLAGS and -Wl,--defsym, exit=_exit to ALT_LDFLAGS in public.mk.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_exit
Identifier:ALT_NO_EXIT
Default Value:1
Value:1
Type:Boolean
Destination:public_mk_define
Description:Add exit() support. This option increases code footprint if your "main()" routine does "return" or call "exit()". If false, adds -DALT_NO_EXIT to ALT_CPPFLAGS in public.mk, and reduces footprint
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_gprof
Identifier:ALT_PROVIDE_GMON
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Causes code to be compiled with gprof profiling enabled and the application ELF to be linked with the GPROF library. If true, adds -DALT_PROVIDE_GMON to ALT_CPPFLAGS and -pg to ALT_CFLAGS in public.mk.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_instruction_related_exceptions_api
Identifier:ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API
Default Value:false
Value:false
Type:BooleanDefineOnly
Destination:system_h_define
Description:Enables API for registering handlers to service instruction-related exceptions. Enabling this setting increases the size of the exception entry code.
Restrictions:These exception types can be generated if various processor options are enabled, such as the MMU, MPU, or other advanced exception types.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_lightweight_device_driver_api
Identifier:ALT_USE_DIRECT_DRIVERS
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enables lightweight device driver API. This reduces code and data footprint by removing the HAL layer that maps device names (e.g. /dev/uart0) to file descriptors. Instead, driver routines are called directly. The open(), close(), and lseek() routines will always fail if called. The read(), write(), fstat(), ioctl(), and isatty() routines only work for the stdio devices. If true, adds -DALT_USE_DIRECT_DRIVERS to ALT_CPPFLAGS in public.mk.
Restrictions:The Altera Host and read-only ZIP file systems can't be used if hal.enable_lightweight_device_driver_api is true.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_mul_div_emulation
Identifier:ALT_NO_INSTRUCTION_EMULATION
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Adds code to emulate multiply and divide instructions in case they are executed but aren't present in the CPU. Normally this isn't required because the compiler won't use multiply and divide instructions that aren't present in the CPU. If false, adds -DALT_NO_INSTRUCTION_EMULATION to ALT_CPPFLAGS in public.mk.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_reduced_device_drivers
Identifier:ALT_USE_SMALL_DRIVERS
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Certain drivers are compiled with reduced functionality to reduce code footprint. Not all drivers observe this setting. The altera_avalon_uart and altera_avalon_jtag_uart drivers switch from interrupt-driven to polled operation. CAUTION: Several device drivers are disabled entirely. These include the altera_avalon_cfi_flash, altera_avalon_epcs_flash_controller, and altera_avalon_lcd_16207 drivers. This can result in certain API (HAL flash access routines) to fail. You can define a symbol provided by each driver to prevent it from being removed. If true, adds -DALT_USE_SMALL_DRIVERS to ALT_CPPFLAGS in public.mk.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_runtime_stack_checking
Identifier:ALT_STACK_CHECK
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Turns on HAL runtime stack checking feature. Enabling this setting causes additional code to be placed into each subroutine call to generate an exception if a stack collision occurs with the heap or statically allocated data. If true, adds -DALT_STACK_CHECK and -mstack-check to ALT_CPPFLAGS in public.mk.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_sim_optimize
Identifier:ALT_SIM_OPTIMIZE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:The BSP is compiled with optimizations to speedup HDL simulation such as initializing the cache, clearing the .bss section, and skipping long delay loops. If true, adds -DALT_SIM_OPTIMIZE to ALT_CPPFLAGS in public.mk.
Restrictions:When this setting is true, the BSP shouldn't be used to build applications that are expected to run real hardware.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_small_c_library
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Causes the small newlib (C library) to be used. This reduces code and data footprint at the expense of reduced functionality. Several newlib features are removed such as floating-point support in printf(), stdin input routines, and buffered I/O. The small C library is not compatible with Micrium MicroC/OS-II. If true, adds -msmallc to ALT_LDFLAGS in public.mk.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_sopc_sysid_check
Identifier:NONE
Default Value:1
Value:1
Type:Boolean
Destination:public_mk_define
Description:Enable SOPC Builder System ID. If a System ID SOPC Builder component is connected to the CPU associated with this BSP, it will be enabled in the creation of command-line arguments to download an ELF to the target. Otherwise, system ID and timestamp values are left out of public.mk for application Makefile "download-elf" target definition. With the system ID check disabled, the Nios II EDS tools will not automatically ensure that the application .elf file (and BSP it is linked against) corresponds to the hardware design on the target. If false, adds --accept-bad-sysid to SOPC_SYSID_FLAG in public.mk.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.linker.allow_code_at_reset
Identifier:ALT_ALLOW_CODE_AT_RESET
Default Value:0
Value:1
Type:Boolean
Destination:none
Description:Indicates if initialization code is allowed at the reset address. If true, defines the macro ALT_ALLOW_CODE_AT_RESET in linker.h.
Restrictions:If true, defines the macro ALT_ALLOW_CODE_AT_RESET in linker.h. This setting is typically false if an external bootloader (e.g. flash bootloader) is present.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.linker.enable_alt_load
Identifier:NONE
Default Value:0
Value:1
Type:Boolean
Destination:none
Description:Enables the alt_load() facility. The alt_load() facility copies sections from the .text memory into RAM. If true, this setting sets up the VMA/LMA of sections in linker.x to allow them to be loaded into the .text memory.
Restrictions:This setting is typically false if an external bootloader (e.g. flash bootloader) is present.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.linker.enable_alt_load_copy_exceptions
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:none
Description:Causes the alt_load() facility to copy the .exceptions section. If true, this setting defines the macro ALT_LOAD_COPY_EXCEPTIONS in linker.h.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.linker.enable_alt_load_copy_rodata
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:none
Description:Causes the alt_load() facility to copy the .rodata section. If true, this setting defines the macro ALT_LOAD_COPY_RODATA in linker.h.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.linker.enable_alt_load_copy_rwdata
Identifier:NONE
Default Value:0
Value:1
Type:Boolean
Destination:none
Description:Causes the alt_load() facility to copy the .rwdata section. If true, this setting defines the macro ALT_LOAD_COPY_RWDATA in linker.h.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.linker.enable_exception_stack
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:none
Description:Enables use of a separate exception stack. If true, defines the macro ALT_EXCEPTION_STACK in linker.h, adds a memory region called exception_stack to linker.x, and provides the symbols __alt_exception_stack_pointer and __alt_exception_stack_limit in linker.x.
Restrictions:The hal.linker.exception_stack_size and hal.linker.exception_stack_memory_region_name settings must also be valid. This setting must be false for MicroC/OS-II BSPs. The exception stack can be used to improve interrupt and other exception performance if the EIC is *not* used.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.linker.enable_interrupt_stack
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:none
Description:Enables use of a separate interrupt stack. If true, defines the macro ALT_INTERRUPT_STACK in linker.h, adds a memory region called interrupt_stack to linker.x, and provides the symbols __alt_interrupt_stack_pointer and __alt_interrupt_stack_limit in linker.x.
Restrictions:The hal.linker.interrupt_stack_size and hal.linker.interrupt_stack_memory_region_name settings must also be valid. This setting must be false for MicroC/OS-II BSPs. Only enable if the EIC is used exclusively. The exception stack can be used to improve interrupt and other exception performance if the EIC is *not* used.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.linker.exception_stack_memory_region_name
Identifier:NONE
Default Value:none
Value:onchip_memory
Type:UnquotedString
Destination:none
Description:Name of the existing memory region that will be divided up to create the 'exception_stack' memory region. The selected region name will be adjusted automatically when the BSP is generated to create the 'exception_stack' memory region.
Restrictions:Only used if hal.linker.enable_exception_stack is true.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.linker.exception_stack_size
Identifier:NONE
Default Value:1024
Value:1024
Type:DecimalNumber
Destination:none
Description:Size of the exception stack in bytes.
Restrictions:Only used if hal.linker.enable_exception_stack is true.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.linker.interrupt_stack_memory_region_name
Identifier:NONE
Default Value:none
Value:onchip_memory
Type:UnquotedString
Destination:none
Description:Name of the existing memory region that will be divided up to create the 'interrupt_stack' memory region. The selected region name will be adjusted automatically when the BSP is generated to create the 'interrupt_stack' memory region.
Restrictions:Only used if hal.linker.enable_interrupt_stack is true.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.linker.interrupt_stack_size
Identifier:NONE
Default Value:1024
Value:1024
Type:DecimalNumber
Destination:none
Description:Size of the interrupt stack in bytes.
Restrictions:Only used if hal.linker.enable_interrupt_stack is true.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.log_flags
Identifier:ALT_LOG_FLAGS
Default Value:0
Value:0
Type:DecimalNumber
Destination:public_mk_define
Description:The value is assigned to ALT_LOG_FLAGS in the generated public.mk. See hal.log_port setting description. Values can be -1 through 3.
Restrictions:hal.log_port must be set for this to be used.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.log_port
Identifier:NONE
Default Value:none
Value:none
Type:UnquotedString
Destination:public_mk_define
Description:Slave descriptor of debug logging character-mode device. If defined, it enables extra debug messages in the HAL source. This setting is used by the ALT_LOG_PORT family of defines in system.h.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ar
Identifier:AR
Default Value:nios2-elf-ar
Value:nios2-elf-ar
Type:UnquotedString
Destination:makefile_variable
Description:Archiver command. Creates library files.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ar_post_process
Identifier:AR_POST_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed after archiver execution.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ar_pre_process
Identifier:AR_PRE_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed before archiver execution.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.as
Identifier:AS
Default Value:nios2-elf-gcc
Value:nios2-elf-gcc
Type:UnquotedString
Destination:makefile_variable
Description:Assembler command. Note that CC is used for .S files.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.as_post_process
Identifier:AS_POST_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed after each assembly file is compiled.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.as_pre_process
Identifier:AS_PRE_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed before each assembly file is compiled.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.bsp_arflags
Identifier:BSP_ARFLAGS
Default Value:-src
Value:-src
Type:UnquotedString
Destination:makefile_variable
Description:Custom flags only passed to the archiver. This content of this variable is directly passed to the archiver rather than the more standard "ARFLAGS". The reason for this is that GNU Make assumes some default content in ARFLAGS. This setting defines the value of BSP_ARFLAGS in Makefile.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.bsp_asflags
Identifier:BSP_ASFLAGS
Default Value:-Wa,-gdwarf2
Value:-Wa,-gdwarf2
Type:UnquotedString
Destination:makefile_variable
Description:Custom flags only passed to the assembler. This setting defines the value of BSP_ASFLAGS in Makefile.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.bsp_cflags_debug
Identifier:BSP_CFLAGS_DEBUG
Default Value:-g
Value:-g
Type:UnquotedString
Destination:makefile_variable
Description:C/C++ compiler debug level. '-g' provides the default set of debug symbols typically required to debug a typical application. Omitting '-g' removes debug symbols from the ELF. This setting defines the value of BSP_CFLAGS_DEBUG in Makefile.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.bsp_cflags_defined_symbols
Identifier:BSP_CFLAGS_DEFINED_SYMBOLS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Preprocessor macros to define. A macro definition in this setting has the same effect as a "#define" in source code. Adding "-DALT_DEBUG" to this setting has the same effect as "#define ALT_DEBUG" in a souce file. Adding "-DFOO=1" to this setting is equivalent to the macro "#define FOO 1" in a source file. Macros defined with this setting are applied to all .S, .c, and C++ files in the BSP. This setting defines the value of BSP_CFLAGS_DEFINED_SYMBOLS in the BSP Makefile.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.bsp_cflags_optimization
Identifier:BSP_CFLAGS_OPTIMIZATION
Default Value:-O0
Value:-O0
Type:UnquotedString
Destination:makefile_variable
Description:C/C++ compiler optimization level. "-O0" = no optimization,"-O2" = "normal" optimization, etc. "-O0" is recommended for code that you want to debug since compiler optimization can remove variables and produce non-sequential execution of code while debugging. This setting defines the value of BSP_CFLAGS_OPTIMIZATION in Makefile.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.bsp_cflags_undefined_symbols
Identifier:BSP_CFLAGS_UNDEFINED_SYMBOLS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Preprocessor macros to undefine. Undefined macros are similar to defined macros, but replicate the "#undef" directive in source code. To undefine the macro FOO use the syntax "-u FOO" in this setting. This is equivalent to "#undef FOO" in a source file. Note: the syntax differs from macro definition (there is a space, i.e. "-u FOO" versus "-DFOO"). Macros defined with this setting are applied to all .S, .c, and C++ files in the BSP. This setting defines the value of BSP_CFLAGS_UNDEFINED_SYMBOLS in the BSP Makefile.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.bsp_cflags_user_flags
Identifier:BSP_CFLAGS_USER_FLAGS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Custom flags passed to the compiler when compiling C, C++, and .S files. This setting defines the value of BSP_CFLAGS_USER_FLAGS in Makefile.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.bsp_cflags_warnings
Identifier:BSP_CFLAGS_WARNINGS
Default Value:-Wall
Value:-Wall
Type:UnquotedString
Destination:makefile_variable
Description:C/C++ compiler warning level. "-Wall" is commonly used.This setting defines the value of BSP_CFLAGS_WARNINGS in Makefile.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.bsp_cxx_flags
Identifier:BSP_CXXFLAGS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Custom flags only passed to the C++ compiler. This setting defines the value of BSP_CXXFLAGS in Makefile.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.bsp_inc_dirs
Identifier:BSP_INC_DIRS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Space separated list of extra include directories to scan for header files. Directories are relative to the top-level BSP directory. The -I prefix's added by the makefile so don't add it here. This setting defines the value of BSP_INC_DIRS in Makefile.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.build_post_process
Identifier:BUILD_POST_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed after BSP built.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.build_pre_process
Identifier:BUILD_PRE_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed before BSP built.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.cc
Identifier:CC
Default Value:nios2-elf-gcc -xc
Value:nios2-elf-gcc -xc
Type:UnquotedString
Destination:makefile_variable
Description:C compiler command.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.cc_post_process
Identifier:CC_POST_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed after each .c/.S file is compiled.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.cc_pre_process
Identifier:CC_PRE_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed before each .c/.S file is compiled.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.cxx
Identifier:CXX
Default Value:nios2-elf-gcc -xc++
Value:nios2-elf-gcc -xc++
Type:UnquotedString
Destination:makefile_variable
Description:C++ compiler command.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.cxx_post_process
Identifier:CXX_POST_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed before each C++ file is compiled.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.cxx_pre_process
Identifier:CXX_PRE_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed before each C++ file is compiled.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.big_endian
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query if SOPC system is big endian. If true ignores export of 'ALT_CFLAGS += -EB' to public.mk if big endian system. If true ignores export of 'ALT_CFLAGS += -EL' if little endian system.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.debug_core_present
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query if SOPC system has a debug core present. If true ignores export of 'CPU_HAS_DEBUG_CORE = 1' to public.mk if a debug core is found in the system. If true ignores export of 'CPU_HAS_DEBUG_CORE = 0' if no debug core is found in the system.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.fpu_present
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query if SOPC system has FPU present. If true ignores export of 'ALT_CFLAGS += -mhard-float' to public.mk if FPU is found in the system. If true ignores export of 'ALT_CFLAGS += -mhard-soft' if FPU is not found in the system.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.hardware_divide_present
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query if SOPC system has hardware divide present. If true ignores export of 'ALT_CFLAGS += -mno-hw-div' to public.mk if no division is found in system. If true ignores export of 'ALT_CFLAGS += -mhw-div' if division is found in the system.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.hardware_fp_cust_inst_divider_present
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query if SOPC system floating point custom instruction with a divider is present. If true ignores export of 'ALT_CFLAGS += -mcustom-fpu-cfg=60-2' and 'ALT_LDFLAGS += -mcustom-fpu-cfg=60-2' to public.mk if the custom instruction is found in the system.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.hardware_fp_cust_inst_no_divider_present
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query if SOPC system floating point custom instruction without a divider is present. If true ignores export of 'ALT_CFLAGS += -mcustom-fpu-cfg=60-1' and 'ALT_LDFLAGS += -mcustom-fpu-cfg=60-1' to public.mk if the custom instruction is found in the system.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.hardware_multiplier_present
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query if SOPC system has multiplier present. If true ignores export of 'ALT_CFLAGS += -mno-hw-mul' to public.mk if no multiplier is found in the system. If true ignores export of 'ALT_CFLAGS += -mhw-mul' if multiplier is found in the system.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.hardware_mulx_present
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query if SOPC system has hardware mulx present. If true ignores export of 'ALT_CFLAGS += -mno-hw-mulx' to public.mk if no mulx is found in the system. If true ignores export of 'ALT_CFLAGS += -mhw-mulx' if mulx is found in the system.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.sopc_simulation_enabled
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query if SOPC system has simulation enabled. If true ignores export of 'ELF_PATCH_FLAG += --simulation_enabled' to public.mk.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.sopc_system_base_address
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query SOPC system for system ID base address. If true ignores export of 'SOPC_SYSID_FLAG += --sidp=<address>' and 'ELF_PATCH_FLAG += --sidp=<address>' to public.mk.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.sopc_system_id
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query SOPC system for system ID. If true ignores export of 'SOPC_SYSID_FLAG += --id=<sysid>' and 'ELF_PATCH_FLAG += --id=<sysid>' to public.mk.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.sopc_system_timestamp
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query SOPC system for system timestamp. If true ignores export of 'SOPC_SYSID_FLAG += --timestamp=<timestamp>' and 'ELF_PATCH_FLAG += --timestamp=<timestamp>' to public.mk.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.rm
Identifier:RM
Default Value:rm -f
Value:rm -f
Type:UnquotedString
Destination:makefile_variable
Description:Command used to remove files during 'clean' target.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.max_file_descriptors
Identifier:ALT_MAX_FD
Default Value:32
Value:32
Type:DecimalNumber
Destination:system_h_define
Description:Determines the number of file descriptors statically allocated. This setting defines the value of ALT_MAX_FD in system.h.
Restrictions:If hal.enable_lightweight_device_driver_api is true, there are no file descriptors so this setting is ignored. If hal.enable_lightweight_device_driver_api is false, this setting must be at least 4 because HAL needs a file descriptor for /dev/null, /dev/stdin, /dev/stdout, and /dev/stderr.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.stderr
Identifier:NONE
Default Value:none
Value:jtag_uart
Type:UnquotedString
Destination:system_h_define
Description:Slave descriptor of STDERR character-mode device. This setting is used by the ALT_STDERR family of defines in system.h.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.stdin
Identifier:NONE
Default Value:none
Value:jtag_uart
Type:UnquotedString
Destination:system_h_define
Description:Slave descriptor of STDIN character-mode device. This setting is used by the ALT_STDIN family of defines in system.h.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.stdout
Identifier:NONE
Default Value:none
Value:jtag_uart
Type:UnquotedString
Destination:system_h_define
Description:Slave descriptor of STDOUT character-mode device. This setting is used by the ALT_STDOUT family of defines in system.h.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.sys_clk_timer
Identifier:ALT_SYS_CLK
Default Value:none
Value:none
Type:UnquotedString
Destination:system_h_define
Description:Slave descriptor of the system clock timer device. This device provides a periodic interrupt ("tick") and is typically required for RTOS use. This setting defines the value of ALT_SYS_CLK in system.h.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.timestamp_timer
Identifier:ALT_TIMESTAMP_CLK
Default Value:none
Value:none
Type:UnquotedString
Destination:system_h_define
Description:Slave descriptor of timestamp timer device. This device is used by Altera HAL timestamp drivers for high-resolution time measurement. This setting defines the value of ALT_TIMESTAMP_CLK in system.h.
Restrictions:none
+
+
+
+ + diff --git a/software/qsys_tutorial_bsp/system.h b/software/qsys_tutorial_bsp/system.h new file mode 100644 index 0000000..ba54e71 --- /dev/null +++ b/software/qsys_tutorial_bsp/system.h @@ -0,0 +1,278 @@ +/* + * system.h - SOPC Builder system and BSP software package information + * + * Machine generated for CPU 'nios2_processor' in SOPC Builder design 'nios_system' + * SOPC Builder design path: C:/Users/takayun/Desktop/qsys_tutorial/nios_system.sopcinfo + * + * Generated: Thu Oct 13 17:08:43 JST 2016 + */ + +/* + * DO NOT MODIFY THIS FILE + * + * Changing this file will have subtle consequences + * which will almost certainly lead to a nonfunctioning + * system. If you do modify this file, be aware that your + * changes will be overwritten and lost when this file + * is generated again. + * + * DO NOT MODIFY THIS FILE + */ + +/* + * License Agreement + * + * Copyright (c) 2008 + * Altera Corporation, San Jose, California, USA. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + * This agreement shall be governed in all respects by the laws of the State + * of California and by the laws of the United States of America. + */ + +#ifndef __SYSTEM_H_ +#define __SYSTEM_H_ + +/* Include definitions from linker script generator */ +#include "linker.h" + + +/* + * CPU configuration + * + */ + +#define ALT_CPU_ARCHITECTURE "altera_nios2_qsys" +#define ALT_CPU_BIG_ENDIAN 0 +#define ALT_CPU_BREAK_ADDR 0x1820 +#define ALT_CPU_CPU_FREQ 50000000u +#define ALT_CPU_CPU_ID_SIZE 1 +#define ALT_CPU_CPU_ID_VALUE 0x00000000 +#define ALT_CPU_CPU_IMPLEMENTATION "tiny" +#define ALT_CPU_DATA_ADDR_WIDTH 0xe +#define ALT_CPU_DCACHE_LINE_SIZE 0 +#define ALT_CPU_DCACHE_LINE_SIZE_LOG2 0 +#define ALT_CPU_DCACHE_SIZE 0 +#define ALT_CPU_EXCEPTION_ADDR 0x20 +#define ALT_CPU_FLUSHDA_SUPPORTED +#define ALT_CPU_FREQ 50000000 +#define ALT_CPU_HARDWARE_DIVIDE_PRESENT 0 +#define ALT_CPU_HARDWARE_MULTIPLY_PRESENT 0 +#define ALT_CPU_HARDWARE_MULX_PRESENT 0 +#define ALT_CPU_HAS_DEBUG_CORE 1 +#define ALT_CPU_HAS_DEBUG_STUB +#define ALT_CPU_HAS_JMPI_INSTRUCTION +#define ALT_CPU_ICACHE_LINE_SIZE 0 +#define ALT_CPU_ICACHE_LINE_SIZE_LOG2 0 +#define ALT_CPU_ICACHE_SIZE 0 +#define ALT_CPU_INST_ADDR_WIDTH 0xd +#define ALT_CPU_NAME "nios2_processor" +#define ALT_CPU_RESET_ADDR 0x0 + + +/* + * CPU configuration (with legacy prefix - don't use these anymore) + * + */ + +#define NIOS2_BIG_ENDIAN 0 +#define NIOS2_BREAK_ADDR 0x1820 +#define NIOS2_CPU_FREQ 50000000u +#define NIOS2_CPU_ID_SIZE 1 +#define NIOS2_CPU_ID_VALUE 0x00000000 +#define NIOS2_CPU_IMPLEMENTATION "tiny" +#define NIOS2_DATA_ADDR_WIDTH 0xe +#define NIOS2_DCACHE_LINE_SIZE 0 +#define NIOS2_DCACHE_LINE_SIZE_LOG2 0 +#define NIOS2_DCACHE_SIZE 0 +#define NIOS2_EXCEPTION_ADDR 0x20 +#define NIOS2_FLUSHDA_SUPPORTED +#define NIOS2_HARDWARE_DIVIDE_PRESENT 0 +#define NIOS2_HARDWARE_MULTIPLY_PRESENT 0 +#define NIOS2_HARDWARE_MULX_PRESENT 0 +#define NIOS2_HAS_DEBUG_CORE 1 +#define NIOS2_HAS_DEBUG_STUB +#define NIOS2_HAS_JMPI_INSTRUCTION +#define NIOS2_ICACHE_LINE_SIZE 0 +#define NIOS2_ICACHE_LINE_SIZE_LOG2 0 +#define NIOS2_ICACHE_SIZE 0 +#define NIOS2_INST_ADDR_WIDTH 0xd +#define NIOS2_RESET_ADDR 0x0 + + +/* + * Define for each module class mastered by the CPU + * + */ + +#define __ALTERA_AVALON_JTAG_UART +#define __ALTERA_AVALON_ONCHIP_MEMORY2 +#define __ALTERA_AVALON_PIO +#define __ALTERA_NIOS2_QSYS + + +/* + * LEDs configuration + * + */ + +#define ALT_MODULE_CLASS_LEDs altera_avalon_pio +#define LEDS_BASE 0x2010 +#define LEDS_BIT_CLEARING_EDGE_REGISTER 0 +#define LEDS_BIT_MODIFYING_OUTPUT_REGISTER 0 +#define LEDS_CAPTURE 0 +#define LEDS_DATA_WIDTH 8 +#define LEDS_DO_TEST_BENCH_WIRING 0 +#define LEDS_DRIVEN_SIM_VALUE 0 +#define LEDS_EDGE_TYPE "NONE" +#define LEDS_FREQ 50000000 +#define LEDS_HAS_IN 0 +#define LEDS_HAS_OUT 1 +#define LEDS_HAS_TRI 0 +#define LEDS_IRQ -1 +#define LEDS_IRQ_INTERRUPT_CONTROLLER_ID -1 +#define LEDS_IRQ_TYPE "NONE" +#define LEDS_NAME "/dev/LEDs" +#define LEDS_RESET_VALUE 0 +#define LEDS_SPAN 16 +#define LEDS_TYPE "altera_avalon_pio" + + +/* + * System configuration + * + */ + +#define ALT_DEVICE_FAMILY "Cyclone IV E" +#define ALT_ENHANCED_INTERRUPT_API_PRESENT +#define ALT_IRQ_BASE NULL +#define ALT_LOG_PORT "/dev/null" +#define ALT_LOG_PORT_BASE 0x0 +#define ALT_LOG_PORT_DEV null +#define ALT_LOG_PORT_TYPE "" +#define ALT_NUM_EXTERNAL_INTERRUPT_CONTROLLERS 0 +#define ALT_NUM_INTERNAL_INTERRUPT_CONTROLLERS 1 +#define ALT_NUM_INTERRUPT_CONTROLLERS 1 +#define ALT_STDERR "/dev/jtag_uart" +#define ALT_STDERR_BASE 0x2020 +#define ALT_STDERR_DEV jtag_uart +#define ALT_STDERR_IS_JTAG_UART +#define ALT_STDERR_PRESENT +#define ALT_STDERR_TYPE "altera_avalon_jtag_uart" +#define ALT_STDIN "/dev/jtag_uart" +#define ALT_STDIN_BASE 0x2020 +#define ALT_STDIN_DEV jtag_uart +#define ALT_STDIN_IS_JTAG_UART +#define ALT_STDIN_PRESENT +#define ALT_STDIN_TYPE "altera_avalon_jtag_uart" +#define ALT_STDOUT "/dev/jtag_uart" +#define ALT_STDOUT_BASE 0x2020 +#define ALT_STDOUT_DEV jtag_uart +#define ALT_STDOUT_IS_JTAG_UART +#define ALT_STDOUT_PRESENT +#define ALT_STDOUT_TYPE "altera_avalon_jtag_uart" +#define ALT_SYSTEM_NAME "nios_system" + + +/* + * hal configuration + * + */ + +#define ALT_MAX_FD 32 +#define ALT_SYS_CLK none +#define ALT_TIMESTAMP_CLK none + + +/* + * jtag_uart configuration + * + */ + +#define ALT_MODULE_CLASS_jtag_uart altera_avalon_jtag_uart +#define JTAG_UART_BASE 0x2020 +#define JTAG_UART_IRQ 0 +#define JTAG_UART_IRQ_INTERRUPT_CONTROLLER_ID 0 +#define JTAG_UART_NAME "/dev/jtag_uart" +#define JTAG_UART_READ_DEPTH 64 +#define JTAG_UART_READ_THRESHOLD 8 +#define JTAG_UART_SPAN 8 +#define JTAG_UART_TYPE "altera_avalon_jtag_uart" +#define JTAG_UART_WRITE_DEPTH 64 +#define JTAG_UART_WRITE_THRESHOLD 8 + + +/* + * onchip_memory configuration + * + */ + +#define ALT_MODULE_CLASS_onchip_memory altera_avalon_onchip_memory2 +#define ONCHIP_MEMORY_ALLOW_IN_SYSTEM_MEMORY_CONTENT_EDITOR 0 +#define ONCHIP_MEMORY_ALLOW_MRAM_SIM_CONTENTS_ONLY_FILE 0 +#define ONCHIP_MEMORY_BASE 0x0 +#define ONCHIP_MEMORY_CONTENTS_INFO "" +#define ONCHIP_MEMORY_DUAL_PORT 0 +#define ONCHIP_MEMORY_GUI_RAM_BLOCK_TYPE "AUTO" +#define ONCHIP_MEMORY_INIT_CONTENTS_FILE "nios_system_onchip_memory" +#define ONCHIP_MEMORY_INIT_MEM_CONTENT 1 +#define ONCHIP_MEMORY_INSTANCE_ID "NONE" +#define ONCHIP_MEMORY_IRQ -1 +#define ONCHIP_MEMORY_IRQ_INTERRUPT_CONTROLLER_ID -1 +#define ONCHIP_MEMORY_NAME "/dev/onchip_memory" +#define ONCHIP_MEMORY_NON_DEFAULT_INIT_FILE_ENABLED 0 +#define ONCHIP_MEMORY_RAM_BLOCK_TYPE "AUTO" +#define ONCHIP_MEMORY_READ_DURING_WRITE_MODE "DONT_CARE" +#define ONCHIP_MEMORY_SINGLE_CLOCK_OP 0 +#define ONCHIP_MEMORY_SIZE_MULTIPLE 1 +#define ONCHIP_MEMORY_SIZE_VALUE 4096 +#define ONCHIP_MEMORY_SPAN 4096 +#define ONCHIP_MEMORY_TYPE "altera_avalon_onchip_memory2" +#define ONCHIP_MEMORY_WRITABLE 1 + + +/* + * switches configuration + * + */ + +#define ALT_MODULE_CLASS_switches altera_avalon_pio +#define SWITCHES_BASE 0x2000 +#define SWITCHES_BIT_CLEARING_EDGE_REGISTER 0 +#define SWITCHES_BIT_MODIFYING_OUTPUT_REGISTER 0 +#define SWITCHES_CAPTURE 0 +#define SWITCHES_DATA_WIDTH 8 +#define SWITCHES_DO_TEST_BENCH_WIRING 0 +#define SWITCHES_DRIVEN_SIM_VALUE 0 +#define SWITCHES_EDGE_TYPE "NONE" +#define SWITCHES_FREQ 50000000 +#define SWITCHES_HAS_IN 1 +#define SWITCHES_HAS_OUT 0 +#define SWITCHES_HAS_TRI 0 +#define SWITCHES_IRQ -1 +#define SWITCHES_IRQ_INTERRUPT_CONTROLLER_ID -1 +#define SWITCHES_IRQ_TYPE "NONE" +#define SWITCHES_NAME "/dev/switches" +#define SWITCHES_RESET_VALUE 0 +#define SWITCHES_SPAN 16 +#define SWITCHES_TYPE "altera_avalon_pio" + +#endif /* __SYSTEM_H_ */ diff --git a/software/qsys_tutorial_green/.cproject b/software/qsys_tutorial_green/.cproject new file mode 100644 index 0000000..1a3b800 --- /dev/null +++ b/software/qsys_tutorial_green/.cproject @@ -0,0 +1,508 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + make + + mem_init_install + true + false + false + + + make + + mem_init_generate + true + false + false + + + make + + help + true + false + false + + + + diff --git a/software/qsys_tutorial_green/.project b/software/qsys_tutorial_green/.project new file mode 100644 index 0000000..6fa16ac --- /dev/null +++ b/software/qsys_tutorial_green/.project @@ -0,0 +1,96 @@ + + + qsys_tutorial_green + + + + + + com.altera.sbtgui.project.makefileBuilder + + + + + com.altera.sbtgui.project.makefileBuilder + + + + + org.eclipse.cdt.managedbuilder.core.genmakebuilder + clean,full,incremental, + + + ?name? + + + + org.eclipse.cdt.make.core.append_environment + true + + + org.eclipse.cdt.make.core.autoBuildTarget + all + + + org.eclipse.cdt.make.core.buildArguments + + + + org.eclipse.cdt.make.core.buildCommand + make + + + org.eclipse.cdt.make.core.buildLocation + ${workspace_loc://qsys_tutorial_green} + + + org.eclipse.cdt.make.core.cleanBuildTarget + clean + + + org.eclipse.cdt.make.core.contents + org.eclipse.cdt.make.core.activeConfigSettings + + + org.eclipse.cdt.make.core.enableAutoBuild + false + + + org.eclipse.cdt.make.core.enableCleanBuild + true + + + org.eclipse.cdt.make.core.enableFullBuild + true + + + org.eclipse.cdt.make.core.fullBuildTarget + all + + + org.eclipse.cdt.make.core.stopOnError + true + + + org.eclipse.cdt.make.core.useDefaultBuildCmd + true + + + + + org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder + full,incremental, + + + + + + org.eclipse.cdt.core.cnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.managedbuilder.core.ScannerConfigNature + org.eclipse.cdt.core.ccnature + com.altera.sbtgui.project.SBTGUINature + com.altera.sbtgui.project.SBTGUIAppNature + com.altera.sbtgui.project.SBTGUIManagedNature + + diff --git a/software/qsys_tutorial_green/Makefile b/software/qsys_tutorial_green/Makefile new file mode 100644 index 0000000..f0200d7 --- /dev/null +++ b/software/qsys_tutorial_green/Makefile @@ -0,0 +1,1086 @@ +#------------------------------------------------------------------------------ +# VARIABLES APPENDED TO BY INCLUDED MAKEFILE FRAGMENTS +#------------------------------------------------------------------------------ + +# List of include directories for -I compiler option (-I added when used). +# Includes the BSP. +ALT_INCLUDE_DIRS := + +# List of library directories for -L linker option (-L added when used). +# Includes the BSP. +ALT_LIBRARY_DIRS := + +# List of library names for -l linker option (-l added when used). +# Includes the BSP. +ALT_LIBRARY_NAMES := + +# List of library names for -msys-lib linker option (-msys-lib added when used). +# These are libraries that might be located in the BSP and depend on the BSP +# library, or vice versa +ALT_BSP_DEP_LIBRARY_NAMES := + +# List of dependencies for the linker. This is usually the full pathname +# of each library (*.a) file. +# Includes the BSP. +ALT_LDDEPS := + +# List of root library directories that support running make to build them. +# Includes the BSP and any ALT libraries. +MAKEABLE_LIBRARY_ROOT_DIRS := + +# Generic flags passed to the compiler for different types of input files. +ALT_CFLAGS := +ALT_CXXFLAGS := +ALT_CPPFLAGS := +ALT_ASFLAGS := +ALT_LDFLAGS := + + +#------------------------------------------------------------------------------ +# The adjust-path macro +# +# If COMSPEC/ComSpec is defined, Make is launched from Windows through +# Cygwin. The adjust-path macro converts absolute windows paths into +# unix style paths (Example: c:/dir -> /c/dir). This will ensture +# paths are readable by GNU Make. +# +# If COMSPEC/ComSpec is not defined, Make is launched from linux, and no +# adjustment is necessary +# +#------------------------------------------------------------------------------ + +ifndef COMSPEC +ifdef ComSpec +COMSPEC = $(ComSpec) +endif # ComSpec +endif # COMSPEC + +ifdef COMSPEC # if Windows OS + +ifeq ($(MAKE_VERSION),3.81) +# +# adjust-path/adjust-path-mixed for Mingw Gnu Make on Windows +# +# Example Usage: +# $(call adjust-path,c:/aaa/bbb) => /c/aaa/bbb +# $(call adjust-path-mixed,/c/aaa/bbb) => c:/aaa/bbb +# $(call adjust-path-mixed,/cygdrive/c/aaa/bbb) => c:/aaa/bbb +# + +# +# adjust-path +# - converts back slash characters into forward slashes +# - if input arg ($1) is an empty string then return the empty string +# - if input arg ($1) does not contain the string ":/", then return input arg +# - using sed, convert mixed path [c:/...] into mingw path [/c/...] +define adjust-path +$(strip \ +$(if $1,\ +$(if $(findstring :/,$(subst \,/,$1)),\ +$(shell echo $(subst \,/,$1) | sed -e 's,^\([a-zA-Z]\):/,/\1/,'),\ +$(subst \,/,$1)))) +endef + +# +# adjust-path-mixed +# - converts back slash characters into forward slashes +# - if input arg ($1) is an empty string then return the empty string +# - if input arg ($1) does not begin with a forward slash '/' char, then +# return input arg +# - using sed, convert mingw path [/c/...] or cygwin path [/c/cygdrive/...] +# into a mixed path [c:/...] +define adjust-path-mixed +$(strip \ +$(if $1,\ +$(if $(findstring $(subst \,/,$1),$(patsubst /%,%,$(subst \,/,$1))),\ +$(subst \,/,$1),\ +$(shell echo $(subst \,/,$1) | sed -e 's,^/cygdrive/\([a-zA-Z]\)/,\1:/,' -e 's,^/\([a-zA-Z]\)/,\1:/,')))) +endef + +else # MAKE_VERSION != 3.81 (MAKE_VERSION == 3.80 or MAKE_VERSION == 3.79) +# +# adjust-path for Cygwin Gnu Make +# $(call adjust-path,c:/aaa/bbb) = /cygdrive/c/aaa/bbb +# $(call adjust-path-mixed,/cygdrive/c/aaa/bbb) = c:/aaa/bbb +# +adjust-path = $(if $1,$(shell cygpath -u "$1"),) +adjust-path-mixed = $(if $1,$(shell cygpath -m "$1"),) +endif + +else # !COMSPEC + +adjust-path = $1 +adjust-path-mixed = $1 + +endif # COMSPEC + + +#vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv +# GENERATED SETTINGS START v +#vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv + +#START GENERATED +ACTIVE_BUILD_CONFIG := default +BUILD_CONFIGS := default + +# The following TYPE comment allows tools to identify the 'type' of target this +# makefile is associated with. +# TYPE: APP_MAKEFILE + +# This following VERSION comment indicates the version of the tool used to +# generate this makefile. A makefile variable is provided for VERSION as well. +# ACDS_VERSION: 13.0sp1 +ACDS_VERSION := 13.0sp1 + +# This following BUILD_NUMBER comment indicates the build number of the tool +# used to generate this makefile. +# BUILD_NUMBER: 232 + +# Define path to the application ELF. +# It may be used by the makefile fragments so is defined before including them. +# +ELF := qsys_tutorial_green.elf + +# Paths to C, C++, and assembly source files. +C_SRCS := hello_world_small.c +CXX_SRCS := +ASM_SRCS := + + +# Path to root of object file tree. +OBJ_ROOT_DIR := obj + +# Options to control objdump. +CREATE_OBJDUMP := 1 +OBJDUMP_INCLUDE_SOURCE := 1 +OBJDUMP_FULL_CONTENTS := 0 + +# Options to enable/disable optional files. +CREATE_ELF_DERIVED_FILES := 0 +CREATE_LINKER_MAP := 1 + +# Common arguments for ALT_CFLAGSs +APP_CFLAGS_DEFINED_SYMBOLS := +APP_CFLAGS_UNDEFINED_SYMBOLS := +APP_CFLAGS_OPTIMIZATION := -Os +APP_CFLAGS_DEBUG_LEVEL := -g +APP_CFLAGS_WARNINGS := -Wall +APP_CFLAGS_USER_FLAGS := + +APP_ASFLAGS_USER := +APP_LDFLAGS_USER := + +# Linker options that have default values assigned later if not +# assigned here. +LINKER_SCRIPT := +CRT0 := +SYS_LIB := + +# Define path to the root of the BSP. +BSP_ROOT_DIR := ../qsys_tutorial_green_bsp/ + +# List of application specific include directories, library directories and library names +APP_INCLUDE_DIRS := +APP_LIBRARY_DIRS := +APP_LIBRARY_NAMES := + +# Pre- and post- processor settings. +BUILD_PRE_PROCESS := +BUILD_POST_PROCESS := + +QUARTUS_PROJECT_DIR := ../../ + + +#END GENERATED + +#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +# GENERATED SETTINGS END ^ +#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + +#------------------------------------------------------------------------------ +# DEFAULT TARGET +#------------------------------------------------------------------------------ + +# Define the variable used to echo output if not already defined. +ifeq ($(ECHO),) +ECHO := echo +endif + +# Put "all" rule before included makefile fragments because they may +# define rules and we don't want one of those to become the default rule. +.PHONY : all + +all: + @$(ECHO) [$(APP_NAME) build complete] + +all : build_pre_process libs app build_post_process + + +#------------------------------------------------------------------------------ +# VARIABLES DEPENDENT ON GENERATED CONTENT +#------------------------------------------------------------------------------ + +# Define object file directory per build configuration +CONFIG_OBJ_DIR := $(OBJ_ROOT_DIR)/$(ACTIVE_BUILD_CONFIG) + +ifeq ($(BSP_ROOT_DIR),) +$(error Edit Makefile and provide a value for BSP_ROOT_DIR) +endif + +ifeq ($(wildcard $(BSP_ROOT_DIR)),) +$(error BSP directory does not exist: $(BSP_ROOT_DIR)) +endif + +# Define absolute path to the root of the BSP. +ABS_BSP_ROOT_DIR := $(call adjust-path-mixed,$(shell cd "$(BSP_ROOT_DIR)"; pwd)) + +# Include makefile fragments. Define variable ALT_LIBRARY_ROOT_DIR before +# including each makefile fragment so that it knows the path to itself. +BSP_INCLUDE_FILE := $(BSP_ROOT_DIR)/public.mk +ALT_LIBRARY_ROOT_DIR := $(BSP_ROOT_DIR) +include $(BSP_INCLUDE_FILE) +# C2H will need this to touch the BSP public.mk and avoid the sopc file +# out-of-date error during a BSP make +ABS_BSP_INCLUDE_FILE := $(ABS_BSP_ROOT_DIR)/public.mk + + +ifneq ($(WARNING.SMALL_STACK_SIZE),) +# This WARNING is here to protect you from unknowingly using a very small stack +# If the warning is set, increase your stack size or enable the BSP small stack +# setting to eliminate the warning +$(warning WARNING: $(WARNING.SMALL_STACK_SIZE)) +endif + + +# If the BSP public.mk indicates that ALT_SIM_OPTIMIZE is set, rename the ELF +# by prefixing it with RUN_ON_HDL_SIMULATOR_ONLY_. +ifneq ($(filter -DALT_SIM_OPTIMIZE,$(ALT_CPPFLAGS)),) +ELF := RUN_ON_HDL_SIMULATOR_ONLY_$(ELF) +endif + +# If the BSP public.mk indicates that ALT_PROVIDE_GMON is set, add option to +# download_elf target +ifneq ($(filter -DALT_PROVIDE_GMON,$(ALT_CPPFLAGS)),) +GMON_OUT_FILENAME := gmon.out +WRITE_GMON_OPTION := --write-gmon $(GMON_OUT_FILENAME) +endif + +# Name of ELF application. +APP_NAME := $(basename $(ELF)) + +# Set to defaults if variables not already defined in settings. +ifeq ($(LINKER_SCRIPT),) +LINKER_SCRIPT := $(BSP_LINKER_SCRIPT) +endif +ifeq ($(CRT0),) +CRT0 := $(BSP_CRT0) +endif +ifeq ($(SYS_LIB),) +SYS_LIB := $(BSP_SYS_LIB) +endif + +OBJDUMP_NAME := $(APP_NAME).objdump +OBJDUMP_FLAGS := --disassemble --syms --all-header +ifeq ($(OBJDUMP_INCLUDE_SOURCE),1) +OBJDUMP_FLAGS += --source +endif +ifeq ($(OBJDUMP_FULL_CONTENTS),1) +OBJDUMP_FLAGS += --full-contents +endif + +# Create list of linker dependencies (*.a files). +APP_LDDEPS := $(ALT_LDDEPS) $(LDDEPS) + +# Take lists and add required prefixes. +APP_INC_DIRS := $(addprefix -I, $(ALT_INCLUDE_DIRS) $(APP_INCLUDE_DIRS) $(INC_DIRS)) +ASM_INC_PREFIX := -Wa,-I +APP_ASM_INC_DIRS := $(addprefix $(ASM_INC_PREFIX), $(ALT_INCLUDE_DIRS) $(APP_INCLUDE_DIRS) $(INC_DIRS)) +APP_LIB_DIRS := $(addprefix -L, $(ALT_LIBRARY_DIRS) $(APP_LIBRARY_DIRS) $(LIB_DIRS)) +APP_LIBS := $(addprefix -l, $(ALT_LIBRARY_NAMES) $(APP_LIBRARY_NAMES) $(LIBS)) + +ifneq ($(AVOID_NIOS2_GCC3_OPTIONS),) + +# +# Avoid Nios II GCC 3.X options. +# + +# Detect if small newlib C library is requested. +# If yes, remove the -msmallc option because it is +# now handled by other means. +ifneq ($(filter -msmallc,$(ALT_LDFLAGS)),) + ALT_LDFLAGS := $(filter-out -msmallc,$(ALT_LDFLAGS)) + ALT_C_LIBRARY := smallc +else + ALT_C_LIBRARY := c +endif + +# Put each BSP dependent library in a group to avoid circular dependencies. +APP_BSP_DEP_LIBS := $(foreach l,$(ALT_BSP_DEP_LIBRARY_NAMES),-Wl,--start-group -l$(ALT_C_LIBRARY) -lgcc -l$(l) -Wl,--end-group) + +else # !AVOID_NIOS2_GCC3_OPTIONS + +# +# Use Nios II GCC 3.X options. +# +APP_BSP_DEP_LIBS := $(addprefix -msys-lib=, $(ALT_BSP_DEP_LIBRARY_NAMES)) + +endif # !AVOID_NIOS2_GCC3_OPTIONS + +# Arguments for the C preprocessor, C/C++ compiler, assembler, and linker. +APP_CFLAGS := $(APP_CFLAGS_DEFINED_SYMBOLS) \ + $(APP_CFLAGS_UNDEFINED_SYMBOLS) \ + $(APP_CFLAGS_OPTIMIZATION) \ + $(APP_CFLAGS_DEBUG_LEVEL) \ + $(APP_CFLAGS_WARNINGS) \ + $(APP_CFLAGS_USER_FLAGS) \ + $(ALT_CFLAGS) \ + $(CFLAGS) + +# Arguments only for the C++ compiler. +APP_CXXFLAGS := $(ALT_CXXFLAGS) $(CXXFLAGS) + +# Arguments only for the C preprocessor. +# Prefix each include directory with -I. +APP_CPPFLAGS := $(APP_INC_DIRS) \ + $(ALT_CPPFLAGS) \ + $(CPPFLAGS) + +# Arguments only for the assembler. +APP_ASFLAGS := $(APP_ASM_INC_DIRS) \ + $(ALT_ASFLAGS) \ + $(APP_ASFLAGS_USER) \ + $(ASFLAGS) + +# Arguments only for the linker. +APP_LDFLAGS := $(APP_LDFLAGS_USER) + +ifneq ($(LINKER_SCRIPT),) +APP_LDFLAGS += -T'$(LINKER_SCRIPT)' +endif + +ifneq ($(AVOID_NIOS2_GCC3_OPTIONS),) + +# Avoid Nios II GCC 3.x options. +ifneq ($(CRT0),) +APP_LDFLAGS += $(CRT0) +endif + +# The equivalent of the -msys-lib option is provided +# by the GROUP() command in the linker script. +# Note this means the SYS_LIB variable is now ignored. + +else # !AVOID_NIOS2_GCC3_OPTIONS + +# Use Nios II GCC 3.x options. +ifneq ($(CRT0),) +APP_LDFLAGS += -msys-crt0='$(CRT0)' +endif +ifneq ($(SYS_LIB),) +APP_LDFLAGS += -msys-lib=$(SYS_LIB) +endif + +endif # !AVOID_NIOS2_GCC3_OPTIONS + +APP_LDFLAGS += \ + $(APP_LIB_DIRS) \ + $(ALT_LDFLAGS) \ + $(LDFLAGS) + +LINKER_MAP_NAME := $(APP_NAME).map +ifeq ($(CREATE_LINKER_MAP), 1) +APP_LDFLAGS += -Wl,-Map=$(LINKER_MAP_NAME) +endif + +# QUARTUS_PROJECT_DIR and SOPC_NAME need to be defined if you want the +# mem_init_install target of the mem_init.mk (located in the associated BSP) +# to know how to copy memory initialization files (e.g. .dat, .hex) into +# directories required for Quartus compilation or RTL simulation. + +# Defining QUARTUS_PROJECT_DIR causes mem_init_install to copy memory +# initialization files into your Quartus project directory. This is required +# to provide the initial memory contents of FPGA memories that can be +# initialized by the programming file (.sof) or Hardcopy ROMs. It is also used +# for VHDL simulation of on-chip memories. + +# Defining SOPC_NAME causes the mem_init_install target to copy memory +# initialization files into your RTL simulation directory. This is required +# to provide the initial memory contents of all memories that can be +# initialized by RTL simulation. This variable should be set to the same name +# as your SOPC Builder system name. For example, if you have a system called +# "foo.sopc", this variable should be set to "foo". + +# If SOPC_NAME is not set and QUARTUS_PROJECT_DIR is set, then derive SOPC_NAME. +ifeq ($(SOPC_NAME),) +ifneq ($(QUARTUS_PROJECT_DIR),) +SOPC_NAME := $(basename $(notdir $(wildcard $(QUARTUS_PROJECT_DIR)/*.sopcinfo))) +endif +endif + +# Defining JDI_FILE is required to specify the JTAG Debug Information File +# path. This file is generated by Quartus, and is needed along with the +# .sopcinfo file to resolve processor instance ID's from names in a multi-CPU +# systems. For multi-CPU systems, the processor instance ID is used to select +# from multiple CPU's during ELF download. + +# Both JDI_FILE and SOPCINFO_FILE are provided by the BSP if they found during +# BSP creation. If JDI_FILE is not set and QUARTUS_PROJECT_DIR is set, then +# derive JDI_FILE. We do not attempt to derive SOPCINFO_FILE since there may be +# multiple .sopcinfo files in a Quartus project. +ifeq ($(JDI_FILE),) +ifneq ($(QUARTUS_PROJECT_DIR),) +JDI_FILE := $(wildcard $(QUARTUS_PROJECT_DIR)/*.jdi) +endif +endif + +# Path to root runtime directory used for hdl simulation +RUNTIME_ROOT_DIR := $(CONFIG_OBJ_DIR)/runtime + + + +#------------------------------------------------------------------------------ +# MAKEFILE INCLUDES DEPENDENT ON GENERATED CONTENT +#------------------------------------------------------------------------------ +# mem_init.mk is a generated makefile fragment. This file defines all targets +# used to generate HDL initialization simulation files and pre-initialized +# onchip memory files. +MEM_INIT_FILE := $(BSP_ROOT_DIR)/mem_init.mk +include $(MEM_INIT_FILE) + +# Create list of object files to be built using the list of source files. +# The source file hierarchy is preserved in the object tree. +# The supported file extensions are: +# +# .c - for C files +# .cxx .cc .cpp - for C++ files +# .S .s - for assembler files +# +# Handle source files specified by --src-dir & --src-rdir differently, to +# save some processing time in calling the adjust-path macro. + +OBJ_LIST_C := $(patsubst %.c,%.o,$(filter %.c,$(C_SRCS))) +OBJ_LIST_CPP := $(patsubst %.cpp,%.o,$(filter %.cpp,$(CXX_SRCS))) +OBJ_LIST_CXX := $(patsubst %.cxx,%.o,$(filter %.cxx,$(CXX_SRCS))) +OBJ_LIST_CC := $(patsubst %.cc,%.o,$(filter %.cc,$(CXX_SRCS))) +OBJ_LIST_S := $(patsubst %.S,%.o,$(filter %.S,$(ASM_SRCS))) +OBJ_LIST_SS := $(patsubst %.s,%.o,$(filter %.s,$(ASM_SRCS))) + +OBJ_LIST := $(sort $(OBJ_LIST_C) $(OBJ_LIST_CPP) $(OBJ_LIST_CXX) \ + $(OBJ_LIST_CC) $(OBJ_LIST_S) $(OBJ_LIST_SS)) + +SDIR_OBJ_LIST_C := $(patsubst %.c,%.o,$(filter %.c,$(SDIR_C_SRCS))) +SDIR_OBJ_LIST_CPP := $(patsubst %.cpp,%.o,$(filter %.cpp,$(SDIR_CXX_SRCS))) +SDIR_OBJ_LIST_CXX := $(patsubst %.cxx,%.o,$(filter %.cxx,$(SDIR_CXX_SRCS))) +SDIR_OBJ_LIST_CC := $(patsubst %.cc,%.o,$(filter %.cc,$(SDIR_CXX_SRCS))) +SDIR_OBJ_LIST_S := $(patsubst %.S,%.o,$(filter %.S,$(SDIR_ASM_SRCS))) +SDIR_OBJ_LIST_SS := $(patsubst %.s,%.o,$(filter %.s,$(SDIR_ASM_SRCS))) + +SDIR_OBJ_LIST := $(sort $(SDIR_OBJ_LIST_C) $(SDIR_OBJ_LIST_CPP) \ + $(SDIR_OBJ_LIST_CXX) $(SDIR_OBJ_LIST_CC) $(SDIR_OBJ_LIST_S) \ + $(SDIR_OBJ_LIST_SS)) + +# Relative-pathed objects that being with "../" are handled differently. +# +# Regular objects are created as +# $(CONFIG_OBJ_DIR)//.o +# where the path structure is maintained under the obj directory. This +# applies for both absolute and relative paths; in the absolute path +# case this means the entire source path will be recreated under the obj +# directory. This is done to allow two source files with the same name +# to be included as part of the project. +# +# Note: On Cygwin, the path recreated under the obj directory will be +# the cygpath -u output path. +# +# Relative-path objects that begin with "../" cause problems under this +# scheme, as $(CONFIG_OBJ_DIR)/..// can potentially put the object +# files anywhere in the system, creating clutter and polluting the source tree. +# As such, their paths are flattened - the object file created will be +# $(CONFIG_OBJ_DIR)/.o. Due to this, two files specified with +# "../" in the beginning cannot have the same name in the project. VPATH +# will be set for these sources to allow make to relocate the source file +# via %.o rules. +# +# The following lines separate the object list into the flatten and regular +# lists, and then handles them as appropriate. + +FLATTEN_OBJ_LIST := $(filter ../%,$(OBJ_LIST)) +FLATTEN_APP_OBJS := $(addprefix $(CONFIG_OBJ_DIR)/,$(notdir $(FLATTEN_OBJ_LIST))) + +REGULAR_OBJ_LIST := $(filter-out $(FLATTEN_OBJ_LIST),$(OBJ_LIST)) +REGULAR_OBJ_LIST_C := $(filter $(OBJ_LIST_C),$(REGULAR_OBJ_LIST)) +REGULAR_OBJ_LIST_CPP := $(filter $(OBJ_LIST_CPP),$(REGULAR_OBJ_LIST)) +REGULAR_OBJ_LIST_CXX := $(filter $(OBJ_LIST_CXX),$(REGULAR_OBJ_LIST)) +REGULAR_OBJ_LIST_CC := $(filter $(OBJ_LIST_CC),$(REGULAR_OBJ_LIST)) +REGULAR_OBJ_LIST_S := $(filter $(OBJ_LIST_S),$(REGULAR_OBJ_LIST)) +REGULAR_OBJ_LIST_SS := $(filter $(OBJ_LIST_SS),$(REGULAR_OBJ_LIST)) + +FLATTEN_SDIR_OBJ_LIST := $(filter ../%,$(SDIR_OBJ_LIST)) +FLATTEN_SDIR_APP_OBJS := $(addprefix $(CONFIG_OBJ_DIR)/,$(notdir $(FLATTEN_SDIR_OBJ_LIST))) + +REGULAR_SDIR_OBJ_LIST := $(filter-out $(FLATTEN_SDIR_OBJ_LIST),$(SDIR_OBJ_LIST)) +REGULAR_SDIR_OBJ_LIST_C := $(filter $(SDIR_OBJ_LIST_C),$(REGULAR_SDIR_OBJ_LIST)) +REGULAR_SDIR_OBJ_LIST_CPP := $(filter $(SDIR_OBJ_LIST_CPP),$(REGULAR_SDIR_OBJ_LIST)) +REGULAR_SDIR_OBJ_LIST_CXX := $(filter $(SDIR_OBJ_LIST_CXX),$(REGULAR_SDIR_OBJ_LIST)) +REGULAR_SDIR_OBJ_LIST_CC := $(filter $(SDIR_OBJ_LIST_CC),$(REGULAR_SDIR_OBJ_LIST)) +REGULAR_SDIR_OBJ_LIST_S := $(filter $(SDIR_OBJ_LIST_S),$(REGULAR_SDIR_OBJ_LIST)) +REGULAR_SDIR_OBJ_LIST_SS := $(filter $(SDIR_OBJ_LIST_SS),$(REGULAR_SDIR_OBJ_LIST)) + +VPATH := $(sort $(dir $(FLATTEN_OBJ_LIST)) $(dir $(FLATTEN_SDIR_OBJ_LIST))) + +APP_OBJS_C := $(addprefix $(CONFIG_OBJ_DIR)/,\ + $(REGULAR_SDIR_OBJ_LIST_C) \ + $(foreach s,$(REGULAR_OBJ_LIST_C),$(call adjust-path,$s))) + +APP_OBJS_CPP := $(addprefix $(CONFIG_OBJ_DIR)/,\ + $(REGULAR_SDIR_OBJ_LIST_CPP) \ + $(foreach s,$(REGULAR_OBJ_LIST_CPP),$(call adjust-path,$s))) + +APP_OBJS_CXX := $(addprefix $(CONFIG_OBJ_DIR)/,\ + $(REGULAR_SDIR_OBJ_LIST_CXX) \ + $(foreach s,$(REGULAR_OBJ_LIST_CXX),$(call adjust-path,$s))) + +APP_OBJS_CC := $(addprefix $(CONFIG_OBJ_DIR)/,\ + $(REGULAR_SDIR_OBJ_LIST_CC) \ + $(foreach s,$(REGULAR_OBJ_LIST_CC),$(call adjust-path,$s))) + +APP_OBJS_S := $(addprefix $(CONFIG_OBJ_DIR)/,\ + $(REGULAR_SDIR_OBJ_LIST_S) \ + $(foreach s,$(REGULAR_OBJ_LIST_S),$(call adjust-path,$s))) + +APP_OBJS_SS := $(addprefix $(CONFIG_OBJ_DIR)/,\ + $(REGULAR_SDIR_OBJ_LIST_SS) \ + $(foreach s,$(REGULAR_OBJ_LIST_SS),$(call adjust-path,$s))) + +APP_OBJS := $(APP_OBJS_C) $(APP_OBJS_CPP) $(APP_OBJS_CXX) $(APP_OBJS_CC) \ + $(APP_OBJS_S) $(APP_OBJS_SS) \ + $(FLATTEN_APP_OBJS) $(FLATTEN_SDIR_APP_OBJS) + +# Add any extra user-provided object files. +APP_OBJS += $(OBJS) + +# Create list of dependancy files for each object file. +APP_DEPS := $(APP_OBJS:.o=.d) + +# Patch the Elf file with system specific information + +# Patch the Elf with the name of the sopc system +ifneq ($(SOPC_NAME),) +ELF_PATCH_FLAG += --sopc_system_name $(SOPC_NAME) +endif + +# Patch the Elf with the absolute path to the Quartus Project Directory +ifneq ($(QUARTUS_PROJECT_DIR),) +ABS_QUARTUS_PROJECT_DIR := $(call adjust-path-mixed,$(shell cd "$(QUARTUS_PROJECT_DIR)"; pwd)) +ELF_PATCH_FLAG += --quartus_project_dir "$(ABS_QUARTUS_PROJECT_DIR)" +endif + +# Patch the Elf and download args with the JDI_FILE if specified +ifneq ($(wildcard $(JDI_FILE)),) +ELF_PATCH_FLAG += --jdi $(JDI_FILE) +DOWNLOAD_JDI_FLAG := --jdi $(JDI_FILE) +endif + +# Patch the Elf with the SOPCINFO_FILE if specified +ifneq ($(wildcard $(SOPCINFO_FILE)),) +ELF_PATCH_FLAG += --sopcinfo $(SOPCINFO_FILE) +endif + +# Use the DOWNLOAD_CABLE variable to specify which JTAG cable to use. +# This is not needed if you only have one cable. +ifneq ($(DOWNLOAD_CABLE),) +DOWNLOAD_CABLE_FLAG := --cable '$(DOWNLOAD_CABLE)' +endif + + +#------------------------------------------------------------------------------ +# BUILD PRE/POST PROCESS +#------------------------------------------------------------------------------ +build_pre_process : + $(BUILD_PRE_PROCESS) + +build_post_process : + $(BUILD_POST_PROCESS) + +.PHONY: build_pre_process build_post_process + + +#------------------------------------------------------------------------------ +# TOOLS +#------------------------------------------------------------------------------ + +# +# Set tool default variables if not already defined. +# If these are defined, they would typically be defined in an +# included makefile fragment. +# +ifeq ($(DEFAULT_CROSS_COMPILE),) +DEFAULT_CROSS_COMPILE := nios2-elf- +endif + +ifeq ($(DEFAULT_STACK_REPORT),) +DEFAULT_STACKREPORT := nios2-stackreport +endif + +ifeq ($(DEFAULT_DOWNLOAD),) +DEFAULT_DOWNLOAD := nios2-download +endif + +ifeq ($(DEFAULT_FLASHPROG),) +DEFAULT_FLASHPROG := nios2-flash-programmer +endif + +ifeq ($(DEFAULT_ELFPATCH),) +DEFAULT_ELFPATCH := nios2-elf-insert +endif + +ifeq ($(DEFAULT_RM),) +DEFAULT_RM := rm -f +endif + +ifeq ($(DEFAULT_CP),) +DEFAULT_CP := cp -f +endif + +ifeq ($(DEFAULT_MKDIR),) +DEFAULT_MKDIR := mkdir -p +endif + +# +# Set tool variables to defaults if not already defined. +# If these are defined, they would typically be defined by a +# setting in the generated portion of this makefile. +# +ifeq ($(CROSS_COMPILE),) +CROSS_COMPILE := $(DEFAULT_CROSS_COMPILE) +endif + +ifeq ($(origin CC),default) +CC := $(CROSS_COMPILE)gcc -xc +endif + +ifeq ($(origin CXX),default) +CXX := $(CROSS_COMPILE)gcc -xc++ +endif + +ifeq ($(origin AS),default) +AS := $(CROSS_COMPILE)gcc +endif + +ifeq ($(origin AR),default) +AR := $(CROSS_COMPILE)ar +endif + +ifeq ($(origin LD),default) +LD := $(CROSS_COMPILE)g++ +endif + +ifeq ($(origin NM),default) +NM := $(CROSS_COMPILE)nm +endif + +ifeq ($(origin RM),default) +RM := $(DEFAULT_RM) +endif + +ifeq ($(origin CP),default) +CP := $(DEFAULT_CP) +endif + +ifeq ($(OBJDUMP),) +OBJDUMP := $(CROSS_COMPILE)objdump +endif + +ifeq ($(OBJCOPY),) +OBJCOPY := $(CROSS_COMPILE)objcopy +endif + +ifeq ($(STACKREPORT),) +ifeq ($(CROSS_COMPILE),nios2-elf-) +STACKREPORT := $(DEFAULT_STACKREPORT) +else +DISABLE_STACKREPORT := 1 +endif +endif + +ifeq ($(DOWNLOAD),) +DOWNLOAD := $(DEFAULT_DOWNLOAD) +endif + +ifeq ($(FLASHPROG),) +FLASHPROG := $(DEFAULT_FLASHPROG) +endif + +ifeq ($(ELFPATCH),) +ELFPATCH := $(DEFAULT_ELFPATCH) +endif + +ifeq ($(MKDIR),) +MKDIR := $(DEFAULT_MKDIR) +endif + +#------------------------------------------------------------------------------ +# PATTERN RULES TO BUILD OBJECTS +#------------------------------------------------------------------------------ + +define compile.c +@$(ECHO) Info: Compiling $< to $@ +@$(MKDIR) $(@D) +$(CC) -MP -MMD -c $(APP_CPPFLAGS) $(APP_CFLAGS) -o $@ $< +$(CC_POST_PROCESS) +endef + +define compile.cpp +@$(ECHO) Info: Compiling $< to $@ +@$(MKDIR) $(@D) +$(CXX) -MP -MMD -c $(APP_CPPFLAGS) $(APP_CXXFLAGS) $(APP_CFLAGS) -o $@ $< +$(CXX_POST_PROCESS) +endef + +# If assembling with the compiler, ensure "-Wa," is prepended to all APP_ASFLAGS +ifeq ($(AS),$(patsubst %as,%,$(AS))) +COMMA := , +APP_ASFLAGS := $(filter-out $(APP_CFLAGS),$(addprefix -Wa$(COMMA),$(patsubst -Wa$(COMMA)%,%,$(APP_ASFLAGS)))) +endif + +define compile.s +@$(ECHO) Info: Assembling $< to $@ +@$(MKDIR) $(@D) +$(AS) -MP -MMD -c $(APP_CPPFLAGS) $(APP_CFLAGS) $(APP_ASFLAGS) -o $@ $< +$(AS_POST_PROCESS) +endef + +ifeq ($(MAKE_VERSION),3.81) +.SECONDEXPANSION: + +$(APP_OBJS_C): $(CONFIG_OBJ_DIR)/%.o: $$(call adjust-path-mixed,%.c) + $(compile.c) + +$(APP_OBJS_CPP): $(CONFIG_OBJ_DIR)/%.o: $$(call adjust-path-mixed,%.cpp) + $(compile.cpp) + +$(APP_OBJS_CC): $(CONFIG_OBJ_DIR)/%.o: $$(call adjust-path-mixed,%.cc) + $(compile.cpp) + +$(APP_OBJS_CXX): $(CONFIG_OBJ_DIR)/%.o: $$(call adjust-path-mixed,%.cxx) + $(compile.cpp) + +$(APP_OBJS_S): $(CONFIG_OBJ_DIR)/%.o: $$(call adjust-path-mixed,%.S) + $(compile.s) + +$(APP_OBJS_SS): $(CONFIG_OBJ_DIR)/%.o: $$(call adjust-path-mixed,%.s) + $(compile.s) + +endif # MAKE_VERSION != 3.81 + +$(CONFIG_OBJ_DIR)/%.o: %.c + $(compile.c) + +$(CONFIG_OBJ_DIR)/%.o: %.cpp + $(compile.cpp) + +$(CONFIG_OBJ_DIR)/%.o: %.cc + $(compile.cpp) + +$(CONFIG_OBJ_DIR)/%.o: %.cxx + $(compile.cpp) + +$(CONFIG_OBJ_DIR)/%.o: %.S + $(compile.s) + +$(CONFIG_OBJ_DIR)/%.o: %.s + $(compile.s) + + +#------------------------------------------------------------------------------ +# PATTERN RULES TO INTERMEDIATE FILES +#------------------------------------------------------------------------------ + +$(CONFIG_OBJ_DIR)/%.s: %.c + @$(ECHO) Info: Compiling $< to $@ + @$(MKDIR) $(@D) + $(CC) -S $(APP_CPPFLAGS) $(APP_CFLAGS) -o $@ $< + +$(CONFIG_OBJ_DIR)/%.s: %.cpp + @$(ECHO) Info: Compiling $< to $@ + @$(MKDIR) $(@D) + $(CXX) -S $(APP_CPPFLAGS) $(APP_CXXFLAGS) $(APP_CFLAGS) -o $@ $< + +$(CONFIG_OBJ_DIR)/%.s: %.cc + @$(ECHO) Info: Compiling $< to $@ + @$(MKDIR) $(@D) + $(CXX) -S $(APP_CPPFLAGS) $(APP_CXXFLAGS) $(APP_CFLAGS) -o $@ $< + +$(CONFIG_OBJ_DIR)/%.s: %.cxx + @$(ECHO) Info: Compiling $< to $@ + @$(MKDIR) $(@D) + $(CXX) -S $(APP_CPPFLAGS) $(APP_CXXFLAGS) $(APP_CFLAGS) -o $@ $< + +$(CONFIG_OBJ_DIR)/%.i: %.c + @$(ECHO) Info: Compiling $< to $@ + @$(MKDIR) $(@D) + $(CC) -E $(APP_CPPFLAGS) $(APP_CFLAGS) -o $@ $< + +$(CONFIG_OBJ_DIR)/%.i: %.cpp + @$(ECHO) Info: Compiling $< to $@ + @$(MKDIR) $(@D) + $(CXX) -E $(APP_CPPFLAGS) $(APP_CXXFLAGS) $(APP_CFLAGS) -o $@ $< + +$(CONFIG_OBJ_DIR)/%.i: %.cc + @$(ECHO) Info: Compiling $< to $@ + @$(MKDIR) $(@D) + $(CXX) -E $(APP_CPPFLAGS) $(APP_CXXFLAGS) $(APP_CFLAGS) -o $@ $< + +$(CONFIG_OBJ_DIR)/%.i: %.cxx + @$(ECHO) Info: Compiling $< to $@ + @$(MKDIR) $(@D) + $(CXX) -E $(APP_CPPFLAGS) $(APP_CXXFLAGS) $(APP_CFLAGS) -o $@ $< + + +#------------------------------------------------------------------------------ +# TARGET RULES +#------------------------------------------------------------------------------ + +.PHONY : help +help : + @$(ECHO) "Summary of Makefile targets" + @$(ECHO) " Build targets:" + @$(ECHO) " all (default) - Application and all libraries (including BSP)" + @$(ECHO) " bsp - Just the BSP" + @$(ECHO) " libs - All libraries (including BSP)" + @$(ECHO) " flash - All flash files" + @$(ECHO) " mem_init_generate - All memory initialization files" +ifeq ($(QSYS),1) + @$(ECHO) " mem_init_install - This target is deprecated for QSys Systems" + @$(ECHO) " --> Use the mem_init_generate target and then" + @$(ECHO) " add the generated meminit.qip file to your" + @$(ECHO) " Quartus II Project." +else # if QSYS != 1 + @$(ECHO) " mem_init_install - Copy memory initialization files to Quartus II project" +endif # QSYS == 1 + @$(ECHO) + @$(ECHO) " Clean targets:" + @$(ECHO) " clean_all - Application and all libraries (including BSP)" + @$(ECHO) " clean - Just the application" + @$(ECHO) " clean_bsp - Just the BSP" + @$(ECHO) " clean_libs - All libraries (including BSP)" + @$(ECHO) + @$(ECHO) " Run targets:" + @$(ECHO) " download-elf - Download and run your elf executable" + @$(ECHO) " program-flash - Program flash contents to the board" + +# Handy rule to skip making libraries and just make application. +.PHONY : app +app : $(ELF) + +ifeq ($(CREATE_OBJDUMP), 1) +app : $(OBJDUMP_NAME) +endif + +ifeq ($(CREATE_ELF_DERIVED_FILES),1) +app : elf_derived_files +endif + +.PHONY: elf_derived_files +elf_derived_files: default_mem_init + +# Handy rule for making just the BSP. +.PHONY : bsp +bsp : + @$(ECHO) Info: Building $(BSP_ROOT_DIR) + @$(MAKE) --no-print-directory -C $(BSP_ROOT_DIR) + + +# Make sure all makeable libraries (including the BSP) are up-to-date. +LIB_TARGETS := $(patsubst %,%-recurs-make-lib,$(MAKEABLE_LIBRARY_ROOT_DIRS)) + +.PHONY : libs +libs : $(LIB_TARGETS) + +ifneq ($(strip $(LIB_TARGETS)),) +$(LIB_TARGETS): %-recurs-make-lib: + @$(ECHO) Info: Building $* + $(MAKE) --no-print-directory -C $* +endif + +ifneq ($(strip $(APP_LDDEPS)),) +$(APP_LDDEPS): libs + @true +endif + +# Rules to force your project to rebuild or relink +# .force_relink file will cause any application that depends on this project to relink +# .force_rebuild file will cause this project to rebuild object files +# .force_rebuild_all file will cause this project and any project that depends on this project to rebuild object files + +FORCE_RELINK_DEP := .force_relink +FORCE_REBUILD_DEP := .force_rebuild +FORCE_REBUILD_ALL_DEP := .force_rebuild_all +FORCE_REBUILD_DEP_LIST := $(CONFIG_OBJ_DIR)/$(FORCE_RELINK_DEP) $(CONFIG_OBJ_DIR)/$(FORCE_REBUILD_DEP) $(FORCE_REBUILD_ALL_DEP) + +$(FORCE_REBUILD_DEP_LIST): + +$(APP_OBJS): $(wildcard $(CONFIG_OBJ_DIR)/$(FORCE_REBUILD_DEP)) $(wildcard $(addsuffix /$(FORCE_REBUILD_ALL_DEP), . $(ALT_LIBRARY_DIRS))) + +$(ELF): $(wildcard $(addsuffix /$(FORCE_RELINK_DEP), $(CONFIG_OBJ_DIR) $(ALT_LIBRARY_DIRS))) + + +# Clean just the application. +.PHONY : clean +ifeq ($(CREATE_ELF_DERIVED_FILES),1) +clean : clean_elf_derived_files +endif + +clean : + @$(RM) -r $(ELF) $(OBJDUMP_NAME) $(LINKER_MAP_NAME) $(OBJ_ROOT_DIR) $(RUNTIME_ROOT_DIR) $(FORCE_REBUILD_DEP_LIST) + @$(ECHO) [$(APP_NAME) clean complete] + +# Clean just the BSP. +.PHONY : clean_bsp +clean_bsp : + @$(ECHO) Info: Cleaning $(BSP_ROOT_DIR) + @$(MAKE) --no-print-directory -C $(BSP_ROOT_DIR) clean + +# Clean all makeable libraries including the BSP. +LIB_CLEAN_TARGETS := $(patsubst %,%-recurs-make-clean-lib,$(MAKEABLE_LIBRARY_ROOT_DIRS)) + +.PHONY : clean_libs +clean_libs : $(LIB_CLEAN_TARGETS) + +ifneq ($(strip $(LIB_CLEAN_TARGETS)),) +$(LIB_CLEAN_TARGETS): %-recurs-make-clean-lib: + @$(ECHO) Info: Cleaning $* + $(MAKE) --no-print-directory -C $* clean +endif + +.PHONY: clean_elf_derived_files +clean_elf_derived_files: mem_init_clean + +# Clean application and all makeable libraries including the BSP. +.PHONY : clean_all +clean_all : clean mem_init_clean clean_libs + +# Include the dependency files unless the make goal is performing a clean +# of the application. +ifneq ($(firstword $(MAKECMDGOALS)),clean) +ifneq ($(firstword $(MAKECMDGOALS)),clean_all) +-include $(APP_DEPS) +endif +endif + +.PHONY : download-elf +download-elf : $(ELF) + @if [ "$(DOWNLOAD)" = "none" ]; \ + then \ + $(ECHO) Downloading $(ELF) not supported; \ + else \ + $(ECHO) Info: Downloading $(ELF); \ + $(DOWNLOAD) --go --cpu_name=$(CPU_NAME) $(DOWNLOAD_CABLE_FLAG) $(SOPC_SYSID_FLAG) $(DOWNLOAD_JDI_FLAG) $(WRITE_GMON_OPTION) $(ELF); \ + fi + +# Delete the target of a rule if it has changed and its commands exit +# with a nonzero exit status. +.DELETE_ON_ERROR: + +# Rules for flash programming commands +PROGRAM_FLASH_SUFFIX := -program +PROGRAM_FLASH_TARGET := $(addsuffix $(PROGRAM_FLASH_SUFFIX), $(FLASH_FILES)) + +.PHONY : program-flash +program-flash : $(PROGRAM_FLASH_TARGET) + +.PHONY : $(PROGRAM_FLASH_TARGET) +$(PROGRAM_FLASH_TARGET) : flash + @if [ "$(FLASHPROG)" = "none" ]; \ + then \ + $(ECHO) Programming flash not supported; \ + else \ + $(ECHO) Info: Programming $(basename $@).flash; \ + if [ -z "$($(basename $@)_EPCS_FLAGS)" ]; \ + then \ + $(ECHO) $(FLASHPROG) $(SOPC_SYSID_FLAG) --base=$($(basename $@)_START) $(basename $@).flash; \ + $(FLASHPROG) $(DOWNLOAD_CABLE_FLAG) $(SOPC_SYSID_FLAG) --base=$($(basename $@)_START) $(basename $@).flash; \ + else \ + $(ECHO) $(FLASHPROG) $(SOPC_SYSID_FLAG) --epcs --base=$($(basename $@)_START) $(basename $@).flash; \ + $(FLASHPROG) $(DOWNLOAD_CABLE_FLAG) $(SOPC_SYSID_FLAG) --epcs --base=$($(basename $@)_START) $(basename $@).flash; \ + fi \ + fi + + +# Rules for simulating with an HDL Simulator [QSYS only] +ifeq ($(QSYS),1) +IP_MAKE_SIMSCRIPT := ip-make-simscript + +ifeq ($(VSIM),) +VSIM_EXE := "$(if $(VSIM_DIR),$(VSIM_DIR)/,)vsim" +ifeq ($(ENABLE_VSIM_GUI),1) +VSIM := $(VSIM_EXE) -gui +else +VSIM := $(VSIM_EXE) -c +endif # ENABLE_VSIM_GUI == 1 +endif # VSIM not set + +ifeq ($(SPD),) +ifneq ($(ABS_QUARTUS_PROJECT_DIR),) +ifneq ($(SOPC_NAME),) +SPD := $(ABS_QUARTUS_PROJECT_DIR)/$(SOPC_NAME)_tb.spd +endif # SOPC_NAME set +endif # ABS_QUARTUS_PROJECT_DIR set +endif # SPD == empty string + +ifeq ($(MSIM_SCRIPT),) +SIM_SCRIPT_DIR := $(RUNTIME_ROOT_DIR)/sim +MSIM_SCRIPT := $(SIM_SCRIPT_DIR)/mentor/msim_setup.tcl +endif # MSIM_SCRIPT == empty string + +ifeq ($(MAKE_VERSION),3.81) +ABS_MEM_INIT_DESCRIPTOR_FILE := $(abspath $(MEM_INIT_DESCRIPTOR_FILE)) +else +ABS_MEM_INIT_DESCRIPTOR_FILE := $(call adjust-path-mixed,$(shell pwd))/$(MEM_INIT_DESCRIPTOR_FILE) +endif + +$(MSIM_SCRIPT): $(SPD) $(MEM_INIT_DESCRIPTOR_FILE) +ifeq ($(SPD),) + $(error No SPD file specified. Ensure QUARTUS_PROJECT_DIR variable is set) +endif + @$(MKDIR) $(SIM_SCRIPT_DIR) + $(IP_MAKE_SIMSCRIPT) --spd=$(SPD) --spd=$(MEM_INIT_DESCRIPTOR_FILE) --output-directory=$(SIM_SCRIPT_DIR) + +VSIM_COMMAND = \ + cd $(dir $(MSIM_SCRIPT)) && \ + $(VSIM) -do "do $(notdir $(MSIM_SCRIPT)); ld; $(if $(VSIM_RUN_TIME),run ${VSIM_RUN_TIME};quit;)" + +.PHONY: sim +sim: $(MSIM_SCRIPT) mem_init_generate +ifeq ($(MSIM_SCRIPT),) + $(error MSIM_SCRIPT not set) +endif + $(VSIM_COMMAND) + +endif # QSYS == 1 + + +#------------------------------------------------------------------------------ +# ELF TARGET RULE +#------------------------------------------------------------------------------ +# Rule for constructing the executable elf file. +$(ELF) : $(APP_OBJS) $(LINKER_SCRIPT) $(APP_LDDEPS) + @$(ECHO) Info: Linking $@ + $(LD) $(APP_LDFLAGS) $(APP_CFLAGS) -o $@ $(filter-out $(CRT0),$(APP_OBJS)) $(APP_LIBS) $(APP_BSP_DEP_LIBS) +ifneq ($(DISABLE_ELFPATCH),1) + $(ELFPATCH) $@ $(ELF_PATCH_FLAG) +endif +ifneq ($(DISABLE_STACKREPORT),1) + @bash -c "$(STACKREPORT) $@" +endif + +$(OBJDUMP_NAME) : $(ELF) + @$(ECHO) Info: Creating $@ + $(OBJDUMP) $(OBJDUMP_FLAGS) $< >$@ + +# Rule for printing the name of the elf file +.PHONY: print-elf-name +print-elf-name: + @$(ECHO) $(ELF) + + diff --git a/software/qsys_tutorial_green/create-this-app b/software/qsys_tutorial_green/create-this-app new file mode 100644 index 0000000..0b739a2 --- /dev/null +++ b/software/qsys_tutorial_green/create-this-app @@ -0,0 +1,114 @@ +#!/bin/bash +# +# This script creates the hello_world_small application in this directory. + + +BSP_DIR=../qsys_tutorial_green_bsp +QUARTUS_PROJECT_DIR=../../ +NIOS2_APP_GEN_ARGS="--elf-name qsys_tutorial_green.elf --set APP_CFLAGS_OPTIMIZATION -Os --set OBJDUMP_INCLUDE_SOURCE 1 --src-files hello_world_small.c" + + +# First, check to see if $SOPC_KIT_NIOS2 environmental variable is set. +# This variable is required for the command line tools to execute correctly. +if [ -z "${SOPC_KIT_NIOS2}" ] +then + echo Required \$SOPC_KIT_NIOS2 Environmental Variable is not set! + exit 1 +fi + + +# Also make sure that the APP has not been created already. Check for +# existence of Makefile in the app directory +if [ -f ./Makefile ] +then + echo Application has already been created! Delete Makefile if you want to create a new application makefile + exit 1 +fi + + +# We are selecting hal_reduced_footprint bsp because it supports this application. +# Check to see if the hal_reduced_footprint has already been generated by checking for +# existence of the public.mk file. If not, we need to run +# create-this-bsp file to generate the bsp. +if [ ! -f ${BSP_DIR}/public.mk ]; then + # Since BSP doesn't exist, create the BSP + # Pass any command line arguments passed to this script to the BSP. + pushd ${BSP_DIR} >> /dev/null + ./create-this-bsp "$@" || { + echo "create-this-bsp failed" + exit 1 + } + popd >> /dev/null +fi + + +# Don't run make if create-this-app script is called with --no-make arg +SKIP_MAKE= +while [ $# -gt 0 ] +do + case "$1" in + --no-make) + SKIP_MAKE=1 + ;; + esac + shift +done + + +# Now we also need to go copy the sources for this application to the +# local directory. +find "${SOPC_KIT_NIOS2}/examples/software/hello_world_small/" -name '*.c' -or -name '*.h' -or -name 'hostfs*' | xargs -i cp -L {} ./ || { + echo "failed during copying example source files" + exit 1 +} + +find "${SOPC_KIT_NIOS2}/examples/software/hello_world_small/" -name 'readme.txt' -or -name 'Readme.txt' | xargs -i cp -L {} ./ || { + echo "failed copying readme file" +} + +if [ -d "${SOPC_KIT_NIOS2}/examples/software/hello_world_small/system" ] +then + cp -RL "${SOPC_KIT_NIOS2}/examples/software/hello_world_small/system" . || { + echo "failed during copying project support files" + exit 1 + } +fi + +chmod -R +w . || { + echo "failed during changing file permissions" + exit 1 +} + +cmd="nios2-app-generate-makefile --bsp-dir ${BSP_DIR} --set QUARTUS_PROJECT_DIR=${QUARTUS_PROJECT_DIR} ${NIOS2_APP_GEN_ARGS}" + +echo "create-this-app: Running \"${cmd}\"" +$cmd || { + echo "nios2-app-generate-makefile failed" + exit 1 +} + +if [ -z "$SKIP_MAKE" ]; then + cmd="make" + + echo "create-this-app: Running \"$cmd\"" + $cmd || { + echo "make failed" + exit 1 + } + + echo + echo "To download and run the application:" + echo " 1. Make sure the board is connected to the system." + echo " 2. Run 'nios2-configure-sof ' to configure the FPGA with the hardware design." + echo " 3. If you have a stdio device, run 'nios2-terminal' in a different shell." + echo " 4. Run 'make download-elf' from the application directory." + echo + echo "To debug the application:" + echo " Import the project into Nios II Software Build Tools for Eclipse." + echo " Refer to Nios II Software Build Tools for Eclipse Documentation for more information." + echo + echo -e "" +fi + + +exit 0 diff --git a/software/qsys_tutorial_green/hello_world_small.c b/software/qsys_tutorial_green/hello_world_small.c new file mode 100644 index 0000000..cf67858 --- /dev/null +++ b/software/qsys_tutorial_green/hello_world_small.c @@ -0,0 +1,110 @@ +/* + * "Small Hello World" example. + * + * This example prints 'Hello from Nios II' to the STDOUT stream. It runs on + * the Nios II 'standard', 'full_featured', 'fast', and 'low_cost' example + * designs. It requires a STDOUT device in your system's hardware. + * + * The purpose of this example is to demonstrate the smallest possible Hello + * World application, using the Nios II HAL library. The memory footprint + * of this hosted application is ~332 bytes by default using the standard + * reference design. For a more fully featured Hello World application + * example, see the example titled "Hello World". + * + * The memory footprint of this example has been reduced by making the + * following changes to the normal "Hello World" example. + * Check in the Nios II Software Developers Manual for a more complete + * description. + * + * In the SW Application project (small_hello_world): + * + * - In the C/C++ Build page + * + * - Set the Optimization Level to -Os + * + * In System Library project (small_hello_world_syslib): + * - In the C/C++ Build page + * + * - Set the Optimization Level to -Os + * + * - Define the preprocessor option ALT_NO_INSTRUCTION_EMULATION + * This removes software exception handling, which means that you cannot + * run code compiled for Nios II cpu with a hardware multiplier on a core + * without a the multiply unit. Check the Nios II Software Developers + * Manual for more details. + * + * - In the System Library page: + * - Set Periodic system timer and Timestamp timer to none + * This prevents the automatic inclusion of the timer driver. + * + * - Set Max file descriptors to 4 + * This reduces the size of the file handle pool. + * + * - Check Main function does not exit + * - Uncheck Clean exit (flush buffers) + * This removes the unneeded call to exit when main returns, since it + * won't. + * + * - Check Don't use C++ + * This builds without the C++ support code. + * + * - Check Small C library + * This uses a reduced functionality C library, which lacks + * support for buffering, file IO, floating point and getch(), etc. + * Check the Nios II Software Developers Manual for a complete list. + * + * - Check Reduced device drivers + * This uses reduced functionality drivers if they're available. For the + * standard design this means you get polled UART and JTAG UART drivers, + * no support for the LCD driver and you lose the ability to program + * CFI compliant flash devices. + * + * - Check Access device drivers directly + * This bypasses the device file system to access device drivers directly. + * This eliminates the space required for the device file system services. + * It also provides a HAL version of libc services that access the drivers + * directly, further reducing space. Only a limited number of libc + * functions are available in this configuration. + * + * - Use ALT versions of stdio routines: + * + * Function Description + * =============== ===================================== + * alt_printf Only supports %s, %x, and %c ( < 1 Kbyte) + * alt_putstr Smaller overhead than puts with direct drivers + * Note this function doesn't add a newline. + * alt_putchar Smaller overhead than putchar with direct drivers + * alt_getchar Smaller overhead than getchar with direct drivers + * + */ + +#include "sys/alt_stdio.h" + +#if 0 +int main() +{ + alt_putstr("Hello from Nios II!\n"); + + /* Event loop never exits. */ + while (1); + + return 0; +} +#endif + +#define switches (volatile char *) 0x0002010 +#define ledrs (volatile int *) 0x0002000 +void main() +{ + + unsigned long i = 0; + volatile int j = 0; + while(1){ + *ledrs = i++; + if (i > (unsigned long)1<<18) i = 0; + for (j = 0; j < 100; j++); + } + + //while (1) + //*leds = *switches; +} diff --git a/software/qsys_tutorial_green/obj/default/hello_world_small.d b/software/qsys_tutorial_green/obj/default/hello_world_small.d new file mode 100644 index 0000000..821f301 --- /dev/null +++ b/software/qsys_tutorial_green/obj/default/hello_world_small.d @@ -0,0 +1,4 @@ +obj/default/hello_world_small.o: hello_world_small.c \ + ../qsys_tutorial_green_bsp//HAL/inc/sys/alt_stdio.h + +../qsys_tutorial_green_bsp//HAL/inc/sys/alt_stdio.h: diff --git a/software/qsys_tutorial_green/obj/default/hello_world_small.o b/software/qsys_tutorial_green/obj/default/hello_world_small.o new file mode 100644 index 0000000..eba4bf9 --- /dev/null +++ b/software/qsys_tutorial_green/obj/default/hello_world_small.o Binary files differ diff --git a/software/qsys_tutorial_green/qsys_tutorial_green.elf b/software/qsys_tutorial_green/qsys_tutorial_green.elf new file mode 100644 index 0000000..09d5837 --- /dev/null +++ b/software/qsys_tutorial_green/qsys_tutorial_green.elf Binary files differ diff --git a/software/qsys_tutorial_green/qsys_tutorial_green.map b/software/qsys_tutorial_green/qsys_tutorial_green.map new file mode 100644 index 0000000..a48c6f6 --- /dev/null +++ b/software/qsys_tutorial_green/qsys_tutorial_green.map @@ -0,0 +1,412 @@ +Archive member included because of file (symbol) + +../qsys_tutorial_green_bsp/\libhal_bsp.a(alt_load.o) + ../qsys_tutorial_green_bsp//obj/HAL/src/crt0.o (alt_load) +../qsys_tutorial_green_bsp/\libhal_bsp.a(alt_main.o) + ../qsys_tutorial_green_bsp//obj/HAL/src/crt0.o (alt_main) +../qsys_tutorial_green_bsp/\libhal_bsp.a(alt_sys_init.o) + ../qsys_tutorial_green_bsp/\libhal_bsp.a(alt_main.o) (alt_sys_init) +../qsys_tutorial_green_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) + ../qsys_tutorial_green_bsp/\libhal_bsp.a(alt_load.o) (alt_dcache_flush_all) +../qsys_tutorial_green_bsp/\libhal_bsp.a(alt_icache_flush_all.o) + ../qsys_tutorial_green_bsp/\libhal_bsp.a(alt_load.o) (alt_icache_flush_all) +../qsys_tutorial_green_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) + ../qsys_tutorial_green_bsp/\libhal_bsp.a(alt_sys_init.o) (altera_nios2_qsys_irq_init) + +Memory Configuration + +Name Origin Length Attributes +reset 0x00000000 0x00000020 +onchip_memory 0x00000020 0x00000fe0 +*default* 0x00000000 0xffffffff + +Linker script and memory map + +LOAD ../qsys_tutorial_green_bsp//obj/HAL/src/crt0.o + 0x0000000c exit = _exit +LOAD obj/default/hello_world_small.o +LOAD c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libstdc++.a +LOAD c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libm.a +LOAD c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a +START GROUP +LOAD c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a +LOAD c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a +LOAD ../qsys_tutorial_green_bsp/\libhal_bsp.a +END GROUP +LOAD c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a + 0x00000000 __alt_mem_onchip_memory = 0x0 + +.entry 0x00000000 0x20 + *(.entry) + .entry 0x00000000 0x20 ../qsys_tutorial_green_bsp//obj/HAL/src/crt0.o + 0x00000000 __reset + 0x0000000c _exit + +.exceptions 0x00000020 0x0 + 0x00000020 PROVIDE (__ram_exceptions_start, ABSOLUTE (.)) + 0x00000020 . = ALIGN (0x20) + *(.irq) + *(.exceptions.entry.label) + *(.exceptions.entry.user) + *(.exceptions.entry) + *(.exceptions.irqtest.user) + *(.exceptions.irqtest) + *(.exceptions.irqhandler.user) + *(.exceptions.irqhandler) + *(.exceptions.irqreturn.user) + *(.exceptions.irqreturn) + *(.exceptions.notirq.label) + *(.exceptions.notirq.user) + *(.exceptions.notirq) + *(.exceptions.soft.user) + *(.exceptions.soft) + *(.exceptions.unknown.user) + *(.exceptions.unknown) + *(.exceptions.exit.label) + *(.exceptions.exit.user) + *(.exceptions.exit) + *(.exceptions) + 0x00000020 PROVIDE (__ram_exceptions_end, ABSOLUTE (.)) + 0x00000020 PROVIDE (__flash_exceptions_start, LOADADDR (.exceptions)) + +.text 0x00000020 0x170 + 0x00000020 PROVIDE (stext, ABSOLUTE (.)) + *(.interp) + *(.hash) + *(.dynsym) + *(.dynstr) + *(.gnu.version) + *(.gnu.version_d) + *(.gnu.version_r) + *(.rel.init) + *(.rela.init) + *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) + *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) + *(.rel.fini) + *(.rela.fini) + *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) + *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) + *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) + *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) + *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) + *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) + *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) + *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) + *(.rel.ctors) + *(.rela.ctors) + *(.rel.dtors) + *(.rela.dtors) + *(.rel.got) + *(.rela.got) + *(.rel.sdata .rel.sdata.* .rel.gnu.linkonce.s.*) + *(.rela.sdata .rela.sdata.* .rela.gnu.linkonce.s.*) + *(.rel.sbss .rel.sbss.* .rel.gnu.linkonce.sb.*) + *(.rela.sbss .rela.sbss.* .rela.gnu.linkonce.sb.*) + *(.rel.sdata2 .rel.sdata2.* .rel.gnu.linkonce.s2.*) + *(.rela.sdata2 .rela.sdata2.* .rela.gnu.linkonce.s2.*) + *(.rel.sbss2 .rel.sbss2.* .rel.gnu.linkonce.sb2.*) + *(.rela.sbss2 .rela.sbss2.* .rela.gnu.linkonce.sb2.*) + *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) + *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) + *(.rel.plt) + *(.rela.plt) + *(.rel.dyn) + *(.init) + *(.plt) + *(.text .stub .text.* .gnu.linkonce.t.*) + .text 0x00000020 0x3c ../qsys_tutorial_green_bsp//obj/HAL/src/crt0.o + 0x00000020 _start + .text 0x0000005c 0x48 obj/default/hello_world_small.o + 0x0000005c main + .text 0x000000a4 0x8c ../qsys_tutorial_green_bsp/\libhal_bsp.a(alt_load.o) + 0x000000c4 alt_load + .text 0x00000130 0x2c ../qsys_tutorial_green_bsp/\libhal_bsp.a(alt_main.o) + 0x00000130 alt_main + .text 0x0000015c 0x24 ../qsys_tutorial_green_bsp/\libhal_bsp.a(alt_sys_init.o) + 0x0000015c alt_sys_init + 0x00000160 alt_irq_init + .text 0x00000180 0x4 ../qsys_tutorial_green_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) + 0x00000180 alt_dcache_flush_all + .text 0x00000184 0x4 ../qsys_tutorial_green_bsp/\libhal_bsp.a(alt_icache_flush_all.o) + 0x00000184 alt_icache_flush_all + .text 0x00000188 0x8 ../qsys_tutorial_green_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) + 0x00000188 altera_nios2_qsys_irq_init + *(.gnu.warning.*) + *(.fini) + 0x00000190 PROVIDE (__etext, ABSOLUTE (.)) + 0x00000190 PROVIDE (_etext, ABSOLUTE (.)) + 0x00000190 PROVIDE (etext, ABSOLUTE (.)) + *(.eh_frame_hdr) + 0x00000190 . = ALIGN (0x4) + 0x00000190 PROVIDE (__preinit_array_start, ABSOLUTE (.)) + *(.preinit_array) + 0x00000190 PROVIDE (__preinit_array_end, ABSOLUTE (.)) + 0x00000190 PROVIDE (__init_array_start, ABSOLUTE (.)) + *(.init_array) + 0x00000190 PROVIDE (__init_array_end, ABSOLUTE (.)) + 0x00000190 PROVIDE (__fini_array_start, ABSOLUTE (.)) + *(.fini_array) + 0x00000190 PROVIDE (__fini_array_end, ABSOLUTE (.)) + *(.eh_frame) + *(.gcc_except_table) + *(.dynamic) + 0x00000190 PROVIDE (__CTOR_LIST__, ABSOLUTE (.)) + *(.ctors) + *(SORT(.ctors.*)) + 0x00000190 PROVIDE (__CTOR_END__, ABSOLUTE (.)) + 0x00000190 PROVIDE (__DTOR_LIST__, ABSOLUTE (.)) + *(.dtors) + *(SORT(.dtors.*)) + 0x00000190 PROVIDE (__DTOR_END__, ABSOLUTE (.)) + *(.jcr) + 0x00000190 . = ALIGN (0x4) + +.rodata 0x00000190 0x0 + 0x00000190 PROVIDE (__ram_rodata_start, ABSOLUTE (.)) + 0x00000190 . = ALIGN (0x4) + *(.rodata .rodata.* .gnu.linkonce.r.*) + *(.rodata1) + 0x00000190 . = ALIGN (0x4) + 0x00000190 PROVIDE (__ram_rodata_end, ABSOLUTE (.)) + 0x00000190 PROVIDE (__flash_rodata_start, LOADADDR (.rodata)) + +.rwdata 0x00000190 0x4 load address 0x00000194 + 0x00000190 PROVIDE (__ram_rwdata_start, ABSOLUTE (.)) + 0x00000190 . = ALIGN (0x4) + *(.got.plt) + *(.got) + *(.data1) + *(.data .data.* .gnu.linkonce.d.*) + .data 0x00000190 0x0 ../qsys_tutorial_green_bsp//obj/HAL/src/crt0.o + .data 0x00000190 0x0 obj/default/hello_world_small.o + .data 0x00000190 0x0 ../qsys_tutorial_green_bsp/\libhal_bsp.a(alt_load.o) + .data 0x00000190 0x0 ../qsys_tutorial_green_bsp/\libhal_bsp.a(alt_main.o) + .data 0x00000190 0x0 ../qsys_tutorial_green_bsp/\libhal_bsp.a(alt_sys_init.o) + .data 0x00000190 0x0 ../qsys_tutorial_green_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) + .data 0x00000190 0x0 ../qsys_tutorial_green_bsp/\libhal_bsp.a(alt_icache_flush_all.o) + .data 0x00000190 0x0 ../qsys_tutorial_green_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) + 0x00008190 _gp = ABSOLUTE ((. + 0x8000)) + 0x00008190 PROVIDE (gp, _gp) + *(.rwdata .rwdata.*) + *(.sdata .sdata.* .gnu.linkonce.s.*) + .sdata 0x00000190 0x4 ../qsys_tutorial_green_bsp/\libhal_bsp.a(alt_sys_init.o) + 0x00000190 jtag_uart + *(.sdata2 .sdata2.* .gnu.linkonce.s2.*) + 0x00000194 . = ALIGN (0x4) + 0x00000194 _edata = ABSOLUTE (.) + 0x00000194 PROVIDE (edata, ABSOLUTE (.)) + 0x00000194 PROVIDE (__ram_rwdata_end, ABSOLUTE (.)) + 0x00000194 PROVIDE (__flash_rwdata_start, LOADADDR (.rwdata)) + +.bss 0x00000198 0xc + 0x00000198 __bss_start = ABSOLUTE (.) + 0x00000198 PROVIDE (__sbss_start, ABSOLUTE (.)) + 0x00000198 PROVIDE (___sbss_start, ABSOLUTE (.)) + *(.dynsbss) + *(.sbss .sbss.* .gnu.linkonce.sb.*) + .sbss 0x00000198 0xc ../qsys_tutorial_green_bsp/\libhal_bsp.a(alt_main.o) + 0x00000198 alt_argc + 0x0000019c alt_argv + 0x000001a0 alt_envp + *(.sbss2 .sbss2.* .gnu.linkonce.sb2.*) + *(.scommon) + 0x000001a4 PROVIDE (__sbss_end, ABSOLUTE (.)) + 0x000001a4 PROVIDE (___sbss_end, ABSOLUTE (.)) + *(.dynbss) + *(.bss .bss.* .gnu.linkonce.b.*) + .bss 0x000001a4 0x0 ../qsys_tutorial_green_bsp//obj/HAL/src/crt0.o + .bss 0x000001a4 0x0 obj/default/hello_world_small.o + .bss 0x000001a4 0x0 ../qsys_tutorial_green_bsp/\libhal_bsp.a(alt_load.o) + .bss 0x000001a4 0x0 ../qsys_tutorial_green_bsp/\libhal_bsp.a(alt_main.o) + .bss 0x000001a4 0x0 ../qsys_tutorial_green_bsp/\libhal_bsp.a(alt_sys_init.o) + .bss 0x000001a4 0x0 ../qsys_tutorial_green_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) + .bss 0x000001a4 0x0 ../qsys_tutorial_green_bsp/\libhal_bsp.a(alt_icache_flush_all.o) + .bss 0x000001a4 0x0 ../qsys_tutorial_green_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) + *(COMMON) + 0x000001a4 . = ALIGN (0x4) + 0x000001a4 __bss_end = ABSOLUTE (.) + +.onchip_memory 0x000001a4 0x0 + 0x000001a4 PROVIDE (_alt_partition_onchip_memory_start, ABSOLUTE (.)) + *(.onchip_memory. onchip_memory.*) + 0x000001a4 . = ALIGN (0x4) + 0x000001a4 PROVIDE (_alt_partition_onchip_memory_end, ABSOLUTE (.)) + 0x000001a4 _end = ABSOLUTE (.) + 0x000001a4 end = ABSOLUTE (.) + 0x000001a4 __alt_stack_base = ABSOLUTE (.) + 0x000001a4 PROVIDE (_alt_partition_onchip_memory_load_addr, LOADADDR (.onchip_memory)) + +.stab + *(.stab) + +.stabstr + *(.stabstr) + +.stab.excl + *(.stab.excl) + +.stab.exclstr + *(.stab.exclstr) + +.stab.index + *(.stab.index) + +.stab.indexstr + *(.stab.indexstr) + +.comment 0x00000000 0x26 + *(.comment) + .comment 0x00000000 0x26 obj/default/hello_world_small.o + 0x27 (size before relaxing) + .comment 0x00000000 0x27 ../qsys_tutorial_green_bsp/\libhal_bsp.a(alt_load.o) + .comment 0x00000000 0x27 ../qsys_tutorial_green_bsp/\libhal_bsp.a(alt_main.o) + .comment 0x00000000 0x27 ../qsys_tutorial_green_bsp/\libhal_bsp.a(alt_sys_init.o) + .comment 0x00000000 0x27 ../qsys_tutorial_green_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) + .comment 0x00000000 0x27 ../qsys_tutorial_green_bsp/\libhal_bsp.a(alt_icache_flush_all.o) + .comment 0x00000000 0x27 ../qsys_tutorial_green_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) + +.debug + *(.debug) + +.line + *(.line) + +.debug_srcinfo + *(.debug_srcinfo) + +.debug_sfnames + *(.debug_sfnames) + +.debug_aranges 0x00000000 0x108 + *(.debug_aranges) + .debug_aranges + 0x00000000 0x28 ../qsys_tutorial_green_bsp//obj/HAL/src/crt0.o + .debug_aranges + 0x00000028 0x20 obj/default/hello_world_small.o + .debug_aranges + 0x00000048 0x20 ../qsys_tutorial_green_bsp/\libhal_bsp.a(alt_load.o) + .debug_aranges + 0x00000068 0x20 ../qsys_tutorial_green_bsp/\libhal_bsp.a(alt_main.o) + .debug_aranges + 0x00000088 0x20 ../qsys_tutorial_green_bsp/\libhal_bsp.a(alt_sys_init.o) + .debug_aranges + 0x000000a8 0x20 ../qsys_tutorial_green_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) + .debug_aranges + 0x000000c8 0x20 ../qsys_tutorial_green_bsp/\libhal_bsp.a(alt_icache_flush_all.o) + .debug_aranges + 0x000000e8 0x20 ../qsys_tutorial_green_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) + +.debug_pubnames + 0x00000000 0x149 + *(.debug_pubnames) + .debug_pubnames + 0x00000000 0x1b obj/default/hello_world_small.o + .debug_pubnames + 0x0000001b 0x1f ../qsys_tutorial_green_bsp/\libhal_bsp.a(alt_load.o) + .debug_pubnames + 0x0000003a 0x46 ../qsys_tutorial_green_bsp/\libhal_bsp.a(alt_main.o) + .debug_pubnames + 0x00000080 0x42 ../qsys_tutorial_green_bsp/\libhal_bsp.a(alt_sys_init.o) + .debug_pubnames + 0x000000c2 0x2b ../qsys_tutorial_green_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) + .debug_pubnames + 0x000000ed 0x2b ../qsys_tutorial_green_bsp/\libhal_bsp.a(alt_icache_flush_all.o) + .debug_pubnames + 0x00000118 0x31 ../qsys_tutorial_green_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) + +.debug_info 0x00000000 0x659 + *(.debug_info .gnu.linkonce.wi.*) + .debug_info 0x00000000 0x79 ../qsys_tutorial_green_bsp//obj/HAL/src/crt0.o + .debug_info 0x00000079 0x69 obj/default/hello_world_small.o + .debug_info 0x000000e2 0x12e ../qsys_tutorial_green_bsp/\libhal_bsp.a(alt_load.o) + .debug_info 0x00000210 0x125 ../qsys_tutorial_green_bsp/\libhal_bsp.a(alt_main.o) + .debug_info 0x00000335 0x17d ../qsys_tutorial_green_bsp/\libhal_bsp.a(alt_sys_init.o) + .debug_info 0x000004b2 0x8d ../qsys_tutorial_green_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) + .debug_info 0x0000053f 0x8d ../qsys_tutorial_green_bsp/\libhal_bsp.a(alt_icache_flush_all.o) + .debug_info 0x000005cc 0x8d ../qsys_tutorial_green_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) + +.debug_abbrev 0x00000000 0x344 + *(.debug_abbrev) + .debug_abbrev 0x00000000 0x12 ../qsys_tutorial_green_bsp//obj/HAL/src/crt0.o + .debug_abbrev 0x00000012 0x55 obj/default/hello_world_small.o + .debug_abbrev 0x00000067 0x97 ../qsys_tutorial_green_bsp/\libhal_bsp.a(alt_load.o) + .debug_abbrev 0x000000fe 0xa6 ../qsys_tutorial_green_bsp/\libhal_bsp.a(alt_main.o) + .debug_abbrev 0x000001a4 0xe3 ../qsys_tutorial_green_bsp/\libhal_bsp.a(alt_sys_init.o) + .debug_abbrev 0x00000287 0x3f ../qsys_tutorial_green_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) + .debug_abbrev 0x000002c6 0x3f ../qsys_tutorial_green_bsp/\libhal_bsp.a(alt_icache_flush_all.o) + .debug_abbrev 0x00000305 0x3f ../qsys_tutorial_green_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) + +.debug_line 0x00000000 0xde4 + *(.debug_line) + .debug_line 0x00000000 0x66 ../qsys_tutorial_green_bsp//obj/HAL/src/crt0.o + .debug_line 0x00000066 0xe7 obj/default/hello_world_small.o + .debug_line 0x0000014d 0x217 ../qsys_tutorial_green_bsp/\libhal_bsp.a(alt_load.o) + .debug_line 0x00000364 0x2c2 ../qsys_tutorial_green_bsp/\libhal_bsp.a(alt_main.o) + .debug_line 0x00000626 0x286 ../qsys_tutorial_green_bsp/\libhal_bsp.a(alt_sys_init.o) + .debug_line 0x000008ac 0x1b5 ../qsys_tutorial_green_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) + .debug_line 0x00000a61 0x1b5 ../qsys_tutorial_green_bsp/\libhal_bsp.a(alt_icache_flush_all.o) + .debug_line 0x00000c16 0x1ce ../qsys_tutorial_green_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) + +.debug_frame 0x00000000 0x11c + *(.debug_frame) + .debug_frame 0x00000000 0x24 obj/default/hello_world_small.o + .debug_frame 0x00000024 0x38 ../qsys_tutorial_green_bsp/\libhal_bsp.a(alt_load.o) + .debug_frame 0x0000005c 0x28 ../qsys_tutorial_green_bsp/\libhal_bsp.a(alt_main.o) + .debug_frame 0x00000084 0x38 ../qsys_tutorial_green_bsp/\libhal_bsp.a(alt_sys_init.o) + .debug_frame 0x000000bc 0x20 ../qsys_tutorial_green_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) + .debug_frame 0x000000dc 0x20 ../qsys_tutorial_green_bsp/\libhal_bsp.a(alt_icache_flush_all.o) + .debug_frame 0x000000fc 0x20 ../qsys_tutorial_green_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) + +.debug_str 0x00000000 0x3b4 + *(.debug_str) + .debug_str 0x00000000 0x64 obj/default/hello_world_small.o + 0x7b (size before relaxing) + .debug_str 0x00000064 0x189 ../qsys_tutorial_green_bsp/\libhal_bsp.a(alt_load.o) + 0x1ce (size before relaxing) + .debug_str 0x000001ed 0x75 ../qsys_tutorial_green_bsp/\libhal_bsp.a(alt_main.o) + 0x152 (size before relaxing) + .debug_str 0x00000262 0xaf ../qsys_tutorial_green_bsp/\libhal_bsp.a(alt_sys_init.o) + 0x1c5 (size before relaxing) + .debug_str 0x00000311 0x34 ../qsys_tutorial_green_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) + 0x111 (size before relaxing) + .debug_str 0x00000345 0x34 ../qsys_tutorial_green_bsp/\libhal_bsp.a(alt_icache_flush_all.o) + 0x111 (size before relaxing) + .debug_str 0x00000379 0x3b ../qsys_tutorial_green_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) + 0x118 (size before relaxing) + +.debug_loc 0x00000000 0x8f + *(.debug_loc) + .debug_loc 0x00000000 0x1f obj/default/hello_world_small.o + .debug_loc 0x0000001f 0x1f ../qsys_tutorial_green_bsp/\libhal_bsp.a(alt_load.o) + .debug_loc 0x0000003e 0x1f ../qsys_tutorial_green_bsp/\libhal_bsp.a(alt_main.o) + .debug_loc 0x0000005d 0x32 ../qsys_tutorial_green_bsp/\libhal_bsp.a(alt_sys_init.o) + +.debug_macinfo + *(.debug_macinfo) + +.debug_weaknames + *(.debug_weaknames) + +.debug_funcnames + *(.debug_funcnames) + +.debug_typenames + *(.debug_typenames) + +.debug_varnames + *(.debug_varnames) + +.debug_alt_sim_info + 0x00000000 0x10 + *(.debug_alt_sim_info) + .debug_alt_sim_info + 0x00000000 0x10 ../qsys_tutorial_green_bsp//obj/HAL/src/crt0.o + 0x00001000 __alt_data_end = 0x1000 + 0x00001000 PROVIDE (__alt_stack_pointer, __alt_data_end) + 0x000001a4 PROVIDE (__alt_stack_limit, __alt_stack_base) + 0x000001a4 PROVIDE (__alt_heap_start, end) + 0x00001000 PROVIDE (__alt_heap_limit, 0x1000) +OUTPUT(qsys_tutorial_green.elf elf32-littlenios2) + +.debug_ranges 0x00000000 0x20 + .debug_ranges 0x00000000 0x20 ../qsys_tutorial_green_bsp//obj/HAL/src/crt0.o diff --git a/software/qsys_tutorial_green/qsys_tutorial_green.objdump b/software/qsys_tutorial_green/qsys_tutorial_green.objdump new file mode 100644 index 0000000..a1cc211 --- /dev/null +++ b/software/qsys_tutorial_green/qsys_tutorial_green.objdump @@ -0,0 +1,474 @@ + +qsys_tutorial_green.elf: file format elf32-littlenios2 +qsys_tutorial_green.elf +architecture: nios2, flags 0x00000112: +EXEC_P, HAS_SYMS, D_PAGED +start address 0x00000020 + +Program Header: + LOAD off 0x00001000 vaddr 0x00000000 paddr 0x00000000 align 2**12 + filesz 0x00000020 memsz 0x00000020 flags r-x + LOAD off 0x00001020 vaddr 0x00000020 paddr 0x00000020 align 2**12 + filesz 0x00000170 memsz 0x00000170 flags r-x + LOAD off 0x00001190 vaddr 0x00000190 paddr 0x00000194 align 2**12 + filesz 0x00000004 memsz 0x00000004 flags rw- + LOAD off 0x00001198 vaddr 0x00000198 paddr 0x00000198 align 2**12 + filesz 0x00000000 memsz 0x0000000c flags rw- + +Sections: +Idx Name Size VMA LMA File off Algn + 0 .entry 00000020 00000000 00000000 00001000 2**5 + CONTENTS, ALLOC, LOAD, READONLY, CODE + 1 .text 00000170 00000020 00000020 00001020 2**2 + CONTENTS, ALLOC, LOAD, READONLY, CODE + 2 .rwdata 00000004 00000190 00000194 00001190 2**2 + CONTENTS, ALLOC, LOAD, DATA, SMALL_DATA + 3 .bss 0000000c 00000198 00000198 00001198 2**2 + ALLOC, SMALL_DATA + 4 .comment 00000026 00000000 00000000 00001194 2**0 + CONTENTS, READONLY + 5 .debug_aranges 00000108 00000000 00000000 000011c0 2**3 + CONTENTS, READONLY, DEBUGGING + 6 .debug_pubnames 00000149 00000000 00000000 000012c8 2**0 + CONTENTS, READONLY, DEBUGGING + 7 .debug_info 00000659 00000000 00000000 00001411 2**0 + CONTENTS, READONLY, DEBUGGING + 8 .debug_abbrev 00000344 00000000 00000000 00001a6a 2**0 + CONTENTS, READONLY, DEBUGGING + 9 .debug_line 00000de4 00000000 00000000 00001dae 2**0 + CONTENTS, READONLY, DEBUGGING + 10 .debug_frame 0000011c 00000000 00000000 00002b94 2**2 + CONTENTS, READONLY, DEBUGGING + 11 .debug_str 000003b4 00000000 00000000 00002cb0 2**0 + CONTENTS, READONLY, DEBUGGING + 12 .debug_loc 0000008f 00000000 00000000 00003064 2**0 + CONTENTS, READONLY, DEBUGGING + 13 .debug_alt_sim_info 00000010 00000000 00000000 000030f4 2**2 + CONTENTS, READONLY, DEBUGGING + 14 .debug_ranges 00000020 00000000 00000000 00003108 2**3 + CONTENTS, READONLY, DEBUGGING + 15 .thread_model 00000003 00000000 00000000 00003d3f 2**0 + CONTENTS, READONLY + 16 .cpu 0000000f 00000000 00000000 00003d42 2**0 + CONTENTS, READONLY + 17 .qsys 00000001 00000000 00000000 00003d51 2**0 + CONTENTS, READONLY + 18 .simulation_enabled 00000001 00000000 00000000 00003d52 2**0 + CONTENTS, READONLY + 19 .stderr_dev 00000009 00000000 00000000 00003d53 2**0 + CONTENTS, READONLY + 20 .stdin_dev 00000009 00000000 00000000 00003d5c 2**0 + CONTENTS, READONLY + 21 .stdout_dev 00000009 00000000 00000000 00003d65 2**0 + CONTENTS, READONLY + 22 .sopc_system_name 0000000b 00000000 00000000 00003d6e 2**0 + CONTENTS, READONLY + 23 .quartus_project_dir 00000026 00000000 00000000 00003d79 2**0 + CONTENTS, READONLY + 24 .sopcinfo 0003737c 00000000 00000000 00003d9f 2**0 + CONTENTS, READONLY +SYMBOL TABLE: +00000000 l d .entry 00000000 .entry +00000020 l d .text 00000000 .text +00000190 l d .rwdata 00000000 .rwdata +00000198 l d .bss 00000000 .bss +00000000 l d .comment 00000000 .comment +00000000 l d .debug_aranges 00000000 .debug_aranges +00000000 l d .debug_pubnames 00000000 .debug_pubnames +00000000 l d .debug_info 00000000 .debug_info +00000000 l d .debug_abbrev 00000000 .debug_abbrev +00000000 l d .debug_line 00000000 .debug_line +00000000 l d .debug_frame 00000000 .debug_frame +00000000 l d .debug_str 00000000 .debug_str +00000000 l d .debug_loc 00000000 .debug_loc +00000000 l d .debug_alt_sim_info 00000000 .debug_alt_sim_info +00000000 l d .debug_ranges 00000000 .debug_ranges +00000058 l .text 00000000 alt_after_alt_main +00000000 l df *ABS* 00000000 hello_world_small.c +00000000 l df *ABS* 00000000 alt_load.c +000000a4 l F .text 00000020 alt_load_section +00000000 l df *ABS* 00000000 alt_main.c +00000000 l df *ABS* 00000000 alt_sys_init.c +00000000 l df *ABS* 00000000 alt_dcache_flush_all.c +00000000 l df *ABS* 00000000 alt_icache_flush_all.c +00000000 l df *ABS* 00000000 altera_nios2_qsys_irq.c +00000130 g F .text 0000002c alt_main +00000194 g *ABS* 00000000 __flash_rwdata_start +00000190 g O .rwdata 00000004 jtag_uart +00000000 g F .entry 0000000c __reset +00000020 g *ABS* 00000000 __flash_exceptions_start +0000019c g O .bss 00000004 alt_argv +00008190 g *ABS* 00000000 _gp +000001a4 g *ABS* 00000000 __bss_end +00000180 g F .text 00000004 alt_dcache_flush_all +00000194 g *ABS* 00000000 __ram_rwdata_end +00000000 g *ABS* 00000000 __alt_mem_onchip_memory +00000190 g *ABS* 00000000 __ram_rodata_end +000001a4 g *ABS* 00000000 end +00001000 g *ABS* 00000000 __alt_stack_pointer +00000020 g F .text 0000003c _start +0000015c g F .text 00000004 alt_sys_init +00000190 g *ABS* 00000000 __ram_rwdata_start +00000190 g *ABS* 00000000 __ram_rodata_start +000001a4 g *ABS* 00000000 __alt_stack_base +00000198 g *ABS* 00000000 __bss_start +0000005c g F .text 00000048 main +000001a0 g O .bss 00000004 alt_envp +00000190 g *ABS* 00000000 __flash_rodata_start +00000160 g F .text 00000020 alt_irq_init +00000198 g O .bss 00000004 alt_argc +00000020 g *ABS* 00000000 __ram_exceptions_start +00000194 g *ABS* 00000000 _edata +000001a4 g *ABS* 00000000 _end +00000020 g *ABS* 00000000 __ram_exceptions_end +00000188 g F .text 00000008 altera_nios2_qsys_irq_init +0000000c g .entry 00000000 exit +00001000 g *ABS* 00000000 __alt_data_end +0000000c g .entry 00000000 _exit +00000184 g F .text 00000004 alt_icache_flush_all +000000c4 g F .text 0000006c alt_load + + + +Disassembly of section .entry: + +00000000 <__reset>: + * Jump to the _start entry point in the .text section if reset code + * is allowed or if optimizing for RTL simulation. + */ +#if defined(ALT_ALLOW_CODE_AT_RESET) || defined(ALT_SIM_OPTIMIZE) + /* Jump to the _start entry point in the .text section. */ + movhi r1, %hi(_start) + 0: 00400034 movhi at,0 + ori r1, r1, %lo(_start) + 4: 08400814 ori at,at,32 + jmp r1 + 8: 0800683a jmp at + +0000000c <_exit>: + ... + +Disassembly of section .text: + +00000020 <_start>: +#if (NIOS2_NUM_OF_SHADOW_REG_SETS == 0) + /* + * Now that the caches are initialized, set up the stack pointer. + * The value provided by the linker is assumed to be correctly aligned. + */ + movhi sp, %hi(__alt_stack_pointer) + 20: 06c00034 movhi sp,0 + ori sp, sp, %lo(__alt_stack_pointer) + 24: dec40014 ori sp,sp,4096 + + /* Set up the global pointer. */ + movhi gp, %hi(_gp) + 28: 06800034 movhi gp,0 + ori gp, gp, %lo(_gp) + 2c: d6a06414 ori gp,gp,33168 + */ +#ifndef ALT_SIM_OPTIMIZE + /* Log that the BSS is about to be cleared. */ + ALT_LOG_PUTS(alt_log_msg_bss) + + movhi r2, %hi(__bss_start) + 30: 00800034 movhi r2,0 + ori r2, r2, %lo(__bss_start) + 34: 10806614 ori r2,r2,408 + + movhi r3, %hi(__bss_end) + 38: 00c00034 movhi r3,0 + ori r3, r3, %lo(__bss_end) + 3c: 18c06914 ori r3,r3,420 + + beq r2, r3, 1f + 40: 10c00326 beq r2,r3,50 <_start+0x30> + +0: + stw zero, (r2) + 44: 10000015 stw zero,0(r2) + addi r2, r2, 4 + 48: 10800104 addi r2,r2,4 + bltu r2, r3, 0b + 4c: 10fffd36 bltu r2,r3,44 <_start+0x24> + * section aren't defined until alt_load() has been called). + */ + mov et, zero +#endif + + call alt_load + 50: 00000c40 call c4 + + /* Log that alt_main is about to be called. */ + ALT_LOG_PUTS(alt_log_msg_alt_main) + + /* Call the C entry point. It should never return. */ + call alt_main + 54: 00001300 call 130 + +00000058 : + + /* Wait in infinite loop in case alt_main does return. */ +alt_after_alt_main: + br alt_after_alt_main + 58: 003fff06 br 58 + +0000005c
: +#endif + +#define switches (volatile char *) 0x0002010 +#define ledrs (volatile int *) 0x0002000 +void main() +{ + 5c: deffff04 addi sp,sp,-4 + + unsigned long i = 0; + volatile int j = 0; + 60: d8000015 stw zero,0(sp) + 64: 0007883a mov r3,zero + 68: 01880004 movi r6,8192 + 6c: 01400134 movhi r5,4 + while(1){ + *ledrs = i++; + 70: 30c00015 stw r3,0(r6) + 74: 18c00044 addi r3,r3,1 + if (i > (unsigned long)1<<18) i = 0; + 78: 28c0012e bgeu r5,r3,80 + 7c: 0007883a mov r3,zero + 80: 010018c4 movi r4,99 + for (j = 0; j < 100; j++); + 84: d8000015 stw zero,0(sp) + 88: 00000306 br 98 + 8c: d8800017 ldw r2,0(sp) + 90: 10800044 addi r2,r2,1 + 94: d8800015 stw r2,0(sp) + 98: d8800017 ldw r2,0(sp) + 9c: 20bffb0e bge r4,r2,8c + a0: 003ff306 br 70 + +000000a4 : + +static void ALT_INLINE alt_load_section (alt_u32* from, + alt_u32* to, + alt_u32* end) +{ + if (to != from) + a4: 2900051e bne r5,r4,bc + a8: f800283a ret + { + while( to != end ) + { + *to++ = *from++; + ac: 20800017 ldw r2,0(r4) + b0: 21000104 addi r4,r4,4 + b4: 28800015 stw r2,0(r5) + b8: 29400104 addi r5,r5,4 + alt_u32* to, + alt_u32* end) +{ + if (to != from) + { + while( to != end ) + bc: 29bffb1e bne r5,r6,ac + c0: f800283a ret + +000000c4 : + * there is no bootloader, so this application is responsible for loading to + * RAM any sections that are required. + */ + +void alt_load (void) +{ + c4: deffff04 addi sp,sp,-4 + /* + * Copy the .rwdata section. + */ + + alt_load_section (&__flash_rwdata_start, + c8: 01000034 movhi r4,0 + cc: 21006504 addi r4,r4,404 + d0: 01400034 movhi r5,0 + d4: 29406404 addi r5,r5,400 + d8: 01800034 movhi r6,0 + dc: 31806504 addi r6,r6,404 + * there is no bootloader, so this application is responsible for loading to + * RAM any sections that are required. + */ + +void alt_load (void) +{ + e0: dfc00015 stw ra,0(sp) + /* + * Copy the .rwdata section. + */ + + alt_load_section (&__flash_rwdata_start, + e4: 00000a40 call a4 + + /* + * Copy the exception handler. + */ + + alt_load_section (&__flash_exceptions_start, + e8: 01000034 movhi r4,0 + ec: 21000804 addi r4,r4,32 + f0: 01400034 movhi r5,0 + f4: 29400804 addi r5,r5,32 + f8: 01800034 movhi r6,0 + fc: 31800804 addi r6,r6,32 + 100: 00000a40 call a4 + + /* + * Copy the .rodata section. + */ + + alt_load_section (&__flash_rodata_start, + 104: 01000034 movhi r4,0 + 108: 21006404 addi r4,r4,400 + 10c: 01400034 movhi r5,0 + 110: 29406404 addi r5,r5,400 + 114: 01800034 movhi r6,0 + 118: 31806404 addi r6,r6,400 + 11c: 00000a40 call a4 + + /* + * Now ensure that the caches are in synch. + */ + + alt_dcache_flush_all(); + 120: 00001800 call 180 + alt_icache_flush_all(); +} + 124: dfc00017 ldw ra,0(sp) + 128: dec00104 addi sp,sp,4 + /* + * Now ensure that the caches are in synch. + */ + + alt_dcache_flush_all(); + alt_icache_flush_all(); + 12c: 00001841 jmpi 184 + +00000130 : + * devices/filesystems/components in the system; and call the entry point for + * the users application, i.e. main(). + */ + +void alt_main (void) +{ + 130: deffff04 addi sp,sp,-4 +#endif + + /* ALT LOG - please see HAL/sys/alt_log_printf.h for details */ + ALT_LOG_PRINT_BOOT("[alt_main.c] Entering alt_main, calling alt_irq_init.\r\n"); + /* Initialize the interrupt controller. */ + alt_irq_init (NULL); + 134: 0009883a mov r4,zero + * devices/filesystems/components in the system; and call the entry point for + * the users application, i.e. main(). + */ + +void alt_main (void) +{ + 138: dfc00015 stw ra,0(sp) +#endif + + /* ALT LOG - please see HAL/sys/alt_log_printf.h for details */ + ALT_LOG_PRINT_BOOT("[alt_main.c] Entering alt_main, calling alt_irq_init.\r\n"); + /* Initialize the interrupt controller. */ + alt_irq_init (NULL); + 13c: 00001600 call 160 + ALT_LOG_PRINT_BOOT("[alt_main.c] Done OS Init, calling alt_sem_create.\r\n"); + ALT_SEM_CREATE (&alt_fd_list_lock, 1); + + /* Initialize the device drivers/software components. */ + ALT_LOG_PRINT_BOOT("[alt_main.c] Calling alt_sys_init.\r\n"); + alt_sys_init(); + 140: 000015c0 call 15c + */ + + ALT_LOG_PRINT_BOOT("[alt_main.c] Calling main.\r\n"); + +#ifdef ALT_NO_EXIT + main (alt_argc, alt_argv, alt_envp); + 144: d1200217 ldw r4,-32760(gp) + 148: d1600317 ldw r5,-32756(gp) + 14c: d1a00417 ldw r6,-32752(gp) + close(STDOUT_FILENO); + exit (result); +#endif + + ALT_LOG_PRINT_BOOT("[alt_main.c] After main - we should not be here?.\r\n"); +} + 150: dfc00017 ldw ra,0(sp) + 154: dec00104 addi sp,sp,4 + */ + + ALT_LOG_PRINT_BOOT("[alt_main.c] Calling main.\r\n"); + +#ifdef ALT_NO_EXIT + main (alt_argc, alt_argv, alt_envp); + 158: 000005c1 jmpi 5c
+ +0000015c : + */ + +void alt_sys_init( void ) +{ + ALTERA_AVALON_JTAG_UART_INIT ( JTAG_UART, jtag_uart); +} + 15c: f800283a ret + +00000160 : + * The "base" parameter is ignored and only + * present for backwards-compatibility. + */ + +void alt_irq_init ( const void* base ) +{ + 160: deffff04 addi sp,sp,-4 + 164: dfc00015 stw ra,0(sp) + ALTERA_NIOS2_QSYS_IRQ_INIT ( NIOS2_PROCESSOR, nios2_processor); + 168: 00001880 call 188 + * alt_irq_cpu_enable_interrupts() enables the CPU to start taking interrupts. + */ +static ALT_INLINE void ALT_ALWAYS_INLINE + alt_irq_cpu_enable_interrupts () +{ + NIOS2_WRITE_STATUS(NIOS2_STATUS_PIE_MSK + 16c: 00800044 movi r2,1 + 170: 1001703a wrctl status,r2 + alt_irq_cpu_enable_interrupts(); +} + 174: dfc00017 ldw ra,0(sp) + 178: dec00104 addi sp,sp,4 + 17c: f800283a ret + +00000180 : + for (i = (char*) 0; i < (char*) NIOS2_DCACHE_SIZE; i+= NIOS2_DCACHE_LINE_SIZE) + { + __asm__ volatile ("flushd (%0)" :: "r" (i)); + } +#endif /* NIOS2_DCACHE_SIZE > 0 */ +} + 180: f800283a ret + +00000184 : +void alt_icache_flush_all (void) +{ +#if NIOS2_ICACHE_SIZE > 0 + alt_icache_flush (0, NIOS2_ICACHE_SIZE); +#endif +} + 184: f800283a ret + +00000188 : + * To initialize the internal interrupt controller, just clear the IENABLE + * register so that all possible IRQs are disabled. + */ +void altera_nios2_qsys_irq_init(void) +{ + NIOS2_WRITE_IENABLE(0); + 188: 000170fa wrctl ienable,zero +} + 18c: f800283a ret diff --git a/software/qsys_tutorial_green/readme.txt b/software/qsys_tutorial_green/readme.txt new file mode 100644 index 0000000..3dc3186 --- /dev/null +++ b/software/qsys_tutorial_green/readme.txt @@ -0,0 +1,67 @@ +Readme - Hello World Software Example + +DESCRIPTION: +Simple program that prints "Hello from Nios II" + +The purpose of this example is to demonstrate the smallest possible Hello +World application, using the Nios II HAL BSP. The memory footprint +of this hosted application is intended to be less than 1 kbytes by default using a standard +reference design. For a more fully featured Hello World application +example, see the example titled "Hello World". + +The memory footprint of this example has been reduced by making the +following changes to the normal "Hello World" example. +Check in the Nios II Software Developers Handbook for a more complete +description. + +In the SW Application project: + - In the C/C++ Build page + - Set the Optimization Level to -Os + +In BSP project: + - In the C/C++ Build page + + - Set the Optimization Level to -Os + + - Define the preprocessor option ALT_NO_INSTRUCTION_EMULATION + This removes software exception handling, which means that you cannot + run code compiled for Nios II cpu with a hardware multiplier on a core + without a the multiply unit. Check the Nios II Software Developers + Manual for more details. + + - In the BSP: + - Set Periodic system timer and Timestamp timer to none + This prevents the automatic inclusion of the timer driver. + + - Set Max file descriptors to 4 + This reduces the size of the file handle pool. + + - Uncheck Clean exit (flush buffers) + This removes the call to exit, and when main is exitted instead of + calling exit the software will just spin in a loop. + + - Check Small C library + This uses a reduced functionality C library, which lacks + support for buffering, file IO, floating point and getch(), etc. + Check the Nios II Software Developers Manual for a complete list. + + - Check Reduced device drivers + This uses reduced functionality drivers if they're available. For the + standard design this means you get polled UART and JTAG UART drivers, + no support for the LCD driver and you lose the ability to program + CFI compliant flash devices. + + +PERIPHERALS USED: +This example exercises the following peripherals: +- STDOUT device (UART or JTAG UART) + +SOFTWARE SOURCE FILES: +This example includes the following software source files: +- small_hello_world.c: + +BOARD/HOST REQUIREMENTS: +This example requires only a JTAG connection with a Nios Development board. If +the host communication settings are changed from JTAG UART (default) to use a +conventional UART, a serial cable between board DB-9 connector and the host is +required. diff --git a/software/qsys_tutorial_green/system/template.xml b/software/qsys_tutorial_green/system/template.xml new file mode 100644 index 0000000..b09e912 --- /dev/null +++ b/software/qsys_tutorial_green/system/template.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/software/qsys_tutorial_green_bsp/.cproject b/software/qsys_tutorial_green_bsp/.cproject new file mode 100644 index 0000000..b67cdf8 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/.cproject @@ -0,0 +1,481 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/software/qsys_tutorial_green_bsp/.project b/software/qsys_tutorial_green_bsp/.project new file mode 100644 index 0000000..4754241 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/.project @@ -0,0 +1,85 @@ + + + qsys_tutorial_green_bsp + + + + + + org.eclipse.cdt.managedbuilder.core.genmakebuilder + clean,full,incremental, + + + ?name? + + + + org.eclipse.cdt.make.core.append_environment + true + + + org.eclipse.cdt.make.core.autoBuildTarget + all + + + org.eclipse.cdt.make.core.buildArguments + + + + org.eclipse.cdt.make.core.buildCommand + make + + + org.eclipse.cdt.make.core.buildLocation + ${workspace_loc://qsys_tutorial_green_bsp} + + + org.eclipse.cdt.make.core.cleanBuildTarget + clean + + + org.eclipse.cdt.make.core.contents + org.eclipse.cdt.make.core.activeConfigSettings + + + org.eclipse.cdt.make.core.enableAutoBuild + false + + + org.eclipse.cdt.make.core.enableCleanBuild + true + + + org.eclipse.cdt.make.core.enableFullBuild + true + + + org.eclipse.cdt.make.core.fullBuildTarget + all + + + org.eclipse.cdt.make.core.stopOnError + true + + + org.eclipse.cdt.make.core.useDefaultBuildCmd + true + + + + + org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder + full,incremental, + + + + + + org.eclipse.cdt.core.cnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.managedbuilder.core.ScannerConfigNature + org.eclipse.cdt.core.ccnature + com.altera.sbtgui.project.SBTGUINature + com.altera.sbtgui.project.SBTGUIBspNature + + diff --git a/software/qsys_tutorial_green_bsp/HAL/inc/alt_types.h b/software/qsys_tutorial_green_bsp/HAL/inc/alt_types.h new file mode 100644 index 0000000..d02f171 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/HAL/inc/alt_types.h @@ -0,0 +1,54 @@ +#ifndef __ALT_TYPES_H__ +#define __ALT_TYPES_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/* + * Don't declare these typedefs if this file is included by assembly source. + */ +#ifndef ALT_ASM_SRC +typedef signed char alt_8; +typedef unsigned char alt_u8; +typedef signed short alt_16; +typedef unsigned short alt_u16; +typedef signed long alt_32; +typedef unsigned long alt_u32; +typedef long long alt_64; +typedef unsigned long long alt_u64; +#endif + +#define ALT_INLINE __inline__ +#define ALT_ALWAYS_INLINE __attribute__ ((always_inline)) +#define ALT_WEAK __attribute__((weak)) + +#endif /* __ALT_TYPES_H__ */ diff --git a/software/qsys_tutorial_green_bsp/HAL/inc/altera_nios2_qsys_irq.h b/software/qsys_tutorial_green_bsp/HAL/inc/altera_nios2_qsys_irq.h new file mode 100644 index 0000000..6629ec9 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/HAL/inc/altera_nios2_qsys_irq.h @@ -0,0 +1,80 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2009 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/* + * Support for the Nios II internal interrupt controller. + */ + +#ifndef __ALT_NIOS2_QSYS_IRQ_H__ +#define __ALT_NIOS2_QSYS_IRQ_H__ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * The macro ALTERA_NIOS2_IRQ_INSTANCE is used by the alt_irq_init() + * function in the auto-generated file alt_sys_init.c to create an + * instance of this interrupt controller device driver state if this + * module contains an interrupt controller. + * Only one instance of a Nios II is allowed so this macro is just empty. + */ + +#define ALTERA_NIOS2_QSYS_IRQ_INSTANCE(name, state) + +/* + * altera_nios2_irq_init() is called by the auto-generated function + * alt_irq_init() once for the Nios II if it contains an interrupt controller. + * The altera_nios2_irq_init() routine is called using the + * ALTERA_NIOS2_IRQ_INIT macro given below. + * + * This function initializes the internal interrupt controller + * so is not called if the Nios II contains an external interrupt + * controller port (because the internal interrupt controller + * is removed if this port is present). + */ + +extern void altera_nios2_qsys_irq_init( void ); + +/* + * The macro ALTERA_NIOS2_IRQ_INIT is used by the alt_irq_init() routine + * in the auto-generated file alt_sys_init.c to initialize an instance + * of the interrupt controller device driver state. + */ + +#define ALTERA_NIOS2_QSYS_IRQ_INIT(name, state) altera_nios2_qsys_irq_init() + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __ALT_NIOS2_QSYS_IRQ_H__ */ + diff --git a/software/qsys_tutorial_green_bsp/HAL/inc/io.h b/software/qsys_tutorial_green_bsp/HAL/inc/io.h new file mode 100644 index 0000000..362f103 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/HAL/inc/io.h @@ -0,0 +1,81 @@ +#ifndef __IO_H__ +#define __IO_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/* IO Header file for Nios II Toolchain */ + +#include "alt_types.h" +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +#ifndef SYSTEM_BUS_WIDTH +#error SYSTEM_BUS_WIDTH undefined +#endif + +/* Dynamic bus access functions */ + +#define __IO_CALC_ADDRESS_DYNAMIC(BASE, OFFSET) \ + ((void *)(((alt_u8*)BASE) + (OFFSET))) + +#define IORD_32DIRECT(BASE, OFFSET) \ + __builtin_ldwio (__IO_CALC_ADDRESS_DYNAMIC ((BASE), (OFFSET))) +#define IORD_16DIRECT(BASE, OFFSET) \ + __builtin_ldhuio (__IO_CALC_ADDRESS_DYNAMIC ((BASE), (OFFSET))) +#define IORD_8DIRECT(BASE, OFFSET) \ + __builtin_ldbuio (__IO_CALC_ADDRESS_DYNAMIC ((BASE), (OFFSET))) + +#define IOWR_32DIRECT(BASE, OFFSET, DATA) \ + __builtin_stwio (__IO_CALC_ADDRESS_DYNAMIC ((BASE), (OFFSET)), (DATA)) +#define IOWR_16DIRECT(BASE, OFFSET, DATA) \ + __builtin_sthio (__IO_CALC_ADDRESS_DYNAMIC ((BASE), (OFFSET)), (DATA)) +#define IOWR_8DIRECT(BASE, OFFSET, DATA) \ + __builtin_stbio (__IO_CALC_ADDRESS_DYNAMIC ((BASE), (OFFSET)), (DATA)) + +/* Native bus access functions */ + +#define __IO_CALC_ADDRESS_NATIVE(BASE, REGNUM) \ + ((void *)(((alt_u8*)BASE) + ((REGNUM) * (SYSTEM_BUS_WIDTH/8)))) + +#define IORD(BASE, REGNUM) \ + __builtin_ldwio (__IO_CALC_ADDRESS_NATIVE ((BASE), (REGNUM))) +#define IOWR(BASE, REGNUM, DATA) \ + __builtin_stwio (__IO_CALC_ADDRESS_NATIVE ((BASE), (REGNUM)), (DATA)) + +#ifdef __cplusplus +} +#endif + +#endif /* __IO_H__ */ diff --git a/software/qsys_tutorial_green_bsp/HAL/inc/nios2.h b/software/qsys_tutorial_green_bsp/HAL/inc/nios2.h new file mode 100644 index 0000000..72cefba --- /dev/null +++ b/software/qsys_tutorial_green_bsp/HAL/inc/nios2.h @@ -0,0 +1,230 @@ +#ifndef __NIOS2_H__ +#define __NIOS2_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2008 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/* + * This header provides processor specific macros for accessing the Nios2 + * control registers. + */ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * Macros for accessing selected processor registers + */ + +#define NIOS2_READ_ET(et) \ + do { __asm ("mov %0, et" : "=r" (et) ); } while (0) + +#define NIOS2_WRITE_ET(et) \ + do { __asm volatile ("mov et, %z0" : : "rM" (et)); } while (0) + +#define NIOS2_READ_SP(sp) \ + do { __asm ("mov %0, sp" : "=r" (sp) ); } while (0) + +/* + * Macros for useful processor instructions + */ + +#define NIOS2_BREAK() \ + do { __asm volatile ("break"); } while (0) + +#define NIOS2_REPORT_STACK_OVERFLOW() \ + do { __asm volatile("break 3"); } while (0) + +/* + * Macros for accessing the control registers. + */ + +#define NIOS2_READ_STATUS(dest) \ + do { dest = __builtin_rdctl(0); } while (0) + +#define NIOS2_WRITE_STATUS(src) \ + do { __builtin_wrctl(0, src); } while (0) + +#define NIOS2_READ_ESTATUS(dest) \ + do { dest = __builtin_rdctl(1); } while (0) + +#define NIOS2_READ_BSTATUS(dest) \ + do { dest = __builtin_rdctl(2); } while (0) + +#define NIOS2_READ_IENABLE(dest) \ + do { dest = __builtin_rdctl(3); } while (0) + +#define NIOS2_WRITE_IENABLE(src) \ + do { __builtin_wrctl(3, src); } while (0) + +#define NIOS2_READ_IPENDING(dest) \ + do { dest = __builtin_rdctl(4); } while (0) + +#define NIOS2_READ_CPUID(dest) \ + do { dest = __builtin_rdctl(5); } while (0) + + +/* + * Macros for accessing extra exception registers. These + * are always enabled wit the MPU or MMU, and optionally + * with other advanced exception types/ + */ +#define NIOS2_READ_EXCEPTION(dest) \ + do { dest = __builtin_rdctl(7); } while (0) + +#define NIOS2_READ_BADADDR(dest) \ + do { dest = __builtin_rdctl(12); } while (0) + + +/* + * Macros for accessing control registers for MPU + * operation. These should not be used unless the + * MPU is enabled. + * + * The config register may be augmented for future + * enhancements. For now, only MPU support is provided. + */ +/* Config register */ +#define NIOS2_WRITE_CONFIG(src) \ + do { __builtin_wrctl(13, src); } while (0) + +#define NIOS2_READ_CONFIG(dest) \ + do { dest = __builtin_rdctl(13); } while (0) + +/* MPU Base Address Register */ +#define NIOS2_WRITE_MPUBASE(src) \ + do { __builtin_wrctl(14, src); } while (0) + +#define NIOS2_READ_MPUBASE(dest) \ + do { dest = __builtin_rdctl(14); } while (0) + +/* MPU Access Register */ +#define NIOS2_WRITE_MPUACC(src) \ + do { __builtin_wrctl(15, src); } while (0) + +#define NIOS2_READ_MPUACC(dest) \ + do { dest = __builtin_rdctl(15); } while (0) + + +/* + * Nios II control registers that are always present + */ +#define NIOS2_STATUS status +#define NIOS2_ESTATUS estatus +#define NIOS2_BSTATUS bstatus +#define NIOS2_IENABLE ienable +#define NIOS2_IPENDING ipending +#define NIOS2_CPUID cpuid + +/* + * STATUS, BSTATUS, ESTATUS, and SSTATUS fields. + * The presence of fields is a function of the Nios II configuration. + */ +#define NIOS2_STATUS_PIE_MSK (0x00000001) +#define NIOS2_STATUS_PIE_OFST (0) +#define NIOS2_STATUS_U_MSK (0x00000002) +#define NIOS2_STATUS_U_OFST (1) +#define NIOS2_STATUS_EH_MSK (0x00000004) +#define NIOS2_STATUS_EH_OFST (2) +#define NIOS2_STATUS_IH_MSK (0x00000008) +#define NIOS2_STATUS_IH_OFST (3) +#define NIOS2_STATUS_IL_MSK (0x000003f0) +#define NIOS2_STATUS_IL_OFST (4) +#define NIOS2_STATUS_CRS_MSK (0x0000fc00) +#define NIOS2_STATUS_CRS_OFST (10) +#define NIOS2_STATUS_PRS_MSK (0x003f0000) +#define NIOS2_STATUS_PRS_OFST (16) +#define NIOS2_STATUS_NMI_MSK (0x00400000) +#define NIOS2_STATUS_NMI_OFST (22) +#define NIOS2_STATUS_RSIE_MSK (0x00800000) +#define NIOS2_STATUS_RSIE_OFST (23) +#define NIOS2_STATUS_SRS_MSK (0x80000000) +#define NIOS2_STATUS_SRS_OFST (31) + +/* + * Bit masks & offsets available with extra exceptions support + */ + +/* Exception register */ +#define NIOS2_EXCEPTION_REG_CAUSE_MASK (0x0000007c) +#define NIOS2_EXCEPTION_REG_CAUSE_OFST (2) + +/* + * Bit masks & offsets for MPU support + * + * All bit-masks are expressed relative to the position + * of the data with a register. To read data that is LSB- + * aligned, the register read data should be masked, then + * right-shifted by the designated "OFST" macro value. The + * opposite should be used for register writes when starting + * with LSB-aligned data. + */ + +/* Config register */ +#define NIOS2_CONFIG_REG_PE_MASK (0x00000001) +#define NIOS2_CONFIG_REG_PE_OFST (0) +#define NIOS2_CONFIG_REG_ANI_MASK (0x00000002) +#define NIOS2_CONFIG_REG_ANI_OFST (1) + +/* MPU Base Address Register */ +#define NIOS2_MPUBASE_D_MASK (0x00000001) +#define NIOS2_MPUBASE_D_OFST (0) +#define NIOS2_MPUBASE_INDEX_MASK (0x0000003e) +#define NIOS2_MPUBASE_INDEX_OFST (1) +#define NIOS2_MPUBASE_BASE_ADDR_MASK (0xffffffc0) +#define NIOS2_MPUBASE_BASE_ADDR_OFST (6) + +/* MPU Access Register */ +#define NIOS2_MPUACC_LIMIT_MASK (0xffffffc0) +#define NIOS2_MPUACC_LIMIT_OFST (6) +#define NIOS2_MPUACC_MASK_MASK (0xffffffc0) +#define NIOS2_MPUACC_MASK_OFST (6) +#define NIOS2_MPUACC_C_MASK (0x00000020) +#define NIOS2_MPUACC_C_OFST (5) +#define NIOS2_MPUACC_PERM_MASK (0x0000001c) +#define NIOS2_MPUACC_PERM_OFST (2) +#define NIOS2_MPUACC_RD_MASK (0x00000002) +#define NIOS2_MPUACC_RD_OFST (1) +#define NIOS2_MPUACC_WR_MASK (0x00000001) +#define NIOS2_MPUACC_WR_OFST (0) + +/* + * Number of available IRQs in internal interrupt controller. + */ +#define NIOS2_NIRQ 32 + + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __NIOS2_H__ */ diff --git a/software/qsys_tutorial_green_bsp/HAL/inc/os/alt_flag.h b/software/qsys_tutorial_green_bsp/HAL/inc/os/alt_flag.h new file mode 100644 index 0000000..b9b4605 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/HAL/inc/os/alt_flag.h @@ -0,0 +1,98 @@ +#ifndef __ALT_FLAG_H__ +#define __ALT_FLAG_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +/* + * This header provides macro definitions that can be used to create and use + * uc/OS-II style event flags. These macros can be used in both a uC/OS-II based + * environment, and a single threaded HAL based environment. + * + * The motivation for these macros is to allow code to be developed which is + * thread safe under uC/OS-II, but incurs no additional overhead when used in a + * single threaded HAL environment. + * + * In the case of a single threaded HAL environment, they compile to + * "do nothing" directives, which ensures they do not contribute to the final + * executable. + * + * The following macros are available: + * + * ALT_FLAG_GRP - Create a flag group instance. + * ALT_EXTERN_FLAG_GRP - Create a reference to an external flag group instance. + * ALT_STATIC_FLAG_GRP - Create a static flag group instance. + * ALT_FLAG_CREATE - Initialise a flag group. + * ALT_FLAG_PEND - Pend on a flag group. + * ALT_FLAG_POST - Set a flag condition. + + * + * Input arguments and return codes are all consistant with the equivalent + * uC/OS-II function. + * + * It's important to be careful in the use of the macros: ALT_FLAG_GRP, + * ALT_EXTERN_FLAG_GRP, and ALT_STATIC_FLAG_GRP. In these three cases the + * semi-colon is included in the macro definition; so, for example, you should + * use: + * + * ALT_FLAG_GRP(mygroup) + * + * not: + * + * ALT_FLAG_GRP(mygroup); + * + * The inclusion of the semi-colon has been necessary to ensure the macros can + * compile with no warnings when used in a single threaded HAL environment. + * + */ + +#include "priv/alt_no_error.h" + +#define ALT_FLAG_GRP(group) +#define ALT_EXTERN_FLAG_GRP(group) +#define ALT_STATIC_FLAG_GRP(group) + +#define ALT_FLAG_CREATE(group, flags) alt_no_error () +#define ALT_FLAG_PEND(group, flags, wait_type, timeout) alt_no_error () +#define ALT_FLAG_POST(group, flags, opt) alt_no_error () + +#ifndef ALT_SINGLE_THREADED +#define ALT_SINGLE_THREADED +#endif + +#endif /* __ALT_FLAG_H__ */ diff --git a/software/qsys_tutorial_green_bsp/HAL/inc/os/alt_hooks.h b/software/qsys_tutorial_green_bsp/HAL/inc/os/alt_hooks.h new file mode 100644 index 0000000..9054e3f --- /dev/null +++ b/software/qsys_tutorial_green_bsp/HAL/inc/os/alt_hooks.h @@ -0,0 +1,61 @@ +#ifndef __ALT_HOOKS_H__ +#define __ALT_HOOKS_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +/* + * This header provides "do-nothing" macro definitions for operating system + * hooks within the HAL. The O/S component can override these to provide it's + * own implementation. + */ + +#define ALT_OS_TIME_TICK() while(0) +#define ALT_OS_INIT() while(0) +#define ALT_OS_STOP() while(0) + +/* Call from assembly code */ +#define ALT_OS_INT_ENTER_ASM +#define ALT_OS_INT_EXIT_ASM + +/* Call from C code */ +#define ALT_OS_INT_ENTER() while(0) +#define ALT_OS_INT_EXIT() while(0) + + +#endif /* __ALT_HOOKS_H__ */ diff --git a/software/qsys_tutorial_green_bsp/HAL/inc/os/alt_sem.h b/software/qsys_tutorial_green_bsp/HAL/inc/os/alt_sem.h new file mode 100644 index 0000000..753943e --- /dev/null +++ b/software/qsys_tutorial_green_bsp/HAL/inc/os/alt_sem.h @@ -0,0 +1,96 @@ +#ifndef __ALT_SEM_H__ +#define __ALT_SEM_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +/* + * This header provides macro definitions that can be used to create and use + * semaphores. These macros can be used in both a uC/OS-II based environment, + * and a single threaded HAL based environment. + * + * The motivation for these macros is to allow code to be developed which is + * thread safe under uC/OS-II, but incurs no additional overhead when used in a + * single threaded HAL environment. + * + * In the case of a single threaded HAL environment, they compile to + * "do nothing" directives, which ensures they do not contribute to the final + * executable. + * + * The following macros are available: + * + * ALT_SEM - Create a semaphore instance. + * ALT_EXTERN_SEM - Create a reference to an external semaphore instance. + * ALT_STATIC_SEM - Create a static semaphore instance. + * ALT_SEM_CREATE - Initialise a semaphore. + * ALT_SEM_PEND - Pend on a semaphore. + * ALT_SEM_POST - Increment a semaphore. + * + * Input arguments and return codes are all consistant with the equivalent + * uC/OS-II function. + * + * It's important to be careful in the use of the macros: ALT_SEM, + * ALT_EXTERN_SEM, and ALT_STATIC_SEM. In these three cases the semi-colon is + * included in the macro definition; so, for example, you should use: + * + * ALT_SEM(mysem) + * + * not: + * + * ALT_SEM(mysem); + * + * The inclusion of the semi-colon has been necessary to ensure the macros can + * compile with no warnings when used in a single threaded HAL environment. + * + */ + +#include "priv/alt_no_error.h" + +#define ALT_SEM(sem) +#define ALT_EXTERN_SEM(sem) +#define ALT_STATIC_SEM(sem) + +#define ALT_SEM_CREATE(sem, value) alt_no_error () +#define ALT_SEM_PEND(sem, timeout) alt_no_error () +#define ALT_SEM_POST(sem) alt_no_error () + +#ifndef ALT_SINGLE_THREADED +#define ALT_SINGLE_THREADED +#endif + +#endif /* __ALT_SEM_H__ */ diff --git a/software/qsys_tutorial_green_bsp/HAL/inc/os/alt_syscall.h b/software/qsys_tutorial_green_bsp/HAL/inc/os/alt_syscall.h new file mode 100644 index 0000000..507c6aa --- /dev/null +++ b/software/qsys_tutorial_green_bsp/HAL/inc/os/alt_syscall.h @@ -0,0 +1,75 @@ +#ifndef __ALT_SYSCALL_H__ +#define __ALT_SYSCALL_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/* + * The macros defined in this file are used to provide the function names used + * for the HAL 'UNIX style' interface, e.g. read(), write() etc. + * + * Operating systems which are ported to the HAL can provide their own + * version of this file, which will be used in preference. This allows + * the operating system to provide it's own implementation of the top level + * system calls, while retaining the HAL functions under a different name, + * for example, alt_read(), alt_write() etc. + */ + +#define ALT_CLOSE close +#define ALT_ENVIRON environ +#define ALT_EXECVE execve +#define ALT_EXIT _exit +#define ALT_FCNTL fcntl +#define ALT_FORK fork +#define ALT_FSTAT fstat +#define ALT_GETPID getpid +#define ALT_GETTIMEOFDAY gettimeofday +#define ALT_IOCTL ioctl +#define ALT_ISATTY isatty +#define ALT_KILL kill +#define ALT_LINK link +#define ALT_LSEEK lseek +#define ALT_OPEN open +#define ALT_READ read +#define ALT_RENAME _rename +#define ALT_SBRK sbrk +#define ALT_SETTIMEOFDAY settimeofday +#define ALT_STAT stat +#define ALT_UNLINK unlink +#define ALT_USLEEP usleep +#define ALT_WAIT wait +#define ALT_WRITE write +#define ALT_TIMES times + +/* + * + */ + +#endif /* __ALT_SYSCALL_H__ */ diff --git a/software/qsys_tutorial_green_bsp/HAL/inc/priv/alt_alarm.h b/software/qsys_tutorial_green_bsp/HAL/inc/priv/alt_alarm.h new file mode 100644 index 0000000..45d6a0e --- /dev/null +++ b/software/qsys_tutorial_green_bsp/HAL/inc/priv/alt_alarm.h @@ -0,0 +1,101 @@ +#ifndef __ALT_PRIV_ALARM_H__ +#define __ALT_PRIV_ALARM_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#include "alt_types.h" + +/* + * This header provides the internal defenitions required by the public + * interface alt_alarm.h. These variables and structures are not guaranteed to + * exist in future implementations of the HAL. + */ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * "alt_alarm_s" is a structure type used to maintain lists of alarm callback + * functions. + */ + +struct alt_alarm_s +{ + alt_llist llist; /* linked list */ + alt_u32 time; /* time in system ticks of the callback */ + alt_u32 (*callback) (void* context); /* callback function. The return + * value is the period for the next callback; where + * zero indicates that the alarm should be removed + * from the list. + */ + alt_u8 rollover; /* set when desired alarm time + current time causes + overflow, to prevent premature alarm */ + void* context; /* Argument for the callback */ +}; + +/* + * "_alt_tick_rate" is a global variable used to store the system clock rate + * in ticks per second. This is initialised to zero, which coresponds to there + * being no system clock available. + * + * It is then set to it's final value by the system clock driver through a call + * to alt_sysclk_init(). + */ + +extern alt_u32 _alt_tick_rate; + +/* + * "_alt_nticks" is a global variable which records the elapsed number of + * system clock ticks since the last call to settimeofday() or since reset if + * settimeofday() has not been called. + */ + +extern volatile alt_u32 _alt_nticks; + +/* The list of registered alarms. */ + +extern alt_llist alt_alarm_list; + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_PRIV_ALARM_H__ */ diff --git a/software/qsys_tutorial_green_bsp/HAL/inc/priv/alt_busy_sleep.h b/software/qsys_tutorial_green_bsp/HAL/inc/priv/alt_busy_sleep.h new file mode 100644 index 0000000..b1af849 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/HAL/inc/priv/alt_busy_sleep.h @@ -0,0 +1,35 @@ +#ifndef __ALT_BUSY_SLEEP_H +#define __ALT_BUSY_SLEEP_H + +/* + * Copyright (c) 2003 Altera Corporation, San Jose, California, USA. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ + +/* + * The function alt_busy_sleep provides a busy loop implementation of usleep. + * This is used to provide usleep for the standalone HAL, or when the timer is + * unavailable in uC/OS-II. + */ + +extern unsigned int alt_busy_sleep (unsigned int us); + +#endif /* __ALT_BUSY_SLEEP_H */ diff --git a/software/qsys_tutorial_green_bsp/HAL/inc/priv/alt_dev_llist.h b/software/qsys_tutorial_green_bsp/HAL/inc/priv/alt_dev_llist.h new file mode 100644 index 0000000..451b063 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/HAL/inc/priv/alt_dev_llist.h @@ -0,0 +1,77 @@ +#ifndef __ALT_DEV_LLIST_H__ +#define __ALT_DEV_LLIST_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#include "sys/alt_llist.h" +#include "alt_types.h" + +/* + * This header provides the internal defenitions required to control file + * access. These variables and functions are not guaranteed to exist in + * future implementations of the HAL. + */ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * The alt_dev_llist is an internal structure used to form a common base + * class for all device types. The use of this structure allows common code + * to be used to manipulate the various device lists. + */ + +typedef struct { + alt_llist llist; + const char* name; +} alt_dev_llist; + +/* + * + */ + +extern int alt_dev_llist_insert (alt_dev_llist* dev, alt_llist* list); + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_DEV_LLIST_H__ */ diff --git a/software/qsys_tutorial_green_bsp/HAL/inc/priv/alt_exception_handler_registry.h b/software/qsys_tutorial_green_bsp/HAL/inc/priv/alt_exception_handler_registry.h new file mode 100644 index 0000000..c6905fa --- /dev/null +++ b/software/qsys_tutorial_green_bsp/HAL/inc/priv/alt_exception_handler_registry.h @@ -0,0 +1,39 @@ +#ifndef __ALT_EXCEPTION_HANDLER_REGISTRY_H__ +#define __ALT_EXCEPTION_HANDLER_REGISTRY_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2008 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ +#include "sys/alt_exceptions.h" + +/* Function pointer to exception callback routine */ +extern alt_exception_result (*alt_instruction_exception_handler) + (alt_exception_cause, alt_u32, alt_u32); + +#endif /* __ALT_EXCEPTION_HANDLER_REGISTRY_H__ */ diff --git a/software/qsys_tutorial_green_bsp/HAL/inc/priv/alt_file.h b/software/qsys_tutorial_green_bsp/HAL/inc/priv/alt_file.h new file mode 100644 index 0000000..2c3e843 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/HAL/inc/priv/alt_file.h @@ -0,0 +1,179 @@ +#ifndef __ALT_FILE_H__ +#define __ALT_FILE_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#include "sys/alt_dev.h" +#include "sys/alt_llist.h" +#include "os/alt_sem.h" + +#include "alt_types.h" + +/* + * This header provides the internal defenitions required to control file + * access. These variables and functions are not guaranteed to exist in + * future implementations of the HAL. + */ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * The function alt_find_dev() is used to search the device list "list" to + * locate a device named "name". If a match is found, then a pointer to the + * device is returned, otherwise NULL is returned. + */ + +extern alt_dev* alt_find_dev (const char* name, alt_llist* list); + +/* + * alt_find_file() is used to search the list of registered file systems to + * find the filesystem that the file named "name" belongs to. If a match is + * found, then a pointer to the filesystems alt_dev structure is returned, + * otherwise NULL is returned. + * + * Note that a match does not indicate that the file exists, only that a + * filesystem exists that is registered for a partition that could contain + * the file. The filesystems open() function would need to be called in order + * to determine if the file exists. + */ + +extern alt_dev* alt_find_file (const char* name); + +/* + * alt_get_fd() is used to allocate a file descriptor for the device or + * filesystem "dev". A negative return value indicates an error, otherwise the + * return value is the index of the file descriptor within the file descriptor + * pool. + */ + +extern int alt_get_fd (alt_dev* dev); + +/* + * alt_release_fd() is called to free the file descriptor with index "fd". + */ + +extern void alt_release_fd (int fd); + +/* + * alt_fd_lock() is called by ioctl() to mark the file descriptor "fd" as + * being open for exclusive access. Subsequent calls to open() for the device + * associated with "fd" will fail. A device is unlocked by either calling + * close() for "fd", or by an alternate call to ioctl() (see ioctl.c for + * details). + */ + +extern int alt_fd_lock (alt_fd* fd); + +/* + * alt_fd_unlock() is called by ioctl() to unlock a descriptor previously + * locked by a call to alt_fd_lock(). + */ + +extern int alt_fd_unlock (alt_fd* fd); + +/* + * "alt_fd_list" is the pool of file descriptors. + */ + +extern alt_fd alt_fd_list[]; + +/* + * flags used by alt_fd. + * + * ALT_FD_EXCL is used to mark a file descriptor as locked for exclusive + * access, i.e. further calls to open() for the associated device should + * fail. + * + * ALT_FD_DEV marks a dile descriptor as belonging to a device as oposed to a + * filesystem. + */ + +#define ALT_FD_EXCL 0x80000000 +#define ALT_FD_DEV 0x40000000 + +#define ALT_FD_FLAGS_MASK (ALT_FD_EXCL | ALT_FD_DEV) + +/* + * "alt_dev_list" is the head of the linked list of registered devices. + */ + +extern alt_llist alt_dev_list; + +/* + * "alt_fs_list" is the head of the linked list of registered filesystems. + */ + +extern alt_llist alt_fs_list; + +/* + * "alt_fd_list_lock" is a semaphore used to ensure that access to the pool + * of file descriptors is thread safe. + */ + +ALT_EXTERN_SEM(alt_fd_list_lock) + +/* + * "alt_max_fd" is a 'high water mark'. It indicates the highest file + * descriptor allocated. Use of this can save searching the entire pool + * for active file descriptors, which helps avoid contention on access + * to the file descriptor pool. + */ + +extern alt_32 alt_max_fd; + +/* + * alt_io_redirect() is called at startup to redirect stdout, stdin, and + * stderr to the devices named in the input arguments. By default these streams + * are directed at /dev/null, and are then redirected using this function once + * all of the devices have been registered within the system. + */ + +extern void alt_io_redirect(const char* stdout_dev, + const char* stdin_dev, + const char* stderr_dev); + + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_FILE_H__ */ diff --git a/software/qsys_tutorial_green_bsp/HAL/inc/priv/alt_iic_isr_register.h b/software/qsys_tutorial_green_bsp/HAL/inc/priv/alt_iic_isr_register.h new file mode 100644 index 0000000..a0cb01c --- /dev/null +++ b/software/qsys_tutorial_green_bsp/HAL/inc/priv/alt_iic_isr_register.h @@ -0,0 +1,39 @@ +#ifndef __ALT_IIC_ISR_REGISTER_H_ +#define __ALT_IIC_ISR_REGISTER_H_ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2009 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ +#include "alt_types.h" +#include "sys/alt_irq.h" + +extern int alt_iic_isr_register(alt_u32 ic_id, alt_u32 irq, alt_isr_func isr, + void *isr_context, void *flags); + +#endif /* __ALT_IIC_ISR_REGISTER_H_ */ diff --git a/software/qsys_tutorial_green_bsp/HAL/inc/priv/alt_irq_table.h b/software/qsys_tutorial_green_bsp/HAL/inc/priv/alt_irq_table.h new file mode 100644 index 0000000..694ef06 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/HAL/inc/priv/alt_irq_table.h @@ -0,0 +1,59 @@ +#ifndef __ALT_IRQ_TABLE_H__ +#define __ALT_IRQ_TABLE_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2009 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +/* + * Definition of a table describing each interrupt handler. The index into + * the array is the interrupt id associated with the handler. + * + * When an interrupt occurs, the associated handler is called with + * the argument stored in the context member. + * + * The table is physically created in alt_irq_handler.c + */ +extern struct ALT_IRQ_HANDLER +{ +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT + void (*handler)(void*); +#else + void (*handler)(void*, alt_u32); +#endif + void *context; +} alt_irq[ALT_NIRQ]; + +#endif diff --git a/software/qsys_tutorial_green_bsp/HAL/inc/priv/alt_legacy_irq.h b/software/qsys_tutorial_green_bsp/HAL/inc/priv/alt_legacy_irq.h new file mode 100644 index 0000000..c7aec02 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/HAL/inc/priv/alt_legacy_irq.h @@ -0,0 +1,158 @@ +#ifndef __ALT_LEGACY_IRQ_H__ +#define __ALT_LEGACY_IRQ_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2009 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/* + * This file provides prototypes and inline implementations of certain routines + * used by the legacy interrupt API. Do not include this in your driver or + * application source files, use "sys/alt_irq.h" instead to access the proper + * public API. + */ + +#include +#include "system.h" + +#ifndef NIOS2_EIC_PRESENT + +#include "nios2.h" +#include "alt_types.h" + +#include "sys/alt_irq.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * alt_irq_register() can be used to register an interrupt handler. If the + * function is succesful, then the requested interrupt will be enabled upon + * return. + */ +extern int alt_irq_register (alt_u32 id, + void* context, + alt_isr_func handler); + +/* + * alt_irq_disable() disables the individual interrupt indicated by "id". + */ +static ALT_INLINE int ALT_ALWAYS_INLINE alt_irq_disable (alt_u32 id) +{ + alt_irq_context status; + extern volatile alt_u32 alt_irq_active; + + status = alt_irq_disable_all (); + + alt_irq_active &= ~(1 << id); + NIOS2_WRITE_IENABLE (alt_irq_active); + + alt_irq_enable_all(status); + + return 0; +} + +/* + * alt_irq_enable() enables the individual interrupt indicated by "id". + */ +static ALT_INLINE int ALT_ALWAYS_INLINE alt_irq_enable (alt_u32 id) +{ + alt_irq_context status; + extern volatile alt_u32 alt_irq_active; + + status = alt_irq_disable_all (); + + alt_irq_active |= (1 << id); + NIOS2_WRITE_IENABLE (alt_irq_active); + + alt_irq_enable_all(status); + + return 0; +} + +#ifndef ALT_EXCEPTION_STACK +/* + * alt_irq_initerruptable() should only be called from within an ISR. It is used + * to allow higer priority interrupts to interrupt the current ISR. The input + * argument, "priority", is the priority, i.e. interrupt number of the current + * interrupt. + * + * If this function is called, then the ISR is required to make a call to + * alt_irq_non_interruptible() before returning. The input argument to + * alt_irq_non_interruptible() is the return value from alt_irq_interruptible(). + * + * Care should be taken when using this pair of functions, since they increasing + * the system overhead associated with interrupt handling. + * + * If you are using an exception stack then nested interrupts won't work, so + * these functions are not available in that case. + */ +static ALT_INLINE alt_u32 ALT_ALWAYS_INLINE alt_irq_interruptible (alt_u32 priority) +{ + extern volatile alt_u32 alt_priority_mask; + extern volatile alt_u32 alt_irq_active; + + alt_u32 old_priority; + + old_priority = alt_priority_mask; + alt_priority_mask = (1 << priority) - 1; + + NIOS2_WRITE_IENABLE (alt_irq_active & alt_priority_mask); + + NIOS2_WRITE_STATUS (1); + + return old_priority; +} + +/* + * See Comments above for alt_irq_interruptible() for an explanation of the use of this + * function. + */ +static ALT_INLINE void ALT_ALWAYS_INLINE alt_irq_non_interruptible (alt_u32 mask) +{ + extern volatile alt_u32 alt_priority_mask; + extern volatile alt_u32 alt_irq_active; + + NIOS2_WRITE_STATUS (0); + + alt_priority_mask = mask; + + NIOS2_WRITE_IENABLE (mask & alt_irq_active); +} +#endif /* ALT_EXCEPTION_STACK */ + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* NIOS2_EIC_PRESENT */ + +#endif /* __ALT_LEGACY_IRQ_H__ */ diff --git a/software/qsys_tutorial_green_bsp/HAL/inc/priv/alt_no_error.h b/software/qsys_tutorial_green_bsp/HAL/inc/priv/alt_no_error.h new file mode 100644 index 0000000..6143fc9 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/HAL/inc/priv/alt_no_error.h @@ -0,0 +1,77 @@ +#ifndef __ALT_NO_ERROR_H__ +#define __ALT_NO_ERROR_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#include "alt_types.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * alt_no_error() is a dummy function used by alt_sem.h and alt_flag.h. It + * substitutes for functions that have a return code by creating a function + * that always returns zero. + * + * This may seem a little obscure, but what happens is that the compiler can + * then optomise away the call to this function, and any code written which + * handles the error path (i.e. non zero return values). + * + * This allows code to be written which correctly use the uC/OS-II semaphore + * and flag utilities, without the use of those utilities impacting on + * excutables built for a single threaded HAL environment. + * + * This function is considered to be part of the internal implementation of + * the HAL, and should not be called directly by application code or device + * drivers. It is not guaranteed to be preserved in future versions of the + * HAL. + */ + +static ALT_INLINE int ALT_ALWAYS_INLINE alt_no_error (void) +{ + return 0; +} + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_NO_ERROR_H__ */ diff --git a/software/qsys_tutorial_green_bsp/HAL/inc/priv/nios2_gmon_data.h b/software/qsys_tutorial_green_bsp/HAL/inc/priv/nios2_gmon_data.h new file mode 100644 index 0000000..3f43f12 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/HAL/inc/priv/nios2_gmon_data.h @@ -0,0 +1,47 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ +#ifndef NIOS2_GMON_DATA_H +#define NIOS2_GMON_DATA_H + +#define GMON_DATA_SIG 0 +#define GMON_DATA_WORDS 1 +#define GMON_DATA_PROFILE_DATA 2 +#define GMON_DATA_PROFILE_LOWPC 3 +#define GMON_DATA_PROFILE_HIGHPC 4 +#define GMON_DATA_PROFILE_BUCKET 5 +#define GMON_DATA_PROFILE_RATE 6 +#define GMON_DATA_MCOUNT_START 7 +#define GMON_DATA_MCOUNT_LIMIT 8 + +#define GMON_DATA_SIZE 9 + +extern unsigned int alt_gmon_data[GMON_DATA_SIZE]; + +#endif diff --git a/software/qsys_tutorial_green_bsp/HAL/inc/sys/alt_alarm.h b/software/qsys_tutorial_green_bsp/HAL/inc/sys/alt_alarm.h new file mode 100644 index 0000000..68a2f5d --- /dev/null +++ b/software/qsys_tutorial_green_bsp/HAL/inc/sys/alt_alarm.h @@ -0,0 +1,126 @@ +#ifndef __ALT_ALARM_H__ +#define __ALT_ALARM_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#include "alt_llist.h" +#include "alt_types.h" + +#include "priv/alt_alarm.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * "alt_alarm" is a structure type used by applications to register an alarm + * callback function. An instance of this type must be passed as an input + * argument to alt_alarm_start(). The user is not responsible for initialising + * the contents of the instance. This is done by alt_alarm_start(). + */ + +typedef struct alt_alarm_s alt_alarm; + +/* + * alt_alarm_start() can be called by an application/driver in order to register + * a function for periodic callback at the system clock frequency. Be aware that + * this callback is likely to occur in interrupt context. + */ + +extern int alt_alarm_start (alt_alarm* the_alarm, + alt_u32 nticks, + alt_u32 (*callback) (void* context), + void* context); + +/* + * alt_alarm_stop() is used to unregister a callback. Alternatively the callback + * can return zero to unregister. + */ + +extern void alt_alarm_stop (alt_alarm* the_alarm); + +/* + * Obtain the system clock rate in ticks/s. + */ + +static ALT_INLINE alt_u32 ALT_ALWAYS_INLINE alt_ticks_per_second (void) +{ + return _alt_tick_rate; +} + +/* + * alt_sysclk_init() is intended to be only used by the system clock driver + * in order to initialise the value of the clock frequency. + */ + +static ALT_INLINE int ALT_ALWAYS_INLINE alt_sysclk_init (alt_u32 nticks) +{ + if (! _alt_tick_rate) + { + _alt_tick_rate = nticks; + return 0; + } + else + { + return -1; + } +} + +/* + * alt_nticks() returns the elapsed number of system clock ticks since reset. + */ + +static ALT_INLINE alt_u32 ALT_ALWAYS_INLINE alt_nticks (void) +{ + return _alt_nticks; +} + +/* + * alt_tick() should only be called by the system clock driver. This is used + * to notify the system that the system timer period has expired. + */ + +extern void alt_tick (void); + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_ALARM_H__ */ diff --git a/software/qsys_tutorial_green_bsp/HAL/inc/sys/alt_cache.h b/software/qsys_tutorial_green_bsp/HAL/inc/sys/alt_cache.h new file mode 100644 index 0000000..c4d8db9 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/HAL/inc/sys/alt_cache.h @@ -0,0 +1,117 @@ +#ifndef __ALT_CACHE_H__ +#define __ALT_CACHE_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003, 2007 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include + +#include "alt_types.h" + +/* + * alt_cache.h defines the processor specific functions for manipulating the + * cache. + */ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * alt_icache_flush() is called to flush the instruction cache for a memory + * region of length "len" bytes, starting at address "start". + */ + +extern void alt_icache_flush (void* start, alt_u32 len); + +/* + * alt_dcache_flush() is called to flush the data cache for a memory + * region of length "len" bytes, starting at address "start". + * Any dirty lines in the data cache are written back to memory. + */ + +extern void alt_dcache_flush (void* start, alt_u32 len); + +/* + * alt_dcache_flush() is called to flush the data cache for a memory + * region of length "len" bytes, starting at address "start". + * Any dirty lines in the data cache are NOT written back to memory. + */ + +extern void alt_dcache_flush_no_writeback (void* start, alt_u32 len); + +/* + * Flush the entire instruction cache. + */ + +extern void alt_icache_flush_all (void); + +/* + * Flush the entire data cache. + */ + +extern void alt_dcache_flush_all (void); + +/* + * Allocate a block of uncached memory. + */ + +extern volatile void* alt_uncached_malloc (size_t size); + +/* + * Free a block of uncached memory. + */ + +extern void alt_uncached_free (volatile void* ptr); + +/* + * Convert a pointer to a block of cached memory, into a block of + * uncached memory. + */ + +extern volatile void* alt_remap_uncached (void* ptr, alt_u32 len); + +/* + * Convert a pointer to a block of uncached memory, into a block of + * cached memory. + */ + +extern void* alt_remap_cached (volatile void* ptr, alt_u32 len); + +/* + * + */ + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_CACHE_H__ */ diff --git a/software/qsys_tutorial_green_bsp/HAL/inc/sys/alt_debug.h b/software/qsys_tutorial_green_bsp/HAL/inc/sys/alt_debug.h new file mode 100644 index 0000000..d9f9599 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/HAL/inc/sys/alt_debug.h @@ -0,0 +1,45 @@ +#ifndef __ALT_DEBUG_H__ +#define __ALT_DEBUG_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/* + * The ALT_DEVUG_ASSERT macro can be used to generate a debugger break + * from within software. The break is generated if "condition" evaluates to + * false. + */ + +#define ALT_DEBUG_ASSERT(condition) if (!condition) \ +{ \ + __asm__ volatile ("break"); \ +} + +#endif /* __ALT_DEBUG_H__ */ diff --git a/software/qsys_tutorial_green_bsp/HAL/inc/sys/alt_dev.h b/software/qsys_tutorial_green_bsp/HAL/inc/sys/alt_dev.h new file mode 100644 index 0000000..66c5e41 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/HAL/inc/sys/alt_dev.h @@ -0,0 +1,115 @@ +#ifndef __ALT_DEV_H__ +#define __ALT_DEV_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#include "system.h" +#include "sys/alt_llist.h" +#include "priv/alt_dev_llist.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * The value ALT_IRQ_NOT_CONNECTED is used to represent an unconnected + * interrupt line. It cannot evaluate to a valid interrupt number. + */ + +#define ALT_IRQ_NOT_CONNECTED (-1) + +typedef struct alt_dev_s alt_dev; + +struct stat; + +/* + * The file descriptor structure definition. + */ + +typedef struct alt_fd_s +{ + alt_dev* dev; + alt_u8* priv; + int fd_flags; +} alt_fd; + +/* + * The device structure definition. + */ + +struct alt_dev_s { + alt_llist llist; /* for internal use */ + const char* name; + int (*open) (alt_fd* fd, const char* name, int flags, int mode); + int (*close) (alt_fd* fd); + int (*read) (alt_fd* fd, char* ptr, int len); + int (*write) (alt_fd* fd, const char* ptr, int len); + int (*lseek) (alt_fd* fd, int ptr, int dir); + int (*fstat) (alt_fd* fd, struct stat* buf); + int (*ioctl) (alt_fd* fd, int req, void* arg); +}; + +/* + * Functions used to register device for access through the C standard + * library. + * + * The only difference between alt_dev_reg() and alt_fs_reg() is the + * interpretation that open() places on the device name. In the case of + * alt_dev_reg the device is assumed to be a particular character device, + * and so there must be an exact match in the name for open to succeed. + * In the case of alt_fs_reg() the name of the device is treated as the + * mount point for a directory, and so any call to open() where the name + * is the root of the device filename will succeed. + */ + +extern int alt_fs_reg (alt_dev* dev); + +static ALT_INLINE int alt_dev_reg (alt_dev* dev) +{ + extern alt_llist alt_dev_list; + + return alt_dev_llist_insert ((alt_dev_llist*) dev, &alt_dev_list); +} + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_DEV_H__ */ diff --git a/software/qsys_tutorial_green_bsp/HAL/inc/sys/alt_dma.h b/software/qsys_tutorial_green_bsp/HAL/inc/sys/alt_dma.h new file mode 100644 index 0000000..9f9b2ff --- /dev/null +++ b/software/qsys_tutorial_green_bsp/HAL/inc/sys/alt_dma.h @@ -0,0 +1,226 @@ +#ifndef __ALT_DMA_H__ +#define __ALT_DMA_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004-2005 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#include "sys/alt_dma_dev.h" +#include "alt_types.h" + +#include + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * This header contains the application side interface for accessing DMA + * resources. See alt_dma_dev.h for the dma device driver interface. + * + * The interface model treats a DMA transaction as being composed of two + * halves (read and write). + * + * The application can supply data for transmit using an "alt_dma_txchan" + * descriptor. Alternatively an "alt_dma_rxchan" descriptor can be used to + * receive data. + */ + +/* + * alt_dma_txchan_open() is used to obtain an "alt_dma_txchan" descriptor for + * a DMA transmit device. The name is the name of the associated physical + * device (e.g. "/dev/dma_0"). + * + * The return value will be NULL on failure, and non-NULL otherwise. + */ + +extern alt_dma_txchan alt_dma_txchan_open (const char* name); + +/* + * alt_dma_txchan_close() is provided so that an application can notify the + * system that it has finished with a given DMA transmit channel. This is only + * provided for completness. + */ + +static ALT_INLINE int alt_dma_txchan_close (alt_dma_txchan dma) +{ + return 0; +} + +/* + * alt_dma_txchan_send() posts a transmit request to a DMA transmit channel. + * The input arguments are: + * + * dma: the channel to use. + * from: a pointer to the start of the data to send. + * length: the length of the data to send in bytes. + * done: callback function that will be called once the data has been sent. + * handle: opaque value passed to "done". + * + * The return value will be negative if the request cannot be posted, and + * zero otherwise. + */ + +static ALT_INLINE int alt_dma_txchan_send (alt_dma_txchan dma, + const void* from, + alt_u32 length, + alt_txchan_done* done, + void* handle) +{ + return dma ? dma->dma_send (dma, + from, + length, + done, + handle) : -ENODEV; +} + +/* + * alt_dma_txchan_space() returns the number of tranmit requests that can be + * posted to the specified DMA transmit channel. + * + * A negative value indicates that the value could not be determined. + */ + +static ALT_INLINE int alt_dma_txchan_space (alt_dma_txchan dma) +{ + return dma ? dma->space (dma) : -ENODEV; +} + +/* + * alt_dma_txchan_ioctl() can be used to perform device specific I/O + * operations on the indicated DMA transmit channel. For example some drivers + * support options to control the width of the transfer operations. See + * alt_dma_dev.h for the list of generic requests. + * + * A negative return value indicates failure, otherwise the interpretation + * of the return value is request specific. + */ + +static ALT_INLINE int alt_dma_txchan_ioctl (alt_dma_txchan dma, + int req, + void* arg) +{ + return dma ? dma->ioctl (dma, req, arg) : -ENODEV; +} + +/* + * alt_dma_rxchan_open() is used to obtain an "alt_dma_rxchan" descriptor for + * a DMA receive channel. The name is the name of the associated physical + * device (e.g. "/dev/dma_0"). + * + * The return value will be NULL on failure, and non-NULL otherwise. + */ + +extern alt_dma_rxchan alt_dma_rxchan_open (const char* dev); + +/* + * alt_dma_rxchan_close() is provided so that an application can notify the + * system that it has finished with a given DMA receive channel. This is only + * provided for completness. + */ + +static ALT_INLINE int alt_dma_rxchan_close (alt_dma_rxchan dma) +{ + return 0; +} + +/* + * + */ + +/* + * alt_dma_rxchan_prepare() posts a receive request to a DMA receive channel. + * + * The input arguments are: + * + * dma: the channel to use. + * data: a pointer to the location that data is to be received to. + * len: the maximum length of the data to receive. + * done: callback function that will be called once the data has been + * received. + * handle: opaque value passed to "done". + * + * The return value will be negative if the request cannot be posted, and + * zero otherwise. + */ + +static ALT_INLINE int alt_dma_rxchan_prepare (alt_dma_rxchan dma, + void* data, + alt_u32 len, + alt_rxchan_done* done, + void* handle) +{ + return dma ? dma->prepare (dma, data, len, done, handle) : -ENODEV; +} + +/* + * alt_dma_rxchan_ioctl() can be used to perform device specific I/O + * operations on the indicated DMA receive channel. For example some drivers + * support options to control the width of the transfer operations. See + * alt_dma_dev.h for the list of generic requests. + * + * A negative return value indicates failure, otherwise the interpretation + * of the return value is request specific. + */ + +static ALT_INLINE int alt_dma_rxchan_ioctl (alt_dma_rxchan dma, + int req, + void* arg) +{ + return dma ? dma->ioctl (dma, req, arg) : -ENODEV; +} + +/* + * alt_dma_rxchan_depth() returns the depth of the receive FIFO used to store + * receive requests. + */ + +static ALT_INLINE alt_u32 alt_dma_rxchan_depth(alt_dma_rxchan dma) +{ + return dma->depth; +} + +/* + * + */ + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __ALT_DMA_H__ */ diff --git a/software/qsys_tutorial_green_bsp/HAL/inc/sys/alt_dma_dev.h b/software/qsys_tutorial_green_bsp/HAL/inc/sys/alt_dma_dev.h new file mode 100644 index 0000000..832463d --- /dev/null +++ b/software/qsys_tutorial_green_bsp/HAL/inc/sys/alt_dma_dev.h @@ -0,0 +1,200 @@ +#ifndef __ALT_DMA_DEV_H__ +#define __ALT_DMA_DEV_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004-2005 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#include "priv/alt_dev_llist.h" + +#include "alt_types.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * This header contains the device driver interface for accessing DMA + * resources. See alt_dma.h for the DMA application side interface. + * + * The interface model treats a DMA transaction as being composed of two + * halves (read and write). + * + * An "alt_dma_txchan_dev" is used to describe the device associated with a + * DMA transmit channel. An "alt_dma_rxchan_dev" is used to describe the + * device associated with a DMA receive channel. + */ + +/* + * List of generic ioctl requests that may be supported by a DMA device. + * + * ALT_DMA_RX_ONLY_ON: This causes a DMA channel to operate in a mode + * where only the receiver is under software control. + * The other side reads continously from a single + * location. The address to read is the argument to + * this request. + * ALT_DMA_RX_ONLY_OFF: Return to the default mode where both the receive + * and transmit sides of the DMA can be under software + * control. + * ALT_DMA_TX_ONLY_ON: This causes a DMA channel to operate in a mode + * where only the transmitter is under software control. + * The other side writes continously to a single + * location. The address to write to is the argument to + * this request. + * ALT_DMA_TX_ONLY_OFF: Return to the default mode where both the receive + * and transmit sides of the DMA can be under software + * control. + * ALT_DMA_SET_MODE_8: Transfer data in units of 8 bits. + * ALT_DMA_SET_MODE_16: Transfer data in units of 16 bits. + * ALT_DMA_SET_MODE_32: Transfer data in units of 32 bits. + * ALT_DMA_SET_MODE_64: Transfer data in units of 64 bits. + * ALT_DMA_SET_MODE_128: Transfer data in units of 128 bits. + * ALT_DMA_GET_MODE: Get the current transfer mode. + * + * The use of the macros: ALT_DMA_TX_STREAM_ON, ALT_DMA_TX_STREAM_OFF + * ALT_DMA_RX_STREAM_OFF and ALT_DMA_RX_STREAM_ON are depreciated. You should + * instead use the macros: ALT_DMA_RX_ONLY_ON, ALT_DMA_RX_ONLY_OFF, + * ALT_DMA_TX_ONLY_ON and ALT_DMA_TX_ONLY_OFF. + */ + +#define ALT_DMA_TX_STREAM_ON (0x1) +#define ALT_DMA_TX_STREAM_OFF (0x2) +#define ALT_DMA_RX_STREAM_ON (0x3) +#define ALT_DMA_RX_STREAM_OFF (0x4) +#define ALT_DMA_SET_MODE_8 (0x5) +#define ALT_DMA_SET_MODE_16 (0x6) +#define ALT_DMA_SET_MODE_32 (0x7) +#define ALT_DMA_SET_MODE_64 (0x8) +#define ALT_DMA_SET_MODE_128 (0x9) +#define ALT_DMA_GET_MODE (0xa) + +#define ALT_DMA_RX_ONLY_ON ALT_DMA_TX_STREAM_ON +#define ALT_DMA_RX_ONLY_OFF ALT_DMA_TX_STREAM_OFF +#define ALT_DMA_TX_ONLY_ON ALT_DMA_RX_STREAM_ON +#define ALT_DMA_TX_ONLY_OFF ALT_DMA_RX_STREAM_OFF + +/* + * + */ + +typedef struct alt_dma_txchan_dev_s alt_dma_txchan_dev; +typedef struct alt_dma_rxchan_dev_s alt_dma_rxchan_dev; + +typedef alt_dma_txchan_dev* alt_dma_txchan; +typedef alt_dma_rxchan_dev* alt_dma_rxchan; + +typedef void (alt_txchan_done)(void* handle); +typedef void (alt_rxchan_done)(void* handle, void* data); + +/* + * devices that provide a DMA transmit channel are required to provide an + * instance of the "alt_dma_txchan_dev" structure. + */ + +struct alt_dma_txchan_dev_s { + alt_llist llist; /* for internal use */ + const char* name; /* name of the device instance + * (e.g. "/dev/dma_0"). + */ + int (*space) (alt_dma_txchan dma); /* returns the maximum number of + * transmit requests that can be posted + */ + int (*dma_send) (alt_dma_txchan dma, + const void* from, + alt_u32 len, + alt_txchan_done* done, + void* handle); /* post a transmit request */ + int (*ioctl) (alt_dma_txchan dma, int req, void* arg); /* perform device + * specific I/O control. + */ +}; + +/* + * devices that provide a DMA receive channel are required to provide an + * instance of the "alt_dma_rxchan_dev" structure. + */ + +struct alt_dma_rxchan_dev_s { + alt_llist list; /* for internal use */ + const char* name; /* name of the device instance + * (e.g. "/dev/dma_0"). + */ + alt_u32 depth; /* maximum number of receive requests that + * can be posted. + */ + int (*prepare) (alt_dma_rxchan dma, + void* data, + alt_u32 len, + alt_rxchan_done* done, + void* handle); /* post a receive request */ + int (*ioctl) (alt_dma_rxchan dma, int req, void* arg); /* perform device + * specific I/O control. + */ +}; + +/* + * Register a DMA transmit channel with the system. + */ + +static ALT_INLINE int alt_dma_txchan_reg (alt_dma_txchan_dev* dev) +{ + extern alt_llist alt_dma_txchan_list; + + return alt_dev_llist_insert((alt_dev_llist*) dev, &alt_dma_txchan_list); +} + +/* + * Register a DMA receive channel with the system. + */ + +static ALT_INLINE int alt_dma_rxchan_reg (alt_dma_rxchan_dev* dev) +{ + extern alt_llist alt_dma_rxchan_list; + + return alt_dev_llist_insert((alt_dev_llist*) dev, &alt_dma_rxchan_list); +} + +/* + * + */ + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __ALT_DMA_DEV_H__ */ diff --git a/software/qsys_tutorial_green_bsp/HAL/inc/sys/alt_driver.h b/software/qsys_tutorial_green_bsp/HAL/inc/sys/alt_driver.h new file mode 100644 index 0000000..eb0f23b --- /dev/null +++ b/software/qsys_tutorial_green_bsp/HAL/inc/sys/alt_driver.h @@ -0,0 +1,168 @@ +#ifndef __ALT_DRIVER_H__ +#define __ALT_DRIVER_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/* + * Macros used to access a driver without HAL file descriptors. + */ + +/* + * ALT_MODULE_CLASS + * + * This macro returns the module class name for the specified module instance. + * It uses information in the system.h file. + * Neither the instance name or class name are quoted (so that they can + * be used with other pre-processor macros). + * + * Example: + * Assume the design has an instance of an altera_avalon_uart called uart1. + * Calling ALT_MODULE_CLASS(uart1) returns altera_avalon_uart. + */ + +#define ALT_MODULE_CLASS(instance) ALT_MODULE_CLASS_ ## instance + + +/* + * ALT_DRIVER_FUNC_NAME + * + * --> instance Instance name. + * --> func Function name. + * + * This macro returns the device driver function name of the specified + * module instance for the specified function name. + * + * Example: + * Assume the design has an instance of an altera_avalon_uart called uart1. + * Calling ALT_DRIVER_FUNC_NAME(uart1, write) returns + * altera_avalon_uart_write. + */ + +#define ALT_DRIVER_FUNC_NAME(instance, func) \ + ALT_DRIVER_FUNC_NAME1(ALT_MODULE_CLASS(instance), func) +#define ALT_DRIVER_FUNC_NAME1(module_class, func) \ + ALT_DRIVER_FUNC_NAME2(module_class, func) +#define ALT_DRIVER_FUNC_NAME2(module_class, func) \ + module_class ## _ ## func + +/* + * ALT_DRIVER_STATE_STRUCT + * + * --> instance Instance name. + * + * This macro returns the device driver state type name of the specified + * module instance. + * + * Example: + * Assume the design has an instance of an altera_avalon_uart called uart1. + * Calling ALT_DRIVER_STATE_STRUCT(uart1) returns: + * struct altera_avalon_uart_state_s + * + * Note that the ALT_DRIVER_FUNC_NAME macro is used even though "state" isn't + * really a function but it does match the required naming convention. + */ +#define ALT_DRIVER_STATE_STRUCT(instance) \ + struct ALT_DRIVER_FUNC_NAME(instance, state_s) + +/* + * ALT_DRIVER_STATE + * + * --> instance Instance name. + * + * This macro returns the device driver state name of the specified + * module instance. + * + * Example: + * Assume the design has an instance of an altera_avalon_uart called uart1. + * Calling ALT_DRIVER_STATE(uart1) returns uart1. + */ +#define ALT_DRIVER_STATE(instance) instance + +/* + * ALT_DRIVER_WRITE + * + * --> instance Instance name. + * --> buffer Write buffer. + * --> len Length of write buffer data. + * --> flags Control flags (e.g. O_NONBLOCK) + * + * This macro calls the "write" function of the specified driver instance. + */ + +#define ALT_DRIVER_WRITE_EXTERNS(instance) \ + extern ALT_DRIVER_STATE_STRUCT(instance) ALT_DRIVER_STATE(instance); \ + extern int ALT_DRIVER_FUNC_NAME(instance, write) \ + (ALT_DRIVER_STATE_STRUCT(instance) *, const char *, int, int); + +#define ALT_DRIVER_WRITE(instance, buffer, len, flags) \ + ALT_DRIVER_FUNC_NAME(instance, write)(&ALT_DRIVER_STATE(instance), buffer, len, flags) + + +/* + * ALT_DRIVER_READ + * + * --> instance Instance name. + * <-- buffer Read buffer. + * --> len Length of read buffer. + * --> flags Control flags (e.g. O_NONBLOCK) + * + * This macro calls the "read" function of the specified driver instance. + */ + +#define ALT_DRIVER_READ_EXTERNS(instance) \ + extern ALT_DRIVER_STATE_STRUCT(instance) ALT_DRIVER_STATE(instance); \ + extern int ALT_DRIVER_FUNC_NAME(instance, read) \ + (ALT_DRIVER_STATE_STRUCT(instance) *, const char *, int, int); + +#define ALT_DRIVER_READ(instance, buffer, len, flags) \ + ALT_DRIVER_FUNC_NAME(instance, read)(&ALT_DRIVER_STATE(instance), buffer, len, flags) + +/* + * ALT_DRIVER_IOCTL + * + * --> instance Instance name. + * --> req ioctl request (e.g. TIOCSTIMEOUT) + * --> arg Optional argument (void*) + * + * This macro calls the "ioctl" function of the specified driver instance + */ + +#define ALT_DRIVER_IOCTL_EXTERNS(instance) \ + extern ALT_DRIVER_STATE_STRUCT(instance) ALT_DRIVER_STATE(instance); \ + extern int ALT_DRIVER_FUNC_NAME(instance, ioctl) \ + (ALT_DRIVER_STATE_STRUCT(instance) *, int, void*); + +#define ALT_DRIVER_IOCTL(instance, req, arg) \ + ALT_DRIVER_FUNC_NAME(instance, ioctl)(&ALT_DRIVER_STATE(instance), req, arg) + +#endif /* __ALT_DRIVER_H__ */ diff --git a/software/qsys_tutorial_green_bsp/HAL/inc/sys/alt_errno.h b/software/qsys_tutorial_green_bsp/HAL/inc/sys/alt_errno.h new file mode 100644 index 0000000..4d3e50f --- /dev/null +++ b/software/qsys_tutorial_green_bsp/HAL/inc/sys/alt_errno.h @@ -0,0 +1,87 @@ +#ifndef __ALT_ERRNO_H__ +#define __ALT_ERRNO_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +/* + * errno is defined in so that it uses the thread local version + * stored in the location pointed to by "_impure_ptr". This means that the + * accesses to errno within the HAL library can cause the entirety of + * of the structure pointed to by "_impure_ptr" to be added to the + * users application. This can be undesirable in very small footprint systems. + * + * To avoid this happening, the HAL uses the macro ALT_ERRNO, defined below, + * to access errno, rather than accessing it directly. This macro will only + * use the thread local version if some other code has already caused it to be + * included into the system, otherwise it will use the global errno value. + * + * This causes a slight increases in code size where errno is accessed, but + * can lead to significant overall benefits in very small systems. The + * increase is inconsequential when compared to the size of the structure + * pointed to by _impure_ptr. + * + * Note that this macro accesses __errno() using an externally declared + * function pointer (alt_errno). This is done so that the function call uses the + * subroutine call instruction via a register rather than an immediate address. + * This is important in the case that the code has been linked for a high + * address, but __errno() is not being used. In this case the weak linkage + * would have resulted in the instruction: "call 0" which would fail to link. + */ + +extern int* (*alt_errno) (void); + +/* Must define this so that values such as EBADFD are defined in errno.h. */ +#define __LINUX_ERRNO_EXTENSIONS__ + +#include + +#include "alt_types.h" + +#undef errno + +extern int errno; + +static ALT_INLINE int* alt_get_errno(void) +{ + return ((alt_errno) ? alt_errno() : &errno); +} + +#define ALT_ERRNO *alt_get_errno() + +#endif /* __ALT_ERRNO_H__ */ diff --git a/software/qsys_tutorial_green_bsp/HAL/inc/sys/alt_exceptions.h b/software/qsys_tutorial_green_bsp/HAL/inc/sys/alt_exceptions.h new file mode 100644 index 0000000..3576a52 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/HAL/inc/sys/alt_exceptions.h @@ -0,0 +1,127 @@ +#ifndef __ALT_EXCEPTIONS_H__ +#define __ALT_EXCEPTIONS_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2008 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ +#include "alt_types.h" +#include "system.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * This file defines instruction-generated exception handling and registry + * API, exception type enumeration, and handler return value enumeration for + * Nios II. + */ + +/* + * The following enumeration describes the value in the CPU EXCEPTION + * register CAUSE bit field. Not all exception types will cause the + * processor to go to the exception vector; these are provided for + * reference. + */ +enum alt_exception_cause_e { + /* Exeption causes that will cause jump to exception vector */ + NIOS2_EXCEPTION_INTERRUPT = 2, + NIOS2_EXCEPTION_TRAP_INST = 3, + NIOS2_EXCEPTION_UNIMPLEMENTED_INST = 4, + NIOS2_EXCEPTION_ILLEGAL_INST = 5, + NIOS2_EXCEPTION_MISALIGNED_DATA_ADDR = 6, + NIOS2_EXCEPTION_MISALIGNED_TARGET_PC = 7, + NIOS2_EXCEPTION_DIVISION_ERROR = 8, + NIOS2_EXCEPTION_SUPERVISOR_ONLY_INST_ADDR = 9, + NIOS2_EXCEPTION_SUPERVISOR_ONLY_INST = 10, + NIOS2_EXCEPTION_SUPERVISOR_ONLY_DATA_ADDR = 11, + NIOS2_EXCEPTION_TLB_MISS = 12, + NIOS2_EXCEPTION_TLB_EXECUTE_PERM_VIOLATION = 13, + NIOS2_EXCEPTION_MPU_INST_REGION_VIOLATION = 16, + + /* Exception causes that will NOT cause a jump to exception vector */ + NIOS2_EXCEPTION_RESET = 0, + NIOS2_EXCEPTION_CPU_ONLY_RESET_REQUEST = 1, + NIOS2_EXCEPTION_TLB_READ_PERM_VIOLATION = 14, + NIOS2_EXCEPTION_TLB_WRITE_PERM_VIOLATION = 15, + NIOS2_EXCEPTION_MPU_DATA_REGION_VIOLATION = 17, + /* + * This value is passed to an exception handler's cause argument if + * "extra exceptions" information (EXECPTION) register is not + * present in the processor hardware configuration. + */ + NIOS2_EXCEPTION_CAUSE_NOT_PRESENT = -1 +}; +typedef enum alt_exception_cause_e alt_exception_cause; + +/* + * These define valid return values for a user-defined instruction-generated + * exception handler. The handler should return one of these to indicate + * whether to re-issue the instruction that triggered the exception, or to + * skip it. + */ +enum alt_exception_result_e { + NIOS2_EXCEPTION_RETURN_REISSUE_INST = 0, + NIOS2_EXCEPTION_RETURN_SKIP_INST = 1 +}; +typedef enum alt_exception_result_e alt_exception_result; + +/* + * alt_instruction_exception_register() can be used to register an exception + * handler for instruction-generated exceptions that are not handled by the + * built-in exception handler (i.e. for interrupts). + * + * The registry API is optionally enabled through the "Enable + * Instruction-related Exception API" HAL BSP setting, which will + * define the macro below. + */ +#ifdef ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API +void alt_instruction_exception_register ( + alt_exception_result (*exception_handler)( + alt_exception_cause cause, + alt_u32 exception_pc, + alt_u32 bad_addr) ); +#endif /*ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API */ + +/* + * alt_exception_cause_generated_bad_addr() indicates whether a particular + * exception cause value was from an exception-type that generated a valid + * address in the BADADDR register. The contents of BADADDR is passed to + * a user-registered exception handler in all cases, whether valid or not. + * This routine should be called to validate the bad_addr argument to + * your exception handler. + */ +int alt_exception_cause_generated_bad_addr(alt_exception_cause cause); + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __ALT_EXCEPTIONS_H__ */ diff --git a/software/qsys_tutorial_green_bsp/HAL/inc/sys/alt_flash.h b/software/qsys_tutorial_green_bsp/HAL/inc/sys/alt_flash.h new file mode 100644 index 0000000..527328d --- /dev/null +++ b/software/qsys_tutorial_green_bsp/HAL/inc/sys/alt_flash.h @@ -0,0 +1,166 @@ +#ifndef __ALT_FLASH_H__ +#define __ALT_FLASH_H__ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +/****************************************************************************** +* * +* Alt_flash.h - User interface for flash code * +* * +* Use this interface to avoid being exposed to the internals of the device * +* driver architecture. If you chose to use the flash driver internal * +* structures we don't guarantee not to change them * +* * +* Author PRR * +* * +******************************************************************************/ + + + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +#include "alt_types.h" +#include "alt_flash_types.h" +#include "alt_flash_dev.h" +#include "sys/alt_cache.h" + +alt_flash_fd* alt_flash_open_dev(const char* name); +void alt_flash_close_dev(alt_flash_fd* fd ); + +/* + * alt_write_flash + * + * Program a buffer into flash. + * + * This routine erases all the affected erase blocks (if necessary) + * and then programs the data. However it does not read the data out first + * and preserve and none overwritten data, because this would require very + * large buffers on the target. If you need + * that functionality use the functions below. + */ +static __inline__ int __attribute__ ((always_inline)) alt_write_flash( + alt_flash_fd* fd, + int offset, + const void* src_addr, + int length ) +{ + return fd->write( fd, offset, src_addr, length ); +} + +/* + * alt_read_flash + * + * Read a block of flash for most flashes this is just memcpy + * it's here for completeness in case we need it for some serial flash device + * + */ +static __inline__ int __attribute__ ((always_inline)) alt_read_flash( + alt_flash_fd* fd, int offset, + void* dest_addr, int length ) +{ + return fd->read( fd, offset, dest_addr, length ); +} + +/* + * alt_get_flash_info + * + * Return the information on the flash sectors. + * + */ +static __inline__ int __attribute__ ((always_inline)) alt_get_flash_info( + alt_flash_fd* fd, flash_region** info, + int* number_of_regions) +{ + return fd->get_info( fd, info, number_of_regions); +} + +/* + * alt_erase_flash_block + * + * Erase a particular erase block, pass in the offset to the start of + * the block and it's size + */ +static __inline__ int __attribute__ ((always_inline)) alt_erase_flash_block( + alt_flash_fd* fd, int offset, int length) +{ + int ret_code; + ret_code = fd->erase_block( fd, offset ); + + if(!ret_code) + alt_dcache_flush((alt_u8*)fd->base_addr + offset, length); + + return ret_code; +} + +/* + * alt_write_flash_block + * + * Write a particular flash block, block_offset is the offset + * (from the base of flash) to start of the block + * data_offset is the offset (from the base of flash) + * where you wish to start programming + * + * NB this function DOES NOT check that you are only writing a single + * block of data as that would slow down this function. + * + * Use alt_write_flash if you want that level of error checking. + */ + +static __inline__ int __attribute__ ((always_inline)) alt_write_flash_block( + alt_flash_fd* fd, int block_offset, + int data_offset, + const void *data, int length) +{ + + int ret_code; + ret_code = fd->write_block( fd, block_offset, data_offset, data, length ); + + if(!ret_code) + alt_dcache_flush((alt_u8*)fd->base_addr + data_offset, length); + + return ret_code; +} + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_FLASH_H__ */ diff --git a/software/qsys_tutorial_green_bsp/HAL/inc/sys/alt_flash_dev.h b/software/qsys_tutorial_green_bsp/HAL/inc/sys/alt_flash_dev.h new file mode 100644 index 0000000..8bab601 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/HAL/inc/sys/alt_flash_dev.h @@ -0,0 +1,98 @@ +#ifndef __ALT_FLASH_DEV_H__ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +/****************************************************************************** +* * +* Alt_flash_dev.h - Generic Flash device interfaces * +* * +* Author PRR * +* * +******************************************************************************/ +#define __ALT_FLASH_DEV_H__ + +#include "alt_flash_types.h" +#include "sys/alt_llist.h" +#include "priv/alt_dev_llist.h" + +#include "alt_types.h" + +typedef struct alt_flash_dev alt_flash_dev; +typedef alt_flash_dev alt_flash_fd; + +static ALT_INLINE int alt_flash_device_register( alt_flash_fd* fd) +{ + extern alt_llist alt_flash_dev_list; + + return alt_dev_llist_insert ((alt_dev_llist*) fd, &alt_flash_dev_list); +} + +typedef alt_flash_dev* (*alt_flash_open)(alt_flash_dev* flash, + const char* name ); +typedef int (*alt_flash_close)(alt_flash_dev* flash_info); + +typedef int (*alt_flash_write)( alt_flash_dev* flash, int offset, + const void* src_addr, int length ); + +typedef int (*alt_flash_get_flash_info)( alt_flash_dev* flash, flash_region** info, + int* number_of_regions); +typedef int (*alt_flash_write_block)( alt_flash_dev* flash, int block_offset, + int data_offset, const void* data, + int length); +typedef int (*alt_flash_erase_block)( alt_flash_dev* flash, int offset); +typedef int (*alt_flash_read)(alt_flash_dev* flash, int offset, + void* dest_addr, int length ); + +struct alt_flash_dev +{ + alt_llist llist; + const char* name; + alt_flash_open open; + alt_flash_close close; + alt_flash_write write; + alt_flash_read read; + alt_flash_get_flash_info get_info; + alt_flash_erase_block erase_block; + alt_flash_write_block write_block; + void* base_addr; + int length; + int number_of_regions; + flash_region region_info[ALT_MAX_NUMBER_OF_FLASH_REGIONS]; +}; + +#endif /* __ALT_FLASH_DEV_H__ */ diff --git a/software/qsys_tutorial_green_bsp/HAL/inc/sys/alt_flash_types.h b/software/qsys_tutorial_green_bsp/HAL/inc/sys/alt_flash_types.h new file mode 100644 index 0000000..884cbf8 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/HAL/inc/sys/alt_flash_types.h @@ -0,0 +1,64 @@ +#ifndef __ALT_FLASH_TYPES_H__ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +/****************************************************************************** +* * +* Alt_flash_types.h - Some generic types and defines used by the flash code * +* * +* Author PRR * +* * +******************************************************************************/ +#define __ALT_FLASH_TYPES_H__ + +#ifndef ALT_MAX_NUMBER_OF_FLASH_REGIONS +#define ALT_MAX_NUMBER_OF_FLASH_REGIONS 8 +#endif /* ALT_MAX_NUMBER_OF_FLASH_REGIONS */ + +/* + * Description of a single Erase region + */ +typedef struct flash_region +{ + int offset; + int region_size; + int number_of_blocks; + int block_size; +}flash_region; + +#endif /* __ALT_FLASH_TYPES_H__ */ diff --git a/software/qsys_tutorial_green_bsp/HAL/inc/sys/alt_irq.h b/software/qsys_tutorial_green_bsp/HAL/inc/sys/alt_irq.h new file mode 100644 index 0000000..6666e52 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/HAL/inc/sys/alt_irq.h @@ -0,0 +1,245 @@ +#ifndef __ALT_IRQ_H__ +#define __ALT_IRQ_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2009 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/* + * alt_irq.h is the Nios II specific implementation of the interrupt controller + * interface. + * + * Nios II includes optional support for an external interrupt controller. + * When an external controller is present, the "Enhanced" interrupt API + * must be used to manage individual interrupts. The enhanced API also + * supports the processor's internal interrupt controller. Certain API + * members are accessible from either the "legacy" or "enhanced" interrpt + * API. + * + * Regardless of which API is in use, this file should be included by + * application code and device drivers that register ISRs or manage interrpts. + */ +#include + +#include "nios2.h" +#include "alt_types.h" +#include "system.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * Macros used by alt_irq_enabled + */ +#define ALT_IRQ_ENABLED 1 +#define ALT_IRQ_DISABLED 0 + +/* + * Number of available interrupts in internal interrupt controller. + */ +#define ALT_NIRQ NIOS2_NIRQ + +/* + * Used by alt_irq_disable_all() and alt_irq_enable_all(). + */ +typedef int alt_irq_context; + +/* ISR Prototype */ +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT +typedef void (*alt_isr_func)(void* isr_context); +#else +typedef void (*alt_isr_func)(void* isr_context, alt_u32 id); +#endif + +/* + * The following protypes and routines are supported by both + * the enhanced and legacy interrupt APIs + */ + +/* + * alt_irq_enabled can be called to determine if the processor's global + * interrupt enable is asserted. The return value is zero if interrupts + * are disabled, and non-zero otherwise. + * + * Whether the internal or external interrupt controller is present, + * individual interrupts may still be disabled. Use the other API to query + * a specific interrupt. + */ +static ALT_INLINE int ALT_ALWAYS_INLINE alt_irq_enabled (void) +{ + int status; + + NIOS2_READ_STATUS (status); + + return status & NIOS2_STATUS_PIE_MSK; +} + +/* + * alt_irq_disable_all() + * + * This routine inhibits all interrupts by negating the status register PIE + * bit. It returns the previous contents of the CPU status register (IRQ + * context) which can be used to restore the status register PIE bit to its + * state before this routine was called. + */ +static ALT_INLINE alt_irq_context ALT_ALWAYS_INLINE + alt_irq_disable_all (void) +{ + alt_irq_context context; + + NIOS2_READ_STATUS (context); + + NIOS2_WRITE_STATUS (context & ~NIOS2_STATUS_PIE_MSK); + + return context; +} + +/* + * alt_irq_enable_all() + * + * Enable all interrupts that were previously disabled by alt_irq_disable_all() + * + * This routine accepts a context to restore the CPU status register PIE bit + * to the state prior to a call to alt_irq_disable_all(). + + * In the case of nested calls to alt_irq_disable_all()/alt_irq_enable_all(), + * this means that alt_irq_enable_all() does not necessarily re-enable + * interrupts. + * + * This routine will perform a read-modify-write sequence to restore only + * status.PIE if the processor is configured with options that add additional + * writeable status register bits. These include the MMU, MPU, the enhanced + * interrupt controller port, and shadow registers. Otherwise, as a performance + * enhancement, status is overwritten with the prior context. + */ +static ALT_INLINE void ALT_ALWAYS_INLINE + alt_irq_enable_all (alt_irq_context context) +{ +#if (NIOS2_NUM_OF_SHADOW_REG_SETS > 0) || (defined NIOS2_EIC_PRESENT) || \ + (defined NIOS2_MMU_PRESENT) || (defined NIOS2_MPU_PRESENT) + alt_irq_context status; + + NIOS2_READ_STATUS (status); + + status &= ~NIOS2_STATUS_PIE_MSK; + status |= (context & NIOS2_STATUS_PIE_MSK); + + NIOS2_WRITE_STATUS (status); +#else + NIOS2_WRITE_STATUS (context); +#endif +} + +/* + * The function alt_irq_init() is defined within the auto-generated file + * alt_sys_init.c. This function calls the initilization macros for all + * interrupt controllers in the system at config time, before any other + * non-interrupt controller driver is initialized. + * + * The "base" parameter is ignored and only present for backwards-compatibility. + * It is recommended that NULL is passed in for the "base" parameter. + */ +extern void alt_irq_init (const void* base); + +/* + * alt_irq_cpu_enable_interrupts() enables the CPU to start taking interrupts. + */ +static ALT_INLINE void ALT_ALWAYS_INLINE + alt_irq_cpu_enable_interrupts () +{ + NIOS2_WRITE_STATUS(NIOS2_STATUS_PIE_MSK +#if defined(NIOS2_EIC_PRESENT) && (NIOS2_NUM_OF_SHADOW_REG_SETS > 0) + | NIOS2_STATUS_RSIE_MSK +#endif + ); +} + + +/* + * Prototypes for the enhanced interrupt API. + */ +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT +/* + * alt_ic_isr_register() can be used to register an interrupt handler. If the + * function is succesful, then the requested interrupt will be enabled upon + * return. + */ +extern int alt_ic_isr_register(alt_u32 ic_id, + alt_u32 irq, + alt_isr_func isr, + void *isr_context, + void *flags); + +/* + * alt_ic_irq_enable() and alt_ic_irq_disable() enable/disable a specific + * interrupt by using IRQ port and interrupt controller instance. + */ +int alt_ic_irq_enable (alt_u32 ic_id, alt_u32 irq); +int alt_ic_irq_disable(alt_u32 ic_id, alt_u32 irq); + + /* + * alt_ic_irq_enabled() indicates whether a specific interrupt, as + * specified by IRQ port and interrupt controller instance is enabled. + */ +alt_u32 alt_ic_irq_enabled(alt_u32 ic_id, alt_u32 irq); + +#else +/* + * Prototypes for the legacy interrupt API. + */ +#include "priv/alt_legacy_irq.h" +#endif + + +/* + * alt_irq_pending() returns a bit list of the current pending interrupts. + * This is used by alt_irq_handler() to determine which registered interrupt + * handlers should be called. + * + * This routine is only available for the Nios II internal interrupt + * controller. + */ +#ifndef NIOS2_EIC_PRESENT +static ALT_INLINE alt_u32 ALT_ALWAYS_INLINE alt_irq_pending (void) +{ + alt_u32 active; + + NIOS2_READ_IPENDING (active); + + return active; +} +#endif + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __ALT_IRQ_H__ */ diff --git a/software/qsys_tutorial_green_bsp/HAL/inc/sys/alt_irq_entry.h b/software/qsys_tutorial_green_bsp/HAL/inc/sys/alt_irq_entry.h new file mode 100644 index 0000000..e2008d9 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/HAL/inc/sys/alt_irq_entry.h @@ -0,0 +1,39 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/* + * This file pulls in the IRQ entry assembler and C code, which is only + * required if there are any interruptes in the system. + */ + +__asm__( "\n\t.globl alt_irq_entry" ); + +__asm__( "\n\t.globl alt_irq_handler" ); + diff --git a/software/qsys_tutorial_green_bsp/HAL/inc/sys/alt_license_reminder_ucosii.h b/software/qsys_tutorial_green_bsp/HAL/inc/sys/alt_license_reminder_ucosii.h new file mode 100644 index 0000000..2fe649c --- /dev/null +++ b/software/qsys_tutorial_green_bsp/HAL/inc/sys/alt_license_reminder_ucosii.h @@ -0,0 +1,77 @@ +#ifndef __ALT_LICENSE_REMINDER_UCOSII_H__ +#define __ALT_LICENSE_REMINDER_UCOSII_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#include + +#define ALT_LICENSE_REMINDER_UCOSII_STRING \ + "============== Software License Reminder ===============\n" \ + "\n" \ + "uC/OS-II is provided in source form for FREE evaluation,\n" \ + "for educational use, or for peaceful research. If you\n" \ + "plan on using uC/OS-II in a commercial product you need\n" \ + "to contact Micrium to properly license its use in your\n" \ + "product. Micrium provides ALL the source code on the\n" \ + "Altera distribution for your convenience and to help you\n" \ + "experience uC/OS-II. The fact that the source is provided\n" \ + "does NOT mean that you can use it without paying a\n" \ + "licensing fee. Please help us continue to provide the\n" \ + "Embedded community with the finest software available.\n" \ + "Your honesty is greatly appreciated.\n" \ + "\n" \ + "Please contact:\n" \ + "\n" \ + "M I C R I U M\n" \ + "949 Crestview Circle\n" \ + "Weston, FL 33327-1848\n" \ + "U.S.A.\n" \ + "\n" \ + "Phone : +1 954 217 2036\n" \ + "FAX : +1 954 217 2037\n" \ + "WEB : www.micrium.com\n" \ + "E-mail: Sales@Micrium.com\n" \ + "\n" \ + "========================================================\n" + +#define alt_license_reminder_ucosii() puts(ALT_LICENSE_REMINDER_UCOSII_STRING) + + +#endif /* __ALT_LICENSE_REMINDER_UCOSII_H__ */ + diff --git a/software/qsys_tutorial_green_bsp/HAL/inc/sys/alt_llist.h b/software/qsys_tutorial_green_bsp/HAL/inc/sys/alt_llist.h new file mode 100644 index 0000000..46f81ce --- /dev/null +++ b/software/qsys_tutorial_green_bsp/HAL/inc/sys/alt_llist.h @@ -0,0 +1,123 @@ +#ifndef __ALT_LIST_H__ +#define __ALT_LIST_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#include "alt_types.h" + +/* + * alt_llist.h defines structures and functions for use in manipulating linked + * lists. A list is considered to be constructed from a chain of objects of + * type alt_llist, with one object being defined to be the head element. + * + * A list is considered to be empty if it only contains the head element. + */ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * alt_llist is the structure used to represent an element within a linked + * list. + */ + +typedef struct alt_llist_s alt_llist; + +struct alt_llist_s { + alt_llist* next; /* Pointer to the next element in the list. */ + alt_llist* previous; /* Pointer to the previous element in the list. */ +}; + +/* + * ALT_LLIST_HEAD is a macro that can be used to create the head of a new + * linked list. This is named "head". The head element is initialised to + * represent an empty list. + */ + +#define ALT_LLIST_HEAD(head) alt_llist head = {&head, &head} + +/* + * ALT_LLIST_ENTRY is a macro used to define an uninitialised linked list + * entry. This is used to reserve space in structure initialisation for + * structures that inherit form alt_llist. + */ + +#define ALT_LLIST_ENTRY {0, 0} + +/* + * alt_llist_insert() insert adds the linked list entry "entry" as the + * first entry in the linked list "list". "list" is the list head element. + */ + +static ALT_INLINE void ALT_ALWAYS_INLINE alt_llist_insert(alt_llist* list, + alt_llist* entry) +{ + entry->previous = list; + entry->next = list->next; + + list->next->previous = entry; + list->next = entry; +} + +/* + * alt_llist_remove() is called to remove an element from a linked list. The + * input argument is the element to remove. + */ + +static ALT_INLINE void ALT_ALWAYS_INLINE alt_llist_remove(alt_llist* entry) +{ + entry->next->previous = entry->previous; + entry->previous->next = entry->next; + + /* + * Set the entry to point to itself, so that any further calls to + * alt_llist_remove() are harmless. + */ + + entry->previous = entry; + entry->next = entry; +} + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_LLIST_H__ */ diff --git a/software/qsys_tutorial_green_bsp/HAL/inc/sys/alt_load.h b/software/qsys_tutorial_green_bsp/HAL/inc/sys/alt_load.h new file mode 100644 index 0000000..432e9f2 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/HAL/inc/sys/alt_load.h @@ -0,0 +1,78 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2005 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "alt_types.h" + +/* + * This macro is used to load code/data from its load address to its + * execution address for a given section. The section name is the input + * argument. Note that a leading '.' is assumed in the name. For example + * to load the section .onchip_ram, use: + * + * ALT_LOAD_SECTION_BY_NAME(onchip_ram); + * + * This requires that the apropriate linker symbols have been generated + * for the section in question. This will be the case if you are using the + * default linker script. + */ + +#define ALT_LOAD_SECTION_BY_NAME(name) \ + { \ + extern void _alt_partition_##name##_start; \ + extern void _alt_partition_##name##_end; \ + extern void _alt_partition_##name##_load_addr; \ + \ + alt_load_section(&_alt_partition_##name##_load_addr, \ + &_alt_partition_##name##_start, \ + &_alt_partition_##name##_end); \ + } + +/* + * Function used to load an individual section from flash to RAM. + * + * There is an implicit assumption here that the linker script will ensure + * that all sections are word aligned. + * + */ + +static void ALT_INLINE alt_load_section (alt_u32* from, + alt_u32* to, + alt_u32* end) +{ + if (to != from) + { + while( to != end ) + { + *to++ = *from++; + } + } +} diff --git a/software/qsys_tutorial_green_bsp/HAL/inc/sys/alt_log_printf.h b/software/qsys_tutorial_green_bsp/HAL/inc/sys/alt_log_printf.h new file mode 100644 index 0000000..c15ca05 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/HAL/inc/sys/alt_log_printf.h @@ -0,0 +1,349 @@ +/* alt_log_printf.h + * + * ALT_LOG is designed to provide extra logging/debugging messages from HAL + * through a different port than stdout. It is enabled by the ALT_LOG_ENABLE + * define, which needs to supplied at compile time. When logging is turned off, + * code size is unaffected. Thus, this should be transparent to the user + * when it is not actively turned on, and should not affect projects in any way. + * + * There are macros sprinkled within different components, such as the jtag uart + * and timer, in the HAL code. They are always named ALT_LOG_, and can be + * safely ignored if ALT_LOG is turned off. + * + * To turn on ALT_LOG, ALT_LOG_ENABLE must be defined, and ALT_LOG_PORT_TYPE and + * ALT_LOG_PORT_BASE must be set in system.h. This is done through editing + * .ptf, by editing the alt_log_port_type & alt_log_port_base settings. + * See the documentation html file for examples. + * + * When it is turned on, it will output extra HAL messages to a port specified + * in system.h. This can be a UART or JTAG UART port. By default it will + * output boot messages, detailing every step of the boot process. + * + * Extra logging is designed to be enabled by flags, which are defined in + * alt_log_printf.c. The default value is that all flags are off, so only the + * boot up logging messages show up. ALT_LOG_FLAGS can be set to enable certain + * groupings of flags, and that grouping is done in this file. Each flag can + * also be overridden with a -D at compile time. + * + * This header file includes the necessary prototypes for using the alt_log + * functions. It also contains all the macros that are used to remove the code + * from alt log is turned off. Also, the macros in other HAL files are defined + * here at the bottom. These macros all call some C function that is in + * alt_log_printf.c. + * + * The logging has functions for printing in C (ALT_LOG_PRINTF) and in assembly + * (ALT_LOG_PUTS). This was needed because the assembly printing occurs before + * the device is initialized. The assembly function corrupts register R4-R7, + * which are not used in the normal boot process. For this reason, do not call + * the assembly function in C. + * + * author: gkwan + */ + + +#ifndef __ALT_LOG_PRINTF_H__ +#define __ALT_LOG_PRINTF_H__ + +#include + +/* Global switch to turn on logging functions */ +#ifdef ALT_LOG_ENABLE + + /* ALT_LOG_PORT_TYPE values as defined in system.h. They are defined as + * numbers here first becasue the C preprocessor does not handle string + * comparisons. */ + #define ALTERA_AVALON_JTAG_UART 1 + #define ALTERA_AVALON_UART 0 + + /* If this .h file is included by an assembly file, skip over include files + * that won't compile in assembly. */ + #ifndef ALT_ASM_SRC + #include + #include "sys/alt_alarm.h" + #include "sys/alt_dev.h" + #ifdef __ALTERA_AVALON_JTAG_UART + #include "altera_avalon_jtag_uart.h" + #endif + #endif /* ALT_ASM_SRC */ + + /* These are included for the port register offsets and masks, needed + * to write to the port. Only include if the port type is set correctly, + * otherwise error. If alt_log is turned on and the port to output to is + * incorrect or does not exist, then should exit. */ + #if ALT_LOG_PORT_TYPE == ALTERA_AVALON_JTAG_UART + #ifdef __ALTERA_AVALON_JTAG_UART + #include + #else + #error ALT_LOG: JTAG_UART port chosen, but no JTAG_UART in system. + #endif + #elif ALT_LOG_PORT_TYPE == ALTERA_AVALON_UART + #ifdef __ALTERA_AVALON_UART + #include + #else + #error ALT_LOG: UART Port chosen, but no UART in system. + #endif + #else + #error ALT_LOG: alt_log_port_type declaration invalid! + #endif + + /* ALT_LOG_ENABLE turns on the basic printing function */ + #define ALT_LOG_PRINTF(...) do {alt_log_printf_proc(__VA_ARGS__);} while (0) + + /* Assembly macro for printing in assembly, calls tx_log_str + * which is in alt_log_macro.S. + * If alt_log_boot_on_flag is 0, skips the printing */ + #define ALT_LOG_PUTS(str) movhi r4, %hiadj(alt_log_boot_on_flag) ; \ + addi r4, r4, %lo(alt_log_boot_on_flag) ; \ + ldwio r5, 0(r4) ; \ + beq r0, r5, 0f ; \ + movhi r4, %hiadj(str) ; \ + addi r4, r4, %lo(str) ; \ + call tx_log_str ; \ + 0: + + /* These defines are here to faciliate the use of one output function + * (alt_log_txchar) to print to both the JTAG UART or the UART. Depending + * on the port type, the status register, read mask, and output register + * are set to the appropriate value for the port. */ + #if ALT_LOG_PORT_TYPE == ALTERA_AVALON_JTAG_UART + #define ALT_LOG_PRINT_REG_RD IORD_ALTERA_AVALON_JTAG_UART_CONTROL + #define ALT_LOG_PRINT_MSK ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_MSK + #define ALT_LOG_PRINT_TXDATA_WR IOWR_ALTERA_AVALON_JTAG_UART_DATA + #define ALT_LOG_PRINT_REG_OFFSET (ALTERA_AVALON_JTAG_UART_CONTROL_REG*0x4) + #define ALT_LOG_PRINT_TXDATA_REG_OFFSET (ALTERA_AVALON_JTAG_UART_DATA_REG*0x4) + #elif ALT_LOG_PORT_TYPE == ALTERA_AVALON_UART + #define ALT_LOG_PRINT_REG_RD IORD_ALTERA_AVALON_UART_STATUS + #define ALT_LOG_PRINT_MSK ALTERA_AVALON_UART_STATUS_TRDY_MSK + #define ALT_LOG_PRINT_TXDATA_WR IOWR_ALTERA_AVALON_UART_TXDATA + #define ALT_LOG_PRINT_REG_OFFSET (ALTERA_AVALON_UART_STATUS_REG*0x4) + #define ALT_LOG_PRINT_TXDATA_REG_OFFSET (ALTERA_AVALON_UART_TXDATA_REG*0x4) + #endif /* ALT_LOG_PORT */ + + /* Grouping of flags via ALT_LOG_FLAGS. Each specific flag can be set via + * -D at compile time, or else they'll be set to a default value according + * to ALT_LOG_FLAGS. ALT_LOG_FLAGS = 0 or not set is the default, where + * only the boot messages will be printed. As ALT_LOG_FLAGS increase, they + * increase in intrusiveness to the program, and will affect performance. + * + * Flag Level 1 - turns on system clock and JTAG UART startup status + * 2 - turns on write echo and JTAG_UART alarm (periodic report) + * 3 - turns on JTAG UART ISR logging - will slow performance + * significantly. + * -1 - All logging output is off, but if ALT_LOG_ENABLE is + * defined all logging function is built and code size + * remains constant + * + * Flag settings - 1 = on, 0 = off. */ + + /* This flag turns on "boot" messages for printing. This includes messages + * during crt0.S, then alt_main, and finally alt_exit. */ + #ifndef ALT_LOG_BOOT_ON_FLAG_SETTING + #if ALT_LOG_FLAGS == 1 + #define ALT_LOG_BOOT_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == 2 + #define ALT_LOG_BOOT_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == 3 + #define ALT_LOG_BOOT_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == -1 /* silent mode */ + #define ALT_LOG_BOOT_ON_FLAG_SETTING 0x0 + #else /* default setting */ + #define ALT_LOG_BOOT_ON_FLAG_SETTING 0x1 + #endif + #endif /* ALT_LOG_BOOT_ON_FLAG_SETTING */ + + #ifndef ALT_LOG_SYS_CLK_ON_FLAG_SETTING + #if ALT_LOG_FLAGS == 1 + #define ALT_LOG_SYS_CLK_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == 2 + #define ALT_LOG_SYS_CLK_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == 3 + #define ALT_LOG_SYS_CLK_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == -1 /* silent mode */ + #define ALT_LOG_SYS_CLK_ON_FLAG_SETTING 0x0 + #else /* default setting */ + #define ALT_LOG_SYS_CLK_ON_FLAG_SETTING 0x0 + #endif + #endif /* ALT_LOG_SYS_CLK_ON_FLAG_SETTING */ + + #ifndef ALT_LOG_WRITE_ON_FLAG_SETTING + #if ALT_LOG_FLAGS == 1 + #define ALT_LOG_WRITE_ON_FLAG_SETTING 0x0 + #elif ALT_LOG_FLAGS == 2 + #define ALT_LOG_WRITE_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == 3 + #define ALT_LOG_WRITE_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == -1 /* silent mode */ + #define ALT_LOG_WRITE_ON_FLAG_SETTING 0x0 + #else /* default setting */ + #define ALT_LOG_WRITE_ON_FLAG_SETTING 0x0 + #endif + #endif /* ALT_LOG_WRITE_ON_FLAG_SETTING */ + + #ifndef ALT_LOG_JTAG_UART_ALARM_ON_FLAG_SETTING + #ifndef __ALTERA_AVALON_JTAG_UART + #define ALT_LOG_JTAG_UART_ALARM_ON_FLAG_SETTING 0x0 + #elif ALT_LOG_FLAGS == 1 + #define ALT_LOG_JTAG_UART_ALARM_ON_FLAG_SETTING 0x0 + #elif ALT_LOG_FLAGS == 2 + #define ALT_LOG_JTAG_UART_ALARM_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == 3 + #define ALT_LOG_JTAG_UART_ALARM_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == -1 /* silent mode */ + #define ALT_LOG_JTAG_UART_ALARM_ON_FLAG_SETTING 0x0 + #else /* default setting */ + #define ALT_LOG_JTAG_UART_ALARM_ON_FLAG_SETTING 0x0 + #endif + #endif /* ALT_LOG_JTAG_UART_ALARM_ON_FLAG_SETTING */ + + #ifndef ALT_LOG_JTAG_UART_STARTUP_INFO_ON_FLAG_SETTING + #ifndef __ALTERA_AVALON_JTAG_UART + #define ALT_LOG_JTAG_UART_STARTUP_INFO_ON_FLAG_SETTING 0x0 + #elif ALT_LOG_FLAGS == 1 + #define ALT_LOG_JTAG_UART_STARTUP_INFO_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == 2 + #define ALT_LOG_JTAG_UART_STARTUP_INFO_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == 3 + #define ALT_LOG_JTAG_UART_STARTUP_INFO_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == -1 /* silent mode */ + #define ALT_LOG_JTAG_UART_STARTUP_INFO_ON_FLAG_SETTING 0x0 + #else /* default setting */ + #define ALT_LOG_JTAG_UART_STARTUP_INFO_ON_FLAG_SETTING 0x0 + #endif + #endif /* ALT_LOG_JTAG_UART_STARTUP_INFO_FLAG_SETTING */ + + #ifndef ALT_LOG_JTAG_UART_ISR_ON_FLAG_SETTING + #ifndef __ALTERA_AVALON_JTAG_UART + #define ALT_LOG_JTAG_UART_ISR_ON_FLAG_SETTING 0x0 + #elif ALT_LOG_FLAGS == 1 + #define ALT_LOG_JTAG_UART_ISR_ON_FLAG_SETTING 0x0 + #elif ALT_LOG_FLAGS == 2 + #define ALT_LOG_JTAG_UART_ISR_ON_FLAG_SETTING 0x0 + #elif ALT_LOG_FLAGS == 3 + #define ALT_LOG_JTAG_UART_ISR_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == -1 /* silent mode */ + #define ALT_LOG_JTAG_UART_ISR_ON_FLAG_SETTING 0x0 + #else /* default setting */ + #define ALT_LOG_JTAG_UART_ISR_ON_FLAG_SETTING 0x0 + #endif + #endif /* ALT_LOG_JTAG_UART_ISR_ON_FLAG_SETTING */ + +#ifndef ALT_ASM_SRC + /* Function Prototypes */ + void alt_log_txchar(int c,char *uartBase); + void alt_log_private_printf(const char *fmt,int base,va_list args); + void alt_log_repchar(char c,int r,int base); + int alt_log_printf_proc(const char *fmt, ... ); + void alt_log_system_clock(); + #ifdef __ALTERA_AVALON_JTAG_UART + alt_u32 altera_avalon_jtag_uart_report_log(void * context); + void alt_log_jtag_uart_startup_info(altera_avalon_jtag_uart_state* dev, int base); + void alt_log_jtag_uart_print_control_reg(altera_avalon_jtag_uart_state* dev, \ + int base, const char* header); + void alt_log_jtag_uart_isr_proc(int base, altera_avalon_jtag_uart_state* dev); + #endif + void alt_log_write(const void *ptr, size_t len); + + /* extern all global variables */ + extern volatile alt_u32 alt_log_boot_on_flag; + extern volatile alt_u8 alt_log_write_on_flag; + extern volatile alt_u8 alt_log_sys_clk_on_flag; + extern volatile alt_u8 alt_log_jtag_uart_alarm_on_flag; + extern volatile alt_u8 alt_log_jtag_uart_isr_on_flag; + extern volatile alt_u8 alt_log_jtag_uart_startup_info_on_flag; + extern volatile int alt_log_sys_clk_count; + extern volatile int alt_system_clock_in_sec; + extern alt_alarm alt_log_jtag_uart_alarm_1; +#endif /* ALT_ASM_SRC */ + + + /* Below are the MACRO defines used in various HAL files. They check + * if their specific flag is turned on; if it is, then it executes its + * code. + * + * To keep this file reasonable, most of these macros calls functions, + * which are defined in alt_log_printf.c. Look there for implementation + * details. */ + + /* Boot Messages Logging */ + #define ALT_LOG_PRINT_BOOT(...) \ + do { if (alt_log_boot_on_flag==1) {ALT_LOG_PRINTF(__VA_ARGS__);} \ + } while (0) + + /* JTAG UART Logging */ + /* number of ticks before alarm runs logging function */ + #ifndef ALT_LOG_JTAG_UART_TICKS_DIVISOR + #define ALT_LOG_JTAG_UART_TICKS_DIVISOR 10 + #endif + #ifndef ALT_LOG_JTAG_UART_TICKS + #define ALT_LOG_JTAG_UART_TICKS \ + (alt_ticks_per_second()/ALT_LOG_JTAG_UART_TICKS_DIVISOR) + #endif + + /* if there's a JTAG UART defined, then enable these macros */ + #ifdef __ALTERA_AVALON_JTAG_UART + + /* Macro in altera_avalon_jtag_uart.c, to register the alarm function. + * Also, the startup register info is also printed here, as this is + * called within the device driver initialization. */ + #define ALT_LOG_JTAG_UART_ALARM_REGISTER(dev, base) \ + do { if (alt_log_jtag_uart_alarm_on_flag==1) { \ + alt_alarm_start(&alt_log_jtag_uart_alarm_1, \ + ALT_LOG_JTAG_UART_TICKS, &altera_avalon_jtag_uart_report_log,\ + dev);} \ + if (alt_log_jtag_uart_startup_info_on_flag==1) {\ + alt_log_jtag_uart_startup_info(dev, base);} \ + } while (0) + + /* JTAG UART IRQ Logging (when buffer is empty) + * Inserted in the ISR in altera_avalon_jtag_uart.c */ + #define ALT_LOG_JTAG_UART_ISR_FUNCTION(base, dev) \ + do { alt_log_jtag_uart_isr_proc(base, dev); } while (0) + /* else, define macros to nothing. Or else the jtag_uart specific types + * will throw compiler errors */ + #else + #define ALT_LOG_JTAG_UART_ALARM_REGISTER(dev, base) + #define ALT_LOG_JTAG_UART_ISR_FUNCTION(base, dev) + #endif + + /* System clock logging + * How often (in seconds) the system clock logging prints. + * The default value is every 1 second */ + #ifndef ALT_LOG_SYS_CLK_INTERVAL_MULTIPLIER + #define ALT_LOG_SYS_CLK_INTERVAL_MULTIPLIER 1 + #endif + #ifndef ALT_LOG_SYS_CLK_INTERVAL + #define ALT_LOG_SYS_CLK_INTERVAL \ + (alt_ticks_per_second()*ALT_LOG_SYS_CLK_INTERVAL_MULTIPLIER) + #endif + + /* System clock logging - prints a message every interval (set above) + * to show that the system clock is alive. + * This macro is used in altera_avalon_timer_sc.c */ + #define ALT_LOG_SYS_CLK_HEARTBEAT() \ + do { alt_log_system_clock(); } while (0) + + /* alt_write_logging - echos a message every time write() is called, + * displays the first ALT_LOG_WRITE_ECHO_LEN characters. + * This macro is used in alt_write.c */ + #ifndef ALT_LOG_WRITE_ECHO_LEN + #define ALT_LOG_WRITE_ECHO_LEN 15 + #endif + + #define ALT_LOG_WRITE_FUNCTION(ptr,len) \ + do { alt_log_write(ptr,len); } while (0) + +#else /* ALT_LOG_ENABLE not defined */ + + /* logging is off, set all relevant macros to null */ + #define ALT_LOG_PRINT_BOOT(...) + #define ALT_LOG_PRINTF(...) + #define ALT_LOG_JTAG_UART_ISR_FUNCTION(base, dev) + #define ALT_LOG_JTAG_UART_ALARM_REGISTER(dev, base) + #define ALT_LOG_SYS_CLK_HEARTBEAT() + #define ALT_LOG_PUTS(str) + #define ALT_LOG_WRITE_FUNCTION(ptr,len) + +#endif /* ALT_LOG_ENABLE */ + +#endif /* __ALT_LOG_PRINTF_H__ */ + diff --git a/software/qsys_tutorial_green_bsp/HAL/inc/sys/alt_set_args.h b/software/qsys_tutorial_green_bsp/HAL/inc/sys/alt_set_args.h new file mode 100644 index 0000000..3750e67 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/HAL/inc/sys/alt_set_args.h @@ -0,0 +1,71 @@ +#ifndef __ALT_SET_ARGS_H__ +#define __ALT_SET_ARGS_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * The function alt_set_args() is provided in order to define the input + * arguments to main(). If this function is not called before main() then the + * argument list passed to main() will be empty. + * + * It is expected that this function will only be used by the ihost/iclient + * utility. + */ + +static inline void alt_set_args (int argc, char** argv, char** envp) +{ + extern int alt_argc; + extern char** alt_argv; + extern char** alt_envp; + + alt_argc = argc; + alt_argv = argv; + alt_envp = envp; +} + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_SET_ARGS_H__ */ diff --git a/software/qsys_tutorial_green_bsp/HAL/inc/sys/alt_sim.h b/software/qsys_tutorial_green_bsp/HAL/inc/sys/alt_sim.h new file mode 100644 index 0000000..06bd27a --- /dev/null +++ b/software/qsys_tutorial_green_bsp/HAL/inc/sys/alt_sim.h @@ -0,0 +1,91 @@ +#ifndef __ALT_SIM_H__ +#define __ALT_SIM_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2007 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ +#include "system.h" +#include "alt_types.h" + +/* + * Instructions that might mean something special to a simulator. + * These have no special effect on real hardware (they are just nops). + */ +#define ALT_SIM_FAIL() \ + do { __asm volatile ("cmpltui r0, r0, 0xabc1"); } while (0) + +#define ALT_SIM_PASS() \ + do { __asm volatile ("cmpltui r0, r0, 0xabc2"); } while (0) + +#define ALT_SIM_IN_TOP_OF_HOT_LOOP() \ + do { __asm volatile ("cmpltui r0, r0, 0xabc3"); } while (0) + +/* + * Routine called on exit. + */ +static ALT_ALWAYS_INLINE void alt_sim_halt(int exit_code) +{ + int r2 = exit_code; + +#if defined(NIOS2_HAS_DEBUG_STUB) && (defined(ALT_BREAK_ON_EXIT) || defined(ALT_PROVIDE_GMON)) + + int r3 = (1 << 2); + +#ifdef ALT_PROVIDE_GMON + extern unsigned int alt_gmon_data[]; + int r4 = (int)alt_gmon_data; + r3 |= (1 << 4); +#define ALT_GMON_DATA ,"D04"(r4) +#else +#define ALT_GMON_DATA +#endif /* ALT_PROVIDE_GMON */ + + if (r2) { + ALT_SIM_FAIL(); + } else { + ALT_SIM_PASS(); + } + + __asm__ volatile ("\n0:\n\taddi %0,%0, -1\n\tbgt %0,zero,0b" : : "r" (ALT_CPU_FREQ/100) ); /* Delay for >30ms */ + + __asm__ volatile ("break 2" : : "D02"(r2), "D03"(r3) ALT_GMON_DATA ); + +#else /* !DEBUG_STUB */ + if (r2) { + ALT_SIM_FAIL(); + } else { + ALT_SIM_PASS(); + } +#endif /* DEBUG_STUB */ +} + +#define ALT_SIM_HALT(exit_code) \ + alt_sim_halt(exit_code) + +#endif /* __ALT_SIM_H__ */ diff --git a/software/qsys_tutorial_green_bsp/HAL/inc/sys/alt_stack.h b/software/qsys_tutorial_green_bsp/HAL/inc/sys/alt_stack.h new file mode 100644 index 0000000..e30652a --- /dev/null +++ b/software/qsys_tutorial_green_bsp/HAL/inc/sys/alt_stack.h @@ -0,0 +1,126 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#ifndef __ALT_STACK_H__ +#define __ALT_STACK_H__ + +/* + * alt_stack.h is the nios2 specific implementation of functions used by the + * stack overflow code. + */ + +#include "nios2.h" + +#include "alt_types.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + + +extern char * alt_stack_limit_value; + +#ifdef ALT_EXCEPTION_STACK +extern char __alt_exception_stack_pointer[]; /* set by the linker */ +#endif /* ALT_EXCEPTION_STACK */ + + +/* + * alt_stack_limit can be called to determine the current value of the stack + * limit register. + */ + +static ALT_INLINE char * ALT_ALWAYS_INLINE alt_stack_limit (void) +{ + char * limit; + NIOS2_READ_ET(limit); + + return limit; +} + +/* + * alt_stack_pointer can be called to determine the current value of the stack + * pointer register. + */ + +static ALT_INLINE char * ALT_ALWAYS_INLINE alt_stack_pointer (void) +{ + char * pointer; + NIOS2_READ_SP(pointer); + + return pointer; +} + + +#ifdef ALT_EXCEPTION_STACK + +/* + * alt_exception_stack_pointer returns the normal stack pointer from + * where it is stored on the exception stack (uppermost 4 bytes). This + * is really only useful during exception processing, and is only + * available if a separate exception stack has been configured. + */ + +static ALT_INLINE char * ALT_ALWAYS_INLINE alt_exception_stack_pointer (void) +{ + return (char *) *(alt_u32 *)(__alt_exception_stack_pointer - sizeof(alt_u32)); +} + +#endif /* ALT_EXCEPTION_STACK */ + + +/* + * alt_set_stack_limit can be called to update the current value of the stack + * limit register. + */ + +static ALT_INLINE void ALT_ALWAYS_INLINE alt_set_stack_limit (char * limit) +{ + alt_stack_limit_value = limit; + NIOS2_WRITE_ET(limit); +} + +/* + * alt_report_stack_overflow reports that a stack overflow happened. + */ + +static ALT_INLINE void ALT_ALWAYS_INLINE alt_report_stack_overflow (void) +{ + NIOS2_REPORT_STACK_OVERFLOW(); +} + + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __ALT_STACK_H__ */ + diff --git a/software/qsys_tutorial_green_bsp/HAL/inc/sys/alt_stdio.h b/software/qsys_tutorial_green_bsp/HAL/inc/sys/alt_stdio.h new file mode 100644 index 0000000..1730360 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/HAL/inc/sys/alt_stdio.h @@ -0,0 +1,62 @@ +#ifndef __ALT_STDIO_H__ +#define __ALT_STDIO_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +/* + * Definitions for ALT stdio routines. + */ + +#include + + +#ifdef __cplusplus +extern "C" { +#endif + +int alt_getchar(); +int alt_putchar(int c); +int alt_putstr(const char* str); +void alt_printf(const char *fmt, ...); + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_STDIO_H__ */ diff --git a/software/qsys_tutorial_green_bsp/HAL/inc/sys/alt_sys_init.h b/software/qsys_tutorial_green_bsp/HAL/inc/sys/alt_sys_init.h new file mode 100644 index 0000000..e4abc28 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/HAL/inc/sys/alt_sys_init.h @@ -0,0 +1,62 @@ +#ifndef __ALT_SYS_INIT_H__ +#define __ALT_SYS_INIT_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * The function alt_sys_init() is defined within the auto-generated file: + * alt_sys_init.c. This function calls the initilisation macros for all + * devices, file systems, and software components within the system. + * + * The list of initilisation macros to use is constructed using the PTF and + * STF files associated with the system. + */ + +extern void alt_sys_init (void); + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_SYS_INIT_H__ */ diff --git a/software/qsys_tutorial_green_bsp/HAL/inc/sys/alt_sys_wrappers.h b/software/qsys_tutorial_green_bsp/HAL/inc/sys/alt_sys_wrappers.h new file mode 100644 index 0000000..044833b --- /dev/null +++ b/software/qsys_tutorial_green_bsp/HAL/inc/sys/alt_sys_wrappers.h @@ -0,0 +1,100 @@ +#ifndef __ALT_SYS_WRAPPERS_H__ +#define __ALT_SYS_WRAPPERS_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/* + * This file provides the prototypes for the HAL 'UNIX style functions. The + * names of these functions are defined in alt_syscall.h. THese are defined to + * be the standard names when running the standalone HAL, e.g. open(), close() + * etc., but the names may be redefined as a part of an operating system port + * in order to avoid name clashes. + */ + +#include "os/alt_syscall.h" + +#include +#include +#include +#include +#include +#include + +extern int ALT_CLOSE (int __fd); +extern int ALT_EXECVE (const char *__path, + char * const __argv[], + char * const __envp[]); +extern void ALT_EXIT (int __status); +extern int ALT_FSTAT (int file, struct stat *st); +extern int ALT_FCNTL (int file, int cmd, ...); +extern pid_t ALT_FORK (void); +extern pid_t ALT_GETPID (void); + +#if defined (__GNUC__) && __GNUC__ >= 4 +extern int ALT_GETTIMEOFDAY (struct timeval *ptimeval, + void *ptimezone); +#else +extern int ALT_GETTIMEOFDAY (struct timeval *ptimeval, + struct timezone *ptimezone); +#endif + +extern int ALT_IOCTL (int file, int req, void* arg); +extern int ALT_ISATTY (int file); +extern int ALT_KILL (int pid, int sig); +extern int ALT_LINK (const char *existing, const char *new); +extern off_t ALT_LSEEK (int file, off_t ptr, int dir); +extern int ALT_OPEN (const char* file, int flags, ...); +extern int ALT_READ (int file, void *ptr, size_t len); +extern int ALT_RENAME (char *existing, char *new); +extern void* ALT_SBRK (ptrdiff_t incr); +extern int ALT_SETTIMEOFDAY (const struct timeval *t, + const struct timezone *tz); +extern int ALT_STAT (const char *file, struct stat *st); +extern clock_t ALT_TIMES (struct tms *buf); +extern int ALT_UNLINK (const char *name); + +#if defined (__GNUC__) && __GNUC__ >= 4 +int ALT_USLEEP (useconds_t us); +#else +unsigned int ALT_USLEEP (unsigned int us); +#endif + +extern int ALT_WAIT (int *status); +extern int ALT_WRITE (int file, const void *ptr, size_t len); + + +extern char** ALT_ENVIRON; + +/* + * + */ + +#endif /* __ALT_SYS_WRAPPERS_H__ */ diff --git a/software/qsys_tutorial_green_bsp/HAL/inc/sys/alt_timestamp.h b/software/qsys_tutorial_green_bsp/HAL/inc/sys/alt_timestamp.h new file mode 100644 index 0000000..8a18da2 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/HAL/inc/sys/alt_timestamp.h @@ -0,0 +1,60 @@ +#ifndef __ALT_TIMESTAMP_H__ +#define __ALT_TIMESTAMP_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#include "alt_types.h" +#include "altera_avalon_timer.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +extern int alt_timestamp_start (void); + +extern alt_timestamp_type alt_timestamp (void); + +extern alt_u32 alt_timestamp_freq (void); + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_TIMESTAMP_H__ */ diff --git a/software/qsys_tutorial_green_bsp/HAL/inc/sys/alt_warning.h b/software/qsys_tutorial_green_bsp/HAL/inc/sys/alt_warning.h new file mode 100644 index 0000000..b66e71a --- /dev/null +++ b/software/qsys_tutorial_green_bsp/HAL/inc/sys/alt_warning.h @@ -0,0 +1,75 @@ +#ifndef __WARNING_H__ +#define __WARNING_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/* + * alt_warning.h provides macro definitions that can be used to generate link + * time warnings. + */ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * The symbol "__alt_invalid" is used to force a link error. There should be + * no corresponding implementation of this function. + */ + +extern void __alt_invalid (void); + +#define ALT_LINK_WARNING(symbol, msg) \ + __asm__(".ifndef __evoke_link_warning_" #symbol \ + "\n\t .section .gnu.warning." #symbol \ + "\n__evoke_link_warning_" #symbol ":\n\t .string \x22" msg "\x22 \n\t .previous" \ + "\n .endif"); + +/* A canned warning for sysdeps/stub functions. */ + +#define ALT_STUB_WARNING(name) \ + ALT_LINK_WARNING (name, \ + "warning: " #name " is not implemented and will always fail") + +#define ALT_OBSOLETE_FUNCTION_WARNING(name) \ + ALT_LINK_WARNING (name, \ + "warning: " #name " is a deprecated function") + +#define ALT_LINK_ERROR(msg) \ + ALT_LINK_WARNING (__alt_invalid, msg); \ + __alt_invalid() + +#ifdef __cplusplus +} +#endif + +#endif /* __WARNING_H__ */ diff --git a/software/qsys_tutorial_green_bsp/HAL/inc/sys/ioctl.h b/software/qsys_tutorial_green_bsp/HAL/inc/sys/ioctl.h new file mode 100644 index 0000000..4d565df --- /dev/null +++ b/software/qsys_tutorial_green_bsp/HAL/inc/sys/ioctl.h @@ -0,0 +1,90 @@ +#ifndef __IOCTL_H__ +#define __IOCTL_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * The ioctl() system call be used to initiate a variety of control operations + * on a file descriptor. For the most part this simply translates to a call to + * the ioctl() function of the associated device driver (TIOCEXCL and + * TIOCNXCL are notable exceptions - see ioctl.c for details). + * + * The interpretation of the ioctl requests are therefore device specific. + * + * This function is equivalent to the standard Posix ioctl() call. + */ + +extern int ioctl (int fd, int req, void* arg); + +/* + * list of ioctl calls handled by the system ioctl implementation. + */ + +#define TIOCEXCL 0x740d /* exclusive use of the device */ +#define TIOCNXCL 0x740e /* allow multiple use of the device */ + +/* + * ioctl calls which can be handled by device drivers. + */ + +#define TIOCOUTQ 0x7472 /* get output queue size */ +#define TIOCMGET 0x741d /* get termios flags */ +#define TIOCMSET 0x741a /* set termios flags */ + +/* + * ioctl calls specific to JTAG UART. + */ + +#define TIOCSTIMEOUT 0x6a01 /* Set Timeout before assuming no host present */ +#define TIOCGCONNECTED 0x6a02 /* Get indication of whether host is connected */ + +/* + * + */ + +#ifdef __cplusplus +} +#endif + +#endif /* __IOCTL_H__ */ diff --git a/software/qsys_tutorial_green_bsp/HAL/inc/sys/termios.h b/software/qsys_tutorial_green_bsp/HAL/inc/sys/termios.h new file mode 100644 index 0000000..cd09539 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/HAL/inc/sys/termios.h @@ -0,0 +1,181 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +/* + * This is the termios.h file provided with newlib. The only modification has + * been to the baud rate macro definitions, and an increase in the size of the + * termios structure to accomodate this. + */ + + +#ifndef _SYS_TERMIOS_H +# define _SYS_TERMIOS_H + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +# define _XCGETA (('x'<<8)|1) +# define _XCSETA (('x'<<8)|2) +# define _XCSETAW (('x'<<8)|3) +# define _XCSETAF (('x'<<8)|4) +# define _TCSBRK (('T'<<8)|5) +# define _TCFLSH (('T'<<8)|7) +# define _TCXONC (('T'<<8)|6) + +# define TCOOFF 0 +# define TCOON 1 +# define TCIOFF 2 +# define TCION 3 + +# define TCIFLUSH 0 +# define TCOFLUSH 1 +# define TCIOFLUSH 2 + +# define NCCS 13 + +# define TCSAFLUSH _XCSETAF +# define TCSANOW _XCSETA +# define TCSADRAIN _XCSETAW +# define TCSADFLUSH _XCSETAF + +# define IGNBRK 000001 +# define BRKINT 000002 +# define IGNPAR 000004 +# define INPCK 000020 +# define ISTRIP 000040 +# define INLCR 000100 +# define IGNCR 000200 +# define ICRNL 000400 +# define IXON 002000 +# define IXOFF 010000 + +# define OPOST 000001 +# define OCRNL 000004 +# define ONLCR 000010 +# define ONOCR 000020 +# define TAB3 014000 + +# define CLOCAL 004000 +# define CREAD 000200 +# define CSIZE 000060 +# define CS5 0 +# define CS6 020 +# define CS7 040 +# define CS8 060 +# define CSTOPB 000100 +# define HUPCL 002000 +# define PARENB 000400 +# define PAODD 001000 + +#define CCTS_OFLOW 010000 +#define CRTS_IFLOW 020000 +#define CRTSCTS (CCTS_OFLOW | CRTS_IFLOW) + +# define ECHO 0000010 +# define ECHOE 0000020 +# define ECHOK 0000040 +# define ECHONL 0000100 +# define ICANON 0000002 +# define IEXTEN 0000400 /* anybody know *what* this does?! */ +# define ISIG 0000001 +# define NOFLSH 0000200 +# define TOSTOP 0001000 + +# define VEOF 4 /* also VMIN -- thanks, AT&T */ +# define VEOL 5 /* also VTIME -- thanks again */ +# define VERASE 2 +# define VINTR 0 +# define VKILL 3 +# define VMIN 4 /* also VEOF */ +# define VQUIT 1 +# define VSUSP 10 +# define VTIME 5 /* also VEOL */ +# define VSTART 11 +# define VSTOP 12 + +# define B0 0 +# define B50 50 +# define B75 75 +# define B110 110 +# define B134 134 +# define B150 150 +# define B200 200 +# define B300 300 +# define B600 600 +# define B1200 1200 +# define B1800 1800 +# define B2400 2400 +# define B4800 4800 +# define B9600 9600 +# define B19200 19200 +# define B38400 38400 +# define B57600 57600 +# define B115200 115200 + +typedef unsigned char cc_t; +typedef unsigned short tcflag_t; +typedef unsigned long speed_t; + +struct termios { + tcflag_t c_iflag; + tcflag_t c_oflag; + tcflag_t c_cflag; + tcflag_t c_lflag; + char c_line; + cc_t c_cc[NCCS]; + speed_t c_ispeed; + speed_t c_ospeed; +}; + +# ifndef _NO_MACROS + +# define cfgetospeed(tp) ((tp)->c_ospeed) +# define cfgetispeed(tp) ((tp)->c_ispeed) +# define cfsetospeed(tp,s) (((tp)->c_ospeed = (s)), 0) +# define cfsetispeed(tp,s) (((tp)->c_ispeed = (s)), 0) +# define tcdrain(fd) _ioctl (fd, _TCSBRK, 1) +# endif /* _NO_MACROS */ + +#ifdef __cplusplus +} +#endif + +#endif /* _SYS_TERMIOS_H */ + diff --git a/software/qsys_tutorial_green_bsp/HAL/src/alt_alarm_start.c b/software/qsys_tutorial_green_bsp/HAL/src/alt_alarm_start.c new file mode 100644 index 0000000..7739959 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/HAL/src/alt_alarm_start.c @@ -0,0 +1,112 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +#include "sys/alt_alarm.h" +#include "sys/alt_irq.h" + +/* + * alt_alarm_start is called to register an alarm with the system. The + * "alarm" structure passed as an input argument does not need to be + * initialised by the user. This is done within this function. + * + * The remaining input arguments are: + * + * nticks - The time to elapse until the alarm executes. This is specified in + * system clock ticks. + * callback - The function to run when the indicated time has elapsed. + * context - An opaque value, passed to the callback function. +* + * Care should be taken when defining the callback function since it is + * likely to execute in interrupt context. In particular, this mean that + * library calls like printf() should not be made, since they can result in + * deadlock. + * + * The interval to be used for the next callback is the return + * value from the callback function. A return value of zero indicates that the + * alarm should be unregistered. + * + * alt_alarm_start() will fail if the timer facility has not been enabled + * (i.e. there is no system clock). Failure is indicated by a negative return + * value. + */ + +int alt_alarm_start (alt_alarm* alarm, alt_u32 nticks, + alt_u32 (*callback) (void* context), + void* context) +{ + alt_irq_context irq_context; + alt_u32 current_nticks = 0; + + if (alt_ticks_per_second ()) + { + if (alarm) + { + alarm->callback = callback; + alarm->context = context; + + irq_context = alt_irq_disable_all (); + + current_nticks = alt_nticks(); + + alarm->time = nticks + current_nticks + 1; + + /* + * If the desired alarm time causes a roll-over, set the rollover + * flag. This will prevent the subsequent tick event from causing + * an alarm too early. + */ + if(alarm->time < current_nticks) + { + alarm->rollover = 1; + } + else + { + alarm->rollover = 0; + } + + alt_llist_insert (&alt_alarm_list, &alarm->llist); + alt_irq_enable_all (irq_context); + + return 0; + } + else + { + return -EINVAL; + } + } + else + { + return -ENOTSUP; + } +} diff --git a/software/qsys_tutorial_green_bsp/HAL/src/alt_busy_sleep.c b/software/qsys_tutorial_green_bsp/HAL/src/alt_busy_sleep.c new file mode 100644 index 0000000..561c0be --- /dev/null +++ b/software/qsys_tutorial_green_bsp/HAL/src/alt_busy_sleep.c @@ -0,0 +1,133 @@ +/* + * Copyright (c) 2003-2004 Altera Corporation, San Jose, California, USA. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + * ------------ + * + * Altera does not recommend, suggest or require that this reference design + * file be used in conjunction or combination with any other product. + * + * alt_busy_sleep.c - Microsecond delay routine which uses a calibrated busy + * loop to perform the delay. This is used to implement + * usleep for both uC/OS-II and the standalone HAL. + * + * Author PRR + * + * Calibrated delay with no timer required + * + * The ASM instructions in the routine are equivalent to + * + * for (i=0;i +#include + +#include "system.h" +#include "alt_types.h" + +#include "priv/alt_busy_sleep.h" + +unsigned int alt_busy_sleep (unsigned int us) +{ +/* + * Only delay if ALT_SIM_OPTIMIZE is not defined; i.e., if software + * is built targetting ModelSim RTL simulation, the delay will be + * skipped to speed up simulation. + */ +#ifndef ALT_SIM_OPTIMIZE + int i; + int big_loops; + alt_u32 cycles_per_loop; + + if (!strcmp(NIOS2_CPU_IMPLEMENTATION,"tiny")) + { + cycles_per_loop = 9; + } + else + { + cycles_per_loop = 3; + } + + + big_loops = us / (INT_MAX/ + (ALT_CPU_FREQ/(cycles_per_loop * 1000000))); + + if (big_loops) + { + for(i=0;i + +#include "sys/alt_errno.h" +#include "sys/alt_warning.h" +#include "priv/alt_file.h" +#include "os/alt_syscall.h" + +#ifdef ALT_USE_DIRECT_DRIVERS + +int ALT_CLOSE (int fildes) +{ + /* Generate a link time warning, should this function ever be called. */ + + ALT_STUB_WARNING(close); + + /* Indicate an error */ + + ALT_ERRNO = ENOSYS; + return -1; +} + +#else /* !ALT_USE_DIRECT_DRIVERS */ + +/* + * close() is called by an application to release a file descriptor. If the + * associated file system/device has a close() callback function registered + * then this called. The file descriptor is then marked as free. + * + * ALT_CLOSE is mapped onto the close() system call in alt_syscall.h + */ + +int ALT_CLOSE (int fildes) +{ + alt_fd* fd; + int rval; + + /* + * A common error case is that when the file descriptor was created, the call + * to open() failed resulting in a negative file descriptor. This is trapped + * below so that we don't try and process an invalid file descriptor. + */ + + fd = (fildes < 0) ? NULL : &alt_fd_list[fildes]; + + if (fd) + { + /* + * If the associated file system/device has a close function, call it so + * that any necessary cleanup code can run. + */ + + rval = (fd->dev->close) ? fd->dev->close(fd) : 0; + + /* Free the file descriptor structure and return. */ + + alt_release_fd (fildes); + if (rval < 0) + { + ALT_ERRNO = -rval; + return -1; + } + return 0; + } + else + { + ALT_ERRNO = EBADFD; + return -1; + } +} + +#endif /* ALT_USE_DIRECT_DRIVERS */ diff --git a/software/qsys_tutorial_green_bsp/HAL/src/alt_dcache_flush.c b/software/qsys_tutorial_green_bsp/HAL/src/alt_dcache_flush.c new file mode 100644 index 0000000..7ecc91a --- /dev/null +++ b/software/qsys_tutorial_green_bsp/HAL/src/alt_dcache_flush.c @@ -0,0 +1,97 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003-2005 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "nios2.h" +#include "system.h" + +#include "alt_types.h" +#include "sys/alt_cache.h" + +/* + * Nios II version 1.2 and newer supports the "flush by address" instruction, in + * addition to the "flush by line" instruction provided by older versions of + * the core. This newer instruction is used by preference when it is + * available. + */ + +#ifdef NIOS2_FLUSHDA_SUPPORTED +#define ALT_FLUSH_DATA(i) __asm__ volatile ("flushda (%0)" :: "r" (i)); +#else +#define ALT_FLUSH_DATA(i) __asm__ volatile ("flushd (%0)" :: "r" (i)); +#endif /* NIOS2_FLUSHDA_SUPPORTED */ + +/* + * alt_dcache_flush() is called to flush the data cache for a memory + * region of length "len" bytes, starting at address "start". + * + * Any dirty lines in the data cache are written back to memory. + */ + +void alt_dcache_flush (void* start, alt_u32 len) +{ +#if NIOS2_DCACHE_SIZE > 0 + + char* i; + char* end; + + /* + * This is the most we would ever need to flush. + * + * SPR 196942, 2006.01.13: The cache flush loop below will use the + * 'flushda' instruction if its available; in that case each line + * must be flushed individually, and thus 'len' cannot be trimmed. + */ + #ifndef NIOS2_FLUSHDA_SUPPORTED + if (len > NIOS2_DCACHE_SIZE) + { + len = NIOS2_DCACHE_SIZE; + } + #endif + + end = ((char*) start) + len; + + for (i = start; i < end; i+= NIOS2_DCACHE_LINE_SIZE) + { + ALT_FLUSH_DATA(i); + } + + /* + * For an unaligned flush request, we've got one more line left. + * Note that this is dependent on NIOS2_DCACHE_LINE_SIZE to be a + * multiple of 2 (which it always is). + */ + + if (((alt_u32) start) & (NIOS2_DCACHE_LINE_SIZE - 1)) + { + ALT_FLUSH_DATA(i); + } + +#endif /* NIOS2_DCACHE_SIZE > 0 */ +} diff --git a/software/qsys_tutorial_green_bsp/HAL/src/alt_dcache_flush_all.c b/software/qsys_tutorial_green_bsp/HAL/src/alt_dcache_flush_all.c new file mode 100644 index 0000000..6529231 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/HAL/src/alt_dcache_flush_all.c @@ -0,0 +1,51 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003-2005 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "nios2.h" +#include "system.h" + +#include "alt_types.h" +#include "sys/alt_cache.h" + +/* + * alt_dcache_flush_all() is called to flush the entire data cache. + */ + +void alt_dcache_flush_all (void) +{ +#if NIOS2_DCACHE_SIZE > 0 + char* i; + + for (i = (char*) 0; i < (char*) NIOS2_DCACHE_SIZE; i+= NIOS2_DCACHE_LINE_SIZE) + { + __asm__ volatile ("flushd (%0)" :: "r" (i)); + } +#endif /* NIOS2_DCACHE_SIZE > 0 */ +} diff --git a/software/qsys_tutorial_green_bsp/HAL/src/alt_dcache_flush_no_writeback.c b/software/qsys_tutorial_green_bsp/HAL/src/alt_dcache_flush_no_writeback.c new file mode 100644 index 0000000..c65ca7d --- /dev/null +++ b/software/qsys_tutorial_green_bsp/HAL/src/alt_dcache_flush_no_writeback.c @@ -0,0 +1,88 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2007 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "nios2.h" +#include "system.h" + +#include "alt_types.h" +#include "sys/alt_cache.h" + +/* + * The INITDA instruction was added to Nios II in the 8.0 release. + * + * The INITDA instruction has one of the following possible behaviors + * depending on the processor configuration: + * 1) Flushes a line by address but does NOT write back dirty data. + * Occurs when a data cache is present that supports INITDA. + * The macro NIOS2_INITDA_SUPPORTED is defined in system.h. + * 2) Takes an unimplemented instruction exception. + * Occurs when a data cache is present that doesn't support INITDA. + * 3) Performs no operation + * Occurs when there is no data cache present. + * The macro NIOS2_DCACHE_SIZE is 0 in system.h. + */ + +#define ALT_FLUSH_DATA_NO_WRITEBACK(i) \ + __asm__ volatile ("initda (%0)" :: "r" (i)); + +/* + * alt_dcache_flush_no_writeback() is called to flush the data cache for a + * memory region of length "len" bytes, starting at address "start". + * + * Any dirty lines in the data cache are NOT written back to memory. + * Make sure you really want this behavior. If you aren't 100% sure, + * use the alt_dcache_flush() routine instead. + */ + +void alt_dcache_flush_no_writeback (void* start, alt_u32 len) +{ +#if defined(NIOS2_INITDA_SUPPORTED) + + char* i; + char* end = ((char*) start) + len; + + for (i = start; i < end; i+= NIOS2_DCACHE_LINE_SIZE) + { + ALT_FLUSH_DATA_NO_WRITEBACK(i); + } + + /* + * For an unaligned flush request, we've got one more line left. + * Note that this is dependent on NIOS2_DCACHE_LINE_SIZE to be a + * multiple of 2 (which it always is). + */ + + if (((alt_u32) start) & (NIOS2_DCACHE_LINE_SIZE - 1)) + { + ALT_FLUSH_DATA_NO_WRITEBACK(i); + } + +#endif /* NIOS2_INITDA_SUPPORTED */ +} diff --git a/software/qsys_tutorial_green_bsp/HAL/src/alt_dev.c b/software/qsys_tutorial_green_bsp/HAL/src/alt_dev.c new file mode 100644 index 0000000..ebc15e5 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/HAL/src/alt_dev.c @@ -0,0 +1,149 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include +#include +#include +#include + +#include "sys/alt_dev.h" +#include "priv/alt_file.h" + +#include "alt_types.h" + +#include "system.h" + +/* + * This file contains the data constructs used to control access to device and + * filesytems. + */ + +/* + * "alt_fs_list" is the head of a linked list of registered filesystems. It is + * initialised as an empty list. New entries can be added using the + * alt_fs_reg() function. + */ + +ALT_LLIST_HEAD(alt_fs_list); + + +/* + * "alt_dev_list" is the head of a linked list of registered devices. It is + * configured at startup to include a single device, "alt_dev_null". This + * device is discussed below. + */ + +extern alt_dev alt_dev_null; /* forward declaration */ + +alt_llist alt_dev_list = {&alt_dev_null.llist, &alt_dev_null.llist}; + +/* + * alt_dev_null_write() is the implementation of the write() function used + * by the alt_dev_null device. It simple discards all data passed to it, and + * indicates that the data has been successfully transmitted. + */ + +static int alt_dev_null_write (alt_fd* fd, const char* ptr, int len) +{ + return len; +} + +/* + * "alt_dev_null" is used to allow output to be redirected to nowhere. It is + * the only device registered before the call to alt_sys_init(). At startup + * stin, stdout & stderr are all directed towards this device so that library + * calls like printf() will be safe but inefectual. + */ + +alt_dev alt_dev_null = { + { + &alt_dev_list, + &alt_dev_list + }, + "/dev/null", + NULL, /* open */ + NULL, /* close */ + NULL, /* write */ + alt_dev_null_write, /* write */ + NULL, /* lseek */ + NULL, /* fstat */ + NULL /* ioctl */ + }; + +/* + * "alt_fd_list_lock" is a semaphore used to control access to the file + * descriptor list. This is used to ensure that access to the list is thread + * safe. + */ + +ALT_SEM(alt_fd_list_lock) + +/* + * "alt_max_fd" is used to make access to the file descriptor list more + * efficent. It is set to be the value of the highest allocated file + * descriptor. This saves having to search the entire pool of unallocated + * file descriptors when looking for a match. + */ + +alt_32 alt_max_fd = -1; + +/* + * "alt_fd_list" is the file descriptor pool. The first three entries in the + * array are configured as standard in, standard out, and standard error. These + * are all initialised so that accesses are directed to the alt_dev_null + * device. The remaining file descriptors are initialised as unallocated. + * + * The maximum number of file descriptors within the system is specified by the + * user defined macro "ALT_MAX_FD". This is defined in "system.h", which is + * auto-genereated using the projects PTF and STF files. + */ + +alt_fd alt_fd_list[ALT_MAX_FD] = + { + { + &alt_dev_null, /* standard in */ + 0, + 0 + }, + { + &alt_dev_null, /* standard out */ + 0, + 0 + }, + { + &alt_dev_null, /* standard error */ + 0, + 0 + } + /* all other elements are set to zero */ + }; diff --git a/software/qsys_tutorial_green_bsp/HAL/src/alt_dev_llist_insert.c b/software/qsys_tutorial_green_bsp/HAL/src/alt_dev_llist_insert.c new file mode 100644 index 0000000..fa7239d --- /dev/null +++ b/software/qsys_tutorial_green_bsp/HAL/src/alt_dev_llist_insert.c @@ -0,0 +1,59 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "priv/alt_dev_llist.h" +#include "sys/alt_errno.h" + +/* + * + */ + +int alt_dev_llist_insert (alt_dev_llist* dev, alt_llist* list) +{ + /* + * check that the device exists, and that it has a valid name. + */ + + if (!dev || !dev->name) + { + ALT_ERRNO = EINVAL; + return -EINVAL; + } + + /* + * register the device. + */ + + alt_llist_insert(list, &dev->llist); + + return 0; +} diff --git a/software/qsys_tutorial_green_bsp/HAL/src/alt_dma_rxchan_open.c b/software/qsys_tutorial_green_bsp/HAL/src/alt_dma_rxchan_open.c new file mode 100644 index 0000000..6ea3b78 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/HAL/src/alt_dma_rxchan_open.c @@ -0,0 +1,63 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_dma.h" +#include "sys/alt_errno.h" +#include "priv/alt_file.h" + +/* + * The list of registered DMA receive channels. + */ + +ALT_LLIST_HEAD(alt_dma_rxchan_list); + +/* + * alt_dma_txchan_open() is used to obtain an "alt_dma_txchan" descriptor for + * a DMA transmit device. The name is the name of the associated physical + * device (e.g. "/dev/dma_0"). + * + * The return value will be NULL on failure, and non-NULL otherwise. + */ + +alt_dma_rxchan alt_dma_rxchan_open (const char* name) +{ + alt_dma_rxchan dev; + + dev = (alt_dma_rxchan) alt_find_dev (name, &alt_dma_rxchan_list); + + if (!dev) + { + ALT_ERRNO = ENODEV; + } + + return dev; +} diff --git a/software/qsys_tutorial_green_bsp/HAL/src/alt_dma_txchan_open.c b/software/qsys_tutorial_green_bsp/HAL/src/alt_dma_txchan_open.c new file mode 100644 index 0000000..f41fa81 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/HAL/src/alt_dma_txchan_open.c @@ -0,0 +1,63 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_dma.h" +#include "sys/alt_errno.h" +#include "priv/alt_file.h" + +/* + * The list of registered receive channels. + */ + +ALT_LLIST_HEAD(alt_dma_txchan_list); + +/* + * alt_dma_txchan_open() is used to obtain an "alt_dma_txchan" descriptor for + * a DMA transmit device. The name is the name of the associated physical + * device (e.g. "/dev/dma_0"). + * + * The return value will be NULL on failure, and non-NULL otherwise. + */ + +alt_dma_txchan alt_dma_txchan_open (const char* name) +{ + alt_dma_txchan dev; + + dev = (alt_dma_txchan) alt_find_dev (name, &alt_dma_txchan_list); + + if (!dev) + { + ALT_ERRNO = ENODEV; + } + + return dev; +} diff --git a/software/qsys_tutorial_green_bsp/HAL/src/alt_do_ctors.c b/software/qsys_tutorial_green_bsp/HAL/src/alt_do_ctors.c new file mode 100644 index 0000000..ff5a1f7 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/HAL/src/alt_do_ctors.c @@ -0,0 +1,64 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT IT DIRECTLY. * +* * +* Overriding HAL Functions * +* * +* To provide your own implementation of a HAL function, include the file in * +* your Nios II IDE application project. When building the executable, the * +* Nios II IDE finds your function first, and uses it in place of the HAL * +* version. * +* * +******************************************************************************/ + +/* + * + */ + +typedef void (*constructor) (void); +extern constructor __CTOR_LIST__[]; +extern constructor __CTOR_END__[]; + +/* + * Run the C++ static constructors. + */ + +void _do_ctors(void) +{ + constructor* ctor; + + for (ctor = &__CTOR_END__[-1]; ctor >= __CTOR_LIST__; ctor--) + (*ctor) (); +} diff --git a/software/qsys_tutorial_green_bsp/HAL/src/alt_do_dtors.c b/software/qsys_tutorial_green_bsp/HAL/src/alt_do_dtors.c new file mode 100644 index 0000000..565c99f --- /dev/null +++ b/software/qsys_tutorial_green_bsp/HAL/src/alt_do_dtors.c @@ -0,0 +1,64 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT IT DIRECTLY. * +* * +* Overriding HAL Functions * +* * +* To provide your own implementation of a HAL function, include the file in * +* your Nios II IDE application project. When building the executable, the * +* Nios II IDE finds your function first, and uses it in place of the HAL * +* version. * +* * +******************************************************************************/ + +/* + * + */ + +typedef void (*destructor) (void); +extern destructor __DTOR_LIST__[]; +extern destructor __DTOR_END__[]; + +/* + * Run the C++ static destructors. + */ + +void _do_dtors(void) +{ + destructor* dtor; + + for (dtor = &__DTOR_END__[-1]; dtor >= __DTOR_LIST__; dtor--) + (*dtor) (); +} diff --git a/software/qsys_tutorial_green_bsp/HAL/src/alt_env_lock.c b/software/qsys_tutorial_green_bsp/HAL/src/alt_env_lock.c new file mode 100644 index 0000000..fc25a0c --- /dev/null +++ b/software/qsys_tutorial_green_bsp/HAL/src/alt_env_lock.c @@ -0,0 +1,53 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +/* + * These are the empty env lock/unlock stubs required by newlib. These are + * used to make accesses to environment variables thread safe. The default HAL + * configuration is single threaded, so there is nothing to do here. Note that + * this requires that environment variables are never manipulated by an interrupt + * service routine. + */ + +void __env_lock ( struct _reent *_r ) +{ +} + +/* + * + */ + +void __env_unlock ( struct _reent *_r ) +{ +} diff --git a/software/qsys_tutorial_green_bsp/HAL/src/alt_environ.c b/software/qsys_tutorial_green_bsp/HAL/src/alt_environ.c new file mode 100644 index 0000000..404efc4 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/HAL/src/alt_environ.c @@ -0,0 +1,42 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "os/alt_syscall.h" + +/* + * These are the environment variables passed to the C code. By default there + * are no variables registered. An application can manipulate this list using + * getenv() and setenv(). + */ + +char *__env[1] = { 0 }; +char **ALT_ENVIRON = __env; diff --git a/software/qsys_tutorial_green_bsp/HAL/src/alt_errno.c b/software/qsys_tutorial_green_bsp/HAL/src/alt_errno.c new file mode 100644 index 0000000..1d8368d --- /dev/null +++ b/software/qsys_tutorial_green_bsp/HAL/src/alt_errno.c @@ -0,0 +1,44 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/* + * This file defines the alt_errno global variable. See comments in + * alt_errno.h for the use of this variable. + */ + + +#include "sys/alt_errno.h" +#include "alt_types.h" + +extern int ALT_WEAK *__errno (void); + +int* (*alt_errno) (void) = __errno; diff --git a/software/qsys_tutorial_green_bsp/HAL/src/alt_exception_entry.S b/software/qsys_tutorial_green_bsp/HAL/src/alt_exception_entry.S new file mode 100644 index 0000000..3afab93 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/HAL/src/alt_exception_entry.S @@ -0,0 +1,360 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003-2008 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "system.h" + +/* + * This is the exception entry point code, which saves all the caller saved + * registers and then handles the appropriate exception. It should be pulled + * in using a .globl from all the exception handler routines. This scheme is + * used so that if an interrupt is never registered, then this code will not + * appear in the generated executable, thereby improving code footprint. + * + * If an external interrpt controller (EIC) is present, it will supply an + * interrupt vector address to the processor when an interrupt occurs. For + * The Altera Vectored Interrupt Controller (VIC) driver will establish a + * vector table and the processor will jump directly to the appropriate + * table entry, funnel routine, and then user ISR. This will bypass this code + * in entirety. This code might still be linked into a system with an EIC, + * but would then be used only for non-interrupt exceptions. + */ + + /* + * Explicitly allow the use of r1 (the assembler temporary register) + * within this code. This register is normally reserved for the use of + * the assembler. + */ + .set noat + + /* + * The top and bottom of the exception stack + */ +#ifdef ALT_EXCEPTION_STACK + + .globl __alt_exception_stack_pointer + +#ifdef ALT_STACK_CHECK + + .globl __alt_exception_stack_limit + + /* + * We need to store the value of the stack limit after interrupt somewhere. + */ + .globl alt_exception_old_stack_limit + +#endif +#endif + + .section .exceptions.entry.label, "xa" + + .globl alt_exception + .type alt_exception, @function +alt_exception: + + .section .exceptions.entry, "xa" + +#ifdef ALT_EXCEPTION_STACK + +#ifdef ALT_STACK_CHECK + stw et, %gprel(alt_exception_old_stack_limit)(gp) +#endif + + movhi et, %hiadj(__alt_exception_stack_pointer - 80) + addi et, et, %lo(__alt_exception_stack_pointer - 80) + stw sp, 76(et) + mov sp, et + +#ifdef ALT_STACK_CHECK + movhi et, %hiadj(__alt_exception_stack_limit) + addi et, et, %lo(__alt_exception_stack_limit) + stw et, %gprel(alt_stack_limit_value)(gp) +#endif + +#else + /* + * Process an exception. For all exceptions we must preserve all + * caller saved registers on the stack (See the Nios2 ABI + * documentation for details). + */ + + addi sp, sp, -76 + +#ifdef ALT_STACK_CHECK + + bltu sp, et, .Lstack_overflow + +#endif + +#endif + + stw ra, 0(sp) + + /* + * Leave a gap in the stack frame at 4(sp) for the muldiv handler to + * store zero into. + */ + + stw r1, 8(sp) + stw r2, 12(sp) + stw r3, 16(sp) + stw r4, 20(sp) + stw r5, 24(sp) + stw r6, 28(sp) + stw r7, 32(sp) + + rdctl r5, estatus + + stw r8, 36(sp) + stw r9, 40(sp) + stw r10, 44(sp) + stw r11, 48(sp) + stw r12, 52(sp) + stw r13, 56(sp) + stw r14, 60(sp) + stw r15, 64(sp) + + /* + * ea-4 contains the address of the instruction being executed + * when the exception occured. For interrupt exceptions, we will + * will be re-issue the isntruction. Store it in 72(sp) + */ + stw r5, 68(sp) /* estatus */ + addi r15, ea, -4 /* instruction that caused exception */ + stw r15, 72(sp) + + /* + * The interrupt testing code (.exceptions.irqtest) will be + * linked here. If the Internal Interrupt Controller (IIC) is + * present (an EIC is not present), the presense of an interrupt + * is determined by examining CPU control registers or an interrupt + * custom instruction, if present. + * + * If the IIC is used and an interrupt is active, the code linked + * here will call the HAL IRQ handler (alt_irq_handler()) which + * successively calls registered interrupt handler(s) until no + * interrupts remain pending. It then jumps to .exceptions.exit. If + * there is no interrupt then it continues to .exception.notirq, below. + */ + + .section .exceptions.notirq, "xa" + + /* + * Prepare to service unimplemtned instructions or traps, + * each of which is optionally inked into section .exceptions.soft, + * which will preceed .exceptions.unknown below. + * + * Unlike interrupts, we want to skip the exception-causing instructon + * upon completion, so we write ea (address of instruction *after* + * the one where the exception occured) into 72(sp). The actual + * instruction that caused the exception is written in r2, which these + * handlers will utilize. + */ + stw ea, 72(sp) /* Don't re-issue */ + ldw r2, -4(ea) /* Instruction that caused exception */ + + /* + * Other exception handling code, if enabled, will be linked here. + * This includes unimplemted (multiply/divide) instruction support + * (a BSP generaton option), and a trap handler (that would typically + * be augmented with user-specific code). These are not linked in by + * default. + */ + + /* + * In the context of linker sections, "unknown" are all exceptions + * not handled by the built-in handlers above (interupt, and trap or + * unimplemented instruction decoding, if enabled). + * + * Advanced exception types can be serviced by registering a handler. + * To do so, enable the "Enable Instruction-related Exception API" HAL + * BSP setting. If this setting is disabled, this handler code will + * either break (if the debug core is present) or enter an infinite + * loop because we don't how how to handle the exception. + */ + .section .exceptions.unknown +#ifdef ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API + /* + * The C-based HAL routine alt_instruction_exception_entry() will + * attempt to service the exception by calling a user-registered + * exception handler using alt_instruction_exception_register(). + * If no handler was registered it will either break (if the + * debugger is present) or go into an infinite loop since the + * handling behavior is undefined; in that case we will not return here. + */ + + /* Load exception-causing address as first argument (r4) */ + addi r4, ea, -4 + + /* Call the instruction-exception entry */ + call alt_instruction_exception_entry + + /* + * If alt_instruction_exception_entry() returned, the exception was + * serviced by a user-registered routine. Its return code (now in r2) + * indicates whether to re-issue or skip the exception-causing + * instruction + * + * Return code was 0: Skip. The instruction after the exception is + * already stored in 72(sp). + */ + bne r2, r0, .Lexception_exit + + /* + * Otherwise, modify 72(sp) to re-issue the instruction that caused the + * exception. + */ + addi r15, ea, -4 /* instruction that caused exception */ + stw r15, 72(sp) + +#else /* ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API disabled */ + + /* + * We got here because an instruction-related exception occured, but the + * handler API was not compiled in. We do not presume to know how to + * handle it. If the debugger is present, break, otherwise hang. + * + * If you get here then one of the following could have happened: + * + * - An instruction-generated exception occured, and the processor + * does not have the extra exceptions feature enabled, or you + * have not registered a handler using + * alt_instruction_exception_register() + * + * Some examples of instruction-generated exceptions and why they + * might occur: + * + * - Your program could have been compiled for a full-featured + * Nios II core, but it is running on a smaller core, and + * instruction emulation has been disabled by defining + * ALT_NO_INSTRUCTION_EMULATION. + * + * You can work around the problem by re-enabling instruction + * emulation, or you can figure out why your program is being + * compiled for a system other than the one that it is running on. + * + * - Your program has executed a trap instruction, but has not + * implemented a handler for this instruction. + * + * - Your program has executed an illegal instruction (one which is + * not defined in the instruction set). + * + * - Your processor includes an MMU or MPU, and you have enabled it + * before registering an exception handler to service exceptions it + * generates. + * + * The problem could also be hardware related: + * - If your hardware is broken and is generating spurious interrupts + * (a peripheral which negates its interrupt output before its + * interrupt handler has been executed will cause spurious + * interrupts) + */ +#ifdef NIOS2_HAS_DEBUG_STUB + /* + * Either tell the user now (if there is a debugger attached) or go into + * the debug monitor which will loop until a debugger is attached. + */ + break +#else + /* + * If there is no debug stub then a BREAK will probably cause a reboot. + * An infinate loop will probably be more useful. + */ +0: + br 0b +#endif /* NIOS2_HAS_DEBUG_STUB */ + +#endif /* ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API */ + + .section .exceptions.exit.label +.Lexception_exit: + + .section .exceptions.exit, "xa" + + /* + * Restore the saved registers, so that all general purpose registers + * have been restored to their state at the time the interrupt occured. + */ + + ldw r5, 68(sp) + ldw ea, 72(sp) /* This becomes the PC once eret is executed */ + ldw ra, 0(sp) + + wrctl estatus, r5 + + ldw r1, 8(sp) + ldw r2, 12(sp) + ldw r3, 16(sp) + ldw r4, 20(sp) + ldw r5, 24(sp) + ldw r6, 28(sp) + ldw r7, 32(sp) + +#ifdef ALT_EXCEPTION_STACK +#ifdef ALT_STACK_CHECK + ldw et, %gprel(alt_exception_old_stack_limit)(gp) +#endif +#endif + + ldw r8, 36(sp) + ldw r9, 40(sp) + ldw r10, 44(sp) + ldw r11, 48(sp) + ldw r12, 52(sp) + ldw r13, 56(sp) + ldw r14, 60(sp) + ldw r15, 64(sp) + +#ifdef ALT_EXCEPTION_STACK + +#ifdef ALT_STACK_CHECK + stw et, %gprel(alt_stack_limit_value)(gp) + stw zero, %gprel(alt_exception_old_stack_limit)(gp) +#endif + + ldw sp, 76(sp) + +#else + addi sp, sp, 76 + +#endif + + /* + * Return to the interrupted instruction. + */ + + eret + +#ifdef ALT_STACK_CHECK + +.Lstack_overflow: + break 3 + +#endif + diff --git a/software/qsys_tutorial_green_bsp/HAL/src/alt_exception_muldiv.S b/software/qsys_tutorial_green_bsp/HAL/src/alt_exception_muldiv.S new file mode 100644 index 0000000..55617a6 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/HAL/src/alt_exception_muldiv.S @@ -0,0 +1,583 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003-2005 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + + /* + * This is the software multiply/divide handler for Nios2. + */ + + /* + * Provide a label which can be used to pull this file in. + */ + + .section .exceptions.start + .globl alt_exception_muldiv +alt_exception_muldiv: + + /* + * Pull in the entry/exit code. + */ + .globl alt_exception + + + .section .exceptions.soft, "xa" + + + /* INSTRUCTION EMULATION + * --------------------- + * + * Nios II processors generate exceptions for unimplemented instructions. + * The routines below emulate these instructions. Depending on the + * processor core, the only instructions that might need to be emulated + * are div, divu, mul, muli, mulxss, mulxsu, and mulxuu. + * + * The emulations match the instructions, except for the following + * limitations: + * + * 1) The emulation routines do not emulate the use of the exception + * temporary register (et) as a source operand because the exception + * handler already has modified it. + * + * 2) The routines do not emulate the use of the stack pointer (sp) or the + * exception return address register (ea) as a destination because + * modifying these registers crashes the exception handler or the + * interrupted routine. + * + * 3) To save code size, the routines do not emulate the use of the + * breakpoint registers (ba and bt) as operands. + * + * Detailed Design + * --------------- + * + * The emulation routines expect the contents of integer registers r0-r31 + * to be on the stack at addresses sp, 4(sp), 8(sp), ... 124(sp). The + * routines retrieve source operands from the stack and modify the + * destination register's value on the stack prior to the end of the + * exception handler. Then all registers except the destination register + * are restored to their previous values. + * + * The instruction that causes the exception is found at address -4(ea). + * The instruction's OP and OPX fields identify the operation to be + * performed. + * + * One instruction, muli, is an I-type instruction that is identified by + * an OP field of 0x24. + * + * muli AAAAA,BBBBB,IIIIIIIIIIIIIIII,-0x24- + * 27 22 6 0 <-- LSB of field + * + * The remaining emulated instructions are R-type and have an OP field + * of 0x3a. Their OPX fields identify them. + * + * R-type AAAAA,BBBBB,CCCCC,XXXXXX,NNNNN,-0x3a- + * 27 22 17 11 6 0 <-- LSB of field + * + * + */ + + + /* + * Split the instruction into its fields. We need 4*A, 4*B, and 4*C as + * offsets to the stack pointer for access to the stored register values. + */ + /* r2 = AAAAA,BBBBB,IIIIIIIIIIIIIIII,PPPPPP */ + roli r3, r2, 7 /* r3 = BBB,IIIIIIIIIIIIIIII,PPPPPP,AAAAA,BB */ + roli r4, r3, 3 /* r4 = IIIIIIIIIIIIIIII,PPPPPP,AAAAA,BBBBB */ + roli r6, r4, 2 /* r6 = IIIIIIIIIIIIII,PPPPPP,AAAAA,BBBBB,II */ + srai r4, r4, 16 /* r4 = (sign-extended) IMM16 */ + xori r6, r6, 0x42 /* r6 = CCC,XXXXXX,NNNNN,PPPPPP,AAAAA,bBBBB,cC */ + roli r7, r6, 5 /* r7 = XXXX,NNNNN,PPPPPP,AAAAA,bBBBB,cCCCC,XX */ + andi r5, r2, 0x3f /* r5 = 00000000000000000000000000,PPPPPP */ + xori r3, r3, 0x40 + andi r3, r3, 0x7c /* r3 = 0000000000000000000000000,aAAAA,00 */ + andi r6, r6, 0x7c /* r6 = 0000000000000000000000000,bBBBB,00 */ + andi r7, r7, 0x7c /* r7 = 0000000000000000000000000,cCCCC,00 */ + + /* Now either + * r5 = OP + * r3 = 4*(A^16) + * r4 = IMM16 (sign extended) + * r6 = 4*(B^16) + * r7 = 4*(C^16) + * or + * r5 = OP + */ + + + /* + * Save everything on the stack to make it easy for the emulation routines + * to retrieve the source register operands. The exception entry code has + * already saved some of this so we don't need to do it all again. + */ + + addi sp, sp, -60 + stw zero, 64(sp) /* Save zero on stack to avoid special case for r0. */ + /* Register at and r2-r15 have already been saved. */ + + stw r16, 0(sp) + stw r17, 4(sp) + stw r18, 8(sp) + stw r19, 12(sp) + stw r20, 16(sp) + stw r21, 20(sp) + stw r22, 24(sp) + stw r23, 28(sp) + /* et @ 32 - Has already been changed.*/ + /* bt @ 36 - Usually isn't an operand. */ + stw gp, 40(sp) + stw sp, 44(sp) + stw fp, 48(sp) + /* ea @ 52 - Don't bother to save - it's already been changed */ + /* ba @ 56 - Breakpoint register usually isn't an operand */ + /* ra @ 60 - Has already been saved */ + + + /* + * Prepare for either multiplication or division loop. + * They both loop 32 times. + */ + movi r14, 32 + + + /* + * Get the operands. + * + * It is necessary to check for muli because it uses an I-type instruction + * format, while the other instructions are have an R-type format. + */ + add r3, r3, sp /* r3 = address of A-operand. */ + ldw r3, 0(r3) /* r3 = A-operand. */ + movi r15, 0x24 /* muli opcode (I-type instruction format) */ + beq r5, r15, .Lmul_immed /* muli doesn't use the B register as a source */ + + add r6, r6, sp /* r6 = address of B-operand. */ + ldw r6, 0(r6) /* r6 = B-operand. */ + /* r4 = SSSSSSSSSSSSSSSS,-----IMM16------ */ + /* IMM16 not needed, align OPX portion */ + /* r4 = SSSSSSSSSSSSSSSS,CCCCC,-OPX--,00000 */ + srli r4, r4, 5 /* r4 = 00000,SSSSSSSSSSSSSSSS,CCCCC,-OPX-- */ + andi r4, r4, 0x3f /* r4 = 00000000000000000000000000,-OPX-- */ + + /* Now + * r5 = OP + * r3 = src1 + * r6 = src2 + * r4 = OPX (no longer can be muli) + * r7 = 4*(C^16) + * r14 = loop counter + */ + + /* ILLEGAL-INSTRUCTION EXCEPTION + * ----------------------------- + * + * This code is for Nios II cores that generate exceptions when attempting + * to execute illegal instructions. Nios II cores that support an + * illegal-instruction exception are identified by the presence of the + * macro definition NIOS2_HAS_ILLEGAL_INSTRUCTION_EXCEPTION in system.h . + * + * Remember that illegal instructions are different than unimplemented + * instructions. Illegal instructions are instruction encodings that + * have not been defined by the Nios II ISA. Unimplemented instructions + * are legal instructions that must be emulated by some Nios II cores. + * + * If we get here, all instructions except multiplies and divides + * are illegal. + * + * This code assumes that OP is not muli (because muli was tested above). + * All other multiplies and divides are legal. Anything else is illegal. + */ + + movi r8, 0x3a /* OP for R-type mul* and div* */ + bne r5, r8, .Lnot_muldiv + + /* r15 already is 0x24 */ /* OPX of divu */ + beq r4, r15, .Ldivide + + movi r15,0x27 /* OPX of mul */ + beq r4, r15, .Lmultiply + + movi r15,0x07 /* OPX of mulxuu */ + beq r4, r15, .Lmultiply + + movi r15,0x17 /* OPX of mulxsu */ + beq r4, r15, .Lmultiply + + movi r15,0x1f /* OPX of mulxss */ + beq r4, r15, .Lmultiply + + movi r15,0x25 /* OPX of div */ + bne r4, r15, .Lnot_muldiv + + + /* DIVISION + * + * Divide an unsigned dividend by an unsigned divisor using + * a shift-and-subtract algorithm. The example below shows + * 43 div 7 = 6 for 8-bit integers. This classic algorithm uses a + * single register to store both the dividend and the quotient, + * allowing both values to be shifted with a single instruction. + * + * remainder dividend:quotient + * --------- ----------------- + * initialize 00000000 00101011: + * shift 00000000 0101011:_ + * remainder >= divisor? no 00000000 0101011:0 + * shift 00000000 101011:0_ + * remainder >= divisor? no 00000000 101011:00 + * shift 00000001 01011:00_ + * remainder >= divisor? no 00000001 01011:000 + * shift 00000010 1011:000_ + * remainder >= divisor? no 00000010 1011:0000 + * shift 00000101 011:0000_ + * remainder >= divisor? no 00000101 011:00000 + * shift 00001010 11:00000_ + * remainder >= divisor? yes 00001010 11:000001 + * remainder -= divisor - 00000111 + * ---------- + * 00000011 11:000001 + * shift 00000111 1:000001_ + * remainder >= divisor? yes 00000111 1:0000011 + * remainder -= divisor - 00000111 + * ---------- + * 00000000 1:0000011 + * shift 00000001 :0000011_ + * remainder >= divisor? no 00000001 :00000110 + * + * The quotient is 00000110. + */ + +.Ldivide: + /* + * Prepare for division by assuming the result + * is unsigned, and storing its "sign" as 0. + */ + movi r17, 0 + + + /* Which division opcode? */ + xori r15, r4, 0x25 /* OPX of div */ + bne r15, zero, .Lunsigned_division + + + /* + * OPX is div. Determine and store the sign of the quotient. + * Then take the absolute value of both operands. + */ + xor r17, r3, r6 /* MSB contains sign of quotient */ + bge r3, zero, 0f + sub r3, zero, r3 /* -r3 */ +0: + bge r6, zero, 0f + sub r6, zero, r6 /* -r6 */ +0: + + +.Lunsigned_division: + /* Initialize the unsigned-division loop. */ + movi r13, 0 /* remainder = 0 */ + + /* Now + * r3 = dividend : quotient + * r4 = 0x25 for div, 0x24 for divu + * r6 = divisor + * r13 = remainder + * r14 = loop counter (already initialized to 32) + * r17 = MSB contains sign of quotient + */ + + + /* + * for (count = 32; count > 0; --count) + * { + */ +.Ldivide_loop: + + /* + * Division: + * + * (remainder:dividend:quotient) <<= 1; + */ + slli r13, r13, 1 + cmplt r15, r3, zero /* r15 = MSB of r3 */ + or r13, r13, r15 + slli r3, r3, 1 + + + /* + * if (remainder >= divisor) + * { + * set LSB of quotient + * remainder -= divisor; + * } + */ + bltu r13, r6, .Ldiv_skip + ori r3, r3, 1 + sub r13, r13, r6 +.Ldiv_skip: + + /* + * } + */ + subi r14, r14, 1 + bne r14, zero, .Ldivide_loop + + mov r9, r3 + + + /* Now + * r9 = quotient + * r4 = 0x25 for div, 0x24 for divu + * r7 = 4*(C^16) + * r17 = MSB contains sign of quotient + */ + + + /* + * Conditionally negate signed quotient. If quotient is unsigned, + * the sign already is initialized to 0. + */ + bge r17, zero, .Lstore_result + sub r9, zero, r9 /* -r9 */ + + br .Lstore_result + + + + + /* MULTIPLICATION + * + * A "product" is the number that one gets by summing a "multiplicand" + * several times. The "multiplier" specifies the number of copies of the + * multiplicand that are summed. + * + * Actual multiplication algorithms don't use repeated addition, however. + * Shift-and-add algorithms get the same answer as repeated addition, and + * they are faster. To compute the lower half of a product (pppp below) + * one shifts the product left before adding in each of the partial products + * (a * mmmm) through (d * mmmm). + * + * To compute the upper half of a product (PPPP below), one adds in the + * partial products (d * mmmm) through (a * mmmm), each time following the + * add by a right shift of the product. + * + * mmmm + * * abcd + * ------ + * #### = d * mmmm + * #### = c * mmmm + * #### = b * mmmm + * #### = a * mmmm + * -------- + * PPPPpppp + * + * The example above shows 4 partial products. Computing actual Nios II + * products requires 32 partials. + * + * It is possible to compute the result of mulxsu from the result of mulxuu + * because the only difference between the results of these two opcodes is + * the value of the partial product associated with the sign bit of rA. + * + * mulxsu = mulxuu - ((rA < 0) ? rB : 0); + * + * It is possible to compute the result of mulxss from the result of mulxsu + * because the only difference between the results of these two opcodes is + * the value of the partial product associated with the sign bit of rB. + * + * mulxss = mulxsu - ((rB < 0) ? rA : 0); + * + */ + +.Lmul_immed: + /* Opcode is muli. Change it into mul for remainder of algorithm. */ + mov r7, r6 /* Field B is dest register, not field C. */ + mov r6, r4 /* Field IMM16 is src2, not field B. */ + movi r4, 0x27 /* OPX of mul is 0x27 */ + +.Lmultiply: + /* Initialize the multiplication loop. */ + movi r9, 0 /* mul_product = 0 */ + movi r10, 0 /* mulxuu_product = 0 */ + mov r11, r6 /* save original multiplier for mulxsu and mulxss */ + mov r12, r6 /* mulxuu_multiplier (will be shifted) */ + movi r16, 1 /* used to create "rori B,A,1" from "ror B,A,r16" */ + + /* Now + * r3 = multiplicand + * r6 = mul_multiplier + * r7 = 4 * dest_register (used later as offset to sp) + * r9 = mul_product + * r10 = mulxuu_product + * r11 = original multiplier + * r12 = mulxuu_multiplier + * r14 = loop counter (already initialized) + * r15 = temp + * r16 = 1 + */ + + + /* + * for (count = 32; count > 0; --count) + * { + */ +.Lmultiply_loop: + + /* + * mul_product <<= 1; + * lsb = multiplier & 1; + */ + slli r9, r9, 1 + andi r15, r12, 1 + + /* + * if (lsb == 1) + * { + * mulxuu_product += multiplicand; + * } + */ + beq r15, zero, .Lmulx_skip + add r10, r10, r3 + cmpltu r15, r10, r3 /* Save the carry from the MSB of mulxuu_product. */ + ror r15, r15, r16 /* r15 = 0x80000000 on carry, or else 0x00000000 */ +.Lmulx_skip: + + /* + * if (MSB of mul_multiplier == 1) + * { + * mul_product += multiplicand; + * } + */ + bge r6, zero, .Lmul_skip + add r9, r9, r3 +.Lmul_skip: + + /* + * mulxuu_product >>= 1; logical shift + * mul_multiplier <<= 1; done with MSB + * mulx_multiplier >>= 1; done with LSB + */ + srli r10, r10, 1 + or r10, r10, r15 /* OR in the saved carry bit. */ + slli r6, r6, 1 + srli r12, r12, 1 + + + /* + * } + */ + subi r14, r14, 1 + bne r14, zero, .Lmultiply_loop + + + /* + * Multiply emulation loop done. + */ + + /* Now + * r3 = multiplicand + * r4 = OPX + * r7 = 4 * dest_register (used later as offset to sp) + * r9 = mul_product + * r10 = mulxuu_product + * r11 = original multiplier + * r15 = temp + */ + + + /* + * Select/compute the result based on OPX. + */ + + + /* OPX == mul? Then store. */ + xori r15, r4, 0x27 + beq r15, zero, .Lstore_result + + /* It's one of the mulx.. opcodes. Move over the result. */ + mov r9, r10 + + /* OPX == mulxuu? Then store. */ + xori r15, r4, 0x07 + beq r15, zero, .Lstore_result + + /* Compute mulxsu + * + * mulxsu = mulxuu - ((rA < 0) ? rB : 0); + */ + bge r3, zero, .Lmulxsu_skip + sub r9, r9, r11 +.Lmulxsu_skip: + + /* OPX == mulxsu? Then store. */ + xori r15, r4, 0x17 + beq r15, zero, .Lstore_result + + /* Compute mulxss + * + * mulxss = mulxsu - ((rB < 0) ? rA : 0); + */ + bge r11, zero, .Lmulxss_skip + sub r9, r9, r3 +.Lmulxss_skip: + /* At this point, assume that OPX is mulxss, so store */ + + +.Lstore_result: + add r7, r7, sp + stw r9, 0(r7) + + ldw r16, 0(sp) + ldw r17, 4(sp) + ldw r18, 8(sp) + ldw r19, 12(sp) + ldw r20, 16(sp) + ldw r21, 20(sp) + ldw r22, 24(sp) + ldw r23, 28(sp) + + /* bt @ 32 - Breakpoint register usually isn't an operand. */ + /* et @ 36 - Don't corrupt et. */ + /* gp @ 40 - Don't corrupt gp. */ + /* sp @ 44 - Don't corrupt sp. */ + ldw fp, 48(sp) + /* ea @ 52 - Don't corrupt ea. */ + /* ba @ 56 - Breakpoint register usually isn't an operand. */ + + addi sp, sp, 60 + + br .Lexception_exit + + +.Lnot_muldiv: + + addi sp, sp, 60 + + + .section .exceptions.exit.label +.Lexception_exit: + diff --git a/software/qsys_tutorial_green_bsp/HAL/src/alt_exception_trap.S b/software/qsys_tutorial_green_bsp/HAL/src/alt_exception_trap.S new file mode 100644 index 0000000..60a3d40 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/HAL/src/alt_exception_trap.S @@ -0,0 +1,81 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003-2005 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + + /* + * This is the trap exception handler for Nios2. + */ + + /* + * Provide a label which can be used to pull this file in. + */ + + .section .exceptions.start + .globl alt_exception_trap +alt_exception_trap: + + /* + * Pull in the entry/exit code. + */ + .globl alt_exception + + .section .exceptions.soft, "xa" + +.Ltrap_handler: + + /* + * Did a trap instruction cause the exception? + * + * The instruction which the exception occurred on has been loaded + * into r2 by code in alt_exception_entry.S + * + */ + + movhi r3,0x003b /* upper half of trap opcode */ + ori r3,r3,0x683a /* lower half of trap opcode */ + bne r2,r3,.Lnot_trap + + /* + * There is no trap handler defined here, and so executing a trap + * instruction causes a software break. If you provide a trap handler, + * then you must replace the break instruction below with your handler. + * Your handler must preserve ea and the usual callee saved registers. + */ + + break + + br .Lexception_exit + +.Lnot_trap: + + + .section .exceptions.exit.label +.Lexception_exit: + + diff --git a/software/qsys_tutorial_green_bsp/HAL/src/alt_execve.c b/software/qsys_tutorial_green_bsp/HAL/src/alt_execve.c new file mode 100644 index 0000000..27b99cf --- /dev/null +++ b/software/qsys_tutorial_green_bsp/HAL/src/alt_execve.c @@ -0,0 +1,55 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_errno.h" +#include "sys/alt_warning.h" +#include "os/alt_syscall.h" + +/* + * execve() is used by newlib to launch new processes. This is unsupported in + * the HAL environment. However a "do-nothing" implementation is still + * provied for newlib compatability. + * + * ALT_EXECVE is mapped onto the execve() system call in alt_syscall.h + */ + +int ALT_EXECVE (char *name, char ** argv, char** env) +{ + /* Generate a link time warning, should this function ever be called. */ + + ALT_STUB_WARNING(execve); + + /* Indicate an error */ + + ALT_ERRNO = ENOSYS; + return -1; +} diff --git a/software/qsys_tutorial_green_bsp/HAL/src/alt_exit.c b/software/qsys_tutorial_green_bsp/HAL/src/alt_exit.c new file mode 100644 index 0000000..971b35e --- /dev/null +++ b/software/qsys_tutorial_green_bsp/HAL/src/alt_exit.c @@ -0,0 +1,71 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_irq.h" +#include "sys/alt_sim.h" +#include "os/alt_hooks.h" +#include "os/alt_syscall.h" + +#include "alt_types.h" +#include "sys/alt_log_printf.h" +/* + * _exit() is called by exit() in order to terminate the current process. + * Typically this is called when main() completes. It should never return. + * Since there is nowhere to go once this process completes, this + * implementation simply blocks forever. + * + * Note that interrupts are not disabled so that execution outside of this + * thread is allowed to continue. + * + * ALT_EXIT is mapped onto the _exit() system call in alt_syscall.h + */ + +void ALT_EXIT (int exit_code) +{ + /* ALT_LOG - please see HAL/inc/alt_log_printf.h for details */ + ALT_LOG_PRINT_BOOT("[alt_exit.c] Entering _exit() function.\r\n"); + ALT_LOG_PRINT_BOOT("[alt_exit.c] Exit code from main was %d.\r\n",exit_code); + /* Stop all other threads */ + + ALT_LOG_PRINT_BOOT("[alt_exit.c] Calling ALT_OS_STOP().\r\n"); + ALT_OS_STOP(); + + /* Provide notification to the simulator that we've stopped */ + + ALT_LOG_PRINT_BOOT("[alt_exit.c] Calling ALT_SIM_HALT().\r\n"); + ALT_SIM_HALT(exit_code); + + /* spin forever, since there's no where to go back to */ + + ALT_LOG_PRINT_BOOT("[alt_exit.c] Spinning forever.\r\n"); + while (1); +} diff --git a/software/qsys_tutorial_green_bsp/HAL/src/alt_fcntl.c b/software/qsys_tutorial_green_bsp/HAL/src/alt_fcntl.c new file mode 100644 index 0000000..69c1544 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/HAL/src/alt_fcntl.c @@ -0,0 +1,101 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include + +#include +#include + +#include "sys/alt_errno.h" +#include "priv/alt_file.h" +#include "alt_types.h" +#include "os/alt_syscall.h" + +#define ALT_FCNTL_FLAGS_MASK ((alt_u32) (O_APPEND | O_NONBLOCK)) + +/* + * fcntl() is a limited implementation of the standard fcntl() system call. + * It can be used to change the state of the flags associated with an open + * file descriptor. Normally these flags are set during the call to + * open(). It is anticipated that the main use of this function will be to + * change the state of a device from blocking to non-blocking (where this is + * supported). + * + * The input argument "fd" is the file descriptor to be manipulated. "cmd" + * is the command to execute. This can be either F_GETFL (return the + * current value of the flags) or F_SETFL (set the value of the flags). + * + * If "cmd" is F_SETFL then the argument "arg" is the new value of flags, + * otherwise "arg" is ignored. Only the flags: O_APPEND and O_NONBLOCK + * can be updated by a call to fcntl(). All other flags remain + * unchanged. + * + * ALT_FCNTL is mapped onto the fcntl() system call in alt_syscall.h + */ + +int ALT_FCNTL (int file, int cmd, ...) +{ + alt_fd* fd; + long flags; + va_list argp; + + /* + * A common error case is that when the file descriptor was created, the call + * to open() failed resulting in a negative file descriptor. This is trapped + * below so that we don't try and process an invalid file descriptor. + */ + + fd = (file < 0) ? NULL : &alt_fd_list[file]; + + if (fd) + { + switch (cmd) + { + case F_GETFL: + return fd->fd_flags & ~((alt_u32) ALT_FD_FLAGS_MASK); + case F_SETFL: + va_start(argp, cmd); + flags = va_arg(argp, long); + fd->fd_flags &= ~ALT_FCNTL_FLAGS_MASK; + fd->fd_flags |= (flags & ALT_FCNTL_FLAGS_MASK); + va_end(argp); + return 0; + default: + ALT_ERRNO = EINVAL; + return -1; + } + } + + ALT_ERRNO = EBADFD; + return -1; +} diff --git a/software/qsys_tutorial_green_bsp/HAL/src/alt_fd_lock.c b/software/qsys_tutorial_green_bsp/HAL/src/alt_fd_lock.c new file mode 100644 index 0000000..0e2a85d --- /dev/null +++ b/software/qsys_tutorial_green_bsp/HAL/src/alt_fd_lock.c @@ -0,0 +1,75 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +#include "priv/alt_file.h" + +/* + * alt_fd_lock() is called as a consequence of an ioctl call to gain exclusive + * access to a device, i.e.: + * + * ioctl (fd, TIOCEXCL, NULL); + * + * If there are no other open file descriptors which reference the same + * device, then alt_fd_lock() will grant the lock. Further calls to open() + * for this device will fail until the lock is released. + * + * This is done by calling close() for this file descriptor, or by calling: + * + * ioctl (fd, TIOCNXCL, NULL); + * + * The return value is zero for success, or negative in the case of failure. + */ + +int alt_fd_lock (alt_fd* fd) +{ + int i; + int rc = 0; + + ALT_SEM_PEND(alt_fd_list_lock, 0); + + for (i = 0; i < alt_max_fd; i++) + { + if ((&alt_fd_list[i] != fd) && (alt_fd_list[i].dev == fd->dev)) + { + rc = -EACCES; + goto alt_fd_lock_exit; + } + } + fd->fd_flags |= ALT_FD_EXCL; + + alt_fd_lock_exit: + + ALT_SEM_POST(alt_fd_list_lock); + return rc; +} diff --git a/software/qsys_tutorial_green_bsp/HAL/src/alt_fd_unlock.c b/software/qsys_tutorial_green_bsp/HAL/src/alt_fd_unlock.c new file mode 100644 index 0000000..fb700dc --- /dev/null +++ b/software/qsys_tutorial_green_bsp/HAL/src/alt_fd_unlock.c @@ -0,0 +1,56 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +#include "priv/alt_file.h" + +/* + * alt_fd_unlock() is the inverse of alt_fd_lock(). It is called as a + * consequence of a TIOCNXCL ioctl request, e.g: + * + * ioctl (fd, TIOCNXCL, NULL); + * + * It enables multiple file descriptors to exist for the same device. This + * is normally the case, but it may have been disabled by a previous call to + * alt_fd_lock(). + * + * Return zero on sucess, and a negative value on failure. + * + * The current implementation always succeeds. + */ + +int alt_fd_unlock (alt_fd* fd) +{ + fd->fd_flags &= ~ALT_FD_EXCL; + return 0; +} diff --git a/software/qsys_tutorial_green_bsp/HAL/src/alt_find_dev.c b/software/qsys_tutorial_green_bsp/HAL/src/alt_find_dev.c new file mode 100644 index 0000000..37aefa4 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/HAL/src/alt_find_dev.c @@ -0,0 +1,88 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include +#include + +#include "sys/alt_dev.h" +#include "priv/alt_file.h" + +#include "alt_types.h" + +/* + * alt_find_dev() is used by open() in order to locate a previously registered + * device with the name "name". The input argument "llist" is a pointer to the + * head of the device list to search. + * + * The return value is a pointer to the matching device, or NULL if there is + * no match. + * + * "name" must be an exact match for the devices registered name for a match to + * be found. + */ + +alt_dev* alt_find_dev(const char* name, alt_llist* llist) +{ + alt_dev* next = (alt_dev*) llist->next; + alt_32 len; + + len = strlen(name) + 1; + + /* + * Check each list entry in turn, until a match is found, or we reach the + * end of the list (i.e. next winds up pointing back to the list head). + */ + + while (next != (alt_dev*) llist) + { + + /* + * memcmp() is used here rather than strcmp() in order to reduce the size + * of the executable. + */ + + if (!memcmp (next->name, name, len)) + { + /* match found */ + + return next; + } + next = (alt_dev*) next->llist.next; + } + + /* No match found */ + + return NULL; +} + + diff --git a/software/qsys_tutorial_green_bsp/HAL/src/alt_find_file.c b/software/qsys_tutorial_green_bsp/HAL/src/alt_find_file.c new file mode 100644 index 0000000..2d97ec2 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/HAL/src/alt_find_file.c @@ -0,0 +1,89 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include +#include + +#include "sys/alt_dev.h" +#include "priv/alt_file.h" + +#include "alt_types.h" + +/* + * alt_find_file() is used by open() in order to locate a previously registered + * filesystem that owns that mount point that contains the file named "name". + * + * The return value is a pointer to the matching filesystem, or NULL if there is + * no match. + * + * A match is considered to have been found if the filesystem name followed by + * either '/' or '\0' is the prefix of the filename. For example the filename: + * "/myfilesystem/junk.txt" would match: "/myfilesystem", but not: "/myfile". + */ + +alt_dev* alt_find_file (const char* name) +{ + alt_dev* next = (alt_dev*) alt_fs_list.next; + + alt_32 len; + + /* + * Check each list entry in turn, until a match is found, or we reach the + * end of the list (i.e. next winds up pointing back to the list head). + */ + + while (next != (alt_dev*) &alt_fs_list) + { + len = strlen(next->name); + + if (next->name[len-1] == '/') + { + len -= 1; + } + + if (((name[len] == '/') || (name[len] == '\0')) && + !memcmp (next->name, name, len)) + { + /* match found */ + + return next; + } + next = (alt_dev*) next->llist.next; + } + + /* No match found */ + + return NULL; +} + + diff --git a/software/qsys_tutorial_green_bsp/HAL/src/alt_flash_dev.c b/software/qsys_tutorial_green_bsp/HAL/src/alt_flash_dev.c new file mode 100644 index 0000000..213f721 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/HAL/src/alt_flash_dev.c @@ -0,0 +1,69 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* Alt_flash.c - Functions to register a flash device to the "generic" flash * +* interface * +* * +* Author PRR * +* * +******************************************************************************/ + +#include +#include "sys/alt_llist.h" +#include "sys/alt_flash_dev.h" +#include "priv/alt_file.h" + +ALT_LLIST_HEAD(alt_flash_dev_list); + +alt_flash_fd* alt_flash_open_dev(const char* name) +{ + alt_flash_dev* dev = (alt_flash_dev*)alt_find_dev(name, &alt_flash_dev_list); + + if ((dev) && dev->open) + { + return dev->open(dev, name); + } + + return dev; +} + +void alt_flash_close_dev(alt_flash_fd* fd) +{ + if (fd && fd->close) + { + fd->close(fd); + } + return; +} + diff --git a/software/qsys_tutorial_green_bsp/HAL/src/alt_fork.c b/software/qsys_tutorial_green_bsp/HAL/src/alt_fork.c new file mode 100644 index 0000000..ce74df0 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/HAL/src/alt_fork.c @@ -0,0 +1,57 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_warning.h" +#include "sys/alt_errno.h" +#include "os/alt_syscall.h" + +/* + * The fork() system call is used by newlib to create a duplicate copy of the + * curent process. This is unsupported in the HAL environment. However a + * "do-nothing" implementation is still provied for newlib compatability. + * + * ALT_FORK is mapped onto the fork() system call in alt_syscall.h + */ + +int ALT_FORK (void) +{ + /* Generate a link time warning, should this function ever be called. */ + + ALT_STUB_WARNING(fork); + + /* Indicate an error */ + + ALT_ERRNO = ENOSYS; + return -1; +} + + diff --git a/software/qsys_tutorial_green_bsp/HAL/src/alt_fs_reg.c b/software/qsys_tutorial_green_bsp/HAL/src/alt_fs_reg.c new file mode 100644 index 0000000..13437a1 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/HAL/src/alt_fs_reg.c @@ -0,0 +1,75 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +#include "sys/alt_dev.h" +#include "priv/alt_file.h" + +/* + * The alt_fs_reg() function is used to register a file system. Once registered + * a device can be accessed using the standard posix calls: open(), read(), + * write() etc. + * + * System behaviour is undefined in the event that a file system is registered + * with a name that conflicts with an existing device or file system. + * + * alt_fs_reg() is not thread safe in the sense that there should be no other + * thread using the file system list at the time that alt_dev_reg() is called. In + * practice this means that alt_fs_reg() should only be called while operating + * in a single threaded mode. The expectation is that it will only be called + * by the file system initilisation functions invoked by alt_sys_init(), which in + * turn should only be called by the single threaded C startup code. + * + * A return value of zero indicates success. A negative return value indicates + * failure. + */ + +int alt_fs_reg (alt_dev* dev) +{ + /* + * check that the device has a name. + */ + + if (!dev->name) + { + return -ENODEV; + } + + /* + * register the file system. + */ + + alt_llist_insert(&alt_fs_list, &dev->llist); + + return 0; +} diff --git a/software/qsys_tutorial_green_bsp/HAL/src/alt_fstat.c b/software/qsys_tutorial_green_bsp/HAL/src/alt_fstat.c new file mode 100644 index 0000000..af5d527 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/HAL/src/alt_fstat.c @@ -0,0 +1,128 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include + +#include "sys/alt_dev.h" +#include "sys/alt_warning.h" +#include "sys/alt_errno.h" +#include "priv/alt_file.h" +#include "os/alt_syscall.h" + +/* + * The fstat() system call is used to obtain information about the capabilities + * of an open file descriptor. By default file descriptors are marked as + * being character devices. If a device or file system wishes to advertise + * alternative capabilities then they can register an fstat() function within + * their associated alt_dev structure. This will be called to fill in the + * entries in the imput "st" structure. + * + * This function is provided for compatability with newlib. + * + * ALT_FSTAT is mapped onto the fstat() system call in alt_syscall.h + */ + +#ifdef ALT_USE_DIRECT_DRIVERS + +#include "system.h" + +/* + * Provide minimal version that just describes all file descriptors + * as character devices for provided stdio devices. + */ +int ALT_FSTAT (int file, struct stat *st) +{ + switch (file) { +#ifdef ALT_STDIN_PRESENT + case 0: /* stdin file descriptor */ +#endif /* ALT_STDIN_PRESENT */ +#ifdef ALT_STDOUT_PRESENT + case 1: /* stdout file descriptor */ +#endif /* ALT_STDOUT_PRESENT */ +#ifdef ALT_STDERR_PRESENT + case 2: /* stderr file descriptor */ +#endif /* ALT_STDERR_PRESENT */ + st->st_mode = _IFCHR; + return 0; + default: + return -1; + } + +#if !defined(ALT_STDIN_PRESENT) && !defined(ALT_STDOUT_PRESENT) && !defined(ALT_STDERR_PRESENT) + /* Generate a link time warning, should this function ever be called. */ + ALT_STUB_WARNING(fstat); +#endif +} + +#else /* !ALT_USE_DIRECT_DRIVERS */ + +int ALT_FSTAT (int file, struct stat *st) +{ + alt_fd* fd; + + /* + * A common error case is that when the file descriptor was created, the call + * to open() failed resulting in a negative file descriptor. This is trapped + * below so that we don't try and process an invalid file descriptor. + */ + + fd = (file < 0) ? NULL : &alt_fd_list[file]; + + if (fd) + { + /* Call the drivers fstat() function to fill out the "st" structure. */ + + if (fd->dev->fstat) + { + return fd->dev->fstat(fd, st); + } + + /* + * If no function is provided, mark the fd as belonging to a character + * device. + */ + + else + { + st->st_mode = _IFCHR; + return 0; + } + } + else + { + ALT_ERRNO = EBADFD; + return -1; + } +} + +#endif /* ALT_USE_DIRECT_DRIVERS */ diff --git a/software/qsys_tutorial_green_bsp/HAL/src/alt_get_fd.c b/software/qsys_tutorial_green_bsp/HAL/src/alt_get_fd.c new file mode 100644 index 0000000..db17b2c --- /dev/null +++ b/software/qsys_tutorial_green_bsp/HAL/src/alt_get_fd.c @@ -0,0 +1,105 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include +#include + +#include "sys/alt_dev.h" +#include "priv/alt_file.h" + +#include "alt_types.h" + +#include "system.h" + +/* + * alt_get_fd() is called to allocate a new file descriptor from the file + * descriptor pool. If a file descriptor is succesfully allocated, it is + * configured to refer to device "dev". + * + * The return value is the index of the file descriptor structure (i.e. + * the offset of the file descriptor within the file descriptor array). A + * negative value indicates failure. + */ + +int alt_get_fd (alt_dev* dev) +{ + alt_32 i; + int rc = -EMFILE; + + /* + * Take the alt_fd_list_lock semaphore in order to avoid races when + * accessing the file descriptor pool. + */ + + ALT_SEM_PEND(alt_fd_list_lock, 0); + + /* + * Search through the list of file descriptors, and allocate the first + * free descriptor that's found. + * + * If a free descriptor is found, then the value of "alt_max_fd" is + * updated accordingly. "alt_max_fd" is a 'highwater mark' which + * indicates the highest file descriptor ever allocated. This is used to + * improve efficency when searching the file descriptor list, and + * therefore reduce contention on the alt_fd_list_lock semaphore. + */ + + for (i = 0; i < ALT_MAX_FD; i++) + { + if (!alt_fd_list[i].dev) + { + alt_fd_list[i].dev = dev; + if (i > alt_max_fd) + { + alt_max_fd = i; + } + rc = i; + goto alt_get_fd_exit; + } + } + + alt_get_fd_exit: + + /* + * Release the alt_fd_list_lock semaphore now that we are done with the + * file descriptor pool. + */ + + ALT_SEM_POST(alt_fd_list_lock); + + return rc; +} + + + + diff --git a/software/qsys_tutorial_green_bsp/HAL/src/alt_getchar.c b/software/qsys_tutorial_green_bsp/HAL/src/alt_getchar.c new file mode 100644 index 0000000..a8f50d5 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/HAL/src/alt_getchar.c @@ -0,0 +1,61 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +#ifdef ALT_USE_DIRECT_DRIVERS +#include "system.h" +#include "sys/alt_driver.h" +#include "sys/alt_stdio.h" +#include "priv/alt_file.h" +#include "unistd.h" +#endif + +/* + * Uses the ALT_DRIVER_READ() macro to call directly to driver if available. + * Otherwise, uses newlib provided getchar() routine. + */ +int +alt_getchar(void) +{ +#ifdef ALT_USE_DIRECT_DRIVERS + ALT_DRIVER_READ_EXTERNS(ALT_STDIN_DEV); + char c; + + if (ALT_DRIVER_READ(ALT_STDIN_DEV, &c, 1, alt_fd_list[STDIN_FILENO].fd_flags) <= 0) { + return -1; + } + return c; +#else + return getchar(); +#endif +} diff --git a/software/qsys_tutorial_green_bsp/HAL/src/alt_getpid.c b/software/qsys_tutorial_green_bsp/HAL/src/alt_getpid.c new file mode 100644 index 0000000..2228c7e --- /dev/null +++ b/software/qsys_tutorial_green_bsp/HAL/src/alt_getpid.c @@ -0,0 +1,47 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "os/alt_syscall.h" + +/* + * The getpid() system call is used by newlib to obtain the current process + * id. Since there is only ever a single process in the HAL environment, + * this just returns a constant. + * + * ALT_GETPID is mapped onto the getpid() system call in alt_syscall.h + */ + +int ALT_GETPID (void) +{ + return 0; +} + diff --git a/software/qsys_tutorial_green_bsp/HAL/src/alt_gettod.c b/software/qsys_tutorial_green_bsp/HAL/src/alt_gettod.c new file mode 100644 index 0000000..ed86cba --- /dev/null +++ b/software/qsys_tutorial_green_bsp/HAL/src/alt_gettod.c @@ -0,0 +1,125 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include +#include + +#include "sys/alt_alarm.h" +#include "alt_types.h" +#include "os/alt_syscall.h" + +/* + * Macro defining the number of micoseconds in a second. + */ + +#define ALT_US (1000000) + +/* + * "alt_timezone" and "alt_resettime" are the values of the the reset time and + * time zone set through the last call to settimeofday(). By default they are + * zero initialised. + */ + +struct timezone alt_timezone = {0, 0}; +struct timeval alt_resettime = {0, 0}; + +/* + * gettimeofday() can be called to obtain a time structure which indicates the + * current "wall clock" time. This is calculated using the elapsed number of + * system clock ticks, and the value of "alt_resettime" and "alt_timezone" set + * through the last call to settimeofday(). + * + * Warning: if this function is called concurrently with a call to + * settimeofday(), the value returned by gettimeofday() will be unreliable. + * + * ALT_GETTIMEOFDAY is mapped onto the gettimeofday() system call in + * alt_syscall.h + */ + + +#if defined (__GNUC__) && (__GNUC__ >= 4) +int ALT_GETTIMEOFDAY (struct timeval *ptimeval, void *ptimezone_vptr) +{ + struct timezone *ptimezone = (struct timezone*)ptimezone_vptr; +#else +int ALT_GETTIMEOFDAY (struct timeval *ptimeval, struct timezone *ptimezone) +{ +#endif + + alt_u32 nticks = alt_nticks (); + alt_u32 tick_rate = alt_ticks_per_second (); + + /* + * Check to see if the system clock is running. This is indicated by a + * non-zero system clock rate. If the system clock is not running, an error + * is generated and the contents of "ptimeval" and "ptimezone" are not + * updated. + */ + + if (tick_rate) + { + ptimeval->tv_sec = alt_resettime.tv_sec + nticks/tick_rate; + ptimeval->tv_usec = alt_resettime.tv_usec + + (alt_u32)(((alt_u64)nticks*(ALT_US/tick_rate))%ALT_US); + + while(ptimeval->tv_usec < 0) { + if (ptimeval->tv_sec <= 0) + { + ptimeval->tv_sec = 0; + ptimeval->tv_usec = 0; + break; + } + else + { + ptimeval->tv_sec--; + ptimeval->tv_usec += ALT_US; + } + } + + while(ptimeval->tv_usec >= ALT_US) { + ptimeval->tv_sec++; + ptimeval->tv_usec -= ALT_US; + } + + if (ptimezone) + { + ptimezone->tz_minuteswest = alt_timezone.tz_minuteswest; + ptimezone->tz_dsttime = alt_timezone.tz_dsttime; + } + + return 0; + } + + return -ENOTSUP; +} + diff --git a/software/qsys_tutorial_green_bsp/HAL/src/alt_gmon.c b/software/qsys_tutorial_green_bsp/HAL/src/alt_gmon.c new file mode 100644 index 0000000..6add9f1 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/HAL/src/alt_gmon.c @@ -0,0 +1,272 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003-2005 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include +#include +#include + +#include "priv/nios2_gmon_data.h" + +#include "sys/alt_irq.h" +#include "sys/alt_alarm.h" + + +/* Macros */ + +/* How large should the bins be which we use to generate the histogram */ +#define PCSAMPLE_BYTES_PER_BUCKET 32 + +#define NIOS2_READ_EA(dest) __asm__ ("mov %0, ea" : "=r" (dest)) + +/* The compiler inserts calls to mcount() at the start of + * every function call. The structure mcount_fn_arc records t + * he return address of the function called (in from_pc) + * and the return address of the mcount function + * (in self_pc). The number of times this arc is executed is + * recorded in the field count. + */ +struct mcount_fn_arc +{ + struct mcount_fn_arc * next; + void * from_pc; + unsigned int count; +}; + +/* We need to maintain a list of pointers to the heads of each adjacency + * list so that we can find them when writing out the gmon.out file. Since + * we don't know at the start of program execution how many functions will + * be called we use a list structure to do this. + */ +struct mcount_fn_entry +{ + struct mcount_fn_entry * next; + void * self_pc; + struct mcount_fn_arc * arc_head; +}; + +/* function prototypes */ + +void __mcount_record(void * self_pc, void * from_pc, struct mcount_fn_entry * fn_entry, struct mcount_fn_entry * * fn_head) __attribute__ ((no_instrument_function)); + +static __inline__ void * mcount_allocate(unsigned int size) __attribute__ ((no_instrument_function)); +static int nios2_pcsample_init(void) __attribute__ ((no_instrument_function)); +static alt_u32 nios2_pcsample(void* alarm) __attribute__ ((no_instrument_function)); + +/* global variables */ + +/* stext and etext are defined in the linker script */ +extern char stext[]; +extern char etext[]; + +/* Is the PC sampling stuff enabled yet? */ +static int pcsample_need_init = 1; + +#define HASH_BUCKETS 64 /* Must be a power of 2 */ + +/* This points to the list of adjacency list pointers. */ +struct mcount_fn_entry * __mcount_fn_head[HASH_BUCKETS]; + +/* pointer to the in-memory buffer containing the histogram */ +static unsigned short* s_pcsamples = 0; + +/* the address of the start and end of text section */ +static const unsigned int s_low_pc = (unsigned int)stext; +static const unsigned int s_high_pc = (unsigned int)etext; + +/* the alarm structure to register for pc sampling */ +static alt_alarm s_nios2_pcsample_alarm; + +unsigned int alt_gmon_data[GMON_DATA_SIZE] = +{ + 0x6e6f6d67, /* "gmon" */ + GMON_DATA_SIZE, + 0, + (unsigned int)stext, + (unsigned int)etext, + PCSAMPLE_BYTES_PER_BUCKET, + 0, + (unsigned int)__mcount_fn_head, + (unsigned int)(__mcount_fn_head + HASH_BUCKETS) +}; + +/* This holds the current slab of memory we're allocating out of */ +static char * mcount_slab_ptr = 0; +static int mcount_slab_size = 0; + +#define MCOUNT_SLAB_INCREMENT 1020 + + +/* + * We can't use malloc to allocate memory because that's too complicated, and + * can't be called at interrupt time. Use the lower level allocator instead + * because that's interrupt safe (and because we never free anything). + * + * For speed, we allocate a block of data at once. + */ +static __inline__ void * mcount_allocate(unsigned int size) +{ + void * data; + + if (size > mcount_slab_size) + { + mcount_slab_ptr = sbrk(MCOUNT_SLAB_INCREMENT); + mcount_slab_size = MCOUNT_SLAB_INCREMENT; + } + + data = mcount_slab_ptr; + mcount_slab_ptr += size; + mcount_slab_size -= size; + + return data; +} + + +/* + * Add the arc with the values of frompc and topc given to the graph. + * This function might be called at interrupt time so must be able to + * cope with reentrancy. + * + * The fast case, where we have already allocated a function arc, has been + * handled by the assmebler code. + */ +void __mcount_record(void * self_pc, void * from_pc, struct mcount_fn_entry * fn_entry, struct mcount_fn_entry * * fn_head) +{ + alt_irq_context context; + struct mcount_fn_arc * arc_entry; + + /* Keep trying to start up the PC sampler until it is running. + * (It can't start until the timer is going). + */ + if (pcsample_need_init) + { + pcsample_need_init = 0; + pcsample_need_init = nios2_pcsample_init(); + } + + /* + * We must disable interrupts around the allocation and the list update to + * prevent corruption if the instrumented function is re-entrant. + * + * It's safe for the code above to be stepping through the chain and be + * interrupted by this code modifying it - there is an edge case which will + * leave two copies of the same arc on the list (both with count=1), but + * this is dealt with on the host. + */ + context = alt_irq_disable_all(); + + if (fn_entry == NULL) + { + /* Add it to the list of functions we must output later. */ + fn_entry = (struct mcount_fn_entry *)mcount_allocate(sizeof(struct mcount_fn_entry)); + + fn_entry->self_pc = self_pc; + fn_entry->arc_head = NULL; + + fn_entry->next = *fn_head; + *fn_head = fn_entry; + } + + /* We will need a new list entry - if there was a list entry before + * then the assembler code would have handled it. */ + arc_entry = (struct mcount_fn_arc *)mcount_allocate(sizeof(struct mcount_fn_arc)); + + arc_entry->from_pc = from_pc; + arc_entry->count = 1; + + arc_entry->next = fn_entry->arc_head; + fn_entry->arc_head = arc_entry; + + alt_irq_enable_all(context); +} + + +/* + * nios2_pcsample_init starts profiling. + * It is called the first time mcount is called, and on subsequent calls to + * mcount until it returns zero. It initializes the pc histogram and turns on + * timer driven pc sampling. + */ +static int nios2_pcsample_init(void) +{ + unsigned int pcsamples_size; + + /* We sample the PC every tick */ + unsigned int prof_rate = alt_ticks_per_second(); + if (prof_rate == 0) + return 1; + + /* allocate the histogram buffer s_pcsamples */ + pcsamples_size = (s_high_pc - s_low_pc)/PCSAMPLE_BYTES_PER_BUCKET; + s_pcsamples = (unsigned short*)sbrk(pcsamples_size * sizeof(unsigned short)); + + if (s_pcsamples != 0) + { + /* initialize the buffer to zero */ + memset(s_pcsamples, 0, pcsamples_size * sizeof(unsigned short)); + + alt_gmon_data[GMON_DATA_PROFILE_DATA] = (int)s_pcsamples; + alt_gmon_data[GMON_DATA_PROFILE_RATE] = prof_rate; + + /* Sample every tick (it's cheap) */ + alt_alarm_start(&s_nios2_pcsample_alarm, 1, nios2_pcsample, 0); + } + + return 0; +} + + +/* + * Sample the PC value and store it in the histogram + */ +static alt_u32 nios2_pcsample(void* context) +{ + unsigned int pc; + unsigned int bucket; + + /* read the exception return address - this will be + * inaccurate if there are nested interrupts but we + * assume that this is rare and the inaccuracy will + * not be great */ + NIOS2_READ_EA(pc); + + /* + * If we're within the profilable range then increment the relevant + * bucket in the histogram + */ + if (pc >= s_low_pc && pc < s_high_pc && s_pcsamples != 0) + { + bucket = (pc - s_low_pc)/PCSAMPLE_BYTES_PER_BUCKET; + s_pcsamples[bucket]++; + } + + /* Sample every tick */ + return 1; +} + diff --git a/software/qsys_tutorial_green_bsp/HAL/src/alt_icache_flush.c b/software/qsys_tutorial_green_bsp/HAL/src/alt_icache_flush.c new file mode 100644 index 0000000..4b706ed --- /dev/null +++ b/software/qsys_tutorial_green_bsp/HAL/src/alt_icache_flush.c @@ -0,0 +1,84 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "nios2.h" +#include "system.h" + +#include "alt_types.h" +#include "sys/alt_cache.h" + +/* + * alt_icache_flush() is called to flush the instruction cache for a memory + * region of length "len" bytes, starting at address "start". + */ + +void alt_icache_flush (void* start, alt_u32 len) +{ +#if NIOS2_ICACHE_SIZE > 0 + + char* i; + char* end; + + /* + * This is the most we would ever need to flush. + */ + + if (len > NIOS2_ICACHE_SIZE) + { + len = NIOS2_ICACHE_SIZE; + } + + end = ((char*) start) + len; + + for (i = start; i < end; i+= NIOS2_ICACHE_LINE_SIZE) + { + __asm__ volatile ("flushi %0" :: "r" (i)); + } + + /* + * For an unaligned flush request, we've got one more line left. + * Note that this is dependent on NIOS2_ICACHE_LINE_SIZE to be a + * multiple of 2 (which it always is). + */ + + if (((alt_u32) start) & (NIOS2_ICACHE_LINE_SIZE - 1)) + { + __asm__ volatile ("flushi %0" :: "r" (i)); + } + + /* + * Having flushed the cache, flush any stale instructions in the + * pipeline + */ + + __asm__ volatile ("flushp"); + +#endif /* NIOS2_ICACHE_SIZE > 0 */ +} diff --git a/software/qsys_tutorial_green_bsp/HAL/src/alt_icache_flush_all.c b/software/qsys_tutorial_green_bsp/HAL/src/alt_icache_flush_all.c new file mode 100644 index 0000000..5088552 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/HAL/src/alt_icache_flush_all.c @@ -0,0 +1,46 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "nios2.h" +#include "system.h" + +#include "alt_types.h" +#include "sys/alt_cache.h" + +/* + * alt_icache_flush_all() is called to flush the entire instruction cache. + */ + +void alt_icache_flush_all (void) +{ +#if NIOS2_ICACHE_SIZE > 0 + alt_icache_flush (0, NIOS2_ICACHE_SIZE); +#endif +} diff --git a/software/qsys_tutorial_green_bsp/HAL/src/alt_iic.c b/software/qsys_tutorial_green_bsp/HAL/src/alt_iic.c new file mode 100644 index 0000000..1db5afa --- /dev/null +++ b/software/qsys_tutorial_green_bsp/HAL/src/alt_iic.c @@ -0,0 +1,106 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2009 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ +#include "system.h" + +/* + * This file implements the HAL Enhanced interrupt API for Nios II processors + * with an internal interrupt controller (IIC). For most routines, this serves + * as a wrapper layer over the legacy interrupt API (which must be used with + * the IIC only). + * + * Use of the enhanced API is recommended so that application and device + * drivers are compatible with a Nios II system configured with an external + * interrupt controller (EIC), or IIC. This will afford maximum portability. + * + * If an EIC is present, the EIC device driver must provide these routines, + * because their operation will be specific to that EIC type. + */ +#ifndef NIOS2_EIC_PRESENT +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT + +#include "sys/alt_irq.h" +#include "priv/alt_iic_isr_register.h" +#include "priv/alt_legacy_irq.h" + +/** @Function Description: This function registers an interrupt handler. + * If the function is succesful, then the requested interrupt will be enabled upon + * return. Registering a NULL handler will disable the interrupt. + * @API Type: External + * @param ic_id Ignored. + * @param irq IRQ number + * @return 0 if successful, else error (-1) + */ +int alt_ic_isr_register(alt_u32 ic_id, alt_u32 irq, alt_isr_func isr, + void *isr_context, void *flags) +{ + return alt_iic_isr_register(ic_id, irq, isr, isr_context, flags); +} + +/** @Function Description: This function enables a single interrupt. + * @API Type: External + * @param ic_id Ignored. + * @param irq IRQ number + * @return 0 if successful, else error (-1) + */ +int alt_ic_irq_enable (alt_u32 ic_id, alt_u32 irq) +{ + return alt_irq_enable(irq); +} + +/** @Function Description: This function disables a single interrupt. + * @API Type: External + * @param ic_id Ignored. + * @param irq IRQ number + * @return 0 if successful, else error (-1) + */ +int alt_ic_irq_disable(alt_u32 ic_id, alt_u32 irq) +{ + return alt_irq_disable(irq); +} + +/** @Function Description: This function to determine if corresponding + * interrupt is enabled. + * @API Type: External + * @param ic_id Ignored. + * @param irq IRQ number + * @return Zero if corresponding interrupt is disabled and + * non-zero otherwise. + */ +alt_u32 alt_ic_irq_enabled(alt_u32 ic_id, alt_u32 irq) +{ + alt_u32 irq_enabled; + + NIOS2_READ_IENABLE(irq_enabled); + + return (irq_enabled & (1 << irq)) ? 1: 0; +} + +#endif /* ALT_ENHANCED_INTERRUPT_API_PRESENT */ +#endif /* NIOS2_EIC_PRESENT */ diff --git a/software/qsys_tutorial_green_bsp/HAL/src/alt_iic_isr_register.c b/software/qsys_tutorial_green_bsp/HAL/src/alt_iic_isr_register.c new file mode 100644 index 0000000..b104395 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/HAL/src/alt_iic_isr_register.c @@ -0,0 +1,104 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2009 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ +#include +#include "system.h" + +/* + * Provides an interrupt registry mechanism for the any CPUs internal interrupt + * controller (IIC) when the enhanced interrupt API is active. + */ +#ifndef ALT_CPU_EIC_PRESENT +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT + +#include "alt_types.h" +#include "sys/alt_irq.h" +#include "priv/alt_iic_isr_register.h" + +/* + * The header, alt_irq_entry.h, contains the exception entry point, and is + * provided by the processor component. It is included here, so that the code + * will be added to the executable only if alt_irq_register() is present, i.e. + * if no interrupts are registered - there's no need to provide any + * interrupt handling. + */ + +#include "sys/alt_irq_entry.h" + +/* + * The header, alt_irq_table.h contains a table describing which function + * handles each interrupt. + */ + +#include "priv/alt_irq_table.h" + +/** @Function Description: This function registers an interrupt handler. + * If the function is succesful, then the requested interrupt will be enabled + * upon return. Registering a NULL handler will disable the interrupt. + * + * @API Type: External + * @param ic_id Interrupt controller ID + * @param irq IRQ ID number + * @param isr Pointer to interrupt service routine + * @param isr_context Opaque pointer passed to ISR + * @param flags + * @return 0 if successful, else error (-1) + */ +int alt_iic_isr_register(alt_u32 ic_id, alt_u32 irq, alt_isr_func isr, + void *isr_context, void *flags) +{ + int rc = -EINVAL; + int id = irq; /* IRQ interpreted as the interrupt ID. */ + alt_irq_context status; + + if (id < ALT_NIRQ) + { + /* + * interrupts are disabled while the handler tables are updated to ensure + * that an interrupt doesn't occur while the tables are in an inconsistant + * state. + */ + + status = alt_irq_disable_all(); + + alt_irq[id].handler = isr; + alt_irq[id].context = isr_context; + + rc = (isr) ? alt_ic_irq_enable(ic_id, id) : alt_ic_irq_disable(ic_id, id); + + alt_irq_enable_all(status); + } + + return rc; +} + +#endif /* ALT_ENHANCED_INTERRUPT_API_PRESENT */ +#endif /* ALT_CPU_EIC_PRESENT */ diff --git a/software/qsys_tutorial_green_bsp/HAL/src/alt_instruction_exception_entry.c b/software/qsys_tutorial_green_bsp/HAL/src/alt_instruction_exception_entry.c new file mode 100644 index 0000000..f4f52fc --- /dev/null +++ b/software/qsys_tutorial_green_bsp/HAL/src/alt_instruction_exception_entry.c @@ -0,0 +1,203 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2008 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ +#include "sys/alt_exceptions.h" +#include "nios2.h" +#include "alt_types.h" +#include "system.h" + +/* + * This file implements support for calling user-registered handlers for + * instruction-generated exceptions. This handler could also be reached + * in the event of a spurious interrupt. + * + * The handler code is optionally enabled through the "Enable + * Instruction-related Exception API" HAL BSP setting, which will + * define the macro below. + */ +#ifdef ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API + +/* Function pointer to exception callback routine */ +alt_exception_result (*alt_instruction_exception_handler) + (alt_exception_cause, alt_u32, alt_u32) = 0x0; + +/* Link entry routine to .exceptions section */ +int alt_instruction_exception_entry (alt_u32 exception_pc) + __attribute__ ((section (".exceptions"))); + +/* + * This is the entry point for instruction-generated exceptions handling. + * This routine will be called by alt_exceptions_entry.S, after it determines + * that an exception could not be handled by handlers that preceed that + * of instruction-generated exceptions (such as interrupts). + * + * For this to function properly, you must register an exception handler + * using alt_instruction_exception_register(). This routine will call + * that handler if it has been registered. Absent a handler, it will + * break break or hang as discussed below. + */ +int alt_instruction_exception_entry (alt_u32 exception_pc) +{ + alt_u32 cause, badaddr; + +/* + * If the processor hardware has the optional EXCEPTIONS & BADADDR registers, + * read them and pass their content to the user handler. These are always + * present if the MMU or MPU is enabled, and optionally for other advanced + * exception types via the "Extra exceptions information" setting in the + * processor (hardware) configuration. + * + * If these registers are not present, the cause field will be set to + * NIOS2_EXCEPTION_CAUSE_NOT_PRESENT. Your handling routine should + * check the validity of the cause argument before proceeding. + */ +#ifdef NIOS2_HAS_EXTRA_EXCEPTION_INFO + /* Get exception cause & "badaddr" */ + NIOS2_READ_EXCEPTION(cause); + cause = ( (cause & NIOS2_EXCEPTION_REG_CAUSE_MASK) >> + NIOS2_EXCEPTION_REG_CAUSE_OFST ); + + NIOS2_READ_BADADDR(badaddr); +#else + cause = NIOS2_EXCEPTION_CAUSE_NOT_PRESENT; + badaddr = 0; +#endif /* NIOS2_HAS_EXTRA_EXCEPTION_INFO */ + + if(alt_instruction_exception_handler) { + /* + * Call handler. Its return value indicates whether the exception-causing + * instruction should be re-issued. The code that called us, + * alt_eceptions_entry.S, will look at this value and adjust the ea + * register as necessary + */ + return alt_instruction_exception_handler(cause, exception_pc, badaddr); + } + /* + * We got here because an instruction-generated exception occured, but no + * handler is present. We do not presume to know how to handle it. If the + * debugger is present, break, otherwise hang. + * + * If you've reached here in the debugger, consider examining the + * EXCEPTIONS register cause bit-field, which was read into the 'cause' + * variable above, and compare it against the exceptions-type enumeration + * in alt_exceptions.h. This register is availabe if the MMU or MPU is + * present, or if the "Extra exceptions information" hardware option is + * selected. + * + * If you get here then one of the following could have happened: + * + * - An instruction-generated exception occured, and the processor + * does not have the extra exceptions feature enabled, or you + * have not registered a handler using + * alt_instruction_exception_register() + * + * Some examples of instruction-generated exceptions and why they + * might occur: + * + * - Your program could have been compiled for a full-featured + * Nios II core, but it is running on a smaller core, and + * instruction emulation has been disabled by defining + * ALT_NO_INSTRUCTION_EMULATION. + * + * You can work around the problem by re-enabling instruction + * emulation, or you can figure out why your program is being + * compiled for a system other than the one that it is running on. + * + * - Your program has executed a trap instruction, but has not + * implemented a handler for this instruction. + * + * - Your program has executed an illegal instruction (one which is + * not defined in the instruction set). + * + * - Your processor includes an MMU or MPU, and you have enabled it + * before registering an exception handler to service exceptions it + * generates. + * + * The problem could also be hardware related: + * - If your hardware is broken and is generating spurious interrupts + * (a peripheral which negates its interrupt output before its + * interrupt handler has been executed will cause spurious interrupts) + */ + else { +#ifdef NIOS2_HAS_DEBUG_STUB + NIOS2_BREAK(); +#else + while(1) + ; +#endif /* NIOS2_HAS_DEBUG_STUB */ + } + + /* // We should not get here. Remove compiler warning. */ + return NIOS2_EXCEPTION_RETURN_REISSUE_INST; +} + +#endif /* ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API */ + +/* + * This routine indicates whether a particular exception cause will have + * set a valid address into the BADADDR register, which is included + * in the arguments to a user-registered instruction-generated exception + * handler. Many exception types do not set valid contents in BADADDR; + * this is a convenience routine to easily test the validity of that + * argument in your handler. + * + * Note that this routine will return false (0) for cause '12', + * TLB miss. This is because there are four exception types that + * share that cause, two of which do not have a valid BADADDR. You + * must determine BADADDR's validity for these. + * + * Arguments: + * cause: The 5-bit exception cause field of the EXCEPTIONS register, + * shifted to the LSB position. You may pass the 'cause' argument + * in a handler you registered directy to this routine. + * + * Return: 1: BADADDR (bad_addr argument to handler) is valid + * 0: BADADDR is not valid + */ +int alt_exception_cause_generated_bad_addr(alt_exception_cause cause) +{ + switch (cause) { + case NIOS2_EXCEPTION_SUPERVISOR_ONLY_DATA_ADDR: + return 1; + case NIOS2_EXCEPTION_MISALIGNED_DATA_ADDR: + return 1; + case NIOS2_EXCEPTION_MISALIGNED_TARGET_PC: + return 1; + case NIOS2_EXCEPTION_TLB_READ_PERM_VIOLATION: + return 1; + case NIOS2_EXCEPTION_TLB_WRITE_PERM_VIOLATION: + return 1; + case NIOS2_EXCEPTION_MPU_DATA_REGION_VIOLATION: + return 1; + default: + return 0; + } +} diff --git a/software/qsys_tutorial_green_bsp/HAL/src/alt_instruction_exception_register.c b/software/qsys_tutorial_green_bsp/HAL/src/alt_instruction_exception_register.c new file mode 100644 index 0000000..b059e1d --- /dev/null +++ b/software/qsys_tutorial_green_bsp/HAL/src/alt_instruction_exception_register.c @@ -0,0 +1,82 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2008 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ +#include "sys/alt_exceptions.h" +#include "alt_types.h" +#include "system.h" + +/* + * This file implements support for calling user-registered handlers for + * instruction-generated exceptions. + * + * The registry API is optionally enabled through the "Enable + * Instruction-related Exception API" HAL BSP setting, which will + * define the macro below. + */ +#ifdef ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API + +/* + * The header, alt_exception_handler_registry.h contains a struct describing + * the registered exception handler + */ +#include "priv/alt_exception_handler_registry.h" + +/* + * Pull in the exception entry assembly code. This will not be linked in + * unless this object is linked into the executable (i.e. only if + * alt_instruction_exception_register() is called). + */ +__asm__( "\n\t.globl alt_exception" ); + +/* + * alt_instruction_exception_register() is called to register a handler to + * service instruction-generated exceptions that are not handled by the + * default exception handler code (interrupts, and optionally unimplemented + * instructions and traps). + * + * Passing null (0x0) in the handler argument will disable a previously- + * registered handler. + * + * Note that if no handler is registered, exceptions that are not processed + * using the built-in handler (interrupts, and optionally unimplemented + * instructions and traps) are treated as unknown exceptions, resulting + * in either a break or an infinite loop. + */ +void alt_instruction_exception_register ( + alt_exception_result (*exception_handler)( + alt_exception_cause cause, + alt_u32 exception_pc, + alt_u32 bad_addr) ) +{ + alt_instruction_exception_handler = exception_handler; +} + +#endif /* ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API */ diff --git a/software/qsys_tutorial_green_bsp/HAL/src/alt_io_redirect.c b/software/qsys_tutorial_green_bsp/HAL/src/alt_io_redirect.c new file mode 100644 index 0000000..8c862f7 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/HAL/src/alt_io_redirect.c @@ -0,0 +1,98 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include +#include +#include + +#include "sys/alt_dev.h" +#include "priv/alt_file.h" + + +/* + * alt_open_fd() is similar to open() in that it is used to obtain a file + * descriptor for the file named "name". The "flags" and "mode" arguments are + * identical to the "flags" and "mode" arguments of open(). + * + * The distinction between the two functions is that the file descriptor + * structure to use is passed in as an argument, rather than allocated from the + * list of free file descriptors. + * + * This is used by alt_io_redirect() to redirect the stdin, stdout and stderr + * file descriptors to point to new devices. + * + * If the device can not be succesfully opened, then the input file descriptor + * remains unchanged. + */ + +static void alt_open_fd(alt_fd* fd, const char* name, int flags, int mode) +{ + int old; + + old = open (name, flags, mode); + + if (old >= 0) + { + fd->dev = alt_fd_list[old].dev; + fd->priv = alt_fd_list[old].priv; + fd->fd_flags = alt_fd_list[old].fd_flags; + + alt_release_fd (old); + } +} + +/* + * alt_io_redirect() is called once the device/filesystem lists have been + * initialised, but before main(). Its function is to redirect standard in, + * standard out and standard error so that they point to the devices selected by + * the user (as defined in system.h). + * + * Prior to the call to this function, io is directed towards /dev/null. If + * i/o can not be redirected to the requested device, for example if the device + * does not exist, then it remains directed at /dev/null. + */ + +void alt_io_redirect(const char* stdout_dev, + const char* stdin_dev, + const char* stderr_dev) +{ + /* Redirect the channels */ + + alt_open_fd (&alt_fd_list[STDOUT_FILENO], stdout_dev, O_WRONLY, 0777); + alt_open_fd (&alt_fd_list[STDIN_FILENO], stdin_dev, O_RDONLY, 0777); + alt_open_fd (&alt_fd_list[STDERR_FILENO], stderr_dev, O_WRONLY, 0777); +} + + + + diff --git a/software/qsys_tutorial_green_bsp/HAL/src/alt_ioctl.c b/software/qsys_tutorial_green_bsp/HAL/src/alt_ioctl.c new file mode 100644 index 0000000..f5d7ef1 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/HAL/src/alt_ioctl.c @@ -0,0 +1,170 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +#include "sys/ioctl.h" +#include "sys/alt_errno.h" +#include "sys/alt_warning.h" +#include "priv/alt_file.h" +#include "os/alt_syscall.h" + +/* + * The ioctl() system call is provided so that application code can manipulate + * the i/o capabilities of a device in device specific ways. This is identical + * to the standard posix ioctl() function. + * + * In general this implementation simply vectors ioctl requests to the + * apropriate drivers ioctl function (as registered in the drivers alt_dev + * structure). + * + * However in the case of devices (as oposed to filesystem), the TIOCEXCL and + * TIOCNXCL requests are handled without reference to the driver. These + * requests are used to lock/release a device for exclusive access. + * + * Handling these requests centrally eases the task of device driver + * development. + * + * ALT_IOCTL is mapped onto the ioctl() system call in alt_syscall.h + */ + +#ifdef ALT_USE_DIRECT_DRIVERS + +#include "system.h" +#include "sys/alt_driver.h" + +/* + * Provide minimal version that calls ioctl routine of provided stdio devices. + */ +int ALT_IOCTL (int file, int req, void* arg) +{ +#ifdef ALT_STDIN_PRESENT + ALT_DRIVER_IOCTL_EXTERNS(ALT_STDIN_DEV); +#endif +#ifdef ALT_STDOUT_PRESENT + ALT_DRIVER_IOCTL_EXTERNS(ALT_STDOUT_DEV); +#endif +#ifdef ALT_STDERR_PRESENT + ALT_DRIVER_IOCTL_EXTERNS(ALT_STDERR_DEV); +#endif + +#if !defined(ALT_STDIN_PRESENT) && !defined(ALT_STDOUT_PRESENT) && !defined(ALT_STDERR_PRESENT) + /* Generate a link time warning, should this function ever be called. */ + ALT_STUB_WARNING(ioctl); +#endif + + switch (file) { +#ifdef ALT_STDIN_PRESENT + case 0: /* stdin file descriptor */ + return ALT_DRIVER_IOCTL(ALT_STDIN_DEV, req, arg); +#endif /* ALT_STDIN_PRESENT */ +#ifdef ALT_STDOUT_PRESENT + case 1: /* stdout file descriptor */ + return ALT_DRIVER_IOCTL(ALT_STDOUT_DEV, req, arg); +#endif /* ALT_STDOUT_PRESENT */ +#ifdef ALT_STDERR_PRESENT + case 2: /* stderr file descriptor */ + return ALT_DRIVER_IOCTL(ALT_STDERR_DEV, req, arg); +#endif /* ALT_STDERR_PRESENT */ + default: + ALT_ERRNO = EBADFD; + return -1; + } +} + +#else /* !ALT_USE_DIRECT_DRIVERS */ + +int ALT_IOCTL (int file, int req, void* arg) +{ + alt_fd* fd; + int rc; + + /* + * A common error case is that when the file descriptor was created, the call + * to open() failed resulting in a negative file descriptor. This is trapped + * below so that we don't try and process an invalid file descriptor. + */ + + fd = (file < 0) ? NULL : &alt_fd_list[file]; + + if (fd) + { + + /* + * In the case of device drivers (not file systems) handle the TIOCEXCL + * and TIOCNXCL requests as special cases. + */ + + if (fd->fd_flags & ALT_FD_DEV) + { + if (req == TIOCEXCL) + { + rc = alt_fd_lock (fd); + goto ioctl_done; + } + else if (req == TIOCNXCL) + { + rc = alt_fd_unlock (fd); + goto ioctl_done; + } + } + + /* + * If the driver provides an ioctl() function, call that to handle the + * request, otherwise set the return code to indicate that the request + * could not be processed. + */ + + if (fd->dev->ioctl) + { + rc = fd->dev->ioctl(fd, req, arg); + } + else + { + rc = -ENOTTY; + } + } + else + { + rc = -EBADFD; + } + +ioctl_done: + + if (rc < 0) + { + ALT_ERRNO = -rc; + } + return rc; +} + +#endif /* ALT_USE_DIRECT_DRIVERS */ diff --git a/software/qsys_tutorial_green_bsp/HAL/src/alt_irq_entry.S b/software/qsys_tutorial_green_bsp/HAL/src/alt_irq_entry.S new file mode 100644 index 0000000..d3efe7d --- /dev/null +++ b/software/qsys_tutorial_green_bsp/HAL/src/alt_irq_entry.S @@ -0,0 +1,108 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003-2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "system.h" + +/* + * This is the interrupt exception entry point code, which saves all the + * registers and calls the interrupt handler. It should be pulled in using + * a .globl from alt_irq_register.c. This scheme is used so that if an + * interrupt is never registered, then this code will not appear in the + * generated executable, thereby improving code footprint. + */ + + /* + * Explicitly allow the use of r1 (the assembler temporary register) + * within this code. This register is normally reserved for the use of + * the compiler. + */ + .set noat + + /* + * Pull in the exception handler register save code. + */ + .globl alt_exception + + .globl alt_irq_entry + .section .exceptions.entry.label, "xa" +alt_irq_entry: + + /* + * Section .exceptions.entry is in alt_exception_entry.S + * This saves all the caller saved registers and reads estatus into r5 + */ + + .section .exceptions.irqtest, "xa" + +#ifdef ALT_CI_INTERRUPT_VECTOR_N + /* + * Use the interrupt vector custom instruction if present to accelerate + * this code. + * If the interrupt vector custom instruction returns a negative + * value, there are no interrupts active (estatus.pie is 0 + * or ipending is 0) so assume it is a software exception. + */ + custom ALT_CI_INTERRUPT_VECTOR_N, r4, r0, r0 + blt r4, r0, .Lnot_irq +#else + /* + * Test to see if the exception was a software exception or caused + * by an external interrupt, and vector accordingly. + */ + rdctl r4, ipending + andi r2, r5, 1 + beq r2, zero, .Lnot_irq + beq r4, zero, .Lnot_irq +#endif /* ALT_CI_INTERRUPT_VECTOR_N */ + + .section .exceptions.irqhandler, "xa" + /* + * Now that all necessary registers have been preserved, call + * alt_irq_handler() to process the interrupts. + */ + + call alt_irq_handler + + .section .exceptions.irqreturn, "xa" + + br .Lexception_exit + + .section .exceptions.notirq.label, "xa" + +.Lnot_irq: + + /* + * Section .exceptions.exit is in alt_exception_entry.S + * This restores all the caller saved registers + */ + + .section .exceptions.exit.label +.Lexception_exit: + diff --git a/software/qsys_tutorial_green_bsp/HAL/src/alt_irq_handler.c b/software/qsys_tutorial_green_bsp/HAL/src/alt_irq_handler.c new file mode 100644 index 0000000..3253d02 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/HAL/src/alt_irq_handler.c @@ -0,0 +1,169 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2009 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include "system.h" + +/* + * This interrupt handler only works with an internal interrupt controller + * (IIC). Processors with an external interrupt controller (EIC) use an + * implementation provided by an EIC driver. + */ +#ifndef ALT_CPU_EIC_PRESENT + +#include "sys/alt_irq.h" +#include "os/alt_hooks.h" + +#include "alt_types.h" + +/* + * A table describing each interrupt handler. The index into the array is the + * interrupt id associated with the handler. + * + * When an interrupt occurs, the associated handler is called with + * the argument stored in the context member. + */ +struct ALT_IRQ_HANDLER +{ +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT + void (*handler)(void*); +#else + void (*handler)(void*, alt_u32); +#endif + void *context; +} alt_irq[ALT_NIRQ]; + +/* + * alt_irq_handler() is called by the interrupt exception handler in order to + * process any outstanding interrupts. + * + * It is defined here since it is linked in using weak linkage. + * This means that if there is never a call to alt_irq_register() (above) then + * this function will not get linked in to the executable. This is acceptable + * since if no handler is ever registered, then an interrupt can never occur. + * + * If Nios II interrupt vector custom instruction exists, use it to accelerate + * the dispatch of interrupt handlers. The Nios II interrupt vector custom + * instruction is present if the macro ALT_CI_INTERRUPT_VECTOR defined. + */ + +void alt_irq_handler (void) __attribute__ ((section (".exceptions"))); +void alt_irq_handler (void) +{ +#ifdef ALT_CI_INTERRUPT_VECTOR + alt_32 offset; + char* alt_irq_base = (char*)alt_irq; +#else + alt_u32 active; + alt_u32 mask; + alt_u32 i; +#endif /* ALT_CI_INTERRUPT_VECTOR */ + + /* + * Notify the operating system that we are at interrupt level. + */ + + ALT_OS_INT_ENTER(); + +#ifdef ALT_CI_INTERRUPT_VECTOR + /* + * Call the interrupt vector custom instruction using the + * ALT_CI_INTERRUPT_VECTOR macro. + * It returns the offset into the vector table of the lowest-valued pending + * interrupt (corresponds to highest priority) or a negative value if none. + * The custom instruction assumes that each table entry is eight bytes. + */ + while ((offset = ALT_CI_INTERRUPT_VECTOR) >= 0) { + struct ALT_IRQ_HANDLER* handler_entry = + (struct ALT_IRQ_HANDLER*)(alt_irq_base + offset); +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT + handler_entry->handler(handler_entry->context); +#else + handler_entry->handler(handler_entry->context, offset >> 3); +#endif + } +#else /* ALT_CI_INTERRUPT_VECTOR */ + /* + * Obtain from the interrupt controller a bit list of pending interrupts, + * and then process the highest priority interrupt. This process loops, + * loading the active interrupt list on each pass until alt_irq_pending() + * return zero. + * + * The maximum interrupt latency for the highest priority interrupt is + * reduced by finding out which interrupts are pending as late as possible. + * Consider the case where the high priority interupt is asserted during + * the interrupt entry sequence for a lower priority interrupt to see why + * this is the case. + */ + + active = alt_irq_pending (); + + do + { + i = 0; + mask = 1; + + /* + * Test each bit in turn looking for an active interrupt. Once one is + * found, the interrupt handler asigned by a call to alt_irq_register() is + * called to clear the interrupt condition. + */ + + do + { + if (active & mask) + { +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT + alt_irq[i].handler(alt_irq[i].context); +#else + alt_irq[i].handler(alt_irq[i].context, i); +#endif + break; + } + mask <<= 1; + i++; + + } while (1); + + active = alt_irq_pending (); + + } while (active); +#endif /* ALT_CI_INTERRUPT_VECTOR */ + + /* + * Notify the operating system that interrupt processing is complete. + */ + + ALT_OS_INT_EXIT(); +} + +#endif /* ALT_CPU_EIC_PRESENT */ diff --git a/software/qsys_tutorial_green_bsp/HAL/src/alt_irq_register.c b/software/qsys_tutorial_green_bsp/HAL/src/alt_irq_register.c new file mode 100644 index 0000000..b5ea474 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/HAL/src/alt_irq_register.c @@ -0,0 +1,102 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2009 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ +#include +#include "system.h" + +/* + * This interrupt registry mechanism works with the Nios II internal interrupt + * controller (IIC) only. Systems with an external interrupt controller (EIC), + * or those with the IIC who are using the enhanced interrupt API will + * utilize the alt_ic_isr_register() routine to register an interrupt. + */ +#ifndef NIOS2_EIC_PRESENT + +#include "sys/alt_irq.h" +#include "priv/alt_legacy_irq.h" +#include "os/alt_hooks.h" + +#include "alt_types.h" + +/* + * The header, alt_irq_entry.h, contains the exception entry point, and is + * provided by the processor component. It is included here, so that the code + * will be added to the executable only if alt_irq_register() is present, i.e. + * if no interrupts are registered - there's no need to provide any + * interrupt handling. + */ + +#include "sys/alt_irq_entry.h" + +/* + * The header, alt_irq_table.h contains a table describing which function + * handles each interrupt. + */ + +#include "priv/alt_irq_table.h" + +/* + * alt_irq_handler() is called to register an interrupt handler. If the + * function is succesful, then the requested interrupt will be enabled upon + * return. Registering a NULL handler will disable the interrupt. + * + * The return value is 0 if the interrupt handler was registered and the + * interrupt was enabled, otherwise it is negative. + */ + +int alt_irq_register (alt_u32 id, + void* context, + alt_isr_func handler) +{ + int rc = -EINVAL; + alt_irq_context status; + + if (id < ALT_NIRQ) + { + /* + * interrupts are disabled while the handler tables are updated to ensure + * that an interrupt doesn't occur while the tables are in an inconsistant + * state. + */ + + status = alt_irq_disable_all (); + + alt_irq[id].handler = handler; + alt_irq[id].context = context; + + rc = (handler) ? alt_irq_enable (id): alt_irq_disable (id); + + alt_irq_enable_all(status); + } + return rc; +} +#endif /* NIOS2_EIC_PRESENT */ + diff --git a/software/qsys_tutorial_green_bsp/HAL/src/alt_irq_vars.c b/software/qsys_tutorial_green_bsp/HAL/src/alt_irq_vars.c new file mode 100644 index 0000000..8c0a18d --- /dev/null +++ b/software/qsys_tutorial_green_bsp/HAL/src/alt_irq_vars.c @@ -0,0 +1,47 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "alt_types.h" + +#include "system.h" + +/* + * These global variables are used to save the current list of enabled + * interrupts. See alt_irq.h for further details. + */ + +volatile alt_u32 alt_irq_active = 0; + +#ifndef ALT_EXCEPTION_STACK + +volatile alt_u32 alt_priority_mask = (alt_u32) -1; + +#endif + diff --git a/software/qsys_tutorial_green_bsp/HAL/src/alt_isatty.c b/software/qsys_tutorial_green_bsp/HAL/src/alt_isatty.c new file mode 100644 index 0000000..9276472 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/HAL/src/alt_isatty.c @@ -0,0 +1,125 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include + +#include "sys/alt_dev.h" +#include "sys/alt_errno.h" +#include "sys/alt_warning.h" +#include "priv/alt_file.h" +#include "os/alt_syscall.h" + +#ifdef ALT_USE_DIRECT_DRIVERS + +#include "system.h" + +/* + * Provide minimal version that just describes all file descriptors + * as tty devices for provided stdio devices. + */ +int ALT_ISATTY (int file) +{ + switch (file) { +#ifdef ALT_STDIN_PRESENT + case 0: /* stdin file descriptor */ +#endif /* ALT_STDIN_PRESENT */ +#ifdef ALT_STDOUT_PRESENT + case 1: /* stdout file descriptor */ +#endif /* ALT_STDOUT_PRESENT */ +#ifdef ALT_STDERR_PRESENT + case 2: /* stderr file descriptor */ +#endif /* ALT_STDERR_PRESENT */ + return 1; + default: + return 0; + } + +#if !defined(ALT_STDIN_PRESENT) && !defined(ALT_STDOUT_PRESENT) && !defined(ALT_STDERR_PRESENT) + /* Generate a link time warning, should this function ever be called. */ + ALT_STUB_WARNING(isatty); +#endif +} + +#else /* !ALT_USE_DIRECT_DRIVERS */ +/* + * isatty() can be used to determine whether the input file descriptor "file" + * refers to a terminal device or not. If it is a terminal device then the + * return value is one, otherwise it is zero. + * + * ALT_ISATTY is mapped onto the isatty() system call in alt_syscall.h + */ + +int ALT_ISATTY (int file) +{ + alt_fd* fd; + struct stat stat; + + /* + * A common error case is that when the file descriptor was created, the call + * to open() failed resulting in a negative file descriptor. This is trapped + * below so that we don't try and process an invalid file descriptor. + */ + + fd = (file < 0) ? NULL : &alt_fd_list[file]; + + if (fd) + { + /* + * If a device driver does not provide an fstat() function, then it is + * treated as a terminal device by default. + */ + + if (!fd->dev->fstat) + { + return 1; + } + + /* + * If a driver does provide an implementation of the fstat() function, then + * this is called so that the device can identify itself. + */ + + else + { + fstat (file, &stat); + return (stat.st_mode == _IFCHR) ? 1 : 0; + } + } + else + { + ALT_ERRNO = EBADFD; + return 0; + } +} + +#endif /* ALT_USE_DIRECT_DRIVERS */ diff --git a/software/qsys_tutorial_green_bsp/HAL/src/alt_kill.c b/software/qsys_tutorial_green_bsp/HAL/src/alt_kill.c new file mode 100644 index 0000000..42c2e1d --- /dev/null +++ b/software/qsys_tutorial_green_bsp/HAL/src/alt_kill.c @@ -0,0 +1,121 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include + +#include "sys/alt_errno.h" +#include "os/alt_syscall.h" + + +/* + * kill() is used by newlib in order to send signals to processes. Since there + * is only a single process in the HAL, the only valid values for pid are + * either the current process id, or the broadcast values, i.e. pid must be + * less than or equal to zero. + * + * ALT_KILL is mapped onto the kill() system call in alt_syscall.h + */ + +int ALT_KILL (int pid, int sig) +{ + int status = 0; + + if (pid <= 0) + { + switch (sig) + { + case 0: + + /* The null signal is used to check that a pid is valid. */ + + break; + + case SIGABRT: + case SIGALRM: + case SIGFPE: + case SIGILL: + case SIGKILL: + case SIGPIPE: + case SIGQUIT: + case SIGSEGV: + case SIGTERM: + case SIGUSR1: + case SIGUSR2: + case SIGBUS: + case SIGPOLL: + case SIGPROF: + case SIGSYS: + case SIGTRAP: + case SIGVTALRM: + case SIGXCPU: + case SIGXFSZ: + + /* + * The Posix standard defines the default behaviour for all these signals + * as being eqivalent to a call to _exit(). No mechanism is provided to + * change this behaviour. + */ + + _exit(0); + case SIGCHLD: + case SIGURG: + + /* + * The Posix standard defines these signals to be ignored by default. No + * mechanism is provided to change this behaviour. + */ + + break; + default: + + /* Tried to send an unsupported signal */ + + status = EINVAL; + } + } + + else if (pid > 0) + { + /* Attempted to signal a non-existant process */ + + status = ESRCH; + } + + if (status) + { + ALT_ERRNO = status; + return -1; + } + + return 0; +} diff --git a/software/qsys_tutorial_green_bsp/HAL/src/alt_link.c b/software/qsys_tutorial_green_bsp/HAL/src/alt_link.c new file mode 100644 index 0000000..d796c59 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/HAL/src/alt_link.c @@ -0,0 +1,56 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_warning.h" +#include "sys/alt_errno.h" +#include "os/alt_syscall.h" + +/* + * link() is used by newlib to create a new link to an existing file. This is + * unsupported in the HAL environment. However a "do-nothing" implementation + * is still provied for newlib compatability. + * + * ALT_LINK is mapped onto the link() system call in alt_syscall.h + */ + +int ALT_LINK ( char *existing, char *new) +{ + /* Generate a link time warning, should this function ever be called. */ + + ALT_STUB_WARNING(link); + + /* Indicate an error */ + + ALT_ERRNO = ENOSYS; + return -1; +} + diff --git a/software/qsys_tutorial_green_bsp/HAL/src/alt_load.c b/software/qsys_tutorial_green_bsp/HAL/src/alt_load.c new file mode 100644 index 0000000..ffab4b9 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/HAL/src/alt_load.c @@ -0,0 +1,88 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004-2005 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_load.h" +#include "sys/alt_cache.h" + +/* + * Linker defined symbols. + */ + +extern void __flash_rwdata_start; +extern void __ram_rwdata_start; +extern void __ram_rwdata_end; +extern void __flash_rodata_start; +extern void __ram_rodata_start; +extern void __ram_rodata_end; +extern void __flash_exceptions_start; +extern void __ram_exceptions_start; +extern void __ram_exceptions_end; + +/* + * alt_load() is called when the code is executing from flash. In this case + * there is no bootloader, so this application is responsible for loading to + * RAM any sections that are required. + */ + +void alt_load (void) +{ + /* + * Copy the .rwdata section. + */ + + alt_load_section (&__flash_rwdata_start, + &__ram_rwdata_start, + &__ram_rwdata_end); + + /* + * Copy the exception handler. + */ + + alt_load_section (&__flash_exceptions_start, + &__ram_exceptions_start, + &__ram_exceptions_end); + + /* + * Copy the .rodata section. + */ + + alt_load_section (&__flash_rodata_start, + &__ram_rodata_start, + &__ram_rodata_end); + + /* + * Now ensure that the caches are in synch. + */ + + alt_dcache_flush_all(); + alt_icache_flush_all(); +} diff --git a/software/qsys_tutorial_green_bsp/HAL/src/alt_log_macro.S b/software/qsys_tutorial_green_bsp/HAL/src/alt_log_macro.S new file mode 100644 index 0000000..499c4ad --- /dev/null +++ b/software/qsys_tutorial_green_bsp/HAL/src/alt_log_macro.S @@ -0,0 +1,56 @@ +/* alt_log_macro.S + * + * Implements the function tx_log_str, called by the assembly macro + * ALT_LOG_PUTS(). The macro will be empty when logging is turned off, + * and this function will not be compiled. When logging is on, + * this function is used to print out the strings defined in the beginning + * of alt_log_printf.c, using port information taken from system.h and + * alt_log_printf.h. + * + * This routine only handles strings, and sends a character into the defined + * output device's output buffer when the device is ready. It's intended for + * debugging purposes, where messages can be set to print out at certain + * points in the boot code to indicate the progress of the program. + * + */ + +#ifndef __ALT_LOG_MACROS__ +#define __ALT_LOG_MACROS__ + +/* define this flag to skip assembly-incompatible parts + * of various include files. */ +#define ALT_ASM_SRC + +#ifdef ALT_LOG_ENABLE // only compile this function if this flag is defined. + + #include "system.h" + #include "sys/alt_log_printf.h" + + .global tx_log_str +tx_log_str: + /* load base uart / jtag uart address into r6 */ + movhi r6, %hiadj(ALT_LOG_PORT_BASE) + addi r6, r6, %lo(ALT_LOG_PORT_BASE) +tx_next_char: + /* if pointer points to null, return + * r4 is the pointer to the str to be printed, set by ALT_LOG_PUTS */ + ldb r7, (r4) + beq r0, r7, end_tx + + /* check device transmit ready */ +wait_tx_ready_loop: + ldwio r5, ALT_LOG_PRINT_REG_OFFSET(r6) + andi r5, r5, ALT_LOG_PRINT_MSK + beq r5, r0, wait_tx_ready_loop + /* write char */ + stwio r7, ALT_LOG_PRINT_TXDATA_REG_OFFSET (r6) + /* advance string pointer */ + addi r4, r4, 1 + br tx_next_char +end_tx: + ret + +#endif + +#endif /* __ALT_LOG_MACROS__ */ + diff --git a/software/qsys_tutorial_green_bsp/HAL/src/alt_log_printf.c b/software/qsys_tutorial_green_bsp/HAL/src/alt_log_printf.c new file mode 100644 index 0000000..1f7056d --- /dev/null +++ b/software/qsys_tutorial_green_bsp/HAL/src/alt_log_printf.c @@ -0,0 +1,479 @@ + +/* alt_log_printf.c + * + * This file implements the various C functions used for the + * alt_log logging/debugging print functions. The functions + * sit as is here - the job of hiding them from the compiler + * if logging is disabled is accomplished in the .h file. + * + * All the global variables for alt_log are defined here. + * These include the various flags that turn on additional + * logging options; the strings for assembly printing; and + * other globals needed by different logging options. + * + * There are 4 functions that handle the actual printing: + * alt_log_txchar: Actual function that puts 1 char to UART/JTAG UART. + * alt_log_repchar: Calls alt_log_txchar 'n' times - used by + * alt_log_private_printf for formatting. + * alt_log_private_printf: + * Stripped down implementation of printf - no floats. + * alt_log_printf_proc: + * Wrapper function for private_printf. + * + * The rest of the functions are called by the macros which + * were called by code in the other components. Each function + * is preceded by a comment, about which file it gets called + * in, and what its purpose is. + * + * author: gkwan + */ + +/* skip all code if enable is off */ +#ifdef ALT_LOG_ENABLE + +#include +#include +#include +#ifdef __ALTERA_AVALON_JTAG_UART + #include "altera_avalon_jtag_uart.h" + #include +#endif +#include "sys/alt_log_printf.h" + +/* strings for assembly puts */ +char alt_log_msg_bss[] = "[crt0.S] Clearing BSS \r\n";; +char alt_log_msg_alt_main[] = "[crt0.S] Calling alt_main.\r\n"; +char alt_log_msg_stackpointer[] \ + = "[crt0.S] Setting up stack and global pointers.\r\n"; +char alt_log_msg_cache[] = "[crt0.S] Inst & Data Cache Initialized.\r\n"; +/* char array allocation for alt_write */ +char alt_log_write_buf[ALT_LOG_WRITE_ECHO_LEN+2]; + +/* global variables for all 'on' flags */ + +/* + * The boot message flag is linked into the data (rwdata) section + * because if it is zero, it would otherwise be placed in the bss section. + * alt_log examines this variable before the BSS is cleared in the boot-up + * process. + */ +volatile alt_u32 alt_log_boot_on_flag \ + __attribute__ ((section (".data"))) = ALT_LOG_BOOT_ON_FLAG_SETTING; + +volatile alt_u8 alt_log_write_on_flag = ALT_LOG_WRITE_ON_FLAG_SETTING; + +volatile alt_u8 alt_log_sys_clk_on_flag = ALT_LOG_SYS_CLK_ON_FLAG_SETTING; + +volatile alt_u8 alt_log_jtag_uart_alarm_on_flag = \ + ALT_LOG_JTAG_UART_ALARM_ON_FLAG_SETTING; + +volatile alt_u8 alt_log_jtag_uart_isr_on_flag = \ + ALT_LOG_JTAG_UART_ISR_ON_FLAG_SETTING; + +volatile alt_u8 alt_log_jtag_uart_startup_info_on_flag = \ + ALT_LOG_JTAG_UART_STARTUP_INFO_ON_FLAG_SETTING; + +/* Global alarm object for recurrent JTAG UART status printing */ +alt_alarm alt_log_jtag_uart_alarm_1; + +/* Global ints for system clock printing and count */ +volatile int alt_log_sys_clk_count; +volatile int alt_system_clock_in_sec; + +/* enum used by alt_log_private_printf */ +enum +{ + pfState_chars, + pfState_firstFmtChar, + pfState_otherFmtChar +}; + + + + +/* Function to put one char onto the UART/JTAG UART txdata register. */ +void alt_log_txchar(int c,char *base) +{ + /* Wait until the device is ready for a character */ + while((ALT_LOG_PRINT_REG_RD(base) & ALT_LOG_PRINT_MSK) == 0) + ; + /* And pop the character into the register */ + ALT_LOG_PRINT_TXDATA_WR(base,c); +} + + +/* Called by alt_log_private_printf to print out characters repeatedly */ +void alt_log_repchar(char c,int r,int base) +{ + while(r-- > 0) + alt_log_txchar(c,(char*) base); +} + + +/* Stripped down printf function */ +void alt_log_private_printf(const char *fmt,int base,va_list args) + { + const char *w; + char c; + int state; + int fmtLeadingZero = 0; /* init these all to 0 for -W warnings. */ + int fmtLong = 0; + int fmtBeforeDecimal = 0; + int fmtAfterDecimal = 0; + int fmtBase = 0; + int fmtSigned = 0; + int fmtCase = 0; /* For hex format, if 1, A-F, else a-f. */ + + w = fmt; + state = pfState_chars; + + while(0 != (c = *w++)) + { + switch(state) + { + case pfState_chars: + if(c == '%') + { + fmtLeadingZero = 0; + fmtLong = 0; + fmtBase = 10; + fmtSigned = 1; + fmtCase = 0; /* Only %X sets this. */ + fmtBeforeDecimal = -1; + fmtAfterDecimal = -1; + state = pfState_firstFmtChar; + } + else + { + alt_log_txchar(c,(char*)base); + } + break; + + case pfState_firstFmtChar: + if(c == '0') + { + fmtLeadingZero = 1; + state = pfState_otherFmtChar; + } + else if(c == '%') + { + alt_log_txchar(c,(char*)base); + state = pfState_chars; + } + else + { + state = pfState_otherFmtChar; + goto otherFmtChar; + } + break; + + case pfState_otherFmtChar: +otherFmtChar: + if(c == '.') + { + fmtAfterDecimal = 0; + } + else if('0' <= c && c <= '9') + { + c -= '0'; + if(fmtAfterDecimal < 0) /* still before decimal */ + { + if(fmtBeforeDecimal < 0) + { + fmtBeforeDecimal = 0; + } + else + { + fmtBeforeDecimal *= 10; + } + fmtBeforeDecimal += c; + } + else + { + fmtAfterDecimal = (fmtAfterDecimal * 10) + c; + } + } + else if(c == 'l') + { + fmtLong = 1; + } + else /* we're up to the letter which determines type */ + { + switch(c) + { + case 'd': + case 'i': +doIntegerPrint: + { + unsigned long v; + unsigned long p; /* biggest power of fmtBase */ + unsigned long vShrink; /* used to count digits */ + int sign; + int digitCount; + + /* Get the value */ + if(fmtLong) + { + if (fmtSigned) + { + v = va_arg(args,long); + } + else + { + v = va_arg(args,unsigned long); + } + } + else + { + if (fmtSigned) + { + v = va_arg(args,int); + } + else + { + v = va_arg(args,unsigned int); + } + } + + /* Strip sign */ + sign = 0; + /* (assumes sign bit is #31) */ + if( fmtSigned && (v & (0x80000000)) ) + { + v = ~v + 1; + sign = 1; + } + + /* Count digits, and get largest place value */ + vShrink = v; + p = 1; + digitCount = 1; + while( (vShrink = vShrink / fmtBase) > 0 ) + { + digitCount++; + p *= fmtBase; + } + + /* Print leading characters & sign */ + fmtBeforeDecimal -= digitCount; + if(fmtLeadingZero) + { + if(sign) + { + alt_log_txchar('-',(char*)base); + fmtBeforeDecimal--; + } + alt_log_repchar('0',fmtBeforeDecimal,base); + } + else + { + if(sign) + { + fmtBeforeDecimal--; + } + alt_log_repchar(' ',fmtBeforeDecimal,base); + if(sign) + { + alt_log_txchar('-',(char*)base); + } + } + + /* Print numbery parts */ + while(p) + { + unsigned char d; + + d = v / p; + d += '0'; + if(d > '9') + { + d += (fmtCase ? 'A' : 'a') - '0' - 10; + } + alt_log_txchar(d,(char*)base); + + v = v % p; + p = p / fmtBase; + } + } + + state = pfState_chars; + break; + + case 'u': + fmtSigned = 0; + goto doIntegerPrint; + case 'o': + fmtSigned = 0; + fmtBase = 8; + goto doIntegerPrint; + case 'x': + fmtSigned = 0; + fmtBase = 16; + goto doIntegerPrint; + case 'X': + fmtSigned = 0; + fmtBase = 16; + fmtCase = 1; + goto doIntegerPrint; + + case 'c': + alt_log_repchar(' ',fmtBeforeDecimal-1,base); + alt_log_txchar(va_arg(args,int),(char*)base); + break; + + case 's': + { + char *s; + + s = va_arg(args,char *); + alt_log_repchar(' ',fmtBeforeDecimal-strlen(s),base); + + while(*s) + alt_log_txchar(*s++,(char*)base); + } + break; + } /* switch last letter of fmt */ + state=pfState_chars; + } + break; + } /* switch */ + } /* while chars left */ + } /* printf */ + +/* Main logging printf function */ +int alt_log_printf_proc(const char *fmt, ... ) +{ + va_list args; + + va_start (args, fmt); + alt_log_private_printf(fmt,ALT_LOG_PORT_BASE,args); + return (0); +} + +/* Below are the functions called by different macros in various components. */ + +/* If the system has a JTAG_UART, include JTAG_UART debugging functions */ +#ifdef __ALTERA_AVALON_JTAG_UART + +/* The alarm function in altera_avalon_jtag_uart.c. + * This function, when turned on, prints out the status + * of the JTAG UART Control register, every ALT_LOG_JTAG_UART_TICKS. + * If the flag is off, the alarm should never be registered, and this + * function should never run */ +alt_u32 altera_avalon_jtag_uart_report_log(void * context) +{ + if (alt_log_jtag_uart_alarm_on_flag) { + altera_avalon_jtag_uart_state* dev = (altera_avalon_jtag_uart_state*) context; + const char* header="JTAG Alarm:"; + alt_log_jtag_uart_print_control_reg(dev, dev->base, header); + return ALT_LOG_JTAG_UART_TICKS; + } + else + { + /* If flag is not on, return 0 to disable future alarms. + * Should never be here, alarm should not be enabled at all. */ + return 0; + } +} + +void alt_log_jtag_uart_print_control_reg(altera_avalon_jtag_uart_state* dev, int base, const char* header) +{ + unsigned int control, space, ac, wi, ri, we, re; + control = IORD_ALTERA_AVALON_JTAG_UART_CONTROL(base); + space = (control & ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_MSK) >> + ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_OFST; + we= (control & ALTERA_AVALON_JTAG_UART_CONTROL_WE_MSK) >> + ALTERA_AVALON_JTAG_UART_CONTROL_WE_OFST; + re= (control & ALTERA_AVALON_JTAG_UART_CONTROL_RE_MSK) >> + ALTERA_AVALON_JTAG_UART_CONTROL_RE_OFST; + ri= (control & ALTERA_AVALON_JTAG_UART_CONTROL_RI_MSK) >> + ALTERA_AVALON_JTAG_UART_CONTROL_RI_OFST; + wi= (control & ALTERA_AVALON_JTAG_UART_CONTROL_WI_MSK) >> + ALTERA_AVALON_JTAG_UART_CONTROL_WI_OFST; + ac= (control & ALTERA_AVALON_JTAG_UART_CONTROL_AC_MSK) >> + ALTERA_AVALON_JTAG_UART_CONTROL_AC_OFST; + +#ifdef ALTERA_AVALON_JTAG_UART_SMALL + ALT_LOG_PRINTF( + "%s HW FIFO wspace=%d AC=%d WI=%d RI=%d WE=%d RE=%d\r\n", + header,space,ac,wi,ri,we,re); +#else + ALT_LOG_PRINTF( + "%s SW CirBuf = %d, HW FIFO wspace=%d AC=%d WI=%d RI=%d WE=%d RE=%d\r\n", + header,(dev->tx_out-dev->tx_in),space,ac,wi,ri,we,re); +#endif + + return; + +} + +/* In altera_avalon_jtag_uart.c + * Same output as the alarm function above, but this is called in the driver + * init function. Hence, it gives the status of the JTAG UART control register + * right at the initialization of the driver */ +void alt_log_jtag_uart_startup_info(altera_avalon_jtag_uart_state* dev, int base) +{ + const char* header="JTAG Startup Info:"; + alt_log_jtag_uart_print_control_reg(dev, base, header); + return; +} + +/* In altera_avalon_jtag_uart.c + * When turned on, this function will print out the status of the jtag uart + * control register every time there is a jtag uart "almost-empty" interrupt. */ +void alt_log_jtag_uart_isr_proc(int base, altera_avalon_jtag_uart_state* dev) +{ + if (alt_log_jtag_uart_isr_on_flag) { + const char* header="JTAG IRQ:"; + alt_log_jtag_uart_print_control_reg(dev, base, header); + } + return; +} + +#endif /* __ALTERA_AVALON_JTAG_UART */ + +/* In alt_write.c + * When the alt_log_write_on_flag is turned on, this function gets called + * every time alt_write gets called. The first + * ALT_LOG_WRITE_ECHO_LEN characters of every printf command (or any command + * that eventually calls write()) gets echoed to the alt_log output. */ +void alt_log_write(const void *ptr, size_t len) +{ + if (alt_log_write_on_flag) { + int temp_cnt; + int length=(ALT_LOG_WRITE_ECHO_LEN>len) ? len : ALT_LOG_WRITE_ECHO_LEN; + + if (length < 2) return; + + strncpy (alt_log_write_buf,ptr,length); + alt_log_write_buf[length-1]='\n'; + alt_log_write_buf[length]='\r'; + alt_log_write_buf[length+1]='\0'; + + /* Escape Ctrl-D's. If the Ctrl-D gets sent it might kill the terminal + * connection of alt_log. It will get replaced by 'D'. */ + for (temp_cnt=0;temp_cnt < length; temp_cnt++) { + if (alt_log_write_buf[temp_cnt]== 0x4) { + alt_log_write_buf[temp_cnt]='D'; + } + } + ALT_LOG_PRINTF("Write Echo: %s",alt_log_write_buf); + } +} + +/* In altera_avalon_timer_sc + * This function prints out a system clock is alive message + * every ALT_LOG_SYS_CLK_INTERVAL (in ticks). */ +void alt_log_system_clock() +{ + if (alt_log_sys_clk_on_flag) { + alt_log_sys_clk_count++; + if (alt_log_sys_clk_count > ALT_LOG_SYS_CLK_INTERVAL) { + alt_log_sys_clk_count = 0; + ALT_LOG_PRINTF("System Clock On %u\r\n",alt_system_clock_in_sec++); + } + } +} + + +#endif diff --git a/software/qsys_tutorial_green_bsp/HAL/src/alt_lseek.c b/software/qsys_tutorial_green_bsp/HAL/src/alt_lseek.c new file mode 100644 index 0000000..7857b0d --- /dev/null +++ b/software/qsys_tutorial_green_bsp/HAL/src/alt_lseek.c @@ -0,0 +1,117 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004-2005 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +#include "sys/alt_errno.h" +#include "sys/alt_warning.h" +#include "priv/alt_file.h" +#include "os/alt_syscall.h" + +#ifdef ALT_USE_DIRECT_DRIVERS + +off_t ALT_LSEEK (int file, off_t ptr, int dir) +{ + /* Generate a link time warning, should this function ever be called. */ + + ALT_STUB_WARNING(lseek); + + /* Indicate an error */ + + ALT_ERRNO = ENOSYS; + return -1; +} + +#else /* !ALT_USE_DIRECT_DRIVERS */ + +/* + * lseek() can be called to move the read/write pointer associated with the + * file descriptor "file". This function simply vectors the call to the lseek() + * function provided by the driver associated with the file descriptor. + * + * If the driver does not provide an implementation of lseek() an error is + * indicated. + * + * lseek() corresponds to the standard lseek() function. + * + * ALT_LSEEK is mapped onto the lseek() system call in alt_syscall.h + * + */ + +off_t ALT_LSEEK (int file, off_t ptr, int dir) +{ + alt_fd* fd; + off_t rc = 0; + + /* + * A common error case is that when the file descriptor was created, the call + * to open() failed resulting in a negative file descriptor. This is trapped + * below so that we don't try and process an invalid file descriptor. + */ + + fd = (file < 0) ? NULL : &alt_fd_list[file]; + + if (fd) + { + /* + * If the device driver provides an implementation of the lseek() function, + * then call that to process the request. + */ + + if (fd->dev->lseek) + { + rc = fd->dev->lseek(fd, ptr, dir); + } + /* + * Otherwise return an error. + */ + + else + { + rc = -ENOTSUP; + } + } + else + { + rc = -EBADFD; + } + + if (rc < 0) + { + ALT_ERRNO = -rc; + rc = -1; + } + + return rc; +} + +#endif /* ALT_USE_DIRECT_DRIVERS */ diff --git a/software/qsys_tutorial_green_bsp/HAL/src/alt_main.c b/software/qsys_tutorial_green_bsp/HAL/src/alt_main.c new file mode 100644 index 0000000..a96229b --- /dev/null +++ b/software/qsys_tutorial_green_bsp/HAL/src/alt_main.c @@ -0,0 +1,161 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2007 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include +#include +#include +#include +#include + +#include "sys/alt_dev.h" +#include "sys/alt_sys_init.h" +#include "sys/alt_irq.h" +#include "sys/alt_dev.h" + +#include "os/alt_hooks.h" + +#include "priv/alt_file.h" +#include "alt_types.h" + +#include "system.h" + +#include "sys/alt_log_printf.h" + +extern void _do_ctors(void); +extern void _do_dtors(void); + +/* + * Standard arguments for main. By default, no arguments are passed to main. + * However a device driver may choose to configure these arguments by calling + * alt_set_args(). The expectation is that this facility will only be used by + * the iclient/ihost utility. + */ + +int alt_argc = 0; +char** alt_argv = {NULL}; +char** alt_envp = {NULL}; + +/* + * Prototype for the entry point to the users application. + */ + +extern int main (int, char **, char **); + +/* + * alt_main is the C entry point for the HAL. It is called by the assembler + * startup code in the processor specific crt0.S. It is responsible for: + * completing the C runtime configuration; configuring all the + * devices/filesystems/components in the system; and call the entry point for + * the users application, i.e. main(). + */ + +void alt_main (void) +{ +#ifndef ALT_NO_EXIT + int result; +#endif + + /* ALT LOG - please see HAL/sys/alt_log_printf.h for details */ + ALT_LOG_PRINT_BOOT("[alt_main.c] Entering alt_main, calling alt_irq_init.\r\n"); + /* Initialize the interrupt controller. */ + alt_irq_init (NULL); + + /* Initialize the operating system */ + ALT_LOG_PRINT_BOOT("[alt_main.c] Done alt_irq_init, calling alt_os_init.\r\n"); + ALT_OS_INIT(); + + /* + * Initialize the semaphore used to control access to the file descriptor + * list. + */ + + ALT_LOG_PRINT_BOOT("[alt_main.c] Done OS Init, calling alt_sem_create.\r\n"); + ALT_SEM_CREATE (&alt_fd_list_lock, 1); + + /* Initialize the device drivers/software components. */ + ALT_LOG_PRINT_BOOT("[alt_main.c] Calling alt_sys_init.\r\n"); + alt_sys_init(); + ALT_LOG_PRINT_BOOT("[alt_main.c] Done alt_sys_init.\r\n"); + +#if !defined(ALT_USE_DIRECT_DRIVERS) && (defined(ALT_STDIN_PRESENT) || defined(ALT_STDOUT_PRESENT) || defined(ALT_STDERR_PRESENT)) + + /* + * Redirect stdio to the apropriate devices now that the devices have + * been initialized. This is only done if the user has requested these + * devices be present (not equal to /dev/null) and if direct drivers + * aren't being used. + */ + + ALT_LOG_PRINT_BOOT("[alt_main.c] Redirecting IO.\r\n"); + alt_io_redirect(ALT_STDOUT, ALT_STDIN, ALT_STDERR); +#endif + +#ifndef ALT_NO_C_PLUS_PLUS + /* + * Call the C++ constructors + */ + + ALT_LOG_PRINT_BOOT("[alt_main.c] Calling C++ constructors.\r\n"); + _do_ctors (); +#endif /* ALT_NO_C_PLUS_PLUS */ + +#if !defined(ALT_NO_C_PLUS_PLUS) && !defined(ALT_NO_CLEAN_EXIT) && !defined(ALT_NO_EXIT) + /* + * Set the C++ destructors to be called at system shutdown. This is only done + * if a clean exit has been requested (i.e. the exit() function has not been + * redefined as _exit()). This is in the interest of reducing code footprint, + * in that the atexit() overhead is removed when it's not needed. + */ + + ALT_LOG_PRINT_BOOT("[alt_main.c] Calling atexit.\r\n"); + atexit (_do_dtors); +#endif + + /* + * Finally, call main(). The return code is then passed to a subsequent + * call to exit() unless the application is never supposed to exit. + */ + + ALT_LOG_PRINT_BOOT("[alt_main.c] Calling main.\r\n"); + +#ifdef ALT_NO_EXIT + main (alt_argc, alt_argv, alt_envp); +#else + result = main (alt_argc, alt_argv, alt_envp); + close(STDOUT_FILENO); + exit (result); +#endif + + ALT_LOG_PRINT_BOOT("[alt_main.c] After main - we should not be here?.\r\n"); +} + diff --git a/software/qsys_tutorial_green_bsp/HAL/src/alt_malloc_lock.c b/software/qsys_tutorial_green_bsp/HAL/src/alt_malloc_lock.c new file mode 100644 index 0000000..8c78f46 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/HAL/src/alt_malloc_lock.c @@ -0,0 +1,52 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +/* + * These are the empty malloc lock/unlock stubs required by newlib. These are + * used to make newlib's malloc() function thread safe. The default HAL + * configuration is single threaded, so there is nothing to do here. Note that + * this requires that malloc is never called by an interrupt service routine. + */ + +void __malloc_lock ( struct _reent *_r ) +{ +} + +/* + * + */ + +void __malloc_unlock ( struct _reent *_r ) +{ +} diff --git a/software/qsys_tutorial_green_bsp/HAL/src/alt_mcount.S b/software/qsys_tutorial_green_bsp/HAL/src/alt_mcount.S new file mode 100644 index 0000000..3837523 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/HAL/src/alt_mcount.S @@ -0,0 +1,198 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003-2010 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/* mcount or _mcount is inserted by GCC before the function prologue of every + * function when a program is compiled for profiling. At the start of mcount, + * we guarantee that: + * ra = self_pc (an address in the function which called mcount) + * r8 = from_pc (an address in the function which called mcount's caller) + * + * Because this is always called at the start of a function we can corrupt + * r2,r3 and r11-r15. We must not corrupt r4-r7 (because they might contain + * function arguments for the instrumented function) or r8 (which holds ra + * for the instrumented function). + */ + + .global __mcount_fn_head + + .global mcount + + /* _mcount is used by gcc4 */ + .global _mcount + +_mcount: +mcount: + /* Use a hash to speed up locating fn_entry. We use bits 5 upwards to choose + * the bucket because bits 1:0 will always be 0, and because the distribution + * of values for bits 4:2 won't be even (aligning on cache line boundaries + * will skew it). Higher bits should be fairly random. + */ + /* fn_head = mcount_fn_head + (((unsigned int)self_pc >> 5) & (HASH_BUCKETS - 1)); */ + + srli r2, ra, 3 + movhi r3, %hiadj(__mcount_fn_head) + addi r3, r3, %lo(__mcount_fn_head) + andi r2, r2, 0xFC + add r11, r2, r3 + + /* The fast case is where we have already allocated a function arc, and so + * also a function pointer. + */ + + /* First find the function being called (using self_pc) */ + mov r10, r11 +0: + ldw r10, 0(r10) + beq r10, zero, .Lnew_arc + ldw r2, 4(r10) + bne r2, ra, 0b + + /* Found a function entry for this PC. Now look for an arc with a matching + * from_pc value. There will always be at least one arc. */ + ldw r3, 8(r10) +0: + ldw r2, 4(r3) + beq r2, r8, .Lfound_arc + ldw r3, 0(r3) + bne r3, zero, 0b + +.Lnew_arc: + addi sp, sp, -24 + +.LCFI0: + stw ra, 0(sp) + stw r4, 4(sp) + stw r5, 8(sp) + stw r6, 12(sp) + stw r7, 16(sp) + stw r8, 20(sp) + +.LCFI1: + /* __mcount_record(orig_ra, orig_r8, fn_entry, *fn_head); */ + mov r4, ra + mov r5, r8 + mov r6, r10 + mov r7, r11 + call __mcount_record + + /* restore registers from the stack */ + ldw ra, 0(sp) + ldw r4, 4(sp) + ldw r5, 8(sp) + ldw r6, 12(sp) + ldw r7, 16(sp) + ldw r8, 20(sp) + + addi sp, sp, 24 + +.LCFI2: + ret + +.Lfound_arc: + /* We've found the correct arc record. Increment the count and return */ + ldw r2, 8(r3) + addi r2, r2, 1 + stw r2, 8(r3) + ret + +.Lmcount_end: + + + +/* + * Dwarf2 debug information for the function. This provides GDB with the + * information it needs to backtrace out of this function. + */ + + .section .debug_frame,"",@progbits +.LCIE: + .4byte 2f - 1f /* Length */ +1: + .4byte 0xffffffff /* CIE id */ + .byte 0x1 /* Version */ + .string "" /* Augmentation */ + .uleb128 0x1 /* Code alignment factor */ + .sleb128 -4 /* Data alignment factor */ + .byte 0x1f /* Return address register */ + + .byte 0xc /* Define CFA */ + .uleb128 0x1b /* Register 27 (sp) */ + .uleb128 0x0 /* Offset 0 */ + + .align 2 /* Padding */ +2: + +.LFDE_mcount: + .4byte 2f - 1f /* Length */ +1: + .4byte .LCIE /* Pointer to CIE */ + .4byte mcount /* Start of table entry */ + .4byte .Lmcount_end - mcount /* Size of table entry */ + + .byte 0x4 /* Advance location */ + .4byte .LCFI0 - mcount /* to .LCFI0 */ + .byte 0xe /* Define CFA offset */ + .uleb128 24 /* to 24 */ + + .byte 0x4 /* Advance location */ + .4byte .LCFI1 - .LCFI0 /* to .LCFI1 */ + .byte 0x9f /* Store ra */ + .uleb128 0x6 /* at CFA-24 */ + .byte 0x84 /* Store r4 */ + .uleb128 0x5 /* at CFA-20 */ + .byte 0x85 /* Store r5 */ + .uleb128 0x4 /* at CFA-16 */ + .byte 0x86 /* Store r6 */ + .uleb128 0x3 /* at CFA-12 */ + .byte 0x87 /* Store r7 */ + .uleb128 0x2 /* at CFA-8 */ + .byte 0x88 /* Store r8 */ + .uleb128 0x1 /* at CFA-4 */ + + .byte 0x4 /* Advance location */ + .4byte .LCFI2 - .LCFI1 /* to .LCFI2 */ + .byte 0xe /* Define CFA offset */ + .uleb128 0 /* to 0 */ + .byte 0x8 /* Same value */ + .uleb128 31 /* for ra */ + .byte 0x8 /* Same value */ + .uleb128 4 /* for r4 */ + .byte 0x8 /* Same value */ + .uleb128 5 /* for r5 */ + .byte 0x8 /* Same value */ + .uleb128 6 /* for r6 */ + .byte 0x8 /* Same value */ + .uleb128 7 /* for r7 */ + .byte 0x8 /* Same value */ + .uleb128 8 /* for r8 */ + + .align 2 +2: + diff --git a/software/qsys_tutorial_green_bsp/HAL/src/alt_open.c b/software/qsys_tutorial_green_bsp/HAL/src/alt_open.c new file mode 100644 index 0000000..4790f53 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/HAL/src/alt_open.c @@ -0,0 +1,173 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_errno.h" +#include "sys/alt_warning.h" +#include "priv/alt_file.h" +#include "alt_types.h" +#include "os/alt_syscall.h" + +#ifdef ALT_USE_DIRECT_DRIVERS + +int ALT_OPEN (const char* file, int flags, int mode) +{ + /* Generate a link time warning, should this function ever be called. */ + + ALT_STUB_WARNING(open); + + /* Indicate an error */ + + ALT_ERRNO = ENOSYS; + return -1; +} + +#else /* !ALT_USE_DIRECT_DRIVERS */ + +extern alt_llist alt_dev_list; + +/* + * alt_file_locked() is used by open() to ensure that a device has not been + * previously locked for exclusive access using ioctl(). This test is only + * performed for devices. Filesystems are required to handle the ioctl() call + * themselves, and report the error from the filesystems open() function. + */ + +static int alt_file_locked (alt_fd* fd) +{ + alt_u32 i; + + /* + * Mark the file descriptor as belonging to a device. + */ + + fd->fd_flags |= ALT_FD_DEV; + + /* + * Loop through all current file descriptors searching for one that's locked + * for exclusive access. If a match is found, generate an error. + */ + + for (i = 0; i <= alt_max_fd; i++) + { + if ((alt_fd_list[i].dev == fd->dev) && + (alt_fd_list[i].fd_flags & ALT_FD_EXCL) && + (&alt_fd_list[i] != fd)) + { + return -EACCES; + } + } + + /* The device is not locked */ + + return 0; +} + +/* + * open() is called in order to get a file descriptor that reference the file + * or device named "name". This descriptor can then be used to manipulate the + * file/device using the standard system calls, e.g. write(), read(), ioctl() + * etc. + * + * This is equivalent to the standard open() system call. + * + * ALT_OPEN is mapped onto the open() system call in alt_syscall.h + */ + +int ALT_OPEN (const char* file, int flags, int mode) +{ + alt_dev* dev; + alt_fd* fd; + int index = -1; + int status = -ENODEV; + int isafs = 0; + + /* + * Check the device list, to see if a device with a matching name is + * registered. + */ + + if (!(dev = alt_find_dev (file, &alt_dev_list))) + { + /* No matching device, so try the filesystem list */ + + dev = alt_find_file (file); + isafs = 1; + } + + /* + * If a matching device or filesystem is found, allocate a file descriptor. + */ + + if (dev) + { + if ((index = alt_get_fd (dev)) < 0) + { + status = index; + } + else + { + fd = &alt_fd_list[index]; + fd->fd_flags = (flags & ~ALT_FD_FLAGS_MASK); + + /* If this is a device, ensure it isn't already locked */ + + if (isafs || ((status = alt_file_locked (fd)) >= 0)) + { + /* + * If the device or filesystem provides an open() callback function, + * call it now to perform any device/filesystem specific operations. + */ + + status = (dev->open) ? dev->open(fd, file, flags, mode): 0; + } + } + } + else + { + status = -ENODEV; + } + + /* Allocation failed, so clean up and return an error */ + + if (status < 0) + { + alt_release_fd (index); + ALT_ERRNO = -status; + return -1; + } + + /* return the reference upon success */ + + return index; +} + +#endif /* ALT_USE_DIRECT_DRIVERS */ diff --git a/software/qsys_tutorial_green_bsp/HAL/src/alt_printf.c b/software/qsys_tutorial_green_bsp/HAL/src/alt_printf.c new file mode 100644 index 0000000..e742b57 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/HAL/src/alt_printf.c @@ -0,0 +1,127 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/* + * This file provides a very minimal printf implementation for use with very + * small applications. Only the following format strings are supported: + * %x + * %s + * %c + * %% + */ + +#include +#include "sys/alt_stdio.h" + +/* + * ALT printf function + */ +void +alt_printf(const char* fmt, ... ) +{ + va_list args; + va_start(args, fmt); + const char *w; + char c; + + /* Process format string. */ + w = fmt; + while ((c = *w++) != 0) + { + /* If not a format escape character, just print */ + /* character. Otherwise, process format string. */ + if (c != '%') + { + alt_putchar(c); + } + else + { + /* Get format character. If none */ + /* available, processing is complete. */ + if ((c = *w++) != 0) + { + if (c == '%') + { + /* Process "%" escape sequence. */ + alt_putchar(c); + } + else if (c == 'c') + { + int v = va_arg(args, int); + alt_putchar(v); + } + else if (c == 'x') + { + /* Process hexadecimal number format. */ + unsigned long v = va_arg(args, unsigned long); + unsigned long digit; + int digit_shift; + + /* If the number value is zero, just print and continue. */ + if (v == 0) + { + alt_putchar('0'); + continue; + } + + /* Find first non-zero digit. */ + digit_shift = 28; + while (!(v & (0xF << digit_shift))) + digit_shift -= 4; + + /* Print digits. */ + for (; digit_shift >= 0; digit_shift -= 4) + { + digit = (v & (0xF << digit_shift)) >> digit_shift; + if (digit <= 9) + c = '0' + digit; + else + c = 'a' + digit - 10; + alt_putchar(c); + } + } + else if (c == 's') + { + /* Process string format. */ + char *s = va_arg(args, char *); + + while(*s) + alt_putchar(*s++); + } + } + else + { + break; + } + } + } +} diff --git a/software/qsys_tutorial_green_bsp/HAL/src/alt_putchar.c b/software/qsys_tutorial_green_bsp/HAL/src/alt_putchar.c new file mode 100644 index 0000000..badaa02 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/HAL/src/alt_putchar.c @@ -0,0 +1,59 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +#ifdef ALT_USE_DIRECT_DRIVERS +#include "system.h" +#include "sys/alt_driver.h" +#include "sys/alt_stdio.h" +#endif + +/* + * Uses the ALT_DRIVER_WRITE() macro to call directly to driver if available. + * Otherwise, uses newlib provided putchar() routine. + */ +int +alt_putchar(int c) +{ +#ifdef ALT_USE_DIRECT_DRIVERS + ALT_DRIVER_WRITE_EXTERNS(ALT_STDOUT_DEV); + char c1 = (char)(c & 0xff); + + if (ALT_DRIVER_WRITE(ALT_STDOUT_DEV, &c1, 1, 0) == -1) { + return -1; + } + return c; +#else + return putchar(c); +#endif +} diff --git a/software/qsys_tutorial_green_bsp/HAL/src/alt_putstr.c b/software/qsys_tutorial_green_bsp/HAL/src/alt_putstr.c new file mode 100644 index 0000000..5345945 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/HAL/src/alt_putstr.c @@ -0,0 +1,55 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +#ifdef ALT_USE_DIRECT_DRIVERS +#include +#include "system.h" +#include "sys/alt_driver.h" +#include "sys/alt_stdio.h" +#endif + +/* + * Uses the ALT_DRIVER_WRITE() macro to call directly to driver if available. + * Otherwise, uses newlib provided fputs() routine. + */ +int +alt_putstr(const char* str) +{ +#ifdef ALT_USE_DIRECT_DRIVERS + ALT_DRIVER_WRITE_EXTERNS(ALT_STDOUT_DEV); + return ALT_DRIVER_WRITE(ALT_STDOUT_DEV, str, strlen(str), 0); +#else + return fputs(str, stdout); +#endif +} diff --git a/software/qsys_tutorial_green_bsp/HAL/src/alt_read.c b/software/qsys_tutorial_green_bsp/HAL/src/alt_read.c new file mode 100644 index 0000000..1c89777 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/HAL/src/alt_read.c @@ -0,0 +1,125 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include + +#include "sys/alt_errno.h" +#include "sys/alt_warning.h" +#include "priv/alt_file.h" +#include "os/alt_syscall.h" + +/* + * The read() system call is used to read a block of data from a file or device. + * This function simply vectors the request to the device driver associated + * with the input file descriptor "file". + * + * ALT_READ is mapped onto the read() system call in alt_syscall.h + */ + +#ifdef ALT_USE_DIRECT_DRIVERS + +#include "system.h" +#include "sys/alt_driver.h" + +/* + * Provide minimal version that just reads from the stdin device when provided. + */ + +int ALT_READ (int file, void *ptr, size_t len) +{ +#ifdef ALT_STDIN_PRESENT + ALT_DRIVER_READ_EXTERNS(ALT_STDIN_DEV); +#endif + +#if !defined(ALT_STDIN_PRESENT) + /* Generate a link time warning, should this function ever be called. */ + ALT_STUB_WARNING(read); +#endif + + switch (file) { +#ifdef ALT_STDIN_PRESENT + case 0: /* stdin file descriptor */ + return ALT_DRIVER_READ(ALT_STDIN_DEV, ptr, len, 0); +#endif /* ALT_STDIN_PRESENT */ + default: + ALT_ERRNO = EBADFD; + return -1; + } +} + +#else /* !ALT_USE_DIRECT_DRIVERS */ + +int ALT_READ (int file, void *ptr, size_t len) +{ + alt_fd* fd; + int rval; + + /* + * A common error case is that when the file descriptor was created, the call + * to open() failed resulting in a negative file descriptor. This is trapped + * below so that we don't try and process an invalid file descriptor. + */ + + fd = (file < 0) ? NULL : &alt_fd_list[file]; + + if (fd) + { + /* + * If the file has not been opened with read access, or if the driver does + * not provide an implementation of read(), generate an error. Otherwise + * call the drivers read() function to process the request. + */ + + if (((fd->fd_flags & O_ACCMODE) != O_WRONLY) && + (fd->dev->read)) + { + if ((rval = fd->dev->read(fd, ptr, len)) < 0) + { + ALT_ERRNO = -rval; + return -1; + } + return rval; + } + else + { + ALT_ERRNO = EACCES; + } + } + else + { + ALT_ERRNO = EBADFD; + } + return -1; +} + +#endif /* ALT_USE_DIRECT_DRIVERS */ diff --git a/software/qsys_tutorial_green_bsp/HAL/src/alt_release_fd.c b/software/qsys_tutorial_green_bsp/HAL/src/alt_release_fd.c new file mode 100644 index 0000000..84733a7 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/HAL/src/alt_release_fd.c @@ -0,0 +1,54 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_dev.h" +#include "priv/alt_file.h" + +/* + * alt_release_fd() is called to free an allocated file descriptor. This is + * done by setting the device pointer in the file descriptor structure to zero. + * + * File descriptors correcponding to standard in, standard out and standard + * error cannont be released backed to the pool. They are always reserved. + */ + +void alt_release_fd (int fd) +{ + if (fd > 2) + { + alt_fd_list[fd].fd_flags = 0; + alt_fd_list[fd].dev = 0; + } +} + + + diff --git a/software/qsys_tutorial_green_bsp/HAL/src/alt_remap_cached.c b/software/qsys_tutorial_green_bsp/HAL/src/alt_remap_cached.c new file mode 100644 index 0000000..f61cb9c --- /dev/null +++ b/software/qsys_tutorial_green_bsp/HAL/src/alt_remap_cached.c @@ -0,0 +1,50 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003,2007 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "sys/alt_cache.h" +#include "system.h" + +#ifdef NIOS2_MMU_PRESENT +/* Convert KERNEL region address to IO region address */ +#define BYPASS_DCACHE_MASK (0x1 << 29) +#else +/* Set bit 31 of address to bypass D-cache */ +#define BYPASS_DCACHE_MASK (0x1 << 31) +#endif + +/* + * Convert a pointer to a block of uncached memory, into a block of + * cached memory. + */ + +void* alt_remap_cached (volatile void* ptr, alt_u32 len) +{ + return (void*) (((alt_u32) ptr) & ~BYPASS_DCACHE_MASK); +} diff --git a/software/qsys_tutorial_green_bsp/HAL/src/alt_remap_uncached.c b/software/qsys_tutorial_green_bsp/HAL/src/alt_remap_uncached.c new file mode 100644 index 0000000..7ff6302 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/HAL/src/alt_remap_uncached.c @@ -0,0 +1,51 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003,2007 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "sys/alt_cache.h" +#include "system.h" + +#ifdef NIOS2_MMU_PRESENT +/* Convert KERNEL region address to IO region address */ +#define BYPASS_DCACHE_MASK (0x1 << 29) +#else +/* Set bit 31 of address to bypass D-cache */ +#define BYPASS_DCACHE_MASK (0x1 << 31) +#endif + +/* + * Convert a pointer to a block of cached memory, into a block of + * uncached memory. + */ + +volatile void* alt_remap_uncached (void* ptr, alt_u32 len) +{ + alt_dcache_flush (ptr, len); + return (volatile void*) (((alt_u32) ptr) | BYPASS_DCACHE_MASK); +} diff --git a/software/qsys_tutorial_green_bsp/HAL/src/alt_rename.c b/software/qsys_tutorial_green_bsp/HAL/src/alt_rename.c new file mode 100644 index 0000000..48afac0 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/HAL/src/alt_rename.c @@ -0,0 +1,55 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_errno.h" +#include "sys/alt_warning.h" +#include "os/alt_syscall.h" + +/* + * _rename() is used by newlib to rename an existing file. This is unsupported + * in the HAL environment. However a "do-nothing" implementation is still + * provied for newlib compatability. + * + * ALT_RENAME is mapped onto the _rename() system call in alt_syscall.h + */ + +int ALT_RENAME (char *existing, char *new) +{ + /* Generate a link time warning, should this function ever be called. */ + + ALT_STUB_WARNING(_rename); + + /* Indicate an error */ + + ALT_ERRNO = ENOSYS; + return -1; +} diff --git a/software/qsys_tutorial_green_bsp/HAL/src/alt_sbrk.c b/software/qsys_tutorial_green_bsp/HAL/src/alt_sbrk.c new file mode 100644 index 0000000..b8c3799 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/HAL/src/alt_sbrk.c @@ -0,0 +1,136 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +#include "os/alt_syscall.h" + +#include "sys/alt_irq.h" +#include "sys/alt_stack.h" + +#include "system.h" + +/* + * sbrk() is called to dynamically extend the data segment for the application. + * Thie input argument "incr" is the size of the block to allocate. + * + * This simple implementation does not perform any bounds checking. Memory will + * be allocated, even if the request region colides with the stack or overflows + * the available physical memory. + * + * ALT_SBRK is mapped onto the sbrk() system call in alt_syscall.h + * + * This function is called by the profiling code to allocate memory so must be + * safe if called from an interrupt context. It must also not be instrumented + * because that would lead to an infinate loop. + */ + +extern char __alt_heap_start[]; /* set by linker */ +extern char __alt_heap_limit[]; /* set by linker */ + +static char *heap_end = __alt_heap_start; + +#if defined(ALT_EXCEPTION_STACK) && defined(ALT_STACK_CHECK) +char * alt_exception_old_stack_limit = NULL; +#endif + +caddr_t ALT_SBRK (int incr) __attribute__ ((no_instrument_function )); + +caddr_t ALT_SBRK (int incr) +{ + alt_irq_context context; + char *prev_heap_end; + + context = alt_irq_disable_all(); + + /* Always return data aligned on a word boundary */ + heap_end = (char *)(((unsigned int)heap_end + 3) & ~3); + +#ifdef ALT_MAX_HEAP_BYTES + /* + * User specified a maximum heap size. Return -1 if it would + * be exceeded by this sbrk call. + */ + if (((heap_end + incr) - __alt_heap_start) > ALT_MAX_HEAP_BYTES) { + alt_irq_enable_all(context); + return (caddr_t)-1; + } +#else + if ((heap_end + incr) > __alt_heap_limit) { + alt_irq_enable_all(context); + return (caddr_t)-1; + } +#endif + + prev_heap_end = heap_end; + heap_end += incr; + +#ifdef ALT_STACK_CHECK + /* + * If the stack and heap are contiguous then extending the heap reduces the + * space available for the stack. If we are still using the default stack + * then adjust the stack limit to note this, while checking for stack + * pointer overflow. + * If the stack limit isn't pointing at the top of the heap then the code + * is using a different stack so none of this needs to be done. + */ + + if (alt_stack_limit() == prev_heap_end) + { + if (alt_stack_pointer() <= heap_end) + alt_report_stack_overflow(); + + alt_set_stack_limit(heap_end); + } + +#ifdef ALT_EXCEPTION_STACK + /* + * If we are executing from the exception stack then compare against the + * stack we switched away from as well. The exception stack is a fixed + * size so doesn't need to be checked. + */ + + if (alt_exception_old_stack_limit == prev_heap_end) + { + if (alt_exception_old_stack_limit <= heap_end) + alt_report_stack_overflow(); + + alt_exception_old_stack_limit = heap_end; + } +#endif + +#endif + + alt_irq_enable_all(context); + + return (caddr_t) prev_heap_end; +} diff --git a/software/qsys_tutorial_green_bsp/HAL/src/alt_settod.c b/software/qsys_tutorial_green_bsp/HAL/src/alt_settod.c new file mode 100644 index 0000000..59db0f8 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/HAL/src/alt_settod.c @@ -0,0 +1,96 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include + +#include "sys/alt_errno.h" +#include "sys/alt_alarm.h" +#include "os/alt_syscall.h" + +/* + * "alt_timezone" and "alt_resettime" are the values of the the reset time and + * time zone set through the last call to settimeofday(). By default they are + * zero initialised. + */ + +extern struct timezone alt_timezone; +extern struct timeval alt_resettime; + +/* + * Macro defining the number of micoseconds in a second. + */ + +#define ALT_US (1000000) + + +/* + * settimeofday() can be called to calibrate the system clock, so that + * subsequent calls to gettimeofday() will return the elapsed "wall clock" + * time. + * + * This is done by updating the global structures "alt_resettime" and + * "alt_timezone" so that an immediate call to gettimeofday() would return + * the value specified by "t" and "tz". + * + * Warning: if this function is called concurrently with a call to + * gettimeofday(), the value returned by gettimeofday() will be unreliable. + * + * ALT_SETTIMEOFDAY is mapped onto the settimeofday() system call in + * alt_syscall.h + */ + +int ALT_SETTIMEOFDAY (const struct timeval *t, + const struct timezone *tz) +{ + alt_u32 nticks = alt_nticks (); + alt_u32 tick_rate = alt_ticks_per_second (); + + /* If there is a system clock available, update the current time */ + + if (tick_rate) + { + alt_resettime.tv_sec = t->tv_sec - nticks/tick_rate; + alt_resettime.tv_usec = t->tv_usec - + ((nticks*(ALT_US/tick_rate))%ALT_US); + + alt_timezone.tz_minuteswest = tz->tz_minuteswest; + alt_timezone.tz_dsttime = tz->tz_dsttime; + + return 0; + } + + /* There's no system clock available */ + + ALT_ERRNO = ENOSYS; + return -1; +} diff --git a/software/qsys_tutorial_green_bsp/HAL/src/alt_software_exception.S b/software/qsys_tutorial_green_bsp/HAL/src/alt_software_exception.S new file mode 100644 index 0000000..2142594 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/HAL/src/alt_software_exception.S @@ -0,0 +1,53 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003-2005 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + + /* + * This file provides the global symbol: software_exception. It is provided to + * support legacy code, and should not be used by new software. + * + * It is used by legacy code to invoke the software exception handler as + * defined by version 1.0 of the Nios II kit. It should only be used when you + * are providing your own interrupt entry point, i.e. you are not using + * alt_irq_entry. + */ + +#include "system.h" + + /* + * Pull in the exception handler. + */ + + .globl alt_exception + + .section .exceptions.entry.label, "xa" + + .globl software_exception + .type software_exception, @function +software_exception: diff --git a/software/qsys_tutorial_green_bsp/HAL/src/alt_stat.c b/software/qsys_tutorial_green_bsp/HAL/src/alt_stat.c new file mode 100644 index 0000000..44e207b --- /dev/null +++ b/software/qsys_tutorial_green_bsp/HAL/src/alt_stat.c @@ -0,0 +1,59 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include +#include +#include + +#include "os/alt_syscall.h" + +/* + * The stat() function is similar to the fstat() function in that it is used to + * obtain status information about a file. Instead of using an open file + * descriptor (like fstat()), stat() takes the name of a file as an input + * argument. + * + * ALT_STAT is mapped onto the stat() system call in alt_syscall.h + */ + +int ALT_STAT (const char *file, struct stat *st) +{ + int fd; + int rc; + + fd = open (file, 0); + rc = fstat (fd, st); + close (fd); + + return rc; +} diff --git a/software/qsys_tutorial_green_bsp/HAL/src/alt_tick.c b/software/qsys_tutorial_green_bsp/HAL/src/alt_tick.c new file mode 100644 index 0000000..c73488d --- /dev/null +++ b/software/qsys_tutorial_green_bsp/HAL/src/alt_tick.c @@ -0,0 +1,149 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_irq.h" +#include "sys/alt_alarm.h" +#include "os/alt_hooks.h" +#include "alt_types.h" + +/* + * "_alt_tick_rate" is used to store the value of the system clock frequency + * in ticks per second. It is initialised to zero, which corresponds to there + * being no system clock facility available. + */ + +alt_u32 _alt_tick_rate = 0; + +/* + * "_alt_nticks" is the number of system clock ticks that have elapsed since + * reset. + */ + +volatile alt_u32 _alt_nticks = 0; + +/* + * "alt_alarm_list" is the head of a linked list of registered alarms. This is + * initialised to be an empty list. + */ + +ALT_LLIST_HEAD(alt_alarm_list); + +/* + * alt_alarm_stop() is called to remove an alarm from the list of registered + * alarms. Alternatively an alarm can unregister itself by returning zero when + * the alarm executes. + */ + +void alt_alarm_stop (alt_alarm* alarm) +{ + alt_irq_context irq_context; + + irq_context = alt_irq_disable_all(); + alt_llist_remove (&alarm->llist); + alt_irq_enable_all (irq_context); +} + +/* + * alt_tick() is periodically called by the system clock driver in order to + * process the registered list of alarms. Each alarm is registed with a + * callback interval, and a callback function, "callback". + * + * The return value of the callback function indicates how many ticks are to + * elapse until the next callback. A return value of zero indicates that the + * alarm should be deactivated. + * + * alt_tick() is expected to run at interrupt level. + */ + +void alt_tick (void) +{ + alt_alarm* next; + alt_alarm* alarm = (alt_alarm*) alt_alarm_list.next; + + alt_u32 next_callback; + + /* update the tick counter */ + + _alt_nticks++; + + /* process the registered callbacks */ + + while (alarm != (alt_alarm*) &alt_alarm_list) + { + next = (alt_alarm*) alarm->llist.next; + + /* + * Upon the tick-counter rolling over it is safe to clear the + * roll-over flag; once the flag is cleared this (or subsequnt) + * tick events are enabled to generate an alarm event. + */ + if ((alarm->rollover) && (_alt_nticks == 0)) + { + alarm->rollover = 0; + } + + /* if the alarm period has expired, make the callback */ + if ((alarm->time <= _alt_nticks) && (alarm->rollover == 0)) + { + next_callback = alarm->callback (alarm->context); + + /* deactivate the alarm if the return value is zero */ + + if (next_callback == 0) + { + alt_alarm_stop (alarm); + } + else + { + alarm->time += next_callback; + + /* + * If the desired alarm time causes a roll-over, set the rollover + * flag. This will prevent the subsequent tick event from causing + * an alarm too early. + */ + if(alarm->time < _alt_nticks) + { + alarm->rollover = 1; + } + } + } + alarm = next; + } + + /* + * Update the operating system specific timer facilities. + */ + + ALT_OS_TIME_TICK(); +} + diff --git a/software/qsys_tutorial_green_bsp/HAL/src/alt_times.c b/software/qsys_tutorial_green_bsp/HAL/src/alt_times.c new file mode 100644 index 0000000..4dd965d --- /dev/null +++ b/software/qsys_tutorial_green_bsp/HAL/src/alt_times.c @@ -0,0 +1,71 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +#include "sys/alt_errno.h" +#include "sys/alt_alarm.h" +#include "os/alt_syscall.h" + +/* + * The times() function is used by newlib to obtain elapsed time information. + * The return value is the elapsed time since reset in system clock ticks. Note + * that this is distinct from the strict Posix version of times(), which should + * return the time since: 0 hours, 0 minutes, 0 seconds, January 1, 1970, GMT. + * + * The input structure is filled in with time accounting information. This + * implementation attributes all cpu time to the system. + * + * ALT_TIMES is mapped onto the times() system call in alt_syscall.h + */ + +clock_t ALT_TIMES (struct tms *buf) +{ + clock_t ticks = alt_nticks(); + + /* If there is no system clock present, generate an error */ + + if (!alt_ticks_per_second()) + { + ALT_ERRNO = ENOSYS; + return 0; + } + + /* Otherwise return the elapsed time */ + + buf->tms_utime = 0; + buf->tms_stime = ticks; + buf->tms_cutime = 0; + buf->tms_cstime = 0; + + return ticks; +} diff --git a/software/qsys_tutorial_green_bsp/HAL/src/alt_uncached_free.c b/software/qsys_tutorial_green_bsp/HAL/src/alt_uncached_free.c new file mode 100644 index 0000000..6e362ba --- /dev/null +++ b/software/qsys_tutorial_green_bsp/HAL/src/alt_uncached_free.c @@ -0,0 +1,49 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003,2007 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "sys/alt_cache.h" +#include "system.h" + +#ifdef NIOS2_MMU_PRESENT +/* Convert KERNEL region address to IO region address */ +#define BYPASS_DCACHE_MASK (0x1 << 29) +#else +/* Set bit 31 of address to bypass D-cache */ +#define BYPASS_DCACHE_MASK (0x1 << 31) +#endif + +/* + * Free a block of uncached memory. + */ + +void alt_uncached_free (volatile void* ptr) +{ + free ((void*) (((alt_u32) ptr) & ~BYPASS_DCACHE_MASK)); +} diff --git a/software/qsys_tutorial_green_bsp/HAL/src/alt_uncached_malloc.c b/software/qsys_tutorial_green_bsp/HAL/src/alt_uncached_malloc.c new file mode 100644 index 0000000..ab3416d --- /dev/null +++ b/software/qsys_tutorial_green_bsp/HAL/src/alt_uncached_malloc.c @@ -0,0 +1,55 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003,2007 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "sys/alt_cache.h" +#include "system.h" + +#ifdef NIOS2_MMU_PRESENT +/* Convert KERNEL region address to IO region address */ +#define BYPASS_DCACHE_MASK (0x1 << 29) +#else +/* Set bit 31 of address to bypass D-cache */ +#define BYPASS_DCACHE_MASK (0x1 << 31) +#endif + +/* + * Allocate a block of uncached memory. + */ + +volatile void* alt_uncached_malloc (size_t size) +{ + void* ptr; + + ptr = malloc (size); + + alt_dcache_flush (ptr, size); + + return ptr ? (volatile void*) (((alt_u32) ptr) | BYPASS_DCACHE_MASK) : NULL; +} diff --git a/software/qsys_tutorial_green_bsp/HAL/src/alt_unlink.c b/software/qsys_tutorial_green_bsp/HAL/src/alt_unlink.c new file mode 100644 index 0000000..29e35d6 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/HAL/src/alt_unlink.c @@ -0,0 +1,55 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_errno.h" +#include "sys/alt_warning.h" +#include "os/alt_syscall.h" + +/* + * unlink() is used by newlib to delete an existing link to a file. This is + * unsupported in the HAL environment. However a "do-nothing" implementation + * is still provied for newlib compatability. + * + * ALT_UNLINK is mapped onto the unlink() system call in alt_syscall.h + */ + +int ALT_UNLINK (char *name) +{ + /* Generate a link time warning, should this function ever be called. */ + + ALT_STUB_WARNING(unlink); + + /* Indicate an error */ + + ALT_ERRNO = ENOSYS; + return -1; +} diff --git a/software/qsys_tutorial_green_bsp/HAL/src/alt_usleep.c b/software/qsys_tutorial_green_bsp/HAL/src/alt_usleep.c new file mode 100644 index 0000000..2330eb8 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/HAL/src/alt_usleep.c @@ -0,0 +1,52 @@ +/* + * Copyright (c) 2003 Altera Corporation, San Jose, California, USA. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + * ------------ + * + * Altera does not recommend, suggest or require that this reference design + * file be used in conjunction or combination with any other product. + * + * usleep.c - Microsecond delay routine + */ + +#include + +#include "priv/alt_busy_sleep.h" +#include "os/alt_syscall.h" + +/* + * This function simply calls alt_busy_sleep() to perform the delay. This + * function implements the delay as a calibrated "busy loop". + * + * ALT_USLEEP is mapped onto the usleep() system call in alt_syscall.h + */ + + + +#if defined (__GNUC__) && __GNUC__ >= 4 +int ALT_USLEEP (useconds_t us) +#else +unsigned int ALT_USLEEP (unsigned int us) +#endif +{ + return alt_busy_sleep(us); +} diff --git a/software/qsys_tutorial_green_bsp/HAL/src/alt_wait.c b/software/qsys_tutorial_green_bsp/HAL/src/alt_wait.c new file mode 100644 index 0000000..a42f80f --- /dev/null +++ b/software/qsys_tutorial_green_bsp/HAL/src/alt_wait.c @@ -0,0 +1,52 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_errno.h" +#include "os/alt_syscall.h" + +/* + * wait() is used by newlib to wait for all child processes to exit. Since the + * HAL does not support spawning child processes, this returns immediately as + * there can't be anythign to wait for. + * + * ALT_WAIT is mapped onto the wait() system call in alt_syscall.h + */ + +int ALT_WAIT (int *status) +{ + *status = 0; + + ALT_ERRNO = ECHILD; + + return -1; +} + diff --git a/software/qsys_tutorial_green_bsp/HAL/src/alt_write.c b/software/qsys_tutorial_green_bsp/HAL/src/alt_write.c new file mode 100644 index 0000000..51debb5 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/HAL/src/alt_write.c @@ -0,0 +1,138 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include + +#include "sys/alt_errno.h" +#include "sys/alt_warning.h" +#include "priv/alt_file.h" +#include "os/alt_syscall.h" + +#include "sys/alt_log_printf.h" + +/* + * The write() system call is used to write a block of data to a file or + * device. This function simply vectors the request to the device driver + * associated with the input file descriptor "file". + * + * ALT_WRITE is mapped onto the write() system call in alt_syscall.h + */ + +#ifdef ALT_USE_DIRECT_DRIVERS + +#include "system.h" +#include "sys/alt_driver.h" + +/* + * Provide minimal version that just writes to the stdout/stderr devices + * when provided. + */ + +int ALT_WRITE (int file, const void *ptr, size_t len) +{ +#ifdef ALT_STDOUT_PRESENT + ALT_DRIVER_WRITE_EXTERNS(ALT_STDOUT_DEV); +#endif +#ifdef ALT_STDERR_PRESENT + ALT_DRIVER_WRITE_EXTERNS(ALT_STDERR_DEV); +#endif + +#if !defined(ALT_STDOUT_PRESENT) && !defined(ALT_STDERR_PRESENT) + /* Generate a link time warning, should this function ever be called. */ + ALT_STUB_WARNING(write); +#endif + + switch (file) { +#ifdef ALT_STDOUT_PRESENT + case 1: /* stdout file descriptor */ + return ALT_DRIVER_WRITE(ALT_STDOUT_DEV, ptr, len, 0); +#endif /* ALT_STDOUT_PRESENT */ +#ifdef ALT_STDERR_PRESENT + case 2: /* stderr file descriptor */ + return ALT_DRIVER_WRITE(ALT_STDERR_DEV, ptr, len, 0); +#endif /* ALT_STDERR_PRESENT */ + default: + ALT_ERRNO = EBADFD; + return -1; + } +} + +#else /* !ALT_USE_DIRECT_DRIVERS */ + +int ALT_WRITE (int file, const void *ptr, size_t len) +{ + alt_fd* fd; + int rval; + + /* + * A common error case is that when the file descriptor was created, the call + * to open() failed resulting in a negative file descriptor. This is trapped + * below so that we don't try and process an invalid file descriptor. + */ + + fd = (file < 0) ? NULL : &alt_fd_list[file]; + + if (fd) + { + /* + * If the file has not been opened with write access, or if the driver does + * not provide an implementation of write(), generate an error. Otherwise + * call the drivers write() function to process the request. + */ + + if (((fd->fd_flags & O_ACCMODE) != O_RDONLY) && fd->dev->write) + { + + /* ALT_LOG - see altera_hal/HAL/inc/sys/alt_log_printf.h */ + ALT_LOG_WRITE_FUNCTION(ptr,len); + + if ((rval = fd->dev->write(fd, ptr, len)) < 0) + { + ALT_ERRNO = -rval; + return -1; + } + return rval; + } + else + { + ALT_ERRNO = EACCES; + } + } + else + { + ALT_ERRNO = EBADFD; + } + return -1; +} + +#endif /* ALT_USE_DIRECT_DRIVERS */ diff --git a/software/qsys_tutorial_green_bsp/HAL/src/altera_nios2_qsys_irq.c b/software/qsys_tutorial_green_bsp/HAL/src/altera_nios2_qsys_irq.c new file mode 100644 index 0000000..c7a4f93 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/HAL/src/altera_nios2_qsys_irq.c @@ -0,0 +1,37 @@ +/* + * Copyright (c) 2009 Altera Corporation, San Jose, California, USA. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + * altera_nios2_irq.c - Support for Nios II internal interrupt controller. + * + */ + +#include "sys/alt_irq.h" +#include "altera_nios2_qsys_irq.h" + +/* + * To initialize the internal interrupt controller, just clear the IENABLE + * register so that all possible IRQs are disabled. + */ +void altera_nios2_qsys_irq_init(void) +{ + NIOS2_WRITE_IENABLE(0); +} diff --git a/software/qsys_tutorial_green_bsp/HAL/src/crt0.S b/software/qsys_tutorial_green_bsp/HAL/src/crt0.S new file mode 100644 index 0000000..582445d --- /dev/null +++ b/software/qsys_tutorial_green_bsp/HAL/src/crt0.S @@ -0,0 +1,456 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "system.h" +#include "nios2.h" + +/* Setup header files to work with assembler code. */ +#define ALT_ASM_SRC + +/* Debug logging facility */ +#include "sys/alt_log_printf.h" + +/*************************************************************************\ +| MACROS | +\*************************************************************************/ + +/* + * The new build tools explicitly define macros when alt_load() + * must be called. The define ALT_LOAD_EXPLICITLY_CONTROLLED tells us that + * those macros are controlling if alt_load() needs to be called. + */ +#ifdef ALT_LOAD_EXPLICITLY_CONTROLLED + +/* Need to call alt_load() if any of these sections are being copied. */ +#if defined(ALT_LOAD_COPY_RODATA) || defined(ALT_LOAD_COPY_RWDATA) || defined(ALT_LOAD_COPY_EXCEPTIONS) +#define CALL_ALT_LOAD +#endif + +#else /* !ALT_LOAD_EXPLICITLY_CONTROLLED */ + +/* + * The legacy build tools use the following macros to detect when alt_load() + * needs to be called. + */ + +#define __ALT_LOAD_SECTIONS(res, text, rodata, exc) \ + ((res##_BASE != rodata##_BASE) || \ + (res##_BASE != rwdata##_BASE) || \ + (res##_BASE != exc##_BASE)) + +#define _ALT_LOAD_SECTIONS(res, text, rodata, exc) \ + __ALT_LOAD_SECTIONS(res, text, rodata, exc) + +#define ALT_LOAD_SECTIONS _ALT_LOAD_SECTIONS(ALT_RESET_DEVICE, \ + ALT_RODATA_DEVICE, \ + ALT_RWDATA_DEVICE, \ + ALT_EXCEPTIONS_DEVICE) + +/* Call alt_load() if there is no bootloader and ALT_LOAD_SECTIONS isn't 0. */ +#if defined(ALT_NO_BOOTLOADER) && ALT_LOAD_SECTIONS +#define CALL_ALT_LOAD +#endif + +#endif /* !ALT_LOAD_EXPLICITLY_CONTROLLED */ + +/* + * When the legacy build tools define a macro called ALT_NO_BOOTLOADER, + * it indicates that initialization code is allowed at the reset address. + * The new build tools define a macro called ALT_ALLOW_CODE_AT_RESET for + * the same purpose. + */ +#ifdef ALT_NO_BOOTLOADER +#define ALT_ALLOW_CODE_AT_RESET +#endif + +/*************************************************************************\ +| EXTERNAL REFERENCES | +\*************************************************************************/ + +/* + * The entry point for user code is either "main" in hosted mode, or + * "alt_main" in standalone mode. These are explicitly referenced here, + * to ensure they are built into the executable. This allows the user + * to build them into libraries, rather than supplying them in object + * files at link time. + */ + .globl main + .globl alt_main + +/* + * Create a reference to the software multiply/divide and trap handers, + * so that if they are provided, they will appear in the executable. + */ +#ifndef ALT_NO_INSTRUCTION_EMULATION + .globl alt_exception_muldiv +#endif +#ifdef ALT_TRAP_HANDLER + .globl alt_exception_trap +#endif + +/* + * Linker defined symbols used to initialize bss. + */ +.globl __bss_start +.globl __bss_end + +/*************************************************************************\ +| RESET SECTION (.entry) | +\*************************************************************************/ + +/* + * This is the reset entry point for Nios II. + * + * At reset, only the cache line which contain the reset vector is + * initialized by the hardware. The code within the first cache line + * initializes the remainder of the instruction cache. + */ + + .section .entry, "xa" + .align 5 + +/* + * Explicitly allow the use of r1 (the assembler temporary register) + * within this code. This register is normally reserved for the use of + * the assembler. + */ + .set noat + +/* + * Some tools want to know where the reset vector is. + * Code isn't always provided at the reset vector but at least the + * __reset label always contains the reset vector address because + * it is defined at the start of the .entry section. + */ + + .globl __reset + .type __reset, @function +__reset: + +/* + * Initialize the instruction cache if present (i.e. size > 0) and + * reset code is allowed unless optimizing for RTL simulation. + * RTL simulations can ensure the instruction cache is already initialized + * so skipping this loop speeds up RTL simulation. + */ + +#if NIOS2_ICACHE_SIZE > 0 && defined(ALT_ALLOW_CODE_AT_RESET) && !defined(ALT_SIM_OPTIMIZE) + /* Assume the instruction cache size is always a power of two. */ +#if NIOS2_ICACHE_SIZE > 0x8000 + movhi r2, %hi(NIOS2_ICACHE_SIZE) +#else + movui r2, NIOS2_ICACHE_SIZE +#endif + +0: + initi r2 + addi r2, r2, -NIOS2_ICACHE_LINE_SIZE + bgt r2, zero, 0b +1: + + /* + * The following debug information tells the ISS not to run the loop above + * but to perform its actions using faster internal code. + */ + .pushsection .debug_alt_sim_info + .int 1, 1, 0b, 1b + .popsection +#endif /* Initialize Instruction Cache */ + +/* + * Jump to the _start entry point in the .text section if reset code + * is allowed or if optimizing for RTL simulation. + */ +#if defined(ALT_ALLOW_CODE_AT_RESET) || defined(ALT_SIM_OPTIMIZE) + /* Jump to the _start entry point in the .text section. */ + movhi r1, %hi(_start) + ori r1, r1, %lo(_start) + jmp r1 + + .size __reset, . - __reset +#endif /* Jump to _start */ + +/* + * When not using exit, provide an _exit symbol to prevent unresolved + * references to _exit from the linker script. + */ +#ifdef ALT_NO_EXIT + .globl _exit +_exit: +#endif + +/*************************************************************************\ +| TEXT SECTION (.text) | +\*************************************************************************/ + +/* + * Start of the .text section, and also the code entry point when + * the code is executed by a bootloader rather than directly from reset. + */ + .section .text + .align 2 + + .globl _start + .type _start, @function +_start: + +/* + * Initialize the data cache if present (i.e. size > 0) and not + * optimizing for RTL simulation. + * RTL simulations can ensure the data cache is already initialized + * so skipping this loop speeds up RTL simulation. + */ + +#if NIOS2_DCACHE_SIZE > 0 && !defined(ALT_SIM_OPTIMIZE) + + /* Assume the data cache size is always a power of two. */ +#if NIOS2_DCACHE_SIZE > 0x8000 + movhi r2, %hi(NIOS2_DCACHE_SIZE) +#else + movui r2, NIOS2_DCACHE_SIZE +#endif + +0: + initd 0(r2) + addi r2, r2, -NIOS2_DCACHE_LINE_SIZE + bgt r2, zero, 0b +1: + + /* + * The following debug information tells the ISS not to run the loop above + * but to perform its actions using faster internal code. + */ + .pushsection .debug_alt_sim_info + .int 2, 1, 0b, 1b + .popsection + +#endif /* Initialize Data Cache */ + + /* Log that caches have been initialized. */ + ALT_LOG_PUTS(alt_log_msg_cache) + + /* Log that the stack pointer is about to be setup. */ + ALT_LOG_PUTS(alt_log_msg_stackpointer) + +#if (NIOS2_NUM_OF_SHADOW_REG_SETS == 0) + /* + * Now that the caches are initialized, set up the stack pointer. + * The value provided by the linker is assumed to be correctly aligned. + */ + movhi sp, %hi(__alt_stack_pointer) + ori sp, sp, %lo(__alt_stack_pointer) + + /* Set up the global pointer. */ + movhi gp, %hi(_gp) + ori gp, gp, %lo(_gp) + +#else /* NIOS2_NUM_OF_SHADOW_REG_SETS > 0 */ + + /* + * Set up the GP and SP in all shadow register sets. + */ + + /* + * Check current register set number, if CPU resets into a shadow register + * set, switch register set to 0 by writing zero to SSTATUS register and + * execute an ERET instruction that just jumps to the next PC address + * (use the NEXTPC instruction to get this). + */ + + rdctl r2, status + + /* Get the current register set number (STATUS.CRS). */ + andi r3, r2, NIOS2_STATUS_CRS_MSK + + /* Skip switch register set if STATUS.CRS is 0. */ + beq r3, zero, .Lskip_switch_reg_set + + .set nobreak + + /* Current register set is non-zero, set SSTATUS to 0. */ + mov sstatus, zero + + /* Get next pc and store in ea. */ + nextpc ea + + /* Point to instruction after eret. */ + addi ea, ea, 8 + + /* + * Execute ERET instruction that just jumps to the next PC address + */ + eret + +.Lskip_switch_reg_set: + mov r2, zero + + /* Reset STATUS register */ + wrctl status, r2 + + movui r3, NIOS2_NUM_OF_SHADOW_REG_SETS + + /* Set up the stack pointer in register set 0. */ + movhi sp, %hi(__alt_stack_pointer) + ori sp, sp, %lo(__alt_stack_pointer) + + /* Set up the global pointer in register set 0. */ + movhi gp, %hi(_gp) + ori gp, gp, %lo(_gp) + +.Lsetup_sp_and_gp_loop: + /* + * Setup GP and SP for shadow register set + * from NIOS2_NUM_OF_SHADOW_REG_SETS to 0 + */ + + /* Skip if number of register sets is 0. */ + beq r3, zero, .Lno_shadow_register_set + + + /* Add previous register set STATUS.PRS by 1 */ + movhi r4, 1 + add r2, r2, r4 + + /* Write STATUS */ + wrctl status, r2 + + /* Clear r0 in the shadow register set (not done by hardware) */ + wrprs r0, r0 + + /* Write the GP in previous register set */ + wrprs gp, gp + + /* Only write the SP in previous register set + * if using the seperate exception stack. For normal case (single stack), + * funnel code would read the SP from previous register set. + */ +#ifdef ALT_INTERRUPT_STACK + + movhi et, %hiadj(__alt_interrupt_stack_pointer) + addi et, et, %lo(__alt_interrupt_stack_pointer) + wrprs sp, et + +#endif /* ALT_INTERRUPT_STACK */ + + /* Decrease number of register set counter by 1 */ + addi r3, r3, -1 + + br .Lsetup_sp_and_gp_loop +.Lno_shadow_register_set: + +#endif /* NIOS2_NUM_OF_SHADOW_REG_SETS */ +/* + * Clear the BSS if not optimizing for RTL simulation. + * + * This uses the symbols: __bss_start and __bss_end, which are defined + * by the linker script. They mark the begining and the end of the bss + * region. The linker script guarantees that these values are word aligned. + */ +#ifndef ALT_SIM_OPTIMIZE + /* Log that the BSS is about to be cleared. */ + ALT_LOG_PUTS(alt_log_msg_bss) + + movhi r2, %hi(__bss_start) + ori r2, r2, %lo(__bss_start) + + movhi r3, %hi(__bss_end) + ori r3, r3, %lo(__bss_end) + + beq r2, r3, 1f + +0: + stw zero, (r2) + addi r2, r2, 4 + bltu r2, r3, 0b + +1: + + /* + * The following debug information tells the ISS not to run the loop above + * but to perform its actions using faster internal code. + */ + .pushsection .debug_alt_sim_info + .int 3, 1, 0b, 1b + .popsection +#endif /* ALT_SIM_OPTIMIZE */ + +/* + * The alt_load() facility is normally used when there is no bootloader. + * It copies some sections into RAM so it acts like a mini-bootloader. + */ +#ifdef CALL_ALT_LOAD + +#ifdef ALT_STACK_CHECK + /* + * If the user has selected stack checking then we need to set up a safe + * value in the stack limit register so that the relocation functions + * don't think the stack has overflowed (the contents of the rwdata + * section aren't defined until alt_load() has been called). + */ + mov et, zero +#endif + + call alt_load + +#endif /* CALL_ALT_LOAD */ + +#ifdef ALT_STACK_CHECK + /* + * Set up the stack limit (if required). The linker has set up the + * copy of the variable which is in memory. + */ + + ldw et, %gprel(alt_stack_limit_value)(gp) +#endif + + /* Log that alt_main is about to be called. */ + ALT_LOG_PUTS(alt_log_msg_alt_main) + + /* Call the C entry point. It should never return. */ + call alt_main + + /* Wait in infinite loop in case alt_main does return. */ +alt_after_alt_main: + br alt_after_alt_main + + .size _start, . - _start + +/* + * Add information about the stack base if stack overflow checking is enabled. + */ +#ifdef ALT_STACK_CHECK + .globl alt_stack_limit_value + .section .sdata,"aws",@progbits + .align 2 + .type alt_stack_limit_value, @object + .size alt_stack_limit_value, 4 +alt_stack_limit_value: + .long __alt_stack_limit +#endif diff --git a/software/qsys_tutorial_green_bsp/Makefile b/software/qsys_tutorial_green_bsp/Makefile new file mode 100644 index 0000000..9b68af8 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/Makefile @@ -0,0 +1,766 @@ +#------------------------------------------------------------------------------ +# BSP MAKEFILE +# +# This makefile was automatically generated by the nios2-bsp-generate-files +# command. Its purpose is to build a custom Board Support Package (BSP) +# targeting a specific Nios II processor in an SOPC Builder-based design. +# +# To create an application or library Makefile which uses this BSP, try the +# nios2-app-generate-makefile or nios2-lib-generate-makefile commands. +#------------------------------------------------------------------------------ + +#------------------------------------------------------------------------------ +# TOOLS +#------------------------------------------------------------------------------ + +MKDIR := mkdir -p +ECHO := echo +SPACE := $(empty) $(empty) + +#------------------------------------------------------------------------------ +# The adjust-path macro +# +# If COMSPEC is defined, Make is launched from Windows through +# Cygwin. This adjust-path macro will call 'cygpath -u' on all +# paths to ensure they are readable by Make. +# +# If COMSPEC is not defined, Make is launched from *nix, and no adjustment +# is necessary +#------------------------------------------------------------------------------ + +ifndef COMSPEC +ifdef ComSpec +COMSPEC = $(ComSpec) +endif # ComSpec +endif # !COMSPEC + +ifdef COMSPEC + adjust-path = $(subst $(SPACE),\$(SPACE),$(shell cygpath -u "$1")) + adjust-path-mixed = $(subst $(SPACE),\$(SPACE),$(shell cygpath -m "$1")) +else + adjust-path = $(subst $(SPACE),\$(SPACE),$1) + adjust-path-mixed = $(subst $(SPACE),\$(SPACE),$1) +endif + +#------------------------------------------------------------------------------ +# DEFAULT TARGET +# +# The default target, "all", must appear before any other target in the +# Makefile. Note that extra prerequisites are added to the "all" rule later. +#------------------------------------------------------------------------------ +.PHONY: all +all: + @$(ECHO) [BSP build complete] + + +#------------------------------------------------------------------------------ +# PATHS & DIRECTORY NAMES +# +# Explicitly locate absolute path of the BSP root +#------------------------------------------------------------------------------ + +BSP_ROOT_DIR := . + +# Define absolute path to the root of the BSP. +ABS_BSP_ROOT := $(call adjust-path-mixed,$(shell pwd)) + +# Stash all BSP object files here +OBJ_DIR := ./obj + +NEWLIB_DIR = $(BSP_ROOT_DIR)/newlib + + +#------------------------------------------------------------------------------ +# MANAGED CONTENT +# +# All content between the lines "START MANAGED" and "END MANAGED" below is +# generated based on variables in the BSP settings file when the +# nios2-bsp-generate-files command is invoked. If you wish to persist any +# information pertaining to the build process, it is recomended that you +# utilize the BSP settings mechanism to do so. +# +# Note that most variable assignments in this section have a corresponding BSP +# setting that can be changed by using the nios2-bsp-create-settings or +# nios2-bsp-update-settings command before nios2-bsp-generate-files; if you +# want any variable set to a specific value when this Makefile is re-generated +# (to prevent hand-edits from being over-written), use the BSP settings +# facilities above. +#------------------------------------------------------------------------------ + +#START MANAGED + +# The following TYPE comment allows tools to identify the 'type' of target this +# makefile is associated with. +# TYPE: BSP_PRIVATE_MAKEFILE + +# This following VERSION comment indicates the version of the tool used to +# generate this makefile. A makefile variable is provided for VERSION as well. +# ACDS_VERSION: 13.0sp1 +ACDS_VERSION := 13.0sp1 + +# This following BUILD_NUMBER comment indicates the build number of the tool +# used to generate this makefile. +# BUILD_NUMBER: 232 + +SETTINGS_FILE := settings.bsp +SOPC_FILE := C:/Users/takayun/Desktop/qsys_tutorial/nios_system.sopcinfo + +#------------------------------------------------------------------------------- +# TOOL & COMMAND DEFINITIONS +# +# The base command for each build operation are expressed here. Additional +# switches may be expressed here. They will run for all instances of the +# utility. +#------------------------------------------------------------------------------- + +# Archiver command. Creates library files. +AR = nios2-elf-ar + +# Assembler command. Note that CC is used for .S files. +AS = nios2-elf-gcc + +# Custom flags only passed to the archiver. This content of this variable is +# directly passed to the archiver rather than the more standard "ARFLAGS". The +# reason for this is that GNU Make assumes some default content in ARFLAGS. +# This setting defines the value of BSP_ARFLAGS in Makefile. +BSP_ARFLAGS = -src + +# Custom flags only passed to the assembler. This setting defines the value of +# BSP_ASFLAGS in Makefile. +BSP_ASFLAGS = -Wa,-gdwarf2 + +# C/C++ compiler debug level. '-g' provides the default set of debug symbols +# typically required to debug a typical application. Omitting '-g' removes +# debug symbols from the ELF. This setting defines the value of +# BSP_CFLAGS_DEBUG in Makefile. +BSP_CFLAGS_DEBUG = -g + +# C/C++ compiler optimization level. "-O0" = no optimization,"-O2" = "normal" +# optimization, etc. "-O0" is recommended for code that you want to debug since +# compiler optimization can remove variables and produce non-sequential +# execution of code while debugging. This setting defines the value of +# BSP_CFLAGS_OPTIMIZATION in Makefile. +BSP_CFLAGS_OPTIMIZATION = '-Os' + +# C/C++ compiler warning level. "-Wall" is commonly used.This setting defines +# the value of BSP_CFLAGS_WARNINGS in Makefile. +BSP_CFLAGS_WARNINGS = -Wall + +# C compiler command. +CC = nios2-elf-gcc -xc + +# C++ compiler command. +CXX = nios2-elf-gcc -xc++ + +# Command used to remove files during 'clean' target. +RM = rm -f + + +#------------------------------------------------------------------------------- +# BUILD PRE & POST PROCESS COMMANDS +# +# The following variables are treated as shell commands in the rule +# definitions for each file-type associated with the BSP build, as well as +# commands run at the beginning and end of the entire BSP build operation. +# Pre-process commands are executed before the relevant command (for example, +# a command defined in the "CC_PRE_PROCESS" variable executes before the C +# compiler for building .c files), while post-process commands are executed +# immediately afterwards. +# +# You can view each pre/post-process command in the "Build Rules: All & +# Clean", "Pattern Rules to Build Objects", and "Library Rules" sections of +# this Makefile. +#------------------------------------------------------------------------------- + + +#------------------------------------------------------------------------------- +# BSP SOURCE BUILD SETTINGS (FLAG GENERATION) +# +# Software build settings such as compiler optimization, debug level, warning +# flags, etc., may be defined in the following variables. The variables below +# are concatenated together in the 'Flags' section of this Makefile to form +# final variables of flags passed to the build tools. +# +# These settings are considered private to the BSP and apply to all library & +# driver files in it; they do NOT automatically propagate to, for example, the +# build settings for an application. +# # For additional detail and syntax requirements, please refer to GCC help +# (example: "nios2-elf-gcc --help --verbose"). +# +# Unless indicated otherwise, multiple entries in each variable should be +# space-separated. +#------------------------------------------------------------------------------- + +# Altera HAL alt_sys_init.c generated source file +GENERATED_C_FILES := $(ABS_BSP_ROOT)/alt_sys_init.c +GENERATED_C_LIB_SRCS += alt_sys_init.c + + +#------------------------------------------------------------------------------- +# BSP SOURCE FILE LISTING +# +# All source files that comprise the BSP are listed here, along with path +# information to each file expressed relative to the BSP root. The precise +# list and location of each file is derived from the driver, operating system, +# or software package source file declarations. +# +# Following specification of the source files for each component, driver, etc., +# each source file type (C, assembly, etc.) is concatenated together and used +# to construct a list of objects. Pattern rules to build each object are then +# used to build each file. +#------------------------------------------------------------------------------- + +# altera_avalon_jtag_uart_driver sources root +altera_avalon_jtag_uart_driver_SRCS_ROOT := drivers + +# altera_avalon_jtag_uart_driver sources +altera_avalon_jtag_uart_driver_C_LIB_SRCS := \ + $(altera_avalon_jtag_uart_driver_SRCS_ROOT)/src/altera_avalon_jtag_uart_init.c \ + $(altera_avalon_jtag_uart_driver_SRCS_ROOT)/src/altera_avalon_jtag_uart_read.c \ + $(altera_avalon_jtag_uart_driver_SRCS_ROOT)/src/altera_avalon_jtag_uart_write.c \ + $(altera_avalon_jtag_uart_driver_SRCS_ROOT)/src/altera_avalon_jtag_uart_ioctl.c \ + $(altera_avalon_jtag_uart_driver_SRCS_ROOT)/src/altera_avalon_jtag_uart_fd.c + +# altera_avalon_pio_driver sources root +altera_avalon_pio_driver_SRCS_ROOT := drivers + +# altera_avalon_pio_driver sources +# altera_nios2_qsys_hal_driver sources root +altera_nios2_qsys_hal_driver_SRCS_ROOT := HAL + +# altera_nios2_qsys_hal_driver sources +altera_nios2_qsys_hal_driver_C_LIB_SRCS := \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/altera_nios2_qsys_irq.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_usleep.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_busy_sleep.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_irq_vars.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_icache_flush.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_icache_flush_all.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_dcache_flush.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_dcache_flush_all.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_dcache_flush_no_writeback.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_instruction_exception_entry.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_irq_register.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_iic.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_remap_cached.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_remap_uncached.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_uncached_free.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_uncached_malloc.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_do_ctors.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_do_dtors.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_gmon.c + +altera_nios2_qsys_hal_driver_ASM_LIB_SRCS := \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_exception_entry.S \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_exception_trap.S \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_exception_muldiv.S \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_irq_entry.S \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_software_exception.S \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_mcount.S \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_log_macro.S \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/crt0.S + +# hal sources root +hal_SRCS_ROOT := HAL + +# hal sources +hal_C_LIB_SRCS := \ + $(hal_SRCS_ROOT)/src/alt_alarm_start.c \ + $(hal_SRCS_ROOT)/src/alt_close.c \ + $(hal_SRCS_ROOT)/src/alt_dev.c \ + $(hal_SRCS_ROOT)/src/alt_dev_llist_insert.c \ + $(hal_SRCS_ROOT)/src/alt_dma_rxchan_open.c \ + $(hal_SRCS_ROOT)/src/alt_dma_txchan_open.c \ + $(hal_SRCS_ROOT)/src/alt_environ.c \ + $(hal_SRCS_ROOT)/src/alt_env_lock.c \ + $(hal_SRCS_ROOT)/src/alt_errno.c \ + $(hal_SRCS_ROOT)/src/alt_execve.c \ + $(hal_SRCS_ROOT)/src/alt_exit.c \ + $(hal_SRCS_ROOT)/src/alt_fcntl.c \ + $(hal_SRCS_ROOT)/src/alt_fd_lock.c \ + $(hal_SRCS_ROOT)/src/alt_fd_unlock.c \ + $(hal_SRCS_ROOT)/src/alt_find_dev.c \ + $(hal_SRCS_ROOT)/src/alt_find_file.c \ + $(hal_SRCS_ROOT)/src/alt_flash_dev.c \ + $(hal_SRCS_ROOT)/src/alt_fork.c \ + $(hal_SRCS_ROOT)/src/alt_fs_reg.c \ + $(hal_SRCS_ROOT)/src/alt_fstat.c \ + $(hal_SRCS_ROOT)/src/alt_get_fd.c \ + $(hal_SRCS_ROOT)/src/alt_getchar.c \ + $(hal_SRCS_ROOT)/src/alt_getpid.c \ + $(hal_SRCS_ROOT)/src/alt_gettod.c \ + $(hal_SRCS_ROOT)/src/alt_iic_isr_register.c \ + $(hal_SRCS_ROOT)/src/alt_instruction_exception_register.c \ + $(hal_SRCS_ROOT)/src/alt_ioctl.c \ + $(hal_SRCS_ROOT)/src/alt_io_redirect.c \ + $(hal_SRCS_ROOT)/src/alt_irq_handler.c \ + $(hal_SRCS_ROOT)/src/alt_isatty.c \ + $(hal_SRCS_ROOT)/src/alt_kill.c \ + $(hal_SRCS_ROOT)/src/alt_link.c \ + $(hal_SRCS_ROOT)/src/alt_load.c \ + $(hal_SRCS_ROOT)/src/alt_log_printf.c \ + $(hal_SRCS_ROOT)/src/alt_lseek.c \ + $(hal_SRCS_ROOT)/src/alt_main.c \ + $(hal_SRCS_ROOT)/src/alt_malloc_lock.c \ + $(hal_SRCS_ROOT)/src/alt_open.c \ + $(hal_SRCS_ROOT)/src/alt_printf.c \ + $(hal_SRCS_ROOT)/src/alt_putchar.c \ + $(hal_SRCS_ROOT)/src/alt_putstr.c \ + $(hal_SRCS_ROOT)/src/alt_read.c \ + $(hal_SRCS_ROOT)/src/alt_release_fd.c \ + $(hal_SRCS_ROOT)/src/alt_rename.c \ + $(hal_SRCS_ROOT)/src/alt_sbrk.c \ + $(hal_SRCS_ROOT)/src/alt_settod.c \ + $(hal_SRCS_ROOT)/src/alt_stat.c \ + $(hal_SRCS_ROOT)/src/alt_tick.c \ + $(hal_SRCS_ROOT)/src/alt_times.c \ + $(hal_SRCS_ROOT)/src/alt_unlink.c \ + $(hal_SRCS_ROOT)/src/alt_wait.c \ + $(hal_SRCS_ROOT)/src/alt_write.c + + +# Assemble all component C source files +COMPONENT_C_LIB_SRCS += \ + $(altera_avalon_jtag_uart_driver_C_LIB_SRCS) \ + $(altera_nios2_qsys_hal_driver_C_LIB_SRCS) \ + $(hal_C_LIB_SRCS) + +# Assemble all component assembly source files +COMPONENT_ASM_LIB_SRCS += \ + $(altera_nios2_qsys_hal_driver_ASM_LIB_SRCS) + +# Assemble all component C++ source files +COMPONENT_CPP_LIB_SRCS += \ + +#END MANAGED + +#------------------------------------------------------------------------------ +# PUBLIC.MK +# +# The generated public.mk file contains BSP information that is shared with +# other external makefiles, such as a Nios II application makefile. System- +# dependent information such as hardware-specific compiler flags and +# simulation file generation are stored here. +# +# In addition, public.mk contains include paths that various software, +# such as a device driver, may need for the C compiler. These paths are +# written to public.mk with respect to the BSP root. In public.mk, each +# path is prefixed with a special variable, $(ALT_LIBRARY_ROOT_DIR). The +# purpose of this variable is to allow an external Makefile to append on +# path information to precisely locate paths expressed in public.mk +# Since this is the BSP Makefile, we set ALT_LIBRARY_ROOT_DIR to point right +# here ("."), at the BSP root. +# +# ALT_LIBRARY_ROOT_DIR must always be set before public.mk is included. +#------------------------------------------------------------------------------ +ALT_LIBRARY_ROOT_DIR := . +include public.mk + + +#------------------------------------------------------------------------------ +# FLAGS +# +# Include paths for BSP files are written into the public.mk file and must +# be added to the existing list of pre-processor flags. In addition, "hooks" +# for standard flags left intentionally empty (CFLAGS, CPPFLAGS, ASFLAGS, +# and CXXFLAGS) are provided for conveniently adding to the relevant flags +# on the command-line or via script that calls make. +#------------------------------------------------------------------------------ +# Assemble final list of compiler flags from generated content +BSP_CFLAGS += \ + $(BSP_CFLAGS_DEFINED_SYMBOLS) \ + $(BSP_CFLAGS_UNDEFINED_SYMBOLS) \ + $(BSP_CFLAGS_OPTIMIZATION) \ + $(BSP_CFLAGS_DEBUG) \ + $(BSP_CFLAGS_WARNINGS) \ + $(BSP_CFLAGS_USER_FLAGS) \ + $(ALT_CFLAGS) \ + $(CFLAGS) + +# Make ready the final list of include directories and other C pre-processor +# flags. Each include path is made ready by prefixing it with "-I". +BSP_CPPFLAGS += \ + $(addprefix -I, $(BSP_INC_DIRS)) \ + $(addprefix -I, $(ALT_INCLUDE_DIRS)) \ + $(ALT_CPPFLAGS) \ + $(CPPFLAGS) + +# Finish off assembler flags with any user-provided flags +BSP_ASFLAGS += $(ASFLAGS) + +# Finish off C++ flags with any user-provided flags +BSP_CXXFLAGS += $(CXXFLAGS) + +# And finally, the ordered list +C_SRCS += $(GENERATED_C_LIB_SRCS) \ + $(COMPONENT_C_LIB_SRCS) + +CXX_SRCS += $(GENERATED_CPP_LIB_SRCS) \ + $(COMPONENT_CPP_LIB_SRCS) + +ASM_SRCS += $(GENERATED_ASM_LIB_SRCS) \ + $(COMPONENT_ASM_LIB_SRCS) + + +#------------------------------------------------------------------------------ +# LIST OF GENERATED FILES +# +# A Nios II BSP relies on the generation of several source files used +# by both the BSP and any applications referencing the BSP. +#------------------------------------------------------------------------------ + + +GENERATED_H_FILES := $(ABS_BSP_ROOT)/system.h + +GENERATED_LINKER_SCRIPT := $(ABS_BSP_ROOT)/linker.x + +GENERATED_FILES += $(GENERATED_H_FILES) \ + $(GENERATED_LINKER_SCRIPT) + + +#------------------------------------------------------------------------------ +# SETUP TO BUILD OBJECTS +# +# List of object files which are to be built. This is constructed from the input +# list of C source files (C_SRCS), C++ source files (CXX_SRCS), and assembler +# source file (ASM_SRCS). The permitted file extensions are: +# +# .c .C - for C files +# .cxx .cc .cpp .CXX .CC .CPP - for C++ files +# .S .s - for assembly files +# +# Extended description: The list of objects is a sorted list (duplicates +# removed) of all possible objects, placed beneath the ./obj directory, +# including any path information stored in the "*_SRCS" variable. The +# "patsubst" commands are used to concatenate together multiple file suffix +# types for common files (i.e. c++ as .cxx, .cc, .cpp). +# +# File extensions are case-insensitive in build rules with the exception of +# assembly sources. Nios II assembly sources with the ".S" extension are first +# run through the C preprocessor. Sources with the ".s" extension are not. +#------------------------------------------------------------------------------ +OBJS = $(sort $(addprefix $(OBJ_DIR)/, \ + $(patsubst %.c, %.o, $(patsubst %.C, %.o, $(C_SRCS))) \ + $(patsubst %.cxx, %.o, $(patsubst %.CXX, %.o, \ + $(patsubst %.cc, %.o, $(patsubst %.CC, %.o, \ + $(patsubst %.cpp, %.o, $(patsubst %.CPP, %.o, \ + $(CXX_SRCS) )))))) \ + $(patsubst %.S, %.o, $(patsubst %.s, %.o, $(ASM_SRCS))) )) + +# List of dependancy files for each object file. +DEPS = $(OBJS:.o=.d) + + +# Rules to force your project to rebuild or relink +# .force_relink file will cause any application that depends on this project to relink +# .force_rebuild file will cause this project to rebuild object files +# .force_rebuild_all file will cause this project and any project that depends on this project to rebuild object files + +FORCE_RELINK_DEP := .force_relink +FORCE_REBUILD_DEP := .force_rebuild +FORCE_REBUILD_ALL_DEP := .force_rebuild_all +FORCE_REBUILD_DEP_LIST := $(FORCE_RELINK_DEP) $(FORCE_REBUILD_DEP) $(FORCE_REBUILD_ALL_DEP) + +$(FORCE_REBUILD_DEP_LIST): + +$(OBJS): $(wildcard $(FORCE_REBUILD_DEP)) $(wildcard $(FORCE_REBUILD_ALL_DEP)) + + +#------------------------------------------------------------------------------ +# BUILD RULES: ALL & CLEAN +#------------------------------------------------------------------------------ +.DELETE_ON_ERROR: + +.PHONY: all +all: build_pre_process +all: Makefile $(GENERATED_FILES) $(BSP_LIB) $(NEWLIB_DIR) +all: build_post_process + + +# clean: remove .o/.a/.d +.PHONY: clean +clean: + @$(RM) -r $(BSP_LIB) $(OBJ_DIR) $(FORCE_REBUILD_DEP_LIST) +ifneq ($(wildcard $(NEWLIB_DIR)),) + @$(RM) -r $(NEWLIB_DIR) +endif + @$(ECHO) [BSP clean complete] + + +#------------------------------------------------------------------------------ +# BUILD PRE/POST PROCESS +#------------------------------------------------------------------------------ +build_pre_process : + $(BUILD_PRE_PROCESS) + +build_post_process : + $(BUILD_POST_PROCESS) + +.PHONY: build_pre_process build_post_process + + + +#------------------------------------------------------------------------------ +# MAKEFILE UP TO DATE? +# +# Is this very Makefile up to date? Someone may have changed the BSP settings +# file or the associated target hardware. +#------------------------------------------------------------------------------ +# Skip this check when clean is the only target +ifneq ($(MAKECMDGOALS),clean) + +ifneq ($(wildcard $(SETTINGS_FILE)),$(SETTINGS_FILE)) +$(warning Warning: BSP Settings File $(SETTINGS_FILE) could not be found.) +endif + +Makefile: $(wildcard $(SETTINGS_FILE)) + @$(ECHO) Makefile not up to date. + @$(ECHO) $(SETTINGS_FILE) has been modified since the BSP Makefile was generated. + @$(ECHO) + @$(ECHO) Generate the BSP to update the Makefile, and then build again. + @$(ECHO) + @$(ECHO) To generate from Eclipse: + @$(ECHO) " 1. Right-click the BSP project." + @$(ECHO) " 2. In the Nios II Menu, click Generate BSP." + @$(ECHO) + @$(ECHO) To generate from the command line: + @$(ECHO) " nios2-bsp-generate-files --settings= --bsp-dir=" + @$(ECHO) + @exit 1 + +ifneq ($(wildcard $(SOPC_FILE)),$(SOPC_FILE)) +$(warning Warning: SOPC File $(SOPC_FILE) could not be found.) +endif + +public.mk: $(wildcard $(SOPC_FILE)) + @$(ECHO) Makefile not up to date. + @$(ECHO) $(SOPC_FILE) has been modified since the BSP was generated. + @$(ECHO) + @$(ECHO) Generate the BSP to update the Makefile, and then build again. + @$(ECHO) + @$(ECHO) To generate from Eclipse: + @$(ECHO) " 1. Right-click the BSP project." + @$(ECHO) " 2. In the Nios II Menu, click Generate BSP." + @$(ECHO) + @$(ECHO) To generate from the command line: + @$(ECHO) " nios2-bsp-generate-files --settings= --bsp-dir=" + @$(ECHO) + @exit 1 + +endif # $(MAKECMDGOALS) != clean + +#------------------------------------------------------------------------------ +# PATTERN RULES TO BUILD OBJECTS +#------------------------------------------------------------------------------ +$(OBJ_DIR)/%.o: %.c + @$(ECHO) Compiling $( + +/* + * Device headers + */ + +#include "altera_nios2_qsys_irq.h" +#include "altera_avalon_jtag_uart.h" + +/* + * Allocate the device storage + */ + +ALTERA_NIOS2_QSYS_IRQ_INSTANCE ( NIOS2_PROCESSOR, nios2_processor); +ALTERA_AVALON_JTAG_UART_INSTANCE ( JTAG_UART, jtag_uart); + +/* + * Initialize the interrupt controller devices + * and then enable interrupts in the CPU. + * Called before alt_sys_init(). + * The "base" parameter is ignored and only + * present for backwards-compatibility. + */ + +void alt_irq_init ( const void* base ) +{ + ALTERA_NIOS2_QSYS_IRQ_INIT ( NIOS2_PROCESSOR, nios2_processor); + alt_irq_cpu_enable_interrupts(); +} + +/* + * Initialize the non-interrupt controller devices. + * Called after alt_irq_init(). + */ + +void alt_sys_init( void ) +{ + ALTERA_AVALON_JTAG_UART_INIT ( JTAG_UART, jtag_uart); +} diff --git a/software/qsys_tutorial_green_bsp/create-this-bsp b/software/qsys_tutorial_green_bsp/create-this-bsp new file mode 100644 index 0000000..d95439e --- /dev/null +++ b/software/qsys_tutorial_green_bsp/create-this-bsp @@ -0,0 +1,49 @@ +#!/bin/bash +# +# This script creates the ucosii_net_zipfs Board Support Package (BSP). + +BSP_TYPE=hal +BSP_DIR=. +SOPC_DIR=../../ +SOPC_FILE=C:/Users/takayun/Desktop/qsys_tutorial/nios_system.sopcinfo +NIOS2_BSP_ARGS="--set hal.max_file_descriptors 4 --set hal.enable_small_c_library true --set hal.sys_clk_timer none --set hal.timestamp_timer none --set hal.enable_exit false --set hal.enable_c_plus_plus false --set hal.enable_lightweight_device_driver_api true --set hal.enable_clean_exit false --set hal.enable_sim_optimize false --set hal.enable_reduced_device_drivers true --set hal.make.bsp_cflags_optimization '-Os'" +CPU_NAME= + + +# Don't run make if create-this-app script is called with --no-make arg +SKIP_MAKE= +while [ $# -gt 0 ] +do + case "$1" in + --no-make) + SKIP_MAKE=1 + ;; + *) + NIOS2_BSP_ARGS="$NIOS2_BSP_ARGS $1" + ;; + esac + shift +done + + +# Run nios2-bsp utility to create a hal BSP in this directory +# for the system with a .sopc file in $SOPC_FILE. +# Deprecating $SOPC_DIR in 10.1. Multiple .sopcinfo files in a directory may exist. + +if [ -z "$SOPC_FILE" ]; then + echo "WARNING: Use of a directory for locating a .sopcinfo file is deprecated in 10.1. Multiple .sopcinfo files may exist. You must specify the full .sopcinfo path." + cmd="nios2-bsp $BSP_TYPE $BSP_DIR $SOPC_DIR $NIOS2_BSP_ARGS $CPU_NAME" +else + cmd="nios2-bsp $BSP_TYPE $BSP_DIR $SOPC_FILE $NIOS2_BSP_ARGS $CPU_NAME" +fi + + +echo "create-this-bsp: Running \"$cmd\"" +$cmd || { + echo "$cmd failed" + exit 1 +} +if [ -z "$SKIP_MAKE" ]; then + echo "create-this-bsp: Running make" + make +fi diff --git a/software/qsys_tutorial_green_bsp/drivers/inc/altera_avalon_jtag_uart.h b/software/qsys_tutorial_green_bsp/drivers/inc/altera_avalon_jtag_uart.h new file mode 100644 index 0000000..95d4a99 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/drivers/inc/altera_avalon_jtag_uart.h @@ -0,0 +1,198 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#ifndef __ALT_AVALON_JTAG_UART_H__ +#define __ALT_AVALON_JTAG_UART_H__ + +#include + +#include "sys/alt_alarm.h" +#include "sys/alt_warning.h" + +#include "os/alt_sem.h" +#include "os/alt_flag.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * If the user wants all drivers to be small rather than fast then make sure + * this one is marked as needing to be small. + */ +#if defined ALT_USE_SMALL_DRIVERS && !defined ALTERA_AVALON_JTAG_UART_SMALL +#define ALTERA_AVALON_JTAG_UART_SMALL +#endif + +/* + * If the user wants to ignore FIFO full error after timeout + */ +#if defined ALT_JTAG_UART_IGNORE_FIFO_FULL_ERROR && !defined ALTERA_AVALON_JTAG_UART_IGNORE_FIFO_FULL_ERROR +#define ALTERA_AVALON_JTAG_UART_IGNORE_FIFO_FULL_ERROR +#endif + +/* + * Constants that can be overriden. + */ +#ifndef ALTERA_AVALON_JTAG_UART_DEFAULT_TIMEOUT +#define ALTERA_AVALON_JTAG_UART_DEFAULT_TIMEOUT 10 +#endif + +#ifndef ALTERA_AVALON_JTAG_UART_BUF_LEN +#define ALTERA_AVALON_JTAG_UART_BUF_LEN 2048 +#endif + +/* + * ALT_JTAG_UART_READ_RDY and ALT_JTAG_UART_WRITE_RDY are the bitmasks + * that define uC/OS-II event flags that are releated to this device. + * + * ALT_JTAG_UART_READ_RDY indicates that there is read data in the buffer + * ready to be processed. ALT_JTAG_UART_WRITE_RDY indicates that the transmitter is + * ready for more data. + */ +#define ALT_JTAG_UART_READ_RDY 0x1 +#define ALT_JTAG_UART_WRITE_RDY 0x2 +#define ALT_JTAG_UART_TIMEOUT 0x4 + +/* + * State structure definition. Each instance of the driver uses one + * of these structures to hold its associated state. + */ + +typedef struct altera_avalon_jtag_uart_state_s +{ + unsigned int base; + +#ifndef ALTERA_AVALON_JTAG_UART_SMALL + + unsigned int timeout; /* Timeout until host is assumed inactive */ + alt_alarm alarm; + unsigned int irq_enable; + unsigned int host_inactive; + + ALT_SEM (read_lock) + ALT_SEM (write_lock) + ALT_FLAG_GRP (events) + + /* The variables below are volatile because they are modified by the + * interrupt routine. Making them volatile and reading them atomically + * means that we don't need any large critical sections. + */ + volatile unsigned int rx_in; + unsigned int rx_out; + unsigned int tx_in; + volatile unsigned int tx_out; + char rx_buf[ALTERA_AVALON_JTAG_UART_BUF_LEN]; + char tx_buf[ALTERA_AVALON_JTAG_UART_BUF_LEN]; + +#endif /* !ALTERA_AVALON_JTAG_UART_SMALL */ + +} altera_avalon_jtag_uart_state; + +/* + * Macros used by alt_sys_init when the ALT file descriptor facility isn't used. + */ + +#ifdef ALTERA_AVALON_JTAG_UART_SMALL + +#define ALTERA_AVALON_JTAG_UART_STATE_INSTANCE(name, state) \ + altera_avalon_jtag_uart_state state = \ + { \ + name##_BASE, \ + } + +#define ALTERA_AVALON_JTAG_UART_STATE_INIT(name, state) + +#else /* !ALTERA_AVALON_JTAG_UART_SMALL */ + +#define ALTERA_AVALON_JTAG_UART_STATE_INSTANCE(name, state) \ + altera_avalon_jtag_uart_state state = \ + { \ + name##_BASE, \ + ALTERA_AVALON_JTAG_UART_DEFAULT_TIMEOUT, \ + } + +/* + * Externally referenced routines + */ +extern void altera_avalon_jtag_uart_init(altera_avalon_jtag_uart_state* sp, + int irq_controller_id, int irq); + +#define ALTERA_AVALON_JTAG_UART_STATE_INIT(name, state) \ + { \ + if (name##_IRQ == ALT_IRQ_NOT_CONNECTED) \ + { \ + ALT_LINK_ERROR ("Error: Interrupt not connected for " #name ". " \ + "You have selected the interrupt driven version of " \ + "the ALTERA Avalon JTAG UART driver, but the " \ + "interrupt is not connected for this device. You can " \ + "select a polled mode driver by checking the 'small " \ + "driver' option in the HAL configuration window, or " \ + "by using the -DALTERA_AVALON_JTAG_UART_SMALL " \ + "preprocessor flag."); \ + } \ + else \ + altera_avalon_jtag_uart_init(&state, \ + name##_IRQ_INTERRUPT_CONTROLLER_ID, \ + name##_IRQ); \ + } + +#endif /* ALTERA_AVALON_JTAG_UART_SMALL */ + +/* + * Include in case non-direct version of driver required. + */ +#include "altera_avalon_jtag_uart_fd.h" + +/* + * Map alt_sys_init macros to direct or non-direct versions. + */ +#ifdef ALT_USE_DIRECT_DRIVERS + +#define ALTERA_AVALON_JTAG_UART_INSTANCE(name, state) \ + ALTERA_AVALON_JTAG_UART_STATE_INSTANCE(name, state) +#define ALTERA_AVALON_JTAG_UART_INIT(name, state) \ + ALTERA_AVALON_JTAG_UART_STATE_INIT(name, state) + +#else /* !ALT_USE_DIRECT_DRIVERS */ + +#define ALTERA_AVALON_JTAG_UART_INSTANCE(name, dev) \ + ALTERA_AVALON_JTAG_UART_DEV_INSTANCE(name, dev) +#define ALTERA_AVALON_JTAG_UART_INIT(name, dev) \ + ALTERA_AVALON_JTAG_UART_DEV_INIT(name, dev) + +#endif /* ALT_USE_DIRECT_DRIVERS */ + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __ALT_AVALON_JTAG_UART_H__ */ diff --git a/software/qsys_tutorial_green_bsp/drivers/inc/altera_avalon_jtag_uart_fd.h b/software/qsys_tutorial_green_bsp/drivers/inc/altera_avalon_jtag_uart_fd.h new file mode 100644 index 0000000..b3c3200 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/drivers/inc/altera_avalon_jtag_uart_fd.h @@ -0,0 +1,125 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2007 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#ifndef __ALT_AVALON_JTAG_UART_FD_H__ +#define __ALT_AVALON_JTAG_UART_FD_H__ + +#include "sys/alt_dev.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * Externally referenced routines + */ +extern int altera_avalon_jtag_uart_read_fd (alt_fd* fd, char* ptr, int len); +extern int altera_avalon_jtag_uart_write_fd (alt_fd* fd, const char* ptr, + int len); + +/* + * Device structure definition. This is needed by alt_sys_init in order to + * reserve memory for the device instance. + */ + +typedef struct altera_avalon_jtag_uart_dev_s +{ + alt_dev dev; + altera_avalon_jtag_uart_state state; +} altera_avalon_jtag_uart_dev; + +/* + * Macros used by alt_sys_init when the ALT file descriptor facility is used. + */ + +#ifdef ALTERA_AVALON_JTAG_UART_SMALL + +#define ALTERA_AVALON_JTAG_UART_DEV_INSTANCE(name, d) \ + static altera_avalon_jtag_uart_dev d = \ + { \ + { \ + ALT_LLIST_ENTRY, \ + name##_NAME, \ + NULL, /* open */ \ + NULL, /* close */ \ + altera_avalon_jtag_uart_read_fd, \ + altera_avalon_jtag_uart_write_fd, \ + NULL, /* lseek */ \ + NULL, /* fstat */ \ + NULL, /* ioctl */ \ + }, \ + { \ + name##_BASE, \ + } \ + } + +#define ALTERA_AVALON_JTAG_UART_DEV_INIT(name, d) alt_dev_reg (&d.dev) + +#else /* !ALTERA_AVALON_JTAG_UART_SMALL */ + +extern int altera_avalon_jtag_uart_close_fd(alt_fd* fd); +extern int altera_avalon_jtag_uart_ioctl_fd (alt_fd* fd, int req, void* arg); + +#define ALTERA_AVALON_JTAG_UART_DEV_INSTANCE(name, d) \ + static altera_avalon_jtag_uart_dev d = \ + { \ + { \ + ALT_LLIST_ENTRY, \ + name##_NAME, \ + NULL, /* open */ \ + altera_avalon_jtag_uart_close_fd, \ + altera_avalon_jtag_uart_read_fd, \ + altera_avalon_jtag_uart_write_fd, \ + NULL, /* lseek */ \ + NULL, /* fstat */ \ + altera_avalon_jtag_uart_ioctl_fd, \ + }, \ + { \ + name##_BASE, \ + ALTERA_AVALON_JTAG_UART_DEFAULT_TIMEOUT, \ + } \ + } + +#define ALTERA_AVALON_JTAG_UART_DEV_INIT(name, d) \ + { \ + ALTERA_AVALON_JTAG_UART_STATE_INIT(name, d.state); \ + \ + /* make the device available to the system */ \ + alt_dev_reg(&d.dev); \ + } + +#endif /* ALTERA_AVALON_JTAG_UART_SMALL */ + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __ALT_AVALON_JTAG_UART_FD_H__ */ diff --git a/software/qsys_tutorial_green_bsp/drivers/inc/altera_avalon_jtag_uart_regs.h b/software/qsys_tutorial_green_bsp/drivers/inc/altera_avalon_jtag_uart_regs.h new file mode 100644 index 0000000..7f97160 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/drivers/inc/altera_avalon_jtag_uart_regs.h @@ -0,0 +1,73 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#ifndef __ALTERA_AVALON_JTAG_UART_REGS_H__ +#define __ALTERA_AVALON_JTAG_UART_REGS_H__ + +#include + +#define ALTERA_AVALON_JTAG_UART_DATA_REG 0 +#define IOADDR_ALTERA_AVALON_JTAG_UART_DATA(base) \ + __IO_CALC_ADDRESS_NATIVE(base, ALTERA_AVALON_JTAG_UART_DATA_REG) +#define IORD_ALTERA_AVALON_JTAG_UART_DATA(base) \ + IORD(base, ALTERA_AVALON_JTAG_UART_DATA_REG) +#define IOWR_ALTERA_AVALON_JTAG_UART_DATA(base, data) \ + IOWR(base, ALTERA_AVALON_JTAG_UART_DATA_REG, data) + +#define ALTERA_AVALON_JTAG_UART_DATA_DATA_MSK (0x000000FF) +#define ALTERA_AVALON_JTAG_UART_DATA_DATA_OFST (0) +#define ALTERA_AVALON_JTAG_UART_DATA_RVALID_MSK (0x00008000) +#define ALTERA_AVALON_JTAG_UART_DATA_RVALID_OFST (15) +#define ALTERA_AVALON_JTAG_UART_DATA_RAVAIL_MSK (0xFFFF0000) +#define ALTERA_AVALON_JTAG_UART_DATA_RAVAIL_OFST (16) + + +#define ALTERA_AVALON_JTAG_UART_CONTROL_REG 1 +#define IOADDR_ALTERA_AVALON_JTAG_UART_CONTROL(base) \ + __IO_CALC_ADDRESS_NATIVE(base, ALTERA_AVALON_JTAG_UART_CONTROL_REG) +#define IORD_ALTERA_AVALON_JTAG_UART_CONTROL(base) \ + IORD(base, ALTERA_AVALON_JTAG_UART_CONTROL_REG) +#define IOWR_ALTERA_AVALON_JTAG_UART_CONTROL(base, data) \ + IOWR(base, ALTERA_AVALON_JTAG_UART_CONTROL_REG, data) + +#define ALTERA_AVALON_JTAG_UART_CONTROL_RE_MSK (0x00000001) +#define ALTERA_AVALON_JTAG_UART_CONTROL_RE_OFST (0) +#define ALTERA_AVALON_JTAG_UART_CONTROL_WE_MSK (0x00000002) +#define ALTERA_AVALON_JTAG_UART_CONTROL_WE_OFST (1) +#define ALTERA_AVALON_JTAG_UART_CONTROL_RI_MSK (0x00000100) +#define ALTERA_AVALON_JTAG_UART_CONTROL_RI_OFST (8) +#define ALTERA_AVALON_JTAG_UART_CONTROL_WI_MSK (0x00000200) +#define ALTERA_AVALON_JTAG_UART_CONTROL_WI_OFST (9) +#define ALTERA_AVALON_JTAG_UART_CONTROL_AC_MSK (0x00000400) +#define ALTERA_AVALON_JTAG_UART_CONTROL_AC_OFST (10) +#define ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_MSK (0xFFFF0000) +#define ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_OFST (16) + +#endif /* __ALTERA_AVALON_JTAG_UART_REGS_H__ */ diff --git a/software/qsys_tutorial_green_bsp/drivers/inc/altera_avalon_pio_regs.h b/software/qsys_tutorial_green_bsp/drivers/inc/altera_avalon_pio_regs.h new file mode 100644 index 0000000..052439f --- /dev/null +++ b/software/qsys_tutorial_green_bsp/drivers/inc/altera_avalon_pio_regs.h @@ -0,0 +1,67 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#ifndef __ALTERA_AVALON_PIO_REGS_H__ +#define __ALTERA_AVALON_PIO_REGS_H__ + +#include + +#define IOADDR_ALTERA_AVALON_PIO_DATA(base) __IO_CALC_ADDRESS_NATIVE(base, 0) +#define IORD_ALTERA_AVALON_PIO_DATA(base) IORD(base, 0) +#define IOWR_ALTERA_AVALON_PIO_DATA(base, data) IOWR(base, 0, data) + +#define IOADDR_ALTERA_AVALON_PIO_DIRECTION(base) __IO_CALC_ADDRESS_NATIVE(base, 1) +#define IORD_ALTERA_AVALON_PIO_DIRECTION(base) IORD(base, 1) +#define IOWR_ALTERA_AVALON_PIO_DIRECTION(base, data) IOWR(base, 1, data) + +#define IOADDR_ALTERA_AVALON_PIO_IRQ_MASK(base) __IO_CALC_ADDRESS_NATIVE(base, 2) +#define IORD_ALTERA_AVALON_PIO_IRQ_MASK(base) IORD(base, 2) +#define IOWR_ALTERA_AVALON_PIO_IRQ_MASK(base, data) IOWR(base, 2, data) + +#define IOADDR_ALTERA_AVALON_PIO_EDGE_CAP(base) __IO_CALC_ADDRESS_NATIVE(base, 3) +#define IORD_ALTERA_AVALON_PIO_EDGE_CAP(base) IORD(base, 3) +#define IOWR_ALTERA_AVALON_PIO_EDGE_CAP(base, data) IOWR(base, 3, data) + + +#define IOADDR_ALTERA_AVALON_PIO_SET_BIT(base) __IO_CALC_ADDRESS_NATIVE(base, 4) +#define IORD_ALTERA_AVALON_PIO_SET_BITS(base) IORD(base, 4) +#define IOWR_ALTERA_AVALON_PIO_SET_BITS(base, data) IOWR(base, 4, data) + +#define IOADDR_ALTERA_AVALON_PIO_CLEAR_BITS(base) __IO_CALC_ADDRESS_NATIVE(base, 5) +#define IORD_ALTERA_AVALON_PIO_CLEAR_BITS(base) IORD(base, 5) +#define IOWR_ALTERA_AVALON_PIO_CLEAR_BITS(base, data) IOWR(base, 5, data) + + + +/* Defintions for direction-register operation with bi-directional PIOs */ +#define ALTERA_AVALON_PIO_DIRECTION_INPUT 0 +#define ALTERA_AVALON_PIO_DIRECTION_OUTPUT 1 + +#endif /* __ALTERA_AVALON_PIO_REGS_H__ */ diff --git a/software/qsys_tutorial_green_bsp/drivers/src/altera_avalon_jtag_uart_fd.c b/software/qsys_tutorial_green_bsp/drivers/src/altera_avalon_jtag_uart_fd.c new file mode 100644 index 0000000..53dfc3b --- /dev/null +++ b/software/qsys_tutorial_green_bsp/drivers/src/altera_avalon_jtag_uart_fd.c @@ -0,0 +1,86 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2007 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "alt_types.h" +#include "sys/alt_dev.h" +#include "altera_avalon_jtag_uart.h" + +extern int altera_avalon_jtag_uart_read(altera_avalon_jtag_uart_state* sp, + char* buffer, int space, int flags); +extern int altera_avalon_jtag_uart_write(altera_avalon_jtag_uart_state* sp, + const char* ptr, int count, int flags); +extern int altera_avalon_jtag_uart_ioctl(altera_avalon_jtag_uart_state* sp, + int req, void* arg); +extern int altera_avalon_jtag_uart_close(altera_avalon_jtag_uart_state* sp, + int flags); + +/* ----------------------------------------------------------------------- */ +/* --------------------- WRAPPERS FOR ALT FD SUPPORT --------------------- */ +/* + * + */ + +int +altera_avalon_jtag_uart_read_fd(alt_fd* fd, char* buffer, int space) +{ + altera_avalon_jtag_uart_dev* dev = (altera_avalon_jtag_uart_dev*) fd->dev; + + return altera_avalon_jtag_uart_read(&dev->state, buffer, space, + fd->fd_flags); +} + +int +altera_avalon_jtag_uart_write_fd(alt_fd* fd, const char* buffer, int space) +{ + altera_avalon_jtag_uart_dev* dev = (altera_avalon_jtag_uart_dev*) fd->dev; + + return altera_avalon_jtag_uart_write(&dev->state, buffer, space, + fd->fd_flags); +} + +#ifndef ALTERA_AVALON_JTAG_UART_SMALL + +int +altera_avalon_jtag_uart_close_fd(alt_fd* fd) +{ + altera_avalon_jtag_uart_dev* dev = (altera_avalon_jtag_uart_dev*) fd->dev; + + return altera_avalon_jtag_uart_close(&dev->state, fd->fd_flags); +} + +int +altera_avalon_jtag_uart_ioctl_fd(alt_fd* fd, int req, void* arg) +{ + altera_avalon_jtag_uart_dev* dev = (altera_avalon_jtag_uart_dev*) fd->dev; + + return altera_avalon_jtag_uart_ioctl(&dev->state, req, arg); +} + +#endif /* ALTERA_AVALON_JTAG_UART_SMALL */ diff --git a/software/qsys_tutorial_green_bsp/drivers/src/altera_avalon_jtag_uart_init.c b/software/qsys_tutorial_green_bsp/drivers/src/altera_avalon_jtag_uart_init.c new file mode 100644 index 0000000..7317bec --- /dev/null +++ b/software/qsys_tutorial_green_bsp/drivers/src/altera_avalon_jtag_uart_init.c @@ -0,0 +1,256 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2007 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include +#include +#include +#include + +#include + +#include "sys/alt_irq.h" +#include "sys/alt_alarm.h" +#include "sys/ioctl.h" +#include "alt_types.h" + +#include "altera_avalon_jtag_uart_regs.h" +#include "altera_avalon_jtag_uart.h" + +#include "sys/alt_log_printf.h" + +#ifndef ALTERA_AVALON_JTAG_UART_SMALL + +/* ----------------------------------------------------------- */ +/* ------------------------- FAST DRIVER --------------------- */ +/* ----------------------------------------------------------- */ +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT +static void altera_avalon_jtag_uart_irq(void* context); +#else +static void altera_avalon_jtag_uart_irq(void* context, alt_u32 id); +#endif +static alt_u32 altera_avalon_jtag_uart_timeout(void* context); + +/* + * Driver initialization code. Register interrupts and start a timer + * which we can use to check whether the host is there. + * Return 1 on sucessful IRQ register and 0 on failure. + */ + +void altera_avalon_jtag_uart_init(altera_avalon_jtag_uart_state* sp, + int irq_controller_id, int irq) +{ + ALT_FLAG_CREATE(&sp->events, 0); + ALT_SEM_CREATE(&sp->read_lock, 1); + ALT_SEM_CREATE(&sp->write_lock, 1); + + /* enable read interrupts at the device */ + sp->irq_enable = ALTERA_AVALON_JTAG_UART_CONTROL_RE_MSK; + + IOWR_ALTERA_AVALON_JTAG_UART_CONTROL(sp->base, sp->irq_enable); + + /* register the interrupt handler */ +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT + alt_ic_isr_register(irq_controller_id, irq, altera_avalon_jtag_uart_irq, + sp, NULL); +#else + alt_irq_register(irq, sp, altera_avalon_jtag_uart_irq); +#endif + + /* Register an alarm to go off every second to check for presence of host */ + sp->host_inactive = 0; + + if (alt_alarm_start(&sp->alarm, alt_ticks_per_second(), + &altera_avalon_jtag_uart_timeout, sp) < 0) + { + /* If we can't set the alarm then record "don't know if host present" + * and behave as though the host is present. + */ + sp->timeout = INT_MAX; + } + + /* ALT_LOG - see altera_hal/HAL/inc/sys/alt_log_printf.h */ + ALT_LOG_JTAG_UART_ALARM_REGISTER(sp, sp->base); +} + +/* + * Interrupt routine + */ +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT +static void altera_avalon_jtag_uart_irq(void* context) +#else +static void altera_avalon_jtag_uart_irq(void* context, alt_u32 id) +#endif +{ + altera_avalon_jtag_uart_state* sp = (altera_avalon_jtag_uart_state*) context; + unsigned int base = sp->base; + + /* ALT_LOG - see altera_hal/HAL/inc/sys/alt_log_printf.h */ + ALT_LOG_JTAG_UART_ISR_FUNCTION(base, sp); + + for ( ; ; ) + { + unsigned int control = IORD_ALTERA_AVALON_JTAG_UART_CONTROL(base); + + /* Return once nothing more to do */ + if ((control & (ALTERA_AVALON_JTAG_UART_CONTROL_RI_MSK | ALTERA_AVALON_JTAG_UART_CONTROL_WI_MSK)) == 0) + break; + + if (control & ALTERA_AVALON_JTAG_UART_CONTROL_RI_MSK) + { + /* process a read irq. Start by assuming that there is data in the + * receive FIFO (otherwise why would we have been interrupted?) + */ + unsigned int data = 1 << ALTERA_AVALON_JTAG_UART_DATA_RAVAIL_OFST; + + for ( ; ; ) + { + /* Check whether there is space in the buffer. If not then we must not + * read any characters from the buffer as they will be lost. + */ + unsigned int next = (sp->rx_in + 1) % ALTERA_AVALON_JTAG_UART_BUF_LEN; + if (next == sp->rx_out) + break; + + /* Try to remove a character from the FIFO and find out whether there + * are any more characters remaining. + */ + data = IORD_ALTERA_AVALON_JTAG_UART_DATA(base); + + if ((data & ALTERA_AVALON_JTAG_UART_DATA_RVALID_MSK) == 0) + break; + + sp->rx_buf[sp->rx_in] = (data & ALTERA_AVALON_JTAG_UART_DATA_DATA_MSK) >> ALTERA_AVALON_JTAG_UART_DATA_DATA_OFST; + sp->rx_in = (sp->rx_in + 1) % ALTERA_AVALON_JTAG_UART_BUF_LEN; + + /* Post an event to notify jtag_uart_read that a character has been read */ + ALT_FLAG_POST (sp->events, ALT_JTAG_UART_READ_RDY, OS_FLAG_SET); + } + + if (data & ALTERA_AVALON_JTAG_UART_DATA_RAVAIL_MSK) + { + /* If there is still data available here then the buffer is full + * so turn off receive interrupts until some space becomes available. + */ + sp->irq_enable &= ~ALTERA_AVALON_JTAG_UART_CONTROL_RE_MSK; + IOWR_ALTERA_AVALON_JTAG_UART_CONTROL(base, sp->irq_enable); + + /* Dummy read to ensure IRQ is cleared prior to ISR completion */ + IORD_ALTERA_AVALON_JTAG_UART_CONTROL(base); + } + } + + if (control & ALTERA_AVALON_JTAG_UART_CONTROL_WI_MSK) + { + /* process a write irq */ + unsigned int space = (control & ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_MSK) >> ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_OFST; + + while (space > 0 && sp->tx_out != sp->tx_in) + { + IOWR_ALTERA_AVALON_JTAG_UART_DATA(base, sp->tx_buf[sp->tx_out]); + + sp->tx_out = (sp->tx_out + 1) % ALTERA_AVALON_JTAG_UART_BUF_LEN; + + /* Post an event to notify jtag_uart_write that a character has been written */ + ALT_FLAG_POST (sp->events, ALT_JTAG_UART_WRITE_RDY, OS_FLAG_SET); + + space--; + } + + if (space > 0) + { + /* If we don't have any more data available then turn off the TX interrupt */ + sp->irq_enable &= ~ALTERA_AVALON_JTAG_UART_CONTROL_WE_MSK; + IOWR_ALTERA_AVALON_JTAG_UART_CONTROL(sp->base, sp->irq_enable); + + /* Dummy read to ensure IRQ is cleared prior to ISR completion */ + IORD_ALTERA_AVALON_JTAG_UART_CONTROL(base); + } + } + } +} + +/* + * Timeout routine is called every second + */ + +static alt_u32 +altera_avalon_jtag_uart_timeout(void* context) +{ + altera_avalon_jtag_uart_state* sp = (altera_avalon_jtag_uart_state *) context; + + unsigned int control = IORD_ALTERA_AVALON_JTAG_UART_CONTROL(sp->base); + + if (control & ALTERA_AVALON_JTAG_UART_CONTROL_AC_MSK) + { + IOWR_ALTERA_AVALON_JTAG_UART_CONTROL(sp->base, sp->irq_enable | ALTERA_AVALON_JTAG_UART_CONTROL_AC_MSK); + sp->host_inactive = 0; + } + else if (sp->host_inactive < INT_MAX - 2) { + sp->host_inactive++; + + if (sp->host_inactive >= sp->timeout) { + /* Post an event to indicate host is inactive (for jtag_uart_read */ + ALT_FLAG_POST (sp->events, ALT_JTAG_UART_TIMEOUT, OS_FLAG_SET); + } + } + + return alt_ticks_per_second(); +} + +/* + * The close() routine is implemented to drain the JTAG UART transmit buffer + * when not in "small" mode. This routine will wait for transimt data to be + * emptied unless a timeout from host-activity occurs. If the driver flags + * have been set to non-blocking mode, this routine will exit immediately if + * any data remains. This routine should be called indirectly (i.e. though + * the C library close() routine) so that the file descriptor associated + * with the relevant stream (i.e. stdout) can be closed as well. This routine + * does not manage file descriptors. + * + * The close routine is not implemented for the small driver; instead it will + * map to null. This is because the small driver simply waits while characters + * are transmitted; there is no interrupt-serviced buffer to empty + */ +int altera_avalon_jtag_uart_close(altera_avalon_jtag_uart_state* sp, int flags) +{ + /* + * Wait for all transmit data to be emptied by the JTAG UART ISR, or + * for a host-inactivity timeout, in which case transmit data will be lost + */ + while ( (sp->tx_out != sp->tx_in) && (sp->host_inactive < sp->timeout) ) { + if (flags & O_NONBLOCK) { + return -EWOULDBLOCK; + } + } + + return 0; +} + +#endif /* !ALTERA_AVALON_JTAG_UART_SMALL */ diff --git a/software/qsys_tutorial_green_bsp/drivers/src/altera_avalon_jtag_uart_ioctl.c b/software/qsys_tutorial_green_bsp/drivers/src/altera_avalon_jtag_uart_ioctl.c new file mode 100644 index 0000000..cf71e6f --- /dev/null +++ b/software/qsys_tutorial_green_bsp/drivers/src/altera_avalon_jtag_uart_ioctl.c @@ -0,0 +1,86 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include +#include +#include +#include + +#include + +#include "sys/ioctl.h" +#include "alt_types.h" + +#include "altera_avalon_jtag_uart_regs.h" +#include "altera_avalon_jtag_uart.h" + +#include "sys/alt_log_printf.h" + +#ifndef ALTERA_AVALON_JTAG_UART_SMALL + +/* ----------------------------------------------------------- */ +/* ------------------------- FAST DRIVER --------------------- */ +/* ----------------------------------------------------------- */ + +int +altera_avalon_jtag_uart_ioctl(altera_avalon_jtag_uart_state* sp, int req, + void* arg) +{ + int rc = -ENOTTY; + + switch (req) + { + case TIOCSTIMEOUT: + /* Set the time to wait until assuming host is not connected */ + if (sp->timeout != INT_MAX) + { + int timeout = *((int *)arg); + sp->timeout = (timeout >= 2 && timeout < INT_MAX) ? timeout : INT_MAX - 1; + rc = 0; + } + break; + + case TIOCGCONNECTED: + /* Find out whether host is connected */ + if (sp->timeout != INT_MAX) + { + *((int *)arg) = (sp->host_inactive < sp->timeout) ? 1 : 0; + rc = 0; + } + break; + + default: + break; + } + + return rc; +} + +#endif /* !ALTERA_AVALON_JTAG_UART_SMALL */ diff --git a/software/qsys_tutorial_green_bsp/drivers/src/altera_avalon_jtag_uart_read.c b/software/qsys_tutorial_green_bsp/drivers/src/altera_avalon_jtag_uart_read.c new file mode 100644 index 0000000..5657adb --- /dev/null +++ b/software/qsys_tutorial_green_bsp/drivers/src/altera_avalon_jtag_uart_read.c @@ -0,0 +1,205 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include +#include +#include +#include + +#include + +#include "sys/alt_irq.h" +#include "sys/alt_alarm.h" +#include "sys/ioctl.h" +#include "alt_types.h" + +#include "altera_avalon_jtag_uart_regs.h" +#include "altera_avalon_jtag_uart.h" + +#include "sys/alt_log_printf.h" + +#ifdef __ucosii__ +#include "includes.h" +#endif /* __ucosii__ */ + +#ifdef ALTERA_AVALON_JTAG_UART_SMALL + +/* ----------------------------------------------------------- */ +/* ----------------------- SMALL DRIVER ---------------------- */ +/* ----------------------------------------------------------- */ + +/* Read routine. The small version blocks until it has at least one byte + * available, it then returns as much as is immediately available without + * waiting any more. It's performance will be very poor without + * interrupts. + */ + +int +altera_avalon_jtag_uart_read(altera_avalon_jtag_uart_state* sp, + char* buffer, int space, int flags) +{ + unsigned int base = sp->base; + + char * ptr = buffer; + char * end = buffer + space; + + while (ptr < end) + { + unsigned int data = IORD_ALTERA_AVALON_JTAG_UART_DATA(base); + + if (data & ALTERA_AVALON_JTAG_UART_DATA_RVALID_MSK) + *ptr++ = (data & ALTERA_AVALON_JTAG_UART_DATA_DATA_MSK) >> ALTERA_AVALON_JTAG_UART_DATA_DATA_OFST; + else if (ptr != buffer) + break; + else if(flags & O_NONBLOCK) + break; + + } + + if (ptr != buffer) + return ptr - buffer; + else if (flags & O_NONBLOCK) + return -EWOULDBLOCK; + else + return -EIO; +} + +#else /* !ALTERA_AVALON_JTAG_UART_SMALL */ + +/* ----------------------------------------------------------- */ +/* ----------------------- FAST DRIVER ----------------------- */ +/* ----------------------------------------------------------- */ + +int +altera_avalon_jtag_uart_read(altera_avalon_jtag_uart_state* sp, + char * buffer, int space, int flags) +{ + char * ptr = buffer; + + alt_irq_context context; + unsigned int n; + + /* + * When running in a multi threaded environment, obtain the "read_lock" + * semaphore. This ensures that reading from the device is thread-safe. + */ + ALT_SEM_PEND (sp->read_lock, 0); + + while (space > 0) + { + unsigned int in, out; + + /* Read as much data as possible */ + do + { + in = sp->rx_in; + out = sp->rx_out; + + if (in >= out) + n = in - out; + else + n = ALTERA_AVALON_JTAG_UART_BUF_LEN - out; + + if (n == 0) + break; /* No more data available */ + + if (n > space) + n = space; + + memcpy(ptr, sp->rx_buf + out, n); + ptr += n; + space -= n; + + sp->rx_out = (out + n) % ALTERA_AVALON_JTAG_UART_BUF_LEN; + } + while (space > 0); + + /* If we read any data then return it */ + if (ptr != buffer) + break; + + /* If in non-blocking mode then return error */ + if (flags & O_NONBLOCK) + break; + +#ifdef __ucosii__ + /* OS Present: Pend on a flag if the OS is running, otherwise spin */ + if(OSRunning == OS_TRUE) { + /* + * When running in a multi-threaded mode, we pend on the read event + * flag set and timeout event flag set in the isr. This avoids wasting CPU + * cycles waiting in this thread, when we could be doing something more + * profitable elsewhere. + */ + ALT_FLAG_PEND (sp->events, + ALT_JTAG_UART_READ_RDY | ALT_JTAG_UART_TIMEOUT, + OS_FLAG_WAIT_SET_ANY + OS_FLAG_CONSUME, + 0); + } + else { + /* Spin until more data arrives or until host disconnects */ + while (in == sp->rx_in && sp->host_inactive < sp->timeout) + ; + } +#else + /* No OS: Always spin */ + while (in == sp->rx_in && sp->host_inactive < sp->timeout) + ; +#endif /* __ucosii__ */ + + if (in == sp->rx_in) + break; + } + + /* + * Now that access to the circular buffer is complete, release the read + * semaphore so that other threads can access the buffer. + */ + + ALT_SEM_POST (sp->read_lock); + + if (ptr != buffer) + { + /* If we read any data then there is space in the buffer so enable interrupts */ + context = alt_irq_disable_all(); + sp->irq_enable |= ALTERA_AVALON_JTAG_UART_CONTROL_RE_MSK; + IOWR_ALTERA_AVALON_JTAG_UART_CONTROL(sp->base, sp->irq_enable); + alt_irq_enable_all(context); + } + + if (ptr != buffer) + return ptr - buffer; + else if (flags & O_NONBLOCK) + return -EWOULDBLOCK; + else + return -EIO; +} + +#endif /* ALTERA_AVALON_JTAG_UART_SMALL */ diff --git a/software/qsys_tutorial_green_bsp/drivers/src/altera_avalon_jtag_uart_write.c b/software/qsys_tutorial_green_bsp/drivers/src/altera_avalon_jtag_uart_write.c new file mode 100644 index 0000000..11aeca1 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/drivers/src/altera_avalon_jtag_uart_write.c @@ -0,0 +1,217 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include +#include +#include +#include + +#include + +#include "sys/alt_irq.h" +#include "sys/alt_alarm.h" +#include "sys/ioctl.h" +#include "alt_types.h" + +#include "altera_avalon_jtag_uart_regs.h" +#include "altera_avalon_jtag_uart.h" + +#include "sys/alt_log_printf.h" + +#ifdef __ucosii__ +#include "includes.h" +#endif /* __ucosii__ */ + +#ifdef ALTERA_AVALON_JTAG_UART_SMALL + +/* ----------------------------------------------------------- */ +/* ------------------------ SMALL DRIVER --------------------- */ +/* ----------------------------------------------------------- */ + +/* Write routine. The small version blocks when there is no space to write + * into, so it's performance will be very bad if you are writing more than + * one FIFOs worth of data. But you said you didn't want to use interrupts :-) + */ + +int altera_avalon_jtag_uart_write(altera_avalon_jtag_uart_state* sp, + const char * ptr, int count, int flags) +{ + unsigned int base = sp->base; + + const char * end = ptr + count; + + while (ptr < end) + if ((IORD_ALTERA_AVALON_JTAG_UART_CONTROL(base) & ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_MSK) != 0) + IOWR_ALTERA_AVALON_JTAG_UART_DATA(base, *ptr++); + + return count; +} + +#else /* !ALTERA_AVALON_JTAG_UART_SMALL */ + +/* ----------------------------------------------------------- */ +/* ------------------------- FAST DRIVER --------------------- */ +/* ----------------------------------------------------------- */ + +int +altera_avalon_jtag_uart_write(altera_avalon_jtag_uart_state* sp, + const char * ptr, int count, int flags) +{ + /* Remove warning at optimisation level 03 by seting out to 0 */ + unsigned int in, out=0; + unsigned int n; + alt_irq_context context; + + const char * start = ptr; + + /* + * When running in a multi threaded environment, obtain the "write_lock" + * semaphore. This ensures that writing to the device is thread-safe. + */ + ALT_SEM_PEND (sp->write_lock, 0); + + do + { + /* Copy as much as we can into the transmit buffer */ + while (count > 0) + { + /* We need a stable value of the out pointer to calculate the space available */ + in = sp->tx_in; + out = sp->tx_out; + + if (in < out) + n = out - 1 - in; + else if (out > 0) + n = ALTERA_AVALON_JTAG_UART_BUF_LEN - in; + else + n = ALTERA_AVALON_JTAG_UART_BUF_LEN - 1 - in; + + if (n == 0) + break; + + if (n > count) + n = count; + + memcpy(sp->tx_buf + in, ptr, n); + ptr += n; + count -= n; + + sp->tx_in = (in + n) % ALTERA_AVALON_JTAG_UART_BUF_LEN; + } + + /* + * If interrupts are disabled then we could transmit here, we only need + * to enable interrupts if there is no space left in the FIFO + * + * For now kick the interrupt routine every time to make it transmit + * the data + */ + context = alt_irq_disable_all(); + sp->irq_enable |= ALTERA_AVALON_JTAG_UART_CONTROL_WE_MSK; + IOWR_ALTERA_AVALON_JTAG_UART_CONTROL(sp->base, sp->irq_enable); + alt_irq_enable_all(context); + + /* + * If there is any data left then either return now or block until + * some has been sent + */ + /* consider: test whether there is anything there while doing this and delay for at most 2s. */ + if (count > 0) + { + if (flags & O_NONBLOCK) + break; + +#ifdef __ucosii__ + /* OS Present: Pend on a flag if the OS is running, otherwise spin */ + if(OSRunning == OS_TRUE) { + /* + * When running in a multi-threaded mode, we pend on the write event + * flag set or the timeout flag in the isr. This avoids wasting CPU + * cycles waiting in this thread, when we could be doing something + * more profitable elsewhere. + */ +#ifdef ALTERA_AVALON_JTAG_UART_IGNORE_FIFO_FULL_ERROR + if(!sp->host_inactive) +#endif + ALT_FLAG_PEND (sp->events, + ALT_JTAG_UART_WRITE_RDY | ALT_JTAG_UART_TIMEOUT, + OS_FLAG_WAIT_SET_ANY + OS_FLAG_CONSUME, + 0); + } + else { + /* + * OS not running: Wait for data to be removed from buffer. + * Once the interrupt routine has removed some data then we + * will be able to insert some more. + */ + while (out == sp->tx_out && sp->host_inactive < sp->timeout) + ; + } +#else + /* + * No OS present: Always wait for data to be removed from buffer. Once + * the interrupt routine has removed some data then we will be able to + * insert some more. + */ + while (out == sp->tx_out && sp->host_inactive < sp->timeout) + ; +#endif /* __ucosii__ */ + + if (out == sp->tx_out) + break; + } + } + while (count > 0); + + /* + * Now that access to the circular buffer is complete, release the write + * semaphore so that other threads can access the buffer. + */ + ALT_SEM_POST (sp->write_lock); + + if (ptr != start) + return ptr - start; + else if (flags & O_NONBLOCK) + return -EWOULDBLOCK; +#ifdef ALTERA_AVALON_JTAG_UART_IGNORE_FIFO_FULL_ERROR + else if (sp->host_inactive >= sp->timeout) { + /* + * Reset the software FIFO, hardware FIFO could not be reset. + * Just throw away characters without reporting error. + */ + sp->tx_out = sp->tx_in = 0; + return ptr - start + count; + } +#endif + else + return -EIO; /* Host not connected */ +} + +#endif /* ALTERA_AVALON_JTAG_UART_SMALL */ diff --git a/software/qsys_tutorial_green_bsp/libhal_bsp.a b/software/qsys_tutorial_green_bsp/libhal_bsp.a new file mode 100644 index 0000000..1879aa9 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/libhal_bsp.a Binary files differ diff --git a/software/qsys_tutorial_green_bsp/linker.h b/software/qsys_tutorial_green_bsp/linker.h new file mode 100644 index 0000000..9e03bbf --- /dev/null +++ b/software/qsys_tutorial_green_bsp/linker.h @@ -0,0 +1,101 @@ +/* + * linker.h - Linker script mapping information + * + * Machine generated for CPU 'nios2_processor' in SOPC Builder design 'nios_system' + * SOPC Builder design path: C:/Users/takayun/Desktop/qsys_tutorial/nios_system.sopcinfo + * + * Generated: Thu Oct 27 10:41:20 JST 2016 + */ + +/* + * DO NOT MODIFY THIS FILE + * + * Changing this file will have subtle consequences + * which will almost certainly lead to a nonfunctioning + * system. If you do modify this file, be aware that your + * changes will be overwritten and lost when this file + * is generated again. + * + * DO NOT MODIFY THIS FILE + */ + +/* + * License Agreement + * + * Copyright (c) 2008 + * Altera Corporation, San Jose, California, USA. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + * This agreement shall be governed in all respects by the laws of the State + * of California and by the laws of the United States of America. + */ + +#ifndef __LINKER_H_ +#define __LINKER_H_ + + +/* + * BSP controls alt_load() behavior in crt0. + * + */ + +#define ALT_LOAD_EXPLICITLY_CONTROLLED + + +/* + * Base address and span (size in bytes) of each linker region + * + */ + +#define ONCHIP_MEMORY_REGION_BASE 0x20 +#define ONCHIP_MEMORY_REGION_SPAN 4064 +#define RESET_REGION_BASE 0x0 +#define RESET_REGION_SPAN 32 + + +/* + * Devices associated with code sections + * + */ + +#define ALT_EXCEPTIONS_DEVICE ONCHIP_MEMORY +#define ALT_RESET_DEVICE ONCHIP_MEMORY +#define ALT_RODATA_DEVICE ONCHIP_MEMORY +#define ALT_RWDATA_DEVICE ONCHIP_MEMORY +#define ALT_TEXT_DEVICE ONCHIP_MEMORY + + +/* + * Initialization code at the reset address is allowed (e.g. no external bootloader). + * + */ + +#define ALT_ALLOW_CODE_AT_RESET + + +/* + * The alt_load() facility is called from crt0 to copy sections into RAM. + * + */ + +#define ALT_LOAD_COPY_RWDATA + +#endif /* __LINKER_H_ */ diff --git a/software/qsys_tutorial_green_bsp/linker.x b/software/qsys_tutorial_green_bsp/linker.x new file mode 100644 index 0000000..ab70655 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/linker.x @@ -0,0 +1,385 @@ +/* + * linker.x - Linker script + * + * Machine generated for CPU 'nios2_processor' in SOPC Builder design 'nios_system' + * SOPC Builder design path: C:/Users/takayun/Desktop/qsys_tutorial/nios_system.sopcinfo + * + * Generated: Thu Oct 27 10:41:20 JST 2016 + */ + +/* + * DO NOT MODIFY THIS FILE + * + * Changing this file will have subtle consequences + * which will almost certainly lead to a nonfunctioning + * system. If you do modify this file, be aware that your + * changes will be overwritten and lost when this file + * is generated again. + * + * DO NOT MODIFY THIS FILE + */ + +/* + * License Agreement + * + * Copyright (c) 2008 + * Altera Corporation, San Jose, California, USA. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + * This agreement shall be governed in all respects by the laws of the State + * of California and by the laws of the United States of America. + */ + +MEMORY +{ + reset : ORIGIN = 0x0, LENGTH = 32 + onchip_memory : ORIGIN = 0x20, LENGTH = 4064 +} + +/* Define symbols for each memory base-address */ +__alt_mem_onchip_memory = 0x0; + +OUTPUT_FORMAT( "elf32-littlenios2", + "elf32-littlenios2", + "elf32-littlenios2" ) +OUTPUT_ARCH( nios2 ) +ENTRY( _start ) + +/* + * The alt_load() facility is enabled. This typically happens when there isn't + * an external bootloader (e.g. flash bootloader). + * The LMA (aka physical address) of each loaded section is + * set to the .text memory device. + * The HAL alt_load() routine called from crt0 copies sections from + * the .text memory to RAM as needed. + */ + +SECTIONS +{ + + /* + * Output sections associated with reset and exceptions (they have to be first) + */ + + .entry : + { + KEEP (*(.entry)) + } > reset + + .exceptions : + { + PROVIDE (__ram_exceptions_start = ABSOLUTE(.)); + . = ALIGN(0x20); + KEEP (*(.irq)); + KEEP (*(.exceptions.entry.label)); + KEEP (*(.exceptions.entry.user)); + KEEP (*(.exceptions.entry)); + KEEP (*(.exceptions.irqtest.user)); + KEEP (*(.exceptions.irqtest)); + KEEP (*(.exceptions.irqhandler.user)); + KEEP (*(.exceptions.irqhandler)); + KEEP (*(.exceptions.irqreturn.user)); + KEEP (*(.exceptions.irqreturn)); + KEEP (*(.exceptions.notirq.label)); + KEEP (*(.exceptions.notirq.user)); + KEEP (*(.exceptions.notirq)); + KEEP (*(.exceptions.soft.user)); + KEEP (*(.exceptions.soft)); + KEEP (*(.exceptions.unknown.user)); + KEEP (*(.exceptions.unknown)); + KEEP (*(.exceptions.exit.label)); + KEEP (*(.exceptions.exit.user)); + KEEP (*(.exceptions.exit)); + KEEP (*(.exceptions)); + PROVIDE (__ram_exceptions_end = ABSOLUTE(.)); + } > onchip_memory + + PROVIDE (__flash_exceptions_start = LOADADDR(.exceptions)); + + .text : + { + /* + * All code sections are merged into the text output section, along with + * the read only data sections. + * + */ + + PROVIDE (stext = ABSOLUTE(.)); + + *(.interp) + *(.hash) + *(.dynsym) + *(.dynstr) + *(.gnu.version) + *(.gnu.version_d) + *(.gnu.version_r) + *(.rel.init) + *(.rela.init) + *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) + *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) + *(.rel.fini) + *(.rela.fini) + *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) + *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) + *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) + *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) + *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) + *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) + *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) + *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) + *(.rel.ctors) + *(.rela.ctors) + *(.rel.dtors) + *(.rela.dtors) + *(.rel.got) + *(.rela.got) + *(.rel.sdata .rel.sdata.* .rel.gnu.linkonce.s.*) + *(.rela.sdata .rela.sdata.* .rela.gnu.linkonce.s.*) + *(.rel.sbss .rel.sbss.* .rel.gnu.linkonce.sb.*) + *(.rela.sbss .rela.sbss.* .rela.gnu.linkonce.sb.*) + *(.rel.sdata2 .rel.sdata2.* .rel.gnu.linkonce.s2.*) + *(.rela.sdata2 .rela.sdata2.* .rela.gnu.linkonce.s2.*) + *(.rel.sbss2 .rel.sbss2.* .rel.gnu.linkonce.sb2.*) + *(.rela.sbss2 .rela.sbss2.* .rela.gnu.linkonce.sb2.*) + *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) + *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) + *(.rel.plt) + *(.rela.plt) + *(.rel.dyn) + + KEEP (*(.init)) + *(.plt) + *(.text .stub .text.* .gnu.linkonce.t.*) + + /* .gnu.warning sections are handled specially by elf32.em. */ + + *(.gnu.warning.*) + KEEP (*(.fini)) + PROVIDE (__etext = ABSOLUTE(.)); + PROVIDE (_etext = ABSOLUTE(.)); + PROVIDE (etext = ABSOLUTE(.)); + + *(.eh_frame_hdr) + /* Ensure the __preinit_array_start label is properly aligned. We + could instead move the label definition inside the section, but + the linker would then create the section even if it turns out to + be empty, which isn't pretty. */ + . = ALIGN(4); + PROVIDE (__preinit_array_start = ABSOLUTE(.)); + *(.preinit_array) + PROVIDE (__preinit_array_end = ABSOLUTE(.)); + PROVIDE (__init_array_start = ABSOLUTE(.)); + *(.init_array) + PROVIDE (__init_array_end = ABSOLUTE(.)); + PROVIDE (__fini_array_start = ABSOLUTE(.)); + *(.fini_array) + PROVIDE (__fini_array_end = ABSOLUTE(.)); + SORT(CONSTRUCTORS) + KEEP (*(.eh_frame)) + *(.gcc_except_table) + *(.dynamic) + PROVIDE (__CTOR_LIST__ = ABSOLUTE(.)); + KEEP (*(.ctors)) + KEEP (*(SORT(.ctors.*))) + PROVIDE (__CTOR_END__ = ABSOLUTE(.)); + PROVIDE (__DTOR_LIST__ = ABSOLUTE(.)); + KEEP (*(.dtors)) + KEEP (*(SORT(.dtors.*))) + PROVIDE (__DTOR_END__ = ABSOLUTE(.)); + KEEP (*(.jcr)) + . = ALIGN(4); + } > onchip_memory = 0x3a880100 /* Nios II NOP instruction */ + + .rodata : + { + PROVIDE (__ram_rodata_start = ABSOLUTE(.)); + . = ALIGN(4); + *(.rodata .rodata.* .gnu.linkonce.r.*) + *(.rodata1) + . = ALIGN(4); + PROVIDE (__ram_rodata_end = ABSOLUTE(.)); + } > onchip_memory + + PROVIDE (__flash_rodata_start = LOADADDR(.rodata)); + + /* + * + * This section's LMA is set to the .text region. + * crt0 will copy to this section's specified mapped region virtual memory address (VMA) + * + * .rwdata region equals the .text region, and is set to be loaded into .text region. + * This requires two copies of .rwdata in the .text region. One read writable at VMA. + * and one read-only at LMA. crt0 will copy from LMA to VMA on reset + * + */ + + .rwdata LOADADDR (.rodata) + SIZEOF (.rodata) : AT ( LOADADDR (.rodata) + SIZEOF (.rodata)+ SIZEOF (.rwdata) ) + { + PROVIDE (__ram_rwdata_start = ABSOLUTE(.)); + . = ALIGN(4); + *(.got.plt) *(.got) + *(.data1) + *(.data .data.* .gnu.linkonce.d.*) + + _gp = ABSOLUTE(. + 0x8000); + PROVIDE(gp = _gp); + + *(.rwdata .rwdata.*) + *(.sdata .sdata.* .gnu.linkonce.s.*) + *(.sdata2 .sdata2.* .gnu.linkonce.s2.*) + + . = ALIGN(4); + _edata = ABSOLUTE(.); + PROVIDE (edata = ABSOLUTE(.)); + PROVIDE (__ram_rwdata_end = ABSOLUTE(.)); + } > onchip_memory + + PROVIDE (__flash_rwdata_start = LOADADDR(.rwdata)); + + /* + * + * This section's LMA is set to the .text region. + * crt0 will copy to this section's specified mapped region virtual memory address (VMA) + * + */ + + .bss LOADADDR (.rwdata) + SIZEOF (.rwdata) : AT ( LOADADDR (.rwdata) + SIZEOF (.rwdata) ) + { + __bss_start = ABSOLUTE(.); + PROVIDE (__sbss_start = ABSOLUTE(.)); + PROVIDE (___sbss_start = ABSOLUTE(.)); + + *(.dynsbss) + *(.sbss .sbss.* .gnu.linkonce.sb.*) + *(.sbss2 .sbss2.* .gnu.linkonce.sb2.*) + *(.scommon) + + PROVIDE (__sbss_end = ABSOLUTE(.)); + PROVIDE (___sbss_end = ABSOLUTE(.)); + + *(.dynbss) + *(.bss .bss.* .gnu.linkonce.b.*) + *(COMMON) + + . = ALIGN(4); + __bss_end = ABSOLUTE(.); + } > onchip_memory + + /* + * + * One output section mapped to the associated memory device for each of + * the available memory devices. These are not used by default, but can + * be used by user applications by using the .section directive. + * + * The output section used for the heap is treated in a special way, + * i.e. the symbols "end" and "_end" are added to point to the heap start. + * + * Because alt_load() is enabled, these sections have + * their LMA set to be loaded into the .text memory region. + * However, the alt_load() code will NOT automatically copy + * these sections into their mapped memory region. + * + */ + + /* + * + * This section's LMA is set to the .text region. + * crt0 will copy to this section's specified mapped region virtual memory address (VMA) + * + */ + + .onchip_memory LOADADDR (.bss) + SIZEOF (.bss) : AT ( LOADADDR (.bss) + SIZEOF (.bss) ) + { + PROVIDE (_alt_partition_onchip_memory_start = ABSOLUTE(.)); + *(.onchip_memory. onchip_memory.*) + . = ALIGN(4); + PROVIDE (_alt_partition_onchip_memory_end = ABSOLUTE(.)); + _end = ABSOLUTE(.); + end = ABSOLUTE(.); + __alt_stack_base = ABSOLUTE(.); + } > onchip_memory + + PROVIDE (_alt_partition_onchip_memory_load_addr = LOADADDR(.onchip_memory)); + + /* + * Stabs debugging sections. + * + */ + + .stab 0 : { *(.stab) } + .stabstr 0 : { *(.stabstr) } + .stab.excl 0 : { *(.stab.excl) } + .stab.exclstr 0 : { *(.stab.exclstr) } + .stab.index 0 : { *(.stab.index) } + .stab.indexstr 0 : { *(.stab.indexstr) } + .comment 0 : { *(.comment) } + /* DWARF debug sections. + Symbols in the DWARF debugging sections are relative to the beginning + of the section so we begin them at 0. */ + /* DWARF 1 */ + .debug 0 : { *(.debug) } + .line 0 : { *(.line) } + /* GNU DWARF 1 extensions */ + .debug_srcinfo 0 : { *(.debug_srcinfo) } + .debug_sfnames 0 : { *(.debug_sfnames) } + /* DWARF 1.1 and DWARF 2 */ + .debug_aranges 0 : { *(.debug_aranges) } + .debug_pubnames 0 : { *(.debug_pubnames) } + /* DWARF 2 */ + .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } + .debug_abbrev 0 : { *(.debug_abbrev) } + .debug_line 0 : { *(.debug_line) } + .debug_frame 0 : { *(.debug_frame) } + .debug_str 0 : { *(.debug_str) } + .debug_loc 0 : { *(.debug_loc) } + .debug_macinfo 0 : { *(.debug_macinfo) } + /* SGI/MIPS DWARF 2 extensions */ + .debug_weaknames 0 : { *(.debug_weaknames) } + .debug_funcnames 0 : { *(.debug_funcnames) } + .debug_typenames 0 : { *(.debug_typenames) } + .debug_varnames 0 : { *(.debug_varnames) } + + /* Altera debug extensions */ + .debug_alt_sim_info 0 : { *(.debug_alt_sim_info) } +} + +/* provide a pointer for the stack */ + +/* + * Don't override this, override the __alt_stack_* symbols instead. + */ +__alt_data_end = 0x1000; + +/* + * The next two symbols define the location of the default stack. You can + * override them to move the stack to a different memory. + */ +PROVIDE( __alt_stack_pointer = __alt_data_end ); +PROVIDE( __alt_stack_limit = __alt_stack_base ); + +/* + * This symbol controls where the start of the heap is. If the stack is + * contiguous with the heap then the stack will contract as memory is + * allocated to the heap. + * Override this symbol to put the heap in a different memory. + */ +PROVIDE( __alt_heap_start = end ); +PROVIDE( __alt_heap_limit = 0x1000 ); diff --git a/software/qsys_tutorial_green_bsp/mem_init.mk b/software/qsys_tutorial_green_bsp/mem_init.mk new file mode 100644 index 0000000..4caaef9 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/mem_init.mk @@ -0,0 +1,322 @@ + +######################################################################### +####### M E M I N I T M A K E F I L E C O N T E N T ###### +######################################################################### + +######################################################################### +# This file is intended to be included by public.mk +# +# +# The following variables must be defined before including this file: +# - ELF +# +# The following variables may be defined to override the default behavior: +# - HDL_SIM_DIR +# - HDL_SIM_INSTALL_DIR +# - MEM_INIT_DIR +# - MEM_INIT_INSTALL_DIR +# - QUARTUS_PROJECT_DIR +# - SOPC_NAME +# - SIM_OPTIMIZE +# - RESET_ADDRESS +# +######################################################################### + +ifeq ($(MEM_INIT_FILE),) +# MEM_INIT_FILE should be set equal to the working relative path to this +# mem_init.mk makefile fragment +MEM_INIT_FILE := $(wildcard $(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST))) +endif + +ifeq ($(ELF2DAT),) +ELF2DAT := elf2dat +endif + +ifeq ($(ELF2HEX),) +ELF2HEX := elf2hex +endif + +ifeq ($(ELF2FLASH),) +ELF2FLASH := elf2flash +endif + +ifeq ($(FLASH2DAT),) +FLASH2DAT := flash2dat +endif + +ifeq ($(NM),) +NM := nios2-elf-nm +endif + +ifeq ($(MKDIR),) +MKDIR := mkdir -p +endif + +ifeq ($(RM),) +RM := rm -f +endif + +ifeq ($(CP),) +CP := cp +endif + +ifeq ($(ECHO),) +ECHO := echo +endif + +MEM_INIT_DIR ?= mem_init +HDL_SIM_DIR ?= $(MEM_INIT_DIR)/hdl_sim + +ifdef QUARTUS_PROJECT_DIR +MEM_INIT_INSTALL_DIR ?= $(patsubst %/,%,$(QUARTUS_PROJECT_DIR)) +ifdef SOPC_NAME +HDL_SIM_INSTALL_DIR ?= $(patsubst %/,%,$(QUARTUS_PROJECT_DIR))/$(SOPC_NAME)_sim +endif +endif + +MEM_INIT_DESCRIPTOR_FILE ?= $(MEM_INIT_DIR)/meminit.spd + +MEM_INIT_QIP_FILE ?= $(MEM_INIT_DIR)/meminit.qip + +#------------------------------------- +# Default Flash Boot Loaders +#------------------------------------- + +BOOT_LOADER_PATH ?= $(SOPC_KIT_NIOS2)/components/altera_nios2 +BOOT_LOADER_CFI ?= $(BOOT_LOADER_PATH)/boot_loader_cfi.srec +BOOT_LOADER_CFI_BE ?= $(BOOT_LOADER_PATH)/boot_loader_cfi_be.srec + + +#------------------------------------- +# Default Target +#------------------------------------- + +.PHONY: default_mem_init +ifeq ($(QSYS),1) +default_mem_init: mem_init_generate +else +default_mem_init: mem_init_install +endif +#------------------------------------- +# Runtime Macros +#------------------------------------- + +define post-process-info + @echo Post-processing to create $@... +endef + +target_stem = $(notdir $(basename $@)) + +mem_start_address = $($(target_stem)_START) +mem_end_address = $($(target_stem)_END) +mem_width = $($(target_stem)_WIDTH) +mem_endianness = $($(target_stem)_ENDIANNESS) +mem_create_lanes = $($(target_stem)_CREATE_LANES) + +mem_pad_flag = $($(target_stem)_PAD_FLAG) +mem_reloc_input_flag = $($(target_stem)_RELOC_INPUT_FLAG) +mem_no_zero_fill_flag = $($(target_stem)_NO_ZERO_FILL_FLAG) + +flash_mem_epcs_flag = $($(target_stem)_EPCS_FLAGS) +flash_mem_cfi_flag = $($(target_stem)_CFI_FLAGS) +flash_mem_boot_loader_flag = $($(target_stem)_BOOT_LOADER_FLAG) + +elf2dat_extra_args = $(mem_pad_flag) +elf2hex_extra_args = $(mem_no_zero_fill_flag) +elf2flash_extra_args = $(flash_mem_cfi_flag) $(flash_mem_epcs_flag) $(flash_mem_boot_loader_flag) +flash2dat_extra_args = $(mem_pad_flag) $(mem_reloc_input_flag) + +#------------------------------------------------------------------------------ +# BSP SPECIFIC CONTENT +# +# The content below is controlled by the BSP and SOPC System +#------------------------------------------------------------------------------ +#START OF BSP SPECIFIC + +#------------------------------------- +# Global Settings +#------------------------------------- + + +# The following TYPE comment allows tools to identify the 'type' of target this +# makefile is associated with. +# TYPE: BSP_MEMINIT_MAKEFILE + +# This following VERSION comment indicates the version of the tool used to +# generate this makefile. A makefile variable is provided for VERSION as well. +# ACDS_VERSION: 13.0sp1 +ACDS_VERSION := 13.0sp1 + +# This following BUILD_NUMBER comment indicates the build number of the tool +# used to generate this makefile. +# BUILD_NUMBER: 232 + +# Optimize for simulation +SIM_OPTIMIZE ?= 0 + +# The CPU reset address as needed by elf2flash +RESET_ADDRESS ?= 0x00000000 + +#------------------------------------- +# Pre-Initialized Memory Descriptions +#------------------------------------- + +# Memory: onchip_memory +MEM_0 := nios_system_onchip_memory +$(MEM_0)_NAME := onchip_memory +$(MEM_0)_MEM_INIT_FILE_PARAM_NAME := INIT_FILE +HEX_FILES += $(MEM_INIT_DIR)/$(MEM_0).hex +MEM_INIT_INSTALL_FILES += $(MEM_INIT_INSTALL_DIR)/$(MEM_0).hex +DAT_FILES += $(HDL_SIM_DIR)/$(MEM_0).dat +HDL_SIM_INSTALL_FILES += $(HDL_SIM_INSTALL_DIR)/$(MEM_0).dat +SYM_FILES += $(HDL_SIM_DIR)/$(MEM_0).sym +HDL_SIM_INSTALL_FILES += $(HDL_SIM_INSTALL_DIR)/$(MEM_0).sym +$(MEM_0)_START := 0x00000000 +$(MEM_0)_END := 0x00000fff +$(MEM_0)_HIERARCHICAL_PATH := onchip_memory +$(MEM_0)_WIDTH := 32 +$(MEM_0)_ENDIANNESS := --little-endian-mem +$(MEM_0)_CREATE_LANES := 0 + +.PHONY: onchip_memory +onchip_memory: check_elf_exists $(MEM_INIT_DIR)/$(MEM_0).hex $(HDL_SIM_DIR)/$(MEM_0).dat $(HDL_SIM_DIR)/$(MEM_0).sym + + +#END OF BSP SPECIFIC + +#------------------------------------- +# Pre-Initialized Memory Targets +#------------------------------------- + +.PHONY: mem_init_install mem_init_generate mem_init_clean + +ifeq ($(QSYS),1) +# Target mem_init_install is deprecated for QSys based systems +# To initialize onchip memories for Quartus II Synthesis with Qsys based systems: +# 1) Use "make mem_init_genearate" +# 2) Add the generated mem_init/meminit.qip file to your Quartus II Project +# +mem_init_install: + $(error Deprecated Makefile Target: '$@'. Use target 'mem_init_generate' and then add $(MEM_INIT_QIP_FILE) to your Quartus II Project) + +else # QSYS != 1, if SopcBuilder based system + +ifneq ($(MEM_INIT_INSTALL_DIR),) +mem_init_install: $(MEM_INIT_INSTALL_FILES) +endif + +ifneq ($(HDL_SIM_INSTALL_DIR),) +mem_init_install: $(HDL_SIM_INSTALL_FILES) +endif + +mem_init_install: mem_init_generate +ifeq ($(MEM_INIT_INSTALL_DIR),) + @echo "WARNING: MEM_INIT_INSTALL_DIR not set. Set your QUARTUS_PROJECT_DIR environment variable." +endif +ifeq ($(HDL_SIM_INSTALL_DIR),) + @echo "WARNING: HDL_SIM_INSTALL_DIR not set. Set your QUARTUS_PROJECT_DIR and SOPC_NAME environment variable." +endif + +$(MEM_INIT_INSTALL_FILES): $(MEM_INIT_INSTALL_DIR)/%: $(MEM_INIT_DIR)/% + @$(MKDIR) $(@D) + @$(CP) -v $< $@ + +$(HDL_SIM_INSTALL_FILES): $(HDL_SIM_INSTALL_DIR)/%: $(HDL_SIM_DIR)/% + @$(MKDIR) $(@D) + @$(CP) -v $< $@ + +endif # QSYS == 1 + + +mem_init_generate: hex dat sym flash $(MEM_INIT_DESCRIPTOR_FILE) $(MEM_INIT_QIP_FILE) + +mem_init_clean: + @$(RM) -r $(MEM_INIT_DIR) $(HDL_SIM_DIR) $(FLASH_FILES) + +.PHONY: hex dat sym flash + +hex: check_elf_exists $(HEX_FILES) + +dat: check_elf_exists $(DAT_FILES) + +sym: check_elf_exists $(SYM_FILES) + +flash: check_elf_exists $(FLASH_FILES) + +#------------------------------------- +# Pre-Initialized Memory Rules +#------------------------------------- + +.PHONY: check_elf_exists +check_elf_exists: $(ELF) +ifeq ($(ELF),) + $(error ELF var not set in mem_init.mk) +endif + +$(filter-out $(FLASH_DAT_FILES),$(DAT_FILES)): %.dat: $(ELF) + $(post-process-info) + @$(MKDIR) $(@D) + bash -c '$(ELF2DAT) --infile=$< --outfile=$@ \ + --base=$(mem_start_address) --end=$(mem_end_address) --width=$(mem_width) \ + $(mem_endianness) --create-lanes=$(mem_create_lanes) $(elf2dat_extra_args)' + +$(foreach i,0 1 2 3 4 5 6 7,%_lane$(i).dat): %.dat + @true + +$(HEX_FILES): %.hex: $(ELF) + $(post-process-info) + @$(MKDIR) $(@D) + bash -c '$(ELF2HEX) $< $(mem_start_address) $(mem_end_address) --width=$(mem_width) \ + $(mem_endianness) --create-lanes=$(mem_create_lanes) $(elf2hex_extra_args) $@' + +$(SYM_FILES): %.sym: $(ELF) + $(post-process-info) + @$(MKDIR) $(@D) + $(NM) -n $< > $@ + +$(FLASH_FILES): %.flash: $(ELF) + $(post-process-info) + @$(MKDIR) $(@D) + bash -c '$(ELF2FLASH) --input=$< --outfile=$@ --sim_optimize=$(SIM_OPTIMIZE) $(mem_endianness) \ + $(elf2flash_extra_args)' + +# +# Function generate_spd_entry +# Arg1: path to the memory initialization file +# Arg2: Type HEX or DAT +# Arg3: Output spd file to append +gen_spd_entry.BASE_FILE = $(basename $(notdir $1)) +gen_spd_entry.PARAM_NAME = $($(gen_spd_entry.BASE_FILE)_MEM_INIT_FILE_PARAM_NAME) +gen_spd_entry.MEM_PATH = $($(gen_spd_entry.BASE_FILE)_HIERARCHICAL_PATH) +gen_spd_entry.SETTINGS = $(strip \ + path=\"$1\" \ + type=\"$2\" \ + $(if $(gen_spd_entry.PARAM_NAME),initParamName=\"$(gen_spd_entry.PARAM_NAME)\") \ + $(if $(gen_spd_entry.MEM_PATH),memoryPath=\"$(gen_spd_entry.MEM_PATH)\") \ +) +define gen_spd_entry +$(ECHO) "" >> $3 +endef + +$(MEM_INIT_DESCRIPTOR_FILE).DAT_FILESET := $(patsubst $(dir $(MEM_INIT_DESCRIPTOR_FILE))%,%,$(DAT_FILES)) +$(MEM_INIT_DESCRIPTOR_FILE).HEX_FILESET := $(patsubst $(dir $(MEM_INIT_DESCRIPTOR_FILE))%,%,$(HEX_FILES)) + +$(MEM_INIT_DESCRIPTOR_FILE): %.spd: $(MEM_INIT_FILE) + $(post-process-info) + @$(MKDIR) $(@D) + @$(RM) $@ + @$(ECHO) "" > $@ + @$(ECHO) "" >> $@ + @$(foreach dat_file,$($@.DAT_FILESET),$(call gen_spd_entry,$(dat_file),DAT,$@) &&)true + @$(foreach hex_file,$($@.HEX_FILESET),$(call gen_spd_entry,$(hex_file),HEX,$@) &&)true + @$(ECHO) "" >> $@ + +.DELETE_ON_ERROR: $(MEM_INIT_DESCRIPTOR_FILE) + +$(MEM_INIT_QIP_FILE): %.qip: $(MEM_INIT_FILE) + $(post-process-info) + @$(MKDIR) $(@D) + @$(RM) $@ + @$(ECHO) "set_global_assignment -name SEARCH_PATH $$::quartus(qip_path)" > $@ + +.DELETE_ON_ERROR: $(MEM_INIT_QIP_FILE) diff --git a/software/qsys_tutorial_green_bsp/memory.gdb b/software/qsys_tutorial_green_bsp/memory.gdb new file mode 100644 index 0000000..d86c8e4 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/memory.gdb @@ -0,0 +1,50 @@ +# memory.gdb - GDB memory region definitions +# +# Machine generated for CPU 'nios2_processor' in SOPC Builder design 'nios_system' +# SOPC Builder design path: C:/Users/takayun/Desktop/qsys_tutorial/nios_system.sopcinfo +# +# Generated: Thu Oct 27 10:41:20 JST 2016 + +# DO NOT MODIFY THIS FILE +# +# Changing this file will have subtle consequences +# which will almost certainly lead to a nonfunctioning +# system. If you do modify this file, be aware that your +# changes will be overwritten and lost when this file +# is generated again. +# +# DO NOT MODIFY THIS FILE + +# License Agreement +# +# Copyright (c) 2008 +# Altera Corporation, San Jose, California, USA. +# All rights reserved. +# +# Permission is hereby granted, free of charge, to any person obtaining a +# copy of this software and associated documentation files (the "Software"), +# to deal in the Software without restriction, including without limitation +# the rights to use, copy, modify, merge, publish, distribute, sublicense, +# and/or sell copies of the Software, and to permit persons to whom the +# Software is furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +# DEALINGS IN THE SOFTWARE. +# +# This agreement shall be governed in all respects by the laws of the State +# of California and by the laws of the United States of America. + +# Define memory regions for each memory connected to the CPU. +# The cache attribute is specified which improves GDB performance +# by allowing GDB to cache memory contents on the host. + +# onchip_memory +memory 0x0 0x1000 cache diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_alarm_start.d b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_alarm_start.d new file mode 100644 index 0000000..3bb20ea --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_alarm_start.d @@ -0,0 +1,22 @@ +obj/HAL/src/alt_alarm_start.o: HAL/src/alt_alarm_start.c \ + HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ + HAL/inc/priv/alt_alarm.h HAL/inc/alt_types.h HAL/inc/sys/alt_irq.h \ + HAL/inc/nios2.h system.h linker.h + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +system.h: + +linker.h: diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_alarm_start.o b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_alarm_start.o new file mode 100644 index 0000000..0d59a0b --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_alarm_start.o Binary files differ diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_busy_sleep.d b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_busy_sleep.d new file mode 100644 index 0000000..e93e80c --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_busy_sleep.d @@ -0,0 +1,10 @@ +obj/HAL/src/alt_busy_sleep.o: HAL/src/alt_busy_sleep.c system.h linker.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_busy_sleep.h + +system.h: + +linker.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_busy_sleep.h: diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_busy_sleep.o b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_busy_sleep.o new file mode 100644 index 0000000..e19b862 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_busy_sleep.o Binary files differ diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_close.d b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_close.d new file mode 100644 index 0000000..fbbab9c --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_close.d @@ -0,0 +1,34 @@ +obj/HAL/src/alt_close.o: HAL/src/alt_close.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h HAL/inc/priv/alt_file.h \ + HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h \ + HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_close.o b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_close.o new file mode 100644 index 0000000..7316d21 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_close.o Binary files differ diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_dcache_flush.d b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_dcache_flush.d new file mode 100644 index 0000000..a0eaf8a --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_dcache_flush.d @@ -0,0 +1,15 @@ +obj/HAL/src/alt_dcache_flush.o: HAL/src/alt_dcache_flush.c \ + HAL/inc/nios2.h system.h linker.h HAL/inc/alt_types.h \ + HAL/inc/sys/alt_cache.h HAL/inc/alt_types.h + +HAL/inc/nios2.h: + +system.h: + +linker.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_cache.h: + +HAL/inc/alt_types.h: diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_dcache_flush.o b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_dcache_flush.o new file mode 100644 index 0000000..e797e0c --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_dcache_flush.o Binary files differ diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_dcache_flush_all.d b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_dcache_flush_all.d new file mode 100644 index 0000000..792c3e4 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_dcache_flush_all.d @@ -0,0 +1,15 @@ +obj/HAL/src/alt_dcache_flush_all.o: HAL/src/alt_dcache_flush_all.c \ + HAL/inc/nios2.h system.h linker.h HAL/inc/alt_types.h \ + HAL/inc/sys/alt_cache.h HAL/inc/alt_types.h + +HAL/inc/nios2.h: + +system.h: + +linker.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_cache.h: + +HAL/inc/alt_types.h: diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_dcache_flush_all.o b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_dcache_flush_all.o new file mode 100644 index 0000000..eaf231e --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_dcache_flush_all.o Binary files differ diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_dcache_flush_no_writeback.d b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_dcache_flush_no_writeback.d new file mode 100644 index 0000000..867c42b --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_dcache_flush_no_writeback.d @@ -0,0 +1,16 @@ +obj/HAL/src/alt_dcache_flush_no_writeback.o: \ + HAL/src/alt_dcache_flush_no_writeback.c HAL/inc/nios2.h system.h \ + linker.h HAL/inc/alt_types.h HAL/inc/sys/alt_cache.h \ + HAL/inc/alt_types.h + +HAL/inc/nios2.h: + +system.h: + +linker.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_cache.h: + +HAL/inc/alt_types.h: diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_dcache_flush_no_writeback.o b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_dcache_flush_no_writeback.o new file mode 100644 index 0000000..c80140f --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_dcache_flush_no_writeback.o Binary files differ diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_dev.d b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_dev.d new file mode 100644 index 0000000..cd9b1d4 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_dev.d @@ -0,0 +1,34 @@ +obj/HAL/src/alt_dev.o: HAL/src/alt_dev.c HAL/inc/sys/alt_dev.h system.h \ + linker.h HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h \ + HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h HAL/inc/alt_types.h \ + system.h + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/alt_types.h: + +system.h: diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_dev.o b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_dev.o new file mode 100644 index 0000000..8e66630 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_dev.o Binary files differ diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_dev_llist_insert.d b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_dev_llist_insert.d new file mode 100644 index 0000000..344d065 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_dev_llist_insert.d @@ -0,0 +1,13 @@ +obj/HAL/src/alt_dev_llist_insert.o: HAL/src/alt_dev_llist_insert.c \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/alt_types.h HAL/inc/sys/alt_errno.h + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_errno.h: diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_dev_llist_insert.o b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_dev_llist_insert.o new file mode 100644 index 0000000..b003942 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_dev_llist_insert.o Binary files differ diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_dma_rxchan_open.d b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_dma_rxchan_open.d new file mode 100644 index 0000000..fb21fed --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_dma_rxchan_open.d @@ -0,0 +1,35 @@ +obj/HAL/src/alt_dma_rxchan_open.o: HAL/src/alt_dma_rxchan_open.c \ + HAL/inc/sys/alt_dma.h HAL/inc/sys/alt_dma_dev.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/alt_types.h HAL/inc/sys/alt_errno.h \ + HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h system.h linker.h \ + HAL/inc/sys/alt_llist.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h + +HAL/inc/sys/alt_dma.h: + +HAL/inc/sys/alt_dma_dev.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_errno.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_dma_rxchan_open.o b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_dma_rxchan_open.o new file mode 100644 index 0000000..ce0804e --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_dma_rxchan_open.o Binary files differ diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_dma_txchan_open.d b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_dma_txchan_open.d new file mode 100644 index 0000000..500b95c --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_dma_txchan_open.d @@ -0,0 +1,35 @@ +obj/HAL/src/alt_dma_txchan_open.o: HAL/src/alt_dma_txchan_open.c \ + HAL/inc/sys/alt_dma.h HAL/inc/sys/alt_dma_dev.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/alt_types.h HAL/inc/sys/alt_errno.h \ + HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h system.h linker.h \ + HAL/inc/sys/alt_llist.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h + +HAL/inc/sys/alt_dma.h: + +HAL/inc/sys/alt_dma_dev.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_errno.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_dma_txchan_open.o b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_dma_txchan_open.o new file mode 100644 index 0000000..76951a9 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_dma_txchan_open.o Binary files differ diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_do_ctors.d b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_do_ctors.d new file mode 100644 index 0000000..daf8baf --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_do_ctors.d @@ -0,0 +1 @@ +obj/HAL/src/alt_do_ctors.o: HAL/src/alt_do_ctors.c diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_do_ctors.o b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_do_ctors.o new file mode 100644 index 0000000..efd0752 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_do_ctors.o Binary files differ diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_do_dtors.d b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_do_dtors.d new file mode 100644 index 0000000..c3471eb --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_do_dtors.d @@ -0,0 +1 @@ +obj/HAL/src/alt_do_dtors.o: HAL/src/alt_do_dtors.c diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_do_dtors.o b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_do_dtors.o new file mode 100644 index 0000000..81ebb98 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_do_dtors.o Binary files differ diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_env_lock.d b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_env_lock.d new file mode 100644 index 0000000..634d7b0 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_env_lock.d @@ -0,0 +1 @@ +obj/HAL/src/alt_env_lock.o: HAL/src/alt_env_lock.c diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_env_lock.o b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_env_lock.o new file mode 100644 index 0000000..5270020 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_env_lock.o Binary files differ diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_environ.d b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_environ.d new file mode 100644 index 0000000..e9ca295 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_environ.d @@ -0,0 +1,3 @@ +obj/HAL/src/alt_environ.o: HAL/src/alt_environ.c HAL/inc/os/alt_syscall.h + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_environ.o b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_environ.o new file mode 100644 index 0000000..731ba0d --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_environ.o Binary files differ diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_errno.d b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_errno.d new file mode 100644 index 0000000..29ca544 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_errno.d @@ -0,0 +1,8 @@ +obj/HAL/src/alt_errno.o: HAL/src/alt_errno.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/alt_types.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/alt_types.h: diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_errno.o b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_errno.o new file mode 100644 index 0000000..b167297 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_errno.o Binary files differ diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_exception_entry.d b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_exception_entry.d new file mode 100644 index 0000000..540567e --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_exception_entry.d @@ -0,0 +1,6 @@ +obj/HAL/src/alt_exception_entry.o: HAL/src/alt_exception_entry.S system.h \ + linker.h + +system.h: + +linker.h: diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_exception_entry.o b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_exception_entry.o new file mode 100644 index 0000000..f2be55c --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_exception_entry.o Binary files differ diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_exception_muldiv.d b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_exception_muldiv.d new file mode 100644 index 0000000..63d66a7 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_exception_muldiv.d @@ -0,0 +1 @@ +obj/HAL/src/alt_exception_muldiv.o: HAL/src/alt_exception_muldiv.S diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_exception_muldiv.o b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_exception_muldiv.o new file mode 100644 index 0000000..1f515b7 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_exception_muldiv.o Binary files differ diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_exception_trap.d b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_exception_trap.d new file mode 100644 index 0000000..6e18488 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_exception_trap.d @@ -0,0 +1 @@ +obj/HAL/src/alt_exception_trap.o: HAL/src/alt_exception_trap.S diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_exception_trap.o b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_exception_trap.o new file mode 100644 index 0000000..213b840 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_exception_trap.o Binary files differ diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_execve.d b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_execve.d new file mode 100644 index 0000000..9cef7d2 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_execve.d @@ -0,0 +1,10 @@ +obj/HAL/src/alt_execve.o: HAL/src/alt_execve.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_execve.o b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_execve.o new file mode 100644 index 0000000..59f9f6f --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_execve.o Binary files differ diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_exit.d b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_exit.d new file mode 100644 index 0000000..a779da8 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_exit.d @@ -0,0 +1,26 @@ +obj/HAL/src/alt_exit.o: HAL/src/alt_exit.c HAL/inc/sys/alt_irq.h \ + HAL/inc/nios2.h HAL/inc/alt_types.h system.h linker.h \ + HAL/inc/sys/alt_sim.h HAL/inc/os/alt_hooks.h HAL/inc/os/alt_syscall.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_log_printf.h system.h + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_sim.h: + +HAL/inc/os/alt_hooks.h: + +HAL/inc/os/alt_syscall.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_log_printf.h: + +system.h: diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_exit.o b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_exit.o new file mode 100644 index 0000000..fa9779b --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_exit.o Binary files differ diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_fcntl.d b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_fcntl.d new file mode 100644 index 0000000..527f242 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_fcntl.d @@ -0,0 +1,34 @@ +obj/HAL/src/alt_fcntl.o: HAL/src/alt_fcntl.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h \ + system.h linker.h HAL/inc/sys/alt_llist.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h HAL/inc/alt_types.h \ + HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_fcntl.o b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_fcntl.o new file mode 100644 index 0000000..6cbe451 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_fcntl.o Binary files differ diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_fd_lock.d b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_fd_lock.d new file mode 100644 index 0000000..93daeac --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_fd_lock.d @@ -0,0 +1,27 @@ +obj/HAL/src/alt_fd_lock.o: HAL/src/alt_fd_lock.c HAL/inc/priv/alt_file.h \ + HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_fd_lock.o b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_fd_lock.o new file mode 100644 index 0000000..2c78027 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_fd_lock.o Binary files differ diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_fd_unlock.d b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_fd_unlock.d new file mode 100644 index 0000000..45a3207 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_fd_unlock.d @@ -0,0 +1,27 @@ +obj/HAL/src/alt_fd_unlock.o: HAL/src/alt_fd_unlock.c \ + HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h system.h linker.h \ + HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_fd_unlock.o b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_fd_unlock.o new file mode 100644 index 0000000..18d5f0d --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_fd_unlock.o Binary files differ diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_find_dev.d b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_find_dev.d new file mode 100644 index 0000000..98336f8 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_find_dev.d @@ -0,0 +1,31 @@ +obj/HAL/src/alt_find_dev.o: HAL/src/alt_find_dev.c HAL/inc/sys/alt_dev.h \ + system.h linker.h HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h \ + HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h HAL/inc/alt_types.h + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/alt_types.h: diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_find_dev.o b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_find_dev.o new file mode 100644 index 0000000..cd8f5e4 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_find_dev.o Binary files differ diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_find_file.d b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_find_file.d new file mode 100644 index 0000000..d1150ca --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_find_file.d @@ -0,0 +1,32 @@ +obj/HAL/src/alt_find_file.o: HAL/src/alt_find_file.c \ + HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h HAL/inc/priv/alt_file.h \ + HAL/inc/sys/alt_dev.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h \ + HAL/inc/alt_types.h + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/alt_types.h: diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_find_file.o b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_find_file.o new file mode 100644 index 0000000..042285a --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_find_file.o Binary files differ diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_flash_dev.d b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_flash_dev.d new file mode 100644 index 0000000..8835e8f --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_flash_dev.d @@ -0,0 +1,34 @@ +obj/HAL/src/alt_flash_dev.o: HAL/src/alt_flash_dev.c \ + HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h HAL/inc/sys/alt_flash_dev.h \ + HAL/inc/sys/alt_flash_types.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h \ + system.h linker.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_flash_dev.h: + +HAL/inc/sys/alt_flash_types.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_flash_dev.o b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_flash_dev.o new file mode 100644 index 0000000..ea528b9 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_flash_dev.o Binary files differ diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_fork.d b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_fork.d new file mode 100644 index 0000000..492be65 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_fork.d @@ -0,0 +1,10 @@ +obj/HAL/src/alt_fork.o: HAL/src/alt_fork.c HAL/inc/sys/alt_warning.h \ + HAL/inc/sys/alt_errno.h HAL/inc/alt_types.h HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_warning.h: + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_fork.o b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_fork.o new file mode 100644 index 0000000..025055b --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_fork.o Binary files differ diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_fs_reg.d b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_fs_reg.d new file mode 100644 index 0000000..d8f95ab --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_fs_reg.d @@ -0,0 +1,29 @@ +obj/HAL/src/alt_fs_reg.o: HAL/src/alt_fs_reg.c HAL/inc/sys/alt_dev.h \ + system.h linker.h HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h \ + HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_fs_reg.o b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_fs_reg.o new file mode 100644 index 0000000..644a7e3 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_fs_reg.o Binary files differ diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_fstat.d b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_fstat.d new file mode 100644 index 0000000..942fcbc --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_fstat.d @@ -0,0 +1,38 @@ +obj/HAL/src/alt_fstat.o: HAL/src/alt_fstat.c HAL/inc/sys/alt_dev.h \ + system.h linker.h HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h HAL/inc/sys/alt_errno.h \ + HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h HAL/inc/os/alt_syscall.h system.h + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/sys/alt_errno.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_syscall.h: + +system.h: diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_fstat.o b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_fstat.o new file mode 100644 index 0000000..f758eb0 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_fstat.o Binary files differ diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_get_fd.d b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_get_fd.d new file mode 100644 index 0000000..9a4daaa --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_get_fd.d @@ -0,0 +1,34 @@ +obj/HAL/src/alt_get_fd.o: HAL/src/alt_get_fd.c HAL/inc/sys/alt_dev.h \ + system.h linker.h HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h \ + HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h HAL/inc/alt_types.h \ + system.h + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/alt_types.h: + +system.h: diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_get_fd.o b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_get_fd.o new file mode 100644 index 0000000..352ad10 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_get_fd.o Binary files differ diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_getchar.d b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_getchar.d new file mode 100644 index 0000000..bcccdf7 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_getchar.d @@ -0,0 +1,34 @@ +obj/HAL/src/alt_getchar.o: HAL/src/alt_getchar.c system.h linker.h \ + HAL/inc/sys/alt_driver.h HAL/inc/sys/alt_stdio.h \ + HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h system.h \ + HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h + +system.h: + +linker.h: + +HAL/inc/sys/alt_driver.h: + +HAL/inc/sys/alt_stdio.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_getchar.o b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_getchar.o new file mode 100644 index 0000000..7ab370a --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_getchar.o Binary files differ diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_getpid.d b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_getpid.d new file mode 100644 index 0000000..d9499b9 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_getpid.d @@ -0,0 +1,3 @@ +obj/HAL/src/alt_getpid.o: HAL/src/alt_getpid.c HAL/inc/os/alt_syscall.h + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_getpid.o b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_getpid.o new file mode 100644 index 0000000..17b5e30 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_getpid.o Binary files differ diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_gettod.d b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_gettod.d new file mode 100644 index 0000000..cf3cf34 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_gettod.d @@ -0,0 +1,17 @@ +obj/HAL/src/alt_gettod.o: HAL/src/alt_gettod.c HAL/inc/sys/alt_alarm.h \ + HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h HAL/inc/priv/alt_alarm.h \ + HAL/inc/alt_types.h HAL/inc/alt_types.h HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/alt_types.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_gettod.o b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_gettod.o new file mode 100644 index 0000000..5812388 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_gettod.o Binary files differ diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_gmon.d b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_gmon.d new file mode 100644 index 0000000..e9469ab --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_gmon.d @@ -0,0 +1,24 @@ +obj/HAL/src/alt_gmon.o: HAL/src/alt_gmon.c HAL/inc/priv/nios2_gmon_data.h \ + HAL/inc/sys/alt_irq.h HAL/inc/nios2.h HAL/inc/alt_types.h system.h \ + linker.h HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_alarm.h HAL/inc/alt_types.h + +HAL/inc/priv/nios2_gmon_data.h: + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/alt_types.h: diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_gmon.o b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_gmon.o new file mode 100644 index 0000000..18baf06 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_gmon.o Binary files differ diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_icache_flush.d b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_icache_flush.d new file mode 100644 index 0000000..2e4ddd1 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_icache_flush.d @@ -0,0 +1,15 @@ +obj/HAL/src/alt_icache_flush.o: HAL/src/alt_icache_flush.c \ + HAL/inc/nios2.h system.h linker.h HAL/inc/alt_types.h \ + HAL/inc/sys/alt_cache.h HAL/inc/alt_types.h + +HAL/inc/nios2.h: + +system.h: + +linker.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_cache.h: + +HAL/inc/alt_types.h: diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_icache_flush.o b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_icache_flush.o new file mode 100644 index 0000000..b248181 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_icache_flush.o Binary files differ diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_icache_flush_all.d b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_icache_flush_all.d new file mode 100644 index 0000000..47cfbf3 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_icache_flush_all.d @@ -0,0 +1,15 @@ +obj/HAL/src/alt_icache_flush_all.o: HAL/src/alt_icache_flush_all.c \ + HAL/inc/nios2.h system.h linker.h HAL/inc/alt_types.h \ + HAL/inc/sys/alt_cache.h HAL/inc/alt_types.h + +HAL/inc/nios2.h: + +system.h: + +linker.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_cache.h: + +HAL/inc/alt_types.h: diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_icache_flush_all.o b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_icache_flush_all.o new file mode 100644 index 0000000..d07e4b1 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_icache_flush_all.o Binary files differ diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_iic.d b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_iic.d new file mode 100644 index 0000000..a709e0c --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_iic.d @@ -0,0 +1,29 @@ +obj/HAL/src/alt_iic.o: HAL/src/alt_iic.c system.h linker.h \ + HAL/inc/sys/alt_irq.h HAL/inc/nios2.h HAL/inc/alt_types.h system.h \ + HAL/inc/priv/alt_iic_isr_register.h HAL/inc/alt_types.h \ + HAL/inc/sys/alt_irq.h HAL/inc/priv/alt_legacy_irq.h system.h \ + HAL/inc/nios2.h + +system.h: + +linker.h: + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +HAL/inc/priv/alt_iic_isr_register.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_irq.h: + +HAL/inc/priv/alt_legacy_irq.h: + +system.h: + +HAL/inc/nios2.h: diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_iic.o b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_iic.o new file mode 100644 index 0000000..f6637ef --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_iic.o Binary files differ diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_iic_isr_register.d b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_iic_isr_register.d new file mode 100644 index 0000000..d0470ae --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_iic_isr_register.d @@ -0,0 +1,30 @@ +obj/HAL/src/alt_iic_isr_register.o: HAL/src/alt_iic_isr_register.c \ + system.h linker.h HAL/inc/alt_types.h HAL/inc/sys/alt_irq.h \ + HAL/inc/nios2.h HAL/inc/alt_types.h system.h \ + HAL/inc/priv/alt_iic_isr_register.h HAL/inc/alt_types.h \ + HAL/inc/sys/alt_irq.h HAL/inc/sys/alt_irq_entry.h \ + HAL/inc/priv/alt_irq_table.h + +system.h: + +linker.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +HAL/inc/priv/alt_iic_isr_register.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_irq.h: + +HAL/inc/sys/alt_irq_entry.h: + +HAL/inc/priv/alt_irq_table.h: diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_iic_isr_register.o b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_iic_isr_register.o new file mode 100644 index 0000000..07b3b7a --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_iic_isr_register.o Binary files differ diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_instruction_exception_entry.d b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_instruction_exception_entry.d new file mode 100644 index 0000000..6d0705f --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_instruction_exception_entry.d @@ -0,0 +1,18 @@ +obj/HAL/src/alt_instruction_exception_entry.o: \ + HAL/src/alt_instruction_exception_entry.c HAL/inc/sys/alt_exceptions.h \ + HAL/inc/alt_types.h system.h linker.h HAL/inc/nios2.h \ + HAL/inc/alt_types.h system.h + +HAL/inc/sys/alt_exceptions.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_instruction_exception_entry.o b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_instruction_exception_entry.o new file mode 100644 index 0000000..3b9451e --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_instruction_exception_entry.o Binary files differ diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_instruction_exception_register.d b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_instruction_exception_register.d new file mode 100644 index 0000000..d4fac04 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_instruction_exception_register.d @@ -0,0 +1,16 @@ +obj/HAL/src/alt_instruction_exception_register.o: \ + HAL/src/alt_instruction_exception_register.c \ + HAL/inc/sys/alt_exceptions.h HAL/inc/alt_types.h system.h linker.h \ + HAL/inc/alt_types.h system.h + +HAL/inc/sys/alt_exceptions.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: + +HAL/inc/alt_types.h: + +system.h: diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_instruction_exception_register.o b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_instruction_exception_register.o new file mode 100644 index 0000000..7fed819 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_instruction_exception_register.o Binary files differ diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_io_redirect.d b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_io_redirect.d new file mode 100644 index 0000000..8228365 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_io_redirect.d @@ -0,0 +1,29 @@ +obj/HAL/src/alt_io_redirect.o: HAL/src/alt_io_redirect.c \ + HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h HAL/inc/priv/alt_file.h \ + HAL/inc/sys/alt_dev.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_io_redirect.o b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_io_redirect.o new file mode 100644 index 0000000..095108e --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_io_redirect.o Binary files differ diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_ioctl.d b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_ioctl.d new file mode 100644 index 0000000..d70ad97 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_ioctl.d @@ -0,0 +1,41 @@ +obj/HAL/src/alt_ioctl.o: HAL/src/alt_ioctl.c HAL/inc/sys/ioctl.h \ + HAL/inc/sys/alt_errno.h HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h \ + HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h system.h linker.h \ + HAL/inc/sys/alt_llist.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h HAL/inc/os/alt_syscall.h system.h \ + HAL/inc/sys/alt_driver.h + +HAL/inc/sys/ioctl.h: + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_syscall.h: + +system.h: + +HAL/inc/sys/alt_driver.h: diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_ioctl.o b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_ioctl.o new file mode 100644 index 0000000..0d36fde --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_ioctl.o Binary files differ diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_irq_entry.d b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_irq_entry.d new file mode 100644 index 0000000..9ec3751 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_irq_entry.d @@ -0,0 +1,5 @@ +obj/HAL/src/alt_irq_entry.o: HAL/src/alt_irq_entry.S system.h linker.h + +system.h: + +linker.h: diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_irq_entry.o b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_irq_entry.o new file mode 100644 index 0000000..4352cc3 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_irq_entry.o Binary files differ diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_irq_handler.d b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_irq_handler.d new file mode 100644 index 0000000..6fb668f --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_irq_handler.d @@ -0,0 +1,19 @@ +obj/HAL/src/alt_irq_handler.o: HAL/src/alt_irq_handler.c system.h \ + linker.h HAL/inc/sys/alt_irq.h HAL/inc/nios2.h HAL/inc/alt_types.h \ + system.h HAL/inc/os/alt_hooks.h HAL/inc/alt_types.h + +system.h: + +linker.h: + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +HAL/inc/os/alt_hooks.h: + +HAL/inc/alt_types.h: diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_irq_handler.o b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_irq_handler.o new file mode 100644 index 0000000..7fec5cf --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_irq_handler.o Binary files differ diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_irq_register.d b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_irq_register.d new file mode 100644 index 0000000..3df2f8a --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_irq_register.d @@ -0,0 +1,36 @@ +obj/HAL/src/alt_irq_register.o: HAL/src/alt_irq_register.c system.h \ + linker.h HAL/inc/sys/alt_irq.h HAL/inc/nios2.h HAL/inc/alt_types.h \ + system.h HAL/inc/priv/alt_legacy_irq.h system.h HAL/inc/nios2.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_irq.h HAL/inc/os/alt_hooks.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_irq_entry.h \ + HAL/inc/priv/alt_irq_table.h + +system.h: + +linker.h: + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +HAL/inc/priv/alt_legacy_irq.h: + +system.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_irq.h: + +HAL/inc/os/alt_hooks.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_irq_entry.h: + +HAL/inc/priv/alt_irq_table.h: diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_irq_register.o b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_irq_register.o new file mode 100644 index 0000000..2daf697 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_irq_register.o Binary files differ diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_irq_vars.d b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_irq_vars.d new file mode 100644 index 0000000..f316558 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_irq_vars.d @@ -0,0 +1,8 @@ +obj/HAL/src/alt_irq_vars.o: HAL/src/alt_irq_vars.c HAL/inc/alt_types.h \ + system.h linker.h + +HAL/inc/alt_types.h: + +system.h: + +linker.h: diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_irq_vars.o b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_irq_vars.o new file mode 100644 index 0000000..aca0a70 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_irq_vars.o Binary files differ diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_isatty.d b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_isatty.d new file mode 100644 index 0000000..f8b1f07 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_isatty.d @@ -0,0 +1,38 @@ +obj/HAL/src/alt_isatty.o: HAL/src/alt_isatty.c HAL/inc/sys/alt_dev.h \ + system.h linker.h HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_errno.h HAL/inc/sys/alt_warning.h \ + HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h HAL/inc/os/alt_syscall.h system.h + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_errno.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_syscall.h: + +system.h: diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_isatty.o b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_isatty.o new file mode 100644 index 0000000..967d2db --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_isatty.o Binary files differ diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_kill.d b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_kill.d new file mode 100644 index 0000000..0c14ae8 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_kill.d @@ -0,0 +1,8 @@ +obj/HAL/src/alt_kill.o: HAL/src/alt_kill.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_kill.o b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_kill.o new file mode 100644 index 0000000..ba593e3 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_kill.o Binary files differ diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_link.d b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_link.d new file mode 100644 index 0000000..dc844c6 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_link.d @@ -0,0 +1,10 @@ +obj/HAL/src/alt_link.o: HAL/src/alt_link.c HAL/inc/sys/alt_warning.h \ + HAL/inc/sys/alt_errno.h HAL/inc/alt_types.h HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_warning.h: + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_link.o b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_link.o new file mode 100644 index 0000000..d5eb359 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_link.o Binary files differ diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_load.d b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_load.d new file mode 100644 index 0000000..d496ab8 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_load.d @@ -0,0 +1,8 @@ +obj/HAL/src/alt_load.o: HAL/src/alt_load.c HAL/inc/sys/alt_load.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_cache.h + +HAL/inc/sys/alt_load.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_cache.h: diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_load.o b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_load.o new file mode 100644 index 0000000..862aca7 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_load.o Binary files differ diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_log_macro.d b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_log_macro.d new file mode 100644 index 0000000..9768c1f --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_log_macro.d @@ -0,0 +1 @@ +obj/HAL/src/alt_log_macro.o: HAL/src/alt_log_macro.S diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_log_macro.o b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_log_macro.o new file mode 100644 index 0000000..489e2cc --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_log_macro.o Binary files differ diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_log_printf.d b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_log_printf.d new file mode 100644 index 0000000..251ff6d --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_log_printf.d @@ -0,0 +1 @@ +obj/HAL/src/alt_log_printf.o: HAL/src/alt_log_printf.c diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_log_printf.o b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_log_printf.o new file mode 100644 index 0000000..a03c33d --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_log_printf.o Binary files differ diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_lseek.d b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_lseek.d new file mode 100644 index 0000000..25ed783 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_lseek.d @@ -0,0 +1,34 @@ +obj/HAL/src/alt_lseek.o: HAL/src/alt_lseek.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h HAL/inc/priv/alt_file.h \ + HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h \ + HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_lseek.o b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_lseek.o new file mode 100644 index 0000000..66a8b62 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_lseek.o Binary files differ diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_main.d b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_main.d new file mode 100644 index 0000000..afdfda0 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_main.d @@ -0,0 +1,47 @@ +obj/HAL/src/alt_main.o: HAL/src/alt_main.c HAL/inc/sys/alt_dev.h system.h \ + linker.h HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_sys_init.h HAL/inc/sys/alt_irq.h \ + HAL/inc/nios2.h HAL/inc/os/alt_hooks.h HAL/inc/priv/alt_file.h \ + HAL/inc/sys/alt_dev.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h \ + HAL/inc/alt_types.h system.h HAL/inc/sys/alt_log_printf.h system.h + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_sys_init.h: + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/os/alt_hooks.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/alt_types.h: + +system.h: + +HAL/inc/sys/alt_log_printf.h: + +system.h: diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_main.o b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_main.o new file mode 100644 index 0000000..3bcb569 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_main.o Binary files differ diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_malloc_lock.d b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_malloc_lock.d new file mode 100644 index 0000000..4ed35c2 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_malloc_lock.d @@ -0,0 +1 @@ +obj/HAL/src/alt_malloc_lock.o: HAL/src/alt_malloc_lock.c diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_malloc_lock.o b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_malloc_lock.o new file mode 100644 index 0000000..2feabc2 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_malloc_lock.o Binary files differ diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_mcount.d b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_mcount.d new file mode 100644 index 0000000..1203efc --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_mcount.d @@ -0,0 +1 @@ +obj/HAL/src/alt_mcount.o: HAL/src/alt_mcount.S diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_mcount.o b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_mcount.o new file mode 100644 index 0000000..2d79c6d --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_mcount.o Binary files differ diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_open.d b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_open.d new file mode 100644 index 0000000..a2aacd9 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_open.d @@ -0,0 +1,36 @@ +obj/HAL/src/alt_open.o: HAL/src/alt_open.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h HAL/inc/priv/alt_file.h \ + HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h \ + HAL/inc/alt_types.h HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_open.o b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_open.o new file mode 100644 index 0000000..439cdcf --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_open.o Binary files differ diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_printf.d b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_printf.d new file mode 100644 index 0000000..3ce68a4 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_printf.d @@ -0,0 +1,3 @@ +obj/HAL/src/alt_printf.o: HAL/src/alt_printf.c HAL/inc/sys/alt_stdio.h + +HAL/inc/sys/alt_stdio.h: diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_printf.o b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_printf.o new file mode 100644 index 0000000..7df982e --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_printf.o Binary files differ diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_putchar.d b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_putchar.d new file mode 100644 index 0000000..9a0dde3 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_putchar.d @@ -0,0 +1,10 @@ +obj/HAL/src/alt_putchar.o: HAL/src/alt_putchar.c system.h linker.h \ + HAL/inc/sys/alt_driver.h HAL/inc/sys/alt_stdio.h + +system.h: + +linker.h: + +HAL/inc/sys/alt_driver.h: + +HAL/inc/sys/alt_stdio.h: diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_putchar.o b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_putchar.o new file mode 100644 index 0000000..f8574fb --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_putchar.o Binary files differ diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_putstr.d b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_putstr.d new file mode 100644 index 0000000..3cf528a --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_putstr.d @@ -0,0 +1,10 @@ +obj/HAL/src/alt_putstr.o: HAL/src/alt_putstr.c system.h linker.h \ + HAL/inc/sys/alt_driver.h HAL/inc/sys/alt_stdio.h + +system.h: + +linker.h: + +HAL/inc/sys/alt_driver.h: + +HAL/inc/sys/alt_stdio.h: diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_putstr.o b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_putstr.o new file mode 100644 index 0000000..a77185c --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_putstr.o Binary files differ diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_read.d b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_read.d new file mode 100644 index 0000000..2bb0d95 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_read.d @@ -0,0 +1,38 @@ +obj/HAL/src/alt_read.o: HAL/src/alt_read.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h HAL/inc/priv/alt_file.h \ + HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h \ + HAL/inc/os/alt_syscall.h system.h HAL/inc/sys/alt_driver.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_syscall.h: + +system.h: + +HAL/inc/sys/alt_driver.h: diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_read.o b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_read.o new file mode 100644 index 0000000..7498697 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_read.o Binary files differ diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_release_fd.d b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_release_fd.d new file mode 100644 index 0000000..0e3acb5 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_release_fd.d @@ -0,0 +1,29 @@ +obj/HAL/src/alt_release_fd.o: HAL/src/alt_release_fd.c \ + HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h HAL/inc/priv/alt_file.h \ + HAL/inc/sys/alt_dev.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_release_fd.o b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_release_fd.o new file mode 100644 index 0000000..ea1bb31 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_release_fd.o Binary files differ diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_remap_cached.d b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_remap_cached.d new file mode 100644 index 0000000..b5fb151 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_remap_cached.d @@ -0,0 +1,10 @@ +obj/HAL/src/alt_remap_cached.o: HAL/src/alt_remap_cached.c \ + HAL/inc/sys/alt_cache.h HAL/inc/alt_types.h system.h linker.h + +HAL/inc/sys/alt_cache.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_remap_cached.o b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_remap_cached.o new file mode 100644 index 0000000..104fbc3 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_remap_cached.o Binary files differ diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_remap_uncached.d b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_remap_uncached.d new file mode 100644 index 0000000..0423405 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_remap_uncached.d @@ -0,0 +1,10 @@ +obj/HAL/src/alt_remap_uncached.o: HAL/src/alt_remap_uncached.c \ + HAL/inc/sys/alt_cache.h HAL/inc/alt_types.h system.h linker.h + +HAL/inc/sys/alt_cache.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_remap_uncached.o b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_remap_uncached.o new file mode 100644 index 0000000..5ba2a0b --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_remap_uncached.o Binary files differ diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_rename.d b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_rename.d new file mode 100644 index 0000000..b7af4b2 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_rename.d @@ -0,0 +1,10 @@ +obj/HAL/src/alt_rename.o: HAL/src/alt_rename.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_rename.o b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_rename.o new file mode 100644 index 0000000..8d2d1cd --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_rename.o Binary files differ diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_sbrk.d b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_sbrk.d new file mode 100644 index 0000000..a0771ae --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_sbrk.d @@ -0,0 +1,19 @@ +obj/HAL/src/alt_sbrk.o: HAL/src/alt_sbrk.c HAL/inc/os/alt_syscall.h \ + HAL/inc/sys/alt_irq.h HAL/inc/nios2.h HAL/inc/alt_types.h system.h \ + linker.h HAL/inc/sys/alt_stack.h system.h + +HAL/inc/os/alt_syscall.h: + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_stack.h: + +system.h: diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_sbrk.o b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_sbrk.o new file mode 100644 index 0000000..83b9be6 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_sbrk.o Binary files differ diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_settod.d b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_settod.d new file mode 100644 index 0000000..56718d5 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_settod.d @@ -0,0 +1,17 @@ +obj/HAL/src/alt_settod.o: HAL/src/alt_settod.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_alarm.h HAL/inc/alt_types.h HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_settod.o b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_settod.o new file mode 100644 index 0000000..bdaa3ec --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_settod.o Binary files differ diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_software_exception.d b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_software_exception.d new file mode 100644 index 0000000..fab4023 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_software_exception.d @@ -0,0 +1,6 @@ +obj/HAL/src/alt_software_exception.o: HAL/src/alt_software_exception.S \ + system.h linker.h + +system.h: + +linker.h: diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_software_exception.o b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_software_exception.o new file mode 100644 index 0000000..f9e01c2 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_software_exception.o Binary files differ diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_stat.d b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_stat.d new file mode 100644 index 0000000..8a63c27 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_stat.d @@ -0,0 +1,3 @@ +obj/HAL/src/alt_stat.o: HAL/src/alt_stat.c HAL/inc/os/alt_syscall.h + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_stat.o b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_stat.o new file mode 100644 index 0000000..5ed250c --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_stat.o Binary files differ diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_tick.d b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_tick.d new file mode 100644 index 0000000..ddbb281 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_tick.d @@ -0,0 +1,27 @@ +obj/HAL/src/alt_tick.o: HAL/src/alt_tick.c HAL/inc/sys/alt_irq.h \ + HAL/inc/nios2.h HAL/inc/alt_types.h system.h linker.h \ + HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_alarm.h HAL/inc/alt_types.h HAL/inc/os/alt_hooks.h \ + HAL/inc/alt_types.h + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_hooks.h: + +HAL/inc/alt_types.h: diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_tick.o b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_tick.o new file mode 100644 index 0000000..494088d --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_tick.o Binary files differ diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_times.d b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_times.d new file mode 100644 index 0000000..4bad83d --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_times.d @@ -0,0 +1,17 @@ +obj/HAL/src/alt_times.o: HAL/src/alt_times.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_alarm.h HAL/inc/alt_types.h HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_times.o b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_times.o new file mode 100644 index 0000000..5efb72e --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_times.o Binary files differ diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_uncached_free.d b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_uncached_free.d new file mode 100644 index 0000000..d74ef4b --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_uncached_free.d @@ -0,0 +1,10 @@ +obj/HAL/src/alt_uncached_free.o: HAL/src/alt_uncached_free.c \ + HAL/inc/sys/alt_cache.h HAL/inc/alt_types.h system.h linker.h + +HAL/inc/sys/alt_cache.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_uncached_free.o b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_uncached_free.o new file mode 100644 index 0000000..3db4978 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_uncached_free.o Binary files differ diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_uncached_malloc.d b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_uncached_malloc.d new file mode 100644 index 0000000..16799fb --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_uncached_malloc.d @@ -0,0 +1,10 @@ +obj/HAL/src/alt_uncached_malloc.o: HAL/src/alt_uncached_malloc.c \ + HAL/inc/sys/alt_cache.h HAL/inc/alt_types.h system.h linker.h + +HAL/inc/sys/alt_cache.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_uncached_malloc.o b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_uncached_malloc.o new file mode 100644 index 0000000..e7e67d2 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_uncached_malloc.o Binary files differ diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_unlink.d b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_unlink.d new file mode 100644 index 0000000..0205f86 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_unlink.d @@ -0,0 +1,10 @@ +obj/HAL/src/alt_unlink.o: HAL/src/alt_unlink.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_unlink.o b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_unlink.o new file mode 100644 index 0000000..ac3d501 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_unlink.o Binary files differ diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_usleep.d b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_usleep.d new file mode 100644 index 0000000..b5eca45 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_usleep.d @@ -0,0 +1,6 @@ +obj/HAL/src/alt_usleep.o: HAL/src/alt_usleep.c \ + HAL/inc/priv/alt_busy_sleep.h HAL/inc/os/alt_syscall.h + +HAL/inc/priv/alt_busy_sleep.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_usleep.o b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_usleep.o new file mode 100644 index 0000000..b473021 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_usleep.o Binary files differ diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_wait.d b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_wait.d new file mode 100644 index 0000000..f47f5df --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_wait.d @@ -0,0 +1,8 @@ +obj/HAL/src/alt_wait.o: HAL/src/alt_wait.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_wait.o b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_wait.o new file mode 100644 index 0000000..f939e0d --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_wait.o Binary files differ diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_write.d b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_write.d new file mode 100644 index 0000000..2b54a68 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_write.d @@ -0,0 +1,41 @@ +obj/HAL/src/alt_write.o: HAL/src/alt_write.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h HAL/inc/priv/alt_file.h \ + HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h \ + HAL/inc/os/alt_syscall.h HAL/inc/sys/alt_log_printf.h system.h \ + HAL/inc/sys/alt_driver.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_syscall.h: + +HAL/inc/sys/alt_log_printf.h: + +system.h: + +HAL/inc/sys/alt_driver.h: diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_write.o b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_write.o new file mode 100644 index 0000000..5bd0d77 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/alt_write.o Binary files differ diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/altera_nios2_qsys_irq.d b/software/qsys_tutorial_green_bsp/obj/HAL/src/altera_nios2_qsys_irq.d new file mode 100644 index 0000000..47bdd9c --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/altera_nios2_qsys_irq.d @@ -0,0 +1,15 @@ +obj/HAL/src/altera_nios2_qsys_irq.o: HAL/src/altera_nios2_qsys_irq.c \ + HAL/inc/sys/alt_irq.h HAL/inc/nios2.h HAL/inc/alt_types.h system.h \ + linker.h HAL/inc/altera_nios2_qsys_irq.h + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: + +HAL/inc/altera_nios2_qsys_irq.h: diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/altera_nios2_qsys_irq.o b/software/qsys_tutorial_green_bsp/obj/HAL/src/altera_nios2_qsys_irq.o new file mode 100644 index 0000000..5a913dc --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/altera_nios2_qsys_irq.o Binary files differ diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/crt0.d b/software/qsys_tutorial_green_bsp/obj/HAL/src/crt0.d new file mode 100644 index 0000000..3af0bb0 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/crt0.d @@ -0,0 +1,12 @@ +obj/HAL/src/crt0.o: HAL/src/crt0.S system.h linker.h HAL/inc/nios2.h \ + HAL/inc/sys/alt_log_printf.h system.h + +system.h: + +linker.h: + +HAL/inc/nios2.h: + +HAL/inc/sys/alt_log_printf.h: + +system.h: diff --git a/software/qsys_tutorial_green_bsp/obj/HAL/src/crt0.o b/software/qsys_tutorial_green_bsp/obj/HAL/src/crt0.o new file mode 100644 index 0000000..db57d9c --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/HAL/src/crt0.o Binary files differ diff --git a/software/qsys_tutorial_green_bsp/obj/alt_sys_init.d b/software/qsys_tutorial_green_bsp/obj/alt_sys_init.d new file mode 100644 index 0000000..2087a7a --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/alt_sys_init.d @@ -0,0 +1,54 @@ +obj/alt_sys_init.o: alt_sys_init.c system.h linker.h \ + HAL/inc/sys/alt_irq.h HAL/inc/nios2.h HAL/inc/alt_types.h system.h \ + HAL/inc/sys/alt_sys_init.h HAL/inc/altera_nios2_qsys_irq.h \ + drivers/inc/altera_avalon_jtag_uart.h HAL/inc/sys/alt_alarm.h \ + HAL/inc/sys/alt_llist.h HAL/inc/priv/alt_alarm.h HAL/inc/alt_types.h \ + HAL/inc/sys/alt_warning.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h HAL/inc/os/alt_flag.h \ + drivers/inc/altera_avalon_jtag_uart_fd.h HAL/inc/sys/alt_dev.h \ + HAL/inc/sys/alt_llist.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h + +system.h: + +linker.h: + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +HAL/inc/sys/alt_sys_init.h: + +HAL/inc/altera_nios2_qsys_irq.h: + +drivers/inc/altera_avalon_jtag_uart.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_flag.h: + +drivers/inc/altera_avalon_jtag_uart_fd.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: diff --git a/software/qsys_tutorial_green_bsp/obj/alt_sys_init.o b/software/qsys_tutorial_green_bsp/obj/alt_sys_init.o new file mode 100644 index 0000000..02c3c14 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/alt_sys_init.o Binary files differ diff --git a/software/qsys_tutorial_green_bsp/obj/drivers/src/altera_avalon_jtag_uart_fd.d b/software/qsys_tutorial_green_bsp/obj/drivers/src/altera_avalon_jtag_uart_fd.d new file mode 100644 index 0000000..b152697 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/drivers/src/altera_avalon_jtag_uart_fd.d @@ -0,0 +1,48 @@ +obj/drivers/src/altera_avalon_jtag_uart_fd.o: \ + drivers/src/altera_avalon_jtag_uart_fd.c HAL/inc/alt_types.h \ + HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ + drivers/inc/altera_avalon_jtag_uart.h HAL/inc/sys/alt_alarm.h \ + HAL/inc/sys/alt_llist.h HAL/inc/priv/alt_alarm.h \ + HAL/inc/sys/alt_warning.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h HAL/inc/os/alt_flag.h \ + drivers/inc/altera_avalon_jtag_uart_fd.h HAL/inc/sys/alt_dev.h + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +drivers/inc/altera_avalon_jtag_uart.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_flag.h: + +drivers/inc/altera_avalon_jtag_uart_fd.h: + +HAL/inc/sys/alt_dev.h: diff --git a/software/qsys_tutorial_green_bsp/obj/drivers/src/altera_avalon_jtag_uart_fd.o b/software/qsys_tutorial_green_bsp/obj/drivers/src/altera_avalon_jtag_uart_fd.o new file mode 100644 index 0000000..8b23d1b --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/drivers/src/altera_avalon_jtag_uart_fd.o Binary files differ diff --git a/software/qsys_tutorial_green_bsp/obj/drivers/src/altera_avalon_jtag_uart_init.d b/software/qsys_tutorial_green_bsp/obj/drivers/src/altera_avalon_jtag_uart_init.d new file mode 100644 index 0000000..f9460a1 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/drivers/src/altera_avalon_jtag_uart_init.d @@ -0,0 +1,66 @@ +obj/drivers/src/altera_avalon_jtag_uart_init.o: \ + drivers/src/altera_avalon_jtag_uart_init.c HAL/inc/sys/alt_irq.h \ + HAL/inc/nios2.h HAL/inc/alt_types.h system.h linker.h \ + HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_alarm.h HAL/inc/alt_types.h HAL/inc/sys/ioctl.h \ + HAL/inc/alt_types.h drivers/inc/altera_avalon_jtag_uart_regs.h \ + HAL/inc/io.h HAL/inc/alt_types.h drivers/inc/altera_avalon_jtag_uart.h \ + HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_warning.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h HAL/inc/os/alt_flag.h \ + drivers/inc/altera_avalon_jtag_uart_fd.h HAL/inc/sys/alt_dev.h \ + HAL/inc/sys/alt_llist.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h HAL/inc/sys/alt_log_printf.h system.h + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/ioctl.h: + +HAL/inc/alt_types.h: + +drivers/inc/altera_avalon_jtag_uart_regs.h: + +HAL/inc/io.h: + +HAL/inc/alt_types.h: + +drivers/inc/altera_avalon_jtag_uart.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_flag.h: + +drivers/inc/altera_avalon_jtag_uart_fd.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/sys/alt_log_printf.h: + +system.h: diff --git a/software/qsys_tutorial_green_bsp/obj/drivers/src/altera_avalon_jtag_uart_init.o b/software/qsys_tutorial_green_bsp/obj/drivers/src/altera_avalon_jtag_uart_init.o new file mode 100644 index 0000000..ba263e4 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/drivers/src/altera_avalon_jtag_uart_init.o Binary files differ diff --git a/software/qsys_tutorial_green_bsp/obj/drivers/src/altera_avalon_jtag_uart_ioctl.d b/software/qsys_tutorial_green_bsp/obj/drivers/src/altera_avalon_jtag_uart_ioctl.d new file mode 100644 index 0000000..d75a559 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/drivers/src/altera_avalon_jtag_uart_ioctl.d @@ -0,0 +1,58 @@ +obj/drivers/src/altera_avalon_jtag_uart_ioctl.o: \ + drivers/src/altera_avalon_jtag_uart_ioctl.c HAL/inc/sys/ioctl.h \ + HAL/inc/alt_types.h drivers/inc/altera_avalon_jtag_uart_regs.h \ + HAL/inc/io.h HAL/inc/alt_types.h drivers/inc/altera_avalon_jtag_uart.h \ + HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ + HAL/inc/priv/alt_alarm.h HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h \ + HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h HAL/inc/os/alt_flag.h \ + drivers/inc/altera_avalon_jtag_uart_fd.h HAL/inc/sys/alt_dev.h system.h \ + linker.h HAL/inc/sys/alt_llist.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h HAL/inc/sys/alt_log_printf.h system.h + +HAL/inc/sys/ioctl.h: + +HAL/inc/alt_types.h: + +drivers/inc/altera_avalon_jtag_uart_regs.h: + +HAL/inc/io.h: + +HAL/inc/alt_types.h: + +drivers/inc/altera_avalon_jtag_uart.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_flag.h: + +drivers/inc/altera_avalon_jtag_uart_fd.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/sys/alt_log_printf.h: + +system.h: diff --git a/software/qsys_tutorial_green_bsp/obj/drivers/src/altera_avalon_jtag_uart_ioctl.o b/software/qsys_tutorial_green_bsp/obj/drivers/src/altera_avalon_jtag_uart_ioctl.o new file mode 100644 index 0000000..73a395c --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/drivers/src/altera_avalon_jtag_uart_ioctl.o Binary files differ diff --git a/software/qsys_tutorial_green_bsp/obj/drivers/src/altera_avalon_jtag_uart_read.d b/software/qsys_tutorial_green_bsp/obj/drivers/src/altera_avalon_jtag_uart_read.d new file mode 100644 index 0000000..9a4846a --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/drivers/src/altera_avalon_jtag_uart_read.d @@ -0,0 +1,66 @@ +obj/drivers/src/altera_avalon_jtag_uart_read.o: \ + drivers/src/altera_avalon_jtag_uart_read.c HAL/inc/sys/alt_irq.h \ + HAL/inc/nios2.h HAL/inc/alt_types.h system.h linker.h \ + HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_alarm.h HAL/inc/alt_types.h HAL/inc/sys/ioctl.h \ + HAL/inc/alt_types.h drivers/inc/altera_avalon_jtag_uart_regs.h \ + HAL/inc/io.h HAL/inc/alt_types.h drivers/inc/altera_avalon_jtag_uart.h \ + HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_warning.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h HAL/inc/os/alt_flag.h \ + drivers/inc/altera_avalon_jtag_uart_fd.h HAL/inc/sys/alt_dev.h \ + HAL/inc/sys/alt_llist.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h HAL/inc/sys/alt_log_printf.h system.h + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/ioctl.h: + +HAL/inc/alt_types.h: + +drivers/inc/altera_avalon_jtag_uart_regs.h: + +HAL/inc/io.h: + +HAL/inc/alt_types.h: + +drivers/inc/altera_avalon_jtag_uart.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_flag.h: + +drivers/inc/altera_avalon_jtag_uart_fd.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/sys/alt_log_printf.h: + +system.h: diff --git a/software/qsys_tutorial_green_bsp/obj/drivers/src/altera_avalon_jtag_uart_read.o b/software/qsys_tutorial_green_bsp/obj/drivers/src/altera_avalon_jtag_uart_read.o new file mode 100644 index 0000000..9bbf8d8 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/drivers/src/altera_avalon_jtag_uart_read.o Binary files differ diff --git a/software/qsys_tutorial_green_bsp/obj/drivers/src/altera_avalon_jtag_uart_write.d b/software/qsys_tutorial_green_bsp/obj/drivers/src/altera_avalon_jtag_uart_write.d new file mode 100644 index 0000000..5518b7f --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/drivers/src/altera_avalon_jtag_uart_write.d @@ -0,0 +1,66 @@ +obj/drivers/src/altera_avalon_jtag_uart_write.o: \ + drivers/src/altera_avalon_jtag_uart_write.c HAL/inc/sys/alt_irq.h \ + HAL/inc/nios2.h HAL/inc/alt_types.h system.h linker.h \ + HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_alarm.h HAL/inc/alt_types.h HAL/inc/sys/ioctl.h \ + HAL/inc/alt_types.h drivers/inc/altera_avalon_jtag_uart_regs.h \ + HAL/inc/io.h HAL/inc/alt_types.h drivers/inc/altera_avalon_jtag_uart.h \ + HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_warning.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h HAL/inc/os/alt_flag.h \ + drivers/inc/altera_avalon_jtag_uart_fd.h HAL/inc/sys/alt_dev.h \ + HAL/inc/sys/alt_llist.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h HAL/inc/sys/alt_log_printf.h system.h + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/ioctl.h: + +HAL/inc/alt_types.h: + +drivers/inc/altera_avalon_jtag_uart_regs.h: + +HAL/inc/io.h: + +HAL/inc/alt_types.h: + +drivers/inc/altera_avalon_jtag_uart.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_flag.h: + +drivers/inc/altera_avalon_jtag_uart_fd.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/sys/alt_log_printf.h: + +system.h: diff --git a/software/qsys_tutorial_green_bsp/obj/drivers/src/altera_avalon_jtag_uart_write.o b/software/qsys_tutorial_green_bsp/obj/drivers/src/altera_avalon_jtag_uart_write.o new file mode 100644 index 0000000..84dd607 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/obj/drivers/src/altera_avalon_jtag_uart_write.o Binary files differ diff --git a/software/qsys_tutorial_green_bsp/public.mk b/software/qsys_tutorial_green_bsp/public.mk new file mode 100644 index 0000000..397ab19 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/public.mk @@ -0,0 +1,385 @@ +#------------------------------------------------------------------------------ +# BSP "PUBLIC" MAKEFILE CONTENT +# +# This file is intended to be included in an application or library +# Makefile that is using this BSP. You can create such a Makefile with +# the nios2-app-generate-makefile or nios2-lib-generate-makefile +# commands. +# +# The following variables must be defined before including this file: +# +# ALT_LIBRARY_ROOT_DIR +# Contains the path to the BSP top-level (aka root) directory +#------------------------------------------------------------------------------ + +#------------------------------------------------------------------------------ +# PATHS +#------------------------------------------------------------------------------ + + + +# Path to the provided linker script. +BSP_LINKER_SCRIPT := $(ALT_LIBRARY_ROOT_DIR)/linker.x + +# Include paths: +# The path to root of all header files that a library wishes to make +# available for an application's use is specified here. Note that this +# may not be *all* folders within a hierarchy. For example, if it is +# desired that the application developer type: +# #include +# #include +# With files laid out like this: +# /inc/sockets.h +# /inc/ip/tcpip.h +# +# Then, only /inc need be added to the list of include +# directories. Alternatively, if you wish to be able to directly include +# all files in a hierarchy, separate paths to each folder in that +# hierarchy must be defined. + +# The following are the "base" set of include paths for a BSP. +# These paths are appended to the list that individual software +# components, drivers, etc., add in the generated portion of this +# file (below). +ALT_INCLUDE_DIRS_TO_APPEND += \ + $(ALT_LIBRARY_ROOT_DIR) \ + $(ALT_LIBRARY_ROOT_DIR)/drivers/inc + +# Additions to linker library search-path: +# Here we provide a path to "our self" for the application to construct a +# "-L " out of. This should contain a list of directories, +# relative to the library root, of all directories with .a files to link +# against. +ALT_LIBRARY_DIRS += $(ALT_LIBRARY_ROOT_DIR) + + +#------------------------------------------------------------------------------ +# COMPILATION FLAGS +#------------------------------------------------------------------------------ +# Default C pre-processor flags for a BSP: +ALT_CPPFLAGS += -DSYSTEM_BUS_WIDTH=32 \ + -pipe + + +#------------------------------------------------------------------------------ +# MANAGED CONTENT +# +# All content between the lines "START MANAGED" and "END MANAGED" below is +# generated based on variables in the BSP settings file when the +# nios2-bsp-generate-files command is invoked. If you wish to persist any +# information pertaining to the build process, it is recomended that you +# utilize the BSP settings mechanism to do so. +#------------------------------------------------------------------------------ +#START MANAGED + +# The following TYPE comment allows tools to identify the 'type' of target this +# makefile is associated with. +# TYPE: BSP_PUBLIC_MAKEFILE + +# This following VERSION comment indicates the version of the tool used to +# generate this makefile. A makefile variable is provided for VERSION as well. +# ACDS_VERSION: 13.0sp1 +ACDS_VERSION := 13.0sp1 + +# This following BUILD_NUMBER comment indicates the build number of the tool +# used to generate this makefile. +# BUILD_NUMBER: 232 + +# Qsys--generated SOPCINFO file. Required for resolving node instance ID's with +# design component names. +SOPCINFO_FILE := C:/Users/takayun/Desktop/qsys_tutorial/nios_system.sopcinfo + +# Big-Endian operation. +# setting BIG_ENDIAN is false +ALT_CFLAGS += -EL + +# Path to the provided C language runtime initialization code. +BSP_CRT0 := $(ALT_LIBRARY_ROOT_DIR)/obj/HAL/src/crt0.o + +# Name of BSP library as provided to linker using the "-msys-lib" flag or +# linker script GROUP command. +# setting BSP_SYS_LIB is hal_bsp +BSP_SYS_LIB := hal_bsp +ELF_PATCH_FLAG += --thread_model hal + +# Type identifier of the BSP library +# setting BSP_TYPE is hal +ALT_CPPFLAGS += -D__hal__ +BSP_TYPE := hal + +# CPU Name +# setting CPU_NAME is nios2_processor +CPU_NAME = nios2_processor +ELF_PATCH_FLAG += --cpu_name $(CPU_NAME) + +# Hardware Divider present. +# setting HARDWARE_DIVIDE is false +ALT_CFLAGS += -mno-hw-div + +# Hardware Multiplier present. +# setting HARDWARE_MULTIPLY is false +ALT_CFLAGS += -mno-hw-mul + +# Hardware Mulx present. +# setting HARDWARE_MULX is false +ALT_CFLAGS += -mno-hw-mulx + +# Debug Core present. +# setting HAS_DEBUG_CORE is true +CPU_HAS_DEBUG_CORE = 1 + +# Qsys generated design +# setting QSYS is 1 +QSYS := 1 +ELF_PATCH_FLAG += --qsys true + +# Design Name +# setting SOPC_NAME is nios_system +SOPC_NAME := nios_system + +# SopcBuilder Simulation Enabled +# setting SOPC_SIMULATION_ENABLED is false +ELF_PATCH_FLAG += --simulation_enabled false + +# Enable JTAG UART driver to recover when host is inactive causing buffer to +# full without returning error. Printf will not fail with this recovery. none +# setting altera_avalon_jtag_uart_driver.enable_jtag_uart_ignore_fifo_full_error is false + +# Small-footprint (polled mode) driver none +# setting altera_avalon_jtag_uart_driver.enable_small_driver is false + +# Build a custom version of newlib with the specified space-separated compiler +# flags. The custom newlib build will be placed in the <bsp root>/newlib +# directory, and will be used only for applications that utilize this BSP. +# setting hal.custom_newlib_flags is none + +# Enable support for a subset of the C++ language. This option increases code +# footprint by adding support for C++ constructors. Certain features, such as +# multiple inheritance and exceptions are not supported. If false, adds +# -DALT_NO_C_PLUS_PLUS to ALT_CPPFLAGS in public.mk, and reduces code +# footprint. none +# setting hal.enable_c_plus_plus is false +ALT_CPPFLAGS += -DALT_NO_C_PLUS_PLUS + +# When your application exits, close file descriptors, call C++ destructors, +# etc. Code footprint can be reduced by disabling clean exit. If disabled, adds +# -DALT_NO_CLEAN_EXIT to ALT_CPPFLAGS and -Wl,--defsym, exit=_exit to +# ALT_LDFLAGS in public.mk. none +# setting hal.enable_clean_exit is false +ALT_CPPFLAGS += -DALT_NO_CLEAN_EXIT +ALT_LDFLAGS += -Wl,--defsym,exit=_exit + +# Add exit() support. This option increases code footprint if your "main()" +# routine does "return" or call "exit()". If false, adds -DALT_NO_EXIT to +# ALT_CPPFLAGS in public.mk, and reduces footprint none +# setting hal.enable_exit is false +ALT_CPPFLAGS += -DALT_NO_EXIT + +# Causes code to be compiled with gprof profiling enabled and the application +# ELF to be linked with the GPROF library. If true, adds -DALT_PROVIDE_GMON to +# ALT_CPPFLAGS and -pg to ALT_CFLAGS in public.mk. none +# setting hal.enable_gprof is false + +# Enables lightweight device driver API. This reduces code and data footprint +# by removing the HAL layer that maps device names (e.g. /dev/uart0) to file +# descriptors. Instead, driver routines are called directly. The open(), +# close(), and lseek() routines will always fail if called. The read(), +# write(), fstat(), ioctl(), and isatty() routines only work for the stdio +# devices. If true, adds -DALT_USE_DIRECT_DRIVERS to ALT_CPPFLAGS in public.mk. +# The Altera Host and read-only ZIP file systems can't be used if +# hal.enable_lightweight_device_driver_api is true. +# setting hal.enable_lightweight_device_driver_api is true +ALT_CPPFLAGS += -DALT_USE_DIRECT_DRIVERS + +# Adds code to emulate multiply and divide instructions in case they are +# executed but aren't present in the CPU. Normally this isn't required because +# the compiler won't use multiply and divide instructions that aren't present +# in the CPU. If false, adds -DALT_NO_INSTRUCTION_EMULATION to ALT_CPPFLAGS in +# public.mk. none +# setting hal.enable_mul_div_emulation is false +ALT_CPPFLAGS += -DALT_NO_INSTRUCTION_EMULATION + +# Certain drivers are compiled with reduced functionality to reduce code +# footprint. Not all drivers observe this setting. The altera_avalon_uart and +# altera_avalon_jtag_uart drivers switch from interrupt-driven to polled +# operation. CAUTION: Several device drivers are disabled entirely. These +# include the altera_avalon_cfi_flash, altera_avalon_epcs_flash_controller, and +# altera_avalon_lcd_16207 drivers. This can result in certain API (HAL flash +# access routines) to fail. You can define a symbol provided by each driver to +# prevent it from being removed. If true, adds -DALT_USE_SMALL_DRIVERS to +# ALT_CPPFLAGS in public.mk. none +# setting hal.enable_reduced_device_drivers is true +ALT_CPPFLAGS += -DALT_USE_SMALL_DRIVERS + +# Turns on HAL runtime stack checking feature. Enabling this setting causes +# additional code to be placed into each subroutine call to generate an +# exception if a stack collision occurs with the heap or statically allocated +# data. If true, adds -DALT_STACK_CHECK and -mstack-check to ALT_CPPFLAGS in +# public.mk. none +# setting hal.enable_runtime_stack_checking is false + +# The BSP is compiled with optimizations to speedup HDL simulation such as +# initializing the cache, clearing the .bss section, and skipping long delay +# loops. If true, adds -DALT_SIM_OPTIMIZE to ALT_CPPFLAGS in public.mk. When +# this setting is true, the BSP shouldn't be used to build applications that +# are expected to run real hardware. +# setting hal.enable_sim_optimize is false + +# Causes the small newlib (C library) to be used. This reduces code and data +# footprint at the expense of reduced functionality. Several newlib features +# are removed such as floating-point support in printf(), stdin input routines, +# and buffered I/O. The small C library is not compatible with Micrium +# MicroC/OS-II. If true, adds -msmallc to ALT_LDFLAGS in public.mk. none +# setting hal.enable_small_c_library is true +ALT_LDFLAGS += -msmallc +ALT_CPPFLAGS += -DSMALL_C_LIB + +# Enable SOPC Builder System ID. If a System ID SOPC Builder component is +# connected to the CPU associated with this BSP, it will be enabled in the +# creation of command-line arguments to download an ELF to the target. +# Otherwise, system ID and timestamp values are left out of public.mk for +# application Makefile "download-elf" target definition. With the system ID +# check disabled, the Nios II EDS tools will not automatically ensure that the +# application .elf file (and BSP it is linked against) corresponds to the +# hardware design on the target. If false, adds --accept-bad-sysid to +# SOPC_SYSID_FLAG in public.mk. none +# setting hal.enable_sopc_sysid_check is true + +# Enable BSP generation to query if SOPC system is big endian. If true ignores +# export of 'ALT_CFLAGS += -EB' to public.mk if big endian system. If true +# ignores export of 'ALT_CFLAGS += -EL' if little endian system. none +# setting hal.make.ignore_system_derived.big_endian is false + +# Enable BSP generation to query if SOPC system has a debug core present. If +# true ignores export of 'CPU_HAS_DEBUG_CORE = 1' to public.mk if a debug core +# is found in the system. If true ignores export of 'CPU_HAS_DEBUG_CORE = 0' if +# no debug core is found in the system. none +# setting hal.make.ignore_system_derived.debug_core_present is false + +# Enable BSP generation to query if SOPC system has FPU present. If true +# ignores export of 'ALT_CFLAGS += -mhard-float' to public.mk if FPU is found +# in the system. If true ignores export of 'ALT_CFLAGS += -mhard-soft' if FPU +# is not found in the system. none +# setting hal.make.ignore_system_derived.fpu_present is false + +# Enable BSP generation to query if SOPC system has hardware divide present. If +# true ignores export of 'ALT_CFLAGS += -mno-hw-div' to public.mk if no +# division is found in system. If true ignores export of 'ALT_CFLAGS += +# -mhw-div' if division is found in the system. none +# setting hal.make.ignore_system_derived.hardware_divide_present is false + +# Enable BSP generation to query if SOPC system floating point custom +# instruction with a divider is present. If true ignores export of 'ALT_CFLAGS +# += -mcustom-fpu-cfg=60-2' and 'ALT_LDFLAGS += -mcustom-fpu-cfg=60-2' to +# public.mk if the custom instruction is found in the system. none +# setting hal.make.ignore_system_derived.hardware_fp_cust_inst_divider_present is false + +# Enable BSP generation to query if SOPC system floating point custom +# instruction without a divider is present. If true ignores export of +# 'ALT_CFLAGS += -mcustom-fpu-cfg=60-1' and 'ALT_LDFLAGS += +# -mcustom-fpu-cfg=60-1' to public.mk if the custom instruction is found in the +# system. none +# setting hal.make.ignore_system_derived.hardware_fp_cust_inst_no_divider_present is false + +# Enable BSP generation to query if SOPC system has multiplier present. If true +# ignores export of 'ALT_CFLAGS += -mno-hw-mul' to public.mk if no multiplier +# is found in the system. If true ignores export of 'ALT_CFLAGS += -mhw-mul' if +# multiplier is found in the system. none +# setting hal.make.ignore_system_derived.hardware_multiplier_present is false + +# Enable BSP generation to query if SOPC system has hardware mulx present. If +# true ignores export of 'ALT_CFLAGS += -mno-hw-mulx' to public.mk if no mulx +# is found in the system. If true ignores export of 'ALT_CFLAGS += -mhw-mulx' +# if mulx is found in the system. none +# setting hal.make.ignore_system_derived.hardware_mulx_present is false + +# Enable BSP generation to query if SOPC system has simulation enabled. If true +# ignores export of 'ELF_PATCH_FLAG += --simulation_enabled' to public.mk. none +# setting hal.make.ignore_system_derived.sopc_simulation_enabled is false + +# Enable BSP generation to query SOPC system for system ID base address. If +# true ignores export of 'SOPC_SYSID_FLAG += --sidp=
' and +# 'ELF_PATCH_FLAG += --sidp=
' to public.mk. none +# setting hal.make.ignore_system_derived.sopc_system_base_address is false + +# Enable BSP generation to query SOPC system for system ID. If true ignores +# export of 'SOPC_SYSID_FLAG += --id=' and 'ELF_PATCH_FLAG += +# --id=' to public.mk. none +# setting hal.make.ignore_system_derived.sopc_system_id is false + +# Enable BSP generation to query SOPC system for system timestamp. If true +# ignores export of 'SOPC_SYSID_FLAG += --timestamp=' and +# 'ELF_PATCH_FLAG += --timestamp=' to public.mk. none +# setting hal.make.ignore_system_derived.sopc_system_timestamp is false + +# Slave descriptor of STDERR character-mode device. This setting is used by the +# ALT_STDERR family of defines in system.h. none +# setting hal.stderr is jtag_uart +ELF_PATCH_FLAG += --stderr_dev jtag_uart + +# Slave descriptor of STDIN character-mode device. This setting is used by the +# ALT_STDIN family of defines in system.h. none +# setting hal.stdin is jtag_uart +ELF_PATCH_FLAG += --stdin_dev jtag_uart + +# Slave descriptor of STDOUT character-mode device. This setting is used by the +# ALT_STDOUT family of defines in system.h. none +# setting hal.stdout is jtag_uart +ELF_PATCH_FLAG += --stdout_dev jtag_uart + + +#------------------------------------------------------------------------------ +# SOFTWARE COMPONENT & DRIVER INCLUDE PATHS +#------------------------------------------------------------------------------ + +ALT_INCLUDE_DIRS += $(ALT_LIBRARY_ROOT_DIR)/HAL/inc + +#------------------------------------------------------------------------------ +# SOFTWARE COMPONENT & DRIVER PRODUCED ALT_CPPFLAGS ADDITIONS +#------------------------------------------------------------------------------ + +ALT_CPPFLAGS += -DALT_SINGLE_THREADED + +#END MANAGED + + +#------------------------------------------------------------------------------ +# LIBRARY INFORMATION +#------------------------------------------------------------------------------ +# Assemble the name of the BSP *.a file using the BSP library name +# (BSP_SYS_LIB) in generated content above. +BSP_LIB := lib$(BSP_SYS_LIB).a + +# Additional libraries to link against: +# An application including this file will prefix each library with "-l". +# For example, to include the Newlib math library "m" is included, which +# becomes "-lm" when linking the application. +ALT_LIBRARY_NAMES += m + +# Additions to linker dependencies: +# An application Makefile will typically add these directly to the list +# of dependencies required to build the executable target(s). The BSP +# library (*.a) file is specified here. +ALT_LDDEPS += $(ALT_LIBRARY_ROOT_DIR)/$(BSP_LIB) + +# Is this library "Makeable"? +# Add to list of root library directories that support running 'make' +# to build them. Because libraries may or may not have a Makefile in their +# root, appending to this variable tells an application to run 'make' in +# the library root to build/update this library. +MAKEABLE_LIBRARY_ROOT_DIRS += $(ALT_LIBRARY_ROOT_DIR) + +# Additional Assembler Flags +# -gdwarf2 flag is required for stepping through assembly code +ALT_ASFLAGS += -gdwarf2 + +#------------------------------------------------------------------------------ +# FINAL INCLUDE PATH LIST +#------------------------------------------------------------------------------ +# Append static include paths to paths specified by OS/driver/sw package +# additions to the BSP thus giving them precedence in case a BSP addition +# is attempting to override BSP sources. +ALT_INCLUDE_DIRS += $(ALT_INCLUDE_DIRS_TO_APPEND) + + + diff --git a/software/qsys_tutorial_green_bsp/settings.bsp b/software/qsys_tutorial_green_bsp/settings.bsp new file mode 100644 index 0000000..3a3e66b --- /dev/null +++ b/software/qsys_tutorial_green_bsp/settings.bsp @@ -0,0 +1,919 @@ + + + hal + default + 2016/10/27 10:41:20 + 1477532480041 + C:\Users\takayun\Desktop\qsys_tutorial\software\qsys_tutorial_green_bsp + .\settings.bsp + C:\Users\takayun\Desktop\qsys_tutorial\nios_system.sopcinfo + default + nios2_processor + 1.9 + + hal.sys_clk_timer + ALT_SYS_CLK + UnquotedString + none + none + system_h_define + Slave descriptor of the system clock timer device. This device provides a periodic interrupt ("tick") and is typically required for RTOS use. This setting defines the value of ALT_SYS_CLK in system.h. + none + false + common + + + hal.timestamp_timer + ALT_TIMESTAMP_CLK + UnquotedString + none + none + system_h_define + Slave descriptor of timestamp timer device. This device is used by Altera HAL timestamp drivers for high-resolution time measurement. This setting defines the value of ALT_TIMESTAMP_CLK in system.h. + none + false + common + + + hal.max_file_descriptors + ALT_MAX_FD + DecimalNumber + 4 + 32 + system_h_define + Determines the number of file descriptors statically allocated. This setting defines the value of ALT_MAX_FD in system.h. + If hal.enable_lightweight_device_driver_api is true, there are no file descriptors so this setting is ignored. If hal.enable_lightweight_device_driver_api is false, this setting must be at least 4 because HAL needs a file descriptor for /dev/null, /dev/stdin, /dev/stdout, and /dev/stderr. + false + + + + hal.enable_instruction_related_exceptions_api + ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API + BooleanDefineOnly + false + false + system_h_define + Enables API for registering handlers to service instruction-related exceptions. Enabling this setting increases the size of the exception entry code. + These exception types can be generated if various processor options are enabled, such as the MMU, MPU, or other advanced exception types. + false + + + + hal.linker.allow_code_at_reset + ALT_ALLOW_CODE_AT_RESET + Boolean + 1 + 0 + none + Indicates if initialization code is allowed at the reset address. If true, defines the macro ALT_ALLOW_CODE_AT_RESET in linker.h. + If true, defines the macro ALT_ALLOW_CODE_AT_RESET in linker.h. This setting is typically false if an external bootloader (e.g. flash bootloader) is present. + false + + + + hal.linker.enable_alt_load + NONE + Boolean + 1 + 0 + none + Enables the alt_load() facility. The alt_load() facility copies sections from the .text memory into RAM. If true, this setting sets up the VMA/LMA of sections in linker.x to allow them to be loaded into the .text memory. + This setting is typically false if an external bootloader (e.g. flash bootloader) is present. + false + + + + hal.linker.enable_alt_load_copy_rodata + NONE + Boolean + 0 + 0 + none + Causes the alt_load() facility to copy the .rodata section. If true, this setting defines the macro ALT_LOAD_COPY_RODATA in linker.h. + none + false + + + + hal.linker.enable_alt_load_copy_rwdata + NONE + Boolean + 1 + 0 + none + Causes the alt_load() facility to copy the .rwdata section. If true, this setting defines the macro ALT_LOAD_COPY_RWDATA in linker.h. + none + false + + + + hal.linker.enable_alt_load_copy_exceptions + NONE + Boolean + 0 + 0 + none + Causes the alt_load() facility to copy the .exceptions section. If true, this setting defines the macro ALT_LOAD_COPY_EXCEPTIONS in linker.h. + none + false + + + + hal.linker.enable_exception_stack + NONE + Boolean + 0 + 0 + none + Enables use of a separate exception stack. If true, defines the macro ALT_EXCEPTION_STACK in linker.h, adds a memory region called exception_stack to linker.x, and provides the symbols __alt_exception_stack_pointer and __alt_exception_stack_limit in linker.x. + The hal.linker.exception_stack_size and hal.linker.exception_stack_memory_region_name settings must also be valid. This setting must be false for MicroC/OS-II BSPs. The exception stack can be used to improve interrupt and other exception performance if the EIC is *not* used. + false + common + + + hal.linker.exception_stack_size + NONE + DecimalNumber + 1024 + 1024 + none + Size of the exception stack in bytes. + Only used if hal.linker.enable_exception_stack is true. + false + common + + + hal.linker.exception_stack_memory_region_name + NONE + UnquotedString + onchip_memory + none + none + Name of the existing memory region that will be divided up to create the 'exception_stack' memory region. The selected region name will be adjusted automatically when the BSP is generated to create the 'exception_stack' memory region. + Only used if hal.linker.enable_exception_stack is true. + false + common + + + hal.linker.enable_interrupt_stack + NONE + Boolean + 0 + 0 + none + Enables use of a separate interrupt stack. If true, defines the macro ALT_INTERRUPT_STACK in linker.h, adds a memory region called interrupt_stack to linker.x, and provides the symbols __alt_interrupt_stack_pointer and __alt_interrupt_stack_limit in linker.x. + The hal.linker.interrupt_stack_size and hal.linker.interrupt_stack_memory_region_name settings must also be valid. This setting must be false for MicroC/OS-II BSPs. Only enable if the EIC is used exclusively. The exception stack can be used to improve interrupt and other exception performance if the EIC is *not* used. + false + common + + + hal.linker.interrupt_stack_size + NONE + DecimalNumber + 1024 + 1024 + none + Size of the interrupt stack in bytes. + Only used if hal.linker.enable_interrupt_stack is true. + false + common + + + hal.linker.interrupt_stack_memory_region_name + NONE + UnquotedString + onchip_memory + none + none + Name of the existing memory region that will be divided up to create the 'interrupt_stack' memory region. The selected region name will be adjusted automatically when the BSP is generated to create the 'interrupt_stack' memory region. + Only used if hal.linker.enable_interrupt_stack is true. + false + common + + + hal.stdin + NONE + UnquotedString + jtag_uart + none + system_h_define + Slave descriptor of STDIN character-mode device. This setting is used by the ALT_STDIN family of defines in system.h. + none + false + common + + + hal.stdout + NONE + UnquotedString + jtag_uart + none + system_h_define + Slave descriptor of STDOUT character-mode device. This setting is used by the ALT_STDOUT family of defines in system.h. + none + false + common + + + hal.stderr + NONE + UnquotedString + jtag_uart + none + system_h_define + Slave descriptor of STDERR character-mode device. This setting is used by the ALT_STDERR family of defines in system.h. + none + false + common + + + hal.log_port + NONE + UnquotedString + none + none + public_mk_define + Slave descriptor of debug logging character-mode device. If defined, it enables extra debug messages in the HAL source. This setting is used by the ALT_LOG_PORT family of defines in system.h. + none + false + none + + + hal.make.build_pre_process + BUILD_PRE_PROCESS + UnquotedString + none + none + makefile_variable + Command executed before BSP built. + none + false + none + + + hal.make.ar_pre_process + AR_PRE_PROCESS + UnquotedString + none + none + makefile_variable + Command executed before archiver execution. + none + false + none + + + hal.make.bsp_cflags_defined_symbols + BSP_CFLAGS_DEFINED_SYMBOLS + UnquotedString + none + none + makefile_variable + Preprocessor macros to define. A macro definition in this setting has the same effect as a "#define" in source code. Adding "-DALT_DEBUG" to this setting has the same effect as "#define ALT_DEBUG" in a souce file. Adding "-DFOO=1" to this setting is equivalent to the macro "#define FOO 1" in a source file. Macros defined with this setting are applied to all .S, .c, and C++ files in the BSP. This setting defines the value of BSP_CFLAGS_DEFINED_SYMBOLS in the BSP Makefile. + none + false + none + + + hal.make.ar_post_process + AR_POST_PROCESS + UnquotedString + none + none + makefile_variable + Command executed after archiver execution. + none + false + none + + + hal.make.as + AS + UnquotedString + nios2-elf-gcc + nios2-elf-gcc + makefile_variable + Assembler command. Note that CC is used for .S files. + none + false + none + + + hal.make.build_post_process + BUILD_POST_PROCESS + UnquotedString + none + none + makefile_variable + Command executed after BSP built. + none + false + none + + + hal.make.bsp_cflags_debug + BSP_CFLAGS_DEBUG + UnquotedString + -g + -g + makefile_variable + C/C++ compiler debug level. '-g' provides the default set of debug symbols typically required to debug a typical application. Omitting '-g' removes debug symbols from the ELF. This setting defines the value of BSP_CFLAGS_DEBUG in Makefile. + none + false + common + + + hal.make.ar + AR + UnquotedString + nios2-elf-ar + nios2-elf-ar + makefile_variable + Archiver command. Creates library files. + none + false + none + + + hal.make.rm + RM + UnquotedString + rm -f + rm -f + makefile_variable + Command used to remove files during 'clean' target. + none + false + none + + + hal.make.cxx_pre_process + CXX_PRE_PROCESS + UnquotedString + none + none + makefile_variable + Command executed before each C++ file is compiled. + none + false + none + + + hal.make.bsp_cflags_warnings + BSP_CFLAGS_WARNINGS + UnquotedString + -Wall + -Wall + makefile_variable + C/C++ compiler warning level. "-Wall" is commonly used.This setting defines the value of BSP_CFLAGS_WARNINGS in Makefile. + none + false + none + + + hal.make.bsp_arflags + BSP_ARFLAGS + UnquotedString + -src + -src + makefile_variable + Custom flags only passed to the archiver. This content of this variable is directly passed to the archiver rather than the more standard "ARFLAGS". The reason for this is that GNU Make assumes some default content in ARFLAGS. This setting defines the value of BSP_ARFLAGS in Makefile. + none + false + none + + + hal.make.bsp_cflags_optimization + BSP_CFLAGS_OPTIMIZATION + UnquotedString + '-Os' + -O0 + makefile_variable + C/C++ compiler optimization level. "-O0" = no optimization,"-O2" = "normal" optimization, etc. "-O0" is recommended for code that you want to debug since compiler optimization can remove variables and produce non-sequential execution of code while debugging. This setting defines the value of BSP_CFLAGS_OPTIMIZATION in Makefile. + none + false + common + + + hal.make.as_post_process + AS_POST_PROCESS + UnquotedString + none + none + makefile_variable + Command executed after each assembly file is compiled. + none + false + none + + + hal.make.cc_pre_process + CC_PRE_PROCESS + UnquotedString + none + none + makefile_variable + Command executed before each .c/.S file is compiled. + none + false + none + + + hal.make.bsp_asflags + BSP_ASFLAGS + UnquotedString + -Wa,-gdwarf2 + -Wa,-gdwarf2 + makefile_variable + Custom flags only passed to the assembler. This setting defines the value of BSP_ASFLAGS in Makefile. + none + false + none + + + hal.make.as_pre_process + AS_PRE_PROCESS + UnquotedString + none + none + makefile_variable + Command executed before each assembly file is compiled. + none + false + none + + + hal.make.bsp_cflags_undefined_symbols + BSP_CFLAGS_UNDEFINED_SYMBOLS + UnquotedString + none + none + makefile_variable + Preprocessor macros to undefine. Undefined macros are similar to defined macros, but replicate the "#undef" directive in source code. To undefine the macro FOO use the syntax "-u FOO" in this setting. This is equivalent to "#undef FOO" in a source file. Note: the syntax differs from macro definition (there is a space, i.e. "-u FOO" versus "-DFOO"). Macros defined with this setting are applied to all .S, .c, and C++ files in the BSP. This setting defines the value of BSP_CFLAGS_UNDEFINED_SYMBOLS in the BSP Makefile. + none + false + none + + + hal.make.cc_post_process + CC_POST_PROCESS + UnquotedString + none + none + makefile_variable + Command executed after each .c/.S file is compiled. + none + false + none + + + hal.make.cxx_post_process + CXX_POST_PROCESS + UnquotedString + none + none + makefile_variable + Command executed before each C++ file is compiled. + none + false + none + + + hal.make.cc + CC + UnquotedString + nios2-elf-gcc -xc + nios2-elf-gcc -xc + makefile_variable + C compiler command. + none + false + none + + + hal.make.bsp_cxx_flags + BSP_CXXFLAGS + UnquotedString + none + none + makefile_variable + Custom flags only passed to the C++ compiler. This setting defines the value of BSP_CXXFLAGS in Makefile. + none + false + none + + + hal.make.bsp_inc_dirs + BSP_INC_DIRS + UnquotedString + none + none + makefile_variable + Space separated list of extra include directories to scan for header files. Directories are relative to the top-level BSP directory. The -I prefix's added by the makefile so don't add it here. This setting defines the value of BSP_INC_DIRS in Makefile. + none + false + none + + + hal.make.cxx + CXX + UnquotedString + nios2-elf-gcc -xc++ + nios2-elf-gcc -xc++ + makefile_variable + C++ compiler command. + none + false + none + + + hal.make.bsp_cflags_user_flags + BSP_CFLAGS_USER_FLAGS + UnquotedString + none + none + makefile_variable + Custom flags passed to the compiler when compiling C, C++, and .S files. This setting defines the value of BSP_CFLAGS_USER_FLAGS in Makefile. + none + false + none + + + hal.make.ignore_system_derived.sopc_system_id + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query SOPC system for system ID. If true ignores export of 'SOPC_SYSID_FLAG += --id=<sysid>' and 'ELF_PATCH_FLAG += --id=<sysid>' to public.mk. + none + false + none + + + hal.make.ignore_system_derived.sopc_system_timestamp + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query SOPC system for system timestamp. If true ignores export of 'SOPC_SYSID_FLAG += --timestamp=<timestamp>' and 'ELF_PATCH_FLAG += --timestamp=<timestamp>' to public.mk. + none + false + none + + + hal.make.ignore_system_derived.sopc_system_base_address + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query SOPC system for system ID base address. If true ignores export of 'SOPC_SYSID_FLAG += --sidp=<address>' and 'ELF_PATCH_FLAG += --sidp=<address>' to public.mk. + none + false + none + + + hal.make.ignore_system_derived.sopc_simulation_enabled + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query if SOPC system has simulation enabled. If true ignores export of 'ELF_PATCH_FLAG += --simulation_enabled' to public.mk. + none + false + none + + + hal.make.ignore_system_derived.fpu_present + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query if SOPC system has FPU present. If true ignores export of 'ALT_CFLAGS += -mhard-float' to public.mk if FPU is found in the system. If true ignores export of 'ALT_CFLAGS += -mhard-soft' if FPU is not found in the system. + none + false + none + + + hal.make.ignore_system_derived.hardware_multiplier_present + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query if SOPC system has multiplier present. If true ignores export of 'ALT_CFLAGS += -mno-hw-mul' to public.mk if no multiplier is found in the system. If true ignores export of 'ALT_CFLAGS += -mhw-mul' if multiplier is found in the system. + none + false + none + + + hal.make.ignore_system_derived.hardware_mulx_present + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query if SOPC system has hardware mulx present. If true ignores export of 'ALT_CFLAGS += -mno-hw-mulx' to public.mk if no mulx is found in the system. If true ignores export of 'ALT_CFLAGS += -mhw-mulx' if mulx is found in the system. + none + false + none + + + hal.make.ignore_system_derived.hardware_divide_present + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query if SOPC system has hardware divide present. If true ignores export of 'ALT_CFLAGS += -mno-hw-div' to public.mk if no division is found in system. If true ignores export of 'ALT_CFLAGS += -mhw-div' if division is found in the system. + none + false + none + + + hal.make.ignore_system_derived.debug_core_present + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query if SOPC system has a debug core present. If true ignores export of 'CPU_HAS_DEBUG_CORE = 1' to public.mk if a debug core is found in the system. If true ignores export of 'CPU_HAS_DEBUG_CORE = 0' if no debug core is found in the system. + none + false + none + + + hal.make.ignore_system_derived.big_endian + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query if SOPC system is big endian. If true ignores export of 'ALT_CFLAGS += -EB' to public.mk if big endian system. If true ignores export of 'ALT_CFLAGS += -EL' if little endian system. + none + false + none + + + hal.make.ignore_system_derived.hardware_fp_cust_inst_divider_present + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query if SOPC system floating point custom instruction with a divider is present. If true ignores export of 'ALT_CFLAGS += -mcustom-fpu-cfg=60-2' and 'ALT_LDFLAGS += -mcustom-fpu-cfg=60-2' to public.mk if the custom instruction is found in the system. + none + false + none + + + hal.make.ignore_system_derived.hardware_fp_cust_inst_no_divider_present + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query if SOPC system floating point custom instruction without a divider is present. If true ignores export of 'ALT_CFLAGS += -mcustom-fpu-cfg=60-1' and 'ALT_LDFLAGS += -mcustom-fpu-cfg=60-1' to public.mk if the custom instruction is found in the system. + none + false + none + + + hal.enable_exit + ALT_NO_EXIT + Boolean + 0 + 1 + public_mk_define + Add exit() support. This option increases code footprint if your "main()" routine does "return" or call "exit()". If false, adds -DALT_NO_EXIT to ALT_CPPFLAGS in public.mk, and reduces footprint + none + false + none + + + hal.enable_small_c_library + NONE + Boolean + 1 + 0 + public_mk_define + Causes the small newlib (C library) to be used. This reduces code and data footprint at the expense of reduced functionality. Several newlib features are removed such as floating-point support in printf(), stdin input routines, and buffered I/O. The small C library is not compatible with Micrium MicroC/OS-II. If true, adds -msmallc to ALT_LDFLAGS in public.mk. + none + false + common + + + hal.enable_clean_exit + ALT_NO_CLEAN_EXIT + Boolean + 0 + 1 + public_mk_define + When your application exits, close file descriptors, call C++ destructors, etc. Code footprint can be reduced by disabling clean exit. If disabled, adds -DALT_NO_CLEAN_EXIT to ALT_CPPFLAGS and -Wl,--defsym, exit=_exit to ALT_LDFLAGS in public.mk. + none + false + none + + + hal.enable_runtime_stack_checking + ALT_STACK_CHECK + Boolean + 0 + 0 + public_mk_define + Turns on HAL runtime stack checking feature. Enabling this setting causes additional code to be placed into each subroutine call to generate an exception if a stack collision occurs with the heap or statically allocated data. If true, adds -DALT_STACK_CHECK and -mstack-check to ALT_CPPFLAGS in public.mk. + none + false + none + + + hal.enable_gprof + ALT_PROVIDE_GMON + Boolean + 0 + 0 + public_mk_define + Causes code to be compiled with gprof profiling enabled and the application ELF to be linked with the GPROF library. If true, adds -DALT_PROVIDE_GMON to ALT_CPPFLAGS and -pg to ALT_CFLAGS in public.mk. + none + false + common + + + hal.enable_c_plus_plus + ALT_NO_C_PLUS_PLUS + Boolean + 0 + 1 + public_mk_define + Enable support for a subset of the C++ language. This option increases code footprint by adding support for C++ constructors. Certain features, such as multiple inheritance and exceptions are not supported. If false, adds -DALT_NO_C_PLUS_PLUS to ALT_CPPFLAGS in public.mk, and reduces code footprint. + none + false + none + + + hal.enable_reduced_device_drivers + ALT_USE_SMALL_DRIVERS + Boolean + 1 + 0 + public_mk_define + Certain drivers are compiled with reduced functionality to reduce code footprint. Not all drivers observe this setting. The altera_avalon_uart and altera_avalon_jtag_uart drivers switch from interrupt-driven to polled operation. CAUTION: Several device drivers are disabled entirely. These include the altera_avalon_cfi_flash, altera_avalon_epcs_flash_controller, and altera_avalon_lcd_16207 drivers. This can result in certain API (HAL flash access routines) to fail. You can define a symbol provided by each driver to prevent it from being removed. If true, adds -DALT_USE_SMALL_DRIVERS to ALT_CPPFLAGS in public.mk. + none + false + common + + + hal.enable_lightweight_device_driver_api + ALT_USE_DIRECT_DRIVERS + Boolean + 1 + 0 + public_mk_define + Enables lightweight device driver API. This reduces code and data footprint by removing the HAL layer that maps device names (e.g. /dev/uart0) to file descriptors. Instead, driver routines are called directly. The open(), close(), and lseek() routines will always fail if called. The read(), write(), fstat(), ioctl(), and isatty() routines only work for the stdio devices. If true, adds -DALT_USE_DIRECT_DRIVERS to ALT_CPPFLAGS in public.mk. + The Altera Host and read-only ZIP file systems can't be used if hal.enable_lightweight_device_driver_api is true. + false + none + + + hal.enable_mul_div_emulation + ALT_NO_INSTRUCTION_EMULATION + Boolean + 0 + 0 + public_mk_define + Adds code to emulate multiply and divide instructions in case they are executed but aren't present in the CPU. Normally this isn't required because the compiler won't use multiply and divide instructions that aren't present in the CPU. If false, adds -DALT_NO_INSTRUCTION_EMULATION to ALT_CPPFLAGS in public.mk. + none + false + none + + + hal.enable_sim_optimize + ALT_SIM_OPTIMIZE + Boolean + 0 + 0 + public_mk_define + The BSP is compiled with optimizations to speedup HDL simulation such as initializing the cache, clearing the .bss section, and skipping long delay loops. If true, adds -DALT_SIM_OPTIMIZE to ALT_CPPFLAGS in public.mk. + When this setting is true, the BSP shouldn't be used to build applications that are expected to run real hardware. + false + common + + + hal.enable_sopc_sysid_check + NONE + Boolean + 1 + 1 + public_mk_define + Enable SOPC Builder System ID. If a System ID SOPC Builder component is connected to the CPU associated with this BSP, it will be enabled in the creation of command-line arguments to download an ELF to the target. Otherwise, system ID and timestamp values are left out of public.mk for application Makefile "download-elf" target definition. With the system ID check disabled, the Nios II EDS tools will not automatically ensure that the application .elf file (and BSP it is linked against) corresponds to the hardware design on the target. If false, adds --accept-bad-sysid to SOPC_SYSID_FLAG in public.mk. + none + false + none + + + hal.custom_newlib_flags + CUSTOM_NEWLIB_FLAGS + UnquotedString + none + none + public_mk_define + Build a custom version of newlib with the specified space-separated compiler flags. + The custom newlib build will be placed in the &lt;bsp root>/newlib directory, and will be used only for applications that utilize this BSP. + false + none + + + hal.log_flags + ALT_LOG_FLAGS + DecimalNumber + 0 + 0 + public_mk_define + The value is assigned to ALT_LOG_FLAGS in the generated public.mk. See hal.log_port setting description. Values can be -1 through 3. + hal.log_port must be set for this to be used. + false + none + + + altera_avalon_jtag_uart_driver.enable_small_driver + ALTERA_AVALON_JTAG_UART_SMALL + BooleanDefineOnly + false + false + public_mk_define + Small-footprint (polled mode) driver + none + false + + + + altera_avalon_jtag_uart_driver.enable_jtag_uart_ignore_fifo_full_error + ALTERA_AVALON_JTAG_UART_IGNORE_FIFO_FULL_ERROR + BooleanDefineOnly + false + false + public_mk_define + Enable JTAG UART driver to recover when host is inactive causing buffer to full without returning error. Printf will not fail with this recovery. + none + false + + + + onchip_memory + 0x00000000 - 0x00000FFF + 4096 + memory + + + LEDRs + 0x00002000 - 0x0000200F + 16 + + + + switches + 0x00002010 - 0x0000201F + 16 + + + + LEDs + 0x00002020 - 0x0000202F + 16 + + + + jtag_uart + 0x00002030 - 0x00002037 + 8 + printable + + + .text + onchip_memory + + + .rodata + onchip_memory + + + .rwdata + onchip_memory + + + .bss + onchip_memory + + + .heap + onchip_memory + + + .stack + onchip_memory + + \ No newline at end of file diff --git a/software/qsys_tutorial_green_bsp/summary.html b/software/qsys_tutorial_green_bsp/summary.html new file mode 100644 index 0000000..b20197c --- /dev/null +++ b/software/qsys_tutorial_green_bsp/summary.html @@ -0,0 +1,2011 @@ + +Altera Nios II BSP Summary + +

BSP Description

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
BSP Type:hal
SOPC Design File:C:\Users\takayun\Desktop\qsys_tutorial\nios_system.sopcinfo
Quartus JDI File:default
CPU:nios2_processor
BSP Settings File:.\settings.bsp
BSP Version:default
BSP Generated On:2016/10/27 10:41:20
BSP Generated Timestamp:1477532480041
BSP Generated Location:C:\Users\takayun\Desktop\qsys_tutorial\software\qsys_tutorial_green_bsp
+
+

Nios II Memory Map

+ + + + + + + + + + + + + + + + + + + +
Slave DescriptorAddress RangeSizeAttributes
jtag_uart0x00002030 - 0x000020378printable
LEDs0x00002020 - 0x0000202F16 
switches0x00002010 - 0x0000201F16 
LEDRs0x00002000 - 0x0000200F16 
onchip_memory0x00000000 - 0x00000FFF4096memory
+
+
+

Linker Regions

+ + + + +
RegionAddress RangeSizeMemoryOffset
+
+
+

Linker Section Mappings

+ + + + + + + + + + + + + + + + + + + + + + +
SectionRegion
.textonchip_memory
.rodataonchip_memory
.rwdataonchip_memory
.bssonchip_memory
.heaponchip_memory
.stackonchip_memory
+

Settings

+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:altera_avalon_jtag_uart_driver.enable_jtag_uart_ignore_fifo_full_error
Identifier:ALTERA_AVALON_JTAG_UART_IGNORE_FIFO_FULL_ERROR
Default Value:false
Value:false
Type:BooleanDefineOnly
Destination:public_mk_define
Description:Enable JTAG UART driver to recover when host is inactive causing buffer to full without returning error. Printf will not fail with this recovery.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:altera_avalon_jtag_uart_driver.enable_small_driver
Identifier:ALTERA_AVALON_JTAG_UART_SMALL
Default Value:false
Value:false
Type:BooleanDefineOnly
Destination:public_mk_define
Description:Small-footprint (polled mode) driver
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.custom_newlib_flags
Identifier:CUSTOM_NEWLIB_FLAGS
Default Value:none
Value:none
Type:UnquotedString
Destination:public_mk_define
Description:Build a custom version of newlib with the specified space-separated compiler flags.
Restrictions:The custom newlib build will be placed in the &lt;bsp root>/newlib directory, and will be used only for applications that utilize this BSP.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_c_plus_plus
Identifier:ALT_NO_C_PLUS_PLUS
Default Value:1
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable support for a subset of the C++ language. This option increases code footprint by adding support for C++ constructors. Certain features, such as multiple inheritance and exceptions are not supported. If false, adds -DALT_NO_C_PLUS_PLUS to ALT_CPPFLAGS in public.mk, and reduces code footprint.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_clean_exit
Identifier:ALT_NO_CLEAN_EXIT
Default Value:1
Value:0
Type:Boolean
Destination:public_mk_define
Description:When your application exits, close file descriptors, call C++ destructors, etc. Code footprint can be reduced by disabling clean exit. If disabled, adds -DALT_NO_CLEAN_EXIT to ALT_CPPFLAGS and -Wl,--defsym, exit=_exit to ALT_LDFLAGS in public.mk.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_exit
Identifier:ALT_NO_EXIT
Default Value:1
Value:0
Type:Boolean
Destination:public_mk_define
Description:Add exit() support. This option increases code footprint if your "main()" routine does "return" or call "exit()". If false, adds -DALT_NO_EXIT to ALT_CPPFLAGS in public.mk, and reduces footprint
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_gprof
Identifier:ALT_PROVIDE_GMON
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Causes code to be compiled with gprof profiling enabled and the application ELF to be linked with the GPROF library. If true, adds -DALT_PROVIDE_GMON to ALT_CPPFLAGS and -pg to ALT_CFLAGS in public.mk.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_instruction_related_exceptions_api
Identifier:ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API
Default Value:false
Value:false
Type:BooleanDefineOnly
Destination:system_h_define
Description:Enables API for registering handlers to service instruction-related exceptions. Enabling this setting increases the size of the exception entry code.
Restrictions:These exception types can be generated if various processor options are enabled, such as the MMU, MPU, or other advanced exception types.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_lightweight_device_driver_api
Identifier:ALT_USE_DIRECT_DRIVERS
Default Value:0
Value:1
Type:Boolean
Destination:public_mk_define
Description:Enables lightweight device driver API. This reduces code and data footprint by removing the HAL layer that maps device names (e.g. /dev/uart0) to file descriptors. Instead, driver routines are called directly. The open(), close(), and lseek() routines will always fail if called. The read(), write(), fstat(), ioctl(), and isatty() routines only work for the stdio devices. If true, adds -DALT_USE_DIRECT_DRIVERS to ALT_CPPFLAGS in public.mk.
Restrictions:The Altera Host and read-only ZIP file systems can't be used if hal.enable_lightweight_device_driver_api is true.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_mul_div_emulation
Identifier:ALT_NO_INSTRUCTION_EMULATION
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Adds code to emulate multiply and divide instructions in case they are executed but aren't present in the CPU. Normally this isn't required because the compiler won't use multiply and divide instructions that aren't present in the CPU. If false, adds -DALT_NO_INSTRUCTION_EMULATION to ALT_CPPFLAGS in public.mk.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_reduced_device_drivers
Identifier:ALT_USE_SMALL_DRIVERS
Default Value:0
Value:1
Type:Boolean
Destination:public_mk_define
Description:Certain drivers are compiled with reduced functionality to reduce code footprint. Not all drivers observe this setting. The altera_avalon_uart and altera_avalon_jtag_uart drivers switch from interrupt-driven to polled operation. CAUTION: Several device drivers are disabled entirely. These include the altera_avalon_cfi_flash, altera_avalon_epcs_flash_controller, and altera_avalon_lcd_16207 drivers. This can result in certain API (HAL flash access routines) to fail. You can define a symbol provided by each driver to prevent it from being removed. If true, adds -DALT_USE_SMALL_DRIVERS to ALT_CPPFLAGS in public.mk.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_runtime_stack_checking
Identifier:ALT_STACK_CHECK
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Turns on HAL runtime stack checking feature. Enabling this setting causes additional code to be placed into each subroutine call to generate an exception if a stack collision occurs with the heap or statically allocated data. If true, adds -DALT_STACK_CHECK and -mstack-check to ALT_CPPFLAGS in public.mk.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_sim_optimize
Identifier:ALT_SIM_OPTIMIZE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:The BSP is compiled with optimizations to speedup HDL simulation such as initializing the cache, clearing the .bss section, and skipping long delay loops. If true, adds -DALT_SIM_OPTIMIZE to ALT_CPPFLAGS in public.mk.
Restrictions:When this setting is true, the BSP shouldn't be used to build applications that are expected to run real hardware.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_small_c_library
Identifier:NONE
Default Value:0
Value:1
Type:Boolean
Destination:public_mk_define
Description:Causes the small newlib (C library) to be used. This reduces code and data footprint at the expense of reduced functionality. Several newlib features are removed such as floating-point support in printf(), stdin input routines, and buffered I/O. The small C library is not compatible with Micrium MicroC/OS-II. If true, adds -msmallc to ALT_LDFLAGS in public.mk.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_sopc_sysid_check
Identifier:NONE
Default Value:1
Value:1
Type:Boolean
Destination:public_mk_define
Description:Enable SOPC Builder System ID. If a System ID SOPC Builder component is connected to the CPU associated with this BSP, it will be enabled in the creation of command-line arguments to download an ELF to the target. Otherwise, system ID and timestamp values are left out of public.mk for application Makefile "download-elf" target definition. With the system ID check disabled, the Nios II EDS tools will not automatically ensure that the application .elf file (and BSP it is linked against) corresponds to the hardware design on the target. If false, adds --accept-bad-sysid to SOPC_SYSID_FLAG in public.mk.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.linker.allow_code_at_reset
Identifier:ALT_ALLOW_CODE_AT_RESET
Default Value:0
Value:1
Type:Boolean
Destination:none
Description:Indicates if initialization code is allowed at the reset address. If true, defines the macro ALT_ALLOW_CODE_AT_RESET in linker.h.
Restrictions:If true, defines the macro ALT_ALLOW_CODE_AT_RESET in linker.h. This setting is typically false if an external bootloader (e.g. flash bootloader) is present.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.linker.enable_alt_load
Identifier:NONE
Default Value:0
Value:1
Type:Boolean
Destination:none
Description:Enables the alt_load() facility. The alt_load() facility copies sections from the .text memory into RAM. If true, this setting sets up the VMA/LMA of sections in linker.x to allow them to be loaded into the .text memory.
Restrictions:This setting is typically false if an external bootloader (e.g. flash bootloader) is present.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.linker.enable_alt_load_copy_exceptions
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:none
Description:Causes the alt_load() facility to copy the .exceptions section. If true, this setting defines the macro ALT_LOAD_COPY_EXCEPTIONS in linker.h.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.linker.enable_alt_load_copy_rodata
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:none
Description:Causes the alt_load() facility to copy the .rodata section. If true, this setting defines the macro ALT_LOAD_COPY_RODATA in linker.h.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.linker.enable_alt_load_copy_rwdata
Identifier:NONE
Default Value:0
Value:1
Type:Boolean
Destination:none
Description:Causes the alt_load() facility to copy the .rwdata section. If true, this setting defines the macro ALT_LOAD_COPY_RWDATA in linker.h.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.linker.enable_exception_stack
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:none
Description:Enables use of a separate exception stack. If true, defines the macro ALT_EXCEPTION_STACK in linker.h, adds a memory region called exception_stack to linker.x, and provides the symbols __alt_exception_stack_pointer and __alt_exception_stack_limit in linker.x.
Restrictions:The hal.linker.exception_stack_size and hal.linker.exception_stack_memory_region_name settings must also be valid. This setting must be false for MicroC/OS-II BSPs. The exception stack can be used to improve interrupt and other exception performance if the EIC is *not* used.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.linker.enable_interrupt_stack
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:none
Description:Enables use of a separate interrupt stack. If true, defines the macro ALT_INTERRUPT_STACK in linker.h, adds a memory region called interrupt_stack to linker.x, and provides the symbols __alt_interrupt_stack_pointer and __alt_interrupt_stack_limit in linker.x.
Restrictions:The hal.linker.interrupt_stack_size and hal.linker.interrupt_stack_memory_region_name settings must also be valid. This setting must be false for MicroC/OS-II BSPs. Only enable if the EIC is used exclusively. The exception stack can be used to improve interrupt and other exception performance if the EIC is *not* used.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.linker.exception_stack_memory_region_name
Identifier:NONE
Default Value:none
Value:onchip_memory
Type:UnquotedString
Destination:none
Description:Name of the existing memory region that will be divided up to create the 'exception_stack' memory region. The selected region name will be adjusted automatically when the BSP is generated to create the 'exception_stack' memory region.
Restrictions:Only used if hal.linker.enable_exception_stack is true.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.linker.exception_stack_size
Identifier:NONE
Default Value:1024
Value:1024
Type:DecimalNumber
Destination:none
Description:Size of the exception stack in bytes.
Restrictions:Only used if hal.linker.enable_exception_stack is true.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.linker.interrupt_stack_memory_region_name
Identifier:NONE
Default Value:none
Value:onchip_memory
Type:UnquotedString
Destination:none
Description:Name of the existing memory region that will be divided up to create the 'interrupt_stack' memory region. The selected region name will be adjusted automatically when the BSP is generated to create the 'interrupt_stack' memory region.
Restrictions:Only used if hal.linker.enable_interrupt_stack is true.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.linker.interrupt_stack_size
Identifier:NONE
Default Value:1024
Value:1024
Type:DecimalNumber
Destination:none
Description:Size of the interrupt stack in bytes.
Restrictions:Only used if hal.linker.enable_interrupt_stack is true.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.log_flags
Identifier:ALT_LOG_FLAGS
Default Value:0
Value:0
Type:DecimalNumber
Destination:public_mk_define
Description:The value is assigned to ALT_LOG_FLAGS in the generated public.mk. See hal.log_port setting description. Values can be -1 through 3.
Restrictions:hal.log_port must be set for this to be used.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.log_port
Identifier:NONE
Default Value:none
Value:none
Type:UnquotedString
Destination:public_mk_define
Description:Slave descriptor of debug logging character-mode device. If defined, it enables extra debug messages in the HAL source. This setting is used by the ALT_LOG_PORT family of defines in system.h.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ar
Identifier:AR
Default Value:nios2-elf-ar
Value:nios2-elf-ar
Type:UnquotedString
Destination:makefile_variable
Description:Archiver command. Creates library files.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ar_post_process
Identifier:AR_POST_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed after archiver execution.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ar_pre_process
Identifier:AR_PRE_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed before archiver execution.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.as
Identifier:AS
Default Value:nios2-elf-gcc
Value:nios2-elf-gcc
Type:UnquotedString
Destination:makefile_variable
Description:Assembler command. Note that CC is used for .S files.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.as_post_process
Identifier:AS_POST_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed after each assembly file is compiled.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.as_pre_process
Identifier:AS_PRE_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed before each assembly file is compiled.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.bsp_arflags
Identifier:BSP_ARFLAGS
Default Value:-src
Value:-src
Type:UnquotedString
Destination:makefile_variable
Description:Custom flags only passed to the archiver. This content of this variable is directly passed to the archiver rather than the more standard "ARFLAGS". The reason for this is that GNU Make assumes some default content in ARFLAGS. This setting defines the value of BSP_ARFLAGS in Makefile.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.bsp_asflags
Identifier:BSP_ASFLAGS
Default Value:-Wa,-gdwarf2
Value:-Wa,-gdwarf2
Type:UnquotedString
Destination:makefile_variable
Description:Custom flags only passed to the assembler. This setting defines the value of BSP_ASFLAGS in Makefile.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.bsp_cflags_debug
Identifier:BSP_CFLAGS_DEBUG
Default Value:-g
Value:-g
Type:UnquotedString
Destination:makefile_variable
Description:C/C++ compiler debug level. '-g' provides the default set of debug symbols typically required to debug a typical application. Omitting '-g' removes debug symbols from the ELF. This setting defines the value of BSP_CFLAGS_DEBUG in Makefile.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.bsp_cflags_defined_symbols
Identifier:BSP_CFLAGS_DEFINED_SYMBOLS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Preprocessor macros to define. A macro definition in this setting has the same effect as a "#define" in source code. Adding "-DALT_DEBUG" to this setting has the same effect as "#define ALT_DEBUG" in a souce file. Adding "-DFOO=1" to this setting is equivalent to the macro "#define FOO 1" in a source file. Macros defined with this setting are applied to all .S, .c, and C++ files in the BSP. This setting defines the value of BSP_CFLAGS_DEFINED_SYMBOLS in the BSP Makefile.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.bsp_cflags_optimization
Identifier:BSP_CFLAGS_OPTIMIZATION
Default Value:-O0
Value:'-Os'
Type:UnquotedString
Destination:makefile_variable
Description:C/C++ compiler optimization level. "-O0" = no optimization,"-O2" = "normal" optimization, etc. "-O0" is recommended for code that you want to debug since compiler optimization can remove variables and produce non-sequential execution of code while debugging. This setting defines the value of BSP_CFLAGS_OPTIMIZATION in Makefile.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.bsp_cflags_undefined_symbols
Identifier:BSP_CFLAGS_UNDEFINED_SYMBOLS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Preprocessor macros to undefine. Undefined macros are similar to defined macros, but replicate the "#undef" directive in source code. To undefine the macro FOO use the syntax "-u FOO" in this setting. This is equivalent to "#undef FOO" in a source file. Note: the syntax differs from macro definition (there is a space, i.e. "-u FOO" versus "-DFOO"). Macros defined with this setting are applied to all .S, .c, and C++ files in the BSP. This setting defines the value of BSP_CFLAGS_UNDEFINED_SYMBOLS in the BSP Makefile.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.bsp_cflags_user_flags
Identifier:BSP_CFLAGS_USER_FLAGS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Custom flags passed to the compiler when compiling C, C++, and .S files. This setting defines the value of BSP_CFLAGS_USER_FLAGS in Makefile.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.bsp_cflags_warnings
Identifier:BSP_CFLAGS_WARNINGS
Default Value:-Wall
Value:-Wall
Type:UnquotedString
Destination:makefile_variable
Description:C/C++ compiler warning level. "-Wall" is commonly used.This setting defines the value of BSP_CFLAGS_WARNINGS in Makefile.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.bsp_cxx_flags
Identifier:BSP_CXXFLAGS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Custom flags only passed to the C++ compiler. This setting defines the value of BSP_CXXFLAGS in Makefile.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.bsp_inc_dirs
Identifier:BSP_INC_DIRS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Space separated list of extra include directories to scan for header files. Directories are relative to the top-level BSP directory. The -I prefix's added by the makefile so don't add it here. This setting defines the value of BSP_INC_DIRS in Makefile.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.build_post_process
Identifier:BUILD_POST_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed after BSP built.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.build_pre_process
Identifier:BUILD_PRE_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed before BSP built.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.cc
Identifier:CC
Default Value:nios2-elf-gcc -xc
Value:nios2-elf-gcc -xc
Type:UnquotedString
Destination:makefile_variable
Description:C compiler command.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.cc_post_process
Identifier:CC_POST_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed after each .c/.S file is compiled.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.cc_pre_process
Identifier:CC_PRE_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed before each .c/.S file is compiled.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.cxx
Identifier:CXX
Default Value:nios2-elf-gcc -xc++
Value:nios2-elf-gcc -xc++
Type:UnquotedString
Destination:makefile_variable
Description:C++ compiler command.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.cxx_post_process
Identifier:CXX_POST_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed before each C++ file is compiled.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.cxx_pre_process
Identifier:CXX_PRE_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed before each C++ file is compiled.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.big_endian
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query if SOPC system is big endian. If true ignores export of 'ALT_CFLAGS += -EB' to public.mk if big endian system. If true ignores export of 'ALT_CFLAGS += -EL' if little endian system.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.debug_core_present
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query if SOPC system has a debug core present. If true ignores export of 'CPU_HAS_DEBUG_CORE = 1' to public.mk if a debug core is found in the system. If true ignores export of 'CPU_HAS_DEBUG_CORE = 0' if no debug core is found in the system.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.fpu_present
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query if SOPC system has FPU present. If true ignores export of 'ALT_CFLAGS += -mhard-float' to public.mk if FPU is found in the system. If true ignores export of 'ALT_CFLAGS += -mhard-soft' if FPU is not found in the system.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.hardware_divide_present
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query if SOPC system has hardware divide present. If true ignores export of 'ALT_CFLAGS += -mno-hw-div' to public.mk if no division is found in system. If true ignores export of 'ALT_CFLAGS += -mhw-div' if division is found in the system.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.hardware_fp_cust_inst_divider_present
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query if SOPC system floating point custom instruction with a divider is present. If true ignores export of 'ALT_CFLAGS += -mcustom-fpu-cfg=60-2' and 'ALT_LDFLAGS += -mcustom-fpu-cfg=60-2' to public.mk if the custom instruction is found in the system.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.hardware_fp_cust_inst_no_divider_present
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query if SOPC system floating point custom instruction without a divider is present. If true ignores export of 'ALT_CFLAGS += -mcustom-fpu-cfg=60-1' and 'ALT_LDFLAGS += -mcustom-fpu-cfg=60-1' to public.mk if the custom instruction is found in the system.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.hardware_multiplier_present
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query if SOPC system has multiplier present. If true ignores export of 'ALT_CFLAGS += -mno-hw-mul' to public.mk if no multiplier is found in the system. If true ignores export of 'ALT_CFLAGS += -mhw-mul' if multiplier is found in the system.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.hardware_mulx_present
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query if SOPC system has hardware mulx present. If true ignores export of 'ALT_CFLAGS += -mno-hw-mulx' to public.mk if no mulx is found in the system. If true ignores export of 'ALT_CFLAGS += -mhw-mulx' if mulx is found in the system.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.sopc_simulation_enabled
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query if SOPC system has simulation enabled. If true ignores export of 'ELF_PATCH_FLAG += --simulation_enabled' to public.mk.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.sopc_system_base_address
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query SOPC system for system ID base address. If true ignores export of 'SOPC_SYSID_FLAG += --sidp=<address>' and 'ELF_PATCH_FLAG += --sidp=<address>' to public.mk.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.sopc_system_id
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query SOPC system for system ID. If true ignores export of 'SOPC_SYSID_FLAG += --id=<sysid>' and 'ELF_PATCH_FLAG += --id=<sysid>' to public.mk.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.sopc_system_timestamp
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query SOPC system for system timestamp. If true ignores export of 'SOPC_SYSID_FLAG += --timestamp=<timestamp>' and 'ELF_PATCH_FLAG += --timestamp=<timestamp>' to public.mk.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.rm
Identifier:RM
Default Value:rm -f
Value:rm -f
Type:UnquotedString
Destination:makefile_variable
Description:Command used to remove files during 'clean' target.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.max_file_descriptors
Identifier:ALT_MAX_FD
Default Value:32
Value:4
Type:DecimalNumber
Destination:system_h_define
Description:Determines the number of file descriptors statically allocated. This setting defines the value of ALT_MAX_FD in system.h.
Restrictions:If hal.enable_lightweight_device_driver_api is true, there are no file descriptors so this setting is ignored. If hal.enable_lightweight_device_driver_api is false, this setting must be at least 4 because HAL needs a file descriptor for /dev/null, /dev/stdin, /dev/stdout, and /dev/stderr.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.stderr
Identifier:NONE
Default Value:none
Value:jtag_uart
Type:UnquotedString
Destination:system_h_define
Description:Slave descriptor of STDERR character-mode device. This setting is used by the ALT_STDERR family of defines in system.h.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.stdin
Identifier:NONE
Default Value:none
Value:jtag_uart
Type:UnquotedString
Destination:system_h_define
Description:Slave descriptor of STDIN character-mode device. This setting is used by the ALT_STDIN family of defines in system.h.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.stdout
Identifier:NONE
Default Value:none
Value:jtag_uart
Type:UnquotedString
Destination:system_h_define
Description:Slave descriptor of STDOUT character-mode device. This setting is used by the ALT_STDOUT family of defines in system.h.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.sys_clk_timer
Identifier:ALT_SYS_CLK
Default Value:none
Value:none
Type:UnquotedString
Destination:system_h_define
Description:Slave descriptor of the system clock timer device. This device provides a periodic interrupt ("tick") and is typically required for RTOS use. This setting defines the value of ALT_SYS_CLK in system.h.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.timestamp_timer
Identifier:ALT_TIMESTAMP_CLK
Default Value:none
Value:none
Type:UnquotedString
Destination:system_h_define
Description:Slave descriptor of timestamp timer device. This device is used by Altera HAL timestamp drivers for high-resolution time measurement. This setting defines the value of ALT_TIMESTAMP_CLK in system.h.
Restrictions:none
+
+
+
+ + diff --git a/software/qsys_tutorial_green_bsp/system.h b/software/qsys_tutorial_green_bsp/system.h new file mode 100644 index 0000000..1973270 --- /dev/null +++ b/software/qsys_tutorial_green_bsp/system.h @@ -0,0 +1,305 @@ +/* + * system.h - SOPC Builder system and BSP software package information + * + * Machine generated for CPU 'nios2_processor' in SOPC Builder design 'nios_system' + * SOPC Builder design path: C:/Users/takayun/Desktop/qsys_tutorial/nios_system.sopcinfo + * + * Generated: Thu Oct 27 10:41:20 JST 2016 + */ + +/* + * DO NOT MODIFY THIS FILE + * + * Changing this file will have subtle consequences + * which will almost certainly lead to a nonfunctioning + * system. If you do modify this file, be aware that your + * changes will be overwritten and lost when this file + * is generated again. + * + * DO NOT MODIFY THIS FILE + */ + +/* + * License Agreement + * + * Copyright (c) 2008 + * Altera Corporation, San Jose, California, USA. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + * This agreement shall be governed in all respects by the laws of the State + * of California and by the laws of the United States of America. + */ + +#ifndef __SYSTEM_H_ +#define __SYSTEM_H_ + +/* Include definitions from linker script generator */ +#include "linker.h" + + +/* + * CPU configuration + * + */ + +#define ALT_CPU_ARCHITECTURE "altera_nios2_qsys" +#define ALT_CPU_BIG_ENDIAN 0 +#define ALT_CPU_BREAK_ADDR 0x1820 +#define ALT_CPU_CPU_FREQ 50000000u +#define ALT_CPU_CPU_ID_SIZE 1 +#define ALT_CPU_CPU_ID_VALUE 0x00000000 +#define ALT_CPU_CPU_IMPLEMENTATION "tiny" +#define ALT_CPU_DATA_ADDR_WIDTH 0xe +#define ALT_CPU_DCACHE_LINE_SIZE 0 +#define ALT_CPU_DCACHE_LINE_SIZE_LOG2 0 +#define ALT_CPU_DCACHE_SIZE 0 +#define ALT_CPU_EXCEPTION_ADDR 0x20 +#define ALT_CPU_FLUSHDA_SUPPORTED +#define ALT_CPU_FREQ 50000000 +#define ALT_CPU_HARDWARE_DIVIDE_PRESENT 0 +#define ALT_CPU_HARDWARE_MULTIPLY_PRESENT 0 +#define ALT_CPU_HARDWARE_MULX_PRESENT 0 +#define ALT_CPU_HAS_DEBUG_CORE 1 +#define ALT_CPU_HAS_DEBUG_STUB +#define ALT_CPU_HAS_JMPI_INSTRUCTION +#define ALT_CPU_ICACHE_LINE_SIZE 0 +#define ALT_CPU_ICACHE_LINE_SIZE_LOG2 0 +#define ALT_CPU_ICACHE_SIZE 0 +#define ALT_CPU_INST_ADDR_WIDTH 0xd +#define ALT_CPU_NAME "nios2_processor" +#define ALT_CPU_RESET_ADDR 0x0 + + +/* + * CPU configuration (with legacy prefix - don't use these anymore) + * + */ + +#define NIOS2_BIG_ENDIAN 0 +#define NIOS2_BREAK_ADDR 0x1820 +#define NIOS2_CPU_FREQ 50000000u +#define NIOS2_CPU_ID_SIZE 1 +#define NIOS2_CPU_ID_VALUE 0x00000000 +#define NIOS2_CPU_IMPLEMENTATION "tiny" +#define NIOS2_DATA_ADDR_WIDTH 0xe +#define NIOS2_DCACHE_LINE_SIZE 0 +#define NIOS2_DCACHE_LINE_SIZE_LOG2 0 +#define NIOS2_DCACHE_SIZE 0 +#define NIOS2_EXCEPTION_ADDR 0x20 +#define NIOS2_FLUSHDA_SUPPORTED +#define NIOS2_HARDWARE_DIVIDE_PRESENT 0 +#define NIOS2_HARDWARE_MULTIPLY_PRESENT 0 +#define NIOS2_HARDWARE_MULX_PRESENT 0 +#define NIOS2_HAS_DEBUG_CORE 1 +#define NIOS2_HAS_DEBUG_STUB +#define NIOS2_HAS_JMPI_INSTRUCTION +#define NIOS2_ICACHE_LINE_SIZE 0 +#define NIOS2_ICACHE_LINE_SIZE_LOG2 0 +#define NIOS2_ICACHE_SIZE 0 +#define NIOS2_INST_ADDR_WIDTH 0xd +#define NIOS2_RESET_ADDR 0x0 + + +/* + * Define for each module class mastered by the CPU + * + */ + +#define __ALTERA_AVALON_JTAG_UART +#define __ALTERA_AVALON_ONCHIP_MEMORY2 +#define __ALTERA_AVALON_PIO +#define __ALTERA_NIOS2_QSYS + + +/* + * LEDRs configuration + * + */ + +#define ALT_MODULE_CLASS_LEDRs altera_avalon_pio +#define LEDRS_BASE 0x2000 +#define LEDRS_BIT_CLEARING_EDGE_REGISTER 0 +#define LEDRS_BIT_MODIFYING_OUTPUT_REGISTER 0 +#define LEDRS_CAPTURE 0 +#define LEDRS_DATA_WIDTH 18 +#define LEDRS_DO_TEST_BENCH_WIRING 0 +#define LEDRS_DRIVEN_SIM_VALUE 0 +#define LEDRS_EDGE_TYPE "NONE" +#define LEDRS_FREQ 50000000 +#define LEDRS_HAS_IN 0 +#define LEDRS_HAS_OUT 1 +#define LEDRS_HAS_TRI 0 +#define LEDRS_IRQ -1 +#define LEDRS_IRQ_INTERRUPT_CONTROLLER_ID -1 +#define LEDRS_IRQ_TYPE "NONE" +#define LEDRS_NAME "/dev/LEDRs" +#define LEDRS_RESET_VALUE 0 +#define LEDRS_SPAN 16 +#define LEDRS_TYPE "altera_avalon_pio" + + +/* + * LEDs configuration + * + */ + +#define ALT_MODULE_CLASS_LEDs altera_avalon_pio +#define LEDS_BASE 0x2020 +#define LEDS_BIT_CLEARING_EDGE_REGISTER 0 +#define LEDS_BIT_MODIFYING_OUTPUT_REGISTER 0 +#define LEDS_CAPTURE 0 +#define LEDS_DATA_WIDTH 8 +#define LEDS_DO_TEST_BENCH_WIRING 0 +#define LEDS_DRIVEN_SIM_VALUE 0 +#define LEDS_EDGE_TYPE "NONE" +#define LEDS_FREQ 50000000 +#define LEDS_HAS_IN 0 +#define LEDS_HAS_OUT 1 +#define LEDS_HAS_TRI 0 +#define LEDS_IRQ -1 +#define LEDS_IRQ_INTERRUPT_CONTROLLER_ID -1 +#define LEDS_IRQ_TYPE "NONE" +#define LEDS_NAME "/dev/LEDs" +#define LEDS_RESET_VALUE 0 +#define LEDS_SPAN 16 +#define LEDS_TYPE "altera_avalon_pio" + + +/* + * System configuration + * + */ + +#define ALT_DEVICE_FAMILY "Cyclone IV E" +#define ALT_ENHANCED_INTERRUPT_API_PRESENT +#define ALT_IRQ_BASE NULL +#define ALT_LOG_PORT "/dev/null" +#define ALT_LOG_PORT_BASE 0x0 +#define ALT_LOG_PORT_DEV null +#define ALT_LOG_PORT_TYPE "" +#define ALT_NUM_EXTERNAL_INTERRUPT_CONTROLLERS 0 +#define ALT_NUM_INTERNAL_INTERRUPT_CONTROLLERS 1 +#define ALT_NUM_INTERRUPT_CONTROLLERS 1 +#define ALT_STDERR "/dev/jtag_uart" +#define ALT_STDERR_BASE 0x2030 +#define ALT_STDERR_DEV jtag_uart +#define ALT_STDERR_IS_JTAG_UART +#define ALT_STDERR_PRESENT +#define ALT_STDERR_TYPE "altera_avalon_jtag_uart" +#define ALT_STDIN "/dev/jtag_uart" +#define ALT_STDIN_BASE 0x2030 +#define ALT_STDIN_DEV jtag_uart +#define ALT_STDIN_IS_JTAG_UART +#define ALT_STDIN_PRESENT +#define ALT_STDIN_TYPE "altera_avalon_jtag_uart" +#define ALT_STDOUT "/dev/jtag_uart" +#define ALT_STDOUT_BASE 0x2030 +#define ALT_STDOUT_DEV jtag_uart +#define ALT_STDOUT_IS_JTAG_UART +#define ALT_STDOUT_PRESENT +#define ALT_STDOUT_TYPE "altera_avalon_jtag_uart" +#define ALT_SYSTEM_NAME "nios_system" + + +/* + * hal configuration + * + */ + +#define ALT_MAX_FD 4 +#define ALT_SYS_CLK none +#define ALT_TIMESTAMP_CLK none + + +/* + * jtag_uart configuration + * + */ + +#define ALT_MODULE_CLASS_jtag_uart altera_avalon_jtag_uart +#define JTAG_UART_BASE 0x2030 +#define JTAG_UART_IRQ 5 +#define JTAG_UART_IRQ_INTERRUPT_CONTROLLER_ID 0 +#define JTAG_UART_NAME "/dev/jtag_uart" +#define JTAG_UART_READ_DEPTH 64 +#define JTAG_UART_READ_THRESHOLD 8 +#define JTAG_UART_SPAN 8 +#define JTAG_UART_TYPE "altera_avalon_jtag_uart" +#define JTAG_UART_WRITE_DEPTH 64 +#define JTAG_UART_WRITE_THRESHOLD 8 + + +/* + * onchip_memory configuration + * + */ + +#define ALT_MODULE_CLASS_onchip_memory altera_avalon_onchip_memory2 +#define ONCHIP_MEMORY_ALLOW_IN_SYSTEM_MEMORY_CONTENT_EDITOR 0 +#define ONCHIP_MEMORY_ALLOW_MRAM_SIM_CONTENTS_ONLY_FILE 0 +#define ONCHIP_MEMORY_BASE 0x0 +#define ONCHIP_MEMORY_CONTENTS_INFO "" +#define ONCHIP_MEMORY_DUAL_PORT 0 +#define ONCHIP_MEMORY_GUI_RAM_BLOCK_TYPE "AUTO" +#define ONCHIP_MEMORY_INIT_CONTENTS_FILE "nios_system_onchip_memory" +#define ONCHIP_MEMORY_INIT_MEM_CONTENT 1 +#define ONCHIP_MEMORY_INSTANCE_ID "NONE" +#define ONCHIP_MEMORY_IRQ -1 +#define ONCHIP_MEMORY_IRQ_INTERRUPT_CONTROLLER_ID -1 +#define ONCHIP_MEMORY_NAME "/dev/onchip_memory" +#define ONCHIP_MEMORY_NON_DEFAULT_INIT_FILE_ENABLED 0 +#define ONCHIP_MEMORY_RAM_BLOCK_TYPE "AUTO" +#define ONCHIP_MEMORY_READ_DURING_WRITE_MODE "DONT_CARE" +#define ONCHIP_MEMORY_SINGLE_CLOCK_OP 0 +#define ONCHIP_MEMORY_SIZE_MULTIPLE 1 +#define ONCHIP_MEMORY_SIZE_VALUE 4096 +#define ONCHIP_MEMORY_SPAN 4096 +#define ONCHIP_MEMORY_TYPE "altera_avalon_onchip_memory2" +#define ONCHIP_MEMORY_WRITABLE 1 + + +/* + * switches configuration + * + */ + +#define ALT_MODULE_CLASS_switches altera_avalon_pio +#define SWITCHES_BASE 0x2010 +#define SWITCHES_BIT_CLEARING_EDGE_REGISTER 0 +#define SWITCHES_BIT_MODIFYING_OUTPUT_REGISTER 0 +#define SWITCHES_CAPTURE 0 +#define SWITCHES_DATA_WIDTH 8 +#define SWITCHES_DO_TEST_BENCH_WIRING 0 +#define SWITCHES_DRIVEN_SIM_VALUE 0 +#define SWITCHES_EDGE_TYPE "NONE" +#define SWITCHES_FREQ 50000000 +#define SWITCHES_HAS_IN 1 +#define SWITCHES_HAS_OUT 0 +#define SWITCHES_HAS_TRI 0 +#define SWITCHES_IRQ -1 +#define SWITCHES_IRQ_INTERRUPT_CONTROLLER_ID -1 +#define SWITCHES_IRQ_TYPE "NONE" +#define SWITCHES_NAME "/dev/switches" +#define SWITCHES_RESET_VALUE 0 +#define SWITCHES_SPAN 16 +#define SWITCHES_TYPE "altera_avalon_pio" + +#endif /* __SYSTEM_H_ */ diff --git a/software/qsys_tutorial_hexs/.cproject b/software/qsys_tutorial_hexs/.cproject new file mode 100644 index 0000000..f6ee57f --- /dev/null +++ b/software/qsys_tutorial_hexs/.cproject @@ -0,0 +1,508 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + make + + mem_init_install + true + false + false + + + make + + mem_init_generate + true + false + false + + + make + + help + true + false + false + + + + diff --git a/software/qsys_tutorial_hexs/.force_relink b/software/qsys_tutorial_hexs/.force_relink new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/software/qsys_tutorial_hexs/.force_relink diff --git a/software/qsys_tutorial_hexs/.project b/software/qsys_tutorial_hexs/.project new file mode 100644 index 0000000..c8075f0 --- /dev/null +++ b/software/qsys_tutorial_hexs/.project @@ -0,0 +1,96 @@ + + + qsys_tutorial_hexs + + + + + + com.altera.sbtgui.project.makefileBuilder + + + + + com.altera.sbtgui.project.makefileBuilder + + + + + org.eclipse.cdt.managedbuilder.core.genmakebuilder + clean,full,incremental, + + + ?name? + + + + org.eclipse.cdt.make.core.append_environment + true + + + org.eclipse.cdt.make.core.autoBuildTarget + all + + + org.eclipse.cdt.make.core.buildArguments + + + + org.eclipse.cdt.make.core.buildCommand + make + + + org.eclipse.cdt.make.core.buildLocation + ${workspace_loc://qsys_tutorial_hexs} + + + org.eclipse.cdt.make.core.cleanBuildTarget + clean + + + org.eclipse.cdt.make.core.contents + org.eclipse.cdt.make.core.activeConfigSettings + + + org.eclipse.cdt.make.core.enableAutoBuild + false + + + org.eclipse.cdt.make.core.enableCleanBuild + true + + + org.eclipse.cdt.make.core.enableFullBuild + true + + + org.eclipse.cdt.make.core.fullBuildTarget + all + + + org.eclipse.cdt.make.core.stopOnError + true + + + org.eclipse.cdt.make.core.useDefaultBuildCmd + true + + + + + org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder + full,incremental, + + + + + + org.eclipse.cdt.core.cnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.managedbuilder.core.ScannerConfigNature + org.eclipse.cdt.core.ccnature + com.altera.sbtgui.project.SBTGUINature + com.altera.sbtgui.project.SBTGUIAppNature + com.altera.sbtgui.project.SBTGUIManagedNature + + diff --git a/software/qsys_tutorial_hexs/Makefile b/software/qsys_tutorial_hexs/Makefile new file mode 100644 index 0000000..9ba5836 --- /dev/null +++ b/software/qsys_tutorial_hexs/Makefile @@ -0,0 +1,1092 @@ +#------------------------------------------------------------------------------ +# VARIABLES APPENDED TO BY INCLUDED MAKEFILE FRAGMENTS +#------------------------------------------------------------------------------ + +# List of include directories for -I compiler option (-I added when used). +# Includes the BSP. +ALT_INCLUDE_DIRS := + +# List of library directories for -L linker option (-L added when used). +# Includes the BSP. +ALT_LIBRARY_DIRS := + +# List of library names for -l linker option (-l added when used). +# Includes the BSP. +ALT_LIBRARY_NAMES := + +# List of library names for -msys-lib linker option (-msys-lib added when used). +# These are libraries that might be located in the BSP and depend on the BSP +# library, or vice versa +ALT_BSP_DEP_LIBRARY_NAMES := + +# List of dependencies for the linker. This is usually the full pathname +# of each library (*.a) file. +# Includes the BSP. +ALT_LDDEPS := + +# List of root library directories that support running make to build them. +# Includes the BSP and any ALT libraries. +MAKEABLE_LIBRARY_ROOT_DIRS := + +# Generic flags passed to the compiler for different types of input files. +ALT_CFLAGS := +ALT_CXXFLAGS := +ALT_CPPFLAGS := +ALT_ASFLAGS := +ALT_LDFLAGS := + + +#------------------------------------------------------------------------------ +# The adjust-path macro +# +# If COMSPEC/ComSpec is defined, Make is launched from Windows through +# Cygwin. The adjust-path macro converts absolute windows paths into +# unix style paths (Example: c:/dir -> /c/dir). This will ensture +# paths are readable by GNU Make. +# +# If COMSPEC/ComSpec is not defined, Make is launched from linux, and no +# adjustment is necessary +# +#------------------------------------------------------------------------------ + +ifndef COMSPEC +ifdef ComSpec +COMSPEC = $(ComSpec) +endif # ComSpec +endif # COMSPEC + +ifdef COMSPEC # if Windows OS + +ifeq ($(MAKE_VERSION),3.81) +# +# adjust-path/adjust-path-mixed for Mingw Gnu Make on Windows +# +# Example Usage: +# $(call adjust-path,c:/aaa/bbb) => /c/aaa/bbb +# $(call adjust-path-mixed,/c/aaa/bbb) => c:/aaa/bbb +# $(call adjust-path-mixed,/cygdrive/c/aaa/bbb) => c:/aaa/bbb +# + +# +# adjust-path +# - converts back slash characters into forward slashes +# - if input arg ($1) is an empty string then return the empty string +# - if input arg ($1) does not contain the string ":/", then return input arg +# - using sed, convert mixed path [c:/...] into mingw path [/c/...] +define adjust-path +$(strip \ +$(if $1,\ +$(if $(findstring :/,$(subst \,/,$1)),\ +$(shell echo $(subst \,/,$1) | sed -e 's,^\([a-zA-Z]\):/,/\1/,'),\ +$(subst \,/,$1)))) +endef + +# +# adjust-path-mixed +# - converts back slash characters into forward slashes +# - if input arg ($1) is an empty string then return the empty string +# - if input arg ($1) does not begin with a forward slash '/' char, then +# return input arg +# - using sed, convert mingw path [/c/...] or cygwin path [/c/cygdrive/...] +# into a mixed path [c:/...] +define adjust-path-mixed +$(strip \ +$(if $1,\ +$(if $(findstring $(subst \,/,$1),$(patsubst /%,%,$(subst \,/,$1))),\ +$(subst \,/,$1),\ +$(shell echo $(subst \,/,$1) | sed -e 's,^/cygdrive/\([a-zA-Z]\)/,\1:/,' -e 's,^/\([a-zA-Z]\)/,\1:/,')))) +endef + +else # MAKE_VERSION != 3.81 (MAKE_VERSION == 3.80 or MAKE_VERSION == 3.79) +# +# adjust-path for Cygwin Gnu Make +# $(call adjust-path,c:/aaa/bbb) = /cygdrive/c/aaa/bbb +# $(call adjust-path-mixed,/cygdrive/c/aaa/bbb) = c:/aaa/bbb +# +adjust-path = $(if $1,$(shell cygpath -u "$1"),) +adjust-path-mixed = $(if $1,$(shell cygpath -m "$1"),) +endif + +else # !COMSPEC + +adjust-path = $1 +adjust-path-mixed = $1 + +endif # COMSPEC + + +#vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv +# GENERATED SETTINGS START v +#vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv + +#START GENERATED +ACTIVE_BUILD_CONFIG := default +BUILD_CONFIGS := default + +# The following TYPE comment allows tools to identify the 'type' of target this +# makefile is associated with. +# TYPE: APP_MAKEFILE + +# This following VERSION comment indicates the version of the tool used to +# generate this makefile. A makefile variable is provided for VERSION as well. +# ACDS_VERSION: 13.0sp1 +ACDS_VERSION := 13.0sp1 + +# This following BUILD_NUMBER comment indicates the build number of the tool +# used to generate this makefile. +# BUILD_NUMBER: 232 + +# Define path to the application ELF. +# It may be used by the makefile fragments so is defined before including them. +# +ELF := qsys_tutorial_hexs.elf + +# Paths to C, C++, and assembly source files. +C_SRCS += hello_world_small.c +C_SRCS += hex_encoder.c +C_SRCS += system.c +C_SRCS += sys_memory.c +C_SRCS += input_int.c +C_SRCS += sys_register.c +C_SRCS += hex_out.c +CXX_SRCS := +ASM_SRCS := + + +# Path to root of object file tree. +OBJ_ROOT_DIR := obj + +# Options to control objdump. +CREATE_OBJDUMP := 1 +OBJDUMP_INCLUDE_SOURCE := 1 +OBJDUMP_FULL_CONTENTS := 0 + +# Options to enable/disable optional files. +CREATE_ELF_DERIVED_FILES := 0 +CREATE_LINKER_MAP := 1 + +# Common arguments for ALT_CFLAGSs +APP_CFLAGS_DEFINED_SYMBOLS := +APP_CFLAGS_UNDEFINED_SYMBOLS := +APP_CFLAGS_OPTIMIZATION := -Os +APP_CFLAGS_DEBUG_LEVEL := -g +APP_CFLAGS_WARNINGS := -Wall +APP_CFLAGS_USER_FLAGS := + +APP_ASFLAGS_USER := +APP_LDFLAGS_USER := + +# Linker options that have default values assigned later if not +# assigned here. +LINKER_SCRIPT := +CRT0 := +SYS_LIB := + +# Define path to the root of the BSP. +BSP_ROOT_DIR := ../qsys_tutorial_hexs_bsp/ + +# List of application specific include directories, library directories and library names +APP_INCLUDE_DIRS := +APP_LIBRARY_DIRS := +APP_LIBRARY_NAMES := + +# Pre- and post- processor settings. +BUILD_PRE_PROCESS := +BUILD_POST_PROCESS := + +QUARTUS_PROJECT_DIR := ../../ + + +#END GENERATED + +#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +# GENERATED SETTINGS END ^ +#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + +#------------------------------------------------------------------------------ +# DEFAULT TARGET +#------------------------------------------------------------------------------ + +# Define the variable used to echo output if not already defined. +ifeq ($(ECHO),) +ECHO := echo +endif + +# Put "all" rule before included makefile fragments because they may +# define rules and we don't want one of those to become the default rule. +.PHONY : all + +all: + @$(ECHO) [$(APP_NAME) build complete] + +all : build_pre_process libs app build_post_process + + +#------------------------------------------------------------------------------ +# VARIABLES DEPENDENT ON GENERATED CONTENT +#------------------------------------------------------------------------------ + +# Define object file directory per build configuration +CONFIG_OBJ_DIR := $(OBJ_ROOT_DIR)/$(ACTIVE_BUILD_CONFIG) + +ifeq ($(BSP_ROOT_DIR),) +$(error Edit Makefile and provide a value for BSP_ROOT_DIR) +endif + +ifeq ($(wildcard $(BSP_ROOT_DIR)),) +$(error BSP directory does not exist: $(BSP_ROOT_DIR)) +endif + +# Define absolute path to the root of the BSP. +ABS_BSP_ROOT_DIR := $(call adjust-path-mixed,$(shell cd "$(BSP_ROOT_DIR)"; pwd)) + +# Include makefile fragments. Define variable ALT_LIBRARY_ROOT_DIR before +# including each makefile fragment so that it knows the path to itself. +BSP_INCLUDE_FILE := $(BSP_ROOT_DIR)/public.mk +ALT_LIBRARY_ROOT_DIR := $(BSP_ROOT_DIR) +include $(BSP_INCLUDE_FILE) +# C2H will need this to touch the BSP public.mk and avoid the sopc file +# out-of-date error during a BSP make +ABS_BSP_INCLUDE_FILE := $(ABS_BSP_ROOT_DIR)/public.mk + + +ifneq ($(WARNING.SMALL_STACK_SIZE),) +# This WARNING is here to protect you from unknowingly using a very small stack +# If the warning is set, increase your stack size or enable the BSP small stack +# setting to eliminate the warning +$(warning WARNING: $(WARNING.SMALL_STACK_SIZE)) +endif + + +# If the BSP public.mk indicates that ALT_SIM_OPTIMIZE is set, rename the ELF +# by prefixing it with RUN_ON_HDL_SIMULATOR_ONLY_. +ifneq ($(filter -DALT_SIM_OPTIMIZE,$(ALT_CPPFLAGS)),) +ELF := RUN_ON_HDL_SIMULATOR_ONLY_$(ELF) +endif + +# If the BSP public.mk indicates that ALT_PROVIDE_GMON is set, add option to +# download_elf target +ifneq ($(filter -DALT_PROVIDE_GMON,$(ALT_CPPFLAGS)),) +GMON_OUT_FILENAME := gmon.out +WRITE_GMON_OPTION := --write-gmon $(GMON_OUT_FILENAME) +endif + +# Name of ELF application. +APP_NAME := $(basename $(ELF)) + +# Set to defaults if variables not already defined in settings. +ifeq ($(LINKER_SCRIPT),) +LINKER_SCRIPT := $(BSP_LINKER_SCRIPT) +endif +ifeq ($(CRT0),) +CRT0 := $(BSP_CRT0) +endif +ifeq ($(SYS_LIB),) +SYS_LIB := $(BSP_SYS_LIB) +endif + +OBJDUMP_NAME := $(APP_NAME).objdump +OBJDUMP_FLAGS := --disassemble --syms --all-header +ifeq ($(OBJDUMP_INCLUDE_SOURCE),1) +OBJDUMP_FLAGS += --source +endif +ifeq ($(OBJDUMP_FULL_CONTENTS),1) +OBJDUMP_FLAGS += --full-contents +endif + +# Create list of linker dependencies (*.a files). +APP_LDDEPS := $(ALT_LDDEPS) $(LDDEPS) + +# Take lists and add required prefixes. +APP_INC_DIRS := $(addprefix -I, $(ALT_INCLUDE_DIRS) $(APP_INCLUDE_DIRS) $(INC_DIRS)) +ASM_INC_PREFIX := -Wa,-I +APP_ASM_INC_DIRS := $(addprefix $(ASM_INC_PREFIX), $(ALT_INCLUDE_DIRS) $(APP_INCLUDE_DIRS) $(INC_DIRS)) +APP_LIB_DIRS := $(addprefix -L, $(ALT_LIBRARY_DIRS) $(APP_LIBRARY_DIRS) $(LIB_DIRS)) +APP_LIBS := $(addprefix -l, $(ALT_LIBRARY_NAMES) $(APP_LIBRARY_NAMES) $(LIBS)) + +ifneq ($(AVOID_NIOS2_GCC3_OPTIONS),) + +# +# Avoid Nios II GCC 3.X options. +# + +# Detect if small newlib C library is requested. +# If yes, remove the -msmallc option because it is +# now handled by other means. +ifneq ($(filter -msmallc,$(ALT_LDFLAGS)),) + ALT_LDFLAGS := $(filter-out -msmallc,$(ALT_LDFLAGS)) + ALT_C_LIBRARY := smallc +else + ALT_C_LIBRARY := c +endif + +# Put each BSP dependent library in a group to avoid circular dependencies. +APP_BSP_DEP_LIBS := $(foreach l,$(ALT_BSP_DEP_LIBRARY_NAMES),-Wl,--start-group -l$(ALT_C_LIBRARY) -lgcc -l$(l) -Wl,--end-group) + +else # !AVOID_NIOS2_GCC3_OPTIONS + +# +# Use Nios II GCC 3.X options. +# +APP_BSP_DEP_LIBS := $(addprefix -msys-lib=, $(ALT_BSP_DEP_LIBRARY_NAMES)) + +endif # !AVOID_NIOS2_GCC3_OPTIONS + +# Arguments for the C preprocessor, C/C++ compiler, assembler, and linker. +APP_CFLAGS := $(APP_CFLAGS_DEFINED_SYMBOLS) \ + $(APP_CFLAGS_UNDEFINED_SYMBOLS) \ + $(APP_CFLAGS_OPTIMIZATION) \ + $(APP_CFLAGS_DEBUG_LEVEL) \ + $(APP_CFLAGS_WARNINGS) \ + $(APP_CFLAGS_USER_FLAGS) \ + $(ALT_CFLAGS) \ + $(CFLAGS) + +# Arguments only for the C++ compiler. +APP_CXXFLAGS := $(ALT_CXXFLAGS) $(CXXFLAGS) + +# Arguments only for the C preprocessor. +# Prefix each include directory with -I. +APP_CPPFLAGS := $(APP_INC_DIRS) \ + $(ALT_CPPFLAGS) \ + $(CPPFLAGS) + +# Arguments only for the assembler. +APP_ASFLAGS := $(APP_ASM_INC_DIRS) \ + $(ALT_ASFLAGS) \ + $(APP_ASFLAGS_USER) \ + $(ASFLAGS) + +# Arguments only for the linker. +APP_LDFLAGS := $(APP_LDFLAGS_USER) + +ifneq ($(LINKER_SCRIPT),) +APP_LDFLAGS += -T'$(LINKER_SCRIPT)' +endif + +ifneq ($(AVOID_NIOS2_GCC3_OPTIONS),) + +# Avoid Nios II GCC 3.x options. +ifneq ($(CRT0),) +APP_LDFLAGS += $(CRT0) +endif + +# The equivalent of the -msys-lib option is provided +# by the GROUP() command in the linker script. +# Note this means the SYS_LIB variable is now ignored. + +else # !AVOID_NIOS2_GCC3_OPTIONS + +# Use Nios II GCC 3.x options. +ifneq ($(CRT0),) +APP_LDFLAGS += -msys-crt0='$(CRT0)' +endif +ifneq ($(SYS_LIB),) +APP_LDFLAGS += -msys-lib=$(SYS_LIB) +endif + +endif # !AVOID_NIOS2_GCC3_OPTIONS + +APP_LDFLAGS += \ + $(APP_LIB_DIRS) \ + $(ALT_LDFLAGS) \ + $(LDFLAGS) + +LINKER_MAP_NAME := $(APP_NAME).map +ifeq ($(CREATE_LINKER_MAP), 1) +APP_LDFLAGS += -Wl,-Map=$(LINKER_MAP_NAME) +endif + +# QUARTUS_PROJECT_DIR and SOPC_NAME need to be defined if you want the +# mem_init_install target of the mem_init.mk (located in the associated BSP) +# to know how to copy memory initialization files (e.g. .dat, .hex) into +# directories required for Quartus compilation or RTL simulation. + +# Defining QUARTUS_PROJECT_DIR causes mem_init_install to copy memory +# initialization files into your Quartus project directory. This is required +# to provide the initial memory contents of FPGA memories that can be +# initialized by the programming file (.sof) or Hardcopy ROMs. It is also used +# for VHDL simulation of on-chip memories. + +# Defining SOPC_NAME causes the mem_init_install target to copy memory +# initialization files into your RTL simulation directory. This is required +# to provide the initial memory contents of all memories that can be +# initialized by RTL simulation. This variable should be set to the same name +# as your SOPC Builder system name. For example, if you have a system called +# "foo.sopc", this variable should be set to "foo". + +# If SOPC_NAME is not set and QUARTUS_PROJECT_DIR is set, then derive SOPC_NAME. +ifeq ($(SOPC_NAME),) +ifneq ($(QUARTUS_PROJECT_DIR),) +SOPC_NAME := $(basename $(notdir $(wildcard $(QUARTUS_PROJECT_DIR)/*.sopcinfo))) +endif +endif + +# Defining JDI_FILE is required to specify the JTAG Debug Information File +# path. This file is generated by Quartus, and is needed along with the +# .sopcinfo file to resolve processor instance ID's from names in a multi-CPU +# systems. For multi-CPU systems, the processor instance ID is used to select +# from multiple CPU's during ELF download. + +# Both JDI_FILE and SOPCINFO_FILE are provided by the BSP if they found during +# BSP creation. If JDI_FILE is not set and QUARTUS_PROJECT_DIR is set, then +# derive JDI_FILE. We do not attempt to derive SOPCINFO_FILE since there may be +# multiple .sopcinfo files in a Quartus project. +ifeq ($(JDI_FILE),) +ifneq ($(QUARTUS_PROJECT_DIR),) +JDI_FILE := $(wildcard $(QUARTUS_PROJECT_DIR)/*.jdi) +endif +endif + +# Path to root runtime directory used for hdl simulation +RUNTIME_ROOT_DIR := $(CONFIG_OBJ_DIR)/runtime + + + +#------------------------------------------------------------------------------ +# MAKEFILE INCLUDES DEPENDENT ON GENERATED CONTENT +#------------------------------------------------------------------------------ +# mem_init.mk is a generated makefile fragment. This file defines all targets +# used to generate HDL initialization simulation files and pre-initialized +# onchip memory files. +MEM_INIT_FILE := $(BSP_ROOT_DIR)/mem_init.mk +include $(MEM_INIT_FILE) + +# Create list of object files to be built using the list of source files. +# The source file hierarchy is preserved in the object tree. +# The supported file extensions are: +# +# .c - for C files +# .cxx .cc .cpp - for C++ files +# .S .s - for assembler files +# +# Handle source files specified by --src-dir & --src-rdir differently, to +# save some processing time in calling the adjust-path macro. + +OBJ_LIST_C := $(patsubst %.c,%.o,$(filter %.c,$(C_SRCS))) +OBJ_LIST_CPP := $(patsubst %.cpp,%.o,$(filter %.cpp,$(CXX_SRCS))) +OBJ_LIST_CXX := $(patsubst %.cxx,%.o,$(filter %.cxx,$(CXX_SRCS))) +OBJ_LIST_CC := $(patsubst %.cc,%.o,$(filter %.cc,$(CXX_SRCS))) +OBJ_LIST_S := $(patsubst %.S,%.o,$(filter %.S,$(ASM_SRCS))) +OBJ_LIST_SS := $(patsubst %.s,%.o,$(filter %.s,$(ASM_SRCS))) + +OBJ_LIST := $(sort $(OBJ_LIST_C) $(OBJ_LIST_CPP) $(OBJ_LIST_CXX) \ + $(OBJ_LIST_CC) $(OBJ_LIST_S) $(OBJ_LIST_SS)) + +SDIR_OBJ_LIST_C := $(patsubst %.c,%.o,$(filter %.c,$(SDIR_C_SRCS))) +SDIR_OBJ_LIST_CPP := $(patsubst %.cpp,%.o,$(filter %.cpp,$(SDIR_CXX_SRCS))) +SDIR_OBJ_LIST_CXX := $(patsubst %.cxx,%.o,$(filter %.cxx,$(SDIR_CXX_SRCS))) +SDIR_OBJ_LIST_CC := $(patsubst %.cc,%.o,$(filter %.cc,$(SDIR_CXX_SRCS))) +SDIR_OBJ_LIST_S := $(patsubst %.S,%.o,$(filter %.S,$(SDIR_ASM_SRCS))) +SDIR_OBJ_LIST_SS := $(patsubst %.s,%.o,$(filter %.s,$(SDIR_ASM_SRCS))) + +SDIR_OBJ_LIST := $(sort $(SDIR_OBJ_LIST_C) $(SDIR_OBJ_LIST_CPP) \ + $(SDIR_OBJ_LIST_CXX) $(SDIR_OBJ_LIST_CC) $(SDIR_OBJ_LIST_S) \ + $(SDIR_OBJ_LIST_SS)) + +# Relative-pathed objects that being with "../" are handled differently. +# +# Regular objects are created as +# $(CONFIG_OBJ_DIR)//.o +# where the path structure is maintained under the obj directory. This +# applies for both absolute and relative paths; in the absolute path +# case this means the entire source path will be recreated under the obj +# directory. This is done to allow two source files with the same name +# to be included as part of the project. +# +# Note: On Cygwin, the path recreated under the obj directory will be +# the cygpath -u output path. +# +# Relative-path objects that begin with "../" cause problems under this +# scheme, as $(CONFIG_OBJ_DIR)/..// can potentially put the object +# files anywhere in the system, creating clutter and polluting the source tree. +# As such, their paths are flattened - the object file created will be +# $(CONFIG_OBJ_DIR)/.o. Due to this, two files specified with +# "../" in the beginning cannot have the same name in the project. VPATH +# will be set for these sources to allow make to relocate the source file +# via %.o rules. +# +# The following lines separate the object list into the flatten and regular +# lists, and then handles them as appropriate. + +FLATTEN_OBJ_LIST := $(filter ../%,$(OBJ_LIST)) +FLATTEN_APP_OBJS := $(addprefix $(CONFIG_OBJ_DIR)/,$(notdir $(FLATTEN_OBJ_LIST))) + +REGULAR_OBJ_LIST := $(filter-out $(FLATTEN_OBJ_LIST),$(OBJ_LIST)) +REGULAR_OBJ_LIST_C := $(filter $(OBJ_LIST_C),$(REGULAR_OBJ_LIST)) +REGULAR_OBJ_LIST_CPP := $(filter $(OBJ_LIST_CPP),$(REGULAR_OBJ_LIST)) +REGULAR_OBJ_LIST_CXX := $(filter $(OBJ_LIST_CXX),$(REGULAR_OBJ_LIST)) +REGULAR_OBJ_LIST_CC := $(filter $(OBJ_LIST_CC),$(REGULAR_OBJ_LIST)) +REGULAR_OBJ_LIST_S := $(filter $(OBJ_LIST_S),$(REGULAR_OBJ_LIST)) +REGULAR_OBJ_LIST_SS := $(filter $(OBJ_LIST_SS),$(REGULAR_OBJ_LIST)) + +FLATTEN_SDIR_OBJ_LIST := $(filter ../%,$(SDIR_OBJ_LIST)) +FLATTEN_SDIR_APP_OBJS := $(addprefix $(CONFIG_OBJ_DIR)/,$(notdir $(FLATTEN_SDIR_OBJ_LIST))) + +REGULAR_SDIR_OBJ_LIST := $(filter-out $(FLATTEN_SDIR_OBJ_LIST),$(SDIR_OBJ_LIST)) +REGULAR_SDIR_OBJ_LIST_C := $(filter $(SDIR_OBJ_LIST_C),$(REGULAR_SDIR_OBJ_LIST)) +REGULAR_SDIR_OBJ_LIST_CPP := $(filter $(SDIR_OBJ_LIST_CPP),$(REGULAR_SDIR_OBJ_LIST)) +REGULAR_SDIR_OBJ_LIST_CXX := $(filter $(SDIR_OBJ_LIST_CXX),$(REGULAR_SDIR_OBJ_LIST)) +REGULAR_SDIR_OBJ_LIST_CC := $(filter $(SDIR_OBJ_LIST_CC),$(REGULAR_SDIR_OBJ_LIST)) +REGULAR_SDIR_OBJ_LIST_S := $(filter $(SDIR_OBJ_LIST_S),$(REGULAR_SDIR_OBJ_LIST)) +REGULAR_SDIR_OBJ_LIST_SS := $(filter $(SDIR_OBJ_LIST_SS),$(REGULAR_SDIR_OBJ_LIST)) + +VPATH := $(sort $(dir $(FLATTEN_OBJ_LIST)) $(dir $(FLATTEN_SDIR_OBJ_LIST))) + +APP_OBJS_C := $(addprefix $(CONFIG_OBJ_DIR)/,\ + $(REGULAR_SDIR_OBJ_LIST_C) \ + $(foreach s,$(REGULAR_OBJ_LIST_C),$(call adjust-path,$s))) + +APP_OBJS_CPP := $(addprefix $(CONFIG_OBJ_DIR)/,\ + $(REGULAR_SDIR_OBJ_LIST_CPP) \ + $(foreach s,$(REGULAR_OBJ_LIST_CPP),$(call adjust-path,$s))) + +APP_OBJS_CXX := $(addprefix $(CONFIG_OBJ_DIR)/,\ + $(REGULAR_SDIR_OBJ_LIST_CXX) \ + $(foreach s,$(REGULAR_OBJ_LIST_CXX),$(call adjust-path,$s))) + +APP_OBJS_CC := $(addprefix $(CONFIG_OBJ_DIR)/,\ + $(REGULAR_SDIR_OBJ_LIST_CC) \ + $(foreach s,$(REGULAR_OBJ_LIST_CC),$(call adjust-path,$s))) + +APP_OBJS_S := $(addprefix $(CONFIG_OBJ_DIR)/,\ + $(REGULAR_SDIR_OBJ_LIST_S) \ + $(foreach s,$(REGULAR_OBJ_LIST_S),$(call adjust-path,$s))) + +APP_OBJS_SS := $(addprefix $(CONFIG_OBJ_DIR)/,\ + $(REGULAR_SDIR_OBJ_LIST_SS) \ + $(foreach s,$(REGULAR_OBJ_LIST_SS),$(call adjust-path,$s))) + +APP_OBJS := $(APP_OBJS_C) $(APP_OBJS_CPP) $(APP_OBJS_CXX) $(APP_OBJS_CC) \ + $(APP_OBJS_S) $(APP_OBJS_SS) \ + $(FLATTEN_APP_OBJS) $(FLATTEN_SDIR_APP_OBJS) + +# Add any extra user-provided object files. +APP_OBJS += $(OBJS) + +# Create list of dependancy files for each object file. +APP_DEPS := $(APP_OBJS:.o=.d) + +# Patch the Elf file with system specific information + +# Patch the Elf with the name of the sopc system +ifneq ($(SOPC_NAME),) +ELF_PATCH_FLAG += --sopc_system_name $(SOPC_NAME) +endif + +# Patch the Elf with the absolute path to the Quartus Project Directory +ifneq ($(QUARTUS_PROJECT_DIR),) +ABS_QUARTUS_PROJECT_DIR := $(call adjust-path-mixed,$(shell cd "$(QUARTUS_PROJECT_DIR)"; pwd)) +ELF_PATCH_FLAG += --quartus_project_dir "$(ABS_QUARTUS_PROJECT_DIR)" +endif + +# Patch the Elf and download args with the JDI_FILE if specified +ifneq ($(wildcard $(JDI_FILE)),) +ELF_PATCH_FLAG += --jdi $(JDI_FILE) +DOWNLOAD_JDI_FLAG := --jdi $(JDI_FILE) +endif + +# Patch the Elf with the SOPCINFO_FILE if specified +ifneq ($(wildcard $(SOPCINFO_FILE)),) +ELF_PATCH_FLAG += --sopcinfo $(SOPCINFO_FILE) +endif + +# Use the DOWNLOAD_CABLE variable to specify which JTAG cable to use. +# This is not needed if you only have one cable. +ifneq ($(DOWNLOAD_CABLE),) +DOWNLOAD_CABLE_FLAG := --cable '$(DOWNLOAD_CABLE)' +endif + + +#------------------------------------------------------------------------------ +# BUILD PRE/POST PROCESS +#------------------------------------------------------------------------------ +build_pre_process : + $(BUILD_PRE_PROCESS) + +build_post_process : + $(BUILD_POST_PROCESS) + +.PHONY: build_pre_process build_post_process + + +#------------------------------------------------------------------------------ +# TOOLS +#------------------------------------------------------------------------------ + +# +# Set tool default variables if not already defined. +# If these are defined, they would typically be defined in an +# included makefile fragment. +# +ifeq ($(DEFAULT_CROSS_COMPILE),) +DEFAULT_CROSS_COMPILE := nios2-elf- +endif + +ifeq ($(DEFAULT_STACK_REPORT),) +DEFAULT_STACKREPORT := nios2-stackreport +endif + +ifeq ($(DEFAULT_DOWNLOAD),) +DEFAULT_DOWNLOAD := nios2-download +endif + +ifeq ($(DEFAULT_FLASHPROG),) +DEFAULT_FLASHPROG := nios2-flash-programmer +endif + +ifeq ($(DEFAULT_ELFPATCH),) +DEFAULT_ELFPATCH := nios2-elf-insert +endif + +ifeq ($(DEFAULT_RM),) +DEFAULT_RM := rm -f +endif + +ifeq ($(DEFAULT_CP),) +DEFAULT_CP := cp -f +endif + +ifeq ($(DEFAULT_MKDIR),) +DEFAULT_MKDIR := mkdir -p +endif + +# +# Set tool variables to defaults if not already defined. +# If these are defined, they would typically be defined by a +# setting in the generated portion of this makefile. +# +ifeq ($(CROSS_COMPILE),) +CROSS_COMPILE := $(DEFAULT_CROSS_COMPILE) +endif + +ifeq ($(origin CC),default) +CC := $(CROSS_COMPILE)gcc -xc +endif + +ifeq ($(origin CXX),default) +CXX := $(CROSS_COMPILE)gcc -xc++ +endif + +ifeq ($(origin AS),default) +AS := $(CROSS_COMPILE)gcc +endif + +ifeq ($(origin AR),default) +AR := $(CROSS_COMPILE)ar +endif + +ifeq ($(origin LD),default) +LD := $(CROSS_COMPILE)g++ +endif + +ifeq ($(origin NM),default) +NM := $(CROSS_COMPILE)nm +endif + +ifeq ($(origin RM),default) +RM := $(DEFAULT_RM) +endif + +ifeq ($(origin CP),default) +CP := $(DEFAULT_CP) +endif + +ifeq ($(OBJDUMP),) +OBJDUMP := $(CROSS_COMPILE)objdump +endif + +ifeq ($(OBJCOPY),) +OBJCOPY := $(CROSS_COMPILE)objcopy +endif + +ifeq ($(STACKREPORT),) +ifeq ($(CROSS_COMPILE),nios2-elf-) +STACKREPORT := $(DEFAULT_STACKREPORT) +else +DISABLE_STACKREPORT := 1 +endif +endif + +ifeq ($(DOWNLOAD),) +DOWNLOAD := $(DEFAULT_DOWNLOAD) +endif + +ifeq ($(FLASHPROG),) +FLASHPROG := $(DEFAULT_FLASHPROG) +endif + +ifeq ($(ELFPATCH),) +ELFPATCH := $(DEFAULT_ELFPATCH) +endif + +ifeq ($(MKDIR),) +MKDIR := $(DEFAULT_MKDIR) +endif + +#------------------------------------------------------------------------------ +# PATTERN RULES TO BUILD OBJECTS +#------------------------------------------------------------------------------ + +define compile.c +@$(ECHO) Info: Compiling $< to $@ +@$(MKDIR) $(@D) +$(CC) -MP -MMD -c $(APP_CPPFLAGS) $(APP_CFLAGS) -o $@ $< +$(CC_POST_PROCESS) +endef + +define compile.cpp +@$(ECHO) Info: Compiling $< to $@ +@$(MKDIR) $(@D) +$(CXX) -MP -MMD -c $(APP_CPPFLAGS) $(APP_CXXFLAGS) $(APP_CFLAGS) -o $@ $< +$(CXX_POST_PROCESS) +endef + +# If assembling with the compiler, ensure "-Wa," is prepended to all APP_ASFLAGS +ifeq ($(AS),$(patsubst %as,%,$(AS))) +COMMA := , +APP_ASFLAGS := $(filter-out $(APP_CFLAGS),$(addprefix -Wa$(COMMA),$(patsubst -Wa$(COMMA)%,%,$(APP_ASFLAGS)))) +endif + +define compile.s +@$(ECHO) Info: Assembling $< to $@ +@$(MKDIR) $(@D) +$(AS) -MP -MMD -c $(APP_CPPFLAGS) $(APP_CFLAGS) $(APP_ASFLAGS) -o $@ $< +$(AS_POST_PROCESS) +endef + +ifeq ($(MAKE_VERSION),3.81) +.SECONDEXPANSION: + +$(APP_OBJS_C): $(CONFIG_OBJ_DIR)/%.o: $$(call adjust-path-mixed,%.c) + $(compile.c) + +$(APP_OBJS_CPP): $(CONFIG_OBJ_DIR)/%.o: $$(call adjust-path-mixed,%.cpp) + $(compile.cpp) + +$(APP_OBJS_CC): $(CONFIG_OBJ_DIR)/%.o: $$(call adjust-path-mixed,%.cc) + $(compile.cpp) + +$(APP_OBJS_CXX): $(CONFIG_OBJ_DIR)/%.o: $$(call adjust-path-mixed,%.cxx) + $(compile.cpp) + +$(APP_OBJS_S): $(CONFIG_OBJ_DIR)/%.o: $$(call adjust-path-mixed,%.S) + $(compile.s) + +$(APP_OBJS_SS): $(CONFIG_OBJ_DIR)/%.o: $$(call adjust-path-mixed,%.s) + $(compile.s) + +endif # MAKE_VERSION != 3.81 + +$(CONFIG_OBJ_DIR)/%.o: %.c + $(compile.c) + +$(CONFIG_OBJ_DIR)/%.o: %.cpp + $(compile.cpp) + +$(CONFIG_OBJ_DIR)/%.o: %.cc + $(compile.cpp) + +$(CONFIG_OBJ_DIR)/%.o: %.cxx + $(compile.cpp) + +$(CONFIG_OBJ_DIR)/%.o: %.S + $(compile.s) + +$(CONFIG_OBJ_DIR)/%.o: %.s + $(compile.s) + + +#------------------------------------------------------------------------------ +# PATTERN RULES TO INTERMEDIATE FILES +#------------------------------------------------------------------------------ + +$(CONFIG_OBJ_DIR)/%.s: %.c + @$(ECHO) Info: Compiling $< to $@ + @$(MKDIR) $(@D) + $(CC) -S $(APP_CPPFLAGS) $(APP_CFLAGS) -o $@ $< + +$(CONFIG_OBJ_DIR)/%.s: %.cpp + @$(ECHO) Info: Compiling $< to $@ + @$(MKDIR) $(@D) + $(CXX) -S $(APP_CPPFLAGS) $(APP_CXXFLAGS) $(APP_CFLAGS) -o $@ $< + +$(CONFIG_OBJ_DIR)/%.s: %.cc + @$(ECHO) Info: Compiling $< to $@ + @$(MKDIR) $(@D) + $(CXX) -S $(APP_CPPFLAGS) $(APP_CXXFLAGS) $(APP_CFLAGS) -o $@ $< + +$(CONFIG_OBJ_DIR)/%.s: %.cxx + @$(ECHO) Info: Compiling $< to $@ + @$(MKDIR) $(@D) + $(CXX) -S $(APP_CPPFLAGS) $(APP_CXXFLAGS) $(APP_CFLAGS) -o $@ $< + +$(CONFIG_OBJ_DIR)/%.i: %.c + @$(ECHO) Info: Compiling $< to $@ + @$(MKDIR) $(@D) + $(CC) -E $(APP_CPPFLAGS) $(APP_CFLAGS) -o $@ $< + +$(CONFIG_OBJ_DIR)/%.i: %.cpp + @$(ECHO) Info: Compiling $< to $@ + @$(MKDIR) $(@D) + $(CXX) -E $(APP_CPPFLAGS) $(APP_CXXFLAGS) $(APP_CFLAGS) -o $@ $< + +$(CONFIG_OBJ_DIR)/%.i: %.cc + @$(ECHO) Info: Compiling $< to $@ + @$(MKDIR) $(@D) + $(CXX) -E $(APP_CPPFLAGS) $(APP_CXXFLAGS) $(APP_CFLAGS) -o $@ $< + +$(CONFIG_OBJ_DIR)/%.i: %.cxx + @$(ECHO) Info: Compiling $< to $@ + @$(MKDIR) $(@D) + $(CXX) -E $(APP_CPPFLAGS) $(APP_CXXFLAGS) $(APP_CFLAGS) -o $@ $< + + +#------------------------------------------------------------------------------ +# TARGET RULES +#------------------------------------------------------------------------------ + +.PHONY : help +help : + @$(ECHO) "Summary of Makefile targets" + @$(ECHO) " Build targets:" + @$(ECHO) " all (default) - Application and all libraries (including BSP)" + @$(ECHO) " bsp - Just the BSP" + @$(ECHO) " libs - All libraries (including BSP)" + @$(ECHO) " flash - All flash files" + @$(ECHO) " mem_init_generate - All memory initialization files" +ifeq ($(QSYS),1) + @$(ECHO) " mem_init_install - This target is deprecated for QSys Systems" + @$(ECHO) " --> Use the mem_init_generate target and then" + @$(ECHO) " add the generated meminit.qip file to your" + @$(ECHO) " Quartus II Project." +else # if QSYS != 1 + @$(ECHO) " mem_init_install - Copy memory initialization files to Quartus II project" +endif # QSYS == 1 + @$(ECHO) + @$(ECHO) " Clean targets:" + @$(ECHO) " clean_all - Application and all libraries (including BSP)" + @$(ECHO) " clean - Just the application" + @$(ECHO) " clean_bsp - Just the BSP" + @$(ECHO) " clean_libs - All libraries (including BSP)" + @$(ECHO) + @$(ECHO) " Run targets:" + @$(ECHO) " download-elf - Download and run your elf executable" + @$(ECHO) " program-flash - Program flash contents to the board" + +# Handy rule to skip making libraries and just make application. +.PHONY : app +app : $(ELF) + +ifeq ($(CREATE_OBJDUMP), 1) +app : $(OBJDUMP_NAME) +endif + +ifeq ($(CREATE_ELF_DERIVED_FILES),1) +app : elf_derived_files +endif + +.PHONY: elf_derived_files +elf_derived_files: default_mem_init + +# Handy rule for making just the BSP. +.PHONY : bsp +bsp : + @$(ECHO) Info: Building $(BSP_ROOT_DIR) + @$(MAKE) --no-print-directory -C $(BSP_ROOT_DIR) + + +# Make sure all makeable libraries (including the BSP) are up-to-date. +LIB_TARGETS := $(patsubst %,%-recurs-make-lib,$(MAKEABLE_LIBRARY_ROOT_DIRS)) + +.PHONY : libs +libs : $(LIB_TARGETS) + +ifneq ($(strip $(LIB_TARGETS)),) +$(LIB_TARGETS): %-recurs-make-lib: + @$(ECHO) Info: Building $* + $(MAKE) --no-print-directory -C $* +endif + +ifneq ($(strip $(APP_LDDEPS)),) +$(APP_LDDEPS): libs + @true +endif + +# Rules to force your project to rebuild or relink +# .force_relink file will cause any application that depends on this project to relink +# .force_rebuild file will cause this project to rebuild object files +# .force_rebuild_all file will cause this project and any project that depends on this project to rebuild object files + +FORCE_RELINK_DEP := .force_relink +FORCE_REBUILD_DEP := .force_rebuild +FORCE_REBUILD_ALL_DEP := .force_rebuild_all +FORCE_REBUILD_DEP_LIST := $(CONFIG_OBJ_DIR)/$(FORCE_RELINK_DEP) $(CONFIG_OBJ_DIR)/$(FORCE_REBUILD_DEP) $(FORCE_REBUILD_ALL_DEP) + +$(FORCE_REBUILD_DEP_LIST): + +$(APP_OBJS): $(wildcard $(CONFIG_OBJ_DIR)/$(FORCE_REBUILD_DEP)) $(wildcard $(addsuffix /$(FORCE_REBUILD_ALL_DEP), . $(ALT_LIBRARY_DIRS))) + +$(ELF): $(wildcard $(addsuffix /$(FORCE_RELINK_DEP), $(CONFIG_OBJ_DIR) $(ALT_LIBRARY_DIRS))) + + +# Clean just the application. +.PHONY : clean +ifeq ($(CREATE_ELF_DERIVED_FILES),1) +clean : clean_elf_derived_files +endif + +clean : + @$(RM) -r $(ELF) $(OBJDUMP_NAME) $(LINKER_MAP_NAME) $(OBJ_ROOT_DIR) $(RUNTIME_ROOT_DIR) $(FORCE_REBUILD_DEP_LIST) + @$(ECHO) [$(APP_NAME) clean complete] + +# Clean just the BSP. +.PHONY : clean_bsp +clean_bsp : + @$(ECHO) Info: Cleaning $(BSP_ROOT_DIR) + @$(MAKE) --no-print-directory -C $(BSP_ROOT_DIR) clean + +# Clean all makeable libraries including the BSP. +LIB_CLEAN_TARGETS := $(patsubst %,%-recurs-make-clean-lib,$(MAKEABLE_LIBRARY_ROOT_DIRS)) + +.PHONY : clean_libs +clean_libs : $(LIB_CLEAN_TARGETS) + +ifneq ($(strip $(LIB_CLEAN_TARGETS)),) +$(LIB_CLEAN_TARGETS): %-recurs-make-clean-lib: + @$(ECHO) Info: Cleaning $* + $(MAKE) --no-print-directory -C $* clean +endif + +.PHONY: clean_elf_derived_files +clean_elf_derived_files: mem_init_clean + +# Clean application and all makeable libraries including the BSP. +.PHONY : clean_all +clean_all : clean mem_init_clean clean_libs + +# Include the dependency files unless the make goal is performing a clean +# of the application. +ifneq ($(firstword $(MAKECMDGOALS)),clean) +ifneq ($(firstword $(MAKECMDGOALS)),clean_all) +-include $(APP_DEPS) +endif +endif + +.PHONY : download-elf +download-elf : $(ELF) + @if [ "$(DOWNLOAD)" = "none" ]; \ + then \ + $(ECHO) Downloading $(ELF) not supported; \ + else \ + $(ECHO) Info: Downloading $(ELF); \ + $(DOWNLOAD) --go --cpu_name=$(CPU_NAME) $(DOWNLOAD_CABLE_FLAG) $(SOPC_SYSID_FLAG) $(DOWNLOAD_JDI_FLAG) $(WRITE_GMON_OPTION) $(ELF); \ + fi + +# Delete the target of a rule if it has changed and its commands exit +# with a nonzero exit status. +.DELETE_ON_ERROR: + +# Rules for flash programming commands +PROGRAM_FLASH_SUFFIX := -program +PROGRAM_FLASH_TARGET := $(addsuffix $(PROGRAM_FLASH_SUFFIX), $(FLASH_FILES)) + +.PHONY : program-flash +program-flash : $(PROGRAM_FLASH_TARGET) + +.PHONY : $(PROGRAM_FLASH_TARGET) +$(PROGRAM_FLASH_TARGET) : flash + @if [ "$(FLASHPROG)" = "none" ]; \ + then \ + $(ECHO) Programming flash not supported; \ + else \ + $(ECHO) Info: Programming $(basename $@).flash; \ + if [ -z "$($(basename $@)_EPCS_FLAGS)" ]; \ + then \ + $(ECHO) $(FLASHPROG) $(SOPC_SYSID_FLAG) --base=$($(basename $@)_START) $(basename $@).flash; \ + $(FLASHPROG) $(DOWNLOAD_CABLE_FLAG) $(SOPC_SYSID_FLAG) --base=$($(basename $@)_START) $(basename $@).flash; \ + else \ + $(ECHO) $(FLASHPROG) $(SOPC_SYSID_FLAG) --epcs --base=$($(basename $@)_START) $(basename $@).flash; \ + $(FLASHPROG) $(DOWNLOAD_CABLE_FLAG) $(SOPC_SYSID_FLAG) --epcs --base=$($(basename $@)_START) $(basename $@).flash; \ + fi \ + fi + + +# Rules for simulating with an HDL Simulator [QSYS only] +ifeq ($(QSYS),1) +IP_MAKE_SIMSCRIPT := ip-make-simscript + +ifeq ($(VSIM),) +VSIM_EXE := "$(if $(VSIM_DIR),$(VSIM_DIR)/,)vsim" +ifeq ($(ENABLE_VSIM_GUI),1) +VSIM := $(VSIM_EXE) -gui +else +VSIM := $(VSIM_EXE) -c +endif # ENABLE_VSIM_GUI == 1 +endif # VSIM not set + +ifeq ($(SPD),) +ifneq ($(ABS_QUARTUS_PROJECT_DIR),) +ifneq ($(SOPC_NAME),) +SPD := $(ABS_QUARTUS_PROJECT_DIR)/$(SOPC_NAME)_tb.spd +endif # SOPC_NAME set +endif # ABS_QUARTUS_PROJECT_DIR set +endif # SPD == empty string + +ifeq ($(MSIM_SCRIPT),) +SIM_SCRIPT_DIR := $(RUNTIME_ROOT_DIR)/sim +MSIM_SCRIPT := $(SIM_SCRIPT_DIR)/mentor/msim_setup.tcl +endif # MSIM_SCRIPT == empty string + +ifeq ($(MAKE_VERSION),3.81) +ABS_MEM_INIT_DESCRIPTOR_FILE := $(abspath $(MEM_INIT_DESCRIPTOR_FILE)) +else +ABS_MEM_INIT_DESCRIPTOR_FILE := $(call adjust-path-mixed,$(shell pwd))/$(MEM_INIT_DESCRIPTOR_FILE) +endif + +$(MSIM_SCRIPT): $(SPD) $(MEM_INIT_DESCRIPTOR_FILE) +ifeq ($(SPD),) + $(error No SPD file specified. Ensure QUARTUS_PROJECT_DIR variable is set) +endif + @$(MKDIR) $(SIM_SCRIPT_DIR) + $(IP_MAKE_SIMSCRIPT) --spd=$(SPD) --spd=$(MEM_INIT_DESCRIPTOR_FILE) --output-directory=$(SIM_SCRIPT_DIR) + +VSIM_COMMAND = \ + cd $(dir $(MSIM_SCRIPT)) && \ + $(VSIM) -do "do $(notdir $(MSIM_SCRIPT)); ld; $(if $(VSIM_RUN_TIME),run ${VSIM_RUN_TIME};quit;)" + +.PHONY: sim +sim: $(MSIM_SCRIPT) mem_init_generate +ifeq ($(MSIM_SCRIPT),) + $(error MSIM_SCRIPT not set) +endif + $(VSIM_COMMAND) + +endif # QSYS == 1 + + +#------------------------------------------------------------------------------ +# ELF TARGET RULE +#------------------------------------------------------------------------------ +# Rule for constructing the executable elf file. +$(ELF) : $(APP_OBJS) $(LINKER_SCRIPT) $(APP_LDDEPS) + @$(ECHO) Info: Linking $@ + $(LD) $(APP_LDFLAGS) $(APP_CFLAGS) -o $@ $(filter-out $(CRT0),$(APP_OBJS)) $(APP_LIBS) $(APP_BSP_DEP_LIBS) +ifneq ($(DISABLE_ELFPATCH),1) + $(ELFPATCH) $@ $(ELF_PATCH_FLAG) +endif +ifneq ($(DISABLE_STACKREPORT),1) + @bash -c "$(STACKREPORT) $@" +endif + +$(OBJDUMP_NAME) : $(ELF) + @$(ECHO) Info: Creating $@ + $(OBJDUMP) $(OBJDUMP_FLAGS) $< >$@ + +# Rule for printing the name of the elf file +.PHONY: print-elf-name +print-elf-name: + @$(ECHO) $(ELF) + + diff --git a/software/qsys_tutorial_hexs/create-this-app b/software/qsys_tutorial_hexs/create-this-app new file mode 100644 index 0000000..1db3b9e --- /dev/null +++ b/software/qsys_tutorial_hexs/create-this-app @@ -0,0 +1,114 @@ +#!/bin/bash +# +# This script creates the hello_world_small application in this directory. + + +BSP_DIR=../qsys_tutorial_hexs_bsp +QUARTUS_PROJECT_DIR=../../ +NIOS2_APP_GEN_ARGS="--elf-name qsys_tutorial_hexs.elf --set APP_CFLAGS_OPTIMIZATION -Os --set OBJDUMP_INCLUDE_SOURCE 1 --src-files hello_world_small.c" + + +# First, check to see if $SOPC_KIT_NIOS2 environmental variable is set. +# This variable is required for the command line tools to execute correctly. +if [ -z "${SOPC_KIT_NIOS2}" ] +then + echo Required \$SOPC_KIT_NIOS2 Environmental Variable is not set! + exit 1 +fi + + +# Also make sure that the APP has not been created already. Check for +# existence of Makefile in the app directory +if [ -f ./Makefile ] +then + echo Application has already been created! Delete Makefile if you want to create a new application makefile + exit 1 +fi + + +# We are selecting hal_reduced_footprint bsp because it supports this application. +# Check to see if the hal_reduced_footprint has already been generated by checking for +# existence of the public.mk file. If not, we need to run +# create-this-bsp file to generate the bsp. +if [ ! -f ${BSP_DIR}/public.mk ]; then + # Since BSP doesn't exist, create the BSP + # Pass any command line arguments passed to this script to the BSP. + pushd ${BSP_DIR} >> /dev/null + ./create-this-bsp "$@" || { + echo "create-this-bsp failed" + exit 1 + } + popd >> /dev/null +fi + + +# Don't run make if create-this-app script is called with --no-make arg +SKIP_MAKE= +while [ $# -gt 0 ] +do + case "$1" in + --no-make) + SKIP_MAKE=1 + ;; + esac + shift +done + + +# Now we also need to go copy the sources for this application to the +# local directory. +find "${SOPC_KIT_NIOS2}/examples/software/hello_world_small/" -name '*.c' -or -name '*.h' -or -name 'hostfs*' | xargs -i cp -L {} ./ || { + echo "failed during copying example source files" + exit 1 +} + +find "${SOPC_KIT_NIOS2}/examples/software/hello_world_small/" -name 'readme.txt' -or -name 'Readme.txt' | xargs -i cp -L {} ./ || { + echo "failed copying readme file" +} + +if [ -d "${SOPC_KIT_NIOS2}/examples/software/hello_world_small/system" ] +then + cp -RL "${SOPC_KIT_NIOS2}/examples/software/hello_world_small/system" . || { + echo "failed during copying project support files" + exit 1 + } +fi + +chmod -R +w . || { + echo "failed during changing file permissions" + exit 1 +} + +cmd="nios2-app-generate-makefile --bsp-dir ${BSP_DIR} --set QUARTUS_PROJECT_DIR=${QUARTUS_PROJECT_DIR} ${NIOS2_APP_GEN_ARGS}" + +echo "create-this-app: Running \"${cmd}\"" +$cmd || { + echo "nios2-app-generate-makefile failed" + exit 1 +} + +if [ -z "$SKIP_MAKE" ]; then + cmd="make" + + echo "create-this-app: Running \"$cmd\"" + $cmd || { + echo "make failed" + exit 1 + } + + echo + echo "To download and run the application:" + echo " 1. Make sure the board is connected to the system." + echo " 2. Run 'nios2-configure-sof ' to configure the FPGA with the hardware design." + echo " 3. If you have a stdio device, run 'nios2-terminal' in a different shell." + echo " 4. Run 'make download-elf' from the application directory." + echo + echo "To debug the application:" + echo " Import the project into Nios II Software Build Tools for Eclipse." + echo " Refer to Nios II Software Build Tools for Eclipse Documentation for more information." + echo + echo -e "" +fi + + +exit 0 diff --git a/software/qsys_tutorial_hexs/hello_world_small.c b/software/qsys_tutorial_hexs/hello_world_small.c new file mode 100644 index 0000000..b1be61a --- /dev/null +++ b/software/qsys_tutorial_hexs/hello_world_small.c @@ -0,0 +1,34 @@ +#include "sys/alt_stdio.h" +#include "system.h" +#include "hex_out.h" +#include "sys_register.h" +#include "sys_memory.h" +#include "input_int.h" + +#define ledrs (volatile int *) 0x00020a0 +#define push_switches (volatile char *) 0x0002080 + + +void init() { + registers_init(); + memory_init(); + clear_block(HEX0_3); clear_block(HEX4_5); clear_block(HEX6_7); + print_block("he", 2, HEX6_7); + print_block("lo", 2, HEX4_5); + print_block("you1", 4, HEX0_3); +} + +int main() +{ + init(); + while(1) { + // interrupt + in_int(); + + // event + if (PUSH_EVENT) { + // + } + } + return 0; +} diff --git a/software/qsys_tutorial_hexs/hex_encoder.c b/software/qsys_tutorial_hexs/hex_encoder.c new file mode 100644 index 0000000..ab4eca0 --- /dev/null +++ b/software/qsys_tutorial_hexs/hex_encoder.c @@ -0,0 +1,205 @@ +/* + * hex_encoder.c + * + * Created on: 2016/11/17 + * Author: takayun + */ + +#include "hex_encoder.h" +#include + +void encodeNumHex(int hex_i, int num) { + char encoded = 0; + switch (num) { + case 0: + encoded = (char)0x40; // 100 0000 + break; + case 1: + encoded = (char)0xF9; // 111 1001 + break; + case 2: + encoded = (char)0x24; // 010 0100 + break; + case 3: + encoded = (char)0x30; // 011 0000 + break; + case 4: + encoded = (char)0x19; // 001 1001 + break; + case 5: + encoded = (char)0x12; // 001 0010 + break; + case 6: + encoded = (char)0x02; // 000 0010 + break; + case 7: + encoded = (char)0x58; // 101 1000 + break; + case 8: + encoded = (char)0x00; // 000 0000 + break; + case 9: + encoded = (char)0x10; // 001 0000 + break; + default: + encoded = 0; + break; + } + + switch (hex_i) { + case 0: + *hex0 = encoded; + break; + case 1: + *hex1 = encoded; + break; + case 2: + *hex2 = encoded; + break; + case 3: + *hex3 = encoded; + break; + case 4: + *hex4 = encoded; + break; + case 5: + *hex5 = encoded; + break; + case 6: + *hex6 = encoded; + break; + case 7: + *hex7 = encoded; + break; + default: + break; + } +} + +void encodeLatHex(int hex_i, char c) { + char encoded = 0; + + if (isdigit(c)) { + encodeNumHex(hex_i, c-'0'); + return; + } + + switch (c) { + case ' ': + encoded = (char)0xFF; // 111 1111 + break; + case '-': + encoded = (char)0x3F; // 011 1111 + break; + case 'a': + encoded = (char)0x08; // 000 1000 + break; + case 'b': + encoded = (char)0x03; // 000 0011 + break; + case 'c': + encoded = (char)0x27; // 010 0111 + break; + case 'd': + encoded = (char)0x21; // 010 0001 + break; + case 'e': + encoded = (char)0x06; // 000 0110 + break; + case 'f': + encoded = (char)0x0E; // 000 1110 + break; + case 'g': + encoded = (char)0x42; // 100 0010 + break; + case 'h': + encoded = (char)0x0B; // 000 1011 + break; + case 'i': + encoded = (char)0xFB; // 111 1011 + break; + case 'j': + encoded = (char)0x61; // 110 0001 + break; + case 'k': + encoded = (char)0x0A; // 000 1010 + break; + case 'l': + encoded = (char)0x47; // 100 0111 + break; + case 'm': + encoded = (char)0x48; // 100 1000 + break; + case 'n': + encoded = (char)0x2B; // 010 1011 + break; + case 'o': + encoded = (char)0x23; // 010 0011 + break; + case 'p': + encoded = (char)0x0C; // 000 1100 + break; + case 'q': + encoded = (char)0x04; // 000 0100 + break; + case 'r': + encoded = (char)0x2F; // 010 1111 + break; + case 's': + encoded = (char)0x13; // 001 0011 + break; + case 't': + encoded = (char)0x07; // 000 0111 + break; + case 'u': + encoded = (char)0x63; // 110 0011 + break; + case 'v': + encoded = (char)0x41; // 100 0001 + break; + case 'w': + encoded = (char)0x01; // 000 0001 + break; + case 'x': + encoded = (char)0x09; // 000 1001 + break; + case 'y': + encoded = (char)0x11; // 001 0001 + break; + case 'z': + encoded = (char)0x64; // 110 0100 + break; + default: + encoded = 0; + break; + } + + switch (hex_i) { + case 0: + *hex0 = encoded; + break; + case 1: + *hex1 = encoded; + break; + case 2: + *hex2 = encoded; + break; + case 3: + *hex3 = encoded; + break; + case 4: + *hex4 = encoded; + break; + case 5: + *hex5 = encoded; + break; + case 6: + *hex6 = encoded; + break; + case 7: + *hex7 = encoded; + break; + default: + break; + } +} diff --git a/software/qsys_tutorial_hexs/hex_encoder.h b/software/qsys_tutorial_hexs/hex_encoder.h new file mode 100644 index 0000000..e0fec25 --- /dev/null +++ b/software/qsys_tutorial_hexs/hex_encoder.h @@ -0,0 +1,36 @@ +/* + * hex_encoder.h + * + * Created on: 2016/11/17 + * Author: takayun + */ + +#ifndef HEX_ENCODER_H_ +#define HEX_ENCODER_H_ + +/************************************************** + * Defines + **************************************************/ + +#define hex0 (volatile char *) 0x0002070 +#define hex1 (volatile char *) 0x0002060 +#define hex2 (volatile char *) 0x0002050 +#define hex3 (volatile char *) 0x0002040 +#define hex4 (volatile char *) 0x0002030 +#define hex5 (volatile char *) 0x0002020 +#define hex6 (volatile char *) 0x0002010 +#define hex7 (volatile char *) 0x0002000 + +/************************************************** + * Variables + **************************************************/ + + +/************************************************** + * Functions + **************************************************/ + +void encodeNumHex(int hex_i, int num); +void encodeLatHex(int hex_i, char c); + +#endif /* HEX_ENCODER_H_ */ diff --git a/software/qsys_tutorial_hexs/hex_out.c b/software/qsys_tutorial_hexs/hex_out.c new file mode 100644 index 0000000..83b37d0 --- /dev/null +++ b/software/qsys_tutorial_hexs/hex_out.c @@ -0,0 +1,67 @@ +/* + * hex_out.c + * + * Created on: 2016/11/24 + * Author: takayun + */ +#include "hex_out.h" +#include "hex_encoder.h" +#include "system.h" + +void print_block(char * str, unsigned int size, enum BLOCK_N block_i) { + int i; + if (block_i == HEX0_3) { + if (size > 4) panic(); + for (i = 0; i < size; i++) { + encodeLatHex(i,str[size-1-i]); + } + } + else if (block_i == HEX4_5) { + if (size > 2) panic(); + for (i = 0; i < size; i++) { + encodeLatHex(i+4,str[size-1-i]); + } + } + else if (block_i == HEX6_7) { + if (size > 2) panic(); + for (i = 0; i < size; i++) { + encodeLatHex(i+6,str[size-1-i]); + } + } +} + +void clear_block(enum BLOCK_N block_i) { + if (block_i == HEX0_3) { + print_block(" ", 4, HEX0_3); + } + else if (block_i == HEX4_5) { + print_block(" ", 2, HEX4_5); + } + else if (block_i == HEX6_7) { + print_block(" ", 2, HEX6_7); + } +} + +void print_number(char num) { + int i; + char buf[5]; + char val; + for (i = 0; i < 4; i++) { + if (num < 0) { + buf[0] = '-'; + val = -num; + } else { + buf[0] = ' '; + val = num; + } + buf[1] = val/100%10 + '0'; + buf[2] = val/10%10 + '0'; + buf[3] = val%10 + '0'; + } + clear_block(HEX0_3); + print_block(buf, 4, HEX0_3); +} + + + + diff --git a/software/qsys_tutorial_hexs/hex_out.h b/software/qsys_tutorial_hexs/hex_out.h new file mode 100644 index 0000000..50d6868 --- /dev/null +++ b/software/qsys_tutorial_hexs/hex_out.h @@ -0,0 +1,33 @@ +/* + * hex_out.h + * + * Created on: 2016/11/24 + * Author: takayun + */ + +#ifndef HEX_IO_H_ +#define HEX_IO_H_ + +/************************************************** + * Defines + **************************************************/ + +enum BLOCK_N { + HEX0_3, HEX4_5, HEX6_7 +}; + +/************************************************** + * Variables + **************************************************/ + + +/************************************************** + * Functions + **************************************************/ + +void print_block(char * str, unsigned int size, enum BLOCK_N block_i); +void clear_block(enum BLOCK_N block_i); +void print_number(char num); + + +#endif /* HEX_IO_H_ */ diff --git a/software/qsys_tutorial_hexs/input_int.c b/software/qsys_tutorial_hexs/input_int.c new file mode 100644 index 0000000..baa6940 --- /dev/null +++ b/software/qsys_tutorial_hexs/input_int.c @@ -0,0 +1,54 @@ +/* + * input_int.c + * + * Created on: 2016/11/24 + * Author: takayun + */ +#include "hex_out.h" +#include + +#include "input_int.h" +#include "sys_register.h" + +unsigned char PUSH_EVENT = 0; + +void in_int() { + push_int(); +} + +static void update_sw_reg(sw_t s) { + global_registers[Ssw_data]; + global_registers[Ssw_inst]; + global_registers[Ssw_memi]; + global_registers[Ssw_regi]; + global_registers[Ssw_psel]; + global_registers[Ssw_rw]; + global_registers[Ssw_run]; +} + +void push_int() { + char buf[12]; + static unsigned char status = 0; + sw_t s; + s.data = *switches; + + switch (status) { + case 0: + PUSH_EVENT = 0; + if (*push_switches != 7) status = 1; + //update_sw_reg(s); // �X�C�b�`���W�X�^�X�V + sprintf(buf, "%x", s.sw.instruction_code); + print_block(buf, 4, HEX0_3); + break; + case 1: + if (*push_switches == 7) status = 2; + break; + case 2: + PUSH_EVENT = 1; + status = 0; + break; + default: + status = 0; + break; + } +} diff --git a/software/qsys_tutorial_hexs/input_int.h b/software/qsys_tutorial_hexs/input_int.h new file mode 100644 index 0000000..1e1e90d --- /dev/null +++ b/software/qsys_tutorial_hexs/input_int.h @@ -0,0 +1,50 @@ +/* + * input_int.h + * + * Created on: 2016/11/24 + * Author: takayun + */ + +#ifndef SWITCHES_INT_H_ +#define SWITCHES_INT_H_ + +/************************************************** + * Defines + **************************************************/ + +#define switches (volatile int *) 0x0002090 +#define push_switches (volatile char *) 0x0002080 + +struct sw_block{ + unsigned char run_mode : 1; + unsigned char rw_mode : 1; + unsigned char program_selecter : 4; + unsigned char register_index : 4; + unsigned char memory_index : 4; + unsigned char instruction_code : 4; +}; + +typedef union { + int data; + struct sw_block sw; +} sw_t; + +/************************************************** + * Variables + **************************************************/ + +extern unsigned char PUSH_EVENT; + +/************************************************** + * Functions + **************************************************/ + +/* Function: in_int + * Sammary: + * �S�Ă̓��͊��荞�݂��s�� + * */ +void in_int(); + +void push_int(); + +#endif /* SWITCHES_INT_H_ */ diff --git a/software/qsys_tutorial_hexs/obj/default/.force_relink b/software/qsys_tutorial_hexs/obj/default/.force_relink new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/software/qsys_tutorial_hexs/obj/default/.force_relink diff --git a/software/qsys_tutorial_hexs/obj/default/hello_world_small.d b/software/qsys_tutorial_hexs/obj/default/hello_world_small.d new file mode 100644 index 0000000..b7d8544 --- /dev/null +++ b/software/qsys_tutorial_hexs/obj/default/hello_world_small.d @@ -0,0 +1,15 @@ +obj/default/hello_world_small.o: hello_world_small.c \ + ../qsys_tutorial_hexs_bsp//HAL/inc/sys/alt_stdio.h system.h hex_out.h \ + sys_register.h sys_memory.h input_int.h + +../qsys_tutorial_hexs_bsp//HAL/inc/sys/alt_stdio.h: + +system.h: + +hex_out.h: + +sys_register.h: + +sys_memory.h: + +input_int.h: diff --git a/software/qsys_tutorial_hexs/obj/default/hello_world_small.o b/software/qsys_tutorial_hexs/obj/default/hello_world_small.o new file mode 100644 index 0000000..6e67495 --- /dev/null +++ b/software/qsys_tutorial_hexs/obj/default/hello_world_small.o Binary files differ diff --git a/software/qsys_tutorial_hexs/obj/default/hex_encoder.d b/software/qsys_tutorial_hexs/obj/default/hex_encoder.d new file mode 100644 index 0000000..e913210 --- /dev/null +++ b/software/qsys_tutorial_hexs/obj/default/hex_encoder.d @@ -0,0 +1,3 @@ +obj/default/hex_encoder.o: hex_encoder.c hex_encoder.h + +hex_encoder.h: diff --git a/software/qsys_tutorial_hexs/obj/default/hex_encoder.o b/software/qsys_tutorial_hexs/obj/default/hex_encoder.o new file mode 100644 index 0000000..87f95c4 --- /dev/null +++ b/software/qsys_tutorial_hexs/obj/default/hex_encoder.o Binary files differ diff --git a/software/qsys_tutorial_hexs/obj/default/hex_io.d b/software/qsys_tutorial_hexs/obj/default/hex_io.d new file mode 100644 index 0000000..4e66eff --- /dev/null +++ b/software/qsys_tutorial_hexs/obj/default/hex_io.d @@ -0,0 +1,7 @@ +obj/default/hex_io.o: hex_io.c hex_io.h hex_encoder.h system.h + +hex_io.h: + +hex_encoder.h: + +system.h: diff --git a/software/qsys_tutorial_hexs/obj/default/hex_io.o b/software/qsys_tutorial_hexs/obj/default/hex_io.o new file mode 100644 index 0000000..7729e22 --- /dev/null +++ b/software/qsys_tutorial_hexs/obj/default/hex_io.o Binary files differ diff --git a/software/qsys_tutorial_hexs/obj/default/hex_out.d b/software/qsys_tutorial_hexs/obj/default/hex_out.d new file mode 100644 index 0000000..1000db0 --- /dev/null +++ b/software/qsys_tutorial_hexs/obj/default/hex_out.d @@ -0,0 +1,7 @@ +obj/default/hex_out.o: hex_out.c hex_out.h hex_encoder.h system.h + +hex_out.h: + +hex_encoder.h: + +system.h: diff --git a/software/qsys_tutorial_hexs/obj/default/hex_out.o b/software/qsys_tutorial_hexs/obj/default/hex_out.o new file mode 100644 index 0000000..3bcbabd --- /dev/null +++ b/software/qsys_tutorial_hexs/obj/default/hex_out.o Binary files differ diff --git a/software/qsys_tutorial_hexs/obj/default/input_int.d b/software/qsys_tutorial_hexs/obj/default/input_int.d new file mode 100644 index 0000000..8872757 --- /dev/null +++ b/software/qsys_tutorial_hexs/obj/default/input_int.d @@ -0,0 +1,7 @@ +obj/default/input_int.o: input_int.c hex_out.h input_int.h sys_register.h + +hex_out.h: + +input_int.h: + +sys_register.h: diff --git a/software/qsys_tutorial_hexs/obj/default/input_int.o b/software/qsys_tutorial_hexs/obj/default/input_int.o new file mode 100644 index 0000000..5acfc8f --- /dev/null +++ b/software/qsys_tutorial_hexs/obj/default/input_int.o Binary files differ diff --git a/software/qsys_tutorial_hexs/obj/default/sys_memory.d b/software/qsys_tutorial_hexs/obj/default/sys_memory.d new file mode 100644 index 0000000..8d2a4cf --- /dev/null +++ b/software/qsys_tutorial_hexs/obj/default/sys_memory.d @@ -0,0 +1,8 @@ +obj/default/sys_memory.o: sys_memory.c system.h sys_memory.h \ + sys_register.h + +system.h: + +sys_memory.h: + +sys_register.h: diff --git a/software/qsys_tutorial_hexs/obj/default/sys_memory.o b/software/qsys_tutorial_hexs/obj/default/sys_memory.o new file mode 100644 index 0000000..85984ba --- /dev/null +++ b/software/qsys_tutorial_hexs/obj/default/sys_memory.o Binary files differ diff --git a/software/qsys_tutorial_hexs/obj/default/sys_register.d b/software/qsys_tutorial_hexs/obj/default/sys_register.d new file mode 100644 index 0000000..ec29589 --- /dev/null +++ b/software/qsys_tutorial_hexs/obj/default/sys_register.d @@ -0,0 +1,3 @@ +obj/default/sys_register.o: sys_register.c sys_register.h + +sys_register.h: diff --git a/software/qsys_tutorial_hexs/obj/default/sys_register.o b/software/qsys_tutorial_hexs/obj/default/sys_register.o new file mode 100644 index 0000000..65dfcac --- /dev/null +++ b/software/qsys_tutorial_hexs/obj/default/sys_register.o Binary files differ diff --git a/software/qsys_tutorial_hexs/obj/default/system.d b/software/qsys_tutorial_hexs/obj/default/system.d new file mode 100644 index 0000000..6c906ae --- /dev/null +++ b/software/qsys_tutorial_hexs/obj/default/system.d @@ -0,0 +1,5 @@ +obj/default/system.o: system.c system.h hex_out.h + +system.h: + +hex_out.h: diff --git a/software/qsys_tutorial_hexs/obj/default/system.o b/software/qsys_tutorial_hexs/obj/default/system.o new file mode 100644 index 0000000..8f78a19 --- /dev/null +++ b/software/qsys_tutorial_hexs/obj/default/system.o Binary files differ diff --git a/software/qsys_tutorial_hexs/qsys_tutorial_hexs.map b/software/qsys_tutorial_hexs/qsys_tutorial_hexs.map new file mode 100644 index 0000000..3a3301f --- /dev/null +++ b/software/qsys_tutorial_hexs/qsys_tutorial_hexs.map @@ -0,0 +1,714 @@ +Archive member included because of file (symbol) + +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-divmod.o) + obj/default/hex_out.o (__divsi3) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-ctype_.o) + obj/default/hex_encoder.o (__ctype_ptr) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-sprintf.o) + obj/default/input_int.o (sprintf) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-vfprintf.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-sprintf.o) (___vfprintf_internal_r) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-fvwrite_small_str.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-sprintf.o) (__sfvwrite_small_str) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-impure.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-sprintf.o) (_impure_ptr) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-memmove.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-fvwrite_small_str.o) (memmove) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-strlen.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-vfprintf.o) (strlen) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-mul.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-vfprintf.o) (__mulsi3) +../qsys_tutorial_hexs_bsp/\libhal_bsp.a(alt_load.o) + ../qsys_tutorial_hexs_bsp//obj/HAL/src/crt0.o (alt_load) +../qsys_tutorial_hexs_bsp/\libhal_bsp.a(alt_main.o) + ../qsys_tutorial_hexs_bsp//obj/HAL/src/crt0.o (alt_main) +../qsys_tutorial_hexs_bsp/\libhal_bsp.a(alt_sys_init.o) + ../qsys_tutorial_hexs_bsp/\libhal_bsp.a(alt_main.o) (alt_sys_init) +../qsys_tutorial_hexs_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) + ../qsys_tutorial_hexs_bsp/\libhal_bsp.a(alt_load.o) (alt_dcache_flush_all) +../qsys_tutorial_hexs_bsp/\libhal_bsp.a(alt_icache_flush_all.o) + ../qsys_tutorial_hexs_bsp/\libhal_bsp.a(alt_load.o) (alt_icache_flush_all) +../qsys_tutorial_hexs_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) + ../qsys_tutorial_hexs_bsp/\libhal_bsp.a(alt_sys_init.o) (altera_nios2_qsys_irq_init) + +Allocating common symbols +Common symbol size file + +global_registers 0xd obj/default/sys_register.o + +Memory Configuration + +Name Origin Length Attributes +reset 0x00000000 0x00000020 +onchip_memory 0x00000020 0x00000fe0 +*default* 0x00000000 0xffffffff + +Linker script and memory map + +LOAD ../qsys_tutorial_hexs_bsp//obj/HAL/src/crt0.o + 0x0000000c exit = _exit +LOAD obj/default/hello_world_small.o +LOAD obj/default/hex_encoder.o +LOAD obj/default/hex_out.o +LOAD obj/default/input_int.o +LOAD obj/default/sys_memory.o +LOAD obj/default/sys_register.o +LOAD obj/default/system.o +LOAD c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libstdc++.a +LOAD c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libm.a +LOAD c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a +START GROUP +LOAD c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a +LOAD c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a +LOAD ../qsys_tutorial_hexs_bsp/\libhal_bsp.a +END GROUP +LOAD c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a + 0x00000000 __alt_mem_onchip_memory = 0x0 + +.entry 0x00000000 0x20 + *(.entry) + .entry 0x00000000 0x20 ../qsys_tutorial_hexs_bsp//obj/HAL/src/crt0.o + 0x00000000 __reset + 0x0000000c _exit + +.exceptions 0x00000020 0x0 + 0x00000020 PROVIDE (__ram_exceptions_start, ABSOLUTE (.)) + 0x00000020 . = ALIGN (0x20) + *(.irq) + *(.exceptions.entry.label) + *(.exceptions.entry.user) + *(.exceptions.entry) + *(.exceptions.irqtest.user) + *(.exceptions.irqtest) + *(.exceptions.irqhandler.user) + *(.exceptions.irqhandler) + *(.exceptions.irqreturn.user) + *(.exceptions.irqreturn) + *(.exceptions.notirq.label) + *(.exceptions.notirq.user) + *(.exceptions.notirq) + *(.exceptions.soft.user) + *(.exceptions.soft) + *(.exceptions.unknown.user) + *(.exceptions.unknown) + *(.exceptions.exit.label) + *(.exceptions.exit.user) + *(.exceptions.exit) + *(.exceptions) + 0x00000020 PROVIDE (__ram_exceptions_end, ABSOLUTE (.)) + 0x00000020 PROVIDE (__flash_exceptions_start, LOADADDR (.exceptions)) + +.text 0x00000020 0x14c8 + 0x00000020 PROVIDE (stext, ABSOLUTE (.)) + *(.interp) + *(.hash) + *(.dynsym) + *(.dynstr) + *(.gnu.version) + *(.gnu.version_d) + *(.gnu.version_r) + *(.rel.init) + *(.rela.init) + *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) + *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) + *(.rel.fini) + *(.rela.fini) + *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) + *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) + *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) + *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) + *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) + *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) + *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) + *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) + *(.rel.ctors) + *(.rela.ctors) + *(.rel.dtors) + *(.rela.dtors) + *(.rel.got) + *(.rela.got) + *(.rel.sdata .rel.sdata.* .rel.gnu.linkonce.s.*) + *(.rela.sdata .rela.sdata.* .rela.gnu.linkonce.s.*) + *(.rel.sbss .rel.sbss.* .rel.gnu.linkonce.sb.*) + *(.rela.sbss .rela.sbss.* .rela.gnu.linkonce.sb.*) + *(.rel.sdata2 .rel.sdata2.* .rel.gnu.linkonce.s2.*) + *(.rela.sdata2 .rela.sdata2.* .rela.gnu.linkonce.s2.*) + *(.rel.sbss2 .rel.sbss2.* .rel.gnu.linkonce.sb2.*) + *(.rela.sbss2 .rela.sbss2.* .rela.gnu.linkonce.sb2.*) + *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) + *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) + *(.rel.plt) + *(.rela.plt) + *(.rel.dyn) + *(.init) + *(.plt) + *(.text .stub .text.* .gnu.linkonce.t.*) + .text 0x00000020 0x3c ../qsys_tutorial_hexs_bsp//obj/HAL/src/crt0.o + 0x00000020 _start + .text 0x0000005c 0x98 obj/default/hello_world_small.o + 0x0000005c init + 0x000000e0 main + .text 0x000000f4 0x3b8 obj/default/hex_encoder.o + 0x000000f4 encodeNumHex + 0x00000218 encodeLatHex + .text 0x000004ac 0x228 obj/default/hex_out.o + 0x000004ac print_block + 0x00000588 clear_block + 0x000005d8 print_number + .text 0x000006d4 0xcc obj/default/input_int.o + 0x000006d4 push_int + 0x0000079c in_int + .text 0x000007a0 0x124 obj/default/sys_memory.o + 0x000007a0 memory_init + 0x000007e4 memory_load + 0x00000854 memory_store + .text 0x000008c4 0x1c obj/default/sys_register.o + 0x000008c4 registers_init + .text 0x000008e0 0x2c obj/default/system.o + 0x000008e0 panic + .text 0x0000090c 0x14c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-divmod.o) + 0x00000988 __divsi3 + 0x000009e8 __modsi3 + 0x00000a48 __udivsi3 + 0x00000a50 __umodsi3 + .text 0x00000a58 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-ctype_.o) + .text 0x00000a58 0xf4 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-sprintf.o) + 0x00000a58 sprintf + 0x00000adc _sprintf_r + .text 0x00000b4c 0x740 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-vfprintf.o) + 0x00000bcc ___vfprintf_internal_r + 0x00001268 __vfprintf_internal + .text 0x0000128c 0xb8 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-fvwrite_small_str.o) + 0x0000128c __sfvwrite_small_str + .text 0x00001344 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-impure.o) + .text 0x00001344 0x60 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-memmove.o) + 0x00001344 memmove + .text 0x000013a4 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-strlen.o) + 0x000013a4 strlen + .text 0x000013c4 0x38 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-mul.o) + 0x000013c4 __mulsi3 + .text 0x000013fc 0x8c ../qsys_tutorial_hexs_bsp/\libhal_bsp.a(alt_load.o) + 0x0000141c alt_load + .text 0x00001488 0x2c ../qsys_tutorial_hexs_bsp/\libhal_bsp.a(alt_main.o) + 0x00001488 alt_main + .text 0x000014b4 0x24 ../qsys_tutorial_hexs_bsp/\libhal_bsp.a(alt_sys_init.o) + 0x000014b4 alt_sys_init + 0x000014b8 alt_irq_init + .text 0x000014d8 0x4 ../qsys_tutorial_hexs_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) + 0x000014d8 alt_dcache_flush_all + .text 0x000014dc 0x4 ../qsys_tutorial_hexs_bsp/\libhal_bsp.a(alt_icache_flush_all.o) + 0x000014dc alt_icache_flush_all + .text 0x000014e0 0x8 ../qsys_tutorial_hexs_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) + 0x000014e0 altera_nios2_qsys_irq_init + *(.gnu.warning.*) + *(.fini) + 0x000014e8 PROVIDE (__etext, ABSOLUTE (.)) + 0x000014e8 PROVIDE (_etext, ABSOLUTE (.)) + 0x000014e8 PROVIDE (etext, ABSOLUTE (.)) + *(.eh_frame_hdr) + 0x000014e8 . = ALIGN (0x4) + 0x000014e8 PROVIDE (__preinit_array_start, ABSOLUTE (.)) + *(.preinit_array) + 0x000014e8 PROVIDE (__preinit_array_end, ABSOLUTE (.)) + 0x000014e8 PROVIDE (__init_array_start, ABSOLUTE (.)) + *(.init_array) + 0x000014e8 PROVIDE (__init_array_end, ABSOLUTE (.)) + 0x000014e8 PROVIDE (__fini_array_start, ABSOLUTE (.)) + *(.fini_array) + 0x000014e8 PROVIDE (__fini_array_end, ABSOLUTE (.)) + *(.eh_frame) + *(.gcc_except_table) + *(.dynamic) + 0x000014e8 PROVIDE (__CTOR_LIST__, ABSOLUTE (.)) + *(.ctors) + *(SORT(.ctors.*)) + 0x000014e8 PROVIDE (__CTOR_END__, ABSOLUTE (.)) + 0x000014e8 PROVIDE (__DTOR_LIST__, ABSOLUTE (.)) + *(.dtors) + *(SORT(.dtors.*)) + 0x000014e8 PROVIDE (__DTOR_END__, ABSOLUTE (.)) + *(.jcr) + 0x000014e8 . = ALIGN (0x4) + +.rodata 0x000014e8 0x2ac + 0x000014e8 PROVIDE (__ram_rodata_start, ABSOLUTE (.)) + 0x000014e8 . = ALIGN (0x4) + *(.rodata .rodata.* .gnu.linkonce.r.*) + .rodata.str1.4 + 0x000014e8 0xd obj/default/hello_world_small.o + 0x10 (size before relaxing) + *fill* 0x000014f5 0x3 00 + .rodata.str1.4 + 0x000014f8 0xb obj/default/hex_out.o + 0xc (size before relaxing) + *fill* 0x00001503 0x1 00 + .rodata.str1.4 + 0x00001504 0x3 obj/default/input_int.o + 0x4 (size before relaxing) + *fill* 0x00001507 0x1 00 + .rodata.str1.4 + 0x00001508 0x8 obj/default/system.o + .rodata 0x00001510 0x281 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-ctype_.o) + 0x00001510 _ctype_ + *(.rodata1) + 0x00001794 . = ALIGN (0x4) + *fill* 0x00001791 0x3 00 + 0x00001794 PROVIDE (__ram_rodata_end, ABSOLUTE (.)) + 0x000014e8 PROVIDE (__flash_rodata_start, LOADADDR (.rodata)) + +.rwdata 0x00001794 0xf0 load address 0x00001884 + 0x00001794 PROVIDE (__ram_rwdata_start, ABSOLUTE (.)) + 0x00001794 . = ALIGN (0x4) + *(.got.plt) + *(.got) + *(.data1) + *(.data .data.* .gnu.linkonce.d.*) + .data 0x00001794 0x0 ../qsys_tutorial_hexs_bsp//obj/HAL/src/crt0.o + .data 0x00001794 0x0 obj/default/hello_world_small.o + .data 0x00001794 0x0 obj/default/hex_encoder.o + .data 0x00001794 0x0 obj/default/hex_out.o + .data 0x00001794 0x0 obj/default/input_int.o + .data 0x00001794 0x0 obj/default/sys_memory.o + .data 0x00001794 0x0 obj/default/sys_register.o + .data 0x00001794 0x0 obj/default/system.o + .data 0x00001794 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-divmod.o) + .data 0x00001794 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-ctype_.o) + .data 0x00001794 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-sprintf.o) + .data 0x00001794 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-vfprintf.o) + .data 0x00001794 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-fvwrite_small_str.o) + .data 0x00001794 0xe0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-impure.o) + .data 0x00001874 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-memmove.o) + .data 0x00001874 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-strlen.o) + .data 0x00001874 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-mul.o) + .data 0x00001874 0x0 ../qsys_tutorial_hexs_bsp/\libhal_bsp.a(alt_load.o) + .data 0x00001874 0x0 ../qsys_tutorial_hexs_bsp/\libhal_bsp.a(alt_main.o) + .data 0x00001874 0x0 ../qsys_tutorial_hexs_bsp/\libhal_bsp.a(alt_sys_init.o) + .data 0x00001874 0x0 ../qsys_tutorial_hexs_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) + .data 0x00001874 0x0 ../qsys_tutorial_hexs_bsp/\libhal_bsp.a(alt_icache_flush_all.o) + .data 0x00001874 0x0 ../qsys_tutorial_hexs_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) + 0x00009874 _gp = ABSOLUTE ((. + 0x8000)) + 0x00009874 PROVIDE (gp, _gp) + *(.rwdata .rwdata.*) + *(.sdata .sdata.* .gnu.linkonce.s.*) + .sdata 0x00001874 0x4 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-ctype_.o) + 0x00001874 __ctype_ptr + .sdata 0x00001878 0x8 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-impure.o) + 0x00001878 _impure_ptr + 0x0000187c _global_impure_ptr + .sdata 0x00001880 0x4 ../qsys_tutorial_hexs_bsp/\libhal_bsp.a(alt_sys_init.o) + 0x00001880 jtag_uart + *(.sdata2 .sdata2.* .gnu.linkonce.s2.*) + 0x00001884 . = ALIGN (0x4) + 0x00001884 _edata = ABSOLUTE (.) + 0x00001884 PROVIDE (edata, ABSOLUTE (.)) + 0x00001884 PROVIDE (__ram_rwdata_end, ABSOLUTE (.)) + 0x00001884 PROVIDE (__flash_rwdata_start, LOADADDR (.rwdata)) + +.bss 0x00001974 0x64 + 0x00001974 __bss_start = ABSOLUTE (.) + 0x00001974 PROVIDE (__sbss_start, ABSOLUTE (.)) + 0x00001974 PROVIDE (___sbss_start, ABSOLUTE (.)) + *(.dynsbss) + *(.sbss .sbss.* .gnu.linkonce.sb.*) + .sbss 0x00001974 0x2 obj/default/input_int.o + 0x00001974 PUSH_EVENT + *fill* 0x00001976 0x2 00 + .sbss 0x00001978 0x4 obj/default/sys_memory.o + 0x00001978 global_current_memory + .sbss 0x0000197c 0xc ../qsys_tutorial_hexs_bsp/\libhal_bsp.a(alt_main.o) + 0x0000197c alt_argc + 0x00001980 alt_argv + 0x00001984 alt_envp + *(.sbss2 .sbss2.* .gnu.linkonce.sb2.*) + *(.scommon) + 0x00001988 PROVIDE (__sbss_end, ABSOLUTE (.)) + 0x00001988 PROVIDE (___sbss_end, ABSOLUTE (.)) + *(.dynbss) + *(.bss .bss.* .gnu.linkonce.b.*) + .bss 0x00001988 0x0 ../qsys_tutorial_hexs_bsp//obj/HAL/src/crt0.o + .bss 0x00001988 0x0 obj/default/hello_world_small.o + .bss 0x00001988 0x0 obj/default/hex_encoder.o + .bss 0x00001988 0x0 obj/default/hex_out.o + .bss 0x00001988 0x0 obj/default/input_int.o + .bss 0x00001988 0x40 obj/default/sys_memory.o + .bss 0x000019c8 0x0 obj/default/sys_register.o + .bss 0x000019c8 0x0 obj/default/system.o + .bss 0x000019c8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-divmod.o) + .bss 0x000019c8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-ctype_.o) + .bss 0x000019c8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-sprintf.o) + .bss 0x000019c8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-vfprintf.o) + .bss 0x000019c8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-fvwrite_small_str.o) + .bss 0x000019c8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-impure.o) + .bss 0x000019c8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-memmove.o) + .bss 0x000019c8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-strlen.o) + .bss 0x000019c8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-mul.o) + .bss 0x000019c8 0x0 ../qsys_tutorial_hexs_bsp/\libhal_bsp.a(alt_load.o) + .bss 0x000019c8 0x0 ../qsys_tutorial_hexs_bsp/\libhal_bsp.a(alt_main.o) + .bss 0x000019c8 0x0 ../qsys_tutorial_hexs_bsp/\libhal_bsp.a(alt_sys_init.o) + .bss 0x000019c8 0x0 ../qsys_tutorial_hexs_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) + .bss 0x000019c8 0x0 ../qsys_tutorial_hexs_bsp/\libhal_bsp.a(alt_icache_flush_all.o) + .bss 0x000019c8 0x0 ../qsys_tutorial_hexs_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) + *(COMMON) + COMMON 0x000019c8 0xd obj/default/sys_register.o + 0x000019c8 global_registers + 0x000019d8 . = ALIGN (0x4) + *fill* 0x000019d5 0x3 00 + 0x000019d8 __bss_end = ABSOLUTE (.) + +.onchip_memory 0x000019d8 0x0 + 0x000019d8 PROVIDE (_alt_partition_onchip_memory_start, ABSOLUTE (.)) + *(.onchip_memory. onchip_memory.*) + 0x000019d8 . = ALIGN (0x4) + 0x000019d8 PROVIDE (_alt_partition_onchip_memory_end, ABSOLUTE (.)) + 0x000019d8 _end = ABSOLUTE (.) + 0x000019d8 end = ABSOLUTE (.) + 0x000019d8 __alt_stack_base = ABSOLUTE (.) + 0x000019d8 PROVIDE (_alt_partition_onchip_memory_load_addr, LOADADDR (.onchip_memory)) + +.stab + *(.stab) + +.stabstr + *(.stabstr) + +.stab.excl + *(.stab.excl) + +.stab.exclstr + *(.stab.exclstr) + +.stab.index + *(.stab.index) + +.stab.indexstr + *(.stab.indexstr) + +.comment 0x00000000 0x26 + *(.comment) + .comment 0x00000000 0x26 obj/default/hello_world_small.o + 0x27 (size before relaxing) + .comment 0x00000000 0x27 obj/default/hex_encoder.o + .comment 0x00000000 0x27 obj/default/hex_out.o + .comment 0x00000000 0x27 obj/default/input_int.o + .comment 0x00000000 0x27 obj/default/sys_memory.o + .comment 0x00000000 0x27 obj/default/sys_register.o + .comment 0x00000000 0x27 obj/default/system.o + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-divmod.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-ctype_.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-sprintf.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-vfprintf.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-fvwrite_small_str.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-impure.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-memmove.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-strlen.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-mul.o) + .comment 0x00000000 0x27 ../qsys_tutorial_hexs_bsp/\libhal_bsp.a(alt_load.o) + .comment 0x00000000 0x27 ../qsys_tutorial_hexs_bsp/\libhal_bsp.a(alt_main.o) + .comment 0x00000000 0x27 ../qsys_tutorial_hexs_bsp/\libhal_bsp.a(alt_sys_init.o) + .comment 0x00000000 0x27 ../qsys_tutorial_hexs_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) + .comment 0x00000000 0x27 ../qsys_tutorial_hexs_bsp/\libhal_bsp.a(alt_icache_flush_all.o) + .comment 0x00000000 0x27 ../qsys_tutorial_hexs_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) + +.debug + *(.debug) + +.line + *(.line) + +.debug_srcinfo + *(.debug_srcinfo) + +.debug_sfnames + *(.debug_sfnames) + +.debug_aranges 0x00000000 0x2a8 + *(.debug_aranges) + .debug_aranges + 0x00000000 0x28 ../qsys_tutorial_hexs_bsp//obj/HAL/src/crt0.o + .debug_aranges + 0x00000028 0x20 obj/default/hello_world_small.o + .debug_aranges + 0x00000048 0x20 obj/default/hex_encoder.o + .debug_aranges + 0x00000068 0x20 obj/default/hex_out.o + .debug_aranges + 0x00000088 0x20 obj/default/input_int.o + .debug_aranges + 0x000000a8 0x20 obj/default/sys_memory.o + .debug_aranges + 0x000000c8 0x20 obj/default/sys_register.o + .debug_aranges + 0x000000e8 0x20 obj/default/system.o + .debug_aranges + 0x00000108 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-divmod.o) + .debug_aranges + 0x00000128 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-sprintf.o) + .debug_aranges + 0x00000148 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-vfprintf.o) + .debug_aranges + 0x00000168 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-fvwrite_small_str.o) + .debug_aranges + 0x00000188 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-memmove.o) + .debug_aranges + 0x000001a8 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-strlen.o) + .debug_aranges + 0x000001c8 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-mul.o) + .debug_aranges + 0x000001e8 0x20 ../qsys_tutorial_hexs_bsp/\libhal_bsp.a(alt_load.o) + .debug_aranges + 0x00000208 0x20 ../qsys_tutorial_hexs_bsp/\libhal_bsp.a(alt_main.o) + .debug_aranges + 0x00000228 0x20 ../qsys_tutorial_hexs_bsp/\libhal_bsp.a(alt_sys_init.o) + .debug_aranges + 0x00000248 0x20 ../qsys_tutorial_hexs_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) + .debug_aranges + 0x00000268 0x20 ../qsys_tutorial_hexs_bsp/\libhal_bsp.a(alt_icache_flush_all.o) + .debug_aranges + 0x00000288 0x20 ../qsys_tutorial_hexs_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) + +.debug_pubnames + 0x00000000 0x45b + *(.debug_pubnames) + .debug_pubnames + 0x00000000 0x24 obj/default/hello_world_small.o + .debug_pubnames + 0x00000024 0x34 obj/default/hex_encoder.o + .debug_pubnames + 0x00000058 0x43 obj/default/hex_out.o + .debug_pubnames + 0x0000009b 0x39 obj/default/input_int.o + .debug_pubnames + 0x000000d4 0x5d obj/default/sys_memory.o + .debug_pubnames + 0x00000131 0x3a obj/default/sys_register.o + .debug_pubnames + 0x0000016b 0x1c obj/default/system.o + .debug_pubnames + 0x00000187 0x48 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-divmod.o) + .debug_pubnames + 0x000001cf 0x2e c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-ctype_.o) + .debug_pubnames + 0x000001fd 0x2d c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-sprintf.o) + .debug_pubnames + 0x0000022a 0x45 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-vfprintf.o) + .debug_pubnames + 0x0000026f 0x2b c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-fvwrite_small_str.o) + .debug_pubnames + 0x0000029a 0x39 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-impure.o) + .debug_pubnames + 0x000002d3 0x1e c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-memmove.o) + .debug_pubnames + 0x000002f1 0x1d c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-strlen.o) + .debug_pubnames + 0x0000030e 0x1f c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-mul.o) + .debug_pubnames + 0x0000032d 0x1f ../qsys_tutorial_hexs_bsp/\libhal_bsp.a(alt_load.o) + .debug_pubnames + 0x0000034c 0x46 ../qsys_tutorial_hexs_bsp/\libhal_bsp.a(alt_main.o) + .debug_pubnames + 0x00000392 0x42 ../qsys_tutorial_hexs_bsp/\libhal_bsp.a(alt_sys_init.o) + .debug_pubnames + 0x000003d4 0x2b ../qsys_tutorial_hexs_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) + .debug_pubnames + 0x000003ff 0x2b ../qsys_tutorial_hexs_bsp/\libhal_bsp.a(alt_icache_flush_all.o) + .debug_pubnames + 0x0000042a 0x31 ../qsys_tutorial_hexs_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) + +.debug_info 0x00000000 0x3122 + *(.debug_info .gnu.linkonce.wi.*) + .debug_info 0x00000000 0x82 ../qsys_tutorial_hexs_bsp//obj/HAL/src/crt0.o + .debug_info 0x00000082 0x6d obj/default/hello_world_small.o + .debug_info 0x000000ef 0xd2 obj/default/hex_encoder.o + .debug_info 0x000001c1 0x145 obj/default/hex_out.o + .debug_info 0x00000306 0x1ab obj/default/input_int.o + .debug_info 0x000004b1 0x19e obj/default/sys_memory.o + .debug_info 0x0000064f 0x7d obj/default/sys_register.o + .debug_info 0x000006cc 0x3a obj/default/system.o + .debug_info 0x00000706 0x21c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-divmod.o) + .debug_info 0x00000922 0xa0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-ctype_.o) + .debug_info 0x000009c2 0x7e7 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-sprintf.o) + .debug_info 0x000011a9 0x9b6 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-vfprintf.o) + .debug_info 0x00001b5f 0x75f c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-fvwrite_small_str.o) + .debug_info 0x000022be 0x636 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-impure.o) + .debug_info 0x000028f4 0x102 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-memmove.o) + .debug_info 0x000029f6 0xc2 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-strlen.o) + .debug_info 0x00002ab8 0xf3 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-mul.o) + .debug_info 0x00002bab 0x12e ../qsys_tutorial_hexs_bsp/\libhal_bsp.a(alt_load.o) + .debug_info 0x00002cd9 0x125 ../qsys_tutorial_hexs_bsp/\libhal_bsp.a(alt_main.o) + .debug_info 0x00002dfe 0x17d ../qsys_tutorial_hexs_bsp/\libhal_bsp.a(alt_sys_init.o) + .debug_info 0x00002f7b 0x8d ../qsys_tutorial_hexs_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) + .debug_info 0x00003008 0x8d ../qsys_tutorial_hexs_bsp/\libhal_bsp.a(alt_icache_flush_all.o) + .debug_info 0x00003095 0x8d ../qsys_tutorial_hexs_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) + +.debug_abbrev 0x00000000 0x10af + *(.debug_abbrev) + .debug_abbrev 0x00000000 0x12 ../qsys_tutorial_hexs_bsp//obj/HAL/src/crt0.o + .debug_abbrev 0x00000012 0x63 obj/default/hello_world_small.o + .debug_abbrev 0x00000075 0x9e obj/default/hex_encoder.o + .debug_abbrev 0x00000113 0xc7 obj/default/hex_out.o + .debug_abbrev 0x000001da 0xfc obj/default/input_int.o + .debug_abbrev 0x000002d6 0xe9 obj/default/sys_memory.o + .debug_abbrev 0x000003bf 0x6f obj/default/sys_register.o + .debug_abbrev 0x0000042e 0x27 obj/default/system.o + .debug_abbrev 0x00000455 0xe0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-divmod.o) + .debug_abbrev 0x00000535 0x61 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-ctype_.o) + .debug_abbrev 0x00000596 0x179 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-sprintf.o) + .debug_abbrev 0x0000070f 0x263 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-vfprintf.o) + .debug_abbrev 0x00000972 0x184 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-fvwrite_small_str.o) + .debug_abbrev 0x00000af6 0x13f c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-impure.o) + .debug_abbrev 0x00000c35 0xa8 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-memmove.o) + .debug_abbrev 0x00000cdd 0x7a c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-strlen.o) + .debug_abbrev 0x00000d57 0x7b c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-mul.o) + .debug_abbrev 0x00000dd2 0x97 ../qsys_tutorial_hexs_bsp/\libhal_bsp.a(alt_load.o) + .debug_abbrev 0x00000e69 0xa6 ../qsys_tutorial_hexs_bsp/\libhal_bsp.a(alt_main.o) + .debug_abbrev 0x00000f0f 0xe3 ../qsys_tutorial_hexs_bsp/\libhal_bsp.a(alt_sys_init.o) + .debug_abbrev 0x00000ff2 0x3f ../qsys_tutorial_hexs_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) + .debug_abbrev 0x00001031 0x3f ../qsys_tutorial_hexs_bsp/\libhal_bsp.a(alt_icache_flush_all.o) + .debug_abbrev 0x00001070 0x3f ../qsys_tutorial_hexs_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) + +.debug_line 0x00000000 0x2f3e + *(.debug_line) + .debug_line 0x00000000 0x66 ../qsys_tutorial_hexs_bsp//obj/HAL/src/crt0.o + .debug_line 0x00000066 0x14d obj/default/hello_world_small.o + .debug_line 0x000001b3 0x2b7 obj/default/hex_encoder.o + .debug_line 0x0000046a 0x1f5 obj/default/hex_out.o + .debug_line 0x0000065f 0x288 obj/default/input_int.o + .debug_line 0x000008e7 0x10d obj/default/sys_memory.o + .debug_line 0x000009f4 0x87 obj/default/sys_register.o + .debug_line 0x00000a7b 0x94 obj/default/system.o + .debug_line 0x00000b0f 0x24f c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-divmod.o) + .debug_line 0x00000d5e 0x81 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-ctype_.o) + .debug_line 0x00000ddf 0x365 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-sprintf.o) + .debug_line 0x00001144 0x666 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-vfprintf.o) + .debug_line 0x000017aa 0x2cf c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-fvwrite_small_str.o) + .debug_line 0x00001a79 0x230 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-impure.o) + .debug_line 0x00001ca9 0x294 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-memmove.o) + .debug_line 0x00001f3d 0x250 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-strlen.o) + .debug_line 0x0000218d 0x11a c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-mul.o) + .debug_line 0x000022a7 0x217 ../qsys_tutorial_hexs_bsp/\libhal_bsp.a(alt_load.o) + .debug_line 0x000024be 0x2c2 ../qsys_tutorial_hexs_bsp/\libhal_bsp.a(alt_main.o) + .debug_line 0x00002780 0x286 ../qsys_tutorial_hexs_bsp/\libhal_bsp.a(alt_sys_init.o) + .debug_line 0x00002a06 0x1b5 ../qsys_tutorial_hexs_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) + .debug_line 0x00002bbb 0x1b5 ../qsys_tutorial_hexs_bsp/\libhal_bsp.a(alt_icache_flush_all.o) + .debug_line 0x00002d70 0x1ce ../qsys_tutorial_hexs_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) + +.debug_frame 0x00000000 0x440 + *(.debug_frame) + .debug_frame 0x00000000 0x44 obj/default/hello_world_small.o + .debug_frame 0x00000044 0x30 obj/default/hex_encoder.o + .debug_frame 0x00000074 0x5c obj/default/hex_out.o + .debug_frame 0x000000d0 0x38 obj/default/input_int.o + .debug_frame 0x00000108 0x58 obj/default/sys_memory.o + .debug_frame 0x00000160 0x20 obj/default/sys_register.o + .debug_frame 0x00000180 0x28 obj/default/system.o + .debug_frame 0x000001a8 0x70 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-divmod.o) + .debug_frame 0x00000218 0x40 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-sprintf.o) + .debug_frame 0x00000258 0x64 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-vfprintf.o) + .debug_frame 0x000002bc 0x2c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-fvwrite_small_str.o) + .debug_frame 0x000002e8 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-memmove.o) + .debug_frame 0x00000308 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-strlen.o) + .debug_frame 0x00000328 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-mul.o) + .debug_frame 0x00000348 0x38 ../qsys_tutorial_hexs_bsp/\libhal_bsp.a(alt_load.o) + .debug_frame 0x00000380 0x28 ../qsys_tutorial_hexs_bsp/\libhal_bsp.a(alt_main.o) + .debug_frame 0x000003a8 0x38 ../qsys_tutorial_hexs_bsp/\libhal_bsp.a(alt_sys_init.o) + .debug_frame 0x000003e0 0x20 ../qsys_tutorial_hexs_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) + .debug_frame 0x00000400 0x20 ../qsys_tutorial_hexs_bsp/\libhal_bsp.a(alt_icache_flush_all.o) + .debug_frame 0x00000420 0x20 ../qsys_tutorial_hexs_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) + +.debug_str 0x00000000 0xfdc + *(.debug_str) + .debug_str 0x00000000 0x86 obj/default/hello_world_small.o + 0x90 (size before relaxing) + .debug_str 0x00000086 0x42 obj/default/hex_encoder.o + 0xa0 (size before relaxing) + .debug_str 0x000000c8 0x54 obj/default/hex_out.o + 0xd6 (size before relaxing) + .debug_str 0x0000011c 0xd3 obj/default/input_int.o + 0x183 (size before relaxing) + .debug_str 0x000001ef 0xb8 obj/default/sys_memory.o + 0x14d (size before relaxing) + .debug_str 0x000002a7 0x1e obj/default/sys_register.o + 0x9f (size before relaxing) + .debug_str 0x000002c5 0xf obj/default/system.o + 0x68 (size before relaxing) + .debug_str 0x000002d4 0x10b c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-divmod.o) + 0x1b4 (size before relaxing) + .debug_str 0x000003df 0xea c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-ctype_.o) + 0x119 (size before relaxing) + .debug_str 0x000004c9 0x3dd c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-sprintf.o) + 0x499 (size before relaxing) + .debug_str 0x000008a6 0x162 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-vfprintf.o) + 0x5af (size before relaxing) + .debug_str 0x00000a08 0x5d c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-fvwrite_small_str.o) + 0x487 (size before relaxing) + .debug_str 0x00000a65 0xf8 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-impure.o) + 0x45d (size before relaxing) + .debug_str 0x00000b5d 0x104 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-memmove.o) + 0x199 (size before relaxing) + .debug_str 0x00000c61 0x45 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-strlen.o) + 0x184 (size before relaxing) + .debug_str 0x00000ca6 0x37 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-mul.o) + 0x175 (size before relaxing) + .debug_str 0x00000cdd 0x142 ../qsys_tutorial_hexs_bsp/\libhal_bsp.a(alt_load.o) + 0x1d7 (size before relaxing) + .debug_str 0x00000e1f 0x70 ../qsys_tutorial_hexs_bsp/\libhal_bsp.a(alt_main.o) + 0x15b (size before relaxing) + .debug_str 0x00000e8f 0xaa ../qsys_tutorial_hexs_bsp/\libhal_bsp.a(alt_sys_init.o) + 0x1ce (size before relaxing) + .debug_str 0x00000f39 0x34 ../qsys_tutorial_hexs_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) + 0x11a (size before relaxing) + .debug_str 0x00000f6d 0x34 ../qsys_tutorial_hexs_bsp/\libhal_bsp.a(alt_icache_flush_all.o) + 0x11a (size before relaxing) + .debug_str 0x00000fa1 0x3b ../qsys_tutorial_hexs_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) + 0x121 (size before relaxing) + +.debug_loc 0x00000000 0x1462 + *(.debug_loc) + .debug_loc 0x00000000 0x3e obj/default/hello_world_small.o + .debug_loc 0x0000003e 0x3b9 obj/default/hex_encoder.o + .debug_loc 0x000003f7 0x24c obj/default/hex_out.o + .debug_loc 0x00000643 0x1f obj/default/input_int.o + .debug_loc 0x00000662 0xcc obj/default/sys_memory.o + .debug_loc 0x0000072e 0x1f obj/default/system.o + .debug_loc 0x0000074d 0x1d2 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-divmod.o) + .debug_loc 0x0000091f 0xbe c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-sprintf.o) + .debug_loc 0x000009dd 0x878 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-vfprintf.o) + .debug_loc 0x00001255 0xe1 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-fvwrite_small_str.o) + .debug_loc 0x00001336 0x4f c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-memmove.o) + .debug_loc 0x00001385 0x1e c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-strlen.o) + .debug_loc 0x000013a3 0x4f c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-mul.o) + .debug_loc 0x000013f2 0x1f ../qsys_tutorial_hexs_bsp/\libhal_bsp.a(alt_load.o) + .debug_loc 0x00001411 0x1f ../qsys_tutorial_hexs_bsp/\libhal_bsp.a(alt_main.o) + .debug_loc 0x00001430 0x32 ../qsys_tutorial_hexs_bsp/\libhal_bsp.a(alt_sys_init.o) + +.debug_macinfo + *(.debug_macinfo) + +.debug_weaknames + *(.debug_weaknames) + +.debug_funcnames + *(.debug_funcnames) + +.debug_typenames + *(.debug_typenames) + +.debug_varnames + *(.debug_varnames) + +.debug_alt_sim_info + 0x00000000 0x10 + *(.debug_alt_sim_info) + .debug_alt_sim_info + 0x00000000 0x10 ../qsys_tutorial_hexs_bsp//obj/HAL/src/crt0.o + 0x00001000 __alt_data_end = 0x1000 + 0x00001000 PROVIDE (__alt_stack_pointer, __alt_data_end) + 0x000019d8 PROVIDE (__alt_stack_limit, __alt_stack_base) + 0x000019d8 PROVIDE (__alt_heap_start, end) + 0x00001000 PROVIDE (__alt_heap_limit, 0x1000) +OUTPUT(qsys_tutorial_hexs.elf elf32-littlenios2) + +.debug_ranges 0x00000000 0x178 + .debug_ranges 0x00000000 0x20 ../qsys_tutorial_hexs_bsp//obj/HAL/src/crt0.o + .debug_ranges 0x00000020 0x140 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-vfprintf.o) + .debug_ranges 0x00000160 0x18 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-fvwrite_small_str.o) diff --git a/software/qsys_tutorial_hexs/qsys_tutorial_hexs.objdump b/software/qsys_tutorial_hexs/qsys_tutorial_hexs.objdump new file mode 100644 index 0000000..6921dd3 --- /dev/null +++ b/software/qsys_tutorial_hexs/qsys_tutorial_hexs.objdump @@ -0,0 +1,2011 @@ + +qsys_tutorial_hexs.elf: file format elf32-littlenios2 +qsys_tutorial_hexs.elf +architecture: nios2, flags 0x00000112: +EXEC_P, HAS_SYMS, D_PAGED +start address 0x00000020 + +Program Header: + LOAD off 0x00001000 vaddr 0x00000000 paddr 0x00000000 align 2**12 + filesz 0x00000020 memsz 0x00000020 flags r-x + LOAD off 0x00001020 vaddr 0x00000020 paddr 0x00000020 align 2**12 + filesz 0x00000f68 memsz 0x00000f68 flags r-x + LOAD off 0x00001f88 vaddr 0x00000f88 paddr 0x00000f90 align 2**12 + filesz 0x00000008 memsz 0x00000008 flags rw- + LOAD off 0x00001f98 vaddr 0x00000f98 paddr 0x00000f98 align 2**12 + filesz 0x00000000 memsz 0x00000064 flags rw- + +Sections: +Idx Name Size VMA LMA File off Algn + 0 .entry 00000020 00000000 00000000 00001000 2**5 + CONTENTS, ALLOC, LOAD, READONLY, CODE + 1 .text 00000cbc 00000020 00000020 00001020 2**2 + CONTENTS, ALLOC, LOAD, READONLY, CODE + 2 .rodata 000002ac 00000cdc 00000cdc 00001cdc 2**2 + CONTENTS, ALLOC, LOAD, READONLY, DATA + 3 .rwdata 00000008 00000f88 00000f90 00001f88 2**2 + CONTENTS, ALLOC, LOAD, DATA, SMALL_DATA + 4 .bss 00000064 00000f98 00000f98 00001f98 2**2 + ALLOC, SMALL_DATA + 5 .comment 00000026 00000000 00000000 00001f90 2**0 + CONTENTS, READONLY + 6 .debug_aranges 00000248 00000000 00000000 00001fb8 2**3 + CONTENTS, READONLY, DEBUGGING + 7 .debug_pubnames 000003a2 00000000 00000000 00002200 2**0 + CONTENTS, READONLY, DEBUGGING + 8 .debug_info 00001254 00000000 00000000 000025a2 2**0 + CONTENTS, READONLY, DEBUGGING + 9 .debug_abbrev 00000aa5 00000000 00000000 000037f6 2**0 + CONTENTS, READONLY, DEBUGGING + 10 .debug_line 0000204a 00000000 00000000 0000429b 2**0 + CONTENTS, READONLY, DEBUGGING + 11 .debug_frame 00000384 00000000 00000000 000062e8 2**2 + CONTENTS, READONLY, DEBUGGING + 12 .debug_str 00000895 00000000 00000000 0000666c 2**0 + CONTENTS, READONLY, DEBUGGING + 13 .debug_loc 00000b67 00000000 00000000 00006f01 2**0 + CONTENTS, READONLY, DEBUGGING + 14 .debug_alt_sim_info 00000010 00000000 00000000 00007a68 2**2 + CONTENTS, READONLY, DEBUGGING + 15 .debug_ranges 00000020 00000000 00000000 00007a78 2**3 + CONTENTS, READONLY, DEBUGGING + 16 .thread_model 00000003 00000000 00000000 00008b60 2**0 + CONTENTS, READONLY + 17 .cpu 0000000f 00000000 00000000 00008b63 2**0 + CONTENTS, READONLY + 18 .qsys 00000001 00000000 00000000 00008b72 2**0 + CONTENTS, READONLY + 19 .simulation_enabled 00000001 00000000 00000000 00008b73 2**0 + CONTENTS, READONLY + 20 .stderr_dev 00000009 00000000 00000000 00008b74 2**0 + CONTENTS, READONLY + 21 .stdin_dev 00000009 00000000 00000000 00008b7d 2**0 + CONTENTS, READONLY + 22 .stdout_dev 00000009 00000000 00000000 00008b86 2**0 + CONTENTS, READONLY + 23 .sopc_system_name 0000000b 00000000 00000000 00008b8f 2**0 + CONTENTS, READONLY + 24 .quartus_project_dir 00000030 00000000 00000000 00008b9a 2**0 + CONTENTS, READONLY + 25 .sopcinfo 0006c868 00000000 00000000 00008bca 2**0 + CONTENTS, READONLY +SYMBOL TABLE: +00000000 l d .entry 00000000 .entry +00000020 l d .text 00000000 .text +00000cdc l d .rodata 00000000 .rodata +00000f88 l d .rwdata 00000000 .rwdata +00000f98 l d .bss 00000000 .bss +00000000 l d .comment 00000000 .comment +00000000 l d .debug_aranges 00000000 .debug_aranges +00000000 l d .debug_pubnames 00000000 .debug_pubnames +00000000 l d .debug_info 00000000 .debug_info +00000000 l d .debug_abbrev 00000000 .debug_abbrev +00000000 l d .debug_line 00000000 .debug_line +00000000 l d .debug_frame 00000000 .debug_frame +00000000 l d .debug_str 00000000 .debug_str +00000000 l d .debug_loc 00000000 .debug_loc +00000000 l d .debug_alt_sim_info 00000000 .debug_alt_sim_info +00000000 l d .debug_ranges 00000000 .debug_ranges +00000058 l .text 00000000 alt_after_alt_main +00000000 l df *ABS* 00000000 hello_world_small.c +00000000 l df *ABS* 00000000 hex_encoder.c +00000000 l df *ABS* 00000000 hex_out.c +00000000 l df *ABS* 00000000 input_int.c +00000f99 l O .bss 00000001 status.1370 +00000000 l df *ABS* 00000000 sys_memory.c +00000fac l O .bss 00000040 memory +00000000 l df *ABS* 00000000 sys_register.c +00000000 l df *ABS* 00000000 system.c +00000000 l df *ABS* 00000000 lib2-divmod.c +000008dc l F .text 0000007c udivmodsi4 +00000000 l df *ABS* 00000000 ctype_.c +00000e05 l O .rodata 00000180 _ctype_b +00000000 l df *ABS* 00000000 alt_load.c +00000a28 l F .text 00000020 alt_load_section +00000000 l df *ABS* 00000000 alt_main.c +00000000 l df *ABS* 00000000 alt_printf.c +00000000 l df *ABS* 00000000 alt_putchar.c +00000000 l df *ABS* 00000000 alt_sys_init.c +00000000 l df *ABS* 00000000 altera_avalon_jtag_uart_write.c +00000000 l df *ABS* 00000000 alt_dcache_flush_all.c +00000000 l df *ABS* 00000000 alt_icache_flush_all.c +00000000 l df *ABS* 00000000 altera_nios2_qsys_irq.c +00000ab4 g F .text 0000002c alt_main +00000f90 g *ABS* 00000000 __flash_rwdata_start +00000588 g F .text 00000050 clear_block +00000f8c g O .rwdata 00000004 jtag_uart +00000000 g F .entry 0000000c __reset +00000020 g *ABS* 00000000 __flash_exceptions_start +00000fa4 g O .bss 00000004 alt_argv +00008f88 g *ABS* 00000000 _gp +00000a18 g F .text 00000008 __udivsi3 +00000824 g F .text 00000070 memory_store +00000ffc g *ABS* 00000000 __bss_end +00000f88 g O .rwdata 00000004 __ctype_ptr +00000ccc g F .text 00000004 alt_dcache_flush_all +00000fec g O .bss 0000000d global_registers +00000f90 g *ABS* 00000000 __ram_rwdata_end +00000000 g *ABS* 00000000 __alt_mem_onchip_memory +00000f88 g *ABS* 00000000 __ram_rodata_end +00000a20 g F .text 00000008 __umodsi3 +00000ffc g *ABS* 00000000 end +00001000 g *ABS* 00000000 __alt_stack_pointer +00000c98 g F .text 00000034 altera_avalon_jtag_uart_write +00000ae0 g F .text 00000144 alt_printf +000005d8 g F .text 000000fc print_number +00000020 g F .text 0000003c _start +000004ac g F .text 000000dc print_block +00000c74 g F .text 00000004 alt_sys_init +00000f88 g *ABS* 00000000 __ram_rwdata_start +00000cdc g *ABS* 00000000 __ram_rodata_start +000008b0 g F .text 0000002c panic +00000ffc g *ABS* 00000000 __alt_stack_base +0000005c g F .text 00000084 init +00000f98 g *ABS* 00000000 __bss_start +000000e0 g F .text 00000014 main +00000fa8 g O .bss 00000004 alt_envp +000000f4 g F .text 00000124 encodeNumHex +0000076c g F .text 00000004 in_int +00000958 g F .text 00000060 __divsi3 +00000cdc g *ABS* 00000000 __flash_rodata_start +00000c78 g F .text 00000020 alt_irq_init +000006d4 g F .text 00000098 push_int +00000fa0 g O .bss 00000004 alt_argc +00000f9c g O .bss 00000004 global_current_memory +00000020 g *ABS* 00000000 __ram_exceptions_start +00000218 g F .text 00000294 encodeLatHex +00000f90 g *ABS* 00000000 _edata +00000ffc g *ABS* 00000000 _end +00000020 g *ABS* 00000000 __ram_exceptions_end +00000770 g F .text 00000044 memory_init +00000cd4 g F .text 00000008 altera_nios2_qsys_irq_init +0000000c g .entry 00000000 exit +000007b4 g F .text 00000070 memory_load +000009b8 g F .text 00000060 __modsi3 +00001000 g *ABS* 00000000 __alt_data_end +00000d04 g O .rodata 00000101 _ctype_ +00000894 g F .text 0000001c registers_init +0000000c g .entry 00000000 _exit +00000c24 g F .text 00000050 alt_putchar +00000cd0 g F .text 00000004 alt_icache_flush_all +00000a48 g F .text 0000006c alt_load +00000f98 g O .bss 00000001 PUSH_EVENT + + + +Disassembly of section .entry: + +00000000 <__reset>: + * Jump to the _start entry point in the .text section if reset code + * is allowed or if optimizing for RTL simulation. + */ +#if defined(ALT_ALLOW_CODE_AT_RESET) || defined(ALT_SIM_OPTIMIZE) + /* Jump to the _start entry point in the .text section. */ + movhi r1, %hi(_start) + 0: 00400034 movhi at,0 + ori r1, r1, %lo(_start) + 4: 08400814 ori at,at,32 + jmp r1 + 8: 0800683a jmp at + +0000000c <_exit>: + ... + +Disassembly of section .text: + +00000020 <_start>: +#if (NIOS2_NUM_OF_SHADOW_REG_SETS == 0) + /* + * Now that the caches are initialized, set up the stack pointer. + * The value provided by the linker is assumed to be correctly aligned. + */ + movhi sp, %hi(__alt_stack_pointer) + 20: 06c00034 movhi sp,0 + ori sp, sp, %lo(__alt_stack_pointer) + 24: dec40014 ori sp,sp,4096 + + /* Set up the global pointer. */ + movhi gp, %hi(_gp) + 28: 06800034 movhi gp,0 + ori gp, gp, %lo(_gp) + 2c: d6a3e214 ori gp,gp,36744 + */ +#ifndef ALT_SIM_OPTIMIZE + /* Log that the BSS is about to be cleared. */ + ALT_LOG_PUTS(alt_log_msg_bss) + + movhi r2, %hi(__bss_start) + 30: 00800034 movhi r2,0 + ori r2, r2, %lo(__bss_start) + 34: 1083e614 ori r2,r2,3992 + + movhi r3, %hi(__bss_end) + 38: 00c00034 movhi r3,0 + ori r3, r3, %lo(__bss_end) + 3c: 18c3ff14 ori r3,r3,4092 + + beq r2, r3, 1f + 40: 10c00326 beq r2,r3,50 <_start+0x30> + +0: + stw zero, (r2) + 44: 10000015 stw zero,0(r2) + addi r2, r2, 4 + 48: 10800104 addi r2,r2,4 + bltu r2, r3, 0b + 4c: 10fffd36 bltu r2,r3,44 <_start+0x24> + * section aren't defined until alt_load() has been called). + */ + mov et, zero +#endif + + call alt_load + 50: 0000a480 call a48 + + /* Log that alt_main is about to be called. */ + ALT_LOG_PUTS(alt_log_msg_alt_main) + + /* Call the C entry point. It should never return. */ + call alt_main + 54: 0000ab40 call ab4 + +00000058 : + + /* Wait in infinite loop in case alt_main does return. */ +alt_after_alt_main: + br alt_after_alt_main + 58: 003fff06 br 58 + +0000005c : + +#define ledrs (volatile int *) 0x00020a0 +#define push_switches (volatile char *) 0x0002080 + + +void init() { + 5c: defffd04 addi sp,sp,-12 + 60: dfc00215 stw ra,8(sp) + 64: dc400115 stw r17,4(sp) + 68: dc000015 stw r16,0(sp) + registers_init(); + 6c: 00008940 call 894 + memory_init(); + 70: 00007700 call 770 + clear_block(HEX0_3); clear_block(HEX4_5); clear_block(HEX6_7); + 74: 04400044 movi r17,1 + 78: 0009883a mov r4,zero + 7c: 00005880 call 588 + 80: 04000084 movi r16,2 + 84: 8809883a mov r4,r17 + 88: 00005880 call 588 + 8c: 8009883a mov r4,r16 + 90: 00005880 call 588 + print_block("he", 2, HEX6_7); + 94: 800b883a mov r5,r16 + 98: 800d883a mov r6,r16 + 9c: 01000034 movhi r4,0 + a0: 21033704 addi r4,r4,3292 + a4: 00004ac0 call 4ac + print_block("lo", 2, HEX4_5); + a8: 800b883a mov r5,r16 + ac: 880d883a mov r6,r17 + b0: 01000034 movhi r4,0 + b4: 21033804 addi r4,r4,3296 + b8: 00004ac0 call 4ac + print_block("you1", 4, HEX0_3); + bc: 01000034 movhi r4,0 + c0: 21033904 addi r4,r4,3300 + c4: 01400104 movi r5,4 + c8: 000d883a mov r6,zero +} + cc: dfc00217 ldw ra,8(sp) + d0: dc400117 ldw r17,4(sp) + d4: dc000017 ldw r16,0(sp) + d8: dec00304 addi sp,sp,12 + registers_init(); + memory_init(); + clear_block(HEX0_3); clear_block(HEX4_5); clear_block(HEX6_7); + print_block("he", 2, HEX6_7); + print_block("lo", 2, HEX4_5); + print_block("you1", 4, HEX0_3); + dc: 00004ac1 jmpi 4ac + +000000e0
: +} + +int main() +{ + e0: deffff04 addi sp,sp,-4 + e4: dfc00015 stw ra,0(sp) + init(); + e8: 000005c0 call 5c + while(1) { + // interrupt + in_int(); + ec: 000076c0 call 76c + f0: 003ffe06 br ec + +000000f4 : +#include "hex_encoder.h" +#include + +void encodeNumHex(int hex_i, int num) { + char encoded = 0; + switch (num) { + f4: 00800244 movi r2,9 + f8: 11401336 bltu r2,r5,148 + fc: 2945883a add r2,r5,r5 + 100: 1085883a add r2,r2,r2 + 104: 00c00034 movhi r3,0 + 108: 18c04604 addi r3,r3,280 + 10c: 10c5883a add r2,r2,r3 + 110: 10800017 ldw r2,0(r2) + 114: 1000683a jmp r2 + 118: 00000150 cmplti zero,zero,5 + 11c: 00000158 cmpnei zero,zero,5 + 120: 00000160 cmpeqi zero,zero,5 + 124: 00000168 cmpgeui zero,zero,5 + 128: 00000170 cmpltui zero,zero,5 + 12c: 00000178 rdprs zero,zero,5 + 130: 00000180 call 18 <_exit+0xc> + 134: 00000188 cmpgei zero,zero,6 + 138: 00000148 cmpgei zero,zero,5 + 13c: 00000140 call 14 <_exit+0x8> + 140: 01400404 movi r5,16 + 144: 00001106 br 18c + 148: 000b883a mov r5,zero + 14c: 00000f06 br 18c + 150: 01401004 movi r5,64 + 154: 00000d06 br 18c + case 0: + encoded = (char)0x40; // 100 0000 + break; + 158: 017ffe44 movi r5,-7 + 15c: 00000b06 br 18c + case 1: + encoded = (char)0xF9; // 111 1001 + break; + 160: 01400904 movi r5,36 + 164: 00000906 br 18c + case 2: + encoded = (char)0x24; // 010 0100 + break; + 168: 01400c04 movi r5,48 + 16c: 00000706 br 18c + case 3: + encoded = (char)0x30; // 011 0000 + break; + 170: 01400644 movi r5,25 + 174: 00000506 br 18c + case 4: + encoded = (char)0x19; // 001 1001 + break; + 178: 01400484 movi r5,18 + 17c: 00000306 br 18c + case 5: + encoded = (char)0x12; // 001 0010 + break; + 180: 01400084 movi r5,2 + 184: 00000106 br 18c + case 6: + encoded = (char)0x02; // 000 0010 + break; + 188: 01401604 movi r5,88 + default: + encoded = 0; + break; + } + + switch (hex_i) { + 18c: 008001c4 movi r2,7 + 190: 11002036 bltu r2,r4,214 + 194: 2105883a add r2,r4,r4 + 198: 1085883a add r2,r2,r2 + 19c: 00c00034 movhi r3,0 + 1a0: 18c06c04 addi r3,r3,432 + 1a4: 10c5883a add r2,r2,r3 + 1a8: 10800017 ldw r2,0(r2) + 1ac: 1000683a jmp r2 + 1b0: 000001d0 cmplti zero,zero,7 + 1b4: 000001d8 cmpnei zero,zero,7 + 1b8: 000001e0 cmpeqi zero,zero,7 + 1bc: 000001e8 cmpgeui zero,zero,7 + 1c0: 000001f0 cmpltui zero,zero,7 + 1c4: 000001f8 rdprs zero,zero,7 + 1c8: 00000200 call 20 <_start> + 1cc: 0000020c andi zero,zero,8 + case 0: + *hex0 = encoded; + 1d0: 00881c04 movi r2,8304 + 1d4: 00000b06 br 204 + break; + case 1: + *hex1 = encoded; + 1d8: 00881804 movi r2,8288 + 1dc: 00000906 br 204 + break; + case 2: + *hex2 = encoded; + 1e0: 00881404 movi r2,8272 + 1e4: 00000706 br 204 + break; + case 3: + *hex3 = encoded; + 1e8: 00881004 movi r2,8256 + 1ec: 00000506 br 204 + break; + case 4: + *hex4 = encoded; + 1f0: 00880c04 movi r2,8240 + 1f4: 00000306 br 204 + break; + case 5: + *hex5 = encoded; + 1f8: 00880804 movi r2,8224 + 1fc: 00000106 br 204 + break; + case 6: + *hex6 = encoded; + 200: 00880404 movi r2,8208 + 204: 11400005 stb r5,0(r2) + 208: f800283a ret + break; + case 7: + *hex7 = encoded; + 20c: 00880004 movi r2,8192 + 210: 11400005 stb r5,0(r2) + 214: f800283a ret + +00000218 : +} + +void encodeLatHex(int hex_i, char c) { + char encoded = 0; + + if (isdigit(c)) { + 218: 00800034 movhi r2,0 + 21c: 1083e204 addi r2,r2,3976 + 220: 10800017 ldw r2,0(r2) + 224: 29403fcc andi r5,r5,255 + 228: 2940201c xori r5,r5,128 + 22c: 297fe004 addi r5,r5,-128 + 230: 2885883a add r2,r5,r2 + 234: 10800003 ldbu r2,0(r2) + default: + break; + } +} + +void encodeLatHex(int hex_i, char c) { + 238: 2007883a mov r3,r4 + char encoded = 0; + + if (isdigit(c)) { + 23c: 1080010c andi r2,r2,4 + 240: 10000226 beq r2,zero,24c + encodeNumHex(hex_i, c-'0'); + 244: 297ff404 addi r5,r5,-48 + 248: 00000f41 jmpi f4 + return; + } + + switch (c) { + 24c: 00801b44 movi r2,109 + 250: 28805a26 beq r5,r2,3bc + 254: 11401d16 blt r2,r5,2cc + 258: 00801984 movi r2,102 + 25c: 28804926 beq r5,r2,384 + 260: 11400e16 blt r2,r5,29c + 264: 00801884 movi r2,98 + 268: 28803e26 beq r5,r2,364 + 26c: 11400716 blt r2,r5,28c + 270: 00800b44 movi r2,45 + 274: 28803726 beq r5,r2,354 + 278: 00801844 movi r2,97 + 27c: 28803726 beq r5,r2,35c + 280: 00800804 movi r2,32 + 284: 28802f1e bne r5,r2,344 + 288: 00003006 br 34c + 28c: 00801904 movi r2,100 + 290: 28803826 beq r5,r2,374 + 294: 11403916 blt r2,r5,37c + 298: 00003406 br 36c + 29c: 00801a44 movi r2,105 + 2a0: 28803e26 beq r5,r2,39c + 2a4: 11400516 blt r2,r5,2bc + 2a8: 008019c4 movi r2,103 + 2ac: 28803726 beq r5,r2,38c + 2b0: 00801a04 movi r2,104 + 2b4: 2880231e bne r5,r2,344 + 2b8: 00003606 br 394 + 2bc: 00801ac4 movi r2,107 + 2c0: 28803a26 beq r5,r2,3ac + 2c4: 11403b16 blt r2,r5,3b4 + 2c8: 00003606 br 3a4 + 2cc: 00801d04 movi r2,116 + 2d0: 28804826 beq r5,r2,3f4 + 2d4: 11400c16 blt r2,r5,308 + 2d8: 00801c04 movi r2,112 + 2dc: 28803d26 beq r5,r2,3d4 + 2e0: 11400516 blt r2,r5,2f8 + 2e4: 00801b84 movi r2,110 + 2e8: 28803626 beq r5,r2,3c4 + 2ec: 00801bc4 movi r2,111 + 2f0: 2880141e bne r5,r2,344 + 2f4: 00003506 br 3cc + 2f8: 00801c84 movi r2,114 + 2fc: 28803926 beq r5,r2,3e4 + 300: 11403a16 blt r2,r5,3ec + 304: 00003506 br 3dc + 308: 00801dc4 movi r2,119 + 30c: 28803f26 beq r5,r2,40c + 310: 11400516 blt r2,r5,328 + 314: 00801d44 movi r2,117 + 318: 28803826 beq r5,r2,3fc + 31c: 00801d84 movi r2,118 + 320: 2880081e bne r5,r2,344 + 324: 00003706 br 404 + 328: 00801e44 movi r2,121 + 32c: 28803b26 beq r5,r2,41c + 330: 28803816 blt r5,r2,414 + 334: 00801e84 movi r2,122 + 338: 2880021e bne r5,r2,344 + 33c: 01401904 movi r5,100 + 340: 00003706 br 420 + 344: 000b883a mov r5,zero + 348: 00003506 br 420 + 34c: 017fffc4 movi r5,-1 + 350: 00003306 br 420 + case ' ': + encoded = (char)0xFF; // 111 1111 + break; + 354: 01400fc4 movi r5,63 + 358: 00003106 br 420 + case '-': + encoded = (char)0x3F; // 011 1111 + break; + 35c: 01400204 movi r5,8 + 360: 00002f06 br 420 + case 'a': + encoded = (char)0x08; // 000 1000 + break; + 364: 014000c4 movi r5,3 + 368: 00002d06 br 420 + case 'b': + encoded = (char)0x03; // 000 0011 + break; + 36c: 014009c4 movi r5,39 + 370: 00002b06 br 420 + case 'c': + encoded = (char)0x27; // 010 0111 + break; + 374: 01400844 movi r5,33 + 378: 00002906 br 420 + case 'd': + encoded = (char)0x21; // 010 0001 + break; + 37c: 01400184 movi r5,6 + 380: 00002706 br 420 + case 'e': + encoded = (char)0x06; // 000 0110 + break; + 384: 01400384 movi r5,14 + 388: 00002506 br 420 + case 'f': + encoded = (char)0x0E; // 000 1110 + break; + 38c: 01401084 movi r5,66 + 390: 00002306 br 420 + case 'g': + encoded = (char)0x42; // 100 0010 + break; + 394: 014002c4 movi r5,11 + 398: 00002106 br 420 + case 'h': + encoded = (char)0x0B; // 000 1011 + break; + 39c: 017ffec4 movi r5,-5 + 3a0: 00001f06 br 420 + case 'i': + encoded = (char)0xFB; // 111 1011 + break; + 3a4: 01401844 movi r5,97 + 3a8: 00001d06 br 420 + case 'j': + encoded = (char)0x61; // 110 0001 + break; + 3ac: 01400284 movi r5,10 + 3b0: 00001b06 br 420 + case 'k': + encoded = (char)0x0A; // 000 1010 + break; + 3b4: 014011c4 movi r5,71 + 3b8: 00001906 br 420 + case 'l': + encoded = (char)0x47; // 100 0111 + break; + 3bc: 01401204 movi r5,72 + 3c0: 00001706 br 420 + case 'm': + encoded = (char)0x48; // 100 1000 + break; + 3c4: 01400ac4 movi r5,43 + 3c8: 00001506 br 420 + case 'n': + encoded = (char)0x2B; // 010 1011 + break; + 3cc: 014008c4 movi r5,35 + 3d0: 00001306 br 420 + case 'o': + encoded = (char)0x23; // 010 0011 + break; + 3d4: 01400304 movi r5,12 + 3d8: 00001106 br 420 + case 'p': + encoded = (char)0x0C; // 000 1100 + break; + 3dc: 01400104 movi r5,4 + 3e0: 00000f06 br 420 + case 'q': + encoded = (char)0x04; // 000 0100 + break; + 3e4: 01400bc4 movi r5,47 + 3e8: 00000d06 br 420 + case 'r': + encoded = (char)0x2F; // 010 1111 + break; + 3ec: 014004c4 movi r5,19 + 3f0: 00000b06 br 420 + case 's': + encoded = (char)0x13; // 001 0011 + break; + 3f4: 014001c4 movi r5,7 + 3f8: 00000906 br 420 + case 't': + encoded = (char)0x07; // 000 0111 + break; + 3fc: 014018c4 movi r5,99 + 400: 00000706 br 420 + case 'u': + encoded = (char)0x63; // 110 0011 + break; + 404: 01401044 movi r5,65 + 408: 00000506 br 420 + case 'v': + encoded = (char)0x41; // 100 0001 + break; + 40c: 01400044 movi r5,1 + 410: 00000306 br 420 + case 'w': + encoded = (char)0x01; // 000 0001 + break; + 414: 01400244 movi r5,9 + 418: 00000106 br 420 + case 'x': + encoded = (char)0x09; // 000 1001 + break; + 41c: 01400444 movi r5,17 + default: + encoded = 0; + break; + } + + switch (hex_i) { + 420: 008001c4 movi r2,7 + 424: 10c02036 bltu r2,r3,4a8 + 428: 18c5883a add r2,r3,r3 + 42c: 1085883a add r2,r2,r2 + 430: 00c00034 movhi r3,0 + 434: 18c11104 addi r3,r3,1092 + 438: 10c5883a add r2,r2,r3 + 43c: 10800017 ldw r2,0(r2) + 440: 1000683a jmp r2 + 444: 00000464 muli zero,zero,17 + 448: 0000046c andhi zero,zero,17 + 44c: 00000474 movhi zero,17 + 450: 0000047c xorhi zero,zero,17 + 454: 00000484 movi zero,18 + 458: 0000048c andi zero,zero,18 + 45c: 00000494 movui zero,18 + 460: 000004a0 cmpeqi zero,zero,18 + case 0: + *hex0 = encoded; + 464: 00881c04 movi r2,8304 + 468: 00000b06 br 498 + break; + case 1: + *hex1 = encoded; + 46c: 00881804 movi r2,8288 + 470: 00000906 br 498 + break; + case 2: + *hex2 = encoded; + 474: 00881404 movi r2,8272 + 478: 00000706 br 498 + break; + case 3: + *hex3 = encoded; + 47c: 00881004 movi r2,8256 + 480: 00000506 br 498 + break; + case 4: + *hex4 = encoded; + 484: 00880c04 movi r2,8240 + 488: 00000306 br 498 + break; + case 5: + *hex5 = encoded; + 48c: 00880804 movi r2,8224 + 490: 00000106 br 498 + break; + case 6: + *hex6 = encoded; + 494: 00880404 movi r2,8208 + 498: 11400005 stb r5,0(r2) + 49c: f800283a ret + break; + case 7: + *hex7 = encoded; + 4a0: 00880004 movi r2,8192 + 4a4: 11400005 stb r5,0(r2) + 4a8: f800283a ret + +000004ac : + */ +#include "hex_out.h" +#include "hex_encoder.h" +#include "system.h" + +void print_block(char * str, unsigned int size, enum BLOCK_N block_i) { + 4ac: defffc04 addi sp,sp,-16 + 4b0: dc400115 stw r17,4(sp) + 4b4: dc000015 stw r16,0(sp) + 4b8: dfc00315 stw ra,12(sp) + 4bc: dc800215 stw r18,8(sp) + 4c0: 2021883a mov r16,r4 + 4c4: 2823883a mov r17,r5 + int i; + if (block_i == HEX0_3) { + 4c8: 30000d1e bne r6,zero,500 + if (size > 4) panic(); + 4cc: 00800104 movi r2,4 + 4d0: 1140012e bgeu r2,r5,4d8 + 4d4: 00008b00 call 8b0 + 4d8: 8461883a add r16,r16,r17 + 4dc: 0025883a mov r18,zero + 4e0: 00000306 br 4f0 + for (i = 0; i < size; i++) { + encodeLatHex(i,str[size-1-i]); + 4e4: 81400007 ldb r5,0(r16) + +void print_block(char * str, unsigned int size, enum BLOCK_N block_i) { + int i; + if (block_i == HEX0_3) { + if (size > 4) panic(); + for (i = 0; i < size; i++) { + 4e8: 94800044 addi r18,r18,1 + encodeLatHex(i,str[size-1-i]); + 4ec: 00002180 call 218 + 4f0: 9009883a mov r4,r18 + +void print_block(char * str, unsigned int size, enum BLOCK_N block_i) { + int i; + if (block_i == HEX0_3) { + if (size > 4) panic(); + for (i = 0; i < size; i++) { + 4f4: 843fffc4 addi r16,r16,-1 + 4f8: 947ffa1e bne r18,r17,4e4 + 4fc: 00001c06 br 570 + encodeLatHex(i,str[size-1-i]); + } + } + else if (block_i == HEX4_5) { + 500: 00800044 movi r2,1 + 504: 30800d1e bne r6,r2,53c + if (size > 2) panic(); + 508: 00800084 movi r2,2 + 50c: 1140012e bgeu r2,r5,514 + 510: 00008b00 call 8b0 + 514: 8461883a add r16,r16,r17 + 518: 0025883a mov r18,zero + 51c: 00000306 br 52c + for (i = 0; i < size; i++) { + encodeLatHex(i+4,str[size-1-i]); + 520: 81400007 ldb r5,0(r16) + encodeLatHex(i,str[size-1-i]); + } + } + else if (block_i == HEX4_5) { + if (size > 2) panic(); + for (i = 0; i < size; i++) { + 524: 94800044 addi r18,r18,1 + encodeLatHex(i+4,str[size-1-i]); + 528: 00002180 call 218 + 52c: 91000104 addi r4,r18,4 + encodeLatHex(i,str[size-1-i]); + } + } + else if (block_i == HEX4_5) { + if (size > 2) panic(); + for (i = 0; i < size; i++) { + 530: 843fffc4 addi r16,r16,-1 + 534: 947ffa1e bne r18,r17,520 + 538: 00000d06 br 570 + encodeLatHex(i+4,str[size-1-i]); + } + } + else if (block_i == HEX6_7) { + 53c: 00800084 movi r2,2 + 540: 30800b1e bne r6,r2,570 + if (size > 2) panic(); + 544: 3140012e bgeu r6,r5,54c + 548: 00008b00 call 8b0 + 54c: 8461883a add r16,r16,r17 + 550: 0025883a mov r18,zero + 554: 00000306 br 564 + for (i = 0; i < size; i++) { + encodeLatHex(i+6,str[size-1-i]); + 558: 81400007 ldb r5,0(r16) + encodeLatHex(i+4,str[size-1-i]); + } + } + else if (block_i == HEX6_7) { + if (size > 2) panic(); + for (i = 0; i < size; i++) { + 55c: 94800044 addi r18,r18,1 + encodeLatHex(i+6,str[size-1-i]); + 560: 00002180 call 218 + 564: 91000184 addi r4,r18,6 + encodeLatHex(i+4,str[size-1-i]); + } + } + else if (block_i == HEX6_7) { + if (size > 2) panic(); + for (i = 0; i < size; i++) { + 568: 843fffc4 addi r16,r16,-1 + 56c: 947ffa1e bne r18,r17,558 + encodeLatHex(i+6,str[size-1-i]); + } + } +} + 570: dfc00317 ldw ra,12(sp) + 574: dc800217 ldw r18,8(sp) + 578: dc400117 ldw r17,4(sp) + 57c: dc000017 ldw r16,0(sp) + 580: dec00404 addi sp,sp,16 + 584: f800283a ret + +00000588 : + +void clear_block(enum BLOCK_N block_i) { + 588: 2007883a mov r3,r4 + if (block_i == HEX0_3) { + print_block(" ", 4, HEX0_3); + 58c: 01400104 movi r5,4 + 590: 000d883a mov r6,zero + 594: 01000034 movhi r4,0 + 598: 21033b04 addi r4,r4,3308 + } + } +} + +void clear_block(enum BLOCK_N block_i) { + if (block_i == HEX0_3) { + 59c: 18000c26 beq r3,zero,5d0 + print_block(" ", 4, HEX0_3); + } + else if (block_i == HEX4_5) { + 5a0: 00800044 movi r2,1 + print_block(" ", 2, HEX4_5); + 5a4: 180d883a mov r6,r3 + 5a8: 01000034 movhi r4,0 + 5ac: 21033d04 addi r4,r4,3316 + 5b0: 01400084 movi r5,2 + +void clear_block(enum BLOCK_N block_i) { + if (block_i == HEX0_3) { + print_block(" ", 4, HEX0_3); + } + else if (block_i == HEX4_5) { + 5b4: 18800626 beq r3,r2,5d0 + print_block(" ", 2, HEX4_5); + } + else if (block_i == HEX6_7) { + 5b8: 00800084 movi r2,2 + print_block(" ", 2, HEX6_7); + 5bc: 180b883a mov r5,r3 + 5c0: 01000034 movhi r4,0 + 5c4: 21033d04 addi r4,r4,3316 + 5c8: 180d883a mov r6,r3 + print_block(" ", 4, HEX0_3); + } + else if (block_i == HEX4_5) { + print_block(" ", 2, HEX4_5); + } + else if (block_i == HEX6_7) { + 5cc: 1880011e bne r3,r2,5d4 + print_block(" ", 2, HEX6_7); + 5d0: 00004ac1 jmpi 4ac + 5d4: f800283a ret + +000005d8 : + } +} + +void print_number(char num) { + 5d8: defff804 addi sp,sp,-32 + 5dc: dc800415 stw r18,16(sp) + 5e0: dc400315 stw r17,12(sp) + 5e4: dfc00715 stw ra,28(sp) + 5e8: dd000615 stw r20,24(sp) + 5ec: dcc00515 stw r19,20(sp) + 5f0: dc000215 stw r16,8(sp) + 5f4: 2023883a mov r17,r4 + 5f8: 0025883a mov r18,zero + int i; + char buf[5]; + char val; + for (i = 0; i < 4; i++) { + if (num < 0) { + 5fc: 88803fcc andi r2,r17,255 + 600: 1080201c xori r2,r2,128 + 604: 10bfe004 addi r2,r2,-128 + buf[0] = '-'; + 608: 05000b44 movi r20,45 + val = -num; + 60c: 0461c83a sub r16,zero,r17 +void print_number(char num) { + int i; + char buf[5]; + char val; + for (i = 0; i < 4; i++) { + if (num < 0) { + 610: 10000216 blt r2,zero,61c + buf[0] = '-'; + val = -num; + } else { + buf[0] = ' '; + 614: 05000804 movi r20,32 + 618: 8821883a mov r16,r17 + val = num; + } + buf[1] = val/100%10 + '0'; + 61c: 84003fcc andi r16,r16,255 + 620: 8400201c xori r16,r16,128 + 624: 843fe004 addi r16,r16,-128 + 628: 8009883a mov r4,r16 + 62c: 01401904 movi r5,100 + 630: 00009580 call 958 <__divsi3> + 634: 11003fcc andi r4,r2,255 + 638: 2100201c xori r4,r4,128 + 63c: 213fe004 addi r4,r4,-128 + 640: 01400284 movi r5,10 + 644: 00009b80 call 9b8 <__modsi3> + buf[2] = val/10%10 + '0'; + 648: 8009883a mov r4,r16 + 64c: 01400284 movi r5,10 + val = -num; + } else { + buf[0] = ' '; + val = num; + } + buf[1] = val/100%10 + '0'; + 650: 14c00c04 addi r19,r2,48 + buf[2] = val/10%10 + '0'; + 654: 00009580 call 958 <__divsi3> + 658: 11003fcc andi r4,r2,255 + 65c: 2100201c xori r4,r4,128 + 660: 213fe004 addi r4,r4,-128 + 664: 01400284 movi r5,10 + 668: 00009b80 call 9b8 <__modsi3> + buf[3] = val%10 + '0'; + 66c: 8009883a mov r4,r16 + 670: 01400284 movi r5,10 + } else { + buf[0] = ' '; + val = num; + } + buf[1] = val/100%10 + '0'; + buf[2] = val/10%10 + '0'; + 674: 14000c04 addi r16,r2,48 + buf[3] = val%10 + '0'; + 678: 00009b80 call 9b8 <__modsi3> + 67c: 10c00c04 addi r3,r2,48 + +void print_number(char num) { + int i; + char buf[5]; + char val; + for (i = 0; i < 4; i++) { + 680: 94800044 addi r18,r18,1 + 684: 00800104 movi r2,4 + 688: 90bfdc1e bne r18,r2,5fc + } + buf[1] = val/100%10 + '0'; + buf[2] = val/10%10 + '0'; + buf[3] = val%10 + '0'; + } + clear_block(HEX0_3); + 68c: 0009883a mov r4,zero + 690: d8c000c5 stb r3,3(sp) + 694: dc000085 stb r16,2(sp) + 698: dcc00045 stb r19,1(sp) + 69c: dd000005 stb r20,0(sp) + 6a0: 00005880 call 588 + print_block(buf, 4, HEX0_3); + 6a4: 900b883a mov r5,r18 + 6a8: d809883a mov r4,sp + 6ac: 000d883a mov r6,zero + 6b0: 00004ac0 call 4ac +} + 6b4: dfc00717 ldw ra,28(sp) + 6b8: dd000617 ldw r20,24(sp) + 6bc: dcc00517 ldw r19,20(sp) + 6c0: dc800417 ldw r18,16(sp) + 6c4: dc400317 ldw r17,12(sp) + 6c8: dc000217 ldw r16,8(sp) + 6cc: dec00804 addi sp,sp,32 + 6d0: f800283a ret + +000006d4 : +void push_int() { + static unsigned char status = 0; + sw_t s; + s.data = *switches; + + switch (status) { + 6d4: d0e00443 ldbu r3,-32751(gp) +} + +void push_int() { + static unsigned char status = 0; + sw_t s; + s.data = *switches; + 6d8: 00882404 movi r2,8336 + + switch (status) { + 6dc: 01000044 movi r4,1 + global_registers[Ssw_psel]; + global_registers[Ssw_rw]; + global_registers[Ssw_run]; +} + +void push_int() { + 6e0: deffff04 addi sp,sp,-4 + static unsigned char status = 0; + sw_t s; + s.data = *switches; + 6e4: 11400017 ldw r5,0(r2) + + switch (status) { + 6e8: 19001226 beq r3,r4,734 + 6ec: 19000336 bltu r3,r4,6fc + 6f0: 00800084 movi r2,2 + 6f4: 18801a1e bne r3,r2,760 + 6f8: 00001806 br 75c + case 0: + PUSH_EVENT = 0; + if (*push_switches != 7) status = 1; + 6fc: 00882004 movi r2,8320 + 700: 10800003 ldbu r2,0(r2) + 704: 00c001c4 movi r3,7 + sw_t s; + s.data = *switches; + + switch (status) { + case 0: + PUSH_EVENT = 0; + 708: d0200405 stb zero,-32752(gp) + if (*push_switches != 7) status = 1; + 70c: 10803fcc andi r2,r2,255 + 710: 1080201c xori r2,r2,128 + 714: 10bfe004 addi r2,r2,-128 + 718: 10c00126 beq r2,r3,720 + 71c: d1200445 stb r4,-32751(gp) + //update_sw_reg(s); // �X�C�b�`���W�X�^�X�V + alt_printf("%x", s.data); + 720: 01000034 movhi r4,0 + 724: 21033e04 addi r4,r4,3320 +} + +void push_int() { + static unsigned char status = 0; + sw_t s; + s.data = *switches; + 728: d9400015 stw r5,0(sp) + break; + default: + status = 0; + break; + } +} + 72c: dec00104 addi sp,sp,4 + switch (status) { + case 0: + PUSH_EVENT = 0; + if (*push_switches != 7) status = 1; + //update_sw_reg(s); // �X�C�b�`���W�X�^�X�V + alt_printf("%x", s.data); + 730: 0000ae01 jmpi ae0 + break; + case 1: + if (*push_switches == 7) status = 2; + 734: 00882004 movi r2,8320 + 738: 10800003 ldbu r2,0(r2) + 73c: 00c001c4 movi r3,7 + 740: 10803fcc andi r2,r2,255 + 744: 1080201c xori r2,r2,128 + 748: 10bfe004 addi r2,r2,-128 + 74c: 10c0051e bne r2,r3,764 + 750: 00800084 movi r2,2 + 754: d0a00445 stb r2,-32751(gp) + 758: 00000206 br 764 + break; + case 2: + PUSH_EVENT = 1; + 75c: d1200405 stb r4,-32752(gp) + status = 0; + break; + default: + status = 0; + 760: d0200445 stb zero,-32751(gp) + break; + } +} + 764: dec00104 addi sp,sp,4 + 768: f800283a ret + +0000076c : +#include "sys_register.h" + +unsigned char PUSH_EVENT = 0; + +void in_int() { + push_int(); + 76c: 00006d41 jmpi 6d4 + +00000770 : + +/************************************************** + * Impl + **************************************************/ + +void memory_init() { + 770: 000b883a mov r5,zero + 774: 00000806 br 798 + int i, j; + for (i = 0; i < MEMS_COUNT; i++) + for (j = 0; j < MEM_SIZE; j++) { + 778: 21000044 addi r4,r4,1 + 77c: 00800404 movi r2,16 + memory[i][j] = 0; + 780: 18000005 stb zero,0(r3) + **************************************************/ + +void memory_init() { + int i, j; + for (i = 0; i < MEMS_COUNT; i++) + for (j = 0; j < MEM_SIZE; j++) { + 784: 18c00044 addi r3,r3,1 + 788: 20bffb1e bne r4,r2,778 + * Impl + **************************************************/ + +void memory_init() { + int i, j; + for (i = 0; i < MEMS_COUNT; i++) + 78c: 29400044 addi r5,r5,1 + 790: 00800104 movi r2,4 + 794: 28800626 beq r5,r2,7b0 + for (j = 0; j < MEM_SIZE; j++) { + memory[i][j] = 0; + } +} + 798: 2806913a slli r3,r5,4 + 79c: 00800034 movhi r2,0 + 7a0: 1083eb04 addi r2,r2,4012 + 7a4: 0009883a mov r4,zero + 7a8: 1887883a add r3,r3,r2 + 7ac: 003ff206 br 778 + 7b0: f800283a ret + +000007b4 : + if (!(mem_addr < MEM_SIZE)) panic(); + memory[global_current_memory][mem_addr] = global_registers[reg]; + return memory[global_current_memory][mem_addr]; +} + +char memory_load(unsigned int mem_addr, enum Register reg) { + 7b4: defffd04 addi sp,sp,-12 + if (!(mem_addr < MEM_SIZE)) panic(); + 7b8: 008003c4 movi r2,15 + if (!(mem_addr < MEM_SIZE)) panic(); + memory[global_current_memory][mem_addr] = global_registers[reg]; + return memory[global_current_memory][mem_addr]; +} + +char memory_load(unsigned int mem_addr, enum Register reg) { + 7bc: dc400115 stw r17,4(sp) + 7c0: dc000015 stw r16,0(sp) + 7c4: dfc00215 stw ra,8(sp) + 7c8: 2021883a mov r16,r4 + 7cc: 2823883a mov r17,r5 + if (!(mem_addr < MEM_SIZE)) panic(); + 7d0: 1100012e bgeu r2,r4,7d8 + 7d4: 00008b00 call 8b0 + global_registers[reg] = memory[global_current_memory][mem_addr]; + 7d8: d0a00517 ldw r2,-32748(gp) + 7dc: 00c00034 movhi r3,0 + 7e0: 18c3eb04 addi r3,r3,4012 + 7e4: 01000034 movhi r4,0 + 7e8: 2103fb04 addi r4,r4,4076 + 7ec: 1004913a slli r2,r2,4 + 7f0: 8909883a add r4,r17,r4 + 7f4: 10c5883a add r2,r2,r3 + 7f8: 1405883a add r2,r2,r16 + 7fc: 10800003 ldbu r2,0(r2) + 800: 20800005 stb r2,0(r4) + return global_registers[reg]; +} + 804: 10803fcc andi r2,r2,255 + 808: 1080201c xori r2,r2,128 + 80c: 10bfe004 addi r2,r2,-128 + 810: dfc00217 ldw ra,8(sp) + 814: dc400117 ldw r17,4(sp) + 818: dc000017 ldw r16,0(sp) + 81c: dec00304 addi sp,sp,12 + 820: f800283a ret + +00000824 : + for (j = 0; j < MEM_SIZE; j++) { + memory[i][j] = 0; + } +} + +char memory_store(unsigned int mem_addr, enum Register reg) { + 824: defffd04 addi sp,sp,-12 + if (!(mem_addr < MEM_SIZE)) panic(); + 828: 008003c4 movi r2,15 + for (j = 0; j < MEM_SIZE; j++) { + memory[i][j] = 0; + } +} + +char memory_store(unsigned int mem_addr, enum Register reg) { + 82c: dc400115 stw r17,4(sp) + 830: dc000015 stw r16,0(sp) + 834: dfc00215 stw ra,8(sp) + 838: 2023883a mov r17,r4 + 83c: 2821883a mov r16,r5 + if (!(mem_addr < MEM_SIZE)) panic(); + 840: 1100012e bgeu r2,r4,848 + 844: 00008b00 call 8b0 + memory[global_current_memory][mem_addr] = global_registers[reg]; + 848: d0e00517 ldw r3,-32748(gp) + 84c: 00800034 movhi r2,0 + 850: 1083fb04 addi r2,r2,4076 + 854: 8085883a add r2,r16,r2 + 858: 1806913a slli r3,r3,4 + 85c: 10800003 ldbu r2,0(r2) + 860: 01000034 movhi r4,0 + 864: 2103eb04 addi r4,r4,4012 + 868: 1907883a add r3,r3,r4 + 86c: 1c47883a add r3,r3,r17 + 870: 18800005 stb r2,0(r3) + return memory[global_current_memory][mem_addr]; +} + 874: 10803fcc andi r2,r2,255 + 878: 1080201c xori r2,r2,128 + 87c: 10bfe004 addi r2,r2,-128 + 880: dfc00217 ldw ra,8(sp) + 884: dc400117 ldw r17,4(sp) + 888: dc000017 ldw r16,0(sp) + 88c: dec00304 addi sp,sp,12 + 890: f800283a ret + +00000894 : + */ +#include "sys_register.h" + +char global_registers[REG_MAX_COUNT]; + +void registers_init() { + 894: 00800034 movhi r2,0 + 898: 1083fb04 addi r2,r2,4076 + 89c: 10c00344 addi r3,r2,13 + int i; + for (i = 0; i < REG_MAX_COUNT; i++) global_registers[i] = 0; + 8a0: 10000005 stb zero,0(r2) + 8a4: 10800044 addi r2,r2,1 + 8a8: 10fffd1e bne r2,r3,8a0 +} + 8ac: f800283a ret + +000008b0 : + * Author: takayun + */ +#include "system.h" +#include "hex_out.h" + +void panic() { + 8b0: deffff04 addi sp,sp,-4 + clear_block(HEX0_3); + 8b4: 0009883a mov r4,zero + * Author: takayun + */ +#include "system.h" +#include "hex_out.h" + +void panic() { + 8b8: dfc00015 stw ra,0(sp) + clear_block(HEX0_3); + 8bc: 00005880 call 588 + print_block("err ", 4, HEX0_3); + 8c0: 01400104 movi r5,4 + 8c4: 01000034 movhi r4,0 + 8c8: 21033f04 addi r4,r4,3324 + 8cc: 000d883a mov r6,zero +} + 8d0: dfc00017 ldw ra,0(sp) + 8d4: dec00104 addi sp,sp,4 +#include "system.h" +#include "hex_out.h" + +void panic() { + clear_block(HEX0_3); + print_block("err ", 4, HEX0_3); + 8d8: 00004ac1 jmpi 4ac + +000008dc : + 8dc: 29001b2e bgeu r5,r4,94c + 8e0: 28001a16 blt r5,zero,94c + 8e4: 00800044 movi r2,1 + 8e8: 0007883a mov r3,zero + 8ec: 01c007c4 movi r7,31 + 8f0: 00000306 br 900 + 8f4: 19c01326 beq r3,r7,944 + 8f8: 18c00044 addi r3,r3,1 + 8fc: 28000416 blt r5,zero,910 + 900: 294b883a add r5,r5,r5 + 904: 1085883a add r2,r2,r2 + 908: 293ffa36 bltu r5,r4,8f4 + 90c: 10000d26 beq r2,zero,944 + 910: 0007883a mov r3,zero + 914: 21400236 bltu r4,r5,920 + 918: 2149c83a sub r4,r4,r5 + 91c: 1886b03a or r3,r3,r2 + 920: 1004d07a srli r2,r2,1 + 924: 280ad07a srli r5,r5,1 + 928: 103ffa1e bne r2,zero,914 + 92c: 30000226 beq r6,zero,938 + 930: 2005883a mov r2,r4 + 934: f800283a ret + 938: 1809883a mov r4,r3 + 93c: 2005883a mov r2,r4 + 940: f800283a ret + 944: 0007883a mov r3,zero + 948: 003ff806 br 92c + 94c: 00800044 movi r2,1 + 950: 0007883a mov r3,zero + 954: 003fef06 br 914 + +00000958 <__divsi3>: + 958: defffe04 addi sp,sp,-8 + 95c: dc000015 stw r16,0(sp) + 960: dfc00115 stw ra,4(sp) + 964: 0021883a mov r16,zero + 968: 20000c16 blt r4,zero,99c <__divsi3+0x44> + 96c: 000d883a mov r6,zero + 970: 28000e16 blt r5,zero,9ac <__divsi3+0x54> + 974: 00008dc0 call 8dc + 978: 1007883a mov r3,r2 + 97c: 8005003a cmpeq r2,r16,zero + 980: 1000011e bne r2,zero,988 <__divsi3+0x30> + 984: 00c7c83a sub r3,zero,r3 + 988: 1805883a mov r2,r3 + 98c: dfc00117 ldw ra,4(sp) + 990: dc000017 ldw r16,0(sp) + 994: dec00204 addi sp,sp,8 + 998: f800283a ret + 99c: 0109c83a sub r4,zero,r4 + 9a0: 04000044 movi r16,1 + 9a4: 000d883a mov r6,zero + 9a8: 283ff20e bge r5,zero,974 <__divsi3+0x1c> + 9ac: 014bc83a sub r5,zero,r5 + 9b0: 8021003a cmpeq r16,r16,zero + 9b4: 003fef06 br 974 <__divsi3+0x1c> + +000009b8 <__modsi3>: + 9b8: deffff04 addi sp,sp,-4 + 9bc: dfc00015 stw ra,0(sp) + 9c0: 01800044 movi r6,1 + 9c4: 2807883a mov r3,r5 + 9c8: 20000416 blt r4,zero,9dc <__modsi3+0x24> + 9cc: 28000c16 blt r5,zero,a00 <__modsi3+0x48> + 9d0: dfc00017 ldw ra,0(sp) + 9d4: dec00104 addi sp,sp,4 + 9d8: 00008dc1 jmpi 8dc + 9dc: 0109c83a sub r4,zero,r4 + 9e0: 28000b16 blt r5,zero,a10 <__modsi3+0x58> + 9e4: 180b883a mov r5,r3 + 9e8: 01800044 movi r6,1 + 9ec: 00008dc0 call 8dc + 9f0: 0085c83a sub r2,zero,r2 + 9f4: dfc00017 ldw ra,0(sp) + 9f8: dec00104 addi sp,sp,4 + 9fc: f800283a ret + a00: 014bc83a sub r5,zero,r5 + a04: dfc00017 ldw ra,0(sp) + a08: dec00104 addi sp,sp,4 + a0c: 00008dc1 jmpi 8dc + a10: 0147c83a sub r3,zero,r5 + a14: 003ff306 br 9e4 <__modsi3+0x2c> + +00000a18 <__udivsi3>: + a18: 000d883a mov r6,zero + a1c: 00008dc1 jmpi 8dc + +00000a20 <__umodsi3>: + a20: 01800044 movi r6,1 + a24: 00008dc1 jmpi 8dc + +00000a28 : + +static void ALT_INLINE alt_load_section (alt_u32* from, + alt_u32* to, + alt_u32* end) +{ + if (to != from) + a28: 2900051e bne r5,r4,a40 + a2c: f800283a ret + { + while( to != end ) + { + *to++ = *from++; + a30: 20800017 ldw r2,0(r4) + a34: 21000104 addi r4,r4,4 + a38: 28800015 stw r2,0(r5) + a3c: 29400104 addi r5,r5,4 + alt_u32* to, + alt_u32* end) +{ + if (to != from) + { + while( to != end ) + a40: 29bffb1e bne r5,r6,a30 + a44: f800283a ret + +00000a48 : + * there is no bootloader, so this application is responsible for loading to + * RAM any sections that are required. + */ + +void alt_load (void) +{ + a48: deffff04 addi sp,sp,-4 + /* + * Copy the .rwdata section. + */ + + alt_load_section (&__flash_rwdata_start, + a4c: 01000034 movhi r4,0 + a50: 2103e404 addi r4,r4,3984 + a54: 01400034 movhi r5,0 + a58: 2943e204 addi r5,r5,3976 + a5c: 01800034 movhi r6,0 + a60: 3183e404 addi r6,r6,3984 + * there is no bootloader, so this application is responsible for loading to + * RAM any sections that are required. + */ + +void alt_load (void) +{ + a64: dfc00015 stw ra,0(sp) + /* + * Copy the .rwdata section. + */ + + alt_load_section (&__flash_rwdata_start, + a68: 0000a280 call a28 + + /* + * Copy the exception handler. + */ + + alt_load_section (&__flash_exceptions_start, + a6c: 01000034 movhi r4,0 + a70: 21000804 addi r4,r4,32 + a74: 01400034 movhi r5,0 + a78: 29400804 addi r5,r5,32 + a7c: 01800034 movhi r6,0 + a80: 31800804 addi r6,r6,32 + a84: 0000a280 call a28 + + /* + * Copy the .rodata section. + */ + + alt_load_section (&__flash_rodata_start, + a88: 01000034 movhi r4,0 + a8c: 21033704 addi r4,r4,3292 + a90: 01400034 movhi r5,0 + a94: 29433704 addi r5,r5,3292 + a98: 01800034 movhi r6,0 + a9c: 3183e204 addi r6,r6,3976 + aa0: 0000a280 call a28 + + /* + * Now ensure that the caches are in synch. + */ + + alt_dcache_flush_all(); + aa4: 0000ccc0 call ccc + alt_icache_flush_all(); +} + aa8: dfc00017 ldw ra,0(sp) + aac: dec00104 addi sp,sp,4 + /* + * Now ensure that the caches are in synch. + */ + + alt_dcache_flush_all(); + alt_icache_flush_all(); + ab0: 0000cd01 jmpi cd0 + +00000ab4 : + * devices/filesystems/components in the system; and call the entry point for + * the users application, i.e. main(). + */ + +void alt_main (void) +{ + ab4: deffff04 addi sp,sp,-4 +#endif + + /* ALT LOG - please see HAL/sys/alt_log_printf.h for details */ + ALT_LOG_PRINT_BOOT("[alt_main.c] Entering alt_main, calling alt_irq_init.\r\n"); + /* Initialize the interrupt controller. */ + alt_irq_init (NULL); + ab8: 0009883a mov r4,zero + * devices/filesystems/components in the system; and call the entry point for + * the users application, i.e. main(). + */ + +void alt_main (void) +{ + abc: dfc00015 stw ra,0(sp) +#endif + + /* ALT LOG - please see HAL/sys/alt_log_printf.h for details */ + ALT_LOG_PRINT_BOOT("[alt_main.c] Entering alt_main, calling alt_irq_init.\r\n"); + /* Initialize the interrupt controller. */ + alt_irq_init (NULL); + ac0: 0000c780 call c78 + ALT_LOG_PRINT_BOOT("[alt_main.c] Done OS Init, calling alt_sem_create.\r\n"); + ALT_SEM_CREATE (&alt_fd_list_lock, 1); + + /* Initialize the device drivers/software components. */ + ALT_LOG_PRINT_BOOT("[alt_main.c] Calling alt_sys_init.\r\n"); + alt_sys_init(); + ac4: 0000c740 call c74 + */ + + ALT_LOG_PRINT_BOOT("[alt_main.c] Calling main.\r\n"); + +#ifdef ALT_NO_EXIT + main (alt_argc, alt_argv, alt_envp); + ac8: d1200617 ldw r4,-32744(gp) + acc: d1600717 ldw r5,-32740(gp) + ad0: d1a00817 ldw r6,-32736(gp) + close(STDOUT_FILENO); + exit (result); +#endif + + ALT_LOG_PRINT_BOOT("[alt_main.c] After main - we should not be here?.\r\n"); +} + ad4: dfc00017 ldw ra,0(sp) + ad8: dec00104 addi sp,sp,4 + */ + + ALT_LOG_PRINT_BOOT("[alt_main.c] Calling main.\r\n"); + +#ifdef ALT_NO_EXIT + main (alt_argc, alt_argv, alt_envp); + adc: 00000e01 jmpi e0
+ +00000ae0 : +/* + * ALT printf function + */ +void +alt_printf(const char* fmt, ... ) +{ + ae0: defff804 addi sp,sp,-32 + ae4: dfc00415 stw ra,16(sp) + ae8: dc800315 stw r18,12(sp) + aec: dc400215 stw r17,8(sp) + af0: dc000115 stw r16,4(sp) + af4: d9400515 stw r5,20(sp) + af8: d9800615 stw r6,24(sp) + afc: d9c00715 stw r7,28(sp) + va_list args; + va_start(args, fmt); + b00: d8800504 addi r2,sp,20 + b04: 2025883a mov r18,r4 + b08: d8800015 stw r2,0(sp) + b0c: 00003d06 br c04 + w = fmt; + while ((c = *w++) != 0) + { + /* If not a format escape character, just print */ + /* character. Otherwise, process format string. */ + if (c != '%') + b10: 00800944 movi r2,37 + const char *w; + char c; + + /* Process format string. */ + w = fmt; + while ((c = *w++) != 0) + b14: 94800044 addi r18,r18,1 + { + /* If not a format escape character, just print */ + /* character. Otherwise, process format string. */ + if (c != '%') + b18: 18800226 beq r3,r2,b24 + { + alt_putchar(c); + b1c: 1809883a mov r4,r3 + b20: 00000a06 br b4c + } + else + { + /* Get format character. If none */ + /* available, processing is complete. */ + if ((c = *w++) != 0) + b24: 91000007 ldb r4,0(r18) + b28: 94800044 addi r18,r18,1 + b2c: 20003726 beq r4,zero,c0c + { + if (c == '%') + b30: 20c00626 beq r4,r3,b4c + { + /* Process "%" escape sequence. */ + alt_putchar(c); + } + else if (c == 'c') + b34: 008018c4 movi r2,99 + b38: 2080061e bne r4,r2,b54 + { + int v = va_arg(args, int); + b3c: d8800017 ldw r2,0(sp) + alt_putchar(v); + b40: 11000017 ldw r4,0(r2) + /* Process "%" escape sequence. */ + alt_putchar(c); + } + else if (c == 'c') + { + int v = va_arg(args, int); + b44: 10800104 addi r2,r2,4 + b48: d8800015 stw r2,0(sp) + alt_putchar(v); + b4c: 0000c240 call c24 + b50: 00002c06 br c04 + } + else if (c == 'x') + b54: 00801e04 movi r2,120 + b58: 20801e1e bne r4,r2,bd4 + { + /* Process hexadecimal number format. */ + unsigned long v = va_arg(args, unsigned long); + b5c: d8800017 ldw r2,0(sp) + b60: 14400017 ldw r17,0(r2) + b64: 10800104 addi r2,r2,4 + b68: d8800015 stw r2,0(sp) + unsigned long digit; + int digit_shift; + + /* If the number value is zero, just print and continue. */ + if (v == 0) + b6c: 88000226 beq r17,zero,b78 + b70: 04000704 movi r16,28 + b74: 00000306 br b84 + { + alt_putchar('0'); + b78: 01000c04 movi r4,48 + b7c: 003ff306 br b4c + } + + /* Find first non-zero digit. */ + digit_shift = 28; + while (!(v & (0xF << digit_shift))) + digit_shift -= 4; + b80: 843fff04 addi r16,r16,-4 + continue; + } + + /* Find first non-zero digit. */ + digit_shift = 28; + while (!(v & (0xF << digit_shift))) + b84: 008003c4 movi r2,15 + b88: 1404983a sll r2,r2,r16 + b8c: 8884703a and r2,r17,r2 + b90: 103ffb26 beq r2,zero,b80 + b94: 00000b06 br bc4 + digit_shift -= 4; + + /* Print digits. */ + for (; digit_shift >= 0; digit_shift -= 4) + { + digit = (v & (0xF << digit_shift)) >> digit_shift; + b98: 8884703a and r2,r17,r2 + b9c: 1406d83a srl r3,r2,r16 + if (digit <= 9) + ba0: 00800244 movi r2,9 + c = '0' + digit; + ba4: 19000c04 addi r4,r3,48 + + /* Print digits. */ + for (; digit_shift >= 0; digit_shift -= 4) + { + digit = (v & (0xF << digit_shift)) >> digit_shift; + if (digit <= 9) + ba8: 10c0012e bgeu r2,r3,bb0 + c = '0' + digit; + else + c = 'a' + digit - 10; + bac: 190015c4 addi r4,r3,87 + alt_putchar(c); + bb0: 21003fcc andi r4,r4,255 + bb4: 2100201c xori r4,r4,128 + bb8: 213fe004 addi r4,r4,-128 + digit_shift = 28; + while (!(v & (0xF << digit_shift))) + digit_shift -= 4; + + /* Print digits. */ + for (; digit_shift >= 0; digit_shift -= 4) + bbc: 843fff04 addi r16,r16,-4 + digit = (v & (0xF << digit_shift)) >> digit_shift; + if (digit <= 9) + c = '0' + digit; + else + c = 'a' + digit - 10; + alt_putchar(c); + bc0: 0000c240 call c24 + digit_shift -= 4; + + /* Print digits. */ + for (; digit_shift >= 0; digit_shift -= 4) + { + digit = (v & (0xF << digit_shift)) >> digit_shift; + bc4: 008003c4 movi r2,15 + bc8: 1404983a sll r2,r2,r16 + digit_shift = 28; + while (!(v & (0xF << digit_shift))) + digit_shift -= 4; + + /* Print digits. */ + for (; digit_shift >= 0; digit_shift -= 4) + bcc: 803ff20e bge r16,zero,b98 + bd0: 00000c06 br c04 + else + c = 'a' + digit - 10; + alt_putchar(c); + } + } + else if (c == 's') + bd4: 00801cc4 movi r2,115 + bd8: 20800a1e bne r4,r2,c04 + { + /* Process string format. */ + char *s = va_arg(args, char *); + bdc: d8800017 ldw r2,0(sp) + be0: 14000017 ldw r16,0(r2) + be4: 10800104 addi r2,r2,4 + be8: d8800015 stw r2,0(sp) + bec: 00000106 br bf4 + + while(*s) + alt_putchar(*s++); + bf0: 0000c240 call c24 + else if (c == 's') + { + /* Process string format. */ + char *s = va_arg(args, char *); + + while(*s) + bf4: 80800007 ldb r2,0(r16) + alt_putchar(*s++); + bf8: 84000044 addi r16,r16,1 + bfc: 1009883a mov r4,r2 + else if (c == 's') + { + /* Process string format. */ + char *s = va_arg(args, char *); + + while(*s) + c00: 103ffb1e bne r2,zero,bf0 + const char *w; + char c; + + /* Process format string. */ + w = fmt; + while ((c = *w++) != 0) + c04: 90c00007 ldb r3,0(r18) + c08: 183fc11e bne r3,zero,b10 + { + break; + } + } + } +} + c0c: dfc00417 ldw ra,16(sp) + c10: dc800317 ldw r18,12(sp) + c14: dc400217 ldw r17,8(sp) + c18: dc000117 ldw r16,4(sp) + c1c: dec00804 addi sp,sp,32 + c20: f800283a ret + +00000c24 : + * Uses the ALT_DRIVER_WRITE() macro to call directly to driver if available. + * Otherwise, uses newlib provided putchar() routine. + */ +int +alt_putchar(int c) +{ + c24: defffd04 addi sp,sp,-12 + c28: dc000115 stw r16,4(sp) +#ifdef ALT_USE_DIRECT_DRIVERS + ALT_DRIVER_WRITE_EXTERNS(ALT_STDOUT_DEV); + char c1 = (char)(c & 0xff); + + if (ALT_DRIVER_WRITE(ALT_STDOUT_DEV, &c1, 1, 0) == -1) { + c2c: d80b883a mov r5,sp + * Uses the ALT_DRIVER_WRITE() macro to call directly to driver if available. + * Otherwise, uses newlib provided putchar() routine. + */ +int +alt_putchar(int c) +{ + c30: 2021883a mov r16,r4 +#ifdef ALT_USE_DIRECT_DRIVERS + ALT_DRIVER_WRITE_EXTERNS(ALT_STDOUT_DEV); + char c1 = (char)(c & 0xff); + + if (ALT_DRIVER_WRITE(ALT_STDOUT_DEV, &c1, 1, 0) == -1) { + c34: 01800044 movi r6,1 + c38: 01000034 movhi r4,0 + c3c: 2103e304 addi r4,r4,3980 + c40: 000f883a mov r7,zero + * Uses the ALT_DRIVER_WRITE() macro to call directly to driver if available. + * Otherwise, uses newlib provided putchar() routine. + */ +int +alt_putchar(int c) +{ + c44: dfc00215 stw ra,8(sp) +#ifdef ALT_USE_DIRECT_DRIVERS + ALT_DRIVER_WRITE_EXTERNS(ALT_STDOUT_DEV); + char c1 = (char)(c & 0xff); + c48: dc000005 stb r16,0(sp) + + if (ALT_DRIVER_WRITE(ALT_STDOUT_DEV, &c1, 1, 0) == -1) { + c4c: 0000c980 call c98 + c50: 1009883a mov r4,r2 + c54: 00bfffc4 movi r2,-1 + c58: 2080011e bne r4,r2,c60 + c5c: 2021883a mov r16,r4 + } + return c; +#else + return putchar(c); +#endif +} + c60: 8005883a mov r2,r16 + c64: dfc00217 ldw ra,8(sp) + c68: dc000117 ldw r16,4(sp) + c6c: dec00304 addi sp,sp,12 + c70: f800283a ret + +00000c74 : + */ + +void alt_sys_init( void ) +{ + ALTERA_AVALON_JTAG_UART_INIT ( JTAG_UART, jtag_uart); +} + c74: f800283a ret + +00000c78 : + * The "base" parameter is ignored and only + * present for backwards-compatibility. + */ + +void alt_irq_init ( const void* base ) +{ + c78: deffff04 addi sp,sp,-4 + c7c: dfc00015 stw ra,0(sp) + ALTERA_NIOS2_QSYS_IRQ_INIT ( NIOS2_PROCESSOR, nios2_processor); + c80: 0000cd40 call cd4 + * alt_irq_cpu_enable_interrupts() enables the CPU to start taking interrupts. + */ +static ALT_INLINE void ALT_ALWAYS_INLINE + alt_irq_cpu_enable_interrupts () +{ + NIOS2_WRITE_STATUS(NIOS2_STATUS_PIE_MSK + c84: 00800044 movi r2,1 + c88: 1001703a wrctl status,r2 + alt_irq_cpu_enable_interrupts(); +} + c8c: dfc00017 ldw ra,0(sp) + c90: dec00104 addi sp,sp,4 + c94: f800283a ret + +00000c98 : + */ + +int altera_avalon_jtag_uart_write(altera_avalon_jtag_uart_state* sp, + const char * ptr, int count, int flags) +{ + unsigned int base = sp->base; + c98: 21000017 ldw r4,0(r4) + + const char * end = ptr + count; + c9c: 298f883a add r7,r5,r6 + ca0: 20c00104 addi r3,r4,4 + ca4: 00000606 br cc0 + + while (ptr < end) + if ((IORD_ALTERA_AVALON_JTAG_UART_CONTROL(base) & ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_MSK) != 0) + ca8: 18800037 ldwio r2,0(r3) + cac: 10bfffec andhi r2,r2,65535 + cb0: 10000326 beq r2,zero,cc0 + IOWR_ALTERA_AVALON_JTAG_UART_DATA(base, *ptr++); + cb4: 28800007 ldb r2,0(r5) + cb8: 29400044 addi r5,r5,1 + cbc: 20800035 stwio r2,0(r4) +{ + unsigned int base = sp->base; + + const char * end = ptr + count; + + while (ptr < end) + cc0: 29fff936 bltu r5,r7,ca8 + if ((IORD_ALTERA_AVALON_JTAG_UART_CONTROL(base) & ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_MSK) != 0) + IOWR_ALTERA_AVALON_JTAG_UART_DATA(base, *ptr++); + + return count; +} + cc4: 3005883a mov r2,r6 + cc8: f800283a ret + +00000ccc : + for (i = (char*) 0; i < (char*) NIOS2_DCACHE_SIZE; i+= NIOS2_DCACHE_LINE_SIZE) + { + __asm__ volatile ("flushd (%0)" :: "r" (i)); + } +#endif /* NIOS2_DCACHE_SIZE > 0 */ +} + ccc: f800283a ret + +00000cd0 : +void alt_icache_flush_all (void) +{ +#if NIOS2_ICACHE_SIZE > 0 + alt_icache_flush (0, NIOS2_ICACHE_SIZE); +#endif +} + cd0: f800283a ret + +00000cd4 : + * To initialize the internal interrupt controller, just clear the IENABLE + * register so that all possible IRQs are disabled. + */ +void altera_nios2_qsys_irq_init(void) +{ + NIOS2_WRITE_IENABLE(0); + cd4: 000170fa wrctl ienable,zero +} + cd8: f800283a ret diff --git a/software/qsys_tutorial_hexs/readme.txt b/software/qsys_tutorial_hexs/readme.txt new file mode 100644 index 0000000..3dc3186 --- /dev/null +++ b/software/qsys_tutorial_hexs/readme.txt @@ -0,0 +1,67 @@ +Readme - Hello World Software Example + +DESCRIPTION: +Simple program that prints "Hello from Nios II" + +The purpose of this example is to demonstrate the smallest possible Hello +World application, using the Nios II HAL BSP. The memory footprint +of this hosted application is intended to be less than 1 kbytes by default using a standard +reference design. For a more fully featured Hello World application +example, see the example titled "Hello World". + +The memory footprint of this example has been reduced by making the +following changes to the normal "Hello World" example. +Check in the Nios II Software Developers Handbook for a more complete +description. + +In the SW Application project: + - In the C/C++ Build page + - Set the Optimization Level to -Os + +In BSP project: + - In the C/C++ Build page + + - Set the Optimization Level to -Os + + - Define the preprocessor option ALT_NO_INSTRUCTION_EMULATION + This removes software exception handling, which means that you cannot + run code compiled for Nios II cpu with a hardware multiplier on a core + without a the multiply unit. Check the Nios II Software Developers + Manual for more details. + + - In the BSP: + - Set Periodic system timer and Timestamp timer to none + This prevents the automatic inclusion of the timer driver. + + - Set Max file descriptors to 4 + This reduces the size of the file handle pool. + + - Uncheck Clean exit (flush buffers) + This removes the call to exit, and when main is exitted instead of + calling exit the software will just spin in a loop. + + - Check Small C library + This uses a reduced functionality C library, which lacks + support for buffering, file IO, floating point and getch(), etc. + Check the Nios II Software Developers Manual for a complete list. + + - Check Reduced device drivers + This uses reduced functionality drivers if they're available. For the + standard design this means you get polled UART and JTAG UART drivers, + no support for the LCD driver and you lose the ability to program + CFI compliant flash devices. + + +PERIPHERALS USED: +This example exercises the following peripherals: +- STDOUT device (UART or JTAG UART) + +SOFTWARE SOURCE FILES: +This example includes the following software source files: +- small_hello_world.c: + +BOARD/HOST REQUIREMENTS: +This example requires only a JTAG connection with a Nios Development board. If +the host communication settings are changed from JTAG UART (default) to use a +conventional UART, a serial cable between board DB-9 connector and the host is +required. diff --git a/software/qsys_tutorial_hexs/sys_memory.c b/software/qsys_tutorial_hexs/sys_memory.c new file mode 100644 index 0000000..06f42aa --- /dev/null +++ b/software/qsys_tutorial_hexs/sys_memory.c @@ -0,0 +1,48 @@ +/* + * sys_memory.c + * + * Created on: 2016/11/24 + * Author: takayun + */ +#include "system.h" +#include "sys_memory.h" +#include "sys_register.h" + +/************************************************** + * Public + **************************************************/ + +// �����������̂ǂ̃�������(0 < global_current_memory < MEMS_COUNT) +unsigned int global_current_memory = 0; + +/************************************************** + * Private + **************************************************/ + +// �����������̕ϐ� +static char memory[MEMS_COUNT][MEM_SIZE]; + +/************************************************** + * Impl + **************************************************/ + +void memory_init() { + int i, j; + for (i = 0; i < MEMS_COUNT; i++) + for (j = 0; j < MEM_SIZE; j++) { + memory[i][j] = 0; + } +} + +char memory_store(unsigned int mem_addr, enum Register reg) { + if (!(mem_addr < MEM_SIZE)) panic(); + memory[global_current_memory][mem_addr] = global_registers[reg]; + return memory[global_current_memory][mem_addr]; +} + +char memory_load(unsigned int mem_addr, enum Register reg) { + if (!(mem_addr < MEM_SIZE)) panic(); + global_registers[reg] = memory[global_current_memory][mem_addr]; + return global_registers[reg]; +} + diff --git a/software/qsys_tutorial_hexs/sys_memory.h b/software/qsys_tutorial_hexs/sys_memory.h new file mode 100644 index 0000000..69a3e7a --- /dev/null +++ b/software/qsys_tutorial_hexs/sys_memory.h @@ -0,0 +1,53 @@ +/* + * sys_memory.h + * + * Created on: 2016/11/24 + * Author: takayun + */ + +#ifndef SYS_MEMORY_H_ +#define SYS_MEMORY_H_ + +#include "sys_register.h" + +/************************************************** + * Defines + **************************************************/ + +// �������̐� +#define MEMS_COUNT 4 + +// 1�������̃T�C�Y +#define MEM_SIZE 16 + +/************************************************** + * Variables + **************************************************/ + +extern unsigned int global_current_memory; + +/************************************************** + * Functions + **************************************************/ + +/* Function: memory_init + * Sammary: + * ������������������(All 0) */ +void memory_init(); + +/* Function: memory_store -> char + * Sammary: + * �������̎w��Ԓn�Ɏw�肵�����W�X�^����l���i�[���� + * Return: + * �������Ɋi�[���ꂽ�l */ +char memory_store(unsigned int mem_addr, enum Register reg); + +/* Function: memory_store -> char + * Sammary: + * �w�肵�����W�X�^�Ƀ������̎w��Ԓn����l���i�[���� + * Return: + * ���W�X�^�Ɋi�[���ꂽ�l */ +char memory_load(unsigned int mem_addr, enum Register reg); + + +#endif /* SYS_MEMORY_H_ */ diff --git a/software/qsys_tutorial_hexs/sys_register.c b/software/qsys_tutorial_hexs/sys_register.c new file mode 100644 index 0000000..84ed485 --- /dev/null +++ b/software/qsys_tutorial_hexs/sys_register.c @@ -0,0 +1,17 @@ +/* + * sys_register.c + * + * Created on: 2016/11/24 + * Author: takayun + */ +#include "sys_register.h" + +char global_registers[REG_MAX_COUNT]; + +void registers_init() { + int i; + for (i = 0; i < REG_MAX_COUNT; i++) global_registers[i] = 0; +} + + + diff --git a/software/qsys_tutorial_hexs/sys_register.h b/software/qsys_tutorial_hexs/sys_register.h new file mode 100644 index 0000000..42c03ac --- /dev/null +++ b/software/qsys_tutorial_hexs/sys_register.h @@ -0,0 +1,51 @@ +/* + * sys_register.h + * + * Created on: 2016/11/24 + * Author: takayun + */ + +#ifndef SYS_REGISTER_H_ +#define SYS_REGISTER_H_ + +/************************************************** + * Defines + **************************************************/ + +// ���W�X�^�̒�` +enum Register { + /* �ʏ�̃��W�X�^ */ + Spc, //�v���O�����J�E���^ + Ssp, //�X�^�b�N�|�C���^ + Sgp0, //�ėp���W�X�^0 + Sgp1, //�ėp���W�X�^1 + Sacc, //�A�L�������[�^ + Sflg, //�t���O���W�X�^ + /* �X�C�b�`�ǂݏo���p���W�X�^ */ + Ssw_data, //�f�[�^(8bit) + Ssw_inst, //����(4bit) + Ssw_memi, //�������Ԓn(4bit) + Ssw_regi, //���W�X�^�ԍ�(4bit) + Ssw_psel, //�v���O�����Z���N�^(4bit) + Ssw_rw, //�ǂݏ������[�h(1bit) + Ssw_run, //���s���[�h(1bit) + + /* �z��錾�p */ + REG_MAX_COUNT +}; + +/************************************************** + * Variables + **************************************************/ + +// ���W�X�^�p�̕ϐ� +extern char global_registers[REG_MAX_COUNT]; + +/************************************************** + * Functions + **************************************************/ + +void registers_init(); + + +#endif /* SYS_REGISTER_H_ */ diff --git a/software/qsys_tutorial_hexs/system.c b/software/qsys_tutorial_hexs/system.c new file mode 100644 index 0000000..30713dd --- /dev/null +++ b/software/qsys_tutorial_hexs/system.c @@ -0,0 +1,14 @@ +/* + * system.c + * + * Created on: 2016/11/24 + * Author: takayun + */ +#include "system.h" +#include "hex_out.h" + +void panic() { + clear_block(HEX0_3); + print_block("err ", 4, HEX0_3); +} + diff --git a/software/qsys_tutorial_hexs/system.h b/software/qsys_tutorial_hexs/system.h new file mode 100644 index 0000000..1a628fa --- /dev/null +++ b/software/qsys_tutorial_hexs/system.h @@ -0,0 +1,13 @@ +/* + * system.h + * + * Created on: 2016/11/24 + * Author: takayun + */ + +#ifndef SYSTEM_H_ +#define SYSTEM_H_ + +void panic(); + +#endif /* SYSTEM_H_ */ diff --git a/software/qsys_tutorial_hexs/system/template.xml b/software/qsys_tutorial_hexs/system/template.xml new file mode 100644 index 0000000..b09e912 --- /dev/null +++ b/software/qsys_tutorial_hexs/system/template.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/software/qsys_tutorial_hexs_bsp/.cproject b/software/qsys_tutorial_hexs_bsp/.cproject new file mode 100644 index 0000000..2ab0c0b --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/.cproject @@ -0,0 +1,481 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/software/qsys_tutorial_hexs_bsp/.project b/software/qsys_tutorial_hexs_bsp/.project new file mode 100644 index 0000000..28798d4 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/.project @@ -0,0 +1,85 @@ + + + qsys_tutorial_hexs_bsp + + + + + + org.eclipse.cdt.managedbuilder.core.genmakebuilder + clean,full,incremental, + + + ?name? + + + + org.eclipse.cdt.make.core.append_environment + true + + + org.eclipse.cdt.make.core.autoBuildTarget + all + + + org.eclipse.cdt.make.core.buildArguments + + + + org.eclipse.cdt.make.core.buildCommand + make + + + org.eclipse.cdt.make.core.buildLocation + ${workspace_loc://qsys_tutorial_hexs_bsp} + + + org.eclipse.cdt.make.core.cleanBuildTarget + clean + + + org.eclipse.cdt.make.core.contents + org.eclipse.cdt.make.core.activeConfigSettings + + + org.eclipse.cdt.make.core.enableAutoBuild + false + + + org.eclipse.cdt.make.core.enableCleanBuild + true + + + org.eclipse.cdt.make.core.enableFullBuild + true + + + org.eclipse.cdt.make.core.fullBuildTarget + all + + + org.eclipse.cdt.make.core.stopOnError + true + + + org.eclipse.cdt.make.core.useDefaultBuildCmd + true + + + + + org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder + full,incremental, + + + + + + org.eclipse.cdt.core.cnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.managedbuilder.core.ScannerConfigNature + org.eclipse.cdt.core.ccnature + com.altera.sbtgui.project.SBTGUINature + com.altera.sbtgui.project.SBTGUIBspNature + + diff --git a/software/qsys_tutorial_hexs_bsp/HAL/inc/alt_types.h b/software/qsys_tutorial_hexs_bsp/HAL/inc/alt_types.h new file mode 100644 index 0000000..d02f171 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/HAL/inc/alt_types.h @@ -0,0 +1,54 @@ +#ifndef __ALT_TYPES_H__ +#define __ALT_TYPES_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/* + * Don't declare these typedefs if this file is included by assembly source. + */ +#ifndef ALT_ASM_SRC +typedef signed char alt_8; +typedef unsigned char alt_u8; +typedef signed short alt_16; +typedef unsigned short alt_u16; +typedef signed long alt_32; +typedef unsigned long alt_u32; +typedef long long alt_64; +typedef unsigned long long alt_u64; +#endif + +#define ALT_INLINE __inline__ +#define ALT_ALWAYS_INLINE __attribute__ ((always_inline)) +#define ALT_WEAK __attribute__((weak)) + +#endif /* __ALT_TYPES_H__ */ diff --git a/software/qsys_tutorial_hexs_bsp/HAL/inc/altera_nios2_qsys_irq.h b/software/qsys_tutorial_hexs_bsp/HAL/inc/altera_nios2_qsys_irq.h new file mode 100644 index 0000000..6629ec9 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/HAL/inc/altera_nios2_qsys_irq.h @@ -0,0 +1,80 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2009 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/* + * Support for the Nios II internal interrupt controller. + */ + +#ifndef __ALT_NIOS2_QSYS_IRQ_H__ +#define __ALT_NIOS2_QSYS_IRQ_H__ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * The macro ALTERA_NIOS2_IRQ_INSTANCE is used by the alt_irq_init() + * function in the auto-generated file alt_sys_init.c to create an + * instance of this interrupt controller device driver state if this + * module contains an interrupt controller. + * Only one instance of a Nios II is allowed so this macro is just empty. + */ + +#define ALTERA_NIOS2_QSYS_IRQ_INSTANCE(name, state) + +/* + * altera_nios2_irq_init() is called by the auto-generated function + * alt_irq_init() once for the Nios II if it contains an interrupt controller. + * The altera_nios2_irq_init() routine is called using the + * ALTERA_NIOS2_IRQ_INIT macro given below. + * + * This function initializes the internal interrupt controller + * so is not called if the Nios II contains an external interrupt + * controller port (because the internal interrupt controller + * is removed if this port is present). + */ + +extern void altera_nios2_qsys_irq_init( void ); + +/* + * The macro ALTERA_NIOS2_IRQ_INIT is used by the alt_irq_init() routine + * in the auto-generated file alt_sys_init.c to initialize an instance + * of the interrupt controller device driver state. + */ + +#define ALTERA_NIOS2_QSYS_IRQ_INIT(name, state) altera_nios2_qsys_irq_init() + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __ALT_NIOS2_QSYS_IRQ_H__ */ + diff --git a/software/qsys_tutorial_hexs_bsp/HAL/inc/io.h b/software/qsys_tutorial_hexs_bsp/HAL/inc/io.h new file mode 100644 index 0000000..362f103 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/HAL/inc/io.h @@ -0,0 +1,81 @@ +#ifndef __IO_H__ +#define __IO_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/* IO Header file for Nios II Toolchain */ + +#include "alt_types.h" +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +#ifndef SYSTEM_BUS_WIDTH +#error SYSTEM_BUS_WIDTH undefined +#endif + +/* Dynamic bus access functions */ + +#define __IO_CALC_ADDRESS_DYNAMIC(BASE, OFFSET) \ + ((void *)(((alt_u8*)BASE) + (OFFSET))) + +#define IORD_32DIRECT(BASE, OFFSET) \ + __builtin_ldwio (__IO_CALC_ADDRESS_DYNAMIC ((BASE), (OFFSET))) +#define IORD_16DIRECT(BASE, OFFSET) \ + __builtin_ldhuio (__IO_CALC_ADDRESS_DYNAMIC ((BASE), (OFFSET))) +#define IORD_8DIRECT(BASE, OFFSET) \ + __builtin_ldbuio (__IO_CALC_ADDRESS_DYNAMIC ((BASE), (OFFSET))) + +#define IOWR_32DIRECT(BASE, OFFSET, DATA) \ + __builtin_stwio (__IO_CALC_ADDRESS_DYNAMIC ((BASE), (OFFSET)), (DATA)) +#define IOWR_16DIRECT(BASE, OFFSET, DATA) \ + __builtin_sthio (__IO_CALC_ADDRESS_DYNAMIC ((BASE), (OFFSET)), (DATA)) +#define IOWR_8DIRECT(BASE, OFFSET, DATA) \ + __builtin_stbio (__IO_CALC_ADDRESS_DYNAMIC ((BASE), (OFFSET)), (DATA)) + +/* Native bus access functions */ + +#define __IO_CALC_ADDRESS_NATIVE(BASE, REGNUM) \ + ((void *)(((alt_u8*)BASE) + ((REGNUM) * (SYSTEM_BUS_WIDTH/8)))) + +#define IORD(BASE, REGNUM) \ + __builtin_ldwio (__IO_CALC_ADDRESS_NATIVE ((BASE), (REGNUM))) +#define IOWR(BASE, REGNUM, DATA) \ + __builtin_stwio (__IO_CALC_ADDRESS_NATIVE ((BASE), (REGNUM)), (DATA)) + +#ifdef __cplusplus +} +#endif + +#endif /* __IO_H__ */ diff --git a/software/qsys_tutorial_hexs_bsp/HAL/inc/nios2.h b/software/qsys_tutorial_hexs_bsp/HAL/inc/nios2.h new file mode 100644 index 0000000..72cefba --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/HAL/inc/nios2.h @@ -0,0 +1,230 @@ +#ifndef __NIOS2_H__ +#define __NIOS2_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2008 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/* + * This header provides processor specific macros for accessing the Nios2 + * control registers. + */ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * Macros for accessing selected processor registers + */ + +#define NIOS2_READ_ET(et) \ + do { __asm ("mov %0, et" : "=r" (et) ); } while (0) + +#define NIOS2_WRITE_ET(et) \ + do { __asm volatile ("mov et, %z0" : : "rM" (et)); } while (0) + +#define NIOS2_READ_SP(sp) \ + do { __asm ("mov %0, sp" : "=r" (sp) ); } while (0) + +/* + * Macros for useful processor instructions + */ + +#define NIOS2_BREAK() \ + do { __asm volatile ("break"); } while (0) + +#define NIOS2_REPORT_STACK_OVERFLOW() \ + do { __asm volatile("break 3"); } while (0) + +/* + * Macros for accessing the control registers. + */ + +#define NIOS2_READ_STATUS(dest) \ + do { dest = __builtin_rdctl(0); } while (0) + +#define NIOS2_WRITE_STATUS(src) \ + do { __builtin_wrctl(0, src); } while (0) + +#define NIOS2_READ_ESTATUS(dest) \ + do { dest = __builtin_rdctl(1); } while (0) + +#define NIOS2_READ_BSTATUS(dest) \ + do { dest = __builtin_rdctl(2); } while (0) + +#define NIOS2_READ_IENABLE(dest) \ + do { dest = __builtin_rdctl(3); } while (0) + +#define NIOS2_WRITE_IENABLE(src) \ + do { __builtin_wrctl(3, src); } while (0) + +#define NIOS2_READ_IPENDING(dest) \ + do { dest = __builtin_rdctl(4); } while (0) + +#define NIOS2_READ_CPUID(dest) \ + do { dest = __builtin_rdctl(5); } while (0) + + +/* + * Macros for accessing extra exception registers. These + * are always enabled wit the MPU or MMU, and optionally + * with other advanced exception types/ + */ +#define NIOS2_READ_EXCEPTION(dest) \ + do { dest = __builtin_rdctl(7); } while (0) + +#define NIOS2_READ_BADADDR(dest) \ + do { dest = __builtin_rdctl(12); } while (0) + + +/* + * Macros for accessing control registers for MPU + * operation. These should not be used unless the + * MPU is enabled. + * + * The config register may be augmented for future + * enhancements. For now, only MPU support is provided. + */ +/* Config register */ +#define NIOS2_WRITE_CONFIG(src) \ + do { __builtin_wrctl(13, src); } while (0) + +#define NIOS2_READ_CONFIG(dest) \ + do { dest = __builtin_rdctl(13); } while (0) + +/* MPU Base Address Register */ +#define NIOS2_WRITE_MPUBASE(src) \ + do { __builtin_wrctl(14, src); } while (0) + +#define NIOS2_READ_MPUBASE(dest) \ + do { dest = __builtin_rdctl(14); } while (0) + +/* MPU Access Register */ +#define NIOS2_WRITE_MPUACC(src) \ + do { __builtin_wrctl(15, src); } while (0) + +#define NIOS2_READ_MPUACC(dest) \ + do { dest = __builtin_rdctl(15); } while (0) + + +/* + * Nios II control registers that are always present + */ +#define NIOS2_STATUS status +#define NIOS2_ESTATUS estatus +#define NIOS2_BSTATUS bstatus +#define NIOS2_IENABLE ienable +#define NIOS2_IPENDING ipending +#define NIOS2_CPUID cpuid + +/* + * STATUS, BSTATUS, ESTATUS, and SSTATUS fields. + * The presence of fields is a function of the Nios II configuration. + */ +#define NIOS2_STATUS_PIE_MSK (0x00000001) +#define NIOS2_STATUS_PIE_OFST (0) +#define NIOS2_STATUS_U_MSK (0x00000002) +#define NIOS2_STATUS_U_OFST (1) +#define NIOS2_STATUS_EH_MSK (0x00000004) +#define NIOS2_STATUS_EH_OFST (2) +#define NIOS2_STATUS_IH_MSK (0x00000008) +#define NIOS2_STATUS_IH_OFST (3) +#define NIOS2_STATUS_IL_MSK (0x000003f0) +#define NIOS2_STATUS_IL_OFST (4) +#define NIOS2_STATUS_CRS_MSK (0x0000fc00) +#define NIOS2_STATUS_CRS_OFST (10) +#define NIOS2_STATUS_PRS_MSK (0x003f0000) +#define NIOS2_STATUS_PRS_OFST (16) +#define NIOS2_STATUS_NMI_MSK (0x00400000) +#define NIOS2_STATUS_NMI_OFST (22) +#define NIOS2_STATUS_RSIE_MSK (0x00800000) +#define NIOS2_STATUS_RSIE_OFST (23) +#define NIOS2_STATUS_SRS_MSK (0x80000000) +#define NIOS2_STATUS_SRS_OFST (31) + +/* + * Bit masks & offsets available with extra exceptions support + */ + +/* Exception register */ +#define NIOS2_EXCEPTION_REG_CAUSE_MASK (0x0000007c) +#define NIOS2_EXCEPTION_REG_CAUSE_OFST (2) + +/* + * Bit masks & offsets for MPU support + * + * All bit-masks are expressed relative to the position + * of the data with a register. To read data that is LSB- + * aligned, the register read data should be masked, then + * right-shifted by the designated "OFST" macro value. The + * opposite should be used for register writes when starting + * with LSB-aligned data. + */ + +/* Config register */ +#define NIOS2_CONFIG_REG_PE_MASK (0x00000001) +#define NIOS2_CONFIG_REG_PE_OFST (0) +#define NIOS2_CONFIG_REG_ANI_MASK (0x00000002) +#define NIOS2_CONFIG_REG_ANI_OFST (1) + +/* MPU Base Address Register */ +#define NIOS2_MPUBASE_D_MASK (0x00000001) +#define NIOS2_MPUBASE_D_OFST (0) +#define NIOS2_MPUBASE_INDEX_MASK (0x0000003e) +#define NIOS2_MPUBASE_INDEX_OFST (1) +#define NIOS2_MPUBASE_BASE_ADDR_MASK (0xffffffc0) +#define NIOS2_MPUBASE_BASE_ADDR_OFST (6) + +/* MPU Access Register */ +#define NIOS2_MPUACC_LIMIT_MASK (0xffffffc0) +#define NIOS2_MPUACC_LIMIT_OFST (6) +#define NIOS2_MPUACC_MASK_MASK (0xffffffc0) +#define NIOS2_MPUACC_MASK_OFST (6) +#define NIOS2_MPUACC_C_MASK (0x00000020) +#define NIOS2_MPUACC_C_OFST (5) +#define NIOS2_MPUACC_PERM_MASK (0x0000001c) +#define NIOS2_MPUACC_PERM_OFST (2) +#define NIOS2_MPUACC_RD_MASK (0x00000002) +#define NIOS2_MPUACC_RD_OFST (1) +#define NIOS2_MPUACC_WR_MASK (0x00000001) +#define NIOS2_MPUACC_WR_OFST (0) + +/* + * Number of available IRQs in internal interrupt controller. + */ +#define NIOS2_NIRQ 32 + + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __NIOS2_H__ */ diff --git a/software/qsys_tutorial_hexs_bsp/HAL/inc/os/alt_flag.h b/software/qsys_tutorial_hexs_bsp/HAL/inc/os/alt_flag.h new file mode 100644 index 0000000..b9b4605 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/HAL/inc/os/alt_flag.h @@ -0,0 +1,98 @@ +#ifndef __ALT_FLAG_H__ +#define __ALT_FLAG_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +/* + * This header provides macro definitions that can be used to create and use + * uc/OS-II style event flags. These macros can be used in both a uC/OS-II based + * environment, and a single threaded HAL based environment. + * + * The motivation for these macros is to allow code to be developed which is + * thread safe under uC/OS-II, but incurs no additional overhead when used in a + * single threaded HAL environment. + * + * In the case of a single threaded HAL environment, they compile to + * "do nothing" directives, which ensures they do not contribute to the final + * executable. + * + * The following macros are available: + * + * ALT_FLAG_GRP - Create a flag group instance. + * ALT_EXTERN_FLAG_GRP - Create a reference to an external flag group instance. + * ALT_STATIC_FLAG_GRP - Create a static flag group instance. + * ALT_FLAG_CREATE - Initialise a flag group. + * ALT_FLAG_PEND - Pend on a flag group. + * ALT_FLAG_POST - Set a flag condition. + + * + * Input arguments and return codes are all consistant with the equivalent + * uC/OS-II function. + * + * It's important to be careful in the use of the macros: ALT_FLAG_GRP, + * ALT_EXTERN_FLAG_GRP, and ALT_STATIC_FLAG_GRP. In these three cases the + * semi-colon is included in the macro definition; so, for example, you should + * use: + * + * ALT_FLAG_GRP(mygroup) + * + * not: + * + * ALT_FLAG_GRP(mygroup); + * + * The inclusion of the semi-colon has been necessary to ensure the macros can + * compile with no warnings when used in a single threaded HAL environment. + * + */ + +#include "priv/alt_no_error.h" + +#define ALT_FLAG_GRP(group) +#define ALT_EXTERN_FLAG_GRP(group) +#define ALT_STATIC_FLAG_GRP(group) + +#define ALT_FLAG_CREATE(group, flags) alt_no_error () +#define ALT_FLAG_PEND(group, flags, wait_type, timeout) alt_no_error () +#define ALT_FLAG_POST(group, flags, opt) alt_no_error () + +#ifndef ALT_SINGLE_THREADED +#define ALT_SINGLE_THREADED +#endif + +#endif /* __ALT_FLAG_H__ */ diff --git a/software/qsys_tutorial_hexs_bsp/HAL/inc/os/alt_hooks.h b/software/qsys_tutorial_hexs_bsp/HAL/inc/os/alt_hooks.h new file mode 100644 index 0000000..9054e3f --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/HAL/inc/os/alt_hooks.h @@ -0,0 +1,61 @@ +#ifndef __ALT_HOOKS_H__ +#define __ALT_HOOKS_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +/* + * This header provides "do-nothing" macro definitions for operating system + * hooks within the HAL. The O/S component can override these to provide it's + * own implementation. + */ + +#define ALT_OS_TIME_TICK() while(0) +#define ALT_OS_INIT() while(0) +#define ALT_OS_STOP() while(0) + +/* Call from assembly code */ +#define ALT_OS_INT_ENTER_ASM +#define ALT_OS_INT_EXIT_ASM + +/* Call from C code */ +#define ALT_OS_INT_ENTER() while(0) +#define ALT_OS_INT_EXIT() while(0) + + +#endif /* __ALT_HOOKS_H__ */ diff --git a/software/qsys_tutorial_hexs_bsp/HAL/inc/os/alt_sem.h b/software/qsys_tutorial_hexs_bsp/HAL/inc/os/alt_sem.h new file mode 100644 index 0000000..753943e --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/HAL/inc/os/alt_sem.h @@ -0,0 +1,96 @@ +#ifndef __ALT_SEM_H__ +#define __ALT_SEM_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +/* + * This header provides macro definitions that can be used to create and use + * semaphores. These macros can be used in both a uC/OS-II based environment, + * and a single threaded HAL based environment. + * + * The motivation for these macros is to allow code to be developed which is + * thread safe under uC/OS-II, but incurs no additional overhead when used in a + * single threaded HAL environment. + * + * In the case of a single threaded HAL environment, they compile to + * "do nothing" directives, which ensures they do not contribute to the final + * executable. + * + * The following macros are available: + * + * ALT_SEM - Create a semaphore instance. + * ALT_EXTERN_SEM - Create a reference to an external semaphore instance. + * ALT_STATIC_SEM - Create a static semaphore instance. + * ALT_SEM_CREATE - Initialise a semaphore. + * ALT_SEM_PEND - Pend on a semaphore. + * ALT_SEM_POST - Increment a semaphore. + * + * Input arguments and return codes are all consistant with the equivalent + * uC/OS-II function. + * + * It's important to be careful in the use of the macros: ALT_SEM, + * ALT_EXTERN_SEM, and ALT_STATIC_SEM. In these three cases the semi-colon is + * included in the macro definition; so, for example, you should use: + * + * ALT_SEM(mysem) + * + * not: + * + * ALT_SEM(mysem); + * + * The inclusion of the semi-colon has been necessary to ensure the macros can + * compile with no warnings when used in a single threaded HAL environment. + * + */ + +#include "priv/alt_no_error.h" + +#define ALT_SEM(sem) +#define ALT_EXTERN_SEM(sem) +#define ALT_STATIC_SEM(sem) + +#define ALT_SEM_CREATE(sem, value) alt_no_error () +#define ALT_SEM_PEND(sem, timeout) alt_no_error () +#define ALT_SEM_POST(sem) alt_no_error () + +#ifndef ALT_SINGLE_THREADED +#define ALT_SINGLE_THREADED +#endif + +#endif /* __ALT_SEM_H__ */ diff --git a/software/qsys_tutorial_hexs_bsp/HAL/inc/os/alt_syscall.h b/software/qsys_tutorial_hexs_bsp/HAL/inc/os/alt_syscall.h new file mode 100644 index 0000000..507c6aa --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/HAL/inc/os/alt_syscall.h @@ -0,0 +1,75 @@ +#ifndef __ALT_SYSCALL_H__ +#define __ALT_SYSCALL_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/* + * The macros defined in this file are used to provide the function names used + * for the HAL 'UNIX style' interface, e.g. read(), write() etc. + * + * Operating systems which are ported to the HAL can provide their own + * version of this file, which will be used in preference. This allows + * the operating system to provide it's own implementation of the top level + * system calls, while retaining the HAL functions under a different name, + * for example, alt_read(), alt_write() etc. + */ + +#define ALT_CLOSE close +#define ALT_ENVIRON environ +#define ALT_EXECVE execve +#define ALT_EXIT _exit +#define ALT_FCNTL fcntl +#define ALT_FORK fork +#define ALT_FSTAT fstat +#define ALT_GETPID getpid +#define ALT_GETTIMEOFDAY gettimeofday +#define ALT_IOCTL ioctl +#define ALT_ISATTY isatty +#define ALT_KILL kill +#define ALT_LINK link +#define ALT_LSEEK lseek +#define ALT_OPEN open +#define ALT_READ read +#define ALT_RENAME _rename +#define ALT_SBRK sbrk +#define ALT_SETTIMEOFDAY settimeofday +#define ALT_STAT stat +#define ALT_UNLINK unlink +#define ALT_USLEEP usleep +#define ALT_WAIT wait +#define ALT_WRITE write +#define ALT_TIMES times + +/* + * + */ + +#endif /* __ALT_SYSCALL_H__ */ diff --git a/software/qsys_tutorial_hexs_bsp/HAL/inc/priv/alt_alarm.h b/software/qsys_tutorial_hexs_bsp/HAL/inc/priv/alt_alarm.h new file mode 100644 index 0000000..45d6a0e --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/HAL/inc/priv/alt_alarm.h @@ -0,0 +1,101 @@ +#ifndef __ALT_PRIV_ALARM_H__ +#define __ALT_PRIV_ALARM_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#include "alt_types.h" + +/* + * This header provides the internal defenitions required by the public + * interface alt_alarm.h. These variables and structures are not guaranteed to + * exist in future implementations of the HAL. + */ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * "alt_alarm_s" is a structure type used to maintain lists of alarm callback + * functions. + */ + +struct alt_alarm_s +{ + alt_llist llist; /* linked list */ + alt_u32 time; /* time in system ticks of the callback */ + alt_u32 (*callback) (void* context); /* callback function. The return + * value is the period for the next callback; where + * zero indicates that the alarm should be removed + * from the list. + */ + alt_u8 rollover; /* set when desired alarm time + current time causes + overflow, to prevent premature alarm */ + void* context; /* Argument for the callback */ +}; + +/* + * "_alt_tick_rate" is a global variable used to store the system clock rate + * in ticks per second. This is initialised to zero, which coresponds to there + * being no system clock available. + * + * It is then set to it's final value by the system clock driver through a call + * to alt_sysclk_init(). + */ + +extern alt_u32 _alt_tick_rate; + +/* + * "_alt_nticks" is a global variable which records the elapsed number of + * system clock ticks since the last call to settimeofday() or since reset if + * settimeofday() has not been called. + */ + +extern volatile alt_u32 _alt_nticks; + +/* The list of registered alarms. */ + +extern alt_llist alt_alarm_list; + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_PRIV_ALARM_H__ */ diff --git a/software/qsys_tutorial_hexs_bsp/HAL/inc/priv/alt_busy_sleep.h b/software/qsys_tutorial_hexs_bsp/HAL/inc/priv/alt_busy_sleep.h new file mode 100644 index 0000000..b1af849 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/HAL/inc/priv/alt_busy_sleep.h @@ -0,0 +1,35 @@ +#ifndef __ALT_BUSY_SLEEP_H +#define __ALT_BUSY_SLEEP_H + +/* + * Copyright (c) 2003 Altera Corporation, San Jose, California, USA. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ + +/* + * The function alt_busy_sleep provides a busy loop implementation of usleep. + * This is used to provide usleep for the standalone HAL, or when the timer is + * unavailable in uC/OS-II. + */ + +extern unsigned int alt_busy_sleep (unsigned int us); + +#endif /* __ALT_BUSY_SLEEP_H */ diff --git a/software/qsys_tutorial_hexs_bsp/HAL/inc/priv/alt_dev_llist.h b/software/qsys_tutorial_hexs_bsp/HAL/inc/priv/alt_dev_llist.h new file mode 100644 index 0000000..451b063 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/HAL/inc/priv/alt_dev_llist.h @@ -0,0 +1,77 @@ +#ifndef __ALT_DEV_LLIST_H__ +#define __ALT_DEV_LLIST_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#include "sys/alt_llist.h" +#include "alt_types.h" + +/* + * This header provides the internal defenitions required to control file + * access. These variables and functions are not guaranteed to exist in + * future implementations of the HAL. + */ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * The alt_dev_llist is an internal structure used to form a common base + * class for all device types. The use of this structure allows common code + * to be used to manipulate the various device lists. + */ + +typedef struct { + alt_llist llist; + const char* name; +} alt_dev_llist; + +/* + * + */ + +extern int alt_dev_llist_insert (alt_dev_llist* dev, alt_llist* list); + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_DEV_LLIST_H__ */ diff --git a/software/qsys_tutorial_hexs_bsp/HAL/inc/priv/alt_exception_handler_registry.h b/software/qsys_tutorial_hexs_bsp/HAL/inc/priv/alt_exception_handler_registry.h new file mode 100644 index 0000000..c6905fa --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/HAL/inc/priv/alt_exception_handler_registry.h @@ -0,0 +1,39 @@ +#ifndef __ALT_EXCEPTION_HANDLER_REGISTRY_H__ +#define __ALT_EXCEPTION_HANDLER_REGISTRY_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2008 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ +#include "sys/alt_exceptions.h" + +/* Function pointer to exception callback routine */ +extern alt_exception_result (*alt_instruction_exception_handler) + (alt_exception_cause, alt_u32, alt_u32); + +#endif /* __ALT_EXCEPTION_HANDLER_REGISTRY_H__ */ diff --git a/software/qsys_tutorial_hexs_bsp/HAL/inc/priv/alt_file.h b/software/qsys_tutorial_hexs_bsp/HAL/inc/priv/alt_file.h new file mode 100644 index 0000000..2c3e843 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/HAL/inc/priv/alt_file.h @@ -0,0 +1,179 @@ +#ifndef __ALT_FILE_H__ +#define __ALT_FILE_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#include "sys/alt_dev.h" +#include "sys/alt_llist.h" +#include "os/alt_sem.h" + +#include "alt_types.h" + +/* + * This header provides the internal defenitions required to control file + * access. These variables and functions are not guaranteed to exist in + * future implementations of the HAL. + */ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * The function alt_find_dev() is used to search the device list "list" to + * locate a device named "name". If a match is found, then a pointer to the + * device is returned, otherwise NULL is returned. + */ + +extern alt_dev* alt_find_dev (const char* name, alt_llist* list); + +/* + * alt_find_file() is used to search the list of registered file systems to + * find the filesystem that the file named "name" belongs to. If a match is + * found, then a pointer to the filesystems alt_dev structure is returned, + * otherwise NULL is returned. + * + * Note that a match does not indicate that the file exists, only that a + * filesystem exists that is registered for a partition that could contain + * the file. The filesystems open() function would need to be called in order + * to determine if the file exists. + */ + +extern alt_dev* alt_find_file (const char* name); + +/* + * alt_get_fd() is used to allocate a file descriptor for the device or + * filesystem "dev". A negative return value indicates an error, otherwise the + * return value is the index of the file descriptor within the file descriptor + * pool. + */ + +extern int alt_get_fd (alt_dev* dev); + +/* + * alt_release_fd() is called to free the file descriptor with index "fd". + */ + +extern void alt_release_fd (int fd); + +/* + * alt_fd_lock() is called by ioctl() to mark the file descriptor "fd" as + * being open for exclusive access. Subsequent calls to open() for the device + * associated with "fd" will fail. A device is unlocked by either calling + * close() for "fd", or by an alternate call to ioctl() (see ioctl.c for + * details). + */ + +extern int alt_fd_lock (alt_fd* fd); + +/* + * alt_fd_unlock() is called by ioctl() to unlock a descriptor previously + * locked by a call to alt_fd_lock(). + */ + +extern int alt_fd_unlock (alt_fd* fd); + +/* + * "alt_fd_list" is the pool of file descriptors. + */ + +extern alt_fd alt_fd_list[]; + +/* + * flags used by alt_fd. + * + * ALT_FD_EXCL is used to mark a file descriptor as locked for exclusive + * access, i.e. further calls to open() for the associated device should + * fail. + * + * ALT_FD_DEV marks a dile descriptor as belonging to a device as oposed to a + * filesystem. + */ + +#define ALT_FD_EXCL 0x80000000 +#define ALT_FD_DEV 0x40000000 + +#define ALT_FD_FLAGS_MASK (ALT_FD_EXCL | ALT_FD_DEV) + +/* + * "alt_dev_list" is the head of the linked list of registered devices. + */ + +extern alt_llist alt_dev_list; + +/* + * "alt_fs_list" is the head of the linked list of registered filesystems. + */ + +extern alt_llist alt_fs_list; + +/* + * "alt_fd_list_lock" is a semaphore used to ensure that access to the pool + * of file descriptors is thread safe. + */ + +ALT_EXTERN_SEM(alt_fd_list_lock) + +/* + * "alt_max_fd" is a 'high water mark'. It indicates the highest file + * descriptor allocated. Use of this can save searching the entire pool + * for active file descriptors, which helps avoid contention on access + * to the file descriptor pool. + */ + +extern alt_32 alt_max_fd; + +/* + * alt_io_redirect() is called at startup to redirect stdout, stdin, and + * stderr to the devices named in the input arguments. By default these streams + * are directed at /dev/null, and are then redirected using this function once + * all of the devices have been registered within the system. + */ + +extern void alt_io_redirect(const char* stdout_dev, + const char* stdin_dev, + const char* stderr_dev); + + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_FILE_H__ */ diff --git a/software/qsys_tutorial_hexs_bsp/HAL/inc/priv/alt_iic_isr_register.h b/software/qsys_tutorial_hexs_bsp/HAL/inc/priv/alt_iic_isr_register.h new file mode 100644 index 0000000..a0cb01c --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/HAL/inc/priv/alt_iic_isr_register.h @@ -0,0 +1,39 @@ +#ifndef __ALT_IIC_ISR_REGISTER_H_ +#define __ALT_IIC_ISR_REGISTER_H_ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2009 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ +#include "alt_types.h" +#include "sys/alt_irq.h" + +extern int alt_iic_isr_register(alt_u32 ic_id, alt_u32 irq, alt_isr_func isr, + void *isr_context, void *flags); + +#endif /* __ALT_IIC_ISR_REGISTER_H_ */ diff --git a/software/qsys_tutorial_hexs_bsp/HAL/inc/priv/alt_irq_table.h b/software/qsys_tutorial_hexs_bsp/HAL/inc/priv/alt_irq_table.h new file mode 100644 index 0000000..694ef06 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/HAL/inc/priv/alt_irq_table.h @@ -0,0 +1,59 @@ +#ifndef __ALT_IRQ_TABLE_H__ +#define __ALT_IRQ_TABLE_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2009 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +/* + * Definition of a table describing each interrupt handler. The index into + * the array is the interrupt id associated with the handler. + * + * When an interrupt occurs, the associated handler is called with + * the argument stored in the context member. + * + * The table is physically created in alt_irq_handler.c + */ +extern struct ALT_IRQ_HANDLER +{ +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT + void (*handler)(void*); +#else + void (*handler)(void*, alt_u32); +#endif + void *context; +} alt_irq[ALT_NIRQ]; + +#endif diff --git a/software/qsys_tutorial_hexs_bsp/HAL/inc/priv/alt_legacy_irq.h b/software/qsys_tutorial_hexs_bsp/HAL/inc/priv/alt_legacy_irq.h new file mode 100644 index 0000000..c7aec02 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/HAL/inc/priv/alt_legacy_irq.h @@ -0,0 +1,158 @@ +#ifndef __ALT_LEGACY_IRQ_H__ +#define __ALT_LEGACY_IRQ_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2009 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/* + * This file provides prototypes and inline implementations of certain routines + * used by the legacy interrupt API. Do not include this in your driver or + * application source files, use "sys/alt_irq.h" instead to access the proper + * public API. + */ + +#include +#include "system.h" + +#ifndef NIOS2_EIC_PRESENT + +#include "nios2.h" +#include "alt_types.h" + +#include "sys/alt_irq.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * alt_irq_register() can be used to register an interrupt handler. If the + * function is succesful, then the requested interrupt will be enabled upon + * return. + */ +extern int alt_irq_register (alt_u32 id, + void* context, + alt_isr_func handler); + +/* + * alt_irq_disable() disables the individual interrupt indicated by "id". + */ +static ALT_INLINE int ALT_ALWAYS_INLINE alt_irq_disable (alt_u32 id) +{ + alt_irq_context status; + extern volatile alt_u32 alt_irq_active; + + status = alt_irq_disable_all (); + + alt_irq_active &= ~(1 << id); + NIOS2_WRITE_IENABLE (alt_irq_active); + + alt_irq_enable_all(status); + + return 0; +} + +/* + * alt_irq_enable() enables the individual interrupt indicated by "id". + */ +static ALT_INLINE int ALT_ALWAYS_INLINE alt_irq_enable (alt_u32 id) +{ + alt_irq_context status; + extern volatile alt_u32 alt_irq_active; + + status = alt_irq_disable_all (); + + alt_irq_active |= (1 << id); + NIOS2_WRITE_IENABLE (alt_irq_active); + + alt_irq_enable_all(status); + + return 0; +} + +#ifndef ALT_EXCEPTION_STACK +/* + * alt_irq_initerruptable() should only be called from within an ISR. It is used + * to allow higer priority interrupts to interrupt the current ISR. The input + * argument, "priority", is the priority, i.e. interrupt number of the current + * interrupt. + * + * If this function is called, then the ISR is required to make a call to + * alt_irq_non_interruptible() before returning. The input argument to + * alt_irq_non_interruptible() is the return value from alt_irq_interruptible(). + * + * Care should be taken when using this pair of functions, since they increasing + * the system overhead associated with interrupt handling. + * + * If you are using an exception stack then nested interrupts won't work, so + * these functions are not available in that case. + */ +static ALT_INLINE alt_u32 ALT_ALWAYS_INLINE alt_irq_interruptible (alt_u32 priority) +{ + extern volatile alt_u32 alt_priority_mask; + extern volatile alt_u32 alt_irq_active; + + alt_u32 old_priority; + + old_priority = alt_priority_mask; + alt_priority_mask = (1 << priority) - 1; + + NIOS2_WRITE_IENABLE (alt_irq_active & alt_priority_mask); + + NIOS2_WRITE_STATUS (1); + + return old_priority; +} + +/* + * See Comments above for alt_irq_interruptible() for an explanation of the use of this + * function. + */ +static ALT_INLINE void ALT_ALWAYS_INLINE alt_irq_non_interruptible (alt_u32 mask) +{ + extern volatile alt_u32 alt_priority_mask; + extern volatile alt_u32 alt_irq_active; + + NIOS2_WRITE_STATUS (0); + + alt_priority_mask = mask; + + NIOS2_WRITE_IENABLE (mask & alt_irq_active); +} +#endif /* ALT_EXCEPTION_STACK */ + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* NIOS2_EIC_PRESENT */ + +#endif /* __ALT_LEGACY_IRQ_H__ */ diff --git a/software/qsys_tutorial_hexs_bsp/HAL/inc/priv/alt_no_error.h b/software/qsys_tutorial_hexs_bsp/HAL/inc/priv/alt_no_error.h new file mode 100644 index 0000000..6143fc9 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/HAL/inc/priv/alt_no_error.h @@ -0,0 +1,77 @@ +#ifndef __ALT_NO_ERROR_H__ +#define __ALT_NO_ERROR_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#include "alt_types.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * alt_no_error() is a dummy function used by alt_sem.h and alt_flag.h. It + * substitutes for functions that have a return code by creating a function + * that always returns zero. + * + * This may seem a little obscure, but what happens is that the compiler can + * then optomise away the call to this function, and any code written which + * handles the error path (i.e. non zero return values). + * + * This allows code to be written which correctly use the uC/OS-II semaphore + * and flag utilities, without the use of those utilities impacting on + * excutables built for a single threaded HAL environment. + * + * This function is considered to be part of the internal implementation of + * the HAL, and should not be called directly by application code or device + * drivers. It is not guaranteed to be preserved in future versions of the + * HAL. + */ + +static ALT_INLINE int ALT_ALWAYS_INLINE alt_no_error (void) +{ + return 0; +} + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_NO_ERROR_H__ */ diff --git a/software/qsys_tutorial_hexs_bsp/HAL/inc/priv/nios2_gmon_data.h b/software/qsys_tutorial_hexs_bsp/HAL/inc/priv/nios2_gmon_data.h new file mode 100644 index 0000000..3f43f12 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/HAL/inc/priv/nios2_gmon_data.h @@ -0,0 +1,47 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ +#ifndef NIOS2_GMON_DATA_H +#define NIOS2_GMON_DATA_H + +#define GMON_DATA_SIG 0 +#define GMON_DATA_WORDS 1 +#define GMON_DATA_PROFILE_DATA 2 +#define GMON_DATA_PROFILE_LOWPC 3 +#define GMON_DATA_PROFILE_HIGHPC 4 +#define GMON_DATA_PROFILE_BUCKET 5 +#define GMON_DATA_PROFILE_RATE 6 +#define GMON_DATA_MCOUNT_START 7 +#define GMON_DATA_MCOUNT_LIMIT 8 + +#define GMON_DATA_SIZE 9 + +extern unsigned int alt_gmon_data[GMON_DATA_SIZE]; + +#endif diff --git a/software/qsys_tutorial_hexs_bsp/HAL/inc/sys/alt_alarm.h b/software/qsys_tutorial_hexs_bsp/HAL/inc/sys/alt_alarm.h new file mode 100644 index 0000000..68a2f5d --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/HAL/inc/sys/alt_alarm.h @@ -0,0 +1,126 @@ +#ifndef __ALT_ALARM_H__ +#define __ALT_ALARM_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#include "alt_llist.h" +#include "alt_types.h" + +#include "priv/alt_alarm.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * "alt_alarm" is a structure type used by applications to register an alarm + * callback function. An instance of this type must be passed as an input + * argument to alt_alarm_start(). The user is not responsible for initialising + * the contents of the instance. This is done by alt_alarm_start(). + */ + +typedef struct alt_alarm_s alt_alarm; + +/* + * alt_alarm_start() can be called by an application/driver in order to register + * a function for periodic callback at the system clock frequency. Be aware that + * this callback is likely to occur in interrupt context. + */ + +extern int alt_alarm_start (alt_alarm* the_alarm, + alt_u32 nticks, + alt_u32 (*callback) (void* context), + void* context); + +/* + * alt_alarm_stop() is used to unregister a callback. Alternatively the callback + * can return zero to unregister. + */ + +extern void alt_alarm_stop (alt_alarm* the_alarm); + +/* + * Obtain the system clock rate in ticks/s. + */ + +static ALT_INLINE alt_u32 ALT_ALWAYS_INLINE alt_ticks_per_second (void) +{ + return _alt_tick_rate; +} + +/* + * alt_sysclk_init() is intended to be only used by the system clock driver + * in order to initialise the value of the clock frequency. + */ + +static ALT_INLINE int ALT_ALWAYS_INLINE alt_sysclk_init (alt_u32 nticks) +{ + if (! _alt_tick_rate) + { + _alt_tick_rate = nticks; + return 0; + } + else + { + return -1; + } +} + +/* + * alt_nticks() returns the elapsed number of system clock ticks since reset. + */ + +static ALT_INLINE alt_u32 ALT_ALWAYS_INLINE alt_nticks (void) +{ + return _alt_nticks; +} + +/* + * alt_tick() should only be called by the system clock driver. This is used + * to notify the system that the system timer period has expired. + */ + +extern void alt_tick (void); + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_ALARM_H__ */ diff --git a/software/qsys_tutorial_hexs_bsp/HAL/inc/sys/alt_cache.h b/software/qsys_tutorial_hexs_bsp/HAL/inc/sys/alt_cache.h new file mode 100644 index 0000000..c4d8db9 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/HAL/inc/sys/alt_cache.h @@ -0,0 +1,117 @@ +#ifndef __ALT_CACHE_H__ +#define __ALT_CACHE_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003, 2007 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include + +#include "alt_types.h" + +/* + * alt_cache.h defines the processor specific functions for manipulating the + * cache. + */ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * alt_icache_flush() is called to flush the instruction cache for a memory + * region of length "len" bytes, starting at address "start". + */ + +extern void alt_icache_flush (void* start, alt_u32 len); + +/* + * alt_dcache_flush() is called to flush the data cache for a memory + * region of length "len" bytes, starting at address "start". + * Any dirty lines in the data cache are written back to memory. + */ + +extern void alt_dcache_flush (void* start, alt_u32 len); + +/* + * alt_dcache_flush() is called to flush the data cache for a memory + * region of length "len" bytes, starting at address "start". + * Any dirty lines in the data cache are NOT written back to memory. + */ + +extern void alt_dcache_flush_no_writeback (void* start, alt_u32 len); + +/* + * Flush the entire instruction cache. + */ + +extern void alt_icache_flush_all (void); + +/* + * Flush the entire data cache. + */ + +extern void alt_dcache_flush_all (void); + +/* + * Allocate a block of uncached memory. + */ + +extern volatile void* alt_uncached_malloc (size_t size); + +/* + * Free a block of uncached memory. + */ + +extern void alt_uncached_free (volatile void* ptr); + +/* + * Convert a pointer to a block of cached memory, into a block of + * uncached memory. + */ + +extern volatile void* alt_remap_uncached (void* ptr, alt_u32 len); + +/* + * Convert a pointer to a block of uncached memory, into a block of + * cached memory. + */ + +extern void* alt_remap_cached (volatile void* ptr, alt_u32 len); + +/* + * + */ + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_CACHE_H__ */ diff --git a/software/qsys_tutorial_hexs_bsp/HAL/inc/sys/alt_debug.h b/software/qsys_tutorial_hexs_bsp/HAL/inc/sys/alt_debug.h new file mode 100644 index 0000000..d9f9599 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/HAL/inc/sys/alt_debug.h @@ -0,0 +1,45 @@ +#ifndef __ALT_DEBUG_H__ +#define __ALT_DEBUG_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/* + * The ALT_DEVUG_ASSERT macro can be used to generate a debugger break + * from within software. The break is generated if "condition" evaluates to + * false. + */ + +#define ALT_DEBUG_ASSERT(condition) if (!condition) \ +{ \ + __asm__ volatile ("break"); \ +} + +#endif /* __ALT_DEBUG_H__ */ diff --git a/software/qsys_tutorial_hexs_bsp/HAL/inc/sys/alt_dev.h b/software/qsys_tutorial_hexs_bsp/HAL/inc/sys/alt_dev.h new file mode 100644 index 0000000..66c5e41 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/HAL/inc/sys/alt_dev.h @@ -0,0 +1,115 @@ +#ifndef __ALT_DEV_H__ +#define __ALT_DEV_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#include "system.h" +#include "sys/alt_llist.h" +#include "priv/alt_dev_llist.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * The value ALT_IRQ_NOT_CONNECTED is used to represent an unconnected + * interrupt line. It cannot evaluate to a valid interrupt number. + */ + +#define ALT_IRQ_NOT_CONNECTED (-1) + +typedef struct alt_dev_s alt_dev; + +struct stat; + +/* + * The file descriptor structure definition. + */ + +typedef struct alt_fd_s +{ + alt_dev* dev; + alt_u8* priv; + int fd_flags; +} alt_fd; + +/* + * The device structure definition. + */ + +struct alt_dev_s { + alt_llist llist; /* for internal use */ + const char* name; + int (*open) (alt_fd* fd, const char* name, int flags, int mode); + int (*close) (alt_fd* fd); + int (*read) (alt_fd* fd, char* ptr, int len); + int (*write) (alt_fd* fd, const char* ptr, int len); + int (*lseek) (alt_fd* fd, int ptr, int dir); + int (*fstat) (alt_fd* fd, struct stat* buf); + int (*ioctl) (alt_fd* fd, int req, void* arg); +}; + +/* + * Functions used to register device for access through the C standard + * library. + * + * The only difference between alt_dev_reg() and alt_fs_reg() is the + * interpretation that open() places on the device name. In the case of + * alt_dev_reg the device is assumed to be a particular character device, + * and so there must be an exact match in the name for open to succeed. + * In the case of alt_fs_reg() the name of the device is treated as the + * mount point for a directory, and so any call to open() where the name + * is the root of the device filename will succeed. + */ + +extern int alt_fs_reg (alt_dev* dev); + +static ALT_INLINE int alt_dev_reg (alt_dev* dev) +{ + extern alt_llist alt_dev_list; + + return alt_dev_llist_insert ((alt_dev_llist*) dev, &alt_dev_list); +} + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_DEV_H__ */ diff --git a/software/qsys_tutorial_hexs_bsp/HAL/inc/sys/alt_dma.h b/software/qsys_tutorial_hexs_bsp/HAL/inc/sys/alt_dma.h new file mode 100644 index 0000000..9f9b2ff --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/HAL/inc/sys/alt_dma.h @@ -0,0 +1,226 @@ +#ifndef __ALT_DMA_H__ +#define __ALT_DMA_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004-2005 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#include "sys/alt_dma_dev.h" +#include "alt_types.h" + +#include + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * This header contains the application side interface for accessing DMA + * resources. See alt_dma_dev.h for the dma device driver interface. + * + * The interface model treats a DMA transaction as being composed of two + * halves (read and write). + * + * The application can supply data for transmit using an "alt_dma_txchan" + * descriptor. Alternatively an "alt_dma_rxchan" descriptor can be used to + * receive data. + */ + +/* + * alt_dma_txchan_open() is used to obtain an "alt_dma_txchan" descriptor for + * a DMA transmit device. The name is the name of the associated physical + * device (e.g. "/dev/dma_0"). + * + * The return value will be NULL on failure, and non-NULL otherwise. + */ + +extern alt_dma_txchan alt_dma_txchan_open (const char* name); + +/* + * alt_dma_txchan_close() is provided so that an application can notify the + * system that it has finished with a given DMA transmit channel. This is only + * provided for completness. + */ + +static ALT_INLINE int alt_dma_txchan_close (alt_dma_txchan dma) +{ + return 0; +} + +/* + * alt_dma_txchan_send() posts a transmit request to a DMA transmit channel. + * The input arguments are: + * + * dma: the channel to use. + * from: a pointer to the start of the data to send. + * length: the length of the data to send in bytes. + * done: callback function that will be called once the data has been sent. + * handle: opaque value passed to "done". + * + * The return value will be negative if the request cannot be posted, and + * zero otherwise. + */ + +static ALT_INLINE int alt_dma_txchan_send (alt_dma_txchan dma, + const void* from, + alt_u32 length, + alt_txchan_done* done, + void* handle) +{ + return dma ? dma->dma_send (dma, + from, + length, + done, + handle) : -ENODEV; +} + +/* + * alt_dma_txchan_space() returns the number of tranmit requests that can be + * posted to the specified DMA transmit channel. + * + * A negative value indicates that the value could not be determined. + */ + +static ALT_INLINE int alt_dma_txchan_space (alt_dma_txchan dma) +{ + return dma ? dma->space (dma) : -ENODEV; +} + +/* + * alt_dma_txchan_ioctl() can be used to perform device specific I/O + * operations on the indicated DMA transmit channel. For example some drivers + * support options to control the width of the transfer operations. See + * alt_dma_dev.h for the list of generic requests. + * + * A negative return value indicates failure, otherwise the interpretation + * of the return value is request specific. + */ + +static ALT_INLINE int alt_dma_txchan_ioctl (alt_dma_txchan dma, + int req, + void* arg) +{ + return dma ? dma->ioctl (dma, req, arg) : -ENODEV; +} + +/* + * alt_dma_rxchan_open() is used to obtain an "alt_dma_rxchan" descriptor for + * a DMA receive channel. The name is the name of the associated physical + * device (e.g. "/dev/dma_0"). + * + * The return value will be NULL on failure, and non-NULL otherwise. + */ + +extern alt_dma_rxchan alt_dma_rxchan_open (const char* dev); + +/* + * alt_dma_rxchan_close() is provided so that an application can notify the + * system that it has finished with a given DMA receive channel. This is only + * provided for completness. + */ + +static ALT_INLINE int alt_dma_rxchan_close (alt_dma_rxchan dma) +{ + return 0; +} + +/* + * + */ + +/* + * alt_dma_rxchan_prepare() posts a receive request to a DMA receive channel. + * + * The input arguments are: + * + * dma: the channel to use. + * data: a pointer to the location that data is to be received to. + * len: the maximum length of the data to receive. + * done: callback function that will be called once the data has been + * received. + * handle: opaque value passed to "done". + * + * The return value will be negative if the request cannot be posted, and + * zero otherwise. + */ + +static ALT_INLINE int alt_dma_rxchan_prepare (alt_dma_rxchan dma, + void* data, + alt_u32 len, + alt_rxchan_done* done, + void* handle) +{ + return dma ? dma->prepare (dma, data, len, done, handle) : -ENODEV; +} + +/* + * alt_dma_rxchan_ioctl() can be used to perform device specific I/O + * operations on the indicated DMA receive channel. For example some drivers + * support options to control the width of the transfer operations. See + * alt_dma_dev.h for the list of generic requests. + * + * A negative return value indicates failure, otherwise the interpretation + * of the return value is request specific. + */ + +static ALT_INLINE int alt_dma_rxchan_ioctl (alt_dma_rxchan dma, + int req, + void* arg) +{ + return dma ? dma->ioctl (dma, req, arg) : -ENODEV; +} + +/* + * alt_dma_rxchan_depth() returns the depth of the receive FIFO used to store + * receive requests. + */ + +static ALT_INLINE alt_u32 alt_dma_rxchan_depth(alt_dma_rxchan dma) +{ + return dma->depth; +} + +/* + * + */ + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __ALT_DMA_H__ */ diff --git a/software/qsys_tutorial_hexs_bsp/HAL/inc/sys/alt_dma_dev.h b/software/qsys_tutorial_hexs_bsp/HAL/inc/sys/alt_dma_dev.h new file mode 100644 index 0000000..832463d --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/HAL/inc/sys/alt_dma_dev.h @@ -0,0 +1,200 @@ +#ifndef __ALT_DMA_DEV_H__ +#define __ALT_DMA_DEV_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004-2005 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#include "priv/alt_dev_llist.h" + +#include "alt_types.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * This header contains the device driver interface for accessing DMA + * resources. See alt_dma.h for the DMA application side interface. + * + * The interface model treats a DMA transaction as being composed of two + * halves (read and write). + * + * An "alt_dma_txchan_dev" is used to describe the device associated with a + * DMA transmit channel. An "alt_dma_rxchan_dev" is used to describe the + * device associated with a DMA receive channel. + */ + +/* + * List of generic ioctl requests that may be supported by a DMA device. + * + * ALT_DMA_RX_ONLY_ON: This causes a DMA channel to operate in a mode + * where only the receiver is under software control. + * The other side reads continously from a single + * location. The address to read is the argument to + * this request. + * ALT_DMA_RX_ONLY_OFF: Return to the default mode where both the receive + * and transmit sides of the DMA can be under software + * control. + * ALT_DMA_TX_ONLY_ON: This causes a DMA channel to operate in a mode + * where only the transmitter is under software control. + * The other side writes continously to a single + * location. The address to write to is the argument to + * this request. + * ALT_DMA_TX_ONLY_OFF: Return to the default mode where both the receive + * and transmit sides of the DMA can be under software + * control. + * ALT_DMA_SET_MODE_8: Transfer data in units of 8 bits. + * ALT_DMA_SET_MODE_16: Transfer data in units of 16 bits. + * ALT_DMA_SET_MODE_32: Transfer data in units of 32 bits. + * ALT_DMA_SET_MODE_64: Transfer data in units of 64 bits. + * ALT_DMA_SET_MODE_128: Transfer data in units of 128 bits. + * ALT_DMA_GET_MODE: Get the current transfer mode. + * + * The use of the macros: ALT_DMA_TX_STREAM_ON, ALT_DMA_TX_STREAM_OFF + * ALT_DMA_RX_STREAM_OFF and ALT_DMA_RX_STREAM_ON are depreciated. You should + * instead use the macros: ALT_DMA_RX_ONLY_ON, ALT_DMA_RX_ONLY_OFF, + * ALT_DMA_TX_ONLY_ON and ALT_DMA_TX_ONLY_OFF. + */ + +#define ALT_DMA_TX_STREAM_ON (0x1) +#define ALT_DMA_TX_STREAM_OFF (0x2) +#define ALT_DMA_RX_STREAM_ON (0x3) +#define ALT_DMA_RX_STREAM_OFF (0x4) +#define ALT_DMA_SET_MODE_8 (0x5) +#define ALT_DMA_SET_MODE_16 (0x6) +#define ALT_DMA_SET_MODE_32 (0x7) +#define ALT_DMA_SET_MODE_64 (0x8) +#define ALT_DMA_SET_MODE_128 (0x9) +#define ALT_DMA_GET_MODE (0xa) + +#define ALT_DMA_RX_ONLY_ON ALT_DMA_TX_STREAM_ON +#define ALT_DMA_RX_ONLY_OFF ALT_DMA_TX_STREAM_OFF +#define ALT_DMA_TX_ONLY_ON ALT_DMA_RX_STREAM_ON +#define ALT_DMA_TX_ONLY_OFF ALT_DMA_RX_STREAM_OFF + +/* + * + */ + +typedef struct alt_dma_txchan_dev_s alt_dma_txchan_dev; +typedef struct alt_dma_rxchan_dev_s alt_dma_rxchan_dev; + +typedef alt_dma_txchan_dev* alt_dma_txchan; +typedef alt_dma_rxchan_dev* alt_dma_rxchan; + +typedef void (alt_txchan_done)(void* handle); +typedef void (alt_rxchan_done)(void* handle, void* data); + +/* + * devices that provide a DMA transmit channel are required to provide an + * instance of the "alt_dma_txchan_dev" structure. + */ + +struct alt_dma_txchan_dev_s { + alt_llist llist; /* for internal use */ + const char* name; /* name of the device instance + * (e.g. "/dev/dma_0"). + */ + int (*space) (alt_dma_txchan dma); /* returns the maximum number of + * transmit requests that can be posted + */ + int (*dma_send) (alt_dma_txchan dma, + const void* from, + alt_u32 len, + alt_txchan_done* done, + void* handle); /* post a transmit request */ + int (*ioctl) (alt_dma_txchan dma, int req, void* arg); /* perform device + * specific I/O control. + */ +}; + +/* + * devices that provide a DMA receive channel are required to provide an + * instance of the "alt_dma_rxchan_dev" structure. + */ + +struct alt_dma_rxchan_dev_s { + alt_llist list; /* for internal use */ + const char* name; /* name of the device instance + * (e.g. "/dev/dma_0"). + */ + alt_u32 depth; /* maximum number of receive requests that + * can be posted. + */ + int (*prepare) (alt_dma_rxchan dma, + void* data, + alt_u32 len, + alt_rxchan_done* done, + void* handle); /* post a receive request */ + int (*ioctl) (alt_dma_rxchan dma, int req, void* arg); /* perform device + * specific I/O control. + */ +}; + +/* + * Register a DMA transmit channel with the system. + */ + +static ALT_INLINE int alt_dma_txchan_reg (alt_dma_txchan_dev* dev) +{ + extern alt_llist alt_dma_txchan_list; + + return alt_dev_llist_insert((alt_dev_llist*) dev, &alt_dma_txchan_list); +} + +/* + * Register a DMA receive channel with the system. + */ + +static ALT_INLINE int alt_dma_rxchan_reg (alt_dma_rxchan_dev* dev) +{ + extern alt_llist alt_dma_rxchan_list; + + return alt_dev_llist_insert((alt_dev_llist*) dev, &alt_dma_rxchan_list); +} + +/* + * + */ + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __ALT_DMA_DEV_H__ */ diff --git a/software/qsys_tutorial_hexs_bsp/HAL/inc/sys/alt_driver.h b/software/qsys_tutorial_hexs_bsp/HAL/inc/sys/alt_driver.h new file mode 100644 index 0000000..eb0f23b --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/HAL/inc/sys/alt_driver.h @@ -0,0 +1,168 @@ +#ifndef __ALT_DRIVER_H__ +#define __ALT_DRIVER_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/* + * Macros used to access a driver without HAL file descriptors. + */ + +/* + * ALT_MODULE_CLASS + * + * This macro returns the module class name for the specified module instance. + * It uses information in the system.h file. + * Neither the instance name or class name are quoted (so that they can + * be used with other pre-processor macros). + * + * Example: + * Assume the design has an instance of an altera_avalon_uart called uart1. + * Calling ALT_MODULE_CLASS(uart1) returns altera_avalon_uart. + */ + +#define ALT_MODULE_CLASS(instance) ALT_MODULE_CLASS_ ## instance + + +/* + * ALT_DRIVER_FUNC_NAME + * + * --> instance Instance name. + * --> func Function name. + * + * This macro returns the device driver function name of the specified + * module instance for the specified function name. + * + * Example: + * Assume the design has an instance of an altera_avalon_uart called uart1. + * Calling ALT_DRIVER_FUNC_NAME(uart1, write) returns + * altera_avalon_uart_write. + */ + +#define ALT_DRIVER_FUNC_NAME(instance, func) \ + ALT_DRIVER_FUNC_NAME1(ALT_MODULE_CLASS(instance), func) +#define ALT_DRIVER_FUNC_NAME1(module_class, func) \ + ALT_DRIVER_FUNC_NAME2(module_class, func) +#define ALT_DRIVER_FUNC_NAME2(module_class, func) \ + module_class ## _ ## func + +/* + * ALT_DRIVER_STATE_STRUCT + * + * --> instance Instance name. + * + * This macro returns the device driver state type name of the specified + * module instance. + * + * Example: + * Assume the design has an instance of an altera_avalon_uart called uart1. + * Calling ALT_DRIVER_STATE_STRUCT(uart1) returns: + * struct altera_avalon_uart_state_s + * + * Note that the ALT_DRIVER_FUNC_NAME macro is used even though "state" isn't + * really a function but it does match the required naming convention. + */ +#define ALT_DRIVER_STATE_STRUCT(instance) \ + struct ALT_DRIVER_FUNC_NAME(instance, state_s) + +/* + * ALT_DRIVER_STATE + * + * --> instance Instance name. + * + * This macro returns the device driver state name of the specified + * module instance. + * + * Example: + * Assume the design has an instance of an altera_avalon_uart called uart1. + * Calling ALT_DRIVER_STATE(uart1) returns uart1. + */ +#define ALT_DRIVER_STATE(instance) instance + +/* + * ALT_DRIVER_WRITE + * + * --> instance Instance name. + * --> buffer Write buffer. + * --> len Length of write buffer data. + * --> flags Control flags (e.g. O_NONBLOCK) + * + * This macro calls the "write" function of the specified driver instance. + */ + +#define ALT_DRIVER_WRITE_EXTERNS(instance) \ + extern ALT_DRIVER_STATE_STRUCT(instance) ALT_DRIVER_STATE(instance); \ + extern int ALT_DRIVER_FUNC_NAME(instance, write) \ + (ALT_DRIVER_STATE_STRUCT(instance) *, const char *, int, int); + +#define ALT_DRIVER_WRITE(instance, buffer, len, flags) \ + ALT_DRIVER_FUNC_NAME(instance, write)(&ALT_DRIVER_STATE(instance), buffer, len, flags) + + +/* + * ALT_DRIVER_READ + * + * --> instance Instance name. + * <-- buffer Read buffer. + * --> len Length of read buffer. + * --> flags Control flags (e.g. O_NONBLOCK) + * + * This macro calls the "read" function of the specified driver instance. + */ + +#define ALT_DRIVER_READ_EXTERNS(instance) \ + extern ALT_DRIVER_STATE_STRUCT(instance) ALT_DRIVER_STATE(instance); \ + extern int ALT_DRIVER_FUNC_NAME(instance, read) \ + (ALT_DRIVER_STATE_STRUCT(instance) *, const char *, int, int); + +#define ALT_DRIVER_READ(instance, buffer, len, flags) \ + ALT_DRIVER_FUNC_NAME(instance, read)(&ALT_DRIVER_STATE(instance), buffer, len, flags) + +/* + * ALT_DRIVER_IOCTL + * + * --> instance Instance name. + * --> req ioctl request (e.g. TIOCSTIMEOUT) + * --> arg Optional argument (void*) + * + * This macro calls the "ioctl" function of the specified driver instance + */ + +#define ALT_DRIVER_IOCTL_EXTERNS(instance) \ + extern ALT_DRIVER_STATE_STRUCT(instance) ALT_DRIVER_STATE(instance); \ + extern int ALT_DRIVER_FUNC_NAME(instance, ioctl) \ + (ALT_DRIVER_STATE_STRUCT(instance) *, int, void*); + +#define ALT_DRIVER_IOCTL(instance, req, arg) \ + ALT_DRIVER_FUNC_NAME(instance, ioctl)(&ALT_DRIVER_STATE(instance), req, arg) + +#endif /* __ALT_DRIVER_H__ */ diff --git a/software/qsys_tutorial_hexs_bsp/HAL/inc/sys/alt_errno.h b/software/qsys_tutorial_hexs_bsp/HAL/inc/sys/alt_errno.h new file mode 100644 index 0000000..4d3e50f --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/HAL/inc/sys/alt_errno.h @@ -0,0 +1,87 @@ +#ifndef __ALT_ERRNO_H__ +#define __ALT_ERRNO_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +/* + * errno is defined in so that it uses the thread local version + * stored in the location pointed to by "_impure_ptr". This means that the + * accesses to errno within the HAL library can cause the entirety of + * of the structure pointed to by "_impure_ptr" to be added to the + * users application. This can be undesirable in very small footprint systems. + * + * To avoid this happening, the HAL uses the macro ALT_ERRNO, defined below, + * to access errno, rather than accessing it directly. This macro will only + * use the thread local version if some other code has already caused it to be + * included into the system, otherwise it will use the global errno value. + * + * This causes a slight increases in code size where errno is accessed, but + * can lead to significant overall benefits in very small systems. The + * increase is inconsequential when compared to the size of the structure + * pointed to by _impure_ptr. + * + * Note that this macro accesses __errno() using an externally declared + * function pointer (alt_errno). This is done so that the function call uses the + * subroutine call instruction via a register rather than an immediate address. + * This is important in the case that the code has been linked for a high + * address, but __errno() is not being used. In this case the weak linkage + * would have resulted in the instruction: "call 0" which would fail to link. + */ + +extern int* (*alt_errno) (void); + +/* Must define this so that values such as EBADFD are defined in errno.h. */ +#define __LINUX_ERRNO_EXTENSIONS__ + +#include + +#include "alt_types.h" + +#undef errno + +extern int errno; + +static ALT_INLINE int* alt_get_errno(void) +{ + return ((alt_errno) ? alt_errno() : &errno); +} + +#define ALT_ERRNO *alt_get_errno() + +#endif /* __ALT_ERRNO_H__ */ diff --git a/software/qsys_tutorial_hexs_bsp/HAL/inc/sys/alt_exceptions.h b/software/qsys_tutorial_hexs_bsp/HAL/inc/sys/alt_exceptions.h new file mode 100644 index 0000000..3576a52 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/HAL/inc/sys/alt_exceptions.h @@ -0,0 +1,127 @@ +#ifndef __ALT_EXCEPTIONS_H__ +#define __ALT_EXCEPTIONS_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2008 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ +#include "alt_types.h" +#include "system.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * This file defines instruction-generated exception handling and registry + * API, exception type enumeration, and handler return value enumeration for + * Nios II. + */ + +/* + * The following enumeration describes the value in the CPU EXCEPTION + * register CAUSE bit field. Not all exception types will cause the + * processor to go to the exception vector; these are provided for + * reference. + */ +enum alt_exception_cause_e { + /* Exeption causes that will cause jump to exception vector */ + NIOS2_EXCEPTION_INTERRUPT = 2, + NIOS2_EXCEPTION_TRAP_INST = 3, + NIOS2_EXCEPTION_UNIMPLEMENTED_INST = 4, + NIOS2_EXCEPTION_ILLEGAL_INST = 5, + NIOS2_EXCEPTION_MISALIGNED_DATA_ADDR = 6, + NIOS2_EXCEPTION_MISALIGNED_TARGET_PC = 7, + NIOS2_EXCEPTION_DIVISION_ERROR = 8, + NIOS2_EXCEPTION_SUPERVISOR_ONLY_INST_ADDR = 9, + NIOS2_EXCEPTION_SUPERVISOR_ONLY_INST = 10, + NIOS2_EXCEPTION_SUPERVISOR_ONLY_DATA_ADDR = 11, + NIOS2_EXCEPTION_TLB_MISS = 12, + NIOS2_EXCEPTION_TLB_EXECUTE_PERM_VIOLATION = 13, + NIOS2_EXCEPTION_MPU_INST_REGION_VIOLATION = 16, + + /* Exception causes that will NOT cause a jump to exception vector */ + NIOS2_EXCEPTION_RESET = 0, + NIOS2_EXCEPTION_CPU_ONLY_RESET_REQUEST = 1, + NIOS2_EXCEPTION_TLB_READ_PERM_VIOLATION = 14, + NIOS2_EXCEPTION_TLB_WRITE_PERM_VIOLATION = 15, + NIOS2_EXCEPTION_MPU_DATA_REGION_VIOLATION = 17, + /* + * This value is passed to an exception handler's cause argument if + * "extra exceptions" information (EXECPTION) register is not + * present in the processor hardware configuration. + */ + NIOS2_EXCEPTION_CAUSE_NOT_PRESENT = -1 +}; +typedef enum alt_exception_cause_e alt_exception_cause; + +/* + * These define valid return values for a user-defined instruction-generated + * exception handler. The handler should return one of these to indicate + * whether to re-issue the instruction that triggered the exception, or to + * skip it. + */ +enum alt_exception_result_e { + NIOS2_EXCEPTION_RETURN_REISSUE_INST = 0, + NIOS2_EXCEPTION_RETURN_SKIP_INST = 1 +}; +typedef enum alt_exception_result_e alt_exception_result; + +/* + * alt_instruction_exception_register() can be used to register an exception + * handler for instruction-generated exceptions that are not handled by the + * built-in exception handler (i.e. for interrupts). + * + * The registry API is optionally enabled through the "Enable + * Instruction-related Exception API" HAL BSP setting, which will + * define the macro below. + */ +#ifdef ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API +void alt_instruction_exception_register ( + alt_exception_result (*exception_handler)( + alt_exception_cause cause, + alt_u32 exception_pc, + alt_u32 bad_addr) ); +#endif /*ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API */ + +/* + * alt_exception_cause_generated_bad_addr() indicates whether a particular + * exception cause value was from an exception-type that generated a valid + * address in the BADADDR register. The contents of BADADDR is passed to + * a user-registered exception handler in all cases, whether valid or not. + * This routine should be called to validate the bad_addr argument to + * your exception handler. + */ +int alt_exception_cause_generated_bad_addr(alt_exception_cause cause); + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __ALT_EXCEPTIONS_H__ */ diff --git a/software/qsys_tutorial_hexs_bsp/HAL/inc/sys/alt_flash.h b/software/qsys_tutorial_hexs_bsp/HAL/inc/sys/alt_flash.h new file mode 100644 index 0000000..527328d --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/HAL/inc/sys/alt_flash.h @@ -0,0 +1,166 @@ +#ifndef __ALT_FLASH_H__ +#define __ALT_FLASH_H__ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +/****************************************************************************** +* * +* Alt_flash.h - User interface for flash code * +* * +* Use this interface to avoid being exposed to the internals of the device * +* driver architecture. If you chose to use the flash driver internal * +* structures we don't guarantee not to change them * +* * +* Author PRR * +* * +******************************************************************************/ + + + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +#include "alt_types.h" +#include "alt_flash_types.h" +#include "alt_flash_dev.h" +#include "sys/alt_cache.h" + +alt_flash_fd* alt_flash_open_dev(const char* name); +void alt_flash_close_dev(alt_flash_fd* fd ); + +/* + * alt_write_flash + * + * Program a buffer into flash. + * + * This routine erases all the affected erase blocks (if necessary) + * and then programs the data. However it does not read the data out first + * and preserve and none overwritten data, because this would require very + * large buffers on the target. If you need + * that functionality use the functions below. + */ +static __inline__ int __attribute__ ((always_inline)) alt_write_flash( + alt_flash_fd* fd, + int offset, + const void* src_addr, + int length ) +{ + return fd->write( fd, offset, src_addr, length ); +} + +/* + * alt_read_flash + * + * Read a block of flash for most flashes this is just memcpy + * it's here for completeness in case we need it for some serial flash device + * + */ +static __inline__ int __attribute__ ((always_inline)) alt_read_flash( + alt_flash_fd* fd, int offset, + void* dest_addr, int length ) +{ + return fd->read( fd, offset, dest_addr, length ); +} + +/* + * alt_get_flash_info + * + * Return the information on the flash sectors. + * + */ +static __inline__ int __attribute__ ((always_inline)) alt_get_flash_info( + alt_flash_fd* fd, flash_region** info, + int* number_of_regions) +{ + return fd->get_info( fd, info, number_of_regions); +} + +/* + * alt_erase_flash_block + * + * Erase a particular erase block, pass in the offset to the start of + * the block and it's size + */ +static __inline__ int __attribute__ ((always_inline)) alt_erase_flash_block( + alt_flash_fd* fd, int offset, int length) +{ + int ret_code; + ret_code = fd->erase_block( fd, offset ); + + if(!ret_code) + alt_dcache_flush((alt_u8*)fd->base_addr + offset, length); + + return ret_code; +} + +/* + * alt_write_flash_block + * + * Write a particular flash block, block_offset is the offset + * (from the base of flash) to start of the block + * data_offset is the offset (from the base of flash) + * where you wish to start programming + * + * NB this function DOES NOT check that you are only writing a single + * block of data as that would slow down this function. + * + * Use alt_write_flash if you want that level of error checking. + */ + +static __inline__ int __attribute__ ((always_inline)) alt_write_flash_block( + alt_flash_fd* fd, int block_offset, + int data_offset, + const void *data, int length) +{ + + int ret_code; + ret_code = fd->write_block( fd, block_offset, data_offset, data, length ); + + if(!ret_code) + alt_dcache_flush((alt_u8*)fd->base_addr + data_offset, length); + + return ret_code; +} + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_FLASH_H__ */ diff --git a/software/qsys_tutorial_hexs_bsp/HAL/inc/sys/alt_flash_dev.h b/software/qsys_tutorial_hexs_bsp/HAL/inc/sys/alt_flash_dev.h new file mode 100644 index 0000000..8bab601 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/HAL/inc/sys/alt_flash_dev.h @@ -0,0 +1,98 @@ +#ifndef __ALT_FLASH_DEV_H__ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +/****************************************************************************** +* * +* Alt_flash_dev.h - Generic Flash device interfaces * +* * +* Author PRR * +* * +******************************************************************************/ +#define __ALT_FLASH_DEV_H__ + +#include "alt_flash_types.h" +#include "sys/alt_llist.h" +#include "priv/alt_dev_llist.h" + +#include "alt_types.h" + +typedef struct alt_flash_dev alt_flash_dev; +typedef alt_flash_dev alt_flash_fd; + +static ALT_INLINE int alt_flash_device_register( alt_flash_fd* fd) +{ + extern alt_llist alt_flash_dev_list; + + return alt_dev_llist_insert ((alt_dev_llist*) fd, &alt_flash_dev_list); +} + +typedef alt_flash_dev* (*alt_flash_open)(alt_flash_dev* flash, + const char* name ); +typedef int (*alt_flash_close)(alt_flash_dev* flash_info); + +typedef int (*alt_flash_write)( alt_flash_dev* flash, int offset, + const void* src_addr, int length ); + +typedef int (*alt_flash_get_flash_info)( alt_flash_dev* flash, flash_region** info, + int* number_of_regions); +typedef int (*alt_flash_write_block)( alt_flash_dev* flash, int block_offset, + int data_offset, const void* data, + int length); +typedef int (*alt_flash_erase_block)( alt_flash_dev* flash, int offset); +typedef int (*alt_flash_read)(alt_flash_dev* flash, int offset, + void* dest_addr, int length ); + +struct alt_flash_dev +{ + alt_llist llist; + const char* name; + alt_flash_open open; + alt_flash_close close; + alt_flash_write write; + alt_flash_read read; + alt_flash_get_flash_info get_info; + alt_flash_erase_block erase_block; + alt_flash_write_block write_block; + void* base_addr; + int length; + int number_of_regions; + flash_region region_info[ALT_MAX_NUMBER_OF_FLASH_REGIONS]; +}; + +#endif /* __ALT_FLASH_DEV_H__ */ diff --git a/software/qsys_tutorial_hexs_bsp/HAL/inc/sys/alt_flash_types.h b/software/qsys_tutorial_hexs_bsp/HAL/inc/sys/alt_flash_types.h new file mode 100644 index 0000000..884cbf8 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/HAL/inc/sys/alt_flash_types.h @@ -0,0 +1,64 @@ +#ifndef __ALT_FLASH_TYPES_H__ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +/****************************************************************************** +* * +* Alt_flash_types.h - Some generic types and defines used by the flash code * +* * +* Author PRR * +* * +******************************************************************************/ +#define __ALT_FLASH_TYPES_H__ + +#ifndef ALT_MAX_NUMBER_OF_FLASH_REGIONS +#define ALT_MAX_NUMBER_OF_FLASH_REGIONS 8 +#endif /* ALT_MAX_NUMBER_OF_FLASH_REGIONS */ + +/* + * Description of a single Erase region + */ +typedef struct flash_region +{ + int offset; + int region_size; + int number_of_blocks; + int block_size; +}flash_region; + +#endif /* __ALT_FLASH_TYPES_H__ */ diff --git a/software/qsys_tutorial_hexs_bsp/HAL/inc/sys/alt_irq.h b/software/qsys_tutorial_hexs_bsp/HAL/inc/sys/alt_irq.h new file mode 100644 index 0000000..6666e52 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/HAL/inc/sys/alt_irq.h @@ -0,0 +1,245 @@ +#ifndef __ALT_IRQ_H__ +#define __ALT_IRQ_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2009 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/* + * alt_irq.h is the Nios II specific implementation of the interrupt controller + * interface. + * + * Nios II includes optional support for an external interrupt controller. + * When an external controller is present, the "Enhanced" interrupt API + * must be used to manage individual interrupts. The enhanced API also + * supports the processor's internal interrupt controller. Certain API + * members are accessible from either the "legacy" or "enhanced" interrpt + * API. + * + * Regardless of which API is in use, this file should be included by + * application code and device drivers that register ISRs or manage interrpts. + */ +#include + +#include "nios2.h" +#include "alt_types.h" +#include "system.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * Macros used by alt_irq_enabled + */ +#define ALT_IRQ_ENABLED 1 +#define ALT_IRQ_DISABLED 0 + +/* + * Number of available interrupts in internal interrupt controller. + */ +#define ALT_NIRQ NIOS2_NIRQ + +/* + * Used by alt_irq_disable_all() and alt_irq_enable_all(). + */ +typedef int alt_irq_context; + +/* ISR Prototype */ +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT +typedef void (*alt_isr_func)(void* isr_context); +#else +typedef void (*alt_isr_func)(void* isr_context, alt_u32 id); +#endif + +/* + * The following protypes and routines are supported by both + * the enhanced and legacy interrupt APIs + */ + +/* + * alt_irq_enabled can be called to determine if the processor's global + * interrupt enable is asserted. The return value is zero if interrupts + * are disabled, and non-zero otherwise. + * + * Whether the internal or external interrupt controller is present, + * individual interrupts may still be disabled. Use the other API to query + * a specific interrupt. + */ +static ALT_INLINE int ALT_ALWAYS_INLINE alt_irq_enabled (void) +{ + int status; + + NIOS2_READ_STATUS (status); + + return status & NIOS2_STATUS_PIE_MSK; +} + +/* + * alt_irq_disable_all() + * + * This routine inhibits all interrupts by negating the status register PIE + * bit. It returns the previous contents of the CPU status register (IRQ + * context) which can be used to restore the status register PIE bit to its + * state before this routine was called. + */ +static ALT_INLINE alt_irq_context ALT_ALWAYS_INLINE + alt_irq_disable_all (void) +{ + alt_irq_context context; + + NIOS2_READ_STATUS (context); + + NIOS2_WRITE_STATUS (context & ~NIOS2_STATUS_PIE_MSK); + + return context; +} + +/* + * alt_irq_enable_all() + * + * Enable all interrupts that were previously disabled by alt_irq_disable_all() + * + * This routine accepts a context to restore the CPU status register PIE bit + * to the state prior to a call to alt_irq_disable_all(). + + * In the case of nested calls to alt_irq_disable_all()/alt_irq_enable_all(), + * this means that alt_irq_enable_all() does not necessarily re-enable + * interrupts. + * + * This routine will perform a read-modify-write sequence to restore only + * status.PIE if the processor is configured with options that add additional + * writeable status register bits. These include the MMU, MPU, the enhanced + * interrupt controller port, and shadow registers. Otherwise, as a performance + * enhancement, status is overwritten with the prior context. + */ +static ALT_INLINE void ALT_ALWAYS_INLINE + alt_irq_enable_all (alt_irq_context context) +{ +#if (NIOS2_NUM_OF_SHADOW_REG_SETS > 0) || (defined NIOS2_EIC_PRESENT) || \ + (defined NIOS2_MMU_PRESENT) || (defined NIOS2_MPU_PRESENT) + alt_irq_context status; + + NIOS2_READ_STATUS (status); + + status &= ~NIOS2_STATUS_PIE_MSK; + status |= (context & NIOS2_STATUS_PIE_MSK); + + NIOS2_WRITE_STATUS (status); +#else + NIOS2_WRITE_STATUS (context); +#endif +} + +/* + * The function alt_irq_init() is defined within the auto-generated file + * alt_sys_init.c. This function calls the initilization macros for all + * interrupt controllers in the system at config time, before any other + * non-interrupt controller driver is initialized. + * + * The "base" parameter is ignored and only present for backwards-compatibility. + * It is recommended that NULL is passed in for the "base" parameter. + */ +extern void alt_irq_init (const void* base); + +/* + * alt_irq_cpu_enable_interrupts() enables the CPU to start taking interrupts. + */ +static ALT_INLINE void ALT_ALWAYS_INLINE + alt_irq_cpu_enable_interrupts () +{ + NIOS2_WRITE_STATUS(NIOS2_STATUS_PIE_MSK +#if defined(NIOS2_EIC_PRESENT) && (NIOS2_NUM_OF_SHADOW_REG_SETS > 0) + | NIOS2_STATUS_RSIE_MSK +#endif + ); +} + + +/* + * Prototypes for the enhanced interrupt API. + */ +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT +/* + * alt_ic_isr_register() can be used to register an interrupt handler. If the + * function is succesful, then the requested interrupt will be enabled upon + * return. + */ +extern int alt_ic_isr_register(alt_u32 ic_id, + alt_u32 irq, + alt_isr_func isr, + void *isr_context, + void *flags); + +/* + * alt_ic_irq_enable() and alt_ic_irq_disable() enable/disable a specific + * interrupt by using IRQ port and interrupt controller instance. + */ +int alt_ic_irq_enable (alt_u32 ic_id, alt_u32 irq); +int alt_ic_irq_disable(alt_u32 ic_id, alt_u32 irq); + + /* + * alt_ic_irq_enabled() indicates whether a specific interrupt, as + * specified by IRQ port and interrupt controller instance is enabled. + */ +alt_u32 alt_ic_irq_enabled(alt_u32 ic_id, alt_u32 irq); + +#else +/* + * Prototypes for the legacy interrupt API. + */ +#include "priv/alt_legacy_irq.h" +#endif + + +/* + * alt_irq_pending() returns a bit list of the current pending interrupts. + * This is used by alt_irq_handler() to determine which registered interrupt + * handlers should be called. + * + * This routine is only available for the Nios II internal interrupt + * controller. + */ +#ifndef NIOS2_EIC_PRESENT +static ALT_INLINE alt_u32 ALT_ALWAYS_INLINE alt_irq_pending (void) +{ + alt_u32 active; + + NIOS2_READ_IPENDING (active); + + return active; +} +#endif + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __ALT_IRQ_H__ */ diff --git a/software/qsys_tutorial_hexs_bsp/HAL/inc/sys/alt_irq_entry.h b/software/qsys_tutorial_hexs_bsp/HAL/inc/sys/alt_irq_entry.h new file mode 100644 index 0000000..e2008d9 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/HAL/inc/sys/alt_irq_entry.h @@ -0,0 +1,39 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/* + * This file pulls in the IRQ entry assembler and C code, which is only + * required if there are any interruptes in the system. + */ + +__asm__( "\n\t.globl alt_irq_entry" ); + +__asm__( "\n\t.globl alt_irq_handler" ); + diff --git a/software/qsys_tutorial_hexs_bsp/HAL/inc/sys/alt_license_reminder_ucosii.h b/software/qsys_tutorial_hexs_bsp/HAL/inc/sys/alt_license_reminder_ucosii.h new file mode 100644 index 0000000..2fe649c --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/HAL/inc/sys/alt_license_reminder_ucosii.h @@ -0,0 +1,77 @@ +#ifndef __ALT_LICENSE_REMINDER_UCOSII_H__ +#define __ALT_LICENSE_REMINDER_UCOSII_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#include + +#define ALT_LICENSE_REMINDER_UCOSII_STRING \ + "============== Software License Reminder ===============\n" \ + "\n" \ + "uC/OS-II is provided in source form for FREE evaluation,\n" \ + "for educational use, or for peaceful research. If you\n" \ + "plan on using uC/OS-II in a commercial product you need\n" \ + "to contact Micrium to properly license its use in your\n" \ + "product. Micrium provides ALL the source code on the\n" \ + "Altera distribution for your convenience and to help you\n" \ + "experience uC/OS-II. The fact that the source is provided\n" \ + "does NOT mean that you can use it without paying a\n" \ + "licensing fee. Please help us continue to provide the\n" \ + "Embedded community with the finest software available.\n" \ + "Your honesty is greatly appreciated.\n" \ + "\n" \ + "Please contact:\n" \ + "\n" \ + "M I C R I U M\n" \ + "949 Crestview Circle\n" \ + "Weston, FL 33327-1848\n" \ + "U.S.A.\n" \ + "\n" \ + "Phone : +1 954 217 2036\n" \ + "FAX : +1 954 217 2037\n" \ + "WEB : www.micrium.com\n" \ + "E-mail: Sales@Micrium.com\n" \ + "\n" \ + "========================================================\n" + +#define alt_license_reminder_ucosii() puts(ALT_LICENSE_REMINDER_UCOSII_STRING) + + +#endif /* __ALT_LICENSE_REMINDER_UCOSII_H__ */ + diff --git a/software/qsys_tutorial_hexs_bsp/HAL/inc/sys/alt_llist.h b/software/qsys_tutorial_hexs_bsp/HAL/inc/sys/alt_llist.h new file mode 100644 index 0000000..46f81ce --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/HAL/inc/sys/alt_llist.h @@ -0,0 +1,123 @@ +#ifndef __ALT_LIST_H__ +#define __ALT_LIST_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#include "alt_types.h" + +/* + * alt_llist.h defines structures and functions for use in manipulating linked + * lists. A list is considered to be constructed from a chain of objects of + * type alt_llist, with one object being defined to be the head element. + * + * A list is considered to be empty if it only contains the head element. + */ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * alt_llist is the structure used to represent an element within a linked + * list. + */ + +typedef struct alt_llist_s alt_llist; + +struct alt_llist_s { + alt_llist* next; /* Pointer to the next element in the list. */ + alt_llist* previous; /* Pointer to the previous element in the list. */ +}; + +/* + * ALT_LLIST_HEAD is a macro that can be used to create the head of a new + * linked list. This is named "head". The head element is initialised to + * represent an empty list. + */ + +#define ALT_LLIST_HEAD(head) alt_llist head = {&head, &head} + +/* + * ALT_LLIST_ENTRY is a macro used to define an uninitialised linked list + * entry. This is used to reserve space in structure initialisation for + * structures that inherit form alt_llist. + */ + +#define ALT_LLIST_ENTRY {0, 0} + +/* + * alt_llist_insert() insert adds the linked list entry "entry" as the + * first entry in the linked list "list". "list" is the list head element. + */ + +static ALT_INLINE void ALT_ALWAYS_INLINE alt_llist_insert(alt_llist* list, + alt_llist* entry) +{ + entry->previous = list; + entry->next = list->next; + + list->next->previous = entry; + list->next = entry; +} + +/* + * alt_llist_remove() is called to remove an element from a linked list. The + * input argument is the element to remove. + */ + +static ALT_INLINE void ALT_ALWAYS_INLINE alt_llist_remove(alt_llist* entry) +{ + entry->next->previous = entry->previous; + entry->previous->next = entry->next; + + /* + * Set the entry to point to itself, so that any further calls to + * alt_llist_remove() are harmless. + */ + + entry->previous = entry; + entry->next = entry; +} + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_LLIST_H__ */ diff --git a/software/qsys_tutorial_hexs_bsp/HAL/inc/sys/alt_load.h b/software/qsys_tutorial_hexs_bsp/HAL/inc/sys/alt_load.h new file mode 100644 index 0000000..432e9f2 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/HAL/inc/sys/alt_load.h @@ -0,0 +1,78 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2005 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "alt_types.h" + +/* + * This macro is used to load code/data from its load address to its + * execution address for a given section. The section name is the input + * argument. Note that a leading '.' is assumed in the name. For example + * to load the section .onchip_ram, use: + * + * ALT_LOAD_SECTION_BY_NAME(onchip_ram); + * + * This requires that the apropriate linker symbols have been generated + * for the section in question. This will be the case if you are using the + * default linker script. + */ + +#define ALT_LOAD_SECTION_BY_NAME(name) \ + { \ + extern void _alt_partition_##name##_start; \ + extern void _alt_partition_##name##_end; \ + extern void _alt_partition_##name##_load_addr; \ + \ + alt_load_section(&_alt_partition_##name##_load_addr, \ + &_alt_partition_##name##_start, \ + &_alt_partition_##name##_end); \ + } + +/* + * Function used to load an individual section from flash to RAM. + * + * There is an implicit assumption here that the linker script will ensure + * that all sections are word aligned. + * + */ + +static void ALT_INLINE alt_load_section (alt_u32* from, + alt_u32* to, + alt_u32* end) +{ + if (to != from) + { + while( to != end ) + { + *to++ = *from++; + } + } +} diff --git a/software/qsys_tutorial_hexs_bsp/HAL/inc/sys/alt_log_printf.h b/software/qsys_tutorial_hexs_bsp/HAL/inc/sys/alt_log_printf.h new file mode 100644 index 0000000..c15ca05 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/HAL/inc/sys/alt_log_printf.h @@ -0,0 +1,349 @@ +/* alt_log_printf.h + * + * ALT_LOG is designed to provide extra logging/debugging messages from HAL + * through a different port than stdout. It is enabled by the ALT_LOG_ENABLE + * define, which needs to supplied at compile time. When logging is turned off, + * code size is unaffected. Thus, this should be transparent to the user + * when it is not actively turned on, and should not affect projects in any way. + * + * There are macros sprinkled within different components, such as the jtag uart + * and timer, in the HAL code. They are always named ALT_LOG_, and can be + * safely ignored if ALT_LOG is turned off. + * + * To turn on ALT_LOG, ALT_LOG_ENABLE must be defined, and ALT_LOG_PORT_TYPE and + * ALT_LOG_PORT_BASE must be set in system.h. This is done through editing + * .ptf, by editing the alt_log_port_type & alt_log_port_base settings. + * See the documentation html file for examples. + * + * When it is turned on, it will output extra HAL messages to a port specified + * in system.h. This can be a UART or JTAG UART port. By default it will + * output boot messages, detailing every step of the boot process. + * + * Extra logging is designed to be enabled by flags, which are defined in + * alt_log_printf.c. The default value is that all flags are off, so only the + * boot up logging messages show up. ALT_LOG_FLAGS can be set to enable certain + * groupings of flags, and that grouping is done in this file. Each flag can + * also be overridden with a -D at compile time. + * + * This header file includes the necessary prototypes for using the alt_log + * functions. It also contains all the macros that are used to remove the code + * from alt log is turned off. Also, the macros in other HAL files are defined + * here at the bottom. These macros all call some C function that is in + * alt_log_printf.c. + * + * The logging has functions for printing in C (ALT_LOG_PRINTF) and in assembly + * (ALT_LOG_PUTS). This was needed because the assembly printing occurs before + * the device is initialized. The assembly function corrupts register R4-R7, + * which are not used in the normal boot process. For this reason, do not call + * the assembly function in C. + * + * author: gkwan + */ + + +#ifndef __ALT_LOG_PRINTF_H__ +#define __ALT_LOG_PRINTF_H__ + +#include + +/* Global switch to turn on logging functions */ +#ifdef ALT_LOG_ENABLE + + /* ALT_LOG_PORT_TYPE values as defined in system.h. They are defined as + * numbers here first becasue the C preprocessor does not handle string + * comparisons. */ + #define ALTERA_AVALON_JTAG_UART 1 + #define ALTERA_AVALON_UART 0 + + /* If this .h file is included by an assembly file, skip over include files + * that won't compile in assembly. */ + #ifndef ALT_ASM_SRC + #include + #include "sys/alt_alarm.h" + #include "sys/alt_dev.h" + #ifdef __ALTERA_AVALON_JTAG_UART + #include "altera_avalon_jtag_uart.h" + #endif + #endif /* ALT_ASM_SRC */ + + /* These are included for the port register offsets and masks, needed + * to write to the port. Only include if the port type is set correctly, + * otherwise error. If alt_log is turned on and the port to output to is + * incorrect or does not exist, then should exit. */ + #if ALT_LOG_PORT_TYPE == ALTERA_AVALON_JTAG_UART + #ifdef __ALTERA_AVALON_JTAG_UART + #include + #else + #error ALT_LOG: JTAG_UART port chosen, but no JTAG_UART in system. + #endif + #elif ALT_LOG_PORT_TYPE == ALTERA_AVALON_UART + #ifdef __ALTERA_AVALON_UART + #include + #else + #error ALT_LOG: UART Port chosen, but no UART in system. + #endif + #else + #error ALT_LOG: alt_log_port_type declaration invalid! + #endif + + /* ALT_LOG_ENABLE turns on the basic printing function */ + #define ALT_LOG_PRINTF(...) do {alt_log_printf_proc(__VA_ARGS__);} while (0) + + /* Assembly macro for printing in assembly, calls tx_log_str + * which is in alt_log_macro.S. + * If alt_log_boot_on_flag is 0, skips the printing */ + #define ALT_LOG_PUTS(str) movhi r4, %hiadj(alt_log_boot_on_flag) ; \ + addi r4, r4, %lo(alt_log_boot_on_flag) ; \ + ldwio r5, 0(r4) ; \ + beq r0, r5, 0f ; \ + movhi r4, %hiadj(str) ; \ + addi r4, r4, %lo(str) ; \ + call tx_log_str ; \ + 0: + + /* These defines are here to faciliate the use of one output function + * (alt_log_txchar) to print to both the JTAG UART or the UART. Depending + * on the port type, the status register, read mask, and output register + * are set to the appropriate value for the port. */ + #if ALT_LOG_PORT_TYPE == ALTERA_AVALON_JTAG_UART + #define ALT_LOG_PRINT_REG_RD IORD_ALTERA_AVALON_JTAG_UART_CONTROL + #define ALT_LOG_PRINT_MSK ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_MSK + #define ALT_LOG_PRINT_TXDATA_WR IOWR_ALTERA_AVALON_JTAG_UART_DATA + #define ALT_LOG_PRINT_REG_OFFSET (ALTERA_AVALON_JTAG_UART_CONTROL_REG*0x4) + #define ALT_LOG_PRINT_TXDATA_REG_OFFSET (ALTERA_AVALON_JTAG_UART_DATA_REG*0x4) + #elif ALT_LOG_PORT_TYPE == ALTERA_AVALON_UART + #define ALT_LOG_PRINT_REG_RD IORD_ALTERA_AVALON_UART_STATUS + #define ALT_LOG_PRINT_MSK ALTERA_AVALON_UART_STATUS_TRDY_MSK + #define ALT_LOG_PRINT_TXDATA_WR IOWR_ALTERA_AVALON_UART_TXDATA + #define ALT_LOG_PRINT_REG_OFFSET (ALTERA_AVALON_UART_STATUS_REG*0x4) + #define ALT_LOG_PRINT_TXDATA_REG_OFFSET (ALTERA_AVALON_UART_TXDATA_REG*0x4) + #endif /* ALT_LOG_PORT */ + + /* Grouping of flags via ALT_LOG_FLAGS. Each specific flag can be set via + * -D at compile time, or else they'll be set to a default value according + * to ALT_LOG_FLAGS. ALT_LOG_FLAGS = 0 or not set is the default, where + * only the boot messages will be printed. As ALT_LOG_FLAGS increase, they + * increase in intrusiveness to the program, and will affect performance. + * + * Flag Level 1 - turns on system clock and JTAG UART startup status + * 2 - turns on write echo and JTAG_UART alarm (periodic report) + * 3 - turns on JTAG UART ISR logging - will slow performance + * significantly. + * -1 - All logging output is off, but if ALT_LOG_ENABLE is + * defined all logging function is built and code size + * remains constant + * + * Flag settings - 1 = on, 0 = off. */ + + /* This flag turns on "boot" messages for printing. This includes messages + * during crt0.S, then alt_main, and finally alt_exit. */ + #ifndef ALT_LOG_BOOT_ON_FLAG_SETTING + #if ALT_LOG_FLAGS == 1 + #define ALT_LOG_BOOT_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == 2 + #define ALT_LOG_BOOT_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == 3 + #define ALT_LOG_BOOT_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == -1 /* silent mode */ + #define ALT_LOG_BOOT_ON_FLAG_SETTING 0x0 + #else /* default setting */ + #define ALT_LOG_BOOT_ON_FLAG_SETTING 0x1 + #endif + #endif /* ALT_LOG_BOOT_ON_FLAG_SETTING */ + + #ifndef ALT_LOG_SYS_CLK_ON_FLAG_SETTING + #if ALT_LOG_FLAGS == 1 + #define ALT_LOG_SYS_CLK_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == 2 + #define ALT_LOG_SYS_CLK_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == 3 + #define ALT_LOG_SYS_CLK_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == -1 /* silent mode */ + #define ALT_LOG_SYS_CLK_ON_FLAG_SETTING 0x0 + #else /* default setting */ + #define ALT_LOG_SYS_CLK_ON_FLAG_SETTING 0x0 + #endif + #endif /* ALT_LOG_SYS_CLK_ON_FLAG_SETTING */ + + #ifndef ALT_LOG_WRITE_ON_FLAG_SETTING + #if ALT_LOG_FLAGS == 1 + #define ALT_LOG_WRITE_ON_FLAG_SETTING 0x0 + #elif ALT_LOG_FLAGS == 2 + #define ALT_LOG_WRITE_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == 3 + #define ALT_LOG_WRITE_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == -1 /* silent mode */ + #define ALT_LOG_WRITE_ON_FLAG_SETTING 0x0 + #else /* default setting */ + #define ALT_LOG_WRITE_ON_FLAG_SETTING 0x0 + #endif + #endif /* ALT_LOG_WRITE_ON_FLAG_SETTING */ + + #ifndef ALT_LOG_JTAG_UART_ALARM_ON_FLAG_SETTING + #ifndef __ALTERA_AVALON_JTAG_UART + #define ALT_LOG_JTAG_UART_ALARM_ON_FLAG_SETTING 0x0 + #elif ALT_LOG_FLAGS == 1 + #define ALT_LOG_JTAG_UART_ALARM_ON_FLAG_SETTING 0x0 + #elif ALT_LOG_FLAGS == 2 + #define ALT_LOG_JTAG_UART_ALARM_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == 3 + #define ALT_LOG_JTAG_UART_ALARM_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == -1 /* silent mode */ + #define ALT_LOG_JTAG_UART_ALARM_ON_FLAG_SETTING 0x0 + #else /* default setting */ + #define ALT_LOG_JTAG_UART_ALARM_ON_FLAG_SETTING 0x0 + #endif + #endif /* ALT_LOG_JTAG_UART_ALARM_ON_FLAG_SETTING */ + + #ifndef ALT_LOG_JTAG_UART_STARTUP_INFO_ON_FLAG_SETTING + #ifndef __ALTERA_AVALON_JTAG_UART + #define ALT_LOG_JTAG_UART_STARTUP_INFO_ON_FLAG_SETTING 0x0 + #elif ALT_LOG_FLAGS == 1 + #define ALT_LOG_JTAG_UART_STARTUP_INFO_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == 2 + #define ALT_LOG_JTAG_UART_STARTUP_INFO_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == 3 + #define ALT_LOG_JTAG_UART_STARTUP_INFO_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == -1 /* silent mode */ + #define ALT_LOG_JTAG_UART_STARTUP_INFO_ON_FLAG_SETTING 0x0 + #else /* default setting */ + #define ALT_LOG_JTAG_UART_STARTUP_INFO_ON_FLAG_SETTING 0x0 + #endif + #endif /* ALT_LOG_JTAG_UART_STARTUP_INFO_FLAG_SETTING */ + + #ifndef ALT_LOG_JTAG_UART_ISR_ON_FLAG_SETTING + #ifndef __ALTERA_AVALON_JTAG_UART + #define ALT_LOG_JTAG_UART_ISR_ON_FLAG_SETTING 0x0 + #elif ALT_LOG_FLAGS == 1 + #define ALT_LOG_JTAG_UART_ISR_ON_FLAG_SETTING 0x0 + #elif ALT_LOG_FLAGS == 2 + #define ALT_LOG_JTAG_UART_ISR_ON_FLAG_SETTING 0x0 + #elif ALT_LOG_FLAGS == 3 + #define ALT_LOG_JTAG_UART_ISR_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == -1 /* silent mode */ + #define ALT_LOG_JTAG_UART_ISR_ON_FLAG_SETTING 0x0 + #else /* default setting */ + #define ALT_LOG_JTAG_UART_ISR_ON_FLAG_SETTING 0x0 + #endif + #endif /* ALT_LOG_JTAG_UART_ISR_ON_FLAG_SETTING */ + +#ifndef ALT_ASM_SRC + /* Function Prototypes */ + void alt_log_txchar(int c,char *uartBase); + void alt_log_private_printf(const char *fmt,int base,va_list args); + void alt_log_repchar(char c,int r,int base); + int alt_log_printf_proc(const char *fmt, ... ); + void alt_log_system_clock(); + #ifdef __ALTERA_AVALON_JTAG_UART + alt_u32 altera_avalon_jtag_uart_report_log(void * context); + void alt_log_jtag_uart_startup_info(altera_avalon_jtag_uart_state* dev, int base); + void alt_log_jtag_uart_print_control_reg(altera_avalon_jtag_uart_state* dev, \ + int base, const char* header); + void alt_log_jtag_uart_isr_proc(int base, altera_avalon_jtag_uart_state* dev); + #endif + void alt_log_write(const void *ptr, size_t len); + + /* extern all global variables */ + extern volatile alt_u32 alt_log_boot_on_flag; + extern volatile alt_u8 alt_log_write_on_flag; + extern volatile alt_u8 alt_log_sys_clk_on_flag; + extern volatile alt_u8 alt_log_jtag_uart_alarm_on_flag; + extern volatile alt_u8 alt_log_jtag_uart_isr_on_flag; + extern volatile alt_u8 alt_log_jtag_uart_startup_info_on_flag; + extern volatile int alt_log_sys_clk_count; + extern volatile int alt_system_clock_in_sec; + extern alt_alarm alt_log_jtag_uart_alarm_1; +#endif /* ALT_ASM_SRC */ + + + /* Below are the MACRO defines used in various HAL files. They check + * if their specific flag is turned on; if it is, then it executes its + * code. + * + * To keep this file reasonable, most of these macros calls functions, + * which are defined in alt_log_printf.c. Look there for implementation + * details. */ + + /* Boot Messages Logging */ + #define ALT_LOG_PRINT_BOOT(...) \ + do { if (alt_log_boot_on_flag==1) {ALT_LOG_PRINTF(__VA_ARGS__);} \ + } while (0) + + /* JTAG UART Logging */ + /* number of ticks before alarm runs logging function */ + #ifndef ALT_LOG_JTAG_UART_TICKS_DIVISOR + #define ALT_LOG_JTAG_UART_TICKS_DIVISOR 10 + #endif + #ifndef ALT_LOG_JTAG_UART_TICKS + #define ALT_LOG_JTAG_UART_TICKS \ + (alt_ticks_per_second()/ALT_LOG_JTAG_UART_TICKS_DIVISOR) + #endif + + /* if there's a JTAG UART defined, then enable these macros */ + #ifdef __ALTERA_AVALON_JTAG_UART + + /* Macro in altera_avalon_jtag_uart.c, to register the alarm function. + * Also, the startup register info is also printed here, as this is + * called within the device driver initialization. */ + #define ALT_LOG_JTAG_UART_ALARM_REGISTER(dev, base) \ + do { if (alt_log_jtag_uart_alarm_on_flag==1) { \ + alt_alarm_start(&alt_log_jtag_uart_alarm_1, \ + ALT_LOG_JTAG_UART_TICKS, &altera_avalon_jtag_uart_report_log,\ + dev);} \ + if (alt_log_jtag_uart_startup_info_on_flag==1) {\ + alt_log_jtag_uart_startup_info(dev, base);} \ + } while (0) + + /* JTAG UART IRQ Logging (when buffer is empty) + * Inserted in the ISR in altera_avalon_jtag_uart.c */ + #define ALT_LOG_JTAG_UART_ISR_FUNCTION(base, dev) \ + do { alt_log_jtag_uart_isr_proc(base, dev); } while (0) + /* else, define macros to nothing. Or else the jtag_uart specific types + * will throw compiler errors */ + #else + #define ALT_LOG_JTAG_UART_ALARM_REGISTER(dev, base) + #define ALT_LOG_JTAG_UART_ISR_FUNCTION(base, dev) + #endif + + /* System clock logging + * How often (in seconds) the system clock logging prints. + * The default value is every 1 second */ + #ifndef ALT_LOG_SYS_CLK_INTERVAL_MULTIPLIER + #define ALT_LOG_SYS_CLK_INTERVAL_MULTIPLIER 1 + #endif + #ifndef ALT_LOG_SYS_CLK_INTERVAL + #define ALT_LOG_SYS_CLK_INTERVAL \ + (alt_ticks_per_second()*ALT_LOG_SYS_CLK_INTERVAL_MULTIPLIER) + #endif + + /* System clock logging - prints a message every interval (set above) + * to show that the system clock is alive. + * This macro is used in altera_avalon_timer_sc.c */ + #define ALT_LOG_SYS_CLK_HEARTBEAT() \ + do { alt_log_system_clock(); } while (0) + + /* alt_write_logging - echos a message every time write() is called, + * displays the first ALT_LOG_WRITE_ECHO_LEN characters. + * This macro is used in alt_write.c */ + #ifndef ALT_LOG_WRITE_ECHO_LEN + #define ALT_LOG_WRITE_ECHO_LEN 15 + #endif + + #define ALT_LOG_WRITE_FUNCTION(ptr,len) \ + do { alt_log_write(ptr,len); } while (0) + +#else /* ALT_LOG_ENABLE not defined */ + + /* logging is off, set all relevant macros to null */ + #define ALT_LOG_PRINT_BOOT(...) + #define ALT_LOG_PRINTF(...) + #define ALT_LOG_JTAG_UART_ISR_FUNCTION(base, dev) + #define ALT_LOG_JTAG_UART_ALARM_REGISTER(dev, base) + #define ALT_LOG_SYS_CLK_HEARTBEAT() + #define ALT_LOG_PUTS(str) + #define ALT_LOG_WRITE_FUNCTION(ptr,len) + +#endif /* ALT_LOG_ENABLE */ + +#endif /* __ALT_LOG_PRINTF_H__ */ + diff --git a/software/qsys_tutorial_hexs_bsp/HAL/inc/sys/alt_set_args.h b/software/qsys_tutorial_hexs_bsp/HAL/inc/sys/alt_set_args.h new file mode 100644 index 0000000..3750e67 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/HAL/inc/sys/alt_set_args.h @@ -0,0 +1,71 @@ +#ifndef __ALT_SET_ARGS_H__ +#define __ALT_SET_ARGS_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * The function alt_set_args() is provided in order to define the input + * arguments to main(). If this function is not called before main() then the + * argument list passed to main() will be empty. + * + * It is expected that this function will only be used by the ihost/iclient + * utility. + */ + +static inline void alt_set_args (int argc, char** argv, char** envp) +{ + extern int alt_argc; + extern char** alt_argv; + extern char** alt_envp; + + alt_argc = argc; + alt_argv = argv; + alt_envp = envp; +} + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_SET_ARGS_H__ */ diff --git a/software/qsys_tutorial_hexs_bsp/HAL/inc/sys/alt_sim.h b/software/qsys_tutorial_hexs_bsp/HAL/inc/sys/alt_sim.h new file mode 100644 index 0000000..06bd27a --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/HAL/inc/sys/alt_sim.h @@ -0,0 +1,91 @@ +#ifndef __ALT_SIM_H__ +#define __ALT_SIM_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2007 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ +#include "system.h" +#include "alt_types.h" + +/* + * Instructions that might mean something special to a simulator. + * These have no special effect on real hardware (they are just nops). + */ +#define ALT_SIM_FAIL() \ + do { __asm volatile ("cmpltui r0, r0, 0xabc1"); } while (0) + +#define ALT_SIM_PASS() \ + do { __asm volatile ("cmpltui r0, r0, 0xabc2"); } while (0) + +#define ALT_SIM_IN_TOP_OF_HOT_LOOP() \ + do { __asm volatile ("cmpltui r0, r0, 0xabc3"); } while (0) + +/* + * Routine called on exit. + */ +static ALT_ALWAYS_INLINE void alt_sim_halt(int exit_code) +{ + int r2 = exit_code; + +#if defined(NIOS2_HAS_DEBUG_STUB) && (defined(ALT_BREAK_ON_EXIT) || defined(ALT_PROVIDE_GMON)) + + int r3 = (1 << 2); + +#ifdef ALT_PROVIDE_GMON + extern unsigned int alt_gmon_data[]; + int r4 = (int)alt_gmon_data; + r3 |= (1 << 4); +#define ALT_GMON_DATA ,"D04"(r4) +#else +#define ALT_GMON_DATA +#endif /* ALT_PROVIDE_GMON */ + + if (r2) { + ALT_SIM_FAIL(); + } else { + ALT_SIM_PASS(); + } + + __asm__ volatile ("\n0:\n\taddi %0,%0, -1\n\tbgt %0,zero,0b" : : "r" (ALT_CPU_FREQ/100) ); /* Delay for >30ms */ + + __asm__ volatile ("break 2" : : "D02"(r2), "D03"(r3) ALT_GMON_DATA ); + +#else /* !DEBUG_STUB */ + if (r2) { + ALT_SIM_FAIL(); + } else { + ALT_SIM_PASS(); + } +#endif /* DEBUG_STUB */ +} + +#define ALT_SIM_HALT(exit_code) \ + alt_sim_halt(exit_code) + +#endif /* __ALT_SIM_H__ */ diff --git a/software/qsys_tutorial_hexs_bsp/HAL/inc/sys/alt_stack.h b/software/qsys_tutorial_hexs_bsp/HAL/inc/sys/alt_stack.h new file mode 100644 index 0000000..e30652a --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/HAL/inc/sys/alt_stack.h @@ -0,0 +1,126 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#ifndef __ALT_STACK_H__ +#define __ALT_STACK_H__ + +/* + * alt_stack.h is the nios2 specific implementation of functions used by the + * stack overflow code. + */ + +#include "nios2.h" + +#include "alt_types.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + + +extern char * alt_stack_limit_value; + +#ifdef ALT_EXCEPTION_STACK +extern char __alt_exception_stack_pointer[]; /* set by the linker */ +#endif /* ALT_EXCEPTION_STACK */ + + +/* + * alt_stack_limit can be called to determine the current value of the stack + * limit register. + */ + +static ALT_INLINE char * ALT_ALWAYS_INLINE alt_stack_limit (void) +{ + char * limit; + NIOS2_READ_ET(limit); + + return limit; +} + +/* + * alt_stack_pointer can be called to determine the current value of the stack + * pointer register. + */ + +static ALT_INLINE char * ALT_ALWAYS_INLINE alt_stack_pointer (void) +{ + char * pointer; + NIOS2_READ_SP(pointer); + + return pointer; +} + + +#ifdef ALT_EXCEPTION_STACK + +/* + * alt_exception_stack_pointer returns the normal stack pointer from + * where it is stored on the exception stack (uppermost 4 bytes). This + * is really only useful during exception processing, and is only + * available if a separate exception stack has been configured. + */ + +static ALT_INLINE char * ALT_ALWAYS_INLINE alt_exception_stack_pointer (void) +{ + return (char *) *(alt_u32 *)(__alt_exception_stack_pointer - sizeof(alt_u32)); +} + +#endif /* ALT_EXCEPTION_STACK */ + + +/* + * alt_set_stack_limit can be called to update the current value of the stack + * limit register. + */ + +static ALT_INLINE void ALT_ALWAYS_INLINE alt_set_stack_limit (char * limit) +{ + alt_stack_limit_value = limit; + NIOS2_WRITE_ET(limit); +} + +/* + * alt_report_stack_overflow reports that a stack overflow happened. + */ + +static ALT_INLINE void ALT_ALWAYS_INLINE alt_report_stack_overflow (void) +{ + NIOS2_REPORT_STACK_OVERFLOW(); +} + + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __ALT_STACK_H__ */ + diff --git a/software/qsys_tutorial_hexs_bsp/HAL/inc/sys/alt_stdio.h b/software/qsys_tutorial_hexs_bsp/HAL/inc/sys/alt_stdio.h new file mode 100644 index 0000000..1730360 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/HAL/inc/sys/alt_stdio.h @@ -0,0 +1,62 @@ +#ifndef __ALT_STDIO_H__ +#define __ALT_STDIO_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +/* + * Definitions for ALT stdio routines. + */ + +#include + + +#ifdef __cplusplus +extern "C" { +#endif + +int alt_getchar(); +int alt_putchar(int c); +int alt_putstr(const char* str); +void alt_printf(const char *fmt, ...); + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_STDIO_H__ */ diff --git a/software/qsys_tutorial_hexs_bsp/HAL/inc/sys/alt_sys_init.h b/software/qsys_tutorial_hexs_bsp/HAL/inc/sys/alt_sys_init.h new file mode 100644 index 0000000..e4abc28 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/HAL/inc/sys/alt_sys_init.h @@ -0,0 +1,62 @@ +#ifndef __ALT_SYS_INIT_H__ +#define __ALT_SYS_INIT_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * The function alt_sys_init() is defined within the auto-generated file: + * alt_sys_init.c. This function calls the initilisation macros for all + * devices, file systems, and software components within the system. + * + * The list of initilisation macros to use is constructed using the PTF and + * STF files associated with the system. + */ + +extern void alt_sys_init (void); + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_SYS_INIT_H__ */ diff --git a/software/qsys_tutorial_hexs_bsp/HAL/inc/sys/alt_sys_wrappers.h b/software/qsys_tutorial_hexs_bsp/HAL/inc/sys/alt_sys_wrappers.h new file mode 100644 index 0000000..044833b --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/HAL/inc/sys/alt_sys_wrappers.h @@ -0,0 +1,100 @@ +#ifndef __ALT_SYS_WRAPPERS_H__ +#define __ALT_SYS_WRAPPERS_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/* + * This file provides the prototypes for the HAL 'UNIX style functions. The + * names of these functions are defined in alt_syscall.h. THese are defined to + * be the standard names when running the standalone HAL, e.g. open(), close() + * etc., but the names may be redefined as a part of an operating system port + * in order to avoid name clashes. + */ + +#include "os/alt_syscall.h" + +#include +#include +#include +#include +#include +#include + +extern int ALT_CLOSE (int __fd); +extern int ALT_EXECVE (const char *__path, + char * const __argv[], + char * const __envp[]); +extern void ALT_EXIT (int __status); +extern int ALT_FSTAT (int file, struct stat *st); +extern int ALT_FCNTL (int file, int cmd, ...); +extern pid_t ALT_FORK (void); +extern pid_t ALT_GETPID (void); + +#if defined (__GNUC__) && __GNUC__ >= 4 +extern int ALT_GETTIMEOFDAY (struct timeval *ptimeval, + void *ptimezone); +#else +extern int ALT_GETTIMEOFDAY (struct timeval *ptimeval, + struct timezone *ptimezone); +#endif + +extern int ALT_IOCTL (int file, int req, void* arg); +extern int ALT_ISATTY (int file); +extern int ALT_KILL (int pid, int sig); +extern int ALT_LINK (const char *existing, const char *new); +extern off_t ALT_LSEEK (int file, off_t ptr, int dir); +extern int ALT_OPEN (const char* file, int flags, ...); +extern int ALT_READ (int file, void *ptr, size_t len); +extern int ALT_RENAME (char *existing, char *new); +extern void* ALT_SBRK (ptrdiff_t incr); +extern int ALT_SETTIMEOFDAY (const struct timeval *t, + const struct timezone *tz); +extern int ALT_STAT (const char *file, struct stat *st); +extern clock_t ALT_TIMES (struct tms *buf); +extern int ALT_UNLINK (const char *name); + +#if defined (__GNUC__) && __GNUC__ >= 4 +int ALT_USLEEP (useconds_t us); +#else +unsigned int ALT_USLEEP (unsigned int us); +#endif + +extern int ALT_WAIT (int *status); +extern int ALT_WRITE (int file, const void *ptr, size_t len); + + +extern char** ALT_ENVIRON; + +/* + * + */ + +#endif /* __ALT_SYS_WRAPPERS_H__ */ diff --git a/software/qsys_tutorial_hexs_bsp/HAL/inc/sys/alt_timestamp.h b/software/qsys_tutorial_hexs_bsp/HAL/inc/sys/alt_timestamp.h new file mode 100644 index 0000000..8a18da2 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/HAL/inc/sys/alt_timestamp.h @@ -0,0 +1,60 @@ +#ifndef __ALT_TIMESTAMP_H__ +#define __ALT_TIMESTAMP_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#include "alt_types.h" +#include "altera_avalon_timer.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +extern int alt_timestamp_start (void); + +extern alt_timestamp_type alt_timestamp (void); + +extern alt_u32 alt_timestamp_freq (void); + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_TIMESTAMP_H__ */ diff --git a/software/qsys_tutorial_hexs_bsp/HAL/inc/sys/alt_warning.h b/software/qsys_tutorial_hexs_bsp/HAL/inc/sys/alt_warning.h new file mode 100644 index 0000000..b66e71a --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/HAL/inc/sys/alt_warning.h @@ -0,0 +1,75 @@ +#ifndef __WARNING_H__ +#define __WARNING_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/* + * alt_warning.h provides macro definitions that can be used to generate link + * time warnings. + */ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * The symbol "__alt_invalid" is used to force a link error. There should be + * no corresponding implementation of this function. + */ + +extern void __alt_invalid (void); + +#define ALT_LINK_WARNING(symbol, msg) \ + __asm__(".ifndef __evoke_link_warning_" #symbol \ + "\n\t .section .gnu.warning." #symbol \ + "\n__evoke_link_warning_" #symbol ":\n\t .string \x22" msg "\x22 \n\t .previous" \ + "\n .endif"); + +/* A canned warning for sysdeps/stub functions. */ + +#define ALT_STUB_WARNING(name) \ + ALT_LINK_WARNING (name, \ + "warning: " #name " is not implemented and will always fail") + +#define ALT_OBSOLETE_FUNCTION_WARNING(name) \ + ALT_LINK_WARNING (name, \ + "warning: " #name " is a deprecated function") + +#define ALT_LINK_ERROR(msg) \ + ALT_LINK_WARNING (__alt_invalid, msg); \ + __alt_invalid() + +#ifdef __cplusplus +} +#endif + +#endif /* __WARNING_H__ */ diff --git a/software/qsys_tutorial_hexs_bsp/HAL/inc/sys/ioctl.h b/software/qsys_tutorial_hexs_bsp/HAL/inc/sys/ioctl.h new file mode 100644 index 0000000..4d565df --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/HAL/inc/sys/ioctl.h @@ -0,0 +1,90 @@ +#ifndef __IOCTL_H__ +#define __IOCTL_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * The ioctl() system call be used to initiate a variety of control operations + * on a file descriptor. For the most part this simply translates to a call to + * the ioctl() function of the associated device driver (TIOCEXCL and + * TIOCNXCL are notable exceptions - see ioctl.c for details). + * + * The interpretation of the ioctl requests are therefore device specific. + * + * This function is equivalent to the standard Posix ioctl() call. + */ + +extern int ioctl (int fd, int req, void* arg); + +/* + * list of ioctl calls handled by the system ioctl implementation. + */ + +#define TIOCEXCL 0x740d /* exclusive use of the device */ +#define TIOCNXCL 0x740e /* allow multiple use of the device */ + +/* + * ioctl calls which can be handled by device drivers. + */ + +#define TIOCOUTQ 0x7472 /* get output queue size */ +#define TIOCMGET 0x741d /* get termios flags */ +#define TIOCMSET 0x741a /* set termios flags */ + +/* + * ioctl calls specific to JTAG UART. + */ + +#define TIOCSTIMEOUT 0x6a01 /* Set Timeout before assuming no host present */ +#define TIOCGCONNECTED 0x6a02 /* Get indication of whether host is connected */ + +/* + * + */ + +#ifdef __cplusplus +} +#endif + +#endif /* __IOCTL_H__ */ diff --git a/software/qsys_tutorial_hexs_bsp/HAL/inc/sys/termios.h b/software/qsys_tutorial_hexs_bsp/HAL/inc/sys/termios.h new file mode 100644 index 0000000..cd09539 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/HAL/inc/sys/termios.h @@ -0,0 +1,181 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +/* + * This is the termios.h file provided with newlib. The only modification has + * been to the baud rate macro definitions, and an increase in the size of the + * termios structure to accomodate this. + */ + + +#ifndef _SYS_TERMIOS_H +# define _SYS_TERMIOS_H + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +# define _XCGETA (('x'<<8)|1) +# define _XCSETA (('x'<<8)|2) +# define _XCSETAW (('x'<<8)|3) +# define _XCSETAF (('x'<<8)|4) +# define _TCSBRK (('T'<<8)|5) +# define _TCFLSH (('T'<<8)|7) +# define _TCXONC (('T'<<8)|6) + +# define TCOOFF 0 +# define TCOON 1 +# define TCIOFF 2 +# define TCION 3 + +# define TCIFLUSH 0 +# define TCOFLUSH 1 +# define TCIOFLUSH 2 + +# define NCCS 13 + +# define TCSAFLUSH _XCSETAF +# define TCSANOW _XCSETA +# define TCSADRAIN _XCSETAW +# define TCSADFLUSH _XCSETAF + +# define IGNBRK 000001 +# define BRKINT 000002 +# define IGNPAR 000004 +# define INPCK 000020 +# define ISTRIP 000040 +# define INLCR 000100 +# define IGNCR 000200 +# define ICRNL 000400 +# define IXON 002000 +# define IXOFF 010000 + +# define OPOST 000001 +# define OCRNL 000004 +# define ONLCR 000010 +# define ONOCR 000020 +# define TAB3 014000 + +# define CLOCAL 004000 +# define CREAD 000200 +# define CSIZE 000060 +# define CS5 0 +# define CS6 020 +# define CS7 040 +# define CS8 060 +# define CSTOPB 000100 +# define HUPCL 002000 +# define PARENB 000400 +# define PAODD 001000 + +#define CCTS_OFLOW 010000 +#define CRTS_IFLOW 020000 +#define CRTSCTS (CCTS_OFLOW | CRTS_IFLOW) + +# define ECHO 0000010 +# define ECHOE 0000020 +# define ECHOK 0000040 +# define ECHONL 0000100 +# define ICANON 0000002 +# define IEXTEN 0000400 /* anybody know *what* this does?! */ +# define ISIG 0000001 +# define NOFLSH 0000200 +# define TOSTOP 0001000 + +# define VEOF 4 /* also VMIN -- thanks, AT&T */ +# define VEOL 5 /* also VTIME -- thanks again */ +# define VERASE 2 +# define VINTR 0 +# define VKILL 3 +# define VMIN 4 /* also VEOF */ +# define VQUIT 1 +# define VSUSP 10 +# define VTIME 5 /* also VEOL */ +# define VSTART 11 +# define VSTOP 12 + +# define B0 0 +# define B50 50 +# define B75 75 +# define B110 110 +# define B134 134 +# define B150 150 +# define B200 200 +# define B300 300 +# define B600 600 +# define B1200 1200 +# define B1800 1800 +# define B2400 2400 +# define B4800 4800 +# define B9600 9600 +# define B19200 19200 +# define B38400 38400 +# define B57600 57600 +# define B115200 115200 + +typedef unsigned char cc_t; +typedef unsigned short tcflag_t; +typedef unsigned long speed_t; + +struct termios { + tcflag_t c_iflag; + tcflag_t c_oflag; + tcflag_t c_cflag; + tcflag_t c_lflag; + char c_line; + cc_t c_cc[NCCS]; + speed_t c_ispeed; + speed_t c_ospeed; +}; + +# ifndef _NO_MACROS + +# define cfgetospeed(tp) ((tp)->c_ospeed) +# define cfgetispeed(tp) ((tp)->c_ispeed) +# define cfsetospeed(tp,s) (((tp)->c_ospeed = (s)), 0) +# define cfsetispeed(tp,s) (((tp)->c_ispeed = (s)), 0) +# define tcdrain(fd) _ioctl (fd, _TCSBRK, 1) +# endif /* _NO_MACROS */ + +#ifdef __cplusplus +} +#endif + +#endif /* _SYS_TERMIOS_H */ + diff --git a/software/qsys_tutorial_hexs_bsp/HAL/src/alt_alarm_start.c b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_alarm_start.c new file mode 100644 index 0000000..7739959 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_alarm_start.c @@ -0,0 +1,112 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +#include "sys/alt_alarm.h" +#include "sys/alt_irq.h" + +/* + * alt_alarm_start is called to register an alarm with the system. The + * "alarm" structure passed as an input argument does not need to be + * initialised by the user. This is done within this function. + * + * The remaining input arguments are: + * + * nticks - The time to elapse until the alarm executes. This is specified in + * system clock ticks. + * callback - The function to run when the indicated time has elapsed. + * context - An opaque value, passed to the callback function. +* + * Care should be taken when defining the callback function since it is + * likely to execute in interrupt context. In particular, this mean that + * library calls like printf() should not be made, since they can result in + * deadlock. + * + * The interval to be used for the next callback is the return + * value from the callback function. A return value of zero indicates that the + * alarm should be unregistered. + * + * alt_alarm_start() will fail if the timer facility has not been enabled + * (i.e. there is no system clock). Failure is indicated by a negative return + * value. + */ + +int alt_alarm_start (alt_alarm* alarm, alt_u32 nticks, + alt_u32 (*callback) (void* context), + void* context) +{ + alt_irq_context irq_context; + alt_u32 current_nticks = 0; + + if (alt_ticks_per_second ()) + { + if (alarm) + { + alarm->callback = callback; + alarm->context = context; + + irq_context = alt_irq_disable_all (); + + current_nticks = alt_nticks(); + + alarm->time = nticks + current_nticks + 1; + + /* + * If the desired alarm time causes a roll-over, set the rollover + * flag. This will prevent the subsequent tick event from causing + * an alarm too early. + */ + if(alarm->time < current_nticks) + { + alarm->rollover = 1; + } + else + { + alarm->rollover = 0; + } + + alt_llist_insert (&alt_alarm_list, &alarm->llist); + alt_irq_enable_all (irq_context); + + return 0; + } + else + { + return -EINVAL; + } + } + else + { + return -ENOTSUP; + } +} diff --git a/software/qsys_tutorial_hexs_bsp/HAL/src/alt_busy_sleep.c b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_busy_sleep.c new file mode 100644 index 0000000..561c0be --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_busy_sleep.c @@ -0,0 +1,133 @@ +/* + * Copyright (c) 2003-2004 Altera Corporation, San Jose, California, USA. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + * ------------ + * + * Altera does not recommend, suggest or require that this reference design + * file be used in conjunction or combination with any other product. + * + * alt_busy_sleep.c - Microsecond delay routine which uses a calibrated busy + * loop to perform the delay. This is used to implement + * usleep for both uC/OS-II and the standalone HAL. + * + * Author PRR + * + * Calibrated delay with no timer required + * + * The ASM instructions in the routine are equivalent to + * + * for (i=0;i +#include + +#include "system.h" +#include "alt_types.h" + +#include "priv/alt_busy_sleep.h" + +unsigned int alt_busy_sleep (unsigned int us) +{ +/* + * Only delay if ALT_SIM_OPTIMIZE is not defined; i.e., if software + * is built targetting ModelSim RTL simulation, the delay will be + * skipped to speed up simulation. + */ +#ifndef ALT_SIM_OPTIMIZE + int i; + int big_loops; + alt_u32 cycles_per_loop; + + if (!strcmp(NIOS2_CPU_IMPLEMENTATION,"tiny")) + { + cycles_per_loop = 9; + } + else + { + cycles_per_loop = 3; + } + + + big_loops = us / (INT_MAX/ + (ALT_CPU_FREQ/(cycles_per_loop * 1000000))); + + if (big_loops) + { + for(i=0;i + +#include "sys/alt_errno.h" +#include "sys/alt_warning.h" +#include "priv/alt_file.h" +#include "os/alt_syscall.h" + +#ifdef ALT_USE_DIRECT_DRIVERS + +int ALT_CLOSE (int fildes) +{ + /* Generate a link time warning, should this function ever be called. */ + + ALT_STUB_WARNING(close); + + /* Indicate an error */ + + ALT_ERRNO = ENOSYS; + return -1; +} + +#else /* !ALT_USE_DIRECT_DRIVERS */ + +/* + * close() is called by an application to release a file descriptor. If the + * associated file system/device has a close() callback function registered + * then this called. The file descriptor is then marked as free. + * + * ALT_CLOSE is mapped onto the close() system call in alt_syscall.h + */ + +int ALT_CLOSE (int fildes) +{ + alt_fd* fd; + int rval; + + /* + * A common error case is that when the file descriptor was created, the call + * to open() failed resulting in a negative file descriptor. This is trapped + * below so that we don't try and process an invalid file descriptor. + */ + + fd = (fildes < 0) ? NULL : &alt_fd_list[fildes]; + + if (fd) + { + /* + * If the associated file system/device has a close function, call it so + * that any necessary cleanup code can run. + */ + + rval = (fd->dev->close) ? fd->dev->close(fd) : 0; + + /* Free the file descriptor structure and return. */ + + alt_release_fd (fildes); + if (rval < 0) + { + ALT_ERRNO = -rval; + return -1; + } + return 0; + } + else + { + ALT_ERRNO = EBADFD; + return -1; + } +} + +#endif /* ALT_USE_DIRECT_DRIVERS */ diff --git a/software/qsys_tutorial_hexs_bsp/HAL/src/alt_dcache_flush.c b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_dcache_flush.c new file mode 100644 index 0000000..7ecc91a --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_dcache_flush.c @@ -0,0 +1,97 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003-2005 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "nios2.h" +#include "system.h" + +#include "alt_types.h" +#include "sys/alt_cache.h" + +/* + * Nios II version 1.2 and newer supports the "flush by address" instruction, in + * addition to the "flush by line" instruction provided by older versions of + * the core. This newer instruction is used by preference when it is + * available. + */ + +#ifdef NIOS2_FLUSHDA_SUPPORTED +#define ALT_FLUSH_DATA(i) __asm__ volatile ("flushda (%0)" :: "r" (i)); +#else +#define ALT_FLUSH_DATA(i) __asm__ volatile ("flushd (%0)" :: "r" (i)); +#endif /* NIOS2_FLUSHDA_SUPPORTED */ + +/* + * alt_dcache_flush() is called to flush the data cache for a memory + * region of length "len" bytes, starting at address "start". + * + * Any dirty lines in the data cache are written back to memory. + */ + +void alt_dcache_flush (void* start, alt_u32 len) +{ +#if NIOS2_DCACHE_SIZE > 0 + + char* i; + char* end; + + /* + * This is the most we would ever need to flush. + * + * SPR 196942, 2006.01.13: The cache flush loop below will use the + * 'flushda' instruction if its available; in that case each line + * must be flushed individually, and thus 'len' cannot be trimmed. + */ + #ifndef NIOS2_FLUSHDA_SUPPORTED + if (len > NIOS2_DCACHE_SIZE) + { + len = NIOS2_DCACHE_SIZE; + } + #endif + + end = ((char*) start) + len; + + for (i = start; i < end; i+= NIOS2_DCACHE_LINE_SIZE) + { + ALT_FLUSH_DATA(i); + } + + /* + * For an unaligned flush request, we've got one more line left. + * Note that this is dependent on NIOS2_DCACHE_LINE_SIZE to be a + * multiple of 2 (which it always is). + */ + + if (((alt_u32) start) & (NIOS2_DCACHE_LINE_SIZE - 1)) + { + ALT_FLUSH_DATA(i); + } + +#endif /* NIOS2_DCACHE_SIZE > 0 */ +} diff --git a/software/qsys_tutorial_hexs_bsp/HAL/src/alt_dcache_flush_all.c b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_dcache_flush_all.c new file mode 100644 index 0000000..6529231 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_dcache_flush_all.c @@ -0,0 +1,51 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003-2005 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "nios2.h" +#include "system.h" + +#include "alt_types.h" +#include "sys/alt_cache.h" + +/* + * alt_dcache_flush_all() is called to flush the entire data cache. + */ + +void alt_dcache_flush_all (void) +{ +#if NIOS2_DCACHE_SIZE > 0 + char* i; + + for (i = (char*) 0; i < (char*) NIOS2_DCACHE_SIZE; i+= NIOS2_DCACHE_LINE_SIZE) + { + __asm__ volatile ("flushd (%0)" :: "r" (i)); + } +#endif /* NIOS2_DCACHE_SIZE > 0 */ +} diff --git a/software/qsys_tutorial_hexs_bsp/HAL/src/alt_dcache_flush_no_writeback.c b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_dcache_flush_no_writeback.c new file mode 100644 index 0000000..c65ca7d --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_dcache_flush_no_writeback.c @@ -0,0 +1,88 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2007 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "nios2.h" +#include "system.h" + +#include "alt_types.h" +#include "sys/alt_cache.h" + +/* + * The INITDA instruction was added to Nios II in the 8.0 release. + * + * The INITDA instruction has one of the following possible behaviors + * depending on the processor configuration: + * 1) Flushes a line by address but does NOT write back dirty data. + * Occurs when a data cache is present that supports INITDA. + * The macro NIOS2_INITDA_SUPPORTED is defined in system.h. + * 2) Takes an unimplemented instruction exception. + * Occurs when a data cache is present that doesn't support INITDA. + * 3) Performs no operation + * Occurs when there is no data cache present. + * The macro NIOS2_DCACHE_SIZE is 0 in system.h. + */ + +#define ALT_FLUSH_DATA_NO_WRITEBACK(i) \ + __asm__ volatile ("initda (%0)" :: "r" (i)); + +/* + * alt_dcache_flush_no_writeback() is called to flush the data cache for a + * memory region of length "len" bytes, starting at address "start". + * + * Any dirty lines in the data cache are NOT written back to memory. + * Make sure you really want this behavior. If you aren't 100% sure, + * use the alt_dcache_flush() routine instead. + */ + +void alt_dcache_flush_no_writeback (void* start, alt_u32 len) +{ +#if defined(NIOS2_INITDA_SUPPORTED) + + char* i; + char* end = ((char*) start) + len; + + for (i = start; i < end; i+= NIOS2_DCACHE_LINE_SIZE) + { + ALT_FLUSH_DATA_NO_WRITEBACK(i); + } + + /* + * For an unaligned flush request, we've got one more line left. + * Note that this is dependent on NIOS2_DCACHE_LINE_SIZE to be a + * multiple of 2 (which it always is). + */ + + if (((alt_u32) start) & (NIOS2_DCACHE_LINE_SIZE - 1)) + { + ALT_FLUSH_DATA_NO_WRITEBACK(i); + } + +#endif /* NIOS2_INITDA_SUPPORTED */ +} diff --git a/software/qsys_tutorial_hexs_bsp/HAL/src/alt_dev.c b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_dev.c new file mode 100644 index 0000000..ebc15e5 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_dev.c @@ -0,0 +1,149 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include +#include +#include +#include + +#include "sys/alt_dev.h" +#include "priv/alt_file.h" + +#include "alt_types.h" + +#include "system.h" + +/* + * This file contains the data constructs used to control access to device and + * filesytems. + */ + +/* + * "alt_fs_list" is the head of a linked list of registered filesystems. It is + * initialised as an empty list. New entries can be added using the + * alt_fs_reg() function. + */ + +ALT_LLIST_HEAD(alt_fs_list); + + +/* + * "alt_dev_list" is the head of a linked list of registered devices. It is + * configured at startup to include a single device, "alt_dev_null". This + * device is discussed below. + */ + +extern alt_dev alt_dev_null; /* forward declaration */ + +alt_llist alt_dev_list = {&alt_dev_null.llist, &alt_dev_null.llist}; + +/* + * alt_dev_null_write() is the implementation of the write() function used + * by the alt_dev_null device. It simple discards all data passed to it, and + * indicates that the data has been successfully transmitted. + */ + +static int alt_dev_null_write (alt_fd* fd, const char* ptr, int len) +{ + return len; +} + +/* + * "alt_dev_null" is used to allow output to be redirected to nowhere. It is + * the only device registered before the call to alt_sys_init(). At startup + * stin, stdout & stderr are all directed towards this device so that library + * calls like printf() will be safe but inefectual. + */ + +alt_dev alt_dev_null = { + { + &alt_dev_list, + &alt_dev_list + }, + "/dev/null", + NULL, /* open */ + NULL, /* close */ + NULL, /* write */ + alt_dev_null_write, /* write */ + NULL, /* lseek */ + NULL, /* fstat */ + NULL /* ioctl */ + }; + +/* + * "alt_fd_list_lock" is a semaphore used to control access to the file + * descriptor list. This is used to ensure that access to the list is thread + * safe. + */ + +ALT_SEM(alt_fd_list_lock) + +/* + * "alt_max_fd" is used to make access to the file descriptor list more + * efficent. It is set to be the value of the highest allocated file + * descriptor. This saves having to search the entire pool of unallocated + * file descriptors when looking for a match. + */ + +alt_32 alt_max_fd = -1; + +/* + * "alt_fd_list" is the file descriptor pool. The first three entries in the + * array are configured as standard in, standard out, and standard error. These + * are all initialised so that accesses are directed to the alt_dev_null + * device. The remaining file descriptors are initialised as unallocated. + * + * The maximum number of file descriptors within the system is specified by the + * user defined macro "ALT_MAX_FD". This is defined in "system.h", which is + * auto-genereated using the projects PTF and STF files. + */ + +alt_fd alt_fd_list[ALT_MAX_FD] = + { + { + &alt_dev_null, /* standard in */ + 0, + 0 + }, + { + &alt_dev_null, /* standard out */ + 0, + 0 + }, + { + &alt_dev_null, /* standard error */ + 0, + 0 + } + /* all other elements are set to zero */ + }; diff --git a/software/qsys_tutorial_hexs_bsp/HAL/src/alt_dev_llist_insert.c b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_dev_llist_insert.c new file mode 100644 index 0000000..fa7239d --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_dev_llist_insert.c @@ -0,0 +1,59 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "priv/alt_dev_llist.h" +#include "sys/alt_errno.h" + +/* + * + */ + +int alt_dev_llist_insert (alt_dev_llist* dev, alt_llist* list) +{ + /* + * check that the device exists, and that it has a valid name. + */ + + if (!dev || !dev->name) + { + ALT_ERRNO = EINVAL; + return -EINVAL; + } + + /* + * register the device. + */ + + alt_llist_insert(list, &dev->llist); + + return 0; +} diff --git a/software/qsys_tutorial_hexs_bsp/HAL/src/alt_dma_rxchan_open.c b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_dma_rxchan_open.c new file mode 100644 index 0000000..6ea3b78 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_dma_rxchan_open.c @@ -0,0 +1,63 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_dma.h" +#include "sys/alt_errno.h" +#include "priv/alt_file.h" + +/* + * The list of registered DMA receive channels. + */ + +ALT_LLIST_HEAD(alt_dma_rxchan_list); + +/* + * alt_dma_txchan_open() is used to obtain an "alt_dma_txchan" descriptor for + * a DMA transmit device. The name is the name of the associated physical + * device (e.g. "/dev/dma_0"). + * + * The return value will be NULL on failure, and non-NULL otherwise. + */ + +alt_dma_rxchan alt_dma_rxchan_open (const char* name) +{ + alt_dma_rxchan dev; + + dev = (alt_dma_rxchan) alt_find_dev (name, &alt_dma_rxchan_list); + + if (!dev) + { + ALT_ERRNO = ENODEV; + } + + return dev; +} diff --git a/software/qsys_tutorial_hexs_bsp/HAL/src/alt_dma_txchan_open.c b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_dma_txchan_open.c new file mode 100644 index 0000000..f41fa81 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_dma_txchan_open.c @@ -0,0 +1,63 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_dma.h" +#include "sys/alt_errno.h" +#include "priv/alt_file.h" + +/* + * The list of registered receive channels. + */ + +ALT_LLIST_HEAD(alt_dma_txchan_list); + +/* + * alt_dma_txchan_open() is used to obtain an "alt_dma_txchan" descriptor for + * a DMA transmit device. The name is the name of the associated physical + * device (e.g. "/dev/dma_0"). + * + * The return value will be NULL on failure, and non-NULL otherwise. + */ + +alt_dma_txchan alt_dma_txchan_open (const char* name) +{ + alt_dma_txchan dev; + + dev = (alt_dma_txchan) alt_find_dev (name, &alt_dma_txchan_list); + + if (!dev) + { + ALT_ERRNO = ENODEV; + } + + return dev; +} diff --git a/software/qsys_tutorial_hexs_bsp/HAL/src/alt_do_ctors.c b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_do_ctors.c new file mode 100644 index 0000000..ff5a1f7 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_do_ctors.c @@ -0,0 +1,64 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT IT DIRECTLY. * +* * +* Overriding HAL Functions * +* * +* To provide your own implementation of a HAL function, include the file in * +* your Nios II IDE application project. When building the executable, the * +* Nios II IDE finds your function first, and uses it in place of the HAL * +* version. * +* * +******************************************************************************/ + +/* + * + */ + +typedef void (*constructor) (void); +extern constructor __CTOR_LIST__[]; +extern constructor __CTOR_END__[]; + +/* + * Run the C++ static constructors. + */ + +void _do_ctors(void) +{ + constructor* ctor; + + for (ctor = &__CTOR_END__[-1]; ctor >= __CTOR_LIST__; ctor--) + (*ctor) (); +} diff --git a/software/qsys_tutorial_hexs_bsp/HAL/src/alt_do_dtors.c b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_do_dtors.c new file mode 100644 index 0000000..565c99f --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_do_dtors.c @@ -0,0 +1,64 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT IT DIRECTLY. * +* * +* Overriding HAL Functions * +* * +* To provide your own implementation of a HAL function, include the file in * +* your Nios II IDE application project. When building the executable, the * +* Nios II IDE finds your function first, and uses it in place of the HAL * +* version. * +* * +******************************************************************************/ + +/* + * + */ + +typedef void (*destructor) (void); +extern destructor __DTOR_LIST__[]; +extern destructor __DTOR_END__[]; + +/* + * Run the C++ static destructors. + */ + +void _do_dtors(void) +{ + destructor* dtor; + + for (dtor = &__DTOR_END__[-1]; dtor >= __DTOR_LIST__; dtor--) + (*dtor) (); +} diff --git a/software/qsys_tutorial_hexs_bsp/HAL/src/alt_env_lock.c b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_env_lock.c new file mode 100644 index 0000000..fc25a0c --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_env_lock.c @@ -0,0 +1,53 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +/* + * These are the empty env lock/unlock stubs required by newlib. These are + * used to make accesses to environment variables thread safe. The default HAL + * configuration is single threaded, so there is nothing to do here. Note that + * this requires that environment variables are never manipulated by an interrupt + * service routine. + */ + +void __env_lock ( struct _reent *_r ) +{ +} + +/* + * + */ + +void __env_unlock ( struct _reent *_r ) +{ +} diff --git a/software/qsys_tutorial_hexs_bsp/HAL/src/alt_environ.c b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_environ.c new file mode 100644 index 0000000..404efc4 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_environ.c @@ -0,0 +1,42 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "os/alt_syscall.h" + +/* + * These are the environment variables passed to the C code. By default there + * are no variables registered. An application can manipulate this list using + * getenv() and setenv(). + */ + +char *__env[1] = { 0 }; +char **ALT_ENVIRON = __env; diff --git a/software/qsys_tutorial_hexs_bsp/HAL/src/alt_errno.c b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_errno.c new file mode 100644 index 0000000..1d8368d --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_errno.c @@ -0,0 +1,44 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/* + * This file defines the alt_errno global variable. See comments in + * alt_errno.h for the use of this variable. + */ + + +#include "sys/alt_errno.h" +#include "alt_types.h" + +extern int ALT_WEAK *__errno (void); + +int* (*alt_errno) (void) = __errno; diff --git a/software/qsys_tutorial_hexs_bsp/HAL/src/alt_exception_entry.S b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_exception_entry.S new file mode 100644 index 0000000..3afab93 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_exception_entry.S @@ -0,0 +1,360 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003-2008 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "system.h" + +/* + * This is the exception entry point code, which saves all the caller saved + * registers and then handles the appropriate exception. It should be pulled + * in using a .globl from all the exception handler routines. This scheme is + * used so that if an interrupt is never registered, then this code will not + * appear in the generated executable, thereby improving code footprint. + * + * If an external interrpt controller (EIC) is present, it will supply an + * interrupt vector address to the processor when an interrupt occurs. For + * The Altera Vectored Interrupt Controller (VIC) driver will establish a + * vector table and the processor will jump directly to the appropriate + * table entry, funnel routine, and then user ISR. This will bypass this code + * in entirety. This code might still be linked into a system with an EIC, + * but would then be used only for non-interrupt exceptions. + */ + + /* + * Explicitly allow the use of r1 (the assembler temporary register) + * within this code. This register is normally reserved for the use of + * the assembler. + */ + .set noat + + /* + * The top and bottom of the exception stack + */ +#ifdef ALT_EXCEPTION_STACK + + .globl __alt_exception_stack_pointer + +#ifdef ALT_STACK_CHECK + + .globl __alt_exception_stack_limit + + /* + * We need to store the value of the stack limit after interrupt somewhere. + */ + .globl alt_exception_old_stack_limit + +#endif +#endif + + .section .exceptions.entry.label, "xa" + + .globl alt_exception + .type alt_exception, @function +alt_exception: + + .section .exceptions.entry, "xa" + +#ifdef ALT_EXCEPTION_STACK + +#ifdef ALT_STACK_CHECK + stw et, %gprel(alt_exception_old_stack_limit)(gp) +#endif + + movhi et, %hiadj(__alt_exception_stack_pointer - 80) + addi et, et, %lo(__alt_exception_stack_pointer - 80) + stw sp, 76(et) + mov sp, et + +#ifdef ALT_STACK_CHECK + movhi et, %hiadj(__alt_exception_stack_limit) + addi et, et, %lo(__alt_exception_stack_limit) + stw et, %gprel(alt_stack_limit_value)(gp) +#endif + +#else + /* + * Process an exception. For all exceptions we must preserve all + * caller saved registers on the stack (See the Nios2 ABI + * documentation for details). + */ + + addi sp, sp, -76 + +#ifdef ALT_STACK_CHECK + + bltu sp, et, .Lstack_overflow + +#endif + +#endif + + stw ra, 0(sp) + + /* + * Leave a gap in the stack frame at 4(sp) for the muldiv handler to + * store zero into. + */ + + stw r1, 8(sp) + stw r2, 12(sp) + stw r3, 16(sp) + stw r4, 20(sp) + stw r5, 24(sp) + stw r6, 28(sp) + stw r7, 32(sp) + + rdctl r5, estatus + + stw r8, 36(sp) + stw r9, 40(sp) + stw r10, 44(sp) + stw r11, 48(sp) + stw r12, 52(sp) + stw r13, 56(sp) + stw r14, 60(sp) + stw r15, 64(sp) + + /* + * ea-4 contains the address of the instruction being executed + * when the exception occured. For interrupt exceptions, we will + * will be re-issue the isntruction. Store it in 72(sp) + */ + stw r5, 68(sp) /* estatus */ + addi r15, ea, -4 /* instruction that caused exception */ + stw r15, 72(sp) + + /* + * The interrupt testing code (.exceptions.irqtest) will be + * linked here. If the Internal Interrupt Controller (IIC) is + * present (an EIC is not present), the presense of an interrupt + * is determined by examining CPU control registers or an interrupt + * custom instruction, if present. + * + * If the IIC is used and an interrupt is active, the code linked + * here will call the HAL IRQ handler (alt_irq_handler()) which + * successively calls registered interrupt handler(s) until no + * interrupts remain pending. It then jumps to .exceptions.exit. If + * there is no interrupt then it continues to .exception.notirq, below. + */ + + .section .exceptions.notirq, "xa" + + /* + * Prepare to service unimplemtned instructions or traps, + * each of which is optionally inked into section .exceptions.soft, + * which will preceed .exceptions.unknown below. + * + * Unlike interrupts, we want to skip the exception-causing instructon + * upon completion, so we write ea (address of instruction *after* + * the one where the exception occured) into 72(sp). The actual + * instruction that caused the exception is written in r2, which these + * handlers will utilize. + */ + stw ea, 72(sp) /* Don't re-issue */ + ldw r2, -4(ea) /* Instruction that caused exception */ + + /* + * Other exception handling code, if enabled, will be linked here. + * This includes unimplemted (multiply/divide) instruction support + * (a BSP generaton option), and a trap handler (that would typically + * be augmented with user-specific code). These are not linked in by + * default. + */ + + /* + * In the context of linker sections, "unknown" are all exceptions + * not handled by the built-in handlers above (interupt, and trap or + * unimplemented instruction decoding, if enabled). + * + * Advanced exception types can be serviced by registering a handler. + * To do so, enable the "Enable Instruction-related Exception API" HAL + * BSP setting. If this setting is disabled, this handler code will + * either break (if the debug core is present) or enter an infinite + * loop because we don't how how to handle the exception. + */ + .section .exceptions.unknown +#ifdef ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API + /* + * The C-based HAL routine alt_instruction_exception_entry() will + * attempt to service the exception by calling a user-registered + * exception handler using alt_instruction_exception_register(). + * If no handler was registered it will either break (if the + * debugger is present) or go into an infinite loop since the + * handling behavior is undefined; in that case we will not return here. + */ + + /* Load exception-causing address as first argument (r4) */ + addi r4, ea, -4 + + /* Call the instruction-exception entry */ + call alt_instruction_exception_entry + + /* + * If alt_instruction_exception_entry() returned, the exception was + * serviced by a user-registered routine. Its return code (now in r2) + * indicates whether to re-issue or skip the exception-causing + * instruction + * + * Return code was 0: Skip. The instruction after the exception is + * already stored in 72(sp). + */ + bne r2, r0, .Lexception_exit + + /* + * Otherwise, modify 72(sp) to re-issue the instruction that caused the + * exception. + */ + addi r15, ea, -4 /* instruction that caused exception */ + stw r15, 72(sp) + +#else /* ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API disabled */ + + /* + * We got here because an instruction-related exception occured, but the + * handler API was not compiled in. We do not presume to know how to + * handle it. If the debugger is present, break, otherwise hang. + * + * If you get here then one of the following could have happened: + * + * - An instruction-generated exception occured, and the processor + * does not have the extra exceptions feature enabled, or you + * have not registered a handler using + * alt_instruction_exception_register() + * + * Some examples of instruction-generated exceptions and why they + * might occur: + * + * - Your program could have been compiled for a full-featured + * Nios II core, but it is running on a smaller core, and + * instruction emulation has been disabled by defining + * ALT_NO_INSTRUCTION_EMULATION. + * + * You can work around the problem by re-enabling instruction + * emulation, or you can figure out why your program is being + * compiled for a system other than the one that it is running on. + * + * - Your program has executed a trap instruction, but has not + * implemented a handler for this instruction. + * + * - Your program has executed an illegal instruction (one which is + * not defined in the instruction set). + * + * - Your processor includes an MMU or MPU, and you have enabled it + * before registering an exception handler to service exceptions it + * generates. + * + * The problem could also be hardware related: + * - If your hardware is broken and is generating spurious interrupts + * (a peripheral which negates its interrupt output before its + * interrupt handler has been executed will cause spurious + * interrupts) + */ +#ifdef NIOS2_HAS_DEBUG_STUB + /* + * Either tell the user now (if there is a debugger attached) or go into + * the debug monitor which will loop until a debugger is attached. + */ + break +#else + /* + * If there is no debug stub then a BREAK will probably cause a reboot. + * An infinate loop will probably be more useful. + */ +0: + br 0b +#endif /* NIOS2_HAS_DEBUG_STUB */ + +#endif /* ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API */ + + .section .exceptions.exit.label +.Lexception_exit: + + .section .exceptions.exit, "xa" + + /* + * Restore the saved registers, so that all general purpose registers + * have been restored to their state at the time the interrupt occured. + */ + + ldw r5, 68(sp) + ldw ea, 72(sp) /* This becomes the PC once eret is executed */ + ldw ra, 0(sp) + + wrctl estatus, r5 + + ldw r1, 8(sp) + ldw r2, 12(sp) + ldw r3, 16(sp) + ldw r4, 20(sp) + ldw r5, 24(sp) + ldw r6, 28(sp) + ldw r7, 32(sp) + +#ifdef ALT_EXCEPTION_STACK +#ifdef ALT_STACK_CHECK + ldw et, %gprel(alt_exception_old_stack_limit)(gp) +#endif +#endif + + ldw r8, 36(sp) + ldw r9, 40(sp) + ldw r10, 44(sp) + ldw r11, 48(sp) + ldw r12, 52(sp) + ldw r13, 56(sp) + ldw r14, 60(sp) + ldw r15, 64(sp) + +#ifdef ALT_EXCEPTION_STACK + +#ifdef ALT_STACK_CHECK + stw et, %gprel(alt_stack_limit_value)(gp) + stw zero, %gprel(alt_exception_old_stack_limit)(gp) +#endif + + ldw sp, 76(sp) + +#else + addi sp, sp, 76 + +#endif + + /* + * Return to the interrupted instruction. + */ + + eret + +#ifdef ALT_STACK_CHECK + +.Lstack_overflow: + break 3 + +#endif + diff --git a/software/qsys_tutorial_hexs_bsp/HAL/src/alt_exception_muldiv.S b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_exception_muldiv.S new file mode 100644 index 0000000..55617a6 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_exception_muldiv.S @@ -0,0 +1,583 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003-2005 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + + /* + * This is the software multiply/divide handler for Nios2. + */ + + /* + * Provide a label which can be used to pull this file in. + */ + + .section .exceptions.start + .globl alt_exception_muldiv +alt_exception_muldiv: + + /* + * Pull in the entry/exit code. + */ + .globl alt_exception + + + .section .exceptions.soft, "xa" + + + /* INSTRUCTION EMULATION + * --------------------- + * + * Nios II processors generate exceptions for unimplemented instructions. + * The routines below emulate these instructions. Depending on the + * processor core, the only instructions that might need to be emulated + * are div, divu, mul, muli, mulxss, mulxsu, and mulxuu. + * + * The emulations match the instructions, except for the following + * limitations: + * + * 1) The emulation routines do not emulate the use of the exception + * temporary register (et) as a source operand because the exception + * handler already has modified it. + * + * 2) The routines do not emulate the use of the stack pointer (sp) or the + * exception return address register (ea) as a destination because + * modifying these registers crashes the exception handler or the + * interrupted routine. + * + * 3) To save code size, the routines do not emulate the use of the + * breakpoint registers (ba and bt) as operands. + * + * Detailed Design + * --------------- + * + * The emulation routines expect the contents of integer registers r0-r31 + * to be on the stack at addresses sp, 4(sp), 8(sp), ... 124(sp). The + * routines retrieve source operands from the stack and modify the + * destination register's value on the stack prior to the end of the + * exception handler. Then all registers except the destination register + * are restored to their previous values. + * + * The instruction that causes the exception is found at address -4(ea). + * The instruction's OP and OPX fields identify the operation to be + * performed. + * + * One instruction, muli, is an I-type instruction that is identified by + * an OP field of 0x24. + * + * muli AAAAA,BBBBB,IIIIIIIIIIIIIIII,-0x24- + * 27 22 6 0 <-- LSB of field + * + * The remaining emulated instructions are R-type and have an OP field + * of 0x3a. Their OPX fields identify them. + * + * R-type AAAAA,BBBBB,CCCCC,XXXXXX,NNNNN,-0x3a- + * 27 22 17 11 6 0 <-- LSB of field + * + * + */ + + + /* + * Split the instruction into its fields. We need 4*A, 4*B, and 4*C as + * offsets to the stack pointer for access to the stored register values. + */ + /* r2 = AAAAA,BBBBB,IIIIIIIIIIIIIIII,PPPPPP */ + roli r3, r2, 7 /* r3 = BBB,IIIIIIIIIIIIIIII,PPPPPP,AAAAA,BB */ + roli r4, r3, 3 /* r4 = IIIIIIIIIIIIIIII,PPPPPP,AAAAA,BBBBB */ + roli r6, r4, 2 /* r6 = IIIIIIIIIIIIII,PPPPPP,AAAAA,BBBBB,II */ + srai r4, r4, 16 /* r4 = (sign-extended) IMM16 */ + xori r6, r6, 0x42 /* r6 = CCC,XXXXXX,NNNNN,PPPPPP,AAAAA,bBBBB,cC */ + roli r7, r6, 5 /* r7 = XXXX,NNNNN,PPPPPP,AAAAA,bBBBB,cCCCC,XX */ + andi r5, r2, 0x3f /* r5 = 00000000000000000000000000,PPPPPP */ + xori r3, r3, 0x40 + andi r3, r3, 0x7c /* r3 = 0000000000000000000000000,aAAAA,00 */ + andi r6, r6, 0x7c /* r6 = 0000000000000000000000000,bBBBB,00 */ + andi r7, r7, 0x7c /* r7 = 0000000000000000000000000,cCCCC,00 */ + + /* Now either + * r5 = OP + * r3 = 4*(A^16) + * r4 = IMM16 (sign extended) + * r6 = 4*(B^16) + * r7 = 4*(C^16) + * or + * r5 = OP + */ + + + /* + * Save everything on the stack to make it easy for the emulation routines + * to retrieve the source register operands. The exception entry code has + * already saved some of this so we don't need to do it all again. + */ + + addi sp, sp, -60 + stw zero, 64(sp) /* Save zero on stack to avoid special case for r0. */ + /* Register at and r2-r15 have already been saved. */ + + stw r16, 0(sp) + stw r17, 4(sp) + stw r18, 8(sp) + stw r19, 12(sp) + stw r20, 16(sp) + stw r21, 20(sp) + stw r22, 24(sp) + stw r23, 28(sp) + /* et @ 32 - Has already been changed.*/ + /* bt @ 36 - Usually isn't an operand. */ + stw gp, 40(sp) + stw sp, 44(sp) + stw fp, 48(sp) + /* ea @ 52 - Don't bother to save - it's already been changed */ + /* ba @ 56 - Breakpoint register usually isn't an operand */ + /* ra @ 60 - Has already been saved */ + + + /* + * Prepare for either multiplication or division loop. + * They both loop 32 times. + */ + movi r14, 32 + + + /* + * Get the operands. + * + * It is necessary to check for muli because it uses an I-type instruction + * format, while the other instructions are have an R-type format. + */ + add r3, r3, sp /* r3 = address of A-operand. */ + ldw r3, 0(r3) /* r3 = A-operand. */ + movi r15, 0x24 /* muli opcode (I-type instruction format) */ + beq r5, r15, .Lmul_immed /* muli doesn't use the B register as a source */ + + add r6, r6, sp /* r6 = address of B-operand. */ + ldw r6, 0(r6) /* r6 = B-operand. */ + /* r4 = SSSSSSSSSSSSSSSS,-----IMM16------ */ + /* IMM16 not needed, align OPX portion */ + /* r4 = SSSSSSSSSSSSSSSS,CCCCC,-OPX--,00000 */ + srli r4, r4, 5 /* r4 = 00000,SSSSSSSSSSSSSSSS,CCCCC,-OPX-- */ + andi r4, r4, 0x3f /* r4 = 00000000000000000000000000,-OPX-- */ + + /* Now + * r5 = OP + * r3 = src1 + * r6 = src2 + * r4 = OPX (no longer can be muli) + * r7 = 4*(C^16) + * r14 = loop counter + */ + + /* ILLEGAL-INSTRUCTION EXCEPTION + * ----------------------------- + * + * This code is for Nios II cores that generate exceptions when attempting + * to execute illegal instructions. Nios II cores that support an + * illegal-instruction exception are identified by the presence of the + * macro definition NIOS2_HAS_ILLEGAL_INSTRUCTION_EXCEPTION in system.h . + * + * Remember that illegal instructions are different than unimplemented + * instructions. Illegal instructions are instruction encodings that + * have not been defined by the Nios II ISA. Unimplemented instructions + * are legal instructions that must be emulated by some Nios II cores. + * + * If we get here, all instructions except multiplies and divides + * are illegal. + * + * This code assumes that OP is not muli (because muli was tested above). + * All other multiplies and divides are legal. Anything else is illegal. + */ + + movi r8, 0x3a /* OP for R-type mul* and div* */ + bne r5, r8, .Lnot_muldiv + + /* r15 already is 0x24 */ /* OPX of divu */ + beq r4, r15, .Ldivide + + movi r15,0x27 /* OPX of mul */ + beq r4, r15, .Lmultiply + + movi r15,0x07 /* OPX of mulxuu */ + beq r4, r15, .Lmultiply + + movi r15,0x17 /* OPX of mulxsu */ + beq r4, r15, .Lmultiply + + movi r15,0x1f /* OPX of mulxss */ + beq r4, r15, .Lmultiply + + movi r15,0x25 /* OPX of div */ + bne r4, r15, .Lnot_muldiv + + + /* DIVISION + * + * Divide an unsigned dividend by an unsigned divisor using + * a shift-and-subtract algorithm. The example below shows + * 43 div 7 = 6 for 8-bit integers. This classic algorithm uses a + * single register to store both the dividend and the quotient, + * allowing both values to be shifted with a single instruction. + * + * remainder dividend:quotient + * --------- ----------------- + * initialize 00000000 00101011: + * shift 00000000 0101011:_ + * remainder >= divisor? no 00000000 0101011:0 + * shift 00000000 101011:0_ + * remainder >= divisor? no 00000000 101011:00 + * shift 00000001 01011:00_ + * remainder >= divisor? no 00000001 01011:000 + * shift 00000010 1011:000_ + * remainder >= divisor? no 00000010 1011:0000 + * shift 00000101 011:0000_ + * remainder >= divisor? no 00000101 011:00000 + * shift 00001010 11:00000_ + * remainder >= divisor? yes 00001010 11:000001 + * remainder -= divisor - 00000111 + * ---------- + * 00000011 11:000001 + * shift 00000111 1:000001_ + * remainder >= divisor? yes 00000111 1:0000011 + * remainder -= divisor - 00000111 + * ---------- + * 00000000 1:0000011 + * shift 00000001 :0000011_ + * remainder >= divisor? no 00000001 :00000110 + * + * The quotient is 00000110. + */ + +.Ldivide: + /* + * Prepare for division by assuming the result + * is unsigned, and storing its "sign" as 0. + */ + movi r17, 0 + + + /* Which division opcode? */ + xori r15, r4, 0x25 /* OPX of div */ + bne r15, zero, .Lunsigned_division + + + /* + * OPX is div. Determine and store the sign of the quotient. + * Then take the absolute value of both operands. + */ + xor r17, r3, r6 /* MSB contains sign of quotient */ + bge r3, zero, 0f + sub r3, zero, r3 /* -r3 */ +0: + bge r6, zero, 0f + sub r6, zero, r6 /* -r6 */ +0: + + +.Lunsigned_division: + /* Initialize the unsigned-division loop. */ + movi r13, 0 /* remainder = 0 */ + + /* Now + * r3 = dividend : quotient + * r4 = 0x25 for div, 0x24 for divu + * r6 = divisor + * r13 = remainder + * r14 = loop counter (already initialized to 32) + * r17 = MSB contains sign of quotient + */ + + + /* + * for (count = 32; count > 0; --count) + * { + */ +.Ldivide_loop: + + /* + * Division: + * + * (remainder:dividend:quotient) <<= 1; + */ + slli r13, r13, 1 + cmplt r15, r3, zero /* r15 = MSB of r3 */ + or r13, r13, r15 + slli r3, r3, 1 + + + /* + * if (remainder >= divisor) + * { + * set LSB of quotient + * remainder -= divisor; + * } + */ + bltu r13, r6, .Ldiv_skip + ori r3, r3, 1 + sub r13, r13, r6 +.Ldiv_skip: + + /* + * } + */ + subi r14, r14, 1 + bne r14, zero, .Ldivide_loop + + mov r9, r3 + + + /* Now + * r9 = quotient + * r4 = 0x25 for div, 0x24 for divu + * r7 = 4*(C^16) + * r17 = MSB contains sign of quotient + */ + + + /* + * Conditionally negate signed quotient. If quotient is unsigned, + * the sign already is initialized to 0. + */ + bge r17, zero, .Lstore_result + sub r9, zero, r9 /* -r9 */ + + br .Lstore_result + + + + + /* MULTIPLICATION + * + * A "product" is the number that one gets by summing a "multiplicand" + * several times. The "multiplier" specifies the number of copies of the + * multiplicand that are summed. + * + * Actual multiplication algorithms don't use repeated addition, however. + * Shift-and-add algorithms get the same answer as repeated addition, and + * they are faster. To compute the lower half of a product (pppp below) + * one shifts the product left before adding in each of the partial products + * (a * mmmm) through (d * mmmm). + * + * To compute the upper half of a product (PPPP below), one adds in the + * partial products (d * mmmm) through (a * mmmm), each time following the + * add by a right shift of the product. + * + * mmmm + * * abcd + * ------ + * #### = d * mmmm + * #### = c * mmmm + * #### = b * mmmm + * #### = a * mmmm + * -------- + * PPPPpppp + * + * The example above shows 4 partial products. Computing actual Nios II + * products requires 32 partials. + * + * It is possible to compute the result of mulxsu from the result of mulxuu + * because the only difference between the results of these two opcodes is + * the value of the partial product associated with the sign bit of rA. + * + * mulxsu = mulxuu - ((rA < 0) ? rB : 0); + * + * It is possible to compute the result of mulxss from the result of mulxsu + * because the only difference between the results of these two opcodes is + * the value of the partial product associated with the sign bit of rB. + * + * mulxss = mulxsu - ((rB < 0) ? rA : 0); + * + */ + +.Lmul_immed: + /* Opcode is muli. Change it into mul for remainder of algorithm. */ + mov r7, r6 /* Field B is dest register, not field C. */ + mov r6, r4 /* Field IMM16 is src2, not field B. */ + movi r4, 0x27 /* OPX of mul is 0x27 */ + +.Lmultiply: + /* Initialize the multiplication loop. */ + movi r9, 0 /* mul_product = 0 */ + movi r10, 0 /* mulxuu_product = 0 */ + mov r11, r6 /* save original multiplier for mulxsu and mulxss */ + mov r12, r6 /* mulxuu_multiplier (will be shifted) */ + movi r16, 1 /* used to create "rori B,A,1" from "ror B,A,r16" */ + + /* Now + * r3 = multiplicand + * r6 = mul_multiplier + * r7 = 4 * dest_register (used later as offset to sp) + * r9 = mul_product + * r10 = mulxuu_product + * r11 = original multiplier + * r12 = mulxuu_multiplier + * r14 = loop counter (already initialized) + * r15 = temp + * r16 = 1 + */ + + + /* + * for (count = 32; count > 0; --count) + * { + */ +.Lmultiply_loop: + + /* + * mul_product <<= 1; + * lsb = multiplier & 1; + */ + slli r9, r9, 1 + andi r15, r12, 1 + + /* + * if (lsb == 1) + * { + * mulxuu_product += multiplicand; + * } + */ + beq r15, zero, .Lmulx_skip + add r10, r10, r3 + cmpltu r15, r10, r3 /* Save the carry from the MSB of mulxuu_product. */ + ror r15, r15, r16 /* r15 = 0x80000000 on carry, or else 0x00000000 */ +.Lmulx_skip: + + /* + * if (MSB of mul_multiplier == 1) + * { + * mul_product += multiplicand; + * } + */ + bge r6, zero, .Lmul_skip + add r9, r9, r3 +.Lmul_skip: + + /* + * mulxuu_product >>= 1; logical shift + * mul_multiplier <<= 1; done with MSB + * mulx_multiplier >>= 1; done with LSB + */ + srli r10, r10, 1 + or r10, r10, r15 /* OR in the saved carry bit. */ + slli r6, r6, 1 + srli r12, r12, 1 + + + /* + * } + */ + subi r14, r14, 1 + bne r14, zero, .Lmultiply_loop + + + /* + * Multiply emulation loop done. + */ + + /* Now + * r3 = multiplicand + * r4 = OPX + * r7 = 4 * dest_register (used later as offset to sp) + * r9 = mul_product + * r10 = mulxuu_product + * r11 = original multiplier + * r15 = temp + */ + + + /* + * Select/compute the result based on OPX. + */ + + + /* OPX == mul? Then store. */ + xori r15, r4, 0x27 + beq r15, zero, .Lstore_result + + /* It's one of the mulx.. opcodes. Move over the result. */ + mov r9, r10 + + /* OPX == mulxuu? Then store. */ + xori r15, r4, 0x07 + beq r15, zero, .Lstore_result + + /* Compute mulxsu + * + * mulxsu = mulxuu - ((rA < 0) ? rB : 0); + */ + bge r3, zero, .Lmulxsu_skip + sub r9, r9, r11 +.Lmulxsu_skip: + + /* OPX == mulxsu? Then store. */ + xori r15, r4, 0x17 + beq r15, zero, .Lstore_result + + /* Compute mulxss + * + * mulxss = mulxsu - ((rB < 0) ? rA : 0); + */ + bge r11, zero, .Lmulxss_skip + sub r9, r9, r3 +.Lmulxss_skip: + /* At this point, assume that OPX is mulxss, so store */ + + +.Lstore_result: + add r7, r7, sp + stw r9, 0(r7) + + ldw r16, 0(sp) + ldw r17, 4(sp) + ldw r18, 8(sp) + ldw r19, 12(sp) + ldw r20, 16(sp) + ldw r21, 20(sp) + ldw r22, 24(sp) + ldw r23, 28(sp) + + /* bt @ 32 - Breakpoint register usually isn't an operand. */ + /* et @ 36 - Don't corrupt et. */ + /* gp @ 40 - Don't corrupt gp. */ + /* sp @ 44 - Don't corrupt sp. */ + ldw fp, 48(sp) + /* ea @ 52 - Don't corrupt ea. */ + /* ba @ 56 - Breakpoint register usually isn't an operand. */ + + addi sp, sp, 60 + + br .Lexception_exit + + +.Lnot_muldiv: + + addi sp, sp, 60 + + + .section .exceptions.exit.label +.Lexception_exit: + diff --git a/software/qsys_tutorial_hexs_bsp/HAL/src/alt_exception_trap.S b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_exception_trap.S new file mode 100644 index 0000000..60a3d40 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_exception_trap.S @@ -0,0 +1,81 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003-2005 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + + /* + * This is the trap exception handler for Nios2. + */ + + /* + * Provide a label which can be used to pull this file in. + */ + + .section .exceptions.start + .globl alt_exception_trap +alt_exception_trap: + + /* + * Pull in the entry/exit code. + */ + .globl alt_exception + + .section .exceptions.soft, "xa" + +.Ltrap_handler: + + /* + * Did a trap instruction cause the exception? + * + * The instruction which the exception occurred on has been loaded + * into r2 by code in alt_exception_entry.S + * + */ + + movhi r3,0x003b /* upper half of trap opcode */ + ori r3,r3,0x683a /* lower half of trap opcode */ + bne r2,r3,.Lnot_trap + + /* + * There is no trap handler defined here, and so executing a trap + * instruction causes a software break. If you provide a trap handler, + * then you must replace the break instruction below with your handler. + * Your handler must preserve ea and the usual callee saved registers. + */ + + break + + br .Lexception_exit + +.Lnot_trap: + + + .section .exceptions.exit.label +.Lexception_exit: + + diff --git a/software/qsys_tutorial_hexs_bsp/HAL/src/alt_execve.c b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_execve.c new file mode 100644 index 0000000..27b99cf --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_execve.c @@ -0,0 +1,55 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_errno.h" +#include "sys/alt_warning.h" +#include "os/alt_syscall.h" + +/* + * execve() is used by newlib to launch new processes. This is unsupported in + * the HAL environment. However a "do-nothing" implementation is still + * provied for newlib compatability. + * + * ALT_EXECVE is mapped onto the execve() system call in alt_syscall.h + */ + +int ALT_EXECVE (char *name, char ** argv, char** env) +{ + /* Generate a link time warning, should this function ever be called. */ + + ALT_STUB_WARNING(execve); + + /* Indicate an error */ + + ALT_ERRNO = ENOSYS; + return -1; +} diff --git a/software/qsys_tutorial_hexs_bsp/HAL/src/alt_exit.c b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_exit.c new file mode 100644 index 0000000..971b35e --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_exit.c @@ -0,0 +1,71 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_irq.h" +#include "sys/alt_sim.h" +#include "os/alt_hooks.h" +#include "os/alt_syscall.h" + +#include "alt_types.h" +#include "sys/alt_log_printf.h" +/* + * _exit() is called by exit() in order to terminate the current process. + * Typically this is called when main() completes. It should never return. + * Since there is nowhere to go once this process completes, this + * implementation simply blocks forever. + * + * Note that interrupts are not disabled so that execution outside of this + * thread is allowed to continue. + * + * ALT_EXIT is mapped onto the _exit() system call in alt_syscall.h + */ + +void ALT_EXIT (int exit_code) +{ + /* ALT_LOG - please see HAL/inc/alt_log_printf.h for details */ + ALT_LOG_PRINT_BOOT("[alt_exit.c] Entering _exit() function.\r\n"); + ALT_LOG_PRINT_BOOT("[alt_exit.c] Exit code from main was %d.\r\n",exit_code); + /* Stop all other threads */ + + ALT_LOG_PRINT_BOOT("[alt_exit.c] Calling ALT_OS_STOP().\r\n"); + ALT_OS_STOP(); + + /* Provide notification to the simulator that we've stopped */ + + ALT_LOG_PRINT_BOOT("[alt_exit.c] Calling ALT_SIM_HALT().\r\n"); + ALT_SIM_HALT(exit_code); + + /* spin forever, since there's no where to go back to */ + + ALT_LOG_PRINT_BOOT("[alt_exit.c] Spinning forever.\r\n"); + while (1); +} diff --git a/software/qsys_tutorial_hexs_bsp/HAL/src/alt_fcntl.c b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_fcntl.c new file mode 100644 index 0000000..69c1544 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_fcntl.c @@ -0,0 +1,101 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include + +#include +#include + +#include "sys/alt_errno.h" +#include "priv/alt_file.h" +#include "alt_types.h" +#include "os/alt_syscall.h" + +#define ALT_FCNTL_FLAGS_MASK ((alt_u32) (O_APPEND | O_NONBLOCK)) + +/* + * fcntl() is a limited implementation of the standard fcntl() system call. + * It can be used to change the state of the flags associated with an open + * file descriptor. Normally these flags are set during the call to + * open(). It is anticipated that the main use of this function will be to + * change the state of a device from blocking to non-blocking (where this is + * supported). + * + * The input argument "fd" is the file descriptor to be manipulated. "cmd" + * is the command to execute. This can be either F_GETFL (return the + * current value of the flags) or F_SETFL (set the value of the flags). + * + * If "cmd" is F_SETFL then the argument "arg" is the new value of flags, + * otherwise "arg" is ignored. Only the flags: O_APPEND and O_NONBLOCK + * can be updated by a call to fcntl(). All other flags remain + * unchanged. + * + * ALT_FCNTL is mapped onto the fcntl() system call in alt_syscall.h + */ + +int ALT_FCNTL (int file, int cmd, ...) +{ + alt_fd* fd; + long flags; + va_list argp; + + /* + * A common error case is that when the file descriptor was created, the call + * to open() failed resulting in a negative file descriptor. This is trapped + * below so that we don't try and process an invalid file descriptor. + */ + + fd = (file < 0) ? NULL : &alt_fd_list[file]; + + if (fd) + { + switch (cmd) + { + case F_GETFL: + return fd->fd_flags & ~((alt_u32) ALT_FD_FLAGS_MASK); + case F_SETFL: + va_start(argp, cmd); + flags = va_arg(argp, long); + fd->fd_flags &= ~ALT_FCNTL_FLAGS_MASK; + fd->fd_flags |= (flags & ALT_FCNTL_FLAGS_MASK); + va_end(argp); + return 0; + default: + ALT_ERRNO = EINVAL; + return -1; + } + } + + ALT_ERRNO = EBADFD; + return -1; +} diff --git a/software/qsys_tutorial_hexs_bsp/HAL/src/alt_fd_lock.c b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_fd_lock.c new file mode 100644 index 0000000..0e2a85d --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_fd_lock.c @@ -0,0 +1,75 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +#include "priv/alt_file.h" + +/* + * alt_fd_lock() is called as a consequence of an ioctl call to gain exclusive + * access to a device, i.e.: + * + * ioctl (fd, TIOCEXCL, NULL); + * + * If there are no other open file descriptors which reference the same + * device, then alt_fd_lock() will grant the lock. Further calls to open() + * for this device will fail until the lock is released. + * + * This is done by calling close() for this file descriptor, or by calling: + * + * ioctl (fd, TIOCNXCL, NULL); + * + * The return value is zero for success, or negative in the case of failure. + */ + +int alt_fd_lock (alt_fd* fd) +{ + int i; + int rc = 0; + + ALT_SEM_PEND(alt_fd_list_lock, 0); + + for (i = 0; i < alt_max_fd; i++) + { + if ((&alt_fd_list[i] != fd) && (alt_fd_list[i].dev == fd->dev)) + { + rc = -EACCES; + goto alt_fd_lock_exit; + } + } + fd->fd_flags |= ALT_FD_EXCL; + + alt_fd_lock_exit: + + ALT_SEM_POST(alt_fd_list_lock); + return rc; +} diff --git a/software/qsys_tutorial_hexs_bsp/HAL/src/alt_fd_unlock.c b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_fd_unlock.c new file mode 100644 index 0000000..fb700dc --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_fd_unlock.c @@ -0,0 +1,56 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +#include "priv/alt_file.h" + +/* + * alt_fd_unlock() is the inverse of alt_fd_lock(). It is called as a + * consequence of a TIOCNXCL ioctl request, e.g: + * + * ioctl (fd, TIOCNXCL, NULL); + * + * It enables multiple file descriptors to exist for the same device. This + * is normally the case, but it may have been disabled by a previous call to + * alt_fd_lock(). + * + * Return zero on sucess, and a negative value on failure. + * + * The current implementation always succeeds. + */ + +int alt_fd_unlock (alt_fd* fd) +{ + fd->fd_flags &= ~ALT_FD_EXCL; + return 0; +} diff --git a/software/qsys_tutorial_hexs_bsp/HAL/src/alt_find_dev.c b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_find_dev.c new file mode 100644 index 0000000..37aefa4 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_find_dev.c @@ -0,0 +1,88 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include +#include + +#include "sys/alt_dev.h" +#include "priv/alt_file.h" + +#include "alt_types.h" + +/* + * alt_find_dev() is used by open() in order to locate a previously registered + * device with the name "name". The input argument "llist" is a pointer to the + * head of the device list to search. + * + * The return value is a pointer to the matching device, or NULL if there is + * no match. + * + * "name" must be an exact match for the devices registered name for a match to + * be found. + */ + +alt_dev* alt_find_dev(const char* name, alt_llist* llist) +{ + alt_dev* next = (alt_dev*) llist->next; + alt_32 len; + + len = strlen(name) + 1; + + /* + * Check each list entry in turn, until a match is found, or we reach the + * end of the list (i.e. next winds up pointing back to the list head). + */ + + while (next != (alt_dev*) llist) + { + + /* + * memcmp() is used here rather than strcmp() in order to reduce the size + * of the executable. + */ + + if (!memcmp (next->name, name, len)) + { + /* match found */ + + return next; + } + next = (alt_dev*) next->llist.next; + } + + /* No match found */ + + return NULL; +} + + diff --git a/software/qsys_tutorial_hexs_bsp/HAL/src/alt_find_file.c b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_find_file.c new file mode 100644 index 0000000..2d97ec2 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_find_file.c @@ -0,0 +1,89 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include +#include + +#include "sys/alt_dev.h" +#include "priv/alt_file.h" + +#include "alt_types.h" + +/* + * alt_find_file() is used by open() in order to locate a previously registered + * filesystem that owns that mount point that contains the file named "name". + * + * The return value is a pointer to the matching filesystem, or NULL if there is + * no match. + * + * A match is considered to have been found if the filesystem name followed by + * either '/' or '\0' is the prefix of the filename. For example the filename: + * "/myfilesystem/junk.txt" would match: "/myfilesystem", but not: "/myfile". + */ + +alt_dev* alt_find_file (const char* name) +{ + alt_dev* next = (alt_dev*) alt_fs_list.next; + + alt_32 len; + + /* + * Check each list entry in turn, until a match is found, or we reach the + * end of the list (i.e. next winds up pointing back to the list head). + */ + + while (next != (alt_dev*) &alt_fs_list) + { + len = strlen(next->name); + + if (next->name[len-1] == '/') + { + len -= 1; + } + + if (((name[len] == '/') || (name[len] == '\0')) && + !memcmp (next->name, name, len)) + { + /* match found */ + + return next; + } + next = (alt_dev*) next->llist.next; + } + + /* No match found */ + + return NULL; +} + + diff --git a/software/qsys_tutorial_hexs_bsp/HAL/src/alt_flash_dev.c b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_flash_dev.c new file mode 100644 index 0000000..213f721 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_flash_dev.c @@ -0,0 +1,69 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* Alt_flash.c - Functions to register a flash device to the "generic" flash * +* interface * +* * +* Author PRR * +* * +******************************************************************************/ + +#include +#include "sys/alt_llist.h" +#include "sys/alt_flash_dev.h" +#include "priv/alt_file.h" + +ALT_LLIST_HEAD(alt_flash_dev_list); + +alt_flash_fd* alt_flash_open_dev(const char* name) +{ + alt_flash_dev* dev = (alt_flash_dev*)alt_find_dev(name, &alt_flash_dev_list); + + if ((dev) && dev->open) + { + return dev->open(dev, name); + } + + return dev; +} + +void alt_flash_close_dev(alt_flash_fd* fd) +{ + if (fd && fd->close) + { + fd->close(fd); + } + return; +} + diff --git a/software/qsys_tutorial_hexs_bsp/HAL/src/alt_fork.c b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_fork.c new file mode 100644 index 0000000..ce74df0 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_fork.c @@ -0,0 +1,57 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_warning.h" +#include "sys/alt_errno.h" +#include "os/alt_syscall.h" + +/* + * The fork() system call is used by newlib to create a duplicate copy of the + * curent process. This is unsupported in the HAL environment. However a + * "do-nothing" implementation is still provied for newlib compatability. + * + * ALT_FORK is mapped onto the fork() system call in alt_syscall.h + */ + +int ALT_FORK (void) +{ + /* Generate a link time warning, should this function ever be called. */ + + ALT_STUB_WARNING(fork); + + /* Indicate an error */ + + ALT_ERRNO = ENOSYS; + return -1; +} + + diff --git a/software/qsys_tutorial_hexs_bsp/HAL/src/alt_fs_reg.c b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_fs_reg.c new file mode 100644 index 0000000..13437a1 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_fs_reg.c @@ -0,0 +1,75 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +#include "sys/alt_dev.h" +#include "priv/alt_file.h" + +/* + * The alt_fs_reg() function is used to register a file system. Once registered + * a device can be accessed using the standard posix calls: open(), read(), + * write() etc. + * + * System behaviour is undefined in the event that a file system is registered + * with a name that conflicts with an existing device or file system. + * + * alt_fs_reg() is not thread safe in the sense that there should be no other + * thread using the file system list at the time that alt_dev_reg() is called. In + * practice this means that alt_fs_reg() should only be called while operating + * in a single threaded mode. The expectation is that it will only be called + * by the file system initilisation functions invoked by alt_sys_init(), which in + * turn should only be called by the single threaded C startup code. + * + * A return value of zero indicates success. A negative return value indicates + * failure. + */ + +int alt_fs_reg (alt_dev* dev) +{ + /* + * check that the device has a name. + */ + + if (!dev->name) + { + return -ENODEV; + } + + /* + * register the file system. + */ + + alt_llist_insert(&alt_fs_list, &dev->llist); + + return 0; +} diff --git a/software/qsys_tutorial_hexs_bsp/HAL/src/alt_fstat.c b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_fstat.c new file mode 100644 index 0000000..af5d527 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_fstat.c @@ -0,0 +1,128 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include + +#include "sys/alt_dev.h" +#include "sys/alt_warning.h" +#include "sys/alt_errno.h" +#include "priv/alt_file.h" +#include "os/alt_syscall.h" + +/* + * The fstat() system call is used to obtain information about the capabilities + * of an open file descriptor. By default file descriptors are marked as + * being character devices. If a device or file system wishes to advertise + * alternative capabilities then they can register an fstat() function within + * their associated alt_dev structure. This will be called to fill in the + * entries in the imput "st" structure. + * + * This function is provided for compatability with newlib. + * + * ALT_FSTAT is mapped onto the fstat() system call in alt_syscall.h + */ + +#ifdef ALT_USE_DIRECT_DRIVERS + +#include "system.h" + +/* + * Provide minimal version that just describes all file descriptors + * as character devices for provided stdio devices. + */ +int ALT_FSTAT (int file, struct stat *st) +{ + switch (file) { +#ifdef ALT_STDIN_PRESENT + case 0: /* stdin file descriptor */ +#endif /* ALT_STDIN_PRESENT */ +#ifdef ALT_STDOUT_PRESENT + case 1: /* stdout file descriptor */ +#endif /* ALT_STDOUT_PRESENT */ +#ifdef ALT_STDERR_PRESENT + case 2: /* stderr file descriptor */ +#endif /* ALT_STDERR_PRESENT */ + st->st_mode = _IFCHR; + return 0; + default: + return -1; + } + +#if !defined(ALT_STDIN_PRESENT) && !defined(ALT_STDOUT_PRESENT) && !defined(ALT_STDERR_PRESENT) + /* Generate a link time warning, should this function ever be called. */ + ALT_STUB_WARNING(fstat); +#endif +} + +#else /* !ALT_USE_DIRECT_DRIVERS */ + +int ALT_FSTAT (int file, struct stat *st) +{ + alt_fd* fd; + + /* + * A common error case is that when the file descriptor was created, the call + * to open() failed resulting in a negative file descriptor. This is trapped + * below so that we don't try and process an invalid file descriptor. + */ + + fd = (file < 0) ? NULL : &alt_fd_list[file]; + + if (fd) + { + /* Call the drivers fstat() function to fill out the "st" structure. */ + + if (fd->dev->fstat) + { + return fd->dev->fstat(fd, st); + } + + /* + * If no function is provided, mark the fd as belonging to a character + * device. + */ + + else + { + st->st_mode = _IFCHR; + return 0; + } + } + else + { + ALT_ERRNO = EBADFD; + return -1; + } +} + +#endif /* ALT_USE_DIRECT_DRIVERS */ diff --git a/software/qsys_tutorial_hexs_bsp/HAL/src/alt_get_fd.c b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_get_fd.c new file mode 100644 index 0000000..db17b2c --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_get_fd.c @@ -0,0 +1,105 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include +#include + +#include "sys/alt_dev.h" +#include "priv/alt_file.h" + +#include "alt_types.h" + +#include "system.h" + +/* + * alt_get_fd() is called to allocate a new file descriptor from the file + * descriptor pool. If a file descriptor is succesfully allocated, it is + * configured to refer to device "dev". + * + * The return value is the index of the file descriptor structure (i.e. + * the offset of the file descriptor within the file descriptor array). A + * negative value indicates failure. + */ + +int alt_get_fd (alt_dev* dev) +{ + alt_32 i; + int rc = -EMFILE; + + /* + * Take the alt_fd_list_lock semaphore in order to avoid races when + * accessing the file descriptor pool. + */ + + ALT_SEM_PEND(alt_fd_list_lock, 0); + + /* + * Search through the list of file descriptors, and allocate the first + * free descriptor that's found. + * + * If a free descriptor is found, then the value of "alt_max_fd" is + * updated accordingly. "alt_max_fd" is a 'highwater mark' which + * indicates the highest file descriptor ever allocated. This is used to + * improve efficency when searching the file descriptor list, and + * therefore reduce contention on the alt_fd_list_lock semaphore. + */ + + for (i = 0; i < ALT_MAX_FD; i++) + { + if (!alt_fd_list[i].dev) + { + alt_fd_list[i].dev = dev; + if (i > alt_max_fd) + { + alt_max_fd = i; + } + rc = i; + goto alt_get_fd_exit; + } + } + + alt_get_fd_exit: + + /* + * Release the alt_fd_list_lock semaphore now that we are done with the + * file descriptor pool. + */ + + ALT_SEM_POST(alt_fd_list_lock); + + return rc; +} + + + + diff --git a/software/qsys_tutorial_hexs_bsp/HAL/src/alt_getchar.c b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_getchar.c new file mode 100644 index 0000000..a8f50d5 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_getchar.c @@ -0,0 +1,61 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +#ifdef ALT_USE_DIRECT_DRIVERS +#include "system.h" +#include "sys/alt_driver.h" +#include "sys/alt_stdio.h" +#include "priv/alt_file.h" +#include "unistd.h" +#endif + +/* + * Uses the ALT_DRIVER_READ() macro to call directly to driver if available. + * Otherwise, uses newlib provided getchar() routine. + */ +int +alt_getchar(void) +{ +#ifdef ALT_USE_DIRECT_DRIVERS + ALT_DRIVER_READ_EXTERNS(ALT_STDIN_DEV); + char c; + + if (ALT_DRIVER_READ(ALT_STDIN_DEV, &c, 1, alt_fd_list[STDIN_FILENO].fd_flags) <= 0) { + return -1; + } + return c; +#else + return getchar(); +#endif +} diff --git a/software/qsys_tutorial_hexs_bsp/HAL/src/alt_getpid.c b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_getpid.c new file mode 100644 index 0000000..2228c7e --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_getpid.c @@ -0,0 +1,47 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "os/alt_syscall.h" + +/* + * The getpid() system call is used by newlib to obtain the current process + * id. Since there is only ever a single process in the HAL environment, + * this just returns a constant. + * + * ALT_GETPID is mapped onto the getpid() system call in alt_syscall.h + */ + +int ALT_GETPID (void) +{ + return 0; +} + diff --git a/software/qsys_tutorial_hexs_bsp/HAL/src/alt_gettod.c b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_gettod.c new file mode 100644 index 0000000..ed86cba --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_gettod.c @@ -0,0 +1,125 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include +#include + +#include "sys/alt_alarm.h" +#include "alt_types.h" +#include "os/alt_syscall.h" + +/* + * Macro defining the number of micoseconds in a second. + */ + +#define ALT_US (1000000) + +/* + * "alt_timezone" and "alt_resettime" are the values of the the reset time and + * time zone set through the last call to settimeofday(). By default they are + * zero initialised. + */ + +struct timezone alt_timezone = {0, 0}; +struct timeval alt_resettime = {0, 0}; + +/* + * gettimeofday() can be called to obtain a time structure which indicates the + * current "wall clock" time. This is calculated using the elapsed number of + * system clock ticks, and the value of "alt_resettime" and "alt_timezone" set + * through the last call to settimeofday(). + * + * Warning: if this function is called concurrently with a call to + * settimeofday(), the value returned by gettimeofday() will be unreliable. + * + * ALT_GETTIMEOFDAY is mapped onto the gettimeofday() system call in + * alt_syscall.h + */ + + +#if defined (__GNUC__) && (__GNUC__ >= 4) +int ALT_GETTIMEOFDAY (struct timeval *ptimeval, void *ptimezone_vptr) +{ + struct timezone *ptimezone = (struct timezone*)ptimezone_vptr; +#else +int ALT_GETTIMEOFDAY (struct timeval *ptimeval, struct timezone *ptimezone) +{ +#endif + + alt_u32 nticks = alt_nticks (); + alt_u32 tick_rate = alt_ticks_per_second (); + + /* + * Check to see if the system clock is running. This is indicated by a + * non-zero system clock rate. If the system clock is not running, an error + * is generated and the contents of "ptimeval" and "ptimezone" are not + * updated. + */ + + if (tick_rate) + { + ptimeval->tv_sec = alt_resettime.tv_sec + nticks/tick_rate; + ptimeval->tv_usec = alt_resettime.tv_usec + + (alt_u32)(((alt_u64)nticks*(ALT_US/tick_rate))%ALT_US); + + while(ptimeval->tv_usec < 0) { + if (ptimeval->tv_sec <= 0) + { + ptimeval->tv_sec = 0; + ptimeval->tv_usec = 0; + break; + } + else + { + ptimeval->tv_sec--; + ptimeval->tv_usec += ALT_US; + } + } + + while(ptimeval->tv_usec >= ALT_US) { + ptimeval->tv_sec++; + ptimeval->tv_usec -= ALT_US; + } + + if (ptimezone) + { + ptimezone->tz_minuteswest = alt_timezone.tz_minuteswest; + ptimezone->tz_dsttime = alt_timezone.tz_dsttime; + } + + return 0; + } + + return -ENOTSUP; +} + diff --git a/software/qsys_tutorial_hexs_bsp/HAL/src/alt_gmon.c b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_gmon.c new file mode 100644 index 0000000..6add9f1 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_gmon.c @@ -0,0 +1,272 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003-2005 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include +#include +#include + +#include "priv/nios2_gmon_data.h" + +#include "sys/alt_irq.h" +#include "sys/alt_alarm.h" + + +/* Macros */ + +/* How large should the bins be which we use to generate the histogram */ +#define PCSAMPLE_BYTES_PER_BUCKET 32 + +#define NIOS2_READ_EA(dest) __asm__ ("mov %0, ea" : "=r" (dest)) + +/* The compiler inserts calls to mcount() at the start of + * every function call. The structure mcount_fn_arc records t + * he return address of the function called (in from_pc) + * and the return address of the mcount function + * (in self_pc). The number of times this arc is executed is + * recorded in the field count. + */ +struct mcount_fn_arc +{ + struct mcount_fn_arc * next; + void * from_pc; + unsigned int count; +}; + +/* We need to maintain a list of pointers to the heads of each adjacency + * list so that we can find them when writing out the gmon.out file. Since + * we don't know at the start of program execution how many functions will + * be called we use a list structure to do this. + */ +struct mcount_fn_entry +{ + struct mcount_fn_entry * next; + void * self_pc; + struct mcount_fn_arc * arc_head; +}; + +/* function prototypes */ + +void __mcount_record(void * self_pc, void * from_pc, struct mcount_fn_entry * fn_entry, struct mcount_fn_entry * * fn_head) __attribute__ ((no_instrument_function)); + +static __inline__ void * mcount_allocate(unsigned int size) __attribute__ ((no_instrument_function)); +static int nios2_pcsample_init(void) __attribute__ ((no_instrument_function)); +static alt_u32 nios2_pcsample(void* alarm) __attribute__ ((no_instrument_function)); + +/* global variables */ + +/* stext and etext are defined in the linker script */ +extern char stext[]; +extern char etext[]; + +/* Is the PC sampling stuff enabled yet? */ +static int pcsample_need_init = 1; + +#define HASH_BUCKETS 64 /* Must be a power of 2 */ + +/* This points to the list of adjacency list pointers. */ +struct mcount_fn_entry * __mcount_fn_head[HASH_BUCKETS]; + +/* pointer to the in-memory buffer containing the histogram */ +static unsigned short* s_pcsamples = 0; + +/* the address of the start and end of text section */ +static const unsigned int s_low_pc = (unsigned int)stext; +static const unsigned int s_high_pc = (unsigned int)etext; + +/* the alarm structure to register for pc sampling */ +static alt_alarm s_nios2_pcsample_alarm; + +unsigned int alt_gmon_data[GMON_DATA_SIZE] = +{ + 0x6e6f6d67, /* "gmon" */ + GMON_DATA_SIZE, + 0, + (unsigned int)stext, + (unsigned int)etext, + PCSAMPLE_BYTES_PER_BUCKET, + 0, + (unsigned int)__mcount_fn_head, + (unsigned int)(__mcount_fn_head + HASH_BUCKETS) +}; + +/* This holds the current slab of memory we're allocating out of */ +static char * mcount_slab_ptr = 0; +static int mcount_slab_size = 0; + +#define MCOUNT_SLAB_INCREMENT 1020 + + +/* + * We can't use malloc to allocate memory because that's too complicated, and + * can't be called at interrupt time. Use the lower level allocator instead + * because that's interrupt safe (and because we never free anything). + * + * For speed, we allocate a block of data at once. + */ +static __inline__ void * mcount_allocate(unsigned int size) +{ + void * data; + + if (size > mcount_slab_size) + { + mcount_slab_ptr = sbrk(MCOUNT_SLAB_INCREMENT); + mcount_slab_size = MCOUNT_SLAB_INCREMENT; + } + + data = mcount_slab_ptr; + mcount_slab_ptr += size; + mcount_slab_size -= size; + + return data; +} + + +/* + * Add the arc with the values of frompc and topc given to the graph. + * This function might be called at interrupt time so must be able to + * cope with reentrancy. + * + * The fast case, where we have already allocated a function arc, has been + * handled by the assmebler code. + */ +void __mcount_record(void * self_pc, void * from_pc, struct mcount_fn_entry * fn_entry, struct mcount_fn_entry * * fn_head) +{ + alt_irq_context context; + struct mcount_fn_arc * arc_entry; + + /* Keep trying to start up the PC sampler until it is running. + * (It can't start until the timer is going). + */ + if (pcsample_need_init) + { + pcsample_need_init = 0; + pcsample_need_init = nios2_pcsample_init(); + } + + /* + * We must disable interrupts around the allocation and the list update to + * prevent corruption if the instrumented function is re-entrant. + * + * It's safe for the code above to be stepping through the chain and be + * interrupted by this code modifying it - there is an edge case which will + * leave two copies of the same arc on the list (both with count=1), but + * this is dealt with on the host. + */ + context = alt_irq_disable_all(); + + if (fn_entry == NULL) + { + /* Add it to the list of functions we must output later. */ + fn_entry = (struct mcount_fn_entry *)mcount_allocate(sizeof(struct mcount_fn_entry)); + + fn_entry->self_pc = self_pc; + fn_entry->arc_head = NULL; + + fn_entry->next = *fn_head; + *fn_head = fn_entry; + } + + /* We will need a new list entry - if there was a list entry before + * then the assembler code would have handled it. */ + arc_entry = (struct mcount_fn_arc *)mcount_allocate(sizeof(struct mcount_fn_arc)); + + arc_entry->from_pc = from_pc; + arc_entry->count = 1; + + arc_entry->next = fn_entry->arc_head; + fn_entry->arc_head = arc_entry; + + alt_irq_enable_all(context); +} + + +/* + * nios2_pcsample_init starts profiling. + * It is called the first time mcount is called, and on subsequent calls to + * mcount until it returns zero. It initializes the pc histogram and turns on + * timer driven pc sampling. + */ +static int nios2_pcsample_init(void) +{ + unsigned int pcsamples_size; + + /* We sample the PC every tick */ + unsigned int prof_rate = alt_ticks_per_second(); + if (prof_rate == 0) + return 1; + + /* allocate the histogram buffer s_pcsamples */ + pcsamples_size = (s_high_pc - s_low_pc)/PCSAMPLE_BYTES_PER_BUCKET; + s_pcsamples = (unsigned short*)sbrk(pcsamples_size * sizeof(unsigned short)); + + if (s_pcsamples != 0) + { + /* initialize the buffer to zero */ + memset(s_pcsamples, 0, pcsamples_size * sizeof(unsigned short)); + + alt_gmon_data[GMON_DATA_PROFILE_DATA] = (int)s_pcsamples; + alt_gmon_data[GMON_DATA_PROFILE_RATE] = prof_rate; + + /* Sample every tick (it's cheap) */ + alt_alarm_start(&s_nios2_pcsample_alarm, 1, nios2_pcsample, 0); + } + + return 0; +} + + +/* + * Sample the PC value and store it in the histogram + */ +static alt_u32 nios2_pcsample(void* context) +{ + unsigned int pc; + unsigned int bucket; + + /* read the exception return address - this will be + * inaccurate if there are nested interrupts but we + * assume that this is rare and the inaccuracy will + * not be great */ + NIOS2_READ_EA(pc); + + /* + * If we're within the profilable range then increment the relevant + * bucket in the histogram + */ + if (pc >= s_low_pc && pc < s_high_pc && s_pcsamples != 0) + { + bucket = (pc - s_low_pc)/PCSAMPLE_BYTES_PER_BUCKET; + s_pcsamples[bucket]++; + } + + /* Sample every tick */ + return 1; +} + diff --git a/software/qsys_tutorial_hexs_bsp/HAL/src/alt_icache_flush.c b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_icache_flush.c new file mode 100644 index 0000000..4b706ed --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_icache_flush.c @@ -0,0 +1,84 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "nios2.h" +#include "system.h" + +#include "alt_types.h" +#include "sys/alt_cache.h" + +/* + * alt_icache_flush() is called to flush the instruction cache for a memory + * region of length "len" bytes, starting at address "start". + */ + +void alt_icache_flush (void* start, alt_u32 len) +{ +#if NIOS2_ICACHE_SIZE > 0 + + char* i; + char* end; + + /* + * This is the most we would ever need to flush. + */ + + if (len > NIOS2_ICACHE_SIZE) + { + len = NIOS2_ICACHE_SIZE; + } + + end = ((char*) start) + len; + + for (i = start; i < end; i+= NIOS2_ICACHE_LINE_SIZE) + { + __asm__ volatile ("flushi %0" :: "r" (i)); + } + + /* + * For an unaligned flush request, we've got one more line left. + * Note that this is dependent on NIOS2_ICACHE_LINE_SIZE to be a + * multiple of 2 (which it always is). + */ + + if (((alt_u32) start) & (NIOS2_ICACHE_LINE_SIZE - 1)) + { + __asm__ volatile ("flushi %0" :: "r" (i)); + } + + /* + * Having flushed the cache, flush any stale instructions in the + * pipeline + */ + + __asm__ volatile ("flushp"); + +#endif /* NIOS2_ICACHE_SIZE > 0 */ +} diff --git a/software/qsys_tutorial_hexs_bsp/HAL/src/alt_icache_flush_all.c b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_icache_flush_all.c new file mode 100644 index 0000000..5088552 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_icache_flush_all.c @@ -0,0 +1,46 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "nios2.h" +#include "system.h" + +#include "alt_types.h" +#include "sys/alt_cache.h" + +/* + * alt_icache_flush_all() is called to flush the entire instruction cache. + */ + +void alt_icache_flush_all (void) +{ +#if NIOS2_ICACHE_SIZE > 0 + alt_icache_flush (0, NIOS2_ICACHE_SIZE); +#endif +} diff --git a/software/qsys_tutorial_hexs_bsp/HAL/src/alt_iic.c b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_iic.c new file mode 100644 index 0000000..1db5afa --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_iic.c @@ -0,0 +1,106 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2009 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ +#include "system.h" + +/* + * This file implements the HAL Enhanced interrupt API for Nios II processors + * with an internal interrupt controller (IIC). For most routines, this serves + * as a wrapper layer over the legacy interrupt API (which must be used with + * the IIC only). + * + * Use of the enhanced API is recommended so that application and device + * drivers are compatible with a Nios II system configured with an external + * interrupt controller (EIC), or IIC. This will afford maximum portability. + * + * If an EIC is present, the EIC device driver must provide these routines, + * because their operation will be specific to that EIC type. + */ +#ifndef NIOS2_EIC_PRESENT +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT + +#include "sys/alt_irq.h" +#include "priv/alt_iic_isr_register.h" +#include "priv/alt_legacy_irq.h" + +/** @Function Description: This function registers an interrupt handler. + * If the function is succesful, then the requested interrupt will be enabled upon + * return. Registering a NULL handler will disable the interrupt. + * @API Type: External + * @param ic_id Ignored. + * @param irq IRQ number + * @return 0 if successful, else error (-1) + */ +int alt_ic_isr_register(alt_u32 ic_id, alt_u32 irq, alt_isr_func isr, + void *isr_context, void *flags) +{ + return alt_iic_isr_register(ic_id, irq, isr, isr_context, flags); +} + +/** @Function Description: This function enables a single interrupt. + * @API Type: External + * @param ic_id Ignored. + * @param irq IRQ number + * @return 0 if successful, else error (-1) + */ +int alt_ic_irq_enable (alt_u32 ic_id, alt_u32 irq) +{ + return alt_irq_enable(irq); +} + +/** @Function Description: This function disables a single interrupt. + * @API Type: External + * @param ic_id Ignored. + * @param irq IRQ number + * @return 0 if successful, else error (-1) + */ +int alt_ic_irq_disable(alt_u32 ic_id, alt_u32 irq) +{ + return alt_irq_disable(irq); +} + +/** @Function Description: This function to determine if corresponding + * interrupt is enabled. + * @API Type: External + * @param ic_id Ignored. + * @param irq IRQ number + * @return Zero if corresponding interrupt is disabled and + * non-zero otherwise. + */ +alt_u32 alt_ic_irq_enabled(alt_u32 ic_id, alt_u32 irq) +{ + alt_u32 irq_enabled; + + NIOS2_READ_IENABLE(irq_enabled); + + return (irq_enabled & (1 << irq)) ? 1: 0; +} + +#endif /* ALT_ENHANCED_INTERRUPT_API_PRESENT */ +#endif /* NIOS2_EIC_PRESENT */ diff --git a/software/qsys_tutorial_hexs_bsp/HAL/src/alt_iic_isr_register.c b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_iic_isr_register.c new file mode 100644 index 0000000..b104395 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_iic_isr_register.c @@ -0,0 +1,104 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2009 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ +#include +#include "system.h" + +/* + * Provides an interrupt registry mechanism for the any CPUs internal interrupt + * controller (IIC) when the enhanced interrupt API is active. + */ +#ifndef ALT_CPU_EIC_PRESENT +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT + +#include "alt_types.h" +#include "sys/alt_irq.h" +#include "priv/alt_iic_isr_register.h" + +/* + * The header, alt_irq_entry.h, contains the exception entry point, and is + * provided by the processor component. It is included here, so that the code + * will be added to the executable only if alt_irq_register() is present, i.e. + * if no interrupts are registered - there's no need to provide any + * interrupt handling. + */ + +#include "sys/alt_irq_entry.h" + +/* + * The header, alt_irq_table.h contains a table describing which function + * handles each interrupt. + */ + +#include "priv/alt_irq_table.h" + +/** @Function Description: This function registers an interrupt handler. + * If the function is succesful, then the requested interrupt will be enabled + * upon return. Registering a NULL handler will disable the interrupt. + * + * @API Type: External + * @param ic_id Interrupt controller ID + * @param irq IRQ ID number + * @param isr Pointer to interrupt service routine + * @param isr_context Opaque pointer passed to ISR + * @param flags + * @return 0 if successful, else error (-1) + */ +int alt_iic_isr_register(alt_u32 ic_id, alt_u32 irq, alt_isr_func isr, + void *isr_context, void *flags) +{ + int rc = -EINVAL; + int id = irq; /* IRQ interpreted as the interrupt ID. */ + alt_irq_context status; + + if (id < ALT_NIRQ) + { + /* + * interrupts are disabled while the handler tables are updated to ensure + * that an interrupt doesn't occur while the tables are in an inconsistant + * state. + */ + + status = alt_irq_disable_all(); + + alt_irq[id].handler = isr; + alt_irq[id].context = isr_context; + + rc = (isr) ? alt_ic_irq_enable(ic_id, id) : alt_ic_irq_disable(ic_id, id); + + alt_irq_enable_all(status); + } + + return rc; +} + +#endif /* ALT_ENHANCED_INTERRUPT_API_PRESENT */ +#endif /* ALT_CPU_EIC_PRESENT */ diff --git a/software/qsys_tutorial_hexs_bsp/HAL/src/alt_instruction_exception_entry.c b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_instruction_exception_entry.c new file mode 100644 index 0000000..f4f52fc --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_instruction_exception_entry.c @@ -0,0 +1,203 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2008 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ +#include "sys/alt_exceptions.h" +#include "nios2.h" +#include "alt_types.h" +#include "system.h" + +/* + * This file implements support for calling user-registered handlers for + * instruction-generated exceptions. This handler could also be reached + * in the event of a spurious interrupt. + * + * The handler code is optionally enabled through the "Enable + * Instruction-related Exception API" HAL BSP setting, which will + * define the macro below. + */ +#ifdef ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API + +/* Function pointer to exception callback routine */ +alt_exception_result (*alt_instruction_exception_handler) + (alt_exception_cause, alt_u32, alt_u32) = 0x0; + +/* Link entry routine to .exceptions section */ +int alt_instruction_exception_entry (alt_u32 exception_pc) + __attribute__ ((section (".exceptions"))); + +/* + * This is the entry point for instruction-generated exceptions handling. + * This routine will be called by alt_exceptions_entry.S, after it determines + * that an exception could not be handled by handlers that preceed that + * of instruction-generated exceptions (such as interrupts). + * + * For this to function properly, you must register an exception handler + * using alt_instruction_exception_register(). This routine will call + * that handler if it has been registered. Absent a handler, it will + * break break or hang as discussed below. + */ +int alt_instruction_exception_entry (alt_u32 exception_pc) +{ + alt_u32 cause, badaddr; + +/* + * If the processor hardware has the optional EXCEPTIONS & BADADDR registers, + * read them and pass their content to the user handler. These are always + * present if the MMU or MPU is enabled, and optionally for other advanced + * exception types via the "Extra exceptions information" setting in the + * processor (hardware) configuration. + * + * If these registers are not present, the cause field will be set to + * NIOS2_EXCEPTION_CAUSE_NOT_PRESENT. Your handling routine should + * check the validity of the cause argument before proceeding. + */ +#ifdef NIOS2_HAS_EXTRA_EXCEPTION_INFO + /* Get exception cause & "badaddr" */ + NIOS2_READ_EXCEPTION(cause); + cause = ( (cause & NIOS2_EXCEPTION_REG_CAUSE_MASK) >> + NIOS2_EXCEPTION_REG_CAUSE_OFST ); + + NIOS2_READ_BADADDR(badaddr); +#else + cause = NIOS2_EXCEPTION_CAUSE_NOT_PRESENT; + badaddr = 0; +#endif /* NIOS2_HAS_EXTRA_EXCEPTION_INFO */ + + if(alt_instruction_exception_handler) { + /* + * Call handler. Its return value indicates whether the exception-causing + * instruction should be re-issued. The code that called us, + * alt_eceptions_entry.S, will look at this value and adjust the ea + * register as necessary + */ + return alt_instruction_exception_handler(cause, exception_pc, badaddr); + } + /* + * We got here because an instruction-generated exception occured, but no + * handler is present. We do not presume to know how to handle it. If the + * debugger is present, break, otherwise hang. + * + * If you've reached here in the debugger, consider examining the + * EXCEPTIONS register cause bit-field, which was read into the 'cause' + * variable above, and compare it against the exceptions-type enumeration + * in alt_exceptions.h. This register is availabe if the MMU or MPU is + * present, or if the "Extra exceptions information" hardware option is + * selected. + * + * If you get here then one of the following could have happened: + * + * - An instruction-generated exception occured, and the processor + * does not have the extra exceptions feature enabled, or you + * have not registered a handler using + * alt_instruction_exception_register() + * + * Some examples of instruction-generated exceptions and why they + * might occur: + * + * - Your program could have been compiled for a full-featured + * Nios II core, but it is running on a smaller core, and + * instruction emulation has been disabled by defining + * ALT_NO_INSTRUCTION_EMULATION. + * + * You can work around the problem by re-enabling instruction + * emulation, or you can figure out why your program is being + * compiled for a system other than the one that it is running on. + * + * - Your program has executed a trap instruction, but has not + * implemented a handler for this instruction. + * + * - Your program has executed an illegal instruction (one which is + * not defined in the instruction set). + * + * - Your processor includes an MMU or MPU, and you have enabled it + * before registering an exception handler to service exceptions it + * generates. + * + * The problem could also be hardware related: + * - If your hardware is broken and is generating spurious interrupts + * (a peripheral which negates its interrupt output before its + * interrupt handler has been executed will cause spurious interrupts) + */ + else { +#ifdef NIOS2_HAS_DEBUG_STUB + NIOS2_BREAK(); +#else + while(1) + ; +#endif /* NIOS2_HAS_DEBUG_STUB */ + } + + /* // We should not get here. Remove compiler warning. */ + return NIOS2_EXCEPTION_RETURN_REISSUE_INST; +} + +#endif /* ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API */ + +/* + * This routine indicates whether a particular exception cause will have + * set a valid address into the BADADDR register, which is included + * in the arguments to a user-registered instruction-generated exception + * handler. Many exception types do not set valid contents in BADADDR; + * this is a convenience routine to easily test the validity of that + * argument in your handler. + * + * Note that this routine will return false (0) for cause '12', + * TLB miss. This is because there are four exception types that + * share that cause, two of which do not have a valid BADADDR. You + * must determine BADADDR's validity for these. + * + * Arguments: + * cause: The 5-bit exception cause field of the EXCEPTIONS register, + * shifted to the LSB position. You may pass the 'cause' argument + * in a handler you registered directy to this routine. + * + * Return: 1: BADADDR (bad_addr argument to handler) is valid + * 0: BADADDR is not valid + */ +int alt_exception_cause_generated_bad_addr(alt_exception_cause cause) +{ + switch (cause) { + case NIOS2_EXCEPTION_SUPERVISOR_ONLY_DATA_ADDR: + return 1; + case NIOS2_EXCEPTION_MISALIGNED_DATA_ADDR: + return 1; + case NIOS2_EXCEPTION_MISALIGNED_TARGET_PC: + return 1; + case NIOS2_EXCEPTION_TLB_READ_PERM_VIOLATION: + return 1; + case NIOS2_EXCEPTION_TLB_WRITE_PERM_VIOLATION: + return 1; + case NIOS2_EXCEPTION_MPU_DATA_REGION_VIOLATION: + return 1; + default: + return 0; + } +} diff --git a/software/qsys_tutorial_hexs_bsp/HAL/src/alt_instruction_exception_register.c b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_instruction_exception_register.c new file mode 100644 index 0000000..b059e1d --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_instruction_exception_register.c @@ -0,0 +1,82 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2008 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ +#include "sys/alt_exceptions.h" +#include "alt_types.h" +#include "system.h" + +/* + * This file implements support for calling user-registered handlers for + * instruction-generated exceptions. + * + * The registry API is optionally enabled through the "Enable + * Instruction-related Exception API" HAL BSP setting, which will + * define the macro below. + */ +#ifdef ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API + +/* + * The header, alt_exception_handler_registry.h contains a struct describing + * the registered exception handler + */ +#include "priv/alt_exception_handler_registry.h" + +/* + * Pull in the exception entry assembly code. This will not be linked in + * unless this object is linked into the executable (i.e. only if + * alt_instruction_exception_register() is called). + */ +__asm__( "\n\t.globl alt_exception" ); + +/* + * alt_instruction_exception_register() is called to register a handler to + * service instruction-generated exceptions that are not handled by the + * default exception handler code (interrupts, and optionally unimplemented + * instructions and traps). + * + * Passing null (0x0) in the handler argument will disable a previously- + * registered handler. + * + * Note that if no handler is registered, exceptions that are not processed + * using the built-in handler (interrupts, and optionally unimplemented + * instructions and traps) are treated as unknown exceptions, resulting + * in either a break or an infinite loop. + */ +void alt_instruction_exception_register ( + alt_exception_result (*exception_handler)( + alt_exception_cause cause, + alt_u32 exception_pc, + alt_u32 bad_addr) ) +{ + alt_instruction_exception_handler = exception_handler; +} + +#endif /* ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API */ diff --git a/software/qsys_tutorial_hexs_bsp/HAL/src/alt_io_redirect.c b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_io_redirect.c new file mode 100644 index 0000000..8c862f7 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_io_redirect.c @@ -0,0 +1,98 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include +#include +#include + +#include "sys/alt_dev.h" +#include "priv/alt_file.h" + + +/* + * alt_open_fd() is similar to open() in that it is used to obtain a file + * descriptor for the file named "name". The "flags" and "mode" arguments are + * identical to the "flags" and "mode" arguments of open(). + * + * The distinction between the two functions is that the file descriptor + * structure to use is passed in as an argument, rather than allocated from the + * list of free file descriptors. + * + * This is used by alt_io_redirect() to redirect the stdin, stdout and stderr + * file descriptors to point to new devices. + * + * If the device can not be succesfully opened, then the input file descriptor + * remains unchanged. + */ + +static void alt_open_fd(alt_fd* fd, const char* name, int flags, int mode) +{ + int old; + + old = open (name, flags, mode); + + if (old >= 0) + { + fd->dev = alt_fd_list[old].dev; + fd->priv = alt_fd_list[old].priv; + fd->fd_flags = alt_fd_list[old].fd_flags; + + alt_release_fd (old); + } +} + +/* + * alt_io_redirect() is called once the device/filesystem lists have been + * initialised, but before main(). Its function is to redirect standard in, + * standard out and standard error so that they point to the devices selected by + * the user (as defined in system.h). + * + * Prior to the call to this function, io is directed towards /dev/null. If + * i/o can not be redirected to the requested device, for example if the device + * does not exist, then it remains directed at /dev/null. + */ + +void alt_io_redirect(const char* stdout_dev, + const char* stdin_dev, + const char* stderr_dev) +{ + /* Redirect the channels */ + + alt_open_fd (&alt_fd_list[STDOUT_FILENO], stdout_dev, O_WRONLY, 0777); + alt_open_fd (&alt_fd_list[STDIN_FILENO], stdin_dev, O_RDONLY, 0777); + alt_open_fd (&alt_fd_list[STDERR_FILENO], stderr_dev, O_WRONLY, 0777); +} + + + + diff --git a/software/qsys_tutorial_hexs_bsp/HAL/src/alt_ioctl.c b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_ioctl.c new file mode 100644 index 0000000..f5d7ef1 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_ioctl.c @@ -0,0 +1,170 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +#include "sys/ioctl.h" +#include "sys/alt_errno.h" +#include "sys/alt_warning.h" +#include "priv/alt_file.h" +#include "os/alt_syscall.h" + +/* + * The ioctl() system call is provided so that application code can manipulate + * the i/o capabilities of a device in device specific ways. This is identical + * to the standard posix ioctl() function. + * + * In general this implementation simply vectors ioctl requests to the + * apropriate drivers ioctl function (as registered in the drivers alt_dev + * structure). + * + * However in the case of devices (as oposed to filesystem), the TIOCEXCL and + * TIOCNXCL requests are handled without reference to the driver. These + * requests are used to lock/release a device for exclusive access. + * + * Handling these requests centrally eases the task of device driver + * development. + * + * ALT_IOCTL is mapped onto the ioctl() system call in alt_syscall.h + */ + +#ifdef ALT_USE_DIRECT_DRIVERS + +#include "system.h" +#include "sys/alt_driver.h" + +/* + * Provide minimal version that calls ioctl routine of provided stdio devices. + */ +int ALT_IOCTL (int file, int req, void* arg) +{ +#ifdef ALT_STDIN_PRESENT + ALT_DRIVER_IOCTL_EXTERNS(ALT_STDIN_DEV); +#endif +#ifdef ALT_STDOUT_PRESENT + ALT_DRIVER_IOCTL_EXTERNS(ALT_STDOUT_DEV); +#endif +#ifdef ALT_STDERR_PRESENT + ALT_DRIVER_IOCTL_EXTERNS(ALT_STDERR_DEV); +#endif + +#if !defined(ALT_STDIN_PRESENT) && !defined(ALT_STDOUT_PRESENT) && !defined(ALT_STDERR_PRESENT) + /* Generate a link time warning, should this function ever be called. */ + ALT_STUB_WARNING(ioctl); +#endif + + switch (file) { +#ifdef ALT_STDIN_PRESENT + case 0: /* stdin file descriptor */ + return ALT_DRIVER_IOCTL(ALT_STDIN_DEV, req, arg); +#endif /* ALT_STDIN_PRESENT */ +#ifdef ALT_STDOUT_PRESENT + case 1: /* stdout file descriptor */ + return ALT_DRIVER_IOCTL(ALT_STDOUT_DEV, req, arg); +#endif /* ALT_STDOUT_PRESENT */ +#ifdef ALT_STDERR_PRESENT + case 2: /* stderr file descriptor */ + return ALT_DRIVER_IOCTL(ALT_STDERR_DEV, req, arg); +#endif /* ALT_STDERR_PRESENT */ + default: + ALT_ERRNO = EBADFD; + return -1; + } +} + +#else /* !ALT_USE_DIRECT_DRIVERS */ + +int ALT_IOCTL (int file, int req, void* arg) +{ + alt_fd* fd; + int rc; + + /* + * A common error case is that when the file descriptor was created, the call + * to open() failed resulting in a negative file descriptor. This is trapped + * below so that we don't try and process an invalid file descriptor. + */ + + fd = (file < 0) ? NULL : &alt_fd_list[file]; + + if (fd) + { + + /* + * In the case of device drivers (not file systems) handle the TIOCEXCL + * and TIOCNXCL requests as special cases. + */ + + if (fd->fd_flags & ALT_FD_DEV) + { + if (req == TIOCEXCL) + { + rc = alt_fd_lock (fd); + goto ioctl_done; + } + else if (req == TIOCNXCL) + { + rc = alt_fd_unlock (fd); + goto ioctl_done; + } + } + + /* + * If the driver provides an ioctl() function, call that to handle the + * request, otherwise set the return code to indicate that the request + * could not be processed. + */ + + if (fd->dev->ioctl) + { + rc = fd->dev->ioctl(fd, req, arg); + } + else + { + rc = -ENOTTY; + } + } + else + { + rc = -EBADFD; + } + +ioctl_done: + + if (rc < 0) + { + ALT_ERRNO = -rc; + } + return rc; +} + +#endif /* ALT_USE_DIRECT_DRIVERS */ diff --git a/software/qsys_tutorial_hexs_bsp/HAL/src/alt_irq_entry.S b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_irq_entry.S new file mode 100644 index 0000000..d3efe7d --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_irq_entry.S @@ -0,0 +1,108 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003-2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "system.h" + +/* + * This is the interrupt exception entry point code, which saves all the + * registers and calls the interrupt handler. It should be pulled in using + * a .globl from alt_irq_register.c. This scheme is used so that if an + * interrupt is never registered, then this code will not appear in the + * generated executable, thereby improving code footprint. + */ + + /* + * Explicitly allow the use of r1 (the assembler temporary register) + * within this code. This register is normally reserved for the use of + * the compiler. + */ + .set noat + + /* + * Pull in the exception handler register save code. + */ + .globl alt_exception + + .globl alt_irq_entry + .section .exceptions.entry.label, "xa" +alt_irq_entry: + + /* + * Section .exceptions.entry is in alt_exception_entry.S + * This saves all the caller saved registers and reads estatus into r5 + */ + + .section .exceptions.irqtest, "xa" + +#ifdef ALT_CI_INTERRUPT_VECTOR_N + /* + * Use the interrupt vector custom instruction if present to accelerate + * this code. + * If the interrupt vector custom instruction returns a negative + * value, there are no interrupts active (estatus.pie is 0 + * or ipending is 0) so assume it is a software exception. + */ + custom ALT_CI_INTERRUPT_VECTOR_N, r4, r0, r0 + blt r4, r0, .Lnot_irq +#else + /* + * Test to see if the exception was a software exception or caused + * by an external interrupt, and vector accordingly. + */ + rdctl r4, ipending + andi r2, r5, 1 + beq r2, zero, .Lnot_irq + beq r4, zero, .Lnot_irq +#endif /* ALT_CI_INTERRUPT_VECTOR_N */ + + .section .exceptions.irqhandler, "xa" + /* + * Now that all necessary registers have been preserved, call + * alt_irq_handler() to process the interrupts. + */ + + call alt_irq_handler + + .section .exceptions.irqreturn, "xa" + + br .Lexception_exit + + .section .exceptions.notirq.label, "xa" + +.Lnot_irq: + + /* + * Section .exceptions.exit is in alt_exception_entry.S + * This restores all the caller saved registers + */ + + .section .exceptions.exit.label +.Lexception_exit: + diff --git a/software/qsys_tutorial_hexs_bsp/HAL/src/alt_irq_handler.c b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_irq_handler.c new file mode 100644 index 0000000..3253d02 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_irq_handler.c @@ -0,0 +1,169 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2009 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include "system.h" + +/* + * This interrupt handler only works with an internal interrupt controller + * (IIC). Processors with an external interrupt controller (EIC) use an + * implementation provided by an EIC driver. + */ +#ifndef ALT_CPU_EIC_PRESENT + +#include "sys/alt_irq.h" +#include "os/alt_hooks.h" + +#include "alt_types.h" + +/* + * A table describing each interrupt handler. The index into the array is the + * interrupt id associated with the handler. + * + * When an interrupt occurs, the associated handler is called with + * the argument stored in the context member. + */ +struct ALT_IRQ_HANDLER +{ +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT + void (*handler)(void*); +#else + void (*handler)(void*, alt_u32); +#endif + void *context; +} alt_irq[ALT_NIRQ]; + +/* + * alt_irq_handler() is called by the interrupt exception handler in order to + * process any outstanding interrupts. + * + * It is defined here since it is linked in using weak linkage. + * This means that if there is never a call to alt_irq_register() (above) then + * this function will not get linked in to the executable. This is acceptable + * since if no handler is ever registered, then an interrupt can never occur. + * + * If Nios II interrupt vector custom instruction exists, use it to accelerate + * the dispatch of interrupt handlers. The Nios II interrupt vector custom + * instruction is present if the macro ALT_CI_INTERRUPT_VECTOR defined. + */ + +void alt_irq_handler (void) __attribute__ ((section (".exceptions"))); +void alt_irq_handler (void) +{ +#ifdef ALT_CI_INTERRUPT_VECTOR + alt_32 offset; + char* alt_irq_base = (char*)alt_irq; +#else + alt_u32 active; + alt_u32 mask; + alt_u32 i; +#endif /* ALT_CI_INTERRUPT_VECTOR */ + + /* + * Notify the operating system that we are at interrupt level. + */ + + ALT_OS_INT_ENTER(); + +#ifdef ALT_CI_INTERRUPT_VECTOR + /* + * Call the interrupt vector custom instruction using the + * ALT_CI_INTERRUPT_VECTOR macro. + * It returns the offset into the vector table of the lowest-valued pending + * interrupt (corresponds to highest priority) or a negative value if none. + * The custom instruction assumes that each table entry is eight bytes. + */ + while ((offset = ALT_CI_INTERRUPT_VECTOR) >= 0) { + struct ALT_IRQ_HANDLER* handler_entry = + (struct ALT_IRQ_HANDLER*)(alt_irq_base + offset); +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT + handler_entry->handler(handler_entry->context); +#else + handler_entry->handler(handler_entry->context, offset >> 3); +#endif + } +#else /* ALT_CI_INTERRUPT_VECTOR */ + /* + * Obtain from the interrupt controller a bit list of pending interrupts, + * and then process the highest priority interrupt. This process loops, + * loading the active interrupt list on each pass until alt_irq_pending() + * return zero. + * + * The maximum interrupt latency for the highest priority interrupt is + * reduced by finding out which interrupts are pending as late as possible. + * Consider the case where the high priority interupt is asserted during + * the interrupt entry sequence for a lower priority interrupt to see why + * this is the case. + */ + + active = alt_irq_pending (); + + do + { + i = 0; + mask = 1; + + /* + * Test each bit in turn looking for an active interrupt. Once one is + * found, the interrupt handler asigned by a call to alt_irq_register() is + * called to clear the interrupt condition. + */ + + do + { + if (active & mask) + { +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT + alt_irq[i].handler(alt_irq[i].context); +#else + alt_irq[i].handler(alt_irq[i].context, i); +#endif + break; + } + mask <<= 1; + i++; + + } while (1); + + active = alt_irq_pending (); + + } while (active); +#endif /* ALT_CI_INTERRUPT_VECTOR */ + + /* + * Notify the operating system that interrupt processing is complete. + */ + + ALT_OS_INT_EXIT(); +} + +#endif /* ALT_CPU_EIC_PRESENT */ diff --git a/software/qsys_tutorial_hexs_bsp/HAL/src/alt_irq_register.c b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_irq_register.c new file mode 100644 index 0000000..b5ea474 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_irq_register.c @@ -0,0 +1,102 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2009 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ +#include +#include "system.h" + +/* + * This interrupt registry mechanism works with the Nios II internal interrupt + * controller (IIC) only. Systems with an external interrupt controller (EIC), + * or those with the IIC who are using the enhanced interrupt API will + * utilize the alt_ic_isr_register() routine to register an interrupt. + */ +#ifndef NIOS2_EIC_PRESENT + +#include "sys/alt_irq.h" +#include "priv/alt_legacy_irq.h" +#include "os/alt_hooks.h" + +#include "alt_types.h" + +/* + * The header, alt_irq_entry.h, contains the exception entry point, and is + * provided by the processor component. It is included here, so that the code + * will be added to the executable only if alt_irq_register() is present, i.e. + * if no interrupts are registered - there's no need to provide any + * interrupt handling. + */ + +#include "sys/alt_irq_entry.h" + +/* + * The header, alt_irq_table.h contains a table describing which function + * handles each interrupt. + */ + +#include "priv/alt_irq_table.h" + +/* + * alt_irq_handler() is called to register an interrupt handler. If the + * function is succesful, then the requested interrupt will be enabled upon + * return. Registering a NULL handler will disable the interrupt. + * + * The return value is 0 if the interrupt handler was registered and the + * interrupt was enabled, otherwise it is negative. + */ + +int alt_irq_register (alt_u32 id, + void* context, + alt_isr_func handler) +{ + int rc = -EINVAL; + alt_irq_context status; + + if (id < ALT_NIRQ) + { + /* + * interrupts are disabled while the handler tables are updated to ensure + * that an interrupt doesn't occur while the tables are in an inconsistant + * state. + */ + + status = alt_irq_disable_all (); + + alt_irq[id].handler = handler; + alt_irq[id].context = context; + + rc = (handler) ? alt_irq_enable (id): alt_irq_disable (id); + + alt_irq_enable_all(status); + } + return rc; +} +#endif /* NIOS2_EIC_PRESENT */ + diff --git a/software/qsys_tutorial_hexs_bsp/HAL/src/alt_irq_vars.c b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_irq_vars.c new file mode 100644 index 0000000..8c0a18d --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_irq_vars.c @@ -0,0 +1,47 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "alt_types.h" + +#include "system.h" + +/* + * These global variables are used to save the current list of enabled + * interrupts. See alt_irq.h for further details. + */ + +volatile alt_u32 alt_irq_active = 0; + +#ifndef ALT_EXCEPTION_STACK + +volatile alt_u32 alt_priority_mask = (alt_u32) -1; + +#endif + diff --git a/software/qsys_tutorial_hexs_bsp/HAL/src/alt_isatty.c b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_isatty.c new file mode 100644 index 0000000..9276472 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_isatty.c @@ -0,0 +1,125 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include + +#include "sys/alt_dev.h" +#include "sys/alt_errno.h" +#include "sys/alt_warning.h" +#include "priv/alt_file.h" +#include "os/alt_syscall.h" + +#ifdef ALT_USE_DIRECT_DRIVERS + +#include "system.h" + +/* + * Provide minimal version that just describes all file descriptors + * as tty devices for provided stdio devices. + */ +int ALT_ISATTY (int file) +{ + switch (file) { +#ifdef ALT_STDIN_PRESENT + case 0: /* stdin file descriptor */ +#endif /* ALT_STDIN_PRESENT */ +#ifdef ALT_STDOUT_PRESENT + case 1: /* stdout file descriptor */ +#endif /* ALT_STDOUT_PRESENT */ +#ifdef ALT_STDERR_PRESENT + case 2: /* stderr file descriptor */ +#endif /* ALT_STDERR_PRESENT */ + return 1; + default: + return 0; + } + +#if !defined(ALT_STDIN_PRESENT) && !defined(ALT_STDOUT_PRESENT) && !defined(ALT_STDERR_PRESENT) + /* Generate a link time warning, should this function ever be called. */ + ALT_STUB_WARNING(isatty); +#endif +} + +#else /* !ALT_USE_DIRECT_DRIVERS */ +/* + * isatty() can be used to determine whether the input file descriptor "file" + * refers to a terminal device or not. If it is a terminal device then the + * return value is one, otherwise it is zero. + * + * ALT_ISATTY is mapped onto the isatty() system call in alt_syscall.h + */ + +int ALT_ISATTY (int file) +{ + alt_fd* fd; + struct stat stat; + + /* + * A common error case is that when the file descriptor was created, the call + * to open() failed resulting in a negative file descriptor. This is trapped + * below so that we don't try and process an invalid file descriptor. + */ + + fd = (file < 0) ? NULL : &alt_fd_list[file]; + + if (fd) + { + /* + * If a device driver does not provide an fstat() function, then it is + * treated as a terminal device by default. + */ + + if (!fd->dev->fstat) + { + return 1; + } + + /* + * If a driver does provide an implementation of the fstat() function, then + * this is called so that the device can identify itself. + */ + + else + { + fstat (file, &stat); + return (stat.st_mode == _IFCHR) ? 1 : 0; + } + } + else + { + ALT_ERRNO = EBADFD; + return 0; + } +} + +#endif /* ALT_USE_DIRECT_DRIVERS */ diff --git a/software/qsys_tutorial_hexs_bsp/HAL/src/alt_kill.c b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_kill.c new file mode 100644 index 0000000..42c2e1d --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_kill.c @@ -0,0 +1,121 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include + +#include "sys/alt_errno.h" +#include "os/alt_syscall.h" + + +/* + * kill() is used by newlib in order to send signals to processes. Since there + * is only a single process in the HAL, the only valid values for pid are + * either the current process id, or the broadcast values, i.e. pid must be + * less than or equal to zero. + * + * ALT_KILL is mapped onto the kill() system call in alt_syscall.h + */ + +int ALT_KILL (int pid, int sig) +{ + int status = 0; + + if (pid <= 0) + { + switch (sig) + { + case 0: + + /* The null signal is used to check that a pid is valid. */ + + break; + + case SIGABRT: + case SIGALRM: + case SIGFPE: + case SIGILL: + case SIGKILL: + case SIGPIPE: + case SIGQUIT: + case SIGSEGV: + case SIGTERM: + case SIGUSR1: + case SIGUSR2: + case SIGBUS: + case SIGPOLL: + case SIGPROF: + case SIGSYS: + case SIGTRAP: + case SIGVTALRM: + case SIGXCPU: + case SIGXFSZ: + + /* + * The Posix standard defines the default behaviour for all these signals + * as being eqivalent to a call to _exit(). No mechanism is provided to + * change this behaviour. + */ + + _exit(0); + case SIGCHLD: + case SIGURG: + + /* + * The Posix standard defines these signals to be ignored by default. No + * mechanism is provided to change this behaviour. + */ + + break; + default: + + /* Tried to send an unsupported signal */ + + status = EINVAL; + } + } + + else if (pid > 0) + { + /* Attempted to signal a non-existant process */ + + status = ESRCH; + } + + if (status) + { + ALT_ERRNO = status; + return -1; + } + + return 0; +} diff --git a/software/qsys_tutorial_hexs_bsp/HAL/src/alt_link.c b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_link.c new file mode 100644 index 0000000..d796c59 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_link.c @@ -0,0 +1,56 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_warning.h" +#include "sys/alt_errno.h" +#include "os/alt_syscall.h" + +/* + * link() is used by newlib to create a new link to an existing file. This is + * unsupported in the HAL environment. However a "do-nothing" implementation + * is still provied for newlib compatability. + * + * ALT_LINK is mapped onto the link() system call in alt_syscall.h + */ + +int ALT_LINK ( char *existing, char *new) +{ + /* Generate a link time warning, should this function ever be called. */ + + ALT_STUB_WARNING(link); + + /* Indicate an error */ + + ALT_ERRNO = ENOSYS; + return -1; +} + diff --git a/software/qsys_tutorial_hexs_bsp/HAL/src/alt_load.c b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_load.c new file mode 100644 index 0000000..ffab4b9 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_load.c @@ -0,0 +1,88 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004-2005 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_load.h" +#include "sys/alt_cache.h" + +/* + * Linker defined symbols. + */ + +extern void __flash_rwdata_start; +extern void __ram_rwdata_start; +extern void __ram_rwdata_end; +extern void __flash_rodata_start; +extern void __ram_rodata_start; +extern void __ram_rodata_end; +extern void __flash_exceptions_start; +extern void __ram_exceptions_start; +extern void __ram_exceptions_end; + +/* + * alt_load() is called when the code is executing from flash. In this case + * there is no bootloader, so this application is responsible for loading to + * RAM any sections that are required. + */ + +void alt_load (void) +{ + /* + * Copy the .rwdata section. + */ + + alt_load_section (&__flash_rwdata_start, + &__ram_rwdata_start, + &__ram_rwdata_end); + + /* + * Copy the exception handler. + */ + + alt_load_section (&__flash_exceptions_start, + &__ram_exceptions_start, + &__ram_exceptions_end); + + /* + * Copy the .rodata section. + */ + + alt_load_section (&__flash_rodata_start, + &__ram_rodata_start, + &__ram_rodata_end); + + /* + * Now ensure that the caches are in synch. + */ + + alt_dcache_flush_all(); + alt_icache_flush_all(); +} diff --git a/software/qsys_tutorial_hexs_bsp/HAL/src/alt_log_macro.S b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_log_macro.S new file mode 100644 index 0000000..499c4ad --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_log_macro.S @@ -0,0 +1,56 @@ +/* alt_log_macro.S + * + * Implements the function tx_log_str, called by the assembly macro + * ALT_LOG_PUTS(). The macro will be empty when logging is turned off, + * and this function will not be compiled. When logging is on, + * this function is used to print out the strings defined in the beginning + * of alt_log_printf.c, using port information taken from system.h and + * alt_log_printf.h. + * + * This routine only handles strings, and sends a character into the defined + * output device's output buffer when the device is ready. It's intended for + * debugging purposes, where messages can be set to print out at certain + * points in the boot code to indicate the progress of the program. + * + */ + +#ifndef __ALT_LOG_MACROS__ +#define __ALT_LOG_MACROS__ + +/* define this flag to skip assembly-incompatible parts + * of various include files. */ +#define ALT_ASM_SRC + +#ifdef ALT_LOG_ENABLE // only compile this function if this flag is defined. + + #include "system.h" + #include "sys/alt_log_printf.h" + + .global tx_log_str +tx_log_str: + /* load base uart / jtag uart address into r6 */ + movhi r6, %hiadj(ALT_LOG_PORT_BASE) + addi r6, r6, %lo(ALT_LOG_PORT_BASE) +tx_next_char: + /* if pointer points to null, return + * r4 is the pointer to the str to be printed, set by ALT_LOG_PUTS */ + ldb r7, (r4) + beq r0, r7, end_tx + + /* check device transmit ready */ +wait_tx_ready_loop: + ldwio r5, ALT_LOG_PRINT_REG_OFFSET(r6) + andi r5, r5, ALT_LOG_PRINT_MSK + beq r5, r0, wait_tx_ready_loop + /* write char */ + stwio r7, ALT_LOG_PRINT_TXDATA_REG_OFFSET (r6) + /* advance string pointer */ + addi r4, r4, 1 + br tx_next_char +end_tx: + ret + +#endif + +#endif /* __ALT_LOG_MACROS__ */ + diff --git a/software/qsys_tutorial_hexs_bsp/HAL/src/alt_log_printf.c b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_log_printf.c new file mode 100644 index 0000000..1f7056d --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_log_printf.c @@ -0,0 +1,479 @@ + +/* alt_log_printf.c + * + * This file implements the various C functions used for the + * alt_log logging/debugging print functions. The functions + * sit as is here - the job of hiding them from the compiler + * if logging is disabled is accomplished in the .h file. + * + * All the global variables for alt_log are defined here. + * These include the various flags that turn on additional + * logging options; the strings for assembly printing; and + * other globals needed by different logging options. + * + * There are 4 functions that handle the actual printing: + * alt_log_txchar: Actual function that puts 1 char to UART/JTAG UART. + * alt_log_repchar: Calls alt_log_txchar 'n' times - used by + * alt_log_private_printf for formatting. + * alt_log_private_printf: + * Stripped down implementation of printf - no floats. + * alt_log_printf_proc: + * Wrapper function for private_printf. + * + * The rest of the functions are called by the macros which + * were called by code in the other components. Each function + * is preceded by a comment, about which file it gets called + * in, and what its purpose is. + * + * author: gkwan + */ + +/* skip all code if enable is off */ +#ifdef ALT_LOG_ENABLE + +#include +#include +#include +#ifdef __ALTERA_AVALON_JTAG_UART + #include "altera_avalon_jtag_uart.h" + #include +#endif +#include "sys/alt_log_printf.h" + +/* strings for assembly puts */ +char alt_log_msg_bss[] = "[crt0.S] Clearing BSS \r\n";; +char alt_log_msg_alt_main[] = "[crt0.S] Calling alt_main.\r\n"; +char alt_log_msg_stackpointer[] \ + = "[crt0.S] Setting up stack and global pointers.\r\n"; +char alt_log_msg_cache[] = "[crt0.S] Inst & Data Cache Initialized.\r\n"; +/* char array allocation for alt_write */ +char alt_log_write_buf[ALT_LOG_WRITE_ECHO_LEN+2]; + +/* global variables for all 'on' flags */ + +/* + * The boot message flag is linked into the data (rwdata) section + * because if it is zero, it would otherwise be placed in the bss section. + * alt_log examines this variable before the BSS is cleared in the boot-up + * process. + */ +volatile alt_u32 alt_log_boot_on_flag \ + __attribute__ ((section (".data"))) = ALT_LOG_BOOT_ON_FLAG_SETTING; + +volatile alt_u8 alt_log_write_on_flag = ALT_LOG_WRITE_ON_FLAG_SETTING; + +volatile alt_u8 alt_log_sys_clk_on_flag = ALT_LOG_SYS_CLK_ON_FLAG_SETTING; + +volatile alt_u8 alt_log_jtag_uart_alarm_on_flag = \ + ALT_LOG_JTAG_UART_ALARM_ON_FLAG_SETTING; + +volatile alt_u8 alt_log_jtag_uart_isr_on_flag = \ + ALT_LOG_JTAG_UART_ISR_ON_FLAG_SETTING; + +volatile alt_u8 alt_log_jtag_uart_startup_info_on_flag = \ + ALT_LOG_JTAG_UART_STARTUP_INFO_ON_FLAG_SETTING; + +/* Global alarm object for recurrent JTAG UART status printing */ +alt_alarm alt_log_jtag_uart_alarm_1; + +/* Global ints for system clock printing and count */ +volatile int alt_log_sys_clk_count; +volatile int alt_system_clock_in_sec; + +/* enum used by alt_log_private_printf */ +enum +{ + pfState_chars, + pfState_firstFmtChar, + pfState_otherFmtChar +}; + + + + +/* Function to put one char onto the UART/JTAG UART txdata register. */ +void alt_log_txchar(int c,char *base) +{ + /* Wait until the device is ready for a character */ + while((ALT_LOG_PRINT_REG_RD(base) & ALT_LOG_PRINT_MSK) == 0) + ; + /* And pop the character into the register */ + ALT_LOG_PRINT_TXDATA_WR(base,c); +} + + +/* Called by alt_log_private_printf to print out characters repeatedly */ +void alt_log_repchar(char c,int r,int base) +{ + while(r-- > 0) + alt_log_txchar(c,(char*) base); +} + + +/* Stripped down printf function */ +void alt_log_private_printf(const char *fmt,int base,va_list args) + { + const char *w; + char c; + int state; + int fmtLeadingZero = 0; /* init these all to 0 for -W warnings. */ + int fmtLong = 0; + int fmtBeforeDecimal = 0; + int fmtAfterDecimal = 0; + int fmtBase = 0; + int fmtSigned = 0; + int fmtCase = 0; /* For hex format, if 1, A-F, else a-f. */ + + w = fmt; + state = pfState_chars; + + while(0 != (c = *w++)) + { + switch(state) + { + case pfState_chars: + if(c == '%') + { + fmtLeadingZero = 0; + fmtLong = 0; + fmtBase = 10; + fmtSigned = 1; + fmtCase = 0; /* Only %X sets this. */ + fmtBeforeDecimal = -1; + fmtAfterDecimal = -1; + state = pfState_firstFmtChar; + } + else + { + alt_log_txchar(c,(char*)base); + } + break; + + case pfState_firstFmtChar: + if(c == '0') + { + fmtLeadingZero = 1; + state = pfState_otherFmtChar; + } + else if(c == '%') + { + alt_log_txchar(c,(char*)base); + state = pfState_chars; + } + else + { + state = pfState_otherFmtChar; + goto otherFmtChar; + } + break; + + case pfState_otherFmtChar: +otherFmtChar: + if(c == '.') + { + fmtAfterDecimal = 0; + } + else if('0' <= c && c <= '9') + { + c -= '0'; + if(fmtAfterDecimal < 0) /* still before decimal */ + { + if(fmtBeforeDecimal < 0) + { + fmtBeforeDecimal = 0; + } + else + { + fmtBeforeDecimal *= 10; + } + fmtBeforeDecimal += c; + } + else + { + fmtAfterDecimal = (fmtAfterDecimal * 10) + c; + } + } + else if(c == 'l') + { + fmtLong = 1; + } + else /* we're up to the letter which determines type */ + { + switch(c) + { + case 'd': + case 'i': +doIntegerPrint: + { + unsigned long v; + unsigned long p; /* biggest power of fmtBase */ + unsigned long vShrink; /* used to count digits */ + int sign; + int digitCount; + + /* Get the value */ + if(fmtLong) + { + if (fmtSigned) + { + v = va_arg(args,long); + } + else + { + v = va_arg(args,unsigned long); + } + } + else + { + if (fmtSigned) + { + v = va_arg(args,int); + } + else + { + v = va_arg(args,unsigned int); + } + } + + /* Strip sign */ + sign = 0; + /* (assumes sign bit is #31) */ + if( fmtSigned && (v & (0x80000000)) ) + { + v = ~v + 1; + sign = 1; + } + + /* Count digits, and get largest place value */ + vShrink = v; + p = 1; + digitCount = 1; + while( (vShrink = vShrink / fmtBase) > 0 ) + { + digitCount++; + p *= fmtBase; + } + + /* Print leading characters & sign */ + fmtBeforeDecimal -= digitCount; + if(fmtLeadingZero) + { + if(sign) + { + alt_log_txchar('-',(char*)base); + fmtBeforeDecimal--; + } + alt_log_repchar('0',fmtBeforeDecimal,base); + } + else + { + if(sign) + { + fmtBeforeDecimal--; + } + alt_log_repchar(' ',fmtBeforeDecimal,base); + if(sign) + { + alt_log_txchar('-',(char*)base); + } + } + + /* Print numbery parts */ + while(p) + { + unsigned char d; + + d = v / p; + d += '0'; + if(d > '9') + { + d += (fmtCase ? 'A' : 'a') - '0' - 10; + } + alt_log_txchar(d,(char*)base); + + v = v % p; + p = p / fmtBase; + } + } + + state = pfState_chars; + break; + + case 'u': + fmtSigned = 0; + goto doIntegerPrint; + case 'o': + fmtSigned = 0; + fmtBase = 8; + goto doIntegerPrint; + case 'x': + fmtSigned = 0; + fmtBase = 16; + goto doIntegerPrint; + case 'X': + fmtSigned = 0; + fmtBase = 16; + fmtCase = 1; + goto doIntegerPrint; + + case 'c': + alt_log_repchar(' ',fmtBeforeDecimal-1,base); + alt_log_txchar(va_arg(args,int),(char*)base); + break; + + case 's': + { + char *s; + + s = va_arg(args,char *); + alt_log_repchar(' ',fmtBeforeDecimal-strlen(s),base); + + while(*s) + alt_log_txchar(*s++,(char*)base); + } + break; + } /* switch last letter of fmt */ + state=pfState_chars; + } + break; + } /* switch */ + } /* while chars left */ + } /* printf */ + +/* Main logging printf function */ +int alt_log_printf_proc(const char *fmt, ... ) +{ + va_list args; + + va_start (args, fmt); + alt_log_private_printf(fmt,ALT_LOG_PORT_BASE,args); + return (0); +} + +/* Below are the functions called by different macros in various components. */ + +/* If the system has a JTAG_UART, include JTAG_UART debugging functions */ +#ifdef __ALTERA_AVALON_JTAG_UART + +/* The alarm function in altera_avalon_jtag_uart.c. + * This function, when turned on, prints out the status + * of the JTAG UART Control register, every ALT_LOG_JTAG_UART_TICKS. + * If the flag is off, the alarm should never be registered, and this + * function should never run */ +alt_u32 altera_avalon_jtag_uart_report_log(void * context) +{ + if (alt_log_jtag_uart_alarm_on_flag) { + altera_avalon_jtag_uart_state* dev = (altera_avalon_jtag_uart_state*) context; + const char* header="JTAG Alarm:"; + alt_log_jtag_uart_print_control_reg(dev, dev->base, header); + return ALT_LOG_JTAG_UART_TICKS; + } + else + { + /* If flag is not on, return 0 to disable future alarms. + * Should never be here, alarm should not be enabled at all. */ + return 0; + } +} + +void alt_log_jtag_uart_print_control_reg(altera_avalon_jtag_uart_state* dev, int base, const char* header) +{ + unsigned int control, space, ac, wi, ri, we, re; + control = IORD_ALTERA_AVALON_JTAG_UART_CONTROL(base); + space = (control & ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_MSK) >> + ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_OFST; + we= (control & ALTERA_AVALON_JTAG_UART_CONTROL_WE_MSK) >> + ALTERA_AVALON_JTAG_UART_CONTROL_WE_OFST; + re= (control & ALTERA_AVALON_JTAG_UART_CONTROL_RE_MSK) >> + ALTERA_AVALON_JTAG_UART_CONTROL_RE_OFST; + ri= (control & ALTERA_AVALON_JTAG_UART_CONTROL_RI_MSK) >> + ALTERA_AVALON_JTAG_UART_CONTROL_RI_OFST; + wi= (control & ALTERA_AVALON_JTAG_UART_CONTROL_WI_MSK) >> + ALTERA_AVALON_JTAG_UART_CONTROL_WI_OFST; + ac= (control & ALTERA_AVALON_JTAG_UART_CONTROL_AC_MSK) >> + ALTERA_AVALON_JTAG_UART_CONTROL_AC_OFST; + +#ifdef ALTERA_AVALON_JTAG_UART_SMALL + ALT_LOG_PRINTF( + "%s HW FIFO wspace=%d AC=%d WI=%d RI=%d WE=%d RE=%d\r\n", + header,space,ac,wi,ri,we,re); +#else + ALT_LOG_PRINTF( + "%s SW CirBuf = %d, HW FIFO wspace=%d AC=%d WI=%d RI=%d WE=%d RE=%d\r\n", + header,(dev->tx_out-dev->tx_in),space,ac,wi,ri,we,re); +#endif + + return; + +} + +/* In altera_avalon_jtag_uart.c + * Same output as the alarm function above, but this is called in the driver + * init function. Hence, it gives the status of the JTAG UART control register + * right at the initialization of the driver */ +void alt_log_jtag_uart_startup_info(altera_avalon_jtag_uart_state* dev, int base) +{ + const char* header="JTAG Startup Info:"; + alt_log_jtag_uart_print_control_reg(dev, base, header); + return; +} + +/* In altera_avalon_jtag_uart.c + * When turned on, this function will print out the status of the jtag uart + * control register every time there is a jtag uart "almost-empty" interrupt. */ +void alt_log_jtag_uart_isr_proc(int base, altera_avalon_jtag_uart_state* dev) +{ + if (alt_log_jtag_uart_isr_on_flag) { + const char* header="JTAG IRQ:"; + alt_log_jtag_uart_print_control_reg(dev, base, header); + } + return; +} + +#endif /* __ALTERA_AVALON_JTAG_UART */ + +/* In alt_write.c + * When the alt_log_write_on_flag is turned on, this function gets called + * every time alt_write gets called. The first + * ALT_LOG_WRITE_ECHO_LEN characters of every printf command (or any command + * that eventually calls write()) gets echoed to the alt_log output. */ +void alt_log_write(const void *ptr, size_t len) +{ + if (alt_log_write_on_flag) { + int temp_cnt; + int length=(ALT_LOG_WRITE_ECHO_LEN>len) ? len : ALT_LOG_WRITE_ECHO_LEN; + + if (length < 2) return; + + strncpy (alt_log_write_buf,ptr,length); + alt_log_write_buf[length-1]='\n'; + alt_log_write_buf[length]='\r'; + alt_log_write_buf[length+1]='\0'; + + /* Escape Ctrl-D's. If the Ctrl-D gets sent it might kill the terminal + * connection of alt_log. It will get replaced by 'D'. */ + for (temp_cnt=0;temp_cnt < length; temp_cnt++) { + if (alt_log_write_buf[temp_cnt]== 0x4) { + alt_log_write_buf[temp_cnt]='D'; + } + } + ALT_LOG_PRINTF("Write Echo: %s",alt_log_write_buf); + } +} + +/* In altera_avalon_timer_sc + * This function prints out a system clock is alive message + * every ALT_LOG_SYS_CLK_INTERVAL (in ticks). */ +void alt_log_system_clock() +{ + if (alt_log_sys_clk_on_flag) { + alt_log_sys_clk_count++; + if (alt_log_sys_clk_count > ALT_LOG_SYS_CLK_INTERVAL) { + alt_log_sys_clk_count = 0; + ALT_LOG_PRINTF("System Clock On %u\r\n",alt_system_clock_in_sec++); + } + } +} + + +#endif diff --git a/software/qsys_tutorial_hexs_bsp/HAL/src/alt_lseek.c b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_lseek.c new file mode 100644 index 0000000..7857b0d --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_lseek.c @@ -0,0 +1,117 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004-2005 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +#include "sys/alt_errno.h" +#include "sys/alt_warning.h" +#include "priv/alt_file.h" +#include "os/alt_syscall.h" + +#ifdef ALT_USE_DIRECT_DRIVERS + +off_t ALT_LSEEK (int file, off_t ptr, int dir) +{ + /* Generate a link time warning, should this function ever be called. */ + + ALT_STUB_WARNING(lseek); + + /* Indicate an error */ + + ALT_ERRNO = ENOSYS; + return -1; +} + +#else /* !ALT_USE_DIRECT_DRIVERS */ + +/* + * lseek() can be called to move the read/write pointer associated with the + * file descriptor "file". This function simply vectors the call to the lseek() + * function provided by the driver associated with the file descriptor. + * + * If the driver does not provide an implementation of lseek() an error is + * indicated. + * + * lseek() corresponds to the standard lseek() function. + * + * ALT_LSEEK is mapped onto the lseek() system call in alt_syscall.h + * + */ + +off_t ALT_LSEEK (int file, off_t ptr, int dir) +{ + alt_fd* fd; + off_t rc = 0; + + /* + * A common error case is that when the file descriptor was created, the call + * to open() failed resulting in a negative file descriptor. This is trapped + * below so that we don't try and process an invalid file descriptor. + */ + + fd = (file < 0) ? NULL : &alt_fd_list[file]; + + if (fd) + { + /* + * If the device driver provides an implementation of the lseek() function, + * then call that to process the request. + */ + + if (fd->dev->lseek) + { + rc = fd->dev->lseek(fd, ptr, dir); + } + /* + * Otherwise return an error. + */ + + else + { + rc = -ENOTSUP; + } + } + else + { + rc = -EBADFD; + } + + if (rc < 0) + { + ALT_ERRNO = -rc; + rc = -1; + } + + return rc; +} + +#endif /* ALT_USE_DIRECT_DRIVERS */ diff --git a/software/qsys_tutorial_hexs_bsp/HAL/src/alt_main.c b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_main.c new file mode 100644 index 0000000..a96229b --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_main.c @@ -0,0 +1,161 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2007 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include +#include +#include +#include +#include + +#include "sys/alt_dev.h" +#include "sys/alt_sys_init.h" +#include "sys/alt_irq.h" +#include "sys/alt_dev.h" + +#include "os/alt_hooks.h" + +#include "priv/alt_file.h" +#include "alt_types.h" + +#include "system.h" + +#include "sys/alt_log_printf.h" + +extern void _do_ctors(void); +extern void _do_dtors(void); + +/* + * Standard arguments for main. By default, no arguments are passed to main. + * However a device driver may choose to configure these arguments by calling + * alt_set_args(). The expectation is that this facility will only be used by + * the iclient/ihost utility. + */ + +int alt_argc = 0; +char** alt_argv = {NULL}; +char** alt_envp = {NULL}; + +/* + * Prototype for the entry point to the users application. + */ + +extern int main (int, char **, char **); + +/* + * alt_main is the C entry point for the HAL. It is called by the assembler + * startup code in the processor specific crt0.S. It is responsible for: + * completing the C runtime configuration; configuring all the + * devices/filesystems/components in the system; and call the entry point for + * the users application, i.e. main(). + */ + +void alt_main (void) +{ +#ifndef ALT_NO_EXIT + int result; +#endif + + /* ALT LOG - please see HAL/sys/alt_log_printf.h for details */ + ALT_LOG_PRINT_BOOT("[alt_main.c] Entering alt_main, calling alt_irq_init.\r\n"); + /* Initialize the interrupt controller. */ + alt_irq_init (NULL); + + /* Initialize the operating system */ + ALT_LOG_PRINT_BOOT("[alt_main.c] Done alt_irq_init, calling alt_os_init.\r\n"); + ALT_OS_INIT(); + + /* + * Initialize the semaphore used to control access to the file descriptor + * list. + */ + + ALT_LOG_PRINT_BOOT("[alt_main.c] Done OS Init, calling alt_sem_create.\r\n"); + ALT_SEM_CREATE (&alt_fd_list_lock, 1); + + /* Initialize the device drivers/software components. */ + ALT_LOG_PRINT_BOOT("[alt_main.c] Calling alt_sys_init.\r\n"); + alt_sys_init(); + ALT_LOG_PRINT_BOOT("[alt_main.c] Done alt_sys_init.\r\n"); + +#if !defined(ALT_USE_DIRECT_DRIVERS) && (defined(ALT_STDIN_PRESENT) || defined(ALT_STDOUT_PRESENT) || defined(ALT_STDERR_PRESENT)) + + /* + * Redirect stdio to the apropriate devices now that the devices have + * been initialized. This is only done if the user has requested these + * devices be present (not equal to /dev/null) and if direct drivers + * aren't being used. + */ + + ALT_LOG_PRINT_BOOT("[alt_main.c] Redirecting IO.\r\n"); + alt_io_redirect(ALT_STDOUT, ALT_STDIN, ALT_STDERR); +#endif + +#ifndef ALT_NO_C_PLUS_PLUS + /* + * Call the C++ constructors + */ + + ALT_LOG_PRINT_BOOT("[alt_main.c] Calling C++ constructors.\r\n"); + _do_ctors (); +#endif /* ALT_NO_C_PLUS_PLUS */ + +#if !defined(ALT_NO_C_PLUS_PLUS) && !defined(ALT_NO_CLEAN_EXIT) && !defined(ALT_NO_EXIT) + /* + * Set the C++ destructors to be called at system shutdown. This is only done + * if a clean exit has been requested (i.e. the exit() function has not been + * redefined as _exit()). This is in the interest of reducing code footprint, + * in that the atexit() overhead is removed when it's not needed. + */ + + ALT_LOG_PRINT_BOOT("[alt_main.c] Calling atexit.\r\n"); + atexit (_do_dtors); +#endif + + /* + * Finally, call main(). The return code is then passed to a subsequent + * call to exit() unless the application is never supposed to exit. + */ + + ALT_LOG_PRINT_BOOT("[alt_main.c] Calling main.\r\n"); + +#ifdef ALT_NO_EXIT + main (alt_argc, alt_argv, alt_envp); +#else + result = main (alt_argc, alt_argv, alt_envp); + close(STDOUT_FILENO); + exit (result); +#endif + + ALT_LOG_PRINT_BOOT("[alt_main.c] After main - we should not be here?.\r\n"); +} + diff --git a/software/qsys_tutorial_hexs_bsp/HAL/src/alt_malloc_lock.c b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_malloc_lock.c new file mode 100644 index 0000000..8c78f46 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_malloc_lock.c @@ -0,0 +1,52 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +/* + * These are the empty malloc lock/unlock stubs required by newlib. These are + * used to make newlib's malloc() function thread safe. The default HAL + * configuration is single threaded, so there is nothing to do here. Note that + * this requires that malloc is never called by an interrupt service routine. + */ + +void __malloc_lock ( struct _reent *_r ) +{ +} + +/* + * + */ + +void __malloc_unlock ( struct _reent *_r ) +{ +} diff --git a/software/qsys_tutorial_hexs_bsp/HAL/src/alt_mcount.S b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_mcount.S new file mode 100644 index 0000000..3837523 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_mcount.S @@ -0,0 +1,198 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003-2010 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/* mcount or _mcount is inserted by GCC before the function prologue of every + * function when a program is compiled for profiling. At the start of mcount, + * we guarantee that: + * ra = self_pc (an address in the function which called mcount) + * r8 = from_pc (an address in the function which called mcount's caller) + * + * Because this is always called at the start of a function we can corrupt + * r2,r3 and r11-r15. We must not corrupt r4-r7 (because they might contain + * function arguments for the instrumented function) or r8 (which holds ra + * for the instrumented function). + */ + + .global __mcount_fn_head + + .global mcount + + /* _mcount is used by gcc4 */ + .global _mcount + +_mcount: +mcount: + /* Use a hash to speed up locating fn_entry. We use bits 5 upwards to choose + * the bucket because bits 1:0 will always be 0, and because the distribution + * of values for bits 4:2 won't be even (aligning on cache line boundaries + * will skew it). Higher bits should be fairly random. + */ + /* fn_head = mcount_fn_head + (((unsigned int)self_pc >> 5) & (HASH_BUCKETS - 1)); */ + + srli r2, ra, 3 + movhi r3, %hiadj(__mcount_fn_head) + addi r3, r3, %lo(__mcount_fn_head) + andi r2, r2, 0xFC + add r11, r2, r3 + + /* The fast case is where we have already allocated a function arc, and so + * also a function pointer. + */ + + /* First find the function being called (using self_pc) */ + mov r10, r11 +0: + ldw r10, 0(r10) + beq r10, zero, .Lnew_arc + ldw r2, 4(r10) + bne r2, ra, 0b + + /* Found a function entry for this PC. Now look for an arc with a matching + * from_pc value. There will always be at least one arc. */ + ldw r3, 8(r10) +0: + ldw r2, 4(r3) + beq r2, r8, .Lfound_arc + ldw r3, 0(r3) + bne r3, zero, 0b + +.Lnew_arc: + addi sp, sp, -24 + +.LCFI0: + stw ra, 0(sp) + stw r4, 4(sp) + stw r5, 8(sp) + stw r6, 12(sp) + stw r7, 16(sp) + stw r8, 20(sp) + +.LCFI1: + /* __mcount_record(orig_ra, orig_r8, fn_entry, *fn_head); */ + mov r4, ra + mov r5, r8 + mov r6, r10 + mov r7, r11 + call __mcount_record + + /* restore registers from the stack */ + ldw ra, 0(sp) + ldw r4, 4(sp) + ldw r5, 8(sp) + ldw r6, 12(sp) + ldw r7, 16(sp) + ldw r8, 20(sp) + + addi sp, sp, 24 + +.LCFI2: + ret + +.Lfound_arc: + /* We've found the correct arc record. Increment the count and return */ + ldw r2, 8(r3) + addi r2, r2, 1 + stw r2, 8(r3) + ret + +.Lmcount_end: + + + +/* + * Dwarf2 debug information for the function. This provides GDB with the + * information it needs to backtrace out of this function. + */ + + .section .debug_frame,"",@progbits +.LCIE: + .4byte 2f - 1f /* Length */ +1: + .4byte 0xffffffff /* CIE id */ + .byte 0x1 /* Version */ + .string "" /* Augmentation */ + .uleb128 0x1 /* Code alignment factor */ + .sleb128 -4 /* Data alignment factor */ + .byte 0x1f /* Return address register */ + + .byte 0xc /* Define CFA */ + .uleb128 0x1b /* Register 27 (sp) */ + .uleb128 0x0 /* Offset 0 */ + + .align 2 /* Padding */ +2: + +.LFDE_mcount: + .4byte 2f - 1f /* Length */ +1: + .4byte .LCIE /* Pointer to CIE */ + .4byte mcount /* Start of table entry */ + .4byte .Lmcount_end - mcount /* Size of table entry */ + + .byte 0x4 /* Advance location */ + .4byte .LCFI0 - mcount /* to .LCFI0 */ + .byte 0xe /* Define CFA offset */ + .uleb128 24 /* to 24 */ + + .byte 0x4 /* Advance location */ + .4byte .LCFI1 - .LCFI0 /* to .LCFI1 */ + .byte 0x9f /* Store ra */ + .uleb128 0x6 /* at CFA-24 */ + .byte 0x84 /* Store r4 */ + .uleb128 0x5 /* at CFA-20 */ + .byte 0x85 /* Store r5 */ + .uleb128 0x4 /* at CFA-16 */ + .byte 0x86 /* Store r6 */ + .uleb128 0x3 /* at CFA-12 */ + .byte 0x87 /* Store r7 */ + .uleb128 0x2 /* at CFA-8 */ + .byte 0x88 /* Store r8 */ + .uleb128 0x1 /* at CFA-4 */ + + .byte 0x4 /* Advance location */ + .4byte .LCFI2 - .LCFI1 /* to .LCFI2 */ + .byte 0xe /* Define CFA offset */ + .uleb128 0 /* to 0 */ + .byte 0x8 /* Same value */ + .uleb128 31 /* for ra */ + .byte 0x8 /* Same value */ + .uleb128 4 /* for r4 */ + .byte 0x8 /* Same value */ + .uleb128 5 /* for r5 */ + .byte 0x8 /* Same value */ + .uleb128 6 /* for r6 */ + .byte 0x8 /* Same value */ + .uleb128 7 /* for r7 */ + .byte 0x8 /* Same value */ + .uleb128 8 /* for r8 */ + + .align 2 +2: + diff --git a/software/qsys_tutorial_hexs_bsp/HAL/src/alt_open.c b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_open.c new file mode 100644 index 0000000..4790f53 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_open.c @@ -0,0 +1,173 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_errno.h" +#include "sys/alt_warning.h" +#include "priv/alt_file.h" +#include "alt_types.h" +#include "os/alt_syscall.h" + +#ifdef ALT_USE_DIRECT_DRIVERS + +int ALT_OPEN (const char* file, int flags, int mode) +{ + /* Generate a link time warning, should this function ever be called. */ + + ALT_STUB_WARNING(open); + + /* Indicate an error */ + + ALT_ERRNO = ENOSYS; + return -1; +} + +#else /* !ALT_USE_DIRECT_DRIVERS */ + +extern alt_llist alt_dev_list; + +/* + * alt_file_locked() is used by open() to ensure that a device has not been + * previously locked for exclusive access using ioctl(). This test is only + * performed for devices. Filesystems are required to handle the ioctl() call + * themselves, and report the error from the filesystems open() function. + */ + +static int alt_file_locked (alt_fd* fd) +{ + alt_u32 i; + + /* + * Mark the file descriptor as belonging to a device. + */ + + fd->fd_flags |= ALT_FD_DEV; + + /* + * Loop through all current file descriptors searching for one that's locked + * for exclusive access. If a match is found, generate an error. + */ + + for (i = 0; i <= alt_max_fd; i++) + { + if ((alt_fd_list[i].dev == fd->dev) && + (alt_fd_list[i].fd_flags & ALT_FD_EXCL) && + (&alt_fd_list[i] != fd)) + { + return -EACCES; + } + } + + /* The device is not locked */ + + return 0; +} + +/* + * open() is called in order to get a file descriptor that reference the file + * or device named "name". This descriptor can then be used to manipulate the + * file/device using the standard system calls, e.g. write(), read(), ioctl() + * etc. + * + * This is equivalent to the standard open() system call. + * + * ALT_OPEN is mapped onto the open() system call in alt_syscall.h + */ + +int ALT_OPEN (const char* file, int flags, int mode) +{ + alt_dev* dev; + alt_fd* fd; + int index = -1; + int status = -ENODEV; + int isafs = 0; + + /* + * Check the device list, to see if a device with a matching name is + * registered. + */ + + if (!(dev = alt_find_dev (file, &alt_dev_list))) + { + /* No matching device, so try the filesystem list */ + + dev = alt_find_file (file); + isafs = 1; + } + + /* + * If a matching device or filesystem is found, allocate a file descriptor. + */ + + if (dev) + { + if ((index = alt_get_fd (dev)) < 0) + { + status = index; + } + else + { + fd = &alt_fd_list[index]; + fd->fd_flags = (flags & ~ALT_FD_FLAGS_MASK); + + /* If this is a device, ensure it isn't already locked */ + + if (isafs || ((status = alt_file_locked (fd)) >= 0)) + { + /* + * If the device or filesystem provides an open() callback function, + * call it now to perform any device/filesystem specific operations. + */ + + status = (dev->open) ? dev->open(fd, file, flags, mode): 0; + } + } + } + else + { + status = -ENODEV; + } + + /* Allocation failed, so clean up and return an error */ + + if (status < 0) + { + alt_release_fd (index); + ALT_ERRNO = -status; + return -1; + } + + /* return the reference upon success */ + + return index; +} + +#endif /* ALT_USE_DIRECT_DRIVERS */ diff --git a/software/qsys_tutorial_hexs_bsp/HAL/src/alt_printf.c b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_printf.c new file mode 100644 index 0000000..e742b57 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_printf.c @@ -0,0 +1,127 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/* + * This file provides a very minimal printf implementation for use with very + * small applications. Only the following format strings are supported: + * %x + * %s + * %c + * %% + */ + +#include +#include "sys/alt_stdio.h" + +/* + * ALT printf function + */ +void +alt_printf(const char* fmt, ... ) +{ + va_list args; + va_start(args, fmt); + const char *w; + char c; + + /* Process format string. */ + w = fmt; + while ((c = *w++) != 0) + { + /* If not a format escape character, just print */ + /* character. Otherwise, process format string. */ + if (c != '%') + { + alt_putchar(c); + } + else + { + /* Get format character. If none */ + /* available, processing is complete. */ + if ((c = *w++) != 0) + { + if (c == '%') + { + /* Process "%" escape sequence. */ + alt_putchar(c); + } + else if (c == 'c') + { + int v = va_arg(args, int); + alt_putchar(v); + } + else if (c == 'x') + { + /* Process hexadecimal number format. */ + unsigned long v = va_arg(args, unsigned long); + unsigned long digit; + int digit_shift; + + /* If the number value is zero, just print and continue. */ + if (v == 0) + { + alt_putchar('0'); + continue; + } + + /* Find first non-zero digit. */ + digit_shift = 28; + while (!(v & (0xF << digit_shift))) + digit_shift -= 4; + + /* Print digits. */ + for (; digit_shift >= 0; digit_shift -= 4) + { + digit = (v & (0xF << digit_shift)) >> digit_shift; + if (digit <= 9) + c = '0' + digit; + else + c = 'a' + digit - 10; + alt_putchar(c); + } + } + else if (c == 's') + { + /* Process string format. */ + char *s = va_arg(args, char *); + + while(*s) + alt_putchar(*s++); + } + } + else + { + break; + } + } + } +} diff --git a/software/qsys_tutorial_hexs_bsp/HAL/src/alt_putchar.c b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_putchar.c new file mode 100644 index 0000000..badaa02 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_putchar.c @@ -0,0 +1,59 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +#ifdef ALT_USE_DIRECT_DRIVERS +#include "system.h" +#include "sys/alt_driver.h" +#include "sys/alt_stdio.h" +#endif + +/* + * Uses the ALT_DRIVER_WRITE() macro to call directly to driver if available. + * Otherwise, uses newlib provided putchar() routine. + */ +int +alt_putchar(int c) +{ +#ifdef ALT_USE_DIRECT_DRIVERS + ALT_DRIVER_WRITE_EXTERNS(ALT_STDOUT_DEV); + char c1 = (char)(c & 0xff); + + if (ALT_DRIVER_WRITE(ALT_STDOUT_DEV, &c1, 1, 0) == -1) { + return -1; + } + return c; +#else + return putchar(c); +#endif +} diff --git a/software/qsys_tutorial_hexs_bsp/HAL/src/alt_putstr.c b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_putstr.c new file mode 100644 index 0000000..5345945 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_putstr.c @@ -0,0 +1,55 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +#ifdef ALT_USE_DIRECT_DRIVERS +#include +#include "system.h" +#include "sys/alt_driver.h" +#include "sys/alt_stdio.h" +#endif + +/* + * Uses the ALT_DRIVER_WRITE() macro to call directly to driver if available. + * Otherwise, uses newlib provided fputs() routine. + */ +int +alt_putstr(const char* str) +{ +#ifdef ALT_USE_DIRECT_DRIVERS + ALT_DRIVER_WRITE_EXTERNS(ALT_STDOUT_DEV); + return ALT_DRIVER_WRITE(ALT_STDOUT_DEV, str, strlen(str), 0); +#else + return fputs(str, stdout); +#endif +} diff --git a/software/qsys_tutorial_hexs_bsp/HAL/src/alt_read.c b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_read.c new file mode 100644 index 0000000..1c89777 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_read.c @@ -0,0 +1,125 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include + +#include "sys/alt_errno.h" +#include "sys/alt_warning.h" +#include "priv/alt_file.h" +#include "os/alt_syscall.h" + +/* + * The read() system call is used to read a block of data from a file or device. + * This function simply vectors the request to the device driver associated + * with the input file descriptor "file". + * + * ALT_READ is mapped onto the read() system call in alt_syscall.h + */ + +#ifdef ALT_USE_DIRECT_DRIVERS + +#include "system.h" +#include "sys/alt_driver.h" + +/* + * Provide minimal version that just reads from the stdin device when provided. + */ + +int ALT_READ (int file, void *ptr, size_t len) +{ +#ifdef ALT_STDIN_PRESENT + ALT_DRIVER_READ_EXTERNS(ALT_STDIN_DEV); +#endif + +#if !defined(ALT_STDIN_PRESENT) + /* Generate a link time warning, should this function ever be called. */ + ALT_STUB_WARNING(read); +#endif + + switch (file) { +#ifdef ALT_STDIN_PRESENT + case 0: /* stdin file descriptor */ + return ALT_DRIVER_READ(ALT_STDIN_DEV, ptr, len, 0); +#endif /* ALT_STDIN_PRESENT */ + default: + ALT_ERRNO = EBADFD; + return -1; + } +} + +#else /* !ALT_USE_DIRECT_DRIVERS */ + +int ALT_READ (int file, void *ptr, size_t len) +{ + alt_fd* fd; + int rval; + + /* + * A common error case is that when the file descriptor was created, the call + * to open() failed resulting in a negative file descriptor. This is trapped + * below so that we don't try and process an invalid file descriptor. + */ + + fd = (file < 0) ? NULL : &alt_fd_list[file]; + + if (fd) + { + /* + * If the file has not been opened with read access, or if the driver does + * not provide an implementation of read(), generate an error. Otherwise + * call the drivers read() function to process the request. + */ + + if (((fd->fd_flags & O_ACCMODE) != O_WRONLY) && + (fd->dev->read)) + { + if ((rval = fd->dev->read(fd, ptr, len)) < 0) + { + ALT_ERRNO = -rval; + return -1; + } + return rval; + } + else + { + ALT_ERRNO = EACCES; + } + } + else + { + ALT_ERRNO = EBADFD; + } + return -1; +} + +#endif /* ALT_USE_DIRECT_DRIVERS */ diff --git a/software/qsys_tutorial_hexs_bsp/HAL/src/alt_release_fd.c b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_release_fd.c new file mode 100644 index 0000000..84733a7 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_release_fd.c @@ -0,0 +1,54 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_dev.h" +#include "priv/alt_file.h" + +/* + * alt_release_fd() is called to free an allocated file descriptor. This is + * done by setting the device pointer in the file descriptor structure to zero. + * + * File descriptors correcponding to standard in, standard out and standard + * error cannont be released backed to the pool. They are always reserved. + */ + +void alt_release_fd (int fd) +{ + if (fd > 2) + { + alt_fd_list[fd].fd_flags = 0; + alt_fd_list[fd].dev = 0; + } +} + + + diff --git a/software/qsys_tutorial_hexs_bsp/HAL/src/alt_remap_cached.c b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_remap_cached.c new file mode 100644 index 0000000..f61cb9c --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_remap_cached.c @@ -0,0 +1,50 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003,2007 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "sys/alt_cache.h" +#include "system.h" + +#ifdef NIOS2_MMU_PRESENT +/* Convert KERNEL region address to IO region address */ +#define BYPASS_DCACHE_MASK (0x1 << 29) +#else +/* Set bit 31 of address to bypass D-cache */ +#define BYPASS_DCACHE_MASK (0x1 << 31) +#endif + +/* + * Convert a pointer to a block of uncached memory, into a block of + * cached memory. + */ + +void* alt_remap_cached (volatile void* ptr, alt_u32 len) +{ + return (void*) (((alt_u32) ptr) & ~BYPASS_DCACHE_MASK); +} diff --git a/software/qsys_tutorial_hexs_bsp/HAL/src/alt_remap_uncached.c b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_remap_uncached.c new file mode 100644 index 0000000..7ff6302 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_remap_uncached.c @@ -0,0 +1,51 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003,2007 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "sys/alt_cache.h" +#include "system.h" + +#ifdef NIOS2_MMU_PRESENT +/* Convert KERNEL region address to IO region address */ +#define BYPASS_DCACHE_MASK (0x1 << 29) +#else +/* Set bit 31 of address to bypass D-cache */ +#define BYPASS_DCACHE_MASK (0x1 << 31) +#endif + +/* + * Convert a pointer to a block of cached memory, into a block of + * uncached memory. + */ + +volatile void* alt_remap_uncached (void* ptr, alt_u32 len) +{ + alt_dcache_flush (ptr, len); + return (volatile void*) (((alt_u32) ptr) | BYPASS_DCACHE_MASK); +} diff --git a/software/qsys_tutorial_hexs_bsp/HAL/src/alt_rename.c b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_rename.c new file mode 100644 index 0000000..48afac0 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_rename.c @@ -0,0 +1,55 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_errno.h" +#include "sys/alt_warning.h" +#include "os/alt_syscall.h" + +/* + * _rename() is used by newlib to rename an existing file. This is unsupported + * in the HAL environment. However a "do-nothing" implementation is still + * provied for newlib compatability. + * + * ALT_RENAME is mapped onto the _rename() system call in alt_syscall.h + */ + +int ALT_RENAME (char *existing, char *new) +{ + /* Generate a link time warning, should this function ever be called. */ + + ALT_STUB_WARNING(_rename); + + /* Indicate an error */ + + ALT_ERRNO = ENOSYS; + return -1; +} diff --git a/software/qsys_tutorial_hexs_bsp/HAL/src/alt_sbrk.c b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_sbrk.c new file mode 100644 index 0000000..b8c3799 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_sbrk.c @@ -0,0 +1,136 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +#include "os/alt_syscall.h" + +#include "sys/alt_irq.h" +#include "sys/alt_stack.h" + +#include "system.h" + +/* + * sbrk() is called to dynamically extend the data segment for the application. + * Thie input argument "incr" is the size of the block to allocate. + * + * This simple implementation does not perform any bounds checking. Memory will + * be allocated, even if the request region colides with the stack or overflows + * the available physical memory. + * + * ALT_SBRK is mapped onto the sbrk() system call in alt_syscall.h + * + * This function is called by the profiling code to allocate memory so must be + * safe if called from an interrupt context. It must also not be instrumented + * because that would lead to an infinate loop. + */ + +extern char __alt_heap_start[]; /* set by linker */ +extern char __alt_heap_limit[]; /* set by linker */ + +static char *heap_end = __alt_heap_start; + +#if defined(ALT_EXCEPTION_STACK) && defined(ALT_STACK_CHECK) +char * alt_exception_old_stack_limit = NULL; +#endif + +caddr_t ALT_SBRK (int incr) __attribute__ ((no_instrument_function )); + +caddr_t ALT_SBRK (int incr) +{ + alt_irq_context context; + char *prev_heap_end; + + context = alt_irq_disable_all(); + + /* Always return data aligned on a word boundary */ + heap_end = (char *)(((unsigned int)heap_end + 3) & ~3); + +#ifdef ALT_MAX_HEAP_BYTES + /* + * User specified a maximum heap size. Return -1 if it would + * be exceeded by this sbrk call. + */ + if (((heap_end + incr) - __alt_heap_start) > ALT_MAX_HEAP_BYTES) { + alt_irq_enable_all(context); + return (caddr_t)-1; + } +#else + if ((heap_end + incr) > __alt_heap_limit) { + alt_irq_enable_all(context); + return (caddr_t)-1; + } +#endif + + prev_heap_end = heap_end; + heap_end += incr; + +#ifdef ALT_STACK_CHECK + /* + * If the stack and heap are contiguous then extending the heap reduces the + * space available for the stack. If we are still using the default stack + * then adjust the stack limit to note this, while checking for stack + * pointer overflow. + * If the stack limit isn't pointing at the top of the heap then the code + * is using a different stack so none of this needs to be done. + */ + + if (alt_stack_limit() == prev_heap_end) + { + if (alt_stack_pointer() <= heap_end) + alt_report_stack_overflow(); + + alt_set_stack_limit(heap_end); + } + +#ifdef ALT_EXCEPTION_STACK + /* + * If we are executing from the exception stack then compare against the + * stack we switched away from as well. The exception stack is a fixed + * size so doesn't need to be checked. + */ + + if (alt_exception_old_stack_limit == prev_heap_end) + { + if (alt_exception_old_stack_limit <= heap_end) + alt_report_stack_overflow(); + + alt_exception_old_stack_limit = heap_end; + } +#endif + +#endif + + alt_irq_enable_all(context); + + return (caddr_t) prev_heap_end; +} diff --git a/software/qsys_tutorial_hexs_bsp/HAL/src/alt_settod.c b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_settod.c new file mode 100644 index 0000000..59db0f8 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_settod.c @@ -0,0 +1,96 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include + +#include "sys/alt_errno.h" +#include "sys/alt_alarm.h" +#include "os/alt_syscall.h" + +/* + * "alt_timezone" and "alt_resettime" are the values of the the reset time and + * time zone set through the last call to settimeofday(). By default they are + * zero initialised. + */ + +extern struct timezone alt_timezone; +extern struct timeval alt_resettime; + +/* + * Macro defining the number of micoseconds in a second. + */ + +#define ALT_US (1000000) + + +/* + * settimeofday() can be called to calibrate the system clock, so that + * subsequent calls to gettimeofday() will return the elapsed "wall clock" + * time. + * + * This is done by updating the global structures "alt_resettime" and + * "alt_timezone" so that an immediate call to gettimeofday() would return + * the value specified by "t" and "tz". + * + * Warning: if this function is called concurrently with a call to + * gettimeofday(), the value returned by gettimeofday() will be unreliable. + * + * ALT_SETTIMEOFDAY is mapped onto the settimeofday() system call in + * alt_syscall.h + */ + +int ALT_SETTIMEOFDAY (const struct timeval *t, + const struct timezone *tz) +{ + alt_u32 nticks = alt_nticks (); + alt_u32 tick_rate = alt_ticks_per_second (); + + /* If there is a system clock available, update the current time */ + + if (tick_rate) + { + alt_resettime.tv_sec = t->tv_sec - nticks/tick_rate; + alt_resettime.tv_usec = t->tv_usec - + ((nticks*(ALT_US/tick_rate))%ALT_US); + + alt_timezone.tz_minuteswest = tz->tz_minuteswest; + alt_timezone.tz_dsttime = tz->tz_dsttime; + + return 0; + } + + /* There's no system clock available */ + + ALT_ERRNO = ENOSYS; + return -1; +} diff --git a/software/qsys_tutorial_hexs_bsp/HAL/src/alt_software_exception.S b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_software_exception.S new file mode 100644 index 0000000..2142594 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_software_exception.S @@ -0,0 +1,53 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003-2005 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + + /* + * This file provides the global symbol: software_exception. It is provided to + * support legacy code, and should not be used by new software. + * + * It is used by legacy code to invoke the software exception handler as + * defined by version 1.0 of the Nios II kit. It should only be used when you + * are providing your own interrupt entry point, i.e. you are not using + * alt_irq_entry. + */ + +#include "system.h" + + /* + * Pull in the exception handler. + */ + + .globl alt_exception + + .section .exceptions.entry.label, "xa" + + .globl software_exception + .type software_exception, @function +software_exception: diff --git a/software/qsys_tutorial_hexs_bsp/HAL/src/alt_stat.c b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_stat.c new file mode 100644 index 0000000..44e207b --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_stat.c @@ -0,0 +1,59 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include +#include +#include + +#include "os/alt_syscall.h" + +/* + * The stat() function is similar to the fstat() function in that it is used to + * obtain status information about a file. Instead of using an open file + * descriptor (like fstat()), stat() takes the name of a file as an input + * argument. + * + * ALT_STAT is mapped onto the stat() system call in alt_syscall.h + */ + +int ALT_STAT (const char *file, struct stat *st) +{ + int fd; + int rc; + + fd = open (file, 0); + rc = fstat (fd, st); + close (fd); + + return rc; +} diff --git a/software/qsys_tutorial_hexs_bsp/HAL/src/alt_tick.c b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_tick.c new file mode 100644 index 0000000..c73488d --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_tick.c @@ -0,0 +1,149 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_irq.h" +#include "sys/alt_alarm.h" +#include "os/alt_hooks.h" +#include "alt_types.h" + +/* + * "_alt_tick_rate" is used to store the value of the system clock frequency + * in ticks per second. It is initialised to zero, which corresponds to there + * being no system clock facility available. + */ + +alt_u32 _alt_tick_rate = 0; + +/* + * "_alt_nticks" is the number of system clock ticks that have elapsed since + * reset. + */ + +volatile alt_u32 _alt_nticks = 0; + +/* + * "alt_alarm_list" is the head of a linked list of registered alarms. This is + * initialised to be an empty list. + */ + +ALT_LLIST_HEAD(alt_alarm_list); + +/* + * alt_alarm_stop() is called to remove an alarm from the list of registered + * alarms. Alternatively an alarm can unregister itself by returning zero when + * the alarm executes. + */ + +void alt_alarm_stop (alt_alarm* alarm) +{ + alt_irq_context irq_context; + + irq_context = alt_irq_disable_all(); + alt_llist_remove (&alarm->llist); + alt_irq_enable_all (irq_context); +} + +/* + * alt_tick() is periodically called by the system clock driver in order to + * process the registered list of alarms. Each alarm is registed with a + * callback interval, and a callback function, "callback". + * + * The return value of the callback function indicates how many ticks are to + * elapse until the next callback. A return value of zero indicates that the + * alarm should be deactivated. + * + * alt_tick() is expected to run at interrupt level. + */ + +void alt_tick (void) +{ + alt_alarm* next; + alt_alarm* alarm = (alt_alarm*) alt_alarm_list.next; + + alt_u32 next_callback; + + /* update the tick counter */ + + _alt_nticks++; + + /* process the registered callbacks */ + + while (alarm != (alt_alarm*) &alt_alarm_list) + { + next = (alt_alarm*) alarm->llist.next; + + /* + * Upon the tick-counter rolling over it is safe to clear the + * roll-over flag; once the flag is cleared this (or subsequnt) + * tick events are enabled to generate an alarm event. + */ + if ((alarm->rollover) && (_alt_nticks == 0)) + { + alarm->rollover = 0; + } + + /* if the alarm period has expired, make the callback */ + if ((alarm->time <= _alt_nticks) && (alarm->rollover == 0)) + { + next_callback = alarm->callback (alarm->context); + + /* deactivate the alarm if the return value is zero */ + + if (next_callback == 0) + { + alt_alarm_stop (alarm); + } + else + { + alarm->time += next_callback; + + /* + * If the desired alarm time causes a roll-over, set the rollover + * flag. This will prevent the subsequent tick event from causing + * an alarm too early. + */ + if(alarm->time < _alt_nticks) + { + alarm->rollover = 1; + } + } + } + alarm = next; + } + + /* + * Update the operating system specific timer facilities. + */ + + ALT_OS_TIME_TICK(); +} + diff --git a/software/qsys_tutorial_hexs_bsp/HAL/src/alt_times.c b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_times.c new file mode 100644 index 0000000..4dd965d --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_times.c @@ -0,0 +1,71 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +#include "sys/alt_errno.h" +#include "sys/alt_alarm.h" +#include "os/alt_syscall.h" + +/* + * The times() function is used by newlib to obtain elapsed time information. + * The return value is the elapsed time since reset in system clock ticks. Note + * that this is distinct from the strict Posix version of times(), which should + * return the time since: 0 hours, 0 minutes, 0 seconds, January 1, 1970, GMT. + * + * The input structure is filled in with time accounting information. This + * implementation attributes all cpu time to the system. + * + * ALT_TIMES is mapped onto the times() system call in alt_syscall.h + */ + +clock_t ALT_TIMES (struct tms *buf) +{ + clock_t ticks = alt_nticks(); + + /* If there is no system clock present, generate an error */ + + if (!alt_ticks_per_second()) + { + ALT_ERRNO = ENOSYS; + return 0; + } + + /* Otherwise return the elapsed time */ + + buf->tms_utime = 0; + buf->tms_stime = ticks; + buf->tms_cutime = 0; + buf->tms_cstime = 0; + + return ticks; +} diff --git a/software/qsys_tutorial_hexs_bsp/HAL/src/alt_uncached_free.c b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_uncached_free.c new file mode 100644 index 0000000..6e362ba --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_uncached_free.c @@ -0,0 +1,49 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003,2007 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "sys/alt_cache.h" +#include "system.h" + +#ifdef NIOS2_MMU_PRESENT +/* Convert KERNEL region address to IO region address */ +#define BYPASS_DCACHE_MASK (0x1 << 29) +#else +/* Set bit 31 of address to bypass D-cache */ +#define BYPASS_DCACHE_MASK (0x1 << 31) +#endif + +/* + * Free a block of uncached memory. + */ + +void alt_uncached_free (volatile void* ptr) +{ + free ((void*) (((alt_u32) ptr) & ~BYPASS_DCACHE_MASK)); +} diff --git a/software/qsys_tutorial_hexs_bsp/HAL/src/alt_uncached_malloc.c b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_uncached_malloc.c new file mode 100644 index 0000000..ab3416d --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_uncached_malloc.c @@ -0,0 +1,55 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003,2007 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "sys/alt_cache.h" +#include "system.h" + +#ifdef NIOS2_MMU_PRESENT +/* Convert KERNEL region address to IO region address */ +#define BYPASS_DCACHE_MASK (0x1 << 29) +#else +/* Set bit 31 of address to bypass D-cache */ +#define BYPASS_DCACHE_MASK (0x1 << 31) +#endif + +/* + * Allocate a block of uncached memory. + */ + +volatile void* alt_uncached_malloc (size_t size) +{ + void* ptr; + + ptr = malloc (size); + + alt_dcache_flush (ptr, size); + + return ptr ? (volatile void*) (((alt_u32) ptr) | BYPASS_DCACHE_MASK) : NULL; +} diff --git a/software/qsys_tutorial_hexs_bsp/HAL/src/alt_unlink.c b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_unlink.c new file mode 100644 index 0000000..29e35d6 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_unlink.c @@ -0,0 +1,55 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_errno.h" +#include "sys/alt_warning.h" +#include "os/alt_syscall.h" + +/* + * unlink() is used by newlib to delete an existing link to a file. This is + * unsupported in the HAL environment. However a "do-nothing" implementation + * is still provied for newlib compatability. + * + * ALT_UNLINK is mapped onto the unlink() system call in alt_syscall.h + */ + +int ALT_UNLINK (char *name) +{ + /* Generate a link time warning, should this function ever be called. */ + + ALT_STUB_WARNING(unlink); + + /* Indicate an error */ + + ALT_ERRNO = ENOSYS; + return -1; +} diff --git a/software/qsys_tutorial_hexs_bsp/HAL/src/alt_usleep.c b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_usleep.c new file mode 100644 index 0000000..2330eb8 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_usleep.c @@ -0,0 +1,52 @@ +/* + * Copyright (c) 2003 Altera Corporation, San Jose, California, USA. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + * ------------ + * + * Altera does not recommend, suggest or require that this reference design + * file be used in conjunction or combination with any other product. + * + * usleep.c - Microsecond delay routine + */ + +#include + +#include "priv/alt_busy_sleep.h" +#include "os/alt_syscall.h" + +/* + * This function simply calls alt_busy_sleep() to perform the delay. This + * function implements the delay as a calibrated "busy loop". + * + * ALT_USLEEP is mapped onto the usleep() system call in alt_syscall.h + */ + + + +#if defined (__GNUC__) && __GNUC__ >= 4 +int ALT_USLEEP (useconds_t us) +#else +unsigned int ALT_USLEEP (unsigned int us) +#endif +{ + return alt_busy_sleep(us); +} diff --git a/software/qsys_tutorial_hexs_bsp/HAL/src/alt_wait.c b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_wait.c new file mode 100644 index 0000000..a42f80f --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_wait.c @@ -0,0 +1,52 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_errno.h" +#include "os/alt_syscall.h" + +/* + * wait() is used by newlib to wait for all child processes to exit. Since the + * HAL does not support spawning child processes, this returns immediately as + * there can't be anythign to wait for. + * + * ALT_WAIT is mapped onto the wait() system call in alt_syscall.h + */ + +int ALT_WAIT (int *status) +{ + *status = 0; + + ALT_ERRNO = ECHILD; + + return -1; +} + diff --git a/software/qsys_tutorial_hexs_bsp/HAL/src/alt_write.c b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_write.c new file mode 100644 index 0000000..51debb5 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/HAL/src/alt_write.c @@ -0,0 +1,138 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include + +#include "sys/alt_errno.h" +#include "sys/alt_warning.h" +#include "priv/alt_file.h" +#include "os/alt_syscall.h" + +#include "sys/alt_log_printf.h" + +/* + * The write() system call is used to write a block of data to a file or + * device. This function simply vectors the request to the device driver + * associated with the input file descriptor "file". + * + * ALT_WRITE is mapped onto the write() system call in alt_syscall.h + */ + +#ifdef ALT_USE_DIRECT_DRIVERS + +#include "system.h" +#include "sys/alt_driver.h" + +/* + * Provide minimal version that just writes to the stdout/stderr devices + * when provided. + */ + +int ALT_WRITE (int file, const void *ptr, size_t len) +{ +#ifdef ALT_STDOUT_PRESENT + ALT_DRIVER_WRITE_EXTERNS(ALT_STDOUT_DEV); +#endif +#ifdef ALT_STDERR_PRESENT + ALT_DRIVER_WRITE_EXTERNS(ALT_STDERR_DEV); +#endif + +#if !defined(ALT_STDOUT_PRESENT) && !defined(ALT_STDERR_PRESENT) + /* Generate a link time warning, should this function ever be called. */ + ALT_STUB_WARNING(write); +#endif + + switch (file) { +#ifdef ALT_STDOUT_PRESENT + case 1: /* stdout file descriptor */ + return ALT_DRIVER_WRITE(ALT_STDOUT_DEV, ptr, len, 0); +#endif /* ALT_STDOUT_PRESENT */ +#ifdef ALT_STDERR_PRESENT + case 2: /* stderr file descriptor */ + return ALT_DRIVER_WRITE(ALT_STDERR_DEV, ptr, len, 0); +#endif /* ALT_STDERR_PRESENT */ + default: + ALT_ERRNO = EBADFD; + return -1; + } +} + +#else /* !ALT_USE_DIRECT_DRIVERS */ + +int ALT_WRITE (int file, const void *ptr, size_t len) +{ + alt_fd* fd; + int rval; + + /* + * A common error case is that when the file descriptor was created, the call + * to open() failed resulting in a negative file descriptor. This is trapped + * below so that we don't try and process an invalid file descriptor. + */ + + fd = (file < 0) ? NULL : &alt_fd_list[file]; + + if (fd) + { + /* + * If the file has not been opened with write access, or if the driver does + * not provide an implementation of write(), generate an error. Otherwise + * call the drivers write() function to process the request. + */ + + if (((fd->fd_flags & O_ACCMODE) != O_RDONLY) && fd->dev->write) + { + + /* ALT_LOG - see altera_hal/HAL/inc/sys/alt_log_printf.h */ + ALT_LOG_WRITE_FUNCTION(ptr,len); + + if ((rval = fd->dev->write(fd, ptr, len)) < 0) + { + ALT_ERRNO = -rval; + return -1; + } + return rval; + } + else + { + ALT_ERRNO = EACCES; + } + } + else + { + ALT_ERRNO = EBADFD; + } + return -1; +} + +#endif /* ALT_USE_DIRECT_DRIVERS */ diff --git a/software/qsys_tutorial_hexs_bsp/HAL/src/altera_nios2_qsys_irq.c b/software/qsys_tutorial_hexs_bsp/HAL/src/altera_nios2_qsys_irq.c new file mode 100644 index 0000000..c7a4f93 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/HAL/src/altera_nios2_qsys_irq.c @@ -0,0 +1,37 @@ +/* + * Copyright (c) 2009 Altera Corporation, San Jose, California, USA. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + * altera_nios2_irq.c - Support for Nios II internal interrupt controller. + * + */ + +#include "sys/alt_irq.h" +#include "altera_nios2_qsys_irq.h" + +/* + * To initialize the internal interrupt controller, just clear the IENABLE + * register so that all possible IRQs are disabled. + */ +void altera_nios2_qsys_irq_init(void) +{ + NIOS2_WRITE_IENABLE(0); +} diff --git a/software/qsys_tutorial_hexs_bsp/HAL/src/crt0.S b/software/qsys_tutorial_hexs_bsp/HAL/src/crt0.S new file mode 100644 index 0000000..582445d --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/HAL/src/crt0.S @@ -0,0 +1,456 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "system.h" +#include "nios2.h" + +/* Setup header files to work with assembler code. */ +#define ALT_ASM_SRC + +/* Debug logging facility */ +#include "sys/alt_log_printf.h" + +/*************************************************************************\ +| MACROS | +\*************************************************************************/ + +/* + * The new build tools explicitly define macros when alt_load() + * must be called. The define ALT_LOAD_EXPLICITLY_CONTROLLED tells us that + * those macros are controlling if alt_load() needs to be called. + */ +#ifdef ALT_LOAD_EXPLICITLY_CONTROLLED + +/* Need to call alt_load() if any of these sections are being copied. */ +#if defined(ALT_LOAD_COPY_RODATA) || defined(ALT_LOAD_COPY_RWDATA) || defined(ALT_LOAD_COPY_EXCEPTIONS) +#define CALL_ALT_LOAD +#endif + +#else /* !ALT_LOAD_EXPLICITLY_CONTROLLED */ + +/* + * The legacy build tools use the following macros to detect when alt_load() + * needs to be called. + */ + +#define __ALT_LOAD_SECTIONS(res, text, rodata, exc) \ + ((res##_BASE != rodata##_BASE) || \ + (res##_BASE != rwdata##_BASE) || \ + (res##_BASE != exc##_BASE)) + +#define _ALT_LOAD_SECTIONS(res, text, rodata, exc) \ + __ALT_LOAD_SECTIONS(res, text, rodata, exc) + +#define ALT_LOAD_SECTIONS _ALT_LOAD_SECTIONS(ALT_RESET_DEVICE, \ + ALT_RODATA_DEVICE, \ + ALT_RWDATA_DEVICE, \ + ALT_EXCEPTIONS_DEVICE) + +/* Call alt_load() if there is no bootloader and ALT_LOAD_SECTIONS isn't 0. */ +#if defined(ALT_NO_BOOTLOADER) && ALT_LOAD_SECTIONS +#define CALL_ALT_LOAD +#endif + +#endif /* !ALT_LOAD_EXPLICITLY_CONTROLLED */ + +/* + * When the legacy build tools define a macro called ALT_NO_BOOTLOADER, + * it indicates that initialization code is allowed at the reset address. + * The new build tools define a macro called ALT_ALLOW_CODE_AT_RESET for + * the same purpose. + */ +#ifdef ALT_NO_BOOTLOADER +#define ALT_ALLOW_CODE_AT_RESET +#endif + +/*************************************************************************\ +| EXTERNAL REFERENCES | +\*************************************************************************/ + +/* + * The entry point for user code is either "main" in hosted mode, or + * "alt_main" in standalone mode. These are explicitly referenced here, + * to ensure they are built into the executable. This allows the user + * to build them into libraries, rather than supplying them in object + * files at link time. + */ + .globl main + .globl alt_main + +/* + * Create a reference to the software multiply/divide and trap handers, + * so that if they are provided, they will appear in the executable. + */ +#ifndef ALT_NO_INSTRUCTION_EMULATION + .globl alt_exception_muldiv +#endif +#ifdef ALT_TRAP_HANDLER + .globl alt_exception_trap +#endif + +/* + * Linker defined symbols used to initialize bss. + */ +.globl __bss_start +.globl __bss_end + +/*************************************************************************\ +| RESET SECTION (.entry) | +\*************************************************************************/ + +/* + * This is the reset entry point for Nios II. + * + * At reset, only the cache line which contain the reset vector is + * initialized by the hardware. The code within the first cache line + * initializes the remainder of the instruction cache. + */ + + .section .entry, "xa" + .align 5 + +/* + * Explicitly allow the use of r1 (the assembler temporary register) + * within this code. This register is normally reserved for the use of + * the assembler. + */ + .set noat + +/* + * Some tools want to know where the reset vector is. + * Code isn't always provided at the reset vector but at least the + * __reset label always contains the reset vector address because + * it is defined at the start of the .entry section. + */ + + .globl __reset + .type __reset, @function +__reset: + +/* + * Initialize the instruction cache if present (i.e. size > 0) and + * reset code is allowed unless optimizing for RTL simulation. + * RTL simulations can ensure the instruction cache is already initialized + * so skipping this loop speeds up RTL simulation. + */ + +#if NIOS2_ICACHE_SIZE > 0 && defined(ALT_ALLOW_CODE_AT_RESET) && !defined(ALT_SIM_OPTIMIZE) + /* Assume the instruction cache size is always a power of two. */ +#if NIOS2_ICACHE_SIZE > 0x8000 + movhi r2, %hi(NIOS2_ICACHE_SIZE) +#else + movui r2, NIOS2_ICACHE_SIZE +#endif + +0: + initi r2 + addi r2, r2, -NIOS2_ICACHE_LINE_SIZE + bgt r2, zero, 0b +1: + + /* + * The following debug information tells the ISS not to run the loop above + * but to perform its actions using faster internal code. + */ + .pushsection .debug_alt_sim_info + .int 1, 1, 0b, 1b + .popsection +#endif /* Initialize Instruction Cache */ + +/* + * Jump to the _start entry point in the .text section if reset code + * is allowed or if optimizing for RTL simulation. + */ +#if defined(ALT_ALLOW_CODE_AT_RESET) || defined(ALT_SIM_OPTIMIZE) + /* Jump to the _start entry point in the .text section. */ + movhi r1, %hi(_start) + ori r1, r1, %lo(_start) + jmp r1 + + .size __reset, . - __reset +#endif /* Jump to _start */ + +/* + * When not using exit, provide an _exit symbol to prevent unresolved + * references to _exit from the linker script. + */ +#ifdef ALT_NO_EXIT + .globl _exit +_exit: +#endif + +/*************************************************************************\ +| TEXT SECTION (.text) | +\*************************************************************************/ + +/* + * Start of the .text section, and also the code entry point when + * the code is executed by a bootloader rather than directly from reset. + */ + .section .text + .align 2 + + .globl _start + .type _start, @function +_start: + +/* + * Initialize the data cache if present (i.e. size > 0) and not + * optimizing for RTL simulation. + * RTL simulations can ensure the data cache is already initialized + * so skipping this loop speeds up RTL simulation. + */ + +#if NIOS2_DCACHE_SIZE > 0 && !defined(ALT_SIM_OPTIMIZE) + + /* Assume the data cache size is always a power of two. */ +#if NIOS2_DCACHE_SIZE > 0x8000 + movhi r2, %hi(NIOS2_DCACHE_SIZE) +#else + movui r2, NIOS2_DCACHE_SIZE +#endif + +0: + initd 0(r2) + addi r2, r2, -NIOS2_DCACHE_LINE_SIZE + bgt r2, zero, 0b +1: + + /* + * The following debug information tells the ISS not to run the loop above + * but to perform its actions using faster internal code. + */ + .pushsection .debug_alt_sim_info + .int 2, 1, 0b, 1b + .popsection + +#endif /* Initialize Data Cache */ + + /* Log that caches have been initialized. */ + ALT_LOG_PUTS(alt_log_msg_cache) + + /* Log that the stack pointer is about to be setup. */ + ALT_LOG_PUTS(alt_log_msg_stackpointer) + +#if (NIOS2_NUM_OF_SHADOW_REG_SETS == 0) + /* + * Now that the caches are initialized, set up the stack pointer. + * The value provided by the linker is assumed to be correctly aligned. + */ + movhi sp, %hi(__alt_stack_pointer) + ori sp, sp, %lo(__alt_stack_pointer) + + /* Set up the global pointer. */ + movhi gp, %hi(_gp) + ori gp, gp, %lo(_gp) + +#else /* NIOS2_NUM_OF_SHADOW_REG_SETS > 0 */ + + /* + * Set up the GP and SP in all shadow register sets. + */ + + /* + * Check current register set number, if CPU resets into a shadow register + * set, switch register set to 0 by writing zero to SSTATUS register and + * execute an ERET instruction that just jumps to the next PC address + * (use the NEXTPC instruction to get this). + */ + + rdctl r2, status + + /* Get the current register set number (STATUS.CRS). */ + andi r3, r2, NIOS2_STATUS_CRS_MSK + + /* Skip switch register set if STATUS.CRS is 0. */ + beq r3, zero, .Lskip_switch_reg_set + + .set nobreak + + /* Current register set is non-zero, set SSTATUS to 0. */ + mov sstatus, zero + + /* Get next pc and store in ea. */ + nextpc ea + + /* Point to instruction after eret. */ + addi ea, ea, 8 + + /* + * Execute ERET instruction that just jumps to the next PC address + */ + eret + +.Lskip_switch_reg_set: + mov r2, zero + + /* Reset STATUS register */ + wrctl status, r2 + + movui r3, NIOS2_NUM_OF_SHADOW_REG_SETS + + /* Set up the stack pointer in register set 0. */ + movhi sp, %hi(__alt_stack_pointer) + ori sp, sp, %lo(__alt_stack_pointer) + + /* Set up the global pointer in register set 0. */ + movhi gp, %hi(_gp) + ori gp, gp, %lo(_gp) + +.Lsetup_sp_and_gp_loop: + /* + * Setup GP and SP for shadow register set + * from NIOS2_NUM_OF_SHADOW_REG_SETS to 0 + */ + + /* Skip if number of register sets is 0. */ + beq r3, zero, .Lno_shadow_register_set + + + /* Add previous register set STATUS.PRS by 1 */ + movhi r4, 1 + add r2, r2, r4 + + /* Write STATUS */ + wrctl status, r2 + + /* Clear r0 in the shadow register set (not done by hardware) */ + wrprs r0, r0 + + /* Write the GP in previous register set */ + wrprs gp, gp + + /* Only write the SP in previous register set + * if using the seperate exception stack. For normal case (single stack), + * funnel code would read the SP from previous register set. + */ +#ifdef ALT_INTERRUPT_STACK + + movhi et, %hiadj(__alt_interrupt_stack_pointer) + addi et, et, %lo(__alt_interrupt_stack_pointer) + wrprs sp, et + +#endif /* ALT_INTERRUPT_STACK */ + + /* Decrease number of register set counter by 1 */ + addi r3, r3, -1 + + br .Lsetup_sp_and_gp_loop +.Lno_shadow_register_set: + +#endif /* NIOS2_NUM_OF_SHADOW_REG_SETS */ +/* + * Clear the BSS if not optimizing for RTL simulation. + * + * This uses the symbols: __bss_start and __bss_end, which are defined + * by the linker script. They mark the begining and the end of the bss + * region. The linker script guarantees that these values are word aligned. + */ +#ifndef ALT_SIM_OPTIMIZE + /* Log that the BSS is about to be cleared. */ + ALT_LOG_PUTS(alt_log_msg_bss) + + movhi r2, %hi(__bss_start) + ori r2, r2, %lo(__bss_start) + + movhi r3, %hi(__bss_end) + ori r3, r3, %lo(__bss_end) + + beq r2, r3, 1f + +0: + stw zero, (r2) + addi r2, r2, 4 + bltu r2, r3, 0b + +1: + + /* + * The following debug information tells the ISS not to run the loop above + * but to perform its actions using faster internal code. + */ + .pushsection .debug_alt_sim_info + .int 3, 1, 0b, 1b + .popsection +#endif /* ALT_SIM_OPTIMIZE */ + +/* + * The alt_load() facility is normally used when there is no bootloader. + * It copies some sections into RAM so it acts like a mini-bootloader. + */ +#ifdef CALL_ALT_LOAD + +#ifdef ALT_STACK_CHECK + /* + * If the user has selected stack checking then we need to set up a safe + * value in the stack limit register so that the relocation functions + * don't think the stack has overflowed (the contents of the rwdata + * section aren't defined until alt_load() has been called). + */ + mov et, zero +#endif + + call alt_load + +#endif /* CALL_ALT_LOAD */ + +#ifdef ALT_STACK_CHECK + /* + * Set up the stack limit (if required). The linker has set up the + * copy of the variable which is in memory. + */ + + ldw et, %gprel(alt_stack_limit_value)(gp) +#endif + + /* Log that alt_main is about to be called. */ + ALT_LOG_PUTS(alt_log_msg_alt_main) + + /* Call the C entry point. It should never return. */ + call alt_main + + /* Wait in infinite loop in case alt_main does return. */ +alt_after_alt_main: + br alt_after_alt_main + + .size _start, . - _start + +/* + * Add information about the stack base if stack overflow checking is enabled. + */ +#ifdef ALT_STACK_CHECK + .globl alt_stack_limit_value + .section .sdata,"aws",@progbits + .align 2 + .type alt_stack_limit_value, @object + .size alt_stack_limit_value, 4 +alt_stack_limit_value: + .long __alt_stack_limit +#endif diff --git a/software/qsys_tutorial_hexs_bsp/Makefile b/software/qsys_tutorial_hexs_bsp/Makefile new file mode 100644 index 0000000..dcf3b22 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/Makefile @@ -0,0 +1,766 @@ +#------------------------------------------------------------------------------ +# BSP MAKEFILE +# +# This makefile was automatically generated by the nios2-bsp-generate-files +# command. Its purpose is to build a custom Board Support Package (BSP) +# targeting a specific Nios II processor in an SOPC Builder-based design. +# +# To create an application or library Makefile which uses this BSP, try the +# nios2-app-generate-makefile or nios2-lib-generate-makefile commands. +#------------------------------------------------------------------------------ + +#------------------------------------------------------------------------------ +# TOOLS +#------------------------------------------------------------------------------ + +MKDIR := mkdir -p +ECHO := echo +SPACE := $(empty) $(empty) + +#------------------------------------------------------------------------------ +# The adjust-path macro +# +# If COMSPEC is defined, Make is launched from Windows through +# Cygwin. This adjust-path macro will call 'cygpath -u' on all +# paths to ensure they are readable by Make. +# +# If COMSPEC is not defined, Make is launched from *nix, and no adjustment +# is necessary +#------------------------------------------------------------------------------ + +ifndef COMSPEC +ifdef ComSpec +COMSPEC = $(ComSpec) +endif # ComSpec +endif # !COMSPEC + +ifdef COMSPEC + adjust-path = $(subst $(SPACE),\$(SPACE),$(shell cygpath -u "$1")) + adjust-path-mixed = $(subst $(SPACE),\$(SPACE),$(shell cygpath -m "$1")) +else + adjust-path = $(subst $(SPACE),\$(SPACE),$1) + adjust-path-mixed = $(subst $(SPACE),\$(SPACE),$1) +endif + +#------------------------------------------------------------------------------ +# DEFAULT TARGET +# +# The default target, "all", must appear before any other target in the +# Makefile. Note that extra prerequisites are added to the "all" rule later. +#------------------------------------------------------------------------------ +.PHONY: all +all: + @$(ECHO) [BSP build complete] + + +#------------------------------------------------------------------------------ +# PATHS & DIRECTORY NAMES +# +# Explicitly locate absolute path of the BSP root +#------------------------------------------------------------------------------ + +BSP_ROOT_DIR := . + +# Define absolute path to the root of the BSP. +ABS_BSP_ROOT := $(call adjust-path-mixed,$(shell pwd)) + +# Stash all BSP object files here +OBJ_DIR := ./obj + +NEWLIB_DIR = $(BSP_ROOT_DIR)/newlib + + +#------------------------------------------------------------------------------ +# MANAGED CONTENT +# +# All content between the lines "START MANAGED" and "END MANAGED" below is +# generated based on variables in the BSP settings file when the +# nios2-bsp-generate-files command is invoked. If you wish to persist any +# information pertaining to the build process, it is recomended that you +# utilize the BSP settings mechanism to do so. +# +# Note that most variable assignments in this section have a corresponding BSP +# setting that can be changed by using the nios2-bsp-create-settings or +# nios2-bsp-update-settings command before nios2-bsp-generate-files; if you +# want any variable set to a specific value when this Makefile is re-generated +# (to prevent hand-edits from being over-written), use the BSP settings +# facilities above. +#------------------------------------------------------------------------------ + +#START MANAGED + +# The following TYPE comment allows tools to identify the 'type' of target this +# makefile is associated with. +# TYPE: BSP_PRIVATE_MAKEFILE + +# This following VERSION comment indicates the version of the tool used to +# generate this makefile. A makefile variable is provided for VERSION as well. +# ACDS_VERSION: 13.0sp1 +ACDS_VERSION := 13.0sp1 + +# This following BUILD_NUMBER comment indicates the build number of the tool +# used to generate this makefile. +# BUILD_NUMBER: 232 + +SETTINGS_FILE := settings.bsp +SOPC_FILE := C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.sopcinfo + +#------------------------------------------------------------------------------- +# TOOL & COMMAND DEFINITIONS +# +# The base command for each build operation are expressed here. Additional +# switches may be expressed here. They will run for all instances of the +# utility. +#------------------------------------------------------------------------------- + +# Archiver command. Creates library files. +AR = nios2-elf-ar + +# Assembler command. Note that CC is used for .S files. +AS = nios2-elf-gcc + +# Custom flags only passed to the archiver. This content of this variable is +# directly passed to the archiver rather than the more standard "ARFLAGS". The +# reason for this is that GNU Make assumes some default content in ARFLAGS. +# This setting defines the value of BSP_ARFLAGS in Makefile. +BSP_ARFLAGS = -src + +# Custom flags only passed to the assembler. This setting defines the value of +# BSP_ASFLAGS in Makefile. +BSP_ASFLAGS = -Wa,-gdwarf2 + +# C/C++ compiler debug level. '-g' provides the default set of debug symbols +# typically required to debug a typical application. Omitting '-g' removes +# debug symbols from the ELF. This setting defines the value of +# BSP_CFLAGS_DEBUG in Makefile. +BSP_CFLAGS_DEBUG = -g + +# C/C++ compiler optimization level. "-O0" = no optimization,"-O2" = "normal" +# optimization, etc. "-O0" is recommended for code that you want to debug since +# compiler optimization can remove variables and produce non-sequential +# execution of code while debugging. This setting defines the value of +# BSP_CFLAGS_OPTIMIZATION in Makefile. +BSP_CFLAGS_OPTIMIZATION = '-Os' + +# C/C++ compiler warning level. "-Wall" is commonly used.This setting defines +# the value of BSP_CFLAGS_WARNINGS in Makefile. +BSP_CFLAGS_WARNINGS = -Wall + +# C compiler command. +CC = nios2-elf-gcc -xc + +# C++ compiler command. +CXX = nios2-elf-gcc -xc++ + +# Command used to remove files during 'clean' target. +RM = rm -f + + +#------------------------------------------------------------------------------- +# BUILD PRE & POST PROCESS COMMANDS +# +# The following variables are treated as shell commands in the rule +# definitions for each file-type associated with the BSP build, as well as +# commands run at the beginning and end of the entire BSP build operation. +# Pre-process commands are executed before the relevant command (for example, +# a command defined in the "CC_PRE_PROCESS" variable executes before the C +# compiler for building .c files), while post-process commands are executed +# immediately afterwards. +# +# You can view each pre/post-process command in the "Build Rules: All & +# Clean", "Pattern Rules to Build Objects", and "Library Rules" sections of +# this Makefile. +#------------------------------------------------------------------------------- + + +#------------------------------------------------------------------------------- +# BSP SOURCE BUILD SETTINGS (FLAG GENERATION) +# +# Software build settings such as compiler optimization, debug level, warning +# flags, etc., may be defined in the following variables. The variables below +# are concatenated together in the 'Flags' section of this Makefile to form +# final variables of flags passed to the build tools. +# +# These settings are considered private to the BSP and apply to all library & +# driver files in it; they do NOT automatically propagate to, for example, the +# build settings for an application. +# # For additional detail and syntax requirements, please refer to GCC help +# (example: "nios2-elf-gcc --help --verbose"). +# +# Unless indicated otherwise, multiple entries in each variable should be +# space-separated. +#------------------------------------------------------------------------------- + +# Altera HAL alt_sys_init.c generated source file +GENERATED_C_FILES := $(ABS_BSP_ROOT)/alt_sys_init.c +GENERATED_C_LIB_SRCS += alt_sys_init.c + + +#------------------------------------------------------------------------------- +# BSP SOURCE FILE LISTING +# +# All source files that comprise the BSP are listed here, along with path +# information to each file expressed relative to the BSP root. The precise +# list and location of each file is derived from the driver, operating system, +# or software package source file declarations. +# +# Following specification of the source files for each component, driver, etc., +# each source file type (C, assembly, etc.) is concatenated together and used +# to construct a list of objects. Pattern rules to build each object are then +# used to build each file. +#------------------------------------------------------------------------------- + +# altera_avalon_jtag_uart_driver sources root +altera_avalon_jtag_uart_driver_SRCS_ROOT := drivers + +# altera_avalon_jtag_uart_driver sources +altera_avalon_jtag_uart_driver_C_LIB_SRCS := \ + $(altera_avalon_jtag_uart_driver_SRCS_ROOT)/src/altera_avalon_jtag_uart_init.c \ + $(altera_avalon_jtag_uart_driver_SRCS_ROOT)/src/altera_avalon_jtag_uart_read.c \ + $(altera_avalon_jtag_uart_driver_SRCS_ROOT)/src/altera_avalon_jtag_uart_write.c \ + $(altera_avalon_jtag_uart_driver_SRCS_ROOT)/src/altera_avalon_jtag_uart_ioctl.c \ + $(altera_avalon_jtag_uart_driver_SRCS_ROOT)/src/altera_avalon_jtag_uart_fd.c + +# altera_avalon_pio_driver sources root +altera_avalon_pio_driver_SRCS_ROOT := drivers + +# altera_avalon_pio_driver sources +# altera_nios2_qsys_hal_driver sources root +altera_nios2_qsys_hal_driver_SRCS_ROOT := HAL + +# altera_nios2_qsys_hal_driver sources +altera_nios2_qsys_hal_driver_C_LIB_SRCS := \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/altera_nios2_qsys_irq.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_usleep.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_busy_sleep.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_irq_vars.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_icache_flush.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_icache_flush_all.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_dcache_flush.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_dcache_flush_all.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_dcache_flush_no_writeback.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_instruction_exception_entry.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_irq_register.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_iic.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_remap_cached.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_remap_uncached.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_uncached_free.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_uncached_malloc.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_do_ctors.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_do_dtors.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_gmon.c + +altera_nios2_qsys_hal_driver_ASM_LIB_SRCS := \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_exception_entry.S \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_exception_trap.S \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_exception_muldiv.S \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_irq_entry.S \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_software_exception.S \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_mcount.S \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_log_macro.S \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/crt0.S + +# hal sources root +hal_SRCS_ROOT := HAL + +# hal sources +hal_C_LIB_SRCS := \ + $(hal_SRCS_ROOT)/src/alt_alarm_start.c \ + $(hal_SRCS_ROOT)/src/alt_close.c \ + $(hal_SRCS_ROOT)/src/alt_dev.c \ + $(hal_SRCS_ROOT)/src/alt_dev_llist_insert.c \ + $(hal_SRCS_ROOT)/src/alt_dma_rxchan_open.c \ + $(hal_SRCS_ROOT)/src/alt_dma_txchan_open.c \ + $(hal_SRCS_ROOT)/src/alt_environ.c \ + $(hal_SRCS_ROOT)/src/alt_env_lock.c \ + $(hal_SRCS_ROOT)/src/alt_errno.c \ + $(hal_SRCS_ROOT)/src/alt_execve.c \ + $(hal_SRCS_ROOT)/src/alt_exit.c \ + $(hal_SRCS_ROOT)/src/alt_fcntl.c \ + $(hal_SRCS_ROOT)/src/alt_fd_lock.c \ + $(hal_SRCS_ROOT)/src/alt_fd_unlock.c \ + $(hal_SRCS_ROOT)/src/alt_find_dev.c \ + $(hal_SRCS_ROOT)/src/alt_find_file.c \ + $(hal_SRCS_ROOT)/src/alt_flash_dev.c \ + $(hal_SRCS_ROOT)/src/alt_fork.c \ + $(hal_SRCS_ROOT)/src/alt_fs_reg.c \ + $(hal_SRCS_ROOT)/src/alt_fstat.c \ + $(hal_SRCS_ROOT)/src/alt_get_fd.c \ + $(hal_SRCS_ROOT)/src/alt_getchar.c \ + $(hal_SRCS_ROOT)/src/alt_getpid.c \ + $(hal_SRCS_ROOT)/src/alt_gettod.c \ + $(hal_SRCS_ROOT)/src/alt_iic_isr_register.c \ + $(hal_SRCS_ROOT)/src/alt_instruction_exception_register.c \ + $(hal_SRCS_ROOT)/src/alt_ioctl.c \ + $(hal_SRCS_ROOT)/src/alt_io_redirect.c \ + $(hal_SRCS_ROOT)/src/alt_irq_handler.c \ + $(hal_SRCS_ROOT)/src/alt_isatty.c \ + $(hal_SRCS_ROOT)/src/alt_kill.c \ + $(hal_SRCS_ROOT)/src/alt_link.c \ + $(hal_SRCS_ROOT)/src/alt_load.c \ + $(hal_SRCS_ROOT)/src/alt_log_printf.c \ + $(hal_SRCS_ROOT)/src/alt_lseek.c \ + $(hal_SRCS_ROOT)/src/alt_main.c \ + $(hal_SRCS_ROOT)/src/alt_malloc_lock.c \ + $(hal_SRCS_ROOT)/src/alt_open.c \ + $(hal_SRCS_ROOT)/src/alt_printf.c \ + $(hal_SRCS_ROOT)/src/alt_putchar.c \ + $(hal_SRCS_ROOT)/src/alt_putstr.c \ + $(hal_SRCS_ROOT)/src/alt_read.c \ + $(hal_SRCS_ROOT)/src/alt_release_fd.c \ + $(hal_SRCS_ROOT)/src/alt_rename.c \ + $(hal_SRCS_ROOT)/src/alt_sbrk.c \ + $(hal_SRCS_ROOT)/src/alt_settod.c \ + $(hal_SRCS_ROOT)/src/alt_stat.c \ + $(hal_SRCS_ROOT)/src/alt_tick.c \ + $(hal_SRCS_ROOT)/src/alt_times.c \ + $(hal_SRCS_ROOT)/src/alt_unlink.c \ + $(hal_SRCS_ROOT)/src/alt_wait.c \ + $(hal_SRCS_ROOT)/src/alt_write.c + + +# Assemble all component C source files +COMPONENT_C_LIB_SRCS += \ + $(altera_avalon_jtag_uart_driver_C_LIB_SRCS) \ + $(altera_nios2_qsys_hal_driver_C_LIB_SRCS) \ + $(hal_C_LIB_SRCS) + +# Assemble all component assembly source files +COMPONENT_ASM_LIB_SRCS += \ + $(altera_nios2_qsys_hal_driver_ASM_LIB_SRCS) + +# Assemble all component C++ source files +COMPONENT_CPP_LIB_SRCS += \ + +#END MANAGED + +#------------------------------------------------------------------------------ +# PUBLIC.MK +# +# The generated public.mk file contains BSP information that is shared with +# other external makefiles, such as a Nios II application makefile. System- +# dependent information such as hardware-specific compiler flags and +# simulation file generation are stored here. +# +# In addition, public.mk contains include paths that various software, +# such as a device driver, may need for the C compiler. These paths are +# written to public.mk with respect to the BSP root. In public.mk, each +# path is prefixed with a special variable, $(ALT_LIBRARY_ROOT_DIR). The +# purpose of this variable is to allow an external Makefile to append on +# path information to precisely locate paths expressed in public.mk +# Since this is the BSP Makefile, we set ALT_LIBRARY_ROOT_DIR to point right +# here ("."), at the BSP root. +# +# ALT_LIBRARY_ROOT_DIR must always be set before public.mk is included. +#------------------------------------------------------------------------------ +ALT_LIBRARY_ROOT_DIR := . +include public.mk + + +#------------------------------------------------------------------------------ +# FLAGS +# +# Include paths for BSP files are written into the public.mk file and must +# be added to the existing list of pre-processor flags. In addition, "hooks" +# for standard flags left intentionally empty (CFLAGS, CPPFLAGS, ASFLAGS, +# and CXXFLAGS) are provided for conveniently adding to the relevant flags +# on the command-line or via script that calls make. +#------------------------------------------------------------------------------ +# Assemble final list of compiler flags from generated content +BSP_CFLAGS += \ + $(BSP_CFLAGS_DEFINED_SYMBOLS) \ + $(BSP_CFLAGS_UNDEFINED_SYMBOLS) \ + $(BSP_CFLAGS_OPTIMIZATION) \ + $(BSP_CFLAGS_DEBUG) \ + $(BSP_CFLAGS_WARNINGS) \ + $(BSP_CFLAGS_USER_FLAGS) \ + $(ALT_CFLAGS) \ + $(CFLAGS) + +# Make ready the final list of include directories and other C pre-processor +# flags. Each include path is made ready by prefixing it with "-I". +BSP_CPPFLAGS += \ + $(addprefix -I, $(BSP_INC_DIRS)) \ + $(addprefix -I, $(ALT_INCLUDE_DIRS)) \ + $(ALT_CPPFLAGS) \ + $(CPPFLAGS) + +# Finish off assembler flags with any user-provided flags +BSP_ASFLAGS += $(ASFLAGS) + +# Finish off C++ flags with any user-provided flags +BSP_CXXFLAGS += $(CXXFLAGS) + +# And finally, the ordered list +C_SRCS += $(GENERATED_C_LIB_SRCS) \ + $(COMPONENT_C_LIB_SRCS) + +CXX_SRCS += $(GENERATED_CPP_LIB_SRCS) \ + $(COMPONENT_CPP_LIB_SRCS) + +ASM_SRCS += $(GENERATED_ASM_LIB_SRCS) \ + $(COMPONENT_ASM_LIB_SRCS) + + +#------------------------------------------------------------------------------ +# LIST OF GENERATED FILES +# +# A Nios II BSP relies on the generation of several source files used +# by both the BSP and any applications referencing the BSP. +#------------------------------------------------------------------------------ + + +GENERATED_H_FILES := $(ABS_BSP_ROOT)/system.h + +GENERATED_LINKER_SCRIPT := $(ABS_BSP_ROOT)/linker.x + +GENERATED_FILES += $(GENERATED_H_FILES) \ + $(GENERATED_LINKER_SCRIPT) + + +#------------------------------------------------------------------------------ +# SETUP TO BUILD OBJECTS +# +# List of object files which are to be built. This is constructed from the input +# list of C source files (C_SRCS), C++ source files (CXX_SRCS), and assembler +# source file (ASM_SRCS). The permitted file extensions are: +# +# .c .C - for C files +# .cxx .cc .cpp .CXX .CC .CPP - for C++ files +# .S .s - for assembly files +# +# Extended description: The list of objects is a sorted list (duplicates +# removed) of all possible objects, placed beneath the ./obj directory, +# including any path information stored in the "*_SRCS" variable. The +# "patsubst" commands are used to concatenate together multiple file suffix +# types for common files (i.e. c++ as .cxx, .cc, .cpp). +# +# File extensions are case-insensitive in build rules with the exception of +# assembly sources. Nios II assembly sources with the ".S" extension are first +# run through the C preprocessor. Sources with the ".s" extension are not. +#------------------------------------------------------------------------------ +OBJS = $(sort $(addprefix $(OBJ_DIR)/, \ + $(patsubst %.c, %.o, $(patsubst %.C, %.o, $(C_SRCS))) \ + $(patsubst %.cxx, %.o, $(patsubst %.CXX, %.o, \ + $(patsubst %.cc, %.o, $(patsubst %.CC, %.o, \ + $(patsubst %.cpp, %.o, $(patsubst %.CPP, %.o, \ + $(CXX_SRCS) )))))) \ + $(patsubst %.S, %.o, $(patsubst %.s, %.o, $(ASM_SRCS))) )) + +# List of dependancy files for each object file. +DEPS = $(OBJS:.o=.d) + + +# Rules to force your project to rebuild or relink +# .force_relink file will cause any application that depends on this project to relink +# .force_rebuild file will cause this project to rebuild object files +# .force_rebuild_all file will cause this project and any project that depends on this project to rebuild object files + +FORCE_RELINK_DEP := .force_relink +FORCE_REBUILD_DEP := .force_rebuild +FORCE_REBUILD_ALL_DEP := .force_rebuild_all +FORCE_REBUILD_DEP_LIST := $(FORCE_RELINK_DEP) $(FORCE_REBUILD_DEP) $(FORCE_REBUILD_ALL_DEP) + +$(FORCE_REBUILD_DEP_LIST): + +$(OBJS): $(wildcard $(FORCE_REBUILD_DEP)) $(wildcard $(FORCE_REBUILD_ALL_DEP)) + + +#------------------------------------------------------------------------------ +# BUILD RULES: ALL & CLEAN +#------------------------------------------------------------------------------ +.DELETE_ON_ERROR: + +.PHONY: all +all: build_pre_process +all: Makefile $(GENERATED_FILES) $(BSP_LIB) $(NEWLIB_DIR) +all: build_post_process + + +# clean: remove .o/.a/.d +.PHONY: clean +clean: + @$(RM) -r $(BSP_LIB) $(OBJ_DIR) $(FORCE_REBUILD_DEP_LIST) +ifneq ($(wildcard $(NEWLIB_DIR)),) + @$(RM) -r $(NEWLIB_DIR) +endif + @$(ECHO) [BSP clean complete] + + +#------------------------------------------------------------------------------ +# BUILD PRE/POST PROCESS +#------------------------------------------------------------------------------ +build_pre_process : + $(BUILD_PRE_PROCESS) + +build_post_process : + $(BUILD_POST_PROCESS) + +.PHONY: build_pre_process build_post_process + + + +#------------------------------------------------------------------------------ +# MAKEFILE UP TO DATE? +# +# Is this very Makefile up to date? Someone may have changed the BSP settings +# file or the associated target hardware. +#------------------------------------------------------------------------------ +# Skip this check when clean is the only target +ifneq ($(MAKECMDGOALS),clean) + +ifneq ($(wildcard $(SETTINGS_FILE)),$(SETTINGS_FILE)) +$(warning Warning: BSP Settings File $(SETTINGS_FILE) could not be found.) +endif + +Makefile: $(wildcard $(SETTINGS_FILE)) + @$(ECHO) Makefile not up to date. + @$(ECHO) $(SETTINGS_FILE) has been modified since the BSP Makefile was generated. + @$(ECHO) + @$(ECHO) Generate the BSP to update the Makefile, and then build again. + @$(ECHO) + @$(ECHO) To generate from Eclipse: + @$(ECHO) " 1. Right-click the BSP project." + @$(ECHO) " 2. In the Nios II Menu, click Generate BSP." + @$(ECHO) + @$(ECHO) To generate from the command line: + @$(ECHO) " nios2-bsp-generate-files --settings= --bsp-dir=" + @$(ECHO) + @exit 1 + +ifneq ($(wildcard $(SOPC_FILE)),$(SOPC_FILE)) +$(warning Warning: SOPC File $(SOPC_FILE) could not be found.) +endif + +public.mk: $(wildcard $(SOPC_FILE)) + @$(ECHO) Makefile not up to date. + @$(ECHO) $(SOPC_FILE) has been modified since the BSP was generated. + @$(ECHO) + @$(ECHO) Generate the BSP to update the Makefile, and then build again. + @$(ECHO) + @$(ECHO) To generate from Eclipse: + @$(ECHO) " 1. Right-click the BSP project." + @$(ECHO) " 2. In the Nios II Menu, click Generate BSP." + @$(ECHO) + @$(ECHO) To generate from the command line: + @$(ECHO) " nios2-bsp-generate-files --settings= --bsp-dir=" + @$(ECHO) + @exit 1 + +endif # $(MAKECMDGOALS) != clean + +#------------------------------------------------------------------------------ +# PATTERN RULES TO BUILD OBJECTS +#------------------------------------------------------------------------------ +$(OBJ_DIR)/%.o: %.c + @$(ECHO) Compiling $( + +/* + * Device headers + */ + +#include "altera_nios2_qsys_irq.h" +#include "altera_avalon_jtag_uart.h" + +/* + * Allocate the device storage + */ + +ALTERA_NIOS2_QSYS_IRQ_INSTANCE ( NIOS2_PROCESSOR, nios2_processor); +ALTERA_AVALON_JTAG_UART_INSTANCE ( JTAG_UART, jtag_uart); + +/* + * Initialize the interrupt controller devices + * and then enable interrupts in the CPU. + * Called before alt_sys_init(). + * The "base" parameter is ignored and only + * present for backwards-compatibility. + */ + +void alt_irq_init ( const void* base ) +{ + ALTERA_NIOS2_QSYS_IRQ_INIT ( NIOS2_PROCESSOR, nios2_processor); + alt_irq_cpu_enable_interrupts(); +} + +/* + * Initialize the non-interrupt controller devices. + * Called after alt_irq_init(). + */ + +void alt_sys_init( void ) +{ + ALTERA_AVALON_JTAG_UART_INIT ( JTAG_UART, jtag_uart); +} diff --git a/software/qsys_tutorial_hexs_bsp/create-this-bsp b/software/qsys_tutorial_hexs_bsp/create-this-bsp new file mode 100644 index 0000000..49e6175 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/create-this-bsp @@ -0,0 +1,49 @@ +#!/bin/bash +# +# This script creates the ucosii_net_zipfs Board Support Package (BSP). + +BSP_TYPE=hal +BSP_DIR=. +SOPC_DIR=../../ +SOPC_FILE=C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.sopcinfo +NIOS2_BSP_ARGS="--set hal.max_file_descriptors 4 --set hal.enable_small_c_library true --set hal.sys_clk_timer none --set hal.timestamp_timer none --set hal.enable_exit false --set hal.enable_c_plus_plus false --set hal.enable_lightweight_device_driver_api true --set hal.enable_clean_exit false --set hal.enable_sim_optimize false --set hal.enable_reduced_device_drivers true --set hal.make.bsp_cflags_optimization '-Os'" +CPU_NAME= + + +# Don't run make if create-this-app script is called with --no-make arg +SKIP_MAKE= +while [ $# -gt 0 ] +do + case "$1" in + --no-make) + SKIP_MAKE=1 + ;; + *) + NIOS2_BSP_ARGS="$NIOS2_BSP_ARGS $1" + ;; + esac + shift +done + + +# Run nios2-bsp utility to create a hal BSP in this directory +# for the system with a .sopc file in $SOPC_FILE. +# Deprecating $SOPC_DIR in 10.1. Multiple .sopcinfo files in a directory may exist. + +if [ -z "$SOPC_FILE" ]; then + echo "WARNING: Use of a directory for locating a .sopcinfo file is deprecated in 10.1. Multiple .sopcinfo files may exist. You must specify the full .sopcinfo path." + cmd="nios2-bsp $BSP_TYPE $BSP_DIR $SOPC_DIR $NIOS2_BSP_ARGS $CPU_NAME" +else + cmd="nios2-bsp $BSP_TYPE $BSP_DIR $SOPC_FILE $NIOS2_BSP_ARGS $CPU_NAME" +fi + + +echo "create-this-bsp: Running \"$cmd\"" +$cmd || { + echo "$cmd failed" + exit 1 +} +if [ -z "$SKIP_MAKE" ]; then + echo "create-this-bsp: Running make" + make +fi diff --git a/software/qsys_tutorial_hexs_bsp/drivers/inc/altera_avalon_jtag_uart.h b/software/qsys_tutorial_hexs_bsp/drivers/inc/altera_avalon_jtag_uart.h new file mode 100644 index 0000000..95d4a99 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/drivers/inc/altera_avalon_jtag_uart.h @@ -0,0 +1,198 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#ifndef __ALT_AVALON_JTAG_UART_H__ +#define __ALT_AVALON_JTAG_UART_H__ + +#include + +#include "sys/alt_alarm.h" +#include "sys/alt_warning.h" + +#include "os/alt_sem.h" +#include "os/alt_flag.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * If the user wants all drivers to be small rather than fast then make sure + * this one is marked as needing to be small. + */ +#if defined ALT_USE_SMALL_DRIVERS && !defined ALTERA_AVALON_JTAG_UART_SMALL +#define ALTERA_AVALON_JTAG_UART_SMALL +#endif + +/* + * If the user wants to ignore FIFO full error after timeout + */ +#if defined ALT_JTAG_UART_IGNORE_FIFO_FULL_ERROR && !defined ALTERA_AVALON_JTAG_UART_IGNORE_FIFO_FULL_ERROR +#define ALTERA_AVALON_JTAG_UART_IGNORE_FIFO_FULL_ERROR +#endif + +/* + * Constants that can be overriden. + */ +#ifndef ALTERA_AVALON_JTAG_UART_DEFAULT_TIMEOUT +#define ALTERA_AVALON_JTAG_UART_DEFAULT_TIMEOUT 10 +#endif + +#ifndef ALTERA_AVALON_JTAG_UART_BUF_LEN +#define ALTERA_AVALON_JTAG_UART_BUF_LEN 2048 +#endif + +/* + * ALT_JTAG_UART_READ_RDY and ALT_JTAG_UART_WRITE_RDY are the bitmasks + * that define uC/OS-II event flags that are releated to this device. + * + * ALT_JTAG_UART_READ_RDY indicates that there is read data in the buffer + * ready to be processed. ALT_JTAG_UART_WRITE_RDY indicates that the transmitter is + * ready for more data. + */ +#define ALT_JTAG_UART_READ_RDY 0x1 +#define ALT_JTAG_UART_WRITE_RDY 0x2 +#define ALT_JTAG_UART_TIMEOUT 0x4 + +/* + * State structure definition. Each instance of the driver uses one + * of these structures to hold its associated state. + */ + +typedef struct altera_avalon_jtag_uart_state_s +{ + unsigned int base; + +#ifndef ALTERA_AVALON_JTAG_UART_SMALL + + unsigned int timeout; /* Timeout until host is assumed inactive */ + alt_alarm alarm; + unsigned int irq_enable; + unsigned int host_inactive; + + ALT_SEM (read_lock) + ALT_SEM (write_lock) + ALT_FLAG_GRP (events) + + /* The variables below are volatile because they are modified by the + * interrupt routine. Making them volatile and reading them atomically + * means that we don't need any large critical sections. + */ + volatile unsigned int rx_in; + unsigned int rx_out; + unsigned int tx_in; + volatile unsigned int tx_out; + char rx_buf[ALTERA_AVALON_JTAG_UART_BUF_LEN]; + char tx_buf[ALTERA_AVALON_JTAG_UART_BUF_LEN]; + +#endif /* !ALTERA_AVALON_JTAG_UART_SMALL */ + +} altera_avalon_jtag_uart_state; + +/* + * Macros used by alt_sys_init when the ALT file descriptor facility isn't used. + */ + +#ifdef ALTERA_AVALON_JTAG_UART_SMALL + +#define ALTERA_AVALON_JTAG_UART_STATE_INSTANCE(name, state) \ + altera_avalon_jtag_uart_state state = \ + { \ + name##_BASE, \ + } + +#define ALTERA_AVALON_JTAG_UART_STATE_INIT(name, state) + +#else /* !ALTERA_AVALON_JTAG_UART_SMALL */ + +#define ALTERA_AVALON_JTAG_UART_STATE_INSTANCE(name, state) \ + altera_avalon_jtag_uart_state state = \ + { \ + name##_BASE, \ + ALTERA_AVALON_JTAG_UART_DEFAULT_TIMEOUT, \ + } + +/* + * Externally referenced routines + */ +extern void altera_avalon_jtag_uart_init(altera_avalon_jtag_uart_state* sp, + int irq_controller_id, int irq); + +#define ALTERA_AVALON_JTAG_UART_STATE_INIT(name, state) \ + { \ + if (name##_IRQ == ALT_IRQ_NOT_CONNECTED) \ + { \ + ALT_LINK_ERROR ("Error: Interrupt not connected for " #name ". " \ + "You have selected the interrupt driven version of " \ + "the ALTERA Avalon JTAG UART driver, but the " \ + "interrupt is not connected for this device. You can " \ + "select a polled mode driver by checking the 'small " \ + "driver' option in the HAL configuration window, or " \ + "by using the -DALTERA_AVALON_JTAG_UART_SMALL " \ + "preprocessor flag."); \ + } \ + else \ + altera_avalon_jtag_uart_init(&state, \ + name##_IRQ_INTERRUPT_CONTROLLER_ID, \ + name##_IRQ); \ + } + +#endif /* ALTERA_AVALON_JTAG_UART_SMALL */ + +/* + * Include in case non-direct version of driver required. + */ +#include "altera_avalon_jtag_uart_fd.h" + +/* + * Map alt_sys_init macros to direct or non-direct versions. + */ +#ifdef ALT_USE_DIRECT_DRIVERS + +#define ALTERA_AVALON_JTAG_UART_INSTANCE(name, state) \ + ALTERA_AVALON_JTAG_UART_STATE_INSTANCE(name, state) +#define ALTERA_AVALON_JTAG_UART_INIT(name, state) \ + ALTERA_AVALON_JTAG_UART_STATE_INIT(name, state) + +#else /* !ALT_USE_DIRECT_DRIVERS */ + +#define ALTERA_AVALON_JTAG_UART_INSTANCE(name, dev) \ + ALTERA_AVALON_JTAG_UART_DEV_INSTANCE(name, dev) +#define ALTERA_AVALON_JTAG_UART_INIT(name, dev) \ + ALTERA_AVALON_JTAG_UART_DEV_INIT(name, dev) + +#endif /* ALT_USE_DIRECT_DRIVERS */ + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __ALT_AVALON_JTAG_UART_H__ */ diff --git a/software/qsys_tutorial_hexs_bsp/drivers/inc/altera_avalon_jtag_uart_fd.h b/software/qsys_tutorial_hexs_bsp/drivers/inc/altera_avalon_jtag_uart_fd.h new file mode 100644 index 0000000..b3c3200 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/drivers/inc/altera_avalon_jtag_uart_fd.h @@ -0,0 +1,125 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2007 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#ifndef __ALT_AVALON_JTAG_UART_FD_H__ +#define __ALT_AVALON_JTAG_UART_FD_H__ + +#include "sys/alt_dev.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * Externally referenced routines + */ +extern int altera_avalon_jtag_uart_read_fd (alt_fd* fd, char* ptr, int len); +extern int altera_avalon_jtag_uart_write_fd (alt_fd* fd, const char* ptr, + int len); + +/* + * Device structure definition. This is needed by alt_sys_init in order to + * reserve memory for the device instance. + */ + +typedef struct altera_avalon_jtag_uart_dev_s +{ + alt_dev dev; + altera_avalon_jtag_uart_state state; +} altera_avalon_jtag_uart_dev; + +/* + * Macros used by alt_sys_init when the ALT file descriptor facility is used. + */ + +#ifdef ALTERA_AVALON_JTAG_UART_SMALL + +#define ALTERA_AVALON_JTAG_UART_DEV_INSTANCE(name, d) \ + static altera_avalon_jtag_uart_dev d = \ + { \ + { \ + ALT_LLIST_ENTRY, \ + name##_NAME, \ + NULL, /* open */ \ + NULL, /* close */ \ + altera_avalon_jtag_uart_read_fd, \ + altera_avalon_jtag_uart_write_fd, \ + NULL, /* lseek */ \ + NULL, /* fstat */ \ + NULL, /* ioctl */ \ + }, \ + { \ + name##_BASE, \ + } \ + } + +#define ALTERA_AVALON_JTAG_UART_DEV_INIT(name, d) alt_dev_reg (&d.dev) + +#else /* !ALTERA_AVALON_JTAG_UART_SMALL */ + +extern int altera_avalon_jtag_uart_close_fd(alt_fd* fd); +extern int altera_avalon_jtag_uart_ioctl_fd (alt_fd* fd, int req, void* arg); + +#define ALTERA_AVALON_JTAG_UART_DEV_INSTANCE(name, d) \ + static altera_avalon_jtag_uart_dev d = \ + { \ + { \ + ALT_LLIST_ENTRY, \ + name##_NAME, \ + NULL, /* open */ \ + altera_avalon_jtag_uart_close_fd, \ + altera_avalon_jtag_uart_read_fd, \ + altera_avalon_jtag_uart_write_fd, \ + NULL, /* lseek */ \ + NULL, /* fstat */ \ + altera_avalon_jtag_uart_ioctl_fd, \ + }, \ + { \ + name##_BASE, \ + ALTERA_AVALON_JTAG_UART_DEFAULT_TIMEOUT, \ + } \ + } + +#define ALTERA_AVALON_JTAG_UART_DEV_INIT(name, d) \ + { \ + ALTERA_AVALON_JTAG_UART_STATE_INIT(name, d.state); \ + \ + /* make the device available to the system */ \ + alt_dev_reg(&d.dev); \ + } + +#endif /* ALTERA_AVALON_JTAG_UART_SMALL */ + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __ALT_AVALON_JTAG_UART_FD_H__ */ diff --git a/software/qsys_tutorial_hexs_bsp/drivers/inc/altera_avalon_jtag_uart_regs.h b/software/qsys_tutorial_hexs_bsp/drivers/inc/altera_avalon_jtag_uart_regs.h new file mode 100644 index 0000000..7f97160 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/drivers/inc/altera_avalon_jtag_uart_regs.h @@ -0,0 +1,73 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#ifndef __ALTERA_AVALON_JTAG_UART_REGS_H__ +#define __ALTERA_AVALON_JTAG_UART_REGS_H__ + +#include + +#define ALTERA_AVALON_JTAG_UART_DATA_REG 0 +#define IOADDR_ALTERA_AVALON_JTAG_UART_DATA(base) \ + __IO_CALC_ADDRESS_NATIVE(base, ALTERA_AVALON_JTAG_UART_DATA_REG) +#define IORD_ALTERA_AVALON_JTAG_UART_DATA(base) \ + IORD(base, ALTERA_AVALON_JTAG_UART_DATA_REG) +#define IOWR_ALTERA_AVALON_JTAG_UART_DATA(base, data) \ + IOWR(base, ALTERA_AVALON_JTAG_UART_DATA_REG, data) + +#define ALTERA_AVALON_JTAG_UART_DATA_DATA_MSK (0x000000FF) +#define ALTERA_AVALON_JTAG_UART_DATA_DATA_OFST (0) +#define ALTERA_AVALON_JTAG_UART_DATA_RVALID_MSK (0x00008000) +#define ALTERA_AVALON_JTAG_UART_DATA_RVALID_OFST (15) +#define ALTERA_AVALON_JTAG_UART_DATA_RAVAIL_MSK (0xFFFF0000) +#define ALTERA_AVALON_JTAG_UART_DATA_RAVAIL_OFST (16) + + +#define ALTERA_AVALON_JTAG_UART_CONTROL_REG 1 +#define IOADDR_ALTERA_AVALON_JTAG_UART_CONTROL(base) \ + __IO_CALC_ADDRESS_NATIVE(base, ALTERA_AVALON_JTAG_UART_CONTROL_REG) +#define IORD_ALTERA_AVALON_JTAG_UART_CONTROL(base) \ + IORD(base, ALTERA_AVALON_JTAG_UART_CONTROL_REG) +#define IOWR_ALTERA_AVALON_JTAG_UART_CONTROL(base, data) \ + IOWR(base, ALTERA_AVALON_JTAG_UART_CONTROL_REG, data) + +#define ALTERA_AVALON_JTAG_UART_CONTROL_RE_MSK (0x00000001) +#define ALTERA_AVALON_JTAG_UART_CONTROL_RE_OFST (0) +#define ALTERA_AVALON_JTAG_UART_CONTROL_WE_MSK (0x00000002) +#define ALTERA_AVALON_JTAG_UART_CONTROL_WE_OFST (1) +#define ALTERA_AVALON_JTAG_UART_CONTROL_RI_MSK (0x00000100) +#define ALTERA_AVALON_JTAG_UART_CONTROL_RI_OFST (8) +#define ALTERA_AVALON_JTAG_UART_CONTROL_WI_MSK (0x00000200) +#define ALTERA_AVALON_JTAG_UART_CONTROL_WI_OFST (9) +#define ALTERA_AVALON_JTAG_UART_CONTROL_AC_MSK (0x00000400) +#define ALTERA_AVALON_JTAG_UART_CONTROL_AC_OFST (10) +#define ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_MSK (0xFFFF0000) +#define ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_OFST (16) + +#endif /* __ALTERA_AVALON_JTAG_UART_REGS_H__ */ diff --git a/software/qsys_tutorial_hexs_bsp/drivers/inc/altera_avalon_pio_regs.h b/software/qsys_tutorial_hexs_bsp/drivers/inc/altera_avalon_pio_regs.h new file mode 100644 index 0000000..052439f --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/drivers/inc/altera_avalon_pio_regs.h @@ -0,0 +1,67 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#ifndef __ALTERA_AVALON_PIO_REGS_H__ +#define __ALTERA_AVALON_PIO_REGS_H__ + +#include + +#define IOADDR_ALTERA_AVALON_PIO_DATA(base) __IO_CALC_ADDRESS_NATIVE(base, 0) +#define IORD_ALTERA_AVALON_PIO_DATA(base) IORD(base, 0) +#define IOWR_ALTERA_AVALON_PIO_DATA(base, data) IOWR(base, 0, data) + +#define IOADDR_ALTERA_AVALON_PIO_DIRECTION(base) __IO_CALC_ADDRESS_NATIVE(base, 1) +#define IORD_ALTERA_AVALON_PIO_DIRECTION(base) IORD(base, 1) +#define IOWR_ALTERA_AVALON_PIO_DIRECTION(base, data) IOWR(base, 1, data) + +#define IOADDR_ALTERA_AVALON_PIO_IRQ_MASK(base) __IO_CALC_ADDRESS_NATIVE(base, 2) +#define IORD_ALTERA_AVALON_PIO_IRQ_MASK(base) IORD(base, 2) +#define IOWR_ALTERA_AVALON_PIO_IRQ_MASK(base, data) IOWR(base, 2, data) + +#define IOADDR_ALTERA_AVALON_PIO_EDGE_CAP(base) __IO_CALC_ADDRESS_NATIVE(base, 3) +#define IORD_ALTERA_AVALON_PIO_EDGE_CAP(base) IORD(base, 3) +#define IOWR_ALTERA_AVALON_PIO_EDGE_CAP(base, data) IOWR(base, 3, data) + + +#define IOADDR_ALTERA_AVALON_PIO_SET_BIT(base) __IO_CALC_ADDRESS_NATIVE(base, 4) +#define IORD_ALTERA_AVALON_PIO_SET_BITS(base) IORD(base, 4) +#define IOWR_ALTERA_AVALON_PIO_SET_BITS(base, data) IOWR(base, 4, data) + +#define IOADDR_ALTERA_AVALON_PIO_CLEAR_BITS(base) __IO_CALC_ADDRESS_NATIVE(base, 5) +#define IORD_ALTERA_AVALON_PIO_CLEAR_BITS(base) IORD(base, 5) +#define IOWR_ALTERA_AVALON_PIO_CLEAR_BITS(base, data) IOWR(base, 5, data) + + + +/* Defintions for direction-register operation with bi-directional PIOs */ +#define ALTERA_AVALON_PIO_DIRECTION_INPUT 0 +#define ALTERA_AVALON_PIO_DIRECTION_OUTPUT 1 + +#endif /* __ALTERA_AVALON_PIO_REGS_H__ */ diff --git a/software/qsys_tutorial_hexs_bsp/drivers/src/altera_avalon_jtag_uart_fd.c b/software/qsys_tutorial_hexs_bsp/drivers/src/altera_avalon_jtag_uart_fd.c new file mode 100644 index 0000000..53dfc3b --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/drivers/src/altera_avalon_jtag_uart_fd.c @@ -0,0 +1,86 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2007 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "alt_types.h" +#include "sys/alt_dev.h" +#include "altera_avalon_jtag_uart.h" + +extern int altera_avalon_jtag_uart_read(altera_avalon_jtag_uart_state* sp, + char* buffer, int space, int flags); +extern int altera_avalon_jtag_uart_write(altera_avalon_jtag_uart_state* sp, + const char* ptr, int count, int flags); +extern int altera_avalon_jtag_uart_ioctl(altera_avalon_jtag_uart_state* sp, + int req, void* arg); +extern int altera_avalon_jtag_uart_close(altera_avalon_jtag_uart_state* sp, + int flags); + +/* ----------------------------------------------------------------------- */ +/* --------------------- WRAPPERS FOR ALT FD SUPPORT --------------------- */ +/* + * + */ + +int +altera_avalon_jtag_uart_read_fd(alt_fd* fd, char* buffer, int space) +{ + altera_avalon_jtag_uart_dev* dev = (altera_avalon_jtag_uart_dev*) fd->dev; + + return altera_avalon_jtag_uart_read(&dev->state, buffer, space, + fd->fd_flags); +} + +int +altera_avalon_jtag_uart_write_fd(alt_fd* fd, const char* buffer, int space) +{ + altera_avalon_jtag_uart_dev* dev = (altera_avalon_jtag_uart_dev*) fd->dev; + + return altera_avalon_jtag_uart_write(&dev->state, buffer, space, + fd->fd_flags); +} + +#ifndef ALTERA_AVALON_JTAG_UART_SMALL + +int +altera_avalon_jtag_uart_close_fd(alt_fd* fd) +{ + altera_avalon_jtag_uart_dev* dev = (altera_avalon_jtag_uart_dev*) fd->dev; + + return altera_avalon_jtag_uart_close(&dev->state, fd->fd_flags); +} + +int +altera_avalon_jtag_uart_ioctl_fd(alt_fd* fd, int req, void* arg) +{ + altera_avalon_jtag_uart_dev* dev = (altera_avalon_jtag_uart_dev*) fd->dev; + + return altera_avalon_jtag_uart_ioctl(&dev->state, req, arg); +} + +#endif /* ALTERA_AVALON_JTAG_UART_SMALL */ diff --git a/software/qsys_tutorial_hexs_bsp/drivers/src/altera_avalon_jtag_uart_init.c b/software/qsys_tutorial_hexs_bsp/drivers/src/altera_avalon_jtag_uart_init.c new file mode 100644 index 0000000..7317bec --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/drivers/src/altera_avalon_jtag_uart_init.c @@ -0,0 +1,256 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2007 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include +#include +#include +#include + +#include + +#include "sys/alt_irq.h" +#include "sys/alt_alarm.h" +#include "sys/ioctl.h" +#include "alt_types.h" + +#include "altera_avalon_jtag_uart_regs.h" +#include "altera_avalon_jtag_uart.h" + +#include "sys/alt_log_printf.h" + +#ifndef ALTERA_AVALON_JTAG_UART_SMALL + +/* ----------------------------------------------------------- */ +/* ------------------------- FAST DRIVER --------------------- */ +/* ----------------------------------------------------------- */ +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT +static void altera_avalon_jtag_uart_irq(void* context); +#else +static void altera_avalon_jtag_uart_irq(void* context, alt_u32 id); +#endif +static alt_u32 altera_avalon_jtag_uart_timeout(void* context); + +/* + * Driver initialization code. Register interrupts and start a timer + * which we can use to check whether the host is there. + * Return 1 on sucessful IRQ register and 0 on failure. + */ + +void altera_avalon_jtag_uart_init(altera_avalon_jtag_uart_state* sp, + int irq_controller_id, int irq) +{ + ALT_FLAG_CREATE(&sp->events, 0); + ALT_SEM_CREATE(&sp->read_lock, 1); + ALT_SEM_CREATE(&sp->write_lock, 1); + + /* enable read interrupts at the device */ + sp->irq_enable = ALTERA_AVALON_JTAG_UART_CONTROL_RE_MSK; + + IOWR_ALTERA_AVALON_JTAG_UART_CONTROL(sp->base, sp->irq_enable); + + /* register the interrupt handler */ +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT + alt_ic_isr_register(irq_controller_id, irq, altera_avalon_jtag_uart_irq, + sp, NULL); +#else + alt_irq_register(irq, sp, altera_avalon_jtag_uart_irq); +#endif + + /* Register an alarm to go off every second to check for presence of host */ + sp->host_inactive = 0; + + if (alt_alarm_start(&sp->alarm, alt_ticks_per_second(), + &altera_avalon_jtag_uart_timeout, sp) < 0) + { + /* If we can't set the alarm then record "don't know if host present" + * and behave as though the host is present. + */ + sp->timeout = INT_MAX; + } + + /* ALT_LOG - see altera_hal/HAL/inc/sys/alt_log_printf.h */ + ALT_LOG_JTAG_UART_ALARM_REGISTER(sp, sp->base); +} + +/* + * Interrupt routine + */ +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT +static void altera_avalon_jtag_uart_irq(void* context) +#else +static void altera_avalon_jtag_uart_irq(void* context, alt_u32 id) +#endif +{ + altera_avalon_jtag_uart_state* sp = (altera_avalon_jtag_uart_state*) context; + unsigned int base = sp->base; + + /* ALT_LOG - see altera_hal/HAL/inc/sys/alt_log_printf.h */ + ALT_LOG_JTAG_UART_ISR_FUNCTION(base, sp); + + for ( ; ; ) + { + unsigned int control = IORD_ALTERA_AVALON_JTAG_UART_CONTROL(base); + + /* Return once nothing more to do */ + if ((control & (ALTERA_AVALON_JTAG_UART_CONTROL_RI_MSK | ALTERA_AVALON_JTAG_UART_CONTROL_WI_MSK)) == 0) + break; + + if (control & ALTERA_AVALON_JTAG_UART_CONTROL_RI_MSK) + { + /* process a read irq. Start by assuming that there is data in the + * receive FIFO (otherwise why would we have been interrupted?) + */ + unsigned int data = 1 << ALTERA_AVALON_JTAG_UART_DATA_RAVAIL_OFST; + + for ( ; ; ) + { + /* Check whether there is space in the buffer. If not then we must not + * read any characters from the buffer as they will be lost. + */ + unsigned int next = (sp->rx_in + 1) % ALTERA_AVALON_JTAG_UART_BUF_LEN; + if (next == sp->rx_out) + break; + + /* Try to remove a character from the FIFO and find out whether there + * are any more characters remaining. + */ + data = IORD_ALTERA_AVALON_JTAG_UART_DATA(base); + + if ((data & ALTERA_AVALON_JTAG_UART_DATA_RVALID_MSK) == 0) + break; + + sp->rx_buf[sp->rx_in] = (data & ALTERA_AVALON_JTAG_UART_DATA_DATA_MSK) >> ALTERA_AVALON_JTAG_UART_DATA_DATA_OFST; + sp->rx_in = (sp->rx_in + 1) % ALTERA_AVALON_JTAG_UART_BUF_LEN; + + /* Post an event to notify jtag_uart_read that a character has been read */ + ALT_FLAG_POST (sp->events, ALT_JTAG_UART_READ_RDY, OS_FLAG_SET); + } + + if (data & ALTERA_AVALON_JTAG_UART_DATA_RAVAIL_MSK) + { + /* If there is still data available here then the buffer is full + * so turn off receive interrupts until some space becomes available. + */ + sp->irq_enable &= ~ALTERA_AVALON_JTAG_UART_CONTROL_RE_MSK; + IOWR_ALTERA_AVALON_JTAG_UART_CONTROL(base, sp->irq_enable); + + /* Dummy read to ensure IRQ is cleared prior to ISR completion */ + IORD_ALTERA_AVALON_JTAG_UART_CONTROL(base); + } + } + + if (control & ALTERA_AVALON_JTAG_UART_CONTROL_WI_MSK) + { + /* process a write irq */ + unsigned int space = (control & ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_MSK) >> ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_OFST; + + while (space > 0 && sp->tx_out != sp->tx_in) + { + IOWR_ALTERA_AVALON_JTAG_UART_DATA(base, sp->tx_buf[sp->tx_out]); + + sp->tx_out = (sp->tx_out + 1) % ALTERA_AVALON_JTAG_UART_BUF_LEN; + + /* Post an event to notify jtag_uart_write that a character has been written */ + ALT_FLAG_POST (sp->events, ALT_JTAG_UART_WRITE_RDY, OS_FLAG_SET); + + space--; + } + + if (space > 0) + { + /* If we don't have any more data available then turn off the TX interrupt */ + sp->irq_enable &= ~ALTERA_AVALON_JTAG_UART_CONTROL_WE_MSK; + IOWR_ALTERA_AVALON_JTAG_UART_CONTROL(sp->base, sp->irq_enable); + + /* Dummy read to ensure IRQ is cleared prior to ISR completion */ + IORD_ALTERA_AVALON_JTAG_UART_CONTROL(base); + } + } + } +} + +/* + * Timeout routine is called every second + */ + +static alt_u32 +altera_avalon_jtag_uart_timeout(void* context) +{ + altera_avalon_jtag_uart_state* sp = (altera_avalon_jtag_uart_state *) context; + + unsigned int control = IORD_ALTERA_AVALON_JTAG_UART_CONTROL(sp->base); + + if (control & ALTERA_AVALON_JTAG_UART_CONTROL_AC_MSK) + { + IOWR_ALTERA_AVALON_JTAG_UART_CONTROL(sp->base, sp->irq_enable | ALTERA_AVALON_JTAG_UART_CONTROL_AC_MSK); + sp->host_inactive = 0; + } + else if (sp->host_inactive < INT_MAX - 2) { + sp->host_inactive++; + + if (sp->host_inactive >= sp->timeout) { + /* Post an event to indicate host is inactive (for jtag_uart_read */ + ALT_FLAG_POST (sp->events, ALT_JTAG_UART_TIMEOUT, OS_FLAG_SET); + } + } + + return alt_ticks_per_second(); +} + +/* + * The close() routine is implemented to drain the JTAG UART transmit buffer + * when not in "small" mode. This routine will wait for transimt data to be + * emptied unless a timeout from host-activity occurs. If the driver flags + * have been set to non-blocking mode, this routine will exit immediately if + * any data remains. This routine should be called indirectly (i.e. though + * the C library close() routine) so that the file descriptor associated + * with the relevant stream (i.e. stdout) can be closed as well. This routine + * does not manage file descriptors. + * + * The close routine is not implemented for the small driver; instead it will + * map to null. This is because the small driver simply waits while characters + * are transmitted; there is no interrupt-serviced buffer to empty + */ +int altera_avalon_jtag_uart_close(altera_avalon_jtag_uart_state* sp, int flags) +{ + /* + * Wait for all transmit data to be emptied by the JTAG UART ISR, or + * for a host-inactivity timeout, in which case transmit data will be lost + */ + while ( (sp->tx_out != sp->tx_in) && (sp->host_inactive < sp->timeout) ) { + if (flags & O_NONBLOCK) { + return -EWOULDBLOCK; + } + } + + return 0; +} + +#endif /* !ALTERA_AVALON_JTAG_UART_SMALL */ diff --git a/software/qsys_tutorial_hexs_bsp/drivers/src/altera_avalon_jtag_uart_ioctl.c b/software/qsys_tutorial_hexs_bsp/drivers/src/altera_avalon_jtag_uart_ioctl.c new file mode 100644 index 0000000..cf71e6f --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/drivers/src/altera_avalon_jtag_uart_ioctl.c @@ -0,0 +1,86 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include +#include +#include +#include + +#include + +#include "sys/ioctl.h" +#include "alt_types.h" + +#include "altera_avalon_jtag_uart_regs.h" +#include "altera_avalon_jtag_uart.h" + +#include "sys/alt_log_printf.h" + +#ifndef ALTERA_AVALON_JTAG_UART_SMALL + +/* ----------------------------------------------------------- */ +/* ------------------------- FAST DRIVER --------------------- */ +/* ----------------------------------------------------------- */ + +int +altera_avalon_jtag_uart_ioctl(altera_avalon_jtag_uart_state* sp, int req, + void* arg) +{ + int rc = -ENOTTY; + + switch (req) + { + case TIOCSTIMEOUT: + /* Set the time to wait until assuming host is not connected */ + if (sp->timeout != INT_MAX) + { + int timeout = *((int *)arg); + sp->timeout = (timeout >= 2 && timeout < INT_MAX) ? timeout : INT_MAX - 1; + rc = 0; + } + break; + + case TIOCGCONNECTED: + /* Find out whether host is connected */ + if (sp->timeout != INT_MAX) + { + *((int *)arg) = (sp->host_inactive < sp->timeout) ? 1 : 0; + rc = 0; + } + break; + + default: + break; + } + + return rc; +} + +#endif /* !ALTERA_AVALON_JTAG_UART_SMALL */ diff --git a/software/qsys_tutorial_hexs_bsp/drivers/src/altera_avalon_jtag_uart_read.c b/software/qsys_tutorial_hexs_bsp/drivers/src/altera_avalon_jtag_uart_read.c new file mode 100644 index 0000000..5657adb --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/drivers/src/altera_avalon_jtag_uart_read.c @@ -0,0 +1,205 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include +#include +#include +#include + +#include + +#include "sys/alt_irq.h" +#include "sys/alt_alarm.h" +#include "sys/ioctl.h" +#include "alt_types.h" + +#include "altera_avalon_jtag_uart_regs.h" +#include "altera_avalon_jtag_uart.h" + +#include "sys/alt_log_printf.h" + +#ifdef __ucosii__ +#include "includes.h" +#endif /* __ucosii__ */ + +#ifdef ALTERA_AVALON_JTAG_UART_SMALL + +/* ----------------------------------------------------------- */ +/* ----------------------- SMALL DRIVER ---------------------- */ +/* ----------------------------------------------------------- */ + +/* Read routine. The small version blocks until it has at least one byte + * available, it then returns as much as is immediately available without + * waiting any more. It's performance will be very poor without + * interrupts. + */ + +int +altera_avalon_jtag_uart_read(altera_avalon_jtag_uart_state* sp, + char* buffer, int space, int flags) +{ + unsigned int base = sp->base; + + char * ptr = buffer; + char * end = buffer + space; + + while (ptr < end) + { + unsigned int data = IORD_ALTERA_AVALON_JTAG_UART_DATA(base); + + if (data & ALTERA_AVALON_JTAG_UART_DATA_RVALID_MSK) + *ptr++ = (data & ALTERA_AVALON_JTAG_UART_DATA_DATA_MSK) >> ALTERA_AVALON_JTAG_UART_DATA_DATA_OFST; + else if (ptr != buffer) + break; + else if(flags & O_NONBLOCK) + break; + + } + + if (ptr != buffer) + return ptr - buffer; + else if (flags & O_NONBLOCK) + return -EWOULDBLOCK; + else + return -EIO; +} + +#else /* !ALTERA_AVALON_JTAG_UART_SMALL */ + +/* ----------------------------------------------------------- */ +/* ----------------------- FAST DRIVER ----------------------- */ +/* ----------------------------------------------------------- */ + +int +altera_avalon_jtag_uart_read(altera_avalon_jtag_uart_state* sp, + char * buffer, int space, int flags) +{ + char * ptr = buffer; + + alt_irq_context context; + unsigned int n; + + /* + * When running in a multi threaded environment, obtain the "read_lock" + * semaphore. This ensures that reading from the device is thread-safe. + */ + ALT_SEM_PEND (sp->read_lock, 0); + + while (space > 0) + { + unsigned int in, out; + + /* Read as much data as possible */ + do + { + in = sp->rx_in; + out = sp->rx_out; + + if (in >= out) + n = in - out; + else + n = ALTERA_AVALON_JTAG_UART_BUF_LEN - out; + + if (n == 0) + break; /* No more data available */ + + if (n > space) + n = space; + + memcpy(ptr, sp->rx_buf + out, n); + ptr += n; + space -= n; + + sp->rx_out = (out + n) % ALTERA_AVALON_JTAG_UART_BUF_LEN; + } + while (space > 0); + + /* If we read any data then return it */ + if (ptr != buffer) + break; + + /* If in non-blocking mode then return error */ + if (flags & O_NONBLOCK) + break; + +#ifdef __ucosii__ + /* OS Present: Pend on a flag if the OS is running, otherwise spin */ + if(OSRunning == OS_TRUE) { + /* + * When running in a multi-threaded mode, we pend on the read event + * flag set and timeout event flag set in the isr. This avoids wasting CPU + * cycles waiting in this thread, when we could be doing something more + * profitable elsewhere. + */ + ALT_FLAG_PEND (sp->events, + ALT_JTAG_UART_READ_RDY | ALT_JTAG_UART_TIMEOUT, + OS_FLAG_WAIT_SET_ANY + OS_FLAG_CONSUME, + 0); + } + else { + /* Spin until more data arrives or until host disconnects */ + while (in == sp->rx_in && sp->host_inactive < sp->timeout) + ; + } +#else + /* No OS: Always spin */ + while (in == sp->rx_in && sp->host_inactive < sp->timeout) + ; +#endif /* __ucosii__ */ + + if (in == sp->rx_in) + break; + } + + /* + * Now that access to the circular buffer is complete, release the read + * semaphore so that other threads can access the buffer. + */ + + ALT_SEM_POST (sp->read_lock); + + if (ptr != buffer) + { + /* If we read any data then there is space in the buffer so enable interrupts */ + context = alt_irq_disable_all(); + sp->irq_enable |= ALTERA_AVALON_JTAG_UART_CONTROL_RE_MSK; + IOWR_ALTERA_AVALON_JTAG_UART_CONTROL(sp->base, sp->irq_enable); + alt_irq_enable_all(context); + } + + if (ptr != buffer) + return ptr - buffer; + else if (flags & O_NONBLOCK) + return -EWOULDBLOCK; + else + return -EIO; +} + +#endif /* ALTERA_AVALON_JTAG_UART_SMALL */ diff --git a/software/qsys_tutorial_hexs_bsp/drivers/src/altera_avalon_jtag_uart_write.c b/software/qsys_tutorial_hexs_bsp/drivers/src/altera_avalon_jtag_uart_write.c new file mode 100644 index 0000000..11aeca1 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/drivers/src/altera_avalon_jtag_uart_write.c @@ -0,0 +1,217 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include +#include +#include +#include + +#include + +#include "sys/alt_irq.h" +#include "sys/alt_alarm.h" +#include "sys/ioctl.h" +#include "alt_types.h" + +#include "altera_avalon_jtag_uart_regs.h" +#include "altera_avalon_jtag_uart.h" + +#include "sys/alt_log_printf.h" + +#ifdef __ucosii__ +#include "includes.h" +#endif /* __ucosii__ */ + +#ifdef ALTERA_AVALON_JTAG_UART_SMALL + +/* ----------------------------------------------------------- */ +/* ------------------------ SMALL DRIVER --------------------- */ +/* ----------------------------------------------------------- */ + +/* Write routine. The small version blocks when there is no space to write + * into, so it's performance will be very bad if you are writing more than + * one FIFOs worth of data. But you said you didn't want to use interrupts :-) + */ + +int altera_avalon_jtag_uart_write(altera_avalon_jtag_uart_state* sp, + const char * ptr, int count, int flags) +{ + unsigned int base = sp->base; + + const char * end = ptr + count; + + while (ptr < end) + if ((IORD_ALTERA_AVALON_JTAG_UART_CONTROL(base) & ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_MSK) != 0) + IOWR_ALTERA_AVALON_JTAG_UART_DATA(base, *ptr++); + + return count; +} + +#else /* !ALTERA_AVALON_JTAG_UART_SMALL */ + +/* ----------------------------------------------------------- */ +/* ------------------------- FAST DRIVER --------------------- */ +/* ----------------------------------------------------------- */ + +int +altera_avalon_jtag_uart_write(altera_avalon_jtag_uart_state* sp, + const char * ptr, int count, int flags) +{ + /* Remove warning at optimisation level 03 by seting out to 0 */ + unsigned int in, out=0; + unsigned int n; + alt_irq_context context; + + const char * start = ptr; + + /* + * When running in a multi threaded environment, obtain the "write_lock" + * semaphore. This ensures that writing to the device is thread-safe. + */ + ALT_SEM_PEND (sp->write_lock, 0); + + do + { + /* Copy as much as we can into the transmit buffer */ + while (count > 0) + { + /* We need a stable value of the out pointer to calculate the space available */ + in = sp->tx_in; + out = sp->tx_out; + + if (in < out) + n = out - 1 - in; + else if (out > 0) + n = ALTERA_AVALON_JTAG_UART_BUF_LEN - in; + else + n = ALTERA_AVALON_JTAG_UART_BUF_LEN - 1 - in; + + if (n == 0) + break; + + if (n > count) + n = count; + + memcpy(sp->tx_buf + in, ptr, n); + ptr += n; + count -= n; + + sp->tx_in = (in + n) % ALTERA_AVALON_JTAG_UART_BUF_LEN; + } + + /* + * If interrupts are disabled then we could transmit here, we only need + * to enable interrupts if there is no space left in the FIFO + * + * For now kick the interrupt routine every time to make it transmit + * the data + */ + context = alt_irq_disable_all(); + sp->irq_enable |= ALTERA_AVALON_JTAG_UART_CONTROL_WE_MSK; + IOWR_ALTERA_AVALON_JTAG_UART_CONTROL(sp->base, sp->irq_enable); + alt_irq_enable_all(context); + + /* + * If there is any data left then either return now or block until + * some has been sent + */ + /* consider: test whether there is anything there while doing this and delay for at most 2s. */ + if (count > 0) + { + if (flags & O_NONBLOCK) + break; + +#ifdef __ucosii__ + /* OS Present: Pend on a flag if the OS is running, otherwise spin */ + if(OSRunning == OS_TRUE) { + /* + * When running in a multi-threaded mode, we pend on the write event + * flag set or the timeout flag in the isr. This avoids wasting CPU + * cycles waiting in this thread, when we could be doing something + * more profitable elsewhere. + */ +#ifdef ALTERA_AVALON_JTAG_UART_IGNORE_FIFO_FULL_ERROR + if(!sp->host_inactive) +#endif + ALT_FLAG_PEND (sp->events, + ALT_JTAG_UART_WRITE_RDY | ALT_JTAG_UART_TIMEOUT, + OS_FLAG_WAIT_SET_ANY + OS_FLAG_CONSUME, + 0); + } + else { + /* + * OS not running: Wait for data to be removed from buffer. + * Once the interrupt routine has removed some data then we + * will be able to insert some more. + */ + while (out == sp->tx_out && sp->host_inactive < sp->timeout) + ; + } +#else + /* + * No OS present: Always wait for data to be removed from buffer. Once + * the interrupt routine has removed some data then we will be able to + * insert some more. + */ + while (out == sp->tx_out && sp->host_inactive < sp->timeout) + ; +#endif /* __ucosii__ */ + + if (out == sp->tx_out) + break; + } + } + while (count > 0); + + /* + * Now that access to the circular buffer is complete, release the write + * semaphore so that other threads can access the buffer. + */ + ALT_SEM_POST (sp->write_lock); + + if (ptr != start) + return ptr - start; + else if (flags & O_NONBLOCK) + return -EWOULDBLOCK; +#ifdef ALTERA_AVALON_JTAG_UART_IGNORE_FIFO_FULL_ERROR + else if (sp->host_inactive >= sp->timeout) { + /* + * Reset the software FIFO, hardware FIFO could not be reset. + * Just throw away characters without reporting error. + */ + sp->tx_out = sp->tx_in = 0; + return ptr - start + count; + } +#endif + else + return -EIO; /* Host not connected */ +} + +#endif /* ALTERA_AVALON_JTAG_UART_SMALL */ diff --git a/software/qsys_tutorial_hexs_bsp/libhal_bsp.a b/software/qsys_tutorial_hexs_bsp/libhal_bsp.a new file mode 100644 index 0000000..09678a3 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/libhal_bsp.a Binary files differ diff --git a/software/qsys_tutorial_hexs_bsp/linker.h b/software/qsys_tutorial_hexs_bsp/linker.h new file mode 100644 index 0000000..90651f8 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/linker.h @@ -0,0 +1,101 @@ +/* + * linker.h - Linker script mapping information + * + * Machine generated for CPU 'nios2_processor' in SOPC Builder design 'nios_system' + * SOPC Builder design path: C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.sopcinfo + * + * Generated: Thu Nov 17 09:38:43 JST 2016 + */ + +/* + * DO NOT MODIFY THIS FILE + * + * Changing this file will have subtle consequences + * which will almost certainly lead to a nonfunctioning + * system. If you do modify this file, be aware that your + * changes will be overwritten and lost when this file + * is generated again. + * + * DO NOT MODIFY THIS FILE + */ + +/* + * License Agreement + * + * Copyright (c) 2008 + * Altera Corporation, San Jose, California, USA. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + * This agreement shall be governed in all respects by the laws of the State + * of California and by the laws of the United States of America. + */ + +#ifndef __LINKER_H_ +#define __LINKER_H_ + + +/* + * BSP controls alt_load() behavior in crt0. + * + */ + +#define ALT_LOAD_EXPLICITLY_CONTROLLED + + +/* + * Base address and span (size in bytes) of each linker region + * + */ + +#define ONCHIP_MEMORY_REGION_BASE 0x20 +#define ONCHIP_MEMORY_REGION_SPAN 4064 +#define RESET_REGION_BASE 0x0 +#define RESET_REGION_SPAN 32 + + +/* + * Devices associated with code sections + * + */ + +#define ALT_EXCEPTIONS_DEVICE ONCHIP_MEMORY +#define ALT_RESET_DEVICE ONCHIP_MEMORY +#define ALT_RODATA_DEVICE ONCHIP_MEMORY +#define ALT_RWDATA_DEVICE ONCHIP_MEMORY +#define ALT_TEXT_DEVICE ONCHIP_MEMORY + + +/* + * Initialization code at the reset address is allowed (e.g. no external bootloader). + * + */ + +#define ALT_ALLOW_CODE_AT_RESET + + +/* + * The alt_load() facility is called from crt0 to copy sections into RAM. + * + */ + +#define ALT_LOAD_COPY_RWDATA + +#endif /* __LINKER_H_ */ diff --git a/software/qsys_tutorial_hexs_bsp/linker.x b/software/qsys_tutorial_hexs_bsp/linker.x new file mode 100644 index 0000000..67437f7 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/linker.x @@ -0,0 +1,385 @@ +/* + * linker.x - Linker script + * + * Machine generated for CPU 'nios2_processor' in SOPC Builder design 'nios_system' + * SOPC Builder design path: C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.sopcinfo + * + * Generated: Thu Nov 17 09:38:43 JST 2016 + */ + +/* + * DO NOT MODIFY THIS FILE + * + * Changing this file will have subtle consequences + * which will almost certainly lead to a nonfunctioning + * system. If you do modify this file, be aware that your + * changes will be overwritten and lost when this file + * is generated again. + * + * DO NOT MODIFY THIS FILE + */ + +/* + * License Agreement + * + * Copyright (c) 2008 + * Altera Corporation, San Jose, California, USA. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + * This agreement shall be governed in all respects by the laws of the State + * of California and by the laws of the United States of America. + */ + +MEMORY +{ + reset : ORIGIN = 0x0, LENGTH = 32 + onchip_memory : ORIGIN = 0x20, LENGTH = 4064 +} + +/* Define symbols for each memory base-address */ +__alt_mem_onchip_memory = 0x0; + +OUTPUT_FORMAT( "elf32-littlenios2", + "elf32-littlenios2", + "elf32-littlenios2" ) +OUTPUT_ARCH( nios2 ) +ENTRY( _start ) + +/* + * The alt_load() facility is enabled. This typically happens when there isn't + * an external bootloader (e.g. flash bootloader). + * The LMA (aka physical address) of each loaded section is + * set to the .text memory device. + * The HAL alt_load() routine called from crt0 copies sections from + * the .text memory to RAM as needed. + */ + +SECTIONS +{ + + /* + * Output sections associated with reset and exceptions (they have to be first) + */ + + .entry : + { + KEEP (*(.entry)) + } > reset + + .exceptions : + { + PROVIDE (__ram_exceptions_start = ABSOLUTE(.)); + . = ALIGN(0x20); + KEEP (*(.irq)); + KEEP (*(.exceptions.entry.label)); + KEEP (*(.exceptions.entry.user)); + KEEP (*(.exceptions.entry)); + KEEP (*(.exceptions.irqtest.user)); + KEEP (*(.exceptions.irqtest)); + KEEP (*(.exceptions.irqhandler.user)); + KEEP (*(.exceptions.irqhandler)); + KEEP (*(.exceptions.irqreturn.user)); + KEEP (*(.exceptions.irqreturn)); + KEEP (*(.exceptions.notirq.label)); + KEEP (*(.exceptions.notirq.user)); + KEEP (*(.exceptions.notirq)); + KEEP (*(.exceptions.soft.user)); + KEEP (*(.exceptions.soft)); + KEEP (*(.exceptions.unknown.user)); + KEEP (*(.exceptions.unknown)); + KEEP (*(.exceptions.exit.label)); + KEEP (*(.exceptions.exit.user)); + KEEP (*(.exceptions.exit)); + KEEP (*(.exceptions)); + PROVIDE (__ram_exceptions_end = ABSOLUTE(.)); + } > onchip_memory + + PROVIDE (__flash_exceptions_start = LOADADDR(.exceptions)); + + .text : + { + /* + * All code sections are merged into the text output section, along with + * the read only data sections. + * + */ + + PROVIDE (stext = ABSOLUTE(.)); + + *(.interp) + *(.hash) + *(.dynsym) + *(.dynstr) + *(.gnu.version) + *(.gnu.version_d) + *(.gnu.version_r) + *(.rel.init) + *(.rela.init) + *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) + *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) + *(.rel.fini) + *(.rela.fini) + *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) + *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) + *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) + *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) + *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) + *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) + *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) + *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) + *(.rel.ctors) + *(.rela.ctors) + *(.rel.dtors) + *(.rela.dtors) + *(.rel.got) + *(.rela.got) + *(.rel.sdata .rel.sdata.* .rel.gnu.linkonce.s.*) + *(.rela.sdata .rela.sdata.* .rela.gnu.linkonce.s.*) + *(.rel.sbss .rel.sbss.* .rel.gnu.linkonce.sb.*) + *(.rela.sbss .rela.sbss.* .rela.gnu.linkonce.sb.*) + *(.rel.sdata2 .rel.sdata2.* .rel.gnu.linkonce.s2.*) + *(.rela.sdata2 .rela.sdata2.* .rela.gnu.linkonce.s2.*) + *(.rel.sbss2 .rel.sbss2.* .rel.gnu.linkonce.sb2.*) + *(.rela.sbss2 .rela.sbss2.* .rela.gnu.linkonce.sb2.*) + *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) + *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) + *(.rel.plt) + *(.rela.plt) + *(.rel.dyn) + + KEEP (*(.init)) + *(.plt) + *(.text .stub .text.* .gnu.linkonce.t.*) + + /* .gnu.warning sections are handled specially by elf32.em. */ + + *(.gnu.warning.*) + KEEP (*(.fini)) + PROVIDE (__etext = ABSOLUTE(.)); + PROVIDE (_etext = ABSOLUTE(.)); + PROVIDE (etext = ABSOLUTE(.)); + + *(.eh_frame_hdr) + /* Ensure the __preinit_array_start label is properly aligned. We + could instead move the label definition inside the section, but + the linker would then create the section even if it turns out to + be empty, which isn't pretty. */ + . = ALIGN(4); + PROVIDE (__preinit_array_start = ABSOLUTE(.)); + *(.preinit_array) + PROVIDE (__preinit_array_end = ABSOLUTE(.)); + PROVIDE (__init_array_start = ABSOLUTE(.)); + *(.init_array) + PROVIDE (__init_array_end = ABSOLUTE(.)); + PROVIDE (__fini_array_start = ABSOLUTE(.)); + *(.fini_array) + PROVIDE (__fini_array_end = ABSOLUTE(.)); + SORT(CONSTRUCTORS) + KEEP (*(.eh_frame)) + *(.gcc_except_table) + *(.dynamic) + PROVIDE (__CTOR_LIST__ = ABSOLUTE(.)); + KEEP (*(.ctors)) + KEEP (*(SORT(.ctors.*))) + PROVIDE (__CTOR_END__ = ABSOLUTE(.)); + PROVIDE (__DTOR_LIST__ = ABSOLUTE(.)); + KEEP (*(.dtors)) + KEEP (*(SORT(.dtors.*))) + PROVIDE (__DTOR_END__ = ABSOLUTE(.)); + KEEP (*(.jcr)) + . = ALIGN(4); + } > onchip_memory = 0x3a880100 /* Nios II NOP instruction */ + + .rodata : + { + PROVIDE (__ram_rodata_start = ABSOLUTE(.)); + . = ALIGN(4); + *(.rodata .rodata.* .gnu.linkonce.r.*) + *(.rodata1) + . = ALIGN(4); + PROVIDE (__ram_rodata_end = ABSOLUTE(.)); + } > onchip_memory + + PROVIDE (__flash_rodata_start = LOADADDR(.rodata)); + + /* + * + * This section's LMA is set to the .text region. + * crt0 will copy to this section's specified mapped region virtual memory address (VMA) + * + * .rwdata region equals the .text region, and is set to be loaded into .text region. + * This requires two copies of .rwdata in the .text region. One read writable at VMA. + * and one read-only at LMA. crt0 will copy from LMA to VMA on reset + * + */ + + .rwdata LOADADDR (.rodata) + SIZEOF (.rodata) : AT ( LOADADDR (.rodata) + SIZEOF (.rodata)+ SIZEOF (.rwdata) ) + { + PROVIDE (__ram_rwdata_start = ABSOLUTE(.)); + . = ALIGN(4); + *(.got.plt) *(.got) + *(.data1) + *(.data .data.* .gnu.linkonce.d.*) + + _gp = ABSOLUTE(. + 0x8000); + PROVIDE(gp = _gp); + + *(.rwdata .rwdata.*) + *(.sdata .sdata.* .gnu.linkonce.s.*) + *(.sdata2 .sdata2.* .gnu.linkonce.s2.*) + + . = ALIGN(4); + _edata = ABSOLUTE(.); + PROVIDE (edata = ABSOLUTE(.)); + PROVIDE (__ram_rwdata_end = ABSOLUTE(.)); + } > onchip_memory + + PROVIDE (__flash_rwdata_start = LOADADDR(.rwdata)); + + /* + * + * This section's LMA is set to the .text region. + * crt0 will copy to this section's specified mapped region virtual memory address (VMA) + * + */ + + .bss LOADADDR (.rwdata) + SIZEOF (.rwdata) : AT ( LOADADDR (.rwdata) + SIZEOF (.rwdata) ) + { + __bss_start = ABSOLUTE(.); + PROVIDE (__sbss_start = ABSOLUTE(.)); + PROVIDE (___sbss_start = ABSOLUTE(.)); + + *(.dynsbss) + *(.sbss .sbss.* .gnu.linkonce.sb.*) + *(.sbss2 .sbss2.* .gnu.linkonce.sb2.*) + *(.scommon) + + PROVIDE (__sbss_end = ABSOLUTE(.)); + PROVIDE (___sbss_end = ABSOLUTE(.)); + + *(.dynbss) + *(.bss .bss.* .gnu.linkonce.b.*) + *(COMMON) + + . = ALIGN(4); + __bss_end = ABSOLUTE(.); + } > onchip_memory + + /* + * + * One output section mapped to the associated memory device for each of + * the available memory devices. These are not used by default, but can + * be used by user applications by using the .section directive. + * + * The output section used for the heap is treated in a special way, + * i.e. the symbols "end" and "_end" are added to point to the heap start. + * + * Because alt_load() is enabled, these sections have + * their LMA set to be loaded into the .text memory region. + * However, the alt_load() code will NOT automatically copy + * these sections into their mapped memory region. + * + */ + + /* + * + * This section's LMA is set to the .text region. + * crt0 will copy to this section's specified mapped region virtual memory address (VMA) + * + */ + + .onchip_memory LOADADDR (.bss) + SIZEOF (.bss) : AT ( LOADADDR (.bss) + SIZEOF (.bss) ) + { + PROVIDE (_alt_partition_onchip_memory_start = ABSOLUTE(.)); + *(.onchip_memory. onchip_memory.*) + . = ALIGN(4); + PROVIDE (_alt_partition_onchip_memory_end = ABSOLUTE(.)); + _end = ABSOLUTE(.); + end = ABSOLUTE(.); + __alt_stack_base = ABSOLUTE(.); + } > onchip_memory + + PROVIDE (_alt_partition_onchip_memory_load_addr = LOADADDR(.onchip_memory)); + + /* + * Stabs debugging sections. + * + */ + + .stab 0 : { *(.stab) } + .stabstr 0 : { *(.stabstr) } + .stab.excl 0 : { *(.stab.excl) } + .stab.exclstr 0 : { *(.stab.exclstr) } + .stab.index 0 : { *(.stab.index) } + .stab.indexstr 0 : { *(.stab.indexstr) } + .comment 0 : { *(.comment) } + /* DWARF debug sections. + Symbols in the DWARF debugging sections are relative to the beginning + of the section so we begin them at 0. */ + /* DWARF 1 */ + .debug 0 : { *(.debug) } + .line 0 : { *(.line) } + /* GNU DWARF 1 extensions */ + .debug_srcinfo 0 : { *(.debug_srcinfo) } + .debug_sfnames 0 : { *(.debug_sfnames) } + /* DWARF 1.1 and DWARF 2 */ + .debug_aranges 0 : { *(.debug_aranges) } + .debug_pubnames 0 : { *(.debug_pubnames) } + /* DWARF 2 */ + .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } + .debug_abbrev 0 : { *(.debug_abbrev) } + .debug_line 0 : { *(.debug_line) } + .debug_frame 0 : { *(.debug_frame) } + .debug_str 0 : { *(.debug_str) } + .debug_loc 0 : { *(.debug_loc) } + .debug_macinfo 0 : { *(.debug_macinfo) } + /* SGI/MIPS DWARF 2 extensions */ + .debug_weaknames 0 : { *(.debug_weaknames) } + .debug_funcnames 0 : { *(.debug_funcnames) } + .debug_typenames 0 : { *(.debug_typenames) } + .debug_varnames 0 : { *(.debug_varnames) } + + /* Altera debug extensions */ + .debug_alt_sim_info 0 : { *(.debug_alt_sim_info) } +} + +/* provide a pointer for the stack */ + +/* + * Don't override this, override the __alt_stack_* symbols instead. + */ +__alt_data_end = 0x1000; + +/* + * The next two symbols define the location of the default stack. You can + * override them to move the stack to a different memory. + */ +PROVIDE( __alt_stack_pointer = __alt_data_end ); +PROVIDE( __alt_stack_limit = __alt_stack_base ); + +/* + * This symbol controls where the start of the heap is. If the stack is + * contiguous with the heap then the stack will contract as memory is + * allocated to the heap. + * Override this symbol to put the heap in a different memory. + */ +PROVIDE( __alt_heap_start = end ); +PROVIDE( __alt_heap_limit = 0x1000 ); diff --git a/software/qsys_tutorial_hexs_bsp/mem_init.mk b/software/qsys_tutorial_hexs_bsp/mem_init.mk new file mode 100644 index 0000000..4caaef9 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/mem_init.mk @@ -0,0 +1,322 @@ + +######################################################################### +####### M E M I N I T M A K E F I L E C O N T E N T ###### +######################################################################### + +######################################################################### +# This file is intended to be included by public.mk +# +# +# The following variables must be defined before including this file: +# - ELF +# +# The following variables may be defined to override the default behavior: +# - HDL_SIM_DIR +# - HDL_SIM_INSTALL_DIR +# - MEM_INIT_DIR +# - MEM_INIT_INSTALL_DIR +# - QUARTUS_PROJECT_DIR +# - SOPC_NAME +# - SIM_OPTIMIZE +# - RESET_ADDRESS +# +######################################################################### + +ifeq ($(MEM_INIT_FILE),) +# MEM_INIT_FILE should be set equal to the working relative path to this +# mem_init.mk makefile fragment +MEM_INIT_FILE := $(wildcard $(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST))) +endif + +ifeq ($(ELF2DAT),) +ELF2DAT := elf2dat +endif + +ifeq ($(ELF2HEX),) +ELF2HEX := elf2hex +endif + +ifeq ($(ELF2FLASH),) +ELF2FLASH := elf2flash +endif + +ifeq ($(FLASH2DAT),) +FLASH2DAT := flash2dat +endif + +ifeq ($(NM),) +NM := nios2-elf-nm +endif + +ifeq ($(MKDIR),) +MKDIR := mkdir -p +endif + +ifeq ($(RM),) +RM := rm -f +endif + +ifeq ($(CP),) +CP := cp +endif + +ifeq ($(ECHO),) +ECHO := echo +endif + +MEM_INIT_DIR ?= mem_init +HDL_SIM_DIR ?= $(MEM_INIT_DIR)/hdl_sim + +ifdef QUARTUS_PROJECT_DIR +MEM_INIT_INSTALL_DIR ?= $(patsubst %/,%,$(QUARTUS_PROJECT_DIR)) +ifdef SOPC_NAME +HDL_SIM_INSTALL_DIR ?= $(patsubst %/,%,$(QUARTUS_PROJECT_DIR))/$(SOPC_NAME)_sim +endif +endif + +MEM_INIT_DESCRIPTOR_FILE ?= $(MEM_INIT_DIR)/meminit.spd + +MEM_INIT_QIP_FILE ?= $(MEM_INIT_DIR)/meminit.qip + +#------------------------------------- +# Default Flash Boot Loaders +#------------------------------------- + +BOOT_LOADER_PATH ?= $(SOPC_KIT_NIOS2)/components/altera_nios2 +BOOT_LOADER_CFI ?= $(BOOT_LOADER_PATH)/boot_loader_cfi.srec +BOOT_LOADER_CFI_BE ?= $(BOOT_LOADER_PATH)/boot_loader_cfi_be.srec + + +#------------------------------------- +# Default Target +#------------------------------------- + +.PHONY: default_mem_init +ifeq ($(QSYS),1) +default_mem_init: mem_init_generate +else +default_mem_init: mem_init_install +endif +#------------------------------------- +# Runtime Macros +#------------------------------------- + +define post-process-info + @echo Post-processing to create $@... +endef + +target_stem = $(notdir $(basename $@)) + +mem_start_address = $($(target_stem)_START) +mem_end_address = $($(target_stem)_END) +mem_width = $($(target_stem)_WIDTH) +mem_endianness = $($(target_stem)_ENDIANNESS) +mem_create_lanes = $($(target_stem)_CREATE_LANES) + +mem_pad_flag = $($(target_stem)_PAD_FLAG) +mem_reloc_input_flag = $($(target_stem)_RELOC_INPUT_FLAG) +mem_no_zero_fill_flag = $($(target_stem)_NO_ZERO_FILL_FLAG) + +flash_mem_epcs_flag = $($(target_stem)_EPCS_FLAGS) +flash_mem_cfi_flag = $($(target_stem)_CFI_FLAGS) +flash_mem_boot_loader_flag = $($(target_stem)_BOOT_LOADER_FLAG) + +elf2dat_extra_args = $(mem_pad_flag) +elf2hex_extra_args = $(mem_no_zero_fill_flag) +elf2flash_extra_args = $(flash_mem_cfi_flag) $(flash_mem_epcs_flag) $(flash_mem_boot_loader_flag) +flash2dat_extra_args = $(mem_pad_flag) $(mem_reloc_input_flag) + +#------------------------------------------------------------------------------ +# BSP SPECIFIC CONTENT +# +# The content below is controlled by the BSP and SOPC System +#------------------------------------------------------------------------------ +#START OF BSP SPECIFIC + +#------------------------------------- +# Global Settings +#------------------------------------- + + +# The following TYPE comment allows tools to identify the 'type' of target this +# makefile is associated with. +# TYPE: BSP_MEMINIT_MAKEFILE + +# This following VERSION comment indicates the version of the tool used to +# generate this makefile. A makefile variable is provided for VERSION as well. +# ACDS_VERSION: 13.0sp1 +ACDS_VERSION := 13.0sp1 + +# This following BUILD_NUMBER comment indicates the build number of the tool +# used to generate this makefile. +# BUILD_NUMBER: 232 + +# Optimize for simulation +SIM_OPTIMIZE ?= 0 + +# The CPU reset address as needed by elf2flash +RESET_ADDRESS ?= 0x00000000 + +#------------------------------------- +# Pre-Initialized Memory Descriptions +#------------------------------------- + +# Memory: onchip_memory +MEM_0 := nios_system_onchip_memory +$(MEM_0)_NAME := onchip_memory +$(MEM_0)_MEM_INIT_FILE_PARAM_NAME := INIT_FILE +HEX_FILES += $(MEM_INIT_DIR)/$(MEM_0).hex +MEM_INIT_INSTALL_FILES += $(MEM_INIT_INSTALL_DIR)/$(MEM_0).hex +DAT_FILES += $(HDL_SIM_DIR)/$(MEM_0).dat +HDL_SIM_INSTALL_FILES += $(HDL_SIM_INSTALL_DIR)/$(MEM_0).dat +SYM_FILES += $(HDL_SIM_DIR)/$(MEM_0).sym +HDL_SIM_INSTALL_FILES += $(HDL_SIM_INSTALL_DIR)/$(MEM_0).sym +$(MEM_0)_START := 0x00000000 +$(MEM_0)_END := 0x00000fff +$(MEM_0)_HIERARCHICAL_PATH := onchip_memory +$(MEM_0)_WIDTH := 32 +$(MEM_0)_ENDIANNESS := --little-endian-mem +$(MEM_0)_CREATE_LANES := 0 + +.PHONY: onchip_memory +onchip_memory: check_elf_exists $(MEM_INIT_DIR)/$(MEM_0).hex $(HDL_SIM_DIR)/$(MEM_0).dat $(HDL_SIM_DIR)/$(MEM_0).sym + + +#END OF BSP SPECIFIC + +#------------------------------------- +# Pre-Initialized Memory Targets +#------------------------------------- + +.PHONY: mem_init_install mem_init_generate mem_init_clean + +ifeq ($(QSYS),1) +# Target mem_init_install is deprecated for QSys based systems +# To initialize onchip memories for Quartus II Synthesis with Qsys based systems: +# 1) Use "make mem_init_genearate" +# 2) Add the generated mem_init/meminit.qip file to your Quartus II Project +# +mem_init_install: + $(error Deprecated Makefile Target: '$@'. Use target 'mem_init_generate' and then add $(MEM_INIT_QIP_FILE) to your Quartus II Project) + +else # QSYS != 1, if SopcBuilder based system + +ifneq ($(MEM_INIT_INSTALL_DIR),) +mem_init_install: $(MEM_INIT_INSTALL_FILES) +endif + +ifneq ($(HDL_SIM_INSTALL_DIR),) +mem_init_install: $(HDL_SIM_INSTALL_FILES) +endif + +mem_init_install: mem_init_generate +ifeq ($(MEM_INIT_INSTALL_DIR),) + @echo "WARNING: MEM_INIT_INSTALL_DIR not set. Set your QUARTUS_PROJECT_DIR environment variable." +endif +ifeq ($(HDL_SIM_INSTALL_DIR),) + @echo "WARNING: HDL_SIM_INSTALL_DIR not set. Set your QUARTUS_PROJECT_DIR and SOPC_NAME environment variable." +endif + +$(MEM_INIT_INSTALL_FILES): $(MEM_INIT_INSTALL_DIR)/%: $(MEM_INIT_DIR)/% + @$(MKDIR) $(@D) + @$(CP) -v $< $@ + +$(HDL_SIM_INSTALL_FILES): $(HDL_SIM_INSTALL_DIR)/%: $(HDL_SIM_DIR)/% + @$(MKDIR) $(@D) + @$(CP) -v $< $@ + +endif # QSYS == 1 + + +mem_init_generate: hex dat sym flash $(MEM_INIT_DESCRIPTOR_FILE) $(MEM_INIT_QIP_FILE) + +mem_init_clean: + @$(RM) -r $(MEM_INIT_DIR) $(HDL_SIM_DIR) $(FLASH_FILES) + +.PHONY: hex dat sym flash + +hex: check_elf_exists $(HEX_FILES) + +dat: check_elf_exists $(DAT_FILES) + +sym: check_elf_exists $(SYM_FILES) + +flash: check_elf_exists $(FLASH_FILES) + +#------------------------------------- +# Pre-Initialized Memory Rules +#------------------------------------- + +.PHONY: check_elf_exists +check_elf_exists: $(ELF) +ifeq ($(ELF),) + $(error ELF var not set in mem_init.mk) +endif + +$(filter-out $(FLASH_DAT_FILES),$(DAT_FILES)): %.dat: $(ELF) + $(post-process-info) + @$(MKDIR) $(@D) + bash -c '$(ELF2DAT) --infile=$< --outfile=$@ \ + --base=$(mem_start_address) --end=$(mem_end_address) --width=$(mem_width) \ + $(mem_endianness) --create-lanes=$(mem_create_lanes) $(elf2dat_extra_args)' + +$(foreach i,0 1 2 3 4 5 6 7,%_lane$(i).dat): %.dat + @true + +$(HEX_FILES): %.hex: $(ELF) + $(post-process-info) + @$(MKDIR) $(@D) + bash -c '$(ELF2HEX) $< $(mem_start_address) $(mem_end_address) --width=$(mem_width) \ + $(mem_endianness) --create-lanes=$(mem_create_lanes) $(elf2hex_extra_args) $@' + +$(SYM_FILES): %.sym: $(ELF) + $(post-process-info) + @$(MKDIR) $(@D) + $(NM) -n $< > $@ + +$(FLASH_FILES): %.flash: $(ELF) + $(post-process-info) + @$(MKDIR) $(@D) + bash -c '$(ELF2FLASH) --input=$< --outfile=$@ --sim_optimize=$(SIM_OPTIMIZE) $(mem_endianness) \ + $(elf2flash_extra_args)' + +# +# Function generate_spd_entry +# Arg1: path to the memory initialization file +# Arg2: Type HEX or DAT +# Arg3: Output spd file to append +gen_spd_entry.BASE_FILE = $(basename $(notdir $1)) +gen_spd_entry.PARAM_NAME = $($(gen_spd_entry.BASE_FILE)_MEM_INIT_FILE_PARAM_NAME) +gen_spd_entry.MEM_PATH = $($(gen_spd_entry.BASE_FILE)_HIERARCHICAL_PATH) +gen_spd_entry.SETTINGS = $(strip \ + path=\"$1\" \ + type=\"$2\" \ + $(if $(gen_spd_entry.PARAM_NAME),initParamName=\"$(gen_spd_entry.PARAM_NAME)\") \ + $(if $(gen_spd_entry.MEM_PATH),memoryPath=\"$(gen_spd_entry.MEM_PATH)\") \ +) +define gen_spd_entry +$(ECHO) "" >> $3 +endef + +$(MEM_INIT_DESCRIPTOR_FILE).DAT_FILESET := $(patsubst $(dir $(MEM_INIT_DESCRIPTOR_FILE))%,%,$(DAT_FILES)) +$(MEM_INIT_DESCRIPTOR_FILE).HEX_FILESET := $(patsubst $(dir $(MEM_INIT_DESCRIPTOR_FILE))%,%,$(HEX_FILES)) + +$(MEM_INIT_DESCRIPTOR_FILE): %.spd: $(MEM_INIT_FILE) + $(post-process-info) + @$(MKDIR) $(@D) + @$(RM) $@ + @$(ECHO) "" > $@ + @$(ECHO) "" >> $@ + @$(foreach dat_file,$($@.DAT_FILESET),$(call gen_spd_entry,$(dat_file),DAT,$@) &&)true + @$(foreach hex_file,$($@.HEX_FILESET),$(call gen_spd_entry,$(hex_file),HEX,$@) &&)true + @$(ECHO) "" >> $@ + +.DELETE_ON_ERROR: $(MEM_INIT_DESCRIPTOR_FILE) + +$(MEM_INIT_QIP_FILE): %.qip: $(MEM_INIT_FILE) + $(post-process-info) + @$(MKDIR) $(@D) + @$(RM) $@ + @$(ECHO) "set_global_assignment -name SEARCH_PATH $$::quartus(qip_path)" > $@ + +.DELETE_ON_ERROR: $(MEM_INIT_QIP_FILE) diff --git a/software/qsys_tutorial_hexs_bsp/memory.gdb b/software/qsys_tutorial_hexs_bsp/memory.gdb new file mode 100644 index 0000000..6e6623b --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/memory.gdb @@ -0,0 +1,50 @@ +# memory.gdb - GDB memory region definitions +# +# Machine generated for CPU 'nios2_processor' in SOPC Builder design 'nios_system' +# SOPC Builder design path: C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.sopcinfo +# +# Generated: Thu Nov 17 09:38:43 JST 2016 + +# DO NOT MODIFY THIS FILE +# +# Changing this file will have subtle consequences +# which will almost certainly lead to a nonfunctioning +# system. If you do modify this file, be aware that your +# changes will be overwritten and lost when this file +# is generated again. +# +# DO NOT MODIFY THIS FILE + +# License Agreement +# +# Copyright (c) 2008 +# Altera Corporation, San Jose, California, USA. +# All rights reserved. +# +# Permission is hereby granted, free of charge, to any person obtaining a +# copy of this software and associated documentation files (the "Software"), +# to deal in the Software without restriction, including without limitation +# the rights to use, copy, modify, merge, publish, distribute, sublicense, +# and/or sell copies of the Software, and to permit persons to whom the +# Software is furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +# DEALINGS IN THE SOFTWARE. +# +# This agreement shall be governed in all respects by the laws of the State +# of California and by the laws of the United States of America. + +# Define memory regions for each memory connected to the CPU. +# The cache attribute is specified which improves GDB performance +# by allowing GDB to cache memory contents on the host. + +# onchip_memory +memory 0x0 0x1000 cache diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_alarm_start.d b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_alarm_start.d new file mode 100644 index 0000000..3bb20ea --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_alarm_start.d @@ -0,0 +1,22 @@ +obj/HAL/src/alt_alarm_start.o: HAL/src/alt_alarm_start.c \ + HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ + HAL/inc/priv/alt_alarm.h HAL/inc/alt_types.h HAL/inc/sys/alt_irq.h \ + HAL/inc/nios2.h system.h linker.h + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +system.h: + +linker.h: diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_alarm_start.o b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_alarm_start.o new file mode 100644 index 0000000..69f3a3b --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_alarm_start.o Binary files differ diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_busy_sleep.d b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_busy_sleep.d new file mode 100644 index 0000000..e93e80c --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_busy_sleep.d @@ -0,0 +1,10 @@ +obj/HAL/src/alt_busy_sleep.o: HAL/src/alt_busy_sleep.c system.h linker.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_busy_sleep.h + +system.h: + +linker.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_busy_sleep.h: diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_busy_sleep.o b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_busy_sleep.o new file mode 100644 index 0000000..26273d4 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_busy_sleep.o Binary files differ diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_close.d b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_close.d new file mode 100644 index 0000000..fbbab9c --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_close.d @@ -0,0 +1,34 @@ +obj/HAL/src/alt_close.o: HAL/src/alt_close.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h HAL/inc/priv/alt_file.h \ + HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h \ + HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_close.o b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_close.o new file mode 100644 index 0000000..6f3efa8 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_close.o Binary files differ diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_dcache_flush.d b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_dcache_flush.d new file mode 100644 index 0000000..a0eaf8a --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_dcache_flush.d @@ -0,0 +1,15 @@ +obj/HAL/src/alt_dcache_flush.o: HAL/src/alt_dcache_flush.c \ + HAL/inc/nios2.h system.h linker.h HAL/inc/alt_types.h \ + HAL/inc/sys/alt_cache.h HAL/inc/alt_types.h + +HAL/inc/nios2.h: + +system.h: + +linker.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_cache.h: + +HAL/inc/alt_types.h: diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_dcache_flush.o b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_dcache_flush.o new file mode 100644 index 0000000..b2a836f --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_dcache_flush.o Binary files differ diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_dcache_flush_all.d b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_dcache_flush_all.d new file mode 100644 index 0000000..792c3e4 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_dcache_flush_all.d @@ -0,0 +1,15 @@ +obj/HAL/src/alt_dcache_flush_all.o: HAL/src/alt_dcache_flush_all.c \ + HAL/inc/nios2.h system.h linker.h HAL/inc/alt_types.h \ + HAL/inc/sys/alt_cache.h HAL/inc/alt_types.h + +HAL/inc/nios2.h: + +system.h: + +linker.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_cache.h: + +HAL/inc/alt_types.h: diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_dcache_flush_all.o b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_dcache_flush_all.o new file mode 100644 index 0000000..023ade7 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_dcache_flush_all.o Binary files differ diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_dcache_flush_no_writeback.d b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_dcache_flush_no_writeback.d new file mode 100644 index 0000000..867c42b --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_dcache_flush_no_writeback.d @@ -0,0 +1,16 @@ +obj/HAL/src/alt_dcache_flush_no_writeback.o: \ + HAL/src/alt_dcache_flush_no_writeback.c HAL/inc/nios2.h system.h \ + linker.h HAL/inc/alt_types.h HAL/inc/sys/alt_cache.h \ + HAL/inc/alt_types.h + +HAL/inc/nios2.h: + +system.h: + +linker.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_cache.h: + +HAL/inc/alt_types.h: diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_dcache_flush_no_writeback.o b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_dcache_flush_no_writeback.o new file mode 100644 index 0000000..264c9eb --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_dcache_flush_no_writeback.o Binary files differ diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_dev.d b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_dev.d new file mode 100644 index 0000000..cd9b1d4 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_dev.d @@ -0,0 +1,34 @@ +obj/HAL/src/alt_dev.o: HAL/src/alt_dev.c HAL/inc/sys/alt_dev.h system.h \ + linker.h HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h \ + HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h HAL/inc/alt_types.h \ + system.h + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/alt_types.h: + +system.h: diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_dev.o b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_dev.o new file mode 100644 index 0000000..49133c5 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_dev.o Binary files differ diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_dev_llist_insert.d b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_dev_llist_insert.d new file mode 100644 index 0000000..344d065 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_dev_llist_insert.d @@ -0,0 +1,13 @@ +obj/HAL/src/alt_dev_llist_insert.o: HAL/src/alt_dev_llist_insert.c \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/alt_types.h HAL/inc/sys/alt_errno.h + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_errno.h: diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_dev_llist_insert.o b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_dev_llist_insert.o new file mode 100644 index 0000000..955a9a1 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_dev_llist_insert.o Binary files differ diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_dma_rxchan_open.d b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_dma_rxchan_open.d new file mode 100644 index 0000000..fb21fed --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_dma_rxchan_open.d @@ -0,0 +1,35 @@ +obj/HAL/src/alt_dma_rxchan_open.o: HAL/src/alt_dma_rxchan_open.c \ + HAL/inc/sys/alt_dma.h HAL/inc/sys/alt_dma_dev.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/alt_types.h HAL/inc/sys/alt_errno.h \ + HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h system.h linker.h \ + HAL/inc/sys/alt_llist.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h + +HAL/inc/sys/alt_dma.h: + +HAL/inc/sys/alt_dma_dev.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_errno.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_dma_rxchan_open.o b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_dma_rxchan_open.o new file mode 100644 index 0000000..7404338 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_dma_rxchan_open.o Binary files differ diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_dma_txchan_open.d b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_dma_txchan_open.d new file mode 100644 index 0000000..500b95c --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_dma_txchan_open.d @@ -0,0 +1,35 @@ +obj/HAL/src/alt_dma_txchan_open.o: HAL/src/alt_dma_txchan_open.c \ + HAL/inc/sys/alt_dma.h HAL/inc/sys/alt_dma_dev.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/alt_types.h HAL/inc/sys/alt_errno.h \ + HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h system.h linker.h \ + HAL/inc/sys/alt_llist.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h + +HAL/inc/sys/alt_dma.h: + +HAL/inc/sys/alt_dma_dev.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_errno.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_dma_txchan_open.o b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_dma_txchan_open.o new file mode 100644 index 0000000..9811e6c --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_dma_txchan_open.o Binary files differ diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_do_ctors.d b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_do_ctors.d new file mode 100644 index 0000000..daf8baf --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_do_ctors.d @@ -0,0 +1 @@ +obj/HAL/src/alt_do_ctors.o: HAL/src/alt_do_ctors.c diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_do_ctors.o b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_do_ctors.o new file mode 100644 index 0000000..a01cd14 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_do_ctors.o Binary files differ diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_do_dtors.d b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_do_dtors.d new file mode 100644 index 0000000..c3471eb --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_do_dtors.d @@ -0,0 +1 @@ +obj/HAL/src/alt_do_dtors.o: HAL/src/alt_do_dtors.c diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_do_dtors.o b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_do_dtors.o new file mode 100644 index 0000000..267e5dd --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_do_dtors.o Binary files differ diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_env_lock.d b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_env_lock.d new file mode 100644 index 0000000..634d7b0 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_env_lock.d @@ -0,0 +1 @@ +obj/HAL/src/alt_env_lock.o: HAL/src/alt_env_lock.c diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_env_lock.o b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_env_lock.o new file mode 100644 index 0000000..bbd9da2 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_env_lock.o Binary files differ diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_environ.d b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_environ.d new file mode 100644 index 0000000..e9ca295 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_environ.d @@ -0,0 +1,3 @@ +obj/HAL/src/alt_environ.o: HAL/src/alt_environ.c HAL/inc/os/alt_syscall.h + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_environ.o b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_environ.o new file mode 100644 index 0000000..1fc5cb1 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_environ.o Binary files differ diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_errno.d b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_errno.d new file mode 100644 index 0000000..29ca544 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_errno.d @@ -0,0 +1,8 @@ +obj/HAL/src/alt_errno.o: HAL/src/alt_errno.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/alt_types.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/alt_types.h: diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_errno.o b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_errno.o new file mode 100644 index 0000000..10ef546 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_errno.o Binary files differ diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_exception_entry.d b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_exception_entry.d new file mode 100644 index 0000000..540567e --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_exception_entry.d @@ -0,0 +1,6 @@ +obj/HAL/src/alt_exception_entry.o: HAL/src/alt_exception_entry.S system.h \ + linker.h + +system.h: + +linker.h: diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_exception_entry.o b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_exception_entry.o new file mode 100644 index 0000000..60ab912 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_exception_entry.o Binary files differ diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_exception_muldiv.d b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_exception_muldiv.d new file mode 100644 index 0000000..63d66a7 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_exception_muldiv.d @@ -0,0 +1 @@ +obj/HAL/src/alt_exception_muldiv.o: HAL/src/alt_exception_muldiv.S diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_exception_muldiv.o b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_exception_muldiv.o new file mode 100644 index 0000000..34d3093 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_exception_muldiv.o Binary files differ diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_exception_trap.d b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_exception_trap.d new file mode 100644 index 0000000..6e18488 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_exception_trap.d @@ -0,0 +1 @@ +obj/HAL/src/alt_exception_trap.o: HAL/src/alt_exception_trap.S diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_exception_trap.o b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_exception_trap.o new file mode 100644 index 0000000..9064823 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_exception_trap.o Binary files differ diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_execve.d b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_execve.d new file mode 100644 index 0000000..9cef7d2 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_execve.d @@ -0,0 +1,10 @@ +obj/HAL/src/alt_execve.o: HAL/src/alt_execve.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_execve.o b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_execve.o new file mode 100644 index 0000000..6b014d8 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_execve.o Binary files differ diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_exit.d b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_exit.d new file mode 100644 index 0000000..a779da8 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_exit.d @@ -0,0 +1,26 @@ +obj/HAL/src/alt_exit.o: HAL/src/alt_exit.c HAL/inc/sys/alt_irq.h \ + HAL/inc/nios2.h HAL/inc/alt_types.h system.h linker.h \ + HAL/inc/sys/alt_sim.h HAL/inc/os/alt_hooks.h HAL/inc/os/alt_syscall.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_log_printf.h system.h + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_sim.h: + +HAL/inc/os/alt_hooks.h: + +HAL/inc/os/alt_syscall.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_log_printf.h: + +system.h: diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_exit.o b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_exit.o new file mode 100644 index 0000000..4175c1b --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_exit.o Binary files differ diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_fcntl.d b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_fcntl.d new file mode 100644 index 0000000..527f242 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_fcntl.d @@ -0,0 +1,34 @@ +obj/HAL/src/alt_fcntl.o: HAL/src/alt_fcntl.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h \ + system.h linker.h HAL/inc/sys/alt_llist.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h HAL/inc/alt_types.h \ + HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_fcntl.o b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_fcntl.o new file mode 100644 index 0000000..553217a --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_fcntl.o Binary files differ diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_fd_lock.d b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_fd_lock.d new file mode 100644 index 0000000..93daeac --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_fd_lock.d @@ -0,0 +1,27 @@ +obj/HAL/src/alt_fd_lock.o: HAL/src/alt_fd_lock.c HAL/inc/priv/alt_file.h \ + HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_fd_lock.o b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_fd_lock.o new file mode 100644 index 0000000..2f58903 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_fd_lock.o Binary files differ diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_fd_unlock.d b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_fd_unlock.d new file mode 100644 index 0000000..45a3207 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_fd_unlock.d @@ -0,0 +1,27 @@ +obj/HAL/src/alt_fd_unlock.o: HAL/src/alt_fd_unlock.c \ + HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h system.h linker.h \ + HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_fd_unlock.o b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_fd_unlock.o new file mode 100644 index 0000000..e19aa05 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_fd_unlock.o Binary files differ diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_find_dev.d b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_find_dev.d new file mode 100644 index 0000000..98336f8 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_find_dev.d @@ -0,0 +1,31 @@ +obj/HAL/src/alt_find_dev.o: HAL/src/alt_find_dev.c HAL/inc/sys/alt_dev.h \ + system.h linker.h HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h \ + HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h HAL/inc/alt_types.h + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/alt_types.h: diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_find_dev.o b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_find_dev.o new file mode 100644 index 0000000..41e7ae4 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_find_dev.o Binary files differ diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_find_file.d b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_find_file.d new file mode 100644 index 0000000..d1150ca --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_find_file.d @@ -0,0 +1,32 @@ +obj/HAL/src/alt_find_file.o: HAL/src/alt_find_file.c \ + HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h HAL/inc/priv/alt_file.h \ + HAL/inc/sys/alt_dev.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h \ + HAL/inc/alt_types.h + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/alt_types.h: diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_find_file.o b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_find_file.o new file mode 100644 index 0000000..2466258 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_find_file.o Binary files differ diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_flash_dev.d b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_flash_dev.d new file mode 100644 index 0000000..8835e8f --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_flash_dev.d @@ -0,0 +1,34 @@ +obj/HAL/src/alt_flash_dev.o: HAL/src/alt_flash_dev.c \ + HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h HAL/inc/sys/alt_flash_dev.h \ + HAL/inc/sys/alt_flash_types.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h \ + system.h linker.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_flash_dev.h: + +HAL/inc/sys/alt_flash_types.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_flash_dev.o b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_flash_dev.o new file mode 100644 index 0000000..5d639ce --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_flash_dev.o Binary files differ diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_fork.d b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_fork.d new file mode 100644 index 0000000..492be65 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_fork.d @@ -0,0 +1,10 @@ +obj/HAL/src/alt_fork.o: HAL/src/alt_fork.c HAL/inc/sys/alt_warning.h \ + HAL/inc/sys/alt_errno.h HAL/inc/alt_types.h HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_warning.h: + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_fork.o b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_fork.o new file mode 100644 index 0000000..3e7fe7a --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_fork.o Binary files differ diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_fs_reg.d b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_fs_reg.d new file mode 100644 index 0000000..d8f95ab --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_fs_reg.d @@ -0,0 +1,29 @@ +obj/HAL/src/alt_fs_reg.o: HAL/src/alt_fs_reg.c HAL/inc/sys/alt_dev.h \ + system.h linker.h HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h \ + HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_fs_reg.o b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_fs_reg.o new file mode 100644 index 0000000..03dc454 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_fs_reg.o Binary files differ diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_fstat.d b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_fstat.d new file mode 100644 index 0000000..942fcbc --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_fstat.d @@ -0,0 +1,38 @@ +obj/HAL/src/alt_fstat.o: HAL/src/alt_fstat.c HAL/inc/sys/alt_dev.h \ + system.h linker.h HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h HAL/inc/sys/alt_errno.h \ + HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h HAL/inc/os/alt_syscall.h system.h + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/sys/alt_errno.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_syscall.h: + +system.h: diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_fstat.o b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_fstat.o new file mode 100644 index 0000000..35c02c5 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_fstat.o Binary files differ diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_get_fd.d b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_get_fd.d new file mode 100644 index 0000000..9a4daaa --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_get_fd.d @@ -0,0 +1,34 @@ +obj/HAL/src/alt_get_fd.o: HAL/src/alt_get_fd.c HAL/inc/sys/alt_dev.h \ + system.h linker.h HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h \ + HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h HAL/inc/alt_types.h \ + system.h + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/alt_types.h: + +system.h: diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_get_fd.o b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_get_fd.o new file mode 100644 index 0000000..3501e2b --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_get_fd.o Binary files differ diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_getchar.d b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_getchar.d new file mode 100644 index 0000000..bcccdf7 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_getchar.d @@ -0,0 +1,34 @@ +obj/HAL/src/alt_getchar.o: HAL/src/alt_getchar.c system.h linker.h \ + HAL/inc/sys/alt_driver.h HAL/inc/sys/alt_stdio.h \ + HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h system.h \ + HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h + +system.h: + +linker.h: + +HAL/inc/sys/alt_driver.h: + +HAL/inc/sys/alt_stdio.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_getchar.o b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_getchar.o new file mode 100644 index 0000000..69c55fc --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_getchar.o Binary files differ diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_getpid.d b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_getpid.d new file mode 100644 index 0000000..d9499b9 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_getpid.d @@ -0,0 +1,3 @@ +obj/HAL/src/alt_getpid.o: HAL/src/alt_getpid.c HAL/inc/os/alt_syscall.h + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_getpid.o b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_getpid.o new file mode 100644 index 0000000..01efb1a --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_getpid.o Binary files differ diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_gettod.d b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_gettod.d new file mode 100644 index 0000000..cf3cf34 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_gettod.d @@ -0,0 +1,17 @@ +obj/HAL/src/alt_gettod.o: HAL/src/alt_gettod.c HAL/inc/sys/alt_alarm.h \ + HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h HAL/inc/priv/alt_alarm.h \ + HAL/inc/alt_types.h HAL/inc/alt_types.h HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/alt_types.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_gettod.o b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_gettod.o new file mode 100644 index 0000000..7f6381e --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_gettod.o Binary files differ diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_gmon.d b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_gmon.d new file mode 100644 index 0000000..e9469ab --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_gmon.d @@ -0,0 +1,24 @@ +obj/HAL/src/alt_gmon.o: HAL/src/alt_gmon.c HAL/inc/priv/nios2_gmon_data.h \ + HAL/inc/sys/alt_irq.h HAL/inc/nios2.h HAL/inc/alt_types.h system.h \ + linker.h HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_alarm.h HAL/inc/alt_types.h + +HAL/inc/priv/nios2_gmon_data.h: + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/alt_types.h: diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_gmon.o b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_gmon.o new file mode 100644 index 0000000..92e7edb --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_gmon.o Binary files differ diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_icache_flush.d b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_icache_flush.d new file mode 100644 index 0000000..2e4ddd1 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_icache_flush.d @@ -0,0 +1,15 @@ +obj/HAL/src/alt_icache_flush.o: HAL/src/alt_icache_flush.c \ + HAL/inc/nios2.h system.h linker.h HAL/inc/alt_types.h \ + HAL/inc/sys/alt_cache.h HAL/inc/alt_types.h + +HAL/inc/nios2.h: + +system.h: + +linker.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_cache.h: + +HAL/inc/alt_types.h: diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_icache_flush.o b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_icache_flush.o new file mode 100644 index 0000000..ab1c71d --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_icache_flush.o Binary files differ diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_icache_flush_all.d b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_icache_flush_all.d new file mode 100644 index 0000000..47cfbf3 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_icache_flush_all.d @@ -0,0 +1,15 @@ +obj/HAL/src/alt_icache_flush_all.o: HAL/src/alt_icache_flush_all.c \ + HAL/inc/nios2.h system.h linker.h HAL/inc/alt_types.h \ + HAL/inc/sys/alt_cache.h HAL/inc/alt_types.h + +HAL/inc/nios2.h: + +system.h: + +linker.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_cache.h: + +HAL/inc/alt_types.h: diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_icache_flush_all.o b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_icache_flush_all.o new file mode 100644 index 0000000..c03bc17 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_icache_flush_all.o Binary files differ diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_iic.d b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_iic.d new file mode 100644 index 0000000..a709e0c --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_iic.d @@ -0,0 +1,29 @@ +obj/HAL/src/alt_iic.o: HAL/src/alt_iic.c system.h linker.h \ + HAL/inc/sys/alt_irq.h HAL/inc/nios2.h HAL/inc/alt_types.h system.h \ + HAL/inc/priv/alt_iic_isr_register.h HAL/inc/alt_types.h \ + HAL/inc/sys/alt_irq.h HAL/inc/priv/alt_legacy_irq.h system.h \ + HAL/inc/nios2.h + +system.h: + +linker.h: + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +HAL/inc/priv/alt_iic_isr_register.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_irq.h: + +HAL/inc/priv/alt_legacy_irq.h: + +system.h: + +HAL/inc/nios2.h: diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_iic.o b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_iic.o new file mode 100644 index 0000000..b9319d5 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_iic.o Binary files differ diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_iic_isr_register.d b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_iic_isr_register.d new file mode 100644 index 0000000..d0470ae --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_iic_isr_register.d @@ -0,0 +1,30 @@ +obj/HAL/src/alt_iic_isr_register.o: HAL/src/alt_iic_isr_register.c \ + system.h linker.h HAL/inc/alt_types.h HAL/inc/sys/alt_irq.h \ + HAL/inc/nios2.h HAL/inc/alt_types.h system.h \ + HAL/inc/priv/alt_iic_isr_register.h HAL/inc/alt_types.h \ + HAL/inc/sys/alt_irq.h HAL/inc/sys/alt_irq_entry.h \ + HAL/inc/priv/alt_irq_table.h + +system.h: + +linker.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +HAL/inc/priv/alt_iic_isr_register.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_irq.h: + +HAL/inc/sys/alt_irq_entry.h: + +HAL/inc/priv/alt_irq_table.h: diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_iic_isr_register.o b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_iic_isr_register.o new file mode 100644 index 0000000..0c7b557 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_iic_isr_register.o Binary files differ diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_instruction_exception_entry.d b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_instruction_exception_entry.d new file mode 100644 index 0000000..6d0705f --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_instruction_exception_entry.d @@ -0,0 +1,18 @@ +obj/HAL/src/alt_instruction_exception_entry.o: \ + HAL/src/alt_instruction_exception_entry.c HAL/inc/sys/alt_exceptions.h \ + HAL/inc/alt_types.h system.h linker.h HAL/inc/nios2.h \ + HAL/inc/alt_types.h system.h + +HAL/inc/sys/alt_exceptions.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_instruction_exception_entry.o b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_instruction_exception_entry.o new file mode 100644 index 0000000..fea8b78 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_instruction_exception_entry.o Binary files differ diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_instruction_exception_register.d b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_instruction_exception_register.d new file mode 100644 index 0000000..d4fac04 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_instruction_exception_register.d @@ -0,0 +1,16 @@ +obj/HAL/src/alt_instruction_exception_register.o: \ + HAL/src/alt_instruction_exception_register.c \ + HAL/inc/sys/alt_exceptions.h HAL/inc/alt_types.h system.h linker.h \ + HAL/inc/alt_types.h system.h + +HAL/inc/sys/alt_exceptions.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: + +HAL/inc/alt_types.h: + +system.h: diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_instruction_exception_register.o b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_instruction_exception_register.o new file mode 100644 index 0000000..d404ff9 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_instruction_exception_register.o Binary files differ diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_io_redirect.d b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_io_redirect.d new file mode 100644 index 0000000..8228365 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_io_redirect.d @@ -0,0 +1,29 @@ +obj/HAL/src/alt_io_redirect.o: HAL/src/alt_io_redirect.c \ + HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h HAL/inc/priv/alt_file.h \ + HAL/inc/sys/alt_dev.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_io_redirect.o b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_io_redirect.o new file mode 100644 index 0000000..6022dd1 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_io_redirect.o Binary files differ diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_ioctl.d b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_ioctl.d new file mode 100644 index 0000000..d70ad97 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_ioctl.d @@ -0,0 +1,41 @@ +obj/HAL/src/alt_ioctl.o: HAL/src/alt_ioctl.c HAL/inc/sys/ioctl.h \ + HAL/inc/sys/alt_errno.h HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h \ + HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h system.h linker.h \ + HAL/inc/sys/alt_llist.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h HAL/inc/os/alt_syscall.h system.h \ + HAL/inc/sys/alt_driver.h + +HAL/inc/sys/ioctl.h: + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_syscall.h: + +system.h: + +HAL/inc/sys/alt_driver.h: diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_ioctl.o b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_ioctl.o new file mode 100644 index 0000000..8b533d2 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_ioctl.o Binary files differ diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_irq_entry.d b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_irq_entry.d new file mode 100644 index 0000000..9ec3751 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_irq_entry.d @@ -0,0 +1,5 @@ +obj/HAL/src/alt_irq_entry.o: HAL/src/alt_irq_entry.S system.h linker.h + +system.h: + +linker.h: diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_irq_entry.o b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_irq_entry.o new file mode 100644 index 0000000..134b0fb --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_irq_entry.o Binary files differ diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_irq_handler.d b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_irq_handler.d new file mode 100644 index 0000000..6fb668f --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_irq_handler.d @@ -0,0 +1,19 @@ +obj/HAL/src/alt_irq_handler.o: HAL/src/alt_irq_handler.c system.h \ + linker.h HAL/inc/sys/alt_irq.h HAL/inc/nios2.h HAL/inc/alt_types.h \ + system.h HAL/inc/os/alt_hooks.h HAL/inc/alt_types.h + +system.h: + +linker.h: + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +HAL/inc/os/alt_hooks.h: + +HAL/inc/alt_types.h: diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_irq_handler.o b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_irq_handler.o new file mode 100644 index 0000000..f5a340f --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_irq_handler.o Binary files differ diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_irq_register.d b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_irq_register.d new file mode 100644 index 0000000..3df2f8a --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_irq_register.d @@ -0,0 +1,36 @@ +obj/HAL/src/alt_irq_register.o: HAL/src/alt_irq_register.c system.h \ + linker.h HAL/inc/sys/alt_irq.h HAL/inc/nios2.h HAL/inc/alt_types.h \ + system.h HAL/inc/priv/alt_legacy_irq.h system.h HAL/inc/nios2.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_irq.h HAL/inc/os/alt_hooks.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_irq_entry.h \ + HAL/inc/priv/alt_irq_table.h + +system.h: + +linker.h: + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +HAL/inc/priv/alt_legacy_irq.h: + +system.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_irq.h: + +HAL/inc/os/alt_hooks.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_irq_entry.h: + +HAL/inc/priv/alt_irq_table.h: diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_irq_register.o b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_irq_register.o new file mode 100644 index 0000000..cd25c14 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_irq_register.o Binary files differ diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_irq_vars.d b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_irq_vars.d new file mode 100644 index 0000000..f316558 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_irq_vars.d @@ -0,0 +1,8 @@ +obj/HAL/src/alt_irq_vars.o: HAL/src/alt_irq_vars.c HAL/inc/alt_types.h \ + system.h linker.h + +HAL/inc/alt_types.h: + +system.h: + +linker.h: diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_irq_vars.o b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_irq_vars.o new file mode 100644 index 0000000..16cb8fd --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_irq_vars.o Binary files differ diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_isatty.d b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_isatty.d new file mode 100644 index 0000000..f8b1f07 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_isatty.d @@ -0,0 +1,38 @@ +obj/HAL/src/alt_isatty.o: HAL/src/alt_isatty.c HAL/inc/sys/alt_dev.h \ + system.h linker.h HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_errno.h HAL/inc/sys/alt_warning.h \ + HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h HAL/inc/os/alt_syscall.h system.h + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_errno.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_syscall.h: + +system.h: diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_isatty.o b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_isatty.o new file mode 100644 index 0000000..203368f --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_isatty.o Binary files differ diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_kill.d b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_kill.d new file mode 100644 index 0000000..0c14ae8 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_kill.d @@ -0,0 +1,8 @@ +obj/HAL/src/alt_kill.o: HAL/src/alt_kill.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_kill.o b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_kill.o new file mode 100644 index 0000000..4c855a7 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_kill.o Binary files differ diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_link.d b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_link.d new file mode 100644 index 0000000..dc844c6 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_link.d @@ -0,0 +1,10 @@ +obj/HAL/src/alt_link.o: HAL/src/alt_link.c HAL/inc/sys/alt_warning.h \ + HAL/inc/sys/alt_errno.h HAL/inc/alt_types.h HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_warning.h: + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_link.o b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_link.o new file mode 100644 index 0000000..5cf7164 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_link.o Binary files differ diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_load.d b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_load.d new file mode 100644 index 0000000..d496ab8 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_load.d @@ -0,0 +1,8 @@ +obj/HAL/src/alt_load.o: HAL/src/alt_load.c HAL/inc/sys/alt_load.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_cache.h + +HAL/inc/sys/alt_load.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_cache.h: diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_load.o b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_load.o new file mode 100644 index 0000000..9073c92 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_load.o Binary files differ diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_log_macro.d b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_log_macro.d new file mode 100644 index 0000000..9768c1f --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_log_macro.d @@ -0,0 +1 @@ +obj/HAL/src/alt_log_macro.o: HAL/src/alt_log_macro.S diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_log_macro.o b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_log_macro.o new file mode 100644 index 0000000..489e2cc --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_log_macro.o Binary files differ diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_log_printf.d b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_log_printf.d new file mode 100644 index 0000000..251ff6d --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_log_printf.d @@ -0,0 +1 @@ +obj/HAL/src/alt_log_printf.o: HAL/src/alt_log_printf.c diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_log_printf.o b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_log_printf.o new file mode 100644 index 0000000..a03c33d --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_log_printf.o Binary files differ diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_lseek.d b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_lseek.d new file mode 100644 index 0000000..25ed783 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_lseek.d @@ -0,0 +1,34 @@ +obj/HAL/src/alt_lseek.o: HAL/src/alt_lseek.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h HAL/inc/priv/alt_file.h \ + HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h \ + HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_lseek.o b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_lseek.o new file mode 100644 index 0000000..762a6f6 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_lseek.o Binary files differ diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_main.d b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_main.d new file mode 100644 index 0000000..afdfda0 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_main.d @@ -0,0 +1,47 @@ +obj/HAL/src/alt_main.o: HAL/src/alt_main.c HAL/inc/sys/alt_dev.h system.h \ + linker.h HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_sys_init.h HAL/inc/sys/alt_irq.h \ + HAL/inc/nios2.h HAL/inc/os/alt_hooks.h HAL/inc/priv/alt_file.h \ + HAL/inc/sys/alt_dev.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h \ + HAL/inc/alt_types.h system.h HAL/inc/sys/alt_log_printf.h system.h + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_sys_init.h: + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/os/alt_hooks.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/alt_types.h: + +system.h: + +HAL/inc/sys/alt_log_printf.h: + +system.h: diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_main.o b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_main.o new file mode 100644 index 0000000..a71b072 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_main.o Binary files differ diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_malloc_lock.d b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_malloc_lock.d new file mode 100644 index 0000000..4ed35c2 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_malloc_lock.d @@ -0,0 +1 @@ +obj/HAL/src/alt_malloc_lock.o: HAL/src/alt_malloc_lock.c diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_malloc_lock.o b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_malloc_lock.o new file mode 100644 index 0000000..f521fd6 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_malloc_lock.o Binary files differ diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_mcount.d b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_mcount.d new file mode 100644 index 0000000..1203efc --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_mcount.d @@ -0,0 +1 @@ +obj/HAL/src/alt_mcount.o: HAL/src/alt_mcount.S diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_mcount.o b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_mcount.o new file mode 100644 index 0000000..a74bde2 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_mcount.o Binary files differ diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_open.d b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_open.d new file mode 100644 index 0000000..a2aacd9 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_open.d @@ -0,0 +1,36 @@ +obj/HAL/src/alt_open.o: HAL/src/alt_open.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h HAL/inc/priv/alt_file.h \ + HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h \ + HAL/inc/alt_types.h HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_open.o b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_open.o new file mode 100644 index 0000000..0a02c30 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_open.o Binary files differ diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_printf.d b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_printf.d new file mode 100644 index 0000000..3ce68a4 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_printf.d @@ -0,0 +1,3 @@ +obj/HAL/src/alt_printf.o: HAL/src/alt_printf.c HAL/inc/sys/alt_stdio.h + +HAL/inc/sys/alt_stdio.h: diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_printf.o b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_printf.o new file mode 100644 index 0000000..a833195 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_printf.o Binary files differ diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_putchar.d b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_putchar.d new file mode 100644 index 0000000..9a0dde3 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_putchar.d @@ -0,0 +1,10 @@ +obj/HAL/src/alt_putchar.o: HAL/src/alt_putchar.c system.h linker.h \ + HAL/inc/sys/alt_driver.h HAL/inc/sys/alt_stdio.h + +system.h: + +linker.h: + +HAL/inc/sys/alt_driver.h: + +HAL/inc/sys/alt_stdio.h: diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_putchar.o b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_putchar.o new file mode 100644 index 0000000..efee823 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_putchar.o Binary files differ diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_putstr.d b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_putstr.d new file mode 100644 index 0000000..3cf528a --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_putstr.d @@ -0,0 +1,10 @@ +obj/HAL/src/alt_putstr.o: HAL/src/alt_putstr.c system.h linker.h \ + HAL/inc/sys/alt_driver.h HAL/inc/sys/alt_stdio.h + +system.h: + +linker.h: + +HAL/inc/sys/alt_driver.h: + +HAL/inc/sys/alt_stdio.h: diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_putstr.o b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_putstr.o new file mode 100644 index 0000000..a57d33f --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_putstr.o Binary files differ diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_read.d b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_read.d new file mode 100644 index 0000000..2bb0d95 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_read.d @@ -0,0 +1,38 @@ +obj/HAL/src/alt_read.o: HAL/src/alt_read.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h HAL/inc/priv/alt_file.h \ + HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h \ + HAL/inc/os/alt_syscall.h system.h HAL/inc/sys/alt_driver.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_syscall.h: + +system.h: + +HAL/inc/sys/alt_driver.h: diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_read.o b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_read.o new file mode 100644 index 0000000..92b6c7a --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_read.o Binary files differ diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_release_fd.d b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_release_fd.d new file mode 100644 index 0000000..0e3acb5 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_release_fd.d @@ -0,0 +1,29 @@ +obj/HAL/src/alt_release_fd.o: HAL/src/alt_release_fd.c \ + HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h HAL/inc/priv/alt_file.h \ + HAL/inc/sys/alt_dev.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_release_fd.o b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_release_fd.o new file mode 100644 index 0000000..9062f1a --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_release_fd.o Binary files differ diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_remap_cached.d b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_remap_cached.d new file mode 100644 index 0000000..b5fb151 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_remap_cached.d @@ -0,0 +1,10 @@ +obj/HAL/src/alt_remap_cached.o: HAL/src/alt_remap_cached.c \ + HAL/inc/sys/alt_cache.h HAL/inc/alt_types.h system.h linker.h + +HAL/inc/sys/alt_cache.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_remap_cached.o b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_remap_cached.o new file mode 100644 index 0000000..143aa76 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_remap_cached.o Binary files differ diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_remap_uncached.d b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_remap_uncached.d new file mode 100644 index 0000000..0423405 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_remap_uncached.d @@ -0,0 +1,10 @@ +obj/HAL/src/alt_remap_uncached.o: HAL/src/alt_remap_uncached.c \ + HAL/inc/sys/alt_cache.h HAL/inc/alt_types.h system.h linker.h + +HAL/inc/sys/alt_cache.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_remap_uncached.o b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_remap_uncached.o new file mode 100644 index 0000000..1186b98 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_remap_uncached.o Binary files differ diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_rename.d b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_rename.d new file mode 100644 index 0000000..b7af4b2 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_rename.d @@ -0,0 +1,10 @@ +obj/HAL/src/alt_rename.o: HAL/src/alt_rename.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_rename.o b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_rename.o new file mode 100644 index 0000000..5b3cb63 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_rename.o Binary files differ diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_sbrk.d b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_sbrk.d new file mode 100644 index 0000000..a0771ae --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_sbrk.d @@ -0,0 +1,19 @@ +obj/HAL/src/alt_sbrk.o: HAL/src/alt_sbrk.c HAL/inc/os/alt_syscall.h \ + HAL/inc/sys/alt_irq.h HAL/inc/nios2.h HAL/inc/alt_types.h system.h \ + linker.h HAL/inc/sys/alt_stack.h system.h + +HAL/inc/os/alt_syscall.h: + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_stack.h: + +system.h: diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_sbrk.o b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_sbrk.o new file mode 100644 index 0000000..83e996c --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_sbrk.o Binary files differ diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_settod.d b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_settod.d new file mode 100644 index 0000000..56718d5 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_settod.d @@ -0,0 +1,17 @@ +obj/HAL/src/alt_settod.o: HAL/src/alt_settod.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_alarm.h HAL/inc/alt_types.h HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_settod.o b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_settod.o new file mode 100644 index 0000000..4c10348 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_settod.o Binary files differ diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_software_exception.d b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_software_exception.d new file mode 100644 index 0000000..fab4023 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_software_exception.d @@ -0,0 +1,6 @@ +obj/HAL/src/alt_software_exception.o: HAL/src/alt_software_exception.S \ + system.h linker.h + +system.h: + +linker.h: diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_software_exception.o b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_software_exception.o new file mode 100644 index 0000000..f9e01c2 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_software_exception.o Binary files differ diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_stat.d b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_stat.d new file mode 100644 index 0000000..8a63c27 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_stat.d @@ -0,0 +1,3 @@ +obj/HAL/src/alt_stat.o: HAL/src/alt_stat.c HAL/inc/os/alt_syscall.h + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_stat.o b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_stat.o new file mode 100644 index 0000000..213187c --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_stat.o Binary files differ diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_tick.d b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_tick.d new file mode 100644 index 0000000..ddbb281 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_tick.d @@ -0,0 +1,27 @@ +obj/HAL/src/alt_tick.o: HAL/src/alt_tick.c HAL/inc/sys/alt_irq.h \ + HAL/inc/nios2.h HAL/inc/alt_types.h system.h linker.h \ + HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_alarm.h HAL/inc/alt_types.h HAL/inc/os/alt_hooks.h \ + HAL/inc/alt_types.h + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_hooks.h: + +HAL/inc/alt_types.h: diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_tick.o b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_tick.o new file mode 100644 index 0000000..a2829cd --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_tick.o Binary files differ diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_times.d b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_times.d new file mode 100644 index 0000000..4bad83d --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_times.d @@ -0,0 +1,17 @@ +obj/HAL/src/alt_times.o: HAL/src/alt_times.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_alarm.h HAL/inc/alt_types.h HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_times.o b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_times.o new file mode 100644 index 0000000..5a8f119 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_times.o Binary files differ diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_uncached_free.d b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_uncached_free.d new file mode 100644 index 0000000..d74ef4b --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_uncached_free.d @@ -0,0 +1,10 @@ +obj/HAL/src/alt_uncached_free.o: HAL/src/alt_uncached_free.c \ + HAL/inc/sys/alt_cache.h HAL/inc/alt_types.h system.h linker.h + +HAL/inc/sys/alt_cache.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_uncached_free.o b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_uncached_free.o new file mode 100644 index 0000000..c5899eb --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_uncached_free.o Binary files differ diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_uncached_malloc.d b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_uncached_malloc.d new file mode 100644 index 0000000..16799fb --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_uncached_malloc.d @@ -0,0 +1,10 @@ +obj/HAL/src/alt_uncached_malloc.o: HAL/src/alt_uncached_malloc.c \ + HAL/inc/sys/alt_cache.h HAL/inc/alt_types.h system.h linker.h + +HAL/inc/sys/alt_cache.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_uncached_malloc.o b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_uncached_malloc.o new file mode 100644 index 0000000..b875695 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_uncached_malloc.o Binary files differ diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_unlink.d b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_unlink.d new file mode 100644 index 0000000..0205f86 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_unlink.d @@ -0,0 +1,10 @@ +obj/HAL/src/alt_unlink.o: HAL/src/alt_unlink.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_unlink.o b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_unlink.o new file mode 100644 index 0000000..69af5c6 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_unlink.o Binary files differ diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_usleep.d b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_usleep.d new file mode 100644 index 0000000..b5eca45 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_usleep.d @@ -0,0 +1,6 @@ +obj/HAL/src/alt_usleep.o: HAL/src/alt_usleep.c \ + HAL/inc/priv/alt_busy_sleep.h HAL/inc/os/alt_syscall.h + +HAL/inc/priv/alt_busy_sleep.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_usleep.o b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_usleep.o new file mode 100644 index 0000000..fdae7c8 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_usleep.o Binary files differ diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_wait.d b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_wait.d new file mode 100644 index 0000000..f47f5df --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_wait.d @@ -0,0 +1,8 @@ +obj/HAL/src/alt_wait.o: HAL/src/alt_wait.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_wait.o b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_wait.o new file mode 100644 index 0000000..2aa48cb --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_wait.o Binary files differ diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_write.d b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_write.d new file mode 100644 index 0000000..2b54a68 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_write.d @@ -0,0 +1,41 @@ +obj/HAL/src/alt_write.o: HAL/src/alt_write.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h HAL/inc/priv/alt_file.h \ + HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h \ + HAL/inc/os/alt_syscall.h HAL/inc/sys/alt_log_printf.h system.h \ + HAL/inc/sys/alt_driver.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_syscall.h: + +HAL/inc/sys/alt_log_printf.h: + +system.h: + +HAL/inc/sys/alt_driver.h: diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_write.o b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_write.o new file mode 100644 index 0000000..f600fbd --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/alt_write.o Binary files differ diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/altera_nios2_qsys_irq.d b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/altera_nios2_qsys_irq.d new file mode 100644 index 0000000..47bdd9c --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/altera_nios2_qsys_irq.d @@ -0,0 +1,15 @@ +obj/HAL/src/altera_nios2_qsys_irq.o: HAL/src/altera_nios2_qsys_irq.c \ + HAL/inc/sys/alt_irq.h HAL/inc/nios2.h HAL/inc/alt_types.h system.h \ + linker.h HAL/inc/altera_nios2_qsys_irq.h + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: + +HAL/inc/altera_nios2_qsys_irq.h: diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/altera_nios2_qsys_irq.o b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/altera_nios2_qsys_irq.o new file mode 100644 index 0000000..e9741aa --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/altera_nios2_qsys_irq.o Binary files differ diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/crt0.d b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/crt0.d new file mode 100644 index 0000000..3af0bb0 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/crt0.d @@ -0,0 +1,12 @@ +obj/HAL/src/crt0.o: HAL/src/crt0.S system.h linker.h HAL/inc/nios2.h \ + HAL/inc/sys/alt_log_printf.h system.h + +system.h: + +linker.h: + +HAL/inc/nios2.h: + +HAL/inc/sys/alt_log_printf.h: + +system.h: diff --git a/software/qsys_tutorial_hexs_bsp/obj/HAL/src/crt0.o b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/crt0.o new file mode 100644 index 0000000..3209774 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/HAL/src/crt0.o Binary files differ diff --git a/software/qsys_tutorial_hexs_bsp/obj/alt_sys_init.d b/software/qsys_tutorial_hexs_bsp/obj/alt_sys_init.d new file mode 100644 index 0000000..2087a7a --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/alt_sys_init.d @@ -0,0 +1,54 @@ +obj/alt_sys_init.o: alt_sys_init.c system.h linker.h \ + HAL/inc/sys/alt_irq.h HAL/inc/nios2.h HAL/inc/alt_types.h system.h \ + HAL/inc/sys/alt_sys_init.h HAL/inc/altera_nios2_qsys_irq.h \ + drivers/inc/altera_avalon_jtag_uart.h HAL/inc/sys/alt_alarm.h \ + HAL/inc/sys/alt_llist.h HAL/inc/priv/alt_alarm.h HAL/inc/alt_types.h \ + HAL/inc/sys/alt_warning.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h HAL/inc/os/alt_flag.h \ + drivers/inc/altera_avalon_jtag_uart_fd.h HAL/inc/sys/alt_dev.h \ + HAL/inc/sys/alt_llist.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h + +system.h: + +linker.h: + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +HAL/inc/sys/alt_sys_init.h: + +HAL/inc/altera_nios2_qsys_irq.h: + +drivers/inc/altera_avalon_jtag_uart.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_flag.h: + +drivers/inc/altera_avalon_jtag_uart_fd.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: diff --git a/software/qsys_tutorial_hexs_bsp/obj/alt_sys_init.o b/software/qsys_tutorial_hexs_bsp/obj/alt_sys_init.o new file mode 100644 index 0000000..ca64d1b --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/alt_sys_init.o Binary files differ diff --git a/software/qsys_tutorial_hexs_bsp/obj/drivers/src/altera_avalon_jtag_uart_fd.d b/software/qsys_tutorial_hexs_bsp/obj/drivers/src/altera_avalon_jtag_uart_fd.d new file mode 100644 index 0000000..b152697 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/drivers/src/altera_avalon_jtag_uart_fd.d @@ -0,0 +1,48 @@ +obj/drivers/src/altera_avalon_jtag_uart_fd.o: \ + drivers/src/altera_avalon_jtag_uart_fd.c HAL/inc/alt_types.h \ + HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ + drivers/inc/altera_avalon_jtag_uart.h HAL/inc/sys/alt_alarm.h \ + HAL/inc/sys/alt_llist.h HAL/inc/priv/alt_alarm.h \ + HAL/inc/sys/alt_warning.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h HAL/inc/os/alt_flag.h \ + drivers/inc/altera_avalon_jtag_uart_fd.h HAL/inc/sys/alt_dev.h + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +drivers/inc/altera_avalon_jtag_uart.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_flag.h: + +drivers/inc/altera_avalon_jtag_uart_fd.h: + +HAL/inc/sys/alt_dev.h: diff --git a/software/qsys_tutorial_hexs_bsp/obj/drivers/src/altera_avalon_jtag_uart_fd.o b/software/qsys_tutorial_hexs_bsp/obj/drivers/src/altera_avalon_jtag_uart_fd.o new file mode 100644 index 0000000..30b326f --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/drivers/src/altera_avalon_jtag_uart_fd.o Binary files differ diff --git a/software/qsys_tutorial_hexs_bsp/obj/drivers/src/altera_avalon_jtag_uart_init.d b/software/qsys_tutorial_hexs_bsp/obj/drivers/src/altera_avalon_jtag_uart_init.d new file mode 100644 index 0000000..f9460a1 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/drivers/src/altera_avalon_jtag_uart_init.d @@ -0,0 +1,66 @@ +obj/drivers/src/altera_avalon_jtag_uart_init.o: \ + drivers/src/altera_avalon_jtag_uart_init.c HAL/inc/sys/alt_irq.h \ + HAL/inc/nios2.h HAL/inc/alt_types.h system.h linker.h \ + HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_alarm.h HAL/inc/alt_types.h HAL/inc/sys/ioctl.h \ + HAL/inc/alt_types.h drivers/inc/altera_avalon_jtag_uart_regs.h \ + HAL/inc/io.h HAL/inc/alt_types.h drivers/inc/altera_avalon_jtag_uart.h \ + HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_warning.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h HAL/inc/os/alt_flag.h \ + drivers/inc/altera_avalon_jtag_uart_fd.h HAL/inc/sys/alt_dev.h \ + HAL/inc/sys/alt_llist.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h HAL/inc/sys/alt_log_printf.h system.h + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/ioctl.h: + +HAL/inc/alt_types.h: + +drivers/inc/altera_avalon_jtag_uart_regs.h: + +HAL/inc/io.h: + +HAL/inc/alt_types.h: + +drivers/inc/altera_avalon_jtag_uart.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_flag.h: + +drivers/inc/altera_avalon_jtag_uart_fd.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/sys/alt_log_printf.h: + +system.h: diff --git a/software/qsys_tutorial_hexs_bsp/obj/drivers/src/altera_avalon_jtag_uart_init.o b/software/qsys_tutorial_hexs_bsp/obj/drivers/src/altera_avalon_jtag_uart_init.o new file mode 100644 index 0000000..55224f0 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/drivers/src/altera_avalon_jtag_uart_init.o Binary files differ diff --git a/software/qsys_tutorial_hexs_bsp/obj/drivers/src/altera_avalon_jtag_uart_ioctl.d b/software/qsys_tutorial_hexs_bsp/obj/drivers/src/altera_avalon_jtag_uart_ioctl.d new file mode 100644 index 0000000..d75a559 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/drivers/src/altera_avalon_jtag_uart_ioctl.d @@ -0,0 +1,58 @@ +obj/drivers/src/altera_avalon_jtag_uart_ioctl.o: \ + drivers/src/altera_avalon_jtag_uart_ioctl.c HAL/inc/sys/ioctl.h \ + HAL/inc/alt_types.h drivers/inc/altera_avalon_jtag_uart_regs.h \ + HAL/inc/io.h HAL/inc/alt_types.h drivers/inc/altera_avalon_jtag_uart.h \ + HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ + HAL/inc/priv/alt_alarm.h HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h \ + HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h HAL/inc/os/alt_flag.h \ + drivers/inc/altera_avalon_jtag_uart_fd.h HAL/inc/sys/alt_dev.h system.h \ + linker.h HAL/inc/sys/alt_llist.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h HAL/inc/sys/alt_log_printf.h system.h + +HAL/inc/sys/ioctl.h: + +HAL/inc/alt_types.h: + +drivers/inc/altera_avalon_jtag_uart_regs.h: + +HAL/inc/io.h: + +HAL/inc/alt_types.h: + +drivers/inc/altera_avalon_jtag_uart.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_flag.h: + +drivers/inc/altera_avalon_jtag_uart_fd.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/sys/alt_log_printf.h: + +system.h: diff --git a/software/qsys_tutorial_hexs_bsp/obj/drivers/src/altera_avalon_jtag_uart_ioctl.o b/software/qsys_tutorial_hexs_bsp/obj/drivers/src/altera_avalon_jtag_uart_ioctl.o new file mode 100644 index 0000000..fa7a713 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/drivers/src/altera_avalon_jtag_uart_ioctl.o Binary files differ diff --git a/software/qsys_tutorial_hexs_bsp/obj/drivers/src/altera_avalon_jtag_uart_read.d b/software/qsys_tutorial_hexs_bsp/obj/drivers/src/altera_avalon_jtag_uart_read.d new file mode 100644 index 0000000..9a4846a --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/drivers/src/altera_avalon_jtag_uart_read.d @@ -0,0 +1,66 @@ +obj/drivers/src/altera_avalon_jtag_uart_read.o: \ + drivers/src/altera_avalon_jtag_uart_read.c HAL/inc/sys/alt_irq.h \ + HAL/inc/nios2.h HAL/inc/alt_types.h system.h linker.h \ + HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_alarm.h HAL/inc/alt_types.h HAL/inc/sys/ioctl.h \ + HAL/inc/alt_types.h drivers/inc/altera_avalon_jtag_uart_regs.h \ + HAL/inc/io.h HAL/inc/alt_types.h drivers/inc/altera_avalon_jtag_uart.h \ + HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_warning.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h HAL/inc/os/alt_flag.h \ + drivers/inc/altera_avalon_jtag_uart_fd.h HAL/inc/sys/alt_dev.h \ + HAL/inc/sys/alt_llist.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h HAL/inc/sys/alt_log_printf.h system.h + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/ioctl.h: + +HAL/inc/alt_types.h: + +drivers/inc/altera_avalon_jtag_uart_regs.h: + +HAL/inc/io.h: + +HAL/inc/alt_types.h: + +drivers/inc/altera_avalon_jtag_uart.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_flag.h: + +drivers/inc/altera_avalon_jtag_uart_fd.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/sys/alt_log_printf.h: + +system.h: diff --git a/software/qsys_tutorial_hexs_bsp/obj/drivers/src/altera_avalon_jtag_uart_read.o b/software/qsys_tutorial_hexs_bsp/obj/drivers/src/altera_avalon_jtag_uart_read.o new file mode 100644 index 0000000..37ac844 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/drivers/src/altera_avalon_jtag_uart_read.o Binary files differ diff --git a/software/qsys_tutorial_hexs_bsp/obj/drivers/src/altera_avalon_jtag_uart_write.d b/software/qsys_tutorial_hexs_bsp/obj/drivers/src/altera_avalon_jtag_uart_write.d new file mode 100644 index 0000000..5518b7f --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/drivers/src/altera_avalon_jtag_uart_write.d @@ -0,0 +1,66 @@ +obj/drivers/src/altera_avalon_jtag_uart_write.o: \ + drivers/src/altera_avalon_jtag_uart_write.c HAL/inc/sys/alt_irq.h \ + HAL/inc/nios2.h HAL/inc/alt_types.h system.h linker.h \ + HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_alarm.h HAL/inc/alt_types.h HAL/inc/sys/ioctl.h \ + HAL/inc/alt_types.h drivers/inc/altera_avalon_jtag_uart_regs.h \ + HAL/inc/io.h HAL/inc/alt_types.h drivers/inc/altera_avalon_jtag_uart.h \ + HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_warning.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h HAL/inc/os/alt_flag.h \ + drivers/inc/altera_avalon_jtag_uart_fd.h HAL/inc/sys/alt_dev.h \ + HAL/inc/sys/alt_llist.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h HAL/inc/sys/alt_log_printf.h system.h + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/ioctl.h: + +HAL/inc/alt_types.h: + +drivers/inc/altera_avalon_jtag_uart_regs.h: + +HAL/inc/io.h: + +HAL/inc/alt_types.h: + +drivers/inc/altera_avalon_jtag_uart.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_flag.h: + +drivers/inc/altera_avalon_jtag_uart_fd.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/sys/alt_log_printf.h: + +system.h: diff --git a/software/qsys_tutorial_hexs_bsp/obj/drivers/src/altera_avalon_jtag_uart_write.o b/software/qsys_tutorial_hexs_bsp/obj/drivers/src/altera_avalon_jtag_uart_write.o new file mode 100644 index 0000000..544fdbb --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/obj/drivers/src/altera_avalon_jtag_uart_write.o Binary files differ diff --git a/software/qsys_tutorial_hexs_bsp/public.mk b/software/qsys_tutorial_hexs_bsp/public.mk new file mode 100644 index 0000000..5eb883d --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/public.mk @@ -0,0 +1,385 @@ +#------------------------------------------------------------------------------ +# BSP "PUBLIC" MAKEFILE CONTENT +# +# This file is intended to be included in an application or library +# Makefile that is using this BSP. You can create such a Makefile with +# the nios2-app-generate-makefile or nios2-lib-generate-makefile +# commands. +# +# The following variables must be defined before including this file: +# +# ALT_LIBRARY_ROOT_DIR +# Contains the path to the BSP top-level (aka root) directory +#------------------------------------------------------------------------------ + +#------------------------------------------------------------------------------ +# PATHS +#------------------------------------------------------------------------------ + + + +# Path to the provided linker script. +BSP_LINKER_SCRIPT := $(ALT_LIBRARY_ROOT_DIR)/linker.x + +# Include paths: +# The path to root of all header files that a library wishes to make +# available for an application's use is specified here. Note that this +# may not be *all* folders within a hierarchy. For example, if it is +# desired that the application developer type: +# #include +# #include +# With files laid out like this: +# /inc/sockets.h +# /inc/ip/tcpip.h +# +# Then, only /inc need be added to the list of include +# directories. Alternatively, if you wish to be able to directly include +# all files in a hierarchy, separate paths to each folder in that +# hierarchy must be defined. + +# The following are the "base" set of include paths for a BSP. +# These paths are appended to the list that individual software +# components, drivers, etc., add in the generated portion of this +# file (below). +ALT_INCLUDE_DIRS_TO_APPEND += \ + $(ALT_LIBRARY_ROOT_DIR) \ + $(ALT_LIBRARY_ROOT_DIR)/drivers/inc + +# Additions to linker library search-path: +# Here we provide a path to "our self" for the application to construct a +# "-L " out of. This should contain a list of directories, +# relative to the library root, of all directories with .a files to link +# against. +ALT_LIBRARY_DIRS += $(ALT_LIBRARY_ROOT_DIR) + + +#------------------------------------------------------------------------------ +# COMPILATION FLAGS +#------------------------------------------------------------------------------ +# Default C pre-processor flags for a BSP: +ALT_CPPFLAGS += -DSYSTEM_BUS_WIDTH=32 \ + -pipe + + +#------------------------------------------------------------------------------ +# MANAGED CONTENT +# +# All content between the lines "START MANAGED" and "END MANAGED" below is +# generated based on variables in the BSP settings file when the +# nios2-bsp-generate-files command is invoked. If you wish to persist any +# information pertaining to the build process, it is recomended that you +# utilize the BSP settings mechanism to do so. +#------------------------------------------------------------------------------ +#START MANAGED + +# The following TYPE comment allows tools to identify the 'type' of target this +# makefile is associated with. +# TYPE: BSP_PUBLIC_MAKEFILE + +# This following VERSION comment indicates the version of the tool used to +# generate this makefile. A makefile variable is provided for VERSION as well. +# ACDS_VERSION: 13.0sp1 +ACDS_VERSION := 13.0sp1 + +# This following BUILD_NUMBER comment indicates the build number of the tool +# used to generate this makefile. +# BUILD_NUMBER: 232 + +# Qsys--generated SOPCINFO file. Required for resolving node instance ID's with +# design component names. +SOPCINFO_FILE := C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.sopcinfo + +# Big-Endian operation. +# setting BIG_ENDIAN is false +ALT_CFLAGS += -EL + +# Path to the provided C language runtime initialization code. +BSP_CRT0 := $(ALT_LIBRARY_ROOT_DIR)/obj/HAL/src/crt0.o + +# Name of BSP library as provided to linker using the "-msys-lib" flag or +# linker script GROUP command. +# setting BSP_SYS_LIB is hal_bsp +BSP_SYS_LIB := hal_bsp +ELF_PATCH_FLAG += --thread_model hal + +# Type identifier of the BSP library +# setting BSP_TYPE is hal +ALT_CPPFLAGS += -D__hal__ +BSP_TYPE := hal + +# CPU Name +# setting CPU_NAME is nios2_processor +CPU_NAME = nios2_processor +ELF_PATCH_FLAG += --cpu_name $(CPU_NAME) + +# Hardware Divider present. +# setting HARDWARE_DIVIDE is false +ALT_CFLAGS += -mno-hw-div + +# Hardware Multiplier present. +# setting HARDWARE_MULTIPLY is false +ALT_CFLAGS += -mno-hw-mul + +# Hardware Mulx present. +# setting HARDWARE_MULX is false +ALT_CFLAGS += -mno-hw-mulx + +# Debug Core present. +# setting HAS_DEBUG_CORE is true +CPU_HAS_DEBUG_CORE = 1 + +# Qsys generated design +# setting QSYS is 1 +QSYS := 1 +ELF_PATCH_FLAG += --qsys true + +# Design Name +# setting SOPC_NAME is nios_system +SOPC_NAME := nios_system + +# SopcBuilder Simulation Enabled +# setting SOPC_SIMULATION_ENABLED is false +ELF_PATCH_FLAG += --simulation_enabled false + +# Enable JTAG UART driver to recover when host is inactive causing buffer to +# full without returning error. Printf will not fail with this recovery. none +# setting altera_avalon_jtag_uart_driver.enable_jtag_uart_ignore_fifo_full_error is false + +# Small-footprint (polled mode) driver none +# setting altera_avalon_jtag_uart_driver.enable_small_driver is false + +# Build a custom version of newlib with the specified space-separated compiler +# flags. The custom newlib build will be placed in the <bsp root>/newlib +# directory, and will be used only for applications that utilize this BSP. +# setting hal.custom_newlib_flags is none + +# Enable support for a subset of the C++ language. This option increases code +# footprint by adding support for C++ constructors. Certain features, such as +# multiple inheritance and exceptions are not supported. If false, adds +# -DALT_NO_C_PLUS_PLUS to ALT_CPPFLAGS in public.mk, and reduces code +# footprint. none +# setting hal.enable_c_plus_plus is false +ALT_CPPFLAGS += -DALT_NO_C_PLUS_PLUS + +# When your application exits, close file descriptors, call C++ destructors, +# etc. Code footprint can be reduced by disabling clean exit. If disabled, adds +# -DALT_NO_CLEAN_EXIT to ALT_CPPFLAGS and -Wl,--defsym, exit=_exit to +# ALT_LDFLAGS in public.mk. none +# setting hal.enable_clean_exit is false +ALT_CPPFLAGS += -DALT_NO_CLEAN_EXIT +ALT_LDFLAGS += -Wl,--defsym,exit=_exit + +# Add exit() support. This option increases code footprint if your "main()" +# routine does "return" or call "exit()". If false, adds -DALT_NO_EXIT to +# ALT_CPPFLAGS in public.mk, and reduces footprint none +# setting hal.enable_exit is false +ALT_CPPFLAGS += -DALT_NO_EXIT + +# Causes code to be compiled with gprof profiling enabled and the application +# ELF to be linked with the GPROF library. If true, adds -DALT_PROVIDE_GMON to +# ALT_CPPFLAGS and -pg to ALT_CFLAGS in public.mk. none +# setting hal.enable_gprof is false + +# Enables lightweight device driver API. This reduces code and data footprint +# by removing the HAL layer that maps device names (e.g. /dev/uart0) to file +# descriptors. Instead, driver routines are called directly. The open(), +# close(), and lseek() routines will always fail if called. The read(), +# write(), fstat(), ioctl(), and isatty() routines only work for the stdio +# devices. If true, adds -DALT_USE_DIRECT_DRIVERS to ALT_CPPFLAGS in public.mk. +# The Altera Host and read-only ZIP file systems can't be used if +# hal.enable_lightweight_device_driver_api is true. +# setting hal.enable_lightweight_device_driver_api is true +ALT_CPPFLAGS += -DALT_USE_DIRECT_DRIVERS + +# Adds code to emulate multiply and divide instructions in case they are +# executed but aren't present in the CPU. Normally this isn't required because +# the compiler won't use multiply and divide instructions that aren't present +# in the CPU. If false, adds -DALT_NO_INSTRUCTION_EMULATION to ALT_CPPFLAGS in +# public.mk. none +# setting hal.enable_mul_div_emulation is false +ALT_CPPFLAGS += -DALT_NO_INSTRUCTION_EMULATION + +# Certain drivers are compiled with reduced functionality to reduce code +# footprint. Not all drivers observe this setting. The altera_avalon_uart and +# altera_avalon_jtag_uart drivers switch from interrupt-driven to polled +# operation. CAUTION: Several device drivers are disabled entirely. These +# include the altera_avalon_cfi_flash, altera_avalon_epcs_flash_controller, and +# altera_avalon_lcd_16207 drivers. This can result in certain API (HAL flash +# access routines) to fail. You can define a symbol provided by each driver to +# prevent it from being removed. If true, adds -DALT_USE_SMALL_DRIVERS to +# ALT_CPPFLAGS in public.mk. none +# setting hal.enable_reduced_device_drivers is true +ALT_CPPFLAGS += -DALT_USE_SMALL_DRIVERS + +# Turns on HAL runtime stack checking feature. Enabling this setting causes +# additional code to be placed into each subroutine call to generate an +# exception if a stack collision occurs with the heap or statically allocated +# data. If true, adds -DALT_STACK_CHECK and -mstack-check to ALT_CPPFLAGS in +# public.mk. none +# setting hal.enable_runtime_stack_checking is false + +# The BSP is compiled with optimizations to speedup HDL simulation such as +# initializing the cache, clearing the .bss section, and skipping long delay +# loops. If true, adds -DALT_SIM_OPTIMIZE to ALT_CPPFLAGS in public.mk. When +# this setting is true, the BSP shouldn't be used to build applications that +# are expected to run real hardware. +# setting hal.enable_sim_optimize is false + +# Causes the small newlib (C library) to be used. This reduces code and data +# footprint at the expense of reduced functionality. Several newlib features +# are removed such as floating-point support in printf(), stdin input routines, +# and buffered I/O. The small C library is not compatible with Micrium +# MicroC/OS-II. If true, adds -msmallc to ALT_LDFLAGS in public.mk. none +# setting hal.enable_small_c_library is true +ALT_LDFLAGS += -msmallc +ALT_CPPFLAGS += -DSMALL_C_LIB + +# Enable SOPC Builder System ID. If a System ID SOPC Builder component is +# connected to the CPU associated with this BSP, it will be enabled in the +# creation of command-line arguments to download an ELF to the target. +# Otherwise, system ID and timestamp values are left out of public.mk for +# application Makefile "download-elf" target definition. With the system ID +# check disabled, the Nios II EDS tools will not automatically ensure that the +# application .elf file (and BSP it is linked against) corresponds to the +# hardware design on the target. If false, adds --accept-bad-sysid to +# SOPC_SYSID_FLAG in public.mk. none +# setting hal.enable_sopc_sysid_check is true + +# Enable BSP generation to query if SOPC system is big endian. If true ignores +# export of 'ALT_CFLAGS += -EB' to public.mk if big endian system. If true +# ignores export of 'ALT_CFLAGS += -EL' if little endian system. none +# setting hal.make.ignore_system_derived.big_endian is false + +# Enable BSP generation to query if SOPC system has a debug core present. If +# true ignores export of 'CPU_HAS_DEBUG_CORE = 1' to public.mk if a debug core +# is found in the system. If true ignores export of 'CPU_HAS_DEBUG_CORE = 0' if +# no debug core is found in the system. none +# setting hal.make.ignore_system_derived.debug_core_present is false + +# Enable BSP generation to query if SOPC system has FPU present. If true +# ignores export of 'ALT_CFLAGS += -mhard-float' to public.mk if FPU is found +# in the system. If true ignores export of 'ALT_CFLAGS += -mhard-soft' if FPU +# is not found in the system. none +# setting hal.make.ignore_system_derived.fpu_present is false + +# Enable BSP generation to query if SOPC system has hardware divide present. If +# true ignores export of 'ALT_CFLAGS += -mno-hw-div' to public.mk if no +# division is found in system. If true ignores export of 'ALT_CFLAGS += +# -mhw-div' if division is found in the system. none +# setting hal.make.ignore_system_derived.hardware_divide_present is false + +# Enable BSP generation to query if SOPC system floating point custom +# instruction with a divider is present. If true ignores export of 'ALT_CFLAGS +# += -mcustom-fpu-cfg=60-2' and 'ALT_LDFLAGS += -mcustom-fpu-cfg=60-2' to +# public.mk if the custom instruction is found in the system. none +# setting hal.make.ignore_system_derived.hardware_fp_cust_inst_divider_present is false + +# Enable BSP generation to query if SOPC system floating point custom +# instruction without a divider is present. If true ignores export of +# 'ALT_CFLAGS += -mcustom-fpu-cfg=60-1' and 'ALT_LDFLAGS += +# -mcustom-fpu-cfg=60-1' to public.mk if the custom instruction is found in the +# system. none +# setting hal.make.ignore_system_derived.hardware_fp_cust_inst_no_divider_present is false + +# Enable BSP generation to query if SOPC system has multiplier present. If true +# ignores export of 'ALT_CFLAGS += -mno-hw-mul' to public.mk if no multiplier +# is found in the system. If true ignores export of 'ALT_CFLAGS += -mhw-mul' if +# multiplier is found in the system. none +# setting hal.make.ignore_system_derived.hardware_multiplier_present is false + +# Enable BSP generation to query if SOPC system has hardware mulx present. If +# true ignores export of 'ALT_CFLAGS += -mno-hw-mulx' to public.mk if no mulx +# is found in the system. If true ignores export of 'ALT_CFLAGS += -mhw-mulx' +# if mulx is found in the system. none +# setting hal.make.ignore_system_derived.hardware_mulx_present is false + +# Enable BSP generation to query if SOPC system has simulation enabled. If true +# ignores export of 'ELF_PATCH_FLAG += --simulation_enabled' to public.mk. none +# setting hal.make.ignore_system_derived.sopc_simulation_enabled is false + +# Enable BSP generation to query SOPC system for system ID base address. If +# true ignores export of 'SOPC_SYSID_FLAG += --sidp=
' and +# 'ELF_PATCH_FLAG += --sidp=
' to public.mk. none +# setting hal.make.ignore_system_derived.sopc_system_base_address is false + +# Enable BSP generation to query SOPC system for system ID. If true ignores +# export of 'SOPC_SYSID_FLAG += --id=' and 'ELF_PATCH_FLAG += +# --id=' to public.mk. none +# setting hal.make.ignore_system_derived.sopc_system_id is false + +# Enable BSP generation to query SOPC system for system timestamp. If true +# ignores export of 'SOPC_SYSID_FLAG += --timestamp=' and +# 'ELF_PATCH_FLAG += --timestamp=' to public.mk. none +# setting hal.make.ignore_system_derived.sopc_system_timestamp is false + +# Slave descriptor of STDERR character-mode device. This setting is used by the +# ALT_STDERR family of defines in system.h. none +# setting hal.stderr is jtag_uart +ELF_PATCH_FLAG += --stderr_dev jtag_uart + +# Slave descriptor of STDIN character-mode device. This setting is used by the +# ALT_STDIN family of defines in system.h. none +# setting hal.stdin is jtag_uart +ELF_PATCH_FLAG += --stdin_dev jtag_uart + +# Slave descriptor of STDOUT character-mode device. This setting is used by the +# ALT_STDOUT family of defines in system.h. none +# setting hal.stdout is jtag_uart +ELF_PATCH_FLAG += --stdout_dev jtag_uart + + +#------------------------------------------------------------------------------ +# SOFTWARE COMPONENT & DRIVER INCLUDE PATHS +#------------------------------------------------------------------------------ + +ALT_INCLUDE_DIRS += $(ALT_LIBRARY_ROOT_DIR)/HAL/inc + +#------------------------------------------------------------------------------ +# SOFTWARE COMPONENT & DRIVER PRODUCED ALT_CPPFLAGS ADDITIONS +#------------------------------------------------------------------------------ + +ALT_CPPFLAGS += -DALT_SINGLE_THREADED + +#END MANAGED + + +#------------------------------------------------------------------------------ +# LIBRARY INFORMATION +#------------------------------------------------------------------------------ +# Assemble the name of the BSP *.a file using the BSP library name +# (BSP_SYS_LIB) in generated content above. +BSP_LIB := lib$(BSP_SYS_LIB).a + +# Additional libraries to link against: +# An application including this file will prefix each library with "-l". +# For example, to include the Newlib math library "m" is included, which +# becomes "-lm" when linking the application. +ALT_LIBRARY_NAMES += m + +# Additions to linker dependencies: +# An application Makefile will typically add these directly to the list +# of dependencies required to build the executable target(s). The BSP +# library (*.a) file is specified here. +ALT_LDDEPS += $(ALT_LIBRARY_ROOT_DIR)/$(BSP_LIB) + +# Is this library "Makeable"? +# Add to list of root library directories that support running 'make' +# to build them. Because libraries may or may not have a Makefile in their +# root, appending to this variable tells an application to run 'make' in +# the library root to build/update this library. +MAKEABLE_LIBRARY_ROOT_DIRS += $(ALT_LIBRARY_ROOT_DIR) + +# Additional Assembler Flags +# -gdwarf2 flag is required for stepping through assembly code +ALT_ASFLAGS += -gdwarf2 + +#------------------------------------------------------------------------------ +# FINAL INCLUDE PATH LIST +#------------------------------------------------------------------------------ +# Append static include paths to paths specified by OS/driver/sw package +# additions to the BSP thus giving them precedence in case a BSP addition +# is attempting to override BSP sources. +ALT_INCLUDE_DIRS += $(ALT_INCLUDE_DIRS_TO_APPEND) + + + diff --git a/software/qsys_tutorial_hexs_bsp/settings.bsp b/software/qsys_tutorial_hexs_bsp/settings.bsp new file mode 100644 index 0000000..cf46c41 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/settings.bsp @@ -0,0 +1,973 @@ + + + hal + default + 2016/11/17 9:38:42 + 1479343122799 + C:\Users\takayun\Documents\DE2-115\qsys_tutorial\software\qsys_tutorial_hexs_bsp + .\settings.bsp + C:\Users\takayun\Documents\DE2-115\qsys_tutorial\nios_system.sopcinfo + default + nios2_processor + 1.9 + + hal.sys_clk_timer + ALT_SYS_CLK + UnquotedString + none + none + system_h_define + Slave descriptor of the system clock timer device. This device provides a periodic interrupt ("tick") and is typically required for RTOS use. This setting defines the value of ALT_SYS_CLK in system.h. + none + false + common + + + hal.timestamp_timer + ALT_TIMESTAMP_CLK + UnquotedString + none + none + system_h_define + Slave descriptor of timestamp timer device. This device is used by Altera HAL timestamp drivers for high-resolution time measurement. This setting defines the value of ALT_TIMESTAMP_CLK in system.h. + none + false + common + + + hal.max_file_descriptors + ALT_MAX_FD + DecimalNumber + 4 + 32 + system_h_define + Determines the number of file descriptors statically allocated. This setting defines the value of ALT_MAX_FD in system.h. + If hal.enable_lightweight_device_driver_api is true, there are no file descriptors so this setting is ignored. If hal.enable_lightweight_device_driver_api is false, this setting must be at least 4 because HAL needs a file descriptor for /dev/null, /dev/stdin, /dev/stdout, and /dev/stderr. + false + + + + hal.enable_instruction_related_exceptions_api + ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API + BooleanDefineOnly + false + false + system_h_define + Enables API for registering handlers to service instruction-related exceptions. Enabling this setting increases the size of the exception entry code. + These exception types can be generated if various processor options are enabled, such as the MMU, MPU, or other advanced exception types. + false + + + + hal.linker.allow_code_at_reset + ALT_ALLOW_CODE_AT_RESET + Boolean + 1 + 0 + none + Indicates if initialization code is allowed at the reset address. If true, defines the macro ALT_ALLOW_CODE_AT_RESET in linker.h. + If true, defines the macro ALT_ALLOW_CODE_AT_RESET in linker.h. This setting is typically false if an external bootloader (e.g. flash bootloader) is present. + false + + + + hal.linker.enable_alt_load + NONE + Boolean + 1 + 0 + none + Enables the alt_load() facility. The alt_load() facility copies sections from the .text memory into RAM. If true, this setting sets up the VMA/LMA of sections in linker.x to allow them to be loaded into the .text memory. + This setting is typically false if an external bootloader (e.g. flash bootloader) is present. + false + + + + hal.linker.enable_alt_load_copy_rodata + NONE + Boolean + 0 + 0 + none + Causes the alt_load() facility to copy the .rodata section. If true, this setting defines the macro ALT_LOAD_COPY_RODATA in linker.h. + none + false + + + + hal.linker.enable_alt_load_copy_rwdata + NONE + Boolean + 1 + 0 + none + Causes the alt_load() facility to copy the .rwdata section. If true, this setting defines the macro ALT_LOAD_COPY_RWDATA in linker.h. + none + false + + + + hal.linker.enable_alt_load_copy_exceptions + NONE + Boolean + 0 + 0 + none + Causes the alt_load() facility to copy the .exceptions section. If true, this setting defines the macro ALT_LOAD_COPY_EXCEPTIONS in linker.h. + none + false + + + + hal.linker.enable_exception_stack + NONE + Boolean + 0 + 0 + none + Enables use of a separate exception stack. If true, defines the macro ALT_EXCEPTION_STACK in linker.h, adds a memory region called exception_stack to linker.x, and provides the symbols __alt_exception_stack_pointer and __alt_exception_stack_limit in linker.x. + The hal.linker.exception_stack_size and hal.linker.exception_stack_memory_region_name settings must also be valid. This setting must be false for MicroC/OS-II BSPs. The exception stack can be used to improve interrupt and other exception performance if the EIC is *not* used. + false + common + + + hal.linker.exception_stack_size + NONE + DecimalNumber + 1024 + 1024 + none + Size of the exception stack in bytes. + Only used if hal.linker.enable_exception_stack is true. + false + common + + + hal.linker.exception_stack_memory_region_name + NONE + UnquotedString + onchip_memory + none + none + Name of the existing memory region that will be divided up to create the 'exception_stack' memory region. The selected region name will be adjusted automatically when the BSP is generated to create the 'exception_stack' memory region. + Only used if hal.linker.enable_exception_stack is true. + false + common + + + hal.linker.enable_interrupt_stack + NONE + Boolean + 0 + 0 + none + Enables use of a separate interrupt stack. If true, defines the macro ALT_INTERRUPT_STACK in linker.h, adds a memory region called interrupt_stack to linker.x, and provides the symbols __alt_interrupt_stack_pointer and __alt_interrupt_stack_limit in linker.x. + The hal.linker.interrupt_stack_size and hal.linker.interrupt_stack_memory_region_name settings must also be valid. This setting must be false for MicroC/OS-II BSPs. Only enable if the EIC is used exclusively. The exception stack can be used to improve interrupt and other exception performance if the EIC is *not* used. + false + common + + + hal.linker.interrupt_stack_size + NONE + DecimalNumber + 1024 + 1024 + none + Size of the interrupt stack in bytes. + Only used if hal.linker.enable_interrupt_stack is true. + false + common + + + hal.linker.interrupt_stack_memory_region_name + NONE + UnquotedString + onchip_memory + none + none + Name of the existing memory region that will be divided up to create the 'interrupt_stack' memory region. The selected region name will be adjusted automatically when the BSP is generated to create the 'interrupt_stack' memory region. + Only used if hal.linker.enable_interrupt_stack is true. + false + common + + + hal.stdin + NONE + UnquotedString + jtag_uart + none + system_h_define + Slave descriptor of STDIN character-mode device. This setting is used by the ALT_STDIN family of defines in system.h. + none + false + common + + + hal.stdout + NONE + UnquotedString + jtag_uart + none + system_h_define + Slave descriptor of STDOUT character-mode device. This setting is used by the ALT_STDOUT family of defines in system.h. + none + false + common + + + hal.stderr + NONE + UnquotedString + jtag_uart + none + system_h_define + Slave descriptor of STDERR character-mode device. This setting is used by the ALT_STDERR family of defines in system.h. + none + false + common + + + hal.log_port + NONE + UnquotedString + none + none + public_mk_define + Slave descriptor of debug logging character-mode device. If defined, it enables extra debug messages in the HAL source. This setting is used by the ALT_LOG_PORT family of defines in system.h. + none + false + none + + + hal.make.build_pre_process + BUILD_PRE_PROCESS + UnquotedString + none + none + makefile_variable + Command executed before BSP built. + none + false + none + + + hal.make.ar_pre_process + AR_PRE_PROCESS + UnquotedString + none + none + makefile_variable + Command executed before archiver execution. + none + false + none + + + hal.make.bsp_cflags_defined_symbols + BSP_CFLAGS_DEFINED_SYMBOLS + UnquotedString + none + none + makefile_variable + Preprocessor macros to define. A macro definition in this setting has the same effect as a "#define" in source code. Adding "-DALT_DEBUG" to this setting has the same effect as "#define ALT_DEBUG" in a souce file. Adding "-DFOO=1" to this setting is equivalent to the macro "#define FOO 1" in a source file. Macros defined with this setting are applied to all .S, .c, and C++ files in the BSP. This setting defines the value of BSP_CFLAGS_DEFINED_SYMBOLS in the BSP Makefile. + none + false + none + + + hal.make.ar_post_process + AR_POST_PROCESS + UnquotedString + none + none + makefile_variable + Command executed after archiver execution. + none + false + none + + + hal.make.as + AS + UnquotedString + nios2-elf-gcc + nios2-elf-gcc + makefile_variable + Assembler command. Note that CC is used for .S files. + none + false + none + + + hal.make.build_post_process + BUILD_POST_PROCESS + UnquotedString + none + none + makefile_variable + Command executed after BSP built. + none + false + none + + + hal.make.bsp_cflags_debug + BSP_CFLAGS_DEBUG + UnquotedString + -g + -g + makefile_variable + C/C++ compiler debug level. '-g' provides the default set of debug symbols typically required to debug a typical application. Omitting '-g' removes debug symbols from the ELF. This setting defines the value of BSP_CFLAGS_DEBUG in Makefile. + none + false + common + + + hal.make.ar + AR + UnquotedString + nios2-elf-ar + nios2-elf-ar + makefile_variable + Archiver command. Creates library files. + none + false + none + + + hal.make.rm + RM + UnquotedString + rm -f + rm -f + makefile_variable + Command used to remove files during 'clean' target. + none + false + none + + + hal.make.cxx_pre_process + CXX_PRE_PROCESS + UnquotedString + none + none + makefile_variable + Command executed before each C++ file is compiled. + none + false + none + + + hal.make.bsp_cflags_warnings + BSP_CFLAGS_WARNINGS + UnquotedString + -Wall + -Wall + makefile_variable + C/C++ compiler warning level. "-Wall" is commonly used.This setting defines the value of BSP_CFLAGS_WARNINGS in Makefile. + none + false + none + + + hal.make.bsp_arflags + BSP_ARFLAGS + UnquotedString + -src + -src + makefile_variable + Custom flags only passed to the archiver. This content of this variable is directly passed to the archiver rather than the more standard "ARFLAGS". The reason for this is that GNU Make assumes some default content in ARFLAGS. This setting defines the value of BSP_ARFLAGS in Makefile. + none + false + none + + + hal.make.bsp_cflags_optimization + BSP_CFLAGS_OPTIMIZATION + UnquotedString + '-Os' + -O0 + makefile_variable + C/C++ compiler optimization level. "-O0" = no optimization,"-O2" = "normal" optimization, etc. "-O0" is recommended for code that you want to debug since compiler optimization can remove variables and produce non-sequential execution of code while debugging. This setting defines the value of BSP_CFLAGS_OPTIMIZATION in Makefile. + none + false + common + + + hal.make.as_post_process + AS_POST_PROCESS + UnquotedString + none + none + makefile_variable + Command executed after each assembly file is compiled. + none + false + none + + + hal.make.cc_pre_process + CC_PRE_PROCESS + UnquotedString + none + none + makefile_variable + Command executed before each .c/.S file is compiled. + none + false + none + + + hal.make.bsp_asflags + BSP_ASFLAGS + UnquotedString + -Wa,-gdwarf2 + -Wa,-gdwarf2 + makefile_variable + Custom flags only passed to the assembler. This setting defines the value of BSP_ASFLAGS in Makefile. + none + false + none + + + hal.make.as_pre_process + AS_PRE_PROCESS + UnquotedString + none + none + makefile_variable + Command executed before each assembly file is compiled. + none + false + none + + + hal.make.bsp_cflags_undefined_symbols + BSP_CFLAGS_UNDEFINED_SYMBOLS + UnquotedString + none + none + makefile_variable + Preprocessor macros to undefine. Undefined macros are similar to defined macros, but replicate the "#undef" directive in source code. To undefine the macro FOO use the syntax "-u FOO" in this setting. This is equivalent to "#undef FOO" in a source file. Note: the syntax differs from macro definition (there is a space, i.e. "-u FOO" versus "-DFOO"). Macros defined with this setting are applied to all .S, .c, and C++ files in the BSP. This setting defines the value of BSP_CFLAGS_UNDEFINED_SYMBOLS in the BSP Makefile. + none + false + none + + + hal.make.cc_post_process + CC_POST_PROCESS + UnquotedString + none + none + makefile_variable + Command executed after each .c/.S file is compiled. + none + false + none + + + hal.make.cxx_post_process + CXX_POST_PROCESS + UnquotedString + none + none + makefile_variable + Command executed before each C++ file is compiled. + none + false + none + + + hal.make.cc + CC + UnquotedString + nios2-elf-gcc -xc + nios2-elf-gcc -xc + makefile_variable + C compiler command. + none + false + none + + + hal.make.bsp_cxx_flags + BSP_CXXFLAGS + UnquotedString + none + none + makefile_variable + Custom flags only passed to the C++ compiler. This setting defines the value of BSP_CXXFLAGS in Makefile. + none + false + none + + + hal.make.bsp_inc_dirs + BSP_INC_DIRS + UnquotedString + none + none + makefile_variable + Space separated list of extra include directories to scan for header files. Directories are relative to the top-level BSP directory. The -I prefix's added by the makefile so don't add it here. This setting defines the value of BSP_INC_DIRS in Makefile. + none + false + none + + + hal.make.cxx + CXX + UnquotedString + nios2-elf-gcc -xc++ + nios2-elf-gcc -xc++ + makefile_variable + C++ compiler command. + none + false + none + + + hal.make.bsp_cflags_user_flags + BSP_CFLAGS_USER_FLAGS + UnquotedString + none + none + makefile_variable + Custom flags passed to the compiler when compiling C, C++, and .S files. This setting defines the value of BSP_CFLAGS_USER_FLAGS in Makefile. + none + false + none + + + hal.make.ignore_system_derived.sopc_system_id + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query SOPC system for system ID. If true ignores export of 'SOPC_SYSID_FLAG += --id=<sysid>' and 'ELF_PATCH_FLAG += --id=<sysid>' to public.mk. + none + false + none + + + hal.make.ignore_system_derived.sopc_system_timestamp + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query SOPC system for system timestamp. If true ignores export of 'SOPC_SYSID_FLAG += --timestamp=<timestamp>' and 'ELF_PATCH_FLAG += --timestamp=<timestamp>' to public.mk. + none + false + none + + + hal.make.ignore_system_derived.sopc_system_base_address + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query SOPC system for system ID base address. If true ignores export of 'SOPC_SYSID_FLAG += --sidp=<address>' and 'ELF_PATCH_FLAG += --sidp=<address>' to public.mk. + none + false + none + + + hal.make.ignore_system_derived.sopc_simulation_enabled + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query if SOPC system has simulation enabled. If true ignores export of 'ELF_PATCH_FLAG += --simulation_enabled' to public.mk. + none + false + none + + + hal.make.ignore_system_derived.fpu_present + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query if SOPC system has FPU present. If true ignores export of 'ALT_CFLAGS += -mhard-float' to public.mk if FPU is found in the system. If true ignores export of 'ALT_CFLAGS += -mhard-soft' if FPU is not found in the system. + none + false + none + + + hal.make.ignore_system_derived.hardware_multiplier_present + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query if SOPC system has multiplier present. If true ignores export of 'ALT_CFLAGS += -mno-hw-mul' to public.mk if no multiplier is found in the system. If true ignores export of 'ALT_CFLAGS += -mhw-mul' if multiplier is found in the system. + none + false + none + + + hal.make.ignore_system_derived.hardware_mulx_present + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query if SOPC system has hardware mulx present. If true ignores export of 'ALT_CFLAGS += -mno-hw-mulx' to public.mk if no mulx is found in the system. If true ignores export of 'ALT_CFLAGS += -mhw-mulx' if mulx is found in the system. + none + false + none + + + hal.make.ignore_system_derived.hardware_divide_present + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query if SOPC system has hardware divide present. If true ignores export of 'ALT_CFLAGS += -mno-hw-div' to public.mk if no division is found in system. If true ignores export of 'ALT_CFLAGS += -mhw-div' if division is found in the system. + none + false + none + + + hal.make.ignore_system_derived.debug_core_present + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query if SOPC system has a debug core present. If true ignores export of 'CPU_HAS_DEBUG_CORE = 1' to public.mk if a debug core is found in the system. If true ignores export of 'CPU_HAS_DEBUG_CORE = 0' if no debug core is found in the system. + none + false + none + + + hal.make.ignore_system_derived.big_endian + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query if SOPC system is big endian. If true ignores export of 'ALT_CFLAGS += -EB' to public.mk if big endian system. If true ignores export of 'ALT_CFLAGS += -EL' if little endian system. + none + false + none + + + hal.make.ignore_system_derived.hardware_fp_cust_inst_divider_present + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query if SOPC system floating point custom instruction with a divider is present. If true ignores export of 'ALT_CFLAGS += -mcustom-fpu-cfg=60-2' and 'ALT_LDFLAGS += -mcustom-fpu-cfg=60-2' to public.mk if the custom instruction is found in the system. + none + false + none + + + hal.make.ignore_system_derived.hardware_fp_cust_inst_no_divider_present + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query if SOPC system floating point custom instruction without a divider is present. If true ignores export of 'ALT_CFLAGS += -mcustom-fpu-cfg=60-1' and 'ALT_LDFLAGS += -mcustom-fpu-cfg=60-1' to public.mk if the custom instruction is found in the system. + none + false + none + + + hal.enable_exit + ALT_NO_EXIT + Boolean + 0 + 1 + public_mk_define + Add exit() support. This option increases code footprint if your "main()" routine does "return" or call "exit()". If false, adds -DALT_NO_EXIT to ALT_CPPFLAGS in public.mk, and reduces footprint + none + false + none + + + hal.enable_small_c_library + NONE + Boolean + 1 + 0 + public_mk_define + Causes the small newlib (C library) to be used. This reduces code and data footprint at the expense of reduced functionality. Several newlib features are removed such as floating-point support in printf(), stdin input routines, and buffered I/O. The small C library is not compatible with Micrium MicroC/OS-II. If true, adds -msmallc to ALT_LDFLAGS in public.mk. + none + false + common + + + hal.enable_clean_exit + ALT_NO_CLEAN_EXIT + Boolean + 0 + 1 + public_mk_define + When your application exits, close file descriptors, call C++ destructors, etc. Code footprint can be reduced by disabling clean exit. If disabled, adds -DALT_NO_CLEAN_EXIT to ALT_CPPFLAGS and -Wl,--defsym, exit=_exit to ALT_LDFLAGS in public.mk. + none + false + none + + + hal.enable_runtime_stack_checking + ALT_STACK_CHECK + Boolean + 0 + 0 + public_mk_define + Turns on HAL runtime stack checking feature. Enabling this setting causes additional code to be placed into each subroutine call to generate an exception if a stack collision occurs with the heap or statically allocated data. If true, adds -DALT_STACK_CHECK and -mstack-check to ALT_CPPFLAGS in public.mk. + none + false + none + + + hal.enable_gprof + ALT_PROVIDE_GMON + Boolean + 0 + 0 + public_mk_define + Causes code to be compiled with gprof profiling enabled and the application ELF to be linked with the GPROF library. If true, adds -DALT_PROVIDE_GMON to ALT_CPPFLAGS and -pg to ALT_CFLAGS in public.mk. + none + false + common + + + hal.enable_c_plus_plus + ALT_NO_C_PLUS_PLUS + Boolean + 0 + 1 + public_mk_define + Enable support for a subset of the C++ language. This option increases code footprint by adding support for C++ constructors. Certain features, such as multiple inheritance and exceptions are not supported. If false, adds -DALT_NO_C_PLUS_PLUS to ALT_CPPFLAGS in public.mk, and reduces code footprint. + none + false + none + + + hal.enable_reduced_device_drivers + ALT_USE_SMALL_DRIVERS + Boolean + 1 + 0 + public_mk_define + Certain drivers are compiled with reduced functionality to reduce code footprint. Not all drivers observe this setting. The altera_avalon_uart and altera_avalon_jtag_uart drivers switch from interrupt-driven to polled operation. CAUTION: Several device drivers are disabled entirely. These include the altera_avalon_cfi_flash, altera_avalon_epcs_flash_controller, and altera_avalon_lcd_16207 drivers. This can result in certain API (HAL flash access routines) to fail. You can define a symbol provided by each driver to prevent it from being removed. If true, adds -DALT_USE_SMALL_DRIVERS to ALT_CPPFLAGS in public.mk. + none + false + common + + + hal.enable_lightweight_device_driver_api + ALT_USE_DIRECT_DRIVERS + Boolean + 1 + 0 + public_mk_define + Enables lightweight device driver API. This reduces code and data footprint by removing the HAL layer that maps device names (e.g. /dev/uart0) to file descriptors. Instead, driver routines are called directly. The open(), close(), and lseek() routines will always fail if called. The read(), write(), fstat(), ioctl(), and isatty() routines only work for the stdio devices. If true, adds -DALT_USE_DIRECT_DRIVERS to ALT_CPPFLAGS in public.mk. + The Altera Host and read-only ZIP file systems can't be used if hal.enable_lightweight_device_driver_api is true. + false + none + + + hal.enable_mul_div_emulation + ALT_NO_INSTRUCTION_EMULATION + Boolean + 0 + 0 + public_mk_define + Adds code to emulate multiply and divide instructions in case they are executed but aren't present in the CPU. Normally this isn't required because the compiler won't use multiply and divide instructions that aren't present in the CPU. If false, adds -DALT_NO_INSTRUCTION_EMULATION to ALT_CPPFLAGS in public.mk. + none + false + none + + + hal.enable_sim_optimize + ALT_SIM_OPTIMIZE + Boolean + 0 + 0 + public_mk_define + The BSP is compiled with optimizations to speedup HDL simulation such as initializing the cache, clearing the .bss section, and skipping long delay loops. If true, adds -DALT_SIM_OPTIMIZE to ALT_CPPFLAGS in public.mk. + When this setting is true, the BSP shouldn't be used to build applications that are expected to run real hardware. + false + common + + + hal.enable_sopc_sysid_check + NONE + Boolean + 1 + 1 + public_mk_define + Enable SOPC Builder System ID. If a System ID SOPC Builder component is connected to the CPU associated with this BSP, it will be enabled in the creation of command-line arguments to download an ELF to the target. Otherwise, system ID and timestamp values are left out of public.mk for application Makefile "download-elf" target definition. With the system ID check disabled, the Nios II EDS tools will not automatically ensure that the application .elf file (and BSP it is linked against) corresponds to the hardware design on the target. If false, adds --accept-bad-sysid to SOPC_SYSID_FLAG in public.mk. + none + false + none + + + hal.custom_newlib_flags + CUSTOM_NEWLIB_FLAGS + UnquotedString + none + none + public_mk_define + Build a custom version of newlib with the specified space-separated compiler flags. + The custom newlib build will be placed in the &lt;bsp root>/newlib directory, and will be used only for applications that utilize this BSP. + false + none + + + hal.log_flags + ALT_LOG_FLAGS + DecimalNumber + 0 + 0 + public_mk_define + The value is assigned to ALT_LOG_FLAGS in the generated public.mk. See hal.log_port setting description. Values can be -1 through 3. + hal.log_port must be set for this to be used. + false + none + + + altera_avalon_jtag_uart_driver.enable_small_driver + ALTERA_AVALON_JTAG_UART_SMALL + BooleanDefineOnly + false + false + public_mk_define + Small-footprint (polled mode) driver + none + false + + + + altera_avalon_jtag_uart_driver.enable_jtag_uart_ignore_fifo_full_error + ALTERA_AVALON_JTAG_UART_IGNORE_FIFO_FULL_ERROR + BooleanDefineOnly + false + false + public_mk_define + Enable JTAG UART driver to recover when host is inactive causing buffer to full without returning error. Printf will not fail with this recovery. + none + false + + + + onchip_memory + 0x00000000 - 0x00000FFF + 4096 + memory + + + pio_0 + 0x00002000 - 0x0000200F + 16 + + + + hex6 + 0x00002010 - 0x0000201F + 16 + + + + hex5 + 0x00002020 - 0x0000202F + 16 + + + + hex4 + 0x00002030 - 0x0000203F + 16 + + + + hex3 + 0x00002040 - 0x0000204F + 16 + + + + hex2 + 0x00002050 - 0x0000205F + 16 + + + + hex1 + 0x00002060 - 0x0000206F + 16 + + + + hex0 + 0x00002070 - 0x0000207F + 16 + + + + push_switches + 0x00002080 - 0x0000208F + 16 + + + + switches + 0x00002090 - 0x0000209F + 16 + + + + LEDRs + 0x000020A0 - 0x000020AF + 16 + + + + LEDs + 0x000020B0 - 0x000020BF + 16 + + + + jtag_uart + 0x000020C0 - 0x000020C7 + 8 + printable + + + .text + onchip_memory + + + .rodata + onchip_memory + + + .rwdata + onchip_memory + + + .bss + onchip_memory + + + .heap + onchip_memory + + + .stack + onchip_memory + + \ No newline at end of file diff --git a/software/qsys_tutorial_hexs_bsp/summary.html b/software/qsys_tutorial_hexs_bsp/summary.html new file mode 100644 index 0000000..e8198e5 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/summary.html @@ -0,0 +1,2038 @@ + +Altera Nios II BSP Summary + +

BSP Description

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
BSP Type:hal
SOPC Design File:C:\Users\takayun\Documents\DE2-115\qsys_tutorial\nios_system.sopcinfo
Quartus JDI File:default
CPU:nios2_processor
BSP Settings File:.\settings.bsp
BSP Version:default
BSP Generated On:2016/11/17 9:38:42
BSP Generated Timestamp:1479343122799
BSP Generated Location:C:\Users\takayun\Documents\DE2-115\qsys_tutorial\software\qsys_tutorial_hexs_bsp
+
+

Nios II Memory Map

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Slave DescriptorAddress RangeSizeAttributes
jtag_uart0x000020C0 - 0x000020C78printable
LEDs0x000020B0 - 0x000020BF16 
LEDRs0x000020A0 - 0x000020AF16 
switches0x00002090 - 0x0000209F16 
push_switches0x00002080 - 0x0000208F16 
hex00x00002070 - 0x0000207F16 
hex10x00002060 - 0x0000206F16 
hex20x00002050 - 0x0000205F16 
hex30x00002040 - 0x0000204F16 
hex40x00002030 - 0x0000203F16 
hex50x00002020 - 0x0000202F16 
hex60x00002010 - 0x0000201F16 
pio_00x00002000 - 0x0000200F16 
onchip_memory0x00000000 - 0x00000FFF4096memory
+
+
+

Linker Regions

+ + + + +
RegionAddress RangeSizeMemoryOffset
+
+
+

Linker Section Mappings

+ + + + + + + + + + + + + + + + + + + + + + +
SectionRegion
.textonchip_memory
.rodataonchip_memory
.rwdataonchip_memory
.bssonchip_memory
.heaponchip_memory
.stackonchip_memory
+

Settings

+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:altera_avalon_jtag_uart_driver.enable_jtag_uart_ignore_fifo_full_error
Identifier:ALTERA_AVALON_JTAG_UART_IGNORE_FIFO_FULL_ERROR
Default Value:false
Value:false
Type:BooleanDefineOnly
Destination:public_mk_define
Description:Enable JTAG UART driver to recover when host is inactive causing buffer to full without returning error. Printf will not fail with this recovery.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:altera_avalon_jtag_uart_driver.enable_small_driver
Identifier:ALTERA_AVALON_JTAG_UART_SMALL
Default Value:false
Value:false
Type:BooleanDefineOnly
Destination:public_mk_define
Description:Small-footprint (polled mode) driver
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.custom_newlib_flags
Identifier:CUSTOM_NEWLIB_FLAGS
Default Value:none
Value:none
Type:UnquotedString
Destination:public_mk_define
Description:Build a custom version of newlib with the specified space-separated compiler flags.
Restrictions:The custom newlib build will be placed in the &lt;bsp root>/newlib directory, and will be used only for applications that utilize this BSP.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_c_plus_plus
Identifier:ALT_NO_C_PLUS_PLUS
Default Value:1
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable support for a subset of the C++ language. This option increases code footprint by adding support for C++ constructors. Certain features, such as multiple inheritance and exceptions are not supported. If false, adds -DALT_NO_C_PLUS_PLUS to ALT_CPPFLAGS in public.mk, and reduces code footprint.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_clean_exit
Identifier:ALT_NO_CLEAN_EXIT
Default Value:1
Value:0
Type:Boolean
Destination:public_mk_define
Description:When your application exits, close file descriptors, call C++ destructors, etc. Code footprint can be reduced by disabling clean exit. If disabled, adds -DALT_NO_CLEAN_EXIT to ALT_CPPFLAGS and -Wl,--defsym, exit=_exit to ALT_LDFLAGS in public.mk.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_exit
Identifier:ALT_NO_EXIT
Default Value:1
Value:0
Type:Boolean
Destination:public_mk_define
Description:Add exit() support. This option increases code footprint if your "main()" routine does "return" or call "exit()". If false, adds -DALT_NO_EXIT to ALT_CPPFLAGS in public.mk, and reduces footprint
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_gprof
Identifier:ALT_PROVIDE_GMON
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Causes code to be compiled with gprof profiling enabled and the application ELF to be linked with the GPROF library. If true, adds -DALT_PROVIDE_GMON to ALT_CPPFLAGS and -pg to ALT_CFLAGS in public.mk.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_instruction_related_exceptions_api
Identifier:ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API
Default Value:false
Value:false
Type:BooleanDefineOnly
Destination:system_h_define
Description:Enables API for registering handlers to service instruction-related exceptions. Enabling this setting increases the size of the exception entry code.
Restrictions:These exception types can be generated if various processor options are enabled, such as the MMU, MPU, or other advanced exception types.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_lightweight_device_driver_api
Identifier:ALT_USE_DIRECT_DRIVERS
Default Value:0
Value:1
Type:Boolean
Destination:public_mk_define
Description:Enables lightweight device driver API. This reduces code and data footprint by removing the HAL layer that maps device names (e.g. /dev/uart0) to file descriptors. Instead, driver routines are called directly. The open(), close(), and lseek() routines will always fail if called. The read(), write(), fstat(), ioctl(), and isatty() routines only work for the stdio devices. If true, adds -DALT_USE_DIRECT_DRIVERS to ALT_CPPFLAGS in public.mk.
Restrictions:The Altera Host and read-only ZIP file systems can't be used if hal.enable_lightweight_device_driver_api is true.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_mul_div_emulation
Identifier:ALT_NO_INSTRUCTION_EMULATION
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Adds code to emulate multiply and divide instructions in case they are executed but aren't present in the CPU. Normally this isn't required because the compiler won't use multiply and divide instructions that aren't present in the CPU. If false, adds -DALT_NO_INSTRUCTION_EMULATION to ALT_CPPFLAGS in public.mk.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_reduced_device_drivers
Identifier:ALT_USE_SMALL_DRIVERS
Default Value:0
Value:1
Type:Boolean
Destination:public_mk_define
Description:Certain drivers are compiled with reduced functionality to reduce code footprint. Not all drivers observe this setting. The altera_avalon_uart and altera_avalon_jtag_uart drivers switch from interrupt-driven to polled operation. CAUTION: Several device drivers are disabled entirely. These include the altera_avalon_cfi_flash, altera_avalon_epcs_flash_controller, and altera_avalon_lcd_16207 drivers. This can result in certain API (HAL flash access routines) to fail. You can define a symbol provided by each driver to prevent it from being removed. If true, adds -DALT_USE_SMALL_DRIVERS to ALT_CPPFLAGS in public.mk.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_runtime_stack_checking
Identifier:ALT_STACK_CHECK
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Turns on HAL runtime stack checking feature. Enabling this setting causes additional code to be placed into each subroutine call to generate an exception if a stack collision occurs with the heap or statically allocated data. If true, adds -DALT_STACK_CHECK and -mstack-check to ALT_CPPFLAGS in public.mk.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_sim_optimize
Identifier:ALT_SIM_OPTIMIZE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:The BSP is compiled with optimizations to speedup HDL simulation such as initializing the cache, clearing the .bss section, and skipping long delay loops. If true, adds -DALT_SIM_OPTIMIZE to ALT_CPPFLAGS in public.mk.
Restrictions:When this setting is true, the BSP shouldn't be used to build applications that are expected to run real hardware.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_small_c_library
Identifier:NONE
Default Value:0
Value:1
Type:Boolean
Destination:public_mk_define
Description:Causes the small newlib (C library) to be used. This reduces code and data footprint at the expense of reduced functionality. Several newlib features are removed such as floating-point support in printf(), stdin input routines, and buffered I/O. The small C library is not compatible with Micrium MicroC/OS-II. If true, adds -msmallc to ALT_LDFLAGS in public.mk.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_sopc_sysid_check
Identifier:NONE
Default Value:1
Value:1
Type:Boolean
Destination:public_mk_define
Description:Enable SOPC Builder System ID. If a System ID SOPC Builder component is connected to the CPU associated with this BSP, it will be enabled in the creation of command-line arguments to download an ELF to the target. Otherwise, system ID and timestamp values are left out of public.mk for application Makefile "download-elf" target definition. With the system ID check disabled, the Nios II EDS tools will not automatically ensure that the application .elf file (and BSP it is linked against) corresponds to the hardware design on the target. If false, adds --accept-bad-sysid to SOPC_SYSID_FLAG in public.mk.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.linker.allow_code_at_reset
Identifier:ALT_ALLOW_CODE_AT_RESET
Default Value:0
Value:1
Type:Boolean
Destination:none
Description:Indicates if initialization code is allowed at the reset address. If true, defines the macro ALT_ALLOW_CODE_AT_RESET in linker.h.
Restrictions:If true, defines the macro ALT_ALLOW_CODE_AT_RESET in linker.h. This setting is typically false if an external bootloader (e.g. flash bootloader) is present.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.linker.enable_alt_load
Identifier:NONE
Default Value:0
Value:1
Type:Boolean
Destination:none
Description:Enables the alt_load() facility. The alt_load() facility copies sections from the .text memory into RAM. If true, this setting sets up the VMA/LMA of sections in linker.x to allow them to be loaded into the .text memory.
Restrictions:This setting is typically false if an external bootloader (e.g. flash bootloader) is present.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.linker.enable_alt_load_copy_exceptions
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:none
Description:Causes the alt_load() facility to copy the .exceptions section. If true, this setting defines the macro ALT_LOAD_COPY_EXCEPTIONS in linker.h.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.linker.enable_alt_load_copy_rodata
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:none
Description:Causes the alt_load() facility to copy the .rodata section. If true, this setting defines the macro ALT_LOAD_COPY_RODATA in linker.h.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.linker.enable_alt_load_copy_rwdata
Identifier:NONE
Default Value:0
Value:1
Type:Boolean
Destination:none
Description:Causes the alt_load() facility to copy the .rwdata section. If true, this setting defines the macro ALT_LOAD_COPY_RWDATA in linker.h.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.linker.enable_exception_stack
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:none
Description:Enables use of a separate exception stack. If true, defines the macro ALT_EXCEPTION_STACK in linker.h, adds a memory region called exception_stack to linker.x, and provides the symbols __alt_exception_stack_pointer and __alt_exception_stack_limit in linker.x.
Restrictions:The hal.linker.exception_stack_size and hal.linker.exception_stack_memory_region_name settings must also be valid. This setting must be false for MicroC/OS-II BSPs. The exception stack can be used to improve interrupt and other exception performance if the EIC is *not* used.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.linker.enable_interrupt_stack
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:none
Description:Enables use of a separate interrupt stack. If true, defines the macro ALT_INTERRUPT_STACK in linker.h, adds a memory region called interrupt_stack to linker.x, and provides the symbols __alt_interrupt_stack_pointer and __alt_interrupt_stack_limit in linker.x.
Restrictions:The hal.linker.interrupt_stack_size and hal.linker.interrupt_stack_memory_region_name settings must also be valid. This setting must be false for MicroC/OS-II BSPs. Only enable if the EIC is used exclusively. The exception stack can be used to improve interrupt and other exception performance if the EIC is *not* used.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.linker.exception_stack_memory_region_name
Identifier:NONE
Default Value:none
Value:onchip_memory
Type:UnquotedString
Destination:none
Description:Name of the existing memory region that will be divided up to create the 'exception_stack' memory region. The selected region name will be adjusted automatically when the BSP is generated to create the 'exception_stack' memory region.
Restrictions:Only used if hal.linker.enable_exception_stack is true.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.linker.exception_stack_size
Identifier:NONE
Default Value:1024
Value:1024
Type:DecimalNumber
Destination:none
Description:Size of the exception stack in bytes.
Restrictions:Only used if hal.linker.enable_exception_stack is true.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.linker.interrupt_stack_memory_region_name
Identifier:NONE
Default Value:none
Value:onchip_memory
Type:UnquotedString
Destination:none
Description:Name of the existing memory region that will be divided up to create the 'interrupt_stack' memory region. The selected region name will be adjusted automatically when the BSP is generated to create the 'interrupt_stack' memory region.
Restrictions:Only used if hal.linker.enable_interrupt_stack is true.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.linker.interrupt_stack_size
Identifier:NONE
Default Value:1024
Value:1024
Type:DecimalNumber
Destination:none
Description:Size of the interrupt stack in bytes.
Restrictions:Only used if hal.linker.enable_interrupt_stack is true.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.log_flags
Identifier:ALT_LOG_FLAGS
Default Value:0
Value:0
Type:DecimalNumber
Destination:public_mk_define
Description:The value is assigned to ALT_LOG_FLAGS in the generated public.mk. See hal.log_port setting description. Values can be -1 through 3.
Restrictions:hal.log_port must be set for this to be used.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.log_port
Identifier:NONE
Default Value:none
Value:none
Type:UnquotedString
Destination:public_mk_define
Description:Slave descriptor of debug logging character-mode device. If defined, it enables extra debug messages in the HAL source. This setting is used by the ALT_LOG_PORT family of defines in system.h.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ar
Identifier:AR
Default Value:nios2-elf-ar
Value:nios2-elf-ar
Type:UnquotedString
Destination:makefile_variable
Description:Archiver command. Creates library files.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ar_post_process
Identifier:AR_POST_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed after archiver execution.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ar_pre_process
Identifier:AR_PRE_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed before archiver execution.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.as
Identifier:AS
Default Value:nios2-elf-gcc
Value:nios2-elf-gcc
Type:UnquotedString
Destination:makefile_variable
Description:Assembler command. Note that CC is used for .S files.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.as_post_process
Identifier:AS_POST_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed after each assembly file is compiled.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.as_pre_process
Identifier:AS_PRE_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed before each assembly file is compiled.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.bsp_arflags
Identifier:BSP_ARFLAGS
Default Value:-src
Value:-src
Type:UnquotedString
Destination:makefile_variable
Description:Custom flags only passed to the archiver. This content of this variable is directly passed to the archiver rather than the more standard "ARFLAGS". The reason for this is that GNU Make assumes some default content in ARFLAGS. This setting defines the value of BSP_ARFLAGS in Makefile.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.bsp_asflags
Identifier:BSP_ASFLAGS
Default Value:-Wa,-gdwarf2
Value:-Wa,-gdwarf2
Type:UnquotedString
Destination:makefile_variable
Description:Custom flags only passed to the assembler. This setting defines the value of BSP_ASFLAGS in Makefile.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.bsp_cflags_debug
Identifier:BSP_CFLAGS_DEBUG
Default Value:-g
Value:-g
Type:UnquotedString
Destination:makefile_variable
Description:C/C++ compiler debug level. '-g' provides the default set of debug symbols typically required to debug a typical application. Omitting '-g' removes debug symbols from the ELF. This setting defines the value of BSP_CFLAGS_DEBUG in Makefile.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.bsp_cflags_defined_symbols
Identifier:BSP_CFLAGS_DEFINED_SYMBOLS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Preprocessor macros to define. A macro definition in this setting has the same effect as a "#define" in source code. Adding "-DALT_DEBUG" to this setting has the same effect as "#define ALT_DEBUG" in a souce file. Adding "-DFOO=1" to this setting is equivalent to the macro "#define FOO 1" in a source file. Macros defined with this setting are applied to all .S, .c, and C++ files in the BSP. This setting defines the value of BSP_CFLAGS_DEFINED_SYMBOLS in the BSP Makefile.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.bsp_cflags_optimization
Identifier:BSP_CFLAGS_OPTIMIZATION
Default Value:-O0
Value:'-Os'
Type:UnquotedString
Destination:makefile_variable
Description:C/C++ compiler optimization level. "-O0" = no optimization,"-O2" = "normal" optimization, etc. "-O0" is recommended for code that you want to debug since compiler optimization can remove variables and produce non-sequential execution of code while debugging. This setting defines the value of BSP_CFLAGS_OPTIMIZATION in Makefile.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.bsp_cflags_undefined_symbols
Identifier:BSP_CFLAGS_UNDEFINED_SYMBOLS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Preprocessor macros to undefine. Undefined macros are similar to defined macros, but replicate the "#undef" directive in source code. To undefine the macro FOO use the syntax "-u FOO" in this setting. This is equivalent to "#undef FOO" in a source file. Note: the syntax differs from macro definition (there is a space, i.e. "-u FOO" versus "-DFOO"). Macros defined with this setting are applied to all .S, .c, and C++ files in the BSP. This setting defines the value of BSP_CFLAGS_UNDEFINED_SYMBOLS in the BSP Makefile.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.bsp_cflags_user_flags
Identifier:BSP_CFLAGS_USER_FLAGS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Custom flags passed to the compiler when compiling C, C++, and .S files. This setting defines the value of BSP_CFLAGS_USER_FLAGS in Makefile.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.bsp_cflags_warnings
Identifier:BSP_CFLAGS_WARNINGS
Default Value:-Wall
Value:-Wall
Type:UnquotedString
Destination:makefile_variable
Description:C/C++ compiler warning level. "-Wall" is commonly used.This setting defines the value of BSP_CFLAGS_WARNINGS in Makefile.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.bsp_cxx_flags
Identifier:BSP_CXXFLAGS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Custom flags only passed to the C++ compiler. This setting defines the value of BSP_CXXFLAGS in Makefile.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.bsp_inc_dirs
Identifier:BSP_INC_DIRS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Space separated list of extra include directories to scan for header files. Directories are relative to the top-level BSP directory. The -I prefix's added by the makefile so don't add it here. This setting defines the value of BSP_INC_DIRS in Makefile.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.build_post_process
Identifier:BUILD_POST_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed after BSP built.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.build_pre_process
Identifier:BUILD_PRE_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed before BSP built.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.cc
Identifier:CC
Default Value:nios2-elf-gcc -xc
Value:nios2-elf-gcc -xc
Type:UnquotedString
Destination:makefile_variable
Description:C compiler command.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.cc_post_process
Identifier:CC_POST_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed after each .c/.S file is compiled.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.cc_pre_process
Identifier:CC_PRE_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed before each .c/.S file is compiled.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.cxx
Identifier:CXX
Default Value:nios2-elf-gcc -xc++
Value:nios2-elf-gcc -xc++
Type:UnquotedString
Destination:makefile_variable
Description:C++ compiler command.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.cxx_post_process
Identifier:CXX_POST_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed before each C++ file is compiled.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.cxx_pre_process
Identifier:CXX_PRE_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed before each C++ file is compiled.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.big_endian
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query if SOPC system is big endian. If true ignores export of 'ALT_CFLAGS += -EB' to public.mk if big endian system. If true ignores export of 'ALT_CFLAGS += -EL' if little endian system.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.debug_core_present
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query if SOPC system has a debug core present. If true ignores export of 'CPU_HAS_DEBUG_CORE = 1' to public.mk if a debug core is found in the system. If true ignores export of 'CPU_HAS_DEBUG_CORE = 0' if no debug core is found in the system.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.fpu_present
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query if SOPC system has FPU present. If true ignores export of 'ALT_CFLAGS += -mhard-float' to public.mk if FPU is found in the system. If true ignores export of 'ALT_CFLAGS += -mhard-soft' if FPU is not found in the system.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.hardware_divide_present
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query if SOPC system has hardware divide present. If true ignores export of 'ALT_CFLAGS += -mno-hw-div' to public.mk if no division is found in system. If true ignores export of 'ALT_CFLAGS += -mhw-div' if division is found in the system.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.hardware_fp_cust_inst_divider_present
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query if SOPC system floating point custom instruction with a divider is present. If true ignores export of 'ALT_CFLAGS += -mcustom-fpu-cfg=60-2' and 'ALT_LDFLAGS += -mcustom-fpu-cfg=60-2' to public.mk if the custom instruction is found in the system.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.hardware_fp_cust_inst_no_divider_present
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query if SOPC system floating point custom instruction without a divider is present. If true ignores export of 'ALT_CFLAGS += -mcustom-fpu-cfg=60-1' and 'ALT_LDFLAGS += -mcustom-fpu-cfg=60-1' to public.mk if the custom instruction is found in the system.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.hardware_multiplier_present
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query if SOPC system has multiplier present. If true ignores export of 'ALT_CFLAGS += -mno-hw-mul' to public.mk if no multiplier is found in the system. If true ignores export of 'ALT_CFLAGS += -mhw-mul' if multiplier is found in the system.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.hardware_mulx_present
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query if SOPC system has hardware mulx present. If true ignores export of 'ALT_CFLAGS += -mno-hw-mulx' to public.mk if no mulx is found in the system. If true ignores export of 'ALT_CFLAGS += -mhw-mulx' if mulx is found in the system.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.sopc_simulation_enabled
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query if SOPC system has simulation enabled. If true ignores export of 'ELF_PATCH_FLAG += --simulation_enabled' to public.mk.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.sopc_system_base_address
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query SOPC system for system ID base address. If true ignores export of 'SOPC_SYSID_FLAG += --sidp=<address>' and 'ELF_PATCH_FLAG += --sidp=<address>' to public.mk.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.sopc_system_id
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query SOPC system for system ID. If true ignores export of 'SOPC_SYSID_FLAG += --id=<sysid>' and 'ELF_PATCH_FLAG += --id=<sysid>' to public.mk.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.sopc_system_timestamp
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query SOPC system for system timestamp. If true ignores export of 'SOPC_SYSID_FLAG += --timestamp=<timestamp>' and 'ELF_PATCH_FLAG += --timestamp=<timestamp>' to public.mk.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.rm
Identifier:RM
Default Value:rm -f
Value:rm -f
Type:UnquotedString
Destination:makefile_variable
Description:Command used to remove files during 'clean' target.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.max_file_descriptors
Identifier:ALT_MAX_FD
Default Value:32
Value:4
Type:DecimalNumber
Destination:system_h_define
Description:Determines the number of file descriptors statically allocated. This setting defines the value of ALT_MAX_FD in system.h.
Restrictions:If hal.enable_lightweight_device_driver_api is true, there are no file descriptors so this setting is ignored. If hal.enable_lightweight_device_driver_api is false, this setting must be at least 4 because HAL needs a file descriptor for /dev/null, /dev/stdin, /dev/stdout, and /dev/stderr.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.stderr
Identifier:NONE
Default Value:none
Value:jtag_uart
Type:UnquotedString
Destination:system_h_define
Description:Slave descriptor of STDERR character-mode device. This setting is used by the ALT_STDERR family of defines in system.h.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.stdin
Identifier:NONE
Default Value:none
Value:jtag_uart
Type:UnquotedString
Destination:system_h_define
Description:Slave descriptor of STDIN character-mode device. This setting is used by the ALT_STDIN family of defines in system.h.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.stdout
Identifier:NONE
Default Value:none
Value:jtag_uart
Type:UnquotedString
Destination:system_h_define
Description:Slave descriptor of STDOUT character-mode device. This setting is used by the ALT_STDOUT family of defines in system.h.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.sys_clk_timer
Identifier:ALT_SYS_CLK
Default Value:none
Value:none
Type:UnquotedString
Destination:system_h_define
Description:Slave descriptor of the system clock timer device. This device provides a periodic interrupt ("tick") and is typically required for RTOS use. This setting defines the value of ALT_SYS_CLK in system.h.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.timestamp_timer
Identifier:ALT_TIMESTAMP_CLK
Default Value:none
Value:none
Type:UnquotedString
Destination:system_h_define
Description:Slave descriptor of timestamp timer device. This device is used by Altera HAL timestamp drivers for high-resolution time measurement. This setting defines the value of ALT_TIMESTAMP_CLK in system.h.
Restrictions:none
+
+
+
+ + diff --git a/software/qsys_tutorial_hexs_bsp/system.h b/software/qsys_tutorial_hexs_bsp/system.h new file mode 100644 index 0000000..1a8c3b9 --- /dev/null +++ b/software/qsys_tutorial_hexs_bsp/system.h @@ -0,0 +1,548 @@ +/* + * system.h - SOPC Builder system and BSP software package information + * + * Machine generated for CPU 'nios2_processor' in SOPC Builder design 'nios_system' + * SOPC Builder design path: C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.sopcinfo + * + * Generated: Thu Nov 17 09:38:43 JST 2016 + */ + +/* + * DO NOT MODIFY THIS FILE + * + * Changing this file will have subtle consequences + * which will almost certainly lead to a nonfunctioning + * system. If you do modify this file, be aware that your + * changes will be overwritten and lost when this file + * is generated again. + * + * DO NOT MODIFY THIS FILE + */ + +/* + * License Agreement + * + * Copyright (c) 2008 + * Altera Corporation, San Jose, California, USA. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + * This agreement shall be governed in all respects by the laws of the State + * of California and by the laws of the United States of America. + */ + +#ifndef __SYSTEM_H_ +#define __SYSTEM_H_ + +/* Include definitions from linker script generator */ +#include "linker.h" + + +/* + * CPU configuration + * + */ + +#define ALT_CPU_ARCHITECTURE "altera_nios2_qsys" +#define ALT_CPU_BIG_ENDIAN 0 +#define ALT_CPU_BREAK_ADDR 0x1820 +#define ALT_CPU_CPU_FREQ 50000000u +#define ALT_CPU_CPU_ID_SIZE 1 +#define ALT_CPU_CPU_ID_VALUE 0x00000000 +#define ALT_CPU_CPU_IMPLEMENTATION "tiny" +#define ALT_CPU_DATA_ADDR_WIDTH 0xe +#define ALT_CPU_DCACHE_LINE_SIZE 0 +#define ALT_CPU_DCACHE_LINE_SIZE_LOG2 0 +#define ALT_CPU_DCACHE_SIZE 0 +#define ALT_CPU_EXCEPTION_ADDR 0x20 +#define ALT_CPU_FLUSHDA_SUPPORTED +#define ALT_CPU_FREQ 50000000 +#define ALT_CPU_HARDWARE_DIVIDE_PRESENT 0 +#define ALT_CPU_HARDWARE_MULTIPLY_PRESENT 0 +#define ALT_CPU_HARDWARE_MULX_PRESENT 0 +#define ALT_CPU_HAS_DEBUG_CORE 1 +#define ALT_CPU_HAS_DEBUG_STUB +#define ALT_CPU_HAS_JMPI_INSTRUCTION +#define ALT_CPU_ICACHE_LINE_SIZE 0 +#define ALT_CPU_ICACHE_LINE_SIZE_LOG2 0 +#define ALT_CPU_ICACHE_SIZE 0 +#define ALT_CPU_INST_ADDR_WIDTH 0xd +#define ALT_CPU_NAME "nios2_processor" +#define ALT_CPU_RESET_ADDR 0x0 + + +/* + * CPU configuration (with legacy prefix - don't use these anymore) + * + */ + +#define NIOS2_BIG_ENDIAN 0 +#define NIOS2_BREAK_ADDR 0x1820 +#define NIOS2_CPU_FREQ 50000000u +#define NIOS2_CPU_ID_SIZE 1 +#define NIOS2_CPU_ID_VALUE 0x00000000 +#define NIOS2_CPU_IMPLEMENTATION "tiny" +#define NIOS2_DATA_ADDR_WIDTH 0xe +#define NIOS2_DCACHE_LINE_SIZE 0 +#define NIOS2_DCACHE_LINE_SIZE_LOG2 0 +#define NIOS2_DCACHE_SIZE 0 +#define NIOS2_EXCEPTION_ADDR 0x20 +#define NIOS2_FLUSHDA_SUPPORTED +#define NIOS2_HARDWARE_DIVIDE_PRESENT 0 +#define NIOS2_HARDWARE_MULTIPLY_PRESENT 0 +#define NIOS2_HARDWARE_MULX_PRESENT 0 +#define NIOS2_HAS_DEBUG_CORE 1 +#define NIOS2_HAS_DEBUG_STUB +#define NIOS2_HAS_JMPI_INSTRUCTION +#define NIOS2_ICACHE_LINE_SIZE 0 +#define NIOS2_ICACHE_LINE_SIZE_LOG2 0 +#define NIOS2_ICACHE_SIZE 0 +#define NIOS2_INST_ADDR_WIDTH 0xd +#define NIOS2_RESET_ADDR 0x0 + + +/* + * Define for each module class mastered by the CPU + * + */ + +#define __ALTERA_AVALON_JTAG_UART +#define __ALTERA_AVALON_ONCHIP_MEMORY2 +#define __ALTERA_AVALON_PIO +#define __ALTERA_NIOS2_QSYS + + +/* + * LEDRs configuration + * + */ + +#define ALT_MODULE_CLASS_LEDRs altera_avalon_pio +#define LEDRS_BASE 0x20a0 +#define LEDRS_BIT_CLEARING_EDGE_REGISTER 0 +#define LEDRS_BIT_MODIFYING_OUTPUT_REGISTER 0 +#define LEDRS_CAPTURE 0 +#define LEDRS_DATA_WIDTH 18 +#define LEDRS_DO_TEST_BENCH_WIRING 0 +#define LEDRS_DRIVEN_SIM_VALUE 0 +#define LEDRS_EDGE_TYPE "NONE" +#define LEDRS_FREQ 50000000 +#define LEDRS_HAS_IN 0 +#define LEDRS_HAS_OUT 1 +#define LEDRS_HAS_TRI 0 +#define LEDRS_IRQ -1 +#define LEDRS_IRQ_INTERRUPT_CONTROLLER_ID -1 +#define LEDRS_IRQ_TYPE "NONE" +#define LEDRS_NAME "/dev/LEDRs" +#define LEDRS_RESET_VALUE 0 +#define LEDRS_SPAN 16 +#define LEDRS_TYPE "altera_avalon_pio" + + +/* + * LEDs configuration + * + */ + +#define ALT_MODULE_CLASS_LEDs altera_avalon_pio +#define LEDS_BASE 0x20b0 +#define LEDS_BIT_CLEARING_EDGE_REGISTER 0 +#define LEDS_BIT_MODIFYING_OUTPUT_REGISTER 0 +#define LEDS_CAPTURE 0 +#define LEDS_DATA_WIDTH 8 +#define LEDS_DO_TEST_BENCH_WIRING 0 +#define LEDS_DRIVEN_SIM_VALUE 0 +#define LEDS_EDGE_TYPE "NONE" +#define LEDS_FREQ 50000000 +#define LEDS_HAS_IN 0 +#define LEDS_HAS_OUT 1 +#define LEDS_HAS_TRI 0 +#define LEDS_IRQ -1 +#define LEDS_IRQ_INTERRUPT_CONTROLLER_ID -1 +#define LEDS_IRQ_TYPE "NONE" +#define LEDS_NAME "/dev/LEDs" +#define LEDS_RESET_VALUE 0 +#define LEDS_SPAN 16 +#define LEDS_TYPE "altera_avalon_pio" + + +/* + * System configuration + * + */ + +#define ALT_DEVICE_FAMILY "Cyclone IV E" +#define ALT_ENHANCED_INTERRUPT_API_PRESENT +#define ALT_IRQ_BASE NULL +#define ALT_LOG_PORT "/dev/null" +#define ALT_LOG_PORT_BASE 0x0 +#define ALT_LOG_PORT_DEV null +#define ALT_LOG_PORT_TYPE "" +#define ALT_NUM_EXTERNAL_INTERRUPT_CONTROLLERS 0 +#define ALT_NUM_INTERNAL_INTERRUPT_CONTROLLERS 1 +#define ALT_NUM_INTERRUPT_CONTROLLERS 1 +#define ALT_STDERR "/dev/jtag_uart" +#define ALT_STDERR_BASE 0x20c0 +#define ALT_STDERR_DEV jtag_uart +#define ALT_STDERR_IS_JTAG_UART +#define ALT_STDERR_PRESENT +#define ALT_STDERR_TYPE "altera_avalon_jtag_uart" +#define ALT_STDIN "/dev/jtag_uart" +#define ALT_STDIN_BASE 0x20c0 +#define ALT_STDIN_DEV jtag_uart +#define ALT_STDIN_IS_JTAG_UART +#define ALT_STDIN_PRESENT +#define ALT_STDIN_TYPE "altera_avalon_jtag_uart" +#define ALT_STDOUT "/dev/jtag_uart" +#define ALT_STDOUT_BASE 0x20c0 +#define ALT_STDOUT_DEV jtag_uart +#define ALT_STDOUT_IS_JTAG_UART +#define ALT_STDOUT_PRESENT +#define ALT_STDOUT_TYPE "altera_avalon_jtag_uart" +#define ALT_SYSTEM_NAME "nios_system" + + +/* + * hal configuration + * + */ + +#define ALT_MAX_FD 4 +#define ALT_SYS_CLK none +#define ALT_TIMESTAMP_CLK none + + +/* + * hex0 configuration + * + */ + +#define ALT_MODULE_CLASS_hex0 altera_avalon_pio +#define HEX0_BASE 0x2070 +#define HEX0_BIT_CLEARING_EDGE_REGISTER 0 +#define HEX0_BIT_MODIFYING_OUTPUT_REGISTER 0 +#define HEX0_CAPTURE 0 +#define HEX0_DATA_WIDTH 7 +#define HEX0_DO_TEST_BENCH_WIRING 0 +#define HEX0_DRIVEN_SIM_VALUE 0 +#define HEX0_EDGE_TYPE "NONE" +#define HEX0_FREQ 50000000 +#define HEX0_HAS_IN 0 +#define HEX0_HAS_OUT 1 +#define HEX0_HAS_TRI 0 +#define HEX0_IRQ -1 +#define HEX0_IRQ_INTERRUPT_CONTROLLER_ID -1 +#define HEX0_IRQ_TYPE "NONE" +#define HEX0_NAME "/dev/hex0" +#define HEX0_RESET_VALUE 0 +#define HEX0_SPAN 16 +#define HEX0_TYPE "altera_avalon_pio" + + +/* + * hex1 configuration + * + */ + +#define ALT_MODULE_CLASS_hex1 altera_avalon_pio +#define HEX1_BASE 0x2060 +#define HEX1_BIT_CLEARING_EDGE_REGISTER 0 +#define HEX1_BIT_MODIFYING_OUTPUT_REGISTER 0 +#define HEX1_CAPTURE 0 +#define HEX1_DATA_WIDTH 7 +#define HEX1_DO_TEST_BENCH_WIRING 0 +#define HEX1_DRIVEN_SIM_VALUE 0 +#define HEX1_EDGE_TYPE "NONE" +#define HEX1_FREQ 50000000 +#define HEX1_HAS_IN 0 +#define HEX1_HAS_OUT 1 +#define HEX1_HAS_TRI 0 +#define HEX1_IRQ -1 +#define HEX1_IRQ_INTERRUPT_CONTROLLER_ID -1 +#define HEX1_IRQ_TYPE "NONE" +#define HEX1_NAME "/dev/hex1" +#define HEX1_RESET_VALUE 0 +#define HEX1_SPAN 16 +#define HEX1_TYPE "altera_avalon_pio" + + +/* + * hex2 configuration + * + */ + +#define ALT_MODULE_CLASS_hex2 altera_avalon_pio +#define HEX2_BASE 0x2050 +#define HEX2_BIT_CLEARING_EDGE_REGISTER 0 +#define HEX2_BIT_MODIFYING_OUTPUT_REGISTER 0 +#define HEX2_CAPTURE 0 +#define HEX2_DATA_WIDTH 7 +#define HEX2_DO_TEST_BENCH_WIRING 0 +#define HEX2_DRIVEN_SIM_VALUE 0 +#define HEX2_EDGE_TYPE "NONE" +#define HEX2_FREQ 50000000 +#define HEX2_HAS_IN 0 +#define HEX2_HAS_OUT 1 +#define HEX2_HAS_TRI 0 +#define HEX2_IRQ -1 +#define HEX2_IRQ_INTERRUPT_CONTROLLER_ID -1 +#define HEX2_IRQ_TYPE "NONE" +#define HEX2_NAME "/dev/hex2" +#define HEX2_RESET_VALUE 0 +#define HEX2_SPAN 16 +#define HEX2_TYPE "altera_avalon_pio" + + +/* + * hex3 configuration + * + */ + +#define ALT_MODULE_CLASS_hex3 altera_avalon_pio +#define HEX3_BASE 0x2040 +#define HEX3_BIT_CLEARING_EDGE_REGISTER 0 +#define HEX3_BIT_MODIFYING_OUTPUT_REGISTER 0 +#define HEX3_CAPTURE 0 +#define HEX3_DATA_WIDTH 7 +#define HEX3_DO_TEST_BENCH_WIRING 0 +#define HEX3_DRIVEN_SIM_VALUE 0 +#define HEX3_EDGE_TYPE "NONE" +#define HEX3_FREQ 50000000 +#define HEX3_HAS_IN 0 +#define HEX3_HAS_OUT 1 +#define HEX3_HAS_TRI 0 +#define HEX3_IRQ -1 +#define HEX3_IRQ_INTERRUPT_CONTROLLER_ID -1 +#define HEX3_IRQ_TYPE "NONE" +#define HEX3_NAME "/dev/hex3" +#define HEX3_RESET_VALUE 0 +#define HEX3_SPAN 16 +#define HEX3_TYPE "altera_avalon_pio" + + +/* + * hex4 configuration + * + */ + +#define ALT_MODULE_CLASS_hex4 altera_avalon_pio +#define HEX4_BASE 0x2030 +#define HEX4_BIT_CLEARING_EDGE_REGISTER 0 +#define HEX4_BIT_MODIFYING_OUTPUT_REGISTER 0 +#define HEX4_CAPTURE 0 +#define HEX4_DATA_WIDTH 7 +#define HEX4_DO_TEST_BENCH_WIRING 0 +#define HEX4_DRIVEN_SIM_VALUE 0 +#define HEX4_EDGE_TYPE "NONE" +#define HEX4_FREQ 50000000 +#define HEX4_HAS_IN 0 +#define HEX4_HAS_OUT 1 +#define HEX4_HAS_TRI 0 +#define HEX4_IRQ -1 +#define HEX4_IRQ_INTERRUPT_CONTROLLER_ID -1 +#define HEX4_IRQ_TYPE "NONE" +#define HEX4_NAME "/dev/hex4" +#define HEX4_RESET_VALUE 0 +#define HEX4_SPAN 16 +#define HEX4_TYPE "altera_avalon_pio" + + +/* + * hex5 configuration + * + */ + +#define ALT_MODULE_CLASS_hex5 altera_avalon_pio +#define HEX5_BASE 0x2020 +#define HEX5_BIT_CLEARING_EDGE_REGISTER 0 +#define HEX5_BIT_MODIFYING_OUTPUT_REGISTER 0 +#define HEX5_CAPTURE 0 +#define HEX5_DATA_WIDTH 7 +#define HEX5_DO_TEST_BENCH_WIRING 0 +#define HEX5_DRIVEN_SIM_VALUE 0 +#define HEX5_EDGE_TYPE "NONE" +#define HEX5_FREQ 50000000 +#define HEX5_HAS_IN 0 +#define HEX5_HAS_OUT 1 +#define HEX5_HAS_TRI 0 +#define HEX5_IRQ -1 +#define HEX5_IRQ_INTERRUPT_CONTROLLER_ID -1 +#define HEX5_IRQ_TYPE "NONE" +#define HEX5_NAME "/dev/hex5" +#define HEX5_RESET_VALUE 0 +#define HEX5_SPAN 16 +#define HEX5_TYPE "altera_avalon_pio" + + +/* + * hex6 configuration + * + */ + +#define ALT_MODULE_CLASS_hex6 altera_avalon_pio +#define HEX6_BASE 0x2010 +#define HEX6_BIT_CLEARING_EDGE_REGISTER 0 +#define HEX6_BIT_MODIFYING_OUTPUT_REGISTER 0 +#define HEX6_CAPTURE 0 +#define HEX6_DATA_WIDTH 7 +#define HEX6_DO_TEST_BENCH_WIRING 0 +#define HEX6_DRIVEN_SIM_VALUE 0 +#define HEX6_EDGE_TYPE "NONE" +#define HEX6_FREQ 50000000 +#define HEX6_HAS_IN 0 +#define HEX6_HAS_OUT 1 +#define HEX6_HAS_TRI 0 +#define HEX6_IRQ -1 +#define HEX6_IRQ_INTERRUPT_CONTROLLER_ID -1 +#define HEX6_IRQ_TYPE "NONE" +#define HEX6_NAME "/dev/hex6" +#define HEX6_RESET_VALUE 0 +#define HEX6_SPAN 16 +#define HEX6_TYPE "altera_avalon_pio" + + +/* + * jtag_uart configuration + * + */ + +#define ALT_MODULE_CLASS_jtag_uart altera_avalon_jtag_uart +#define JTAG_UART_BASE 0x20c0 +#define JTAG_UART_IRQ 5 +#define JTAG_UART_IRQ_INTERRUPT_CONTROLLER_ID 0 +#define JTAG_UART_NAME "/dev/jtag_uart" +#define JTAG_UART_READ_DEPTH 64 +#define JTAG_UART_READ_THRESHOLD 8 +#define JTAG_UART_SPAN 8 +#define JTAG_UART_TYPE "altera_avalon_jtag_uart" +#define JTAG_UART_WRITE_DEPTH 64 +#define JTAG_UART_WRITE_THRESHOLD 8 + + +/* + * onchip_memory configuration + * + */ + +#define ALT_MODULE_CLASS_onchip_memory altera_avalon_onchip_memory2 +#define ONCHIP_MEMORY_ALLOW_IN_SYSTEM_MEMORY_CONTENT_EDITOR 0 +#define ONCHIP_MEMORY_ALLOW_MRAM_SIM_CONTENTS_ONLY_FILE 0 +#define ONCHIP_MEMORY_BASE 0x0 +#define ONCHIP_MEMORY_CONTENTS_INFO "" +#define ONCHIP_MEMORY_DUAL_PORT 0 +#define ONCHIP_MEMORY_GUI_RAM_BLOCK_TYPE "AUTO" +#define ONCHIP_MEMORY_INIT_CONTENTS_FILE "nios_system_onchip_memory" +#define ONCHIP_MEMORY_INIT_MEM_CONTENT 1 +#define ONCHIP_MEMORY_INSTANCE_ID "NONE" +#define ONCHIP_MEMORY_IRQ -1 +#define ONCHIP_MEMORY_IRQ_INTERRUPT_CONTROLLER_ID -1 +#define ONCHIP_MEMORY_NAME "/dev/onchip_memory" +#define ONCHIP_MEMORY_NON_DEFAULT_INIT_FILE_ENABLED 0 +#define ONCHIP_MEMORY_RAM_BLOCK_TYPE "AUTO" +#define ONCHIP_MEMORY_READ_DURING_WRITE_MODE "DONT_CARE" +#define ONCHIP_MEMORY_SINGLE_CLOCK_OP 0 +#define ONCHIP_MEMORY_SIZE_MULTIPLE 1 +#define ONCHIP_MEMORY_SIZE_VALUE 4096 +#define ONCHIP_MEMORY_SPAN 4096 +#define ONCHIP_MEMORY_TYPE "altera_avalon_onchip_memory2" +#define ONCHIP_MEMORY_WRITABLE 1 + + +/* + * pio_0 configuration + * + */ + +#define ALT_MODULE_CLASS_pio_0 altera_avalon_pio +#define PIO_0_BASE 0x2000 +#define PIO_0_BIT_CLEARING_EDGE_REGISTER 0 +#define PIO_0_BIT_MODIFYING_OUTPUT_REGISTER 0 +#define PIO_0_CAPTURE 0 +#define PIO_0_DATA_WIDTH 7 +#define PIO_0_DO_TEST_BENCH_WIRING 0 +#define PIO_0_DRIVEN_SIM_VALUE 0 +#define PIO_0_EDGE_TYPE "NONE" +#define PIO_0_FREQ 50000000 +#define PIO_0_HAS_IN 0 +#define PIO_0_HAS_OUT 1 +#define PIO_0_HAS_TRI 0 +#define PIO_0_IRQ -1 +#define PIO_0_IRQ_INTERRUPT_CONTROLLER_ID -1 +#define PIO_0_IRQ_TYPE "NONE" +#define PIO_0_NAME "/dev/pio_0" +#define PIO_0_RESET_VALUE 0 +#define PIO_0_SPAN 16 +#define PIO_0_TYPE "altera_avalon_pio" + + +/* + * push_switches configuration + * + */ + +#define ALT_MODULE_CLASS_push_switches altera_avalon_pio +#define PUSH_SWITCHES_BASE 0x2080 +#define PUSH_SWITCHES_BIT_CLEARING_EDGE_REGISTER 0 +#define PUSH_SWITCHES_BIT_MODIFYING_OUTPUT_REGISTER 0 +#define PUSH_SWITCHES_CAPTURE 0 +#define PUSH_SWITCHES_DATA_WIDTH 3 +#define PUSH_SWITCHES_DO_TEST_BENCH_WIRING 0 +#define PUSH_SWITCHES_DRIVEN_SIM_VALUE 0 +#define PUSH_SWITCHES_EDGE_TYPE "NONE" +#define PUSH_SWITCHES_FREQ 50000000 +#define PUSH_SWITCHES_HAS_IN 1 +#define PUSH_SWITCHES_HAS_OUT 0 +#define PUSH_SWITCHES_HAS_TRI 0 +#define PUSH_SWITCHES_IRQ -1 +#define PUSH_SWITCHES_IRQ_INTERRUPT_CONTROLLER_ID -1 +#define PUSH_SWITCHES_IRQ_TYPE "NONE" +#define PUSH_SWITCHES_NAME "/dev/push_switches" +#define PUSH_SWITCHES_RESET_VALUE 0 +#define PUSH_SWITCHES_SPAN 16 +#define PUSH_SWITCHES_TYPE "altera_avalon_pio" + + +/* + * switches configuration + * + */ + +#define ALT_MODULE_CLASS_switches altera_avalon_pio +#define SWITCHES_BASE 0x2090 +#define SWITCHES_BIT_CLEARING_EDGE_REGISTER 0 +#define SWITCHES_BIT_MODIFYING_OUTPUT_REGISTER 0 +#define SWITCHES_CAPTURE 0 +#define SWITCHES_DATA_WIDTH 18 +#define SWITCHES_DO_TEST_BENCH_WIRING 0 +#define SWITCHES_DRIVEN_SIM_VALUE 0 +#define SWITCHES_EDGE_TYPE "NONE" +#define SWITCHES_FREQ 50000000 +#define SWITCHES_HAS_IN 1 +#define SWITCHES_HAS_OUT 0 +#define SWITCHES_HAS_TRI 0 +#define SWITCHES_IRQ -1 +#define SWITCHES_IRQ_INTERRUPT_CONTROLLER_ID -1 +#define SWITCHES_IRQ_TYPE "NONE" +#define SWITCHES_NAME "/dev/switches" +#define SWITCHES_RESET_VALUE 0 +#define SWITCHES_SPAN 16 +#define SWITCHES_TYPE "altera_avalon_pio" + +#endif /* __SYSTEM_H_ */ diff --git a/software/qsys_tutorial_key3/.cproject b/software/qsys_tutorial_key3/.cproject new file mode 100644 index 0000000..75c8ff4 --- /dev/null +++ b/software/qsys_tutorial_key3/.cproject @@ -0,0 +1,508 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + make + + mem_init_install + true + false + false + + + make + + mem_init_generate + true + false + false + + + make + + help + true + false + false + + + + diff --git a/software/qsys_tutorial_key3/.project b/software/qsys_tutorial_key3/.project new file mode 100644 index 0000000..d4d3359 --- /dev/null +++ b/software/qsys_tutorial_key3/.project @@ -0,0 +1,96 @@ + + + qsys_tutorial_key3 + + + + + + com.altera.sbtgui.project.makefileBuilder + + + + + com.altera.sbtgui.project.makefileBuilder + + + + + org.eclipse.cdt.managedbuilder.core.genmakebuilder + clean,full,incremental, + + + ?name? + + + + org.eclipse.cdt.make.core.append_environment + true + + + org.eclipse.cdt.make.core.autoBuildTarget + all + + + org.eclipse.cdt.make.core.buildArguments + + + + org.eclipse.cdt.make.core.buildCommand + make + + + org.eclipse.cdt.make.core.buildLocation + ${workspace_loc://qsys_tutorial_key3} + + + org.eclipse.cdt.make.core.cleanBuildTarget + clean + + + org.eclipse.cdt.make.core.contents + org.eclipse.cdt.make.core.activeConfigSettings + + + org.eclipse.cdt.make.core.enableAutoBuild + false + + + org.eclipse.cdt.make.core.enableCleanBuild + true + + + org.eclipse.cdt.make.core.enableFullBuild + true + + + org.eclipse.cdt.make.core.fullBuildTarget + all + + + org.eclipse.cdt.make.core.stopOnError + true + + + org.eclipse.cdt.make.core.useDefaultBuildCmd + true + + + + + org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder + full,incremental, + + + + + + org.eclipse.cdt.core.cnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.managedbuilder.core.ScannerConfigNature + org.eclipse.cdt.core.ccnature + com.altera.sbtgui.project.SBTGUINature + com.altera.sbtgui.project.SBTGUIAppNature + com.altera.sbtgui.project.SBTGUIManagedNature + + diff --git a/software/qsys_tutorial_key3/Makefile b/software/qsys_tutorial_key3/Makefile new file mode 100644 index 0000000..59d7e66 --- /dev/null +++ b/software/qsys_tutorial_key3/Makefile @@ -0,0 +1,1086 @@ +#------------------------------------------------------------------------------ +# VARIABLES APPENDED TO BY INCLUDED MAKEFILE FRAGMENTS +#------------------------------------------------------------------------------ + +# List of include directories for -I compiler option (-I added when used). +# Includes the BSP. +ALT_INCLUDE_DIRS := + +# List of library directories for -L linker option (-L added when used). +# Includes the BSP. +ALT_LIBRARY_DIRS := + +# List of library names for -l linker option (-l added when used). +# Includes the BSP. +ALT_LIBRARY_NAMES := + +# List of library names for -msys-lib linker option (-msys-lib added when used). +# These are libraries that might be located in the BSP and depend on the BSP +# library, or vice versa +ALT_BSP_DEP_LIBRARY_NAMES := + +# List of dependencies for the linker. This is usually the full pathname +# of each library (*.a) file. +# Includes the BSP. +ALT_LDDEPS := + +# List of root library directories that support running make to build them. +# Includes the BSP and any ALT libraries. +MAKEABLE_LIBRARY_ROOT_DIRS := + +# Generic flags passed to the compiler for different types of input files. +ALT_CFLAGS := +ALT_CXXFLAGS := +ALT_CPPFLAGS := +ALT_ASFLAGS := +ALT_LDFLAGS := + + +#------------------------------------------------------------------------------ +# The adjust-path macro +# +# If COMSPEC/ComSpec is defined, Make is launched from Windows through +# Cygwin. The adjust-path macro converts absolute windows paths into +# unix style paths (Example: c:/dir -> /c/dir). This will ensture +# paths are readable by GNU Make. +# +# If COMSPEC/ComSpec is not defined, Make is launched from linux, and no +# adjustment is necessary +# +#------------------------------------------------------------------------------ + +ifndef COMSPEC +ifdef ComSpec +COMSPEC = $(ComSpec) +endif # ComSpec +endif # COMSPEC + +ifdef COMSPEC # if Windows OS + +ifeq ($(MAKE_VERSION),3.81) +# +# adjust-path/adjust-path-mixed for Mingw Gnu Make on Windows +# +# Example Usage: +# $(call adjust-path,c:/aaa/bbb) => /c/aaa/bbb +# $(call adjust-path-mixed,/c/aaa/bbb) => c:/aaa/bbb +# $(call adjust-path-mixed,/cygdrive/c/aaa/bbb) => c:/aaa/bbb +# + +# +# adjust-path +# - converts back slash characters into forward slashes +# - if input arg ($1) is an empty string then return the empty string +# - if input arg ($1) does not contain the string ":/", then return input arg +# - using sed, convert mixed path [c:/...] into mingw path [/c/...] +define adjust-path +$(strip \ +$(if $1,\ +$(if $(findstring :/,$(subst \,/,$1)),\ +$(shell echo $(subst \,/,$1) | sed -e 's,^\([a-zA-Z]\):/,/\1/,'),\ +$(subst \,/,$1)))) +endef + +# +# adjust-path-mixed +# - converts back slash characters into forward slashes +# - if input arg ($1) is an empty string then return the empty string +# - if input arg ($1) does not begin with a forward slash '/' char, then +# return input arg +# - using sed, convert mingw path [/c/...] or cygwin path [/c/cygdrive/...] +# into a mixed path [c:/...] +define adjust-path-mixed +$(strip \ +$(if $1,\ +$(if $(findstring $(subst \,/,$1),$(patsubst /%,%,$(subst \,/,$1))),\ +$(subst \,/,$1),\ +$(shell echo $(subst \,/,$1) | sed -e 's,^/cygdrive/\([a-zA-Z]\)/,\1:/,' -e 's,^/\([a-zA-Z]\)/,\1:/,')))) +endef + +else # MAKE_VERSION != 3.81 (MAKE_VERSION == 3.80 or MAKE_VERSION == 3.79) +# +# adjust-path for Cygwin Gnu Make +# $(call adjust-path,c:/aaa/bbb) = /cygdrive/c/aaa/bbb +# $(call adjust-path-mixed,/cygdrive/c/aaa/bbb) = c:/aaa/bbb +# +adjust-path = $(if $1,$(shell cygpath -u "$1"),) +adjust-path-mixed = $(if $1,$(shell cygpath -m "$1"),) +endif + +else # !COMSPEC + +adjust-path = $1 +adjust-path-mixed = $1 + +endif # COMSPEC + + +#vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv +# GENERATED SETTINGS START v +#vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv + +#START GENERATED +ACTIVE_BUILD_CONFIG := default +BUILD_CONFIGS := default + +# The following TYPE comment allows tools to identify the 'type' of target this +# makefile is associated with. +# TYPE: APP_MAKEFILE + +# This following VERSION comment indicates the version of the tool used to +# generate this makefile. A makefile variable is provided for VERSION as well. +# ACDS_VERSION: 13.0sp1 +ACDS_VERSION := 13.0sp1 + +# This following BUILD_NUMBER comment indicates the build number of the tool +# used to generate this makefile. +# BUILD_NUMBER: 232 + +# Define path to the application ELF. +# It may be used by the makefile fragments so is defined before including them. +# +ELF := qsys_tutorial_key3.elf + +# Paths to C, C++, and assembly source files. +C_SRCS := hello_world_small.c +CXX_SRCS := +ASM_SRCS := + + +# Path to root of object file tree. +OBJ_ROOT_DIR := obj + +# Options to control objdump. +CREATE_OBJDUMP := 1 +OBJDUMP_INCLUDE_SOURCE := 1 +OBJDUMP_FULL_CONTENTS := 0 + +# Options to enable/disable optional files. +CREATE_ELF_DERIVED_FILES := 0 +CREATE_LINKER_MAP := 1 + +# Common arguments for ALT_CFLAGSs +APP_CFLAGS_DEFINED_SYMBOLS := +APP_CFLAGS_UNDEFINED_SYMBOLS := +APP_CFLAGS_OPTIMIZATION := -Os +APP_CFLAGS_DEBUG_LEVEL := -g +APP_CFLAGS_WARNINGS := -Wall +APP_CFLAGS_USER_FLAGS := + +APP_ASFLAGS_USER := +APP_LDFLAGS_USER := + +# Linker options that have default values assigned later if not +# assigned here. +LINKER_SCRIPT := +CRT0 := +SYS_LIB := + +# Define path to the root of the BSP. +BSP_ROOT_DIR := ../qsys_tutorial_key3_bsp/ + +# List of application specific include directories, library directories and library names +APP_INCLUDE_DIRS := +APP_LIBRARY_DIRS := +APP_LIBRARY_NAMES := + +# Pre- and post- processor settings. +BUILD_PRE_PROCESS := +BUILD_POST_PROCESS := + +QUARTUS_PROJECT_DIR := ../../ + + +#END GENERATED + +#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +# GENERATED SETTINGS END ^ +#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + +#------------------------------------------------------------------------------ +# DEFAULT TARGET +#------------------------------------------------------------------------------ + +# Define the variable used to echo output if not already defined. +ifeq ($(ECHO),) +ECHO := echo +endif + +# Put "all" rule before included makefile fragments because they may +# define rules and we don't want one of those to become the default rule. +.PHONY : all + +all: + @$(ECHO) [$(APP_NAME) build complete] + +all : build_pre_process libs app build_post_process + + +#------------------------------------------------------------------------------ +# VARIABLES DEPENDENT ON GENERATED CONTENT +#------------------------------------------------------------------------------ + +# Define object file directory per build configuration +CONFIG_OBJ_DIR := $(OBJ_ROOT_DIR)/$(ACTIVE_BUILD_CONFIG) + +ifeq ($(BSP_ROOT_DIR),) +$(error Edit Makefile and provide a value for BSP_ROOT_DIR) +endif + +ifeq ($(wildcard $(BSP_ROOT_DIR)),) +$(error BSP directory does not exist: $(BSP_ROOT_DIR)) +endif + +# Define absolute path to the root of the BSP. +ABS_BSP_ROOT_DIR := $(call adjust-path-mixed,$(shell cd "$(BSP_ROOT_DIR)"; pwd)) + +# Include makefile fragments. Define variable ALT_LIBRARY_ROOT_DIR before +# including each makefile fragment so that it knows the path to itself. +BSP_INCLUDE_FILE := $(BSP_ROOT_DIR)/public.mk +ALT_LIBRARY_ROOT_DIR := $(BSP_ROOT_DIR) +include $(BSP_INCLUDE_FILE) +# C2H will need this to touch the BSP public.mk and avoid the sopc file +# out-of-date error during a BSP make +ABS_BSP_INCLUDE_FILE := $(ABS_BSP_ROOT_DIR)/public.mk + + +ifneq ($(WARNING.SMALL_STACK_SIZE),) +# This WARNING is here to protect you from unknowingly using a very small stack +# If the warning is set, increase your stack size or enable the BSP small stack +# setting to eliminate the warning +$(warning WARNING: $(WARNING.SMALL_STACK_SIZE)) +endif + + +# If the BSP public.mk indicates that ALT_SIM_OPTIMIZE is set, rename the ELF +# by prefixing it with RUN_ON_HDL_SIMULATOR_ONLY_. +ifneq ($(filter -DALT_SIM_OPTIMIZE,$(ALT_CPPFLAGS)),) +ELF := RUN_ON_HDL_SIMULATOR_ONLY_$(ELF) +endif + +# If the BSP public.mk indicates that ALT_PROVIDE_GMON is set, add option to +# download_elf target +ifneq ($(filter -DALT_PROVIDE_GMON,$(ALT_CPPFLAGS)),) +GMON_OUT_FILENAME := gmon.out +WRITE_GMON_OPTION := --write-gmon $(GMON_OUT_FILENAME) +endif + +# Name of ELF application. +APP_NAME := $(basename $(ELF)) + +# Set to defaults if variables not already defined in settings. +ifeq ($(LINKER_SCRIPT),) +LINKER_SCRIPT := $(BSP_LINKER_SCRIPT) +endif +ifeq ($(CRT0),) +CRT0 := $(BSP_CRT0) +endif +ifeq ($(SYS_LIB),) +SYS_LIB := $(BSP_SYS_LIB) +endif + +OBJDUMP_NAME := $(APP_NAME).objdump +OBJDUMP_FLAGS := --disassemble --syms --all-header +ifeq ($(OBJDUMP_INCLUDE_SOURCE),1) +OBJDUMP_FLAGS += --source +endif +ifeq ($(OBJDUMP_FULL_CONTENTS),1) +OBJDUMP_FLAGS += --full-contents +endif + +# Create list of linker dependencies (*.a files). +APP_LDDEPS := $(ALT_LDDEPS) $(LDDEPS) + +# Take lists and add required prefixes. +APP_INC_DIRS := $(addprefix -I, $(ALT_INCLUDE_DIRS) $(APP_INCLUDE_DIRS) $(INC_DIRS)) +ASM_INC_PREFIX := -Wa,-I +APP_ASM_INC_DIRS := $(addprefix $(ASM_INC_PREFIX), $(ALT_INCLUDE_DIRS) $(APP_INCLUDE_DIRS) $(INC_DIRS)) +APP_LIB_DIRS := $(addprefix -L, $(ALT_LIBRARY_DIRS) $(APP_LIBRARY_DIRS) $(LIB_DIRS)) +APP_LIBS := $(addprefix -l, $(ALT_LIBRARY_NAMES) $(APP_LIBRARY_NAMES) $(LIBS)) + +ifneq ($(AVOID_NIOS2_GCC3_OPTIONS),) + +# +# Avoid Nios II GCC 3.X options. +# + +# Detect if small newlib C library is requested. +# If yes, remove the -msmallc option because it is +# now handled by other means. +ifneq ($(filter -msmallc,$(ALT_LDFLAGS)),) + ALT_LDFLAGS := $(filter-out -msmallc,$(ALT_LDFLAGS)) + ALT_C_LIBRARY := smallc +else + ALT_C_LIBRARY := c +endif + +# Put each BSP dependent library in a group to avoid circular dependencies. +APP_BSP_DEP_LIBS := $(foreach l,$(ALT_BSP_DEP_LIBRARY_NAMES),-Wl,--start-group -l$(ALT_C_LIBRARY) -lgcc -l$(l) -Wl,--end-group) + +else # !AVOID_NIOS2_GCC3_OPTIONS + +# +# Use Nios II GCC 3.X options. +# +APP_BSP_DEP_LIBS := $(addprefix -msys-lib=, $(ALT_BSP_DEP_LIBRARY_NAMES)) + +endif # !AVOID_NIOS2_GCC3_OPTIONS + +# Arguments for the C preprocessor, C/C++ compiler, assembler, and linker. +APP_CFLAGS := $(APP_CFLAGS_DEFINED_SYMBOLS) \ + $(APP_CFLAGS_UNDEFINED_SYMBOLS) \ + $(APP_CFLAGS_OPTIMIZATION) \ + $(APP_CFLAGS_DEBUG_LEVEL) \ + $(APP_CFLAGS_WARNINGS) \ + $(APP_CFLAGS_USER_FLAGS) \ + $(ALT_CFLAGS) \ + $(CFLAGS) + +# Arguments only for the C++ compiler. +APP_CXXFLAGS := $(ALT_CXXFLAGS) $(CXXFLAGS) + +# Arguments only for the C preprocessor. +# Prefix each include directory with -I. +APP_CPPFLAGS := $(APP_INC_DIRS) \ + $(ALT_CPPFLAGS) \ + $(CPPFLAGS) + +# Arguments only for the assembler. +APP_ASFLAGS := $(APP_ASM_INC_DIRS) \ + $(ALT_ASFLAGS) \ + $(APP_ASFLAGS_USER) \ + $(ASFLAGS) + +# Arguments only for the linker. +APP_LDFLAGS := $(APP_LDFLAGS_USER) + +ifneq ($(LINKER_SCRIPT),) +APP_LDFLAGS += -T'$(LINKER_SCRIPT)' +endif + +ifneq ($(AVOID_NIOS2_GCC3_OPTIONS),) + +# Avoid Nios II GCC 3.x options. +ifneq ($(CRT0),) +APP_LDFLAGS += $(CRT0) +endif + +# The equivalent of the -msys-lib option is provided +# by the GROUP() command in the linker script. +# Note this means the SYS_LIB variable is now ignored. + +else # !AVOID_NIOS2_GCC3_OPTIONS + +# Use Nios II GCC 3.x options. +ifneq ($(CRT0),) +APP_LDFLAGS += -msys-crt0='$(CRT0)' +endif +ifneq ($(SYS_LIB),) +APP_LDFLAGS += -msys-lib=$(SYS_LIB) +endif + +endif # !AVOID_NIOS2_GCC3_OPTIONS + +APP_LDFLAGS += \ + $(APP_LIB_DIRS) \ + $(ALT_LDFLAGS) \ + $(LDFLAGS) + +LINKER_MAP_NAME := $(APP_NAME).map +ifeq ($(CREATE_LINKER_MAP), 1) +APP_LDFLAGS += -Wl,-Map=$(LINKER_MAP_NAME) +endif + +# QUARTUS_PROJECT_DIR and SOPC_NAME need to be defined if you want the +# mem_init_install target of the mem_init.mk (located in the associated BSP) +# to know how to copy memory initialization files (e.g. .dat, .hex) into +# directories required for Quartus compilation or RTL simulation. + +# Defining QUARTUS_PROJECT_DIR causes mem_init_install to copy memory +# initialization files into your Quartus project directory. This is required +# to provide the initial memory contents of FPGA memories that can be +# initialized by the programming file (.sof) or Hardcopy ROMs. It is also used +# for VHDL simulation of on-chip memories. + +# Defining SOPC_NAME causes the mem_init_install target to copy memory +# initialization files into your RTL simulation directory. This is required +# to provide the initial memory contents of all memories that can be +# initialized by RTL simulation. This variable should be set to the same name +# as your SOPC Builder system name. For example, if you have a system called +# "foo.sopc", this variable should be set to "foo". + +# If SOPC_NAME is not set and QUARTUS_PROJECT_DIR is set, then derive SOPC_NAME. +ifeq ($(SOPC_NAME),) +ifneq ($(QUARTUS_PROJECT_DIR),) +SOPC_NAME := $(basename $(notdir $(wildcard $(QUARTUS_PROJECT_DIR)/*.sopcinfo))) +endif +endif + +# Defining JDI_FILE is required to specify the JTAG Debug Information File +# path. This file is generated by Quartus, and is needed along with the +# .sopcinfo file to resolve processor instance ID's from names in a multi-CPU +# systems. For multi-CPU systems, the processor instance ID is used to select +# from multiple CPU's during ELF download. + +# Both JDI_FILE and SOPCINFO_FILE are provided by the BSP if they found during +# BSP creation. If JDI_FILE is not set and QUARTUS_PROJECT_DIR is set, then +# derive JDI_FILE. We do not attempt to derive SOPCINFO_FILE since there may be +# multiple .sopcinfo files in a Quartus project. +ifeq ($(JDI_FILE),) +ifneq ($(QUARTUS_PROJECT_DIR),) +JDI_FILE := $(wildcard $(QUARTUS_PROJECT_DIR)/*.jdi) +endif +endif + +# Path to root runtime directory used for hdl simulation +RUNTIME_ROOT_DIR := $(CONFIG_OBJ_DIR)/runtime + + + +#------------------------------------------------------------------------------ +# MAKEFILE INCLUDES DEPENDENT ON GENERATED CONTENT +#------------------------------------------------------------------------------ +# mem_init.mk is a generated makefile fragment. This file defines all targets +# used to generate HDL initialization simulation files and pre-initialized +# onchip memory files. +MEM_INIT_FILE := $(BSP_ROOT_DIR)/mem_init.mk +include $(MEM_INIT_FILE) + +# Create list of object files to be built using the list of source files. +# The source file hierarchy is preserved in the object tree. +# The supported file extensions are: +# +# .c - for C files +# .cxx .cc .cpp - for C++ files +# .S .s - for assembler files +# +# Handle source files specified by --src-dir & --src-rdir differently, to +# save some processing time in calling the adjust-path macro. + +OBJ_LIST_C := $(patsubst %.c,%.o,$(filter %.c,$(C_SRCS))) +OBJ_LIST_CPP := $(patsubst %.cpp,%.o,$(filter %.cpp,$(CXX_SRCS))) +OBJ_LIST_CXX := $(patsubst %.cxx,%.o,$(filter %.cxx,$(CXX_SRCS))) +OBJ_LIST_CC := $(patsubst %.cc,%.o,$(filter %.cc,$(CXX_SRCS))) +OBJ_LIST_S := $(patsubst %.S,%.o,$(filter %.S,$(ASM_SRCS))) +OBJ_LIST_SS := $(patsubst %.s,%.o,$(filter %.s,$(ASM_SRCS))) + +OBJ_LIST := $(sort $(OBJ_LIST_C) $(OBJ_LIST_CPP) $(OBJ_LIST_CXX) \ + $(OBJ_LIST_CC) $(OBJ_LIST_S) $(OBJ_LIST_SS)) + +SDIR_OBJ_LIST_C := $(patsubst %.c,%.o,$(filter %.c,$(SDIR_C_SRCS))) +SDIR_OBJ_LIST_CPP := $(patsubst %.cpp,%.o,$(filter %.cpp,$(SDIR_CXX_SRCS))) +SDIR_OBJ_LIST_CXX := $(patsubst %.cxx,%.o,$(filter %.cxx,$(SDIR_CXX_SRCS))) +SDIR_OBJ_LIST_CC := $(patsubst %.cc,%.o,$(filter %.cc,$(SDIR_CXX_SRCS))) +SDIR_OBJ_LIST_S := $(patsubst %.S,%.o,$(filter %.S,$(SDIR_ASM_SRCS))) +SDIR_OBJ_LIST_SS := $(patsubst %.s,%.o,$(filter %.s,$(SDIR_ASM_SRCS))) + +SDIR_OBJ_LIST := $(sort $(SDIR_OBJ_LIST_C) $(SDIR_OBJ_LIST_CPP) \ + $(SDIR_OBJ_LIST_CXX) $(SDIR_OBJ_LIST_CC) $(SDIR_OBJ_LIST_S) \ + $(SDIR_OBJ_LIST_SS)) + +# Relative-pathed objects that being with "../" are handled differently. +# +# Regular objects are created as +# $(CONFIG_OBJ_DIR)//.o +# where the path structure is maintained under the obj directory. This +# applies for both absolute and relative paths; in the absolute path +# case this means the entire source path will be recreated under the obj +# directory. This is done to allow two source files with the same name +# to be included as part of the project. +# +# Note: On Cygwin, the path recreated under the obj directory will be +# the cygpath -u output path. +# +# Relative-path objects that begin with "../" cause problems under this +# scheme, as $(CONFIG_OBJ_DIR)/..// can potentially put the object +# files anywhere in the system, creating clutter and polluting the source tree. +# As such, their paths are flattened - the object file created will be +# $(CONFIG_OBJ_DIR)/.o. Due to this, two files specified with +# "../" in the beginning cannot have the same name in the project. VPATH +# will be set for these sources to allow make to relocate the source file +# via %.o rules. +# +# The following lines separate the object list into the flatten and regular +# lists, and then handles them as appropriate. + +FLATTEN_OBJ_LIST := $(filter ../%,$(OBJ_LIST)) +FLATTEN_APP_OBJS := $(addprefix $(CONFIG_OBJ_DIR)/,$(notdir $(FLATTEN_OBJ_LIST))) + +REGULAR_OBJ_LIST := $(filter-out $(FLATTEN_OBJ_LIST),$(OBJ_LIST)) +REGULAR_OBJ_LIST_C := $(filter $(OBJ_LIST_C),$(REGULAR_OBJ_LIST)) +REGULAR_OBJ_LIST_CPP := $(filter $(OBJ_LIST_CPP),$(REGULAR_OBJ_LIST)) +REGULAR_OBJ_LIST_CXX := $(filter $(OBJ_LIST_CXX),$(REGULAR_OBJ_LIST)) +REGULAR_OBJ_LIST_CC := $(filter $(OBJ_LIST_CC),$(REGULAR_OBJ_LIST)) +REGULAR_OBJ_LIST_S := $(filter $(OBJ_LIST_S),$(REGULAR_OBJ_LIST)) +REGULAR_OBJ_LIST_SS := $(filter $(OBJ_LIST_SS),$(REGULAR_OBJ_LIST)) + +FLATTEN_SDIR_OBJ_LIST := $(filter ../%,$(SDIR_OBJ_LIST)) +FLATTEN_SDIR_APP_OBJS := $(addprefix $(CONFIG_OBJ_DIR)/,$(notdir $(FLATTEN_SDIR_OBJ_LIST))) + +REGULAR_SDIR_OBJ_LIST := $(filter-out $(FLATTEN_SDIR_OBJ_LIST),$(SDIR_OBJ_LIST)) +REGULAR_SDIR_OBJ_LIST_C := $(filter $(SDIR_OBJ_LIST_C),$(REGULAR_SDIR_OBJ_LIST)) +REGULAR_SDIR_OBJ_LIST_CPP := $(filter $(SDIR_OBJ_LIST_CPP),$(REGULAR_SDIR_OBJ_LIST)) +REGULAR_SDIR_OBJ_LIST_CXX := $(filter $(SDIR_OBJ_LIST_CXX),$(REGULAR_SDIR_OBJ_LIST)) +REGULAR_SDIR_OBJ_LIST_CC := $(filter $(SDIR_OBJ_LIST_CC),$(REGULAR_SDIR_OBJ_LIST)) +REGULAR_SDIR_OBJ_LIST_S := $(filter $(SDIR_OBJ_LIST_S),$(REGULAR_SDIR_OBJ_LIST)) +REGULAR_SDIR_OBJ_LIST_SS := $(filter $(SDIR_OBJ_LIST_SS),$(REGULAR_SDIR_OBJ_LIST)) + +VPATH := $(sort $(dir $(FLATTEN_OBJ_LIST)) $(dir $(FLATTEN_SDIR_OBJ_LIST))) + +APP_OBJS_C := $(addprefix $(CONFIG_OBJ_DIR)/,\ + $(REGULAR_SDIR_OBJ_LIST_C) \ + $(foreach s,$(REGULAR_OBJ_LIST_C),$(call adjust-path,$s))) + +APP_OBJS_CPP := $(addprefix $(CONFIG_OBJ_DIR)/,\ + $(REGULAR_SDIR_OBJ_LIST_CPP) \ + $(foreach s,$(REGULAR_OBJ_LIST_CPP),$(call adjust-path,$s))) + +APP_OBJS_CXX := $(addprefix $(CONFIG_OBJ_DIR)/,\ + $(REGULAR_SDIR_OBJ_LIST_CXX) \ + $(foreach s,$(REGULAR_OBJ_LIST_CXX),$(call adjust-path,$s))) + +APP_OBJS_CC := $(addprefix $(CONFIG_OBJ_DIR)/,\ + $(REGULAR_SDIR_OBJ_LIST_CC) \ + $(foreach s,$(REGULAR_OBJ_LIST_CC),$(call adjust-path,$s))) + +APP_OBJS_S := $(addprefix $(CONFIG_OBJ_DIR)/,\ + $(REGULAR_SDIR_OBJ_LIST_S) \ + $(foreach s,$(REGULAR_OBJ_LIST_S),$(call adjust-path,$s))) + +APP_OBJS_SS := $(addprefix $(CONFIG_OBJ_DIR)/,\ + $(REGULAR_SDIR_OBJ_LIST_SS) \ + $(foreach s,$(REGULAR_OBJ_LIST_SS),$(call adjust-path,$s))) + +APP_OBJS := $(APP_OBJS_C) $(APP_OBJS_CPP) $(APP_OBJS_CXX) $(APP_OBJS_CC) \ + $(APP_OBJS_S) $(APP_OBJS_SS) \ + $(FLATTEN_APP_OBJS) $(FLATTEN_SDIR_APP_OBJS) + +# Add any extra user-provided object files. +APP_OBJS += $(OBJS) + +# Create list of dependancy files for each object file. +APP_DEPS := $(APP_OBJS:.o=.d) + +# Patch the Elf file with system specific information + +# Patch the Elf with the name of the sopc system +ifneq ($(SOPC_NAME),) +ELF_PATCH_FLAG += --sopc_system_name $(SOPC_NAME) +endif + +# Patch the Elf with the absolute path to the Quartus Project Directory +ifneq ($(QUARTUS_PROJECT_DIR),) +ABS_QUARTUS_PROJECT_DIR := $(call adjust-path-mixed,$(shell cd "$(QUARTUS_PROJECT_DIR)"; pwd)) +ELF_PATCH_FLAG += --quartus_project_dir "$(ABS_QUARTUS_PROJECT_DIR)" +endif + +# Patch the Elf and download args with the JDI_FILE if specified +ifneq ($(wildcard $(JDI_FILE)),) +ELF_PATCH_FLAG += --jdi $(JDI_FILE) +DOWNLOAD_JDI_FLAG := --jdi $(JDI_FILE) +endif + +# Patch the Elf with the SOPCINFO_FILE if specified +ifneq ($(wildcard $(SOPCINFO_FILE)),) +ELF_PATCH_FLAG += --sopcinfo $(SOPCINFO_FILE) +endif + +# Use the DOWNLOAD_CABLE variable to specify which JTAG cable to use. +# This is not needed if you only have one cable. +ifneq ($(DOWNLOAD_CABLE),) +DOWNLOAD_CABLE_FLAG := --cable '$(DOWNLOAD_CABLE)' +endif + + +#------------------------------------------------------------------------------ +# BUILD PRE/POST PROCESS +#------------------------------------------------------------------------------ +build_pre_process : + $(BUILD_PRE_PROCESS) + +build_post_process : + $(BUILD_POST_PROCESS) + +.PHONY: build_pre_process build_post_process + + +#------------------------------------------------------------------------------ +# TOOLS +#------------------------------------------------------------------------------ + +# +# Set tool default variables if not already defined. +# If these are defined, they would typically be defined in an +# included makefile fragment. +# +ifeq ($(DEFAULT_CROSS_COMPILE),) +DEFAULT_CROSS_COMPILE := nios2-elf- +endif + +ifeq ($(DEFAULT_STACK_REPORT),) +DEFAULT_STACKREPORT := nios2-stackreport +endif + +ifeq ($(DEFAULT_DOWNLOAD),) +DEFAULT_DOWNLOAD := nios2-download +endif + +ifeq ($(DEFAULT_FLASHPROG),) +DEFAULT_FLASHPROG := nios2-flash-programmer +endif + +ifeq ($(DEFAULT_ELFPATCH),) +DEFAULT_ELFPATCH := nios2-elf-insert +endif + +ifeq ($(DEFAULT_RM),) +DEFAULT_RM := rm -f +endif + +ifeq ($(DEFAULT_CP),) +DEFAULT_CP := cp -f +endif + +ifeq ($(DEFAULT_MKDIR),) +DEFAULT_MKDIR := mkdir -p +endif + +# +# Set tool variables to defaults if not already defined. +# If these are defined, they would typically be defined by a +# setting in the generated portion of this makefile. +# +ifeq ($(CROSS_COMPILE),) +CROSS_COMPILE := $(DEFAULT_CROSS_COMPILE) +endif + +ifeq ($(origin CC),default) +CC := $(CROSS_COMPILE)gcc -xc +endif + +ifeq ($(origin CXX),default) +CXX := $(CROSS_COMPILE)gcc -xc++ +endif + +ifeq ($(origin AS),default) +AS := $(CROSS_COMPILE)gcc +endif + +ifeq ($(origin AR),default) +AR := $(CROSS_COMPILE)ar +endif + +ifeq ($(origin LD),default) +LD := $(CROSS_COMPILE)g++ +endif + +ifeq ($(origin NM),default) +NM := $(CROSS_COMPILE)nm +endif + +ifeq ($(origin RM),default) +RM := $(DEFAULT_RM) +endif + +ifeq ($(origin CP),default) +CP := $(DEFAULT_CP) +endif + +ifeq ($(OBJDUMP),) +OBJDUMP := $(CROSS_COMPILE)objdump +endif + +ifeq ($(OBJCOPY),) +OBJCOPY := $(CROSS_COMPILE)objcopy +endif + +ifeq ($(STACKREPORT),) +ifeq ($(CROSS_COMPILE),nios2-elf-) +STACKREPORT := $(DEFAULT_STACKREPORT) +else +DISABLE_STACKREPORT := 1 +endif +endif + +ifeq ($(DOWNLOAD),) +DOWNLOAD := $(DEFAULT_DOWNLOAD) +endif + +ifeq ($(FLASHPROG),) +FLASHPROG := $(DEFAULT_FLASHPROG) +endif + +ifeq ($(ELFPATCH),) +ELFPATCH := $(DEFAULT_ELFPATCH) +endif + +ifeq ($(MKDIR),) +MKDIR := $(DEFAULT_MKDIR) +endif + +#------------------------------------------------------------------------------ +# PATTERN RULES TO BUILD OBJECTS +#------------------------------------------------------------------------------ + +define compile.c +@$(ECHO) Info: Compiling $< to $@ +@$(MKDIR) $(@D) +$(CC) -MP -MMD -c $(APP_CPPFLAGS) $(APP_CFLAGS) -o $@ $< +$(CC_POST_PROCESS) +endef + +define compile.cpp +@$(ECHO) Info: Compiling $< to $@ +@$(MKDIR) $(@D) +$(CXX) -MP -MMD -c $(APP_CPPFLAGS) $(APP_CXXFLAGS) $(APP_CFLAGS) -o $@ $< +$(CXX_POST_PROCESS) +endef + +# If assembling with the compiler, ensure "-Wa," is prepended to all APP_ASFLAGS +ifeq ($(AS),$(patsubst %as,%,$(AS))) +COMMA := , +APP_ASFLAGS := $(filter-out $(APP_CFLAGS),$(addprefix -Wa$(COMMA),$(patsubst -Wa$(COMMA)%,%,$(APP_ASFLAGS)))) +endif + +define compile.s +@$(ECHO) Info: Assembling $< to $@ +@$(MKDIR) $(@D) +$(AS) -MP -MMD -c $(APP_CPPFLAGS) $(APP_CFLAGS) $(APP_ASFLAGS) -o $@ $< +$(AS_POST_PROCESS) +endef + +ifeq ($(MAKE_VERSION),3.81) +.SECONDEXPANSION: + +$(APP_OBJS_C): $(CONFIG_OBJ_DIR)/%.o: $$(call adjust-path-mixed,%.c) + $(compile.c) + +$(APP_OBJS_CPP): $(CONFIG_OBJ_DIR)/%.o: $$(call adjust-path-mixed,%.cpp) + $(compile.cpp) + +$(APP_OBJS_CC): $(CONFIG_OBJ_DIR)/%.o: $$(call adjust-path-mixed,%.cc) + $(compile.cpp) + +$(APP_OBJS_CXX): $(CONFIG_OBJ_DIR)/%.o: $$(call adjust-path-mixed,%.cxx) + $(compile.cpp) + +$(APP_OBJS_S): $(CONFIG_OBJ_DIR)/%.o: $$(call adjust-path-mixed,%.S) + $(compile.s) + +$(APP_OBJS_SS): $(CONFIG_OBJ_DIR)/%.o: $$(call adjust-path-mixed,%.s) + $(compile.s) + +endif # MAKE_VERSION != 3.81 + +$(CONFIG_OBJ_DIR)/%.o: %.c + $(compile.c) + +$(CONFIG_OBJ_DIR)/%.o: %.cpp + $(compile.cpp) + +$(CONFIG_OBJ_DIR)/%.o: %.cc + $(compile.cpp) + +$(CONFIG_OBJ_DIR)/%.o: %.cxx + $(compile.cpp) + +$(CONFIG_OBJ_DIR)/%.o: %.S + $(compile.s) + +$(CONFIG_OBJ_DIR)/%.o: %.s + $(compile.s) + + +#------------------------------------------------------------------------------ +# PATTERN RULES TO INTERMEDIATE FILES +#------------------------------------------------------------------------------ + +$(CONFIG_OBJ_DIR)/%.s: %.c + @$(ECHO) Info: Compiling $< to $@ + @$(MKDIR) $(@D) + $(CC) -S $(APP_CPPFLAGS) $(APP_CFLAGS) -o $@ $< + +$(CONFIG_OBJ_DIR)/%.s: %.cpp + @$(ECHO) Info: Compiling $< to $@ + @$(MKDIR) $(@D) + $(CXX) -S $(APP_CPPFLAGS) $(APP_CXXFLAGS) $(APP_CFLAGS) -o $@ $< + +$(CONFIG_OBJ_DIR)/%.s: %.cc + @$(ECHO) Info: Compiling $< to $@ + @$(MKDIR) $(@D) + $(CXX) -S $(APP_CPPFLAGS) $(APP_CXXFLAGS) $(APP_CFLAGS) -o $@ $< + +$(CONFIG_OBJ_DIR)/%.s: %.cxx + @$(ECHO) Info: Compiling $< to $@ + @$(MKDIR) $(@D) + $(CXX) -S $(APP_CPPFLAGS) $(APP_CXXFLAGS) $(APP_CFLAGS) -o $@ $< + +$(CONFIG_OBJ_DIR)/%.i: %.c + @$(ECHO) Info: Compiling $< to $@ + @$(MKDIR) $(@D) + $(CC) -E $(APP_CPPFLAGS) $(APP_CFLAGS) -o $@ $< + +$(CONFIG_OBJ_DIR)/%.i: %.cpp + @$(ECHO) Info: Compiling $< to $@ + @$(MKDIR) $(@D) + $(CXX) -E $(APP_CPPFLAGS) $(APP_CXXFLAGS) $(APP_CFLAGS) -o $@ $< + +$(CONFIG_OBJ_DIR)/%.i: %.cc + @$(ECHO) Info: Compiling $< to $@ + @$(MKDIR) $(@D) + $(CXX) -E $(APP_CPPFLAGS) $(APP_CXXFLAGS) $(APP_CFLAGS) -o $@ $< + +$(CONFIG_OBJ_DIR)/%.i: %.cxx + @$(ECHO) Info: Compiling $< to $@ + @$(MKDIR) $(@D) + $(CXX) -E $(APP_CPPFLAGS) $(APP_CXXFLAGS) $(APP_CFLAGS) -o $@ $< + + +#------------------------------------------------------------------------------ +# TARGET RULES +#------------------------------------------------------------------------------ + +.PHONY : help +help : + @$(ECHO) "Summary of Makefile targets" + @$(ECHO) " Build targets:" + @$(ECHO) " all (default) - Application and all libraries (including BSP)" + @$(ECHO) " bsp - Just the BSP" + @$(ECHO) " libs - All libraries (including BSP)" + @$(ECHO) " flash - All flash files" + @$(ECHO) " mem_init_generate - All memory initialization files" +ifeq ($(QSYS),1) + @$(ECHO) " mem_init_install - This target is deprecated for QSys Systems" + @$(ECHO) " --> Use the mem_init_generate target and then" + @$(ECHO) " add the generated meminit.qip file to your" + @$(ECHO) " Quartus II Project." +else # if QSYS != 1 + @$(ECHO) " mem_init_install - Copy memory initialization files to Quartus II project" +endif # QSYS == 1 + @$(ECHO) + @$(ECHO) " Clean targets:" + @$(ECHO) " clean_all - Application and all libraries (including BSP)" + @$(ECHO) " clean - Just the application" + @$(ECHO) " clean_bsp - Just the BSP" + @$(ECHO) " clean_libs - All libraries (including BSP)" + @$(ECHO) + @$(ECHO) " Run targets:" + @$(ECHO) " download-elf - Download and run your elf executable" + @$(ECHO) " program-flash - Program flash contents to the board" + +# Handy rule to skip making libraries and just make application. +.PHONY : app +app : $(ELF) + +ifeq ($(CREATE_OBJDUMP), 1) +app : $(OBJDUMP_NAME) +endif + +ifeq ($(CREATE_ELF_DERIVED_FILES),1) +app : elf_derived_files +endif + +.PHONY: elf_derived_files +elf_derived_files: default_mem_init + +# Handy rule for making just the BSP. +.PHONY : bsp +bsp : + @$(ECHO) Info: Building $(BSP_ROOT_DIR) + @$(MAKE) --no-print-directory -C $(BSP_ROOT_DIR) + + +# Make sure all makeable libraries (including the BSP) are up-to-date. +LIB_TARGETS := $(patsubst %,%-recurs-make-lib,$(MAKEABLE_LIBRARY_ROOT_DIRS)) + +.PHONY : libs +libs : $(LIB_TARGETS) + +ifneq ($(strip $(LIB_TARGETS)),) +$(LIB_TARGETS): %-recurs-make-lib: + @$(ECHO) Info: Building $* + $(MAKE) --no-print-directory -C $* +endif + +ifneq ($(strip $(APP_LDDEPS)),) +$(APP_LDDEPS): libs + @true +endif + +# Rules to force your project to rebuild or relink +# .force_relink file will cause any application that depends on this project to relink +# .force_rebuild file will cause this project to rebuild object files +# .force_rebuild_all file will cause this project and any project that depends on this project to rebuild object files + +FORCE_RELINK_DEP := .force_relink +FORCE_REBUILD_DEP := .force_rebuild +FORCE_REBUILD_ALL_DEP := .force_rebuild_all +FORCE_REBUILD_DEP_LIST := $(CONFIG_OBJ_DIR)/$(FORCE_RELINK_DEP) $(CONFIG_OBJ_DIR)/$(FORCE_REBUILD_DEP) $(FORCE_REBUILD_ALL_DEP) + +$(FORCE_REBUILD_DEP_LIST): + +$(APP_OBJS): $(wildcard $(CONFIG_OBJ_DIR)/$(FORCE_REBUILD_DEP)) $(wildcard $(addsuffix /$(FORCE_REBUILD_ALL_DEP), . $(ALT_LIBRARY_DIRS))) + +$(ELF): $(wildcard $(addsuffix /$(FORCE_RELINK_DEP), $(CONFIG_OBJ_DIR) $(ALT_LIBRARY_DIRS))) + + +# Clean just the application. +.PHONY : clean +ifeq ($(CREATE_ELF_DERIVED_FILES),1) +clean : clean_elf_derived_files +endif + +clean : + @$(RM) -r $(ELF) $(OBJDUMP_NAME) $(LINKER_MAP_NAME) $(OBJ_ROOT_DIR) $(RUNTIME_ROOT_DIR) $(FORCE_REBUILD_DEP_LIST) + @$(ECHO) [$(APP_NAME) clean complete] + +# Clean just the BSP. +.PHONY : clean_bsp +clean_bsp : + @$(ECHO) Info: Cleaning $(BSP_ROOT_DIR) + @$(MAKE) --no-print-directory -C $(BSP_ROOT_DIR) clean + +# Clean all makeable libraries including the BSP. +LIB_CLEAN_TARGETS := $(patsubst %,%-recurs-make-clean-lib,$(MAKEABLE_LIBRARY_ROOT_DIRS)) + +.PHONY : clean_libs +clean_libs : $(LIB_CLEAN_TARGETS) + +ifneq ($(strip $(LIB_CLEAN_TARGETS)),) +$(LIB_CLEAN_TARGETS): %-recurs-make-clean-lib: + @$(ECHO) Info: Cleaning $* + $(MAKE) --no-print-directory -C $* clean +endif + +.PHONY: clean_elf_derived_files +clean_elf_derived_files: mem_init_clean + +# Clean application and all makeable libraries including the BSP. +.PHONY : clean_all +clean_all : clean mem_init_clean clean_libs + +# Include the dependency files unless the make goal is performing a clean +# of the application. +ifneq ($(firstword $(MAKECMDGOALS)),clean) +ifneq ($(firstword $(MAKECMDGOALS)),clean_all) +-include $(APP_DEPS) +endif +endif + +.PHONY : download-elf +download-elf : $(ELF) + @if [ "$(DOWNLOAD)" = "none" ]; \ + then \ + $(ECHO) Downloading $(ELF) not supported; \ + else \ + $(ECHO) Info: Downloading $(ELF); \ + $(DOWNLOAD) --go --cpu_name=$(CPU_NAME) $(DOWNLOAD_CABLE_FLAG) $(SOPC_SYSID_FLAG) $(DOWNLOAD_JDI_FLAG) $(WRITE_GMON_OPTION) $(ELF); \ + fi + +# Delete the target of a rule if it has changed and its commands exit +# with a nonzero exit status. +.DELETE_ON_ERROR: + +# Rules for flash programming commands +PROGRAM_FLASH_SUFFIX := -program +PROGRAM_FLASH_TARGET := $(addsuffix $(PROGRAM_FLASH_SUFFIX), $(FLASH_FILES)) + +.PHONY : program-flash +program-flash : $(PROGRAM_FLASH_TARGET) + +.PHONY : $(PROGRAM_FLASH_TARGET) +$(PROGRAM_FLASH_TARGET) : flash + @if [ "$(FLASHPROG)" = "none" ]; \ + then \ + $(ECHO) Programming flash not supported; \ + else \ + $(ECHO) Info: Programming $(basename $@).flash; \ + if [ -z "$($(basename $@)_EPCS_FLAGS)" ]; \ + then \ + $(ECHO) $(FLASHPROG) $(SOPC_SYSID_FLAG) --base=$($(basename $@)_START) $(basename $@).flash; \ + $(FLASHPROG) $(DOWNLOAD_CABLE_FLAG) $(SOPC_SYSID_FLAG) --base=$($(basename $@)_START) $(basename $@).flash; \ + else \ + $(ECHO) $(FLASHPROG) $(SOPC_SYSID_FLAG) --epcs --base=$($(basename $@)_START) $(basename $@).flash; \ + $(FLASHPROG) $(DOWNLOAD_CABLE_FLAG) $(SOPC_SYSID_FLAG) --epcs --base=$($(basename $@)_START) $(basename $@).flash; \ + fi \ + fi + + +# Rules for simulating with an HDL Simulator [QSYS only] +ifeq ($(QSYS),1) +IP_MAKE_SIMSCRIPT := ip-make-simscript + +ifeq ($(VSIM),) +VSIM_EXE := "$(if $(VSIM_DIR),$(VSIM_DIR)/,)vsim" +ifeq ($(ENABLE_VSIM_GUI),1) +VSIM := $(VSIM_EXE) -gui +else +VSIM := $(VSIM_EXE) -c +endif # ENABLE_VSIM_GUI == 1 +endif # VSIM not set + +ifeq ($(SPD),) +ifneq ($(ABS_QUARTUS_PROJECT_DIR),) +ifneq ($(SOPC_NAME),) +SPD := $(ABS_QUARTUS_PROJECT_DIR)/$(SOPC_NAME)_tb.spd +endif # SOPC_NAME set +endif # ABS_QUARTUS_PROJECT_DIR set +endif # SPD == empty string + +ifeq ($(MSIM_SCRIPT),) +SIM_SCRIPT_DIR := $(RUNTIME_ROOT_DIR)/sim +MSIM_SCRIPT := $(SIM_SCRIPT_DIR)/mentor/msim_setup.tcl +endif # MSIM_SCRIPT == empty string + +ifeq ($(MAKE_VERSION),3.81) +ABS_MEM_INIT_DESCRIPTOR_FILE := $(abspath $(MEM_INIT_DESCRIPTOR_FILE)) +else +ABS_MEM_INIT_DESCRIPTOR_FILE := $(call adjust-path-mixed,$(shell pwd))/$(MEM_INIT_DESCRIPTOR_FILE) +endif + +$(MSIM_SCRIPT): $(SPD) $(MEM_INIT_DESCRIPTOR_FILE) +ifeq ($(SPD),) + $(error No SPD file specified. Ensure QUARTUS_PROJECT_DIR variable is set) +endif + @$(MKDIR) $(SIM_SCRIPT_DIR) + $(IP_MAKE_SIMSCRIPT) --spd=$(SPD) --spd=$(MEM_INIT_DESCRIPTOR_FILE) --output-directory=$(SIM_SCRIPT_DIR) + +VSIM_COMMAND = \ + cd $(dir $(MSIM_SCRIPT)) && \ + $(VSIM) -do "do $(notdir $(MSIM_SCRIPT)); ld; $(if $(VSIM_RUN_TIME),run ${VSIM_RUN_TIME};quit;)" + +.PHONY: sim +sim: $(MSIM_SCRIPT) mem_init_generate +ifeq ($(MSIM_SCRIPT),) + $(error MSIM_SCRIPT not set) +endif + $(VSIM_COMMAND) + +endif # QSYS == 1 + + +#------------------------------------------------------------------------------ +# ELF TARGET RULE +#------------------------------------------------------------------------------ +# Rule for constructing the executable elf file. +$(ELF) : $(APP_OBJS) $(LINKER_SCRIPT) $(APP_LDDEPS) + @$(ECHO) Info: Linking $@ + $(LD) $(APP_LDFLAGS) $(APP_CFLAGS) -o $@ $(filter-out $(CRT0),$(APP_OBJS)) $(APP_LIBS) $(APP_BSP_DEP_LIBS) +ifneq ($(DISABLE_ELFPATCH),1) + $(ELFPATCH) $@ $(ELF_PATCH_FLAG) +endif +ifneq ($(DISABLE_STACKREPORT),1) + @bash -c "$(STACKREPORT) $@" +endif + +$(OBJDUMP_NAME) : $(ELF) + @$(ECHO) Info: Creating $@ + $(OBJDUMP) $(OBJDUMP_FLAGS) $< >$@ + +# Rule for printing the name of the elf file +.PHONY: print-elf-name +print-elf-name: + @$(ECHO) $(ELF) + + diff --git a/software/qsys_tutorial_key3/create-this-app b/software/qsys_tutorial_key3/create-this-app new file mode 100644 index 0000000..c88eacb --- /dev/null +++ b/software/qsys_tutorial_key3/create-this-app @@ -0,0 +1,114 @@ +#!/bin/bash +# +# This script creates the hello_world_small application in this directory. + + +BSP_DIR=../qsys_tutorial_key3_bsp +QUARTUS_PROJECT_DIR=../../ +NIOS2_APP_GEN_ARGS="--elf-name qsys_tutorial_key3.elf --set APP_CFLAGS_OPTIMIZATION -Os --set OBJDUMP_INCLUDE_SOURCE 1 --src-files hello_world_small.c" + + +# First, check to see if $SOPC_KIT_NIOS2 environmental variable is set. +# This variable is required for the command line tools to execute correctly. +if [ -z "${SOPC_KIT_NIOS2}" ] +then + echo Required \$SOPC_KIT_NIOS2 Environmental Variable is not set! + exit 1 +fi + + +# Also make sure that the APP has not been created already. Check for +# existence of Makefile in the app directory +if [ -f ./Makefile ] +then + echo Application has already been created! Delete Makefile if you want to create a new application makefile + exit 1 +fi + + +# We are selecting hal_reduced_footprint bsp because it supports this application. +# Check to see if the hal_reduced_footprint has already been generated by checking for +# existence of the public.mk file. If not, we need to run +# create-this-bsp file to generate the bsp. +if [ ! -f ${BSP_DIR}/public.mk ]; then + # Since BSP doesn't exist, create the BSP + # Pass any command line arguments passed to this script to the BSP. + pushd ${BSP_DIR} >> /dev/null + ./create-this-bsp "$@" || { + echo "create-this-bsp failed" + exit 1 + } + popd >> /dev/null +fi + + +# Don't run make if create-this-app script is called with --no-make arg +SKIP_MAKE= +while [ $# -gt 0 ] +do + case "$1" in + --no-make) + SKIP_MAKE=1 + ;; + esac + shift +done + + +# Now we also need to go copy the sources for this application to the +# local directory. +find "${SOPC_KIT_NIOS2}/examples/software/hello_world_small/" -name '*.c' -or -name '*.h' -or -name 'hostfs*' | xargs -i cp -L {} ./ || { + echo "failed during copying example source files" + exit 1 +} + +find "${SOPC_KIT_NIOS2}/examples/software/hello_world_small/" -name 'readme.txt' -or -name 'Readme.txt' | xargs -i cp -L {} ./ || { + echo "failed copying readme file" +} + +if [ -d "${SOPC_KIT_NIOS2}/examples/software/hello_world_small/system" ] +then + cp -RL "${SOPC_KIT_NIOS2}/examples/software/hello_world_small/system" . || { + echo "failed during copying project support files" + exit 1 + } +fi + +chmod -R +w . || { + echo "failed during changing file permissions" + exit 1 +} + +cmd="nios2-app-generate-makefile --bsp-dir ${BSP_DIR} --set QUARTUS_PROJECT_DIR=${QUARTUS_PROJECT_DIR} ${NIOS2_APP_GEN_ARGS}" + +echo "create-this-app: Running \"${cmd}\"" +$cmd || { + echo "nios2-app-generate-makefile failed" + exit 1 +} + +if [ -z "$SKIP_MAKE" ]; then + cmd="make" + + echo "create-this-app: Running \"$cmd\"" + $cmd || { + echo "make failed" + exit 1 + } + + echo + echo "To download and run the application:" + echo " 1. Make sure the board is connected to the system." + echo " 2. Run 'nios2-configure-sof ' to configure the FPGA with the hardware design." + echo " 3. If you have a stdio device, run 'nios2-terminal' in a different shell." + echo " 4. Run 'make download-elf' from the application directory." + echo + echo "To debug the application:" + echo " Import the project into Nios II Software Build Tools for Eclipse." + echo " Refer to Nios II Software Build Tools for Eclipse Documentation for more information." + echo + echo -e "" +fi + + +exit 0 diff --git a/software/qsys_tutorial_key3/hello_world_small.c b/software/qsys_tutorial_key3/hello_world_small.c new file mode 100644 index 0000000..a0c31d7 --- /dev/null +++ b/software/qsys_tutorial_key3/hello_world_small.c @@ -0,0 +1,140 @@ +/* + * "Small Hello World" example. + * + * This example prints 'Hello from Nios II' to the STDOUT stream. It runs on + * the Nios II 'standard', 'full_featured', 'fast', and 'low_cost' example + * designs. It requires a STDOUT device in your system's hardware. + * + * The purpose of this example is to demonstrate the smallest possible Hello + * World application, using the Nios II HAL library. The memory footprint + * of this hosted application is ~332 bytes by default using the standard + * reference design. For a more fully featured Hello World application + * example, see the example titled "Hello World". + * + * The memory footprint of this example has been reduced by making the + * following changes to the normal "Hello World" example. + * Check in the Nios II Software Developers Manual for a more complete + * description. + * + * In the SW Application project (small_hello_world): + * + * - In the C/C++ Build page + * + * - Set the Optimization Level to -Os + * + * In System Library project (small_hello_world_syslib): + * - In the C/C++ Build page + * + * - Set the Optimization Level to -Os + * + * - Define the preprocessor option ALT_NO_INSTRUCTION_EMULATION + * This removes software exception handling, which means that you cannot + * run code compiled for Nios II cpu with a hardware multiplier on a core + * without a the multiply unit. Check the Nios II Software Developers + * Manual for more details. + * + * - In the System Library page: + * - Set Periodic system timer and Timestamp timer to none + * This prevents the automatic inclusion of the timer driver. + * + * - Set Max file descriptors to 4 + * This reduces the size of the file handle pool. + * + * - Check Main function does not exit + * - Uncheck Clean exit (flush buffers) + * This removes the unneeded call to exit when main returns, since it + * won't. + * + * - Check Don't use C++ + * This builds without the C++ support code. + * + * - Check Small C library + * This uses a reduced functionality C library, which lacks + * support for buffering, file IO, floating point and getch(), etc. + * Check the Nios II Software Developers Manual for a complete list. + * + * - Check Reduced device drivers + * This uses reduced functionality drivers if they're available. For the + * standard design this means you get polled UART and JTAG UART drivers, + * no support for the LCD driver and you lose the ability to program + * CFI compliant flash devices. + * + * - Check Access device drivers directly + * This bypasses the device file system to access device drivers directly. + * This eliminates the space required for the device file system services. + * It also provides a HAL version of libc services that access the drivers + * directly, further reducing space. Only a limited number of libc + * functions are available in this configuration. + * + * - Use ALT versions of stdio routines: + * + * Function Description + * =============== ===================================== + * alt_printf Only supports %s, %x, and %c ( < 1 Kbyte) + * alt_putstr Smaller overhead than puts with direct drivers + * Note this function doesn't add a newline. + * alt_putchar Smaller overhead than putchar with direct drivers + * alt_getchar Smaller overhead than getchar with direct drivers + * + */ + +#include "sys/alt_stdio.h" + +#define switches (volatile int *) 0x0002010 +#define ledrs (volatile int *) 0x0002020 +#define push_switches (volatile char *) 0x0002000 + +typedef struct { + unsigned int other : 10; + unsigned int code : 8; +} switches_t; + +typedef union { + int data; + switches_t sw; +} sw_t; + +void main() +{ + int buf = 0; + unsigned char status = 0; + while(1) { + sw_t s; + s.data = *switches; + + switch (status) { + case 0: + if (*push_switches != 7) status = 1; + buf = s.sw.code; + break; + case 1: + if (*push_switches == 7) status = 2; + break; + case 2: + *ledrs += buf; + status = 0; + break; + default: + status = 0; + break; + } + /* + *ledrs = *push_switches; + s.data = *switches; + *ledrs |= s.sw.code; + */ + //alt_putchar(s.sw.code); + } +#if 0 + unsigned long i = 0; + volatile int j = 0; + while(1){ + *ledrs = i++; + if (i > (unsigned long)1<<18) i = 0; + for (j = 0; j < 100; j++); + } + + //while (1) + //*leds = *switches; +#endif +} diff --git a/software/qsys_tutorial_key3/obj/default/hello_world_small.d b/software/qsys_tutorial_key3/obj/default/hello_world_small.d new file mode 100644 index 0000000..f939c96 --- /dev/null +++ b/software/qsys_tutorial_key3/obj/default/hello_world_small.d @@ -0,0 +1,4 @@ +obj/default/hello_world_small.o: hello_world_small.c \ + ../qsys_tutorial_key3_bsp//HAL/inc/sys/alt_stdio.h + +../qsys_tutorial_key3_bsp//HAL/inc/sys/alt_stdio.h: diff --git a/software/qsys_tutorial_key3/obj/default/hello_world_small.o b/software/qsys_tutorial_key3/obj/default/hello_world_small.o new file mode 100644 index 0000000..7685feb --- /dev/null +++ b/software/qsys_tutorial_key3/obj/default/hello_world_small.o Binary files differ diff --git a/software/qsys_tutorial_key3/qsys_tutorial_key3.elf b/software/qsys_tutorial_key3/qsys_tutorial_key3.elf new file mode 100644 index 0000000..e6c5b3c --- /dev/null +++ b/software/qsys_tutorial_key3/qsys_tutorial_key3.elf Binary files differ diff --git a/software/qsys_tutorial_key3/qsys_tutorial_key3.map b/software/qsys_tutorial_key3/qsys_tutorial_key3.map new file mode 100644 index 0000000..bb39af4 --- /dev/null +++ b/software/qsys_tutorial_key3/qsys_tutorial_key3.map @@ -0,0 +1,412 @@ +Archive member included because of file (symbol) + +../qsys_tutorial_key3_bsp/\libhal_bsp.a(alt_load.o) + ../qsys_tutorial_key3_bsp//obj/HAL/src/crt0.o (alt_load) +../qsys_tutorial_key3_bsp/\libhal_bsp.a(alt_main.o) + ../qsys_tutorial_key3_bsp//obj/HAL/src/crt0.o (alt_main) +../qsys_tutorial_key3_bsp/\libhal_bsp.a(alt_sys_init.o) + ../qsys_tutorial_key3_bsp/\libhal_bsp.a(alt_main.o) (alt_sys_init) +../qsys_tutorial_key3_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) + ../qsys_tutorial_key3_bsp/\libhal_bsp.a(alt_load.o) (alt_dcache_flush_all) +../qsys_tutorial_key3_bsp/\libhal_bsp.a(alt_icache_flush_all.o) + ../qsys_tutorial_key3_bsp/\libhal_bsp.a(alt_load.o) (alt_icache_flush_all) +../qsys_tutorial_key3_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) + ../qsys_tutorial_key3_bsp/\libhal_bsp.a(alt_sys_init.o) (altera_nios2_qsys_irq_init) + +Memory Configuration + +Name Origin Length Attributes +reset 0x00000000 0x00000020 +onchip_memory 0x00000020 0x00000fe0 +*default* 0x00000000 0xffffffff + +Linker script and memory map + +LOAD ../qsys_tutorial_key3_bsp//obj/HAL/src/crt0.o + 0x0000000c exit = _exit +LOAD obj/default/hello_world_small.o +LOAD c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libstdc++.a +LOAD c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libm.a +LOAD c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a +START GROUP +LOAD c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a +LOAD c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a +LOAD ../qsys_tutorial_key3_bsp/\libhal_bsp.a +END GROUP +LOAD c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a + 0x00000000 __alt_mem_onchip_memory = 0x0 + +.entry 0x00000000 0x20 + *(.entry) + .entry 0x00000000 0x20 ../qsys_tutorial_key3_bsp//obj/HAL/src/crt0.o + 0x00000000 __reset + 0x0000000c _exit + +.exceptions 0x00000020 0x0 + 0x00000020 PROVIDE (__ram_exceptions_start, ABSOLUTE (.)) + 0x00000020 . = ALIGN (0x20) + *(.irq) + *(.exceptions.entry.label) + *(.exceptions.entry.user) + *(.exceptions.entry) + *(.exceptions.irqtest.user) + *(.exceptions.irqtest) + *(.exceptions.irqhandler.user) + *(.exceptions.irqhandler) + *(.exceptions.irqreturn.user) + *(.exceptions.irqreturn) + *(.exceptions.notirq.label) + *(.exceptions.notirq.user) + *(.exceptions.notirq) + *(.exceptions.soft.user) + *(.exceptions.soft) + *(.exceptions.unknown.user) + *(.exceptions.unknown) + *(.exceptions.exit.label) + *(.exceptions.exit.user) + *(.exceptions.exit) + *(.exceptions) + 0x00000020 PROVIDE (__ram_exceptions_end, ABSOLUTE (.)) + 0x00000020 PROVIDE (__flash_exceptions_start, LOADADDR (.exceptions)) + +.text 0x00000020 0x1b8 + 0x00000020 PROVIDE (stext, ABSOLUTE (.)) + *(.interp) + *(.hash) + *(.dynsym) + *(.dynstr) + *(.gnu.version) + *(.gnu.version_d) + *(.gnu.version_r) + *(.rel.init) + *(.rela.init) + *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) + *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) + *(.rel.fini) + *(.rela.fini) + *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) + *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) + *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) + *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) + *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) + *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) + *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) + *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) + *(.rel.ctors) + *(.rela.ctors) + *(.rel.dtors) + *(.rela.dtors) + *(.rel.got) + *(.rela.got) + *(.rel.sdata .rel.sdata.* .rel.gnu.linkonce.s.*) + *(.rela.sdata .rela.sdata.* .rela.gnu.linkonce.s.*) + *(.rel.sbss .rel.sbss.* .rel.gnu.linkonce.sb.*) + *(.rela.sbss .rela.sbss.* .rela.gnu.linkonce.sb.*) + *(.rel.sdata2 .rel.sdata2.* .rel.gnu.linkonce.s2.*) + *(.rela.sdata2 .rela.sdata2.* .rela.gnu.linkonce.s2.*) + *(.rel.sbss2 .rel.sbss2.* .rel.gnu.linkonce.sb2.*) + *(.rela.sbss2 .rela.sbss2.* .rela.gnu.linkonce.sb2.*) + *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) + *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) + *(.rel.plt) + *(.rela.plt) + *(.rel.dyn) + *(.init) + *(.plt) + *(.text .stub .text.* .gnu.linkonce.t.*) + .text 0x00000020 0x3c ../qsys_tutorial_key3_bsp//obj/HAL/src/crt0.o + 0x00000020 _start + .text 0x0000005c 0x90 obj/default/hello_world_small.o + 0x0000005c main + .text 0x000000ec 0x8c ../qsys_tutorial_key3_bsp/\libhal_bsp.a(alt_load.o) + 0x0000010c alt_load + .text 0x00000178 0x2c ../qsys_tutorial_key3_bsp/\libhal_bsp.a(alt_main.o) + 0x00000178 alt_main + .text 0x000001a4 0x24 ../qsys_tutorial_key3_bsp/\libhal_bsp.a(alt_sys_init.o) + 0x000001a4 alt_sys_init + 0x000001a8 alt_irq_init + .text 0x000001c8 0x4 ../qsys_tutorial_key3_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) + 0x000001c8 alt_dcache_flush_all + .text 0x000001cc 0x4 ../qsys_tutorial_key3_bsp/\libhal_bsp.a(alt_icache_flush_all.o) + 0x000001cc alt_icache_flush_all + .text 0x000001d0 0x8 ../qsys_tutorial_key3_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) + 0x000001d0 altera_nios2_qsys_irq_init + *(.gnu.warning.*) + *(.fini) + 0x000001d8 PROVIDE (__etext, ABSOLUTE (.)) + 0x000001d8 PROVIDE (_etext, ABSOLUTE (.)) + 0x000001d8 PROVIDE (etext, ABSOLUTE (.)) + *(.eh_frame_hdr) + 0x000001d8 . = ALIGN (0x4) + 0x000001d8 PROVIDE (__preinit_array_start, ABSOLUTE (.)) + *(.preinit_array) + 0x000001d8 PROVIDE (__preinit_array_end, ABSOLUTE (.)) + 0x000001d8 PROVIDE (__init_array_start, ABSOLUTE (.)) + *(.init_array) + 0x000001d8 PROVIDE (__init_array_end, ABSOLUTE (.)) + 0x000001d8 PROVIDE (__fini_array_start, ABSOLUTE (.)) + *(.fini_array) + 0x000001d8 PROVIDE (__fini_array_end, ABSOLUTE (.)) + *(.eh_frame) + *(.gcc_except_table) + *(.dynamic) + 0x000001d8 PROVIDE (__CTOR_LIST__, ABSOLUTE (.)) + *(.ctors) + *(SORT(.ctors.*)) + 0x000001d8 PROVIDE (__CTOR_END__, ABSOLUTE (.)) + 0x000001d8 PROVIDE (__DTOR_LIST__, ABSOLUTE (.)) + *(.dtors) + *(SORT(.dtors.*)) + 0x000001d8 PROVIDE (__DTOR_END__, ABSOLUTE (.)) + *(.jcr) + 0x000001d8 . = ALIGN (0x4) + +.rodata 0x000001d8 0x0 + 0x000001d8 PROVIDE (__ram_rodata_start, ABSOLUTE (.)) + 0x000001d8 . = ALIGN (0x4) + *(.rodata .rodata.* .gnu.linkonce.r.*) + *(.rodata1) + 0x000001d8 . = ALIGN (0x4) + 0x000001d8 PROVIDE (__ram_rodata_end, ABSOLUTE (.)) + 0x000001d8 PROVIDE (__flash_rodata_start, LOADADDR (.rodata)) + +.rwdata 0x000001d8 0x4 load address 0x000001dc + 0x000001d8 PROVIDE (__ram_rwdata_start, ABSOLUTE (.)) + 0x000001d8 . = ALIGN (0x4) + *(.got.plt) + *(.got) + *(.data1) + *(.data .data.* .gnu.linkonce.d.*) + .data 0x000001d8 0x0 ../qsys_tutorial_key3_bsp//obj/HAL/src/crt0.o + .data 0x000001d8 0x0 obj/default/hello_world_small.o + .data 0x000001d8 0x0 ../qsys_tutorial_key3_bsp/\libhal_bsp.a(alt_load.o) + .data 0x000001d8 0x0 ../qsys_tutorial_key3_bsp/\libhal_bsp.a(alt_main.o) + .data 0x000001d8 0x0 ../qsys_tutorial_key3_bsp/\libhal_bsp.a(alt_sys_init.o) + .data 0x000001d8 0x0 ../qsys_tutorial_key3_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) + .data 0x000001d8 0x0 ../qsys_tutorial_key3_bsp/\libhal_bsp.a(alt_icache_flush_all.o) + .data 0x000001d8 0x0 ../qsys_tutorial_key3_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) + 0x000081d8 _gp = ABSOLUTE ((. + 0x8000)) + 0x000081d8 PROVIDE (gp, _gp) + *(.rwdata .rwdata.*) + *(.sdata .sdata.* .gnu.linkonce.s.*) + .sdata 0x000001d8 0x4 ../qsys_tutorial_key3_bsp/\libhal_bsp.a(alt_sys_init.o) + 0x000001d8 jtag_uart + *(.sdata2 .sdata2.* .gnu.linkonce.s2.*) + 0x000001dc . = ALIGN (0x4) + 0x000001dc _edata = ABSOLUTE (.) + 0x000001dc PROVIDE (edata, ABSOLUTE (.)) + 0x000001dc PROVIDE (__ram_rwdata_end, ABSOLUTE (.)) + 0x000001dc PROVIDE (__flash_rwdata_start, LOADADDR (.rwdata)) + +.bss 0x000001e0 0xc + 0x000001e0 __bss_start = ABSOLUTE (.) + 0x000001e0 PROVIDE (__sbss_start, ABSOLUTE (.)) + 0x000001e0 PROVIDE (___sbss_start, ABSOLUTE (.)) + *(.dynsbss) + *(.sbss .sbss.* .gnu.linkonce.sb.*) + .sbss 0x000001e0 0xc ../qsys_tutorial_key3_bsp/\libhal_bsp.a(alt_main.o) + 0x000001e0 alt_argc + 0x000001e4 alt_argv + 0x000001e8 alt_envp + *(.sbss2 .sbss2.* .gnu.linkonce.sb2.*) + *(.scommon) + 0x000001ec PROVIDE (__sbss_end, ABSOLUTE (.)) + 0x000001ec PROVIDE (___sbss_end, ABSOLUTE (.)) + *(.dynbss) + *(.bss .bss.* .gnu.linkonce.b.*) + .bss 0x000001ec 0x0 ../qsys_tutorial_key3_bsp//obj/HAL/src/crt0.o + .bss 0x000001ec 0x0 obj/default/hello_world_small.o + .bss 0x000001ec 0x0 ../qsys_tutorial_key3_bsp/\libhal_bsp.a(alt_load.o) + .bss 0x000001ec 0x0 ../qsys_tutorial_key3_bsp/\libhal_bsp.a(alt_main.o) + .bss 0x000001ec 0x0 ../qsys_tutorial_key3_bsp/\libhal_bsp.a(alt_sys_init.o) + .bss 0x000001ec 0x0 ../qsys_tutorial_key3_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) + .bss 0x000001ec 0x0 ../qsys_tutorial_key3_bsp/\libhal_bsp.a(alt_icache_flush_all.o) + .bss 0x000001ec 0x0 ../qsys_tutorial_key3_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) + *(COMMON) + 0x000001ec . = ALIGN (0x4) + 0x000001ec __bss_end = ABSOLUTE (.) + +.onchip_memory 0x000001ec 0x0 + 0x000001ec PROVIDE (_alt_partition_onchip_memory_start, ABSOLUTE (.)) + *(.onchip_memory. onchip_memory.*) + 0x000001ec . = ALIGN (0x4) + 0x000001ec PROVIDE (_alt_partition_onchip_memory_end, ABSOLUTE (.)) + 0x000001ec _end = ABSOLUTE (.) + 0x000001ec end = ABSOLUTE (.) + 0x000001ec __alt_stack_base = ABSOLUTE (.) + 0x000001ec PROVIDE (_alt_partition_onchip_memory_load_addr, LOADADDR (.onchip_memory)) + +.stab + *(.stab) + +.stabstr + *(.stabstr) + +.stab.excl + *(.stab.excl) + +.stab.exclstr + *(.stab.exclstr) + +.stab.index + *(.stab.index) + +.stab.indexstr + *(.stab.indexstr) + +.comment 0x00000000 0x26 + *(.comment) + .comment 0x00000000 0x26 obj/default/hello_world_small.o + 0x27 (size before relaxing) + .comment 0x00000000 0x27 ../qsys_tutorial_key3_bsp/\libhal_bsp.a(alt_load.o) + .comment 0x00000000 0x27 ../qsys_tutorial_key3_bsp/\libhal_bsp.a(alt_main.o) + .comment 0x00000000 0x27 ../qsys_tutorial_key3_bsp/\libhal_bsp.a(alt_sys_init.o) + .comment 0x00000000 0x27 ../qsys_tutorial_key3_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) + .comment 0x00000000 0x27 ../qsys_tutorial_key3_bsp/\libhal_bsp.a(alt_icache_flush_all.o) + .comment 0x00000000 0x27 ../qsys_tutorial_key3_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) + +.debug + *(.debug) + +.line + *(.line) + +.debug_srcinfo + *(.debug_srcinfo) + +.debug_sfnames + *(.debug_sfnames) + +.debug_aranges 0x00000000 0x108 + *(.debug_aranges) + .debug_aranges + 0x00000000 0x28 ../qsys_tutorial_key3_bsp//obj/HAL/src/crt0.o + .debug_aranges + 0x00000028 0x20 obj/default/hello_world_small.o + .debug_aranges + 0x00000048 0x20 ../qsys_tutorial_key3_bsp/\libhal_bsp.a(alt_load.o) + .debug_aranges + 0x00000068 0x20 ../qsys_tutorial_key3_bsp/\libhal_bsp.a(alt_main.o) + .debug_aranges + 0x00000088 0x20 ../qsys_tutorial_key3_bsp/\libhal_bsp.a(alt_sys_init.o) + .debug_aranges + 0x000000a8 0x20 ../qsys_tutorial_key3_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) + .debug_aranges + 0x000000c8 0x20 ../qsys_tutorial_key3_bsp/\libhal_bsp.a(alt_icache_flush_all.o) + .debug_aranges + 0x000000e8 0x20 ../qsys_tutorial_key3_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) + +.debug_pubnames + 0x00000000 0x149 + *(.debug_pubnames) + .debug_pubnames + 0x00000000 0x1b obj/default/hello_world_small.o + .debug_pubnames + 0x0000001b 0x1f ../qsys_tutorial_key3_bsp/\libhal_bsp.a(alt_load.o) + .debug_pubnames + 0x0000003a 0x46 ../qsys_tutorial_key3_bsp/\libhal_bsp.a(alt_main.o) + .debug_pubnames + 0x00000080 0x42 ../qsys_tutorial_key3_bsp/\libhal_bsp.a(alt_sys_init.o) + .debug_pubnames + 0x000000c2 0x2b ../qsys_tutorial_key3_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) + .debug_pubnames + 0x000000ed 0x2b ../qsys_tutorial_key3_bsp/\libhal_bsp.a(alt_icache_flush_all.o) + .debug_pubnames + 0x00000118 0x31 ../qsys_tutorial_key3_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) + +.debug_info 0x00000000 0x6dd + *(.debug_info .gnu.linkonce.wi.*) + .debug_info 0x00000000 0x82 ../qsys_tutorial_key3_bsp//obj/HAL/src/crt0.o + .debug_info 0x00000082 0xe4 obj/default/hello_world_small.o + .debug_info 0x00000166 0x12e ../qsys_tutorial_key3_bsp/\libhal_bsp.a(alt_load.o) + .debug_info 0x00000294 0x125 ../qsys_tutorial_key3_bsp/\libhal_bsp.a(alt_main.o) + .debug_info 0x000003b9 0x17d ../qsys_tutorial_key3_bsp/\libhal_bsp.a(alt_sys_init.o) + .debug_info 0x00000536 0x8d ../qsys_tutorial_key3_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) + .debug_info 0x000005c3 0x8d ../qsys_tutorial_key3_bsp/\libhal_bsp.a(alt_icache_flush_all.o) + .debug_info 0x00000650 0x8d ../qsys_tutorial_key3_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) + +.debug_abbrev 0x00000000 0x3ba + *(.debug_abbrev) + .debug_abbrev 0x00000000 0x12 ../qsys_tutorial_key3_bsp//obj/HAL/src/crt0.o + .debug_abbrev 0x00000012 0xcb obj/default/hello_world_small.o + .debug_abbrev 0x000000dd 0x97 ../qsys_tutorial_key3_bsp/\libhal_bsp.a(alt_load.o) + .debug_abbrev 0x00000174 0xa6 ../qsys_tutorial_key3_bsp/\libhal_bsp.a(alt_main.o) + .debug_abbrev 0x0000021a 0xe3 ../qsys_tutorial_key3_bsp/\libhal_bsp.a(alt_sys_init.o) + .debug_abbrev 0x000002fd 0x3f ../qsys_tutorial_key3_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) + .debug_abbrev 0x0000033c 0x3f ../qsys_tutorial_key3_bsp/\libhal_bsp.a(alt_icache_flush_all.o) + .debug_abbrev 0x0000037b 0x3f ../qsys_tutorial_key3_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) + +.debug_line 0x00000000 0xe24 + *(.debug_line) + .debug_line 0x00000000 0x66 ../qsys_tutorial_key3_bsp//obj/HAL/src/crt0.o + .debug_line 0x00000066 0x127 obj/default/hello_world_small.o + .debug_line 0x0000018d 0x217 ../qsys_tutorial_key3_bsp/\libhal_bsp.a(alt_load.o) + .debug_line 0x000003a4 0x2c2 ../qsys_tutorial_key3_bsp/\libhal_bsp.a(alt_main.o) + .debug_line 0x00000666 0x286 ../qsys_tutorial_key3_bsp/\libhal_bsp.a(alt_sys_init.o) + .debug_line 0x000008ec 0x1b5 ../qsys_tutorial_key3_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) + .debug_line 0x00000aa1 0x1b5 ../qsys_tutorial_key3_bsp/\libhal_bsp.a(alt_icache_flush_all.o) + .debug_line 0x00000c56 0x1ce ../qsys_tutorial_key3_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) + +.debug_frame 0x00000000 0x118 + *(.debug_frame) + .debug_frame 0x00000000 0x20 obj/default/hello_world_small.o + .debug_frame 0x00000020 0x38 ../qsys_tutorial_key3_bsp/\libhal_bsp.a(alt_load.o) + .debug_frame 0x00000058 0x28 ../qsys_tutorial_key3_bsp/\libhal_bsp.a(alt_main.o) + .debug_frame 0x00000080 0x38 ../qsys_tutorial_key3_bsp/\libhal_bsp.a(alt_sys_init.o) + .debug_frame 0x000000b8 0x20 ../qsys_tutorial_key3_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) + .debug_frame 0x000000d8 0x20 ../qsys_tutorial_key3_bsp/\libhal_bsp.a(alt_icache_flush_all.o) + .debug_frame 0x000000f8 0x20 ../qsys_tutorial_key3_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) + +.debug_str 0x00000000 0x3ed + *(.debug_str) + .debug_str 0x00000000 0xa2 obj/default/hello_world_small.o + 0xb4 (size before relaxing) + .debug_str 0x000000a2 0x184 ../qsys_tutorial_key3_bsp/\libhal_bsp.a(alt_load.o) + 0x1d7 (size before relaxing) + .debug_str 0x00000226 0x75 ../qsys_tutorial_key3_bsp/\libhal_bsp.a(alt_main.o) + 0x15b (size before relaxing) + .debug_str 0x0000029b 0xaf ../qsys_tutorial_key3_bsp/\libhal_bsp.a(alt_sys_init.o) + 0x1ce (size before relaxing) + .debug_str 0x0000034a 0x34 ../qsys_tutorial_key3_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) + 0x11a (size before relaxing) + .debug_str 0x0000037e 0x34 ../qsys_tutorial_key3_bsp/\libhal_bsp.a(alt_icache_flush_all.o) + 0x11a (size before relaxing) + .debug_str 0x000003b2 0x3b ../qsys_tutorial_key3_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) + 0x121 (size before relaxing) + +.debug_loc 0x00000000 0xb7 + *(.debug_loc) + .debug_loc 0x00000000 0x47 obj/default/hello_world_small.o + .debug_loc 0x00000047 0x1f ../qsys_tutorial_key3_bsp/\libhal_bsp.a(alt_load.o) + .debug_loc 0x00000066 0x1f ../qsys_tutorial_key3_bsp/\libhal_bsp.a(alt_main.o) + .debug_loc 0x00000085 0x32 ../qsys_tutorial_key3_bsp/\libhal_bsp.a(alt_sys_init.o) + +.debug_macinfo + *(.debug_macinfo) + +.debug_weaknames + *(.debug_weaknames) + +.debug_funcnames + *(.debug_funcnames) + +.debug_typenames + *(.debug_typenames) + +.debug_varnames + *(.debug_varnames) + +.debug_alt_sim_info + 0x00000000 0x10 + *(.debug_alt_sim_info) + .debug_alt_sim_info + 0x00000000 0x10 ../qsys_tutorial_key3_bsp//obj/HAL/src/crt0.o + 0x00001000 __alt_data_end = 0x1000 + 0x00001000 PROVIDE (__alt_stack_pointer, __alt_data_end) + 0x000001ec PROVIDE (__alt_stack_limit, __alt_stack_base) + 0x000001ec PROVIDE (__alt_heap_start, end) + 0x00001000 PROVIDE (__alt_heap_limit, 0x1000) +OUTPUT(qsys_tutorial_key3.elf elf32-littlenios2) + +.debug_ranges 0x00000000 0x20 + .debug_ranges 0x00000000 0x20 ../qsys_tutorial_key3_bsp//obj/HAL/src/crt0.o diff --git a/software/qsys_tutorial_key3/qsys_tutorial_key3.objdump b/software/qsys_tutorial_key3/qsys_tutorial_key3.objdump new file mode 100644 index 0000000..6467fbd --- /dev/null +++ b/software/qsys_tutorial_key3/qsys_tutorial_key3.objdump @@ -0,0 +1,523 @@ + +qsys_tutorial_key3.elf: file format elf32-littlenios2 +qsys_tutorial_key3.elf +architecture: nios2, flags 0x00000112: +EXEC_P, HAS_SYMS, D_PAGED +start address 0x00000020 + +Program Header: + LOAD off 0x00001000 vaddr 0x00000000 paddr 0x00000000 align 2**12 + filesz 0x00000020 memsz 0x00000020 flags r-x + LOAD off 0x00001020 vaddr 0x00000020 paddr 0x00000020 align 2**12 + filesz 0x000001b8 memsz 0x000001b8 flags r-x + LOAD off 0x000011d8 vaddr 0x000001d8 paddr 0x000001dc align 2**12 + filesz 0x00000004 memsz 0x00000004 flags rw- + LOAD off 0x000011e0 vaddr 0x000001e0 paddr 0x000001e0 align 2**12 + filesz 0x00000000 memsz 0x0000000c flags rw- + +Sections: +Idx Name Size VMA LMA File off Algn + 0 .entry 00000020 00000000 00000000 00001000 2**5 + CONTENTS, ALLOC, LOAD, READONLY, CODE + 1 .text 000001b8 00000020 00000020 00001020 2**2 + CONTENTS, ALLOC, LOAD, READONLY, CODE + 2 .rwdata 00000004 000001d8 000001dc 000011d8 2**2 + CONTENTS, ALLOC, LOAD, DATA, SMALL_DATA + 3 .bss 0000000c 000001e0 000001e0 000011e0 2**2 + ALLOC, SMALL_DATA + 4 .comment 00000026 00000000 00000000 000011dc 2**0 + CONTENTS, READONLY + 5 .debug_aranges 00000108 00000000 00000000 00001208 2**3 + CONTENTS, READONLY, DEBUGGING + 6 .debug_pubnames 00000149 00000000 00000000 00001310 2**0 + CONTENTS, READONLY, DEBUGGING + 7 .debug_info 000006dd 00000000 00000000 00001459 2**0 + CONTENTS, READONLY, DEBUGGING + 8 .debug_abbrev 000003ba 00000000 00000000 00001b36 2**0 + CONTENTS, READONLY, DEBUGGING + 9 .debug_line 00000e24 00000000 00000000 00001ef0 2**0 + CONTENTS, READONLY, DEBUGGING + 10 .debug_frame 00000118 00000000 00000000 00002d14 2**2 + CONTENTS, READONLY, DEBUGGING + 11 .debug_str 000003ed 00000000 00000000 00002e2c 2**0 + CONTENTS, READONLY, DEBUGGING + 12 .debug_loc 000000b7 00000000 00000000 00003219 2**0 + CONTENTS, READONLY, DEBUGGING + 13 .debug_alt_sim_info 00000010 00000000 00000000 000032d0 2**2 + CONTENTS, READONLY, DEBUGGING + 14 .debug_ranges 00000020 00000000 00000000 000032e0 2**3 + CONTENTS, READONLY, DEBUGGING + 15 .thread_model 00000003 00000000 00000000 00003f17 2**0 + CONTENTS, READONLY + 16 .cpu 0000000f 00000000 00000000 00003f1a 2**0 + CONTENTS, READONLY + 17 .qsys 00000001 00000000 00000000 00003f29 2**0 + CONTENTS, READONLY + 18 .simulation_enabled 00000001 00000000 00000000 00003f2a 2**0 + CONTENTS, READONLY + 19 .stderr_dev 00000009 00000000 00000000 00003f2b 2**0 + CONTENTS, READONLY + 20 .stdin_dev 00000009 00000000 00000000 00003f34 2**0 + CONTENTS, READONLY + 21 .stdout_dev 00000009 00000000 00000000 00003f3d 2**0 + CONTENTS, READONLY + 22 .sopc_system_name 0000000b 00000000 00000000 00003f46 2**0 + CONTENTS, READONLY + 23 .quartus_project_dir 00000030 00000000 00000000 00003f51 2**0 + CONTENTS, READONLY + 24 .sopcinfo 0003d17e 00000000 00000000 00003f81 2**0 + CONTENTS, READONLY +SYMBOL TABLE: +00000000 l d .entry 00000000 .entry +00000020 l d .text 00000000 .text +000001d8 l d .rwdata 00000000 .rwdata +000001e0 l d .bss 00000000 .bss +00000000 l d .comment 00000000 .comment +00000000 l d .debug_aranges 00000000 .debug_aranges +00000000 l d .debug_pubnames 00000000 .debug_pubnames +00000000 l d .debug_info 00000000 .debug_info +00000000 l d .debug_abbrev 00000000 .debug_abbrev +00000000 l d .debug_line 00000000 .debug_line +00000000 l d .debug_frame 00000000 .debug_frame +00000000 l d .debug_str 00000000 .debug_str +00000000 l d .debug_loc 00000000 .debug_loc +00000000 l d .debug_alt_sim_info 00000000 .debug_alt_sim_info +00000000 l d .debug_ranges 00000000 .debug_ranges +00000058 l .text 00000000 alt_after_alt_main +00000000 l df *ABS* 00000000 hello_world_small.c +00000000 l df *ABS* 00000000 alt_load.c +000000ec l F .text 00000020 alt_load_section +00000000 l df *ABS* 00000000 alt_main.c +00000000 l df *ABS* 00000000 alt_sys_init.c +00000000 l df *ABS* 00000000 alt_dcache_flush_all.c +00000000 l df *ABS* 00000000 alt_icache_flush_all.c +00000000 l df *ABS* 00000000 altera_nios2_qsys_irq.c +00000178 g F .text 0000002c alt_main +000001dc g *ABS* 00000000 __flash_rwdata_start +000001d8 g O .rwdata 00000004 jtag_uart +00000000 g F .entry 0000000c __reset +00000020 g *ABS* 00000000 __flash_exceptions_start +000001e4 g O .bss 00000004 alt_argv +000081d8 g *ABS* 00000000 _gp +000001ec g *ABS* 00000000 __bss_end +000001c8 g F .text 00000004 alt_dcache_flush_all +000001dc g *ABS* 00000000 __ram_rwdata_end +00000000 g *ABS* 00000000 __alt_mem_onchip_memory +000001d8 g *ABS* 00000000 __ram_rodata_end +000001ec g *ABS* 00000000 end +00001000 g *ABS* 00000000 __alt_stack_pointer +00000020 g F .text 0000003c _start +000001a4 g F .text 00000004 alt_sys_init +000001d8 g *ABS* 00000000 __ram_rwdata_start +000001d8 g *ABS* 00000000 __ram_rodata_start +000001ec g *ABS* 00000000 __alt_stack_base +000001e0 g *ABS* 00000000 __bss_start +0000005c g F .text 00000090 main +000001e8 g O .bss 00000004 alt_envp +000001d8 g *ABS* 00000000 __flash_rodata_start +000001a8 g F .text 00000020 alt_irq_init +000001e0 g O .bss 00000004 alt_argc +00000020 g *ABS* 00000000 __ram_exceptions_start +000001dc g *ABS* 00000000 _edata +000001ec g *ABS* 00000000 _end +00000020 g *ABS* 00000000 __ram_exceptions_end +000001d0 g F .text 00000008 altera_nios2_qsys_irq_init +0000000c g .entry 00000000 exit +00001000 g *ABS* 00000000 __alt_data_end +0000000c g .entry 00000000 _exit +000001cc g F .text 00000004 alt_icache_flush_all +0000010c g F .text 0000006c alt_load + + + +Disassembly of section .entry: + +00000000 <__reset>: + * Jump to the _start entry point in the .text section if reset code + * is allowed or if optimizing for RTL simulation. + */ +#if defined(ALT_ALLOW_CODE_AT_RESET) || defined(ALT_SIM_OPTIMIZE) + /* Jump to the _start entry point in the .text section. */ + movhi r1, %hi(_start) + 0: 00400034 movhi at,0 + ori r1, r1, %lo(_start) + 4: 08400814 ori at,at,32 + jmp r1 + 8: 0800683a jmp at + +0000000c <_exit>: + ... + +Disassembly of section .text: + +00000020 <_start>: +#if (NIOS2_NUM_OF_SHADOW_REG_SETS == 0) + /* + * Now that the caches are initialized, set up the stack pointer. + * The value provided by the linker is assumed to be correctly aligned. + */ + movhi sp, %hi(__alt_stack_pointer) + 20: 06c00034 movhi sp,0 + ori sp, sp, %lo(__alt_stack_pointer) + 24: dec40014 ori sp,sp,4096 + + /* Set up the global pointer. */ + movhi gp, %hi(_gp) + 28: 06800034 movhi gp,0 + ori gp, gp, %lo(_gp) + 2c: d6a07614 ori gp,gp,33240 + */ +#ifndef ALT_SIM_OPTIMIZE + /* Log that the BSS is about to be cleared. */ + ALT_LOG_PUTS(alt_log_msg_bss) + + movhi r2, %hi(__bss_start) + 30: 00800034 movhi r2,0 + ori r2, r2, %lo(__bss_start) + 34: 10807814 ori r2,r2,480 + + movhi r3, %hi(__bss_end) + 38: 00c00034 movhi r3,0 + ori r3, r3, %lo(__bss_end) + 3c: 18c07b14 ori r3,r3,492 + + beq r2, r3, 1f + 40: 10c00326 beq r2,r3,50 <_start+0x30> + +0: + stw zero, (r2) + 44: 10000015 stw zero,0(r2) + addi r2, r2, 4 + 48: 10800104 addi r2,r2,4 + bltu r2, r3, 0b + 4c: 10fffd36 bltu r2,r3,44 <_start+0x24> + * section aren't defined until alt_load() has been called). + */ + mov et, zero +#endif + + call alt_load + 50: 000010c0 call 10c + + /* Log that alt_main is about to be called. */ + ALT_LOG_PUTS(alt_log_msg_alt_main) + + /* Call the C entry point. It should never return. */ + call alt_main + 54: 00001780 call 178 + +00000058 : + + /* Wait in infinite loop in case alt_main does return. */ +alt_after_alt_main: + br alt_after_alt_main + 58: 003fff06 br 58 + +0000005c
: +{ + int buf = 0; + unsigned char status = 0; + while(1) { + sw_t s; + s.data = *switches; + 5c: 00880404 movi r2,8208 + 60: 10c00017 ldw r3,0(r2) + 64: 00000d06 br 9c + 68: 01400084 movi r5,2 + 6c: 00880404 movi r2,8208 + + switch (status) { + 70: 29003fcc andi r4,r5,255 + 74: 00c00044 movi r3,1 +{ + int buf = 0; + unsigned char status = 0; + while(1) { + sw_t s; + s.data = *switches; + 78: 10800017 ldw r2,0(r2) + + switch (status) { + 7c: 20c00e26 beq r4,r3,b8 + break; + case 1: + if (*push_switches == 7) status = 2; + break; + case 2: + *ledrs += buf; + 80: 01880804 movi r6,8224 + unsigned char status = 0; + while(1) { + sw_t s; + s.data = *switches; + + switch (status) { + 84: 000b883a mov r5,zero + 88: 20c00336 bltu r4,r3,98 + 8c: 00800084 movi r2,2 + 90: 20801126 beq r4,r2,d8 + 94: 003ff506 br 6c + 98: 1007883a mov r3,r2 + case 0: + if (*push_switches != 7) status = 1; + 9c: 00880004 movi r2,8192 + a0: 10800003 ldbu r2,0(r2) + buf = s.sw.code; + a4: 1806d2ba srli r3,r3,10 + sw_t s; + s.data = *switches; + + switch (status) { + case 0: + if (*push_switches != 7) status = 1; + a8: 108001d8 cmpnei r2,r2,7 + ac: 100b883a mov r5,r2 + buf = s.sw.code; + b0: 19c03fcc andi r7,r3,255 + b4: 003fed06 br 6c + break; + case 1: + if (*push_switches == 7) status = 2; + b8: 00880004 movi r2,8192 + bc: 10800003 ldbu r2,0(r2) + c0: 00c001c4 movi r3,7 + c4: 10803fcc andi r2,r2,255 + c8: 1080201c xori r2,r2,128 + cc: 10bfe004 addi r2,r2,-128 + d0: 10ffe61e bne r2,r3,6c + d4: 003fe406 br 68 + break; + case 2: + *ledrs += buf; + d8: 30800017 ldw r2,0(r6) + dc: 000b883a mov r5,zero + e0: 11c5883a add r2,r2,r7 + e4: 30800015 stw r2,0(r6) + e8: 003fe006 br 6c + +000000ec : + +static void ALT_INLINE alt_load_section (alt_u32* from, + alt_u32* to, + alt_u32* end) +{ + if (to != from) + ec: 2900051e bne r5,r4,104 + f0: f800283a ret + { + while( to != end ) + { + *to++ = *from++; + f4: 20800017 ldw r2,0(r4) + f8: 21000104 addi r4,r4,4 + fc: 28800015 stw r2,0(r5) + 100: 29400104 addi r5,r5,4 + alt_u32* to, + alt_u32* end) +{ + if (to != from) + { + while( to != end ) + 104: 29bffb1e bne r5,r6,f4 + 108: f800283a ret + +0000010c : + * there is no bootloader, so this application is responsible for loading to + * RAM any sections that are required. + */ + +void alt_load (void) +{ + 10c: deffff04 addi sp,sp,-4 + /* + * Copy the .rwdata section. + */ + + alt_load_section (&__flash_rwdata_start, + 110: 01000034 movhi r4,0 + 114: 21007704 addi r4,r4,476 + 118: 01400034 movhi r5,0 + 11c: 29407604 addi r5,r5,472 + 120: 01800034 movhi r6,0 + 124: 31807704 addi r6,r6,476 + * there is no bootloader, so this application is responsible for loading to + * RAM any sections that are required. + */ + +void alt_load (void) +{ + 128: dfc00015 stw ra,0(sp) + /* + * Copy the .rwdata section. + */ + + alt_load_section (&__flash_rwdata_start, + 12c: 00000ec0 call ec + + /* + * Copy the exception handler. + */ + + alt_load_section (&__flash_exceptions_start, + 130: 01000034 movhi r4,0 + 134: 21000804 addi r4,r4,32 + 138: 01400034 movhi r5,0 + 13c: 29400804 addi r5,r5,32 + 140: 01800034 movhi r6,0 + 144: 31800804 addi r6,r6,32 + 148: 00000ec0 call ec + + /* + * Copy the .rodata section. + */ + + alt_load_section (&__flash_rodata_start, + 14c: 01000034 movhi r4,0 + 150: 21007604 addi r4,r4,472 + 154: 01400034 movhi r5,0 + 158: 29407604 addi r5,r5,472 + 15c: 01800034 movhi r6,0 + 160: 31807604 addi r6,r6,472 + 164: 00000ec0 call ec + + /* + * Now ensure that the caches are in synch. + */ + + alt_dcache_flush_all(); + 168: 00001c80 call 1c8 + alt_icache_flush_all(); +} + 16c: dfc00017 ldw ra,0(sp) + 170: dec00104 addi sp,sp,4 + /* + * Now ensure that the caches are in synch. + */ + + alt_dcache_flush_all(); + alt_icache_flush_all(); + 174: 00001cc1 jmpi 1cc + +00000178 : + * devices/filesystems/components in the system; and call the entry point for + * the users application, i.e. main(). + */ + +void alt_main (void) +{ + 178: deffff04 addi sp,sp,-4 +#endif + + /* ALT LOG - please see HAL/sys/alt_log_printf.h for details */ + ALT_LOG_PRINT_BOOT("[alt_main.c] Entering alt_main, calling alt_irq_init.\r\n"); + /* Initialize the interrupt controller. */ + alt_irq_init (NULL); + 17c: 0009883a mov r4,zero + * devices/filesystems/components in the system; and call the entry point for + * the users application, i.e. main(). + */ + +void alt_main (void) +{ + 180: dfc00015 stw ra,0(sp) +#endif + + /* ALT LOG - please see HAL/sys/alt_log_printf.h for details */ + ALT_LOG_PRINT_BOOT("[alt_main.c] Entering alt_main, calling alt_irq_init.\r\n"); + /* Initialize the interrupt controller. */ + alt_irq_init (NULL); + 184: 00001a80 call 1a8 + ALT_LOG_PRINT_BOOT("[alt_main.c] Done OS Init, calling alt_sem_create.\r\n"); + ALT_SEM_CREATE (&alt_fd_list_lock, 1); + + /* Initialize the device drivers/software components. */ + ALT_LOG_PRINT_BOOT("[alt_main.c] Calling alt_sys_init.\r\n"); + alt_sys_init(); + 188: 00001a40 call 1a4 + */ + + ALT_LOG_PRINT_BOOT("[alt_main.c] Calling main.\r\n"); + +#ifdef ALT_NO_EXIT + main (alt_argc, alt_argv, alt_envp); + 18c: d1200217 ldw r4,-32760(gp) + 190: d1600317 ldw r5,-32756(gp) + 194: d1a00417 ldw r6,-32752(gp) + close(STDOUT_FILENO); + exit (result); +#endif + + ALT_LOG_PRINT_BOOT("[alt_main.c] After main - we should not be here?.\r\n"); +} + 198: dfc00017 ldw ra,0(sp) + 19c: dec00104 addi sp,sp,4 + */ + + ALT_LOG_PRINT_BOOT("[alt_main.c] Calling main.\r\n"); + +#ifdef ALT_NO_EXIT + main (alt_argc, alt_argv, alt_envp); + 1a0: 000005c1 jmpi 5c
+ +000001a4 : + */ + +void alt_sys_init( void ) +{ + ALTERA_AVALON_JTAG_UART_INIT ( JTAG_UART, jtag_uart); +} + 1a4: f800283a ret + +000001a8 : + * The "base" parameter is ignored and only + * present for backwards-compatibility. + */ + +void alt_irq_init ( const void* base ) +{ + 1a8: deffff04 addi sp,sp,-4 + 1ac: dfc00015 stw ra,0(sp) + ALTERA_NIOS2_QSYS_IRQ_INIT ( NIOS2_PROCESSOR, nios2_processor); + 1b0: 00001d00 call 1d0 + * alt_irq_cpu_enable_interrupts() enables the CPU to start taking interrupts. + */ +static ALT_INLINE void ALT_ALWAYS_INLINE + alt_irq_cpu_enable_interrupts () +{ + NIOS2_WRITE_STATUS(NIOS2_STATUS_PIE_MSK + 1b4: 00800044 movi r2,1 + 1b8: 1001703a wrctl status,r2 + alt_irq_cpu_enable_interrupts(); +} + 1bc: dfc00017 ldw ra,0(sp) + 1c0: dec00104 addi sp,sp,4 + 1c4: f800283a ret + +000001c8 : + for (i = (char*) 0; i < (char*) NIOS2_DCACHE_SIZE; i+= NIOS2_DCACHE_LINE_SIZE) + { + __asm__ volatile ("flushd (%0)" :: "r" (i)); + } +#endif /* NIOS2_DCACHE_SIZE > 0 */ +} + 1c8: f800283a ret + +000001cc : +void alt_icache_flush_all (void) +{ +#if NIOS2_ICACHE_SIZE > 0 + alt_icache_flush (0, NIOS2_ICACHE_SIZE); +#endif +} + 1cc: f800283a ret + +000001d0 : + * To initialize the internal interrupt controller, just clear the IENABLE + * register so that all possible IRQs are disabled. + */ +void altera_nios2_qsys_irq_init(void) +{ + NIOS2_WRITE_IENABLE(0); + 1d0: 000170fa wrctl ienable,zero +} + 1d4: f800283a ret diff --git a/software/qsys_tutorial_key3/readme.txt b/software/qsys_tutorial_key3/readme.txt new file mode 100644 index 0000000..3dc3186 --- /dev/null +++ b/software/qsys_tutorial_key3/readme.txt @@ -0,0 +1,67 @@ +Readme - Hello World Software Example + +DESCRIPTION: +Simple program that prints "Hello from Nios II" + +The purpose of this example is to demonstrate the smallest possible Hello +World application, using the Nios II HAL BSP. The memory footprint +of this hosted application is intended to be less than 1 kbytes by default using a standard +reference design. For a more fully featured Hello World application +example, see the example titled "Hello World". + +The memory footprint of this example has been reduced by making the +following changes to the normal "Hello World" example. +Check in the Nios II Software Developers Handbook for a more complete +description. + +In the SW Application project: + - In the C/C++ Build page + - Set the Optimization Level to -Os + +In BSP project: + - In the C/C++ Build page + + - Set the Optimization Level to -Os + + - Define the preprocessor option ALT_NO_INSTRUCTION_EMULATION + This removes software exception handling, which means that you cannot + run code compiled for Nios II cpu with a hardware multiplier on a core + without a the multiply unit. Check the Nios II Software Developers + Manual for more details. + + - In the BSP: + - Set Periodic system timer and Timestamp timer to none + This prevents the automatic inclusion of the timer driver. + + - Set Max file descriptors to 4 + This reduces the size of the file handle pool. + + - Uncheck Clean exit (flush buffers) + This removes the call to exit, and when main is exitted instead of + calling exit the software will just spin in a loop. + + - Check Small C library + This uses a reduced functionality C library, which lacks + support for buffering, file IO, floating point and getch(), etc. + Check the Nios II Software Developers Manual for a complete list. + + - Check Reduced device drivers + This uses reduced functionality drivers if they're available. For the + standard design this means you get polled UART and JTAG UART drivers, + no support for the LCD driver and you lose the ability to program + CFI compliant flash devices. + + +PERIPHERALS USED: +This example exercises the following peripherals: +- STDOUT device (UART or JTAG UART) + +SOFTWARE SOURCE FILES: +This example includes the following software source files: +- small_hello_world.c: + +BOARD/HOST REQUIREMENTS: +This example requires only a JTAG connection with a Nios Development board. If +the host communication settings are changed from JTAG UART (default) to use a +conventional UART, a serial cable between board DB-9 connector and the host is +required. diff --git a/software/qsys_tutorial_key3/system/template.xml b/software/qsys_tutorial_key3/system/template.xml new file mode 100644 index 0000000..b09e912 --- /dev/null +++ b/software/qsys_tutorial_key3/system/template.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/software/qsys_tutorial_key3_bsp/.cproject b/software/qsys_tutorial_key3_bsp/.cproject new file mode 100644 index 0000000..0c0aa28 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/.cproject @@ -0,0 +1,481 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/software/qsys_tutorial_key3_bsp/.project b/software/qsys_tutorial_key3_bsp/.project new file mode 100644 index 0000000..da645a5 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/.project @@ -0,0 +1,85 @@ + + + qsys_tutorial_key3_bsp + + + + + + org.eclipse.cdt.managedbuilder.core.genmakebuilder + clean,full,incremental, + + + ?name? + + + + org.eclipse.cdt.make.core.append_environment + true + + + org.eclipse.cdt.make.core.autoBuildTarget + all + + + org.eclipse.cdt.make.core.buildArguments + + + + org.eclipse.cdt.make.core.buildCommand + make + + + org.eclipse.cdt.make.core.buildLocation + ${workspace_loc://qsys_tutorial_key3_bsp} + + + org.eclipse.cdt.make.core.cleanBuildTarget + clean + + + org.eclipse.cdt.make.core.contents + org.eclipse.cdt.make.core.activeConfigSettings + + + org.eclipse.cdt.make.core.enableAutoBuild + false + + + org.eclipse.cdt.make.core.enableCleanBuild + true + + + org.eclipse.cdt.make.core.enableFullBuild + true + + + org.eclipse.cdt.make.core.fullBuildTarget + all + + + org.eclipse.cdt.make.core.stopOnError + true + + + org.eclipse.cdt.make.core.useDefaultBuildCmd + true + + + + + org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder + full,incremental, + + + + + + org.eclipse.cdt.core.cnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.managedbuilder.core.ScannerConfigNature + org.eclipse.cdt.core.ccnature + com.altera.sbtgui.project.SBTGUINature + com.altera.sbtgui.project.SBTGUIBspNature + + diff --git a/software/qsys_tutorial_key3_bsp/HAL/inc/alt_types.h b/software/qsys_tutorial_key3_bsp/HAL/inc/alt_types.h new file mode 100644 index 0000000..d02f171 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/HAL/inc/alt_types.h @@ -0,0 +1,54 @@ +#ifndef __ALT_TYPES_H__ +#define __ALT_TYPES_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/* + * Don't declare these typedefs if this file is included by assembly source. + */ +#ifndef ALT_ASM_SRC +typedef signed char alt_8; +typedef unsigned char alt_u8; +typedef signed short alt_16; +typedef unsigned short alt_u16; +typedef signed long alt_32; +typedef unsigned long alt_u32; +typedef long long alt_64; +typedef unsigned long long alt_u64; +#endif + +#define ALT_INLINE __inline__ +#define ALT_ALWAYS_INLINE __attribute__ ((always_inline)) +#define ALT_WEAK __attribute__((weak)) + +#endif /* __ALT_TYPES_H__ */ diff --git a/software/qsys_tutorial_key3_bsp/HAL/inc/altera_nios2_qsys_irq.h b/software/qsys_tutorial_key3_bsp/HAL/inc/altera_nios2_qsys_irq.h new file mode 100644 index 0000000..6629ec9 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/HAL/inc/altera_nios2_qsys_irq.h @@ -0,0 +1,80 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2009 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/* + * Support for the Nios II internal interrupt controller. + */ + +#ifndef __ALT_NIOS2_QSYS_IRQ_H__ +#define __ALT_NIOS2_QSYS_IRQ_H__ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * The macro ALTERA_NIOS2_IRQ_INSTANCE is used by the alt_irq_init() + * function in the auto-generated file alt_sys_init.c to create an + * instance of this interrupt controller device driver state if this + * module contains an interrupt controller. + * Only one instance of a Nios II is allowed so this macro is just empty. + */ + +#define ALTERA_NIOS2_QSYS_IRQ_INSTANCE(name, state) + +/* + * altera_nios2_irq_init() is called by the auto-generated function + * alt_irq_init() once for the Nios II if it contains an interrupt controller. + * The altera_nios2_irq_init() routine is called using the + * ALTERA_NIOS2_IRQ_INIT macro given below. + * + * This function initializes the internal interrupt controller + * so is not called if the Nios II contains an external interrupt + * controller port (because the internal interrupt controller + * is removed if this port is present). + */ + +extern void altera_nios2_qsys_irq_init( void ); + +/* + * The macro ALTERA_NIOS2_IRQ_INIT is used by the alt_irq_init() routine + * in the auto-generated file alt_sys_init.c to initialize an instance + * of the interrupt controller device driver state. + */ + +#define ALTERA_NIOS2_QSYS_IRQ_INIT(name, state) altera_nios2_qsys_irq_init() + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __ALT_NIOS2_QSYS_IRQ_H__ */ + diff --git a/software/qsys_tutorial_key3_bsp/HAL/inc/io.h b/software/qsys_tutorial_key3_bsp/HAL/inc/io.h new file mode 100644 index 0000000..362f103 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/HAL/inc/io.h @@ -0,0 +1,81 @@ +#ifndef __IO_H__ +#define __IO_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/* IO Header file for Nios II Toolchain */ + +#include "alt_types.h" +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +#ifndef SYSTEM_BUS_WIDTH +#error SYSTEM_BUS_WIDTH undefined +#endif + +/* Dynamic bus access functions */ + +#define __IO_CALC_ADDRESS_DYNAMIC(BASE, OFFSET) \ + ((void *)(((alt_u8*)BASE) + (OFFSET))) + +#define IORD_32DIRECT(BASE, OFFSET) \ + __builtin_ldwio (__IO_CALC_ADDRESS_DYNAMIC ((BASE), (OFFSET))) +#define IORD_16DIRECT(BASE, OFFSET) \ + __builtin_ldhuio (__IO_CALC_ADDRESS_DYNAMIC ((BASE), (OFFSET))) +#define IORD_8DIRECT(BASE, OFFSET) \ + __builtin_ldbuio (__IO_CALC_ADDRESS_DYNAMIC ((BASE), (OFFSET))) + +#define IOWR_32DIRECT(BASE, OFFSET, DATA) \ + __builtin_stwio (__IO_CALC_ADDRESS_DYNAMIC ((BASE), (OFFSET)), (DATA)) +#define IOWR_16DIRECT(BASE, OFFSET, DATA) \ + __builtin_sthio (__IO_CALC_ADDRESS_DYNAMIC ((BASE), (OFFSET)), (DATA)) +#define IOWR_8DIRECT(BASE, OFFSET, DATA) \ + __builtin_stbio (__IO_CALC_ADDRESS_DYNAMIC ((BASE), (OFFSET)), (DATA)) + +/* Native bus access functions */ + +#define __IO_CALC_ADDRESS_NATIVE(BASE, REGNUM) \ + ((void *)(((alt_u8*)BASE) + ((REGNUM) * (SYSTEM_BUS_WIDTH/8)))) + +#define IORD(BASE, REGNUM) \ + __builtin_ldwio (__IO_CALC_ADDRESS_NATIVE ((BASE), (REGNUM))) +#define IOWR(BASE, REGNUM, DATA) \ + __builtin_stwio (__IO_CALC_ADDRESS_NATIVE ((BASE), (REGNUM)), (DATA)) + +#ifdef __cplusplus +} +#endif + +#endif /* __IO_H__ */ diff --git a/software/qsys_tutorial_key3_bsp/HAL/inc/nios2.h b/software/qsys_tutorial_key3_bsp/HAL/inc/nios2.h new file mode 100644 index 0000000..72cefba --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/HAL/inc/nios2.h @@ -0,0 +1,230 @@ +#ifndef __NIOS2_H__ +#define __NIOS2_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2008 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/* + * This header provides processor specific macros for accessing the Nios2 + * control registers. + */ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * Macros for accessing selected processor registers + */ + +#define NIOS2_READ_ET(et) \ + do { __asm ("mov %0, et" : "=r" (et) ); } while (0) + +#define NIOS2_WRITE_ET(et) \ + do { __asm volatile ("mov et, %z0" : : "rM" (et)); } while (0) + +#define NIOS2_READ_SP(sp) \ + do { __asm ("mov %0, sp" : "=r" (sp) ); } while (0) + +/* + * Macros for useful processor instructions + */ + +#define NIOS2_BREAK() \ + do { __asm volatile ("break"); } while (0) + +#define NIOS2_REPORT_STACK_OVERFLOW() \ + do { __asm volatile("break 3"); } while (0) + +/* + * Macros for accessing the control registers. + */ + +#define NIOS2_READ_STATUS(dest) \ + do { dest = __builtin_rdctl(0); } while (0) + +#define NIOS2_WRITE_STATUS(src) \ + do { __builtin_wrctl(0, src); } while (0) + +#define NIOS2_READ_ESTATUS(dest) \ + do { dest = __builtin_rdctl(1); } while (0) + +#define NIOS2_READ_BSTATUS(dest) \ + do { dest = __builtin_rdctl(2); } while (0) + +#define NIOS2_READ_IENABLE(dest) \ + do { dest = __builtin_rdctl(3); } while (0) + +#define NIOS2_WRITE_IENABLE(src) \ + do { __builtin_wrctl(3, src); } while (0) + +#define NIOS2_READ_IPENDING(dest) \ + do { dest = __builtin_rdctl(4); } while (0) + +#define NIOS2_READ_CPUID(dest) \ + do { dest = __builtin_rdctl(5); } while (0) + + +/* + * Macros for accessing extra exception registers. These + * are always enabled wit the MPU or MMU, and optionally + * with other advanced exception types/ + */ +#define NIOS2_READ_EXCEPTION(dest) \ + do { dest = __builtin_rdctl(7); } while (0) + +#define NIOS2_READ_BADADDR(dest) \ + do { dest = __builtin_rdctl(12); } while (0) + + +/* + * Macros for accessing control registers for MPU + * operation. These should not be used unless the + * MPU is enabled. + * + * The config register may be augmented for future + * enhancements. For now, only MPU support is provided. + */ +/* Config register */ +#define NIOS2_WRITE_CONFIG(src) \ + do { __builtin_wrctl(13, src); } while (0) + +#define NIOS2_READ_CONFIG(dest) \ + do { dest = __builtin_rdctl(13); } while (0) + +/* MPU Base Address Register */ +#define NIOS2_WRITE_MPUBASE(src) \ + do { __builtin_wrctl(14, src); } while (0) + +#define NIOS2_READ_MPUBASE(dest) \ + do { dest = __builtin_rdctl(14); } while (0) + +/* MPU Access Register */ +#define NIOS2_WRITE_MPUACC(src) \ + do { __builtin_wrctl(15, src); } while (0) + +#define NIOS2_READ_MPUACC(dest) \ + do { dest = __builtin_rdctl(15); } while (0) + + +/* + * Nios II control registers that are always present + */ +#define NIOS2_STATUS status +#define NIOS2_ESTATUS estatus +#define NIOS2_BSTATUS bstatus +#define NIOS2_IENABLE ienable +#define NIOS2_IPENDING ipending +#define NIOS2_CPUID cpuid + +/* + * STATUS, BSTATUS, ESTATUS, and SSTATUS fields. + * The presence of fields is a function of the Nios II configuration. + */ +#define NIOS2_STATUS_PIE_MSK (0x00000001) +#define NIOS2_STATUS_PIE_OFST (0) +#define NIOS2_STATUS_U_MSK (0x00000002) +#define NIOS2_STATUS_U_OFST (1) +#define NIOS2_STATUS_EH_MSK (0x00000004) +#define NIOS2_STATUS_EH_OFST (2) +#define NIOS2_STATUS_IH_MSK (0x00000008) +#define NIOS2_STATUS_IH_OFST (3) +#define NIOS2_STATUS_IL_MSK (0x000003f0) +#define NIOS2_STATUS_IL_OFST (4) +#define NIOS2_STATUS_CRS_MSK (0x0000fc00) +#define NIOS2_STATUS_CRS_OFST (10) +#define NIOS2_STATUS_PRS_MSK (0x003f0000) +#define NIOS2_STATUS_PRS_OFST (16) +#define NIOS2_STATUS_NMI_MSK (0x00400000) +#define NIOS2_STATUS_NMI_OFST (22) +#define NIOS2_STATUS_RSIE_MSK (0x00800000) +#define NIOS2_STATUS_RSIE_OFST (23) +#define NIOS2_STATUS_SRS_MSK (0x80000000) +#define NIOS2_STATUS_SRS_OFST (31) + +/* + * Bit masks & offsets available with extra exceptions support + */ + +/* Exception register */ +#define NIOS2_EXCEPTION_REG_CAUSE_MASK (0x0000007c) +#define NIOS2_EXCEPTION_REG_CAUSE_OFST (2) + +/* + * Bit masks & offsets for MPU support + * + * All bit-masks are expressed relative to the position + * of the data with a register. To read data that is LSB- + * aligned, the register read data should be masked, then + * right-shifted by the designated "OFST" macro value. The + * opposite should be used for register writes when starting + * with LSB-aligned data. + */ + +/* Config register */ +#define NIOS2_CONFIG_REG_PE_MASK (0x00000001) +#define NIOS2_CONFIG_REG_PE_OFST (0) +#define NIOS2_CONFIG_REG_ANI_MASK (0x00000002) +#define NIOS2_CONFIG_REG_ANI_OFST (1) + +/* MPU Base Address Register */ +#define NIOS2_MPUBASE_D_MASK (0x00000001) +#define NIOS2_MPUBASE_D_OFST (0) +#define NIOS2_MPUBASE_INDEX_MASK (0x0000003e) +#define NIOS2_MPUBASE_INDEX_OFST (1) +#define NIOS2_MPUBASE_BASE_ADDR_MASK (0xffffffc0) +#define NIOS2_MPUBASE_BASE_ADDR_OFST (6) + +/* MPU Access Register */ +#define NIOS2_MPUACC_LIMIT_MASK (0xffffffc0) +#define NIOS2_MPUACC_LIMIT_OFST (6) +#define NIOS2_MPUACC_MASK_MASK (0xffffffc0) +#define NIOS2_MPUACC_MASK_OFST (6) +#define NIOS2_MPUACC_C_MASK (0x00000020) +#define NIOS2_MPUACC_C_OFST (5) +#define NIOS2_MPUACC_PERM_MASK (0x0000001c) +#define NIOS2_MPUACC_PERM_OFST (2) +#define NIOS2_MPUACC_RD_MASK (0x00000002) +#define NIOS2_MPUACC_RD_OFST (1) +#define NIOS2_MPUACC_WR_MASK (0x00000001) +#define NIOS2_MPUACC_WR_OFST (0) + +/* + * Number of available IRQs in internal interrupt controller. + */ +#define NIOS2_NIRQ 32 + + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __NIOS2_H__ */ diff --git a/software/qsys_tutorial_key3_bsp/HAL/inc/os/alt_flag.h b/software/qsys_tutorial_key3_bsp/HAL/inc/os/alt_flag.h new file mode 100644 index 0000000..b9b4605 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/HAL/inc/os/alt_flag.h @@ -0,0 +1,98 @@ +#ifndef __ALT_FLAG_H__ +#define __ALT_FLAG_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +/* + * This header provides macro definitions that can be used to create and use + * uc/OS-II style event flags. These macros can be used in both a uC/OS-II based + * environment, and a single threaded HAL based environment. + * + * The motivation for these macros is to allow code to be developed which is + * thread safe under uC/OS-II, but incurs no additional overhead when used in a + * single threaded HAL environment. + * + * In the case of a single threaded HAL environment, they compile to + * "do nothing" directives, which ensures they do not contribute to the final + * executable. + * + * The following macros are available: + * + * ALT_FLAG_GRP - Create a flag group instance. + * ALT_EXTERN_FLAG_GRP - Create a reference to an external flag group instance. + * ALT_STATIC_FLAG_GRP - Create a static flag group instance. + * ALT_FLAG_CREATE - Initialise a flag group. + * ALT_FLAG_PEND - Pend on a flag group. + * ALT_FLAG_POST - Set a flag condition. + + * + * Input arguments and return codes are all consistant with the equivalent + * uC/OS-II function. + * + * It's important to be careful in the use of the macros: ALT_FLAG_GRP, + * ALT_EXTERN_FLAG_GRP, and ALT_STATIC_FLAG_GRP. In these three cases the + * semi-colon is included in the macro definition; so, for example, you should + * use: + * + * ALT_FLAG_GRP(mygroup) + * + * not: + * + * ALT_FLAG_GRP(mygroup); + * + * The inclusion of the semi-colon has been necessary to ensure the macros can + * compile with no warnings when used in a single threaded HAL environment. + * + */ + +#include "priv/alt_no_error.h" + +#define ALT_FLAG_GRP(group) +#define ALT_EXTERN_FLAG_GRP(group) +#define ALT_STATIC_FLAG_GRP(group) + +#define ALT_FLAG_CREATE(group, flags) alt_no_error () +#define ALT_FLAG_PEND(group, flags, wait_type, timeout) alt_no_error () +#define ALT_FLAG_POST(group, flags, opt) alt_no_error () + +#ifndef ALT_SINGLE_THREADED +#define ALT_SINGLE_THREADED +#endif + +#endif /* __ALT_FLAG_H__ */ diff --git a/software/qsys_tutorial_key3_bsp/HAL/inc/os/alt_hooks.h b/software/qsys_tutorial_key3_bsp/HAL/inc/os/alt_hooks.h new file mode 100644 index 0000000..9054e3f --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/HAL/inc/os/alt_hooks.h @@ -0,0 +1,61 @@ +#ifndef __ALT_HOOKS_H__ +#define __ALT_HOOKS_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +/* + * This header provides "do-nothing" macro definitions for operating system + * hooks within the HAL. The O/S component can override these to provide it's + * own implementation. + */ + +#define ALT_OS_TIME_TICK() while(0) +#define ALT_OS_INIT() while(0) +#define ALT_OS_STOP() while(0) + +/* Call from assembly code */ +#define ALT_OS_INT_ENTER_ASM +#define ALT_OS_INT_EXIT_ASM + +/* Call from C code */ +#define ALT_OS_INT_ENTER() while(0) +#define ALT_OS_INT_EXIT() while(0) + + +#endif /* __ALT_HOOKS_H__ */ diff --git a/software/qsys_tutorial_key3_bsp/HAL/inc/os/alt_sem.h b/software/qsys_tutorial_key3_bsp/HAL/inc/os/alt_sem.h new file mode 100644 index 0000000..753943e --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/HAL/inc/os/alt_sem.h @@ -0,0 +1,96 @@ +#ifndef __ALT_SEM_H__ +#define __ALT_SEM_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +/* + * This header provides macro definitions that can be used to create and use + * semaphores. These macros can be used in both a uC/OS-II based environment, + * and a single threaded HAL based environment. + * + * The motivation for these macros is to allow code to be developed which is + * thread safe under uC/OS-II, but incurs no additional overhead when used in a + * single threaded HAL environment. + * + * In the case of a single threaded HAL environment, they compile to + * "do nothing" directives, which ensures they do not contribute to the final + * executable. + * + * The following macros are available: + * + * ALT_SEM - Create a semaphore instance. + * ALT_EXTERN_SEM - Create a reference to an external semaphore instance. + * ALT_STATIC_SEM - Create a static semaphore instance. + * ALT_SEM_CREATE - Initialise a semaphore. + * ALT_SEM_PEND - Pend on a semaphore. + * ALT_SEM_POST - Increment a semaphore. + * + * Input arguments and return codes are all consistant with the equivalent + * uC/OS-II function. + * + * It's important to be careful in the use of the macros: ALT_SEM, + * ALT_EXTERN_SEM, and ALT_STATIC_SEM. In these three cases the semi-colon is + * included in the macro definition; so, for example, you should use: + * + * ALT_SEM(mysem) + * + * not: + * + * ALT_SEM(mysem); + * + * The inclusion of the semi-colon has been necessary to ensure the macros can + * compile with no warnings when used in a single threaded HAL environment. + * + */ + +#include "priv/alt_no_error.h" + +#define ALT_SEM(sem) +#define ALT_EXTERN_SEM(sem) +#define ALT_STATIC_SEM(sem) + +#define ALT_SEM_CREATE(sem, value) alt_no_error () +#define ALT_SEM_PEND(sem, timeout) alt_no_error () +#define ALT_SEM_POST(sem) alt_no_error () + +#ifndef ALT_SINGLE_THREADED +#define ALT_SINGLE_THREADED +#endif + +#endif /* __ALT_SEM_H__ */ diff --git a/software/qsys_tutorial_key3_bsp/HAL/inc/os/alt_syscall.h b/software/qsys_tutorial_key3_bsp/HAL/inc/os/alt_syscall.h new file mode 100644 index 0000000..507c6aa --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/HAL/inc/os/alt_syscall.h @@ -0,0 +1,75 @@ +#ifndef __ALT_SYSCALL_H__ +#define __ALT_SYSCALL_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/* + * The macros defined in this file are used to provide the function names used + * for the HAL 'UNIX style' interface, e.g. read(), write() etc. + * + * Operating systems which are ported to the HAL can provide their own + * version of this file, which will be used in preference. This allows + * the operating system to provide it's own implementation of the top level + * system calls, while retaining the HAL functions under a different name, + * for example, alt_read(), alt_write() etc. + */ + +#define ALT_CLOSE close +#define ALT_ENVIRON environ +#define ALT_EXECVE execve +#define ALT_EXIT _exit +#define ALT_FCNTL fcntl +#define ALT_FORK fork +#define ALT_FSTAT fstat +#define ALT_GETPID getpid +#define ALT_GETTIMEOFDAY gettimeofday +#define ALT_IOCTL ioctl +#define ALT_ISATTY isatty +#define ALT_KILL kill +#define ALT_LINK link +#define ALT_LSEEK lseek +#define ALT_OPEN open +#define ALT_READ read +#define ALT_RENAME _rename +#define ALT_SBRK sbrk +#define ALT_SETTIMEOFDAY settimeofday +#define ALT_STAT stat +#define ALT_UNLINK unlink +#define ALT_USLEEP usleep +#define ALT_WAIT wait +#define ALT_WRITE write +#define ALT_TIMES times + +/* + * + */ + +#endif /* __ALT_SYSCALL_H__ */ diff --git a/software/qsys_tutorial_key3_bsp/HAL/inc/priv/alt_alarm.h b/software/qsys_tutorial_key3_bsp/HAL/inc/priv/alt_alarm.h new file mode 100644 index 0000000..45d6a0e --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/HAL/inc/priv/alt_alarm.h @@ -0,0 +1,101 @@ +#ifndef __ALT_PRIV_ALARM_H__ +#define __ALT_PRIV_ALARM_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#include "alt_types.h" + +/* + * This header provides the internal defenitions required by the public + * interface alt_alarm.h. These variables and structures are not guaranteed to + * exist in future implementations of the HAL. + */ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * "alt_alarm_s" is a structure type used to maintain lists of alarm callback + * functions. + */ + +struct alt_alarm_s +{ + alt_llist llist; /* linked list */ + alt_u32 time; /* time in system ticks of the callback */ + alt_u32 (*callback) (void* context); /* callback function. The return + * value is the period for the next callback; where + * zero indicates that the alarm should be removed + * from the list. + */ + alt_u8 rollover; /* set when desired alarm time + current time causes + overflow, to prevent premature alarm */ + void* context; /* Argument for the callback */ +}; + +/* + * "_alt_tick_rate" is a global variable used to store the system clock rate + * in ticks per second. This is initialised to zero, which coresponds to there + * being no system clock available. + * + * It is then set to it's final value by the system clock driver through a call + * to alt_sysclk_init(). + */ + +extern alt_u32 _alt_tick_rate; + +/* + * "_alt_nticks" is a global variable which records the elapsed number of + * system clock ticks since the last call to settimeofday() or since reset if + * settimeofday() has not been called. + */ + +extern volatile alt_u32 _alt_nticks; + +/* The list of registered alarms. */ + +extern alt_llist alt_alarm_list; + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_PRIV_ALARM_H__ */ diff --git a/software/qsys_tutorial_key3_bsp/HAL/inc/priv/alt_busy_sleep.h b/software/qsys_tutorial_key3_bsp/HAL/inc/priv/alt_busy_sleep.h new file mode 100644 index 0000000..b1af849 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/HAL/inc/priv/alt_busy_sleep.h @@ -0,0 +1,35 @@ +#ifndef __ALT_BUSY_SLEEP_H +#define __ALT_BUSY_SLEEP_H + +/* + * Copyright (c) 2003 Altera Corporation, San Jose, California, USA. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ + +/* + * The function alt_busy_sleep provides a busy loop implementation of usleep. + * This is used to provide usleep for the standalone HAL, or when the timer is + * unavailable in uC/OS-II. + */ + +extern unsigned int alt_busy_sleep (unsigned int us); + +#endif /* __ALT_BUSY_SLEEP_H */ diff --git a/software/qsys_tutorial_key3_bsp/HAL/inc/priv/alt_dev_llist.h b/software/qsys_tutorial_key3_bsp/HAL/inc/priv/alt_dev_llist.h new file mode 100644 index 0000000..451b063 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/HAL/inc/priv/alt_dev_llist.h @@ -0,0 +1,77 @@ +#ifndef __ALT_DEV_LLIST_H__ +#define __ALT_DEV_LLIST_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#include "sys/alt_llist.h" +#include "alt_types.h" + +/* + * This header provides the internal defenitions required to control file + * access. These variables and functions are not guaranteed to exist in + * future implementations of the HAL. + */ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * The alt_dev_llist is an internal structure used to form a common base + * class for all device types. The use of this structure allows common code + * to be used to manipulate the various device lists. + */ + +typedef struct { + alt_llist llist; + const char* name; +} alt_dev_llist; + +/* + * + */ + +extern int alt_dev_llist_insert (alt_dev_llist* dev, alt_llist* list); + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_DEV_LLIST_H__ */ diff --git a/software/qsys_tutorial_key3_bsp/HAL/inc/priv/alt_exception_handler_registry.h b/software/qsys_tutorial_key3_bsp/HAL/inc/priv/alt_exception_handler_registry.h new file mode 100644 index 0000000..c6905fa --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/HAL/inc/priv/alt_exception_handler_registry.h @@ -0,0 +1,39 @@ +#ifndef __ALT_EXCEPTION_HANDLER_REGISTRY_H__ +#define __ALT_EXCEPTION_HANDLER_REGISTRY_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2008 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ +#include "sys/alt_exceptions.h" + +/* Function pointer to exception callback routine */ +extern alt_exception_result (*alt_instruction_exception_handler) + (alt_exception_cause, alt_u32, alt_u32); + +#endif /* __ALT_EXCEPTION_HANDLER_REGISTRY_H__ */ diff --git a/software/qsys_tutorial_key3_bsp/HAL/inc/priv/alt_file.h b/software/qsys_tutorial_key3_bsp/HAL/inc/priv/alt_file.h new file mode 100644 index 0000000..2c3e843 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/HAL/inc/priv/alt_file.h @@ -0,0 +1,179 @@ +#ifndef __ALT_FILE_H__ +#define __ALT_FILE_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#include "sys/alt_dev.h" +#include "sys/alt_llist.h" +#include "os/alt_sem.h" + +#include "alt_types.h" + +/* + * This header provides the internal defenitions required to control file + * access. These variables and functions are not guaranteed to exist in + * future implementations of the HAL. + */ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * The function alt_find_dev() is used to search the device list "list" to + * locate a device named "name". If a match is found, then a pointer to the + * device is returned, otherwise NULL is returned. + */ + +extern alt_dev* alt_find_dev (const char* name, alt_llist* list); + +/* + * alt_find_file() is used to search the list of registered file systems to + * find the filesystem that the file named "name" belongs to. If a match is + * found, then a pointer to the filesystems alt_dev structure is returned, + * otherwise NULL is returned. + * + * Note that a match does not indicate that the file exists, only that a + * filesystem exists that is registered for a partition that could contain + * the file. The filesystems open() function would need to be called in order + * to determine if the file exists. + */ + +extern alt_dev* alt_find_file (const char* name); + +/* + * alt_get_fd() is used to allocate a file descriptor for the device or + * filesystem "dev". A negative return value indicates an error, otherwise the + * return value is the index of the file descriptor within the file descriptor + * pool. + */ + +extern int alt_get_fd (alt_dev* dev); + +/* + * alt_release_fd() is called to free the file descriptor with index "fd". + */ + +extern void alt_release_fd (int fd); + +/* + * alt_fd_lock() is called by ioctl() to mark the file descriptor "fd" as + * being open for exclusive access. Subsequent calls to open() for the device + * associated with "fd" will fail. A device is unlocked by either calling + * close() for "fd", or by an alternate call to ioctl() (see ioctl.c for + * details). + */ + +extern int alt_fd_lock (alt_fd* fd); + +/* + * alt_fd_unlock() is called by ioctl() to unlock a descriptor previously + * locked by a call to alt_fd_lock(). + */ + +extern int alt_fd_unlock (alt_fd* fd); + +/* + * "alt_fd_list" is the pool of file descriptors. + */ + +extern alt_fd alt_fd_list[]; + +/* + * flags used by alt_fd. + * + * ALT_FD_EXCL is used to mark a file descriptor as locked for exclusive + * access, i.e. further calls to open() for the associated device should + * fail. + * + * ALT_FD_DEV marks a dile descriptor as belonging to a device as oposed to a + * filesystem. + */ + +#define ALT_FD_EXCL 0x80000000 +#define ALT_FD_DEV 0x40000000 + +#define ALT_FD_FLAGS_MASK (ALT_FD_EXCL | ALT_FD_DEV) + +/* + * "alt_dev_list" is the head of the linked list of registered devices. + */ + +extern alt_llist alt_dev_list; + +/* + * "alt_fs_list" is the head of the linked list of registered filesystems. + */ + +extern alt_llist alt_fs_list; + +/* + * "alt_fd_list_lock" is a semaphore used to ensure that access to the pool + * of file descriptors is thread safe. + */ + +ALT_EXTERN_SEM(alt_fd_list_lock) + +/* + * "alt_max_fd" is a 'high water mark'. It indicates the highest file + * descriptor allocated. Use of this can save searching the entire pool + * for active file descriptors, which helps avoid contention on access + * to the file descriptor pool. + */ + +extern alt_32 alt_max_fd; + +/* + * alt_io_redirect() is called at startup to redirect stdout, stdin, and + * stderr to the devices named in the input arguments. By default these streams + * are directed at /dev/null, and are then redirected using this function once + * all of the devices have been registered within the system. + */ + +extern void alt_io_redirect(const char* stdout_dev, + const char* stdin_dev, + const char* stderr_dev); + + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_FILE_H__ */ diff --git a/software/qsys_tutorial_key3_bsp/HAL/inc/priv/alt_iic_isr_register.h b/software/qsys_tutorial_key3_bsp/HAL/inc/priv/alt_iic_isr_register.h new file mode 100644 index 0000000..a0cb01c --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/HAL/inc/priv/alt_iic_isr_register.h @@ -0,0 +1,39 @@ +#ifndef __ALT_IIC_ISR_REGISTER_H_ +#define __ALT_IIC_ISR_REGISTER_H_ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2009 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ +#include "alt_types.h" +#include "sys/alt_irq.h" + +extern int alt_iic_isr_register(alt_u32 ic_id, alt_u32 irq, alt_isr_func isr, + void *isr_context, void *flags); + +#endif /* __ALT_IIC_ISR_REGISTER_H_ */ diff --git a/software/qsys_tutorial_key3_bsp/HAL/inc/priv/alt_irq_table.h b/software/qsys_tutorial_key3_bsp/HAL/inc/priv/alt_irq_table.h new file mode 100644 index 0000000..694ef06 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/HAL/inc/priv/alt_irq_table.h @@ -0,0 +1,59 @@ +#ifndef __ALT_IRQ_TABLE_H__ +#define __ALT_IRQ_TABLE_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2009 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +/* + * Definition of a table describing each interrupt handler. The index into + * the array is the interrupt id associated with the handler. + * + * When an interrupt occurs, the associated handler is called with + * the argument stored in the context member. + * + * The table is physically created in alt_irq_handler.c + */ +extern struct ALT_IRQ_HANDLER +{ +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT + void (*handler)(void*); +#else + void (*handler)(void*, alt_u32); +#endif + void *context; +} alt_irq[ALT_NIRQ]; + +#endif diff --git a/software/qsys_tutorial_key3_bsp/HAL/inc/priv/alt_legacy_irq.h b/software/qsys_tutorial_key3_bsp/HAL/inc/priv/alt_legacy_irq.h new file mode 100644 index 0000000..c7aec02 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/HAL/inc/priv/alt_legacy_irq.h @@ -0,0 +1,158 @@ +#ifndef __ALT_LEGACY_IRQ_H__ +#define __ALT_LEGACY_IRQ_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2009 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/* + * This file provides prototypes and inline implementations of certain routines + * used by the legacy interrupt API. Do not include this in your driver or + * application source files, use "sys/alt_irq.h" instead to access the proper + * public API. + */ + +#include +#include "system.h" + +#ifndef NIOS2_EIC_PRESENT + +#include "nios2.h" +#include "alt_types.h" + +#include "sys/alt_irq.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * alt_irq_register() can be used to register an interrupt handler. If the + * function is succesful, then the requested interrupt will be enabled upon + * return. + */ +extern int alt_irq_register (alt_u32 id, + void* context, + alt_isr_func handler); + +/* + * alt_irq_disable() disables the individual interrupt indicated by "id". + */ +static ALT_INLINE int ALT_ALWAYS_INLINE alt_irq_disable (alt_u32 id) +{ + alt_irq_context status; + extern volatile alt_u32 alt_irq_active; + + status = alt_irq_disable_all (); + + alt_irq_active &= ~(1 << id); + NIOS2_WRITE_IENABLE (alt_irq_active); + + alt_irq_enable_all(status); + + return 0; +} + +/* + * alt_irq_enable() enables the individual interrupt indicated by "id". + */ +static ALT_INLINE int ALT_ALWAYS_INLINE alt_irq_enable (alt_u32 id) +{ + alt_irq_context status; + extern volatile alt_u32 alt_irq_active; + + status = alt_irq_disable_all (); + + alt_irq_active |= (1 << id); + NIOS2_WRITE_IENABLE (alt_irq_active); + + alt_irq_enable_all(status); + + return 0; +} + +#ifndef ALT_EXCEPTION_STACK +/* + * alt_irq_initerruptable() should only be called from within an ISR. It is used + * to allow higer priority interrupts to interrupt the current ISR. The input + * argument, "priority", is the priority, i.e. interrupt number of the current + * interrupt. + * + * If this function is called, then the ISR is required to make a call to + * alt_irq_non_interruptible() before returning. The input argument to + * alt_irq_non_interruptible() is the return value from alt_irq_interruptible(). + * + * Care should be taken when using this pair of functions, since they increasing + * the system overhead associated with interrupt handling. + * + * If you are using an exception stack then nested interrupts won't work, so + * these functions are not available in that case. + */ +static ALT_INLINE alt_u32 ALT_ALWAYS_INLINE alt_irq_interruptible (alt_u32 priority) +{ + extern volatile alt_u32 alt_priority_mask; + extern volatile alt_u32 alt_irq_active; + + alt_u32 old_priority; + + old_priority = alt_priority_mask; + alt_priority_mask = (1 << priority) - 1; + + NIOS2_WRITE_IENABLE (alt_irq_active & alt_priority_mask); + + NIOS2_WRITE_STATUS (1); + + return old_priority; +} + +/* + * See Comments above for alt_irq_interruptible() for an explanation of the use of this + * function. + */ +static ALT_INLINE void ALT_ALWAYS_INLINE alt_irq_non_interruptible (alt_u32 mask) +{ + extern volatile alt_u32 alt_priority_mask; + extern volatile alt_u32 alt_irq_active; + + NIOS2_WRITE_STATUS (0); + + alt_priority_mask = mask; + + NIOS2_WRITE_IENABLE (mask & alt_irq_active); +} +#endif /* ALT_EXCEPTION_STACK */ + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* NIOS2_EIC_PRESENT */ + +#endif /* __ALT_LEGACY_IRQ_H__ */ diff --git a/software/qsys_tutorial_key3_bsp/HAL/inc/priv/alt_no_error.h b/software/qsys_tutorial_key3_bsp/HAL/inc/priv/alt_no_error.h new file mode 100644 index 0000000..6143fc9 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/HAL/inc/priv/alt_no_error.h @@ -0,0 +1,77 @@ +#ifndef __ALT_NO_ERROR_H__ +#define __ALT_NO_ERROR_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#include "alt_types.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * alt_no_error() is a dummy function used by alt_sem.h and alt_flag.h. It + * substitutes for functions that have a return code by creating a function + * that always returns zero. + * + * This may seem a little obscure, but what happens is that the compiler can + * then optomise away the call to this function, and any code written which + * handles the error path (i.e. non zero return values). + * + * This allows code to be written which correctly use the uC/OS-II semaphore + * and flag utilities, without the use of those utilities impacting on + * excutables built for a single threaded HAL environment. + * + * This function is considered to be part of the internal implementation of + * the HAL, and should not be called directly by application code or device + * drivers. It is not guaranteed to be preserved in future versions of the + * HAL. + */ + +static ALT_INLINE int ALT_ALWAYS_INLINE alt_no_error (void) +{ + return 0; +} + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_NO_ERROR_H__ */ diff --git a/software/qsys_tutorial_key3_bsp/HAL/inc/priv/nios2_gmon_data.h b/software/qsys_tutorial_key3_bsp/HAL/inc/priv/nios2_gmon_data.h new file mode 100644 index 0000000..3f43f12 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/HAL/inc/priv/nios2_gmon_data.h @@ -0,0 +1,47 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ +#ifndef NIOS2_GMON_DATA_H +#define NIOS2_GMON_DATA_H + +#define GMON_DATA_SIG 0 +#define GMON_DATA_WORDS 1 +#define GMON_DATA_PROFILE_DATA 2 +#define GMON_DATA_PROFILE_LOWPC 3 +#define GMON_DATA_PROFILE_HIGHPC 4 +#define GMON_DATA_PROFILE_BUCKET 5 +#define GMON_DATA_PROFILE_RATE 6 +#define GMON_DATA_MCOUNT_START 7 +#define GMON_DATA_MCOUNT_LIMIT 8 + +#define GMON_DATA_SIZE 9 + +extern unsigned int alt_gmon_data[GMON_DATA_SIZE]; + +#endif diff --git a/software/qsys_tutorial_key3_bsp/HAL/inc/sys/alt_alarm.h b/software/qsys_tutorial_key3_bsp/HAL/inc/sys/alt_alarm.h new file mode 100644 index 0000000..68a2f5d --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/HAL/inc/sys/alt_alarm.h @@ -0,0 +1,126 @@ +#ifndef __ALT_ALARM_H__ +#define __ALT_ALARM_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#include "alt_llist.h" +#include "alt_types.h" + +#include "priv/alt_alarm.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * "alt_alarm" is a structure type used by applications to register an alarm + * callback function. An instance of this type must be passed as an input + * argument to alt_alarm_start(). The user is not responsible for initialising + * the contents of the instance. This is done by alt_alarm_start(). + */ + +typedef struct alt_alarm_s alt_alarm; + +/* + * alt_alarm_start() can be called by an application/driver in order to register + * a function for periodic callback at the system clock frequency. Be aware that + * this callback is likely to occur in interrupt context. + */ + +extern int alt_alarm_start (alt_alarm* the_alarm, + alt_u32 nticks, + alt_u32 (*callback) (void* context), + void* context); + +/* + * alt_alarm_stop() is used to unregister a callback. Alternatively the callback + * can return zero to unregister. + */ + +extern void alt_alarm_stop (alt_alarm* the_alarm); + +/* + * Obtain the system clock rate in ticks/s. + */ + +static ALT_INLINE alt_u32 ALT_ALWAYS_INLINE alt_ticks_per_second (void) +{ + return _alt_tick_rate; +} + +/* + * alt_sysclk_init() is intended to be only used by the system clock driver + * in order to initialise the value of the clock frequency. + */ + +static ALT_INLINE int ALT_ALWAYS_INLINE alt_sysclk_init (alt_u32 nticks) +{ + if (! _alt_tick_rate) + { + _alt_tick_rate = nticks; + return 0; + } + else + { + return -1; + } +} + +/* + * alt_nticks() returns the elapsed number of system clock ticks since reset. + */ + +static ALT_INLINE alt_u32 ALT_ALWAYS_INLINE alt_nticks (void) +{ + return _alt_nticks; +} + +/* + * alt_tick() should only be called by the system clock driver. This is used + * to notify the system that the system timer period has expired. + */ + +extern void alt_tick (void); + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_ALARM_H__ */ diff --git a/software/qsys_tutorial_key3_bsp/HAL/inc/sys/alt_cache.h b/software/qsys_tutorial_key3_bsp/HAL/inc/sys/alt_cache.h new file mode 100644 index 0000000..c4d8db9 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/HAL/inc/sys/alt_cache.h @@ -0,0 +1,117 @@ +#ifndef __ALT_CACHE_H__ +#define __ALT_CACHE_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003, 2007 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include + +#include "alt_types.h" + +/* + * alt_cache.h defines the processor specific functions for manipulating the + * cache. + */ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * alt_icache_flush() is called to flush the instruction cache for a memory + * region of length "len" bytes, starting at address "start". + */ + +extern void alt_icache_flush (void* start, alt_u32 len); + +/* + * alt_dcache_flush() is called to flush the data cache for a memory + * region of length "len" bytes, starting at address "start". + * Any dirty lines in the data cache are written back to memory. + */ + +extern void alt_dcache_flush (void* start, alt_u32 len); + +/* + * alt_dcache_flush() is called to flush the data cache for a memory + * region of length "len" bytes, starting at address "start". + * Any dirty lines in the data cache are NOT written back to memory. + */ + +extern void alt_dcache_flush_no_writeback (void* start, alt_u32 len); + +/* + * Flush the entire instruction cache. + */ + +extern void alt_icache_flush_all (void); + +/* + * Flush the entire data cache. + */ + +extern void alt_dcache_flush_all (void); + +/* + * Allocate a block of uncached memory. + */ + +extern volatile void* alt_uncached_malloc (size_t size); + +/* + * Free a block of uncached memory. + */ + +extern void alt_uncached_free (volatile void* ptr); + +/* + * Convert a pointer to a block of cached memory, into a block of + * uncached memory. + */ + +extern volatile void* alt_remap_uncached (void* ptr, alt_u32 len); + +/* + * Convert a pointer to a block of uncached memory, into a block of + * cached memory. + */ + +extern void* alt_remap_cached (volatile void* ptr, alt_u32 len); + +/* + * + */ + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_CACHE_H__ */ diff --git a/software/qsys_tutorial_key3_bsp/HAL/inc/sys/alt_debug.h b/software/qsys_tutorial_key3_bsp/HAL/inc/sys/alt_debug.h new file mode 100644 index 0000000..d9f9599 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/HAL/inc/sys/alt_debug.h @@ -0,0 +1,45 @@ +#ifndef __ALT_DEBUG_H__ +#define __ALT_DEBUG_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/* + * The ALT_DEVUG_ASSERT macro can be used to generate a debugger break + * from within software. The break is generated if "condition" evaluates to + * false. + */ + +#define ALT_DEBUG_ASSERT(condition) if (!condition) \ +{ \ + __asm__ volatile ("break"); \ +} + +#endif /* __ALT_DEBUG_H__ */ diff --git a/software/qsys_tutorial_key3_bsp/HAL/inc/sys/alt_dev.h b/software/qsys_tutorial_key3_bsp/HAL/inc/sys/alt_dev.h new file mode 100644 index 0000000..66c5e41 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/HAL/inc/sys/alt_dev.h @@ -0,0 +1,115 @@ +#ifndef __ALT_DEV_H__ +#define __ALT_DEV_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#include "system.h" +#include "sys/alt_llist.h" +#include "priv/alt_dev_llist.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * The value ALT_IRQ_NOT_CONNECTED is used to represent an unconnected + * interrupt line. It cannot evaluate to a valid interrupt number. + */ + +#define ALT_IRQ_NOT_CONNECTED (-1) + +typedef struct alt_dev_s alt_dev; + +struct stat; + +/* + * The file descriptor structure definition. + */ + +typedef struct alt_fd_s +{ + alt_dev* dev; + alt_u8* priv; + int fd_flags; +} alt_fd; + +/* + * The device structure definition. + */ + +struct alt_dev_s { + alt_llist llist; /* for internal use */ + const char* name; + int (*open) (alt_fd* fd, const char* name, int flags, int mode); + int (*close) (alt_fd* fd); + int (*read) (alt_fd* fd, char* ptr, int len); + int (*write) (alt_fd* fd, const char* ptr, int len); + int (*lseek) (alt_fd* fd, int ptr, int dir); + int (*fstat) (alt_fd* fd, struct stat* buf); + int (*ioctl) (alt_fd* fd, int req, void* arg); +}; + +/* + * Functions used to register device for access through the C standard + * library. + * + * The only difference between alt_dev_reg() and alt_fs_reg() is the + * interpretation that open() places on the device name. In the case of + * alt_dev_reg the device is assumed to be a particular character device, + * and so there must be an exact match in the name for open to succeed. + * In the case of alt_fs_reg() the name of the device is treated as the + * mount point for a directory, and so any call to open() where the name + * is the root of the device filename will succeed. + */ + +extern int alt_fs_reg (alt_dev* dev); + +static ALT_INLINE int alt_dev_reg (alt_dev* dev) +{ + extern alt_llist alt_dev_list; + + return alt_dev_llist_insert ((alt_dev_llist*) dev, &alt_dev_list); +} + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_DEV_H__ */ diff --git a/software/qsys_tutorial_key3_bsp/HAL/inc/sys/alt_dma.h b/software/qsys_tutorial_key3_bsp/HAL/inc/sys/alt_dma.h new file mode 100644 index 0000000..9f9b2ff --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/HAL/inc/sys/alt_dma.h @@ -0,0 +1,226 @@ +#ifndef __ALT_DMA_H__ +#define __ALT_DMA_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004-2005 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#include "sys/alt_dma_dev.h" +#include "alt_types.h" + +#include + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * This header contains the application side interface for accessing DMA + * resources. See alt_dma_dev.h for the dma device driver interface. + * + * The interface model treats a DMA transaction as being composed of two + * halves (read and write). + * + * The application can supply data for transmit using an "alt_dma_txchan" + * descriptor. Alternatively an "alt_dma_rxchan" descriptor can be used to + * receive data. + */ + +/* + * alt_dma_txchan_open() is used to obtain an "alt_dma_txchan" descriptor for + * a DMA transmit device. The name is the name of the associated physical + * device (e.g. "/dev/dma_0"). + * + * The return value will be NULL on failure, and non-NULL otherwise. + */ + +extern alt_dma_txchan alt_dma_txchan_open (const char* name); + +/* + * alt_dma_txchan_close() is provided so that an application can notify the + * system that it has finished with a given DMA transmit channel. This is only + * provided for completness. + */ + +static ALT_INLINE int alt_dma_txchan_close (alt_dma_txchan dma) +{ + return 0; +} + +/* + * alt_dma_txchan_send() posts a transmit request to a DMA transmit channel. + * The input arguments are: + * + * dma: the channel to use. + * from: a pointer to the start of the data to send. + * length: the length of the data to send in bytes. + * done: callback function that will be called once the data has been sent. + * handle: opaque value passed to "done". + * + * The return value will be negative if the request cannot be posted, and + * zero otherwise. + */ + +static ALT_INLINE int alt_dma_txchan_send (alt_dma_txchan dma, + const void* from, + alt_u32 length, + alt_txchan_done* done, + void* handle) +{ + return dma ? dma->dma_send (dma, + from, + length, + done, + handle) : -ENODEV; +} + +/* + * alt_dma_txchan_space() returns the number of tranmit requests that can be + * posted to the specified DMA transmit channel. + * + * A negative value indicates that the value could not be determined. + */ + +static ALT_INLINE int alt_dma_txchan_space (alt_dma_txchan dma) +{ + return dma ? dma->space (dma) : -ENODEV; +} + +/* + * alt_dma_txchan_ioctl() can be used to perform device specific I/O + * operations on the indicated DMA transmit channel. For example some drivers + * support options to control the width of the transfer operations. See + * alt_dma_dev.h for the list of generic requests. + * + * A negative return value indicates failure, otherwise the interpretation + * of the return value is request specific. + */ + +static ALT_INLINE int alt_dma_txchan_ioctl (alt_dma_txchan dma, + int req, + void* arg) +{ + return dma ? dma->ioctl (dma, req, arg) : -ENODEV; +} + +/* + * alt_dma_rxchan_open() is used to obtain an "alt_dma_rxchan" descriptor for + * a DMA receive channel. The name is the name of the associated physical + * device (e.g. "/dev/dma_0"). + * + * The return value will be NULL on failure, and non-NULL otherwise. + */ + +extern alt_dma_rxchan alt_dma_rxchan_open (const char* dev); + +/* + * alt_dma_rxchan_close() is provided so that an application can notify the + * system that it has finished with a given DMA receive channel. This is only + * provided for completness. + */ + +static ALT_INLINE int alt_dma_rxchan_close (alt_dma_rxchan dma) +{ + return 0; +} + +/* + * + */ + +/* + * alt_dma_rxchan_prepare() posts a receive request to a DMA receive channel. + * + * The input arguments are: + * + * dma: the channel to use. + * data: a pointer to the location that data is to be received to. + * len: the maximum length of the data to receive. + * done: callback function that will be called once the data has been + * received. + * handle: opaque value passed to "done". + * + * The return value will be negative if the request cannot be posted, and + * zero otherwise. + */ + +static ALT_INLINE int alt_dma_rxchan_prepare (alt_dma_rxchan dma, + void* data, + alt_u32 len, + alt_rxchan_done* done, + void* handle) +{ + return dma ? dma->prepare (dma, data, len, done, handle) : -ENODEV; +} + +/* + * alt_dma_rxchan_ioctl() can be used to perform device specific I/O + * operations on the indicated DMA receive channel. For example some drivers + * support options to control the width of the transfer operations. See + * alt_dma_dev.h for the list of generic requests. + * + * A negative return value indicates failure, otherwise the interpretation + * of the return value is request specific. + */ + +static ALT_INLINE int alt_dma_rxchan_ioctl (alt_dma_rxchan dma, + int req, + void* arg) +{ + return dma ? dma->ioctl (dma, req, arg) : -ENODEV; +} + +/* + * alt_dma_rxchan_depth() returns the depth of the receive FIFO used to store + * receive requests. + */ + +static ALT_INLINE alt_u32 alt_dma_rxchan_depth(alt_dma_rxchan dma) +{ + return dma->depth; +} + +/* + * + */ + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __ALT_DMA_H__ */ diff --git a/software/qsys_tutorial_key3_bsp/HAL/inc/sys/alt_dma_dev.h b/software/qsys_tutorial_key3_bsp/HAL/inc/sys/alt_dma_dev.h new file mode 100644 index 0000000..832463d --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/HAL/inc/sys/alt_dma_dev.h @@ -0,0 +1,200 @@ +#ifndef __ALT_DMA_DEV_H__ +#define __ALT_DMA_DEV_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004-2005 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#include "priv/alt_dev_llist.h" + +#include "alt_types.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * This header contains the device driver interface for accessing DMA + * resources. See alt_dma.h for the DMA application side interface. + * + * The interface model treats a DMA transaction as being composed of two + * halves (read and write). + * + * An "alt_dma_txchan_dev" is used to describe the device associated with a + * DMA transmit channel. An "alt_dma_rxchan_dev" is used to describe the + * device associated with a DMA receive channel. + */ + +/* + * List of generic ioctl requests that may be supported by a DMA device. + * + * ALT_DMA_RX_ONLY_ON: This causes a DMA channel to operate in a mode + * where only the receiver is under software control. + * The other side reads continously from a single + * location. The address to read is the argument to + * this request. + * ALT_DMA_RX_ONLY_OFF: Return to the default mode where both the receive + * and transmit sides of the DMA can be under software + * control. + * ALT_DMA_TX_ONLY_ON: This causes a DMA channel to operate in a mode + * where only the transmitter is under software control. + * The other side writes continously to a single + * location. The address to write to is the argument to + * this request. + * ALT_DMA_TX_ONLY_OFF: Return to the default mode where both the receive + * and transmit sides of the DMA can be under software + * control. + * ALT_DMA_SET_MODE_8: Transfer data in units of 8 bits. + * ALT_DMA_SET_MODE_16: Transfer data in units of 16 bits. + * ALT_DMA_SET_MODE_32: Transfer data in units of 32 bits. + * ALT_DMA_SET_MODE_64: Transfer data in units of 64 bits. + * ALT_DMA_SET_MODE_128: Transfer data in units of 128 bits. + * ALT_DMA_GET_MODE: Get the current transfer mode. + * + * The use of the macros: ALT_DMA_TX_STREAM_ON, ALT_DMA_TX_STREAM_OFF + * ALT_DMA_RX_STREAM_OFF and ALT_DMA_RX_STREAM_ON are depreciated. You should + * instead use the macros: ALT_DMA_RX_ONLY_ON, ALT_DMA_RX_ONLY_OFF, + * ALT_DMA_TX_ONLY_ON and ALT_DMA_TX_ONLY_OFF. + */ + +#define ALT_DMA_TX_STREAM_ON (0x1) +#define ALT_DMA_TX_STREAM_OFF (0x2) +#define ALT_DMA_RX_STREAM_ON (0x3) +#define ALT_DMA_RX_STREAM_OFF (0x4) +#define ALT_DMA_SET_MODE_8 (0x5) +#define ALT_DMA_SET_MODE_16 (0x6) +#define ALT_DMA_SET_MODE_32 (0x7) +#define ALT_DMA_SET_MODE_64 (0x8) +#define ALT_DMA_SET_MODE_128 (0x9) +#define ALT_DMA_GET_MODE (0xa) + +#define ALT_DMA_RX_ONLY_ON ALT_DMA_TX_STREAM_ON +#define ALT_DMA_RX_ONLY_OFF ALT_DMA_TX_STREAM_OFF +#define ALT_DMA_TX_ONLY_ON ALT_DMA_RX_STREAM_ON +#define ALT_DMA_TX_ONLY_OFF ALT_DMA_RX_STREAM_OFF + +/* + * + */ + +typedef struct alt_dma_txchan_dev_s alt_dma_txchan_dev; +typedef struct alt_dma_rxchan_dev_s alt_dma_rxchan_dev; + +typedef alt_dma_txchan_dev* alt_dma_txchan; +typedef alt_dma_rxchan_dev* alt_dma_rxchan; + +typedef void (alt_txchan_done)(void* handle); +typedef void (alt_rxchan_done)(void* handle, void* data); + +/* + * devices that provide a DMA transmit channel are required to provide an + * instance of the "alt_dma_txchan_dev" structure. + */ + +struct alt_dma_txchan_dev_s { + alt_llist llist; /* for internal use */ + const char* name; /* name of the device instance + * (e.g. "/dev/dma_0"). + */ + int (*space) (alt_dma_txchan dma); /* returns the maximum number of + * transmit requests that can be posted + */ + int (*dma_send) (alt_dma_txchan dma, + const void* from, + alt_u32 len, + alt_txchan_done* done, + void* handle); /* post a transmit request */ + int (*ioctl) (alt_dma_txchan dma, int req, void* arg); /* perform device + * specific I/O control. + */ +}; + +/* + * devices that provide a DMA receive channel are required to provide an + * instance of the "alt_dma_rxchan_dev" structure. + */ + +struct alt_dma_rxchan_dev_s { + alt_llist list; /* for internal use */ + const char* name; /* name of the device instance + * (e.g. "/dev/dma_0"). + */ + alt_u32 depth; /* maximum number of receive requests that + * can be posted. + */ + int (*prepare) (alt_dma_rxchan dma, + void* data, + alt_u32 len, + alt_rxchan_done* done, + void* handle); /* post a receive request */ + int (*ioctl) (alt_dma_rxchan dma, int req, void* arg); /* perform device + * specific I/O control. + */ +}; + +/* + * Register a DMA transmit channel with the system. + */ + +static ALT_INLINE int alt_dma_txchan_reg (alt_dma_txchan_dev* dev) +{ + extern alt_llist alt_dma_txchan_list; + + return alt_dev_llist_insert((alt_dev_llist*) dev, &alt_dma_txchan_list); +} + +/* + * Register a DMA receive channel with the system. + */ + +static ALT_INLINE int alt_dma_rxchan_reg (alt_dma_rxchan_dev* dev) +{ + extern alt_llist alt_dma_rxchan_list; + + return alt_dev_llist_insert((alt_dev_llist*) dev, &alt_dma_rxchan_list); +} + +/* + * + */ + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __ALT_DMA_DEV_H__ */ diff --git a/software/qsys_tutorial_key3_bsp/HAL/inc/sys/alt_driver.h b/software/qsys_tutorial_key3_bsp/HAL/inc/sys/alt_driver.h new file mode 100644 index 0000000..eb0f23b --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/HAL/inc/sys/alt_driver.h @@ -0,0 +1,168 @@ +#ifndef __ALT_DRIVER_H__ +#define __ALT_DRIVER_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/* + * Macros used to access a driver without HAL file descriptors. + */ + +/* + * ALT_MODULE_CLASS + * + * This macro returns the module class name for the specified module instance. + * It uses information in the system.h file. + * Neither the instance name or class name are quoted (so that they can + * be used with other pre-processor macros). + * + * Example: + * Assume the design has an instance of an altera_avalon_uart called uart1. + * Calling ALT_MODULE_CLASS(uart1) returns altera_avalon_uart. + */ + +#define ALT_MODULE_CLASS(instance) ALT_MODULE_CLASS_ ## instance + + +/* + * ALT_DRIVER_FUNC_NAME + * + * --> instance Instance name. + * --> func Function name. + * + * This macro returns the device driver function name of the specified + * module instance for the specified function name. + * + * Example: + * Assume the design has an instance of an altera_avalon_uart called uart1. + * Calling ALT_DRIVER_FUNC_NAME(uart1, write) returns + * altera_avalon_uart_write. + */ + +#define ALT_DRIVER_FUNC_NAME(instance, func) \ + ALT_DRIVER_FUNC_NAME1(ALT_MODULE_CLASS(instance), func) +#define ALT_DRIVER_FUNC_NAME1(module_class, func) \ + ALT_DRIVER_FUNC_NAME2(module_class, func) +#define ALT_DRIVER_FUNC_NAME2(module_class, func) \ + module_class ## _ ## func + +/* + * ALT_DRIVER_STATE_STRUCT + * + * --> instance Instance name. + * + * This macro returns the device driver state type name of the specified + * module instance. + * + * Example: + * Assume the design has an instance of an altera_avalon_uart called uart1. + * Calling ALT_DRIVER_STATE_STRUCT(uart1) returns: + * struct altera_avalon_uart_state_s + * + * Note that the ALT_DRIVER_FUNC_NAME macro is used even though "state" isn't + * really a function but it does match the required naming convention. + */ +#define ALT_DRIVER_STATE_STRUCT(instance) \ + struct ALT_DRIVER_FUNC_NAME(instance, state_s) + +/* + * ALT_DRIVER_STATE + * + * --> instance Instance name. + * + * This macro returns the device driver state name of the specified + * module instance. + * + * Example: + * Assume the design has an instance of an altera_avalon_uart called uart1. + * Calling ALT_DRIVER_STATE(uart1) returns uart1. + */ +#define ALT_DRIVER_STATE(instance) instance + +/* + * ALT_DRIVER_WRITE + * + * --> instance Instance name. + * --> buffer Write buffer. + * --> len Length of write buffer data. + * --> flags Control flags (e.g. O_NONBLOCK) + * + * This macro calls the "write" function of the specified driver instance. + */ + +#define ALT_DRIVER_WRITE_EXTERNS(instance) \ + extern ALT_DRIVER_STATE_STRUCT(instance) ALT_DRIVER_STATE(instance); \ + extern int ALT_DRIVER_FUNC_NAME(instance, write) \ + (ALT_DRIVER_STATE_STRUCT(instance) *, const char *, int, int); + +#define ALT_DRIVER_WRITE(instance, buffer, len, flags) \ + ALT_DRIVER_FUNC_NAME(instance, write)(&ALT_DRIVER_STATE(instance), buffer, len, flags) + + +/* + * ALT_DRIVER_READ + * + * --> instance Instance name. + * <-- buffer Read buffer. + * --> len Length of read buffer. + * --> flags Control flags (e.g. O_NONBLOCK) + * + * This macro calls the "read" function of the specified driver instance. + */ + +#define ALT_DRIVER_READ_EXTERNS(instance) \ + extern ALT_DRIVER_STATE_STRUCT(instance) ALT_DRIVER_STATE(instance); \ + extern int ALT_DRIVER_FUNC_NAME(instance, read) \ + (ALT_DRIVER_STATE_STRUCT(instance) *, const char *, int, int); + +#define ALT_DRIVER_READ(instance, buffer, len, flags) \ + ALT_DRIVER_FUNC_NAME(instance, read)(&ALT_DRIVER_STATE(instance), buffer, len, flags) + +/* + * ALT_DRIVER_IOCTL + * + * --> instance Instance name. + * --> req ioctl request (e.g. TIOCSTIMEOUT) + * --> arg Optional argument (void*) + * + * This macro calls the "ioctl" function of the specified driver instance + */ + +#define ALT_DRIVER_IOCTL_EXTERNS(instance) \ + extern ALT_DRIVER_STATE_STRUCT(instance) ALT_DRIVER_STATE(instance); \ + extern int ALT_DRIVER_FUNC_NAME(instance, ioctl) \ + (ALT_DRIVER_STATE_STRUCT(instance) *, int, void*); + +#define ALT_DRIVER_IOCTL(instance, req, arg) \ + ALT_DRIVER_FUNC_NAME(instance, ioctl)(&ALT_DRIVER_STATE(instance), req, arg) + +#endif /* __ALT_DRIVER_H__ */ diff --git a/software/qsys_tutorial_key3_bsp/HAL/inc/sys/alt_errno.h b/software/qsys_tutorial_key3_bsp/HAL/inc/sys/alt_errno.h new file mode 100644 index 0000000..4d3e50f --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/HAL/inc/sys/alt_errno.h @@ -0,0 +1,87 @@ +#ifndef __ALT_ERRNO_H__ +#define __ALT_ERRNO_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +/* + * errno is defined in so that it uses the thread local version + * stored in the location pointed to by "_impure_ptr". This means that the + * accesses to errno within the HAL library can cause the entirety of + * of the structure pointed to by "_impure_ptr" to be added to the + * users application. This can be undesirable in very small footprint systems. + * + * To avoid this happening, the HAL uses the macro ALT_ERRNO, defined below, + * to access errno, rather than accessing it directly. This macro will only + * use the thread local version if some other code has already caused it to be + * included into the system, otherwise it will use the global errno value. + * + * This causes a slight increases in code size where errno is accessed, but + * can lead to significant overall benefits in very small systems. The + * increase is inconsequential when compared to the size of the structure + * pointed to by _impure_ptr. + * + * Note that this macro accesses __errno() using an externally declared + * function pointer (alt_errno). This is done so that the function call uses the + * subroutine call instruction via a register rather than an immediate address. + * This is important in the case that the code has been linked for a high + * address, but __errno() is not being used. In this case the weak linkage + * would have resulted in the instruction: "call 0" which would fail to link. + */ + +extern int* (*alt_errno) (void); + +/* Must define this so that values such as EBADFD are defined in errno.h. */ +#define __LINUX_ERRNO_EXTENSIONS__ + +#include + +#include "alt_types.h" + +#undef errno + +extern int errno; + +static ALT_INLINE int* alt_get_errno(void) +{ + return ((alt_errno) ? alt_errno() : &errno); +} + +#define ALT_ERRNO *alt_get_errno() + +#endif /* __ALT_ERRNO_H__ */ diff --git a/software/qsys_tutorial_key3_bsp/HAL/inc/sys/alt_exceptions.h b/software/qsys_tutorial_key3_bsp/HAL/inc/sys/alt_exceptions.h new file mode 100644 index 0000000..3576a52 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/HAL/inc/sys/alt_exceptions.h @@ -0,0 +1,127 @@ +#ifndef __ALT_EXCEPTIONS_H__ +#define __ALT_EXCEPTIONS_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2008 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ +#include "alt_types.h" +#include "system.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * This file defines instruction-generated exception handling and registry + * API, exception type enumeration, and handler return value enumeration for + * Nios II. + */ + +/* + * The following enumeration describes the value in the CPU EXCEPTION + * register CAUSE bit field. Not all exception types will cause the + * processor to go to the exception vector; these are provided for + * reference. + */ +enum alt_exception_cause_e { + /* Exeption causes that will cause jump to exception vector */ + NIOS2_EXCEPTION_INTERRUPT = 2, + NIOS2_EXCEPTION_TRAP_INST = 3, + NIOS2_EXCEPTION_UNIMPLEMENTED_INST = 4, + NIOS2_EXCEPTION_ILLEGAL_INST = 5, + NIOS2_EXCEPTION_MISALIGNED_DATA_ADDR = 6, + NIOS2_EXCEPTION_MISALIGNED_TARGET_PC = 7, + NIOS2_EXCEPTION_DIVISION_ERROR = 8, + NIOS2_EXCEPTION_SUPERVISOR_ONLY_INST_ADDR = 9, + NIOS2_EXCEPTION_SUPERVISOR_ONLY_INST = 10, + NIOS2_EXCEPTION_SUPERVISOR_ONLY_DATA_ADDR = 11, + NIOS2_EXCEPTION_TLB_MISS = 12, + NIOS2_EXCEPTION_TLB_EXECUTE_PERM_VIOLATION = 13, + NIOS2_EXCEPTION_MPU_INST_REGION_VIOLATION = 16, + + /* Exception causes that will NOT cause a jump to exception vector */ + NIOS2_EXCEPTION_RESET = 0, + NIOS2_EXCEPTION_CPU_ONLY_RESET_REQUEST = 1, + NIOS2_EXCEPTION_TLB_READ_PERM_VIOLATION = 14, + NIOS2_EXCEPTION_TLB_WRITE_PERM_VIOLATION = 15, + NIOS2_EXCEPTION_MPU_DATA_REGION_VIOLATION = 17, + /* + * This value is passed to an exception handler's cause argument if + * "extra exceptions" information (EXECPTION) register is not + * present in the processor hardware configuration. + */ + NIOS2_EXCEPTION_CAUSE_NOT_PRESENT = -1 +}; +typedef enum alt_exception_cause_e alt_exception_cause; + +/* + * These define valid return values for a user-defined instruction-generated + * exception handler. The handler should return one of these to indicate + * whether to re-issue the instruction that triggered the exception, or to + * skip it. + */ +enum alt_exception_result_e { + NIOS2_EXCEPTION_RETURN_REISSUE_INST = 0, + NIOS2_EXCEPTION_RETURN_SKIP_INST = 1 +}; +typedef enum alt_exception_result_e alt_exception_result; + +/* + * alt_instruction_exception_register() can be used to register an exception + * handler for instruction-generated exceptions that are not handled by the + * built-in exception handler (i.e. for interrupts). + * + * The registry API is optionally enabled through the "Enable + * Instruction-related Exception API" HAL BSP setting, which will + * define the macro below. + */ +#ifdef ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API +void alt_instruction_exception_register ( + alt_exception_result (*exception_handler)( + alt_exception_cause cause, + alt_u32 exception_pc, + alt_u32 bad_addr) ); +#endif /*ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API */ + +/* + * alt_exception_cause_generated_bad_addr() indicates whether a particular + * exception cause value was from an exception-type that generated a valid + * address in the BADADDR register. The contents of BADADDR is passed to + * a user-registered exception handler in all cases, whether valid or not. + * This routine should be called to validate the bad_addr argument to + * your exception handler. + */ +int alt_exception_cause_generated_bad_addr(alt_exception_cause cause); + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __ALT_EXCEPTIONS_H__ */ diff --git a/software/qsys_tutorial_key3_bsp/HAL/inc/sys/alt_flash.h b/software/qsys_tutorial_key3_bsp/HAL/inc/sys/alt_flash.h new file mode 100644 index 0000000..527328d --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/HAL/inc/sys/alt_flash.h @@ -0,0 +1,166 @@ +#ifndef __ALT_FLASH_H__ +#define __ALT_FLASH_H__ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +/****************************************************************************** +* * +* Alt_flash.h - User interface for flash code * +* * +* Use this interface to avoid being exposed to the internals of the device * +* driver architecture. If you chose to use the flash driver internal * +* structures we don't guarantee not to change them * +* * +* Author PRR * +* * +******************************************************************************/ + + + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +#include "alt_types.h" +#include "alt_flash_types.h" +#include "alt_flash_dev.h" +#include "sys/alt_cache.h" + +alt_flash_fd* alt_flash_open_dev(const char* name); +void alt_flash_close_dev(alt_flash_fd* fd ); + +/* + * alt_write_flash + * + * Program a buffer into flash. + * + * This routine erases all the affected erase blocks (if necessary) + * and then programs the data. However it does not read the data out first + * and preserve and none overwritten data, because this would require very + * large buffers on the target. If you need + * that functionality use the functions below. + */ +static __inline__ int __attribute__ ((always_inline)) alt_write_flash( + alt_flash_fd* fd, + int offset, + const void* src_addr, + int length ) +{ + return fd->write( fd, offset, src_addr, length ); +} + +/* + * alt_read_flash + * + * Read a block of flash for most flashes this is just memcpy + * it's here for completeness in case we need it for some serial flash device + * + */ +static __inline__ int __attribute__ ((always_inline)) alt_read_flash( + alt_flash_fd* fd, int offset, + void* dest_addr, int length ) +{ + return fd->read( fd, offset, dest_addr, length ); +} + +/* + * alt_get_flash_info + * + * Return the information on the flash sectors. + * + */ +static __inline__ int __attribute__ ((always_inline)) alt_get_flash_info( + alt_flash_fd* fd, flash_region** info, + int* number_of_regions) +{ + return fd->get_info( fd, info, number_of_regions); +} + +/* + * alt_erase_flash_block + * + * Erase a particular erase block, pass in the offset to the start of + * the block and it's size + */ +static __inline__ int __attribute__ ((always_inline)) alt_erase_flash_block( + alt_flash_fd* fd, int offset, int length) +{ + int ret_code; + ret_code = fd->erase_block( fd, offset ); + + if(!ret_code) + alt_dcache_flush((alt_u8*)fd->base_addr + offset, length); + + return ret_code; +} + +/* + * alt_write_flash_block + * + * Write a particular flash block, block_offset is the offset + * (from the base of flash) to start of the block + * data_offset is the offset (from the base of flash) + * where you wish to start programming + * + * NB this function DOES NOT check that you are only writing a single + * block of data as that would slow down this function. + * + * Use alt_write_flash if you want that level of error checking. + */ + +static __inline__ int __attribute__ ((always_inline)) alt_write_flash_block( + alt_flash_fd* fd, int block_offset, + int data_offset, + const void *data, int length) +{ + + int ret_code; + ret_code = fd->write_block( fd, block_offset, data_offset, data, length ); + + if(!ret_code) + alt_dcache_flush((alt_u8*)fd->base_addr + data_offset, length); + + return ret_code; +} + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_FLASH_H__ */ diff --git a/software/qsys_tutorial_key3_bsp/HAL/inc/sys/alt_flash_dev.h b/software/qsys_tutorial_key3_bsp/HAL/inc/sys/alt_flash_dev.h new file mode 100644 index 0000000..8bab601 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/HAL/inc/sys/alt_flash_dev.h @@ -0,0 +1,98 @@ +#ifndef __ALT_FLASH_DEV_H__ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +/****************************************************************************** +* * +* Alt_flash_dev.h - Generic Flash device interfaces * +* * +* Author PRR * +* * +******************************************************************************/ +#define __ALT_FLASH_DEV_H__ + +#include "alt_flash_types.h" +#include "sys/alt_llist.h" +#include "priv/alt_dev_llist.h" + +#include "alt_types.h" + +typedef struct alt_flash_dev alt_flash_dev; +typedef alt_flash_dev alt_flash_fd; + +static ALT_INLINE int alt_flash_device_register( alt_flash_fd* fd) +{ + extern alt_llist alt_flash_dev_list; + + return alt_dev_llist_insert ((alt_dev_llist*) fd, &alt_flash_dev_list); +} + +typedef alt_flash_dev* (*alt_flash_open)(alt_flash_dev* flash, + const char* name ); +typedef int (*alt_flash_close)(alt_flash_dev* flash_info); + +typedef int (*alt_flash_write)( alt_flash_dev* flash, int offset, + const void* src_addr, int length ); + +typedef int (*alt_flash_get_flash_info)( alt_flash_dev* flash, flash_region** info, + int* number_of_regions); +typedef int (*alt_flash_write_block)( alt_flash_dev* flash, int block_offset, + int data_offset, const void* data, + int length); +typedef int (*alt_flash_erase_block)( alt_flash_dev* flash, int offset); +typedef int (*alt_flash_read)(alt_flash_dev* flash, int offset, + void* dest_addr, int length ); + +struct alt_flash_dev +{ + alt_llist llist; + const char* name; + alt_flash_open open; + alt_flash_close close; + alt_flash_write write; + alt_flash_read read; + alt_flash_get_flash_info get_info; + alt_flash_erase_block erase_block; + alt_flash_write_block write_block; + void* base_addr; + int length; + int number_of_regions; + flash_region region_info[ALT_MAX_NUMBER_OF_FLASH_REGIONS]; +}; + +#endif /* __ALT_FLASH_DEV_H__ */ diff --git a/software/qsys_tutorial_key3_bsp/HAL/inc/sys/alt_flash_types.h b/software/qsys_tutorial_key3_bsp/HAL/inc/sys/alt_flash_types.h new file mode 100644 index 0000000..884cbf8 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/HAL/inc/sys/alt_flash_types.h @@ -0,0 +1,64 @@ +#ifndef __ALT_FLASH_TYPES_H__ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +/****************************************************************************** +* * +* Alt_flash_types.h - Some generic types and defines used by the flash code * +* * +* Author PRR * +* * +******************************************************************************/ +#define __ALT_FLASH_TYPES_H__ + +#ifndef ALT_MAX_NUMBER_OF_FLASH_REGIONS +#define ALT_MAX_NUMBER_OF_FLASH_REGIONS 8 +#endif /* ALT_MAX_NUMBER_OF_FLASH_REGIONS */ + +/* + * Description of a single Erase region + */ +typedef struct flash_region +{ + int offset; + int region_size; + int number_of_blocks; + int block_size; +}flash_region; + +#endif /* __ALT_FLASH_TYPES_H__ */ diff --git a/software/qsys_tutorial_key3_bsp/HAL/inc/sys/alt_irq.h b/software/qsys_tutorial_key3_bsp/HAL/inc/sys/alt_irq.h new file mode 100644 index 0000000..6666e52 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/HAL/inc/sys/alt_irq.h @@ -0,0 +1,245 @@ +#ifndef __ALT_IRQ_H__ +#define __ALT_IRQ_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2009 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/* + * alt_irq.h is the Nios II specific implementation of the interrupt controller + * interface. + * + * Nios II includes optional support for an external interrupt controller. + * When an external controller is present, the "Enhanced" interrupt API + * must be used to manage individual interrupts. The enhanced API also + * supports the processor's internal interrupt controller. Certain API + * members are accessible from either the "legacy" or "enhanced" interrpt + * API. + * + * Regardless of which API is in use, this file should be included by + * application code and device drivers that register ISRs or manage interrpts. + */ +#include + +#include "nios2.h" +#include "alt_types.h" +#include "system.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * Macros used by alt_irq_enabled + */ +#define ALT_IRQ_ENABLED 1 +#define ALT_IRQ_DISABLED 0 + +/* + * Number of available interrupts in internal interrupt controller. + */ +#define ALT_NIRQ NIOS2_NIRQ + +/* + * Used by alt_irq_disable_all() and alt_irq_enable_all(). + */ +typedef int alt_irq_context; + +/* ISR Prototype */ +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT +typedef void (*alt_isr_func)(void* isr_context); +#else +typedef void (*alt_isr_func)(void* isr_context, alt_u32 id); +#endif + +/* + * The following protypes and routines are supported by both + * the enhanced and legacy interrupt APIs + */ + +/* + * alt_irq_enabled can be called to determine if the processor's global + * interrupt enable is asserted. The return value is zero if interrupts + * are disabled, and non-zero otherwise. + * + * Whether the internal or external interrupt controller is present, + * individual interrupts may still be disabled. Use the other API to query + * a specific interrupt. + */ +static ALT_INLINE int ALT_ALWAYS_INLINE alt_irq_enabled (void) +{ + int status; + + NIOS2_READ_STATUS (status); + + return status & NIOS2_STATUS_PIE_MSK; +} + +/* + * alt_irq_disable_all() + * + * This routine inhibits all interrupts by negating the status register PIE + * bit. It returns the previous contents of the CPU status register (IRQ + * context) which can be used to restore the status register PIE bit to its + * state before this routine was called. + */ +static ALT_INLINE alt_irq_context ALT_ALWAYS_INLINE + alt_irq_disable_all (void) +{ + alt_irq_context context; + + NIOS2_READ_STATUS (context); + + NIOS2_WRITE_STATUS (context & ~NIOS2_STATUS_PIE_MSK); + + return context; +} + +/* + * alt_irq_enable_all() + * + * Enable all interrupts that were previously disabled by alt_irq_disable_all() + * + * This routine accepts a context to restore the CPU status register PIE bit + * to the state prior to a call to alt_irq_disable_all(). + + * In the case of nested calls to alt_irq_disable_all()/alt_irq_enable_all(), + * this means that alt_irq_enable_all() does not necessarily re-enable + * interrupts. + * + * This routine will perform a read-modify-write sequence to restore only + * status.PIE if the processor is configured with options that add additional + * writeable status register bits. These include the MMU, MPU, the enhanced + * interrupt controller port, and shadow registers. Otherwise, as a performance + * enhancement, status is overwritten with the prior context. + */ +static ALT_INLINE void ALT_ALWAYS_INLINE + alt_irq_enable_all (alt_irq_context context) +{ +#if (NIOS2_NUM_OF_SHADOW_REG_SETS > 0) || (defined NIOS2_EIC_PRESENT) || \ + (defined NIOS2_MMU_PRESENT) || (defined NIOS2_MPU_PRESENT) + alt_irq_context status; + + NIOS2_READ_STATUS (status); + + status &= ~NIOS2_STATUS_PIE_MSK; + status |= (context & NIOS2_STATUS_PIE_MSK); + + NIOS2_WRITE_STATUS (status); +#else + NIOS2_WRITE_STATUS (context); +#endif +} + +/* + * The function alt_irq_init() is defined within the auto-generated file + * alt_sys_init.c. This function calls the initilization macros for all + * interrupt controllers in the system at config time, before any other + * non-interrupt controller driver is initialized. + * + * The "base" parameter is ignored and only present for backwards-compatibility. + * It is recommended that NULL is passed in for the "base" parameter. + */ +extern void alt_irq_init (const void* base); + +/* + * alt_irq_cpu_enable_interrupts() enables the CPU to start taking interrupts. + */ +static ALT_INLINE void ALT_ALWAYS_INLINE + alt_irq_cpu_enable_interrupts () +{ + NIOS2_WRITE_STATUS(NIOS2_STATUS_PIE_MSK +#if defined(NIOS2_EIC_PRESENT) && (NIOS2_NUM_OF_SHADOW_REG_SETS > 0) + | NIOS2_STATUS_RSIE_MSK +#endif + ); +} + + +/* + * Prototypes for the enhanced interrupt API. + */ +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT +/* + * alt_ic_isr_register() can be used to register an interrupt handler. If the + * function is succesful, then the requested interrupt will be enabled upon + * return. + */ +extern int alt_ic_isr_register(alt_u32 ic_id, + alt_u32 irq, + alt_isr_func isr, + void *isr_context, + void *flags); + +/* + * alt_ic_irq_enable() and alt_ic_irq_disable() enable/disable a specific + * interrupt by using IRQ port and interrupt controller instance. + */ +int alt_ic_irq_enable (alt_u32 ic_id, alt_u32 irq); +int alt_ic_irq_disable(alt_u32 ic_id, alt_u32 irq); + + /* + * alt_ic_irq_enabled() indicates whether a specific interrupt, as + * specified by IRQ port and interrupt controller instance is enabled. + */ +alt_u32 alt_ic_irq_enabled(alt_u32 ic_id, alt_u32 irq); + +#else +/* + * Prototypes for the legacy interrupt API. + */ +#include "priv/alt_legacy_irq.h" +#endif + + +/* + * alt_irq_pending() returns a bit list of the current pending interrupts. + * This is used by alt_irq_handler() to determine which registered interrupt + * handlers should be called. + * + * This routine is only available for the Nios II internal interrupt + * controller. + */ +#ifndef NIOS2_EIC_PRESENT +static ALT_INLINE alt_u32 ALT_ALWAYS_INLINE alt_irq_pending (void) +{ + alt_u32 active; + + NIOS2_READ_IPENDING (active); + + return active; +} +#endif + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __ALT_IRQ_H__ */ diff --git a/software/qsys_tutorial_key3_bsp/HAL/inc/sys/alt_irq_entry.h b/software/qsys_tutorial_key3_bsp/HAL/inc/sys/alt_irq_entry.h new file mode 100644 index 0000000..e2008d9 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/HAL/inc/sys/alt_irq_entry.h @@ -0,0 +1,39 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/* + * This file pulls in the IRQ entry assembler and C code, which is only + * required if there are any interruptes in the system. + */ + +__asm__( "\n\t.globl alt_irq_entry" ); + +__asm__( "\n\t.globl alt_irq_handler" ); + diff --git a/software/qsys_tutorial_key3_bsp/HAL/inc/sys/alt_license_reminder_ucosii.h b/software/qsys_tutorial_key3_bsp/HAL/inc/sys/alt_license_reminder_ucosii.h new file mode 100644 index 0000000..2fe649c --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/HAL/inc/sys/alt_license_reminder_ucosii.h @@ -0,0 +1,77 @@ +#ifndef __ALT_LICENSE_REMINDER_UCOSII_H__ +#define __ALT_LICENSE_REMINDER_UCOSII_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#include + +#define ALT_LICENSE_REMINDER_UCOSII_STRING \ + "============== Software License Reminder ===============\n" \ + "\n" \ + "uC/OS-II is provided in source form for FREE evaluation,\n" \ + "for educational use, or for peaceful research. If you\n" \ + "plan on using uC/OS-II in a commercial product you need\n" \ + "to contact Micrium to properly license its use in your\n" \ + "product. Micrium provides ALL the source code on the\n" \ + "Altera distribution for your convenience and to help you\n" \ + "experience uC/OS-II. The fact that the source is provided\n" \ + "does NOT mean that you can use it without paying a\n" \ + "licensing fee. Please help us continue to provide the\n" \ + "Embedded community with the finest software available.\n" \ + "Your honesty is greatly appreciated.\n" \ + "\n" \ + "Please contact:\n" \ + "\n" \ + "M I C R I U M\n" \ + "949 Crestview Circle\n" \ + "Weston, FL 33327-1848\n" \ + "U.S.A.\n" \ + "\n" \ + "Phone : +1 954 217 2036\n" \ + "FAX : +1 954 217 2037\n" \ + "WEB : www.micrium.com\n" \ + "E-mail: Sales@Micrium.com\n" \ + "\n" \ + "========================================================\n" + +#define alt_license_reminder_ucosii() puts(ALT_LICENSE_REMINDER_UCOSII_STRING) + + +#endif /* __ALT_LICENSE_REMINDER_UCOSII_H__ */ + diff --git a/software/qsys_tutorial_key3_bsp/HAL/inc/sys/alt_llist.h b/software/qsys_tutorial_key3_bsp/HAL/inc/sys/alt_llist.h new file mode 100644 index 0000000..46f81ce --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/HAL/inc/sys/alt_llist.h @@ -0,0 +1,123 @@ +#ifndef __ALT_LIST_H__ +#define __ALT_LIST_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#include "alt_types.h" + +/* + * alt_llist.h defines structures and functions for use in manipulating linked + * lists. A list is considered to be constructed from a chain of objects of + * type alt_llist, with one object being defined to be the head element. + * + * A list is considered to be empty if it only contains the head element. + */ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * alt_llist is the structure used to represent an element within a linked + * list. + */ + +typedef struct alt_llist_s alt_llist; + +struct alt_llist_s { + alt_llist* next; /* Pointer to the next element in the list. */ + alt_llist* previous; /* Pointer to the previous element in the list. */ +}; + +/* + * ALT_LLIST_HEAD is a macro that can be used to create the head of a new + * linked list. This is named "head". The head element is initialised to + * represent an empty list. + */ + +#define ALT_LLIST_HEAD(head) alt_llist head = {&head, &head} + +/* + * ALT_LLIST_ENTRY is a macro used to define an uninitialised linked list + * entry. This is used to reserve space in structure initialisation for + * structures that inherit form alt_llist. + */ + +#define ALT_LLIST_ENTRY {0, 0} + +/* + * alt_llist_insert() insert adds the linked list entry "entry" as the + * first entry in the linked list "list". "list" is the list head element. + */ + +static ALT_INLINE void ALT_ALWAYS_INLINE alt_llist_insert(alt_llist* list, + alt_llist* entry) +{ + entry->previous = list; + entry->next = list->next; + + list->next->previous = entry; + list->next = entry; +} + +/* + * alt_llist_remove() is called to remove an element from a linked list. The + * input argument is the element to remove. + */ + +static ALT_INLINE void ALT_ALWAYS_INLINE alt_llist_remove(alt_llist* entry) +{ + entry->next->previous = entry->previous; + entry->previous->next = entry->next; + + /* + * Set the entry to point to itself, so that any further calls to + * alt_llist_remove() are harmless. + */ + + entry->previous = entry; + entry->next = entry; +} + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_LLIST_H__ */ diff --git a/software/qsys_tutorial_key3_bsp/HAL/inc/sys/alt_load.h b/software/qsys_tutorial_key3_bsp/HAL/inc/sys/alt_load.h new file mode 100644 index 0000000..432e9f2 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/HAL/inc/sys/alt_load.h @@ -0,0 +1,78 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2005 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "alt_types.h" + +/* + * This macro is used to load code/data from its load address to its + * execution address for a given section. The section name is the input + * argument. Note that a leading '.' is assumed in the name. For example + * to load the section .onchip_ram, use: + * + * ALT_LOAD_SECTION_BY_NAME(onchip_ram); + * + * This requires that the apropriate linker symbols have been generated + * for the section in question. This will be the case if you are using the + * default linker script. + */ + +#define ALT_LOAD_SECTION_BY_NAME(name) \ + { \ + extern void _alt_partition_##name##_start; \ + extern void _alt_partition_##name##_end; \ + extern void _alt_partition_##name##_load_addr; \ + \ + alt_load_section(&_alt_partition_##name##_load_addr, \ + &_alt_partition_##name##_start, \ + &_alt_partition_##name##_end); \ + } + +/* + * Function used to load an individual section from flash to RAM. + * + * There is an implicit assumption here that the linker script will ensure + * that all sections are word aligned. + * + */ + +static void ALT_INLINE alt_load_section (alt_u32* from, + alt_u32* to, + alt_u32* end) +{ + if (to != from) + { + while( to != end ) + { + *to++ = *from++; + } + } +} diff --git a/software/qsys_tutorial_key3_bsp/HAL/inc/sys/alt_log_printf.h b/software/qsys_tutorial_key3_bsp/HAL/inc/sys/alt_log_printf.h new file mode 100644 index 0000000..c15ca05 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/HAL/inc/sys/alt_log_printf.h @@ -0,0 +1,349 @@ +/* alt_log_printf.h + * + * ALT_LOG is designed to provide extra logging/debugging messages from HAL + * through a different port than stdout. It is enabled by the ALT_LOG_ENABLE + * define, which needs to supplied at compile time. When logging is turned off, + * code size is unaffected. Thus, this should be transparent to the user + * when it is not actively turned on, and should not affect projects in any way. + * + * There are macros sprinkled within different components, such as the jtag uart + * and timer, in the HAL code. They are always named ALT_LOG_, and can be + * safely ignored if ALT_LOG is turned off. + * + * To turn on ALT_LOG, ALT_LOG_ENABLE must be defined, and ALT_LOG_PORT_TYPE and + * ALT_LOG_PORT_BASE must be set in system.h. This is done through editing + * .ptf, by editing the alt_log_port_type & alt_log_port_base settings. + * See the documentation html file for examples. + * + * When it is turned on, it will output extra HAL messages to a port specified + * in system.h. This can be a UART or JTAG UART port. By default it will + * output boot messages, detailing every step of the boot process. + * + * Extra logging is designed to be enabled by flags, which are defined in + * alt_log_printf.c. The default value is that all flags are off, so only the + * boot up logging messages show up. ALT_LOG_FLAGS can be set to enable certain + * groupings of flags, and that grouping is done in this file. Each flag can + * also be overridden with a -D at compile time. + * + * This header file includes the necessary prototypes for using the alt_log + * functions. It also contains all the macros that are used to remove the code + * from alt log is turned off. Also, the macros in other HAL files are defined + * here at the bottom. These macros all call some C function that is in + * alt_log_printf.c. + * + * The logging has functions for printing in C (ALT_LOG_PRINTF) and in assembly + * (ALT_LOG_PUTS). This was needed because the assembly printing occurs before + * the device is initialized. The assembly function corrupts register R4-R7, + * which are not used in the normal boot process. For this reason, do not call + * the assembly function in C. + * + * author: gkwan + */ + + +#ifndef __ALT_LOG_PRINTF_H__ +#define __ALT_LOG_PRINTF_H__ + +#include + +/* Global switch to turn on logging functions */ +#ifdef ALT_LOG_ENABLE + + /* ALT_LOG_PORT_TYPE values as defined in system.h. They are defined as + * numbers here first becasue the C preprocessor does not handle string + * comparisons. */ + #define ALTERA_AVALON_JTAG_UART 1 + #define ALTERA_AVALON_UART 0 + + /* If this .h file is included by an assembly file, skip over include files + * that won't compile in assembly. */ + #ifndef ALT_ASM_SRC + #include + #include "sys/alt_alarm.h" + #include "sys/alt_dev.h" + #ifdef __ALTERA_AVALON_JTAG_UART + #include "altera_avalon_jtag_uart.h" + #endif + #endif /* ALT_ASM_SRC */ + + /* These are included for the port register offsets and masks, needed + * to write to the port. Only include if the port type is set correctly, + * otherwise error. If alt_log is turned on and the port to output to is + * incorrect or does not exist, then should exit. */ + #if ALT_LOG_PORT_TYPE == ALTERA_AVALON_JTAG_UART + #ifdef __ALTERA_AVALON_JTAG_UART + #include + #else + #error ALT_LOG: JTAG_UART port chosen, but no JTAG_UART in system. + #endif + #elif ALT_LOG_PORT_TYPE == ALTERA_AVALON_UART + #ifdef __ALTERA_AVALON_UART + #include + #else + #error ALT_LOG: UART Port chosen, but no UART in system. + #endif + #else + #error ALT_LOG: alt_log_port_type declaration invalid! + #endif + + /* ALT_LOG_ENABLE turns on the basic printing function */ + #define ALT_LOG_PRINTF(...) do {alt_log_printf_proc(__VA_ARGS__);} while (0) + + /* Assembly macro for printing in assembly, calls tx_log_str + * which is in alt_log_macro.S. + * If alt_log_boot_on_flag is 0, skips the printing */ + #define ALT_LOG_PUTS(str) movhi r4, %hiadj(alt_log_boot_on_flag) ; \ + addi r4, r4, %lo(alt_log_boot_on_flag) ; \ + ldwio r5, 0(r4) ; \ + beq r0, r5, 0f ; \ + movhi r4, %hiadj(str) ; \ + addi r4, r4, %lo(str) ; \ + call tx_log_str ; \ + 0: + + /* These defines are here to faciliate the use of one output function + * (alt_log_txchar) to print to both the JTAG UART or the UART. Depending + * on the port type, the status register, read mask, and output register + * are set to the appropriate value for the port. */ + #if ALT_LOG_PORT_TYPE == ALTERA_AVALON_JTAG_UART + #define ALT_LOG_PRINT_REG_RD IORD_ALTERA_AVALON_JTAG_UART_CONTROL + #define ALT_LOG_PRINT_MSK ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_MSK + #define ALT_LOG_PRINT_TXDATA_WR IOWR_ALTERA_AVALON_JTAG_UART_DATA + #define ALT_LOG_PRINT_REG_OFFSET (ALTERA_AVALON_JTAG_UART_CONTROL_REG*0x4) + #define ALT_LOG_PRINT_TXDATA_REG_OFFSET (ALTERA_AVALON_JTAG_UART_DATA_REG*0x4) + #elif ALT_LOG_PORT_TYPE == ALTERA_AVALON_UART + #define ALT_LOG_PRINT_REG_RD IORD_ALTERA_AVALON_UART_STATUS + #define ALT_LOG_PRINT_MSK ALTERA_AVALON_UART_STATUS_TRDY_MSK + #define ALT_LOG_PRINT_TXDATA_WR IOWR_ALTERA_AVALON_UART_TXDATA + #define ALT_LOG_PRINT_REG_OFFSET (ALTERA_AVALON_UART_STATUS_REG*0x4) + #define ALT_LOG_PRINT_TXDATA_REG_OFFSET (ALTERA_AVALON_UART_TXDATA_REG*0x4) + #endif /* ALT_LOG_PORT */ + + /* Grouping of flags via ALT_LOG_FLAGS. Each specific flag can be set via + * -D at compile time, or else they'll be set to a default value according + * to ALT_LOG_FLAGS. ALT_LOG_FLAGS = 0 or not set is the default, where + * only the boot messages will be printed. As ALT_LOG_FLAGS increase, they + * increase in intrusiveness to the program, and will affect performance. + * + * Flag Level 1 - turns on system clock and JTAG UART startup status + * 2 - turns on write echo and JTAG_UART alarm (periodic report) + * 3 - turns on JTAG UART ISR logging - will slow performance + * significantly. + * -1 - All logging output is off, but if ALT_LOG_ENABLE is + * defined all logging function is built and code size + * remains constant + * + * Flag settings - 1 = on, 0 = off. */ + + /* This flag turns on "boot" messages for printing. This includes messages + * during crt0.S, then alt_main, and finally alt_exit. */ + #ifndef ALT_LOG_BOOT_ON_FLAG_SETTING + #if ALT_LOG_FLAGS == 1 + #define ALT_LOG_BOOT_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == 2 + #define ALT_LOG_BOOT_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == 3 + #define ALT_LOG_BOOT_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == -1 /* silent mode */ + #define ALT_LOG_BOOT_ON_FLAG_SETTING 0x0 + #else /* default setting */ + #define ALT_LOG_BOOT_ON_FLAG_SETTING 0x1 + #endif + #endif /* ALT_LOG_BOOT_ON_FLAG_SETTING */ + + #ifndef ALT_LOG_SYS_CLK_ON_FLAG_SETTING + #if ALT_LOG_FLAGS == 1 + #define ALT_LOG_SYS_CLK_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == 2 + #define ALT_LOG_SYS_CLK_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == 3 + #define ALT_LOG_SYS_CLK_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == -1 /* silent mode */ + #define ALT_LOG_SYS_CLK_ON_FLAG_SETTING 0x0 + #else /* default setting */ + #define ALT_LOG_SYS_CLK_ON_FLAG_SETTING 0x0 + #endif + #endif /* ALT_LOG_SYS_CLK_ON_FLAG_SETTING */ + + #ifndef ALT_LOG_WRITE_ON_FLAG_SETTING + #if ALT_LOG_FLAGS == 1 + #define ALT_LOG_WRITE_ON_FLAG_SETTING 0x0 + #elif ALT_LOG_FLAGS == 2 + #define ALT_LOG_WRITE_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == 3 + #define ALT_LOG_WRITE_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == -1 /* silent mode */ + #define ALT_LOG_WRITE_ON_FLAG_SETTING 0x0 + #else /* default setting */ + #define ALT_LOG_WRITE_ON_FLAG_SETTING 0x0 + #endif + #endif /* ALT_LOG_WRITE_ON_FLAG_SETTING */ + + #ifndef ALT_LOG_JTAG_UART_ALARM_ON_FLAG_SETTING + #ifndef __ALTERA_AVALON_JTAG_UART + #define ALT_LOG_JTAG_UART_ALARM_ON_FLAG_SETTING 0x0 + #elif ALT_LOG_FLAGS == 1 + #define ALT_LOG_JTAG_UART_ALARM_ON_FLAG_SETTING 0x0 + #elif ALT_LOG_FLAGS == 2 + #define ALT_LOG_JTAG_UART_ALARM_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == 3 + #define ALT_LOG_JTAG_UART_ALARM_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == -1 /* silent mode */ + #define ALT_LOG_JTAG_UART_ALARM_ON_FLAG_SETTING 0x0 + #else /* default setting */ + #define ALT_LOG_JTAG_UART_ALARM_ON_FLAG_SETTING 0x0 + #endif + #endif /* ALT_LOG_JTAG_UART_ALARM_ON_FLAG_SETTING */ + + #ifndef ALT_LOG_JTAG_UART_STARTUP_INFO_ON_FLAG_SETTING + #ifndef __ALTERA_AVALON_JTAG_UART + #define ALT_LOG_JTAG_UART_STARTUP_INFO_ON_FLAG_SETTING 0x0 + #elif ALT_LOG_FLAGS == 1 + #define ALT_LOG_JTAG_UART_STARTUP_INFO_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == 2 + #define ALT_LOG_JTAG_UART_STARTUP_INFO_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == 3 + #define ALT_LOG_JTAG_UART_STARTUP_INFO_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == -1 /* silent mode */ + #define ALT_LOG_JTAG_UART_STARTUP_INFO_ON_FLAG_SETTING 0x0 + #else /* default setting */ + #define ALT_LOG_JTAG_UART_STARTUP_INFO_ON_FLAG_SETTING 0x0 + #endif + #endif /* ALT_LOG_JTAG_UART_STARTUP_INFO_FLAG_SETTING */ + + #ifndef ALT_LOG_JTAG_UART_ISR_ON_FLAG_SETTING + #ifndef __ALTERA_AVALON_JTAG_UART + #define ALT_LOG_JTAG_UART_ISR_ON_FLAG_SETTING 0x0 + #elif ALT_LOG_FLAGS == 1 + #define ALT_LOG_JTAG_UART_ISR_ON_FLAG_SETTING 0x0 + #elif ALT_LOG_FLAGS == 2 + #define ALT_LOG_JTAG_UART_ISR_ON_FLAG_SETTING 0x0 + #elif ALT_LOG_FLAGS == 3 + #define ALT_LOG_JTAG_UART_ISR_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == -1 /* silent mode */ + #define ALT_LOG_JTAG_UART_ISR_ON_FLAG_SETTING 0x0 + #else /* default setting */ + #define ALT_LOG_JTAG_UART_ISR_ON_FLAG_SETTING 0x0 + #endif + #endif /* ALT_LOG_JTAG_UART_ISR_ON_FLAG_SETTING */ + +#ifndef ALT_ASM_SRC + /* Function Prototypes */ + void alt_log_txchar(int c,char *uartBase); + void alt_log_private_printf(const char *fmt,int base,va_list args); + void alt_log_repchar(char c,int r,int base); + int alt_log_printf_proc(const char *fmt, ... ); + void alt_log_system_clock(); + #ifdef __ALTERA_AVALON_JTAG_UART + alt_u32 altera_avalon_jtag_uart_report_log(void * context); + void alt_log_jtag_uart_startup_info(altera_avalon_jtag_uart_state* dev, int base); + void alt_log_jtag_uart_print_control_reg(altera_avalon_jtag_uart_state* dev, \ + int base, const char* header); + void alt_log_jtag_uart_isr_proc(int base, altera_avalon_jtag_uart_state* dev); + #endif + void alt_log_write(const void *ptr, size_t len); + + /* extern all global variables */ + extern volatile alt_u32 alt_log_boot_on_flag; + extern volatile alt_u8 alt_log_write_on_flag; + extern volatile alt_u8 alt_log_sys_clk_on_flag; + extern volatile alt_u8 alt_log_jtag_uart_alarm_on_flag; + extern volatile alt_u8 alt_log_jtag_uart_isr_on_flag; + extern volatile alt_u8 alt_log_jtag_uart_startup_info_on_flag; + extern volatile int alt_log_sys_clk_count; + extern volatile int alt_system_clock_in_sec; + extern alt_alarm alt_log_jtag_uart_alarm_1; +#endif /* ALT_ASM_SRC */ + + + /* Below are the MACRO defines used in various HAL files. They check + * if their specific flag is turned on; if it is, then it executes its + * code. + * + * To keep this file reasonable, most of these macros calls functions, + * which are defined in alt_log_printf.c. Look there for implementation + * details. */ + + /* Boot Messages Logging */ + #define ALT_LOG_PRINT_BOOT(...) \ + do { if (alt_log_boot_on_flag==1) {ALT_LOG_PRINTF(__VA_ARGS__);} \ + } while (0) + + /* JTAG UART Logging */ + /* number of ticks before alarm runs logging function */ + #ifndef ALT_LOG_JTAG_UART_TICKS_DIVISOR + #define ALT_LOG_JTAG_UART_TICKS_DIVISOR 10 + #endif + #ifndef ALT_LOG_JTAG_UART_TICKS + #define ALT_LOG_JTAG_UART_TICKS \ + (alt_ticks_per_second()/ALT_LOG_JTAG_UART_TICKS_DIVISOR) + #endif + + /* if there's a JTAG UART defined, then enable these macros */ + #ifdef __ALTERA_AVALON_JTAG_UART + + /* Macro in altera_avalon_jtag_uart.c, to register the alarm function. + * Also, the startup register info is also printed here, as this is + * called within the device driver initialization. */ + #define ALT_LOG_JTAG_UART_ALARM_REGISTER(dev, base) \ + do { if (alt_log_jtag_uart_alarm_on_flag==1) { \ + alt_alarm_start(&alt_log_jtag_uart_alarm_1, \ + ALT_LOG_JTAG_UART_TICKS, &altera_avalon_jtag_uart_report_log,\ + dev);} \ + if (alt_log_jtag_uart_startup_info_on_flag==1) {\ + alt_log_jtag_uart_startup_info(dev, base);} \ + } while (0) + + /* JTAG UART IRQ Logging (when buffer is empty) + * Inserted in the ISR in altera_avalon_jtag_uart.c */ + #define ALT_LOG_JTAG_UART_ISR_FUNCTION(base, dev) \ + do { alt_log_jtag_uart_isr_proc(base, dev); } while (0) + /* else, define macros to nothing. Or else the jtag_uart specific types + * will throw compiler errors */ + #else + #define ALT_LOG_JTAG_UART_ALARM_REGISTER(dev, base) + #define ALT_LOG_JTAG_UART_ISR_FUNCTION(base, dev) + #endif + + /* System clock logging + * How often (in seconds) the system clock logging prints. + * The default value is every 1 second */ + #ifndef ALT_LOG_SYS_CLK_INTERVAL_MULTIPLIER + #define ALT_LOG_SYS_CLK_INTERVAL_MULTIPLIER 1 + #endif + #ifndef ALT_LOG_SYS_CLK_INTERVAL + #define ALT_LOG_SYS_CLK_INTERVAL \ + (alt_ticks_per_second()*ALT_LOG_SYS_CLK_INTERVAL_MULTIPLIER) + #endif + + /* System clock logging - prints a message every interval (set above) + * to show that the system clock is alive. + * This macro is used in altera_avalon_timer_sc.c */ + #define ALT_LOG_SYS_CLK_HEARTBEAT() \ + do { alt_log_system_clock(); } while (0) + + /* alt_write_logging - echos a message every time write() is called, + * displays the first ALT_LOG_WRITE_ECHO_LEN characters. + * This macro is used in alt_write.c */ + #ifndef ALT_LOG_WRITE_ECHO_LEN + #define ALT_LOG_WRITE_ECHO_LEN 15 + #endif + + #define ALT_LOG_WRITE_FUNCTION(ptr,len) \ + do { alt_log_write(ptr,len); } while (0) + +#else /* ALT_LOG_ENABLE not defined */ + + /* logging is off, set all relevant macros to null */ + #define ALT_LOG_PRINT_BOOT(...) + #define ALT_LOG_PRINTF(...) + #define ALT_LOG_JTAG_UART_ISR_FUNCTION(base, dev) + #define ALT_LOG_JTAG_UART_ALARM_REGISTER(dev, base) + #define ALT_LOG_SYS_CLK_HEARTBEAT() + #define ALT_LOG_PUTS(str) + #define ALT_LOG_WRITE_FUNCTION(ptr,len) + +#endif /* ALT_LOG_ENABLE */ + +#endif /* __ALT_LOG_PRINTF_H__ */ + diff --git a/software/qsys_tutorial_key3_bsp/HAL/inc/sys/alt_set_args.h b/software/qsys_tutorial_key3_bsp/HAL/inc/sys/alt_set_args.h new file mode 100644 index 0000000..3750e67 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/HAL/inc/sys/alt_set_args.h @@ -0,0 +1,71 @@ +#ifndef __ALT_SET_ARGS_H__ +#define __ALT_SET_ARGS_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * The function alt_set_args() is provided in order to define the input + * arguments to main(). If this function is not called before main() then the + * argument list passed to main() will be empty. + * + * It is expected that this function will only be used by the ihost/iclient + * utility. + */ + +static inline void alt_set_args (int argc, char** argv, char** envp) +{ + extern int alt_argc; + extern char** alt_argv; + extern char** alt_envp; + + alt_argc = argc; + alt_argv = argv; + alt_envp = envp; +} + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_SET_ARGS_H__ */ diff --git a/software/qsys_tutorial_key3_bsp/HAL/inc/sys/alt_sim.h b/software/qsys_tutorial_key3_bsp/HAL/inc/sys/alt_sim.h new file mode 100644 index 0000000..06bd27a --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/HAL/inc/sys/alt_sim.h @@ -0,0 +1,91 @@ +#ifndef __ALT_SIM_H__ +#define __ALT_SIM_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2007 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ +#include "system.h" +#include "alt_types.h" + +/* + * Instructions that might mean something special to a simulator. + * These have no special effect on real hardware (they are just nops). + */ +#define ALT_SIM_FAIL() \ + do { __asm volatile ("cmpltui r0, r0, 0xabc1"); } while (0) + +#define ALT_SIM_PASS() \ + do { __asm volatile ("cmpltui r0, r0, 0xabc2"); } while (0) + +#define ALT_SIM_IN_TOP_OF_HOT_LOOP() \ + do { __asm volatile ("cmpltui r0, r0, 0xabc3"); } while (0) + +/* + * Routine called on exit. + */ +static ALT_ALWAYS_INLINE void alt_sim_halt(int exit_code) +{ + int r2 = exit_code; + +#if defined(NIOS2_HAS_DEBUG_STUB) && (defined(ALT_BREAK_ON_EXIT) || defined(ALT_PROVIDE_GMON)) + + int r3 = (1 << 2); + +#ifdef ALT_PROVIDE_GMON + extern unsigned int alt_gmon_data[]; + int r4 = (int)alt_gmon_data; + r3 |= (1 << 4); +#define ALT_GMON_DATA ,"D04"(r4) +#else +#define ALT_GMON_DATA +#endif /* ALT_PROVIDE_GMON */ + + if (r2) { + ALT_SIM_FAIL(); + } else { + ALT_SIM_PASS(); + } + + __asm__ volatile ("\n0:\n\taddi %0,%0, -1\n\tbgt %0,zero,0b" : : "r" (ALT_CPU_FREQ/100) ); /* Delay for >30ms */ + + __asm__ volatile ("break 2" : : "D02"(r2), "D03"(r3) ALT_GMON_DATA ); + +#else /* !DEBUG_STUB */ + if (r2) { + ALT_SIM_FAIL(); + } else { + ALT_SIM_PASS(); + } +#endif /* DEBUG_STUB */ +} + +#define ALT_SIM_HALT(exit_code) \ + alt_sim_halt(exit_code) + +#endif /* __ALT_SIM_H__ */ diff --git a/software/qsys_tutorial_key3_bsp/HAL/inc/sys/alt_stack.h b/software/qsys_tutorial_key3_bsp/HAL/inc/sys/alt_stack.h new file mode 100644 index 0000000..e30652a --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/HAL/inc/sys/alt_stack.h @@ -0,0 +1,126 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#ifndef __ALT_STACK_H__ +#define __ALT_STACK_H__ + +/* + * alt_stack.h is the nios2 specific implementation of functions used by the + * stack overflow code. + */ + +#include "nios2.h" + +#include "alt_types.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + + +extern char * alt_stack_limit_value; + +#ifdef ALT_EXCEPTION_STACK +extern char __alt_exception_stack_pointer[]; /* set by the linker */ +#endif /* ALT_EXCEPTION_STACK */ + + +/* + * alt_stack_limit can be called to determine the current value of the stack + * limit register. + */ + +static ALT_INLINE char * ALT_ALWAYS_INLINE alt_stack_limit (void) +{ + char * limit; + NIOS2_READ_ET(limit); + + return limit; +} + +/* + * alt_stack_pointer can be called to determine the current value of the stack + * pointer register. + */ + +static ALT_INLINE char * ALT_ALWAYS_INLINE alt_stack_pointer (void) +{ + char * pointer; + NIOS2_READ_SP(pointer); + + return pointer; +} + + +#ifdef ALT_EXCEPTION_STACK + +/* + * alt_exception_stack_pointer returns the normal stack pointer from + * where it is stored on the exception stack (uppermost 4 bytes). This + * is really only useful during exception processing, and is only + * available if a separate exception stack has been configured. + */ + +static ALT_INLINE char * ALT_ALWAYS_INLINE alt_exception_stack_pointer (void) +{ + return (char *) *(alt_u32 *)(__alt_exception_stack_pointer - sizeof(alt_u32)); +} + +#endif /* ALT_EXCEPTION_STACK */ + + +/* + * alt_set_stack_limit can be called to update the current value of the stack + * limit register. + */ + +static ALT_INLINE void ALT_ALWAYS_INLINE alt_set_stack_limit (char * limit) +{ + alt_stack_limit_value = limit; + NIOS2_WRITE_ET(limit); +} + +/* + * alt_report_stack_overflow reports that a stack overflow happened. + */ + +static ALT_INLINE void ALT_ALWAYS_INLINE alt_report_stack_overflow (void) +{ + NIOS2_REPORT_STACK_OVERFLOW(); +} + + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __ALT_STACK_H__ */ + diff --git a/software/qsys_tutorial_key3_bsp/HAL/inc/sys/alt_stdio.h b/software/qsys_tutorial_key3_bsp/HAL/inc/sys/alt_stdio.h new file mode 100644 index 0000000..1730360 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/HAL/inc/sys/alt_stdio.h @@ -0,0 +1,62 @@ +#ifndef __ALT_STDIO_H__ +#define __ALT_STDIO_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +/* + * Definitions for ALT stdio routines. + */ + +#include + + +#ifdef __cplusplus +extern "C" { +#endif + +int alt_getchar(); +int alt_putchar(int c); +int alt_putstr(const char* str); +void alt_printf(const char *fmt, ...); + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_STDIO_H__ */ diff --git a/software/qsys_tutorial_key3_bsp/HAL/inc/sys/alt_sys_init.h b/software/qsys_tutorial_key3_bsp/HAL/inc/sys/alt_sys_init.h new file mode 100644 index 0000000..e4abc28 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/HAL/inc/sys/alt_sys_init.h @@ -0,0 +1,62 @@ +#ifndef __ALT_SYS_INIT_H__ +#define __ALT_SYS_INIT_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * The function alt_sys_init() is defined within the auto-generated file: + * alt_sys_init.c. This function calls the initilisation macros for all + * devices, file systems, and software components within the system. + * + * The list of initilisation macros to use is constructed using the PTF and + * STF files associated with the system. + */ + +extern void alt_sys_init (void); + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_SYS_INIT_H__ */ diff --git a/software/qsys_tutorial_key3_bsp/HAL/inc/sys/alt_sys_wrappers.h b/software/qsys_tutorial_key3_bsp/HAL/inc/sys/alt_sys_wrappers.h new file mode 100644 index 0000000..044833b --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/HAL/inc/sys/alt_sys_wrappers.h @@ -0,0 +1,100 @@ +#ifndef __ALT_SYS_WRAPPERS_H__ +#define __ALT_SYS_WRAPPERS_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/* + * This file provides the prototypes for the HAL 'UNIX style functions. The + * names of these functions are defined in alt_syscall.h. THese are defined to + * be the standard names when running the standalone HAL, e.g. open(), close() + * etc., but the names may be redefined as a part of an operating system port + * in order to avoid name clashes. + */ + +#include "os/alt_syscall.h" + +#include +#include +#include +#include +#include +#include + +extern int ALT_CLOSE (int __fd); +extern int ALT_EXECVE (const char *__path, + char * const __argv[], + char * const __envp[]); +extern void ALT_EXIT (int __status); +extern int ALT_FSTAT (int file, struct stat *st); +extern int ALT_FCNTL (int file, int cmd, ...); +extern pid_t ALT_FORK (void); +extern pid_t ALT_GETPID (void); + +#if defined (__GNUC__) && __GNUC__ >= 4 +extern int ALT_GETTIMEOFDAY (struct timeval *ptimeval, + void *ptimezone); +#else +extern int ALT_GETTIMEOFDAY (struct timeval *ptimeval, + struct timezone *ptimezone); +#endif + +extern int ALT_IOCTL (int file, int req, void* arg); +extern int ALT_ISATTY (int file); +extern int ALT_KILL (int pid, int sig); +extern int ALT_LINK (const char *existing, const char *new); +extern off_t ALT_LSEEK (int file, off_t ptr, int dir); +extern int ALT_OPEN (const char* file, int flags, ...); +extern int ALT_READ (int file, void *ptr, size_t len); +extern int ALT_RENAME (char *existing, char *new); +extern void* ALT_SBRK (ptrdiff_t incr); +extern int ALT_SETTIMEOFDAY (const struct timeval *t, + const struct timezone *tz); +extern int ALT_STAT (const char *file, struct stat *st); +extern clock_t ALT_TIMES (struct tms *buf); +extern int ALT_UNLINK (const char *name); + +#if defined (__GNUC__) && __GNUC__ >= 4 +int ALT_USLEEP (useconds_t us); +#else +unsigned int ALT_USLEEP (unsigned int us); +#endif + +extern int ALT_WAIT (int *status); +extern int ALT_WRITE (int file, const void *ptr, size_t len); + + +extern char** ALT_ENVIRON; + +/* + * + */ + +#endif /* __ALT_SYS_WRAPPERS_H__ */ diff --git a/software/qsys_tutorial_key3_bsp/HAL/inc/sys/alt_timestamp.h b/software/qsys_tutorial_key3_bsp/HAL/inc/sys/alt_timestamp.h new file mode 100644 index 0000000..8a18da2 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/HAL/inc/sys/alt_timestamp.h @@ -0,0 +1,60 @@ +#ifndef __ALT_TIMESTAMP_H__ +#define __ALT_TIMESTAMP_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#include "alt_types.h" +#include "altera_avalon_timer.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +extern int alt_timestamp_start (void); + +extern alt_timestamp_type alt_timestamp (void); + +extern alt_u32 alt_timestamp_freq (void); + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_TIMESTAMP_H__ */ diff --git a/software/qsys_tutorial_key3_bsp/HAL/inc/sys/alt_warning.h b/software/qsys_tutorial_key3_bsp/HAL/inc/sys/alt_warning.h new file mode 100644 index 0000000..b66e71a --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/HAL/inc/sys/alt_warning.h @@ -0,0 +1,75 @@ +#ifndef __WARNING_H__ +#define __WARNING_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/* + * alt_warning.h provides macro definitions that can be used to generate link + * time warnings. + */ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * The symbol "__alt_invalid" is used to force a link error. There should be + * no corresponding implementation of this function. + */ + +extern void __alt_invalid (void); + +#define ALT_LINK_WARNING(symbol, msg) \ + __asm__(".ifndef __evoke_link_warning_" #symbol \ + "\n\t .section .gnu.warning." #symbol \ + "\n__evoke_link_warning_" #symbol ":\n\t .string \x22" msg "\x22 \n\t .previous" \ + "\n .endif"); + +/* A canned warning for sysdeps/stub functions. */ + +#define ALT_STUB_WARNING(name) \ + ALT_LINK_WARNING (name, \ + "warning: " #name " is not implemented and will always fail") + +#define ALT_OBSOLETE_FUNCTION_WARNING(name) \ + ALT_LINK_WARNING (name, \ + "warning: " #name " is a deprecated function") + +#define ALT_LINK_ERROR(msg) \ + ALT_LINK_WARNING (__alt_invalid, msg); \ + __alt_invalid() + +#ifdef __cplusplus +} +#endif + +#endif /* __WARNING_H__ */ diff --git a/software/qsys_tutorial_key3_bsp/HAL/inc/sys/ioctl.h b/software/qsys_tutorial_key3_bsp/HAL/inc/sys/ioctl.h new file mode 100644 index 0000000..4d565df --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/HAL/inc/sys/ioctl.h @@ -0,0 +1,90 @@ +#ifndef __IOCTL_H__ +#define __IOCTL_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * The ioctl() system call be used to initiate a variety of control operations + * on a file descriptor. For the most part this simply translates to a call to + * the ioctl() function of the associated device driver (TIOCEXCL and + * TIOCNXCL are notable exceptions - see ioctl.c for details). + * + * The interpretation of the ioctl requests are therefore device specific. + * + * This function is equivalent to the standard Posix ioctl() call. + */ + +extern int ioctl (int fd, int req, void* arg); + +/* + * list of ioctl calls handled by the system ioctl implementation. + */ + +#define TIOCEXCL 0x740d /* exclusive use of the device */ +#define TIOCNXCL 0x740e /* allow multiple use of the device */ + +/* + * ioctl calls which can be handled by device drivers. + */ + +#define TIOCOUTQ 0x7472 /* get output queue size */ +#define TIOCMGET 0x741d /* get termios flags */ +#define TIOCMSET 0x741a /* set termios flags */ + +/* + * ioctl calls specific to JTAG UART. + */ + +#define TIOCSTIMEOUT 0x6a01 /* Set Timeout before assuming no host present */ +#define TIOCGCONNECTED 0x6a02 /* Get indication of whether host is connected */ + +/* + * + */ + +#ifdef __cplusplus +} +#endif + +#endif /* __IOCTL_H__ */ diff --git a/software/qsys_tutorial_key3_bsp/HAL/inc/sys/termios.h b/software/qsys_tutorial_key3_bsp/HAL/inc/sys/termios.h new file mode 100644 index 0000000..cd09539 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/HAL/inc/sys/termios.h @@ -0,0 +1,181 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +/* + * This is the termios.h file provided with newlib. The only modification has + * been to the baud rate macro definitions, and an increase in the size of the + * termios structure to accomodate this. + */ + + +#ifndef _SYS_TERMIOS_H +# define _SYS_TERMIOS_H + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +# define _XCGETA (('x'<<8)|1) +# define _XCSETA (('x'<<8)|2) +# define _XCSETAW (('x'<<8)|3) +# define _XCSETAF (('x'<<8)|4) +# define _TCSBRK (('T'<<8)|5) +# define _TCFLSH (('T'<<8)|7) +# define _TCXONC (('T'<<8)|6) + +# define TCOOFF 0 +# define TCOON 1 +# define TCIOFF 2 +# define TCION 3 + +# define TCIFLUSH 0 +# define TCOFLUSH 1 +# define TCIOFLUSH 2 + +# define NCCS 13 + +# define TCSAFLUSH _XCSETAF +# define TCSANOW _XCSETA +# define TCSADRAIN _XCSETAW +# define TCSADFLUSH _XCSETAF + +# define IGNBRK 000001 +# define BRKINT 000002 +# define IGNPAR 000004 +# define INPCK 000020 +# define ISTRIP 000040 +# define INLCR 000100 +# define IGNCR 000200 +# define ICRNL 000400 +# define IXON 002000 +# define IXOFF 010000 + +# define OPOST 000001 +# define OCRNL 000004 +# define ONLCR 000010 +# define ONOCR 000020 +# define TAB3 014000 + +# define CLOCAL 004000 +# define CREAD 000200 +# define CSIZE 000060 +# define CS5 0 +# define CS6 020 +# define CS7 040 +# define CS8 060 +# define CSTOPB 000100 +# define HUPCL 002000 +# define PARENB 000400 +# define PAODD 001000 + +#define CCTS_OFLOW 010000 +#define CRTS_IFLOW 020000 +#define CRTSCTS (CCTS_OFLOW | CRTS_IFLOW) + +# define ECHO 0000010 +# define ECHOE 0000020 +# define ECHOK 0000040 +# define ECHONL 0000100 +# define ICANON 0000002 +# define IEXTEN 0000400 /* anybody know *what* this does?! */ +# define ISIG 0000001 +# define NOFLSH 0000200 +# define TOSTOP 0001000 + +# define VEOF 4 /* also VMIN -- thanks, AT&T */ +# define VEOL 5 /* also VTIME -- thanks again */ +# define VERASE 2 +# define VINTR 0 +# define VKILL 3 +# define VMIN 4 /* also VEOF */ +# define VQUIT 1 +# define VSUSP 10 +# define VTIME 5 /* also VEOL */ +# define VSTART 11 +# define VSTOP 12 + +# define B0 0 +# define B50 50 +# define B75 75 +# define B110 110 +# define B134 134 +# define B150 150 +# define B200 200 +# define B300 300 +# define B600 600 +# define B1200 1200 +# define B1800 1800 +# define B2400 2400 +# define B4800 4800 +# define B9600 9600 +# define B19200 19200 +# define B38400 38400 +# define B57600 57600 +# define B115200 115200 + +typedef unsigned char cc_t; +typedef unsigned short tcflag_t; +typedef unsigned long speed_t; + +struct termios { + tcflag_t c_iflag; + tcflag_t c_oflag; + tcflag_t c_cflag; + tcflag_t c_lflag; + char c_line; + cc_t c_cc[NCCS]; + speed_t c_ispeed; + speed_t c_ospeed; +}; + +# ifndef _NO_MACROS + +# define cfgetospeed(tp) ((tp)->c_ospeed) +# define cfgetispeed(tp) ((tp)->c_ispeed) +# define cfsetospeed(tp,s) (((tp)->c_ospeed = (s)), 0) +# define cfsetispeed(tp,s) (((tp)->c_ispeed = (s)), 0) +# define tcdrain(fd) _ioctl (fd, _TCSBRK, 1) +# endif /* _NO_MACROS */ + +#ifdef __cplusplus +} +#endif + +#endif /* _SYS_TERMIOS_H */ + diff --git a/software/qsys_tutorial_key3_bsp/HAL/src/alt_alarm_start.c b/software/qsys_tutorial_key3_bsp/HAL/src/alt_alarm_start.c new file mode 100644 index 0000000..7739959 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/HAL/src/alt_alarm_start.c @@ -0,0 +1,112 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +#include "sys/alt_alarm.h" +#include "sys/alt_irq.h" + +/* + * alt_alarm_start is called to register an alarm with the system. The + * "alarm" structure passed as an input argument does not need to be + * initialised by the user. This is done within this function. + * + * The remaining input arguments are: + * + * nticks - The time to elapse until the alarm executes. This is specified in + * system clock ticks. + * callback - The function to run when the indicated time has elapsed. + * context - An opaque value, passed to the callback function. +* + * Care should be taken when defining the callback function since it is + * likely to execute in interrupt context. In particular, this mean that + * library calls like printf() should not be made, since they can result in + * deadlock. + * + * The interval to be used for the next callback is the return + * value from the callback function. A return value of zero indicates that the + * alarm should be unregistered. + * + * alt_alarm_start() will fail if the timer facility has not been enabled + * (i.e. there is no system clock). Failure is indicated by a negative return + * value. + */ + +int alt_alarm_start (alt_alarm* alarm, alt_u32 nticks, + alt_u32 (*callback) (void* context), + void* context) +{ + alt_irq_context irq_context; + alt_u32 current_nticks = 0; + + if (alt_ticks_per_second ()) + { + if (alarm) + { + alarm->callback = callback; + alarm->context = context; + + irq_context = alt_irq_disable_all (); + + current_nticks = alt_nticks(); + + alarm->time = nticks + current_nticks + 1; + + /* + * If the desired alarm time causes a roll-over, set the rollover + * flag. This will prevent the subsequent tick event from causing + * an alarm too early. + */ + if(alarm->time < current_nticks) + { + alarm->rollover = 1; + } + else + { + alarm->rollover = 0; + } + + alt_llist_insert (&alt_alarm_list, &alarm->llist); + alt_irq_enable_all (irq_context); + + return 0; + } + else + { + return -EINVAL; + } + } + else + { + return -ENOTSUP; + } +} diff --git a/software/qsys_tutorial_key3_bsp/HAL/src/alt_busy_sleep.c b/software/qsys_tutorial_key3_bsp/HAL/src/alt_busy_sleep.c new file mode 100644 index 0000000..561c0be --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/HAL/src/alt_busy_sleep.c @@ -0,0 +1,133 @@ +/* + * Copyright (c) 2003-2004 Altera Corporation, San Jose, California, USA. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + * ------------ + * + * Altera does not recommend, suggest or require that this reference design + * file be used in conjunction or combination with any other product. + * + * alt_busy_sleep.c - Microsecond delay routine which uses a calibrated busy + * loop to perform the delay. This is used to implement + * usleep for both uC/OS-II and the standalone HAL. + * + * Author PRR + * + * Calibrated delay with no timer required + * + * The ASM instructions in the routine are equivalent to + * + * for (i=0;i +#include + +#include "system.h" +#include "alt_types.h" + +#include "priv/alt_busy_sleep.h" + +unsigned int alt_busy_sleep (unsigned int us) +{ +/* + * Only delay if ALT_SIM_OPTIMIZE is not defined; i.e., if software + * is built targetting ModelSim RTL simulation, the delay will be + * skipped to speed up simulation. + */ +#ifndef ALT_SIM_OPTIMIZE + int i; + int big_loops; + alt_u32 cycles_per_loop; + + if (!strcmp(NIOS2_CPU_IMPLEMENTATION,"tiny")) + { + cycles_per_loop = 9; + } + else + { + cycles_per_loop = 3; + } + + + big_loops = us / (INT_MAX/ + (ALT_CPU_FREQ/(cycles_per_loop * 1000000))); + + if (big_loops) + { + for(i=0;i + +#include "sys/alt_errno.h" +#include "sys/alt_warning.h" +#include "priv/alt_file.h" +#include "os/alt_syscall.h" + +#ifdef ALT_USE_DIRECT_DRIVERS + +int ALT_CLOSE (int fildes) +{ + /* Generate a link time warning, should this function ever be called. */ + + ALT_STUB_WARNING(close); + + /* Indicate an error */ + + ALT_ERRNO = ENOSYS; + return -1; +} + +#else /* !ALT_USE_DIRECT_DRIVERS */ + +/* + * close() is called by an application to release a file descriptor. If the + * associated file system/device has a close() callback function registered + * then this called. The file descriptor is then marked as free. + * + * ALT_CLOSE is mapped onto the close() system call in alt_syscall.h + */ + +int ALT_CLOSE (int fildes) +{ + alt_fd* fd; + int rval; + + /* + * A common error case is that when the file descriptor was created, the call + * to open() failed resulting in a negative file descriptor. This is trapped + * below so that we don't try and process an invalid file descriptor. + */ + + fd = (fildes < 0) ? NULL : &alt_fd_list[fildes]; + + if (fd) + { + /* + * If the associated file system/device has a close function, call it so + * that any necessary cleanup code can run. + */ + + rval = (fd->dev->close) ? fd->dev->close(fd) : 0; + + /* Free the file descriptor structure and return. */ + + alt_release_fd (fildes); + if (rval < 0) + { + ALT_ERRNO = -rval; + return -1; + } + return 0; + } + else + { + ALT_ERRNO = EBADFD; + return -1; + } +} + +#endif /* ALT_USE_DIRECT_DRIVERS */ diff --git a/software/qsys_tutorial_key3_bsp/HAL/src/alt_dcache_flush.c b/software/qsys_tutorial_key3_bsp/HAL/src/alt_dcache_flush.c new file mode 100644 index 0000000..7ecc91a --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/HAL/src/alt_dcache_flush.c @@ -0,0 +1,97 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003-2005 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "nios2.h" +#include "system.h" + +#include "alt_types.h" +#include "sys/alt_cache.h" + +/* + * Nios II version 1.2 and newer supports the "flush by address" instruction, in + * addition to the "flush by line" instruction provided by older versions of + * the core. This newer instruction is used by preference when it is + * available. + */ + +#ifdef NIOS2_FLUSHDA_SUPPORTED +#define ALT_FLUSH_DATA(i) __asm__ volatile ("flushda (%0)" :: "r" (i)); +#else +#define ALT_FLUSH_DATA(i) __asm__ volatile ("flushd (%0)" :: "r" (i)); +#endif /* NIOS2_FLUSHDA_SUPPORTED */ + +/* + * alt_dcache_flush() is called to flush the data cache for a memory + * region of length "len" bytes, starting at address "start". + * + * Any dirty lines in the data cache are written back to memory. + */ + +void alt_dcache_flush (void* start, alt_u32 len) +{ +#if NIOS2_DCACHE_SIZE > 0 + + char* i; + char* end; + + /* + * This is the most we would ever need to flush. + * + * SPR 196942, 2006.01.13: The cache flush loop below will use the + * 'flushda' instruction if its available; in that case each line + * must be flushed individually, and thus 'len' cannot be trimmed. + */ + #ifndef NIOS2_FLUSHDA_SUPPORTED + if (len > NIOS2_DCACHE_SIZE) + { + len = NIOS2_DCACHE_SIZE; + } + #endif + + end = ((char*) start) + len; + + for (i = start; i < end; i+= NIOS2_DCACHE_LINE_SIZE) + { + ALT_FLUSH_DATA(i); + } + + /* + * For an unaligned flush request, we've got one more line left. + * Note that this is dependent on NIOS2_DCACHE_LINE_SIZE to be a + * multiple of 2 (which it always is). + */ + + if (((alt_u32) start) & (NIOS2_DCACHE_LINE_SIZE - 1)) + { + ALT_FLUSH_DATA(i); + } + +#endif /* NIOS2_DCACHE_SIZE > 0 */ +} diff --git a/software/qsys_tutorial_key3_bsp/HAL/src/alt_dcache_flush_all.c b/software/qsys_tutorial_key3_bsp/HAL/src/alt_dcache_flush_all.c new file mode 100644 index 0000000..6529231 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/HAL/src/alt_dcache_flush_all.c @@ -0,0 +1,51 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003-2005 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "nios2.h" +#include "system.h" + +#include "alt_types.h" +#include "sys/alt_cache.h" + +/* + * alt_dcache_flush_all() is called to flush the entire data cache. + */ + +void alt_dcache_flush_all (void) +{ +#if NIOS2_DCACHE_SIZE > 0 + char* i; + + for (i = (char*) 0; i < (char*) NIOS2_DCACHE_SIZE; i+= NIOS2_DCACHE_LINE_SIZE) + { + __asm__ volatile ("flushd (%0)" :: "r" (i)); + } +#endif /* NIOS2_DCACHE_SIZE > 0 */ +} diff --git a/software/qsys_tutorial_key3_bsp/HAL/src/alt_dcache_flush_no_writeback.c b/software/qsys_tutorial_key3_bsp/HAL/src/alt_dcache_flush_no_writeback.c new file mode 100644 index 0000000..c65ca7d --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/HAL/src/alt_dcache_flush_no_writeback.c @@ -0,0 +1,88 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2007 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "nios2.h" +#include "system.h" + +#include "alt_types.h" +#include "sys/alt_cache.h" + +/* + * The INITDA instruction was added to Nios II in the 8.0 release. + * + * The INITDA instruction has one of the following possible behaviors + * depending on the processor configuration: + * 1) Flushes a line by address but does NOT write back dirty data. + * Occurs when a data cache is present that supports INITDA. + * The macro NIOS2_INITDA_SUPPORTED is defined in system.h. + * 2) Takes an unimplemented instruction exception. + * Occurs when a data cache is present that doesn't support INITDA. + * 3) Performs no operation + * Occurs when there is no data cache present. + * The macro NIOS2_DCACHE_SIZE is 0 in system.h. + */ + +#define ALT_FLUSH_DATA_NO_WRITEBACK(i) \ + __asm__ volatile ("initda (%0)" :: "r" (i)); + +/* + * alt_dcache_flush_no_writeback() is called to flush the data cache for a + * memory region of length "len" bytes, starting at address "start". + * + * Any dirty lines in the data cache are NOT written back to memory. + * Make sure you really want this behavior. If you aren't 100% sure, + * use the alt_dcache_flush() routine instead. + */ + +void alt_dcache_flush_no_writeback (void* start, alt_u32 len) +{ +#if defined(NIOS2_INITDA_SUPPORTED) + + char* i; + char* end = ((char*) start) + len; + + for (i = start; i < end; i+= NIOS2_DCACHE_LINE_SIZE) + { + ALT_FLUSH_DATA_NO_WRITEBACK(i); + } + + /* + * For an unaligned flush request, we've got one more line left. + * Note that this is dependent on NIOS2_DCACHE_LINE_SIZE to be a + * multiple of 2 (which it always is). + */ + + if (((alt_u32) start) & (NIOS2_DCACHE_LINE_SIZE - 1)) + { + ALT_FLUSH_DATA_NO_WRITEBACK(i); + } + +#endif /* NIOS2_INITDA_SUPPORTED */ +} diff --git a/software/qsys_tutorial_key3_bsp/HAL/src/alt_dev.c b/software/qsys_tutorial_key3_bsp/HAL/src/alt_dev.c new file mode 100644 index 0000000..ebc15e5 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/HAL/src/alt_dev.c @@ -0,0 +1,149 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include +#include +#include +#include + +#include "sys/alt_dev.h" +#include "priv/alt_file.h" + +#include "alt_types.h" + +#include "system.h" + +/* + * This file contains the data constructs used to control access to device and + * filesytems. + */ + +/* + * "alt_fs_list" is the head of a linked list of registered filesystems. It is + * initialised as an empty list. New entries can be added using the + * alt_fs_reg() function. + */ + +ALT_LLIST_HEAD(alt_fs_list); + + +/* + * "alt_dev_list" is the head of a linked list of registered devices. It is + * configured at startup to include a single device, "alt_dev_null". This + * device is discussed below. + */ + +extern alt_dev alt_dev_null; /* forward declaration */ + +alt_llist alt_dev_list = {&alt_dev_null.llist, &alt_dev_null.llist}; + +/* + * alt_dev_null_write() is the implementation of the write() function used + * by the alt_dev_null device. It simple discards all data passed to it, and + * indicates that the data has been successfully transmitted. + */ + +static int alt_dev_null_write (alt_fd* fd, const char* ptr, int len) +{ + return len; +} + +/* + * "alt_dev_null" is used to allow output to be redirected to nowhere. It is + * the only device registered before the call to alt_sys_init(). At startup + * stin, stdout & stderr are all directed towards this device so that library + * calls like printf() will be safe but inefectual. + */ + +alt_dev alt_dev_null = { + { + &alt_dev_list, + &alt_dev_list + }, + "/dev/null", + NULL, /* open */ + NULL, /* close */ + NULL, /* write */ + alt_dev_null_write, /* write */ + NULL, /* lseek */ + NULL, /* fstat */ + NULL /* ioctl */ + }; + +/* + * "alt_fd_list_lock" is a semaphore used to control access to the file + * descriptor list. This is used to ensure that access to the list is thread + * safe. + */ + +ALT_SEM(alt_fd_list_lock) + +/* + * "alt_max_fd" is used to make access to the file descriptor list more + * efficent. It is set to be the value of the highest allocated file + * descriptor. This saves having to search the entire pool of unallocated + * file descriptors when looking for a match. + */ + +alt_32 alt_max_fd = -1; + +/* + * "alt_fd_list" is the file descriptor pool. The first three entries in the + * array are configured as standard in, standard out, and standard error. These + * are all initialised so that accesses are directed to the alt_dev_null + * device. The remaining file descriptors are initialised as unallocated. + * + * The maximum number of file descriptors within the system is specified by the + * user defined macro "ALT_MAX_FD". This is defined in "system.h", which is + * auto-genereated using the projects PTF and STF files. + */ + +alt_fd alt_fd_list[ALT_MAX_FD] = + { + { + &alt_dev_null, /* standard in */ + 0, + 0 + }, + { + &alt_dev_null, /* standard out */ + 0, + 0 + }, + { + &alt_dev_null, /* standard error */ + 0, + 0 + } + /* all other elements are set to zero */ + }; diff --git a/software/qsys_tutorial_key3_bsp/HAL/src/alt_dev_llist_insert.c b/software/qsys_tutorial_key3_bsp/HAL/src/alt_dev_llist_insert.c new file mode 100644 index 0000000..fa7239d --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/HAL/src/alt_dev_llist_insert.c @@ -0,0 +1,59 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "priv/alt_dev_llist.h" +#include "sys/alt_errno.h" + +/* + * + */ + +int alt_dev_llist_insert (alt_dev_llist* dev, alt_llist* list) +{ + /* + * check that the device exists, and that it has a valid name. + */ + + if (!dev || !dev->name) + { + ALT_ERRNO = EINVAL; + return -EINVAL; + } + + /* + * register the device. + */ + + alt_llist_insert(list, &dev->llist); + + return 0; +} diff --git a/software/qsys_tutorial_key3_bsp/HAL/src/alt_dma_rxchan_open.c b/software/qsys_tutorial_key3_bsp/HAL/src/alt_dma_rxchan_open.c new file mode 100644 index 0000000..6ea3b78 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/HAL/src/alt_dma_rxchan_open.c @@ -0,0 +1,63 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_dma.h" +#include "sys/alt_errno.h" +#include "priv/alt_file.h" + +/* + * The list of registered DMA receive channels. + */ + +ALT_LLIST_HEAD(alt_dma_rxchan_list); + +/* + * alt_dma_txchan_open() is used to obtain an "alt_dma_txchan" descriptor for + * a DMA transmit device. The name is the name of the associated physical + * device (e.g. "/dev/dma_0"). + * + * The return value will be NULL on failure, and non-NULL otherwise. + */ + +alt_dma_rxchan alt_dma_rxchan_open (const char* name) +{ + alt_dma_rxchan dev; + + dev = (alt_dma_rxchan) alt_find_dev (name, &alt_dma_rxchan_list); + + if (!dev) + { + ALT_ERRNO = ENODEV; + } + + return dev; +} diff --git a/software/qsys_tutorial_key3_bsp/HAL/src/alt_dma_txchan_open.c b/software/qsys_tutorial_key3_bsp/HAL/src/alt_dma_txchan_open.c new file mode 100644 index 0000000..f41fa81 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/HAL/src/alt_dma_txchan_open.c @@ -0,0 +1,63 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_dma.h" +#include "sys/alt_errno.h" +#include "priv/alt_file.h" + +/* + * The list of registered receive channels. + */ + +ALT_LLIST_HEAD(alt_dma_txchan_list); + +/* + * alt_dma_txchan_open() is used to obtain an "alt_dma_txchan" descriptor for + * a DMA transmit device. The name is the name of the associated physical + * device (e.g. "/dev/dma_0"). + * + * The return value will be NULL on failure, and non-NULL otherwise. + */ + +alt_dma_txchan alt_dma_txchan_open (const char* name) +{ + alt_dma_txchan dev; + + dev = (alt_dma_txchan) alt_find_dev (name, &alt_dma_txchan_list); + + if (!dev) + { + ALT_ERRNO = ENODEV; + } + + return dev; +} diff --git a/software/qsys_tutorial_key3_bsp/HAL/src/alt_do_ctors.c b/software/qsys_tutorial_key3_bsp/HAL/src/alt_do_ctors.c new file mode 100644 index 0000000..ff5a1f7 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/HAL/src/alt_do_ctors.c @@ -0,0 +1,64 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT IT DIRECTLY. * +* * +* Overriding HAL Functions * +* * +* To provide your own implementation of a HAL function, include the file in * +* your Nios II IDE application project. When building the executable, the * +* Nios II IDE finds your function first, and uses it in place of the HAL * +* version. * +* * +******************************************************************************/ + +/* + * + */ + +typedef void (*constructor) (void); +extern constructor __CTOR_LIST__[]; +extern constructor __CTOR_END__[]; + +/* + * Run the C++ static constructors. + */ + +void _do_ctors(void) +{ + constructor* ctor; + + for (ctor = &__CTOR_END__[-1]; ctor >= __CTOR_LIST__; ctor--) + (*ctor) (); +} diff --git a/software/qsys_tutorial_key3_bsp/HAL/src/alt_do_dtors.c b/software/qsys_tutorial_key3_bsp/HAL/src/alt_do_dtors.c new file mode 100644 index 0000000..565c99f --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/HAL/src/alt_do_dtors.c @@ -0,0 +1,64 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT IT DIRECTLY. * +* * +* Overriding HAL Functions * +* * +* To provide your own implementation of a HAL function, include the file in * +* your Nios II IDE application project. When building the executable, the * +* Nios II IDE finds your function first, and uses it in place of the HAL * +* version. * +* * +******************************************************************************/ + +/* + * + */ + +typedef void (*destructor) (void); +extern destructor __DTOR_LIST__[]; +extern destructor __DTOR_END__[]; + +/* + * Run the C++ static destructors. + */ + +void _do_dtors(void) +{ + destructor* dtor; + + for (dtor = &__DTOR_END__[-1]; dtor >= __DTOR_LIST__; dtor--) + (*dtor) (); +} diff --git a/software/qsys_tutorial_key3_bsp/HAL/src/alt_env_lock.c b/software/qsys_tutorial_key3_bsp/HAL/src/alt_env_lock.c new file mode 100644 index 0000000..fc25a0c --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/HAL/src/alt_env_lock.c @@ -0,0 +1,53 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +/* + * These are the empty env lock/unlock stubs required by newlib. These are + * used to make accesses to environment variables thread safe. The default HAL + * configuration is single threaded, so there is nothing to do here. Note that + * this requires that environment variables are never manipulated by an interrupt + * service routine. + */ + +void __env_lock ( struct _reent *_r ) +{ +} + +/* + * + */ + +void __env_unlock ( struct _reent *_r ) +{ +} diff --git a/software/qsys_tutorial_key3_bsp/HAL/src/alt_environ.c b/software/qsys_tutorial_key3_bsp/HAL/src/alt_environ.c new file mode 100644 index 0000000..404efc4 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/HAL/src/alt_environ.c @@ -0,0 +1,42 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "os/alt_syscall.h" + +/* + * These are the environment variables passed to the C code. By default there + * are no variables registered. An application can manipulate this list using + * getenv() and setenv(). + */ + +char *__env[1] = { 0 }; +char **ALT_ENVIRON = __env; diff --git a/software/qsys_tutorial_key3_bsp/HAL/src/alt_errno.c b/software/qsys_tutorial_key3_bsp/HAL/src/alt_errno.c new file mode 100644 index 0000000..1d8368d --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/HAL/src/alt_errno.c @@ -0,0 +1,44 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/* + * This file defines the alt_errno global variable. See comments in + * alt_errno.h for the use of this variable. + */ + + +#include "sys/alt_errno.h" +#include "alt_types.h" + +extern int ALT_WEAK *__errno (void); + +int* (*alt_errno) (void) = __errno; diff --git a/software/qsys_tutorial_key3_bsp/HAL/src/alt_exception_entry.S b/software/qsys_tutorial_key3_bsp/HAL/src/alt_exception_entry.S new file mode 100644 index 0000000..3afab93 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/HAL/src/alt_exception_entry.S @@ -0,0 +1,360 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003-2008 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "system.h" + +/* + * This is the exception entry point code, which saves all the caller saved + * registers and then handles the appropriate exception. It should be pulled + * in using a .globl from all the exception handler routines. This scheme is + * used so that if an interrupt is never registered, then this code will not + * appear in the generated executable, thereby improving code footprint. + * + * If an external interrpt controller (EIC) is present, it will supply an + * interrupt vector address to the processor when an interrupt occurs. For + * The Altera Vectored Interrupt Controller (VIC) driver will establish a + * vector table and the processor will jump directly to the appropriate + * table entry, funnel routine, and then user ISR. This will bypass this code + * in entirety. This code might still be linked into a system with an EIC, + * but would then be used only for non-interrupt exceptions. + */ + + /* + * Explicitly allow the use of r1 (the assembler temporary register) + * within this code. This register is normally reserved for the use of + * the assembler. + */ + .set noat + + /* + * The top and bottom of the exception stack + */ +#ifdef ALT_EXCEPTION_STACK + + .globl __alt_exception_stack_pointer + +#ifdef ALT_STACK_CHECK + + .globl __alt_exception_stack_limit + + /* + * We need to store the value of the stack limit after interrupt somewhere. + */ + .globl alt_exception_old_stack_limit + +#endif +#endif + + .section .exceptions.entry.label, "xa" + + .globl alt_exception + .type alt_exception, @function +alt_exception: + + .section .exceptions.entry, "xa" + +#ifdef ALT_EXCEPTION_STACK + +#ifdef ALT_STACK_CHECK + stw et, %gprel(alt_exception_old_stack_limit)(gp) +#endif + + movhi et, %hiadj(__alt_exception_stack_pointer - 80) + addi et, et, %lo(__alt_exception_stack_pointer - 80) + stw sp, 76(et) + mov sp, et + +#ifdef ALT_STACK_CHECK + movhi et, %hiadj(__alt_exception_stack_limit) + addi et, et, %lo(__alt_exception_stack_limit) + stw et, %gprel(alt_stack_limit_value)(gp) +#endif + +#else + /* + * Process an exception. For all exceptions we must preserve all + * caller saved registers on the stack (See the Nios2 ABI + * documentation for details). + */ + + addi sp, sp, -76 + +#ifdef ALT_STACK_CHECK + + bltu sp, et, .Lstack_overflow + +#endif + +#endif + + stw ra, 0(sp) + + /* + * Leave a gap in the stack frame at 4(sp) for the muldiv handler to + * store zero into. + */ + + stw r1, 8(sp) + stw r2, 12(sp) + stw r3, 16(sp) + stw r4, 20(sp) + stw r5, 24(sp) + stw r6, 28(sp) + stw r7, 32(sp) + + rdctl r5, estatus + + stw r8, 36(sp) + stw r9, 40(sp) + stw r10, 44(sp) + stw r11, 48(sp) + stw r12, 52(sp) + stw r13, 56(sp) + stw r14, 60(sp) + stw r15, 64(sp) + + /* + * ea-4 contains the address of the instruction being executed + * when the exception occured. For interrupt exceptions, we will + * will be re-issue the isntruction. Store it in 72(sp) + */ + stw r5, 68(sp) /* estatus */ + addi r15, ea, -4 /* instruction that caused exception */ + stw r15, 72(sp) + + /* + * The interrupt testing code (.exceptions.irqtest) will be + * linked here. If the Internal Interrupt Controller (IIC) is + * present (an EIC is not present), the presense of an interrupt + * is determined by examining CPU control registers or an interrupt + * custom instruction, if present. + * + * If the IIC is used and an interrupt is active, the code linked + * here will call the HAL IRQ handler (alt_irq_handler()) which + * successively calls registered interrupt handler(s) until no + * interrupts remain pending. It then jumps to .exceptions.exit. If + * there is no interrupt then it continues to .exception.notirq, below. + */ + + .section .exceptions.notirq, "xa" + + /* + * Prepare to service unimplemtned instructions or traps, + * each of which is optionally inked into section .exceptions.soft, + * which will preceed .exceptions.unknown below. + * + * Unlike interrupts, we want to skip the exception-causing instructon + * upon completion, so we write ea (address of instruction *after* + * the one where the exception occured) into 72(sp). The actual + * instruction that caused the exception is written in r2, which these + * handlers will utilize. + */ + stw ea, 72(sp) /* Don't re-issue */ + ldw r2, -4(ea) /* Instruction that caused exception */ + + /* + * Other exception handling code, if enabled, will be linked here. + * This includes unimplemted (multiply/divide) instruction support + * (a BSP generaton option), and a trap handler (that would typically + * be augmented with user-specific code). These are not linked in by + * default. + */ + + /* + * In the context of linker sections, "unknown" are all exceptions + * not handled by the built-in handlers above (interupt, and trap or + * unimplemented instruction decoding, if enabled). + * + * Advanced exception types can be serviced by registering a handler. + * To do so, enable the "Enable Instruction-related Exception API" HAL + * BSP setting. If this setting is disabled, this handler code will + * either break (if the debug core is present) or enter an infinite + * loop because we don't how how to handle the exception. + */ + .section .exceptions.unknown +#ifdef ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API + /* + * The C-based HAL routine alt_instruction_exception_entry() will + * attempt to service the exception by calling a user-registered + * exception handler using alt_instruction_exception_register(). + * If no handler was registered it will either break (if the + * debugger is present) or go into an infinite loop since the + * handling behavior is undefined; in that case we will not return here. + */ + + /* Load exception-causing address as first argument (r4) */ + addi r4, ea, -4 + + /* Call the instruction-exception entry */ + call alt_instruction_exception_entry + + /* + * If alt_instruction_exception_entry() returned, the exception was + * serviced by a user-registered routine. Its return code (now in r2) + * indicates whether to re-issue or skip the exception-causing + * instruction + * + * Return code was 0: Skip. The instruction after the exception is + * already stored in 72(sp). + */ + bne r2, r0, .Lexception_exit + + /* + * Otherwise, modify 72(sp) to re-issue the instruction that caused the + * exception. + */ + addi r15, ea, -4 /* instruction that caused exception */ + stw r15, 72(sp) + +#else /* ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API disabled */ + + /* + * We got here because an instruction-related exception occured, but the + * handler API was not compiled in. We do not presume to know how to + * handle it. If the debugger is present, break, otherwise hang. + * + * If you get here then one of the following could have happened: + * + * - An instruction-generated exception occured, and the processor + * does not have the extra exceptions feature enabled, or you + * have not registered a handler using + * alt_instruction_exception_register() + * + * Some examples of instruction-generated exceptions and why they + * might occur: + * + * - Your program could have been compiled for a full-featured + * Nios II core, but it is running on a smaller core, and + * instruction emulation has been disabled by defining + * ALT_NO_INSTRUCTION_EMULATION. + * + * You can work around the problem by re-enabling instruction + * emulation, or you can figure out why your program is being + * compiled for a system other than the one that it is running on. + * + * - Your program has executed a trap instruction, but has not + * implemented a handler for this instruction. + * + * - Your program has executed an illegal instruction (one which is + * not defined in the instruction set). + * + * - Your processor includes an MMU or MPU, and you have enabled it + * before registering an exception handler to service exceptions it + * generates. + * + * The problem could also be hardware related: + * - If your hardware is broken and is generating spurious interrupts + * (a peripheral which negates its interrupt output before its + * interrupt handler has been executed will cause spurious + * interrupts) + */ +#ifdef NIOS2_HAS_DEBUG_STUB + /* + * Either tell the user now (if there is a debugger attached) or go into + * the debug monitor which will loop until a debugger is attached. + */ + break +#else + /* + * If there is no debug stub then a BREAK will probably cause a reboot. + * An infinate loop will probably be more useful. + */ +0: + br 0b +#endif /* NIOS2_HAS_DEBUG_STUB */ + +#endif /* ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API */ + + .section .exceptions.exit.label +.Lexception_exit: + + .section .exceptions.exit, "xa" + + /* + * Restore the saved registers, so that all general purpose registers + * have been restored to their state at the time the interrupt occured. + */ + + ldw r5, 68(sp) + ldw ea, 72(sp) /* This becomes the PC once eret is executed */ + ldw ra, 0(sp) + + wrctl estatus, r5 + + ldw r1, 8(sp) + ldw r2, 12(sp) + ldw r3, 16(sp) + ldw r4, 20(sp) + ldw r5, 24(sp) + ldw r6, 28(sp) + ldw r7, 32(sp) + +#ifdef ALT_EXCEPTION_STACK +#ifdef ALT_STACK_CHECK + ldw et, %gprel(alt_exception_old_stack_limit)(gp) +#endif +#endif + + ldw r8, 36(sp) + ldw r9, 40(sp) + ldw r10, 44(sp) + ldw r11, 48(sp) + ldw r12, 52(sp) + ldw r13, 56(sp) + ldw r14, 60(sp) + ldw r15, 64(sp) + +#ifdef ALT_EXCEPTION_STACK + +#ifdef ALT_STACK_CHECK + stw et, %gprel(alt_stack_limit_value)(gp) + stw zero, %gprel(alt_exception_old_stack_limit)(gp) +#endif + + ldw sp, 76(sp) + +#else + addi sp, sp, 76 + +#endif + + /* + * Return to the interrupted instruction. + */ + + eret + +#ifdef ALT_STACK_CHECK + +.Lstack_overflow: + break 3 + +#endif + diff --git a/software/qsys_tutorial_key3_bsp/HAL/src/alt_exception_muldiv.S b/software/qsys_tutorial_key3_bsp/HAL/src/alt_exception_muldiv.S new file mode 100644 index 0000000..55617a6 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/HAL/src/alt_exception_muldiv.S @@ -0,0 +1,583 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003-2005 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + + /* + * This is the software multiply/divide handler for Nios2. + */ + + /* + * Provide a label which can be used to pull this file in. + */ + + .section .exceptions.start + .globl alt_exception_muldiv +alt_exception_muldiv: + + /* + * Pull in the entry/exit code. + */ + .globl alt_exception + + + .section .exceptions.soft, "xa" + + + /* INSTRUCTION EMULATION + * --------------------- + * + * Nios II processors generate exceptions for unimplemented instructions. + * The routines below emulate these instructions. Depending on the + * processor core, the only instructions that might need to be emulated + * are div, divu, mul, muli, mulxss, mulxsu, and mulxuu. + * + * The emulations match the instructions, except for the following + * limitations: + * + * 1) The emulation routines do not emulate the use of the exception + * temporary register (et) as a source operand because the exception + * handler already has modified it. + * + * 2) The routines do not emulate the use of the stack pointer (sp) or the + * exception return address register (ea) as a destination because + * modifying these registers crashes the exception handler or the + * interrupted routine. + * + * 3) To save code size, the routines do not emulate the use of the + * breakpoint registers (ba and bt) as operands. + * + * Detailed Design + * --------------- + * + * The emulation routines expect the contents of integer registers r0-r31 + * to be on the stack at addresses sp, 4(sp), 8(sp), ... 124(sp). The + * routines retrieve source operands from the stack and modify the + * destination register's value on the stack prior to the end of the + * exception handler. Then all registers except the destination register + * are restored to their previous values. + * + * The instruction that causes the exception is found at address -4(ea). + * The instruction's OP and OPX fields identify the operation to be + * performed. + * + * One instruction, muli, is an I-type instruction that is identified by + * an OP field of 0x24. + * + * muli AAAAA,BBBBB,IIIIIIIIIIIIIIII,-0x24- + * 27 22 6 0 <-- LSB of field + * + * The remaining emulated instructions are R-type and have an OP field + * of 0x3a. Their OPX fields identify them. + * + * R-type AAAAA,BBBBB,CCCCC,XXXXXX,NNNNN,-0x3a- + * 27 22 17 11 6 0 <-- LSB of field + * + * + */ + + + /* + * Split the instruction into its fields. We need 4*A, 4*B, and 4*C as + * offsets to the stack pointer for access to the stored register values. + */ + /* r2 = AAAAA,BBBBB,IIIIIIIIIIIIIIII,PPPPPP */ + roli r3, r2, 7 /* r3 = BBB,IIIIIIIIIIIIIIII,PPPPPP,AAAAA,BB */ + roli r4, r3, 3 /* r4 = IIIIIIIIIIIIIIII,PPPPPP,AAAAA,BBBBB */ + roli r6, r4, 2 /* r6 = IIIIIIIIIIIIII,PPPPPP,AAAAA,BBBBB,II */ + srai r4, r4, 16 /* r4 = (sign-extended) IMM16 */ + xori r6, r6, 0x42 /* r6 = CCC,XXXXXX,NNNNN,PPPPPP,AAAAA,bBBBB,cC */ + roli r7, r6, 5 /* r7 = XXXX,NNNNN,PPPPPP,AAAAA,bBBBB,cCCCC,XX */ + andi r5, r2, 0x3f /* r5 = 00000000000000000000000000,PPPPPP */ + xori r3, r3, 0x40 + andi r3, r3, 0x7c /* r3 = 0000000000000000000000000,aAAAA,00 */ + andi r6, r6, 0x7c /* r6 = 0000000000000000000000000,bBBBB,00 */ + andi r7, r7, 0x7c /* r7 = 0000000000000000000000000,cCCCC,00 */ + + /* Now either + * r5 = OP + * r3 = 4*(A^16) + * r4 = IMM16 (sign extended) + * r6 = 4*(B^16) + * r7 = 4*(C^16) + * or + * r5 = OP + */ + + + /* + * Save everything on the stack to make it easy for the emulation routines + * to retrieve the source register operands. The exception entry code has + * already saved some of this so we don't need to do it all again. + */ + + addi sp, sp, -60 + stw zero, 64(sp) /* Save zero on stack to avoid special case for r0. */ + /* Register at and r2-r15 have already been saved. */ + + stw r16, 0(sp) + stw r17, 4(sp) + stw r18, 8(sp) + stw r19, 12(sp) + stw r20, 16(sp) + stw r21, 20(sp) + stw r22, 24(sp) + stw r23, 28(sp) + /* et @ 32 - Has already been changed.*/ + /* bt @ 36 - Usually isn't an operand. */ + stw gp, 40(sp) + stw sp, 44(sp) + stw fp, 48(sp) + /* ea @ 52 - Don't bother to save - it's already been changed */ + /* ba @ 56 - Breakpoint register usually isn't an operand */ + /* ra @ 60 - Has already been saved */ + + + /* + * Prepare for either multiplication or division loop. + * They both loop 32 times. + */ + movi r14, 32 + + + /* + * Get the operands. + * + * It is necessary to check for muli because it uses an I-type instruction + * format, while the other instructions are have an R-type format. + */ + add r3, r3, sp /* r3 = address of A-operand. */ + ldw r3, 0(r3) /* r3 = A-operand. */ + movi r15, 0x24 /* muli opcode (I-type instruction format) */ + beq r5, r15, .Lmul_immed /* muli doesn't use the B register as a source */ + + add r6, r6, sp /* r6 = address of B-operand. */ + ldw r6, 0(r6) /* r6 = B-operand. */ + /* r4 = SSSSSSSSSSSSSSSS,-----IMM16------ */ + /* IMM16 not needed, align OPX portion */ + /* r4 = SSSSSSSSSSSSSSSS,CCCCC,-OPX--,00000 */ + srli r4, r4, 5 /* r4 = 00000,SSSSSSSSSSSSSSSS,CCCCC,-OPX-- */ + andi r4, r4, 0x3f /* r4 = 00000000000000000000000000,-OPX-- */ + + /* Now + * r5 = OP + * r3 = src1 + * r6 = src2 + * r4 = OPX (no longer can be muli) + * r7 = 4*(C^16) + * r14 = loop counter + */ + + /* ILLEGAL-INSTRUCTION EXCEPTION + * ----------------------------- + * + * This code is for Nios II cores that generate exceptions when attempting + * to execute illegal instructions. Nios II cores that support an + * illegal-instruction exception are identified by the presence of the + * macro definition NIOS2_HAS_ILLEGAL_INSTRUCTION_EXCEPTION in system.h . + * + * Remember that illegal instructions are different than unimplemented + * instructions. Illegal instructions are instruction encodings that + * have not been defined by the Nios II ISA. Unimplemented instructions + * are legal instructions that must be emulated by some Nios II cores. + * + * If we get here, all instructions except multiplies and divides + * are illegal. + * + * This code assumes that OP is not muli (because muli was tested above). + * All other multiplies and divides are legal. Anything else is illegal. + */ + + movi r8, 0x3a /* OP for R-type mul* and div* */ + bne r5, r8, .Lnot_muldiv + + /* r15 already is 0x24 */ /* OPX of divu */ + beq r4, r15, .Ldivide + + movi r15,0x27 /* OPX of mul */ + beq r4, r15, .Lmultiply + + movi r15,0x07 /* OPX of mulxuu */ + beq r4, r15, .Lmultiply + + movi r15,0x17 /* OPX of mulxsu */ + beq r4, r15, .Lmultiply + + movi r15,0x1f /* OPX of mulxss */ + beq r4, r15, .Lmultiply + + movi r15,0x25 /* OPX of div */ + bne r4, r15, .Lnot_muldiv + + + /* DIVISION + * + * Divide an unsigned dividend by an unsigned divisor using + * a shift-and-subtract algorithm. The example below shows + * 43 div 7 = 6 for 8-bit integers. This classic algorithm uses a + * single register to store both the dividend and the quotient, + * allowing both values to be shifted with a single instruction. + * + * remainder dividend:quotient + * --------- ----------------- + * initialize 00000000 00101011: + * shift 00000000 0101011:_ + * remainder >= divisor? no 00000000 0101011:0 + * shift 00000000 101011:0_ + * remainder >= divisor? no 00000000 101011:00 + * shift 00000001 01011:00_ + * remainder >= divisor? no 00000001 01011:000 + * shift 00000010 1011:000_ + * remainder >= divisor? no 00000010 1011:0000 + * shift 00000101 011:0000_ + * remainder >= divisor? no 00000101 011:00000 + * shift 00001010 11:00000_ + * remainder >= divisor? yes 00001010 11:000001 + * remainder -= divisor - 00000111 + * ---------- + * 00000011 11:000001 + * shift 00000111 1:000001_ + * remainder >= divisor? yes 00000111 1:0000011 + * remainder -= divisor - 00000111 + * ---------- + * 00000000 1:0000011 + * shift 00000001 :0000011_ + * remainder >= divisor? no 00000001 :00000110 + * + * The quotient is 00000110. + */ + +.Ldivide: + /* + * Prepare for division by assuming the result + * is unsigned, and storing its "sign" as 0. + */ + movi r17, 0 + + + /* Which division opcode? */ + xori r15, r4, 0x25 /* OPX of div */ + bne r15, zero, .Lunsigned_division + + + /* + * OPX is div. Determine and store the sign of the quotient. + * Then take the absolute value of both operands. + */ + xor r17, r3, r6 /* MSB contains sign of quotient */ + bge r3, zero, 0f + sub r3, zero, r3 /* -r3 */ +0: + bge r6, zero, 0f + sub r6, zero, r6 /* -r6 */ +0: + + +.Lunsigned_division: + /* Initialize the unsigned-division loop. */ + movi r13, 0 /* remainder = 0 */ + + /* Now + * r3 = dividend : quotient + * r4 = 0x25 for div, 0x24 for divu + * r6 = divisor + * r13 = remainder + * r14 = loop counter (already initialized to 32) + * r17 = MSB contains sign of quotient + */ + + + /* + * for (count = 32; count > 0; --count) + * { + */ +.Ldivide_loop: + + /* + * Division: + * + * (remainder:dividend:quotient) <<= 1; + */ + slli r13, r13, 1 + cmplt r15, r3, zero /* r15 = MSB of r3 */ + or r13, r13, r15 + slli r3, r3, 1 + + + /* + * if (remainder >= divisor) + * { + * set LSB of quotient + * remainder -= divisor; + * } + */ + bltu r13, r6, .Ldiv_skip + ori r3, r3, 1 + sub r13, r13, r6 +.Ldiv_skip: + + /* + * } + */ + subi r14, r14, 1 + bne r14, zero, .Ldivide_loop + + mov r9, r3 + + + /* Now + * r9 = quotient + * r4 = 0x25 for div, 0x24 for divu + * r7 = 4*(C^16) + * r17 = MSB contains sign of quotient + */ + + + /* + * Conditionally negate signed quotient. If quotient is unsigned, + * the sign already is initialized to 0. + */ + bge r17, zero, .Lstore_result + sub r9, zero, r9 /* -r9 */ + + br .Lstore_result + + + + + /* MULTIPLICATION + * + * A "product" is the number that one gets by summing a "multiplicand" + * several times. The "multiplier" specifies the number of copies of the + * multiplicand that are summed. + * + * Actual multiplication algorithms don't use repeated addition, however. + * Shift-and-add algorithms get the same answer as repeated addition, and + * they are faster. To compute the lower half of a product (pppp below) + * one shifts the product left before adding in each of the partial products + * (a * mmmm) through (d * mmmm). + * + * To compute the upper half of a product (PPPP below), one adds in the + * partial products (d * mmmm) through (a * mmmm), each time following the + * add by a right shift of the product. + * + * mmmm + * * abcd + * ------ + * #### = d * mmmm + * #### = c * mmmm + * #### = b * mmmm + * #### = a * mmmm + * -------- + * PPPPpppp + * + * The example above shows 4 partial products. Computing actual Nios II + * products requires 32 partials. + * + * It is possible to compute the result of mulxsu from the result of mulxuu + * because the only difference between the results of these two opcodes is + * the value of the partial product associated with the sign bit of rA. + * + * mulxsu = mulxuu - ((rA < 0) ? rB : 0); + * + * It is possible to compute the result of mulxss from the result of mulxsu + * because the only difference between the results of these two opcodes is + * the value of the partial product associated with the sign bit of rB. + * + * mulxss = mulxsu - ((rB < 0) ? rA : 0); + * + */ + +.Lmul_immed: + /* Opcode is muli. Change it into mul for remainder of algorithm. */ + mov r7, r6 /* Field B is dest register, not field C. */ + mov r6, r4 /* Field IMM16 is src2, not field B. */ + movi r4, 0x27 /* OPX of mul is 0x27 */ + +.Lmultiply: + /* Initialize the multiplication loop. */ + movi r9, 0 /* mul_product = 0 */ + movi r10, 0 /* mulxuu_product = 0 */ + mov r11, r6 /* save original multiplier for mulxsu and mulxss */ + mov r12, r6 /* mulxuu_multiplier (will be shifted) */ + movi r16, 1 /* used to create "rori B,A,1" from "ror B,A,r16" */ + + /* Now + * r3 = multiplicand + * r6 = mul_multiplier + * r7 = 4 * dest_register (used later as offset to sp) + * r9 = mul_product + * r10 = mulxuu_product + * r11 = original multiplier + * r12 = mulxuu_multiplier + * r14 = loop counter (already initialized) + * r15 = temp + * r16 = 1 + */ + + + /* + * for (count = 32; count > 0; --count) + * { + */ +.Lmultiply_loop: + + /* + * mul_product <<= 1; + * lsb = multiplier & 1; + */ + slli r9, r9, 1 + andi r15, r12, 1 + + /* + * if (lsb == 1) + * { + * mulxuu_product += multiplicand; + * } + */ + beq r15, zero, .Lmulx_skip + add r10, r10, r3 + cmpltu r15, r10, r3 /* Save the carry from the MSB of mulxuu_product. */ + ror r15, r15, r16 /* r15 = 0x80000000 on carry, or else 0x00000000 */ +.Lmulx_skip: + + /* + * if (MSB of mul_multiplier == 1) + * { + * mul_product += multiplicand; + * } + */ + bge r6, zero, .Lmul_skip + add r9, r9, r3 +.Lmul_skip: + + /* + * mulxuu_product >>= 1; logical shift + * mul_multiplier <<= 1; done with MSB + * mulx_multiplier >>= 1; done with LSB + */ + srli r10, r10, 1 + or r10, r10, r15 /* OR in the saved carry bit. */ + slli r6, r6, 1 + srli r12, r12, 1 + + + /* + * } + */ + subi r14, r14, 1 + bne r14, zero, .Lmultiply_loop + + + /* + * Multiply emulation loop done. + */ + + /* Now + * r3 = multiplicand + * r4 = OPX + * r7 = 4 * dest_register (used later as offset to sp) + * r9 = mul_product + * r10 = mulxuu_product + * r11 = original multiplier + * r15 = temp + */ + + + /* + * Select/compute the result based on OPX. + */ + + + /* OPX == mul? Then store. */ + xori r15, r4, 0x27 + beq r15, zero, .Lstore_result + + /* It's one of the mulx.. opcodes. Move over the result. */ + mov r9, r10 + + /* OPX == mulxuu? Then store. */ + xori r15, r4, 0x07 + beq r15, zero, .Lstore_result + + /* Compute mulxsu + * + * mulxsu = mulxuu - ((rA < 0) ? rB : 0); + */ + bge r3, zero, .Lmulxsu_skip + sub r9, r9, r11 +.Lmulxsu_skip: + + /* OPX == mulxsu? Then store. */ + xori r15, r4, 0x17 + beq r15, zero, .Lstore_result + + /* Compute mulxss + * + * mulxss = mulxsu - ((rB < 0) ? rA : 0); + */ + bge r11, zero, .Lmulxss_skip + sub r9, r9, r3 +.Lmulxss_skip: + /* At this point, assume that OPX is mulxss, so store */ + + +.Lstore_result: + add r7, r7, sp + stw r9, 0(r7) + + ldw r16, 0(sp) + ldw r17, 4(sp) + ldw r18, 8(sp) + ldw r19, 12(sp) + ldw r20, 16(sp) + ldw r21, 20(sp) + ldw r22, 24(sp) + ldw r23, 28(sp) + + /* bt @ 32 - Breakpoint register usually isn't an operand. */ + /* et @ 36 - Don't corrupt et. */ + /* gp @ 40 - Don't corrupt gp. */ + /* sp @ 44 - Don't corrupt sp. */ + ldw fp, 48(sp) + /* ea @ 52 - Don't corrupt ea. */ + /* ba @ 56 - Breakpoint register usually isn't an operand. */ + + addi sp, sp, 60 + + br .Lexception_exit + + +.Lnot_muldiv: + + addi sp, sp, 60 + + + .section .exceptions.exit.label +.Lexception_exit: + diff --git a/software/qsys_tutorial_key3_bsp/HAL/src/alt_exception_trap.S b/software/qsys_tutorial_key3_bsp/HAL/src/alt_exception_trap.S new file mode 100644 index 0000000..60a3d40 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/HAL/src/alt_exception_trap.S @@ -0,0 +1,81 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003-2005 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + + /* + * This is the trap exception handler for Nios2. + */ + + /* + * Provide a label which can be used to pull this file in. + */ + + .section .exceptions.start + .globl alt_exception_trap +alt_exception_trap: + + /* + * Pull in the entry/exit code. + */ + .globl alt_exception + + .section .exceptions.soft, "xa" + +.Ltrap_handler: + + /* + * Did a trap instruction cause the exception? + * + * The instruction which the exception occurred on has been loaded + * into r2 by code in alt_exception_entry.S + * + */ + + movhi r3,0x003b /* upper half of trap opcode */ + ori r3,r3,0x683a /* lower half of trap opcode */ + bne r2,r3,.Lnot_trap + + /* + * There is no trap handler defined here, and so executing a trap + * instruction causes a software break. If you provide a trap handler, + * then you must replace the break instruction below with your handler. + * Your handler must preserve ea and the usual callee saved registers. + */ + + break + + br .Lexception_exit + +.Lnot_trap: + + + .section .exceptions.exit.label +.Lexception_exit: + + diff --git a/software/qsys_tutorial_key3_bsp/HAL/src/alt_execve.c b/software/qsys_tutorial_key3_bsp/HAL/src/alt_execve.c new file mode 100644 index 0000000..27b99cf --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/HAL/src/alt_execve.c @@ -0,0 +1,55 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_errno.h" +#include "sys/alt_warning.h" +#include "os/alt_syscall.h" + +/* + * execve() is used by newlib to launch new processes. This is unsupported in + * the HAL environment. However a "do-nothing" implementation is still + * provied for newlib compatability. + * + * ALT_EXECVE is mapped onto the execve() system call in alt_syscall.h + */ + +int ALT_EXECVE (char *name, char ** argv, char** env) +{ + /* Generate a link time warning, should this function ever be called. */ + + ALT_STUB_WARNING(execve); + + /* Indicate an error */ + + ALT_ERRNO = ENOSYS; + return -1; +} diff --git a/software/qsys_tutorial_key3_bsp/HAL/src/alt_exit.c b/software/qsys_tutorial_key3_bsp/HAL/src/alt_exit.c new file mode 100644 index 0000000..971b35e --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/HAL/src/alt_exit.c @@ -0,0 +1,71 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_irq.h" +#include "sys/alt_sim.h" +#include "os/alt_hooks.h" +#include "os/alt_syscall.h" + +#include "alt_types.h" +#include "sys/alt_log_printf.h" +/* + * _exit() is called by exit() in order to terminate the current process. + * Typically this is called when main() completes. It should never return. + * Since there is nowhere to go once this process completes, this + * implementation simply blocks forever. + * + * Note that interrupts are not disabled so that execution outside of this + * thread is allowed to continue. + * + * ALT_EXIT is mapped onto the _exit() system call in alt_syscall.h + */ + +void ALT_EXIT (int exit_code) +{ + /* ALT_LOG - please see HAL/inc/alt_log_printf.h for details */ + ALT_LOG_PRINT_BOOT("[alt_exit.c] Entering _exit() function.\r\n"); + ALT_LOG_PRINT_BOOT("[alt_exit.c] Exit code from main was %d.\r\n",exit_code); + /* Stop all other threads */ + + ALT_LOG_PRINT_BOOT("[alt_exit.c] Calling ALT_OS_STOP().\r\n"); + ALT_OS_STOP(); + + /* Provide notification to the simulator that we've stopped */ + + ALT_LOG_PRINT_BOOT("[alt_exit.c] Calling ALT_SIM_HALT().\r\n"); + ALT_SIM_HALT(exit_code); + + /* spin forever, since there's no where to go back to */ + + ALT_LOG_PRINT_BOOT("[alt_exit.c] Spinning forever.\r\n"); + while (1); +} diff --git a/software/qsys_tutorial_key3_bsp/HAL/src/alt_fcntl.c b/software/qsys_tutorial_key3_bsp/HAL/src/alt_fcntl.c new file mode 100644 index 0000000..69c1544 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/HAL/src/alt_fcntl.c @@ -0,0 +1,101 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include + +#include +#include + +#include "sys/alt_errno.h" +#include "priv/alt_file.h" +#include "alt_types.h" +#include "os/alt_syscall.h" + +#define ALT_FCNTL_FLAGS_MASK ((alt_u32) (O_APPEND | O_NONBLOCK)) + +/* + * fcntl() is a limited implementation of the standard fcntl() system call. + * It can be used to change the state of the flags associated with an open + * file descriptor. Normally these flags are set during the call to + * open(). It is anticipated that the main use of this function will be to + * change the state of a device from blocking to non-blocking (where this is + * supported). + * + * The input argument "fd" is the file descriptor to be manipulated. "cmd" + * is the command to execute. This can be either F_GETFL (return the + * current value of the flags) or F_SETFL (set the value of the flags). + * + * If "cmd" is F_SETFL then the argument "arg" is the new value of flags, + * otherwise "arg" is ignored. Only the flags: O_APPEND and O_NONBLOCK + * can be updated by a call to fcntl(). All other flags remain + * unchanged. + * + * ALT_FCNTL is mapped onto the fcntl() system call in alt_syscall.h + */ + +int ALT_FCNTL (int file, int cmd, ...) +{ + alt_fd* fd; + long flags; + va_list argp; + + /* + * A common error case is that when the file descriptor was created, the call + * to open() failed resulting in a negative file descriptor. This is trapped + * below so that we don't try and process an invalid file descriptor. + */ + + fd = (file < 0) ? NULL : &alt_fd_list[file]; + + if (fd) + { + switch (cmd) + { + case F_GETFL: + return fd->fd_flags & ~((alt_u32) ALT_FD_FLAGS_MASK); + case F_SETFL: + va_start(argp, cmd); + flags = va_arg(argp, long); + fd->fd_flags &= ~ALT_FCNTL_FLAGS_MASK; + fd->fd_flags |= (flags & ALT_FCNTL_FLAGS_MASK); + va_end(argp); + return 0; + default: + ALT_ERRNO = EINVAL; + return -1; + } + } + + ALT_ERRNO = EBADFD; + return -1; +} diff --git a/software/qsys_tutorial_key3_bsp/HAL/src/alt_fd_lock.c b/software/qsys_tutorial_key3_bsp/HAL/src/alt_fd_lock.c new file mode 100644 index 0000000..0e2a85d --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/HAL/src/alt_fd_lock.c @@ -0,0 +1,75 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +#include "priv/alt_file.h" + +/* + * alt_fd_lock() is called as a consequence of an ioctl call to gain exclusive + * access to a device, i.e.: + * + * ioctl (fd, TIOCEXCL, NULL); + * + * If there are no other open file descriptors which reference the same + * device, then alt_fd_lock() will grant the lock. Further calls to open() + * for this device will fail until the lock is released. + * + * This is done by calling close() for this file descriptor, or by calling: + * + * ioctl (fd, TIOCNXCL, NULL); + * + * The return value is zero for success, or negative in the case of failure. + */ + +int alt_fd_lock (alt_fd* fd) +{ + int i; + int rc = 0; + + ALT_SEM_PEND(alt_fd_list_lock, 0); + + for (i = 0; i < alt_max_fd; i++) + { + if ((&alt_fd_list[i] != fd) && (alt_fd_list[i].dev == fd->dev)) + { + rc = -EACCES; + goto alt_fd_lock_exit; + } + } + fd->fd_flags |= ALT_FD_EXCL; + + alt_fd_lock_exit: + + ALT_SEM_POST(alt_fd_list_lock); + return rc; +} diff --git a/software/qsys_tutorial_key3_bsp/HAL/src/alt_fd_unlock.c b/software/qsys_tutorial_key3_bsp/HAL/src/alt_fd_unlock.c new file mode 100644 index 0000000..fb700dc --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/HAL/src/alt_fd_unlock.c @@ -0,0 +1,56 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +#include "priv/alt_file.h" + +/* + * alt_fd_unlock() is the inverse of alt_fd_lock(). It is called as a + * consequence of a TIOCNXCL ioctl request, e.g: + * + * ioctl (fd, TIOCNXCL, NULL); + * + * It enables multiple file descriptors to exist for the same device. This + * is normally the case, but it may have been disabled by a previous call to + * alt_fd_lock(). + * + * Return zero on sucess, and a negative value on failure. + * + * The current implementation always succeeds. + */ + +int alt_fd_unlock (alt_fd* fd) +{ + fd->fd_flags &= ~ALT_FD_EXCL; + return 0; +} diff --git a/software/qsys_tutorial_key3_bsp/HAL/src/alt_find_dev.c b/software/qsys_tutorial_key3_bsp/HAL/src/alt_find_dev.c new file mode 100644 index 0000000..37aefa4 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/HAL/src/alt_find_dev.c @@ -0,0 +1,88 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include +#include + +#include "sys/alt_dev.h" +#include "priv/alt_file.h" + +#include "alt_types.h" + +/* + * alt_find_dev() is used by open() in order to locate a previously registered + * device with the name "name". The input argument "llist" is a pointer to the + * head of the device list to search. + * + * The return value is a pointer to the matching device, or NULL if there is + * no match. + * + * "name" must be an exact match for the devices registered name for a match to + * be found. + */ + +alt_dev* alt_find_dev(const char* name, alt_llist* llist) +{ + alt_dev* next = (alt_dev*) llist->next; + alt_32 len; + + len = strlen(name) + 1; + + /* + * Check each list entry in turn, until a match is found, or we reach the + * end of the list (i.e. next winds up pointing back to the list head). + */ + + while (next != (alt_dev*) llist) + { + + /* + * memcmp() is used here rather than strcmp() in order to reduce the size + * of the executable. + */ + + if (!memcmp (next->name, name, len)) + { + /* match found */ + + return next; + } + next = (alt_dev*) next->llist.next; + } + + /* No match found */ + + return NULL; +} + + diff --git a/software/qsys_tutorial_key3_bsp/HAL/src/alt_find_file.c b/software/qsys_tutorial_key3_bsp/HAL/src/alt_find_file.c new file mode 100644 index 0000000..2d97ec2 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/HAL/src/alt_find_file.c @@ -0,0 +1,89 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include +#include + +#include "sys/alt_dev.h" +#include "priv/alt_file.h" + +#include "alt_types.h" + +/* + * alt_find_file() is used by open() in order to locate a previously registered + * filesystem that owns that mount point that contains the file named "name". + * + * The return value is a pointer to the matching filesystem, or NULL if there is + * no match. + * + * A match is considered to have been found if the filesystem name followed by + * either '/' or '\0' is the prefix of the filename. For example the filename: + * "/myfilesystem/junk.txt" would match: "/myfilesystem", but not: "/myfile". + */ + +alt_dev* alt_find_file (const char* name) +{ + alt_dev* next = (alt_dev*) alt_fs_list.next; + + alt_32 len; + + /* + * Check each list entry in turn, until a match is found, or we reach the + * end of the list (i.e. next winds up pointing back to the list head). + */ + + while (next != (alt_dev*) &alt_fs_list) + { + len = strlen(next->name); + + if (next->name[len-1] == '/') + { + len -= 1; + } + + if (((name[len] == '/') || (name[len] == '\0')) && + !memcmp (next->name, name, len)) + { + /* match found */ + + return next; + } + next = (alt_dev*) next->llist.next; + } + + /* No match found */ + + return NULL; +} + + diff --git a/software/qsys_tutorial_key3_bsp/HAL/src/alt_flash_dev.c b/software/qsys_tutorial_key3_bsp/HAL/src/alt_flash_dev.c new file mode 100644 index 0000000..213f721 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/HAL/src/alt_flash_dev.c @@ -0,0 +1,69 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* Alt_flash.c - Functions to register a flash device to the "generic" flash * +* interface * +* * +* Author PRR * +* * +******************************************************************************/ + +#include +#include "sys/alt_llist.h" +#include "sys/alt_flash_dev.h" +#include "priv/alt_file.h" + +ALT_LLIST_HEAD(alt_flash_dev_list); + +alt_flash_fd* alt_flash_open_dev(const char* name) +{ + alt_flash_dev* dev = (alt_flash_dev*)alt_find_dev(name, &alt_flash_dev_list); + + if ((dev) && dev->open) + { + return dev->open(dev, name); + } + + return dev; +} + +void alt_flash_close_dev(alt_flash_fd* fd) +{ + if (fd && fd->close) + { + fd->close(fd); + } + return; +} + diff --git a/software/qsys_tutorial_key3_bsp/HAL/src/alt_fork.c b/software/qsys_tutorial_key3_bsp/HAL/src/alt_fork.c new file mode 100644 index 0000000..ce74df0 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/HAL/src/alt_fork.c @@ -0,0 +1,57 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_warning.h" +#include "sys/alt_errno.h" +#include "os/alt_syscall.h" + +/* + * The fork() system call is used by newlib to create a duplicate copy of the + * curent process. This is unsupported in the HAL environment. However a + * "do-nothing" implementation is still provied for newlib compatability. + * + * ALT_FORK is mapped onto the fork() system call in alt_syscall.h + */ + +int ALT_FORK (void) +{ + /* Generate a link time warning, should this function ever be called. */ + + ALT_STUB_WARNING(fork); + + /* Indicate an error */ + + ALT_ERRNO = ENOSYS; + return -1; +} + + diff --git a/software/qsys_tutorial_key3_bsp/HAL/src/alt_fs_reg.c b/software/qsys_tutorial_key3_bsp/HAL/src/alt_fs_reg.c new file mode 100644 index 0000000..13437a1 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/HAL/src/alt_fs_reg.c @@ -0,0 +1,75 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +#include "sys/alt_dev.h" +#include "priv/alt_file.h" + +/* + * The alt_fs_reg() function is used to register a file system. Once registered + * a device can be accessed using the standard posix calls: open(), read(), + * write() etc. + * + * System behaviour is undefined in the event that a file system is registered + * with a name that conflicts with an existing device or file system. + * + * alt_fs_reg() is not thread safe in the sense that there should be no other + * thread using the file system list at the time that alt_dev_reg() is called. In + * practice this means that alt_fs_reg() should only be called while operating + * in a single threaded mode. The expectation is that it will only be called + * by the file system initilisation functions invoked by alt_sys_init(), which in + * turn should only be called by the single threaded C startup code. + * + * A return value of zero indicates success. A negative return value indicates + * failure. + */ + +int alt_fs_reg (alt_dev* dev) +{ + /* + * check that the device has a name. + */ + + if (!dev->name) + { + return -ENODEV; + } + + /* + * register the file system. + */ + + alt_llist_insert(&alt_fs_list, &dev->llist); + + return 0; +} diff --git a/software/qsys_tutorial_key3_bsp/HAL/src/alt_fstat.c b/software/qsys_tutorial_key3_bsp/HAL/src/alt_fstat.c new file mode 100644 index 0000000..af5d527 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/HAL/src/alt_fstat.c @@ -0,0 +1,128 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include + +#include "sys/alt_dev.h" +#include "sys/alt_warning.h" +#include "sys/alt_errno.h" +#include "priv/alt_file.h" +#include "os/alt_syscall.h" + +/* + * The fstat() system call is used to obtain information about the capabilities + * of an open file descriptor. By default file descriptors are marked as + * being character devices. If a device or file system wishes to advertise + * alternative capabilities then they can register an fstat() function within + * their associated alt_dev structure. This will be called to fill in the + * entries in the imput "st" structure. + * + * This function is provided for compatability with newlib. + * + * ALT_FSTAT is mapped onto the fstat() system call in alt_syscall.h + */ + +#ifdef ALT_USE_DIRECT_DRIVERS + +#include "system.h" + +/* + * Provide minimal version that just describes all file descriptors + * as character devices for provided stdio devices. + */ +int ALT_FSTAT (int file, struct stat *st) +{ + switch (file) { +#ifdef ALT_STDIN_PRESENT + case 0: /* stdin file descriptor */ +#endif /* ALT_STDIN_PRESENT */ +#ifdef ALT_STDOUT_PRESENT + case 1: /* stdout file descriptor */ +#endif /* ALT_STDOUT_PRESENT */ +#ifdef ALT_STDERR_PRESENT + case 2: /* stderr file descriptor */ +#endif /* ALT_STDERR_PRESENT */ + st->st_mode = _IFCHR; + return 0; + default: + return -1; + } + +#if !defined(ALT_STDIN_PRESENT) && !defined(ALT_STDOUT_PRESENT) && !defined(ALT_STDERR_PRESENT) + /* Generate a link time warning, should this function ever be called. */ + ALT_STUB_WARNING(fstat); +#endif +} + +#else /* !ALT_USE_DIRECT_DRIVERS */ + +int ALT_FSTAT (int file, struct stat *st) +{ + alt_fd* fd; + + /* + * A common error case is that when the file descriptor was created, the call + * to open() failed resulting in a negative file descriptor. This is trapped + * below so that we don't try and process an invalid file descriptor. + */ + + fd = (file < 0) ? NULL : &alt_fd_list[file]; + + if (fd) + { + /* Call the drivers fstat() function to fill out the "st" structure. */ + + if (fd->dev->fstat) + { + return fd->dev->fstat(fd, st); + } + + /* + * If no function is provided, mark the fd as belonging to a character + * device. + */ + + else + { + st->st_mode = _IFCHR; + return 0; + } + } + else + { + ALT_ERRNO = EBADFD; + return -1; + } +} + +#endif /* ALT_USE_DIRECT_DRIVERS */ diff --git a/software/qsys_tutorial_key3_bsp/HAL/src/alt_get_fd.c b/software/qsys_tutorial_key3_bsp/HAL/src/alt_get_fd.c new file mode 100644 index 0000000..db17b2c --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/HAL/src/alt_get_fd.c @@ -0,0 +1,105 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include +#include + +#include "sys/alt_dev.h" +#include "priv/alt_file.h" + +#include "alt_types.h" + +#include "system.h" + +/* + * alt_get_fd() is called to allocate a new file descriptor from the file + * descriptor pool. If a file descriptor is succesfully allocated, it is + * configured to refer to device "dev". + * + * The return value is the index of the file descriptor structure (i.e. + * the offset of the file descriptor within the file descriptor array). A + * negative value indicates failure. + */ + +int alt_get_fd (alt_dev* dev) +{ + alt_32 i; + int rc = -EMFILE; + + /* + * Take the alt_fd_list_lock semaphore in order to avoid races when + * accessing the file descriptor pool. + */ + + ALT_SEM_PEND(alt_fd_list_lock, 0); + + /* + * Search through the list of file descriptors, and allocate the first + * free descriptor that's found. + * + * If a free descriptor is found, then the value of "alt_max_fd" is + * updated accordingly. "alt_max_fd" is a 'highwater mark' which + * indicates the highest file descriptor ever allocated. This is used to + * improve efficency when searching the file descriptor list, and + * therefore reduce contention on the alt_fd_list_lock semaphore. + */ + + for (i = 0; i < ALT_MAX_FD; i++) + { + if (!alt_fd_list[i].dev) + { + alt_fd_list[i].dev = dev; + if (i > alt_max_fd) + { + alt_max_fd = i; + } + rc = i; + goto alt_get_fd_exit; + } + } + + alt_get_fd_exit: + + /* + * Release the alt_fd_list_lock semaphore now that we are done with the + * file descriptor pool. + */ + + ALT_SEM_POST(alt_fd_list_lock); + + return rc; +} + + + + diff --git a/software/qsys_tutorial_key3_bsp/HAL/src/alt_getchar.c b/software/qsys_tutorial_key3_bsp/HAL/src/alt_getchar.c new file mode 100644 index 0000000..a8f50d5 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/HAL/src/alt_getchar.c @@ -0,0 +1,61 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +#ifdef ALT_USE_DIRECT_DRIVERS +#include "system.h" +#include "sys/alt_driver.h" +#include "sys/alt_stdio.h" +#include "priv/alt_file.h" +#include "unistd.h" +#endif + +/* + * Uses the ALT_DRIVER_READ() macro to call directly to driver if available. + * Otherwise, uses newlib provided getchar() routine. + */ +int +alt_getchar(void) +{ +#ifdef ALT_USE_DIRECT_DRIVERS + ALT_DRIVER_READ_EXTERNS(ALT_STDIN_DEV); + char c; + + if (ALT_DRIVER_READ(ALT_STDIN_DEV, &c, 1, alt_fd_list[STDIN_FILENO].fd_flags) <= 0) { + return -1; + } + return c; +#else + return getchar(); +#endif +} diff --git a/software/qsys_tutorial_key3_bsp/HAL/src/alt_getpid.c b/software/qsys_tutorial_key3_bsp/HAL/src/alt_getpid.c new file mode 100644 index 0000000..2228c7e --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/HAL/src/alt_getpid.c @@ -0,0 +1,47 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "os/alt_syscall.h" + +/* + * The getpid() system call is used by newlib to obtain the current process + * id. Since there is only ever a single process in the HAL environment, + * this just returns a constant. + * + * ALT_GETPID is mapped onto the getpid() system call in alt_syscall.h + */ + +int ALT_GETPID (void) +{ + return 0; +} + diff --git a/software/qsys_tutorial_key3_bsp/HAL/src/alt_gettod.c b/software/qsys_tutorial_key3_bsp/HAL/src/alt_gettod.c new file mode 100644 index 0000000..ed86cba --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/HAL/src/alt_gettod.c @@ -0,0 +1,125 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include +#include + +#include "sys/alt_alarm.h" +#include "alt_types.h" +#include "os/alt_syscall.h" + +/* + * Macro defining the number of micoseconds in a second. + */ + +#define ALT_US (1000000) + +/* + * "alt_timezone" and "alt_resettime" are the values of the the reset time and + * time zone set through the last call to settimeofday(). By default they are + * zero initialised. + */ + +struct timezone alt_timezone = {0, 0}; +struct timeval alt_resettime = {0, 0}; + +/* + * gettimeofday() can be called to obtain a time structure which indicates the + * current "wall clock" time. This is calculated using the elapsed number of + * system clock ticks, and the value of "alt_resettime" and "alt_timezone" set + * through the last call to settimeofday(). + * + * Warning: if this function is called concurrently with a call to + * settimeofday(), the value returned by gettimeofday() will be unreliable. + * + * ALT_GETTIMEOFDAY is mapped onto the gettimeofday() system call in + * alt_syscall.h + */ + + +#if defined (__GNUC__) && (__GNUC__ >= 4) +int ALT_GETTIMEOFDAY (struct timeval *ptimeval, void *ptimezone_vptr) +{ + struct timezone *ptimezone = (struct timezone*)ptimezone_vptr; +#else +int ALT_GETTIMEOFDAY (struct timeval *ptimeval, struct timezone *ptimezone) +{ +#endif + + alt_u32 nticks = alt_nticks (); + alt_u32 tick_rate = alt_ticks_per_second (); + + /* + * Check to see if the system clock is running. This is indicated by a + * non-zero system clock rate. If the system clock is not running, an error + * is generated and the contents of "ptimeval" and "ptimezone" are not + * updated. + */ + + if (tick_rate) + { + ptimeval->tv_sec = alt_resettime.tv_sec + nticks/tick_rate; + ptimeval->tv_usec = alt_resettime.tv_usec + + (alt_u32)(((alt_u64)nticks*(ALT_US/tick_rate))%ALT_US); + + while(ptimeval->tv_usec < 0) { + if (ptimeval->tv_sec <= 0) + { + ptimeval->tv_sec = 0; + ptimeval->tv_usec = 0; + break; + } + else + { + ptimeval->tv_sec--; + ptimeval->tv_usec += ALT_US; + } + } + + while(ptimeval->tv_usec >= ALT_US) { + ptimeval->tv_sec++; + ptimeval->tv_usec -= ALT_US; + } + + if (ptimezone) + { + ptimezone->tz_minuteswest = alt_timezone.tz_minuteswest; + ptimezone->tz_dsttime = alt_timezone.tz_dsttime; + } + + return 0; + } + + return -ENOTSUP; +} + diff --git a/software/qsys_tutorial_key3_bsp/HAL/src/alt_gmon.c b/software/qsys_tutorial_key3_bsp/HAL/src/alt_gmon.c new file mode 100644 index 0000000..6add9f1 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/HAL/src/alt_gmon.c @@ -0,0 +1,272 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003-2005 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include +#include +#include + +#include "priv/nios2_gmon_data.h" + +#include "sys/alt_irq.h" +#include "sys/alt_alarm.h" + + +/* Macros */ + +/* How large should the bins be which we use to generate the histogram */ +#define PCSAMPLE_BYTES_PER_BUCKET 32 + +#define NIOS2_READ_EA(dest) __asm__ ("mov %0, ea" : "=r" (dest)) + +/* The compiler inserts calls to mcount() at the start of + * every function call. The structure mcount_fn_arc records t + * he return address of the function called (in from_pc) + * and the return address of the mcount function + * (in self_pc). The number of times this arc is executed is + * recorded in the field count. + */ +struct mcount_fn_arc +{ + struct mcount_fn_arc * next; + void * from_pc; + unsigned int count; +}; + +/* We need to maintain a list of pointers to the heads of each adjacency + * list so that we can find them when writing out the gmon.out file. Since + * we don't know at the start of program execution how many functions will + * be called we use a list structure to do this. + */ +struct mcount_fn_entry +{ + struct mcount_fn_entry * next; + void * self_pc; + struct mcount_fn_arc * arc_head; +}; + +/* function prototypes */ + +void __mcount_record(void * self_pc, void * from_pc, struct mcount_fn_entry * fn_entry, struct mcount_fn_entry * * fn_head) __attribute__ ((no_instrument_function)); + +static __inline__ void * mcount_allocate(unsigned int size) __attribute__ ((no_instrument_function)); +static int nios2_pcsample_init(void) __attribute__ ((no_instrument_function)); +static alt_u32 nios2_pcsample(void* alarm) __attribute__ ((no_instrument_function)); + +/* global variables */ + +/* stext and etext are defined in the linker script */ +extern char stext[]; +extern char etext[]; + +/* Is the PC sampling stuff enabled yet? */ +static int pcsample_need_init = 1; + +#define HASH_BUCKETS 64 /* Must be a power of 2 */ + +/* This points to the list of adjacency list pointers. */ +struct mcount_fn_entry * __mcount_fn_head[HASH_BUCKETS]; + +/* pointer to the in-memory buffer containing the histogram */ +static unsigned short* s_pcsamples = 0; + +/* the address of the start and end of text section */ +static const unsigned int s_low_pc = (unsigned int)stext; +static const unsigned int s_high_pc = (unsigned int)etext; + +/* the alarm structure to register for pc sampling */ +static alt_alarm s_nios2_pcsample_alarm; + +unsigned int alt_gmon_data[GMON_DATA_SIZE] = +{ + 0x6e6f6d67, /* "gmon" */ + GMON_DATA_SIZE, + 0, + (unsigned int)stext, + (unsigned int)etext, + PCSAMPLE_BYTES_PER_BUCKET, + 0, + (unsigned int)__mcount_fn_head, + (unsigned int)(__mcount_fn_head + HASH_BUCKETS) +}; + +/* This holds the current slab of memory we're allocating out of */ +static char * mcount_slab_ptr = 0; +static int mcount_slab_size = 0; + +#define MCOUNT_SLAB_INCREMENT 1020 + + +/* + * We can't use malloc to allocate memory because that's too complicated, and + * can't be called at interrupt time. Use the lower level allocator instead + * because that's interrupt safe (and because we never free anything). + * + * For speed, we allocate a block of data at once. + */ +static __inline__ void * mcount_allocate(unsigned int size) +{ + void * data; + + if (size > mcount_slab_size) + { + mcount_slab_ptr = sbrk(MCOUNT_SLAB_INCREMENT); + mcount_slab_size = MCOUNT_SLAB_INCREMENT; + } + + data = mcount_slab_ptr; + mcount_slab_ptr += size; + mcount_slab_size -= size; + + return data; +} + + +/* + * Add the arc with the values of frompc and topc given to the graph. + * This function might be called at interrupt time so must be able to + * cope with reentrancy. + * + * The fast case, where we have already allocated a function arc, has been + * handled by the assmebler code. + */ +void __mcount_record(void * self_pc, void * from_pc, struct mcount_fn_entry * fn_entry, struct mcount_fn_entry * * fn_head) +{ + alt_irq_context context; + struct mcount_fn_arc * arc_entry; + + /* Keep trying to start up the PC sampler until it is running. + * (It can't start until the timer is going). + */ + if (pcsample_need_init) + { + pcsample_need_init = 0; + pcsample_need_init = nios2_pcsample_init(); + } + + /* + * We must disable interrupts around the allocation and the list update to + * prevent corruption if the instrumented function is re-entrant. + * + * It's safe for the code above to be stepping through the chain and be + * interrupted by this code modifying it - there is an edge case which will + * leave two copies of the same arc on the list (both with count=1), but + * this is dealt with on the host. + */ + context = alt_irq_disable_all(); + + if (fn_entry == NULL) + { + /* Add it to the list of functions we must output later. */ + fn_entry = (struct mcount_fn_entry *)mcount_allocate(sizeof(struct mcount_fn_entry)); + + fn_entry->self_pc = self_pc; + fn_entry->arc_head = NULL; + + fn_entry->next = *fn_head; + *fn_head = fn_entry; + } + + /* We will need a new list entry - if there was a list entry before + * then the assembler code would have handled it. */ + arc_entry = (struct mcount_fn_arc *)mcount_allocate(sizeof(struct mcount_fn_arc)); + + arc_entry->from_pc = from_pc; + arc_entry->count = 1; + + arc_entry->next = fn_entry->arc_head; + fn_entry->arc_head = arc_entry; + + alt_irq_enable_all(context); +} + + +/* + * nios2_pcsample_init starts profiling. + * It is called the first time mcount is called, and on subsequent calls to + * mcount until it returns zero. It initializes the pc histogram and turns on + * timer driven pc sampling. + */ +static int nios2_pcsample_init(void) +{ + unsigned int pcsamples_size; + + /* We sample the PC every tick */ + unsigned int prof_rate = alt_ticks_per_second(); + if (prof_rate == 0) + return 1; + + /* allocate the histogram buffer s_pcsamples */ + pcsamples_size = (s_high_pc - s_low_pc)/PCSAMPLE_BYTES_PER_BUCKET; + s_pcsamples = (unsigned short*)sbrk(pcsamples_size * sizeof(unsigned short)); + + if (s_pcsamples != 0) + { + /* initialize the buffer to zero */ + memset(s_pcsamples, 0, pcsamples_size * sizeof(unsigned short)); + + alt_gmon_data[GMON_DATA_PROFILE_DATA] = (int)s_pcsamples; + alt_gmon_data[GMON_DATA_PROFILE_RATE] = prof_rate; + + /* Sample every tick (it's cheap) */ + alt_alarm_start(&s_nios2_pcsample_alarm, 1, nios2_pcsample, 0); + } + + return 0; +} + + +/* + * Sample the PC value and store it in the histogram + */ +static alt_u32 nios2_pcsample(void* context) +{ + unsigned int pc; + unsigned int bucket; + + /* read the exception return address - this will be + * inaccurate if there are nested interrupts but we + * assume that this is rare and the inaccuracy will + * not be great */ + NIOS2_READ_EA(pc); + + /* + * If we're within the profilable range then increment the relevant + * bucket in the histogram + */ + if (pc >= s_low_pc && pc < s_high_pc && s_pcsamples != 0) + { + bucket = (pc - s_low_pc)/PCSAMPLE_BYTES_PER_BUCKET; + s_pcsamples[bucket]++; + } + + /* Sample every tick */ + return 1; +} + diff --git a/software/qsys_tutorial_key3_bsp/HAL/src/alt_icache_flush.c b/software/qsys_tutorial_key3_bsp/HAL/src/alt_icache_flush.c new file mode 100644 index 0000000..4b706ed --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/HAL/src/alt_icache_flush.c @@ -0,0 +1,84 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "nios2.h" +#include "system.h" + +#include "alt_types.h" +#include "sys/alt_cache.h" + +/* + * alt_icache_flush() is called to flush the instruction cache for a memory + * region of length "len" bytes, starting at address "start". + */ + +void alt_icache_flush (void* start, alt_u32 len) +{ +#if NIOS2_ICACHE_SIZE > 0 + + char* i; + char* end; + + /* + * This is the most we would ever need to flush. + */ + + if (len > NIOS2_ICACHE_SIZE) + { + len = NIOS2_ICACHE_SIZE; + } + + end = ((char*) start) + len; + + for (i = start; i < end; i+= NIOS2_ICACHE_LINE_SIZE) + { + __asm__ volatile ("flushi %0" :: "r" (i)); + } + + /* + * For an unaligned flush request, we've got one more line left. + * Note that this is dependent on NIOS2_ICACHE_LINE_SIZE to be a + * multiple of 2 (which it always is). + */ + + if (((alt_u32) start) & (NIOS2_ICACHE_LINE_SIZE - 1)) + { + __asm__ volatile ("flushi %0" :: "r" (i)); + } + + /* + * Having flushed the cache, flush any stale instructions in the + * pipeline + */ + + __asm__ volatile ("flushp"); + +#endif /* NIOS2_ICACHE_SIZE > 0 */ +} diff --git a/software/qsys_tutorial_key3_bsp/HAL/src/alt_icache_flush_all.c b/software/qsys_tutorial_key3_bsp/HAL/src/alt_icache_flush_all.c new file mode 100644 index 0000000..5088552 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/HAL/src/alt_icache_flush_all.c @@ -0,0 +1,46 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "nios2.h" +#include "system.h" + +#include "alt_types.h" +#include "sys/alt_cache.h" + +/* + * alt_icache_flush_all() is called to flush the entire instruction cache. + */ + +void alt_icache_flush_all (void) +{ +#if NIOS2_ICACHE_SIZE > 0 + alt_icache_flush (0, NIOS2_ICACHE_SIZE); +#endif +} diff --git a/software/qsys_tutorial_key3_bsp/HAL/src/alt_iic.c b/software/qsys_tutorial_key3_bsp/HAL/src/alt_iic.c new file mode 100644 index 0000000..1db5afa --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/HAL/src/alt_iic.c @@ -0,0 +1,106 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2009 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ +#include "system.h" + +/* + * This file implements the HAL Enhanced interrupt API for Nios II processors + * with an internal interrupt controller (IIC). For most routines, this serves + * as a wrapper layer over the legacy interrupt API (which must be used with + * the IIC only). + * + * Use of the enhanced API is recommended so that application and device + * drivers are compatible with a Nios II system configured with an external + * interrupt controller (EIC), or IIC. This will afford maximum portability. + * + * If an EIC is present, the EIC device driver must provide these routines, + * because their operation will be specific to that EIC type. + */ +#ifndef NIOS2_EIC_PRESENT +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT + +#include "sys/alt_irq.h" +#include "priv/alt_iic_isr_register.h" +#include "priv/alt_legacy_irq.h" + +/** @Function Description: This function registers an interrupt handler. + * If the function is succesful, then the requested interrupt will be enabled upon + * return. Registering a NULL handler will disable the interrupt. + * @API Type: External + * @param ic_id Ignored. + * @param irq IRQ number + * @return 0 if successful, else error (-1) + */ +int alt_ic_isr_register(alt_u32 ic_id, alt_u32 irq, alt_isr_func isr, + void *isr_context, void *flags) +{ + return alt_iic_isr_register(ic_id, irq, isr, isr_context, flags); +} + +/** @Function Description: This function enables a single interrupt. + * @API Type: External + * @param ic_id Ignored. + * @param irq IRQ number + * @return 0 if successful, else error (-1) + */ +int alt_ic_irq_enable (alt_u32 ic_id, alt_u32 irq) +{ + return alt_irq_enable(irq); +} + +/** @Function Description: This function disables a single interrupt. + * @API Type: External + * @param ic_id Ignored. + * @param irq IRQ number + * @return 0 if successful, else error (-1) + */ +int alt_ic_irq_disable(alt_u32 ic_id, alt_u32 irq) +{ + return alt_irq_disable(irq); +} + +/** @Function Description: This function to determine if corresponding + * interrupt is enabled. + * @API Type: External + * @param ic_id Ignored. + * @param irq IRQ number + * @return Zero if corresponding interrupt is disabled and + * non-zero otherwise. + */ +alt_u32 alt_ic_irq_enabled(alt_u32 ic_id, alt_u32 irq) +{ + alt_u32 irq_enabled; + + NIOS2_READ_IENABLE(irq_enabled); + + return (irq_enabled & (1 << irq)) ? 1: 0; +} + +#endif /* ALT_ENHANCED_INTERRUPT_API_PRESENT */ +#endif /* NIOS2_EIC_PRESENT */ diff --git a/software/qsys_tutorial_key3_bsp/HAL/src/alt_iic_isr_register.c b/software/qsys_tutorial_key3_bsp/HAL/src/alt_iic_isr_register.c new file mode 100644 index 0000000..b104395 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/HAL/src/alt_iic_isr_register.c @@ -0,0 +1,104 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2009 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ +#include +#include "system.h" + +/* + * Provides an interrupt registry mechanism for the any CPUs internal interrupt + * controller (IIC) when the enhanced interrupt API is active. + */ +#ifndef ALT_CPU_EIC_PRESENT +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT + +#include "alt_types.h" +#include "sys/alt_irq.h" +#include "priv/alt_iic_isr_register.h" + +/* + * The header, alt_irq_entry.h, contains the exception entry point, and is + * provided by the processor component. It is included here, so that the code + * will be added to the executable only if alt_irq_register() is present, i.e. + * if no interrupts are registered - there's no need to provide any + * interrupt handling. + */ + +#include "sys/alt_irq_entry.h" + +/* + * The header, alt_irq_table.h contains a table describing which function + * handles each interrupt. + */ + +#include "priv/alt_irq_table.h" + +/** @Function Description: This function registers an interrupt handler. + * If the function is succesful, then the requested interrupt will be enabled + * upon return. Registering a NULL handler will disable the interrupt. + * + * @API Type: External + * @param ic_id Interrupt controller ID + * @param irq IRQ ID number + * @param isr Pointer to interrupt service routine + * @param isr_context Opaque pointer passed to ISR + * @param flags + * @return 0 if successful, else error (-1) + */ +int alt_iic_isr_register(alt_u32 ic_id, alt_u32 irq, alt_isr_func isr, + void *isr_context, void *flags) +{ + int rc = -EINVAL; + int id = irq; /* IRQ interpreted as the interrupt ID. */ + alt_irq_context status; + + if (id < ALT_NIRQ) + { + /* + * interrupts are disabled while the handler tables are updated to ensure + * that an interrupt doesn't occur while the tables are in an inconsistant + * state. + */ + + status = alt_irq_disable_all(); + + alt_irq[id].handler = isr; + alt_irq[id].context = isr_context; + + rc = (isr) ? alt_ic_irq_enable(ic_id, id) : alt_ic_irq_disable(ic_id, id); + + alt_irq_enable_all(status); + } + + return rc; +} + +#endif /* ALT_ENHANCED_INTERRUPT_API_PRESENT */ +#endif /* ALT_CPU_EIC_PRESENT */ diff --git a/software/qsys_tutorial_key3_bsp/HAL/src/alt_instruction_exception_entry.c b/software/qsys_tutorial_key3_bsp/HAL/src/alt_instruction_exception_entry.c new file mode 100644 index 0000000..f4f52fc --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/HAL/src/alt_instruction_exception_entry.c @@ -0,0 +1,203 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2008 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ +#include "sys/alt_exceptions.h" +#include "nios2.h" +#include "alt_types.h" +#include "system.h" + +/* + * This file implements support for calling user-registered handlers for + * instruction-generated exceptions. This handler could also be reached + * in the event of a spurious interrupt. + * + * The handler code is optionally enabled through the "Enable + * Instruction-related Exception API" HAL BSP setting, which will + * define the macro below. + */ +#ifdef ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API + +/* Function pointer to exception callback routine */ +alt_exception_result (*alt_instruction_exception_handler) + (alt_exception_cause, alt_u32, alt_u32) = 0x0; + +/* Link entry routine to .exceptions section */ +int alt_instruction_exception_entry (alt_u32 exception_pc) + __attribute__ ((section (".exceptions"))); + +/* + * This is the entry point for instruction-generated exceptions handling. + * This routine will be called by alt_exceptions_entry.S, after it determines + * that an exception could not be handled by handlers that preceed that + * of instruction-generated exceptions (such as interrupts). + * + * For this to function properly, you must register an exception handler + * using alt_instruction_exception_register(). This routine will call + * that handler if it has been registered. Absent a handler, it will + * break break or hang as discussed below. + */ +int alt_instruction_exception_entry (alt_u32 exception_pc) +{ + alt_u32 cause, badaddr; + +/* + * If the processor hardware has the optional EXCEPTIONS & BADADDR registers, + * read them and pass their content to the user handler. These are always + * present if the MMU or MPU is enabled, and optionally for other advanced + * exception types via the "Extra exceptions information" setting in the + * processor (hardware) configuration. + * + * If these registers are not present, the cause field will be set to + * NIOS2_EXCEPTION_CAUSE_NOT_PRESENT. Your handling routine should + * check the validity of the cause argument before proceeding. + */ +#ifdef NIOS2_HAS_EXTRA_EXCEPTION_INFO + /* Get exception cause & "badaddr" */ + NIOS2_READ_EXCEPTION(cause); + cause = ( (cause & NIOS2_EXCEPTION_REG_CAUSE_MASK) >> + NIOS2_EXCEPTION_REG_CAUSE_OFST ); + + NIOS2_READ_BADADDR(badaddr); +#else + cause = NIOS2_EXCEPTION_CAUSE_NOT_PRESENT; + badaddr = 0; +#endif /* NIOS2_HAS_EXTRA_EXCEPTION_INFO */ + + if(alt_instruction_exception_handler) { + /* + * Call handler. Its return value indicates whether the exception-causing + * instruction should be re-issued. The code that called us, + * alt_eceptions_entry.S, will look at this value and adjust the ea + * register as necessary + */ + return alt_instruction_exception_handler(cause, exception_pc, badaddr); + } + /* + * We got here because an instruction-generated exception occured, but no + * handler is present. We do not presume to know how to handle it. If the + * debugger is present, break, otherwise hang. + * + * If you've reached here in the debugger, consider examining the + * EXCEPTIONS register cause bit-field, which was read into the 'cause' + * variable above, and compare it against the exceptions-type enumeration + * in alt_exceptions.h. This register is availabe if the MMU or MPU is + * present, or if the "Extra exceptions information" hardware option is + * selected. + * + * If you get here then one of the following could have happened: + * + * - An instruction-generated exception occured, and the processor + * does not have the extra exceptions feature enabled, or you + * have not registered a handler using + * alt_instruction_exception_register() + * + * Some examples of instruction-generated exceptions and why they + * might occur: + * + * - Your program could have been compiled for a full-featured + * Nios II core, but it is running on a smaller core, and + * instruction emulation has been disabled by defining + * ALT_NO_INSTRUCTION_EMULATION. + * + * You can work around the problem by re-enabling instruction + * emulation, or you can figure out why your program is being + * compiled for a system other than the one that it is running on. + * + * - Your program has executed a trap instruction, but has not + * implemented a handler for this instruction. + * + * - Your program has executed an illegal instruction (one which is + * not defined in the instruction set). + * + * - Your processor includes an MMU or MPU, and you have enabled it + * before registering an exception handler to service exceptions it + * generates. + * + * The problem could also be hardware related: + * - If your hardware is broken and is generating spurious interrupts + * (a peripheral which negates its interrupt output before its + * interrupt handler has been executed will cause spurious interrupts) + */ + else { +#ifdef NIOS2_HAS_DEBUG_STUB + NIOS2_BREAK(); +#else + while(1) + ; +#endif /* NIOS2_HAS_DEBUG_STUB */ + } + + /* // We should not get here. Remove compiler warning. */ + return NIOS2_EXCEPTION_RETURN_REISSUE_INST; +} + +#endif /* ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API */ + +/* + * This routine indicates whether a particular exception cause will have + * set a valid address into the BADADDR register, which is included + * in the arguments to a user-registered instruction-generated exception + * handler. Many exception types do not set valid contents in BADADDR; + * this is a convenience routine to easily test the validity of that + * argument in your handler. + * + * Note that this routine will return false (0) for cause '12', + * TLB miss. This is because there are four exception types that + * share that cause, two of which do not have a valid BADADDR. You + * must determine BADADDR's validity for these. + * + * Arguments: + * cause: The 5-bit exception cause field of the EXCEPTIONS register, + * shifted to the LSB position. You may pass the 'cause' argument + * in a handler you registered directy to this routine. + * + * Return: 1: BADADDR (bad_addr argument to handler) is valid + * 0: BADADDR is not valid + */ +int alt_exception_cause_generated_bad_addr(alt_exception_cause cause) +{ + switch (cause) { + case NIOS2_EXCEPTION_SUPERVISOR_ONLY_DATA_ADDR: + return 1; + case NIOS2_EXCEPTION_MISALIGNED_DATA_ADDR: + return 1; + case NIOS2_EXCEPTION_MISALIGNED_TARGET_PC: + return 1; + case NIOS2_EXCEPTION_TLB_READ_PERM_VIOLATION: + return 1; + case NIOS2_EXCEPTION_TLB_WRITE_PERM_VIOLATION: + return 1; + case NIOS2_EXCEPTION_MPU_DATA_REGION_VIOLATION: + return 1; + default: + return 0; + } +} diff --git a/software/qsys_tutorial_key3_bsp/HAL/src/alt_instruction_exception_register.c b/software/qsys_tutorial_key3_bsp/HAL/src/alt_instruction_exception_register.c new file mode 100644 index 0000000..b059e1d --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/HAL/src/alt_instruction_exception_register.c @@ -0,0 +1,82 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2008 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ +#include "sys/alt_exceptions.h" +#include "alt_types.h" +#include "system.h" + +/* + * This file implements support for calling user-registered handlers for + * instruction-generated exceptions. + * + * The registry API is optionally enabled through the "Enable + * Instruction-related Exception API" HAL BSP setting, which will + * define the macro below. + */ +#ifdef ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API + +/* + * The header, alt_exception_handler_registry.h contains a struct describing + * the registered exception handler + */ +#include "priv/alt_exception_handler_registry.h" + +/* + * Pull in the exception entry assembly code. This will not be linked in + * unless this object is linked into the executable (i.e. only if + * alt_instruction_exception_register() is called). + */ +__asm__( "\n\t.globl alt_exception" ); + +/* + * alt_instruction_exception_register() is called to register a handler to + * service instruction-generated exceptions that are not handled by the + * default exception handler code (interrupts, and optionally unimplemented + * instructions and traps). + * + * Passing null (0x0) in the handler argument will disable a previously- + * registered handler. + * + * Note that if no handler is registered, exceptions that are not processed + * using the built-in handler (interrupts, and optionally unimplemented + * instructions and traps) are treated as unknown exceptions, resulting + * in either a break or an infinite loop. + */ +void alt_instruction_exception_register ( + alt_exception_result (*exception_handler)( + alt_exception_cause cause, + alt_u32 exception_pc, + alt_u32 bad_addr) ) +{ + alt_instruction_exception_handler = exception_handler; +} + +#endif /* ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API */ diff --git a/software/qsys_tutorial_key3_bsp/HAL/src/alt_io_redirect.c b/software/qsys_tutorial_key3_bsp/HAL/src/alt_io_redirect.c new file mode 100644 index 0000000..8c862f7 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/HAL/src/alt_io_redirect.c @@ -0,0 +1,98 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include +#include +#include + +#include "sys/alt_dev.h" +#include "priv/alt_file.h" + + +/* + * alt_open_fd() is similar to open() in that it is used to obtain a file + * descriptor for the file named "name". The "flags" and "mode" arguments are + * identical to the "flags" and "mode" arguments of open(). + * + * The distinction between the two functions is that the file descriptor + * structure to use is passed in as an argument, rather than allocated from the + * list of free file descriptors. + * + * This is used by alt_io_redirect() to redirect the stdin, stdout and stderr + * file descriptors to point to new devices. + * + * If the device can not be succesfully opened, then the input file descriptor + * remains unchanged. + */ + +static void alt_open_fd(alt_fd* fd, const char* name, int flags, int mode) +{ + int old; + + old = open (name, flags, mode); + + if (old >= 0) + { + fd->dev = alt_fd_list[old].dev; + fd->priv = alt_fd_list[old].priv; + fd->fd_flags = alt_fd_list[old].fd_flags; + + alt_release_fd (old); + } +} + +/* + * alt_io_redirect() is called once the device/filesystem lists have been + * initialised, but before main(). Its function is to redirect standard in, + * standard out and standard error so that they point to the devices selected by + * the user (as defined in system.h). + * + * Prior to the call to this function, io is directed towards /dev/null. If + * i/o can not be redirected to the requested device, for example if the device + * does not exist, then it remains directed at /dev/null. + */ + +void alt_io_redirect(const char* stdout_dev, + const char* stdin_dev, + const char* stderr_dev) +{ + /* Redirect the channels */ + + alt_open_fd (&alt_fd_list[STDOUT_FILENO], stdout_dev, O_WRONLY, 0777); + alt_open_fd (&alt_fd_list[STDIN_FILENO], stdin_dev, O_RDONLY, 0777); + alt_open_fd (&alt_fd_list[STDERR_FILENO], stderr_dev, O_WRONLY, 0777); +} + + + + diff --git a/software/qsys_tutorial_key3_bsp/HAL/src/alt_ioctl.c b/software/qsys_tutorial_key3_bsp/HAL/src/alt_ioctl.c new file mode 100644 index 0000000..f5d7ef1 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/HAL/src/alt_ioctl.c @@ -0,0 +1,170 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +#include "sys/ioctl.h" +#include "sys/alt_errno.h" +#include "sys/alt_warning.h" +#include "priv/alt_file.h" +#include "os/alt_syscall.h" + +/* + * The ioctl() system call is provided so that application code can manipulate + * the i/o capabilities of a device in device specific ways. This is identical + * to the standard posix ioctl() function. + * + * In general this implementation simply vectors ioctl requests to the + * apropriate drivers ioctl function (as registered in the drivers alt_dev + * structure). + * + * However in the case of devices (as oposed to filesystem), the TIOCEXCL and + * TIOCNXCL requests are handled without reference to the driver. These + * requests are used to lock/release a device for exclusive access. + * + * Handling these requests centrally eases the task of device driver + * development. + * + * ALT_IOCTL is mapped onto the ioctl() system call in alt_syscall.h + */ + +#ifdef ALT_USE_DIRECT_DRIVERS + +#include "system.h" +#include "sys/alt_driver.h" + +/* + * Provide minimal version that calls ioctl routine of provided stdio devices. + */ +int ALT_IOCTL (int file, int req, void* arg) +{ +#ifdef ALT_STDIN_PRESENT + ALT_DRIVER_IOCTL_EXTERNS(ALT_STDIN_DEV); +#endif +#ifdef ALT_STDOUT_PRESENT + ALT_DRIVER_IOCTL_EXTERNS(ALT_STDOUT_DEV); +#endif +#ifdef ALT_STDERR_PRESENT + ALT_DRIVER_IOCTL_EXTERNS(ALT_STDERR_DEV); +#endif + +#if !defined(ALT_STDIN_PRESENT) && !defined(ALT_STDOUT_PRESENT) && !defined(ALT_STDERR_PRESENT) + /* Generate a link time warning, should this function ever be called. */ + ALT_STUB_WARNING(ioctl); +#endif + + switch (file) { +#ifdef ALT_STDIN_PRESENT + case 0: /* stdin file descriptor */ + return ALT_DRIVER_IOCTL(ALT_STDIN_DEV, req, arg); +#endif /* ALT_STDIN_PRESENT */ +#ifdef ALT_STDOUT_PRESENT + case 1: /* stdout file descriptor */ + return ALT_DRIVER_IOCTL(ALT_STDOUT_DEV, req, arg); +#endif /* ALT_STDOUT_PRESENT */ +#ifdef ALT_STDERR_PRESENT + case 2: /* stderr file descriptor */ + return ALT_DRIVER_IOCTL(ALT_STDERR_DEV, req, arg); +#endif /* ALT_STDERR_PRESENT */ + default: + ALT_ERRNO = EBADFD; + return -1; + } +} + +#else /* !ALT_USE_DIRECT_DRIVERS */ + +int ALT_IOCTL (int file, int req, void* arg) +{ + alt_fd* fd; + int rc; + + /* + * A common error case is that when the file descriptor was created, the call + * to open() failed resulting in a negative file descriptor. This is trapped + * below so that we don't try and process an invalid file descriptor. + */ + + fd = (file < 0) ? NULL : &alt_fd_list[file]; + + if (fd) + { + + /* + * In the case of device drivers (not file systems) handle the TIOCEXCL + * and TIOCNXCL requests as special cases. + */ + + if (fd->fd_flags & ALT_FD_DEV) + { + if (req == TIOCEXCL) + { + rc = alt_fd_lock (fd); + goto ioctl_done; + } + else if (req == TIOCNXCL) + { + rc = alt_fd_unlock (fd); + goto ioctl_done; + } + } + + /* + * If the driver provides an ioctl() function, call that to handle the + * request, otherwise set the return code to indicate that the request + * could not be processed. + */ + + if (fd->dev->ioctl) + { + rc = fd->dev->ioctl(fd, req, arg); + } + else + { + rc = -ENOTTY; + } + } + else + { + rc = -EBADFD; + } + +ioctl_done: + + if (rc < 0) + { + ALT_ERRNO = -rc; + } + return rc; +} + +#endif /* ALT_USE_DIRECT_DRIVERS */ diff --git a/software/qsys_tutorial_key3_bsp/HAL/src/alt_irq_entry.S b/software/qsys_tutorial_key3_bsp/HAL/src/alt_irq_entry.S new file mode 100644 index 0000000..d3efe7d --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/HAL/src/alt_irq_entry.S @@ -0,0 +1,108 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003-2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "system.h" + +/* + * This is the interrupt exception entry point code, which saves all the + * registers and calls the interrupt handler. It should be pulled in using + * a .globl from alt_irq_register.c. This scheme is used so that if an + * interrupt is never registered, then this code will not appear in the + * generated executable, thereby improving code footprint. + */ + + /* + * Explicitly allow the use of r1 (the assembler temporary register) + * within this code. This register is normally reserved for the use of + * the compiler. + */ + .set noat + + /* + * Pull in the exception handler register save code. + */ + .globl alt_exception + + .globl alt_irq_entry + .section .exceptions.entry.label, "xa" +alt_irq_entry: + + /* + * Section .exceptions.entry is in alt_exception_entry.S + * This saves all the caller saved registers and reads estatus into r5 + */ + + .section .exceptions.irqtest, "xa" + +#ifdef ALT_CI_INTERRUPT_VECTOR_N + /* + * Use the interrupt vector custom instruction if present to accelerate + * this code. + * If the interrupt vector custom instruction returns a negative + * value, there are no interrupts active (estatus.pie is 0 + * or ipending is 0) so assume it is a software exception. + */ + custom ALT_CI_INTERRUPT_VECTOR_N, r4, r0, r0 + blt r4, r0, .Lnot_irq +#else + /* + * Test to see if the exception was a software exception or caused + * by an external interrupt, and vector accordingly. + */ + rdctl r4, ipending + andi r2, r5, 1 + beq r2, zero, .Lnot_irq + beq r4, zero, .Lnot_irq +#endif /* ALT_CI_INTERRUPT_VECTOR_N */ + + .section .exceptions.irqhandler, "xa" + /* + * Now that all necessary registers have been preserved, call + * alt_irq_handler() to process the interrupts. + */ + + call alt_irq_handler + + .section .exceptions.irqreturn, "xa" + + br .Lexception_exit + + .section .exceptions.notirq.label, "xa" + +.Lnot_irq: + + /* + * Section .exceptions.exit is in alt_exception_entry.S + * This restores all the caller saved registers + */ + + .section .exceptions.exit.label +.Lexception_exit: + diff --git a/software/qsys_tutorial_key3_bsp/HAL/src/alt_irq_handler.c b/software/qsys_tutorial_key3_bsp/HAL/src/alt_irq_handler.c new file mode 100644 index 0000000..3253d02 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/HAL/src/alt_irq_handler.c @@ -0,0 +1,169 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2009 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include "system.h" + +/* + * This interrupt handler only works with an internal interrupt controller + * (IIC). Processors with an external interrupt controller (EIC) use an + * implementation provided by an EIC driver. + */ +#ifndef ALT_CPU_EIC_PRESENT + +#include "sys/alt_irq.h" +#include "os/alt_hooks.h" + +#include "alt_types.h" + +/* + * A table describing each interrupt handler. The index into the array is the + * interrupt id associated with the handler. + * + * When an interrupt occurs, the associated handler is called with + * the argument stored in the context member. + */ +struct ALT_IRQ_HANDLER +{ +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT + void (*handler)(void*); +#else + void (*handler)(void*, alt_u32); +#endif + void *context; +} alt_irq[ALT_NIRQ]; + +/* + * alt_irq_handler() is called by the interrupt exception handler in order to + * process any outstanding interrupts. + * + * It is defined here since it is linked in using weak linkage. + * This means that if there is never a call to alt_irq_register() (above) then + * this function will not get linked in to the executable. This is acceptable + * since if no handler is ever registered, then an interrupt can never occur. + * + * If Nios II interrupt vector custom instruction exists, use it to accelerate + * the dispatch of interrupt handlers. The Nios II interrupt vector custom + * instruction is present if the macro ALT_CI_INTERRUPT_VECTOR defined. + */ + +void alt_irq_handler (void) __attribute__ ((section (".exceptions"))); +void alt_irq_handler (void) +{ +#ifdef ALT_CI_INTERRUPT_VECTOR + alt_32 offset; + char* alt_irq_base = (char*)alt_irq; +#else + alt_u32 active; + alt_u32 mask; + alt_u32 i; +#endif /* ALT_CI_INTERRUPT_VECTOR */ + + /* + * Notify the operating system that we are at interrupt level. + */ + + ALT_OS_INT_ENTER(); + +#ifdef ALT_CI_INTERRUPT_VECTOR + /* + * Call the interrupt vector custom instruction using the + * ALT_CI_INTERRUPT_VECTOR macro. + * It returns the offset into the vector table of the lowest-valued pending + * interrupt (corresponds to highest priority) or a negative value if none. + * The custom instruction assumes that each table entry is eight bytes. + */ + while ((offset = ALT_CI_INTERRUPT_VECTOR) >= 0) { + struct ALT_IRQ_HANDLER* handler_entry = + (struct ALT_IRQ_HANDLER*)(alt_irq_base + offset); +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT + handler_entry->handler(handler_entry->context); +#else + handler_entry->handler(handler_entry->context, offset >> 3); +#endif + } +#else /* ALT_CI_INTERRUPT_VECTOR */ + /* + * Obtain from the interrupt controller a bit list of pending interrupts, + * and then process the highest priority interrupt. This process loops, + * loading the active interrupt list on each pass until alt_irq_pending() + * return zero. + * + * The maximum interrupt latency for the highest priority interrupt is + * reduced by finding out which interrupts are pending as late as possible. + * Consider the case where the high priority interupt is asserted during + * the interrupt entry sequence for a lower priority interrupt to see why + * this is the case. + */ + + active = alt_irq_pending (); + + do + { + i = 0; + mask = 1; + + /* + * Test each bit in turn looking for an active interrupt. Once one is + * found, the interrupt handler asigned by a call to alt_irq_register() is + * called to clear the interrupt condition. + */ + + do + { + if (active & mask) + { +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT + alt_irq[i].handler(alt_irq[i].context); +#else + alt_irq[i].handler(alt_irq[i].context, i); +#endif + break; + } + mask <<= 1; + i++; + + } while (1); + + active = alt_irq_pending (); + + } while (active); +#endif /* ALT_CI_INTERRUPT_VECTOR */ + + /* + * Notify the operating system that interrupt processing is complete. + */ + + ALT_OS_INT_EXIT(); +} + +#endif /* ALT_CPU_EIC_PRESENT */ diff --git a/software/qsys_tutorial_key3_bsp/HAL/src/alt_irq_register.c b/software/qsys_tutorial_key3_bsp/HAL/src/alt_irq_register.c new file mode 100644 index 0000000..b5ea474 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/HAL/src/alt_irq_register.c @@ -0,0 +1,102 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2009 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ +#include +#include "system.h" + +/* + * This interrupt registry mechanism works with the Nios II internal interrupt + * controller (IIC) only. Systems with an external interrupt controller (EIC), + * or those with the IIC who are using the enhanced interrupt API will + * utilize the alt_ic_isr_register() routine to register an interrupt. + */ +#ifndef NIOS2_EIC_PRESENT + +#include "sys/alt_irq.h" +#include "priv/alt_legacy_irq.h" +#include "os/alt_hooks.h" + +#include "alt_types.h" + +/* + * The header, alt_irq_entry.h, contains the exception entry point, and is + * provided by the processor component. It is included here, so that the code + * will be added to the executable only if alt_irq_register() is present, i.e. + * if no interrupts are registered - there's no need to provide any + * interrupt handling. + */ + +#include "sys/alt_irq_entry.h" + +/* + * The header, alt_irq_table.h contains a table describing which function + * handles each interrupt. + */ + +#include "priv/alt_irq_table.h" + +/* + * alt_irq_handler() is called to register an interrupt handler. If the + * function is succesful, then the requested interrupt will be enabled upon + * return. Registering a NULL handler will disable the interrupt. + * + * The return value is 0 if the interrupt handler was registered and the + * interrupt was enabled, otherwise it is negative. + */ + +int alt_irq_register (alt_u32 id, + void* context, + alt_isr_func handler) +{ + int rc = -EINVAL; + alt_irq_context status; + + if (id < ALT_NIRQ) + { + /* + * interrupts are disabled while the handler tables are updated to ensure + * that an interrupt doesn't occur while the tables are in an inconsistant + * state. + */ + + status = alt_irq_disable_all (); + + alt_irq[id].handler = handler; + alt_irq[id].context = context; + + rc = (handler) ? alt_irq_enable (id): alt_irq_disable (id); + + alt_irq_enable_all(status); + } + return rc; +} +#endif /* NIOS2_EIC_PRESENT */ + diff --git a/software/qsys_tutorial_key3_bsp/HAL/src/alt_irq_vars.c b/software/qsys_tutorial_key3_bsp/HAL/src/alt_irq_vars.c new file mode 100644 index 0000000..8c0a18d --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/HAL/src/alt_irq_vars.c @@ -0,0 +1,47 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "alt_types.h" + +#include "system.h" + +/* + * These global variables are used to save the current list of enabled + * interrupts. See alt_irq.h for further details. + */ + +volatile alt_u32 alt_irq_active = 0; + +#ifndef ALT_EXCEPTION_STACK + +volatile alt_u32 alt_priority_mask = (alt_u32) -1; + +#endif + diff --git a/software/qsys_tutorial_key3_bsp/HAL/src/alt_isatty.c b/software/qsys_tutorial_key3_bsp/HAL/src/alt_isatty.c new file mode 100644 index 0000000..9276472 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/HAL/src/alt_isatty.c @@ -0,0 +1,125 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include + +#include "sys/alt_dev.h" +#include "sys/alt_errno.h" +#include "sys/alt_warning.h" +#include "priv/alt_file.h" +#include "os/alt_syscall.h" + +#ifdef ALT_USE_DIRECT_DRIVERS + +#include "system.h" + +/* + * Provide minimal version that just describes all file descriptors + * as tty devices for provided stdio devices. + */ +int ALT_ISATTY (int file) +{ + switch (file) { +#ifdef ALT_STDIN_PRESENT + case 0: /* stdin file descriptor */ +#endif /* ALT_STDIN_PRESENT */ +#ifdef ALT_STDOUT_PRESENT + case 1: /* stdout file descriptor */ +#endif /* ALT_STDOUT_PRESENT */ +#ifdef ALT_STDERR_PRESENT + case 2: /* stderr file descriptor */ +#endif /* ALT_STDERR_PRESENT */ + return 1; + default: + return 0; + } + +#if !defined(ALT_STDIN_PRESENT) && !defined(ALT_STDOUT_PRESENT) && !defined(ALT_STDERR_PRESENT) + /* Generate a link time warning, should this function ever be called. */ + ALT_STUB_WARNING(isatty); +#endif +} + +#else /* !ALT_USE_DIRECT_DRIVERS */ +/* + * isatty() can be used to determine whether the input file descriptor "file" + * refers to a terminal device or not. If it is a terminal device then the + * return value is one, otherwise it is zero. + * + * ALT_ISATTY is mapped onto the isatty() system call in alt_syscall.h + */ + +int ALT_ISATTY (int file) +{ + alt_fd* fd; + struct stat stat; + + /* + * A common error case is that when the file descriptor was created, the call + * to open() failed resulting in a negative file descriptor. This is trapped + * below so that we don't try and process an invalid file descriptor. + */ + + fd = (file < 0) ? NULL : &alt_fd_list[file]; + + if (fd) + { + /* + * If a device driver does not provide an fstat() function, then it is + * treated as a terminal device by default. + */ + + if (!fd->dev->fstat) + { + return 1; + } + + /* + * If a driver does provide an implementation of the fstat() function, then + * this is called so that the device can identify itself. + */ + + else + { + fstat (file, &stat); + return (stat.st_mode == _IFCHR) ? 1 : 0; + } + } + else + { + ALT_ERRNO = EBADFD; + return 0; + } +} + +#endif /* ALT_USE_DIRECT_DRIVERS */ diff --git a/software/qsys_tutorial_key3_bsp/HAL/src/alt_kill.c b/software/qsys_tutorial_key3_bsp/HAL/src/alt_kill.c new file mode 100644 index 0000000..42c2e1d --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/HAL/src/alt_kill.c @@ -0,0 +1,121 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include + +#include "sys/alt_errno.h" +#include "os/alt_syscall.h" + + +/* + * kill() is used by newlib in order to send signals to processes. Since there + * is only a single process in the HAL, the only valid values for pid are + * either the current process id, or the broadcast values, i.e. pid must be + * less than or equal to zero. + * + * ALT_KILL is mapped onto the kill() system call in alt_syscall.h + */ + +int ALT_KILL (int pid, int sig) +{ + int status = 0; + + if (pid <= 0) + { + switch (sig) + { + case 0: + + /* The null signal is used to check that a pid is valid. */ + + break; + + case SIGABRT: + case SIGALRM: + case SIGFPE: + case SIGILL: + case SIGKILL: + case SIGPIPE: + case SIGQUIT: + case SIGSEGV: + case SIGTERM: + case SIGUSR1: + case SIGUSR2: + case SIGBUS: + case SIGPOLL: + case SIGPROF: + case SIGSYS: + case SIGTRAP: + case SIGVTALRM: + case SIGXCPU: + case SIGXFSZ: + + /* + * The Posix standard defines the default behaviour for all these signals + * as being eqivalent to a call to _exit(). No mechanism is provided to + * change this behaviour. + */ + + _exit(0); + case SIGCHLD: + case SIGURG: + + /* + * The Posix standard defines these signals to be ignored by default. No + * mechanism is provided to change this behaviour. + */ + + break; + default: + + /* Tried to send an unsupported signal */ + + status = EINVAL; + } + } + + else if (pid > 0) + { + /* Attempted to signal a non-existant process */ + + status = ESRCH; + } + + if (status) + { + ALT_ERRNO = status; + return -1; + } + + return 0; +} diff --git a/software/qsys_tutorial_key3_bsp/HAL/src/alt_link.c b/software/qsys_tutorial_key3_bsp/HAL/src/alt_link.c new file mode 100644 index 0000000..d796c59 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/HAL/src/alt_link.c @@ -0,0 +1,56 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_warning.h" +#include "sys/alt_errno.h" +#include "os/alt_syscall.h" + +/* + * link() is used by newlib to create a new link to an existing file. This is + * unsupported in the HAL environment. However a "do-nothing" implementation + * is still provied for newlib compatability. + * + * ALT_LINK is mapped onto the link() system call in alt_syscall.h + */ + +int ALT_LINK ( char *existing, char *new) +{ + /* Generate a link time warning, should this function ever be called. */ + + ALT_STUB_WARNING(link); + + /* Indicate an error */ + + ALT_ERRNO = ENOSYS; + return -1; +} + diff --git a/software/qsys_tutorial_key3_bsp/HAL/src/alt_load.c b/software/qsys_tutorial_key3_bsp/HAL/src/alt_load.c new file mode 100644 index 0000000..ffab4b9 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/HAL/src/alt_load.c @@ -0,0 +1,88 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004-2005 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_load.h" +#include "sys/alt_cache.h" + +/* + * Linker defined symbols. + */ + +extern void __flash_rwdata_start; +extern void __ram_rwdata_start; +extern void __ram_rwdata_end; +extern void __flash_rodata_start; +extern void __ram_rodata_start; +extern void __ram_rodata_end; +extern void __flash_exceptions_start; +extern void __ram_exceptions_start; +extern void __ram_exceptions_end; + +/* + * alt_load() is called when the code is executing from flash. In this case + * there is no bootloader, so this application is responsible for loading to + * RAM any sections that are required. + */ + +void alt_load (void) +{ + /* + * Copy the .rwdata section. + */ + + alt_load_section (&__flash_rwdata_start, + &__ram_rwdata_start, + &__ram_rwdata_end); + + /* + * Copy the exception handler. + */ + + alt_load_section (&__flash_exceptions_start, + &__ram_exceptions_start, + &__ram_exceptions_end); + + /* + * Copy the .rodata section. + */ + + alt_load_section (&__flash_rodata_start, + &__ram_rodata_start, + &__ram_rodata_end); + + /* + * Now ensure that the caches are in synch. + */ + + alt_dcache_flush_all(); + alt_icache_flush_all(); +} diff --git a/software/qsys_tutorial_key3_bsp/HAL/src/alt_log_macro.S b/software/qsys_tutorial_key3_bsp/HAL/src/alt_log_macro.S new file mode 100644 index 0000000..499c4ad --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/HAL/src/alt_log_macro.S @@ -0,0 +1,56 @@ +/* alt_log_macro.S + * + * Implements the function tx_log_str, called by the assembly macro + * ALT_LOG_PUTS(). The macro will be empty when logging is turned off, + * and this function will not be compiled. When logging is on, + * this function is used to print out the strings defined in the beginning + * of alt_log_printf.c, using port information taken from system.h and + * alt_log_printf.h. + * + * This routine only handles strings, and sends a character into the defined + * output device's output buffer when the device is ready. It's intended for + * debugging purposes, where messages can be set to print out at certain + * points in the boot code to indicate the progress of the program. + * + */ + +#ifndef __ALT_LOG_MACROS__ +#define __ALT_LOG_MACROS__ + +/* define this flag to skip assembly-incompatible parts + * of various include files. */ +#define ALT_ASM_SRC + +#ifdef ALT_LOG_ENABLE // only compile this function if this flag is defined. + + #include "system.h" + #include "sys/alt_log_printf.h" + + .global tx_log_str +tx_log_str: + /* load base uart / jtag uart address into r6 */ + movhi r6, %hiadj(ALT_LOG_PORT_BASE) + addi r6, r6, %lo(ALT_LOG_PORT_BASE) +tx_next_char: + /* if pointer points to null, return + * r4 is the pointer to the str to be printed, set by ALT_LOG_PUTS */ + ldb r7, (r4) + beq r0, r7, end_tx + + /* check device transmit ready */ +wait_tx_ready_loop: + ldwio r5, ALT_LOG_PRINT_REG_OFFSET(r6) + andi r5, r5, ALT_LOG_PRINT_MSK + beq r5, r0, wait_tx_ready_loop + /* write char */ + stwio r7, ALT_LOG_PRINT_TXDATA_REG_OFFSET (r6) + /* advance string pointer */ + addi r4, r4, 1 + br tx_next_char +end_tx: + ret + +#endif + +#endif /* __ALT_LOG_MACROS__ */ + diff --git a/software/qsys_tutorial_key3_bsp/HAL/src/alt_log_printf.c b/software/qsys_tutorial_key3_bsp/HAL/src/alt_log_printf.c new file mode 100644 index 0000000..1f7056d --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/HAL/src/alt_log_printf.c @@ -0,0 +1,479 @@ + +/* alt_log_printf.c + * + * This file implements the various C functions used for the + * alt_log logging/debugging print functions. The functions + * sit as is here - the job of hiding them from the compiler + * if logging is disabled is accomplished in the .h file. + * + * All the global variables for alt_log are defined here. + * These include the various flags that turn on additional + * logging options; the strings for assembly printing; and + * other globals needed by different logging options. + * + * There are 4 functions that handle the actual printing: + * alt_log_txchar: Actual function that puts 1 char to UART/JTAG UART. + * alt_log_repchar: Calls alt_log_txchar 'n' times - used by + * alt_log_private_printf for formatting. + * alt_log_private_printf: + * Stripped down implementation of printf - no floats. + * alt_log_printf_proc: + * Wrapper function for private_printf. + * + * The rest of the functions are called by the macros which + * were called by code in the other components. Each function + * is preceded by a comment, about which file it gets called + * in, and what its purpose is. + * + * author: gkwan + */ + +/* skip all code if enable is off */ +#ifdef ALT_LOG_ENABLE + +#include +#include +#include +#ifdef __ALTERA_AVALON_JTAG_UART + #include "altera_avalon_jtag_uart.h" + #include +#endif +#include "sys/alt_log_printf.h" + +/* strings for assembly puts */ +char alt_log_msg_bss[] = "[crt0.S] Clearing BSS \r\n";; +char alt_log_msg_alt_main[] = "[crt0.S] Calling alt_main.\r\n"; +char alt_log_msg_stackpointer[] \ + = "[crt0.S] Setting up stack and global pointers.\r\n"; +char alt_log_msg_cache[] = "[crt0.S] Inst & Data Cache Initialized.\r\n"; +/* char array allocation for alt_write */ +char alt_log_write_buf[ALT_LOG_WRITE_ECHO_LEN+2]; + +/* global variables for all 'on' flags */ + +/* + * The boot message flag is linked into the data (rwdata) section + * because if it is zero, it would otherwise be placed in the bss section. + * alt_log examines this variable before the BSS is cleared in the boot-up + * process. + */ +volatile alt_u32 alt_log_boot_on_flag \ + __attribute__ ((section (".data"))) = ALT_LOG_BOOT_ON_FLAG_SETTING; + +volatile alt_u8 alt_log_write_on_flag = ALT_LOG_WRITE_ON_FLAG_SETTING; + +volatile alt_u8 alt_log_sys_clk_on_flag = ALT_LOG_SYS_CLK_ON_FLAG_SETTING; + +volatile alt_u8 alt_log_jtag_uart_alarm_on_flag = \ + ALT_LOG_JTAG_UART_ALARM_ON_FLAG_SETTING; + +volatile alt_u8 alt_log_jtag_uart_isr_on_flag = \ + ALT_LOG_JTAG_UART_ISR_ON_FLAG_SETTING; + +volatile alt_u8 alt_log_jtag_uart_startup_info_on_flag = \ + ALT_LOG_JTAG_UART_STARTUP_INFO_ON_FLAG_SETTING; + +/* Global alarm object for recurrent JTAG UART status printing */ +alt_alarm alt_log_jtag_uart_alarm_1; + +/* Global ints for system clock printing and count */ +volatile int alt_log_sys_clk_count; +volatile int alt_system_clock_in_sec; + +/* enum used by alt_log_private_printf */ +enum +{ + pfState_chars, + pfState_firstFmtChar, + pfState_otherFmtChar +}; + + + + +/* Function to put one char onto the UART/JTAG UART txdata register. */ +void alt_log_txchar(int c,char *base) +{ + /* Wait until the device is ready for a character */ + while((ALT_LOG_PRINT_REG_RD(base) & ALT_LOG_PRINT_MSK) == 0) + ; + /* And pop the character into the register */ + ALT_LOG_PRINT_TXDATA_WR(base,c); +} + + +/* Called by alt_log_private_printf to print out characters repeatedly */ +void alt_log_repchar(char c,int r,int base) +{ + while(r-- > 0) + alt_log_txchar(c,(char*) base); +} + + +/* Stripped down printf function */ +void alt_log_private_printf(const char *fmt,int base,va_list args) + { + const char *w; + char c; + int state; + int fmtLeadingZero = 0; /* init these all to 0 for -W warnings. */ + int fmtLong = 0; + int fmtBeforeDecimal = 0; + int fmtAfterDecimal = 0; + int fmtBase = 0; + int fmtSigned = 0; + int fmtCase = 0; /* For hex format, if 1, A-F, else a-f. */ + + w = fmt; + state = pfState_chars; + + while(0 != (c = *w++)) + { + switch(state) + { + case pfState_chars: + if(c == '%') + { + fmtLeadingZero = 0; + fmtLong = 0; + fmtBase = 10; + fmtSigned = 1; + fmtCase = 0; /* Only %X sets this. */ + fmtBeforeDecimal = -1; + fmtAfterDecimal = -1; + state = pfState_firstFmtChar; + } + else + { + alt_log_txchar(c,(char*)base); + } + break; + + case pfState_firstFmtChar: + if(c == '0') + { + fmtLeadingZero = 1; + state = pfState_otherFmtChar; + } + else if(c == '%') + { + alt_log_txchar(c,(char*)base); + state = pfState_chars; + } + else + { + state = pfState_otherFmtChar; + goto otherFmtChar; + } + break; + + case pfState_otherFmtChar: +otherFmtChar: + if(c == '.') + { + fmtAfterDecimal = 0; + } + else if('0' <= c && c <= '9') + { + c -= '0'; + if(fmtAfterDecimal < 0) /* still before decimal */ + { + if(fmtBeforeDecimal < 0) + { + fmtBeforeDecimal = 0; + } + else + { + fmtBeforeDecimal *= 10; + } + fmtBeforeDecimal += c; + } + else + { + fmtAfterDecimal = (fmtAfterDecimal * 10) + c; + } + } + else if(c == 'l') + { + fmtLong = 1; + } + else /* we're up to the letter which determines type */ + { + switch(c) + { + case 'd': + case 'i': +doIntegerPrint: + { + unsigned long v; + unsigned long p; /* biggest power of fmtBase */ + unsigned long vShrink; /* used to count digits */ + int sign; + int digitCount; + + /* Get the value */ + if(fmtLong) + { + if (fmtSigned) + { + v = va_arg(args,long); + } + else + { + v = va_arg(args,unsigned long); + } + } + else + { + if (fmtSigned) + { + v = va_arg(args,int); + } + else + { + v = va_arg(args,unsigned int); + } + } + + /* Strip sign */ + sign = 0; + /* (assumes sign bit is #31) */ + if( fmtSigned && (v & (0x80000000)) ) + { + v = ~v + 1; + sign = 1; + } + + /* Count digits, and get largest place value */ + vShrink = v; + p = 1; + digitCount = 1; + while( (vShrink = vShrink / fmtBase) > 0 ) + { + digitCount++; + p *= fmtBase; + } + + /* Print leading characters & sign */ + fmtBeforeDecimal -= digitCount; + if(fmtLeadingZero) + { + if(sign) + { + alt_log_txchar('-',(char*)base); + fmtBeforeDecimal--; + } + alt_log_repchar('0',fmtBeforeDecimal,base); + } + else + { + if(sign) + { + fmtBeforeDecimal--; + } + alt_log_repchar(' ',fmtBeforeDecimal,base); + if(sign) + { + alt_log_txchar('-',(char*)base); + } + } + + /* Print numbery parts */ + while(p) + { + unsigned char d; + + d = v / p; + d += '0'; + if(d > '9') + { + d += (fmtCase ? 'A' : 'a') - '0' - 10; + } + alt_log_txchar(d,(char*)base); + + v = v % p; + p = p / fmtBase; + } + } + + state = pfState_chars; + break; + + case 'u': + fmtSigned = 0; + goto doIntegerPrint; + case 'o': + fmtSigned = 0; + fmtBase = 8; + goto doIntegerPrint; + case 'x': + fmtSigned = 0; + fmtBase = 16; + goto doIntegerPrint; + case 'X': + fmtSigned = 0; + fmtBase = 16; + fmtCase = 1; + goto doIntegerPrint; + + case 'c': + alt_log_repchar(' ',fmtBeforeDecimal-1,base); + alt_log_txchar(va_arg(args,int),(char*)base); + break; + + case 's': + { + char *s; + + s = va_arg(args,char *); + alt_log_repchar(' ',fmtBeforeDecimal-strlen(s),base); + + while(*s) + alt_log_txchar(*s++,(char*)base); + } + break; + } /* switch last letter of fmt */ + state=pfState_chars; + } + break; + } /* switch */ + } /* while chars left */ + } /* printf */ + +/* Main logging printf function */ +int alt_log_printf_proc(const char *fmt, ... ) +{ + va_list args; + + va_start (args, fmt); + alt_log_private_printf(fmt,ALT_LOG_PORT_BASE,args); + return (0); +} + +/* Below are the functions called by different macros in various components. */ + +/* If the system has a JTAG_UART, include JTAG_UART debugging functions */ +#ifdef __ALTERA_AVALON_JTAG_UART + +/* The alarm function in altera_avalon_jtag_uart.c. + * This function, when turned on, prints out the status + * of the JTAG UART Control register, every ALT_LOG_JTAG_UART_TICKS. + * If the flag is off, the alarm should never be registered, and this + * function should never run */ +alt_u32 altera_avalon_jtag_uart_report_log(void * context) +{ + if (alt_log_jtag_uart_alarm_on_flag) { + altera_avalon_jtag_uart_state* dev = (altera_avalon_jtag_uart_state*) context; + const char* header="JTAG Alarm:"; + alt_log_jtag_uart_print_control_reg(dev, dev->base, header); + return ALT_LOG_JTAG_UART_TICKS; + } + else + { + /* If flag is not on, return 0 to disable future alarms. + * Should never be here, alarm should not be enabled at all. */ + return 0; + } +} + +void alt_log_jtag_uart_print_control_reg(altera_avalon_jtag_uart_state* dev, int base, const char* header) +{ + unsigned int control, space, ac, wi, ri, we, re; + control = IORD_ALTERA_AVALON_JTAG_UART_CONTROL(base); + space = (control & ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_MSK) >> + ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_OFST; + we= (control & ALTERA_AVALON_JTAG_UART_CONTROL_WE_MSK) >> + ALTERA_AVALON_JTAG_UART_CONTROL_WE_OFST; + re= (control & ALTERA_AVALON_JTAG_UART_CONTROL_RE_MSK) >> + ALTERA_AVALON_JTAG_UART_CONTROL_RE_OFST; + ri= (control & ALTERA_AVALON_JTAG_UART_CONTROL_RI_MSK) >> + ALTERA_AVALON_JTAG_UART_CONTROL_RI_OFST; + wi= (control & ALTERA_AVALON_JTAG_UART_CONTROL_WI_MSK) >> + ALTERA_AVALON_JTAG_UART_CONTROL_WI_OFST; + ac= (control & ALTERA_AVALON_JTAG_UART_CONTROL_AC_MSK) >> + ALTERA_AVALON_JTAG_UART_CONTROL_AC_OFST; + +#ifdef ALTERA_AVALON_JTAG_UART_SMALL + ALT_LOG_PRINTF( + "%s HW FIFO wspace=%d AC=%d WI=%d RI=%d WE=%d RE=%d\r\n", + header,space,ac,wi,ri,we,re); +#else + ALT_LOG_PRINTF( + "%s SW CirBuf = %d, HW FIFO wspace=%d AC=%d WI=%d RI=%d WE=%d RE=%d\r\n", + header,(dev->tx_out-dev->tx_in),space,ac,wi,ri,we,re); +#endif + + return; + +} + +/* In altera_avalon_jtag_uart.c + * Same output as the alarm function above, but this is called in the driver + * init function. Hence, it gives the status of the JTAG UART control register + * right at the initialization of the driver */ +void alt_log_jtag_uart_startup_info(altera_avalon_jtag_uart_state* dev, int base) +{ + const char* header="JTAG Startup Info:"; + alt_log_jtag_uart_print_control_reg(dev, base, header); + return; +} + +/* In altera_avalon_jtag_uart.c + * When turned on, this function will print out the status of the jtag uart + * control register every time there is a jtag uart "almost-empty" interrupt. */ +void alt_log_jtag_uart_isr_proc(int base, altera_avalon_jtag_uart_state* dev) +{ + if (alt_log_jtag_uart_isr_on_flag) { + const char* header="JTAG IRQ:"; + alt_log_jtag_uart_print_control_reg(dev, base, header); + } + return; +} + +#endif /* __ALTERA_AVALON_JTAG_UART */ + +/* In alt_write.c + * When the alt_log_write_on_flag is turned on, this function gets called + * every time alt_write gets called. The first + * ALT_LOG_WRITE_ECHO_LEN characters of every printf command (or any command + * that eventually calls write()) gets echoed to the alt_log output. */ +void alt_log_write(const void *ptr, size_t len) +{ + if (alt_log_write_on_flag) { + int temp_cnt; + int length=(ALT_LOG_WRITE_ECHO_LEN>len) ? len : ALT_LOG_WRITE_ECHO_LEN; + + if (length < 2) return; + + strncpy (alt_log_write_buf,ptr,length); + alt_log_write_buf[length-1]='\n'; + alt_log_write_buf[length]='\r'; + alt_log_write_buf[length+1]='\0'; + + /* Escape Ctrl-D's. If the Ctrl-D gets sent it might kill the terminal + * connection of alt_log. It will get replaced by 'D'. */ + for (temp_cnt=0;temp_cnt < length; temp_cnt++) { + if (alt_log_write_buf[temp_cnt]== 0x4) { + alt_log_write_buf[temp_cnt]='D'; + } + } + ALT_LOG_PRINTF("Write Echo: %s",alt_log_write_buf); + } +} + +/* In altera_avalon_timer_sc + * This function prints out a system clock is alive message + * every ALT_LOG_SYS_CLK_INTERVAL (in ticks). */ +void alt_log_system_clock() +{ + if (alt_log_sys_clk_on_flag) { + alt_log_sys_clk_count++; + if (alt_log_sys_clk_count > ALT_LOG_SYS_CLK_INTERVAL) { + alt_log_sys_clk_count = 0; + ALT_LOG_PRINTF("System Clock On %u\r\n",alt_system_clock_in_sec++); + } + } +} + + +#endif diff --git a/software/qsys_tutorial_key3_bsp/HAL/src/alt_lseek.c b/software/qsys_tutorial_key3_bsp/HAL/src/alt_lseek.c new file mode 100644 index 0000000..7857b0d --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/HAL/src/alt_lseek.c @@ -0,0 +1,117 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004-2005 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +#include "sys/alt_errno.h" +#include "sys/alt_warning.h" +#include "priv/alt_file.h" +#include "os/alt_syscall.h" + +#ifdef ALT_USE_DIRECT_DRIVERS + +off_t ALT_LSEEK (int file, off_t ptr, int dir) +{ + /* Generate a link time warning, should this function ever be called. */ + + ALT_STUB_WARNING(lseek); + + /* Indicate an error */ + + ALT_ERRNO = ENOSYS; + return -1; +} + +#else /* !ALT_USE_DIRECT_DRIVERS */ + +/* + * lseek() can be called to move the read/write pointer associated with the + * file descriptor "file". This function simply vectors the call to the lseek() + * function provided by the driver associated with the file descriptor. + * + * If the driver does not provide an implementation of lseek() an error is + * indicated. + * + * lseek() corresponds to the standard lseek() function. + * + * ALT_LSEEK is mapped onto the lseek() system call in alt_syscall.h + * + */ + +off_t ALT_LSEEK (int file, off_t ptr, int dir) +{ + alt_fd* fd; + off_t rc = 0; + + /* + * A common error case is that when the file descriptor was created, the call + * to open() failed resulting in a negative file descriptor. This is trapped + * below so that we don't try and process an invalid file descriptor. + */ + + fd = (file < 0) ? NULL : &alt_fd_list[file]; + + if (fd) + { + /* + * If the device driver provides an implementation of the lseek() function, + * then call that to process the request. + */ + + if (fd->dev->lseek) + { + rc = fd->dev->lseek(fd, ptr, dir); + } + /* + * Otherwise return an error. + */ + + else + { + rc = -ENOTSUP; + } + } + else + { + rc = -EBADFD; + } + + if (rc < 0) + { + ALT_ERRNO = -rc; + rc = -1; + } + + return rc; +} + +#endif /* ALT_USE_DIRECT_DRIVERS */ diff --git a/software/qsys_tutorial_key3_bsp/HAL/src/alt_main.c b/software/qsys_tutorial_key3_bsp/HAL/src/alt_main.c new file mode 100644 index 0000000..a96229b --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/HAL/src/alt_main.c @@ -0,0 +1,161 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2007 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include +#include +#include +#include +#include + +#include "sys/alt_dev.h" +#include "sys/alt_sys_init.h" +#include "sys/alt_irq.h" +#include "sys/alt_dev.h" + +#include "os/alt_hooks.h" + +#include "priv/alt_file.h" +#include "alt_types.h" + +#include "system.h" + +#include "sys/alt_log_printf.h" + +extern void _do_ctors(void); +extern void _do_dtors(void); + +/* + * Standard arguments for main. By default, no arguments are passed to main. + * However a device driver may choose to configure these arguments by calling + * alt_set_args(). The expectation is that this facility will only be used by + * the iclient/ihost utility. + */ + +int alt_argc = 0; +char** alt_argv = {NULL}; +char** alt_envp = {NULL}; + +/* + * Prototype for the entry point to the users application. + */ + +extern int main (int, char **, char **); + +/* + * alt_main is the C entry point for the HAL. It is called by the assembler + * startup code in the processor specific crt0.S. It is responsible for: + * completing the C runtime configuration; configuring all the + * devices/filesystems/components in the system; and call the entry point for + * the users application, i.e. main(). + */ + +void alt_main (void) +{ +#ifndef ALT_NO_EXIT + int result; +#endif + + /* ALT LOG - please see HAL/sys/alt_log_printf.h for details */ + ALT_LOG_PRINT_BOOT("[alt_main.c] Entering alt_main, calling alt_irq_init.\r\n"); + /* Initialize the interrupt controller. */ + alt_irq_init (NULL); + + /* Initialize the operating system */ + ALT_LOG_PRINT_BOOT("[alt_main.c] Done alt_irq_init, calling alt_os_init.\r\n"); + ALT_OS_INIT(); + + /* + * Initialize the semaphore used to control access to the file descriptor + * list. + */ + + ALT_LOG_PRINT_BOOT("[alt_main.c] Done OS Init, calling alt_sem_create.\r\n"); + ALT_SEM_CREATE (&alt_fd_list_lock, 1); + + /* Initialize the device drivers/software components. */ + ALT_LOG_PRINT_BOOT("[alt_main.c] Calling alt_sys_init.\r\n"); + alt_sys_init(); + ALT_LOG_PRINT_BOOT("[alt_main.c] Done alt_sys_init.\r\n"); + +#if !defined(ALT_USE_DIRECT_DRIVERS) && (defined(ALT_STDIN_PRESENT) || defined(ALT_STDOUT_PRESENT) || defined(ALT_STDERR_PRESENT)) + + /* + * Redirect stdio to the apropriate devices now that the devices have + * been initialized. This is only done if the user has requested these + * devices be present (not equal to /dev/null) and if direct drivers + * aren't being used. + */ + + ALT_LOG_PRINT_BOOT("[alt_main.c] Redirecting IO.\r\n"); + alt_io_redirect(ALT_STDOUT, ALT_STDIN, ALT_STDERR); +#endif + +#ifndef ALT_NO_C_PLUS_PLUS + /* + * Call the C++ constructors + */ + + ALT_LOG_PRINT_BOOT("[alt_main.c] Calling C++ constructors.\r\n"); + _do_ctors (); +#endif /* ALT_NO_C_PLUS_PLUS */ + +#if !defined(ALT_NO_C_PLUS_PLUS) && !defined(ALT_NO_CLEAN_EXIT) && !defined(ALT_NO_EXIT) + /* + * Set the C++ destructors to be called at system shutdown. This is only done + * if a clean exit has been requested (i.e. the exit() function has not been + * redefined as _exit()). This is in the interest of reducing code footprint, + * in that the atexit() overhead is removed when it's not needed. + */ + + ALT_LOG_PRINT_BOOT("[alt_main.c] Calling atexit.\r\n"); + atexit (_do_dtors); +#endif + + /* + * Finally, call main(). The return code is then passed to a subsequent + * call to exit() unless the application is never supposed to exit. + */ + + ALT_LOG_PRINT_BOOT("[alt_main.c] Calling main.\r\n"); + +#ifdef ALT_NO_EXIT + main (alt_argc, alt_argv, alt_envp); +#else + result = main (alt_argc, alt_argv, alt_envp); + close(STDOUT_FILENO); + exit (result); +#endif + + ALT_LOG_PRINT_BOOT("[alt_main.c] After main - we should not be here?.\r\n"); +} + diff --git a/software/qsys_tutorial_key3_bsp/HAL/src/alt_malloc_lock.c b/software/qsys_tutorial_key3_bsp/HAL/src/alt_malloc_lock.c new file mode 100644 index 0000000..8c78f46 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/HAL/src/alt_malloc_lock.c @@ -0,0 +1,52 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +/* + * These are the empty malloc lock/unlock stubs required by newlib. These are + * used to make newlib's malloc() function thread safe. The default HAL + * configuration is single threaded, so there is nothing to do here. Note that + * this requires that malloc is never called by an interrupt service routine. + */ + +void __malloc_lock ( struct _reent *_r ) +{ +} + +/* + * + */ + +void __malloc_unlock ( struct _reent *_r ) +{ +} diff --git a/software/qsys_tutorial_key3_bsp/HAL/src/alt_mcount.S b/software/qsys_tutorial_key3_bsp/HAL/src/alt_mcount.S new file mode 100644 index 0000000..3837523 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/HAL/src/alt_mcount.S @@ -0,0 +1,198 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003-2010 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/* mcount or _mcount is inserted by GCC before the function prologue of every + * function when a program is compiled for profiling. At the start of mcount, + * we guarantee that: + * ra = self_pc (an address in the function which called mcount) + * r8 = from_pc (an address in the function which called mcount's caller) + * + * Because this is always called at the start of a function we can corrupt + * r2,r3 and r11-r15. We must not corrupt r4-r7 (because they might contain + * function arguments for the instrumented function) or r8 (which holds ra + * for the instrumented function). + */ + + .global __mcount_fn_head + + .global mcount + + /* _mcount is used by gcc4 */ + .global _mcount + +_mcount: +mcount: + /* Use a hash to speed up locating fn_entry. We use bits 5 upwards to choose + * the bucket because bits 1:0 will always be 0, and because the distribution + * of values for bits 4:2 won't be even (aligning on cache line boundaries + * will skew it). Higher bits should be fairly random. + */ + /* fn_head = mcount_fn_head + (((unsigned int)self_pc >> 5) & (HASH_BUCKETS - 1)); */ + + srli r2, ra, 3 + movhi r3, %hiadj(__mcount_fn_head) + addi r3, r3, %lo(__mcount_fn_head) + andi r2, r2, 0xFC + add r11, r2, r3 + + /* The fast case is where we have already allocated a function arc, and so + * also a function pointer. + */ + + /* First find the function being called (using self_pc) */ + mov r10, r11 +0: + ldw r10, 0(r10) + beq r10, zero, .Lnew_arc + ldw r2, 4(r10) + bne r2, ra, 0b + + /* Found a function entry for this PC. Now look for an arc with a matching + * from_pc value. There will always be at least one arc. */ + ldw r3, 8(r10) +0: + ldw r2, 4(r3) + beq r2, r8, .Lfound_arc + ldw r3, 0(r3) + bne r3, zero, 0b + +.Lnew_arc: + addi sp, sp, -24 + +.LCFI0: + stw ra, 0(sp) + stw r4, 4(sp) + stw r5, 8(sp) + stw r6, 12(sp) + stw r7, 16(sp) + stw r8, 20(sp) + +.LCFI1: + /* __mcount_record(orig_ra, orig_r8, fn_entry, *fn_head); */ + mov r4, ra + mov r5, r8 + mov r6, r10 + mov r7, r11 + call __mcount_record + + /* restore registers from the stack */ + ldw ra, 0(sp) + ldw r4, 4(sp) + ldw r5, 8(sp) + ldw r6, 12(sp) + ldw r7, 16(sp) + ldw r8, 20(sp) + + addi sp, sp, 24 + +.LCFI2: + ret + +.Lfound_arc: + /* We've found the correct arc record. Increment the count and return */ + ldw r2, 8(r3) + addi r2, r2, 1 + stw r2, 8(r3) + ret + +.Lmcount_end: + + + +/* + * Dwarf2 debug information for the function. This provides GDB with the + * information it needs to backtrace out of this function. + */ + + .section .debug_frame,"",@progbits +.LCIE: + .4byte 2f - 1f /* Length */ +1: + .4byte 0xffffffff /* CIE id */ + .byte 0x1 /* Version */ + .string "" /* Augmentation */ + .uleb128 0x1 /* Code alignment factor */ + .sleb128 -4 /* Data alignment factor */ + .byte 0x1f /* Return address register */ + + .byte 0xc /* Define CFA */ + .uleb128 0x1b /* Register 27 (sp) */ + .uleb128 0x0 /* Offset 0 */ + + .align 2 /* Padding */ +2: + +.LFDE_mcount: + .4byte 2f - 1f /* Length */ +1: + .4byte .LCIE /* Pointer to CIE */ + .4byte mcount /* Start of table entry */ + .4byte .Lmcount_end - mcount /* Size of table entry */ + + .byte 0x4 /* Advance location */ + .4byte .LCFI0 - mcount /* to .LCFI0 */ + .byte 0xe /* Define CFA offset */ + .uleb128 24 /* to 24 */ + + .byte 0x4 /* Advance location */ + .4byte .LCFI1 - .LCFI0 /* to .LCFI1 */ + .byte 0x9f /* Store ra */ + .uleb128 0x6 /* at CFA-24 */ + .byte 0x84 /* Store r4 */ + .uleb128 0x5 /* at CFA-20 */ + .byte 0x85 /* Store r5 */ + .uleb128 0x4 /* at CFA-16 */ + .byte 0x86 /* Store r6 */ + .uleb128 0x3 /* at CFA-12 */ + .byte 0x87 /* Store r7 */ + .uleb128 0x2 /* at CFA-8 */ + .byte 0x88 /* Store r8 */ + .uleb128 0x1 /* at CFA-4 */ + + .byte 0x4 /* Advance location */ + .4byte .LCFI2 - .LCFI1 /* to .LCFI2 */ + .byte 0xe /* Define CFA offset */ + .uleb128 0 /* to 0 */ + .byte 0x8 /* Same value */ + .uleb128 31 /* for ra */ + .byte 0x8 /* Same value */ + .uleb128 4 /* for r4 */ + .byte 0x8 /* Same value */ + .uleb128 5 /* for r5 */ + .byte 0x8 /* Same value */ + .uleb128 6 /* for r6 */ + .byte 0x8 /* Same value */ + .uleb128 7 /* for r7 */ + .byte 0x8 /* Same value */ + .uleb128 8 /* for r8 */ + + .align 2 +2: + diff --git a/software/qsys_tutorial_key3_bsp/HAL/src/alt_open.c b/software/qsys_tutorial_key3_bsp/HAL/src/alt_open.c new file mode 100644 index 0000000..4790f53 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/HAL/src/alt_open.c @@ -0,0 +1,173 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_errno.h" +#include "sys/alt_warning.h" +#include "priv/alt_file.h" +#include "alt_types.h" +#include "os/alt_syscall.h" + +#ifdef ALT_USE_DIRECT_DRIVERS + +int ALT_OPEN (const char* file, int flags, int mode) +{ + /* Generate a link time warning, should this function ever be called. */ + + ALT_STUB_WARNING(open); + + /* Indicate an error */ + + ALT_ERRNO = ENOSYS; + return -1; +} + +#else /* !ALT_USE_DIRECT_DRIVERS */ + +extern alt_llist alt_dev_list; + +/* + * alt_file_locked() is used by open() to ensure that a device has not been + * previously locked for exclusive access using ioctl(). This test is only + * performed for devices. Filesystems are required to handle the ioctl() call + * themselves, and report the error from the filesystems open() function. + */ + +static int alt_file_locked (alt_fd* fd) +{ + alt_u32 i; + + /* + * Mark the file descriptor as belonging to a device. + */ + + fd->fd_flags |= ALT_FD_DEV; + + /* + * Loop through all current file descriptors searching for one that's locked + * for exclusive access. If a match is found, generate an error. + */ + + for (i = 0; i <= alt_max_fd; i++) + { + if ((alt_fd_list[i].dev == fd->dev) && + (alt_fd_list[i].fd_flags & ALT_FD_EXCL) && + (&alt_fd_list[i] != fd)) + { + return -EACCES; + } + } + + /* The device is not locked */ + + return 0; +} + +/* + * open() is called in order to get a file descriptor that reference the file + * or device named "name". This descriptor can then be used to manipulate the + * file/device using the standard system calls, e.g. write(), read(), ioctl() + * etc. + * + * This is equivalent to the standard open() system call. + * + * ALT_OPEN is mapped onto the open() system call in alt_syscall.h + */ + +int ALT_OPEN (const char* file, int flags, int mode) +{ + alt_dev* dev; + alt_fd* fd; + int index = -1; + int status = -ENODEV; + int isafs = 0; + + /* + * Check the device list, to see if a device with a matching name is + * registered. + */ + + if (!(dev = alt_find_dev (file, &alt_dev_list))) + { + /* No matching device, so try the filesystem list */ + + dev = alt_find_file (file); + isafs = 1; + } + + /* + * If a matching device or filesystem is found, allocate a file descriptor. + */ + + if (dev) + { + if ((index = alt_get_fd (dev)) < 0) + { + status = index; + } + else + { + fd = &alt_fd_list[index]; + fd->fd_flags = (flags & ~ALT_FD_FLAGS_MASK); + + /* If this is a device, ensure it isn't already locked */ + + if (isafs || ((status = alt_file_locked (fd)) >= 0)) + { + /* + * If the device or filesystem provides an open() callback function, + * call it now to perform any device/filesystem specific operations. + */ + + status = (dev->open) ? dev->open(fd, file, flags, mode): 0; + } + } + } + else + { + status = -ENODEV; + } + + /* Allocation failed, so clean up and return an error */ + + if (status < 0) + { + alt_release_fd (index); + ALT_ERRNO = -status; + return -1; + } + + /* return the reference upon success */ + + return index; +} + +#endif /* ALT_USE_DIRECT_DRIVERS */ diff --git a/software/qsys_tutorial_key3_bsp/HAL/src/alt_printf.c b/software/qsys_tutorial_key3_bsp/HAL/src/alt_printf.c new file mode 100644 index 0000000..e742b57 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/HAL/src/alt_printf.c @@ -0,0 +1,127 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/* + * This file provides a very minimal printf implementation for use with very + * small applications. Only the following format strings are supported: + * %x + * %s + * %c + * %% + */ + +#include +#include "sys/alt_stdio.h" + +/* + * ALT printf function + */ +void +alt_printf(const char* fmt, ... ) +{ + va_list args; + va_start(args, fmt); + const char *w; + char c; + + /* Process format string. */ + w = fmt; + while ((c = *w++) != 0) + { + /* If not a format escape character, just print */ + /* character. Otherwise, process format string. */ + if (c != '%') + { + alt_putchar(c); + } + else + { + /* Get format character. If none */ + /* available, processing is complete. */ + if ((c = *w++) != 0) + { + if (c == '%') + { + /* Process "%" escape sequence. */ + alt_putchar(c); + } + else if (c == 'c') + { + int v = va_arg(args, int); + alt_putchar(v); + } + else if (c == 'x') + { + /* Process hexadecimal number format. */ + unsigned long v = va_arg(args, unsigned long); + unsigned long digit; + int digit_shift; + + /* If the number value is zero, just print and continue. */ + if (v == 0) + { + alt_putchar('0'); + continue; + } + + /* Find first non-zero digit. */ + digit_shift = 28; + while (!(v & (0xF << digit_shift))) + digit_shift -= 4; + + /* Print digits. */ + for (; digit_shift >= 0; digit_shift -= 4) + { + digit = (v & (0xF << digit_shift)) >> digit_shift; + if (digit <= 9) + c = '0' + digit; + else + c = 'a' + digit - 10; + alt_putchar(c); + } + } + else if (c == 's') + { + /* Process string format. */ + char *s = va_arg(args, char *); + + while(*s) + alt_putchar(*s++); + } + } + else + { + break; + } + } + } +} diff --git a/software/qsys_tutorial_key3_bsp/HAL/src/alt_putchar.c b/software/qsys_tutorial_key3_bsp/HAL/src/alt_putchar.c new file mode 100644 index 0000000..badaa02 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/HAL/src/alt_putchar.c @@ -0,0 +1,59 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +#ifdef ALT_USE_DIRECT_DRIVERS +#include "system.h" +#include "sys/alt_driver.h" +#include "sys/alt_stdio.h" +#endif + +/* + * Uses the ALT_DRIVER_WRITE() macro to call directly to driver if available. + * Otherwise, uses newlib provided putchar() routine. + */ +int +alt_putchar(int c) +{ +#ifdef ALT_USE_DIRECT_DRIVERS + ALT_DRIVER_WRITE_EXTERNS(ALT_STDOUT_DEV); + char c1 = (char)(c & 0xff); + + if (ALT_DRIVER_WRITE(ALT_STDOUT_DEV, &c1, 1, 0) == -1) { + return -1; + } + return c; +#else + return putchar(c); +#endif +} diff --git a/software/qsys_tutorial_key3_bsp/HAL/src/alt_putstr.c b/software/qsys_tutorial_key3_bsp/HAL/src/alt_putstr.c new file mode 100644 index 0000000..5345945 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/HAL/src/alt_putstr.c @@ -0,0 +1,55 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +#ifdef ALT_USE_DIRECT_DRIVERS +#include +#include "system.h" +#include "sys/alt_driver.h" +#include "sys/alt_stdio.h" +#endif + +/* + * Uses the ALT_DRIVER_WRITE() macro to call directly to driver if available. + * Otherwise, uses newlib provided fputs() routine. + */ +int +alt_putstr(const char* str) +{ +#ifdef ALT_USE_DIRECT_DRIVERS + ALT_DRIVER_WRITE_EXTERNS(ALT_STDOUT_DEV); + return ALT_DRIVER_WRITE(ALT_STDOUT_DEV, str, strlen(str), 0); +#else + return fputs(str, stdout); +#endif +} diff --git a/software/qsys_tutorial_key3_bsp/HAL/src/alt_read.c b/software/qsys_tutorial_key3_bsp/HAL/src/alt_read.c new file mode 100644 index 0000000..1c89777 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/HAL/src/alt_read.c @@ -0,0 +1,125 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include + +#include "sys/alt_errno.h" +#include "sys/alt_warning.h" +#include "priv/alt_file.h" +#include "os/alt_syscall.h" + +/* + * The read() system call is used to read a block of data from a file or device. + * This function simply vectors the request to the device driver associated + * with the input file descriptor "file". + * + * ALT_READ is mapped onto the read() system call in alt_syscall.h + */ + +#ifdef ALT_USE_DIRECT_DRIVERS + +#include "system.h" +#include "sys/alt_driver.h" + +/* + * Provide minimal version that just reads from the stdin device when provided. + */ + +int ALT_READ (int file, void *ptr, size_t len) +{ +#ifdef ALT_STDIN_PRESENT + ALT_DRIVER_READ_EXTERNS(ALT_STDIN_DEV); +#endif + +#if !defined(ALT_STDIN_PRESENT) + /* Generate a link time warning, should this function ever be called. */ + ALT_STUB_WARNING(read); +#endif + + switch (file) { +#ifdef ALT_STDIN_PRESENT + case 0: /* stdin file descriptor */ + return ALT_DRIVER_READ(ALT_STDIN_DEV, ptr, len, 0); +#endif /* ALT_STDIN_PRESENT */ + default: + ALT_ERRNO = EBADFD; + return -1; + } +} + +#else /* !ALT_USE_DIRECT_DRIVERS */ + +int ALT_READ (int file, void *ptr, size_t len) +{ + alt_fd* fd; + int rval; + + /* + * A common error case is that when the file descriptor was created, the call + * to open() failed resulting in a negative file descriptor. This is trapped + * below so that we don't try and process an invalid file descriptor. + */ + + fd = (file < 0) ? NULL : &alt_fd_list[file]; + + if (fd) + { + /* + * If the file has not been opened with read access, or if the driver does + * not provide an implementation of read(), generate an error. Otherwise + * call the drivers read() function to process the request. + */ + + if (((fd->fd_flags & O_ACCMODE) != O_WRONLY) && + (fd->dev->read)) + { + if ((rval = fd->dev->read(fd, ptr, len)) < 0) + { + ALT_ERRNO = -rval; + return -1; + } + return rval; + } + else + { + ALT_ERRNO = EACCES; + } + } + else + { + ALT_ERRNO = EBADFD; + } + return -1; +} + +#endif /* ALT_USE_DIRECT_DRIVERS */ diff --git a/software/qsys_tutorial_key3_bsp/HAL/src/alt_release_fd.c b/software/qsys_tutorial_key3_bsp/HAL/src/alt_release_fd.c new file mode 100644 index 0000000..84733a7 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/HAL/src/alt_release_fd.c @@ -0,0 +1,54 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_dev.h" +#include "priv/alt_file.h" + +/* + * alt_release_fd() is called to free an allocated file descriptor. This is + * done by setting the device pointer in the file descriptor structure to zero. + * + * File descriptors correcponding to standard in, standard out and standard + * error cannont be released backed to the pool. They are always reserved. + */ + +void alt_release_fd (int fd) +{ + if (fd > 2) + { + alt_fd_list[fd].fd_flags = 0; + alt_fd_list[fd].dev = 0; + } +} + + + diff --git a/software/qsys_tutorial_key3_bsp/HAL/src/alt_remap_cached.c b/software/qsys_tutorial_key3_bsp/HAL/src/alt_remap_cached.c new file mode 100644 index 0000000..f61cb9c --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/HAL/src/alt_remap_cached.c @@ -0,0 +1,50 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003,2007 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "sys/alt_cache.h" +#include "system.h" + +#ifdef NIOS2_MMU_PRESENT +/* Convert KERNEL region address to IO region address */ +#define BYPASS_DCACHE_MASK (0x1 << 29) +#else +/* Set bit 31 of address to bypass D-cache */ +#define BYPASS_DCACHE_MASK (0x1 << 31) +#endif + +/* + * Convert a pointer to a block of uncached memory, into a block of + * cached memory. + */ + +void* alt_remap_cached (volatile void* ptr, alt_u32 len) +{ + return (void*) (((alt_u32) ptr) & ~BYPASS_DCACHE_MASK); +} diff --git a/software/qsys_tutorial_key3_bsp/HAL/src/alt_remap_uncached.c b/software/qsys_tutorial_key3_bsp/HAL/src/alt_remap_uncached.c new file mode 100644 index 0000000..7ff6302 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/HAL/src/alt_remap_uncached.c @@ -0,0 +1,51 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003,2007 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "sys/alt_cache.h" +#include "system.h" + +#ifdef NIOS2_MMU_PRESENT +/* Convert KERNEL region address to IO region address */ +#define BYPASS_DCACHE_MASK (0x1 << 29) +#else +/* Set bit 31 of address to bypass D-cache */ +#define BYPASS_DCACHE_MASK (0x1 << 31) +#endif + +/* + * Convert a pointer to a block of cached memory, into a block of + * uncached memory. + */ + +volatile void* alt_remap_uncached (void* ptr, alt_u32 len) +{ + alt_dcache_flush (ptr, len); + return (volatile void*) (((alt_u32) ptr) | BYPASS_DCACHE_MASK); +} diff --git a/software/qsys_tutorial_key3_bsp/HAL/src/alt_rename.c b/software/qsys_tutorial_key3_bsp/HAL/src/alt_rename.c new file mode 100644 index 0000000..48afac0 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/HAL/src/alt_rename.c @@ -0,0 +1,55 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_errno.h" +#include "sys/alt_warning.h" +#include "os/alt_syscall.h" + +/* + * _rename() is used by newlib to rename an existing file. This is unsupported + * in the HAL environment. However a "do-nothing" implementation is still + * provied for newlib compatability. + * + * ALT_RENAME is mapped onto the _rename() system call in alt_syscall.h + */ + +int ALT_RENAME (char *existing, char *new) +{ + /* Generate a link time warning, should this function ever be called. */ + + ALT_STUB_WARNING(_rename); + + /* Indicate an error */ + + ALT_ERRNO = ENOSYS; + return -1; +} diff --git a/software/qsys_tutorial_key3_bsp/HAL/src/alt_sbrk.c b/software/qsys_tutorial_key3_bsp/HAL/src/alt_sbrk.c new file mode 100644 index 0000000..b8c3799 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/HAL/src/alt_sbrk.c @@ -0,0 +1,136 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +#include "os/alt_syscall.h" + +#include "sys/alt_irq.h" +#include "sys/alt_stack.h" + +#include "system.h" + +/* + * sbrk() is called to dynamically extend the data segment for the application. + * Thie input argument "incr" is the size of the block to allocate. + * + * This simple implementation does not perform any bounds checking. Memory will + * be allocated, even if the request region colides with the stack or overflows + * the available physical memory. + * + * ALT_SBRK is mapped onto the sbrk() system call in alt_syscall.h + * + * This function is called by the profiling code to allocate memory so must be + * safe if called from an interrupt context. It must also not be instrumented + * because that would lead to an infinate loop. + */ + +extern char __alt_heap_start[]; /* set by linker */ +extern char __alt_heap_limit[]; /* set by linker */ + +static char *heap_end = __alt_heap_start; + +#if defined(ALT_EXCEPTION_STACK) && defined(ALT_STACK_CHECK) +char * alt_exception_old_stack_limit = NULL; +#endif + +caddr_t ALT_SBRK (int incr) __attribute__ ((no_instrument_function )); + +caddr_t ALT_SBRK (int incr) +{ + alt_irq_context context; + char *prev_heap_end; + + context = alt_irq_disable_all(); + + /* Always return data aligned on a word boundary */ + heap_end = (char *)(((unsigned int)heap_end + 3) & ~3); + +#ifdef ALT_MAX_HEAP_BYTES + /* + * User specified a maximum heap size. Return -1 if it would + * be exceeded by this sbrk call. + */ + if (((heap_end + incr) - __alt_heap_start) > ALT_MAX_HEAP_BYTES) { + alt_irq_enable_all(context); + return (caddr_t)-1; + } +#else + if ((heap_end + incr) > __alt_heap_limit) { + alt_irq_enable_all(context); + return (caddr_t)-1; + } +#endif + + prev_heap_end = heap_end; + heap_end += incr; + +#ifdef ALT_STACK_CHECK + /* + * If the stack and heap are contiguous then extending the heap reduces the + * space available for the stack. If we are still using the default stack + * then adjust the stack limit to note this, while checking for stack + * pointer overflow. + * If the stack limit isn't pointing at the top of the heap then the code + * is using a different stack so none of this needs to be done. + */ + + if (alt_stack_limit() == prev_heap_end) + { + if (alt_stack_pointer() <= heap_end) + alt_report_stack_overflow(); + + alt_set_stack_limit(heap_end); + } + +#ifdef ALT_EXCEPTION_STACK + /* + * If we are executing from the exception stack then compare against the + * stack we switched away from as well. The exception stack is a fixed + * size so doesn't need to be checked. + */ + + if (alt_exception_old_stack_limit == prev_heap_end) + { + if (alt_exception_old_stack_limit <= heap_end) + alt_report_stack_overflow(); + + alt_exception_old_stack_limit = heap_end; + } +#endif + +#endif + + alt_irq_enable_all(context); + + return (caddr_t) prev_heap_end; +} diff --git a/software/qsys_tutorial_key3_bsp/HAL/src/alt_settod.c b/software/qsys_tutorial_key3_bsp/HAL/src/alt_settod.c new file mode 100644 index 0000000..59db0f8 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/HAL/src/alt_settod.c @@ -0,0 +1,96 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include + +#include "sys/alt_errno.h" +#include "sys/alt_alarm.h" +#include "os/alt_syscall.h" + +/* + * "alt_timezone" and "alt_resettime" are the values of the the reset time and + * time zone set through the last call to settimeofday(). By default they are + * zero initialised. + */ + +extern struct timezone alt_timezone; +extern struct timeval alt_resettime; + +/* + * Macro defining the number of micoseconds in a second. + */ + +#define ALT_US (1000000) + + +/* + * settimeofday() can be called to calibrate the system clock, so that + * subsequent calls to gettimeofday() will return the elapsed "wall clock" + * time. + * + * This is done by updating the global structures "alt_resettime" and + * "alt_timezone" so that an immediate call to gettimeofday() would return + * the value specified by "t" and "tz". + * + * Warning: if this function is called concurrently with a call to + * gettimeofday(), the value returned by gettimeofday() will be unreliable. + * + * ALT_SETTIMEOFDAY is mapped onto the settimeofday() system call in + * alt_syscall.h + */ + +int ALT_SETTIMEOFDAY (const struct timeval *t, + const struct timezone *tz) +{ + alt_u32 nticks = alt_nticks (); + alt_u32 tick_rate = alt_ticks_per_second (); + + /* If there is a system clock available, update the current time */ + + if (tick_rate) + { + alt_resettime.tv_sec = t->tv_sec - nticks/tick_rate; + alt_resettime.tv_usec = t->tv_usec - + ((nticks*(ALT_US/tick_rate))%ALT_US); + + alt_timezone.tz_minuteswest = tz->tz_minuteswest; + alt_timezone.tz_dsttime = tz->tz_dsttime; + + return 0; + } + + /* There's no system clock available */ + + ALT_ERRNO = ENOSYS; + return -1; +} diff --git a/software/qsys_tutorial_key3_bsp/HAL/src/alt_software_exception.S b/software/qsys_tutorial_key3_bsp/HAL/src/alt_software_exception.S new file mode 100644 index 0000000..2142594 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/HAL/src/alt_software_exception.S @@ -0,0 +1,53 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003-2005 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + + /* + * This file provides the global symbol: software_exception. It is provided to + * support legacy code, and should not be used by new software. + * + * It is used by legacy code to invoke the software exception handler as + * defined by version 1.0 of the Nios II kit. It should only be used when you + * are providing your own interrupt entry point, i.e. you are not using + * alt_irq_entry. + */ + +#include "system.h" + + /* + * Pull in the exception handler. + */ + + .globl alt_exception + + .section .exceptions.entry.label, "xa" + + .globl software_exception + .type software_exception, @function +software_exception: diff --git a/software/qsys_tutorial_key3_bsp/HAL/src/alt_stat.c b/software/qsys_tutorial_key3_bsp/HAL/src/alt_stat.c new file mode 100644 index 0000000..44e207b --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/HAL/src/alt_stat.c @@ -0,0 +1,59 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include +#include +#include + +#include "os/alt_syscall.h" + +/* + * The stat() function is similar to the fstat() function in that it is used to + * obtain status information about a file. Instead of using an open file + * descriptor (like fstat()), stat() takes the name of a file as an input + * argument. + * + * ALT_STAT is mapped onto the stat() system call in alt_syscall.h + */ + +int ALT_STAT (const char *file, struct stat *st) +{ + int fd; + int rc; + + fd = open (file, 0); + rc = fstat (fd, st); + close (fd); + + return rc; +} diff --git a/software/qsys_tutorial_key3_bsp/HAL/src/alt_tick.c b/software/qsys_tutorial_key3_bsp/HAL/src/alt_tick.c new file mode 100644 index 0000000..c73488d --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/HAL/src/alt_tick.c @@ -0,0 +1,149 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_irq.h" +#include "sys/alt_alarm.h" +#include "os/alt_hooks.h" +#include "alt_types.h" + +/* + * "_alt_tick_rate" is used to store the value of the system clock frequency + * in ticks per second. It is initialised to zero, which corresponds to there + * being no system clock facility available. + */ + +alt_u32 _alt_tick_rate = 0; + +/* + * "_alt_nticks" is the number of system clock ticks that have elapsed since + * reset. + */ + +volatile alt_u32 _alt_nticks = 0; + +/* + * "alt_alarm_list" is the head of a linked list of registered alarms. This is + * initialised to be an empty list. + */ + +ALT_LLIST_HEAD(alt_alarm_list); + +/* + * alt_alarm_stop() is called to remove an alarm from the list of registered + * alarms. Alternatively an alarm can unregister itself by returning zero when + * the alarm executes. + */ + +void alt_alarm_stop (alt_alarm* alarm) +{ + alt_irq_context irq_context; + + irq_context = alt_irq_disable_all(); + alt_llist_remove (&alarm->llist); + alt_irq_enable_all (irq_context); +} + +/* + * alt_tick() is periodically called by the system clock driver in order to + * process the registered list of alarms. Each alarm is registed with a + * callback interval, and a callback function, "callback". + * + * The return value of the callback function indicates how many ticks are to + * elapse until the next callback. A return value of zero indicates that the + * alarm should be deactivated. + * + * alt_tick() is expected to run at interrupt level. + */ + +void alt_tick (void) +{ + alt_alarm* next; + alt_alarm* alarm = (alt_alarm*) alt_alarm_list.next; + + alt_u32 next_callback; + + /* update the tick counter */ + + _alt_nticks++; + + /* process the registered callbacks */ + + while (alarm != (alt_alarm*) &alt_alarm_list) + { + next = (alt_alarm*) alarm->llist.next; + + /* + * Upon the tick-counter rolling over it is safe to clear the + * roll-over flag; once the flag is cleared this (or subsequnt) + * tick events are enabled to generate an alarm event. + */ + if ((alarm->rollover) && (_alt_nticks == 0)) + { + alarm->rollover = 0; + } + + /* if the alarm period has expired, make the callback */ + if ((alarm->time <= _alt_nticks) && (alarm->rollover == 0)) + { + next_callback = alarm->callback (alarm->context); + + /* deactivate the alarm if the return value is zero */ + + if (next_callback == 0) + { + alt_alarm_stop (alarm); + } + else + { + alarm->time += next_callback; + + /* + * If the desired alarm time causes a roll-over, set the rollover + * flag. This will prevent the subsequent tick event from causing + * an alarm too early. + */ + if(alarm->time < _alt_nticks) + { + alarm->rollover = 1; + } + } + } + alarm = next; + } + + /* + * Update the operating system specific timer facilities. + */ + + ALT_OS_TIME_TICK(); +} + diff --git a/software/qsys_tutorial_key3_bsp/HAL/src/alt_times.c b/software/qsys_tutorial_key3_bsp/HAL/src/alt_times.c new file mode 100644 index 0000000..4dd965d --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/HAL/src/alt_times.c @@ -0,0 +1,71 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +#include "sys/alt_errno.h" +#include "sys/alt_alarm.h" +#include "os/alt_syscall.h" + +/* + * The times() function is used by newlib to obtain elapsed time information. + * The return value is the elapsed time since reset in system clock ticks. Note + * that this is distinct from the strict Posix version of times(), which should + * return the time since: 0 hours, 0 minutes, 0 seconds, January 1, 1970, GMT. + * + * The input structure is filled in with time accounting information. This + * implementation attributes all cpu time to the system. + * + * ALT_TIMES is mapped onto the times() system call in alt_syscall.h + */ + +clock_t ALT_TIMES (struct tms *buf) +{ + clock_t ticks = alt_nticks(); + + /* If there is no system clock present, generate an error */ + + if (!alt_ticks_per_second()) + { + ALT_ERRNO = ENOSYS; + return 0; + } + + /* Otherwise return the elapsed time */ + + buf->tms_utime = 0; + buf->tms_stime = ticks; + buf->tms_cutime = 0; + buf->tms_cstime = 0; + + return ticks; +} diff --git a/software/qsys_tutorial_key3_bsp/HAL/src/alt_uncached_free.c b/software/qsys_tutorial_key3_bsp/HAL/src/alt_uncached_free.c new file mode 100644 index 0000000..6e362ba --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/HAL/src/alt_uncached_free.c @@ -0,0 +1,49 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003,2007 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "sys/alt_cache.h" +#include "system.h" + +#ifdef NIOS2_MMU_PRESENT +/* Convert KERNEL region address to IO region address */ +#define BYPASS_DCACHE_MASK (0x1 << 29) +#else +/* Set bit 31 of address to bypass D-cache */ +#define BYPASS_DCACHE_MASK (0x1 << 31) +#endif + +/* + * Free a block of uncached memory. + */ + +void alt_uncached_free (volatile void* ptr) +{ + free ((void*) (((alt_u32) ptr) & ~BYPASS_DCACHE_MASK)); +} diff --git a/software/qsys_tutorial_key3_bsp/HAL/src/alt_uncached_malloc.c b/software/qsys_tutorial_key3_bsp/HAL/src/alt_uncached_malloc.c new file mode 100644 index 0000000..ab3416d --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/HAL/src/alt_uncached_malloc.c @@ -0,0 +1,55 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003,2007 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "sys/alt_cache.h" +#include "system.h" + +#ifdef NIOS2_MMU_PRESENT +/* Convert KERNEL region address to IO region address */ +#define BYPASS_DCACHE_MASK (0x1 << 29) +#else +/* Set bit 31 of address to bypass D-cache */ +#define BYPASS_DCACHE_MASK (0x1 << 31) +#endif + +/* + * Allocate a block of uncached memory. + */ + +volatile void* alt_uncached_malloc (size_t size) +{ + void* ptr; + + ptr = malloc (size); + + alt_dcache_flush (ptr, size); + + return ptr ? (volatile void*) (((alt_u32) ptr) | BYPASS_DCACHE_MASK) : NULL; +} diff --git a/software/qsys_tutorial_key3_bsp/HAL/src/alt_unlink.c b/software/qsys_tutorial_key3_bsp/HAL/src/alt_unlink.c new file mode 100644 index 0000000..29e35d6 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/HAL/src/alt_unlink.c @@ -0,0 +1,55 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_errno.h" +#include "sys/alt_warning.h" +#include "os/alt_syscall.h" + +/* + * unlink() is used by newlib to delete an existing link to a file. This is + * unsupported in the HAL environment. However a "do-nothing" implementation + * is still provied for newlib compatability. + * + * ALT_UNLINK is mapped onto the unlink() system call in alt_syscall.h + */ + +int ALT_UNLINK (char *name) +{ + /* Generate a link time warning, should this function ever be called. */ + + ALT_STUB_WARNING(unlink); + + /* Indicate an error */ + + ALT_ERRNO = ENOSYS; + return -1; +} diff --git a/software/qsys_tutorial_key3_bsp/HAL/src/alt_usleep.c b/software/qsys_tutorial_key3_bsp/HAL/src/alt_usleep.c new file mode 100644 index 0000000..2330eb8 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/HAL/src/alt_usleep.c @@ -0,0 +1,52 @@ +/* + * Copyright (c) 2003 Altera Corporation, San Jose, California, USA. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + * ------------ + * + * Altera does not recommend, suggest or require that this reference design + * file be used in conjunction or combination with any other product. + * + * usleep.c - Microsecond delay routine + */ + +#include + +#include "priv/alt_busy_sleep.h" +#include "os/alt_syscall.h" + +/* + * This function simply calls alt_busy_sleep() to perform the delay. This + * function implements the delay as a calibrated "busy loop". + * + * ALT_USLEEP is mapped onto the usleep() system call in alt_syscall.h + */ + + + +#if defined (__GNUC__) && __GNUC__ >= 4 +int ALT_USLEEP (useconds_t us) +#else +unsigned int ALT_USLEEP (unsigned int us) +#endif +{ + return alt_busy_sleep(us); +} diff --git a/software/qsys_tutorial_key3_bsp/HAL/src/alt_wait.c b/software/qsys_tutorial_key3_bsp/HAL/src/alt_wait.c new file mode 100644 index 0000000..a42f80f --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/HAL/src/alt_wait.c @@ -0,0 +1,52 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_errno.h" +#include "os/alt_syscall.h" + +/* + * wait() is used by newlib to wait for all child processes to exit. Since the + * HAL does not support spawning child processes, this returns immediately as + * there can't be anythign to wait for. + * + * ALT_WAIT is mapped onto the wait() system call in alt_syscall.h + */ + +int ALT_WAIT (int *status) +{ + *status = 0; + + ALT_ERRNO = ECHILD; + + return -1; +} + diff --git a/software/qsys_tutorial_key3_bsp/HAL/src/alt_write.c b/software/qsys_tutorial_key3_bsp/HAL/src/alt_write.c new file mode 100644 index 0000000..51debb5 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/HAL/src/alt_write.c @@ -0,0 +1,138 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include + +#include "sys/alt_errno.h" +#include "sys/alt_warning.h" +#include "priv/alt_file.h" +#include "os/alt_syscall.h" + +#include "sys/alt_log_printf.h" + +/* + * The write() system call is used to write a block of data to a file or + * device. This function simply vectors the request to the device driver + * associated with the input file descriptor "file". + * + * ALT_WRITE is mapped onto the write() system call in alt_syscall.h + */ + +#ifdef ALT_USE_DIRECT_DRIVERS + +#include "system.h" +#include "sys/alt_driver.h" + +/* + * Provide minimal version that just writes to the stdout/stderr devices + * when provided. + */ + +int ALT_WRITE (int file, const void *ptr, size_t len) +{ +#ifdef ALT_STDOUT_PRESENT + ALT_DRIVER_WRITE_EXTERNS(ALT_STDOUT_DEV); +#endif +#ifdef ALT_STDERR_PRESENT + ALT_DRIVER_WRITE_EXTERNS(ALT_STDERR_DEV); +#endif + +#if !defined(ALT_STDOUT_PRESENT) && !defined(ALT_STDERR_PRESENT) + /* Generate a link time warning, should this function ever be called. */ + ALT_STUB_WARNING(write); +#endif + + switch (file) { +#ifdef ALT_STDOUT_PRESENT + case 1: /* stdout file descriptor */ + return ALT_DRIVER_WRITE(ALT_STDOUT_DEV, ptr, len, 0); +#endif /* ALT_STDOUT_PRESENT */ +#ifdef ALT_STDERR_PRESENT + case 2: /* stderr file descriptor */ + return ALT_DRIVER_WRITE(ALT_STDERR_DEV, ptr, len, 0); +#endif /* ALT_STDERR_PRESENT */ + default: + ALT_ERRNO = EBADFD; + return -1; + } +} + +#else /* !ALT_USE_DIRECT_DRIVERS */ + +int ALT_WRITE (int file, const void *ptr, size_t len) +{ + alt_fd* fd; + int rval; + + /* + * A common error case is that when the file descriptor was created, the call + * to open() failed resulting in a negative file descriptor. This is trapped + * below so that we don't try and process an invalid file descriptor. + */ + + fd = (file < 0) ? NULL : &alt_fd_list[file]; + + if (fd) + { + /* + * If the file has not been opened with write access, or if the driver does + * not provide an implementation of write(), generate an error. Otherwise + * call the drivers write() function to process the request. + */ + + if (((fd->fd_flags & O_ACCMODE) != O_RDONLY) && fd->dev->write) + { + + /* ALT_LOG - see altera_hal/HAL/inc/sys/alt_log_printf.h */ + ALT_LOG_WRITE_FUNCTION(ptr,len); + + if ((rval = fd->dev->write(fd, ptr, len)) < 0) + { + ALT_ERRNO = -rval; + return -1; + } + return rval; + } + else + { + ALT_ERRNO = EACCES; + } + } + else + { + ALT_ERRNO = EBADFD; + } + return -1; +} + +#endif /* ALT_USE_DIRECT_DRIVERS */ diff --git a/software/qsys_tutorial_key3_bsp/HAL/src/altera_nios2_qsys_irq.c b/software/qsys_tutorial_key3_bsp/HAL/src/altera_nios2_qsys_irq.c new file mode 100644 index 0000000..c7a4f93 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/HAL/src/altera_nios2_qsys_irq.c @@ -0,0 +1,37 @@ +/* + * Copyright (c) 2009 Altera Corporation, San Jose, California, USA. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + * altera_nios2_irq.c - Support for Nios II internal interrupt controller. + * + */ + +#include "sys/alt_irq.h" +#include "altera_nios2_qsys_irq.h" + +/* + * To initialize the internal interrupt controller, just clear the IENABLE + * register so that all possible IRQs are disabled. + */ +void altera_nios2_qsys_irq_init(void) +{ + NIOS2_WRITE_IENABLE(0); +} diff --git a/software/qsys_tutorial_key3_bsp/HAL/src/crt0.S b/software/qsys_tutorial_key3_bsp/HAL/src/crt0.S new file mode 100644 index 0000000..582445d --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/HAL/src/crt0.S @@ -0,0 +1,456 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "system.h" +#include "nios2.h" + +/* Setup header files to work with assembler code. */ +#define ALT_ASM_SRC + +/* Debug logging facility */ +#include "sys/alt_log_printf.h" + +/*************************************************************************\ +| MACROS | +\*************************************************************************/ + +/* + * The new build tools explicitly define macros when alt_load() + * must be called. The define ALT_LOAD_EXPLICITLY_CONTROLLED tells us that + * those macros are controlling if alt_load() needs to be called. + */ +#ifdef ALT_LOAD_EXPLICITLY_CONTROLLED + +/* Need to call alt_load() if any of these sections are being copied. */ +#if defined(ALT_LOAD_COPY_RODATA) || defined(ALT_LOAD_COPY_RWDATA) || defined(ALT_LOAD_COPY_EXCEPTIONS) +#define CALL_ALT_LOAD +#endif + +#else /* !ALT_LOAD_EXPLICITLY_CONTROLLED */ + +/* + * The legacy build tools use the following macros to detect when alt_load() + * needs to be called. + */ + +#define __ALT_LOAD_SECTIONS(res, text, rodata, exc) \ + ((res##_BASE != rodata##_BASE) || \ + (res##_BASE != rwdata##_BASE) || \ + (res##_BASE != exc##_BASE)) + +#define _ALT_LOAD_SECTIONS(res, text, rodata, exc) \ + __ALT_LOAD_SECTIONS(res, text, rodata, exc) + +#define ALT_LOAD_SECTIONS _ALT_LOAD_SECTIONS(ALT_RESET_DEVICE, \ + ALT_RODATA_DEVICE, \ + ALT_RWDATA_DEVICE, \ + ALT_EXCEPTIONS_DEVICE) + +/* Call alt_load() if there is no bootloader and ALT_LOAD_SECTIONS isn't 0. */ +#if defined(ALT_NO_BOOTLOADER) && ALT_LOAD_SECTIONS +#define CALL_ALT_LOAD +#endif + +#endif /* !ALT_LOAD_EXPLICITLY_CONTROLLED */ + +/* + * When the legacy build tools define a macro called ALT_NO_BOOTLOADER, + * it indicates that initialization code is allowed at the reset address. + * The new build tools define a macro called ALT_ALLOW_CODE_AT_RESET for + * the same purpose. + */ +#ifdef ALT_NO_BOOTLOADER +#define ALT_ALLOW_CODE_AT_RESET +#endif + +/*************************************************************************\ +| EXTERNAL REFERENCES | +\*************************************************************************/ + +/* + * The entry point for user code is either "main" in hosted mode, or + * "alt_main" in standalone mode. These are explicitly referenced here, + * to ensure they are built into the executable. This allows the user + * to build them into libraries, rather than supplying them in object + * files at link time. + */ + .globl main + .globl alt_main + +/* + * Create a reference to the software multiply/divide and trap handers, + * so that if they are provided, they will appear in the executable. + */ +#ifndef ALT_NO_INSTRUCTION_EMULATION + .globl alt_exception_muldiv +#endif +#ifdef ALT_TRAP_HANDLER + .globl alt_exception_trap +#endif + +/* + * Linker defined symbols used to initialize bss. + */ +.globl __bss_start +.globl __bss_end + +/*************************************************************************\ +| RESET SECTION (.entry) | +\*************************************************************************/ + +/* + * This is the reset entry point for Nios II. + * + * At reset, only the cache line which contain the reset vector is + * initialized by the hardware. The code within the first cache line + * initializes the remainder of the instruction cache. + */ + + .section .entry, "xa" + .align 5 + +/* + * Explicitly allow the use of r1 (the assembler temporary register) + * within this code. This register is normally reserved for the use of + * the assembler. + */ + .set noat + +/* + * Some tools want to know where the reset vector is. + * Code isn't always provided at the reset vector but at least the + * __reset label always contains the reset vector address because + * it is defined at the start of the .entry section. + */ + + .globl __reset + .type __reset, @function +__reset: + +/* + * Initialize the instruction cache if present (i.e. size > 0) and + * reset code is allowed unless optimizing for RTL simulation. + * RTL simulations can ensure the instruction cache is already initialized + * so skipping this loop speeds up RTL simulation. + */ + +#if NIOS2_ICACHE_SIZE > 0 && defined(ALT_ALLOW_CODE_AT_RESET) && !defined(ALT_SIM_OPTIMIZE) + /* Assume the instruction cache size is always a power of two. */ +#if NIOS2_ICACHE_SIZE > 0x8000 + movhi r2, %hi(NIOS2_ICACHE_SIZE) +#else + movui r2, NIOS2_ICACHE_SIZE +#endif + +0: + initi r2 + addi r2, r2, -NIOS2_ICACHE_LINE_SIZE + bgt r2, zero, 0b +1: + + /* + * The following debug information tells the ISS not to run the loop above + * but to perform its actions using faster internal code. + */ + .pushsection .debug_alt_sim_info + .int 1, 1, 0b, 1b + .popsection +#endif /* Initialize Instruction Cache */ + +/* + * Jump to the _start entry point in the .text section if reset code + * is allowed or if optimizing for RTL simulation. + */ +#if defined(ALT_ALLOW_CODE_AT_RESET) || defined(ALT_SIM_OPTIMIZE) + /* Jump to the _start entry point in the .text section. */ + movhi r1, %hi(_start) + ori r1, r1, %lo(_start) + jmp r1 + + .size __reset, . - __reset +#endif /* Jump to _start */ + +/* + * When not using exit, provide an _exit symbol to prevent unresolved + * references to _exit from the linker script. + */ +#ifdef ALT_NO_EXIT + .globl _exit +_exit: +#endif + +/*************************************************************************\ +| TEXT SECTION (.text) | +\*************************************************************************/ + +/* + * Start of the .text section, and also the code entry point when + * the code is executed by a bootloader rather than directly from reset. + */ + .section .text + .align 2 + + .globl _start + .type _start, @function +_start: + +/* + * Initialize the data cache if present (i.e. size > 0) and not + * optimizing for RTL simulation. + * RTL simulations can ensure the data cache is already initialized + * so skipping this loop speeds up RTL simulation. + */ + +#if NIOS2_DCACHE_SIZE > 0 && !defined(ALT_SIM_OPTIMIZE) + + /* Assume the data cache size is always a power of two. */ +#if NIOS2_DCACHE_SIZE > 0x8000 + movhi r2, %hi(NIOS2_DCACHE_SIZE) +#else + movui r2, NIOS2_DCACHE_SIZE +#endif + +0: + initd 0(r2) + addi r2, r2, -NIOS2_DCACHE_LINE_SIZE + bgt r2, zero, 0b +1: + + /* + * The following debug information tells the ISS not to run the loop above + * but to perform its actions using faster internal code. + */ + .pushsection .debug_alt_sim_info + .int 2, 1, 0b, 1b + .popsection + +#endif /* Initialize Data Cache */ + + /* Log that caches have been initialized. */ + ALT_LOG_PUTS(alt_log_msg_cache) + + /* Log that the stack pointer is about to be setup. */ + ALT_LOG_PUTS(alt_log_msg_stackpointer) + +#if (NIOS2_NUM_OF_SHADOW_REG_SETS == 0) + /* + * Now that the caches are initialized, set up the stack pointer. + * The value provided by the linker is assumed to be correctly aligned. + */ + movhi sp, %hi(__alt_stack_pointer) + ori sp, sp, %lo(__alt_stack_pointer) + + /* Set up the global pointer. */ + movhi gp, %hi(_gp) + ori gp, gp, %lo(_gp) + +#else /* NIOS2_NUM_OF_SHADOW_REG_SETS > 0 */ + + /* + * Set up the GP and SP in all shadow register sets. + */ + + /* + * Check current register set number, if CPU resets into a shadow register + * set, switch register set to 0 by writing zero to SSTATUS register and + * execute an ERET instruction that just jumps to the next PC address + * (use the NEXTPC instruction to get this). + */ + + rdctl r2, status + + /* Get the current register set number (STATUS.CRS). */ + andi r3, r2, NIOS2_STATUS_CRS_MSK + + /* Skip switch register set if STATUS.CRS is 0. */ + beq r3, zero, .Lskip_switch_reg_set + + .set nobreak + + /* Current register set is non-zero, set SSTATUS to 0. */ + mov sstatus, zero + + /* Get next pc and store in ea. */ + nextpc ea + + /* Point to instruction after eret. */ + addi ea, ea, 8 + + /* + * Execute ERET instruction that just jumps to the next PC address + */ + eret + +.Lskip_switch_reg_set: + mov r2, zero + + /* Reset STATUS register */ + wrctl status, r2 + + movui r3, NIOS2_NUM_OF_SHADOW_REG_SETS + + /* Set up the stack pointer in register set 0. */ + movhi sp, %hi(__alt_stack_pointer) + ori sp, sp, %lo(__alt_stack_pointer) + + /* Set up the global pointer in register set 0. */ + movhi gp, %hi(_gp) + ori gp, gp, %lo(_gp) + +.Lsetup_sp_and_gp_loop: + /* + * Setup GP and SP for shadow register set + * from NIOS2_NUM_OF_SHADOW_REG_SETS to 0 + */ + + /* Skip if number of register sets is 0. */ + beq r3, zero, .Lno_shadow_register_set + + + /* Add previous register set STATUS.PRS by 1 */ + movhi r4, 1 + add r2, r2, r4 + + /* Write STATUS */ + wrctl status, r2 + + /* Clear r0 in the shadow register set (not done by hardware) */ + wrprs r0, r0 + + /* Write the GP in previous register set */ + wrprs gp, gp + + /* Only write the SP in previous register set + * if using the seperate exception stack. For normal case (single stack), + * funnel code would read the SP from previous register set. + */ +#ifdef ALT_INTERRUPT_STACK + + movhi et, %hiadj(__alt_interrupt_stack_pointer) + addi et, et, %lo(__alt_interrupt_stack_pointer) + wrprs sp, et + +#endif /* ALT_INTERRUPT_STACK */ + + /* Decrease number of register set counter by 1 */ + addi r3, r3, -1 + + br .Lsetup_sp_and_gp_loop +.Lno_shadow_register_set: + +#endif /* NIOS2_NUM_OF_SHADOW_REG_SETS */ +/* + * Clear the BSS if not optimizing for RTL simulation. + * + * This uses the symbols: __bss_start and __bss_end, which are defined + * by the linker script. They mark the begining and the end of the bss + * region. The linker script guarantees that these values are word aligned. + */ +#ifndef ALT_SIM_OPTIMIZE + /* Log that the BSS is about to be cleared. */ + ALT_LOG_PUTS(alt_log_msg_bss) + + movhi r2, %hi(__bss_start) + ori r2, r2, %lo(__bss_start) + + movhi r3, %hi(__bss_end) + ori r3, r3, %lo(__bss_end) + + beq r2, r3, 1f + +0: + stw zero, (r2) + addi r2, r2, 4 + bltu r2, r3, 0b + +1: + + /* + * The following debug information tells the ISS not to run the loop above + * but to perform its actions using faster internal code. + */ + .pushsection .debug_alt_sim_info + .int 3, 1, 0b, 1b + .popsection +#endif /* ALT_SIM_OPTIMIZE */ + +/* + * The alt_load() facility is normally used when there is no bootloader. + * It copies some sections into RAM so it acts like a mini-bootloader. + */ +#ifdef CALL_ALT_LOAD + +#ifdef ALT_STACK_CHECK + /* + * If the user has selected stack checking then we need to set up a safe + * value in the stack limit register so that the relocation functions + * don't think the stack has overflowed (the contents of the rwdata + * section aren't defined until alt_load() has been called). + */ + mov et, zero +#endif + + call alt_load + +#endif /* CALL_ALT_LOAD */ + +#ifdef ALT_STACK_CHECK + /* + * Set up the stack limit (if required). The linker has set up the + * copy of the variable which is in memory. + */ + + ldw et, %gprel(alt_stack_limit_value)(gp) +#endif + + /* Log that alt_main is about to be called. */ + ALT_LOG_PUTS(alt_log_msg_alt_main) + + /* Call the C entry point. It should never return. */ + call alt_main + + /* Wait in infinite loop in case alt_main does return. */ +alt_after_alt_main: + br alt_after_alt_main + + .size _start, . - _start + +/* + * Add information about the stack base if stack overflow checking is enabled. + */ +#ifdef ALT_STACK_CHECK + .globl alt_stack_limit_value + .section .sdata,"aws",@progbits + .align 2 + .type alt_stack_limit_value, @object + .size alt_stack_limit_value, 4 +alt_stack_limit_value: + .long __alt_stack_limit +#endif diff --git a/software/qsys_tutorial_key3_bsp/Makefile b/software/qsys_tutorial_key3_bsp/Makefile new file mode 100644 index 0000000..dcf3b22 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/Makefile @@ -0,0 +1,766 @@ +#------------------------------------------------------------------------------ +# BSP MAKEFILE +# +# This makefile was automatically generated by the nios2-bsp-generate-files +# command. Its purpose is to build a custom Board Support Package (BSP) +# targeting a specific Nios II processor in an SOPC Builder-based design. +# +# To create an application or library Makefile which uses this BSP, try the +# nios2-app-generate-makefile or nios2-lib-generate-makefile commands. +#------------------------------------------------------------------------------ + +#------------------------------------------------------------------------------ +# TOOLS +#------------------------------------------------------------------------------ + +MKDIR := mkdir -p +ECHO := echo +SPACE := $(empty) $(empty) + +#------------------------------------------------------------------------------ +# The adjust-path macro +# +# If COMSPEC is defined, Make is launched from Windows through +# Cygwin. This adjust-path macro will call 'cygpath -u' on all +# paths to ensure they are readable by Make. +# +# If COMSPEC is not defined, Make is launched from *nix, and no adjustment +# is necessary +#------------------------------------------------------------------------------ + +ifndef COMSPEC +ifdef ComSpec +COMSPEC = $(ComSpec) +endif # ComSpec +endif # !COMSPEC + +ifdef COMSPEC + adjust-path = $(subst $(SPACE),\$(SPACE),$(shell cygpath -u "$1")) + adjust-path-mixed = $(subst $(SPACE),\$(SPACE),$(shell cygpath -m "$1")) +else + adjust-path = $(subst $(SPACE),\$(SPACE),$1) + adjust-path-mixed = $(subst $(SPACE),\$(SPACE),$1) +endif + +#------------------------------------------------------------------------------ +# DEFAULT TARGET +# +# The default target, "all", must appear before any other target in the +# Makefile. Note that extra prerequisites are added to the "all" rule later. +#------------------------------------------------------------------------------ +.PHONY: all +all: + @$(ECHO) [BSP build complete] + + +#------------------------------------------------------------------------------ +# PATHS & DIRECTORY NAMES +# +# Explicitly locate absolute path of the BSP root +#------------------------------------------------------------------------------ + +BSP_ROOT_DIR := . + +# Define absolute path to the root of the BSP. +ABS_BSP_ROOT := $(call adjust-path-mixed,$(shell pwd)) + +# Stash all BSP object files here +OBJ_DIR := ./obj + +NEWLIB_DIR = $(BSP_ROOT_DIR)/newlib + + +#------------------------------------------------------------------------------ +# MANAGED CONTENT +# +# All content between the lines "START MANAGED" and "END MANAGED" below is +# generated based on variables in the BSP settings file when the +# nios2-bsp-generate-files command is invoked. If you wish to persist any +# information pertaining to the build process, it is recomended that you +# utilize the BSP settings mechanism to do so. +# +# Note that most variable assignments in this section have a corresponding BSP +# setting that can be changed by using the nios2-bsp-create-settings or +# nios2-bsp-update-settings command before nios2-bsp-generate-files; if you +# want any variable set to a specific value when this Makefile is re-generated +# (to prevent hand-edits from being over-written), use the BSP settings +# facilities above. +#------------------------------------------------------------------------------ + +#START MANAGED + +# The following TYPE comment allows tools to identify the 'type' of target this +# makefile is associated with. +# TYPE: BSP_PRIVATE_MAKEFILE + +# This following VERSION comment indicates the version of the tool used to +# generate this makefile. A makefile variable is provided for VERSION as well. +# ACDS_VERSION: 13.0sp1 +ACDS_VERSION := 13.0sp1 + +# This following BUILD_NUMBER comment indicates the build number of the tool +# used to generate this makefile. +# BUILD_NUMBER: 232 + +SETTINGS_FILE := settings.bsp +SOPC_FILE := C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.sopcinfo + +#------------------------------------------------------------------------------- +# TOOL & COMMAND DEFINITIONS +# +# The base command for each build operation are expressed here. Additional +# switches may be expressed here. They will run for all instances of the +# utility. +#------------------------------------------------------------------------------- + +# Archiver command. Creates library files. +AR = nios2-elf-ar + +# Assembler command. Note that CC is used for .S files. +AS = nios2-elf-gcc + +# Custom flags only passed to the archiver. This content of this variable is +# directly passed to the archiver rather than the more standard "ARFLAGS". The +# reason for this is that GNU Make assumes some default content in ARFLAGS. +# This setting defines the value of BSP_ARFLAGS in Makefile. +BSP_ARFLAGS = -src + +# Custom flags only passed to the assembler. This setting defines the value of +# BSP_ASFLAGS in Makefile. +BSP_ASFLAGS = -Wa,-gdwarf2 + +# C/C++ compiler debug level. '-g' provides the default set of debug symbols +# typically required to debug a typical application. Omitting '-g' removes +# debug symbols from the ELF. This setting defines the value of +# BSP_CFLAGS_DEBUG in Makefile. +BSP_CFLAGS_DEBUG = -g + +# C/C++ compiler optimization level. "-O0" = no optimization,"-O2" = "normal" +# optimization, etc. "-O0" is recommended for code that you want to debug since +# compiler optimization can remove variables and produce non-sequential +# execution of code while debugging. This setting defines the value of +# BSP_CFLAGS_OPTIMIZATION in Makefile. +BSP_CFLAGS_OPTIMIZATION = '-Os' + +# C/C++ compiler warning level. "-Wall" is commonly used.This setting defines +# the value of BSP_CFLAGS_WARNINGS in Makefile. +BSP_CFLAGS_WARNINGS = -Wall + +# C compiler command. +CC = nios2-elf-gcc -xc + +# C++ compiler command. +CXX = nios2-elf-gcc -xc++ + +# Command used to remove files during 'clean' target. +RM = rm -f + + +#------------------------------------------------------------------------------- +# BUILD PRE & POST PROCESS COMMANDS +# +# The following variables are treated as shell commands in the rule +# definitions for each file-type associated with the BSP build, as well as +# commands run at the beginning and end of the entire BSP build operation. +# Pre-process commands are executed before the relevant command (for example, +# a command defined in the "CC_PRE_PROCESS" variable executes before the C +# compiler for building .c files), while post-process commands are executed +# immediately afterwards. +# +# You can view each pre/post-process command in the "Build Rules: All & +# Clean", "Pattern Rules to Build Objects", and "Library Rules" sections of +# this Makefile. +#------------------------------------------------------------------------------- + + +#------------------------------------------------------------------------------- +# BSP SOURCE BUILD SETTINGS (FLAG GENERATION) +# +# Software build settings such as compiler optimization, debug level, warning +# flags, etc., may be defined in the following variables. The variables below +# are concatenated together in the 'Flags' section of this Makefile to form +# final variables of flags passed to the build tools. +# +# These settings are considered private to the BSP and apply to all library & +# driver files in it; they do NOT automatically propagate to, for example, the +# build settings for an application. +# # For additional detail and syntax requirements, please refer to GCC help +# (example: "nios2-elf-gcc --help --verbose"). +# +# Unless indicated otherwise, multiple entries in each variable should be +# space-separated. +#------------------------------------------------------------------------------- + +# Altera HAL alt_sys_init.c generated source file +GENERATED_C_FILES := $(ABS_BSP_ROOT)/alt_sys_init.c +GENERATED_C_LIB_SRCS += alt_sys_init.c + + +#------------------------------------------------------------------------------- +# BSP SOURCE FILE LISTING +# +# All source files that comprise the BSP are listed here, along with path +# information to each file expressed relative to the BSP root. The precise +# list and location of each file is derived from the driver, operating system, +# or software package source file declarations. +# +# Following specification of the source files for each component, driver, etc., +# each source file type (C, assembly, etc.) is concatenated together and used +# to construct a list of objects. Pattern rules to build each object are then +# used to build each file. +#------------------------------------------------------------------------------- + +# altera_avalon_jtag_uart_driver sources root +altera_avalon_jtag_uart_driver_SRCS_ROOT := drivers + +# altera_avalon_jtag_uart_driver sources +altera_avalon_jtag_uart_driver_C_LIB_SRCS := \ + $(altera_avalon_jtag_uart_driver_SRCS_ROOT)/src/altera_avalon_jtag_uart_init.c \ + $(altera_avalon_jtag_uart_driver_SRCS_ROOT)/src/altera_avalon_jtag_uart_read.c \ + $(altera_avalon_jtag_uart_driver_SRCS_ROOT)/src/altera_avalon_jtag_uart_write.c \ + $(altera_avalon_jtag_uart_driver_SRCS_ROOT)/src/altera_avalon_jtag_uart_ioctl.c \ + $(altera_avalon_jtag_uart_driver_SRCS_ROOT)/src/altera_avalon_jtag_uart_fd.c + +# altera_avalon_pio_driver sources root +altera_avalon_pio_driver_SRCS_ROOT := drivers + +# altera_avalon_pio_driver sources +# altera_nios2_qsys_hal_driver sources root +altera_nios2_qsys_hal_driver_SRCS_ROOT := HAL + +# altera_nios2_qsys_hal_driver sources +altera_nios2_qsys_hal_driver_C_LIB_SRCS := \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/altera_nios2_qsys_irq.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_usleep.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_busy_sleep.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_irq_vars.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_icache_flush.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_icache_flush_all.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_dcache_flush.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_dcache_flush_all.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_dcache_flush_no_writeback.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_instruction_exception_entry.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_irq_register.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_iic.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_remap_cached.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_remap_uncached.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_uncached_free.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_uncached_malloc.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_do_ctors.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_do_dtors.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_gmon.c + +altera_nios2_qsys_hal_driver_ASM_LIB_SRCS := \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_exception_entry.S \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_exception_trap.S \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_exception_muldiv.S \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_irq_entry.S \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_software_exception.S \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_mcount.S \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_log_macro.S \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/crt0.S + +# hal sources root +hal_SRCS_ROOT := HAL + +# hal sources +hal_C_LIB_SRCS := \ + $(hal_SRCS_ROOT)/src/alt_alarm_start.c \ + $(hal_SRCS_ROOT)/src/alt_close.c \ + $(hal_SRCS_ROOT)/src/alt_dev.c \ + $(hal_SRCS_ROOT)/src/alt_dev_llist_insert.c \ + $(hal_SRCS_ROOT)/src/alt_dma_rxchan_open.c \ + $(hal_SRCS_ROOT)/src/alt_dma_txchan_open.c \ + $(hal_SRCS_ROOT)/src/alt_environ.c \ + $(hal_SRCS_ROOT)/src/alt_env_lock.c \ + $(hal_SRCS_ROOT)/src/alt_errno.c \ + $(hal_SRCS_ROOT)/src/alt_execve.c \ + $(hal_SRCS_ROOT)/src/alt_exit.c \ + $(hal_SRCS_ROOT)/src/alt_fcntl.c \ + $(hal_SRCS_ROOT)/src/alt_fd_lock.c \ + $(hal_SRCS_ROOT)/src/alt_fd_unlock.c \ + $(hal_SRCS_ROOT)/src/alt_find_dev.c \ + $(hal_SRCS_ROOT)/src/alt_find_file.c \ + $(hal_SRCS_ROOT)/src/alt_flash_dev.c \ + $(hal_SRCS_ROOT)/src/alt_fork.c \ + $(hal_SRCS_ROOT)/src/alt_fs_reg.c \ + $(hal_SRCS_ROOT)/src/alt_fstat.c \ + $(hal_SRCS_ROOT)/src/alt_get_fd.c \ + $(hal_SRCS_ROOT)/src/alt_getchar.c \ + $(hal_SRCS_ROOT)/src/alt_getpid.c \ + $(hal_SRCS_ROOT)/src/alt_gettod.c \ + $(hal_SRCS_ROOT)/src/alt_iic_isr_register.c \ + $(hal_SRCS_ROOT)/src/alt_instruction_exception_register.c \ + $(hal_SRCS_ROOT)/src/alt_ioctl.c \ + $(hal_SRCS_ROOT)/src/alt_io_redirect.c \ + $(hal_SRCS_ROOT)/src/alt_irq_handler.c \ + $(hal_SRCS_ROOT)/src/alt_isatty.c \ + $(hal_SRCS_ROOT)/src/alt_kill.c \ + $(hal_SRCS_ROOT)/src/alt_link.c \ + $(hal_SRCS_ROOT)/src/alt_load.c \ + $(hal_SRCS_ROOT)/src/alt_log_printf.c \ + $(hal_SRCS_ROOT)/src/alt_lseek.c \ + $(hal_SRCS_ROOT)/src/alt_main.c \ + $(hal_SRCS_ROOT)/src/alt_malloc_lock.c \ + $(hal_SRCS_ROOT)/src/alt_open.c \ + $(hal_SRCS_ROOT)/src/alt_printf.c \ + $(hal_SRCS_ROOT)/src/alt_putchar.c \ + $(hal_SRCS_ROOT)/src/alt_putstr.c \ + $(hal_SRCS_ROOT)/src/alt_read.c \ + $(hal_SRCS_ROOT)/src/alt_release_fd.c \ + $(hal_SRCS_ROOT)/src/alt_rename.c \ + $(hal_SRCS_ROOT)/src/alt_sbrk.c \ + $(hal_SRCS_ROOT)/src/alt_settod.c \ + $(hal_SRCS_ROOT)/src/alt_stat.c \ + $(hal_SRCS_ROOT)/src/alt_tick.c \ + $(hal_SRCS_ROOT)/src/alt_times.c \ + $(hal_SRCS_ROOT)/src/alt_unlink.c \ + $(hal_SRCS_ROOT)/src/alt_wait.c \ + $(hal_SRCS_ROOT)/src/alt_write.c + + +# Assemble all component C source files +COMPONENT_C_LIB_SRCS += \ + $(altera_avalon_jtag_uart_driver_C_LIB_SRCS) \ + $(altera_nios2_qsys_hal_driver_C_LIB_SRCS) \ + $(hal_C_LIB_SRCS) + +# Assemble all component assembly source files +COMPONENT_ASM_LIB_SRCS += \ + $(altera_nios2_qsys_hal_driver_ASM_LIB_SRCS) + +# Assemble all component C++ source files +COMPONENT_CPP_LIB_SRCS += \ + +#END MANAGED + +#------------------------------------------------------------------------------ +# PUBLIC.MK +# +# The generated public.mk file contains BSP information that is shared with +# other external makefiles, such as a Nios II application makefile. System- +# dependent information such as hardware-specific compiler flags and +# simulation file generation are stored here. +# +# In addition, public.mk contains include paths that various software, +# such as a device driver, may need for the C compiler. These paths are +# written to public.mk with respect to the BSP root. In public.mk, each +# path is prefixed with a special variable, $(ALT_LIBRARY_ROOT_DIR). The +# purpose of this variable is to allow an external Makefile to append on +# path information to precisely locate paths expressed in public.mk +# Since this is the BSP Makefile, we set ALT_LIBRARY_ROOT_DIR to point right +# here ("."), at the BSP root. +# +# ALT_LIBRARY_ROOT_DIR must always be set before public.mk is included. +#------------------------------------------------------------------------------ +ALT_LIBRARY_ROOT_DIR := . +include public.mk + + +#------------------------------------------------------------------------------ +# FLAGS +# +# Include paths for BSP files are written into the public.mk file and must +# be added to the existing list of pre-processor flags. In addition, "hooks" +# for standard flags left intentionally empty (CFLAGS, CPPFLAGS, ASFLAGS, +# and CXXFLAGS) are provided for conveniently adding to the relevant flags +# on the command-line or via script that calls make. +#------------------------------------------------------------------------------ +# Assemble final list of compiler flags from generated content +BSP_CFLAGS += \ + $(BSP_CFLAGS_DEFINED_SYMBOLS) \ + $(BSP_CFLAGS_UNDEFINED_SYMBOLS) \ + $(BSP_CFLAGS_OPTIMIZATION) \ + $(BSP_CFLAGS_DEBUG) \ + $(BSP_CFLAGS_WARNINGS) \ + $(BSP_CFLAGS_USER_FLAGS) \ + $(ALT_CFLAGS) \ + $(CFLAGS) + +# Make ready the final list of include directories and other C pre-processor +# flags. Each include path is made ready by prefixing it with "-I". +BSP_CPPFLAGS += \ + $(addprefix -I, $(BSP_INC_DIRS)) \ + $(addprefix -I, $(ALT_INCLUDE_DIRS)) \ + $(ALT_CPPFLAGS) \ + $(CPPFLAGS) + +# Finish off assembler flags with any user-provided flags +BSP_ASFLAGS += $(ASFLAGS) + +# Finish off C++ flags with any user-provided flags +BSP_CXXFLAGS += $(CXXFLAGS) + +# And finally, the ordered list +C_SRCS += $(GENERATED_C_LIB_SRCS) \ + $(COMPONENT_C_LIB_SRCS) + +CXX_SRCS += $(GENERATED_CPP_LIB_SRCS) \ + $(COMPONENT_CPP_LIB_SRCS) + +ASM_SRCS += $(GENERATED_ASM_LIB_SRCS) \ + $(COMPONENT_ASM_LIB_SRCS) + + +#------------------------------------------------------------------------------ +# LIST OF GENERATED FILES +# +# A Nios II BSP relies on the generation of several source files used +# by both the BSP and any applications referencing the BSP. +#------------------------------------------------------------------------------ + + +GENERATED_H_FILES := $(ABS_BSP_ROOT)/system.h + +GENERATED_LINKER_SCRIPT := $(ABS_BSP_ROOT)/linker.x + +GENERATED_FILES += $(GENERATED_H_FILES) \ + $(GENERATED_LINKER_SCRIPT) + + +#------------------------------------------------------------------------------ +# SETUP TO BUILD OBJECTS +# +# List of object files which are to be built. This is constructed from the input +# list of C source files (C_SRCS), C++ source files (CXX_SRCS), and assembler +# source file (ASM_SRCS). The permitted file extensions are: +# +# .c .C - for C files +# .cxx .cc .cpp .CXX .CC .CPP - for C++ files +# .S .s - for assembly files +# +# Extended description: The list of objects is a sorted list (duplicates +# removed) of all possible objects, placed beneath the ./obj directory, +# including any path information stored in the "*_SRCS" variable. The +# "patsubst" commands are used to concatenate together multiple file suffix +# types for common files (i.e. c++ as .cxx, .cc, .cpp). +# +# File extensions are case-insensitive in build rules with the exception of +# assembly sources. Nios II assembly sources with the ".S" extension are first +# run through the C preprocessor. Sources with the ".s" extension are not. +#------------------------------------------------------------------------------ +OBJS = $(sort $(addprefix $(OBJ_DIR)/, \ + $(patsubst %.c, %.o, $(patsubst %.C, %.o, $(C_SRCS))) \ + $(patsubst %.cxx, %.o, $(patsubst %.CXX, %.o, \ + $(patsubst %.cc, %.o, $(patsubst %.CC, %.o, \ + $(patsubst %.cpp, %.o, $(patsubst %.CPP, %.o, \ + $(CXX_SRCS) )))))) \ + $(patsubst %.S, %.o, $(patsubst %.s, %.o, $(ASM_SRCS))) )) + +# List of dependancy files for each object file. +DEPS = $(OBJS:.o=.d) + + +# Rules to force your project to rebuild or relink +# .force_relink file will cause any application that depends on this project to relink +# .force_rebuild file will cause this project to rebuild object files +# .force_rebuild_all file will cause this project and any project that depends on this project to rebuild object files + +FORCE_RELINK_DEP := .force_relink +FORCE_REBUILD_DEP := .force_rebuild +FORCE_REBUILD_ALL_DEP := .force_rebuild_all +FORCE_REBUILD_DEP_LIST := $(FORCE_RELINK_DEP) $(FORCE_REBUILD_DEP) $(FORCE_REBUILD_ALL_DEP) + +$(FORCE_REBUILD_DEP_LIST): + +$(OBJS): $(wildcard $(FORCE_REBUILD_DEP)) $(wildcard $(FORCE_REBUILD_ALL_DEP)) + + +#------------------------------------------------------------------------------ +# BUILD RULES: ALL & CLEAN +#------------------------------------------------------------------------------ +.DELETE_ON_ERROR: + +.PHONY: all +all: build_pre_process +all: Makefile $(GENERATED_FILES) $(BSP_LIB) $(NEWLIB_DIR) +all: build_post_process + + +# clean: remove .o/.a/.d +.PHONY: clean +clean: + @$(RM) -r $(BSP_LIB) $(OBJ_DIR) $(FORCE_REBUILD_DEP_LIST) +ifneq ($(wildcard $(NEWLIB_DIR)),) + @$(RM) -r $(NEWLIB_DIR) +endif + @$(ECHO) [BSP clean complete] + + +#------------------------------------------------------------------------------ +# BUILD PRE/POST PROCESS +#------------------------------------------------------------------------------ +build_pre_process : + $(BUILD_PRE_PROCESS) + +build_post_process : + $(BUILD_POST_PROCESS) + +.PHONY: build_pre_process build_post_process + + + +#------------------------------------------------------------------------------ +# MAKEFILE UP TO DATE? +# +# Is this very Makefile up to date? Someone may have changed the BSP settings +# file or the associated target hardware. +#------------------------------------------------------------------------------ +# Skip this check when clean is the only target +ifneq ($(MAKECMDGOALS),clean) + +ifneq ($(wildcard $(SETTINGS_FILE)),$(SETTINGS_FILE)) +$(warning Warning: BSP Settings File $(SETTINGS_FILE) could not be found.) +endif + +Makefile: $(wildcard $(SETTINGS_FILE)) + @$(ECHO) Makefile not up to date. + @$(ECHO) $(SETTINGS_FILE) has been modified since the BSP Makefile was generated. + @$(ECHO) + @$(ECHO) Generate the BSP to update the Makefile, and then build again. + @$(ECHO) + @$(ECHO) To generate from Eclipse: + @$(ECHO) " 1. Right-click the BSP project." + @$(ECHO) " 2. In the Nios II Menu, click Generate BSP." + @$(ECHO) + @$(ECHO) To generate from the command line: + @$(ECHO) " nios2-bsp-generate-files --settings= --bsp-dir=" + @$(ECHO) + @exit 1 + +ifneq ($(wildcard $(SOPC_FILE)),$(SOPC_FILE)) +$(warning Warning: SOPC File $(SOPC_FILE) could not be found.) +endif + +public.mk: $(wildcard $(SOPC_FILE)) + @$(ECHO) Makefile not up to date. + @$(ECHO) $(SOPC_FILE) has been modified since the BSP was generated. + @$(ECHO) + @$(ECHO) Generate the BSP to update the Makefile, and then build again. + @$(ECHO) + @$(ECHO) To generate from Eclipse: + @$(ECHO) " 1. Right-click the BSP project." + @$(ECHO) " 2. In the Nios II Menu, click Generate BSP." + @$(ECHO) + @$(ECHO) To generate from the command line: + @$(ECHO) " nios2-bsp-generate-files --settings= --bsp-dir=" + @$(ECHO) + @exit 1 + +endif # $(MAKECMDGOALS) != clean + +#------------------------------------------------------------------------------ +# PATTERN RULES TO BUILD OBJECTS +#------------------------------------------------------------------------------ +$(OBJ_DIR)/%.o: %.c + @$(ECHO) Compiling $( + +/* + * Device headers + */ + +#include "altera_nios2_qsys_irq.h" +#include "altera_avalon_jtag_uart.h" + +/* + * Allocate the device storage + */ + +ALTERA_NIOS2_QSYS_IRQ_INSTANCE ( NIOS2_PROCESSOR, nios2_processor); +ALTERA_AVALON_JTAG_UART_INSTANCE ( JTAG_UART, jtag_uart); + +/* + * Initialize the interrupt controller devices + * and then enable interrupts in the CPU. + * Called before alt_sys_init(). + * The "base" parameter is ignored and only + * present for backwards-compatibility. + */ + +void alt_irq_init ( const void* base ) +{ + ALTERA_NIOS2_QSYS_IRQ_INIT ( NIOS2_PROCESSOR, nios2_processor); + alt_irq_cpu_enable_interrupts(); +} + +/* + * Initialize the non-interrupt controller devices. + * Called after alt_irq_init(). + */ + +void alt_sys_init( void ) +{ + ALTERA_AVALON_JTAG_UART_INIT ( JTAG_UART, jtag_uart); +} diff --git a/software/qsys_tutorial_key3_bsp/create-this-bsp b/software/qsys_tutorial_key3_bsp/create-this-bsp new file mode 100644 index 0000000..49e6175 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/create-this-bsp @@ -0,0 +1,49 @@ +#!/bin/bash +# +# This script creates the ucosii_net_zipfs Board Support Package (BSP). + +BSP_TYPE=hal +BSP_DIR=. +SOPC_DIR=../../ +SOPC_FILE=C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.sopcinfo +NIOS2_BSP_ARGS="--set hal.max_file_descriptors 4 --set hal.enable_small_c_library true --set hal.sys_clk_timer none --set hal.timestamp_timer none --set hal.enable_exit false --set hal.enable_c_plus_plus false --set hal.enable_lightweight_device_driver_api true --set hal.enable_clean_exit false --set hal.enable_sim_optimize false --set hal.enable_reduced_device_drivers true --set hal.make.bsp_cflags_optimization '-Os'" +CPU_NAME= + + +# Don't run make if create-this-app script is called with --no-make arg +SKIP_MAKE= +while [ $# -gt 0 ] +do + case "$1" in + --no-make) + SKIP_MAKE=1 + ;; + *) + NIOS2_BSP_ARGS="$NIOS2_BSP_ARGS $1" + ;; + esac + shift +done + + +# Run nios2-bsp utility to create a hal BSP in this directory +# for the system with a .sopc file in $SOPC_FILE. +# Deprecating $SOPC_DIR in 10.1. Multiple .sopcinfo files in a directory may exist. + +if [ -z "$SOPC_FILE" ]; then + echo "WARNING: Use of a directory for locating a .sopcinfo file is deprecated in 10.1. Multiple .sopcinfo files may exist. You must specify the full .sopcinfo path." + cmd="nios2-bsp $BSP_TYPE $BSP_DIR $SOPC_DIR $NIOS2_BSP_ARGS $CPU_NAME" +else + cmd="nios2-bsp $BSP_TYPE $BSP_DIR $SOPC_FILE $NIOS2_BSP_ARGS $CPU_NAME" +fi + + +echo "create-this-bsp: Running \"$cmd\"" +$cmd || { + echo "$cmd failed" + exit 1 +} +if [ -z "$SKIP_MAKE" ]; then + echo "create-this-bsp: Running make" + make +fi diff --git a/software/qsys_tutorial_key3_bsp/drivers/inc/altera_avalon_jtag_uart.h b/software/qsys_tutorial_key3_bsp/drivers/inc/altera_avalon_jtag_uart.h new file mode 100644 index 0000000..95d4a99 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/drivers/inc/altera_avalon_jtag_uart.h @@ -0,0 +1,198 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#ifndef __ALT_AVALON_JTAG_UART_H__ +#define __ALT_AVALON_JTAG_UART_H__ + +#include + +#include "sys/alt_alarm.h" +#include "sys/alt_warning.h" + +#include "os/alt_sem.h" +#include "os/alt_flag.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * If the user wants all drivers to be small rather than fast then make sure + * this one is marked as needing to be small. + */ +#if defined ALT_USE_SMALL_DRIVERS && !defined ALTERA_AVALON_JTAG_UART_SMALL +#define ALTERA_AVALON_JTAG_UART_SMALL +#endif + +/* + * If the user wants to ignore FIFO full error after timeout + */ +#if defined ALT_JTAG_UART_IGNORE_FIFO_FULL_ERROR && !defined ALTERA_AVALON_JTAG_UART_IGNORE_FIFO_FULL_ERROR +#define ALTERA_AVALON_JTAG_UART_IGNORE_FIFO_FULL_ERROR +#endif + +/* + * Constants that can be overriden. + */ +#ifndef ALTERA_AVALON_JTAG_UART_DEFAULT_TIMEOUT +#define ALTERA_AVALON_JTAG_UART_DEFAULT_TIMEOUT 10 +#endif + +#ifndef ALTERA_AVALON_JTAG_UART_BUF_LEN +#define ALTERA_AVALON_JTAG_UART_BUF_LEN 2048 +#endif + +/* + * ALT_JTAG_UART_READ_RDY and ALT_JTAG_UART_WRITE_RDY are the bitmasks + * that define uC/OS-II event flags that are releated to this device. + * + * ALT_JTAG_UART_READ_RDY indicates that there is read data in the buffer + * ready to be processed. ALT_JTAG_UART_WRITE_RDY indicates that the transmitter is + * ready for more data. + */ +#define ALT_JTAG_UART_READ_RDY 0x1 +#define ALT_JTAG_UART_WRITE_RDY 0x2 +#define ALT_JTAG_UART_TIMEOUT 0x4 + +/* + * State structure definition. Each instance of the driver uses one + * of these structures to hold its associated state. + */ + +typedef struct altera_avalon_jtag_uart_state_s +{ + unsigned int base; + +#ifndef ALTERA_AVALON_JTAG_UART_SMALL + + unsigned int timeout; /* Timeout until host is assumed inactive */ + alt_alarm alarm; + unsigned int irq_enable; + unsigned int host_inactive; + + ALT_SEM (read_lock) + ALT_SEM (write_lock) + ALT_FLAG_GRP (events) + + /* The variables below are volatile because they are modified by the + * interrupt routine. Making them volatile and reading them atomically + * means that we don't need any large critical sections. + */ + volatile unsigned int rx_in; + unsigned int rx_out; + unsigned int tx_in; + volatile unsigned int tx_out; + char rx_buf[ALTERA_AVALON_JTAG_UART_BUF_LEN]; + char tx_buf[ALTERA_AVALON_JTAG_UART_BUF_LEN]; + +#endif /* !ALTERA_AVALON_JTAG_UART_SMALL */ + +} altera_avalon_jtag_uart_state; + +/* + * Macros used by alt_sys_init when the ALT file descriptor facility isn't used. + */ + +#ifdef ALTERA_AVALON_JTAG_UART_SMALL + +#define ALTERA_AVALON_JTAG_UART_STATE_INSTANCE(name, state) \ + altera_avalon_jtag_uart_state state = \ + { \ + name##_BASE, \ + } + +#define ALTERA_AVALON_JTAG_UART_STATE_INIT(name, state) + +#else /* !ALTERA_AVALON_JTAG_UART_SMALL */ + +#define ALTERA_AVALON_JTAG_UART_STATE_INSTANCE(name, state) \ + altera_avalon_jtag_uart_state state = \ + { \ + name##_BASE, \ + ALTERA_AVALON_JTAG_UART_DEFAULT_TIMEOUT, \ + } + +/* + * Externally referenced routines + */ +extern void altera_avalon_jtag_uart_init(altera_avalon_jtag_uart_state* sp, + int irq_controller_id, int irq); + +#define ALTERA_AVALON_JTAG_UART_STATE_INIT(name, state) \ + { \ + if (name##_IRQ == ALT_IRQ_NOT_CONNECTED) \ + { \ + ALT_LINK_ERROR ("Error: Interrupt not connected for " #name ". " \ + "You have selected the interrupt driven version of " \ + "the ALTERA Avalon JTAG UART driver, but the " \ + "interrupt is not connected for this device. You can " \ + "select a polled mode driver by checking the 'small " \ + "driver' option in the HAL configuration window, or " \ + "by using the -DALTERA_AVALON_JTAG_UART_SMALL " \ + "preprocessor flag."); \ + } \ + else \ + altera_avalon_jtag_uart_init(&state, \ + name##_IRQ_INTERRUPT_CONTROLLER_ID, \ + name##_IRQ); \ + } + +#endif /* ALTERA_AVALON_JTAG_UART_SMALL */ + +/* + * Include in case non-direct version of driver required. + */ +#include "altera_avalon_jtag_uart_fd.h" + +/* + * Map alt_sys_init macros to direct or non-direct versions. + */ +#ifdef ALT_USE_DIRECT_DRIVERS + +#define ALTERA_AVALON_JTAG_UART_INSTANCE(name, state) \ + ALTERA_AVALON_JTAG_UART_STATE_INSTANCE(name, state) +#define ALTERA_AVALON_JTAG_UART_INIT(name, state) \ + ALTERA_AVALON_JTAG_UART_STATE_INIT(name, state) + +#else /* !ALT_USE_DIRECT_DRIVERS */ + +#define ALTERA_AVALON_JTAG_UART_INSTANCE(name, dev) \ + ALTERA_AVALON_JTAG_UART_DEV_INSTANCE(name, dev) +#define ALTERA_AVALON_JTAG_UART_INIT(name, dev) \ + ALTERA_AVALON_JTAG_UART_DEV_INIT(name, dev) + +#endif /* ALT_USE_DIRECT_DRIVERS */ + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __ALT_AVALON_JTAG_UART_H__ */ diff --git a/software/qsys_tutorial_key3_bsp/drivers/inc/altera_avalon_jtag_uart_fd.h b/software/qsys_tutorial_key3_bsp/drivers/inc/altera_avalon_jtag_uart_fd.h new file mode 100644 index 0000000..b3c3200 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/drivers/inc/altera_avalon_jtag_uart_fd.h @@ -0,0 +1,125 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2007 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#ifndef __ALT_AVALON_JTAG_UART_FD_H__ +#define __ALT_AVALON_JTAG_UART_FD_H__ + +#include "sys/alt_dev.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * Externally referenced routines + */ +extern int altera_avalon_jtag_uart_read_fd (alt_fd* fd, char* ptr, int len); +extern int altera_avalon_jtag_uart_write_fd (alt_fd* fd, const char* ptr, + int len); + +/* + * Device structure definition. This is needed by alt_sys_init in order to + * reserve memory for the device instance. + */ + +typedef struct altera_avalon_jtag_uart_dev_s +{ + alt_dev dev; + altera_avalon_jtag_uart_state state; +} altera_avalon_jtag_uart_dev; + +/* + * Macros used by alt_sys_init when the ALT file descriptor facility is used. + */ + +#ifdef ALTERA_AVALON_JTAG_UART_SMALL + +#define ALTERA_AVALON_JTAG_UART_DEV_INSTANCE(name, d) \ + static altera_avalon_jtag_uart_dev d = \ + { \ + { \ + ALT_LLIST_ENTRY, \ + name##_NAME, \ + NULL, /* open */ \ + NULL, /* close */ \ + altera_avalon_jtag_uart_read_fd, \ + altera_avalon_jtag_uart_write_fd, \ + NULL, /* lseek */ \ + NULL, /* fstat */ \ + NULL, /* ioctl */ \ + }, \ + { \ + name##_BASE, \ + } \ + } + +#define ALTERA_AVALON_JTAG_UART_DEV_INIT(name, d) alt_dev_reg (&d.dev) + +#else /* !ALTERA_AVALON_JTAG_UART_SMALL */ + +extern int altera_avalon_jtag_uart_close_fd(alt_fd* fd); +extern int altera_avalon_jtag_uart_ioctl_fd (alt_fd* fd, int req, void* arg); + +#define ALTERA_AVALON_JTAG_UART_DEV_INSTANCE(name, d) \ + static altera_avalon_jtag_uart_dev d = \ + { \ + { \ + ALT_LLIST_ENTRY, \ + name##_NAME, \ + NULL, /* open */ \ + altera_avalon_jtag_uart_close_fd, \ + altera_avalon_jtag_uart_read_fd, \ + altera_avalon_jtag_uart_write_fd, \ + NULL, /* lseek */ \ + NULL, /* fstat */ \ + altera_avalon_jtag_uart_ioctl_fd, \ + }, \ + { \ + name##_BASE, \ + ALTERA_AVALON_JTAG_UART_DEFAULT_TIMEOUT, \ + } \ + } + +#define ALTERA_AVALON_JTAG_UART_DEV_INIT(name, d) \ + { \ + ALTERA_AVALON_JTAG_UART_STATE_INIT(name, d.state); \ + \ + /* make the device available to the system */ \ + alt_dev_reg(&d.dev); \ + } + +#endif /* ALTERA_AVALON_JTAG_UART_SMALL */ + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __ALT_AVALON_JTAG_UART_FD_H__ */ diff --git a/software/qsys_tutorial_key3_bsp/drivers/inc/altera_avalon_jtag_uart_regs.h b/software/qsys_tutorial_key3_bsp/drivers/inc/altera_avalon_jtag_uart_regs.h new file mode 100644 index 0000000..7f97160 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/drivers/inc/altera_avalon_jtag_uart_regs.h @@ -0,0 +1,73 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#ifndef __ALTERA_AVALON_JTAG_UART_REGS_H__ +#define __ALTERA_AVALON_JTAG_UART_REGS_H__ + +#include + +#define ALTERA_AVALON_JTAG_UART_DATA_REG 0 +#define IOADDR_ALTERA_AVALON_JTAG_UART_DATA(base) \ + __IO_CALC_ADDRESS_NATIVE(base, ALTERA_AVALON_JTAG_UART_DATA_REG) +#define IORD_ALTERA_AVALON_JTAG_UART_DATA(base) \ + IORD(base, ALTERA_AVALON_JTAG_UART_DATA_REG) +#define IOWR_ALTERA_AVALON_JTAG_UART_DATA(base, data) \ + IOWR(base, ALTERA_AVALON_JTAG_UART_DATA_REG, data) + +#define ALTERA_AVALON_JTAG_UART_DATA_DATA_MSK (0x000000FF) +#define ALTERA_AVALON_JTAG_UART_DATA_DATA_OFST (0) +#define ALTERA_AVALON_JTAG_UART_DATA_RVALID_MSK (0x00008000) +#define ALTERA_AVALON_JTAG_UART_DATA_RVALID_OFST (15) +#define ALTERA_AVALON_JTAG_UART_DATA_RAVAIL_MSK (0xFFFF0000) +#define ALTERA_AVALON_JTAG_UART_DATA_RAVAIL_OFST (16) + + +#define ALTERA_AVALON_JTAG_UART_CONTROL_REG 1 +#define IOADDR_ALTERA_AVALON_JTAG_UART_CONTROL(base) \ + __IO_CALC_ADDRESS_NATIVE(base, ALTERA_AVALON_JTAG_UART_CONTROL_REG) +#define IORD_ALTERA_AVALON_JTAG_UART_CONTROL(base) \ + IORD(base, ALTERA_AVALON_JTAG_UART_CONTROL_REG) +#define IOWR_ALTERA_AVALON_JTAG_UART_CONTROL(base, data) \ + IOWR(base, ALTERA_AVALON_JTAG_UART_CONTROL_REG, data) + +#define ALTERA_AVALON_JTAG_UART_CONTROL_RE_MSK (0x00000001) +#define ALTERA_AVALON_JTAG_UART_CONTROL_RE_OFST (0) +#define ALTERA_AVALON_JTAG_UART_CONTROL_WE_MSK (0x00000002) +#define ALTERA_AVALON_JTAG_UART_CONTROL_WE_OFST (1) +#define ALTERA_AVALON_JTAG_UART_CONTROL_RI_MSK (0x00000100) +#define ALTERA_AVALON_JTAG_UART_CONTROL_RI_OFST (8) +#define ALTERA_AVALON_JTAG_UART_CONTROL_WI_MSK (0x00000200) +#define ALTERA_AVALON_JTAG_UART_CONTROL_WI_OFST (9) +#define ALTERA_AVALON_JTAG_UART_CONTROL_AC_MSK (0x00000400) +#define ALTERA_AVALON_JTAG_UART_CONTROL_AC_OFST (10) +#define ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_MSK (0xFFFF0000) +#define ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_OFST (16) + +#endif /* __ALTERA_AVALON_JTAG_UART_REGS_H__ */ diff --git a/software/qsys_tutorial_key3_bsp/drivers/inc/altera_avalon_pio_regs.h b/software/qsys_tutorial_key3_bsp/drivers/inc/altera_avalon_pio_regs.h new file mode 100644 index 0000000..052439f --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/drivers/inc/altera_avalon_pio_regs.h @@ -0,0 +1,67 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#ifndef __ALTERA_AVALON_PIO_REGS_H__ +#define __ALTERA_AVALON_PIO_REGS_H__ + +#include + +#define IOADDR_ALTERA_AVALON_PIO_DATA(base) __IO_CALC_ADDRESS_NATIVE(base, 0) +#define IORD_ALTERA_AVALON_PIO_DATA(base) IORD(base, 0) +#define IOWR_ALTERA_AVALON_PIO_DATA(base, data) IOWR(base, 0, data) + +#define IOADDR_ALTERA_AVALON_PIO_DIRECTION(base) __IO_CALC_ADDRESS_NATIVE(base, 1) +#define IORD_ALTERA_AVALON_PIO_DIRECTION(base) IORD(base, 1) +#define IOWR_ALTERA_AVALON_PIO_DIRECTION(base, data) IOWR(base, 1, data) + +#define IOADDR_ALTERA_AVALON_PIO_IRQ_MASK(base) __IO_CALC_ADDRESS_NATIVE(base, 2) +#define IORD_ALTERA_AVALON_PIO_IRQ_MASK(base) IORD(base, 2) +#define IOWR_ALTERA_AVALON_PIO_IRQ_MASK(base, data) IOWR(base, 2, data) + +#define IOADDR_ALTERA_AVALON_PIO_EDGE_CAP(base) __IO_CALC_ADDRESS_NATIVE(base, 3) +#define IORD_ALTERA_AVALON_PIO_EDGE_CAP(base) IORD(base, 3) +#define IOWR_ALTERA_AVALON_PIO_EDGE_CAP(base, data) IOWR(base, 3, data) + + +#define IOADDR_ALTERA_AVALON_PIO_SET_BIT(base) __IO_CALC_ADDRESS_NATIVE(base, 4) +#define IORD_ALTERA_AVALON_PIO_SET_BITS(base) IORD(base, 4) +#define IOWR_ALTERA_AVALON_PIO_SET_BITS(base, data) IOWR(base, 4, data) + +#define IOADDR_ALTERA_AVALON_PIO_CLEAR_BITS(base) __IO_CALC_ADDRESS_NATIVE(base, 5) +#define IORD_ALTERA_AVALON_PIO_CLEAR_BITS(base) IORD(base, 5) +#define IOWR_ALTERA_AVALON_PIO_CLEAR_BITS(base, data) IOWR(base, 5, data) + + + +/* Defintions for direction-register operation with bi-directional PIOs */ +#define ALTERA_AVALON_PIO_DIRECTION_INPUT 0 +#define ALTERA_AVALON_PIO_DIRECTION_OUTPUT 1 + +#endif /* __ALTERA_AVALON_PIO_REGS_H__ */ diff --git a/software/qsys_tutorial_key3_bsp/drivers/src/altera_avalon_jtag_uart_fd.c b/software/qsys_tutorial_key3_bsp/drivers/src/altera_avalon_jtag_uart_fd.c new file mode 100644 index 0000000..53dfc3b --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/drivers/src/altera_avalon_jtag_uart_fd.c @@ -0,0 +1,86 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2007 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "alt_types.h" +#include "sys/alt_dev.h" +#include "altera_avalon_jtag_uart.h" + +extern int altera_avalon_jtag_uart_read(altera_avalon_jtag_uart_state* sp, + char* buffer, int space, int flags); +extern int altera_avalon_jtag_uart_write(altera_avalon_jtag_uart_state* sp, + const char* ptr, int count, int flags); +extern int altera_avalon_jtag_uart_ioctl(altera_avalon_jtag_uart_state* sp, + int req, void* arg); +extern int altera_avalon_jtag_uart_close(altera_avalon_jtag_uart_state* sp, + int flags); + +/* ----------------------------------------------------------------------- */ +/* --------------------- WRAPPERS FOR ALT FD SUPPORT --------------------- */ +/* + * + */ + +int +altera_avalon_jtag_uart_read_fd(alt_fd* fd, char* buffer, int space) +{ + altera_avalon_jtag_uart_dev* dev = (altera_avalon_jtag_uart_dev*) fd->dev; + + return altera_avalon_jtag_uart_read(&dev->state, buffer, space, + fd->fd_flags); +} + +int +altera_avalon_jtag_uart_write_fd(alt_fd* fd, const char* buffer, int space) +{ + altera_avalon_jtag_uart_dev* dev = (altera_avalon_jtag_uart_dev*) fd->dev; + + return altera_avalon_jtag_uart_write(&dev->state, buffer, space, + fd->fd_flags); +} + +#ifndef ALTERA_AVALON_JTAG_UART_SMALL + +int +altera_avalon_jtag_uart_close_fd(alt_fd* fd) +{ + altera_avalon_jtag_uart_dev* dev = (altera_avalon_jtag_uart_dev*) fd->dev; + + return altera_avalon_jtag_uart_close(&dev->state, fd->fd_flags); +} + +int +altera_avalon_jtag_uart_ioctl_fd(alt_fd* fd, int req, void* arg) +{ + altera_avalon_jtag_uart_dev* dev = (altera_avalon_jtag_uart_dev*) fd->dev; + + return altera_avalon_jtag_uart_ioctl(&dev->state, req, arg); +} + +#endif /* ALTERA_AVALON_JTAG_UART_SMALL */ diff --git a/software/qsys_tutorial_key3_bsp/drivers/src/altera_avalon_jtag_uart_init.c b/software/qsys_tutorial_key3_bsp/drivers/src/altera_avalon_jtag_uart_init.c new file mode 100644 index 0000000..7317bec --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/drivers/src/altera_avalon_jtag_uart_init.c @@ -0,0 +1,256 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2007 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include +#include +#include +#include + +#include + +#include "sys/alt_irq.h" +#include "sys/alt_alarm.h" +#include "sys/ioctl.h" +#include "alt_types.h" + +#include "altera_avalon_jtag_uart_regs.h" +#include "altera_avalon_jtag_uart.h" + +#include "sys/alt_log_printf.h" + +#ifndef ALTERA_AVALON_JTAG_UART_SMALL + +/* ----------------------------------------------------------- */ +/* ------------------------- FAST DRIVER --------------------- */ +/* ----------------------------------------------------------- */ +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT +static void altera_avalon_jtag_uart_irq(void* context); +#else +static void altera_avalon_jtag_uart_irq(void* context, alt_u32 id); +#endif +static alt_u32 altera_avalon_jtag_uart_timeout(void* context); + +/* + * Driver initialization code. Register interrupts and start a timer + * which we can use to check whether the host is there. + * Return 1 on sucessful IRQ register and 0 on failure. + */ + +void altera_avalon_jtag_uart_init(altera_avalon_jtag_uart_state* sp, + int irq_controller_id, int irq) +{ + ALT_FLAG_CREATE(&sp->events, 0); + ALT_SEM_CREATE(&sp->read_lock, 1); + ALT_SEM_CREATE(&sp->write_lock, 1); + + /* enable read interrupts at the device */ + sp->irq_enable = ALTERA_AVALON_JTAG_UART_CONTROL_RE_MSK; + + IOWR_ALTERA_AVALON_JTAG_UART_CONTROL(sp->base, sp->irq_enable); + + /* register the interrupt handler */ +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT + alt_ic_isr_register(irq_controller_id, irq, altera_avalon_jtag_uart_irq, + sp, NULL); +#else + alt_irq_register(irq, sp, altera_avalon_jtag_uart_irq); +#endif + + /* Register an alarm to go off every second to check for presence of host */ + sp->host_inactive = 0; + + if (alt_alarm_start(&sp->alarm, alt_ticks_per_second(), + &altera_avalon_jtag_uart_timeout, sp) < 0) + { + /* If we can't set the alarm then record "don't know if host present" + * and behave as though the host is present. + */ + sp->timeout = INT_MAX; + } + + /* ALT_LOG - see altera_hal/HAL/inc/sys/alt_log_printf.h */ + ALT_LOG_JTAG_UART_ALARM_REGISTER(sp, sp->base); +} + +/* + * Interrupt routine + */ +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT +static void altera_avalon_jtag_uart_irq(void* context) +#else +static void altera_avalon_jtag_uart_irq(void* context, alt_u32 id) +#endif +{ + altera_avalon_jtag_uart_state* sp = (altera_avalon_jtag_uart_state*) context; + unsigned int base = sp->base; + + /* ALT_LOG - see altera_hal/HAL/inc/sys/alt_log_printf.h */ + ALT_LOG_JTAG_UART_ISR_FUNCTION(base, sp); + + for ( ; ; ) + { + unsigned int control = IORD_ALTERA_AVALON_JTAG_UART_CONTROL(base); + + /* Return once nothing more to do */ + if ((control & (ALTERA_AVALON_JTAG_UART_CONTROL_RI_MSK | ALTERA_AVALON_JTAG_UART_CONTROL_WI_MSK)) == 0) + break; + + if (control & ALTERA_AVALON_JTAG_UART_CONTROL_RI_MSK) + { + /* process a read irq. Start by assuming that there is data in the + * receive FIFO (otherwise why would we have been interrupted?) + */ + unsigned int data = 1 << ALTERA_AVALON_JTAG_UART_DATA_RAVAIL_OFST; + + for ( ; ; ) + { + /* Check whether there is space in the buffer. If not then we must not + * read any characters from the buffer as they will be lost. + */ + unsigned int next = (sp->rx_in + 1) % ALTERA_AVALON_JTAG_UART_BUF_LEN; + if (next == sp->rx_out) + break; + + /* Try to remove a character from the FIFO and find out whether there + * are any more characters remaining. + */ + data = IORD_ALTERA_AVALON_JTAG_UART_DATA(base); + + if ((data & ALTERA_AVALON_JTAG_UART_DATA_RVALID_MSK) == 0) + break; + + sp->rx_buf[sp->rx_in] = (data & ALTERA_AVALON_JTAG_UART_DATA_DATA_MSK) >> ALTERA_AVALON_JTAG_UART_DATA_DATA_OFST; + sp->rx_in = (sp->rx_in + 1) % ALTERA_AVALON_JTAG_UART_BUF_LEN; + + /* Post an event to notify jtag_uart_read that a character has been read */ + ALT_FLAG_POST (sp->events, ALT_JTAG_UART_READ_RDY, OS_FLAG_SET); + } + + if (data & ALTERA_AVALON_JTAG_UART_DATA_RAVAIL_MSK) + { + /* If there is still data available here then the buffer is full + * so turn off receive interrupts until some space becomes available. + */ + sp->irq_enable &= ~ALTERA_AVALON_JTAG_UART_CONTROL_RE_MSK; + IOWR_ALTERA_AVALON_JTAG_UART_CONTROL(base, sp->irq_enable); + + /* Dummy read to ensure IRQ is cleared prior to ISR completion */ + IORD_ALTERA_AVALON_JTAG_UART_CONTROL(base); + } + } + + if (control & ALTERA_AVALON_JTAG_UART_CONTROL_WI_MSK) + { + /* process a write irq */ + unsigned int space = (control & ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_MSK) >> ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_OFST; + + while (space > 0 && sp->tx_out != sp->tx_in) + { + IOWR_ALTERA_AVALON_JTAG_UART_DATA(base, sp->tx_buf[sp->tx_out]); + + sp->tx_out = (sp->tx_out + 1) % ALTERA_AVALON_JTAG_UART_BUF_LEN; + + /* Post an event to notify jtag_uart_write that a character has been written */ + ALT_FLAG_POST (sp->events, ALT_JTAG_UART_WRITE_RDY, OS_FLAG_SET); + + space--; + } + + if (space > 0) + { + /* If we don't have any more data available then turn off the TX interrupt */ + sp->irq_enable &= ~ALTERA_AVALON_JTAG_UART_CONTROL_WE_MSK; + IOWR_ALTERA_AVALON_JTAG_UART_CONTROL(sp->base, sp->irq_enable); + + /* Dummy read to ensure IRQ is cleared prior to ISR completion */ + IORD_ALTERA_AVALON_JTAG_UART_CONTROL(base); + } + } + } +} + +/* + * Timeout routine is called every second + */ + +static alt_u32 +altera_avalon_jtag_uart_timeout(void* context) +{ + altera_avalon_jtag_uart_state* sp = (altera_avalon_jtag_uart_state *) context; + + unsigned int control = IORD_ALTERA_AVALON_JTAG_UART_CONTROL(sp->base); + + if (control & ALTERA_AVALON_JTAG_UART_CONTROL_AC_MSK) + { + IOWR_ALTERA_AVALON_JTAG_UART_CONTROL(sp->base, sp->irq_enable | ALTERA_AVALON_JTAG_UART_CONTROL_AC_MSK); + sp->host_inactive = 0; + } + else if (sp->host_inactive < INT_MAX - 2) { + sp->host_inactive++; + + if (sp->host_inactive >= sp->timeout) { + /* Post an event to indicate host is inactive (for jtag_uart_read */ + ALT_FLAG_POST (sp->events, ALT_JTAG_UART_TIMEOUT, OS_FLAG_SET); + } + } + + return alt_ticks_per_second(); +} + +/* + * The close() routine is implemented to drain the JTAG UART transmit buffer + * when not in "small" mode. This routine will wait for transimt data to be + * emptied unless a timeout from host-activity occurs. If the driver flags + * have been set to non-blocking mode, this routine will exit immediately if + * any data remains. This routine should be called indirectly (i.e. though + * the C library close() routine) so that the file descriptor associated + * with the relevant stream (i.e. stdout) can be closed as well. This routine + * does not manage file descriptors. + * + * The close routine is not implemented for the small driver; instead it will + * map to null. This is because the small driver simply waits while characters + * are transmitted; there is no interrupt-serviced buffer to empty + */ +int altera_avalon_jtag_uart_close(altera_avalon_jtag_uart_state* sp, int flags) +{ + /* + * Wait for all transmit data to be emptied by the JTAG UART ISR, or + * for a host-inactivity timeout, in which case transmit data will be lost + */ + while ( (sp->tx_out != sp->tx_in) && (sp->host_inactive < sp->timeout) ) { + if (flags & O_NONBLOCK) { + return -EWOULDBLOCK; + } + } + + return 0; +} + +#endif /* !ALTERA_AVALON_JTAG_UART_SMALL */ diff --git a/software/qsys_tutorial_key3_bsp/drivers/src/altera_avalon_jtag_uart_ioctl.c b/software/qsys_tutorial_key3_bsp/drivers/src/altera_avalon_jtag_uart_ioctl.c new file mode 100644 index 0000000..cf71e6f --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/drivers/src/altera_avalon_jtag_uart_ioctl.c @@ -0,0 +1,86 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include +#include +#include +#include + +#include + +#include "sys/ioctl.h" +#include "alt_types.h" + +#include "altera_avalon_jtag_uart_regs.h" +#include "altera_avalon_jtag_uart.h" + +#include "sys/alt_log_printf.h" + +#ifndef ALTERA_AVALON_JTAG_UART_SMALL + +/* ----------------------------------------------------------- */ +/* ------------------------- FAST DRIVER --------------------- */ +/* ----------------------------------------------------------- */ + +int +altera_avalon_jtag_uart_ioctl(altera_avalon_jtag_uart_state* sp, int req, + void* arg) +{ + int rc = -ENOTTY; + + switch (req) + { + case TIOCSTIMEOUT: + /* Set the time to wait until assuming host is not connected */ + if (sp->timeout != INT_MAX) + { + int timeout = *((int *)arg); + sp->timeout = (timeout >= 2 && timeout < INT_MAX) ? timeout : INT_MAX - 1; + rc = 0; + } + break; + + case TIOCGCONNECTED: + /* Find out whether host is connected */ + if (sp->timeout != INT_MAX) + { + *((int *)arg) = (sp->host_inactive < sp->timeout) ? 1 : 0; + rc = 0; + } + break; + + default: + break; + } + + return rc; +} + +#endif /* !ALTERA_AVALON_JTAG_UART_SMALL */ diff --git a/software/qsys_tutorial_key3_bsp/drivers/src/altera_avalon_jtag_uart_read.c b/software/qsys_tutorial_key3_bsp/drivers/src/altera_avalon_jtag_uart_read.c new file mode 100644 index 0000000..5657adb --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/drivers/src/altera_avalon_jtag_uart_read.c @@ -0,0 +1,205 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include +#include +#include +#include + +#include + +#include "sys/alt_irq.h" +#include "sys/alt_alarm.h" +#include "sys/ioctl.h" +#include "alt_types.h" + +#include "altera_avalon_jtag_uart_regs.h" +#include "altera_avalon_jtag_uart.h" + +#include "sys/alt_log_printf.h" + +#ifdef __ucosii__ +#include "includes.h" +#endif /* __ucosii__ */ + +#ifdef ALTERA_AVALON_JTAG_UART_SMALL + +/* ----------------------------------------------------------- */ +/* ----------------------- SMALL DRIVER ---------------------- */ +/* ----------------------------------------------------------- */ + +/* Read routine. The small version blocks until it has at least one byte + * available, it then returns as much as is immediately available without + * waiting any more. It's performance will be very poor without + * interrupts. + */ + +int +altera_avalon_jtag_uart_read(altera_avalon_jtag_uart_state* sp, + char* buffer, int space, int flags) +{ + unsigned int base = sp->base; + + char * ptr = buffer; + char * end = buffer + space; + + while (ptr < end) + { + unsigned int data = IORD_ALTERA_AVALON_JTAG_UART_DATA(base); + + if (data & ALTERA_AVALON_JTAG_UART_DATA_RVALID_MSK) + *ptr++ = (data & ALTERA_AVALON_JTAG_UART_DATA_DATA_MSK) >> ALTERA_AVALON_JTAG_UART_DATA_DATA_OFST; + else if (ptr != buffer) + break; + else if(flags & O_NONBLOCK) + break; + + } + + if (ptr != buffer) + return ptr - buffer; + else if (flags & O_NONBLOCK) + return -EWOULDBLOCK; + else + return -EIO; +} + +#else /* !ALTERA_AVALON_JTAG_UART_SMALL */ + +/* ----------------------------------------------------------- */ +/* ----------------------- FAST DRIVER ----------------------- */ +/* ----------------------------------------------------------- */ + +int +altera_avalon_jtag_uart_read(altera_avalon_jtag_uart_state* sp, + char * buffer, int space, int flags) +{ + char * ptr = buffer; + + alt_irq_context context; + unsigned int n; + + /* + * When running in a multi threaded environment, obtain the "read_lock" + * semaphore. This ensures that reading from the device is thread-safe. + */ + ALT_SEM_PEND (sp->read_lock, 0); + + while (space > 0) + { + unsigned int in, out; + + /* Read as much data as possible */ + do + { + in = sp->rx_in; + out = sp->rx_out; + + if (in >= out) + n = in - out; + else + n = ALTERA_AVALON_JTAG_UART_BUF_LEN - out; + + if (n == 0) + break; /* No more data available */ + + if (n > space) + n = space; + + memcpy(ptr, sp->rx_buf + out, n); + ptr += n; + space -= n; + + sp->rx_out = (out + n) % ALTERA_AVALON_JTAG_UART_BUF_LEN; + } + while (space > 0); + + /* If we read any data then return it */ + if (ptr != buffer) + break; + + /* If in non-blocking mode then return error */ + if (flags & O_NONBLOCK) + break; + +#ifdef __ucosii__ + /* OS Present: Pend on a flag if the OS is running, otherwise spin */ + if(OSRunning == OS_TRUE) { + /* + * When running in a multi-threaded mode, we pend on the read event + * flag set and timeout event flag set in the isr. This avoids wasting CPU + * cycles waiting in this thread, when we could be doing something more + * profitable elsewhere. + */ + ALT_FLAG_PEND (sp->events, + ALT_JTAG_UART_READ_RDY | ALT_JTAG_UART_TIMEOUT, + OS_FLAG_WAIT_SET_ANY + OS_FLAG_CONSUME, + 0); + } + else { + /* Spin until more data arrives or until host disconnects */ + while (in == sp->rx_in && sp->host_inactive < sp->timeout) + ; + } +#else + /* No OS: Always spin */ + while (in == sp->rx_in && sp->host_inactive < sp->timeout) + ; +#endif /* __ucosii__ */ + + if (in == sp->rx_in) + break; + } + + /* + * Now that access to the circular buffer is complete, release the read + * semaphore so that other threads can access the buffer. + */ + + ALT_SEM_POST (sp->read_lock); + + if (ptr != buffer) + { + /* If we read any data then there is space in the buffer so enable interrupts */ + context = alt_irq_disable_all(); + sp->irq_enable |= ALTERA_AVALON_JTAG_UART_CONTROL_RE_MSK; + IOWR_ALTERA_AVALON_JTAG_UART_CONTROL(sp->base, sp->irq_enable); + alt_irq_enable_all(context); + } + + if (ptr != buffer) + return ptr - buffer; + else if (flags & O_NONBLOCK) + return -EWOULDBLOCK; + else + return -EIO; +} + +#endif /* ALTERA_AVALON_JTAG_UART_SMALL */ diff --git a/software/qsys_tutorial_key3_bsp/drivers/src/altera_avalon_jtag_uart_write.c b/software/qsys_tutorial_key3_bsp/drivers/src/altera_avalon_jtag_uart_write.c new file mode 100644 index 0000000..11aeca1 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/drivers/src/altera_avalon_jtag_uart_write.c @@ -0,0 +1,217 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include +#include +#include +#include + +#include + +#include "sys/alt_irq.h" +#include "sys/alt_alarm.h" +#include "sys/ioctl.h" +#include "alt_types.h" + +#include "altera_avalon_jtag_uart_regs.h" +#include "altera_avalon_jtag_uart.h" + +#include "sys/alt_log_printf.h" + +#ifdef __ucosii__ +#include "includes.h" +#endif /* __ucosii__ */ + +#ifdef ALTERA_AVALON_JTAG_UART_SMALL + +/* ----------------------------------------------------------- */ +/* ------------------------ SMALL DRIVER --------------------- */ +/* ----------------------------------------------------------- */ + +/* Write routine. The small version blocks when there is no space to write + * into, so it's performance will be very bad if you are writing more than + * one FIFOs worth of data. But you said you didn't want to use interrupts :-) + */ + +int altera_avalon_jtag_uart_write(altera_avalon_jtag_uart_state* sp, + const char * ptr, int count, int flags) +{ + unsigned int base = sp->base; + + const char * end = ptr + count; + + while (ptr < end) + if ((IORD_ALTERA_AVALON_JTAG_UART_CONTROL(base) & ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_MSK) != 0) + IOWR_ALTERA_AVALON_JTAG_UART_DATA(base, *ptr++); + + return count; +} + +#else /* !ALTERA_AVALON_JTAG_UART_SMALL */ + +/* ----------------------------------------------------------- */ +/* ------------------------- FAST DRIVER --------------------- */ +/* ----------------------------------------------------------- */ + +int +altera_avalon_jtag_uart_write(altera_avalon_jtag_uart_state* sp, + const char * ptr, int count, int flags) +{ + /* Remove warning at optimisation level 03 by seting out to 0 */ + unsigned int in, out=0; + unsigned int n; + alt_irq_context context; + + const char * start = ptr; + + /* + * When running in a multi threaded environment, obtain the "write_lock" + * semaphore. This ensures that writing to the device is thread-safe. + */ + ALT_SEM_PEND (sp->write_lock, 0); + + do + { + /* Copy as much as we can into the transmit buffer */ + while (count > 0) + { + /* We need a stable value of the out pointer to calculate the space available */ + in = sp->tx_in; + out = sp->tx_out; + + if (in < out) + n = out - 1 - in; + else if (out > 0) + n = ALTERA_AVALON_JTAG_UART_BUF_LEN - in; + else + n = ALTERA_AVALON_JTAG_UART_BUF_LEN - 1 - in; + + if (n == 0) + break; + + if (n > count) + n = count; + + memcpy(sp->tx_buf + in, ptr, n); + ptr += n; + count -= n; + + sp->tx_in = (in + n) % ALTERA_AVALON_JTAG_UART_BUF_LEN; + } + + /* + * If interrupts are disabled then we could transmit here, we only need + * to enable interrupts if there is no space left in the FIFO + * + * For now kick the interrupt routine every time to make it transmit + * the data + */ + context = alt_irq_disable_all(); + sp->irq_enable |= ALTERA_AVALON_JTAG_UART_CONTROL_WE_MSK; + IOWR_ALTERA_AVALON_JTAG_UART_CONTROL(sp->base, sp->irq_enable); + alt_irq_enable_all(context); + + /* + * If there is any data left then either return now or block until + * some has been sent + */ + /* consider: test whether there is anything there while doing this and delay for at most 2s. */ + if (count > 0) + { + if (flags & O_NONBLOCK) + break; + +#ifdef __ucosii__ + /* OS Present: Pend on a flag if the OS is running, otherwise spin */ + if(OSRunning == OS_TRUE) { + /* + * When running in a multi-threaded mode, we pend on the write event + * flag set or the timeout flag in the isr. This avoids wasting CPU + * cycles waiting in this thread, when we could be doing something + * more profitable elsewhere. + */ +#ifdef ALTERA_AVALON_JTAG_UART_IGNORE_FIFO_FULL_ERROR + if(!sp->host_inactive) +#endif + ALT_FLAG_PEND (sp->events, + ALT_JTAG_UART_WRITE_RDY | ALT_JTAG_UART_TIMEOUT, + OS_FLAG_WAIT_SET_ANY + OS_FLAG_CONSUME, + 0); + } + else { + /* + * OS not running: Wait for data to be removed from buffer. + * Once the interrupt routine has removed some data then we + * will be able to insert some more. + */ + while (out == sp->tx_out && sp->host_inactive < sp->timeout) + ; + } +#else + /* + * No OS present: Always wait for data to be removed from buffer. Once + * the interrupt routine has removed some data then we will be able to + * insert some more. + */ + while (out == sp->tx_out && sp->host_inactive < sp->timeout) + ; +#endif /* __ucosii__ */ + + if (out == sp->tx_out) + break; + } + } + while (count > 0); + + /* + * Now that access to the circular buffer is complete, release the write + * semaphore so that other threads can access the buffer. + */ + ALT_SEM_POST (sp->write_lock); + + if (ptr != start) + return ptr - start; + else if (flags & O_NONBLOCK) + return -EWOULDBLOCK; +#ifdef ALTERA_AVALON_JTAG_UART_IGNORE_FIFO_FULL_ERROR + else if (sp->host_inactive >= sp->timeout) { + /* + * Reset the software FIFO, hardware FIFO could not be reset. + * Just throw away characters without reporting error. + */ + sp->tx_out = sp->tx_in = 0; + return ptr - start + count; + } +#endif + else + return -EIO; /* Host not connected */ +} + +#endif /* ALTERA_AVALON_JTAG_UART_SMALL */ diff --git a/software/qsys_tutorial_key3_bsp/libhal_bsp.a b/software/qsys_tutorial_key3_bsp/libhal_bsp.a new file mode 100644 index 0000000..cfc9e65 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/libhal_bsp.a Binary files differ diff --git a/software/qsys_tutorial_key3_bsp/linker.h b/software/qsys_tutorial_key3_bsp/linker.h new file mode 100644 index 0000000..db29027 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/linker.h @@ -0,0 +1,101 @@ +/* + * linker.h - Linker script mapping information + * + * Machine generated for CPU 'nios2_processor' in SOPC Builder design 'nios_system' + * SOPC Builder design path: C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.sopcinfo + * + * Generated: Thu Nov 10 10:49:51 JST 2016 + */ + +/* + * DO NOT MODIFY THIS FILE + * + * Changing this file will have subtle consequences + * which will almost certainly lead to a nonfunctioning + * system. If you do modify this file, be aware that your + * changes will be overwritten and lost when this file + * is generated again. + * + * DO NOT MODIFY THIS FILE + */ + +/* + * License Agreement + * + * Copyright (c) 2008 + * Altera Corporation, San Jose, California, USA. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + * This agreement shall be governed in all respects by the laws of the State + * of California and by the laws of the United States of America. + */ + +#ifndef __LINKER_H_ +#define __LINKER_H_ + + +/* + * BSP controls alt_load() behavior in crt0. + * + */ + +#define ALT_LOAD_EXPLICITLY_CONTROLLED + + +/* + * Base address and span (size in bytes) of each linker region + * + */ + +#define ONCHIP_MEMORY_REGION_BASE 0x20 +#define ONCHIP_MEMORY_REGION_SPAN 4064 +#define RESET_REGION_BASE 0x0 +#define RESET_REGION_SPAN 32 + + +/* + * Devices associated with code sections + * + */ + +#define ALT_EXCEPTIONS_DEVICE ONCHIP_MEMORY +#define ALT_RESET_DEVICE ONCHIP_MEMORY +#define ALT_RODATA_DEVICE ONCHIP_MEMORY +#define ALT_RWDATA_DEVICE ONCHIP_MEMORY +#define ALT_TEXT_DEVICE ONCHIP_MEMORY + + +/* + * Initialization code at the reset address is allowed (e.g. no external bootloader). + * + */ + +#define ALT_ALLOW_CODE_AT_RESET + + +/* + * The alt_load() facility is called from crt0 to copy sections into RAM. + * + */ + +#define ALT_LOAD_COPY_RWDATA + +#endif /* __LINKER_H_ */ diff --git a/software/qsys_tutorial_key3_bsp/linker.x b/software/qsys_tutorial_key3_bsp/linker.x new file mode 100644 index 0000000..a41d6ec --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/linker.x @@ -0,0 +1,385 @@ +/* + * linker.x - Linker script + * + * Machine generated for CPU 'nios2_processor' in SOPC Builder design 'nios_system' + * SOPC Builder design path: C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.sopcinfo + * + * Generated: Thu Nov 10 10:49:51 JST 2016 + */ + +/* + * DO NOT MODIFY THIS FILE + * + * Changing this file will have subtle consequences + * which will almost certainly lead to a nonfunctioning + * system. If you do modify this file, be aware that your + * changes will be overwritten and lost when this file + * is generated again. + * + * DO NOT MODIFY THIS FILE + */ + +/* + * License Agreement + * + * Copyright (c) 2008 + * Altera Corporation, San Jose, California, USA. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + * This agreement shall be governed in all respects by the laws of the State + * of California and by the laws of the United States of America. + */ + +MEMORY +{ + reset : ORIGIN = 0x0, LENGTH = 32 + onchip_memory : ORIGIN = 0x20, LENGTH = 4064 +} + +/* Define symbols for each memory base-address */ +__alt_mem_onchip_memory = 0x0; + +OUTPUT_FORMAT( "elf32-littlenios2", + "elf32-littlenios2", + "elf32-littlenios2" ) +OUTPUT_ARCH( nios2 ) +ENTRY( _start ) + +/* + * The alt_load() facility is enabled. This typically happens when there isn't + * an external bootloader (e.g. flash bootloader). + * The LMA (aka physical address) of each loaded section is + * set to the .text memory device. + * The HAL alt_load() routine called from crt0 copies sections from + * the .text memory to RAM as needed. + */ + +SECTIONS +{ + + /* + * Output sections associated with reset and exceptions (they have to be first) + */ + + .entry : + { + KEEP (*(.entry)) + } > reset + + .exceptions : + { + PROVIDE (__ram_exceptions_start = ABSOLUTE(.)); + . = ALIGN(0x20); + KEEP (*(.irq)); + KEEP (*(.exceptions.entry.label)); + KEEP (*(.exceptions.entry.user)); + KEEP (*(.exceptions.entry)); + KEEP (*(.exceptions.irqtest.user)); + KEEP (*(.exceptions.irqtest)); + KEEP (*(.exceptions.irqhandler.user)); + KEEP (*(.exceptions.irqhandler)); + KEEP (*(.exceptions.irqreturn.user)); + KEEP (*(.exceptions.irqreturn)); + KEEP (*(.exceptions.notirq.label)); + KEEP (*(.exceptions.notirq.user)); + KEEP (*(.exceptions.notirq)); + KEEP (*(.exceptions.soft.user)); + KEEP (*(.exceptions.soft)); + KEEP (*(.exceptions.unknown.user)); + KEEP (*(.exceptions.unknown)); + KEEP (*(.exceptions.exit.label)); + KEEP (*(.exceptions.exit.user)); + KEEP (*(.exceptions.exit)); + KEEP (*(.exceptions)); + PROVIDE (__ram_exceptions_end = ABSOLUTE(.)); + } > onchip_memory + + PROVIDE (__flash_exceptions_start = LOADADDR(.exceptions)); + + .text : + { + /* + * All code sections are merged into the text output section, along with + * the read only data sections. + * + */ + + PROVIDE (stext = ABSOLUTE(.)); + + *(.interp) + *(.hash) + *(.dynsym) + *(.dynstr) + *(.gnu.version) + *(.gnu.version_d) + *(.gnu.version_r) + *(.rel.init) + *(.rela.init) + *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) + *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) + *(.rel.fini) + *(.rela.fini) + *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) + *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) + *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) + *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) + *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) + *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) + *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) + *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) + *(.rel.ctors) + *(.rela.ctors) + *(.rel.dtors) + *(.rela.dtors) + *(.rel.got) + *(.rela.got) + *(.rel.sdata .rel.sdata.* .rel.gnu.linkonce.s.*) + *(.rela.sdata .rela.sdata.* .rela.gnu.linkonce.s.*) + *(.rel.sbss .rel.sbss.* .rel.gnu.linkonce.sb.*) + *(.rela.sbss .rela.sbss.* .rela.gnu.linkonce.sb.*) + *(.rel.sdata2 .rel.sdata2.* .rel.gnu.linkonce.s2.*) + *(.rela.sdata2 .rela.sdata2.* .rela.gnu.linkonce.s2.*) + *(.rel.sbss2 .rel.sbss2.* .rel.gnu.linkonce.sb2.*) + *(.rela.sbss2 .rela.sbss2.* .rela.gnu.linkonce.sb2.*) + *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) + *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) + *(.rel.plt) + *(.rela.plt) + *(.rel.dyn) + + KEEP (*(.init)) + *(.plt) + *(.text .stub .text.* .gnu.linkonce.t.*) + + /* .gnu.warning sections are handled specially by elf32.em. */ + + *(.gnu.warning.*) + KEEP (*(.fini)) + PROVIDE (__etext = ABSOLUTE(.)); + PROVIDE (_etext = ABSOLUTE(.)); + PROVIDE (etext = ABSOLUTE(.)); + + *(.eh_frame_hdr) + /* Ensure the __preinit_array_start label is properly aligned. We + could instead move the label definition inside the section, but + the linker would then create the section even if it turns out to + be empty, which isn't pretty. */ + . = ALIGN(4); + PROVIDE (__preinit_array_start = ABSOLUTE(.)); + *(.preinit_array) + PROVIDE (__preinit_array_end = ABSOLUTE(.)); + PROVIDE (__init_array_start = ABSOLUTE(.)); + *(.init_array) + PROVIDE (__init_array_end = ABSOLUTE(.)); + PROVIDE (__fini_array_start = ABSOLUTE(.)); + *(.fini_array) + PROVIDE (__fini_array_end = ABSOLUTE(.)); + SORT(CONSTRUCTORS) + KEEP (*(.eh_frame)) + *(.gcc_except_table) + *(.dynamic) + PROVIDE (__CTOR_LIST__ = ABSOLUTE(.)); + KEEP (*(.ctors)) + KEEP (*(SORT(.ctors.*))) + PROVIDE (__CTOR_END__ = ABSOLUTE(.)); + PROVIDE (__DTOR_LIST__ = ABSOLUTE(.)); + KEEP (*(.dtors)) + KEEP (*(SORT(.dtors.*))) + PROVIDE (__DTOR_END__ = ABSOLUTE(.)); + KEEP (*(.jcr)) + . = ALIGN(4); + } > onchip_memory = 0x3a880100 /* Nios II NOP instruction */ + + .rodata : + { + PROVIDE (__ram_rodata_start = ABSOLUTE(.)); + . = ALIGN(4); + *(.rodata .rodata.* .gnu.linkonce.r.*) + *(.rodata1) + . = ALIGN(4); + PROVIDE (__ram_rodata_end = ABSOLUTE(.)); + } > onchip_memory + + PROVIDE (__flash_rodata_start = LOADADDR(.rodata)); + + /* + * + * This section's LMA is set to the .text region. + * crt0 will copy to this section's specified mapped region virtual memory address (VMA) + * + * .rwdata region equals the .text region, and is set to be loaded into .text region. + * This requires two copies of .rwdata in the .text region. One read writable at VMA. + * and one read-only at LMA. crt0 will copy from LMA to VMA on reset + * + */ + + .rwdata LOADADDR (.rodata) + SIZEOF (.rodata) : AT ( LOADADDR (.rodata) + SIZEOF (.rodata)+ SIZEOF (.rwdata) ) + { + PROVIDE (__ram_rwdata_start = ABSOLUTE(.)); + . = ALIGN(4); + *(.got.plt) *(.got) + *(.data1) + *(.data .data.* .gnu.linkonce.d.*) + + _gp = ABSOLUTE(. + 0x8000); + PROVIDE(gp = _gp); + + *(.rwdata .rwdata.*) + *(.sdata .sdata.* .gnu.linkonce.s.*) + *(.sdata2 .sdata2.* .gnu.linkonce.s2.*) + + . = ALIGN(4); + _edata = ABSOLUTE(.); + PROVIDE (edata = ABSOLUTE(.)); + PROVIDE (__ram_rwdata_end = ABSOLUTE(.)); + } > onchip_memory + + PROVIDE (__flash_rwdata_start = LOADADDR(.rwdata)); + + /* + * + * This section's LMA is set to the .text region. + * crt0 will copy to this section's specified mapped region virtual memory address (VMA) + * + */ + + .bss LOADADDR (.rwdata) + SIZEOF (.rwdata) : AT ( LOADADDR (.rwdata) + SIZEOF (.rwdata) ) + { + __bss_start = ABSOLUTE(.); + PROVIDE (__sbss_start = ABSOLUTE(.)); + PROVIDE (___sbss_start = ABSOLUTE(.)); + + *(.dynsbss) + *(.sbss .sbss.* .gnu.linkonce.sb.*) + *(.sbss2 .sbss2.* .gnu.linkonce.sb2.*) + *(.scommon) + + PROVIDE (__sbss_end = ABSOLUTE(.)); + PROVIDE (___sbss_end = ABSOLUTE(.)); + + *(.dynbss) + *(.bss .bss.* .gnu.linkonce.b.*) + *(COMMON) + + . = ALIGN(4); + __bss_end = ABSOLUTE(.); + } > onchip_memory + + /* + * + * One output section mapped to the associated memory device for each of + * the available memory devices. These are not used by default, but can + * be used by user applications by using the .section directive. + * + * The output section used for the heap is treated in a special way, + * i.e. the symbols "end" and "_end" are added to point to the heap start. + * + * Because alt_load() is enabled, these sections have + * their LMA set to be loaded into the .text memory region. + * However, the alt_load() code will NOT automatically copy + * these sections into their mapped memory region. + * + */ + + /* + * + * This section's LMA is set to the .text region. + * crt0 will copy to this section's specified mapped region virtual memory address (VMA) + * + */ + + .onchip_memory LOADADDR (.bss) + SIZEOF (.bss) : AT ( LOADADDR (.bss) + SIZEOF (.bss) ) + { + PROVIDE (_alt_partition_onchip_memory_start = ABSOLUTE(.)); + *(.onchip_memory. onchip_memory.*) + . = ALIGN(4); + PROVIDE (_alt_partition_onchip_memory_end = ABSOLUTE(.)); + _end = ABSOLUTE(.); + end = ABSOLUTE(.); + __alt_stack_base = ABSOLUTE(.); + } > onchip_memory + + PROVIDE (_alt_partition_onchip_memory_load_addr = LOADADDR(.onchip_memory)); + + /* + * Stabs debugging sections. + * + */ + + .stab 0 : { *(.stab) } + .stabstr 0 : { *(.stabstr) } + .stab.excl 0 : { *(.stab.excl) } + .stab.exclstr 0 : { *(.stab.exclstr) } + .stab.index 0 : { *(.stab.index) } + .stab.indexstr 0 : { *(.stab.indexstr) } + .comment 0 : { *(.comment) } + /* DWARF debug sections. + Symbols in the DWARF debugging sections are relative to the beginning + of the section so we begin them at 0. */ + /* DWARF 1 */ + .debug 0 : { *(.debug) } + .line 0 : { *(.line) } + /* GNU DWARF 1 extensions */ + .debug_srcinfo 0 : { *(.debug_srcinfo) } + .debug_sfnames 0 : { *(.debug_sfnames) } + /* DWARF 1.1 and DWARF 2 */ + .debug_aranges 0 : { *(.debug_aranges) } + .debug_pubnames 0 : { *(.debug_pubnames) } + /* DWARF 2 */ + .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } + .debug_abbrev 0 : { *(.debug_abbrev) } + .debug_line 0 : { *(.debug_line) } + .debug_frame 0 : { *(.debug_frame) } + .debug_str 0 : { *(.debug_str) } + .debug_loc 0 : { *(.debug_loc) } + .debug_macinfo 0 : { *(.debug_macinfo) } + /* SGI/MIPS DWARF 2 extensions */ + .debug_weaknames 0 : { *(.debug_weaknames) } + .debug_funcnames 0 : { *(.debug_funcnames) } + .debug_typenames 0 : { *(.debug_typenames) } + .debug_varnames 0 : { *(.debug_varnames) } + + /* Altera debug extensions */ + .debug_alt_sim_info 0 : { *(.debug_alt_sim_info) } +} + +/* provide a pointer for the stack */ + +/* + * Don't override this, override the __alt_stack_* symbols instead. + */ +__alt_data_end = 0x1000; + +/* + * The next two symbols define the location of the default stack. You can + * override them to move the stack to a different memory. + */ +PROVIDE( __alt_stack_pointer = __alt_data_end ); +PROVIDE( __alt_stack_limit = __alt_stack_base ); + +/* + * This symbol controls where the start of the heap is. If the stack is + * contiguous with the heap then the stack will contract as memory is + * allocated to the heap. + * Override this symbol to put the heap in a different memory. + */ +PROVIDE( __alt_heap_start = end ); +PROVIDE( __alt_heap_limit = 0x1000 ); diff --git a/software/qsys_tutorial_key3_bsp/mem_init.mk b/software/qsys_tutorial_key3_bsp/mem_init.mk new file mode 100644 index 0000000..4caaef9 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/mem_init.mk @@ -0,0 +1,322 @@ + +######################################################################### +####### M E M I N I T M A K E F I L E C O N T E N T ###### +######################################################################### + +######################################################################### +# This file is intended to be included by public.mk +# +# +# The following variables must be defined before including this file: +# - ELF +# +# The following variables may be defined to override the default behavior: +# - HDL_SIM_DIR +# - HDL_SIM_INSTALL_DIR +# - MEM_INIT_DIR +# - MEM_INIT_INSTALL_DIR +# - QUARTUS_PROJECT_DIR +# - SOPC_NAME +# - SIM_OPTIMIZE +# - RESET_ADDRESS +# +######################################################################### + +ifeq ($(MEM_INIT_FILE),) +# MEM_INIT_FILE should be set equal to the working relative path to this +# mem_init.mk makefile fragment +MEM_INIT_FILE := $(wildcard $(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST))) +endif + +ifeq ($(ELF2DAT),) +ELF2DAT := elf2dat +endif + +ifeq ($(ELF2HEX),) +ELF2HEX := elf2hex +endif + +ifeq ($(ELF2FLASH),) +ELF2FLASH := elf2flash +endif + +ifeq ($(FLASH2DAT),) +FLASH2DAT := flash2dat +endif + +ifeq ($(NM),) +NM := nios2-elf-nm +endif + +ifeq ($(MKDIR),) +MKDIR := mkdir -p +endif + +ifeq ($(RM),) +RM := rm -f +endif + +ifeq ($(CP),) +CP := cp +endif + +ifeq ($(ECHO),) +ECHO := echo +endif + +MEM_INIT_DIR ?= mem_init +HDL_SIM_DIR ?= $(MEM_INIT_DIR)/hdl_sim + +ifdef QUARTUS_PROJECT_DIR +MEM_INIT_INSTALL_DIR ?= $(patsubst %/,%,$(QUARTUS_PROJECT_DIR)) +ifdef SOPC_NAME +HDL_SIM_INSTALL_DIR ?= $(patsubst %/,%,$(QUARTUS_PROJECT_DIR))/$(SOPC_NAME)_sim +endif +endif + +MEM_INIT_DESCRIPTOR_FILE ?= $(MEM_INIT_DIR)/meminit.spd + +MEM_INIT_QIP_FILE ?= $(MEM_INIT_DIR)/meminit.qip + +#------------------------------------- +# Default Flash Boot Loaders +#------------------------------------- + +BOOT_LOADER_PATH ?= $(SOPC_KIT_NIOS2)/components/altera_nios2 +BOOT_LOADER_CFI ?= $(BOOT_LOADER_PATH)/boot_loader_cfi.srec +BOOT_LOADER_CFI_BE ?= $(BOOT_LOADER_PATH)/boot_loader_cfi_be.srec + + +#------------------------------------- +# Default Target +#------------------------------------- + +.PHONY: default_mem_init +ifeq ($(QSYS),1) +default_mem_init: mem_init_generate +else +default_mem_init: mem_init_install +endif +#------------------------------------- +# Runtime Macros +#------------------------------------- + +define post-process-info + @echo Post-processing to create $@... +endef + +target_stem = $(notdir $(basename $@)) + +mem_start_address = $($(target_stem)_START) +mem_end_address = $($(target_stem)_END) +mem_width = $($(target_stem)_WIDTH) +mem_endianness = $($(target_stem)_ENDIANNESS) +mem_create_lanes = $($(target_stem)_CREATE_LANES) + +mem_pad_flag = $($(target_stem)_PAD_FLAG) +mem_reloc_input_flag = $($(target_stem)_RELOC_INPUT_FLAG) +mem_no_zero_fill_flag = $($(target_stem)_NO_ZERO_FILL_FLAG) + +flash_mem_epcs_flag = $($(target_stem)_EPCS_FLAGS) +flash_mem_cfi_flag = $($(target_stem)_CFI_FLAGS) +flash_mem_boot_loader_flag = $($(target_stem)_BOOT_LOADER_FLAG) + +elf2dat_extra_args = $(mem_pad_flag) +elf2hex_extra_args = $(mem_no_zero_fill_flag) +elf2flash_extra_args = $(flash_mem_cfi_flag) $(flash_mem_epcs_flag) $(flash_mem_boot_loader_flag) +flash2dat_extra_args = $(mem_pad_flag) $(mem_reloc_input_flag) + +#------------------------------------------------------------------------------ +# BSP SPECIFIC CONTENT +# +# The content below is controlled by the BSP and SOPC System +#------------------------------------------------------------------------------ +#START OF BSP SPECIFIC + +#------------------------------------- +# Global Settings +#------------------------------------- + + +# The following TYPE comment allows tools to identify the 'type' of target this +# makefile is associated with. +# TYPE: BSP_MEMINIT_MAKEFILE + +# This following VERSION comment indicates the version of the tool used to +# generate this makefile. A makefile variable is provided for VERSION as well. +# ACDS_VERSION: 13.0sp1 +ACDS_VERSION := 13.0sp1 + +# This following BUILD_NUMBER comment indicates the build number of the tool +# used to generate this makefile. +# BUILD_NUMBER: 232 + +# Optimize for simulation +SIM_OPTIMIZE ?= 0 + +# The CPU reset address as needed by elf2flash +RESET_ADDRESS ?= 0x00000000 + +#------------------------------------- +# Pre-Initialized Memory Descriptions +#------------------------------------- + +# Memory: onchip_memory +MEM_0 := nios_system_onchip_memory +$(MEM_0)_NAME := onchip_memory +$(MEM_0)_MEM_INIT_FILE_PARAM_NAME := INIT_FILE +HEX_FILES += $(MEM_INIT_DIR)/$(MEM_0).hex +MEM_INIT_INSTALL_FILES += $(MEM_INIT_INSTALL_DIR)/$(MEM_0).hex +DAT_FILES += $(HDL_SIM_DIR)/$(MEM_0).dat +HDL_SIM_INSTALL_FILES += $(HDL_SIM_INSTALL_DIR)/$(MEM_0).dat +SYM_FILES += $(HDL_SIM_DIR)/$(MEM_0).sym +HDL_SIM_INSTALL_FILES += $(HDL_SIM_INSTALL_DIR)/$(MEM_0).sym +$(MEM_0)_START := 0x00000000 +$(MEM_0)_END := 0x00000fff +$(MEM_0)_HIERARCHICAL_PATH := onchip_memory +$(MEM_0)_WIDTH := 32 +$(MEM_0)_ENDIANNESS := --little-endian-mem +$(MEM_0)_CREATE_LANES := 0 + +.PHONY: onchip_memory +onchip_memory: check_elf_exists $(MEM_INIT_DIR)/$(MEM_0).hex $(HDL_SIM_DIR)/$(MEM_0).dat $(HDL_SIM_DIR)/$(MEM_0).sym + + +#END OF BSP SPECIFIC + +#------------------------------------- +# Pre-Initialized Memory Targets +#------------------------------------- + +.PHONY: mem_init_install mem_init_generate mem_init_clean + +ifeq ($(QSYS),1) +# Target mem_init_install is deprecated for QSys based systems +# To initialize onchip memories for Quartus II Synthesis with Qsys based systems: +# 1) Use "make mem_init_genearate" +# 2) Add the generated mem_init/meminit.qip file to your Quartus II Project +# +mem_init_install: + $(error Deprecated Makefile Target: '$@'. Use target 'mem_init_generate' and then add $(MEM_INIT_QIP_FILE) to your Quartus II Project) + +else # QSYS != 1, if SopcBuilder based system + +ifneq ($(MEM_INIT_INSTALL_DIR),) +mem_init_install: $(MEM_INIT_INSTALL_FILES) +endif + +ifneq ($(HDL_SIM_INSTALL_DIR),) +mem_init_install: $(HDL_SIM_INSTALL_FILES) +endif + +mem_init_install: mem_init_generate +ifeq ($(MEM_INIT_INSTALL_DIR),) + @echo "WARNING: MEM_INIT_INSTALL_DIR not set. Set your QUARTUS_PROJECT_DIR environment variable." +endif +ifeq ($(HDL_SIM_INSTALL_DIR),) + @echo "WARNING: HDL_SIM_INSTALL_DIR not set. Set your QUARTUS_PROJECT_DIR and SOPC_NAME environment variable." +endif + +$(MEM_INIT_INSTALL_FILES): $(MEM_INIT_INSTALL_DIR)/%: $(MEM_INIT_DIR)/% + @$(MKDIR) $(@D) + @$(CP) -v $< $@ + +$(HDL_SIM_INSTALL_FILES): $(HDL_SIM_INSTALL_DIR)/%: $(HDL_SIM_DIR)/% + @$(MKDIR) $(@D) + @$(CP) -v $< $@ + +endif # QSYS == 1 + + +mem_init_generate: hex dat sym flash $(MEM_INIT_DESCRIPTOR_FILE) $(MEM_INIT_QIP_FILE) + +mem_init_clean: + @$(RM) -r $(MEM_INIT_DIR) $(HDL_SIM_DIR) $(FLASH_FILES) + +.PHONY: hex dat sym flash + +hex: check_elf_exists $(HEX_FILES) + +dat: check_elf_exists $(DAT_FILES) + +sym: check_elf_exists $(SYM_FILES) + +flash: check_elf_exists $(FLASH_FILES) + +#------------------------------------- +# Pre-Initialized Memory Rules +#------------------------------------- + +.PHONY: check_elf_exists +check_elf_exists: $(ELF) +ifeq ($(ELF),) + $(error ELF var not set in mem_init.mk) +endif + +$(filter-out $(FLASH_DAT_FILES),$(DAT_FILES)): %.dat: $(ELF) + $(post-process-info) + @$(MKDIR) $(@D) + bash -c '$(ELF2DAT) --infile=$< --outfile=$@ \ + --base=$(mem_start_address) --end=$(mem_end_address) --width=$(mem_width) \ + $(mem_endianness) --create-lanes=$(mem_create_lanes) $(elf2dat_extra_args)' + +$(foreach i,0 1 2 3 4 5 6 7,%_lane$(i).dat): %.dat + @true + +$(HEX_FILES): %.hex: $(ELF) + $(post-process-info) + @$(MKDIR) $(@D) + bash -c '$(ELF2HEX) $< $(mem_start_address) $(mem_end_address) --width=$(mem_width) \ + $(mem_endianness) --create-lanes=$(mem_create_lanes) $(elf2hex_extra_args) $@' + +$(SYM_FILES): %.sym: $(ELF) + $(post-process-info) + @$(MKDIR) $(@D) + $(NM) -n $< > $@ + +$(FLASH_FILES): %.flash: $(ELF) + $(post-process-info) + @$(MKDIR) $(@D) + bash -c '$(ELF2FLASH) --input=$< --outfile=$@ --sim_optimize=$(SIM_OPTIMIZE) $(mem_endianness) \ + $(elf2flash_extra_args)' + +# +# Function generate_spd_entry +# Arg1: path to the memory initialization file +# Arg2: Type HEX or DAT +# Arg3: Output spd file to append +gen_spd_entry.BASE_FILE = $(basename $(notdir $1)) +gen_spd_entry.PARAM_NAME = $($(gen_spd_entry.BASE_FILE)_MEM_INIT_FILE_PARAM_NAME) +gen_spd_entry.MEM_PATH = $($(gen_spd_entry.BASE_FILE)_HIERARCHICAL_PATH) +gen_spd_entry.SETTINGS = $(strip \ + path=\"$1\" \ + type=\"$2\" \ + $(if $(gen_spd_entry.PARAM_NAME),initParamName=\"$(gen_spd_entry.PARAM_NAME)\") \ + $(if $(gen_spd_entry.MEM_PATH),memoryPath=\"$(gen_spd_entry.MEM_PATH)\") \ +) +define gen_spd_entry +$(ECHO) "" >> $3 +endef + +$(MEM_INIT_DESCRIPTOR_FILE).DAT_FILESET := $(patsubst $(dir $(MEM_INIT_DESCRIPTOR_FILE))%,%,$(DAT_FILES)) +$(MEM_INIT_DESCRIPTOR_FILE).HEX_FILESET := $(patsubst $(dir $(MEM_INIT_DESCRIPTOR_FILE))%,%,$(HEX_FILES)) + +$(MEM_INIT_DESCRIPTOR_FILE): %.spd: $(MEM_INIT_FILE) + $(post-process-info) + @$(MKDIR) $(@D) + @$(RM) $@ + @$(ECHO) "" > $@ + @$(ECHO) "" >> $@ + @$(foreach dat_file,$($@.DAT_FILESET),$(call gen_spd_entry,$(dat_file),DAT,$@) &&)true + @$(foreach hex_file,$($@.HEX_FILESET),$(call gen_spd_entry,$(hex_file),HEX,$@) &&)true + @$(ECHO) "" >> $@ + +.DELETE_ON_ERROR: $(MEM_INIT_DESCRIPTOR_FILE) + +$(MEM_INIT_QIP_FILE): %.qip: $(MEM_INIT_FILE) + $(post-process-info) + @$(MKDIR) $(@D) + @$(RM) $@ + @$(ECHO) "set_global_assignment -name SEARCH_PATH $$::quartus(qip_path)" > $@ + +.DELETE_ON_ERROR: $(MEM_INIT_QIP_FILE) diff --git a/software/qsys_tutorial_key3_bsp/memory.gdb b/software/qsys_tutorial_key3_bsp/memory.gdb new file mode 100644 index 0000000..4fc01b7 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/memory.gdb @@ -0,0 +1,50 @@ +# memory.gdb - GDB memory region definitions +# +# Machine generated for CPU 'nios2_processor' in SOPC Builder design 'nios_system' +# SOPC Builder design path: C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.sopcinfo +# +# Generated: Thu Nov 10 10:49:51 JST 2016 + +# DO NOT MODIFY THIS FILE +# +# Changing this file will have subtle consequences +# which will almost certainly lead to a nonfunctioning +# system. If you do modify this file, be aware that your +# changes will be overwritten and lost when this file +# is generated again. +# +# DO NOT MODIFY THIS FILE + +# License Agreement +# +# Copyright (c) 2008 +# Altera Corporation, San Jose, California, USA. +# All rights reserved. +# +# Permission is hereby granted, free of charge, to any person obtaining a +# copy of this software and associated documentation files (the "Software"), +# to deal in the Software without restriction, including without limitation +# the rights to use, copy, modify, merge, publish, distribute, sublicense, +# and/or sell copies of the Software, and to permit persons to whom the +# Software is furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +# DEALINGS IN THE SOFTWARE. +# +# This agreement shall be governed in all respects by the laws of the State +# of California and by the laws of the United States of America. + +# Define memory regions for each memory connected to the CPU. +# The cache attribute is specified which improves GDB performance +# by allowing GDB to cache memory contents on the host. + +# onchip_memory +memory 0x0 0x1000 cache diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_alarm_start.d b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_alarm_start.d new file mode 100644 index 0000000..3bb20ea --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_alarm_start.d @@ -0,0 +1,22 @@ +obj/HAL/src/alt_alarm_start.o: HAL/src/alt_alarm_start.c \ + HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ + HAL/inc/priv/alt_alarm.h HAL/inc/alt_types.h HAL/inc/sys/alt_irq.h \ + HAL/inc/nios2.h system.h linker.h + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +system.h: + +linker.h: diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_alarm_start.o b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_alarm_start.o new file mode 100644 index 0000000..de5f8bd --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_alarm_start.o Binary files differ diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_busy_sleep.d b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_busy_sleep.d new file mode 100644 index 0000000..e93e80c --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_busy_sleep.d @@ -0,0 +1,10 @@ +obj/HAL/src/alt_busy_sleep.o: HAL/src/alt_busy_sleep.c system.h linker.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_busy_sleep.h + +system.h: + +linker.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_busy_sleep.h: diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_busy_sleep.o b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_busy_sleep.o new file mode 100644 index 0000000..117c365 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_busy_sleep.o Binary files differ diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_close.d b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_close.d new file mode 100644 index 0000000..fbbab9c --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_close.d @@ -0,0 +1,34 @@ +obj/HAL/src/alt_close.o: HAL/src/alt_close.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h HAL/inc/priv/alt_file.h \ + HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h \ + HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_close.o b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_close.o new file mode 100644 index 0000000..04ccc64 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_close.o Binary files differ diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_dcache_flush.d b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_dcache_flush.d new file mode 100644 index 0000000..a0eaf8a --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_dcache_flush.d @@ -0,0 +1,15 @@ +obj/HAL/src/alt_dcache_flush.o: HAL/src/alt_dcache_flush.c \ + HAL/inc/nios2.h system.h linker.h HAL/inc/alt_types.h \ + HAL/inc/sys/alt_cache.h HAL/inc/alt_types.h + +HAL/inc/nios2.h: + +system.h: + +linker.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_cache.h: + +HAL/inc/alt_types.h: diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_dcache_flush.o b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_dcache_flush.o new file mode 100644 index 0000000..735e0d4 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_dcache_flush.o Binary files differ diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_dcache_flush_all.d b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_dcache_flush_all.d new file mode 100644 index 0000000..792c3e4 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_dcache_flush_all.d @@ -0,0 +1,15 @@ +obj/HAL/src/alt_dcache_flush_all.o: HAL/src/alt_dcache_flush_all.c \ + HAL/inc/nios2.h system.h linker.h HAL/inc/alt_types.h \ + HAL/inc/sys/alt_cache.h HAL/inc/alt_types.h + +HAL/inc/nios2.h: + +system.h: + +linker.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_cache.h: + +HAL/inc/alt_types.h: diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_dcache_flush_all.o b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_dcache_flush_all.o new file mode 100644 index 0000000..9985744 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_dcache_flush_all.o Binary files differ diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_dcache_flush_no_writeback.d b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_dcache_flush_no_writeback.d new file mode 100644 index 0000000..867c42b --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_dcache_flush_no_writeback.d @@ -0,0 +1,16 @@ +obj/HAL/src/alt_dcache_flush_no_writeback.o: \ + HAL/src/alt_dcache_flush_no_writeback.c HAL/inc/nios2.h system.h \ + linker.h HAL/inc/alt_types.h HAL/inc/sys/alt_cache.h \ + HAL/inc/alt_types.h + +HAL/inc/nios2.h: + +system.h: + +linker.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_cache.h: + +HAL/inc/alt_types.h: diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_dcache_flush_no_writeback.o b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_dcache_flush_no_writeback.o new file mode 100644 index 0000000..e2c67ac --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_dcache_flush_no_writeback.o Binary files differ diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_dev.d b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_dev.d new file mode 100644 index 0000000..cd9b1d4 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_dev.d @@ -0,0 +1,34 @@ +obj/HAL/src/alt_dev.o: HAL/src/alt_dev.c HAL/inc/sys/alt_dev.h system.h \ + linker.h HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h \ + HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h HAL/inc/alt_types.h \ + system.h + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/alt_types.h: + +system.h: diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_dev.o b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_dev.o new file mode 100644 index 0000000..99d8dc4 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_dev.o Binary files differ diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_dev_llist_insert.d b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_dev_llist_insert.d new file mode 100644 index 0000000..344d065 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_dev_llist_insert.d @@ -0,0 +1,13 @@ +obj/HAL/src/alt_dev_llist_insert.o: HAL/src/alt_dev_llist_insert.c \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/alt_types.h HAL/inc/sys/alt_errno.h + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_errno.h: diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_dev_llist_insert.o b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_dev_llist_insert.o new file mode 100644 index 0000000..f37e8ad --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_dev_llist_insert.o Binary files differ diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_dma_rxchan_open.d b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_dma_rxchan_open.d new file mode 100644 index 0000000..fb21fed --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_dma_rxchan_open.d @@ -0,0 +1,35 @@ +obj/HAL/src/alt_dma_rxchan_open.o: HAL/src/alt_dma_rxchan_open.c \ + HAL/inc/sys/alt_dma.h HAL/inc/sys/alt_dma_dev.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/alt_types.h HAL/inc/sys/alt_errno.h \ + HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h system.h linker.h \ + HAL/inc/sys/alt_llist.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h + +HAL/inc/sys/alt_dma.h: + +HAL/inc/sys/alt_dma_dev.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_errno.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_dma_rxchan_open.o b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_dma_rxchan_open.o new file mode 100644 index 0000000..8f93fc0 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_dma_rxchan_open.o Binary files differ diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_dma_txchan_open.d b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_dma_txchan_open.d new file mode 100644 index 0000000..500b95c --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_dma_txchan_open.d @@ -0,0 +1,35 @@ +obj/HAL/src/alt_dma_txchan_open.o: HAL/src/alt_dma_txchan_open.c \ + HAL/inc/sys/alt_dma.h HAL/inc/sys/alt_dma_dev.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/alt_types.h HAL/inc/sys/alt_errno.h \ + HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h system.h linker.h \ + HAL/inc/sys/alt_llist.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h + +HAL/inc/sys/alt_dma.h: + +HAL/inc/sys/alt_dma_dev.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_errno.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_dma_txchan_open.o b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_dma_txchan_open.o new file mode 100644 index 0000000..4592be7 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_dma_txchan_open.o Binary files differ diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_do_ctors.d b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_do_ctors.d new file mode 100644 index 0000000..daf8baf --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_do_ctors.d @@ -0,0 +1 @@ +obj/HAL/src/alt_do_ctors.o: HAL/src/alt_do_ctors.c diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_do_ctors.o b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_do_ctors.o new file mode 100644 index 0000000..15bae2b --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_do_ctors.o Binary files differ diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_do_dtors.d b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_do_dtors.d new file mode 100644 index 0000000..c3471eb --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_do_dtors.d @@ -0,0 +1 @@ +obj/HAL/src/alt_do_dtors.o: HAL/src/alt_do_dtors.c diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_do_dtors.o b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_do_dtors.o new file mode 100644 index 0000000..91c75ed --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_do_dtors.o Binary files differ diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_env_lock.d b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_env_lock.d new file mode 100644 index 0000000..634d7b0 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_env_lock.d @@ -0,0 +1 @@ +obj/HAL/src/alt_env_lock.o: HAL/src/alt_env_lock.c diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_env_lock.o b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_env_lock.o new file mode 100644 index 0000000..6c1dbb6 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_env_lock.o Binary files differ diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_environ.d b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_environ.d new file mode 100644 index 0000000..e9ca295 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_environ.d @@ -0,0 +1,3 @@ +obj/HAL/src/alt_environ.o: HAL/src/alt_environ.c HAL/inc/os/alt_syscall.h + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_environ.o b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_environ.o new file mode 100644 index 0000000..adb87a0 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_environ.o Binary files differ diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_errno.d b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_errno.d new file mode 100644 index 0000000..29ca544 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_errno.d @@ -0,0 +1,8 @@ +obj/HAL/src/alt_errno.o: HAL/src/alt_errno.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/alt_types.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/alt_types.h: diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_errno.o b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_errno.o new file mode 100644 index 0000000..2a46f43 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_errno.o Binary files differ diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_exception_entry.d b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_exception_entry.d new file mode 100644 index 0000000..540567e --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_exception_entry.d @@ -0,0 +1,6 @@ +obj/HAL/src/alt_exception_entry.o: HAL/src/alt_exception_entry.S system.h \ + linker.h + +system.h: + +linker.h: diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_exception_entry.o b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_exception_entry.o new file mode 100644 index 0000000..4da05d6 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_exception_entry.o Binary files differ diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_exception_muldiv.d b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_exception_muldiv.d new file mode 100644 index 0000000..63d66a7 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_exception_muldiv.d @@ -0,0 +1 @@ +obj/HAL/src/alt_exception_muldiv.o: HAL/src/alt_exception_muldiv.S diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_exception_muldiv.o b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_exception_muldiv.o new file mode 100644 index 0000000..34e2166 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_exception_muldiv.o Binary files differ diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_exception_trap.d b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_exception_trap.d new file mode 100644 index 0000000..6e18488 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_exception_trap.d @@ -0,0 +1 @@ +obj/HAL/src/alt_exception_trap.o: HAL/src/alt_exception_trap.S diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_exception_trap.o b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_exception_trap.o new file mode 100644 index 0000000..b5fda1f --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_exception_trap.o Binary files differ diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_execve.d b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_execve.d new file mode 100644 index 0000000..9cef7d2 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_execve.d @@ -0,0 +1,10 @@ +obj/HAL/src/alt_execve.o: HAL/src/alt_execve.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_execve.o b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_execve.o new file mode 100644 index 0000000..577120e --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_execve.o Binary files differ diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_exit.d b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_exit.d new file mode 100644 index 0000000..a779da8 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_exit.d @@ -0,0 +1,26 @@ +obj/HAL/src/alt_exit.o: HAL/src/alt_exit.c HAL/inc/sys/alt_irq.h \ + HAL/inc/nios2.h HAL/inc/alt_types.h system.h linker.h \ + HAL/inc/sys/alt_sim.h HAL/inc/os/alt_hooks.h HAL/inc/os/alt_syscall.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_log_printf.h system.h + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_sim.h: + +HAL/inc/os/alt_hooks.h: + +HAL/inc/os/alt_syscall.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_log_printf.h: + +system.h: diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_exit.o b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_exit.o new file mode 100644 index 0000000..a3d259d --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_exit.o Binary files differ diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_fcntl.d b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_fcntl.d new file mode 100644 index 0000000..527f242 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_fcntl.d @@ -0,0 +1,34 @@ +obj/HAL/src/alt_fcntl.o: HAL/src/alt_fcntl.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h \ + system.h linker.h HAL/inc/sys/alt_llist.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h HAL/inc/alt_types.h \ + HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_fcntl.o b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_fcntl.o new file mode 100644 index 0000000..e2f766e --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_fcntl.o Binary files differ diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_fd_lock.d b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_fd_lock.d new file mode 100644 index 0000000..93daeac --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_fd_lock.d @@ -0,0 +1,27 @@ +obj/HAL/src/alt_fd_lock.o: HAL/src/alt_fd_lock.c HAL/inc/priv/alt_file.h \ + HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_fd_lock.o b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_fd_lock.o new file mode 100644 index 0000000..da9b89e --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_fd_lock.o Binary files differ diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_fd_unlock.d b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_fd_unlock.d new file mode 100644 index 0000000..45a3207 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_fd_unlock.d @@ -0,0 +1,27 @@ +obj/HAL/src/alt_fd_unlock.o: HAL/src/alt_fd_unlock.c \ + HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h system.h linker.h \ + HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_fd_unlock.o b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_fd_unlock.o new file mode 100644 index 0000000..f31ae6c --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_fd_unlock.o Binary files differ diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_find_dev.d b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_find_dev.d new file mode 100644 index 0000000..98336f8 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_find_dev.d @@ -0,0 +1,31 @@ +obj/HAL/src/alt_find_dev.o: HAL/src/alt_find_dev.c HAL/inc/sys/alt_dev.h \ + system.h linker.h HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h \ + HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h HAL/inc/alt_types.h + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/alt_types.h: diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_find_dev.o b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_find_dev.o new file mode 100644 index 0000000..424d05a --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_find_dev.o Binary files differ diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_find_file.d b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_find_file.d new file mode 100644 index 0000000..d1150ca --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_find_file.d @@ -0,0 +1,32 @@ +obj/HAL/src/alt_find_file.o: HAL/src/alt_find_file.c \ + HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h HAL/inc/priv/alt_file.h \ + HAL/inc/sys/alt_dev.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h \ + HAL/inc/alt_types.h + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/alt_types.h: diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_find_file.o b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_find_file.o new file mode 100644 index 0000000..6e696b8 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_find_file.o Binary files differ diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_flash_dev.d b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_flash_dev.d new file mode 100644 index 0000000..8835e8f --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_flash_dev.d @@ -0,0 +1,34 @@ +obj/HAL/src/alt_flash_dev.o: HAL/src/alt_flash_dev.c \ + HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h HAL/inc/sys/alt_flash_dev.h \ + HAL/inc/sys/alt_flash_types.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h \ + system.h linker.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_flash_dev.h: + +HAL/inc/sys/alt_flash_types.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_flash_dev.o b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_flash_dev.o new file mode 100644 index 0000000..f3e48a7 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_flash_dev.o Binary files differ diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_fork.d b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_fork.d new file mode 100644 index 0000000..492be65 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_fork.d @@ -0,0 +1,10 @@ +obj/HAL/src/alt_fork.o: HAL/src/alt_fork.c HAL/inc/sys/alt_warning.h \ + HAL/inc/sys/alt_errno.h HAL/inc/alt_types.h HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_warning.h: + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_fork.o b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_fork.o new file mode 100644 index 0000000..fd43c71 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_fork.o Binary files differ diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_fs_reg.d b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_fs_reg.d new file mode 100644 index 0000000..d8f95ab --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_fs_reg.d @@ -0,0 +1,29 @@ +obj/HAL/src/alt_fs_reg.o: HAL/src/alt_fs_reg.c HAL/inc/sys/alt_dev.h \ + system.h linker.h HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h \ + HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_fs_reg.o b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_fs_reg.o new file mode 100644 index 0000000..6f1111c --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_fs_reg.o Binary files differ diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_fstat.d b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_fstat.d new file mode 100644 index 0000000..942fcbc --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_fstat.d @@ -0,0 +1,38 @@ +obj/HAL/src/alt_fstat.o: HAL/src/alt_fstat.c HAL/inc/sys/alt_dev.h \ + system.h linker.h HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h HAL/inc/sys/alt_errno.h \ + HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h HAL/inc/os/alt_syscall.h system.h + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/sys/alt_errno.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_syscall.h: + +system.h: diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_fstat.o b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_fstat.o new file mode 100644 index 0000000..c895163 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_fstat.o Binary files differ diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_get_fd.d b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_get_fd.d new file mode 100644 index 0000000..9a4daaa --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_get_fd.d @@ -0,0 +1,34 @@ +obj/HAL/src/alt_get_fd.o: HAL/src/alt_get_fd.c HAL/inc/sys/alt_dev.h \ + system.h linker.h HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h \ + HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h HAL/inc/alt_types.h \ + system.h + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/alt_types.h: + +system.h: diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_get_fd.o b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_get_fd.o new file mode 100644 index 0000000..546c0d3 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_get_fd.o Binary files differ diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_getchar.d b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_getchar.d new file mode 100644 index 0000000..bcccdf7 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_getchar.d @@ -0,0 +1,34 @@ +obj/HAL/src/alt_getchar.o: HAL/src/alt_getchar.c system.h linker.h \ + HAL/inc/sys/alt_driver.h HAL/inc/sys/alt_stdio.h \ + HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h system.h \ + HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h + +system.h: + +linker.h: + +HAL/inc/sys/alt_driver.h: + +HAL/inc/sys/alt_stdio.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_getchar.o b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_getchar.o new file mode 100644 index 0000000..5260623 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_getchar.o Binary files differ diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_getpid.d b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_getpid.d new file mode 100644 index 0000000..d9499b9 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_getpid.d @@ -0,0 +1,3 @@ +obj/HAL/src/alt_getpid.o: HAL/src/alt_getpid.c HAL/inc/os/alt_syscall.h + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_getpid.o b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_getpid.o new file mode 100644 index 0000000..e58bdef --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_getpid.o Binary files differ diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_gettod.d b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_gettod.d new file mode 100644 index 0000000..cf3cf34 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_gettod.d @@ -0,0 +1,17 @@ +obj/HAL/src/alt_gettod.o: HAL/src/alt_gettod.c HAL/inc/sys/alt_alarm.h \ + HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h HAL/inc/priv/alt_alarm.h \ + HAL/inc/alt_types.h HAL/inc/alt_types.h HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/alt_types.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_gettod.o b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_gettod.o new file mode 100644 index 0000000..d2747e5 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_gettod.o Binary files differ diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_gmon.d b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_gmon.d new file mode 100644 index 0000000..e9469ab --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_gmon.d @@ -0,0 +1,24 @@ +obj/HAL/src/alt_gmon.o: HAL/src/alt_gmon.c HAL/inc/priv/nios2_gmon_data.h \ + HAL/inc/sys/alt_irq.h HAL/inc/nios2.h HAL/inc/alt_types.h system.h \ + linker.h HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_alarm.h HAL/inc/alt_types.h + +HAL/inc/priv/nios2_gmon_data.h: + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/alt_types.h: diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_gmon.o b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_gmon.o new file mode 100644 index 0000000..e6d6f45 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_gmon.o Binary files differ diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_icache_flush.d b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_icache_flush.d new file mode 100644 index 0000000..2e4ddd1 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_icache_flush.d @@ -0,0 +1,15 @@ +obj/HAL/src/alt_icache_flush.o: HAL/src/alt_icache_flush.c \ + HAL/inc/nios2.h system.h linker.h HAL/inc/alt_types.h \ + HAL/inc/sys/alt_cache.h HAL/inc/alt_types.h + +HAL/inc/nios2.h: + +system.h: + +linker.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_cache.h: + +HAL/inc/alt_types.h: diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_icache_flush.o b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_icache_flush.o new file mode 100644 index 0000000..3a5082a --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_icache_flush.o Binary files differ diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_icache_flush_all.d b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_icache_flush_all.d new file mode 100644 index 0000000..47cfbf3 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_icache_flush_all.d @@ -0,0 +1,15 @@ +obj/HAL/src/alt_icache_flush_all.o: HAL/src/alt_icache_flush_all.c \ + HAL/inc/nios2.h system.h linker.h HAL/inc/alt_types.h \ + HAL/inc/sys/alt_cache.h HAL/inc/alt_types.h + +HAL/inc/nios2.h: + +system.h: + +linker.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_cache.h: + +HAL/inc/alt_types.h: diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_icache_flush_all.o b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_icache_flush_all.o new file mode 100644 index 0000000..9a2a3f5 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_icache_flush_all.o Binary files differ diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_iic.d b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_iic.d new file mode 100644 index 0000000..a709e0c --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_iic.d @@ -0,0 +1,29 @@ +obj/HAL/src/alt_iic.o: HAL/src/alt_iic.c system.h linker.h \ + HAL/inc/sys/alt_irq.h HAL/inc/nios2.h HAL/inc/alt_types.h system.h \ + HAL/inc/priv/alt_iic_isr_register.h HAL/inc/alt_types.h \ + HAL/inc/sys/alt_irq.h HAL/inc/priv/alt_legacy_irq.h system.h \ + HAL/inc/nios2.h + +system.h: + +linker.h: + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +HAL/inc/priv/alt_iic_isr_register.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_irq.h: + +HAL/inc/priv/alt_legacy_irq.h: + +system.h: + +HAL/inc/nios2.h: diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_iic.o b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_iic.o new file mode 100644 index 0000000..e4731b0 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_iic.o Binary files differ diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_iic_isr_register.d b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_iic_isr_register.d new file mode 100644 index 0000000..d0470ae --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_iic_isr_register.d @@ -0,0 +1,30 @@ +obj/HAL/src/alt_iic_isr_register.o: HAL/src/alt_iic_isr_register.c \ + system.h linker.h HAL/inc/alt_types.h HAL/inc/sys/alt_irq.h \ + HAL/inc/nios2.h HAL/inc/alt_types.h system.h \ + HAL/inc/priv/alt_iic_isr_register.h HAL/inc/alt_types.h \ + HAL/inc/sys/alt_irq.h HAL/inc/sys/alt_irq_entry.h \ + HAL/inc/priv/alt_irq_table.h + +system.h: + +linker.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +HAL/inc/priv/alt_iic_isr_register.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_irq.h: + +HAL/inc/sys/alt_irq_entry.h: + +HAL/inc/priv/alt_irq_table.h: diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_iic_isr_register.o b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_iic_isr_register.o new file mode 100644 index 0000000..5888c63 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_iic_isr_register.o Binary files differ diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_instruction_exception_entry.d b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_instruction_exception_entry.d new file mode 100644 index 0000000..6d0705f --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_instruction_exception_entry.d @@ -0,0 +1,18 @@ +obj/HAL/src/alt_instruction_exception_entry.o: \ + HAL/src/alt_instruction_exception_entry.c HAL/inc/sys/alt_exceptions.h \ + HAL/inc/alt_types.h system.h linker.h HAL/inc/nios2.h \ + HAL/inc/alt_types.h system.h + +HAL/inc/sys/alt_exceptions.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_instruction_exception_entry.o b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_instruction_exception_entry.o new file mode 100644 index 0000000..76c0f30 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_instruction_exception_entry.o Binary files differ diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_instruction_exception_register.d b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_instruction_exception_register.d new file mode 100644 index 0000000..d4fac04 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_instruction_exception_register.d @@ -0,0 +1,16 @@ +obj/HAL/src/alt_instruction_exception_register.o: \ + HAL/src/alt_instruction_exception_register.c \ + HAL/inc/sys/alt_exceptions.h HAL/inc/alt_types.h system.h linker.h \ + HAL/inc/alt_types.h system.h + +HAL/inc/sys/alt_exceptions.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: + +HAL/inc/alt_types.h: + +system.h: diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_instruction_exception_register.o b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_instruction_exception_register.o new file mode 100644 index 0000000..4a11aab --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_instruction_exception_register.o Binary files differ diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_io_redirect.d b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_io_redirect.d new file mode 100644 index 0000000..8228365 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_io_redirect.d @@ -0,0 +1,29 @@ +obj/HAL/src/alt_io_redirect.o: HAL/src/alt_io_redirect.c \ + HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h HAL/inc/priv/alt_file.h \ + HAL/inc/sys/alt_dev.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_io_redirect.o b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_io_redirect.o new file mode 100644 index 0000000..9f1861c --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_io_redirect.o Binary files differ diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_ioctl.d b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_ioctl.d new file mode 100644 index 0000000..d70ad97 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_ioctl.d @@ -0,0 +1,41 @@ +obj/HAL/src/alt_ioctl.o: HAL/src/alt_ioctl.c HAL/inc/sys/ioctl.h \ + HAL/inc/sys/alt_errno.h HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h \ + HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h system.h linker.h \ + HAL/inc/sys/alt_llist.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h HAL/inc/os/alt_syscall.h system.h \ + HAL/inc/sys/alt_driver.h + +HAL/inc/sys/ioctl.h: + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_syscall.h: + +system.h: + +HAL/inc/sys/alt_driver.h: diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_ioctl.o b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_ioctl.o new file mode 100644 index 0000000..b679799 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_ioctl.o Binary files differ diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_irq_entry.d b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_irq_entry.d new file mode 100644 index 0000000..9ec3751 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_irq_entry.d @@ -0,0 +1,5 @@ +obj/HAL/src/alt_irq_entry.o: HAL/src/alt_irq_entry.S system.h linker.h + +system.h: + +linker.h: diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_irq_entry.o b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_irq_entry.o new file mode 100644 index 0000000..f81ea10 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_irq_entry.o Binary files differ diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_irq_handler.d b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_irq_handler.d new file mode 100644 index 0000000..6fb668f --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_irq_handler.d @@ -0,0 +1,19 @@ +obj/HAL/src/alt_irq_handler.o: HAL/src/alt_irq_handler.c system.h \ + linker.h HAL/inc/sys/alt_irq.h HAL/inc/nios2.h HAL/inc/alt_types.h \ + system.h HAL/inc/os/alt_hooks.h HAL/inc/alt_types.h + +system.h: + +linker.h: + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +HAL/inc/os/alt_hooks.h: + +HAL/inc/alt_types.h: diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_irq_handler.o b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_irq_handler.o new file mode 100644 index 0000000..e8d593e --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_irq_handler.o Binary files differ diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_irq_register.d b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_irq_register.d new file mode 100644 index 0000000..3df2f8a --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_irq_register.d @@ -0,0 +1,36 @@ +obj/HAL/src/alt_irq_register.o: HAL/src/alt_irq_register.c system.h \ + linker.h HAL/inc/sys/alt_irq.h HAL/inc/nios2.h HAL/inc/alt_types.h \ + system.h HAL/inc/priv/alt_legacy_irq.h system.h HAL/inc/nios2.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_irq.h HAL/inc/os/alt_hooks.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_irq_entry.h \ + HAL/inc/priv/alt_irq_table.h + +system.h: + +linker.h: + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +HAL/inc/priv/alt_legacy_irq.h: + +system.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_irq.h: + +HAL/inc/os/alt_hooks.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_irq_entry.h: + +HAL/inc/priv/alt_irq_table.h: diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_irq_register.o b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_irq_register.o new file mode 100644 index 0000000..4254ca8 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_irq_register.o Binary files differ diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_irq_vars.d b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_irq_vars.d new file mode 100644 index 0000000..f316558 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_irq_vars.d @@ -0,0 +1,8 @@ +obj/HAL/src/alt_irq_vars.o: HAL/src/alt_irq_vars.c HAL/inc/alt_types.h \ + system.h linker.h + +HAL/inc/alt_types.h: + +system.h: + +linker.h: diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_irq_vars.o b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_irq_vars.o new file mode 100644 index 0000000..ee1382e --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_irq_vars.o Binary files differ diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_isatty.d b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_isatty.d new file mode 100644 index 0000000..f8b1f07 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_isatty.d @@ -0,0 +1,38 @@ +obj/HAL/src/alt_isatty.o: HAL/src/alt_isatty.c HAL/inc/sys/alt_dev.h \ + system.h linker.h HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_errno.h HAL/inc/sys/alt_warning.h \ + HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h HAL/inc/os/alt_syscall.h system.h + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_errno.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_syscall.h: + +system.h: diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_isatty.o b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_isatty.o new file mode 100644 index 0000000..50348d3 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_isatty.o Binary files differ diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_kill.d b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_kill.d new file mode 100644 index 0000000..0c14ae8 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_kill.d @@ -0,0 +1,8 @@ +obj/HAL/src/alt_kill.o: HAL/src/alt_kill.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_kill.o b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_kill.o new file mode 100644 index 0000000..c91d08e --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_kill.o Binary files differ diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_link.d b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_link.d new file mode 100644 index 0000000..dc844c6 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_link.d @@ -0,0 +1,10 @@ +obj/HAL/src/alt_link.o: HAL/src/alt_link.c HAL/inc/sys/alt_warning.h \ + HAL/inc/sys/alt_errno.h HAL/inc/alt_types.h HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_warning.h: + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_link.o b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_link.o new file mode 100644 index 0000000..1863f89 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_link.o Binary files differ diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_load.d b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_load.d new file mode 100644 index 0000000..d496ab8 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_load.d @@ -0,0 +1,8 @@ +obj/HAL/src/alt_load.o: HAL/src/alt_load.c HAL/inc/sys/alt_load.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_cache.h + +HAL/inc/sys/alt_load.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_cache.h: diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_load.o b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_load.o new file mode 100644 index 0000000..0633ea6 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_load.o Binary files differ diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_log_macro.d b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_log_macro.d new file mode 100644 index 0000000..9768c1f --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_log_macro.d @@ -0,0 +1 @@ +obj/HAL/src/alt_log_macro.o: HAL/src/alt_log_macro.S diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_log_macro.o b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_log_macro.o new file mode 100644 index 0000000..489e2cc --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_log_macro.o Binary files differ diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_log_printf.d b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_log_printf.d new file mode 100644 index 0000000..251ff6d --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_log_printf.d @@ -0,0 +1 @@ +obj/HAL/src/alt_log_printf.o: HAL/src/alt_log_printf.c diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_log_printf.o b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_log_printf.o new file mode 100644 index 0000000..a03c33d --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_log_printf.o Binary files differ diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_lseek.d b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_lseek.d new file mode 100644 index 0000000..25ed783 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_lseek.d @@ -0,0 +1,34 @@ +obj/HAL/src/alt_lseek.o: HAL/src/alt_lseek.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h HAL/inc/priv/alt_file.h \ + HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h \ + HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_lseek.o b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_lseek.o new file mode 100644 index 0000000..2763b47 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_lseek.o Binary files differ diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_main.d b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_main.d new file mode 100644 index 0000000..afdfda0 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_main.d @@ -0,0 +1,47 @@ +obj/HAL/src/alt_main.o: HAL/src/alt_main.c HAL/inc/sys/alt_dev.h system.h \ + linker.h HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_sys_init.h HAL/inc/sys/alt_irq.h \ + HAL/inc/nios2.h HAL/inc/os/alt_hooks.h HAL/inc/priv/alt_file.h \ + HAL/inc/sys/alt_dev.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h \ + HAL/inc/alt_types.h system.h HAL/inc/sys/alt_log_printf.h system.h + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_sys_init.h: + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/os/alt_hooks.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/alt_types.h: + +system.h: + +HAL/inc/sys/alt_log_printf.h: + +system.h: diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_main.o b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_main.o new file mode 100644 index 0000000..a99d0ae --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_main.o Binary files differ diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_malloc_lock.d b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_malloc_lock.d new file mode 100644 index 0000000..4ed35c2 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_malloc_lock.d @@ -0,0 +1 @@ +obj/HAL/src/alt_malloc_lock.o: HAL/src/alt_malloc_lock.c diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_malloc_lock.o b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_malloc_lock.o new file mode 100644 index 0000000..ba326fd --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_malloc_lock.o Binary files differ diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_mcount.d b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_mcount.d new file mode 100644 index 0000000..1203efc --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_mcount.d @@ -0,0 +1 @@ +obj/HAL/src/alt_mcount.o: HAL/src/alt_mcount.S diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_mcount.o b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_mcount.o new file mode 100644 index 0000000..2732b82 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_mcount.o Binary files differ diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_open.d b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_open.d new file mode 100644 index 0000000..a2aacd9 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_open.d @@ -0,0 +1,36 @@ +obj/HAL/src/alt_open.o: HAL/src/alt_open.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h HAL/inc/priv/alt_file.h \ + HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h \ + HAL/inc/alt_types.h HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_open.o b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_open.o new file mode 100644 index 0000000..4de29e1 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_open.o Binary files differ diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_printf.d b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_printf.d new file mode 100644 index 0000000..3ce68a4 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_printf.d @@ -0,0 +1,3 @@ +obj/HAL/src/alt_printf.o: HAL/src/alt_printf.c HAL/inc/sys/alt_stdio.h + +HAL/inc/sys/alt_stdio.h: diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_printf.o b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_printf.o new file mode 100644 index 0000000..b603a08 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_printf.o Binary files differ diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_putchar.d b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_putchar.d new file mode 100644 index 0000000..9a0dde3 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_putchar.d @@ -0,0 +1,10 @@ +obj/HAL/src/alt_putchar.o: HAL/src/alt_putchar.c system.h linker.h \ + HAL/inc/sys/alt_driver.h HAL/inc/sys/alt_stdio.h + +system.h: + +linker.h: + +HAL/inc/sys/alt_driver.h: + +HAL/inc/sys/alt_stdio.h: diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_putchar.o b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_putchar.o new file mode 100644 index 0000000..9a3af5e --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_putchar.o Binary files differ diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_putstr.d b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_putstr.d new file mode 100644 index 0000000..3cf528a --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_putstr.d @@ -0,0 +1,10 @@ +obj/HAL/src/alt_putstr.o: HAL/src/alt_putstr.c system.h linker.h \ + HAL/inc/sys/alt_driver.h HAL/inc/sys/alt_stdio.h + +system.h: + +linker.h: + +HAL/inc/sys/alt_driver.h: + +HAL/inc/sys/alt_stdio.h: diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_putstr.o b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_putstr.o new file mode 100644 index 0000000..af9c101 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_putstr.o Binary files differ diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_read.d b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_read.d new file mode 100644 index 0000000..2bb0d95 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_read.d @@ -0,0 +1,38 @@ +obj/HAL/src/alt_read.o: HAL/src/alt_read.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h HAL/inc/priv/alt_file.h \ + HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h \ + HAL/inc/os/alt_syscall.h system.h HAL/inc/sys/alt_driver.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_syscall.h: + +system.h: + +HAL/inc/sys/alt_driver.h: diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_read.o b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_read.o new file mode 100644 index 0000000..9354e2d --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_read.o Binary files differ diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_release_fd.d b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_release_fd.d new file mode 100644 index 0000000..0e3acb5 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_release_fd.d @@ -0,0 +1,29 @@ +obj/HAL/src/alt_release_fd.o: HAL/src/alt_release_fd.c \ + HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h HAL/inc/priv/alt_file.h \ + HAL/inc/sys/alt_dev.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_release_fd.o b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_release_fd.o new file mode 100644 index 0000000..f0b19e1 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_release_fd.o Binary files differ diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_remap_cached.d b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_remap_cached.d new file mode 100644 index 0000000..b5fb151 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_remap_cached.d @@ -0,0 +1,10 @@ +obj/HAL/src/alt_remap_cached.o: HAL/src/alt_remap_cached.c \ + HAL/inc/sys/alt_cache.h HAL/inc/alt_types.h system.h linker.h + +HAL/inc/sys/alt_cache.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_remap_cached.o b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_remap_cached.o new file mode 100644 index 0000000..530a0de --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_remap_cached.o Binary files differ diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_remap_uncached.d b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_remap_uncached.d new file mode 100644 index 0000000..0423405 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_remap_uncached.d @@ -0,0 +1,10 @@ +obj/HAL/src/alt_remap_uncached.o: HAL/src/alt_remap_uncached.c \ + HAL/inc/sys/alt_cache.h HAL/inc/alt_types.h system.h linker.h + +HAL/inc/sys/alt_cache.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_remap_uncached.o b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_remap_uncached.o new file mode 100644 index 0000000..489404e --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_remap_uncached.o Binary files differ diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_rename.d b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_rename.d new file mode 100644 index 0000000..b7af4b2 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_rename.d @@ -0,0 +1,10 @@ +obj/HAL/src/alt_rename.o: HAL/src/alt_rename.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_rename.o b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_rename.o new file mode 100644 index 0000000..8e87d65 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_rename.o Binary files differ diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_sbrk.d b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_sbrk.d new file mode 100644 index 0000000..a0771ae --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_sbrk.d @@ -0,0 +1,19 @@ +obj/HAL/src/alt_sbrk.o: HAL/src/alt_sbrk.c HAL/inc/os/alt_syscall.h \ + HAL/inc/sys/alt_irq.h HAL/inc/nios2.h HAL/inc/alt_types.h system.h \ + linker.h HAL/inc/sys/alt_stack.h system.h + +HAL/inc/os/alt_syscall.h: + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_stack.h: + +system.h: diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_sbrk.o b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_sbrk.o new file mode 100644 index 0000000..b155224 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_sbrk.o Binary files differ diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_settod.d b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_settod.d new file mode 100644 index 0000000..56718d5 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_settod.d @@ -0,0 +1,17 @@ +obj/HAL/src/alt_settod.o: HAL/src/alt_settod.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_alarm.h HAL/inc/alt_types.h HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_settod.o b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_settod.o new file mode 100644 index 0000000..5b1322b --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_settod.o Binary files differ diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_software_exception.d b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_software_exception.d new file mode 100644 index 0000000..fab4023 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_software_exception.d @@ -0,0 +1,6 @@ +obj/HAL/src/alt_software_exception.o: HAL/src/alt_software_exception.S \ + system.h linker.h + +system.h: + +linker.h: diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_software_exception.o b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_software_exception.o new file mode 100644 index 0000000..f9e01c2 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_software_exception.o Binary files differ diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_stat.d b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_stat.d new file mode 100644 index 0000000..8a63c27 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_stat.d @@ -0,0 +1,3 @@ +obj/HAL/src/alt_stat.o: HAL/src/alt_stat.c HAL/inc/os/alt_syscall.h + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_stat.o b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_stat.o new file mode 100644 index 0000000..59fc938 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_stat.o Binary files differ diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_tick.d b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_tick.d new file mode 100644 index 0000000..ddbb281 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_tick.d @@ -0,0 +1,27 @@ +obj/HAL/src/alt_tick.o: HAL/src/alt_tick.c HAL/inc/sys/alt_irq.h \ + HAL/inc/nios2.h HAL/inc/alt_types.h system.h linker.h \ + HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_alarm.h HAL/inc/alt_types.h HAL/inc/os/alt_hooks.h \ + HAL/inc/alt_types.h + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_hooks.h: + +HAL/inc/alt_types.h: diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_tick.o b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_tick.o new file mode 100644 index 0000000..a61ba50 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_tick.o Binary files differ diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_times.d b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_times.d new file mode 100644 index 0000000..4bad83d --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_times.d @@ -0,0 +1,17 @@ +obj/HAL/src/alt_times.o: HAL/src/alt_times.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_alarm.h HAL/inc/alt_types.h HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_times.o b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_times.o new file mode 100644 index 0000000..85ad792 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_times.o Binary files differ diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_uncached_free.d b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_uncached_free.d new file mode 100644 index 0000000..d74ef4b --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_uncached_free.d @@ -0,0 +1,10 @@ +obj/HAL/src/alt_uncached_free.o: HAL/src/alt_uncached_free.c \ + HAL/inc/sys/alt_cache.h HAL/inc/alt_types.h system.h linker.h + +HAL/inc/sys/alt_cache.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_uncached_free.o b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_uncached_free.o new file mode 100644 index 0000000..eeeef6a --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_uncached_free.o Binary files differ diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_uncached_malloc.d b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_uncached_malloc.d new file mode 100644 index 0000000..16799fb --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_uncached_malloc.d @@ -0,0 +1,10 @@ +obj/HAL/src/alt_uncached_malloc.o: HAL/src/alt_uncached_malloc.c \ + HAL/inc/sys/alt_cache.h HAL/inc/alt_types.h system.h linker.h + +HAL/inc/sys/alt_cache.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_uncached_malloc.o b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_uncached_malloc.o new file mode 100644 index 0000000..9603134 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_uncached_malloc.o Binary files differ diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_unlink.d b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_unlink.d new file mode 100644 index 0000000..0205f86 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_unlink.d @@ -0,0 +1,10 @@ +obj/HAL/src/alt_unlink.o: HAL/src/alt_unlink.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_unlink.o b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_unlink.o new file mode 100644 index 0000000..5a20226 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_unlink.o Binary files differ diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_usleep.d b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_usleep.d new file mode 100644 index 0000000..b5eca45 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_usleep.d @@ -0,0 +1,6 @@ +obj/HAL/src/alt_usleep.o: HAL/src/alt_usleep.c \ + HAL/inc/priv/alt_busy_sleep.h HAL/inc/os/alt_syscall.h + +HAL/inc/priv/alt_busy_sleep.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_usleep.o b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_usleep.o new file mode 100644 index 0000000..8246c24 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_usleep.o Binary files differ diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_wait.d b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_wait.d new file mode 100644 index 0000000..f47f5df --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_wait.d @@ -0,0 +1,8 @@ +obj/HAL/src/alt_wait.o: HAL/src/alt_wait.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_wait.o b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_wait.o new file mode 100644 index 0000000..5c04683 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_wait.o Binary files differ diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_write.d b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_write.d new file mode 100644 index 0000000..2b54a68 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_write.d @@ -0,0 +1,41 @@ +obj/HAL/src/alt_write.o: HAL/src/alt_write.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h HAL/inc/priv/alt_file.h \ + HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h \ + HAL/inc/os/alt_syscall.h HAL/inc/sys/alt_log_printf.h system.h \ + HAL/inc/sys/alt_driver.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_syscall.h: + +HAL/inc/sys/alt_log_printf.h: + +system.h: + +HAL/inc/sys/alt_driver.h: diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_write.o b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_write.o new file mode 100644 index 0000000..c6aee9e --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/alt_write.o Binary files differ diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/altera_nios2_qsys_irq.d b/software/qsys_tutorial_key3_bsp/obj/HAL/src/altera_nios2_qsys_irq.d new file mode 100644 index 0000000..47bdd9c --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/altera_nios2_qsys_irq.d @@ -0,0 +1,15 @@ +obj/HAL/src/altera_nios2_qsys_irq.o: HAL/src/altera_nios2_qsys_irq.c \ + HAL/inc/sys/alt_irq.h HAL/inc/nios2.h HAL/inc/alt_types.h system.h \ + linker.h HAL/inc/altera_nios2_qsys_irq.h + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: + +HAL/inc/altera_nios2_qsys_irq.h: diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/altera_nios2_qsys_irq.o b/software/qsys_tutorial_key3_bsp/obj/HAL/src/altera_nios2_qsys_irq.o new file mode 100644 index 0000000..b956c07 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/altera_nios2_qsys_irq.o Binary files differ diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/crt0.d b/software/qsys_tutorial_key3_bsp/obj/HAL/src/crt0.d new file mode 100644 index 0000000..3af0bb0 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/crt0.d @@ -0,0 +1,12 @@ +obj/HAL/src/crt0.o: HAL/src/crt0.S system.h linker.h HAL/inc/nios2.h \ + HAL/inc/sys/alt_log_printf.h system.h + +system.h: + +linker.h: + +HAL/inc/nios2.h: + +HAL/inc/sys/alt_log_printf.h: + +system.h: diff --git a/software/qsys_tutorial_key3_bsp/obj/HAL/src/crt0.o b/software/qsys_tutorial_key3_bsp/obj/HAL/src/crt0.o new file mode 100644 index 0000000..6c8f431 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/HAL/src/crt0.o Binary files differ diff --git a/software/qsys_tutorial_key3_bsp/obj/alt_sys_init.d b/software/qsys_tutorial_key3_bsp/obj/alt_sys_init.d new file mode 100644 index 0000000..2087a7a --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/alt_sys_init.d @@ -0,0 +1,54 @@ +obj/alt_sys_init.o: alt_sys_init.c system.h linker.h \ + HAL/inc/sys/alt_irq.h HAL/inc/nios2.h HAL/inc/alt_types.h system.h \ + HAL/inc/sys/alt_sys_init.h HAL/inc/altera_nios2_qsys_irq.h \ + drivers/inc/altera_avalon_jtag_uart.h HAL/inc/sys/alt_alarm.h \ + HAL/inc/sys/alt_llist.h HAL/inc/priv/alt_alarm.h HAL/inc/alt_types.h \ + HAL/inc/sys/alt_warning.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h HAL/inc/os/alt_flag.h \ + drivers/inc/altera_avalon_jtag_uart_fd.h HAL/inc/sys/alt_dev.h \ + HAL/inc/sys/alt_llist.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h + +system.h: + +linker.h: + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +HAL/inc/sys/alt_sys_init.h: + +HAL/inc/altera_nios2_qsys_irq.h: + +drivers/inc/altera_avalon_jtag_uart.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_flag.h: + +drivers/inc/altera_avalon_jtag_uart_fd.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: diff --git a/software/qsys_tutorial_key3_bsp/obj/alt_sys_init.o b/software/qsys_tutorial_key3_bsp/obj/alt_sys_init.o new file mode 100644 index 0000000..23031b2 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/alt_sys_init.o Binary files differ diff --git a/software/qsys_tutorial_key3_bsp/obj/drivers/src/altera_avalon_jtag_uart_fd.d b/software/qsys_tutorial_key3_bsp/obj/drivers/src/altera_avalon_jtag_uart_fd.d new file mode 100644 index 0000000..b152697 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/drivers/src/altera_avalon_jtag_uart_fd.d @@ -0,0 +1,48 @@ +obj/drivers/src/altera_avalon_jtag_uart_fd.o: \ + drivers/src/altera_avalon_jtag_uart_fd.c HAL/inc/alt_types.h \ + HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ + drivers/inc/altera_avalon_jtag_uart.h HAL/inc/sys/alt_alarm.h \ + HAL/inc/sys/alt_llist.h HAL/inc/priv/alt_alarm.h \ + HAL/inc/sys/alt_warning.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h HAL/inc/os/alt_flag.h \ + drivers/inc/altera_avalon_jtag_uart_fd.h HAL/inc/sys/alt_dev.h + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +drivers/inc/altera_avalon_jtag_uart.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_flag.h: + +drivers/inc/altera_avalon_jtag_uart_fd.h: + +HAL/inc/sys/alt_dev.h: diff --git a/software/qsys_tutorial_key3_bsp/obj/drivers/src/altera_avalon_jtag_uart_fd.o b/software/qsys_tutorial_key3_bsp/obj/drivers/src/altera_avalon_jtag_uart_fd.o new file mode 100644 index 0000000..ba35d74 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/drivers/src/altera_avalon_jtag_uart_fd.o Binary files differ diff --git a/software/qsys_tutorial_key3_bsp/obj/drivers/src/altera_avalon_jtag_uart_init.d b/software/qsys_tutorial_key3_bsp/obj/drivers/src/altera_avalon_jtag_uart_init.d new file mode 100644 index 0000000..f9460a1 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/drivers/src/altera_avalon_jtag_uart_init.d @@ -0,0 +1,66 @@ +obj/drivers/src/altera_avalon_jtag_uart_init.o: \ + drivers/src/altera_avalon_jtag_uart_init.c HAL/inc/sys/alt_irq.h \ + HAL/inc/nios2.h HAL/inc/alt_types.h system.h linker.h \ + HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_alarm.h HAL/inc/alt_types.h HAL/inc/sys/ioctl.h \ + HAL/inc/alt_types.h drivers/inc/altera_avalon_jtag_uart_regs.h \ + HAL/inc/io.h HAL/inc/alt_types.h drivers/inc/altera_avalon_jtag_uart.h \ + HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_warning.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h HAL/inc/os/alt_flag.h \ + drivers/inc/altera_avalon_jtag_uart_fd.h HAL/inc/sys/alt_dev.h \ + HAL/inc/sys/alt_llist.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h HAL/inc/sys/alt_log_printf.h system.h + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/ioctl.h: + +HAL/inc/alt_types.h: + +drivers/inc/altera_avalon_jtag_uart_regs.h: + +HAL/inc/io.h: + +HAL/inc/alt_types.h: + +drivers/inc/altera_avalon_jtag_uart.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_flag.h: + +drivers/inc/altera_avalon_jtag_uart_fd.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/sys/alt_log_printf.h: + +system.h: diff --git a/software/qsys_tutorial_key3_bsp/obj/drivers/src/altera_avalon_jtag_uart_init.o b/software/qsys_tutorial_key3_bsp/obj/drivers/src/altera_avalon_jtag_uart_init.o new file mode 100644 index 0000000..89ba594 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/drivers/src/altera_avalon_jtag_uart_init.o Binary files differ diff --git a/software/qsys_tutorial_key3_bsp/obj/drivers/src/altera_avalon_jtag_uart_ioctl.d b/software/qsys_tutorial_key3_bsp/obj/drivers/src/altera_avalon_jtag_uart_ioctl.d new file mode 100644 index 0000000..d75a559 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/drivers/src/altera_avalon_jtag_uart_ioctl.d @@ -0,0 +1,58 @@ +obj/drivers/src/altera_avalon_jtag_uart_ioctl.o: \ + drivers/src/altera_avalon_jtag_uart_ioctl.c HAL/inc/sys/ioctl.h \ + HAL/inc/alt_types.h drivers/inc/altera_avalon_jtag_uart_regs.h \ + HAL/inc/io.h HAL/inc/alt_types.h drivers/inc/altera_avalon_jtag_uart.h \ + HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ + HAL/inc/priv/alt_alarm.h HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h \ + HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h HAL/inc/os/alt_flag.h \ + drivers/inc/altera_avalon_jtag_uart_fd.h HAL/inc/sys/alt_dev.h system.h \ + linker.h HAL/inc/sys/alt_llist.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h HAL/inc/sys/alt_log_printf.h system.h + +HAL/inc/sys/ioctl.h: + +HAL/inc/alt_types.h: + +drivers/inc/altera_avalon_jtag_uart_regs.h: + +HAL/inc/io.h: + +HAL/inc/alt_types.h: + +drivers/inc/altera_avalon_jtag_uart.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_flag.h: + +drivers/inc/altera_avalon_jtag_uart_fd.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/sys/alt_log_printf.h: + +system.h: diff --git a/software/qsys_tutorial_key3_bsp/obj/drivers/src/altera_avalon_jtag_uart_ioctl.o b/software/qsys_tutorial_key3_bsp/obj/drivers/src/altera_avalon_jtag_uart_ioctl.o new file mode 100644 index 0000000..ba19ad0 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/drivers/src/altera_avalon_jtag_uart_ioctl.o Binary files differ diff --git a/software/qsys_tutorial_key3_bsp/obj/drivers/src/altera_avalon_jtag_uart_read.d b/software/qsys_tutorial_key3_bsp/obj/drivers/src/altera_avalon_jtag_uart_read.d new file mode 100644 index 0000000..9a4846a --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/drivers/src/altera_avalon_jtag_uart_read.d @@ -0,0 +1,66 @@ +obj/drivers/src/altera_avalon_jtag_uart_read.o: \ + drivers/src/altera_avalon_jtag_uart_read.c HAL/inc/sys/alt_irq.h \ + HAL/inc/nios2.h HAL/inc/alt_types.h system.h linker.h \ + HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_alarm.h HAL/inc/alt_types.h HAL/inc/sys/ioctl.h \ + HAL/inc/alt_types.h drivers/inc/altera_avalon_jtag_uart_regs.h \ + HAL/inc/io.h HAL/inc/alt_types.h drivers/inc/altera_avalon_jtag_uart.h \ + HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_warning.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h HAL/inc/os/alt_flag.h \ + drivers/inc/altera_avalon_jtag_uart_fd.h HAL/inc/sys/alt_dev.h \ + HAL/inc/sys/alt_llist.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h HAL/inc/sys/alt_log_printf.h system.h + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/ioctl.h: + +HAL/inc/alt_types.h: + +drivers/inc/altera_avalon_jtag_uart_regs.h: + +HAL/inc/io.h: + +HAL/inc/alt_types.h: + +drivers/inc/altera_avalon_jtag_uart.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_flag.h: + +drivers/inc/altera_avalon_jtag_uart_fd.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/sys/alt_log_printf.h: + +system.h: diff --git a/software/qsys_tutorial_key3_bsp/obj/drivers/src/altera_avalon_jtag_uart_read.o b/software/qsys_tutorial_key3_bsp/obj/drivers/src/altera_avalon_jtag_uart_read.o new file mode 100644 index 0000000..f93ff18 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/drivers/src/altera_avalon_jtag_uart_read.o Binary files differ diff --git a/software/qsys_tutorial_key3_bsp/obj/drivers/src/altera_avalon_jtag_uart_write.d b/software/qsys_tutorial_key3_bsp/obj/drivers/src/altera_avalon_jtag_uart_write.d new file mode 100644 index 0000000..5518b7f --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/drivers/src/altera_avalon_jtag_uart_write.d @@ -0,0 +1,66 @@ +obj/drivers/src/altera_avalon_jtag_uart_write.o: \ + drivers/src/altera_avalon_jtag_uart_write.c HAL/inc/sys/alt_irq.h \ + HAL/inc/nios2.h HAL/inc/alt_types.h system.h linker.h \ + HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_alarm.h HAL/inc/alt_types.h HAL/inc/sys/ioctl.h \ + HAL/inc/alt_types.h drivers/inc/altera_avalon_jtag_uart_regs.h \ + HAL/inc/io.h HAL/inc/alt_types.h drivers/inc/altera_avalon_jtag_uart.h \ + HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_warning.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h HAL/inc/os/alt_flag.h \ + drivers/inc/altera_avalon_jtag_uart_fd.h HAL/inc/sys/alt_dev.h \ + HAL/inc/sys/alt_llist.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h HAL/inc/sys/alt_log_printf.h system.h + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/ioctl.h: + +HAL/inc/alt_types.h: + +drivers/inc/altera_avalon_jtag_uart_regs.h: + +HAL/inc/io.h: + +HAL/inc/alt_types.h: + +drivers/inc/altera_avalon_jtag_uart.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_flag.h: + +drivers/inc/altera_avalon_jtag_uart_fd.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/sys/alt_log_printf.h: + +system.h: diff --git a/software/qsys_tutorial_key3_bsp/obj/drivers/src/altera_avalon_jtag_uart_write.o b/software/qsys_tutorial_key3_bsp/obj/drivers/src/altera_avalon_jtag_uart_write.o new file mode 100644 index 0000000..cce83e4 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/obj/drivers/src/altera_avalon_jtag_uart_write.o Binary files differ diff --git a/software/qsys_tutorial_key3_bsp/public.mk b/software/qsys_tutorial_key3_bsp/public.mk new file mode 100644 index 0000000..5eb883d --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/public.mk @@ -0,0 +1,385 @@ +#------------------------------------------------------------------------------ +# BSP "PUBLIC" MAKEFILE CONTENT +# +# This file is intended to be included in an application or library +# Makefile that is using this BSP. You can create such a Makefile with +# the nios2-app-generate-makefile or nios2-lib-generate-makefile +# commands. +# +# The following variables must be defined before including this file: +# +# ALT_LIBRARY_ROOT_DIR +# Contains the path to the BSP top-level (aka root) directory +#------------------------------------------------------------------------------ + +#------------------------------------------------------------------------------ +# PATHS +#------------------------------------------------------------------------------ + + + +# Path to the provided linker script. +BSP_LINKER_SCRIPT := $(ALT_LIBRARY_ROOT_DIR)/linker.x + +# Include paths: +# The path to root of all header files that a library wishes to make +# available for an application's use is specified here. Note that this +# may not be *all* folders within a hierarchy. For example, if it is +# desired that the application developer type: +# #include +# #include +# With files laid out like this: +# /inc/sockets.h +# /inc/ip/tcpip.h +# +# Then, only /inc need be added to the list of include +# directories. Alternatively, if you wish to be able to directly include +# all files in a hierarchy, separate paths to each folder in that +# hierarchy must be defined. + +# The following are the "base" set of include paths for a BSP. +# These paths are appended to the list that individual software +# components, drivers, etc., add in the generated portion of this +# file (below). +ALT_INCLUDE_DIRS_TO_APPEND += \ + $(ALT_LIBRARY_ROOT_DIR) \ + $(ALT_LIBRARY_ROOT_DIR)/drivers/inc + +# Additions to linker library search-path: +# Here we provide a path to "our self" for the application to construct a +# "-L " out of. This should contain a list of directories, +# relative to the library root, of all directories with .a files to link +# against. +ALT_LIBRARY_DIRS += $(ALT_LIBRARY_ROOT_DIR) + + +#------------------------------------------------------------------------------ +# COMPILATION FLAGS +#------------------------------------------------------------------------------ +# Default C pre-processor flags for a BSP: +ALT_CPPFLAGS += -DSYSTEM_BUS_WIDTH=32 \ + -pipe + + +#------------------------------------------------------------------------------ +# MANAGED CONTENT +# +# All content between the lines "START MANAGED" and "END MANAGED" below is +# generated based on variables in the BSP settings file when the +# nios2-bsp-generate-files command is invoked. If you wish to persist any +# information pertaining to the build process, it is recomended that you +# utilize the BSP settings mechanism to do so. +#------------------------------------------------------------------------------ +#START MANAGED + +# The following TYPE comment allows tools to identify the 'type' of target this +# makefile is associated with. +# TYPE: BSP_PUBLIC_MAKEFILE + +# This following VERSION comment indicates the version of the tool used to +# generate this makefile. A makefile variable is provided for VERSION as well. +# ACDS_VERSION: 13.0sp1 +ACDS_VERSION := 13.0sp1 + +# This following BUILD_NUMBER comment indicates the build number of the tool +# used to generate this makefile. +# BUILD_NUMBER: 232 + +# Qsys--generated SOPCINFO file. Required for resolving node instance ID's with +# design component names. +SOPCINFO_FILE := C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.sopcinfo + +# Big-Endian operation. +# setting BIG_ENDIAN is false +ALT_CFLAGS += -EL + +# Path to the provided C language runtime initialization code. +BSP_CRT0 := $(ALT_LIBRARY_ROOT_DIR)/obj/HAL/src/crt0.o + +# Name of BSP library as provided to linker using the "-msys-lib" flag or +# linker script GROUP command. +# setting BSP_SYS_LIB is hal_bsp +BSP_SYS_LIB := hal_bsp +ELF_PATCH_FLAG += --thread_model hal + +# Type identifier of the BSP library +# setting BSP_TYPE is hal +ALT_CPPFLAGS += -D__hal__ +BSP_TYPE := hal + +# CPU Name +# setting CPU_NAME is nios2_processor +CPU_NAME = nios2_processor +ELF_PATCH_FLAG += --cpu_name $(CPU_NAME) + +# Hardware Divider present. +# setting HARDWARE_DIVIDE is false +ALT_CFLAGS += -mno-hw-div + +# Hardware Multiplier present. +# setting HARDWARE_MULTIPLY is false +ALT_CFLAGS += -mno-hw-mul + +# Hardware Mulx present. +# setting HARDWARE_MULX is false +ALT_CFLAGS += -mno-hw-mulx + +# Debug Core present. +# setting HAS_DEBUG_CORE is true +CPU_HAS_DEBUG_CORE = 1 + +# Qsys generated design +# setting QSYS is 1 +QSYS := 1 +ELF_PATCH_FLAG += --qsys true + +# Design Name +# setting SOPC_NAME is nios_system +SOPC_NAME := nios_system + +# SopcBuilder Simulation Enabled +# setting SOPC_SIMULATION_ENABLED is false +ELF_PATCH_FLAG += --simulation_enabled false + +# Enable JTAG UART driver to recover when host is inactive causing buffer to +# full without returning error. Printf will not fail with this recovery. none +# setting altera_avalon_jtag_uart_driver.enable_jtag_uart_ignore_fifo_full_error is false + +# Small-footprint (polled mode) driver none +# setting altera_avalon_jtag_uart_driver.enable_small_driver is false + +# Build a custom version of newlib with the specified space-separated compiler +# flags. The custom newlib build will be placed in the <bsp root>/newlib +# directory, and will be used only for applications that utilize this BSP. +# setting hal.custom_newlib_flags is none + +# Enable support for a subset of the C++ language. This option increases code +# footprint by adding support for C++ constructors. Certain features, such as +# multiple inheritance and exceptions are not supported. If false, adds +# -DALT_NO_C_PLUS_PLUS to ALT_CPPFLAGS in public.mk, and reduces code +# footprint. none +# setting hal.enable_c_plus_plus is false +ALT_CPPFLAGS += -DALT_NO_C_PLUS_PLUS + +# When your application exits, close file descriptors, call C++ destructors, +# etc. Code footprint can be reduced by disabling clean exit. If disabled, adds +# -DALT_NO_CLEAN_EXIT to ALT_CPPFLAGS and -Wl,--defsym, exit=_exit to +# ALT_LDFLAGS in public.mk. none +# setting hal.enable_clean_exit is false +ALT_CPPFLAGS += -DALT_NO_CLEAN_EXIT +ALT_LDFLAGS += -Wl,--defsym,exit=_exit + +# Add exit() support. This option increases code footprint if your "main()" +# routine does "return" or call "exit()". If false, adds -DALT_NO_EXIT to +# ALT_CPPFLAGS in public.mk, and reduces footprint none +# setting hal.enable_exit is false +ALT_CPPFLAGS += -DALT_NO_EXIT + +# Causes code to be compiled with gprof profiling enabled and the application +# ELF to be linked with the GPROF library. If true, adds -DALT_PROVIDE_GMON to +# ALT_CPPFLAGS and -pg to ALT_CFLAGS in public.mk. none +# setting hal.enable_gprof is false + +# Enables lightweight device driver API. This reduces code and data footprint +# by removing the HAL layer that maps device names (e.g. /dev/uart0) to file +# descriptors. Instead, driver routines are called directly. The open(), +# close(), and lseek() routines will always fail if called. The read(), +# write(), fstat(), ioctl(), and isatty() routines only work for the stdio +# devices. If true, adds -DALT_USE_DIRECT_DRIVERS to ALT_CPPFLAGS in public.mk. +# The Altera Host and read-only ZIP file systems can't be used if +# hal.enable_lightweight_device_driver_api is true. +# setting hal.enable_lightweight_device_driver_api is true +ALT_CPPFLAGS += -DALT_USE_DIRECT_DRIVERS + +# Adds code to emulate multiply and divide instructions in case they are +# executed but aren't present in the CPU. Normally this isn't required because +# the compiler won't use multiply and divide instructions that aren't present +# in the CPU. If false, adds -DALT_NO_INSTRUCTION_EMULATION to ALT_CPPFLAGS in +# public.mk. none +# setting hal.enable_mul_div_emulation is false +ALT_CPPFLAGS += -DALT_NO_INSTRUCTION_EMULATION + +# Certain drivers are compiled with reduced functionality to reduce code +# footprint. Not all drivers observe this setting. The altera_avalon_uart and +# altera_avalon_jtag_uart drivers switch from interrupt-driven to polled +# operation. CAUTION: Several device drivers are disabled entirely. These +# include the altera_avalon_cfi_flash, altera_avalon_epcs_flash_controller, and +# altera_avalon_lcd_16207 drivers. This can result in certain API (HAL flash +# access routines) to fail. You can define a symbol provided by each driver to +# prevent it from being removed. If true, adds -DALT_USE_SMALL_DRIVERS to +# ALT_CPPFLAGS in public.mk. none +# setting hal.enable_reduced_device_drivers is true +ALT_CPPFLAGS += -DALT_USE_SMALL_DRIVERS + +# Turns on HAL runtime stack checking feature. Enabling this setting causes +# additional code to be placed into each subroutine call to generate an +# exception if a stack collision occurs with the heap or statically allocated +# data. If true, adds -DALT_STACK_CHECK and -mstack-check to ALT_CPPFLAGS in +# public.mk. none +# setting hal.enable_runtime_stack_checking is false + +# The BSP is compiled with optimizations to speedup HDL simulation such as +# initializing the cache, clearing the .bss section, and skipping long delay +# loops. If true, adds -DALT_SIM_OPTIMIZE to ALT_CPPFLAGS in public.mk. When +# this setting is true, the BSP shouldn't be used to build applications that +# are expected to run real hardware. +# setting hal.enable_sim_optimize is false + +# Causes the small newlib (C library) to be used. This reduces code and data +# footprint at the expense of reduced functionality. Several newlib features +# are removed such as floating-point support in printf(), stdin input routines, +# and buffered I/O. The small C library is not compatible with Micrium +# MicroC/OS-II. If true, adds -msmallc to ALT_LDFLAGS in public.mk. none +# setting hal.enable_small_c_library is true +ALT_LDFLAGS += -msmallc +ALT_CPPFLAGS += -DSMALL_C_LIB + +# Enable SOPC Builder System ID. If a System ID SOPC Builder component is +# connected to the CPU associated with this BSP, it will be enabled in the +# creation of command-line arguments to download an ELF to the target. +# Otherwise, system ID and timestamp values are left out of public.mk for +# application Makefile "download-elf" target definition. With the system ID +# check disabled, the Nios II EDS tools will not automatically ensure that the +# application .elf file (and BSP it is linked against) corresponds to the +# hardware design on the target. If false, adds --accept-bad-sysid to +# SOPC_SYSID_FLAG in public.mk. none +# setting hal.enable_sopc_sysid_check is true + +# Enable BSP generation to query if SOPC system is big endian. If true ignores +# export of 'ALT_CFLAGS += -EB' to public.mk if big endian system. If true +# ignores export of 'ALT_CFLAGS += -EL' if little endian system. none +# setting hal.make.ignore_system_derived.big_endian is false + +# Enable BSP generation to query if SOPC system has a debug core present. If +# true ignores export of 'CPU_HAS_DEBUG_CORE = 1' to public.mk if a debug core +# is found in the system. If true ignores export of 'CPU_HAS_DEBUG_CORE = 0' if +# no debug core is found in the system. none +# setting hal.make.ignore_system_derived.debug_core_present is false + +# Enable BSP generation to query if SOPC system has FPU present. If true +# ignores export of 'ALT_CFLAGS += -mhard-float' to public.mk if FPU is found +# in the system. If true ignores export of 'ALT_CFLAGS += -mhard-soft' if FPU +# is not found in the system. none +# setting hal.make.ignore_system_derived.fpu_present is false + +# Enable BSP generation to query if SOPC system has hardware divide present. If +# true ignores export of 'ALT_CFLAGS += -mno-hw-div' to public.mk if no +# division is found in system. If true ignores export of 'ALT_CFLAGS += +# -mhw-div' if division is found in the system. none +# setting hal.make.ignore_system_derived.hardware_divide_present is false + +# Enable BSP generation to query if SOPC system floating point custom +# instruction with a divider is present. If true ignores export of 'ALT_CFLAGS +# += -mcustom-fpu-cfg=60-2' and 'ALT_LDFLAGS += -mcustom-fpu-cfg=60-2' to +# public.mk if the custom instruction is found in the system. none +# setting hal.make.ignore_system_derived.hardware_fp_cust_inst_divider_present is false + +# Enable BSP generation to query if SOPC system floating point custom +# instruction without a divider is present. If true ignores export of +# 'ALT_CFLAGS += -mcustom-fpu-cfg=60-1' and 'ALT_LDFLAGS += +# -mcustom-fpu-cfg=60-1' to public.mk if the custom instruction is found in the +# system. none +# setting hal.make.ignore_system_derived.hardware_fp_cust_inst_no_divider_present is false + +# Enable BSP generation to query if SOPC system has multiplier present. If true +# ignores export of 'ALT_CFLAGS += -mno-hw-mul' to public.mk if no multiplier +# is found in the system. If true ignores export of 'ALT_CFLAGS += -mhw-mul' if +# multiplier is found in the system. none +# setting hal.make.ignore_system_derived.hardware_multiplier_present is false + +# Enable BSP generation to query if SOPC system has hardware mulx present. If +# true ignores export of 'ALT_CFLAGS += -mno-hw-mulx' to public.mk if no mulx +# is found in the system. If true ignores export of 'ALT_CFLAGS += -mhw-mulx' +# if mulx is found in the system. none +# setting hal.make.ignore_system_derived.hardware_mulx_present is false + +# Enable BSP generation to query if SOPC system has simulation enabled. If true +# ignores export of 'ELF_PATCH_FLAG += --simulation_enabled' to public.mk. none +# setting hal.make.ignore_system_derived.sopc_simulation_enabled is false + +# Enable BSP generation to query SOPC system for system ID base address. If +# true ignores export of 'SOPC_SYSID_FLAG += --sidp=
' and +# 'ELF_PATCH_FLAG += --sidp=
' to public.mk. none +# setting hal.make.ignore_system_derived.sopc_system_base_address is false + +# Enable BSP generation to query SOPC system for system ID. If true ignores +# export of 'SOPC_SYSID_FLAG += --id=' and 'ELF_PATCH_FLAG += +# --id=' to public.mk. none +# setting hal.make.ignore_system_derived.sopc_system_id is false + +# Enable BSP generation to query SOPC system for system timestamp. If true +# ignores export of 'SOPC_SYSID_FLAG += --timestamp=' and +# 'ELF_PATCH_FLAG += --timestamp=' to public.mk. none +# setting hal.make.ignore_system_derived.sopc_system_timestamp is false + +# Slave descriptor of STDERR character-mode device. This setting is used by the +# ALT_STDERR family of defines in system.h. none +# setting hal.stderr is jtag_uart +ELF_PATCH_FLAG += --stderr_dev jtag_uart + +# Slave descriptor of STDIN character-mode device. This setting is used by the +# ALT_STDIN family of defines in system.h. none +# setting hal.stdin is jtag_uart +ELF_PATCH_FLAG += --stdin_dev jtag_uart + +# Slave descriptor of STDOUT character-mode device. This setting is used by the +# ALT_STDOUT family of defines in system.h. none +# setting hal.stdout is jtag_uart +ELF_PATCH_FLAG += --stdout_dev jtag_uart + + +#------------------------------------------------------------------------------ +# SOFTWARE COMPONENT & DRIVER INCLUDE PATHS +#------------------------------------------------------------------------------ + +ALT_INCLUDE_DIRS += $(ALT_LIBRARY_ROOT_DIR)/HAL/inc + +#------------------------------------------------------------------------------ +# SOFTWARE COMPONENT & DRIVER PRODUCED ALT_CPPFLAGS ADDITIONS +#------------------------------------------------------------------------------ + +ALT_CPPFLAGS += -DALT_SINGLE_THREADED + +#END MANAGED + + +#------------------------------------------------------------------------------ +# LIBRARY INFORMATION +#------------------------------------------------------------------------------ +# Assemble the name of the BSP *.a file using the BSP library name +# (BSP_SYS_LIB) in generated content above. +BSP_LIB := lib$(BSP_SYS_LIB).a + +# Additional libraries to link against: +# An application including this file will prefix each library with "-l". +# For example, to include the Newlib math library "m" is included, which +# becomes "-lm" when linking the application. +ALT_LIBRARY_NAMES += m + +# Additions to linker dependencies: +# An application Makefile will typically add these directly to the list +# of dependencies required to build the executable target(s). The BSP +# library (*.a) file is specified here. +ALT_LDDEPS += $(ALT_LIBRARY_ROOT_DIR)/$(BSP_LIB) + +# Is this library "Makeable"? +# Add to list of root library directories that support running 'make' +# to build them. Because libraries may or may not have a Makefile in their +# root, appending to this variable tells an application to run 'make' in +# the library root to build/update this library. +MAKEABLE_LIBRARY_ROOT_DIRS += $(ALT_LIBRARY_ROOT_DIR) + +# Additional Assembler Flags +# -gdwarf2 flag is required for stepping through assembly code +ALT_ASFLAGS += -gdwarf2 + +#------------------------------------------------------------------------------ +# FINAL INCLUDE PATH LIST +#------------------------------------------------------------------------------ +# Append static include paths to paths specified by OS/driver/sw package +# additions to the BSP thus giving them precedence in case a BSP addition +# is attempting to override BSP sources. +ALT_INCLUDE_DIRS += $(ALT_INCLUDE_DIRS_TO_APPEND) + + + diff --git a/software/qsys_tutorial_key3_bsp/settings.bsp b/software/qsys_tutorial_key3_bsp/settings.bsp new file mode 100644 index 0000000..3562949 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/settings.bsp @@ -0,0 +1,925 @@ + + + hal + default + 2016/11/10 10:49:50 + 1478742590906 + C:\Users\takayun\Documents\DE2-115\qsys_tutorial\software\qsys_tutorial_key3_bsp + .\settings.bsp + C:\Users\takayun\Documents\DE2-115\qsys_tutorial\nios_system.sopcinfo + default + nios2_processor + 1.9 + + hal.sys_clk_timer + ALT_SYS_CLK + UnquotedString + none + none + system_h_define + Slave descriptor of the system clock timer device. This device provides a periodic interrupt ("tick") and is typically required for RTOS use. This setting defines the value of ALT_SYS_CLK in system.h. + none + false + common + + + hal.timestamp_timer + ALT_TIMESTAMP_CLK + UnquotedString + none + none + system_h_define + Slave descriptor of timestamp timer device. This device is used by Altera HAL timestamp drivers for high-resolution time measurement. This setting defines the value of ALT_TIMESTAMP_CLK in system.h. + none + false + common + + + hal.max_file_descriptors + ALT_MAX_FD + DecimalNumber + 4 + 32 + system_h_define + Determines the number of file descriptors statically allocated. This setting defines the value of ALT_MAX_FD in system.h. + If hal.enable_lightweight_device_driver_api is true, there are no file descriptors so this setting is ignored. If hal.enable_lightweight_device_driver_api is false, this setting must be at least 4 because HAL needs a file descriptor for /dev/null, /dev/stdin, /dev/stdout, and /dev/stderr. + false + + + + hal.enable_instruction_related_exceptions_api + ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API + BooleanDefineOnly + false + false + system_h_define + Enables API for registering handlers to service instruction-related exceptions. Enabling this setting increases the size of the exception entry code. + These exception types can be generated if various processor options are enabled, such as the MMU, MPU, or other advanced exception types. + false + + + + hal.linker.allow_code_at_reset + ALT_ALLOW_CODE_AT_RESET + Boolean + 1 + 0 + none + Indicates if initialization code is allowed at the reset address. If true, defines the macro ALT_ALLOW_CODE_AT_RESET in linker.h. + If true, defines the macro ALT_ALLOW_CODE_AT_RESET in linker.h. This setting is typically false if an external bootloader (e.g. flash bootloader) is present. + false + + + + hal.linker.enable_alt_load + NONE + Boolean + 1 + 0 + none + Enables the alt_load() facility. The alt_load() facility copies sections from the .text memory into RAM. If true, this setting sets up the VMA/LMA of sections in linker.x to allow them to be loaded into the .text memory. + This setting is typically false if an external bootloader (e.g. flash bootloader) is present. + false + + + + hal.linker.enable_alt_load_copy_rodata + NONE + Boolean + 0 + 0 + none + Causes the alt_load() facility to copy the .rodata section. If true, this setting defines the macro ALT_LOAD_COPY_RODATA in linker.h. + none + false + + + + hal.linker.enable_alt_load_copy_rwdata + NONE + Boolean + 1 + 0 + none + Causes the alt_load() facility to copy the .rwdata section. If true, this setting defines the macro ALT_LOAD_COPY_RWDATA in linker.h. + none + false + + + + hal.linker.enable_alt_load_copy_exceptions + NONE + Boolean + 0 + 0 + none + Causes the alt_load() facility to copy the .exceptions section. If true, this setting defines the macro ALT_LOAD_COPY_EXCEPTIONS in linker.h. + none + false + + + + hal.linker.enable_exception_stack + NONE + Boolean + 0 + 0 + none + Enables use of a separate exception stack. If true, defines the macro ALT_EXCEPTION_STACK in linker.h, adds a memory region called exception_stack to linker.x, and provides the symbols __alt_exception_stack_pointer and __alt_exception_stack_limit in linker.x. + The hal.linker.exception_stack_size and hal.linker.exception_stack_memory_region_name settings must also be valid. This setting must be false for MicroC/OS-II BSPs. The exception stack can be used to improve interrupt and other exception performance if the EIC is *not* used. + false + common + + + hal.linker.exception_stack_size + NONE + DecimalNumber + 1024 + 1024 + none + Size of the exception stack in bytes. + Only used if hal.linker.enable_exception_stack is true. + false + common + + + hal.linker.exception_stack_memory_region_name + NONE + UnquotedString + onchip_memory + none + none + Name of the existing memory region that will be divided up to create the 'exception_stack' memory region. The selected region name will be adjusted automatically when the BSP is generated to create the 'exception_stack' memory region. + Only used if hal.linker.enable_exception_stack is true. + false + common + + + hal.linker.enable_interrupt_stack + NONE + Boolean + 0 + 0 + none + Enables use of a separate interrupt stack. If true, defines the macro ALT_INTERRUPT_STACK in linker.h, adds a memory region called interrupt_stack to linker.x, and provides the symbols __alt_interrupt_stack_pointer and __alt_interrupt_stack_limit in linker.x. + The hal.linker.interrupt_stack_size and hal.linker.interrupt_stack_memory_region_name settings must also be valid. This setting must be false for MicroC/OS-II BSPs. Only enable if the EIC is used exclusively. The exception stack can be used to improve interrupt and other exception performance if the EIC is *not* used. + false + common + + + hal.linker.interrupt_stack_size + NONE + DecimalNumber + 1024 + 1024 + none + Size of the interrupt stack in bytes. + Only used if hal.linker.enable_interrupt_stack is true. + false + common + + + hal.linker.interrupt_stack_memory_region_name + NONE + UnquotedString + onchip_memory + none + none + Name of the existing memory region that will be divided up to create the 'interrupt_stack' memory region. The selected region name will be adjusted automatically when the BSP is generated to create the 'interrupt_stack' memory region. + Only used if hal.linker.enable_interrupt_stack is true. + false + common + + + hal.stdin + NONE + UnquotedString + jtag_uart + none + system_h_define + Slave descriptor of STDIN character-mode device. This setting is used by the ALT_STDIN family of defines in system.h. + none + false + common + + + hal.stdout + NONE + UnquotedString + jtag_uart + none + system_h_define + Slave descriptor of STDOUT character-mode device. This setting is used by the ALT_STDOUT family of defines in system.h. + none + false + common + + + hal.stderr + NONE + UnquotedString + jtag_uart + none + system_h_define + Slave descriptor of STDERR character-mode device. This setting is used by the ALT_STDERR family of defines in system.h. + none + false + common + + + hal.log_port + NONE + UnquotedString + none + none + public_mk_define + Slave descriptor of debug logging character-mode device. If defined, it enables extra debug messages in the HAL source. This setting is used by the ALT_LOG_PORT family of defines in system.h. + none + false + none + + + hal.make.build_pre_process + BUILD_PRE_PROCESS + UnquotedString + none + none + makefile_variable + Command executed before BSP built. + none + false + none + + + hal.make.ar_pre_process + AR_PRE_PROCESS + UnquotedString + none + none + makefile_variable + Command executed before archiver execution. + none + false + none + + + hal.make.bsp_cflags_defined_symbols + BSP_CFLAGS_DEFINED_SYMBOLS + UnquotedString + none + none + makefile_variable + Preprocessor macros to define. A macro definition in this setting has the same effect as a "#define" in source code. Adding "-DALT_DEBUG" to this setting has the same effect as "#define ALT_DEBUG" in a souce file. Adding "-DFOO=1" to this setting is equivalent to the macro "#define FOO 1" in a source file. Macros defined with this setting are applied to all .S, .c, and C++ files in the BSP. This setting defines the value of BSP_CFLAGS_DEFINED_SYMBOLS in the BSP Makefile. + none + false + none + + + hal.make.ar_post_process + AR_POST_PROCESS + UnquotedString + none + none + makefile_variable + Command executed after archiver execution. + none + false + none + + + hal.make.as + AS + UnquotedString + nios2-elf-gcc + nios2-elf-gcc + makefile_variable + Assembler command. Note that CC is used for .S files. + none + false + none + + + hal.make.build_post_process + BUILD_POST_PROCESS + UnquotedString + none + none + makefile_variable + Command executed after BSP built. + none + false + none + + + hal.make.bsp_cflags_debug + BSP_CFLAGS_DEBUG + UnquotedString + -g + -g + makefile_variable + C/C++ compiler debug level. '-g' provides the default set of debug symbols typically required to debug a typical application. Omitting '-g' removes debug symbols from the ELF. This setting defines the value of BSP_CFLAGS_DEBUG in Makefile. + none + false + common + + + hal.make.ar + AR + UnquotedString + nios2-elf-ar + nios2-elf-ar + makefile_variable + Archiver command. Creates library files. + none + false + none + + + hal.make.rm + RM + UnquotedString + rm -f + rm -f + makefile_variable + Command used to remove files during 'clean' target. + none + false + none + + + hal.make.cxx_pre_process + CXX_PRE_PROCESS + UnquotedString + none + none + makefile_variable + Command executed before each C++ file is compiled. + none + false + none + + + hal.make.bsp_cflags_warnings + BSP_CFLAGS_WARNINGS + UnquotedString + -Wall + -Wall + makefile_variable + C/C++ compiler warning level. "-Wall" is commonly used.This setting defines the value of BSP_CFLAGS_WARNINGS in Makefile. + none + false + none + + + hal.make.bsp_arflags + BSP_ARFLAGS + UnquotedString + -src + -src + makefile_variable + Custom flags only passed to the archiver. This content of this variable is directly passed to the archiver rather than the more standard "ARFLAGS". The reason for this is that GNU Make assumes some default content in ARFLAGS. This setting defines the value of BSP_ARFLAGS in Makefile. + none + false + none + + + hal.make.bsp_cflags_optimization + BSP_CFLAGS_OPTIMIZATION + UnquotedString + '-Os' + -O0 + makefile_variable + C/C++ compiler optimization level. "-O0" = no optimization,"-O2" = "normal" optimization, etc. "-O0" is recommended for code that you want to debug since compiler optimization can remove variables and produce non-sequential execution of code while debugging. This setting defines the value of BSP_CFLAGS_OPTIMIZATION in Makefile. + none + false + common + + + hal.make.as_post_process + AS_POST_PROCESS + UnquotedString + none + none + makefile_variable + Command executed after each assembly file is compiled. + none + false + none + + + hal.make.cc_pre_process + CC_PRE_PROCESS + UnquotedString + none + none + makefile_variable + Command executed before each .c/.S file is compiled. + none + false + none + + + hal.make.bsp_asflags + BSP_ASFLAGS + UnquotedString + -Wa,-gdwarf2 + -Wa,-gdwarf2 + makefile_variable + Custom flags only passed to the assembler. This setting defines the value of BSP_ASFLAGS in Makefile. + none + false + none + + + hal.make.as_pre_process + AS_PRE_PROCESS + UnquotedString + none + none + makefile_variable + Command executed before each assembly file is compiled. + none + false + none + + + hal.make.bsp_cflags_undefined_symbols + BSP_CFLAGS_UNDEFINED_SYMBOLS + UnquotedString + none + none + makefile_variable + Preprocessor macros to undefine. Undefined macros are similar to defined macros, but replicate the "#undef" directive in source code. To undefine the macro FOO use the syntax "-u FOO" in this setting. This is equivalent to "#undef FOO" in a source file. Note: the syntax differs from macro definition (there is a space, i.e. "-u FOO" versus "-DFOO"). Macros defined with this setting are applied to all .S, .c, and C++ files in the BSP. This setting defines the value of BSP_CFLAGS_UNDEFINED_SYMBOLS in the BSP Makefile. + none + false + none + + + hal.make.cc_post_process + CC_POST_PROCESS + UnquotedString + none + none + makefile_variable + Command executed after each .c/.S file is compiled. + none + false + none + + + hal.make.cxx_post_process + CXX_POST_PROCESS + UnquotedString + none + none + makefile_variable + Command executed before each C++ file is compiled. + none + false + none + + + hal.make.cc + CC + UnquotedString + nios2-elf-gcc -xc + nios2-elf-gcc -xc + makefile_variable + C compiler command. + none + false + none + + + hal.make.bsp_cxx_flags + BSP_CXXFLAGS + UnquotedString + none + none + makefile_variable + Custom flags only passed to the C++ compiler. This setting defines the value of BSP_CXXFLAGS in Makefile. + none + false + none + + + hal.make.bsp_inc_dirs + BSP_INC_DIRS + UnquotedString + none + none + makefile_variable + Space separated list of extra include directories to scan for header files. Directories are relative to the top-level BSP directory. The -I prefix's added by the makefile so don't add it here. This setting defines the value of BSP_INC_DIRS in Makefile. + none + false + none + + + hal.make.cxx + CXX + UnquotedString + nios2-elf-gcc -xc++ + nios2-elf-gcc -xc++ + makefile_variable + C++ compiler command. + none + false + none + + + hal.make.bsp_cflags_user_flags + BSP_CFLAGS_USER_FLAGS + UnquotedString + none + none + makefile_variable + Custom flags passed to the compiler when compiling C, C++, and .S files. This setting defines the value of BSP_CFLAGS_USER_FLAGS in Makefile. + none + false + none + + + hal.make.ignore_system_derived.sopc_system_id + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query SOPC system for system ID. If true ignores export of 'SOPC_SYSID_FLAG += --id=<sysid>' and 'ELF_PATCH_FLAG += --id=<sysid>' to public.mk. + none + false + none + + + hal.make.ignore_system_derived.sopc_system_timestamp + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query SOPC system for system timestamp. If true ignores export of 'SOPC_SYSID_FLAG += --timestamp=<timestamp>' and 'ELF_PATCH_FLAG += --timestamp=<timestamp>' to public.mk. + none + false + none + + + hal.make.ignore_system_derived.sopc_system_base_address + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query SOPC system for system ID base address. If true ignores export of 'SOPC_SYSID_FLAG += --sidp=<address>' and 'ELF_PATCH_FLAG += --sidp=<address>' to public.mk. + none + false + none + + + hal.make.ignore_system_derived.sopc_simulation_enabled + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query if SOPC system has simulation enabled. If true ignores export of 'ELF_PATCH_FLAG += --simulation_enabled' to public.mk. + none + false + none + + + hal.make.ignore_system_derived.fpu_present + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query if SOPC system has FPU present. If true ignores export of 'ALT_CFLAGS += -mhard-float' to public.mk if FPU is found in the system. If true ignores export of 'ALT_CFLAGS += -mhard-soft' if FPU is not found in the system. + none + false + none + + + hal.make.ignore_system_derived.hardware_multiplier_present + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query if SOPC system has multiplier present. If true ignores export of 'ALT_CFLAGS += -mno-hw-mul' to public.mk if no multiplier is found in the system. If true ignores export of 'ALT_CFLAGS += -mhw-mul' if multiplier is found in the system. + none + false + none + + + hal.make.ignore_system_derived.hardware_mulx_present + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query if SOPC system has hardware mulx present. If true ignores export of 'ALT_CFLAGS += -mno-hw-mulx' to public.mk if no mulx is found in the system. If true ignores export of 'ALT_CFLAGS += -mhw-mulx' if mulx is found in the system. + none + false + none + + + hal.make.ignore_system_derived.hardware_divide_present + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query if SOPC system has hardware divide present. If true ignores export of 'ALT_CFLAGS += -mno-hw-div' to public.mk if no division is found in system. If true ignores export of 'ALT_CFLAGS += -mhw-div' if division is found in the system. + none + false + none + + + hal.make.ignore_system_derived.debug_core_present + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query if SOPC system has a debug core present. If true ignores export of 'CPU_HAS_DEBUG_CORE = 1' to public.mk if a debug core is found in the system. If true ignores export of 'CPU_HAS_DEBUG_CORE = 0' if no debug core is found in the system. + none + false + none + + + hal.make.ignore_system_derived.big_endian + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query if SOPC system is big endian. If true ignores export of 'ALT_CFLAGS += -EB' to public.mk if big endian system. If true ignores export of 'ALT_CFLAGS += -EL' if little endian system. + none + false + none + + + hal.make.ignore_system_derived.hardware_fp_cust_inst_divider_present + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query if SOPC system floating point custom instruction with a divider is present. If true ignores export of 'ALT_CFLAGS += -mcustom-fpu-cfg=60-2' and 'ALT_LDFLAGS += -mcustom-fpu-cfg=60-2' to public.mk if the custom instruction is found in the system. + none + false + none + + + hal.make.ignore_system_derived.hardware_fp_cust_inst_no_divider_present + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query if SOPC system floating point custom instruction without a divider is present. If true ignores export of 'ALT_CFLAGS += -mcustom-fpu-cfg=60-1' and 'ALT_LDFLAGS += -mcustom-fpu-cfg=60-1' to public.mk if the custom instruction is found in the system. + none + false + none + + + hal.enable_exit + ALT_NO_EXIT + Boolean + 0 + 1 + public_mk_define + Add exit() support. This option increases code footprint if your "main()" routine does "return" or call "exit()". If false, adds -DALT_NO_EXIT to ALT_CPPFLAGS in public.mk, and reduces footprint + none + false + none + + + hal.enable_small_c_library + NONE + Boolean + 1 + 0 + public_mk_define + Causes the small newlib (C library) to be used. This reduces code and data footprint at the expense of reduced functionality. Several newlib features are removed such as floating-point support in printf(), stdin input routines, and buffered I/O. The small C library is not compatible with Micrium MicroC/OS-II. If true, adds -msmallc to ALT_LDFLAGS in public.mk. + none + false + common + + + hal.enable_clean_exit + ALT_NO_CLEAN_EXIT + Boolean + 0 + 1 + public_mk_define + When your application exits, close file descriptors, call C++ destructors, etc. Code footprint can be reduced by disabling clean exit. If disabled, adds -DALT_NO_CLEAN_EXIT to ALT_CPPFLAGS and -Wl,--defsym, exit=_exit to ALT_LDFLAGS in public.mk. + none + false + none + + + hal.enable_runtime_stack_checking + ALT_STACK_CHECK + Boolean + 0 + 0 + public_mk_define + Turns on HAL runtime stack checking feature. Enabling this setting causes additional code to be placed into each subroutine call to generate an exception if a stack collision occurs with the heap or statically allocated data. If true, adds -DALT_STACK_CHECK and -mstack-check to ALT_CPPFLAGS in public.mk. + none + false + none + + + hal.enable_gprof + ALT_PROVIDE_GMON + Boolean + 0 + 0 + public_mk_define + Causes code to be compiled with gprof profiling enabled and the application ELF to be linked with the GPROF library. If true, adds -DALT_PROVIDE_GMON to ALT_CPPFLAGS and -pg to ALT_CFLAGS in public.mk. + none + false + common + + + hal.enable_c_plus_plus + ALT_NO_C_PLUS_PLUS + Boolean + 0 + 1 + public_mk_define + Enable support for a subset of the C++ language. This option increases code footprint by adding support for C++ constructors. Certain features, such as multiple inheritance and exceptions are not supported. If false, adds -DALT_NO_C_PLUS_PLUS to ALT_CPPFLAGS in public.mk, and reduces code footprint. + none + false + none + + + hal.enable_reduced_device_drivers + ALT_USE_SMALL_DRIVERS + Boolean + 1 + 0 + public_mk_define + Certain drivers are compiled with reduced functionality to reduce code footprint. Not all drivers observe this setting. The altera_avalon_uart and altera_avalon_jtag_uart drivers switch from interrupt-driven to polled operation. CAUTION: Several device drivers are disabled entirely. These include the altera_avalon_cfi_flash, altera_avalon_epcs_flash_controller, and altera_avalon_lcd_16207 drivers. This can result in certain API (HAL flash access routines) to fail. You can define a symbol provided by each driver to prevent it from being removed. If true, adds -DALT_USE_SMALL_DRIVERS to ALT_CPPFLAGS in public.mk. + none + false + common + + + hal.enable_lightweight_device_driver_api + ALT_USE_DIRECT_DRIVERS + Boolean + 1 + 0 + public_mk_define + Enables lightweight device driver API. This reduces code and data footprint by removing the HAL layer that maps device names (e.g. /dev/uart0) to file descriptors. Instead, driver routines are called directly. The open(), close(), and lseek() routines will always fail if called. The read(), write(), fstat(), ioctl(), and isatty() routines only work for the stdio devices. If true, adds -DALT_USE_DIRECT_DRIVERS to ALT_CPPFLAGS in public.mk. + The Altera Host and read-only ZIP file systems can't be used if hal.enable_lightweight_device_driver_api is true. + false + none + + + hal.enable_mul_div_emulation + ALT_NO_INSTRUCTION_EMULATION + Boolean + 0 + 0 + public_mk_define + Adds code to emulate multiply and divide instructions in case they are executed but aren't present in the CPU. Normally this isn't required because the compiler won't use multiply and divide instructions that aren't present in the CPU. If false, adds -DALT_NO_INSTRUCTION_EMULATION to ALT_CPPFLAGS in public.mk. + none + false + none + + + hal.enable_sim_optimize + ALT_SIM_OPTIMIZE + Boolean + 0 + 0 + public_mk_define + The BSP is compiled with optimizations to speedup HDL simulation such as initializing the cache, clearing the .bss section, and skipping long delay loops. If true, adds -DALT_SIM_OPTIMIZE to ALT_CPPFLAGS in public.mk. + When this setting is true, the BSP shouldn't be used to build applications that are expected to run real hardware. + false + common + + + hal.enable_sopc_sysid_check + NONE + Boolean + 1 + 1 + public_mk_define + Enable SOPC Builder System ID. If a System ID SOPC Builder component is connected to the CPU associated with this BSP, it will be enabled in the creation of command-line arguments to download an ELF to the target. Otherwise, system ID and timestamp values are left out of public.mk for application Makefile "download-elf" target definition. With the system ID check disabled, the Nios II EDS tools will not automatically ensure that the application .elf file (and BSP it is linked against) corresponds to the hardware design on the target. If false, adds --accept-bad-sysid to SOPC_SYSID_FLAG in public.mk. + none + false + none + + + hal.custom_newlib_flags + CUSTOM_NEWLIB_FLAGS + UnquotedString + none + none + public_mk_define + Build a custom version of newlib with the specified space-separated compiler flags. + The custom newlib build will be placed in the &lt;bsp root>/newlib directory, and will be used only for applications that utilize this BSP. + false + none + + + hal.log_flags + ALT_LOG_FLAGS + DecimalNumber + 0 + 0 + public_mk_define + The value is assigned to ALT_LOG_FLAGS in the generated public.mk. See hal.log_port setting description. Values can be -1 through 3. + hal.log_port must be set for this to be used. + false + none + + + altera_avalon_jtag_uart_driver.enable_small_driver + ALTERA_AVALON_JTAG_UART_SMALL + BooleanDefineOnly + false + false + public_mk_define + Small-footprint (polled mode) driver + none + false + + + + altera_avalon_jtag_uart_driver.enable_jtag_uart_ignore_fifo_full_error + ALTERA_AVALON_JTAG_UART_IGNORE_FIFO_FULL_ERROR + BooleanDefineOnly + false + false + public_mk_define + Enable JTAG UART driver to recover when host is inactive causing buffer to full without returning error. Printf will not fail with this recovery. + none + false + + + + onchip_memory + 0x00000000 - 0x00000FFF + 4096 + memory + + + push_switches + 0x00002000 - 0x0000200F + 16 + + + + switches + 0x00002010 - 0x0000201F + 16 + + + + LEDRs + 0x00002020 - 0x0000202F + 16 + + + + LEDs + 0x00002030 - 0x0000203F + 16 + + + + jtag_uart + 0x00002040 - 0x00002047 + 8 + printable + + + .text + onchip_memory + + + .rodata + onchip_memory + + + .rwdata + onchip_memory + + + .bss + onchip_memory + + + .heap + onchip_memory + + + .stack + onchip_memory + + \ No newline at end of file diff --git a/software/qsys_tutorial_key3_bsp/summary.html b/software/qsys_tutorial_key3_bsp/summary.html new file mode 100644 index 0000000..7c6b1e0 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/summary.html @@ -0,0 +1,2014 @@ + +Altera Nios II BSP Summary + +

BSP Description

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
BSP Type:hal
SOPC Design File:C:\Users\takayun\Documents\DE2-115\qsys_tutorial\nios_system.sopcinfo
Quartus JDI File:default
CPU:nios2_processor
BSP Settings File:.\settings.bsp
BSP Version:default
BSP Generated On:2016/11/10 10:49:50
BSP Generated Timestamp:1478742590906
BSP Generated Location:C:\Users\takayun\Documents\DE2-115\qsys_tutorial\software\qsys_tutorial_key3_bsp
+
+

Nios II Memory Map

+ + + + + + + + + + + + + + + + + + + + + + +
Slave DescriptorAddress RangeSizeAttributes
jtag_uart0x00002040 - 0x000020478printable
LEDs0x00002030 - 0x0000203F16 
LEDRs0x00002020 - 0x0000202F16 
switches0x00002010 - 0x0000201F16 
push_switches0x00002000 - 0x0000200F16 
onchip_memory0x00000000 - 0x00000FFF4096memory
+
+
+

Linker Regions

+ + + + +
RegionAddress RangeSizeMemoryOffset
+
+
+

Linker Section Mappings

+ + + + + + + + + + + + + + + + + + + + + + +
SectionRegion
.textonchip_memory
.rodataonchip_memory
.rwdataonchip_memory
.bssonchip_memory
.heaponchip_memory
.stackonchip_memory
+

Settings

+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:altera_avalon_jtag_uart_driver.enable_jtag_uart_ignore_fifo_full_error
Identifier:ALTERA_AVALON_JTAG_UART_IGNORE_FIFO_FULL_ERROR
Default Value:false
Value:false
Type:BooleanDefineOnly
Destination:public_mk_define
Description:Enable JTAG UART driver to recover when host is inactive causing buffer to full without returning error. Printf will not fail with this recovery.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:altera_avalon_jtag_uart_driver.enable_small_driver
Identifier:ALTERA_AVALON_JTAG_UART_SMALL
Default Value:false
Value:false
Type:BooleanDefineOnly
Destination:public_mk_define
Description:Small-footprint (polled mode) driver
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.custom_newlib_flags
Identifier:CUSTOM_NEWLIB_FLAGS
Default Value:none
Value:none
Type:UnquotedString
Destination:public_mk_define
Description:Build a custom version of newlib with the specified space-separated compiler flags.
Restrictions:The custom newlib build will be placed in the &lt;bsp root>/newlib directory, and will be used only for applications that utilize this BSP.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_c_plus_plus
Identifier:ALT_NO_C_PLUS_PLUS
Default Value:1
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable support for a subset of the C++ language. This option increases code footprint by adding support for C++ constructors. Certain features, such as multiple inheritance and exceptions are not supported. If false, adds -DALT_NO_C_PLUS_PLUS to ALT_CPPFLAGS in public.mk, and reduces code footprint.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_clean_exit
Identifier:ALT_NO_CLEAN_EXIT
Default Value:1
Value:0
Type:Boolean
Destination:public_mk_define
Description:When your application exits, close file descriptors, call C++ destructors, etc. Code footprint can be reduced by disabling clean exit. If disabled, adds -DALT_NO_CLEAN_EXIT to ALT_CPPFLAGS and -Wl,--defsym, exit=_exit to ALT_LDFLAGS in public.mk.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_exit
Identifier:ALT_NO_EXIT
Default Value:1
Value:0
Type:Boolean
Destination:public_mk_define
Description:Add exit() support. This option increases code footprint if your "main()" routine does "return" or call "exit()". If false, adds -DALT_NO_EXIT to ALT_CPPFLAGS in public.mk, and reduces footprint
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_gprof
Identifier:ALT_PROVIDE_GMON
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Causes code to be compiled with gprof profiling enabled and the application ELF to be linked with the GPROF library. If true, adds -DALT_PROVIDE_GMON to ALT_CPPFLAGS and -pg to ALT_CFLAGS in public.mk.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_instruction_related_exceptions_api
Identifier:ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API
Default Value:false
Value:false
Type:BooleanDefineOnly
Destination:system_h_define
Description:Enables API for registering handlers to service instruction-related exceptions. Enabling this setting increases the size of the exception entry code.
Restrictions:These exception types can be generated if various processor options are enabled, such as the MMU, MPU, or other advanced exception types.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_lightweight_device_driver_api
Identifier:ALT_USE_DIRECT_DRIVERS
Default Value:0
Value:1
Type:Boolean
Destination:public_mk_define
Description:Enables lightweight device driver API. This reduces code and data footprint by removing the HAL layer that maps device names (e.g. /dev/uart0) to file descriptors. Instead, driver routines are called directly. The open(), close(), and lseek() routines will always fail if called. The read(), write(), fstat(), ioctl(), and isatty() routines only work for the stdio devices. If true, adds -DALT_USE_DIRECT_DRIVERS to ALT_CPPFLAGS in public.mk.
Restrictions:The Altera Host and read-only ZIP file systems can't be used if hal.enable_lightweight_device_driver_api is true.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_mul_div_emulation
Identifier:ALT_NO_INSTRUCTION_EMULATION
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Adds code to emulate multiply and divide instructions in case they are executed but aren't present in the CPU. Normally this isn't required because the compiler won't use multiply and divide instructions that aren't present in the CPU. If false, adds -DALT_NO_INSTRUCTION_EMULATION to ALT_CPPFLAGS in public.mk.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_reduced_device_drivers
Identifier:ALT_USE_SMALL_DRIVERS
Default Value:0
Value:1
Type:Boolean
Destination:public_mk_define
Description:Certain drivers are compiled with reduced functionality to reduce code footprint. Not all drivers observe this setting. The altera_avalon_uart and altera_avalon_jtag_uart drivers switch from interrupt-driven to polled operation. CAUTION: Several device drivers are disabled entirely. These include the altera_avalon_cfi_flash, altera_avalon_epcs_flash_controller, and altera_avalon_lcd_16207 drivers. This can result in certain API (HAL flash access routines) to fail. You can define a symbol provided by each driver to prevent it from being removed. If true, adds -DALT_USE_SMALL_DRIVERS to ALT_CPPFLAGS in public.mk.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_runtime_stack_checking
Identifier:ALT_STACK_CHECK
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Turns on HAL runtime stack checking feature. Enabling this setting causes additional code to be placed into each subroutine call to generate an exception if a stack collision occurs with the heap or statically allocated data. If true, adds -DALT_STACK_CHECK and -mstack-check to ALT_CPPFLAGS in public.mk.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_sim_optimize
Identifier:ALT_SIM_OPTIMIZE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:The BSP is compiled with optimizations to speedup HDL simulation such as initializing the cache, clearing the .bss section, and skipping long delay loops. If true, adds -DALT_SIM_OPTIMIZE to ALT_CPPFLAGS in public.mk.
Restrictions:When this setting is true, the BSP shouldn't be used to build applications that are expected to run real hardware.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_small_c_library
Identifier:NONE
Default Value:0
Value:1
Type:Boolean
Destination:public_mk_define
Description:Causes the small newlib (C library) to be used. This reduces code and data footprint at the expense of reduced functionality. Several newlib features are removed such as floating-point support in printf(), stdin input routines, and buffered I/O. The small C library is not compatible with Micrium MicroC/OS-II. If true, adds -msmallc to ALT_LDFLAGS in public.mk.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_sopc_sysid_check
Identifier:NONE
Default Value:1
Value:1
Type:Boolean
Destination:public_mk_define
Description:Enable SOPC Builder System ID. If a System ID SOPC Builder component is connected to the CPU associated with this BSP, it will be enabled in the creation of command-line arguments to download an ELF to the target. Otherwise, system ID and timestamp values are left out of public.mk for application Makefile "download-elf" target definition. With the system ID check disabled, the Nios II EDS tools will not automatically ensure that the application .elf file (and BSP it is linked against) corresponds to the hardware design on the target. If false, adds --accept-bad-sysid to SOPC_SYSID_FLAG in public.mk.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.linker.allow_code_at_reset
Identifier:ALT_ALLOW_CODE_AT_RESET
Default Value:0
Value:1
Type:Boolean
Destination:none
Description:Indicates if initialization code is allowed at the reset address. If true, defines the macro ALT_ALLOW_CODE_AT_RESET in linker.h.
Restrictions:If true, defines the macro ALT_ALLOW_CODE_AT_RESET in linker.h. This setting is typically false if an external bootloader (e.g. flash bootloader) is present.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.linker.enable_alt_load
Identifier:NONE
Default Value:0
Value:1
Type:Boolean
Destination:none
Description:Enables the alt_load() facility. The alt_load() facility copies sections from the .text memory into RAM. If true, this setting sets up the VMA/LMA of sections in linker.x to allow them to be loaded into the .text memory.
Restrictions:This setting is typically false if an external bootloader (e.g. flash bootloader) is present.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.linker.enable_alt_load_copy_exceptions
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:none
Description:Causes the alt_load() facility to copy the .exceptions section. If true, this setting defines the macro ALT_LOAD_COPY_EXCEPTIONS in linker.h.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.linker.enable_alt_load_copy_rodata
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:none
Description:Causes the alt_load() facility to copy the .rodata section. If true, this setting defines the macro ALT_LOAD_COPY_RODATA in linker.h.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.linker.enable_alt_load_copy_rwdata
Identifier:NONE
Default Value:0
Value:1
Type:Boolean
Destination:none
Description:Causes the alt_load() facility to copy the .rwdata section. If true, this setting defines the macro ALT_LOAD_COPY_RWDATA in linker.h.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.linker.enable_exception_stack
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:none
Description:Enables use of a separate exception stack. If true, defines the macro ALT_EXCEPTION_STACK in linker.h, adds a memory region called exception_stack to linker.x, and provides the symbols __alt_exception_stack_pointer and __alt_exception_stack_limit in linker.x.
Restrictions:The hal.linker.exception_stack_size and hal.linker.exception_stack_memory_region_name settings must also be valid. This setting must be false for MicroC/OS-II BSPs. The exception stack can be used to improve interrupt and other exception performance if the EIC is *not* used.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.linker.enable_interrupt_stack
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:none
Description:Enables use of a separate interrupt stack. If true, defines the macro ALT_INTERRUPT_STACK in linker.h, adds a memory region called interrupt_stack to linker.x, and provides the symbols __alt_interrupt_stack_pointer and __alt_interrupt_stack_limit in linker.x.
Restrictions:The hal.linker.interrupt_stack_size and hal.linker.interrupt_stack_memory_region_name settings must also be valid. This setting must be false for MicroC/OS-II BSPs. Only enable if the EIC is used exclusively. The exception stack can be used to improve interrupt and other exception performance if the EIC is *not* used.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.linker.exception_stack_memory_region_name
Identifier:NONE
Default Value:none
Value:onchip_memory
Type:UnquotedString
Destination:none
Description:Name of the existing memory region that will be divided up to create the 'exception_stack' memory region. The selected region name will be adjusted automatically when the BSP is generated to create the 'exception_stack' memory region.
Restrictions:Only used if hal.linker.enable_exception_stack is true.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.linker.exception_stack_size
Identifier:NONE
Default Value:1024
Value:1024
Type:DecimalNumber
Destination:none
Description:Size of the exception stack in bytes.
Restrictions:Only used if hal.linker.enable_exception_stack is true.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.linker.interrupt_stack_memory_region_name
Identifier:NONE
Default Value:none
Value:onchip_memory
Type:UnquotedString
Destination:none
Description:Name of the existing memory region that will be divided up to create the 'interrupt_stack' memory region. The selected region name will be adjusted automatically when the BSP is generated to create the 'interrupt_stack' memory region.
Restrictions:Only used if hal.linker.enable_interrupt_stack is true.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.linker.interrupt_stack_size
Identifier:NONE
Default Value:1024
Value:1024
Type:DecimalNumber
Destination:none
Description:Size of the interrupt stack in bytes.
Restrictions:Only used if hal.linker.enable_interrupt_stack is true.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.log_flags
Identifier:ALT_LOG_FLAGS
Default Value:0
Value:0
Type:DecimalNumber
Destination:public_mk_define
Description:The value is assigned to ALT_LOG_FLAGS in the generated public.mk. See hal.log_port setting description. Values can be -1 through 3.
Restrictions:hal.log_port must be set for this to be used.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.log_port
Identifier:NONE
Default Value:none
Value:none
Type:UnquotedString
Destination:public_mk_define
Description:Slave descriptor of debug logging character-mode device. If defined, it enables extra debug messages in the HAL source. This setting is used by the ALT_LOG_PORT family of defines in system.h.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ar
Identifier:AR
Default Value:nios2-elf-ar
Value:nios2-elf-ar
Type:UnquotedString
Destination:makefile_variable
Description:Archiver command. Creates library files.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ar_post_process
Identifier:AR_POST_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed after archiver execution.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ar_pre_process
Identifier:AR_PRE_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed before archiver execution.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.as
Identifier:AS
Default Value:nios2-elf-gcc
Value:nios2-elf-gcc
Type:UnquotedString
Destination:makefile_variable
Description:Assembler command. Note that CC is used for .S files.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.as_post_process
Identifier:AS_POST_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed after each assembly file is compiled.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.as_pre_process
Identifier:AS_PRE_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed before each assembly file is compiled.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.bsp_arflags
Identifier:BSP_ARFLAGS
Default Value:-src
Value:-src
Type:UnquotedString
Destination:makefile_variable
Description:Custom flags only passed to the archiver. This content of this variable is directly passed to the archiver rather than the more standard "ARFLAGS". The reason for this is that GNU Make assumes some default content in ARFLAGS. This setting defines the value of BSP_ARFLAGS in Makefile.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.bsp_asflags
Identifier:BSP_ASFLAGS
Default Value:-Wa,-gdwarf2
Value:-Wa,-gdwarf2
Type:UnquotedString
Destination:makefile_variable
Description:Custom flags only passed to the assembler. This setting defines the value of BSP_ASFLAGS in Makefile.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.bsp_cflags_debug
Identifier:BSP_CFLAGS_DEBUG
Default Value:-g
Value:-g
Type:UnquotedString
Destination:makefile_variable
Description:C/C++ compiler debug level. '-g' provides the default set of debug symbols typically required to debug a typical application. Omitting '-g' removes debug symbols from the ELF. This setting defines the value of BSP_CFLAGS_DEBUG in Makefile.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.bsp_cflags_defined_symbols
Identifier:BSP_CFLAGS_DEFINED_SYMBOLS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Preprocessor macros to define. A macro definition in this setting has the same effect as a "#define" in source code. Adding "-DALT_DEBUG" to this setting has the same effect as "#define ALT_DEBUG" in a souce file. Adding "-DFOO=1" to this setting is equivalent to the macro "#define FOO 1" in a source file. Macros defined with this setting are applied to all .S, .c, and C++ files in the BSP. This setting defines the value of BSP_CFLAGS_DEFINED_SYMBOLS in the BSP Makefile.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.bsp_cflags_optimization
Identifier:BSP_CFLAGS_OPTIMIZATION
Default Value:-O0
Value:'-Os'
Type:UnquotedString
Destination:makefile_variable
Description:C/C++ compiler optimization level. "-O0" = no optimization,"-O2" = "normal" optimization, etc. "-O0" is recommended for code that you want to debug since compiler optimization can remove variables and produce non-sequential execution of code while debugging. This setting defines the value of BSP_CFLAGS_OPTIMIZATION in Makefile.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.bsp_cflags_undefined_symbols
Identifier:BSP_CFLAGS_UNDEFINED_SYMBOLS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Preprocessor macros to undefine. Undefined macros are similar to defined macros, but replicate the "#undef" directive in source code. To undefine the macro FOO use the syntax "-u FOO" in this setting. This is equivalent to "#undef FOO" in a source file. Note: the syntax differs from macro definition (there is a space, i.e. "-u FOO" versus "-DFOO"). Macros defined with this setting are applied to all .S, .c, and C++ files in the BSP. This setting defines the value of BSP_CFLAGS_UNDEFINED_SYMBOLS in the BSP Makefile.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.bsp_cflags_user_flags
Identifier:BSP_CFLAGS_USER_FLAGS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Custom flags passed to the compiler when compiling C, C++, and .S files. This setting defines the value of BSP_CFLAGS_USER_FLAGS in Makefile.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.bsp_cflags_warnings
Identifier:BSP_CFLAGS_WARNINGS
Default Value:-Wall
Value:-Wall
Type:UnquotedString
Destination:makefile_variable
Description:C/C++ compiler warning level. "-Wall" is commonly used.This setting defines the value of BSP_CFLAGS_WARNINGS in Makefile.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.bsp_cxx_flags
Identifier:BSP_CXXFLAGS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Custom flags only passed to the C++ compiler. This setting defines the value of BSP_CXXFLAGS in Makefile.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.bsp_inc_dirs
Identifier:BSP_INC_DIRS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Space separated list of extra include directories to scan for header files. Directories are relative to the top-level BSP directory. The -I prefix's added by the makefile so don't add it here. This setting defines the value of BSP_INC_DIRS in Makefile.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.build_post_process
Identifier:BUILD_POST_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed after BSP built.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.build_pre_process
Identifier:BUILD_PRE_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed before BSP built.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.cc
Identifier:CC
Default Value:nios2-elf-gcc -xc
Value:nios2-elf-gcc -xc
Type:UnquotedString
Destination:makefile_variable
Description:C compiler command.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.cc_post_process
Identifier:CC_POST_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed after each .c/.S file is compiled.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.cc_pre_process
Identifier:CC_PRE_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed before each .c/.S file is compiled.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.cxx
Identifier:CXX
Default Value:nios2-elf-gcc -xc++
Value:nios2-elf-gcc -xc++
Type:UnquotedString
Destination:makefile_variable
Description:C++ compiler command.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.cxx_post_process
Identifier:CXX_POST_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed before each C++ file is compiled.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.cxx_pre_process
Identifier:CXX_PRE_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed before each C++ file is compiled.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.big_endian
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query if SOPC system is big endian. If true ignores export of 'ALT_CFLAGS += -EB' to public.mk if big endian system. If true ignores export of 'ALT_CFLAGS += -EL' if little endian system.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.debug_core_present
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query if SOPC system has a debug core present. If true ignores export of 'CPU_HAS_DEBUG_CORE = 1' to public.mk if a debug core is found in the system. If true ignores export of 'CPU_HAS_DEBUG_CORE = 0' if no debug core is found in the system.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.fpu_present
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query if SOPC system has FPU present. If true ignores export of 'ALT_CFLAGS += -mhard-float' to public.mk if FPU is found in the system. If true ignores export of 'ALT_CFLAGS += -mhard-soft' if FPU is not found in the system.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.hardware_divide_present
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query if SOPC system has hardware divide present. If true ignores export of 'ALT_CFLAGS += -mno-hw-div' to public.mk if no division is found in system. If true ignores export of 'ALT_CFLAGS += -mhw-div' if division is found in the system.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.hardware_fp_cust_inst_divider_present
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query if SOPC system floating point custom instruction with a divider is present. If true ignores export of 'ALT_CFLAGS += -mcustom-fpu-cfg=60-2' and 'ALT_LDFLAGS += -mcustom-fpu-cfg=60-2' to public.mk if the custom instruction is found in the system.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.hardware_fp_cust_inst_no_divider_present
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query if SOPC system floating point custom instruction without a divider is present. If true ignores export of 'ALT_CFLAGS += -mcustom-fpu-cfg=60-1' and 'ALT_LDFLAGS += -mcustom-fpu-cfg=60-1' to public.mk if the custom instruction is found in the system.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.hardware_multiplier_present
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query if SOPC system has multiplier present. If true ignores export of 'ALT_CFLAGS += -mno-hw-mul' to public.mk if no multiplier is found in the system. If true ignores export of 'ALT_CFLAGS += -mhw-mul' if multiplier is found in the system.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.hardware_mulx_present
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query if SOPC system has hardware mulx present. If true ignores export of 'ALT_CFLAGS += -mno-hw-mulx' to public.mk if no mulx is found in the system. If true ignores export of 'ALT_CFLAGS += -mhw-mulx' if mulx is found in the system.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.sopc_simulation_enabled
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query if SOPC system has simulation enabled. If true ignores export of 'ELF_PATCH_FLAG += --simulation_enabled' to public.mk.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.sopc_system_base_address
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query SOPC system for system ID base address. If true ignores export of 'SOPC_SYSID_FLAG += --sidp=<address>' and 'ELF_PATCH_FLAG += --sidp=<address>' to public.mk.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.sopc_system_id
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query SOPC system for system ID. If true ignores export of 'SOPC_SYSID_FLAG += --id=<sysid>' and 'ELF_PATCH_FLAG += --id=<sysid>' to public.mk.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.sopc_system_timestamp
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query SOPC system for system timestamp. If true ignores export of 'SOPC_SYSID_FLAG += --timestamp=<timestamp>' and 'ELF_PATCH_FLAG += --timestamp=<timestamp>' to public.mk.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.rm
Identifier:RM
Default Value:rm -f
Value:rm -f
Type:UnquotedString
Destination:makefile_variable
Description:Command used to remove files during 'clean' target.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.max_file_descriptors
Identifier:ALT_MAX_FD
Default Value:32
Value:4
Type:DecimalNumber
Destination:system_h_define
Description:Determines the number of file descriptors statically allocated. This setting defines the value of ALT_MAX_FD in system.h.
Restrictions:If hal.enable_lightweight_device_driver_api is true, there are no file descriptors so this setting is ignored. If hal.enable_lightweight_device_driver_api is false, this setting must be at least 4 because HAL needs a file descriptor for /dev/null, /dev/stdin, /dev/stdout, and /dev/stderr.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.stderr
Identifier:NONE
Default Value:none
Value:jtag_uart
Type:UnquotedString
Destination:system_h_define
Description:Slave descriptor of STDERR character-mode device. This setting is used by the ALT_STDERR family of defines in system.h.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.stdin
Identifier:NONE
Default Value:none
Value:jtag_uart
Type:UnquotedString
Destination:system_h_define
Description:Slave descriptor of STDIN character-mode device. This setting is used by the ALT_STDIN family of defines in system.h.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.stdout
Identifier:NONE
Default Value:none
Value:jtag_uart
Type:UnquotedString
Destination:system_h_define
Description:Slave descriptor of STDOUT character-mode device. This setting is used by the ALT_STDOUT family of defines in system.h.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.sys_clk_timer
Identifier:ALT_SYS_CLK
Default Value:none
Value:none
Type:UnquotedString
Destination:system_h_define
Description:Slave descriptor of the system clock timer device. This device provides a periodic interrupt ("tick") and is typically required for RTOS use. This setting defines the value of ALT_SYS_CLK in system.h.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.timestamp_timer
Identifier:ALT_TIMESTAMP_CLK
Default Value:none
Value:none
Type:UnquotedString
Destination:system_h_define
Description:Slave descriptor of timestamp timer device. This device is used by Altera HAL timestamp drivers for high-resolution time measurement. This setting defines the value of ALT_TIMESTAMP_CLK in system.h.
Restrictions:none
+
+
+
+ + diff --git a/software/qsys_tutorial_key3_bsp/system.h b/software/qsys_tutorial_key3_bsp/system.h new file mode 100644 index 0000000..aacf072 --- /dev/null +++ b/software/qsys_tutorial_key3_bsp/system.h @@ -0,0 +1,332 @@ +/* + * system.h - SOPC Builder system and BSP software package information + * + * Machine generated for CPU 'nios2_processor' in SOPC Builder design 'nios_system' + * SOPC Builder design path: C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.sopcinfo + * + * Generated: Thu Nov 10 10:49:51 JST 2016 + */ + +/* + * DO NOT MODIFY THIS FILE + * + * Changing this file will have subtle consequences + * which will almost certainly lead to a nonfunctioning + * system. If you do modify this file, be aware that your + * changes will be overwritten and lost when this file + * is generated again. + * + * DO NOT MODIFY THIS FILE + */ + +/* + * License Agreement + * + * Copyright (c) 2008 + * Altera Corporation, San Jose, California, USA. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + * This agreement shall be governed in all respects by the laws of the State + * of California and by the laws of the United States of America. + */ + +#ifndef __SYSTEM_H_ +#define __SYSTEM_H_ + +/* Include definitions from linker script generator */ +#include "linker.h" + + +/* + * CPU configuration + * + */ + +#define ALT_CPU_ARCHITECTURE "altera_nios2_qsys" +#define ALT_CPU_BIG_ENDIAN 0 +#define ALT_CPU_BREAK_ADDR 0x1820 +#define ALT_CPU_CPU_FREQ 50000000u +#define ALT_CPU_CPU_ID_SIZE 1 +#define ALT_CPU_CPU_ID_VALUE 0x00000000 +#define ALT_CPU_CPU_IMPLEMENTATION "tiny" +#define ALT_CPU_DATA_ADDR_WIDTH 0xe +#define ALT_CPU_DCACHE_LINE_SIZE 0 +#define ALT_CPU_DCACHE_LINE_SIZE_LOG2 0 +#define ALT_CPU_DCACHE_SIZE 0 +#define ALT_CPU_EXCEPTION_ADDR 0x20 +#define ALT_CPU_FLUSHDA_SUPPORTED +#define ALT_CPU_FREQ 50000000 +#define ALT_CPU_HARDWARE_DIVIDE_PRESENT 0 +#define ALT_CPU_HARDWARE_MULTIPLY_PRESENT 0 +#define ALT_CPU_HARDWARE_MULX_PRESENT 0 +#define ALT_CPU_HAS_DEBUG_CORE 1 +#define ALT_CPU_HAS_DEBUG_STUB +#define ALT_CPU_HAS_JMPI_INSTRUCTION +#define ALT_CPU_ICACHE_LINE_SIZE 0 +#define ALT_CPU_ICACHE_LINE_SIZE_LOG2 0 +#define ALT_CPU_ICACHE_SIZE 0 +#define ALT_CPU_INST_ADDR_WIDTH 0xd +#define ALT_CPU_NAME "nios2_processor" +#define ALT_CPU_RESET_ADDR 0x0 + + +/* + * CPU configuration (with legacy prefix - don't use these anymore) + * + */ + +#define NIOS2_BIG_ENDIAN 0 +#define NIOS2_BREAK_ADDR 0x1820 +#define NIOS2_CPU_FREQ 50000000u +#define NIOS2_CPU_ID_SIZE 1 +#define NIOS2_CPU_ID_VALUE 0x00000000 +#define NIOS2_CPU_IMPLEMENTATION "tiny" +#define NIOS2_DATA_ADDR_WIDTH 0xe +#define NIOS2_DCACHE_LINE_SIZE 0 +#define NIOS2_DCACHE_LINE_SIZE_LOG2 0 +#define NIOS2_DCACHE_SIZE 0 +#define NIOS2_EXCEPTION_ADDR 0x20 +#define NIOS2_FLUSHDA_SUPPORTED +#define NIOS2_HARDWARE_DIVIDE_PRESENT 0 +#define NIOS2_HARDWARE_MULTIPLY_PRESENT 0 +#define NIOS2_HARDWARE_MULX_PRESENT 0 +#define NIOS2_HAS_DEBUG_CORE 1 +#define NIOS2_HAS_DEBUG_STUB +#define NIOS2_HAS_JMPI_INSTRUCTION +#define NIOS2_ICACHE_LINE_SIZE 0 +#define NIOS2_ICACHE_LINE_SIZE_LOG2 0 +#define NIOS2_ICACHE_SIZE 0 +#define NIOS2_INST_ADDR_WIDTH 0xd +#define NIOS2_RESET_ADDR 0x0 + + +/* + * Define for each module class mastered by the CPU + * + */ + +#define __ALTERA_AVALON_JTAG_UART +#define __ALTERA_AVALON_ONCHIP_MEMORY2 +#define __ALTERA_AVALON_PIO +#define __ALTERA_NIOS2_QSYS + + +/* + * LEDRs configuration + * + */ + +#define ALT_MODULE_CLASS_LEDRs altera_avalon_pio +#define LEDRS_BASE 0x2020 +#define LEDRS_BIT_CLEARING_EDGE_REGISTER 0 +#define LEDRS_BIT_MODIFYING_OUTPUT_REGISTER 0 +#define LEDRS_CAPTURE 0 +#define LEDRS_DATA_WIDTH 18 +#define LEDRS_DO_TEST_BENCH_WIRING 0 +#define LEDRS_DRIVEN_SIM_VALUE 0 +#define LEDRS_EDGE_TYPE "NONE" +#define LEDRS_FREQ 50000000 +#define LEDRS_HAS_IN 0 +#define LEDRS_HAS_OUT 1 +#define LEDRS_HAS_TRI 0 +#define LEDRS_IRQ -1 +#define LEDRS_IRQ_INTERRUPT_CONTROLLER_ID -1 +#define LEDRS_IRQ_TYPE "NONE" +#define LEDRS_NAME "/dev/LEDRs" +#define LEDRS_RESET_VALUE 0 +#define LEDRS_SPAN 16 +#define LEDRS_TYPE "altera_avalon_pio" + + +/* + * LEDs configuration + * + */ + +#define ALT_MODULE_CLASS_LEDs altera_avalon_pio +#define LEDS_BASE 0x2030 +#define LEDS_BIT_CLEARING_EDGE_REGISTER 0 +#define LEDS_BIT_MODIFYING_OUTPUT_REGISTER 0 +#define LEDS_CAPTURE 0 +#define LEDS_DATA_WIDTH 8 +#define LEDS_DO_TEST_BENCH_WIRING 0 +#define LEDS_DRIVEN_SIM_VALUE 0 +#define LEDS_EDGE_TYPE "NONE" +#define LEDS_FREQ 50000000 +#define LEDS_HAS_IN 0 +#define LEDS_HAS_OUT 1 +#define LEDS_HAS_TRI 0 +#define LEDS_IRQ -1 +#define LEDS_IRQ_INTERRUPT_CONTROLLER_ID -1 +#define LEDS_IRQ_TYPE "NONE" +#define LEDS_NAME "/dev/LEDs" +#define LEDS_RESET_VALUE 0 +#define LEDS_SPAN 16 +#define LEDS_TYPE "altera_avalon_pio" + + +/* + * System configuration + * + */ + +#define ALT_DEVICE_FAMILY "Cyclone IV E" +#define ALT_ENHANCED_INTERRUPT_API_PRESENT +#define ALT_IRQ_BASE NULL +#define ALT_LOG_PORT "/dev/null" +#define ALT_LOG_PORT_BASE 0x0 +#define ALT_LOG_PORT_DEV null +#define ALT_LOG_PORT_TYPE "" +#define ALT_NUM_EXTERNAL_INTERRUPT_CONTROLLERS 0 +#define ALT_NUM_INTERNAL_INTERRUPT_CONTROLLERS 1 +#define ALT_NUM_INTERRUPT_CONTROLLERS 1 +#define ALT_STDERR "/dev/jtag_uart" +#define ALT_STDERR_BASE 0x2040 +#define ALT_STDERR_DEV jtag_uart +#define ALT_STDERR_IS_JTAG_UART +#define ALT_STDERR_PRESENT +#define ALT_STDERR_TYPE "altera_avalon_jtag_uart" +#define ALT_STDIN "/dev/jtag_uart" +#define ALT_STDIN_BASE 0x2040 +#define ALT_STDIN_DEV jtag_uart +#define ALT_STDIN_IS_JTAG_UART +#define ALT_STDIN_PRESENT +#define ALT_STDIN_TYPE "altera_avalon_jtag_uart" +#define ALT_STDOUT "/dev/jtag_uart" +#define ALT_STDOUT_BASE 0x2040 +#define ALT_STDOUT_DEV jtag_uart +#define ALT_STDOUT_IS_JTAG_UART +#define ALT_STDOUT_PRESENT +#define ALT_STDOUT_TYPE "altera_avalon_jtag_uart" +#define ALT_SYSTEM_NAME "nios_system" + + +/* + * hal configuration + * + */ + +#define ALT_MAX_FD 4 +#define ALT_SYS_CLK none +#define ALT_TIMESTAMP_CLK none + + +/* + * jtag_uart configuration + * + */ + +#define ALT_MODULE_CLASS_jtag_uart altera_avalon_jtag_uart +#define JTAG_UART_BASE 0x2040 +#define JTAG_UART_IRQ 5 +#define JTAG_UART_IRQ_INTERRUPT_CONTROLLER_ID 0 +#define JTAG_UART_NAME "/dev/jtag_uart" +#define JTAG_UART_READ_DEPTH 64 +#define JTAG_UART_READ_THRESHOLD 8 +#define JTAG_UART_SPAN 8 +#define JTAG_UART_TYPE "altera_avalon_jtag_uart" +#define JTAG_UART_WRITE_DEPTH 64 +#define JTAG_UART_WRITE_THRESHOLD 8 + + +/* + * onchip_memory configuration + * + */ + +#define ALT_MODULE_CLASS_onchip_memory altera_avalon_onchip_memory2 +#define ONCHIP_MEMORY_ALLOW_IN_SYSTEM_MEMORY_CONTENT_EDITOR 0 +#define ONCHIP_MEMORY_ALLOW_MRAM_SIM_CONTENTS_ONLY_FILE 0 +#define ONCHIP_MEMORY_BASE 0x0 +#define ONCHIP_MEMORY_CONTENTS_INFO "" +#define ONCHIP_MEMORY_DUAL_PORT 0 +#define ONCHIP_MEMORY_GUI_RAM_BLOCK_TYPE "AUTO" +#define ONCHIP_MEMORY_INIT_CONTENTS_FILE "nios_system_onchip_memory" +#define ONCHIP_MEMORY_INIT_MEM_CONTENT 1 +#define ONCHIP_MEMORY_INSTANCE_ID "NONE" +#define ONCHIP_MEMORY_IRQ -1 +#define ONCHIP_MEMORY_IRQ_INTERRUPT_CONTROLLER_ID -1 +#define ONCHIP_MEMORY_NAME "/dev/onchip_memory" +#define ONCHIP_MEMORY_NON_DEFAULT_INIT_FILE_ENABLED 0 +#define ONCHIP_MEMORY_RAM_BLOCK_TYPE "AUTO" +#define ONCHIP_MEMORY_READ_DURING_WRITE_MODE "DONT_CARE" +#define ONCHIP_MEMORY_SINGLE_CLOCK_OP 0 +#define ONCHIP_MEMORY_SIZE_MULTIPLE 1 +#define ONCHIP_MEMORY_SIZE_VALUE 4096 +#define ONCHIP_MEMORY_SPAN 4096 +#define ONCHIP_MEMORY_TYPE "altera_avalon_onchip_memory2" +#define ONCHIP_MEMORY_WRITABLE 1 + + +/* + * push_switches configuration + * + */ + +#define ALT_MODULE_CLASS_push_switches altera_avalon_pio +#define PUSH_SWITCHES_BASE 0x2000 +#define PUSH_SWITCHES_BIT_CLEARING_EDGE_REGISTER 0 +#define PUSH_SWITCHES_BIT_MODIFYING_OUTPUT_REGISTER 0 +#define PUSH_SWITCHES_CAPTURE 0 +#define PUSH_SWITCHES_DATA_WIDTH 3 +#define PUSH_SWITCHES_DO_TEST_BENCH_WIRING 0 +#define PUSH_SWITCHES_DRIVEN_SIM_VALUE 0 +#define PUSH_SWITCHES_EDGE_TYPE "NONE" +#define PUSH_SWITCHES_FREQ 50000000 +#define PUSH_SWITCHES_HAS_IN 1 +#define PUSH_SWITCHES_HAS_OUT 0 +#define PUSH_SWITCHES_HAS_TRI 0 +#define PUSH_SWITCHES_IRQ -1 +#define PUSH_SWITCHES_IRQ_INTERRUPT_CONTROLLER_ID -1 +#define PUSH_SWITCHES_IRQ_TYPE "NONE" +#define PUSH_SWITCHES_NAME "/dev/push_switches" +#define PUSH_SWITCHES_RESET_VALUE 0 +#define PUSH_SWITCHES_SPAN 16 +#define PUSH_SWITCHES_TYPE "altera_avalon_pio" + + +/* + * switches configuration + * + */ + +#define ALT_MODULE_CLASS_switches altera_avalon_pio +#define SWITCHES_BASE 0x2010 +#define SWITCHES_BIT_CLEARING_EDGE_REGISTER 0 +#define SWITCHES_BIT_MODIFYING_OUTPUT_REGISTER 0 +#define SWITCHES_CAPTURE 0 +#define SWITCHES_DATA_WIDTH 18 +#define SWITCHES_DO_TEST_BENCH_WIRING 0 +#define SWITCHES_DRIVEN_SIM_VALUE 0 +#define SWITCHES_EDGE_TYPE "NONE" +#define SWITCHES_FREQ 50000000 +#define SWITCHES_HAS_IN 1 +#define SWITCHES_HAS_OUT 0 +#define SWITCHES_HAS_TRI 0 +#define SWITCHES_IRQ -1 +#define SWITCHES_IRQ_INTERRUPT_CONTROLLER_ID -1 +#define SWITCHES_IRQ_TYPE "NONE" +#define SWITCHES_NAME "/dev/switches" +#define SWITCHES_RESET_VALUE 0 +#define SWITCHES_SPAN 16 +#define SWITCHES_TYPE "altera_avalon_pio" + +#endif /* __SYSTEM_H_ */ diff --git a/software/qsys_tutorial_lcd/.cproject b/software/qsys_tutorial_lcd/.cproject new file mode 100644 index 0000000..1061b2a --- /dev/null +++ b/software/qsys_tutorial_lcd/.cproject @@ -0,0 +1,508 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + make + + mem_init_install + true + false + false + + + make + + mem_init_generate + true + false + false + + + make + + help + true + false + false + + + + diff --git a/software/qsys_tutorial_lcd/.project b/software/qsys_tutorial_lcd/.project new file mode 100644 index 0000000..3c212ad --- /dev/null +++ b/software/qsys_tutorial_lcd/.project @@ -0,0 +1,96 @@ + + + qsys_tutorial_lcd + + + + + + com.altera.sbtgui.project.makefileBuilder + + + + + com.altera.sbtgui.project.makefileBuilder + + + + + org.eclipse.cdt.managedbuilder.core.genmakebuilder + clean,full,incremental, + + + ?name? + + + + org.eclipse.cdt.make.core.append_environment + true + + + org.eclipse.cdt.make.core.autoBuildTarget + all + + + org.eclipse.cdt.make.core.buildArguments + + + + org.eclipse.cdt.make.core.buildCommand + make + + + org.eclipse.cdt.make.core.buildLocation + ${workspace_loc://qsys_tutorial_lcd} + + + org.eclipse.cdt.make.core.cleanBuildTarget + clean + + + org.eclipse.cdt.make.core.contents + org.eclipse.cdt.make.core.activeConfigSettings + + + org.eclipse.cdt.make.core.enableAutoBuild + false + + + org.eclipse.cdt.make.core.enableCleanBuild + true + + + org.eclipse.cdt.make.core.enableFullBuild + true + + + org.eclipse.cdt.make.core.fullBuildTarget + all + + + org.eclipse.cdt.make.core.stopOnError + true + + + org.eclipse.cdt.make.core.useDefaultBuildCmd + true + + + + + org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder + full,incremental, + + + + + + org.eclipse.cdt.core.cnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.managedbuilder.core.ScannerConfigNature + org.eclipse.cdt.core.ccnature + com.altera.sbtgui.project.SBTGUINature + com.altera.sbtgui.project.SBTGUIAppNature + com.altera.sbtgui.project.SBTGUIManagedNature + + diff --git a/software/qsys_tutorial_lcd/LCD.c b/software/qsys_tutorial_lcd/LCD.c new file mode 100644 index 0000000..5804ed6 --- /dev/null +++ b/software/qsys_tutorial_lcd/LCD.c @@ -0,0 +1,50 @@ +#include +#include +#include +#include "system.h" +#include "LCD.h" +//------------------------------------------------------------------------- +void LCD_Init() +{ + lcd_write_cmd(LCD_16207_0_BASE,0x38); + usleep(2000); + lcd_write_cmd(LCD_16207_0_BASE,0x0C); + usleep(2000); + lcd_write_cmd(LCD_16207_0_BASE,0x01); + usleep(2000); + lcd_write_cmd(LCD_16207_0_BASE,0x06); + usleep(2000); + lcd_write_cmd(LCD_16207_0_BASE,0x80); + usleep(2000); +} +//------------------------------------------------------------------------- +void LCD_Show_Text(char* Text) +{ + int i; + for(i=0;i /c/dir). This will ensture +# paths are readable by GNU Make. +# +# If COMSPEC/ComSpec is not defined, Make is launched from linux, and no +# adjustment is necessary +# +#------------------------------------------------------------------------------ + +ifndef COMSPEC +ifdef ComSpec +COMSPEC = $(ComSpec) +endif # ComSpec +endif # COMSPEC + +ifdef COMSPEC # if Windows OS + +ifeq ($(MAKE_VERSION),3.81) +# +# adjust-path/adjust-path-mixed for Mingw Gnu Make on Windows +# +# Example Usage: +# $(call adjust-path,c:/aaa/bbb) => /c/aaa/bbb +# $(call adjust-path-mixed,/c/aaa/bbb) => c:/aaa/bbb +# $(call adjust-path-mixed,/cygdrive/c/aaa/bbb) => c:/aaa/bbb +# + +# +# adjust-path +# - converts back slash characters into forward slashes +# - if input arg ($1) is an empty string then return the empty string +# - if input arg ($1) does not contain the string ":/", then return input arg +# - using sed, convert mixed path [c:/...] into mingw path [/c/...] +define adjust-path +$(strip \ +$(if $1,\ +$(if $(findstring :/,$(subst \,/,$1)),\ +$(shell echo $(subst \,/,$1) | sed -e 's,^\([a-zA-Z]\):/,/\1/,'),\ +$(subst \,/,$1)))) +endef + +# +# adjust-path-mixed +# - converts back slash characters into forward slashes +# - if input arg ($1) is an empty string then return the empty string +# - if input arg ($1) does not begin with a forward slash '/' char, then +# return input arg +# - using sed, convert mingw path [/c/...] or cygwin path [/c/cygdrive/...] +# into a mixed path [c:/...] +define adjust-path-mixed +$(strip \ +$(if $1,\ +$(if $(findstring $(subst \,/,$1),$(patsubst /%,%,$(subst \,/,$1))),\ +$(subst \,/,$1),\ +$(shell echo $(subst \,/,$1) | sed -e 's,^/cygdrive/\([a-zA-Z]\)/,\1:/,' -e 's,^/\([a-zA-Z]\)/,\1:/,')))) +endef + +else # MAKE_VERSION != 3.81 (MAKE_VERSION == 3.80 or MAKE_VERSION == 3.79) +# +# adjust-path for Cygwin Gnu Make +# $(call adjust-path,c:/aaa/bbb) = /cygdrive/c/aaa/bbb +# $(call adjust-path-mixed,/cygdrive/c/aaa/bbb) = c:/aaa/bbb +# +adjust-path = $(if $1,$(shell cygpath -u "$1"),) +adjust-path-mixed = $(if $1,$(shell cygpath -m "$1"),) +endif + +else # !COMSPEC + +adjust-path = $1 +adjust-path-mixed = $1 + +endif # COMSPEC + + +#vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv +# GENERATED SETTINGS START v +#vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv + +#START GENERATED +ACTIVE_BUILD_CONFIG := default +BUILD_CONFIGS := default + +# The following TYPE comment allows tools to identify the 'type' of target this +# makefile is associated with. +# TYPE: APP_MAKEFILE + +# This following VERSION comment indicates the version of the tool used to +# generate this makefile. A makefile variable is provided for VERSION as well. +# ACDS_VERSION: 13.0sp1 +ACDS_VERSION := 13.0sp1 + +# This following BUILD_NUMBER comment indicates the build number of the tool +# used to generate this makefile. +# BUILD_NUMBER: 232 + +# Define path to the application ELF. +# It may be used by the makefile fragments so is defined before including them. +# +ELF := qsys_tutorial_lcd.elf + +# Paths to C, C++, and assembly source files. +C_SRCS += hello_world_small.c +C_SRCS += hex_encoder.c +C_SRCS += hex_out.c +C_SRCS += input_int.c +C_SRCS += inst_decoder.c +C_SRCS += sys_memory.c +C_SRCS += sys_register.c +C_SRCS += system.c +C_SRCS += LCD.c +CXX_SRCS := +ASM_SRCS := + + +# Path to root of object file tree. +OBJ_ROOT_DIR := obj + +# Options to control objdump. +CREATE_OBJDUMP := 1 +OBJDUMP_INCLUDE_SOURCE := 1 +OBJDUMP_FULL_CONTENTS := 0 + +# Options to enable/disable optional files. +CREATE_ELF_DERIVED_FILES := 0 +CREATE_LINKER_MAP := 1 + +# Common arguments for ALT_CFLAGSs +APP_CFLAGS_DEFINED_SYMBOLS := +APP_CFLAGS_UNDEFINED_SYMBOLS := +APP_CFLAGS_OPTIMIZATION := -Os +APP_CFLAGS_DEBUG_LEVEL := -g +APP_CFLAGS_WARNINGS := -Wall +APP_CFLAGS_USER_FLAGS := + +APP_ASFLAGS_USER := +APP_LDFLAGS_USER := + +# Linker options that have default values assigned later if not +# assigned here. +LINKER_SCRIPT := +CRT0 := +SYS_LIB := + +# Define path to the root of the BSP. +BSP_ROOT_DIR := ../qsys_tutorial_lcd_bsp/ + +# List of application specific include directories, library directories and library names +APP_INCLUDE_DIRS := +APP_LIBRARY_DIRS := +APP_LIBRARY_NAMES := + +# Pre- and post- processor settings. +BUILD_PRE_PROCESS := +BUILD_POST_PROCESS := + +QUARTUS_PROJECT_DIR := ../../ + + +#END GENERATED + +#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +# GENERATED SETTINGS END ^ +#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + +#------------------------------------------------------------------------------ +# DEFAULT TARGET +#------------------------------------------------------------------------------ + +# Define the variable used to echo output if not already defined. +ifeq ($(ECHO),) +ECHO := echo +endif + +# Put "all" rule before included makefile fragments because they may +# define rules and we don't want one of those to become the default rule. +.PHONY : all + +all: + @$(ECHO) [$(APP_NAME) build complete] + +all : build_pre_process libs app build_post_process + + +#------------------------------------------------------------------------------ +# VARIABLES DEPENDENT ON GENERATED CONTENT +#------------------------------------------------------------------------------ + +# Define object file directory per build configuration +CONFIG_OBJ_DIR := $(OBJ_ROOT_DIR)/$(ACTIVE_BUILD_CONFIG) + +ifeq ($(BSP_ROOT_DIR),) +$(error Edit Makefile and provide a value for BSP_ROOT_DIR) +endif + +ifeq ($(wildcard $(BSP_ROOT_DIR)),) +$(error BSP directory does not exist: $(BSP_ROOT_DIR)) +endif + +# Define absolute path to the root of the BSP. +ABS_BSP_ROOT_DIR := $(call adjust-path-mixed,$(shell cd "$(BSP_ROOT_DIR)"; pwd)) + +# Include makefile fragments. Define variable ALT_LIBRARY_ROOT_DIR before +# including each makefile fragment so that it knows the path to itself. +BSP_INCLUDE_FILE := $(BSP_ROOT_DIR)/public.mk +ALT_LIBRARY_ROOT_DIR := $(BSP_ROOT_DIR) +include $(BSP_INCLUDE_FILE) +# C2H will need this to touch the BSP public.mk and avoid the sopc file +# out-of-date error during a BSP make +ABS_BSP_INCLUDE_FILE := $(ABS_BSP_ROOT_DIR)/public.mk + + +ifneq ($(WARNING.SMALL_STACK_SIZE),) +# This WARNING is here to protect you from unknowingly using a very small stack +# If the warning is set, increase your stack size or enable the BSP small stack +# setting to eliminate the warning +$(warning WARNING: $(WARNING.SMALL_STACK_SIZE)) +endif + + +# If the BSP public.mk indicates that ALT_SIM_OPTIMIZE is set, rename the ELF +# by prefixing it with RUN_ON_HDL_SIMULATOR_ONLY_. +ifneq ($(filter -DALT_SIM_OPTIMIZE,$(ALT_CPPFLAGS)),) +ELF := RUN_ON_HDL_SIMULATOR_ONLY_$(ELF) +endif + +# If the BSP public.mk indicates that ALT_PROVIDE_GMON is set, add option to +# download_elf target +ifneq ($(filter -DALT_PROVIDE_GMON,$(ALT_CPPFLAGS)),) +GMON_OUT_FILENAME := gmon.out +WRITE_GMON_OPTION := --write-gmon $(GMON_OUT_FILENAME) +endif + +# Name of ELF application. +APP_NAME := $(basename $(ELF)) + +# Set to defaults if variables not already defined in settings. +ifeq ($(LINKER_SCRIPT),) +LINKER_SCRIPT := $(BSP_LINKER_SCRIPT) +endif +ifeq ($(CRT0),) +CRT0 := $(BSP_CRT0) +endif +ifeq ($(SYS_LIB),) +SYS_LIB := $(BSP_SYS_LIB) +endif + +OBJDUMP_NAME := $(APP_NAME).objdump +OBJDUMP_FLAGS := --disassemble --syms --all-header +ifeq ($(OBJDUMP_INCLUDE_SOURCE),1) +OBJDUMP_FLAGS += --source +endif +ifeq ($(OBJDUMP_FULL_CONTENTS),1) +OBJDUMP_FLAGS += --full-contents +endif + +# Create list of linker dependencies (*.a files). +APP_LDDEPS := $(ALT_LDDEPS) $(LDDEPS) + +# Take lists and add required prefixes. +APP_INC_DIRS := $(addprefix -I, $(ALT_INCLUDE_DIRS) $(APP_INCLUDE_DIRS) $(INC_DIRS)) +ASM_INC_PREFIX := -Wa,-I +APP_ASM_INC_DIRS := $(addprefix $(ASM_INC_PREFIX), $(ALT_INCLUDE_DIRS) $(APP_INCLUDE_DIRS) $(INC_DIRS)) +APP_LIB_DIRS := $(addprefix -L, $(ALT_LIBRARY_DIRS) $(APP_LIBRARY_DIRS) $(LIB_DIRS)) +APP_LIBS := $(addprefix -l, $(ALT_LIBRARY_NAMES) $(APP_LIBRARY_NAMES) $(LIBS)) + +ifneq ($(AVOID_NIOS2_GCC3_OPTIONS),) + +# +# Avoid Nios II GCC 3.X options. +# + +# Detect if small newlib C library is requested. +# If yes, remove the -msmallc option because it is +# now handled by other means. +ifneq ($(filter -msmallc,$(ALT_LDFLAGS)),) + ALT_LDFLAGS := $(filter-out -msmallc,$(ALT_LDFLAGS)) + ALT_C_LIBRARY := smallc +else + ALT_C_LIBRARY := c +endif + +# Put each BSP dependent library in a group to avoid circular dependencies. +APP_BSP_DEP_LIBS := $(foreach l,$(ALT_BSP_DEP_LIBRARY_NAMES),-Wl,--start-group -l$(ALT_C_LIBRARY) -lgcc -l$(l) -Wl,--end-group) + +else # !AVOID_NIOS2_GCC3_OPTIONS + +# +# Use Nios II GCC 3.X options. +# +APP_BSP_DEP_LIBS := $(addprefix -msys-lib=, $(ALT_BSP_DEP_LIBRARY_NAMES)) + +endif # !AVOID_NIOS2_GCC3_OPTIONS + +# Arguments for the C preprocessor, C/C++ compiler, assembler, and linker. +APP_CFLAGS := $(APP_CFLAGS_DEFINED_SYMBOLS) \ + $(APP_CFLAGS_UNDEFINED_SYMBOLS) \ + $(APP_CFLAGS_OPTIMIZATION) \ + $(APP_CFLAGS_DEBUG_LEVEL) \ + $(APP_CFLAGS_WARNINGS) \ + $(APP_CFLAGS_USER_FLAGS) \ + $(ALT_CFLAGS) \ + $(CFLAGS) + +# Arguments only for the C++ compiler. +APP_CXXFLAGS := $(ALT_CXXFLAGS) $(CXXFLAGS) + +# Arguments only for the C preprocessor. +# Prefix each include directory with -I. +APP_CPPFLAGS := $(APP_INC_DIRS) \ + $(ALT_CPPFLAGS) \ + $(CPPFLAGS) + +# Arguments only for the assembler. +APP_ASFLAGS := $(APP_ASM_INC_DIRS) \ + $(ALT_ASFLAGS) \ + $(APP_ASFLAGS_USER) \ + $(ASFLAGS) + +# Arguments only for the linker. +APP_LDFLAGS := $(APP_LDFLAGS_USER) + +ifneq ($(LINKER_SCRIPT),) +APP_LDFLAGS += -T'$(LINKER_SCRIPT)' +endif + +ifneq ($(AVOID_NIOS2_GCC3_OPTIONS),) + +# Avoid Nios II GCC 3.x options. +ifneq ($(CRT0),) +APP_LDFLAGS += $(CRT0) +endif + +# The equivalent of the -msys-lib option is provided +# by the GROUP() command in the linker script. +# Note this means the SYS_LIB variable is now ignored. + +else # !AVOID_NIOS2_GCC3_OPTIONS + +# Use Nios II GCC 3.x options. +ifneq ($(CRT0),) +APP_LDFLAGS += -msys-crt0='$(CRT0)' +endif +ifneq ($(SYS_LIB),) +APP_LDFLAGS += -msys-lib=$(SYS_LIB) +endif + +endif # !AVOID_NIOS2_GCC3_OPTIONS + +APP_LDFLAGS += \ + $(APP_LIB_DIRS) \ + $(ALT_LDFLAGS) \ + $(LDFLAGS) + +LINKER_MAP_NAME := $(APP_NAME).map +ifeq ($(CREATE_LINKER_MAP), 1) +APP_LDFLAGS += -Wl,-Map=$(LINKER_MAP_NAME) +endif + +# QUARTUS_PROJECT_DIR and SOPC_NAME need to be defined if you want the +# mem_init_install target of the mem_init.mk (located in the associated BSP) +# to know how to copy memory initialization files (e.g. .dat, .hex) into +# directories required for Quartus compilation or RTL simulation. + +# Defining QUARTUS_PROJECT_DIR causes mem_init_install to copy memory +# initialization files into your Quartus project directory. This is required +# to provide the initial memory contents of FPGA memories that can be +# initialized by the programming file (.sof) or Hardcopy ROMs. It is also used +# for VHDL simulation of on-chip memories. + +# Defining SOPC_NAME causes the mem_init_install target to copy memory +# initialization files into your RTL simulation directory. This is required +# to provide the initial memory contents of all memories that can be +# initialized by RTL simulation. This variable should be set to the same name +# as your SOPC Builder system name. For example, if you have a system called +# "foo.sopc", this variable should be set to "foo". + +# If SOPC_NAME is not set and QUARTUS_PROJECT_DIR is set, then derive SOPC_NAME. +ifeq ($(SOPC_NAME),) +ifneq ($(QUARTUS_PROJECT_DIR),) +SOPC_NAME := $(basename $(notdir $(wildcard $(QUARTUS_PROJECT_DIR)/*.sopcinfo))) +endif +endif + +# Defining JDI_FILE is required to specify the JTAG Debug Information File +# path. This file is generated by Quartus, and is needed along with the +# .sopcinfo file to resolve processor instance ID's from names in a multi-CPU +# systems. For multi-CPU systems, the processor instance ID is used to select +# from multiple CPU's during ELF download. + +# Both JDI_FILE and SOPCINFO_FILE are provided by the BSP if they found during +# BSP creation. If JDI_FILE is not set and QUARTUS_PROJECT_DIR is set, then +# derive JDI_FILE. We do not attempt to derive SOPCINFO_FILE since there may be +# multiple .sopcinfo files in a Quartus project. +ifeq ($(JDI_FILE),) +ifneq ($(QUARTUS_PROJECT_DIR),) +JDI_FILE := $(wildcard $(QUARTUS_PROJECT_DIR)/*.jdi) +endif +endif + +# Path to root runtime directory used for hdl simulation +RUNTIME_ROOT_DIR := $(CONFIG_OBJ_DIR)/runtime + + + +#------------------------------------------------------------------------------ +# MAKEFILE INCLUDES DEPENDENT ON GENERATED CONTENT +#------------------------------------------------------------------------------ +# mem_init.mk is a generated makefile fragment. This file defines all targets +# used to generate HDL initialization simulation files and pre-initialized +# onchip memory files. +MEM_INIT_FILE := $(BSP_ROOT_DIR)/mem_init.mk +include $(MEM_INIT_FILE) + +# Create list of object files to be built using the list of source files. +# The source file hierarchy is preserved in the object tree. +# The supported file extensions are: +# +# .c - for C files +# .cxx .cc .cpp - for C++ files +# .S .s - for assembler files +# +# Handle source files specified by --src-dir & --src-rdir differently, to +# save some processing time in calling the adjust-path macro. + +OBJ_LIST_C := $(patsubst %.c,%.o,$(filter %.c,$(C_SRCS))) +OBJ_LIST_CPP := $(patsubst %.cpp,%.o,$(filter %.cpp,$(CXX_SRCS))) +OBJ_LIST_CXX := $(patsubst %.cxx,%.o,$(filter %.cxx,$(CXX_SRCS))) +OBJ_LIST_CC := $(patsubst %.cc,%.o,$(filter %.cc,$(CXX_SRCS))) +OBJ_LIST_S := $(patsubst %.S,%.o,$(filter %.S,$(ASM_SRCS))) +OBJ_LIST_SS := $(patsubst %.s,%.o,$(filter %.s,$(ASM_SRCS))) + +OBJ_LIST := $(sort $(OBJ_LIST_C) $(OBJ_LIST_CPP) $(OBJ_LIST_CXX) \ + $(OBJ_LIST_CC) $(OBJ_LIST_S) $(OBJ_LIST_SS)) + +SDIR_OBJ_LIST_C := $(patsubst %.c,%.o,$(filter %.c,$(SDIR_C_SRCS))) +SDIR_OBJ_LIST_CPP := $(patsubst %.cpp,%.o,$(filter %.cpp,$(SDIR_CXX_SRCS))) +SDIR_OBJ_LIST_CXX := $(patsubst %.cxx,%.o,$(filter %.cxx,$(SDIR_CXX_SRCS))) +SDIR_OBJ_LIST_CC := $(patsubst %.cc,%.o,$(filter %.cc,$(SDIR_CXX_SRCS))) +SDIR_OBJ_LIST_S := $(patsubst %.S,%.o,$(filter %.S,$(SDIR_ASM_SRCS))) +SDIR_OBJ_LIST_SS := $(patsubst %.s,%.o,$(filter %.s,$(SDIR_ASM_SRCS))) + +SDIR_OBJ_LIST := $(sort $(SDIR_OBJ_LIST_C) $(SDIR_OBJ_LIST_CPP) \ + $(SDIR_OBJ_LIST_CXX) $(SDIR_OBJ_LIST_CC) $(SDIR_OBJ_LIST_S) \ + $(SDIR_OBJ_LIST_SS)) + +# Relative-pathed objects that being with "../" are handled differently. +# +# Regular objects are created as +# $(CONFIG_OBJ_DIR)//.o +# where the path structure is maintained under the obj directory. This +# applies for both absolute and relative paths; in the absolute path +# case this means the entire source path will be recreated under the obj +# directory. This is done to allow two source files with the same name +# to be included as part of the project. +# +# Note: On Cygwin, the path recreated under the obj directory will be +# the cygpath -u output path. +# +# Relative-path objects that begin with "../" cause problems under this +# scheme, as $(CONFIG_OBJ_DIR)/..// can potentially put the object +# files anywhere in the system, creating clutter and polluting the source tree. +# As such, their paths are flattened - the object file created will be +# $(CONFIG_OBJ_DIR)/.o. Due to this, two files specified with +# "../" in the beginning cannot have the same name in the project. VPATH +# will be set for these sources to allow make to relocate the source file +# via %.o rules. +# +# The following lines separate the object list into the flatten and regular +# lists, and then handles them as appropriate. + +FLATTEN_OBJ_LIST := $(filter ../%,$(OBJ_LIST)) +FLATTEN_APP_OBJS := $(addprefix $(CONFIG_OBJ_DIR)/,$(notdir $(FLATTEN_OBJ_LIST))) + +REGULAR_OBJ_LIST := $(filter-out $(FLATTEN_OBJ_LIST),$(OBJ_LIST)) +REGULAR_OBJ_LIST_C := $(filter $(OBJ_LIST_C),$(REGULAR_OBJ_LIST)) +REGULAR_OBJ_LIST_CPP := $(filter $(OBJ_LIST_CPP),$(REGULAR_OBJ_LIST)) +REGULAR_OBJ_LIST_CXX := $(filter $(OBJ_LIST_CXX),$(REGULAR_OBJ_LIST)) +REGULAR_OBJ_LIST_CC := $(filter $(OBJ_LIST_CC),$(REGULAR_OBJ_LIST)) +REGULAR_OBJ_LIST_S := $(filter $(OBJ_LIST_S),$(REGULAR_OBJ_LIST)) +REGULAR_OBJ_LIST_SS := $(filter $(OBJ_LIST_SS),$(REGULAR_OBJ_LIST)) + +FLATTEN_SDIR_OBJ_LIST := $(filter ../%,$(SDIR_OBJ_LIST)) +FLATTEN_SDIR_APP_OBJS := $(addprefix $(CONFIG_OBJ_DIR)/,$(notdir $(FLATTEN_SDIR_OBJ_LIST))) + +REGULAR_SDIR_OBJ_LIST := $(filter-out $(FLATTEN_SDIR_OBJ_LIST),$(SDIR_OBJ_LIST)) +REGULAR_SDIR_OBJ_LIST_C := $(filter $(SDIR_OBJ_LIST_C),$(REGULAR_SDIR_OBJ_LIST)) +REGULAR_SDIR_OBJ_LIST_CPP := $(filter $(SDIR_OBJ_LIST_CPP),$(REGULAR_SDIR_OBJ_LIST)) +REGULAR_SDIR_OBJ_LIST_CXX := $(filter $(SDIR_OBJ_LIST_CXX),$(REGULAR_SDIR_OBJ_LIST)) +REGULAR_SDIR_OBJ_LIST_CC := $(filter $(SDIR_OBJ_LIST_CC),$(REGULAR_SDIR_OBJ_LIST)) +REGULAR_SDIR_OBJ_LIST_S := $(filter $(SDIR_OBJ_LIST_S),$(REGULAR_SDIR_OBJ_LIST)) +REGULAR_SDIR_OBJ_LIST_SS := $(filter $(SDIR_OBJ_LIST_SS),$(REGULAR_SDIR_OBJ_LIST)) + +VPATH := $(sort $(dir $(FLATTEN_OBJ_LIST)) $(dir $(FLATTEN_SDIR_OBJ_LIST))) + +APP_OBJS_C := $(addprefix $(CONFIG_OBJ_DIR)/,\ + $(REGULAR_SDIR_OBJ_LIST_C) \ + $(foreach s,$(REGULAR_OBJ_LIST_C),$(call adjust-path,$s))) + +APP_OBJS_CPP := $(addprefix $(CONFIG_OBJ_DIR)/,\ + $(REGULAR_SDIR_OBJ_LIST_CPP) \ + $(foreach s,$(REGULAR_OBJ_LIST_CPP),$(call adjust-path,$s))) + +APP_OBJS_CXX := $(addprefix $(CONFIG_OBJ_DIR)/,\ + $(REGULAR_SDIR_OBJ_LIST_CXX) \ + $(foreach s,$(REGULAR_OBJ_LIST_CXX),$(call adjust-path,$s))) + +APP_OBJS_CC := $(addprefix $(CONFIG_OBJ_DIR)/,\ + $(REGULAR_SDIR_OBJ_LIST_CC) \ + $(foreach s,$(REGULAR_OBJ_LIST_CC),$(call adjust-path,$s))) + +APP_OBJS_S := $(addprefix $(CONFIG_OBJ_DIR)/,\ + $(REGULAR_SDIR_OBJ_LIST_S) \ + $(foreach s,$(REGULAR_OBJ_LIST_S),$(call adjust-path,$s))) + +APP_OBJS_SS := $(addprefix $(CONFIG_OBJ_DIR)/,\ + $(REGULAR_SDIR_OBJ_LIST_SS) \ + $(foreach s,$(REGULAR_OBJ_LIST_SS),$(call adjust-path,$s))) + +APP_OBJS := $(APP_OBJS_C) $(APP_OBJS_CPP) $(APP_OBJS_CXX) $(APP_OBJS_CC) \ + $(APP_OBJS_S) $(APP_OBJS_SS) \ + $(FLATTEN_APP_OBJS) $(FLATTEN_SDIR_APP_OBJS) + +# Add any extra user-provided object files. +APP_OBJS += $(OBJS) + +# Create list of dependancy files for each object file. +APP_DEPS := $(APP_OBJS:.o=.d) + +# Patch the Elf file with system specific information + +# Patch the Elf with the name of the sopc system +ifneq ($(SOPC_NAME),) +ELF_PATCH_FLAG += --sopc_system_name $(SOPC_NAME) +endif + +# Patch the Elf with the absolute path to the Quartus Project Directory +ifneq ($(QUARTUS_PROJECT_DIR),) +ABS_QUARTUS_PROJECT_DIR := $(call adjust-path-mixed,$(shell cd "$(QUARTUS_PROJECT_DIR)"; pwd)) +ELF_PATCH_FLAG += --quartus_project_dir "$(ABS_QUARTUS_PROJECT_DIR)" +endif + +# Patch the Elf and download args with the JDI_FILE if specified +ifneq ($(wildcard $(JDI_FILE)),) +ELF_PATCH_FLAG += --jdi $(JDI_FILE) +DOWNLOAD_JDI_FLAG := --jdi $(JDI_FILE) +endif + +# Patch the Elf with the SOPCINFO_FILE if specified +ifneq ($(wildcard $(SOPCINFO_FILE)),) +ELF_PATCH_FLAG += --sopcinfo $(SOPCINFO_FILE) +endif + +# Use the DOWNLOAD_CABLE variable to specify which JTAG cable to use. +# This is not needed if you only have one cable. +ifneq ($(DOWNLOAD_CABLE),) +DOWNLOAD_CABLE_FLAG := --cable '$(DOWNLOAD_CABLE)' +endif + + +#------------------------------------------------------------------------------ +# BUILD PRE/POST PROCESS +#------------------------------------------------------------------------------ +build_pre_process : + $(BUILD_PRE_PROCESS) + +build_post_process : + $(BUILD_POST_PROCESS) + +.PHONY: build_pre_process build_post_process + + +#------------------------------------------------------------------------------ +# TOOLS +#------------------------------------------------------------------------------ + +# +# Set tool default variables if not already defined. +# If these are defined, they would typically be defined in an +# included makefile fragment. +# +ifeq ($(DEFAULT_CROSS_COMPILE),) +DEFAULT_CROSS_COMPILE := nios2-elf- +endif + +ifeq ($(DEFAULT_STACK_REPORT),) +DEFAULT_STACKREPORT := nios2-stackreport +endif + +ifeq ($(DEFAULT_DOWNLOAD),) +DEFAULT_DOWNLOAD := nios2-download +endif + +ifeq ($(DEFAULT_FLASHPROG),) +DEFAULT_FLASHPROG := nios2-flash-programmer +endif + +ifeq ($(DEFAULT_ELFPATCH),) +DEFAULT_ELFPATCH := nios2-elf-insert +endif + +ifeq ($(DEFAULT_RM),) +DEFAULT_RM := rm -f +endif + +ifeq ($(DEFAULT_CP),) +DEFAULT_CP := cp -f +endif + +ifeq ($(DEFAULT_MKDIR),) +DEFAULT_MKDIR := mkdir -p +endif + +# +# Set tool variables to defaults if not already defined. +# If these are defined, they would typically be defined by a +# setting in the generated portion of this makefile. +# +ifeq ($(CROSS_COMPILE),) +CROSS_COMPILE := $(DEFAULT_CROSS_COMPILE) +endif + +ifeq ($(origin CC),default) +CC := $(CROSS_COMPILE)gcc -xc +endif + +ifeq ($(origin CXX),default) +CXX := $(CROSS_COMPILE)gcc -xc++ +endif + +ifeq ($(origin AS),default) +AS := $(CROSS_COMPILE)gcc +endif + +ifeq ($(origin AR),default) +AR := $(CROSS_COMPILE)ar +endif + +ifeq ($(origin LD),default) +LD := $(CROSS_COMPILE)g++ +endif + +ifeq ($(origin NM),default) +NM := $(CROSS_COMPILE)nm +endif + +ifeq ($(origin RM),default) +RM := $(DEFAULT_RM) +endif + +ifeq ($(origin CP),default) +CP := $(DEFAULT_CP) +endif + +ifeq ($(OBJDUMP),) +OBJDUMP := $(CROSS_COMPILE)objdump +endif + +ifeq ($(OBJCOPY),) +OBJCOPY := $(CROSS_COMPILE)objcopy +endif + +ifeq ($(STACKREPORT),) +ifeq ($(CROSS_COMPILE),nios2-elf-) +STACKREPORT := $(DEFAULT_STACKREPORT) +else +DISABLE_STACKREPORT := 1 +endif +endif + +ifeq ($(DOWNLOAD),) +DOWNLOAD := $(DEFAULT_DOWNLOAD) +endif + +ifeq ($(FLASHPROG),) +FLASHPROG := $(DEFAULT_FLASHPROG) +endif + +ifeq ($(ELFPATCH),) +ELFPATCH := $(DEFAULT_ELFPATCH) +endif + +ifeq ($(MKDIR),) +MKDIR := $(DEFAULT_MKDIR) +endif + +#------------------------------------------------------------------------------ +# PATTERN RULES TO BUILD OBJECTS +#------------------------------------------------------------------------------ + +define compile.c +@$(ECHO) Info: Compiling $< to $@ +@$(MKDIR) $(@D) +$(CC) -MP -MMD -c $(APP_CPPFLAGS) $(APP_CFLAGS) -o $@ $< +$(CC_POST_PROCESS) +endef + +define compile.cpp +@$(ECHO) Info: Compiling $< to $@ +@$(MKDIR) $(@D) +$(CXX) -MP -MMD -c $(APP_CPPFLAGS) $(APP_CXXFLAGS) $(APP_CFLAGS) -o $@ $< +$(CXX_POST_PROCESS) +endef + +# If assembling with the compiler, ensure "-Wa," is prepended to all APP_ASFLAGS +ifeq ($(AS),$(patsubst %as,%,$(AS))) +COMMA := , +APP_ASFLAGS := $(filter-out $(APP_CFLAGS),$(addprefix -Wa$(COMMA),$(patsubst -Wa$(COMMA)%,%,$(APP_ASFLAGS)))) +endif + +define compile.s +@$(ECHO) Info: Assembling $< to $@ +@$(MKDIR) $(@D) +$(AS) -MP -MMD -c $(APP_CPPFLAGS) $(APP_CFLAGS) $(APP_ASFLAGS) -o $@ $< +$(AS_POST_PROCESS) +endef + +ifeq ($(MAKE_VERSION),3.81) +.SECONDEXPANSION: + +$(APP_OBJS_C): $(CONFIG_OBJ_DIR)/%.o: $$(call adjust-path-mixed,%.c) + $(compile.c) + +$(APP_OBJS_CPP): $(CONFIG_OBJ_DIR)/%.o: $$(call adjust-path-mixed,%.cpp) + $(compile.cpp) + +$(APP_OBJS_CC): $(CONFIG_OBJ_DIR)/%.o: $$(call adjust-path-mixed,%.cc) + $(compile.cpp) + +$(APP_OBJS_CXX): $(CONFIG_OBJ_DIR)/%.o: $$(call adjust-path-mixed,%.cxx) + $(compile.cpp) + +$(APP_OBJS_S): $(CONFIG_OBJ_DIR)/%.o: $$(call adjust-path-mixed,%.S) + $(compile.s) + +$(APP_OBJS_SS): $(CONFIG_OBJ_DIR)/%.o: $$(call adjust-path-mixed,%.s) + $(compile.s) + +endif # MAKE_VERSION != 3.81 + +$(CONFIG_OBJ_DIR)/%.o: %.c + $(compile.c) + +$(CONFIG_OBJ_DIR)/%.o: %.cpp + $(compile.cpp) + +$(CONFIG_OBJ_DIR)/%.o: %.cc + $(compile.cpp) + +$(CONFIG_OBJ_DIR)/%.o: %.cxx + $(compile.cpp) + +$(CONFIG_OBJ_DIR)/%.o: %.S + $(compile.s) + +$(CONFIG_OBJ_DIR)/%.o: %.s + $(compile.s) + + +#------------------------------------------------------------------------------ +# PATTERN RULES TO INTERMEDIATE FILES +#------------------------------------------------------------------------------ + +$(CONFIG_OBJ_DIR)/%.s: %.c + @$(ECHO) Info: Compiling $< to $@ + @$(MKDIR) $(@D) + $(CC) -S $(APP_CPPFLAGS) $(APP_CFLAGS) -o $@ $< + +$(CONFIG_OBJ_DIR)/%.s: %.cpp + @$(ECHO) Info: Compiling $< to $@ + @$(MKDIR) $(@D) + $(CXX) -S $(APP_CPPFLAGS) $(APP_CXXFLAGS) $(APP_CFLAGS) -o $@ $< + +$(CONFIG_OBJ_DIR)/%.s: %.cc + @$(ECHO) Info: Compiling $< to $@ + @$(MKDIR) $(@D) + $(CXX) -S $(APP_CPPFLAGS) $(APP_CXXFLAGS) $(APP_CFLAGS) -o $@ $< + +$(CONFIG_OBJ_DIR)/%.s: %.cxx + @$(ECHO) Info: Compiling $< to $@ + @$(MKDIR) $(@D) + $(CXX) -S $(APP_CPPFLAGS) $(APP_CXXFLAGS) $(APP_CFLAGS) -o $@ $< + +$(CONFIG_OBJ_DIR)/%.i: %.c + @$(ECHO) Info: Compiling $< to $@ + @$(MKDIR) $(@D) + $(CC) -E $(APP_CPPFLAGS) $(APP_CFLAGS) -o $@ $< + +$(CONFIG_OBJ_DIR)/%.i: %.cpp + @$(ECHO) Info: Compiling $< to $@ + @$(MKDIR) $(@D) + $(CXX) -E $(APP_CPPFLAGS) $(APP_CXXFLAGS) $(APP_CFLAGS) -o $@ $< + +$(CONFIG_OBJ_DIR)/%.i: %.cc + @$(ECHO) Info: Compiling $< to $@ + @$(MKDIR) $(@D) + $(CXX) -E $(APP_CPPFLAGS) $(APP_CXXFLAGS) $(APP_CFLAGS) -o $@ $< + +$(CONFIG_OBJ_DIR)/%.i: %.cxx + @$(ECHO) Info: Compiling $< to $@ + @$(MKDIR) $(@D) + $(CXX) -E $(APP_CPPFLAGS) $(APP_CXXFLAGS) $(APP_CFLAGS) -o $@ $< + + +#------------------------------------------------------------------------------ +# TARGET RULES +#------------------------------------------------------------------------------ + +.PHONY : help +help : + @$(ECHO) "Summary of Makefile targets" + @$(ECHO) " Build targets:" + @$(ECHO) " all (default) - Application and all libraries (including BSP)" + @$(ECHO) " bsp - Just the BSP" + @$(ECHO) " libs - All libraries (including BSP)" + @$(ECHO) " flash - All flash files" + @$(ECHO) " mem_init_generate - All memory initialization files" +ifeq ($(QSYS),1) + @$(ECHO) " mem_init_install - This target is deprecated for QSys Systems" + @$(ECHO) " --> Use the mem_init_generate target and then" + @$(ECHO) " add the generated meminit.qip file to your" + @$(ECHO) " Quartus II Project." +else # if QSYS != 1 + @$(ECHO) " mem_init_install - Copy memory initialization files to Quartus II project" +endif # QSYS == 1 + @$(ECHO) + @$(ECHO) " Clean targets:" + @$(ECHO) " clean_all - Application and all libraries (including BSP)" + @$(ECHO) " clean - Just the application" + @$(ECHO) " clean_bsp - Just the BSP" + @$(ECHO) " clean_libs - All libraries (including BSP)" + @$(ECHO) + @$(ECHO) " Run targets:" + @$(ECHO) " download-elf - Download and run your elf executable" + @$(ECHO) " program-flash - Program flash contents to the board" + +# Handy rule to skip making libraries and just make application. +.PHONY : app +app : $(ELF) + +ifeq ($(CREATE_OBJDUMP), 1) +app : $(OBJDUMP_NAME) +endif + +ifeq ($(CREATE_ELF_DERIVED_FILES),1) +app : elf_derived_files +endif + +.PHONY: elf_derived_files +elf_derived_files: default_mem_init + +# Handy rule for making just the BSP. +.PHONY : bsp +bsp : + @$(ECHO) Info: Building $(BSP_ROOT_DIR) + @$(MAKE) --no-print-directory -C $(BSP_ROOT_DIR) + + +# Make sure all makeable libraries (including the BSP) are up-to-date. +LIB_TARGETS := $(patsubst %,%-recurs-make-lib,$(MAKEABLE_LIBRARY_ROOT_DIRS)) + +.PHONY : libs +libs : $(LIB_TARGETS) + +ifneq ($(strip $(LIB_TARGETS)),) +$(LIB_TARGETS): %-recurs-make-lib: + @$(ECHO) Info: Building $* + $(MAKE) --no-print-directory -C $* +endif + +ifneq ($(strip $(APP_LDDEPS)),) +$(APP_LDDEPS): libs + @true +endif + +# Rules to force your project to rebuild or relink +# .force_relink file will cause any application that depends on this project to relink +# .force_rebuild file will cause this project to rebuild object files +# .force_rebuild_all file will cause this project and any project that depends on this project to rebuild object files + +FORCE_RELINK_DEP := .force_relink +FORCE_REBUILD_DEP := .force_rebuild +FORCE_REBUILD_ALL_DEP := .force_rebuild_all +FORCE_REBUILD_DEP_LIST := $(CONFIG_OBJ_DIR)/$(FORCE_RELINK_DEP) $(CONFIG_OBJ_DIR)/$(FORCE_REBUILD_DEP) $(FORCE_REBUILD_ALL_DEP) + +$(FORCE_REBUILD_DEP_LIST): + +$(APP_OBJS): $(wildcard $(CONFIG_OBJ_DIR)/$(FORCE_REBUILD_DEP)) $(wildcard $(addsuffix /$(FORCE_REBUILD_ALL_DEP), . $(ALT_LIBRARY_DIRS))) + +$(ELF): $(wildcard $(addsuffix /$(FORCE_RELINK_DEP), $(CONFIG_OBJ_DIR) $(ALT_LIBRARY_DIRS))) + + +# Clean just the application. +.PHONY : clean +ifeq ($(CREATE_ELF_DERIVED_FILES),1) +clean : clean_elf_derived_files +endif + +clean : + @$(RM) -r $(ELF) $(OBJDUMP_NAME) $(LINKER_MAP_NAME) $(OBJ_ROOT_DIR) $(RUNTIME_ROOT_DIR) $(FORCE_REBUILD_DEP_LIST) + @$(ECHO) [$(APP_NAME) clean complete] + +# Clean just the BSP. +.PHONY : clean_bsp +clean_bsp : + @$(ECHO) Info: Cleaning $(BSP_ROOT_DIR) + @$(MAKE) --no-print-directory -C $(BSP_ROOT_DIR) clean + +# Clean all makeable libraries including the BSP. +LIB_CLEAN_TARGETS := $(patsubst %,%-recurs-make-clean-lib,$(MAKEABLE_LIBRARY_ROOT_DIRS)) + +.PHONY : clean_libs +clean_libs : $(LIB_CLEAN_TARGETS) + +ifneq ($(strip $(LIB_CLEAN_TARGETS)),) +$(LIB_CLEAN_TARGETS): %-recurs-make-clean-lib: + @$(ECHO) Info: Cleaning $* + $(MAKE) --no-print-directory -C $* clean +endif + +.PHONY: clean_elf_derived_files +clean_elf_derived_files: mem_init_clean + +# Clean application and all makeable libraries including the BSP. +.PHONY : clean_all +clean_all : clean mem_init_clean clean_libs + +# Include the dependency files unless the make goal is performing a clean +# of the application. +ifneq ($(firstword $(MAKECMDGOALS)),clean) +ifneq ($(firstword $(MAKECMDGOALS)),clean_all) +-include $(APP_DEPS) +endif +endif + +.PHONY : download-elf +download-elf : $(ELF) + @if [ "$(DOWNLOAD)" = "none" ]; \ + then \ + $(ECHO) Downloading $(ELF) not supported; \ + else \ + $(ECHO) Info: Downloading $(ELF); \ + $(DOWNLOAD) --go --cpu_name=$(CPU_NAME) $(DOWNLOAD_CABLE_FLAG) $(SOPC_SYSID_FLAG) $(DOWNLOAD_JDI_FLAG) $(WRITE_GMON_OPTION) $(ELF); \ + fi + +# Delete the target of a rule if it has changed and its commands exit +# with a nonzero exit status. +.DELETE_ON_ERROR: + +# Rules for flash programming commands +PROGRAM_FLASH_SUFFIX := -program +PROGRAM_FLASH_TARGET := $(addsuffix $(PROGRAM_FLASH_SUFFIX), $(FLASH_FILES)) + +.PHONY : program-flash +program-flash : $(PROGRAM_FLASH_TARGET) + +.PHONY : $(PROGRAM_FLASH_TARGET) +$(PROGRAM_FLASH_TARGET) : flash + @if [ "$(FLASHPROG)" = "none" ]; \ + then \ + $(ECHO) Programming flash not supported; \ + else \ + $(ECHO) Info: Programming $(basename $@).flash; \ + if [ -z "$($(basename $@)_EPCS_FLAGS)" ]; \ + then \ + $(ECHO) $(FLASHPROG) $(SOPC_SYSID_FLAG) --base=$($(basename $@)_START) $(basename $@).flash; \ + $(FLASHPROG) $(DOWNLOAD_CABLE_FLAG) $(SOPC_SYSID_FLAG) --base=$($(basename $@)_START) $(basename $@).flash; \ + else \ + $(ECHO) $(FLASHPROG) $(SOPC_SYSID_FLAG) --epcs --base=$($(basename $@)_START) $(basename $@).flash; \ + $(FLASHPROG) $(DOWNLOAD_CABLE_FLAG) $(SOPC_SYSID_FLAG) --epcs --base=$($(basename $@)_START) $(basename $@).flash; \ + fi \ + fi + + +# Rules for simulating with an HDL Simulator [QSYS only] +ifeq ($(QSYS),1) +IP_MAKE_SIMSCRIPT := ip-make-simscript + +ifeq ($(VSIM),) +VSIM_EXE := "$(if $(VSIM_DIR),$(VSIM_DIR)/,)vsim" +ifeq ($(ENABLE_VSIM_GUI),1) +VSIM := $(VSIM_EXE) -gui +else +VSIM := $(VSIM_EXE) -c +endif # ENABLE_VSIM_GUI == 1 +endif # VSIM not set + +ifeq ($(SPD),) +ifneq ($(ABS_QUARTUS_PROJECT_DIR),) +ifneq ($(SOPC_NAME),) +SPD := $(ABS_QUARTUS_PROJECT_DIR)/$(SOPC_NAME)_tb.spd +endif # SOPC_NAME set +endif # ABS_QUARTUS_PROJECT_DIR set +endif # SPD == empty string + +ifeq ($(MSIM_SCRIPT),) +SIM_SCRIPT_DIR := $(RUNTIME_ROOT_DIR)/sim +MSIM_SCRIPT := $(SIM_SCRIPT_DIR)/mentor/msim_setup.tcl +endif # MSIM_SCRIPT == empty string + +ifeq ($(MAKE_VERSION),3.81) +ABS_MEM_INIT_DESCRIPTOR_FILE := $(abspath $(MEM_INIT_DESCRIPTOR_FILE)) +else +ABS_MEM_INIT_DESCRIPTOR_FILE := $(call adjust-path-mixed,$(shell pwd))/$(MEM_INIT_DESCRIPTOR_FILE) +endif + +$(MSIM_SCRIPT): $(SPD) $(MEM_INIT_DESCRIPTOR_FILE) +ifeq ($(SPD),) + $(error No SPD file specified. Ensure QUARTUS_PROJECT_DIR variable is set) +endif + @$(MKDIR) $(SIM_SCRIPT_DIR) + $(IP_MAKE_SIMSCRIPT) --spd=$(SPD) --spd=$(MEM_INIT_DESCRIPTOR_FILE) --output-directory=$(SIM_SCRIPT_DIR) + +VSIM_COMMAND = \ + cd $(dir $(MSIM_SCRIPT)) && \ + $(VSIM) -do "do $(notdir $(MSIM_SCRIPT)); ld; $(if $(VSIM_RUN_TIME),run ${VSIM_RUN_TIME};quit;)" + +.PHONY: sim +sim: $(MSIM_SCRIPT) mem_init_generate +ifeq ($(MSIM_SCRIPT),) + $(error MSIM_SCRIPT not set) +endif + $(VSIM_COMMAND) + +endif # QSYS == 1 + + +#------------------------------------------------------------------------------ +# ELF TARGET RULE +#------------------------------------------------------------------------------ +# Rule for constructing the executable elf file. +$(ELF) : $(APP_OBJS) $(LINKER_SCRIPT) $(APP_LDDEPS) + @$(ECHO) Info: Linking $@ + $(LD) $(APP_LDFLAGS) $(APP_CFLAGS) -o $@ $(filter-out $(CRT0),$(APP_OBJS)) $(APP_LIBS) $(APP_BSP_DEP_LIBS) +ifneq ($(DISABLE_ELFPATCH),1) + $(ELFPATCH) $@ $(ELF_PATCH_FLAG) +endif +ifneq ($(DISABLE_STACKREPORT),1) + @bash -c "$(STACKREPORT) $@" +endif + +$(OBJDUMP_NAME) : $(ELF) + @$(ECHO) Info: Creating $@ + $(OBJDUMP) $(OBJDUMP_FLAGS) $< >$@ + +# Rule for printing the name of the elf file +.PHONY: print-elf-name +print-elf-name: + @$(ECHO) $(ELF) + + diff --git a/software/qsys_tutorial_lcd/create-this-app b/software/qsys_tutorial_lcd/create-this-app new file mode 100644 index 0000000..9d21d54 --- /dev/null +++ b/software/qsys_tutorial_lcd/create-this-app @@ -0,0 +1,114 @@ +#!/bin/bash +# +# This script creates the hello_world_small application in this directory. + + +BSP_DIR=../qsys_tutorial_lcd_bsp +QUARTUS_PROJECT_DIR=../../ +NIOS2_APP_GEN_ARGS="--elf-name qsys_tutorial_lcd.elf --set APP_CFLAGS_OPTIMIZATION -Os --set OBJDUMP_INCLUDE_SOURCE 1 --src-files hello_world_small.c" + + +# First, check to see if $SOPC_KIT_NIOS2 environmental variable is set. +# This variable is required for the command line tools to execute correctly. +if [ -z "${SOPC_KIT_NIOS2}" ] +then + echo Required \$SOPC_KIT_NIOS2 Environmental Variable is not set! + exit 1 +fi + + +# Also make sure that the APP has not been created already. Check for +# existence of Makefile in the app directory +if [ -f ./Makefile ] +then + echo Application has already been created! Delete Makefile if you want to create a new application makefile + exit 1 +fi + + +# We are selecting hal_reduced_footprint bsp because it supports this application. +# Check to see if the hal_reduced_footprint has already been generated by checking for +# existence of the public.mk file. If not, we need to run +# create-this-bsp file to generate the bsp. +if [ ! -f ${BSP_DIR}/public.mk ]; then + # Since BSP doesn't exist, create the BSP + # Pass any command line arguments passed to this script to the BSP. + pushd ${BSP_DIR} >> /dev/null + ./create-this-bsp "$@" || { + echo "create-this-bsp failed" + exit 1 + } + popd >> /dev/null +fi + + +# Don't run make if create-this-app script is called with --no-make arg +SKIP_MAKE= +while [ $# -gt 0 ] +do + case "$1" in + --no-make) + SKIP_MAKE=1 + ;; + esac + shift +done + + +# Now we also need to go copy the sources for this application to the +# local directory. +find "${SOPC_KIT_NIOS2}/examples/software/hello_world_small/" -name '*.c' -or -name '*.h' -or -name 'hostfs*' | xargs -i cp -L {} ./ || { + echo "failed during copying example source files" + exit 1 +} + +find "${SOPC_KIT_NIOS2}/examples/software/hello_world_small/" -name 'readme.txt' -or -name 'Readme.txt' | xargs -i cp -L {} ./ || { + echo "failed copying readme file" +} + +if [ -d "${SOPC_KIT_NIOS2}/examples/software/hello_world_small/system" ] +then + cp -RL "${SOPC_KIT_NIOS2}/examples/software/hello_world_small/system" . || { + echo "failed during copying project support files" + exit 1 + } +fi + +chmod -R +w . || { + echo "failed during changing file permissions" + exit 1 +} + +cmd="nios2-app-generate-makefile --bsp-dir ${BSP_DIR} --set QUARTUS_PROJECT_DIR=${QUARTUS_PROJECT_DIR} ${NIOS2_APP_GEN_ARGS}" + +echo "create-this-app: Running \"${cmd}\"" +$cmd || { + echo "nios2-app-generate-makefile failed" + exit 1 +} + +if [ -z "$SKIP_MAKE" ]; then + cmd="make" + + echo "create-this-app: Running \"$cmd\"" + $cmd || { + echo "make failed" + exit 1 + } + + echo + echo "To download and run the application:" + echo " 1. Make sure the board is connected to the system." + echo " 2. Run 'nios2-configure-sof ' to configure the FPGA with the hardware design." + echo " 3. If you have a stdio device, run 'nios2-terminal' in a different shell." + echo " 4. Run 'make download-elf' from the application directory." + echo + echo "To debug the application:" + echo " Import the project into Nios II Software Build Tools for Eclipse." + echo " Refer to Nios II Software Build Tools for Eclipse Documentation for more information." + echo + echo -e "" +fi + + +exit 0 diff --git a/software/qsys_tutorial_lcd/hello_world_small.c b/software/qsys_tutorial_lcd/hello_world_small.c new file mode 100644 index 0000000..8c4b4b0 --- /dev/null +++ b/software/qsys_tutorial_lcd/hello_world_small.c @@ -0,0 +1,136 @@ +#include "sys/alt_stdio.h" +#include +#include "system.h" +#include "hex_out.h" +#include "sys_register.h" +#include "sys_memory.h" +#include "input_int.h" +#include "inst_decoder.h" + +#define LCD_16207_0_BASE LCD_0_BASE +#include "LCD.h" + + +#define ledrs (volatile int *) 0x00050a0 + +#define T_MS10 12500 //(10ms) + +void wait(unsigned int s) { + volatile i; + for (i = 0; i < T_MS10*s; i++); +} + +void init() { + LCD_Init(); + LCD_Test(); + registers_init(); + memory_init(); + clear_block(HEX0_3); clear_block(HEX4_5); clear_block(HEX6_7); + print_block("he", 2, HEX6_7); + print_block("lo", 2, HEX4_5); + print_block("you1", 4, HEX0_3); + wait(200); + clear_block(HEX0_3); clear_block(HEX4_5); clear_block(HEX6_7); +} + +char stack[5]; + +void store_value(){ + char buf[5]; + unsigned int memi = global_registers[Ssw_memi]; + memory_store(memi, Ssw_data); + sprintf(buf, "%02x", (unsigned char)memi); + print_block(buf, 2, HEX6_7); + print_block("--", 2, HEX4_5); + sprintf(buf, "%04d", global_registers[Ssw_data]); + print_block(buf, 4, HEX0_3); +} +void store_inst(){ + char inst; + char mem_index; + char reg_index; + struct InstRec inst_rec; + + // �K�v�ȏ��̎擾 + inst = global_registers[Ssw_inst]; + mem_index = global_registers[Ssw_memi]; + reg_index = global_registers[Ssw_regi]; + inst_rec.inst = (unsigned int)inst; + inst_rec.memi = (unsigned int)mem_index; + inst_rec.regi = (unsigned int)reg_index; + + // �X�g�A���� + inst_memory_store((unsigned int)global_registers[Spc], inst_rec); + global_registers[Spc]++; + + { + char buf[5]; + sprintf(buf, "%04d", inst_rec.inst); + print_block(buf, 4, HEX0_3); + sprintf(buf, "%02x", global_registers[Spc]); + print_block(buf, 2, HEX4_5); + } +} +void run_proc() { + volatile struct InstRec inst_rec; + + //print_block(" go ", 4, HEX0_3); + + global_registers[Spc] = 0; + print_block("pc", 2, HEX6_7); + do { + // pc�\�� + { + char buf[5]; + sprintf(buf, "%02x", global_registers[Spc]); + print_block(buf, 2, HEX4_5); + } + // ���߃t�F�b�` + inst_rec = inst_fetch(); + // ���߃f�R�[�h���s + inst_decode(inst_rec); + if ( global_registers[Ssw_run] ) wait(100); + }while( inst_rec.inst != INST_END ); + + //print_block(" end", 4, HEX0_3); +} + +void print_change_memory(unsigned int current_memory) { + char buf[5]; + sprintf(buf, "g %2d", current_memory); + print_block(buf, 4, HEX0_3); + print_block("an", 2, HEX4_5); + print_block("ch", 2, HEX6_7); + wait(200); + clear_block(HEX0_3); clear_block(HEX4_5); clear_block(HEX6_7); +} + +int main() +{ + init(); + while(1) { + // interrupt + in_int(); + + // event + if (PUSH_EVENT == PUSH_VALSTR) { + // �l�̃X�g�A + store_value(); + } + if (PUSH_EVENT == PUSH_INSSTR) { + // ���߂̃X�g�A + store_inst(); + } + if (PUSH_EVENT == PUSH_RUN) { + if (global_current_memory != (unsigned int)global_registers[Ssw_psel]) { + global_current_memory = (unsigned int)global_registers[Ssw_psel]; + print_change_memory(global_current_memory); + } + else { + // �v���O�������s + run_proc(); + } + } + } + return 0; +} diff --git a/software/qsys_tutorial_lcd/hex_encoder.c b/software/qsys_tutorial_lcd/hex_encoder.c new file mode 100644 index 0000000..ab4eca0 --- /dev/null +++ b/software/qsys_tutorial_lcd/hex_encoder.c @@ -0,0 +1,205 @@ +/* + * hex_encoder.c + * + * Created on: 2016/11/17 + * Author: takayun + */ + +#include "hex_encoder.h" +#include + +void encodeNumHex(int hex_i, int num) { + char encoded = 0; + switch (num) { + case 0: + encoded = (char)0x40; // 100 0000 + break; + case 1: + encoded = (char)0xF9; // 111 1001 + break; + case 2: + encoded = (char)0x24; // 010 0100 + break; + case 3: + encoded = (char)0x30; // 011 0000 + break; + case 4: + encoded = (char)0x19; // 001 1001 + break; + case 5: + encoded = (char)0x12; // 001 0010 + break; + case 6: + encoded = (char)0x02; // 000 0010 + break; + case 7: + encoded = (char)0x58; // 101 1000 + break; + case 8: + encoded = (char)0x00; // 000 0000 + break; + case 9: + encoded = (char)0x10; // 001 0000 + break; + default: + encoded = 0; + break; + } + + switch (hex_i) { + case 0: + *hex0 = encoded; + break; + case 1: + *hex1 = encoded; + break; + case 2: + *hex2 = encoded; + break; + case 3: + *hex3 = encoded; + break; + case 4: + *hex4 = encoded; + break; + case 5: + *hex5 = encoded; + break; + case 6: + *hex6 = encoded; + break; + case 7: + *hex7 = encoded; + break; + default: + break; + } +} + +void encodeLatHex(int hex_i, char c) { + char encoded = 0; + + if (isdigit(c)) { + encodeNumHex(hex_i, c-'0'); + return; + } + + switch (c) { + case ' ': + encoded = (char)0xFF; // 111 1111 + break; + case '-': + encoded = (char)0x3F; // 011 1111 + break; + case 'a': + encoded = (char)0x08; // 000 1000 + break; + case 'b': + encoded = (char)0x03; // 000 0011 + break; + case 'c': + encoded = (char)0x27; // 010 0111 + break; + case 'd': + encoded = (char)0x21; // 010 0001 + break; + case 'e': + encoded = (char)0x06; // 000 0110 + break; + case 'f': + encoded = (char)0x0E; // 000 1110 + break; + case 'g': + encoded = (char)0x42; // 100 0010 + break; + case 'h': + encoded = (char)0x0B; // 000 1011 + break; + case 'i': + encoded = (char)0xFB; // 111 1011 + break; + case 'j': + encoded = (char)0x61; // 110 0001 + break; + case 'k': + encoded = (char)0x0A; // 000 1010 + break; + case 'l': + encoded = (char)0x47; // 100 0111 + break; + case 'm': + encoded = (char)0x48; // 100 1000 + break; + case 'n': + encoded = (char)0x2B; // 010 1011 + break; + case 'o': + encoded = (char)0x23; // 010 0011 + break; + case 'p': + encoded = (char)0x0C; // 000 1100 + break; + case 'q': + encoded = (char)0x04; // 000 0100 + break; + case 'r': + encoded = (char)0x2F; // 010 1111 + break; + case 's': + encoded = (char)0x13; // 001 0011 + break; + case 't': + encoded = (char)0x07; // 000 0111 + break; + case 'u': + encoded = (char)0x63; // 110 0011 + break; + case 'v': + encoded = (char)0x41; // 100 0001 + break; + case 'w': + encoded = (char)0x01; // 000 0001 + break; + case 'x': + encoded = (char)0x09; // 000 1001 + break; + case 'y': + encoded = (char)0x11; // 001 0001 + break; + case 'z': + encoded = (char)0x64; // 110 0100 + break; + default: + encoded = 0; + break; + } + + switch (hex_i) { + case 0: + *hex0 = encoded; + break; + case 1: + *hex1 = encoded; + break; + case 2: + *hex2 = encoded; + break; + case 3: + *hex3 = encoded; + break; + case 4: + *hex4 = encoded; + break; + case 5: + *hex5 = encoded; + break; + case 6: + *hex6 = encoded; + break; + case 7: + *hex7 = encoded; + break; + default: + break; + } +} diff --git a/software/qsys_tutorial_lcd/hex_encoder.h b/software/qsys_tutorial_lcd/hex_encoder.h new file mode 100644 index 0000000..d04473e --- /dev/null +++ b/software/qsys_tutorial_lcd/hex_encoder.h @@ -0,0 +1,36 @@ +/* + * hex_encoder.h + * + * Created on: 2016/11/17 + * Author: takayun + */ + +#ifndef HEX_ENCODER_H_ +#define HEX_ENCODER_H_ + +/************************************************** + * Defines + **************************************************/ + +#define hex0 (volatile char *) 0x0005070 +#define hex1 (volatile char *) 0x0005060 +#define hex2 (volatile char *) 0x0005050 +#define hex3 (volatile char *) 0x0005040 +#define hex4 (volatile char *) 0x0005030 +#define hex5 (volatile char *) 0x0005020 +#define hex6 (volatile char *) 0x0005010 +#define hex7 (volatile char *) 0x0005000 + +/************************************************** + * Variables + **************************************************/ + + +/************************************************** + * Functions + **************************************************/ + +void encodeNumHex(int hex_i, int num); +void encodeLatHex(int hex_i, char c); + +#endif /* HEX_ENCODER_H_ */ diff --git a/software/qsys_tutorial_lcd/hex_out.c b/software/qsys_tutorial_lcd/hex_out.c new file mode 100644 index 0000000..83b37d0 --- /dev/null +++ b/software/qsys_tutorial_lcd/hex_out.c @@ -0,0 +1,67 @@ +/* + * hex_out.c + * + * Created on: 2016/11/24 + * Author: takayun + */ +#include "hex_out.h" +#include "hex_encoder.h" +#include "system.h" + +void print_block(char * str, unsigned int size, enum BLOCK_N block_i) { + int i; + if (block_i == HEX0_3) { + if (size > 4) panic(); + for (i = 0; i < size; i++) { + encodeLatHex(i,str[size-1-i]); + } + } + else if (block_i == HEX4_5) { + if (size > 2) panic(); + for (i = 0; i < size; i++) { + encodeLatHex(i+4,str[size-1-i]); + } + } + else if (block_i == HEX6_7) { + if (size > 2) panic(); + for (i = 0; i < size; i++) { + encodeLatHex(i+6,str[size-1-i]); + } + } +} + +void clear_block(enum BLOCK_N block_i) { + if (block_i == HEX0_3) { + print_block(" ", 4, HEX0_3); + } + else if (block_i == HEX4_5) { + print_block(" ", 2, HEX4_5); + } + else if (block_i == HEX6_7) { + print_block(" ", 2, HEX6_7); + } +} + +void print_number(char num) { + int i; + char buf[5]; + char val; + for (i = 0; i < 4; i++) { + if (num < 0) { + buf[0] = '-'; + val = -num; + } else { + buf[0] = ' '; + val = num; + } + buf[1] = val/100%10 + '0'; + buf[2] = val/10%10 + '0'; + buf[3] = val%10 + '0'; + } + clear_block(HEX0_3); + print_block(buf, 4, HEX0_3); +} + + + + diff --git a/software/qsys_tutorial_lcd/hex_out.h b/software/qsys_tutorial_lcd/hex_out.h new file mode 100644 index 0000000..50d6868 --- /dev/null +++ b/software/qsys_tutorial_lcd/hex_out.h @@ -0,0 +1,33 @@ +/* + * hex_out.h + * + * Created on: 2016/11/24 + * Author: takayun + */ + +#ifndef HEX_IO_H_ +#define HEX_IO_H_ + +/************************************************** + * Defines + **************************************************/ + +enum BLOCK_N { + HEX0_3, HEX4_5, HEX6_7 +}; + +/************************************************** + * Variables + **************************************************/ + + +/************************************************** + * Functions + **************************************************/ + +void print_block(char * str, unsigned int size, enum BLOCK_N block_i); +void clear_block(enum BLOCK_N block_i); +void print_number(char num); + + +#endif /* HEX_IO_H_ */ diff --git a/software/qsys_tutorial_lcd/input_int.c b/software/qsys_tutorial_lcd/input_int.c new file mode 100644 index 0000000..0838b2b --- /dev/null +++ b/software/qsys_tutorial_lcd/input_int.c @@ -0,0 +1,67 @@ +/* + * input_int.c + * + * Created on: 2016/11/24 + * Author: takayun + */ +#include "input_int.h" +#include "sys_register.h" + +unsigned char PUSH_EVENT = PUSH_NONE; + +void in_int() { + push_int(); +} + +static void update_sw_reg(sw_t s) { + global_registers[Ssw_data] = (char)s.data.value; + global_registers[Ssw_inst] = (char)s.splited.instruction_code; + global_registers[Ssw_memi] = (char)s.splited.memory_index; + global_registers[Ssw_regi] = (char)s.splited.register_index; + global_registers[Ssw_psel] = (char)s.splited.program_selecter; + global_registers[Ssw_rw] = (char)s.splited.rw_mode; + global_registers[Ssw_run] = (char)s.splited.run_mode; +} + +enum PushEvent push_decode(char psw) { + switch(psw) { + case 0x3: + return PUSH_VALSTR; + break; + case 0x5: + return PUSH_INSSTR; + break; + case 0x6: + return PUSH_RUN; + break; + } + return PUSH_NONE; +} + +void push_int() { + static unsigned char status = 0; + static enum PushEvent event_code; + volatile sw_t s; + s.sw = *switches; + + switch (status) { + case 0: + PUSH_EVENT = PUSH_NONE; + if (*push_switches != 7) { + event_code = push_decode(*push_switches); + status = 1; + } + update_sw_reg(s); // �X�C�b�`���W�X�^�X�V + break; + case 1: + if (*push_switches == 7) status = 2; + break; + case 2: + PUSH_EVENT = event_code; + status = 0; + break; + default: + status = 0; + break; + } +} diff --git a/software/qsys_tutorial_lcd/input_int.h b/software/qsys_tutorial_lcd/input_int.h new file mode 100644 index 0000000..3cd8cba --- /dev/null +++ b/software/qsys_tutorial_lcd/input_int.h @@ -0,0 +1,60 @@ +/* + * input_int.h + * + * Created on: 2016/11/24 + * Author: takayun + */ + +#ifndef SWITCHES_INT_H_ +#define SWITCHES_INT_H_ + +/************************************************** + * Defines + **************************************************/ + +#define switches (volatile int *) 0x0005090 +#define push_switches (volatile char *) 0x0005080 + +typedef union { + int sw; + struct { + unsigned int run_mode : 1; + unsigned int rw_mode : 1; + unsigned int program_selecter : 4; + unsigned int memory_index : 4; + unsigned int register_index : 4; + unsigned int instruction_code : 4; + } splited; + struct { + unsigned int : 10; + unsigned int value : 8; + } data; +} sw_t; + +enum PushEvent{ + PUSH_NONE, + PUSH_ANY, + PUSH_VALSTR, + PUSH_INSSTR, + PUSH_RUN +}; + +/************************************************** + * Variables + **************************************************/ + +extern unsigned char PUSH_EVENT; + +/************************************************** + * Functions + **************************************************/ + +/* Function: in_int + * Sammary: + * �S�Ă̓��͊��荞�݂��s�� + * */ +void in_int(); + +void push_int(); + +#endif /* SWITCHES_INT_H_ */ diff --git a/software/qsys_tutorial_lcd/inst_decoder.c b/software/qsys_tutorial_lcd/inst_decoder.c new file mode 100644 index 0000000..d864653 --- /dev/null +++ b/software/qsys_tutorial_lcd/inst_decoder.c @@ -0,0 +1,109 @@ +/* + * inst_decoder.c + * + * Created on: 2016/11/25 + * Author: takayun + */ + +#include "inst_decoder.h" +#include "sys_memory.h" +#include "sys_register.h" +#include "hex_out.h" +#include + +struct InstRec inst_fetch(){ + return inst_memory_load((unsigned int)global_registers[Spc]++); +} + +void inst_decode(struct InstRec inst_rec){ + switch(inst_rec.inst) { + case INST_END: + break; + case INST_JUMP: + inst_jump(inst_rec.regi, inst_rec.memi); + break; + case INST_OUTPUT: + inst_output(inst_rec.regi, inst_rec.memi); + break; + case INST_LOAD: + inst_load(inst_rec.regi, inst_rec.memi); + break; + case INST_STORE: + inst_store(inst_rec.regi, inst_rec.memi); + break; + case INST_DELAY: + inst_delay(inst_rec.regi, inst_rec.memi); + break; + case INST_ADD: + inst_add(inst_rec.regi, inst_rec.memi); + break; + case INST_COMP: + inst_comp(inst_rec.regi, inst_rec.memi); + break; + case INST_JEQ: + inst_jeq(inst_rec.regi, inst_rec.memi); + break; + case INST_JNE: + inst_jne(inst_rec.regi, inst_rec.memi); + break; + case INST_JIEQ: + inst_jieq(inst_rec.regi, inst_rec.memi); + break; + case INST_JINE: + inst_jine(inst_rec.regi, inst_rec.memi); + break; + } +} + +void inst_jump(enum Register reg, unsigned char memory_index){ + global_registers[Spc]=global_registers[reg]+memory_index; +} +void inst_output(enum Register reg, unsigned char memory_index){ + //�������̒l��7�Z�O�ɕ\�� + char buf[5]; + memory_load(memory_index, Sseg); + sprintf(buf, "%04d", global_registers[Sseg]); + print_block(buf, 4, HEX0_3); +} +void inst_load(enum Register reg, unsigned char memory_index){ + memory_load(memory_index, reg); +} +void inst_store(enum Register reg, unsigned char memory_index){ + memory_store(memory_index, reg); +} +void inst_delay(enum Register reg, unsigned char memory_index){ + //���W�X�^�̒l*10ms�҂� +} +void inst_add(enum Register reg, unsigned char memory_index){ + global_registers[Sacc]+=global_registers[reg]; +} +void inst_comp(enum Register reg, unsigned char memory_index){ + if(global_registers[Sacc]==global_registers[reg]){ + global_registers[Sflg]=0; + } else if(global_registers[Sacc] > global_registers[reg]){ + global_registers[Sflg]=-1; + }else{ + global_registers[Sflg]=1; + } +} +void inst_jeq(enum Register reg, unsigned char memory_index){ + if(global_registers[Sflg]==global_registers[reg]){ + global_registers[Spc]++; + } +} +void inst_jne(enum Register reg, unsigned char memory_index){ + if(global_registers[Sflg]!=global_registers[reg]){ + global_registers[Spc]++; + } +} +void inst_jieq(char im, unsigned char memory_index){ + if(global_registers[Sflg]==im){ + global_registers[Spc]++; + } +} +void inst_jine(char im, unsigned char memory_index){ + if(global_registers[Sflg]!=im){ + global_registers[Spc]++; + } +} + diff --git a/software/qsys_tutorial_lcd/inst_decoder.h b/software/qsys_tutorial_lcd/inst_decoder.h new file mode 100644 index 0000000..9860750 --- /dev/null +++ b/software/qsys_tutorial_lcd/inst_decoder.h @@ -0,0 +1,49 @@ +/* + * inst_decoder.h + * + * Created on: 2016/11/25 + * Author: takayun + */ + +#ifndef INST_DECODER_H_ +#define INST_DECODER_H_ + +#include "sys_register.h" + +#define INST_END 0x0 +#define INST_JUMP 0x1 +#define INST_OUTPUT 0x2 +#define INST_LOAD 0x3 +#define INST_STORE 0x4 +#define INST_DELAY 0x5 +#define INST_ADD 0x6 +#define INST_COMP 0x7 +#define INST_JEQ 0x8 +#define INST_JNE 0x9 +#define INST_JIEQ 0xA +#define INST_JINE 0xB + +struct InstRec { + unsigned int inst : 4; + unsigned int memi : 4; + unsigned int regi : 4; +}; + +struct InstRec inst_fetch(); + +void inst_decode(struct InstRec inst_rec); + +void inst_jump(enum Register reg, unsigned char memory_index); +void inst_output(enum Register reg, unsigned char memory_index); +void inst_load(enum Register reg, unsigned char memory_index); +void inst_store(enum Register reg, unsigned char memory_index); +void inst_delay(enum Register reg, unsigned char memory_index); +void inst_add(enum Register reg, unsigned char memory_index); +void inst_comp(enum Register reg, unsigned char memory_index); +void inst_jeq(enum Register reg, unsigned char memory_index); +void inst_jne(enum Register reg, unsigned char memory_index); +void inst_jieq(char im, unsigned char memory_index); +void inst_jine(char im, unsigned char memory_index); + + +#endif /* INST_DECODER_H_ */ diff --git a/software/qsys_tutorial_lcd/obj/default/LCD.d b/software/qsys_tutorial_lcd/obj/default/LCD.d new file mode 100644 index 0000000..7631415 --- /dev/null +++ b/software/qsys_tutorial_lcd/obj/default/LCD.d @@ -0,0 +1,10 @@ +obj/default/LCD.o: LCD.c ../qsys_tutorial_lcd_bsp//HAL/inc/io.h \ + ../qsys_tutorial_lcd_bsp//HAL/inc/alt_types.h system.h LCD.h + +../qsys_tutorial_lcd_bsp//HAL/inc/io.h: + +../qsys_tutorial_lcd_bsp//HAL/inc/alt_types.h: + +system.h: + +LCD.h: diff --git a/software/qsys_tutorial_lcd/obj/default/hello_world_small.d b/software/qsys_tutorial_lcd/obj/default/hello_world_small.d new file mode 100644 index 0000000..c33febe --- /dev/null +++ b/software/qsys_tutorial_lcd/obj/default/hello_world_small.d @@ -0,0 +1,17 @@ +obj/default/hello_world_small.o: hello_world_small.c \ + ../qsys_tutorial_lcd_bsp//HAL/inc/sys/alt_stdio.h system.h hex_out.h \ + sys_register.h sys_memory.h inst_decoder.h input_int.h + +../qsys_tutorial_lcd_bsp//HAL/inc/sys/alt_stdio.h: + +system.h: + +hex_out.h: + +sys_register.h: + +sys_memory.h: + +inst_decoder.h: + +input_int.h: diff --git a/software/qsys_tutorial_lcd/obj/default/hello_world_small.o b/software/qsys_tutorial_lcd/obj/default/hello_world_small.o new file mode 100644 index 0000000..7f61985 --- /dev/null +++ b/software/qsys_tutorial_lcd/obj/default/hello_world_small.o Binary files differ diff --git a/software/qsys_tutorial_lcd/obj/default/hex_encoder.d b/software/qsys_tutorial_lcd/obj/default/hex_encoder.d new file mode 100644 index 0000000..e913210 --- /dev/null +++ b/software/qsys_tutorial_lcd/obj/default/hex_encoder.d @@ -0,0 +1,3 @@ +obj/default/hex_encoder.o: hex_encoder.c hex_encoder.h + +hex_encoder.h: diff --git a/software/qsys_tutorial_lcd/obj/default/hex_encoder.o b/software/qsys_tutorial_lcd/obj/default/hex_encoder.o new file mode 100644 index 0000000..65036f7 --- /dev/null +++ b/software/qsys_tutorial_lcd/obj/default/hex_encoder.o Binary files differ diff --git a/software/qsys_tutorial_lcd/obj/default/hex_out.d b/software/qsys_tutorial_lcd/obj/default/hex_out.d new file mode 100644 index 0000000..1000db0 --- /dev/null +++ b/software/qsys_tutorial_lcd/obj/default/hex_out.d @@ -0,0 +1,7 @@ +obj/default/hex_out.o: hex_out.c hex_out.h hex_encoder.h system.h + +hex_out.h: + +hex_encoder.h: + +system.h: diff --git a/software/qsys_tutorial_lcd/obj/default/hex_out.o b/software/qsys_tutorial_lcd/obj/default/hex_out.o new file mode 100644 index 0000000..2ac0334 --- /dev/null +++ b/software/qsys_tutorial_lcd/obj/default/hex_out.o Binary files differ diff --git a/software/qsys_tutorial_lcd/obj/default/input_int.d b/software/qsys_tutorial_lcd/obj/default/input_int.d new file mode 100644 index 0000000..25051be --- /dev/null +++ b/software/qsys_tutorial_lcd/obj/default/input_int.d @@ -0,0 +1,5 @@ +obj/default/input_int.o: input_int.c input_int.h sys_register.h + +input_int.h: + +sys_register.h: diff --git a/software/qsys_tutorial_lcd/obj/default/input_int.o b/software/qsys_tutorial_lcd/obj/default/input_int.o new file mode 100644 index 0000000..43cf5d1 --- /dev/null +++ b/software/qsys_tutorial_lcd/obj/default/input_int.o Binary files differ diff --git a/software/qsys_tutorial_lcd/obj/default/inst_decoder.d b/software/qsys_tutorial_lcd/obj/default/inst_decoder.d new file mode 100644 index 0000000..3e61d10 --- /dev/null +++ b/software/qsys_tutorial_lcd/obj/default/inst_decoder.d @@ -0,0 +1,10 @@ +obj/default/inst_decoder.o: inst_decoder.c inst_decoder.h sys_register.h \ + sys_memory.h hex_out.h + +inst_decoder.h: + +sys_register.h: + +sys_memory.h: + +hex_out.h: diff --git a/software/qsys_tutorial_lcd/obj/default/inst_decoder.o b/software/qsys_tutorial_lcd/obj/default/inst_decoder.o new file mode 100644 index 0000000..00c3ec0 --- /dev/null +++ b/software/qsys_tutorial_lcd/obj/default/inst_decoder.o Binary files differ diff --git a/software/qsys_tutorial_lcd/obj/default/sys_memory.d b/software/qsys_tutorial_lcd/obj/default/sys_memory.d new file mode 100644 index 0000000..52d4dcd --- /dev/null +++ b/software/qsys_tutorial_lcd/obj/default/sys_memory.d @@ -0,0 +1,10 @@ +obj/default/sys_memory.o: sys_memory.c system.h sys_memory.h \ + sys_register.h inst_decoder.h + +system.h: + +sys_memory.h: + +sys_register.h: + +inst_decoder.h: diff --git a/software/qsys_tutorial_lcd/obj/default/sys_memory.o b/software/qsys_tutorial_lcd/obj/default/sys_memory.o new file mode 100644 index 0000000..612152e --- /dev/null +++ b/software/qsys_tutorial_lcd/obj/default/sys_memory.o Binary files differ diff --git a/software/qsys_tutorial_lcd/obj/default/sys_register.d b/software/qsys_tutorial_lcd/obj/default/sys_register.d new file mode 100644 index 0000000..ec29589 --- /dev/null +++ b/software/qsys_tutorial_lcd/obj/default/sys_register.d @@ -0,0 +1,3 @@ +obj/default/sys_register.o: sys_register.c sys_register.h + +sys_register.h: diff --git a/software/qsys_tutorial_lcd/obj/default/sys_register.o b/software/qsys_tutorial_lcd/obj/default/sys_register.o new file mode 100644 index 0000000..b6a2ba5 --- /dev/null +++ b/software/qsys_tutorial_lcd/obj/default/sys_register.o Binary files differ diff --git a/software/qsys_tutorial_lcd/obj/default/system.d b/software/qsys_tutorial_lcd/obj/default/system.d new file mode 100644 index 0000000..6c906ae --- /dev/null +++ b/software/qsys_tutorial_lcd/obj/default/system.d @@ -0,0 +1,5 @@ +obj/default/system.o: system.c system.h hex_out.h + +system.h: + +hex_out.h: diff --git a/software/qsys_tutorial_lcd/obj/default/system.o b/software/qsys_tutorial_lcd/obj/default/system.o new file mode 100644 index 0000000..7663f6c --- /dev/null +++ b/software/qsys_tutorial_lcd/obj/default/system.o Binary files differ diff --git a/software/qsys_tutorial_lcd/qsys_tutorial_lcd.elf b/software/qsys_tutorial_lcd/qsys_tutorial_lcd.elf new file mode 100644 index 0000000..21c9273 --- /dev/null +++ b/software/qsys_tutorial_lcd/qsys_tutorial_lcd.elf Binary files differ diff --git a/software/qsys_tutorial_lcd/qsys_tutorial_lcd.map b/software/qsys_tutorial_lcd/qsys_tutorial_lcd.map new file mode 100644 index 0000000..05f97a8 --- /dev/null +++ b/software/qsys_tutorial_lcd/qsys_tutorial_lcd.map @@ -0,0 +1,753 @@ +Archive member included because of file (symbol) + +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-divmod.o) + obj/default/hex_out.o (__divsi3) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-mul.o) + obj/default/hello_world_small.o (__mulsi3) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-ctype_.o) + obj/default/hex_encoder.o (__ctype_ptr) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-sprintf.o) + obj/default/hello_world_small.o (sprintf) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-vfprintf.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-sprintf.o) (___vfprintf_internal_r) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-fvwrite_small_str.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-sprintf.o) (__sfvwrite_small_str) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-impure.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-sprintf.o) (_impure_ptr) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-memmove.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-fvwrite_small_str.o) (memmove) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-strlen.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-vfprintf.o) (strlen) +../qsys_tutorial_lcd_bsp/\libhal_bsp.a(alt_load.o) + ../qsys_tutorial_lcd_bsp//obj/HAL/src/crt0.o (alt_load) +../qsys_tutorial_lcd_bsp/\libhal_bsp.a(alt_main.o) + ../qsys_tutorial_lcd_bsp//obj/HAL/src/crt0.o (alt_main) +../qsys_tutorial_lcd_bsp/\libhal_bsp.a(alt_sys_init.o) + ../qsys_tutorial_lcd_bsp/\libhal_bsp.a(alt_main.o) (alt_sys_init) +../qsys_tutorial_lcd_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) + ../qsys_tutorial_lcd_bsp/\libhal_bsp.a(alt_load.o) (alt_dcache_flush_all) +../qsys_tutorial_lcd_bsp/\libhal_bsp.a(alt_icache_flush_all.o) + ../qsys_tutorial_lcd_bsp/\libhal_bsp.a(alt_load.o) (alt_icache_flush_all) +../qsys_tutorial_lcd_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) + ../qsys_tutorial_lcd_bsp/\libhal_bsp.a(alt_sys_init.o) (altera_nios2_qsys_irq_init) + +Allocating common symbols +Common symbol size file + +stack 0x5 obj/default/hello_world_small.o +global_registers 0xf obj/default/sys_register.o + +Memory Configuration + +Name Origin Length Attributes +reset 0x00000000 0x00000020 +onchip_memory 0x00000020 0x00003fe0 +*default* 0x00000000 0xffffffff + +Linker script and memory map + +LOAD ../qsys_tutorial_lcd_bsp//obj/HAL/src/crt0.o + 0x0000000c exit = _exit +LOAD obj/default/hello_world_small.o +LOAD obj/default/hex_encoder.o +LOAD obj/default/hex_out.o +LOAD obj/default/input_int.o +LOAD obj/default/inst_decoder.o +LOAD obj/default/sys_memory.o +LOAD obj/default/sys_register.o +LOAD obj/default/system.o +LOAD c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libstdc++.a +LOAD c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libm.a +LOAD c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a +START GROUP +LOAD c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a +LOAD c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a +LOAD ../qsys_tutorial_lcd_bsp/\libhal_bsp.a +END GROUP +LOAD c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a + 0x00000000 __alt_mem_onchip_memory = 0x0 + +.entry 0x00000000 0x20 + *(.entry) + .entry 0x00000000 0x20 ../qsys_tutorial_lcd_bsp//obj/HAL/src/crt0.o + 0x00000000 __reset + 0x0000000c _exit + +.exceptions 0x00000020 0x0 + 0x00000020 PROVIDE (__ram_exceptions_start, ABSOLUTE (.)) + 0x00000020 . = ALIGN (0x20) + *(.irq) + *(.exceptions.entry.label) + *(.exceptions.entry.user) + *(.exceptions.entry) + *(.exceptions.irqtest.user) + *(.exceptions.irqtest) + *(.exceptions.irqhandler.user) + *(.exceptions.irqhandler) + *(.exceptions.irqreturn.user) + *(.exceptions.irqreturn) + *(.exceptions.notirq.label) + *(.exceptions.notirq.user) + *(.exceptions.notirq) + *(.exceptions.soft.user) + *(.exceptions.soft) + *(.exceptions.unknown.user) + *(.exceptions.unknown) + *(.exceptions.exit.label) + *(.exceptions.exit.user) + *(.exceptions.exit) + *(.exceptions) + 0x00000020 PROVIDE (__ram_exceptions_end, ABSOLUTE (.)) + 0x00000020 PROVIDE (__flash_exceptions_start, LOADADDR (.exceptions)) + +.text 0x00000020 0x1d1c + 0x00000020 PROVIDE (stext, ABSOLUTE (.)) + *(.interp) + *(.hash) + *(.dynsym) + *(.dynstr) + *(.gnu.version) + *(.gnu.version_d) + *(.gnu.version_r) + *(.rel.init) + *(.rela.init) + *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) + *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) + *(.rel.fini) + *(.rela.fini) + *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) + *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) + *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) + *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) + *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) + *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) + *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) + *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) + *(.rel.ctors) + *(.rela.ctors) + *(.rel.dtors) + *(.rela.dtors) + *(.rel.got) + *(.rela.got) + *(.rel.sdata .rel.sdata.* .rel.gnu.linkonce.s.*) + *(.rela.sdata .rela.sdata.* .rela.gnu.linkonce.s.*) + *(.rel.sbss .rel.sbss.* .rel.gnu.linkonce.sb.*) + *(.rela.sbss .rela.sbss.* .rela.gnu.linkonce.sb.*) + *(.rel.sdata2 .rel.sdata2.* .rel.gnu.linkonce.s2.*) + *(.rela.sdata2 .rela.sdata2.* .rela.gnu.linkonce.s2.*) + *(.rel.sbss2 .rel.sbss2.* .rel.gnu.linkonce.sb2.*) + *(.rela.sbss2 .rela.sbss2.* .rela.gnu.linkonce.sb2.*) + *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) + *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) + *(.rel.plt) + *(.rela.plt) + *(.rel.dyn) + *(.init) + *(.plt) + *(.text .stub .text.* .gnu.linkonce.t.*) + .text 0x00000020 0x3c ../qsys_tutorial_lcd_bsp//obj/HAL/src/crt0.o + 0x00000020 _start + .text 0x0000005c 0x408 obj/default/hello_world_small.o + 0x0000005c wait + 0x00000098 print_change_memory + 0x00000130 run_proc + 0x000001d0 store_inst + 0x000002a0 store_value + 0x00000344 init + 0x000003e8 main + .text 0x00000464 0x3b8 obj/default/hex_encoder.o + 0x00000464 encodeNumHex + 0x00000588 encodeLatHex + .text 0x0000081c 0x228 obj/default/hex_out.o + 0x0000081c print_block + 0x000008f8 clear_block + 0x00000948 print_number + .text 0x00000a44 0x180 obj/default/input_int.o + 0x00000a44 push_decode + 0x00000a84 push_int + 0x00000bc0 in_int + .text 0x00000bc4 0x334 obj/default/inst_decoder.o + 0x00000bc4 inst_jump + 0x00000be0 inst_delay + 0x00000be4 inst_add + 0x00000c04 inst_comp + 0x00000c3c inst_jeq + 0x00000c64 inst_jne + 0x00000c8c inst_jieq + 0x00000cb8 inst_jine + 0x00000ce4 inst_store + 0x00000cf4 inst_load + 0x00000d04 inst_output + 0x00000d50 inst_fetch + 0x00000d88 inst_decode + .text 0x00000ef8 0x220 obj/default/sys_memory.o + 0x00000ef8 memory_init + 0x00000f3c inst_memory_store + 0x00000fbc inst_memory_load + 0x00001038 memory_load + 0x000010a8 memory_store + .text 0x00001118 0x1c obj/default/sys_register.o + 0x00001118 registers_init + .text 0x00001134 0x2c obj/default/system.o + 0x00001134 panic + .text 0x00001160 0x14c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-divmod.o) + 0x000011dc __divsi3 + 0x0000123c __modsi3 + 0x0000129c __udivsi3 + 0x000012a4 __umodsi3 + .text 0x000012ac 0x38 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-mul.o) + 0x000012ac __mulsi3 + .text 0x000012e4 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-ctype_.o) + .text 0x000012e4 0xf4 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-sprintf.o) + 0x000012e4 sprintf + 0x00001368 _sprintf_r + .text 0x000013d8 0x740 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-vfprintf.o) + 0x00001458 ___vfprintf_internal_r + 0x00001af4 __vfprintf_internal + .text 0x00001b18 0xb8 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-fvwrite_small_str.o) + 0x00001b18 __sfvwrite_small_str + .text 0x00001bd0 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-impure.o) + .text 0x00001bd0 0x60 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-memmove.o) + 0x00001bd0 memmove + .text 0x00001c30 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-strlen.o) + 0x00001c30 strlen + .text 0x00001c50 0x8c ../qsys_tutorial_lcd_bsp/\libhal_bsp.a(alt_load.o) + 0x00001c70 alt_load + .text 0x00001cdc 0x2c ../qsys_tutorial_lcd_bsp/\libhal_bsp.a(alt_main.o) + 0x00001cdc alt_main + .text 0x00001d08 0x24 ../qsys_tutorial_lcd_bsp/\libhal_bsp.a(alt_sys_init.o) + 0x00001d08 alt_sys_init + 0x00001d0c alt_irq_init + .text 0x00001d2c 0x4 ../qsys_tutorial_lcd_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) + 0x00001d2c alt_dcache_flush_all + .text 0x00001d30 0x4 ../qsys_tutorial_lcd_bsp/\libhal_bsp.a(alt_icache_flush_all.o) + 0x00001d30 alt_icache_flush_all + .text 0x00001d34 0x8 ../qsys_tutorial_lcd_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) + 0x00001d34 altera_nios2_qsys_irq_init + *(.gnu.warning.*) + *(.fini) + 0x00001d3c PROVIDE (__etext, ABSOLUTE (.)) + 0x00001d3c PROVIDE (_etext, ABSOLUTE (.)) + 0x00001d3c PROVIDE (etext, ABSOLUTE (.)) + *(.eh_frame_hdr) + 0x00001d3c . = ALIGN (0x4) + 0x00001d3c PROVIDE (__preinit_array_start, ABSOLUTE (.)) + *(.preinit_array) + 0x00001d3c PROVIDE (__preinit_array_end, ABSOLUTE (.)) + 0x00001d3c PROVIDE (__init_array_start, ABSOLUTE (.)) + *(.init_array) + 0x00001d3c PROVIDE (__init_array_end, ABSOLUTE (.)) + 0x00001d3c PROVIDE (__fini_array_start, ABSOLUTE (.)) + *(.fini_array) + 0x00001d3c PROVIDE (__fini_array_end, ABSOLUTE (.)) + *(.eh_frame) + *(.gcc_except_table) + *(.dynamic) + 0x00001d3c PROVIDE (__CTOR_LIST__, ABSOLUTE (.)) + *(.ctors) + *(SORT(.ctors.*)) + 0x00001d3c PROVIDE (__CTOR_END__, ABSOLUTE (.)) + 0x00001d3c PROVIDE (__DTOR_LIST__, ABSOLUTE (.)) + *(.dtors) + *(SORT(.dtors.*)) + 0x00001d3c PROVIDE (__DTOR_END__, ABSOLUTE (.)) + *(.jcr) + 0x00001d3c . = ALIGN (0x4) + +.rodata 0x00001d3c 0x2d0 + 0x00001d3c PROVIDE (__ram_rodata_start, ABSOLUTE (.)) + 0x00001d3c . = ALIGN (0x4) + *(.rodata .rodata.* .gnu.linkonce.r.*) + .rodata.str1.4 + 0x00001d3c 0x35 obj/default/hello_world_small.o + 0x38 (size before relaxing) + *fill* 0x00001d71 0x3 00 + .rodata.str1.4 + 0x00001d74 0xb obj/default/hex_out.o + 0xc (size before relaxing) + .rodata.str1.4 + 0x00000000 0x8 obj/default/inst_decoder.o + *fill* 0x00001d7f 0x1 00 + .rodata.str1.4 + 0x00001d80 0x8 obj/default/system.o + .rodata 0x00001d88 0x281 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-ctype_.o) + 0x00001d88 _ctype_ + *(.rodata1) + 0x0000200c . = ALIGN (0x4) + *fill* 0x00002009 0x3 00 + 0x0000200c PROVIDE (__ram_rodata_end, ABSOLUTE (.)) + 0x00001d3c PROVIDE (__flash_rodata_start, LOADADDR (.rodata)) + +.rwdata 0x0000200c 0xf0 load address 0x000020fc + 0x0000200c PROVIDE (__ram_rwdata_start, ABSOLUTE (.)) + 0x0000200c . = ALIGN (0x4) + *(.got.plt) + *(.got) + *(.data1) + *(.data .data.* .gnu.linkonce.d.*) + .data 0x0000200c 0x0 ../qsys_tutorial_lcd_bsp//obj/HAL/src/crt0.o + .data 0x0000200c 0x0 obj/default/hello_world_small.o + .data 0x0000200c 0x0 obj/default/hex_encoder.o + .data 0x0000200c 0x0 obj/default/hex_out.o + .data 0x0000200c 0x0 obj/default/input_int.o + .data 0x0000200c 0x0 obj/default/inst_decoder.o + .data 0x0000200c 0x0 obj/default/sys_memory.o + .data 0x0000200c 0x0 obj/default/sys_register.o + .data 0x0000200c 0x0 obj/default/system.o + .data 0x0000200c 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-divmod.o) + .data 0x0000200c 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-mul.o) + .data 0x0000200c 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-ctype_.o) + .data 0x0000200c 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-sprintf.o) + .data 0x0000200c 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-vfprintf.o) + .data 0x0000200c 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-fvwrite_small_str.o) + .data 0x0000200c 0xe0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-impure.o) + .data 0x000020ec 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-memmove.o) + .data 0x000020ec 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-strlen.o) + .data 0x000020ec 0x0 ../qsys_tutorial_lcd_bsp/\libhal_bsp.a(alt_load.o) + .data 0x000020ec 0x0 ../qsys_tutorial_lcd_bsp/\libhal_bsp.a(alt_main.o) + .data 0x000020ec 0x0 ../qsys_tutorial_lcd_bsp/\libhal_bsp.a(alt_sys_init.o) + .data 0x000020ec 0x0 ../qsys_tutorial_lcd_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) + .data 0x000020ec 0x0 ../qsys_tutorial_lcd_bsp/\libhal_bsp.a(alt_icache_flush_all.o) + .data 0x000020ec 0x0 ../qsys_tutorial_lcd_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) + 0x0000a0ec _gp = ABSOLUTE ((. + 0x8000)) + 0x0000a0ec PROVIDE (gp, _gp) + *(.rwdata .rwdata.*) + *(.sdata .sdata.* .gnu.linkonce.s.*) + .sdata 0x000020ec 0x4 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-ctype_.o) + 0x000020ec __ctype_ptr + .sdata 0x000020f0 0x8 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-impure.o) + 0x000020f0 _impure_ptr + 0x000020f4 _global_impure_ptr + .sdata 0x000020f8 0x4 ../qsys_tutorial_lcd_bsp/\libhal_bsp.a(alt_sys_init.o) + 0x000020f8 jtag_uart + *(.sdata2 .sdata2.* .gnu.linkonce.s2.*) + 0x000020fc . = ALIGN (0x4) + 0x000020fc _edata = ABSOLUTE (.) + 0x000020fc PROVIDE (edata, ABSOLUTE (.)) + 0x000020fc PROVIDE (__ram_rwdata_end, ABSOLUTE (.)) + 0x000020fc PROVIDE (__flash_rwdata_start, LOADADDR (.rwdata)) + +.bss 0x000021ec 0x174 + 0x000021ec __bss_start = ABSOLUTE (.) + 0x000021ec PROVIDE (__sbss_start, ABSOLUTE (.)) + 0x000021ec PROVIDE (___sbss_start, ABSOLUTE (.)) + *(.dynsbss) + *(.sbss .sbss.* .gnu.linkonce.sb.*) + .sbss 0x000021ec 0x5 obj/default/hello_world_small.o + 0x000021ec stack + *fill* 0x000021f1 0x3 00 + .sbss 0x000021f4 0xc obj/default/input_int.o + 0x000021f4 PUSH_EVENT + .sbss 0x00002200 0x4 obj/default/sys_memory.o + 0x00002200 global_current_memory + .sbss 0x00002204 0xc ../qsys_tutorial_lcd_bsp/\libhal_bsp.a(alt_main.o) + 0x00002204 alt_argc + 0x00002208 alt_argv + 0x0000220c alt_envp + *(.sbss2 .sbss2.* .gnu.linkonce.sb2.*) + *(.scommon) + 0x00002210 PROVIDE (__sbss_end, ABSOLUTE (.)) + 0x00002210 PROVIDE (___sbss_end, ABSOLUTE (.)) + *(.dynbss) + *(.bss .bss.* .gnu.linkonce.b.*) + .bss 0x00002210 0x0 ../qsys_tutorial_lcd_bsp//obj/HAL/src/crt0.o + .bss 0x00002210 0x0 obj/default/hello_world_small.o + .bss 0x00002210 0x0 obj/default/hex_encoder.o + .bss 0x00002210 0x0 obj/default/hex_out.o + .bss 0x00002210 0x0 obj/default/input_int.o + .bss 0x00002210 0x0 obj/default/inst_decoder.o + .bss 0x00002210 0x140 obj/default/sys_memory.o + .bss 0x00002350 0x0 obj/default/sys_register.o + .bss 0x00002350 0x0 obj/default/system.o + .bss 0x00002350 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-divmod.o) + .bss 0x00002350 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-mul.o) + .bss 0x00002350 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-ctype_.o) + .bss 0x00002350 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-sprintf.o) + .bss 0x00002350 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-vfprintf.o) + .bss 0x00002350 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-fvwrite_small_str.o) + .bss 0x00002350 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-impure.o) + .bss 0x00002350 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-memmove.o) + .bss 0x00002350 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-strlen.o) + .bss 0x00002350 0x0 ../qsys_tutorial_lcd_bsp/\libhal_bsp.a(alt_load.o) + .bss 0x00002350 0x0 ../qsys_tutorial_lcd_bsp/\libhal_bsp.a(alt_main.o) + .bss 0x00002350 0x0 ../qsys_tutorial_lcd_bsp/\libhal_bsp.a(alt_sys_init.o) + .bss 0x00002350 0x0 ../qsys_tutorial_lcd_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) + .bss 0x00002350 0x0 ../qsys_tutorial_lcd_bsp/\libhal_bsp.a(alt_icache_flush_all.o) + .bss 0x00002350 0x0 ../qsys_tutorial_lcd_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) + *(COMMON) + COMMON 0x00002350 0xf obj/default/sys_register.o + 0x00002350 global_registers + 0x00002360 . = ALIGN (0x4) + *fill* 0x0000235f 0x1 00 + 0x00002360 __bss_end = ABSOLUTE (.) + +.onchip_memory 0x00002360 0x0 + 0x00002360 PROVIDE (_alt_partition_onchip_memory_start, ABSOLUTE (.)) + *(.onchip_memory. onchip_memory.*) + 0x00002360 . = ALIGN (0x4) + 0x00002360 PROVIDE (_alt_partition_onchip_memory_end, ABSOLUTE (.)) + 0x00002360 _end = ABSOLUTE (.) + 0x00002360 end = ABSOLUTE (.) + 0x00002360 __alt_stack_base = ABSOLUTE (.) + 0x00002360 PROVIDE (_alt_partition_onchip_memory_load_addr, LOADADDR (.onchip_memory)) + +.stab + *(.stab) + +.stabstr + *(.stabstr) + +.stab.excl + *(.stab.excl) + +.stab.exclstr + *(.stab.exclstr) + +.stab.index + *(.stab.index) + +.stab.indexstr + *(.stab.indexstr) + +.comment 0x00000000 0x26 + *(.comment) + .comment 0x00000000 0x26 obj/default/hello_world_small.o + 0x27 (size before relaxing) + .comment 0x00000000 0x27 obj/default/hex_encoder.o + .comment 0x00000000 0x27 obj/default/hex_out.o + .comment 0x00000000 0x27 obj/default/input_int.o + .comment 0x00000000 0x27 obj/default/inst_decoder.o + .comment 0x00000000 0x27 obj/default/sys_memory.o + .comment 0x00000000 0x27 obj/default/sys_register.o + .comment 0x00000000 0x27 obj/default/system.o + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-divmod.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-mul.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-ctype_.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-sprintf.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-vfprintf.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-fvwrite_small_str.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-impure.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-memmove.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-strlen.o) + .comment 0x00000000 0x27 ../qsys_tutorial_lcd_bsp/\libhal_bsp.a(alt_load.o) + .comment 0x00000000 0x27 ../qsys_tutorial_lcd_bsp/\libhal_bsp.a(alt_main.o) + .comment 0x00000000 0x27 ../qsys_tutorial_lcd_bsp/\libhal_bsp.a(alt_sys_init.o) + .comment 0x00000000 0x27 ../qsys_tutorial_lcd_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) + .comment 0x00000000 0x27 ../qsys_tutorial_lcd_bsp/\libhal_bsp.a(alt_icache_flush_all.o) + .comment 0x00000000 0x27 ../qsys_tutorial_lcd_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) + +.debug + *(.debug) + +.line + *(.line) + +.debug_srcinfo + *(.debug_srcinfo) + +.debug_sfnames + *(.debug_sfnames) + +.debug_aranges 0x00000000 0x2c8 + *(.debug_aranges) + .debug_aranges + 0x00000000 0x28 ../qsys_tutorial_lcd_bsp//obj/HAL/src/crt0.o + .debug_aranges + 0x00000028 0x20 obj/default/hello_world_small.o + .debug_aranges + 0x00000048 0x20 obj/default/hex_encoder.o + .debug_aranges + 0x00000068 0x20 obj/default/hex_out.o + .debug_aranges + 0x00000088 0x20 obj/default/input_int.o + .debug_aranges + 0x000000a8 0x20 obj/default/inst_decoder.o + .debug_aranges + 0x000000c8 0x20 obj/default/sys_memory.o + .debug_aranges + 0x000000e8 0x20 obj/default/sys_register.o + .debug_aranges + 0x00000108 0x20 obj/default/system.o + .debug_aranges + 0x00000128 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-divmod.o) + .debug_aranges + 0x00000148 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-mul.o) + .debug_aranges + 0x00000168 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-sprintf.o) + .debug_aranges + 0x00000188 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-vfprintf.o) + .debug_aranges + 0x000001a8 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-fvwrite_small_str.o) + .debug_aranges + 0x000001c8 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-memmove.o) + .debug_aranges + 0x000001e8 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-strlen.o) + .debug_aranges + 0x00000208 0x20 ../qsys_tutorial_lcd_bsp/\libhal_bsp.a(alt_load.o) + .debug_aranges + 0x00000228 0x20 ../qsys_tutorial_lcd_bsp/\libhal_bsp.a(alt_main.o) + .debug_aranges + 0x00000248 0x20 ../qsys_tutorial_lcd_bsp/\libhal_bsp.a(alt_sys_init.o) + .debug_aranges + 0x00000268 0x20 ../qsys_tutorial_lcd_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) + .debug_aranges + 0x00000288 0x20 ../qsys_tutorial_lcd_bsp/\libhal_bsp.a(alt_icache_flush_all.o) + .debug_aranges + 0x000002a8 0x20 ../qsys_tutorial_lcd_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) + +.debug_pubnames + 0x00000000 0x5b9 + *(.debug_pubnames) + .debug_pubnames + 0x00000000 0x7b obj/default/hello_world_small.o + .debug_pubnames + 0x0000007b 0x34 obj/default/hex_encoder.o + .debug_pubnames + 0x000000af 0x43 obj/default/hex_out.o + .debug_pubnames + 0x000000f2 0x49 obj/default/input_int.o + .debug_pubnames + 0x0000013b 0xcc obj/default/inst_decoder.o + .debug_pubnames + 0x00000207 0x88 obj/default/sys_memory.o + .debug_pubnames + 0x0000028f 0x3a obj/default/sys_register.o + .debug_pubnames + 0x000002c9 0x1c obj/default/system.o + .debug_pubnames + 0x000002e5 0x48 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-divmod.o) + .debug_pubnames + 0x0000032d 0x1f c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-mul.o) + .debug_pubnames + 0x0000034c 0x2e c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-ctype_.o) + .debug_pubnames + 0x0000037a 0x2d c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-sprintf.o) + .debug_pubnames + 0x000003a7 0x45 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-vfprintf.o) + .debug_pubnames + 0x000003ec 0x2b c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-fvwrite_small_str.o) + .debug_pubnames + 0x00000417 0x39 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-impure.o) + .debug_pubnames + 0x00000450 0x1e c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-memmove.o) + .debug_pubnames + 0x0000046e 0x1d c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-strlen.o) + .debug_pubnames + 0x0000048b 0x1f ../qsys_tutorial_lcd_bsp/\libhal_bsp.a(alt_load.o) + .debug_pubnames + 0x000004aa 0x46 ../qsys_tutorial_lcd_bsp/\libhal_bsp.a(alt_main.o) + .debug_pubnames + 0x000004f0 0x42 ../qsys_tutorial_lcd_bsp/\libhal_bsp.a(alt_sys_init.o) + .debug_pubnames + 0x00000532 0x2b ../qsys_tutorial_lcd_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) + .debug_pubnames + 0x0000055d 0x2b ../qsys_tutorial_lcd_bsp/\libhal_bsp.a(alt_icache_flush_all.o) + .debug_pubnames + 0x00000588 0x31 ../qsys_tutorial_lcd_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) + +.debug_info 0x00000000 0x39d5 + *(.debug_info .gnu.linkonce.wi.*) + .debug_info 0x00000000 0x81 ../qsys_tutorial_lcd_bsp//obj/HAL/src/crt0.o + .debug_info 0x00000081 0x28d obj/default/hello_world_small.o + .debug_info 0x0000030e 0xd2 obj/default/hex_encoder.o + .debug_info 0x000003e0 0x145 obj/default/hex_out.o + .debug_info 0x00000525 0x245 obj/default/input_int.o + .debug_info 0x0000076a 0x526 obj/default/inst_decoder.o + .debug_info 0x00000c90 0x272 obj/default/sys_memory.o + .debug_info 0x00000f02 0x7d obj/default/sys_register.o + .debug_info 0x00000f7f 0x3a obj/default/system.o + .debug_info 0x00000fb9 0x21c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-divmod.o) + .debug_info 0x000011d5 0xf3 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-mul.o) + .debug_info 0x000012c8 0xa0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-ctype_.o) + .debug_info 0x00001368 0x7e7 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-sprintf.o) + .debug_info 0x00001b4f 0x9b6 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-vfprintf.o) + .debug_info 0x00002505 0x75f c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-fvwrite_small_str.o) + .debug_info 0x00002c64 0x636 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-impure.o) + .debug_info 0x0000329a 0x102 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-memmove.o) + .debug_info 0x0000339c 0xc2 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-strlen.o) + .debug_info 0x0000345e 0x12e ../qsys_tutorial_lcd_bsp/\libhal_bsp.a(alt_load.o) + .debug_info 0x0000358c 0x125 ../qsys_tutorial_lcd_bsp/\libhal_bsp.a(alt_main.o) + .debug_info 0x000036b1 0x17d ../qsys_tutorial_lcd_bsp/\libhal_bsp.a(alt_sys_init.o) + .debug_info 0x0000382e 0x8d ../qsys_tutorial_lcd_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) + .debug_info 0x000038bb 0x8d ../qsys_tutorial_lcd_bsp/\libhal_bsp.a(alt_icache_flush_all.o) + .debug_info 0x00003948 0x8d ../qsys_tutorial_lcd_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) + +.debug_abbrev 0x00000000 0x13f4 + *(.debug_abbrev) + .debug_abbrev 0x00000000 0x12 ../qsys_tutorial_lcd_bsp//obj/HAL/src/crt0.o + .debug_abbrev 0x00000012 0x145 obj/default/hello_world_small.o + .debug_abbrev 0x00000157 0x9e obj/default/hex_encoder.o + .debug_abbrev 0x000001f5 0xc7 obj/default/hex_out.o + .debug_abbrev 0x000002bc 0x185 obj/default/input_int.o + .debug_abbrev 0x00000441 0x186 obj/default/inst_decoder.o + .debug_abbrev 0x000005c7 0x13d obj/default/sys_memory.o + .debug_abbrev 0x00000704 0x6f obj/default/sys_register.o + .debug_abbrev 0x00000773 0x27 obj/default/system.o + .debug_abbrev 0x0000079a 0xe0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-divmod.o) + .debug_abbrev 0x0000087a 0x7b c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-mul.o) + .debug_abbrev 0x000008f5 0x61 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-ctype_.o) + .debug_abbrev 0x00000956 0x179 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-sprintf.o) + .debug_abbrev 0x00000acf 0x263 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-vfprintf.o) + .debug_abbrev 0x00000d32 0x184 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-fvwrite_small_str.o) + .debug_abbrev 0x00000eb6 0x13f c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-impure.o) + .debug_abbrev 0x00000ff5 0xa8 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-memmove.o) + .debug_abbrev 0x0000109d 0x7a c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-strlen.o) + .debug_abbrev 0x00001117 0x97 ../qsys_tutorial_lcd_bsp/\libhal_bsp.a(alt_load.o) + .debug_abbrev 0x000011ae 0xa6 ../qsys_tutorial_lcd_bsp/\libhal_bsp.a(alt_main.o) + .debug_abbrev 0x00001254 0xe3 ../qsys_tutorial_lcd_bsp/\libhal_bsp.a(alt_sys_init.o) + .debug_abbrev 0x00001337 0x3f ../qsys_tutorial_lcd_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) + .debug_abbrev 0x00001376 0x3f ../qsys_tutorial_lcd_bsp/\libhal_bsp.a(alt_icache_flush_all.o) + .debug_abbrev 0x000013b5 0x3f ../qsys_tutorial_lcd_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) + +.debug_line 0x00000000 0x374c + *(.debug_line) + .debug_line 0x00000000 0x66 ../qsys_tutorial_lcd_bsp//obj/HAL/src/crt0.o + .debug_line 0x00000066 0x53c obj/default/hello_world_small.o + .debug_line 0x000005a2 0x2b7 obj/default/hex_encoder.o + .debug_line 0x00000859 0x1f5 obj/default/hex_out.o + .debug_line 0x00000a4e 0x1d9 obj/default/input_int.o + .debug_line 0x00000c27 0x44c obj/default/inst_decoder.o + .debug_line 0x00001073 0x18f obj/default/sys_memory.o + .debug_line 0x00001202 0x87 obj/default/sys_register.o + .debug_line 0x00001289 0x94 obj/default/system.o + .debug_line 0x0000131d 0x24f c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-divmod.o) + .debug_line 0x0000156c 0x11a c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-mul.o) + .debug_line 0x00001686 0x81 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-ctype_.o) + .debug_line 0x00001707 0x365 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-sprintf.o) + .debug_line 0x00001a6c 0x666 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-vfprintf.o) + .debug_line 0x000020d2 0x2cf c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-fvwrite_small_str.o) + .debug_line 0x000023a1 0x230 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-impure.o) + .debug_line 0x000025d1 0x294 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-memmove.o) + .debug_line 0x00002865 0x250 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-strlen.o) + .debug_line 0x00002ab5 0x217 ../qsys_tutorial_lcd_bsp/\libhal_bsp.a(alt_load.o) + .debug_line 0x00002ccc 0x2c2 ../qsys_tutorial_lcd_bsp/\libhal_bsp.a(alt_main.o) + .debug_line 0x00002f8e 0x286 ../qsys_tutorial_lcd_bsp/\libhal_bsp.a(alt_sys_init.o) + .debug_line 0x00003214 0x1b5 ../qsys_tutorial_lcd_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) + .debug_line 0x000033c9 0x1b5 ../qsys_tutorial_lcd_bsp/\libhal_bsp.a(alt_icache_flush_all.o) + .debug_line 0x0000357e 0x1ce ../qsys_tutorial_lcd_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) + +.debug_frame 0x00000000 0x5ec + *(.debug_frame) + .debug_frame 0x00000000 0xd4 obj/default/hello_world_small.o + .debug_frame 0x000000d4 0x30 obj/default/hex_encoder.o + .debug_frame 0x00000104 0x5c obj/default/hex_out.o + .debug_frame 0x00000160 0x44 obj/default/input_int.o + .debug_frame 0x000001a4 0xf0 obj/default/inst_decoder.o + .debug_frame 0x00000294 0x78 obj/default/sys_memory.o + .debug_frame 0x0000030c 0x20 obj/default/sys_register.o + .debug_frame 0x0000032c 0x28 obj/default/system.o + .debug_frame 0x00000354 0x70 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-divmod.o) + .debug_frame 0x000003c4 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-mul.o) + .debug_frame 0x000003e4 0x40 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-sprintf.o) + .debug_frame 0x00000424 0x64 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-vfprintf.o) + .debug_frame 0x00000488 0x2c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-fvwrite_small_str.o) + .debug_frame 0x000004b4 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-memmove.o) + .debug_frame 0x000004d4 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-strlen.o) + .debug_frame 0x000004f4 0x38 ../qsys_tutorial_lcd_bsp/\libhal_bsp.a(alt_load.o) + .debug_frame 0x0000052c 0x28 ../qsys_tutorial_lcd_bsp/\libhal_bsp.a(alt_main.o) + .debug_frame 0x00000554 0x38 ../qsys_tutorial_lcd_bsp/\libhal_bsp.a(alt_sys_init.o) + .debug_frame 0x0000058c 0x20 ../qsys_tutorial_lcd_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) + .debug_frame 0x000005ac 0x20 ../qsys_tutorial_lcd_bsp/\libhal_bsp.a(alt_icache_flush_all.o) + .debug_frame 0x000005cc 0x20 ../qsys_tutorial_lcd_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) + +.debug_str 0x00000000 0x1151 + *(.debug_str) + .debug_str 0x00000000 0x152 obj/default/hello_world_small.o + 0x1b3 (size before relaxing) + .debug_str 0x00000152 0x42 obj/default/hex_encoder.o + 0x9f (size before relaxing) + .debug_str 0x00000194 0x54 obj/default/hex_out.o + 0xd5 (size before relaxing) + .debug_str 0x000001e8 0xe2 obj/default/input_int.o + 0x193 (size before relaxing) + .debug_str 0x000002ca 0x107 obj/default/inst_decoder.o + 0x226 (size before relaxing) + .debug_str 0x000003d1 0x51 obj/default/sys_memory.o + 0x1a6 (size before relaxing) + .debug_str 0x00000422 0x1e obj/default/sys_register.o + 0x9e (size before relaxing) + .debug_str 0x00000440 0xf obj/default/system.o + 0x67 (size before relaxing) + .debug_str 0x0000044f 0x10b c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-divmod.o) + 0x1b4 (size before relaxing) + .debug_str 0x0000055a 0x37 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-mul.o) + 0x175 (size before relaxing) + .debug_str 0x00000591 0xea c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-ctype_.o) + 0x119 (size before relaxing) + .debug_str 0x0000067b 0x3d8 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-sprintf.o) + 0x499 (size before relaxing) + .debug_str 0x00000a53 0x162 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-vfprintf.o) + 0x5af (size before relaxing) + .debug_str 0x00000bb5 0x5d c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-fvwrite_small_str.o) + 0x487 (size before relaxing) + .debug_str 0x00000c12 0xf8 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-impure.o) + 0x45d (size before relaxing) + .debug_str 0x00000d0a 0x104 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-memmove.o) + 0x199 (size before relaxing) + .debug_str 0x00000e0e 0x45 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-strlen.o) + 0x184 (size before relaxing) + .debug_str 0x00000e53 0x141 ../qsys_tutorial_lcd_bsp/\libhal_bsp.a(alt_load.o) + 0x1d6 (size before relaxing) + .debug_str 0x00000f94 0x70 ../qsys_tutorial_lcd_bsp/\libhal_bsp.a(alt_main.o) + 0x15a (size before relaxing) + .debug_str 0x00001004 0xaa ../qsys_tutorial_lcd_bsp/\libhal_bsp.a(alt_sys_init.o) + 0x1cd (size before relaxing) + .debug_str 0x000010ae 0x34 ../qsys_tutorial_lcd_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) + 0x119 (size before relaxing) + .debug_str 0x000010e2 0x34 ../qsys_tutorial_lcd_bsp/\libhal_bsp.a(alt_icache_flush_all.o) + 0x119 (size before relaxing) + .debug_str 0x00001116 0x3b ../qsys_tutorial_lcd_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) + 0x120 (size before relaxing) + +.debug_loc 0x00000000 0x1783 + *(.debug_loc) + .debug_loc 0x00000000 0x161 obj/default/hello_world_small.o + .debug_loc 0x00000161 0x3b9 obj/default/hex_encoder.o + .debug_loc 0x0000051a 0x24c obj/default/hex_out.o + .debug_loc 0x00000766 0x52 obj/default/input_int.o + .debug_loc 0x000007b8 0x192 obj/default/inst_decoder.o + .debug_loc 0x0000094a 0x105 obj/default/sys_memory.o + .debug_loc 0x00000a4f 0x1f obj/default/system.o + .debug_loc 0x00000a6e 0x1d2 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-divmod.o) + .debug_loc 0x00000c40 0x4f c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-mul.o) + .debug_loc 0x00000c8f 0xbe c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-sprintf.o) + .debug_loc 0x00000d4d 0x878 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-vfprintf.o) + .debug_loc 0x000015c5 0xe1 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-fvwrite_small_str.o) + .debug_loc 0x000016a6 0x4f c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-memmove.o) + .debug_loc 0x000016f5 0x1e c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-strlen.o) + .debug_loc 0x00001713 0x1f ../qsys_tutorial_lcd_bsp/\libhal_bsp.a(alt_load.o) + .debug_loc 0x00001732 0x1f ../qsys_tutorial_lcd_bsp/\libhal_bsp.a(alt_main.o) + .debug_loc 0x00001751 0x32 ../qsys_tutorial_lcd_bsp/\libhal_bsp.a(alt_sys_init.o) + +.debug_macinfo + *(.debug_macinfo) + +.debug_weaknames + *(.debug_weaknames) + +.debug_funcnames + *(.debug_funcnames) + +.debug_typenames + *(.debug_typenames) + +.debug_varnames + *(.debug_varnames) + +.debug_alt_sim_info + 0x00000000 0x10 + *(.debug_alt_sim_info) + .debug_alt_sim_info + 0x00000000 0x10 ../qsys_tutorial_lcd_bsp//obj/HAL/src/crt0.o + 0x00004000 __alt_data_end = 0x4000 + 0x00004000 PROVIDE (__alt_stack_pointer, __alt_data_end) + 0x00002360 PROVIDE (__alt_stack_limit, __alt_stack_base) + 0x00002360 PROVIDE (__alt_heap_start, end) + 0x00004000 PROVIDE (__alt_heap_limit, 0x4000) +OUTPUT(qsys_tutorial_lcd.elf elf32-littlenios2) + +.debug_ranges 0x00000000 0x190 + .debug_ranges 0x00000000 0x20 ../qsys_tutorial_lcd_bsp//obj/HAL/src/crt0.o + .debug_ranges 0x00000020 0x18 obj/default/hello_world_small.o + .debug_ranges 0x00000038 0x140 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-vfprintf.o) + .debug_ranges 0x00000178 0x18 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-fvwrite_small_str.o) diff --git a/software/qsys_tutorial_lcd/qsys_tutorial_lcd.objdump b/software/qsys_tutorial_lcd/qsys_tutorial_lcd.objdump new file mode 100644 index 0000000..9b0be08 --- /dev/null +++ b/software/qsys_tutorial_lcd/qsys_tutorial_lcd.objdump @@ -0,0 +1,3491 @@ + +qsys_tutorial_lcd.elf: file format elf32-littlenios2 +qsys_tutorial_lcd.elf +architecture: nios2, flags 0x00000112: +EXEC_P, HAS_SYMS, D_PAGED +start address 0x00000020 + +Program Header: + LOAD off 0x00001000 vaddr 0x00000000 paddr 0x00000000 align 2**12 + filesz 0x00000020 memsz 0x00000020 flags r-x + LOAD off 0x00001020 vaddr 0x00000020 paddr 0x00000020 align 2**12 + filesz 0x00001fec memsz 0x00001fec flags r-x + LOAD off 0x0000300c vaddr 0x0000200c paddr 0x000020fc align 2**12 + filesz 0x000000f0 memsz 0x000000f0 flags rw- + LOAD off 0x000031ec vaddr 0x000021ec paddr 0x000021ec align 2**12 + filesz 0x00000000 memsz 0x00000174 flags rw- + +Sections: +Idx Name Size VMA LMA File off Algn + 0 .entry 00000020 00000000 00000000 00001000 2**5 + CONTENTS, ALLOC, LOAD, READONLY, CODE + 1 .text 00001d1c 00000020 00000020 00001020 2**2 + CONTENTS, ALLOC, LOAD, READONLY, CODE + 2 .rodata 000002d0 00001d3c 00001d3c 00002d3c 2**2 + CONTENTS, ALLOC, LOAD, READONLY, DATA + 3 .rwdata 000000f0 0000200c 000020fc 0000300c 2**2 + CONTENTS, ALLOC, LOAD, DATA, SMALL_DATA + 4 .bss 00000174 000021ec 000021ec 000031ec 2**2 + ALLOC, SMALL_DATA + 5 .comment 00000026 00000000 00000000 000030fc 2**0 + CONTENTS, READONLY + 6 .debug_aranges 000002c8 00000000 00000000 00003128 2**3 + CONTENTS, READONLY, DEBUGGING + 7 .debug_pubnames 000005b9 00000000 00000000 000033f0 2**0 + CONTENTS, READONLY, DEBUGGING + 8 .debug_info 000039d5 00000000 00000000 000039a9 2**0 + CONTENTS, READONLY, DEBUGGING + 9 .debug_abbrev 000013f4 00000000 00000000 0000737e 2**0 + CONTENTS, READONLY, DEBUGGING + 10 .debug_line 0000374c 00000000 00000000 00008772 2**0 + CONTENTS, READONLY, DEBUGGING + 11 .debug_frame 000005ec 00000000 00000000 0000bec0 2**2 + CONTENTS, READONLY, DEBUGGING + 12 .debug_str 00001151 00000000 00000000 0000c4ac 2**0 + CONTENTS, READONLY, DEBUGGING + 13 .debug_loc 00001783 00000000 00000000 0000d5fd 2**0 + CONTENTS, READONLY, DEBUGGING + 14 .debug_alt_sim_info 00000010 00000000 00000000 0000ed80 2**2 + CONTENTS, READONLY, DEBUGGING + 15 .debug_ranges 00000190 00000000 00000000 0000ed90 2**3 + CONTENTS, READONLY, DEBUGGING + 16 .thread_model 00000003 00000000 00000000 000103ea 2**0 + CONTENTS, READONLY + 17 .cpu 0000000f 00000000 00000000 000103ed 2**0 + CONTENTS, READONLY + 18 .qsys 00000001 00000000 00000000 000103fc 2**0 + CONTENTS, READONLY + 19 .simulation_enabled 00000001 00000000 00000000 000103fd 2**0 + CONTENTS, READONLY + 20 .stderr_dev 00000009 00000000 00000000 000103fe 2**0 + CONTENTS, READONLY + 21 .stdin_dev 00000009 00000000 00000000 00010407 2**0 + CONTENTS, READONLY + 22 .stdout_dev 00000009 00000000 00000000 00010410 2**0 + CONTENTS, READONLY + 23 .sopc_system_name 0000000b 00000000 00000000 00010419 2**0 + CONTENTS, READONLY + 24 .quartus_project_dir 00000030 00000000 00000000 00010424 2**0 + CONTENTS, READONLY + 25 .sopcinfo 00084495 00000000 00000000 00010454 2**0 + CONTENTS, READONLY +SYMBOL TABLE: +00000000 l d .entry 00000000 .entry +00000020 l d .text 00000000 .text +00001d3c l d .rodata 00000000 .rodata +0000200c l d .rwdata 00000000 .rwdata +000021ec l d .bss 00000000 .bss +00000000 l d .comment 00000000 .comment +00000000 l d .debug_aranges 00000000 .debug_aranges +00000000 l d .debug_pubnames 00000000 .debug_pubnames +00000000 l d .debug_info 00000000 .debug_info +00000000 l d .debug_abbrev 00000000 .debug_abbrev +00000000 l d .debug_line 00000000 .debug_line +00000000 l d .debug_frame 00000000 .debug_frame +00000000 l d .debug_str 00000000 .debug_str +00000000 l d .debug_loc 00000000 .debug_loc +00000000 l d .debug_alt_sim_info 00000000 .debug_alt_sim_info +00000000 l d .debug_ranges 00000000 .debug_ranges +00000058 l .text 00000000 alt_after_alt_main +00000000 l df *ABS* 00000000 hello_world_small.c +00000000 l df *ABS* 00000000 hex_encoder.c +00000000 l df *ABS* 00000000 hex_out.c +00000000 l df *ABS* 00000000 input_int.c +000021fc l O .bss 00000001 status.1396 +000021f8 l O .bss 00000004 event_code.1397 +00000000 l df *ABS* 00000000 inst_decoder.c +00000000 l df *ABS* 00000000 sys_memory.c +00002210 l O .bss 00000040 memory +00002250 l O .bss 00000100 inst_memory +00000000 l df *ABS* 00000000 sys_register.c +00000000 l df *ABS* 00000000 system.c +00000000 l df *ABS* 00000000 lib2-divmod.c +00001160 l F .text 0000007c udivmodsi4 +00000000 l df *ABS* 00000000 lib2-mul.c +00000000 l df *ABS* 00000000 ctype_.c +00001e89 l O .rodata 00000180 _ctype_b +00000000 l df *ABS* 00000000 sprintf.c +00000000 l df *ABS* 00000000 vfprintf.c +000013d8 l F .text 00000080 print_repeat +00000000 l df *ABS* 00000000 fvwrite_small_str.c +00000000 l df *ABS* 00000000 impure.c +0000200c l O .rwdata 000000e0 impure_data +00000000 l df *ABS* 00000000 memmove.c +00000000 l df *ABS* 00000000 strlen.c +00000000 l df *ABS* 00000000 alt_load.c +00001c50 l F .text 00000020 alt_load_section +00000000 l df *ABS* 00000000 alt_main.c +00000000 l df *ABS* 00000000 alt_sys_init.c +00000000 l df *ABS* 00000000 alt_dcache_flush_all.c +00000000 l df *ABS* 00000000 alt_icache_flush_all.c +00000000 l df *ABS* 00000000 altera_nios2_qsys_irq.c +00000cf4 g F .text 00000010 inst_load +00001cdc g F .text 0000002c alt_main +000020fc g *ABS* 00000000 __flash_rwdata_start +000008f8 g F .text 00000050 clear_block +000002a0 g F .text 000000a4 store_value +00000be4 g F .text 00000020 inst_add +00000cb8 g F .text 0000002c inst_jine +00001bd0 g F .text 00000060 memmove +000020f8 g O .rwdata 00000004 jtag_uart +00001b18 g F .text 000000b8 __sfvwrite_small_str +00000000 g F .entry 0000000c __reset +00000020 g *ABS* 00000000 __flash_exceptions_start +00002208 g O .bss 00000004 alt_argv +0000a0ec g *ABS* 00000000 _gp +00000bc4 g F .text 0000001c inst_jump +00000130 g F .text 000000a0 run_proc +0000129c g F .text 00000008 __udivsi3 +00000c8c g F .text 0000002c inst_jieq +00000d04 g F .text 0000004c inst_output +000010a8 g F .text 00000070 memory_store +000020f4 g O .rwdata 00000004 _global_impure_ptr +00002360 g *ABS* 00000000 __bss_end +000021ec g O .bss 00000005 stack +000020ec g O .rwdata 00000004 __ctype_ptr +00000d50 g F .text 00000038 inst_fetch +00001d2c g F .text 00000004 alt_dcache_flush_all +00002350 g O .bss 0000000f global_registers +00000c3c g F .text 00000028 inst_jeq +000020fc g *ABS* 00000000 __ram_rwdata_end +00000000 g *ABS* 00000000 __alt_mem_onchip_memory +0000200c g *ABS* 00000000 __ram_rodata_end +000012a4 g F .text 00000008 __umodsi3 +00002360 g *ABS* 00000000 end +00004000 g *ABS* 00000000 __alt_stack_pointer +00001458 g F .text 0000069c ___vfprintf_internal_r +00001368 g F .text 00000070 _sprintf_r +0000005c g F .text 0000003c wait +00000948 g F .text 000000fc print_number +00000020 g F .text 0000003c _start +0000081c g F .text 000000dc print_block +00001d08 g F .text 00000004 alt_sys_init +000012ac g F .text 00000038 __mulsi3 +0000200c g *ABS* 00000000 __ram_rwdata_start +00001d3c g *ABS* 00000000 __ram_rodata_start +00001134 g F .text 0000002c panic +00002360 g *ABS* 00000000 __alt_stack_base +00000be0 g F .text 00000004 inst_delay +00000ce4 g F .text 00000010 inst_store +00000344 g F .text 000000a4 init +000021ec g *ABS* 00000000 __bss_start +000003e8 g F .text 0000007c main +0000220c g O .bss 00000004 alt_envp +00000464 g F .text 00000124 encodeNumHex +00000bc0 g F .text 00000004 in_int +000011dc g F .text 00000060 __divsi3 +00001d3c g *ABS* 00000000 __flash_rodata_start +00001d0c g F .text 00000020 alt_irq_init +000012e4 g F .text 00000084 sprintf +00000098 g F .text 00000098 print_change_memory +00000a84 g F .text 0000013c push_int +000020f0 g O .rwdata 00000004 _impure_ptr +00002204 g O .bss 00000004 alt_argc +00002200 g O .bss 00000004 global_current_memory +00000020 g *ABS* 00000000 __ram_exceptions_start +00000588 g F .text 00000294 encodeLatHex +000020fc g *ABS* 00000000 _edata +00002360 g *ABS* 00000000 _end +00000020 g *ABS* 00000000 __ram_exceptions_end +00000ef8 g F .text 00000044 memory_init +00001d34 g F .text 00000008 altera_nios2_qsys_irq_init +0000000c g .entry 00000000 exit +00001038 g F .text 00000070 memory_load +0000123c g F .text 00000060 __modsi3 +00004000 g *ABS* 00000000 __alt_data_end +00000d88 g F .text 00000170 inst_decode +00001d88 g O .rodata 00000101 _ctype_ +00000c04 g F .text 00000038 inst_comp +00001118 g F .text 0000001c registers_init +0000000c g .entry 00000000 _exit +00000c64 g F .text 00000028 inst_jne +00001c30 g F .text 00000020 strlen +000001d0 g F .text 000000d0 store_inst +00001d30 g F .text 00000004 alt_icache_flush_all +00001af4 g F .text 00000024 __vfprintf_internal +00000f3c g F .text 00000080 inst_memory_store +00000a44 g F .text 00000040 push_decode +00001c70 g F .text 0000006c alt_load +000021f4 g O .bss 00000001 PUSH_EVENT +00000fbc g F .text 0000007c inst_memory_load + + + +Disassembly of section .entry: + +00000000 <__reset>: + * Jump to the _start entry point in the .text section if reset code + * is allowed or if optimizing for RTL simulation. + */ +#if defined(ALT_ALLOW_CODE_AT_RESET) || defined(ALT_SIM_OPTIMIZE) + /* Jump to the _start entry point in the .text section. */ + movhi r1, %hi(_start) + 0: 00400034 movhi at,0 + ori r1, r1, %lo(_start) + 4: 08400814 ori at,at,32 + jmp r1 + 8: 0800683a jmp at + +0000000c <_exit>: + ... + +Disassembly of section .text: + +00000020 <_start>: +#if (NIOS2_NUM_OF_SHADOW_REG_SETS == 0) + /* + * Now that the caches are initialized, set up the stack pointer. + * The value provided by the linker is assumed to be correctly aligned. + */ + movhi sp, %hi(__alt_stack_pointer) + 20: 06c00034 movhi sp,0 + ori sp, sp, %lo(__alt_stack_pointer) + 24: ded00014 ori sp,sp,16384 + + /* Set up the global pointer. */ + movhi gp, %hi(_gp) + 28: 06800034 movhi gp,0 + ori gp, gp, %lo(_gp) + 2c: d6a83b14 ori gp,gp,41196 + */ +#ifndef ALT_SIM_OPTIMIZE + /* Log that the BSS is about to be cleared. */ + ALT_LOG_PUTS(alt_log_msg_bss) + + movhi r2, %hi(__bss_start) + 30: 00800034 movhi r2,0 + ori r2, r2, %lo(__bss_start) + 34: 10887b14 ori r2,r2,8684 + + movhi r3, %hi(__bss_end) + 38: 00c00034 movhi r3,0 + ori r3, r3, %lo(__bss_end) + 3c: 18c8d814 ori r3,r3,9056 + + beq r2, r3, 1f + 40: 10c00326 beq r2,r3,50 <_start+0x30> + +0: + stw zero, (r2) + 44: 10000015 stw zero,0(r2) + addi r2, r2, 4 + 48: 10800104 addi r2,r2,4 + bltu r2, r3, 0b + 4c: 10fffd36 bltu r2,r3,44 <_start+0x24> + * section aren't defined until alt_load() has been called). + */ + mov et, zero +#endif + + call alt_load + 50: 0001c700 call 1c70 + + /* Log that alt_main is about to be called. */ + ALT_LOG_PUTS(alt_log_msg_alt_main) + + /* Call the C entry point. It should never return. */ + call alt_main + 54: 0001cdc0 call 1cdc + +00000058 : + + /* Wait in infinite loop in case alt_main does return. */ +alt_after_alt_main: + br alt_after_alt_main + 58: 003fff06 br 58 + +0000005c : + +#define ledrs (volatile int *) 0x00050a0 + +#define T_MS10 12500 //(10ms) + +void wait(unsigned int s) { + 5c: defffe04 addi sp,sp,-8 + volatile i; + for (i = 0; i < T_MS10*s; i++); + 60: 014c3504 movi r5,12500 + +#define ledrs (volatile int *) 0x00050a0 + +#define T_MS10 12500 //(10ms) + +void wait(unsigned int s) { + 64: dfc00115 stw ra,4(sp) + volatile i; + for (i = 0; i < T_MS10*s; i++); + 68: d8000015 stw zero,0(sp) + 6c: 00012ac0 call 12ac <__mulsi3> + 70: 1007883a mov r3,r2 + 74: 00000306 br 84 + 78: d8800017 ldw r2,0(sp) + 7c: 10800044 addi r2,r2,1 + 80: d8800015 stw r2,0(sp) + 84: d8800017 ldw r2,0(sp) + 88: 10fffb36 bltu r2,r3,78 +} + 8c: dfc00117 ldw ra,4(sp) + 90: dec00204 addi sp,sp,8 + 94: f800283a ret + +00000098 : + }while( inst_rec.inst != INST_END ); + + //print_block(" end", 4, HEX0_3); +} + +void print_change_memory(unsigned int current_memory) { + 98: defffb04 addi sp,sp,-20 + 9c: 200d883a mov r6,r4 + char buf[5]; + sprintf(buf, "g %2d", current_memory); + a0: 01400034 movhi r5,0 + a4: 29474f04 addi r5,r5,7484 + a8: d809883a mov r4,sp + }while( inst_rec.inst != INST_END ); + + //print_block(" end", 4, HEX0_3); +} + +void print_change_memory(unsigned int current_memory) { + ac: dfc00415 stw ra,16(sp) + b0: dc400315 stw r17,12(sp) + b4: dc000215 stw r16,8(sp) + char buf[5]; + sprintf(buf, "g %2d", current_memory); + print_block(buf, 4, HEX0_3); + print_block("an", 2, HEX4_5); + b8: 04400044 movi r17,1 + //print_block(" end", 4, HEX0_3); +} + +void print_change_memory(unsigned int current_memory) { + char buf[5]; + sprintf(buf, "g %2d", current_memory); + bc: 00012e40 call 12e4 + print_block(buf, 4, HEX0_3); + print_block("an", 2, HEX4_5); + c0: 04000084 movi r16,2 +} + +void print_change_memory(unsigned int current_memory) { + char buf[5]; + sprintf(buf, "g %2d", current_memory); + print_block(buf, 4, HEX0_3); + c4: d809883a mov r4,sp + c8: 01400104 movi r5,4 + cc: 000d883a mov r6,zero + d0: 000081c0 call 81c + print_block("an", 2, HEX4_5); + d4: 800b883a mov r5,r16 + d8: 880d883a mov r6,r17 + dc: 01000034 movhi r4,0 + e0: 21075104 addi r4,r4,7492 + e4: 000081c0 call 81c + print_block("ch", 2, HEX6_7); + e8: 800b883a mov r5,r16 + ec: 800d883a mov r6,r16 + f0: 01000034 movhi r4,0 + f4: 21075204 addi r4,r4,7496 + f8: 000081c0 call 81c + wait(200); + fc: 01003204 movi r4,200 + 100: 000005c0 call 5c + clear_block(HEX0_3); clear_block(HEX4_5); clear_block(HEX6_7); + 104: 0009883a mov r4,zero + 108: 00008f80 call 8f8 + 10c: 8809883a mov r4,r17 + 110: 00008f80 call 8f8 + 114: 8009883a mov r4,r16 + 118: 00008f80 call 8f8 +} + 11c: dfc00417 ldw ra,16(sp) + 120: dc400317 ldw r17,12(sp) + 124: dc000217 ldw r16,8(sp) + 128: dec00504 addi sp,sp,20 + 12c: f800283a ret + +00000130 : + print_block(buf, 4, HEX0_3); + sprintf(buf, "%02x", global_registers[Spc]); + print_block(buf, 2, HEX4_5); + } +} +void run_proc() { + 130: defffa04 addi sp,sp,-24 + 134: dfc00515 stw ra,20(sp) + 138: dc400415 stw r17,16(sp) + 13c: dc000315 stw r16,12(sp) + volatile struct InstRec inst_rec; + + //print_block(" go ", 4, HEX0_3); + + global_registers[Spc] = 0; + print_block("pc", 2, HEX6_7); + 140: 01400084 movi r5,2 +void run_proc() { + volatile struct InstRec inst_rec; + + //print_block(" go ", 4, HEX0_3); + + global_registers[Spc] = 0; + 144: 00800034 movhi r2,0 + 148: 1088d404 addi r2,r2,9040 + print_block("pc", 2, HEX6_7); + 14c: 01000034 movhi r4,0 + 150: 21075304 addi r4,r4,7500 + 154: 280d883a mov r6,r5 +void run_proc() { + volatile struct InstRec inst_rec; + + //print_block(" go ", 4, HEX0_3); + + global_registers[Spc] = 0; + 158: 10000045 stb zero,1(r2) + print_block("pc", 2, HEX6_7); + 15c: 000081c0 call 81c + do { + // pc�\�� + { + char buf[5]; + sprintf(buf, "%02x", global_registers[Spc]); + 160: 04400034 movhi r17,0 + 164: 8c48d404 addi r17,r17,9040 + 168: 89800047 ldb r6,1(r17) + 16c: dc000104 addi r16,sp,4 + 170: 01400034 movhi r5,0 + 174: 29475404 addi r5,r5,7504 + 178: 8009883a mov r4,r16 + 17c: 00012e40 call 12e4 + print_block(buf, 2, HEX4_5); + 180: 8009883a mov r4,r16 + 184: 01400084 movi r5,2 + 188: 01800044 movi r6,1 + 18c: 000081c0 call 81c + } + // ���߃t�F�b�` + inst_rec = inst_fetch(); + 190: 0000d500 call d50 + 194: d8800015 stw r2,0(sp) + // ���߃f�R�[�h���s + inst_decode(inst_rec); + 198: d9000017 ldw r4,0(sp) + 19c: 0000d880 call d88 + if ( global_registers[Ssw_run] ) wait(100); + 1a0: 88800347 ldb r2,13(r17) + 1a4: 01001904 movi r4,100 + 1a8: 10000126 beq r2,zero,1b0 + 1ac: 000005c0 call 5c + }while( inst_rec.inst != INST_END ); + 1b0: d8800017 ldw r2,0(sp) + 1b4: 108003cc andi r2,r2,15 + 1b8: 103fe91e bne r2,zero,160 + + //print_block(" end", 4, HEX0_3); +} + 1bc: dfc00517 ldw ra,20(sp) + 1c0: dc400417 ldw r17,16(sp) + 1c4: dc000317 ldw r16,12(sp) + 1c8: dec00604 addi sp,sp,24 + 1cc: f800283a ret + +000001d0 : + print_block(buf, 2, HEX6_7); + print_block("--", 2, HEX4_5); + sprintf(buf, "%04d", global_registers[Ssw_data]); + print_block(buf, 4, HEX0_3); +} +void store_inst(){ + 1d0: defffb04 addi sp,sp,-20 + 1d4: dc000215 stw r16,8(sp) + char reg_index; + struct InstRec inst_rec; + + // �K�v�ȏ��̎擾 + inst = global_registers[Ssw_inst]; + mem_index = global_registers[Ssw_memi]; + 1d8: 04000034 movhi r16,0 + 1dc: 8408d404 addi r16,r16,9040 + reg_index = global_registers[Ssw_regi]; + inst_rec.inst = (unsigned int)inst; + inst_rec.memi = (unsigned int)mem_index; + 1e0: 80c00283 ldbu r3,10(r16) + print_block(buf, 2, HEX6_7); + print_block("--", 2, HEX4_5); + sprintf(buf, "%04d", global_registers[Ssw_data]); + print_block(buf, 4, HEX0_3); +} +void store_inst(){ + 1e4: dc400315 stw r17,12(sp) + + // �K�v�ȏ��̎擾 + inst = global_registers[Ssw_inst]; + mem_index = global_registers[Ssw_memi]; + reg_index = global_registers[Ssw_regi]; + inst_rec.inst = (unsigned int)inst; + 1e8: 84400203 ldbu r17,8(r16) + 1ec: 008003c4 movi r2,15 + inst_rec.memi = (unsigned int)mem_index; + inst_rec.regi = (unsigned int)reg_index; + 1f0: 81800243 ldbu r6,9(r16) + // �K�v�ȏ��̎擾 + inst = global_registers[Ssw_inst]; + mem_index = global_registers[Ssw_memi]; + reg_index = global_registers[Ssw_regi]; + inst_rec.inst = (unsigned int)inst; + inst_rec.memi = (unsigned int)mem_index; + 1f4: 1886703a and r3,r3,r2 + + // �K�v�ȏ��̎擾 + inst = global_registers[Ssw_inst]; + mem_index = global_registers[Ssw_memi]; + reg_index = global_registers[Ssw_regi]; + inst_rec.inst = (unsigned int)inst; + 1f8: 017ffc04 movi r5,-16 + inst_rec.memi = (unsigned int)mem_index; + 1fc: 1806913a slli r3,r3,4 + + // �K�v�ȏ��̎擾 + inst = global_registers[Ssw_inst]; + mem_index = global_registers[Ssw_memi]; + reg_index = global_registers[Ssw_regi]; + inst_rec.inst = (unsigned int)inst; + 200: 88a2703a and r17,r17,r2 + 204: 294a703a and r5,r5,r5 + inst_rec.memi = (unsigned int)mem_index; + inst_rec.regi = (unsigned int)reg_index; + 208: 308c703a and r6,r6,r2 + + // �K�v�ȏ��̎擾 + inst = global_registers[Ssw_inst]; + mem_index = global_registers[Ssw_memi]; + reg_index = global_registers[Ssw_regi]; + inst_rec.inst = (unsigned int)inst; + 20c: 894ab03a or r5,r17,r5 + inst_rec.memi = (unsigned int)mem_index; + 210: 00bfc3c4 movi r2,-241 + inst_rec.regi = (unsigned int)reg_index; + 214: 300c923a slli r6,r6,8 + // �K�v�ȏ��̎擾 + inst = global_registers[Ssw_inst]; + mem_index = global_registers[Ssw_memi]; + reg_index = global_registers[Ssw_regi]; + inst_rec.inst = (unsigned int)inst; + inst_rec.memi = (unsigned int)mem_index; + 218: 288a703a and r5,r5,r2 + 21c: 28cab03a or r5,r5,r3 + inst_rec.regi = (unsigned int)reg_index; + + // �X�g�A���� + inst_memory_store((unsigned int)global_registers[Spc], inst_rec); + 220: 81000047 ldb r4,1(r16) + inst = global_registers[Ssw_inst]; + mem_index = global_registers[Ssw_memi]; + reg_index = global_registers[Ssw_regi]; + inst_rec.inst = (unsigned int)inst; + inst_rec.memi = (unsigned int)mem_index; + inst_rec.regi = (unsigned int)reg_index; + 224: 00bc3fc4 movi r2,-3841 + 228: 288a703a and r5,r5,r2 + + // �X�g�A���� + inst_memory_store((unsigned int)global_registers[Spc], inst_rec); + 22c: 298ab03a or r5,r5,r6 + print_block(buf, 2, HEX6_7); + print_block("--", 2, HEX4_5); + sprintf(buf, "%04d", global_registers[Ssw_data]); + print_block(buf, 4, HEX0_3); +} +void store_inst(){ + 230: dfc00415 stw ra,16(sp) + inst_rec.inst = (unsigned int)inst; + inst_rec.memi = (unsigned int)mem_index; + inst_rec.regi = (unsigned int)reg_index; + + // �X�g�A���� + inst_memory_store((unsigned int)global_registers[Spc], inst_rec); + 234: 0000f3c0 call f3c + global_registers[Spc]++; + 238: 80800043 ldbu r2,1(r16) + + { + char buf[5]; + sprintf(buf, "%04d", inst_rec.inst); + 23c: 880d883a mov r6,r17 + 240: d809883a mov r4,sp + 244: 01400034 movhi r5,0 + 248: 29475604 addi r5,r5,7512 + inst_rec.memi = (unsigned int)mem_index; + inst_rec.regi = (unsigned int)reg_index; + + // �X�g�A���� + inst_memory_store((unsigned int)global_registers[Spc], inst_rec); + global_registers[Spc]++; + 24c: 10800044 addi r2,r2,1 + 250: 80800045 stb r2,1(r16) + + { + char buf[5]; + sprintf(buf, "%04d", inst_rec.inst); + 254: 00012e40 call 12e4 + print_block(buf, 4, HEX0_3); + 258: d809883a mov r4,sp + 25c: 01400104 movi r5,4 + 260: 000d883a mov r6,zero + 264: 000081c0 call 81c + sprintf(buf, "%02x", global_registers[Spc]); + 268: 81800047 ldb r6,1(r16) + 26c: d809883a mov r4,sp + 270: 01400034 movhi r5,0 + 274: 29475404 addi r5,r5,7504 + 278: 00012e40 call 12e4 + print_block(buf, 2, HEX4_5); + 27c: d809883a mov r4,sp + 280: 01400084 movi r5,2 + 284: 01800044 movi r6,1 + 288: 000081c0 call 81c + } +} + 28c: dfc00417 ldw ra,16(sp) + 290: dc400317 ldw r17,12(sp) + 294: dc000217 ldw r16,8(sp) + 298: dec00504 addi sp,sp,20 + 29c: f800283a ret + +000002a0 : + clear_block(HEX0_3); clear_block(HEX4_5); clear_block(HEX6_7); +} + +char stack[5]; + +void store_value(){ + 2a0: defffa04 addi sp,sp,-24 + 2a4: dc800415 stw r18,16(sp) + char buf[5]; + unsigned int memi = global_registers[Ssw_memi]; + 2a8: 04800034 movhi r18,0 + 2ac: 9488d404 addi r18,r18,9040 + clear_block(HEX0_3); clear_block(HEX4_5); clear_block(HEX6_7); +} + +char stack[5]; + +void store_value(){ + 2b0: dc400315 stw r17,12(sp) + char buf[5]; + unsigned int memi = global_registers[Ssw_memi]; + 2b4: 94400287 ldb r17,10(r18) + memory_store(memi, Ssw_data); + 2b8: 014001c4 movi r5,7 + clear_block(HEX0_3); clear_block(HEX4_5); clear_block(HEX6_7); +} + +char stack[5]; + +void store_value(){ + 2bc: dfc00515 stw ra,20(sp) + char buf[5]; + unsigned int memi = global_registers[Ssw_memi]; + memory_store(memi, Ssw_data); + 2c0: 8809883a mov r4,r17 + clear_block(HEX0_3); clear_block(HEX4_5); clear_block(HEX6_7); +} + +char stack[5]; + +void store_value(){ + 2c4: dc000215 stw r16,8(sp) + char buf[5]; + unsigned int memi = global_registers[Ssw_memi]; + memory_store(memi, Ssw_data); + 2c8: 00010a80 call 10a8 + sprintf(buf, "%02x", (unsigned char)memi); + print_block(buf, 2, HEX6_7); + 2cc: 04000084 movi r16,2 + +void store_value(){ + char buf[5]; + unsigned int memi = global_registers[Ssw_memi]; + memory_store(memi, Ssw_data); + sprintf(buf, "%02x", (unsigned char)memi); + 2d0: d809883a mov r4,sp + 2d4: 89803fcc andi r6,r17,255 + 2d8: 01400034 movhi r5,0 + 2dc: 29475404 addi r5,r5,7504 + 2e0: 00012e40 call 12e4 + print_block(buf, 2, HEX6_7); + 2e4: d809883a mov r4,sp + 2e8: 800b883a mov r5,r16 + 2ec: 800d883a mov r6,r16 + 2f0: 000081c0 call 81c + print_block("--", 2, HEX4_5); + 2f4: 800b883a mov r5,r16 + 2f8: 01800044 movi r6,1 + 2fc: 01000034 movhi r4,0 + 300: 21075804 addi r4,r4,7520 + 304: 000081c0 call 81c + sprintf(buf, "%04d", global_registers[Ssw_data]); + 308: 918001c7 ldb r6,7(r18) + 30c: d809883a mov r4,sp + 310: 01400034 movhi r5,0 + 314: 29475604 addi r5,r5,7512 + 318: 00012e40 call 12e4 + print_block(buf, 4, HEX0_3); + 31c: d809883a mov r4,sp + 320: 01400104 movi r5,4 + 324: 000d883a mov r6,zero + 328: 000081c0 call 81c +} + 32c: dfc00517 ldw ra,20(sp) + 330: dc800417 ldw r18,16(sp) + 334: dc400317 ldw r17,12(sp) + 338: dc000217 ldw r16,8(sp) + 33c: dec00604 addi sp,sp,24 + 340: f800283a ret + +00000344 : +void wait(unsigned int s) { + volatile i; + for (i = 0; i < T_MS10*s; i++); +} + +void init() { + 344: defffd04 addi sp,sp,-12 + 348: dfc00215 stw ra,8(sp) + 34c: dc400115 stw r17,4(sp) + 350: dc000015 stw r16,0(sp) + registers_init(); + 354: 00011180 call 1118 + memory_init(); + 358: 0000ef80 call ef8 + clear_block(HEX0_3); clear_block(HEX4_5); clear_block(HEX6_7); + 35c: 04400044 movi r17,1 + 360: 0009883a mov r4,zero + 364: 04000084 movi r16,2 + 368: 00008f80 call 8f8 + 36c: 8809883a mov r4,r17 + 370: 00008f80 call 8f8 + 374: 8009883a mov r4,r16 + 378: 00008f80 call 8f8 + print_block("he", 2, HEX6_7); + 37c: 800b883a mov r5,r16 + 380: 800d883a mov r6,r16 + 384: 01000034 movhi r4,0 + 388: 21075904 addi r4,r4,7524 + 38c: 000081c0 call 81c + print_block("lo", 2, HEX4_5); + 390: 800b883a mov r5,r16 + 394: 880d883a mov r6,r17 + 398: 01000034 movhi r4,0 + 39c: 21075a04 addi r4,r4,7528 + 3a0: 000081c0 call 81c + print_block("you1", 4, HEX0_3); + 3a4: 01400104 movi r5,4 + 3a8: 000d883a mov r6,zero + 3ac: 01000034 movhi r4,0 + 3b0: 21075b04 addi r4,r4,7532 + 3b4: 000081c0 call 81c + wait(200); + 3b8: 01003204 movi r4,200 + 3bc: 000005c0 call 5c + clear_block(HEX0_3); clear_block(HEX4_5); clear_block(HEX6_7); + 3c0: 0009883a mov r4,zero + 3c4: 00008f80 call 8f8 + 3c8: 8809883a mov r4,r17 + 3cc: 00008f80 call 8f8 + 3d0: 8009883a mov r4,r16 +} + 3d4: dfc00217 ldw ra,8(sp) + 3d8: dc400117 ldw r17,4(sp) + 3dc: dc000017 ldw r16,0(sp) + 3e0: dec00304 addi sp,sp,12 + clear_block(HEX0_3); clear_block(HEX4_5); clear_block(HEX6_7); + print_block("he", 2, HEX6_7); + print_block("lo", 2, HEX4_5); + print_block("you1", 4, HEX0_3); + wait(200); + clear_block(HEX0_3); clear_block(HEX4_5); clear_block(HEX6_7); + 3e4: 00008f81 jmpi 8f8 + +000003e8
: + wait(200); + clear_block(HEX0_3); clear_block(HEX4_5); clear_block(HEX6_7); +} + +int main() +{ + 3e8: defffe04 addi sp,sp,-8 + 3ec: dfc00115 stw ra,4(sp) + 3f0: dc000015 stw r16,0(sp) + init(); + 3f4: 00003440 call 344 + while(1) { + // interrupt + in_int(); + + // event + if (PUSH_EVENT == PUSH_VALSTR) { + 3f8: 04000034 movhi r16,0 + 3fc: 84087d04 addi r16,r16,8692 +int main() +{ + init(); + while(1) { + // interrupt + in_int(); + 400: 0000bc00 call bc0 + + // event + if (PUSH_EVENT == PUSH_VALSTR) { + 404: 80c00003 ldbu r3,0(r16) + 408: 00800084 movi r2,2 + 40c: 1880011e bne r3,r2,414 + // �l�̃X�g�A + store_value(); + 410: 00002a00 call 2a0 + } + if (PUSH_EVENT == PUSH_INSSTR) { + 414: 80c00003 ldbu r3,0(r16) + 418: 008000c4 movi r2,3 + 41c: 1880011e bne r3,r2,424 + // ���߂̃X�g�A + store_inst(); + 420: 00001d00 call 1d0 + } + if (PUSH_EVENT == PUSH_RUN) { + 424: 80c00003 ldbu r3,0(r16) + 428: 00800104 movi r2,4 + if (global_current_memory != (unsigned int)global_registers[Ssw_psel]) { + 42c: 01400034 movhi r5,0 + 430: 29488004 addi r5,r5,8704 + } + if (PUSH_EVENT == PUSH_INSSTR) { + // ���߂̃X�g�A + store_inst(); + } + if (PUSH_EVENT == PUSH_RUN) { + 434: 18bff01e bne r3,r2,3f8 + if (global_current_memory != (unsigned int)global_registers[Ssw_psel]) { + 438: 00800034 movhi r2,0 + 43c: 1088d404 addi r2,r2,9040 + 440: 10c002c7 ldb r3,11(r2) + 444: 28800017 ldw r2,0(r5) + global_current_memory = (unsigned int)global_registers[Ssw_psel]; + print_change_memory(global_current_memory); + 448: 1809883a mov r4,r3 + if (PUSH_EVENT == PUSH_INSSTR) { + // ���߂̃X�g�A + store_inst(); + } + if (PUSH_EVENT == PUSH_RUN) { + if (global_current_memory != (unsigned int)global_registers[Ssw_psel]) { + 44c: 10c00326 beq r2,r3,45c + global_current_memory = (unsigned int)global_registers[Ssw_psel]; + 450: 28c00015 stw r3,0(r5) + print_change_memory(global_current_memory); + 454: 00000980 call 98 + 458: 003fe706 br 3f8 + } + else { + // �v���O�������s + run_proc(); + 45c: 00001300 call 130 + 460: 003fe506 br 3f8 + +00000464 : +#include "hex_encoder.h" +#include + +void encodeNumHex(int hex_i, int num) { + char encoded = 0; + switch (num) { + 464: 00800244 movi r2,9 + 468: 11401336 bltu r2,r5,4b8 + 46c: 2945883a add r2,r5,r5 + 470: 1085883a add r2,r2,r2 + 474: 00c00034 movhi r3,0 + 478: 18c12204 addi r3,r3,1160 + 47c: 10c5883a add r2,r2,r3 + 480: 10800017 ldw r2,0(r2) + 484: 1000683a jmp r2 + 488: 000004c0 call 4c <_start+0x2c> + 48c: 000004c8 cmpgei zero,zero,19 + 490: 000004d0 cmplti zero,zero,19 + 494: 000004d8 cmpnei zero,zero,19 + 498: 000004e0 cmpeqi zero,zero,19 + 49c: 000004e8 cmpgeui zero,zero,19 + 4a0: 000004f0 cmpltui zero,zero,19 + 4a4: 000004f8 rdprs zero,zero,19 + 4a8: 000004b8 rdprs zero,zero,18 + 4ac: 000004b0 cmpltui zero,zero,18 + 4b0: 01400404 movi r5,16 + 4b4: 00001106 br 4fc + 4b8: 000b883a mov r5,zero + 4bc: 00000f06 br 4fc + 4c0: 01401004 movi r5,64 + 4c4: 00000d06 br 4fc + case 0: + encoded = (char)0x40; // 100 0000 + break; + 4c8: 017ffe44 movi r5,-7 + 4cc: 00000b06 br 4fc + case 1: + encoded = (char)0xF9; // 111 1001 + break; + 4d0: 01400904 movi r5,36 + 4d4: 00000906 br 4fc + case 2: + encoded = (char)0x24; // 010 0100 + break; + 4d8: 01400c04 movi r5,48 + 4dc: 00000706 br 4fc + case 3: + encoded = (char)0x30; // 011 0000 + break; + 4e0: 01400644 movi r5,25 + 4e4: 00000506 br 4fc + case 4: + encoded = (char)0x19; // 001 1001 + break; + 4e8: 01400484 movi r5,18 + 4ec: 00000306 br 4fc + case 5: + encoded = (char)0x12; // 001 0010 + break; + 4f0: 01400084 movi r5,2 + 4f4: 00000106 br 4fc + case 6: + encoded = (char)0x02; // 000 0010 + break; + 4f8: 01401604 movi r5,88 + default: + encoded = 0; + break; + } + + switch (hex_i) { + 4fc: 008001c4 movi r2,7 + 500: 11002036 bltu r2,r4,584 + 504: 2105883a add r2,r4,r4 + 508: 1085883a add r2,r2,r2 + 50c: 00c00034 movhi r3,0 + 510: 18c14804 addi r3,r3,1312 + 514: 10c5883a add r2,r2,r3 + 518: 10800017 ldw r2,0(r2) + 51c: 1000683a jmp r2 + 520: 00000540 call 54 <_start+0x34> + 524: 00000548 cmpgei zero,zero,21 + 528: 00000550 cmplti zero,zero,21 + 52c: 00000558 cmpnei zero,zero,21 + 530: 00000560 cmpeqi zero,zero,21 + 534: 00000568 cmpgeui zero,zero,21 + 538: 00000570 cmpltui zero,zero,21 + 53c: 0000057c xorhi zero,zero,21 + case 0: + *hex0 = encoded; + 540: 00941c04 movi r2,20592 + 544: 00000b06 br 574 + break; + case 1: + *hex1 = encoded; + 548: 00941804 movi r2,20576 + 54c: 00000906 br 574 + break; + case 2: + *hex2 = encoded; + 550: 00941404 movi r2,20560 + 554: 00000706 br 574 + break; + case 3: + *hex3 = encoded; + 558: 00941004 movi r2,20544 + 55c: 00000506 br 574 + break; + case 4: + *hex4 = encoded; + 560: 00940c04 movi r2,20528 + 564: 00000306 br 574 + break; + case 5: + *hex5 = encoded; + 568: 00940804 movi r2,20512 + 56c: 00000106 br 574 + break; + case 6: + *hex6 = encoded; + 570: 00940404 movi r2,20496 + 574: 11400005 stb r5,0(r2) + 578: f800283a ret + break; + case 7: + *hex7 = encoded; + 57c: 00940004 movi r2,20480 + 580: 11400005 stb r5,0(r2) + 584: f800283a ret + +00000588 : +} + +void encodeLatHex(int hex_i, char c) { + char encoded = 0; + + if (isdigit(c)) { + 588: 00800034 movhi r2,0 + 58c: 10883b04 addi r2,r2,8428 + 590: 10800017 ldw r2,0(r2) + 594: 29403fcc andi r5,r5,255 + 598: 2940201c xori r5,r5,128 + 59c: 297fe004 addi r5,r5,-128 + 5a0: 2885883a add r2,r5,r2 + 5a4: 10800003 ldbu r2,0(r2) + default: + break; + } +} + +void encodeLatHex(int hex_i, char c) { + 5a8: 2007883a mov r3,r4 + char encoded = 0; + + if (isdigit(c)) { + 5ac: 1080010c andi r2,r2,4 + 5b0: 10000226 beq r2,zero,5bc + encodeNumHex(hex_i, c-'0'); + 5b4: 297ff404 addi r5,r5,-48 + 5b8: 00004641 jmpi 464 + return; + } + + switch (c) { + 5bc: 00801b44 movi r2,109 + 5c0: 28805a26 beq r5,r2,72c + 5c4: 11401d16 blt r2,r5,63c + 5c8: 00801984 movi r2,102 + 5cc: 28804926 beq r5,r2,6f4 + 5d0: 11400e16 blt r2,r5,60c + 5d4: 00801884 movi r2,98 + 5d8: 28803e26 beq r5,r2,6d4 + 5dc: 11400716 blt r2,r5,5fc + 5e0: 00800b44 movi r2,45 + 5e4: 28803726 beq r5,r2,6c4 + 5e8: 00801844 movi r2,97 + 5ec: 28803726 beq r5,r2,6cc + 5f0: 00800804 movi r2,32 + 5f4: 28802f1e bne r5,r2,6b4 + 5f8: 00003006 br 6bc + 5fc: 00801904 movi r2,100 + 600: 28803826 beq r5,r2,6e4 + 604: 11403916 blt r2,r5,6ec + 608: 00003406 br 6dc + 60c: 00801a44 movi r2,105 + 610: 28803e26 beq r5,r2,70c + 614: 11400516 blt r2,r5,62c + 618: 008019c4 movi r2,103 + 61c: 28803726 beq r5,r2,6fc + 620: 00801a04 movi r2,104 + 624: 2880231e bne r5,r2,6b4 + 628: 00003606 br 704 + 62c: 00801ac4 movi r2,107 + 630: 28803a26 beq r5,r2,71c + 634: 11403b16 blt r2,r5,724 + 638: 00003606 br 714 + 63c: 00801d04 movi r2,116 + 640: 28804826 beq r5,r2,764 + 644: 11400c16 blt r2,r5,678 + 648: 00801c04 movi r2,112 + 64c: 28803d26 beq r5,r2,744 + 650: 11400516 blt r2,r5,668 + 654: 00801b84 movi r2,110 + 658: 28803626 beq r5,r2,734 + 65c: 00801bc4 movi r2,111 + 660: 2880141e bne r5,r2,6b4 + 664: 00003506 br 73c + 668: 00801c84 movi r2,114 + 66c: 28803926 beq r5,r2,754 + 670: 11403a16 blt r2,r5,75c + 674: 00003506 br 74c + 678: 00801dc4 movi r2,119 + 67c: 28803f26 beq r5,r2,77c + 680: 11400516 blt r2,r5,698 + 684: 00801d44 movi r2,117 + 688: 28803826 beq r5,r2,76c + 68c: 00801d84 movi r2,118 + 690: 2880081e bne r5,r2,6b4 + 694: 00003706 br 774 + 698: 00801e44 movi r2,121 + 69c: 28803b26 beq r5,r2,78c + 6a0: 28803816 blt r5,r2,784 + 6a4: 00801e84 movi r2,122 + 6a8: 2880021e bne r5,r2,6b4 + 6ac: 01401904 movi r5,100 + 6b0: 00003706 br 790 + 6b4: 000b883a mov r5,zero + 6b8: 00003506 br 790 + 6bc: 017fffc4 movi r5,-1 + 6c0: 00003306 br 790 + case ' ': + encoded = (char)0xFF; // 111 1111 + break; + 6c4: 01400fc4 movi r5,63 + 6c8: 00003106 br 790 + case '-': + encoded = (char)0x3F; // 011 1111 + break; + 6cc: 01400204 movi r5,8 + 6d0: 00002f06 br 790 + case 'a': + encoded = (char)0x08; // 000 1000 + break; + 6d4: 014000c4 movi r5,3 + 6d8: 00002d06 br 790 + case 'b': + encoded = (char)0x03; // 000 0011 + break; + 6dc: 014009c4 movi r5,39 + 6e0: 00002b06 br 790 + case 'c': + encoded = (char)0x27; // 010 0111 + break; + 6e4: 01400844 movi r5,33 + 6e8: 00002906 br 790 + case 'd': + encoded = (char)0x21; // 010 0001 + break; + 6ec: 01400184 movi r5,6 + 6f0: 00002706 br 790 + case 'e': + encoded = (char)0x06; // 000 0110 + break; + 6f4: 01400384 movi r5,14 + 6f8: 00002506 br 790 + case 'f': + encoded = (char)0x0E; // 000 1110 + break; + 6fc: 01401084 movi r5,66 + 700: 00002306 br 790 + case 'g': + encoded = (char)0x42; // 100 0010 + break; + 704: 014002c4 movi r5,11 + 708: 00002106 br 790 + case 'h': + encoded = (char)0x0B; // 000 1011 + break; + 70c: 017ffec4 movi r5,-5 + 710: 00001f06 br 790 + case 'i': + encoded = (char)0xFB; // 111 1011 + break; + 714: 01401844 movi r5,97 + 718: 00001d06 br 790 + case 'j': + encoded = (char)0x61; // 110 0001 + break; + 71c: 01400284 movi r5,10 + 720: 00001b06 br 790 + case 'k': + encoded = (char)0x0A; // 000 1010 + break; + 724: 014011c4 movi r5,71 + 728: 00001906 br 790 + case 'l': + encoded = (char)0x47; // 100 0111 + break; + 72c: 01401204 movi r5,72 + 730: 00001706 br 790 + case 'm': + encoded = (char)0x48; // 100 1000 + break; + 734: 01400ac4 movi r5,43 + 738: 00001506 br 790 + case 'n': + encoded = (char)0x2B; // 010 1011 + break; + 73c: 014008c4 movi r5,35 + 740: 00001306 br 790 + case 'o': + encoded = (char)0x23; // 010 0011 + break; + 744: 01400304 movi r5,12 + 748: 00001106 br 790 + case 'p': + encoded = (char)0x0C; // 000 1100 + break; + 74c: 01400104 movi r5,4 + 750: 00000f06 br 790 + case 'q': + encoded = (char)0x04; // 000 0100 + break; + 754: 01400bc4 movi r5,47 + 758: 00000d06 br 790 + case 'r': + encoded = (char)0x2F; // 010 1111 + break; + 75c: 014004c4 movi r5,19 + 760: 00000b06 br 790 + case 's': + encoded = (char)0x13; // 001 0011 + break; + 764: 014001c4 movi r5,7 + 768: 00000906 br 790 + case 't': + encoded = (char)0x07; // 000 0111 + break; + 76c: 014018c4 movi r5,99 + 770: 00000706 br 790 + case 'u': + encoded = (char)0x63; // 110 0011 + break; + 774: 01401044 movi r5,65 + 778: 00000506 br 790 + case 'v': + encoded = (char)0x41; // 100 0001 + break; + 77c: 01400044 movi r5,1 + 780: 00000306 br 790 + case 'w': + encoded = (char)0x01; // 000 0001 + break; + 784: 01400244 movi r5,9 + 788: 00000106 br 790 + case 'x': + encoded = (char)0x09; // 000 1001 + break; + 78c: 01400444 movi r5,17 + default: + encoded = 0; + break; + } + + switch (hex_i) { + 790: 008001c4 movi r2,7 + 794: 10c02036 bltu r2,r3,818 + 798: 18c5883a add r2,r3,r3 + 79c: 1085883a add r2,r2,r2 + 7a0: 00c00034 movhi r3,0 + 7a4: 18c1ed04 addi r3,r3,1972 + 7a8: 10c5883a add r2,r2,r3 + 7ac: 10800017 ldw r2,0(r2) + 7b0: 1000683a jmp r2 + 7b4: 000007d4 movui zero,31 + 7b8: 000007dc xori zero,zero,31 + 7bc: 000007e4 muli zero,zero,31 + 7c0: 000007ec andhi zero,zero,31 + 7c4: 000007f4 movhi zero,31 + 7c8: 000007fc xorhi zero,zero,31 + 7cc: 00000804 movi zero,32 + 7d0: 00000810 cmplti zero,zero,32 + case 0: + *hex0 = encoded; + 7d4: 00941c04 movi r2,20592 + 7d8: 00000b06 br 808 + break; + case 1: + *hex1 = encoded; + 7dc: 00941804 movi r2,20576 + 7e0: 00000906 br 808 + break; + case 2: + *hex2 = encoded; + 7e4: 00941404 movi r2,20560 + 7e8: 00000706 br 808 + break; + case 3: + *hex3 = encoded; + 7ec: 00941004 movi r2,20544 + 7f0: 00000506 br 808 + break; + case 4: + *hex4 = encoded; + 7f4: 00940c04 movi r2,20528 + 7f8: 00000306 br 808 + break; + case 5: + *hex5 = encoded; + 7fc: 00940804 movi r2,20512 + 800: 00000106 br 808 + break; + case 6: + *hex6 = encoded; + 804: 00940404 movi r2,20496 + 808: 11400005 stb r5,0(r2) + 80c: f800283a ret + break; + case 7: + *hex7 = encoded; + 810: 00940004 movi r2,20480 + 814: 11400005 stb r5,0(r2) + 818: f800283a ret + +0000081c : + */ +#include "hex_out.h" +#include "hex_encoder.h" +#include "system.h" + +void print_block(char * str, unsigned int size, enum BLOCK_N block_i) { + 81c: defffc04 addi sp,sp,-16 + 820: dc400115 stw r17,4(sp) + 824: dc000015 stw r16,0(sp) + 828: dfc00315 stw ra,12(sp) + 82c: dc800215 stw r18,8(sp) + 830: 2021883a mov r16,r4 + 834: 2823883a mov r17,r5 + int i; + if (block_i == HEX0_3) { + 838: 30000d1e bne r6,zero,870 + if (size > 4) panic(); + 83c: 00800104 movi r2,4 + 840: 1140012e bgeu r2,r5,848 + 844: 00011340 call 1134 + 848: 8461883a add r16,r16,r17 + 84c: 0025883a mov r18,zero + 850: 00000306 br 860 + for (i = 0; i < size; i++) { + encodeLatHex(i,str[size-1-i]); + 854: 81400007 ldb r5,0(r16) + +void print_block(char * str, unsigned int size, enum BLOCK_N block_i) { + int i; + if (block_i == HEX0_3) { + if (size > 4) panic(); + for (i = 0; i < size; i++) { + 858: 94800044 addi r18,r18,1 + encodeLatHex(i,str[size-1-i]); + 85c: 00005880 call 588 + 860: 9009883a mov r4,r18 + +void print_block(char * str, unsigned int size, enum BLOCK_N block_i) { + int i; + if (block_i == HEX0_3) { + if (size > 4) panic(); + for (i = 0; i < size; i++) { + 864: 843fffc4 addi r16,r16,-1 + 868: 947ffa1e bne r18,r17,854 + 86c: 00001c06 br 8e0 + encodeLatHex(i,str[size-1-i]); + } + } + else if (block_i == HEX4_5) { + 870: 00800044 movi r2,1 + 874: 30800d1e bne r6,r2,8ac + if (size > 2) panic(); + 878: 00800084 movi r2,2 + 87c: 1140012e bgeu r2,r5,884 + 880: 00011340 call 1134 + 884: 8461883a add r16,r16,r17 + 888: 0025883a mov r18,zero + 88c: 00000306 br 89c + for (i = 0; i < size; i++) { + encodeLatHex(i+4,str[size-1-i]); + 890: 81400007 ldb r5,0(r16) + encodeLatHex(i,str[size-1-i]); + } + } + else if (block_i == HEX4_5) { + if (size > 2) panic(); + for (i = 0; i < size; i++) { + 894: 94800044 addi r18,r18,1 + encodeLatHex(i+4,str[size-1-i]); + 898: 00005880 call 588 + 89c: 91000104 addi r4,r18,4 + encodeLatHex(i,str[size-1-i]); + } + } + else if (block_i == HEX4_5) { + if (size > 2) panic(); + for (i = 0; i < size; i++) { + 8a0: 843fffc4 addi r16,r16,-1 + 8a4: 947ffa1e bne r18,r17,890 + 8a8: 00000d06 br 8e0 + encodeLatHex(i+4,str[size-1-i]); + } + } + else if (block_i == HEX6_7) { + 8ac: 00800084 movi r2,2 + 8b0: 30800b1e bne r6,r2,8e0 + if (size > 2) panic(); + 8b4: 3140012e bgeu r6,r5,8bc + 8b8: 00011340 call 1134 + 8bc: 8461883a add r16,r16,r17 + 8c0: 0025883a mov r18,zero + 8c4: 00000306 br 8d4 + for (i = 0; i < size; i++) { + encodeLatHex(i+6,str[size-1-i]); + 8c8: 81400007 ldb r5,0(r16) + encodeLatHex(i+4,str[size-1-i]); + } + } + else if (block_i == HEX6_7) { + if (size > 2) panic(); + for (i = 0; i < size; i++) { + 8cc: 94800044 addi r18,r18,1 + encodeLatHex(i+6,str[size-1-i]); + 8d0: 00005880 call 588 + 8d4: 91000184 addi r4,r18,6 + encodeLatHex(i+4,str[size-1-i]); + } + } + else if (block_i == HEX6_7) { + if (size > 2) panic(); + for (i = 0; i < size; i++) { + 8d8: 843fffc4 addi r16,r16,-1 + 8dc: 947ffa1e bne r18,r17,8c8 + encodeLatHex(i+6,str[size-1-i]); + } + } +} + 8e0: dfc00317 ldw ra,12(sp) + 8e4: dc800217 ldw r18,8(sp) + 8e8: dc400117 ldw r17,4(sp) + 8ec: dc000017 ldw r16,0(sp) + 8f0: dec00404 addi sp,sp,16 + 8f4: f800283a ret + +000008f8 : + +void clear_block(enum BLOCK_N block_i) { + 8f8: 2007883a mov r3,r4 + if (block_i == HEX0_3) { + print_block(" ", 4, HEX0_3); + 8fc: 01400104 movi r5,4 + 900: 000d883a mov r6,zero + 904: 01000034 movhi r4,0 + 908: 21075d04 addi r4,r4,7540 + } + } +} + +void clear_block(enum BLOCK_N block_i) { + if (block_i == HEX0_3) { + 90c: 18000c26 beq r3,zero,940 + print_block(" ", 4, HEX0_3); + } + else if (block_i == HEX4_5) { + 910: 00800044 movi r2,1 + print_block(" ", 2, HEX4_5); + 914: 180d883a mov r6,r3 + 918: 01000034 movhi r4,0 + 91c: 21075f04 addi r4,r4,7548 + 920: 01400084 movi r5,2 + +void clear_block(enum BLOCK_N block_i) { + if (block_i == HEX0_3) { + print_block(" ", 4, HEX0_3); + } + else if (block_i == HEX4_5) { + 924: 18800626 beq r3,r2,940 + print_block(" ", 2, HEX4_5); + } + else if (block_i == HEX6_7) { + 928: 00800084 movi r2,2 + print_block(" ", 2, HEX6_7); + 92c: 180b883a mov r5,r3 + 930: 01000034 movhi r4,0 + 934: 21075f04 addi r4,r4,7548 + 938: 180d883a mov r6,r3 + print_block(" ", 4, HEX0_3); + } + else if (block_i == HEX4_5) { + print_block(" ", 2, HEX4_5); + } + else if (block_i == HEX6_7) { + 93c: 1880011e bne r3,r2,944 + print_block(" ", 2, HEX6_7); + 940: 000081c1 jmpi 81c + 944: f800283a ret + +00000948 : + } +} + +void print_number(char num) { + 948: defff804 addi sp,sp,-32 + 94c: dc800415 stw r18,16(sp) + 950: dc400315 stw r17,12(sp) + 954: dfc00715 stw ra,28(sp) + 958: dd000615 stw r20,24(sp) + 95c: dcc00515 stw r19,20(sp) + 960: dc000215 stw r16,8(sp) + 964: 2023883a mov r17,r4 + 968: 0025883a mov r18,zero + int i; + char buf[5]; + char val; + for (i = 0; i < 4; i++) { + if (num < 0) { + 96c: 88803fcc andi r2,r17,255 + 970: 1080201c xori r2,r2,128 + 974: 10bfe004 addi r2,r2,-128 + buf[0] = '-'; + 978: 05000b44 movi r20,45 + val = -num; + 97c: 0461c83a sub r16,zero,r17 +void print_number(char num) { + int i; + char buf[5]; + char val; + for (i = 0; i < 4; i++) { + if (num < 0) { + 980: 10000216 blt r2,zero,98c + buf[0] = '-'; + val = -num; + } else { + buf[0] = ' '; + 984: 05000804 movi r20,32 + 988: 8821883a mov r16,r17 + val = num; + } + buf[1] = val/100%10 + '0'; + 98c: 84003fcc andi r16,r16,255 + 990: 8400201c xori r16,r16,128 + 994: 843fe004 addi r16,r16,-128 + 998: 8009883a mov r4,r16 + 99c: 01401904 movi r5,100 + 9a0: 00011dc0 call 11dc <__divsi3> + 9a4: 11003fcc andi r4,r2,255 + 9a8: 2100201c xori r4,r4,128 + 9ac: 213fe004 addi r4,r4,-128 + 9b0: 01400284 movi r5,10 + 9b4: 000123c0 call 123c <__modsi3> + buf[2] = val/10%10 + '0'; + 9b8: 8009883a mov r4,r16 + 9bc: 01400284 movi r5,10 + val = -num; + } else { + buf[0] = ' '; + val = num; + } + buf[1] = val/100%10 + '0'; + 9c0: 14c00c04 addi r19,r2,48 + buf[2] = val/10%10 + '0'; + 9c4: 00011dc0 call 11dc <__divsi3> + 9c8: 11003fcc andi r4,r2,255 + 9cc: 2100201c xori r4,r4,128 + 9d0: 213fe004 addi r4,r4,-128 + 9d4: 01400284 movi r5,10 + 9d8: 000123c0 call 123c <__modsi3> + buf[3] = val%10 + '0'; + 9dc: 8009883a mov r4,r16 + 9e0: 01400284 movi r5,10 + } else { + buf[0] = ' '; + val = num; + } + buf[1] = val/100%10 + '0'; + buf[2] = val/10%10 + '0'; + 9e4: 14000c04 addi r16,r2,48 + buf[3] = val%10 + '0'; + 9e8: 000123c0 call 123c <__modsi3> + 9ec: 10c00c04 addi r3,r2,48 + +void print_number(char num) { + int i; + char buf[5]; + char val; + for (i = 0; i < 4; i++) { + 9f0: 94800044 addi r18,r18,1 + 9f4: 00800104 movi r2,4 + 9f8: 90bfdc1e bne r18,r2,96c + } + buf[1] = val/100%10 + '0'; + buf[2] = val/10%10 + '0'; + buf[3] = val%10 + '0'; + } + clear_block(HEX0_3); + 9fc: 0009883a mov r4,zero + a00: d8c000c5 stb r3,3(sp) + a04: dc000085 stb r16,2(sp) + a08: dcc00045 stb r19,1(sp) + a0c: dd000005 stb r20,0(sp) + a10: 00008f80 call 8f8 + print_block(buf, 4, HEX0_3); + a14: 900b883a mov r5,r18 + a18: d809883a mov r4,sp + a1c: 000d883a mov r6,zero + a20: 000081c0 call 81c +} + a24: dfc00717 ldw ra,28(sp) + a28: dd000617 ldw r20,24(sp) + a2c: dcc00517 ldw r19,20(sp) + a30: dc800417 ldw r18,16(sp) + a34: dc400317 ldw r17,12(sp) + a38: dc000217 ldw r16,8(sp) + a3c: dec00804 addi sp,sp,32 + a40: f800283a ret + +00000a44 : + global_registers[Ssw_rw] = (char)s.splited.rw_mode; + global_registers[Ssw_run] = (char)s.splited.run_mode; +} + +enum PushEvent push_decode(char psw) { + switch(psw) { + a44: 21003fcc andi r4,r4,255 + a48: 2100201c xori r4,r4,128 + a4c: 213fe004 addi r4,r4,-128 + a50: 00800144 movi r2,5 + a54: 20800826 beq r4,r2,a78 + a58: 00800184 movi r2,6 + a5c: 00c00104 movi r3,4 + a60: 20800626 beq r4,r2,a7c + a64: 008000c4 movi r2,3 + a68: 0007883a mov r3,zero + a6c: 2080031e bne r4,r2,a7c + a70: 00c00084 movi r3,2 + a74: 00000106 br a7c + case 0x3: + return PUSH_VALSTR; + a78: 00c000c4 movi r3,3 + case 0x6: + return PUSH_RUN; + break; + } + return PUSH_NONE; +} + a7c: 1805883a mov r2,r3 + a80: f800283a ret + +00000a84 : + +void push_int() { + static unsigned char status = 0; + static enum PushEvent event_code; + volatile sw_t s; + s.sw = *switches; + a84: 00942404 movi r2,20624 + a88: 10800017 ldw r2,0(r2) + + switch (status) { + a8c: d0e04403 ldbu r3,-32496(gp) + break; + } + return PUSH_NONE; +} + +void push_int() { + a90: deffff04 addi sp,sp,-4 + static unsigned char status = 0; + static enum PushEvent event_code; + volatile sw_t s; + s.sw = *switches; + + switch (status) { + a94: 01000044 movi r4,1 + +void push_int() { + static unsigned char status = 0; + static enum PushEvent event_code; + volatile sw_t s; + s.sw = *switches; + a98: d8800015 stw r2,0(sp) + + switch (status) { + a9c: 19003726 beq r3,r4,b7c + aa0: 19000336 bltu r3,r4,ab0 + aa4: 00800084 movi r2,2 + aa8: 1880421e bne r3,r2,bb4 + aac: 00003d06 br ba4 + case 0: + PUSH_EVENT = PUSH_NONE; + if (*push_switches != 7) { + ab0: 01142004 movi r4,20608 + ab4: 20800003 ldbu r2,0(r4) + ab8: 00c001c4 movi r3,7 + volatile sw_t s; + s.sw = *switches; + + switch (status) { + case 0: + PUSH_EVENT = PUSH_NONE; + abc: d0204205 stb zero,-32504(gp) + if (*push_switches != 7) { + ac0: 10803fcc andi r2,r2,255 + ac4: 1080201c xori r2,r2,128 + ac8: 10bfe004 addi r2,r2,-128 + acc: 10c01526 beq r2,r3,b24 + event_code = push_decode(*push_switches); + ad0: 20800003 ldbu r2,0(r4) + global_registers[Ssw_rw] = (char)s.splited.rw_mode; + global_registers[Ssw_run] = (char)s.splited.run_mode; +} + +enum PushEvent push_decode(char psw) { + switch(psw) { + ad4: 10c03fcc andi r3,r2,255 + ad8: 18c0201c xori r3,r3,128 + adc: 18ffe004 addi r3,r3,-128 + ae0: 00800144 movi r2,5 + ae4: 18800b26 beq r3,r2,b14 + ae8: 00800184 movi r2,6 + aec: 18800326 beq r3,r2,afc + af0: 008000c4 movi r2,3 + af4: 1880031e bne r3,r2,b04 + af8: 00000406 br b0c + afc: 00800104 movi r2,4 + b00: 00000506 br b18 + b04: 0005883a mov r2,zero + b08: 00000306 br b18 + b0c: 00800084 movi r2,2 + b10: 00000106 br b18 + b14: 008000c4 movi r2,3 + + switch (status) { + case 0: + PUSH_EVENT = PUSH_NONE; + if (*push_switches != 7) { + event_code = push_decode(*push_switches); + b18: d0a04315 stw r2,-32500(gp) + status = 1; + b1c: 00800044 movi r2,1 + b20: d0a04405 stb r2,-32496(gp) + b24: d8800017 ldw r2,0(sp) +void in_int() { + push_int(); +} + +static void update_sw_reg(sw_t s) { + global_registers[Ssw_data] = (char)s.data.value; + b28: 00c00034 movhi r3,0 + b2c: 18c8d404 addi r3,r3,9040 + b30: 1012d2ba srli r9,r2,10 + global_registers[Ssw_inst] = (char)s.splited.instruction_code; + b34: 1008d3ba srli r4,r2,14 + global_registers[Ssw_memi] = (char)s.splited.memory_index; + b38: 100ad1ba srli r5,r2,6 + global_registers[Ssw_regi] = (char)s.splited.register_index; + global_registers[Ssw_psel] = (char)s.splited.program_selecter; + b3c: 100cd0ba srli r6,r2,2 + global_registers[Ssw_rw] = (char)s.splited.rw_mode; + b40: 100ed07a srli r7,r2,1 + push_int(); +} + +static void update_sw_reg(sw_t s) { + global_registers[Ssw_data] = (char)s.data.value; + global_registers[Ssw_inst] = (char)s.splited.instruction_code; + b44: 210003cc andi r4,r4,15 + global_registers[Ssw_memi] = (char)s.splited.memory_index; + b48: 294003cc andi r5,r5,15 + global_registers[Ssw_regi] = (char)s.splited.register_index; + b4c: 4a0003cc andi r8,r9,15 + global_registers[Ssw_psel] = (char)s.splited.program_selecter; + b50: 318003cc andi r6,r6,15 + global_registers[Ssw_rw] = (char)s.splited.rw_mode; + b54: 39c0004c andi r7,r7,1 + global_registers[Ssw_run] = (char)s.splited.run_mode; + b58: 1080004c andi r2,r2,1 + b5c: 18800345 stb r2,13(r3) + push_int(); +} + +static void update_sw_reg(sw_t s) { + global_registers[Ssw_data] = (char)s.data.value; + global_registers[Ssw_inst] = (char)s.splited.instruction_code; + b60: 19000205 stb r4,8(r3) + global_registers[Ssw_memi] = (char)s.splited.memory_index; + b64: 19400285 stb r5,10(r3) + global_registers[Ssw_regi] = (char)s.splited.register_index; + b68: 1a000245 stb r8,9(r3) + global_registers[Ssw_psel] = (char)s.splited.program_selecter; + b6c: 198002c5 stb r6,11(r3) + global_registers[Ssw_rw] = (char)s.splited.rw_mode; + b70: 19c00305 stb r7,12(r3) +void in_int() { + push_int(); +} + +static void update_sw_reg(sw_t s) { + global_registers[Ssw_data] = (char)s.data.value; + b74: 1a4001c5 stb r9,7(r3) + b78: 00000f06 br bb8 + status = 1; + } + update_sw_reg(s); // �X�C�b�`���W�X�^�X�V + break; + case 1: + if (*push_switches == 7) status = 2; + b7c: 00942004 movi r2,20608 + b80: 10800003 ldbu r2,0(r2) + b84: 00c001c4 movi r3,7 + b88: 10803fcc andi r2,r2,255 + b8c: 1080201c xori r2,r2,128 + b90: 10bfe004 addi r2,r2,-128 + b94: 10c0081e bne r2,r3,bb8 + b98: 00800084 movi r2,2 + b9c: d0a04405 stb r2,-32496(gp) + ba0: 00000506 br bb8 + break; + case 2: + PUSH_EVENT = event_code; + ba4: d0a04317 ldw r2,-32500(gp) + status = 0; + ba8: d0204405 stb zero,-32496(gp) + break; + case 1: + if (*push_switches == 7) status = 2; + break; + case 2: + PUSH_EVENT = event_code; + bac: d0a04205 stb r2,-32504(gp) + bb0: 00000106 br bb8 + status = 0; + break; + default: + status = 0; + bb4: d0204405 stb zero,-32496(gp) + break; + } +} + bb8: dec00104 addi sp,sp,4 + bbc: f800283a ret + +00000bc0 : +#include "sys_register.h" + +unsigned char PUSH_EVENT = PUSH_NONE; + +void in_int() { + push_int(); + bc0: 0000a841 jmpi a84 + +00000bc4 : + break; + } +} + +void inst_jump(enum Register reg, unsigned char memory_index){ + global_registers[Spc]=global_registers[reg]+memory_index; + bc4: 00c00034 movhi r3,0 + bc8: 18c8d404 addi r3,r3,9040 + bcc: 20c9883a add r4,r4,r3 + bd0: 20800003 ldbu r2,0(r4) + bd4: 288b883a add r5,r5,r2 + bd8: 19400045 stb r5,1(r3) +} + bdc: f800283a ret + +00000be0 : +void inst_store(enum Register reg, unsigned char memory_index){ + memory_store(memory_index, reg); +} +void inst_delay(enum Register reg, unsigned char memory_index){ + //���W�X�^�̒l*10ms�҂� +} + be0: f800283a ret + +00000be4 : +void inst_add(enum Register reg, unsigned char memory_index){ + global_registers[Sacc]+=global_registers[reg]; + be4: 00c00034 movhi r3,0 + be8: 18c8d404 addi r3,r3,9040 + bec: 20c9883a add r4,r4,r3 + bf0: 21000003 ldbu r4,0(r4) + bf4: 18800143 ldbu r2,5(r3) + bf8: 1105883a add r2,r2,r4 + bfc: 18800145 stb r2,5(r3) +} + c00: f800283a ret + +00000c04 : +void inst_comp(enum Register reg, unsigned char memory_index){ + if(global_registers[Sacc]==global_registers[reg]){ + c04: 00c00034 movhi r3,0 + c08: 18c8d404 addi r3,r3,9040 + c0c: 20c9883a add r4,r4,r3 + c10: 21000007 ldb r4,0(r4) + c14: 18800147 ldb r2,5(r3) + c18: 1100021e bne r2,r4,c24 + global_registers[Sflg]=0; + c1c: 18000185 stb zero,6(r3) + c20: f800283a ret + } else if(global_registers[Sacc] > global_registers[reg]){ + c24: 2080020e bge r4,r2,c30 + global_registers[Sflg]=-1; + c28: 00bfffc4 movi r2,-1 + c2c: 00000106 br c34 + }else{ + global_registers[Sflg]=1; + c30: 00800044 movi r2,1 + c34: 18800185 stb r2,6(r3) + c38: f800283a ret + +00000c3c : + } +} +void inst_jeq(enum Register reg, unsigned char memory_index){ + if(global_registers[Sflg]==global_registers[reg]){ + c3c: 01400034 movhi r5,0 + c40: 2948d404 addi r5,r5,9040 + c44: 2149883a add r4,r4,r5 + c48: 20c00007 ldb r3,0(r4) + c4c: 28800187 ldb r2,6(r5) + c50: 10c0031e bne r2,r3,c60 + global_registers[Spc]++; + c54: 28800043 ldbu r2,1(r5) + c58: 10800044 addi r2,r2,1 + c5c: 28800045 stb r2,1(r5) + c60: f800283a ret + +00000c64 : + } +} +void inst_jne(enum Register reg, unsigned char memory_index){ + if(global_registers[Sflg]!=global_registers[reg]){ + c64: 01400034 movhi r5,0 + c68: 2948d404 addi r5,r5,9040 + c6c: 2149883a add r4,r4,r5 + c70: 20c00007 ldb r3,0(r4) + c74: 28800187 ldb r2,6(r5) + c78: 10c00326 beq r2,r3,c88 + global_registers[Spc]++; + c7c: 28800043 ldbu r2,1(r5) + c80: 10800044 addi r2,r2,1 + c84: 28800045 stb r2,1(r5) + c88: f800283a ret + +00000c8c : + } +} +void inst_jieq(char im, unsigned char memory_index){ + if(global_registers[Sflg]==im){ + c8c: 00c00034 movhi r3,0 + c90: 18c8d404 addi r3,r3,9040 + c94: 21003fcc andi r4,r4,255 + c98: 18800187 ldb r2,6(r3) + c9c: 2100201c xori r4,r4,128 + ca0: 213fe004 addi r4,r4,-128 + ca4: 1100031e bne r2,r4,cb4 + global_registers[Spc]++; + ca8: 18800043 ldbu r2,1(r3) + cac: 10800044 addi r2,r2,1 + cb0: 18800045 stb r2,1(r3) + cb4: f800283a ret + +00000cb8 : + } +} +void inst_jine(char im, unsigned char memory_index){ + if(global_registers[Sflg]!=im){ + cb8: 00c00034 movhi r3,0 + cbc: 18c8d404 addi r3,r3,9040 + cc0: 21003fcc andi r4,r4,255 + cc4: 18800187 ldb r2,6(r3) + cc8: 2100201c xori r4,r4,128 + ccc: 213fe004 addi r4,r4,-128 + cd0: 11000326 beq r2,r4,ce0 + global_registers[Spc]++; + cd4: 18800043 ldbu r2,1(r3) + cd8: 10800044 addi r2,r2,1 + cdc: 18800045 stb r2,1(r3) + ce0: f800283a ret + +00000ce4 : + print_block(buf, 4, HEX0_3); +} +void inst_load(enum Register reg, unsigned char memory_index){ + memory_load(memory_index, reg); +} +void inst_store(enum Register reg, unsigned char memory_index){ + ce4: 2005883a mov r2,r4 + memory_store(memory_index, reg); + ce8: 29003fcc andi r4,r5,255 + cec: 100b883a mov r5,r2 + cf0: 00010a81 jmpi 10a8 + +00000cf4 : + char buf[5]; + memory_load(memory_index, Sseg); + sprintf(buf, "%04d", global_registers[Sseg]); + print_block(buf, 4, HEX0_3); +} +void inst_load(enum Register reg, unsigned char memory_index){ + cf4: 2005883a mov r2,r4 + memory_load(memory_index, reg); + cf8: 29003fcc andi r4,r5,255 + cfc: 100b883a mov r5,r2 + d00: 00010381 jmpi 1038 + +00000d04 : +} + +void inst_jump(enum Register reg, unsigned char memory_index){ + global_registers[Spc]=global_registers[reg]+memory_index; +} +void inst_output(enum Register reg, unsigned char memory_index){ + d04: defffd04 addi sp,sp,-12 + //�������̒l��7�Z�O�ɕ\�� + char buf[5]; + memory_load(memory_index, Sseg); + d08: 29003fcc andi r4,r5,255 + d0c: 01400384 movi r5,14 +} + +void inst_jump(enum Register reg, unsigned char memory_index){ + global_registers[Spc]=global_registers[reg]+memory_index; +} +void inst_output(enum Register reg, unsigned char memory_index){ + d10: dfc00215 stw ra,8(sp) + //�������̒l��7�Z�O�ɕ\�� + char buf[5]; + memory_load(memory_index, Sseg); + d14: 00010380 call 1038 + sprintf(buf, "%04d", global_registers[Sseg]); + d18: 00800034 movhi r2,0 + d1c: 1088d404 addi r2,r2,9040 + d20: 11800387 ldb r6,14(r2) + d24: d809883a mov r4,sp + d28: 01400034 movhi r5,0 + d2c: 29475604 addi r5,r5,7512 + d30: 00012e40 call 12e4 + print_block(buf, 4, HEX0_3); + d34: d809883a mov r4,sp + d38: 01400104 movi r5,4 + d3c: 000d883a mov r6,zero + d40: 000081c0 call 81c +} + d44: dfc00217 ldw ra,8(sp) + d48: dec00304 addi sp,sp,12 + d4c: f800283a ret + +00000d50 : +#include "sys_register.h" +#include "hex_out.h" +#include + +struct InstRec inst_fetch(){ + return inst_memory_load((unsigned int)global_registers[Spc]++); + d50: 00c00034 movhi r3,0 + d54: 18c8d404 addi r3,r3,9040 + d58: 18800043 ldbu r2,1(r3) +#include "sys_memory.h" +#include "sys_register.h" +#include "hex_out.h" +#include + +struct InstRec inst_fetch(){ + d5c: deffff04 addi sp,sp,-4 + d60: dfc00015 stw ra,0(sp) + return inst_memory_load((unsigned int)global_registers[Spc]++); + d64: 11003fcc andi r4,r2,255 + d68: 2100201c xori r4,r4,128 + d6c: 213fe004 addi r4,r4,-128 + d70: 10800044 addi r2,r2,1 + d74: 18800045 stb r2,1(r3) + d78: 0000fbc0 call fbc +} + d7c: dfc00017 ldw ra,0(sp) + d80: dec00104 addi sp,sp,4 + d84: f800283a ret + +00000d88 : + +void inst_decode(struct InstRec inst_rec){ + d88: 2004d13a srli r2,r4,4 + d8c: 2006d23a srli r3,r4,8 + switch(inst_rec.inst) { + d90: 210003cc andi r4,r4,15 + d94: 21bfffc4 addi r6,r4,-1 + +struct InstRec inst_fetch(){ + return inst_memory_load((unsigned int)global_registers[Spc]++); +} + +void inst_decode(struct InstRec inst_rec){ + d98: 114003cc andi r5,r2,15 + switch(inst_rec.inst) { + d9c: 00800284 movi r2,10 + +struct InstRec inst_fetch(){ + return inst_memory_load((unsigned int)global_registers[Spc]++); +} + +void inst_decode(struct InstRec inst_rec){ + da0: 190003cc andi r4,r3,15 + switch(inst_rec.inst) { + da4: 11805336 bltu r2,r6,ef4 + da8: 3185883a add r2,r6,r6 + dac: 1085883a add r2,r2,r2 + db0: 00c00034 movhi r3,0 + db4: 18c37104 addi r3,r3,3524 + db8: 10c5883a add r2,r2,r3 + dbc: 10800017 ldw r2,0(r2) + dc0: 1000683a jmp r2 + dc4: 00000df0 cmpltui zero,zero,55 + dc8: 00000e10 cmplti zero,zero,56 + dcc: 00000e1c xori zero,zero,56 + dd0: 00000e28 cmpgeui zero,zero,56 + dd4: 00000ef4 movhi zero,59 + dd8: 00000e34 movhi zero,56 + ddc: 00000e58 cmpnei zero,zero,57 + de0: 00000e64 muli zero,zero,57 + de4: 00000e84 movi zero,58 + de8: 00000eb0 cmpltui zero,zero,58 + dec: 00000ed4 movui zero,59 + break; + } +} + +void inst_jump(enum Register reg, unsigned char memory_index){ + global_registers[Spc]=global_registers[reg]+memory_index; + df0: 00c00034 movhi r3,0 + df4: 18c8d404 addi r3,r3,9040 + df8: 20803fcc andi r2,r4,255 + dfc: 10c5883a add r2,r2,r3 + e00: 10800003 ldbu r2,0(r2) + e04: 2885883a add r2,r5,r2 + e08: 18800045 stb r2,1(r3) + e0c: f800283a ret + break; + case INST_JUMP: + inst_jump(inst_rec.regi, inst_rec.memi); + break; + case INST_OUTPUT: + inst_output(inst_rec.regi, inst_rec.memi); + e10: 21003fcc andi r4,r4,255 + e14: 29403fcc andi r5,r5,255 + e18: 0000d041 jmpi d04 + break; + case INST_LOAD: + inst_load(inst_rec.regi, inst_rec.memi); + e1c: 21003fcc andi r4,r4,255 + e20: 29403fcc andi r5,r5,255 + e24: 0000cf41 jmpi cf4 + break; + case INST_STORE: + inst_store(inst_rec.regi, inst_rec.memi); + e28: 21003fcc andi r4,r4,255 + e2c: 29403fcc andi r5,r5,255 + e30: 0000ce41 jmpi ce4 +} +void inst_delay(enum Register reg, unsigned char memory_index){ + //���W�X�^�̒l*10ms�҂� +} +void inst_add(enum Register reg, unsigned char memory_index){ + global_registers[Sacc]+=global_registers[reg]; + e34: 00c00034 movhi r3,0 + e38: 18c8d404 addi r3,r3,9040 + e3c: 20803fcc andi r2,r4,255 + e40: 10c5883a add r2,r2,r3 + e44: 11000003 ldbu r4,0(r2) + e48: 18800143 ldbu r2,5(r3) + e4c: 1105883a add r2,r2,r4 + e50: 18800145 stb r2,5(r3) + e54: f800283a ret + break; + case INST_ADD: + inst_add(inst_rec.regi, inst_rec.memi); + break; + case INST_COMP: + inst_comp(inst_rec.regi, inst_rec.memi); + e58: 21003fcc andi r4,r4,255 + e5c: 29403fcc andi r5,r5,255 + e60: 0000c041 jmpi c04 + }else{ + global_registers[Sflg]=1; + } +} +void inst_jeq(enum Register reg, unsigned char memory_index){ + if(global_registers[Sflg]==global_registers[reg]){ + e64: 20803fcc andi r2,r4,255 + e68: 01000034 movhi r4,0 + e6c: 2108d404 addi r4,r4,9040 + e70: 1105883a add r2,r2,r4 + e74: 10c00007 ldb r3,0(r2) + e78: 20800187 ldb r2,6(r4) + e7c: 10c01d1e bne r2,r3,ef4 + e80: 00000706 br ea0 + global_registers[Spc]++; + } +} +void inst_jne(enum Register reg, unsigned char memory_index){ + if(global_registers[Sflg]!=global_registers[reg]){ + e84: 20803fcc andi r2,r4,255 + e88: 01000034 movhi r4,0 + e8c: 2108d404 addi r4,r4,9040 + e90: 1105883a add r2,r2,r4 + e94: 10c00007 ldb r3,0(r2) + e98: 20800187 ldb r2,6(r4) + e9c: 10c01526 beq r2,r3,ef4 + global_registers[Spc]++; + ea0: 20800043 ldbu r2,1(r4) + ea4: 10800044 addi r2,r2,1 + ea8: 20800045 stb r2,1(r4) + eac: f800283a ret + } +} +void inst_jieq(char im, unsigned char memory_index){ + if(global_registers[Sflg]==im){ + eb0: 01400034 movhi r5,0 + eb4: 2948d404 addi r5,r5,9040 + eb8: 28c00187 ldb r3,6(r5) + ebc: 208003cc andi r2,r4,15 + ec0: 18800c1e bne r3,r2,ef4 + global_registers[Spc]++; + ec4: 28800043 ldbu r2,1(r5) + ec8: 10800044 addi r2,r2,1 + ecc: 28800045 stb r2,1(r5) + ed0: f800283a ret + } +} +void inst_jine(char im, unsigned char memory_index){ + if(global_registers[Sflg]!=im){ + ed4: 01400034 movhi r5,0 + ed8: 2948d404 addi r5,r5,9040 + edc: 28c00187 ldb r3,6(r5) + ee0: 208003cc andi r2,r4,15 + ee4: 18800326 beq r3,r2,ef4 + global_registers[Spc]++; + ee8: 28800043 ldbu r2,1(r5) + eec: 10800044 addi r2,r2,1 + ef0: 28800045 stb r2,1(r5) + ef4: f800283a ret + +00000ef8 : + +/************************************************** + * Impl + **************************************************/ + +void memory_init() { + ef8: 000b883a mov r5,zero + efc: 00000806 br f20 + int i, j; + for (i = 0; i < MEMS_COUNT; i++) + for (j = 0; j < MEM_SIZE; j++) { + f00: 21000044 addi r4,r4,1 + f04: 00800404 movi r2,16 + memory[i][j] = 0; + f08: 18000005 stb zero,0(r3) + **************************************************/ + +void memory_init() { + int i, j; + for (i = 0; i < MEMS_COUNT; i++) + for (j = 0; j < MEM_SIZE; j++) { + f0c: 18c00044 addi r3,r3,1 + f10: 20bffb1e bne r4,r2,f00 + * Impl + **************************************************/ + +void memory_init() { + int i, j; + for (i = 0; i < MEMS_COUNT; i++) + f14: 29400044 addi r5,r5,1 + f18: 00800104 movi r2,4 + f1c: 28800626 beq r5,r2,f38 + for (j = 0; j < MEM_SIZE; j++) { + memory[i][j] = 0; + } +} + f20: 2806913a slli r3,r5,4 + f24: 00800034 movhi r2,0 + f28: 10888404 addi r2,r2,8720 + f2c: 0009883a mov r4,zero + f30: 1887883a add r3,r3,r2 + f34: 003ff206 br f00 + f38: f800283a ret + +00000f3c : + +void inst_memory_store(unsigned int mem_addr, struct InstRec inst_rec){ + inst_memory[global_current_memory][mem_addr] = inst_rec; + f3c: d1a04517 ldw r6,-32492(gp) + f40: 2810d23a srli r8,r5,8 + for (j = 0; j < MEM_SIZE; j++) { + memory[i][j] = 0; + } +} + +void inst_memory_store(unsigned int mem_addr, struct InstRec inst_rec){ + f44: 024003c4 movi r9,15 + inst_memory[global_current_memory][mem_addr] = inst_rec; + f48: 300c913a slli r6,r6,4 + for (j = 0; j < MEM_SIZE; j++) { + memory[i][j] = 0; + } +} + +void inst_memory_store(unsigned int mem_addr, struct InstRec inst_rec){ + f4c: 280ed13a srli r7,r5,4 + inst_memory[global_current_memory][mem_addr] = inst_rec; + f50: 00800034 movhi r2,0 + f54: 10889404 addi r2,r2,8784 + f58: 310d883a add r6,r6,r4 + f5c: 318d883a add r6,r6,r6 + f60: 318d883a add r6,r6,r6 + f64: 010003c4 movi r4,15 + f68: 308d883a add r6,r6,r2 + f6c: 4250703a and r8,r8,r9 + f70: 4110703a and r8,r8,r4 + f74: 30800017 ldw r2,0(r6) + for (j = 0; j < MEM_SIZE; j++) { + memory[i][j] = 0; + } +} + +void inst_memory_store(unsigned int mem_addr, struct InstRec inst_rec){ + f78: 3a4e703a and r7,r7,r9 + inst_memory[global_current_memory][mem_addr] = inst_rec; + f7c: 4010923a slli r8,r8,8 + f80: 21ce703a and r7,r4,r7 + f84: 00fc3fc4 movi r3,-3841 + f88: 10c4703a and r2,r2,r3 + f8c: 380e913a slli r7,r7,4 + f90: 00ffc3c4 movi r3,-241 + f94: 1204b03a or r2,r2,r8 + f98: 10c4703a and r2,r2,r3 + f9c: 11c4b03a or r2,r2,r7 + for (j = 0; j < MEM_SIZE; j++) { + memory[i][j] = 0; + } +} + +void inst_memory_store(unsigned int mem_addr, struct InstRec inst_rec){ + fa0: 2a4a703a and r5,r5,r9 + inst_memory[global_current_memory][mem_addr] = inst_rec; + fa4: 00fffc04 movi r3,-16 + fa8: 2148703a and r4,r4,r5 + fac: 10c4703a and r2,r2,r3 + fb0: 1104b03a or r2,r2,r4 + fb4: 30800015 stw r2,0(r6) +} + fb8: f800283a ret + +00000fbc : +struct InstRec inst_memory_load(unsigned int mem_addr){ + return inst_memory[global_current_memory][mem_addr]; + fbc: d0a04517 ldw r2,-32492(gp) + fc0: 00c00034 movhi r3,0 + fc4: 18c89404 addi r3,r3,8784 + fc8: 01c003c4 movi r7,15 + fcc: 1004913a slli r2,r2,4 + fd0: 018003c4 movi r6,15 + fd4: 1105883a add r2,r2,r4 + fd8: 1085883a add r2,r2,r2 + fdc: 1085883a add r2,r2,r2 + fe0: 10c5883a add r2,r2,r3 + fe4: 11400017 ldw r5,0(r2) + fe8: 00bc3fc4 movi r2,-3841 + fec: 1084703a and r2,r2,r2 + ff0: 2806d23a srli r3,r5,8 + ff4: 2808d13a srli r4,r5,4 + ff8: 29ca703a and r5,r5,r7 + ffc: 19c6703a and r3,r3,r7 + 1000: 1986703a and r3,r3,r6 + 1004: 21c8703a and r4,r4,r7 + 1008: 1806923a slli r3,r3,8 + 100c: 3108703a and r4,r6,r4 + 1010: 2008913a slli r4,r4,4 + 1014: 10c4b03a or r2,r2,r3 + 1018: 00ffc3c4 movi r3,-241 + 101c: 10c4703a and r2,r2,r3 + 1020: 1104b03a or r2,r2,r4 + 1024: 00fffc04 movi r3,-16 + 1028: 314c703a and r6,r6,r5 + 102c: 10c4703a and r2,r2,r3 +} + 1030: 1184b03a or r2,r2,r6 + 1034: f800283a ret + +00001038 : + if (!(mem_addr < MEM_SIZE)) panic(); + memory[global_current_memory][mem_addr] = global_registers[reg]; + return memory[global_current_memory][mem_addr]; +} + +char memory_load(unsigned int mem_addr, enum Register reg) { + 1038: defffd04 addi sp,sp,-12 + if (!(mem_addr < MEM_SIZE)) panic(); + 103c: 008003c4 movi r2,15 + if (!(mem_addr < MEM_SIZE)) panic(); + memory[global_current_memory][mem_addr] = global_registers[reg]; + return memory[global_current_memory][mem_addr]; +} + +char memory_load(unsigned int mem_addr, enum Register reg) { + 1040: dc400115 stw r17,4(sp) + 1044: dc000015 stw r16,0(sp) + 1048: dfc00215 stw ra,8(sp) + 104c: 2021883a mov r16,r4 + 1050: 2823883a mov r17,r5 + if (!(mem_addr < MEM_SIZE)) panic(); + 1054: 1100012e bgeu r2,r4,105c + 1058: 00011340 call 1134 + global_registers[reg] = memory[global_current_memory][mem_addr]; + 105c: d0a04517 ldw r2,-32492(gp) + 1060: 00c00034 movhi r3,0 + 1064: 18c88404 addi r3,r3,8720 + 1068: 01000034 movhi r4,0 + 106c: 2108d404 addi r4,r4,9040 + 1070: 1004913a slli r2,r2,4 + 1074: 8909883a add r4,r17,r4 + 1078: 10c5883a add r2,r2,r3 + 107c: 1405883a add r2,r2,r16 + 1080: 10800003 ldbu r2,0(r2) + 1084: 20800005 stb r2,0(r4) + return global_registers[reg]; +} + 1088: 10803fcc andi r2,r2,255 + 108c: 1080201c xori r2,r2,128 + 1090: 10bfe004 addi r2,r2,-128 + 1094: dfc00217 ldw ra,8(sp) + 1098: dc400117 ldw r17,4(sp) + 109c: dc000017 ldw r16,0(sp) + 10a0: dec00304 addi sp,sp,12 + 10a4: f800283a ret + +000010a8 : +} +struct InstRec inst_memory_load(unsigned int mem_addr){ + return inst_memory[global_current_memory][mem_addr]; +} + +char memory_store(unsigned int mem_addr, enum Register reg) { + 10a8: defffd04 addi sp,sp,-12 + if (!(mem_addr < MEM_SIZE)) panic(); + 10ac: 008003c4 movi r2,15 +} +struct InstRec inst_memory_load(unsigned int mem_addr){ + return inst_memory[global_current_memory][mem_addr]; +} + +char memory_store(unsigned int mem_addr, enum Register reg) { + 10b0: dc400115 stw r17,4(sp) + 10b4: dc000015 stw r16,0(sp) + 10b8: dfc00215 stw ra,8(sp) + 10bc: 2023883a mov r17,r4 + 10c0: 2821883a mov r16,r5 + if (!(mem_addr < MEM_SIZE)) panic(); + 10c4: 1100012e bgeu r2,r4,10cc + 10c8: 00011340 call 1134 + memory[global_current_memory][mem_addr] = global_registers[reg]; + 10cc: d0e04517 ldw r3,-32492(gp) + 10d0: 00800034 movhi r2,0 + 10d4: 1088d404 addi r2,r2,9040 + 10d8: 8085883a add r2,r16,r2 + 10dc: 1806913a slli r3,r3,4 + 10e0: 10800003 ldbu r2,0(r2) + 10e4: 01000034 movhi r4,0 + 10e8: 21088404 addi r4,r4,8720 + 10ec: 1907883a add r3,r3,r4 + 10f0: 1c47883a add r3,r3,r17 + 10f4: 18800005 stb r2,0(r3) + return memory[global_current_memory][mem_addr]; +} + 10f8: 10803fcc andi r2,r2,255 + 10fc: 1080201c xori r2,r2,128 + 1100: 10bfe004 addi r2,r2,-128 + 1104: dfc00217 ldw ra,8(sp) + 1108: dc400117 ldw r17,4(sp) + 110c: dc000017 ldw r16,0(sp) + 1110: dec00304 addi sp,sp,12 + 1114: f800283a ret + +00001118 : + */ +#include "sys_register.h" + +char global_registers[REG_MAX_COUNT]; + +void registers_init() { + 1118: 00800034 movhi r2,0 + 111c: 1088d404 addi r2,r2,9040 + 1120: 10c003c4 addi r3,r2,15 + int i; + for (i = 0; i < REG_MAX_COUNT; i++) global_registers[i] = 0; + 1124: 10000005 stb zero,0(r2) + 1128: 10800044 addi r2,r2,1 + 112c: 10fffd1e bne r2,r3,1124 +} + 1130: f800283a ret + +00001134 : + * Author: takayun + */ +#include "system.h" +#include "hex_out.h" + +void panic() { + 1134: deffff04 addi sp,sp,-4 + clear_block(HEX0_3); + 1138: 0009883a mov r4,zero + * Author: takayun + */ +#include "system.h" +#include "hex_out.h" + +void panic() { + 113c: dfc00015 stw ra,0(sp) + clear_block(HEX0_3); + 1140: 00008f80 call 8f8 + print_block("err ", 4, HEX0_3); + 1144: 01400104 movi r5,4 + 1148: 01000034 movhi r4,0 + 114c: 21076004 addi r4,r4,7552 + 1150: 000d883a mov r6,zero +} + 1154: dfc00017 ldw ra,0(sp) + 1158: dec00104 addi sp,sp,4 +#include "system.h" +#include "hex_out.h" + +void panic() { + clear_block(HEX0_3); + print_block("err ", 4, HEX0_3); + 115c: 000081c1 jmpi 81c + +00001160 : + 1160: 29001b2e bgeu r5,r4,11d0 + 1164: 28001a16 blt r5,zero,11d0 + 1168: 00800044 movi r2,1 + 116c: 0007883a mov r3,zero + 1170: 01c007c4 movi r7,31 + 1174: 00000306 br 1184 + 1178: 19c01326 beq r3,r7,11c8 + 117c: 18c00044 addi r3,r3,1 + 1180: 28000416 blt r5,zero,1194 + 1184: 294b883a add r5,r5,r5 + 1188: 1085883a add r2,r2,r2 + 118c: 293ffa36 bltu r5,r4,1178 + 1190: 10000d26 beq r2,zero,11c8 + 1194: 0007883a mov r3,zero + 1198: 21400236 bltu r4,r5,11a4 + 119c: 2149c83a sub r4,r4,r5 + 11a0: 1886b03a or r3,r3,r2 + 11a4: 1004d07a srli r2,r2,1 + 11a8: 280ad07a srli r5,r5,1 + 11ac: 103ffa1e bne r2,zero,1198 + 11b0: 30000226 beq r6,zero,11bc + 11b4: 2005883a mov r2,r4 + 11b8: f800283a ret + 11bc: 1809883a mov r4,r3 + 11c0: 2005883a mov r2,r4 + 11c4: f800283a ret + 11c8: 0007883a mov r3,zero + 11cc: 003ff806 br 11b0 + 11d0: 00800044 movi r2,1 + 11d4: 0007883a mov r3,zero + 11d8: 003fef06 br 1198 + +000011dc <__divsi3>: + 11dc: defffe04 addi sp,sp,-8 + 11e0: dc000015 stw r16,0(sp) + 11e4: dfc00115 stw ra,4(sp) + 11e8: 0021883a mov r16,zero + 11ec: 20000c16 blt r4,zero,1220 <__divsi3+0x44> + 11f0: 000d883a mov r6,zero + 11f4: 28000e16 blt r5,zero,1230 <__divsi3+0x54> + 11f8: 00011600 call 1160 + 11fc: 1007883a mov r3,r2 + 1200: 8005003a cmpeq r2,r16,zero + 1204: 1000011e bne r2,zero,120c <__divsi3+0x30> + 1208: 00c7c83a sub r3,zero,r3 + 120c: 1805883a mov r2,r3 + 1210: dfc00117 ldw ra,4(sp) + 1214: dc000017 ldw r16,0(sp) + 1218: dec00204 addi sp,sp,8 + 121c: f800283a ret + 1220: 0109c83a sub r4,zero,r4 + 1224: 04000044 movi r16,1 + 1228: 000d883a mov r6,zero + 122c: 283ff20e bge r5,zero,11f8 <__divsi3+0x1c> + 1230: 014bc83a sub r5,zero,r5 + 1234: 8021003a cmpeq r16,r16,zero + 1238: 003fef06 br 11f8 <__divsi3+0x1c> + +0000123c <__modsi3>: + 123c: deffff04 addi sp,sp,-4 + 1240: dfc00015 stw ra,0(sp) + 1244: 01800044 movi r6,1 + 1248: 2807883a mov r3,r5 + 124c: 20000416 blt r4,zero,1260 <__modsi3+0x24> + 1250: 28000c16 blt r5,zero,1284 <__modsi3+0x48> + 1254: dfc00017 ldw ra,0(sp) + 1258: dec00104 addi sp,sp,4 + 125c: 00011601 jmpi 1160 + 1260: 0109c83a sub r4,zero,r4 + 1264: 28000b16 blt r5,zero,1294 <__modsi3+0x58> + 1268: 180b883a mov r5,r3 + 126c: 01800044 movi r6,1 + 1270: 00011600 call 1160 + 1274: 0085c83a sub r2,zero,r2 + 1278: dfc00017 ldw ra,0(sp) + 127c: dec00104 addi sp,sp,4 + 1280: f800283a ret + 1284: 014bc83a sub r5,zero,r5 + 1288: dfc00017 ldw ra,0(sp) + 128c: dec00104 addi sp,sp,4 + 1290: 00011601 jmpi 1160 + 1294: 0147c83a sub r3,zero,r5 + 1298: 003ff306 br 1268 <__modsi3+0x2c> + +0000129c <__udivsi3>: + 129c: 000d883a mov r6,zero + 12a0: 00011601 jmpi 1160 + +000012a4 <__umodsi3>: + 12a4: 01800044 movi r6,1 + 12a8: 00011601 jmpi 1160 + +000012ac <__mulsi3>: + 12ac: 20000a26 beq r4,zero,12d8 <__mulsi3+0x2c> + 12b0: 0007883a mov r3,zero + 12b4: 2080004c andi r2,r4,1 + 12b8: 1005003a cmpeq r2,r2,zero + 12bc: 2008d07a srli r4,r4,1 + 12c0: 1000011e bne r2,zero,12c8 <__mulsi3+0x1c> + 12c4: 1947883a add r3,r3,r5 + 12c8: 294b883a add r5,r5,r5 + 12cc: 203ff91e bne r4,zero,12b4 <__mulsi3+0x8> + 12d0: 1805883a mov r2,r3 + 12d4: f800283a ret + 12d8: 0007883a mov r3,zero + 12dc: 1805883a mov r2,r3 + 12e0: f800283a ret + +000012e4 : + 12e4: defff504 addi sp,sp,-44 + 12e8: 2015883a mov r10,r4 + 12ec: dfc00815 stw ra,32(sp) + 12f0: d9800915 stw r6,36(sp) + 12f4: d9c00a15 stw r7,40(sp) + 12f8: d8800904 addi r2,sp,36 + 12fc: d8800015 stw r2,0(sp) + 1300: 00800034 movhi r2,0 + 1304: 10883c04 addi r2,r2,8432 + 1308: 11000017 ldw r4,0(r2) + 130c: d9c00017 ldw r7,0(sp) + 1310: 00808204 movi r2,520 + 1314: 02200034 movhi r8,32768 + 1318: 423fffc4 addi r8,r8,-1 + 131c: 280d883a mov r6,r5 + 1320: d880010d sth r2,4(sp) + 1324: 00c00034 movhi r3,0 + 1328: 18c6c604 addi r3,r3,6936 + 132c: d9400104 addi r5,sp,4 + 1330: 00bfffc4 movi r2,-1 + 1334: d8c00215 stw r3,8(sp) + 1338: da800315 stw r10,12(sp) + 133c: da000415 stw r8,16(sp) + 1340: d880018d sth r2,6(sp) + 1344: da800515 stw r10,20(sp) + 1348: da000615 stw r8,24(sp) + 134c: d8000715 stw zero,28(sp) + 1350: 00014580 call 1458 <___vfprintf_internal_r> + 1354: d8c00517 ldw r3,20(sp) + 1358: 18000005 stb zero,0(r3) + 135c: dfc00817 ldw ra,32(sp) + 1360: dec00b04 addi sp,sp,44 + 1364: f800283a ret + +00001368 <_sprintf_r>: + 1368: defff604 addi sp,sp,-40 + 136c: 2815883a mov r10,r5 + 1370: dfc00815 stw ra,32(sp) + 1374: d9c00915 stw r7,36(sp) + 1378: d8800904 addi r2,sp,36 + 137c: d8800015 stw r2,0(sp) + 1380: 100f883a mov r7,r2 + 1384: 00808204 movi r2,520 + 1388: 02200034 movhi r8,32768 + 138c: 423fffc4 addi r8,r8,-1 + 1390: d880010d sth r2,4(sp) + 1394: 00c00034 movhi r3,0 + 1398: 18c6c604 addi r3,r3,6936 + 139c: d9400104 addi r5,sp,4 + 13a0: 00bfffc4 movi r2,-1 + 13a4: d8c00215 stw r3,8(sp) + 13a8: da800315 stw r10,12(sp) + 13ac: da000415 stw r8,16(sp) + 13b0: d880018d sth r2,6(sp) + 13b4: da800515 stw r10,20(sp) + 13b8: da000615 stw r8,24(sp) + 13bc: d8000715 stw zero,28(sp) + 13c0: 00014580 call 1458 <___vfprintf_internal_r> + 13c4: d8c00517 ldw r3,20(sp) + 13c8: 18000005 stb zero,0(r3) + 13cc: dfc00817 ldw ra,32(sp) + 13d0: dec00a04 addi sp,sp,40 + 13d4: f800283a ret + +000013d8 : + 13d8: defffb04 addi sp,sp,-20 + 13dc: dc800315 stw r18,12(sp) + 13e0: dc400215 stw r17,8(sp) + 13e4: dc000115 stw r16,4(sp) + 13e8: dfc00415 stw ra,16(sp) + 13ec: 2025883a mov r18,r4 + 13f0: 2823883a mov r17,r5 + 13f4: 3821883a mov r16,r7 + 13f8: d9800005 stb r6,0(sp) + 13fc: 9009883a mov r4,r18 + 1400: 880b883a mov r5,r17 + 1404: d80d883a mov r6,sp + 1408: 01c00044 movi r7,1 + 140c: 04000b0e bge zero,r16,143c + 1410: 88c00117 ldw r3,4(r17) + 1414: 843fffc4 addi r16,r16,-1 + 1418: 183ee83a callr r3 + 141c: 103ff726 beq r2,zero,13fc + 1420: 00bfffc4 movi r2,-1 + 1424: dfc00417 ldw ra,16(sp) + 1428: dc800317 ldw r18,12(sp) + 142c: dc400217 ldw r17,8(sp) + 1430: dc000117 ldw r16,4(sp) + 1434: dec00504 addi sp,sp,20 + 1438: f800283a ret + 143c: 0005883a mov r2,zero + 1440: dfc00417 ldw ra,16(sp) + 1444: dc800317 ldw r18,12(sp) + 1448: dc400217 ldw r17,8(sp) + 144c: dc000117 ldw r16,4(sp) + 1450: dec00504 addi sp,sp,20 + 1454: f800283a ret + +00001458 <___vfprintf_internal_r>: + 1458: deffe304 addi sp,sp,-116 + 145c: df001b15 stw fp,108(sp) + 1460: ddc01a15 stw r23,104(sp) + 1464: dd001715 stw r20,92(sp) + 1468: dc801515 stw r18,84(sp) + 146c: dc001315 stw r16,76(sp) + 1470: dfc01c15 stw ra,112(sp) + 1474: dd801915 stw r22,100(sp) + 1478: dd401815 stw r21,96(sp) + 147c: dcc01615 stw r19,88(sp) + 1480: dc401415 stw r17,80(sp) + 1484: d9001015 stw r4,64(sp) + 1488: 2829883a mov r20,r5 + 148c: d9c01115 stw r7,68(sp) + 1490: 3025883a mov r18,r6 + 1494: 0021883a mov r16,zero + 1498: d8000f15 stw zero,60(sp) + 149c: d8000e15 stw zero,56(sp) + 14a0: 0039883a mov fp,zero + 14a4: d8000915 stw zero,36(sp) + 14a8: d8000d15 stw zero,52(sp) + 14ac: d8000c15 stw zero,48(sp) + 14b0: d8000b15 stw zero,44(sp) + 14b4: 002f883a mov r23,zero + 14b8: 91400003 ldbu r5,0(r18) + 14bc: 01c00044 movi r7,1 + 14c0: 94800044 addi r18,r18,1 + 14c4: 29003fcc andi r4,r5,255 + 14c8: 2100201c xori r4,r4,128 + 14cc: 213fe004 addi r4,r4,-128 + 14d0: 20001526 beq r4,zero,1528 <___vfprintf_internal_r+0xd0> + 14d4: 81c03526 beq r16,r7,15ac <___vfprintf_internal_r+0x154> + 14d8: 3c002016 blt r7,r16,155c <___vfprintf_internal_r+0x104> + 14dc: 803ff61e bne r16,zero,14b8 <___vfprintf_internal_r+0x60> + 14e0: 00800944 movi r2,37 + 14e4: 2081501e bne r4,r2,1a28 <___vfprintf_internal_r+0x5d0> + 14e8: 073fffc4 movi fp,-1 + 14ec: 00800284 movi r2,10 + 14f0: d9c00c15 stw r7,48(sp) + 14f4: d8000f15 stw zero,60(sp) + 14f8: d8000e15 stw zero,56(sp) + 14fc: df000915 stw fp,36(sp) + 1500: d8800d15 stw r2,52(sp) + 1504: d8000b15 stw zero,44(sp) + 1508: 91400003 ldbu r5,0(r18) + 150c: 3821883a mov r16,r7 + 1510: 94800044 addi r18,r18,1 + 1514: 29003fcc andi r4,r5,255 + 1518: 2100201c xori r4,r4,128 + 151c: 213fe004 addi r4,r4,-128 + 1520: 01c00044 movi r7,1 + 1524: 203feb1e bne r4,zero,14d4 <___vfprintf_internal_r+0x7c> + 1528: b805883a mov r2,r23 + 152c: dfc01c17 ldw ra,112(sp) + 1530: df001b17 ldw fp,108(sp) + 1534: ddc01a17 ldw r23,104(sp) + 1538: dd801917 ldw r22,100(sp) + 153c: dd401817 ldw r21,96(sp) + 1540: dd001717 ldw r20,92(sp) + 1544: dcc01617 ldw r19,88(sp) + 1548: dc801517 ldw r18,84(sp) + 154c: dc401417 ldw r17,80(sp) + 1550: dc001317 ldw r16,76(sp) + 1554: dec01d04 addi sp,sp,116 + 1558: f800283a ret + 155c: 00800084 movi r2,2 + 1560: 80801726 beq r16,r2,15c0 <___vfprintf_internal_r+0x168> + 1564: 008000c4 movi r2,3 + 1568: 80bfd31e bne r16,r2,14b8 <___vfprintf_internal_r+0x60> + 156c: 2c7ff404 addi r17,r5,-48 + 1570: 88c03fcc andi r3,r17,255 + 1574: 00800244 movi r2,9 + 1578: 10c02136 bltu r2,r3,1600 <___vfprintf_internal_r+0x1a8> + 157c: d8c00917 ldw r3,36(sp) + 1580: 18012716 blt r3,zero,1a20 <___vfprintf_internal_r+0x5c8> + 1584: d9000917 ldw r4,36(sp) + 1588: 01400284 movi r5,10 + 158c: 00012ac0 call 12ac <__mulsi3> + 1590: 1007883a mov r3,r2 + 1594: 88803fcc andi r2,r17,255 + 1598: 1080201c xori r2,r2,128 + 159c: 10bfe004 addi r2,r2,-128 + 15a0: 1887883a add r3,r3,r2 + 15a4: d8c00915 stw r3,36(sp) + 15a8: 003fc306 br 14b8 <___vfprintf_internal_r+0x60> + 15ac: 00800c04 movi r2,48 + 15b0: 2080b326 beq r4,r2,1880 <___vfprintf_internal_r+0x428> + 15b4: 00800944 movi r2,37 + 15b8: 20812726 beq r4,r2,1a58 <___vfprintf_internal_r+0x600> + 15bc: 04000084 movi r16,2 + 15c0: 2c7ff404 addi r17,r5,-48 + 15c4: 88c03fcc andi r3,r17,255 + 15c8: 00800244 movi r2,9 + 15cc: 10c00a36 bltu r2,r3,15f8 <___vfprintf_internal_r+0x1a0> + 15d0: e000b416 blt fp,zero,18a4 <___vfprintf_internal_r+0x44c> + 15d4: e009883a mov r4,fp + 15d8: 01400284 movi r5,10 + 15dc: 00012ac0 call 12ac <__mulsi3> + 15e0: 1007883a mov r3,r2 + 15e4: 88803fcc andi r2,r17,255 + 15e8: 1080201c xori r2,r2,128 + 15ec: 10bfe004 addi r2,r2,-128 + 15f0: 18b9883a add fp,r3,r2 + 15f4: 003fb006 br 14b8 <___vfprintf_internal_r+0x60> + 15f8: 00800b84 movi r2,46 + 15fc: 2080a326 beq r4,r2,188c <___vfprintf_internal_r+0x434> + 1600: 00801b04 movi r2,108 + 1604: 2080a326 beq r4,r2,1894 <___vfprintf_internal_r+0x43c> + 1608: d8c00917 ldw r3,36(sp) + 160c: 1800a716 blt r3,zero,18ac <___vfprintf_internal_r+0x454> + 1610: d8000f15 stw zero,60(sp) + 1614: 28bfea04 addi r2,r5,-88 + 1618: 10803fcc andi r2,r2,255 + 161c: 00c00804 movi r3,32 + 1620: 18802836 bltu r3,r2,16c4 <___vfprintf_internal_r+0x26c> + 1624: 1085883a add r2,r2,r2 + 1628: 1085883a add r2,r2,r2 + 162c: 00c00034 movhi r3,0 + 1630: 18c59004 addi r3,r3,5696 + 1634: 10c5883a add r2,r2,r3 + 1638: 11000017 ldw r4,0(r2) + 163c: 2000683a jmp r4 + 1640: 000016cc andi zero,zero,91 + 1644: 000016c4 movi zero,91 + 1648: 000016c4 movi zero,91 + 164c: 000016c4 movi zero,91 + 1650: 000016c4 movi zero,91 + 1654: 000016c4 movi zero,91 + 1658: 000016c4 movi zero,91 + 165c: 000016c4 movi zero,91 + 1660: 000016c4 movi zero,91 + 1664: 000016c4 movi zero,91 + 1668: 000016c4 movi zero,91 + 166c: 000018f8 rdprs zero,zero,99 + 1670: 000016e0 cmpeqi zero,zero,91 + 1674: 000016c4 movi zero,91 + 1678: 000016c4 movi zero,91 + 167c: 000016c4 movi zero,91 + 1680: 000016c4 movi zero,91 + 1684: 000016e0 cmpeqi zero,zero,91 + 1688: 000016c4 movi zero,91 + 168c: 000016c4 movi zero,91 + 1690: 000016c4 movi zero,91 + 1694: 000016c4 movi zero,91 + 1698: 000016c4 movi zero,91 + 169c: 00001960 cmpeqi zero,zero,101 + 16a0: 000016c4 movi zero,91 + 16a4: 000016c4 movi zero,91 + 16a8: 000016c4 movi zero,91 + 16ac: 00001970 cmpltui zero,zero,101 + 16b0: 000016c4 movi zero,91 + 16b4: 00001844 movi zero,97 + 16b8: 000016c4 movi zero,91 + 16bc: 000016c4 movi zero,91 + 16c0: 0000183c xorhi zero,zero,96 + 16c4: 0021883a mov r16,zero + 16c8: 003f7b06 br 14b8 <___vfprintf_internal_r+0x60> + 16cc: 00c00404 movi r3,16 + 16d0: 00800044 movi r2,1 + 16d4: d8c00d15 stw r3,52(sp) + 16d8: d8000c15 stw zero,48(sp) + 16dc: d8800b15 stw r2,44(sp) + 16e0: d8c00e17 ldw r3,56(sp) + 16e4: 1805003a cmpeq r2,r3,zero + 16e8: 10005a1e bne r2,zero,1854 <___vfprintf_internal_r+0x3fc> + 16ec: d8800c17 ldw r2,48(sp) + 16f0: 1000781e bne r2,zero,18d4 <___vfprintf_internal_r+0x47c> + 16f4: d8801117 ldw r2,68(sp) + 16f8: d8000a15 stw zero,40(sp) + 16fc: 14400017 ldw r17,0(r2) + 1700: 11c00104 addi r7,r2,4 + 1704: d9c01115 stw r7,68(sp) + 1708: 88005a26 beq r17,zero,1874 <___vfprintf_internal_r+0x41c> + 170c: d8c00b17 ldw r3,44(sp) + 1710: dcc00044 addi r19,sp,1 + 1714: 05800244 movi r22,9 + 1718: 182b003a cmpeq r21,r3,zero + 171c: dcc01215 stw r19,72(sp) + 1720: 00000506 br 1738 <___vfprintf_internal_r+0x2e0> + 1724: 21000c04 addi r4,r4,48 + 1728: 99000005 stb r4,0(r19) + 172c: 9cc00044 addi r19,r19,1 + 1730: 80000f26 beq r16,zero,1770 <___vfprintf_internal_r+0x318> + 1734: 8023883a mov r17,r16 + 1738: d9400d17 ldw r5,52(sp) + 173c: 8809883a mov r4,r17 + 1740: 000129c0 call 129c <__udivsi3> + 1744: d9000d17 ldw r4,52(sp) + 1748: 100b883a mov r5,r2 + 174c: 1021883a mov r16,r2 + 1750: 00012ac0 call 12ac <__mulsi3> + 1754: 8889c83a sub r4,r17,r2 + 1758: b13ff20e bge r22,r4,1724 <___vfprintf_internal_r+0x2cc> + 175c: a8009f1e bne r21,zero,19dc <___vfprintf_internal_r+0x584> + 1760: 21000dc4 addi r4,r4,55 + 1764: 99000005 stb r4,0(r19) + 1768: 9cc00044 addi r19,r19,1 + 176c: 803ff11e bne r16,zero,1734 <___vfprintf_internal_r+0x2dc> + 1770: d8801217 ldw r2,72(sp) + 1774: 98a3c83a sub r17,r19,r2 + 1778: d8c00917 ldw r3,36(sp) + 177c: 1c4bc83a sub r5,r3,r17 + 1780: 0140130e bge zero,r5,17d0 <___vfprintf_internal_r+0x378> + 1784: d8c00044 addi r3,sp,1 + 1788: 18800804 addi r2,r3,32 + 178c: 9880102e bgeu r19,r2,17d0 <___vfprintf_internal_r+0x378> + 1790: 00800c04 movi r2,48 + 1794: 28ffffc4 addi r3,r5,-1 + 1798: 98800005 stb r2,0(r19) + 179c: 99000044 addi r4,r19,1 + 17a0: 00c0080e bge zero,r3,17c4 <___vfprintf_internal_r+0x36c> + 17a4: d8c00044 addi r3,sp,1 + 17a8: 18800804 addi r2,r3,32 + 17ac: 2080052e bgeu r4,r2,17c4 <___vfprintf_internal_r+0x36c> + 17b0: 00800c04 movi r2,48 + 17b4: 20800005 stb r2,0(r4) + 17b8: 21000044 addi r4,r4,1 + 17bc: 9945883a add r2,r19,r5 + 17c0: 20bff81e bne r4,r2,17a4 <___vfprintf_internal_r+0x34c> + 17c4: d8801217 ldw r2,72(sp) + 17c8: 2027883a mov r19,r4 + 17cc: 20a3c83a sub r17,r4,r2 + 17d0: d8c00a17 ldw r3,40(sp) + 17d4: 1c45883a add r2,r3,r17 + 17d8: e0a1c83a sub r16,fp,r2 + 17dc: d8800f17 ldw r2,60(sp) + 17e0: 10008026 beq r2,zero,19e4 <___vfprintf_internal_r+0x58c> + 17e4: 1805003a cmpeq r2,r3,zero + 17e8: 1000ae26 beq r2,zero,1aa4 <___vfprintf_internal_r+0x64c> + 17ec: 0400a516 blt zero,r16,1a84 <___vfprintf_internal_r+0x62c> + 17f0: b805883a mov r2,r23 + 17f4: 0440950e bge zero,r17,1a4c <___vfprintf_internal_r+0x5f4> + 17f8: 102f883a mov r23,r2 + 17fc: 1461883a add r16,r2,r17 + 1800: 00000206 br 180c <___vfprintf_internal_r+0x3b4> + 1804: bdc00044 addi r23,r23,1 + 1808: 85ffae26 beq r16,r23,16c4 <___vfprintf_internal_r+0x26c> + 180c: 9cffffc4 addi r19,r19,-1 + 1810: 98800003 ldbu r2,0(r19) + 1814: a0c00117 ldw r3,4(r20) + 1818: d9001017 ldw r4,64(sp) + 181c: d8800005 stb r2,0(sp) + 1820: a00b883a mov r5,r20 + 1824: d80d883a mov r6,sp + 1828: 01c00044 movi r7,1 + 182c: 183ee83a callr r3 + 1830: 103ff426 beq r2,zero,1804 <___vfprintf_internal_r+0x3ac> + 1834: 05ffffc4 movi r23,-1 + 1838: 003f3b06 br 1528 <___vfprintf_internal_r+0xd0> + 183c: 00c00404 movi r3,16 + 1840: d8c00d15 stw r3,52(sp) + 1844: d8000c15 stw zero,48(sp) + 1848: d8c00e17 ldw r3,56(sp) + 184c: 1805003a cmpeq r2,r3,zero + 1850: 103fa626 beq r2,zero,16ec <___vfprintf_internal_r+0x294> + 1854: d8c00c17 ldw r3,48(sp) + 1858: 1800171e bne r3,zero,18b8 <___vfprintf_internal_r+0x460> + 185c: d8c01117 ldw r3,68(sp) + 1860: d8000a15 stw zero,40(sp) + 1864: 1c400017 ldw r17,0(r3) + 1868: 19c00104 addi r7,r3,4 + 186c: d9c01115 stw r7,68(sp) + 1870: 883fa61e bne r17,zero,170c <___vfprintf_internal_r+0x2b4> + 1874: dcc00044 addi r19,sp,1 + 1878: dcc01215 stw r19,72(sp) + 187c: 003fbe06 br 1778 <___vfprintf_internal_r+0x320> + 1880: 04000084 movi r16,2 + 1884: d9c00f15 stw r7,60(sp) + 1888: 003f0b06 br 14b8 <___vfprintf_internal_r+0x60> + 188c: 040000c4 movi r16,3 + 1890: 003f0906 br 14b8 <___vfprintf_internal_r+0x60> + 1894: 00800044 movi r2,1 + 1898: 040000c4 movi r16,3 + 189c: d8800e15 stw r2,56(sp) + 18a0: 003f0506 br 14b8 <___vfprintf_internal_r+0x60> + 18a4: 0007883a mov r3,zero + 18a8: 003f4e06 br 15e4 <___vfprintf_internal_r+0x18c> + 18ac: 00800044 movi r2,1 + 18b0: d8800915 stw r2,36(sp) + 18b4: 003f5706 br 1614 <___vfprintf_internal_r+0x1bc> + 18b8: d8801117 ldw r2,68(sp) + 18bc: 14400017 ldw r17,0(r2) + 18c0: 10800104 addi r2,r2,4 + 18c4: d8801115 stw r2,68(sp) + 18c8: 88000716 blt r17,zero,18e8 <___vfprintf_internal_r+0x490> + 18cc: d8000a15 stw zero,40(sp) + 18d0: 003f8d06 br 1708 <___vfprintf_internal_r+0x2b0> + 18d4: d8c01117 ldw r3,68(sp) + 18d8: 1c400017 ldw r17,0(r3) + 18dc: 18c00104 addi r3,r3,4 + 18e0: d8c01115 stw r3,68(sp) + 18e4: 883ff90e bge r17,zero,18cc <___vfprintf_internal_r+0x474> + 18e8: 00800044 movi r2,1 + 18ec: 0463c83a sub r17,zero,r17 + 18f0: d8800a15 stw r2,40(sp) + 18f4: 003f8406 br 1708 <___vfprintf_internal_r+0x2b0> + 18f8: 04000044 movi r16,1 + 18fc: 8700080e bge r16,fp,1920 <___vfprintf_internal_r+0x4c8> + 1900: d9001017 ldw r4,64(sp) + 1904: a00b883a mov r5,r20 + 1908: 01800804 movi r6,32 + 190c: e1ffffc4 addi r7,fp,-1 + 1910: 00013d80 call 13d8 + 1914: 103fc71e bne r2,zero,1834 <___vfprintf_internal_r+0x3dc> + 1918: e5c5883a add r2,fp,r23 + 191c: 15ffffc4 addi r23,r2,-1 + 1920: d8c01117 ldw r3,68(sp) + 1924: d9001017 ldw r4,64(sp) + 1928: 800f883a mov r7,r16 + 192c: 18800017 ldw r2,0(r3) + 1930: a0c00117 ldw r3,4(r20) + 1934: a00b883a mov r5,r20 + 1938: d8800005 stb r2,0(sp) + 193c: d80d883a mov r6,sp + 1940: 183ee83a callr r3 + 1944: 103fbb1e bne r2,zero,1834 <___vfprintf_internal_r+0x3dc> + 1948: d8801117 ldw r2,68(sp) + 194c: bdc00044 addi r23,r23,1 + 1950: 0021883a mov r16,zero + 1954: 10800104 addi r2,r2,4 + 1958: d8801115 stw r2,68(sp) + 195c: 003ed606 br 14b8 <___vfprintf_internal_r+0x60> + 1960: 00800204 movi r2,8 + 1964: d8800d15 stw r2,52(sp) + 1968: d8000c15 stw zero,48(sp) + 196c: 003fb606 br 1848 <___vfprintf_internal_r+0x3f0> + 1970: d8c01117 ldw r3,68(sp) + 1974: 1cc00017 ldw r19,0(r3) + 1978: 9809883a mov r4,r19 + 197c: 0001c300 call 1c30 + 1980: e0a1c83a sub r16,fp,r2 + 1984: 1023883a mov r17,r2 + 1988: 0400070e bge zero,r16,19a8 <___vfprintf_internal_r+0x550> + 198c: d9001017 ldw r4,64(sp) + 1990: a00b883a mov r5,r20 + 1994: 01800804 movi r6,32 + 1998: 800f883a mov r7,r16 + 199c: 00013d80 call 13d8 + 19a0: 103fa41e bne r2,zero,1834 <___vfprintf_internal_r+0x3dc> + 19a4: bc2f883a add r23,r23,r16 + 19a8: a0c00117 ldw r3,4(r20) + 19ac: d9001017 ldw r4,64(sp) + 19b0: 980d883a mov r6,r19 + 19b4: a00b883a mov r5,r20 + 19b8: 880f883a mov r7,r17 + 19bc: 183ee83a callr r3 + 19c0: 103f9c1e bne r2,zero,1834 <___vfprintf_internal_r+0x3dc> + 19c4: d8801117 ldw r2,68(sp) + 19c8: bc6f883a add r23,r23,r17 + 19cc: 0021883a mov r16,zero + 19d0: 10800104 addi r2,r2,4 + 19d4: d8801115 stw r2,68(sp) + 19d8: 003eb706 br 14b8 <___vfprintf_internal_r+0x60> + 19dc: 210015c4 addi r4,r4,87 + 19e0: 003f5106 br 1728 <___vfprintf_internal_r+0x2d0> + 19e4: 04003b16 blt zero,r16,1ad4 <___vfprintf_internal_r+0x67c> + 19e8: d8c00a17 ldw r3,40(sp) + 19ec: 1805003a cmpeq r2,r3,zero + 19f0: 103f7f1e bne r2,zero,17f0 <___vfprintf_internal_r+0x398> + 19f4: a0c00117 ldw r3,4(r20) + 19f8: d9001017 ldw r4,64(sp) + 19fc: 00800b44 movi r2,45 + 1a00: d8800005 stb r2,0(sp) + 1a04: a00b883a mov r5,r20 + 1a08: d80d883a mov r6,sp + 1a0c: 01c00044 movi r7,1 + 1a10: 183ee83a callr r3 + 1a14: 103f871e bne r2,zero,1834 <___vfprintf_internal_r+0x3dc> + 1a18: b8800044 addi r2,r23,1 + 1a1c: 003f7506 br 17f4 <___vfprintf_internal_r+0x39c> + 1a20: 0007883a mov r3,zero + 1a24: 003edb06 br 1594 <___vfprintf_internal_r+0x13c> + 1a28: a0c00117 ldw r3,4(r20) + 1a2c: d9001017 ldw r4,64(sp) + 1a30: d9400005 stb r5,0(sp) + 1a34: d80d883a mov r6,sp + 1a38: a00b883a mov r5,r20 + 1a3c: 183ee83a callr r3 + 1a40: 103f7c1e bne r2,zero,1834 <___vfprintf_internal_r+0x3dc> + 1a44: bdc00044 addi r23,r23,1 + 1a48: 003e9b06 br 14b8 <___vfprintf_internal_r+0x60> + 1a4c: 102f883a mov r23,r2 + 1a50: 0021883a mov r16,zero + 1a54: 003e9806 br 14b8 <___vfprintf_internal_r+0x60> + 1a58: a0c00117 ldw r3,4(r20) + 1a5c: d9000005 stb r4,0(sp) + 1a60: d9001017 ldw r4,64(sp) + 1a64: a00b883a mov r5,r20 + 1a68: d80d883a mov r6,sp + 1a6c: 800f883a mov r7,r16 + 1a70: 183ee83a callr r3 + 1a74: 103f6f1e bne r2,zero,1834 <___vfprintf_internal_r+0x3dc> + 1a78: bc2f883a add r23,r23,r16 + 1a7c: 0021883a mov r16,zero + 1a80: 003e8d06 br 14b8 <___vfprintf_internal_r+0x60> + 1a84: d9001017 ldw r4,64(sp) + 1a88: a00b883a mov r5,r20 + 1a8c: 01800c04 movi r6,48 + 1a90: 800f883a mov r7,r16 + 1a94: 00013d80 call 13d8 + 1a98: 103f661e bne r2,zero,1834 <___vfprintf_internal_r+0x3dc> + 1a9c: bc05883a add r2,r23,r16 + 1aa0: 003f5406 br 17f4 <___vfprintf_internal_r+0x39c> + 1aa4: a0c00117 ldw r3,4(r20) + 1aa8: d9001017 ldw r4,64(sp) + 1aac: 00800b44 movi r2,45 + 1ab0: d8800005 stb r2,0(sp) + 1ab4: a00b883a mov r5,r20 + 1ab8: d80d883a mov r6,sp + 1abc: 01c00044 movi r7,1 + 1ac0: 183ee83a callr r3 + 1ac4: 103f5b1e bne r2,zero,1834 <___vfprintf_internal_r+0x3dc> + 1ac8: bdc00044 addi r23,r23,1 + 1acc: 043f480e bge zero,r16,17f0 <___vfprintf_internal_r+0x398> + 1ad0: 003fec06 br 1a84 <___vfprintf_internal_r+0x62c> + 1ad4: d9001017 ldw r4,64(sp) + 1ad8: a00b883a mov r5,r20 + 1adc: 01800804 movi r6,32 + 1ae0: 800f883a mov r7,r16 + 1ae4: 00013d80 call 13d8 + 1ae8: 103f521e bne r2,zero,1834 <___vfprintf_internal_r+0x3dc> + 1aec: bc2f883a add r23,r23,r16 + 1af0: 003fbd06 br 19e8 <___vfprintf_internal_r+0x590> + +00001af4 <__vfprintf_internal>: + 1af4: 00800034 movhi r2,0 + 1af8: 10883c04 addi r2,r2,8432 + 1afc: 2013883a mov r9,r4 + 1b00: 11000017 ldw r4,0(r2) + 1b04: 2805883a mov r2,r5 + 1b08: 300f883a mov r7,r6 + 1b0c: 480b883a mov r5,r9 + 1b10: 100d883a mov r6,r2 + 1b14: 00014581 jmpi 1458 <___vfprintf_internal_r> + +00001b18 <__sfvwrite_small_str>: + 1b18: 2900000b ldhu r4,0(r5) + 1b1c: defffd04 addi sp,sp,-12 + 1b20: dc000015 stw r16,0(sp) + 1b24: 20ffffcc andi r3,r4,65535 + 1b28: 1880020c andi r2,r3,8 + 1b2c: 2821883a mov r16,r5 + 1b30: dfc00215 stw ra,8(sp) + 1b34: dc400115 stw r17,4(sp) + 1b38: 300b883a mov r5,r6 + 1b3c: 10001d26 beq r2,zero,1bb4 <__sfvwrite_small_str+0x9c> + 1b40: 8080008f ldh r2,2(r16) + 1b44: 1000190e bge r2,zero,1bac <__sfvwrite_small_str+0x94> + 1b48: 1880800c andi r2,r3,512 + 1b4c: 10001726 beq r2,zero,1bac <__sfvwrite_small_str+0x94> + 1b50: 81800517 ldw r6,20(r16) + 1b54: 31c0020e bge r6,r7,1b60 <__sfvwrite_small_str+0x48> + 1b58: 1880200c andi r2,r3,128 + 1b5c: 1000131e bne r2,zero,1bac <__sfvwrite_small_str+0x94> + 1b60: 3023883a mov r17,r6 + 1b64: 3980010e bge r7,r6,1b6c <__sfvwrite_small_str+0x54> + 1b68: 3823883a mov r17,r7 + 1b6c: 81000417 ldw r4,16(r16) + 1b70: 880d883a mov r6,r17 + 1b74: 0001bd00 call 1bd0 + 1b78: 80800417 ldw r2,16(r16) + 1b7c: 80c00517 ldw r3,20(r16) + 1b80: 0009883a mov r4,zero + 1b84: 1445883a add r2,r2,r17 + 1b88: 1c47c83a sub r3,r3,r17 + 1b8c: 80800415 stw r2,16(r16) + 1b90: 2005883a mov r2,r4 + 1b94: 80c00515 stw r3,20(r16) + 1b98: dfc00217 ldw ra,8(sp) + 1b9c: dc400117 ldw r17,4(sp) + 1ba0: dc000017 ldw r16,0(sp) + 1ba4: dec00304 addi sp,sp,12 + 1ba8: f800283a ret + 1bac: 20801014 ori r2,r4,64 + 1bb0: 8080000d sth r2,0(r16) + 1bb4: 013fffc4 movi r4,-1 + 1bb8: 2005883a mov r2,r4 + 1bbc: dfc00217 ldw ra,8(sp) + 1bc0: dc400117 ldw r17,4(sp) + 1bc4: dc000017 ldw r16,0(sp) + 1bc8: dec00304 addi sp,sp,12 + 1bcc: f800283a ret + +00001bd0 : + 1bd0: 2011883a mov r8,r4 + 1bd4: 2900022e bgeu r5,r4,1be0 + 1bd8: 2989883a add r4,r5,r6 + 1bdc: 41000a36 bltu r8,r4,1c08 + 1be0: 30000726 beq r6,zero,1c00 + 1be4: 000f883a mov r7,zero + 1be8: 29c5883a add r2,r5,r7 + 1bec: 11000003 ldbu r4,0(r2) + 1bf0: 3a07883a add r3,r7,r8 + 1bf4: 39c00044 addi r7,r7,1 + 1bf8: 19000005 stb r4,0(r3) + 1bfc: 31fffa1e bne r6,r7,1be8 + 1c00: 4005883a mov r2,r8 + 1c04: f800283a ret + 1c08: 303ffd26 beq r6,zero,1c00 + 1c0c: 4187883a add r3,r8,r6 + 1c10: 198dc83a sub r6,r3,r6 + 1c14: 213fffc4 addi r4,r4,-1 + 1c18: 20800003 ldbu r2,0(r4) + 1c1c: 18ffffc4 addi r3,r3,-1 + 1c20: 18800005 stb r2,0(r3) + 1c24: 19bffb1e bne r3,r6,1c14 + 1c28: 4005883a mov r2,r8 + 1c2c: f800283a ret + +00001c30 : + 1c30: 20800007 ldb r2,0(r4) + 1c34: 10000526 beq r2,zero,1c4c + 1c38: 2007883a mov r3,r4 + 1c3c: 18c00044 addi r3,r3,1 + 1c40: 18800007 ldb r2,0(r3) + 1c44: 103ffd1e bne r2,zero,1c3c + 1c48: 1905c83a sub r2,r3,r4 + 1c4c: f800283a ret + +00001c50 : + +static void ALT_INLINE alt_load_section (alt_u32* from, + alt_u32* to, + alt_u32* end) +{ + if (to != from) + 1c50: 2900051e bne r5,r4,1c68 + 1c54: f800283a ret + { + while( to != end ) + { + *to++ = *from++; + 1c58: 20800017 ldw r2,0(r4) + 1c5c: 21000104 addi r4,r4,4 + 1c60: 28800015 stw r2,0(r5) + 1c64: 29400104 addi r5,r5,4 + alt_u32* to, + alt_u32* end) +{ + if (to != from) + { + while( to != end ) + 1c68: 29bffb1e bne r5,r6,1c58 + 1c6c: f800283a ret + +00001c70 : + * there is no bootloader, so this application is responsible for loading to + * RAM any sections that are required. + */ + +void alt_load (void) +{ + 1c70: deffff04 addi sp,sp,-4 + /* + * Copy the .rwdata section. + */ + + alt_load_section (&__flash_rwdata_start, + 1c74: 01000034 movhi r4,0 + 1c78: 21083f04 addi r4,r4,8444 + 1c7c: 01400034 movhi r5,0 + 1c80: 29480304 addi r5,r5,8204 + 1c84: 01800034 movhi r6,0 + 1c88: 31883f04 addi r6,r6,8444 + * there is no bootloader, so this application is responsible for loading to + * RAM any sections that are required. + */ + +void alt_load (void) +{ + 1c8c: dfc00015 stw ra,0(sp) + /* + * Copy the .rwdata section. + */ + + alt_load_section (&__flash_rwdata_start, + 1c90: 0001c500 call 1c50 + + /* + * Copy the exception handler. + */ + + alt_load_section (&__flash_exceptions_start, + 1c94: 01000034 movhi r4,0 + 1c98: 21000804 addi r4,r4,32 + 1c9c: 01400034 movhi r5,0 + 1ca0: 29400804 addi r5,r5,32 + 1ca4: 01800034 movhi r6,0 + 1ca8: 31800804 addi r6,r6,32 + 1cac: 0001c500 call 1c50 + + /* + * Copy the .rodata section. + */ + + alt_load_section (&__flash_rodata_start, + 1cb0: 01000034 movhi r4,0 + 1cb4: 21074f04 addi r4,r4,7484 + 1cb8: 01400034 movhi r5,0 + 1cbc: 29474f04 addi r5,r5,7484 + 1cc0: 01800034 movhi r6,0 + 1cc4: 31880304 addi r6,r6,8204 + 1cc8: 0001c500 call 1c50 + + /* + * Now ensure that the caches are in synch. + */ + + alt_dcache_flush_all(); + 1ccc: 0001d2c0 call 1d2c + alt_icache_flush_all(); +} + 1cd0: dfc00017 ldw ra,0(sp) + 1cd4: dec00104 addi sp,sp,4 + /* + * Now ensure that the caches are in synch. + */ + + alt_dcache_flush_all(); + alt_icache_flush_all(); + 1cd8: 0001d301 jmpi 1d30 + +00001cdc : + * devices/filesystems/components in the system; and call the entry point for + * the users application, i.e. main(). + */ + +void alt_main (void) +{ + 1cdc: deffff04 addi sp,sp,-4 +#endif + + /* ALT LOG - please see HAL/sys/alt_log_printf.h for details */ + ALT_LOG_PRINT_BOOT("[alt_main.c] Entering alt_main, calling alt_irq_init.\r\n"); + /* Initialize the interrupt controller. */ + alt_irq_init (NULL); + 1ce0: 0009883a mov r4,zero + * devices/filesystems/components in the system; and call the entry point for + * the users application, i.e. main(). + */ + +void alt_main (void) +{ + 1ce4: dfc00015 stw ra,0(sp) +#endif + + /* ALT LOG - please see HAL/sys/alt_log_printf.h for details */ + ALT_LOG_PRINT_BOOT("[alt_main.c] Entering alt_main, calling alt_irq_init.\r\n"); + /* Initialize the interrupt controller. */ + alt_irq_init (NULL); + 1ce8: 0001d0c0 call 1d0c + ALT_LOG_PRINT_BOOT("[alt_main.c] Done OS Init, calling alt_sem_create.\r\n"); + ALT_SEM_CREATE (&alt_fd_list_lock, 1); + + /* Initialize the device drivers/software components. */ + ALT_LOG_PRINT_BOOT("[alt_main.c] Calling alt_sys_init.\r\n"); + alt_sys_init(); + 1cec: 0001d080 call 1d08 + */ + + ALT_LOG_PRINT_BOOT("[alt_main.c] Calling main.\r\n"); + +#ifdef ALT_NO_EXIT + main (alt_argc, alt_argv, alt_envp); + 1cf0: d1204617 ldw r4,-32488(gp) + 1cf4: d1604717 ldw r5,-32484(gp) + 1cf8: d1a04817 ldw r6,-32480(gp) + close(STDOUT_FILENO); + exit (result); +#endif + + ALT_LOG_PRINT_BOOT("[alt_main.c] After main - we should not be here?.\r\n"); +} + 1cfc: dfc00017 ldw ra,0(sp) + 1d00: dec00104 addi sp,sp,4 + */ + + ALT_LOG_PRINT_BOOT("[alt_main.c] Calling main.\r\n"); + +#ifdef ALT_NO_EXIT + main (alt_argc, alt_argv, alt_envp); + 1d04: 00003e81 jmpi 3e8
+ +00001d08 : + */ + +void alt_sys_init( void ) +{ + ALTERA_AVALON_JTAG_UART_INIT ( JTAG_UART, jtag_uart); +} + 1d08: f800283a ret + +00001d0c : + * The "base" parameter is ignored and only + * present for backwards-compatibility. + */ + +void alt_irq_init ( const void* base ) +{ + 1d0c: deffff04 addi sp,sp,-4 + 1d10: dfc00015 stw ra,0(sp) + ALTERA_NIOS2_QSYS_IRQ_INIT ( NIOS2_PROCESSOR, nios2_processor); + 1d14: 0001d340 call 1d34 + * alt_irq_cpu_enable_interrupts() enables the CPU to start taking interrupts. + */ +static ALT_INLINE void ALT_ALWAYS_INLINE + alt_irq_cpu_enable_interrupts () +{ + NIOS2_WRITE_STATUS(NIOS2_STATUS_PIE_MSK + 1d18: 00800044 movi r2,1 + 1d1c: 1001703a wrctl status,r2 + alt_irq_cpu_enable_interrupts(); +} + 1d20: dfc00017 ldw ra,0(sp) + 1d24: dec00104 addi sp,sp,4 + 1d28: f800283a ret + +00001d2c : + for (i = (char*) 0; i < (char*) NIOS2_DCACHE_SIZE; i+= NIOS2_DCACHE_LINE_SIZE) + { + __asm__ volatile ("flushd (%0)" :: "r" (i)); + } +#endif /* NIOS2_DCACHE_SIZE > 0 */ +} + 1d2c: f800283a ret + +00001d30 : +void alt_icache_flush_all (void) +{ +#if NIOS2_ICACHE_SIZE > 0 + alt_icache_flush (0, NIOS2_ICACHE_SIZE); +#endif +} + 1d30: f800283a ret + +00001d34 : + * To initialize the internal interrupt controller, just clear the IENABLE + * register so that all possible IRQs are disabled. + */ +void altera_nios2_qsys_irq_init(void) +{ + NIOS2_WRITE_IENABLE(0); + 1d34: 000170fa wrctl ienable,zero +} + 1d38: f800283a ret diff --git a/software/qsys_tutorial_lcd/readme.txt b/software/qsys_tutorial_lcd/readme.txt new file mode 100644 index 0000000..3dc3186 --- /dev/null +++ b/software/qsys_tutorial_lcd/readme.txt @@ -0,0 +1,67 @@ +Readme - Hello World Software Example + +DESCRIPTION: +Simple program that prints "Hello from Nios II" + +The purpose of this example is to demonstrate the smallest possible Hello +World application, using the Nios II HAL BSP. The memory footprint +of this hosted application is intended to be less than 1 kbytes by default using a standard +reference design. For a more fully featured Hello World application +example, see the example titled "Hello World". + +The memory footprint of this example has been reduced by making the +following changes to the normal "Hello World" example. +Check in the Nios II Software Developers Handbook for a more complete +description. + +In the SW Application project: + - In the C/C++ Build page + - Set the Optimization Level to -Os + +In BSP project: + - In the C/C++ Build page + + - Set the Optimization Level to -Os + + - Define the preprocessor option ALT_NO_INSTRUCTION_EMULATION + This removes software exception handling, which means that you cannot + run code compiled for Nios II cpu with a hardware multiplier on a core + without a the multiply unit. Check the Nios II Software Developers + Manual for more details. + + - In the BSP: + - Set Periodic system timer and Timestamp timer to none + This prevents the automatic inclusion of the timer driver. + + - Set Max file descriptors to 4 + This reduces the size of the file handle pool. + + - Uncheck Clean exit (flush buffers) + This removes the call to exit, and when main is exitted instead of + calling exit the software will just spin in a loop. + + - Check Small C library + This uses a reduced functionality C library, which lacks + support for buffering, file IO, floating point and getch(), etc. + Check the Nios II Software Developers Manual for a complete list. + + - Check Reduced device drivers + This uses reduced functionality drivers if they're available. For the + standard design this means you get polled UART and JTAG UART drivers, + no support for the LCD driver and you lose the ability to program + CFI compliant flash devices. + + +PERIPHERALS USED: +This example exercises the following peripherals: +- STDOUT device (UART or JTAG UART) + +SOFTWARE SOURCE FILES: +This example includes the following software source files: +- small_hello_world.c: + +BOARD/HOST REQUIREMENTS: +This example requires only a JTAG connection with a Nios Development board. If +the host communication settings are changed from JTAG UART (default) to use a +conventional UART, a serial cable between board DB-9 connector and the host is +required. diff --git a/software/qsys_tutorial_lcd/sys_memory.c b/software/qsys_tutorial_lcd/sys_memory.c new file mode 100644 index 0000000..c8faff6 --- /dev/null +++ b/software/qsys_tutorial_lcd/sys_memory.c @@ -0,0 +1,58 @@ +/* + * sys_memory.c + * + * Created on: 2016/11/24 + * Author: takayun + */ +#include "system.h" +#include "sys_memory.h" +#include "sys_register.h" + +/************************************************** + * Public + **************************************************/ + +// �����������̂ǂ̃�������(0 < global_current_memory < MEMS_COUNT) +unsigned int global_current_memory = 0; + +/************************************************** + * Private + **************************************************/ + +// �����������̕ϐ� +static char memory[MEMS_COUNT][MEM_SIZE]; + +static struct InstRec inst_memory[MEMS_COUNT][MEM_SIZE]; + + +/************************************************** + * Impl + **************************************************/ + +void memory_init() { + int i, j; + for (i = 0; i < MEMS_COUNT; i++) + for (j = 0; j < MEM_SIZE; j++) { + memory[i][j] = 0; + } +} + +void inst_memory_store(unsigned int mem_addr, struct InstRec inst_rec){ + inst_memory[global_current_memory][mem_addr] = inst_rec; +} +struct InstRec inst_memory_load(unsigned int mem_addr){ + return inst_memory[global_current_memory][mem_addr]; +} + +char memory_store(unsigned int mem_addr, enum Register reg) { + if (!(mem_addr < MEM_SIZE)) panic(); + memory[global_current_memory][mem_addr] = global_registers[reg]; + return memory[global_current_memory][mem_addr]; +} + +char memory_load(unsigned int mem_addr, enum Register reg) { + if (!(mem_addr < MEM_SIZE)) panic(); + global_registers[reg] = memory[global_current_memory][mem_addr]; + return global_registers[reg]; +} + diff --git a/software/qsys_tutorial_lcd/sys_memory.h b/software/qsys_tutorial_lcd/sys_memory.h new file mode 100644 index 0000000..648fe11 --- /dev/null +++ b/software/qsys_tutorial_lcd/sys_memory.h @@ -0,0 +1,67 @@ +/* + * sys_memory.h + * + * Created on: 2016/11/24 + * Author: takayun + */ + +#ifndef SYS_MEMORY_H_ +#define SYS_MEMORY_H_ + +#include "sys_register.h" +#include "inst_decoder.h" + +/************************************************** + * Defines + **************************************************/ + +// �������̐� +#define MEMS_COUNT 4 + +// 1�������̃T�C�Y +#define MEM_SIZE 16 + +/************************************************** + * Variables + **************************************************/ + +extern unsigned int global_current_memory; + +/************************************************** + * Functions + **************************************************/ + +/* Function: memory_init + * Sammary: + * ������������������(All 0) */ +void memory_init(); + +/* ���ߗp�������ɖ��߂̃X�g�A&���[�h */ + +/* Function: memory_store -> char + * Sammary: + * �������̎w��Ԓn�Ɏw�肵�����W�X�^����l���i�[���� + * Return: + * �������Ɋi�[���ꂽ�l */ +void inst_memory_store(unsigned int mem_addr, struct InstRec inst_rec); +struct InstRec inst_memory_load(unsigned int mem_addr); + + +/* ������-���W�X�^�Ԃ̑��� */ + +/* Function: memory_store -> char + * Sammary: + * �������̎w��Ԓn�Ɏw�肵�����W�X�^����l���i�[���� + * Return: + * �������Ɋi�[���ꂽ�l */ +char memory_store(unsigned int mem_addr, enum Register reg); + +/* Function: memory_store -> char + * Sammary: + * �w�肵�����W�X�^�Ƀ������̎w��Ԓn����l���i�[���� + * Return: + * ���W�X�^�Ɋi�[���ꂽ�l */ +char memory_load(unsigned int mem_addr, enum Register reg); + + +#endif /* SYS_MEMORY_H_ */ diff --git a/software/qsys_tutorial_lcd/sys_register.c b/software/qsys_tutorial_lcd/sys_register.c new file mode 100644 index 0000000..84ed485 --- /dev/null +++ b/software/qsys_tutorial_lcd/sys_register.c @@ -0,0 +1,17 @@ +/* + * sys_register.c + * + * Created on: 2016/11/24 + * Author: takayun + */ +#include "sys_register.h" + +char global_registers[REG_MAX_COUNT]; + +void registers_init() { + int i; + for (i = 0; i < REG_MAX_COUNT; i++) global_registers[i] = 0; +} + + + diff --git a/software/qsys_tutorial_lcd/sys_register.h b/software/qsys_tutorial_lcd/sys_register.h new file mode 100644 index 0000000..65ad219 --- /dev/null +++ b/software/qsys_tutorial_lcd/sys_register.h @@ -0,0 +1,54 @@ +/* + * sys_register.h + * + * Created on: 2016/11/24 + * Author: takayun + */ + +#ifndef SYS_REGISTER_H_ +#define SYS_REGISTER_H_ + +/************************************************** + * Defines + **************************************************/ + +// ���W�X�^�̒�` +enum Register { + /* �ʏ�̃��W�X�^ */ + Szero, //�[�����W�X�^ + Spc, //�v���O�����J�E���^ + Ssp, //�X�^�b�N�|�C���^ + Sgp0, //�ėp���W�X�^0 + Sgp1, //�ėp���W�X�^1 + Sacc, //�A�L�������[�^ + Sflg, //�t���O���W�X�^ + /* �X�C�b�`�ǂݏo���p���W�X�^ */ + Ssw_data, //�f�[�^(8bit) + Ssw_inst, //����(4bit) + Ssw_regi, //���W�X�^�ԍ�(4bit) + Ssw_memi, //�������Ԓn(4bit) + Ssw_psel, //�v���O�����Z���N�^(4bit) + Ssw_rw, //�ǂݏ������[�h(1bit) + Ssw_run, //���s���[�h(1bit) + /* 7�Z�O�p���W�X�^ */ + Sseg, + + /* �z��錾�p */ + REG_MAX_COUNT +}; + +/************************************************** + * Variables + **************************************************/ + +// ���W�X�^�p�̕ϐ� +extern char global_registers[REG_MAX_COUNT]; + +/************************************************** + * Functions + **************************************************/ + +void registers_init(); + + +#endif /* SYS_REGISTER_H_ */ diff --git a/software/qsys_tutorial_lcd/system.c b/software/qsys_tutorial_lcd/system.c new file mode 100644 index 0000000..30713dd --- /dev/null +++ b/software/qsys_tutorial_lcd/system.c @@ -0,0 +1,14 @@ +/* + * system.c + * + * Created on: 2016/11/24 + * Author: takayun + */ +#include "system.h" +#include "hex_out.h" + +void panic() { + clear_block(HEX0_3); + print_block("err ", 4, HEX0_3); +} + diff --git a/software/qsys_tutorial_lcd/system.h b/software/qsys_tutorial_lcd/system.h new file mode 100644 index 0000000..1a628fa --- /dev/null +++ b/software/qsys_tutorial_lcd/system.h @@ -0,0 +1,13 @@ +/* + * system.h + * + * Created on: 2016/11/24 + * Author: takayun + */ + +#ifndef SYSTEM_H_ +#define SYSTEM_H_ + +void panic(); + +#endif /* SYSTEM_H_ */ diff --git a/software/qsys_tutorial_lcd/system/template.xml b/software/qsys_tutorial_lcd/system/template.xml new file mode 100644 index 0000000..b09e912 --- /dev/null +++ b/software/qsys_tutorial_lcd/system/template.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/software/qsys_tutorial_lcd2/.cproject b/software/qsys_tutorial_lcd2/.cproject new file mode 100644 index 0000000..408fd00 --- /dev/null +++ b/software/qsys_tutorial_lcd2/.cproject @@ -0,0 +1,508 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + make + + mem_init_install + true + false + false + + + make + + mem_init_generate + true + false + false + + + make + + help + true + false + false + + + + diff --git a/software/qsys_tutorial_lcd2/.force_relink b/software/qsys_tutorial_lcd2/.force_relink new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/software/qsys_tutorial_lcd2/.force_relink diff --git a/software/qsys_tutorial_lcd2/.project b/software/qsys_tutorial_lcd2/.project new file mode 100644 index 0000000..009651b --- /dev/null +++ b/software/qsys_tutorial_lcd2/.project @@ -0,0 +1,96 @@ + + + qsys_tutorial_lcd2 + + + + + + com.altera.sbtgui.project.makefileBuilder + + + + + com.altera.sbtgui.project.makefileBuilder + + + + + org.eclipse.cdt.managedbuilder.core.genmakebuilder + clean,full,incremental, + + + ?name? + + + + org.eclipse.cdt.make.core.append_environment + true + + + org.eclipse.cdt.make.core.autoBuildTarget + all + + + org.eclipse.cdt.make.core.buildArguments + + + + org.eclipse.cdt.make.core.buildCommand + make + + + org.eclipse.cdt.make.core.buildLocation + ${workspace_loc://qsys_tutorial_lcd2} + + + org.eclipse.cdt.make.core.cleanBuildTarget + clean + + + org.eclipse.cdt.make.core.contents + org.eclipse.cdt.make.core.activeConfigSettings + + + org.eclipse.cdt.make.core.enableAutoBuild + false + + + org.eclipse.cdt.make.core.enableCleanBuild + true + + + org.eclipse.cdt.make.core.enableFullBuild + true + + + org.eclipse.cdt.make.core.fullBuildTarget + all + + + org.eclipse.cdt.make.core.stopOnError + true + + + org.eclipse.cdt.make.core.useDefaultBuildCmd + true + + + + + org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder + full,incremental, + + + + + + org.eclipse.cdt.core.cnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.managedbuilder.core.ScannerConfigNature + org.eclipse.cdt.core.ccnature + com.altera.sbtgui.project.SBTGUINature + com.altera.sbtgui.project.SBTGUIAppNature + com.altera.sbtgui.project.SBTGUIManagedNature + + diff --git a/software/qsys_tutorial_lcd2/Makefile b/software/qsys_tutorial_lcd2/Makefile new file mode 100644 index 0000000..76ddf36 --- /dev/null +++ b/software/qsys_tutorial_lcd2/Makefile @@ -0,0 +1,1093 @@ +#------------------------------------------------------------------------------ +# VARIABLES APPENDED TO BY INCLUDED MAKEFILE FRAGMENTS +#------------------------------------------------------------------------------ + +# List of include directories for -I compiler option (-I added when used). +# Includes the BSP. +ALT_INCLUDE_DIRS := + +# List of library directories for -L linker option (-L added when used). +# Includes the BSP. +ALT_LIBRARY_DIRS := + +# List of library names for -l linker option (-l added when used). +# Includes the BSP. +ALT_LIBRARY_NAMES := + +# List of library names for -msys-lib linker option (-msys-lib added when used). +# These are libraries that might be located in the BSP and depend on the BSP +# library, or vice versa +ALT_BSP_DEP_LIBRARY_NAMES := + +# List of dependencies for the linker. This is usually the full pathname +# of each library (*.a) file. +# Includes the BSP. +ALT_LDDEPS := + +# List of root library directories that support running make to build them. +# Includes the BSP and any ALT libraries. +MAKEABLE_LIBRARY_ROOT_DIRS := + +# Generic flags passed to the compiler for different types of input files. +ALT_CFLAGS := +ALT_CXXFLAGS := +ALT_CPPFLAGS := +ALT_ASFLAGS := +ALT_LDFLAGS := + + +#------------------------------------------------------------------------------ +# The adjust-path macro +# +# If COMSPEC/ComSpec is defined, Make is launched from Windows through +# Cygwin. The adjust-path macro converts absolute windows paths into +# unix style paths (Example: c:/dir -> /c/dir). This will ensture +# paths are readable by GNU Make. +# +# If COMSPEC/ComSpec is not defined, Make is launched from linux, and no +# adjustment is necessary +# +#------------------------------------------------------------------------------ + +ifndef COMSPEC +ifdef ComSpec +COMSPEC = $(ComSpec) +endif # ComSpec +endif # COMSPEC + +ifdef COMSPEC # if Windows OS + +ifeq ($(MAKE_VERSION),3.81) +# +# adjust-path/adjust-path-mixed for Mingw Gnu Make on Windows +# +# Example Usage: +# $(call adjust-path,c:/aaa/bbb) => /c/aaa/bbb +# $(call adjust-path-mixed,/c/aaa/bbb) => c:/aaa/bbb +# $(call adjust-path-mixed,/cygdrive/c/aaa/bbb) => c:/aaa/bbb +# + +# +# adjust-path +# - converts back slash characters into forward slashes +# - if input arg ($1) is an empty string then return the empty string +# - if input arg ($1) does not contain the string ":/", then return input arg +# - using sed, convert mixed path [c:/...] into mingw path [/c/...] +define adjust-path +$(strip \ +$(if $1,\ +$(if $(findstring :/,$(subst \,/,$1)),\ +$(shell echo $(subst \,/,$1) | sed -e 's,^\([a-zA-Z]\):/,/\1/,'),\ +$(subst \,/,$1)))) +endef + +# +# adjust-path-mixed +# - converts back slash characters into forward slashes +# - if input arg ($1) is an empty string then return the empty string +# - if input arg ($1) does not begin with a forward slash '/' char, then +# return input arg +# - using sed, convert mingw path [/c/...] or cygwin path [/c/cygdrive/...] +# into a mixed path [c:/...] +define adjust-path-mixed +$(strip \ +$(if $1,\ +$(if $(findstring $(subst \,/,$1),$(patsubst /%,%,$(subst \,/,$1))),\ +$(subst \,/,$1),\ +$(shell echo $(subst \,/,$1) | sed -e 's,^/cygdrive/\([a-zA-Z]\)/,\1:/,' -e 's,^/\([a-zA-Z]\)/,\1:/,')))) +endef + +else # MAKE_VERSION != 3.81 (MAKE_VERSION == 3.80 or MAKE_VERSION == 3.79) +# +# adjust-path for Cygwin Gnu Make +# $(call adjust-path,c:/aaa/bbb) = /cygdrive/c/aaa/bbb +# $(call adjust-path-mixed,/cygdrive/c/aaa/bbb) = c:/aaa/bbb +# +adjust-path = $(if $1,$(shell cygpath -u "$1"),) +adjust-path-mixed = $(if $1,$(shell cygpath -m "$1"),) +endif + +else # !COMSPEC + +adjust-path = $1 +adjust-path-mixed = $1 + +endif # COMSPEC + + +#vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv +# GENERATED SETTINGS START v +#vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv + +#START GENERATED +ACTIVE_BUILD_CONFIG := default +BUILD_CONFIGS := default + +# The following TYPE comment allows tools to identify the 'type' of target this +# makefile is associated with. +# TYPE: APP_MAKEFILE + +# This following VERSION comment indicates the version of the tool used to +# generate this makefile. A makefile variable is provided for VERSION as well. +# ACDS_VERSION: 13.0sp1 +ACDS_VERSION := 13.0sp1 + +# This following BUILD_NUMBER comment indicates the build number of the tool +# used to generate this makefile. +# BUILD_NUMBER: 232 + +# Define path to the application ELF. +# It may be used by the makefile fragments so is defined before including them. +# +ELF := qsys_tutorial_lcd2.elf + +# Paths to C, C++, and assembly source files. +C_SRCS += hello_world_small.c +C_SRCS += hex_encoder.c +C_SRCS += hex_out.c +C_SRCS += input_int.c +C_SRCS += inst_decoder.c +C_SRCS += sys_memory.c +C_SRCS += sys_register.c +C_SRCS += system.c +CXX_SRCS := +ASM_SRCS := + + +# Path to root of object file tree. +OBJ_ROOT_DIR := obj + +# Options to control objdump. +CREATE_OBJDUMP := 1 +OBJDUMP_INCLUDE_SOURCE := 1 +OBJDUMP_FULL_CONTENTS := 0 + +# Options to enable/disable optional files. +CREATE_ELF_DERIVED_FILES := 0 +CREATE_LINKER_MAP := 1 + +# Common arguments for ALT_CFLAGSs +APP_CFLAGS_DEFINED_SYMBOLS := +APP_CFLAGS_UNDEFINED_SYMBOLS := +APP_CFLAGS_OPTIMIZATION := -Os +APP_CFLAGS_DEBUG_LEVEL := -g +APP_CFLAGS_WARNINGS := -Wall +APP_CFLAGS_USER_FLAGS := + +APP_ASFLAGS_USER := +APP_LDFLAGS_USER := + +# Linker options that have default values assigned later if not +# assigned here. +LINKER_SCRIPT := +CRT0 := +SYS_LIB := + +# Define path to the root of the BSP. +BSP_ROOT_DIR := ../qsys_tutorial_lcd2_bsp/ + +# List of application specific include directories, library directories and library names +APP_INCLUDE_DIRS := +APP_LIBRARY_DIRS := +APP_LIBRARY_NAMES := + +# Pre- and post- processor settings. +BUILD_PRE_PROCESS := +BUILD_POST_PROCESS := + +QUARTUS_PROJECT_DIR := ../../ + + +#END GENERATED + +#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +# GENERATED SETTINGS END ^ +#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + +#------------------------------------------------------------------------------ +# DEFAULT TARGET +#------------------------------------------------------------------------------ + +# Define the variable used to echo output if not already defined. +ifeq ($(ECHO),) +ECHO := echo +endif + +# Put "all" rule before included makefile fragments because they may +# define rules and we don't want one of those to become the default rule. +.PHONY : all + +all: + @$(ECHO) [$(APP_NAME) build complete] + +all : build_pre_process libs app build_post_process + + +#------------------------------------------------------------------------------ +# VARIABLES DEPENDENT ON GENERATED CONTENT +#------------------------------------------------------------------------------ + +# Define object file directory per build configuration +CONFIG_OBJ_DIR := $(OBJ_ROOT_DIR)/$(ACTIVE_BUILD_CONFIG) + +ifeq ($(BSP_ROOT_DIR),) +$(error Edit Makefile and provide a value for BSP_ROOT_DIR) +endif + +ifeq ($(wildcard $(BSP_ROOT_DIR)),) +$(error BSP directory does not exist: $(BSP_ROOT_DIR)) +endif + +# Define absolute path to the root of the BSP. +ABS_BSP_ROOT_DIR := $(call adjust-path-mixed,$(shell cd "$(BSP_ROOT_DIR)"; pwd)) + +# Include makefile fragments. Define variable ALT_LIBRARY_ROOT_DIR before +# including each makefile fragment so that it knows the path to itself. +BSP_INCLUDE_FILE := $(BSP_ROOT_DIR)/public.mk +ALT_LIBRARY_ROOT_DIR := $(BSP_ROOT_DIR) +include $(BSP_INCLUDE_FILE) +# C2H will need this to touch the BSP public.mk and avoid the sopc file +# out-of-date error during a BSP make +ABS_BSP_INCLUDE_FILE := $(ABS_BSP_ROOT_DIR)/public.mk + + +ifneq ($(WARNING.SMALL_STACK_SIZE),) +# This WARNING is here to protect you from unknowingly using a very small stack +# If the warning is set, increase your stack size or enable the BSP small stack +# setting to eliminate the warning +$(warning WARNING: $(WARNING.SMALL_STACK_SIZE)) +endif + + +# If the BSP public.mk indicates that ALT_SIM_OPTIMIZE is set, rename the ELF +# by prefixing it with RUN_ON_HDL_SIMULATOR_ONLY_. +ifneq ($(filter -DALT_SIM_OPTIMIZE,$(ALT_CPPFLAGS)),) +ELF := RUN_ON_HDL_SIMULATOR_ONLY_$(ELF) +endif + +# If the BSP public.mk indicates that ALT_PROVIDE_GMON is set, add option to +# download_elf target +ifneq ($(filter -DALT_PROVIDE_GMON,$(ALT_CPPFLAGS)),) +GMON_OUT_FILENAME := gmon.out +WRITE_GMON_OPTION := --write-gmon $(GMON_OUT_FILENAME) +endif + +# Name of ELF application. +APP_NAME := $(basename $(ELF)) + +# Set to defaults if variables not already defined in settings. +ifeq ($(LINKER_SCRIPT),) +LINKER_SCRIPT := $(BSP_LINKER_SCRIPT) +endif +ifeq ($(CRT0),) +CRT0 := $(BSP_CRT0) +endif +ifeq ($(SYS_LIB),) +SYS_LIB := $(BSP_SYS_LIB) +endif + +OBJDUMP_NAME := $(APP_NAME).objdump +OBJDUMP_FLAGS := --disassemble --syms --all-header +ifeq ($(OBJDUMP_INCLUDE_SOURCE),1) +OBJDUMP_FLAGS += --source +endif +ifeq ($(OBJDUMP_FULL_CONTENTS),1) +OBJDUMP_FLAGS += --full-contents +endif + +# Create list of linker dependencies (*.a files). +APP_LDDEPS := $(ALT_LDDEPS) $(LDDEPS) + +# Take lists and add required prefixes. +APP_INC_DIRS := $(addprefix -I, $(ALT_INCLUDE_DIRS) $(APP_INCLUDE_DIRS) $(INC_DIRS)) +ASM_INC_PREFIX := -Wa,-I +APP_ASM_INC_DIRS := $(addprefix $(ASM_INC_PREFIX), $(ALT_INCLUDE_DIRS) $(APP_INCLUDE_DIRS) $(INC_DIRS)) +APP_LIB_DIRS := $(addprefix -L, $(ALT_LIBRARY_DIRS) $(APP_LIBRARY_DIRS) $(LIB_DIRS)) +APP_LIBS := $(addprefix -l, $(ALT_LIBRARY_NAMES) $(APP_LIBRARY_NAMES) $(LIBS)) + +ifneq ($(AVOID_NIOS2_GCC3_OPTIONS),) + +# +# Avoid Nios II GCC 3.X options. +# + +# Detect if small newlib C library is requested. +# If yes, remove the -msmallc option because it is +# now handled by other means. +ifneq ($(filter -msmallc,$(ALT_LDFLAGS)),) + ALT_LDFLAGS := $(filter-out -msmallc,$(ALT_LDFLAGS)) + ALT_C_LIBRARY := smallc +else + ALT_C_LIBRARY := c +endif + +# Put each BSP dependent library in a group to avoid circular dependencies. +APP_BSP_DEP_LIBS := $(foreach l,$(ALT_BSP_DEP_LIBRARY_NAMES),-Wl,--start-group -l$(ALT_C_LIBRARY) -lgcc -l$(l) -Wl,--end-group) + +else # !AVOID_NIOS2_GCC3_OPTIONS + +# +# Use Nios II GCC 3.X options. +# +APP_BSP_DEP_LIBS := $(addprefix -msys-lib=, $(ALT_BSP_DEP_LIBRARY_NAMES)) + +endif # !AVOID_NIOS2_GCC3_OPTIONS + +# Arguments for the C preprocessor, C/C++ compiler, assembler, and linker. +APP_CFLAGS := $(APP_CFLAGS_DEFINED_SYMBOLS) \ + $(APP_CFLAGS_UNDEFINED_SYMBOLS) \ + $(APP_CFLAGS_OPTIMIZATION) \ + $(APP_CFLAGS_DEBUG_LEVEL) \ + $(APP_CFLAGS_WARNINGS) \ + $(APP_CFLAGS_USER_FLAGS) \ + $(ALT_CFLAGS) \ + $(CFLAGS) + +# Arguments only for the C++ compiler. +APP_CXXFLAGS := $(ALT_CXXFLAGS) $(CXXFLAGS) + +# Arguments only for the C preprocessor. +# Prefix each include directory with -I. +APP_CPPFLAGS := $(APP_INC_DIRS) \ + $(ALT_CPPFLAGS) \ + $(CPPFLAGS) + +# Arguments only for the assembler. +APP_ASFLAGS := $(APP_ASM_INC_DIRS) \ + $(ALT_ASFLAGS) \ + $(APP_ASFLAGS_USER) \ + $(ASFLAGS) + +# Arguments only for the linker. +APP_LDFLAGS := $(APP_LDFLAGS_USER) + +ifneq ($(LINKER_SCRIPT),) +APP_LDFLAGS += -T'$(LINKER_SCRIPT)' +endif + +ifneq ($(AVOID_NIOS2_GCC3_OPTIONS),) + +# Avoid Nios II GCC 3.x options. +ifneq ($(CRT0),) +APP_LDFLAGS += $(CRT0) +endif + +# The equivalent of the -msys-lib option is provided +# by the GROUP() command in the linker script. +# Note this means the SYS_LIB variable is now ignored. + +else # !AVOID_NIOS2_GCC3_OPTIONS + +# Use Nios II GCC 3.x options. +ifneq ($(CRT0),) +APP_LDFLAGS += -msys-crt0='$(CRT0)' +endif +ifneq ($(SYS_LIB),) +APP_LDFLAGS += -msys-lib=$(SYS_LIB) +endif + +endif # !AVOID_NIOS2_GCC3_OPTIONS + +APP_LDFLAGS += \ + $(APP_LIB_DIRS) \ + $(ALT_LDFLAGS) \ + $(LDFLAGS) + +LINKER_MAP_NAME := $(APP_NAME).map +ifeq ($(CREATE_LINKER_MAP), 1) +APP_LDFLAGS += -Wl,-Map=$(LINKER_MAP_NAME) +endif + +# QUARTUS_PROJECT_DIR and SOPC_NAME need to be defined if you want the +# mem_init_install target of the mem_init.mk (located in the associated BSP) +# to know how to copy memory initialization files (e.g. .dat, .hex) into +# directories required for Quartus compilation or RTL simulation. + +# Defining QUARTUS_PROJECT_DIR causes mem_init_install to copy memory +# initialization files into your Quartus project directory. This is required +# to provide the initial memory contents of FPGA memories that can be +# initialized by the programming file (.sof) or Hardcopy ROMs. It is also used +# for VHDL simulation of on-chip memories. + +# Defining SOPC_NAME causes the mem_init_install target to copy memory +# initialization files into your RTL simulation directory. This is required +# to provide the initial memory contents of all memories that can be +# initialized by RTL simulation. This variable should be set to the same name +# as your SOPC Builder system name. For example, if you have a system called +# "foo.sopc", this variable should be set to "foo". + +# If SOPC_NAME is not set and QUARTUS_PROJECT_DIR is set, then derive SOPC_NAME. +ifeq ($(SOPC_NAME),) +ifneq ($(QUARTUS_PROJECT_DIR),) +SOPC_NAME := $(basename $(notdir $(wildcard $(QUARTUS_PROJECT_DIR)/*.sopcinfo))) +endif +endif + +# Defining JDI_FILE is required to specify the JTAG Debug Information File +# path. This file is generated by Quartus, and is needed along with the +# .sopcinfo file to resolve processor instance ID's from names in a multi-CPU +# systems. For multi-CPU systems, the processor instance ID is used to select +# from multiple CPU's during ELF download. + +# Both JDI_FILE and SOPCINFO_FILE are provided by the BSP if they found during +# BSP creation. If JDI_FILE is not set and QUARTUS_PROJECT_DIR is set, then +# derive JDI_FILE. We do not attempt to derive SOPCINFO_FILE since there may be +# multiple .sopcinfo files in a Quartus project. +ifeq ($(JDI_FILE),) +ifneq ($(QUARTUS_PROJECT_DIR),) +JDI_FILE := $(wildcard $(QUARTUS_PROJECT_DIR)/*.jdi) +endif +endif + +# Path to root runtime directory used for hdl simulation +RUNTIME_ROOT_DIR := $(CONFIG_OBJ_DIR)/runtime + + + +#------------------------------------------------------------------------------ +# MAKEFILE INCLUDES DEPENDENT ON GENERATED CONTENT +#------------------------------------------------------------------------------ +# mem_init.mk is a generated makefile fragment. This file defines all targets +# used to generate HDL initialization simulation files and pre-initialized +# onchip memory files. +MEM_INIT_FILE := $(BSP_ROOT_DIR)/mem_init.mk +include $(MEM_INIT_FILE) + +# Create list of object files to be built using the list of source files. +# The source file hierarchy is preserved in the object tree. +# The supported file extensions are: +# +# .c - for C files +# .cxx .cc .cpp - for C++ files +# .S .s - for assembler files +# +# Handle source files specified by --src-dir & --src-rdir differently, to +# save some processing time in calling the adjust-path macro. + +OBJ_LIST_C := $(patsubst %.c,%.o,$(filter %.c,$(C_SRCS))) +OBJ_LIST_CPP := $(patsubst %.cpp,%.o,$(filter %.cpp,$(CXX_SRCS))) +OBJ_LIST_CXX := $(patsubst %.cxx,%.o,$(filter %.cxx,$(CXX_SRCS))) +OBJ_LIST_CC := $(patsubst %.cc,%.o,$(filter %.cc,$(CXX_SRCS))) +OBJ_LIST_S := $(patsubst %.S,%.o,$(filter %.S,$(ASM_SRCS))) +OBJ_LIST_SS := $(patsubst %.s,%.o,$(filter %.s,$(ASM_SRCS))) + +OBJ_LIST := $(sort $(OBJ_LIST_C) $(OBJ_LIST_CPP) $(OBJ_LIST_CXX) \ + $(OBJ_LIST_CC) $(OBJ_LIST_S) $(OBJ_LIST_SS)) + +SDIR_OBJ_LIST_C := $(patsubst %.c,%.o,$(filter %.c,$(SDIR_C_SRCS))) +SDIR_OBJ_LIST_CPP := $(patsubst %.cpp,%.o,$(filter %.cpp,$(SDIR_CXX_SRCS))) +SDIR_OBJ_LIST_CXX := $(patsubst %.cxx,%.o,$(filter %.cxx,$(SDIR_CXX_SRCS))) +SDIR_OBJ_LIST_CC := $(patsubst %.cc,%.o,$(filter %.cc,$(SDIR_CXX_SRCS))) +SDIR_OBJ_LIST_S := $(patsubst %.S,%.o,$(filter %.S,$(SDIR_ASM_SRCS))) +SDIR_OBJ_LIST_SS := $(patsubst %.s,%.o,$(filter %.s,$(SDIR_ASM_SRCS))) + +SDIR_OBJ_LIST := $(sort $(SDIR_OBJ_LIST_C) $(SDIR_OBJ_LIST_CPP) \ + $(SDIR_OBJ_LIST_CXX) $(SDIR_OBJ_LIST_CC) $(SDIR_OBJ_LIST_S) \ + $(SDIR_OBJ_LIST_SS)) + +# Relative-pathed objects that being with "../" are handled differently. +# +# Regular objects are created as +# $(CONFIG_OBJ_DIR)//.o +# where the path structure is maintained under the obj directory. This +# applies for both absolute and relative paths; in the absolute path +# case this means the entire source path will be recreated under the obj +# directory. This is done to allow two source files with the same name +# to be included as part of the project. +# +# Note: On Cygwin, the path recreated under the obj directory will be +# the cygpath -u output path. +# +# Relative-path objects that begin with "../" cause problems under this +# scheme, as $(CONFIG_OBJ_DIR)/..// can potentially put the object +# files anywhere in the system, creating clutter and polluting the source tree. +# As such, their paths are flattened - the object file created will be +# $(CONFIG_OBJ_DIR)/.o. Due to this, two files specified with +# "../" in the beginning cannot have the same name in the project. VPATH +# will be set for these sources to allow make to relocate the source file +# via %.o rules. +# +# The following lines separate the object list into the flatten and regular +# lists, and then handles them as appropriate. + +FLATTEN_OBJ_LIST := $(filter ../%,$(OBJ_LIST)) +FLATTEN_APP_OBJS := $(addprefix $(CONFIG_OBJ_DIR)/,$(notdir $(FLATTEN_OBJ_LIST))) + +REGULAR_OBJ_LIST := $(filter-out $(FLATTEN_OBJ_LIST),$(OBJ_LIST)) +REGULAR_OBJ_LIST_C := $(filter $(OBJ_LIST_C),$(REGULAR_OBJ_LIST)) +REGULAR_OBJ_LIST_CPP := $(filter $(OBJ_LIST_CPP),$(REGULAR_OBJ_LIST)) +REGULAR_OBJ_LIST_CXX := $(filter $(OBJ_LIST_CXX),$(REGULAR_OBJ_LIST)) +REGULAR_OBJ_LIST_CC := $(filter $(OBJ_LIST_CC),$(REGULAR_OBJ_LIST)) +REGULAR_OBJ_LIST_S := $(filter $(OBJ_LIST_S),$(REGULAR_OBJ_LIST)) +REGULAR_OBJ_LIST_SS := $(filter $(OBJ_LIST_SS),$(REGULAR_OBJ_LIST)) + +FLATTEN_SDIR_OBJ_LIST := $(filter ../%,$(SDIR_OBJ_LIST)) +FLATTEN_SDIR_APP_OBJS := $(addprefix $(CONFIG_OBJ_DIR)/,$(notdir $(FLATTEN_SDIR_OBJ_LIST))) + +REGULAR_SDIR_OBJ_LIST := $(filter-out $(FLATTEN_SDIR_OBJ_LIST),$(SDIR_OBJ_LIST)) +REGULAR_SDIR_OBJ_LIST_C := $(filter $(SDIR_OBJ_LIST_C),$(REGULAR_SDIR_OBJ_LIST)) +REGULAR_SDIR_OBJ_LIST_CPP := $(filter $(SDIR_OBJ_LIST_CPP),$(REGULAR_SDIR_OBJ_LIST)) +REGULAR_SDIR_OBJ_LIST_CXX := $(filter $(SDIR_OBJ_LIST_CXX),$(REGULAR_SDIR_OBJ_LIST)) +REGULAR_SDIR_OBJ_LIST_CC := $(filter $(SDIR_OBJ_LIST_CC),$(REGULAR_SDIR_OBJ_LIST)) +REGULAR_SDIR_OBJ_LIST_S := $(filter $(SDIR_OBJ_LIST_S),$(REGULAR_SDIR_OBJ_LIST)) +REGULAR_SDIR_OBJ_LIST_SS := $(filter $(SDIR_OBJ_LIST_SS),$(REGULAR_SDIR_OBJ_LIST)) + +VPATH := $(sort $(dir $(FLATTEN_OBJ_LIST)) $(dir $(FLATTEN_SDIR_OBJ_LIST))) + +APP_OBJS_C := $(addprefix $(CONFIG_OBJ_DIR)/,\ + $(REGULAR_SDIR_OBJ_LIST_C) \ + $(foreach s,$(REGULAR_OBJ_LIST_C),$(call adjust-path,$s))) + +APP_OBJS_CPP := $(addprefix $(CONFIG_OBJ_DIR)/,\ + $(REGULAR_SDIR_OBJ_LIST_CPP) \ + $(foreach s,$(REGULAR_OBJ_LIST_CPP),$(call adjust-path,$s))) + +APP_OBJS_CXX := $(addprefix $(CONFIG_OBJ_DIR)/,\ + $(REGULAR_SDIR_OBJ_LIST_CXX) \ + $(foreach s,$(REGULAR_OBJ_LIST_CXX),$(call adjust-path,$s))) + +APP_OBJS_CC := $(addprefix $(CONFIG_OBJ_DIR)/,\ + $(REGULAR_SDIR_OBJ_LIST_CC) \ + $(foreach s,$(REGULAR_OBJ_LIST_CC),$(call adjust-path,$s))) + +APP_OBJS_S := $(addprefix $(CONFIG_OBJ_DIR)/,\ + $(REGULAR_SDIR_OBJ_LIST_S) \ + $(foreach s,$(REGULAR_OBJ_LIST_S),$(call adjust-path,$s))) + +APP_OBJS_SS := $(addprefix $(CONFIG_OBJ_DIR)/,\ + $(REGULAR_SDIR_OBJ_LIST_SS) \ + $(foreach s,$(REGULAR_OBJ_LIST_SS),$(call adjust-path,$s))) + +APP_OBJS := $(APP_OBJS_C) $(APP_OBJS_CPP) $(APP_OBJS_CXX) $(APP_OBJS_CC) \ + $(APP_OBJS_S) $(APP_OBJS_SS) \ + $(FLATTEN_APP_OBJS) $(FLATTEN_SDIR_APP_OBJS) + +# Add any extra user-provided object files. +APP_OBJS += $(OBJS) + +# Create list of dependancy files for each object file. +APP_DEPS := $(APP_OBJS:.o=.d) + +# Patch the Elf file with system specific information + +# Patch the Elf with the name of the sopc system +ifneq ($(SOPC_NAME),) +ELF_PATCH_FLAG += --sopc_system_name $(SOPC_NAME) +endif + +# Patch the Elf with the absolute path to the Quartus Project Directory +ifneq ($(QUARTUS_PROJECT_DIR),) +ABS_QUARTUS_PROJECT_DIR := $(call adjust-path-mixed,$(shell cd "$(QUARTUS_PROJECT_DIR)"; pwd)) +ELF_PATCH_FLAG += --quartus_project_dir "$(ABS_QUARTUS_PROJECT_DIR)" +endif + +# Patch the Elf and download args with the JDI_FILE if specified +ifneq ($(wildcard $(JDI_FILE)),) +ELF_PATCH_FLAG += --jdi $(JDI_FILE) +DOWNLOAD_JDI_FLAG := --jdi $(JDI_FILE) +endif + +# Patch the Elf with the SOPCINFO_FILE if specified +ifneq ($(wildcard $(SOPCINFO_FILE)),) +ELF_PATCH_FLAG += --sopcinfo $(SOPCINFO_FILE) +endif + +# Use the DOWNLOAD_CABLE variable to specify which JTAG cable to use. +# This is not needed if you only have one cable. +ifneq ($(DOWNLOAD_CABLE),) +DOWNLOAD_CABLE_FLAG := --cable '$(DOWNLOAD_CABLE)' +endif + + +#------------------------------------------------------------------------------ +# BUILD PRE/POST PROCESS +#------------------------------------------------------------------------------ +build_pre_process : + $(BUILD_PRE_PROCESS) + +build_post_process : + $(BUILD_POST_PROCESS) + +.PHONY: build_pre_process build_post_process + + +#------------------------------------------------------------------------------ +# TOOLS +#------------------------------------------------------------------------------ + +# +# Set tool default variables if not already defined. +# If these are defined, they would typically be defined in an +# included makefile fragment. +# +ifeq ($(DEFAULT_CROSS_COMPILE),) +DEFAULT_CROSS_COMPILE := nios2-elf- +endif + +ifeq ($(DEFAULT_STACK_REPORT),) +DEFAULT_STACKREPORT := nios2-stackreport +endif + +ifeq ($(DEFAULT_DOWNLOAD),) +DEFAULT_DOWNLOAD := nios2-download +endif + +ifeq ($(DEFAULT_FLASHPROG),) +DEFAULT_FLASHPROG := nios2-flash-programmer +endif + +ifeq ($(DEFAULT_ELFPATCH),) +DEFAULT_ELFPATCH := nios2-elf-insert +endif + +ifeq ($(DEFAULT_RM),) +DEFAULT_RM := rm -f +endif + +ifeq ($(DEFAULT_CP),) +DEFAULT_CP := cp -f +endif + +ifeq ($(DEFAULT_MKDIR),) +DEFAULT_MKDIR := mkdir -p +endif + +# +# Set tool variables to defaults if not already defined. +# If these are defined, they would typically be defined by a +# setting in the generated portion of this makefile. +# +ifeq ($(CROSS_COMPILE),) +CROSS_COMPILE := $(DEFAULT_CROSS_COMPILE) +endif + +ifeq ($(origin CC),default) +CC := $(CROSS_COMPILE)gcc -xc +endif + +ifeq ($(origin CXX),default) +CXX := $(CROSS_COMPILE)gcc -xc++ +endif + +ifeq ($(origin AS),default) +AS := $(CROSS_COMPILE)gcc +endif + +ifeq ($(origin AR),default) +AR := $(CROSS_COMPILE)ar +endif + +ifeq ($(origin LD),default) +LD := $(CROSS_COMPILE)g++ +endif + +ifeq ($(origin NM),default) +NM := $(CROSS_COMPILE)nm +endif + +ifeq ($(origin RM),default) +RM := $(DEFAULT_RM) +endif + +ifeq ($(origin CP),default) +CP := $(DEFAULT_CP) +endif + +ifeq ($(OBJDUMP),) +OBJDUMP := $(CROSS_COMPILE)objdump +endif + +ifeq ($(OBJCOPY),) +OBJCOPY := $(CROSS_COMPILE)objcopy +endif + +ifeq ($(STACKREPORT),) +ifeq ($(CROSS_COMPILE),nios2-elf-) +STACKREPORT := $(DEFAULT_STACKREPORT) +else +DISABLE_STACKREPORT := 1 +endif +endif + +ifeq ($(DOWNLOAD),) +DOWNLOAD := $(DEFAULT_DOWNLOAD) +endif + +ifeq ($(FLASHPROG),) +FLASHPROG := $(DEFAULT_FLASHPROG) +endif + +ifeq ($(ELFPATCH),) +ELFPATCH := $(DEFAULT_ELFPATCH) +endif + +ifeq ($(MKDIR),) +MKDIR := $(DEFAULT_MKDIR) +endif + +#------------------------------------------------------------------------------ +# PATTERN RULES TO BUILD OBJECTS +#------------------------------------------------------------------------------ + +define compile.c +@$(ECHO) Info: Compiling $< to $@ +@$(MKDIR) $(@D) +$(CC) -MP -MMD -c $(APP_CPPFLAGS) $(APP_CFLAGS) -o $@ $< +$(CC_POST_PROCESS) +endef + +define compile.cpp +@$(ECHO) Info: Compiling $< to $@ +@$(MKDIR) $(@D) +$(CXX) -MP -MMD -c $(APP_CPPFLAGS) $(APP_CXXFLAGS) $(APP_CFLAGS) -o $@ $< +$(CXX_POST_PROCESS) +endef + +# If assembling with the compiler, ensure "-Wa," is prepended to all APP_ASFLAGS +ifeq ($(AS),$(patsubst %as,%,$(AS))) +COMMA := , +APP_ASFLAGS := $(filter-out $(APP_CFLAGS),$(addprefix -Wa$(COMMA),$(patsubst -Wa$(COMMA)%,%,$(APP_ASFLAGS)))) +endif + +define compile.s +@$(ECHO) Info: Assembling $< to $@ +@$(MKDIR) $(@D) +$(AS) -MP -MMD -c $(APP_CPPFLAGS) $(APP_CFLAGS) $(APP_ASFLAGS) -o $@ $< +$(AS_POST_PROCESS) +endef + +ifeq ($(MAKE_VERSION),3.81) +.SECONDEXPANSION: + +$(APP_OBJS_C): $(CONFIG_OBJ_DIR)/%.o: $$(call adjust-path-mixed,%.c) + $(compile.c) + +$(APP_OBJS_CPP): $(CONFIG_OBJ_DIR)/%.o: $$(call adjust-path-mixed,%.cpp) + $(compile.cpp) + +$(APP_OBJS_CC): $(CONFIG_OBJ_DIR)/%.o: $$(call adjust-path-mixed,%.cc) + $(compile.cpp) + +$(APP_OBJS_CXX): $(CONFIG_OBJ_DIR)/%.o: $$(call adjust-path-mixed,%.cxx) + $(compile.cpp) + +$(APP_OBJS_S): $(CONFIG_OBJ_DIR)/%.o: $$(call adjust-path-mixed,%.S) + $(compile.s) + +$(APP_OBJS_SS): $(CONFIG_OBJ_DIR)/%.o: $$(call adjust-path-mixed,%.s) + $(compile.s) + +endif # MAKE_VERSION != 3.81 + +$(CONFIG_OBJ_DIR)/%.o: %.c + $(compile.c) + +$(CONFIG_OBJ_DIR)/%.o: %.cpp + $(compile.cpp) + +$(CONFIG_OBJ_DIR)/%.o: %.cc + $(compile.cpp) + +$(CONFIG_OBJ_DIR)/%.o: %.cxx + $(compile.cpp) + +$(CONFIG_OBJ_DIR)/%.o: %.S + $(compile.s) + +$(CONFIG_OBJ_DIR)/%.o: %.s + $(compile.s) + + +#------------------------------------------------------------------------------ +# PATTERN RULES TO INTERMEDIATE FILES +#------------------------------------------------------------------------------ + +$(CONFIG_OBJ_DIR)/%.s: %.c + @$(ECHO) Info: Compiling $< to $@ + @$(MKDIR) $(@D) + $(CC) -S $(APP_CPPFLAGS) $(APP_CFLAGS) -o $@ $< + +$(CONFIG_OBJ_DIR)/%.s: %.cpp + @$(ECHO) Info: Compiling $< to $@ + @$(MKDIR) $(@D) + $(CXX) -S $(APP_CPPFLAGS) $(APP_CXXFLAGS) $(APP_CFLAGS) -o $@ $< + +$(CONFIG_OBJ_DIR)/%.s: %.cc + @$(ECHO) Info: Compiling $< to $@ + @$(MKDIR) $(@D) + $(CXX) -S $(APP_CPPFLAGS) $(APP_CXXFLAGS) $(APP_CFLAGS) -o $@ $< + +$(CONFIG_OBJ_DIR)/%.s: %.cxx + @$(ECHO) Info: Compiling $< to $@ + @$(MKDIR) $(@D) + $(CXX) -S $(APP_CPPFLAGS) $(APP_CXXFLAGS) $(APP_CFLAGS) -o $@ $< + +$(CONFIG_OBJ_DIR)/%.i: %.c + @$(ECHO) Info: Compiling $< to $@ + @$(MKDIR) $(@D) + $(CC) -E $(APP_CPPFLAGS) $(APP_CFLAGS) -o $@ $< + +$(CONFIG_OBJ_DIR)/%.i: %.cpp + @$(ECHO) Info: Compiling $< to $@ + @$(MKDIR) $(@D) + $(CXX) -E $(APP_CPPFLAGS) $(APP_CXXFLAGS) $(APP_CFLAGS) -o $@ $< + +$(CONFIG_OBJ_DIR)/%.i: %.cc + @$(ECHO) Info: Compiling $< to $@ + @$(MKDIR) $(@D) + $(CXX) -E $(APP_CPPFLAGS) $(APP_CXXFLAGS) $(APP_CFLAGS) -o $@ $< + +$(CONFIG_OBJ_DIR)/%.i: %.cxx + @$(ECHO) Info: Compiling $< to $@ + @$(MKDIR) $(@D) + $(CXX) -E $(APP_CPPFLAGS) $(APP_CXXFLAGS) $(APP_CFLAGS) -o $@ $< + + +#------------------------------------------------------------------------------ +# TARGET RULES +#------------------------------------------------------------------------------ + +.PHONY : help +help : + @$(ECHO) "Summary of Makefile targets" + @$(ECHO) " Build targets:" + @$(ECHO) " all (default) - Application and all libraries (including BSP)" + @$(ECHO) " bsp - Just the BSP" + @$(ECHO) " libs - All libraries (including BSP)" + @$(ECHO) " flash - All flash files" + @$(ECHO) " mem_init_generate - All memory initialization files" +ifeq ($(QSYS),1) + @$(ECHO) " mem_init_install - This target is deprecated for QSys Systems" + @$(ECHO) " --> Use the mem_init_generate target and then" + @$(ECHO) " add the generated meminit.qip file to your" + @$(ECHO) " Quartus II Project." +else # if QSYS != 1 + @$(ECHO) " mem_init_install - Copy memory initialization files to Quartus II project" +endif # QSYS == 1 + @$(ECHO) + @$(ECHO) " Clean targets:" + @$(ECHO) " clean_all - Application and all libraries (including BSP)" + @$(ECHO) " clean - Just the application" + @$(ECHO) " clean_bsp - Just the BSP" + @$(ECHO) " clean_libs - All libraries (including BSP)" + @$(ECHO) + @$(ECHO) " Run targets:" + @$(ECHO) " download-elf - Download and run your elf executable" + @$(ECHO) " program-flash - Program flash contents to the board" + +# Handy rule to skip making libraries and just make application. +.PHONY : app +app : $(ELF) + +ifeq ($(CREATE_OBJDUMP), 1) +app : $(OBJDUMP_NAME) +endif + +ifeq ($(CREATE_ELF_DERIVED_FILES),1) +app : elf_derived_files +endif + +.PHONY: elf_derived_files +elf_derived_files: default_mem_init + +# Handy rule for making just the BSP. +.PHONY : bsp +bsp : + @$(ECHO) Info: Building $(BSP_ROOT_DIR) + @$(MAKE) --no-print-directory -C $(BSP_ROOT_DIR) + + +# Make sure all makeable libraries (including the BSP) are up-to-date. +LIB_TARGETS := $(patsubst %,%-recurs-make-lib,$(MAKEABLE_LIBRARY_ROOT_DIRS)) + +.PHONY : libs +libs : $(LIB_TARGETS) + +ifneq ($(strip $(LIB_TARGETS)),) +$(LIB_TARGETS): %-recurs-make-lib: + @$(ECHO) Info: Building $* + $(MAKE) --no-print-directory -C $* +endif + +ifneq ($(strip $(APP_LDDEPS)),) +$(APP_LDDEPS): libs + @true +endif + +# Rules to force your project to rebuild or relink +# .force_relink file will cause any application that depends on this project to relink +# .force_rebuild file will cause this project to rebuild object files +# .force_rebuild_all file will cause this project and any project that depends on this project to rebuild object files + +FORCE_RELINK_DEP := .force_relink +FORCE_REBUILD_DEP := .force_rebuild +FORCE_REBUILD_ALL_DEP := .force_rebuild_all +FORCE_REBUILD_DEP_LIST := $(CONFIG_OBJ_DIR)/$(FORCE_RELINK_DEP) $(CONFIG_OBJ_DIR)/$(FORCE_REBUILD_DEP) $(FORCE_REBUILD_ALL_DEP) + +$(FORCE_REBUILD_DEP_LIST): + +$(APP_OBJS): $(wildcard $(CONFIG_OBJ_DIR)/$(FORCE_REBUILD_DEP)) $(wildcard $(addsuffix /$(FORCE_REBUILD_ALL_DEP), . $(ALT_LIBRARY_DIRS))) + +$(ELF): $(wildcard $(addsuffix /$(FORCE_RELINK_DEP), $(CONFIG_OBJ_DIR) $(ALT_LIBRARY_DIRS))) + + +# Clean just the application. +.PHONY : clean +ifeq ($(CREATE_ELF_DERIVED_FILES),1) +clean : clean_elf_derived_files +endif + +clean : + @$(RM) -r $(ELF) $(OBJDUMP_NAME) $(LINKER_MAP_NAME) $(OBJ_ROOT_DIR) $(RUNTIME_ROOT_DIR) $(FORCE_REBUILD_DEP_LIST) + @$(ECHO) [$(APP_NAME) clean complete] + +# Clean just the BSP. +.PHONY : clean_bsp +clean_bsp : + @$(ECHO) Info: Cleaning $(BSP_ROOT_DIR) + @$(MAKE) --no-print-directory -C $(BSP_ROOT_DIR) clean + +# Clean all makeable libraries including the BSP. +LIB_CLEAN_TARGETS := $(patsubst %,%-recurs-make-clean-lib,$(MAKEABLE_LIBRARY_ROOT_DIRS)) + +.PHONY : clean_libs +clean_libs : $(LIB_CLEAN_TARGETS) + +ifneq ($(strip $(LIB_CLEAN_TARGETS)),) +$(LIB_CLEAN_TARGETS): %-recurs-make-clean-lib: + @$(ECHO) Info: Cleaning $* + $(MAKE) --no-print-directory -C $* clean +endif + +.PHONY: clean_elf_derived_files +clean_elf_derived_files: mem_init_clean + +# Clean application and all makeable libraries including the BSP. +.PHONY : clean_all +clean_all : clean mem_init_clean clean_libs + +# Include the dependency files unless the make goal is performing a clean +# of the application. +ifneq ($(firstword $(MAKECMDGOALS)),clean) +ifneq ($(firstword $(MAKECMDGOALS)),clean_all) +-include $(APP_DEPS) +endif +endif + +.PHONY : download-elf +download-elf : $(ELF) + @if [ "$(DOWNLOAD)" = "none" ]; \ + then \ + $(ECHO) Downloading $(ELF) not supported; \ + else \ + $(ECHO) Info: Downloading $(ELF); \ + $(DOWNLOAD) --go --cpu_name=$(CPU_NAME) $(DOWNLOAD_CABLE_FLAG) $(SOPC_SYSID_FLAG) $(DOWNLOAD_JDI_FLAG) $(WRITE_GMON_OPTION) $(ELF); \ + fi + +# Delete the target of a rule if it has changed and its commands exit +# with a nonzero exit status. +.DELETE_ON_ERROR: + +# Rules for flash programming commands +PROGRAM_FLASH_SUFFIX := -program +PROGRAM_FLASH_TARGET := $(addsuffix $(PROGRAM_FLASH_SUFFIX), $(FLASH_FILES)) + +.PHONY : program-flash +program-flash : $(PROGRAM_FLASH_TARGET) + +.PHONY : $(PROGRAM_FLASH_TARGET) +$(PROGRAM_FLASH_TARGET) : flash + @if [ "$(FLASHPROG)" = "none" ]; \ + then \ + $(ECHO) Programming flash not supported; \ + else \ + $(ECHO) Info: Programming $(basename $@).flash; \ + if [ -z "$($(basename $@)_EPCS_FLAGS)" ]; \ + then \ + $(ECHO) $(FLASHPROG) $(SOPC_SYSID_FLAG) --base=$($(basename $@)_START) $(basename $@).flash; \ + $(FLASHPROG) $(DOWNLOAD_CABLE_FLAG) $(SOPC_SYSID_FLAG) --base=$($(basename $@)_START) $(basename $@).flash; \ + else \ + $(ECHO) $(FLASHPROG) $(SOPC_SYSID_FLAG) --epcs --base=$($(basename $@)_START) $(basename $@).flash; \ + $(FLASHPROG) $(DOWNLOAD_CABLE_FLAG) $(SOPC_SYSID_FLAG) --epcs --base=$($(basename $@)_START) $(basename $@).flash; \ + fi \ + fi + + +# Rules for simulating with an HDL Simulator [QSYS only] +ifeq ($(QSYS),1) +IP_MAKE_SIMSCRIPT := ip-make-simscript + +ifeq ($(VSIM),) +VSIM_EXE := "$(if $(VSIM_DIR),$(VSIM_DIR)/,)vsim" +ifeq ($(ENABLE_VSIM_GUI),1) +VSIM := $(VSIM_EXE) -gui +else +VSIM := $(VSIM_EXE) -c +endif # ENABLE_VSIM_GUI == 1 +endif # VSIM not set + +ifeq ($(SPD),) +ifneq ($(ABS_QUARTUS_PROJECT_DIR),) +ifneq ($(SOPC_NAME),) +SPD := $(ABS_QUARTUS_PROJECT_DIR)/$(SOPC_NAME)_tb.spd +endif # SOPC_NAME set +endif # ABS_QUARTUS_PROJECT_DIR set +endif # SPD == empty string + +ifeq ($(MSIM_SCRIPT),) +SIM_SCRIPT_DIR := $(RUNTIME_ROOT_DIR)/sim +MSIM_SCRIPT := $(SIM_SCRIPT_DIR)/mentor/msim_setup.tcl +endif # MSIM_SCRIPT == empty string + +ifeq ($(MAKE_VERSION),3.81) +ABS_MEM_INIT_DESCRIPTOR_FILE := $(abspath $(MEM_INIT_DESCRIPTOR_FILE)) +else +ABS_MEM_INIT_DESCRIPTOR_FILE := $(call adjust-path-mixed,$(shell pwd))/$(MEM_INIT_DESCRIPTOR_FILE) +endif + +$(MSIM_SCRIPT): $(SPD) $(MEM_INIT_DESCRIPTOR_FILE) +ifeq ($(SPD),) + $(error No SPD file specified. Ensure QUARTUS_PROJECT_DIR variable is set) +endif + @$(MKDIR) $(SIM_SCRIPT_DIR) + $(IP_MAKE_SIMSCRIPT) --spd=$(SPD) --spd=$(MEM_INIT_DESCRIPTOR_FILE) --output-directory=$(SIM_SCRIPT_DIR) + +VSIM_COMMAND = \ + cd $(dir $(MSIM_SCRIPT)) && \ + $(VSIM) -do "do $(notdir $(MSIM_SCRIPT)); ld; $(if $(VSIM_RUN_TIME),run ${VSIM_RUN_TIME};quit;)" + +.PHONY: sim +sim: $(MSIM_SCRIPT) mem_init_generate +ifeq ($(MSIM_SCRIPT),) + $(error MSIM_SCRIPT not set) +endif + $(VSIM_COMMAND) + +endif # QSYS == 1 + + +#------------------------------------------------------------------------------ +# ELF TARGET RULE +#------------------------------------------------------------------------------ +# Rule for constructing the executable elf file. +$(ELF) : $(APP_OBJS) $(LINKER_SCRIPT) $(APP_LDDEPS) + @$(ECHO) Info: Linking $@ + $(LD) $(APP_LDFLAGS) $(APP_CFLAGS) -o $@ $(filter-out $(CRT0),$(APP_OBJS)) $(APP_LIBS) $(APP_BSP_DEP_LIBS) +ifneq ($(DISABLE_ELFPATCH),1) + $(ELFPATCH) $@ $(ELF_PATCH_FLAG) +endif +ifneq ($(DISABLE_STACKREPORT),1) + @bash -c "$(STACKREPORT) $@" +endif + +$(OBJDUMP_NAME) : $(ELF) + @$(ECHO) Info: Creating $@ + $(OBJDUMP) $(OBJDUMP_FLAGS) $< >$@ + +# Rule for printing the name of the elf file +.PHONY: print-elf-name +print-elf-name: + @$(ECHO) $(ELF) + + diff --git a/software/qsys_tutorial_lcd2/create-this-app b/software/qsys_tutorial_lcd2/create-this-app new file mode 100644 index 0000000..2ef502e --- /dev/null +++ b/software/qsys_tutorial_lcd2/create-this-app @@ -0,0 +1,114 @@ +#!/bin/bash +# +# This script creates the hello_world_small application in this directory. + + +BSP_DIR=../qsys_tutorial_lcd2_bsp +QUARTUS_PROJECT_DIR=../../ +NIOS2_APP_GEN_ARGS="--elf-name qsys_tutorial_lcd2.elf --set APP_CFLAGS_OPTIMIZATION -Os --set OBJDUMP_INCLUDE_SOURCE 1 --src-files hello_world_small.c" + + +# First, check to see if $SOPC_KIT_NIOS2 environmental variable is set. +# This variable is required for the command line tools to execute correctly. +if [ -z "${SOPC_KIT_NIOS2}" ] +then + echo Required \$SOPC_KIT_NIOS2 Environmental Variable is not set! + exit 1 +fi + + +# Also make sure that the APP has not been created already. Check for +# existence of Makefile in the app directory +if [ -f ./Makefile ] +then + echo Application has already been created! Delete Makefile if you want to create a new application makefile + exit 1 +fi + + +# We are selecting hal_reduced_footprint bsp because it supports this application. +# Check to see if the hal_reduced_footprint has already been generated by checking for +# existence of the public.mk file. If not, we need to run +# create-this-bsp file to generate the bsp. +if [ ! -f ${BSP_DIR}/public.mk ]; then + # Since BSP doesn't exist, create the BSP + # Pass any command line arguments passed to this script to the BSP. + pushd ${BSP_DIR} >> /dev/null + ./create-this-bsp "$@" || { + echo "create-this-bsp failed" + exit 1 + } + popd >> /dev/null +fi + + +# Don't run make if create-this-app script is called with --no-make arg +SKIP_MAKE= +while [ $# -gt 0 ] +do + case "$1" in + --no-make) + SKIP_MAKE=1 + ;; + esac + shift +done + + +# Now we also need to go copy the sources for this application to the +# local directory. +find "${SOPC_KIT_NIOS2}/examples/software/hello_world_small/" -name '*.c' -or -name '*.h' -or -name 'hostfs*' | xargs -i cp -L {} ./ || { + echo "failed during copying example source files" + exit 1 +} + +find "${SOPC_KIT_NIOS2}/examples/software/hello_world_small/" -name 'readme.txt' -or -name 'Readme.txt' | xargs -i cp -L {} ./ || { + echo "failed copying readme file" +} + +if [ -d "${SOPC_KIT_NIOS2}/examples/software/hello_world_small/system" ] +then + cp -RL "${SOPC_KIT_NIOS2}/examples/software/hello_world_small/system" . || { + echo "failed during copying project support files" + exit 1 + } +fi + +chmod -R +w . || { + echo "failed during changing file permissions" + exit 1 +} + +cmd="nios2-app-generate-makefile --bsp-dir ${BSP_DIR} --set QUARTUS_PROJECT_DIR=${QUARTUS_PROJECT_DIR} ${NIOS2_APP_GEN_ARGS}" + +echo "create-this-app: Running \"${cmd}\"" +$cmd || { + echo "nios2-app-generate-makefile failed" + exit 1 +} + +if [ -z "$SKIP_MAKE" ]; then + cmd="make" + + echo "create-this-app: Running \"$cmd\"" + $cmd || { + echo "make failed" + exit 1 + } + + echo + echo "To download and run the application:" + echo " 1. Make sure the board is connected to the system." + echo " 2. Run 'nios2-configure-sof ' to configure the FPGA with the hardware design." + echo " 3. If you have a stdio device, run 'nios2-terminal' in a different shell." + echo " 4. Run 'make download-elf' from the application directory." + echo + echo "To debug the application:" + echo " Import the project into Nios II Software Build Tools for Eclipse." + echo " Refer to Nios II Software Build Tools for Eclipse Documentation for more information." + echo + echo -e "" +fi + + +exit 0 diff --git a/software/qsys_tutorial_lcd2/hello_world_small.c b/software/qsys_tutorial_lcd2/hello_world_small.c new file mode 100644 index 0000000..be51785 --- /dev/null +++ b/software/qsys_tutorial_lcd2/hello_world_small.c @@ -0,0 +1,152 @@ +#include "sys/alt_stdio.h" +#include +#include +#include +#include "system.h" +#include "hex_out.h" +#include "sys_register.h" +#include "sys_memory.h" +#include "input_int.h" +#include "inst_decoder.h" + +#include "altera_avalon_lcd_16207.h" +#include "altera_avalon_lcd_16207_regs.h" + + +#define LCD_BASE 0x4030 + +#define ledrs (volatile int *) 0x00050a0 +#define lcd_on (volatile char *) 0x4010 +#define lcd_blon (volatile char *) 0x4020 + +#define T_MS10 12500 //(10ms) + +void wait(unsigned int s) { + volatile i; + for (i = 0; i < T_MS10*s; i++); +} + +void init() { + FILE *flcd; + char msg[] = "test"; + *lcd_on = 1; + *lcd_blon = 1; + usleep(2000); + + flcd = fopen(LCD_16207_0_NAME, "w"); + if (flcd) { + fwrite(msg, strlen(msg), 1, flcd); + fclose(flcd); + } + // + registers_init(); + memory_init(); + clear_block(HEX0_3); clear_block(HEX4_5); clear_block(HEX6_7); + print_block("he", 2, HEX6_7); + print_block("lo", 2, HEX4_5); + print_block("you1", 4, HEX0_3); + wait(200); + clear_block(HEX0_3); clear_block(HEX4_5); clear_block(HEX6_7); +} + +char stack[5]; + +void store_value(){ + char buf[5]; + unsigned int memi = global_registers[Ssw_memi]; + memory_store(memi, Ssw_data); + sprintf(buf, "%02x", (unsigned char)memi); + print_block(buf, 2, HEX6_7); + print_block("--", 2, HEX4_5); + sprintf(buf, "%04d", global_registers[Ssw_data]); + print_block(buf, 4, HEX0_3); +} +void store_inst(){ + char inst; + char mem_index; + char reg_index; + struct InstRec inst_rec; + + // �K�v�ȏ��̎擾 + inst = global_registers[Ssw_inst]; + mem_index = global_registers[Ssw_memi]; + reg_index = global_registers[Ssw_regi]; + inst_rec.inst = (unsigned int)inst; + inst_rec.memi = (unsigned int)mem_index; + inst_rec.regi = (unsigned int)reg_index; + + // �X�g�A���� + inst_memory_store((unsigned int)global_registers[Spc], inst_rec); + global_registers[Spc]++; + + { + char buf[5]; + sprintf(buf, "%04d", inst_rec.inst); + print_block(buf, 4, HEX0_3); + sprintf(buf, "%02x", global_registers[Spc]); + print_block(buf, 2, HEX4_5); + } +} +void run_proc() { + volatile struct InstRec inst_rec; + + //print_block(" go ", 4, HEX0_3); + + global_registers[Spc] = 0; + print_block("pc", 2, HEX6_7); + do { + // pc�\�� + { + char buf[5]; + sprintf(buf, "%02x", global_registers[Spc]); + print_block(buf, 2, HEX4_5); + } + // ���߃t�F�b�` + inst_rec = inst_fetch(); + // ���߃f�R�[�h���s + inst_decode(inst_rec); + if ( global_registers[Ssw_run] ) wait(100); + }while( inst_rec.inst != INST_END ); + + //print_block(" end", 4, HEX0_3); +} + +void print_change_memory(unsigned int current_memory) { + char buf[5]; + sprintf(buf, "g %2d", current_memory); + print_block(buf, 4, HEX0_3); + print_block("an", 2, HEX4_5); + print_block("ch", 2, HEX6_7); + wait(200); + clear_block(HEX0_3); clear_block(HEX4_5); clear_block(HEX6_7); +} + +int main() +{ + init(); + while(1) { + // interrupt + in_int(); + + // event + if (PUSH_EVENT == PUSH_VALSTR) { + // �l�̃X�g�A + store_value(); + } + if (PUSH_EVENT == PUSH_INSSTR) { + // ���߂̃X�g�A + store_inst(); + } + if (PUSH_EVENT == PUSH_RUN) { + if (global_current_memory != (unsigned int)global_registers[Ssw_psel]) { + global_current_memory = (unsigned int)global_registers[Ssw_psel]; + print_change_memory(global_current_memory); + } + else { + // �v���O�������s + run_proc(); + } + } + } + return 0; +} diff --git a/software/qsys_tutorial_lcd2/hex_encoder.c b/software/qsys_tutorial_lcd2/hex_encoder.c new file mode 100644 index 0000000..ab4eca0 --- /dev/null +++ b/software/qsys_tutorial_lcd2/hex_encoder.c @@ -0,0 +1,205 @@ +/* + * hex_encoder.c + * + * Created on: 2016/11/17 + * Author: takayun + */ + +#include "hex_encoder.h" +#include + +void encodeNumHex(int hex_i, int num) { + char encoded = 0; + switch (num) { + case 0: + encoded = (char)0x40; // 100 0000 + break; + case 1: + encoded = (char)0xF9; // 111 1001 + break; + case 2: + encoded = (char)0x24; // 010 0100 + break; + case 3: + encoded = (char)0x30; // 011 0000 + break; + case 4: + encoded = (char)0x19; // 001 1001 + break; + case 5: + encoded = (char)0x12; // 001 0010 + break; + case 6: + encoded = (char)0x02; // 000 0010 + break; + case 7: + encoded = (char)0x58; // 101 1000 + break; + case 8: + encoded = (char)0x00; // 000 0000 + break; + case 9: + encoded = (char)0x10; // 001 0000 + break; + default: + encoded = 0; + break; + } + + switch (hex_i) { + case 0: + *hex0 = encoded; + break; + case 1: + *hex1 = encoded; + break; + case 2: + *hex2 = encoded; + break; + case 3: + *hex3 = encoded; + break; + case 4: + *hex4 = encoded; + break; + case 5: + *hex5 = encoded; + break; + case 6: + *hex6 = encoded; + break; + case 7: + *hex7 = encoded; + break; + default: + break; + } +} + +void encodeLatHex(int hex_i, char c) { + char encoded = 0; + + if (isdigit(c)) { + encodeNumHex(hex_i, c-'0'); + return; + } + + switch (c) { + case ' ': + encoded = (char)0xFF; // 111 1111 + break; + case '-': + encoded = (char)0x3F; // 011 1111 + break; + case 'a': + encoded = (char)0x08; // 000 1000 + break; + case 'b': + encoded = (char)0x03; // 000 0011 + break; + case 'c': + encoded = (char)0x27; // 010 0111 + break; + case 'd': + encoded = (char)0x21; // 010 0001 + break; + case 'e': + encoded = (char)0x06; // 000 0110 + break; + case 'f': + encoded = (char)0x0E; // 000 1110 + break; + case 'g': + encoded = (char)0x42; // 100 0010 + break; + case 'h': + encoded = (char)0x0B; // 000 1011 + break; + case 'i': + encoded = (char)0xFB; // 111 1011 + break; + case 'j': + encoded = (char)0x61; // 110 0001 + break; + case 'k': + encoded = (char)0x0A; // 000 1010 + break; + case 'l': + encoded = (char)0x47; // 100 0111 + break; + case 'm': + encoded = (char)0x48; // 100 1000 + break; + case 'n': + encoded = (char)0x2B; // 010 1011 + break; + case 'o': + encoded = (char)0x23; // 010 0011 + break; + case 'p': + encoded = (char)0x0C; // 000 1100 + break; + case 'q': + encoded = (char)0x04; // 000 0100 + break; + case 'r': + encoded = (char)0x2F; // 010 1111 + break; + case 's': + encoded = (char)0x13; // 001 0011 + break; + case 't': + encoded = (char)0x07; // 000 0111 + break; + case 'u': + encoded = (char)0x63; // 110 0011 + break; + case 'v': + encoded = (char)0x41; // 100 0001 + break; + case 'w': + encoded = (char)0x01; // 000 0001 + break; + case 'x': + encoded = (char)0x09; // 000 1001 + break; + case 'y': + encoded = (char)0x11; // 001 0001 + break; + case 'z': + encoded = (char)0x64; // 110 0100 + break; + default: + encoded = 0; + break; + } + + switch (hex_i) { + case 0: + *hex0 = encoded; + break; + case 1: + *hex1 = encoded; + break; + case 2: + *hex2 = encoded; + break; + case 3: + *hex3 = encoded; + break; + case 4: + *hex4 = encoded; + break; + case 5: + *hex5 = encoded; + break; + case 6: + *hex6 = encoded; + break; + case 7: + *hex7 = encoded; + break; + default: + break; + } +} diff --git a/software/qsys_tutorial_lcd2/hex_encoder.h b/software/qsys_tutorial_lcd2/hex_encoder.h new file mode 100644 index 0000000..d04473e --- /dev/null +++ b/software/qsys_tutorial_lcd2/hex_encoder.h @@ -0,0 +1,36 @@ +/* + * hex_encoder.h + * + * Created on: 2016/11/17 + * Author: takayun + */ + +#ifndef HEX_ENCODER_H_ +#define HEX_ENCODER_H_ + +/************************************************** + * Defines + **************************************************/ + +#define hex0 (volatile char *) 0x0005070 +#define hex1 (volatile char *) 0x0005060 +#define hex2 (volatile char *) 0x0005050 +#define hex3 (volatile char *) 0x0005040 +#define hex4 (volatile char *) 0x0005030 +#define hex5 (volatile char *) 0x0005020 +#define hex6 (volatile char *) 0x0005010 +#define hex7 (volatile char *) 0x0005000 + +/************************************************** + * Variables + **************************************************/ + + +/************************************************** + * Functions + **************************************************/ + +void encodeNumHex(int hex_i, int num); +void encodeLatHex(int hex_i, char c); + +#endif /* HEX_ENCODER_H_ */ diff --git a/software/qsys_tutorial_lcd2/hex_out.c b/software/qsys_tutorial_lcd2/hex_out.c new file mode 100644 index 0000000..83b37d0 --- /dev/null +++ b/software/qsys_tutorial_lcd2/hex_out.c @@ -0,0 +1,67 @@ +/* + * hex_out.c + * + * Created on: 2016/11/24 + * Author: takayun + */ +#include "hex_out.h" +#include "hex_encoder.h" +#include "system.h" + +void print_block(char * str, unsigned int size, enum BLOCK_N block_i) { + int i; + if (block_i == HEX0_3) { + if (size > 4) panic(); + for (i = 0; i < size; i++) { + encodeLatHex(i,str[size-1-i]); + } + } + else if (block_i == HEX4_5) { + if (size > 2) panic(); + for (i = 0; i < size; i++) { + encodeLatHex(i+4,str[size-1-i]); + } + } + else if (block_i == HEX6_7) { + if (size > 2) panic(); + for (i = 0; i < size; i++) { + encodeLatHex(i+6,str[size-1-i]); + } + } +} + +void clear_block(enum BLOCK_N block_i) { + if (block_i == HEX0_3) { + print_block(" ", 4, HEX0_3); + } + else if (block_i == HEX4_5) { + print_block(" ", 2, HEX4_5); + } + else if (block_i == HEX6_7) { + print_block(" ", 2, HEX6_7); + } +} + +void print_number(char num) { + int i; + char buf[5]; + char val; + for (i = 0; i < 4; i++) { + if (num < 0) { + buf[0] = '-'; + val = -num; + } else { + buf[0] = ' '; + val = num; + } + buf[1] = val/100%10 + '0'; + buf[2] = val/10%10 + '0'; + buf[3] = val%10 + '0'; + } + clear_block(HEX0_3); + print_block(buf, 4, HEX0_3); +} + + + + diff --git a/software/qsys_tutorial_lcd2/hex_out.h b/software/qsys_tutorial_lcd2/hex_out.h new file mode 100644 index 0000000..50d6868 --- /dev/null +++ b/software/qsys_tutorial_lcd2/hex_out.h @@ -0,0 +1,33 @@ +/* + * hex_out.h + * + * Created on: 2016/11/24 + * Author: takayun + */ + +#ifndef HEX_IO_H_ +#define HEX_IO_H_ + +/************************************************** + * Defines + **************************************************/ + +enum BLOCK_N { + HEX0_3, HEX4_5, HEX6_7 +}; + +/************************************************** + * Variables + **************************************************/ + + +/************************************************** + * Functions + **************************************************/ + +void print_block(char * str, unsigned int size, enum BLOCK_N block_i); +void clear_block(enum BLOCK_N block_i); +void print_number(char num); + + +#endif /* HEX_IO_H_ */ diff --git a/software/qsys_tutorial_lcd2/input_int.c b/software/qsys_tutorial_lcd2/input_int.c new file mode 100644 index 0000000..0838b2b --- /dev/null +++ b/software/qsys_tutorial_lcd2/input_int.c @@ -0,0 +1,67 @@ +/* + * input_int.c + * + * Created on: 2016/11/24 + * Author: takayun + */ +#include "input_int.h" +#include "sys_register.h" + +unsigned char PUSH_EVENT = PUSH_NONE; + +void in_int() { + push_int(); +} + +static void update_sw_reg(sw_t s) { + global_registers[Ssw_data] = (char)s.data.value; + global_registers[Ssw_inst] = (char)s.splited.instruction_code; + global_registers[Ssw_memi] = (char)s.splited.memory_index; + global_registers[Ssw_regi] = (char)s.splited.register_index; + global_registers[Ssw_psel] = (char)s.splited.program_selecter; + global_registers[Ssw_rw] = (char)s.splited.rw_mode; + global_registers[Ssw_run] = (char)s.splited.run_mode; +} + +enum PushEvent push_decode(char psw) { + switch(psw) { + case 0x3: + return PUSH_VALSTR; + break; + case 0x5: + return PUSH_INSSTR; + break; + case 0x6: + return PUSH_RUN; + break; + } + return PUSH_NONE; +} + +void push_int() { + static unsigned char status = 0; + static enum PushEvent event_code; + volatile sw_t s; + s.sw = *switches; + + switch (status) { + case 0: + PUSH_EVENT = PUSH_NONE; + if (*push_switches != 7) { + event_code = push_decode(*push_switches); + status = 1; + } + update_sw_reg(s); // �X�C�b�`���W�X�^�X�V + break; + case 1: + if (*push_switches == 7) status = 2; + break; + case 2: + PUSH_EVENT = event_code; + status = 0; + break; + default: + status = 0; + break; + } +} diff --git a/software/qsys_tutorial_lcd2/input_int.h b/software/qsys_tutorial_lcd2/input_int.h new file mode 100644 index 0000000..3cd8cba --- /dev/null +++ b/software/qsys_tutorial_lcd2/input_int.h @@ -0,0 +1,60 @@ +/* + * input_int.h + * + * Created on: 2016/11/24 + * Author: takayun + */ + +#ifndef SWITCHES_INT_H_ +#define SWITCHES_INT_H_ + +/************************************************** + * Defines + **************************************************/ + +#define switches (volatile int *) 0x0005090 +#define push_switches (volatile char *) 0x0005080 + +typedef union { + int sw; + struct { + unsigned int run_mode : 1; + unsigned int rw_mode : 1; + unsigned int program_selecter : 4; + unsigned int memory_index : 4; + unsigned int register_index : 4; + unsigned int instruction_code : 4; + } splited; + struct { + unsigned int : 10; + unsigned int value : 8; + } data; +} sw_t; + +enum PushEvent{ + PUSH_NONE, + PUSH_ANY, + PUSH_VALSTR, + PUSH_INSSTR, + PUSH_RUN +}; + +/************************************************** + * Variables + **************************************************/ + +extern unsigned char PUSH_EVENT; + +/************************************************** + * Functions + **************************************************/ + +/* Function: in_int + * Sammary: + * �S�Ă̓��͊��荞�݂��s�� + * */ +void in_int(); + +void push_int(); + +#endif /* SWITCHES_INT_H_ */ diff --git a/software/qsys_tutorial_lcd2/inst_decoder.c b/software/qsys_tutorial_lcd2/inst_decoder.c new file mode 100644 index 0000000..d864653 --- /dev/null +++ b/software/qsys_tutorial_lcd2/inst_decoder.c @@ -0,0 +1,109 @@ +/* + * inst_decoder.c + * + * Created on: 2016/11/25 + * Author: takayun + */ + +#include "inst_decoder.h" +#include "sys_memory.h" +#include "sys_register.h" +#include "hex_out.h" +#include + +struct InstRec inst_fetch(){ + return inst_memory_load((unsigned int)global_registers[Spc]++); +} + +void inst_decode(struct InstRec inst_rec){ + switch(inst_rec.inst) { + case INST_END: + break; + case INST_JUMP: + inst_jump(inst_rec.regi, inst_rec.memi); + break; + case INST_OUTPUT: + inst_output(inst_rec.regi, inst_rec.memi); + break; + case INST_LOAD: + inst_load(inst_rec.regi, inst_rec.memi); + break; + case INST_STORE: + inst_store(inst_rec.regi, inst_rec.memi); + break; + case INST_DELAY: + inst_delay(inst_rec.regi, inst_rec.memi); + break; + case INST_ADD: + inst_add(inst_rec.regi, inst_rec.memi); + break; + case INST_COMP: + inst_comp(inst_rec.regi, inst_rec.memi); + break; + case INST_JEQ: + inst_jeq(inst_rec.regi, inst_rec.memi); + break; + case INST_JNE: + inst_jne(inst_rec.regi, inst_rec.memi); + break; + case INST_JIEQ: + inst_jieq(inst_rec.regi, inst_rec.memi); + break; + case INST_JINE: + inst_jine(inst_rec.regi, inst_rec.memi); + break; + } +} + +void inst_jump(enum Register reg, unsigned char memory_index){ + global_registers[Spc]=global_registers[reg]+memory_index; +} +void inst_output(enum Register reg, unsigned char memory_index){ + //�������̒l��7�Z�O�ɕ\�� + char buf[5]; + memory_load(memory_index, Sseg); + sprintf(buf, "%04d", global_registers[Sseg]); + print_block(buf, 4, HEX0_3); +} +void inst_load(enum Register reg, unsigned char memory_index){ + memory_load(memory_index, reg); +} +void inst_store(enum Register reg, unsigned char memory_index){ + memory_store(memory_index, reg); +} +void inst_delay(enum Register reg, unsigned char memory_index){ + //���W�X�^�̒l*10ms�҂� +} +void inst_add(enum Register reg, unsigned char memory_index){ + global_registers[Sacc]+=global_registers[reg]; +} +void inst_comp(enum Register reg, unsigned char memory_index){ + if(global_registers[Sacc]==global_registers[reg]){ + global_registers[Sflg]=0; + } else if(global_registers[Sacc] > global_registers[reg]){ + global_registers[Sflg]=-1; + }else{ + global_registers[Sflg]=1; + } +} +void inst_jeq(enum Register reg, unsigned char memory_index){ + if(global_registers[Sflg]==global_registers[reg]){ + global_registers[Spc]++; + } +} +void inst_jne(enum Register reg, unsigned char memory_index){ + if(global_registers[Sflg]!=global_registers[reg]){ + global_registers[Spc]++; + } +} +void inst_jieq(char im, unsigned char memory_index){ + if(global_registers[Sflg]==im){ + global_registers[Spc]++; + } +} +void inst_jine(char im, unsigned char memory_index){ + if(global_registers[Sflg]!=im){ + global_registers[Spc]++; + } +} + diff --git a/software/qsys_tutorial_lcd2/inst_decoder.h b/software/qsys_tutorial_lcd2/inst_decoder.h new file mode 100644 index 0000000..9860750 --- /dev/null +++ b/software/qsys_tutorial_lcd2/inst_decoder.h @@ -0,0 +1,49 @@ +/* + * inst_decoder.h + * + * Created on: 2016/11/25 + * Author: takayun + */ + +#ifndef INST_DECODER_H_ +#define INST_DECODER_H_ + +#include "sys_register.h" + +#define INST_END 0x0 +#define INST_JUMP 0x1 +#define INST_OUTPUT 0x2 +#define INST_LOAD 0x3 +#define INST_STORE 0x4 +#define INST_DELAY 0x5 +#define INST_ADD 0x6 +#define INST_COMP 0x7 +#define INST_JEQ 0x8 +#define INST_JNE 0x9 +#define INST_JIEQ 0xA +#define INST_JINE 0xB + +struct InstRec { + unsigned int inst : 4; + unsigned int memi : 4; + unsigned int regi : 4; +}; + +struct InstRec inst_fetch(); + +void inst_decode(struct InstRec inst_rec); + +void inst_jump(enum Register reg, unsigned char memory_index); +void inst_output(enum Register reg, unsigned char memory_index); +void inst_load(enum Register reg, unsigned char memory_index); +void inst_store(enum Register reg, unsigned char memory_index); +void inst_delay(enum Register reg, unsigned char memory_index); +void inst_add(enum Register reg, unsigned char memory_index); +void inst_comp(enum Register reg, unsigned char memory_index); +void inst_jeq(enum Register reg, unsigned char memory_index); +void inst_jne(enum Register reg, unsigned char memory_index); +void inst_jieq(char im, unsigned char memory_index); +void inst_jine(char im, unsigned char memory_index); + + +#endif /* INST_DECODER_H_ */ diff --git a/software/qsys_tutorial_lcd2/obj/default/hello_world_small.d b/software/qsys_tutorial_lcd2/obj/default/hello_world_small.d new file mode 100644 index 0000000..a52cccf --- /dev/null +++ b/software/qsys_tutorial_lcd2/obj/default/hello_world_small.d @@ -0,0 +1,70 @@ +obj/default/hello_world_small.o: hello_world_small.c \ + ../qsys_tutorial_lcd2_bsp//HAL/inc/sys/alt_stdio.h system.h hex_out.h \ + sys_register.h sys_memory.h inst_decoder.h input_int.h \ + ../qsys_tutorial_lcd2_bsp//drivers/inc/altera_avalon_lcd_16207.h \ + ../qsys_tutorial_lcd2_bsp//HAL/inc/sys/alt_alarm.h \ + ../qsys_tutorial_lcd2_bsp//HAL/inc/sys/alt_llist.h \ + ../qsys_tutorial_lcd2_bsp//HAL/inc/alt_types.h \ + ../qsys_tutorial_lcd2_bsp//HAL/inc/priv/alt_alarm.h \ + ../qsys_tutorial_lcd2_bsp//HAL/inc/alt_types.h \ + ../qsys_tutorial_lcd2_bsp//HAL/inc/os/alt_sem.h \ + ../qsys_tutorial_lcd2_bsp//HAL/inc/priv/alt_no_error.h \ + ../qsys_tutorial_lcd2_bsp//drivers/inc/altera_avalon_lcd_16207_fd.h \ + ../qsys_tutorial_lcd2_bsp//HAL/inc/sys/alt_dev.h \ + ../qsys_tutorial_lcd2_bsp/system.h ../qsys_tutorial_lcd2_bsp/linker.h \ + ../qsys_tutorial_lcd2_bsp//HAL/inc/sys/alt_llist.h \ + ../qsys_tutorial_lcd2_bsp//HAL/inc/priv/alt_dev_llist.h \ + ../qsys_tutorial_lcd2_bsp//HAL/inc/sys/alt_llist.h \ + ../qsys_tutorial_lcd2_bsp//drivers/inc/altera_avalon_lcd_16207_regs.h \ + ../qsys_tutorial_lcd2_bsp//HAL/inc/io.h \ + ../qsys_tutorial_lcd2_bsp//HAL/inc/alt_types.h + +../qsys_tutorial_lcd2_bsp//HAL/inc/sys/alt_stdio.h: + +system.h: + +hex_out.h: + +sys_register.h: + +sys_memory.h: + +inst_decoder.h: + +input_int.h: + +../qsys_tutorial_lcd2_bsp//drivers/inc/altera_avalon_lcd_16207.h: + +../qsys_tutorial_lcd2_bsp//HAL/inc/sys/alt_alarm.h: + +../qsys_tutorial_lcd2_bsp//HAL/inc/sys/alt_llist.h: + +../qsys_tutorial_lcd2_bsp//HAL/inc/alt_types.h: + +../qsys_tutorial_lcd2_bsp//HAL/inc/priv/alt_alarm.h: + +../qsys_tutorial_lcd2_bsp//HAL/inc/alt_types.h: + +../qsys_tutorial_lcd2_bsp//HAL/inc/os/alt_sem.h: + +../qsys_tutorial_lcd2_bsp//HAL/inc/priv/alt_no_error.h: + +../qsys_tutorial_lcd2_bsp//drivers/inc/altera_avalon_lcd_16207_fd.h: + +../qsys_tutorial_lcd2_bsp//HAL/inc/sys/alt_dev.h: + +../qsys_tutorial_lcd2_bsp/system.h: + +../qsys_tutorial_lcd2_bsp/linker.h: + +../qsys_tutorial_lcd2_bsp//HAL/inc/sys/alt_llist.h: + +../qsys_tutorial_lcd2_bsp//HAL/inc/priv/alt_dev_llist.h: + +../qsys_tutorial_lcd2_bsp//HAL/inc/sys/alt_llist.h: + +../qsys_tutorial_lcd2_bsp//drivers/inc/altera_avalon_lcd_16207_regs.h: + +../qsys_tutorial_lcd2_bsp//HAL/inc/io.h: + +../qsys_tutorial_lcd2_bsp//HAL/inc/alt_types.h: diff --git a/software/qsys_tutorial_lcd2/obj/default/hello_world_small.o b/software/qsys_tutorial_lcd2/obj/default/hello_world_small.o new file mode 100644 index 0000000..1a167c6 --- /dev/null +++ b/software/qsys_tutorial_lcd2/obj/default/hello_world_small.o Binary files differ diff --git a/software/qsys_tutorial_lcd2/obj/default/hex_encoder.d b/software/qsys_tutorial_lcd2/obj/default/hex_encoder.d new file mode 100644 index 0000000..e913210 --- /dev/null +++ b/software/qsys_tutorial_lcd2/obj/default/hex_encoder.d @@ -0,0 +1,3 @@ +obj/default/hex_encoder.o: hex_encoder.c hex_encoder.h + +hex_encoder.h: diff --git a/software/qsys_tutorial_lcd2/obj/default/hex_encoder.o b/software/qsys_tutorial_lcd2/obj/default/hex_encoder.o new file mode 100644 index 0000000..4d3905a --- /dev/null +++ b/software/qsys_tutorial_lcd2/obj/default/hex_encoder.o Binary files differ diff --git a/software/qsys_tutorial_lcd2/obj/default/hex_out.d b/software/qsys_tutorial_lcd2/obj/default/hex_out.d new file mode 100644 index 0000000..1000db0 --- /dev/null +++ b/software/qsys_tutorial_lcd2/obj/default/hex_out.d @@ -0,0 +1,7 @@ +obj/default/hex_out.o: hex_out.c hex_out.h hex_encoder.h system.h + +hex_out.h: + +hex_encoder.h: + +system.h: diff --git a/software/qsys_tutorial_lcd2/obj/default/hex_out.o b/software/qsys_tutorial_lcd2/obj/default/hex_out.o new file mode 100644 index 0000000..eea192b --- /dev/null +++ b/software/qsys_tutorial_lcd2/obj/default/hex_out.o Binary files differ diff --git a/software/qsys_tutorial_lcd2/obj/default/input_int.d b/software/qsys_tutorial_lcd2/obj/default/input_int.d new file mode 100644 index 0000000..25051be --- /dev/null +++ b/software/qsys_tutorial_lcd2/obj/default/input_int.d @@ -0,0 +1,5 @@ +obj/default/input_int.o: input_int.c input_int.h sys_register.h + +input_int.h: + +sys_register.h: diff --git a/software/qsys_tutorial_lcd2/obj/default/input_int.o b/software/qsys_tutorial_lcd2/obj/default/input_int.o new file mode 100644 index 0000000..be2a16b --- /dev/null +++ b/software/qsys_tutorial_lcd2/obj/default/input_int.o Binary files differ diff --git a/software/qsys_tutorial_lcd2/obj/default/inst_decoder.d b/software/qsys_tutorial_lcd2/obj/default/inst_decoder.d new file mode 100644 index 0000000..3e61d10 --- /dev/null +++ b/software/qsys_tutorial_lcd2/obj/default/inst_decoder.d @@ -0,0 +1,10 @@ +obj/default/inst_decoder.o: inst_decoder.c inst_decoder.h sys_register.h \ + sys_memory.h hex_out.h + +inst_decoder.h: + +sys_register.h: + +sys_memory.h: + +hex_out.h: diff --git a/software/qsys_tutorial_lcd2/obj/default/inst_decoder.o b/software/qsys_tutorial_lcd2/obj/default/inst_decoder.o new file mode 100644 index 0000000..786b0dd --- /dev/null +++ b/software/qsys_tutorial_lcd2/obj/default/inst_decoder.o Binary files differ diff --git a/software/qsys_tutorial_lcd2/obj/default/sys_memory.d b/software/qsys_tutorial_lcd2/obj/default/sys_memory.d new file mode 100644 index 0000000..52d4dcd --- /dev/null +++ b/software/qsys_tutorial_lcd2/obj/default/sys_memory.d @@ -0,0 +1,10 @@ +obj/default/sys_memory.o: sys_memory.c system.h sys_memory.h \ + sys_register.h inst_decoder.h + +system.h: + +sys_memory.h: + +sys_register.h: + +inst_decoder.h: diff --git a/software/qsys_tutorial_lcd2/obj/default/sys_memory.o b/software/qsys_tutorial_lcd2/obj/default/sys_memory.o new file mode 100644 index 0000000..46c6e33 --- /dev/null +++ b/software/qsys_tutorial_lcd2/obj/default/sys_memory.o Binary files differ diff --git a/software/qsys_tutorial_lcd2/obj/default/sys_register.d b/software/qsys_tutorial_lcd2/obj/default/sys_register.d new file mode 100644 index 0000000..ec29589 --- /dev/null +++ b/software/qsys_tutorial_lcd2/obj/default/sys_register.d @@ -0,0 +1,3 @@ +obj/default/sys_register.o: sys_register.c sys_register.h + +sys_register.h: diff --git a/software/qsys_tutorial_lcd2/obj/default/sys_register.o b/software/qsys_tutorial_lcd2/obj/default/sys_register.o new file mode 100644 index 0000000..4ec230a --- /dev/null +++ b/software/qsys_tutorial_lcd2/obj/default/sys_register.o Binary files differ diff --git a/software/qsys_tutorial_lcd2/obj/default/system.d b/software/qsys_tutorial_lcd2/obj/default/system.d new file mode 100644 index 0000000..6c906ae --- /dev/null +++ b/software/qsys_tutorial_lcd2/obj/default/system.d @@ -0,0 +1,5 @@ +obj/default/system.o: system.c system.h hex_out.h + +system.h: + +hex_out.h: diff --git a/software/qsys_tutorial_lcd2/obj/default/system.o b/software/qsys_tutorial_lcd2/obj/default/system.o new file mode 100644 index 0000000..4e60efb --- /dev/null +++ b/software/qsys_tutorial_lcd2/obj/default/system.o Binary files differ diff --git a/software/qsys_tutorial_lcd2/qsys_tutorial_lcd2.map b/software/qsys_tutorial_lcd2/qsys_tutorial_lcd2.map new file mode 100644 index 0000000..9aba510 --- /dev/null +++ b/software/qsys_tutorial_lcd2/qsys_tutorial_lcd2.map @@ -0,0 +1,791 @@ +Archive member included because of file (symbol) + +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-divmod.o) + obj/default/hex_out.o (__divsi3) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-mul.o) + obj/default/hello_world_small.o (__mulsi3) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-ctype_.o) + obj/default/hex_encoder.o (__ctype_ptr) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-sprintf.o) + obj/default/hello_world_small.o (sprintf) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-strlen.o) + obj/default/hello_world_small.o (strlen) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-vfprintf.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-sprintf.o) (___vfprintf_internal_r) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-fvwrite_small_str.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-sprintf.o) (__sfvwrite_small_str) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-impure.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-sprintf.o) (_impure_ptr) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-memmove.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-fvwrite_small_str.o) (memmove) +../qsys_tutorial_lcd2_bsp/\libhal_bsp.a(alt_load.o) + ../qsys_tutorial_lcd2_bsp//obj/HAL/src/crt0.o (alt_load) +../qsys_tutorial_lcd2_bsp/\libhal_bsp.a(alt_main.o) + ../qsys_tutorial_lcd2_bsp//obj/HAL/src/crt0.o (alt_main) +../qsys_tutorial_lcd2_bsp/\libhal_bsp.a(alt_usleep.o) + obj/default/hello_world_small.o (usleep) +../qsys_tutorial_lcd2_bsp/\libhal_bsp.a(alt_sys_init.o) + ../qsys_tutorial_lcd2_bsp/\libhal_bsp.a(alt_main.o) (alt_sys_init) +../qsys_tutorial_lcd2_bsp/\libhal_bsp.a(alt_busy_sleep.o) + ../qsys_tutorial_lcd2_bsp/\libhal_bsp.a(alt_usleep.o) (alt_busy_sleep) +../qsys_tutorial_lcd2_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) + ../qsys_tutorial_lcd2_bsp/\libhal_bsp.a(alt_load.o) (alt_dcache_flush_all) +../qsys_tutorial_lcd2_bsp/\libhal_bsp.a(alt_icache_flush_all.o) + ../qsys_tutorial_lcd2_bsp/\libhal_bsp.a(alt_load.o) (alt_icache_flush_all) +../qsys_tutorial_lcd2_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) + ../qsys_tutorial_lcd2_bsp/\libhal_bsp.a(alt_sys_init.o) (altera_nios2_qsys_irq_init) + +Allocating common symbols +Common symbol size file + +stack 0x5 obj/default/hello_world_small.o +global_registers 0xf obj/default/sys_register.o + +Memory Configuration + +Name Origin Length Attributes +reset 0x00000000 0x00000020 +onchip_memory 0x00000020 0x00003fe0 +*default* 0x00000000 0xffffffff + +Linker script and memory map + +LOAD ../qsys_tutorial_lcd2_bsp//obj/HAL/src/crt0.o + 0x0000000c exit = _exit +LOAD obj/default/hello_world_small.o +LOAD obj/default/hex_encoder.o +LOAD obj/default/hex_out.o +LOAD obj/default/input_int.o +LOAD obj/default/inst_decoder.o +LOAD obj/default/sys_memory.o +LOAD obj/default/sys_register.o +LOAD obj/default/system.o +LOAD c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libstdc++.a +LOAD c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libm.a +LOAD c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a +START GROUP +LOAD c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a +LOAD c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a +LOAD ../qsys_tutorial_lcd2_bsp/\libhal_bsp.a +END GROUP +LOAD c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a + 0x00000000 __alt_mem_onchip_memory = 0x0 + +.entry 0x00000000 0x20 + *(.entry) + .entry 0x00000000 0x20 ../qsys_tutorial_lcd2_bsp//obj/HAL/src/crt0.o + 0x00000000 __reset + 0x0000000c _exit + +.exceptions 0x00000020 0x0 + 0x00000020 PROVIDE (__ram_exceptions_start, ABSOLUTE (.)) + 0x00000020 . = ALIGN (0x20) + *(.irq) + *(.exceptions.entry.label) + *(.exceptions.entry.user) + *(.exceptions.entry) + *(.exceptions.irqtest.user) + *(.exceptions.irqtest) + *(.exceptions.irqhandler.user) + *(.exceptions.irqhandler) + *(.exceptions.irqreturn.user) + *(.exceptions.irqreturn) + *(.exceptions.notirq.label) + *(.exceptions.notirq.user) + *(.exceptions.notirq) + *(.exceptions.soft.user) + *(.exceptions.soft) + *(.exceptions.unknown.user) + *(.exceptions.unknown) + *(.exceptions.exit.label) + *(.exceptions.exit.user) + *(.exceptions.exit) + *(.exceptions) + 0x00000020 PROVIDE (__ram_exceptions_end, ABSOLUTE (.)) + 0x00000020 PROVIDE (__flash_exceptions_start, LOADADDR (.exceptions)) + +.text 0x00000020 0x1e14 + 0x00000020 PROVIDE (stext, ABSOLUTE (.)) + *(.interp) + *(.hash) + *(.dynsym) + *(.dynstr) + *(.gnu.version) + *(.gnu.version_d) + *(.gnu.version_r) + *(.rel.init) + *(.rela.init) + *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) + *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) + *(.rel.fini) + *(.rela.fini) + *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) + *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) + *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) + *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) + *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) + *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) + *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) + *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) + *(.rel.ctors) + *(.rela.ctors) + *(.rel.dtors) + *(.rela.dtors) + *(.rel.got) + *(.rela.got) + *(.rel.sdata .rel.sdata.* .rel.gnu.linkonce.s.*) + *(.rela.sdata .rela.sdata.* .rela.gnu.linkonce.s.*) + *(.rel.sbss .rel.sbss.* .rel.gnu.linkonce.sb.*) + *(.rela.sbss .rela.sbss.* .rela.gnu.linkonce.sb.*) + *(.rel.sdata2 .rel.sdata2.* .rel.gnu.linkonce.s2.*) + *(.rela.sdata2 .rela.sdata2.* .rela.gnu.linkonce.s2.*) + *(.rel.sbss2 .rel.sbss2.* .rel.gnu.linkonce.sb2.*) + *(.rela.sbss2 .rela.sbss2.* .rela.gnu.linkonce.sb2.*) + *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) + *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) + *(.rel.plt) + *(.rela.plt) + *(.rel.dyn) + *(.init) + *(.plt) + *(.text .stub .text.* .gnu.linkonce.t.*) + .text 0x00000020 0x3c ../qsys_tutorial_lcd2_bsp//obj/HAL/src/crt0.o + 0x00000020 _start + .text 0x0000005c 0x470 obj/default/hello_world_small.o + 0x0000005c wait + 0x00000098 print_change_memory + 0x00000130 run_proc + 0x000001d0 store_inst + 0x000002a0 store_value + 0x00000344 init + 0x00000450 main + .text 0x000004cc 0x3b8 obj/default/hex_encoder.o + 0x000004cc encodeNumHex + 0x000005f0 encodeLatHex + .text 0x00000884 0x228 obj/default/hex_out.o + 0x00000884 print_block + 0x00000960 clear_block + 0x000009b0 print_number + .text 0x00000aac 0x180 obj/default/input_int.o + 0x00000aac push_decode + 0x00000aec push_int + 0x00000c28 in_int + .text 0x00000c2c 0x334 obj/default/inst_decoder.o + 0x00000c2c inst_jump + 0x00000c48 inst_delay + 0x00000c4c inst_add + 0x00000c6c inst_comp + 0x00000ca4 inst_jeq + 0x00000ccc inst_jne + 0x00000cf4 inst_jieq + 0x00000d20 inst_jine + 0x00000d4c inst_store + 0x00000d5c inst_load + 0x00000d6c inst_output + 0x00000db8 inst_fetch + 0x00000df0 inst_decode + .text 0x00000f60 0x220 obj/default/sys_memory.o + 0x00000f60 memory_init + 0x00000fa4 inst_memory_store + 0x00001024 inst_memory_load + 0x000010a0 memory_load + 0x00001110 memory_store + .text 0x00001180 0x1c obj/default/sys_register.o + 0x00001180 registers_init + .text 0x0000119c 0x2c obj/default/system.o + 0x0000119c panic + .text 0x000011c8 0x14c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-divmod.o) + 0x00001244 __divsi3 + 0x000012a4 __modsi3 + 0x00001304 __udivsi3 + 0x0000130c __umodsi3 + .text 0x00001314 0x38 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-mul.o) + 0x00001314 __mulsi3 + .text 0x0000134c 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-ctype_.o) + .text 0x0000134c 0xf4 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-sprintf.o) + 0x0000134c sprintf + 0x000013d0 _sprintf_r + .text 0x00001440 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-strlen.o) + 0x00001440 strlen + .text 0x00001460 0x740 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-vfprintf.o) + 0x000014e0 ___vfprintf_internal_r + 0x00001b7c __vfprintf_internal + .text 0x00001ba0 0xb8 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-fvwrite_small_str.o) + 0x00001ba0 __sfvwrite_small_str + .text 0x00001c58 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-impure.o) + .text 0x00001c58 0x60 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-memmove.o) + 0x00001c58 memmove + .text 0x00001cb8 0x8c ../qsys_tutorial_lcd2_bsp/\libhal_bsp.a(alt_load.o) + 0x00001cd8 alt_load + .text 0x00001d44 0x2c ../qsys_tutorial_lcd2_bsp/\libhal_bsp.a(alt_main.o) + 0x00001d44 alt_main + .text 0x00001d70 0x4 ../qsys_tutorial_lcd2_bsp/\libhal_bsp.a(alt_usleep.o) + 0x00001d70 usleep + .text 0x00001d74 0x24 ../qsys_tutorial_lcd2_bsp/\libhal_bsp.a(alt_sys_init.o) + 0x00001d74 alt_sys_init + 0x00001d78 alt_irq_init + .text 0x00001d98 0x8c ../qsys_tutorial_lcd2_bsp/\libhal_bsp.a(alt_busy_sleep.o) + 0x00001d98 alt_busy_sleep + .text 0x00001e24 0x4 ../qsys_tutorial_lcd2_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) + 0x00001e24 alt_dcache_flush_all + .text 0x00001e28 0x4 ../qsys_tutorial_lcd2_bsp/\libhal_bsp.a(alt_icache_flush_all.o) + 0x00001e28 alt_icache_flush_all + .text 0x00001e2c 0x8 ../qsys_tutorial_lcd2_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) + 0x00001e2c altera_nios2_qsys_irq_init + *(.gnu.warning.*) + *(.fini) + 0x00001e34 PROVIDE (__etext, ABSOLUTE (.)) + 0x00001e34 PROVIDE (_etext, ABSOLUTE (.)) + 0x00001e34 PROVIDE (etext, ABSOLUTE (.)) + *(.eh_frame_hdr) + 0x00001e34 . = ALIGN (0x4) + 0x00001e34 PROVIDE (__preinit_array_start, ABSOLUTE (.)) + *(.preinit_array) + 0x00001e34 PROVIDE (__preinit_array_end, ABSOLUTE (.)) + 0x00001e34 PROVIDE (__init_array_start, ABSOLUTE (.)) + *(.init_array) + 0x00001e34 PROVIDE (__init_array_end, ABSOLUTE (.)) + 0x00001e34 PROVIDE (__fini_array_start, ABSOLUTE (.)) + *(.fini_array) + 0x00001e34 PROVIDE (__fini_array_end, ABSOLUTE (.)) + *(.eh_frame) + *(.gcc_except_table) + *(.dynamic) + 0x00001e34 PROVIDE (__CTOR_LIST__, ABSOLUTE (.)) + *(.ctors) + *(SORT(.ctors.*)) + 0x00001e34 PROVIDE (__CTOR_END__, ABSOLUTE (.)) + 0x00001e34 PROVIDE (__DTOR_LIST__, ABSOLUTE (.)) + *(.dtors) + *(SORT(.dtors.*)) + 0x00001e34 PROVIDE (__DTOR_END__, ABSOLUTE (.)) + *(.jcr) + 0x00001e34 . = ALIGN (0x4) + +.rodata 0x00001e34 0x2f0 + 0x00001e34 PROVIDE (__ram_rodata_start, ABSOLUTE (.)) + 0x00001e34 . = ALIGN (0x4) + *(.rodata .rodata.* .gnu.linkonce.r.*) + .rodata.str1.4 + 0x00001e34 0x55 obj/default/hello_world_small.o + 0x58 (size before relaxing) + *fill* 0x00001e89 0x3 00 + .rodata.str1.4 + 0x00001e8c 0xb obj/default/hex_out.o + 0xc (size before relaxing) + .rodata.str1.4 + 0x00000000 0x8 obj/default/inst_decoder.o + *fill* 0x00001e97 0x1 00 + .rodata.str1.4 + 0x00001e98 0x8 obj/default/system.o + .rodata 0x00001ea0 0x281 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-ctype_.o) + 0x00001ea0 _ctype_ + *(.rodata1) + 0x00002124 . = ALIGN (0x4) + *fill* 0x00002121 0x3 00 + 0x00002124 PROVIDE (__ram_rodata_end, ABSOLUTE (.)) + 0x00001e34 PROVIDE (__flash_rodata_start, LOADADDR (.rodata)) + +.rwdata 0x00002124 0xf0 load address 0x00002214 + 0x00002124 PROVIDE (__ram_rwdata_start, ABSOLUTE (.)) + 0x00002124 . = ALIGN (0x4) + *(.got.plt) + *(.got) + *(.data1) + *(.data .data.* .gnu.linkonce.d.*) + .data 0x00002124 0x0 ../qsys_tutorial_lcd2_bsp//obj/HAL/src/crt0.o + .data 0x00002124 0x0 obj/default/hello_world_small.o + .data 0x00002124 0x0 obj/default/hex_encoder.o + .data 0x00002124 0x0 obj/default/hex_out.o + .data 0x00002124 0x0 obj/default/input_int.o + .data 0x00002124 0x0 obj/default/inst_decoder.o + .data 0x00002124 0x0 obj/default/sys_memory.o + .data 0x00002124 0x0 obj/default/sys_register.o + .data 0x00002124 0x0 obj/default/system.o + .data 0x00002124 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-divmod.o) + .data 0x00002124 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-mul.o) + .data 0x00002124 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-ctype_.o) + .data 0x00002124 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-sprintf.o) + .data 0x00002124 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-strlen.o) + .data 0x00002124 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-vfprintf.o) + .data 0x00002124 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-fvwrite_small_str.o) + .data 0x00002124 0xe0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-impure.o) + .data 0x00002204 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-memmove.o) + .data 0x00002204 0x0 ../qsys_tutorial_lcd2_bsp/\libhal_bsp.a(alt_load.o) + .data 0x00002204 0x0 ../qsys_tutorial_lcd2_bsp/\libhal_bsp.a(alt_main.o) + .data 0x00002204 0x0 ../qsys_tutorial_lcd2_bsp/\libhal_bsp.a(alt_usleep.o) + .data 0x00002204 0x0 ../qsys_tutorial_lcd2_bsp/\libhal_bsp.a(alt_sys_init.o) + .data 0x00002204 0x0 ../qsys_tutorial_lcd2_bsp/\libhal_bsp.a(alt_busy_sleep.o) + .data 0x00002204 0x0 ../qsys_tutorial_lcd2_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) + .data 0x00002204 0x0 ../qsys_tutorial_lcd2_bsp/\libhal_bsp.a(alt_icache_flush_all.o) + .data 0x00002204 0x0 ../qsys_tutorial_lcd2_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) + 0x0000a204 _gp = ABSOLUTE ((. + 0x8000)) + 0x0000a204 PROVIDE (gp, _gp) + *(.rwdata .rwdata.*) + *(.sdata .sdata.* .gnu.linkonce.s.*) + .sdata 0x00002204 0x4 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-ctype_.o) + 0x00002204 __ctype_ptr + .sdata 0x00002208 0x8 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-impure.o) + 0x00002208 _impure_ptr + 0x0000220c _global_impure_ptr + .sdata 0x00002210 0x4 ../qsys_tutorial_lcd2_bsp/\libhal_bsp.a(alt_sys_init.o) + 0x00002210 jtag_uart + *(.sdata2 .sdata2.* .gnu.linkonce.s2.*) + 0x00002214 . = ALIGN (0x4) + 0x00002214 _edata = ABSOLUTE (.) + 0x00002214 PROVIDE (edata, ABSOLUTE (.)) + 0x00002214 PROVIDE (__ram_rwdata_end, ABSOLUTE (.)) + 0x00002214 PROVIDE (__flash_rwdata_start, LOADADDR (.rwdata)) + +.bss 0x00002304 0x174 + 0x00002304 __bss_start = ABSOLUTE (.) + 0x00002304 PROVIDE (__sbss_start, ABSOLUTE (.)) + 0x00002304 PROVIDE (___sbss_start, ABSOLUTE (.)) + *(.dynsbss) + *(.sbss .sbss.* .gnu.linkonce.sb.*) + .sbss 0x00002304 0x5 obj/default/hello_world_small.o + 0x00002304 stack + *fill* 0x00002309 0x3 00 + .sbss 0x0000230c 0xc obj/default/input_int.o + 0x0000230c PUSH_EVENT + .sbss 0x00002318 0x4 obj/default/sys_memory.o + 0x00002318 global_current_memory + .sbss 0x0000231c 0xc ../qsys_tutorial_lcd2_bsp/\libhal_bsp.a(alt_main.o) + 0x0000231c alt_argc + 0x00002320 alt_argv + 0x00002324 alt_envp + *(.sbss2 .sbss2.* .gnu.linkonce.sb2.*) + *(.scommon) + 0x00002328 PROVIDE (__sbss_end, ABSOLUTE (.)) + 0x00002328 PROVIDE (___sbss_end, ABSOLUTE (.)) + *(.dynbss) + *(.bss .bss.* .gnu.linkonce.b.*) + .bss 0x00002328 0x0 ../qsys_tutorial_lcd2_bsp//obj/HAL/src/crt0.o + .bss 0x00002328 0x0 obj/default/hello_world_small.o + .bss 0x00002328 0x0 obj/default/hex_encoder.o + .bss 0x00002328 0x0 obj/default/hex_out.o + .bss 0x00002328 0x0 obj/default/input_int.o + .bss 0x00002328 0x0 obj/default/inst_decoder.o + .bss 0x00002328 0x140 obj/default/sys_memory.o + .bss 0x00002468 0x0 obj/default/sys_register.o + .bss 0x00002468 0x0 obj/default/system.o + .bss 0x00002468 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-divmod.o) + .bss 0x00002468 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-mul.o) + .bss 0x00002468 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-ctype_.o) + .bss 0x00002468 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-sprintf.o) + .bss 0x00002468 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-strlen.o) + .bss 0x00002468 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-vfprintf.o) + .bss 0x00002468 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-fvwrite_small_str.o) + .bss 0x00002468 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-impure.o) + .bss 0x00002468 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-memmove.o) + .bss 0x00002468 0x0 ../qsys_tutorial_lcd2_bsp/\libhal_bsp.a(alt_load.o) + .bss 0x00002468 0x0 ../qsys_tutorial_lcd2_bsp/\libhal_bsp.a(alt_main.o) + .bss 0x00002468 0x0 ../qsys_tutorial_lcd2_bsp/\libhal_bsp.a(alt_usleep.o) + .bss 0x00002468 0x0 ../qsys_tutorial_lcd2_bsp/\libhal_bsp.a(alt_sys_init.o) + .bss 0x00002468 0x0 ../qsys_tutorial_lcd2_bsp/\libhal_bsp.a(alt_busy_sleep.o) + .bss 0x00002468 0x0 ../qsys_tutorial_lcd2_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) + .bss 0x00002468 0x0 ../qsys_tutorial_lcd2_bsp/\libhal_bsp.a(alt_icache_flush_all.o) + .bss 0x00002468 0x0 ../qsys_tutorial_lcd2_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) + *(COMMON) + COMMON 0x00002468 0xf obj/default/sys_register.o + 0x00002468 global_registers + 0x00002478 . = ALIGN (0x4) + *fill* 0x00002477 0x1 00 + 0x00002478 __bss_end = ABSOLUTE (.) + +.onchip_memory 0x00002478 0x0 + 0x00002478 PROVIDE (_alt_partition_onchip_memory_start, ABSOLUTE (.)) + *(.onchip_memory. onchip_memory.*) + 0x00002478 . = ALIGN (0x4) + 0x00002478 PROVIDE (_alt_partition_onchip_memory_end, ABSOLUTE (.)) + 0x00002478 _end = ABSOLUTE (.) + 0x00002478 end = ABSOLUTE (.) + 0x00002478 __alt_stack_base = ABSOLUTE (.) + 0x00002478 PROVIDE (_alt_partition_onchip_memory_load_addr, LOADADDR (.onchip_memory)) + +.stab + *(.stab) + +.stabstr + *(.stabstr) + +.stab.excl + *(.stab.excl) + +.stab.exclstr + *(.stab.exclstr) + +.stab.index + *(.stab.index) + +.stab.indexstr + *(.stab.indexstr) + +.comment 0x00000000 0x26 + *(.comment) + .comment 0x00000000 0x26 obj/default/hello_world_small.o + 0x27 (size before relaxing) + .comment 0x00000000 0x27 obj/default/hex_encoder.o + .comment 0x00000000 0x27 obj/default/hex_out.o + .comment 0x00000000 0x27 obj/default/input_int.o + .comment 0x00000000 0x27 obj/default/inst_decoder.o + .comment 0x00000000 0x27 obj/default/sys_memory.o + .comment 0x00000000 0x27 obj/default/sys_register.o + .comment 0x00000000 0x27 obj/default/system.o + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-divmod.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-mul.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-ctype_.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-sprintf.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-strlen.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-vfprintf.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-fvwrite_small_str.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-impure.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-memmove.o) + .comment 0x00000000 0x27 ../qsys_tutorial_lcd2_bsp/\libhal_bsp.a(alt_load.o) + .comment 0x00000000 0x27 ../qsys_tutorial_lcd2_bsp/\libhal_bsp.a(alt_main.o) + .comment 0x00000000 0x27 ../qsys_tutorial_lcd2_bsp/\libhal_bsp.a(alt_usleep.o) + .comment 0x00000000 0x27 ../qsys_tutorial_lcd2_bsp/\libhal_bsp.a(alt_sys_init.o) + .comment 0x00000000 0x27 ../qsys_tutorial_lcd2_bsp/\libhal_bsp.a(alt_busy_sleep.o) + .comment 0x00000000 0x27 ../qsys_tutorial_lcd2_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) + .comment 0x00000000 0x27 ../qsys_tutorial_lcd2_bsp/\libhal_bsp.a(alt_icache_flush_all.o) + .comment 0x00000000 0x27 ../qsys_tutorial_lcd2_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) + +.debug + *(.debug) + +.line + *(.line) + +.debug_srcinfo + *(.debug_srcinfo) + +.debug_sfnames + *(.debug_sfnames) + +.debug_aranges 0x00000000 0x308 + *(.debug_aranges) + .debug_aranges + 0x00000000 0x28 ../qsys_tutorial_lcd2_bsp//obj/HAL/src/crt0.o + .debug_aranges + 0x00000028 0x20 obj/default/hello_world_small.o + .debug_aranges + 0x00000048 0x20 obj/default/hex_encoder.o + .debug_aranges + 0x00000068 0x20 obj/default/hex_out.o + .debug_aranges + 0x00000088 0x20 obj/default/input_int.o + .debug_aranges + 0x000000a8 0x20 obj/default/inst_decoder.o + .debug_aranges + 0x000000c8 0x20 obj/default/sys_memory.o + .debug_aranges + 0x000000e8 0x20 obj/default/sys_register.o + .debug_aranges + 0x00000108 0x20 obj/default/system.o + .debug_aranges + 0x00000128 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-divmod.o) + .debug_aranges + 0x00000148 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-mul.o) + .debug_aranges + 0x00000168 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-sprintf.o) + .debug_aranges + 0x00000188 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-strlen.o) + .debug_aranges + 0x000001a8 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-vfprintf.o) + .debug_aranges + 0x000001c8 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-fvwrite_small_str.o) + .debug_aranges + 0x000001e8 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-memmove.o) + .debug_aranges + 0x00000208 0x20 ../qsys_tutorial_lcd2_bsp/\libhal_bsp.a(alt_load.o) + .debug_aranges + 0x00000228 0x20 ../qsys_tutorial_lcd2_bsp/\libhal_bsp.a(alt_main.o) + .debug_aranges + 0x00000248 0x20 ../qsys_tutorial_lcd2_bsp/\libhal_bsp.a(alt_usleep.o) + .debug_aranges + 0x00000268 0x20 ../qsys_tutorial_lcd2_bsp/\libhal_bsp.a(alt_sys_init.o) + .debug_aranges + 0x00000288 0x20 ../qsys_tutorial_lcd2_bsp/\libhal_bsp.a(alt_busy_sleep.o) + .debug_aranges + 0x000002a8 0x20 ../qsys_tutorial_lcd2_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) + .debug_aranges + 0x000002c8 0x20 ../qsys_tutorial_lcd2_bsp/\libhal_bsp.a(alt_icache_flush_all.o) + .debug_aranges + 0x000002e8 0x20 ../qsys_tutorial_lcd2_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) + +.debug_pubnames + 0x00000000 0x5fb + *(.debug_pubnames) + .debug_pubnames + 0x00000000 0x7b obj/default/hello_world_small.o + .debug_pubnames + 0x0000007b 0x34 obj/default/hex_encoder.o + .debug_pubnames + 0x000000af 0x43 obj/default/hex_out.o + .debug_pubnames + 0x000000f2 0x49 obj/default/input_int.o + .debug_pubnames + 0x0000013b 0xcc obj/default/inst_decoder.o + .debug_pubnames + 0x00000207 0x88 obj/default/sys_memory.o + .debug_pubnames + 0x0000028f 0x3a obj/default/sys_register.o + .debug_pubnames + 0x000002c9 0x1c obj/default/system.o + .debug_pubnames + 0x000002e5 0x48 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-divmod.o) + .debug_pubnames + 0x0000032d 0x1f c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-mul.o) + .debug_pubnames + 0x0000034c 0x2e c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-ctype_.o) + .debug_pubnames + 0x0000037a 0x2d c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-sprintf.o) + .debug_pubnames + 0x000003a7 0x1d c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-strlen.o) + .debug_pubnames + 0x000003c4 0x45 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-vfprintf.o) + .debug_pubnames + 0x00000409 0x2b c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-fvwrite_small_str.o) + .debug_pubnames + 0x00000434 0x39 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-impure.o) + .debug_pubnames + 0x0000046d 0x1e c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-memmove.o) + .debug_pubnames + 0x0000048b 0x1f ../qsys_tutorial_lcd2_bsp/\libhal_bsp.a(alt_load.o) + .debug_pubnames + 0x000004aa 0x46 ../qsys_tutorial_lcd2_bsp/\libhal_bsp.a(alt_main.o) + .debug_pubnames + 0x000004f0 0x1d ../qsys_tutorial_lcd2_bsp/\libhal_bsp.a(alt_usleep.o) + .debug_pubnames + 0x0000050d 0x42 ../qsys_tutorial_lcd2_bsp/\libhal_bsp.a(alt_sys_init.o) + .debug_pubnames + 0x0000054f 0x25 ../qsys_tutorial_lcd2_bsp/\libhal_bsp.a(alt_busy_sleep.o) + .debug_pubnames + 0x00000574 0x2b ../qsys_tutorial_lcd2_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) + .debug_pubnames + 0x0000059f 0x2b ../qsys_tutorial_lcd2_bsp/\libhal_bsp.a(alt_icache_flush_all.o) + .debug_pubnames + 0x000005ca 0x31 ../qsys_tutorial_lcd2_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) + +.debug_info 0x00000000 0x448e + *(.debug_info .gnu.linkonce.wi.*) + .debug_info 0x00000000 0x82 ../qsys_tutorial_lcd2_bsp//obj/HAL/src/crt0.o + .debug_info 0x00000082 0xbca obj/default/hello_world_small.o + .debug_info 0x00000c4c 0xd2 obj/default/hex_encoder.o + .debug_info 0x00000d1e 0x145 obj/default/hex_out.o + .debug_info 0x00000e63 0x245 obj/default/input_int.o + .debug_info 0x000010a8 0x526 obj/default/inst_decoder.o + .debug_info 0x000015ce 0x272 obj/default/sys_memory.o + .debug_info 0x00001840 0x7d obj/default/sys_register.o + .debug_info 0x000018bd 0x3a obj/default/system.o + .debug_info 0x000018f7 0x21c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-divmod.o) + .debug_info 0x00001b13 0xf3 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-mul.o) + .debug_info 0x00001c06 0xa0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-ctype_.o) + .debug_info 0x00001ca6 0x7e7 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-sprintf.o) + .debug_info 0x0000248d 0xc2 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-strlen.o) + .debug_info 0x0000254f 0x9b6 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-vfprintf.o) + .debug_info 0x00002f05 0x75f c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-fvwrite_small_str.o) + .debug_info 0x00003664 0x636 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-impure.o) + .debug_info 0x00003c9a 0x102 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-memmove.o) + .debug_info 0x00003d9c 0x12e ../qsys_tutorial_lcd2_bsp/\libhal_bsp.a(alt_load.o) + .debug_info 0x00003eca 0x125 ../qsys_tutorial_lcd2_bsp/\libhal_bsp.a(alt_main.o) + .debug_info 0x00003fef 0xab ../qsys_tutorial_lcd2_bsp/\libhal_bsp.a(alt_usleep.o) + .debug_info 0x0000409a 0x17d ../qsys_tutorial_lcd2_bsp/\libhal_bsp.a(alt_sys_init.o) + .debug_info 0x00004217 0xd0 ../qsys_tutorial_lcd2_bsp/\libhal_bsp.a(alt_busy_sleep.o) + .debug_info 0x000042e7 0x8d ../qsys_tutorial_lcd2_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) + .debug_info 0x00004374 0x8d ../qsys_tutorial_lcd2_bsp/\libhal_bsp.a(alt_icache_flush_all.o) + .debug_info 0x00004401 0x8d ../qsys_tutorial_lcd2_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) + +.debug_abbrev 0x00000000 0x15a3 + *(.debug_abbrev) + .debug_abbrev 0x00000000 0x12 ../qsys_tutorial_lcd2_bsp//obj/HAL/src/crt0.o + .debug_abbrev 0x00000012 0x21e obj/default/hello_world_small.o + .debug_abbrev 0x00000230 0x9e obj/default/hex_encoder.o + .debug_abbrev 0x000002ce 0xc7 obj/default/hex_out.o + .debug_abbrev 0x00000395 0x185 obj/default/input_int.o + .debug_abbrev 0x0000051a 0x186 obj/default/inst_decoder.o + .debug_abbrev 0x000006a0 0x13d obj/default/sys_memory.o + .debug_abbrev 0x000007dd 0x6f obj/default/sys_register.o + .debug_abbrev 0x0000084c 0x27 obj/default/system.o + .debug_abbrev 0x00000873 0xe0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-divmod.o) + .debug_abbrev 0x00000953 0x7b c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-mul.o) + .debug_abbrev 0x000009ce 0x61 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-ctype_.o) + .debug_abbrev 0x00000a2f 0x179 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-sprintf.o) + .debug_abbrev 0x00000ba8 0x7a c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-strlen.o) + .debug_abbrev 0x00000c22 0x263 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-vfprintf.o) + .debug_abbrev 0x00000e85 0x184 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-fvwrite_small_str.o) + .debug_abbrev 0x00001009 0x13f c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-impure.o) + .debug_abbrev 0x00001148 0xa8 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-memmove.o) + .debug_abbrev 0x000011f0 0x97 ../qsys_tutorial_lcd2_bsp/\libhal_bsp.a(alt_load.o) + .debug_abbrev 0x00001287 0xa6 ../qsys_tutorial_lcd2_bsp/\libhal_bsp.a(alt_main.o) + .debug_abbrev 0x0000132d 0x5d ../qsys_tutorial_lcd2_bsp/\libhal_bsp.a(alt_usleep.o) + .debug_abbrev 0x0000138a 0xe3 ../qsys_tutorial_lcd2_bsp/\libhal_bsp.a(alt_sys_init.o) + .debug_abbrev 0x0000146d 0x79 ../qsys_tutorial_lcd2_bsp/\libhal_bsp.a(alt_busy_sleep.o) + .debug_abbrev 0x000014e6 0x3f ../qsys_tutorial_lcd2_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) + .debug_abbrev 0x00001525 0x3f ../qsys_tutorial_lcd2_bsp/\libhal_bsp.a(alt_icache_flush_all.o) + .debug_abbrev 0x00001564 0x3f ../qsys_tutorial_lcd2_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) + +.debug_line 0x00000000 0x3d56 + *(.debug_line) + .debug_line 0x00000000 0x66 ../qsys_tutorial_lcd2_bsp//obj/HAL/src/crt0.o + .debug_line 0x00000066 0x6a9 obj/default/hello_world_small.o + .debug_line 0x0000070f 0x2b7 obj/default/hex_encoder.o + .debug_line 0x000009c6 0x1f5 obj/default/hex_out.o + .debug_line 0x00000bbb 0x1d9 obj/default/input_int.o + .debug_line 0x00000d94 0x44c obj/default/inst_decoder.o + .debug_line 0x000011e0 0x18f obj/default/sys_memory.o + .debug_line 0x0000136f 0x87 obj/default/sys_register.o + .debug_line 0x000013f6 0x94 obj/default/system.o + .debug_line 0x0000148a 0x24f c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-divmod.o) + .debug_line 0x000016d9 0x11a c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-mul.o) + .debug_line 0x000017f3 0x81 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-ctype_.o) + .debug_line 0x00001874 0x365 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-sprintf.o) + .debug_line 0x00001bd9 0x250 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-strlen.o) + .debug_line 0x00001e29 0x666 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-vfprintf.o) + .debug_line 0x0000248f 0x2cf c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-fvwrite_small_str.o) + .debug_line 0x0000275e 0x230 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-impure.o) + .debug_line 0x0000298e 0x294 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-memmove.o) + .debug_line 0x00002c22 0x217 ../qsys_tutorial_lcd2_bsp/\libhal_bsp.a(alt_load.o) + .debug_line 0x00002e39 0x2c2 ../qsys_tutorial_lcd2_bsp/\libhal_bsp.a(alt_main.o) + .debug_line 0x000030fb 0x202 ../qsys_tutorial_lcd2_bsp/\libhal_bsp.a(alt_usleep.o) + .debug_line 0x000032fd 0x2c3 ../qsys_tutorial_lcd2_bsp/\libhal_bsp.a(alt_sys_init.o) + .debug_line 0x000035c0 0x25e ../qsys_tutorial_lcd2_bsp/\libhal_bsp.a(alt_busy_sleep.o) + .debug_line 0x0000381e 0x1b5 ../qsys_tutorial_lcd2_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) + .debug_line 0x000039d3 0x1b5 ../qsys_tutorial_lcd2_bsp/\libhal_bsp.a(alt_icache_flush_all.o) + .debug_line 0x00003b88 0x1ce ../qsys_tutorial_lcd2_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) + +.debug_frame 0x00000000 0x630 + *(.debug_frame) + .debug_frame 0x00000000 0xd0 obj/default/hello_world_small.o + .debug_frame 0x000000d0 0x30 obj/default/hex_encoder.o + .debug_frame 0x00000100 0x5c obj/default/hex_out.o + .debug_frame 0x0000015c 0x44 obj/default/input_int.o + .debug_frame 0x000001a0 0xf0 obj/default/inst_decoder.o + .debug_frame 0x00000290 0x78 obj/default/sys_memory.o + .debug_frame 0x00000308 0x20 obj/default/sys_register.o + .debug_frame 0x00000328 0x28 obj/default/system.o + .debug_frame 0x00000350 0x70 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-divmod.o) + .debug_frame 0x000003c0 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-mul.o) + .debug_frame 0x000003e0 0x40 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-sprintf.o) + .debug_frame 0x00000420 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-strlen.o) + .debug_frame 0x00000440 0x64 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-vfprintf.o) + .debug_frame 0x000004a4 0x2c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-fvwrite_small_str.o) + .debug_frame 0x000004d0 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-memmove.o) + .debug_frame 0x000004f0 0x38 ../qsys_tutorial_lcd2_bsp/\libhal_bsp.a(alt_load.o) + .debug_frame 0x00000528 0x28 ../qsys_tutorial_lcd2_bsp/\libhal_bsp.a(alt_main.o) + .debug_frame 0x00000550 0x20 ../qsys_tutorial_lcd2_bsp/\libhal_bsp.a(alt_usleep.o) + .debug_frame 0x00000570 0x38 ../qsys_tutorial_lcd2_bsp/\libhal_bsp.a(alt_sys_init.o) + .debug_frame 0x000005a8 0x28 ../qsys_tutorial_lcd2_bsp/\libhal_bsp.a(alt_busy_sleep.o) + .debug_frame 0x000005d0 0x20 ../qsys_tutorial_lcd2_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) + .debug_frame 0x000005f0 0x20 ../qsys_tutorial_lcd2_bsp/\libhal_bsp.a(alt_icache_flush_all.o) + .debug_frame 0x00000610 0x20 ../qsys_tutorial_lcd2_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) + +.debug_str 0x00000000 0x12cb + *(.debug_str) + .debug_str 0x00000000 0x51e obj/default/hello_world_small.o + 0x5a7 (size before relaxing) + .debug_str 0x0000051e 0x42 obj/default/hex_encoder.o + 0xa0 (size before relaxing) + .debug_str 0x00000560 0x54 obj/default/hex_out.o + 0xd6 (size before relaxing) + .debug_str 0x000005b4 0xe2 obj/default/input_int.o + 0x194 (size before relaxing) + .debug_str 0x00000696 0x107 obj/default/inst_decoder.o + 0x227 (size before relaxing) + .debug_str 0x0000079d 0x51 obj/default/sys_memory.o + 0x1a7 (size before relaxing) + .debug_str 0x000007ee 0x1e obj/default/sys_register.o + 0x9f (size before relaxing) + .debug_str 0x0000080c 0xf obj/default/system.o + 0x68 (size before relaxing) + .debug_str 0x0000081b 0x10b c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-divmod.o) + 0x1b4 (size before relaxing) + .debug_str 0x00000926 0x37 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-mul.o) + 0x175 (size before relaxing) + .debug_str 0x0000095d 0xea c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-ctype_.o) + 0x119 (size before relaxing) + .debug_str 0x00000a47 0x16b c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-sprintf.o) + 0x499 (size before relaxing) + .debug_str 0x00000bb2 0xe9 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-strlen.o) + 0x184 (size before relaxing) + .debug_str 0x00000c9b 0x162 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-vfprintf.o) + 0x5af (size before relaxing) + .debug_str 0x00000dfd 0x5d c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-fvwrite_small_str.o) + 0x487 (size before relaxing) + .debug_str 0x00000e5a 0xf8 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-impure.o) + 0x45d (size before relaxing) + .debug_str 0x00000f52 0x60 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-memmove.o) + 0x199 (size before relaxing) + .debug_str 0x00000fb2 0x13a ../qsys_tutorial_lcd2_bsp/\libhal_bsp.a(alt_load.o) + 0x1d7 (size before relaxing) + .debug_str 0x000010ec 0x44 ../qsys_tutorial_lcd2_bsp/\libhal_bsp.a(alt_main.o) + 0x15b (size before relaxing) + .debug_str 0x00001130 0x27 ../qsys_tutorial_lcd2_bsp/\libhal_bsp.a(alt_usleep.o) + 0x10d (size before relaxing) + .debug_str 0x00001157 0x8f ../qsys_tutorial_lcd2_bsp/\libhal_bsp.a(alt_sys_init.o) + 0x1ce (size before relaxing) + .debug_str 0x000011e6 0x42 ../qsys_tutorial_lcd2_bsp/\libhal_bsp.a(alt_busy_sleep.o) + 0x130 (size before relaxing) + .debug_str 0x00001228 0x34 ../qsys_tutorial_lcd2_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) + 0x11a (size before relaxing) + .debug_str 0x0000125c 0x34 ../qsys_tutorial_lcd2_bsp/\libhal_bsp.a(alt_icache_flush_all.o) + 0x11a (size before relaxing) + .debug_str 0x00001290 0x3b ../qsys_tutorial_lcd2_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) + 0x121 (size before relaxing) + +.debug_loc 0x00000000 0x180f + *(.debug_loc) + .debug_loc 0x00000000 0x18a obj/default/hello_world_small.o + .debug_loc 0x0000018a 0x3b9 obj/default/hex_encoder.o + .debug_loc 0x00000543 0x24c obj/default/hex_out.o + .debug_loc 0x0000078f 0x52 obj/default/input_int.o + .debug_loc 0x000007e1 0x192 obj/default/inst_decoder.o + .debug_loc 0x00000973 0x105 obj/default/sys_memory.o + .debug_loc 0x00000a78 0x1f obj/default/system.o + .debug_loc 0x00000a97 0x1d2 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-divmod.o) + .debug_loc 0x00000c69 0x4f c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-mul.o) + .debug_loc 0x00000cb8 0xbe c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-sprintf.o) + .debug_loc 0x00000d76 0x1e c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-strlen.o) + .debug_loc 0x00000d94 0x878 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-vfprintf.o) + .debug_loc 0x0000160c 0xe1 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-fvwrite_small_str.o) + .debug_loc 0x000016ed 0x4f c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-memmove.o) + .debug_loc 0x0000173c 0x1f ../qsys_tutorial_lcd2_bsp/\libhal_bsp.a(alt_load.o) + .debug_loc 0x0000175b 0x1f ../qsys_tutorial_lcd2_bsp/\libhal_bsp.a(alt_main.o) + .debug_loc 0x0000177a 0x13 ../qsys_tutorial_lcd2_bsp/\libhal_bsp.a(alt_usleep.o) + .debug_loc 0x0000178d 0x32 ../qsys_tutorial_lcd2_bsp/\libhal_bsp.a(alt_sys_init.o) + .debug_loc 0x000017bf 0x50 ../qsys_tutorial_lcd2_bsp/\libhal_bsp.a(alt_busy_sleep.o) + +.debug_macinfo + *(.debug_macinfo) + +.debug_weaknames + *(.debug_weaknames) + +.debug_funcnames + *(.debug_funcnames) + +.debug_typenames + *(.debug_typenames) + +.debug_varnames + *(.debug_varnames) + +.debug_alt_sim_info + 0x00000000 0x40 + *(.debug_alt_sim_info) + .debug_alt_sim_info + 0x00000000 0x10 ../qsys_tutorial_lcd2_bsp//obj/HAL/src/crt0.o + .debug_alt_sim_info + 0x00000010 0x30 ../qsys_tutorial_lcd2_bsp/\libhal_bsp.a(alt_busy_sleep.o) + 0x00004000 __alt_data_end = 0x4000 + 0x00004000 PROVIDE (__alt_stack_pointer, __alt_data_end) + 0x00002478 PROVIDE (__alt_stack_limit, __alt_stack_base) + 0x00002478 PROVIDE (__alt_heap_start, end) + 0x00004000 PROVIDE (__alt_heap_limit, 0x4000) +OUTPUT(qsys_tutorial_lcd2.elf elf32-littlenios2) + +.debug_ranges 0x00000000 0x190 + .debug_ranges 0x00000000 0x20 ../qsys_tutorial_lcd2_bsp//obj/HAL/src/crt0.o + .debug_ranges 0x00000020 0x18 obj/default/hello_world_small.o + .debug_ranges 0x00000038 0x140 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-vfprintf.o) + .debug_ranges 0x00000178 0x18 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-fvwrite_small_str.o) diff --git a/software/qsys_tutorial_lcd2/readme.txt b/software/qsys_tutorial_lcd2/readme.txt new file mode 100644 index 0000000..3dc3186 --- /dev/null +++ b/software/qsys_tutorial_lcd2/readme.txt @@ -0,0 +1,67 @@ +Readme - Hello World Software Example + +DESCRIPTION: +Simple program that prints "Hello from Nios II" + +The purpose of this example is to demonstrate the smallest possible Hello +World application, using the Nios II HAL BSP. The memory footprint +of this hosted application is intended to be less than 1 kbytes by default using a standard +reference design. For a more fully featured Hello World application +example, see the example titled "Hello World". + +The memory footprint of this example has been reduced by making the +following changes to the normal "Hello World" example. +Check in the Nios II Software Developers Handbook for a more complete +description. + +In the SW Application project: + - In the C/C++ Build page + - Set the Optimization Level to -Os + +In BSP project: + - In the C/C++ Build page + + - Set the Optimization Level to -Os + + - Define the preprocessor option ALT_NO_INSTRUCTION_EMULATION + This removes software exception handling, which means that you cannot + run code compiled for Nios II cpu with a hardware multiplier on a core + without a the multiply unit. Check the Nios II Software Developers + Manual for more details. + + - In the BSP: + - Set Periodic system timer and Timestamp timer to none + This prevents the automatic inclusion of the timer driver. + + - Set Max file descriptors to 4 + This reduces the size of the file handle pool. + + - Uncheck Clean exit (flush buffers) + This removes the call to exit, and when main is exitted instead of + calling exit the software will just spin in a loop. + + - Check Small C library + This uses a reduced functionality C library, which lacks + support for buffering, file IO, floating point and getch(), etc. + Check the Nios II Software Developers Manual for a complete list. + + - Check Reduced device drivers + This uses reduced functionality drivers if they're available. For the + standard design this means you get polled UART and JTAG UART drivers, + no support for the LCD driver and you lose the ability to program + CFI compliant flash devices. + + +PERIPHERALS USED: +This example exercises the following peripherals: +- STDOUT device (UART or JTAG UART) + +SOFTWARE SOURCE FILES: +This example includes the following software source files: +- small_hello_world.c: + +BOARD/HOST REQUIREMENTS: +This example requires only a JTAG connection with a Nios Development board. If +the host communication settings are changed from JTAG UART (default) to use a +conventional UART, a serial cable between board DB-9 connector and the host is +required. diff --git a/software/qsys_tutorial_lcd2/sys_memory.c b/software/qsys_tutorial_lcd2/sys_memory.c new file mode 100644 index 0000000..c8faff6 --- /dev/null +++ b/software/qsys_tutorial_lcd2/sys_memory.c @@ -0,0 +1,58 @@ +/* + * sys_memory.c + * + * Created on: 2016/11/24 + * Author: takayun + */ +#include "system.h" +#include "sys_memory.h" +#include "sys_register.h" + +/************************************************** + * Public + **************************************************/ + +// �����������̂ǂ̃�������(0 < global_current_memory < MEMS_COUNT) +unsigned int global_current_memory = 0; + +/************************************************** + * Private + **************************************************/ + +// �����������̕ϐ� +static char memory[MEMS_COUNT][MEM_SIZE]; + +static struct InstRec inst_memory[MEMS_COUNT][MEM_SIZE]; + + +/************************************************** + * Impl + **************************************************/ + +void memory_init() { + int i, j; + for (i = 0; i < MEMS_COUNT; i++) + for (j = 0; j < MEM_SIZE; j++) { + memory[i][j] = 0; + } +} + +void inst_memory_store(unsigned int mem_addr, struct InstRec inst_rec){ + inst_memory[global_current_memory][mem_addr] = inst_rec; +} +struct InstRec inst_memory_load(unsigned int mem_addr){ + return inst_memory[global_current_memory][mem_addr]; +} + +char memory_store(unsigned int mem_addr, enum Register reg) { + if (!(mem_addr < MEM_SIZE)) panic(); + memory[global_current_memory][mem_addr] = global_registers[reg]; + return memory[global_current_memory][mem_addr]; +} + +char memory_load(unsigned int mem_addr, enum Register reg) { + if (!(mem_addr < MEM_SIZE)) panic(); + global_registers[reg] = memory[global_current_memory][mem_addr]; + return global_registers[reg]; +} + diff --git a/software/qsys_tutorial_lcd2/sys_memory.h b/software/qsys_tutorial_lcd2/sys_memory.h new file mode 100644 index 0000000..648fe11 --- /dev/null +++ b/software/qsys_tutorial_lcd2/sys_memory.h @@ -0,0 +1,67 @@ +/* + * sys_memory.h + * + * Created on: 2016/11/24 + * Author: takayun + */ + +#ifndef SYS_MEMORY_H_ +#define SYS_MEMORY_H_ + +#include "sys_register.h" +#include "inst_decoder.h" + +/************************************************** + * Defines + **************************************************/ + +// �������̐� +#define MEMS_COUNT 4 + +// 1�������̃T�C�Y +#define MEM_SIZE 16 + +/************************************************** + * Variables + **************************************************/ + +extern unsigned int global_current_memory; + +/************************************************** + * Functions + **************************************************/ + +/* Function: memory_init + * Sammary: + * ������������������(All 0) */ +void memory_init(); + +/* ���ߗp�������ɖ��߂̃X�g�A&���[�h */ + +/* Function: memory_store -> char + * Sammary: + * �������̎w��Ԓn�Ɏw�肵�����W�X�^����l���i�[���� + * Return: + * �������Ɋi�[���ꂽ�l */ +void inst_memory_store(unsigned int mem_addr, struct InstRec inst_rec); +struct InstRec inst_memory_load(unsigned int mem_addr); + + +/* ������-���W�X�^�Ԃ̑��� */ + +/* Function: memory_store -> char + * Sammary: + * �������̎w��Ԓn�Ɏw�肵�����W�X�^����l���i�[���� + * Return: + * �������Ɋi�[���ꂽ�l */ +char memory_store(unsigned int mem_addr, enum Register reg); + +/* Function: memory_store -> char + * Sammary: + * �w�肵�����W�X�^�Ƀ������̎w��Ԓn����l���i�[���� + * Return: + * ���W�X�^�Ɋi�[���ꂽ�l */ +char memory_load(unsigned int mem_addr, enum Register reg); + + +#endif /* SYS_MEMORY_H_ */ diff --git a/software/qsys_tutorial_lcd2/sys_register.c b/software/qsys_tutorial_lcd2/sys_register.c new file mode 100644 index 0000000..84ed485 --- /dev/null +++ b/software/qsys_tutorial_lcd2/sys_register.c @@ -0,0 +1,17 @@ +/* + * sys_register.c + * + * Created on: 2016/11/24 + * Author: takayun + */ +#include "sys_register.h" + +char global_registers[REG_MAX_COUNT]; + +void registers_init() { + int i; + for (i = 0; i < REG_MAX_COUNT; i++) global_registers[i] = 0; +} + + + diff --git a/software/qsys_tutorial_lcd2/sys_register.h b/software/qsys_tutorial_lcd2/sys_register.h new file mode 100644 index 0000000..65ad219 --- /dev/null +++ b/software/qsys_tutorial_lcd2/sys_register.h @@ -0,0 +1,54 @@ +/* + * sys_register.h + * + * Created on: 2016/11/24 + * Author: takayun + */ + +#ifndef SYS_REGISTER_H_ +#define SYS_REGISTER_H_ + +/************************************************** + * Defines + **************************************************/ + +// ���W�X�^�̒�` +enum Register { + /* �ʏ�̃��W�X�^ */ + Szero, //�[�����W�X�^ + Spc, //�v���O�����J�E���^ + Ssp, //�X�^�b�N�|�C���^ + Sgp0, //�ėp���W�X�^0 + Sgp1, //�ėp���W�X�^1 + Sacc, //�A�L�������[�^ + Sflg, //�t���O���W�X�^ + /* �X�C�b�`�ǂݏo���p���W�X�^ */ + Ssw_data, //�f�[�^(8bit) + Ssw_inst, //����(4bit) + Ssw_regi, //���W�X�^�ԍ�(4bit) + Ssw_memi, //�������Ԓn(4bit) + Ssw_psel, //�v���O�����Z���N�^(4bit) + Ssw_rw, //�ǂݏ������[�h(1bit) + Ssw_run, //���s���[�h(1bit) + /* 7�Z�O�p���W�X�^ */ + Sseg, + + /* �z��錾�p */ + REG_MAX_COUNT +}; + +/************************************************** + * Variables + **************************************************/ + +// ���W�X�^�p�̕ϐ� +extern char global_registers[REG_MAX_COUNT]; + +/************************************************** + * Functions + **************************************************/ + +void registers_init(); + + +#endif /* SYS_REGISTER_H_ */ diff --git a/software/qsys_tutorial_lcd2/system.c b/software/qsys_tutorial_lcd2/system.c new file mode 100644 index 0000000..30713dd --- /dev/null +++ b/software/qsys_tutorial_lcd2/system.c @@ -0,0 +1,14 @@ +/* + * system.c + * + * Created on: 2016/11/24 + * Author: takayun + */ +#include "system.h" +#include "hex_out.h" + +void panic() { + clear_block(HEX0_3); + print_block("err ", 4, HEX0_3); +} + diff --git a/software/qsys_tutorial_lcd2/system.h b/software/qsys_tutorial_lcd2/system.h new file mode 100644 index 0000000..1a628fa --- /dev/null +++ b/software/qsys_tutorial_lcd2/system.h @@ -0,0 +1,13 @@ +/* + * system.h + * + * Created on: 2016/11/24 + * Author: takayun + */ + +#ifndef SYSTEM_H_ +#define SYSTEM_H_ + +void panic(); + +#endif /* SYSTEM_H_ */ diff --git a/software/qsys_tutorial_lcd2/system/template.xml b/software/qsys_tutorial_lcd2/system/template.xml new file mode 100644 index 0000000..b09e912 --- /dev/null +++ b/software/qsys_tutorial_lcd2/system/template.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/software/qsys_tutorial_lcd2_bsp/.cproject b/software/qsys_tutorial_lcd2_bsp/.cproject new file mode 100644 index 0000000..a8126ff --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/.cproject @@ -0,0 +1,481 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/software/qsys_tutorial_lcd2_bsp/.project b/software/qsys_tutorial_lcd2_bsp/.project new file mode 100644 index 0000000..1076844 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/.project @@ -0,0 +1,85 @@ + + + qsys_tutorial_lcd2_bsp + + + + + + org.eclipse.cdt.managedbuilder.core.genmakebuilder + clean,full,incremental, + + + ?name? + + + + org.eclipse.cdt.make.core.append_environment + true + + + org.eclipse.cdt.make.core.autoBuildTarget + all + + + org.eclipse.cdt.make.core.buildArguments + + + + org.eclipse.cdt.make.core.buildCommand + make + + + org.eclipse.cdt.make.core.buildLocation + ${workspace_loc://qsys_tutorial_lcd2_bsp} + + + org.eclipse.cdt.make.core.cleanBuildTarget + clean + + + org.eclipse.cdt.make.core.contents + org.eclipse.cdt.make.core.activeConfigSettings + + + org.eclipse.cdt.make.core.enableAutoBuild + false + + + org.eclipse.cdt.make.core.enableCleanBuild + true + + + org.eclipse.cdt.make.core.enableFullBuild + true + + + org.eclipse.cdt.make.core.fullBuildTarget + all + + + org.eclipse.cdt.make.core.stopOnError + true + + + org.eclipse.cdt.make.core.useDefaultBuildCmd + true + + + + + org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder + full,incremental, + + + + + + org.eclipse.cdt.core.cnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.managedbuilder.core.ScannerConfigNature + org.eclipse.cdt.core.ccnature + com.altera.sbtgui.project.SBTGUINature + com.altera.sbtgui.project.SBTGUIBspNature + + diff --git a/software/qsys_tutorial_lcd2_bsp/HAL/inc/alt_types.h b/software/qsys_tutorial_lcd2_bsp/HAL/inc/alt_types.h new file mode 100644 index 0000000..d02f171 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/HAL/inc/alt_types.h @@ -0,0 +1,54 @@ +#ifndef __ALT_TYPES_H__ +#define __ALT_TYPES_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/* + * Don't declare these typedefs if this file is included by assembly source. + */ +#ifndef ALT_ASM_SRC +typedef signed char alt_8; +typedef unsigned char alt_u8; +typedef signed short alt_16; +typedef unsigned short alt_u16; +typedef signed long alt_32; +typedef unsigned long alt_u32; +typedef long long alt_64; +typedef unsigned long long alt_u64; +#endif + +#define ALT_INLINE __inline__ +#define ALT_ALWAYS_INLINE __attribute__ ((always_inline)) +#define ALT_WEAK __attribute__((weak)) + +#endif /* __ALT_TYPES_H__ */ diff --git a/software/qsys_tutorial_lcd2_bsp/HAL/inc/altera_nios2_qsys_irq.h b/software/qsys_tutorial_lcd2_bsp/HAL/inc/altera_nios2_qsys_irq.h new file mode 100644 index 0000000..6629ec9 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/HAL/inc/altera_nios2_qsys_irq.h @@ -0,0 +1,80 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2009 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/* + * Support for the Nios II internal interrupt controller. + */ + +#ifndef __ALT_NIOS2_QSYS_IRQ_H__ +#define __ALT_NIOS2_QSYS_IRQ_H__ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * The macro ALTERA_NIOS2_IRQ_INSTANCE is used by the alt_irq_init() + * function in the auto-generated file alt_sys_init.c to create an + * instance of this interrupt controller device driver state if this + * module contains an interrupt controller. + * Only one instance of a Nios II is allowed so this macro is just empty. + */ + +#define ALTERA_NIOS2_QSYS_IRQ_INSTANCE(name, state) + +/* + * altera_nios2_irq_init() is called by the auto-generated function + * alt_irq_init() once for the Nios II if it contains an interrupt controller. + * The altera_nios2_irq_init() routine is called using the + * ALTERA_NIOS2_IRQ_INIT macro given below. + * + * This function initializes the internal interrupt controller + * so is not called if the Nios II contains an external interrupt + * controller port (because the internal interrupt controller + * is removed if this port is present). + */ + +extern void altera_nios2_qsys_irq_init( void ); + +/* + * The macro ALTERA_NIOS2_IRQ_INIT is used by the alt_irq_init() routine + * in the auto-generated file alt_sys_init.c to initialize an instance + * of the interrupt controller device driver state. + */ + +#define ALTERA_NIOS2_QSYS_IRQ_INIT(name, state) altera_nios2_qsys_irq_init() + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __ALT_NIOS2_QSYS_IRQ_H__ */ + diff --git a/software/qsys_tutorial_lcd2_bsp/HAL/inc/io.h b/software/qsys_tutorial_lcd2_bsp/HAL/inc/io.h new file mode 100644 index 0000000..362f103 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/HAL/inc/io.h @@ -0,0 +1,81 @@ +#ifndef __IO_H__ +#define __IO_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/* IO Header file for Nios II Toolchain */ + +#include "alt_types.h" +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +#ifndef SYSTEM_BUS_WIDTH +#error SYSTEM_BUS_WIDTH undefined +#endif + +/* Dynamic bus access functions */ + +#define __IO_CALC_ADDRESS_DYNAMIC(BASE, OFFSET) \ + ((void *)(((alt_u8*)BASE) + (OFFSET))) + +#define IORD_32DIRECT(BASE, OFFSET) \ + __builtin_ldwio (__IO_CALC_ADDRESS_DYNAMIC ((BASE), (OFFSET))) +#define IORD_16DIRECT(BASE, OFFSET) \ + __builtin_ldhuio (__IO_CALC_ADDRESS_DYNAMIC ((BASE), (OFFSET))) +#define IORD_8DIRECT(BASE, OFFSET) \ + __builtin_ldbuio (__IO_CALC_ADDRESS_DYNAMIC ((BASE), (OFFSET))) + +#define IOWR_32DIRECT(BASE, OFFSET, DATA) \ + __builtin_stwio (__IO_CALC_ADDRESS_DYNAMIC ((BASE), (OFFSET)), (DATA)) +#define IOWR_16DIRECT(BASE, OFFSET, DATA) \ + __builtin_sthio (__IO_CALC_ADDRESS_DYNAMIC ((BASE), (OFFSET)), (DATA)) +#define IOWR_8DIRECT(BASE, OFFSET, DATA) \ + __builtin_stbio (__IO_CALC_ADDRESS_DYNAMIC ((BASE), (OFFSET)), (DATA)) + +/* Native bus access functions */ + +#define __IO_CALC_ADDRESS_NATIVE(BASE, REGNUM) \ + ((void *)(((alt_u8*)BASE) + ((REGNUM) * (SYSTEM_BUS_WIDTH/8)))) + +#define IORD(BASE, REGNUM) \ + __builtin_ldwio (__IO_CALC_ADDRESS_NATIVE ((BASE), (REGNUM))) +#define IOWR(BASE, REGNUM, DATA) \ + __builtin_stwio (__IO_CALC_ADDRESS_NATIVE ((BASE), (REGNUM)), (DATA)) + +#ifdef __cplusplus +} +#endif + +#endif /* __IO_H__ */ diff --git a/software/qsys_tutorial_lcd2_bsp/HAL/inc/nios2.h b/software/qsys_tutorial_lcd2_bsp/HAL/inc/nios2.h new file mode 100644 index 0000000..72cefba --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/HAL/inc/nios2.h @@ -0,0 +1,230 @@ +#ifndef __NIOS2_H__ +#define __NIOS2_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2008 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/* + * This header provides processor specific macros for accessing the Nios2 + * control registers. + */ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * Macros for accessing selected processor registers + */ + +#define NIOS2_READ_ET(et) \ + do { __asm ("mov %0, et" : "=r" (et) ); } while (0) + +#define NIOS2_WRITE_ET(et) \ + do { __asm volatile ("mov et, %z0" : : "rM" (et)); } while (0) + +#define NIOS2_READ_SP(sp) \ + do { __asm ("mov %0, sp" : "=r" (sp) ); } while (0) + +/* + * Macros for useful processor instructions + */ + +#define NIOS2_BREAK() \ + do { __asm volatile ("break"); } while (0) + +#define NIOS2_REPORT_STACK_OVERFLOW() \ + do { __asm volatile("break 3"); } while (0) + +/* + * Macros for accessing the control registers. + */ + +#define NIOS2_READ_STATUS(dest) \ + do { dest = __builtin_rdctl(0); } while (0) + +#define NIOS2_WRITE_STATUS(src) \ + do { __builtin_wrctl(0, src); } while (0) + +#define NIOS2_READ_ESTATUS(dest) \ + do { dest = __builtin_rdctl(1); } while (0) + +#define NIOS2_READ_BSTATUS(dest) \ + do { dest = __builtin_rdctl(2); } while (0) + +#define NIOS2_READ_IENABLE(dest) \ + do { dest = __builtin_rdctl(3); } while (0) + +#define NIOS2_WRITE_IENABLE(src) \ + do { __builtin_wrctl(3, src); } while (0) + +#define NIOS2_READ_IPENDING(dest) \ + do { dest = __builtin_rdctl(4); } while (0) + +#define NIOS2_READ_CPUID(dest) \ + do { dest = __builtin_rdctl(5); } while (0) + + +/* + * Macros for accessing extra exception registers. These + * are always enabled wit the MPU or MMU, and optionally + * with other advanced exception types/ + */ +#define NIOS2_READ_EXCEPTION(dest) \ + do { dest = __builtin_rdctl(7); } while (0) + +#define NIOS2_READ_BADADDR(dest) \ + do { dest = __builtin_rdctl(12); } while (0) + + +/* + * Macros for accessing control registers for MPU + * operation. These should not be used unless the + * MPU is enabled. + * + * The config register may be augmented for future + * enhancements. For now, only MPU support is provided. + */ +/* Config register */ +#define NIOS2_WRITE_CONFIG(src) \ + do { __builtin_wrctl(13, src); } while (0) + +#define NIOS2_READ_CONFIG(dest) \ + do { dest = __builtin_rdctl(13); } while (0) + +/* MPU Base Address Register */ +#define NIOS2_WRITE_MPUBASE(src) \ + do { __builtin_wrctl(14, src); } while (0) + +#define NIOS2_READ_MPUBASE(dest) \ + do { dest = __builtin_rdctl(14); } while (0) + +/* MPU Access Register */ +#define NIOS2_WRITE_MPUACC(src) \ + do { __builtin_wrctl(15, src); } while (0) + +#define NIOS2_READ_MPUACC(dest) \ + do { dest = __builtin_rdctl(15); } while (0) + + +/* + * Nios II control registers that are always present + */ +#define NIOS2_STATUS status +#define NIOS2_ESTATUS estatus +#define NIOS2_BSTATUS bstatus +#define NIOS2_IENABLE ienable +#define NIOS2_IPENDING ipending +#define NIOS2_CPUID cpuid + +/* + * STATUS, BSTATUS, ESTATUS, and SSTATUS fields. + * The presence of fields is a function of the Nios II configuration. + */ +#define NIOS2_STATUS_PIE_MSK (0x00000001) +#define NIOS2_STATUS_PIE_OFST (0) +#define NIOS2_STATUS_U_MSK (0x00000002) +#define NIOS2_STATUS_U_OFST (1) +#define NIOS2_STATUS_EH_MSK (0x00000004) +#define NIOS2_STATUS_EH_OFST (2) +#define NIOS2_STATUS_IH_MSK (0x00000008) +#define NIOS2_STATUS_IH_OFST (3) +#define NIOS2_STATUS_IL_MSK (0x000003f0) +#define NIOS2_STATUS_IL_OFST (4) +#define NIOS2_STATUS_CRS_MSK (0x0000fc00) +#define NIOS2_STATUS_CRS_OFST (10) +#define NIOS2_STATUS_PRS_MSK (0x003f0000) +#define NIOS2_STATUS_PRS_OFST (16) +#define NIOS2_STATUS_NMI_MSK (0x00400000) +#define NIOS2_STATUS_NMI_OFST (22) +#define NIOS2_STATUS_RSIE_MSK (0x00800000) +#define NIOS2_STATUS_RSIE_OFST (23) +#define NIOS2_STATUS_SRS_MSK (0x80000000) +#define NIOS2_STATUS_SRS_OFST (31) + +/* + * Bit masks & offsets available with extra exceptions support + */ + +/* Exception register */ +#define NIOS2_EXCEPTION_REG_CAUSE_MASK (0x0000007c) +#define NIOS2_EXCEPTION_REG_CAUSE_OFST (2) + +/* + * Bit masks & offsets for MPU support + * + * All bit-masks are expressed relative to the position + * of the data with a register. To read data that is LSB- + * aligned, the register read data should be masked, then + * right-shifted by the designated "OFST" macro value. The + * opposite should be used for register writes when starting + * with LSB-aligned data. + */ + +/* Config register */ +#define NIOS2_CONFIG_REG_PE_MASK (0x00000001) +#define NIOS2_CONFIG_REG_PE_OFST (0) +#define NIOS2_CONFIG_REG_ANI_MASK (0x00000002) +#define NIOS2_CONFIG_REG_ANI_OFST (1) + +/* MPU Base Address Register */ +#define NIOS2_MPUBASE_D_MASK (0x00000001) +#define NIOS2_MPUBASE_D_OFST (0) +#define NIOS2_MPUBASE_INDEX_MASK (0x0000003e) +#define NIOS2_MPUBASE_INDEX_OFST (1) +#define NIOS2_MPUBASE_BASE_ADDR_MASK (0xffffffc0) +#define NIOS2_MPUBASE_BASE_ADDR_OFST (6) + +/* MPU Access Register */ +#define NIOS2_MPUACC_LIMIT_MASK (0xffffffc0) +#define NIOS2_MPUACC_LIMIT_OFST (6) +#define NIOS2_MPUACC_MASK_MASK (0xffffffc0) +#define NIOS2_MPUACC_MASK_OFST (6) +#define NIOS2_MPUACC_C_MASK (0x00000020) +#define NIOS2_MPUACC_C_OFST (5) +#define NIOS2_MPUACC_PERM_MASK (0x0000001c) +#define NIOS2_MPUACC_PERM_OFST (2) +#define NIOS2_MPUACC_RD_MASK (0x00000002) +#define NIOS2_MPUACC_RD_OFST (1) +#define NIOS2_MPUACC_WR_MASK (0x00000001) +#define NIOS2_MPUACC_WR_OFST (0) + +/* + * Number of available IRQs in internal interrupt controller. + */ +#define NIOS2_NIRQ 32 + + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __NIOS2_H__ */ diff --git a/software/qsys_tutorial_lcd2_bsp/HAL/inc/os/alt_flag.h b/software/qsys_tutorial_lcd2_bsp/HAL/inc/os/alt_flag.h new file mode 100644 index 0000000..b9b4605 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/HAL/inc/os/alt_flag.h @@ -0,0 +1,98 @@ +#ifndef __ALT_FLAG_H__ +#define __ALT_FLAG_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +/* + * This header provides macro definitions that can be used to create and use + * uc/OS-II style event flags. These macros can be used in both a uC/OS-II based + * environment, and a single threaded HAL based environment. + * + * The motivation for these macros is to allow code to be developed which is + * thread safe under uC/OS-II, but incurs no additional overhead when used in a + * single threaded HAL environment. + * + * In the case of a single threaded HAL environment, they compile to + * "do nothing" directives, which ensures they do not contribute to the final + * executable. + * + * The following macros are available: + * + * ALT_FLAG_GRP - Create a flag group instance. + * ALT_EXTERN_FLAG_GRP - Create a reference to an external flag group instance. + * ALT_STATIC_FLAG_GRP - Create a static flag group instance. + * ALT_FLAG_CREATE - Initialise a flag group. + * ALT_FLAG_PEND - Pend on a flag group. + * ALT_FLAG_POST - Set a flag condition. + + * + * Input arguments and return codes are all consistant with the equivalent + * uC/OS-II function. + * + * It's important to be careful in the use of the macros: ALT_FLAG_GRP, + * ALT_EXTERN_FLAG_GRP, and ALT_STATIC_FLAG_GRP. In these three cases the + * semi-colon is included in the macro definition; so, for example, you should + * use: + * + * ALT_FLAG_GRP(mygroup) + * + * not: + * + * ALT_FLAG_GRP(mygroup); + * + * The inclusion of the semi-colon has been necessary to ensure the macros can + * compile with no warnings when used in a single threaded HAL environment. + * + */ + +#include "priv/alt_no_error.h" + +#define ALT_FLAG_GRP(group) +#define ALT_EXTERN_FLAG_GRP(group) +#define ALT_STATIC_FLAG_GRP(group) + +#define ALT_FLAG_CREATE(group, flags) alt_no_error () +#define ALT_FLAG_PEND(group, flags, wait_type, timeout) alt_no_error () +#define ALT_FLAG_POST(group, flags, opt) alt_no_error () + +#ifndef ALT_SINGLE_THREADED +#define ALT_SINGLE_THREADED +#endif + +#endif /* __ALT_FLAG_H__ */ diff --git a/software/qsys_tutorial_lcd2_bsp/HAL/inc/os/alt_hooks.h b/software/qsys_tutorial_lcd2_bsp/HAL/inc/os/alt_hooks.h new file mode 100644 index 0000000..9054e3f --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/HAL/inc/os/alt_hooks.h @@ -0,0 +1,61 @@ +#ifndef __ALT_HOOKS_H__ +#define __ALT_HOOKS_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +/* + * This header provides "do-nothing" macro definitions for operating system + * hooks within the HAL. The O/S component can override these to provide it's + * own implementation. + */ + +#define ALT_OS_TIME_TICK() while(0) +#define ALT_OS_INIT() while(0) +#define ALT_OS_STOP() while(0) + +/* Call from assembly code */ +#define ALT_OS_INT_ENTER_ASM +#define ALT_OS_INT_EXIT_ASM + +/* Call from C code */ +#define ALT_OS_INT_ENTER() while(0) +#define ALT_OS_INT_EXIT() while(0) + + +#endif /* __ALT_HOOKS_H__ */ diff --git a/software/qsys_tutorial_lcd2_bsp/HAL/inc/os/alt_sem.h b/software/qsys_tutorial_lcd2_bsp/HAL/inc/os/alt_sem.h new file mode 100644 index 0000000..753943e --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/HAL/inc/os/alt_sem.h @@ -0,0 +1,96 @@ +#ifndef __ALT_SEM_H__ +#define __ALT_SEM_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +/* + * This header provides macro definitions that can be used to create and use + * semaphores. These macros can be used in both a uC/OS-II based environment, + * and a single threaded HAL based environment. + * + * The motivation for these macros is to allow code to be developed which is + * thread safe under uC/OS-II, but incurs no additional overhead when used in a + * single threaded HAL environment. + * + * In the case of a single threaded HAL environment, they compile to + * "do nothing" directives, which ensures they do not contribute to the final + * executable. + * + * The following macros are available: + * + * ALT_SEM - Create a semaphore instance. + * ALT_EXTERN_SEM - Create a reference to an external semaphore instance. + * ALT_STATIC_SEM - Create a static semaphore instance. + * ALT_SEM_CREATE - Initialise a semaphore. + * ALT_SEM_PEND - Pend on a semaphore. + * ALT_SEM_POST - Increment a semaphore. + * + * Input arguments and return codes are all consistant with the equivalent + * uC/OS-II function. + * + * It's important to be careful in the use of the macros: ALT_SEM, + * ALT_EXTERN_SEM, and ALT_STATIC_SEM. In these three cases the semi-colon is + * included in the macro definition; so, for example, you should use: + * + * ALT_SEM(mysem) + * + * not: + * + * ALT_SEM(mysem); + * + * The inclusion of the semi-colon has been necessary to ensure the macros can + * compile with no warnings when used in a single threaded HAL environment. + * + */ + +#include "priv/alt_no_error.h" + +#define ALT_SEM(sem) +#define ALT_EXTERN_SEM(sem) +#define ALT_STATIC_SEM(sem) + +#define ALT_SEM_CREATE(sem, value) alt_no_error () +#define ALT_SEM_PEND(sem, timeout) alt_no_error () +#define ALT_SEM_POST(sem) alt_no_error () + +#ifndef ALT_SINGLE_THREADED +#define ALT_SINGLE_THREADED +#endif + +#endif /* __ALT_SEM_H__ */ diff --git a/software/qsys_tutorial_lcd2_bsp/HAL/inc/os/alt_syscall.h b/software/qsys_tutorial_lcd2_bsp/HAL/inc/os/alt_syscall.h new file mode 100644 index 0000000..507c6aa --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/HAL/inc/os/alt_syscall.h @@ -0,0 +1,75 @@ +#ifndef __ALT_SYSCALL_H__ +#define __ALT_SYSCALL_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/* + * The macros defined in this file are used to provide the function names used + * for the HAL 'UNIX style' interface, e.g. read(), write() etc. + * + * Operating systems which are ported to the HAL can provide their own + * version of this file, which will be used in preference. This allows + * the operating system to provide it's own implementation of the top level + * system calls, while retaining the HAL functions under a different name, + * for example, alt_read(), alt_write() etc. + */ + +#define ALT_CLOSE close +#define ALT_ENVIRON environ +#define ALT_EXECVE execve +#define ALT_EXIT _exit +#define ALT_FCNTL fcntl +#define ALT_FORK fork +#define ALT_FSTAT fstat +#define ALT_GETPID getpid +#define ALT_GETTIMEOFDAY gettimeofday +#define ALT_IOCTL ioctl +#define ALT_ISATTY isatty +#define ALT_KILL kill +#define ALT_LINK link +#define ALT_LSEEK lseek +#define ALT_OPEN open +#define ALT_READ read +#define ALT_RENAME _rename +#define ALT_SBRK sbrk +#define ALT_SETTIMEOFDAY settimeofday +#define ALT_STAT stat +#define ALT_UNLINK unlink +#define ALT_USLEEP usleep +#define ALT_WAIT wait +#define ALT_WRITE write +#define ALT_TIMES times + +/* + * + */ + +#endif /* __ALT_SYSCALL_H__ */ diff --git a/software/qsys_tutorial_lcd2_bsp/HAL/inc/priv/alt_alarm.h b/software/qsys_tutorial_lcd2_bsp/HAL/inc/priv/alt_alarm.h new file mode 100644 index 0000000..45d6a0e --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/HAL/inc/priv/alt_alarm.h @@ -0,0 +1,101 @@ +#ifndef __ALT_PRIV_ALARM_H__ +#define __ALT_PRIV_ALARM_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#include "alt_types.h" + +/* + * This header provides the internal defenitions required by the public + * interface alt_alarm.h. These variables and structures are not guaranteed to + * exist in future implementations of the HAL. + */ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * "alt_alarm_s" is a structure type used to maintain lists of alarm callback + * functions. + */ + +struct alt_alarm_s +{ + alt_llist llist; /* linked list */ + alt_u32 time; /* time in system ticks of the callback */ + alt_u32 (*callback) (void* context); /* callback function. The return + * value is the period for the next callback; where + * zero indicates that the alarm should be removed + * from the list. + */ + alt_u8 rollover; /* set when desired alarm time + current time causes + overflow, to prevent premature alarm */ + void* context; /* Argument for the callback */ +}; + +/* + * "_alt_tick_rate" is a global variable used to store the system clock rate + * in ticks per second. This is initialised to zero, which coresponds to there + * being no system clock available. + * + * It is then set to it's final value by the system clock driver through a call + * to alt_sysclk_init(). + */ + +extern alt_u32 _alt_tick_rate; + +/* + * "_alt_nticks" is a global variable which records the elapsed number of + * system clock ticks since the last call to settimeofday() or since reset if + * settimeofday() has not been called. + */ + +extern volatile alt_u32 _alt_nticks; + +/* The list of registered alarms. */ + +extern alt_llist alt_alarm_list; + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_PRIV_ALARM_H__ */ diff --git a/software/qsys_tutorial_lcd2_bsp/HAL/inc/priv/alt_busy_sleep.h b/software/qsys_tutorial_lcd2_bsp/HAL/inc/priv/alt_busy_sleep.h new file mode 100644 index 0000000..b1af849 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/HAL/inc/priv/alt_busy_sleep.h @@ -0,0 +1,35 @@ +#ifndef __ALT_BUSY_SLEEP_H +#define __ALT_BUSY_SLEEP_H + +/* + * Copyright (c) 2003 Altera Corporation, San Jose, California, USA. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ + +/* + * The function alt_busy_sleep provides a busy loop implementation of usleep. + * This is used to provide usleep for the standalone HAL, or when the timer is + * unavailable in uC/OS-II. + */ + +extern unsigned int alt_busy_sleep (unsigned int us); + +#endif /* __ALT_BUSY_SLEEP_H */ diff --git a/software/qsys_tutorial_lcd2_bsp/HAL/inc/priv/alt_dev_llist.h b/software/qsys_tutorial_lcd2_bsp/HAL/inc/priv/alt_dev_llist.h new file mode 100644 index 0000000..451b063 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/HAL/inc/priv/alt_dev_llist.h @@ -0,0 +1,77 @@ +#ifndef __ALT_DEV_LLIST_H__ +#define __ALT_DEV_LLIST_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#include "sys/alt_llist.h" +#include "alt_types.h" + +/* + * This header provides the internal defenitions required to control file + * access. These variables and functions are not guaranteed to exist in + * future implementations of the HAL. + */ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * The alt_dev_llist is an internal structure used to form a common base + * class for all device types. The use of this structure allows common code + * to be used to manipulate the various device lists. + */ + +typedef struct { + alt_llist llist; + const char* name; +} alt_dev_llist; + +/* + * + */ + +extern int alt_dev_llist_insert (alt_dev_llist* dev, alt_llist* list); + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_DEV_LLIST_H__ */ diff --git a/software/qsys_tutorial_lcd2_bsp/HAL/inc/priv/alt_exception_handler_registry.h b/software/qsys_tutorial_lcd2_bsp/HAL/inc/priv/alt_exception_handler_registry.h new file mode 100644 index 0000000..c6905fa --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/HAL/inc/priv/alt_exception_handler_registry.h @@ -0,0 +1,39 @@ +#ifndef __ALT_EXCEPTION_HANDLER_REGISTRY_H__ +#define __ALT_EXCEPTION_HANDLER_REGISTRY_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2008 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ +#include "sys/alt_exceptions.h" + +/* Function pointer to exception callback routine */ +extern alt_exception_result (*alt_instruction_exception_handler) + (alt_exception_cause, alt_u32, alt_u32); + +#endif /* __ALT_EXCEPTION_HANDLER_REGISTRY_H__ */ diff --git a/software/qsys_tutorial_lcd2_bsp/HAL/inc/priv/alt_file.h b/software/qsys_tutorial_lcd2_bsp/HAL/inc/priv/alt_file.h new file mode 100644 index 0000000..2c3e843 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/HAL/inc/priv/alt_file.h @@ -0,0 +1,179 @@ +#ifndef __ALT_FILE_H__ +#define __ALT_FILE_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#include "sys/alt_dev.h" +#include "sys/alt_llist.h" +#include "os/alt_sem.h" + +#include "alt_types.h" + +/* + * This header provides the internal defenitions required to control file + * access. These variables and functions are not guaranteed to exist in + * future implementations of the HAL. + */ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * The function alt_find_dev() is used to search the device list "list" to + * locate a device named "name". If a match is found, then a pointer to the + * device is returned, otherwise NULL is returned. + */ + +extern alt_dev* alt_find_dev (const char* name, alt_llist* list); + +/* + * alt_find_file() is used to search the list of registered file systems to + * find the filesystem that the file named "name" belongs to. If a match is + * found, then a pointer to the filesystems alt_dev structure is returned, + * otherwise NULL is returned. + * + * Note that a match does not indicate that the file exists, only that a + * filesystem exists that is registered for a partition that could contain + * the file. The filesystems open() function would need to be called in order + * to determine if the file exists. + */ + +extern alt_dev* alt_find_file (const char* name); + +/* + * alt_get_fd() is used to allocate a file descriptor for the device or + * filesystem "dev". A negative return value indicates an error, otherwise the + * return value is the index of the file descriptor within the file descriptor + * pool. + */ + +extern int alt_get_fd (alt_dev* dev); + +/* + * alt_release_fd() is called to free the file descriptor with index "fd". + */ + +extern void alt_release_fd (int fd); + +/* + * alt_fd_lock() is called by ioctl() to mark the file descriptor "fd" as + * being open for exclusive access. Subsequent calls to open() for the device + * associated with "fd" will fail. A device is unlocked by either calling + * close() for "fd", or by an alternate call to ioctl() (see ioctl.c for + * details). + */ + +extern int alt_fd_lock (alt_fd* fd); + +/* + * alt_fd_unlock() is called by ioctl() to unlock a descriptor previously + * locked by a call to alt_fd_lock(). + */ + +extern int alt_fd_unlock (alt_fd* fd); + +/* + * "alt_fd_list" is the pool of file descriptors. + */ + +extern alt_fd alt_fd_list[]; + +/* + * flags used by alt_fd. + * + * ALT_FD_EXCL is used to mark a file descriptor as locked for exclusive + * access, i.e. further calls to open() for the associated device should + * fail. + * + * ALT_FD_DEV marks a dile descriptor as belonging to a device as oposed to a + * filesystem. + */ + +#define ALT_FD_EXCL 0x80000000 +#define ALT_FD_DEV 0x40000000 + +#define ALT_FD_FLAGS_MASK (ALT_FD_EXCL | ALT_FD_DEV) + +/* + * "alt_dev_list" is the head of the linked list of registered devices. + */ + +extern alt_llist alt_dev_list; + +/* + * "alt_fs_list" is the head of the linked list of registered filesystems. + */ + +extern alt_llist alt_fs_list; + +/* + * "alt_fd_list_lock" is a semaphore used to ensure that access to the pool + * of file descriptors is thread safe. + */ + +ALT_EXTERN_SEM(alt_fd_list_lock) + +/* + * "alt_max_fd" is a 'high water mark'. It indicates the highest file + * descriptor allocated. Use of this can save searching the entire pool + * for active file descriptors, which helps avoid contention on access + * to the file descriptor pool. + */ + +extern alt_32 alt_max_fd; + +/* + * alt_io_redirect() is called at startup to redirect stdout, stdin, and + * stderr to the devices named in the input arguments. By default these streams + * are directed at /dev/null, and are then redirected using this function once + * all of the devices have been registered within the system. + */ + +extern void alt_io_redirect(const char* stdout_dev, + const char* stdin_dev, + const char* stderr_dev); + + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_FILE_H__ */ diff --git a/software/qsys_tutorial_lcd2_bsp/HAL/inc/priv/alt_iic_isr_register.h b/software/qsys_tutorial_lcd2_bsp/HAL/inc/priv/alt_iic_isr_register.h new file mode 100644 index 0000000..a0cb01c --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/HAL/inc/priv/alt_iic_isr_register.h @@ -0,0 +1,39 @@ +#ifndef __ALT_IIC_ISR_REGISTER_H_ +#define __ALT_IIC_ISR_REGISTER_H_ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2009 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ +#include "alt_types.h" +#include "sys/alt_irq.h" + +extern int alt_iic_isr_register(alt_u32 ic_id, alt_u32 irq, alt_isr_func isr, + void *isr_context, void *flags); + +#endif /* __ALT_IIC_ISR_REGISTER_H_ */ diff --git a/software/qsys_tutorial_lcd2_bsp/HAL/inc/priv/alt_irq_table.h b/software/qsys_tutorial_lcd2_bsp/HAL/inc/priv/alt_irq_table.h new file mode 100644 index 0000000..694ef06 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/HAL/inc/priv/alt_irq_table.h @@ -0,0 +1,59 @@ +#ifndef __ALT_IRQ_TABLE_H__ +#define __ALT_IRQ_TABLE_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2009 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +/* + * Definition of a table describing each interrupt handler. The index into + * the array is the interrupt id associated with the handler. + * + * When an interrupt occurs, the associated handler is called with + * the argument stored in the context member. + * + * The table is physically created in alt_irq_handler.c + */ +extern struct ALT_IRQ_HANDLER +{ +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT + void (*handler)(void*); +#else + void (*handler)(void*, alt_u32); +#endif + void *context; +} alt_irq[ALT_NIRQ]; + +#endif diff --git a/software/qsys_tutorial_lcd2_bsp/HAL/inc/priv/alt_legacy_irq.h b/software/qsys_tutorial_lcd2_bsp/HAL/inc/priv/alt_legacy_irq.h new file mode 100644 index 0000000..c7aec02 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/HAL/inc/priv/alt_legacy_irq.h @@ -0,0 +1,158 @@ +#ifndef __ALT_LEGACY_IRQ_H__ +#define __ALT_LEGACY_IRQ_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2009 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/* + * This file provides prototypes and inline implementations of certain routines + * used by the legacy interrupt API. Do not include this in your driver or + * application source files, use "sys/alt_irq.h" instead to access the proper + * public API. + */ + +#include +#include "system.h" + +#ifndef NIOS2_EIC_PRESENT + +#include "nios2.h" +#include "alt_types.h" + +#include "sys/alt_irq.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * alt_irq_register() can be used to register an interrupt handler. If the + * function is succesful, then the requested interrupt will be enabled upon + * return. + */ +extern int alt_irq_register (alt_u32 id, + void* context, + alt_isr_func handler); + +/* + * alt_irq_disable() disables the individual interrupt indicated by "id". + */ +static ALT_INLINE int ALT_ALWAYS_INLINE alt_irq_disable (alt_u32 id) +{ + alt_irq_context status; + extern volatile alt_u32 alt_irq_active; + + status = alt_irq_disable_all (); + + alt_irq_active &= ~(1 << id); + NIOS2_WRITE_IENABLE (alt_irq_active); + + alt_irq_enable_all(status); + + return 0; +} + +/* + * alt_irq_enable() enables the individual interrupt indicated by "id". + */ +static ALT_INLINE int ALT_ALWAYS_INLINE alt_irq_enable (alt_u32 id) +{ + alt_irq_context status; + extern volatile alt_u32 alt_irq_active; + + status = alt_irq_disable_all (); + + alt_irq_active |= (1 << id); + NIOS2_WRITE_IENABLE (alt_irq_active); + + alt_irq_enable_all(status); + + return 0; +} + +#ifndef ALT_EXCEPTION_STACK +/* + * alt_irq_initerruptable() should only be called from within an ISR. It is used + * to allow higer priority interrupts to interrupt the current ISR. The input + * argument, "priority", is the priority, i.e. interrupt number of the current + * interrupt. + * + * If this function is called, then the ISR is required to make a call to + * alt_irq_non_interruptible() before returning. The input argument to + * alt_irq_non_interruptible() is the return value from alt_irq_interruptible(). + * + * Care should be taken when using this pair of functions, since they increasing + * the system overhead associated with interrupt handling. + * + * If you are using an exception stack then nested interrupts won't work, so + * these functions are not available in that case. + */ +static ALT_INLINE alt_u32 ALT_ALWAYS_INLINE alt_irq_interruptible (alt_u32 priority) +{ + extern volatile alt_u32 alt_priority_mask; + extern volatile alt_u32 alt_irq_active; + + alt_u32 old_priority; + + old_priority = alt_priority_mask; + alt_priority_mask = (1 << priority) - 1; + + NIOS2_WRITE_IENABLE (alt_irq_active & alt_priority_mask); + + NIOS2_WRITE_STATUS (1); + + return old_priority; +} + +/* + * See Comments above for alt_irq_interruptible() for an explanation of the use of this + * function. + */ +static ALT_INLINE void ALT_ALWAYS_INLINE alt_irq_non_interruptible (alt_u32 mask) +{ + extern volatile alt_u32 alt_priority_mask; + extern volatile alt_u32 alt_irq_active; + + NIOS2_WRITE_STATUS (0); + + alt_priority_mask = mask; + + NIOS2_WRITE_IENABLE (mask & alt_irq_active); +} +#endif /* ALT_EXCEPTION_STACK */ + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* NIOS2_EIC_PRESENT */ + +#endif /* __ALT_LEGACY_IRQ_H__ */ diff --git a/software/qsys_tutorial_lcd2_bsp/HAL/inc/priv/alt_no_error.h b/software/qsys_tutorial_lcd2_bsp/HAL/inc/priv/alt_no_error.h new file mode 100644 index 0000000..6143fc9 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/HAL/inc/priv/alt_no_error.h @@ -0,0 +1,77 @@ +#ifndef __ALT_NO_ERROR_H__ +#define __ALT_NO_ERROR_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#include "alt_types.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * alt_no_error() is a dummy function used by alt_sem.h and alt_flag.h. It + * substitutes for functions that have a return code by creating a function + * that always returns zero. + * + * This may seem a little obscure, but what happens is that the compiler can + * then optomise away the call to this function, and any code written which + * handles the error path (i.e. non zero return values). + * + * This allows code to be written which correctly use the uC/OS-II semaphore + * and flag utilities, without the use of those utilities impacting on + * excutables built for a single threaded HAL environment. + * + * This function is considered to be part of the internal implementation of + * the HAL, and should not be called directly by application code or device + * drivers. It is not guaranteed to be preserved in future versions of the + * HAL. + */ + +static ALT_INLINE int ALT_ALWAYS_INLINE alt_no_error (void) +{ + return 0; +} + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_NO_ERROR_H__ */ diff --git a/software/qsys_tutorial_lcd2_bsp/HAL/inc/priv/nios2_gmon_data.h b/software/qsys_tutorial_lcd2_bsp/HAL/inc/priv/nios2_gmon_data.h new file mode 100644 index 0000000..3f43f12 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/HAL/inc/priv/nios2_gmon_data.h @@ -0,0 +1,47 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ +#ifndef NIOS2_GMON_DATA_H +#define NIOS2_GMON_DATA_H + +#define GMON_DATA_SIG 0 +#define GMON_DATA_WORDS 1 +#define GMON_DATA_PROFILE_DATA 2 +#define GMON_DATA_PROFILE_LOWPC 3 +#define GMON_DATA_PROFILE_HIGHPC 4 +#define GMON_DATA_PROFILE_BUCKET 5 +#define GMON_DATA_PROFILE_RATE 6 +#define GMON_DATA_MCOUNT_START 7 +#define GMON_DATA_MCOUNT_LIMIT 8 + +#define GMON_DATA_SIZE 9 + +extern unsigned int alt_gmon_data[GMON_DATA_SIZE]; + +#endif diff --git a/software/qsys_tutorial_lcd2_bsp/HAL/inc/sys/alt_alarm.h b/software/qsys_tutorial_lcd2_bsp/HAL/inc/sys/alt_alarm.h new file mode 100644 index 0000000..68a2f5d --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/HAL/inc/sys/alt_alarm.h @@ -0,0 +1,126 @@ +#ifndef __ALT_ALARM_H__ +#define __ALT_ALARM_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#include "alt_llist.h" +#include "alt_types.h" + +#include "priv/alt_alarm.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * "alt_alarm" is a structure type used by applications to register an alarm + * callback function. An instance of this type must be passed as an input + * argument to alt_alarm_start(). The user is not responsible for initialising + * the contents of the instance. This is done by alt_alarm_start(). + */ + +typedef struct alt_alarm_s alt_alarm; + +/* + * alt_alarm_start() can be called by an application/driver in order to register + * a function for periodic callback at the system clock frequency. Be aware that + * this callback is likely to occur in interrupt context. + */ + +extern int alt_alarm_start (alt_alarm* the_alarm, + alt_u32 nticks, + alt_u32 (*callback) (void* context), + void* context); + +/* + * alt_alarm_stop() is used to unregister a callback. Alternatively the callback + * can return zero to unregister. + */ + +extern void alt_alarm_stop (alt_alarm* the_alarm); + +/* + * Obtain the system clock rate in ticks/s. + */ + +static ALT_INLINE alt_u32 ALT_ALWAYS_INLINE alt_ticks_per_second (void) +{ + return _alt_tick_rate; +} + +/* + * alt_sysclk_init() is intended to be only used by the system clock driver + * in order to initialise the value of the clock frequency. + */ + +static ALT_INLINE int ALT_ALWAYS_INLINE alt_sysclk_init (alt_u32 nticks) +{ + if (! _alt_tick_rate) + { + _alt_tick_rate = nticks; + return 0; + } + else + { + return -1; + } +} + +/* + * alt_nticks() returns the elapsed number of system clock ticks since reset. + */ + +static ALT_INLINE alt_u32 ALT_ALWAYS_INLINE alt_nticks (void) +{ + return _alt_nticks; +} + +/* + * alt_tick() should only be called by the system clock driver. This is used + * to notify the system that the system timer period has expired. + */ + +extern void alt_tick (void); + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_ALARM_H__ */ diff --git a/software/qsys_tutorial_lcd2_bsp/HAL/inc/sys/alt_cache.h b/software/qsys_tutorial_lcd2_bsp/HAL/inc/sys/alt_cache.h new file mode 100644 index 0000000..c4d8db9 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/HAL/inc/sys/alt_cache.h @@ -0,0 +1,117 @@ +#ifndef __ALT_CACHE_H__ +#define __ALT_CACHE_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003, 2007 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include + +#include "alt_types.h" + +/* + * alt_cache.h defines the processor specific functions for manipulating the + * cache. + */ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * alt_icache_flush() is called to flush the instruction cache for a memory + * region of length "len" bytes, starting at address "start". + */ + +extern void alt_icache_flush (void* start, alt_u32 len); + +/* + * alt_dcache_flush() is called to flush the data cache for a memory + * region of length "len" bytes, starting at address "start". + * Any dirty lines in the data cache are written back to memory. + */ + +extern void alt_dcache_flush (void* start, alt_u32 len); + +/* + * alt_dcache_flush() is called to flush the data cache for a memory + * region of length "len" bytes, starting at address "start". + * Any dirty lines in the data cache are NOT written back to memory. + */ + +extern void alt_dcache_flush_no_writeback (void* start, alt_u32 len); + +/* + * Flush the entire instruction cache. + */ + +extern void alt_icache_flush_all (void); + +/* + * Flush the entire data cache. + */ + +extern void alt_dcache_flush_all (void); + +/* + * Allocate a block of uncached memory. + */ + +extern volatile void* alt_uncached_malloc (size_t size); + +/* + * Free a block of uncached memory. + */ + +extern void alt_uncached_free (volatile void* ptr); + +/* + * Convert a pointer to a block of cached memory, into a block of + * uncached memory. + */ + +extern volatile void* alt_remap_uncached (void* ptr, alt_u32 len); + +/* + * Convert a pointer to a block of uncached memory, into a block of + * cached memory. + */ + +extern void* alt_remap_cached (volatile void* ptr, alt_u32 len); + +/* + * + */ + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_CACHE_H__ */ diff --git a/software/qsys_tutorial_lcd2_bsp/HAL/inc/sys/alt_debug.h b/software/qsys_tutorial_lcd2_bsp/HAL/inc/sys/alt_debug.h new file mode 100644 index 0000000..d9f9599 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/HAL/inc/sys/alt_debug.h @@ -0,0 +1,45 @@ +#ifndef __ALT_DEBUG_H__ +#define __ALT_DEBUG_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/* + * The ALT_DEVUG_ASSERT macro can be used to generate a debugger break + * from within software. The break is generated if "condition" evaluates to + * false. + */ + +#define ALT_DEBUG_ASSERT(condition) if (!condition) \ +{ \ + __asm__ volatile ("break"); \ +} + +#endif /* __ALT_DEBUG_H__ */ diff --git a/software/qsys_tutorial_lcd2_bsp/HAL/inc/sys/alt_dev.h b/software/qsys_tutorial_lcd2_bsp/HAL/inc/sys/alt_dev.h new file mode 100644 index 0000000..66c5e41 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/HAL/inc/sys/alt_dev.h @@ -0,0 +1,115 @@ +#ifndef __ALT_DEV_H__ +#define __ALT_DEV_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#include "system.h" +#include "sys/alt_llist.h" +#include "priv/alt_dev_llist.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * The value ALT_IRQ_NOT_CONNECTED is used to represent an unconnected + * interrupt line. It cannot evaluate to a valid interrupt number. + */ + +#define ALT_IRQ_NOT_CONNECTED (-1) + +typedef struct alt_dev_s alt_dev; + +struct stat; + +/* + * The file descriptor structure definition. + */ + +typedef struct alt_fd_s +{ + alt_dev* dev; + alt_u8* priv; + int fd_flags; +} alt_fd; + +/* + * The device structure definition. + */ + +struct alt_dev_s { + alt_llist llist; /* for internal use */ + const char* name; + int (*open) (alt_fd* fd, const char* name, int flags, int mode); + int (*close) (alt_fd* fd); + int (*read) (alt_fd* fd, char* ptr, int len); + int (*write) (alt_fd* fd, const char* ptr, int len); + int (*lseek) (alt_fd* fd, int ptr, int dir); + int (*fstat) (alt_fd* fd, struct stat* buf); + int (*ioctl) (alt_fd* fd, int req, void* arg); +}; + +/* + * Functions used to register device for access through the C standard + * library. + * + * The only difference between alt_dev_reg() and alt_fs_reg() is the + * interpretation that open() places on the device name. In the case of + * alt_dev_reg the device is assumed to be a particular character device, + * and so there must be an exact match in the name for open to succeed. + * In the case of alt_fs_reg() the name of the device is treated as the + * mount point for a directory, and so any call to open() where the name + * is the root of the device filename will succeed. + */ + +extern int alt_fs_reg (alt_dev* dev); + +static ALT_INLINE int alt_dev_reg (alt_dev* dev) +{ + extern alt_llist alt_dev_list; + + return alt_dev_llist_insert ((alt_dev_llist*) dev, &alt_dev_list); +} + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_DEV_H__ */ diff --git a/software/qsys_tutorial_lcd2_bsp/HAL/inc/sys/alt_dma.h b/software/qsys_tutorial_lcd2_bsp/HAL/inc/sys/alt_dma.h new file mode 100644 index 0000000..9f9b2ff --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/HAL/inc/sys/alt_dma.h @@ -0,0 +1,226 @@ +#ifndef __ALT_DMA_H__ +#define __ALT_DMA_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004-2005 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#include "sys/alt_dma_dev.h" +#include "alt_types.h" + +#include + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * This header contains the application side interface for accessing DMA + * resources. See alt_dma_dev.h for the dma device driver interface. + * + * The interface model treats a DMA transaction as being composed of two + * halves (read and write). + * + * The application can supply data for transmit using an "alt_dma_txchan" + * descriptor. Alternatively an "alt_dma_rxchan" descriptor can be used to + * receive data. + */ + +/* + * alt_dma_txchan_open() is used to obtain an "alt_dma_txchan" descriptor for + * a DMA transmit device. The name is the name of the associated physical + * device (e.g. "/dev/dma_0"). + * + * The return value will be NULL on failure, and non-NULL otherwise. + */ + +extern alt_dma_txchan alt_dma_txchan_open (const char* name); + +/* + * alt_dma_txchan_close() is provided so that an application can notify the + * system that it has finished with a given DMA transmit channel. This is only + * provided for completness. + */ + +static ALT_INLINE int alt_dma_txchan_close (alt_dma_txchan dma) +{ + return 0; +} + +/* + * alt_dma_txchan_send() posts a transmit request to a DMA transmit channel. + * The input arguments are: + * + * dma: the channel to use. + * from: a pointer to the start of the data to send. + * length: the length of the data to send in bytes. + * done: callback function that will be called once the data has been sent. + * handle: opaque value passed to "done". + * + * The return value will be negative if the request cannot be posted, and + * zero otherwise. + */ + +static ALT_INLINE int alt_dma_txchan_send (alt_dma_txchan dma, + const void* from, + alt_u32 length, + alt_txchan_done* done, + void* handle) +{ + return dma ? dma->dma_send (dma, + from, + length, + done, + handle) : -ENODEV; +} + +/* + * alt_dma_txchan_space() returns the number of tranmit requests that can be + * posted to the specified DMA transmit channel. + * + * A negative value indicates that the value could not be determined. + */ + +static ALT_INLINE int alt_dma_txchan_space (alt_dma_txchan dma) +{ + return dma ? dma->space (dma) : -ENODEV; +} + +/* + * alt_dma_txchan_ioctl() can be used to perform device specific I/O + * operations on the indicated DMA transmit channel. For example some drivers + * support options to control the width of the transfer operations. See + * alt_dma_dev.h for the list of generic requests. + * + * A negative return value indicates failure, otherwise the interpretation + * of the return value is request specific. + */ + +static ALT_INLINE int alt_dma_txchan_ioctl (alt_dma_txchan dma, + int req, + void* arg) +{ + return dma ? dma->ioctl (dma, req, arg) : -ENODEV; +} + +/* + * alt_dma_rxchan_open() is used to obtain an "alt_dma_rxchan" descriptor for + * a DMA receive channel. The name is the name of the associated physical + * device (e.g. "/dev/dma_0"). + * + * The return value will be NULL on failure, and non-NULL otherwise. + */ + +extern alt_dma_rxchan alt_dma_rxchan_open (const char* dev); + +/* + * alt_dma_rxchan_close() is provided so that an application can notify the + * system that it has finished with a given DMA receive channel. This is only + * provided for completness. + */ + +static ALT_INLINE int alt_dma_rxchan_close (alt_dma_rxchan dma) +{ + return 0; +} + +/* + * + */ + +/* + * alt_dma_rxchan_prepare() posts a receive request to a DMA receive channel. + * + * The input arguments are: + * + * dma: the channel to use. + * data: a pointer to the location that data is to be received to. + * len: the maximum length of the data to receive. + * done: callback function that will be called once the data has been + * received. + * handle: opaque value passed to "done". + * + * The return value will be negative if the request cannot be posted, and + * zero otherwise. + */ + +static ALT_INLINE int alt_dma_rxchan_prepare (alt_dma_rxchan dma, + void* data, + alt_u32 len, + alt_rxchan_done* done, + void* handle) +{ + return dma ? dma->prepare (dma, data, len, done, handle) : -ENODEV; +} + +/* + * alt_dma_rxchan_ioctl() can be used to perform device specific I/O + * operations on the indicated DMA receive channel. For example some drivers + * support options to control the width of the transfer operations. See + * alt_dma_dev.h for the list of generic requests. + * + * A negative return value indicates failure, otherwise the interpretation + * of the return value is request specific. + */ + +static ALT_INLINE int alt_dma_rxchan_ioctl (alt_dma_rxchan dma, + int req, + void* arg) +{ + return dma ? dma->ioctl (dma, req, arg) : -ENODEV; +} + +/* + * alt_dma_rxchan_depth() returns the depth of the receive FIFO used to store + * receive requests. + */ + +static ALT_INLINE alt_u32 alt_dma_rxchan_depth(alt_dma_rxchan dma) +{ + return dma->depth; +} + +/* + * + */ + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __ALT_DMA_H__ */ diff --git a/software/qsys_tutorial_lcd2_bsp/HAL/inc/sys/alt_dma_dev.h b/software/qsys_tutorial_lcd2_bsp/HAL/inc/sys/alt_dma_dev.h new file mode 100644 index 0000000..832463d --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/HAL/inc/sys/alt_dma_dev.h @@ -0,0 +1,200 @@ +#ifndef __ALT_DMA_DEV_H__ +#define __ALT_DMA_DEV_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004-2005 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#include "priv/alt_dev_llist.h" + +#include "alt_types.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * This header contains the device driver interface for accessing DMA + * resources. See alt_dma.h for the DMA application side interface. + * + * The interface model treats a DMA transaction as being composed of two + * halves (read and write). + * + * An "alt_dma_txchan_dev" is used to describe the device associated with a + * DMA transmit channel. An "alt_dma_rxchan_dev" is used to describe the + * device associated with a DMA receive channel. + */ + +/* + * List of generic ioctl requests that may be supported by a DMA device. + * + * ALT_DMA_RX_ONLY_ON: This causes a DMA channel to operate in a mode + * where only the receiver is under software control. + * The other side reads continously from a single + * location. The address to read is the argument to + * this request. + * ALT_DMA_RX_ONLY_OFF: Return to the default mode where both the receive + * and transmit sides of the DMA can be under software + * control. + * ALT_DMA_TX_ONLY_ON: This causes a DMA channel to operate in a mode + * where only the transmitter is under software control. + * The other side writes continously to a single + * location. The address to write to is the argument to + * this request. + * ALT_DMA_TX_ONLY_OFF: Return to the default mode where both the receive + * and transmit sides of the DMA can be under software + * control. + * ALT_DMA_SET_MODE_8: Transfer data in units of 8 bits. + * ALT_DMA_SET_MODE_16: Transfer data in units of 16 bits. + * ALT_DMA_SET_MODE_32: Transfer data in units of 32 bits. + * ALT_DMA_SET_MODE_64: Transfer data in units of 64 bits. + * ALT_DMA_SET_MODE_128: Transfer data in units of 128 bits. + * ALT_DMA_GET_MODE: Get the current transfer mode. + * + * The use of the macros: ALT_DMA_TX_STREAM_ON, ALT_DMA_TX_STREAM_OFF + * ALT_DMA_RX_STREAM_OFF and ALT_DMA_RX_STREAM_ON are depreciated. You should + * instead use the macros: ALT_DMA_RX_ONLY_ON, ALT_DMA_RX_ONLY_OFF, + * ALT_DMA_TX_ONLY_ON and ALT_DMA_TX_ONLY_OFF. + */ + +#define ALT_DMA_TX_STREAM_ON (0x1) +#define ALT_DMA_TX_STREAM_OFF (0x2) +#define ALT_DMA_RX_STREAM_ON (0x3) +#define ALT_DMA_RX_STREAM_OFF (0x4) +#define ALT_DMA_SET_MODE_8 (0x5) +#define ALT_DMA_SET_MODE_16 (0x6) +#define ALT_DMA_SET_MODE_32 (0x7) +#define ALT_DMA_SET_MODE_64 (0x8) +#define ALT_DMA_SET_MODE_128 (0x9) +#define ALT_DMA_GET_MODE (0xa) + +#define ALT_DMA_RX_ONLY_ON ALT_DMA_TX_STREAM_ON +#define ALT_DMA_RX_ONLY_OFF ALT_DMA_TX_STREAM_OFF +#define ALT_DMA_TX_ONLY_ON ALT_DMA_RX_STREAM_ON +#define ALT_DMA_TX_ONLY_OFF ALT_DMA_RX_STREAM_OFF + +/* + * + */ + +typedef struct alt_dma_txchan_dev_s alt_dma_txchan_dev; +typedef struct alt_dma_rxchan_dev_s alt_dma_rxchan_dev; + +typedef alt_dma_txchan_dev* alt_dma_txchan; +typedef alt_dma_rxchan_dev* alt_dma_rxchan; + +typedef void (alt_txchan_done)(void* handle); +typedef void (alt_rxchan_done)(void* handle, void* data); + +/* + * devices that provide a DMA transmit channel are required to provide an + * instance of the "alt_dma_txchan_dev" structure. + */ + +struct alt_dma_txchan_dev_s { + alt_llist llist; /* for internal use */ + const char* name; /* name of the device instance + * (e.g. "/dev/dma_0"). + */ + int (*space) (alt_dma_txchan dma); /* returns the maximum number of + * transmit requests that can be posted + */ + int (*dma_send) (alt_dma_txchan dma, + const void* from, + alt_u32 len, + alt_txchan_done* done, + void* handle); /* post a transmit request */ + int (*ioctl) (alt_dma_txchan dma, int req, void* arg); /* perform device + * specific I/O control. + */ +}; + +/* + * devices that provide a DMA receive channel are required to provide an + * instance of the "alt_dma_rxchan_dev" structure. + */ + +struct alt_dma_rxchan_dev_s { + alt_llist list; /* for internal use */ + const char* name; /* name of the device instance + * (e.g. "/dev/dma_0"). + */ + alt_u32 depth; /* maximum number of receive requests that + * can be posted. + */ + int (*prepare) (alt_dma_rxchan dma, + void* data, + alt_u32 len, + alt_rxchan_done* done, + void* handle); /* post a receive request */ + int (*ioctl) (alt_dma_rxchan dma, int req, void* arg); /* perform device + * specific I/O control. + */ +}; + +/* + * Register a DMA transmit channel with the system. + */ + +static ALT_INLINE int alt_dma_txchan_reg (alt_dma_txchan_dev* dev) +{ + extern alt_llist alt_dma_txchan_list; + + return alt_dev_llist_insert((alt_dev_llist*) dev, &alt_dma_txchan_list); +} + +/* + * Register a DMA receive channel with the system. + */ + +static ALT_INLINE int alt_dma_rxchan_reg (alt_dma_rxchan_dev* dev) +{ + extern alt_llist alt_dma_rxchan_list; + + return alt_dev_llist_insert((alt_dev_llist*) dev, &alt_dma_rxchan_list); +} + +/* + * + */ + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __ALT_DMA_DEV_H__ */ diff --git a/software/qsys_tutorial_lcd2_bsp/HAL/inc/sys/alt_driver.h b/software/qsys_tutorial_lcd2_bsp/HAL/inc/sys/alt_driver.h new file mode 100644 index 0000000..eb0f23b --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/HAL/inc/sys/alt_driver.h @@ -0,0 +1,168 @@ +#ifndef __ALT_DRIVER_H__ +#define __ALT_DRIVER_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/* + * Macros used to access a driver without HAL file descriptors. + */ + +/* + * ALT_MODULE_CLASS + * + * This macro returns the module class name for the specified module instance. + * It uses information in the system.h file. + * Neither the instance name or class name are quoted (so that they can + * be used with other pre-processor macros). + * + * Example: + * Assume the design has an instance of an altera_avalon_uart called uart1. + * Calling ALT_MODULE_CLASS(uart1) returns altera_avalon_uart. + */ + +#define ALT_MODULE_CLASS(instance) ALT_MODULE_CLASS_ ## instance + + +/* + * ALT_DRIVER_FUNC_NAME + * + * --> instance Instance name. + * --> func Function name. + * + * This macro returns the device driver function name of the specified + * module instance for the specified function name. + * + * Example: + * Assume the design has an instance of an altera_avalon_uart called uart1. + * Calling ALT_DRIVER_FUNC_NAME(uart1, write) returns + * altera_avalon_uart_write. + */ + +#define ALT_DRIVER_FUNC_NAME(instance, func) \ + ALT_DRIVER_FUNC_NAME1(ALT_MODULE_CLASS(instance), func) +#define ALT_DRIVER_FUNC_NAME1(module_class, func) \ + ALT_DRIVER_FUNC_NAME2(module_class, func) +#define ALT_DRIVER_FUNC_NAME2(module_class, func) \ + module_class ## _ ## func + +/* + * ALT_DRIVER_STATE_STRUCT + * + * --> instance Instance name. + * + * This macro returns the device driver state type name of the specified + * module instance. + * + * Example: + * Assume the design has an instance of an altera_avalon_uart called uart1. + * Calling ALT_DRIVER_STATE_STRUCT(uart1) returns: + * struct altera_avalon_uart_state_s + * + * Note that the ALT_DRIVER_FUNC_NAME macro is used even though "state" isn't + * really a function but it does match the required naming convention. + */ +#define ALT_DRIVER_STATE_STRUCT(instance) \ + struct ALT_DRIVER_FUNC_NAME(instance, state_s) + +/* + * ALT_DRIVER_STATE + * + * --> instance Instance name. + * + * This macro returns the device driver state name of the specified + * module instance. + * + * Example: + * Assume the design has an instance of an altera_avalon_uart called uart1. + * Calling ALT_DRIVER_STATE(uart1) returns uart1. + */ +#define ALT_DRIVER_STATE(instance) instance + +/* + * ALT_DRIVER_WRITE + * + * --> instance Instance name. + * --> buffer Write buffer. + * --> len Length of write buffer data. + * --> flags Control flags (e.g. O_NONBLOCK) + * + * This macro calls the "write" function of the specified driver instance. + */ + +#define ALT_DRIVER_WRITE_EXTERNS(instance) \ + extern ALT_DRIVER_STATE_STRUCT(instance) ALT_DRIVER_STATE(instance); \ + extern int ALT_DRIVER_FUNC_NAME(instance, write) \ + (ALT_DRIVER_STATE_STRUCT(instance) *, const char *, int, int); + +#define ALT_DRIVER_WRITE(instance, buffer, len, flags) \ + ALT_DRIVER_FUNC_NAME(instance, write)(&ALT_DRIVER_STATE(instance), buffer, len, flags) + + +/* + * ALT_DRIVER_READ + * + * --> instance Instance name. + * <-- buffer Read buffer. + * --> len Length of read buffer. + * --> flags Control flags (e.g. O_NONBLOCK) + * + * This macro calls the "read" function of the specified driver instance. + */ + +#define ALT_DRIVER_READ_EXTERNS(instance) \ + extern ALT_DRIVER_STATE_STRUCT(instance) ALT_DRIVER_STATE(instance); \ + extern int ALT_DRIVER_FUNC_NAME(instance, read) \ + (ALT_DRIVER_STATE_STRUCT(instance) *, const char *, int, int); + +#define ALT_DRIVER_READ(instance, buffer, len, flags) \ + ALT_DRIVER_FUNC_NAME(instance, read)(&ALT_DRIVER_STATE(instance), buffer, len, flags) + +/* + * ALT_DRIVER_IOCTL + * + * --> instance Instance name. + * --> req ioctl request (e.g. TIOCSTIMEOUT) + * --> arg Optional argument (void*) + * + * This macro calls the "ioctl" function of the specified driver instance + */ + +#define ALT_DRIVER_IOCTL_EXTERNS(instance) \ + extern ALT_DRIVER_STATE_STRUCT(instance) ALT_DRIVER_STATE(instance); \ + extern int ALT_DRIVER_FUNC_NAME(instance, ioctl) \ + (ALT_DRIVER_STATE_STRUCT(instance) *, int, void*); + +#define ALT_DRIVER_IOCTL(instance, req, arg) \ + ALT_DRIVER_FUNC_NAME(instance, ioctl)(&ALT_DRIVER_STATE(instance), req, arg) + +#endif /* __ALT_DRIVER_H__ */ diff --git a/software/qsys_tutorial_lcd2_bsp/HAL/inc/sys/alt_errno.h b/software/qsys_tutorial_lcd2_bsp/HAL/inc/sys/alt_errno.h new file mode 100644 index 0000000..4d3e50f --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/HAL/inc/sys/alt_errno.h @@ -0,0 +1,87 @@ +#ifndef __ALT_ERRNO_H__ +#define __ALT_ERRNO_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +/* + * errno is defined in so that it uses the thread local version + * stored in the location pointed to by "_impure_ptr". This means that the + * accesses to errno within the HAL library can cause the entirety of + * of the structure pointed to by "_impure_ptr" to be added to the + * users application. This can be undesirable in very small footprint systems. + * + * To avoid this happening, the HAL uses the macro ALT_ERRNO, defined below, + * to access errno, rather than accessing it directly. This macro will only + * use the thread local version if some other code has already caused it to be + * included into the system, otherwise it will use the global errno value. + * + * This causes a slight increases in code size where errno is accessed, but + * can lead to significant overall benefits in very small systems. The + * increase is inconsequential when compared to the size of the structure + * pointed to by _impure_ptr. + * + * Note that this macro accesses __errno() using an externally declared + * function pointer (alt_errno). This is done so that the function call uses the + * subroutine call instruction via a register rather than an immediate address. + * This is important in the case that the code has been linked for a high + * address, but __errno() is not being used. In this case the weak linkage + * would have resulted in the instruction: "call 0" which would fail to link. + */ + +extern int* (*alt_errno) (void); + +/* Must define this so that values such as EBADFD are defined in errno.h. */ +#define __LINUX_ERRNO_EXTENSIONS__ + +#include + +#include "alt_types.h" + +#undef errno + +extern int errno; + +static ALT_INLINE int* alt_get_errno(void) +{ + return ((alt_errno) ? alt_errno() : &errno); +} + +#define ALT_ERRNO *alt_get_errno() + +#endif /* __ALT_ERRNO_H__ */ diff --git a/software/qsys_tutorial_lcd2_bsp/HAL/inc/sys/alt_exceptions.h b/software/qsys_tutorial_lcd2_bsp/HAL/inc/sys/alt_exceptions.h new file mode 100644 index 0000000..3576a52 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/HAL/inc/sys/alt_exceptions.h @@ -0,0 +1,127 @@ +#ifndef __ALT_EXCEPTIONS_H__ +#define __ALT_EXCEPTIONS_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2008 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ +#include "alt_types.h" +#include "system.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * This file defines instruction-generated exception handling and registry + * API, exception type enumeration, and handler return value enumeration for + * Nios II. + */ + +/* + * The following enumeration describes the value in the CPU EXCEPTION + * register CAUSE bit field. Not all exception types will cause the + * processor to go to the exception vector; these are provided for + * reference. + */ +enum alt_exception_cause_e { + /* Exeption causes that will cause jump to exception vector */ + NIOS2_EXCEPTION_INTERRUPT = 2, + NIOS2_EXCEPTION_TRAP_INST = 3, + NIOS2_EXCEPTION_UNIMPLEMENTED_INST = 4, + NIOS2_EXCEPTION_ILLEGAL_INST = 5, + NIOS2_EXCEPTION_MISALIGNED_DATA_ADDR = 6, + NIOS2_EXCEPTION_MISALIGNED_TARGET_PC = 7, + NIOS2_EXCEPTION_DIVISION_ERROR = 8, + NIOS2_EXCEPTION_SUPERVISOR_ONLY_INST_ADDR = 9, + NIOS2_EXCEPTION_SUPERVISOR_ONLY_INST = 10, + NIOS2_EXCEPTION_SUPERVISOR_ONLY_DATA_ADDR = 11, + NIOS2_EXCEPTION_TLB_MISS = 12, + NIOS2_EXCEPTION_TLB_EXECUTE_PERM_VIOLATION = 13, + NIOS2_EXCEPTION_MPU_INST_REGION_VIOLATION = 16, + + /* Exception causes that will NOT cause a jump to exception vector */ + NIOS2_EXCEPTION_RESET = 0, + NIOS2_EXCEPTION_CPU_ONLY_RESET_REQUEST = 1, + NIOS2_EXCEPTION_TLB_READ_PERM_VIOLATION = 14, + NIOS2_EXCEPTION_TLB_WRITE_PERM_VIOLATION = 15, + NIOS2_EXCEPTION_MPU_DATA_REGION_VIOLATION = 17, + /* + * This value is passed to an exception handler's cause argument if + * "extra exceptions" information (EXECPTION) register is not + * present in the processor hardware configuration. + */ + NIOS2_EXCEPTION_CAUSE_NOT_PRESENT = -1 +}; +typedef enum alt_exception_cause_e alt_exception_cause; + +/* + * These define valid return values for a user-defined instruction-generated + * exception handler. The handler should return one of these to indicate + * whether to re-issue the instruction that triggered the exception, or to + * skip it. + */ +enum alt_exception_result_e { + NIOS2_EXCEPTION_RETURN_REISSUE_INST = 0, + NIOS2_EXCEPTION_RETURN_SKIP_INST = 1 +}; +typedef enum alt_exception_result_e alt_exception_result; + +/* + * alt_instruction_exception_register() can be used to register an exception + * handler for instruction-generated exceptions that are not handled by the + * built-in exception handler (i.e. for interrupts). + * + * The registry API is optionally enabled through the "Enable + * Instruction-related Exception API" HAL BSP setting, which will + * define the macro below. + */ +#ifdef ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API +void alt_instruction_exception_register ( + alt_exception_result (*exception_handler)( + alt_exception_cause cause, + alt_u32 exception_pc, + alt_u32 bad_addr) ); +#endif /*ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API */ + +/* + * alt_exception_cause_generated_bad_addr() indicates whether a particular + * exception cause value was from an exception-type that generated a valid + * address in the BADADDR register. The contents of BADADDR is passed to + * a user-registered exception handler in all cases, whether valid or not. + * This routine should be called to validate the bad_addr argument to + * your exception handler. + */ +int alt_exception_cause_generated_bad_addr(alt_exception_cause cause); + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __ALT_EXCEPTIONS_H__ */ diff --git a/software/qsys_tutorial_lcd2_bsp/HAL/inc/sys/alt_flash.h b/software/qsys_tutorial_lcd2_bsp/HAL/inc/sys/alt_flash.h new file mode 100644 index 0000000..527328d --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/HAL/inc/sys/alt_flash.h @@ -0,0 +1,166 @@ +#ifndef __ALT_FLASH_H__ +#define __ALT_FLASH_H__ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +/****************************************************************************** +* * +* Alt_flash.h - User interface for flash code * +* * +* Use this interface to avoid being exposed to the internals of the device * +* driver architecture. If you chose to use the flash driver internal * +* structures we don't guarantee not to change them * +* * +* Author PRR * +* * +******************************************************************************/ + + + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +#include "alt_types.h" +#include "alt_flash_types.h" +#include "alt_flash_dev.h" +#include "sys/alt_cache.h" + +alt_flash_fd* alt_flash_open_dev(const char* name); +void alt_flash_close_dev(alt_flash_fd* fd ); + +/* + * alt_write_flash + * + * Program a buffer into flash. + * + * This routine erases all the affected erase blocks (if necessary) + * and then programs the data. However it does not read the data out first + * and preserve and none overwritten data, because this would require very + * large buffers on the target. If you need + * that functionality use the functions below. + */ +static __inline__ int __attribute__ ((always_inline)) alt_write_flash( + alt_flash_fd* fd, + int offset, + const void* src_addr, + int length ) +{ + return fd->write( fd, offset, src_addr, length ); +} + +/* + * alt_read_flash + * + * Read a block of flash for most flashes this is just memcpy + * it's here for completeness in case we need it for some serial flash device + * + */ +static __inline__ int __attribute__ ((always_inline)) alt_read_flash( + alt_flash_fd* fd, int offset, + void* dest_addr, int length ) +{ + return fd->read( fd, offset, dest_addr, length ); +} + +/* + * alt_get_flash_info + * + * Return the information on the flash sectors. + * + */ +static __inline__ int __attribute__ ((always_inline)) alt_get_flash_info( + alt_flash_fd* fd, flash_region** info, + int* number_of_regions) +{ + return fd->get_info( fd, info, number_of_regions); +} + +/* + * alt_erase_flash_block + * + * Erase a particular erase block, pass in the offset to the start of + * the block and it's size + */ +static __inline__ int __attribute__ ((always_inline)) alt_erase_flash_block( + alt_flash_fd* fd, int offset, int length) +{ + int ret_code; + ret_code = fd->erase_block( fd, offset ); + + if(!ret_code) + alt_dcache_flush((alt_u8*)fd->base_addr + offset, length); + + return ret_code; +} + +/* + * alt_write_flash_block + * + * Write a particular flash block, block_offset is the offset + * (from the base of flash) to start of the block + * data_offset is the offset (from the base of flash) + * where you wish to start programming + * + * NB this function DOES NOT check that you are only writing a single + * block of data as that would slow down this function. + * + * Use alt_write_flash if you want that level of error checking. + */ + +static __inline__ int __attribute__ ((always_inline)) alt_write_flash_block( + alt_flash_fd* fd, int block_offset, + int data_offset, + const void *data, int length) +{ + + int ret_code; + ret_code = fd->write_block( fd, block_offset, data_offset, data, length ); + + if(!ret_code) + alt_dcache_flush((alt_u8*)fd->base_addr + data_offset, length); + + return ret_code; +} + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_FLASH_H__ */ diff --git a/software/qsys_tutorial_lcd2_bsp/HAL/inc/sys/alt_flash_dev.h b/software/qsys_tutorial_lcd2_bsp/HAL/inc/sys/alt_flash_dev.h new file mode 100644 index 0000000..8bab601 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/HAL/inc/sys/alt_flash_dev.h @@ -0,0 +1,98 @@ +#ifndef __ALT_FLASH_DEV_H__ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +/****************************************************************************** +* * +* Alt_flash_dev.h - Generic Flash device interfaces * +* * +* Author PRR * +* * +******************************************************************************/ +#define __ALT_FLASH_DEV_H__ + +#include "alt_flash_types.h" +#include "sys/alt_llist.h" +#include "priv/alt_dev_llist.h" + +#include "alt_types.h" + +typedef struct alt_flash_dev alt_flash_dev; +typedef alt_flash_dev alt_flash_fd; + +static ALT_INLINE int alt_flash_device_register( alt_flash_fd* fd) +{ + extern alt_llist alt_flash_dev_list; + + return alt_dev_llist_insert ((alt_dev_llist*) fd, &alt_flash_dev_list); +} + +typedef alt_flash_dev* (*alt_flash_open)(alt_flash_dev* flash, + const char* name ); +typedef int (*alt_flash_close)(alt_flash_dev* flash_info); + +typedef int (*alt_flash_write)( alt_flash_dev* flash, int offset, + const void* src_addr, int length ); + +typedef int (*alt_flash_get_flash_info)( alt_flash_dev* flash, flash_region** info, + int* number_of_regions); +typedef int (*alt_flash_write_block)( alt_flash_dev* flash, int block_offset, + int data_offset, const void* data, + int length); +typedef int (*alt_flash_erase_block)( alt_flash_dev* flash, int offset); +typedef int (*alt_flash_read)(alt_flash_dev* flash, int offset, + void* dest_addr, int length ); + +struct alt_flash_dev +{ + alt_llist llist; + const char* name; + alt_flash_open open; + alt_flash_close close; + alt_flash_write write; + alt_flash_read read; + alt_flash_get_flash_info get_info; + alt_flash_erase_block erase_block; + alt_flash_write_block write_block; + void* base_addr; + int length; + int number_of_regions; + flash_region region_info[ALT_MAX_NUMBER_OF_FLASH_REGIONS]; +}; + +#endif /* __ALT_FLASH_DEV_H__ */ diff --git a/software/qsys_tutorial_lcd2_bsp/HAL/inc/sys/alt_flash_types.h b/software/qsys_tutorial_lcd2_bsp/HAL/inc/sys/alt_flash_types.h new file mode 100644 index 0000000..884cbf8 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/HAL/inc/sys/alt_flash_types.h @@ -0,0 +1,64 @@ +#ifndef __ALT_FLASH_TYPES_H__ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +/****************************************************************************** +* * +* Alt_flash_types.h - Some generic types and defines used by the flash code * +* * +* Author PRR * +* * +******************************************************************************/ +#define __ALT_FLASH_TYPES_H__ + +#ifndef ALT_MAX_NUMBER_OF_FLASH_REGIONS +#define ALT_MAX_NUMBER_OF_FLASH_REGIONS 8 +#endif /* ALT_MAX_NUMBER_OF_FLASH_REGIONS */ + +/* + * Description of a single Erase region + */ +typedef struct flash_region +{ + int offset; + int region_size; + int number_of_blocks; + int block_size; +}flash_region; + +#endif /* __ALT_FLASH_TYPES_H__ */ diff --git a/software/qsys_tutorial_lcd2_bsp/HAL/inc/sys/alt_irq.h b/software/qsys_tutorial_lcd2_bsp/HAL/inc/sys/alt_irq.h new file mode 100644 index 0000000..6666e52 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/HAL/inc/sys/alt_irq.h @@ -0,0 +1,245 @@ +#ifndef __ALT_IRQ_H__ +#define __ALT_IRQ_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2009 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/* + * alt_irq.h is the Nios II specific implementation of the interrupt controller + * interface. + * + * Nios II includes optional support for an external interrupt controller. + * When an external controller is present, the "Enhanced" interrupt API + * must be used to manage individual interrupts. The enhanced API also + * supports the processor's internal interrupt controller. Certain API + * members are accessible from either the "legacy" or "enhanced" interrpt + * API. + * + * Regardless of which API is in use, this file should be included by + * application code and device drivers that register ISRs or manage interrpts. + */ +#include + +#include "nios2.h" +#include "alt_types.h" +#include "system.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * Macros used by alt_irq_enabled + */ +#define ALT_IRQ_ENABLED 1 +#define ALT_IRQ_DISABLED 0 + +/* + * Number of available interrupts in internal interrupt controller. + */ +#define ALT_NIRQ NIOS2_NIRQ + +/* + * Used by alt_irq_disable_all() and alt_irq_enable_all(). + */ +typedef int alt_irq_context; + +/* ISR Prototype */ +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT +typedef void (*alt_isr_func)(void* isr_context); +#else +typedef void (*alt_isr_func)(void* isr_context, alt_u32 id); +#endif + +/* + * The following protypes and routines are supported by both + * the enhanced and legacy interrupt APIs + */ + +/* + * alt_irq_enabled can be called to determine if the processor's global + * interrupt enable is asserted. The return value is zero if interrupts + * are disabled, and non-zero otherwise. + * + * Whether the internal or external interrupt controller is present, + * individual interrupts may still be disabled. Use the other API to query + * a specific interrupt. + */ +static ALT_INLINE int ALT_ALWAYS_INLINE alt_irq_enabled (void) +{ + int status; + + NIOS2_READ_STATUS (status); + + return status & NIOS2_STATUS_PIE_MSK; +} + +/* + * alt_irq_disable_all() + * + * This routine inhibits all interrupts by negating the status register PIE + * bit. It returns the previous contents of the CPU status register (IRQ + * context) which can be used to restore the status register PIE bit to its + * state before this routine was called. + */ +static ALT_INLINE alt_irq_context ALT_ALWAYS_INLINE + alt_irq_disable_all (void) +{ + alt_irq_context context; + + NIOS2_READ_STATUS (context); + + NIOS2_WRITE_STATUS (context & ~NIOS2_STATUS_PIE_MSK); + + return context; +} + +/* + * alt_irq_enable_all() + * + * Enable all interrupts that were previously disabled by alt_irq_disable_all() + * + * This routine accepts a context to restore the CPU status register PIE bit + * to the state prior to a call to alt_irq_disable_all(). + + * In the case of nested calls to alt_irq_disable_all()/alt_irq_enable_all(), + * this means that alt_irq_enable_all() does not necessarily re-enable + * interrupts. + * + * This routine will perform a read-modify-write sequence to restore only + * status.PIE if the processor is configured with options that add additional + * writeable status register bits. These include the MMU, MPU, the enhanced + * interrupt controller port, and shadow registers. Otherwise, as a performance + * enhancement, status is overwritten with the prior context. + */ +static ALT_INLINE void ALT_ALWAYS_INLINE + alt_irq_enable_all (alt_irq_context context) +{ +#if (NIOS2_NUM_OF_SHADOW_REG_SETS > 0) || (defined NIOS2_EIC_PRESENT) || \ + (defined NIOS2_MMU_PRESENT) || (defined NIOS2_MPU_PRESENT) + alt_irq_context status; + + NIOS2_READ_STATUS (status); + + status &= ~NIOS2_STATUS_PIE_MSK; + status |= (context & NIOS2_STATUS_PIE_MSK); + + NIOS2_WRITE_STATUS (status); +#else + NIOS2_WRITE_STATUS (context); +#endif +} + +/* + * The function alt_irq_init() is defined within the auto-generated file + * alt_sys_init.c. This function calls the initilization macros for all + * interrupt controllers in the system at config time, before any other + * non-interrupt controller driver is initialized. + * + * The "base" parameter is ignored and only present for backwards-compatibility. + * It is recommended that NULL is passed in for the "base" parameter. + */ +extern void alt_irq_init (const void* base); + +/* + * alt_irq_cpu_enable_interrupts() enables the CPU to start taking interrupts. + */ +static ALT_INLINE void ALT_ALWAYS_INLINE + alt_irq_cpu_enable_interrupts () +{ + NIOS2_WRITE_STATUS(NIOS2_STATUS_PIE_MSK +#if defined(NIOS2_EIC_PRESENT) && (NIOS2_NUM_OF_SHADOW_REG_SETS > 0) + | NIOS2_STATUS_RSIE_MSK +#endif + ); +} + + +/* + * Prototypes for the enhanced interrupt API. + */ +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT +/* + * alt_ic_isr_register() can be used to register an interrupt handler. If the + * function is succesful, then the requested interrupt will be enabled upon + * return. + */ +extern int alt_ic_isr_register(alt_u32 ic_id, + alt_u32 irq, + alt_isr_func isr, + void *isr_context, + void *flags); + +/* + * alt_ic_irq_enable() and alt_ic_irq_disable() enable/disable a specific + * interrupt by using IRQ port and interrupt controller instance. + */ +int alt_ic_irq_enable (alt_u32 ic_id, alt_u32 irq); +int alt_ic_irq_disable(alt_u32 ic_id, alt_u32 irq); + + /* + * alt_ic_irq_enabled() indicates whether a specific interrupt, as + * specified by IRQ port and interrupt controller instance is enabled. + */ +alt_u32 alt_ic_irq_enabled(alt_u32 ic_id, alt_u32 irq); + +#else +/* + * Prototypes for the legacy interrupt API. + */ +#include "priv/alt_legacy_irq.h" +#endif + + +/* + * alt_irq_pending() returns a bit list of the current pending interrupts. + * This is used by alt_irq_handler() to determine which registered interrupt + * handlers should be called. + * + * This routine is only available for the Nios II internal interrupt + * controller. + */ +#ifndef NIOS2_EIC_PRESENT +static ALT_INLINE alt_u32 ALT_ALWAYS_INLINE alt_irq_pending (void) +{ + alt_u32 active; + + NIOS2_READ_IPENDING (active); + + return active; +} +#endif + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __ALT_IRQ_H__ */ diff --git a/software/qsys_tutorial_lcd2_bsp/HAL/inc/sys/alt_irq_entry.h b/software/qsys_tutorial_lcd2_bsp/HAL/inc/sys/alt_irq_entry.h new file mode 100644 index 0000000..e2008d9 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/HAL/inc/sys/alt_irq_entry.h @@ -0,0 +1,39 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/* + * This file pulls in the IRQ entry assembler and C code, which is only + * required if there are any interruptes in the system. + */ + +__asm__( "\n\t.globl alt_irq_entry" ); + +__asm__( "\n\t.globl alt_irq_handler" ); + diff --git a/software/qsys_tutorial_lcd2_bsp/HAL/inc/sys/alt_license_reminder_ucosii.h b/software/qsys_tutorial_lcd2_bsp/HAL/inc/sys/alt_license_reminder_ucosii.h new file mode 100644 index 0000000..2fe649c --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/HAL/inc/sys/alt_license_reminder_ucosii.h @@ -0,0 +1,77 @@ +#ifndef __ALT_LICENSE_REMINDER_UCOSII_H__ +#define __ALT_LICENSE_REMINDER_UCOSII_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#include + +#define ALT_LICENSE_REMINDER_UCOSII_STRING \ + "============== Software License Reminder ===============\n" \ + "\n" \ + "uC/OS-II is provided in source form for FREE evaluation,\n" \ + "for educational use, or for peaceful research. If you\n" \ + "plan on using uC/OS-II in a commercial product you need\n" \ + "to contact Micrium to properly license its use in your\n" \ + "product. Micrium provides ALL the source code on the\n" \ + "Altera distribution for your convenience and to help you\n" \ + "experience uC/OS-II. The fact that the source is provided\n" \ + "does NOT mean that you can use it without paying a\n" \ + "licensing fee. Please help us continue to provide the\n" \ + "Embedded community with the finest software available.\n" \ + "Your honesty is greatly appreciated.\n" \ + "\n" \ + "Please contact:\n" \ + "\n" \ + "M I C R I U M\n" \ + "949 Crestview Circle\n" \ + "Weston, FL 33327-1848\n" \ + "U.S.A.\n" \ + "\n" \ + "Phone : +1 954 217 2036\n" \ + "FAX : +1 954 217 2037\n" \ + "WEB : www.micrium.com\n" \ + "E-mail: Sales@Micrium.com\n" \ + "\n" \ + "========================================================\n" + +#define alt_license_reminder_ucosii() puts(ALT_LICENSE_REMINDER_UCOSII_STRING) + + +#endif /* __ALT_LICENSE_REMINDER_UCOSII_H__ */ + diff --git a/software/qsys_tutorial_lcd2_bsp/HAL/inc/sys/alt_llist.h b/software/qsys_tutorial_lcd2_bsp/HAL/inc/sys/alt_llist.h new file mode 100644 index 0000000..46f81ce --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/HAL/inc/sys/alt_llist.h @@ -0,0 +1,123 @@ +#ifndef __ALT_LIST_H__ +#define __ALT_LIST_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#include "alt_types.h" + +/* + * alt_llist.h defines structures and functions for use in manipulating linked + * lists. A list is considered to be constructed from a chain of objects of + * type alt_llist, with one object being defined to be the head element. + * + * A list is considered to be empty if it only contains the head element. + */ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * alt_llist is the structure used to represent an element within a linked + * list. + */ + +typedef struct alt_llist_s alt_llist; + +struct alt_llist_s { + alt_llist* next; /* Pointer to the next element in the list. */ + alt_llist* previous; /* Pointer to the previous element in the list. */ +}; + +/* + * ALT_LLIST_HEAD is a macro that can be used to create the head of a new + * linked list. This is named "head". The head element is initialised to + * represent an empty list. + */ + +#define ALT_LLIST_HEAD(head) alt_llist head = {&head, &head} + +/* + * ALT_LLIST_ENTRY is a macro used to define an uninitialised linked list + * entry. This is used to reserve space in structure initialisation for + * structures that inherit form alt_llist. + */ + +#define ALT_LLIST_ENTRY {0, 0} + +/* + * alt_llist_insert() insert adds the linked list entry "entry" as the + * first entry in the linked list "list". "list" is the list head element. + */ + +static ALT_INLINE void ALT_ALWAYS_INLINE alt_llist_insert(alt_llist* list, + alt_llist* entry) +{ + entry->previous = list; + entry->next = list->next; + + list->next->previous = entry; + list->next = entry; +} + +/* + * alt_llist_remove() is called to remove an element from a linked list. The + * input argument is the element to remove. + */ + +static ALT_INLINE void ALT_ALWAYS_INLINE alt_llist_remove(alt_llist* entry) +{ + entry->next->previous = entry->previous; + entry->previous->next = entry->next; + + /* + * Set the entry to point to itself, so that any further calls to + * alt_llist_remove() are harmless. + */ + + entry->previous = entry; + entry->next = entry; +} + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_LLIST_H__ */ diff --git a/software/qsys_tutorial_lcd2_bsp/HAL/inc/sys/alt_load.h b/software/qsys_tutorial_lcd2_bsp/HAL/inc/sys/alt_load.h new file mode 100644 index 0000000..432e9f2 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/HAL/inc/sys/alt_load.h @@ -0,0 +1,78 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2005 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "alt_types.h" + +/* + * This macro is used to load code/data from its load address to its + * execution address for a given section. The section name is the input + * argument. Note that a leading '.' is assumed in the name. For example + * to load the section .onchip_ram, use: + * + * ALT_LOAD_SECTION_BY_NAME(onchip_ram); + * + * This requires that the apropriate linker symbols have been generated + * for the section in question. This will be the case if you are using the + * default linker script. + */ + +#define ALT_LOAD_SECTION_BY_NAME(name) \ + { \ + extern void _alt_partition_##name##_start; \ + extern void _alt_partition_##name##_end; \ + extern void _alt_partition_##name##_load_addr; \ + \ + alt_load_section(&_alt_partition_##name##_load_addr, \ + &_alt_partition_##name##_start, \ + &_alt_partition_##name##_end); \ + } + +/* + * Function used to load an individual section from flash to RAM. + * + * There is an implicit assumption here that the linker script will ensure + * that all sections are word aligned. + * + */ + +static void ALT_INLINE alt_load_section (alt_u32* from, + alt_u32* to, + alt_u32* end) +{ + if (to != from) + { + while( to != end ) + { + *to++ = *from++; + } + } +} diff --git a/software/qsys_tutorial_lcd2_bsp/HAL/inc/sys/alt_log_printf.h b/software/qsys_tutorial_lcd2_bsp/HAL/inc/sys/alt_log_printf.h new file mode 100644 index 0000000..c15ca05 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/HAL/inc/sys/alt_log_printf.h @@ -0,0 +1,349 @@ +/* alt_log_printf.h + * + * ALT_LOG is designed to provide extra logging/debugging messages from HAL + * through a different port than stdout. It is enabled by the ALT_LOG_ENABLE + * define, which needs to supplied at compile time. When logging is turned off, + * code size is unaffected. Thus, this should be transparent to the user + * when it is not actively turned on, and should not affect projects in any way. + * + * There are macros sprinkled within different components, such as the jtag uart + * and timer, in the HAL code. They are always named ALT_LOG_, and can be + * safely ignored if ALT_LOG is turned off. + * + * To turn on ALT_LOG, ALT_LOG_ENABLE must be defined, and ALT_LOG_PORT_TYPE and + * ALT_LOG_PORT_BASE must be set in system.h. This is done through editing + * .ptf, by editing the alt_log_port_type & alt_log_port_base settings. + * See the documentation html file for examples. + * + * When it is turned on, it will output extra HAL messages to a port specified + * in system.h. This can be a UART or JTAG UART port. By default it will + * output boot messages, detailing every step of the boot process. + * + * Extra logging is designed to be enabled by flags, which are defined in + * alt_log_printf.c. The default value is that all flags are off, so only the + * boot up logging messages show up. ALT_LOG_FLAGS can be set to enable certain + * groupings of flags, and that grouping is done in this file. Each flag can + * also be overridden with a -D at compile time. + * + * This header file includes the necessary prototypes for using the alt_log + * functions. It also contains all the macros that are used to remove the code + * from alt log is turned off. Also, the macros in other HAL files are defined + * here at the bottom. These macros all call some C function that is in + * alt_log_printf.c. + * + * The logging has functions for printing in C (ALT_LOG_PRINTF) and in assembly + * (ALT_LOG_PUTS). This was needed because the assembly printing occurs before + * the device is initialized. The assembly function corrupts register R4-R7, + * which are not used in the normal boot process. For this reason, do not call + * the assembly function in C. + * + * author: gkwan + */ + + +#ifndef __ALT_LOG_PRINTF_H__ +#define __ALT_LOG_PRINTF_H__ + +#include + +/* Global switch to turn on logging functions */ +#ifdef ALT_LOG_ENABLE + + /* ALT_LOG_PORT_TYPE values as defined in system.h. They are defined as + * numbers here first becasue the C preprocessor does not handle string + * comparisons. */ + #define ALTERA_AVALON_JTAG_UART 1 + #define ALTERA_AVALON_UART 0 + + /* If this .h file is included by an assembly file, skip over include files + * that won't compile in assembly. */ + #ifndef ALT_ASM_SRC + #include + #include "sys/alt_alarm.h" + #include "sys/alt_dev.h" + #ifdef __ALTERA_AVALON_JTAG_UART + #include "altera_avalon_jtag_uart.h" + #endif + #endif /* ALT_ASM_SRC */ + + /* These are included for the port register offsets and masks, needed + * to write to the port. Only include if the port type is set correctly, + * otherwise error. If alt_log is turned on and the port to output to is + * incorrect or does not exist, then should exit. */ + #if ALT_LOG_PORT_TYPE == ALTERA_AVALON_JTAG_UART + #ifdef __ALTERA_AVALON_JTAG_UART + #include + #else + #error ALT_LOG: JTAG_UART port chosen, but no JTAG_UART in system. + #endif + #elif ALT_LOG_PORT_TYPE == ALTERA_AVALON_UART + #ifdef __ALTERA_AVALON_UART + #include + #else + #error ALT_LOG: UART Port chosen, but no UART in system. + #endif + #else + #error ALT_LOG: alt_log_port_type declaration invalid! + #endif + + /* ALT_LOG_ENABLE turns on the basic printing function */ + #define ALT_LOG_PRINTF(...) do {alt_log_printf_proc(__VA_ARGS__);} while (0) + + /* Assembly macro for printing in assembly, calls tx_log_str + * which is in alt_log_macro.S. + * If alt_log_boot_on_flag is 0, skips the printing */ + #define ALT_LOG_PUTS(str) movhi r4, %hiadj(alt_log_boot_on_flag) ; \ + addi r4, r4, %lo(alt_log_boot_on_flag) ; \ + ldwio r5, 0(r4) ; \ + beq r0, r5, 0f ; \ + movhi r4, %hiadj(str) ; \ + addi r4, r4, %lo(str) ; \ + call tx_log_str ; \ + 0: + + /* These defines are here to faciliate the use of one output function + * (alt_log_txchar) to print to both the JTAG UART or the UART. Depending + * on the port type, the status register, read mask, and output register + * are set to the appropriate value for the port. */ + #if ALT_LOG_PORT_TYPE == ALTERA_AVALON_JTAG_UART + #define ALT_LOG_PRINT_REG_RD IORD_ALTERA_AVALON_JTAG_UART_CONTROL + #define ALT_LOG_PRINT_MSK ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_MSK + #define ALT_LOG_PRINT_TXDATA_WR IOWR_ALTERA_AVALON_JTAG_UART_DATA + #define ALT_LOG_PRINT_REG_OFFSET (ALTERA_AVALON_JTAG_UART_CONTROL_REG*0x4) + #define ALT_LOG_PRINT_TXDATA_REG_OFFSET (ALTERA_AVALON_JTAG_UART_DATA_REG*0x4) + #elif ALT_LOG_PORT_TYPE == ALTERA_AVALON_UART + #define ALT_LOG_PRINT_REG_RD IORD_ALTERA_AVALON_UART_STATUS + #define ALT_LOG_PRINT_MSK ALTERA_AVALON_UART_STATUS_TRDY_MSK + #define ALT_LOG_PRINT_TXDATA_WR IOWR_ALTERA_AVALON_UART_TXDATA + #define ALT_LOG_PRINT_REG_OFFSET (ALTERA_AVALON_UART_STATUS_REG*0x4) + #define ALT_LOG_PRINT_TXDATA_REG_OFFSET (ALTERA_AVALON_UART_TXDATA_REG*0x4) + #endif /* ALT_LOG_PORT */ + + /* Grouping of flags via ALT_LOG_FLAGS. Each specific flag can be set via + * -D at compile time, or else they'll be set to a default value according + * to ALT_LOG_FLAGS. ALT_LOG_FLAGS = 0 or not set is the default, where + * only the boot messages will be printed. As ALT_LOG_FLAGS increase, they + * increase in intrusiveness to the program, and will affect performance. + * + * Flag Level 1 - turns on system clock and JTAG UART startup status + * 2 - turns on write echo and JTAG_UART alarm (periodic report) + * 3 - turns on JTAG UART ISR logging - will slow performance + * significantly. + * -1 - All logging output is off, but if ALT_LOG_ENABLE is + * defined all logging function is built and code size + * remains constant + * + * Flag settings - 1 = on, 0 = off. */ + + /* This flag turns on "boot" messages for printing. This includes messages + * during crt0.S, then alt_main, and finally alt_exit. */ + #ifndef ALT_LOG_BOOT_ON_FLAG_SETTING + #if ALT_LOG_FLAGS == 1 + #define ALT_LOG_BOOT_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == 2 + #define ALT_LOG_BOOT_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == 3 + #define ALT_LOG_BOOT_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == -1 /* silent mode */ + #define ALT_LOG_BOOT_ON_FLAG_SETTING 0x0 + #else /* default setting */ + #define ALT_LOG_BOOT_ON_FLAG_SETTING 0x1 + #endif + #endif /* ALT_LOG_BOOT_ON_FLAG_SETTING */ + + #ifndef ALT_LOG_SYS_CLK_ON_FLAG_SETTING + #if ALT_LOG_FLAGS == 1 + #define ALT_LOG_SYS_CLK_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == 2 + #define ALT_LOG_SYS_CLK_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == 3 + #define ALT_LOG_SYS_CLK_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == -1 /* silent mode */ + #define ALT_LOG_SYS_CLK_ON_FLAG_SETTING 0x0 + #else /* default setting */ + #define ALT_LOG_SYS_CLK_ON_FLAG_SETTING 0x0 + #endif + #endif /* ALT_LOG_SYS_CLK_ON_FLAG_SETTING */ + + #ifndef ALT_LOG_WRITE_ON_FLAG_SETTING + #if ALT_LOG_FLAGS == 1 + #define ALT_LOG_WRITE_ON_FLAG_SETTING 0x0 + #elif ALT_LOG_FLAGS == 2 + #define ALT_LOG_WRITE_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == 3 + #define ALT_LOG_WRITE_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == -1 /* silent mode */ + #define ALT_LOG_WRITE_ON_FLAG_SETTING 0x0 + #else /* default setting */ + #define ALT_LOG_WRITE_ON_FLAG_SETTING 0x0 + #endif + #endif /* ALT_LOG_WRITE_ON_FLAG_SETTING */ + + #ifndef ALT_LOG_JTAG_UART_ALARM_ON_FLAG_SETTING + #ifndef __ALTERA_AVALON_JTAG_UART + #define ALT_LOG_JTAG_UART_ALARM_ON_FLAG_SETTING 0x0 + #elif ALT_LOG_FLAGS == 1 + #define ALT_LOG_JTAG_UART_ALARM_ON_FLAG_SETTING 0x0 + #elif ALT_LOG_FLAGS == 2 + #define ALT_LOG_JTAG_UART_ALARM_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == 3 + #define ALT_LOG_JTAG_UART_ALARM_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == -1 /* silent mode */ + #define ALT_LOG_JTAG_UART_ALARM_ON_FLAG_SETTING 0x0 + #else /* default setting */ + #define ALT_LOG_JTAG_UART_ALARM_ON_FLAG_SETTING 0x0 + #endif + #endif /* ALT_LOG_JTAG_UART_ALARM_ON_FLAG_SETTING */ + + #ifndef ALT_LOG_JTAG_UART_STARTUP_INFO_ON_FLAG_SETTING + #ifndef __ALTERA_AVALON_JTAG_UART + #define ALT_LOG_JTAG_UART_STARTUP_INFO_ON_FLAG_SETTING 0x0 + #elif ALT_LOG_FLAGS == 1 + #define ALT_LOG_JTAG_UART_STARTUP_INFO_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == 2 + #define ALT_LOG_JTAG_UART_STARTUP_INFO_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == 3 + #define ALT_LOG_JTAG_UART_STARTUP_INFO_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == -1 /* silent mode */ + #define ALT_LOG_JTAG_UART_STARTUP_INFO_ON_FLAG_SETTING 0x0 + #else /* default setting */ + #define ALT_LOG_JTAG_UART_STARTUP_INFO_ON_FLAG_SETTING 0x0 + #endif + #endif /* ALT_LOG_JTAG_UART_STARTUP_INFO_FLAG_SETTING */ + + #ifndef ALT_LOG_JTAG_UART_ISR_ON_FLAG_SETTING + #ifndef __ALTERA_AVALON_JTAG_UART + #define ALT_LOG_JTAG_UART_ISR_ON_FLAG_SETTING 0x0 + #elif ALT_LOG_FLAGS == 1 + #define ALT_LOG_JTAG_UART_ISR_ON_FLAG_SETTING 0x0 + #elif ALT_LOG_FLAGS == 2 + #define ALT_LOG_JTAG_UART_ISR_ON_FLAG_SETTING 0x0 + #elif ALT_LOG_FLAGS == 3 + #define ALT_LOG_JTAG_UART_ISR_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == -1 /* silent mode */ + #define ALT_LOG_JTAG_UART_ISR_ON_FLAG_SETTING 0x0 + #else /* default setting */ + #define ALT_LOG_JTAG_UART_ISR_ON_FLAG_SETTING 0x0 + #endif + #endif /* ALT_LOG_JTAG_UART_ISR_ON_FLAG_SETTING */ + +#ifndef ALT_ASM_SRC + /* Function Prototypes */ + void alt_log_txchar(int c,char *uartBase); + void alt_log_private_printf(const char *fmt,int base,va_list args); + void alt_log_repchar(char c,int r,int base); + int alt_log_printf_proc(const char *fmt, ... ); + void alt_log_system_clock(); + #ifdef __ALTERA_AVALON_JTAG_UART + alt_u32 altera_avalon_jtag_uart_report_log(void * context); + void alt_log_jtag_uart_startup_info(altera_avalon_jtag_uart_state* dev, int base); + void alt_log_jtag_uart_print_control_reg(altera_avalon_jtag_uart_state* dev, \ + int base, const char* header); + void alt_log_jtag_uart_isr_proc(int base, altera_avalon_jtag_uart_state* dev); + #endif + void alt_log_write(const void *ptr, size_t len); + + /* extern all global variables */ + extern volatile alt_u32 alt_log_boot_on_flag; + extern volatile alt_u8 alt_log_write_on_flag; + extern volatile alt_u8 alt_log_sys_clk_on_flag; + extern volatile alt_u8 alt_log_jtag_uart_alarm_on_flag; + extern volatile alt_u8 alt_log_jtag_uart_isr_on_flag; + extern volatile alt_u8 alt_log_jtag_uart_startup_info_on_flag; + extern volatile int alt_log_sys_clk_count; + extern volatile int alt_system_clock_in_sec; + extern alt_alarm alt_log_jtag_uart_alarm_1; +#endif /* ALT_ASM_SRC */ + + + /* Below are the MACRO defines used in various HAL files. They check + * if their specific flag is turned on; if it is, then it executes its + * code. + * + * To keep this file reasonable, most of these macros calls functions, + * which are defined in alt_log_printf.c. Look there for implementation + * details. */ + + /* Boot Messages Logging */ + #define ALT_LOG_PRINT_BOOT(...) \ + do { if (alt_log_boot_on_flag==1) {ALT_LOG_PRINTF(__VA_ARGS__);} \ + } while (0) + + /* JTAG UART Logging */ + /* number of ticks before alarm runs logging function */ + #ifndef ALT_LOG_JTAG_UART_TICKS_DIVISOR + #define ALT_LOG_JTAG_UART_TICKS_DIVISOR 10 + #endif + #ifndef ALT_LOG_JTAG_UART_TICKS + #define ALT_LOG_JTAG_UART_TICKS \ + (alt_ticks_per_second()/ALT_LOG_JTAG_UART_TICKS_DIVISOR) + #endif + + /* if there's a JTAG UART defined, then enable these macros */ + #ifdef __ALTERA_AVALON_JTAG_UART + + /* Macro in altera_avalon_jtag_uart.c, to register the alarm function. + * Also, the startup register info is also printed here, as this is + * called within the device driver initialization. */ + #define ALT_LOG_JTAG_UART_ALARM_REGISTER(dev, base) \ + do { if (alt_log_jtag_uart_alarm_on_flag==1) { \ + alt_alarm_start(&alt_log_jtag_uart_alarm_1, \ + ALT_LOG_JTAG_UART_TICKS, &altera_avalon_jtag_uart_report_log,\ + dev);} \ + if (alt_log_jtag_uart_startup_info_on_flag==1) {\ + alt_log_jtag_uart_startup_info(dev, base);} \ + } while (0) + + /* JTAG UART IRQ Logging (when buffer is empty) + * Inserted in the ISR in altera_avalon_jtag_uart.c */ + #define ALT_LOG_JTAG_UART_ISR_FUNCTION(base, dev) \ + do { alt_log_jtag_uart_isr_proc(base, dev); } while (0) + /* else, define macros to nothing. Or else the jtag_uart specific types + * will throw compiler errors */ + #else + #define ALT_LOG_JTAG_UART_ALARM_REGISTER(dev, base) + #define ALT_LOG_JTAG_UART_ISR_FUNCTION(base, dev) + #endif + + /* System clock logging + * How often (in seconds) the system clock logging prints. + * The default value is every 1 second */ + #ifndef ALT_LOG_SYS_CLK_INTERVAL_MULTIPLIER + #define ALT_LOG_SYS_CLK_INTERVAL_MULTIPLIER 1 + #endif + #ifndef ALT_LOG_SYS_CLK_INTERVAL + #define ALT_LOG_SYS_CLK_INTERVAL \ + (alt_ticks_per_second()*ALT_LOG_SYS_CLK_INTERVAL_MULTIPLIER) + #endif + + /* System clock logging - prints a message every interval (set above) + * to show that the system clock is alive. + * This macro is used in altera_avalon_timer_sc.c */ + #define ALT_LOG_SYS_CLK_HEARTBEAT() \ + do { alt_log_system_clock(); } while (0) + + /* alt_write_logging - echos a message every time write() is called, + * displays the first ALT_LOG_WRITE_ECHO_LEN characters. + * This macro is used in alt_write.c */ + #ifndef ALT_LOG_WRITE_ECHO_LEN + #define ALT_LOG_WRITE_ECHO_LEN 15 + #endif + + #define ALT_LOG_WRITE_FUNCTION(ptr,len) \ + do { alt_log_write(ptr,len); } while (0) + +#else /* ALT_LOG_ENABLE not defined */ + + /* logging is off, set all relevant macros to null */ + #define ALT_LOG_PRINT_BOOT(...) + #define ALT_LOG_PRINTF(...) + #define ALT_LOG_JTAG_UART_ISR_FUNCTION(base, dev) + #define ALT_LOG_JTAG_UART_ALARM_REGISTER(dev, base) + #define ALT_LOG_SYS_CLK_HEARTBEAT() + #define ALT_LOG_PUTS(str) + #define ALT_LOG_WRITE_FUNCTION(ptr,len) + +#endif /* ALT_LOG_ENABLE */ + +#endif /* __ALT_LOG_PRINTF_H__ */ + diff --git a/software/qsys_tutorial_lcd2_bsp/HAL/inc/sys/alt_set_args.h b/software/qsys_tutorial_lcd2_bsp/HAL/inc/sys/alt_set_args.h new file mode 100644 index 0000000..3750e67 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/HAL/inc/sys/alt_set_args.h @@ -0,0 +1,71 @@ +#ifndef __ALT_SET_ARGS_H__ +#define __ALT_SET_ARGS_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * The function alt_set_args() is provided in order to define the input + * arguments to main(). If this function is not called before main() then the + * argument list passed to main() will be empty. + * + * It is expected that this function will only be used by the ihost/iclient + * utility. + */ + +static inline void alt_set_args (int argc, char** argv, char** envp) +{ + extern int alt_argc; + extern char** alt_argv; + extern char** alt_envp; + + alt_argc = argc; + alt_argv = argv; + alt_envp = envp; +} + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_SET_ARGS_H__ */ diff --git a/software/qsys_tutorial_lcd2_bsp/HAL/inc/sys/alt_sim.h b/software/qsys_tutorial_lcd2_bsp/HAL/inc/sys/alt_sim.h new file mode 100644 index 0000000..06bd27a --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/HAL/inc/sys/alt_sim.h @@ -0,0 +1,91 @@ +#ifndef __ALT_SIM_H__ +#define __ALT_SIM_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2007 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ +#include "system.h" +#include "alt_types.h" + +/* + * Instructions that might mean something special to a simulator. + * These have no special effect on real hardware (they are just nops). + */ +#define ALT_SIM_FAIL() \ + do { __asm volatile ("cmpltui r0, r0, 0xabc1"); } while (0) + +#define ALT_SIM_PASS() \ + do { __asm volatile ("cmpltui r0, r0, 0xabc2"); } while (0) + +#define ALT_SIM_IN_TOP_OF_HOT_LOOP() \ + do { __asm volatile ("cmpltui r0, r0, 0xabc3"); } while (0) + +/* + * Routine called on exit. + */ +static ALT_ALWAYS_INLINE void alt_sim_halt(int exit_code) +{ + int r2 = exit_code; + +#if defined(NIOS2_HAS_DEBUG_STUB) && (defined(ALT_BREAK_ON_EXIT) || defined(ALT_PROVIDE_GMON)) + + int r3 = (1 << 2); + +#ifdef ALT_PROVIDE_GMON + extern unsigned int alt_gmon_data[]; + int r4 = (int)alt_gmon_data; + r3 |= (1 << 4); +#define ALT_GMON_DATA ,"D04"(r4) +#else +#define ALT_GMON_DATA +#endif /* ALT_PROVIDE_GMON */ + + if (r2) { + ALT_SIM_FAIL(); + } else { + ALT_SIM_PASS(); + } + + __asm__ volatile ("\n0:\n\taddi %0,%0, -1\n\tbgt %0,zero,0b" : : "r" (ALT_CPU_FREQ/100) ); /* Delay for >30ms */ + + __asm__ volatile ("break 2" : : "D02"(r2), "D03"(r3) ALT_GMON_DATA ); + +#else /* !DEBUG_STUB */ + if (r2) { + ALT_SIM_FAIL(); + } else { + ALT_SIM_PASS(); + } +#endif /* DEBUG_STUB */ +} + +#define ALT_SIM_HALT(exit_code) \ + alt_sim_halt(exit_code) + +#endif /* __ALT_SIM_H__ */ diff --git a/software/qsys_tutorial_lcd2_bsp/HAL/inc/sys/alt_stack.h b/software/qsys_tutorial_lcd2_bsp/HAL/inc/sys/alt_stack.h new file mode 100644 index 0000000..e30652a --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/HAL/inc/sys/alt_stack.h @@ -0,0 +1,126 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#ifndef __ALT_STACK_H__ +#define __ALT_STACK_H__ + +/* + * alt_stack.h is the nios2 specific implementation of functions used by the + * stack overflow code. + */ + +#include "nios2.h" + +#include "alt_types.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + + +extern char * alt_stack_limit_value; + +#ifdef ALT_EXCEPTION_STACK +extern char __alt_exception_stack_pointer[]; /* set by the linker */ +#endif /* ALT_EXCEPTION_STACK */ + + +/* + * alt_stack_limit can be called to determine the current value of the stack + * limit register. + */ + +static ALT_INLINE char * ALT_ALWAYS_INLINE alt_stack_limit (void) +{ + char * limit; + NIOS2_READ_ET(limit); + + return limit; +} + +/* + * alt_stack_pointer can be called to determine the current value of the stack + * pointer register. + */ + +static ALT_INLINE char * ALT_ALWAYS_INLINE alt_stack_pointer (void) +{ + char * pointer; + NIOS2_READ_SP(pointer); + + return pointer; +} + + +#ifdef ALT_EXCEPTION_STACK + +/* + * alt_exception_stack_pointer returns the normal stack pointer from + * where it is stored on the exception stack (uppermost 4 bytes). This + * is really only useful during exception processing, and is only + * available if a separate exception stack has been configured. + */ + +static ALT_INLINE char * ALT_ALWAYS_INLINE alt_exception_stack_pointer (void) +{ + return (char *) *(alt_u32 *)(__alt_exception_stack_pointer - sizeof(alt_u32)); +} + +#endif /* ALT_EXCEPTION_STACK */ + + +/* + * alt_set_stack_limit can be called to update the current value of the stack + * limit register. + */ + +static ALT_INLINE void ALT_ALWAYS_INLINE alt_set_stack_limit (char * limit) +{ + alt_stack_limit_value = limit; + NIOS2_WRITE_ET(limit); +} + +/* + * alt_report_stack_overflow reports that a stack overflow happened. + */ + +static ALT_INLINE void ALT_ALWAYS_INLINE alt_report_stack_overflow (void) +{ + NIOS2_REPORT_STACK_OVERFLOW(); +} + + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __ALT_STACK_H__ */ + diff --git a/software/qsys_tutorial_lcd2_bsp/HAL/inc/sys/alt_stdio.h b/software/qsys_tutorial_lcd2_bsp/HAL/inc/sys/alt_stdio.h new file mode 100644 index 0000000..1730360 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/HAL/inc/sys/alt_stdio.h @@ -0,0 +1,62 @@ +#ifndef __ALT_STDIO_H__ +#define __ALT_STDIO_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +/* + * Definitions for ALT stdio routines. + */ + +#include + + +#ifdef __cplusplus +extern "C" { +#endif + +int alt_getchar(); +int alt_putchar(int c); +int alt_putstr(const char* str); +void alt_printf(const char *fmt, ...); + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_STDIO_H__ */ diff --git a/software/qsys_tutorial_lcd2_bsp/HAL/inc/sys/alt_sys_init.h b/software/qsys_tutorial_lcd2_bsp/HAL/inc/sys/alt_sys_init.h new file mode 100644 index 0000000..e4abc28 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/HAL/inc/sys/alt_sys_init.h @@ -0,0 +1,62 @@ +#ifndef __ALT_SYS_INIT_H__ +#define __ALT_SYS_INIT_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * The function alt_sys_init() is defined within the auto-generated file: + * alt_sys_init.c. This function calls the initilisation macros for all + * devices, file systems, and software components within the system. + * + * The list of initilisation macros to use is constructed using the PTF and + * STF files associated with the system. + */ + +extern void alt_sys_init (void); + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_SYS_INIT_H__ */ diff --git a/software/qsys_tutorial_lcd2_bsp/HAL/inc/sys/alt_sys_wrappers.h b/software/qsys_tutorial_lcd2_bsp/HAL/inc/sys/alt_sys_wrappers.h new file mode 100644 index 0000000..044833b --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/HAL/inc/sys/alt_sys_wrappers.h @@ -0,0 +1,100 @@ +#ifndef __ALT_SYS_WRAPPERS_H__ +#define __ALT_SYS_WRAPPERS_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/* + * This file provides the prototypes for the HAL 'UNIX style functions. The + * names of these functions are defined in alt_syscall.h. THese are defined to + * be the standard names when running the standalone HAL, e.g. open(), close() + * etc., but the names may be redefined as a part of an operating system port + * in order to avoid name clashes. + */ + +#include "os/alt_syscall.h" + +#include +#include +#include +#include +#include +#include + +extern int ALT_CLOSE (int __fd); +extern int ALT_EXECVE (const char *__path, + char * const __argv[], + char * const __envp[]); +extern void ALT_EXIT (int __status); +extern int ALT_FSTAT (int file, struct stat *st); +extern int ALT_FCNTL (int file, int cmd, ...); +extern pid_t ALT_FORK (void); +extern pid_t ALT_GETPID (void); + +#if defined (__GNUC__) && __GNUC__ >= 4 +extern int ALT_GETTIMEOFDAY (struct timeval *ptimeval, + void *ptimezone); +#else +extern int ALT_GETTIMEOFDAY (struct timeval *ptimeval, + struct timezone *ptimezone); +#endif + +extern int ALT_IOCTL (int file, int req, void* arg); +extern int ALT_ISATTY (int file); +extern int ALT_KILL (int pid, int sig); +extern int ALT_LINK (const char *existing, const char *new); +extern off_t ALT_LSEEK (int file, off_t ptr, int dir); +extern int ALT_OPEN (const char* file, int flags, ...); +extern int ALT_READ (int file, void *ptr, size_t len); +extern int ALT_RENAME (char *existing, char *new); +extern void* ALT_SBRK (ptrdiff_t incr); +extern int ALT_SETTIMEOFDAY (const struct timeval *t, + const struct timezone *tz); +extern int ALT_STAT (const char *file, struct stat *st); +extern clock_t ALT_TIMES (struct tms *buf); +extern int ALT_UNLINK (const char *name); + +#if defined (__GNUC__) && __GNUC__ >= 4 +int ALT_USLEEP (useconds_t us); +#else +unsigned int ALT_USLEEP (unsigned int us); +#endif + +extern int ALT_WAIT (int *status); +extern int ALT_WRITE (int file, const void *ptr, size_t len); + + +extern char** ALT_ENVIRON; + +/* + * + */ + +#endif /* __ALT_SYS_WRAPPERS_H__ */ diff --git a/software/qsys_tutorial_lcd2_bsp/HAL/inc/sys/alt_timestamp.h b/software/qsys_tutorial_lcd2_bsp/HAL/inc/sys/alt_timestamp.h new file mode 100644 index 0000000..8a18da2 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/HAL/inc/sys/alt_timestamp.h @@ -0,0 +1,60 @@ +#ifndef __ALT_TIMESTAMP_H__ +#define __ALT_TIMESTAMP_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#include "alt_types.h" +#include "altera_avalon_timer.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +extern int alt_timestamp_start (void); + +extern alt_timestamp_type alt_timestamp (void); + +extern alt_u32 alt_timestamp_freq (void); + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_TIMESTAMP_H__ */ diff --git a/software/qsys_tutorial_lcd2_bsp/HAL/inc/sys/alt_warning.h b/software/qsys_tutorial_lcd2_bsp/HAL/inc/sys/alt_warning.h new file mode 100644 index 0000000..b66e71a --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/HAL/inc/sys/alt_warning.h @@ -0,0 +1,75 @@ +#ifndef __WARNING_H__ +#define __WARNING_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/* + * alt_warning.h provides macro definitions that can be used to generate link + * time warnings. + */ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * The symbol "__alt_invalid" is used to force a link error. There should be + * no corresponding implementation of this function. + */ + +extern void __alt_invalid (void); + +#define ALT_LINK_WARNING(symbol, msg) \ + __asm__(".ifndef __evoke_link_warning_" #symbol \ + "\n\t .section .gnu.warning." #symbol \ + "\n__evoke_link_warning_" #symbol ":\n\t .string \x22" msg "\x22 \n\t .previous" \ + "\n .endif"); + +/* A canned warning for sysdeps/stub functions. */ + +#define ALT_STUB_WARNING(name) \ + ALT_LINK_WARNING (name, \ + "warning: " #name " is not implemented and will always fail") + +#define ALT_OBSOLETE_FUNCTION_WARNING(name) \ + ALT_LINK_WARNING (name, \ + "warning: " #name " is a deprecated function") + +#define ALT_LINK_ERROR(msg) \ + ALT_LINK_WARNING (__alt_invalid, msg); \ + __alt_invalid() + +#ifdef __cplusplus +} +#endif + +#endif /* __WARNING_H__ */ diff --git a/software/qsys_tutorial_lcd2_bsp/HAL/inc/sys/ioctl.h b/software/qsys_tutorial_lcd2_bsp/HAL/inc/sys/ioctl.h new file mode 100644 index 0000000..4d565df --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/HAL/inc/sys/ioctl.h @@ -0,0 +1,90 @@ +#ifndef __IOCTL_H__ +#define __IOCTL_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * The ioctl() system call be used to initiate a variety of control operations + * on a file descriptor. For the most part this simply translates to a call to + * the ioctl() function of the associated device driver (TIOCEXCL and + * TIOCNXCL are notable exceptions - see ioctl.c for details). + * + * The interpretation of the ioctl requests are therefore device specific. + * + * This function is equivalent to the standard Posix ioctl() call. + */ + +extern int ioctl (int fd, int req, void* arg); + +/* + * list of ioctl calls handled by the system ioctl implementation. + */ + +#define TIOCEXCL 0x740d /* exclusive use of the device */ +#define TIOCNXCL 0x740e /* allow multiple use of the device */ + +/* + * ioctl calls which can be handled by device drivers. + */ + +#define TIOCOUTQ 0x7472 /* get output queue size */ +#define TIOCMGET 0x741d /* get termios flags */ +#define TIOCMSET 0x741a /* set termios flags */ + +/* + * ioctl calls specific to JTAG UART. + */ + +#define TIOCSTIMEOUT 0x6a01 /* Set Timeout before assuming no host present */ +#define TIOCGCONNECTED 0x6a02 /* Get indication of whether host is connected */ + +/* + * + */ + +#ifdef __cplusplus +} +#endif + +#endif /* __IOCTL_H__ */ diff --git a/software/qsys_tutorial_lcd2_bsp/HAL/inc/sys/termios.h b/software/qsys_tutorial_lcd2_bsp/HAL/inc/sys/termios.h new file mode 100644 index 0000000..cd09539 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/HAL/inc/sys/termios.h @@ -0,0 +1,181 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +/* + * This is the termios.h file provided with newlib. The only modification has + * been to the baud rate macro definitions, and an increase in the size of the + * termios structure to accomodate this. + */ + + +#ifndef _SYS_TERMIOS_H +# define _SYS_TERMIOS_H + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +# define _XCGETA (('x'<<8)|1) +# define _XCSETA (('x'<<8)|2) +# define _XCSETAW (('x'<<8)|3) +# define _XCSETAF (('x'<<8)|4) +# define _TCSBRK (('T'<<8)|5) +# define _TCFLSH (('T'<<8)|7) +# define _TCXONC (('T'<<8)|6) + +# define TCOOFF 0 +# define TCOON 1 +# define TCIOFF 2 +# define TCION 3 + +# define TCIFLUSH 0 +# define TCOFLUSH 1 +# define TCIOFLUSH 2 + +# define NCCS 13 + +# define TCSAFLUSH _XCSETAF +# define TCSANOW _XCSETA +# define TCSADRAIN _XCSETAW +# define TCSADFLUSH _XCSETAF + +# define IGNBRK 000001 +# define BRKINT 000002 +# define IGNPAR 000004 +# define INPCK 000020 +# define ISTRIP 000040 +# define INLCR 000100 +# define IGNCR 000200 +# define ICRNL 000400 +# define IXON 002000 +# define IXOFF 010000 + +# define OPOST 000001 +# define OCRNL 000004 +# define ONLCR 000010 +# define ONOCR 000020 +# define TAB3 014000 + +# define CLOCAL 004000 +# define CREAD 000200 +# define CSIZE 000060 +# define CS5 0 +# define CS6 020 +# define CS7 040 +# define CS8 060 +# define CSTOPB 000100 +# define HUPCL 002000 +# define PARENB 000400 +# define PAODD 001000 + +#define CCTS_OFLOW 010000 +#define CRTS_IFLOW 020000 +#define CRTSCTS (CCTS_OFLOW | CRTS_IFLOW) + +# define ECHO 0000010 +# define ECHOE 0000020 +# define ECHOK 0000040 +# define ECHONL 0000100 +# define ICANON 0000002 +# define IEXTEN 0000400 /* anybody know *what* this does?! */ +# define ISIG 0000001 +# define NOFLSH 0000200 +# define TOSTOP 0001000 + +# define VEOF 4 /* also VMIN -- thanks, AT&T */ +# define VEOL 5 /* also VTIME -- thanks again */ +# define VERASE 2 +# define VINTR 0 +# define VKILL 3 +# define VMIN 4 /* also VEOF */ +# define VQUIT 1 +# define VSUSP 10 +# define VTIME 5 /* also VEOL */ +# define VSTART 11 +# define VSTOP 12 + +# define B0 0 +# define B50 50 +# define B75 75 +# define B110 110 +# define B134 134 +# define B150 150 +# define B200 200 +# define B300 300 +# define B600 600 +# define B1200 1200 +# define B1800 1800 +# define B2400 2400 +# define B4800 4800 +# define B9600 9600 +# define B19200 19200 +# define B38400 38400 +# define B57600 57600 +# define B115200 115200 + +typedef unsigned char cc_t; +typedef unsigned short tcflag_t; +typedef unsigned long speed_t; + +struct termios { + tcflag_t c_iflag; + tcflag_t c_oflag; + tcflag_t c_cflag; + tcflag_t c_lflag; + char c_line; + cc_t c_cc[NCCS]; + speed_t c_ispeed; + speed_t c_ospeed; +}; + +# ifndef _NO_MACROS + +# define cfgetospeed(tp) ((tp)->c_ospeed) +# define cfgetispeed(tp) ((tp)->c_ispeed) +# define cfsetospeed(tp,s) (((tp)->c_ospeed = (s)), 0) +# define cfsetispeed(tp,s) (((tp)->c_ispeed = (s)), 0) +# define tcdrain(fd) _ioctl (fd, _TCSBRK, 1) +# endif /* _NO_MACROS */ + +#ifdef __cplusplus +} +#endif + +#endif /* _SYS_TERMIOS_H */ + diff --git a/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_alarm_start.c b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_alarm_start.c new file mode 100644 index 0000000..7739959 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_alarm_start.c @@ -0,0 +1,112 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +#include "sys/alt_alarm.h" +#include "sys/alt_irq.h" + +/* + * alt_alarm_start is called to register an alarm with the system. The + * "alarm" structure passed as an input argument does not need to be + * initialised by the user. This is done within this function. + * + * The remaining input arguments are: + * + * nticks - The time to elapse until the alarm executes. This is specified in + * system clock ticks. + * callback - The function to run when the indicated time has elapsed. + * context - An opaque value, passed to the callback function. +* + * Care should be taken when defining the callback function since it is + * likely to execute in interrupt context. In particular, this mean that + * library calls like printf() should not be made, since they can result in + * deadlock. + * + * The interval to be used for the next callback is the return + * value from the callback function. A return value of zero indicates that the + * alarm should be unregistered. + * + * alt_alarm_start() will fail if the timer facility has not been enabled + * (i.e. there is no system clock). Failure is indicated by a negative return + * value. + */ + +int alt_alarm_start (alt_alarm* alarm, alt_u32 nticks, + alt_u32 (*callback) (void* context), + void* context) +{ + alt_irq_context irq_context; + alt_u32 current_nticks = 0; + + if (alt_ticks_per_second ()) + { + if (alarm) + { + alarm->callback = callback; + alarm->context = context; + + irq_context = alt_irq_disable_all (); + + current_nticks = alt_nticks(); + + alarm->time = nticks + current_nticks + 1; + + /* + * If the desired alarm time causes a roll-over, set the rollover + * flag. This will prevent the subsequent tick event from causing + * an alarm too early. + */ + if(alarm->time < current_nticks) + { + alarm->rollover = 1; + } + else + { + alarm->rollover = 0; + } + + alt_llist_insert (&alt_alarm_list, &alarm->llist); + alt_irq_enable_all (irq_context); + + return 0; + } + else + { + return -EINVAL; + } + } + else + { + return -ENOTSUP; + } +} diff --git a/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_busy_sleep.c b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_busy_sleep.c new file mode 100644 index 0000000..561c0be --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_busy_sleep.c @@ -0,0 +1,133 @@ +/* + * Copyright (c) 2003-2004 Altera Corporation, San Jose, California, USA. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + * ------------ + * + * Altera does not recommend, suggest or require that this reference design + * file be used in conjunction or combination with any other product. + * + * alt_busy_sleep.c - Microsecond delay routine which uses a calibrated busy + * loop to perform the delay. This is used to implement + * usleep for both uC/OS-II and the standalone HAL. + * + * Author PRR + * + * Calibrated delay with no timer required + * + * The ASM instructions in the routine are equivalent to + * + * for (i=0;i +#include + +#include "system.h" +#include "alt_types.h" + +#include "priv/alt_busy_sleep.h" + +unsigned int alt_busy_sleep (unsigned int us) +{ +/* + * Only delay if ALT_SIM_OPTIMIZE is not defined; i.e., if software + * is built targetting ModelSim RTL simulation, the delay will be + * skipped to speed up simulation. + */ +#ifndef ALT_SIM_OPTIMIZE + int i; + int big_loops; + alt_u32 cycles_per_loop; + + if (!strcmp(NIOS2_CPU_IMPLEMENTATION,"tiny")) + { + cycles_per_loop = 9; + } + else + { + cycles_per_loop = 3; + } + + + big_loops = us / (INT_MAX/ + (ALT_CPU_FREQ/(cycles_per_loop * 1000000))); + + if (big_loops) + { + for(i=0;i + +#include "sys/alt_errno.h" +#include "sys/alt_warning.h" +#include "priv/alt_file.h" +#include "os/alt_syscall.h" + +#ifdef ALT_USE_DIRECT_DRIVERS + +int ALT_CLOSE (int fildes) +{ + /* Generate a link time warning, should this function ever be called. */ + + ALT_STUB_WARNING(close); + + /* Indicate an error */ + + ALT_ERRNO = ENOSYS; + return -1; +} + +#else /* !ALT_USE_DIRECT_DRIVERS */ + +/* + * close() is called by an application to release a file descriptor. If the + * associated file system/device has a close() callback function registered + * then this called. The file descriptor is then marked as free. + * + * ALT_CLOSE is mapped onto the close() system call in alt_syscall.h + */ + +int ALT_CLOSE (int fildes) +{ + alt_fd* fd; + int rval; + + /* + * A common error case is that when the file descriptor was created, the call + * to open() failed resulting in a negative file descriptor. This is trapped + * below so that we don't try and process an invalid file descriptor. + */ + + fd = (fildes < 0) ? NULL : &alt_fd_list[fildes]; + + if (fd) + { + /* + * If the associated file system/device has a close function, call it so + * that any necessary cleanup code can run. + */ + + rval = (fd->dev->close) ? fd->dev->close(fd) : 0; + + /* Free the file descriptor structure and return. */ + + alt_release_fd (fildes); + if (rval < 0) + { + ALT_ERRNO = -rval; + return -1; + } + return 0; + } + else + { + ALT_ERRNO = EBADFD; + return -1; + } +} + +#endif /* ALT_USE_DIRECT_DRIVERS */ diff --git a/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_dcache_flush.c b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_dcache_flush.c new file mode 100644 index 0000000..7ecc91a --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_dcache_flush.c @@ -0,0 +1,97 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003-2005 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "nios2.h" +#include "system.h" + +#include "alt_types.h" +#include "sys/alt_cache.h" + +/* + * Nios II version 1.2 and newer supports the "flush by address" instruction, in + * addition to the "flush by line" instruction provided by older versions of + * the core. This newer instruction is used by preference when it is + * available. + */ + +#ifdef NIOS2_FLUSHDA_SUPPORTED +#define ALT_FLUSH_DATA(i) __asm__ volatile ("flushda (%0)" :: "r" (i)); +#else +#define ALT_FLUSH_DATA(i) __asm__ volatile ("flushd (%0)" :: "r" (i)); +#endif /* NIOS2_FLUSHDA_SUPPORTED */ + +/* + * alt_dcache_flush() is called to flush the data cache for a memory + * region of length "len" bytes, starting at address "start". + * + * Any dirty lines in the data cache are written back to memory. + */ + +void alt_dcache_flush (void* start, alt_u32 len) +{ +#if NIOS2_DCACHE_SIZE > 0 + + char* i; + char* end; + + /* + * This is the most we would ever need to flush. + * + * SPR 196942, 2006.01.13: The cache flush loop below will use the + * 'flushda' instruction if its available; in that case each line + * must be flushed individually, and thus 'len' cannot be trimmed. + */ + #ifndef NIOS2_FLUSHDA_SUPPORTED + if (len > NIOS2_DCACHE_SIZE) + { + len = NIOS2_DCACHE_SIZE; + } + #endif + + end = ((char*) start) + len; + + for (i = start; i < end; i+= NIOS2_DCACHE_LINE_SIZE) + { + ALT_FLUSH_DATA(i); + } + + /* + * For an unaligned flush request, we've got one more line left. + * Note that this is dependent on NIOS2_DCACHE_LINE_SIZE to be a + * multiple of 2 (which it always is). + */ + + if (((alt_u32) start) & (NIOS2_DCACHE_LINE_SIZE - 1)) + { + ALT_FLUSH_DATA(i); + } + +#endif /* NIOS2_DCACHE_SIZE > 0 */ +} diff --git a/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_dcache_flush_all.c b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_dcache_flush_all.c new file mode 100644 index 0000000..6529231 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_dcache_flush_all.c @@ -0,0 +1,51 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003-2005 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "nios2.h" +#include "system.h" + +#include "alt_types.h" +#include "sys/alt_cache.h" + +/* + * alt_dcache_flush_all() is called to flush the entire data cache. + */ + +void alt_dcache_flush_all (void) +{ +#if NIOS2_DCACHE_SIZE > 0 + char* i; + + for (i = (char*) 0; i < (char*) NIOS2_DCACHE_SIZE; i+= NIOS2_DCACHE_LINE_SIZE) + { + __asm__ volatile ("flushd (%0)" :: "r" (i)); + } +#endif /* NIOS2_DCACHE_SIZE > 0 */ +} diff --git a/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_dcache_flush_no_writeback.c b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_dcache_flush_no_writeback.c new file mode 100644 index 0000000..c65ca7d --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_dcache_flush_no_writeback.c @@ -0,0 +1,88 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2007 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "nios2.h" +#include "system.h" + +#include "alt_types.h" +#include "sys/alt_cache.h" + +/* + * The INITDA instruction was added to Nios II in the 8.0 release. + * + * The INITDA instruction has one of the following possible behaviors + * depending on the processor configuration: + * 1) Flushes a line by address but does NOT write back dirty data. + * Occurs when a data cache is present that supports INITDA. + * The macro NIOS2_INITDA_SUPPORTED is defined in system.h. + * 2) Takes an unimplemented instruction exception. + * Occurs when a data cache is present that doesn't support INITDA. + * 3) Performs no operation + * Occurs when there is no data cache present. + * The macro NIOS2_DCACHE_SIZE is 0 in system.h. + */ + +#define ALT_FLUSH_DATA_NO_WRITEBACK(i) \ + __asm__ volatile ("initda (%0)" :: "r" (i)); + +/* + * alt_dcache_flush_no_writeback() is called to flush the data cache for a + * memory region of length "len" bytes, starting at address "start". + * + * Any dirty lines in the data cache are NOT written back to memory. + * Make sure you really want this behavior. If you aren't 100% sure, + * use the alt_dcache_flush() routine instead. + */ + +void alt_dcache_flush_no_writeback (void* start, alt_u32 len) +{ +#if defined(NIOS2_INITDA_SUPPORTED) + + char* i; + char* end = ((char*) start) + len; + + for (i = start; i < end; i+= NIOS2_DCACHE_LINE_SIZE) + { + ALT_FLUSH_DATA_NO_WRITEBACK(i); + } + + /* + * For an unaligned flush request, we've got one more line left. + * Note that this is dependent on NIOS2_DCACHE_LINE_SIZE to be a + * multiple of 2 (which it always is). + */ + + if (((alt_u32) start) & (NIOS2_DCACHE_LINE_SIZE - 1)) + { + ALT_FLUSH_DATA_NO_WRITEBACK(i); + } + +#endif /* NIOS2_INITDA_SUPPORTED */ +} diff --git a/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_dev.c b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_dev.c new file mode 100644 index 0000000..ebc15e5 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_dev.c @@ -0,0 +1,149 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include +#include +#include +#include + +#include "sys/alt_dev.h" +#include "priv/alt_file.h" + +#include "alt_types.h" + +#include "system.h" + +/* + * This file contains the data constructs used to control access to device and + * filesytems. + */ + +/* + * "alt_fs_list" is the head of a linked list of registered filesystems. It is + * initialised as an empty list. New entries can be added using the + * alt_fs_reg() function. + */ + +ALT_LLIST_HEAD(alt_fs_list); + + +/* + * "alt_dev_list" is the head of a linked list of registered devices. It is + * configured at startup to include a single device, "alt_dev_null". This + * device is discussed below. + */ + +extern alt_dev alt_dev_null; /* forward declaration */ + +alt_llist alt_dev_list = {&alt_dev_null.llist, &alt_dev_null.llist}; + +/* + * alt_dev_null_write() is the implementation of the write() function used + * by the alt_dev_null device. It simple discards all data passed to it, and + * indicates that the data has been successfully transmitted. + */ + +static int alt_dev_null_write (alt_fd* fd, const char* ptr, int len) +{ + return len; +} + +/* + * "alt_dev_null" is used to allow output to be redirected to nowhere. It is + * the only device registered before the call to alt_sys_init(). At startup + * stin, stdout & stderr are all directed towards this device so that library + * calls like printf() will be safe but inefectual. + */ + +alt_dev alt_dev_null = { + { + &alt_dev_list, + &alt_dev_list + }, + "/dev/null", + NULL, /* open */ + NULL, /* close */ + NULL, /* write */ + alt_dev_null_write, /* write */ + NULL, /* lseek */ + NULL, /* fstat */ + NULL /* ioctl */ + }; + +/* + * "alt_fd_list_lock" is a semaphore used to control access to the file + * descriptor list. This is used to ensure that access to the list is thread + * safe. + */ + +ALT_SEM(alt_fd_list_lock) + +/* + * "alt_max_fd" is used to make access to the file descriptor list more + * efficent. It is set to be the value of the highest allocated file + * descriptor. This saves having to search the entire pool of unallocated + * file descriptors when looking for a match. + */ + +alt_32 alt_max_fd = -1; + +/* + * "alt_fd_list" is the file descriptor pool. The first three entries in the + * array are configured as standard in, standard out, and standard error. These + * are all initialised so that accesses are directed to the alt_dev_null + * device. The remaining file descriptors are initialised as unallocated. + * + * The maximum number of file descriptors within the system is specified by the + * user defined macro "ALT_MAX_FD". This is defined in "system.h", which is + * auto-genereated using the projects PTF and STF files. + */ + +alt_fd alt_fd_list[ALT_MAX_FD] = + { + { + &alt_dev_null, /* standard in */ + 0, + 0 + }, + { + &alt_dev_null, /* standard out */ + 0, + 0 + }, + { + &alt_dev_null, /* standard error */ + 0, + 0 + } + /* all other elements are set to zero */ + }; diff --git a/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_dev_llist_insert.c b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_dev_llist_insert.c new file mode 100644 index 0000000..fa7239d --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_dev_llist_insert.c @@ -0,0 +1,59 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "priv/alt_dev_llist.h" +#include "sys/alt_errno.h" + +/* + * + */ + +int alt_dev_llist_insert (alt_dev_llist* dev, alt_llist* list) +{ + /* + * check that the device exists, and that it has a valid name. + */ + + if (!dev || !dev->name) + { + ALT_ERRNO = EINVAL; + return -EINVAL; + } + + /* + * register the device. + */ + + alt_llist_insert(list, &dev->llist); + + return 0; +} diff --git a/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_dma_rxchan_open.c b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_dma_rxchan_open.c new file mode 100644 index 0000000..6ea3b78 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_dma_rxchan_open.c @@ -0,0 +1,63 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_dma.h" +#include "sys/alt_errno.h" +#include "priv/alt_file.h" + +/* + * The list of registered DMA receive channels. + */ + +ALT_LLIST_HEAD(alt_dma_rxchan_list); + +/* + * alt_dma_txchan_open() is used to obtain an "alt_dma_txchan" descriptor for + * a DMA transmit device. The name is the name of the associated physical + * device (e.g. "/dev/dma_0"). + * + * The return value will be NULL on failure, and non-NULL otherwise. + */ + +alt_dma_rxchan alt_dma_rxchan_open (const char* name) +{ + alt_dma_rxchan dev; + + dev = (alt_dma_rxchan) alt_find_dev (name, &alt_dma_rxchan_list); + + if (!dev) + { + ALT_ERRNO = ENODEV; + } + + return dev; +} diff --git a/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_dma_txchan_open.c b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_dma_txchan_open.c new file mode 100644 index 0000000..f41fa81 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_dma_txchan_open.c @@ -0,0 +1,63 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_dma.h" +#include "sys/alt_errno.h" +#include "priv/alt_file.h" + +/* + * The list of registered receive channels. + */ + +ALT_LLIST_HEAD(alt_dma_txchan_list); + +/* + * alt_dma_txchan_open() is used to obtain an "alt_dma_txchan" descriptor for + * a DMA transmit device. The name is the name of the associated physical + * device (e.g. "/dev/dma_0"). + * + * The return value will be NULL on failure, and non-NULL otherwise. + */ + +alt_dma_txchan alt_dma_txchan_open (const char* name) +{ + alt_dma_txchan dev; + + dev = (alt_dma_txchan) alt_find_dev (name, &alt_dma_txchan_list); + + if (!dev) + { + ALT_ERRNO = ENODEV; + } + + return dev; +} diff --git a/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_do_ctors.c b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_do_ctors.c new file mode 100644 index 0000000..ff5a1f7 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_do_ctors.c @@ -0,0 +1,64 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT IT DIRECTLY. * +* * +* Overriding HAL Functions * +* * +* To provide your own implementation of a HAL function, include the file in * +* your Nios II IDE application project. When building the executable, the * +* Nios II IDE finds your function first, and uses it in place of the HAL * +* version. * +* * +******************************************************************************/ + +/* + * + */ + +typedef void (*constructor) (void); +extern constructor __CTOR_LIST__[]; +extern constructor __CTOR_END__[]; + +/* + * Run the C++ static constructors. + */ + +void _do_ctors(void) +{ + constructor* ctor; + + for (ctor = &__CTOR_END__[-1]; ctor >= __CTOR_LIST__; ctor--) + (*ctor) (); +} diff --git a/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_do_dtors.c b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_do_dtors.c new file mode 100644 index 0000000..565c99f --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_do_dtors.c @@ -0,0 +1,64 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT IT DIRECTLY. * +* * +* Overriding HAL Functions * +* * +* To provide your own implementation of a HAL function, include the file in * +* your Nios II IDE application project. When building the executable, the * +* Nios II IDE finds your function first, and uses it in place of the HAL * +* version. * +* * +******************************************************************************/ + +/* + * + */ + +typedef void (*destructor) (void); +extern destructor __DTOR_LIST__[]; +extern destructor __DTOR_END__[]; + +/* + * Run the C++ static destructors. + */ + +void _do_dtors(void) +{ + destructor* dtor; + + for (dtor = &__DTOR_END__[-1]; dtor >= __DTOR_LIST__; dtor--) + (*dtor) (); +} diff --git a/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_env_lock.c b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_env_lock.c new file mode 100644 index 0000000..fc25a0c --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_env_lock.c @@ -0,0 +1,53 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +/* + * These are the empty env lock/unlock stubs required by newlib. These are + * used to make accesses to environment variables thread safe. The default HAL + * configuration is single threaded, so there is nothing to do here. Note that + * this requires that environment variables are never manipulated by an interrupt + * service routine. + */ + +void __env_lock ( struct _reent *_r ) +{ +} + +/* + * + */ + +void __env_unlock ( struct _reent *_r ) +{ +} diff --git a/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_environ.c b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_environ.c new file mode 100644 index 0000000..404efc4 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_environ.c @@ -0,0 +1,42 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "os/alt_syscall.h" + +/* + * These are the environment variables passed to the C code. By default there + * are no variables registered. An application can manipulate this list using + * getenv() and setenv(). + */ + +char *__env[1] = { 0 }; +char **ALT_ENVIRON = __env; diff --git a/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_errno.c b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_errno.c new file mode 100644 index 0000000..1d8368d --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_errno.c @@ -0,0 +1,44 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/* + * This file defines the alt_errno global variable. See comments in + * alt_errno.h for the use of this variable. + */ + + +#include "sys/alt_errno.h" +#include "alt_types.h" + +extern int ALT_WEAK *__errno (void); + +int* (*alt_errno) (void) = __errno; diff --git a/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_exception_entry.S b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_exception_entry.S new file mode 100644 index 0000000..3afab93 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_exception_entry.S @@ -0,0 +1,360 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003-2008 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "system.h" + +/* + * This is the exception entry point code, which saves all the caller saved + * registers and then handles the appropriate exception. It should be pulled + * in using a .globl from all the exception handler routines. This scheme is + * used so that if an interrupt is never registered, then this code will not + * appear in the generated executable, thereby improving code footprint. + * + * If an external interrpt controller (EIC) is present, it will supply an + * interrupt vector address to the processor when an interrupt occurs. For + * The Altera Vectored Interrupt Controller (VIC) driver will establish a + * vector table and the processor will jump directly to the appropriate + * table entry, funnel routine, and then user ISR. This will bypass this code + * in entirety. This code might still be linked into a system with an EIC, + * but would then be used only for non-interrupt exceptions. + */ + + /* + * Explicitly allow the use of r1 (the assembler temporary register) + * within this code. This register is normally reserved for the use of + * the assembler. + */ + .set noat + + /* + * The top and bottom of the exception stack + */ +#ifdef ALT_EXCEPTION_STACK + + .globl __alt_exception_stack_pointer + +#ifdef ALT_STACK_CHECK + + .globl __alt_exception_stack_limit + + /* + * We need to store the value of the stack limit after interrupt somewhere. + */ + .globl alt_exception_old_stack_limit + +#endif +#endif + + .section .exceptions.entry.label, "xa" + + .globl alt_exception + .type alt_exception, @function +alt_exception: + + .section .exceptions.entry, "xa" + +#ifdef ALT_EXCEPTION_STACK + +#ifdef ALT_STACK_CHECK + stw et, %gprel(alt_exception_old_stack_limit)(gp) +#endif + + movhi et, %hiadj(__alt_exception_stack_pointer - 80) + addi et, et, %lo(__alt_exception_stack_pointer - 80) + stw sp, 76(et) + mov sp, et + +#ifdef ALT_STACK_CHECK + movhi et, %hiadj(__alt_exception_stack_limit) + addi et, et, %lo(__alt_exception_stack_limit) + stw et, %gprel(alt_stack_limit_value)(gp) +#endif + +#else + /* + * Process an exception. For all exceptions we must preserve all + * caller saved registers on the stack (See the Nios2 ABI + * documentation for details). + */ + + addi sp, sp, -76 + +#ifdef ALT_STACK_CHECK + + bltu sp, et, .Lstack_overflow + +#endif + +#endif + + stw ra, 0(sp) + + /* + * Leave a gap in the stack frame at 4(sp) for the muldiv handler to + * store zero into. + */ + + stw r1, 8(sp) + stw r2, 12(sp) + stw r3, 16(sp) + stw r4, 20(sp) + stw r5, 24(sp) + stw r6, 28(sp) + stw r7, 32(sp) + + rdctl r5, estatus + + stw r8, 36(sp) + stw r9, 40(sp) + stw r10, 44(sp) + stw r11, 48(sp) + stw r12, 52(sp) + stw r13, 56(sp) + stw r14, 60(sp) + stw r15, 64(sp) + + /* + * ea-4 contains the address of the instruction being executed + * when the exception occured. For interrupt exceptions, we will + * will be re-issue the isntruction. Store it in 72(sp) + */ + stw r5, 68(sp) /* estatus */ + addi r15, ea, -4 /* instruction that caused exception */ + stw r15, 72(sp) + + /* + * The interrupt testing code (.exceptions.irqtest) will be + * linked here. If the Internal Interrupt Controller (IIC) is + * present (an EIC is not present), the presense of an interrupt + * is determined by examining CPU control registers or an interrupt + * custom instruction, if present. + * + * If the IIC is used and an interrupt is active, the code linked + * here will call the HAL IRQ handler (alt_irq_handler()) which + * successively calls registered interrupt handler(s) until no + * interrupts remain pending. It then jumps to .exceptions.exit. If + * there is no interrupt then it continues to .exception.notirq, below. + */ + + .section .exceptions.notirq, "xa" + + /* + * Prepare to service unimplemtned instructions or traps, + * each of which is optionally inked into section .exceptions.soft, + * which will preceed .exceptions.unknown below. + * + * Unlike interrupts, we want to skip the exception-causing instructon + * upon completion, so we write ea (address of instruction *after* + * the one where the exception occured) into 72(sp). The actual + * instruction that caused the exception is written in r2, which these + * handlers will utilize. + */ + stw ea, 72(sp) /* Don't re-issue */ + ldw r2, -4(ea) /* Instruction that caused exception */ + + /* + * Other exception handling code, if enabled, will be linked here. + * This includes unimplemted (multiply/divide) instruction support + * (a BSP generaton option), and a trap handler (that would typically + * be augmented with user-specific code). These are not linked in by + * default. + */ + + /* + * In the context of linker sections, "unknown" are all exceptions + * not handled by the built-in handlers above (interupt, and trap or + * unimplemented instruction decoding, if enabled). + * + * Advanced exception types can be serviced by registering a handler. + * To do so, enable the "Enable Instruction-related Exception API" HAL + * BSP setting. If this setting is disabled, this handler code will + * either break (if the debug core is present) or enter an infinite + * loop because we don't how how to handle the exception. + */ + .section .exceptions.unknown +#ifdef ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API + /* + * The C-based HAL routine alt_instruction_exception_entry() will + * attempt to service the exception by calling a user-registered + * exception handler using alt_instruction_exception_register(). + * If no handler was registered it will either break (if the + * debugger is present) or go into an infinite loop since the + * handling behavior is undefined; in that case we will not return here. + */ + + /* Load exception-causing address as first argument (r4) */ + addi r4, ea, -4 + + /* Call the instruction-exception entry */ + call alt_instruction_exception_entry + + /* + * If alt_instruction_exception_entry() returned, the exception was + * serviced by a user-registered routine. Its return code (now in r2) + * indicates whether to re-issue or skip the exception-causing + * instruction + * + * Return code was 0: Skip. The instruction after the exception is + * already stored in 72(sp). + */ + bne r2, r0, .Lexception_exit + + /* + * Otherwise, modify 72(sp) to re-issue the instruction that caused the + * exception. + */ + addi r15, ea, -4 /* instruction that caused exception */ + stw r15, 72(sp) + +#else /* ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API disabled */ + + /* + * We got here because an instruction-related exception occured, but the + * handler API was not compiled in. We do not presume to know how to + * handle it. If the debugger is present, break, otherwise hang. + * + * If you get here then one of the following could have happened: + * + * - An instruction-generated exception occured, and the processor + * does not have the extra exceptions feature enabled, or you + * have not registered a handler using + * alt_instruction_exception_register() + * + * Some examples of instruction-generated exceptions and why they + * might occur: + * + * - Your program could have been compiled for a full-featured + * Nios II core, but it is running on a smaller core, and + * instruction emulation has been disabled by defining + * ALT_NO_INSTRUCTION_EMULATION. + * + * You can work around the problem by re-enabling instruction + * emulation, or you can figure out why your program is being + * compiled for a system other than the one that it is running on. + * + * - Your program has executed a trap instruction, but has not + * implemented a handler for this instruction. + * + * - Your program has executed an illegal instruction (one which is + * not defined in the instruction set). + * + * - Your processor includes an MMU or MPU, and you have enabled it + * before registering an exception handler to service exceptions it + * generates. + * + * The problem could also be hardware related: + * - If your hardware is broken and is generating spurious interrupts + * (a peripheral which negates its interrupt output before its + * interrupt handler has been executed will cause spurious + * interrupts) + */ +#ifdef NIOS2_HAS_DEBUG_STUB + /* + * Either tell the user now (if there is a debugger attached) or go into + * the debug monitor which will loop until a debugger is attached. + */ + break +#else + /* + * If there is no debug stub then a BREAK will probably cause a reboot. + * An infinate loop will probably be more useful. + */ +0: + br 0b +#endif /* NIOS2_HAS_DEBUG_STUB */ + +#endif /* ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API */ + + .section .exceptions.exit.label +.Lexception_exit: + + .section .exceptions.exit, "xa" + + /* + * Restore the saved registers, so that all general purpose registers + * have been restored to their state at the time the interrupt occured. + */ + + ldw r5, 68(sp) + ldw ea, 72(sp) /* This becomes the PC once eret is executed */ + ldw ra, 0(sp) + + wrctl estatus, r5 + + ldw r1, 8(sp) + ldw r2, 12(sp) + ldw r3, 16(sp) + ldw r4, 20(sp) + ldw r5, 24(sp) + ldw r6, 28(sp) + ldw r7, 32(sp) + +#ifdef ALT_EXCEPTION_STACK +#ifdef ALT_STACK_CHECK + ldw et, %gprel(alt_exception_old_stack_limit)(gp) +#endif +#endif + + ldw r8, 36(sp) + ldw r9, 40(sp) + ldw r10, 44(sp) + ldw r11, 48(sp) + ldw r12, 52(sp) + ldw r13, 56(sp) + ldw r14, 60(sp) + ldw r15, 64(sp) + +#ifdef ALT_EXCEPTION_STACK + +#ifdef ALT_STACK_CHECK + stw et, %gprel(alt_stack_limit_value)(gp) + stw zero, %gprel(alt_exception_old_stack_limit)(gp) +#endif + + ldw sp, 76(sp) + +#else + addi sp, sp, 76 + +#endif + + /* + * Return to the interrupted instruction. + */ + + eret + +#ifdef ALT_STACK_CHECK + +.Lstack_overflow: + break 3 + +#endif + diff --git a/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_exception_muldiv.S b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_exception_muldiv.S new file mode 100644 index 0000000..55617a6 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_exception_muldiv.S @@ -0,0 +1,583 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003-2005 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + + /* + * This is the software multiply/divide handler for Nios2. + */ + + /* + * Provide a label which can be used to pull this file in. + */ + + .section .exceptions.start + .globl alt_exception_muldiv +alt_exception_muldiv: + + /* + * Pull in the entry/exit code. + */ + .globl alt_exception + + + .section .exceptions.soft, "xa" + + + /* INSTRUCTION EMULATION + * --------------------- + * + * Nios II processors generate exceptions for unimplemented instructions. + * The routines below emulate these instructions. Depending on the + * processor core, the only instructions that might need to be emulated + * are div, divu, mul, muli, mulxss, mulxsu, and mulxuu. + * + * The emulations match the instructions, except for the following + * limitations: + * + * 1) The emulation routines do not emulate the use of the exception + * temporary register (et) as a source operand because the exception + * handler already has modified it. + * + * 2) The routines do not emulate the use of the stack pointer (sp) or the + * exception return address register (ea) as a destination because + * modifying these registers crashes the exception handler or the + * interrupted routine. + * + * 3) To save code size, the routines do not emulate the use of the + * breakpoint registers (ba and bt) as operands. + * + * Detailed Design + * --------------- + * + * The emulation routines expect the contents of integer registers r0-r31 + * to be on the stack at addresses sp, 4(sp), 8(sp), ... 124(sp). The + * routines retrieve source operands from the stack and modify the + * destination register's value on the stack prior to the end of the + * exception handler. Then all registers except the destination register + * are restored to their previous values. + * + * The instruction that causes the exception is found at address -4(ea). + * The instruction's OP and OPX fields identify the operation to be + * performed. + * + * One instruction, muli, is an I-type instruction that is identified by + * an OP field of 0x24. + * + * muli AAAAA,BBBBB,IIIIIIIIIIIIIIII,-0x24- + * 27 22 6 0 <-- LSB of field + * + * The remaining emulated instructions are R-type and have an OP field + * of 0x3a. Their OPX fields identify them. + * + * R-type AAAAA,BBBBB,CCCCC,XXXXXX,NNNNN,-0x3a- + * 27 22 17 11 6 0 <-- LSB of field + * + * + */ + + + /* + * Split the instruction into its fields. We need 4*A, 4*B, and 4*C as + * offsets to the stack pointer for access to the stored register values. + */ + /* r2 = AAAAA,BBBBB,IIIIIIIIIIIIIIII,PPPPPP */ + roli r3, r2, 7 /* r3 = BBB,IIIIIIIIIIIIIIII,PPPPPP,AAAAA,BB */ + roli r4, r3, 3 /* r4 = IIIIIIIIIIIIIIII,PPPPPP,AAAAA,BBBBB */ + roli r6, r4, 2 /* r6 = IIIIIIIIIIIIII,PPPPPP,AAAAA,BBBBB,II */ + srai r4, r4, 16 /* r4 = (sign-extended) IMM16 */ + xori r6, r6, 0x42 /* r6 = CCC,XXXXXX,NNNNN,PPPPPP,AAAAA,bBBBB,cC */ + roli r7, r6, 5 /* r7 = XXXX,NNNNN,PPPPPP,AAAAA,bBBBB,cCCCC,XX */ + andi r5, r2, 0x3f /* r5 = 00000000000000000000000000,PPPPPP */ + xori r3, r3, 0x40 + andi r3, r3, 0x7c /* r3 = 0000000000000000000000000,aAAAA,00 */ + andi r6, r6, 0x7c /* r6 = 0000000000000000000000000,bBBBB,00 */ + andi r7, r7, 0x7c /* r7 = 0000000000000000000000000,cCCCC,00 */ + + /* Now either + * r5 = OP + * r3 = 4*(A^16) + * r4 = IMM16 (sign extended) + * r6 = 4*(B^16) + * r7 = 4*(C^16) + * or + * r5 = OP + */ + + + /* + * Save everything on the stack to make it easy for the emulation routines + * to retrieve the source register operands. The exception entry code has + * already saved some of this so we don't need to do it all again. + */ + + addi sp, sp, -60 + stw zero, 64(sp) /* Save zero on stack to avoid special case for r0. */ + /* Register at and r2-r15 have already been saved. */ + + stw r16, 0(sp) + stw r17, 4(sp) + stw r18, 8(sp) + stw r19, 12(sp) + stw r20, 16(sp) + stw r21, 20(sp) + stw r22, 24(sp) + stw r23, 28(sp) + /* et @ 32 - Has already been changed.*/ + /* bt @ 36 - Usually isn't an operand. */ + stw gp, 40(sp) + stw sp, 44(sp) + stw fp, 48(sp) + /* ea @ 52 - Don't bother to save - it's already been changed */ + /* ba @ 56 - Breakpoint register usually isn't an operand */ + /* ra @ 60 - Has already been saved */ + + + /* + * Prepare for either multiplication or division loop. + * They both loop 32 times. + */ + movi r14, 32 + + + /* + * Get the operands. + * + * It is necessary to check for muli because it uses an I-type instruction + * format, while the other instructions are have an R-type format. + */ + add r3, r3, sp /* r3 = address of A-operand. */ + ldw r3, 0(r3) /* r3 = A-operand. */ + movi r15, 0x24 /* muli opcode (I-type instruction format) */ + beq r5, r15, .Lmul_immed /* muli doesn't use the B register as a source */ + + add r6, r6, sp /* r6 = address of B-operand. */ + ldw r6, 0(r6) /* r6 = B-operand. */ + /* r4 = SSSSSSSSSSSSSSSS,-----IMM16------ */ + /* IMM16 not needed, align OPX portion */ + /* r4 = SSSSSSSSSSSSSSSS,CCCCC,-OPX--,00000 */ + srli r4, r4, 5 /* r4 = 00000,SSSSSSSSSSSSSSSS,CCCCC,-OPX-- */ + andi r4, r4, 0x3f /* r4 = 00000000000000000000000000,-OPX-- */ + + /* Now + * r5 = OP + * r3 = src1 + * r6 = src2 + * r4 = OPX (no longer can be muli) + * r7 = 4*(C^16) + * r14 = loop counter + */ + + /* ILLEGAL-INSTRUCTION EXCEPTION + * ----------------------------- + * + * This code is for Nios II cores that generate exceptions when attempting + * to execute illegal instructions. Nios II cores that support an + * illegal-instruction exception are identified by the presence of the + * macro definition NIOS2_HAS_ILLEGAL_INSTRUCTION_EXCEPTION in system.h . + * + * Remember that illegal instructions are different than unimplemented + * instructions. Illegal instructions are instruction encodings that + * have not been defined by the Nios II ISA. Unimplemented instructions + * are legal instructions that must be emulated by some Nios II cores. + * + * If we get here, all instructions except multiplies and divides + * are illegal. + * + * This code assumes that OP is not muli (because muli was tested above). + * All other multiplies and divides are legal. Anything else is illegal. + */ + + movi r8, 0x3a /* OP for R-type mul* and div* */ + bne r5, r8, .Lnot_muldiv + + /* r15 already is 0x24 */ /* OPX of divu */ + beq r4, r15, .Ldivide + + movi r15,0x27 /* OPX of mul */ + beq r4, r15, .Lmultiply + + movi r15,0x07 /* OPX of mulxuu */ + beq r4, r15, .Lmultiply + + movi r15,0x17 /* OPX of mulxsu */ + beq r4, r15, .Lmultiply + + movi r15,0x1f /* OPX of mulxss */ + beq r4, r15, .Lmultiply + + movi r15,0x25 /* OPX of div */ + bne r4, r15, .Lnot_muldiv + + + /* DIVISION + * + * Divide an unsigned dividend by an unsigned divisor using + * a shift-and-subtract algorithm. The example below shows + * 43 div 7 = 6 for 8-bit integers. This classic algorithm uses a + * single register to store both the dividend and the quotient, + * allowing both values to be shifted with a single instruction. + * + * remainder dividend:quotient + * --------- ----------------- + * initialize 00000000 00101011: + * shift 00000000 0101011:_ + * remainder >= divisor? no 00000000 0101011:0 + * shift 00000000 101011:0_ + * remainder >= divisor? no 00000000 101011:00 + * shift 00000001 01011:00_ + * remainder >= divisor? no 00000001 01011:000 + * shift 00000010 1011:000_ + * remainder >= divisor? no 00000010 1011:0000 + * shift 00000101 011:0000_ + * remainder >= divisor? no 00000101 011:00000 + * shift 00001010 11:00000_ + * remainder >= divisor? yes 00001010 11:000001 + * remainder -= divisor - 00000111 + * ---------- + * 00000011 11:000001 + * shift 00000111 1:000001_ + * remainder >= divisor? yes 00000111 1:0000011 + * remainder -= divisor - 00000111 + * ---------- + * 00000000 1:0000011 + * shift 00000001 :0000011_ + * remainder >= divisor? no 00000001 :00000110 + * + * The quotient is 00000110. + */ + +.Ldivide: + /* + * Prepare for division by assuming the result + * is unsigned, and storing its "sign" as 0. + */ + movi r17, 0 + + + /* Which division opcode? */ + xori r15, r4, 0x25 /* OPX of div */ + bne r15, zero, .Lunsigned_division + + + /* + * OPX is div. Determine and store the sign of the quotient. + * Then take the absolute value of both operands. + */ + xor r17, r3, r6 /* MSB contains sign of quotient */ + bge r3, zero, 0f + sub r3, zero, r3 /* -r3 */ +0: + bge r6, zero, 0f + sub r6, zero, r6 /* -r6 */ +0: + + +.Lunsigned_division: + /* Initialize the unsigned-division loop. */ + movi r13, 0 /* remainder = 0 */ + + /* Now + * r3 = dividend : quotient + * r4 = 0x25 for div, 0x24 for divu + * r6 = divisor + * r13 = remainder + * r14 = loop counter (already initialized to 32) + * r17 = MSB contains sign of quotient + */ + + + /* + * for (count = 32; count > 0; --count) + * { + */ +.Ldivide_loop: + + /* + * Division: + * + * (remainder:dividend:quotient) <<= 1; + */ + slli r13, r13, 1 + cmplt r15, r3, zero /* r15 = MSB of r3 */ + or r13, r13, r15 + slli r3, r3, 1 + + + /* + * if (remainder >= divisor) + * { + * set LSB of quotient + * remainder -= divisor; + * } + */ + bltu r13, r6, .Ldiv_skip + ori r3, r3, 1 + sub r13, r13, r6 +.Ldiv_skip: + + /* + * } + */ + subi r14, r14, 1 + bne r14, zero, .Ldivide_loop + + mov r9, r3 + + + /* Now + * r9 = quotient + * r4 = 0x25 for div, 0x24 for divu + * r7 = 4*(C^16) + * r17 = MSB contains sign of quotient + */ + + + /* + * Conditionally negate signed quotient. If quotient is unsigned, + * the sign already is initialized to 0. + */ + bge r17, zero, .Lstore_result + sub r9, zero, r9 /* -r9 */ + + br .Lstore_result + + + + + /* MULTIPLICATION + * + * A "product" is the number that one gets by summing a "multiplicand" + * several times. The "multiplier" specifies the number of copies of the + * multiplicand that are summed. + * + * Actual multiplication algorithms don't use repeated addition, however. + * Shift-and-add algorithms get the same answer as repeated addition, and + * they are faster. To compute the lower half of a product (pppp below) + * one shifts the product left before adding in each of the partial products + * (a * mmmm) through (d * mmmm). + * + * To compute the upper half of a product (PPPP below), one adds in the + * partial products (d * mmmm) through (a * mmmm), each time following the + * add by a right shift of the product. + * + * mmmm + * * abcd + * ------ + * #### = d * mmmm + * #### = c * mmmm + * #### = b * mmmm + * #### = a * mmmm + * -------- + * PPPPpppp + * + * The example above shows 4 partial products. Computing actual Nios II + * products requires 32 partials. + * + * It is possible to compute the result of mulxsu from the result of mulxuu + * because the only difference between the results of these two opcodes is + * the value of the partial product associated with the sign bit of rA. + * + * mulxsu = mulxuu - ((rA < 0) ? rB : 0); + * + * It is possible to compute the result of mulxss from the result of mulxsu + * because the only difference between the results of these two opcodes is + * the value of the partial product associated with the sign bit of rB. + * + * mulxss = mulxsu - ((rB < 0) ? rA : 0); + * + */ + +.Lmul_immed: + /* Opcode is muli. Change it into mul for remainder of algorithm. */ + mov r7, r6 /* Field B is dest register, not field C. */ + mov r6, r4 /* Field IMM16 is src2, not field B. */ + movi r4, 0x27 /* OPX of mul is 0x27 */ + +.Lmultiply: + /* Initialize the multiplication loop. */ + movi r9, 0 /* mul_product = 0 */ + movi r10, 0 /* mulxuu_product = 0 */ + mov r11, r6 /* save original multiplier for mulxsu and mulxss */ + mov r12, r6 /* mulxuu_multiplier (will be shifted) */ + movi r16, 1 /* used to create "rori B,A,1" from "ror B,A,r16" */ + + /* Now + * r3 = multiplicand + * r6 = mul_multiplier + * r7 = 4 * dest_register (used later as offset to sp) + * r9 = mul_product + * r10 = mulxuu_product + * r11 = original multiplier + * r12 = mulxuu_multiplier + * r14 = loop counter (already initialized) + * r15 = temp + * r16 = 1 + */ + + + /* + * for (count = 32; count > 0; --count) + * { + */ +.Lmultiply_loop: + + /* + * mul_product <<= 1; + * lsb = multiplier & 1; + */ + slli r9, r9, 1 + andi r15, r12, 1 + + /* + * if (lsb == 1) + * { + * mulxuu_product += multiplicand; + * } + */ + beq r15, zero, .Lmulx_skip + add r10, r10, r3 + cmpltu r15, r10, r3 /* Save the carry from the MSB of mulxuu_product. */ + ror r15, r15, r16 /* r15 = 0x80000000 on carry, or else 0x00000000 */ +.Lmulx_skip: + + /* + * if (MSB of mul_multiplier == 1) + * { + * mul_product += multiplicand; + * } + */ + bge r6, zero, .Lmul_skip + add r9, r9, r3 +.Lmul_skip: + + /* + * mulxuu_product >>= 1; logical shift + * mul_multiplier <<= 1; done with MSB + * mulx_multiplier >>= 1; done with LSB + */ + srli r10, r10, 1 + or r10, r10, r15 /* OR in the saved carry bit. */ + slli r6, r6, 1 + srli r12, r12, 1 + + + /* + * } + */ + subi r14, r14, 1 + bne r14, zero, .Lmultiply_loop + + + /* + * Multiply emulation loop done. + */ + + /* Now + * r3 = multiplicand + * r4 = OPX + * r7 = 4 * dest_register (used later as offset to sp) + * r9 = mul_product + * r10 = mulxuu_product + * r11 = original multiplier + * r15 = temp + */ + + + /* + * Select/compute the result based on OPX. + */ + + + /* OPX == mul? Then store. */ + xori r15, r4, 0x27 + beq r15, zero, .Lstore_result + + /* It's one of the mulx.. opcodes. Move over the result. */ + mov r9, r10 + + /* OPX == mulxuu? Then store. */ + xori r15, r4, 0x07 + beq r15, zero, .Lstore_result + + /* Compute mulxsu + * + * mulxsu = mulxuu - ((rA < 0) ? rB : 0); + */ + bge r3, zero, .Lmulxsu_skip + sub r9, r9, r11 +.Lmulxsu_skip: + + /* OPX == mulxsu? Then store. */ + xori r15, r4, 0x17 + beq r15, zero, .Lstore_result + + /* Compute mulxss + * + * mulxss = mulxsu - ((rB < 0) ? rA : 0); + */ + bge r11, zero, .Lmulxss_skip + sub r9, r9, r3 +.Lmulxss_skip: + /* At this point, assume that OPX is mulxss, so store */ + + +.Lstore_result: + add r7, r7, sp + stw r9, 0(r7) + + ldw r16, 0(sp) + ldw r17, 4(sp) + ldw r18, 8(sp) + ldw r19, 12(sp) + ldw r20, 16(sp) + ldw r21, 20(sp) + ldw r22, 24(sp) + ldw r23, 28(sp) + + /* bt @ 32 - Breakpoint register usually isn't an operand. */ + /* et @ 36 - Don't corrupt et. */ + /* gp @ 40 - Don't corrupt gp. */ + /* sp @ 44 - Don't corrupt sp. */ + ldw fp, 48(sp) + /* ea @ 52 - Don't corrupt ea. */ + /* ba @ 56 - Breakpoint register usually isn't an operand. */ + + addi sp, sp, 60 + + br .Lexception_exit + + +.Lnot_muldiv: + + addi sp, sp, 60 + + + .section .exceptions.exit.label +.Lexception_exit: + diff --git a/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_exception_trap.S b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_exception_trap.S new file mode 100644 index 0000000..60a3d40 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_exception_trap.S @@ -0,0 +1,81 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003-2005 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + + /* + * This is the trap exception handler for Nios2. + */ + + /* + * Provide a label which can be used to pull this file in. + */ + + .section .exceptions.start + .globl alt_exception_trap +alt_exception_trap: + + /* + * Pull in the entry/exit code. + */ + .globl alt_exception + + .section .exceptions.soft, "xa" + +.Ltrap_handler: + + /* + * Did a trap instruction cause the exception? + * + * The instruction which the exception occurred on has been loaded + * into r2 by code in alt_exception_entry.S + * + */ + + movhi r3,0x003b /* upper half of trap opcode */ + ori r3,r3,0x683a /* lower half of trap opcode */ + bne r2,r3,.Lnot_trap + + /* + * There is no trap handler defined here, and so executing a trap + * instruction causes a software break. If you provide a trap handler, + * then you must replace the break instruction below with your handler. + * Your handler must preserve ea and the usual callee saved registers. + */ + + break + + br .Lexception_exit + +.Lnot_trap: + + + .section .exceptions.exit.label +.Lexception_exit: + + diff --git a/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_execve.c b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_execve.c new file mode 100644 index 0000000..27b99cf --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_execve.c @@ -0,0 +1,55 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_errno.h" +#include "sys/alt_warning.h" +#include "os/alt_syscall.h" + +/* + * execve() is used by newlib to launch new processes. This is unsupported in + * the HAL environment. However a "do-nothing" implementation is still + * provied for newlib compatability. + * + * ALT_EXECVE is mapped onto the execve() system call in alt_syscall.h + */ + +int ALT_EXECVE (char *name, char ** argv, char** env) +{ + /* Generate a link time warning, should this function ever be called. */ + + ALT_STUB_WARNING(execve); + + /* Indicate an error */ + + ALT_ERRNO = ENOSYS; + return -1; +} diff --git a/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_exit.c b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_exit.c new file mode 100644 index 0000000..971b35e --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_exit.c @@ -0,0 +1,71 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_irq.h" +#include "sys/alt_sim.h" +#include "os/alt_hooks.h" +#include "os/alt_syscall.h" + +#include "alt_types.h" +#include "sys/alt_log_printf.h" +/* + * _exit() is called by exit() in order to terminate the current process. + * Typically this is called when main() completes. It should never return. + * Since there is nowhere to go once this process completes, this + * implementation simply blocks forever. + * + * Note that interrupts are not disabled so that execution outside of this + * thread is allowed to continue. + * + * ALT_EXIT is mapped onto the _exit() system call in alt_syscall.h + */ + +void ALT_EXIT (int exit_code) +{ + /* ALT_LOG - please see HAL/inc/alt_log_printf.h for details */ + ALT_LOG_PRINT_BOOT("[alt_exit.c] Entering _exit() function.\r\n"); + ALT_LOG_PRINT_BOOT("[alt_exit.c] Exit code from main was %d.\r\n",exit_code); + /* Stop all other threads */ + + ALT_LOG_PRINT_BOOT("[alt_exit.c] Calling ALT_OS_STOP().\r\n"); + ALT_OS_STOP(); + + /* Provide notification to the simulator that we've stopped */ + + ALT_LOG_PRINT_BOOT("[alt_exit.c] Calling ALT_SIM_HALT().\r\n"); + ALT_SIM_HALT(exit_code); + + /* spin forever, since there's no where to go back to */ + + ALT_LOG_PRINT_BOOT("[alt_exit.c] Spinning forever.\r\n"); + while (1); +} diff --git a/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_fcntl.c b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_fcntl.c new file mode 100644 index 0000000..69c1544 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_fcntl.c @@ -0,0 +1,101 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include + +#include +#include + +#include "sys/alt_errno.h" +#include "priv/alt_file.h" +#include "alt_types.h" +#include "os/alt_syscall.h" + +#define ALT_FCNTL_FLAGS_MASK ((alt_u32) (O_APPEND | O_NONBLOCK)) + +/* + * fcntl() is a limited implementation of the standard fcntl() system call. + * It can be used to change the state of the flags associated with an open + * file descriptor. Normally these flags are set during the call to + * open(). It is anticipated that the main use of this function will be to + * change the state of a device from blocking to non-blocking (where this is + * supported). + * + * The input argument "fd" is the file descriptor to be manipulated. "cmd" + * is the command to execute. This can be either F_GETFL (return the + * current value of the flags) or F_SETFL (set the value of the flags). + * + * If "cmd" is F_SETFL then the argument "arg" is the new value of flags, + * otherwise "arg" is ignored. Only the flags: O_APPEND and O_NONBLOCK + * can be updated by a call to fcntl(). All other flags remain + * unchanged. + * + * ALT_FCNTL is mapped onto the fcntl() system call in alt_syscall.h + */ + +int ALT_FCNTL (int file, int cmd, ...) +{ + alt_fd* fd; + long flags; + va_list argp; + + /* + * A common error case is that when the file descriptor was created, the call + * to open() failed resulting in a negative file descriptor. This is trapped + * below so that we don't try and process an invalid file descriptor. + */ + + fd = (file < 0) ? NULL : &alt_fd_list[file]; + + if (fd) + { + switch (cmd) + { + case F_GETFL: + return fd->fd_flags & ~((alt_u32) ALT_FD_FLAGS_MASK); + case F_SETFL: + va_start(argp, cmd); + flags = va_arg(argp, long); + fd->fd_flags &= ~ALT_FCNTL_FLAGS_MASK; + fd->fd_flags |= (flags & ALT_FCNTL_FLAGS_MASK); + va_end(argp); + return 0; + default: + ALT_ERRNO = EINVAL; + return -1; + } + } + + ALT_ERRNO = EBADFD; + return -1; +} diff --git a/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_fd_lock.c b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_fd_lock.c new file mode 100644 index 0000000..0e2a85d --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_fd_lock.c @@ -0,0 +1,75 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +#include "priv/alt_file.h" + +/* + * alt_fd_lock() is called as a consequence of an ioctl call to gain exclusive + * access to a device, i.e.: + * + * ioctl (fd, TIOCEXCL, NULL); + * + * If there are no other open file descriptors which reference the same + * device, then alt_fd_lock() will grant the lock. Further calls to open() + * for this device will fail until the lock is released. + * + * This is done by calling close() for this file descriptor, or by calling: + * + * ioctl (fd, TIOCNXCL, NULL); + * + * The return value is zero for success, or negative in the case of failure. + */ + +int alt_fd_lock (alt_fd* fd) +{ + int i; + int rc = 0; + + ALT_SEM_PEND(alt_fd_list_lock, 0); + + for (i = 0; i < alt_max_fd; i++) + { + if ((&alt_fd_list[i] != fd) && (alt_fd_list[i].dev == fd->dev)) + { + rc = -EACCES; + goto alt_fd_lock_exit; + } + } + fd->fd_flags |= ALT_FD_EXCL; + + alt_fd_lock_exit: + + ALT_SEM_POST(alt_fd_list_lock); + return rc; +} diff --git a/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_fd_unlock.c b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_fd_unlock.c new file mode 100644 index 0000000..fb700dc --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_fd_unlock.c @@ -0,0 +1,56 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +#include "priv/alt_file.h" + +/* + * alt_fd_unlock() is the inverse of alt_fd_lock(). It is called as a + * consequence of a TIOCNXCL ioctl request, e.g: + * + * ioctl (fd, TIOCNXCL, NULL); + * + * It enables multiple file descriptors to exist for the same device. This + * is normally the case, but it may have been disabled by a previous call to + * alt_fd_lock(). + * + * Return zero on sucess, and a negative value on failure. + * + * The current implementation always succeeds. + */ + +int alt_fd_unlock (alt_fd* fd) +{ + fd->fd_flags &= ~ALT_FD_EXCL; + return 0; +} diff --git a/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_find_dev.c b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_find_dev.c new file mode 100644 index 0000000..37aefa4 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_find_dev.c @@ -0,0 +1,88 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include +#include + +#include "sys/alt_dev.h" +#include "priv/alt_file.h" + +#include "alt_types.h" + +/* + * alt_find_dev() is used by open() in order to locate a previously registered + * device with the name "name". The input argument "llist" is a pointer to the + * head of the device list to search. + * + * The return value is a pointer to the matching device, or NULL if there is + * no match. + * + * "name" must be an exact match for the devices registered name for a match to + * be found. + */ + +alt_dev* alt_find_dev(const char* name, alt_llist* llist) +{ + alt_dev* next = (alt_dev*) llist->next; + alt_32 len; + + len = strlen(name) + 1; + + /* + * Check each list entry in turn, until a match is found, or we reach the + * end of the list (i.e. next winds up pointing back to the list head). + */ + + while (next != (alt_dev*) llist) + { + + /* + * memcmp() is used here rather than strcmp() in order to reduce the size + * of the executable. + */ + + if (!memcmp (next->name, name, len)) + { + /* match found */ + + return next; + } + next = (alt_dev*) next->llist.next; + } + + /* No match found */ + + return NULL; +} + + diff --git a/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_find_file.c b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_find_file.c new file mode 100644 index 0000000..2d97ec2 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_find_file.c @@ -0,0 +1,89 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include +#include + +#include "sys/alt_dev.h" +#include "priv/alt_file.h" + +#include "alt_types.h" + +/* + * alt_find_file() is used by open() in order to locate a previously registered + * filesystem that owns that mount point that contains the file named "name". + * + * The return value is a pointer to the matching filesystem, or NULL if there is + * no match. + * + * A match is considered to have been found if the filesystem name followed by + * either '/' or '\0' is the prefix of the filename. For example the filename: + * "/myfilesystem/junk.txt" would match: "/myfilesystem", but not: "/myfile". + */ + +alt_dev* alt_find_file (const char* name) +{ + alt_dev* next = (alt_dev*) alt_fs_list.next; + + alt_32 len; + + /* + * Check each list entry in turn, until a match is found, or we reach the + * end of the list (i.e. next winds up pointing back to the list head). + */ + + while (next != (alt_dev*) &alt_fs_list) + { + len = strlen(next->name); + + if (next->name[len-1] == '/') + { + len -= 1; + } + + if (((name[len] == '/') || (name[len] == '\0')) && + !memcmp (next->name, name, len)) + { + /* match found */ + + return next; + } + next = (alt_dev*) next->llist.next; + } + + /* No match found */ + + return NULL; +} + + diff --git a/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_flash_dev.c b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_flash_dev.c new file mode 100644 index 0000000..213f721 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_flash_dev.c @@ -0,0 +1,69 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* Alt_flash.c - Functions to register a flash device to the "generic" flash * +* interface * +* * +* Author PRR * +* * +******************************************************************************/ + +#include +#include "sys/alt_llist.h" +#include "sys/alt_flash_dev.h" +#include "priv/alt_file.h" + +ALT_LLIST_HEAD(alt_flash_dev_list); + +alt_flash_fd* alt_flash_open_dev(const char* name) +{ + alt_flash_dev* dev = (alt_flash_dev*)alt_find_dev(name, &alt_flash_dev_list); + + if ((dev) && dev->open) + { + return dev->open(dev, name); + } + + return dev; +} + +void alt_flash_close_dev(alt_flash_fd* fd) +{ + if (fd && fd->close) + { + fd->close(fd); + } + return; +} + diff --git a/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_fork.c b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_fork.c new file mode 100644 index 0000000..ce74df0 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_fork.c @@ -0,0 +1,57 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_warning.h" +#include "sys/alt_errno.h" +#include "os/alt_syscall.h" + +/* + * The fork() system call is used by newlib to create a duplicate copy of the + * curent process. This is unsupported in the HAL environment. However a + * "do-nothing" implementation is still provied for newlib compatability. + * + * ALT_FORK is mapped onto the fork() system call in alt_syscall.h + */ + +int ALT_FORK (void) +{ + /* Generate a link time warning, should this function ever be called. */ + + ALT_STUB_WARNING(fork); + + /* Indicate an error */ + + ALT_ERRNO = ENOSYS; + return -1; +} + + diff --git a/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_fs_reg.c b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_fs_reg.c new file mode 100644 index 0000000..13437a1 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_fs_reg.c @@ -0,0 +1,75 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +#include "sys/alt_dev.h" +#include "priv/alt_file.h" + +/* + * The alt_fs_reg() function is used to register a file system. Once registered + * a device can be accessed using the standard posix calls: open(), read(), + * write() etc. + * + * System behaviour is undefined in the event that a file system is registered + * with a name that conflicts with an existing device or file system. + * + * alt_fs_reg() is not thread safe in the sense that there should be no other + * thread using the file system list at the time that alt_dev_reg() is called. In + * practice this means that alt_fs_reg() should only be called while operating + * in a single threaded mode. The expectation is that it will only be called + * by the file system initilisation functions invoked by alt_sys_init(), which in + * turn should only be called by the single threaded C startup code. + * + * A return value of zero indicates success. A negative return value indicates + * failure. + */ + +int alt_fs_reg (alt_dev* dev) +{ + /* + * check that the device has a name. + */ + + if (!dev->name) + { + return -ENODEV; + } + + /* + * register the file system. + */ + + alt_llist_insert(&alt_fs_list, &dev->llist); + + return 0; +} diff --git a/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_fstat.c b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_fstat.c new file mode 100644 index 0000000..af5d527 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_fstat.c @@ -0,0 +1,128 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include + +#include "sys/alt_dev.h" +#include "sys/alt_warning.h" +#include "sys/alt_errno.h" +#include "priv/alt_file.h" +#include "os/alt_syscall.h" + +/* + * The fstat() system call is used to obtain information about the capabilities + * of an open file descriptor. By default file descriptors are marked as + * being character devices. If a device or file system wishes to advertise + * alternative capabilities then they can register an fstat() function within + * their associated alt_dev structure. This will be called to fill in the + * entries in the imput "st" structure. + * + * This function is provided for compatability with newlib. + * + * ALT_FSTAT is mapped onto the fstat() system call in alt_syscall.h + */ + +#ifdef ALT_USE_DIRECT_DRIVERS + +#include "system.h" + +/* + * Provide minimal version that just describes all file descriptors + * as character devices for provided stdio devices. + */ +int ALT_FSTAT (int file, struct stat *st) +{ + switch (file) { +#ifdef ALT_STDIN_PRESENT + case 0: /* stdin file descriptor */ +#endif /* ALT_STDIN_PRESENT */ +#ifdef ALT_STDOUT_PRESENT + case 1: /* stdout file descriptor */ +#endif /* ALT_STDOUT_PRESENT */ +#ifdef ALT_STDERR_PRESENT + case 2: /* stderr file descriptor */ +#endif /* ALT_STDERR_PRESENT */ + st->st_mode = _IFCHR; + return 0; + default: + return -1; + } + +#if !defined(ALT_STDIN_PRESENT) && !defined(ALT_STDOUT_PRESENT) && !defined(ALT_STDERR_PRESENT) + /* Generate a link time warning, should this function ever be called. */ + ALT_STUB_WARNING(fstat); +#endif +} + +#else /* !ALT_USE_DIRECT_DRIVERS */ + +int ALT_FSTAT (int file, struct stat *st) +{ + alt_fd* fd; + + /* + * A common error case is that when the file descriptor was created, the call + * to open() failed resulting in a negative file descriptor. This is trapped + * below so that we don't try and process an invalid file descriptor. + */ + + fd = (file < 0) ? NULL : &alt_fd_list[file]; + + if (fd) + { + /* Call the drivers fstat() function to fill out the "st" structure. */ + + if (fd->dev->fstat) + { + return fd->dev->fstat(fd, st); + } + + /* + * If no function is provided, mark the fd as belonging to a character + * device. + */ + + else + { + st->st_mode = _IFCHR; + return 0; + } + } + else + { + ALT_ERRNO = EBADFD; + return -1; + } +} + +#endif /* ALT_USE_DIRECT_DRIVERS */ diff --git a/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_get_fd.c b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_get_fd.c new file mode 100644 index 0000000..db17b2c --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_get_fd.c @@ -0,0 +1,105 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include +#include + +#include "sys/alt_dev.h" +#include "priv/alt_file.h" + +#include "alt_types.h" + +#include "system.h" + +/* + * alt_get_fd() is called to allocate a new file descriptor from the file + * descriptor pool. If a file descriptor is succesfully allocated, it is + * configured to refer to device "dev". + * + * The return value is the index of the file descriptor structure (i.e. + * the offset of the file descriptor within the file descriptor array). A + * negative value indicates failure. + */ + +int alt_get_fd (alt_dev* dev) +{ + alt_32 i; + int rc = -EMFILE; + + /* + * Take the alt_fd_list_lock semaphore in order to avoid races when + * accessing the file descriptor pool. + */ + + ALT_SEM_PEND(alt_fd_list_lock, 0); + + /* + * Search through the list of file descriptors, and allocate the first + * free descriptor that's found. + * + * If a free descriptor is found, then the value of "alt_max_fd" is + * updated accordingly. "alt_max_fd" is a 'highwater mark' which + * indicates the highest file descriptor ever allocated. This is used to + * improve efficency when searching the file descriptor list, and + * therefore reduce contention on the alt_fd_list_lock semaphore. + */ + + for (i = 0; i < ALT_MAX_FD; i++) + { + if (!alt_fd_list[i].dev) + { + alt_fd_list[i].dev = dev; + if (i > alt_max_fd) + { + alt_max_fd = i; + } + rc = i; + goto alt_get_fd_exit; + } + } + + alt_get_fd_exit: + + /* + * Release the alt_fd_list_lock semaphore now that we are done with the + * file descriptor pool. + */ + + ALT_SEM_POST(alt_fd_list_lock); + + return rc; +} + + + + diff --git a/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_getchar.c b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_getchar.c new file mode 100644 index 0000000..a8f50d5 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_getchar.c @@ -0,0 +1,61 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +#ifdef ALT_USE_DIRECT_DRIVERS +#include "system.h" +#include "sys/alt_driver.h" +#include "sys/alt_stdio.h" +#include "priv/alt_file.h" +#include "unistd.h" +#endif + +/* + * Uses the ALT_DRIVER_READ() macro to call directly to driver if available. + * Otherwise, uses newlib provided getchar() routine. + */ +int +alt_getchar(void) +{ +#ifdef ALT_USE_DIRECT_DRIVERS + ALT_DRIVER_READ_EXTERNS(ALT_STDIN_DEV); + char c; + + if (ALT_DRIVER_READ(ALT_STDIN_DEV, &c, 1, alt_fd_list[STDIN_FILENO].fd_flags) <= 0) { + return -1; + } + return c; +#else + return getchar(); +#endif +} diff --git a/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_getpid.c b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_getpid.c new file mode 100644 index 0000000..2228c7e --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_getpid.c @@ -0,0 +1,47 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "os/alt_syscall.h" + +/* + * The getpid() system call is used by newlib to obtain the current process + * id. Since there is only ever a single process in the HAL environment, + * this just returns a constant. + * + * ALT_GETPID is mapped onto the getpid() system call in alt_syscall.h + */ + +int ALT_GETPID (void) +{ + return 0; +} + diff --git a/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_gettod.c b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_gettod.c new file mode 100644 index 0000000..ed86cba --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_gettod.c @@ -0,0 +1,125 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include +#include + +#include "sys/alt_alarm.h" +#include "alt_types.h" +#include "os/alt_syscall.h" + +/* + * Macro defining the number of micoseconds in a second. + */ + +#define ALT_US (1000000) + +/* + * "alt_timezone" and "alt_resettime" are the values of the the reset time and + * time zone set through the last call to settimeofday(). By default they are + * zero initialised. + */ + +struct timezone alt_timezone = {0, 0}; +struct timeval alt_resettime = {0, 0}; + +/* + * gettimeofday() can be called to obtain a time structure which indicates the + * current "wall clock" time. This is calculated using the elapsed number of + * system clock ticks, and the value of "alt_resettime" and "alt_timezone" set + * through the last call to settimeofday(). + * + * Warning: if this function is called concurrently with a call to + * settimeofday(), the value returned by gettimeofday() will be unreliable. + * + * ALT_GETTIMEOFDAY is mapped onto the gettimeofday() system call in + * alt_syscall.h + */ + + +#if defined (__GNUC__) && (__GNUC__ >= 4) +int ALT_GETTIMEOFDAY (struct timeval *ptimeval, void *ptimezone_vptr) +{ + struct timezone *ptimezone = (struct timezone*)ptimezone_vptr; +#else +int ALT_GETTIMEOFDAY (struct timeval *ptimeval, struct timezone *ptimezone) +{ +#endif + + alt_u32 nticks = alt_nticks (); + alt_u32 tick_rate = alt_ticks_per_second (); + + /* + * Check to see if the system clock is running. This is indicated by a + * non-zero system clock rate. If the system clock is not running, an error + * is generated and the contents of "ptimeval" and "ptimezone" are not + * updated. + */ + + if (tick_rate) + { + ptimeval->tv_sec = alt_resettime.tv_sec + nticks/tick_rate; + ptimeval->tv_usec = alt_resettime.tv_usec + + (alt_u32)(((alt_u64)nticks*(ALT_US/tick_rate))%ALT_US); + + while(ptimeval->tv_usec < 0) { + if (ptimeval->tv_sec <= 0) + { + ptimeval->tv_sec = 0; + ptimeval->tv_usec = 0; + break; + } + else + { + ptimeval->tv_sec--; + ptimeval->tv_usec += ALT_US; + } + } + + while(ptimeval->tv_usec >= ALT_US) { + ptimeval->tv_sec++; + ptimeval->tv_usec -= ALT_US; + } + + if (ptimezone) + { + ptimezone->tz_minuteswest = alt_timezone.tz_minuteswest; + ptimezone->tz_dsttime = alt_timezone.tz_dsttime; + } + + return 0; + } + + return -ENOTSUP; +} + diff --git a/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_gmon.c b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_gmon.c new file mode 100644 index 0000000..6add9f1 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_gmon.c @@ -0,0 +1,272 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003-2005 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include +#include +#include + +#include "priv/nios2_gmon_data.h" + +#include "sys/alt_irq.h" +#include "sys/alt_alarm.h" + + +/* Macros */ + +/* How large should the bins be which we use to generate the histogram */ +#define PCSAMPLE_BYTES_PER_BUCKET 32 + +#define NIOS2_READ_EA(dest) __asm__ ("mov %0, ea" : "=r" (dest)) + +/* The compiler inserts calls to mcount() at the start of + * every function call. The structure mcount_fn_arc records t + * he return address of the function called (in from_pc) + * and the return address of the mcount function + * (in self_pc). The number of times this arc is executed is + * recorded in the field count. + */ +struct mcount_fn_arc +{ + struct mcount_fn_arc * next; + void * from_pc; + unsigned int count; +}; + +/* We need to maintain a list of pointers to the heads of each adjacency + * list so that we can find them when writing out the gmon.out file. Since + * we don't know at the start of program execution how many functions will + * be called we use a list structure to do this. + */ +struct mcount_fn_entry +{ + struct mcount_fn_entry * next; + void * self_pc; + struct mcount_fn_arc * arc_head; +}; + +/* function prototypes */ + +void __mcount_record(void * self_pc, void * from_pc, struct mcount_fn_entry * fn_entry, struct mcount_fn_entry * * fn_head) __attribute__ ((no_instrument_function)); + +static __inline__ void * mcount_allocate(unsigned int size) __attribute__ ((no_instrument_function)); +static int nios2_pcsample_init(void) __attribute__ ((no_instrument_function)); +static alt_u32 nios2_pcsample(void* alarm) __attribute__ ((no_instrument_function)); + +/* global variables */ + +/* stext and etext are defined in the linker script */ +extern char stext[]; +extern char etext[]; + +/* Is the PC sampling stuff enabled yet? */ +static int pcsample_need_init = 1; + +#define HASH_BUCKETS 64 /* Must be a power of 2 */ + +/* This points to the list of adjacency list pointers. */ +struct mcount_fn_entry * __mcount_fn_head[HASH_BUCKETS]; + +/* pointer to the in-memory buffer containing the histogram */ +static unsigned short* s_pcsamples = 0; + +/* the address of the start and end of text section */ +static const unsigned int s_low_pc = (unsigned int)stext; +static const unsigned int s_high_pc = (unsigned int)etext; + +/* the alarm structure to register for pc sampling */ +static alt_alarm s_nios2_pcsample_alarm; + +unsigned int alt_gmon_data[GMON_DATA_SIZE] = +{ + 0x6e6f6d67, /* "gmon" */ + GMON_DATA_SIZE, + 0, + (unsigned int)stext, + (unsigned int)etext, + PCSAMPLE_BYTES_PER_BUCKET, + 0, + (unsigned int)__mcount_fn_head, + (unsigned int)(__mcount_fn_head + HASH_BUCKETS) +}; + +/* This holds the current slab of memory we're allocating out of */ +static char * mcount_slab_ptr = 0; +static int mcount_slab_size = 0; + +#define MCOUNT_SLAB_INCREMENT 1020 + + +/* + * We can't use malloc to allocate memory because that's too complicated, and + * can't be called at interrupt time. Use the lower level allocator instead + * because that's interrupt safe (and because we never free anything). + * + * For speed, we allocate a block of data at once. + */ +static __inline__ void * mcount_allocate(unsigned int size) +{ + void * data; + + if (size > mcount_slab_size) + { + mcount_slab_ptr = sbrk(MCOUNT_SLAB_INCREMENT); + mcount_slab_size = MCOUNT_SLAB_INCREMENT; + } + + data = mcount_slab_ptr; + mcount_slab_ptr += size; + mcount_slab_size -= size; + + return data; +} + + +/* + * Add the arc with the values of frompc and topc given to the graph. + * This function might be called at interrupt time so must be able to + * cope with reentrancy. + * + * The fast case, where we have already allocated a function arc, has been + * handled by the assmebler code. + */ +void __mcount_record(void * self_pc, void * from_pc, struct mcount_fn_entry * fn_entry, struct mcount_fn_entry * * fn_head) +{ + alt_irq_context context; + struct mcount_fn_arc * arc_entry; + + /* Keep trying to start up the PC sampler until it is running. + * (It can't start until the timer is going). + */ + if (pcsample_need_init) + { + pcsample_need_init = 0; + pcsample_need_init = nios2_pcsample_init(); + } + + /* + * We must disable interrupts around the allocation and the list update to + * prevent corruption if the instrumented function is re-entrant. + * + * It's safe for the code above to be stepping through the chain and be + * interrupted by this code modifying it - there is an edge case which will + * leave two copies of the same arc on the list (both with count=1), but + * this is dealt with on the host. + */ + context = alt_irq_disable_all(); + + if (fn_entry == NULL) + { + /* Add it to the list of functions we must output later. */ + fn_entry = (struct mcount_fn_entry *)mcount_allocate(sizeof(struct mcount_fn_entry)); + + fn_entry->self_pc = self_pc; + fn_entry->arc_head = NULL; + + fn_entry->next = *fn_head; + *fn_head = fn_entry; + } + + /* We will need a new list entry - if there was a list entry before + * then the assembler code would have handled it. */ + arc_entry = (struct mcount_fn_arc *)mcount_allocate(sizeof(struct mcount_fn_arc)); + + arc_entry->from_pc = from_pc; + arc_entry->count = 1; + + arc_entry->next = fn_entry->arc_head; + fn_entry->arc_head = arc_entry; + + alt_irq_enable_all(context); +} + + +/* + * nios2_pcsample_init starts profiling. + * It is called the first time mcount is called, and on subsequent calls to + * mcount until it returns zero. It initializes the pc histogram and turns on + * timer driven pc sampling. + */ +static int nios2_pcsample_init(void) +{ + unsigned int pcsamples_size; + + /* We sample the PC every tick */ + unsigned int prof_rate = alt_ticks_per_second(); + if (prof_rate == 0) + return 1; + + /* allocate the histogram buffer s_pcsamples */ + pcsamples_size = (s_high_pc - s_low_pc)/PCSAMPLE_BYTES_PER_BUCKET; + s_pcsamples = (unsigned short*)sbrk(pcsamples_size * sizeof(unsigned short)); + + if (s_pcsamples != 0) + { + /* initialize the buffer to zero */ + memset(s_pcsamples, 0, pcsamples_size * sizeof(unsigned short)); + + alt_gmon_data[GMON_DATA_PROFILE_DATA] = (int)s_pcsamples; + alt_gmon_data[GMON_DATA_PROFILE_RATE] = prof_rate; + + /* Sample every tick (it's cheap) */ + alt_alarm_start(&s_nios2_pcsample_alarm, 1, nios2_pcsample, 0); + } + + return 0; +} + + +/* + * Sample the PC value and store it in the histogram + */ +static alt_u32 nios2_pcsample(void* context) +{ + unsigned int pc; + unsigned int bucket; + + /* read the exception return address - this will be + * inaccurate if there are nested interrupts but we + * assume that this is rare and the inaccuracy will + * not be great */ + NIOS2_READ_EA(pc); + + /* + * If we're within the profilable range then increment the relevant + * bucket in the histogram + */ + if (pc >= s_low_pc && pc < s_high_pc && s_pcsamples != 0) + { + bucket = (pc - s_low_pc)/PCSAMPLE_BYTES_PER_BUCKET; + s_pcsamples[bucket]++; + } + + /* Sample every tick */ + return 1; +} + diff --git a/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_icache_flush.c b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_icache_flush.c new file mode 100644 index 0000000..4b706ed --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_icache_flush.c @@ -0,0 +1,84 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "nios2.h" +#include "system.h" + +#include "alt_types.h" +#include "sys/alt_cache.h" + +/* + * alt_icache_flush() is called to flush the instruction cache for a memory + * region of length "len" bytes, starting at address "start". + */ + +void alt_icache_flush (void* start, alt_u32 len) +{ +#if NIOS2_ICACHE_SIZE > 0 + + char* i; + char* end; + + /* + * This is the most we would ever need to flush. + */ + + if (len > NIOS2_ICACHE_SIZE) + { + len = NIOS2_ICACHE_SIZE; + } + + end = ((char*) start) + len; + + for (i = start; i < end; i+= NIOS2_ICACHE_LINE_SIZE) + { + __asm__ volatile ("flushi %0" :: "r" (i)); + } + + /* + * For an unaligned flush request, we've got one more line left. + * Note that this is dependent on NIOS2_ICACHE_LINE_SIZE to be a + * multiple of 2 (which it always is). + */ + + if (((alt_u32) start) & (NIOS2_ICACHE_LINE_SIZE - 1)) + { + __asm__ volatile ("flushi %0" :: "r" (i)); + } + + /* + * Having flushed the cache, flush any stale instructions in the + * pipeline + */ + + __asm__ volatile ("flushp"); + +#endif /* NIOS2_ICACHE_SIZE > 0 */ +} diff --git a/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_icache_flush_all.c b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_icache_flush_all.c new file mode 100644 index 0000000..5088552 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_icache_flush_all.c @@ -0,0 +1,46 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "nios2.h" +#include "system.h" + +#include "alt_types.h" +#include "sys/alt_cache.h" + +/* + * alt_icache_flush_all() is called to flush the entire instruction cache. + */ + +void alt_icache_flush_all (void) +{ +#if NIOS2_ICACHE_SIZE > 0 + alt_icache_flush (0, NIOS2_ICACHE_SIZE); +#endif +} diff --git a/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_iic.c b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_iic.c new file mode 100644 index 0000000..1db5afa --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_iic.c @@ -0,0 +1,106 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2009 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ +#include "system.h" + +/* + * This file implements the HAL Enhanced interrupt API for Nios II processors + * with an internal interrupt controller (IIC). For most routines, this serves + * as a wrapper layer over the legacy interrupt API (which must be used with + * the IIC only). + * + * Use of the enhanced API is recommended so that application and device + * drivers are compatible with a Nios II system configured with an external + * interrupt controller (EIC), or IIC. This will afford maximum portability. + * + * If an EIC is present, the EIC device driver must provide these routines, + * because their operation will be specific to that EIC type. + */ +#ifndef NIOS2_EIC_PRESENT +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT + +#include "sys/alt_irq.h" +#include "priv/alt_iic_isr_register.h" +#include "priv/alt_legacy_irq.h" + +/** @Function Description: This function registers an interrupt handler. + * If the function is succesful, then the requested interrupt will be enabled upon + * return. Registering a NULL handler will disable the interrupt. + * @API Type: External + * @param ic_id Ignored. + * @param irq IRQ number + * @return 0 if successful, else error (-1) + */ +int alt_ic_isr_register(alt_u32 ic_id, alt_u32 irq, alt_isr_func isr, + void *isr_context, void *flags) +{ + return alt_iic_isr_register(ic_id, irq, isr, isr_context, flags); +} + +/** @Function Description: This function enables a single interrupt. + * @API Type: External + * @param ic_id Ignored. + * @param irq IRQ number + * @return 0 if successful, else error (-1) + */ +int alt_ic_irq_enable (alt_u32 ic_id, alt_u32 irq) +{ + return alt_irq_enable(irq); +} + +/** @Function Description: This function disables a single interrupt. + * @API Type: External + * @param ic_id Ignored. + * @param irq IRQ number + * @return 0 if successful, else error (-1) + */ +int alt_ic_irq_disable(alt_u32 ic_id, alt_u32 irq) +{ + return alt_irq_disable(irq); +} + +/** @Function Description: This function to determine if corresponding + * interrupt is enabled. + * @API Type: External + * @param ic_id Ignored. + * @param irq IRQ number + * @return Zero if corresponding interrupt is disabled and + * non-zero otherwise. + */ +alt_u32 alt_ic_irq_enabled(alt_u32 ic_id, alt_u32 irq) +{ + alt_u32 irq_enabled; + + NIOS2_READ_IENABLE(irq_enabled); + + return (irq_enabled & (1 << irq)) ? 1: 0; +} + +#endif /* ALT_ENHANCED_INTERRUPT_API_PRESENT */ +#endif /* NIOS2_EIC_PRESENT */ diff --git a/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_iic_isr_register.c b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_iic_isr_register.c new file mode 100644 index 0000000..b104395 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_iic_isr_register.c @@ -0,0 +1,104 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2009 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ +#include +#include "system.h" + +/* + * Provides an interrupt registry mechanism for the any CPUs internal interrupt + * controller (IIC) when the enhanced interrupt API is active. + */ +#ifndef ALT_CPU_EIC_PRESENT +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT + +#include "alt_types.h" +#include "sys/alt_irq.h" +#include "priv/alt_iic_isr_register.h" + +/* + * The header, alt_irq_entry.h, contains the exception entry point, and is + * provided by the processor component. It is included here, so that the code + * will be added to the executable only if alt_irq_register() is present, i.e. + * if no interrupts are registered - there's no need to provide any + * interrupt handling. + */ + +#include "sys/alt_irq_entry.h" + +/* + * The header, alt_irq_table.h contains a table describing which function + * handles each interrupt. + */ + +#include "priv/alt_irq_table.h" + +/** @Function Description: This function registers an interrupt handler. + * If the function is succesful, then the requested interrupt will be enabled + * upon return. Registering a NULL handler will disable the interrupt. + * + * @API Type: External + * @param ic_id Interrupt controller ID + * @param irq IRQ ID number + * @param isr Pointer to interrupt service routine + * @param isr_context Opaque pointer passed to ISR + * @param flags + * @return 0 if successful, else error (-1) + */ +int alt_iic_isr_register(alt_u32 ic_id, alt_u32 irq, alt_isr_func isr, + void *isr_context, void *flags) +{ + int rc = -EINVAL; + int id = irq; /* IRQ interpreted as the interrupt ID. */ + alt_irq_context status; + + if (id < ALT_NIRQ) + { + /* + * interrupts are disabled while the handler tables are updated to ensure + * that an interrupt doesn't occur while the tables are in an inconsistant + * state. + */ + + status = alt_irq_disable_all(); + + alt_irq[id].handler = isr; + alt_irq[id].context = isr_context; + + rc = (isr) ? alt_ic_irq_enable(ic_id, id) : alt_ic_irq_disable(ic_id, id); + + alt_irq_enable_all(status); + } + + return rc; +} + +#endif /* ALT_ENHANCED_INTERRUPT_API_PRESENT */ +#endif /* ALT_CPU_EIC_PRESENT */ diff --git a/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_instruction_exception_entry.c b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_instruction_exception_entry.c new file mode 100644 index 0000000..f4f52fc --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_instruction_exception_entry.c @@ -0,0 +1,203 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2008 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ +#include "sys/alt_exceptions.h" +#include "nios2.h" +#include "alt_types.h" +#include "system.h" + +/* + * This file implements support for calling user-registered handlers for + * instruction-generated exceptions. This handler could also be reached + * in the event of a spurious interrupt. + * + * The handler code is optionally enabled through the "Enable + * Instruction-related Exception API" HAL BSP setting, which will + * define the macro below. + */ +#ifdef ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API + +/* Function pointer to exception callback routine */ +alt_exception_result (*alt_instruction_exception_handler) + (alt_exception_cause, alt_u32, alt_u32) = 0x0; + +/* Link entry routine to .exceptions section */ +int alt_instruction_exception_entry (alt_u32 exception_pc) + __attribute__ ((section (".exceptions"))); + +/* + * This is the entry point for instruction-generated exceptions handling. + * This routine will be called by alt_exceptions_entry.S, after it determines + * that an exception could not be handled by handlers that preceed that + * of instruction-generated exceptions (such as interrupts). + * + * For this to function properly, you must register an exception handler + * using alt_instruction_exception_register(). This routine will call + * that handler if it has been registered. Absent a handler, it will + * break break or hang as discussed below. + */ +int alt_instruction_exception_entry (alt_u32 exception_pc) +{ + alt_u32 cause, badaddr; + +/* + * If the processor hardware has the optional EXCEPTIONS & BADADDR registers, + * read them and pass their content to the user handler. These are always + * present if the MMU or MPU is enabled, and optionally for other advanced + * exception types via the "Extra exceptions information" setting in the + * processor (hardware) configuration. + * + * If these registers are not present, the cause field will be set to + * NIOS2_EXCEPTION_CAUSE_NOT_PRESENT. Your handling routine should + * check the validity of the cause argument before proceeding. + */ +#ifdef NIOS2_HAS_EXTRA_EXCEPTION_INFO + /* Get exception cause & "badaddr" */ + NIOS2_READ_EXCEPTION(cause); + cause = ( (cause & NIOS2_EXCEPTION_REG_CAUSE_MASK) >> + NIOS2_EXCEPTION_REG_CAUSE_OFST ); + + NIOS2_READ_BADADDR(badaddr); +#else + cause = NIOS2_EXCEPTION_CAUSE_NOT_PRESENT; + badaddr = 0; +#endif /* NIOS2_HAS_EXTRA_EXCEPTION_INFO */ + + if(alt_instruction_exception_handler) { + /* + * Call handler. Its return value indicates whether the exception-causing + * instruction should be re-issued. The code that called us, + * alt_eceptions_entry.S, will look at this value and adjust the ea + * register as necessary + */ + return alt_instruction_exception_handler(cause, exception_pc, badaddr); + } + /* + * We got here because an instruction-generated exception occured, but no + * handler is present. We do not presume to know how to handle it. If the + * debugger is present, break, otherwise hang. + * + * If you've reached here in the debugger, consider examining the + * EXCEPTIONS register cause bit-field, which was read into the 'cause' + * variable above, and compare it against the exceptions-type enumeration + * in alt_exceptions.h. This register is availabe if the MMU or MPU is + * present, or if the "Extra exceptions information" hardware option is + * selected. + * + * If you get here then one of the following could have happened: + * + * - An instruction-generated exception occured, and the processor + * does not have the extra exceptions feature enabled, or you + * have not registered a handler using + * alt_instruction_exception_register() + * + * Some examples of instruction-generated exceptions and why they + * might occur: + * + * - Your program could have been compiled for a full-featured + * Nios II core, but it is running on a smaller core, and + * instruction emulation has been disabled by defining + * ALT_NO_INSTRUCTION_EMULATION. + * + * You can work around the problem by re-enabling instruction + * emulation, or you can figure out why your program is being + * compiled for a system other than the one that it is running on. + * + * - Your program has executed a trap instruction, but has not + * implemented a handler for this instruction. + * + * - Your program has executed an illegal instruction (one which is + * not defined in the instruction set). + * + * - Your processor includes an MMU or MPU, and you have enabled it + * before registering an exception handler to service exceptions it + * generates. + * + * The problem could also be hardware related: + * - If your hardware is broken and is generating spurious interrupts + * (a peripheral which negates its interrupt output before its + * interrupt handler has been executed will cause spurious interrupts) + */ + else { +#ifdef NIOS2_HAS_DEBUG_STUB + NIOS2_BREAK(); +#else + while(1) + ; +#endif /* NIOS2_HAS_DEBUG_STUB */ + } + + /* // We should not get here. Remove compiler warning. */ + return NIOS2_EXCEPTION_RETURN_REISSUE_INST; +} + +#endif /* ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API */ + +/* + * This routine indicates whether a particular exception cause will have + * set a valid address into the BADADDR register, which is included + * in the arguments to a user-registered instruction-generated exception + * handler. Many exception types do not set valid contents in BADADDR; + * this is a convenience routine to easily test the validity of that + * argument in your handler. + * + * Note that this routine will return false (0) for cause '12', + * TLB miss. This is because there are four exception types that + * share that cause, two of which do not have a valid BADADDR. You + * must determine BADADDR's validity for these. + * + * Arguments: + * cause: The 5-bit exception cause field of the EXCEPTIONS register, + * shifted to the LSB position. You may pass the 'cause' argument + * in a handler you registered directy to this routine. + * + * Return: 1: BADADDR (bad_addr argument to handler) is valid + * 0: BADADDR is not valid + */ +int alt_exception_cause_generated_bad_addr(alt_exception_cause cause) +{ + switch (cause) { + case NIOS2_EXCEPTION_SUPERVISOR_ONLY_DATA_ADDR: + return 1; + case NIOS2_EXCEPTION_MISALIGNED_DATA_ADDR: + return 1; + case NIOS2_EXCEPTION_MISALIGNED_TARGET_PC: + return 1; + case NIOS2_EXCEPTION_TLB_READ_PERM_VIOLATION: + return 1; + case NIOS2_EXCEPTION_TLB_WRITE_PERM_VIOLATION: + return 1; + case NIOS2_EXCEPTION_MPU_DATA_REGION_VIOLATION: + return 1; + default: + return 0; + } +} diff --git a/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_instruction_exception_register.c b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_instruction_exception_register.c new file mode 100644 index 0000000..b059e1d --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_instruction_exception_register.c @@ -0,0 +1,82 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2008 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ +#include "sys/alt_exceptions.h" +#include "alt_types.h" +#include "system.h" + +/* + * This file implements support for calling user-registered handlers for + * instruction-generated exceptions. + * + * The registry API is optionally enabled through the "Enable + * Instruction-related Exception API" HAL BSP setting, which will + * define the macro below. + */ +#ifdef ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API + +/* + * The header, alt_exception_handler_registry.h contains a struct describing + * the registered exception handler + */ +#include "priv/alt_exception_handler_registry.h" + +/* + * Pull in the exception entry assembly code. This will not be linked in + * unless this object is linked into the executable (i.e. only if + * alt_instruction_exception_register() is called). + */ +__asm__( "\n\t.globl alt_exception" ); + +/* + * alt_instruction_exception_register() is called to register a handler to + * service instruction-generated exceptions that are not handled by the + * default exception handler code (interrupts, and optionally unimplemented + * instructions and traps). + * + * Passing null (0x0) in the handler argument will disable a previously- + * registered handler. + * + * Note that if no handler is registered, exceptions that are not processed + * using the built-in handler (interrupts, and optionally unimplemented + * instructions and traps) are treated as unknown exceptions, resulting + * in either a break or an infinite loop. + */ +void alt_instruction_exception_register ( + alt_exception_result (*exception_handler)( + alt_exception_cause cause, + alt_u32 exception_pc, + alt_u32 bad_addr) ) +{ + alt_instruction_exception_handler = exception_handler; +} + +#endif /* ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API */ diff --git a/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_io_redirect.c b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_io_redirect.c new file mode 100644 index 0000000..8c862f7 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_io_redirect.c @@ -0,0 +1,98 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include +#include +#include + +#include "sys/alt_dev.h" +#include "priv/alt_file.h" + + +/* + * alt_open_fd() is similar to open() in that it is used to obtain a file + * descriptor for the file named "name". The "flags" and "mode" arguments are + * identical to the "flags" and "mode" arguments of open(). + * + * The distinction between the two functions is that the file descriptor + * structure to use is passed in as an argument, rather than allocated from the + * list of free file descriptors. + * + * This is used by alt_io_redirect() to redirect the stdin, stdout and stderr + * file descriptors to point to new devices. + * + * If the device can not be succesfully opened, then the input file descriptor + * remains unchanged. + */ + +static void alt_open_fd(alt_fd* fd, const char* name, int flags, int mode) +{ + int old; + + old = open (name, flags, mode); + + if (old >= 0) + { + fd->dev = alt_fd_list[old].dev; + fd->priv = alt_fd_list[old].priv; + fd->fd_flags = alt_fd_list[old].fd_flags; + + alt_release_fd (old); + } +} + +/* + * alt_io_redirect() is called once the device/filesystem lists have been + * initialised, but before main(). Its function is to redirect standard in, + * standard out and standard error so that they point to the devices selected by + * the user (as defined in system.h). + * + * Prior to the call to this function, io is directed towards /dev/null. If + * i/o can not be redirected to the requested device, for example if the device + * does not exist, then it remains directed at /dev/null. + */ + +void alt_io_redirect(const char* stdout_dev, + const char* stdin_dev, + const char* stderr_dev) +{ + /* Redirect the channels */ + + alt_open_fd (&alt_fd_list[STDOUT_FILENO], stdout_dev, O_WRONLY, 0777); + alt_open_fd (&alt_fd_list[STDIN_FILENO], stdin_dev, O_RDONLY, 0777); + alt_open_fd (&alt_fd_list[STDERR_FILENO], stderr_dev, O_WRONLY, 0777); +} + + + + diff --git a/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_ioctl.c b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_ioctl.c new file mode 100644 index 0000000..f5d7ef1 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_ioctl.c @@ -0,0 +1,170 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +#include "sys/ioctl.h" +#include "sys/alt_errno.h" +#include "sys/alt_warning.h" +#include "priv/alt_file.h" +#include "os/alt_syscall.h" + +/* + * The ioctl() system call is provided so that application code can manipulate + * the i/o capabilities of a device in device specific ways. This is identical + * to the standard posix ioctl() function. + * + * In general this implementation simply vectors ioctl requests to the + * apropriate drivers ioctl function (as registered in the drivers alt_dev + * structure). + * + * However in the case of devices (as oposed to filesystem), the TIOCEXCL and + * TIOCNXCL requests are handled without reference to the driver. These + * requests are used to lock/release a device for exclusive access. + * + * Handling these requests centrally eases the task of device driver + * development. + * + * ALT_IOCTL is mapped onto the ioctl() system call in alt_syscall.h + */ + +#ifdef ALT_USE_DIRECT_DRIVERS + +#include "system.h" +#include "sys/alt_driver.h" + +/* + * Provide minimal version that calls ioctl routine of provided stdio devices. + */ +int ALT_IOCTL (int file, int req, void* arg) +{ +#ifdef ALT_STDIN_PRESENT + ALT_DRIVER_IOCTL_EXTERNS(ALT_STDIN_DEV); +#endif +#ifdef ALT_STDOUT_PRESENT + ALT_DRIVER_IOCTL_EXTERNS(ALT_STDOUT_DEV); +#endif +#ifdef ALT_STDERR_PRESENT + ALT_DRIVER_IOCTL_EXTERNS(ALT_STDERR_DEV); +#endif + +#if !defined(ALT_STDIN_PRESENT) && !defined(ALT_STDOUT_PRESENT) && !defined(ALT_STDERR_PRESENT) + /* Generate a link time warning, should this function ever be called. */ + ALT_STUB_WARNING(ioctl); +#endif + + switch (file) { +#ifdef ALT_STDIN_PRESENT + case 0: /* stdin file descriptor */ + return ALT_DRIVER_IOCTL(ALT_STDIN_DEV, req, arg); +#endif /* ALT_STDIN_PRESENT */ +#ifdef ALT_STDOUT_PRESENT + case 1: /* stdout file descriptor */ + return ALT_DRIVER_IOCTL(ALT_STDOUT_DEV, req, arg); +#endif /* ALT_STDOUT_PRESENT */ +#ifdef ALT_STDERR_PRESENT + case 2: /* stderr file descriptor */ + return ALT_DRIVER_IOCTL(ALT_STDERR_DEV, req, arg); +#endif /* ALT_STDERR_PRESENT */ + default: + ALT_ERRNO = EBADFD; + return -1; + } +} + +#else /* !ALT_USE_DIRECT_DRIVERS */ + +int ALT_IOCTL (int file, int req, void* arg) +{ + alt_fd* fd; + int rc; + + /* + * A common error case is that when the file descriptor was created, the call + * to open() failed resulting in a negative file descriptor. This is trapped + * below so that we don't try and process an invalid file descriptor. + */ + + fd = (file < 0) ? NULL : &alt_fd_list[file]; + + if (fd) + { + + /* + * In the case of device drivers (not file systems) handle the TIOCEXCL + * and TIOCNXCL requests as special cases. + */ + + if (fd->fd_flags & ALT_FD_DEV) + { + if (req == TIOCEXCL) + { + rc = alt_fd_lock (fd); + goto ioctl_done; + } + else if (req == TIOCNXCL) + { + rc = alt_fd_unlock (fd); + goto ioctl_done; + } + } + + /* + * If the driver provides an ioctl() function, call that to handle the + * request, otherwise set the return code to indicate that the request + * could not be processed. + */ + + if (fd->dev->ioctl) + { + rc = fd->dev->ioctl(fd, req, arg); + } + else + { + rc = -ENOTTY; + } + } + else + { + rc = -EBADFD; + } + +ioctl_done: + + if (rc < 0) + { + ALT_ERRNO = -rc; + } + return rc; +} + +#endif /* ALT_USE_DIRECT_DRIVERS */ diff --git a/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_irq_entry.S b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_irq_entry.S new file mode 100644 index 0000000..d3efe7d --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_irq_entry.S @@ -0,0 +1,108 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003-2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "system.h" + +/* + * This is the interrupt exception entry point code, which saves all the + * registers and calls the interrupt handler. It should be pulled in using + * a .globl from alt_irq_register.c. This scheme is used so that if an + * interrupt is never registered, then this code will not appear in the + * generated executable, thereby improving code footprint. + */ + + /* + * Explicitly allow the use of r1 (the assembler temporary register) + * within this code. This register is normally reserved for the use of + * the compiler. + */ + .set noat + + /* + * Pull in the exception handler register save code. + */ + .globl alt_exception + + .globl alt_irq_entry + .section .exceptions.entry.label, "xa" +alt_irq_entry: + + /* + * Section .exceptions.entry is in alt_exception_entry.S + * This saves all the caller saved registers and reads estatus into r5 + */ + + .section .exceptions.irqtest, "xa" + +#ifdef ALT_CI_INTERRUPT_VECTOR_N + /* + * Use the interrupt vector custom instruction if present to accelerate + * this code. + * If the interrupt vector custom instruction returns a negative + * value, there are no interrupts active (estatus.pie is 0 + * or ipending is 0) so assume it is a software exception. + */ + custom ALT_CI_INTERRUPT_VECTOR_N, r4, r0, r0 + blt r4, r0, .Lnot_irq +#else + /* + * Test to see if the exception was a software exception or caused + * by an external interrupt, and vector accordingly. + */ + rdctl r4, ipending + andi r2, r5, 1 + beq r2, zero, .Lnot_irq + beq r4, zero, .Lnot_irq +#endif /* ALT_CI_INTERRUPT_VECTOR_N */ + + .section .exceptions.irqhandler, "xa" + /* + * Now that all necessary registers have been preserved, call + * alt_irq_handler() to process the interrupts. + */ + + call alt_irq_handler + + .section .exceptions.irqreturn, "xa" + + br .Lexception_exit + + .section .exceptions.notirq.label, "xa" + +.Lnot_irq: + + /* + * Section .exceptions.exit is in alt_exception_entry.S + * This restores all the caller saved registers + */ + + .section .exceptions.exit.label +.Lexception_exit: + diff --git a/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_irq_handler.c b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_irq_handler.c new file mode 100644 index 0000000..3253d02 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_irq_handler.c @@ -0,0 +1,169 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2009 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include "system.h" + +/* + * This interrupt handler only works with an internal interrupt controller + * (IIC). Processors with an external interrupt controller (EIC) use an + * implementation provided by an EIC driver. + */ +#ifndef ALT_CPU_EIC_PRESENT + +#include "sys/alt_irq.h" +#include "os/alt_hooks.h" + +#include "alt_types.h" + +/* + * A table describing each interrupt handler. The index into the array is the + * interrupt id associated with the handler. + * + * When an interrupt occurs, the associated handler is called with + * the argument stored in the context member. + */ +struct ALT_IRQ_HANDLER +{ +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT + void (*handler)(void*); +#else + void (*handler)(void*, alt_u32); +#endif + void *context; +} alt_irq[ALT_NIRQ]; + +/* + * alt_irq_handler() is called by the interrupt exception handler in order to + * process any outstanding interrupts. + * + * It is defined here since it is linked in using weak linkage. + * This means that if there is never a call to alt_irq_register() (above) then + * this function will not get linked in to the executable. This is acceptable + * since if no handler is ever registered, then an interrupt can never occur. + * + * If Nios II interrupt vector custom instruction exists, use it to accelerate + * the dispatch of interrupt handlers. The Nios II interrupt vector custom + * instruction is present if the macro ALT_CI_INTERRUPT_VECTOR defined. + */ + +void alt_irq_handler (void) __attribute__ ((section (".exceptions"))); +void alt_irq_handler (void) +{ +#ifdef ALT_CI_INTERRUPT_VECTOR + alt_32 offset; + char* alt_irq_base = (char*)alt_irq; +#else + alt_u32 active; + alt_u32 mask; + alt_u32 i; +#endif /* ALT_CI_INTERRUPT_VECTOR */ + + /* + * Notify the operating system that we are at interrupt level. + */ + + ALT_OS_INT_ENTER(); + +#ifdef ALT_CI_INTERRUPT_VECTOR + /* + * Call the interrupt vector custom instruction using the + * ALT_CI_INTERRUPT_VECTOR macro. + * It returns the offset into the vector table of the lowest-valued pending + * interrupt (corresponds to highest priority) or a negative value if none. + * The custom instruction assumes that each table entry is eight bytes. + */ + while ((offset = ALT_CI_INTERRUPT_VECTOR) >= 0) { + struct ALT_IRQ_HANDLER* handler_entry = + (struct ALT_IRQ_HANDLER*)(alt_irq_base + offset); +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT + handler_entry->handler(handler_entry->context); +#else + handler_entry->handler(handler_entry->context, offset >> 3); +#endif + } +#else /* ALT_CI_INTERRUPT_VECTOR */ + /* + * Obtain from the interrupt controller a bit list of pending interrupts, + * and then process the highest priority interrupt. This process loops, + * loading the active interrupt list on each pass until alt_irq_pending() + * return zero. + * + * The maximum interrupt latency for the highest priority interrupt is + * reduced by finding out which interrupts are pending as late as possible. + * Consider the case where the high priority interupt is asserted during + * the interrupt entry sequence for a lower priority interrupt to see why + * this is the case. + */ + + active = alt_irq_pending (); + + do + { + i = 0; + mask = 1; + + /* + * Test each bit in turn looking for an active interrupt. Once one is + * found, the interrupt handler asigned by a call to alt_irq_register() is + * called to clear the interrupt condition. + */ + + do + { + if (active & mask) + { +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT + alt_irq[i].handler(alt_irq[i].context); +#else + alt_irq[i].handler(alt_irq[i].context, i); +#endif + break; + } + mask <<= 1; + i++; + + } while (1); + + active = alt_irq_pending (); + + } while (active); +#endif /* ALT_CI_INTERRUPT_VECTOR */ + + /* + * Notify the operating system that interrupt processing is complete. + */ + + ALT_OS_INT_EXIT(); +} + +#endif /* ALT_CPU_EIC_PRESENT */ diff --git a/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_irq_register.c b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_irq_register.c new file mode 100644 index 0000000..b5ea474 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_irq_register.c @@ -0,0 +1,102 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2009 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ +#include +#include "system.h" + +/* + * This interrupt registry mechanism works with the Nios II internal interrupt + * controller (IIC) only. Systems with an external interrupt controller (EIC), + * or those with the IIC who are using the enhanced interrupt API will + * utilize the alt_ic_isr_register() routine to register an interrupt. + */ +#ifndef NIOS2_EIC_PRESENT + +#include "sys/alt_irq.h" +#include "priv/alt_legacy_irq.h" +#include "os/alt_hooks.h" + +#include "alt_types.h" + +/* + * The header, alt_irq_entry.h, contains the exception entry point, and is + * provided by the processor component. It is included here, so that the code + * will be added to the executable only if alt_irq_register() is present, i.e. + * if no interrupts are registered - there's no need to provide any + * interrupt handling. + */ + +#include "sys/alt_irq_entry.h" + +/* + * The header, alt_irq_table.h contains a table describing which function + * handles each interrupt. + */ + +#include "priv/alt_irq_table.h" + +/* + * alt_irq_handler() is called to register an interrupt handler. If the + * function is succesful, then the requested interrupt will be enabled upon + * return. Registering a NULL handler will disable the interrupt. + * + * The return value is 0 if the interrupt handler was registered and the + * interrupt was enabled, otherwise it is negative. + */ + +int alt_irq_register (alt_u32 id, + void* context, + alt_isr_func handler) +{ + int rc = -EINVAL; + alt_irq_context status; + + if (id < ALT_NIRQ) + { + /* + * interrupts are disabled while the handler tables are updated to ensure + * that an interrupt doesn't occur while the tables are in an inconsistant + * state. + */ + + status = alt_irq_disable_all (); + + alt_irq[id].handler = handler; + alt_irq[id].context = context; + + rc = (handler) ? alt_irq_enable (id): alt_irq_disable (id); + + alt_irq_enable_all(status); + } + return rc; +} +#endif /* NIOS2_EIC_PRESENT */ + diff --git a/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_irq_vars.c b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_irq_vars.c new file mode 100644 index 0000000..8c0a18d --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_irq_vars.c @@ -0,0 +1,47 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "alt_types.h" + +#include "system.h" + +/* + * These global variables are used to save the current list of enabled + * interrupts. See alt_irq.h for further details. + */ + +volatile alt_u32 alt_irq_active = 0; + +#ifndef ALT_EXCEPTION_STACK + +volatile alt_u32 alt_priority_mask = (alt_u32) -1; + +#endif + diff --git a/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_isatty.c b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_isatty.c new file mode 100644 index 0000000..9276472 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_isatty.c @@ -0,0 +1,125 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include + +#include "sys/alt_dev.h" +#include "sys/alt_errno.h" +#include "sys/alt_warning.h" +#include "priv/alt_file.h" +#include "os/alt_syscall.h" + +#ifdef ALT_USE_DIRECT_DRIVERS + +#include "system.h" + +/* + * Provide minimal version that just describes all file descriptors + * as tty devices for provided stdio devices. + */ +int ALT_ISATTY (int file) +{ + switch (file) { +#ifdef ALT_STDIN_PRESENT + case 0: /* stdin file descriptor */ +#endif /* ALT_STDIN_PRESENT */ +#ifdef ALT_STDOUT_PRESENT + case 1: /* stdout file descriptor */ +#endif /* ALT_STDOUT_PRESENT */ +#ifdef ALT_STDERR_PRESENT + case 2: /* stderr file descriptor */ +#endif /* ALT_STDERR_PRESENT */ + return 1; + default: + return 0; + } + +#if !defined(ALT_STDIN_PRESENT) && !defined(ALT_STDOUT_PRESENT) && !defined(ALT_STDERR_PRESENT) + /* Generate a link time warning, should this function ever be called. */ + ALT_STUB_WARNING(isatty); +#endif +} + +#else /* !ALT_USE_DIRECT_DRIVERS */ +/* + * isatty() can be used to determine whether the input file descriptor "file" + * refers to a terminal device or not. If it is a terminal device then the + * return value is one, otherwise it is zero. + * + * ALT_ISATTY is mapped onto the isatty() system call in alt_syscall.h + */ + +int ALT_ISATTY (int file) +{ + alt_fd* fd; + struct stat stat; + + /* + * A common error case is that when the file descriptor was created, the call + * to open() failed resulting in a negative file descriptor. This is trapped + * below so that we don't try and process an invalid file descriptor. + */ + + fd = (file < 0) ? NULL : &alt_fd_list[file]; + + if (fd) + { + /* + * If a device driver does not provide an fstat() function, then it is + * treated as a terminal device by default. + */ + + if (!fd->dev->fstat) + { + return 1; + } + + /* + * If a driver does provide an implementation of the fstat() function, then + * this is called so that the device can identify itself. + */ + + else + { + fstat (file, &stat); + return (stat.st_mode == _IFCHR) ? 1 : 0; + } + } + else + { + ALT_ERRNO = EBADFD; + return 0; + } +} + +#endif /* ALT_USE_DIRECT_DRIVERS */ diff --git a/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_kill.c b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_kill.c new file mode 100644 index 0000000..42c2e1d --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_kill.c @@ -0,0 +1,121 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include + +#include "sys/alt_errno.h" +#include "os/alt_syscall.h" + + +/* + * kill() is used by newlib in order to send signals to processes. Since there + * is only a single process in the HAL, the only valid values for pid are + * either the current process id, or the broadcast values, i.e. pid must be + * less than or equal to zero. + * + * ALT_KILL is mapped onto the kill() system call in alt_syscall.h + */ + +int ALT_KILL (int pid, int sig) +{ + int status = 0; + + if (pid <= 0) + { + switch (sig) + { + case 0: + + /* The null signal is used to check that a pid is valid. */ + + break; + + case SIGABRT: + case SIGALRM: + case SIGFPE: + case SIGILL: + case SIGKILL: + case SIGPIPE: + case SIGQUIT: + case SIGSEGV: + case SIGTERM: + case SIGUSR1: + case SIGUSR2: + case SIGBUS: + case SIGPOLL: + case SIGPROF: + case SIGSYS: + case SIGTRAP: + case SIGVTALRM: + case SIGXCPU: + case SIGXFSZ: + + /* + * The Posix standard defines the default behaviour for all these signals + * as being eqivalent to a call to _exit(). No mechanism is provided to + * change this behaviour. + */ + + _exit(0); + case SIGCHLD: + case SIGURG: + + /* + * The Posix standard defines these signals to be ignored by default. No + * mechanism is provided to change this behaviour. + */ + + break; + default: + + /* Tried to send an unsupported signal */ + + status = EINVAL; + } + } + + else if (pid > 0) + { + /* Attempted to signal a non-existant process */ + + status = ESRCH; + } + + if (status) + { + ALT_ERRNO = status; + return -1; + } + + return 0; +} diff --git a/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_link.c b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_link.c new file mode 100644 index 0000000..d796c59 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_link.c @@ -0,0 +1,56 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_warning.h" +#include "sys/alt_errno.h" +#include "os/alt_syscall.h" + +/* + * link() is used by newlib to create a new link to an existing file. This is + * unsupported in the HAL environment. However a "do-nothing" implementation + * is still provied for newlib compatability. + * + * ALT_LINK is mapped onto the link() system call in alt_syscall.h + */ + +int ALT_LINK ( char *existing, char *new) +{ + /* Generate a link time warning, should this function ever be called. */ + + ALT_STUB_WARNING(link); + + /* Indicate an error */ + + ALT_ERRNO = ENOSYS; + return -1; +} + diff --git a/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_load.c b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_load.c new file mode 100644 index 0000000..ffab4b9 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_load.c @@ -0,0 +1,88 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004-2005 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_load.h" +#include "sys/alt_cache.h" + +/* + * Linker defined symbols. + */ + +extern void __flash_rwdata_start; +extern void __ram_rwdata_start; +extern void __ram_rwdata_end; +extern void __flash_rodata_start; +extern void __ram_rodata_start; +extern void __ram_rodata_end; +extern void __flash_exceptions_start; +extern void __ram_exceptions_start; +extern void __ram_exceptions_end; + +/* + * alt_load() is called when the code is executing from flash. In this case + * there is no bootloader, so this application is responsible for loading to + * RAM any sections that are required. + */ + +void alt_load (void) +{ + /* + * Copy the .rwdata section. + */ + + alt_load_section (&__flash_rwdata_start, + &__ram_rwdata_start, + &__ram_rwdata_end); + + /* + * Copy the exception handler. + */ + + alt_load_section (&__flash_exceptions_start, + &__ram_exceptions_start, + &__ram_exceptions_end); + + /* + * Copy the .rodata section. + */ + + alt_load_section (&__flash_rodata_start, + &__ram_rodata_start, + &__ram_rodata_end); + + /* + * Now ensure that the caches are in synch. + */ + + alt_dcache_flush_all(); + alt_icache_flush_all(); +} diff --git a/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_log_macro.S b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_log_macro.S new file mode 100644 index 0000000..499c4ad --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_log_macro.S @@ -0,0 +1,56 @@ +/* alt_log_macro.S + * + * Implements the function tx_log_str, called by the assembly macro + * ALT_LOG_PUTS(). The macro will be empty when logging is turned off, + * and this function will not be compiled. When logging is on, + * this function is used to print out the strings defined in the beginning + * of alt_log_printf.c, using port information taken from system.h and + * alt_log_printf.h. + * + * This routine only handles strings, and sends a character into the defined + * output device's output buffer when the device is ready. It's intended for + * debugging purposes, where messages can be set to print out at certain + * points in the boot code to indicate the progress of the program. + * + */ + +#ifndef __ALT_LOG_MACROS__ +#define __ALT_LOG_MACROS__ + +/* define this flag to skip assembly-incompatible parts + * of various include files. */ +#define ALT_ASM_SRC + +#ifdef ALT_LOG_ENABLE // only compile this function if this flag is defined. + + #include "system.h" + #include "sys/alt_log_printf.h" + + .global tx_log_str +tx_log_str: + /* load base uart / jtag uart address into r6 */ + movhi r6, %hiadj(ALT_LOG_PORT_BASE) + addi r6, r6, %lo(ALT_LOG_PORT_BASE) +tx_next_char: + /* if pointer points to null, return + * r4 is the pointer to the str to be printed, set by ALT_LOG_PUTS */ + ldb r7, (r4) + beq r0, r7, end_tx + + /* check device transmit ready */ +wait_tx_ready_loop: + ldwio r5, ALT_LOG_PRINT_REG_OFFSET(r6) + andi r5, r5, ALT_LOG_PRINT_MSK + beq r5, r0, wait_tx_ready_loop + /* write char */ + stwio r7, ALT_LOG_PRINT_TXDATA_REG_OFFSET (r6) + /* advance string pointer */ + addi r4, r4, 1 + br tx_next_char +end_tx: + ret + +#endif + +#endif /* __ALT_LOG_MACROS__ */ + diff --git a/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_log_printf.c b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_log_printf.c new file mode 100644 index 0000000..1f7056d --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_log_printf.c @@ -0,0 +1,479 @@ + +/* alt_log_printf.c + * + * This file implements the various C functions used for the + * alt_log logging/debugging print functions. The functions + * sit as is here - the job of hiding them from the compiler + * if logging is disabled is accomplished in the .h file. + * + * All the global variables for alt_log are defined here. + * These include the various flags that turn on additional + * logging options; the strings for assembly printing; and + * other globals needed by different logging options. + * + * There are 4 functions that handle the actual printing: + * alt_log_txchar: Actual function that puts 1 char to UART/JTAG UART. + * alt_log_repchar: Calls alt_log_txchar 'n' times - used by + * alt_log_private_printf for formatting. + * alt_log_private_printf: + * Stripped down implementation of printf - no floats. + * alt_log_printf_proc: + * Wrapper function for private_printf. + * + * The rest of the functions are called by the macros which + * were called by code in the other components. Each function + * is preceded by a comment, about which file it gets called + * in, and what its purpose is. + * + * author: gkwan + */ + +/* skip all code if enable is off */ +#ifdef ALT_LOG_ENABLE + +#include +#include +#include +#ifdef __ALTERA_AVALON_JTAG_UART + #include "altera_avalon_jtag_uart.h" + #include +#endif +#include "sys/alt_log_printf.h" + +/* strings for assembly puts */ +char alt_log_msg_bss[] = "[crt0.S] Clearing BSS \r\n";; +char alt_log_msg_alt_main[] = "[crt0.S] Calling alt_main.\r\n"; +char alt_log_msg_stackpointer[] \ + = "[crt0.S] Setting up stack and global pointers.\r\n"; +char alt_log_msg_cache[] = "[crt0.S] Inst & Data Cache Initialized.\r\n"; +/* char array allocation for alt_write */ +char alt_log_write_buf[ALT_LOG_WRITE_ECHO_LEN+2]; + +/* global variables for all 'on' flags */ + +/* + * The boot message flag is linked into the data (rwdata) section + * because if it is zero, it would otherwise be placed in the bss section. + * alt_log examines this variable before the BSS is cleared in the boot-up + * process. + */ +volatile alt_u32 alt_log_boot_on_flag \ + __attribute__ ((section (".data"))) = ALT_LOG_BOOT_ON_FLAG_SETTING; + +volatile alt_u8 alt_log_write_on_flag = ALT_LOG_WRITE_ON_FLAG_SETTING; + +volatile alt_u8 alt_log_sys_clk_on_flag = ALT_LOG_SYS_CLK_ON_FLAG_SETTING; + +volatile alt_u8 alt_log_jtag_uart_alarm_on_flag = \ + ALT_LOG_JTAG_UART_ALARM_ON_FLAG_SETTING; + +volatile alt_u8 alt_log_jtag_uart_isr_on_flag = \ + ALT_LOG_JTAG_UART_ISR_ON_FLAG_SETTING; + +volatile alt_u8 alt_log_jtag_uart_startup_info_on_flag = \ + ALT_LOG_JTAG_UART_STARTUP_INFO_ON_FLAG_SETTING; + +/* Global alarm object for recurrent JTAG UART status printing */ +alt_alarm alt_log_jtag_uart_alarm_1; + +/* Global ints for system clock printing and count */ +volatile int alt_log_sys_clk_count; +volatile int alt_system_clock_in_sec; + +/* enum used by alt_log_private_printf */ +enum +{ + pfState_chars, + pfState_firstFmtChar, + pfState_otherFmtChar +}; + + + + +/* Function to put one char onto the UART/JTAG UART txdata register. */ +void alt_log_txchar(int c,char *base) +{ + /* Wait until the device is ready for a character */ + while((ALT_LOG_PRINT_REG_RD(base) & ALT_LOG_PRINT_MSK) == 0) + ; + /* And pop the character into the register */ + ALT_LOG_PRINT_TXDATA_WR(base,c); +} + + +/* Called by alt_log_private_printf to print out characters repeatedly */ +void alt_log_repchar(char c,int r,int base) +{ + while(r-- > 0) + alt_log_txchar(c,(char*) base); +} + + +/* Stripped down printf function */ +void alt_log_private_printf(const char *fmt,int base,va_list args) + { + const char *w; + char c; + int state; + int fmtLeadingZero = 0; /* init these all to 0 for -W warnings. */ + int fmtLong = 0; + int fmtBeforeDecimal = 0; + int fmtAfterDecimal = 0; + int fmtBase = 0; + int fmtSigned = 0; + int fmtCase = 0; /* For hex format, if 1, A-F, else a-f. */ + + w = fmt; + state = pfState_chars; + + while(0 != (c = *w++)) + { + switch(state) + { + case pfState_chars: + if(c == '%') + { + fmtLeadingZero = 0; + fmtLong = 0; + fmtBase = 10; + fmtSigned = 1; + fmtCase = 0; /* Only %X sets this. */ + fmtBeforeDecimal = -1; + fmtAfterDecimal = -1; + state = pfState_firstFmtChar; + } + else + { + alt_log_txchar(c,(char*)base); + } + break; + + case pfState_firstFmtChar: + if(c == '0') + { + fmtLeadingZero = 1; + state = pfState_otherFmtChar; + } + else if(c == '%') + { + alt_log_txchar(c,(char*)base); + state = pfState_chars; + } + else + { + state = pfState_otherFmtChar; + goto otherFmtChar; + } + break; + + case pfState_otherFmtChar: +otherFmtChar: + if(c == '.') + { + fmtAfterDecimal = 0; + } + else if('0' <= c && c <= '9') + { + c -= '0'; + if(fmtAfterDecimal < 0) /* still before decimal */ + { + if(fmtBeforeDecimal < 0) + { + fmtBeforeDecimal = 0; + } + else + { + fmtBeforeDecimal *= 10; + } + fmtBeforeDecimal += c; + } + else + { + fmtAfterDecimal = (fmtAfterDecimal * 10) + c; + } + } + else if(c == 'l') + { + fmtLong = 1; + } + else /* we're up to the letter which determines type */ + { + switch(c) + { + case 'd': + case 'i': +doIntegerPrint: + { + unsigned long v; + unsigned long p; /* biggest power of fmtBase */ + unsigned long vShrink; /* used to count digits */ + int sign; + int digitCount; + + /* Get the value */ + if(fmtLong) + { + if (fmtSigned) + { + v = va_arg(args,long); + } + else + { + v = va_arg(args,unsigned long); + } + } + else + { + if (fmtSigned) + { + v = va_arg(args,int); + } + else + { + v = va_arg(args,unsigned int); + } + } + + /* Strip sign */ + sign = 0; + /* (assumes sign bit is #31) */ + if( fmtSigned && (v & (0x80000000)) ) + { + v = ~v + 1; + sign = 1; + } + + /* Count digits, and get largest place value */ + vShrink = v; + p = 1; + digitCount = 1; + while( (vShrink = vShrink / fmtBase) > 0 ) + { + digitCount++; + p *= fmtBase; + } + + /* Print leading characters & sign */ + fmtBeforeDecimal -= digitCount; + if(fmtLeadingZero) + { + if(sign) + { + alt_log_txchar('-',(char*)base); + fmtBeforeDecimal--; + } + alt_log_repchar('0',fmtBeforeDecimal,base); + } + else + { + if(sign) + { + fmtBeforeDecimal--; + } + alt_log_repchar(' ',fmtBeforeDecimal,base); + if(sign) + { + alt_log_txchar('-',(char*)base); + } + } + + /* Print numbery parts */ + while(p) + { + unsigned char d; + + d = v / p; + d += '0'; + if(d > '9') + { + d += (fmtCase ? 'A' : 'a') - '0' - 10; + } + alt_log_txchar(d,(char*)base); + + v = v % p; + p = p / fmtBase; + } + } + + state = pfState_chars; + break; + + case 'u': + fmtSigned = 0; + goto doIntegerPrint; + case 'o': + fmtSigned = 0; + fmtBase = 8; + goto doIntegerPrint; + case 'x': + fmtSigned = 0; + fmtBase = 16; + goto doIntegerPrint; + case 'X': + fmtSigned = 0; + fmtBase = 16; + fmtCase = 1; + goto doIntegerPrint; + + case 'c': + alt_log_repchar(' ',fmtBeforeDecimal-1,base); + alt_log_txchar(va_arg(args,int),(char*)base); + break; + + case 's': + { + char *s; + + s = va_arg(args,char *); + alt_log_repchar(' ',fmtBeforeDecimal-strlen(s),base); + + while(*s) + alt_log_txchar(*s++,(char*)base); + } + break; + } /* switch last letter of fmt */ + state=pfState_chars; + } + break; + } /* switch */ + } /* while chars left */ + } /* printf */ + +/* Main logging printf function */ +int alt_log_printf_proc(const char *fmt, ... ) +{ + va_list args; + + va_start (args, fmt); + alt_log_private_printf(fmt,ALT_LOG_PORT_BASE,args); + return (0); +} + +/* Below are the functions called by different macros in various components. */ + +/* If the system has a JTAG_UART, include JTAG_UART debugging functions */ +#ifdef __ALTERA_AVALON_JTAG_UART + +/* The alarm function in altera_avalon_jtag_uart.c. + * This function, when turned on, prints out the status + * of the JTAG UART Control register, every ALT_LOG_JTAG_UART_TICKS. + * If the flag is off, the alarm should never be registered, and this + * function should never run */ +alt_u32 altera_avalon_jtag_uart_report_log(void * context) +{ + if (alt_log_jtag_uart_alarm_on_flag) { + altera_avalon_jtag_uart_state* dev = (altera_avalon_jtag_uart_state*) context; + const char* header="JTAG Alarm:"; + alt_log_jtag_uart_print_control_reg(dev, dev->base, header); + return ALT_LOG_JTAG_UART_TICKS; + } + else + { + /* If flag is not on, return 0 to disable future alarms. + * Should never be here, alarm should not be enabled at all. */ + return 0; + } +} + +void alt_log_jtag_uart_print_control_reg(altera_avalon_jtag_uart_state* dev, int base, const char* header) +{ + unsigned int control, space, ac, wi, ri, we, re; + control = IORD_ALTERA_AVALON_JTAG_UART_CONTROL(base); + space = (control & ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_MSK) >> + ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_OFST; + we= (control & ALTERA_AVALON_JTAG_UART_CONTROL_WE_MSK) >> + ALTERA_AVALON_JTAG_UART_CONTROL_WE_OFST; + re= (control & ALTERA_AVALON_JTAG_UART_CONTROL_RE_MSK) >> + ALTERA_AVALON_JTAG_UART_CONTROL_RE_OFST; + ri= (control & ALTERA_AVALON_JTAG_UART_CONTROL_RI_MSK) >> + ALTERA_AVALON_JTAG_UART_CONTROL_RI_OFST; + wi= (control & ALTERA_AVALON_JTAG_UART_CONTROL_WI_MSK) >> + ALTERA_AVALON_JTAG_UART_CONTROL_WI_OFST; + ac= (control & ALTERA_AVALON_JTAG_UART_CONTROL_AC_MSK) >> + ALTERA_AVALON_JTAG_UART_CONTROL_AC_OFST; + +#ifdef ALTERA_AVALON_JTAG_UART_SMALL + ALT_LOG_PRINTF( + "%s HW FIFO wspace=%d AC=%d WI=%d RI=%d WE=%d RE=%d\r\n", + header,space,ac,wi,ri,we,re); +#else + ALT_LOG_PRINTF( + "%s SW CirBuf = %d, HW FIFO wspace=%d AC=%d WI=%d RI=%d WE=%d RE=%d\r\n", + header,(dev->tx_out-dev->tx_in),space,ac,wi,ri,we,re); +#endif + + return; + +} + +/* In altera_avalon_jtag_uart.c + * Same output as the alarm function above, but this is called in the driver + * init function. Hence, it gives the status of the JTAG UART control register + * right at the initialization of the driver */ +void alt_log_jtag_uart_startup_info(altera_avalon_jtag_uart_state* dev, int base) +{ + const char* header="JTAG Startup Info:"; + alt_log_jtag_uart_print_control_reg(dev, base, header); + return; +} + +/* In altera_avalon_jtag_uart.c + * When turned on, this function will print out the status of the jtag uart + * control register every time there is a jtag uart "almost-empty" interrupt. */ +void alt_log_jtag_uart_isr_proc(int base, altera_avalon_jtag_uart_state* dev) +{ + if (alt_log_jtag_uart_isr_on_flag) { + const char* header="JTAG IRQ:"; + alt_log_jtag_uart_print_control_reg(dev, base, header); + } + return; +} + +#endif /* __ALTERA_AVALON_JTAG_UART */ + +/* In alt_write.c + * When the alt_log_write_on_flag is turned on, this function gets called + * every time alt_write gets called. The first + * ALT_LOG_WRITE_ECHO_LEN characters of every printf command (or any command + * that eventually calls write()) gets echoed to the alt_log output. */ +void alt_log_write(const void *ptr, size_t len) +{ + if (alt_log_write_on_flag) { + int temp_cnt; + int length=(ALT_LOG_WRITE_ECHO_LEN>len) ? len : ALT_LOG_WRITE_ECHO_LEN; + + if (length < 2) return; + + strncpy (alt_log_write_buf,ptr,length); + alt_log_write_buf[length-1]='\n'; + alt_log_write_buf[length]='\r'; + alt_log_write_buf[length+1]='\0'; + + /* Escape Ctrl-D's. If the Ctrl-D gets sent it might kill the terminal + * connection of alt_log. It will get replaced by 'D'. */ + for (temp_cnt=0;temp_cnt < length; temp_cnt++) { + if (alt_log_write_buf[temp_cnt]== 0x4) { + alt_log_write_buf[temp_cnt]='D'; + } + } + ALT_LOG_PRINTF("Write Echo: %s",alt_log_write_buf); + } +} + +/* In altera_avalon_timer_sc + * This function prints out a system clock is alive message + * every ALT_LOG_SYS_CLK_INTERVAL (in ticks). */ +void alt_log_system_clock() +{ + if (alt_log_sys_clk_on_flag) { + alt_log_sys_clk_count++; + if (alt_log_sys_clk_count > ALT_LOG_SYS_CLK_INTERVAL) { + alt_log_sys_clk_count = 0; + ALT_LOG_PRINTF("System Clock On %u\r\n",alt_system_clock_in_sec++); + } + } +} + + +#endif diff --git a/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_lseek.c b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_lseek.c new file mode 100644 index 0000000..7857b0d --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_lseek.c @@ -0,0 +1,117 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004-2005 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +#include "sys/alt_errno.h" +#include "sys/alt_warning.h" +#include "priv/alt_file.h" +#include "os/alt_syscall.h" + +#ifdef ALT_USE_DIRECT_DRIVERS + +off_t ALT_LSEEK (int file, off_t ptr, int dir) +{ + /* Generate a link time warning, should this function ever be called. */ + + ALT_STUB_WARNING(lseek); + + /* Indicate an error */ + + ALT_ERRNO = ENOSYS; + return -1; +} + +#else /* !ALT_USE_DIRECT_DRIVERS */ + +/* + * lseek() can be called to move the read/write pointer associated with the + * file descriptor "file". This function simply vectors the call to the lseek() + * function provided by the driver associated with the file descriptor. + * + * If the driver does not provide an implementation of lseek() an error is + * indicated. + * + * lseek() corresponds to the standard lseek() function. + * + * ALT_LSEEK is mapped onto the lseek() system call in alt_syscall.h + * + */ + +off_t ALT_LSEEK (int file, off_t ptr, int dir) +{ + alt_fd* fd; + off_t rc = 0; + + /* + * A common error case is that when the file descriptor was created, the call + * to open() failed resulting in a negative file descriptor. This is trapped + * below so that we don't try and process an invalid file descriptor. + */ + + fd = (file < 0) ? NULL : &alt_fd_list[file]; + + if (fd) + { + /* + * If the device driver provides an implementation of the lseek() function, + * then call that to process the request. + */ + + if (fd->dev->lseek) + { + rc = fd->dev->lseek(fd, ptr, dir); + } + /* + * Otherwise return an error. + */ + + else + { + rc = -ENOTSUP; + } + } + else + { + rc = -EBADFD; + } + + if (rc < 0) + { + ALT_ERRNO = -rc; + rc = -1; + } + + return rc; +} + +#endif /* ALT_USE_DIRECT_DRIVERS */ diff --git a/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_main.c b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_main.c new file mode 100644 index 0000000..a96229b --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_main.c @@ -0,0 +1,161 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2007 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include +#include +#include +#include +#include + +#include "sys/alt_dev.h" +#include "sys/alt_sys_init.h" +#include "sys/alt_irq.h" +#include "sys/alt_dev.h" + +#include "os/alt_hooks.h" + +#include "priv/alt_file.h" +#include "alt_types.h" + +#include "system.h" + +#include "sys/alt_log_printf.h" + +extern void _do_ctors(void); +extern void _do_dtors(void); + +/* + * Standard arguments for main. By default, no arguments are passed to main. + * However a device driver may choose to configure these arguments by calling + * alt_set_args(). The expectation is that this facility will only be used by + * the iclient/ihost utility. + */ + +int alt_argc = 0; +char** alt_argv = {NULL}; +char** alt_envp = {NULL}; + +/* + * Prototype for the entry point to the users application. + */ + +extern int main (int, char **, char **); + +/* + * alt_main is the C entry point for the HAL. It is called by the assembler + * startup code in the processor specific crt0.S. It is responsible for: + * completing the C runtime configuration; configuring all the + * devices/filesystems/components in the system; and call the entry point for + * the users application, i.e. main(). + */ + +void alt_main (void) +{ +#ifndef ALT_NO_EXIT + int result; +#endif + + /* ALT LOG - please see HAL/sys/alt_log_printf.h for details */ + ALT_LOG_PRINT_BOOT("[alt_main.c] Entering alt_main, calling alt_irq_init.\r\n"); + /* Initialize the interrupt controller. */ + alt_irq_init (NULL); + + /* Initialize the operating system */ + ALT_LOG_PRINT_BOOT("[alt_main.c] Done alt_irq_init, calling alt_os_init.\r\n"); + ALT_OS_INIT(); + + /* + * Initialize the semaphore used to control access to the file descriptor + * list. + */ + + ALT_LOG_PRINT_BOOT("[alt_main.c] Done OS Init, calling alt_sem_create.\r\n"); + ALT_SEM_CREATE (&alt_fd_list_lock, 1); + + /* Initialize the device drivers/software components. */ + ALT_LOG_PRINT_BOOT("[alt_main.c] Calling alt_sys_init.\r\n"); + alt_sys_init(); + ALT_LOG_PRINT_BOOT("[alt_main.c] Done alt_sys_init.\r\n"); + +#if !defined(ALT_USE_DIRECT_DRIVERS) && (defined(ALT_STDIN_PRESENT) || defined(ALT_STDOUT_PRESENT) || defined(ALT_STDERR_PRESENT)) + + /* + * Redirect stdio to the apropriate devices now that the devices have + * been initialized. This is only done if the user has requested these + * devices be present (not equal to /dev/null) and if direct drivers + * aren't being used. + */ + + ALT_LOG_PRINT_BOOT("[alt_main.c] Redirecting IO.\r\n"); + alt_io_redirect(ALT_STDOUT, ALT_STDIN, ALT_STDERR); +#endif + +#ifndef ALT_NO_C_PLUS_PLUS + /* + * Call the C++ constructors + */ + + ALT_LOG_PRINT_BOOT("[alt_main.c] Calling C++ constructors.\r\n"); + _do_ctors (); +#endif /* ALT_NO_C_PLUS_PLUS */ + +#if !defined(ALT_NO_C_PLUS_PLUS) && !defined(ALT_NO_CLEAN_EXIT) && !defined(ALT_NO_EXIT) + /* + * Set the C++ destructors to be called at system shutdown. This is only done + * if a clean exit has been requested (i.e. the exit() function has not been + * redefined as _exit()). This is in the interest of reducing code footprint, + * in that the atexit() overhead is removed when it's not needed. + */ + + ALT_LOG_PRINT_BOOT("[alt_main.c] Calling atexit.\r\n"); + atexit (_do_dtors); +#endif + + /* + * Finally, call main(). The return code is then passed to a subsequent + * call to exit() unless the application is never supposed to exit. + */ + + ALT_LOG_PRINT_BOOT("[alt_main.c] Calling main.\r\n"); + +#ifdef ALT_NO_EXIT + main (alt_argc, alt_argv, alt_envp); +#else + result = main (alt_argc, alt_argv, alt_envp); + close(STDOUT_FILENO); + exit (result); +#endif + + ALT_LOG_PRINT_BOOT("[alt_main.c] After main - we should not be here?.\r\n"); +} + diff --git a/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_malloc_lock.c b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_malloc_lock.c new file mode 100644 index 0000000..8c78f46 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_malloc_lock.c @@ -0,0 +1,52 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +/* + * These are the empty malloc lock/unlock stubs required by newlib. These are + * used to make newlib's malloc() function thread safe. The default HAL + * configuration is single threaded, so there is nothing to do here. Note that + * this requires that malloc is never called by an interrupt service routine. + */ + +void __malloc_lock ( struct _reent *_r ) +{ +} + +/* + * + */ + +void __malloc_unlock ( struct _reent *_r ) +{ +} diff --git a/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_mcount.S b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_mcount.S new file mode 100644 index 0000000..3837523 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_mcount.S @@ -0,0 +1,198 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003-2010 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/* mcount or _mcount is inserted by GCC before the function prologue of every + * function when a program is compiled for profiling. At the start of mcount, + * we guarantee that: + * ra = self_pc (an address in the function which called mcount) + * r8 = from_pc (an address in the function which called mcount's caller) + * + * Because this is always called at the start of a function we can corrupt + * r2,r3 and r11-r15. We must not corrupt r4-r7 (because they might contain + * function arguments for the instrumented function) or r8 (which holds ra + * for the instrumented function). + */ + + .global __mcount_fn_head + + .global mcount + + /* _mcount is used by gcc4 */ + .global _mcount + +_mcount: +mcount: + /* Use a hash to speed up locating fn_entry. We use bits 5 upwards to choose + * the bucket because bits 1:0 will always be 0, and because the distribution + * of values for bits 4:2 won't be even (aligning on cache line boundaries + * will skew it). Higher bits should be fairly random. + */ + /* fn_head = mcount_fn_head + (((unsigned int)self_pc >> 5) & (HASH_BUCKETS - 1)); */ + + srli r2, ra, 3 + movhi r3, %hiadj(__mcount_fn_head) + addi r3, r3, %lo(__mcount_fn_head) + andi r2, r2, 0xFC + add r11, r2, r3 + + /* The fast case is where we have already allocated a function arc, and so + * also a function pointer. + */ + + /* First find the function being called (using self_pc) */ + mov r10, r11 +0: + ldw r10, 0(r10) + beq r10, zero, .Lnew_arc + ldw r2, 4(r10) + bne r2, ra, 0b + + /* Found a function entry for this PC. Now look for an arc with a matching + * from_pc value. There will always be at least one arc. */ + ldw r3, 8(r10) +0: + ldw r2, 4(r3) + beq r2, r8, .Lfound_arc + ldw r3, 0(r3) + bne r3, zero, 0b + +.Lnew_arc: + addi sp, sp, -24 + +.LCFI0: + stw ra, 0(sp) + stw r4, 4(sp) + stw r5, 8(sp) + stw r6, 12(sp) + stw r7, 16(sp) + stw r8, 20(sp) + +.LCFI1: + /* __mcount_record(orig_ra, orig_r8, fn_entry, *fn_head); */ + mov r4, ra + mov r5, r8 + mov r6, r10 + mov r7, r11 + call __mcount_record + + /* restore registers from the stack */ + ldw ra, 0(sp) + ldw r4, 4(sp) + ldw r5, 8(sp) + ldw r6, 12(sp) + ldw r7, 16(sp) + ldw r8, 20(sp) + + addi sp, sp, 24 + +.LCFI2: + ret + +.Lfound_arc: + /* We've found the correct arc record. Increment the count and return */ + ldw r2, 8(r3) + addi r2, r2, 1 + stw r2, 8(r3) + ret + +.Lmcount_end: + + + +/* + * Dwarf2 debug information for the function. This provides GDB with the + * information it needs to backtrace out of this function. + */ + + .section .debug_frame,"",@progbits +.LCIE: + .4byte 2f - 1f /* Length */ +1: + .4byte 0xffffffff /* CIE id */ + .byte 0x1 /* Version */ + .string "" /* Augmentation */ + .uleb128 0x1 /* Code alignment factor */ + .sleb128 -4 /* Data alignment factor */ + .byte 0x1f /* Return address register */ + + .byte 0xc /* Define CFA */ + .uleb128 0x1b /* Register 27 (sp) */ + .uleb128 0x0 /* Offset 0 */ + + .align 2 /* Padding */ +2: + +.LFDE_mcount: + .4byte 2f - 1f /* Length */ +1: + .4byte .LCIE /* Pointer to CIE */ + .4byte mcount /* Start of table entry */ + .4byte .Lmcount_end - mcount /* Size of table entry */ + + .byte 0x4 /* Advance location */ + .4byte .LCFI0 - mcount /* to .LCFI0 */ + .byte 0xe /* Define CFA offset */ + .uleb128 24 /* to 24 */ + + .byte 0x4 /* Advance location */ + .4byte .LCFI1 - .LCFI0 /* to .LCFI1 */ + .byte 0x9f /* Store ra */ + .uleb128 0x6 /* at CFA-24 */ + .byte 0x84 /* Store r4 */ + .uleb128 0x5 /* at CFA-20 */ + .byte 0x85 /* Store r5 */ + .uleb128 0x4 /* at CFA-16 */ + .byte 0x86 /* Store r6 */ + .uleb128 0x3 /* at CFA-12 */ + .byte 0x87 /* Store r7 */ + .uleb128 0x2 /* at CFA-8 */ + .byte 0x88 /* Store r8 */ + .uleb128 0x1 /* at CFA-4 */ + + .byte 0x4 /* Advance location */ + .4byte .LCFI2 - .LCFI1 /* to .LCFI2 */ + .byte 0xe /* Define CFA offset */ + .uleb128 0 /* to 0 */ + .byte 0x8 /* Same value */ + .uleb128 31 /* for ra */ + .byte 0x8 /* Same value */ + .uleb128 4 /* for r4 */ + .byte 0x8 /* Same value */ + .uleb128 5 /* for r5 */ + .byte 0x8 /* Same value */ + .uleb128 6 /* for r6 */ + .byte 0x8 /* Same value */ + .uleb128 7 /* for r7 */ + .byte 0x8 /* Same value */ + .uleb128 8 /* for r8 */ + + .align 2 +2: + diff --git a/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_open.c b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_open.c new file mode 100644 index 0000000..4790f53 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_open.c @@ -0,0 +1,173 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_errno.h" +#include "sys/alt_warning.h" +#include "priv/alt_file.h" +#include "alt_types.h" +#include "os/alt_syscall.h" + +#ifdef ALT_USE_DIRECT_DRIVERS + +int ALT_OPEN (const char* file, int flags, int mode) +{ + /* Generate a link time warning, should this function ever be called. */ + + ALT_STUB_WARNING(open); + + /* Indicate an error */ + + ALT_ERRNO = ENOSYS; + return -1; +} + +#else /* !ALT_USE_DIRECT_DRIVERS */ + +extern alt_llist alt_dev_list; + +/* + * alt_file_locked() is used by open() to ensure that a device has not been + * previously locked for exclusive access using ioctl(). This test is only + * performed for devices. Filesystems are required to handle the ioctl() call + * themselves, and report the error from the filesystems open() function. + */ + +static int alt_file_locked (alt_fd* fd) +{ + alt_u32 i; + + /* + * Mark the file descriptor as belonging to a device. + */ + + fd->fd_flags |= ALT_FD_DEV; + + /* + * Loop through all current file descriptors searching for one that's locked + * for exclusive access. If a match is found, generate an error. + */ + + for (i = 0; i <= alt_max_fd; i++) + { + if ((alt_fd_list[i].dev == fd->dev) && + (alt_fd_list[i].fd_flags & ALT_FD_EXCL) && + (&alt_fd_list[i] != fd)) + { + return -EACCES; + } + } + + /* The device is not locked */ + + return 0; +} + +/* + * open() is called in order to get a file descriptor that reference the file + * or device named "name". This descriptor can then be used to manipulate the + * file/device using the standard system calls, e.g. write(), read(), ioctl() + * etc. + * + * This is equivalent to the standard open() system call. + * + * ALT_OPEN is mapped onto the open() system call in alt_syscall.h + */ + +int ALT_OPEN (const char* file, int flags, int mode) +{ + alt_dev* dev; + alt_fd* fd; + int index = -1; + int status = -ENODEV; + int isafs = 0; + + /* + * Check the device list, to see if a device with a matching name is + * registered. + */ + + if (!(dev = alt_find_dev (file, &alt_dev_list))) + { + /* No matching device, so try the filesystem list */ + + dev = alt_find_file (file); + isafs = 1; + } + + /* + * If a matching device or filesystem is found, allocate a file descriptor. + */ + + if (dev) + { + if ((index = alt_get_fd (dev)) < 0) + { + status = index; + } + else + { + fd = &alt_fd_list[index]; + fd->fd_flags = (flags & ~ALT_FD_FLAGS_MASK); + + /* If this is a device, ensure it isn't already locked */ + + if (isafs || ((status = alt_file_locked (fd)) >= 0)) + { + /* + * If the device or filesystem provides an open() callback function, + * call it now to perform any device/filesystem specific operations. + */ + + status = (dev->open) ? dev->open(fd, file, flags, mode): 0; + } + } + } + else + { + status = -ENODEV; + } + + /* Allocation failed, so clean up and return an error */ + + if (status < 0) + { + alt_release_fd (index); + ALT_ERRNO = -status; + return -1; + } + + /* return the reference upon success */ + + return index; +} + +#endif /* ALT_USE_DIRECT_DRIVERS */ diff --git a/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_printf.c b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_printf.c new file mode 100644 index 0000000..e742b57 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_printf.c @@ -0,0 +1,127 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/* + * This file provides a very minimal printf implementation for use with very + * small applications. Only the following format strings are supported: + * %x + * %s + * %c + * %% + */ + +#include +#include "sys/alt_stdio.h" + +/* + * ALT printf function + */ +void +alt_printf(const char* fmt, ... ) +{ + va_list args; + va_start(args, fmt); + const char *w; + char c; + + /* Process format string. */ + w = fmt; + while ((c = *w++) != 0) + { + /* If not a format escape character, just print */ + /* character. Otherwise, process format string. */ + if (c != '%') + { + alt_putchar(c); + } + else + { + /* Get format character. If none */ + /* available, processing is complete. */ + if ((c = *w++) != 0) + { + if (c == '%') + { + /* Process "%" escape sequence. */ + alt_putchar(c); + } + else if (c == 'c') + { + int v = va_arg(args, int); + alt_putchar(v); + } + else if (c == 'x') + { + /* Process hexadecimal number format. */ + unsigned long v = va_arg(args, unsigned long); + unsigned long digit; + int digit_shift; + + /* If the number value is zero, just print and continue. */ + if (v == 0) + { + alt_putchar('0'); + continue; + } + + /* Find first non-zero digit. */ + digit_shift = 28; + while (!(v & (0xF << digit_shift))) + digit_shift -= 4; + + /* Print digits. */ + for (; digit_shift >= 0; digit_shift -= 4) + { + digit = (v & (0xF << digit_shift)) >> digit_shift; + if (digit <= 9) + c = '0' + digit; + else + c = 'a' + digit - 10; + alt_putchar(c); + } + } + else if (c == 's') + { + /* Process string format. */ + char *s = va_arg(args, char *); + + while(*s) + alt_putchar(*s++); + } + } + else + { + break; + } + } + } +} diff --git a/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_putchar.c b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_putchar.c new file mode 100644 index 0000000..badaa02 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_putchar.c @@ -0,0 +1,59 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +#ifdef ALT_USE_DIRECT_DRIVERS +#include "system.h" +#include "sys/alt_driver.h" +#include "sys/alt_stdio.h" +#endif + +/* + * Uses the ALT_DRIVER_WRITE() macro to call directly to driver if available. + * Otherwise, uses newlib provided putchar() routine. + */ +int +alt_putchar(int c) +{ +#ifdef ALT_USE_DIRECT_DRIVERS + ALT_DRIVER_WRITE_EXTERNS(ALT_STDOUT_DEV); + char c1 = (char)(c & 0xff); + + if (ALT_DRIVER_WRITE(ALT_STDOUT_DEV, &c1, 1, 0) == -1) { + return -1; + } + return c; +#else + return putchar(c); +#endif +} diff --git a/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_putstr.c b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_putstr.c new file mode 100644 index 0000000..5345945 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_putstr.c @@ -0,0 +1,55 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +#ifdef ALT_USE_DIRECT_DRIVERS +#include +#include "system.h" +#include "sys/alt_driver.h" +#include "sys/alt_stdio.h" +#endif + +/* + * Uses the ALT_DRIVER_WRITE() macro to call directly to driver if available. + * Otherwise, uses newlib provided fputs() routine. + */ +int +alt_putstr(const char* str) +{ +#ifdef ALT_USE_DIRECT_DRIVERS + ALT_DRIVER_WRITE_EXTERNS(ALT_STDOUT_DEV); + return ALT_DRIVER_WRITE(ALT_STDOUT_DEV, str, strlen(str), 0); +#else + return fputs(str, stdout); +#endif +} diff --git a/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_read.c b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_read.c new file mode 100644 index 0000000..1c89777 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_read.c @@ -0,0 +1,125 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include + +#include "sys/alt_errno.h" +#include "sys/alt_warning.h" +#include "priv/alt_file.h" +#include "os/alt_syscall.h" + +/* + * The read() system call is used to read a block of data from a file or device. + * This function simply vectors the request to the device driver associated + * with the input file descriptor "file". + * + * ALT_READ is mapped onto the read() system call in alt_syscall.h + */ + +#ifdef ALT_USE_DIRECT_DRIVERS + +#include "system.h" +#include "sys/alt_driver.h" + +/* + * Provide minimal version that just reads from the stdin device when provided. + */ + +int ALT_READ (int file, void *ptr, size_t len) +{ +#ifdef ALT_STDIN_PRESENT + ALT_DRIVER_READ_EXTERNS(ALT_STDIN_DEV); +#endif + +#if !defined(ALT_STDIN_PRESENT) + /* Generate a link time warning, should this function ever be called. */ + ALT_STUB_WARNING(read); +#endif + + switch (file) { +#ifdef ALT_STDIN_PRESENT + case 0: /* stdin file descriptor */ + return ALT_DRIVER_READ(ALT_STDIN_DEV, ptr, len, 0); +#endif /* ALT_STDIN_PRESENT */ + default: + ALT_ERRNO = EBADFD; + return -1; + } +} + +#else /* !ALT_USE_DIRECT_DRIVERS */ + +int ALT_READ (int file, void *ptr, size_t len) +{ + alt_fd* fd; + int rval; + + /* + * A common error case is that when the file descriptor was created, the call + * to open() failed resulting in a negative file descriptor. This is trapped + * below so that we don't try and process an invalid file descriptor. + */ + + fd = (file < 0) ? NULL : &alt_fd_list[file]; + + if (fd) + { + /* + * If the file has not been opened with read access, or if the driver does + * not provide an implementation of read(), generate an error. Otherwise + * call the drivers read() function to process the request. + */ + + if (((fd->fd_flags & O_ACCMODE) != O_WRONLY) && + (fd->dev->read)) + { + if ((rval = fd->dev->read(fd, ptr, len)) < 0) + { + ALT_ERRNO = -rval; + return -1; + } + return rval; + } + else + { + ALT_ERRNO = EACCES; + } + } + else + { + ALT_ERRNO = EBADFD; + } + return -1; +} + +#endif /* ALT_USE_DIRECT_DRIVERS */ diff --git a/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_release_fd.c b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_release_fd.c new file mode 100644 index 0000000..84733a7 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_release_fd.c @@ -0,0 +1,54 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_dev.h" +#include "priv/alt_file.h" + +/* + * alt_release_fd() is called to free an allocated file descriptor. This is + * done by setting the device pointer in the file descriptor structure to zero. + * + * File descriptors correcponding to standard in, standard out and standard + * error cannont be released backed to the pool. They are always reserved. + */ + +void alt_release_fd (int fd) +{ + if (fd > 2) + { + alt_fd_list[fd].fd_flags = 0; + alt_fd_list[fd].dev = 0; + } +} + + + diff --git a/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_remap_cached.c b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_remap_cached.c new file mode 100644 index 0000000..f61cb9c --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_remap_cached.c @@ -0,0 +1,50 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003,2007 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "sys/alt_cache.h" +#include "system.h" + +#ifdef NIOS2_MMU_PRESENT +/* Convert KERNEL region address to IO region address */ +#define BYPASS_DCACHE_MASK (0x1 << 29) +#else +/* Set bit 31 of address to bypass D-cache */ +#define BYPASS_DCACHE_MASK (0x1 << 31) +#endif + +/* + * Convert a pointer to a block of uncached memory, into a block of + * cached memory. + */ + +void* alt_remap_cached (volatile void* ptr, alt_u32 len) +{ + return (void*) (((alt_u32) ptr) & ~BYPASS_DCACHE_MASK); +} diff --git a/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_remap_uncached.c b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_remap_uncached.c new file mode 100644 index 0000000..7ff6302 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_remap_uncached.c @@ -0,0 +1,51 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003,2007 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "sys/alt_cache.h" +#include "system.h" + +#ifdef NIOS2_MMU_PRESENT +/* Convert KERNEL region address to IO region address */ +#define BYPASS_DCACHE_MASK (0x1 << 29) +#else +/* Set bit 31 of address to bypass D-cache */ +#define BYPASS_DCACHE_MASK (0x1 << 31) +#endif + +/* + * Convert a pointer to a block of cached memory, into a block of + * uncached memory. + */ + +volatile void* alt_remap_uncached (void* ptr, alt_u32 len) +{ + alt_dcache_flush (ptr, len); + return (volatile void*) (((alt_u32) ptr) | BYPASS_DCACHE_MASK); +} diff --git a/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_rename.c b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_rename.c new file mode 100644 index 0000000..48afac0 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_rename.c @@ -0,0 +1,55 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_errno.h" +#include "sys/alt_warning.h" +#include "os/alt_syscall.h" + +/* + * _rename() is used by newlib to rename an existing file. This is unsupported + * in the HAL environment. However a "do-nothing" implementation is still + * provied for newlib compatability. + * + * ALT_RENAME is mapped onto the _rename() system call in alt_syscall.h + */ + +int ALT_RENAME (char *existing, char *new) +{ + /* Generate a link time warning, should this function ever be called. */ + + ALT_STUB_WARNING(_rename); + + /* Indicate an error */ + + ALT_ERRNO = ENOSYS; + return -1; +} diff --git a/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_sbrk.c b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_sbrk.c new file mode 100644 index 0000000..b8c3799 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_sbrk.c @@ -0,0 +1,136 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +#include "os/alt_syscall.h" + +#include "sys/alt_irq.h" +#include "sys/alt_stack.h" + +#include "system.h" + +/* + * sbrk() is called to dynamically extend the data segment for the application. + * Thie input argument "incr" is the size of the block to allocate. + * + * This simple implementation does not perform any bounds checking. Memory will + * be allocated, even if the request region colides with the stack or overflows + * the available physical memory. + * + * ALT_SBRK is mapped onto the sbrk() system call in alt_syscall.h + * + * This function is called by the profiling code to allocate memory so must be + * safe if called from an interrupt context. It must also not be instrumented + * because that would lead to an infinate loop. + */ + +extern char __alt_heap_start[]; /* set by linker */ +extern char __alt_heap_limit[]; /* set by linker */ + +static char *heap_end = __alt_heap_start; + +#if defined(ALT_EXCEPTION_STACK) && defined(ALT_STACK_CHECK) +char * alt_exception_old_stack_limit = NULL; +#endif + +caddr_t ALT_SBRK (int incr) __attribute__ ((no_instrument_function )); + +caddr_t ALT_SBRK (int incr) +{ + alt_irq_context context; + char *prev_heap_end; + + context = alt_irq_disable_all(); + + /* Always return data aligned on a word boundary */ + heap_end = (char *)(((unsigned int)heap_end + 3) & ~3); + +#ifdef ALT_MAX_HEAP_BYTES + /* + * User specified a maximum heap size. Return -1 if it would + * be exceeded by this sbrk call. + */ + if (((heap_end + incr) - __alt_heap_start) > ALT_MAX_HEAP_BYTES) { + alt_irq_enable_all(context); + return (caddr_t)-1; + } +#else + if ((heap_end + incr) > __alt_heap_limit) { + alt_irq_enable_all(context); + return (caddr_t)-1; + } +#endif + + prev_heap_end = heap_end; + heap_end += incr; + +#ifdef ALT_STACK_CHECK + /* + * If the stack and heap are contiguous then extending the heap reduces the + * space available for the stack. If we are still using the default stack + * then adjust the stack limit to note this, while checking for stack + * pointer overflow. + * If the stack limit isn't pointing at the top of the heap then the code + * is using a different stack so none of this needs to be done. + */ + + if (alt_stack_limit() == prev_heap_end) + { + if (alt_stack_pointer() <= heap_end) + alt_report_stack_overflow(); + + alt_set_stack_limit(heap_end); + } + +#ifdef ALT_EXCEPTION_STACK + /* + * If we are executing from the exception stack then compare against the + * stack we switched away from as well. The exception stack is a fixed + * size so doesn't need to be checked. + */ + + if (alt_exception_old_stack_limit == prev_heap_end) + { + if (alt_exception_old_stack_limit <= heap_end) + alt_report_stack_overflow(); + + alt_exception_old_stack_limit = heap_end; + } +#endif + +#endif + + alt_irq_enable_all(context); + + return (caddr_t) prev_heap_end; +} diff --git a/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_settod.c b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_settod.c new file mode 100644 index 0000000..59db0f8 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_settod.c @@ -0,0 +1,96 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include + +#include "sys/alt_errno.h" +#include "sys/alt_alarm.h" +#include "os/alt_syscall.h" + +/* + * "alt_timezone" and "alt_resettime" are the values of the the reset time and + * time zone set through the last call to settimeofday(). By default they are + * zero initialised. + */ + +extern struct timezone alt_timezone; +extern struct timeval alt_resettime; + +/* + * Macro defining the number of micoseconds in a second. + */ + +#define ALT_US (1000000) + + +/* + * settimeofday() can be called to calibrate the system clock, so that + * subsequent calls to gettimeofday() will return the elapsed "wall clock" + * time. + * + * This is done by updating the global structures "alt_resettime" and + * "alt_timezone" so that an immediate call to gettimeofday() would return + * the value specified by "t" and "tz". + * + * Warning: if this function is called concurrently with a call to + * gettimeofday(), the value returned by gettimeofday() will be unreliable. + * + * ALT_SETTIMEOFDAY is mapped onto the settimeofday() system call in + * alt_syscall.h + */ + +int ALT_SETTIMEOFDAY (const struct timeval *t, + const struct timezone *tz) +{ + alt_u32 nticks = alt_nticks (); + alt_u32 tick_rate = alt_ticks_per_second (); + + /* If there is a system clock available, update the current time */ + + if (tick_rate) + { + alt_resettime.tv_sec = t->tv_sec - nticks/tick_rate; + alt_resettime.tv_usec = t->tv_usec - + ((nticks*(ALT_US/tick_rate))%ALT_US); + + alt_timezone.tz_minuteswest = tz->tz_minuteswest; + alt_timezone.tz_dsttime = tz->tz_dsttime; + + return 0; + } + + /* There's no system clock available */ + + ALT_ERRNO = ENOSYS; + return -1; +} diff --git a/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_software_exception.S b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_software_exception.S new file mode 100644 index 0000000..2142594 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_software_exception.S @@ -0,0 +1,53 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003-2005 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + + /* + * This file provides the global symbol: software_exception. It is provided to + * support legacy code, and should not be used by new software. + * + * It is used by legacy code to invoke the software exception handler as + * defined by version 1.0 of the Nios II kit. It should only be used when you + * are providing your own interrupt entry point, i.e. you are not using + * alt_irq_entry. + */ + +#include "system.h" + + /* + * Pull in the exception handler. + */ + + .globl alt_exception + + .section .exceptions.entry.label, "xa" + + .globl software_exception + .type software_exception, @function +software_exception: diff --git a/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_stat.c b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_stat.c new file mode 100644 index 0000000..44e207b --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_stat.c @@ -0,0 +1,59 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include +#include +#include + +#include "os/alt_syscall.h" + +/* + * The stat() function is similar to the fstat() function in that it is used to + * obtain status information about a file. Instead of using an open file + * descriptor (like fstat()), stat() takes the name of a file as an input + * argument. + * + * ALT_STAT is mapped onto the stat() system call in alt_syscall.h + */ + +int ALT_STAT (const char *file, struct stat *st) +{ + int fd; + int rc; + + fd = open (file, 0); + rc = fstat (fd, st); + close (fd); + + return rc; +} diff --git a/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_tick.c b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_tick.c new file mode 100644 index 0000000..c73488d --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_tick.c @@ -0,0 +1,149 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_irq.h" +#include "sys/alt_alarm.h" +#include "os/alt_hooks.h" +#include "alt_types.h" + +/* + * "_alt_tick_rate" is used to store the value of the system clock frequency + * in ticks per second. It is initialised to zero, which corresponds to there + * being no system clock facility available. + */ + +alt_u32 _alt_tick_rate = 0; + +/* + * "_alt_nticks" is the number of system clock ticks that have elapsed since + * reset. + */ + +volatile alt_u32 _alt_nticks = 0; + +/* + * "alt_alarm_list" is the head of a linked list of registered alarms. This is + * initialised to be an empty list. + */ + +ALT_LLIST_HEAD(alt_alarm_list); + +/* + * alt_alarm_stop() is called to remove an alarm from the list of registered + * alarms. Alternatively an alarm can unregister itself by returning zero when + * the alarm executes. + */ + +void alt_alarm_stop (alt_alarm* alarm) +{ + alt_irq_context irq_context; + + irq_context = alt_irq_disable_all(); + alt_llist_remove (&alarm->llist); + alt_irq_enable_all (irq_context); +} + +/* + * alt_tick() is periodically called by the system clock driver in order to + * process the registered list of alarms. Each alarm is registed with a + * callback interval, and a callback function, "callback". + * + * The return value of the callback function indicates how many ticks are to + * elapse until the next callback. A return value of zero indicates that the + * alarm should be deactivated. + * + * alt_tick() is expected to run at interrupt level. + */ + +void alt_tick (void) +{ + alt_alarm* next; + alt_alarm* alarm = (alt_alarm*) alt_alarm_list.next; + + alt_u32 next_callback; + + /* update the tick counter */ + + _alt_nticks++; + + /* process the registered callbacks */ + + while (alarm != (alt_alarm*) &alt_alarm_list) + { + next = (alt_alarm*) alarm->llist.next; + + /* + * Upon the tick-counter rolling over it is safe to clear the + * roll-over flag; once the flag is cleared this (or subsequnt) + * tick events are enabled to generate an alarm event. + */ + if ((alarm->rollover) && (_alt_nticks == 0)) + { + alarm->rollover = 0; + } + + /* if the alarm period has expired, make the callback */ + if ((alarm->time <= _alt_nticks) && (alarm->rollover == 0)) + { + next_callback = alarm->callback (alarm->context); + + /* deactivate the alarm if the return value is zero */ + + if (next_callback == 0) + { + alt_alarm_stop (alarm); + } + else + { + alarm->time += next_callback; + + /* + * If the desired alarm time causes a roll-over, set the rollover + * flag. This will prevent the subsequent tick event from causing + * an alarm too early. + */ + if(alarm->time < _alt_nticks) + { + alarm->rollover = 1; + } + } + } + alarm = next; + } + + /* + * Update the operating system specific timer facilities. + */ + + ALT_OS_TIME_TICK(); +} + diff --git a/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_times.c b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_times.c new file mode 100644 index 0000000..4dd965d --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_times.c @@ -0,0 +1,71 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +#include "sys/alt_errno.h" +#include "sys/alt_alarm.h" +#include "os/alt_syscall.h" + +/* + * The times() function is used by newlib to obtain elapsed time information. + * The return value is the elapsed time since reset in system clock ticks. Note + * that this is distinct from the strict Posix version of times(), which should + * return the time since: 0 hours, 0 minutes, 0 seconds, January 1, 1970, GMT. + * + * The input structure is filled in with time accounting information. This + * implementation attributes all cpu time to the system. + * + * ALT_TIMES is mapped onto the times() system call in alt_syscall.h + */ + +clock_t ALT_TIMES (struct tms *buf) +{ + clock_t ticks = alt_nticks(); + + /* If there is no system clock present, generate an error */ + + if (!alt_ticks_per_second()) + { + ALT_ERRNO = ENOSYS; + return 0; + } + + /* Otherwise return the elapsed time */ + + buf->tms_utime = 0; + buf->tms_stime = ticks; + buf->tms_cutime = 0; + buf->tms_cstime = 0; + + return ticks; +} diff --git a/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_uncached_free.c b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_uncached_free.c new file mode 100644 index 0000000..6e362ba --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_uncached_free.c @@ -0,0 +1,49 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003,2007 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "sys/alt_cache.h" +#include "system.h" + +#ifdef NIOS2_MMU_PRESENT +/* Convert KERNEL region address to IO region address */ +#define BYPASS_DCACHE_MASK (0x1 << 29) +#else +/* Set bit 31 of address to bypass D-cache */ +#define BYPASS_DCACHE_MASK (0x1 << 31) +#endif + +/* + * Free a block of uncached memory. + */ + +void alt_uncached_free (volatile void* ptr) +{ + free ((void*) (((alt_u32) ptr) & ~BYPASS_DCACHE_MASK)); +} diff --git a/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_uncached_malloc.c b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_uncached_malloc.c new file mode 100644 index 0000000..ab3416d --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_uncached_malloc.c @@ -0,0 +1,55 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003,2007 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "sys/alt_cache.h" +#include "system.h" + +#ifdef NIOS2_MMU_PRESENT +/* Convert KERNEL region address to IO region address */ +#define BYPASS_DCACHE_MASK (0x1 << 29) +#else +/* Set bit 31 of address to bypass D-cache */ +#define BYPASS_DCACHE_MASK (0x1 << 31) +#endif + +/* + * Allocate a block of uncached memory. + */ + +volatile void* alt_uncached_malloc (size_t size) +{ + void* ptr; + + ptr = malloc (size); + + alt_dcache_flush (ptr, size); + + return ptr ? (volatile void*) (((alt_u32) ptr) | BYPASS_DCACHE_MASK) : NULL; +} diff --git a/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_unlink.c b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_unlink.c new file mode 100644 index 0000000..29e35d6 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_unlink.c @@ -0,0 +1,55 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_errno.h" +#include "sys/alt_warning.h" +#include "os/alt_syscall.h" + +/* + * unlink() is used by newlib to delete an existing link to a file. This is + * unsupported in the HAL environment. However a "do-nothing" implementation + * is still provied for newlib compatability. + * + * ALT_UNLINK is mapped onto the unlink() system call in alt_syscall.h + */ + +int ALT_UNLINK (char *name) +{ + /* Generate a link time warning, should this function ever be called. */ + + ALT_STUB_WARNING(unlink); + + /* Indicate an error */ + + ALT_ERRNO = ENOSYS; + return -1; +} diff --git a/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_usleep.c b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_usleep.c new file mode 100644 index 0000000..2330eb8 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_usleep.c @@ -0,0 +1,52 @@ +/* + * Copyright (c) 2003 Altera Corporation, San Jose, California, USA. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + * ------------ + * + * Altera does not recommend, suggest or require that this reference design + * file be used in conjunction or combination with any other product. + * + * usleep.c - Microsecond delay routine + */ + +#include + +#include "priv/alt_busy_sleep.h" +#include "os/alt_syscall.h" + +/* + * This function simply calls alt_busy_sleep() to perform the delay. This + * function implements the delay as a calibrated "busy loop". + * + * ALT_USLEEP is mapped onto the usleep() system call in alt_syscall.h + */ + + + +#if defined (__GNUC__) && __GNUC__ >= 4 +int ALT_USLEEP (useconds_t us) +#else +unsigned int ALT_USLEEP (unsigned int us) +#endif +{ + return alt_busy_sleep(us); +} diff --git a/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_wait.c b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_wait.c new file mode 100644 index 0000000..a42f80f --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_wait.c @@ -0,0 +1,52 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_errno.h" +#include "os/alt_syscall.h" + +/* + * wait() is used by newlib to wait for all child processes to exit. Since the + * HAL does not support spawning child processes, this returns immediately as + * there can't be anythign to wait for. + * + * ALT_WAIT is mapped onto the wait() system call in alt_syscall.h + */ + +int ALT_WAIT (int *status) +{ + *status = 0; + + ALT_ERRNO = ECHILD; + + return -1; +} + diff --git a/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_write.c b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_write.c new file mode 100644 index 0000000..51debb5 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/HAL/src/alt_write.c @@ -0,0 +1,138 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include + +#include "sys/alt_errno.h" +#include "sys/alt_warning.h" +#include "priv/alt_file.h" +#include "os/alt_syscall.h" + +#include "sys/alt_log_printf.h" + +/* + * The write() system call is used to write a block of data to a file or + * device. This function simply vectors the request to the device driver + * associated with the input file descriptor "file". + * + * ALT_WRITE is mapped onto the write() system call in alt_syscall.h + */ + +#ifdef ALT_USE_DIRECT_DRIVERS + +#include "system.h" +#include "sys/alt_driver.h" + +/* + * Provide minimal version that just writes to the stdout/stderr devices + * when provided. + */ + +int ALT_WRITE (int file, const void *ptr, size_t len) +{ +#ifdef ALT_STDOUT_PRESENT + ALT_DRIVER_WRITE_EXTERNS(ALT_STDOUT_DEV); +#endif +#ifdef ALT_STDERR_PRESENT + ALT_DRIVER_WRITE_EXTERNS(ALT_STDERR_DEV); +#endif + +#if !defined(ALT_STDOUT_PRESENT) && !defined(ALT_STDERR_PRESENT) + /* Generate a link time warning, should this function ever be called. */ + ALT_STUB_WARNING(write); +#endif + + switch (file) { +#ifdef ALT_STDOUT_PRESENT + case 1: /* stdout file descriptor */ + return ALT_DRIVER_WRITE(ALT_STDOUT_DEV, ptr, len, 0); +#endif /* ALT_STDOUT_PRESENT */ +#ifdef ALT_STDERR_PRESENT + case 2: /* stderr file descriptor */ + return ALT_DRIVER_WRITE(ALT_STDERR_DEV, ptr, len, 0); +#endif /* ALT_STDERR_PRESENT */ + default: + ALT_ERRNO = EBADFD; + return -1; + } +} + +#else /* !ALT_USE_DIRECT_DRIVERS */ + +int ALT_WRITE (int file, const void *ptr, size_t len) +{ + alt_fd* fd; + int rval; + + /* + * A common error case is that when the file descriptor was created, the call + * to open() failed resulting in a negative file descriptor. This is trapped + * below so that we don't try and process an invalid file descriptor. + */ + + fd = (file < 0) ? NULL : &alt_fd_list[file]; + + if (fd) + { + /* + * If the file has not been opened with write access, or if the driver does + * not provide an implementation of write(), generate an error. Otherwise + * call the drivers write() function to process the request. + */ + + if (((fd->fd_flags & O_ACCMODE) != O_RDONLY) && fd->dev->write) + { + + /* ALT_LOG - see altera_hal/HAL/inc/sys/alt_log_printf.h */ + ALT_LOG_WRITE_FUNCTION(ptr,len); + + if ((rval = fd->dev->write(fd, ptr, len)) < 0) + { + ALT_ERRNO = -rval; + return -1; + } + return rval; + } + else + { + ALT_ERRNO = EACCES; + } + } + else + { + ALT_ERRNO = EBADFD; + } + return -1; +} + +#endif /* ALT_USE_DIRECT_DRIVERS */ diff --git a/software/qsys_tutorial_lcd2_bsp/HAL/src/altera_nios2_qsys_irq.c b/software/qsys_tutorial_lcd2_bsp/HAL/src/altera_nios2_qsys_irq.c new file mode 100644 index 0000000..c7a4f93 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/HAL/src/altera_nios2_qsys_irq.c @@ -0,0 +1,37 @@ +/* + * Copyright (c) 2009 Altera Corporation, San Jose, California, USA. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + * altera_nios2_irq.c - Support for Nios II internal interrupt controller. + * + */ + +#include "sys/alt_irq.h" +#include "altera_nios2_qsys_irq.h" + +/* + * To initialize the internal interrupt controller, just clear the IENABLE + * register so that all possible IRQs are disabled. + */ +void altera_nios2_qsys_irq_init(void) +{ + NIOS2_WRITE_IENABLE(0); +} diff --git a/software/qsys_tutorial_lcd2_bsp/HAL/src/crt0.S b/software/qsys_tutorial_lcd2_bsp/HAL/src/crt0.S new file mode 100644 index 0000000..582445d --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/HAL/src/crt0.S @@ -0,0 +1,456 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "system.h" +#include "nios2.h" + +/* Setup header files to work with assembler code. */ +#define ALT_ASM_SRC + +/* Debug logging facility */ +#include "sys/alt_log_printf.h" + +/*************************************************************************\ +| MACROS | +\*************************************************************************/ + +/* + * The new build tools explicitly define macros when alt_load() + * must be called. The define ALT_LOAD_EXPLICITLY_CONTROLLED tells us that + * those macros are controlling if alt_load() needs to be called. + */ +#ifdef ALT_LOAD_EXPLICITLY_CONTROLLED + +/* Need to call alt_load() if any of these sections are being copied. */ +#if defined(ALT_LOAD_COPY_RODATA) || defined(ALT_LOAD_COPY_RWDATA) || defined(ALT_LOAD_COPY_EXCEPTIONS) +#define CALL_ALT_LOAD +#endif + +#else /* !ALT_LOAD_EXPLICITLY_CONTROLLED */ + +/* + * The legacy build tools use the following macros to detect when alt_load() + * needs to be called. + */ + +#define __ALT_LOAD_SECTIONS(res, text, rodata, exc) \ + ((res##_BASE != rodata##_BASE) || \ + (res##_BASE != rwdata##_BASE) || \ + (res##_BASE != exc##_BASE)) + +#define _ALT_LOAD_SECTIONS(res, text, rodata, exc) \ + __ALT_LOAD_SECTIONS(res, text, rodata, exc) + +#define ALT_LOAD_SECTIONS _ALT_LOAD_SECTIONS(ALT_RESET_DEVICE, \ + ALT_RODATA_DEVICE, \ + ALT_RWDATA_DEVICE, \ + ALT_EXCEPTIONS_DEVICE) + +/* Call alt_load() if there is no bootloader and ALT_LOAD_SECTIONS isn't 0. */ +#if defined(ALT_NO_BOOTLOADER) && ALT_LOAD_SECTIONS +#define CALL_ALT_LOAD +#endif + +#endif /* !ALT_LOAD_EXPLICITLY_CONTROLLED */ + +/* + * When the legacy build tools define a macro called ALT_NO_BOOTLOADER, + * it indicates that initialization code is allowed at the reset address. + * The new build tools define a macro called ALT_ALLOW_CODE_AT_RESET for + * the same purpose. + */ +#ifdef ALT_NO_BOOTLOADER +#define ALT_ALLOW_CODE_AT_RESET +#endif + +/*************************************************************************\ +| EXTERNAL REFERENCES | +\*************************************************************************/ + +/* + * The entry point for user code is either "main" in hosted mode, or + * "alt_main" in standalone mode. These are explicitly referenced here, + * to ensure they are built into the executable. This allows the user + * to build them into libraries, rather than supplying them in object + * files at link time. + */ + .globl main + .globl alt_main + +/* + * Create a reference to the software multiply/divide and trap handers, + * so that if they are provided, they will appear in the executable. + */ +#ifndef ALT_NO_INSTRUCTION_EMULATION + .globl alt_exception_muldiv +#endif +#ifdef ALT_TRAP_HANDLER + .globl alt_exception_trap +#endif + +/* + * Linker defined symbols used to initialize bss. + */ +.globl __bss_start +.globl __bss_end + +/*************************************************************************\ +| RESET SECTION (.entry) | +\*************************************************************************/ + +/* + * This is the reset entry point for Nios II. + * + * At reset, only the cache line which contain the reset vector is + * initialized by the hardware. The code within the first cache line + * initializes the remainder of the instruction cache. + */ + + .section .entry, "xa" + .align 5 + +/* + * Explicitly allow the use of r1 (the assembler temporary register) + * within this code. This register is normally reserved for the use of + * the assembler. + */ + .set noat + +/* + * Some tools want to know where the reset vector is. + * Code isn't always provided at the reset vector but at least the + * __reset label always contains the reset vector address because + * it is defined at the start of the .entry section. + */ + + .globl __reset + .type __reset, @function +__reset: + +/* + * Initialize the instruction cache if present (i.e. size > 0) and + * reset code is allowed unless optimizing for RTL simulation. + * RTL simulations can ensure the instruction cache is already initialized + * so skipping this loop speeds up RTL simulation. + */ + +#if NIOS2_ICACHE_SIZE > 0 && defined(ALT_ALLOW_CODE_AT_RESET) && !defined(ALT_SIM_OPTIMIZE) + /* Assume the instruction cache size is always a power of two. */ +#if NIOS2_ICACHE_SIZE > 0x8000 + movhi r2, %hi(NIOS2_ICACHE_SIZE) +#else + movui r2, NIOS2_ICACHE_SIZE +#endif + +0: + initi r2 + addi r2, r2, -NIOS2_ICACHE_LINE_SIZE + bgt r2, zero, 0b +1: + + /* + * The following debug information tells the ISS not to run the loop above + * but to perform its actions using faster internal code. + */ + .pushsection .debug_alt_sim_info + .int 1, 1, 0b, 1b + .popsection +#endif /* Initialize Instruction Cache */ + +/* + * Jump to the _start entry point in the .text section if reset code + * is allowed or if optimizing for RTL simulation. + */ +#if defined(ALT_ALLOW_CODE_AT_RESET) || defined(ALT_SIM_OPTIMIZE) + /* Jump to the _start entry point in the .text section. */ + movhi r1, %hi(_start) + ori r1, r1, %lo(_start) + jmp r1 + + .size __reset, . - __reset +#endif /* Jump to _start */ + +/* + * When not using exit, provide an _exit symbol to prevent unresolved + * references to _exit from the linker script. + */ +#ifdef ALT_NO_EXIT + .globl _exit +_exit: +#endif + +/*************************************************************************\ +| TEXT SECTION (.text) | +\*************************************************************************/ + +/* + * Start of the .text section, and also the code entry point when + * the code is executed by a bootloader rather than directly from reset. + */ + .section .text + .align 2 + + .globl _start + .type _start, @function +_start: + +/* + * Initialize the data cache if present (i.e. size > 0) and not + * optimizing for RTL simulation. + * RTL simulations can ensure the data cache is already initialized + * so skipping this loop speeds up RTL simulation. + */ + +#if NIOS2_DCACHE_SIZE > 0 && !defined(ALT_SIM_OPTIMIZE) + + /* Assume the data cache size is always a power of two. */ +#if NIOS2_DCACHE_SIZE > 0x8000 + movhi r2, %hi(NIOS2_DCACHE_SIZE) +#else + movui r2, NIOS2_DCACHE_SIZE +#endif + +0: + initd 0(r2) + addi r2, r2, -NIOS2_DCACHE_LINE_SIZE + bgt r2, zero, 0b +1: + + /* + * The following debug information tells the ISS not to run the loop above + * but to perform its actions using faster internal code. + */ + .pushsection .debug_alt_sim_info + .int 2, 1, 0b, 1b + .popsection + +#endif /* Initialize Data Cache */ + + /* Log that caches have been initialized. */ + ALT_LOG_PUTS(alt_log_msg_cache) + + /* Log that the stack pointer is about to be setup. */ + ALT_LOG_PUTS(alt_log_msg_stackpointer) + +#if (NIOS2_NUM_OF_SHADOW_REG_SETS == 0) + /* + * Now that the caches are initialized, set up the stack pointer. + * The value provided by the linker is assumed to be correctly aligned. + */ + movhi sp, %hi(__alt_stack_pointer) + ori sp, sp, %lo(__alt_stack_pointer) + + /* Set up the global pointer. */ + movhi gp, %hi(_gp) + ori gp, gp, %lo(_gp) + +#else /* NIOS2_NUM_OF_SHADOW_REG_SETS > 0 */ + + /* + * Set up the GP and SP in all shadow register sets. + */ + + /* + * Check current register set number, if CPU resets into a shadow register + * set, switch register set to 0 by writing zero to SSTATUS register and + * execute an ERET instruction that just jumps to the next PC address + * (use the NEXTPC instruction to get this). + */ + + rdctl r2, status + + /* Get the current register set number (STATUS.CRS). */ + andi r3, r2, NIOS2_STATUS_CRS_MSK + + /* Skip switch register set if STATUS.CRS is 0. */ + beq r3, zero, .Lskip_switch_reg_set + + .set nobreak + + /* Current register set is non-zero, set SSTATUS to 0. */ + mov sstatus, zero + + /* Get next pc and store in ea. */ + nextpc ea + + /* Point to instruction after eret. */ + addi ea, ea, 8 + + /* + * Execute ERET instruction that just jumps to the next PC address + */ + eret + +.Lskip_switch_reg_set: + mov r2, zero + + /* Reset STATUS register */ + wrctl status, r2 + + movui r3, NIOS2_NUM_OF_SHADOW_REG_SETS + + /* Set up the stack pointer in register set 0. */ + movhi sp, %hi(__alt_stack_pointer) + ori sp, sp, %lo(__alt_stack_pointer) + + /* Set up the global pointer in register set 0. */ + movhi gp, %hi(_gp) + ori gp, gp, %lo(_gp) + +.Lsetup_sp_and_gp_loop: + /* + * Setup GP and SP for shadow register set + * from NIOS2_NUM_OF_SHADOW_REG_SETS to 0 + */ + + /* Skip if number of register sets is 0. */ + beq r3, zero, .Lno_shadow_register_set + + + /* Add previous register set STATUS.PRS by 1 */ + movhi r4, 1 + add r2, r2, r4 + + /* Write STATUS */ + wrctl status, r2 + + /* Clear r0 in the shadow register set (not done by hardware) */ + wrprs r0, r0 + + /* Write the GP in previous register set */ + wrprs gp, gp + + /* Only write the SP in previous register set + * if using the seperate exception stack. For normal case (single stack), + * funnel code would read the SP from previous register set. + */ +#ifdef ALT_INTERRUPT_STACK + + movhi et, %hiadj(__alt_interrupt_stack_pointer) + addi et, et, %lo(__alt_interrupt_stack_pointer) + wrprs sp, et + +#endif /* ALT_INTERRUPT_STACK */ + + /* Decrease number of register set counter by 1 */ + addi r3, r3, -1 + + br .Lsetup_sp_and_gp_loop +.Lno_shadow_register_set: + +#endif /* NIOS2_NUM_OF_SHADOW_REG_SETS */ +/* + * Clear the BSS if not optimizing for RTL simulation. + * + * This uses the symbols: __bss_start and __bss_end, which are defined + * by the linker script. They mark the begining and the end of the bss + * region. The linker script guarantees that these values are word aligned. + */ +#ifndef ALT_SIM_OPTIMIZE + /* Log that the BSS is about to be cleared. */ + ALT_LOG_PUTS(alt_log_msg_bss) + + movhi r2, %hi(__bss_start) + ori r2, r2, %lo(__bss_start) + + movhi r3, %hi(__bss_end) + ori r3, r3, %lo(__bss_end) + + beq r2, r3, 1f + +0: + stw zero, (r2) + addi r2, r2, 4 + bltu r2, r3, 0b + +1: + + /* + * The following debug information tells the ISS not to run the loop above + * but to perform its actions using faster internal code. + */ + .pushsection .debug_alt_sim_info + .int 3, 1, 0b, 1b + .popsection +#endif /* ALT_SIM_OPTIMIZE */ + +/* + * The alt_load() facility is normally used when there is no bootloader. + * It copies some sections into RAM so it acts like a mini-bootloader. + */ +#ifdef CALL_ALT_LOAD + +#ifdef ALT_STACK_CHECK + /* + * If the user has selected stack checking then we need to set up a safe + * value in the stack limit register so that the relocation functions + * don't think the stack has overflowed (the contents of the rwdata + * section aren't defined until alt_load() has been called). + */ + mov et, zero +#endif + + call alt_load + +#endif /* CALL_ALT_LOAD */ + +#ifdef ALT_STACK_CHECK + /* + * Set up the stack limit (if required). The linker has set up the + * copy of the variable which is in memory. + */ + + ldw et, %gprel(alt_stack_limit_value)(gp) +#endif + + /* Log that alt_main is about to be called. */ + ALT_LOG_PUTS(alt_log_msg_alt_main) + + /* Call the C entry point. It should never return. */ + call alt_main + + /* Wait in infinite loop in case alt_main does return. */ +alt_after_alt_main: + br alt_after_alt_main + + .size _start, . - _start + +/* + * Add information about the stack base if stack overflow checking is enabled. + */ +#ifdef ALT_STACK_CHECK + .globl alt_stack_limit_value + .section .sdata,"aws",@progbits + .align 2 + .type alt_stack_limit_value, @object + .size alt_stack_limit_value, 4 +alt_stack_limit_value: + .long __alt_stack_limit +#endif diff --git a/software/qsys_tutorial_lcd2_bsp/Makefile b/software/qsys_tutorial_lcd2_bsp/Makefile new file mode 100644 index 0000000..cf5e813 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/Makefile @@ -0,0 +1,775 @@ +#------------------------------------------------------------------------------ +# BSP MAKEFILE +# +# This makefile was automatically generated by the nios2-bsp-generate-files +# command. Its purpose is to build a custom Board Support Package (BSP) +# targeting a specific Nios II processor in an SOPC Builder-based design. +# +# To create an application or library Makefile which uses this BSP, try the +# nios2-app-generate-makefile or nios2-lib-generate-makefile commands. +#------------------------------------------------------------------------------ + +#------------------------------------------------------------------------------ +# TOOLS +#------------------------------------------------------------------------------ + +MKDIR := mkdir -p +ECHO := echo +SPACE := $(empty) $(empty) + +#------------------------------------------------------------------------------ +# The adjust-path macro +# +# If COMSPEC is defined, Make is launched from Windows through +# Cygwin. This adjust-path macro will call 'cygpath -u' on all +# paths to ensure they are readable by Make. +# +# If COMSPEC is not defined, Make is launched from *nix, and no adjustment +# is necessary +#------------------------------------------------------------------------------ + +ifndef COMSPEC +ifdef ComSpec +COMSPEC = $(ComSpec) +endif # ComSpec +endif # !COMSPEC + +ifdef COMSPEC + adjust-path = $(subst $(SPACE),\$(SPACE),$(shell cygpath -u "$1")) + adjust-path-mixed = $(subst $(SPACE),\$(SPACE),$(shell cygpath -m "$1")) +else + adjust-path = $(subst $(SPACE),\$(SPACE),$1) + adjust-path-mixed = $(subst $(SPACE),\$(SPACE),$1) +endif + +#------------------------------------------------------------------------------ +# DEFAULT TARGET +# +# The default target, "all", must appear before any other target in the +# Makefile. Note that extra prerequisites are added to the "all" rule later. +#------------------------------------------------------------------------------ +.PHONY: all +all: + @$(ECHO) [BSP build complete] + + +#------------------------------------------------------------------------------ +# PATHS & DIRECTORY NAMES +# +# Explicitly locate absolute path of the BSP root +#------------------------------------------------------------------------------ + +BSP_ROOT_DIR := . + +# Define absolute path to the root of the BSP. +ABS_BSP_ROOT := $(call adjust-path-mixed,$(shell pwd)) + +# Stash all BSP object files here +OBJ_DIR := ./obj + +NEWLIB_DIR = $(BSP_ROOT_DIR)/newlib + + +#------------------------------------------------------------------------------ +# MANAGED CONTENT +# +# All content between the lines "START MANAGED" and "END MANAGED" below is +# generated based on variables in the BSP settings file when the +# nios2-bsp-generate-files command is invoked. If you wish to persist any +# information pertaining to the build process, it is recomended that you +# utilize the BSP settings mechanism to do so. +# +# Note that most variable assignments in this section have a corresponding BSP +# setting that can be changed by using the nios2-bsp-create-settings or +# nios2-bsp-update-settings command before nios2-bsp-generate-files; if you +# want any variable set to a specific value when this Makefile is re-generated +# (to prevent hand-edits from being over-written), use the BSP settings +# facilities above. +#------------------------------------------------------------------------------ + +#START MANAGED + +# The following TYPE comment allows tools to identify the 'type' of target this +# makefile is associated with. +# TYPE: BSP_PRIVATE_MAKEFILE + +# This following VERSION comment indicates the version of the tool used to +# generate this makefile. A makefile variable is provided for VERSION as well. +# ACDS_VERSION: 13.0sp1 +ACDS_VERSION := 13.0sp1 + +# This following BUILD_NUMBER comment indicates the build number of the tool +# used to generate this makefile. +# BUILD_NUMBER: 232 + +SETTINGS_FILE := settings.bsp +SOPC_FILE := C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.sopcinfo + +#------------------------------------------------------------------------------- +# TOOL & COMMAND DEFINITIONS +# +# The base command for each build operation are expressed here. Additional +# switches may be expressed here. They will run for all instances of the +# utility. +#------------------------------------------------------------------------------- + +# Archiver command. Creates library files. +AR = nios2-elf-ar + +# Assembler command. Note that CC is used for .S files. +AS = nios2-elf-gcc + +# Custom flags only passed to the archiver. This content of this variable is +# directly passed to the archiver rather than the more standard "ARFLAGS". The +# reason for this is that GNU Make assumes some default content in ARFLAGS. +# This setting defines the value of BSP_ARFLAGS in Makefile. +BSP_ARFLAGS = -src + +# Custom flags only passed to the assembler. This setting defines the value of +# BSP_ASFLAGS in Makefile. +BSP_ASFLAGS = -Wa,-gdwarf2 + +# C/C++ compiler debug level. '-g' provides the default set of debug symbols +# typically required to debug a typical application. Omitting '-g' removes +# debug symbols from the ELF. This setting defines the value of +# BSP_CFLAGS_DEBUG in Makefile. +BSP_CFLAGS_DEBUG = -g + +# C/C++ compiler optimization level. "-O0" = no optimization,"-O2" = "normal" +# optimization, etc. "-O0" is recommended for code that you want to debug since +# compiler optimization can remove variables and produce non-sequential +# execution of code while debugging. This setting defines the value of +# BSP_CFLAGS_OPTIMIZATION in Makefile. +BSP_CFLAGS_OPTIMIZATION = '-Os' + +# C/C++ compiler warning level. "-Wall" is commonly used.This setting defines +# the value of BSP_CFLAGS_WARNINGS in Makefile. +BSP_CFLAGS_WARNINGS = -Wall + +# C compiler command. +CC = nios2-elf-gcc -xc + +# C++ compiler command. +CXX = nios2-elf-gcc -xc++ + +# Command used to remove files during 'clean' target. +RM = rm -f + + +#------------------------------------------------------------------------------- +# BUILD PRE & POST PROCESS COMMANDS +# +# The following variables are treated as shell commands in the rule +# definitions for each file-type associated with the BSP build, as well as +# commands run at the beginning and end of the entire BSP build operation. +# Pre-process commands are executed before the relevant command (for example, +# a command defined in the "CC_PRE_PROCESS" variable executes before the C +# compiler for building .c files), while post-process commands are executed +# immediately afterwards. +# +# You can view each pre/post-process command in the "Build Rules: All & +# Clean", "Pattern Rules to Build Objects", and "Library Rules" sections of +# this Makefile. +#------------------------------------------------------------------------------- + + +#------------------------------------------------------------------------------- +# BSP SOURCE BUILD SETTINGS (FLAG GENERATION) +# +# Software build settings such as compiler optimization, debug level, warning +# flags, etc., may be defined in the following variables. The variables below +# are concatenated together in the 'Flags' section of this Makefile to form +# final variables of flags passed to the build tools. +# +# These settings are considered private to the BSP and apply to all library & +# driver files in it; they do NOT automatically propagate to, for example, the +# build settings for an application. +# # For additional detail and syntax requirements, please refer to GCC help +# (example: "nios2-elf-gcc --help --verbose"). +# +# Unless indicated otherwise, multiple entries in each variable should be +# space-separated. +#------------------------------------------------------------------------------- + +# Altera HAL alt_sys_init.c generated source file +GENERATED_C_FILES := $(ABS_BSP_ROOT)/alt_sys_init.c +GENERATED_C_LIB_SRCS += alt_sys_init.c + + +#------------------------------------------------------------------------------- +# BSP SOURCE FILE LISTING +# +# All source files that comprise the BSP are listed here, along with path +# information to each file expressed relative to the BSP root. The precise +# list and location of each file is derived from the driver, operating system, +# or software package source file declarations. +# +# Following specification of the source files for each component, driver, etc., +# each source file type (C, assembly, etc.) is concatenated together and used +# to construct a list of objects. Pattern rules to build each object are then +# used to build each file. +#------------------------------------------------------------------------------- + +# altera_avalon_jtag_uart_driver sources root +altera_avalon_jtag_uart_driver_SRCS_ROOT := drivers + +# altera_avalon_jtag_uart_driver sources +altera_avalon_jtag_uart_driver_C_LIB_SRCS := \ + $(altera_avalon_jtag_uart_driver_SRCS_ROOT)/src/altera_avalon_jtag_uart_init.c \ + $(altera_avalon_jtag_uart_driver_SRCS_ROOT)/src/altera_avalon_jtag_uart_read.c \ + $(altera_avalon_jtag_uart_driver_SRCS_ROOT)/src/altera_avalon_jtag_uart_write.c \ + $(altera_avalon_jtag_uart_driver_SRCS_ROOT)/src/altera_avalon_jtag_uart_ioctl.c \ + $(altera_avalon_jtag_uart_driver_SRCS_ROOT)/src/altera_avalon_jtag_uart_fd.c + +# altera_avalon_lcd_16207_driver sources root +altera_avalon_lcd_16207_driver_SRCS_ROOT := drivers + +# altera_avalon_lcd_16207_driver sources +altera_avalon_lcd_16207_driver_C_LIB_SRCS := \ + $(altera_avalon_lcd_16207_driver_SRCS_ROOT)/src/altera_avalon_lcd_16207.c \ + $(altera_avalon_lcd_16207_driver_SRCS_ROOT)/src/altera_avalon_lcd_16207_fd.c + +# altera_avalon_pio_driver sources root +altera_avalon_pio_driver_SRCS_ROOT := drivers + +# altera_avalon_pio_driver sources +# altera_nios2_qsys_hal_driver sources root +altera_nios2_qsys_hal_driver_SRCS_ROOT := HAL + +# altera_nios2_qsys_hal_driver sources +altera_nios2_qsys_hal_driver_C_LIB_SRCS := \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/altera_nios2_qsys_irq.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_usleep.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_busy_sleep.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_irq_vars.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_icache_flush.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_icache_flush_all.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_dcache_flush.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_dcache_flush_all.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_dcache_flush_no_writeback.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_instruction_exception_entry.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_irq_register.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_iic.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_remap_cached.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_remap_uncached.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_uncached_free.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_uncached_malloc.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_do_ctors.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_do_dtors.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_gmon.c + +altera_nios2_qsys_hal_driver_ASM_LIB_SRCS := \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_exception_entry.S \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_exception_trap.S \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_exception_muldiv.S \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_irq_entry.S \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_software_exception.S \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_mcount.S \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_log_macro.S \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/crt0.S + +# hal sources root +hal_SRCS_ROOT := HAL + +# hal sources +hal_C_LIB_SRCS := \ + $(hal_SRCS_ROOT)/src/alt_alarm_start.c \ + $(hal_SRCS_ROOT)/src/alt_close.c \ + $(hal_SRCS_ROOT)/src/alt_dev.c \ + $(hal_SRCS_ROOT)/src/alt_dev_llist_insert.c \ + $(hal_SRCS_ROOT)/src/alt_dma_rxchan_open.c \ + $(hal_SRCS_ROOT)/src/alt_dma_txchan_open.c \ + $(hal_SRCS_ROOT)/src/alt_environ.c \ + $(hal_SRCS_ROOT)/src/alt_env_lock.c \ + $(hal_SRCS_ROOT)/src/alt_errno.c \ + $(hal_SRCS_ROOT)/src/alt_execve.c \ + $(hal_SRCS_ROOT)/src/alt_exit.c \ + $(hal_SRCS_ROOT)/src/alt_fcntl.c \ + $(hal_SRCS_ROOT)/src/alt_fd_lock.c \ + $(hal_SRCS_ROOT)/src/alt_fd_unlock.c \ + $(hal_SRCS_ROOT)/src/alt_find_dev.c \ + $(hal_SRCS_ROOT)/src/alt_find_file.c \ + $(hal_SRCS_ROOT)/src/alt_flash_dev.c \ + $(hal_SRCS_ROOT)/src/alt_fork.c \ + $(hal_SRCS_ROOT)/src/alt_fs_reg.c \ + $(hal_SRCS_ROOT)/src/alt_fstat.c \ + $(hal_SRCS_ROOT)/src/alt_get_fd.c \ + $(hal_SRCS_ROOT)/src/alt_getchar.c \ + $(hal_SRCS_ROOT)/src/alt_getpid.c \ + $(hal_SRCS_ROOT)/src/alt_gettod.c \ + $(hal_SRCS_ROOT)/src/alt_iic_isr_register.c \ + $(hal_SRCS_ROOT)/src/alt_instruction_exception_register.c \ + $(hal_SRCS_ROOT)/src/alt_ioctl.c \ + $(hal_SRCS_ROOT)/src/alt_io_redirect.c \ + $(hal_SRCS_ROOT)/src/alt_irq_handler.c \ + $(hal_SRCS_ROOT)/src/alt_isatty.c \ + $(hal_SRCS_ROOT)/src/alt_kill.c \ + $(hal_SRCS_ROOT)/src/alt_link.c \ + $(hal_SRCS_ROOT)/src/alt_load.c \ + $(hal_SRCS_ROOT)/src/alt_log_printf.c \ + $(hal_SRCS_ROOT)/src/alt_lseek.c \ + $(hal_SRCS_ROOT)/src/alt_main.c \ + $(hal_SRCS_ROOT)/src/alt_malloc_lock.c \ + $(hal_SRCS_ROOT)/src/alt_open.c \ + $(hal_SRCS_ROOT)/src/alt_printf.c \ + $(hal_SRCS_ROOT)/src/alt_putchar.c \ + $(hal_SRCS_ROOT)/src/alt_putstr.c \ + $(hal_SRCS_ROOT)/src/alt_read.c \ + $(hal_SRCS_ROOT)/src/alt_release_fd.c \ + $(hal_SRCS_ROOT)/src/alt_rename.c \ + $(hal_SRCS_ROOT)/src/alt_sbrk.c \ + $(hal_SRCS_ROOT)/src/alt_settod.c \ + $(hal_SRCS_ROOT)/src/alt_stat.c \ + $(hal_SRCS_ROOT)/src/alt_tick.c \ + $(hal_SRCS_ROOT)/src/alt_times.c \ + $(hal_SRCS_ROOT)/src/alt_unlink.c \ + $(hal_SRCS_ROOT)/src/alt_wait.c \ + $(hal_SRCS_ROOT)/src/alt_write.c + + +# Assemble all component C source files +COMPONENT_C_LIB_SRCS += \ + $(altera_avalon_jtag_uart_driver_C_LIB_SRCS) \ + $(altera_avalon_lcd_16207_driver_C_LIB_SRCS) \ + $(altera_nios2_qsys_hal_driver_C_LIB_SRCS) \ + $(hal_C_LIB_SRCS) + +# Assemble all component assembly source files +COMPONENT_ASM_LIB_SRCS += \ + $(altera_nios2_qsys_hal_driver_ASM_LIB_SRCS) + +# Assemble all component C++ source files +COMPONENT_CPP_LIB_SRCS += \ + +#END MANAGED + +#------------------------------------------------------------------------------ +# PUBLIC.MK +# +# The generated public.mk file contains BSP information that is shared with +# other external makefiles, such as a Nios II application makefile. System- +# dependent information such as hardware-specific compiler flags and +# simulation file generation are stored here. +# +# In addition, public.mk contains include paths that various software, +# such as a device driver, may need for the C compiler. These paths are +# written to public.mk with respect to the BSP root. In public.mk, each +# path is prefixed with a special variable, $(ALT_LIBRARY_ROOT_DIR). The +# purpose of this variable is to allow an external Makefile to append on +# path information to precisely locate paths expressed in public.mk +# Since this is the BSP Makefile, we set ALT_LIBRARY_ROOT_DIR to point right +# here ("."), at the BSP root. +# +# ALT_LIBRARY_ROOT_DIR must always be set before public.mk is included. +#------------------------------------------------------------------------------ +ALT_LIBRARY_ROOT_DIR := . +include public.mk + + +#------------------------------------------------------------------------------ +# FLAGS +# +# Include paths for BSP files are written into the public.mk file and must +# be added to the existing list of pre-processor flags. In addition, "hooks" +# for standard flags left intentionally empty (CFLAGS, CPPFLAGS, ASFLAGS, +# and CXXFLAGS) are provided for conveniently adding to the relevant flags +# on the command-line or via script that calls make. +#------------------------------------------------------------------------------ +# Assemble final list of compiler flags from generated content +BSP_CFLAGS += \ + $(BSP_CFLAGS_DEFINED_SYMBOLS) \ + $(BSP_CFLAGS_UNDEFINED_SYMBOLS) \ + $(BSP_CFLAGS_OPTIMIZATION) \ + $(BSP_CFLAGS_DEBUG) \ + $(BSP_CFLAGS_WARNINGS) \ + $(BSP_CFLAGS_USER_FLAGS) \ + $(ALT_CFLAGS) \ + $(CFLAGS) + +# Make ready the final list of include directories and other C pre-processor +# flags. Each include path is made ready by prefixing it with "-I". +BSP_CPPFLAGS += \ + $(addprefix -I, $(BSP_INC_DIRS)) \ + $(addprefix -I, $(ALT_INCLUDE_DIRS)) \ + $(ALT_CPPFLAGS) \ + $(CPPFLAGS) + +# Finish off assembler flags with any user-provided flags +BSP_ASFLAGS += $(ASFLAGS) + +# Finish off C++ flags with any user-provided flags +BSP_CXXFLAGS += $(CXXFLAGS) + +# And finally, the ordered list +C_SRCS += $(GENERATED_C_LIB_SRCS) \ + $(COMPONENT_C_LIB_SRCS) + +CXX_SRCS += $(GENERATED_CPP_LIB_SRCS) \ + $(COMPONENT_CPP_LIB_SRCS) + +ASM_SRCS += $(GENERATED_ASM_LIB_SRCS) \ + $(COMPONENT_ASM_LIB_SRCS) + + +#------------------------------------------------------------------------------ +# LIST OF GENERATED FILES +# +# A Nios II BSP relies on the generation of several source files used +# by both the BSP and any applications referencing the BSP. +#------------------------------------------------------------------------------ + + +GENERATED_H_FILES := $(ABS_BSP_ROOT)/system.h + +GENERATED_LINKER_SCRIPT := $(ABS_BSP_ROOT)/linker.x + +GENERATED_FILES += $(GENERATED_H_FILES) \ + $(GENERATED_LINKER_SCRIPT) + + +#------------------------------------------------------------------------------ +# SETUP TO BUILD OBJECTS +# +# List of object files which are to be built. This is constructed from the input +# list of C source files (C_SRCS), C++ source files (CXX_SRCS), and assembler +# source file (ASM_SRCS). The permitted file extensions are: +# +# .c .C - for C files +# .cxx .cc .cpp .CXX .CC .CPP - for C++ files +# .S .s - for assembly files +# +# Extended description: The list of objects is a sorted list (duplicates +# removed) of all possible objects, placed beneath the ./obj directory, +# including any path information stored in the "*_SRCS" variable. The +# "patsubst" commands are used to concatenate together multiple file suffix +# types for common files (i.e. c++ as .cxx, .cc, .cpp). +# +# File extensions are case-insensitive in build rules with the exception of +# assembly sources. Nios II assembly sources with the ".S" extension are first +# run through the C preprocessor. Sources with the ".s" extension are not. +#------------------------------------------------------------------------------ +OBJS = $(sort $(addprefix $(OBJ_DIR)/, \ + $(patsubst %.c, %.o, $(patsubst %.C, %.o, $(C_SRCS))) \ + $(patsubst %.cxx, %.o, $(patsubst %.CXX, %.o, \ + $(patsubst %.cc, %.o, $(patsubst %.CC, %.o, \ + $(patsubst %.cpp, %.o, $(patsubst %.CPP, %.o, \ + $(CXX_SRCS) )))))) \ + $(patsubst %.S, %.o, $(patsubst %.s, %.o, $(ASM_SRCS))) )) + +# List of dependancy files for each object file. +DEPS = $(OBJS:.o=.d) + + +# Rules to force your project to rebuild or relink +# .force_relink file will cause any application that depends on this project to relink +# .force_rebuild file will cause this project to rebuild object files +# .force_rebuild_all file will cause this project and any project that depends on this project to rebuild object files + +FORCE_RELINK_DEP := .force_relink +FORCE_REBUILD_DEP := .force_rebuild +FORCE_REBUILD_ALL_DEP := .force_rebuild_all +FORCE_REBUILD_DEP_LIST := $(FORCE_RELINK_DEP) $(FORCE_REBUILD_DEP) $(FORCE_REBUILD_ALL_DEP) + +$(FORCE_REBUILD_DEP_LIST): + +$(OBJS): $(wildcard $(FORCE_REBUILD_DEP)) $(wildcard $(FORCE_REBUILD_ALL_DEP)) + + +#------------------------------------------------------------------------------ +# BUILD RULES: ALL & CLEAN +#------------------------------------------------------------------------------ +.DELETE_ON_ERROR: + +.PHONY: all +all: build_pre_process +all: Makefile $(GENERATED_FILES) $(BSP_LIB) $(NEWLIB_DIR) +all: build_post_process + + +# clean: remove .o/.a/.d +.PHONY: clean +clean: + @$(RM) -r $(BSP_LIB) $(OBJ_DIR) $(FORCE_REBUILD_DEP_LIST) +ifneq ($(wildcard $(NEWLIB_DIR)),) + @$(RM) -r $(NEWLIB_DIR) +endif + @$(ECHO) [BSP clean complete] + + +#------------------------------------------------------------------------------ +# BUILD PRE/POST PROCESS +#------------------------------------------------------------------------------ +build_pre_process : + $(BUILD_PRE_PROCESS) + +build_post_process : + $(BUILD_POST_PROCESS) + +.PHONY: build_pre_process build_post_process + + + +#------------------------------------------------------------------------------ +# MAKEFILE UP TO DATE? +# +# Is this very Makefile up to date? Someone may have changed the BSP settings +# file or the associated target hardware. +#------------------------------------------------------------------------------ +# Skip this check when clean is the only target +ifneq ($(MAKECMDGOALS),clean) + +ifneq ($(wildcard $(SETTINGS_FILE)),$(SETTINGS_FILE)) +$(warning Warning: BSP Settings File $(SETTINGS_FILE) could not be found.) +endif + +Makefile: $(wildcard $(SETTINGS_FILE)) + @$(ECHO) Makefile not up to date. + @$(ECHO) $(SETTINGS_FILE) has been modified since the BSP Makefile was generated. + @$(ECHO) + @$(ECHO) Generate the BSP to update the Makefile, and then build again. + @$(ECHO) + @$(ECHO) To generate from Eclipse: + @$(ECHO) " 1. Right-click the BSP project." + @$(ECHO) " 2. In the Nios II Menu, click Generate BSP." + @$(ECHO) + @$(ECHO) To generate from the command line: + @$(ECHO) " nios2-bsp-generate-files --settings= --bsp-dir=" + @$(ECHO) + @exit 1 + +ifneq ($(wildcard $(SOPC_FILE)),$(SOPC_FILE)) +$(warning Warning: SOPC File $(SOPC_FILE) could not be found.) +endif + +public.mk: $(wildcard $(SOPC_FILE)) + @$(ECHO) Makefile not up to date. + @$(ECHO) $(SOPC_FILE) has been modified since the BSP was generated. + @$(ECHO) + @$(ECHO) Generate the BSP to update the Makefile, and then build again. + @$(ECHO) + @$(ECHO) To generate from Eclipse: + @$(ECHO) " 1. Right-click the BSP project." + @$(ECHO) " 2. In the Nios II Menu, click Generate BSP." + @$(ECHO) + @$(ECHO) To generate from the command line: + @$(ECHO) " nios2-bsp-generate-files --settings= --bsp-dir=" + @$(ECHO) + @exit 1 + +endif # $(MAKECMDGOALS) != clean + +#------------------------------------------------------------------------------ +# PATTERN RULES TO BUILD OBJECTS +#------------------------------------------------------------------------------ +$(OBJ_DIR)/%.o: %.c + @$(ECHO) Compiling $( + +/* + * Device headers + */ + +#include "altera_nios2_qsys_irq.h" +#include "altera_avalon_jtag_uart.h" +#include "altera_avalon_lcd_16207.h" + +/* + * Allocate the device storage + */ + +ALTERA_NIOS2_QSYS_IRQ_INSTANCE ( NIOS2_PROCESSOR, nios2_processor); +ALTERA_AVALON_JTAG_UART_INSTANCE ( JTAG_UART, jtag_uart); +ALTERA_AVALON_LCD_16207_INSTANCE ( LCD_16207_0, lcd_16207_0); + +/* + * Initialize the interrupt controller devices + * and then enable interrupts in the CPU. + * Called before alt_sys_init(). + * The "base" parameter is ignored and only + * present for backwards-compatibility. + */ + +void alt_irq_init ( const void* base ) +{ + ALTERA_NIOS2_QSYS_IRQ_INIT ( NIOS2_PROCESSOR, nios2_processor); + alt_irq_cpu_enable_interrupts(); +} + +/* + * Initialize the non-interrupt controller devices. + * Called after alt_irq_init(). + */ + +void alt_sys_init( void ) +{ + ALTERA_AVALON_JTAG_UART_INIT ( JTAG_UART, jtag_uart); + ALTERA_AVALON_LCD_16207_INIT ( LCD_16207_0, lcd_16207_0); +} diff --git a/software/qsys_tutorial_lcd2_bsp/create-this-bsp b/software/qsys_tutorial_lcd2_bsp/create-this-bsp new file mode 100644 index 0000000..49e6175 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/create-this-bsp @@ -0,0 +1,49 @@ +#!/bin/bash +# +# This script creates the ucosii_net_zipfs Board Support Package (BSP). + +BSP_TYPE=hal +BSP_DIR=. +SOPC_DIR=../../ +SOPC_FILE=C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.sopcinfo +NIOS2_BSP_ARGS="--set hal.max_file_descriptors 4 --set hal.enable_small_c_library true --set hal.sys_clk_timer none --set hal.timestamp_timer none --set hal.enable_exit false --set hal.enable_c_plus_plus false --set hal.enable_lightweight_device_driver_api true --set hal.enable_clean_exit false --set hal.enable_sim_optimize false --set hal.enable_reduced_device_drivers true --set hal.make.bsp_cflags_optimization '-Os'" +CPU_NAME= + + +# Don't run make if create-this-app script is called with --no-make arg +SKIP_MAKE= +while [ $# -gt 0 ] +do + case "$1" in + --no-make) + SKIP_MAKE=1 + ;; + *) + NIOS2_BSP_ARGS="$NIOS2_BSP_ARGS $1" + ;; + esac + shift +done + + +# Run nios2-bsp utility to create a hal BSP in this directory +# for the system with a .sopc file in $SOPC_FILE. +# Deprecating $SOPC_DIR in 10.1. Multiple .sopcinfo files in a directory may exist. + +if [ -z "$SOPC_FILE" ]; then + echo "WARNING: Use of a directory for locating a .sopcinfo file is deprecated in 10.1. Multiple .sopcinfo files may exist. You must specify the full .sopcinfo path." + cmd="nios2-bsp $BSP_TYPE $BSP_DIR $SOPC_DIR $NIOS2_BSP_ARGS $CPU_NAME" +else + cmd="nios2-bsp $BSP_TYPE $BSP_DIR $SOPC_FILE $NIOS2_BSP_ARGS $CPU_NAME" +fi + + +echo "create-this-bsp: Running \"$cmd\"" +$cmd || { + echo "$cmd failed" + exit 1 +} +if [ -z "$SKIP_MAKE" ]; then + echo "create-this-bsp: Running make" + make +fi diff --git a/software/qsys_tutorial_lcd2_bsp/drivers/inc/altera_avalon_jtag_uart.h b/software/qsys_tutorial_lcd2_bsp/drivers/inc/altera_avalon_jtag_uart.h new file mode 100644 index 0000000..95d4a99 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/drivers/inc/altera_avalon_jtag_uart.h @@ -0,0 +1,198 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#ifndef __ALT_AVALON_JTAG_UART_H__ +#define __ALT_AVALON_JTAG_UART_H__ + +#include + +#include "sys/alt_alarm.h" +#include "sys/alt_warning.h" + +#include "os/alt_sem.h" +#include "os/alt_flag.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * If the user wants all drivers to be small rather than fast then make sure + * this one is marked as needing to be small. + */ +#if defined ALT_USE_SMALL_DRIVERS && !defined ALTERA_AVALON_JTAG_UART_SMALL +#define ALTERA_AVALON_JTAG_UART_SMALL +#endif + +/* + * If the user wants to ignore FIFO full error after timeout + */ +#if defined ALT_JTAG_UART_IGNORE_FIFO_FULL_ERROR && !defined ALTERA_AVALON_JTAG_UART_IGNORE_FIFO_FULL_ERROR +#define ALTERA_AVALON_JTAG_UART_IGNORE_FIFO_FULL_ERROR +#endif + +/* + * Constants that can be overriden. + */ +#ifndef ALTERA_AVALON_JTAG_UART_DEFAULT_TIMEOUT +#define ALTERA_AVALON_JTAG_UART_DEFAULT_TIMEOUT 10 +#endif + +#ifndef ALTERA_AVALON_JTAG_UART_BUF_LEN +#define ALTERA_AVALON_JTAG_UART_BUF_LEN 2048 +#endif + +/* + * ALT_JTAG_UART_READ_RDY and ALT_JTAG_UART_WRITE_RDY are the bitmasks + * that define uC/OS-II event flags that are releated to this device. + * + * ALT_JTAG_UART_READ_RDY indicates that there is read data in the buffer + * ready to be processed. ALT_JTAG_UART_WRITE_RDY indicates that the transmitter is + * ready for more data. + */ +#define ALT_JTAG_UART_READ_RDY 0x1 +#define ALT_JTAG_UART_WRITE_RDY 0x2 +#define ALT_JTAG_UART_TIMEOUT 0x4 + +/* + * State structure definition. Each instance of the driver uses one + * of these structures to hold its associated state. + */ + +typedef struct altera_avalon_jtag_uart_state_s +{ + unsigned int base; + +#ifndef ALTERA_AVALON_JTAG_UART_SMALL + + unsigned int timeout; /* Timeout until host is assumed inactive */ + alt_alarm alarm; + unsigned int irq_enable; + unsigned int host_inactive; + + ALT_SEM (read_lock) + ALT_SEM (write_lock) + ALT_FLAG_GRP (events) + + /* The variables below are volatile because they are modified by the + * interrupt routine. Making them volatile and reading them atomically + * means that we don't need any large critical sections. + */ + volatile unsigned int rx_in; + unsigned int rx_out; + unsigned int tx_in; + volatile unsigned int tx_out; + char rx_buf[ALTERA_AVALON_JTAG_UART_BUF_LEN]; + char tx_buf[ALTERA_AVALON_JTAG_UART_BUF_LEN]; + +#endif /* !ALTERA_AVALON_JTAG_UART_SMALL */ + +} altera_avalon_jtag_uart_state; + +/* + * Macros used by alt_sys_init when the ALT file descriptor facility isn't used. + */ + +#ifdef ALTERA_AVALON_JTAG_UART_SMALL + +#define ALTERA_AVALON_JTAG_UART_STATE_INSTANCE(name, state) \ + altera_avalon_jtag_uart_state state = \ + { \ + name##_BASE, \ + } + +#define ALTERA_AVALON_JTAG_UART_STATE_INIT(name, state) + +#else /* !ALTERA_AVALON_JTAG_UART_SMALL */ + +#define ALTERA_AVALON_JTAG_UART_STATE_INSTANCE(name, state) \ + altera_avalon_jtag_uart_state state = \ + { \ + name##_BASE, \ + ALTERA_AVALON_JTAG_UART_DEFAULT_TIMEOUT, \ + } + +/* + * Externally referenced routines + */ +extern void altera_avalon_jtag_uart_init(altera_avalon_jtag_uart_state* sp, + int irq_controller_id, int irq); + +#define ALTERA_AVALON_JTAG_UART_STATE_INIT(name, state) \ + { \ + if (name##_IRQ == ALT_IRQ_NOT_CONNECTED) \ + { \ + ALT_LINK_ERROR ("Error: Interrupt not connected for " #name ". " \ + "You have selected the interrupt driven version of " \ + "the ALTERA Avalon JTAG UART driver, but the " \ + "interrupt is not connected for this device. You can " \ + "select a polled mode driver by checking the 'small " \ + "driver' option in the HAL configuration window, or " \ + "by using the -DALTERA_AVALON_JTAG_UART_SMALL " \ + "preprocessor flag."); \ + } \ + else \ + altera_avalon_jtag_uart_init(&state, \ + name##_IRQ_INTERRUPT_CONTROLLER_ID, \ + name##_IRQ); \ + } + +#endif /* ALTERA_AVALON_JTAG_UART_SMALL */ + +/* + * Include in case non-direct version of driver required. + */ +#include "altera_avalon_jtag_uart_fd.h" + +/* + * Map alt_sys_init macros to direct or non-direct versions. + */ +#ifdef ALT_USE_DIRECT_DRIVERS + +#define ALTERA_AVALON_JTAG_UART_INSTANCE(name, state) \ + ALTERA_AVALON_JTAG_UART_STATE_INSTANCE(name, state) +#define ALTERA_AVALON_JTAG_UART_INIT(name, state) \ + ALTERA_AVALON_JTAG_UART_STATE_INIT(name, state) + +#else /* !ALT_USE_DIRECT_DRIVERS */ + +#define ALTERA_AVALON_JTAG_UART_INSTANCE(name, dev) \ + ALTERA_AVALON_JTAG_UART_DEV_INSTANCE(name, dev) +#define ALTERA_AVALON_JTAG_UART_INIT(name, dev) \ + ALTERA_AVALON_JTAG_UART_DEV_INIT(name, dev) + +#endif /* ALT_USE_DIRECT_DRIVERS */ + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __ALT_AVALON_JTAG_UART_H__ */ diff --git a/software/qsys_tutorial_lcd2_bsp/drivers/inc/altera_avalon_jtag_uart_fd.h b/software/qsys_tutorial_lcd2_bsp/drivers/inc/altera_avalon_jtag_uart_fd.h new file mode 100644 index 0000000..b3c3200 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/drivers/inc/altera_avalon_jtag_uart_fd.h @@ -0,0 +1,125 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2007 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#ifndef __ALT_AVALON_JTAG_UART_FD_H__ +#define __ALT_AVALON_JTAG_UART_FD_H__ + +#include "sys/alt_dev.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * Externally referenced routines + */ +extern int altera_avalon_jtag_uart_read_fd (alt_fd* fd, char* ptr, int len); +extern int altera_avalon_jtag_uart_write_fd (alt_fd* fd, const char* ptr, + int len); + +/* + * Device structure definition. This is needed by alt_sys_init in order to + * reserve memory for the device instance. + */ + +typedef struct altera_avalon_jtag_uart_dev_s +{ + alt_dev dev; + altera_avalon_jtag_uart_state state; +} altera_avalon_jtag_uart_dev; + +/* + * Macros used by alt_sys_init when the ALT file descriptor facility is used. + */ + +#ifdef ALTERA_AVALON_JTAG_UART_SMALL + +#define ALTERA_AVALON_JTAG_UART_DEV_INSTANCE(name, d) \ + static altera_avalon_jtag_uart_dev d = \ + { \ + { \ + ALT_LLIST_ENTRY, \ + name##_NAME, \ + NULL, /* open */ \ + NULL, /* close */ \ + altera_avalon_jtag_uart_read_fd, \ + altera_avalon_jtag_uart_write_fd, \ + NULL, /* lseek */ \ + NULL, /* fstat */ \ + NULL, /* ioctl */ \ + }, \ + { \ + name##_BASE, \ + } \ + } + +#define ALTERA_AVALON_JTAG_UART_DEV_INIT(name, d) alt_dev_reg (&d.dev) + +#else /* !ALTERA_AVALON_JTAG_UART_SMALL */ + +extern int altera_avalon_jtag_uart_close_fd(alt_fd* fd); +extern int altera_avalon_jtag_uart_ioctl_fd (alt_fd* fd, int req, void* arg); + +#define ALTERA_AVALON_JTAG_UART_DEV_INSTANCE(name, d) \ + static altera_avalon_jtag_uart_dev d = \ + { \ + { \ + ALT_LLIST_ENTRY, \ + name##_NAME, \ + NULL, /* open */ \ + altera_avalon_jtag_uart_close_fd, \ + altera_avalon_jtag_uart_read_fd, \ + altera_avalon_jtag_uart_write_fd, \ + NULL, /* lseek */ \ + NULL, /* fstat */ \ + altera_avalon_jtag_uart_ioctl_fd, \ + }, \ + { \ + name##_BASE, \ + ALTERA_AVALON_JTAG_UART_DEFAULT_TIMEOUT, \ + } \ + } + +#define ALTERA_AVALON_JTAG_UART_DEV_INIT(name, d) \ + { \ + ALTERA_AVALON_JTAG_UART_STATE_INIT(name, d.state); \ + \ + /* make the device available to the system */ \ + alt_dev_reg(&d.dev); \ + } + +#endif /* ALTERA_AVALON_JTAG_UART_SMALL */ + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __ALT_AVALON_JTAG_UART_FD_H__ */ diff --git a/software/qsys_tutorial_lcd2_bsp/drivers/inc/altera_avalon_jtag_uart_regs.h b/software/qsys_tutorial_lcd2_bsp/drivers/inc/altera_avalon_jtag_uart_regs.h new file mode 100644 index 0000000..7f97160 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/drivers/inc/altera_avalon_jtag_uart_regs.h @@ -0,0 +1,73 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#ifndef __ALTERA_AVALON_JTAG_UART_REGS_H__ +#define __ALTERA_AVALON_JTAG_UART_REGS_H__ + +#include + +#define ALTERA_AVALON_JTAG_UART_DATA_REG 0 +#define IOADDR_ALTERA_AVALON_JTAG_UART_DATA(base) \ + __IO_CALC_ADDRESS_NATIVE(base, ALTERA_AVALON_JTAG_UART_DATA_REG) +#define IORD_ALTERA_AVALON_JTAG_UART_DATA(base) \ + IORD(base, ALTERA_AVALON_JTAG_UART_DATA_REG) +#define IOWR_ALTERA_AVALON_JTAG_UART_DATA(base, data) \ + IOWR(base, ALTERA_AVALON_JTAG_UART_DATA_REG, data) + +#define ALTERA_AVALON_JTAG_UART_DATA_DATA_MSK (0x000000FF) +#define ALTERA_AVALON_JTAG_UART_DATA_DATA_OFST (0) +#define ALTERA_AVALON_JTAG_UART_DATA_RVALID_MSK (0x00008000) +#define ALTERA_AVALON_JTAG_UART_DATA_RVALID_OFST (15) +#define ALTERA_AVALON_JTAG_UART_DATA_RAVAIL_MSK (0xFFFF0000) +#define ALTERA_AVALON_JTAG_UART_DATA_RAVAIL_OFST (16) + + +#define ALTERA_AVALON_JTAG_UART_CONTROL_REG 1 +#define IOADDR_ALTERA_AVALON_JTAG_UART_CONTROL(base) \ + __IO_CALC_ADDRESS_NATIVE(base, ALTERA_AVALON_JTAG_UART_CONTROL_REG) +#define IORD_ALTERA_AVALON_JTAG_UART_CONTROL(base) \ + IORD(base, ALTERA_AVALON_JTAG_UART_CONTROL_REG) +#define IOWR_ALTERA_AVALON_JTAG_UART_CONTROL(base, data) \ + IOWR(base, ALTERA_AVALON_JTAG_UART_CONTROL_REG, data) + +#define ALTERA_AVALON_JTAG_UART_CONTROL_RE_MSK (0x00000001) +#define ALTERA_AVALON_JTAG_UART_CONTROL_RE_OFST (0) +#define ALTERA_AVALON_JTAG_UART_CONTROL_WE_MSK (0x00000002) +#define ALTERA_AVALON_JTAG_UART_CONTROL_WE_OFST (1) +#define ALTERA_AVALON_JTAG_UART_CONTROL_RI_MSK (0x00000100) +#define ALTERA_AVALON_JTAG_UART_CONTROL_RI_OFST (8) +#define ALTERA_AVALON_JTAG_UART_CONTROL_WI_MSK (0x00000200) +#define ALTERA_AVALON_JTAG_UART_CONTROL_WI_OFST (9) +#define ALTERA_AVALON_JTAG_UART_CONTROL_AC_MSK (0x00000400) +#define ALTERA_AVALON_JTAG_UART_CONTROL_AC_OFST (10) +#define ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_MSK (0xFFFF0000) +#define ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_OFST (16) + +#endif /* __ALTERA_AVALON_JTAG_UART_REGS_H__ */ diff --git a/software/qsys_tutorial_lcd2_bsp/drivers/inc/altera_avalon_lcd_16207.h b/software/qsys_tutorial_lcd2_bsp/drivers/inc/altera_avalon_lcd_16207.h new file mode 100644 index 0000000..2024b9a --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/drivers/inc/altera_avalon_lcd_16207.h @@ -0,0 +1,158 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#ifndef __ALTERA_AVALON_LCD_16207_H__ +#define __ALTERA_AVALON_LCD_16207_H__ + +#include + +#include "sys/alt_alarm.h" +#include "os/alt_sem.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * The altera_avalon_lcd_16207_dev structure is used to hold device specific + * data. This includes the transmit and receive buffers. + * + * An instance of this structure is created in the auto-generated + * alt_sys_init.c file for each UART listed in the systems PTF file. This is + * done using the ALTERA_AVALON_LCD_16207_STATE_INSTANCE macro given below. + */ + +#define ALT_LCD_HEIGHT 2 +#define ALT_LCD_WIDTH 16 +#define ALT_LCD_VIRTUAL_WIDTH 80 + +typedef struct altera_avalon_lcd_16207_state_s +{ + int base; + + alt_alarm alarm; + int period; + + char broken; + + unsigned char x; + unsigned char y; + char address; + char esccount; + + char scrollpos; + char scrollmax; + char active; /* If non-zero then the foreground routines are + * active so the timer call must not update the + * display. */ + + char escape[8]; + + struct + { + char visible[ALT_LCD_WIDTH]; + char data[ALT_LCD_VIRTUAL_WIDTH+1]; + char width; + unsigned char speed; + + } line[ALT_LCD_HEIGHT]; + + ALT_SEM (write_lock)/* Semaphore used to control access to the + * write buffer in multi-threaded mode */ +} altera_avalon_lcd_16207_state; + +/* + * Called by alt_sys_init.c to initialize the driver. + */ +extern void altera_avalon_lcd_16207_init(altera_avalon_lcd_16207_state* sp); + +/* + * The LCD panel driver is not trivial, so leave it out in the small + * drivers case. Also leave it out in simulation because there is no + * simulated hardware for the LCD panel. These two can be overridden + * by defining ALT_USE_LCE_16207 if you really want it. + */ + +#if (!defined(ALT_USE_SMALL_DRIVERS) && !defined(ALT_SIM_OPTIMIZE)) || defined ALT_USE_LCD_16207 + +/* + * Used by the auto-generated file + * alt_sys_init.c to create an instance of this device driver. + */ +#define ALTERA_AVALON_LCD_16207_STATE_INSTANCE(name, state) \ + altera_avalon_lcd_16207_state state = \ + { \ + name##_BASE \ + } + +/* + * The macro ALTERA_AVALON_LCD_16207_INIT is used by the auto-generated file + * alt_sys_init.c to initialize an instance of the device driver. + */ +#define ALTERA_AVALON_LCD_16207_STATE_INIT(name, state) \ + altera_avalon_lcd_16207_init(&state) + +#else /* exclude driver */ + +#define ALTERA_AVALON_LCD_16207_STATE_INSTANCE(name, state) extern int alt_no_storage +#define ALTERA_AVALON_LCD_16207_STATE_INIT(name, state) while (0) + +#endif /* exclude driver */ + +/* + * Include in case non-direct version of driver required. + */ +#include "altera_avalon_lcd_16207_fd.h" + +/* + * Map alt_sys_init macros to direct or non-direct versions. + */ +#ifdef ALT_USE_DIRECT_DRIVERS + +#define ALTERA_AVALON_LCD_16207_INSTANCE(name, state) \ + ALTERA_AVALON_LCD_16207_STATE_INSTANCE(name, state) +#define ALTERA_AVALON_LCD_16207_INIT(name, state) \ + ALTERA_AVALON_LCD_16207_STATE_INIT(name, state) + +#else /* !ALT_USE_DIRECT_DRIVERS */ + +#define ALTERA_AVALON_LCD_16207_INSTANCE(name, dev) \ + ALTERA_AVALON_LCD_16207_DEV_INSTANCE(name, dev) +#define ALTERA_AVALON_LCD_16207_INIT(name, dev) \ + ALTERA_AVALON_LCD_16207_DEV_INIT(name, dev) + +#endif /* ALT_USE_DIRECT_DRIVERS */ + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __ALTERA_AVALON_LCD_16207_H__ */ diff --git a/software/qsys_tutorial_lcd2_bsp/drivers/inc/altera_avalon_lcd_16207_fd.h b/software/qsys_tutorial_lcd2_bsp/drivers/inc/altera_avalon_lcd_16207_fd.h new file mode 100644 index 0000000..370927b --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/drivers/inc/altera_avalon_lcd_16207_fd.h @@ -0,0 +1,108 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#ifndef __ALTERA_AVALON_LCD_16207_FD_H__ +#define __ALTERA_AVALON_LCD_16207_FD_H__ + +#include "sys/alt_dev.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * Externally referenced routines + */ +extern int altera_avalon_lcd_16207_write_fd(alt_fd* fd, const char* ptr, + int len); + +/* + * Device structure definition. This is needed by alt_sys_init in order to + * reserve memory for the device instance. + */ + +typedef struct altera_avalon_lcd_16207_dev_s +{ + alt_dev dev; + altera_avalon_lcd_16207_state state; +} altera_avalon_lcd_16207_dev; + +/* + * The LCD panel driver is not trivial, so leave it out in the small + * drivers case. Also leave it out in simulation because there is no + * simulated hardware for the LCD panel. These two can be overridden + * by defining ALT_USE_LCE_16207 if you really want it. + */ + +#if (!defined(ALT_USE_SMALL_DRIVERS) && !defined(ALT_SIM_OPTIMIZE)) || defined ALT_USE_LCD_16207 + +/* + * Macros used by alt_sys_init when the ALT file descriptor facility is used. + */ +#define ALTERA_AVALON_LCD_16207_DEV_INSTANCE(name, d) \ + static altera_avalon_lcd_16207_dev d = \ + { \ + { \ + ALT_LLIST_ENTRY, \ + name##_NAME, \ + NULL, /* open */ \ + NULL, /* close */ \ + NULL, /* read */ \ + altera_avalon_lcd_16207_write_fd, \ + NULL, /* lseek */ \ + NULL, /* fstat */ \ + NULL, /* ioctl */ \ + }, \ + { \ + name##_BASE \ + }, \ + } + +#define ALTERA_AVALON_LCD_16207_DEV_INIT(name, d) \ + { \ + ALTERA_AVALON_LCD_16207_STATE_INIT(name, d.state); \ + \ + /* make the device available to the system */ \ + alt_dev_reg(&d.dev); \ + } + +#else /* exclude driver */ + +#define ALTERA_AVALON_LCD_16207_DEV_INSTANCE(name, d) extern int alt_no_storage +#define ALTERA_AVALON_LCD_16207_DEV_INIT(name, d) while (0) + +#endif + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __ALTERA_AVALON_LCD_16207_FD_H__ */ diff --git a/software/qsys_tutorial_lcd2_bsp/drivers/inc/altera_avalon_lcd_16207_regs.h b/software/qsys_tutorial_lcd2_bsp/drivers/inc/altera_avalon_lcd_16207_regs.h new file mode 100644 index 0000000..79e29a6 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/drivers/inc/altera_avalon_lcd_16207_regs.h @@ -0,0 +1,83 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#ifndef __ALTERA_AVALON_LCD_16207_REGS_H__ +#define __ALTERA_AVALON_LCD_16207_REGS_H__ + +/* +/////////////////////////////////////////////////////////////////////////// +// +// ALTERA_AVALON_LCD_16207 PERIPHERAL +// +// Provides a hardware interface that allows software to +// access the two (2) internal 8-bit registers in an Optrex +// model 16207 (or equivalent) character LCD display (the kind +// shipped with the Nios Development Kit, 2 rows x 16 columns). +// +// Because the interface to the LCD module is "not quite Avalon," +// the hardware in this module ends-up mapping the module's +// two physical read-write registers into four Avalon-visible +// registers: Two read-only registers and two write-only registers. +// A picture is worth a thousand words: +// +// THE REGISTER MAP +// +// 7 6 5 4 3 2 1 0 Offset +// +-----+-----+-----+-----+-----+-----+-----+-----+ +// RS = 0 | Command Register (WRITE-Only) | 0 +// +-----+-----+-----+-----+-----+-----+-----+-----+ +// RS = 0 | Status Register (READ -Only) | 1 +// +-----+-----+-----+-----+-----+-----+-----+-----+ +// RS = 1 | Data Register (WRITE-Only) | 2 +// +-----+-----+-----+-----+-----+-----+-----+-----+ +// RS = 1 | Data Register (READ -Only) | 3 +// +-----+-----+-----+-----+-----+-----+-----+-----+ +// +/////////////////////////////////////////////////////////////////////////// +*/ + +#include + +#define IOADDR_ALTERA_AVALON_LCD_16207_COMMAND(base) __IO_CALC_ADDRESS_NATIVE(base, 0) +#define IOWR_ALTERA_AVALON_LCD_16207_COMMAND(base, data) IOWR(base, 0, data) + +#define IOADDR_ALTERA_AVALON_LCD_16207_STATUS(base) __IO_CALC_ADDRESS_NATIVE(base, 1) +#define IORD_ALTERA_AVALON_LCD_16207_STATUS(base) IORD(base, 1) + +#define ALTERA_AVALON_LCD_16207_STATUS_BUSY_MSK (0x00000080u) +#define ALTERA_AVALON_LCD_16207_STATUS_BUSY_OFST (7) + +#define IOADDR_ALTERA_AVALON_LCD_16207_DATA_WR(base) __IO_CALC_ADDRESS_NATIVE(base, 2) +#define IOWR_ALTERA_AVALON_LCD_16207_DATA(base, data) IOWR(base, 2, data) + +#define IOADDR_ALTERA_AVALON_LCD_16207_DATA_RD(base) __IO_CALC_ADDRESS_NATIVE(base, 3) +#define IORD_ALTERA_AVALON_LCD_16207_DATA(base) IORD(base, 3) + +#endif diff --git a/software/qsys_tutorial_lcd2_bsp/drivers/inc/altera_avalon_pio_regs.h b/software/qsys_tutorial_lcd2_bsp/drivers/inc/altera_avalon_pio_regs.h new file mode 100644 index 0000000..052439f --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/drivers/inc/altera_avalon_pio_regs.h @@ -0,0 +1,67 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#ifndef __ALTERA_AVALON_PIO_REGS_H__ +#define __ALTERA_AVALON_PIO_REGS_H__ + +#include + +#define IOADDR_ALTERA_AVALON_PIO_DATA(base) __IO_CALC_ADDRESS_NATIVE(base, 0) +#define IORD_ALTERA_AVALON_PIO_DATA(base) IORD(base, 0) +#define IOWR_ALTERA_AVALON_PIO_DATA(base, data) IOWR(base, 0, data) + +#define IOADDR_ALTERA_AVALON_PIO_DIRECTION(base) __IO_CALC_ADDRESS_NATIVE(base, 1) +#define IORD_ALTERA_AVALON_PIO_DIRECTION(base) IORD(base, 1) +#define IOWR_ALTERA_AVALON_PIO_DIRECTION(base, data) IOWR(base, 1, data) + +#define IOADDR_ALTERA_AVALON_PIO_IRQ_MASK(base) __IO_CALC_ADDRESS_NATIVE(base, 2) +#define IORD_ALTERA_AVALON_PIO_IRQ_MASK(base) IORD(base, 2) +#define IOWR_ALTERA_AVALON_PIO_IRQ_MASK(base, data) IOWR(base, 2, data) + +#define IOADDR_ALTERA_AVALON_PIO_EDGE_CAP(base) __IO_CALC_ADDRESS_NATIVE(base, 3) +#define IORD_ALTERA_AVALON_PIO_EDGE_CAP(base) IORD(base, 3) +#define IOWR_ALTERA_AVALON_PIO_EDGE_CAP(base, data) IOWR(base, 3, data) + + +#define IOADDR_ALTERA_AVALON_PIO_SET_BIT(base) __IO_CALC_ADDRESS_NATIVE(base, 4) +#define IORD_ALTERA_AVALON_PIO_SET_BITS(base) IORD(base, 4) +#define IOWR_ALTERA_AVALON_PIO_SET_BITS(base, data) IOWR(base, 4, data) + +#define IOADDR_ALTERA_AVALON_PIO_CLEAR_BITS(base) __IO_CALC_ADDRESS_NATIVE(base, 5) +#define IORD_ALTERA_AVALON_PIO_CLEAR_BITS(base) IORD(base, 5) +#define IOWR_ALTERA_AVALON_PIO_CLEAR_BITS(base, data) IOWR(base, 5, data) + + + +/* Defintions for direction-register operation with bi-directional PIOs */ +#define ALTERA_AVALON_PIO_DIRECTION_INPUT 0 +#define ALTERA_AVALON_PIO_DIRECTION_OUTPUT 1 + +#endif /* __ALTERA_AVALON_PIO_REGS_H__ */ diff --git a/software/qsys_tutorial_lcd2_bsp/drivers/src/altera_avalon_jtag_uart_fd.c b/software/qsys_tutorial_lcd2_bsp/drivers/src/altera_avalon_jtag_uart_fd.c new file mode 100644 index 0000000..53dfc3b --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/drivers/src/altera_avalon_jtag_uart_fd.c @@ -0,0 +1,86 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2007 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "alt_types.h" +#include "sys/alt_dev.h" +#include "altera_avalon_jtag_uart.h" + +extern int altera_avalon_jtag_uart_read(altera_avalon_jtag_uart_state* sp, + char* buffer, int space, int flags); +extern int altera_avalon_jtag_uart_write(altera_avalon_jtag_uart_state* sp, + const char* ptr, int count, int flags); +extern int altera_avalon_jtag_uart_ioctl(altera_avalon_jtag_uart_state* sp, + int req, void* arg); +extern int altera_avalon_jtag_uart_close(altera_avalon_jtag_uart_state* sp, + int flags); + +/* ----------------------------------------------------------------------- */ +/* --------------------- WRAPPERS FOR ALT FD SUPPORT --------------------- */ +/* + * + */ + +int +altera_avalon_jtag_uart_read_fd(alt_fd* fd, char* buffer, int space) +{ + altera_avalon_jtag_uart_dev* dev = (altera_avalon_jtag_uart_dev*) fd->dev; + + return altera_avalon_jtag_uart_read(&dev->state, buffer, space, + fd->fd_flags); +} + +int +altera_avalon_jtag_uart_write_fd(alt_fd* fd, const char* buffer, int space) +{ + altera_avalon_jtag_uart_dev* dev = (altera_avalon_jtag_uart_dev*) fd->dev; + + return altera_avalon_jtag_uart_write(&dev->state, buffer, space, + fd->fd_flags); +} + +#ifndef ALTERA_AVALON_JTAG_UART_SMALL + +int +altera_avalon_jtag_uart_close_fd(alt_fd* fd) +{ + altera_avalon_jtag_uart_dev* dev = (altera_avalon_jtag_uart_dev*) fd->dev; + + return altera_avalon_jtag_uart_close(&dev->state, fd->fd_flags); +} + +int +altera_avalon_jtag_uart_ioctl_fd(alt_fd* fd, int req, void* arg) +{ + altera_avalon_jtag_uart_dev* dev = (altera_avalon_jtag_uart_dev*) fd->dev; + + return altera_avalon_jtag_uart_ioctl(&dev->state, req, arg); +} + +#endif /* ALTERA_AVALON_JTAG_UART_SMALL */ diff --git a/software/qsys_tutorial_lcd2_bsp/drivers/src/altera_avalon_jtag_uart_init.c b/software/qsys_tutorial_lcd2_bsp/drivers/src/altera_avalon_jtag_uart_init.c new file mode 100644 index 0000000..7317bec --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/drivers/src/altera_avalon_jtag_uart_init.c @@ -0,0 +1,256 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2007 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include +#include +#include +#include + +#include + +#include "sys/alt_irq.h" +#include "sys/alt_alarm.h" +#include "sys/ioctl.h" +#include "alt_types.h" + +#include "altera_avalon_jtag_uart_regs.h" +#include "altera_avalon_jtag_uart.h" + +#include "sys/alt_log_printf.h" + +#ifndef ALTERA_AVALON_JTAG_UART_SMALL + +/* ----------------------------------------------------------- */ +/* ------------------------- FAST DRIVER --------------------- */ +/* ----------------------------------------------------------- */ +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT +static void altera_avalon_jtag_uart_irq(void* context); +#else +static void altera_avalon_jtag_uart_irq(void* context, alt_u32 id); +#endif +static alt_u32 altera_avalon_jtag_uart_timeout(void* context); + +/* + * Driver initialization code. Register interrupts and start a timer + * which we can use to check whether the host is there. + * Return 1 on sucessful IRQ register and 0 on failure. + */ + +void altera_avalon_jtag_uart_init(altera_avalon_jtag_uart_state* sp, + int irq_controller_id, int irq) +{ + ALT_FLAG_CREATE(&sp->events, 0); + ALT_SEM_CREATE(&sp->read_lock, 1); + ALT_SEM_CREATE(&sp->write_lock, 1); + + /* enable read interrupts at the device */ + sp->irq_enable = ALTERA_AVALON_JTAG_UART_CONTROL_RE_MSK; + + IOWR_ALTERA_AVALON_JTAG_UART_CONTROL(sp->base, sp->irq_enable); + + /* register the interrupt handler */ +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT + alt_ic_isr_register(irq_controller_id, irq, altera_avalon_jtag_uart_irq, + sp, NULL); +#else + alt_irq_register(irq, sp, altera_avalon_jtag_uart_irq); +#endif + + /* Register an alarm to go off every second to check for presence of host */ + sp->host_inactive = 0; + + if (alt_alarm_start(&sp->alarm, alt_ticks_per_second(), + &altera_avalon_jtag_uart_timeout, sp) < 0) + { + /* If we can't set the alarm then record "don't know if host present" + * and behave as though the host is present. + */ + sp->timeout = INT_MAX; + } + + /* ALT_LOG - see altera_hal/HAL/inc/sys/alt_log_printf.h */ + ALT_LOG_JTAG_UART_ALARM_REGISTER(sp, sp->base); +} + +/* + * Interrupt routine + */ +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT +static void altera_avalon_jtag_uart_irq(void* context) +#else +static void altera_avalon_jtag_uart_irq(void* context, alt_u32 id) +#endif +{ + altera_avalon_jtag_uart_state* sp = (altera_avalon_jtag_uart_state*) context; + unsigned int base = sp->base; + + /* ALT_LOG - see altera_hal/HAL/inc/sys/alt_log_printf.h */ + ALT_LOG_JTAG_UART_ISR_FUNCTION(base, sp); + + for ( ; ; ) + { + unsigned int control = IORD_ALTERA_AVALON_JTAG_UART_CONTROL(base); + + /* Return once nothing more to do */ + if ((control & (ALTERA_AVALON_JTAG_UART_CONTROL_RI_MSK | ALTERA_AVALON_JTAG_UART_CONTROL_WI_MSK)) == 0) + break; + + if (control & ALTERA_AVALON_JTAG_UART_CONTROL_RI_MSK) + { + /* process a read irq. Start by assuming that there is data in the + * receive FIFO (otherwise why would we have been interrupted?) + */ + unsigned int data = 1 << ALTERA_AVALON_JTAG_UART_DATA_RAVAIL_OFST; + + for ( ; ; ) + { + /* Check whether there is space in the buffer. If not then we must not + * read any characters from the buffer as they will be lost. + */ + unsigned int next = (sp->rx_in + 1) % ALTERA_AVALON_JTAG_UART_BUF_LEN; + if (next == sp->rx_out) + break; + + /* Try to remove a character from the FIFO and find out whether there + * are any more characters remaining. + */ + data = IORD_ALTERA_AVALON_JTAG_UART_DATA(base); + + if ((data & ALTERA_AVALON_JTAG_UART_DATA_RVALID_MSK) == 0) + break; + + sp->rx_buf[sp->rx_in] = (data & ALTERA_AVALON_JTAG_UART_DATA_DATA_MSK) >> ALTERA_AVALON_JTAG_UART_DATA_DATA_OFST; + sp->rx_in = (sp->rx_in + 1) % ALTERA_AVALON_JTAG_UART_BUF_LEN; + + /* Post an event to notify jtag_uart_read that a character has been read */ + ALT_FLAG_POST (sp->events, ALT_JTAG_UART_READ_RDY, OS_FLAG_SET); + } + + if (data & ALTERA_AVALON_JTAG_UART_DATA_RAVAIL_MSK) + { + /* If there is still data available here then the buffer is full + * so turn off receive interrupts until some space becomes available. + */ + sp->irq_enable &= ~ALTERA_AVALON_JTAG_UART_CONTROL_RE_MSK; + IOWR_ALTERA_AVALON_JTAG_UART_CONTROL(base, sp->irq_enable); + + /* Dummy read to ensure IRQ is cleared prior to ISR completion */ + IORD_ALTERA_AVALON_JTAG_UART_CONTROL(base); + } + } + + if (control & ALTERA_AVALON_JTAG_UART_CONTROL_WI_MSK) + { + /* process a write irq */ + unsigned int space = (control & ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_MSK) >> ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_OFST; + + while (space > 0 && sp->tx_out != sp->tx_in) + { + IOWR_ALTERA_AVALON_JTAG_UART_DATA(base, sp->tx_buf[sp->tx_out]); + + sp->tx_out = (sp->tx_out + 1) % ALTERA_AVALON_JTAG_UART_BUF_LEN; + + /* Post an event to notify jtag_uart_write that a character has been written */ + ALT_FLAG_POST (sp->events, ALT_JTAG_UART_WRITE_RDY, OS_FLAG_SET); + + space--; + } + + if (space > 0) + { + /* If we don't have any more data available then turn off the TX interrupt */ + sp->irq_enable &= ~ALTERA_AVALON_JTAG_UART_CONTROL_WE_MSK; + IOWR_ALTERA_AVALON_JTAG_UART_CONTROL(sp->base, sp->irq_enable); + + /* Dummy read to ensure IRQ is cleared prior to ISR completion */ + IORD_ALTERA_AVALON_JTAG_UART_CONTROL(base); + } + } + } +} + +/* + * Timeout routine is called every second + */ + +static alt_u32 +altera_avalon_jtag_uart_timeout(void* context) +{ + altera_avalon_jtag_uart_state* sp = (altera_avalon_jtag_uart_state *) context; + + unsigned int control = IORD_ALTERA_AVALON_JTAG_UART_CONTROL(sp->base); + + if (control & ALTERA_AVALON_JTAG_UART_CONTROL_AC_MSK) + { + IOWR_ALTERA_AVALON_JTAG_UART_CONTROL(sp->base, sp->irq_enable | ALTERA_AVALON_JTAG_UART_CONTROL_AC_MSK); + sp->host_inactive = 0; + } + else if (sp->host_inactive < INT_MAX - 2) { + sp->host_inactive++; + + if (sp->host_inactive >= sp->timeout) { + /* Post an event to indicate host is inactive (for jtag_uart_read */ + ALT_FLAG_POST (sp->events, ALT_JTAG_UART_TIMEOUT, OS_FLAG_SET); + } + } + + return alt_ticks_per_second(); +} + +/* + * The close() routine is implemented to drain the JTAG UART transmit buffer + * when not in "small" mode. This routine will wait for transimt data to be + * emptied unless a timeout from host-activity occurs. If the driver flags + * have been set to non-blocking mode, this routine will exit immediately if + * any data remains. This routine should be called indirectly (i.e. though + * the C library close() routine) so that the file descriptor associated + * with the relevant stream (i.e. stdout) can be closed as well. This routine + * does not manage file descriptors. + * + * The close routine is not implemented for the small driver; instead it will + * map to null. This is because the small driver simply waits while characters + * are transmitted; there is no interrupt-serviced buffer to empty + */ +int altera_avalon_jtag_uart_close(altera_avalon_jtag_uart_state* sp, int flags) +{ + /* + * Wait for all transmit data to be emptied by the JTAG UART ISR, or + * for a host-inactivity timeout, in which case transmit data will be lost + */ + while ( (sp->tx_out != sp->tx_in) && (sp->host_inactive < sp->timeout) ) { + if (flags & O_NONBLOCK) { + return -EWOULDBLOCK; + } + } + + return 0; +} + +#endif /* !ALTERA_AVALON_JTAG_UART_SMALL */ diff --git a/software/qsys_tutorial_lcd2_bsp/drivers/src/altera_avalon_jtag_uart_ioctl.c b/software/qsys_tutorial_lcd2_bsp/drivers/src/altera_avalon_jtag_uart_ioctl.c new file mode 100644 index 0000000..cf71e6f --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/drivers/src/altera_avalon_jtag_uart_ioctl.c @@ -0,0 +1,86 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include +#include +#include +#include + +#include + +#include "sys/ioctl.h" +#include "alt_types.h" + +#include "altera_avalon_jtag_uart_regs.h" +#include "altera_avalon_jtag_uart.h" + +#include "sys/alt_log_printf.h" + +#ifndef ALTERA_AVALON_JTAG_UART_SMALL + +/* ----------------------------------------------------------- */ +/* ------------------------- FAST DRIVER --------------------- */ +/* ----------------------------------------------------------- */ + +int +altera_avalon_jtag_uart_ioctl(altera_avalon_jtag_uart_state* sp, int req, + void* arg) +{ + int rc = -ENOTTY; + + switch (req) + { + case TIOCSTIMEOUT: + /* Set the time to wait until assuming host is not connected */ + if (sp->timeout != INT_MAX) + { + int timeout = *((int *)arg); + sp->timeout = (timeout >= 2 && timeout < INT_MAX) ? timeout : INT_MAX - 1; + rc = 0; + } + break; + + case TIOCGCONNECTED: + /* Find out whether host is connected */ + if (sp->timeout != INT_MAX) + { + *((int *)arg) = (sp->host_inactive < sp->timeout) ? 1 : 0; + rc = 0; + } + break; + + default: + break; + } + + return rc; +} + +#endif /* !ALTERA_AVALON_JTAG_UART_SMALL */ diff --git a/software/qsys_tutorial_lcd2_bsp/drivers/src/altera_avalon_jtag_uart_read.c b/software/qsys_tutorial_lcd2_bsp/drivers/src/altera_avalon_jtag_uart_read.c new file mode 100644 index 0000000..5657adb --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/drivers/src/altera_avalon_jtag_uart_read.c @@ -0,0 +1,205 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include +#include +#include +#include + +#include + +#include "sys/alt_irq.h" +#include "sys/alt_alarm.h" +#include "sys/ioctl.h" +#include "alt_types.h" + +#include "altera_avalon_jtag_uart_regs.h" +#include "altera_avalon_jtag_uart.h" + +#include "sys/alt_log_printf.h" + +#ifdef __ucosii__ +#include "includes.h" +#endif /* __ucosii__ */ + +#ifdef ALTERA_AVALON_JTAG_UART_SMALL + +/* ----------------------------------------------------------- */ +/* ----------------------- SMALL DRIVER ---------------------- */ +/* ----------------------------------------------------------- */ + +/* Read routine. The small version blocks until it has at least one byte + * available, it then returns as much as is immediately available without + * waiting any more. It's performance will be very poor without + * interrupts. + */ + +int +altera_avalon_jtag_uart_read(altera_avalon_jtag_uart_state* sp, + char* buffer, int space, int flags) +{ + unsigned int base = sp->base; + + char * ptr = buffer; + char * end = buffer + space; + + while (ptr < end) + { + unsigned int data = IORD_ALTERA_AVALON_JTAG_UART_DATA(base); + + if (data & ALTERA_AVALON_JTAG_UART_DATA_RVALID_MSK) + *ptr++ = (data & ALTERA_AVALON_JTAG_UART_DATA_DATA_MSK) >> ALTERA_AVALON_JTAG_UART_DATA_DATA_OFST; + else if (ptr != buffer) + break; + else if(flags & O_NONBLOCK) + break; + + } + + if (ptr != buffer) + return ptr - buffer; + else if (flags & O_NONBLOCK) + return -EWOULDBLOCK; + else + return -EIO; +} + +#else /* !ALTERA_AVALON_JTAG_UART_SMALL */ + +/* ----------------------------------------------------------- */ +/* ----------------------- FAST DRIVER ----------------------- */ +/* ----------------------------------------------------------- */ + +int +altera_avalon_jtag_uart_read(altera_avalon_jtag_uart_state* sp, + char * buffer, int space, int flags) +{ + char * ptr = buffer; + + alt_irq_context context; + unsigned int n; + + /* + * When running in a multi threaded environment, obtain the "read_lock" + * semaphore. This ensures that reading from the device is thread-safe. + */ + ALT_SEM_PEND (sp->read_lock, 0); + + while (space > 0) + { + unsigned int in, out; + + /* Read as much data as possible */ + do + { + in = sp->rx_in; + out = sp->rx_out; + + if (in >= out) + n = in - out; + else + n = ALTERA_AVALON_JTAG_UART_BUF_LEN - out; + + if (n == 0) + break; /* No more data available */ + + if (n > space) + n = space; + + memcpy(ptr, sp->rx_buf + out, n); + ptr += n; + space -= n; + + sp->rx_out = (out + n) % ALTERA_AVALON_JTAG_UART_BUF_LEN; + } + while (space > 0); + + /* If we read any data then return it */ + if (ptr != buffer) + break; + + /* If in non-blocking mode then return error */ + if (flags & O_NONBLOCK) + break; + +#ifdef __ucosii__ + /* OS Present: Pend on a flag if the OS is running, otherwise spin */ + if(OSRunning == OS_TRUE) { + /* + * When running in a multi-threaded mode, we pend on the read event + * flag set and timeout event flag set in the isr. This avoids wasting CPU + * cycles waiting in this thread, when we could be doing something more + * profitable elsewhere. + */ + ALT_FLAG_PEND (sp->events, + ALT_JTAG_UART_READ_RDY | ALT_JTAG_UART_TIMEOUT, + OS_FLAG_WAIT_SET_ANY + OS_FLAG_CONSUME, + 0); + } + else { + /* Spin until more data arrives or until host disconnects */ + while (in == sp->rx_in && sp->host_inactive < sp->timeout) + ; + } +#else + /* No OS: Always spin */ + while (in == sp->rx_in && sp->host_inactive < sp->timeout) + ; +#endif /* __ucosii__ */ + + if (in == sp->rx_in) + break; + } + + /* + * Now that access to the circular buffer is complete, release the read + * semaphore so that other threads can access the buffer. + */ + + ALT_SEM_POST (sp->read_lock); + + if (ptr != buffer) + { + /* If we read any data then there is space in the buffer so enable interrupts */ + context = alt_irq_disable_all(); + sp->irq_enable |= ALTERA_AVALON_JTAG_UART_CONTROL_RE_MSK; + IOWR_ALTERA_AVALON_JTAG_UART_CONTROL(sp->base, sp->irq_enable); + alt_irq_enable_all(context); + } + + if (ptr != buffer) + return ptr - buffer; + else if (flags & O_NONBLOCK) + return -EWOULDBLOCK; + else + return -EIO; +} + +#endif /* ALTERA_AVALON_JTAG_UART_SMALL */ diff --git a/software/qsys_tutorial_lcd2_bsp/drivers/src/altera_avalon_jtag_uart_write.c b/software/qsys_tutorial_lcd2_bsp/drivers/src/altera_avalon_jtag_uart_write.c new file mode 100644 index 0000000..11aeca1 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/drivers/src/altera_avalon_jtag_uart_write.c @@ -0,0 +1,217 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include +#include +#include +#include + +#include + +#include "sys/alt_irq.h" +#include "sys/alt_alarm.h" +#include "sys/ioctl.h" +#include "alt_types.h" + +#include "altera_avalon_jtag_uart_regs.h" +#include "altera_avalon_jtag_uart.h" + +#include "sys/alt_log_printf.h" + +#ifdef __ucosii__ +#include "includes.h" +#endif /* __ucosii__ */ + +#ifdef ALTERA_AVALON_JTAG_UART_SMALL + +/* ----------------------------------------------------------- */ +/* ------------------------ SMALL DRIVER --------------------- */ +/* ----------------------------------------------------------- */ + +/* Write routine. The small version blocks when there is no space to write + * into, so it's performance will be very bad if you are writing more than + * one FIFOs worth of data. But you said you didn't want to use interrupts :-) + */ + +int altera_avalon_jtag_uart_write(altera_avalon_jtag_uart_state* sp, + const char * ptr, int count, int flags) +{ + unsigned int base = sp->base; + + const char * end = ptr + count; + + while (ptr < end) + if ((IORD_ALTERA_AVALON_JTAG_UART_CONTROL(base) & ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_MSK) != 0) + IOWR_ALTERA_AVALON_JTAG_UART_DATA(base, *ptr++); + + return count; +} + +#else /* !ALTERA_AVALON_JTAG_UART_SMALL */ + +/* ----------------------------------------------------------- */ +/* ------------------------- FAST DRIVER --------------------- */ +/* ----------------------------------------------------------- */ + +int +altera_avalon_jtag_uart_write(altera_avalon_jtag_uart_state* sp, + const char * ptr, int count, int flags) +{ + /* Remove warning at optimisation level 03 by seting out to 0 */ + unsigned int in, out=0; + unsigned int n; + alt_irq_context context; + + const char * start = ptr; + + /* + * When running in a multi threaded environment, obtain the "write_lock" + * semaphore. This ensures that writing to the device is thread-safe. + */ + ALT_SEM_PEND (sp->write_lock, 0); + + do + { + /* Copy as much as we can into the transmit buffer */ + while (count > 0) + { + /* We need a stable value of the out pointer to calculate the space available */ + in = sp->tx_in; + out = sp->tx_out; + + if (in < out) + n = out - 1 - in; + else if (out > 0) + n = ALTERA_AVALON_JTAG_UART_BUF_LEN - in; + else + n = ALTERA_AVALON_JTAG_UART_BUF_LEN - 1 - in; + + if (n == 0) + break; + + if (n > count) + n = count; + + memcpy(sp->tx_buf + in, ptr, n); + ptr += n; + count -= n; + + sp->tx_in = (in + n) % ALTERA_AVALON_JTAG_UART_BUF_LEN; + } + + /* + * If interrupts are disabled then we could transmit here, we only need + * to enable interrupts if there is no space left in the FIFO + * + * For now kick the interrupt routine every time to make it transmit + * the data + */ + context = alt_irq_disable_all(); + sp->irq_enable |= ALTERA_AVALON_JTAG_UART_CONTROL_WE_MSK; + IOWR_ALTERA_AVALON_JTAG_UART_CONTROL(sp->base, sp->irq_enable); + alt_irq_enable_all(context); + + /* + * If there is any data left then either return now or block until + * some has been sent + */ + /* consider: test whether there is anything there while doing this and delay for at most 2s. */ + if (count > 0) + { + if (flags & O_NONBLOCK) + break; + +#ifdef __ucosii__ + /* OS Present: Pend on a flag if the OS is running, otherwise spin */ + if(OSRunning == OS_TRUE) { + /* + * When running in a multi-threaded mode, we pend on the write event + * flag set or the timeout flag in the isr. This avoids wasting CPU + * cycles waiting in this thread, when we could be doing something + * more profitable elsewhere. + */ +#ifdef ALTERA_AVALON_JTAG_UART_IGNORE_FIFO_FULL_ERROR + if(!sp->host_inactive) +#endif + ALT_FLAG_PEND (sp->events, + ALT_JTAG_UART_WRITE_RDY | ALT_JTAG_UART_TIMEOUT, + OS_FLAG_WAIT_SET_ANY + OS_FLAG_CONSUME, + 0); + } + else { + /* + * OS not running: Wait for data to be removed from buffer. + * Once the interrupt routine has removed some data then we + * will be able to insert some more. + */ + while (out == sp->tx_out && sp->host_inactive < sp->timeout) + ; + } +#else + /* + * No OS present: Always wait for data to be removed from buffer. Once + * the interrupt routine has removed some data then we will be able to + * insert some more. + */ + while (out == sp->tx_out && sp->host_inactive < sp->timeout) + ; +#endif /* __ucosii__ */ + + if (out == sp->tx_out) + break; + } + } + while (count > 0); + + /* + * Now that access to the circular buffer is complete, release the write + * semaphore so that other threads can access the buffer. + */ + ALT_SEM_POST (sp->write_lock); + + if (ptr != start) + return ptr - start; + else if (flags & O_NONBLOCK) + return -EWOULDBLOCK; +#ifdef ALTERA_AVALON_JTAG_UART_IGNORE_FIFO_FULL_ERROR + else if (sp->host_inactive >= sp->timeout) { + /* + * Reset the software FIFO, hardware FIFO could not be reset. + * Just throw away characters without reporting error. + */ + sp->tx_out = sp->tx_in = 0; + return ptr - start + count; + } +#endif + else + return -EIO; /* Host not connected */ +} + +#endif /* ALTERA_AVALON_JTAG_UART_SMALL */ diff --git a/software/qsys_tutorial_lcd2_bsp/drivers/src/altera_avalon_lcd_16207.c b/software/qsys_tutorial_lcd2_bsp/drivers/src/altera_avalon_lcd_16207.c new file mode 100644 index 0000000..1fefba3 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/drivers/src/altera_avalon_lcd_16207.c @@ -0,0 +1,605 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/* ===================================================================== */ + +/* + * This file provides the implementation of the functions used to drive a + * LCD panel. + * + * Characters written to the device will appear on the LCD panel as though + * it is a very small terminal. If the lines written to the terminal are + * longer than the number of characters on the terminal then it will scroll + * the lines of text automatically to display them all. + * + * If more lines are written than will fit on the terminal then it will scroll + * when characters are written to the line "below" the last displayed one - + * the cursor is allowed to sit below the visible area of the screen providing + * that this line is entirely blank. + * + * The following control sequences may be used to move around and do useful + * stuff: + * CR Moves back to the start of the current line + * LF Moves down a line and back to the start + * BS Moves back a character without erasing + * ESC Starts a VT100 style escape sequence + * + * The following escape sequences are recognised: + * ESC [ ; H Move to row and column specified (positions are + * counted from the top left which is 1;1) + * ESC [ K Clear from current position to end of line + * ESC [ 2 J Clear screen and go to top left + * + */ + +/* ===================================================================== */ + +#include +#include + +#include +#include +#include + +#include "sys/alt_alarm.h" + +#include "altera_avalon_lcd_16207_regs.h" +#include "altera_avalon_lcd_16207.h" + +/* --------------------------------------------------------------------- */ + +/* Commands which can be written to the COMMAND register */ + +enum /* Write to character RAM */ +{ + LCD_CMD_WRITE_DATA = 0x80 + /* Bits 6:0 hold character RAM address */ +}; + +enum /* Write to character generator RAM */ +{ + LCD_CMD_WRITE_CGR = 0x40 + /* Bits 5:0 hold character generator RAM address */ +}; + +enum /* Function Set command */ +{ + LCD_CMD_FUNCTION_SET = 0x20, + LCD_CMD_8BIT = 0x10, + LCD_CMD_TWO_LINE = 0x08, + LCD_CMD_BIGFONT = 0x04 +}; + +enum /* Shift command */ +{ + LCD_CMD_SHIFT = 0x10, + LCD_CMD_SHIFT_DISPLAY = 0x08, + LCD_CMD_SHIFT_RIGHT = 0x04 +}; + +enum /* On/Off command */ +{ + LCD_CMD_ONOFF = 0x08, + LCD_CMD_ENABLE_DISP = 0x04, + LCD_CMD_ENABLE_CURSOR = 0x02, + LCD_CMD_ENABLE_BLINK = 0x01 +}; + +enum /* Entry Mode command */ +{ + LCD_CMD_MODES = 0x04, + LCD_CMD_MODE_INC = 0x02, + LCD_CMD_MODE_SHIFT = 0x01 +}; + +enum /* Home command */ +{ + LCD_CMD_HOME = 0x02 +}; + +enum /* Clear command */ +{ + LCD_CMD_CLEAR = 0x01 +}; + +/* Where in LCD character space do the rows start */ +static char colstart[4] = { 0x00, 0x40, 0x20, 0x60 }; + +/* --------------------------------------------------------------------- */ + +static void lcd_write_command(altera_avalon_lcd_16207_state* sp, + unsigned char command) +{ + unsigned int base = sp->base; + + /* We impose a timeout on the driver in case the LCD panel isn't connected. + * The first time we call this function the timeout is approx 25ms + * (assuming 5 cycles per loop and a 200MHz clock). Obviously systems + * with slower clocks, or debug builds, or slower memory will take longer. + */ + int i = 1000000; + + /* Don't bother if the LCD panel didn't work before */ + if (sp->broken) + return; + + /* Wait until LCD isn't busy. */ + while (IORD_ALTERA_AVALON_LCD_16207_STATUS(base) & ALTERA_AVALON_LCD_16207_STATUS_BUSY_MSK) + if (--i == 0) + { + sp->broken = 1; + return; + } + + /* Despite what it says in the datasheet, the LCD isn't ready to accept + * a write immediately after it returns BUSY=0. Wait for 100us more. + */ + usleep(100); + + IOWR_ALTERA_AVALON_LCD_16207_COMMAND(base, command); +} + +/* --------------------------------------------------------------------- */ + +static void lcd_write_data(altera_avalon_lcd_16207_state* sp, + unsigned char data) +{ + unsigned int base = sp->base; + + /* We impose a timeout on the driver in case the LCD panel isn't connected. + * The first time we call this function the timeout is approx 25ms + * (assuming 5 cycles per loop and a 200MHz clock). Obviously systems + * with slower clocks, or debug builds, or slower memory will take longer. + */ + int i = 1000000; + + /* Don't bother if the LCD panel didn't work before */ + if (sp->broken) + return; + + /* Wait until LCD isn't busy. */ + while (IORD_ALTERA_AVALON_LCD_16207_STATUS(base) & ALTERA_AVALON_LCD_16207_STATUS_BUSY_MSK) + if (--i == 0) + { + sp->broken = 1; + return; + } + + /* Despite what it says in the datasheet, the LCD isn't ready to accept + * a write immediately after it returns BUSY=0. Wait for 100us more. + */ + usleep(100); + + IOWR_ALTERA_AVALON_LCD_16207_DATA(base, data); + + sp->address++; +} + +/* --------------------------------------------------------------------- */ + +static void lcd_clear_screen(altera_avalon_lcd_16207_state* sp) +{ + int y; + + lcd_write_command(sp, LCD_CMD_CLEAR); + + sp->x = 0; + sp->y = 0; + sp->address = 0; + + for (y = 0 ; y < ALT_LCD_HEIGHT ; y++) + { + memset(sp->line[y].data, ' ', sizeof(sp->line[0].data)); + memset(sp->line[y].visible, ' ', sizeof(sp->line[0].visible)); + sp->line[y].width = 0; + } +} + +/* --------------------------------------------------------------------- */ + +static void lcd_repaint_screen(altera_avalon_lcd_16207_state* sp) +{ + int y, x; + + /* scrollpos controls how much the lines have scrolled round. The speed + * each line scrolls at is controlled by its speed variable - while + * scrolline lines will wrap at the position set by width + */ + + int scrollpos = sp->scrollpos; + + for (y = 0 ; y < ALT_LCD_HEIGHT ; y++) + { + int width = sp->line[y].width; + int offset = (scrollpos * sp->line[y].speed) >> 8; + if (offset >= width) + offset = 0; + + for (x = 0 ; x < ALT_LCD_WIDTH ; x++) + { + char c = sp->line[y].data[(x + offset) % width]; + + /* Writing data takes 40us, so don't do it unless required */ + if (sp->line[y].visible[x] != c) + { + unsigned char address = x + colstart[y]; + + if (address != sp->address) + { + lcd_write_command(sp, LCD_CMD_WRITE_DATA | address); + sp->address = address; + } + + lcd_write_data(sp, c); + sp->line[y].visible[x] = c; + } + } + } +} + +/* --------------------------------------------------------------------- */ + +static void lcd_scroll_up(altera_avalon_lcd_16207_state* sp) +{ + int y; + + for (y = 0 ; y < ALT_LCD_HEIGHT ; y++) + { + if (y < ALT_LCD_HEIGHT-1) + memcpy(sp->line[y].data, sp->line[y+1].data, ALT_LCD_VIRTUAL_WIDTH); + else + memset(sp->line[y].data, ' ', ALT_LCD_VIRTUAL_WIDTH); + } + + sp->y--; +} + +/* --------------------------------------------------------------------- */ + +static void lcd_handle_escape(altera_avalon_lcd_16207_state* sp, char c) +{ + int parm1 = 0, parm2 = 0; + + if (sp->escape[0] == '[') + { + char * ptr = sp->escape+1; + while (isdigit(*ptr)) + parm1 = (parm1 * 10) + (*ptr++ - '0'); + + if (*ptr == ';') + { + ptr++; + while (isdigit(*ptr)) + parm2 = (parm2 * 10) + (*ptr++ - '0'); + } + } + else + parm1 = -1; + + switch (c) + { + case 'H': /* ESC '[' ';' 'H' : Move cursor to location */ + case 'f': /* Same as above */ + if (parm2 > 0) + sp->x = parm2 - 1; + if (parm1 > 0) + { + sp->y = parm1 - 1; + if (sp->y > ALT_LCD_HEIGHT * 2) + sp->y = ALT_LCD_HEIGHT * 2; + while (sp->y > ALT_LCD_HEIGHT) + lcd_scroll_up(sp); + } + break; + + case 'J': + /* ESC J is clear to beginning of line [unimplemented] + * ESC [ 0 J is clear to bottom of screen [unimplemented] + * ESC [ 1 J is clear to beginning of screen [unimplemented] + * ESC [ 2 J is clear screen + */ + if (parm1 == 2) + lcd_clear_screen(sp); + break; + + case 'K': + /* ESC K is clear to end of line + * ESC [ 0 K is clear to end of line + * ESC [ 1 K is clear to beginning of line [unimplemented] + * ESC [ 2 K is clear line [unimplemented] + */ + if (parm1 < 1) + { + if (sp->x < ALT_LCD_VIRTUAL_WIDTH) + memset(sp->line[sp->y].data + sp->x, ' ', ALT_LCD_VIRTUAL_WIDTH - sp->x); + } + break; + } +} + +/* --------------------------------------------------------------------- */ + +int altera_avalon_lcd_16207_write(altera_avalon_lcd_16207_state* sp, + const char* ptr, int len, int flags) +{ + const char* end = ptr + len; + + int y; + int widthmax; + + /* When running in a multi threaded environment, obtain the "write_lock" + * semaphore. This ensures that writing to the device is thread-safe. + */ + + ALT_SEM_PEND (sp->write_lock, 0); + + /* Tell the routine which is called off the timer interrupt that the + * foreground routines are active so it must not repaint the display. */ + sp->active = 1; + + for ( ; ptr < end ; ptr++) + { + char c = *ptr; + + if (sp->esccount >= 0) + { + unsigned int esccount = sp->esccount; + + /* Single character escape sequences can end with any character + * Multi character escape sequences start with '[' and contain + * digits and semicolons before terminating + */ + if ((esccount == 0 && c != '[') || + (esccount > 0 && !isdigit(c) && c != ';')) + { + sp->escape[esccount] = 0; + + lcd_handle_escape(sp, c); + + sp->esccount = -1; + } + else if (sp->esccount < sizeof(sp->escape)-1) + { + sp->escape[esccount] = c; + sp->esccount++; + } + } + else if (c == 27) /* ESC */ + { + sp->esccount = 0; + } + else if (c == '\r') + { + sp->x = 0; + } + else if (c == '\n') + { + sp->x = 0; + sp->y++; + + /* Let the cursor sit at X=0, Y=HEIGHT without scrolling so the user + * can print two lines of data without losing one. + */ + if (sp->y > ALT_LCD_HEIGHT) + lcd_scroll_up(sp); + } + else if (c == '\b') + { + if (sp->x > 0) + sp->x--; + } + else if (isprint(c)) + { + /* If we didn't scroll on the last linefeed then we might need to do + * it now. */ + if (sp->y >= ALT_LCD_HEIGHT) + lcd_scroll_up(sp); + + if (sp->x < ALT_LCD_VIRTUAL_WIDTH) + sp->line[sp->y].data[sp->x] = c; + + sp->x++; + } + } + + /* Recalculate the scrolling parameters */ + widthmax = ALT_LCD_WIDTH; + for (y = 0 ; y < ALT_LCD_HEIGHT ; y++) + { + int width; + for (width = ALT_LCD_VIRTUAL_WIDTH ; width > 0 ; width--) + if (sp->line[y].data[width-1] != ' ') + break; + + /* The minimum width is the size of the LCD panel. If the real width + * is long enough to require scrolling then add an extra space so the + * end of the message doesn't run into the beginning of it. + */ + if (width <= ALT_LCD_WIDTH) + width = ALT_LCD_WIDTH; + else + width++; + + sp->line[y].width = width; + if (widthmax < width) + widthmax = width; + sp->line[y].speed = 0; /* By default lines don't scroll */ + } + + if (widthmax <= ALT_LCD_WIDTH) + sp->scrollmax = 0; + else + { + widthmax *= 2; + sp->scrollmax = widthmax; + + /* Now calculate how fast each of the other lines should go */ + for (y = 0 ; y < ALT_LCD_HEIGHT ; y++) + if (sp->line[y].width > ALT_LCD_WIDTH) + { + /* You have three options for how to make the display scroll, chosen + * using the preprocessor directives below + */ +#if 1 + /* This option makes all the lines scroll round at different speeds + * which are chosen so that all the scrolls finish at the same time. + */ + sp->line[y].speed = 256 * sp->line[y].width / widthmax; +#elif 1 + /* This option pads the shorter lines with spaces so that they all + * scroll together. + */ + sp->line[y].width = widthmax / 2; + sp->line[y].speed = 256/2; +#else + /* This option makes the shorter lines stop after they have rotated + * and waits for the longer lines to catch up + */ + sp->line[y].speed = 256/2; +#endif + } + } + + /* Repaint once, then check whether there has been a missed repaint + * (because active was set when the timer interrupt occurred). If there + * has been a missed repaint then paint again. And again. etc. + */ + for ( ; ; ) + { + int old_scrollpos = sp->scrollpos; + + lcd_repaint_screen(sp); + + /* Let the timer routines repaint the display again */ + sp->active = 0; + + /* Have the timer routines tried to scroll while we were painting? + * If not then we can exit */ + if (sp->scrollpos == old_scrollpos) + break; + + /* We need to repaint again since the display scrolled while we were + * painting last time */ + sp->active = 1; + } + + /* Now that access to the display is complete, release the write + * semaphore so that other threads can access the buffer. + */ + + ALT_SEM_POST (sp->write_lock); + + return len; +} + +/* --------------------------------------------------------------------- */ + +/* This should be in a top level header file really */ +#define container_of(ptr, type, member) ((type *)((char *)ptr - offsetof(type, member))) + +/* + * Timeout routine is called every second + */ + +static alt_u32 alt_lcd_16207_timeout(void* context) +{ + altera_avalon_lcd_16207_state* sp = (altera_avalon_lcd_16207_state*)context; + + /* Update the scrolling position */ + if (sp->scrollpos + 1 >= sp->scrollmax) + sp->scrollpos = 0; + else + sp->scrollpos = sp->scrollpos + 1; + + /* Repaint the panel unless the foreground will do it again soon */ + if (sp->scrollmax > 0 && !sp->active) + lcd_repaint_screen(sp); + + return sp->period; +} + +/* --------------------------------------------------------------------- */ + +/* + * Called at boot time to initialise the LCD driver + */ +void altera_avalon_lcd_16207_init(altera_avalon_lcd_16207_state* sp) +{ + unsigned int base = sp->base; + + /* Mark the device as functional */ + sp->broken = 0; + + ALT_SEM_CREATE (&sp->write_lock, 1); + + /* The initialisation sequence below is copied from the datasheet for + * the 16207 LCD display. The first commands need to be timed because + * the BUSY bit in the status register doesn't work until the display + * has been reset three times. + */ + + /* Wait for 15 ms then reset */ + usleep(15000); + IOWR_ALTERA_AVALON_LCD_16207_COMMAND(base, LCD_CMD_FUNCTION_SET | LCD_CMD_8BIT); + + /* Wait for another 4.1ms and reset again */ + usleep(4100); + IOWR_ALTERA_AVALON_LCD_16207_COMMAND(base, LCD_CMD_FUNCTION_SET | LCD_CMD_8BIT); + + /* Wait a further 1 ms and reset a third time */ + usleep(1000); + IOWR_ALTERA_AVALON_LCD_16207_COMMAND(base, LCD_CMD_FUNCTION_SET | LCD_CMD_8BIT); + + /* Setup interface parameters: 8 bit bus, 2 rows, 5x7 font */ + lcd_write_command(sp, LCD_CMD_FUNCTION_SET | LCD_CMD_8BIT | LCD_CMD_TWO_LINE); + + /* Turn display off */ + lcd_write_command(sp, LCD_CMD_ONOFF); + + /* Clear display */ + lcd_clear_screen(sp); + + /* Set mode: increment after writing, don't shift display */ + lcd_write_command(sp, LCD_CMD_MODES | LCD_CMD_MODE_INC); + + /* Turn display on */ + lcd_write_command(sp, LCD_CMD_ONOFF | LCD_CMD_ENABLE_DISP); + + sp->esccount = -1; + memset(sp->escape, 0, sizeof(sp->escape)); + + sp->scrollpos = 0; + sp->scrollmax = 0; + sp->active = 0; + + sp->period = alt_ticks_per_second() / 10; /* Call every 100ms */ + + alt_alarm_start(&sp->alarm, sp->period, &alt_lcd_16207_timeout, sp); +} diff --git a/software/qsys_tutorial_lcd2_bsp/drivers/src/altera_avalon_lcd_16207_fd.c b/software/qsys_tutorial_lcd2_bsp/drivers/src/altera_avalon_lcd_16207_fd.c new file mode 100644 index 0000000..431b094 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/drivers/src/altera_avalon_lcd_16207_fd.c @@ -0,0 +1,45 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "alt_types.h" +#include "sys/alt_dev.h" +#include "altera_avalon_lcd_16207.h" + +extern int altera_avalon_lcd_16207_write(altera_avalon_lcd_16207_state* sp, + const char* ptr, int count, int flags); + +int +altera_avalon_lcd_16207_write_fd(alt_fd* fd, const char* buffer, int space) +{ + altera_avalon_lcd_16207_dev* dev = (altera_avalon_lcd_16207_dev*) fd->dev; + + return altera_avalon_lcd_16207_write(&dev->state, buffer, space, + fd->fd_flags); +} diff --git a/software/qsys_tutorial_lcd2_bsp/libhal_bsp.a b/software/qsys_tutorial_lcd2_bsp/libhal_bsp.a new file mode 100644 index 0000000..2603a54 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/libhal_bsp.a Binary files differ diff --git a/software/qsys_tutorial_lcd2_bsp/linker.h b/software/qsys_tutorial_lcd2_bsp/linker.h new file mode 100644 index 0000000..d45b2ad --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/linker.h @@ -0,0 +1,101 @@ +/* + * linker.h - Linker script mapping information + * + * Machine generated for CPU 'nios2_processor' in SOPC Builder design 'nios_system' + * SOPC Builder design path: C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.sopcinfo + * + * Generated: Fri Dec 02 00:00:37 JST 2016 + */ + +/* + * DO NOT MODIFY THIS FILE + * + * Changing this file will have subtle consequences + * which will almost certainly lead to a nonfunctioning + * system. If you do modify this file, be aware that your + * changes will be overwritten and lost when this file + * is generated again. + * + * DO NOT MODIFY THIS FILE + */ + +/* + * License Agreement + * + * Copyright (c) 2008 + * Altera Corporation, San Jose, California, USA. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + * This agreement shall be governed in all respects by the laws of the State + * of California and by the laws of the United States of America. + */ + +#ifndef __LINKER_H_ +#define __LINKER_H_ + + +/* + * BSP controls alt_load() behavior in crt0. + * + */ + +#define ALT_LOAD_EXPLICITLY_CONTROLLED + + +/* + * Base address and span (size in bytes) of each linker region + * + */ + +#define ONCHIP_MEMORY_REGION_BASE 0x20 +#define ONCHIP_MEMORY_REGION_SPAN 16352 +#define RESET_REGION_BASE 0x0 +#define RESET_REGION_SPAN 32 + + +/* + * Devices associated with code sections + * + */ + +#define ALT_EXCEPTIONS_DEVICE ONCHIP_MEMORY +#define ALT_RESET_DEVICE ONCHIP_MEMORY +#define ALT_RODATA_DEVICE ONCHIP_MEMORY +#define ALT_RWDATA_DEVICE ONCHIP_MEMORY +#define ALT_TEXT_DEVICE ONCHIP_MEMORY + + +/* + * Initialization code at the reset address is allowed (e.g. no external bootloader). + * + */ + +#define ALT_ALLOW_CODE_AT_RESET + + +/* + * The alt_load() facility is called from crt0 to copy sections into RAM. + * + */ + +#define ALT_LOAD_COPY_RWDATA + +#endif /* __LINKER_H_ */ diff --git a/software/qsys_tutorial_lcd2_bsp/linker.x b/software/qsys_tutorial_lcd2_bsp/linker.x new file mode 100644 index 0000000..e1671bb --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/linker.x @@ -0,0 +1,385 @@ +/* + * linker.x - Linker script + * + * Machine generated for CPU 'nios2_processor' in SOPC Builder design 'nios_system' + * SOPC Builder design path: C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.sopcinfo + * + * Generated: Fri Dec 02 00:00:37 JST 2016 + */ + +/* + * DO NOT MODIFY THIS FILE + * + * Changing this file will have subtle consequences + * which will almost certainly lead to a nonfunctioning + * system. If you do modify this file, be aware that your + * changes will be overwritten and lost when this file + * is generated again. + * + * DO NOT MODIFY THIS FILE + */ + +/* + * License Agreement + * + * Copyright (c) 2008 + * Altera Corporation, San Jose, California, USA. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + * This agreement shall be governed in all respects by the laws of the State + * of California and by the laws of the United States of America. + */ + +MEMORY +{ + reset : ORIGIN = 0x0, LENGTH = 32 + onchip_memory : ORIGIN = 0x20, LENGTH = 16352 +} + +/* Define symbols for each memory base-address */ +__alt_mem_onchip_memory = 0x0; + +OUTPUT_FORMAT( "elf32-littlenios2", + "elf32-littlenios2", + "elf32-littlenios2" ) +OUTPUT_ARCH( nios2 ) +ENTRY( _start ) + +/* + * The alt_load() facility is enabled. This typically happens when there isn't + * an external bootloader (e.g. flash bootloader). + * The LMA (aka physical address) of each loaded section is + * set to the .text memory device. + * The HAL alt_load() routine called from crt0 copies sections from + * the .text memory to RAM as needed. + */ + +SECTIONS +{ + + /* + * Output sections associated with reset and exceptions (they have to be first) + */ + + .entry : + { + KEEP (*(.entry)) + } > reset + + .exceptions : + { + PROVIDE (__ram_exceptions_start = ABSOLUTE(.)); + . = ALIGN(0x20); + KEEP (*(.irq)); + KEEP (*(.exceptions.entry.label)); + KEEP (*(.exceptions.entry.user)); + KEEP (*(.exceptions.entry)); + KEEP (*(.exceptions.irqtest.user)); + KEEP (*(.exceptions.irqtest)); + KEEP (*(.exceptions.irqhandler.user)); + KEEP (*(.exceptions.irqhandler)); + KEEP (*(.exceptions.irqreturn.user)); + KEEP (*(.exceptions.irqreturn)); + KEEP (*(.exceptions.notirq.label)); + KEEP (*(.exceptions.notirq.user)); + KEEP (*(.exceptions.notirq)); + KEEP (*(.exceptions.soft.user)); + KEEP (*(.exceptions.soft)); + KEEP (*(.exceptions.unknown.user)); + KEEP (*(.exceptions.unknown)); + KEEP (*(.exceptions.exit.label)); + KEEP (*(.exceptions.exit.user)); + KEEP (*(.exceptions.exit)); + KEEP (*(.exceptions)); + PROVIDE (__ram_exceptions_end = ABSOLUTE(.)); + } > onchip_memory + + PROVIDE (__flash_exceptions_start = LOADADDR(.exceptions)); + + .text : + { + /* + * All code sections are merged into the text output section, along with + * the read only data sections. + * + */ + + PROVIDE (stext = ABSOLUTE(.)); + + *(.interp) + *(.hash) + *(.dynsym) + *(.dynstr) + *(.gnu.version) + *(.gnu.version_d) + *(.gnu.version_r) + *(.rel.init) + *(.rela.init) + *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) + *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) + *(.rel.fini) + *(.rela.fini) + *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) + *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) + *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) + *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) + *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) + *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) + *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) + *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) + *(.rel.ctors) + *(.rela.ctors) + *(.rel.dtors) + *(.rela.dtors) + *(.rel.got) + *(.rela.got) + *(.rel.sdata .rel.sdata.* .rel.gnu.linkonce.s.*) + *(.rela.sdata .rela.sdata.* .rela.gnu.linkonce.s.*) + *(.rel.sbss .rel.sbss.* .rel.gnu.linkonce.sb.*) + *(.rela.sbss .rela.sbss.* .rela.gnu.linkonce.sb.*) + *(.rel.sdata2 .rel.sdata2.* .rel.gnu.linkonce.s2.*) + *(.rela.sdata2 .rela.sdata2.* .rela.gnu.linkonce.s2.*) + *(.rel.sbss2 .rel.sbss2.* .rel.gnu.linkonce.sb2.*) + *(.rela.sbss2 .rela.sbss2.* .rela.gnu.linkonce.sb2.*) + *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) + *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) + *(.rel.plt) + *(.rela.plt) + *(.rel.dyn) + + KEEP (*(.init)) + *(.plt) + *(.text .stub .text.* .gnu.linkonce.t.*) + + /* .gnu.warning sections are handled specially by elf32.em. */ + + *(.gnu.warning.*) + KEEP (*(.fini)) + PROVIDE (__etext = ABSOLUTE(.)); + PROVIDE (_etext = ABSOLUTE(.)); + PROVIDE (etext = ABSOLUTE(.)); + + *(.eh_frame_hdr) + /* Ensure the __preinit_array_start label is properly aligned. We + could instead move the label definition inside the section, but + the linker would then create the section even if it turns out to + be empty, which isn't pretty. */ + . = ALIGN(4); + PROVIDE (__preinit_array_start = ABSOLUTE(.)); + *(.preinit_array) + PROVIDE (__preinit_array_end = ABSOLUTE(.)); + PROVIDE (__init_array_start = ABSOLUTE(.)); + *(.init_array) + PROVIDE (__init_array_end = ABSOLUTE(.)); + PROVIDE (__fini_array_start = ABSOLUTE(.)); + *(.fini_array) + PROVIDE (__fini_array_end = ABSOLUTE(.)); + SORT(CONSTRUCTORS) + KEEP (*(.eh_frame)) + *(.gcc_except_table) + *(.dynamic) + PROVIDE (__CTOR_LIST__ = ABSOLUTE(.)); + KEEP (*(.ctors)) + KEEP (*(SORT(.ctors.*))) + PROVIDE (__CTOR_END__ = ABSOLUTE(.)); + PROVIDE (__DTOR_LIST__ = ABSOLUTE(.)); + KEEP (*(.dtors)) + KEEP (*(SORT(.dtors.*))) + PROVIDE (__DTOR_END__ = ABSOLUTE(.)); + KEEP (*(.jcr)) + . = ALIGN(4); + } > onchip_memory = 0x3a880100 /* Nios II NOP instruction */ + + .rodata : + { + PROVIDE (__ram_rodata_start = ABSOLUTE(.)); + . = ALIGN(4); + *(.rodata .rodata.* .gnu.linkonce.r.*) + *(.rodata1) + . = ALIGN(4); + PROVIDE (__ram_rodata_end = ABSOLUTE(.)); + } > onchip_memory + + PROVIDE (__flash_rodata_start = LOADADDR(.rodata)); + + /* + * + * This section's LMA is set to the .text region. + * crt0 will copy to this section's specified mapped region virtual memory address (VMA) + * + * .rwdata region equals the .text region, and is set to be loaded into .text region. + * This requires two copies of .rwdata in the .text region. One read writable at VMA. + * and one read-only at LMA. crt0 will copy from LMA to VMA on reset + * + */ + + .rwdata LOADADDR (.rodata) + SIZEOF (.rodata) : AT ( LOADADDR (.rodata) + SIZEOF (.rodata)+ SIZEOF (.rwdata) ) + { + PROVIDE (__ram_rwdata_start = ABSOLUTE(.)); + . = ALIGN(4); + *(.got.plt) *(.got) + *(.data1) + *(.data .data.* .gnu.linkonce.d.*) + + _gp = ABSOLUTE(. + 0x8000); + PROVIDE(gp = _gp); + + *(.rwdata .rwdata.*) + *(.sdata .sdata.* .gnu.linkonce.s.*) + *(.sdata2 .sdata2.* .gnu.linkonce.s2.*) + + . = ALIGN(4); + _edata = ABSOLUTE(.); + PROVIDE (edata = ABSOLUTE(.)); + PROVIDE (__ram_rwdata_end = ABSOLUTE(.)); + } > onchip_memory + + PROVIDE (__flash_rwdata_start = LOADADDR(.rwdata)); + + /* + * + * This section's LMA is set to the .text region. + * crt0 will copy to this section's specified mapped region virtual memory address (VMA) + * + */ + + .bss LOADADDR (.rwdata) + SIZEOF (.rwdata) : AT ( LOADADDR (.rwdata) + SIZEOF (.rwdata) ) + { + __bss_start = ABSOLUTE(.); + PROVIDE (__sbss_start = ABSOLUTE(.)); + PROVIDE (___sbss_start = ABSOLUTE(.)); + + *(.dynsbss) + *(.sbss .sbss.* .gnu.linkonce.sb.*) + *(.sbss2 .sbss2.* .gnu.linkonce.sb2.*) + *(.scommon) + + PROVIDE (__sbss_end = ABSOLUTE(.)); + PROVIDE (___sbss_end = ABSOLUTE(.)); + + *(.dynbss) + *(.bss .bss.* .gnu.linkonce.b.*) + *(COMMON) + + . = ALIGN(4); + __bss_end = ABSOLUTE(.); + } > onchip_memory + + /* + * + * One output section mapped to the associated memory device for each of + * the available memory devices. These are not used by default, but can + * be used by user applications by using the .section directive. + * + * The output section used for the heap is treated in a special way, + * i.e. the symbols "end" and "_end" are added to point to the heap start. + * + * Because alt_load() is enabled, these sections have + * their LMA set to be loaded into the .text memory region. + * However, the alt_load() code will NOT automatically copy + * these sections into their mapped memory region. + * + */ + + /* + * + * This section's LMA is set to the .text region. + * crt0 will copy to this section's specified mapped region virtual memory address (VMA) + * + */ + + .onchip_memory LOADADDR (.bss) + SIZEOF (.bss) : AT ( LOADADDR (.bss) + SIZEOF (.bss) ) + { + PROVIDE (_alt_partition_onchip_memory_start = ABSOLUTE(.)); + *(.onchip_memory. onchip_memory.*) + . = ALIGN(4); + PROVIDE (_alt_partition_onchip_memory_end = ABSOLUTE(.)); + _end = ABSOLUTE(.); + end = ABSOLUTE(.); + __alt_stack_base = ABSOLUTE(.); + } > onchip_memory + + PROVIDE (_alt_partition_onchip_memory_load_addr = LOADADDR(.onchip_memory)); + + /* + * Stabs debugging sections. + * + */ + + .stab 0 : { *(.stab) } + .stabstr 0 : { *(.stabstr) } + .stab.excl 0 : { *(.stab.excl) } + .stab.exclstr 0 : { *(.stab.exclstr) } + .stab.index 0 : { *(.stab.index) } + .stab.indexstr 0 : { *(.stab.indexstr) } + .comment 0 : { *(.comment) } + /* DWARF debug sections. + Symbols in the DWARF debugging sections are relative to the beginning + of the section so we begin them at 0. */ + /* DWARF 1 */ + .debug 0 : { *(.debug) } + .line 0 : { *(.line) } + /* GNU DWARF 1 extensions */ + .debug_srcinfo 0 : { *(.debug_srcinfo) } + .debug_sfnames 0 : { *(.debug_sfnames) } + /* DWARF 1.1 and DWARF 2 */ + .debug_aranges 0 : { *(.debug_aranges) } + .debug_pubnames 0 : { *(.debug_pubnames) } + /* DWARF 2 */ + .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } + .debug_abbrev 0 : { *(.debug_abbrev) } + .debug_line 0 : { *(.debug_line) } + .debug_frame 0 : { *(.debug_frame) } + .debug_str 0 : { *(.debug_str) } + .debug_loc 0 : { *(.debug_loc) } + .debug_macinfo 0 : { *(.debug_macinfo) } + /* SGI/MIPS DWARF 2 extensions */ + .debug_weaknames 0 : { *(.debug_weaknames) } + .debug_funcnames 0 : { *(.debug_funcnames) } + .debug_typenames 0 : { *(.debug_typenames) } + .debug_varnames 0 : { *(.debug_varnames) } + + /* Altera debug extensions */ + .debug_alt_sim_info 0 : { *(.debug_alt_sim_info) } +} + +/* provide a pointer for the stack */ + +/* + * Don't override this, override the __alt_stack_* symbols instead. + */ +__alt_data_end = 0x4000; + +/* + * The next two symbols define the location of the default stack. You can + * override them to move the stack to a different memory. + */ +PROVIDE( __alt_stack_pointer = __alt_data_end ); +PROVIDE( __alt_stack_limit = __alt_stack_base ); + +/* + * This symbol controls where the start of the heap is. If the stack is + * contiguous with the heap then the stack will contract as memory is + * allocated to the heap. + * Override this symbol to put the heap in a different memory. + */ +PROVIDE( __alt_heap_start = end ); +PROVIDE( __alt_heap_limit = 0x4000 ); diff --git a/software/qsys_tutorial_lcd2_bsp/mem_init.mk b/software/qsys_tutorial_lcd2_bsp/mem_init.mk new file mode 100644 index 0000000..8529cc2 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/mem_init.mk @@ -0,0 +1,322 @@ + +######################################################################### +####### M E M I N I T M A K E F I L E C O N T E N T ###### +######################################################################### + +######################################################################### +# This file is intended to be included by public.mk +# +# +# The following variables must be defined before including this file: +# - ELF +# +# The following variables may be defined to override the default behavior: +# - HDL_SIM_DIR +# - HDL_SIM_INSTALL_DIR +# - MEM_INIT_DIR +# - MEM_INIT_INSTALL_DIR +# - QUARTUS_PROJECT_DIR +# - SOPC_NAME +# - SIM_OPTIMIZE +# - RESET_ADDRESS +# +######################################################################### + +ifeq ($(MEM_INIT_FILE),) +# MEM_INIT_FILE should be set equal to the working relative path to this +# mem_init.mk makefile fragment +MEM_INIT_FILE := $(wildcard $(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST))) +endif + +ifeq ($(ELF2DAT),) +ELF2DAT := elf2dat +endif + +ifeq ($(ELF2HEX),) +ELF2HEX := elf2hex +endif + +ifeq ($(ELF2FLASH),) +ELF2FLASH := elf2flash +endif + +ifeq ($(FLASH2DAT),) +FLASH2DAT := flash2dat +endif + +ifeq ($(NM),) +NM := nios2-elf-nm +endif + +ifeq ($(MKDIR),) +MKDIR := mkdir -p +endif + +ifeq ($(RM),) +RM := rm -f +endif + +ifeq ($(CP),) +CP := cp +endif + +ifeq ($(ECHO),) +ECHO := echo +endif + +MEM_INIT_DIR ?= mem_init +HDL_SIM_DIR ?= $(MEM_INIT_DIR)/hdl_sim + +ifdef QUARTUS_PROJECT_DIR +MEM_INIT_INSTALL_DIR ?= $(patsubst %/,%,$(QUARTUS_PROJECT_DIR)) +ifdef SOPC_NAME +HDL_SIM_INSTALL_DIR ?= $(patsubst %/,%,$(QUARTUS_PROJECT_DIR))/$(SOPC_NAME)_sim +endif +endif + +MEM_INIT_DESCRIPTOR_FILE ?= $(MEM_INIT_DIR)/meminit.spd + +MEM_INIT_QIP_FILE ?= $(MEM_INIT_DIR)/meminit.qip + +#------------------------------------- +# Default Flash Boot Loaders +#------------------------------------- + +BOOT_LOADER_PATH ?= $(SOPC_KIT_NIOS2)/components/altera_nios2 +BOOT_LOADER_CFI ?= $(BOOT_LOADER_PATH)/boot_loader_cfi.srec +BOOT_LOADER_CFI_BE ?= $(BOOT_LOADER_PATH)/boot_loader_cfi_be.srec + + +#------------------------------------- +# Default Target +#------------------------------------- + +.PHONY: default_mem_init +ifeq ($(QSYS),1) +default_mem_init: mem_init_generate +else +default_mem_init: mem_init_install +endif +#------------------------------------- +# Runtime Macros +#------------------------------------- + +define post-process-info + @echo Post-processing to create $@... +endef + +target_stem = $(notdir $(basename $@)) + +mem_start_address = $($(target_stem)_START) +mem_end_address = $($(target_stem)_END) +mem_width = $($(target_stem)_WIDTH) +mem_endianness = $($(target_stem)_ENDIANNESS) +mem_create_lanes = $($(target_stem)_CREATE_LANES) + +mem_pad_flag = $($(target_stem)_PAD_FLAG) +mem_reloc_input_flag = $($(target_stem)_RELOC_INPUT_FLAG) +mem_no_zero_fill_flag = $($(target_stem)_NO_ZERO_FILL_FLAG) + +flash_mem_epcs_flag = $($(target_stem)_EPCS_FLAGS) +flash_mem_cfi_flag = $($(target_stem)_CFI_FLAGS) +flash_mem_boot_loader_flag = $($(target_stem)_BOOT_LOADER_FLAG) + +elf2dat_extra_args = $(mem_pad_flag) +elf2hex_extra_args = $(mem_no_zero_fill_flag) +elf2flash_extra_args = $(flash_mem_cfi_flag) $(flash_mem_epcs_flag) $(flash_mem_boot_loader_flag) +flash2dat_extra_args = $(mem_pad_flag) $(mem_reloc_input_flag) + +#------------------------------------------------------------------------------ +# BSP SPECIFIC CONTENT +# +# The content below is controlled by the BSP and SOPC System +#------------------------------------------------------------------------------ +#START OF BSP SPECIFIC + +#------------------------------------- +# Global Settings +#------------------------------------- + + +# The following TYPE comment allows tools to identify the 'type' of target this +# makefile is associated with. +# TYPE: BSP_MEMINIT_MAKEFILE + +# This following VERSION comment indicates the version of the tool used to +# generate this makefile. A makefile variable is provided for VERSION as well. +# ACDS_VERSION: 13.0sp1 +ACDS_VERSION := 13.0sp1 + +# This following BUILD_NUMBER comment indicates the build number of the tool +# used to generate this makefile. +# BUILD_NUMBER: 232 + +# Optimize for simulation +SIM_OPTIMIZE ?= 0 + +# The CPU reset address as needed by elf2flash +RESET_ADDRESS ?= 0x00000000 + +#------------------------------------- +# Pre-Initialized Memory Descriptions +#------------------------------------- + +# Memory: onchip_memory +MEM_0 := nios_system_onchip_memory +$(MEM_0)_NAME := onchip_memory +$(MEM_0)_MEM_INIT_FILE_PARAM_NAME := INIT_FILE +HEX_FILES += $(MEM_INIT_DIR)/$(MEM_0).hex +MEM_INIT_INSTALL_FILES += $(MEM_INIT_INSTALL_DIR)/$(MEM_0).hex +DAT_FILES += $(HDL_SIM_DIR)/$(MEM_0).dat +HDL_SIM_INSTALL_FILES += $(HDL_SIM_INSTALL_DIR)/$(MEM_0).dat +SYM_FILES += $(HDL_SIM_DIR)/$(MEM_0).sym +HDL_SIM_INSTALL_FILES += $(HDL_SIM_INSTALL_DIR)/$(MEM_0).sym +$(MEM_0)_START := 0x00000000 +$(MEM_0)_END := 0x00003fff +$(MEM_0)_HIERARCHICAL_PATH := onchip_memory +$(MEM_0)_WIDTH := 32 +$(MEM_0)_ENDIANNESS := --little-endian-mem +$(MEM_0)_CREATE_LANES := 0 + +.PHONY: onchip_memory +onchip_memory: check_elf_exists $(MEM_INIT_DIR)/$(MEM_0).hex $(HDL_SIM_DIR)/$(MEM_0).dat $(HDL_SIM_DIR)/$(MEM_0).sym + + +#END OF BSP SPECIFIC + +#------------------------------------- +# Pre-Initialized Memory Targets +#------------------------------------- + +.PHONY: mem_init_install mem_init_generate mem_init_clean + +ifeq ($(QSYS),1) +# Target mem_init_install is deprecated for QSys based systems +# To initialize onchip memories for Quartus II Synthesis with Qsys based systems: +# 1) Use "make mem_init_genearate" +# 2) Add the generated mem_init/meminit.qip file to your Quartus II Project +# +mem_init_install: + $(error Deprecated Makefile Target: '$@'. Use target 'mem_init_generate' and then add $(MEM_INIT_QIP_FILE) to your Quartus II Project) + +else # QSYS != 1, if SopcBuilder based system + +ifneq ($(MEM_INIT_INSTALL_DIR),) +mem_init_install: $(MEM_INIT_INSTALL_FILES) +endif + +ifneq ($(HDL_SIM_INSTALL_DIR),) +mem_init_install: $(HDL_SIM_INSTALL_FILES) +endif + +mem_init_install: mem_init_generate +ifeq ($(MEM_INIT_INSTALL_DIR),) + @echo "WARNING: MEM_INIT_INSTALL_DIR not set. Set your QUARTUS_PROJECT_DIR environment variable." +endif +ifeq ($(HDL_SIM_INSTALL_DIR),) + @echo "WARNING: HDL_SIM_INSTALL_DIR not set. Set your QUARTUS_PROJECT_DIR and SOPC_NAME environment variable." +endif + +$(MEM_INIT_INSTALL_FILES): $(MEM_INIT_INSTALL_DIR)/%: $(MEM_INIT_DIR)/% + @$(MKDIR) $(@D) + @$(CP) -v $< $@ + +$(HDL_SIM_INSTALL_FILES): $(HDL_SIM_INSTALL_DIR)/%: $(HDL_SIM_DIR)/% + @$(MKDIR) $(@D) + @$(CP) -v $< $@ + +endif # QSYS == 1 + + +mem_init_generate: hex dat sym flash $(MEM_INIT_DESCRIPTOR_FILE) $(MEM_INIT_QIP_FILE) + +mem_init_clean: + @$(RM) -r $(MEM_INIT_DIR) $(HDL_SIM_DIR) $(FLASH_FILES) + +.PHONY: hex dat sym flash + +hex: check_elf_exists $(HEX_FILES) + +dat: check_elf_exists $(DAT_FILES) + +sym: check_elf_exists $(SYM_FILES) + +flash: check_elf_exists $(FLASH_FILES) + +#------------------------------------- +# Pre-Initialized Memory Rules +#------------------------------------- + +.PHONY: check_elf_exists +check_elf_exists: $(ELF) +ifeq ($(ELF),) + $(error ELF var not set in mem_init.mk) +endif + +$(filter-out $(FLASH_DAT_FILES),$(DAT_FILES)): %.dat: $(ELF) + $(post-process-info) + @$(MKDIR) $(@D) + bash -c '$(ELF2DAT) --infile=$< --outfile=$@ \ + --base=$(mem_start_address) --end=$(mem_end_address) --width=$(mem_width) \ + $(mem_endianness) --create-lanes=$(mem_create_lanes) $(elf2dat_extra_args)' + +$(foreach i,0 1 2 3 4 5 6 7,%_lane$(i).dat): %.dat + @true + +$(HEX_FILES): %.hex: $(ELF) + $(post-process-info) + @$(MKDIR) $(@D) + bash -c '$(ELF2HEX) $< $(mem_start_address) $(mem_end_address) --width=$(mem_width) \ + $(mem_endianness) --create-lanes=$(mem_create_lanes) $(elf2hex_extra_args) $@' + +$(SYM_FILES): %.sym: $(ELF) + $(post-process-info) + @$(MKDIR) $(@D) + $(NM) -n $< > $@ + +$(FLASH_FILES): %.flash: $(ELF) + $(post-process-info) + @$(MKDIR) $(@D) + bash -c '$(ELF2FLASH) --input=$< --outfile=$@ --sim_optimize=$(SIM_OPTIMIZE) $(mem_endianness) \ + $(elf2flash_extra_args)' + +# +# Function generate_spd_entry +# Arg1: path to the memory initialization file +# Arg2: Type HEX or DAT +# Arg3: Output spd file to append +gen_spd_entry.BASE_FILE = $(basename $(notdir $1)) +gen_spd_entry.PARAM_NAME = $($(gen_spd_entry.BASE_FILE)_MEM_INIT_FILE_PARAM_NAME) +gen_spd_entry.MEM_PATH = $($(gen_spd_entry.BASE_FILE)_HIERARCHICAL_PATH) +gen_spd_entry.SETTINGS = $(strip \ + path=\"$1\" \ + type=\"$2\" \ + $(if $(gen_spd_entry.PARAM_NAME),initParamName=\"$(gen_spd_entry.PARAM_NAME)\") \ + $(if $(gen_spd_entry.MEM_PATH),memoryPath=\"$(gen_spd_entry.MEM_PATH)\") \ +) +define gen_spd_entry +$(ECHO) "" >> $3 +endef + +$(MEM_INIT_DESCRIPTOR_FILE).DAT_FILESET := $(patsubst $(dir $(MEM_INIT_DESCRIPTOR_FILE))%,%,$(DAT_FILES)) +$(MEM_INIT_DESCRIPTOR_FILE).HEX_FILESET := $(patsubst $(dir $(MEM_INIT_DESCRIPTOR_FILE))%,%,$(HEX_FILES)) + +$(MEM_INIT_DESCRIPTOR_FILE): %.spd: $(MEM_INIT_FILE) + $(post-process-info) + @$(MKDIR) $(@D) + @$(RM) $@ + @$(ECHO) "" > $@ + @$(ECHO) "" >> $@ + @$(foreach dat_file,$($@.DAT_FILESET),$(call gen_spd_entry,$(dat_file),DAT,$@) &&)true + @$(foreach hex_file,$($@.HEX_FILESET),$(call gen_spd_entry,$(hex_file),HEX,$@) &&)true + @$(ECHO) "" >> $@ + +.DELETE_ON_ERROR: $(MEM_INIT_DESCRIPTOR_FILE) + +$(MEM_INIT_QIP_FILE): %.qip: $(MEM_INIT_FILE) + $(post-process-info) + @$(MKDIR) $(@D) + @$(RM) $@ + @$(ECHO) "set_global_assignment -name SEARCH_PATH $$::quartus(qip_path)" > $@ + +.DELETE_ON_ERROR: $(MEM_INIT_QIP_FILE) diff --git a/software/qsys_tutorial_lcd2_bsp/memory.gdb b/software/qsys_tutorial_lcd2_bsp/memory.gdb new file mode 100644 index 0000000..d293992 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/memory.gdb @@ -0,0 +1,50 @@ +# memory.gdb - GDB memory region definitions +# +# Machine generated for CPU 'nios2_processor' in SOPC Builder design 'nios_system' +# SOPC Builder design path: C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.sopcinfo +# +# Generated: Fri Dec 02 00:00:37 JST 2016 + +# DO NOT MODIFY THIS FILE +# +# Changing this file will have subtle consequences +# which will almost certainly lead to a nonfunctioning +# system. If you do modify this file, be aware that your +# changes will be overwritten and lost when this file +# is generated again. +# +# DO NOT MODIFY THIS FILE + +# License Agreement +# +# Copyright (c) 2008 +# Altera Corporation, San Jose, California, USA. +# All rights reserved. +# +# Permission is hereby granted, free of charge, to any person obtaining a +# copy of this software and associated documentation files (the "Software"), +# to deal in the Software without restriction, including without limitation +# the rights to use, copy, modify, merge, publish, distribute, sublicense, +# and/or sell copies of the Software, and to permit persons to whom the +# Software is furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +# DEALINGS IN THE SOFTWARE. +# +# This agreement shall be governed in all respects by the laws of the State +# of California and by the laws of the United States of America. + +# Define memory regions for each memory connected to the CPU. +# The cache attribute is specified which improves GDB performance +# by allowing GDB to cache memory contents on the host. + +# onchip_memory +memory 0x0 0x4000 cache diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_alarm_start.d b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_alarm_start.d new file mode 100644 index 0000000..3bb20ea --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_alarm_start.d @@ -0,0 +1,22 @@ +obj/HAL/src/alt_alarm_start.o: HAL/src/alt_alarm_start.c \ + HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ + HAL/inc/priv/alt_alarm.h HAL/inc/alt_types.h HAL/inc/sys/alt_irq.h \ + HAL/inc/nios2.h system.h linker.h + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +system.h: + +linker.h: diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_alarm_start.o b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_alarm_start.o new file mode 100644 index 0000000..a549138 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_alarm_start.o Binary files differ diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_busy_sleep.d b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_busy_sleep.d new file mode 100644 index 0000000..e93e80c --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_busy_sleep.d @@ -0,0 +1,10 @@ +obj/HAL/src/alt_busy_sleep.o: HAL/src/alt_busy_sleep.c system.h linker.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_busy_sleep.h + +system.h: + +linker.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_busy_sleep.h: diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_busy_sleep.o b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_busy_sleep.o new file mode 100644 index 0000000..2924cc0 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_busy_sleep.o Binary files differ diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_close.d b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_close.d new file mode 100644 index 0000000..fbbab9c --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_close.d @@ -0,0 +1,34 @@ +obj/HAL/src/alt_close.o: HAL/src/alt_close.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h HAL/inc/priv/alt_file.h \ + HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h \ + HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_close.o b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_close.o new file mode 100644 index 0000000..b38d76f --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_close.o Binary files differ diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_dcache_flush.d b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_dcache_flush.d new file mode 100644 index 0000000..a0eaf8a --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_dcache_flush.d @@ -0,0 +1,15 @@ +obj/HAL/src/alt_dcache_flush.o: HAL/src/alt_dcache_flush.c \ + HAL/inc/nios2.h system.h linker.h HAL/inc/alt_types.h \ + HAL/inc/sys/alt_cache.h HAL/inc/alt_types.h + +HAL/inc/nios2.h: + +system.h: + +linker.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_cache.h: + +HAL/inc/alt_types.h: diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_dcache_flush.o b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_dcache_flush.o new file mode 100644 index 0000000..70f3957 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_dcache_flush.o Binary files differ diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_dcache_flush_all.d b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_dcache_flush_all.d new file mode 100644 index 0000000..792c3e4 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_dcache_flush_all.d @@ -0,0 +1,15 @@ +obj/HAL/src/alt_dcache_flush_all.o: HAL/src/alt_dcache_flush_all.c \ + HAL/inc/nios2.h system.h linker.h HAL/inc/alt_types.h \ + HAL/inc/sys/alt_cache.h HAL/inc/alt_types.h + +HAL/inc/nios2.h: + +system.h: + +linker.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_cache.h: + +HAL/inc/alt_types.h: diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_dcache_flush_all.o b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_dcache_flush_all.o new file mode 100644 index 0000000..c8099e9 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_dcache_flush_all.o Binary files differ diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_dcache_flush_no_writeback.d b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_dcache_flush_no_writeback.d new file mode 100644 index 0000000..867c42b --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_dcache_flush_no_writeback.d @@ -0,0 +1,16 @@ +obj/HAL/src/alt_dcache_flush_no_writeback.o: \ + HAL/src/alt_dcache_flush_no_writeback.c HAL/inc/nios2.h system.h \ + linker.h HAL/inc/alt_types.h HAL/inc/sys/alt_cache.h \ + HAL/inc/alt_types.h + +HAL/inc/nios2.h: + +system.h: + +linker.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_cache.h: + +HAL/inc/alt_types.h: diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_dcache_flush_no_writeback.o b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_dcache_flush_no_writeback.o new file mode 100644 index 0000000..9cf8fe9 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_dcache_flush_no_writeback.o Binary files differ diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_dev.d b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_dev.d new file mode 100644 index 0000000..cd9b1d4 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_dev.d @@ -0,0 +1,34 @@ +obj/HAL/src/alt_dev.o: HAL/src/alt_dev.c HAL/inc/sys/alt_dev.h system.h \ + linker.h HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h \ + HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h HAL/inc/alt_types.h \ + system.h + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/alt_types.h: + +system.h: diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_dev.o b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_dev.o new file mode 100644 index 0000000..8e993ac --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_dev.o Binary files differ diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_dev_llist_insert.d b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_dev_llist_insert.d new file mode 100644 index 0000000..344d065 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_dev_llist_insert.d @@ -0,0 +1,13 @@ +obj/HAL/src/alt_dev_llist_insert.o: HAL/src/alt_dev_llist_insert.c \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/alt_types.h HAL/inc/sys/alt_errno.h + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_errno.h: diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_dev_llist_insert.o b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_dev_llist_insert.o new file mode 100644 index 0000000..4483b6d --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_dev_llist_insert.o Binary files differ diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_dma_rxchan_open.d b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_dma_rxchan_open.d new file mode 100644 index 0000000..fb21fed --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_dma_rxchan_open.d @@ -0,0 +1,35 @@ +obj/HAL/src/alt_dma_rxchan_open.o: HAL/src/alt_dma_rxchan_open.c \ + HAL/inc/sys/alt_dma.h HAL/inc/sys/alt_dma_dev.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/alt_types.h HAL/inc/sys/alt_errno.h \ + HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h system.h linker.h \ + HAL/inc/sys/alt_llist.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h + +HAL/inc/sys/alt_dma.h: + +HAL/inc/sys/alt_dma_dev.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_errno.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_dma_rxchan_open.o b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_dma_rxchan_open.o new file mode 100644 index 0000000..6a28820 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_dma_rxchan_open.o Binary files differ diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_dma_txchan_open.d b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_dma_txchan_open.d new file mode 100644 index 0000000..500b95c --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_dma_txchan_open.d @@ -0,0 +1,35 @@ +obj/HAL/src/alt_dma_txchan_open.o: HAL/src/alt_dma_txchan_open.c \ + HAL/inc/sys/alt_dma.h HAL/inc/sys/alt_dma_dev.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/alt_types.h HAL/inc/sys/alt_errno.h \ + HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h system.h linker.h \ + HAL/inc/sys/alt_llist.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h + +HAL/inc/sys/alt_dma.h: + +HAL/inc/sys/alt_dma_dev.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_errno.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_dma_txchan_open.o b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_dma_txchan_open.o new file mode 100644 index 0000000..25955fa --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_dma_txchan_open.o Binary files differ diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_do_ctors.d b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_do_ctors.d new file mode 100644 index 0000000..daf8baf --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_do_ctors.d @@ -0,0 +1 @@ +obj/HAL/src/alt_do_ctors.o: HAL/src/alt_do_ctors.c diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_do_ctors.o b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_do_ctors.o new file mode 100644 index 0000000..0b7fa34 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_do_ctors.o Binary files differ diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_do_dtors.d b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_do_dtors.d new file mode 100644 index 0000000..c3471eb --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_do_dtors.d @@ -0,0 +1 @@ +obj/HAL/src/alt_do_dtors.o: HAL/src/alt_do_dtors.c diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_do_dtors.o b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_do_dtors.o new file mode 100644 index 0000000..5b83880 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_do_dtors.o Binary files differ diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_env_lock.d b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_env_lock.d new file mode 100644 index 0000000..634d7b0 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_env_lock.d @@ -0,0 +1 @@ +obj/HAL/src/alt_env_lock.o: HAL/src/alt_env_lock.c diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_env_lock.o b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_env_lock.o new file mode 100644 index 0000000..6f59a4b --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_env_lock.o Binary files differ diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_environ.d b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_environ.d new file mode 100644 index 0000000..e9ca295 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_environ.d @@ -0,0 +1,3 @@ +obj/HAL/src/alt_environ.o: HAL/src/alt_environ.c HAL/inc/os/alt_syscall.h + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_environ.o b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_environ.o new file mode 100644 index 0000000..d82f8c3 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_environ.o Binary files differ diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_errno.d b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_errno.d new file mode 100644 index 0000000..29ca544 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_errno.d @@ -0,0 +1,8 @@ +obj/HAL/src/alt_errno.o: HAL/src/alt_errno.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/alt_types.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/alt_types.h: diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_errno.o b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_errno.o new file mode 100644 index 0000000..10e03c2 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_errno.o Binary files differ diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_exception_entry.d b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_exception_entry.d new file mode 100644 index 0000000..540567e --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_exception_entry.d @@ -0,0 +1,6 @@ +obj/HAL/src/alt_exception_entry.o: HAL/src/alt_exception_entry.S system.h \ + linker.h + +system.h: + +linker.h: diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_exception_entry.o b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_exception_entry.o new file mode 100644 index 0000000..ecc8f27 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_exception_entry.o Binary files differ diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_exception_muldiv.d b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_exception_muldiv.d new file mode 100644 index 0000000..63d66a7 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_exception_muldiv.d @@ -0,0 +1 @@ +obj/HAL/src/alt_exception_muldiv.o: HAL/src/alt_exception_muldiv.S diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_exception_muldiv.o b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_exception_muldiv.o new file mode 100644 index 0000000..9350570 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_exception_muldiv.o Binary files differ diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_exception_trap.d b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_exception_trap.d new file mode 100644 index 0000000..6e18488 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_exception_trap.d @@ -0,0 +1 @@ +obj/HAL/src/alt_exception_trap.o: HAL/src/alt_exception_trap.S diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_exception_trap.o b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_exception_trap.o new file mode 100644 index 0000000..588d6d2 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_exception_trap.o Binary files differ diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_execve.d b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_execve.d new file mode 100644 index 0000000..9cef7d2 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_execve.d @@ -0,0 +1,10 @@ +obj/HAL/src/alt_execve.o: HAL/src/alt_execve.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_execve.o b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_execve.o new file mode 100644 index 0000000..c30ca9e --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_execve.o Binary files differ diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_exit.d b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_exit.d new file mode 100644 index 0000000..a779da8 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_exit.d @@ -0,0 +1,26 @@ +obj/HAL/src/alt_exit.o: HAL/src/alt_exit.c HAL/inc/sys/alt_irq.h \ + HAL/inc/nios2.h HAL/inc/alt_types.h system.h linker.h \ + HAL/inc/sys/alt_sim.h HAL/inc/os/alt_hooks.h HAL/inc/os/alt_syscall.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_log_printf.h system.h + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_sim.h: + +HAL/inc/os/alt_hooks.h: + +HAL/inc/os/alt_syscall.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_log_printf.h: + +system.h: diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_exit.o b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_exit.o new file mode 100644 index 0000000..6171824 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_exit.o Binary files differ diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_fcntl.d b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_fcntl.d new file mode 100644 index 0000000..527f242 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_fcntl.d @@ -0,0 +1,34 @@ +obj/HAL/src/alt_fcntl.o: HAL/src/alt_fcntl.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h \ + system.h linker.h HAL/inc/sys/alt_llist.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h HAL/inc/alt_types.h \ + HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_fcntl.o b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_fcntl.o new file mode 100644 index 0000000..cf66cba --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_fcntl.o Binary files differ diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_fd_lock.d b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_fd_lock.d new file mode 100644 index 0000000..93daeac --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_fd_lock.d @@ -0,0 +1,27 @@ +obj/HAL/src/alt_fd_lock.o: HAL/src/alt_fd_lock.c HAL/inc/priv/alt_file.h \ + HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_fd_lock.o b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_fd_lock.o new file mode 100644 index 0000000..b5bf901 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_fd_lock.o Binary files differ diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_fd_unlock.d b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_fd_unlock.d new file mode 100644 index 0000000..45a3207 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_fd_unlock.d @@ -0,0 +1,27 @@ +obj/HAL/src/alt_fd_unlock.o: HAL/src/alt_fd_unlock.c \ + HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h system.h linker.h \ + HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_fd_unlock.o b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_fd_unlock.o new file mode 100644 index 0000000..1cffda8 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_fd_unlock.o Binary files differ diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_find_dev.d b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_find_dev.d new file mode 100644 index 0000000..98336f8 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_find_dev.d @@ -0,0 +1,31 @@ +obj/HAL/src/alt_find_dev.o: HAL/src/alt_find_dev.c HAL/inc/sys/alt_dev.h \ + system.h linker.h HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h \ + HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h HAL/inc/alt_types.h + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/alt_types.h: diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_find_dev.o b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_find_dev.o new file mode 100644 index 0000000..07c7f1c --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_find_dev.o Binary files differ diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_find_file.d b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_find_file.d new file mode 100644 index 0000000..d1150ca --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_find_file.d @@ -0,0 +1,32 @@ +obj/HAL/src/alt_find_file.o: HAL/src/alt_find_file.c \ + HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h HAL/inc/priv/alt_file.h \ + HAL/inc/sys/alt_dev.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h \ + HAL/inc/alt_types.h + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/alt_types.h: diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_find_file.o b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_find_file.o new file mode 100644 index 0000000..fdb21f0 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_find_file.o Binary files differ diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_flash_dev.d b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_flash_dev.d new file mode 100644 index 0000000..8835e8f --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_flash_dev.d @@ -0,0 +1,34 @@ +obj/HAL/src/alt_flash_dev.o: HAL/src/alt_flash_dev.c \ + HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h HAL/inc/sys/alt_flash_dev.h \ + HAL/inc/sys/alt_flash_types.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h \ + system.h linker.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_flash_dev.h: + +HAL/inc/sys/alt_flash_types.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_flash_dev.o b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_flash_dev.o new file mode 100644 index 0000000..b268af6 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_flash_dev.o Binary files differ diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_fork.d b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_fork.d new file mode 100644 index 0000000..492be65 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_fork.d @@ -0,0 +1,10 @@ +obj/HAL/src/alt_fork.o: HAL/src/alt_fork.c HAL/inc/sys/alt_warning.h \ + HAL/inc/sys/alt_errno.h HAL/inc/alt_types.h HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_warning.h: + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_fork.o b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_fork.o new file mode 100644 index 0000000..b076e62 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_fork.o Binary files differ diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_fs_reg.d b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_fs_reg.d new file mode 100644 index 0000000..d8f95ab --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_fs_reg.d @@ -0,0 +1,29 @@ +obj/HAL/src/alt_fs_reg.o: HAL/src/alt_fs_reg.c HAL/inc/sys/alt_dev.h \ + system.h linker.h HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h \ + HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_fs_reg.o b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_fs_reg.o new file mode 100644 index 0000000..4e75d14 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_fs_reg.o Binary files differ diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_fstat.d b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_fstat.d new file mode 100644 index 0000000..942fcbc --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_fstat.d @@ -0,0 +1,38 @@ +obj/HAL/src/alt_fstat.o: HAL/src/alt_fstat.c HAL/inc/sys/alt_dev.h \ + system.h linker.h HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h HAL/inc/sys/alt_errno.h \ + HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h HAL/inc/os/alt_syscall.h system.h + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/sys/alt_errno.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_syscall.h: + +system.h: diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_fstat.o b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_fstat.o new file mode 100644 index 0000000..38db9c9 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_fstat.o Binary files differ diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_get_fd.d b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_get_fd.d new file mode 100644 index 0000000..9a4daaa --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_get_fd.d @@ -0,0 +1,34 @@ +obj/HAL/src/alt_get_fd.o: HAL/src/alt_get_fd.c HAL/inc/sys/alt_dev.h \ + system.h linker.h HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h \ + HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h HAL/inc/alt_types.h \ + system.h + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/alt_types.h: + +system.h: diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_get_fd.o b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_get_fd.o new file mode 100644 index 0000000..9998d68 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_get_fd.o Binary files differ diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_getchar.d b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_getchar.d new file mode 100644 index 0000000..bcccdf7 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_getchar.d @@ -0,0 +1,34 @@ +obj/HAL/src/alt_getchar.o: HAL/src/alt_getchar.c system.h linker.h \ + HAL/inc/sys/alt_driver.h HAL/inc/sys/alt_stdio.h \ + HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h system.h \ + HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h + +system.h: + +linker.h: + +HAL/inc/sys/alt_driver.h: + +HAL/inc/sys/alt_stdio.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_getchar.o b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_getchar.o new file mode 100644 index 0000000..b9b7f63 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_getchar.o Binary files differ diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_getpid.d b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_getpid.d new file mode 100644 index 0000000..d9499b9 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_getpid.d @@ -0,0 +1,3 @@ +obj/HAL/src/alt_getpid.o: HAL/src/alt_getpid.c HAL/inc/os/alt_syscall.h + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_getpid.o b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_getpid.o new file mode 100644 index 0000000..5285c9d --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_getpid.o Binary files differ diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_gettod.d b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_gettod.d new file mode 100644 index 0000000..cf3cf34 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_gettod.d @@ -0,0 +1,17 @@ +obj/HAL/src/alt_gettod.o: HAL/src/alt_gettod.c HAL/inc/sys/alt_alarm.h \ + HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h HAL/inc/priv/alt_alarm.h \ + HAL/inc/alt_types.h HAL/inc/alt_types.h HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/alt_types.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_gettod.o b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_gettod.o new file mode 100644 index 0000000..2204779 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_gettod.o Binary files differ diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_gmon.d b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_gmon.d new file mode 100644 index 0000000..e9469ab --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_gmon.d @@ -0,0 +1,24 @@ +obj/HAL/src/alt_gmon.o: HAL/src/alt_gmon.c HAL/inc/priv/nios2_gmon_data.h \ + HAL/inc/sys/alt_irq.h HAL/inc/nios2.h HAL/inc/alt_types.h system.h \ + linker.h HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_alarm.h HAL/inc/alt_types.h + +HAL/inc/priv/nios2_gmon_data.h: + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/alt_types.h: diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_gmon.o b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_gmon.o new file mode 100644 index 0000000..79e0a00 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_gmon.o Binary files differ diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_icache_flush.d b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_icache_flush.d new file mode 100644 index 0000000..2e4ddd1 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_icache_flush.d @@ -0,0 +1,15 @@ +obj/HAL/src/alt_icache_flush.o: HAL/src/alt_icache_flush.c \ + HAL/inc/nios2.h system.h linker.h HAL/inc/alt_types.h \ + HAL/inc/sys/alt_cache.h HAL/inc/alt_types.h + +HAL/inc/nios2.h: + +system.h: + +linker.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_cache.h: + +HAL/inc/alt_types.h: diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_icache_flush.o b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_icache_flush.o new file mode 100644 index 0000000..ce87226 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_icache_flush.o Binary files differ diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_icache_flush_all.d b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_icache_flush_all.d new file mode 100644 index 0000000..47cfbf3 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_icache_flush_all.d @@ -0,0 +1,15 @@ +obj/HAL/src/alt_icache_flush_all.o: HAL/src/alt_icache_flush_all.c \ + HAL/inc/nios2.h system.h linker.h HAL/inc/alt_types.h \ + HAL/inc/sys/alt_cache.h HAL/inc/alt_types.h + +HAL/inc/nios2.h: + +system.h: + +linker.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_cache.h: + +HAL/inc/alt_types.h: diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_icache_flush_all.o b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_icache_flush_all.o new file mode 100644 index 0000000..a188382 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_icache_flush_all.o Binary files differ diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_iic.d b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_iic.d new file mode 100644 index 0000000..a709e0c --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_iic.d @@ -0,0 +1,29 @@ +obj/HAL/src/alt_iic.o: HAL/src/alt_iic.c system.h linker.h \ + HAL/inc/sys/alt_irq.h HAL/inc/nios2.h HAL/inc/alt_types.h system.h \ + HAL/inc/priv/alt_iic_isr_register.h HAL/inc/alt_types.h \ + HAL/inc/sys/alt_irq.h HAL/inc/priv/alt_legacy_irq.h system.h \ + HAL/inc/nios2.h + +system.h: + +linker.h: + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +HAL/inc/priv/alt_iic_isr_register.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_irq.h: + +HAL/inc/priv/alt_legacy_irq.h: + +system.h: + +HAL/inc/nios2.h: diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_iic.o b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_iic.o new file mode 100644 index 0000000..5646bcb --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_iic.o Binary files differ diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_iic_isr_register.d b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_iic_isr_register.d new file mode 100644 index 0000000..d0470ae --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_iic_isr_register.d @@ -0,0 +1,30 @@ +obj/HAL/src/alt_iic_isr_register.o: HAL/src/alt_iic_isr_register.c \ + system.h linker.h HAL/inc/alt_types.h HAL/inc/sys/alt_irq.h \ + HAL/inc/nios2.h HAL/inc/alt_types.h system.h \ + HAL/inc/priv/alt_iic_isr_register.h HAL/inc/alt_types.h \ + HAL/inc/sys/alt_irq.h HAL/inc/sys/alt_irq_entry.h \ + HAL/inc/priv/alt_irq_table.h + +system.h: + +linker.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +HAL/inc/priv/alt_iic_isr_register.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_irq.h: + +HAL/inc/sys/alt_irq_entry.h: + +HAL/inc/priv/alt_irq_table.h: diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_iic_isr_register.o b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_iic_isr_register.o new file mode 100644 index 0000000..b7065e2 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_iic_isr_register.o Binary files differ diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_instruction_exception_entry.d b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_instruction_exception_entry.d new file mode 100644 index 0000000..6d0705f --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_instruction_exception_entry.d @@ -0,0 +1,18 @@ +obj/HAL/src/alt_instruction_exception_entry.o: \ + HAL/src/alt_instruction_exception_entry.c HAL/inc/sys/alt_exceptions.h \ + HAL/inc/alt_types.h system.h linker.h HAL/inc/nios2.h \ + HAL/inc/alt_types.h system.h + +HAL/inc/sys/alt_exceptions.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_instruction_exception_entry.o b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_instruction_exception_entry.o new file mode 100644 index 0000000..77ebccd --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_instruction_exception_entry.o Binary files differ diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_instruction_exception_register.d b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_instruction_exception_register.d new file mode 100644 index 0000000..d4fac04 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_instruction_exception_register.d @@ -0,0 +1,16 @@ +obj/HAL/src/alt_instruction_exception_register.o: \ + HAL/src/alt_instruction_exception_register.c \ + HAL/inc/sys/alt_exceptions.h HAL/inc/alt_types.h system.h linker.h \ + HAL/inc/alt_types.h system.h + +HAL/inc/sys/alt_exceptions.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: + +HAL/inc/alt_types.h: + +system.h: diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_instruction_exception_register.o b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_instruction_exception_register.o new file mode 100644 index 0000000..2c92d62 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_instruction_exception_register.o Binary files differ diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_io_redirect.d b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_io_redirect.d new file mode 100644 index 0000000..8228365 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_io_redirect.d @@ -0,0 +1,29 @@ +obj/HAL/src/alt_io_redirect.o: HAL/src/alt_io_redirect.c \ + HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h HAL/inc/priv/alt_file.h \ + HAL/inc/sys/alt_dev.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_io_redirect.o b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_io_redirect.o new file mode 100644 index 0000000..d322315 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_io_redirect.o Binary files differ diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_ioctl.d b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_ioctl.d new file mode 100644 index 0000000..d70ad97 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_ioctl.d @@ -0,0 +1,41 @@ +obj/HAL/src/alt_ioctl.o: HAL/src/alt_ioctl.c HAL/inc/sys/ioctl.h \ + HAL/inc/sys/alt_errno.h HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h \ + HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h system.h linker.h \ + HAL/inc/sys/alt_llist.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h HAL/inc/os/alt_syscall.h system.h \ + HAL/inc/sys/alt_driver.h + +HAL/inc/sys/ioctl.h: + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_syscall.h: + +system.h: + +HAL/inc/sys/alt_driver.h: diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_ioctl.o b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_ioctl.o new file mode 100644 index 0000000..41722f9 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_ioctl.o Binary files differ diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_irq_entry.d b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_irq_entry.d new file mode 100644 index 0000000..9ec3751 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_irq_entry.d @@ -0,0 +1,5 @@ +obj/HAL/src/alt_irq_entry.o: HAL/src/alt_irq_entry.S system.h linker.h + +system.h: + +linker.h: diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_irq_entry.o b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_irq_entry.o new file mode 100644 index 0000000..5379bec --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_irq_entry.o Binary files differ diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_irq_handler.d b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_irq_handler.d new file mode 100644 index 0000000..6fb668f --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_irq_handler.d @@ -0,0 +1,19 @@ +obj/HAL/src/alt_irq_handler.o: HAL/src/alt_irq_handler.c system.h \ + linker.h HAL/inc/sys/alt_irq.h HAL/inc/nios2.h HAL/inc/alt_types.h \ + system.h HAL/inc/os/alt_hooks.h HAL/inc/alt_types.h + +system.h: + +linker.h: + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +HAL/inc/os/alt_hooks.h: + +HAL/inc/alt_types.h: diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_irq_handler.o b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_irq_handler.o new file mode 100644 index 0000000..29364ec --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_irq_handler.o Binary files differ diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_irq_register.d b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_irq_register.d new file mode 100644 index 0000000..3df2f8a --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_irq_register.d @@ -0,0 +1,36 @@ +obj/HAL/src/alt_irq_register.o: HAL/src/alt_irq_register.c system.h \ + linker.h HAL/inc/sys/alt_irq.h HAL/inc/nios2.h HAL/inc/alt_types.h \ + system.h HAL/inc/priv/alt_legacy_irq.h system.h HAL/inc/nios2.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_irq.h HAL/inc/os/alt_hooks.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_irq_entry.h \ + HAL/inc/priv/alt_irq_table.h + +system.h: + +linker.h: + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +HAL/inc/priv/alt_legacy_irq.h: + +system.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_irq.h: + +HAL/inc/os/alt_hooks.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_irq_entry.h: + +HAL/inc/priv/alt_irq_table.h: diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_irq_register.o b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_irq_register.o new file mode 100644 index 0000000..42a8f9c --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_irq_register.o Binary files differ diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_irq_vars.d b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_irq_vars.d new file mode 100644 index 0000000..f316558 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_irq_vars.d @@ -0,0 +1,8 @@ +obj/HAL/src/alt_irq_vars.o: HAL/src/alt_irq_vars.c HAL/inc/alt_types.h \ + system.h linker.h + +HAL/inc/alt_types.h: + +system.h: + +linker.h: diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_irq_vars.o b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_irq_vars.o new file mode 100644 index 0000000..1ea12ef --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_irq_vars.o Binary files differ diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_isatty.d b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_isatty.d new file mode 100644 index 0000000..f8b1f07 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_isatty.d @@ -0,0 +1,38 @@ +obj/HAL/src/alt_isatty.o: HAL/src/alt_isatty.c HAL/inc/sys/alt_dev.h \ + system.h linker.h HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_errno.h HAL/inc/sys/alt_warning.h \ + HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h HAL/inc/os/alt_syscall.h system.h + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_errno.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_syscall.h: + +system.h: diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_isatty.o b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_isatty.o new file mode 100644 index 0000000..c6b88a5 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_isatty.o Binary files differ diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_kill.d b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_kill.d new file mode 100644 index 0000000..0c14ae8 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_kill.d @@ -0,0 +1,8 @@ +obj/HAL/src/alt_kill.o: HAL/src/alt_kill.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_kill.o b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_kill.o new file mode 100644 index 0000000..88f4d4a --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_kill.o Binary files differ diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_link.d b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_link.d new file mode 100644 index 0000000..dc844c6 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_link.d @@ -0,0 +1,10 @@ +obj/HAL/src/alt_link.o: HAL/src/alt_link.c HAL/inc/sys/alt_warning.h \ + HAL/inc/sys/alt_errno.h HAL/inc/alt_types.h HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_warning.h: + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_link.o b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_link.o new file mode 100644 index 0000000..71e4df0 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_link.o Binary files differ diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_load.d b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_load.d new file mode 100644 index 0000000..d496ab8 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_load.d @@ -0,0 +1,8 @@ +obj/HAL/src/alt_load.o: HAL/src/alt_load.c HAL/inc/sys/alt_load.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_cache.h + +HAL/inc/sys/alt_load.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_cache.h: diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_load.o b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_load.o new file mode 100644 index 0000000..0cc6a19 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_load.o Binary files differ diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_log_macro.d b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_log_macro.d new file mode 100644 index 0000000..9768c1f --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_log_macro.d @@ -0,0 +1 @@ +obj/HAL/src/alt_log_macro.o: HAL/src/alt_log_macro.S diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_log_macro.o b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_log_macro.o new file mode 100644 index 0000000..489e2cc --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_log_macro.o Binary files differ diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_log_printf.d b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_log_printf.d new file mode 100644 index 0000000..251ff6d --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_log_printf.d @@ -0,0 +1 @@ +obj/HAL/src/alt_log_printf.o: HAL/src/alt_log_printf.c diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_log_printf.o b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_log_printf.o new file mode 100644 index 0000000..a03c33d --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_log_printf.o Binary files differ diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_lseek.d b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_lseek.d new file mode 100644 index 0000000..25ed783 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_lseek.d @@ -0,0 +1,34 @@ +obj/HAL/src/alt_lseek.o: HAL/src/alt_lseek.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h HAL/inc/priv/alt_file.h \ + HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h \ + HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_lseek.o b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_lseek.o new file mode 100644 index 0000000..4af2703 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_lseek.o Binary files differ diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_main.d b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_main.d new file mode 100644 index 0000000..afdfda0 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_main.d @@ -0,0 +1,47 @@ +obj/HAL/src/alt_main.o: HAL/src/alt_main.c HAL/inc/sys/alt_dev.h system.h \ + linker.h HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_sys_init.h HAL/inc/sys/alt_irq.h \ + HAL/inc/nios2.h HAL/inc/os/alt_hooks.h HAL/inc/priv/alt_file.h \ + HAL/inc/sys/alt_dev.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h \ + HAL/inc/alt_types.h system.h HAL/inc/sys/alt_log_printf.h system.h + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_sys_init.h: + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/os/alt_hooks.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/alt_types.h: + +system.h: + +HAL/inc/sys/alt_log_printf.h: + +system.h: diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_main.o b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_main.o new file mode 100644 index 0000000..73422a5 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_main.o Binary files differ diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_malloc_lock.d b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_malloc_lock.d new file mode 100644 index 0000000..4ed35c2 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_malloc_lock.d @@ -0,0 +1 @@ +obj/HAL/src/alt_malloc_lock.o: HAL/src/alt_malloc_lock.c diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_malloc_lock.o b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_malloc_lock.o new file mode 100644 index 0000000..9b5c5ee --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_malloc_lock.o Binary files differ diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_mcount.d b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_mcount.d new file mode 100644 index 0000000..1203efc --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_mcount.d @@ -0,0 +1 @@ +obj/HAL/src/alt_mcount.o: HAL/src/alt_mcount.S diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_mcount.o b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_mcount.o new file mode 100644 index 0000000..bf698bf --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_mcount.o Binary files differ diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_open.d b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_open.d new file mode 100644 index 0000000..a2aacd9 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_open.d @@ -0,0 +1,36 @@ +obj/HAL/src/alt_open.o: HAL/src/alt_open.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h HAL/inc/priv/alt_file.h \ + HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h \ + HAL/inc/alt_types.h HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_open.o b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_open.o new file mode 100644 index 0000000..7779efe --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_open.o Binary files differ diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_printf.d b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_printf.d new file mode 100644 index 0000000..3ce68a4 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_printf.d @@ -0,0 +1,3 @@ +obj/HAL/src/alt_printf.o: HAL/src/alt_printf.c HAL/inc/sys/alt_stdio.h + +HAL/inc/sys/alt_stdio.h: diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_printf.o b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_printf.o new file mode 100644 index 0000000..ec37fc7 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_printf.o Binary files differ diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_putchar.d b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_putchar.d new file mode 100644 index 0000000..9a0dde3 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_putchar.d @@ -0,0 +1,10 @@ +obj/HAL/src/alt_putchar.o: HAL/src/alt_putchar.c system.h linker.h \ + HAL/inc/sys/alt_driver.h HAL/inc/sys/alt_stdio.h + +system.h: + +linker.h: + +HAL/inc/sys/alt_driver.h: + +HAL/inc/sys/alt_stdio.h: diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_putchar.o b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_putchar.o new file mode 100644 index 0000000..2dcdb7e --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_putchar.o Binary files differ diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_putstr.d b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_putstr.d new file mode 100644 index 0000000..3cf528a --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_putstr.d @@ -0,0 +1,10 @@ +obj/HAL/src/alt_putstr.o: HAL/src/alt_putstr.c system.h linker.h \ + HAL/inc/sys/alt_driver.h HAL/inc/sys/alt_stdio.h + +system.h: + +linker.h: + +HAL/inc/sys/alt_driver.h: + +HAL/inc/sys/alt_stdio.h: diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_putstr.o b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_putstr.o new file mode 100644 index 0000000..0b69827 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_putstr.o Binary files differ diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_read.d b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_read.d new file mode 100644 index 0000000..2bb0d95 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_read.d @@ -0,0 +1,38 @@ +obj/HAL/src/alt_read.o: HAL/src/alt_read.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h HAL/inc/priv/alt_file.h \ + HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h \ + HAL/inc/os/alt_syscall.h system.h HAL/inc/sys/alt_driver.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_syscall.h: + +system.h: + +HAL/inc/sys/alt_driver.h: diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_read.o b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_read.o new file mode 100644 index 0000000..15fc4fe --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_read.o Binary files differ diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_release_fd.d b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_release_fd.d new file mode 100644 index 0000000..0e3acb5 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_release_fd.d @@ -0,0 +1,29 @@ +obj/HAL/src/alt_release_fd.o: HAL/src/alt_release_fd.c \ + HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h HAL/inc/priv/alt_file.h \ + HAL/inc/sys/alt_dev.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_release_fd.o b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_release_fd.o new file mode 100644 index 0000000..91ccf5a --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_release_fd.o Binary files differ diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_remap_cached.d b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_remap_cached.d new file mode 100644 index 0000000..b5fb151 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_remap_cached.d @@ -0,0 +1,10 @@ +obj/HAL/src/alt_remap_cached.o: HAL/src/alt_remap_cached.c \ + HAL/inc/sys/alt_cache.h HAL/inc/alt_types.h system.h linker.h + +HAL/inc/sys/alt_cache.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_remap_cached.o b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_remap_cached.o new file mode 100644 index 0000000..41c81f9 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_remap_cached.o Binary files differ diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_remap_uncached.d b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_remap_uncached.d new file mode 100644 index 0000000..0423405 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_remap_uncached.d @@ -0,0 +1,10 @@ +obj/HAL/src/alt_remap_uncached.o: HAL/src/alt_remap_uncached.c \ + HAL/inc/sys/alt_cache.h HAL/inc/alt_types.h system.h linker.h + +HAL/inc/sys/alt_cache.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_remap_uncached.o b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_remap_uncached.o new file mode 100644 index 0000000..5779904 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_remap_uncached.o Binary files differ diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_rename.d b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_rename.d new file mode 100644 index 0000000..b7af4b2 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_rename.d @@ -0,0 +1,10 @@ +obj/HAL/src/alt_rename.o: HAL/src/alt_rename.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_rename.o b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_rename.o new file mode 100644 index 0000000..128612e --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_rename.o Binary files differ diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_sbrk.d b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_sbrk.d new file mode 100644 index 0000000..a0771ae --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_sbrk.d @@ -0,0 +1,19 @@ +obj/HAL/src/alt_sbrk.o: HAL/src/alt_sbrk.c HAL/inc/os/alt_syscall.h \ + HAL/inc/sys/alt_irq.h HAL/inc/nios2.h HAL/inc/alt_types.h system.h \ + linker.h HAL/inc/sys/alt_stack.h system.h + +HAL/inc/os/alt_syscall.h: + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_stack.h: + +system.h: diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_sbrk.o b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_sbrk.o new file mode 100644 index 0000000..2f6e8c6 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_sbrk.o Binary files differ diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_settod.d b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_settod.d new file mode 100644 index 0000000..56718d5 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_settod.d @@ -0,0 +1,17 @@ +obj/HAL/src/alt_settod.o: HAL/src/alt_settod.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_alarm.h HAL/inc/alt_types.h HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_settod.o b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_settod.o new file mode 100644 index 0000000..5ef7e3d --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_settod.o Binary files differ diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_software_exception.d b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_software_exception.d new file mode 100644 index 0000000..fab4023 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_software_exception.d @@ -0,0 +1,6 @@ +obj/HAL/src/alt_software_exception.o: HAL/src/alt_software_exception.S \ + system.h linker.h + +system.h: + +linker.h: diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_software_exception.o b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_software_exception.o new file mode 100644 index 0000000..f9e01c2 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_software_exception.o Binary files differ diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_stat.d b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_stat.d new file mode 100644 index 0000000..8a63c27 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_stat.d @@ -0,0 +1,3 @@ +obj/HAL/src/alt_stat.o: HAL/src/alt_stat.c HAL/inc/os/alt_syscall.h + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_stat.o b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_stat.o new file mode 100644 index 0000000..aeb58c8 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_stat.o Binary files differ diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_tick.d b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_tick.d new file mode 100644 index 0000000..ddbb281 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_tick.d @@ -0,0 +1,27 @@ +obj/HAL/src/alt_tick.o: HAL/src/alt_tick.c HAL/inc/sys/alt_irq.h \ + HAL/inc/nios2.h HAL/inc/alt_types.h system.h linker.h \ + HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_alarm.h HAL/inc/alt_types.h HAL/inc/os/alt_hooks.h \ + HAL/inc/alt_types.h + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_hooks.h: + +HAL/inc/alt_types.h: diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_tick.o b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_tick.o new file mode 100644 index 0000000..c87b756 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_tick.o Binary files differ diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_times.d b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_times.d new file mode 100644 index 0000000..4bad83d --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_times.d @@ -0,0 +1,17 @@ +obj/HAL/src/alt_times.o: HAL/src/alt_times.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_alarm.h HAL/inc/alt_types.h HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_times.o b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_times.o new file mode 100644 index 0000000..7d12c7c --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_times.o Binary files differ diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_uncached_free.d b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_uncached_free.d new file mode 100644 index 0000000..d74ef4b --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_uncached_free.d @@ -0,0 +1,10 @@ +obj/HAL/src/alt_uncached_free.o: HAL/src/alt_uncached_free.c \ + HAL/inc/sys/alt_cache.h HAL/inc/alt_types.h system.h linker.h + +HAL/inc/sys/alt_cache.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_uncached_free.o b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_uncached_free.o new file mode 100644 index 0000000..69ec0b1 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_uncached_free.o Binary files differ diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_uncached_malloc.d b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_uncached_malloc.d new file mode 100644 index 0000000..16799fb --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_uncached_malloc.d @@ -0,0 +1,10 @@ +obj/HAL/src/alt_uncached_malloc.o: HAL/src/alt_uncached_malloc.c \ + HAL/inc/sys/alt_cache.h HAL/inc/alt_types.h system.h linker.h + +HAL/inc/sys/alt_cache.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_uncached_malloc.o b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_uncached_malloc.o new file mode 100644 index 0000000..cedd32a --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_uncached_malloc.o Binary files differ diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_unlink.d b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_unlink.d new file mode 100644 index 0000000..0205f86 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_unlink.d @@ -0,0 +1,10 @@ +obj/HAL/src/alt_unlink.o: HAL/src/alt_unlink.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_unlink.o b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_unlink.o new file mode 100644 index 0000000..8fe2562 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_unlink.o Binary files differ diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_usleep.d b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_usleep.d new file mode 100644 index 0000000..b5eca45 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_usleep.d @@ -0,0 +1,6 @@ +obj/HAL/src/alt_usleep.o: HAL/src/alt_usleep.c \ + HAL/inc/priv/alt_busy_sleep.h HAL/inc/os/alt_syscall.h + +HAL/inc/priv/alt_busy_sleep.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_usleep.o b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_usleep.o new file mode 100644 index 0000000..7eb8b92 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_usleep.o Binary files differ diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_wait.d b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_wait.d new file mode 100644 index 0000000..f47f5df --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_wait.d @@ -0,0 +1,8 @@ +obj/HAL/src/alt_wait.o: HAL/src/alt_wait.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_wait.o b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_wait.o new file mode 100644 index 0000000..89a8467 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_wait.o Binary files differ diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_write.d b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_write.d new file mode 100644 index 0000000..2b54a68 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_write.d @@ -0,0 +1,41 @@ +obj/HAL/src/alt_write.o: HAL/src/alt_write.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h HAL/inc/priv/alt_file.h \ + HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h \ + HAL/inc/os/alt_syscall.h HAL/inc/sys/alt_log_printf.h system.h \ + HAL/inc/sys/alt_driver.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_syscall.h: + +HAL/inc/sys/alt_log_printf.h: + +system.h: + +HAL/inc/sys/alt_driver.h: diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_write.o b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_write.o new file mode 100644 index 0000000..3d70b90 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/alt_write.o Binary files differ diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/altera_nios2_qsys_irq.d b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/altera_nios2_qsys_irq.d new file mode 100644 index 0000000..47bdd9c --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/altera_nios2_qsys_irq.d @@ -0,0 +1,15 @@ +obj/HAL/src/altera_nios2_qsys_irq.o: HAL/src/altera_nios2_qsys_irq.c \ + HAL/inc/sys/alt_irq.h HAL/inc/nios2.h HAL/inc/alt_types.h system.h \ + linker.h HAL/inc/altera_nios2_qsys_irq.h + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: + +HAL/inc/altera_nios2_qsys_irq.h: diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/altera_nios2_qsys_irq.o b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/altera_nios2_qsys_irq.o new file mode 100644 index 0000000..dfe1663 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/altera_nios2_qsys_irq.o Binary files differ diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/crt0.d b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/crt0.d new file mode 100644 index 0000000..3af0bb0 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/crt0.d @@ -0,0 +1,12 @@ +obj/HAL/src/crt0.o: HAL/src/crt0.S system.h linker.h HAL/inc/nios2.h \ + HAL/inc/sys/alt_log_printf.h system.h + +system.h: + +linker.h: + +HAL/inc/nios2.h: + +HAL/inc/sys/alt_log_printf.h: + +system.h: diff --git a/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/crt0.o b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/crt0.o new file mode 100644 index 0000000..e508ad9 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/HAL/src/crt0.o Binary files differ diff --git a/software/qsys_tutorial_lcd2_bsp/obj/alt_sys_init.d b/software/qsys_tutorial_lcd2_bsp/obj/alt_sys_init.d new file mode 100644 index 0000000..029ebe0 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/alt_sys_init.d @@ -0,0 +1,59 @@ +obj/alt_sys_init.o: alt_sys_init.c system.h linker.h \ + HAL/inc/sys/alt_irq.h HAL/inc/nios2.h HAL/inc/alt_types.h system.h \ + HAL/inc/sys/alt_sys_init.h HAL/inc/altera_nios2_qsys_irq.h \ + drivers/inc/altera_avalon_jtag_uart.h HAL/inc/sys/alt_alarm.h \ + HAL/inc/sys/alt_llist.h HAL/inc/priv/alt_alarm.h HAL/inc/alt_types.h \ + HAL/inc/sys/alt_warning.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h HAL/inc/os/alt_flag.h \ + drivers/inc/altera_avalon_jtag_uart_fd.h HAL/inc/sys/alt_dev.h \ + HAL/inc/sys/alt_llist.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h drivers/inc/altera_avalon_lcd_16207.h \ + drivers/inc/altera_avalon_lcd_16207_fd.h + +system.h: + +linker.h: + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +HAL/inc/sys/alt_sys_init.h: + +HAL/inc/altera_nios2_qsys_irq.h: + +drivers/inc/altera_avalon_jtag_uart.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_flag.h: + +drivers/inc/altera_avalon_jtag_uart_fd.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +drivers/inc/altera_avalon_lcd_16207.h: + +drivers/inc/altera_avalon_lcd_16207_fd.h: diff --git a/software/qsys_tutorial_lcd2_bsp/obj/alt_sys_init.o b/software/qsys_tutorial_lcd2_bsp/obj/alt_sys_init.o new file mode 100644 index 0000000..dcd0c34 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/alt_sys_init.o Binary files differ diff --git a/software/qsys_tutorial_lcd2_bsp/obj/drivers/src/altera_avalon_jtag_uart_fd.d b/software/qsys_tutorial_lcd2_bsp/obj/drivers/src/altera_avalon_jtag_uart_fd.d new file mode 100644 index 0000000..b152697 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/drivers/src/altera_avalon_jtag_uart_fd.d @@ -0,0 +1,48 @@ +obj/drivers/src/altera_avalon_jtag_uart_fd.o: \ + drivers/src/altera_avalon_jtag_uart_fd.c HAL/inc/alt_types.h \ + HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ + drivers/inc/altera_avalon_jtag_uart.h HAL/inc/sys/alt_alarm.h \ + HAL/inc/sys/alt_llist.h HAL/inc/priv/alt_alarm.h \ + HAL/inc/sys/alt_warning.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h HAL/inc/os/alt_flag.h \ + drivers/inc/altera_avalon_jtag_uart_fd.h HAL/inc/sys/alt_dev.h + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +drivers/inc/altera_avalon_jtag_uart.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_flag.h: + +drivers/inc/altera_avalon_jtag_uart_fd.h: + +HAL/inc/sys/alt_dev.h: diff --git a/software/qsys_tutorial_lcd2_bsp/obj/drivers/src/altera_avalon_jtag_uart_fd.o b/software/qsys_tutorial_lcd2_bsp/obj/drivers/src/altera_avalon_jtag_uart_fd.o new file mode 100644 index 0000000..91ece10 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/drivers/src/altera_avalon_jtag_uart_fd.o Binary files differ diff --git a/software/qsys_tutorial_lcd2_bsp/obj/drivers/src/altera_avalon_jtag_uart_init.d b/software/qsys_tutorial_lcd2_bsp/obj/drivers/src/altera_avalon_jtag_uart_init.d new file mode 100644 index 0000000..f9460a1 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/drivers/src/altera_avalon_jtag_uart_init.d @@ -0,0 +1,66 @@ +obj/drivers/src/altera_avalon_jtag_uart_init.o: \ + drivers/src/altera_avalon_jtag_uart_init.c HAL/inc/sys/alt_irq.h \ + HAL/inc/nios2.h HAL/inc/alt_types.h system.h linker.h \ + HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_alarm.h HAL/inc/alt_types.h HAL/inc/sys/ioctl.h \ + HAL/inc/alt_types.h drivers/inc/altera_avalon_jtag_uart_regs.h \ + HAL/inc/io.h HAL/inc/alt_types.h drivers/inc/altera_avalon_jtag_uart.h \ + HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_warning.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h HAL/inc/os/alt_flag.h \ + drivers/inc/altera_avalon_jtag_uart_fd.h HAL/inc/sys/alt_dev.h \ + HAL/inc/sys/alt_llist.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h HAL/inc/sys/alt_log_printf.h system.h + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/ioctl.h: + +HAL/inc/alt_types.h: + +drivers/inc/altera_avalon_jtag_uart_regs.h: + +HAL/inc/io.h: + +HAL/inc/alt_types.h: + +drivers/inc/altera_avalon_jtag_uart.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_flag.h: + +drivers/inc/altera_avalon_jtag_uart_fd.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/sys/alt_log_printf.h: + +system.h: diff --git a/software/qsys_tutorial_lcd2_bsp/obj/drivers/src/altera_avalon_jtag_uart_init.o b/software/qsys_tutorial_lcd2_bsp/obj/drivers/src/altera_avalon_jtag_uart_init.o new file mode 100644 index 0000000..a136b20 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/drivers/src/altera_avalon_jtag_uart_init.o Binary files differ diff --git a/software/qsys_tutorial_lcd2_bsp/obj/drivers/src/altera_avalon_jtag_uart_ioctl.d b/software/qsys_tutorial_lcd2_bsp/obj/drivers/src/altera_avalon_jtag_uart_ioctl.d new file mode 100644 index 0000000..d75a559 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/drivers/src/altera_avalon_jtag_uart_ioctl.d @@ -0,0 +1,58 @@ +obj/drivers/src/altera_avalon_jtag_uart_ioctl.o: \ + drivers/src/altera_avalon_jtag_uart_ioctl.c HAL/inc/sys/ioctl.h \ + HAL/inc/alt_types.h drivers/inc/altera_avalon_jtag_uart_regs.h \ + HAL/inc/io.h HAL/inc/alt_types.h drivers/inc/altera_avalon_jtag_uart.h \ + HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ + HAL/inc/priv/alt_alarm.h HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h \ + HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h HAL/inc/os/alt_flag.h \ + drivers/inc/altera_avalon_jtag_uart_fd.h HAL/inc/sys/alt_dev.h system.h \ + linker.h HAL/inc/sys/alt_llist.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h HAL/inc/sys/alt_log_printf.h system.h + +HAL/inc/sys/ioctl.h: + +HAL/inc/alt_types.h: + +drivers/inc/altera_avalon_jtag_uart_regs.h: + +HAL/inc/io.h: + +HAL/inc/alt_types.h: + +drivers/inc/altera_avalon_jtag_uart.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_flag.h: + +drivers/inc/altera_avalon_jtag_uart_fd.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/sys/alt_log_printf.h: + +system.h: diff --git a/software/qsys_tutorial_lcd2_bsp/obj/drivers/src/altera_avalon_jtag_uart_ioctl.o b/software/qsys_tutorial_lcd2_bsp/obj/drivers/src/altera_avalon_jtag_uart_ioctl.o new file mode 100644 index 0000000..fc9ce92 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/drivers/src/altera_avalon_jtag_uart_ioctl.o Binary files differ diff --git a/software/qsys_tutorial_lcd2_bsp/obj/drivers/src/altera_avalon_jtag_uart_read.d b/software/qsys_tutorial_lcd2_bsp/obj/drivers/src/altera_avalon_jtag_uart_read.d new file mode 100644 index 0000000..9a4846a --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/drivers/src/altera_avalon_jtag_uart_read.d @@ -0,0 +1,66 @@ +obj/drivers/src/altera_avalon_jtag_uart_read.o: \ + drivers/src/altera_avalon_jtag_uart_read.c HAL/inc/sys/alt_irq.h \ + HAL/inc/nios2.h HAL/inc/alt_types.h system.h linker.h \ + HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_alarm.h HAL/inc/alt_types.h HAL/inc/sys/ioctl.h \ + HAL/inc/alt_types.h drivers/inc/altera_avalon_jtag_uart_regs.h \ + HAL/inc/io.h HAL/inc/alt_types.h drivers/inc/altera_avalon_jtag_uart.h \ + HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_warning.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h HAL/inc/os/alt_flag.h \ + drivers/inc/altera_avalon_jtag_uart_fd.h HAL/inc/sys/alt_dev.h \ + HAL/inc/sys/alt_llist.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h HAL/inc/sys/alt_log_printf.h system.h + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/ioctl.h: + +HAL/inc/alt_types.h: + +drivers/inc/altera_avalon_jtag_uart_regs.h: + +HAL/inc/io.h: + +HAL/inc/alt_types.h: + +drivers/inc/altera_avalon_jtag_uart.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_flag.h: + +drivers/inc/altera_avalon_jtag_uart_fd.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/sys/alt_log_printf.h: + +system.h: diff --git a/software/qsys_tutorial_lcd2_bsp/obj/drivers/src/altera_avalon_jtag_uart_read.o b/software/qsys_tutorial_lcd2_bsp/obj/drivers/src/altera_avalon_jtag_uart_read.o new file mode 100644 index 0000000..9222461 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/drivers/src/altera_avalon_jtag_uart_read.o Binary files differ diff --git a/software/qsys_tutorial_lcd2_bsp/obj/drivers/src/altera_avalon_jtag_uart_write.d b/software/qsys_tutorial_lcd2_bsp/obj/drivers/src/altera_avalon_jtag_uart_write.d new file mode 100644 index 0000000..5518b7f --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/drivers/src/altera_avalon_jtag_uart_write.d @@ -0,0 +1,66 @@ +obj/drivers/src/altera_avalon_jtag_uart_write.o: \ + drivers/src/altera_avalon_jtag_uart_write.c HAL/inc/sys/alt_irq.h \ + HAL/inc/nios2.h HAL/inc/alt_types.h system.h linker.h \ + HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_alarm.h HAL/inc/alt_types.h HAL/inc/sys/ioctl.h \ + HAL/inc/alt_types.h drivers/inc/altera_avalon_jtag_uart_regs.h \ + HAL/inc/io.h HAL/inc/alt_types.h drivers/inc/altera_avalon_jtag_uart.h \ + HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_warning.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h HAL/inc/os/alt_flag.h \ + drivers/inc/altera_avalon_jtag_uart_fd.h HAL/inc/sys/alt_dev.h \ + HAL/inc/sys/alt_llist.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h HAL/inc/sys/alt_log_printf.h system.h + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/ioctl.h: + +HAL/inc/alt_types.h: + +drivers/inc/altera_avalon_jtag_uart_regs.h: + +HAL/inc/io.h: + +HAL/inc/alt_types.h: + +drivers/inc/altera_avalon_jtag_uart.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_flag.h: + +drivers/inc/altera_avalon_jtag_uart_fd.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/sys/alt_log_printf.h: + +system.h: diff --git a/software/qsys_tutorial_lcd2_bsp/obj/drivers/src/altera_avalon_jtag_uart_write.o b/software/qsys_tutorial_lcd2_bsp/obj/drivers/src/altera_avalon_jtag_uart_write.o new file mode 100644 index 0000000..8602b6d --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/drivers/src/altera_avalon_jtag_uart_write.o Binary files differ diff --git a/software/qsys_tutorial_lcd2_bsp/obj/drivers/src/altera_avalon_lcd_16207.d b/software/qsys_tutorial_lcd2_bsp/obj/drivers/src/altera_avalon_lcd_16207.d new file mode 100644 index 0000000..dfd0adb --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/drivers/src/altera_avalon_lcd_16207.d @@ -0,0 +1,47 @@ +obj/drivers/src/altera_avalon_lcd_16207.o: \ + drivers/src/altera_avalon_lcd_16207.c HAL/inc/sys/alt_alarm.h \ + HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h HAL/inc/priv/alt_alarm.h \ + HAL/inc/alt_types.h drivers/inc/altera_avalon_lcd_16207_regs.h \ + HAL/inc/io.h HAL/inc/alt_types.h drivers/inc/altera_avalon_lcd_16207.h \ + HAL/inc/sys/alt_alarm.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h drivers/inc/altera_avalon_lcd_16207_fd.h \ + HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/alt_types.h: + +drivers/inc/altera_avalon_lcd_16207_regs.h: + +HAL/inc/io.h: + +HAL/inc/alt_types.h: + +drivers/inc/altera_avalon_lcd_16207.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +drivers/inc/altera_avalon_lcd_16207_fd.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: diff --git a/software/qsys_tutorial_lcd2_bsp/obj/drivers/src/altera_avalon_lcd_16207.o b/software/qsys_tutorial_lcd2_bsp/obj/drivers/src/altera_avalon_lcd_16207.o new file mode 100644 index 0000000..4554201 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/drivers/src/altera_avalon_lcd_16207.o Binary files differ diff --git a/software/qsys_tutorial_lcd2_bsp/obj/drivers/src/altera_avalon_lcd_16207_fd.d b/software/qsys_tutorial_lcd2_bsp/obj/drivers/src/altera_avalon_lcd_16207_fd.d new file mode 100644 index 0000000..b39dc1d --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/drivers/src/altera_avalon_lcd_16207_fd.d @@ -0,0 +1,43 @@ +obj/drivers/src/altera_avalon_lcd_16207_fd.o: \ + drivers/src/altera_avalon_lcd_16207_fd.c HAL/inc/alt_types.h \ + HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ + drivers/inc/altera_avalon_lcd_16207.h HAL/inc/sys/alt_alarm.h \ + HAL/inc/sys/alt_llist.h HAL/inc/priv/alt_alarm.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h drivers/inc/altera_avalon_lcd_16207_fd.h \ + HAL/inc/sys/alt_dev.h + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +drivers/inc/altera_avalon_lcd_16207.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +drivers/inc/altera_avalon_lcd_16207_fd.h: + +HAL/inc/sys/alt_dev.h: diff --git a/software/qsys_tutorial_lcd2_bsp/obj/drivers/src/altera_avalon_lcd_16207_fd.o b/software/qsys_tutorial_lcd2_bsp/obj/drivers/src/altera_avalon_lcd_16207_fd.o new file mode 100644 index 0000000..d43dc6a --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/obj/drivers/src/altera_avalon_lcd_16207_fd.o Binary files differ diff --git a/software/qsys_tutorial_lcd2_bsp/public.mk b/software/qsys_tutorial_lcd2_bsp/public.mk new file mode 100644 index 0000000..5eb883d --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/public.mk @@ -0,0 +1,385 @@ +#------------------------------------------------------------------------------ +# BSP "PUBLIC" MAKEFILE CONTENT +# +# This file is intended to be included in an application or library +# Makefile that is using this BSP. You can create such a Makefile with +# the nios2-app-generate-makefile or nios2-lib-generate-makefile +# commands. +# +# The following variables must be defined before including this file: +# +# ALT_LIBRARY_ROOT_DIR +# Contains the path to the BSP top-level (aka root) directory +#------------------------------------------------------------------------------ + +#------------------------------------------------------------------------------ +# PATHS +#------------------------------------------------------------------------------ + + + +# Path to the provided linker script. +BSP_LINKER_SCRIPT := $(ALT_LIBRARY_ROOT_DIR)/linker.x + +# Include paths: +# The path to root of all header files that a library wishes to make +# available for an application's use is specified here. Note that this +# may not be *all* folders within a hierarchy. For example, if it is +# desired that the application developer type: +# #include +# #include +# With files laid out like this: +# /inc/sockets.h +# /inc/ip/tcpip.h +# +# Then, only /inc need be added to the list of include +# directories. Alternatively, if you wish to be able to directly include +# all files in a hierarchy, separate paths to each folder in that +# hierarchy must be defined. + +# The following are the "base" set of include paths for a BSP. +# These paths are appended to the list that individual software +# components, drivers, etc., add in the generated portion of this +# file (below). +ALT_INCLUDE_DIRS_TO_APPEND += \ + $(ALT_LIBRARY_ROOT_DIR) \ + $(ALT_LIBRARY_ROOT_DIR)/drivers/inc + +# Additions to linker library search-path: +# Here we provide a path to "our self" for the application to construct a +# "-L " out of. This should contain a list of directories, +# relative to the library root, of all directories with .a files to link +# against. +ALT_LIBRARY_DIRS += $(ALT_LIBRARY_ROOT_DIR) + + +#------------------------------------------------------------------------------ +# COMPILATION FLAGS +#------------------------------------------------------------------------------ +# Default C pre-processor flags for a BSP: +ALT_CPPFLAGS += -DSYSTEM_BUS_WIDTH=32 \ + -pipe + + +#------------------------------------------------------------------------------ +# MANAGED CONTENT +# +# All content between the lines "START MANAGED" and "END MANAGED" below is +# generated based on variables in the BSP settings file when the +# nios2-bsp-generate-files command is invoked. If you wish to persist any +# information pertaining to the build process, it is recomended that you +# utilize the BSP settings mechanism to do so. +#------------------------------------------------------------------------------ +#START MANAGED + +# The following TYPE comment allows tools to identify the 'type' of target this +# makefile is associated with. +# TYPE: BSP_PUBLIC_MAKEFILE + +# This following VERSION comment indicates the version of the tool used to +# generate this makefile. A makefile variable is provided for VERSION as well. +# ACDS_VERSION: 13.0sp1 +ACDS_VERSION := 13.0sp1 + +# This following BUILD_NUMBER comment indicates the build number of the tool +# used to generate this makefile. +# BUILD_NUMBER: 232 + +# Qsys--generated SOPCINFO file. Required for resolving node instance ID's with +# design component names. +SOPCINFO_FILE := C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.sopcinfo + +# Big-Endian operation. +# setting BIG_ENDIAN is false +ALT_CFLAGS += -EL + +# Path to the provided C language runtime initialization code. +BSP_CRT0 := $(ALT_LIBRARY_ROOT_DIR)/obj/HAL/src/crt0.o + +# Name of BSP library as provided to linker using the "-msys-lib" flag or +# linker script GROUP command. +# setting BSP_SYS_LIB is hal_bsp +BSP_SYS_LIB := hal_bsp +ELF_PATCH_FLAG += --thread_model hal + +# Type identifier of the BSP library +# setting BSP_TYPE is hal +ALT_CPPFLAGS += -D__hal__ +BSP_TYPE := hal + +# CPU Name +# setting CPU_NAME is nios2_processor +CPU_NAME = nios2_processor +ELF_PATCH_FLAG += --cpu_name $(CPU_NAME) + +# Hardware Divider present. +# setting HARDWARE_DIVIDE is false +ALT_CFLAGS += -mno-hw-div + +# Hardware Multiplier present. +# setting HARDWARE_MULTIPLY is false +ALT_CFLAGS += -mno-hw-mul + +# Hardware Mulx present. +# setting HARDWARE_MULX is false +ALT_CFLAGS += -mno-hw-mulx + +# Debug Core present. +# setting HAS_DEBUG_CORE is true +CPU_HAS_DEBUG_CORE = 1 + +# Qsys generated design +# setting QSYS is 1 +QSYS := 1 +ELF_PATCH_FLAG += --qsys true + +# Design Name +# setting SOPC_NAME is nios_system +SOPC_NAME := nios_system + +# SopcBuilder Simulation Enabled +# setting SOPC_SIMULATION_ENABLED is false +ELF_PATCH_FLAG += --simulation_enabled false + +# Enable JTAG UART driver to recover when host is inactive causing buffer to +# full without returning error. Printf will not fail with this recovery. none +# setting altera_avalon_jtag_uart_driver.enable_jtag_uart_ignore_fifo_full_error is false + +# Small-footprint (polled mode) driver none +# setting altera_avalon_jtag_uart_driver.enable_small_driver is false + +# Build a custom version of newlib with the specified space-separated compiler +# flags. The custom newlib build will be placed in the <bsp root>/newlib +# directory, and will be used only for applications that utilize this BSP. +# setting hal.custom_newlib_flags is none + +# Enable support for a subset of the C++ language. This option increases code +# footprint by adding support for C++ constructors. Certain features, such as +# multiple inheritance and exceptions are not supported. If false, adds +# -DALT_NO_C_PLUS_PLUS to ALT_CPPFLAGS in public.mk, and reduces code +# footprint. none +# setting hal.enable_c_plus_plus is false +ALT_CPPFLAGS += -DALT_NO_C_PLUS_PLUS + +# When your application exits, close file descriptors, call C++ destructors, +# etc. Code footprint can be reduced by disabling clean exit. If disabled, adds +# -DALT_NO_CLEAN_EXIT to ALT_CPPFLAGS and -Wl,--defsym, exit=_exit to +# ALT_LDFLAGS in public.mk. none +# setting hal.enable_clean_exit is false +ALT_CPPFLAGS += -DALT_NO_CLEAN_EXIT +ALT_LDFLAGS += -Wl,--defsym,exit=_exit + +# Add exit() support. This option increases code footprint if your "main()" +# routine does "return" or call "exit()". If false, adds -DALT_NO_EXIT to +# ALT_CPPFLAGS in public.mk, and reduces footprint none +# setting hal.enable_exit is false +ALT_CPPFLAGS += -DALT_NO_EXIT + +# Causes code to be compiled with gprof profiling enabled and the application +# ELF to be linked with the GPROF library. If true, adds -DALT_PROVIDE_GMON to +# ALT_CPPFLAGS and -pg to ALT_CFLAGS in public.mk. none +# setting hal.enable_gprof is false + +# Enables lightweight device driver API. This reduces code and data footprint +# by removing the HAL layer that maps device names (e.g. /dev/uart0) to file +# descriptors. Instead, driver routines are called directly. The open(), +# close(), and lseek() routines will always fail if called. The read(), +# write(), fstat(), ioctl(), and isatty() routines only work for the stdio +# devices. If true, adds -DALT_USE_DIRECT_DRIVERS to ALT_CPPFLAGS in public.mk. +# The Altera Host and read-only ZIP file systems can't be used if +# hal.enable_lightweight_device_driver_api is true. +# setting hal.enable_lightweight_device_driver_api is true +ALT_CPPFLAGS += -DALT_USE_DIRECT_DRIVERS + +# Adds code to emulate multiply and divide instructions in case they are +# executed but aren't present in the CPU. Normally this isn't required because +# the compiler won't use multiply and divide instructions that aren't present +# in the CPU. If false, adds -DALT_NO_INSTRUCTION_EMULATION to ALT_CPPFLAGS in +# public.mk. none +# setting hal.enable_mul_div_emulation is false +ALT_CPPFLAGS += -DALT_NO_INSTRUCTION_EMULATION + +# Certain drivers are compiled with reduced functionality to reduce code +# footprint. Not all drivers observe this setting. The altera_avalon_uart and +# altera_avalon_jtag_uart drivers switch from interrupt-driven to polled +# operation. CAUTION: Several device drivers are disabled entirely. These +# include the altera_avalon_cfi_flash, altera_avalon_epcs_flash_controller, and +# altera_avalon_lcd_16207 drivers. This can result in certain API (HAL flash +# access routines) to fail. You can define a symbol provided by each driver to +# prevent it from being removed. If true, adds -DALT_USE_SMALL_DRIVERS to +# ALT_CPPFLAGS in public.mk. none +# setting hal.enable_reduced_device_drivers is true +ALT_CPPFLAGS += -DALT_USE_SMALL_DRIVERS + +# Turns on HAL runtime stack checking feature. Enabling this setting causes +# additional code to be placed into each subroutine call to generate an +# exception if a stack collision occurs with the heap or statically allocated +# data. If true, adds -DALT_STACK_CHECK and -mstack-check to ALT_CPPFLAGS in +# public.mk. none +# setting hal.enable_runtime_stack_checking is false + +# The BSP is compiled with optimizations to speedup HDL simulation such as +# initializing the cache, clearing the .bss section, and skipping long delay +# loops. If true, adds -DALT_SIM_OPTIMIZE to ALT_CPPFLAGS in public.mk. When +# this setting is true, the BSP shouldn't be used to build applications that +# are expected to run real hardware. +# setting hal.enable_sim_optimize is false + +# Causes the small newlib (C library) to be used. This reduces code and data +# footprint at the expense of reduced functionality. Several newlib features +# are removed such as floating-point support in printf(), stdin input routines, +# and buffered I/O. The small C library is not compatible with Micrium +# MicroC/OS-II. If true, adds -msmallc to ALT_LDFLAGS in public.mk. none +# setting hal.enable_small_c_library is true +ALT_LDFLAGS += -msmallc +ALT_CPPFLAGS += -DSMALL_C_LIB + +# Enable SOPC Builder System ID. If a System ID SOPC Builder component is +# connected to the CPU associated with this BSP, it will be enabled in the +# creation of command-line arguments to download an ELF to the target. +# Otherwise, system ID and timestamp values are left out of public.mk for +# application Makefile "download-elf" target definition. With the system ID +# check disabled, the Nios II EDS tools will not automatically ensure that the +# application .elf file (and BSP it is linked against) corresponds to the +# hardware design on the target. If false, adds --accept-bad-sysid to +# SOPC_SYSID_FLAG in public.mk. none +# setting hal.enable_sopc_sysid_check is true + +# Enable BSP generation to query if SOPC system is big endian. If true ignores +# export of 'ALT_CFLAGS += -EB' to public.mk if big endian system. If true +# ignores export of 'ALT_CFLAGS += -EL' if little endian system. none +# setting hal.make.ignore_system_derived.big_endian is false + +# Enable BSP generation to query if SOPC system has a debug core present. If +# true ignores export of 'CPU_HAS_DEBUG_CORE = 1' to public.mk if a debug core +# is found in the system. If true ignores export of 'CPU_HAS_DEBUG_CORE = 0' if +# no debug core is found in the system. none +# setting hal.make.ignore_system_derived.debug_core_present is false + +# Enable BSP generation to query if SOPC system has FPU present. If true +# ignores export of 'ALT_CFLAGS += -mhard-float' to public.mk if FPU is found +# in the system. If true ignores export of 'ALT_CFLAGS += -mhard-soft' if FPU +# is not found in the system. none +# setting hal.make.ignore_system_derived.fpu_present is false + +# Enable BSP generation to query if SOPC system has hardware divide present. If +# true ignores export of 'ALT_CFLAGS += -mno-hw-div' to public.mk if no +# division is found in system. If true ignores export of 'ALT_CFLAGS += +# -mhw-div' if division is found in the system. none +# setting hal.make.ignore_system_derived.hardware_divide_present is false + +# Enable BSP generation to query if SOPC system floating point custom +# instruction with a divider is present. If true ignores export of 'ALT_CFLAGS +# += -mcustom-fpu-cfg=60-2' and 'ALT_LDFLAGS += -mcustom-fpu-cfg=60-2' to +# public.mk if the custom instruction is found in the system. none +# setting hal.make.ignore_system_derived.hardware_fp_cust_inst_divider_present is false + +# Enable BSP generation to query if SOPC system floating point custom +# instruction without a divider is present. If true ignores export of +# 'ALT_CFLAGS += -mcustom-fpu-cfg=60-1' and 'ALT_LDFLAGS += +# -mcustom-fpu-cfg=60-1' to public.mk if the custom instruction is found in the +# system. none +# setting hal.make.ignore_system_derived.hardware_fp_cust_inst_no_divider_present is false + +# Enable BSP generation to query if SOPC system has multiplier present. If true +# ignores export of 'ALT_CFLAGS += -mno-hw-mul' to public.mk if no multiplier +# is found in the system. If true ignores export of 'ALT_CFLAGS += -mhw-mul' if +# multiplier is found in the system. none +# setting hal.make.ignore_system_derived.hardware_multiplier_present is false + +# Enable BSP generation to query if SOPC system has hardware mulx present. If +# true ignores export of 'ALT_CFLAGS += -mno-hw-mulx' to public.mk if no mulx +# is found in the system. If true ignores export of 'ALT_CFLAGS += -mhw-mulx' +# if mulx is found in the system. none +# setting hal.make.ignore_system_derived.hardware_mulx_present is false + +# Enable BSP generation to query if SOPC system has simulation enabled. If true +# ignores export of 'ELF_PATCH_FLAG += --simulation_enabled' to public.mk. none +# setting hal.make.ignore_system_derived.sopc_simulation_enabled is false + +# Enable BSP generation to query SOPC system for system ID base address. If +# true ignores export of 'SOPC_SYSID_FLAG += --sidp=
' and +# 'ELF_PATCH_FLAG += --sidp=
' to public.mk. none +# setting hal.make.ignore_system_derived.sopc_system_base_address is false + +# Enable BSP generation to query SOPC system for system ID. If true ignores +# export of 'SOPC_SYSID_FLAG += --id=' and 'ELF_PATCH_FLAG += +# --id=' to public.mk. none +# setting hal.make.ignore_system_derived.sopc_system_id is false + +# Enable BSP generation to query SOPC system for system timestamp. If true +# ignores export of 'SOPC_SYSID_FLAG += --timestamp=' and +# 'ELF_PATCH_FLAG += --timestamp=' to public.mk. none +# setting hal.make.ignore_system_derived.sopc_system_timestamp is false + +# Slave descriptor of STDERR character-mode device. This setting is used by the +# ALT_STDERR family of defines in system.h. none +# setting hal.stderr is jtag_uart +ELF_PATCH_FLAG += --stderr_dev jtag_uart + +# Slave descriptor of STDIN character-mode device. This setting is used by the +# ALT_STDIN family of defines in system.h. none +# setting hal.stdin is jtag_uart +ELF_PATCH_FLAG += --stdin_dev jtag_uart + +# Slave descriptor of STDOUT character-mode device. This setting is used by the +# ALT_STDOUT family of defines in system.h. none +# setting hal.stdout is jtag_uart +ELF_PATCH_FLAG += --stdout_dev jtag_uart + + +#------------------------------------------------------------------------------ +# SOFTWARE COMPONENT & DRIVER INCLUDE PATHS +#------------------------------------------------------------------------------ + +ALT_INCLUDE_DIRS += $(ALT_LIBRARY_ROOT_DIR)/HAL/inc + +#------------------------------------------------------------------------------ +# SOFTWARE COMPONENT & DRIVER PRODUCED ALT_CPPFLAGS ADDITIONS +#------------------------------------------------------------------------------ + +ALT_CPPFLAGS += -DALT_SINGLE_THREADED + +#END MANAGED + + +#------------------------------------------------------------------------------ +# LIBRARY INFORMATION +#------------------------------------------------------------------------------ +# Assemble the name of the BSP *.a file using the BSP library name +# (BSP_SYS_LIB) in generated content above. +BSP_LIB := lib$(BSP_SYS_LIB).a + +# Additional libraries to link against: +# An application including this file will prefix each library with "-l". +# For example, to include the Newlib math library "m" is included, which +# becomes "-lm" when linking the application. +ALT_LIBRARY_NAMES += m + +# Additions to linker dependencies: +# An application Makefile will typically add these directly to the list +# of dependencies required to build the executable target(s). The BSP +# library (*.a) file is specified here. +ALT_LDDEPS += $(ALT_LIBRARY_ROOT_DIR)/$(BSP_LIB) + +# Is this library "Makeable"? +# Add to list of root library directories that support running 'make' +# to build them. Because libraries may or may not have a Makefile in their +# root, appending to this variable tells an application to run 'make' in +# the library root to build/update this library. +MAKEABLE_LIBRARY_ROOT_DIRS += $(ALT_LIBRARY_ROOT_DIR) + +# Additional Assembler Flags +# -gdwarf2 flag is required for stepping through assembly code +ALT_ASFLAGS += -gdwarf2 + +#------------------------------------------------------------------------------ +# FINAL INCLUDE PATH LIST +#------------------------------------------------------------------------------ +# Append static include paths to paths specified by OS/driver/sw package +# additions to the BSP thus giving them precedence in case a BSP addition +# is attempting to override BSP sources. +ALT_INCLUDE_DIRS += $(ALT_INCLUDE_DIRS_TO_APPEND) + + + diff --git a/software/qsys_tutorial_lcd2_bsp/settings.bsp b/software/qsys_tutorial_lcd2_bsp/settings.bsp new file mode 100644 index 0000000..79cf4df --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/settings.bsp @@ -0,0 +1,991 @@ + + + hal + default + 2016/12/02 0:00:36 + 1480604436216 + C:\Users\takayun\Documents\DE2-115\qsys_tutorial\software\qsys_tutorial_lcd2_bsp + .\settings.bsp + C:\Users\takayun\Documents\DE2-115\qsys_tutorial\nios_system.sopcinfo + default + nios2_processor + 1.9 + + hal.sys_clk_timer + ALT_SYS_CLK + UnquotedString + none + none + system_h_define + Slave descriptor of the system clock timer device. This device provides a periodic interrupt ("tick") and is typically required for RTOS use. This setting defines the value of ALT_SYS_CLK in system.h. + none + false + common + + + hal.timestamp_timer + ALT_TIMESTAMP_CLK + UnquotedString + none + none + system_h_define + Slave descriptor of timestamp timer device. This device is used by Altera HAL timestamp drivers for high-resolution time measurement. This setting defines the value of ALT_TIMESTAMP_CLK in system.h. + none + false + common + + + hal.max_file_descriptors + ALT_MAX_FD + DecimalNumber + 4 + 32 + system_h_define + Determines the number of file descriptors statically allocated. This setting defines the value of ALT_MAX_FD in system.h. + If hal.enable_lightweight_device_driver_api is true, there are no file descriptors so this setting is ignored. If hal.enable_lightweight_device_driver_api is false, this setting must be at least 4 because HAL needs a file descriptor for /dev/null, /dev/stdin, /dev/stdout, and /dev/stderr. + false + + + + hal.enable_instruction_related_exceptions_api + ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API + BooleanDefineOnly + false + false + system_h_define + Enables API for registering handlers to service instruction-related exceptions. Enabling this setting increases the size of the exception entry code. + These exception types can be generated if various processor options are enabled, such as the MMU, MPU, or other advanced exception types. + false + + + + hal.linker.allow_code_at_reset + ALT_ALLOW_CODE_AT_RESET + Boolean + 1 + 0 + none + Indicates if initialization code is allowed at the reset address. If true, defines the macro ALT_ALLOW_CODE_AT_RESET in linker.h. + If true, defines the macro ALT_ALLOW_CODE_AT_RESET in linker.h. This setting is typically false if an external bootloader (e.g. flash bootloader) is present. + false + + + + hal.linker.enable_alt_load + NONE + Boolean + 1 + 0 + none + Enables the alt_load() facility. The alt_load() facility copies sections from the .text memory into RAM. If true, this setting sets up the VMA/LMA of sections in linker.x to allow them to be loaded into the .text memory. + This setting is typically false if an external bootloader (e.g. flash bootloader) is present. + false + + + + hal.linker.enable_alt_load_copy_rodata + NONE + Boolean + 0 + 0 + none + Causes the alt_load() facility to copy the .rodata section. If true, this setting defines the macro ALT_LOAD_COPY_RODATA in linker.h. + none + false + + + + hal.linker.enable_alt_load_copy_rwdata + NONE + Boolean + 1 + 0 + none + Causes the alt_load() facility to copy the .rwdata section. If true, this setting defines the macro ALT_LOAD_COPY_RWDATA in linker.h. + none + false + + + + hal.linker.enable_alt_load_copy_exceptions + NONE + Boolean + 0 + 0 + none + Causes the alt_load() facility to copy the .exceptions section. If true, this setting defines the macro ALT_LOAD_COPY_EXCEPTIONS in linker.h. + none + false + + + + hal.linker.enable_exception_stack + NONE + Boolean + 0 + 0 + none + Enables use of a separate exception stack. If true, defines the macro ALT_EXCEPTION_STACK in linker.h, adds a memory region called exception_stack to linker.x, and provides the symbols __alt_exception_stack_pointer and __alt_exception_stack_limit in linker.x. + The hal.linker.exception_stack_size and hal.linker.exception_stack_memory_region_name settings must also be valid. This setting must be false for MicroC/OS-II BSPs. The exception stack can be used to improve interrupt and other exception performance if the EIC is *not* used. + false + common + + + hal.linker.exception_stack_size + NONE + DecimalNumber + 1024 + 1024 + none + Size of the exception stack in bytes. + Only used if hal.linker.enable_exception_stack is true. + false + common + + + hal.linker.exception_stack_memory_region_name + NONE + UnquotedString + onchip_memory + none + none + Name of the existing memory region that will be divided up to create the 'exception_stack' memory region. The selected region name will be adjusted automatically when the BSP is generated to create the 'exception_stack' memory region. + Only used if hal.linker.enable_exception_stack is true. + false + common + + + hal.linker.enable_interrupt_stack + NONE + Boolean + 0 + 0 + none + Enables use of a separate interrupt stack. If true, defines the macro ALT_INTERRUPT_STACK in linker.h, adds a memory region called interrupt_stack to linker.x, and provides the symbols __alt_interrupt_stack_pointer and __alt_interrupt_stack_limit in linker.x. + The hal.linker.interrupt_stack_size and hal.linker.interrupt_stack_memory_region_name settings must also be valid. This setting must be false for MicroC/OS-II BSPs. Only enable if the EIC is used exclusively. The exception stack can be used to improve interrupt and other exception performance if the EIC is *not* used. + false + common + + + hal.linker.interrupt_stack_size + NONE + DecimalNumber + 1024 + 1024 + none + Size of the interrupt stack in bytes. + Only used if hal.linker.enable_interrupt_stack is true. + false + common + + + hal.linker.interrupt_stack_memory_region_name + NONE + UnquotedString + onchip_memory + none + none + Name of the existing memory region that will be divided up to create the 'interrupt_stack' memory region. The selected region name will be adjusted automatically when the BSP is generated to create the 'interrupt_stack' memory region. + Only used if hal.linker.enable_interrupt_stack is true. + false + common + + + hal.stdin + NONE + UnquotedString + jtag_uart + none + system_h_define + Slave descriptor of STDIN character-mode device. This setting is used by the ALT_STDIN family of defines in system.h. + none + false + common + + + hal.stdout + NONE + UnquotedString + jtag_uart + none + system_h_define + Slave descriptor of STDOUT character-mode device. This setting is used by the ALT_STDOUT family of defines in system.h. + none + false + common + + + hal.stderr + NONE + UnquotedString + jtag_uart + none + system_h_define + Slave descriptor of STDERR character-mode device. This setting is used by the ALT_STDERR family of defines in system.h. + none + false + common + + + hal.log_port + NONE + UnquotedString + none + none + public_mk_define + Slave descriptor of debug logging character-mode device. If defined, it enables extra debug messages in the HAL source. This setting is used by the ALT_LOG_PORT family of defines in system.h. + none + false + none + + + hal.make.build_pre_process + BUILD_PRE_PROCESS + UnquotedString + none + none + makefile_variable + Command executed before BSP built. + none + false + none + + + hal.make.ar_pre_process + AR_PRE_PROCESS + UnquotedString + none + none + makefile_variable + Command executed before archiver execution. + none + false + none + + + hal.make.bsp_cflags_defined_symbols + BSP_CFLAGS_DEFINED_SYMBOLS + UnquotedString + none + none + makefile_variable + Preprocessor macros to define. A macro definition in this setting has the same effect as a "#define" in source code. Adding "-DALT_DEBUG" to this setting has the same effect as "#define ALT_DEBUG" in a souce file. Adding "-DFOO=1" to this setting is equivalent to the macro "#define FOO 1" in a source file. Macros defined with this setting are applied to all .S, .c, and C++ files in the BSP. This setting defines the value of BSP_CFLAGS_DEFINED_SYMBOLS in the BSP Makefile. + none + false + none + + + hal.make.ar_post_process + AR_POST_PROCESS + UnquotedString + none + none + makefile_variable + Command executed after archiver execution. + none + false + none + + + hal.make.as + AS + UnquotedString + nios2-elf-gcc + nios2-elf-gcc + makefile_variable + Assembler command. Note that CC is used for .S files. + none + false + none + + + hal.make.build_post_process + BUILD_POST_PROCESS + UnquotedString + none + none + makefile_variable + Command executed after BSP built. + none + false + none + + + hal.make.bsp_cflags_debug + BSP_CFLAGS_DEBUG + UnquotedString + -g + -g + makefile_variable + C/C++ compiler debug level. '-g' provides the default set of debug symbols typically required to debug a typical application. Omitting '-g' removes debug symbols from the ELF. This setting defines the value of BSP_CFLAGS_DEBUG in Makefile. + none + false + common + + + hal.make.ar + AR + UnquotedString + nios2-elf-ar + nios2-elf-ar + makefile_variable + Archiver command. Creates library files. + none + false + none + + + hal.make.rm + RM + UnquotedString + rm -f + rm -f + makefile_variable + Command used to remove files during 'clean' target. + none + false + none + + + hal.make.cxx_pre_process + CXX_PRE_PROCESS + UnquotedString + none + none + makefile_variable + Command executed before each C++ file is compiled. + none + false + none + + + hal.make.bsp_cflags_warnings + BSP_CFLAGS_WARNINGS + UnquotedString + -Wall + -Wall + makefile_variable + C/C++ compiler warning level. "-Wall" is commonly used.This setting defines the value of BSP_CFLAGS_WARNINGS in Makefile. + none + false + none + + + hal.make.bsp_arflags + BSP_ARFLAGS + UnquotedString + -src + -src + makefile_variable + Custom flags only passed to the archiver. This content of this variable is directly passed to the archiver rather than the more standard "ARFLAGS". The reason for this is that GNU Make assumes some default content in ARFLAGS. This setting defines the value of BSP_ARFLAGS in Makefile. + none + false + none + + + hal.make.bsp_cflags_optimization + BSP_CFLAGS_OPTIMIZATION + UnquotedString + '-Os' + -O0 + makefile_variable + C/C++ compiler optimization level. "-O0" = no optimization,"-O2" = "normal" optimization, etc. "-O0" is recommended for code that you want to debug since compiler optimization can remove variables and produce non-sequential execution of code while debugging. This setting defines the value of BSP_CFLAGS_OPTIMIZATION in Makefile. + none + false + common + + + hal.make.as_post_process + AS_POST_PROCESS + UnquotedString + none + none + makefile_variable + Command executed after each assembly file is compiled. + none + false + none + + + hal.make.cc_pre_process + CC_PRE_PROCESS + UnquotedString + none + none + makefile_variable + Command executed before each .c/.S file is compiled. + none + false + none + + + hal.make.bsp_asflags + BSP_ASFLAGS + UnquotedString + -Wa,-gdwarf2 + -Wa,-gdwarf2 + makefile_variable + Custom flags only passed to the assembler. This setting defines the value of BSP_ASFLAGS in Makefile. + none + false + none + + + hal.make.as_pre_process + AS_PRE_PROCESS + UnquotedString + none + none + makefile_variable + Command executed before each assembly file is compiled. + none + false + none + + + hal.make.bsp_cflags_undefined_symbols + BSP_CFLAGS_UNDEFINED_SYMBOLS + UnquotedString + none + none + makefile_variable + Preprocessor macros to undefine. Undefined macros are similar to defined macros, but replicate the "#undef" directive in source code. To undefine the macro FOO use the syntax "-u FOO" in this setting. This is equivalent to "#undef FOO" in a source file. Note: the syntax differs from macro definition (there is a space, i.e. "-u FOO" versus "-DFOO"). Macros defined with this setting are applied to all .S, .c, and C++ files in the BSP. This setting defines the value of BSP_CFLAGS_UNDEFINED_SYMBOLS in the BSP Makefile. + none + false + none + + + hal.make.cc_post_process + CC_POST_PROCESS + UnquotedString + none + none + makefile_variable + Command executed after each .c/.S file is compiled. + none + false + none + + + hal.make.cxx_post_process + CXX_POST_PROCESS + UnquotedString + none + none + makefile_variable + Command executed before each C++ file is compiled. + none + false + none + + + hal.make.cc + CC + UnquotedString + nios2-elf-gcc -xc + nios2-elf-gcc -xc + makefile_variable + C compiler command. + none + false + none + + + hal.make.bsp_cxx_flags + BSP_CXXFLAGS + UnquotedString + none + none + makefile_variable + Custom flags only passed to the C++ compiler. This setting defines the value of BSP_CXXFLAGS in Makefile. + none + false + none + + + hal.make.bsp_inc_dirs + BSP_INC_DIRS + UnquotedString + none + none + makefile_variable + Space separated list of extra include directories to scan for header files. Directories are relative to the top-level BSP directory. The -I prefix's added by the makefile so don't add it here. This setting defines the value of BSP_INC_DIRS in Makefile. + none + false + none + + + hal.make.cxx + CXX + UnquotedString + nios2-elf-gcc -xc++ + nios2-elf-gcc -xc++ + makefile_variable + C++ compiler command. + none + false + none + + + hal.make.bsp_cflags_user_flags + BSP_CFLAGS_USER_FLAGS + UnquotedString + none + none + makefile_variable + Custom flags passed to the compiler when compiling C, C++, and .S files. This setting defines the value of BSP_CFLAGS_USER_FLAGS in Makefile. + none + false + none + + + hal.make.ignore_system_derived.sopc_system_id + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query SOPC system for system ID. If true ignores export of 'SOPC_SYSID_FLAG += --id=<sysid>' and 'ELF_PATCH_FLAG += --id=<sysid>' to public.mk. + none + false + none + + + hal.make.ignore_system_derived.sopc_system_timestamp + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query SOPC system for system timestamp. If true ignores export of 'SOPC_SYSID_FLAG += --timestamp=<timestamp>' and 'ELF_PATCH_FLAG += --timestamp=<timestamp>' to public.mk. + none + false + none + + + hal.make.ignore_system_derived.sopc_system_base_address + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query SOPC system for system ID base address. If true ignores export of 'SOPC_SYSID_FLAG += --sidp=<address>' and 'ELF_PATCH_FLAG += --sidp=<address>' to public.mk. + none + false + none + + + hal.make.ignore_system_derived.sopc_simulation_enabled + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query if SOPC system has simulation enabled. If true ignores export of 'ELF_PATCH_FLAG += --simulation_enabled' to public.mk. + none + false + none + + + hal.make.ignore_system_derived.fpu_present + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query if SOPC system has FPU present. If true ignores export of 'ALT_CFLAGS += -mhard-float' to public.mk if FPU is found in the system. If true ignores export of 'ALT_CFLAGS += -mhard-soft' if FPU is not found in the system. + none + false + none + + + hal.make.ignore_system_derived.hardware_multiplier_present + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query if SOPC system has multiplier present. If true ignores export of 'ALT_CFLAGS += -mno-hw-mul' to public.mk if no multiplier is found in the system. If true ignores export of 'ALT_CFLAGS += -mhw-mul' if multiplier is found in the system. + none + false + none + + + hal.make.ignore_system_derived.hardware_mulx_present + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query if SOPC system has hardware mulx present. If true ignores export of 'ALT_CFLAGS += -mno-hw-mulx' to public.mk if no mulx is found in the system. If true ignores export of 'ALT_CFLAGS += -mhw-mulx' if mulx is found in the system. + none + false + none + + + hal.make.ignore_system_derived.hardware_divide_present + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query if SOPC system has hardware divide present. If true ignores export of 'ALT_CFLAGS += -mno-hw-div' to public.mk if no division is found in system. If true ignores export of 'ALT_CFLAGS += -mhw-div' if division is found in the system. + none + false + none + + + hal.make.ignore_system_derived.debug_core_present + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query if SOPC system has a debug core present. If true ignores export of 'CPU_HAS_DEBUG_CORE = 1' to public.mk if a debug core is found in the system. If true ignores export of 'CPU_HAS_DEBUG_CORE = 0' if no debug core is found in the system. + none + false + none + + + hal.make.ignore_system_derived.big_endian + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query if SOPC system is big endian. If true ignores export of 'ALT_CFLAGS += -EB' to public.mk if big endian system. If true ignores export of 'ALT_CFLAGS += -EL' if little endian system. + none + false + none + + + hal.make.ignore_system_derived.hardware_fp_cust_inst_divider_present + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query if SOPC system floating point custom instruction with a divider is present. If true ignores export of 'ALT_CFLAGS += -mcustom-fpu-cfg=60-2' and 'ALT_LDFLAGS += -mcustom-fpu-cfg=60-2' to public.mk if the custom instruction is found in the system. + none + false + none + + + hal.make.ignore_system_derived.hardware_fp_cust_inst_no_divider_present + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query if SOPC system floating point custom instruction without a divider is present. If true ignores export of 'ALT_CFLAGS += -mcustom-fpu-cfg=60-1' and 'ALT_LDFLAGS += -mcustom-fpu-cfg=60-1' to public.mk if the custom instruction is found in the system. + none + false + none + + + hal.enable_exit + ALT_NO_EXIT + Boolean + 0 + 1 + public_mk_define + Add exit() support. This option increases code footprint if your "main()" routine does "return" or call "exit()". If false, adds -DALT_NO_EXIT to ALT_CPPFLAGS in public.mk, and reduces footprint + none + false + none + + + hal.enable_small_c_library + NONE + Boolean + 1 + 0 + public_mk_define + Causes the small newlib (C library) to be used. This reduces code and data footprint at the expense of reduced functionality. Several newlib features are removed such as floating-point support in printf(), stdin input routines, and buffered I/O. The small C library is not compatible with Micrium MicroC/OS-II. If true, adds -msmallc to ALT_LDFLAGS in public.mk. + none + false + common + + + hal.enable_clean_exit + ALT_NO_CLEAN_EXIT + Boolean + 0 + 1 + public_mk_define + When your application exits, close file descriptors, call C++ destructors, etc. Code footprint can be reduced by disabling clean exit. If disabled, adds -DALT_NO_CLEAN_EXIT to ALT_CPPFLAGS and -Wl,--defsym, exit=_exit to ALT_LDFLAGS in public.mk. + none + false + none + + + hal.enable_runtime_stack_checking + ALT_STACK_CHECK + Boolean + 0 + 0 + public_mk_define + Turns on HAL runtime stack checking feature. Enabling this setting causes additional code to be placed into each subroutine call to generate an exception if a stack collision occurs with the heap or statically allocated data. If true, adds -DALT_STACK_CHECK and -mstack-check to ALT_CPPFLAGS in public.mk. + none + false + none + + + hal.enable_gprof + ALT_PROVIDE_GMON + Boolean + 0 + 0 + public_mk_define + Causes code to be compiled with gprof profiling enabled and the application ELF to be linked with the GPROF library. If true, adds -DALT_PROVIDE_GMON to ALT_CPPFLAGS and -pg to ALT_CFLAGS in public.mk. + none + false + common + + + hal.enable_c_plus_plus + ALT_NO_C_PLUS_PLUS + Boolean + 0 + 1 + public_mk_define + Enable support for a subset of the C++ language. This option increases code footprint by adding support for C++ constructors. Certain features, such as multiple inheritance and exceptions are not supported. If false, adds -DALT_NO_C_PLUS_PLUS to ALT_CPPFLAGS in public.mk, and reduces code footprint. + none + false + none + + + hal.enable_reduced_device_drivers + ALT_USE_SMALL_DRIVERS + Boolean + 1 + 0 + public_mk_define + Certain drivers are compiled with reduced functionality to reduce code footprint. Not all drivers observe this setting. The altera_avalon_uart and altera_avalon_jtag_uart drivers switch from interrupt-driven to polled operation. CAUTION: Several device drivers are disabled entirely. These include the altera_avalon_cfi_flash, altera_avalon_epcs_flash_controller, and altera_avalon_lcd_16207 drivers. This can result in certain API (HAL flash access routines) to fail. You can define a symbol provided by each driver to prevent it from being removed. If true, adds -DALT_USE_SMALL_DRIVERS to ALT_CPPFLAGS in public.mk. + none + false + common + + + hal.enable_lightweight_device_driver_api + ALT_USE_DIRECT_DRIVERS + Boolean + 1 + 0 + public_mk_define + Enables lightweight device driver API. This reduces code and data footprint by removing the HAL layer that maps device names (e.g. /dev/uart0) to file descriptors. Instead, driver routines are called directly. The open(), close(), and lseek() routines will always fail if called. The read(), write(), fstat(), ioctl(), and isatty() routines only work for the stdio devices. If true, adds -DALT_USE_DIRECT_DRIVERS to ALT_CPPFLAGS in public.mk. + The Altera Host and read-only ZIP file systems can't be used if hal.enable_lightweight_device_driver_api is true. + false + none + + + hal.enable_mul_div_emulation + ALT_NO_INSTRUCTION_EMULATION + Boolean + 0 + 0 + public_mk_define + Adds code to emulate multiply and divide instructions in case they are executed but aren't present in the CPU. Normally this isn't required because the compiler won't use multiply and divide instructions that aren't present in the CPU. If false, adds -DALT_NO_INSTRUCTION_EMULATION to ALT_CPPFLAGS in public.mk. + none + false + none + + + hal.enable_sim_optimize + ALT_SIM_OPTIMIZE + Boolean + 0 + 0 + public_mk_define + The BSP is compiled with optimizations to speedup HDL simulation such as initializing the cache, clearing the .bss section, and skipping long delay loops. If true, adds -DALT_SIM_OPTIMIZE to ALT_CPPFLAGS in public.mk. + When this setting is true, the BSP shouldn't be used to build applications that are expected to run real hardware. + false + common + + + hal.enable_sopc_sysid_check + NONE + Boolean + 1 + 1 + public_mk_define + Enable SOPC Builder System ID. If a System ID SOPC Builder component is connected to the CPU associated with this BSP, it will be enabled in the creation of command-line arguments to download an ELF to the target. Otherwise, system ID and timestamp values are left out of public.mk for application Makefile "download-elf" target definition. With the system ID check disabled, the Nios II EDS tools will not automatically ensure that the application .elf file (and BSP it is linked against) corresponds to the hardware design on the target. If false, adds --accept-bad-sysid to SOPC_SYSID_FLAG in public.mk. + none + false + none + + + hal.custom_newlib_flags + CUSTOM_NEWLIB_FLAGS + UnquotedString + none + none + public_mk_define + Build a custom version of newlib with the specified space-separated compiler flags. + The custom newlib build will be placed in the &lt;bsp root>/newlib directory, and will be used only for applications that utilize this BSP. + false + none + + + hal.log_flags + ALT_LOG_FLAGS + DecimalNumber + 0 + 0 + public_mk_define + The value is assigned to ALT_LOG_FLAGS in the generated public.mk. See hal.log_port setting description. Values can be -1 through 3. + hal.log_port must be set for this to be used. + false + none + + + altera_avalon_jtag_uart_driver.enable_small_driver + ALTERA_AVALON_JTAG_UART_SMALL + BooleanDefineOnly + false + false + public_mk_define + Small-footprint (polled mode) driver + none + false + + + + altera_avalon_jtag_uart_driver.enable_jtag_uart_ignore_fifo_full_error + ALTERA_AVALON_JTAG_UART_IGNORE_FIFO_FULL_ERROR + BooleanDefineOnly + false + false + public_mk_define + Enable JTAG UART driver to recover when host is inactive causing buffer to full without returning error. Printf will not fail with this recovery. + none + false + + + + onchip_memory + 0x00000000 - 0x00003FFF + 16384 + memory + + + lcd_on + 0x00004010 - 0x0000401F + 16 + + + + lcd_blon + 0x00004020 - 0x0000402F + 16 + + + + lcd_16207_0 + 0x00004030 - 0x0000403F + 16 + printable + + + hex7 + 0x00005000 - 0x0000500F + 16 + + + + hex6 + 0x00005010 - 0x0000501F + 16 + + + + hex5 + 0x00005020 - 0x0000502F + 16 + + + + hex4 + 0x00005030 - 0x0000503F + 16 + + + + hex3 + 0x00005040 - 0x0000504F + 16 + + + + hex2 + 0x00005050 - 0x0000505F + 16 + + + + hex1 + 0x00005060 - 0x0000506F + 16 + + + + hex0 + 0x00005070 - 0x0000507F + 16 + + + + push_switches + 0x00005080 - 0x0000508F + 16 + + + + switches + 0x00005090 - 0x0000509F + 16 + + + + LEDRs + 0x000050A0 - 0x000050AF + 16 + + + + LEDs + 0x000050B0 - 0x000050BF + 16 + + + + jtag_uart + 0x000050C0 - 0x000050C7 + 8 + printable + + + .text + onchip_memory + + + .rodata + onchip_memory + + + .rwdata + onchip_memory + + + .bss + onchip_memory + + + .heap + onchip_memory + + + .stack + onchip_memory + + \ No newline at end of file diff --git a/software/qsys_tutorial_lcd2_bsp/summary.html b/software/qsys_tutorial_lcd2_bsp/summary.html new file mode 100644 index 0000000..847f3f6 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/summary.html @@ -0,0 +1,2047 @@ + +Altera Nios II BSP Summary + +

BSP Description

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
BSP Type:hal
SOPC Design File:C:\Users\takayun\Documents\DE2-115\qsys_tutorial\nios_system.sopcinfo
Quartus JDI File:default
CPU:nios2_processor
BSP Settings File:.\settings.bsp
BSP Version:default
BSP Generated On:2016/12/02 0:00:36
BSP Generated Timestamp:1480604436216
BSP Generated Location:C:\Users\takayun\Documents\DE2-115\qsys_tutorial\software\qsys_tutorial_lcd2_bsp
+
+

Nios II Memory Map

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Slave DescriptorAddress RangeSizeAttributes
jtag_uart0x000050C0 - 0x000050C78printable
LEDs0x000050B0 - 0x000050BF16 
LEDRs0x000050A0 - 0x000050AF16 
switches0x00005090 - 0x0000509F16 
push_switches0x00005080 - 0x0000508F16 
hex00x00005070 - 0x0000507F16 
hex10x00005060 - 0x0000506F16 
hex20x00005050 - 0x0000505F16 
hex30x00005040 - 0x0000504F16 
hex40x00005030 - 0x0000503F16 
hex50x00005020 - 0x0000502F16 
hex60x00005010 - 0x0000501F16 
hex70x00005000 - 0x0000500F16 
lcd_16207_00x00004030 - 0x0000403F16printable
lcd_blon0x00004020 - 0x0000402F16 
lcd_on0x00004010 - 0x0000401F16 
onchip_memory0x00000000 - 0x00003FFF16384memory
+
+
+

Linker Regions

+ + + + +
RegionAddress RangeSizeMemoryOffset
+
+
+

Linker Section Mappings

+ + + + + + + + + + + + + + + + + + + + + + +
SectionRegion
.textonchip_memory
.rodataonchip_memory
.rwdataonchip_memory
.bssonchip_memory
.heaponchip_memory
.stackonchip_memory
+

Settings

+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:altera_avalon_jtag_uart_driver.enable_jtag_uart_ignore_fifo_full_error
Identifier:ALTERA_AVALON_JTAG_UART_IGNORE_FIFO_FULL_ERROR
Default Value:false
Value:false
Type:BooleanDefineOnly
Destination:public_mk_define
Description:Enable JTAG UART driver to recover when host is inactive causing buffer to full without returning error. Printf will not fail with this recovery.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:altera_avalon_jtag_uart_driver.enable_small_driver
Identifier:ALTERA_AVALON_JTAG_UART_SMALL
Default Value:false
Value:false
Type:BooleanDefineOnly
Destination:public_mk_define
Description:Small-footprint (polled mode) driver
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.custom_newlib_flags
Identifier:CUSTOM_NEWLIB_FLAGS
Default Value:none
Value:none
Type:UnquotedString
Destination:public_mk_define
Description:Build a custom version of newlib with the specified space-separated compiler flags.
Restrictions:The custom newlib build will be placed in the &lt;bsp root>/newlib directory, and will be used only for applications that utilize this BSP.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_c_plus_plus
Identifier:ALT_NO_C_PLUS_PLUS
Default Value:1
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable support for a subset of the C++ language. This option increases code footprint by adding support for C++ constructors. Certain features, such as multiple inheritance and exceptions are not supported. If false, adds -DALT_NO_C_PLUS_PLUS to ALT_CPPFLAGS in public.mk, and reduces code footprint.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_clean_exit
Identifier:ALT_NO_CLEAN_EXIT
Default Value:1
Value:0
Type:Boolean
Destination:public_mk_define
Description:When your application exits, close file descriptors, call C++ destructors, etc. Code footprint can be reduced by disabling clean exit. If disabled, adds -DALT_NO_CLEAN_EXIT to ALT_CPPFLAGS and -Wl,--defsym, exit=_exit to ALT_LDFLAGS in public.mk.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_exit
Identifier:ALT_NO_EXIT
Default Value:1
Value:0
Type:Boolean
Destination:public_mk_define
Description:Add exit() support. This option increases code footprint if your "main()" routine does "return" or call "exit()". If false, adds -DALT_NO_EXIT to ALT_CPPFLAGS in public.mk, and reduces footprint
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_gprof
Identifier:ALT_PROVIDE_GMON
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Causes code to be compiled with gprof profiling enabled and the application ELF to be linked with the GPROF library. If true, adds -DALT_PROVIDE_GMON to ALT_CPPFLAGS and -pg to ALT_CFLAGS in public.mk.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_instruction_related_exceptions_api
Identifier:ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API
Default Value:false
Value:false
Type:BooleanDefineOnly
Destination:system_h_define
Description:Enables API for registering handlers to service instruction-related exceptions. Enabling this setting increases the size of the exception entry code.
Restrictions:These exception types can be generated if various processor options are enabled, such as the MMU, MPU, or other advanced exception types.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_lightweight_device_driver_api
Identifier:ALT_USE_DIRECT_DRIVERS
Default Value:0
Value:1
Type:Boolean
Destination:public_mk_define
Description:Enables lightweight device driver API. This reduces code and data footprint by removing the HAL layer that maps device names (e.g. /dev/uart0) to file descriptors. Instead, driver routines are called directly. The open(), close(), and lseek() routines will always fail if called. The read(), write(), fstat(), ioctl(), and isatty() routines only work for the stdio devices. If true, adds -DALT_USE_DIRECT_DRIVERS to ALT_CPPFLAGS in public.mk.
Restrictions:The Altera Host and read-only ZIP file systems can't be used if hal.enable_lightweight_device_driver_api is true.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_mul_div_emulation
Identifier:ALT_NO_INSTRUCTION_EMULATION
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Adds code to emulate multiply and divide instructions in case they are executed but aren't present in the CPU. Normally this isn't required because the compiler won't use multiply and divide instructions that aren't present in the CPU. If false, adds -DALT_NO_INSTRUCTION_EMULATION to ALT_CPPFLAGS in public.mk.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_reduced_device_drivers
Identifier:ALT_USE_SMALL_DRIVERS
Default Value:0
Value:1
Type:Boolean
Destination:public_mk_define
Description:Certain drivers are compiled with reduced functionality to reduce code footprint. Not all drivers observe this setting. The altera_avalon_uart and altera_avalon_jtag_uart drivers switch from interrupt-driven to polled operation. CAUTION: Several device drivers are disabled entirely. These include the altera_avalon_cfi_flash, altera_avalon_epcs_flash_controller, and altera_avalon_lcd_16207 drivers. This can result in certain API (HAL flash access routines) to fail. You can define a symbol provided by each driver to prevent it from being removed. If true, adds -DALT_USE_SMALL_DRIVERS to ALT_CPPFLAGS in public.mk.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_runtime_stack_checking
Identifier:ALT_STACK_CHECK
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Turns on HAL runtime stack checking feature. Enabling this setting causes additional code to be placed into each subroutine call to generate an exception if a stack collision occurs with the heap or statically allocated data. If true, adds -DALT_STACK_CHECK and -mstack-check to ALT_CPPFLAGS in public.mk.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_sim_optimize
Identifier:ALT_SIM_OPTIMIZE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:The BSP is compiled with optimizations to speedup HDL simulation such as initializing the cache, clearing the .bss section, and skipping long delay loops. If true, adds -DALT_SIM_OPTIMIZE to ALT_CPPFLAGS in public.mk.
Restrictions:When this setting is true, the BSP shouldn't be used to build applications that are expected to run real hardware.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_small_c_library
Identifier:NONE
Default Value:0
Value:1
Type:Boolean
Destination:public_mk_define
Description:Causes the small newlib (C library) to be used. This reduces code and data footprint at the expense of reduced functionality. Several newlib features are removed such as floating-point support in printf(), stdin input routines, and buffered I/O. The small C library is not compatible with Micrium MicroC/OS-II. If true, adds -msmallc to ALT_LDFLAGS in public.mk.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_sopc_sysid_check
Identifier:NONE
Default Value:1
Value:1
Type:Boolean
Destination:public_mk_define
Description:Enable SOPC Builder System ID. If a System ID SOPC Builder component is connected to the CPU associated with this BSP, it will be enabled in the creation of command-line arguments to download an ELF to the target. Otherwise, system ID and timestamp values are left out of public.mk for application Makefile "download-elf" target definition. With the system ID check disabled, the Nios II EDS tools will not automatically ensure that the application .elf file (and BSP it is linked against) corresponds to the hardware design on the target. If false, adds --accept-bad-sysid to SOPC_SYSID_FLAG in public.mk.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.linker.allow_code_at_reset
Identifier:ALT_ALLOW_CODE_AT_RESET
Default Value:0
Value:1
Type:Boolean
Destination:none
Description:Indicates if initialization code is allowed at the reset address. If true, defines the macro ALT_ALLOW_CODE_AT_RESET in linker.h.
Restrictions:If true, defines the macro ALT_ALLOW_CODE_AT_RESET in linker.h. This setting is typically false if an external bootloader (e.g. flash bootloader) is present.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.linker.enable_alt_load
Identifier:NONE
Default Value:0
Value:1
Type:Boolean
Destination:none
Description:Enables the alt_load() facility. The alt_load() facility copies sections from the .text memory into RAM. If true, this setting sets up the VMA/LMA of sections in linker.x to allow them to be loaded into the .text memory.
Restrictions:This setting is typically false if an external bootloader (e.g. flash bootloader) is present.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.linker.enable_alt_load_copy_exceptions
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:none
Description:Causes the alt_load() facility to copy the .exceptions section. If true, this setting defines the macro ALT_LOAD_COPY_EXCEPTIONS in linker.h.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.linker.enable_alt_load_copy_rodata
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:none
Description:Causes the alt_load() facility to copy the .rodata section. If true, this setting defines the macro ALT_LOAD_COPY_RODATA in linker.h.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.linker.enable_alt_load_copy_rwdata
Identifier:NONE
Default Value:0
Value:1
Type:Boolean
Destination:none
Description:Causes the alt_load() facility to copy the .rwdata section. If true, this setting defines the macro ALT_LOAD_COPY_RWDATA in linker.h.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.linker.enable_exception_stack
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:none
Description:Enables use of a separate exception stack. If true, defines the macro ALT_EXCEPTION_STACK in linker.h, adds a memory region called exception_stack to linker.x, and provides the symbols __alt_exception_stack_pointer and __alt_exception_stack_limit in linker.x.
Restrictions:The hal.linker.exception_stack_size and hal.linker.exception_stack_memory_region_name settings must also be valid. This setting must be false for MicroC/OS-II BSPs. The exception stack can be used to improve interrupt and other exception performance if the EIC is *not* used.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.linker.enable_interrupt_stack
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:none
Description:Enables use of a separate interrupt stack. If true, defines the macro ALT_INTERRUPT_STACK in linker.h, adds a memory region called interrupt_stack to linker.x, and provides the symbols __alt_interrupt_stack_pointer and __alt_interrupt_stack_limit in linker.x.
Restrictions:The hal.linker.interrupt_stack_size and hal.linker.interrupt_stack_memory_region_name settings must also be valid. This setting must be false for MicroC/OS-II BSPs. Only enable if the EIC is used exclusively. The exception stack can be used to improve interrupt and other exception performance if the EIC is *not* used.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.linker.exception_stack_memory_region_name
Identifier:NONE
Default Value:none
Value:onchip_memory
Type:UnquotedString
Destination:none
Description:Name of the existing memory region that will be divided up to create the 'exception_stack' memory region. The selected region name will be adjusted automatically when the BSP is generated to create the 'exception_stack' memory region.
Restrictions:Only used if hal.linker.enable_exception_stack is true.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.linker.exception_stack_size
Identifier:NONE
Default Value:1024
Value:1024
Type:DecimalNumber
Destination:none
Description:Size of the exception stack in bytes.
Restrictions:Only used if hal.linker.enable_exception_stack is true.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.linker.interrupt_stack_memory_region_name
Identifier:NONE
Default Value:none
Value:onchip_memory
Type:UnquotedString
Destination:none
Description:Name of the existing memory region that will be divided up to create the 'interrupt_stack' memory region. The selected region name will be adjusted automatically when the BSP is generated to create the 'interrupt_stack' memory region.
Restrictions:Only used if hal.linker.enable_interrupt_stack is true.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.linker.interrupt_stack_size
Identifier:NONE
Default Value:1024
Value:1024
Type:DecimalNumber
Destination:none
Description:Size of the interrupt stack in bytes.
Restrictions:Only used if hal.linker.enable_interrupt_stack is true.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.log_flags
Identifier:ALT_LOG_FLAGS
Default Value:0
Value:0
Type:DecimalNumber
Destination:public_mk_define
Description:The value is assigned to ALT_LOG_FLAGS in the generated public.mk. See hal.log_port setting description. Values can be -1 through 3.
Restrictions:hal.log_port must be set for this to be used.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.log_port
Identifier:NONE
Default Value:none
Value:none
Type:UnquotedString
Destination:public_mk_define
Description:Slave descriptor of debug logging character-mode device. If defined, it enables extra debug messages in the HAL source. This setting is used by the ALT_LOG_PORT family of defines in system.h.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ar
Identifier:AR
Default Value:nios2-elf-ar
Value:nios2-elf-ar
Type:UnquotedString
Destination:makefile_variable
Description:Archiver command. Creates library files.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ar_post_process
Identifier:AR_POST_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed after archiver execution.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ar_pre_process
Identifier:AR_PRE_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed before archiver execution.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.as
Identifier:AS
Default Value:nios2-elf-gcc
Value:nios2-elf-gcc
Type:UnquotedString
Destination:makefile_variable
Description:Assembler command. Note that CC is used for .S files.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.as_post_process
Identifier:AS_POST_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed after each assembly file is compiled.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.as_pre_process
Identifier:AS_PRE_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed before each assembly file is compiled.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.bsp_arflags
Identifier:BSP_ARFLAGS
Default Value:-src
Value:-src
Type:UnquotedString
Destination:makefile_variable
Description:Custom flags only passed to the archiver. This content of this variable is directly passed to the archiver rather than the more standard "ARFLAGS". The reason for this is that GNU Make assumes some default content in ARFLAGS. This setting defines the value of BSP_ARFLAGS in Makefile.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.bsp_asflags
Identifier:BSP_ASFLAGS
Default Value:-Wa,-gdwarf2
Value:-Wa,-gdwarf2
Type:UnquotedString
Destination:makefile_variable
Description:Custom flags only passed to the assembler. This setting defines the value of BSP_ASFLAGS in Makefile.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.bsp_cflags_debug
Identifier:BSP_CFLAGS_DEBUG
Default Value:-g
Value:-g
Type:UnquotedString
Destination:makefile_variable
Description:C/C++ compiler debug level. '-g' provides the default set of debug symbols typically required to debug a typical application. Omitting '-g' removes debug symbols from the ELF. This setting defines the value of BSP_CFLAGS_DEBUG in Makefile.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.bsp_cflags_defined_symbols
Identifier:BSP_CFLAGS_DEFINED_SYMBOLS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Preprocessor macros to define. A macro definition in this setting has the same effect as a "#define" in source code. Adding "-DALT_DEBUG" to this setting has the same effect as "#define ALT_DEBUG" in a souce file. Adding "-DFOO=1" to this setting is equivalent to the macro "#define FOO 1" in a source file. Macros defined with this setting are applied to all .S, .c, and C++ files in the BSP. This setting defines the value of BSP_CFLAGS_DEFINED_SYMBOLS in the BSP Makefile.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.bsp_cflags_optimization
Identifier:BSP_CFLAGS_OPTIMIZATION
Default Value:-O0
Value:'-Os'
Type:UnquotedString
Destination:makefile_variable
Description:C/C++ compiler optimization level. "-O0" = no optimization,"-O2" = "normal" optimization, etc. "-O0" is recommended for code that you want to debug since compiler optimization can remove variables and produce non-sequential execution of code while debugging. This setting defines the value of BSP_CFLAGS_OPTIMIZATION in Makefile.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.bsp_cflags_undefined_symbols
Identifier:BSP_CFLAGS_UNDEFINED_SYMBOLS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Preprocessor macros to undefine. Undefined macros are similar to defined macros, but replicate the "#undef" directive in source code. To undefine the macro FOO use the syntax "-u FOO" in this setting. This is equivalent to "#undef FOO" in a source file. Note: the syntax differs from macro definition (there is a space, i.e. "-u FOO" versus "-DFOO"). Macros defined with this setting are applied to all .S, .c, and C++ files in the BSP. This setting defines the value of BSP_CFLAGS_UNDEFINED_SYMBOLS in the BSP Makefile.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.bsp_cflags_user_flags
Identifier:BSP_CFLAGS_USER_FLAGS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Custom flags passed to the compiler when compiling C, C++, and .S files. This setting defines the value of BSP_CFLAGS_USER_FLAGS in Makefile.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.bsp_cflags_warnings
Identifier:BSP_CFLAGS_WARNINGS
Default Value:-Wall
Value:-Wall
Type:UnquotedString
Destination:makefile_variable
Description:C/C++ compiler warning level. "-Wall" is commonly used.This setting defines the value of BSP_CFLAGS_WARNINGS in Makefile.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.bsp_cxx_flags
Identifier:BSP_CXXFLAGS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Custom flags only passed to the C++ compiler. This setting defines the value of BSP_CXXFLAGS in Makefile.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.bsp_inc_dirs
Identifier:BSP_INC_DIRS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Space separated list of extra include directories to scan for header files. Directories are relative to the top-level BSP directory. The -I prefix's added by the makefile so don't add it here. This setting defines the value of BSP_INC_DIRS in Makefile.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.build_post_process
Identifier:BUILD_POST_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed after BSP built.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.build_pre_process
Identifier:BUILD_PRE_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed before BSP built.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.cc
Identifier:CC
Default Value:nios2-elf-gcc -xc
Value:nios2-elf-gcc -xc
Type:UnquotedString
Destination:makefile_variable
Description:C compiler command.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.cc_post_process
Identifier:CC_POST_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed after each .c/.S file is compiled.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.cc_pre_process
Identifier:CC_PRE_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed before each .c/.S file is compiled.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.cxx
Identifier:CXX
Default Value:nios2-elf-gcc -xc++
Value:nios2-elf-gcc -xc++
Type:UnquotedString
Destination:makefile_variable
Description:C++ compiler command.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.cxx_post_process
Identifier:CXX_POST_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed before each C++ file is compiled.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.cxx_pre_process
Identifier:CXX_PRE_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed before each C++ file is compiled.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.big_endian
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query if SOPC system is big endian. If true ignores export of 'ALT_CFLAGS += -EB' to public.mk if big endian system. If true ignores export of 'ALT_CFLAGS += -EL' if little endian system.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.debug_core_present
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query if SOPC system has a debug core present. If true ignores export of 'CPU_HAS_DEBUG_CORE = 1' to public.mk if a debug core is found in the system. If true ignores export of 'CPU_HAS_DEBUG_CORE = 0' if no debug core is found in the system.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.fpu_present
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query if SOPC system has FPU present. If true ignores export of 'ALT_CFLAGS += -mhard-float' to public.mk if FPU is found in the system. If true ignores export of 'ALT_CFLAGS += -mhard-soft' if FPU is not found in the system.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.hardware_divide_present
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query if SOPC system has hardware divide present. If true ignores export of 'ALT_CFLAGS += -mno-hw-div' to public.mk if no division is found in system. If true ignores export of 'ALT_CFLAGS += -mhw-div' if division is found in the system.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.hardware_fp_cust_inst_divider_present
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query if SOPC system floating point custom instruction with a divider is present. If true ignores export of 'ALT_CFLAGS += -mcustom-fpu-cfg=60-2' and 'ALT_LDFLAGS += -mcustom-fpu-cfg=60-2' to public.mk if the custom instruction is found in the system.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.hardware_fp_cust_inst_no_divider_present
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query if SOPC system floating point custom instruction without a divider is present. If true ignores export of 'ALT_CFLAGS += -mcustom-fpu-cfg=60-1' and 'ALT_LDFLAGS += -mcustom-fpu-cfg=60-1' to public.mk if the custom instruction is found in the system.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.hardware_multiplier_present
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query if SOPC system has multiplier present. If true ignores export of 'ALT_CFLAGS += -mno-hw-mul' to public.mk if no multiplier is found in the system. If true ignores export of 'ALT_CFLAGS += -mhw-mul' if multiplier is found in the system.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.hardware_mulx_present
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query if SOPC system has hardware mulx present. If true ignores export of 'ALT_CFLAGS += -mno-hw-mulx' to public.mk if no mulx is found in the system. If true ignores export of 'ALT_CFLAGS += -mhw-mulx' if mulx is found in the system.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.sopc_simulation_enabled
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query if SOPC system has simulation enabled. If true ignores export of 'ELF_PATCH_FLAG += --simulation_enabled' to public.mk.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.sopc_system_base_address
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query SOPC system for system ID base address. If true ignores export of 'SOPC_SYSID_FLAG += --sidp=<address>' and 'ELF_PATCH_FLAG += --sidp=<address>' to public.mk.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.sopc_system_id
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query SOPC system for system ID. If true ignores export of 'SOPC_SYSID_FLAG += --id=<sysid>' and 'ELF_PATCH_FLAG += --id=<sysid>' to public.mk.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.sopc_system_timestamp
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query SOPC system for system timestamp. If true ignores export of 'SOPC_SYSID_FLAG += --timestamp=<timestamp>' and 'ELF_PATCH_FLAG += --timestamp=<timestamp>' to public.mk.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.rm
Identifier:RM
Default Value:rm -f
Value:rm -f
Type:UnquotedString
Destination:makefile_variable
Description:Command used to remove files during 'clean' target.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.max_file_descriptors
Identifier:ALT_MAX_FD
Default Value:32
Value:4
Type:DecimalNumber
Destination:system_h_define
Description:Determines the number of file descriptors statically allocated. This setting defines the value of ALT_MAX_FD in system.h.
Restrictions:If hal.enable_lightweight_device_driver_api is true, there are no file descriptors so this setting is ignored. If hal.enable_lightweight_device_driver_api is false, this setting must be at least 4 because HAL needs a file descriptor for /dev/null, /dev/stdin, /dev/stdout, and /dev/stderr.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.stderr
Identifier:NONE
Default Value:none
Value:jtag_uart
Type:UnquotedString
Destination:system_h_define
Description:Slave descriptor of STDERR character-mode device. This setting is used by the ALT_STDERR family of defines in system.h.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.stdin
Identifier:NONE
Default Value:none
Value:jtag_uart
Type:UnquotedString
Destination:system_h_define
Description:Slave descriptor of STDIN character-mode device. This setting is used by the ALT_STDIN family of defines in system.h.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.stdout
Identifier:NONE
Default Value:none
Value:jtag_uart
Type:UnquotedString
Destination:system_h_define
Description:Slave descriptor of STDOUT character-mode device. This setting is used by the ALT_STDOUT family of defines in system.h.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.sys_clk_timer
Identifier:ALT_SYS_CLK
Default Value:none
Value:none
Type:UnquotedString
Destination:system_h_define
Description:Slave descriptor of the system clock timer device. This device provides a periodic interrupt ("tick") and is typically required for RTOS use. This setting defines the value of ALT_SYS_CLK in system.h.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.timestamp_timer
Identifier:ALT_TIMESTAMP_CLK
Default Value:none
Value:none
Type:UnquotedString
Destination:system_h_define
Description:Slave descriptor of timestamp timer device. This device is used by Altera HAL timestamp drivers for high-resolution time measurement. This setting defines the value of ALT_TIMESTAMP_CLK in system.h.
Restrictions:none
+
+
+
+ + diff --git a/software/qsys_tutorial_lcd2_bsp/system.h b/software/qsys_tutorial_lcd2_bsp/system.h new file mode 100644 index 0000000..60a31a3 --- /dev/null +++ b/software/qsys_tutorial_lcd2_bsp/system.h @@ -0,0 +1,617 @@ +/* + * system.h - SOPC Builder system and BSP software package information + * + * Machine generated for CPU 'nios2_processor' in SOPC Builder design 'nios_system' + * SOPC Builder design path: C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.sopcinfo + * + * Generated: Fri Dec 02 00:00:37 JST 2016 + */ + +/* + * DO NOT MODIFY THIS FILE + * + * Changing this file will have subtle consequences + * which will almost certainly lead to a nonfunctioning + * system. If you do modify this file, be aware that your + * changes will be overwritten and lost when this file + * is generated again. + * + * DO NOT MODIFY THIS FILE + */ + +/* + * License Agreement + * + * Copyright (c) 2008 + * Altera Corporation, San Jose, California, USA. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + * This agreement shall be governed in all respects by the laws of the State + * of California and by the laws of the United States of America. + */ + +#ifndef __SYSTEM_H_ +#define __SYSTEM_H_ + +/* Include definitions from linker script generator */ +#include "linker.h" + + +/* + * CPU configuration + * + */ + +#define ALT_CPU_ARCHITECTURE "altera_nios2_qsys" +#define ALT_CPU_BIG_ENDIAN 0 +#define ALT_CPU_BREAK_ADDR 0x4820 +#define ALT_CPU_CPU_FREQ 50000000u +#define ALT_CPU_CPU_ID_SIZE 1 +#define ALT_CPU_CPU_ID_VALUE 0x00000000 +#define ALT_CPU_CPU_IMPLEMENTATION "tiny" +#define ALT_CPU_DATA_ADDR_WIDTH 0xf +#define ALT_CPU_DCACHE_LINE_SIZE 0 +#define ALT_CPU_DCACHE_LINE_SIZE_LOG2 0 +#define ALT_CPU_DCACHE_SIZE 0 +#define ALT_CPU_EXCEPTION_ADDR 0x20 +#define ALT_CPU_FLUSHDA_SUPPORTED +#define ALT_CPU_FREQ 50000000 +#define ALT_CPU_HARDWARE_DIVIDE_PRESENT 0 +#define ALT_CPU_HARDWARE_MULTIPLY_PRESENT 0 +#define ALT_CPU_HARDWARE_MULX_PRESENT 0 +#define ALT_CPU_HAS_DEBUG_CORE 1 +#define ALT_CPU_HAS_DEBUG_STUB +#define ALT_CPU_HAS_JMPI_INSTRUCTION +#define ALT_CPU_ICACHE_LINE_SIZE 0 +#define ALT_CPU_ICACHE_LINE_SIZE_LOG2 0 +#define ALT_CPU_ICACHE_SIZE 0 +#define ALT_CPU_INST_ADDR_WIDTH 0xf +#define ALT_CPU_NAME "nios2_processor" +#define ALT_CPU_RESET_ADDR 0x0 + + +/* + * CPU configuration (with legacy prefix - don't use these anymore) + * + */ + +#define NIOS2_BIG_ENDIAN 0 +#define NIOS2_BREAK_ADDR 0x4820 +#define NIOS2_CPU_FREQ 50000000u +#define NIOS2_CPU_ID_SIZE 1 +#define NIOS2_CPU_ID_VALUE 0x00000000 +#define NIOS2_CPU_IMPLEMENTATION "tiny" +#define NIOS2_DATA_ADDR_WIDTH 0xf +#define NIOS2_DCACHE_LINE_SIZE 0 +#define NIOS2_DCACHE_LINE_SIZE_LOG2 0 +#define NIOS2_DCACHE_SIZE 0 +#define NIOS2_EXCEPTION_ADDR 0x20 +#define NIOS2_FLUSHDA_SUPPORTED +#define NIOS2_HARDWARE_DIVIDE_PRESENT 0 +#define NIOS2_HARDWARE_MULTIPLY_PRESENT 0 +#define NIOS2_HARDWARE_MULX_PRESENT 0 +#define NIOS2_HAS_DEBUG_CORE 1 +#define NIOS2_HAS_DEBUG_STUB +#define NIOS2_HAS_JMPI_INSTRUCTION +#define NIOS2_ICACHE_LINE_SIZE 0 +#define NIOS2_ICACHE_LINE_SIZE_LOG2 0 +#define NIOS2_ICACHE_SIZE 0 +#define NIOS2_INST_ADDR_WIDTH 0xf +#define NIOS2_RESET_ADDR 0x0 + + +/* + * Define for each module class mastered by the CPU + * + */ + +#define __ALTERA_AVALON_JTAG_UART +#define __ALTERA_AVALON_LCD_16207 +#define __ALTERA_AVALON_ONCHIP_MEMORY2 +#define __ALTERA_AVALON_PIO +#define __ALTERA_NIOS2_QSYS + + +/* + * LEDRs configuration + * + */ + +#define ALT_MODULE_CLASS_LEDRs altera_avalon_pio +#define LEDRS_BASE 0x50a0 +#define LEDRS_BIT_CLEARING_EDGE_REGISTER 0 +#define LEDRS_BIT_MODIFYING_OUTPUT_REGISTER 0 +#define LEDRS_CAPTURE 0 +#define LEDRS_DATA_WIDTH 18 +#define LEDRS_DO_TEST_BENCH_WIRING 0 +#define LEDRS_DRIVEN_SIM_VALUE 0 +#define LEDRS_EDGE_TYPE "NONE" +#define LEDRS_FREQ 50000000 +#define LEDRS_HAS_IN 0 +#define LEDRS_HAS_OUT 1 +#define LEDRS_HAS_TRI 0 +#define LEDRS_IRQ -1 +#define LEDRS_IRQ_INTERRUPT_CONTROLLER_ID -1 +#define LEDRS_IRQ_TYPE "NONE" +#define LEDRS_NAME "/dev/LEDRs" +#define LEDRS_RESET_VALUE 0 +#define LEDRS_SPAN 16 +#define LEDRS_TYPE "altera_avalon_pio" + + +/* + * LEDs configuration + * + */ + +#define ALT_MODULE_CLASS_LEDs altera_avalon_pio +#define LEDS_BASE 0x50b0 +#define LEDS_BIT_CLEARING_EDGE_REGISTER 0 +#define LEDS_BIT_MODIFYING_OUTPUT_REGISTER 0 +#define LEDS_CAPTURE 0 +#define LEDS_DATA_WIDTH 8 +#define LEDS_DO_TEST_BENCH_WIRING 0 +#define LEDS_DRIVEN_SIM_VALUE 0 +#define LEDS_EDGE_TYPE "NONE" +#define LEDS_FREQ 50000000 +#define LEDS_HAS_IN 0 +#define LEDS_HAS_OUT 1 +#define LEDS_HAS_TRI 0 +#define LEDS_IRQ -1 +#define LEDS_IRQ_INTERRUPT_CONTROLLER_ID -1 +#define LEDS_IRQ_TYPE "NONE" +#define LEDS_NAME "/dev/LEDs" +#define LEDS_RESET_VALUE 0 +#define LEDS_SPAN 16 +#define LEDS_TYPE "altera_avalon_pio" + + +/* + * System configuration + * + */ + +#define ALT_DEVICE_FAMILY "Cyclone IV E" +#define ALT_ENHANCED_INTERRUPT_API_PRESENT +#define ALT_IRQ_BASE NULL +#define ALT_LOG_PORT "/dev/null" +#define ALT_LOG_PORT_BASE 0x0 +#define ALT_LOG_PORT_DEV null +#define ALT_LOG_PORT_TYPE "" +#define ALT_NUM_EXTERNAL_INTERRUPT_CONTROLLERS 0 +#define ALT_NUM_INTERNAL_INTERRUPT_CONTROLLERS 1 +#define ALT_NUM_INTERRUPT_CONTROLLERS 1 +#define ALT_STDERR "/dev/jtag_uart" +#define ALT_STDERR_BASE 0x50c0 +#define ALT_STDERR_DEV jtag_uart +#define ALT_STDERR_IS_JTAG_UART +#define ALT_STDERR_PRESENT +#define ALT_STDERR_TYPE "altera_avalon_jtag_uart" +#define ALT_STDIN "/dev/jtag_uart" +#define ALT_STDIN_BASE 0x50c0 +#define ALT_STDIN_DEV jtag_uart +#define ALT_STDIN_IS_JTAG_UART +#define ALT_STDIN_PRESENT +#define ALT_STDIN_TYPE "altera_avalon_jtag_uart" +#define ALT_STDOUT "/dev/jtag_uart" +#define ALT_STDOUT_BASE 0x50c0 +#define ALT_STDOUT_DEV jtag_uart +#define ALT_STDOUT_IS_JTAG_UART +#define ALT_STDOUT_PRESENT +#define ALT_STDOUT_TYPE "altera_avalon_jtag_uart" +#define ALT_SYSTEM_NAME "nios_system" + + +/* + * hal configuration + * + */ + +#define ALT_MAX_FD 4 +#define ALT_SYS_CLK none +#define ALT_TIMESTAMP_CLK none + + +/* + * hex0 configuration + * + */ + +#define ALT_MODULE_CLASS_hex0 altera_avalon_pio +#define HEX0_BASE 0x5070 +#define HEX0_BIT_CLEARING_EDGE_REGISTER 0 +#define HEX0_BIT_MODIFYING_OUTPUT_REGISTER 0 +#define HEX0_CAPTURE 0 +#define HEX0_DATA_WIDTH 7 +#define HEX0_DO_TEST_BENCH_WIRING 0 +#define HEX0_DRIVEN_SIM_VALUE 0 +#define HEX0_EDGE_TYPE "NONE" +#define HEX0_FREQ 50000000 +#define HEX0_HAS_IN 0 +#define HEX0_HAS_OUT 1 +#define HEX0_HAS_TRI 0 +#define HEX0_IRQ -1 +#define HEX0_IRQ_INTERRUPT_CONTROLLER_ID -1 +#define HEX0_IRQ_TYPE "NONE" +#define HEX0_NAME "/dev/hex0" +#define HEX0_RESET_VALUE 0 +#define HEX0_SPAN 16 +#define HEX0_TYPE "altera_avalon_pio" + + +/* + * hex1 configuration + * + */ + +#define ALT_MODULE_CLASS_hex1 altera_avalon_pio +#define HEX1_BASE 0x5060 +#define HEX1_BIT_CLEARING_EDGE_REGISTER 0 +#define HEX1_BIT_MODIFYING_OUTPUT_REGISTER 0 +#define HEX1_CAPTURE 0 +#define HEX1_DATA_WIDTH 7 +#define HEX1_DO_TEST_BENCH_WIRING 0 +#define HEX1_DRIVEN_SIM_VALUE 0 +#define HEX1_EDGE_TYPE "NONE" +#define HEX1_FREQ 50000000 +#define HEX1_HAS_IN 0 +#define HEX1_HAS_OUT 1 +#define HEX1_HAS_TRI 0 +#define HEX1_IRQ -1 +#define HEX1_IRQ_INTERRUPT_CONTROLLER_ID -1 +#define HEX1_IRQ_TYPE "NONE" +#define HEX1_NAME "/dev/hex1" +#define HEX1_RESET_VALUE 0 +#define HEX1_SPAN 16 +#define HEX1_TYPE "altera_avalon_pio" + + +/* + * hex2 configuration + * + */ + +#define ALT_MODULE_CLASS_hex2 altera_avalon_pio +#define HEX2_BASE 0x5050 +#define HEX2_BIT_CLEARING_EDGE_REGISTER 0 +#define HEX2_BIT_MODIFYING_OUTPUT_REGISTER 0 +#define HEX2_CAPTURE 0 +#define HEX2_DATA_WIDTH 7 +#define HEX2_DO_TEST_BENCH_WIRING 0 +#define HEX2_DRIVEN_SIM_VALUE 0 +#define HEX2_EDGE_TYPE "NONE" +#define HEX2_FREQ 50000000 +#define HEX2_HAS_IN 0 +#define HEX2_HAS_OUT 1 +#define HEX2_HAS_TRI 0 +#define HEX2_IRQ -1 +#define HEX2_IRQ_INTERRUPT_CONTROLLER_ID -1 +#define HEX2_IRQ_TYPE "NONE" +#define HEX2_NAME "/dev/hex2" +#define HEX2_RESET_VALUE 0 +#define HEX2_SPAN 16 +#define HEX2_TYPE "altera_avalon_pio" + + +/* + * hex3 configuration + * + */ + +#define ALT_MODULE_CLASS_hex3 altera_avalon_pio +#define HEX3_BASE 0x5040 +#define HEX3_BIT_CLEARING_EDGE_REGISTER 0 +#define HEX3_BIT_MODIFYING_OUTPUT_REGISTER 0 +#define HEX3_CAPTURE 0 +#define HEX3_DATA_WIDTH 7 +#define HEX3_DO_TEST_BENCH_WIRING 0 +#define HEX3_DRIVEN_SIM_VALUE 0 +#define HEX3_EDGE_TYPE "NONE" +#define HEX3_FREQ 50000000 +#define HEX3_HAS_IN 0 +#define HEX3_HAS_OUT 1 +#define HEX3_HAS_TRI 0 +#define HEX3_IRQ -1 +#define HEX3_IRQ_INTERRUPT_CONTROLLER_ID -1 +#define HEX3_IRQ_TYPE "NONE" +#define HEX3_NAME "/dev/hex3" +#define HEX3_RESET_VALUE 0 +#define HEX3_SPAN 16 +#define HEX3_TYPE "altera_avalon_pio" + + +/* + * hex4 configuration + * + */ + +#define ALT_MODULE_CLASS_hex4 altera_avalon_pio +#define HEX4_BASE 0x5030 +#define HEX4_BIT_CLEARING_EDGE_REGISTER 0 +#define HEX4_BIT_MODIFYING_OUTPUT_REGISTER 0 +#define HEX4_CAPTURE 0 +#define HEX4_DATA_WIDTH 7 +#define HEX4_DO_TEST_BENCH_WIRING 0 +#define HEX4_DRIVEN_SIM_VALUE 0 +#define HEX4_EDGE_TYPE "NONE" +#define HEX4_FREQ 50000000 +#define HEX4_HAS_IN 0 +#define HEX4_HAS_OUT 1 +#define HEX4_HAS_TRI 0 +#define HEX4_IRQ -1 +#define HEX4_IRQ_INTERRUPT_CONTROLLER_ID -1 +#define HEX4_IRQ_TYPE "NONE" +#define HEX4_NAME "/dev/hex4" +#define HEX4_RESET_VALUE 0 +#define HEX4_SPAN 16 +#define HEX4_TYPE "altera_avalon_pio" + + +/* + * hex5 configuration + * + */ + +#define ALT_MODULE_CLASS_hex5 altera_avalon_pio +#define HEX5_BASE 0x5020 +#define HEX5_BIT_CLEARING_EDGE_REGISTER 0 +#define HEX5_BIT_MODIFYING_OUTPUT_REGISTER 0 +#define HEX5_CAPTURE 0 +#define HEX5_DATA_WIDTH 7 +#define HEX5_DO_TEST_BENCH_WIRING 0 +#define HEX5_DRIVEN_SIM_VALUE 0 +#define HEX5_EDGE_TYPE "NONE" +#define HEX5_FREQ 50000000 +#define HEX5_HAS_IN 0 +#define HEX5_HAS_OUT 1 +#define HEX5_HAS_TRI 0 +#define HEX5_IRQ -1 +#define HEX5_IRQ_INTERRUPT_CONTROLLER_ID -1 +#define HEX5_IRQ_TYPE "NONE" +#define HEX5_NAME "/dev/hex5" +#define HEX5_RESET_VALUE 0 +#define HEX5_SPAN 16 +#define HEX5_TYPE "altera_avalon_pio" + + +/* + * hex6 configuration + * + */ + +#define ALT_MODULE_CLASS_hex6 altera_avalon_pio +#define HEX6_BASE 0x5010 +#define HEX6_BIT_CLEARING_EDGE_REGISTER 0 +#define HEX6_BIT_MODIFYING_OUTPUT_REGISTER 0 +#define HEX6_CAPTURE 0 +#define HEX6_DATA_WIDTH 7 +#define HEX6_DO_TEST_BENCH_WIRING 0 +#define HEX6_DRIVEN_SIM_VALUE 0 +#define HEX6_EDGE_TYPE "NONE" +#define HEX6_FREQ 50000000 +#define HEX6_HAS_IN 0 +#define HEX6_HAS_OUT 1 +#define HEX6_HAS_TRI 0 +#define HEX6_IRQ -1 +#define HEX6_IRQ_INTERRUPT_CONTROLLER_ID -1 +#define HEX6_IRQ_TYPE "NONE" +#define HEX6_NAME "/dev/hex6" +#define HEX6_RESET_VALUE 0 +#define HEX6_SPAN 16 +#define HEX6_TYPE "altera_avalon_pio" + + +/* + * hex7 configuration + * + */ + +#define ALT_MODULE_CLASS_hex7 altera_avalon_pio +#define HEX7_BASE 0x5000 +#define HEX7_BIT_CLEARING_EDGE_REGISTER 0 +#define HEX7_BIT_MODIFYING_OUTPUT_REGISTER 0 +#define HEX7_CAPTURE 0 +#define HEX7_DATA_WIDTH 7 +#define HEX7_DO_TEST_BENCH_WIRING 0 +#define HEX7_DRIVEN_SIM_VALUE 0 +#define HEX7_EDGE_TYPE "NONE" +#define HEX7_FREQ 50000000 +#define HEX7_HAS_IN 0 +#define HEX7_HAS_OUT 1 +#define HEX7_HAS_TRI 0 +#define HEX7_IRQ -1 +#define HEX7_IRQ_INTERRUPT_CONTROLLER_ID -1 +#define HEX7_IRQ_TYPE "NONE" +#define HEX7_NAME "/dev/hex7" +#define HEX7_RESET_VALUE 0 +#define HEX7_SPAN 16 +#define HEX7_TYPE "altera_avalon_pio" + + +/* + * jtag_uart configuration + * + */ + +#define ALT_MODULE_CLASS_jtag_uart altera_avalon_jtag_uart +#define JTAG_UART_BASE 0x50c0 +#define JTAG_UART_IRQ 5 +#define JTAG_UART_IRQ_INTERRUPT_CONTROLLER_ID 0 +#define JTAG_UART_NAME "/dev/jtag_uart" +#define JTAG_UART_READ_DEPTH 64 +#define JTAG_UART_READ_THRESHOLD 8 +#define JTAG_UART_SPAN 8 +#define JTAG_UART_TYPE "altera_avalon_jtag_uart" +#define JTAG_UART_WRITE_DEPTH 64 +#define JTAG_UART_WRITE_THRESHOLD 8 + + +/* + * lcd_16207_0 configuration + * + */ + +#define ALT_MODULE_CLASS_lcd_16207_0 altera_avalon_lcd_16207 +#define LCD_16207_0_BASE 0x4030 +#define LCD_16207_0_IRQ -1 +#define LCD_16207_0_IRQ_INTERRUPT_CONTROLLER_ID -1 +#define LCD_16207_0_NAME "/dev/lcd_16207_0" +#define LCD_16207_0_SPAN 16 +#define LCD_16207_0_TYPE "altera_avalon_lcd_16207" + + +/* + * lcd_blon configuration + * + */ + +#define ALT_MODULE_CLASS_lcd_blon altera_avalon_pio +#define LCD_BLON_BASE 0x4020 +#define LCD_BLON_BIT_CLEARING_EDGE_REGISTER 0 +#define LCD_BLON_BIT_MODIFYING_OUTPUT_REGISTER 0 +#define LCD_BLON_CAPTURE 0 +#define LCD_BLON_DATA_WIDTH 1 +#define LCD_BLON_DO_TEST_BENCH_WIRING 0 +#define LCD_BLON_DRIVEN_SIM_VALUE 0 +#define LCD_BLON_EDGE_TYPE "NONE" +#define LCD_BLON_FREQ 50000000 +#define LCD_BLON_HAS_IN 0 +#define LCD_BLON_HAS_OUT 1 +#define LCD_BLON_HAS_TRI 0 +#define LCD_BLON_IRQ -1 +#define LCD_BLON_IRQ_INTERRUPT_CONTROLLER_ID -1 +#define LCD_BLON_IRQ_TYPE "NONE" +#define LCD_BLON_NAME "/dev/lcd_blon" +#define LCD_BLON_RESET_VALUE 0 +#define LCD_BLON_SPAN 16 +#define LCD_BLON_TYPE "altera_avalon_pio" + + +/* + * lcd_on configuration + * + */ + +#define ALT_MODULE_CLASS_lcd_on altera_avalon_pio +#define LCD_ON_BASE 0x4010 +#define LCD_ON_BIT_CLEARING_EDGE_REGISTER 0 +#define LCD_ON_BIT_MODIFYING_OUTPUT_REGISTER 0 +#define LCD_ON_CAPTURE 0 +#define LCD_ON_DATA_WIDTH 1 +#define LCD_ON_DO_TEST_BENCH_WIRING 0 +#define LCD_ON_DRIVEN_SIM_VALUE 0 +#define LCD_ON_EDGE_TYPE "NONE" +#define LCD_ON_FREQ 50000000 +#define LCD_ON_HAS_IN 0 +#define LCD_ON_HAS_OUT 1 +#define LCD_ON_HAS_TRI 0 +#define LCD_ON_IRQ -1 +#define LCD_ON_IRQ_INTERRUPT_CONTROLLER_ID -1 +#define LCD_ON_IRQ_TYPE "NONE" +#define LCD_ON_NAME "/dev/lcd_on" +#define LCD_ON_RESET_VALUE 0 +#define LCD_ON_SPAN 16 +#define LCD_ON_TYPE "altera_avalon_pio" + + +/* + * onchip_memory configuration + * + */ + +#define ALT_MODULE_CLASS_onchip_memory altera_avalon_onchip_memory2 +#define ONCHIP_MEMORY_ALLOW_IN_SYSTEM_MEMORY_CONTENT_EDITOR 0 +#define ONCHIP_MEMORY_ALLOW_MRAM_SIM_CONTENTS_ONLY_FILE 0 +#define ONCHIP_MEMORY_BASE 0x0 +#define ONCHIP_MEMORY_CONTENTS_INFO "" +#define ONCHIP_MEMORY_DUAL_PORT 0 +#define ONCHIP_MEMORY_GUI_RAM_BLOCK_TYPE "AUTO" +#define ONCHIP_MEMORY_INIT_CONTENTS_FILE "nios_system_onchip_memory" +#define ONCHIP_MEMORY_INIT_MEM_CONTENT 1 +#define ONCHIP_MEMORY_INSTANCE_ID "NONE" +#define ONCHIP_MEMORY_IRQ -1 +#define ONCHIP_MEMORY_IRQ_INTERRUPT_CONTROLLER_ID -1 +#define ONCHIP_MEMORY_NAME "/dev/onchip_memory" +#define ONCHIP_MEMORY_NON_DEFAULT_INIT_FILE_ENABLED 0 +#define ONCHIP_MEMORY_RAM_BLOCK_TYPE "AUTO" +#define ONCHIP_MEMORY_READ_DURING_WRITE_MODE "DONT_CARE" +#define ONCHIP_MEMORY_SINGLE_CLOCK_OP 0 +#define ONCHIP_MEMORY_SIZE_MULTIPLE 1 +#define ONCHIP_MEMORY_SIZE_VALUE 16384 +#define ONCHIP_MEMORY_SPAN 16384 +#define ONCHIP_MEMORY_TYPE "altera_avalon_onchip_memory2" +#define ONCHIP_MEMORY_WRITABLE 1 + + +/* + * push_switches configuration + * + */ + +#define ALT_MODULE_CLASS_push_switches altera_avalon_pio +#define PUSH_SWITCHES_BASE 0x5080 +#define PUSH_SWITCHES_BIT_CLEARING_EDGE_REGISTER 0 +#define PUSH_SWITCHES_BIT_MODIFYING_OUTPUT_REGISTER 0 +#define PUSH_SWITCHES_CAPTURE 0 +#define PUSH_SWITCHES_DATA_WIDTH 3 +#define PUSH_SWITCHES_DO_TEST_BENCH_WIRING 0 +#define PUSH_SWITCHES_DRIVEN_SIM_VALUE 0 +#define PUSH_SWITCHES_EDGE_TYPE "NONE" +#define PUSH_SWITCHES_FREQ 50000000 +#define PUSH_SWITCHES_HAS_IN 1 +#define PUSH_SWITCHES_HAS_OUT 0 +#define PUSH_SWITCHES_HAS_TRI 0 +#define PUSH_SWITCHES_IRQ -1 +#define PUSH_SWITCHES_IRQ_INTERRUPT_CONTROLLER_ID -1 +#define PUSH_SWITCHES_IRQ_TYPE "NONE" +#define PUSH_SWITCHES_NAME "/dev/push_switches" +#define PUSH_SWITCHES_RESET_VALUE 0 +#define PUSH_SWITCHES_SPAN 16 +#define PUSH_SWITCHES_TYPE "altera_avalon_pio" + + +/* + * switches configuration + * + */ + +#define ALT_MODULE_CLASS_switches altera_avalon_pio +#define SWITCHES_BASE 0x5090 +#define SWITCHES_BIT_CLEARING_EDGE_REGISTER 0 +#define SWITCHES_BIT_MODIFYING_OUTPUT_REGISTER 0 +#define SWITCHES_CAPTURE 0 +#define SWITCHES_DATA_WIDTH 18 +#define SWITCHES_DO_TEST_BENCH_WIRING 0 +#define SWITCHES_DRIVEN_SIM_VALUE 0 +#define SWITCHES_EDGE_TYPE "NONE" +#define SWITCHES_FREQ 50000000 +#define SWITCHES_HAS_IN 1 +#define SWITCHES_HAS_OUT 0 +#define SWITCHES_HAS_TRI 0 +#define SWITCHES_IRQ -1 +#define SWITCHES_IRQ_INTERRUPT_CONTROLLER_ID -1 +#define SWITCHES_IRQ_TYPE "NONE" +#define SWITCHES_NAME "/dev/switches" +#define SWITCHES_RESET_VALUE 0 +#define SWITCHES_SPAN 16 +#define SWITCHES_TYPE "altera_avalon_pio" + +#endif /* __SYSTEM_H_ */ diff --git a/software/qsys_tutorial_lcd3/.cproject b/software/qsys_tutorial_lcd3/.cproject new file mode 100644 index 0000000..c89cdac --- /dev/null +++ b/software/qsys_tutorial_lcd3/.cproject @@ -0,0 +1,508 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + make + + mem_init_install + true + false + false + + + make + + mem_init_generate + true + false + false + + + make + + help + true + false + false + + + + diff --git a/software/qsys_tutorial_lcd3/.project b/software/qsys_tutorial_lcd3/.project new file mode 100644 index 0000000..6707ca7 --- /dev/null +++ b/software/qsys_tutorial_lcd3/.project @@ -0,0 +1,96 @@ + + + qsys_tutorial_lcd3 + + + + + + com.altera.sbtgui.project.makefileBuilder + + + + + com.altera.sbtgui.project.makefileBuilder + + + + + org.eclipse.cdt.managedbuilder.core.genmakebuilder + clean,full,incremental, + + + ?name? + + + + org.eclipse.cdt.make.core.append_environment + true + + + org.eclipse.cdt.make.core.autoBuildTarget + all + + + org.eclipse.cdt.make.core.buildArguments + + + + org.eclipse.cdt.make.core.buildCommand + make + + + org.eclipse.cdt.make.core.buildLocation + ${workspace_loc://qsys_tutorial_lcd3} + + + org.eclipse.cdt.make.core.cleanBuildTarget + clean + + + org.eclipse.cdt.make.core.contents + org.eclipse.cdt.make.core.activeConfigSettings + + + org.eclipse.cdt.make.core.enableAutoBuild + false + + + org.eclipse.cdt.make.core.enableCleanBuild + true + + + org.eclipse.cdt.make.core.enableFullBuild + true + + + org.eclipse.cdt.make.core.fullBuildTarget + all + + + org.eclipse.cdt.make.core.stopOnError + true + + + org.eclipse.cdt.make.core.useDefaultBuildCmd + true + + + + + org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder + full,incremental, + + + + + + org.eclipse.cdt.core.cnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.managedbuilder.core.ScannerConfigNature + org.eclipse.cdt.core.ccnature + com.altera.sbtgui.project.SBTGUINature + com.altera.sbtgui.project.SBTGUIAppNature + com.altera.sbtgui.project.SBTGUIManagedNature + + diff --git a/software/qsys_tutorial_lcd3/Makefile b/software/qsys_tutorial_lcd3/Makefile new file mode 100644 index 0000000..5b08897 --- /dev/null +++ b/software/qsys_tutorial_lcd3/Makefile @@ -0,0 +1,1086 @@ +#------------------------------------------------------------------------------ +# VARIABLES APPENDED TO BY INCLUDED MAKEFILE FRAGMENTS +#------------------------------------------------------------------------------ + +# List of include directories for -I compiler option (-I added when used). +# Includes the BSP. +ALT_INCLUDE_DIRS := + +# List of library directories for -L linker option (-L added when used). +# Includes the BSP. +ALT_LIBRARY_DIRS := + +# List of library names for -l linker option (-l added when used). +# Includes the BSP. +ALT_LIBRARY_NAMES := + +# List of library names for -msys-lib linker option (-msys-lib added when used). +# These are libraries that might be located in the BSP and depend on the BSP +# library, or vice versa +ALT_BSP_DEP_LIBRARY_NAMES := + +# List of dependencies for the linker. This is usually the full pathname +# of each library (*.a) file. +# Includes the BSP. +ALT_LDDEPS := + +# List of root library directories that support running make to build them. +# Includes the BSP and any ALT libraries. +MAKEABLE_LIBRARY_ROOT_DIRS := + +# Generic flags passed to the compiler for different types of input files. +ALT_CFLAGS := +ALT_CXXFLAGS := +ALT_CPPFLAGS := +ALT_ASFLAGS := +ALT_LDFLAGS := + + +#------------------------------------------------------------------------------ +# The adjust-path macro +# +# If COMSPEC/ComSpec is defined, Make is launched from Windows through +# Cygwin. The adjust-path macro converts absolute windows paths into +# unix style paths (Example: c:/dir -> /c/dir). This will ensture +# paths are readable by GNU Make. +# +# If COMSPEC/ComSpec is not defined, Make is launched from linux, and no +# adjustment is necessary +# +#------------------------------------------------------------------------------ + +ifndef COMSPEC +ifdef ComSpec +COMSPEC = $(ComSpec) +endif # ComSpec +endif # COMSPEC + +ifdef COMSPEC # if Windows OS + +ifeq ($(MAKE_VERSION),3.81) +# +# adjust-path/adjust-path-mixed for Mingw Gnu Make on Windows +# +# Example Usage: +# $(call adjust-path,c:/aaa/bbb) => /c/aaa/bbb +# $(call adjust-path-mixed,/c/aaa/bbb) => c:/aaa/bbb +# $(call adjust-path-mixed,/cygdrive/c/aaa/bbb) => c:/aaa/bbb +# + +# +# adjust-path +# - converts back slash characters into forward slashes +# - if input arg ($1) is an empty string then return the empty string +# - if input arg ($1) does not contain the string ":/", then return input arg +# - using sed, convert mixed path [c:/...] into mingw path [/c/...] +define adjust-path +$(strip \ +$(if $1,\ +$(if $(findstring :/,$(subst \,/,$1)),\ +$(shell echo $(subst \,/,$1) | sed -e 's,^\([a-zA-Z]\):/,/\1/,'),\ +$(subst \,/,$1)))) +endef + +# +# adjust-path-mixed +# - converts back slash characters into forward slashes +# - if input arg ($1) is an empty string then return the empty string +# - if input arg ($1) does not begin with a forward slash '/' char, then +# return input arg +# - using sed, convert mingw path [/c/...] or cygwin path [/c/cygdrive/...] +# into a mixed path [c:/...] +define adjust-path-mixed +$(strip \ +$(if $1,\ +$(if $(findstring $(subst \,/,$1),$(patsubst /%,%,$(subst \,/,$1))),\ +$(subst \,/,$1),\ +$(shell echo $(subst \,/,$1) | sed -e 's,^/cygdrive/\([a-zA-Z]\)/,\1:/,' -e 's,^/\([a-zA-Z]\)/,\1:/,')))) +endef + +else # MAKE_VERSION != 3.81 (MAKE_VERSION == 3.80 or MAKE_VERSION == 3.79) +# +# adjust-path for Cygwin Gnu Make +# $(call adjust-path,c:/aaa/bbb) = /cygdrive/c/aaa/bbb +# $(call adjust-path-mixed,/cygdrive/c/aaa/bbb) = c:/aaa/bbb +# +adjust-path = $(if $1,$(shell cygpath -u "$1"),) +adjust-path-mixed = $(if $1,$(shell cygpath -m "$1"),) +endif + +else # !COMSPEC + +adjust-path = $1 +adjust-path-mixed = $1 + +endif # COMSPEC + + +#vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv +# GENERATED SETTINGS START v +#vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv + +#START GENERATED +ACTIVE_BUILD_CONFIG := default +BUILD_CONFIGS := default + +# The following TYPE comment allows tools to identify the 'type' of target this +# makefile is associated with. +# TYPE: APP_MAKEFILE + +# This following VERSION comment indicates the version of the tool used to +# generate this makefile. A makefile variable is provided for VERSION as well. +# ACDS_VERSION: 13.0sp1 +ACDS_VERSION := 13.0sp1 + +# This following BUILD_NUMBER comment indicates the build number of the tool +# used to generate this makefile. +# BUILD_NUMBER: 232 + +# Define path to the application ELF. +# It may be used by the makefile fragments so is defined before including them. +# +ELF := qsys_tutorial_lcd3.elf + +# Paths to C, C++, and assembly source files. +C_SRCS := hello_world.c +CXX_SRCS := +ASM_SRCS := + + +# Path to root of object file tree. +OBJ_ROOT_DIR := obj + +# Options to control objdump. +CREATE_OBJDUMP := 1 +OBJDUMP_INCLUDE_SOURCE := 1 +OBJDUMP_FULL_CONTENTS := 0 + +# Options to enable/disable optional files. +CREATE_ELF_DERIVED_FILES := 0 +CREATE_LINKER_MAP := 1 + +# Common arguments for ALT_CFLAGSs +APP_CFLAGS_DEFINED_SYMBOLS := +APP_CFLAGS_UNDEFINED_SYMBOLS := +APP_CFLAGS_OPTIMIZATION := -O0 +APP_CFLAGS_DEBUG_LEVEL := -g +APP_CFLAGS_WARNINGS := -Wall +APP_CFLAGS_USER_FLAGS := + +APP_ASFLAGS_USER := +APP_LDFLAGS_USER := + +# Linker options that have default values assigned later if not +# assigned here. +LINKER_SCRIPT := +CRT0 := +SYS_LIB := + +# Define path to the root of the BSP. +BSP_ROOT_DIR := ../qsys_tutorial_lcd3_bsp/ + +# List of application specific include directories, library directories and library names +APP_INCLUDE_DIRS := +APP_LIBRARY_DIRS := +APP_LIBRARY_NAMES := + +# Pre- and post- processor settings. +BUILD_PRE_PROCESS := +BUILD_POST_PROCESS := + +QUARTUS_PROJECT_DIR := ../../ + + +#END GENERATED + +#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +# GENERATED SETTINGS END ^ +#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + +#------------------------------------------------------------------------------ +# DEFAULT TARGET +#------------------------------------------------------------------------------ + +# Define the variable used to echo output if not already defined. +ifeq ($(ECHO),) +ECHO := echo +endif + +# Put "all" rule before included makefile fragments because they may +# define rules and we don't want one of those to become the default rule. +.PHONY : all + +all: + @$(ECHO) [$(APP_NAME) build complete] + +all : build_pre_process libs app build_post_process + + +#------------------------------------------------------------------------------ +# VARIABLES DEPENDENT ON GENERATED CONTENT +#------------------------------------------------------------------------------ + +# Define object file directory per build configuration +CONFIG_OBJ_DIR := $(OBJ_ROOT_DIR)/$(ACTIVE_BUILD_CONFIG) + +ifeq ($(BSP_ROOT_DIR),) +$(error Edit Makefile and provide a value for BSP_ROOT_DIR) +endif + +ifeq ($(wildcard $(BSP_ROOT_DIR)),) +$(error BSP directory does not exist: $(BSP_ROOT_DIR)) +endif + +# Define absolute path to the root of the BSP. +ABS_BSP_ROOT_DIR := $(call adjust-path-mixed,$(shell cd "$(BSP_ROOT_DIR)"; pwd)) + +# Include makefile fragments. Define variable ALT_LIBRARY_ROOT_DIR before +# including each makefile fragment so that it knows the path to itself. +BSP_INCLUDE_FILE := $(BSP_ROOT_DIR)/public.mk +ALT_LIBRARY_ROOT_DIR := $(BSP_ROOT_DIR) +include $(BSP_INCLUDE_FILE) +# C2H will need this to touch the BSP public.mk and avoid the sopc file +# out-of-date error during a BSP make +ABS_BSP_INCLUDE_FILE := $(ABS_BSP_ROOT_DIR)/public.mk + + +ifneq ($(WARNING.SMALL_STACK_SIZE),) +# This WARNING is here to protect you from unknowingly using a very small stack +# If the warning is set, increase your stack size or enable the BSP small stack +# setting to eliminate the warning +$(warning WARNING: $(WARNING.SMALL_STACK_SIZE)) +endif + + +# If the BSP public.mk indicates that ALT_SIM_OPTIMIZE is set, rename the ELF +# by prefixing it with RUN_ON_HDL_SIMULATOR_ONLY_. +ifneq ($(filter -DALT_SIM_OPTIMIZE,$(ALT_CPPFLAGS)),) +ELF := RUN_ON_HDL_SIMULATOR_ONLY_$(ELF) +endif + +# If the BSP public.mk indicates that ALT_PROVIDE_GMON is set, add option to +# download_elf target +ifneq ($(filter -DALT_PROVIDE_GMON,$(ALT_CPPFLAGS)),) +GMON_OUT_FILENAME := gmon.out +WRITE_GMON_OPTION := --write-gmon $(GMON_OUT_FILENAME) +endif + +# Name of ELF application. +APP_NAME := $(basename $(ELF)) + +# Set to defaults if variables not already defined in settings. +ifeq ($(LINKER_SCRIPT),) +LINKER_SCRIPT := $(BSP_LINKER_SCRIPT) +endif +ifeq ($(CRT0),) +CRT0 := $(BSP_CRT0) +endif +ifeq ($(SYS_LIB),) +SYS_LIB := $(BSP_SYS_LIB) +endif + +OBJDUMP_NAME := $(APP_NAME).objdump +OBJDUMP_FLAGS := --disassemble --syms --all-header +ifeq ($(OBJDUMP_INCLUDE_SOURCE),1) +OBJDUMP_FLAGS += --source +endif +ifeq ($(OBJDUMP_FULL_CONTENTS),1) +OBJDUMP_FLAGS += --full-contents +endif + +# Create list of linker dependencies (*.a files). +APP_LDDEPS := $(ALT_LDDEPS) $(LDDEPS) + +# Take lists and add required prefixes. +APP_INC_DIRS := $(addprefix -I, $(ALT_INCLUDE_DIRS) $(APP_INCLUDE_DIRS) $(INC_DIRS)) +ASM_INC_PREFIX := -Wa,-I +APP_ASM_INC_DIRS := $(addprefix $(ASM_INC_PREFIX), $(ALT_INCLUDE_DIRS) $(APP_INCLUDE_DIRS) $(INC_DIRS)) +APP_LIB_DIRS := $(addprefix -L, $(ALT_LIBRARY_DIRS) $(APP_LIBRARY_DIRS) $(LIB_DIRS)) +APP_LIBS := $(addprefix -l, $(ALT_LIBRARY_NAMES) $(APP_LIBRARY_NAMES) $(LIBS)) + +ifneq ($(AVOID_NIOS2_GCC3_OPTIONS),) + +# +# Avoid Nios II GCC 3.X options. +# + +# Detect if small newlib C library is requested. +# If yes, remove the -msmallc option because it is +# now handled by other means. +ifneq ($(filter -msmallc,$(ALT_LDFLAGS)),) + ALT_LDFLAGS := $(filter-out -msmallc,$(ALT_LDFLAGS)) + ALT_C_LIBRARY := smallc +else + ALT_C_LIBRARY := c +endif + +# Put each BSP dependent library in a group to avoid circular dependencies. +APP_BSP_DEP_LIBS := $(foreach l,$(ALT_BSP_DEP_LIBRARY_NAMES),-Wl,--start-group -l$(ALT_C_LIBRARY) -lgcc -l$(l) -Wl,--end-group) + +else # !AVOID_NIOS2_GCC3_OPTIONS + +# +# Use Nios II GCC 3.X options. +# +APP_BSP_DEP_LIBS := $(addprefix -msys-lib=, $(ALT_BSP_DEP_LIBRARY_NAMES)) + +endif # !AVOID_NIOS2_GCC3_OPTIONS + +# Arguments for the C preprocessor, C/C++ compiler, assembler, and linker. +APP_CFLAGS := $(APP_CFLAGS_DEFINED_SYMBOLS) \ + $(APP_CFLAGS_UNDEFINED_SYMBOLS) \ + $(APP_CFLAGS_OPTIMIZATION) \ + $(APP_CFLAGS_DEBUG_LEVEL) \ + $(APP_CFLAGS_WARNINGS) \ + $(APP_CFLAGS_USER_FLAGS) \ + $(ALT_CFLAGS) \ + $(CFLAGS) + +# Arguments only for the C++ compiler. +APP_CXXFLAGS := $(ALT_CXXFLAGS) $(CXXFLAGS) + +# Arguments only for the C preprocessor. +# Prefix each include directory with -I. +APP_CPPFLAGS := $(APP_INC_DIRS) \ + $(ALT_CPPFLAGS) \ + $(CPPFLAGS) + +# Arguments only for the assembler. +APP_ASFLAGS := $(APP_ASM_INC_DIRS) \ + $(ALT_ASFLAGS) \ + $(APP_ASFLAGS_USER) \ + $(ASFLAGS) + +# Arguments only for the linker. +APP_LDFLAGS := $(APP_LDFLAGS_USER) + +ifneq ($(LINKER_SCRIPT),) +APP_LDFLAGS += -T'$(LINKER_SCRIPT)' +endif + +ifneq ($(AVOID_NIOS2_GCC3_OPTIONS),) + +# Avoid Nios II GCC 3.x options. +ifneq ($(CRT0),) +APP_LDFLAGS += $(CRT0) +endif + +# The equivalent of the -msys-lib option is provided +# by the GROUP() command in the linker script. +# Note this means the SYS_LIB variable is now ignored. + +else # !AVOID_NIOS2_GCC3_OPTIONS + +# Use Nios II GCC 3.x options. +ifneq ($(CRT0),) +APP_LDFLAGS += -msys-crt0='$(CRT0)' +endif +ifneq ($(SYS_LIB),) +APP_LDFLAGS += -msys-lib=$(SYS_LIB) +endif + +endif # !AVOID_NIOS2_GCC3_OPTIONS + +APP_LDFLAGS += \ + $(APP_LIB_DIRS) \ + $(ALT_LDFLAGS) \ + $(LDFLAGS) + +LINKER_MAP_NAME := $(APP_NAME).map +ifeq ($(CREATE_LINKER_MAP), 1) +APP_LDFLAGS += -Wl,-Map=$(LINKER_MAP_NAME) +endif + +# QUARTUS_PROJECT_DIR and SOPC_NAME need to be defined if you want the +# mem_init_install target of the mem_init.mk (located in the associated BSP) +# to know how to copy memory initialization files (e.g. .dat, .hex) into +# directories required for Quartus compilation or RTL simulation. + +# Defining QUARTUS_PROJECT_DIR causes mem_init_install to copy memory +# initialization files into your Quartus project directory. This is required +# to provide the initial memory contents of FPGA memories that can be +# initialized by the programming file (.sof) or Hardcopy ROMs. It is also used +# for VHDL simulation of on-chip memories. + +# Defining SOPC_NAME causes the mem_init_install target to copy memory +# initialization files into your RTL simulation directory. This is required +# to provide the initial memory contents of all memories that can be +# initialized by RTL simulation. This variable should be set to the same name +# as your SOPC Builder system name. For example, if you have a system called +# "foo.sopc", this variable should be set to "foo". + +# If SOPC_NAME is not set and QUARTUS_PROJECT_DIR is set, then derive SOPC_NAME. +ifeq ($(SOPC_NAME),) +ifneq ($(QUARTUS_PROJECT_DIR),) +SOPC_NAME := $(basename $(notdir $(wildcard $(QUARTUS_PROJECT_DIR)/*.sopcinfo))) +endif +endif + +# Defining JDI_FILE is required to specify the JTAG Debug Information File +# path. This file is generated by Quartus, and is needed along with the +# .sopcinfo file to resolve processor instance ID's from names in a multi-CPU +# systems. For multi-CPU systems, the processor instance ID is used to select +# from multiple CPU's during ELF download. + +# Both JDI_FILE and SOPCINFO_FILE are provided by the BSP if they found during +# BSP creation. If JDI_FILE is not set and QUARTUS_PROJECT_DIR is set, then +# derive JDI_FILE. We do not attempt to derive SOPCINFO_FILE since there may be +# multiple .sopcinfo files in a Quartus project. +ifeq ($(JDI_FILE),) +ifneq ($(QUARTUS_PROJECT_DIR),) +JDI_FILE := $(wildcard $(QUARTUS_PROJECT_DIR)/*.jdi) +endif +endif + +# Path to root runtime directory used for hdl simulation +RUNTIME_ROOT_DIR := $(CONFIG_OBJ_DIR)/runtime + + + +#------------------------------------------------------------------------------ +# MAKEFILE INCLUDES DEPENDENT ON GENERATED CONTENT +#------------------------------------------------------------------------------ +# mem_init.mk is a generated makefile fragment. This file defines all targets +# used to generate HDL initialization simulation files and pre-initialized +# onchip memory files. +MEM_INIT_FILE := $(BSP_ROOT_DIR)/mem_init.mk +include $(MEM_INIT_FILE) + +# Create list of object files to be built using the list of source files. +# The source file hierarchy is preserved in the object tree. +# The supported file extensions are: +# +# .c - for C files +# .cxx .cc .cpp - for C++ files +# .S .s - for assembler files +# +# Handle source files specified by --src-dir & --src-rdir differently, to +# save some processing time in calling the adjust-path macro. + +OBJ_LIST_C := $(patsubst %.c,%.o,$(filter %.c,$(C_SRCS))) +OBJ_LIST_CPP := $(patsubst %.cpp,%.o,$(filter %.cpp,$(CXX_SRCS))) +OBJ_LIST_CXX := $(patsubst %.cxx,%.o,$(filter %.cxx,$(CXX_SRCS))) +OBJ_LIST_CC := $(patsubst %.cc,%.o,$(filter %.cc,$(CXX_SRCS))) +OBJ_LIST_S := $(patsubst %.S,%.o,$(filter %.S,$(ASM_SRCS))) +OBJ_LIST_SS := $(patsubst %.s,%.o,$(filter %.s,$(ASM_SRCS))) + +OBJ_LIST := $(sort $(OBJ_LIST_C) $(OBJ_LIST_CPP) $(OBJ_LIST_CXX) \ + $(OBJ_LIST_CC) $(OBJ_LIST_S) $(OBJ_LIST_SS)) + +SDIR_OBJ_LIST_C := $(patsubst %.c,%.o,$(filter %.c,$(SDIR_C_SRCS))) +SDIR_OBJ_LIST_CPP := $(patsubst %.cpp,%.o,$(filter %.cpp,$(SDIR_CXX_SRCS))) +SDIR_OBJ_LIST_CXX := $(patsubst %.cxx,%.o,$(filter %.cxx,$(SDIR_CXX_SRCS))) +SDIR_OBJ_LIST_CC := $(patsubst %.cc,%.o,$(filter %.cc,$(SDIR_CXX_SRCS))) +SDIR_OBJ_LIST_S := $(patsubst %.S,%.o,$(filter %.S,$(SDIR_ASM_SRCS))) +SDIR_OBJ_LIST_SS := $(patsubst %.s,%.o,$(filter %.s,$(SDIR_ASM_SRCS))) + +SDIR_OBJ_LIST := $(sort $(SDIR_OBJ_LIST_C) $(SDIR_OBJ_LIST_CPP) \ + $(SDIR_OBJ_LIST_CXX) $(SDIR_OBJ_LIST_CC) $(SDIR_OBJ_LIST_S) \ + $(SDIR_OBJ_LIST_SS)) + +# Relative-pathed objects that being with "../" are handled differently. +# +# Regular objects are created as +# $(CONFIG_OBJ_DIR)//.o +# where the path structure is maintained under the obj directory. This +# applies for both absolute and relative paths; in the absolute path +# case this means the entire source path will be recreated under the obj +# directory. This is done to allow two source files with the same name +# to be included as part of the project. +# +# Note: On Cygwin, the path recreated under the obj directory will be +# the cygpath -u output path. +# +# Relative-path objects that begin with "../" cause problems under this +# scheme, as $(CONFIG_OBJ_DIR)/..// can potentially put the object +# files anywhere in the system, creating clutter and polluting the source tree. +# As such, their paths are flattened - the object file created will be +# $(CONFIG_OBJ_DIR)/.o. Due to this, two files specified with +# "../" in the beginning cannot have the same name in the project. VPATH +# will be set for these sources to allow make to relocate the source file +# via %.o rules. +# +# The following lines separate the object list into the flatten and regular +# lists, and then handles them as appropriate. + +FLATTEN_OBJ_LIST := $(filter ../%,$(OBJ_LIST)) +FLATTEN_APP_OBJS := $(addprefix $(CONFIG_OBJ_DIR)/,$(notdir $(FLATTEN_OBJ_LIST))) + +REGULAR_OBJ_LIST := $(filter-out $(FLATTEN_OBJ_LIST),$(OBJ_LIST)) +REGULAR_OBJ_LIST_C := $(filter $(OBJ_LIST_C),$(REGULAR_OBJ_LIST)) +REGULAR_OBJ_LIST_CPP := $(filter $(OBJ_LIST_CPP),$(REGULAR_OBJ_LIST)) +REGULAR_OBJ_LIST_CXX := $(filter $(OBJ_LIST_CXX),$(REGULAR_OBJ_LIST)) +REGULAR_OBJ_LIST_CC := $(filter $(OBJ_LIST_CC),$(REGULAR_OBJ_LIST)) +REGULAR_OBJ_LIST_S := $(filter $(OBJ_LIST_S),$(REGULAR_OBJ_LIST)) +REGULAR_OBJ_LIST_SS := $(filter $(OBJ_LIST_SS),$(REGULAR_OBJ_LIST)) + +FLATTEN_SDIR_OBJ_LIST := $(filter ../%,$(SDIR_OBJ_LIST)) +FLATTEN_SDIR_APP_OBJS := $(addprefix $(CONFIG_OBJ_DIR)/,$(notdir $(FLATTEN_SDIR_OBJ_LIST))) + +REGULAR_SDIR_OBJ_LIST := $(filter-out $(FLATTEN_SDIR_OBJ_LIST),$(SDIR_OBJ_LIST)) +REGULAR_SDIR_OBJ_LIST_C := $(filter $(SDIR_OBJ_LIST_C),$(REGULAR_SDIR_OBJ_LIST)) +REGULAR_SDIR_OBJ_LIST_CPP := $(filter $(SDIR_OBJ_LIST_CPP),$(REGULAR_SDIR_OBJ_LIST)) +REGULAR_SDIR_OBJ_LIST_CXX := $(filter $(SDIR_OBJ_LIST_CXX),$(REGULAR_SDIR_OBJ_LIST)) +REGULAR_SDIR_OBJ_LIST_CC := $(filter $(SDIR_OBJ_LIST_CC),$(REGULAR_SDIR_OBJ_LIST)) +REGULAR_SDIR_OBJ_LIST_S := $(filter $(SDIR_OBJ_LIST_S),$(REGULAR_SDIR_OBJ_LIST)) +REGULAR_SDIR_OBJ_LIST_SS := $(filter $(SDIR_OBJ_LIST_SS),$(REGULAR_SDIR_OBJ_LIST)) + +VPATH := $(sort $(dir $(FLATTEN_OBJ_LIST)) $(dir $(FLATTEN_SDIR_OBJ_LIST))) + +APP_OBJS_C := $(addprefix $(CONFIG_OBJ_DIR)/,\ + $(REGULAR_SDIR_OBJ_LIST_C) \ + $(foreach s,$(REGULAR_OBJ_LIST_C),$(call adjust-path,$s))) + +APP_OBJS_CPP := $(addprefix $(CONFIG_OBJ_DIR)/,\ + $(REGULAR_SDIR_OBJ_LIST_CPP) \ + $(foreach s,$(REGULAR_OBJ_LIST_CPP),$(call adjust-path,$s))) + +APP_OBJS_CXX := $(addprefix $(CONFIG_OBJ_DIR)/,\ + $(REGULAR_SDIR_OBJ_LIST_CXX) \ + $(foreach s,$(REGULAR_OBJ_LIST_CXX),$(call adjust-path,$s))) + +APP_OBJS_CC := $(addprefix $(CONFIG_OBJ_DIR)/,\ + $(REGULAR_SDIR_OBJ_LIST_CC) \ + $(foreach s,$(REGULAR_OBJ_LIST_CC),$(call adjust-path,$s))) + +APP_OBJS_S := $(addprefix $(CONFIG_OBJ_DIR)/,\ + $(REGULAR_SDIR_OBJ_LIST_S) \ + $(foreach s,$(REGULAR_OBJ_LIST_S),$(call adjust-path,$s))) + +APP_OBJS_SS := $(addprefix $(CONFIG_OBJ_DIR)/,\ + $(REGULAR_SDIR_OBJ_LIST_SS) \ + $(foreach s,$(REGULAR_OBJ_LIST_SS),$(call adjust-path,$s))) + +APP_OBJS := $(APP_OBJS_C) $(APP_OBJS_CPP) $(APP_OBJS_CXX) $(APP_OBJS_CC) \ + $(APP_OBJS_S) $(APP_OBJS_SS) \ + $(FLATTEN_APP_OBJS) $(FLATTEN_SDIR_APP_OBJS) + +# Add any extra user-provided object files. +APP_OBJS += $(OBJS) + +# Create list of dependancy files for each object file. +APP_DEPS := $(APP_OBJS:.o=.d) + +# Patch the Elf file with system specific information + +# Patch the Elf with the name of the sopc system +ifneq ($(SOPC_NAME),) +ELF_PATCH_FLAG += --sopc_system_name $(SOPC_NAME) +endif + +# Patch the Elf with the absolute path to the Quartus Project Directory +ifneq ($(QUARTUS_PROJECT_DIR),) +ABS_QUARTUS_PROJECT_DIR := $(call adjust-path-mixed,$(shell cd "$(QUARTUS_PROJECT_DIR)"; pwd)) +ELF_PATCH_FLAG += --quartus_project_dir "$(ABS_QUARTUS_PROJECT_DIR)" +endif + +# Patch the Elf and download args with the JDI_FILE if specified +ifneq ($(wildcard $(JDI_FILE)),) +ELF_PATCH_FLAG += --jdi $(JDI_FILE) +DOWNLOAD_JDI_FLAG := --jdi $(JDI_FILE) +endif + +# Patch the Elf with the SOPCINFO_FILE if specified +ifneq ($(wildcard $(SOPCINFO_FILE)),) +ELF_PATCH_FLAG += --sopcinfo $(SOPCINFO_FILE) +endif + +# Use the DOWNLOAD_CABLE variable to specify which JTAG cable to use. +# This is not needed if you only have one cable. +ifneq ($(DOWNLOAD_CABLE),) +DOWNLOAD_CABLE_FLAG := --cable '$(DOWNLOAD_CABLE)' +endif + + +#------------------------------------------------------------------------------ +# BUILD PRE/POST PROCESS +#------------------------------------------------------------------------------ +build_pre_process : + $(BUILD_PRE_PROCESS) + +build_post_process : + $(BUILD_POST_PROCESS) + +.PHONY: build_pre_process build_post_process + + +#------------------------------------------------------------------------------ +# TOOLS +#------------------------------------------------------------------------------ + +# +# Set tool default variables if not already defined. +# If these are defined, they would typically be defined in an +# included makefile fragment. +# +ifeq ($(DEFAULT_CROSS_COMPILE),) +DEFAULT_CROSS_COMPILE := nios2-elf- +endif + +ifeq ($(DEFAULT_STACK_REPORT),) +DEFAULT_STACKREPORT := nios2-stackreport +endif + +ifeq ($(DEFAULT_DOWNLOAD),) +DEFAULT_DOWNLOAD := nios2-download +endif + +ifeq ($(DEFAULT_FLASHPROG),) +DEFAULT_FLASHPROG := nios2-flash-programmer +endif + +ifeq ($(DEFAULT_ELFPATCH),) +DEFAULT_ELFPATCH := nios2-elf-insert +endif + +ifeq ($(DEFAULT_RM),) +DEFAULT_RM := rm -f +endif + +ifeq ($(DEFAULT_CP),) +DEFAULT_CP := cp -f +endif + +ifeq ($(DEFAULT_MKDIR),) +DEFAULT_MKDIR := mkdir -p +endif + +# +# Set tool variables to defaults if not already defined. +# If these are defined, they would typically be defined by a +# setting in the generated portion of this makefile. +# +ifeq ($(CROSS_COMPILE),) +CROSS_COMPILE := $(DEFAULT_CROSS_COMPILE) +endif + +ifeq ($(origin CC),default) +CC := $(CROSS_COMPILE)gcc -xc +endif + +ifeq ($(origin CXX),default) +CXX := $(CROSS_COMPILE)gcc -xc++ +endif + +ifeq ($(origin AS),default) +AS := $(CROSS_COMPILE)gcc +endif + +ifeq ($(origin AR),default) +AR := $(CROSS_COMPILE)ar +endif + +ifeq ($(origin LD),default) +LD := $(CROSS_COMPILE)g++ +endif + +ifeq ($(origin NM),default) +NM := $(CROSS_COMPILE)nm +endif + +ifeq ($(origin RM),default) +RM := $(DEFAULT_RM) +endif + +ifeq ($(origin CP),default) +CP := $(DEFAULT_CP) +endif + +ifeq ($(OBJDUMP),) +OBJDUMP := $(CROSS_COMPILE)objdump +endif + +ifeq ($(OBJCOPY),) +OBJCOPY := $(CROSS_COMPILE)objcopy +endif + +ifeq ($(STACKREPORT),) +ifeq ($(CROSS_COMPILE),nios2-elf-) +STACKREPORT := $(DEFAULT_STACKREPORT) +else +DISABLE_STACKREPORT := 1 +endif +endif + +ifeq ($(DOWNLOAD),) +DOWNLOAD := $(DEFAULT_DOWNLOAD) +endif + +ifeq ($(FLASHPROG),) +FLASHPROG := $(DEFAULT_FLASHPROG) +endif + +ifeq ($(ELFPATCH),) +ELFPATCH := $(DEFAULT_ELFPATCH) +endif + +ifeq ($(MKDIR),) +MKDIR := $(DEFAULT_MKDIR) +endif + +#------------------------------------------------------------------------------ +# PATTERN RULES TO BUILD OBJECTS +#------------------------------------------------------------------------------ + +define compile.c +@$(ECHO) Info: Compiling $< to $@ +@$(MKDIR) $(@D) +$(CC) -MP -MMD -c $(APP_CPPFLAGS) $(APP_CFLAGS) -o $@ $< +$(CC_POST_PROCESS) +endef + +define compile.cpp +@$(ECHO) Info: Compiling $< to $@ +@$(MKDIR) $(@D) +$(CXX) -MP -MMD -c $(APP_CPPFLAGS) $(APP_CXXFLAGS) $(APP_CFLAGS) -o $@ $< +$(CXX_POST_PROCESS) +endef + +# If assembling with the compiler, ensure "-Wa," is prepended to all APP_ASFLAGS +ifeq ($(AS),$(patsubst %as,%,$(AS))) +COMMA := , +APP_ASFLAGS := $(filter-out $(APP_CFLAGS),$(addprefix -Wa$(COMMA),$(patsubst -Wa$(COMMA)%,%,$(APP_ASFLAGS)))) +endif + +define compile.s +@$(ECHO) Info: Assembling $< to $@ +@$(MKDIR) $(@D) +$(AS) -MP -MMD -c $(APP_CPPFLAGS) $(APP_CFLAGS) $(APP_ASFLAGS) -o $@ $< +$(AS_POST_PROCESS) +endef + +ifeq ($(MAKE_VERSION),3.81) +.SECONDEXPANSION: + +$(APP_OBJS_C): $(CONFIG_OBJ_DIR)/%.o: $$(call adjust-path-mixed,%.c) + $(compile.c) + +$(APP_OBJS_CPP): $(CONFIG_OBJ_DIR)/%.o: $$(call adjust-path-mixed,%.cpp) + $(compile.cpp) + +$(APP_OBJS_CC): $(CONFIG_OBJ_DIR)/%.o: $$(call adjust-path-mixed,%.cc) + $(compile.cpp) + +$(APP_OBJS_CXX): $(CONFIG_OBJ_DIR)/%.o: $$(call adjust-path-mixed,%.cxx) + $(compile.cpp) + +$(APP_OBJS_S): $(CONFIG_OBJ_DIR)/%.o: $$(call adjust-path-mixed,%.S) + $(compile.s) + +$(APP_OBJS_SS): $(CONFIG_OBJ_DIR)/%.o: $$(call adjust-path-mixed,%.s) + $(compile.s) + +endif # MAKE_VERSION != 3.81 + +$(CONFIG_OBJ_DIR)/%.o: %.c + $(compile.c) + +$(CONFIG_OBJ_DIR)/%.o: %.cpp + $(compile.cpp) + +$(CONFIG_OBJ_DIR)/%.o: %.cc + $(compile.cpp) + +$(CONFIG_OBJ_DIR)/%.o: %.cxx + $(compile.cpp) + +$(CONFIG_OBJ_DIR)/%.o: %.S + $(compile.s) + +$(CONFIG_OBJ_DIR)/%.o: %.s + $(compile.s) + + +#------------------------------------------------------------------------------ +# PATTERN RULES TO INTERMEDIATE FILES +#------------------------------------------------------------------------------ + +$(CONFIG_OBJ_DIR)/%.s: %.c + @$(ECHO) Info: Compiling $< to $@ + @$(MKDIR) $(@D) + $(CC) -S $(APP_CPPFLAGS) $(APP_CFLAGS) -o $@ $< + +$(CONFIG_OBJ_DIR)/%.s: %.cpp + @$(ECHO) Info: Compiling $< to $@ + @$(MKDIR) $(@D) + $(CXX) -S $(APP_CPPFLAGS) $(APP_CXXFLAGS) $(APP_CFLAGS) -o $@ $< + +$(CONFIG_OBJ_DIR)/%.s: %.cc + @$(ECHO) Info: Compiling $< to $@ + @$(MKDIR) $(@D) + $(CXX) -S $(APP_CPPFLAGS) $(APP_CXXFLAGS) $(APP_CFLAGS) -o $@ $< + +$(CONFIG_OBJ_DIR)/%.s: %.cxx + @$(ECHO) Info: Compiling $< to $@ + @$(MKDIR) $(@D) + $(CXX) -S $(APP_CPPFLAGS) $(APP_CXXFLAGS) $(APP_CFLAGS) -o $@ $< + +$(CONFIG_OBJ_DIR)/%.i: %.c + @$(ECHO) Info: Compiling $< to $@ + @$(MKDIR) $(@D) + $(CC) -E $(APP_CPPFLAGS) $(APP_CFLAGS) -o $@ $< + +$(CONFIG_OBJ_DIR)/%.i: %.cpp + @$(ECHO) Info: Compiling $< to $@ + @$(MKDIR) $(@D) + $(CXX) -E $(APP_CPPFLAGS) $(APP_CXXFLAGS) $(APP_CFLAGS) -o $@ $< + +$(CONFIG_OBJ_DIR)/%.i: %.cc + @$(ECHO) Info: Compiling $< to $@ + @$(MKDIR) $(@D) + $(CXX) -E $(APP_CPPFLAGS) $(APP_CXXFLAGS) $(APP_CFLAGS) -o $@ $< + +$(CONFIG_OBJ_DIR)/%.i: %.cxx + @$(ECHO) Info: Compiling $< to $@ + @$(MKDIR) $(@D) + $(CXX) -E $(APP_CPPFLAGS) $(APP_CXXFLAGS) $(APP_CFLAGS) -o $@ $< + + +#------------------------------------------------------------------------------ +# TARGET RULES +#------------------------------------------------------------------------------ + +.PHONY : help +help : + @$(ECHO) "Summary of Makefile targets" + @$(ECHO) " Build targets:" + @$(ECHO) " all (default) - Application and all libraries (including BSP)" + @$(ECHO) " bsp - Just the BSP" + @$(ECHO) " libs - All libraries (including BSP)" + @$(ECHO) " flash - All flash files" + @$(ECHO) " mem_init_generate - All memory initialization files" +ifeq ($(QSYS),1) + @$(ECHO) " mem_init_install - This target is deprecated for QSys Systems" + @$(ECHO) " --> Use the mem_init_generate target and then" + @$(ECHO) " add the generated meminit.qip file to your" + @$(ECHO) " Quartus II Project." +else # if QSYS != 1 + @$(ECHO) " mem_init_install - Copy memory initialization files to Quartus II project" +endif # QSYS == 1 + @$(ECHO) + @$(ECHO) " Clean targets:" + @$(ECHO) " clean_all - Application and all libraries (including BSP)" + @$(ECHO) " clean - Just the application" + @$(ECHO) " clean_bsp - Just the BSP" + @$(ECHO) " clean_libs - All libraries (including BSP)" + @$(ECHO) + @$(ECHO) " Run targets:" + @$(ECHO) " download-elf - Download and run your elf executable" + @$(ECHO) " program-flash - Program flash contents to the board" + +# Handy rule to skip making libraries and just make application. +.PHONY : app +app : $(ELF) + +ifeq ($(CREATE_OBJDUMP), 1) +app : $(OBJDUMP_NAME) +endif + +ifeq ($(CREATE_ELF_DERIVED_FILES),1) +app : elf_derived_files +endif + +.PHONY: elf_derived_files +elf_derived_files: default_mem_init + +# Handy rule for making just the BSP. +.PHONY : bsp +bsp : + @$(ECHO) Info: Building $(BSP_ROOT_DIR) + @$(MAKE) --no-print-directory -C $(BSP_ROOT_DIR) + + +# Make sure all makeable libraries (including the BSP) are up-to-date. +LIB_TARGETS := $(patsubst %,%-recurs-make-lib,$(MAKEABLE_LIBRARY_ROOT_DIRS)) + +.PHONY : libs +libs : $(LIB_TARGETS) + +ifneq ($(strip $(LIB_TARGETS)),) +$(LIB_TARGETS): %-recurs-make-lib: + @$(ECHO) Info: Building $* + $(MAKE) --no-print-directory -C $* +endif + +ifneq ($(strip $(APP_LDDEPS)),) +$(APP_LDDEPS): libs + @true +endif + +# Rules to force your project to rebuild or relink +# .force_relink file will cause any application that depends on this project to relink +# .force_rebuild file will cause this project to rebuild object files +# .force_rebuild_all file will cause this project and any project that depends on this project to rebuild object files + +FORCE_RELINK_DEP := .force_relink +FORCE_REBUILD_DEP := .force_rebuild +FORCE_REBUILD_ALL_DEP := .force_rebuild_all +FORCE_REBUILD_DEP_LIST := $(CONFIG_OBJ_DIR)/$(FORCE_RELINK_DEP) $(CONFIG_OBJ_DIR)/$(FORCE_REBUILD_DEP) $(FORCE_REBUILD_ALL_DEP) + +$(FORCE_REBUILD_DEP_LIST): + +$(APP_OBJS): $(wildcard $(CONFIG_OBJ_DIR)/$(FORCE_REBUILD_DEP)) $(wildcard $(addsuffix /$(FORCE_REBUILD_ALL_DEP), . $(ALT_LIBRARY_DIRS))) + +$(ELF): $(wildcard $(addsuffix /$(FORCE_RELINK_DEP), $(CONFIG_OBJ_DIR) $(ALT_LIBRARY_DIRS))) + + +# Clean just the application. +.PHONY : clean +ifeq ($(CREATE_ELF_DERIVED_FILES),1) +clean : clean_elf_derived_files +endif + +clean : + @$(RM) -r $(ELF) $(OBJDUMP_NAME) $(LINKER_MAP_NAME) $(OBJ_ROOT_DIR) $(RUNTIME_ROOT_DIR) $(FORCE_REBUILD_DEP_LIST) + @$(ECHO) [$(APP_NAME) clean complete] + +# Clean just the BSP. +.PHONY : clean_bsp +clean_bsp : + @$(ECHO) Info: Cleaning $(BSP_ROOT_DIR) + @$(MAKE) --no-print-directory -C $(BSP_ROOT_DIR) clean + +# Clean all makeable libraries including the BSP. +LIB_CLEAN_TARGETS := $(patsubst %,%-recurs-make-clean-lib,$(MAKEABLE_LIBRARY_ROOT_DIRS)) + +.PHONY : clean_libs +clean_libs : $(LIB_CLEAN_TARGETS) + +ifneq ($(strip $(LIB_CLEAN_TARGETS)),) +$(LIB_CLEAN_TARGETS): %-recurs-make-clean-lib: + @$(ECHO) Info: Cleaning $* + $(MAKE) --no-print-directory -C $* clean +endif + +.PHONY: clean_elf_derived_files +clean_elf_derived_files: mem_init_clean + +# Clean application and all makeable libraries including the BSP. +.PHONY : clean_all +clean_all : clean mem_init_clean clean_libs + +# Include the dependency files unless the make goal is performing a clean +# of the application. +ifneq ($(firstword $(MAKECMDGOALS)),clean) +ifneq ($(firstword $(MAKECMDGOALS)),clean_all) +-include $(APP_DEPS) +endif +endif + +.PHONY : download-elf +download-elf : $(ELF) + @if [ "$(DOWNLOAD)" = "none" ]; \ + then \ + $(ECHO) Downloading $(ELF) not supported; \ + else \ + $(ECHO) Info: Downloading $(ELF); \ + $(DOWNLOAD) --go --cpu_name=$(CPU_NAME) $(DOWNLOAD_CABLE_FLAG) $(SOPC_SYSID_FLAG) $(DOWNLOAD_JDI_FLAG) $(WRITE_GMON_OPTION) $(ELF); \ + fi + +# Delete the target of a rule if it has changed and its commands exit +# with a nonzero exit status. +.DELETE_ON_ERROR: + +# Rules for flash programming commands +PROGRAM_FLASH_SUFFIX := -program +PROGRAM_FLASH_TARGET := $(addsuffix $(PROGRAM_FLASH_SUFFIX), $(FLASH_FILES)) + +.PHONY : program-flash +program-flash : $(PROGRAM_FLASH_TARGET) + +.PHONY : $(PROGRAM_FLASH_TARGET) +$(PROGRAM_FLASH_TARGET) : flash + @if [ "$(FLASHPROG)" = "none" ]; \ + then \ + $(ECHO) Programming flash not supported; \ + else \ + $(ECHO) Info: Programming $(basename $@).flash; \ + if [ -z "$($(basename $@)_EPCS_FLAGS)" ]; \ + then \ + $(ECHO) $(FLASHPROG) $(SOPC_SYSID_FLAG) --base=$($(basename $@)_START) $(basename $@).flash; \ + $(FLASHPROG) $(DOWNLOAD_CABLE_FLAG) $(SOPC_SYSID_FLAG) --base=$($(basename $@)_START) $(basename $@).flash; \ + else \ + $(ECHO) $(FLASHPROG) $(SOPC_SYSID_FLAG) --epcs --base=$($(basename $@)_START) $(basename $@).flash; \ + $(FLASHPROG) $(DOWNLOAD_CABLE_FLAG) $(SOPC_SYSID_FLAG) --epcs --base=$($(basename $@)_START) $(basename $@).flash; \ + fi \ + fi + + +# Rules for simulating with an HDL Simulator [QSYS only] +ifeq ($(QSYS),1) +IP_MAKE_SIMSCRIPT := ip-make-simscript + +ifeq ($(VSIM),) +VSIM_EXE := "$(if $(VSIM_DIR),$(VSIM_DIR)/,)vsim" +ifeq ($(ENABLE_VSIM_GUI),1) +VSIM := $(VSIM_EXE) -gui +else +VSIM := $(VSIM_EXE) -c +endif # ENABLE_VSIM_GUI == 1 +endif # VSIM not set + +ifeq ($(SPD),) +ifneq ($(ABS_QUARTUS_PROJECT_DIR),) +ifneq ($(SOPC_NAME),) +SPD := $(ABS_QUARTUS_PROJECT_DIR)/$(SOPC_NAME)_tb.spd +endif # SOPC_NAME set +endif # ABS_QUARTUS_PROJECT_DIR set +endif # SPD == empty string + +ifeq ($(MSIM_SCRIPT),) +SIM_SCRIPT_DIR := $(RUNTIME_ROOT_DIR)/sim +MSIM_SCRIPT := $(SIM_SCRIPT_DIR)/mentor/msim_setup.tcl +endif # MSIM_SCRIPT == empty string + +ifeq ($(MAKE_VERSION),3.81) +ABS_MEM_INIT_DESCRIPTOR_FILE := $(abspath $(MEM_INIT_DESCRIPTOR_FILE)) +else +ABS_MEM_INIT_DESCRIPTOR_FILE := $(call adjust-path-mixed,$(shell pwd))/$(MEM_INIT_DESCRIPTOR_FILE) +endif + +$(MSIM_SCRIPT): $(SPD) $(MEM_INIT_DESCRIPTOR_FILE) +ifeq ($(SPD),) + $(error No SPD file specified. Ensure QUARTUS_PROJECT_DIR variable is set) +endif + @$(MKDIR) $(SIM_SCRIPT_DIR) + $(IP_MAKE_SIMSCRIPT) --spd=$(SPD) --spd=$(MEM_INIT_DESCRIPTOR_FILE) --output-directory=$(SIM_SCRIPT_DIR) + +VSIM_COMMAND = \ + cd $(dir $(MSIM_SCRIPT)) && \ + $(VSIM) -do "do $(notdir $(MSIM_SCRIPT)); ld; $(if $(VSIM_RUN_TIME),run ${VSIM_RUN_TIME};quit;)" + +.PHONY: sim +sim: $(MSIM_SCRIPT) mem_init_generate +ifeq ($(MSIM_SCRIPT),) + $(error MSIM_SCRIPT not set) +endif + $(VSIM_COMMAND) + +endif # QSYS == 1 + + +#------------------------------------------------------------------------------ +# ELF TARGET RULE +#------------------------------------------------------------------------------ +# Rule for constructing the executable elf file. +$(ELF) : $(APP_OBJS) $(LINKER_SCRIPT) $(APP_LDDEPS) + @$(ECHO) Info: Linking $@ + $(LD) $(APP_LDFLAGS) $(APP_CFLAGS) -o $@ $(filter-out $(CRT0),$(APP_OBJS)) $(APP_LIBS) $(APP_BSP_DEP_LIBS) +ifneq ($(DISABLE_ELFPATCH),1) + $(ELFPATCH) $@ $(ELF_PATCH_FLAG) +endif +ifneq ($(DISABLE_STACKREPORT),1) + @bash -c "$(STACKREPORT) $@" +endif + +$(OBJDUMP_NAME) : $(ELF) + @$(ECHO) Info: Creating $@ + $(OBJDUMP) $(OBJDUMP_FLAGS) $< >$@ + +# Rule for printing the name of the elf file +.PHONY: print-elf-name +print-elf-name: + @$(ECHO) $(ELF) + + diff --git a/software/qsys_tutorial_lcd3/create-this-app b/software/qsys_tutorial_lcd3/create-this-app new file mode 100644 index 0000000..8cb9ebd --- /dev/null +++ b/software/qsys_tutorial_lcd3/create-this-app @@ -0,0 +1,114 @@ +#!/bin/bash +# +# This script creates the hello_world application in this directory. + + +BSP_DIR=../qsys_tutorial_lcd3_bsp +QUARTUS_PROJECT_DIR=../../ +NIOS2_APP_GEN_ARGS="--elf-name qsys_tutorial_lcd3.elf --set OBJDUMP_INCLUDE_SOURCE 1 --src-files hello_world.c" + + +# First, check to see if $SOPC_KIT_NIOS2 environmental variable is set. +# This variable is required for the command line tools to execute correctly. +if [ -z "${SOPC_KIT_NIOS2}" ] +then + echo Required \$SOPC_KIT_NIOS2 Environmental Variable is not set! + exit 1 +fi + + +# Also make sure that the APP has not been created already. Check for +# existence of Makefile in the app directory +if [ -f ./Makefile ] +then + echo Application has already been created! Delete Makefile if you want to create a new application makefile + exit 1 +fi + + +# We are selecting hal_default bsp because it supports this application. +# Check to see if the hal_default has already been generated by checking for +# existence of the public.mk file. If not, we need to run +# create-this-bsp file to generate the bsp. +if [ ! -f ${BSP_DIR}/public.mk ]; then + # Since BSP doesn't exist, create the BSP + # Pass any command line arguments passed to this script to the BSP. + pushd ${BSP_DIR} >> /dev/null + ./create-this-bsp "$@" || { + echo "create-this-bsp failed" + exit 1 + } + popd >> /dev/null +fi + + +# Don't run make if create-this-app script is called with --no-make arg +SKIP_MAKE= +while [ $# -gt 0 ] +do + case "$1" in + --no-make) + SKIP_MAKE=1 + ;; + esac + shift +done + + +# Now we also need to go copy the sources for this application to the +# local directory. +find "${SOPC_KIT_NIOS2}/examples/software/hello_world/" -name '*.c' -or -name '*.h' -or -name 'hostfs*' | xargs -i cp -L {} ./ || { + echo "failed during copying example source files" + exit 1 +} + +find "${SOPC_KIT_NIOS2}/examples/software/hello_world/" -name 'readme.txt' -or -name 'Readme.txt' | xargs -i cp -L {} ./ || { + echo "failed copying readme file" +} + +if [ -d "${SOPC_KIT_NIOS2}/examples/software/hello_world/system" ] +then + cp -RL "${SOPC_KIT_NIOS2}/examples/software/hello_world/system" . || { + echo "failed during copying project support files" + exit 1 + } +fi + +chmod -R +w . || { + echo "failed during changing file permissions" + exit 1 +} + +cmd="nios2-app-generate-makefile --bsp-dir ${BSP_DIR} --set QUARTUS_PROJECT_DIR=${QUARTUS_PROJECT_DIR} ${NIOS2_APP_GEN_ARGS}" + +echo "create-this-app: Running \"${cmd}\"" +$cmd || { + echo "nios2-app-generate-makefile failed" + exit 1 +} + +if [ -z "$SKIP_MAKE" ]; then + cmd="make" + + echo "create-this-app: Running \"$cmd\"" + $cmd || { + echo "make failed" + exit 1 + } + + echo + echo "To download and run the application:" + echo " 1. Make sure the board is connected to the system." + echo " 2. Run 'nios2-configure-sof ' to configure the FPGA with the hardware design." + echo " 3. If you have a stdio device, run 'nios2-terminal' in a different shell." + echo " 4. Run 'make download-elf' from the application directory." + echo + echo "To debug the application:" + echo " Import the project into Nios II Software Build Tools for Eclipse." + echo " Refer to Nios II Software Build Tools for Eclipse Documentation for more information." + echo + echo -e "" +fi + + +exit 0 diff --git a/software/qsys_tutorial_lcd3/hello_world.c b/software/qsys_tutorial_lcd3/hello_world.c new file mode 100644 index 0000000..8645f46 --- /dev/null +++ b/software/qsys_tutorial_lcd3/hello_world.c @@ -0,0 +1,31 @@ +#include +#include +#include +#include "system.h" + +#define lcd_on (volatile char *) 0x00041010 +#define lcd_blon (volatile char *) 0x00041020 + + +int main() +{ + *lcd_on = 1; + *lcd_blon = 1; + printf("Hello from Nios II!\n"); + hello(); + return 0; +} + +void hello() { + FILE *pLCD; + char msg[] = "Hello\nWorld\n"; + + pLCD = fopen(LCD_16207_0_NAME, "w"); + if (pLCD) { + fwrite(msg, strlen(msg), 1, pLCD); + fclose(pLCD); + } else { + printf("failed to say Hello World\n"); + } + printf("end"); +} diff --git a/software/qsys_tutorial_lcd3/obj/default/hello_world.d b/software/qsys_tutorial_lcd3/obj/default/hello_world.d new file mode 100644 index 0000000..76ce20b --- /dev/null +++ b/software/qsys_tutorial_lcd3/obj/default/hello_world.d @@ -0,0 +1,6 @@ +obj/default/hello_world.o: hello_world.c \ + ../qsys_tutorial_lcd3_bsp/system.h ../qsys_tutorial_lcd3_bsp/linker.h + +../qsys_tutorial_lcd3_bsp/system.h: + +../qsys_tutorial_lcd3_bsp/linker.h: diff --git a/software/qsys_tutorial_lcd3/obj/default/hello_world.o b/software/qsys_tutorial_lcd3/obj/default/hello_world.o new file mode 100644 index 0000000..5c0e2b8 --- /dev/null +++ b/software/qsys_tutorial_lcd3/obj/default/hello_world.o Binary files differ diff --git a/software/qsys_tutorial_lcd3/qsys_tutorial_lcd3.elf b/software/qsys_tutorial_lcd3/qsys_tutorial_lcd3.elf new file mode 100644 index 0000000..295a4ce --- /dev/null +++ b/software/qsys_tutorial_lcd3/qsys_tutorial_lcd3.elf Binary files differ diff --git a/software/qsys_tutorial_lcd3/qsys_tutorial_lcd3.map b/software/qsys_tutorial_lcd3/qsys_tutorial_lcd3.map new file mode 100644 index 0000000..5bd1bd7 --- /dev/null +++ b/software/qsys_tutorial_lcd3/qsys_tutorial_lcd3.map @@ -0,0 +1,2415 @@ +Archive member included because of file (symbol) + +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fclose.o) + obj/default/hello_world.o (fclose) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fflush.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fclose.o) (_fflush_r) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-findfp.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fclose.o) (__sfp_lock_acquire) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fopen.o) + obj/default/hello_world.o (fopen) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-freer.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fclose.o) (_free_r) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fseek.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fopen.o) (_fseek_r) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fstatr.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fseek.o) (_fstat_r) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fwalk.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fflush.o) (_fwalk_reent) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fwrite.o) + obj/default/hello_world.o (fwrite) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-impure.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fclose.o) (_impure_ptr) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-int_errno.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fstatr.o) (errno) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-makebuf.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fseek.o) (__smakebuf_r) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-mallocr.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-findfp.o) (_malloc_r) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memset.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-findfp.o) (memset) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-openr.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fopen.o) (_open_r) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-printf.o) + obj/default/hello_world.o (printf) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-puts.o) + obj/default/hello_world.o (puts) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-refill.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fseek.o) (__srefill_r) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-sbrkr.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-freer.o) (_sbrk_r) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-stdio.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-findfp.o) (__sclose) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-strlen.o) + obj/default/hello_world.o (strlen) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-vfprintf.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-printf.o) (___vfprintf_internal_r) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-writer.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-stdio.o) (_write_r) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-wsetup.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-vfprintf.o) (__swsetup_r) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-closer.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-stdio.o) (_close_r) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-dtoa.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-vfprintf.o) (_dtoa_r) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-flags.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fopen.o) (__sflags) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fvwrite.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fwrite.o) (__sfvwrite_r) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-isattyr.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-makebuf.o) (_isatty_r) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-locale.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-vfprintf.o) (_localeconv_r) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-lseekr.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-stdio.o) (_lseek_r) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memchr.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-vfprintf.o) (memchr) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memcpy.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-dtoa.o) (memcpy) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memmove.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fvwrite.o) (memmove) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-mprec.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-dtoa.o) (_Bfree) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-readr.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-stdio.o) (_read_r) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-reallocr.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fvwrite.o) (_realloc_r) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-s_isinfd.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-vfprintf.o) (__isinfd) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-s_isnand.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-vfprintf.o) (__isnand) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-strcmp.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-locale.o) (strcmp) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-callocr.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-mprec.o) (_calloc_r) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_udivdi3.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-vfprintf.o) (__udivdi3) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_umoddi3.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-vfprintf.o) (__umoddi3) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_addsub_df.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-dtoa.o) (__subdf3) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_mul_df.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-dtoa.o) (__muldf3) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_div_df.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-dtoa.o) (__divdf3) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_eq_df.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-vfprintf.o) (__eqdf2) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_ne_df.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-vfprintf.o) (__nedf2) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_gt_df.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-dtoa.o) (__gtdf2) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_ge_df.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-dtoa.o) (__gedf2) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_lt_df.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-vfprintf.o) (__ltdf2) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_si_to_df.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-dtoa.o) (__floatsidf) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_df_to_si.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-dtoa.o) (__fixdfsi) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_thenan_df.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_addsub_df.o) (__thenan_df) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_usi_to_df.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-dtoa.o) (__floatunsidf) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-divmod.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-vfprintf.o) (__divsi3) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-mul.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-findfp.o) (__mulsi3) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_muldi3.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_mul_df.o) (__muldi3) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_clz.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_udivdi3.o) (__clz_tab) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_clzsi2.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_si_to_df.o) (__clzsi2) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_pack_df.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_addsub_df.o) (__pack_d) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_unpack_df.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_addsub_df.o) (__unpack_d) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_fpcmp_parts_df.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_eq_df.o) (__fpcmp_parts_d) +../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_close.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-closer.o) (close) +../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_dev.o) + ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_close.o) (alt_fd_list) +../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_errno.o) + ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_close.o) (alt_errno) +../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_fstat.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fstatr.o) (fstat) +../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_isatty.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-isattyr.o) (isatty) +../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_load.o) + ../qsys_tutorial_lcd3_bsp//obj/HAL/src/crt0.o (alt_load) +../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_lseek.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-lseekr.o) (lseek) +../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_main.o) + ../qsys_tutorial_lcd3_bsp//obj/HAL/src/crt0.o (alt_main) +../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_malloc_lock.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-freer.o) (__malloc_lock) +../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_open.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-openr.o) (open) +../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_read.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-readr.o) (read) +../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_release_fd.o) + ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_close.o) (alt_release_fd) +../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_sbrk.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-sbrkr.o) (sbrk) +../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_write.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-writer.o) (write) +../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_sys_init.o) + ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_main.o) (alt_irq_init) +../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_fd.o) + ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_sys_init.o) (altera_avalon_jtag_uart_read_fd) +../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_init.o) + ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_sys_init.o) (altera_avalon_jtag_uart_init) +../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_ioctl.o) + ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_fd.o) (altera_avalon_jtag_uart_ioctl) +../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_read.o) + ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_fd.o) (altera_avalon_jtag_uart_read) +../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_write.o) + ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_fd.o) (altera_avalon_jtag_uart_write) +../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(altera_avalon_lcd_16207.o) + ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_sys_init.o) (altera_avalon_lcd_16207_init) +../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(altera_avalon_lcd_16207_fd.o) + ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_sys_init.o) (altera_avalon_lcd_16207_write_fd) +../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_alarm_start.o) + ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_init.o) (alt_alarm_start) +../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) + ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_load.o) (alt_dcache_flush_all) +../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_dev_llist_insert.o) + ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_sys_init.o) (alt_dev_llist_insert) +../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_do_ctors.o) + ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_main.o) (_do_ctors) +../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_do_dtors.o) + ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_main.o) (_do_dtors) +../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_find_dev.o) + ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_open.o) (alt_find_dev) +../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_find_file.o) + ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_open.o) (alt_find_file) +../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_get_fd.o) + ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_open.o) (alt_get_fd) +../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_icache_flush_all.o) + ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_load.o) (alt_icache_flush_all) +../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_iic.o) + ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_init.o) (alt_ic_isr_register) +../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_iic_isr_register.o) + ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_iic.o) (alt_iic_isr_register) +../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_io_redirect.o) + ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_main.o) (alt_io_redirect) +../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_irq_entry.o) + ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_iic_isr_register.o) (alt_irq_entry) +../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_irq_handler.o) + ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_iic_isr_register.o) (alt_irq_handler) +../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_irq_vars.o) + ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_iic.o) (alt_irq_active) +../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_tick.o) + ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_init.o) (_alt_tick_rate) +../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_usleep.o) + ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(altera_avalon_lcd_16207.o) (usleep) +../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) + ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_sys_init.o) (altera_nios2_qsys_irq_init) +../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_busy_sleep.o) + ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_usleep.o) (alt_busy_sleep) +../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_exception_entry.o) + ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_irq_entry.o) (alt_exception) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-atexit.o) + ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_main.o) (atexit) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-ctype_.o) + ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(altera_avalon_lcd_16207.o) (__ctype_ptr) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-exit.o) + ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_main.o) (exit) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memcmp.o) + ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_find_dev.o) (memcmp) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-__atexit.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-atexit.o) (__register_exitproc) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-__call_atexit.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-exit.o) (__call_exitprocs) +../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_exit.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-exit.o) (_exit) + +Allocating common symbols +Common symbol size file + +alt_irq 0x100 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_irq_handler.o) +errno 0x4 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-int_errno.o) +_atexit0 0x190 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-atexit.o) + +Memory Configuration + +Name Origin Length Attributes +reset 0x00000000 0x00000020 +onchip_memory 0x00000020 0x00031fe0 +*default* 0x00000000 0xffffffff + +Linker script and memory map + +LOAD ../qsys_tutorial_lcd3_bsp//obj/HAL/src/crt0.o +LOAD obj/default/hello_world.o +LOAD c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libstdc++.a +LOAD c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libm.a +LOAD c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a +START GROUP +LOAD c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a +LOAD c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a +LOAD ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a +END GROUP +LOAD c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a + 0x00000000 __alt_mem_onchip_memory = 0x0 + +.entry 0x00000000 0x20 + *(.entry) + .entry 0x00000000 0x20 ../qsys_tutorial_lcd3_bsp//obj/HAL/src/crt0.o + 0x00000000 __reset + +.exceptions 0x00000020 0x194 + 0x00000020 PROVIDE (__ram_exceptions_start, ABSOLUTE (.)) + 0x00000020 . = ALIGN (0x20) + *(.irq) + *(.exceptions.entry.label) + .exceptions.entry.label + 0x00000020 0x0 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_irq_entry.o) + 0x00000020 alt_irq_entry + .exceptions.entry.label + 0x00000020 0x0 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_exception_entry.o) + 0x00000020 alt_exception + *(.exceptions.entry.user) + *(.exceptions.entry) + .exceptions.entry + 0x00000020 0x54 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_exception_entry.o) + *(.exceptions.irqtest.user) + *(.exceptions.irqtest) + .exceptions.irqtest + 0x00000074 0x10 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_irq_entry.o) + *(.exceptions.irqhandler.user) + *(.exceptions.irqhandler) + .exceptions.irqhandler + 0x00000084 0x4 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_irq_entry.o) + *(.exceptions.irqreturn.user) + *(.exceptions.irqreturn) + .exceptions.irqreturn + 0x00000088 0x4 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_irq_entry.o) + *(.exceptions.notirq.label) + .exceptions.notirq.label + 0x0000008c 0x0 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_irq_entry.o) + *(.exceptions.notirq.user) + *(.exceptions.notirq) + .exceptions.notirq + 0x0000008c 0x8 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_exception_entry.o) + *(.exceptions.soft.user) + *(.exceptions.soft) + *(.exceptions.unknown.user) + *(.exceptions.unknown) + .exceptions.unknown + 0x00000094 0x4 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_exception_entry.o) + *(.exceptions.exit.label) + .exceptions.exit.label + 0x00000098 0x0 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_irq_entry.o) + .exceptions.exit.label + 0x00000098 0x0 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_exception_entry.o) + *(.exceptions.exit.user) + *(.exceptions.exit) + .exceptions.exit + 0x00000098 0x54 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_exception_entry.o) + *(.exceptions) + .exceptions 0x000000ec 0xc8 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_irq_handler.o) + 0x000000ec alt_irq_handler + 0x000001b4 PROVIDE (__ram_exceptions_end, ABSOLUTE (.)) + 0x00000020 PROVIDE (__flash_exceptions_start, LOADADDR (.exceptions)) + +.text 0x000001b4 0xdfa8 + 0x000001b4 PROVIDE (stext, ABSOLUTE (.)) + *(.interp) + *(.hash) + *(.dynsym) + *(.dynstr) + *(.gnu.version) + *(.gnu.version_d) + *(.gnu.version_r) + *(.rel.init) + *(.rela.init) + *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) + *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) + *(.rel.fini) + *(.rela.fini) + *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) + *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) + *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) + *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) + *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) + *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) + *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) + *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) + *(.rel.ctors) + *(.rela.ctors) + *(.rel.dtors) + *(.rela.dtors) + *(.rel.got) + *(.rela.got) + *(.rel.sdata .rel.sdata.* .rel.gnu.linkonce.s.*) + *(.rela.sdata .rela.sdata.* .rela.gnu.linkonce.s.*) + *(.rel.sbss .rel.sbss.* .rel.gnu.linkonce.sb.*) + *(.rela.sbss .rela.sbss.* .rela.gnu.linkonce.sb.*) + *(.rel.sdata2 .rel.sdata2.* .rel.gnu.linkonce.s2.*) + *(.rela.sdata2 .rela.sdata2.* .rela.gnu.linkonce.s2.*) + *(.rel.sbss2 .rel.sbss2.* .rel.gnu.linkonce.sb2.*) + *(.rela.sbss2 .rela.sbss2.* .rela.gnu.linkonce.sb2.*) + *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) + *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) + *(.rel.plt) + *(.rela.plt) + *(.rel.dyn) + *(.init) + *(.plt) + *(.text .stub .text.* .gnu.linkonce.t.*) + .text 0x000001b4 0x3c ../qsys_tutorial_lcd3_bsp//obj/HAL/src/crt0.o + 0x000001b4 _start + .text 0x000001f0 0x108 obj/default/hello_world.o + 0x000001f0 main + 0x00000248 hello + .text 0x000002f8 0x124 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fclose.o) + 0x000002f8 _fclose_r + 0x00000408 fclose + .text 0x0000041c 0x230 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fflush.o) + 0x0000041c _fflush_r + 0x00000618 fflush + .text 0x0000064c 0x2f4 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-findfp.o) + 0x000006a4 __sfp_lock_acquire + 0x000006a8 __sfp_lock_release + 0x000006ac __sinit_lock_acquire + 0x000006b0 __sinit_lock_release + 0x000006b4 __sinit + 0x00000768 __fp_unlock_all + 0x00000780 __fp_lock_all + 0x00000798 _cleanup_r + 0x000007a4 _cleanup + 0x000007b4 __sfmoreglue + 0x00000850 __sfp + .text 0x00000940 0x110 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fopen.o) + 0x00000940 _fopen_r + 0x00000a34 fopen + .text 0x00000a50 0x440 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-freer.o) + 0x00000a50 _malloc_trim_r + 0x00000b7c _free_r + .text 0x00000e90 0x460 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fseek.o) + 0x00000e90 _fseek_r + 0x000012cc fseek + .text 0x000012f0 0x74 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fstatr.o) + 0x000012f0 _fstat_r + .text 0x00001364 0x180 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fwalk.o) + 0x00001364 _fwalk_reent + 0x0000142c _fwalk + .text 0x000014e4 0xec c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fwrite.o) + 0x000014e4 _fwrite_r + 0x00001590 fwrite + .text 0x000015d0 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-impure.o) + .text 0x000015d0 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-int_errno.o) + .text 0x000015d0 0x194 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-makebuf.o) + 0x000015d0 __smakebuf_r + .text 0x00001764 0x740 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-mallocr.o) + 0x00001764 _malloc_r + .text 0x00001ea4 0x98 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memset.o) + 0x00001ea4 memset + .text 0x00001f3c 0x78 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-openr.o) + 0x00001f3c _open_r + .text 0x00001fb4 0x78 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-printf.o) + 0x00001fb4 printf + 0x00001ff8 _printf_r + .text 0x0000202c 0xb4 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-puts.o) + 0x0000202c _puts_r + 0x000020cc puts + .text 0x000020e0 0x1e0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-refill.o) + 0x000020e0 __srefill_r + .text 0x000022c0 0x70 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-sbrkr.o) + 0x000022c0 _sbrk_r + .text 0x00002330 0x14c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-stdio.o) + 0x00002330 __sclose + 0x00002338 __sseek + 0x000023a0 __swrite + 0x0000241c __sread + .text 0x0000247c 0x74 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-strlen.o) + 0x0000247c strlen + .text 0x000024f0 0x1f40 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-vfprintf.o) + 0x00002548 ___vfprintf_internal_r + 0x0000440c __vfprintf_internal + .text 0x00004430 0x78 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-writer.o) + 0x00004430 _write_r + .text 0x000044a8 0x13c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-wsetup.o) + 0x000044a8 __swsetup_r + .text 0x000045e4 0x70 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-closer.o) + 0x000045e4 _close_r + .text 0x00004654 0x17f8 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-dtoa.o) + 0x00004898 _dtoa_r + .text 0x00005e4c 0xa0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-flags.o) + 0x00005e4c __sflags + .text 0x00005eec 0x49c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fvwrite.o) + 0x00005eec __sfvwrite_r + .text 0x00006388 0x70 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-isattyr.o) + 0x00006388 _isatty_r + .text 0x000063f8 0xc4 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-locale.o) + 0x000063f8 __locale_charset + 0x00006400 _localeconv_r + 0x0000640c localeconv + 0x0000641c _setlocale_r + 0x000064a0 setlocale + .text 0x000064bc 0x78 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-lseekr.o) + 0x000064bc _lseek_r + .text 0x00006534 0xe4 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memchr.o) + 0x00006534 memchr + .text 0x00006618 0xa0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memcpy.o) + 0x00006618 memcpy + .text 0x000066b8 0xe0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memmove.o) + 0x000066b8 memmove + .text 0x00006798 0x108c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-mprec.o) + 0x00006798 _Bfree + 0x000067c0 __hi0bits + 0x00006830 __lo0bits + 0x000068f4 __mcmp + 0x00006954 __ulp + 0x000069d4 __b2d + 0x00006af4 __ratio + 0x00006ba4 _mprec_log10 + 0x00006c38 __copybits + 0x00006c90 __any_on + 0x00006d18 _Balloc + 0x00006dd4 __d2b + 0x00006f50 __mdiff + 0x000070dc __lshift + 0x00007228 __multiply + 0x0000747c __i2b + 0x000074b8 __multadd + 0x000075e4 __pow5mult + 0x00007704 __s2b + .text 0x00007824 0x78 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-readr.o) + 0x00007824 _read_r + .text 0x0000789c 0x5f4 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-reallocr.o) + 0x0000789c _realloc_r + .text 0x00007e90 0x40 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-s_isinfd.o) + 0x00007e90 __isinfd + .text 0x00007ed0 0x30 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-s_isnand.o) + 0x00007ed0 __isnand + .text 0x00007f00 0xbc c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-strcmp.o) + 0x00007f00 strcmp + .text 0x00007fbc 0xc8 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-callocr.o) + 0x00007fbc _calloc_r + .text 0x00008084 0x66c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_udivdi3.o) + 0x00008084 __udivdi3 + .text 0x000086f0 0x660 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_umoddi3.o) + 0x000086f0 __umoddi3 + .text 0x00008d50 0x504 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_addsub_df.o) + 0x00009160 __subdf3 + 0x000091e0 __adddf3 + .text 0x00009254 0x3c4 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_mul_df.o) + 0x00009254 __muldf3 + .text 0x00009618 0x258 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_div_df.o) + 0x00009618 __divdf3 + .text 0x00009870 0x88 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_eq_df.o) + 0x00009870 __eqdf2 + .text 0x000098f8 0x88 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_ne_df.o) + 0x000098f8 __nedf2 + .text 0x00009980 0x88 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_gt_df.o) + 0x00009980 __gtdf2 + .text 0x00009a08 0x88 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_ge_df.o) + 0x00009a08 __gedf2 + .text 0x00009a90 0x88 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_lt_df.o) + 0x00009a90 __ltdf2 + .text 0x00009b18 0xf8 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_si_to_df.o) + 0x00009b18 __floatsidf + .text 0x00009c10 0xd8 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_df_to_si.o) + 0x00009c10 __fixdfsi + .text 0x00009ce8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_thenan_df.o) + .text 0x00009ce8 0x194 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_usi_to_df.o) + 0x00009ce8 __floatunsidf + .text 0x00009e7c 0x14c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-divmod.o) + 0x00009ef8 __divsi3 + 0x00009f58 __modsi3 + 0x00009fb8 __udivsi3 + 0x00009fc0 __umodsi3 + .text 0x00009fc8 0x38 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-mul.o) + 0x00009fc8 __mulsi3 + .text 0x0000a000 0x124 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_muldi3.o) + 0x0000a000 __muldi3 + .text 0x0000a124 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_clz.o) + .text 0x0000a124 0x80 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_clzsi2.o) + 0x0000a124 __clzsi2 + .text 0x0000a1a4 0x314 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_pack_df.o) + 0x0000a1a4 __pack_d + .text 0x0000a4b8 0x138 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_unpack_df.o) + 0x0000a4b8 __unpack_d + .text 0x0000a5f0 0xc8 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_fpcmp_parts_df.o) + 0x0000a5f0 __fpcmp_parts_d + .text 0x0000a6b8 0x160 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_close.o) + 0x0000a6b8 close + .text 0x0000a818 0x2c ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_dev.o) + .text 0x0000a844 0x0 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_errno.o) + .text 0x0000a844 0x138 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_fstat.o) + 0x0000a844 fstat + .text 0x0000a97c 0x124 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_isatty.o) + 0x0000a97c isatty + .text 0x0000aaa0 0xec ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_load.o) + 0x0000aaa0 alt_load + .text 0x0000ab8c 0x154 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_lseek.o) + 0x0000ab8c lseek + .text 0x0000ace0 0x6c ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_main.o) + 0x0000ace0 alt_main + .text 0x0000ad4c 0x40 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_malloc_lock.o) + 0x0000ad4c __malloc_lock + 0x0000ad6c __malloc_unlock + .text 0x0000ad8c 0x2e4 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_open.o) + 0x0000ae84 open + .text 0x0000b070 0x184 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_read.o) + 0x0000b070 read + .text 0x0000b1f4 0x78 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_release_fd.o) + 0x0000b1f4 alt_release_fd + .text 0x0000b26c 0xbc ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_sbrk.o) + 0x0000b26c sbrk + .text 0x0000b328 0x184 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_write.o) + 0x0000b328 write + .text 0x0000b4ac 0xc8 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_sys_init.o) + 0x0000b4ac alt_irq_init + 0x0000b4e0 alt_sys_init + .text 0x0000b574 0x148 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_fd.o) + 0x0000b574 altera_avalon_jtag_uart_read_fd + 0x0000b5cc altera_avalon_jtag_uart_write_fd + 0x0000b624 altera_avalon_jtag_uart_close_fd + 0x0000b66c altera_avalon_jtag_uart_ioctl_fd + .text 0x0000b6bc 0x40c ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_init.o) + 0x0000b6bc altera_avalon_jtag_uart_init + 0x0000ba54 altera_avalon_jtag_uart_close + .text 0x0000bac8 0xf4 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_ioctl.o) + 0x0000bac8 altera_avalon_jtag_uart_ioctl + .text 0x0000bbbc 0x224 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_read.o) + 0x0000bbbc altera_avalon_jtag_uart_read + .text 0x0000bde0 0x240 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_write.o) + 0x0000bde0 altera_avalon_jtag_uart_write + .text 0x0000c020 0xf80 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(altera_avalon_lcd_16207.o) + 0x0000c85c altera_avalon_lcd_16207_write + 0x0000ce64 altera_avalon_lcd_16207_init + .text 0x0000cfa0 0x58 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(altera_avalon_lcd_16207_fd.o) + 0x0000cfa0 altera_avalon_lcd_16207_write_fd + .text 0x0000cff8 0x154 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_alarm_start.o) + 0x0000cff8 alt_alarm_start + .text 0x0000d14c 0x1c ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) + 0x0000d14c alt_dcache_flush_all + .text 0x0000d168 0x114 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_dev_llist_insert.o) + 0x0000d168 alt_dev_llist_insert + .text 0x0000d27c 0x64 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_do_ctors.o) + 0x0000d27c _do_ctors + .text 0x0000d2e0 0x64 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_do_dtors.o) + 0x0000d2e0 _do_dtors + .text 0x0000d344 0x94 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_find_dev.o) + 0x0000d344 alt_find_dev + .text 0x0000d3d8 0x120 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_find_file.o) + 0x0000d3d8 alt_find_file + .text 0x0000d4f8 0xd0 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_get_fd.o) + 0x0000d4f8 alt_get_fd + .text 0x0000d5c8 0x1c ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_icache_flush_all.o) + 0x0000d5c8 alt_icache_flush_all + .text 0x0000d5e4 0x1d4 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_iic.o) + 0x0000d5e4 alt_ic_isr_register + 0x0000d634 alt_ic_irq_enable + 0x0000d6d0 alt_ic_irq_disable + 0x0000d770 alt_ic_irq_enabled + .text 0x0000d7b8 0xf8 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_iic_isr_register.o) + 0x0000d7b8 alt_iic_isr_register + .text 0x0000d8b0 0x150 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_io_redirect.o) + 0x0000d988 alt_io_redirect + .text 0x0000da00 0x0 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_irq_entry.o) + .text 0x0000da00 0x0 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_irq_handler.o) + .text 0x0000da00 0x0 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_irq_vars.o) + .text 0x0000da00 0x1a4 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_tick.o) + 0x0000da00 alt_alarm_stop + 0x0000da98 alt_tick + .text 0x0000dba4 0x30 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_usleep.o) + 0x0000dba4 usleep + .text 0x0000dbd4 0x20 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) + 0x0000dbd4 altera_nios2_qsys_irq_init + .text 0x0000dbf4 0x15c ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_busy_sleep.o) + 0x0000dbf4 alt_busy_sleep + .text 0x0000dd50 0x0 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_exception_entry.o) + .text 0x0000dd50 0x14 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-atexit.o) + 0x0000dd50 atexit + .text 0x0000dd64 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-ctype_.o) + .text 0x0000dd64 0x38 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-exit.o) + 0x0000dd64 exit + .text 0x0000dd9c 0x74 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memcmp.o) + 0x0000dd9c memcmp + .text 0x0000de10 0x134 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-__atexit.o) + 0x0000de10 __register_exitproc + .text 0x0000df44 0x1b4 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-__call_atexit.o) + 0x0000df48 __call_exitprocs + .text 0x0000e0f8 0x60 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_exit.o) + 0x0000e138 _exit + *(.gnu.warning.*) + *(.fini) + 0x0000e158 PROVIDE (__etext, ABSOLUTE (.)) + 0x0000e158 PROVIDE (_etext, ABSOLUTE (.)) + 0x0000e158 PROVIDE (etext, ABSOLUTE (.)) + *(.eh_frame_hdr) + 0x0000e158 . = ALIGN (0x4) + 0x0000e158 PROVIDE (__preinit_array_start, ABSOLUTE (.)) + *(.preinit_array) + 0x0000e158 PROVIDE (__preinit_array_end, ABSOLUTE (.)) + 0x0000e158 PROVIDE (__init_array_start, ABSOLUTE (.)) + *(.init_array) + 0x0000e158 PROVIDE (__init_array_end, ABSOLUTE (.)) + 0x0000e158 PROVIDE (__fini_array_start, ABSOLUTE (.)) + *(.fini_array) + 0x0000e158 PROVIDE (__fini_array_end, ABSOLUTE (.)) + *(.eh_frame) + *(.gcc_except_table) + *(.dynamic) + 0x0000e158 PROVIDE (__CTOR_LIST__, ABSOLUTE (.)) + *(.ctors) + *(SORT(.ctors.*)) + .ctors.65535 0x0000e158 0x4 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-__call_atexit.o) + 0x0000e15c PROVIDE (__CTOR_END__, ABSOLUTE (.)) + 0x0000e15c PROVIDE (__DTOR_LIST__, ABSOLUTE (.)) + *(.dtors) + *(SORT(.dtors.*)) + 0x0000e15c PROVIDE (__DTOR_END__, ABSOLUTE (.)) + *(.jcr) + 0x0000e15c . = ALIGN (0x4) + +.rodata 0x0000e15c 0x630 + 0x0000e15c PROVIDE (__ram_rodata_start, ABSOLUTE (.)) + 0x0000e15c . = ALIGN (0x4) + *(.rodata .rodata.* .gnu.linkonce.r.*) + .rodata 0x0000e15c 0x5c obj/default/hello_world.o + .rodata.str1.4 + 0x0000e1b8 0x2 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-impure.o) + 0x4 (size before relaxing) + *fill* 0x0000e1ba 0x2 00 + .rodata.str1.4 + 0x0000e1bc 0x2 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-puts.o) + 0x4 (size before relaxing) + *fill* 0x0000e1be 0x2 00 + .rodata.str1.4 + 0x0000e1c0 0x5e c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-vfprintf.o) + 0x60 (size before relaxing) + .rodata 0x0000e21e 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-vfprintf.o) + *fill* 0x0000e23e 0x2 00 + .rodata.str1.4 + 0x0000e240 0x10 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-dtoa.o) + 0x14 (size before relaxing) + .rodata.str1.4 + 0x0000e250 0x10 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-locale.o) + 0x18 (size before relaxing) + .rodata 0x0000e260 0x30 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-locale.o) + .rodata 0x0000e290 0x124 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-mprec.o) + 0x0000e290 __mprec_tens + 0x0000e358 __mprec_bigtens + 0x0000e380 __mprec_tinytens + .rodata 0x0000e3b4 0x14 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_thenan_df.o) + 0x0000e3b4 __thenan_df + .rodata 0x0000e3c8 0x100 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_clz.o) + 0x0000e3c8 __clz_tab + .rodata 0x0000e4c8 0xc ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_dev.o) + .rodata 0x0000e4d4 0x10 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_main.o) + .rodata 0x0000e4e4 0x24 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_sys_init.o) + .rodata 0x0000e508 0x281 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-ctype_.o) + 0x0000e508 _ctype_ + *(.rodata1) + 0x0000e78c . = ALIGN (0x4) + *fill* 0x0000e789 0x3 00 + 0x0000e78c PROVIDE (__ram_rodata_end, ABSOLUTE (.)) + 0x0000e15c PROVIDE (__flash_rodata_start, LOADADDR (.rodata)) + +.rwdata 0x0000e78c 0x1b84 load address 0x00010310 + 0x0000e78c PROVIDE (__ram_rwdata_start, ABSOLUTE (.)) + 0x0000e78c . = ALIGN (0x4) + *(.got.plt) + *(.got) + *(.data1) + *(.data .data.* .gnu.linkonce.d.*) + .data 0x0000e78c 0x0 ../qsys_tutorial_lcd3_bsp//obj/HAL/src/crt0.o + .data 0x0000e78c 0x0 obj/default/hello_world.o + .data 0x0000e78c 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fclose.o) + .data 0x0000e78c 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fflush.o) + .data 0x0000e78c 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-findfp.o) + .data 0x0000e78c 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fopen.o) + .data 0x0000e78c 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-freer.o) + .data 0x0000e78c 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fseek.o) + .data 0x0000e78c 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fstatr.o) + .data 0x0000e78c 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fwalk.o) + .data 0x0000e78c 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fwrite.o) + .data 0x0000e78c 0x400 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-impure.o) + .data 0x0000eb8c 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-int_errno.o) + .data 0x0000eb8c 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-makebuf.o) + .data 0x0000eb8c 0x408 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-mallocr.o) + 0x0000eb8c __malloc_av_ + .data 0x0000ef94 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memset.o) + .data 0x0000ef94 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-openr.o) + .data 0x0000ef94 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-printf.o) + .data 0x0000ef94 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-puts.o) + .data 0x0000ef94 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-refill.o) + .data 0x0000ef94 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-sbrkr.o) + .data 0x0000ef94 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-stdio.o) + .data 0x0000ef94 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-strlen.o) + .data 0x0000ef94 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-vfprintf.o) + .data 0x0000ef94 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-writer.o) + .data 0x0000ef94 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-wsetup.o) + .data 0x0000ef94 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-closer.o) + .data 0x0000ef94 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-dtoa.o) + .data 0x0000ef94 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-flags.o) + .data 0x0000ef94 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fvwrite.o) + .data 0x0000ef94 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-isattyr.o) + .data 0x0000ef94 0xc c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-locale.o) + 0x0000ef94 __lc_ctype + .data 0x0000efa0 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-lseekr.o) + .data 0x0000efa0 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memchr.o) + .data 0x0000efa0 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memcpy.o) + .data 0x0000efa0 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memmove.o) + .data 0x0000efa0 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-mprec.o) + .data 0x0000efa0 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-readr.o) + .data 0x0000efa0 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-reallocr.o) + .data 0x0000efa0 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-s_isinfd.o) + .data 0x0000efa0 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-s_isnand.o) + .data 0x0000efa0 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-strcmp.o) + .data 0x0000efa0 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-callocr.o) + .data 0x0000efa0 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_udivdi3.o) + .data 0x0000efa0 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_umoddi3.o) + .data 0x0000efa0 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_addsub_df.o) + .data 0x0000efa0 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_mul_df.o) + .data 0x0000efa0 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_div_df.o) + .data 0x0000efa0 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_eq_df.o) + .data 0x0000efa0 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_ne_df.o) + .data 0x0000efa0 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_gt_df.o) + .data 0x0000efa0 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_ge_df.o) + .data 0x0000efa0 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_lt_df.o) + .data 0x0000efa0 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_si_to_df.o) + .data 0x0000efa0 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_df_to_si.o) + .data 0x0000efa0 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_thenan_df.o) + .data 0x0000efa0 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_usi_to_df.o) + .data 0x0000efa0 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-divmod.o) + .data 0x0000efa0 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-mul.o) + .data 0x0000efa0 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_muldi3.o) + .data 0x0000efa0 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_clz.o) + .data 0x0000efa0 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_clzsi2.o) + .data 0x0000efa0 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_pack_df.o) + .data 0x0000efa0 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_unpack_df.o) + .data 0x0000efa0 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_fpcmp_parts_df.o) + .data 0x0000efa0 0x0 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_close.o) + .data 0x0000efa0 0x1a8 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_dev.o) + 0x0000efa0 alt_dev_null + 0x0000efc8 alt_fd_list + .data 0x0000f148 0x0 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_errno.o) + .data 0x0000f148 0x0 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_fstat.o) + .data 0x0000f148 0x0 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_isatty.o) + .data 0x0000f148 0x0 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_load.o) + .data 0x0000f148 0x0 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_lseek.o) + .data 0x0000f148 0x0 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_main.o) + .data 0x0000f148 0x0 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_malloc_lock.o) + .data 0x0000f148 0x0 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_open.o) + .data 0x0000f148 0x0 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_read.o) + .data 0x0000f148 0x0 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_release_fd.o) + .data 0x0000f148 0x0 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_sbrk.o) + .data 0x0000f148 0x0 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_write.o) + .data 0x0000f148 0x1180 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_sys_init.o) + .data 0x000102c8 0x0 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_fd.o) + .data 0x000102c8 0x0 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_init.o) + .data 0x000102c8 0x0 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_ioctl.o) + .data 0x000102c8 0x0 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_read.o) + .data 0x000102c8 0x0 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_write.o) + .data 0x000102c8 0x0 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(altera_avalon_lcd_16207.o) + .data 0x000102c8 0x0 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(altera_avalon_lcd_16207_fd.o) + .data 0x000102c8 0x0 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_alarm_start.o) + .data 0x000102c8 0x0 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) + .data 0x000102c8 0x0 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_dev_llist_insert.o) + .data 0x000102c8 0x0 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_do_ctors.o) + .data 0x000102c8 0x0 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_do_dtors.o) + .data 0x000102c8 0x0 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_find_dev.o) + .data 0x000102c8 0x0 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_find_file.o) + .data 0x000102c8 0x0 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_get_fd.o) + .data 0x000102c8 0x0 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_icache_flush_all.o) + .data 0x000102c8 0x0 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_iic.o) + .data 0x000102c8 0x0 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_iic_isr_register.o) + .data 0x000102c8 0x0 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_io_redirect.o) + .data 0x000102c8 0x0 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_irq_entry.o) + .data 0x000102c8 0x0 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_irq_handler.o) + .data 0x000102c8 0x0 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_irq_vars.o) + .data 0x000102c8 0x0 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_tick.o) + .data 0x000102c8 0x0 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_usleep.o) + .data 0x000102c8 0x0 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) + .data 0x000102c8 0x0 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_busy_sleep.o) + .data 0x000102c8 0x0 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_exception_entry.o) + .data 0x000102c8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-atexit.o) + .data 0x000102c8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-ctype_.o) + .data 0x000102c8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-exit.o) + .data 0x000102c8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memcmp.o) + .data 0x000102c8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-__atexit.o) + .data 0x000102c8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-__call_atexit.o) + .data 0x000102c8 0x0 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_exit.o) + 0x000182c8 _gp = ABSOLUTE ((. + 0x8000)) + 0x000182c8 PROVIDE (gp, _gp) + *(.rwdata .rwdata.*) + *(.sdata .sdata.* .gnu.linkonce.s.*) + .sdata 0x000102c8 0x8 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-impure.o) + 0x000102c8 _impure_ptr + 0x000102cc _global_impure_ptr + .sdata 0x000102d0 0x8 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-mallocr.o) + 0x000102d0 __malloc_trim_threshold + 0x000102d4 __malloc_sbrk_base + .sdata 0x000102d8 0x8 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-locale.o) + 0x000102d8 __mb_cur_max + .sdata 0x000102e0 0x14 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_dev.o) + 0x000102e0 alt_fs_list + 0x000102e8 alt_dev_list + 0x000102f0 alt_max_fd + .sdata 0x000102f4 0x4 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_errno.o) + 0x000102f4 alt_errno + .sdata 0x000102f8 0x4 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_sbrk.o) + .sdata 0x000102fc 0x4 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(altera_avalon_lcd_16207.o) + .sdata 0x00010300 0x4 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_irq_vars.o) + 0x00010300 alt_priority_mask + .sdata 0x00010304 0x8 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_tick.o) + 0x00010304 alt_alarm_list + .sdata 0x0001030c 0x4 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-ctype_.o) + 0x0001030c __ctype_ptr + *(.sdata2 .sdata2.* .gnu.linkonce.s2.*) + 0x00010310 . = ALIGN (0x4) + 0x00010310 _edata = ABSOLUTE (.) + 0x00010310 PROVIDE (edata, ABSOLUTE (.)) + 0x00010310 PROVIDE (__ram_rwdata_end, ABSOLUTE (.)) + 0x00010310 PROVIDE (__flash_rwdata_start, LOADADDR (.rwdata)) + +.bss 0x00011e94 0x2ec + 0x00011e94 __bss_start = ABSOLUTE (.) + 0x00011e94 PROVIDE (__sbss_start, ABSOLUTE (.)) + 0x00011e94 PROVIDE (___sbss_start, ABSOLUTE (.)) + *(.dynsbss) + *(.sbss .sbss.* .gnu.linkonce.sb.*) + .sbss 0x00011e94 0x4 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-int_errno.o) + 0x00011e94 errno + .sbss 0x00011e98 0xc c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-mallocr.o) + 0x00011e98 __malloc_top_pad + 0x00011e9c __malloc_max_sbrked_mem + 0x00011ea0 __malloc_max_total_mem + .sbss 0x00011ea4 0xc c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-locale.o) + 0x00011ea4 __nlocale_changed + 0x00011ea8 __mlocale_changed + 0x00011eac _PathLocale + .sbss 0x00011eb0 0xc ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_main.o) + 0x00011eb0 alt_argc + 0x00011eb4 alt_argv + 0x00011eb8 alt_envp + .sbss 0x00011ebc 0x4 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_irq_vars.o) + 0x00011ebc alt_irq_active + .sbss 0x00011ec0 0x8 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_tick.o) + 0x00011ec0 _alt_tick_rate + 0x00011ec4 _alt_nticks + *(.sbss2 .sbss2.* .gnu.linkonce.sb2.*) + *(.scommon) + 0x00011ec8 PROVIDE (__sbss_end, ABSOLUTE (.)) + 0x00011ec8 PROVIDE (___sbss_end, ABSOLUTE (.)) + *(.dynbss) + *(.bss .bss.* .gnu.linkonce.b.*) + .bss 0x00011ec8 0x0 ../qsys_tutorial_lcd3_bsp//obj/HAL/src/crt0.o + .bss 0x00011ec8 0x0 obj/default/hello_world.o + .bss 0x00011ec8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fclose.o) + .bss 0x00011ec8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fflush.o) + .bss 0x00011ec8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-findfp.o) + .bss 0x00011ec8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fopen.o) + .bss 0x00011ec8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-freer.o) + .bss 0x00011ec8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fseek.o) + .bss 0x00011ec8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fstatr.o) + .bss 0x00011ec8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fwalk.o) + .bss 0x00011ec8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fwrite.o) + .bss 0x00011ec8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-impure.o) + .bss 0x00011ec8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-int_errno.o) + .bss 0x00011ec8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-makebuf.o) + .bss 0x00011ec8 0x28 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-mallocr.o) + 0x00011ec8 __malloc_current_mallinfo + .bss 0x00011ef0 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memset.o) + .bss 0x00011ef0 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-openr.o) + .bss 0x00011ef0 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-printf.o) + .bss 0x00011ef0 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-puts.o) + .bss 0x00011ef0 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-refill.o) + .bss 0x00011ef0 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-sbrkr.o) + .bss 0x00011ef0 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-stdio.o) + .bss 0x00011ef0 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-strlen.o) + .bss 0x00011ef0 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-vfprintf.o) + .bss 0x00011ef0 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-writer.o) + .bss 0x00011ef0 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-wsetup.o) + .bss 0x00011ef0 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-closer.o) + .bss 0x00011ef0 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-dtoa.o) + .bss 0x00011ef0 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-flags.o) + .bss 0x00011ef0 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fvwrite.o) + .bss 0x00011ef0 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-isattyr.o) + .bss 0x00011ef0 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-locale.o) + .bss 0x00011ef0 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-lseekr.o) + .bss 0x00011ef0 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memchr.o) + .bss 0x00011ef0 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memcpy.o) + .bss 0x00011ef0 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memmove.o) + .bss 0x00011ef0 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-mprec.o) + .bss 0x00011ef0 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-readr.o) + .bss 0x00011ef0 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-reallocr.o) + .bss 0x00011ef0 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-s_isinfd.o) + .bss 0x00011ef0 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-s_isnand.o) + .bss 0x00011ef0 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-strcmp.o) + .bss 0x00011ef0 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-callocr.o) + .bss 0x00011ef0 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_udivdi3.o) + .bss 0x00011ef0 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_umoddi3.o) + .bss 0x00011ef0 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_addsub_df.o) + .bss 0x00011ef0 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_mul_df.o) + .bss 0x00011ef0 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_div_df.o) + .bss 0x00011ef0 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_eq_df.o) + .bss 0x00011ef0 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_ne_df.o) + .bss 0x00011ef0 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_gt_df.o) + .bss 0x00011ef0 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_ge_df.o) + .bss 0x00011ef0 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_lt_df.o) + .bss 0x00011ef0 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_si_to_df.o) + .bss 0x00011ef0 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_df_to_si.o) + .bss 0x00011ef0 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_thenan_df.o) + .bss 0x00011ef0 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_usi_to_df.o) + .bss 0x00011ef0 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-divmod.o) + .bss 0x00011ef0 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-mul.o) + .bss 0x00011ef0 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_muldi3.o) + .bss 0x00011ef0 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_clz.o) + .bss 0x00011ef0 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_clzsi2.o) + .bss 0x00011ef0 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_pack_df.o) + .bss 0x00011ef0 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_unpack_df.o) + .bss 0x00011ef0 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_fpcmp_parts_df.o) + .bss 0x00011ef0 0x0 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_close.o) + .bss 0x00011ef0 0x0 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_dev.o) + .bss 0x00011ef0 0x0 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_errno.o) + .bss 0x00011ef0 0x0 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_fstat.o) + .bss 0x00011ef0 0x0 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_isatty.o) + .bss 0x00011ef0 0x0 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_load.o) + .bss 0x00011ef0 0x0 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_lseek.o) + .bss 0x00011ef0 0x0 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_main.o) + .bss 0x00011ef0 0x0 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_malloc_lock.o) + .bss 0x00011ef0 0x0 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_open.o) + .bss 0x00011ef0 0x0 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_read.o) + .bss 0x00011ef0 0x0 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_release_fd.o) + .bss 0x00011ef0 0x0 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_sbrk.o) + .bss 0x00011ef0 0x0 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_write.o) + .bss 0x00011ef0 0x0 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_sys_init.o) + .bss 0x00011ef0 0x0 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_fd.o) + .bss 0x00011ef0 0x0 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_init.o) + .bss 0x00011ef0 0x0 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_ioctl.o) + .bss 0x00011ef0 0x0 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_read.o) + .bss 0x00011ef0 0x0 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_write.o) + .bss 0x00011ef0 0x0 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(altera_avalon_lcd_16207.o) + .bss 0x00011ef0 0x0 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(altera_avalon_lcd_16207_fd.o) + .bss 0x00011ef0 0x0 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_alarm_start.o) + .bss 0x00011ef0 0x0 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) + .bss 0x00011ef0 0x0 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_dev_llist_insert.o) + .bss 0x00011ef0 0x0 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_do_ctors.o) + .bss 0x00011ef0 0x0 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_do_dtors.o) + .bss 0x00011ef0 0x0 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_find_dev.o) + .bss 0x00011ef0 0x0 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_find_file.o) + .bss 0x00011ef0 0x0 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_get_fd.o) + .bss 0x00011ef0 0x0 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_icache_flush_all.o) + .bss 0x00011ef0 0x0 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_iic.o) + .bss 0x00011ef0 0x0 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_iic_isr_register.o) + .bss 0x00011ef0 0x0 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_io_redirect.o) + .bss 0x00011ef0 0x0 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_irq_entry.o) + .bss 0x00011ef0 0x0 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_irq_handler.o) + .bss 0x00011ef0 0x0 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_irq_vars.o) + .bss 0x00011ef0 0x0 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_tick.o) + .bss 0x00011ef0 0x0 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_usleep.o) + .bss 0x00011ef0 0x0 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) + .bss 0x00011ef0 0x0 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_busy_sleep.o) + .bss 0x00011ef0 0x0 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_exception_entry.o) + .bss 0x00011ef0 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-atexit.o) + .bss 0x00011ef0 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-ctype_.o) + .bss 0x00011ef0 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-exit.o) + .bss 0x00011ef0 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memcmp.o) + .bss 0x00011ef0 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-__atexit.o) + .bss 0x00011ef0 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-__call_atexit.o) + .bss 0x00011ef0 0x0 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_exit.o) + *(COMMON) + COMMON 0x00011ef0 0x100 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_irq_handler.o) + 0x00011ef0 alt_irq + COMMON 0x00011ff0 0x190 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-atexit.o) + 0x00011ff0 _atexit0 + 0x00012180 . = ALIGN (0x4) + 0x00012180 __bss_end = ABSOLUTE (.) + +.onchip_memory 0x00012180 0x0 + 0x00012180 PROVIDE (_alt_partition_onchip_memory_start, ABSOLUTE (.)) + *(.onchip_memory. onchip_memory.*) + 0x00012180 . = ALIGN (0x4) + 0x00012180 PROVIDE (_alt_partition_onchip_memory_end, ABSOLUTE (.)) + 0x00012180 _end = ABSOLUTE (.) + 0x00012180 end = ABSOLUTE (.) + 0x00012180 __alt_stack_base = ABSOLUTE (.) + 0x00012180 PROVIDE (_alt_partition_onchip_memory_load_addr, LOADADDR (.onchip_memory)) + +.stab + *(.stab) + +.stabstr + *(.stabstr) + +.stab.excl + *(.stab.excl) + +.stab.exclstr + *(.stab.exclstr) + +.stab.index + *(.stab.index) + +.stab.indexstr + *(.stab.indexstr) + +.comment 0x00000000 0x26 + *(.comment) + .comment 0x00000000 0x26 obj/default/hello_world.o + 0x27 (size before relaxing) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fclose.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fflush.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-findfp.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fopen.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-freer.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fseek.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fstatr.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fwalk.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fwrite.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-impure.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-int_errno.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-makebuf.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-mallocr.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memset.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-openr.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-printf.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-puts.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-refill.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-sbrkr.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-stdio.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-strlen.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-vfprintf.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-writer.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-wsetup.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-closer.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-dtoa.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-flags.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fvwrite.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-isattyr.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-locale.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-lseekr.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memchr.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memcpy.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memmove.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-mprec.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-readr.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-reallocr.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-s_isinfd.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-s_isnand.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-strcmp.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-callocr.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_udivdi3.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_umoddi3.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_addsub_df.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_mul_df.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_div_df.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_eq_df.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_ne_df.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_gt_df.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_ge_df.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_lt_df.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_si_to_df.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_df_to_si.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_thenan_df.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_usi_to_df.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-divmod.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-mul.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_muldi3.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_clz.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_clzsi2.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_pack_df.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_unpack_df.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_fpcmp_parts_df.o) + .comment 0x00000000 0x27 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_close.o) + .comment 0x00000000 0x27 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_dev.o) + .comment 0x00000000 0x27 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_errno.o) + .comment 0x00000000 0x27 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_fstat.o) + .comment 0x00000000 0x27 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_isatty.o) + .comment 0x00000000 0x27 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_load.o) + .comment 0x00000000 0x27 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_lseek.o) + .comment 0x00000000 0x27 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_main.o) + .comment 0x00000000 0x27 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_malloc_lock.o) + .comment 0x00000000 0x27 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_open.o) + .comment 0x00000000 0x27 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_read.o) + .comment 0x00000000 0x27 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_release_fd.o) + .comment 0x00000000 0x27 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_sbrk.o) + .comment 0x00000000 0x27 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_write.o) + .comment 0x00000000 0x27 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_sys_init.o) + .comment 0x00000000 0x27 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_fd.o) + .comment 0x00000000 0x27 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_init.o) + .comment 0x00000000 0x27 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_ioctl.o) + .comment 0x00000000 0x27 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_read.o) + .comment 0x00000000 0x27 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_write.o) + .comment 0x00000000 0x27 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(altera_avalon_lcd_16207.o) + .comment 0x00000000 0x27 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(altera_avalon_lcd_16207_fd.o) + .comment 0x00000000 0x27 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_alarm_start.o) + .comment 0x00000000 0x27 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) + .comment 0x00000000 0x27 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_dev_llist_insert.o) + .comment 0x00000000 0x27 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_do_ctors.o) + .comment 0x00000000 0x27 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_do_dtors.o) + .comment 0x00000000 0x27 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_find_dev.o) + .comment 0x00000000 0x27 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_find_file.o) + .comment 0x00000000 0x27 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_get_fd.o) + .comment 0x00000000 0x27 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_icache_flush_all.o) + .comment 0x00000000 0x27 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_iic.o) + .comment 0x00000000 0x27 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_iic_isr_register.o) + .comment 0x00000000 0x27 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_io_redirect.o) + .comment 0x00000000 0x27 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_irq_handler.o) + .comment 0x00000000 0x27 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_irq_vars.o) + .comment 0x00000000 0x27 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_tick.o) + .comment 0x00000000 0x27 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_usleep.o) + .comment 0x00000000 0x27 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) + .comment 0x00000000 0x27 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_busy_sleep.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-atexit.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-ctype_.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-exit.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memcmp.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-__atexit.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-__call_atexit.o) + .comment 0x00000000 0x27 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_exit.o) + +.debug + *(.debug) + +.line + *(.line) + +.debug_srcinfo + *(.debug_srcinfo) + +.debug_sfnames + *(.debug_sfnames) + +.debug_aranges 0x00000000 0xd98 + *(.debug_aranges) + .debug_aranges + 0x00000000 0x28 ../qsys_tutorial_lcd3_bsp//obj/HAL/src/crt0.o + .debug_aranges + 0x00000028 0x20 obj/default/hello_world.o + .debug_aranges + 0x00000048 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fclose.o) + .debug_aranges + 0x00000068 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fflush.o) + .debug_aranges + 0x00000088 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-findfp.o) + .debug_aranges + 0x000000a8 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fopen.o) + .debug_aranges + 0x000000c8 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-freer.o) + .debug_aranges + 0x000000e8 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fseek.o) + .debug_aranges + 0x00000108 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fstatr.o) + .debug_aranges + 0x00000128 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fwalk.o) + .debug_aranges + 0x00000148 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fwrite.o) + .debug_aranges + 0x00000168 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-makebuf.o) + .debug_aranges + 0x00000188 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-mallocr.o) + .debug_aranges + 0x000001a8 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memset.o) + .debug_aranges + 0x000001c8 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-openr.o) + .debug_aranges + 0x000001e8 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-printf.o) + .debug_aranges + 0x00000208 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-puts.o) + .debug_aranges + 0x00000228 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-refill.o) + .debug_aranges + 0x00000248 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-sbrkr.o) + .debug_aranges + 0x00000268 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-stdio.o) + .debug_aranges + 0x00000288 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-strlen.o) + .debug_aranges + 0x000002a8 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-vfprintf.o) + .debug_aranges + 0x000002c8 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-writer.o) + .debug_aranges + 0x000002e8 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-wsetup.o) + .debug_aranges + 0x00000308 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-closer.o) + .debug_aranges + 0x00000328 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-dtoa.o) + .debug_aranges + 0x00000348 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-flags.o) + .debug_aranges + 0x00000368 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fvwrite.o) + .debug_aranges + 0x00000388 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-isattyr.o) + .debug_aranges + 0x000003a8 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-locale.o) + .debug_aranges + 0x000003c8 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-lseekr.o) + .debug_aranges + 0x000003e8 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memchr.o) + .debug_aranges + 0x00000408 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memcpy.o) + .debug_aranges + 0x00000428 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memmove.o) + .debug_aranges + 0x00000448 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-mprec.o) + .debug_aranges + 0x00000468 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-readr.o) + .debug_aranges + 0x00000488 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-reallocr.o) + .debug_aranges + 0x000004a8 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-s_isinfd.o) + .debug_aranges + 0x000004c8 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-s_isnand.o) + .debug_aranges + 0x000004e8 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-strcmp.o) + .debug_aranges + 0x00000508 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-callocr.o) + .debug_aranges + 0x00000528 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_udivdi3.o) + .debug_aranges + 0x00000548 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_umoddi3.o) + .debug_aranges + 0x00000568 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_addsub_df.o) + .debug_aranges + 0x00000588 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_mul_df.o) + .debug_aranges + 0x000005a8 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_div_df.o) + .debug_aranges + 0x000005c8 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_eq_df.o) + .debug_aranges + 0x000005e8 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_ne_df.o) + .debug_aranges + 0x00000608 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_gt_df.o) + .debug_aranges + 0x00000628 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_ge_df.o) + .debug_aranges + 0x00000648 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_lt_df.o) + .debug_aranges + 0x00000668 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_si_to_df.o) + .debug_aranges + 0x00000688 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_df_to_si.o) + .debug_aranges + 0x000006a8 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_usi_to_df.o) + .debug_aranges + 0x000006c8 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-divmod.o) + .debug_aranges + 0x000006e8 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-mul.o) + .debug_aranges + 0x00000708 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_muldi3.o) + .debug_aranges + 0x00000728 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_clzsi2.o) + .debug_aranges + 0x00000748 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_pack_df.o) + .debug_aranges + 0x00000768 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_unpack_df.o) + .debug_aranges + 0x00000788 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_fpcmp_parts_df.o) + .debug_aranges + 0x000007a8 0x20 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_close.o) + .debug_aranges + 0x000007c8 0x20 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_dev.o) + .debug_aranges + 0x000007e8 0x20 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_fstat.o) + .debug_aranges + 0x00000808 0x20 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_isatty.o) + .debug_aranges + 0x00000828 0x20 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_load.o) + .debug_aranges + 0x00000848 0x20 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_lseek.o) + .debug_aranges + 0x00000868 0x20 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_main.o) + .debug_aranges + 0x00000888 0x20 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_malloc_lock.o) + .debug_aranges + 0x000008a8 0x20 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_open.o) + .debug_aranges + 0x000008c8 0x20 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_read.o) + .debug_aranges + 0x000008e8 0x20 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_release_fd.o) + .debug_aranges + 0x00000908 0x20 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_sbrk.o) + .debug_aranges + 0x00000928 0x20 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_write.o) + .debug_aranges + 0x00000948 0x20 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_sys_init.o) + .debug_aranges + 0x00000968 0x20 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_fd.o) + .debug_aranges + 0x00000988 0x20 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_init.o) + .debug_aranges + 0x000009a8 0x20 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_ioctl.o) + .debug_aranges + 0x000009c8 0x20 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_read.o) + .debug_aranges + 0x000009e8 0x20 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_write.o) + .debug_aranges + 0x00000a08 0x20 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(altera_avalon_lcd_16207.o) + .debug_aranges + 0x00000a28 0x20 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(altera_avalon_lcd_16207_fd.o) + .debug_aranges + 0x00000a48 0x20 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_alarm_start.o) + .debug_aranges + 0x00000a68 0x20 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) + .debug_aranges + 0x00000a88 0x20 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_dev_llist_insert.o) + .debug_aranges + 0x00000aa8 0x20 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_do_ctors.o) + .debug_aranges + 0x00000ac8 0x20 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_do_dtors.o) + .debug_aranges + 0x00000ae8 0x20 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_find_dev.o) + .debug_aranges + 0x00000b08 0x20 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_find_file.o) + .debug_aranges + 0x00000b28 0x20 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_get_fd.o) + .debug_aranges + 0x00000b48 0x20 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_icache_flush_all.o) + .debug_aranges + 0x00000b68 0x20 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_iic.o) + .debug_aranges + 0x00000b88 0x20 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_iic_isr_register.o) + .debug_aranges + 0x00000ba8 0x20 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_io_redirect.o) + .debug_aranges + 0x00000bc8 0x30 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_irq_entry.o) + .debug_aranges + 0x00000bf8 0x28 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_irq_handler.o) + .debug_aranges + 0x00000c20 0x20 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_tick.o) + .debug_aranges + 0x00000c40 0x20 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_usleep.o) + .debug_aranges + 0x00000c60 0x20 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) + .debug_aranges + 0x00000c80 0x20 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_busy_sleep.o) + .debug_aranges + 0x00000ca0 0x38 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_exception_entry.o) + .debug_aranges + 0x00000cd8 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-atexit.o) + .debug_aranges + 0x00000cf8 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-exit.o) + .debug_aranges + 0x00000d18 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memcmp.o) + .debug_aranges + 0x00000d38 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-__atexit.o) + .debug_aranges + 0x00000d58 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-__call_atexit.o) + .debug_aranges + 0x00000d78 0x20 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_exit.o) + +.debug_pubnames + 0x00000000 0x14d6 + *(.debug_pubnames) + .debug_pubnames + 0x00000000 0x25 obj/default/hello_world.o + .debug_pubnames + 0x00000025 0x2b c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fclose.o) + .debug_pubnames + 0x00000050 0x2b c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fflush.o) + .debug_pubnames + 0x0000007b 0xdb c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-findfp.o) + .debug_pubnames + 0x00000156 0x29 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fopen.o) + .debug_pubnames + 0x0000017f 0x31 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-freer.o) + .debug_pubnames + 0x000001b0 0x29 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fseek.o) + .debug_pubnames + 0x000001d9 0x1f c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fstatr.o) + .debug_pubnames + 0x000001f8 0x2e c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fwalk.o) + .debug_pubnames + 0x00000226 0x2b c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fwrite.o) + .debug_pubnames + 0x00000251 0x39 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-impure.o) + .debug_pubnames + 0x0000028a 0x1c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-int_errno.o) + .debug_pubnames + 0x000002a6 0x23 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-makebuf.o) + .debug_pubnames + 0x000002c9 0xce c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-mallocr.o) + .debug_pubnames + 0x00000397 0x1d c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memset.o) + .debug_pubnames + 0x000003b4 0x1e c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-openr.o) + .debug_pubnames + 0x000003d2 0x2b c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-printf.o) + .debug_pubnames + 0x000003fd 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-puts.o) + .debug_pubnames + 0x00000424 0x22 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-refill.o) + .debug_pubnames + 0x00000446 0x1e c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-sbrkr.o) + .debug_pubnames + 0x00000464 0x44 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-stdio.o) + .debug_pubnames + 0x000004a8 0x1d c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-strlen.o) + .debug_pubnames + 0x000004c5 0x45 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-vfprintf.o) + .debug_pubnames + 0x0000050a 0x1f c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-writer.o) + .debug_pubnames + 0x00000529 0x22 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-wsetup.o) + .debug_pubnames + 0x0000054b 0x1f c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-closer.o) + .debug_pubnames + 0x0000056a 0x1e c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-dtoa.o) + .debug_pubnames + 0x00000588 0x1f c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-flags.o) + .debug_pubnames + 0x000005a7 0x23 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fvwrite.o) + .debug_pubnames + 0x000005ca 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-isattyr.o) + .debug_pubnames + 0x000005ea 0xc3 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-locale.o) + .debug_pubnames + 0x000006ad 0x1f c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-lseekr.o) + .debug_pubnames + 0x000006cc 0x1d c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memchr.o) + .debug_pubnames + 0x000006e9 0x1d c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memcpy.o) + .debug_pubnames + 0x00000706 0x1e c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memmove.o) + .debug_pubnames + 0x00000724 0x13a c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-mprec.o) + .debug_pubnames + 0x0000085e 0x1e c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-readr.o) + .debug_pubnames + 0x0000087c 0x21 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-reallocr.o) + .debug_pubnames + 0x0000089d 0x1f c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-s_isinfd.o) + .debug_pubnames + 0x000008bc 0x1f c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-s_isnand.o) + .debug_pubnames + 0x000008db 0x1d c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-strcmp.o) + .debug_pubnames + 0x000008f8 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-callocr.o) + .debug_pubnames + 0x00000918 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_udivdi3.o) + .debug_pubnames + 0x00000938 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_umoddi3.o) + .debug_pubnames + 0x00000958 0x2c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_addsub_df.o) + .debug_pubnames + 0x00000984 0x1f c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_mul_df.o) + .debug_pubnames + 0x000009a3 0x1f c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_div_df.o) + .debug_pubnames + 0x000009c2 0x1e c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_eq_df.o) + .debug_pubnames + 0x000009e0 0x1e c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_ne_df.o) + .debug_pubnames + 0x000009fe 0x1e c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_gt_df.o) + .debug_pubnames + 0x00000a1c 0x1e c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_ge_df.o) + .debug_pubnames + 0x00000a3a 0x1e c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_lt_df.o) + .debug_pubnames + 0x00000a58 0x22 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_si_to_df.o) + .debug_pubnames + 0x00000a7a 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_df_to_si.o) + .debug_pubnames + 0x00000a9a 0x22 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_thenan_df.o) + .debug_pubnames + 0x00000abc 0x24 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_usi_to_df.o) + .debug_pubnames + 0x00000ae0 0x48 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-divmod.o) + .debug_pubnames + 0x00000b28 0x1f c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-mul.o) + .debug_pubnames + 0x00000b47 0x1f c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_muldi3.o) + .debug_pubnames + 0x00000b66 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_clz.o) + .debug_pubnames + 0x00000b86 0x1f c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_clzsi2.o) + .debug_pubnames + 0x00000ba5 0x1f c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_pack_df.o) + .debug_pubnames + 0x00000bc4 0x21 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_unpack_df.o) + .debug_pubnames + 0x00000be5 0x26 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_fpcmp_parts_df.o) + .debug_pubnames + 0x00000c0b 0x1c ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_close.o) + .debug_pubnames + 0x00000c27 0x63 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_dev.o) + .debug_pubnames + 0x00000c8a 0x20 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_errno.o) + .debug_pubnames + 0x00000caa 0x1c ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_fstat.o) + .debug_pubnames + 0x00000cc6 0x1d ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_isatty.o) + .debug_pubnames + 0x00000ce3 0x1f ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_load.o) + .debug_pubnames + 0x00000d02 0x1c ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_lseek.o) + .debug_pubnames + 0x00000d1e 0x46 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_main.o) + .debug_pubnames + 0x00000d64 0x38 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_malloc_lock.o) + .debug_pubnames + 0x00000d9c 0x1b ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_open.o) + .debug_pubnames + 0x00000db7 0x1b ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_read.o) + .debug_pubnames + 0x00000dd2 0x25 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_release_fd.o) + .debug_pubnames + 0x00000df7 0x1b ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_sbrk.o) + .debug_pubnames + 0x00000e12 0x1c ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_write.o) + .debug_pubnames + 0x00000e2e 0x34 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_sys_init.o) + .debug_pubnames + 0x00000e62 0xa5 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_fd.o) + .debug_pubnames + 0x00000f07 0x55 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_init.o) + .debug_pubnames + 0x00000f5c 0x34 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_ioctl.o) + .debug_pubnames + 0x00000f90 0x33 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_read.o) + .debug_pubnames + 0x00000fc3 0x34 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_write.o) + .debug_pubnames + 0x00000ff7 0x55 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(altera_avalon_lcd_16207.o) + .debug_pubnames + 0x0000104c 0x37 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(altera_avalon_lcd_16207_fd.o) + .debug_pubnames + 0x00001083 0x26 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_alarm_start.o) + .debug_pubnames + 0x000010a9 0x2b ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) + .debug_pubnames + 0x000010d4 0x2b ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_dev_llist_insert.o) + .debug_pubnames + 0x000010ff 0x20 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_do_ctors.o) + .debug_pubnames + 0x0000111f 0x20 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_do_dtors.o) + .debug_pubnames + 0x0000113f 0x23 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_find_dev.o) + .debug_pubnames + 0x00001162 0x24 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_find_file.o) + .debug_pubnames + 0x00001186 0x21 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_get_fd.o) + .debug_pubnames + 0x000011a7 0x2b ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_icache_flush_all.o) + .debug_pubnames + 0x000011d2 0x6e ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_iic.o) + .debug_pubnames + 0x00001240 0x2b ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_iic_isr_register.o) + .debug_pubnames + 0x0000126b 0x26 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_io_redirect.o) + .debug_pubnames + 0x00001291 0x32 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_irq_handler.o) + .debug_pubnames + 0x000012c3 0x3b ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_irq_vars.o) + .debug_pubnames + 0x000012fe 0x68 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_tick.o) + .debug_pubnames + 0x00001366 0x1d ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_usleep.o) + .debug_pubnames + 0x00001383 0x31 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) + .debug_pubnames + 0x000013b4 0x25 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_busy_sleep.o) + .debug_pubnames + 0x000013d9 0x2a c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-atexit.o) + .debug_pubnames + 0x00001403 0x2e c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-ctype_.o) + .debug_pubnames + 0x00001431 0x1b c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-exit.o) + .debug_pubnames + 0x0000144c 0x1d c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memcmp.o) + .debug_pubnames + 0x00001469 0x2a c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-__atexit.o) + .debug_pubnames + 0x00001493 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-__call_atexit.o) + .debug_pubnames + 0x000014ba 0x1c ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_exit.o) + +.debug_info 0x00000000 0x285c7 + *(.debug_info .gnu.linkonce.wi.*) + .debug_info 0x00000000 0x82 ../qsys_tutorial_lcd3_bsp//obj/HAL/src/crt0.o + .debug_info 0x00000082 0xc1e obj/default/hello_world.o + .debug_info 0x00000ca0 0x994 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fclose.o) + .debug_info 0x00001634 0x9fe c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fflush.o) + .debug_info 0x00002032 0xb72 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-findfp.o) + .debug_info 0x00002ba4 0x9e0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fopen.o) + .debug_info 0x00003584 0xbc9 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-freer.o) + .debug_info 0x0000414d 0xbdc c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fseek.o) + .debug_info 0x00004d29 0xafc c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fstatr.o) + .debug_info 0x00005825 0xaed c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fwalk.o) + .debug_info 0x00006312 0xa83 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fwrite.o) + .debug_info 0x00006d95 0x93d c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-impure.o) + .debug_info 0x000076d2 0x8c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-int_errno.o) + .debug_info 0x0000775e 0xb1a c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-makebuf.o) + .debug_info 0x00008278 0xcd0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-mallocr.o) + .debug_info 0x00008f48 0x113 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memset.o) + .debug_info 0x0000905b 0x977 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-openr.o) + .debug_info 0x000099d2 0x9d1 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-printf.o) + .debug_info 0x0000a3a3 0xa25 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-puts.o) + .debug_info 0x0000adc8 0x98b c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-refill.o) + .debug_info 0x0000b753 0x962 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-sbrkr.o) + .debug_info 0x0000c0b5 0xaac c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-stdio.o) + .debug_info 0x0000cb61 0xdb c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-strlen.o) + .debug_info 0x0000cc3c 0x10d5 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-vfprintf.o) + .debug_info 0x0000dd11 0x993 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-writer.o) + .debug_info 0x0000e6a4 0x95d c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-wsetup.o) + .debug_info 0x0000f001 0x958 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-closer.o) + .debug_info 0x0000f959 0xd6f c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-dtoa.o) + .debug_info 0x000106c8 0x977 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-flags.o) + .debug_info 0x0001103f 0xa88 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fvwrite.o) + .debug_info 0x00011ac7 0x958 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-isattyr.o) + .debug_info 0x0001241f 0xb97 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-locale.o) + .debug_info 0x00012fb6 0x981 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-lseekr.o) + .debug_info 0x00013937 0x138 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memchr.o) + .debug_info 0x00013a6f 0x106 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memcpy.o) + .debug_info 0x00013b75 0x13e c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memmove.o) + .debug_info 0x00013cb3 0x143b c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-mprec.o) + .debug_info 0x000150ee 0x98c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-readr.o) + .debug_info 0x00015a7a 0xbd7 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-reallocr.o) + .debug_info 0x00016651 0xd7 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-s_isinfd.o) + .debug_info 0x00016728 0xd5 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-s_isnand.o) + .debug_info 0x000167fd 0xdd c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-strcmp.o) + .debug_info 0x000168da 0xa1b c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-callocr.o) + .debug_info 0x000172f5 0x71c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_udivdi3.o) + .debug_info 0x00017a11 0x749 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_umoddi3.o) + .debug_info 0x0001815a 0x493 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_addsub_df.o) + .debug_info 0x000185ed 0x488 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_mul_df.o) + .debug_info 0x00018a75 0x39b c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_div_df.o) + .debug_info 0x00018e10 0x29d c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_eq_df.o) + .debug_info 0x000190ad 0x29d c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_ne_df.o) + .debug_info 0x0001934a 0x29d c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_gt_df.o) + .debug_info 0x000195e7 0x29d c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_ge_df.o) + .debug_info 0x00019884 0x29d c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_lt_df.o) + .debug_info 0x00019b21 0x218 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_si_to_df.o) + .debug_info 0x00019d39 0x2cd c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_df_to_si.o) + .debug_info 0x0001a006 0x164 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_thenan_df.o) + .debug_info 0x0001a16a 0x213 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_usi_to_df.o) + .debug_info 0x0001a37d 0x21c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-divmod.o) + .debug_info 0x0001a599 0xf3 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-mul.o) + .debug_info 0x0001a68c 0x210 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_muldi3.o) + .debug_info 0x0001a89c 0xc9 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_clz.o) + .debug_info 0x0001a965 0x130 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_clzsi2.o) + .debug_info 0x0001aa95 0x2fc c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_pack_df.o) + .debug_info 0x0001ad91 0x268 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_unpack_df.o) + .debug_info 0x0001aff9 0x21b c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_fpcmp_parts_df.o) + .debug_info 0x0001b214 0x46e ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_close.o) + .debug_info 0x0001b682 0x686 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_dev.o) + .debug_info 0x0001bd08 0x16b ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_errno.o) + .debug_info 0x0001be73 0x667 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_fstat.o) + .debug_info 0x0001c4da 0x66d ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_isatty.o) + .debug_info 0x0001cb47 0x294 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_load.o) + .debug_info 0x0001cddb 0x4a1 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_lseek.o) + .debug_info 0x0001d27c 0x22c ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_main.o) + .debug_info 0x0001d4a8 0xc1f ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_malloc_lock.o) + .debug_info 0x0001e0c7 0x52c ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_open.o) + .debug_info 0x0001e5f3 0x691 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_read.o) + .debug_info 0x0001ec84 0x3f9 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_release_fd.o) + .debug_info 0x0001f07d 0x2be ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_sbrk.o) + .debug_info 0x0001f33b 0x69a ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_write.o) + .debug_info 0x0001f9d5 0x90e ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_sys_init.o) + .debug_info 0x000202e3 0x7e0 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_fd.o) + .debug_info 0x00020ac3 0x608 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_init.o) + .debug_info 0x000210cb 0x44a ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_ioctl.o) + .debug_info 0x00021515 0x54d ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_read.o) + .debug_info 0x00021a62 0x545 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_write.o) + .debug_info 0x00021fa7 0x8f5 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(altera_avalon_lcd_16207.o) + .debug_info 0x0002289c 0x719 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(altera_avalon_lcd_16207_fd.o) + .debug_info 0x00022fb5 0x449 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_alarm_start.o) + .debug_info 0x000233fe 0x163 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) + .debug_info 0x00023561 0x2be ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_dev_llist_insert.o) + .debug_info 0x0002381f 0x116 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_do_ctors.o) + .debug_info 0x00023935 0x115 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_do_dtors.o) + .debug_info 0x00023a4a 0x41f ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_find_dev.o) + .debug_info 0x00023e69 0x426 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_find_file.o) + .debug_info 0x0002428f 0x467 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_get_fd.o) + .debug_info 0x000246f6 0x163 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_icache_flush_all.o) + .debug_info 0x00024859 0x49a ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_iic.o) + .debug_info 0x00024cf3 0x31b ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_iic_isr_register.o) + .debug_info 0x0002500e 0x69c ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_io_redirect.o) + .debug_info 0x000256aa 0x8b ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_irq_entry.o) + .debug_info 0x00025735 0x27c ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_irq_handler.o) + .debug_info 0x000259b1 0x16e ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_irq_vars.o) + .debug_info 0x00025b1f 0x405 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_tick.o) + .debug_info 0x00025f24 0x16f ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_usleep.o) + .debug_info 0x00026093 0x16a ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) + .debug_info 0x000261fd 0x1b2 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_busy_sleep.o) + .debug_info 0x000263af 0x91 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_exception_entry.o) + .debug_info 0x00026440 0x181 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-atexit.o) + .debug_info 0x000265c1 0xa0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-ctype_.o) + .debug_info 0x00026661 0x93f c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-exit.o) + .debug_info 0x00026fa0 0x115 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memcmp.o) + .debug_info 0x000270b5 0x99c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-__atexit.o) + .debug_info 0x00027a51 0x9e2 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-__call_atexit.o) + .debug_info 0x00028433 0x194 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_exit.o) + +.debug_abbrev 0x00000000 0x86c2 + *(.debug_abbrev) + .debug_abbrev 0x00000000 0x12 ../qsys_tutorial_lcd3_bsp//obj/HAL/src/crt0.o + .debug_abbrev 0x00000012 0x186 obj/default/hello_world.o + .debug_abbrev 0x00000198 0x1a7 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fclose.o) + .debug_abbrev 0x0000033f 0x1c6 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fflush.o) + .debug_abbrev 0x00000505 0x24c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-findfp.o) + .debug_abbrev 0x00000751 0x1b6 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fopen.o) + .debug_abbrev 0x00000907 0x1d9 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-freer.o) + .debug_abbrev 0x00000ae0 0x208 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fseek.o) + .debug_abbrev 0x00000ce8 0x18e c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fstatr.o) + .debug_abbrev 0x00000e76 0x1e3 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fwalk.o) + .debug_abbrev 0x00001059 0x1b1 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fwrite.o) + .debug_abbrev 0x0000120a 0x157 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-impure.o) + .debug_abbrev 0x00001361 0x3b c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-int_errno.o) + .debug_abbrev 0x0000139c 0x197 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-makebuf.o) + .debug_abbrev 0x00001533 0x216 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-mallocr.o) + .debug_abbrev 0x00001749 0xb8 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memset.o) + .debug_abbrev 0x00001801 0x18e c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-openr.o) + .debug_abbrev 0x0000198f 0x191 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-printf.o) + .debug_abbrev 0x00001b20 0x1ac c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-puts.o) + .debug_abbrev 0x00001ccc 0x187 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-refill.o) + .debug_abbrev 0x00001e53 0x18c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-sbrkr.o) + .debug_abbrev 0x00001fdf 0x1c9 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-stdio.o) + .debug_abbrev 0x000021a8 0x8b c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-strlen.o) + .debug_abbrev 0x00002233 0x30a c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-vfprintf.o) + .debug_abbrev 0x0000253d 0x184 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-writer.o) + .debug_abbrev 0x000026c1 0x170 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-wsetup.o) + .debug_abbrev 0x00002831 0x17f c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-closer.o) + .debug_abbrev 0x000029b0 0x232 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-dtoa.o) + .debug_abbrev 0x00002be2 0x17d c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-flags.o) + .debug_abbrev 0x00002d5f 0x1a3 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fvwrite.o) + .debug_abbrev 0x00002f02 0x17f c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-isattyr.o) + .debug_abbrev 0x00003081 0x1ed c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-locale.o) + .debug_abbrev 0x0000326e 0x18e c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-lseekr.o) + .debug_abbrev 0x000033fc 0xb5 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memchr.o) + .debug_abbrev 0x000034b1 0xb5 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memcpy.o) + .debug_abbrev 0x00003566 0xb5 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memmove.o) + .debug_abbrev 0x0000361b 0x297 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-mprec.o) + .debug_abbrev 0x000038b2 0x17f c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-readr.o) + .debug_abbrev 0x00003a31 0x1c3 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-reallocr.o) + .debug_abbrev 0x00003bf4 0x79 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-s_isinfd.o) + .debug_abbrev 0x00003c6d 0x79 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-s_isnand.o) + .debug_abbrev 0x00003ce6 0x80 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-strcmp.o) + .debug_abbrev 0x00003d66 0x1b8 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-callocr.o) + .debug_abbrev 0x00003f1e 0x16b c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_udivdi3.o) + .debug_abbrev 0x00004089 0x18e c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_umoddi3.o) + .debug_abbrev 0x00004217 0x1d2 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_addsub_df.o) + .debug_abbrev 0x000043e9 0x204 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_mul_df.o) + .debug_abbrev 0x000045ed 0x1e3 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_div_df.o) + .debug_abbrev 0x000047d0 0x151 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_eq_df.o) + .debug_abbrev 0x00004921 0x151 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_ne_df.o) + .debug_abbrev 0x00004a72 0x151 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_gt_df.o) + .debug_abbrev 0x00004bc3 0x151 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_ge_df.o) + .debug_abbrev 0x00004d14 0x151 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_lt_df.o) + .debug_abbrev 0x00004e65 0x13f c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_si_to_df.o) + .debug_abbrev 0x00004fa4 0x176 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_df_to_si.o) + .debug_abbrev 0x0000511a 0xba c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_thenan_df.o) + .debug_abbrev 0x000051d4 0x155 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_usi_to_df.o) + .debug_abbrev 0x00005329 0xe0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-divmod.o) + .debug_abbrev 0x00005409 0x7b c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-mul.o) + .debug_abbrev 0x00005484 0xfb c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_muldi3.o) + .debug_abbrev 0x0000557f 0x61 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_clz.o) + .debug_abbrev 0x000055e0 0xb9 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_clzsi2.o) + .debug_abbrev 0x00005699 0x1b1 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_pack_df.o) + .debug_abbrev 0x0000584a 0x149 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_unpack_df.o) + .debug_abbrev 0x00005993 0x132 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_fpcmp_parts_df.o) + .debug_abbrev 0x00005ac5 0xfb ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_close.o) + .debug_abbrev 0x00005bc0 0xc7 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_dev.o) + .debug_abbrev 0x00005c87 0x5e ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_errno.o) + .debug_abbrev 0x00005ce5 0xfb ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_fstat.o) + .debug_abbrev 0x00005de0 0xfb ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_isatty.o) + .debug_abbrev 0x00005edb 0x88 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_load.o) + .debug_abbrev 0x00005f63 0xfb ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_lseek.o) + .debug_abbrev 0x0000605e 0xb7 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_main.o) + .debug_abbrev 0x00006115 0x181 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_malloc_lock.o) + .debug_abbrev 0x00006296 0x112 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_open.o) + .debug_abbrev 0x000063a8 0xfb ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_read.o) + .debug_abbrev 0x000064a3 0xc1 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_release_fd.o) + .debug_abbrev 0x00006564 0x115 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_sbrk.o) + .debug_abbrev 0x00006679 0x100 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_write.o) + .debug_abbrev 0x00006779 0x158 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_sys_init.o) + .debug_abbrev 0x000068d1 0xf7 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_fd.o) + .debug_abbrev 0x000069c8 0x17c ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_init.o) + .debug_abbrev 0x00006b44 0xf0 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_ioctl.o) + .debug_abbrev 0x00006c34 0x191 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_read.o) + .debug_abbrev 0x00006dc5 0x18d ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_write.o) + .debug_abbrev 0x00006f52 0x1c3 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(altera_avalon_lcd_16207.o) + .debug_abbrev 0x00007115 0x104 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(altera_avalon_lcd_16207_fd.o) + .debug_abbrev 0x00007219 0x172 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_alarm_start.o) + .debug_abbrev 0x0000738b 0x3f ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) + .debug_abbrev 0x000073ca 0xf6 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_dev_llist_insert.o) + .debug_abbrev 0x000074c0 0x76 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_do_ctors.o) + .debug_abbrev 0x00007536 0x76 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_do_dtors.o) + .debug_abbrev 0x000075ac 0xcf ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_find_dev.o) + .debug_abbrev 0x0000767b 0xcf ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_find_file.o) + .debug_abbrev 0x0000774a 0xfb ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_get_fd.o) + .debug_abbrev 0x00007845 0x3f ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_icache_flush_all.o) + .debug_abbrev 0x00007884 0x134 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_iic.o) + .debug_abbrev 0x000079b8 0x14e ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_iic_isr_register.o) + .debug_abbrev 0x00007b06 0xf0 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_io_redirect.o) + .debug_abbrev 0x00007bf6 0x12 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_irq_entry.o) + .debug_abbrev 0x00007c08 0x10c ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_irq_handler.o) + .debug_abbrev 0x00007d14 0x44 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_irq_vars.o) + .debug_abbrev 0x00007d58 0x150 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_tick.o) + .debug_abbrev 0x00007ea8 0x5d ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_usleep.o) + .debug_abbrev 0x00007f05 0x3f ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) + .debug_abbrev 0x00007f44 0x6c ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_busy_sleep.o) + .debug_abbrev 0x00007fb0 0x12 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_exception_entry.o) + .debug_abbrev 0x00007fc2 0xb7 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-atexit.o) + .debug_abbrev 0x00008079 0x61 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-ctype_.o) + .debug_abbrev 0x000080da 0x16e c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-exit.o) + .debug_abbrev 0x00008248 0x7c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memcmp.o) + .debug_abbrev 0x000082c4 0x1ae c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-__atexit.o) + .debug_abbrev 0x00008472 0x1de c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-__call_atexit.o) + .debug_abbrev 0x00008650 0x72 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_exit.o) + +.debug_line 0x00000000 0x15639 + *(.debug_line) + .debug_line 0x00000000 0x66 ../qsys_tutorial_lcd3_bsp//obj/HAL/src/crt0.o + .debug_line 0x00000066 0x236 obj/default/hello_world.o + .debug_line 0x0000029c 0x2eb c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fclose.o) + .debug_line 0x00000587 0x410 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fflush.o) + .debug_line 0x00000997 0x60c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-findfp.o) + .debug_line 0x00000fa3 0x345 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fopen.o) + .debug_line 0x000012e8 0x5ee c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-freer.o) + .debug_line 0x000018d6 0x5ae c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fseek.o) + .debug_line 0x00001e84 0x267 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fstatr.o) + .debug_line 0x000020eb 0x34d c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fwalk.o) + .debug_line 0x00002438 0x2e4 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fwrite.o) + .debug_line 0x0000271c 0x230 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-impure.o) + .debug_line 0x0000294c 0x1e2 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-int_errno.o) + .debug_line 0x00002b2e 0x3c6 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-makebuf.o) + .debug_line 0x00002ef4 0x80d c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-mallocr.o) + .debug_line 0x00003701 0x304 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memset.o) + .debug_line 0x00003a05 0x27e c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-openr.o) + .debug_line 0x00003c83 0x29e c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-printf.o) + .debug_line 0x00003f21 0x2fa c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-puts.o) + .debug_line 0x0000421b 0x3c7 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-refill.o) + .debug_line 0x000045e2 0x29c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-sbrkr.o) + .debug_line 0x0000487e 0x38f c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-stdio.o) + .debug_line 0x00004c0d 0x270 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-strlen.o) + .debug_line 0x00004e7d 0x110f c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-vfprintf.o) + .debug_line 0x00005f8c 0x29d c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-writer.o) + .debug_line 0x00006229 0x2f3 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-wsetup.o) + .debug_line 0x0000651c 0x29d c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-closer.o) + .debug_line 0x000067b9 0x1309 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-dtoa.o) + .debug_line 0x00007ac2 0x299 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-flags.o) + .debug_line 0x00007d5b 0x644 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fvwrite.o) + .debug_line 0x0000839f 0x29e c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-isattyr.o) + .debug_line 0x0000863d 0x2cb c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-locale.o) + .debug_line 0x00008908 0x29d c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-lseekr.o) + .debug_line 0x00008ba5 0x306 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memchr.o) + .debug_line 0x00008eab 0x1af c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memcpy.o) + .debug_line 0x0000905a 0x30d c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memmove.o) + .debug_line 0x00009367 0x125e c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-mprec.o) + .debug_line 0x0000a5c5 0x29c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-readr.o) + .debug_line 0x0000a861 0x58d c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-reallocr.o) + .debug_line 0x0000adee 0x225 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-s_isinfd.o) + .debug_line 0x0000b013 0x21d c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-s_isnand.o) + .debug_line 0x0000b230 0x2d8 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-strcmp.o) + .debug_line 0x0000b508 0x25f c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-callocr.o) + .debug_line 0x0000b767 0x2f2 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_udivdi3.o) + .debug_line 0x0000ba59 0x405 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_umoddi3.o) + .debug_line 0x0000be5e 0x430 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_addsub_df.o) + .debug_line 0x0000c28e 0x3e5 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_mul_df.o) + .debug_line 0x0000c673 0x301 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_div_df.o) + .debug_line 0x0000c974 0x129 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_eq_df.o) + .debug_line 0x0000ca9d 0x129 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_ne_df.o) + .debug_line 0x0000cbc6 0x129 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_gt_df.o) + .debug_line 0x0000ccef 0x129 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_ge_df.o) + .debug_line 0x0000ce18 0x129 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_lt_df.o) + .debug_line 0x0000cf41 0x175 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_si_to_df.o) + .debug_line 0x0000d0b6 0x149 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_df_to_si.o) + .debug_line 0x0000d1ff 0x94 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_thenan_df.o) + .debug_line 0x0000d293 0x189 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_usi_to_df.o) + .debug_line 0x0000d41c 0x24f c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-divmod.o) + .debug_line 0x0000d66b 0x11a c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-mul.o) + .debug_line 0x0000d785 0x14f c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_muldi3.o) + .debug_line 0x0000d8d4 0xaa c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_clz.o) + .debug_line 0x0000d97e 0x105 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_clzsi2.o) + .debug_line 0x0000da83 0x222 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_pack_df.o) + .debug_line 0x0000dca5 0x1e4 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_unpack_df.o) + .debug_line 0x0000de89 0x187 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_fpcmp_parts_df.o) + .debug_line 0x0000e010 0x299 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_close.o) + .debug_line 0x0000e2a9 0x254 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_dev.o) + .debug_line 0x0000e4fd 0x1aa ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_errno.o) + .debug_line 0x0000e6a7 0x2a1 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_fstat.o) + .debug_line 0x0000e948 0x2a2 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_isatty.o) + .debug_line 0x0000ebea 0x217 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_load.o) + .debug_line 0x0000ee01 0x2a1 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_lseek.o) + .debug_line 0x0000f0a2 0x2ca ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_main.o) + .debug_line 0x0000f36c 0x20f ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_malloc_lock.o) + .debug_line 0x0000f57b 0x2ff ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_open.o) + .debug_line 0x0000f87a 0x2c8 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_read.o) + .debug_line 0x0000fb42 0xed ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_release_fd.o) + .debug_line 0x0000fc2f 0x261 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_sbrk.o) + .debug_line 0x0000fe90 0x2c9 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_write.o) + .debug_line 0x00010159 0x2eb ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_sys_init.o) + .debug_line 0x00010444 0x217 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_fd.o) + .debug_line 0x0001065b 0x4ab ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_init.o) + .debug_line 0x00010b06 0x317 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_ioctl.o) + .debug_line 0x00010e1d 0x3f7 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_read.o) + .debug_line 0x00011214 0x405 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_write.o) + .debug_line 0x00011619 0x8c1 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(altera_avalon_lcd_16207.o) + .debug_line 0x00011eda 0x1b7 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(altera_avalon_lcd_16207_fd.o) + .debug_line 0x00012091 0x2dc ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_alarm_start.o) + .debug_line 0x0001236d 0x1b5 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) + .debug_line 0x00012522 0x25a ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_dev_llist_insert.o) + .debug_line 0x0001277c 0x83 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_do_ctors.o) + .debug_line 0x000127ff 0x83 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_do_dtors.o) + .debug_line 0x00012882 0x26b ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_find_dev.o) + .debug_line 0x00012aed 0x27c ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_find_file.o) + .debug_line 0x00012d69 0x297 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_get_fd.o) + .debug_line 0x00013000 0x1b5 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_icache_flush_all.o) + .debug_line 0x000131b5 0x2c8 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_iic.o) + .debug_line 0x0001347d 0x249 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_iic_isr_register.o) + .debug_line 0x000136c6 0x2b4 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_io_redirect.o) + .debug_line 0x0001397a 0x6b ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_irq_entry.o) + .debug_line 0x000139e5 0x248 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_irq_handler.o) + .debug_line 0x00013c2d 0x72 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_irq_vars.o) + .debug_line 0x00013c9f 0x2dc ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_tick.o) + .debug_line 0x00013f7b 0x202 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_usleep.o) + .debug_line 0x0001417d 0x1ce ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) + .debug_line 0x0001434b 0x25c ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_busy_sleep.o) + .debug_line 0x000145a7 0xab ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_exception_entry.o) + .debug_line 0x00014652 0x203 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-atexit.o) + .debug_line 0x00014855 0x81 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-ctype_.o) + .debug_line 0x000148d6 0x23b c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-exit.o) + .debug_line 0x00014b11 0x2a2 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memcmp.o) + .debug_line 0x00014db3 0x316 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-__atexit.o) + .debug_line 0x000150c9 0x36a c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-__call_atexit.o) + .debug_line 0x00015433 0x206 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_exit.o) + +.debug_frame 0x00000000 0x1b08 + *(.debug_frame) + .debug_frame 0x00000000 0x48 obj/default/hello_world.o + .debug_frame 0x00000048 0x3c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fclose.o) + .debug_frame 0x00000084 0x40 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fflush.o) + .debug_frame 0x000000c4 0x118 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-findfp.o) + .debug_frame 0x000001dc 0x40 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fopen.o) + .debug_frame 0x0000021c 0x4c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-freer.o) + .debug_frame 0x00000268 0x48 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fseek.o) + .debug_frame 0x000002b0 0x2c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fstatr.o) + .debug_frame 0x000002dc 0x60 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fwalk.o) + .debug_frame 0x0000033c 0x48 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fwrite.o) + .debug_frame 0x00000384 0x2c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-makebuf.o) + .debug_frame 0x000003b0 0x38 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-mallocr.o) + .debug_frame 0x000003e8 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memset.o) + .debug_frame 0x00000408 0x2c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-openr.o) + .debug_frame 0x00000434 0x40 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-printf.o) + .debug_frame 0x00000474 0x3c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-puts.o) + .debug_frame 0x000004b0 0x3c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-refill.o) + .debug_frame 0x000004ec 0x2c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-sbrkr.o) + .debug_frame 0x00000518 0x78 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-stdio.o) + .debug_frame 0x00000590 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-strlen.o) + .debug_frame 0x000005b0 0x64 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-vfprintf.o) + .debug_frame 0x00000614 0x2c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-writer.o) + .debug_frame 0x00000640 0x2c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-wsetup.o) + .debug_frame 0x0000066c 0x2c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-closer.o) + .debug_frame 0x00000698 0x64 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-dtoa.o) + .debug_frame 0x000006fc 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-flags.o) + .debug_frame 0x0000071c 0x38 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fvwrite.o) + .debug_frame 0x00000754 0x2c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-isattyr.o) + .debug_frame 0x00000780 0x70 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-locale.o) + .debug_frame 0x000007f0 0x2c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-lseekr.o) + .debug_frame 0x0000081c 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memchr.o) + .debug_frame 0x0000083c 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memcpy.o) + .debug_frame 0x0000085c 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memmove.o) + .debug_frame 0x0000087c 0x228 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-mprec.o) + .debug_frame 0x00000aa4 0x2c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-readr.o) + .debug_frame 0x00000ad0 0x38 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-reallocr.o) + .debug_frame 0x00000b08 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-s_isinfd.o) + .debug_frame 0x00000b28 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-s_isnand.o) + .debug_frame 0x00000b48 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-strcmp.o) + .debug_frame 0x00000b68 0x2c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-callocr.o) + .debug_frame 0x00000b94 0x38 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_udivdi3.o) + .debug_frame 0x00000bcc 0x38 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_umoddi3.o) + .debug_frame 0x00000c04 0x70 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_addsub_df.o) + .debug_frame 0x00000c74 0x3c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_mul_df.o) + .debug_frame 0x00000cb0 0x30 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_div_df.o) + .debug_frame 0x00000ce0 0x2c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_eq_df.o) + .debug_frame 0x00000d0c 0x2c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_ne_df.o) + .debug_frame 0x00000d38 0x2c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_gt_df.o) + .debug_frame 0x00000d64 0x2c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_ge_df.o) + .debug_frame 0x00000d90 0x2c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_lt_df.o) + .debug_frame 0x00000dbc 0x30 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_si_to_df.o) + .debug_frame 0x00000dec 0x28 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_df_to_si.o) + .debug_frame 0x00000e14 0x38 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_usi_to_df.o) + .debug_frame 0x00000e4c 0x70 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-divmod.o) + .debug_frame 0x00000ebc 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-mul.o) + .debug_frame 0x00000edc 0x40 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_muldi3.o) + .debug_frame 0x00000f1c 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_clzsi2.o) + .debug_frame 0x00000f3c 0x2c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_pack_df.o) + .debug_frame 0x00000f68 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_unpack_df.o) + .debug_frame 0x00000f88 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_fpcmp_parts_df.o) + .debug_frame 0x00000fa8 0x48 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_close.o) + .debug_frame 0x00000ff0 0x2c ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_dev.o) + .debug_frame 0x0000101c 0x48 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_fstat.o) + .debug_frame 0x00001064 0x48 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_isatty.o) + .debug_frame 0x000010ac 0x48 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_load.o) + .debug_frame 0x000010f4 0x48 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_lseek.o) + .debug_frame 0x0000113c 0x2c ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_main.o) + .debug_frame 0x00001168 0x48 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_malloc_lock.o) + .debug_frame 0x000011b0 0x68 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_open.o) + .debug_frame 0x00001218 0x48 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_read.o) + .debug_frame 0x00001260 0x30 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_release_fd.o) + .debug_frame 0x00001290 0x2c ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_sbrk.o) + .debug_frame 0x000012bc 0x48 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_write.o) + .debug_frame 0x00001304 0x64 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_sys_init.o) + .debug_frame 0x00001368 0x80 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_fd.o) + .debug_frame 0x000013e8 0x80 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_init.o) + .debug_frame 0x00001468 0x2c ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_ioctl.o) + .debug_frame 0x00001494 0x2c ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_read.o) + .debug_frame 0x000014c0 0x2c ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_write.o) + .debug_frame 0x000014ec 0x124 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(altera_avalon_lcd_16207.o) + .debug_frame 0x00001610 0x2c ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(altera_avalon_lcd_16207_fd.o) + .debug_frame 0x0000163c 0x2c ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_alarm_start.o) + .debug_frame 0x00001668 0x2c ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) + .debug_frame 0x00001694 0x48 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_dev_llist_insert.o) + .debug_frame 0x000016dc 0x2c ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_do_ctors.o) + .debug_frame 0x00001708 0x2c ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_do_dtors.o) + .debug_frame 0x00001734 0x2c ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_find_dev.o) + .debug_frame 0x00001760 0x2c ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_find_file.o) + .debug_frame 0x0000178c 0x30 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_get_fd.o) + .debug_frame 0x000017bc 0x2c ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_icache_flush_all.o) + .debug_frame 0x000017e8 0x80 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_iic.o) + .debug_frame 0x00001868 0x2c ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_iic_isr_register.o) + .debug_frame 0x00001894 0x4c ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_io_redirect.o) + .debug_frame 0x000018e0 0x2c ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_irq_handler.o) + .debug_frame 0x0000190c 0x48 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_tick.o) + .debug_frame 0x00001954 0x2c ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_usleep.o) + .debug_frame 0x00001980 0x2c ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) + .debug_frame 0x000019ac 0x2c ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_busy_sleep.o) + .debug_frame 0x000019d8 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-atexit.o) + .debug_frame 0x000019f8 0x28 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-exit.o) + .debug_frame 0x00001a20 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memcmp.o) + .debug_frame 0x00001a40 0x34 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-__atexit.o) + .debug_frame 0x00001a74 0x4c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-__call_atexit.o) + .debug_frame 0x00001ac0 0x48 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_exit.o) + +.debug_str 0x00000000 0x2558 + *(.debug_str) + .debug_str 0x00000000 0x20 obj/default/hello_world.o + .debug_str 0x00000020 0x4a6 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fclose.o) + 0x524 (size before relaxing) + .debug_str 0x000004c6 0x68 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fflush.o) + 0x540 (size before relaxing) + .debug_str 0x0000052e 0x105 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-findfp.o) + 0x602 (size before relaxing) + .debug_str 0x00000633 0x52 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fopen.o) + 0x533 (size before relaxing) + .debug_str 0x00000685 0x1f5 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-freer.o) + 0x651 (size before relaxing) + .debug_str 0x0000087a 0x13d c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fseek.o) + 0x640 (size before relaxing) + .debug_str 0x000009b7 0xe2 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fstatr.o) + 0x5ff (size before relaxing) + .debug_str 0x00000a99 0x61 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fwalk.o) + 0x543 (size before relaxing) + .debug_str 0x00000afa 0x8a c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fwrite.o) + 0x56d (size before relaxing) + .debug_str 0x00000b84 0x49 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-impure.o) + 0x528 (size before relaxing) + .debug_str 0x00000bcd 0x40 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-int_errno.o) + 0x171 (size before relaxing) + .debug_str 0x00000c0d 0x56 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-makebuf.o) + 0x614 (size before relaxing) + .debug_str 0x00000c63 0xef c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-mallocr.o) + 0x6ff (size before relaxing) + .debug_str 0x00000d52 0xf0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memset.o) + 0x18c (size before relaxing) + .debug_str 0x00000e42 0x44 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-openr.o) + 0x51a (size before relaxing) + .debug_str 0x00000e86 0x56 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-printf.o) + 0x531 (size before relaxing) + .debug_str 0x00000edc 0x48 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-puts.o) + 0x557 (size before relaxing) + .debug_str 0x00000f24 0x50 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-refill.o) + 0x528 (size before relaxing) + .debug_str 0x00000f74 0x53 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-sbrkr.o) + 0x519 (size before relaxing) + .debug_str 0x00000fc7 0x5e c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-stdio.o) + 0x53f (size before relaxing) + .debug_str 0x00001025 0x45 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-strlen.o) + 0x18b (size before relaxing) + .debug_str 0x0000106a 0x183 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-vfprintf.o) + 0x706 (size before relaxing) + .debug_str 0x000011ed 0x4f c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-writer.o) + 0x51c (size before relaxing) + .debug_str 0x0000123c 0x49 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-wsetup.o) + 0x51a (size before relaxing) + .debug_str 0x00001285 0x46 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-closer.o) + 0x50c (size before relaxing) + .debug_str 0x000012cb 0x105 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-dtoa.o) + 0x60f (size before relaxing) + .debug_str 0x000013d0 0x4a c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-flags.o) + 0x50f (size before relaxing) + .debug_str 0x0000141a 0x69 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fvwrite.o) + 0x571 (size before relaxing) + .debug_str 0x00001483 0x48 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-isattyr.o) + 0x50e (size before relaxing) + .debug_str 0x000014cb 0x233 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-locale.o) + 0x6b7 (size before relaxing) + .debug_str 0x000016fe 0x46 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-lseekr.o) + 0x51a (size before relaxing) + .debug_str 0x00001744 0x58 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memchr.o) + 0x199 (size before relaxing) + .debug_str 0x0000179c 0x6c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memcpy.o) + 0x136 (size before relaxing) + .debug_str 0x00001808 0x50 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memmove.o) + 0x1ab (size before relaxing) + .debug_str 0x00001858 0xfb c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-mprec.o) + 0x61c (size before relaxing) + .debug_str 0x00001953 0x44 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-readr.o) + 0x51a (size before relaxing) + .debug_str 0x00001997 0x59 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-reallocr.o) + 0x5d1 (size before relaxing) + .debug_str 0x000019f0 0xea c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-s_isinfd.o) + 0x198 (size before relaxing) + .debug_str 0x00001ada 0x49 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-s_isnand.o) + 0x198 (size before relaxing) + .debug_str 0x00001b23 0x45 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-strcmp.o) + 0x171 (size before relaxing) + .debug_str 0x00001b68 0x19 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-callocr.o) + 0x550 (size before relaxing) + .debug_str 0x00001b81 0x147 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_udivdi3.o) + 0x1f7 (size before relaxing) + .debug_str 0x00001cc8 0xa c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_umoddi3.o) + 0x1f7 (size before relaxing) + .debug_str 0x00001cd2 0x137 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_addsub_df.o) + 0x26f (size before relaxing) + .debug_str 0x00001e09 0x40 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_mul_df.o) + 0x241 (size before relaxing) + .debug_str 0x00001e49 0x35 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_div_df.o) + 0x231 (size before relaxing) + .debug_str 0x00001e7e 0x8 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_eq_df.o) + 0x1fe (size before relaxing) + .debug_str 0x00001e86 0x8 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_ne_df.o) + 0x1fe (size before relaxing) + .debug_str 0x00001e8e 0x8 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_gt_df.o) + 0x1fe (size before relaxing) + .debug_str 0x00001e96 0x8 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_ge_df.o) + 0x1fe (size before relaxing) + .debug_str 0x00001e9e 0x8 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_lt_df.o) + 0x1fe (size before relaxing) + .debug_str 0x00001ea6 0x18 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_si_to_df.o) + 0x1de (size before relaxing) + .debug_str 0x00001ebe 0xa c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_df_to_si.o) + 0x207 (size before relaxing) + .debug_str 0x00000000 0x1a3 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_thenan_df.o) + .debug_str 0x00001ec8 0x14 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_usi_to_df.o) + 0x1da (size before relaxing) + .debug_str 0x00001edc 0x76 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-divmod.o) + 0x1b4 (size before relaxing) + .debug_str 0x00001f52 0x37 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-mul.o) + 0x175 (size before relaxing) + .debug_str 0x00001f89 0x9 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_muldi3.o) + 0x1ac (size before relaxing) + .debug_str 0x00000000 0x161 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_clz.o) + .debug_str 0x00001f92 0x9 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_clzsi2.o) + 0x17e (size before relaxing) + .debug_str 0x00001f9b 0x10 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_pack_df.o) + 0x206 (size before relaxing) + .debug_str 0x00001fab 0xb c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_unpack_df.o) + 0x1e8 (size before relaxing) + .debug_str 0x00001fb6 0x10 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_fpcmp_parts_df.o) + 0x1c6 (size before relaxing) + .debug_str 0x00001fc6 0x12 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_close.o) + .debug_str 0x00001fd8 0x12 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_dev.o) + .debug_str 0x00001fea 0x12 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_errno.o) + .debug_str 0x00001ffc 0x12 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_fstat.o) + .debug_str 0x0000200e 0x12 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_isatty.o) + .debug_str 0x00002020 0x12 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_load.o) + .debug_str 0x00002032 0x12 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_lseek.o) + .debug_str 0x00002044 0x12 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_main.o) + .debug_str 0x00002056 0x20 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_malloc_lock.o) + .debug_str 0x00002076 0x12 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_open.o) + .debug_str 0x00002088 0x12 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_read.o) + .debug_str 0x0000209a 0x1a ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_sbrk.o) + .debug_str 0x000020b4 0x12 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_write.o) + .debug_str 0x000020c6 0x12 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_sys_init.o) + .debug_str 0x000020d8 0x12 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_fd.o) + .debug_str 0x000020ea 0x1a ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_init.o) + .debug_str 0x00002104 0x12 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_ioctl.o) + .debug_str 0x00002116 0x1a ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_read.o) + .debug_str 0x00002130 0x1a ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_write.o) + .debug_str 0x0000214a 0x25 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(altera_avalon_lcd_16207.o) + .debug_str 0x0000216f 0x12 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(altera_avalon_lcd_16207_fd.o) + .debug_str 0x00002181 0x23 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_alarm_start.o) + .debug_str 0x000021a4 0x12 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) + .debug_str 0x000021b6 0x12 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_dev_llist_insert.o) + .debug_str 0x000021c8 0x12 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_find_dev.o) + .debug_str 0x000021da 0x12 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_find_file.o) + .debug_str 0x000021ec 0x12 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_get_fd.o) + .debug_str 0x000021fe 0x12 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_icache_flush_all.o) + .debug_str 0x00002210 0x18 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_iic.o) + .debug_str 0x00002228 0x1a ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_iic_isr_register.o) + .debug_str 0x00002242 0x12 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_io_redirect.o) + .debug_str 0x00002254 0x12 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_irq_handler.o) + .debug_str 0x00002266 0x1a ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_tick.o) + .debug_str 0x00002280 0x12 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_usleep.o) + .debug_str 0x00002292 0x12 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) + .debug_str 0x000022a4 0x12 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_busy_sleep.o) + .debug_str 0x000022b6 0x3e c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-atexit.o) + 0x1cd (size before relaxing) + .debug_str 0x000022f4 0xf0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-ctype_.o) + 0x113 (size before relaxing) + .debug_str 0x000023e4 0x41 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-exit.o) + 0x51a (size before relaxing) + .debug_str 0x00002425 0x45 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memcmp.o) + 0x178 (size before relaxing) + .debug_str 0x0000246a 0x54 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-__atexit.o) + 0x532 (size before relaxing) + .debug_str 0x000024be 0x7e c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-__call_atexit.o) + 0x55c (size before relaxing) + .debug_str 0x0000253c 0x1c ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_exit.o) + +.debug_loc 0x00000000 0xc7eb + *(.debug_loc) + .debug_loc 0x00000000 0x56 obj/default/hello_world.o + .debug_loc 0x00000056 0xe4 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fclose.o) + .debug_loc 0x0000013a 0x1f6 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fflush.o) + .debug_loc 0x00000330 0x1e1 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-findfp.o) + .debug_loc 0x00000511 0x1c9 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fopen.o) + .debug_loc 0x000006da 0x4a7 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-freer.o) + .debug_loc 0x00000b81 0x348 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fseek.o) + .debug_loc 0x00000ec9 0x79 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fstatr.o) + .debug_loc 0x00000f42 0x1d2 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fwalk.o) + .debug_loc 0x00001114 0x183 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fwrite.o) + .debug_loc 0x00001297 0x11c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-makebuf.o) + .debug_loc 0x000013b3 0xaeb c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-mallocr.o) + .debug_loc 0x00001e9e 0xa1 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memset.o) + .debug_loc 0x00001f3f 0x97 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-openr.o) + .debug_loc 0x00001fd6 0xcb c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-printf.o) + .debug_loc 0x000020a1 0xa2 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-puts.o) + .debug_loc 0x00002143 0xd1 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-refill.o) + .debug_loc 0x00002214 0x5b c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-sbrkr.o) + .debug_loc 0x0000226f 0x21f c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-stdio.o) + .debug_loc 0x0000248e 0x3c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-strlen.o) + .debug_loc 0x000024ca 0x1dc0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-vfprintf.o) + .debug_loc 0x0000428a 0x97 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-writer.o) + .debug_loc 0x00004321 0x7c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-wsetup.o) + .debug_loc 0x0000439d 0x5b c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-closer.o) + .debug_loc 0x000043f8 0x1da7 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-dtoa.o) + .debug_loc 0x0000619f 0xa4 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-flags.o) + .debug_loc 0x00006243 0x4e4 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fvwrite.o) + .debug_loc 0x00006727 0x5b c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-isattyr.o) + .debug_loc 0x00006782 0xe1 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-locale.o) + .debug_loc 0x00006863 0x97 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-lseekr.o) + .debug_loc 0x000068fa 0x106 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memchr.o) + .debug_loc 0x00006a00 0xca c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memcpy.o) + .debug_loc 0x00006aca 0x117 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memmove.o) + .debug_loc 0x00006be1 0x1547 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-mprec.o) + .debug_loc 0x00008128 0x97 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-readr.o) + .debug_loc 0x000081bf 0x8c0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-reallocr.o) + .debug_loc 0x00008a7f 0x36 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-s_isinfd.o) + .debug_loc 0x00008ab5 0x18 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-s_isnand.o) + .debug_loc 0x00008acd 0x65 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-strcmp.o) + .debug_loc 0x00008b32 0xff c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-callocr.o) + .debug_loc 0x00008c31 0xc12 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_udivdi3.o) + .debug_loc 0x00009843 0xbcc c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_umoddi3.o) + .debug_loc 0x0000a40f 0x47a c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_addsub_df.o) + .debug_loc 0x0000a889 0x3b4 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_mul_df.o) + .debug_loc 0x0000ac3d 0x1df c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_div_df.o) + .debug_loc 0x0000ae1c 0x70 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_eq_df.o) + .debug_loc 0x0000ae8c 0x70 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_ne_df.o) + .debug_loc 0x0000aefc 0x70 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_gt_df.o) + .debug_loc 0x0000af6c 0x70 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_ge_df.o) + .debug_loc 0x0000afdc 0x70 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_lt_df.o) + .debug_loc 0x0000b04c 0x9a c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_si_to_df.o) + .debug_loc 0x0000b0e6 0x8b c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_df_to_si.o) + .debug_loc 0x0000b171 0x5b c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_usi_to_df.o) + .debug_loc 0x0000b1cc 0x1d2 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-divmod.o) + .debug_loc 0x0000b39e 0x4f c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-mul.o) + .debug_loc 0x0000b3ed 0x103 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_muldi3.o) + .debug_loc 0x0000b4f0 0x1e c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_clzsi2.o) + .debug_loc 0x0000b50e 0x184 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_pack_df.o) + .debug_loc 0x0000b692 0xe5 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_unpack_df.o) + .debug_loc 0x0000b777 0x56 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_close.o) + .debug_loc 0x0000b7cd 0x2b ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_dev.o) + .debug_loc 0x0000b7f8 0x56 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_fstat.o) + .debug_loc 0x0000b84e 0x57 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_isatty.o) + .debug_loc 0x0000b8a5 0x56 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_load.o) + .debug_loc 0x0000b8fb 0x56 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_lseek.o) + .debug_loc 0x0000b951 0x2b ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_main.o) + .debug_loc 0x0000b97c 0x56 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_malloc_lock.o) + .debug_loc 0x0000b9d2 0x81 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_open.o) + .debug_loc 0x0000ba53 0x56 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_read.o) + .debug_loc 0x0000baa9 0x2b ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_release_fd.o) + .debug_loc 0x0000bad4 0x2b ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_sbrk.o) + .debug_loc 0x0000baff 0x56 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_write.o) + .debug_loc 0x0000bb55 0x81 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_sys_init.o) + .debug_loc 0x0000bbd6 0xac ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_fd.o) + .debug_loc 0x0000bc82 0xac ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_init.o) + .debug_loc 0x0000bd2e 0x2b ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_ioctl.o) + .debug_loc 0x0000bd59 0x2b ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_read.o) + .debug_loc 0x0000bd84 0x2b ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_write.o) + .debug_loc 0x0000bdaf 0x184 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(altera_avalon_lcd_16207.o) + .debug_loc 0x0000bf33 0x2b ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(altera_avalon_lcd_16207_fd.o) + .debug_loc 0x0000bf5e 0x2b ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_alarm_start.o) + .debug_loc 0x0000bf89 0x2b ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) + .debug_loc 0x0000bfb4 0x56 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_dev_llist_insert.o) + .debug_loc 0x0000c00a 0x2b ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_do_ctors.o) + .debug_loc 0x0000c035 0x2b ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_do_dtors.o) + .debug_loc 0x0000c060 0x2b ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_find_dev.o) + .debug_loc 0x0000c08b 0x2b ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_find_file.o) + .debug_loc 0x0000c0b6 0x2b ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_get_fd.o) + .debug_loc 0x0000c0e1 0x2b ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_icache_flush_all.o) + .debug_loc 0x0000c10c 0xac ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_iic.o) + .debug_loc 0x0000c1b8 0x2b ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_iic_isr_register.o) + .debug_loc 0x0000c1e3 0x56 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_io_redirect.o) + .debug_loc 0x0000c239 0x2b ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_irq_handler.o) + .debug_loc 0x0000c264 0x56 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_tick.o) + .debug_loc 0x0000c2ba 0x2b ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_usleep.o) + .debug_loc 0x0000c2e5 0x2b ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) + .debug_loc 0x0000c310 0x2b ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_busy_sleep.o) + .debug_loc 0x0000c33b 0x1e c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-atexit.o) + .debug_loc 0x0000c359 0x3d c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-exit.o) + .debug_loc 0x0000c396 0x114 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memcmp.o) + .debug_loc 0x0000c4aa 0x120 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-__atexit.o) + .debug_loc 0x0000c5ca 0x1cb c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-__call_atexit.o) + .debug_loc 0x0000c795 0x56 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_exit.o) + +.debug_macinfo + *(.debug_macinfo) + +.debug_weaknames + *(.debug_weaknames) + +.debug_funcnames + *(.debug_funcnames) + +.debug_typenames + *(.debug_typenames) + +.debug_varnames + *(.debug_varnames) + +.debug_alt_sim_info + 0x00000000 0x40 + *(.debug_alt_sim_info) + .debug_alt_sim_info + 0x00000000 0x10 ../qsys_tutorial_lcd3_bsp//obj/HAL/src/crt0.o + .debug_alt_sim_info + 0x00000010 0x30 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_busy_sleep.o) + 0x00032000 __alt_data_end = 0x32000 + 0x00032000 PROVIDE (__alt_stack_pointer, __alt_data_end) + 0x00012180 PROVIDE (__alt_stack_limit, __alt_stack_base) + 0x00012180 PROVIDE (__alt_heap_start, end) + 0x00032000 PROVIDE (__alt_heap_limit, 0x32000) +OUTPUT(qsys_tutorial_lcd3.elf elf32-littlenios2) + +.debug_ranges 0x00000000 0x9e0 + .debug_ranges 0x00000000 0x20 ../qsys_tutorial_lcd3_bsp//obj/HAL/src/crt0.o + .debug_ranges 0x00000020 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fflush.o) + .debug_ranges 0x00000040 0xa0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fwalk.o) + .debug_ranges 0x000000e0 0x70 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-mallocr.o) + .debug_ranges 0x00000150 0x168 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-vfprintf.o) + .debug_ranges 0x000002b8 0x28 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fvwrite.o) + .debug_ranges 0x000002e0 0x110 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-reallocr.o) + .debug_ranges 0x000003f0 0x38 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-callocr.o) + .debug_ranges 0x00000428 0x190 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_udivdi3.o) + .debug_ranges 0x000005b8 0x1c0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_umoddi3.o) + .debug_ranges 0x00000778 0x30 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_addsub_df.o) + .debug_ranges 0x000007a8 0x88 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_mul_df.o) + .debug_ranges 0x00000830 0x50 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_div_df.o) + .debug_ranges 0x00000880 0x18 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_usi_to_df.o) + .debug_ranges 0x00000898 0x88 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_muldi3.o) + .debug_ranges 0x00000920 0x28 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_clzsi2.o) + .debug_ranges 0x00000948 0x28 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_pack_df.o) + .debug_ranges 0x00000970 0x28 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_irq_entry.o) + .debug_ranges 0x00000998 0x30 ../qsys_tutorial_lcd3_bsp/\libhal_bsp.a(alt_exception_entry.o) + .debug_ranges 0x000009c8 0x18 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-__call_atexit.o) diff --git a/software/qsys_tutorial_lcd3/qsys_tutorial_lcd3.objdump b/software/qsys_tutorial_lcd3/qsys_tutorial_lcd3.objdump new file mode 100644 index 0000000..a0302b5 --- /dev/null +++ b/software/qsys_tutorial_lcd3/qsys_tutorial_lcd3.objdump @@ -0,0 +1,17880 @@ + +qsys_tutorial_lcd3.elf: file format elf32-littlenios2 +qsys_tutorial_lcd3.elf +architecture: nios2, flags 0x00000112: +EXEC_P, HAS_SYMS, D_PAGED +start address 0x000001b4 + +Program Header: + LOAD off 0x00001000 vaddr 0x00000000 paddr 0x00000000 align 2**12 + filesz 0x00000020 memsz 0x00000020 flags r-x + LOAD off 0x00001020 vaddr 0x00000020 paddr 0x00000020 align 2**12 + filesz 0x0000e76c memsz 0x0000e76c flags r-x + LOAD off 0x0000f78c vaddr 0x0000e78c paddr 0x00010310 align 2**12 + filesz 0x00001b84 memsz 0x00001b84 flags rw- + LOAD off 0x00011e94 vaddr 0x00011e94 paddr 0x00011e94 align 2**12 + filesz 0x00000000 memsz 0x000002ec flags rw- + +Sections: +Idx Name Size VMA LMA File off Algn + 0 .entry 00000020 00000000 00000000 00001000 2**5 + CONTENTS, ALLOC, LOAD, READONLY, CODE + 1 .exceptions 00000194 00000020 00000020 00001020 2**2 + CONTENTS, ALLOC, LOAD, READONLY, CODE + 2 .text 0000dfa8 000001b4 000001b4 000011b4 2**2 + CONTENTS, ALLOC, LOAD, READONLY, CODE + 3 .rodata 00000630 0000e15c 0000e15c 0000f15c 2**2 + CONTENTS, ALLOC, LOAD, READONLY, DATA + 4 .rwdata 00001b84 0000e78c 00010310 0000f78c 2**2 + CONTENTS, ALLOC, LOAD, DATA, SMALL_DATA + 5 .bss 000002ec 00011e94 00011e94 00011e94 2**2 + ALLOC, SMALL_DATA + 6 .comment 00000026 00000000 00000000 00011310 2**0 + CONTENTS, READONLY + 7 .debug_aranges 00000d98 00000000 00000000 00011338 2**3 + CONTENTS, READONLY, DEBUGGING + 8 .debug_pubnames 000014d6 00000000 00000000 000120d0 2**0 + CONTENTS, READONLY, DEBUGGING + 9 .debug_info 000285c7 00000000 00000000 000135a6 2**0 + CONTENTS, READONLY, DEBUGGING + 10 .debug_abbrev 000086c2 00000000 00000000 0003bb6d 2**0 + CONTENTS, READONLY, DEBUGGING + 11 .debug_line 00015639 00000000 00000000 0004422f 2**0 + CONTENTS, READONLY, DEBUGGING + 12 .debug_frame 00001b08 00000000 00000000 00059868 2**2 + CONTENTS, READONLY, DEBUGGING + 13 .debug_str 00002558 00000000 00000000 0005b370 2**0 + CONTENTS, READONLY, DEBUGGING + 14 .debug_loc 0000c7eb 00000000 00000000 0005d8c8 2**0 + CONTENTS, READONLY, DEBUGGING + 15 .debug_alt_sim_info 00000040 00000000 00000000 0006a0b4 2**2 + CONTENTS, READONLY, DEBUGGING + 16 .debug_ranges 000009e0 00000000 00000000 0006a0f8 2**3 + CONTENTS, READONLY, DEBUGGING + 17 .thread_model 00000003 00000000 00000000 0006dcb5 2**0 + CONTENTS, READONLY + 18 .cpu 0000000f 00000000 00000000 0006dcb8 2**0 + CONTENTS, READONLY + 19 .qsys 00000001 00000000 00000000 0006dcc7 2**0 + CONTENTS, READONLY + 20 .simulation_enabled 00000001 00000000 00000000 0006dcc8 2**0 + CONTENTS, READONLY + 21 .stderr_dev 00000009 00000000 00000000 0006dcc9 2**0 + CONTENTS, READONLY + 22 .stdin_dev 00000009 00000000 00000000 0006dcd2 2**0 + CONTENTS, READONLY + 23 .stdout_dev 00000009 00000000 00000000 0006dcdb 2**0 + CONTENTS, READONLY + 24 .sopc_system_name 0000000b 00000000 00000000 0006dce4 2**0 + CONTENTS, READONLY + 25 .quartus_project_dir 00000030 00000000 00000000 0006dcef 2**0 + CONTENTS, READONLY + 26 .sopcinfo 0007d9aa 00000000 00000000 0006dd1f 2**0 + CONTENTS, READONLY +SYMBOL TABLE: +00000000 l d .entry 00000000 .entry +00000020 l d .exceptions 00000000 .exceptions +000001b4 l d .text 00000000 .text +0000e15c l d .rodata 00000000 .rodata +0000e78c l d .rwdata 00000000 .rwdata +00011e94 l d .bss 00000000 .bss +00000000 l d .comment 00000000 .comment +00000000 l d .debug_aranges 00000000 .debug_aranges +00000000 l d .debug_pubnames 00000000 .debug_pubnames +00000000 l d .debug_info 00000000 .debug_info +00000000 l d .debug_abbrev 00000000 .debug_abbrev +00000000 l d .debug_line 00000000 .debug_line +00000000 l d .debug_frame 00000000 .debug_frame +00000000 l d .debug_str 00000000 .debug_str +00000000 l d .debug_loc 00000000 .debug_loc +00000000 l d .debug_alt_sim_info 00000000 .debug_alt_sim_info +00000000 l d .debug_ranges 00000000 .debug_ranges +000001ec l .text 00000000 alt_after_alt_main +00000000 l df *ABS* 00000000 alt_irq_handler.c +00000000 l df *ABS* 00000000 hello_world.c +00000000 l df *ABS* 00000000 fclose.c +00000000 l df *ABS* 00000000 fflush.c +00000000 l df *ABS* 00000000 findfp.c +0000064c l F .text 00000058 std +00000758 l F .text 00000008 __fp_lock +00000760 l F .text 00000008 __fp_unlock +00000000 l df *ABS* 00000000 fopen.c +00000000 l df *ABS* 00000000 mallocr.c +00000000 l df *ABS* 00000000 fseek.c +00000000 l df *ABS* 00000000 fstatr.c +00000000 l df *ABS* 00000000 fwalk.c +00000000 l df *ABS* 00000000 fwrite.c +00000000 l df *ABS* 00000000 impure.c +0000e78c l O .rwdata 00000400 impure_data +00000000 l df *ABS* 00000000 int_errno.c +00000000 l df *ABS* 00000000 makebuf.c +00000000 l df *ABS* 00000000 mallocr.c +00000000 l df *ABS* 00000000 memset.c +00000000 l df *ABS* 00000000 openr.c +00000000 l df *ABS* 00000000 printf.c +00000000 l df *ABS* 00000000 puts.c +00000000 l df *ABS* 00000000 refill.c +000022a4 l F .text 0000001c lflush +00000000 l df *ABS* 00000000 sbrkr.c +00000000 l df *ABS* 00000000 stdio.c +00000000 l df *ABS* 00000000 strlen.c +00000000 l df *ABS* 00000000 vfprintf.c +000024f0 l F .text 00000058 __sprint_r +0000e22e l O .rodata 00000010 blanks.3452 +0000e21e l O .rodata 00000010 zeroes.3453 +00000000 l df *ABS* 00000000 writer.c +00000000 l df *ABS* 00000000 wsetup.c +00000000 l df *ABS* 00000000 closer.c +00000000 l df *ABS* 00000000 dtoa.c +00004654 l F .text 00000244 quorem +00000000 l df *ABS* 00000000 flags.c +00000000 l df *ABS* 00000000 fvwrite.c +00000000 l df *ABS* 00000000 isattyr.c +00000000 l df *ABS* 00000000 locale.c +000102dc l O .rwdata 00000004 charset +0000e260 l O .rodata 00000030 lconv +00000000 l df *ABS* 00000000 lseekr.c +00000000 l df *ABS* 00000000 memchr.c +00000000 l df *ABS* 00000000 memcpy.c +00000000 l df *ABS* 00000000 memmove.c +00000000 l df *ABS* 00000000 mprec.c +0000e3a8 l O .rodata 0000000c p05.2458 +00000000 l df *ABS* 00000000 readr.c +00000000 l df *ABS* 00000000 mallocr.c +00000000 l df *ABS* 00000000 s_isinfd.c +00000000 l df *ABS* 00000000 s_isnand.c +00000000 l df *ABS* 00000000 strcmp.c +00000000 l df *ABS* 00000000 mallocr.c +00000000 l df *ABS* 00000000 libgcc2.c +00000000 l df *ABS* 00000000 libgcc2.c +00000000 l df *ABS* 00000000 dp-bit.c +00008d50 l F .text 00000410 _fpadd_parts +00000000 l df *ABS* 00000000 dp-bit.c +00000000 l df *ABS* 00000000 dp-bit.c +00000000 l df *ABS* 00000000 dp-bit.c +00000000 l df *ABS* 00000000 dp-bit.c +00000000 l df *ABS* 00000000 dp-bit.c +00000000 l df *ABS* 00000000 dp-bit.c +00000000 l df *ABS* 00000000 dp-bit.c +00000000 l df *ABS* 00000000 dp-bit.c +00000000 l df *ABS* 00000000 dp-bit.c +00000000 l df *ABS* 00000000 dp-bit.c +00000000 l df *ABS* 00000000 dp-bit.c +00000000 l df *ABS* 00000000 lib2-divmod.c +00009e7c l F .text 0000007c udivmodsi4 +00000000 l df *ABS* 00000000 lib2-mul.c +00000000 l df *ABS* 00000000 libgcc2.c +00000000 l df *ABS* 00000000 libgcc2.c +00000000 l df *ABS* 00000000 libgcc2.c +00000000 l df *ABS* 00000000 dp-bit.c +00000000 l df *ABS* 00000000 dp-bit.c +00000000 l df *ABS* 00000000 dp-bit.c +00000000 l df *ABS* 00000000 alt_close.c +0000a7b8 l F .text 00000060 alt_get_errno +00000000 l df *ABS* 00000000 alt_dev.c +0000a818 l F .text 0000002c alt_dev_null_write +00000000 l df *ABS* 00000000 alt_errno.c +00000000 l df *ABS* 00000000 alt_fstat.c +0000a91c l F .text 00000060 alt_get_errno +00000000 l df *ABS* 00000000 alt_isatty.c +0000aa40 l F .text 00000060 alt_get_errno +00000000 l df *ABS* 00000000 alt_load.c +0000ab20 l F .text 0000006c alt_load_section +00000000 l df *ABS* 00000000 alt_lseek.c +0000ac80 l F .text 00000060 alt_get_errno +00000000 l df *ABS* 00000000 alt_main.c +00000000 l df *ABS* 00000000 alt_malloc_lock.c +00000000 l df *ABS* 00000000 alt_open.c +0000ad8c l F .text 000000f8 alt_file_locked +0000b010 l F .text 00000060 alt_get_errno +00000000 l df *ABS* 00000000 alt_read.c +0000b194 l F .text 00000060 alt_get_errno +00000000 l df *ABS* 00000000 alt_release_fd.c +00000000 l df *ABS* 00000000 alt_sbrk.c +000102f8 l O .rwdata 00000004 heap_end +00000000 l df *ABS* 00000000 alt_write.c +0000b44c l F .text 00000060 alt_get_errno +00000000 l df *ABS* 00000000 alt_sys_init.c +0000f148 l O .rwdata 00001060 jtag_uart +000101a8 l O .rwdata 00000120 lcd_16207_0 +0000b53c l F .text 00000038 alt_dev_reg +00000000 l df *ABS* 00000000 altera_avalon_jtag_uart_fd.c +00000000 l df *ABS* 00000000 altera_avalon_jtag_uart_init.c +0000b77c l F .text 00000228 altera_avalon_jtag_uart_irq +0000b9a4 l F .text 000000b0 altera_avalon_jtag_uart_timeout +00000000 l df *ABS* 00000000 altera_avalon_jtag_uart_ioctl.c +00000000 l df *ABS* 00000000 altera_avalon_jtag_uart_read.c +00000000 l df *ABS* 00000000 altera_avalon_jtag_uart_write.c +00000000 l df *ABS* 00000000 altera_avalon_lcd_16207.c +000102fc l O .rwdata 00000004 colstart +0000c020 l F .text 000000b8 lcd_write_command +0000c0d8 l F .text 000000d4 lcd_write_data +0000c1ac l F .text 000000d8 lcd_clear_screen +0000c284 l F .text 00000214 lcd_repaint_screen +0000c498 l F .text 000000e0 lcd_scroll_up +0000c578 l F .text 000002e4 lcd_handle_escape +0000cd98 l F .text 000000cc alt_lcd_16207_timeout +00000000 l df *ABS* 00000000 altera_avalon_lcd_16207_fd.c +00000000 l df *ABS* 00000000 alt_alarm_start.c +00000000 l df *ABS* 00000000 alt_dcache_flush_all.c +00000000 l df *ABS* 00000000 alt_dev_llist_insert.c +0000d21c l F .text 00000060 alt_get_errno +00000000 l df *ABS* 00000000 alt_do_ctors.c +00000000 l df *ABS* 00000000 alt_do_dtors.c +00000000 l df *ABS* 00000000 alt_find_dev.c +00000000 l df *ABS* 00000000 alt_find_file.c +00000000 l df *ABS* 00000000 alt_get_fd.c +00000000 l df *ABS* 00000000 alt_icache_flush_all.c +00000000 l df *ABS* 00000000 alt_iic.c +00000000 l df *ABS* 00000000 alt_iic_isr_register.c +00000000 l df *ABS* 00000000 alt_io_redirect.c +0000d8b0 l F .text 000000d8 alt_open_fd +00000000 l df *ABS* 00000000 alt_irq_vars.c +00000000 l df *ABS* 00000000 alt_tick.c +00000000 l df *ABS* 00000000 alt_usleep.c +00000000 l df *ABS* 00000000 altera_nios2_qsys_irq.c +00000000 l df *ABS* 00000000 alt_busy_sleep.c +00000000 l df *ABS* 00000000 atexit.c +00000000 l df *ABS* 00000000 ctype_.c +0000e609 l O .rodata 00000180 _ctype_b +00000000 l df *ABS* 00000000 exit.c +00000000 l df *ABS* 00000000 memcmp.c +00000000 l df *ABS* 00000000 __atexit.c +00000000 l df *ABS* 00000000 __call_atexit.c +0000df44 l F .text 00000004 register_fini +00000000 l df *ABS* 00000000 alt_exit.c +0000e0f8 l F .text 00000040 alt_sim_halt +00006ba4 g F .text 00000094 _mprec_log10 +00006c90 g F .text 00000088 __any_on +00006388 g F .text 00000070 _isatty_r +0000e380 g O .rodata 00000028 __mprec_tinytens +0000ace0 g F .text 0000006c alt_main +0000202c g F .text 000000a0 _puts_r +00011ef0 g O .bss 00000100 alt_irq +000064bc g F .text 00000078 _lseek_r +00010310 g *ABS* 00000000 __flash_rwdata_start +00005e4c g F .text 000000a0 __sflags +00009870 g F .text 00000088 __eqdf2 +00012180 g *ABS* 00000000 __alt_heap_start +00001fb4 g F .text 00000044 printf +00002338 g F .text 00000068 __sseek +000006b4 g F .text 000000a4 __sinit +0000641c g F .text 00000084 _setlocale_r +000007b4 g F .text 0000009c __sfmoreglue +0000ad6c g F .text 00000020 __malloc_unlock +000066b8 g F .text 000000e0 memmove +000007a4 g F .text 00000010 _cleanup +00006d18 g F .text 000000bc _Balloc +00009980 g F .text 00000088 __gtdf2 +00000000 w *UND* 00000000 __errno +00000000 g F .entry 0000000c __reset +00000020 g *ABS* 00000000 __flash_exceptions_start +000012f0 g F .text 00000074 _fstat_r +00011e94 g O .bss 00000004 errno +00011eb4 g O .bss 00000004 alt_argv +000182c8 g *ABS* 00000000 _gp +0000dba4 g F .text 00000030 usleep +0000efc8 g O .rwdata 00000180 alt_fd_list +00000248 g F .text 000000b0 hello +0000d344 g F .text 00000094 alt_find_dev +00006618 g F .text 000000a0 memcpy +00000798 g F .text 0000000c _cleanup_r +00009b18 g F .text 000000f8 __floatsidf +0000d988 g F .text 00000078 alt_io_redirect +00009a90 g F .text 00000088 __ltdf2 +0000e15c g *ABS* 00000000 __DTOR_END__ +000020cc g F .text 00000014 puts +00006af4 g F .text 000000b0 __ratio +0000bbbc g F .text 00000224 altera_avalon_jtag_uart_read +00000000 w *UND* 00000000 malloc +00001ff8 g F .text 00000034 _printf_r +00009fb8 g F .text 00000008 __udivsi3 +0000a97c g F .text 000000c4 isatty +0000e290 g O .rodata 000000c8 __mprec_tens +000063f8 g F .text 00000008 __locale_charset +00011e98 g O .bss 00000004 __malloc_top_pad +000102d8 g O .rwdata 00000004 __mb_cur_max +00006400 g F .text 0000000c _localeconv_r +0000747c g F .text 0000003c __i2b +00005eec g F .text 0000049c __sfvwrite_r +000022c0 g F .text 00000070 _sbrk_r +00007824 g F .text 00000078 _read_r +0000ef94 g O .rwdata 0000000c __lc_ctype +000102f0 g O .rwdata 00000004 alt_max_fd +0000a4b8 g F .text 00000138 __unpack_d +000002f8 g F .text 00000110 _fclose_r +00000618 g F .text 00000034 fflush +00011e9c g O .bss 00000004 __malloc_max_sbrked_mem +000091e0 g F .text 00000074 __adddf3 +000069d4 g F .text 00000120 __b2d +000086f0 g F .text 00000660 __umoddi3 +0000ab8c g F .text 000000f4 lseek +000102cc g O .rwdata 00000004 _global_impure_ptr +0000789c g F .text 000005f4 _realloc_r +00012180 g *ABS* 00000000 __bss_end +0000d7b8 g F .text 000000f8 alt_iic_isr_register +0000da98 g F .text 0000010c alt_tick +00008084 g F .text 0000066c __udivdi3 +0000e358 g O .rodata 00000028 __mprec_bigtens +00007704 g F .text 00000120 __s2b +00009ce8 g F .text 00000194 __floatunsidf +000068f4 g F .text 00000060 __mcmp +0001030c g O .rwdata 00000004 __ctype_ptr +00000780 g F .text 00000018 __fp_lock_all +0000d770 g F .text 00000048 alt_ic_irq_enabled +0000da00 g F .text 00000098 alt_alarm_stop +00011ebc g O .bss 00000004 alt_irq_active +000000ec g F .exceptions 000000c8 alt_irq_handler +0000efa0 g O .rwdata 00000028 alt_dev_null +0000d14c g F .text 0000001c alt_dcache_flush_all +000067c0 g F .text 00000070 __hi0bits +00009c10 g F .text 000000d8 __fixdfsi +00010310 g *ABS* 00000000 __ram_rwdata_end +00000000 g *ABS* 00000000 __alt_mem_onchip_memory +000102e8 g O .rwdata 00000008 alt_dev_list +0000b328 g F .text 00000124 write +0000e78c g *ABS* 00000000 __ram_rodata_end +0000a844 g F .text 000000d8 fstat +000075e4 g F .text 00000120 __pow5mult +00011ea4 g O .bss 00000004 __nlocale_changed +00009fc0 g F .text 00000008 __umodsi3 +00012180 g *ABS* 00000000 end +0000c85c g F .text 0000053c altera_avalon_lcd_16207_write +000012cc g F .text 00000024 fseek +0000b6bc g F .text 000000c0 altera_avalon_jtag_uart_init +0000e158 g *ABS* 00000000 __CTOR_LIST__ +00032000 g *ABS* 00000000 __alt_stack_pointer +0000a124 g F .text 00000080 __clzsi2 +0000bde0 g F .text 00000240 altera_avalon_jtag_uart_write +000006a4 g F .text 00000004 __sfp_lock_acquire +00006534 g F .text 000000e4 memchr +00002548 g F .text 00001ec4 ___vfprintf_internal_r +00000b7c g F .text 00000314 _free_r +0000df48 g F .text 000001b0 __call_exitprocs +00011ea8 g O .bss 00000004 __mlocale_changed +000102d4 g O .rwdata 00000004 __malloc_sbrk_base +000001b4 g F .text 0000003c _start +00011ec0 g O .bss 00000004 _alt_tick_rate +000070dc g F .text 0000014c __lshift +00011ec4 g O .bss 00000004 _alt_nticks +0000b070 g F .text 00000124 read +0000b4e0 g F .text 0000005c alt_sys_init +00001f3c g F .text 00000078 _open_r +0000de10 g F .text 00000134 __register_exitproc +00007228 g F .text 00000254 __multiply +0000ba54 g F .text 00000074 altera_avalon_jtag_uart_close +00009fc8 g F .text 00000038 __mulsi3 +0000e78c g *ABS* 00000000 __ram_rwdata_start +0000e15c g *ABS* 00000000 __ram_rodata_start +00011ec8 g O .bss 00000028 __malloc_current_mallinfo +00006dd4 g F .text 0000017c __d2b +0000b574 g F .text 00000058 altera_avalon_jtag_uart_read_fd +0000d4f8 g F .text 000000d0 alt_get_fd +0000dbf4 g F .text 0000015c alt_busy_sleep +0000a5f0 g F .text 000000c8 __fpcmp_parts_d +000045e4 g F .text 00000070 _close_r +0000dd9c g F .text 00000074 memcmp +0000b624 g F .text 00000048 altera_avalon_jtag_uart_close_fd +00012180 g *ABS* 00000000 __alt_stack_base +0000b66c g F .text 00000050 altera_avalon_jtag_uart_ioctl_fd +000014e4 g F .text 000000ac _fwrite_r +000044a8 g F .text 0000013c __swsetup_r +00009618 g F .text 00000258 __divdf3 +00000850 g F .text 000000f0 __sfp +00006c38 g F .text 00000058 __copybits +0000eb8c g O .rwdata 00000408 __malloc_av_ +000006b0 g F .text 00000004 __sinit_lock_release +00009254 g F .text 000003c4 __muldf3 +0000241c g F .text 00000060 __sread +0000d3d8 g F .text 00000120 alt_find_file +0000d168 g F .text 000000b4 alt_dev_llist_insert +0000ad4c g F .text 00000020 __malloc_lock +0000b26c g F .text 000000bc sbrk +0000041c g F .text 000001fc _fflush_r +00007fbc g F .text 000000c8 _calloc_r +00000a34 g F .text 0000001c fopen +00011e94 g *ABS* 00000000 __bss_start +00001ea4 g F .text 00000098 memset +000001f0 g F .text 00000058 main +00011eb8 g O .bss 00000004 alt_envp +00011ea0 g O .bss 00000004 __malloc_max_total_mem +0000b5cc g F .text 00000058 altera_avalon_jtag_uart_write_fd +0000ce64 g F .text 0000013c altera_avalon_lcd_16207_init +00002330 g F .text 00000008 __sclose +00032000 g *ABS* 00000000 __alt_heap_limit +00000408 g F .text 00000014 fclose +00011ff0 g O .bss 00000190 _atexit0 +00004898 g F .text 000015b4 _dtoa_r +00001764 g F .text 00000740 _malloc_r +000102f4 g O .rwdata 00000004 alt_errno +0000142c g F .text 000000b8 _fwalk +00009ef8 g F .text 00000060 __divsi3 +0000e3b4 g O .rodata 00000014 __thenan_df +00000a50 g F .text 0000012c _malloc_trim_r +0000e15c g *ABS* 00000000 __CTOR_END__ +00007f00 g F .text 000000bc strcmp +0000e15c g *ABS* 00000000 __flash_rodata_start +0000e15c g *ABS* 00000000 __DTOR_LIST__ +000098f8 g F .text 00000088 __nedf2 +0000b4ac g F .text 00000034 alt_irq_init +0000b1f4 g F .text 00000078 alt_release_fd +0000e3c8 g O .rodata 00000100 __clz_tab +00011eac g O .bss 00000004 _PathLocale +0000dd50 g F .text 00000014 atexit +00004430 g F .text 00000078 _write_r +000064a0 g F .text 0000001c setlocale +000102c8 g O .rwdata 00000004 _impure_ptr +00011eb0 g O .bss 00000004 alt_argc +0000d2e0 g F .text 00000064 _do_dtors +00000e90 g F .text 0000043c _fseek_r +000020e0 g F .text 000001c4 __srefill_r +00000020 g .exceptions 00000000 alt_irq_entry +00006954 g F .text 00000080 __ulp +00007e90 g F .text 00000040 __isinfd +00000768 g F .text 00000018 __fp_unlock_all +0000cfa0 g F .text 00000058 altera_avalon_lcd_16207_write_fd +000102e0 g O .rwdata 00000008 alt_fs_list +00000020 g *ABS* 00000000 __ram_exceptions_start +0000640c g F .text 00000010 localeconv +0000d5e4 g F .text 00000050 alt_ic_isr_register +00001590 g F .text 00000040 fwrite +00010310 g *ABS* 00000000 _edata +00012180 g *ABS* 00000000 _end +000001b4 g *ABS* 00000000 __ram_exceptions_end +0000bac8 g F .text 000000f4 altera_avalon_jtag_uart_ioctl +0000d6d0 g F .text 000000a0 alt_ic_irq_disable +000023a0 g F .text 0000007c __swrite +000102d0 g O .rwdata 00000004 __malloc_trim_threshold +0000dbd4 g F .text 00000020 altera_nios2_qsys_irq_init +0000dd64 g F .text 00000038 exit +00001364 g F .text 000000c8 _fwalk_reent +00006f50 g F .text 0000018c __mdiff +00009f58 g F .text 00000060 __modsi3 +00032000 g *ABS* 00000000 __alt_data_end +00000020 g F .exceptions 00000000 alt_exception +000006a8 g F .text 00000004 __sfp_lock_release +0000e508 g O .rodata 00000101 _ctype_ +00000940 g F .text 000000f4 _fopen_r +0000e138 g F .text 00000020 _exit +00007ed0 g F .text 00000030 __isnand +0000cff8 g F .text 00000154 alt_alarm_start +0000a000 g F .text 00000124 __muldi3 +000015d0 g F .text 00000194 __smakebuf_r +0000247c g F .text 00000074 strlen +0000ae84 g F .text 0000018c open +00009a08 g F .text 00000088 __gedf2 +0000d5c8 g F .text 0000001c alt_icache_flush_all +00010300 g O .rwdata 00000004 alt_priority_mask +0000d634 g F .text 0000009c alt_ic_irq_enable +0000440c g F .text 00000024 __vfprintf_internal +00009160 g F .text 00000080 __subdf3 +00006830 g F .text 000000c4 __lo0bits +00010304 g O .rwdata 00000008 alt_alarm_list +0000d27c g F .text 00000064 _do_ctors +0000a6b8 g F .text 00000100 close +0000aaa0 g F .text 00000080 alt_load +0000a1a4 g F .text 00000314 __pack_d +00000000 w *UND* 00000000 free +000006ac g F .text 00000004 __sinit_lock_acquire +000074b8 g F .text 0000012c __multadd +00006798 g F .text 00000028 _Bfree + + + +Disassembly of section .entry: + +00000000 <__reset>: + * Jump to the _start entry point in the .text section if reset code + * is allowed or if optimizing for RTL simulation. + */ +#if defined(ALT_ALLOW_CODE_AT_RESET) || defined(ALT_SIM_OPTIMIZE) + /* Jump to the _start entry point in the .text section. */ + movhi r1, %hi(_start) + 0: 00400034 movhi at,0 + ori r1, r1, %lo(_start) + 4: 08406d14 ori at,at,436 + jmp r1 + 8: 0800683a jmp at + ... + +Disassembly of section .exceptions: + +00000020 : + * Process an exception. For all exceptions we must preserve all + * caller saved registers on the stack (See the Nios2 ABI + * documentation for details). + */ + + addi sp, sp, -76 + 20: deffed04 addi sp,sp,-76 + +#endif + +#endif + + stw ra, 0(sp) + 24: dfc00015 stw ra,0(sp) + /* + * Leave a gap in the stack frame at 4(sp) for the muldiv handler to + * store zero into. + */ + + stw r1, 8(sp) + 28: d8400215 stw at,8(sp) + stw r2, 12(sp) + 2c: d8800315 stw r2,12(sp) + stw r3, 16(sp) + 30: d8c00415 stw r3,16(sp) + stw r4, 20(sp) + 34: d9000515 stw r4,20(sp) + stw r5, 24(sp) + 38: d9400615 stw r5,24(sp) + stw r6, 28(sp) + 3c: d9800715 stw r6,28(sp) + stw r7, 32(sp) + 40: d9c00815 stw r7,32(sp) + + rdctl r5, estatus + 44: 000b307a rdctl r5,estatus + + stw r8, 36(sp) + 48: da000915 stw r8,36(sp) + stw r9, 40(sp) + 4c: da400a15 stw r9,40(sp) + stw r10, 44(sp) + 50: da800b15 stw r10,44(sp) + stw r11, 48(sp) + 54: dac00c15 stw r11,48(sp) + stw r12, 52(sp) + 58: db000d15 stw r12,52(sp) + stw r13, 56(sp) + 5c: db400e15 stw r13,56(sp) + stw r14, 60(sp) + 60: db800f15 stw r14,60(sp) + stw r15, 64(sp) + 64: dbc01015 stw r15,64(sp) + /* + * ea-4 contains the address of the instruction being executed + * when the exception occured. For interrupt exceptions, we will + * will be re-issue the isntruction. Store it in 72(sp) + */ + stw r5, 68(sp) /* estatus */ + 68: d9401115 stw r5,68(sp) + addi r15, ea, -4 /* instruction that caused exception */ + 6c: ebffff04 addi r15,ea,-4 + stw r15, 72(sp) + 70: dbc01215 stw r15,72(sp) +#else + /* + * Test to see if the exception was a software exception or caused + * by an external interrupt, and vector accordingly. + */ + rdctl r4, ipending + 74: 0009313a rdctl r4,ipending + andi r2, r5, 1 + 78: 2880004c andi r2,r5,1 + beq r2, zero, .Lnot_irq + 7c: 10000326 beq r2,zero,8c + beq r4, zero, .Lnot_irq + 80: 20000226 beq r4,zero,8c + /* + * Now that all necessary registers have been preserved, call + * alt_irq_handler() to process the interrupts. + */ + + call alt_irq_handler + 84: 00000ec0 call ec + + .section .exceptions.irqreturn, "xa" + + br .Lexception_exit + 88: 00000306 br 98 + * upon completion, so we write ea (address of instruction *after* + * the one where the exception occured) into 72(sp). The actual + * instruction that caused the exception is written in r2, which these + * handlers will utilize. + */ + stw ea, 72(sp) /* Don't re-issue */ + 8c: df401215 stw ea,72(sp) + ldw r2, -4(ea) /* Instruction that caused exception */ + 90: e8bfff17 ldw r2,-4(ea) +#ifdef NIOS2_HAS_DEBUG_STUB + /* + * Either tell the user now (if there is a debugger attached) or go into + * the debug monitor which will loop until a debugger is attached. + */ + break + 94: 003da03a break 0 + /* + * Restore the saved registers, so that all general purpose registers + * have been restored to their state at the time the interrupt occured. + */ + + ldw r5, 68(sp) + 98: d9401117 ldw r5,68(sp) + ldw ea, 72(sp) /* This becomes the PC once eret is executed */ + 9c: df401217 ldw ea,72(sp) + ldw ra, 0(sp) + a0: dfc00017 ldw ra,0(sp) + + wrctl estatus, r5 + a4: 2801707a wrctl estatus,r5 + + ldw r1, 8(sp) + a8: d8400217 ldw at,8(sp) + ldw r2, 12(sp) + ac: d8800317 ldw r2,12(sp) + ldw r3, 16(sp) + b0: d8c00417 ldw r3,16(sp) + ldw r4, 20(sp) + b4: d9000517 ldw r4,20(sp) + ldw r5, 24(sp) + b8: d9400617 ldw r5,24(sp) + ldw r6, 28(sp) + bc: d9800717 ldw r6,28(sp) + ldw r7, 32(sp) + c0: d9c00817 ldw r7,32(sp) +#ifdef ALT_STACK_CHECK + ldw et, %gprel(alt_exception_old_stack_limit)(gp) +#endif +#endif + + ldw r8, 36(sp) + c4: da000917 ldw r8,36(sp) + ldw r9, 40(sp) + c8: da400a17 ldw r9,40(sp) + ldw r10, 44(sp) + cc: da800b17 ldw r10,44(sp) + ldw r11, 48(sp) + d0: dac00c17 ldw r11,48(sp) + ldw r12, 52(sp) + d4: db000d17 ldw r12,52(sp) + ldw r13, 56(sp) + d8: db400e17 ldw r13,56(sp) + ldw r14, 60(sp) + dc: db800f17 ldw r14,60(sp) + ldw r15, 64(sp) + e0: dbc01017 ldw r15,64(sp) +#endif + + ldw sp, 76(sp) + +#else + addi sp, sp, 76 + e4: dec01304 addi sp,sp,76 + + /* + * Return to the interrupted instruction. + */ + + eret + e8: ef80083a eret + +000000ec : + * instruction is present if the macro ALT_CI_INTERRUPT_VECTOR defined. + */ + +void alt_irq_handler (void) __attribute__ ((section (".exceptions"))); +void alt_irq_handler (void) +{ + ec: defff904 addi sp,sp,-28 + f0: dfc00615 stw ra,24(sp) + f4: df000515 stw fp,20(sp) + f8: df000504 addi fp,sp,20 +#ifndef NIOS2_EIC_PRESENT +static ALT_INLINE alt_u32 ALT_ALWAYS_INLINE alt_irq_pending (void) +{ + alt_u32 active; + + NIOS2_READ_IPENDING (active); + fc: 0005313a rdctl r2,ipending + 100: e0bffc15 stw r2,-16(fp) + + return active; + 104: e0bffc17 ldw r2,-16(fp) + * Consider the case where the high priority interupt is asserted during + * the interrupt entry sequence for a lower priority interrupt to see why + * this is the case. + */ + + active = alt_irq_pending (); + 108: e0bfff15 stw r2,-4(fp) + + do + { + i = 0; + 10c: e03ffd15 stw zero,-12(fp) + mask = 1; + 110: 00800044 movi r2,1 + 114: e0bffe15 stw r2,-8(fp) + * called to clear the interrupt condition. + */ + + do + { + if (active & mask) + 118: e0ffff17 ldw r3,-4(fp) + 11c: e0bffe17 ldw r2,-8(fp) + 120: 1884703a and r2,r3,r2 + 124: 1005003a cmpeq r2,r2,zero + 128: 1000161e bne r2,zero,184 + { +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT + alt_irq[i].handler(alt_irq[i].context); + 12c: e0bffd17 ldw r2,-12(fp) + 130: 00c00074 movhi r3,1 + 134: 18c7bc04 addi r3,r3,7920 + 138: 100490fa slli r2,r2,3 + 13c: 10c5883a add r2,r2,r3 + 140: 11400017 ldw r5,0(r2) + 144: e0bffd17 ldw r2,-12(fp) + 148: 00c00074 movhi r3,1 + 14c: 18c7bc04 addi r3,r3,7920 + 150: 100490fa slli r2,r2,3 + 154: 10c5883a add r2,r2,r3 + 158: 10800104 addi r2,r2,4 + 15c: 11000017 ldw r4,0(r2) + 160: 283ee83a callr r5 +#ifndef NIOS2_EIC_PRESENT +static ALT_INLINE alt_u32 ALT_ALWAYS_INLINE alt_irq_pending (void) +{ + alt_u32 active; + + NIOS2_READ_IPENDING (active); + 164: 0005313a rdctl r2,ipending + 168: e0bffb15 stw r2,-20(fp) + + return active; + 16c: e0bffb17 ldw r2,-20(fp) + mask <<= 1; + i++; + + } while (1); + + active = alt_irq_pending (); + 170: e0bfff15 stw r2,-4(fp) + + } while (active); + 174: e0bfff17 ldw r2,-4(fp) + 178: 1004c03a cmpne r2,r2,zero + 17c: 103fe31e bne r2,zero,10c + 180: 00000706 br 1a0 +#else + alt_irq[i].handler(alt_irq[i].context, i); +#endif + break; + } + mask <<= 1; + 184: e0bffe17 ldw r2,-8(fp) + 188: 1085883a add r2,r2,r2 + 18c: e0bffe15 stw r2,-8(fp) + i++; + 190: e0bffd17 ldw r2,-12(fp) + 194: 10800044 addi r2,r2,1 + 198: e0bffd15 stw r2,-12(fp) + + } while (1); + 19c: 003fde06 br 118 + /* + * Notify the operating system that interrupt processing is complete. + */ + + ALT_OS_INT_EXIT(); +} + 1a0: e037883a mov sp,fp + 1a4: dfc00117 ldw ra,4(sp) + 1a8: df000017 ldw fp,0(sp) + 1ac: dec00204 addi sp,sp,8 + 1b0: f800283a ret + +Disassembly of section .text: + +000001b4 <_start>: +#if (NIOS2_NUM_OF_SHADOW_REG_SETS == 0) + /* + * Now that the caches are initialized, set up the stack pointer. + * The value provided by the linker is assumed to be correctly aligned. + */ + movhi sp, %hi(__alt_stack_pointer) + 1b4: 06c000f4 movhi sp,3 + ori sp, sp, %lo(__alt_stack_pointer) + 1b8: dec80014 ori sp,sp,8192 + + /* Set up the global pointer. */ + movhi gp, %hi(_gp) + 1bc: 06800074 movhi gp,1 + ori gp, gp, %lo(_gp) + 1c0: d6a0b214 ori gp,gp,33480 + */ +#ifndef ALT_SIM_OPTIMIZE + /* Log that the BSS is about to be cleared. */ + ALT_LOG_PUTS(alt_log_msg_bss) + + movhi r2, %hi(__bss_start) + 1c4: 00800074 movhi r2,1 + ori r2, r2, %lo(__bss_start) + 1c8: 1087a514 ori r2,r2,7828 + + movhi r3, %hi(__bss_end) + 1cc: 00c00074 movhi r3,1 + ori r3, r3, %lo(__bss_end) + 1d0: 18c86014 ori r3,r3,8576 + + beq r2, r3, 1f + 1d4: 10c00326 beq r2,r3,1e4 <_start+0x30> + +0: + stw zero, (r2) + 1d8: 10000015 stw zero,0(r2) + addi r2, r2, 4 + 1dc: 10800104 addi r2,r2,4 + bltu r2, r3, 0b + 1e0: 10fffd36 bltu r2,r3,1d8 <_start+0x24> + * section aren't defined until alt_load() has been called). + */ + mov et, zero +#endif + + call alt_load + 1e4: 000aaa00 call aaa0 + + /* Log that alt_main is about to be called. */ + ALT_LOG_PUTS(alt_log_msg_alt_main) + + /* Call the C entry point. It should never return. */ + call alt_main + 1e8: 000ace00 call ace0 + +000001ec : + + /* Wait in infinite loop in case alt_main does return. */ +alt_after_alt_main: + br alt_after_alt_main + 1ec: 003fff06 br 1ec + +000001f0
: +#define lcd_on (volatile char *) 0x00041010 +#define lcd_blon (volatile char *) 0x00041020 + + +int main() +{ + 1f0: defffe04 addi sp,sp,-8 + 1f4: dfc00115 stw ra,4(sp) + 1f8: df000015 stw fp,0(sp) + 1fc: d839883a mov fp,sp + *lcd_on = 1; + 200: 00c00134 movhi r3,4 + 204: 18c40404 addi r3,r3,4112 + 208: 00800044 movi r2,1 + 20c: 18800005 stb r2,0(r3) + *lcd_blon = 1; + 210: 00c00134 movhi r3,4 + 214: 18c40804 addi r3,r3,4128 + 218: 00800044 movi r2,1 + 21c: 18800005 stb r2,0(r3) + printf("Hello from Nios II!\n"); + 220: 01000074 movhi r4,1 + 224: 21385704 addi r4,r4,-7844 + 228: 00020cc0 call 20cc + hello(); + 22c: 00002480 call 248 + return 0; + 230: 0005883a mov r2,zero +} + 234: e037883a mov sp,fp + 238: dfc00117 ldw ra,4(sp) + 23c: df000017 ldw fp,0(sp) + 240: dec00204 addi sp,sp,8 + 244: f800283a ret + +00000248 : + +void hello() { + 248: defff904 addi sp,sp,-28 + 24c: dfc00615 stw ra,24(sp) + 250: df000515 stw fp,20(sp) + 254: df000504 addi fp,sp,20 + FILE *pLCD; + char msg[] = "Hello\nWorld\n"; + 258: 00c00074 movhi r3,1 + 25c: 18f86a04 addi r3,r3,-7768 + 260: 18800017 ldw r2,0(r3) + 264: e0bffc15 stw r2,-16(fp) + 268: 18800117 ldw r2,4(r3) + 26c: e0bffd15 stw r2,-12(fp) + 270: 18800217 ldw r2,8(r3) + 274: e0bffe15 stw r2,-8(fp) + 278: 18800303 ldbu r2,12(r3) + 27c: e0bfff05 stb r2,-4(fp) + + pLCD = fopen(LCD_16207_0_NAME, "w"); + 280: 01000074 movhi r4,1 + 284: 21385c04 addi r4,r4,-7824 + 288: 01400074 movhi r5,1 + 28c: 29786104 addi r5,r5,-7804 + 290: 0000a340 call a34 + 294: e0bffb15 stw r2,-20(fp) + if (pLCD) { + 298: e0bffb17 ldw r2,-20(fp) + 29c: 1005003a cmpeq r2,r2,zero + 2a0: 10000a1e bne r2,zero,2cc + fwrite(msg, strlen(msg), 1, pLCD); + 2a4: e13ffc04 addi r4,fp,-16 + 2a8: 000247c0 call 247c + 2ac: 100b883a mov r5,r2 + 2b0: e13ffc04 addi r4,fp,-16 + 2b4: 01800044 movi r6,1 + 2b8: e1fffb17 ldw r7,-20(fp) + 2bc: 00015900 call 1590 + fclose(pLCD); + 2c0: e13ffb17 ldw r4,-20(fp) + 2c4: 00004080 call 408 + 2c8: 00000306 br 2d8 + } else { + printf("failed to say Hello World\n"); + 2cc: 01000074 movhi r4,1 + 2d0: 21386204 addi r4,r4,-7800 + 2d4: 00020cc0 call 20cc + } + printf("end"); + 2d8: 01000074 movhi r4,1 + 2dc: 21386904 addi r4,r4,-7772 + 2e0: 0001fb40 call 1fb4 +} + 2e4: e037883a mov sp,fp + 2e8: dfc00117 ldw ra,4(sp) + 2ec: df000017 ldw fp,0(sp) + 2f0: dec00204 addi sp,sp,8 + 2f4: f800283a ret + +000002f8 <_fclose_r>: + 2f8: defffc04 addi sp,sp,-16 + 2fc: dc400115 stw r17,4(sp) + 300: dc000015 stw r16,0(sp) + 304: dfc00315 stw ra,12(sp) + 308: dc800215 stw r18,8(sp) + 30c: 2821883a mov r16,r5 + 310: 2023883a mov r17,r4 + 314: 28002926 beq r5,zero,3bc <_fclose_r+0xc4> + 318: 00006a40 call 6a4 <__sfp_lock_acquire> + 31c: 88000226 beq r17,zero,328 <_fclose_r+0x30> + 320: 88800e17 ldw r2,56(r17) + 324: 10002d26 beq r2,zero,3dc <_fclose_r+0xe4> + 328: 8080030f ldh r2,12(r16) + 32c: 10002226 beq r2,zero,3b8 <_fclose_r+0xc0> + 330: 8809883a mov r4,r17 + 334: 800b883a mov r5,r16 + 338: 000041c0 call 41c <_fflush_r> + 33c: 1025883a mov r18,r2 + 340: 80800b17 ldw r2,44(r16) + 344: 10000426 beq r2,zero,358 <_fclose_r+0x60> + 348: 81400717 ldw r5,28(r16) + 34c: 8809883a mov r4,r17 + 350: 103ee83a callr r2 + 354: 10002a16 blt r2,zero,400 <_fclose_r+0x108> + 358: 8080030b ldhu r2,12(r16) + 35c: 1080200c andi r2,r2,128 + 360: 1000231e bne r2,zero,3f0 <_fclose_r+0xf8> + 364: 81400c17 ldw r5,48(r16) + 368: 28000526 beq r5,zero,380 <_fclose_r+0x88> + 36c: 80801004 addi r2,r16,64 + 370: 28800226 beq r5,r2,37c <_fclose_r+0x84> + 374: 8809883a mov r4,r17 + 378: 0000b7c0 call b7c <_free_r> + 37c: 80000c15 stw zero,48(r16) + 380: 81401117 ldw r5,68(r16) + 384: 28000326 beq r5,zero,394 <_fclose_r+0x9c> + 388: 8809883a mov r4,r17 + 38c: 0000b7c0 call b7c <_free_r> + 390: 80001115 stw zero,68(r16) + 394: 8000030d sth zero,12(r16) + 398: 00006a80 call 6a8 <__sfp_lock_release> + 39c: 9005883a mov r2,r18 + 3a0: dfc00317 ldw ra,12(sp) + 3a4: dc800217 ldw r18,8(sp) + 3a8: dc400117 ldw r17,4(sp) + 3ac: dc000017 ldw r16,0(sp) + 3b0: dec00404 addi sp,sp,16 + 3b4: f800283a ret + 3b8: 00006a80 call 6a8 <__sfp_lock_release> + 3bc: 0025883a mov r18,zero + 3c0: 9005883a mov r2,r18 + 3c4: dfc00317 ldw ra,12(sp) + 3c8: dc800217 ldw r18,8(sp) + 3cc: dc400117 ldw r17,4(sp) + 3d0: dc000017 ldw r16,0(sp) + 3d4: dec00404 addi sp,sp,16 + 3d8: f800283a ret + 3dc: 8809883a mov r4,r17 + 3e0: 00006b40 call 6b4 <__sinit> + 3e4: 8080030f ldh r2,12(r16) + 3e8: 103fd11e bne r2,zero,330 <_fclose_r+0x38> + 3ec: 003ff206 br 3b8 <_fclose_r+0xc0> + 3f0: 81400417 ldw r5,16(r16) + 3f4: 8809883a mov r4,r17 + 3f8: 0000b7c0 call b7c <_free_r> + 3fc: 003fd906 br 364 <_fclose_r+0x6c> + 400: 04bfffc4 movi r18,-1 + 404: 003fd406 br 358 <_fclose_r+0x60> + +00000408 : + 408: 00800074 movhi r2,1 + 40c: 1080b204 addi r2,r2,712 + 410: 200b883a mov r5,r4 + 414: 11000017 ldw r4,0(r2) + 418: 00002f81 jmpi 2f8 <_fclose_r> + +0000041c <_fflush_r>: + 41c: defffb04 addi sp,sp,-20 + 420: dcc00315 stw r19,12(sp) + 424: dc800215 stw r18,8(sp) + 428: dfc00415 stw ra,16(sp) + 42c: dc400115 stw r17,4(sp) + 430: dc000015 stw r16,0(sp) + 434: 2027883a mov r19,r4 + 438: 2825883a mov r18,r5 + 43c: 20000226 beq r4,zero,448 <_fflush_r+0x2c> + 440: 20800e17 ldw r2,56(r4) + 444: 10005626 beq r2,zero,5a0 <_fflush_r+0x184> + 448: 9100030b ldhu r4,12(r18) + 44c: 20ffffcc andi r3,r4,65535 + 450: 18e0001c xori r3,r3,32768 + 454: 18e00004 addi r3,r3,-32768 + 458: 1880020c andi r2,r3,8 + 45c: 1000261e bne r2,zero,4f8 <_fflush_r+0xdc> + 460: 90c00117 ldw r3,4(r18) + 464: 20820014 ori r2,r4,2048 + 468: 9080030d sth r2,12(r18) + 46c: 1009883a mov r4,r2 + 470: 00c0400e bge zero,r3,574 <_fflush_r+0x158> + 474: 92000a17 ldw r8,40(r18) + 478: 40004026 beq r8,zero,57c <_fflush_r+0x160> + 47c: 2084000c andi r2,r4,4096 + 480: 10005326 beq r2,zero,5d0 <_fflush_r+0x1b4> + 484: 94001417 ldw r16,80(r18) + 488: 9080030b ldhu r2,12(r18) + 48c: 1080010c andi r2,r2,4 + 490: 1000481e bne r2,zero,5b4 <_fflush_r+0x198> + 494: 91400717 ldw r5,28(r18) + 498: 9809883a mov r4,r19 + 49c: 800d883a mov r6,r16 + 4a0: 000f883a mov r7,zero + 4a4: 403ee83a callr r8 + 4a8: 8080261e bne r16,r2,544 <_fflush_r+0x128> + 4ac: 9080030b ldhu r2,12(r18) + 4b0: 91000417 ldw r4,16(r18) + 4b4: 90000115 stw zero,4(r18) + 4b8: 10bdffcc andi r2,r2,63487 + 4bc: 10ffffcc andi r3,r2,65535 + 4c0: 18c4000c andi r3,r3,4096 + 4c4: 9080030d sth r2,12(r18) + 4c8: 91000015 stw r4,0(r18) + 4cc: 18002b26 beq r3,zero,57c <_fflush_r+0x160> + 4d0: 0007883a mov r3,zero + 4d4: 1805883a mov r2,r3 + 4d8: 94001415 stw r16,80(r18) + 4dc: dfc00417 ldw ra,16(sp) + 4e0: dcc00317 ldw r19,12(sp) + 4e4: dc800217 ldw r18,8(sp) + 4e8: dc400117 ldw r17,4(sp) + 4ec: dc000017 ldw r16,0(sp) + 4f0: dec00504 addi sp,sp,20 + 4f4: f800283a ret + 4f8: 94400417 ldw r17,16(r18) + 4fc: 88001f26 beq r17,zero,57c <_fflush_r+0x160> + 500: 90800017 ldw r2,0(r18) + 504: 18c000cc andi r3,r3,3 + 508: 94400015 stw r17,0(r18) + 50c: 1461c83a sub r16,r2,r17 + 510: 18002526 beq r3,zero,5a8 <_fflush_r+0x18c> + 514: 0005883a mov r2,zero + 518: 90800215 stw r2,8(r18) + 51c: 0400170e bge zero,r16,57c <_fflush_r+0x160> + 520: 90c00917 ldw r3,36(r18) + 524: 91400717 ldw r5,28(r18) + 528: 880d883a mov r6,r17 + 52c: 800f883a mov r7,r16 + 530: 9809883a mov r4,r19 + 534: 183ee83a callr r3 + 538: 88a3883a add r17,r17,r2 + 53c: 80a1c83a sub r16,r16,r2 + 540: 00bff616 blt zero,r2,51c <_fflush_r+0x100> + 544: 9080030b ldhu r2,12(r18) + 548: 00ffffc4 movi r3,-1 + 54c: 10801014 ori r2,r2,64 + 550: 9080030d sth r2,12(r18) + 554: 1805883a mov r2,r3 + 558: dfc00417 ldw ra,16(sp) + 55c: dcc00317 ldw r19,12(sp) + 560: dc800217 ldw r18,8(sp) + 564: dc400117 ldw r17,4(sp) + 568: dc000017 ldw r16,0(sp) + 56c: dec00504 addi sp,sp,20 + 570: f800283a ret + 574: 90800f17 ldw r2,60(r18) + 578: 00bfbe16 blt zero,r2,474 <_fflush_r+0x58> + 57c: 0007883a mov r3,zero + 580: 1805883a mov r2,r3 + 584: dfc00417 ldw ra,16(sp) + 588: dcc00317 ldw r19,12(sp) + 58c: dc800217 ldw r18,8(sp) + 590: dc400117 ldw r17,4(sp) + 594: dc000017 ldw r16,0(sp) + 598: dec00504 addi sp,sp,20 + 59c: f800283a ret + 5a0: 00006b40 call 6b4 <__sinit> + 5a4: 003fa806 br 448 <_fflush_r+0x2c> + 5a8: 90800517 ldw r2,20(r18) + 5ac: 90800215 stw r2,8(r18) + 5b0: 003fda06 br 51c <_fflush_r+0x100> + 5b4: 90800117 ldw r2,4(r18) + 5b8: 90c00c17 ldw r3,48(r18) + 5bc: 80a1c83a sub r16,r16,r2 + 5c0: 183fb426 beq r3,zero,494 <_fflush_r+0x78> + 5c4: 90800f17 ldw r2,60(r18) + 5c8: 80a1c83a sub r16,r16,r2 + 5cc: 003fb106 br 494 <_fflush_r+0x78> + 5d0: 91400717 ldw r5,28(r18) + 5d4: 9809883a mov r4,r19 + 5d8: 000d883a mov r6,zero + 5dc: 01c00044 movi r7,1 + 5e0: 403ee83a callr r8 + 5e4: 1021883a mov r16,r2 + 5e8: 00bfffc4 movi r2,-1 + 5ec: 80800226 beq r16,r2,5f8 <_fflush_r+0x1dc> + 5f0: 92000a17 ldw r8,40(r18) + 5f4: 003fa406 br 488 <_fflush_r+0x6c> + 5f8: 98c00017 ldw r3,0(r19) + 5fc: 00800744 movi r2,29 + 600: 18bfde26 beq r3,r2,57c <_fflush_r+0x160> + 604: 9080030b ldhu r2,12(r18) + 608: 8007883a mov r3,r16 + 60c: 10801014 ori r2,r2,64 + 610: 9080030d sth r2,12(r18) + 614: 003fcf06 br 554 <_fflush_r+0x138> + +00000618 : + 618: 01400034 movhi r5,0 + 61c: 29410704 addi r5,r5,1052 + 620: 2007883a mov r3,r4 + 624: 20000526 beq r4,zero,63c + 628: 00800074 movhi r2,1 + 62c: 1080b204 addi r2,r2,712 + 630: 11000017 ldw r4,0(r2) + 634: 180b883a mov r5,r3 + 638: 000041c1 jmpi 41c <_fflush_r> + 63c: 00800074 movhi r2,1 + 640: 1080b304 addi r2,r2,716 + 644: 11000017 ldw r4,0(r2) + 648: 00013641 jmpi 1364 <_fwalk_reent> + +0000064c : + 64c: 00800034 movhi r2,0 + 650: 1088cc04 addi r2,r2,9008 + 654: 20800b15 stw r2,44(r4) + 658: 00800034 movhi r2,0 + 65c: 10890704 addi r2,r2,9244 + 660: 20800815 stw r2,32(r4) + 664: 00c00034 movhi r3,0 + 668: 18c8e804 addi r3,r3,9120 + 66c: 00800034 movhi r2,0 + 670: 1088ce04 addi r2,r2,9016 + 674: 2140030d sth r5,12(r4) + 678: 2180038d sth r6,14(r4) + 67c: 20c00915 stw r3,36(r4) + 680: 20800a15 stw r2,40(r4) + 684: 20000015 stw zero,0(r4) + 688: 20000115 stw zero,4(r4) + 68c: 20000215 stw zero,8(r4) + 690: 20000415 stw zero,16(r4) + 694: 20000515 stw zero,20(r4) + 698: 20000615 stw zero,24(r4) + 69c: 21000715 stw r4,28(r4) + 6a0: f800283a ret + +000006a4 <__sfp_lock_acquire>: + 6a4: f800283a ret + +000006a8 <__sfp_lock_release>: + 6a8: f800283a ret + +000006ac <__sinit_lock_acquire>: + 6ac: f800283a ret + +000006b0 <__sinit_lock_release>: + 6b0: f800283a ret + +000006b4 <__sinit>: + 6b4: 20800e17 ldw r2,56(r4) + 6b8: defffd04 addi sp,sp,-12 + 6bc: dc400115 stw r17,4(sp) + 6c0: dc000015 stw r16,0(sp) + 6c4: dfc00215 stw ra,8(sp) + 6c8: 04400044 movi r17,1 + 6cc: 01400104 movi r5,4 + 6d0: 000d883a mov r6,zero + 6d4: 2021883a mov r16,r4 + 6d8: 2200bb04 addi r8,r4,748 + 6dc: 200f883a mov r7,r4 + 6e0: 10000526 beq r2,zero,6f8 <__sinit+0x44> + 6e4: dfc00217 ldw ra,8(sp) + 6e8: dc400117 ldw r17,4(sp) + 6ec: dc000017 ldw r16,0(sp) + 6f0: dec00304 addi sp,sp,12 + 6f4: f800283a ret + 6f8: 21000117 ldw r4,4(r4) + 6fc: 00800034 movhi r2,0 + 700: 1081e604 addi r2,r2,1944 + 704: 00c000c4 movi r3,3 + 708: 80800f15 stw r2,60(r16) + 70c: 80c0b915 stw r3,740(r16) + 710: 8200ba15 stw r8,744(r16) + 714: 84400e15 stw r17,56(r16) + 718: 8000b815 stw zero,736(r16) + 71c: 000064c0 call 64c + 720: 81000217 ldw r4,8(r16) + 724: 880d883a mov r6,r17 + 728: 800f883a mov r7,r16 + 72c: 01400284 movi r5,10 + 730: 000064c0 call 64c + 734: 81000317 ldw r4,12(r16) + 738: 800f883a mov r7,r16 + 73c: 01400484 movi r5,18 + 740: 01800084 movi r6,2 + 744: dfc00217 ldw ra,8(sp) + 748: dc400117 ldw r17,4(sp) + 74c: dc000017 ldw r16,0(sp) + 750: dec00304 addi sp,sp,12 + 754: 000064c1 jmpi 64c + +00000758 <__fp_lock>: + 758: 0005883a mov r2,zero + 75c: f800283a ret + +00000760 <__fp_unlock>: + 760: 0005883a mov r2,zero + 764: f800283a ret + +00000768 <__fp_unlock_all>: + 768: 00800074 movhi r2,1 + 76c: 1080b204 addi r2,r2,712 + 770: 11000017 ldw r4,0(r2) + 774: 01400034 movhi r5,0 + 778: 2941d804 addi r5,r5,1888 + 77c: 000142c1 jmpi 142c <_fwalk> + +00000780 <__fp_lock_all>: + 780: 00800074 movhi r2,1 + 784: 1080b204 addi r2,r2,712 + 788: 11000017 ldw r4,0(r2) + 78c: 01400034 movhi r5,0 + 790: 2941d604 addi r5,r5,1880 + 794: 000142c1 jmpi 142c <_fwalk> + +00000798 <_cleanup_r>: + 798: 01400034 movhi r5,0 + 79c: 29410204 addi r5,r5,1032 + 7a0: 000142c1 jmpi 142c <_fwalk> + +000007a4 <_cleanup>: + 7a4: 00800074 movhi r2,1 + 7a8: 1080b304 addi r2,r2,716 + 7ac: 11000017 ldw r4,0(r2) + 7b0: 00007981 jmpi 798 <_cleanup_r> + +000007b4 <__sfmoreglue>: + 7b4: defffc04 addi sp,sp,-16 + 7b8: dc000015 stw r16,0(sp) + 7bc: 2821883a mov r16,r5 + 7c0: dc400115 stw r17,4(sp) + 7c4: 01401704 movi r5,92 + 7c8: 2023883a mov r17,r4 + 7cc: 8009883a mov r4,r16 + 7d0: dfc00315 stw ra,12(sp) + 7d4: dcc00215 stw r19,8(sp) + 7d8: 0009fc80 call 9fc8 <__mulsi3> + 7dc: 11400304 addi r5,r2,12 + 7e0: 8809883a mov r4,r17 + 7e4: 1027883a mov r19,r2 + 7e8: 00017640 call 1764 <_malloc_r> + 7ec: 10c00304 addi r3,r2,12 + 7f0: 1023883a mov r17,r2 + 7f4: 1809883a mov r4,r3 + 7f8: 980d883a mov r6,r19 + 7fc: 000b883a mov r5,zero + 800: 10000b26 beq r2,zero,830 <__sfmoreglue+0x7c> + 804: 14000115 stw r16,4(r2) + 808: 10c00215 stw r3,8(r2) + 80c: 10000015 stw zero,0(r2) + 810: 0001ea40 call 1ea4 + 814: 8805883a mov r2,r17 + 818: dfc00317 ldw ra,12(sp) + 81c: dcc00217 ldw r19,8(sp) + 820: dc400117 ldw r17,4(sp) + 824: dc000017 ldw r16,0(sp) + 828: dec00404 addi sp,sp,16 + 82c: f800283a ret + 830: 0023883a mov r17,zero + 834: 8805883a mov r2,r17 + 838: dfc00317 ldw ra,12(sp) + 83c: dcc00217 ldw r19,8(sp) + 840: dc400117 ldw r17,4(sp) + 844: dc000017 ldw r16,0(sp) + 848: dec00404 addi sp,sp,16 + 84c: f800283a ret + +00000850 <__sfp>: + 850: defffd04 addi sp,sp,-12 + 854: 00800074 movhi r2,1 + 858: 1080b304 addi r2,r2,716 + 85c: dc000015 stw r16,0(sp) + 860: 14000017 ldw r16,0(r2) + 864: dc400115 stw r17,4(sp) + 868: dfc00215 stw ra,8(sp) + 86c: 80800e17 ldw r2,56(r16) + 870: 2023883a mov r17,r4 + 874: 10002626 beq r2,zero,910 <__sfp+0xc0> + 878: 8400b804 addi r16,r16,736 + 87c: 80800117 ldw r2,4(r16) + 880: 81000217 ldw r4,8(r16) + 884: 10ffffc4 addi r3,r2,-1 + 888: 18000916 blt r3,zero,8b0 <__sfp+0x60> + 88c: 2080030f ldh r2,12(r4) + 890: 10000b26 beq r2,zero,8c0 <__sfp+0x70> + 894: 017fffc4 movi r5,-1 + 898: 00000206 br 8a4 <__sfp+0x54> + 89c: 2080030f ldh r2,12(r4) + 8a0: 10000726 beq r2,zero,8c0 <__sfp+0x70> + 8a4: 18ffffc4 addi r3,r3,-1 + 8a8: 21001704 addi r4,r4,92 + 8ac: 197ffb1e bne r3,r5,89c <__sfp+0x4c> + 8b0: 80800017 ldw r2,0(r16) + 8b4: 10001926 beq r2,zero,91c <__sfp+0xcc> + 8b8: 1021883a mov r16,r2 + 8bc: 003fef06 br 87c <__sfp+0x2c> + 8c0: 00bfffc4 movi r2,-1 + 8c4: 00c00044 movi r3,1 + 8c8: 2080038d sth r2,14(r4) + 8cc: 20c0030d sth r3,12(r4) + 8d0: 20000015 stw zero,0(r4) + 8d4: 20000215 stw zero,8(r4) + 8d8: 20000115 stw zero,4(r4) + 8dc: 20000415 stw zero,16(r4) + 8e0: 20000515 stw zero,20(r4) + 8e4: 20000615 stw zero,24(r4) + 8e8: 20000c15 stw zero,48(r4) + 8ec: 20000d15 stw zero,52(r4) + 8f0: 20001115 stw zero,68(r4) + 8f4: 20001215 stw zero,72(r4) + 8f8: 2005883a mov r2,r4 + 8fc: dfc00217 ldw ra,8(sp) + 900: dc400117 ldw r17,4(sp) + 904: dc000017 ldw r16,0(sp) + 908: dec00304 addi sp,sp,12 + 90c: f800283a ret + 910: 8009883a mov r4,r16 + 914: 00006b40 call 6b4 <__sinit> + 918: 003fd706 br 878 <__sfp+0x28> + 91c: 8809883a mov r4,r17 + 920: 01400104 movi r5,4 + 924: 00007b40 call 7b4 <__sfmoreglue> + 928: 80800015 stw r2,0(r16) + 92c: 103fe21e bne r2,zero,8b8 <__sfp+0x68> + 930: 00800304 movi r2,12 + 934: 0009883a mov r4,zero + 938: 88800015 stw r2,0(r17) + 93c: 003fee06 br 8f8 <__sfp+0xa8> + +00000940 <_fopen_r>: + 940: defffa04 addi sp,sp,-24 + 944: dcc00415 stw r19,16(sp) + 948: 2827883a mov r19,r5 + 94c: 300b883a mov r5,r6 + 950: d80d883a mov r6,sp + 954: dc800315 stw r18,12(sp) + 958: dc400215 stw r17,8(sp) + 95c: dc000115 stw r16,4(sp) + 960: dfc00515 stw ra,20(sp) + 964: 2021883a mov r16,r4 + 968: 0005e4c0 call 5e4c <__sflags> + 96c: 1025883a mov r18,r2 + 970: 8009883a mov r4,r16 + 974: 0023883a mov r17,zero + 978: 1000081e bne r2,zero,99c <_fopen_r+0x5c> + 97c: 8805883a mov r2,r17 + 980: dfc00517 ldw ra,20(sp) + 984: dcc00417 ldw r19,16(sp) + 988: dc800317 ldw r18,12(sp) + 98c: dc400217 ldw r17,8(sp) + 990: dc000117 ldw r16,4(sp) + 994: dec00604 addi sp,sp,24 + 998: f800283a ret + 99c: 00008500 call 850 <__sfp> + 9a0: 1023883a mov r17,r2 + 9a4: 980b883a mov r5,r19 + 9a8: 8009883a mov r4,r16 + 9ac: 01c06d84 movi r7,438 + 9b0: 103ff226 beq r2,zero,97c <_fopen_r+0x3c> + 9b4: d9800017 ldw r6,0(sp) + 9b8: 0001f3c0 call 1f3c <_open_r> + 9bc: 10001816 blt r2,zero,a20 <_fopen_r+0xe0> + 9c0: 00c00034 movhi r3,0 + 9c4: 18c8e804 addi r3,r3,9120 + 9c8: 923fffcc andi r8,r18,65535 + 9cc: 8880038d sth r2,14(r17) + 9d0: 00800034 movhi r2,0 + 9d4: 10890704 addi r2,r2,9244 + 9d8: 88800815 stw r2,32(r17) + 9dc: 88c00915 stw r3,36(r17) + 9e0: 00800034 movhi r2,0 + 9e4: 1088ce04 addi r2,r2,9016 + 9e8: 00c00034 movhi r3,0 + 9ec: 18c8cc04 addi r3,r3,9008 + 9f0: 4200400c andi r8,r8,256 + 9f4: 8c80030d sth r18,12(r17) + 9f8: 8009883a mov r4,r16 + 9fc: 880b883a mov r5,r17 + a00: 000d883a mov r6,zero + a04: 01c00084 movi r7,2 + a08: 88800a15 stw r2,40(r17) + a0c: 88c00b15 stw r3,44(r17) + a10: 8c400715 stw r17,28(r17) + a14: 403fd926 beq r8,zero,97c <_fopen_r+0x3c> + a18: 0000e900 call e90 <_fseek_r> + a1c: 003fd706 br 97c <_fopen_r+0x3c> + a20: 00006a40 call 6a4 <__sfp_lock_acquire> + a24: 8800030d sth zero,12(r17) + a28: 00006a80 call 6a8 <__sfp_lock_release> + a2c: 0023883a mov r17,zero + a30: 003fd206 br 97c <_fopen_r+0x3c> + +00000a34 : + a34: 01800074 movhi r6,1 + a38: 3180b204 addi r6,r6,712 + a3c: 2007883a mov r3,r4 + a40: 31000017 ldw r4,0(r6) + a44: 280d883a mov r6,r5 + a48: 180b883a mov r5,r3 + a4c: 00009401 jmpi 940 <_fopen_r> + +00000a50 <_malloc_trim_r>: + a50: defffb04 addi sp,sp,-20 + a54: dcc00315 stw r19,12(sp) + a58: 04c00074 movhi r19,1 + a5c: 9cfae304 addi r19,r19,-5236 + a60: dc800215 stw r18,8(sp) + a64: dc400115 stw r17,4(sp) + a68: dc000015 stw r16,0(sp) + a6c: 2823883a mov r17,r5 + a70: 2025883a mov r18,r4 + a74: dfc00415 stw ra,16(sp) + a78: 000ad4c0 call ad4c <__malloc_lock> + a7c: 98800217 ldw r2,8(r19) + a80: 9009883a mov r4,r18 + a84: 000b883a mov r5,zero + a88: 10c00117 ldw r3,4(r2) + a8c: 00bfff04 movi r2,-4 + a90: 18a0703a and r16,r3,r2 + a94: 8463c83a sub r17,r16,r17 + a98: 8c43fbc4 addi r17,r17,4079 + a9c: 8822d33a srli r17,r17,12 + aa0: 0083ffc4 movi r2,4095 + aa4: 8c7fffc4 addi r17,r17,-1 + aa8: 8822933a slli r17,r17,12 + aac: 1440060e bge r2,r17,ac8 <_malloc_trim_r+0x78> + ab0: 00022c00 call 22c0 <_sbrk_r> + ab4: 98c00217 ldw r3,8(r19) + ab8: 9009883a mov r4,r18 + abc: 044bc83a sub r5,zero,r17 + ac0: 80c7883a add r3,r16,r3 + ac4: 10c00926 beq r2,r3,aec <_malloc_trim_r+0x9c> + ac8: 000ad6c0 call ad6c <__malloc_unlock> + acc: 0005883a mov r2,zero + ad0: dfc00417 ldw ra,16(sp) + ad4: dcc00317 ldw r19,12(sp) + ad8: dc800217 ldw r18,8(sp) + adc: dc400117 ldw r17,4(sp) + ae0: dc000017 ldw r16,0(sp) + ae4: dec00504 addi sp,sp,20 + ae8: f800283a ret + aec: 9009883a mov r4,r18 + af0: 00022c00 call 22c0 <_sbrk_r> + af4: 844dc83a sub r6,r16,r17 + af8: 00ffffc4 movi r3,-1 + afc: 9009883a mov r4,r18 + b00: 000b883a mov r5,zero + b04: 01c00074 movhi r7,1 + b08: 39c7b204 addi r7,r7,7880 + b0c: 31800054 ori r6,r6,1 + b10: 10c00926 beq r2,r3,b38 <_malloc_trim_r+0xe8> + b14: 38800017 ldw r2,0(r7) + b18: 98c00217 ldw r3,8(r19) + b1c: 9009883a mov r4,r18 + b20: 1445c83a sub r2,r2,r17 + b24: 38800015 stw r2,0(r7) + b28: 19800115 stw r6,4(r3) + b2c: 000ad6c0 call ad6c <__malloc_unlock> + b30: 00800044 movi r2,1 + b34: 003fe606 br ad0 <_malloc_trim_r+0x80> + b38: 00022c00 call 22c0 <_sbrk_r> + b3c: 99800217 ldw r6,8(r19) + b40: 100f883a mov r7,r2 + b44: 9009883a mov r4,r18 + b48: 1187c83a sub r3,r2,r6 + b4c: 008003c4 movi r2,15 + b50: 19400054 ori r5,r3,1 + b54: 10ffdc0e bge r2,r3,ac8 <_malloc_trim_r+0x78> + b58: 00800074 movhi r2,1 + b5c: 1080b504 addi r2,r2,724 + b60: 10c00017 ldw r3,0(r2) + b64: 00800074 movhi r2,1 + b68: 1087b204 addi r2,r2,7880 + b6c: 31400115 stw r5,4(r6) + b70: 38c7c83a sub r3,r7,r3 + b74: 10c00015 stw r3,0(r2) + b78: 003fd306 br ac8 <_malloc_trim_r+0x78> + +00000b7c <_free_r>: + b7c: defffd04 addi sp,sp,-12 + b80: dc400115 stw r17,4(sp) + b84: dc000015 stw r16,0(sp) + b88: dfc00215 stw ra,8(sp) + b8c: 2821883a mov r16,r5 + b90: 2023883a mov r17,r4 + b94: 28005a26 beq r5,zero,d00 <_free_r+0x184> + b98: 000ad4c0 call ad4c <__malloc_lock> + b9c: 823ffe04 addi r8,r16,-8 + ba0: 41400117 ldw r5,4(r8) + ba4: 00bfff84 movi r2,-2 + ba8: 02800074 movhi r10,1 + bac: 52bae304 addi r10,r10,-5236 + bb0: 288e703a and r7,r5,r2 + bb4: 41cd883a add r6,r8,r7 + bb8: 30c00117 ldw r3,4(r6) + bbc: 51000217 ldw r4,8(r10) + bc0: 00bfff04 movi r2,-4 + bc4: 1892703a and r9,r3,r2 + bc8: 5017883a mov r11,r10 + bcc: 31006726 beq r6,r4,d6c <_free_r+0x1f0> + bd0: 2880004c andi r2,r5,1 + bd4: 1005003a cmpeq r2,r2,zero + bd8: 32400115 stw r9,4(r6) + bdc: 10001a1e bne r2,zero,c48 <_free_r+0xcc> + be0: 000b883a mov r5,zero + be4: 3247883a add r3,r6,r9 + be8: 18800117 ldw r2,4(r3) + bec: 1080004c andi r2,r2,1 + bf0: 1000231e bne r2,zero,c80 <_free_r+0x104> + bf4: 280ac03a cmpne r5,r5,zero + bf8: 3a4f883a add r7,r7,r9 + bfc: 2800451e bne r5,zero,d14 <_free_r+0x198> + c00: 31000217 ldw r4,8(r6) + c04: 00800074 movhi r2,1 + c08: 10bae504 addi r2,r2,-5228 + c0c: 20807b26 beq r4,r2,dfc <_free_r+0x280> + c10: 30800317 ldw r2,12(r6) + c14: 3a07883a add r3,r7,r8 + c18: 19c00015 stw r7,0(r3) + c1c: 11000215 stw r4,8(r2) + c20: 20800315 stw r2,12(r4) + c24: 38800054 ori r2,r7,1 + c28: 40800115 stw r2,4(r8) + c2c: 28001a26 beq r5,zero,c98 <_free_r+0x11c> + c30: 8809883a mov r4,r17 + c34: dfc00217 ldw ra,8(sp) + c38: dc400117 ldw r17,4(sp) + c3c: dc000017 ldw r16,0(sp) + c40: dec00304 addi sp,sp,12 + c44: 000ad6c1 jmpi ad6c <__malloc_unlock> + c48: 80bffe17 ldw r2,-8(r16) + c4c: 50c00204 addi r3,r10,8 + c50: 4091c83a sub r8,r8,r2 + c54: 41000217 ldw r4,8(r8) + c58: 388f883a add r7,r7,r2 + c5c: 20c06126 beq r4,r3,de4 <_free_r+0x268> + c60: 40800317 ldw r2,12(r8) + c64: 3247883a add r3,r6,r9 + c68: 000b883a mov r5,zero + c6c: 11000215 stw r4,8(r2) + c70: 20800315 stw r2,12(r4) + c74: 18800117 ldw r2,4(r3) + c78: 1080004c andi r2,r2,1 + c7c: 103fdd26 beq r2,zero,bf4 <_free_r+0x78> + c80: 38800054 ori r2,r7,1 + c84: 3a07883a add r3,r7,r8 + c88: 280ac03a cmpne r5,r5,zero + c8c: 40800115 stw r2,4(r8) + c90: 19c00015 stw r7,0(r3) + c94: 283fe61e bne r5,zero,c30 <_free_r+0xb4> + c98: 00807fc4 movi r2,511 + c9c: 11c01f2e bgeu r2,r7,d1c <_free_r+0x1a0> + ca0: 3806d27a srli r3,r7,9 + ca4: 1800481e bne r3,zero,dc8 <_free_r+0x24c> + ca8: 3804d0fa srli r2,r7,3 + cac: 100690fa slli r3,r2,3 + cb0: 1acd883a add r6,r3,r11 + cb4: 31400217 ldw r5,8(r6) + cb8: 31405926 beq r6,r5,e20 <_free_r+0x2a4> + cbc: 28800117 ldw r2,4(r5) + cc0: 00ffff04 movi r3,-4 + cc4: 10c4703a and r2,r2,r3 + cc8: 3880022e bgeu r7,r2,cd4 <_free_r+0x158> + ccc: 29400217 ldw r5,8(r5) + cd0: 317ffa1e bne r6,r5,cbc <_free_r+0x140> + cd4: 29800317 ldw r6,12(r5) + cd8: 41800315 stw r6,12(r8) + cdc: 41400215 stw r5,8(r8) + ce0: 8809883a mov r4,r17 + ce4: 2a000315 stw r8,12(r5) + ce8: 32000215 stw r8,8(r6) + cec: dfc00217 ldw ra,8(sp) + cf0: dc400117 ldw r17,4(sp) + cf4: dc000017 ldw r16,0(sp) + cf8: dec00304 addi sp,sp,12 + cfc: 000ad6c1 jmpi ad6c <__malloc_unlock> + d00: dfc00217 ldw ra,8(sp) + d04: dc400117 ldw r17,4(sp) + d08: dc000017 ldw r16,0(sp) + d0c: dec00304 addi sp,sp,12 + d10: f800283a ret + d14: 31000217 ldw r4,8(r6) + d18: 003fbd06 br c10 <_free_r+0x94> + d1c: 3806d0fa srli r3,r7,3 + d20: 00800044 movi r2,1 + d24: 51400117 ldw r5,4(r10) + d28: 180890fa slli r4,r3,3 + d2c: 1807d0ba srai r3,r3,2 + d30: 22c9883a add r4,r4,r11 + d34: 21800217 ldw r6,8(r4) + d38: 10c4983a sll r2,r2,r3 + d3c: 41000315 stw r4,12(r8) + d40: 41800215 stw r6,8(r8) + d44: 288ab03a or r5,r5,r2 + d48: 22000215 stw r8,8(r4) + d4c: 8809883a mov r4,r17 + d50: 51400115 stw r5,4(r10) + d54: 32000315 stw r8,12(r6) + d58: dfc00217 ldw ra,8(sp) + d5c: dc400117 ldw r17,4(sp) + d60: dc000017 ldw r16,0(sp) + d64: dec00304 addi sp,sp,12 + d68: 000ad6c1 jmpi ad6c <__malloc_unlock> + d6c: 2880004c andi r2,r5,1 + d70: 3a4d883a add r6,r7,r9 + d74: 1000071e bne r2,zero,d94 <_free_r+0x218> + d78: 80bffe17 ldw r2,-8(r16) + d7c: 4091c83a sub r8,r8,r2 + d80: 41000317 ldw r4,12(r8) + d84: 40c00217 ldw r3,8(r8) + d88: 308d883a add r6,r6,r2 + d8c: 20c00215 stw r3,8(r4) + d90: 19000315 stw r4,12(r3) + d94: 00800074 movhi r2,1 + d98: 1080b404 addi r2,r2,720 + d9c: 11000017 ldw r4,0(r2) + da0: 30c00054 ori r3,r6,1 + da4: 52000215 stw r8,8(r10) + da8: 40c00115 stw r3,4(r8) + dac: 313fa036 bltu r6,r4,c30 <_free_r+0xb4> + db0: 00800074 movhi r2,1 + db4: 1087a604 addi r2,r2,7832 + db8: 11400017 ldw r5,0(r2) + dbc: 8809883a mov r4,r17 + dc0: 0000a500 call a50 <_malloc_trim_r> + dc4: 003f9a06 br c30 <_free_r+0xb4> + dc8: 00800104 movi r2,4 + dcc: 10c0072e bgeu r2,r3,dec <_free_r+0x270> + dd0: 00800504 movi r2,20 + dd4: 10c01936 bltu r2,r3,e3c <_free_r+0x2c0> + dd8: 188016c4 addi r2,r3,91 + ddc: 100690fa slli r3,r2,3 + de0: 003fb306 br cb0 <_free_r+0x134> + de4: 01400044 movi r5,1 + de8: 003f7e06 br be4 <_free_r+0x68> + dec: 3804d1ba srli r2,r7,6 + df0: 10800e04 addi r2,r2,56 + df4: 100690fa slli r3,r2,3 + df8: 003fad06 br cb0 <_free_r+0x134> + dfc: 22000315 stw r8,12(r4) + e00: 22000215 stw r8,8(r4) + e04: 3a05883a add r2,r7,r8 + e08: 38c00054 ori r3,r7,1 + e0c: 11c00015 stw r7,0(r2) + e10: 41000215 stw r4,8(r8) + e14: 40c00115 stw r3,4(r8) + e18: 41000315 stw r4,12(r8) + e1c: 003f8406 br c30 <_free_r+0xb4> + e20: 1005d0ba srai r2,r2,2 + e24: 00c00044 movi r3,1 + e28: 51000117 ldw r4,4(r10) + e2c: 1886983a sll r3,r3,r2 + e30: 20c8b03a or r4,r4,r3 + e34: 51000115 stw r4,4(r10) + e38: 003fa706 br cd8 <_free_r+0x15c> + e3c: 00801504 movi r2,84 + e40: 10c00436 bltu r2,r3,e54 <_free_r+0x2d8> + e44: 3804d33a srli r2,r7,12 + e48: 10801b84 addi r2,r2,110 + e4c: 100690fa slli r3,r2,3 + e50: 003f9706 br cb0 <_free_r+0x134> + e54: 00805504 movi r2,340 + e58: 10c00436 bltu r2,r3,e6c <_free_r+0x2f0> + e5c: 3804d3fa srli r2,r7,15 + e60: 10801dc4 addi r2,r2,119 + e64: 100690fa slli r3,r2,3 + e68: 003f9106 br cb0 <_free_r+0x134> + e6c: 00815504 movi r2,1364 + e70: 10c0032e bgeu r2,r3,e80 <_free_r+0x304> + e74: 00801f84 movi r2,126 + e78: 00c0fc04 movi r3,1008 + e7c: 003f8c06 br cb0 <_free_r+0x134> + e80: 3804d4ba srli r2,r7,18 + e84: 10801f04 addi r2,r2,124 + e88: 100690fa slli r3,r2,3 + e8c: 003f8806 br cb0 <_free_r+0x134> + +00000e90 <_fseek_r>: + e90: deffe804 addi sp,sp,-96 + e94: dd801515 stw r22,84(sp) + e98: dcc01215 stw r19,72(sp) + e9c: dc801115 stw r18,68(sp) + ea0: dc000f15 stw r16,60(sp) + ea4: dfc01715 stw ra,92(sp) + ea8: ddc01615 stw r23,88(sp) + eac: dd401415 stw r21,80(sp) + eb0: dd001315 stw r20,76(sp) + eb4: dc401015 stw r17,64(sp) + eb8: 2025883a mov r18,r4 + ebc: 2821883a mov r16,r5 + ec0: 302d883a mov r22,r6 + ec4: 3827883a mov r19,r7 + ec8: 20000226 beq r4,zero,ed4 <_fseek_r+0x44> + ecc: 20800e17 ldw r2,56(r4) + ed0: 10007826 beq r2,zero,10b4 <_fseek_r+0x224> + ed4: 8080030b ldhu r2,12(r16) + ed8: 00c04204 movi r3,264 + edc: 1080420c andi r2,r2,264 + ee0: 10c07926 beq r2,r3,10c8 <_fseek_r+0x238> + ee4: 85400a17 ldw r21,40(r16) + ee8: a800ea26 beq r21,zero,1294 <_fseek_r+0x404> + eec: 00800044 movi r2,1 + ef0: 98805f26 beq r19,r2,1070 <_fseek_r+0x1e0> + ef4: 00800084 movi r2,2 + ef8: 98801026 beq r19,r2,f3c <_fseek_r+0xac> + efc: 98000f26 beq r19,zero,f3c <_fseek_r+0xac> + f00: 00800584 movi r2,22 + f04: 013fffc4 movi r4,-1 + f08: 90800015 stw r2,0(r18) + f0c: 2005883a mov r2,r4 + f10: dfc01717 ldw ra,92(sp) + f14: ddc01617 ldw r23,88(sp) + f18: dd801517 ldw r22,84(sp) + f1c: dd401417 ldw r21,80(sp) + f20: dd001317 ldw r20,76(sp) + f24: dcc01217 ldw r19,72(sp) + f28: dc801117 ldw r18,68(sp) + f2c: dc401017 ldw r17,64(sp) + f30: dc000f17 ldw r16,60(sp) + f34: dec01804 addi sp,sp,96 + f38: f800283a ret + f3c: 81800417 ldw r6,16(r16) + f40: 0023883a mov r17,zero + f44: 002f883a mov r23,zero + f48: 3000a626 beq r6,zero,11e4 <_fseek_r+0x354> + f4c: 8100030b ldhu r4,12(r16) + f50: 2082068c andi r2,r4,2074 + f54: 1000081e bne r2,zero,f78 <_fseek_r+0xe8> + f58: 2081000c andi r2,r4,1024 + f5c: 10001b1e bne r2,zero,fcc <_fseek_r+0x13c> + f60: 00800034 movhi r2,0 + f64: 1088ce04 addi r2,r2,9016 + f68: a8800926 beq r21,r2,f90 <_fseek_r+0x100> + f6c: 8080030b ldhu r2,12(r16) + f70: 10820014 ori r2,r2,2048 + f74: 8080030d sth r2,12(r16) + f78: 9009883a mov r4,r18 + f7c: 800b883a mov r5,r16 + f80: 000041c0 call 41c <_fflush_r> + f84: 1000a326 beq r2,zero,1214 <_fseek_r+0x384> + f88: 013fffc4 movi r4,-1 + f8c: 003fdf06 br f0c <_fseek_r+0x7c> + f90: 8140038f ldh r5,14(r16) + f94: 283ff516 blt r5,zero,f6c <_fseek_r+0xdc> + f98: 9009883a mov r4,r18 + f9c: d80d883a mov r6,sp + fa0: 00012f00 call 12f0 <_fstat_r> + fa4: 103ff11e bne r2,zero,f6c <_fseek_r+0xdc> + fa8: d8800117 ldw r2,4(sp) + fac: 00e00014 movui r3,32768 + fb0: 10bc000c andi r2,r2,61440 + fb4: 10ffed1e bne r2,r3,f6c <_fseek_r+0xdc> + fb8: 80c0030b ldhu r3,12(r16) + fbc: 00810004 movi r2,1024 + fc0: 80801315 stw r2,76(r16) + fc4: 1886b03a or r3,r3,r2 + fc8: 80c0030d sth r3,12(r16) + fcc: 9800701e bne r19,zero,1190 <_fseek_r+0x300> + fd0: b029883a mov r20,r22 + fd4: b804c03a cmpne r2,r23,zero + fd8: 10003f1e bne r2,zero,10d8 <_fseek_r+0x248> + fdc: 8100030b ldhu r4,12(r16) + fe0: 2084000c andi r2,r4,4096 + fe4: 1000a126 beq r2,zero,126c <_fseek_r+0x3dc> + fe8: 81801417 ldw r6,80(r16) + fec: 80c00117 ldw r3,4(r16) + ff0: 81400c17 ldw r5,48(r16) + ff4: 30e3c83a sub r17,r6,r3 + ff8: 28008026 beq r5,zero,11fc <_fseek_r+0x36c> + ffc: 81c00f17 ldw r7,60(r16) + 1000: 89e3c83a sub r17,r17,r7 + 1004: 80800e17 ldw r2,56(r16) + 1008: 81800417 ldw r6,16(r16) + 100c: 88c7883a add r3,r17,r3 + 1010: 1185c83a sub r2,r2,r6 + 1014: 11cf883a add r7,r2,r7 + 1018: 1887c83a sub r3,r3,r2 + 101c: 2088000c andi r2,r4,8192 + 1020: 10003e1e bne r2,zero,111c <_fseek_r+0x28c> + 1024: a0c03d16 blt r20,r3,111c <_fseek_r+0x28c> + 1028: 38c5883a add r2,r7,r3 + 102c: a0803b2e bgeu r20,r2,111c <_fseek_r+0x28c> + 1030: a0c5c83a sub r2,r20,r3 + 1034: 3887c83a sub r3,r7,r2 + 1038: 3085883a add r2,r6,r2 + 103c: 80800015 stw r2,0(r16) + 1040: 80c00115 stw r3,4(r16) + 1044: 28000526 beq r5,zero,105c <_fseek_r+0x1cc> + 1048: 80801004 addi r2,r16,64 + 104c: 28800226 beq r5,r2,1058 <_fseek_r+0x1c8> + 1050: 9009883a mov r4,r18 + 1054: 0000b7c0 call b7c <_free_r> + 1058: 80000c15 stw zero,48(r16) + 105c: 8080030b ldhu r2,12(r16) + 1060: 0009883a mov r4,zero + 1064: 10bff7cc andi r2,r2,65503 + 1068: 8080030d sth r2,12(r16) + 106c: 003fa706 br f0c <_fseek_r+0x7c> + 1070: 9009883a mov r4,r18 + 1074: 800b883a mov r5,r16 + 1078: 000041c0 call 41c <_fflush_r> + 107c: 8100030b ldhu r4,12(r16) + 1080: 2084000c andi r2,r4,4096 + 1084: 10008726 beq r2,zero,12a4 <_fseek_r+0x414> + 1088: 84401417 ldw r17,80(r16) + 108c: 2080010c andi r2,r4,4 + 1090: 1000171e bne r2,zero,10f0 <_fseek_r+0x260> + 1094: 2080020c andi r2,r4,8 + 1098: 10003b26 beq r2,zero,1188 <_fseek_r+0x2f8> + 109c: 80800017 ldw r2,0(r16) + 10a0: 10003926 beq r2,zero,1188 <_fseek_r+0x2f8> + 10a4: 81800417 ldw r6,16(r16) + 10a8: 1185c83a sub r2,r2,r6 + 10ac: 88a3883a add r17,r17,r2 + 10b0: 00001606 br 110c <_fseek_r+0x27c> + 10b4: 00006b40 call 6b4 <__sinit> + 10b8: 8080030b ldhu r2,12(r16) + 10bc: 00c04204 movi r3,264 + 10c0: 1080420c andi r2,r2,264 + 10c4: 10ff871e bne r2,r3,ee4 <_fseek_r+0x54> + 10c8: 9009883a mov r4,r18 + 10cc: 800b883a mov r5,r16 + 10d0: 000041c0 call 41c <_fflush_r> + 10d4: 003f8306 br ee4 <_fseek_r+0x54> + 10d8: 81400c17 ldw r5,48(r16) + 10dc: 28004526 beq r5,zero,11f4 <_fseek_r+0x364> + 10e0: 8100030b ldhu r4,12(r16) + 10e4: 80c00117 ldw r3,4(r16) + 10e8: 81c00f17 ldw r7,60(r16) + 10ec: 003fc506 br 1004 <_fseek_r+0x174> + 10f0: 80c00117 ldw r3,4(r16) + 10f4: 80800c17 ldw r2,48(r16) + 10f8: 88e3c83a sub r17,r17,r3 + 10fc: 10002226 beq r2,zero,1188 <_fseek_r+0x2f8> + 1100: 81c00f17 ldw r7,60(r16) + 1104: 81800417 ldw r6,16(r16) + 1108: 89e3c83a sub r17,r17,r7 + 110c: b46d883a add r22,r22,r17 + 1110: 0027883a mov r19,zero + 1114: 05c00044 movi r23,1 + 1118: 003f8b06 br f48 <_fseek_r+0xb8> + 111c: 80801317 ldw r2,76(r16) + 1120: 81400717 ldw r5,28(r16) + 1124: 9009883a mov r4,r18 + 1128: 0085c83a sub r2,zero,r2 + 112c: a0a2703a and r17,r20,r2 + 1130: 880d883a mov r6,r17 + 1134: 000f883a mov r7,zero + 1138: a83ee83a callr r21 + 113c: 00ffffc4 movi r3,-1 + 1140: 10ff8d26 beq r2,r3,f78 <_fseek_r+0xe8> + 1144: 80800417 ldw r2,16(r16) + 1148: 81400c17 ldw r5,48(r16) + 114c: 80000115 stw zero,4(r16) + 1150: 80800015 stw r2,0(r16) + 1154: 28000526 beq r5,zero,116c <_fseek_r+0x2dc> + 1158: 80801004 addi r2,r16,64 + 115c: 28800226 beq r5,r2,1168 <_fseek_r+0x2d8> + 1160: 9009883a mov r4,r18 + 1164: 0000b7c0 call b7c <_free_r> + 1168: 80000c15 stw zero,48(r16) + 116c: 8080030b ldhu r2,12(r16) + 1170: a463c83a sub r17,r20,r17 + 1174: 10bff7cc andi r2,r2,65503 + 1178: 8080030d sth r2,12(r16) + 117c: 88000c1e bne r17,zero,11b0 <_fseek_r+0x320> + 1180: 0009883a mov r4,zero + 1184: 003f6106 br f0c <_fseek_r+0x7c> + 1188: 81800417 ldw r6,16(r16) + 118c: 003fdf06 br 110c <_fseek_r+0x27c> + 1190: 8140038f ldh r5,14(r16) + 1194: 9009883a mov r4,r18 + 1198: d80d883a mov r6,sp + 119c: 00012f00 call 12f0 <_fstat_r> + 11a0: 103f751e bne r2,zero,f78 <_fseek_r+0xe8> + 11a4: d8800417 ldw r2,16(sp) + 11a8: b0a9883a add r20,r22,r2 + 11ac: 003f8906 br fd4 <_fseek_r+0x144> + 11b0: 9009883a mov r4,r18 + 11b4: 800b883a mov r5,r16 + 11b8: 00020e00 call 20e0 <__srefill_r> + 11bc: 103f6e1e bne r2,zero,f78 <_fseek_r+0xe8> + 11c0: 80c00117 ldw r3,4(r16) + 11c4: 1c7f6c36 bltu r3,r17,f78 <_fseek_r+0xe8> + 11c8: 80800017 ldw r2,0(r16) + 11cc: 1c47c83a sub r3,r3,r17 + 11d0: 0009883a mov r4,zero + 11d4: 1445883a add r2,r2,r17 + 11d8: 80c00115 stw r3,4(r16) + 11dc: 80800015 stw r2,0(r16) + 11e0: 003f4a06 br f0c <_fseek_r+0x7c> + 11e4: 9009883a mov r4,r18 + 11e8: 800b883a mov r5,r16 + 11ec: 00015d00 call 15d0 <__smakebuf_r> + 11f0: 003f5606 br f4c <_fseek_r+0xbc> + 11f4: 8100030b ldhu r4,12(r16) + 11f8: 80c00117 ldw r3,4(r16) + 11fc: 80800017 ldw r2,0(r16) + 1200: 81800417 ldw r6,16(r16) + 1204: 1185c83a sub r2,r2,r6 + 1208: 10cf883a add r7,r2,r3 + 120c: 8887c83a sub r3,r17,r2 + 1210: 003f8206 br 101c <_fseek_r+0x18c> + 1214: 81400717 ldw r5,28(r16) + 1218: b00d883a mov r6,r22 + 121c: 980f883a mov r7,r19 + 1220: 9009883a mov r4,r18 + 1224: a83ee83a callr r21 + 1228: 00ffffc4 movi r3,-1 + 122c: 10ff5626 beq r2,r3,f88 <_fseek_r+0xf8> + 1230: 81400c17 ldw r5,48(r16) + 1234: 28000526 beq r5,zero,124c <_fseek_r+0x3bc> + 1238: 80801004 addi r2,r16,64 + 123c: 28800226 beq r5,r2,1248 <_fseek_r+0x3b8> + 1240: 9009883a mov r4,r18 + 1244: 0000b7c0 call b7c <_free_r> + 1248: 80000c15 stw zero,48(r16) + 124c: 8080030b ldhu r2,12(r16) + 1250: 80c00417 ldw r3,16(r16) + 1254: 0009883a mov r4,zero + 1258: 10bdf7cc andi r2,r2,63455 + 125c: 8080030d sth r2,12(r16) + 1260: 80c00015 stw r3,0(r16) + 1264: 80000115 stw zero,4(r16) + 1268: 003f2806 br f0c <_fseek_r+0x7c> + 126c: 81400717 ldw r5,28(r16) + 1270: 000d883a mov r6,zero + 1274: 9009883a mov r4,r18 + 1278: 01c00044 movi r7,1 + 127c: a83ee83a callr r21 + 1280: 100d883a mov r6,r2 + 1284: 00bfffc4 movi r2,-1 + 1288: 30bf3b26 beq r6,r2,f78 <_fseek_r+0xe8> + 128c: 8100030b ldhu r4,12(r16) + 1290: 003f5606 br fec <_fseek_r+0x15c> + 1294: 00800744 movi r2,29 + 1298: 013fffc4 movi r4,-1 + 129c: 90800015 stw r2,0(r18) + 12a0: 003f1a06 br f0c <_fseek_r+0x7c> + 12a4: 81400717 ldw r5,28(r16) + 12a8: 980f883a mov r7,r19 + 12ac: 9009883a mov r4,r18 + 12b0: 000d883a mov r6,zero + 12b4: a83ee83a callr r21 + 12b8: 1023883a mov r17,r2 + 12bc: 00bfffc4 movi r2,-1 + 12c0: 88bf3126 beq r17,r2,f88 <_fseek_r+0xf8> + 12c4: 8100030b ldhu r4,12(r16) + 12c8: 003f7006 br 108c <_fseek_r+0x1fc> + +000012cc : + 12cc: 00800074 movhi r2,1 + 12d0: 1080b204 addi r2,r2,712 + 12d4: 2013883a mov r9,r4 + 12d8: 11000017 ldw r4,0(r2) + 12dc: 2805883a mov r2,r5 + 12e0: 300f883a mov r7,r6 + 12e4: 480b883a mov r5,r9 + 12e8: 100d883a mov r6,r2 + 12ec: 0000e901 jmpi e90 <_fseek_r> + +000012f0 <_fstat_r>: + 12f0: defffd04 addi sp,sp,-12 + 12f4: dc000015 stw r16,0(sp) + 12f8: 04000074 movhi r16,1 + 12fc: 8407a504 addi r16,r16,7828 + 1300: dc400115 stw r17,4(sp) + 1304: 80000015 stw zero,0(r16) + 1308: 2023883a mov r17,r4 + 130c: 2809883a mov r4,r5 + 1310: 300b883a mov r5,r6 + 1314: dfc00215 stw ra,8(sp) + 1318: 000a8440 call a844 + 131c: 1007883a mov r3,r2 + 1320: 00bfffc4 movi r2,-1 + 1324: 18800626 beq r3,r2,1340 <_fstat_r+0x50> + 1328: 1805883a mov r2,r3 + 132c: dfc00217 ldw ra,8(sp) + 1330: dc400117 ldw r17,4(sp) + 1334: dc000017 ldw r16,0(sp) + 1338: dec00304 addi sp,sp,12 + 133c: f800283a ret + 1340: 80800017 ldw r2,0(r16) + 1344: 103ff826 beq r2,zero,1328 <_fstat_r+0x38> + 1348: 88800015 stw r2,0(r17) + 134c: 1805883a mov r2,r3 + 1350: dfc00217 ldw ra,8(sp) + 1354: dc400117 ldw r17,4(sp) + 1358: dc000017 ldw r16,0(sp) + 135c: dec00304 addi sp,sp,12 + 1360: f800283a ret + +00001364 <_fwalk_reent>: + 1364: defff704 addi sp,sp,-36 + 1368: dcc00315 stw r19,12(sp) + 136c: 24c0b804 addi r19,r4,736 + 1370: dd800615 stw r22,24(sp) + 1374: dd400515 stw r21,20(sp) + 1378: dfc00815 stw ra,32(sp) + 137c: ddc00715 stw r23,28(sp) + 1380: dd000415 stw r20,16(sp) + 1384: dc800215 stw r18,8(sp) + 1388: dc400115 stw r17,4(sp) + 138c: dc000015 stw r16,0(sp) + 1390: 202b883a mov r21,r4 + 1394: 282d883a mov r22,r5 + 1398: 00006a40 call 6a4 <__sfp_lock_acquire> + 139c: 98002126 beq r19,zero,1424 <_fwalk_reent+0xc0> + 13a0: 002f883a mov r23,zero + 13a4: 9c800117 ldw r18,4(r19) + 13a8: 9c000217 ldw r16,8(r19) + 13ac: 90bfffc4 addi r2,r18,-1 + 13b0: 10000d16 blt r2,zero,13e8 <_fwalk_reent+0x84> + 13b4: 0023883a mov r17,zero + 13b8: 053fffc4 movi r20,-1 + 13bc: 8080030f ldh r2,12(r16) + 13c0: 8c400044 addi r17,r17,1 + 13c4: 10000626 beq r2,zero,13e0 <_fwalk_reent+0x7c> + 13c8: 8080038f ldh r2,14(r16) + 13cc: 800b883a mov r5,r16 + 13d0: a809883a mov r4,r21 + 13d4: 15000226 beq r2,r20,13e0 <_fwalk_reent+0x7c> + 13d8: b03ee83a callr r22 + 13dc: b8aeb03a or r23,r23,r2 + 13e0: 84001704 addi r16,r16,92 + 13e4: 947ff51e bne r18,r17,13bc <_fwalk_reent+0x58> + 13e8: 9cc00017 ldw r19,0(r19) + 13ec: 983fed1e bne r19,zero,13a4 <_fwalk_reent+0x40> + 13f0: 00006a80 call 6a8 <__sfp_lock_release> + 13f4: b805883a mov r2,r23 + 13f8: dfc00817 ldw ra,32(sp) + 13fc: ddc00717 ldw r23,28(sp) + 1400: dd800617 ldw r22,24(sp) + 1404: dd400517 ldw r21,20(sp) + 1408: dd000417 ldw r20,16(sp) + 140c: dcc00317 ldw r19,12(sp) + 1410: dc800217 ldw r18,8(sp) + 1414: dc400117 ldw r17,4(sp) + 1418: dc000017 ldw r16,0(sp) + 141c: dec00904 addi sp,sp,36 + 1420: f800283a ret + 1424: 002f883a mov r23,zero + 1428: 003ff106 br 13f0 <_fwalk_reent+0x8c> + +0000142c <_fwalk>: + 142c: defff804 addi sp,sp,-32 + 1430: dcc00315 stw r19,12(sp) + 1434: 24c0b804 addi r19,r4,736 + 1438: dd400515 stw r21,20(sp) + 143c: dfc00715 stw ra,28(sp) + 1440: dd800615 stw r22,24(sp) + 1444: dd000415 stw r20,16(sp) + 1448: dc800215 stw r18,8(sp) + 144c: dc400115 stw r17,4(sp) + 1450: dc000015 stw r16,0(sp) + 1454: 282b883a mov r21,r5 + 1458: 00006a40 call 6a4 <__sfp_lock_acquire> + 145c: 98001f26 beq r19,zero,14dc <_fwalk+0xb0> + 1460: 002d883a mov r22,zero + 1464: 9c800117 ldw r18,4(r19) + 1468: 9c000217 ldw r16,8(r19) + 146c: 90bfffc4 addi r2,r18,-1 + 1470: 10000c16 blt r2,zero,14a4 <_fwalk+0x78> + 1474: 0023883a mov r17,zero + 1478: 053fffc4 movi r20,-1 + 147c: 8080030f ldh r2,12(r16) + 1480: 8c400044 addi r17,r17,1 + 1484: 10000526 beq r2,zero,149c <_fwalk+0x70> + 1488: 8080038f ldh r2,14(r16) + 148c: 8009883a mov r4,r16 + 1490: 15000226 beq r2,r20,149c <_fwalk+0x70> + 1494: a83ee83a callr r21 + 1498: b0acb03a or r22,r22,r2 + 149c: 84001704 addi r16,r16,92 + 14a0: 947ff61e bne r18,r17,147c <_fwalk+0x50> + 14a4: 9cc00017 ldw r19,0(r19) + 14a8: 983fee1e bne r19,zero,1464 <_fwalk+0x38> + 14ac: 00006a80 call 6a8 <__sfp_lock_release> + 14b0: b005883a mov r2,r22 + 14b4: dfc00717 ldw ra,28(sp) + 14b8: dd800617 ldw r22,24(sp) + 14bc: dd400517 ldw r21,20(sp) + 14c0: dd000417 ldw r20,16(sp) + 14c4: dcc00317 ldw r19,12(sp) + 14c8: dc800217 ldw r18,8(sp) + 14cc: dc400117 ldw r17,4(sp) + 14d0: dc000017 ldw r16,0(sp) + 14d4: dec00804 addi sp,sp,32 + 14d8: f800283a ret + 14dc: 002d883a mov r22,zero + 14e0: 003ff206 br 14ac <_fwalk+0x80> + +000014e4 <_fwrite_r>: + 14e4: defff604 addi sp,sp,-40 + 14e8: dc000515 stw r16,20(sp) + 14ec: d9400015 stw r5,0(sp) + 14f0: 2021883a mov r16,r4 + 14f4: 300b883a mov r5,r6 + 14f8: 3809883a mov r4,r7 + 14fc: dcc00815 stw r19,32(sp) + 1500: dc800715 stw r18,28(sp) + 1504: dc400615 stw r17,24(sp) + 1508: dfc00915 stw ra,36(sp) + 150c: 3825883a mov r18,r7 + 1510: 3027883a mov r19,r6 + 1514: 0009fc80 call 9fc8 <__mulsi3> + 1518: 1023883a mov r17,r2 + 151c: 00800044 movi r2,1 + 1520: d8800315 stw r2,12(sp) + 1524: dc400115 stw r17,4(sp) + 1528: dc400415 stw r17,16(sp) + 152c: dec00215 stw sp,8(sp) + 1530: 80000326 beq r16,zero,1540 <_fwrite_r+0x5c> + 1534: 80800e17 ldw r2,56(r16) + 1538: 8009883a mov r4,r16 + 153c: 10001226 beq r2,zero,1588 <_fwrite_r+0xa4> + 1540: d9400a17 ldw r5,40(sp) + 1544: 8009883a mov r4,r16 + 1548: d9800204 addi r6,sp,8 + 154c: 0005eec0 call 5eec <__sfvwrite_r> + 1550: 980b883a mov r5,r19 + 1554: 10000426 beq r2,zero,1568 <_fwrite_r+0x84> + 1558: d9000417 ldw r4,16(sp) + 155c: 8909c83a sub r4,r17,r4 + 1560: 0009fb80 call 9fb8 <__udivsi3> + 1564: 1025883a mov r18,r2 + 1568: 9005883a mov r2,r18 + 156c: dfc00917 ldw ra,36(sp) + 1570: dcc00817 ldw r19,32(sp) + 1574: dc800717 ldw r18,28(sp) + 1578: dc400617 ldw r17,24(sp) + 157c: dc000517 ldw r16,20(sp) + 1580: dec00a04 addi sp,sp,40 + 1584: f800283a ret + 1588: 00006b40 call 6b4 <__sinit> + 158c: 003fec06 br 1540 <_fwrite_r+0x5c> + +00001590 : + 1590: 00800074 movhi r2,1 + 1594: 1080b204 addi r2,r2,712 + 1598: 2017883a mov r11,r4 + 159c: 11000017 ldw r4,0(r2) + 15a0: defffe04 addi sp,sp,-8 + 15a4: 3013883a mov r9,r6 + 15a8: 2805883a mov r2,r5 + 15ac: d9c00015 stw r7,0(sp) + 15b0: 580b883a mov r5,r11 + 15b4: 100d883a mov r6,r2 + 15b8: 480f883a mov r7,r9 + 15bc: dfc00115 stw ra,4(sp) + 15c0: 00014e40 call 14e4 <_fwrite_r> + 15c4: dfc00117 ldw ra,4(sp) + 15c8: dec00204 addi sp,sp,8 + 15cc: f800283a ret + +000015d0 <__smakebuf_r>: + 15d0: 2880030b ldhu r2,12(r5) + 15d4: deffed04 addi sp,sp,-76 + 15d8: dc401015 stw r17,64(sp) + 15dc: 1080008c andi r2,r2,2 + 15e0: dc000f15 stw r16,60(sp) + 15e4: dfc01215 stw ra,72(sp) + 15e8: dc801115 stw r18,68(sp) + 15ec: 2821883a mov r16,r5 + 15f0: 2023883a mov r17,r4 + 15f4: 10000b26 beq r2,zero,1624 <__smakebuf_r+0x54> + 15f8: 28c010c4 addi r3,r5,67 + 15fc: 00800044 movi r2,1 + 1600: 28800515 stw r2,20(r5) + 1604: 28c00415 stw r3,16(r5) + 1608: 28c00015 stw r3,0(r5) + 160c: dfc01217 ldw ra,72(sp) + 1610: dc801117 ldw r18,68(sp) + 1614: dc401017 ldw r17,64(sp) + 1618: dc000f17 ldw r16,60(sp) + 161c: dec01304 addi sp,sp,76 + 1620: f800283a ret + 1624: 2940038f ldh r5,14(r5) + 1628: 28002116 blt r5,zero,16b0 <__smakebuf_r+0xe0> + 162c: d80d883a mov r6,sp + 1630: 00012f00 call 12f0 <_fstat_r> + 1634: 10001e16 blt r2,zero,16b0 <__smakebuf_r+0xe0> + 1638: d8800117 ldw r2,4(sp) + 163c: 00e00014 movui r3,32768 + 1640: 113c000c andi r4,r2,61440 + 1644: 20c03126 beq r4,r3,170c <__smakebuf_r+0x13c> + 1648: 8080030b ldhu r2,12(r16) + 164c: 00c80004 movi r3,8192 + 1650: 10820014 ori r2,r2,2048 + 1654: 8080030d sth r2,12(r16) + 1658: 20c01e26 beq r4,r3,16d4 <__smakebuf_r+0x104> + 165c: 04810004 movi r18,1024 + 1660: 8809883a mov r4,r17 + 1664: 900b883a mov r5,r18 + 1668: 00017640 call 1764 <_malloc_r> + 166c: 1009883a mov r4,r2 + 1670: 10003126 beq r2,zero,1738 <__smakebuf_r+0x168> + 1674: 80c0030b ldhu r3,12(r16) + 1678: 00800034 movhi r2,0 + 167c: 1081e604 addi r2,r2,1944 + 1680: 88800f15 stw r2,60(r17) + 1684: 18c02014 ori r3,r3,128 + 1688: 84800515 stw r18,20(r16) + 168c: 80c0030d sth r3,12(r16) + 1690: 81000415 stw r4,16(r16) + 1694: 81000015 stw r4,0(r16) + 1698: dfc01217 ldw ra,72(sp) + 169c: dc801117 ldw r18,68(sp) + 16a0: dc401017 ldw r17,64(sp) + 16a4: dc000f17 ldw r16,60(sp) + 16a8: dec01304 addi sp,sp,76 + 16ac: f800283a ret + 16b0: 80c0030b ldhu r3,12(r16) + 16b4: 1880200c andi r2,r3,128 + 16b8: 10000426 beq r2,zero,16cc <__smakebuf_r+0xfc> + 16bc: 04801004 movi r18,64 + 16c0: 18820014 ori r2,r3,2048 + 16c4: 8080030d sth r2,12(r16) + 16c8: 003fe506 br 1660 <__smakebuf_r+0x90> + 16cc: 04810004 movi r18,1024 + 16d0: 003ffb06 br 16c0 <__smakebuf_r+0xf0> + 16d4: 8140038f ldh r5,14(r16) + 16d8: 8809883a mov r4,r17 + 16dc: 00063880 call 6388 <_isatty_r> + 16e0: 103fde26 beq r2,zero,165c <__smakebuf_r+0x8c> + 16e4: 8080030b ldhu r2,12(r16) + 16e8: 80c010c4 addi r3,r16,67 + 16ec: 04810004 movi r18,1024 + 16f0: 10800054 ori r2,r2,1 + 16f4: 8080030d sth r2,12(r16) + 16f8: 00800044 movi r2,1 + 16fc: 80c00415 stw r3,16(r16) + 1700: 80800515 stw r2,20(r16) + 1704: 80c00015 stw r3,0(r16) + 1708: 003fd506 br 1660 <__smakebuf_r+0x90> + 170c: 80c00a17 ldw r3,40(r16) + 1710: 00800034 movhi r2,0 + 1714: 1088ce04 addi r2,r2,9016 + 1718: 18bfcb1e bne r3,r2,1648 <__smakebuf_r+0x78> + 171c: 8080030b ldhu r2,12(r16) + 1720: 00c10004 movi r3,1024 + 1724: 1825883a mov r18,r3 + 1728: 10c4b03a or r2,r2,r3 + 172c: 8080030d sth r2,12(r16) + 1730: 80c01315 stw r3,76(r16) + 1734: 003fca06 br 1660 <__smakebuf_r+0x90> + 1738: 8100030b ldhu r4,12(r16) + 173c: 2080800c andi r2,r4,512 + 1740: 103fb21e bne r2,zero,160c <__smakebuf_r+0x3c> + 1744: 80c010c4 addi r3,r16,67 + 1748: 21000094 ori r4,r4,2 + 174c: 00800044 movi r2,1 + 1750: 80800515 stw r2,20(r16) + 1754: 8100030d sth r4,12(r16) + 1758: 80c00415 stw r3,16(r16) + 175c: 80c00015 stw r3,0(r16) + 1760: 003faa06 br 160c <__smakebuf_r+0x3c> + +00001764 <_malloc_r>: + 1764: defff604 addi sp,sp,-40 + 1768: 28c002c4 addi r3,r5,11 + 176c: 00800584 movi r2,22 + 1770: dc800215 stw r18,8(sp) + 1774: dfc00915 stw ra,36(sp) + 1778: df000815 stw fp,32(sp) + 177c: ddc00715 stw r23,28(sp) + 1780: dd800615 stw r22,24(sp) + 1784: dd400515 stw r21,20(sp) + 1788: dd000415 stw r20,16(sp) + 178c: dcc00315 stw r19,12(sp) + 1790: dc400115 stw r17,4(sp) + 1794: dc000015 stw r16,0(sp) + 1798: 2025883a mov r18,r4 + 179c: 10c01236 bltu r2,r3,17e8 <_malloc_r+0x84> + 17a0: 04400404 movi r17,16 + 17a4: 8940142e bgeu r17,r5,17f8 <_malloc_r+0x94> + 17a8: 00800304 movi r2,12 + 17ac: 0007883a mov r3,zero + 17b0: 90800015 stw r2,0(r18) + 17b4: 1805883a mov r2,r3 + 17b8: dfc00917 ldw ra,36(sp) + 17bc: df000817 ldw fp,32(sp) + 17c0: ddc00717 ldw r23,28(sp) + 17c4: dd800617 ldw r22,24(sp) + 17c8: dd400517 ldw r21,20(sp) + 17cc: dd000417 ldw r20,16(sp) + 17d0: dcc00317 ldw r19,12(sp) + 17d4: dc800217 ldw r18,8(sp) + 17d8: dc400117 ldw r17,4(sp) + 17dc: dc000017 ldw r16,0(sp) + 17e0: dec00a04 addi sp,sp,40 + 17e4: f800283a ret + 17e8: 00bffe04 movi r2,-8 + 17ec: 18a2703a and r17,r3,r2 + 17f0: 883fed16 blt r17,zero,17a8 <_malloc_r+0x44> + 17f4: 897fec36 bltu r17,r5,17a8 <_malloc_r+0x44> + 17f8: 9009883a mov r4,r18 + 17fc: 000ad4c0 call ad4c <__malloc_lock> + 1800: 00807dc4 movi r2,503 + 1804: 14402b2e bgeu r2,r17,18b4 <_malloc_r+0x150> + 1808: 8806d27a srli r3,r17,9 + 180c: 18003f1e bne r3,zero,190c <_malloc_r+0x1a8> + 1810: 880cd0fa srli r6,r17,3 + 1814: 300490fa slli r2,r6,3 + 1818: 02c00074 movhi r11,1 + 181c: 5afae304 addi r11,r11,-5236 + 1820: 12cb883a add r5,r2,r11 + 1824: 2c000317 ldw r16,12(r5) + 1828: 580f883a mov r7,r11 + 182c: 2c00041e bne r5,r16,1840 <_malloc_r+0xdc> + 1830: 00000a06 br 185c <_malloc_r+0xf8> + 1834: 1800860e bge r3,zero,1a50 <_malloc_r+0x2ec> + 1838: 84000317 ldw r16,12(r16) + 183c: 2c000726 beq r5,r16,185c <_malloc_r+0xf8> + 1840: 80800117 ldw r2,4(r16) + 1844: 00ffff04 movi r3,-4 + 1848: 10c8703a and r4,r2,r3 + 184c: 2447c83a sub r3,r4,r17 + 1850: 008003c4 movi r2,15 + 1854: 10fff70e bge r2,r3,1834 <_malloc_r+0xd0> + 1858: 31bfffc4 addi r6,r6,-1 + 185c: 32400044 addi r9,r6,1 + 1860: 02800074 movhi r10,1 + 1864: 52bae504 addi r10,r10,-5228 + 1868: 54000217 ldw r16,8(r10) + 186c: 8280a026 beq r16,r10,1af0 <_malloc_r+0x38c> + 1870: 80800117 ldw r2,4(r16) + 1874: 00ffff04 movi r3,-4 + 1878: 10ca703a and r5,r2,r3 + 187c: 2c4dc83a sub r6,r5,r17 + 1880: 008003c4 movi r2,15 + 1884: 11808316 blt r2,r6,1a94 <_malloc_r+0x330> + 1888: 52800315 stw r10,12(r10) + 188c: 52800215 stw r10,8(r10) + 1890: 30002916 blt r6,zero,1938 <_malloc_r+0x1d4> + 1894: 8147883a add r3,r16,r5 + 1898: 18800117 ldw r2,4(r3) + 189c: 9009883a mov r4,r18 + 18a0: 10800054 ori r2,r2,1 + 18a4: 18800115 stw r2,4(r3) + 18a8: 000ad6c0 call ad6c <__malloc_unlock> + 18ac: 80c00204 addi r3,r16,8 + 18b0: 003fc006 br 17b4 <_malloc_r+0x50> + 18b4: 02c00074 movhi r11,1 + 18b8: 5afae304 addi r11,r11,-5236 + 18bc: 8ac5883a add r2,r17,r11 + 18c0: 14000317 ldw r16,12(r2) + 18c4: 580f883a mov r7,r11 + 18c8: 8806d0fa srli r3,r17,3 + 18cc: 14006c26 beq r2,r16,1a80 <_malloc_r+0x31c> + 18d0: 80c00117 ldw r3,4(r16) + 18d4: 00bfff04 movi r2,-4 + 18d8: 81800317 ldw r6,12(r16) + 18dc: 1886703a and r3,r3,r2 + 18e0: 80c7883a add r3,r16,r3 + 18e4: 18800117 ldw r2,4(r3) + 18e8: 81400217 ldw r5,8(r16) + 18ec: 9009883a mov r4,r18 + 18f0: 10800054 ori r2,r2,1 + 18f4: 18800115 stw r2,4(r3) + 18f8: 31400215 stw r5,8(r6) + 18fc: 29800315 stw r6,12(r5) + 1900: 000ad6c0 call ad6c <__malloc_unlock> + 1904: 80c00204 addi r3,r16,8 + 1908: 003faa06 br 17b4 <_malloc_r+0x50> + 190c: 00800104 movi r2,4 + 1910: 10c0052e bgeu r2,r3,1928 <_malloc_r+0x1c4> + 1914: 00800504 movi r2,20 + 1918: 10c07836 bltu r2,r3,1afc <_malloc_r+0x398> + 191c: 198016c4 addi r6,r3,91 + 1920: 300490fa slli r2,r6,3 + 1924: 003fbc06 br 1818 <_malloc_r+0xb4> + 1928: 8804d1ba srli r2,r17,6 + 192c: 11800e04 addi r6,r2,56 + 1930: 300490fa slli r2,r6,3 + 1934: 003fb806 br 1818 <_malloc_r+0xb4> + 1938: 00807fc4 movi r2,511 + 193c: 1140bb36 bltu r2,r5,1c2c <_malloc_r+0x4c8> + 1940: 2806d0fa srli r3,r5,3 + 1944: 573ffe04 addi fp,r10,-8 + 1948: 00800044 movi r2,1 + 194c: 180890fa slli r4,r3,3 + 1950: 1807d0ba srai r3,r3,2 + 1954: e1c00117 ldw r7,4(fp) + 1958: 5909883a add r4,r11,r4 + 195c: 21400217 ldw r5,8(r4) + 1960: 10c4983a sll r2,r2,r3 + 1964: 81000315 stw r4,12(r16) + 1968: 81400215 stw r5,8(r16) + 196c: 388eb03a or r7,r7,r2 + 1970: 2c000315 stw r16,12(r5) + 1974: 24000215 stw r16,8(r4) + 1978: e1c00115 stw r7,4(fp) + 197c: 4807883a mov r3,r9 + 1980: 4800cd16 blt r9,zero,1cb8 <_malloc_r+0x554> + 1984: 1807d0ba srai r3,r3,2 + 1988: 00800044 movi r2,1 + 198c: 10c8983a sll r4,r2,r3 + 1990: 39004436 bltu r7,r4,1aa4 <_malloc_r+0x340> + 1994: 21c4703a and r2,r4,r7 + 1998: 10000a1e bne r2,zero,19c4 <_malloc_r+0x260> + 199c: 2109883a add r4,r4,r4 + 19a0: 00bfff04 movi r2,-4 + 19a4: 4884703a and r2,r9,r2 + 19a8: 3906703a and r3,r7,r4 + 19ac: 12400104 addi r9,r2,4 + 19b0: 1800041e bne r3,zero,19c4 <_malloc_r+0x260> + 19b4: 2109883a add r4,r4,r4 + 19b8: 3904703a and r2,r7,r4 + 19bc: 4a400104 addi r9,r9,4 + 19c0: 103ffc26 beq r2,zero,19b4 <_malloc_r+0x250> + 19c4: 480490fa slli r2,r9,3 + 19c8: 4819883a mov r12,r9 + 19cc: 023fff04 movi r8,-4 + 19d0: 589b883a add r13,r11,r2 + 19d4: 6807883a mov r3,r13 + 19d8: 014003c4 movi r5,15 + 19dc: 1c000317 ldw r16,12(r3) + 19e0: 1c00041e bne r3,r16,19f4 <_malloc_r+0x290> + 19e4: 0000a706 br 1c84 <_malloc_r+0x520> + 19e8: 3000ab0e bge r6,zero,1c98 <_malloc_r+0x534> + 19ec: 84000317 ldw r16,12(r16) + 19f0: 1c00a426 beq r3,r16,1c84 <_malloc_r+0x520> + 19f4: 80800117 ldw r2,4(r16) + 19f8: 1204703a and r2,r2,r8 + 19fc: 144dc83a sub r6,r2,r17 + 1a00: 29bff90e bge r5,r6,19e8 <_malloc_r+0x284> + 1a04: 81000317 ldw r4,12(r16) + 1a08: 80c00217 ldw r3,8(r16) + 1a0c: 89400054 ori r5,r17,1 + 1a10: 8445883a add r2,r16,r17 + 1a14: 20c00215 stw r3,8(r4) + 1a18: 19000315 stw r4,12(r3) + 1a1c: 81400115 stw r5,4(r16) + 1a20: 1187883a add r3,r2,r6 + 1a24: 31000054 ori r4,r6,1 + 1a28: 50800315 stw r2,12(r10) + 1a2c: 50800215 stw r2,8(r10) + 1a30: 19800015 stw r6,0(r3) + 1a34: 11000115 stw r4,4(r2) + 1a38: 12800215 stw r10,8(r2) + 1a3c: 12800315 stw r10,12(r2) + 1a40: 9009883a mov r4,r18 + 1a44: 000ad6c0 call ad6c <__malloc_unlock> + 1a48: 80c00204 addi r3,r16,8 + 1a4c: 003f5906 br 17b4 <_malloc_r+0x50> + 1a50: 8109883a add r4,r16,r4 + 1a54: 20800117 ldw r2,4(r4) + 1a58: 80c00217 ldw r3,8(r16) + 1a5c: 81400317 ldw r5,12(r16) + 1a60: 10800054 ori r2,r2,1 + 1a64: 20800115 stw r2,4(r4) + 1a68: 28c00215 stw r3,8(r5) + 1a6c: 19400315 stw r5,12(r3) + 1a70: 9009883a mov r4,r18 + 1a74: 000ad6c0 call ad6c <__malloc_unlock> + 1a78: 80c00204 addi r3,r16,8 + 1a7c: 003f4d06 br 17b4 <_malloc_r+0x50> + 1a80: 80800204 addi r2,r16,8 + 1a84: 14000317 ldw r16,12(r2) + 1a88: 143f911e bne r2,r16,18d0 <_malloc_r+0x16c> + 1a8c: 1a400084 addi r9,r3,2 + 1a90: 003f7306 br 1860 <_malloc_r+0xfc> + 1a94: 88c00054 ori r3,r17,1 + 1a98: 8445883a add r2,r16,r17 + 1a9c: 80c00115 stw r3,4(r16) + 1aa0: 003fdf06 br 1a20 <_malloc_r+0x2bc> + 1aa4: e4000217 ldw r16,8(fp) + 1aa8: 00bfff04 movi r2,-4 + 1aac: 80c00117 ldw r3,4(r16) + 1ab0: 802d883a mov r22,r16 + 1ab4: 18aa703a and r21,r3,r2 + 1ab8: ac401636 bltu r21,r17,1b14 <_malloc_r+0x3b0> + 1abc: ac49c83a sub r4,r21,r17 + 1ac0: 008003c4 movi r2,15 + 1ac4: 1100130e bge r2,r4,1b14 <_malloc_r+0x3b0> + 1ac8: 88800054 ori r2,r17,1 + 1acc: 8447883a add r3,r16,r17 + 1ad0: 80800115 stw r2,4(r16) + 1ad4: 20800054 ori r2,r4,1 + 1ad8: 18800115 stw r2,4(r3) + 1adc: e0c00215 stw r3,8(fp) + 1ae0: 9009883a mov r4,r18 + 1ae4: 000ad6c0 call ad6c <__malloc_unlock> + 1ae8: 80c00204 addi r3,r16,8 + 1aec: 003f3106 br 17b4 <_malloc_r+0x50> + 1af0: 39c00117 ldw r7,4(r7) + 1af4: 573ffe04 addi fp,r10,-8 + 1af8: 003fa006 br 197c <_malloc_r+0x218> + 1afc: 00801504 movi r2,84 + 1b00: 10c06736 bltu r2,r3,1ca0 <_malloc_r+0x53c> + 1b04: 8804d33a srli r2,r17,12 + 1b08: 11801b84 addi r6,r2,110 + 1b0c: 300490fa slli r2,r6,3 + 1b10: 003f4106 br 1818 <_malloc_r+0xb4> + 1b14: d0a6f417 ldw r2,-25648(gp) + 1b18: d0e00317 ldw r3,-32756(gp) + 1b1c: 053fffc4 movi r20,-1 + 1b20: 10800404 addi r2,r2,16 + 1b24: 88a7883a add r19,r17,r2 + 1b28: 1d000326 beq r3,r20,1b38 <_malloc_r+0x3d4> + 1b2c: 98c3ffc4 addi r3,r19,4095 + 1b30: 00bc0004 movi r2,-4096 + 1b34: 18a6703a and r19,r3,r2 + 1b38: 9009883a mov r4,r18 + 1b3c: 980b883a mov r5,r19 + 1b40: 00022c00 call 22c0 <_sbrk_r> + 1b44: 1009883a mov r4,r2 + 1b48: 15000426 beq r2,r20,1b5c <_malloc_r+0x3f8> + 1b4c: 854b883a add r5,r16,r21 + 1b50: 1029883a mov r20,r2 + 1b54: 11405a2e bgeu r2,r5,1cc0 <_malloc_r+0x55c> + 1b58: 87000c26 beq r16,fp,1b8c <_malloc_r+0x428> + 1b5c: e4000217 ldw r16,8(fp) + 1b60: 80c00117 ldw r3,4(r16) + 1b64: 00bfff04 movi r2,-4 + 1b68: 1884703a and r2,r3,r2 + 1b6c: 14400336 bltu r2,r17,1b7c <_malloc_r+0x418> + 1b70: 1449c83a sub r4,r2,r17 + 1b74: 008003c4 movi r2,15 + 1b78: 113fd316 blt r2,r4,1ac8 <_malloc_r+0x364> + 1b7c: 9009883a mov r4,r18 + 1b80: 000ad6c0 call ad6c <__malloc_unlock> + 1b84: 0007883a mov r3,zero + 1b88: 003f0a06 br 17b4 <_malloc_r+0x50> + 1b8c: 05c00074 movhi r23,1 + 1b90: bdc7b204 addi r23,r23,7880 + 1b94: b8800017 ldw r2,0(r23) + 1b98: 988d883a add r6,r19,r2 + 1b9c: b9800015 stw r6,0(r23) + 1ba0: d0e00317 ldw r3,-32756(gp) + 1ba4: 00bfffc4 movi r2,-1 + 1ba8: 18808e26 beq r3,r2,1de4 <_malloc_r+0x680> + 1bac: 2145c83a sub r2,r4,r5 + 1bb0: 3085883a add r2,r6,r2 + 1bb4: b8800015 stw r2,0(r23) + 1bb8: 20c001cc andi r3,r4,7 + 1bbc: 18005f1e bne r3,zero,1d3c <_malloc_r+0x5d8> + 1bc0: 000b883a mov r5,zero + 1bc4: a4c5883a add r2,r20,r19 + 1bc8: 1083ffcc andi r2,r2,4095 + 1bcc: 00c40004 movi r3,4096 + 1bd0: 1887c83a sub r3,r3,r2 + 1bd4: 28e7883a add r19,r5,r3 + 1bd8: 9009883a mov r4,r18 + 1bdc: 980b883a mov r5,r19 + 1be0: 00022c00 call 22c0 <_sbrk_r> + 1be4: 1007883a mov r3,r2 + 1be8: 00bfffc4 movi r2,-1 + 1bec: 18807a26 beq r3,r2,1dd8 <_malloc_r+0x674> + 1bf0: 1d05c83a sub r2,r3,r20 + 1bf4: 9885883a add r2,r19,r2 + 1bf8: 10c00054 ori r3,r2,1 + 1bfc: b8800017 ldw r2,0(r23) + 1c00: a021883a mov r16,r20 + 1c04: a0c00115 stw r3,4(r20) + 1c08: 9885883a add r2,r19,r2 + 1c0c: b8800015 stw r2,0(r23) + 1c10: e5000215 stw r20,8(fp) + 1c14: b7003626 beq r22,fp,1cf0 <_malloc_r+0x58c> + 1c18: 018003c4 movi r6,15 + 1c1c: 35404b36 bltu r6,r21,1d4c <_malloc_r+0x5e8> + 1c20: 00800044 movi r2,1 + 1c24: a0800115 stw r2,4(r20) + 1c28: 003fcd06 br 1b60 <_malloc_r+0x3fc> + 1c2c: 2808d27a srli r4,r5,9 + 1c30: 2000371e bne r4,zero,1d10 <_malloc_r+0x5ac> + 1c34: 2808d0fa srli r4,r5,3 + 1c38: 200690fa slli r3,r4,3 + 1c3c: 1ad1883a add r8,r3,r11 + 1c40: 41800217 ldw r6,8(r8) + 1c44: 41805b26 beq r8,r6,1db4 <_malloc_r+0x650> + 1c48: 30800117 ldw r2,4(r6) + 1c4c: 00ffff04 movi r3,-4 + 1c50: 10c4703a and r2,r2,r3 + 1c54: 2880022e bgeu r5,r2,1c60 <_malloc_r+0x4fc> + 1c58: 31800217 ldw r6,8(r6) + 1c5c: 41bffa1e bne r8,r6,1c48 <_malloc_r+0x4e4> + 1c60: 32000317 ldw r8,12(r6) + 1c64: 39c00117 ldw r7,4(r7) + 1c68: 82000315 stw r8,12(r16) + 1c6c: 81800215 stw r6,8(r16) + 1c70: 07000074 movhi fp,1 + 1c74: e73ae304 addi fp,fp,-5236 + 1c78: 34000315 stw r16,12(r6) + 1c7c: 44000215 stw r16,8(r8) + 1c80: 003f3e06 br 197c <_malloc_r+0x218> + 1c84: 63000044 addi r12,r12,1 + 1c88: 608000cc andi r2,r12,3 + 1c8c: 10005d26 beq r2,zero,1e04 <_malloc_r+0x6a0> + 1c90: 18c00204 addi r3,r3,8 + 1c94: 003f5106 br 19dc <_malloc_r+0x278> + 1c98: 8089883a add r4,r16,r2 + 1c9c: 003f6d06 br 1a54 <_malloc_r+0x2f0> + 1ca0: 00805504 movi r2,340 + 1ca4: 10c02036 bltu r2,r3,1d28 <_malloc_r+0x5c4> + 1ca8: 8804d3fa srli r2,r17,15 + 1cac: 11801dc4 addi r6,r2,119 + 1cb0: 300490fa slli r2,r6,3 + 1cb4: 003ed806 br 1818 <_malloc_r+0xb4> + 1cb8: 48c000c4 addi r3,r9,3 + 1cbc: 003f3106 br 1984 <_malloc_r+0x220> + 1cc0: 05c00074 movhi r23,1 + 1cc4: bdc7b204 addi r23,r23,7880 + 1cc8: b8800017 ldw r2,0(r23) + 1ccc: 988d883a add r6,r19,r2 + 1cd0: b9800015 stw r6,0(r23) + 1cd4: 293fb21e bne r5,r4,1ba0 <_malloc_r+0x43c> + 1cd8: 2083ffcc andi r2,r4,4095 + 1cdc: 103fb01e bne r2,zero,1ba0 <_malloc_r+0x43c> + 1ce0: e4000217 ldw r16,8(fp) + 1ce4: 9d45883a add r2,r19,r21 + 1ce8: 10800054 ori r2,r2,1 + 1cec: 80800115 stw r2,4(r16) + 1cf0: b8c00017 ldw r3,0(r23) + 1cf4: d0a6f517 ldw r2,-25644(gp) + 1cf8: 10c0012e bgeu r2,r3,1d00 <_malloc_r+0x59c> + 1cfc: d0e6f515 stw r3,-25644(gp) + 1d00: d0a6f617 ldw r2,-25640(gp) + 1d04: 10ff962e bgeu r2,r3,1b60 <_malloc_r+0x3fc> + 1d08: d0e6f615 stw r3,-25640(gp) + 1d0c: 003f9406 br 1b60 <_malloc_r+0x3fc> + 1d10: 00800104 movi r2,4 + 1d14: 11001e36 bltu r2,r4,1d90 <_malloc_r+0x62c> + 1d18: 2804d1ba srli r2,r5,6 + 1d1c: 11000e04 addi r4,r2,56 + 1d20: 200690fa slli r3,r4,3 + 1d24: 003fc506 br 1c3c <_malloc_r+0x4d8> + 1d28: 00815504 movi r2,1364 + 1d2c: 10c01d2e bgeu r2,r3,1da4 <_malloc_r+0x640> + 1d30: 01801f84 movi r6,126 + 1d34: 0080fc04 movi r2,1008 + 1d38: 003eb706 br 1818 <_malloc_r+0xb4> + 1d3c: 00800204 movi r2,8 + 1d40: 10cbc83a sub r5,r2,r3 + 1d44: 2169883a add r20,r4,r5 + 1d48: 003f9e06 br 1bc4 <_malloc_r+0x460> + 1d4c: 00bffe04 movi r2,-8 + 1d50: a93ffd04 addi r4,r21,-12 + 1d54: 2088703a and r4,r4,r2 + 1d58: b10b883a add r5,r22,r4 + 1d5c: 00c00144 movi r3,5 + 1d60: 28c00215 stw r3,8(r5) + 1d64: 28c00115 stw r3,4(r5) + 1d68: b0800117 ldw r2,4(r22) + 1d6c: 1080004c andi r2,r2,1 + 1d70: 2084b03a or r2,r4,r2 + 1d74: b0800115 stw r2,4(r22) + 1d78: 313fdd2e bgeu r6,r4,1cf0 <_malloc_r+0x58c> + 1d7c: b1400204 addi r5,r22,8 + 1d80: 9009883a mov r4,r18 + 1d84: 0000b7c0 call b7c <_free_r> + 1d88: e4000217 ldw r16,8(fp) + 1d8c: 003fd806 br 1cf0 <_malloc_r+0x58c> + 1d90: 00800504 movi r2,20 + 1d94: 11001536 bltu r2,r4,1dec <_malloc_r+0x688> + 1d98: 210016c4 addi r4,r4,91 + 1d9c: 200690fa slli r3,r4,3 + 1da0: 003fa606 br 1c3c <_malloc_r+0x4d8> + 1da4: 8804d4ba srli r2,r17,18 + 1da8: 11801f04 addi r6,r2,124 + 1dac: 300490fa slli r2,r6,3 + 1db0: 003e9906 br 1818 <_malloc_r+0xb4> + 1db4: 2009d0ba srai r4,r4,2 + 1db8: 01400074 movhi r5,1 + 1dbc: 297ae304 addi r5,r5,-5236 + 1dc0: 00c00044 movi r3,1 + 1dc4: 28800117 ldw r2,4(r5) + 1dc8: 1906983a sll r3,r3,r4 + 1dcc: 10c4b03a or r2,r2,r3 + 1dd0: 28800115 stw r2,4(r5) + 1dd4: 003fa306 br 1c64 <_malloc_r+0x500> + 1dd8: 0027883a mov r19,zero + 1ddc: 00c00044 movi r3,1 + 1de0: 003f8606 br 1bfc <_malloc_r+0x498> + 1de4: d1200315 stw r4,-32756(gp) + 1de8: 003f7306 br 1bb8 <_malloc_r+0x454> + 1dec: 00801504 movi r2,84 + 1df0: 11001936 bltu r2,r4,1e58 <_malloc_r+0x6f4> + 1df4: 2804d33a srli r2,r5,12 + 1df8: 11001b84 addi r4,r2,110 + 1dfc: 200690fa slli r3,r4,3 + 1e00: 003f8e06 br 1c3c <_malloc_r+0x4d8> + 1e04: 480b883a mov r5,r9 + 1e08: 6807883a mov r3,r13 + 1e0c: 288000cc andi r2,r5,3 + 1e10: 18fffe04 addi r3,r3,-8 + 1e14: 297fffc4 addi r5,r5,-1 + 1e18: 10001526 beq r2,zero,1e70 <_malloc_r+0x70c> + 1e1c: 18800217 ldw r2,8(r3) + 1e20: 10fffa26 beq r2,r3,1e0c <_malloc_r+0x6a8> + 1e24: 2109883a add r4,r4,r4 + 1e28: 393f1e36 bltu r7,r4,1aa4 <_malloc_r+0x340> + 1e2c: 203f1d26 beq r4,zero,1aa4 <_malloc_r+0x340> + 1e30: 21c4703a and r2,r4,r7 + 1e34: 10000226 beq r2,zero,1e40 <_malloc_r+0x6dc> + 1e38: 6013883a mov r9,r12 + 1e3c: 003ee106 br 19c4 <_malloc_r+0x260> + 1e40: 2109883a add r4,r4,r4 + 1e44: 3904703a and r2,r7,r4 + 1e48: 63000104 addi r12,r12,4 + 1e4c: 103ffc26 beq r2,zero,1e40 <_malloc_r+0x6dc> + 1e50: 6013883a mov r9,r12 + 1e54: 003edb06 br 19c4 <_malloc_r+0x260> + 1e58: 00805504 movi r2,340 + 1e5c: 11000836 bltu r2,r4,1e80 <_malloc_r+0x71c> + 1e60: 2804d3fa srli r2,r5,15 + 1e64: 11001dc4 addi r4,r2,119 + 1e68: 200690fa slli r3,r4,3 + 1e6c: 003f7306 br 1c3c <_malloc_r+0x4d8> + 1e70: 0104303a nor r2,zero,r4 + 1e74: 388e703a and r7,r7,r2 + 1e78: e1c00115 stw r7,4(fp) + 1e7c: 003fe906 br 1e24 <_malloc_r+0x6c0> + 1e80: 00815504 movi r2,1364 + 1e84: 1100032e bgeu r2,r4,1e94 <_malloc_r+0x730> + 1e88: 01001f84 movi r4,126 + 1e8c: 00c0fc04 movi r3,1008 + 1e90: 003f6a06 br 1c3c <_malloc_r+0x4d8> + 1e94: 2804d4ba srli r2,r5,18 + 1e98: 11001f04 addi r4,r2,124 + 1e9c: 200690fa slli r3,r4,3 + 1ea0: 003f6606 br 1c3c <_malloc_r+0x4d8> + +00001ea4 : + 1ea4: 008000c4 movi r2,3 + 1ea8: 29403fcc andi r5,r5,255 + 1eac: 2007883a mov r3,r4 + 1eb0: 1180022e bgeu r2,r6,1ebc + 1eb4: 2084703a and r2,r4,r2 + 1eb8: 10000826 beq r2,zero,1edc + 1ebc: 30000526 beq r6,zero,1ed4 + 1ec0: 2805883a mov r2,r5 + 1ec4: 30cd883a add r6,r6,r3 + 1ec8: 18800005 stb r2,0(r3) + 1ecc: 18c00044 addi r3,r3,1 + 1ed0: 19bffd1e bne r3,r6,1ec8 + 1ed4: 2005883a mov r2,r4 + 1ed8: f800283a ret + 1edc: 2804923a slli r2,r5,8 + 1ee0: 020003c4 movi r8,15 + 1ee4: 200f883a mov r7,r4 + 1ee8: 2884b03a or r2,r5,r2 + 1eec: 1006943a slli r3,r2,16 + 1ef0: 10c6b03a or r3,r2,r3 + 1ef4: 41800a2e bgeu r8,r6,1f20 + 1ef8: 4005883a mov r2,r8 + 1efc: 31bffc04 addi r6,r6,-16 + 1f00: 38c00015 stw r3,0(r7) + 1f04: 38c00115 stw r3,4(r7) + 1f08: 38c00215 stw r3,8(r7) + 1f0c: 38c00315 stw r3,12(r7) + 1f10: 39c00404 addi r7,r7,16 + 1f14: 11bff936 bltu r2,r6,1efc + 1f18: 008000c4 movi r2,3 + 1f1c: 1180052e bgeu r2,r6,1f34 + 1f20: 31bfff04 addi r6,r6,-4 + 1f24: 008000c4 movi r2,3 + 1f28: 38c00015 stw r3,0(r7) + 1f2c: 39c00104 addi r7,r7,4 + 1f30: 11bffb36 bltu r2,r6,1f20 + 1f34: 3807883a mov r3,r7 + 1f38: 003fe006 br 1ebc + +00001f3c <_open_r>: + 1f3c: defffd04 addi sp,sp,-12 + 1f40: dc000015 stw r16,0(sp) + 1f44: 04000074 movhi r16,1 + 1f48: 8407a504 addi r16,r16,7828 + 1f4c: dc400115 stw r17,4(sp) + 1f50: 80000015 stw zero,0(r16) + 1f54: 2023883a mov r17,r4 + 1f58: 2809883a mov r4,r5 + 1f5c: 300b883a mov r5,r6 + 1f60: 380d883a mov r6,r7 + 1f64: dfc00215 stw ra,8(sp) + 1f68: 000ae840 call ae84 + 1f6c: 1007883a mov r3,r2 + 1f70: 00bfffc4 movi r2,-1 + 1f74: 18800626 beq r3,r2,1f90 <_open_r+0x54> + 1f78: 1805883a mov r2,r3 + 1f7c: dfc00217 ldw ra,8(sp) + 1f80: dc400117 ldw r17,4(sp) + 1f84: dc000017 ldw r16,0(sp) + 1f88: dec00304 addi sp,sp,12 + 1f8c: f800283a ret + 1f90: 80800017 ldw r2,0(r16) + 1f94: 103ff826 beq r2,zero,1f78 <_open_r+0x3c> + 1f98: 88800015 stw r2,0(r17) + 1f9c: 1805883a mov r2,r3 + 1fa0: dfc00217 ldw ra,8(sp) + 1fa4: dc400117 ldw r17,4(sp) + 1fa8: dc000017 ldw r16,0(sp) + 1fac: dec00304 addi sp,sp,12 + 1fb0: f800283a ret + +00001fb4 : + 1fb4: defffb04 addi sp,sp,-20 + 1fb8: dfc00115 stw ra,4(sp) + 1fbc: d9400215 stw r5,8(sp) + 1fc0: d9800315 stw r6,12(sp) + 1fc4: d9c00415 stw r7,16(sp) + 1fc8: 00800074 movhi r2,1 + 1fcc: 1080b204 addi r2,r2,712 + 1fd0: 10c00017 ldw r3,0(r2) + 1fd4: 200b883a mov r5,r4 + 1fd8: d8800204 addi r2,sp,8 + 1fdc: 19000217 ldw r4,8(r3) + 1fe0: 100d883a mov r6,r2 + 1fe4: d8800015 stw r2,0(sp) + 1fe8: 000440c0 call 440c <__vfprintf_internal> + 1fec: dfc00117 ldw ra,4(sp) + 1ff0: dec00504 addi sp,sp,20 + 1ff4: f800283a ret + +00001ff8 <_printf_r>: + 1ff8: defffc04 addi sp,sp,-16 + 1ffc: dfc00115 stw ra,4(sp) + 2000: d9800215 stw r6,8(sp) + 2004: d9c00315 stw r7,12(sp) + 2008: 280d883a mov r6,r5 + 200c: 21400217 ldw r5,8(r4) + 2010: d8c00204 addi r3,sp,8 + 2014: 180f883a mov r7,r3 + 2018: d8c00015 stw r3,0(sp) + 201c: 00025480 call 2548 <___vfprintf_internal_r> + 2020: dfc00117 ldw ra,4(sp) + 2024: dec00404 addi sp,sp,16 + 2028: f800283a ret + +0000202c <_puts_r>: + 202c: defff604 addi sp,sp,-40 + 2030: dc400715 stw r17,28(sp) + 2034: 2023883a mov r17,r4 + 2038: 2809883a mov r4,r5 + 203c: dfc00915 stw ra,36(sp) + 2040: dcc00815 stw r19,32(sp) + 2044: 2827883a mov r19,r5 + 2048: 000247c0 call 247c + 204c: 89400217 ldw r5,8(r17) + 2050: 00c00074 movhi r3,1 + 2054: 18f86f04 addi r3,r3,-7748 + 2058: 01c00044 movi r7,1 + 205c: 12000044 addi r8,r2,1 + 2060: d8c00515 stw r3,20(sp) + 2064: d9c00615 stw r7,24(sp) + 2068: d8c00304 addi r3,sp,12 + 206c: 01c00084 movi r7,2 + 2070: 8809883a mov r4,r17 + 2074: d80d883a mov r6,sp + 2078: d8c00015 stw r3,0(sp) + 207c: dcc00315 stw r19,12(sp) + 2080: da000215 stw r8,8(sp) + 2084: d9c00115 stw r7,4(sp) + 2088: d8800415 stw r2,16(sp) + 208c: 0005eec0 call 5eec <__sfvwrite_r> + 2090: 00ffffc4 movi r3,-1 + 2094: 10000626 beq r2,zero,20b0 <_puts_r+0x84> + 2098: 1805883a mov r2,r3 + 209c: dfc00917 ldw ra,36(sp) + 20a0: dcc00817 ldw r19,32(sp) + 20a4: dc400717 ldw r17,28(sp) + 20a8: dec00a04 addi sp,sp,40 + 20ac: f800283a ret + 20b0: 00c00284 movi r3,10 + 20b4: 1805883a mov r2,r3 + 20b8: dfc00917 ldw ra,36(sp) + 20bc: dcc00817 ldw r19,32(sp) + 20c0: dc400717 ldw r17,28(sp) + 20c4: dec00a04 addi sp,sp,40 + 20c8: f800283a ret + +000020cc : + 20cc: 00800074 movhi r2,1 + 20d0: 1080b204 addi r2,r2,712 + 20d4: 200b883a mov r5,r4 + 20d8: 11000017 ldw r4,0(r2) + 20dc: 000202c1 jmpi 202c <_puts_r> + +000020e0 <__srefill_r>: + 20e0: defffd04 addi sp,sp,-12 + 20e4: dc400115 stw r17,4(sp) + 20e8: dc000015 stw r16,0(sp) + 20ec: dfc00215 stw ra,8(sp) + 20f0: 2023883a mov r17,r4 + 20f4: 2821883a mov r16,r5 + 20f8: 20000226 beq r4,zero,2104 <__srefill_r+0x24> + 20fc: 20800e17 ldw r2,56(r4) + 2100: 10004126 beq r2,zero,2208 <__srefill_r+0x128> + 2104: 80c0030b ldhu r3,12(r16) + 2108: 80000115 stw zero,4(r16) + 210c: 1880080c andi r2,r3,32 + 2110: 1000361e bne r2,zero,21ec <__srefill_r+0x10c> + 2114: 1880010c andi r2,r3,4 + 2118: 1000211e bne r2,zero,21a0 <__srefill_r+0xc0> + 211c: 1880040c andi r2,r3,16 + 2120: 10005026 beq r2,zero,2264 <__srefill_r+0x184> + 2124: 1880020c andi r2,r3,8 + 2128: 1000541e bne r2,zero,227c <__srefill_r+0x19c> + 212c: 8080030b ldhu r2,12(r16) + 2130: 10800114 ori r2,r2,4 + 2134: 8080030d sth r2,12(r16) + 2138: 80800417 ldw r2,16(r16) + 213c: 10004526 beq r2,zero,2254 <__srefill_r+0x174> + 2140: 8080030b ldhu r2,12(r16) + 2144: 108000cc andi r2,r2,3 + 2148: 1000361e bne r2,zero,2224 <__srefill_r+0x144> + 214c: 81800417 ldw r6,16(r16) + 2150: 80c00817 ldw r3,32(r16) + 2154: 81400717 ldw r5,28(r16) + 2158: 81c00517 ldw r7,20(r16) + 215c: 8809883a mov r4,r17 + 2160: 81800015 stw r6,0(r16) + 2164: 183ee83a callr r3 + 2168: 80c0030b ldhu r3,12(r16) + 216c: 1009883a mov r4,r2 + 2170: 80800115 stw r2,4(r16) + 2174: 00b7ffc4 movi r2,-8193 + 2178: 1884703a and r2,r3,r2 + 217c: 8080030d sth r2,12(r16) + 2180: 0100230e bge zero,r4,2210 <__srefill_r+0x130> + 2184: 0009883a mov r4,zero + 2188: 2005883a mov r2,r4 + 218c: dfc00217 ldw ra,8(sp) + 2190: dc400117 ldw r17,4(sp) + 2194: dc000017 ldw r16,0(sp) + 2198: dec00304 addi sp,sp,12 + 219c: f800283a ret + 21a0: 81400c17 ldw r5,48(r16) + 21a4: 283fe426 beq r5,zero,2138 <__srefill_r+0x58> + 21a8: 80801004 addi r2,r16,64 + 21ac: 28800226 beq r5,r2,21b8 <__srefill_r+0xd8> + 21b0: 8809883a mov r4,r17 + 21b4: 0000b7c0 call b7c <_free_r> + 21b8: 80800f17 ldw r2,60(r16) + 21bc: 80000c15 stw zero,48(r16) + 21c0: 80800115 stw r2,4(r16) + 21c4: 103fdc26 beq r2,zero,2138 <__srefill_r+0x58> + 21c8: 80800e17 ldw r2,56(r16) + 21cc: 0009883a mov r4,zero + 21d0: 80800015 stw r2,0(r16) + 21d4: 2005883a mov r2,r4 + 21d8: dfc00217 ldw ra,8(sp) + 21dc: dc400117 ldw r17,4(sp) + 21e0: dc000017 ldw r16,0(sp) + 21e4: dec00304 addi sp,sp,12 + 21e8: f800283a ret + 21ec: 013fffc4 movi r4,-1 + 21f0: 2005883a mov r2,r4 + 21f4: dfc00217 ldw ra,8(sp) + 21f8: dc400117 ldw r17,4(sp) + 21fc: dc000017 ldw r16,0(sp) + 2200: dec00304 addi sp,sp,12 + 2204: f800283a ret + 2208: 00006b40 call 6b4 <__sinit> + 220c: 003fbd06 br 2104 <__srefill_r+0x24> + 2210: 20000b1e bne r4,zero,2240 <__srefill_r+0x160> + 2214: 10800814 ori r2,r2,32 + 2218: 013fffc4 movi r4,-1 + 221c: 8080030d sth r2,12(r16) + 2220: 003fd906 br 2188 <__srefill_r+0xa8> + 2224: 00800074 movhi r2,1 + 2228: 1080b304 addi r2,r2,716 + 222c: 11000017 ldw r4,0(r2) + 2230: 01400034 movhi r5,0 + 2234: 2948a904 addi r5,r5,8868 + 2238: 000142c0 call 142c <_fwalk> + 223c: 003fc306 br 214c <__srefill_r+0x6c> + 2240: 10801014 ori r2,r2,64 + 2244: 013fffc4 movi r4,-1 + 2248: 8080030d sth r2,12(r16) + 224c: 80000115 stw zero,4(r16) + 2250: 003fcd06 br 2188 <__srefill_r+0xa8> + 2254: 8809883a mov r4,r17 + 2258: 800b883a mov r5,r16 + 225c: 00015d00 call 15d0 <__smakebuf_r> + 2260: 003fb706 br 2140 <__srefill_r+0x60> + 2264: 18c01014 ori r3,r3,64 + 2268: 00800244 movi r2,9 + 226c: 013fffc4 movi r4,-1 + 2270: 88800015 stw r2,0(r17) + 2274: 80c0030d sth r3,12(r16) + 2278: 003fc306 br 2188 <__srefill_r+0xa8> + 227c: 8809883a mov r4,r17 + 2280: 800b883a mov r5,r16 + 2284: 000041c0 call 41c <_fflush_r> + 2288: 103fd81e bne r2,zero,21ec <__srefill_r+0x10c> + 228c: 8080030b ldhu r2,12(r16) + 2290: 80000215 stw zero,8(r16) + 2294: 80000615 stw zero,24(r16) + 2298: 10bffdcc andi r2,r2,65527 + 229c: 8080030d sth r2,12(r16) + 22a0: 003fa206 br 212c <__srefill_r+0x4c> + +000022a4 : + 22a4: 20c0030b ldhu r3,12(r4) + 22a8: 01400244 movi r5,9 + 22ac: 0005883a mov r2,zero + 22b0: 18c0024c andi r3,r3,9 + 22b4: 19400126 beq r3,r5,22bc + 22b8: f800283a ret + 22bc: 00006181 jmpi 618 + +000022c0 <_sbrk_r>: + 22c0: defffd04 addi sp,sp,-12 + 22c4: dc000015 stw r16,0(sp) + 22c8: 04000074 movhi r16,1 + 22cc: 8407a504 addi r16,r16,7828 + 22d0: dc400115 stw r17,4(sp) + 22d4: 80000015 stw zero,0(r16) + 22d8: 2023883a mov r17,r4 + 22dc: 2809883a mov r4,r5 + 22e0: dfc00215 stw ra,8(sp) + 22e4: 000b26c0 call b26c + 22e8: 1007883a mov r3,r2 + 22ec: 00bfffc4 movi r2,-1 + 22f0: 18800626 beq r3,r2,230c <_sbrk_r+0x4c> + 22f4: 1805883a mov r2,r3 + 22f8: dfc00217 ldw ra,8(sp) + 22fc: dc400117 ldw r17,4(sp) + 2300: dc000017 ldw r16,0(sp) + 2304: dec00304 addi sp,sp,12 + 2308: f800283a ret + 230c: 80800017 ldw r2,0(r16) + 2310: 103ff826 beq r2,zero,22f4 <_sbrk_r+0x34> + 2314: 88800015 stw r2,0(r17) + 2318: 1805883a mov r2,r3 + 231c: dfc00217 ldw ra,8(sp) + 2320: dc400117 ldw r17,4(sp) + 2324: dc000017 ldw r16,0(sp) + 2328: dec00304 addi sp,sp,12 + 232c: f800283a ret + +00002330 <__sclose>: + 2330: 2940038f ldh r5,14(r5) + 2334: 00045e41 jmpi 45e4 <_close_r> + +00002338 <__sseek>: + 2338: defffe04 addi sp,sp,-8 + 233c: dc000015 stw r16,0(sp) + 2340: 2821883a mov r16,r5 + 2344: 2940038f ldh r5,14(r5) + 2348: dfc00115 stw ra,4(sp) + 234c: 00064bc0 call 64bc <_lseek_r> + 2350: 1007883a mov r3,r2 + 2354: 00bfffc4 movi r2,-1 + 2358: 18800926 beq r3,r2,2380 <__sseek+0x48> + 235c: 8080030b ldhu r2,12(r16) + 2360: 80c01415 stw r3,80(r16) + 2364: 10840014 ori r2,r2,4096 + 2368: 8080030d sth r2,12(r16) + 236c: 1805883a mov r2,r3 + 2370: dfc00117 ldw ra,4(sp) + 2374: dc000017 ldw r16,0(sp) + 2378: dec00204 addi sp,sp,8 + 237c: f800283a ret + 2380: 8080030b ldhu r2,12(r16) + 2384: 10bbffcc andi r2,r2,61439 + 2388: 8080030d sth r2,12(r16) + 238c: 1805883a mov r2,r3 + 2390: dfc00117 ldw ra,4(sp) + 2394: dc000017 ldw r16,0(sp) + 2398: dec00204 addi sp,sp,8 + 239c: f800283a ret + +000023a0 <__swrite>: + 23a0: 2880030b ldhu r2,12(r5) + 23a4: defffb04 addi sp,sp,-20 + 23a8: dcc00315 stw r19,12(sp) + 23ac: 1080400c andi r2,r2,256 + 23b0: dc800215 stw r18,8(sp) + 23b4: dc400115 stw r17,4(sp) + 23b8: dc000015 stw r16,0(sp) + 23bc: 3027883a mov r19,r6 + 23c0: 3825883a mov r18,r7 + 23c4: dfc00415 stw ra,16(sp) + 23c8: 2821883a mov r16,r5 + 23cc: 000d883a mov r6,zero + 23d0: 01c00084 movi r7,2 + 23d4: 2023883a mov r17,r4 + 23d8: 10000226 beq r2,zero,23e4 <__swrite+0x44> + 23dc: 2940038f ldh r5,14(r5) + 23e0: 00064bc0 call 64bc <_lseek_r> + 23e4: 8080030b ldhu r2,12(r16) + 23e8: 8140038f ldh r5,14(r16) + 23ec: 8809883a mov r4,r17 + 23f0: 10bbffcc andi r2,r2,61439 + 23f4: 980d883a mov r6,r19 + 23f8: 900f883a mov r7,r18 + 23fc: 8080030d sth r2,12(r16) + 2400: dfc00417 ldw ra,16(sp) + 2404: dcc00317 ldw r19,12(sp) + 2408: dc800217 ldw r18,8(sp) + 240c: dc400117 ldw r17,4(sp) + 2410: dc000017 ldw r16,0(sp) + 2414: dec00504 addi sp,sp,20 + 2418: 00044301 jmpi 4430 <_write_r> + +0000241c <__sread>: + 241c: defffe04 addi sp,sp,-8 + 2420: dc000015 stw r16,0(sp) + 2424: 2821883a mov r16,r5 + 2428: 2940038f ldh r5,14(r5) + 242c: dfc00115 stw ra,4(sp) + 2430: 00078240 call 7824 <_read_r> + 2434: 1007883a mov r3,r2 + 2438: 10000816 blt r2,zero,245c <__sread+0x40> + 243c: 80801417 ldw r2,80(r16) + 2440: 10c5883a add r2,r2,r3 + 2444: 80801415 stw r2,80(r16) + 2448: 1805883a mov r2,r3 + 244c: dfc00117 ldw ra,4(sp) + 2450: dc000017 ldw r16,0(sp) + 2454: dec00204 addi sp,sp,8 + 2458: f800283a ret + 245c: 8080030b ldhu r2,12(r16) + 2460: 10bbffcc andi r2,r2,61439 + 2464: 8080030d sth r2,12(r16) + 2468: 1805883a mov r2,r3 + 246c: dfc00117 ldw ra,4(sp) + 2470: dc000017 ldw r16,0(sp) + 2474: dec00204 addi sp,sp,8 + 2478: f800283a ret + +0000247c : + 247c: 208000cc andi r2,r4,3 + 2480: 2011883a mov r8,r4 + 2484: 1000161e bne r2,zero,24e0 + 2488: 20c00017 ldw r3,0(r4) + 248c: 017fbff4 movhi r5,65279 + 2490: 297fbfc4 addi r5,r5,-257 + 2494: 01e02074 movhi r7,32897 + 2498: 39e02004 addi r7,r7,-32640 + 249c: 1945883a add r2,r3,r5 + 24a0: 11c4703a and r2,r2,r7 + 24a4: 00c6303a nor r3,zero,r3 + 24a8: 1886703a and r3,r3,r2 + 24ac: 18000c1e bne r3,zero,24e0 + 24b0: 280d883a mov r6,r5 + 24b4: 380b883a mov r5,r7 + 24b8: 21000104 addi r4,r4,4 + 24bc: 20800017 ldw r2,0(r4) + 24c0: 1187883a add r3,r2,r6 + 24c4: 1946703a and r3,r3,r5 + 24c8: 0084303a nor r2,zero,r2 + 24cc: 10c4703a and r2,r2,r3 + 24d0: 103ff926 beq r2,zero,24b8 + 24d4: 20800007 ldb r2,0(r4) + 24d8: 10000326 beq r2,zero,24e8 + 24dc: 21000044 addi r4,r4,1 + 24e0: 20800007 ldb r2,0(r4) + 24e4: 103ffd1e bne r2,zero,24dc + 24e8: 2205c83a sub r2,r4,r8 + 24ec: f800283a ret + +000024f0 <__sprint_r>: + 24f0: 30800217 ldw r2,8(r6) + 24f4: defffe04 addi sp,sp,-8 + 24f8: dc000015 stw r16,0(sp) + 24fc: dfc00115 stw ra,4(sp) + 2500: 3021883a mov r16,r6 + 2504: 0007883a mov r3,zero + 2508: 1000061e bne r2,zero,2524 <__sprint_r+0x34> + 250c: 1805883a mov r2,r3 + 2510: 30000115 stw zero,4(r6) + 2514: dfc00117 ldw ra,4(sp) + 2518: dc000017 ldw r16,0(sp) + 251c: dec00204 addi sp,sp,8 + 2520: f800283a ret + 2524: 0005eec0 call 5eec <__sfvwrite_r> + 2528: 1007883a mov r3,r2 + 252c: 1805883a mov r2,r3 + 2530: 80000115 stw zero,4(r16) + 2534: 80000215 stw zero,8(r16) + 2538: dfc00117 ldw ra,4(sp) + 253c: dc000017 ldw r16,0(sp) + 2540: dec00204 addi sp,sp,8 + 2544: f800283a ret + +00002548 <___vfprintf_internal_r>: + 2548: defea404 addi sp,sp,-1392 + 254c: dd815815 stw r22,1376(sp) + 2550: dc015215 stw r16,1352(sp) + 2554: d9c15115 stw r7,1348(sp) + 2558: dfc15b15 stw ra,1388(sp) + 255c: df015a15 stw fp,1384(sp) + 2560: ddc15915 stw r23,1380(sp) + 2564: dd415715 stw r21,1372(sp) + 2568: dd015615 stw r20,1368(sp) + 256c: dcc15515 stw r19,1364(sp) + 2570: dc815415 stw r18,1360(sp) + 2574: dc415315 stw r17,1356(sp) + 2578: 282d883a mov r22,r5 + 257c: 3021883a mov r16,r6 + 2580: d9014f15 stw r4,1340(sp) + 2584: 00064000 call 6400 <_localeconv_r> + 2588: 10800017 ldw r2,0(r2) + 258c: d9c15117 ldw r7,1348(sp) + 2590: d8814915 stw r2,1316(sp) + 2594: d8814f17 ldw r2,1340(sp) + 2598: 10000226 beq r2,zero,25a4 <___vfprintf_internal_r+0x5c> + 259c: 10800e17 ldw r2,56(r2) + 25a0: 10020d26 beq r2,zero,2dd8 <___vfprintf_internal_r+0x890> + 25a4: b080030b ldhu r2,12(r22) + 25a8: 1080020c andi r2,r2,8 + 25ac: 10020e26 beq r2,zero,2de8 <___vfprintf_internal_r+0x8a0> + 25b0: b0800417 ldw r2,16(r22) + 25b4: 10020c26 beq r2,zero,2de8 <___vfprintf_internal_r+0x8a0> + 25b8: b200030b ldhu r8,12(r22) + 25bc: 00800284 movi r2,10 + 25c0: 40c0068c andi r3,r8,26 + 25c4: 18802f1e bne r3,r2,2684 <___vfprintf_internal_r+0x13c> + 25c8: b080038f ldh r2,14(r22) + 25cc: 10002d16 blt r2,zero,2684 <___vfprintf_internal_r+0x13c> + 25d0: b240038b ldhu r9,14(r22) + 25d4: b2800717 ldw r10,28(r22) + 25d8: b2c00917 ldw r11,36(r22) + 25dc: d9014f17 ldw r4,1340(sp) + 25e0: dc402904 addi r17,sp,164 + 25e4: d8804004 addi r2,sp,256 + 25e8: 00c10004 movi r3,1024 + 25ec: 423fff4c andi r8,r8,65533 + 25f0: 800d883a mov r6,r16 + 25f4: 880b883a mov r5,r17 + 25f8: da002c0d sth r8,176(sp) + 25fc: da402c8d sth r9,178(sp) + 2600: da803015 stw r10,192(sp) + 2604: dac03215 stw r11,200(sp) + 2608: d8802d15 stw r2,180(sp) + 260c: d8c02e15 stw r3,184(sp) + 2610: d8802915 stw r2,164(sp) + 2614: d8c02b15 stw r3,172(sp) + 2618: d8002f15 stw zero,188(sp) + 261c: 00025480 call 2548 <___vfprintf_internal_r> + 2620: d8814b15 stw r2,1324(sp) + 2624: 10000416 blt r2,zero,2638 <___vfprintf_internal_r+0xf0> + 2628: d9014f17 ldw r4,1340(sp) + 262c: 880b883a mov r5,r17 + 2630: 000041c0 call 41c <_fflush_r> + 2634: 1002321e bne r2,zero,2f00 <___vfprintf_internal_r+0x9b8> + 2638: d8802c0b ldhu r2,176(sp) + 263c: 1080100c andi r2,r2,64 + 2640: 10000326 beq r2,zero,2650 <___vfprintf_internal_r+0x108> + 2644: b080030b ldhu r2,12(r22) + 2648: 10801014 ori r2,r2,64 + 264c: b080030d sth r2,12(r22) + 2650: d8814b17 ldw r2,1324(sp) + 2654: dfc15b17 ldw ra,1388(sp) + 2658: df015a17 ldw fp,1384(sp) + 265c: ddc15917 ldw r23,1380(sp) + 2660: dd815817 ldw r22,1376(sp) + 2664: dd415717 ldw r21,1372(sp) + 2668: dd015617 ldw r20,1368(sp) + 266c: dcc15517 ldw r19,1364(sp) + 2670: dc815417 ldw r18,1360(sp) + 2674: dc415317 ldw r17,1356(sp) + 2678: dc015217 ldw r16,1352(sp) + 267c: dec15c04 addi sp,sp,1392 + 2680: f800283a ret + 2684: 0005883a mov r2,zero + 2688: 0007883a mov r3,zero + 268c: dd401904 addi r21,sp,100 + 2690: d8814215 stw r2,1288(sp) + 2694: 802f883a mov r23,r16 + 2698: d8c14315 stw r3,1292(sp) + 269c: d8014b15 stw zero,1324(sp) + 26a0: d8014815 stw zero,1312(sp) + 26a4: d8014415 stw zero,1296(sp) + 26a8: d8014715 stw zero,1308(sp) + 26ac: dd400c15 stw r21,48(sp) + 26b0: d8000e15 stw zero,56(sp) + 26b4: d8000d15 stw zero,52(sp) + 26b8: b8800007 ldb r2,0(r23) + 26bc: 10001926 beq r2,zero,2724 <___vfprintf_internal_r+0x1dc> + 26c0: 00c00944 movi r3,37 + 26c4: 10c01726 beq r2,r3,2724 <___vfprintf_internal_r+0x1dc> + 26c8: b821883a mov r16,r23 + 26cc: 00000106 br 26d4 <___vfprintf_internal_r+0x18c> + 26d0: 10c00326 beq r2,r3,26e0 <___vfprintf_internal_r+0x198> + 26d4: 84000044 addi r16,r16,1 + 26d8: 80800007 ldb r2,0(r16) + 26dc: 103ffc1e bne r2,zero,26d0 <___vfprintf_internal_r+0x188> + 26e0: 85e7c83a sub r19,r16,r23 + 26e4: 98000e26 beq r19,zero,2720 <___vfprintf_internal_r+0x1d8> + 26e8: dc800e17 ldw r18,56(sp) + 26ec: dc400d17 ldw r17,52(sp) + 26f0: 008001c4 movi r2,7 + 26f4: 94e5883a add r18,r18,r19 + 26f8: 8c400044 addi r17,r17,1 + 26fc: adc00015 stw r23,0(r21) + 2700: dc800e15 stw r18,56(sp) + 2704: acc00115 stw r19,4(r21) + 2708: dc400d15 stw r17,52(sp) + 270c: 14428b16 blt r2,r17,313c <___vfprintf_internal_r+0xbf4> + 2710: ad400204 addi r21,r21,8 + 2714: d9014b17 ldw r4,1324(sp) + 2718: 24c9883a add r4,r4,r19 + 271c: d9014b15 stw r4,1324(sp) + 2720: 802f883a mov r23,r16 + 2724: b8800007 ldb r2,0(r23) + 2728: 10013c26 beq r2,zero,2c1c <___vfprintf_internal_r+0x6d4> + 272c: bdc00044 addi r23,r23,1 + 2730: d8000405 stb zero,16(sp) + 2734: b8c00007 ldb r3,0(r23) + 2738: 04ffffc4 movi r19,-1 + 273c: d8014c15 stw zero,1328(sp) + 2740: d8014a15 stw zero,1320(sp) + 2744: d8c14d15 stw r3,1332(sp) + 2748: bdc00044 addi r23,r23,1 + 274c: d9414d17 ldw r5,1332(sp) + 2750: 00801604 movi r2,88 + 2754: 28fff804 addi r3,r5,-32 + 2758: 10c06036 bltu r2,r3,28dc <___vfprintf_internal_r+0x394> + 275c: 18c5883a add r2,r3,r3 + 2760: 1085883a add r2,r2,r2 + 2764: 00c00034 movhi r3,0 + 2768: 18c9de04 addi r3,r3,10104 + 276c: 10c5883a add r2,r2,r3 + 2770: 11000017 ldw r4,0(r2) + 2774: 2000683a jmp r4 + 2778: 000036ec andhi zero,zero,219 + 277c: 000028dc xori zero,zero,163 + 2780: 000028dc xori zero,zero,163 + 2784: 000036d8 cmpnei zero,zero,219 + 2788: 000028dc xori zero,zero,163 + 278c: 000028dc xori zero,zero,163 + 2790: 000028dc xori zero,zero,163 + 2794: 000028dc xori zero,zero,163 + 2798: 000028dc xori zero,zero,163 + 279c: 000028dc xori zero,zero,163 + 27a0: 000034b8 rdprs zero,zero,210 + 27a4: 000036c8 cmpgei zero,zero,219 + 27a8: 000028dc xori zero,zero,163 + 27ac: 000034d0 cmplti zero,zero,211 + 27b0: 00003770 cmpltui zero,zero,221 + 27b4: 000028dc xori zero,zero,163 + 27b8: 0000375c xori zero,zero,221 + 27bc: 00003718 cmpnei zero,zero,220 + 27c0: 00003718 cmpnei zero,zero,220 + 27c4: 00003718 cmpnei zero,zero,220 + 27c8: 00003718 cmpnei zero,zero,220 + 27cc: 00003718 cmpnei zero,zero,220 + 27d0: 00003718 cmpnei zero,zero,220 + 27d4: 00003718 cmpnei zero,zero,220 + 27d8: 00003718 cmpnei zero,zero,220 + 27dc: 00003718 cmpnei zero,zero,220 + 27e0: 000028dc xori zero,zero,163 + 27e4: 000028dc xori zero,zero,163 + 27e8: 000028dc xori zero,zero,163 + 27ec: 000028dc xori zero,zero,163 + 27f0: 000028dc xori zero,zero,163 + 27f4: 000028dc xori zero,zero,163 + 27f8: 000028dc xori zero,zero,163 + 27fc: 000028dc xori zero,zero,163 + 2800: 000028dc xori zero,zero,163 + 2804: 000028dc xori zero,zero,163 + 2808: 00002f34 movhi zero,188 + 280c: 000035a0 cmpeqi zero,zero,214 + 2810: 000028dc xori zero,zero,163 + 2814: 000035a0 cmpeqi zero,zero,214 + 2818: 000028dc xori zero,zero,163 + 281c: 000028dc xori zero,zero,163 + 2820: 000028dc xori zero,zero,163 + 2824: 000028dc xori zero,zero,163 + 2828: 00003704 movi zero,220 + 282c: 000028dc xori zero,zero,163 + 2830: 000028dc xori zero,zero,163 + 2834: 00002fe8 cmpgeui zero,zero,191 + 2838: 000028dc xori zero,zero,163 + 283c: 000028dc xori zero,zero,163 + 2840: 000028dc xori zero,zero,163 + 2844: 000028dc xori zero,zero,163 + 2848: 000028dc xori zero,zero,163 + 284c: 00003034 movhi zero,192 + 2850: 000028dc xori zero,zero,163 + 2854: 000028dc xori zero,zero,163 + 2858: 00003654 movui zero,217 + 285c: 000028dc xori zero,zero,163 + 2860: 000028dc xori zero,zero,163 + 2864: 000028dc xori zero,zero,163 + 2868: 000028dc xori zero,zero,163 + 286c: 000028dc xori zero,zero,163 + 2870: 000028dc xori zero,zero,163 + 2874: 000028dc xori zero,zero,163 + 2878: 000028dc xori zero,zero,163 + 287c: 000028dc xori zero,zero,163 + 2880: 000028dc xori zero,zero,163 + 2884: 00003628 cmpgeui zero,zero,216 + 2888: 00002f40 call 2f4 + 288c: 000035a0 cmpeqi zero,zero,214 + 2890: 000035a0 cmpeqi zero,zero,214 + 2894: 000035a0 cmpeqi zero,zero,214 + 2898: 0000358c andi zero,zero,214 + 289c: 00002f40 call 2f4 + 28a0: 000028dc xori zero,zero,163 + 28a4: 000028dc xori zero,zero,163 + 28a8: 00003514 movui zero,212 + 28ac: 000028dc xori zero,zero,163 + 28b0: 000034e4 muli zero,zero,211 + 28b4: 00002ff4 movhi zero,191 + 28b8: 00003544 movi zero,213 + 28bc: 00003530 cmpltui zero,zero,212 + 28c0: 000028dc xori zero,zero,163 + 28c4: 000037d8 cmpnei zero,zero,223 + 28c8: 000028dc xori zero,zero,163 + 28cc: 00003040 call 304 <_fclose_r+0xc> + 28d0: 000028dc xori zero,zero,163 + 28d4: 000028dc xori zero,zero,163 + 28d8: 000036b8 rdprs zero,zero,218 + 28dc: d9014d17 ldw r4,1332(sp) + 28e0: 2000ce26 beq r4,zero,2c1c <___vfprintf_internal_r+0x6d4> + 28e4: 01400044 movi r5,1 + 28e8: d9800f04 addi r6,sp,60 + 28ec: d9c14015 stw r7,1280(sp) + 28f0: d9414515 stw r5,1300(sp) + 28f4: d9814115 stw r6,1284(sp) + 28f8: 280f883a mov r7,r5 + 28fc: d9000f05 stb r4,60(sp) + 2900: d8000405 stb zero,16(sp) + 2904: d8014615 stw zero,1304(sp) + 2908: d8c14c17 ldw r3,1328(sp) + 290c: 1880008c andi r2,r3,2 + 2910: 1005003a cmpeq r2,r2,zero + 2914: d8815015 stw r2,1344(sp) + 2918: 1000031e bne r2,zero,2928 <___vfprintf_internal_r+0x3e0> + 291c: d9014517 ldw r4,1300(sp) + 2920: 21000084 addi r4,r4,2 + 2924: d9014515 stw r4,1300(sp) + 2928: d9414c17 ldw r5,1328(sp) + 292c: 2940210c andi r5,r5,132 + 2930: d9414e15 stw r5,1336(sp) + 2934: 28002d1e bne r5,zero,29ec <___vfprintf_internal_r+0x4a4> + 2938: d9814a17 ldw r6,1320(sp) + 293c: d8814517 ldw r2,1300(sp) + 2940: 30a1c83a sub r16,r6,r2 + 2944: 0400290e bge zero,r16,29ec <___vfprintf_internal_r+0x4a4> + 2948: 00800404 movi r2,16 + 294c: 14045e0e bge r2,r16,3ac8 <___vfprintf_internal_r+0x1580> + 2950: dc800e17 ldw r18,56(sp) + 2954: dc400d17 ldw r17,52(sp) + 2958: 1027883a mov r19,r2 + 295c: 07000074 movhi fp,1 + 2960: e7388b84 addi fp,fp,-7634 + 2964: 050001c4 movi r20,7 + 2968: 00000306 br 2978 <___vfprintf_internal_r+0x430> + 296c: 843ffc04 addi r16,r16,-16 + 2970: ad400204 addi r21,r21,8 + 2974: 9c00130e bge r19,r16,29c4 <___vfprintf_internal_r+0x47c> + 2978: 94800404 addi r18,r18,16 + 297c: 8c400044 addi r17,r17,1 + 2980: af000015 stw fp,0(r21) + 2984: acc00115 stw r19,4(r21) + 2988: dc800e15 stw r18,56(sp) + 298c: dc400d15 stw r17,52(sp) + 2990: a47ff60e bge r20,r17,296c <___vfprintf_internal_r+0x424> + 2994: d9014f17 ldw r4,1340(sp) + 2998: b00b883a mov r5,r22 + 299c: d9800c04 addi r6,sp,48 + 29a0: d9c15115 stw r7,1348(sp) + 29a4: 00024f00 call 24f0 <__sprint_r> + 29a8: d9c15117 ldw r7,1348(sp) + 29ac: 10009e1e bne r2,zero,2c28 <___vfprintf_internal_r+0x6e0> + 29b0: 843ffc04 addi r16,r16,-16 + 29b4: dc800e17 ldw r18,56(sp) + 29b8: dc400d17 ldw r17,52(sp) + 29bc: dd401904 addi r21,sp,100 + 29c0: 9c3fed16 blt r19,r16,2978 <___vfprintf_internal_r+0x430> + 29c4: 9425883a add r18,r18,r16 + 29c8: 8c400044 addi r17,r17,1 + 29cc: 008001c4 movi r2,7 + 29d0: af000015 stw fp,0(r21) + 29d4: ac000115 stw r16,4(r21) + 29d8: dc800e15 stw r18,56(sp) + 29dc: dc400d15 stw r17,52(sp) + 29e0: 1441f516 blt r2,r17,31b8 <___vfprintf_internal_r+0xc70> + 29e4: ad400204 addi r21,r21,8 + 29e8: 00000206 br 29f4 <___vfprintf_internal_r+0x4ac> + 29ec: dc800e17 ldw r18,56(sp) + 29f0: dc400d17 ldw r17,52(sp) + 29f4: d8800407 ldb r2,16(sp) + 29f8: 10000b26 beq r2,zero,2a28 <___vfprintf_internal_r+0x4e0> + 29fc: 00800044 movi r2,1 + 2a00: 94800044 addi r18,r18,1 + 2a04: 8c400044 addi r17,r17,1 + 2a08: a8800115 stw r2,4(r21) + 2a0c: d8c00404 addi r3,sp,16 + 2a10: 008001c4 movi r2,7 + 2a14: a8c00015 stw r3,0(r21) + 2a18: dc800e15 stw r18,56(sp) + 2a1c: dc400d15 stw r17,52(sp) + 2a20: 1441da16 blt r2,r17,318c <___vfprintf_internal_r+0xc44> + 2a24: ad400204 addi r21,r21,8 + 2a28: d9015017 ldw r4,1344(sp) + 2a2c: 20000b1e bne r4,zero,2a5c <___vfprintf_internal_r+0x514> + 2a30: d8800444 addi r2,sp,17 + 2a34: 94800084 addi r18,r18,2 + 2a38: 8c400044 addi r17,r17,1 + 2a3c: a8800015 stw r2,0(r21) + 2a40: 00c00084 movi r3,2 + 2a44: 008001c4 movi r2,7 + 2a48: a8c00115 stw r3,4(r21) + 2a4c: dc800e15 stw r18,56(sp) + 2a50: dc400d15 stw r17,52(sp) + 2a54: 1441c216 blt r2,r17,3160 <___vfprintf_internal_r+0xc18> + 2a58: ad400204 addi r21,r21,8 + 2a5c: d9414e17 ldw r5,1336(sp) + 2a60: 00802004 movi r2,128 + 2a64: 2880b126 beq r5,r2,2d2c <___vfprintf_internal_r+0x7e4> + 2a68: d8c14617 ldw r3,1304(sp) + 2a6c: 19e1c83a sub r16,r3,r7 + 2a70: 0400260e bge zero,r16,2b0c <___vfprintf_internal_r+0x5c4> + 2a74: 00800404 movi r2,16 + 2a78: 1403cf0e bge r2,r16,39b8 <___vfprintf_internal_r+0x1470> + 2a7c: 1027883a mov r19,r2 + 2a80: 07000074 movhi fp,1 + 2a84: e7388784 addi fp,fp,-7650 + 2a88: 050001c4 movi r20,7 + 2a8c: 00000306 br 2a9c <___vfprintf_internal_r+0x554> + 2a90: 843ffc04 addi r16,r16,-16 + 2a94: ad400204 addi r21,r21,8 + 2a98: 9c00130e bge r19,r16,2ae8 <___vfprintf_internal_r+0x5a0> + 2a9c: 94800404 addi r18,r18,16 + 2aa0: 8c400044 addi r17,r17,1 + 2aa4: af000015 stw fp,0(r21) + 2aa8: acc00115 stw r19,4(r21) + 2aac: dc800e15 stw r18,56(sp) + 2ab0: dc400d15 stw r17,52(sp) + 2ab4: a47ff60e bge r20,r17,2a90 <___vfprintf_internal_r+0x548> + 2ab8: d9014f17 ldw r4,1340(sp) + 2abc: b00b883a mov r5,r22 + 2ac0: d9800c04 addi r6,sp,48 + 2ac4: d9c15115 stw r7,1348(sp) + 2ac8: 00024f00 call 24f0 <__sprint_r> + 2acc: d9c15117 ldw r7,1348(sp) + 2ad0: 1000551e bne r2,zero,2c28 <___vfprintf_internal_r+0x6e0> + 2ad4: 843ffc04 addi r16,r16,-16 + 2ad8: dc800e17 ldw r18,56(sp) + 2adc: dc400d17 ldw r17,52(sp) + 2ae0: dd401904 addi r21,sp,100 + 2ae4: 9c3fed16 blt r19,r16,2a9c <___vfprintf_internal_r+0x554> + 2ae8: 9425883a add r18,r18,r16 + 2aec: 8c400044 addi r17,r17,1 + 2af0: 008001c4 movi r2,7 + 2af4: af000015 stw fp,0(r21) + 2af8: ac000115 stw r16,4(r21) + 2afc: dc800e15 stw r18,56(sp) + 2b00: dc400d15 stw r17,52(sp) + 2b04: 14418216 blt r2,r17,3110 <___vfprintf_internal_r+0xbc8> + 2b08: ad400204 addi r21,r21,8 + 2b0c: d9014c17 ldw r4,1328(sp) + 2b10: 2080400c andi r2,r4,256 + 2b14: 10004a1e bne r2,zero,2c40 <___vfprintf_internal_r+0x6f8> + 2b18: d9414117 ldw r5,1284(sp) + 2b1c: 91e5883a add r18,r18,r7 + 2b20: 8c400044 addi r17,r17,1 + 2b24: 008001c4 movi r2,7 + 2b28: a9400015 stw r5,0(r21) + 2b2c: a9c00115 stw r7,4(r21) + 2b30: dc800e15 stw r18,56(sp) + 2b34: dc400d15 stw r17,52(sp) + 2b38: 14416716 blt r2,r17,30d8 <___vfprintf_internal_r+0xb90> + 2b3c: a8c00204 addi r3,r21,8 + 2b40: d9814c17 ldw r6,1328(sp) + 2b44: 3080010c andi r2,r6,4 + 2b48: 10002826 beq r2,zero,2bec <___vfprintf_internal_r+0x6a4> + 2b4c: d8814a17 ldw r2,1320(sp) + 2b50: d9014517 ldw r4,1300(sp) + 2b54: 1121c83a sub r16,r2,r4 + 2b58: 0400240e bge zero,r16,2bec <___vfprintf_internal_r+0x6a4> + 2b5c: 00800404 movi r2,16 + 2b60: 1404550e bge r2,r16,3cb8 <___vfprintf_internal_r+0x1770> + 2b64: dc400d17 ldw r17,52(sp) + 2b68: 1027883a mov r19,r2 + 2b6c: 07000074 movhi fp,1 + 2b70: e7388b84 addi fp,fp,-7634 + 2b74: 050001c4 movi r20,7 + 2b78: 00000306 br 2b88 <___vfprintf_internal_r+0x640> + 2b7c: 843ffc04 addi r16,r16,-16 + 2b80: 18c00204 addi r3,r3,8 + 2b84: 9c00110e bge r19,r16,2bcc <___vfprintf_internal_r+0x684> + 2b88: 94800404 addi r18,r18,16 + 2b8c: 8c400044 addi r17,r17,1 + 2b90: 1f000015 stw fp,0(r3) + 2b94: 1cc00115 stw r19,4(r3) + 2b98: dc800e15 stw r18,56(sp) + 2b9c: dc400d15 stw r17,52(sp) + 2ba0: a47ff60e bge r20,r17,2b7c <___vfprintf_internal_r+0x634> + 2ba4: d9014f17 ldw r4,1340(sp) + 2ba8: b00b883a mov r5,r22 + 2bac: d9800c04 addi r6,sp,48 + 2bb0: 00024f00 call 24f0 <__sprint_r> + 2bb4: 10001c1e bne r2,zero,2c28 <___vfprintf_internal_r+0x6e0> + 2bb8: 843ffc04 addi r16,r16,-16 + 2bbc: dc800e17 ldw r18,56(sp) + 2bc0: dc400d17 ldw r17,52(sp) + 2bc4: d8c01904 addi r3,sp,100 + 2bc8: 9c3fef16 blt r19,r16,2b88 <___vfprintf_internal_r+0x640> + 2bcc: 9425883a add r18,r18,r16 + 2bd0: 8c400044 addi r17,r17,1 + 2bd4: 008001c4 movi r2,7 + 2bd8: 1f000015 stw fp,0(r3) + 2bdc: 1c000115 stw r16,4(r3) + 2be0: dc800e15 stw r18,56(sp) + 2be4: dc400d15 stw r17,52(sp) + 2be8: 1440cb16 blt r2,r17,2f18 <___vfprintf_internal_r+0x9d0> + 2bec: d8814a17 ldw r2,1320(sp) + 2bf0: d9414517 ldw r5,1300(sp) + 2bf4: 1140010e bge r2,r5,2bfc <___vfprintf_internal_r+0x6b4> + 2bf8: 2805883a mov r2,r5 + 2bfc: d9814b17 ldw r6,1324(sp) + 2c00: 308d883a add r6,r6,r2 + 2c04: d9814b15 stw r6,1324(sp) + 2c08: 90013b1e bne r18,zero,30f8 <___vfprintf_internal_r+0xbb0> + 2c0c: d9c14017 ldw r7,1280(sp) + 2c10: dd401904 addi r21,sp,100 + 2c14: d8000d15 stw zero,52(sp) + 2c18: 003ea706 br 26b8 <___vfprintf_internal_r+0x170> + 2c1c: d8800e17 ldw r2,56(sp) + 2c20: 1005451e bne r2,zero,4138 <___vfprintf_internal_r+0x1bf0> + 2c24: d8000d15 stw zero,52(sp) + 2c28: b080030b ldhu r2,12(r22) + 2c2c: 1080100c andi r2,r2,64 + 2c30: 103e8726 beq r2,zero,2650 <___vfprintf_internal_r+0x108> + 2c34: 00bfffc4 movi r2,-1 + 2c38: d8814b15 stw r2,1324(sp) + 2c3c: 003e8406 br 2650 <___vfprintf_internal_r+0x108> + 2c40: d9814d17 ldw r6,1332(sp) + 2c44: 00801944 movi r2,101 + 2c48: 11806e16 blt r2,r6,2e04 <___vfprintf_internal_r+0x8bc> + 2c4c: d9414717 ldw r5,1308(sp) + 2c50: 00c00044 movi r3,1 + 2c54: 1943490e bge r3,r5,397c <___vfprintf_internal_r+0x1434> + 2c58: d8814117 ldw r2,1284(sp) + 2c5c: 94800044 addi r18,r18,1 + 2c60: 8c400044 addi r17,r17,1 + 2c64: a8800015 stw r2,0(r21) + 2c68: 008001c4 movi r2,7 + 2c6c: a8c00115 stw r3,4(r21) + 2c70: dc800e15 stw r18,56(sp) + 2c74: dc400d15 stw r17,52(sp) + 2c78: 1441ca16 blt r2,r17,33a4 <___vfprintf_internal_r+0xe5c> + 2c7c: a8c00204 addi r3,r21,8 + 2c80: d9014917 ldw r4,1316(sp) + 2c84: 00800044 movi r2,1 + 2c88: 94800044 addi r18,r18,1 + 2c8c: 8c400044 addi r17,r17,1 + 2c90: 18800115 stw r2,4(r3) + 2c94: 008001c4 movi r2,7 + 2c98: 19000015 stw r4,0(r3) + 2c9c: dc800e15 stw r18,56(sp) + 2ca0: dc400d15 stw r17,52(sp) + 2ca4: 1441b616 blt r2,r17,3380 <___vfprintf_internal_r+0xe38> + 2ca8: 1cc00204 addi r19,r3,8 + 2cac: d9014217 ldw r4,1288(sp) + 2cb0: d9414317 ldw r5,1292(sp) + 2cb4: 000d883a mov r6,zero + 2cb8: 000f883a mov r7,zero + 2cbc: 00098f80 call 98f8 <__nedf2> + 2cc0: 10017426 beq r2,zero,3294 <___vfprintf_internal_r+0xd4c> + 2cc4: d9414717 ldw r5,1308(sp) + 2cc8: d9814117 ldw r6,1284(sp) + 2ccc: 8c400044 addi r17,r17,1 + 2cd0: 2c85883a add r2,r5,r18 + 2cd4: 14bfffc4 addi r18,r2,-1 + 2cd8: 28bfffc4 addi r2,r5,-1 + 2cdc: 30c00044 addi r3,r6,1 + 2ce0: 98800115 stw r2,4(r19) + 2ce4: 008001c4 movi r2,7 + 2ce8: 98c00015 stw r3,0(r19) + 2cec: dc800e15 stw r18,56(sp) + 2cf0: dc400d15 stw r17,52(sp) + 2cf4: 14418e16 blt r2,r17,3330 <___vfprintf_internal_r+0xde8> + 2cf8: 9cc00204 addi r19,r19,8 + 2cfc: d9414817 ldw r5,1312(sp) + 2d00: d8800804 addi r2,sp,32 + 2d04: 8c400044 addi r17,r17,1 + 2d08: 9165883a add r18,r18,r5 + 2d0c: 98800015 stw r2,0(r19) + 2d10: 008001c4 movi r2,7 + 2d14: 99400115 stw r5,4(r19) + 2d18: dc800e15 stw r18,56(sp) + 2d1c: dc400d15 stw r17,52(sp) + 2d20: 1440ed16 blt r2,r17,30d8 <___vfprintf_internal_r+0xb90> + 2d24: 98c00204 addi r3,r19,8 + 2d28: 003f8506 br 2b40 <___vfprintf_internal_r+0x5f8> + 2d2c: d9814a17 ldw r6,1320(sp) + 2d30: d8814517 ldw r2,1300(sp) + 2d34: 30a1c83a sub r16,r6,r2 + 2d38: 043f4b0e bge zero,r16,2a68 <___vfprintf_internal_r+0x520> + 2d3c: 00800404 movi r2,16 + 2d40: 14043a0e bge r2,r16,3e2c <___vfprintf_internal_r+0x18e4> + 2d44: 1027883a mov r19,r2 + 2d48: 07000074 movhi fp,1 + 2d4c: e7388784 addi fp,fp,-7650 + 2d50: 050001c4 movi r20,7 + 2d54: 00000306 br 2d64 <___vfprintf_internal_r+0x81c> + 2d58: 843ffc04 addi r16,r16,-16 + 2d5c: ad400204 addi r21,r21,8 + 2d60: 9c00130e bge r19,r16,2db0 <___vfprintf_internal_r+0x868> + 2d64: 94800404 addi r18,r18,16 + 2d68: 8c400044 addi r17,r17,1 + 2d6c: af000015 stw fp,0(r21) + 2d70: acc00115 stw r19,4(r21) + 2d74: dc800e15 stw r18,56(sp) + 2d78: dc400d15 stw r17,52(sp) + 2d7c: a47ff60e bge r20,r17,2d58 <___vfprintf_internal_r+0x810> + 2d80: d9014f17 ldw r4,1340(sp) + 2d84: b00b883a mov r5,r22 + 2d88: d9800c04 addi r6,sp,48 + 2d8c: d9c15115 stw r7,1348(sp) + 2d90: 00024f00 call 24f0 <__sprint_r> + 2d94: d9c15117 ldw r7,1348(sp) + 2d98: 103fa31e bne r2,zero,2c28 <___vfprintf_internal_r+0x6e0> + 2d9c: 843ffc04 addi r16,r16,-16 + 2da0: dc800e17 ldw r18,56(sp) + 2da4: dc400d17 ldw r17,52(sp) + 2da8: dd401904 addi r21,sp,100 + 2dac: 9c3fed16 blt r19,r16,2d64 <___vfprintf_internal_r+0x81c> + 2db0: 9425883a add r18,r18,r16 + 2db4: 8c400044 addi r17,r17,1 + 2db8: 008001c4 movi r2,7 + 2dbc: af000015 stw fp,0(r21) + 2dc0: ac000115 stw r16,4(r21) + 2dc4: dc800e15 stw r18,56(sp) + 2dc8: dc400d15 stw r17,52(sp) + 2dcc: 14416116 blt r2,r17,3354 <___vfprintf_internal_r+0xe0c> + 2dd0: ad400204 addi r21,r21,8 + 2dd4: 003f2406 br 2a68 <___vfprintf_internal_r+0x520> + 2dd8: d9014f17 ldw r4,1340(sp) + 2ddc: 00006b40 call 6b4 <__sinit> + 2de0: d9c15117 ldw r7,1348(sp) + 2de4: 003def06 br 25a4 <___vfprintf_internal_r+0x5c> + 2de8: d9014f17 ldw r4,1340(sp) + 2dec: b00b883a mov r5,r22 + 2df0: d9c15115 stw r7,1348(sp) + 2df4: 00044a80 call 44a8 <__swsetup_r> + 2df8: d9c15117 ldw r7,1348(sp) + 2dfc: 103dee26 beq r2,zero,25b8 <___vfprintf_internal_r+0x70> + 2e00: 003f8c06 br 2c34 <___vfprintf_internal_r+0x6ec> + 2e04: d9014217 ldw r4,1288(sp) + 2e08: d9414317 ldw r5,1292(sp) + 2e0c: 000d883a mov r6,zero + 2e10: 000f883a mov r7,zero + 2e14: 00098700 call 9870 <__eqdf2> + 2e18: 1000f21e bne r2,zero,31e4 <___vfprintf_internal_r+0xc9c> + 2e1c: 00800074 movhi r2,1 + 2e20: 10b88704 addi r2,r2,-7652 + 2e24: 94800044 addi r18,r18,1 + 2e28: 8c400044 addi r17,r17,1 + 2e2c: a8800015 stw r2,0(r21) + 2e30: 00c00044 movi r3,1 + 2e34: 008001c4 movi r2,7 + 2e38: a8c00115 stw r3,4(r21) + 2e3c: dc800e15 stw r18,56(sp) + 2e40: dc400d15 stw r17,52(sp) + 2e44: 14430016 blt r2,r17,3a48 <___vfprintf_internal_r+0x1500> + 2e48: a8c00204 addi r3,r21,8 + 2e4c: d8800517 ldw r2,20(sp) + 2e50: d9014717 ldw r4,1308(sp) + 2e54: 11015c0e bge r2,r4,33c8 <___vfprintf_internal_r+0xe80> + 2e58: dc400d17 ldw r17,52(sp) + 2e5c: d9814917 ldw r6,1316(sp) + 2e60: 00800044 movi r2,1 + 2e64: 94800044 addi r18,r18,1 + 2e68: 8c400044 addi r17,r17,1 + 2e6c: 18800115 stw r2,4(r3) + 2e70: 008001c4 movi r2,7 + 2e74: 19800015 stw r6,0(r3) + 2e78: dc800e15 stw r18,56(sp) + 2e7c: dc400d15 stw r17,52(sp) + 2e80: 14431616 blt r2,r17,3adc <___vfprintf_internal_r+0x1594> + 2e84: 18c00204 addi r3,r3,8 + 2e88: d8814717 ldw r2,1308(sp) + 2e8c: 143fffc4 addi r16,r2,-1 + 2e90: 043f2b0e bge zero,r16,2b40 <___vfprintf_internal_r+0x5f8> + 2e94: 00800404 movi r2,16 + 2e98: 1402a80e bge r2,r16,393c <___vfprintf_internal_r+0x13f4> + 2e9c: dc400d17 ldw r17,52(sp) + 2ea0: 1027883a mov r19,r2 + 2ea4: 07000074 movhi fp,1 + 2ea8: e7388784 addi fp,fp,-7650 + 2eac: 050001c4 movi r20,7 + 2eb0: 00000306 br 2ec0 <___vfprintf_internal_r+0x978> + 2eb4: 18c00204 addi r3,r3,8 + 2eb8: 843ffc04 addi r16,r16,-16 + 2ebc: 9c02a20e bge r19,r16,3948 <___vfprintf_internal_r+0x1400> + 2ec0: 94800404 addi r18,r18,16 + 2ec4: 8c400044 addi r17,r17,1 + 2ec8: 1f000015 stw fp,0(r3) + 2ecc: 1cc00115 stw r19,4(r3) + 2ed0: dc800e15 stw r18,56(sp) + 2ed4: dc400d15 stw r17,52(sp) + 2ed8: a47ff60e bge r20,r17,2eb4 <___vfprintf_internal_r+0x96c> + 2edc: d9014f17 ldw r4,1340(sp) + 2ee0: b00b883a mov r5,r22 + 2ee4: d9800c04 addi r6,sp,48 + 2ee8: 00024f00 call 24f0 <__sprint_r> + 2eec: 103f4e1e bne r2,zero,2c28 <___vfprintf_internal_r+0x6e0> + 2ef0: dc800e17 ldw r18,56(sp) + 2ef4: dc400d17 ldw r17,52(sp) + 2ef8: d8c01904 addi r3,sp,100 + 2efc: 003fee06 br 2eb8 <___vfprintf_internal_r+0x970> + 2f00: d8802c0b ldhu r2,176(sp) + 2f04: 00ffffc4 movi r3,-1 + 2f08: d8c14b15 stw r3,1324(sp) + 2f0c: 1080100c andi r2,r2,64 + 2f10: 103dcc1e bne r2,zero,2644 <___vfprintf_internal_r+0xfc> + 2f14: 003dce06 br 2650 <___vfprintf_internal_r+0x108> + 2f18: d9014f17 ldw r4,1340(sp) + 2f1c: b00b883a mov r5,r22 + 2f20: d9800c04 addi r6,sp,48 + 2f24: 00024f00 call 24f0 <__sprint_r> + 2f28: 103f3f1e bne r2,zero,2c28 <___vfprintf_internal_r+0x6e0> + 2f2c: dc800e17 ldw r18,56(sp) + 2f30: 003f2e06 br 2bec <___vfprintf_internal_r+0x6a4> + 2f34: d9414c17 ldw r5,1328(sp) + 2f38: 29400414 ori r5,r5,16 + 2f3c: d9414c15 stw r5,1328(sp) + 2f40: d9814c17 ldw r6,1328(sp) + 2f44: 3080080c andi r2,r6,32 + 2f48: 10014f1e bne r2,zero,3488 <___vfprintf_internal_r+0xf40> + 2f4c: d8c14c17 ldw r3,1328(sp) + 2f50: 1880040c andi r2,r3,16 + 2f54: 1002f01e bne r2,zero,3b18 <___vfprintf_internal_r+0x15d0> + 2f58: d9014c17 ldw r4,1328(sp) + 2f5c: 2080100c andi r2,r4,64 + 2f60: 1002ed26 beq r2,zero,3b18 <___vfprintf_internal_r+0x15d0> + 2f64: 3880000f ldh r2,0(r7) + 2f68: 39c00104 addi r7,r7,4 + 2f6c: d9c14015 stw r7,1280(sp) + 2f70: 1023d7fa srai r17,r2,31 + 2f74: 1021883a mov r16,r2 + 2f78: 88037816 blt r17,zero,3d5c <___vfprintf_internal_r+0x1814> + 2f7c: 01000044 movi r4,1 + 2f80: 98000416 blt r19,zero,2f94 <___vfprintf_internal_r+0xa4c> + 2f84: d8c14c17 ldw r3,1328(sp) + 2f88: 00bfdfc4 movi r2,-129 + 2f8c: 1886703a and r3,r3,r2 + 2f90: d8c14c15 stw r3,1328(sp) + 2f94: 8444b03a or r2,r16,r17 + 2f98: 10022c1e bne r2,zero,384c <___vfprintf_internal_r+0x1304> + 2f9c: 98022b1e bne r19,zero,384c <___vfprintf_internal_r+0x1304> + 2fa0: 20803fcc andi r2,r4,255 + 2fa4: 1002a126 beq r2,zero,3a2c <___vfprintf_internal_r+0x14e4> + 2fa8: d8c01904 addi r3,sp,100 + 2fac: dd000f04 addi r20,sp,60 + 2fb0: d8c14115 stw r3,1284(sp) + 2fb4: d8c14117 ldw r3,1284(sp) + 2fb8: dcc14515 stw r19,1300(sp) + 2fbc: a0c5c83a sub r2,r20,r3 + 2fc0: 11c00a04 addi r7,r2,40 + 2fc4: 99c0010e bge r19,r7,2fcc <___vfprintf_internal_r+0xa84> + 2fc8: d9c14515 stw r7,1300(sp) + 2fcc: dcc14615 stw r19,1304(sp) + 2fd0: d8800407 ldb r2,16(sp) + 2fd4: 103e4c26 beq r2,zero,2908 <___vfprintf_internal_r+0x3c0> + 2fd8: d8814517 ldw r2,1300(sp) + 2fdc: 10800044 addi r2,r2,1 + 2fe0: d8814515 stw r2,1300(sp) + 2fe4: 003e4806 br 2908 <___vfprintf_internal_r+0x3c0> + 2fe8: d9814c17 ldw r6,1328(sp) + 2fec: 31800414 ori r6,r6,16 + 2ff0: d9814c15 stw r6,1328(sp) + 2ff4: d8c14c17 ldw r3,1328(sp) + 2ff8: 1880080c andi r2,r3,32 + 2ffc: 1001271e bne r2,zero,349c <___vfprintf_internal_r+0xf54> + 3000: d9414c17 ldw r5,1328(sp) + 3004: 2880040c andi r2,r5,16 + 3008: 1002bc1e bne r2,zero,3afc <___vfprintf_internal_r+0x15b4> + 300c: d9814c17 ldw r6,1328(sp) + 3010: 3080100c andi r2,r6,64 + 3014: 1002b926 beq r2,zero,3afc <___vfprintf_internal_r+0x15b4> + 3018: 3c00000b ldhu r16,0(r7) + 301c: 0009883a mov r4,zero + 3020: 39c00104 addi r7,r7,4 + 3024: 0023883a mov r17,zero + 3028: d9c14015 stw r7,1280(sp) + 302c: d8000405 stb zero,16(sp) + 3030: 003fd306 br 2f80 <___vfprintf_internal_r+0xa38> + 3034: d9014c17 ldw r4,1328(sp) + 3038: 21000414 ori r4,r4,16 + 303c: d9014c15 stw r4,1328(sp) + 3040: d9414c17 ldw r5,1328(sp) + 3044: 2880080c andi r2,r5,32 + 3048: 1001081e bne r2,zero,346c <___vfprintf_internal_r+0xf24> + 304c: d8c14c17 ldw r3,1328(sp) + 3050: 1880040c andi r2,r3,16 + 3054: 1002b61e bne r2,zero,3b30 <___vfprintf_internal_r+0x15e8> + 3058: d9014c17 ldw r4,1328(sp) + 305c: 2080100c andi r2,r4,64 + 3060: 1002b326 beq r2,zero,3b30 <___vfprintf_internal_r+0x15e8> + 3064: 3c00000b ldhu r16,0(r7) + 3068: 01000044 movi r4,1 + 306c: 39c00104 addi r7,r7,4 + 3070: 0023883a mov r17,zero + 3074: d9c14015 stw r7,1280(sp) + 3078: d8000405 stb zero,16(sp) + 307c: 003fc006 br 2f80 <___vfprintf_internal_r+0xa38> + 3080: d9014f17 ldw r4,1340(sp) + 3084: b00b883a mov r5,r22 + 3088: d9800c04 addi r6,sp,48 + 308c: 00024f00 call 24f0 <__sprint_r> + 3090: 103ee51e bne r2,zero,2c28 <___vfprintf_internal_r+0x6e0> + 3094: dc800e17 ldw r18,56(sp) + 3098: d8c01904 addi r3,sp,100 + 309c: d9814c17 ldw r6,1328(sp) + 30a0: 3080004c andi r2,r6,1 + 30a4: 1005003a cmpeq r2,r2,zero + 30a8: 103ea51e bne r2,zero,2b40 <___vfprintf_internal_r+0x5f8> + 30ac: 00800044 movi r2,1 + 30b0: dc400d17 ldw r17,52(sp) + 30b4: 18800115 stw r2,4(r3) + 30b8: d8814917 ldw r2,1316(sp) + 30bc: 94800044 addi r18,r18,1 + 30c0: 8c400044 addi r17,r17,1 + 30c4: 18800015 stw r2,0(r3) + 30c8: 008001c4 movi r2,7 + 30cc: dc800e15 stw r18,56(sp) + 30d0: dc400d15 stw r17,52(sp) + 30d4: 1442240e bge r2,r17,3968 <___vfprintf_internal_r+0x1420> + 30d8: d9014f17 ldw r4,1340(sp) + 30dc: b00b883a mov r5,r22 + 30e0: d9800c04 addi r6,sp,48 + 30e4: 00024f00 call 24f0 <__sprint_r> + 30e8: 103ecf1e bne r2,zero,2c28 <___vfprintf_internal_r+0x6e0> + 30ec: dc800e17 ldw r18,56(sp) + 30f0: d8c01904 addi r3,sp,100 + 30f4: 003e9206 br 2b40 <___vfprintf_internal_r+0x5f8> + 30f8: d9014f17 ldw r4,1340(sp) + 30fc: b00b883a mov r5,r22 + 3100: d9800c04 addi r6,sp,48 + 3104: 00024f00 call 24f0 <__sprint_r> + 3108: 103ec026 beq r2,zero,2c0c <___vfprintf_internal_r+0x6c4> + 310c: 003ec606 br 2c28 <___vfprintf_internal_r+0x6e0> + 3110: d9014f17 ldw r4,1340(sp) + 3114: b00b883a mov r5,r22 + 3118: d9800c04 addi r6,sp,48 + 311c: d9c15115 stw r7,1348(sp) + 3120: 00024f00 call 24f0 <__sprint_r> + 3124: d9c15117 ldw r7,1348(sp) + 3128: 103ebf1e bne r2,zero,2c28 <___vfprintf_internal_r+0x6e0> + 312c: dc800e17 ldw r18,56(sp) + 3130: dc400d17 ldw r17,52(sp) + 3134: dd401904 addi r21,sp,100 + 3138: 003e7406 br 2b0c <___vfprintf_internal_r+0x5c4> + 313c: d9014f17 ldw r4,1340(sp) + 3140: b00b883a mov r5,r22 + 3144: d9800c04 addi r6,sp,48 + 3148: d9c15115 stw r7,1348(sp) + 314c: 00024f00 call 24f0 <__sprint_r> + 3150: d9c15117 ldw r7,1348(sp) + 3154: 103eb41e bne r2,zero,2c28 <___vfprintf_internal_r+0x6e0> + 3158: dd401904 addi r21,sp,100 + 315c: 003d6d06 br 2714 <___vfprintf_internal_r+0x1cc> + 3160: d9014f17 ldw r4,1340(sp) + 3164: b00b883a mov r5,r22 + 3168: d9800c04 addi r6,sp,48 + 316c: d9c15115 stw r7,1348(sp) + 3170: 00024f00 call 24f0 <__sprint_r> + 3174: d9c15117 ldw r7,1348(sp) + 3178: 103eab1e bne r2,zero,2c28 <___vfprintf_internal_r+0x6e0> + 317c: dc800e17 ldw r18,56(sp) + 3180: dc400d17 ldw r17,52(sp) + 3184: dd401904 addi r21,sp,100 + 3188: 003e3406 br 2a5c <___vfprintf_internal_r+0x514> + 318c: d9014f17 ldw r4,1340(sp) + 3190: b00b883a mov r5,r22 + 3194: d9800c04 addi r6,sp,48 + 3198: d9c15115 stw r7,1348(sp) + 319c: 00024f00 call 24f0 <__sprint_r> + 31a0: d9c15117 ldw r7,1348(sp) + 31a4: 103ea01e bne r2,zero,2c28 <___vfprintf_internal_r+0x6e0> + 31a8: dc800e17 ldw r18,56(sp) + 31ac: dc400d17 ldw r17,52(sp) + 31b0: dd401904 addi r21,sp,100 + 31b4: 003e1c06 br 2a28 <___vfprintf_internal_r+0x4e0> + 31b8: d9014f17 ldw r4,1340(sp) + 31bc: b00b883a mov r5,r22 + 31c0: d9800c04 addi r6,sp,48 + 31c4: d9c15115 stw r7,1348(sp) + 31c8: 00024f00 call 24f0 <__sprint_r> + 31cc: d9c15117 ldw r7,1348(sp) + 31d0: 103e951e bne r2,zero,2c28 <___vfprintf_internal_r+0x6e0> + 31d4: dc800e17 ldw r18,56(sp) + 31d8: dc400d17 ldw r17,52(sp) + 31dc: dd401904 addi r21,sp,100 + 31e0: 003e0406 br 29f4 <___vfprintf_internal_r+0x4ac> + 31e4: d9000517 ldw r4,20(sp) + 31e8: 0102580e bge zero,r4,3b4c <___vfprintf_internal_r+0x1604> + 31ec: d9814717 ldw r6,1308(sp) + 31f0: 21807a16 blt r4,r6,33dc <___vfprintf_internal_r+0xe94> + 31f4: d8814117 ldw r2,1284(sp) + 31f8: 91a5883a add r18,r18,r6 + 31fc: 8c400044 addi r17,r17,1 + 3200: a8800015 stw r2,0(r21) + 3204: 008001c4 movi r2,7 + 3208: a9800115 stw r6,4(r21) + 320c: dc800e15 stw r18,56(sp) + 3210: dc400d15 stw r17,52(sp) + 3214: 1442fc16 blt r2,r17,3e08 <___vfprintf_internal_r+0x18c0> + 3218: a8c00204 addi r3,r21,8 + 321c: d9414717 ldw r5,1308(sp) + 3220: 2161c83a sub r16,r4,r5 + 3224: 043f9d0e bge zero,r16,309c <___vfprintf_internal_r+0xb54> + 3228: 00800404 movi r2,16 + 322c: 1402190e bge r2,r16,3a94 <___vfprintf_internal_r+0x154c> + 3230: dc400d17 ldw r17,52(sp) + 3234: 1027883a mov r19,r2 + 3238: 07000074 movhi fp,1 + 323c: e7388784 addi fp,fp,-7650 + 3240: 050001c4 movi r20,7 + 3244: 00000306 br 3254 <___vfprintf_internal_r+0xd0c> + 3248: 18c00204 addi r3,r3,8 + 324c: 843ffc04 addi r16,r16,-16 + 3250: 9c02130e bge r19,r16,3aa0 <___vfprintf_internal_r+0x1558> + 3254: 94800404 addi r18,r18,16 + 3258: 8c400044 addi r17,r17,1 + 325c: 1f000015 stw fp,0(r3) + 3260: 1cc00115 stw r19,4(r3) + 3264: dc800e15 stw r18,56(sp) + 3268: dc400d15 stw r17,52(sp) + 326c: a47ff60e bge r20,r17,3248 <___vfprintf_internal_r+0xd00> + 3270: d9014f17 ldw r4,1340(sp) + 3274: b00b883a mov r5,r22 + 3278: d9800c04 addi r6,sp,48 + 327c: 00024f00 call 24f0 <__sprint_r> + 3280: 103e691e bne r2,zero,2c28 <___vfprintf_internal_r+0x6e0> + 3284: dc800e17 ldw r18,56(sp) + 3288: dc400d17 ldw r17,52(sp) + 328c: d8c01904 addi r3,sp,100 + 3290: 003fee06 br 324c <___vfprintf_internal_r+0xd04> + 3294: d8814717 ldw r2,1308(sp) + 3298: 143fffc4 addi r16,r2,-1 + 329c: 043e970e bge zero,r16,2cfc <___vfprintf_internal_r+0x7b4> + 32a0: 00800404 movi r2,16 + 32a4: 1400180e bge r2,r16,3308 <___vfprintf_internal_r+0xdc0> + 32a8: 1029883a mov r20,r2 + 32ac: 07000074 movhi fp,1 + 32b0: e7388784 addi fp,fp,-7650 + 32b4: 054001c4 movi r21,7 + 32b8: 00000306 br 32c8 <___vfprintf_internal_r+0xd80> + 32bc: 9cc00204 addi r19,r19,8 + 32c0: 843ffc04 addi r16,r16,-16 + 32c4: a400120e bge r20,r16,3310 <___vfprintf_internal_r+0xdc8> + 32c8: 94800404 addi r18,r18,16 + 32cc: 8c400044 addi r17,r17,1 + 32d0: 9f000015 stw fp,0(r19) + 32d4: 9d000115 stw r20,4(r19) + 32d8: dc800e15 stw r18,56(sp) + 32dc: dc400d15 stw r17,52(sp) + 32e0: ac7ff60e bge r21,r17,32bc <___vfprintf_internal_r+0xd74> + 32e4: d9014f17 ldw r4,1340(sp) + 32e8: b00b883a mov r5,r22 + 32ec: d9800c04 addi r6,sp,48 + 32f0: 00024f00 call 24f0 <__sprint_r> + 32f4: 103e4c1e bne r2,zero,2c28 <___vfprintf_internal_r+0x6e0> + 32f8: dc800e17 ldw r18,56(sp) + 32fc: dc400d17 ldw r17,52(sp) + 3300: dcc01904 addi r19,sp,100 + 3304: 003fee06 br 32c0 <___vfprintf_internal_r+0xd78> + 3308: 07000074 movhi fp,1 + 330c: e7388784 addi fp,fp,-7650 + 3310: 9425883a add r18,r18,r16 + 3314: 8c400044 addi r17,r17,1 + 3318: 008001c4 movi r2,7 + 331c: 9f000015 stw fp,0(r19) + 3320: 9c000115 stw r16,4(r19) + 3324: dc800e15 stw r18,56(sp) + 3328: dc400d15 stw r17,52(sp) + 332c: 147e720e bge r2,r17,2cf8 <___vfprintf_internal_r+0x7b0> + 3330: d9014f17 ldw r4,1340(sp) + 3334: b00b883a mov r5,r22 + 3338: d9800c04 addi r6,sp,48 + 333c: 00024f00 call 24f0 <__sprint_r> + 3340: 103e391e bne r2,zero,2c28 <___vfprintf_internal_r+0x6e0> + 3344: dc800e17 ldw r18,56(sp) + 3348: dc400d17 ldw r17,52(sp) + 334c: dcc01904 addi r19,sp,100 + 3350: 003e6a06 br 2cfc <___vfprintf_internal_r+0x7b4> + 3354: d9014f17 ldw r4,1340(sp) + 3358: b00b883a mov r5,r22 + 335c: d9800c04 addi r6,sp,48 + 3360: d9c15115 stw r7,1348(sp) + 3364: 00024f00 call 24f0 <__sprint_r> + 3368: d9c15117 ldw r7,1348(sp) + 336c: 103e2e1e bne r2,zero,2c28 <___vfprintf_internal_r+0x6e0> + 3370: dc800e17 ldw r18,56(sp) + 3374: dc400d17 ldw r17,52(sp) + 3378: dd401904 addi r21,sp,100 + 337c: 003dba06 br 2a68 <___vfprintf_internal_r+0x520> + 3380: d9014f17 ldw r4,1340(sp) + 3384: b00b883a mov r5,r22 + 3388: d9800c04 addi r6,sp,48 + 338c: 00024f00 call 24f0 <__sprint_r> + 3390: 103e251e bne r2,zero,2c28 <___vfprintf_internal_r+0x6e0> + 3394: dc800e17 ldw r18,56(sp) + 3398: dc400d17 ldw r17,52(sp) + 339c: dcc01904 addi r19,sp,100 + 33a0: 003e4206 br 2cac <___vfprintf_internal_r+0x764> + 33a4: d9014f17 ldw r4,1340(sp) + 33a8: b00b883a mov r5,r22 + 33ac: d9800c04 addi r6,sp,48 + 33b0: 00024f00 call 24f0 <__sprint_r> + 33b4: 103e1c1e bne r2,zero,2c28 <___vfprintf_internal_r+0x6e0> + 33b8: dc800e17 ldw r18,56(sp) + 33bc: dc400d17 ldw r17,52(sp) + 33c0: d8c01904 addi r3,sp,100 + 33c4: 003e2e06 br 2c80 <___vfprintf_internal_r+0x738> + 33c8: d9414c17 ldw r5,1328(sp) + 33cc: 2880004c andi r2,r5,1 + 33d0: 1005003a cmpeq r2,r2,zero + 33d4: 103dda1e bne r2,zero,2b40 <___vfprintf_internal_r+0x5f8> + 33d8: 003e9f06 br 2e58 <___vfprintf_internal_r+0x910> + 33dc: d8c14117 ldw r3,1284(sp) + 33e0: 9125883a add r18,r18,r4 + 33e4: 8c400044 addi r17,r17,1 + 33e8: 008001c4 movi r2,7 + 33ec: a8c00015 stw r3,0(r21) + 33f0: a9000115 stw r4,4(r21) + 33f4: dc800e15 stw r18,56(sp) + 33f8: dc400d15 stw r17,52(sp) + 33fc: 14426c16 blt r2,r17,3db0 <___vfprintf_internal_r+0x1868> + 3400: a8c00204 addi r3,r21,8 + 3404: d9414917 ldw r5,1316(sp) + 3408: 00800044 movi r2,1 + 340c: 94800044 addi r18,r18,1 + 3410: 8c400044 addi r17,r17,1 + 3414: 18800115 stw r2,4(r3) + 3418: 008001c4 movi r2,7 + 341c: 19400015 stw r5,0(r3) + 3420: dc800e15 stw r18,56(sp) + 3424: dc400d15 stw r17,52(sp) + 3428: 2021883a mov r16,r4 + 342c: 14425616 blt r2,r17,3d88 <___vfprintf_internal_r+0x1840> + 3430: 19400204 addi r5,r3,8 + 3434: d9814717 ldw r6,1308(sp) + 3438: 8c400044 addi r17,r17,1 + 343c: dc400d15 stw r17,52(sp) + 3440: 3107c83a sub r3,r6,r4 + 3444: d9014117 ldw r4,1284(sp) + 3448: 90e5883a add r18,r18,r3 + 344c: 28c00115 stw r3,4(r5) + 3450: 8105883a add r2,r16,r4 + 3454: 28800015 stw r2,0(r5) + 3458: 008001c4 movi r2,7 + 345c: dc800e15 stw r18,56(sp) + 3460: 147f1d16 blt r2,r17,30d8 <___vfprintf_internal_r+0xb90> + 3464: 28c00204 addi r3,r5,8 + 3468: 003db506 br 2b40 <___vfprintf_internal_r+0x5f8> + 346c: 3c000017 ldw r16,0(r7) + 3470: 3c400117 ldw r17,4(r7) + 3474: 39800204 addi r6,r7,8 + 3478: 01000044 movi r4,1 + 347c: d9814015 stw r6,1280(sp) + 3480: d8000405 stb zero,16(sp) + 3484: 003ebe06 br 2f80 <___vfprintf_internal_r+0xa38> + 3488: 3c000017 ldw r16,0(r7) + 348c: 3c400117 ldw r17,4(r7) + 3490: 38800204 addi r2,r7,8 + 3494: d8814015 stw r2,1280(sp) + 3498: 003eb706 br 2f78 <___vfprintf_internal_r+0xa30> + 349c: 3c000017 ldw r16,0(r7) + 34a0: 3c400117 ldw r17,4(r7) + 34a4: 39000204 addi r4,r7,8 + 34a8: d9014015 stw r4,1280(sp) + 34ac: 0009883a mov r4,zero + 34b0: d8000405 stb zero,16(sp) + 34b4: 003eb206 br 2f80 <___vfprintf_internal_r+0xa38> + 34b8: 38c00017 ldw r3,0(r7) + 34bc: 39c00104 addi r7,r7,4 + 34c0: d8c14a15 stw r3,1320(sp) + 34c4: 1800d70e bge r3,zero,3824 <___vfprintf_internal_r+0x12dc> + 34c8: 00c7c83a sub r3,zero,r3 + 34cc: d8c14a15 stw r3,1320(sp) + 34d0: d9014c17 ldw r4,1328(sp) + 34d4: b8c00007 ldb r3,0(r23) + 34d8: 21000114 ori r4,r4,4 + 34dc: d9014c15 stw r4,1328(sp) + 34e0: 003c9806 br 2744 <___vfprintf_internal_r+0x1fc> + 34e4: d9814c17 ldw r6,1328(sp) + 34e8: 3080080c andi r2,r6,32 + 34ec: 1001f626 beq r2,zero,3cc8 <___vfprintf_internal_r+0x1780> + 34f0: d9014b17 ldw r4,1324(sp) + 34f4: 38800017 ldw r2,0(r7) + 34f8: 39c00104 addi r7,r7,4 + 34fc: d9c14015 stw r7,1280(sp) + 3500: 2007d7fa srai r3,r4,31 + 3504: d9c14017 ldw r7,1280(sp) + 3508: 11000015 stw r4,0(r2) + 350c: 10c00115 stw r3,4(r2) + 3510: 003c6906 br 26b8 <___vfprintf_internal_r+0x170> + 3514: b8c00007 ldb r3,0(r23) + 3518: 00801b04 movi r2,108 + 351c: 18825526 beq r3,r2,3e74 <___vfprintf_internal_r+0x192c> + 3520: d9414c17 ldw r5,1328(sp) + 3524: 29400414 ori r5,r5,16 + 3528: d9414c15 stw r5,1328(sp) + 352c: 003c8506 br 2744 <___vfprintf_internal_r+0x1fc> + 3530: d9814c17 ldw r6,1328(sp) + 3534: b8c00007 ldb r3,0(r23) + 3538: 31800814 ori r6,r6,32 + 353c: d9814c15 stw r6,1328(sp) + 3540: 003c8006 br 2744 <___vfprintf_internal_r+0x1fc> + 3544: d8814c17 ldw r2,1328(sp) + 3548: 3c000017 ldw r16,0(r7) + 354c: 00c01e04 movi r3,120 + 3550: 10800094 ori r2,r2,2 + 3554: d8814c15 stw r2,1328(sp) + 3558: 39c00104 addi r7,r7,4 + 355c: 01400074 movhi r5,1 + 3560: 29787004 addi r5,r5,-7744 + 3564: 00800c04 movi r2,48 + 3568: 0023883a mov r17,zero + 356c: 01000084 movi r4,2 + 3570: d9c14015 stw r7,1280(sp) + 3574: d8c14d15 stw r3,1332(sp) + 3578: d9414415 stw r5,1296(sp) + 357c: d8800445 stb r2,17(sp) + 3580: d8c00485 stb r3,18(sp) + 3584: d8000405 stb zero,16(sp) + 3588: 003e7d06 br 2f80 <___vfprintf_internal_r+0xa38> + 358c: d8814c17 ldw r2,1328(sp) + 3590: b8c00007 ldb r3,0(r23) + 3594: 10801014 ori r2,r2,64 + 3598: d8814c15 stw r2,1328(sp) + 359c: 003c6906 br 2744 <___vfprintf_internal_r+0x1fc> + 35a0: d9414c17 ldw r5,1328(sp) + 35a4: 2880020c andi r2,r5,8 + 35a8: 1001e526 beq r2,zero,3d40 <___vfprintf_internal_r+0x17f8> + 35ac: 39800017 ldw r6,0(r7) + 35b0: 38800204 addi r2,r7,8 + 35b4: d8814015 stw r2,1280(sp) + 35b8: d9814215 stw r6,1288(sp) + 35bc: 39c00117 ldw r7,4(r7) + 35c0: d9c14315 stw r7,1292(sp) + 35c4: d9014217 ldw r4,1288(sp) + 35c8: d9414317 ldw r5,1292(sp) + 35cc: 0007e900 call 7e90 <__isinfd> + 35d0: 10021d26 beq r2,zero,3e48 <___vfprintf_internal_r+0x1900> + 35d4: d9014217 ldw r4,1288(sp) + 35d8: d9414317 ldw r5,1292(sp) + 35dc: 000d883a mov r6,zero + 35e0: 000f883a mov r7,zero + 35e4: 0009a900 call 9a90 <__ltdf2> + 35e8: 1002d016 blt r2,zero,412c <___vfprintf_internal_r+0x1be4> + 35ec: d9414d17 ldw r5,1332(sp) + 35f0: 008011c4 movi r2,71 + 35f4: 11421016 blt r2,r5,3e38 <___vfprintf_internal_r+0x18f0> + 35f8: 01800074 movhi r6,1 + 35fc: 31b87504 addi r6,r6,-7724 + 3600: d9814115 stw r6,1284(sp) + 3604: d9014c17 ldw r4,1328(sp) + 3608: 00c000c4 movi r3,3 + 360c: 00bfdfc4 movi r2,-129 + 3610: 2088703a and r4,r4,r2 + 3614: 180f883a mov r7,r3 + 3618: d8c14515 stw r3,1300(sp) + 361c: d9014c15 stw r4,1328(sp) + 3620: d8014615 stw zero,1304(sp) + 3624: 003e6a06 br 2fd0 <___vfprintf_internal_r+0xa88> + 3628: 38800017 ldw r2,0(r7) + 362c: 00c00044 movi r3,1 + 3630: 39c00104 addi r7,r7,4 + 3634: d9c14015 stw r7,1280(sp) + 3638: d9000f04 addi r4,sp,60 + 363c: 180f883a mov r7,r3 + 3640: d8c14515 stw r3,1300(sp) + 3644: d9014115 stw r4,1284(sp) + 3648: d8800f05 stb r2,60(sp) + 364c: d8000405 stb zero,16(sp) + 3650: 003cac06 br 2904 <___vfprintf_internal_r+0x3bc> + 3654: 01400074 movhi r5,1 + 3658: 29787b04 addi r5,r5,-7700 + 365c: d9414415 stw r5,1296(sp) + 3660: d9814c17 ldw r6,1328(sp) + 3664: 3080080c andi r2,r6,32 + 3668: 1000ff26 beq r2,zero,3a68 <___vfprintf_internal_r+0x1520> + 366c: 3c000017 ldw r16,0(r7) + 3670: 3c400117 ldw r17,4(r7) + 3674: 38800204 addi r2,r7,8 + 3678: d8814015 stw r2,1280(sp) + 367c: d9414c17 ldw r5,1328(sp) + 3680: 2880004c andi r2,r5,1 + 3684: 1005003a cmpeq r2,r2,zero + 3688: 1000b91e bne r2,zero,3970 <___vfprintf_internal_r+0x1428> + 368c: 8444b03a or r2,r16,r17 + 3690: 1000b726 beq r2,zero,3970 <___vfprintf_internal_r+0x1428> + 3694: d9814d17 ldw r6,1332(sp) + 3698: 29400094 ori r5,r5,2 + 369c: 00800c04 movi r2,48 + 36a0: 01000084 movi r4,2 + 36a4: d9414c15 stw r5,1328(sp) + 36a8: d8800445 stb r2,17(sp) + 36ac: d9800485 stb r6,18(sp) + 36b0: d8000405 stb zero,16(sp) + 36b4: 003e3206 br 2f80 <___vfprintf_internal_r+0xa38> + 36b8: 01800074 movhi r6,1 + 36bc: 31b87004 addi r6,r6,-7744 + 36c0: d9814415 stw r6,1296(sp) + 36c4: 003fe606 br 3660 <___vfprintf_internal_r+0x1118> + 36c8: 00800ac4 movi r2,43 + 36cc: d8800405 stb r2,16(sp) + 36d0: b8c00007 ldb r3,0(r23) + 36d4: 003c1b06 br 2744 <___vfprintf_internal_r+0x1fc> + 36d8: d8814c17 ldw r2,1328(sp) + 36dc: b8c00007 ldb r3,0(r23) + 36e0: 10800054 ori r2,r2,1 + 36e4: d8814c15 stw r2,1328(sp) + 36e8: 003c1606 br 2744 <___vfprintf_internal_r+0x1fc> + 36ec: d8800407 ldb r2,16(sp) + 36f0: 10004c1e bne r2,zero,3824 <___vfprintf_internal_r+0x12dc> + 36f4: 00800804 movi r2,32 + 36f8: d8800405 stb r2,16(sp) + 36fc: b8c00007 ldb r3,0(r23) + 3700: 003c1006 br 2744 <___vfprintf_internal_r+0x1fc> + 3704: d9814c17 ldw r6,1328(sp) + 3708: b8c00007 ldb r3,0(r23) + 370c: 31800214 ori r6,r6,8 + 3710: d9814c15 stw r6,1328(sp) + 3714: 003c0b06 br 2744 <___vfprintf_internal_r+0x1fc> + 3718: 0009883a mov r4,zero + 371c: 04000244 movi r16,9 + 3720: 01400284 movi r5,10 + 3724: d9c15115 stw r7,1348(sp) + 3728: 0009fc80 call 9fc8 <__mulsi3> + 372c: b9000007 ldb r4,0(r23) + 3730: d8c14d17 ldw r3,1332(sp) + 3734: bdc00044 addi r23,r23,1 + 3738: d9014d15 stw r4,1332(sp) + 373c: d9414d17 ldw r5,1332(sp) + 3740: 1885883a add r2,r3,r2 + 3744: 113ff404 addi r4,r2,-48 + 3748: 28bff404 addi r2,r5,-48 + 374c: d9c15117 ldw r7,1348(sp) + 3750: 80bff32e bgeu r16,r2,3720 <___vfprintf_internal_r+0x11d8> + 3754: d9014a15 stw r4,1320(sp) + 3758: 003bfc06 br 274c <___vfprintf_internal_r+0x204> + 375c: d8814c17 ldw r2,1328(sp) + 3760: b8c00007 ldb r3,0(r23) + 3764: 10802014 ori r2,r2,128 + 3768: d8814c15 stw r2,1328(sp) + 376c: 003bf506 br 2744 <___vfprintf_internal_r+0x1fc> + 3770: b8c00007 ldb r3,0(r23) + 3774: 00800a84 movi r2,42 + 3778: bdc00044 addi r23,r23,1 + 377c: 18831826 beq r3,r2,43e0 <___vfprintf_internal_r+0x1e98> + 3780: d8c14d15 stw r3,1332(sp) + 3784: 18bff404 addi r2,r3,-48 + 3788: 00c00244 movi r3,9 + 378c: 18827b36 bltu r3,r2,417c <___vfprintf_internal_r+0x1c34> + 3790: 1821883a mov r16,r3 + 3794: 0009883a mov r4,zero + 3798: 01400284 movi r5,10 + 379c: d9c15115 stw r7,1348(sp) + 37a0: 0009fc80 call 9fc8 <__mulsi3> + 37a4: d9414d17 ldw r5,1332(sp) + 37a8: b9800007 ldb r6,0(r23) + 37ac: d9c15117 ldw r7,1348(sp) + 37b0: 1145883a add r2,r2,r5 + 37b4: 113ff404 addi r4,r2,-48 + 37b8: 30bff404 addi r2,r6,-48 + 37bc: d9814d15 stw r6,1332(sp) + 37c0: bdc00044 addi r23,r23,1 + 37c4: 80bff42e bgeu r16,r2,3798 <___vfprintf_internal_r+0x1250> + 37c8: 2027883a mov r19,r4 + 37cc: 203bdf0e bge r4,zero,274c <___vfprintf_internal_r+0x204> + 37d0: 04ffffc4 movi r19,-1 + 37d4: 003bdd06 br 274c <___vfprintf_internal_r+0x204> + 37d8: d8000405 stb zero,16(sp) + 37dc: 39800017 ldw r6,0(r7) + 37e0: 39c00104 addi r7,r7,4 + 37e4: d9c14015 stw r7,1280(sp) + 37e8: d9814115 stw r6,1284(sp) + 37ec: 3001c926 beq r6,zero,3f14 <___vfprintf_internal_r+0x19cc> + 37f0: 98000e16 blt r19,zero,382c <___vfprintf_internal_r+0x12e4> + 37f4: d9014117 ldw r4,1284(sp) + 37f8: 000b883a mov r5,zero + 37fc: 980d883a mov r6,r19 + 3800: 00065340 call 6534 + 3804: 10025926 beq r2,zero,416c <___vfprintf_internal_r+0x1c24> + 3808: d8c14117 ldw r3,1284(sp) + 380c: 10cfc83a sub r7,r2,r3 + 3810: 99c19e16 blt r19,r7,3e8c <___vfprintf_internal_r+0x1944> + 3814: d9c14515 stw r7,1300(sp) + 3818: 38000916 blt r7,zero,3840 <___vfprintf_internal_r+0x12f8> + 381c: d8014615 stw zero,1304(sp) + 3820: 003deb06 br 2fd0 <___vfprintf_internal_r+0xa88> + 3824: b8c00007 ldb r3,0(r23) + 3828: 003bc606 br 2744 <___vfprintf_internal_r+0x1fc> + 382c: d9014117 ldw r4,1284(sp) + 3830: 000247c0 call 247c + 3834: d8814515 stw r2,1300(sp) + 3838: 100f883a mov r7,r2 + 383c: 103ff70e bge r2,zero,381c <___vfprintf_internal_r+0x12d4> + 3840: d8014515 stw zero,1300(sp) + 3844: d8014615 stw zero,1304(sp) + 3848: 003de106 br 2fd0 <___vfprintf_internal_r+0xa88> + 384c: 20c03fcc andi r3,r4,255 + 3850: 00800044 movi r2,1 + 3854: 18802d26 beq r3,r2,390c <___vfprintf_internal_r+0x13c4> + 3858: 18800e36 bltu r3,r2,3894 <___vfprintf_internal_r+0x134c> + 385c: 00800084 movi r2,2 + 3860: 1880fa26 beq r3,r2,3c4c <___vfprintf_internal_r+0x1704> + 3864: 01000074 movhi r4,1 + 3868: 21388004 addi r4,r4,-7680 + 386c: 000247c0 call 247c + 3870: 100f883a mov r7,r2 + 3874: dcc14515 stw r19,1300(sp) + 3878: 9880010e bge r19,r2,3880 <___vfprintf_internal_r+0x1338> + 387c: d8814515 stw r2,1300(sp) + 3880: 00800074 movhi r2,1 + 3884: 10b88004 addi r2,r2,-7680 + 3888: dcc14615 stw r19,1304(sp) + 388c: d8814115 stw r2,1284(sp) + 3890: 003dcf06 br 2fd0 <___vfprintf_internal_r+0xa88> + 3894: d9401904 addi r5,sp,100 + 3898: dd000f04 addi r20,sp,60 + 389c: d9414115 stw r5,1284(sp) + 38a0: 880a977a slli r5,r17,29 + 38a4: d9814117 ldw r6,1284(sp) + 38a8: 8004d0fa srli r2,r16,3 + 38ac: 8806d0fa srli r3,r17,3 + 38b0: 810001cc andi r4,r16,7 + 38b4: 2884b03a or r2,r5,r2 + 38b8: 31bfffc4 addi r6,r6,-1 + 38bc: 21000c04 addi r4,r4,48 + 38c0: d9814115 stw r6,1284(sp) + 38c4: 10cab03a or r5,r2,r3 + 38c8: 31000005 stb r4,0(r6) + 38cc: 1021883a mov r16,r2 + 38d0: 1823883a mov r17,r3 + 38d4: 283ff21e bne r5,zero,38a0 <___vfprintf_internal_r+0x1358> + 38d8: d8c14c17 ldw r3,1328(sp) + 38dc: 1880004c andi r2,r3,1 + 38e0: 1005003a cmpeq r2,r2,zero + 38e4: 103db31e bne r2,zero,2fb4 <___vfprintf_internal_r+0xa6c> + 38e8: 20803fcc andi r2,r4,255 + 38ec: 1080201c xori r2,r2,128 + 38f0: 10bfe004 addi r2,r2,-128 + 38f4: 00c00c04 movi r3,48 + 38f8: 10fdae26 beq r2,r3,2fb4 <___vfprintf_internal_r+0xa6c> + 38fc: 31bfffc4 addi r6,r6,-1 + 3900: d9814115 stw r6,1284(sp) + 3904: 30c00005 stb r3,0(r6) + 3908: 003daa06 br 2fb4 <___vfprintf_internal_r+0xa6c> + 390c: 88800068 cmpgeui r2,r17,1 + 3910: 10002c1e bne r2,zero,39c4 <___vfprintf_internal_r+0x147c> + 3914: 8800021e bne r17,zero,3920 <___vfprintf_internal_r+0x13d8> + 3918: 00800244 movi r2,9 + 391c: 14002936 bltu r2,r16,39c4 <___vfprintf_internal_r+0x147c> + 3920: d90018c4 addi r4,sp,99 + 3924: dd000f04 addi r20,sp,60 + 3928: d9014115 stw r4,1284(sp) + 392c: d9014117 ldw r4,1284(sp) + 3930: 80800c04 addi r2,r16,48 + 3934: 20800005 stb r2,0(r4) + 3938: 003d9e06 br 2fb4 <___vfprintf_internal_r+0xa6c> + 393c: dc400d17 ldw r17,52(sp) + 3940: 07000074 movhi fp,1 + 3944: e7388784 addi fp,fp,-7650 + 3948: 9425883a add r18,r18,r16 + 394c: 8c400044 addi r17,r17,1 + 3950: 008001c4 movi r2,7 + 3954: 1f000015 stw fp,0(r3) + 3958: 1c000115 stw r16,4(r3) + 395c: dc800e15 stw r18,56(sp) + 3960: dc400d15 stw r17,52(sp) + 3964: 147ddc16 blt r2,r17,30d8 <___vfprintf_internal_r+0xb90> + 3968: 18c00204 addi r3,r3,8 + 396c: 003c7406 br 2b40 <___vfprintf_internal_r+0x5f8> + 3970: 01000084 movi r4,2 + 3974: d8000405 stb zero,16(sp) + 3978: 003d8106 br 2f80 <___vfprintf_internal_r+0xa38> + 397c: d9814c17 ldw r6,1328(sp) + 3980: 30c4703a and r2,r6,r3 + 3984: 1005003a cmpeq r2,r2,zero + 3988: 103cb326 beq r2,zero,2c58 <___vfprintf_internal_r+0x710> + 398c: d9014117 ldw r4,1284(sp) + 3990: 94800044 addi r18,r18,1 + 3994: 8c400044 addi r17,r17,1 + 3998: 008001c4 movi r2,7 + 399c: a9000015 stw r4,0(r21) + 39a0: a8c00115 stw r3,4(r21) + 39a4: dc800e15 stw r18,56(sp) + 39a8: dc400d15 stw r17,52(sp) + 39ac: 147e6016 blt r2,r17,3330 <___vfprintf_internal_r+0xde8> + 39b0: acc00204 addi r19,r21,8 + 39b4: 003cd106 br 2cfc <___vfprintf_internal_r+0x7b4> + 39b8: 07000074 movhi fp,1 + 39bc: e7388784 addi fp,fp,-7650 + 39c0: 003c4906 br 2ae8 <___vfprintf_internal_r+0x5a0> + 39c4: dd000f04 addi r20,sp,60 + 39c8: dc801904 addi r18,sp,100 + 39cc: 8009883a mov r4,r16 + 39d0: 880b883a mov r5,r17 + 39d4: 01800284 movi r6,10 + 39d8: 000f883a mov r7,zero + 39dc: 00086f00 call 86f0 <__umoddi3> + 39e0: 12000c04 addi r8,r2,48 + 39e4: 94bfffc4 addi r18,r18,-1 + 39e8: 8009883a mov r4,r16 + 39ec: 880b883a mov r5,r17 + 39f0: 01800284 movi r6,10 + 39f4: 000f883a mov r7,zero + 39f8: 92000005 stb r8,0(r18) + 39fc: 00080840 call 8084 <__udivdi3> + 3a00: 1009883a mov r4,r2 + 3a04: 1021883a mov r16,r2 + 3a08: 18800068 cmpgeui r2,r3,1 + 3a0c: 1823883a mov r17,r3 + 3a10: 103fee1e bne r2,zero,39cc <___vfprintf_internal_r+0x1484> + 3a14: 1800021e bne r3,zero,3a20 <___vfprintf_internal_r+0x14d8> + 3a18: 00800244 movi r2,9 + 3a1c: 113feb36 bltu r2,r4,39cc <___vfprintf_internal_r+0x1484> + 3a20: 94bfffc4 addi r18,r18,-1 + 3a24: dc814115 stw r18,1284(sp) + 3a28: 003fc006 br 392c <___vfprintf_internal_r+0x13e4> + 3a2c: d9014c17 ldw r4,1328(sp) + 3a30: 2080004c andi r2,r4,1 + 3a34: 10009a1e bne r2,zero,3ca0 <___vfprintf_internal_r+0x1758> + 3a38: d9401904 addi r5,sp,100 + 3a3c: dd000f04 addi r20,sp,60 + 3a40: d9414115 stw r5,1284(sp) + 3a44: 003d5b06 br 2fb4 <___vfprintf_internal_r+0xa6c> + 3a48: d9014f17 ldw r4,1340(sp) + 3a4c: b00b883a mov r5,r22 + 3a50: d9800c04 addi r6,sp,48 + 3a54: 00024f00 call 24f0 <__sprint_r> + 3a58: 103c731e bne r2,zero,2c28 <___vfprintf_internal_r+0x6e0> + 3a5c: dc800e17 ldw r18,56(sp) + 3a60: d8c01904 addi r3,sp,100 + 3a64: 003cf906 br 2e4c <___vfprintf_internal_r+0x904> + 3a68: d8c14c17 ldw r3,1328(sp) + 3a6c: 1880040c andi r2,r3,16 + 3a70: 1000711e bne r2,zero,3c38 <___vfprintf_internal_r+0x16f0> + 3a74: d9014c17 ldw r4,1328(sp) + 3a78: 2080100c andi r2,r4,64 + 3a7c: 10006e26 beq r2,zero,3c38 <___vfprintf_internal_r+0x16f0> + 3a80: 3c00000b ldhu r16,0(r7) + 3a84: 0023883a mov r17,zero + 3a88: 39c00104 addi r7,r7,4 + 3a8c: d9c14015 stw r7,1280(sp) + 3a90: 003efa06 br 367c <___vfprintf_internal_r+0x1134> + 3a94: dc400d17 ldw r17,52(sp) + 3a98: 07000074 movhi fp,1 + 3a9c: e7388784 addi fp,fp,-7650 + 3aa0: 9425883a add r18,r18,r16 + 3aa4: 8c400044 addi r17,r17,1 + 3aa8: 008001c4 movi r2,7 + 3aac: 1f000015 stw fp,0(r3) + 3ab0: 1c000115 stw r16,4(r3) + 3ab4: dc800e15 stw r18,56(sp) + 3ab8: dc400d15 stw r17,52(sp) + 3abc: 147d7016 blt r2,r17,3080 <___vfprintf_internal_r+0xb38> + 3ac0: 18c00204 addi r3,r3,8 + 3ac4: 003d7506 br 309c <___vfprintf_internal_r+0xb54> + 3ac8: dc800e17 ldw r18,56(sp) + 3acc: dc400d17 ldw r17,52(sp) + 3ad0: 07000074 movhi fp,1 + 3ad4: e7388b84 addi fp,fp,-7634 + 3ad8: 003bba06 br 29c4 <___vfprintf_internal_r+0x47c> + 3adc: d9014f17 ldw r4,1340(sp) + 3ae0: b00b883a mov r5,r22 + 3ae4: d9800c04 addi r6,sp,48 + 3ae8: 00024f00 call 24f0 <__sprint_r> + 3aec: 103c4e1e bne r2,zero,2c28 <___vfprintf_internal_r+0x6e0> + 3af0: dc800e17 ldw r18,56(sp) + 3af4: d8c01904 addi r3,sp,100 + 3af8: 003ce306 br 2e88 <___vfprintf_internal_r+0x940> + 3afc: 3c000017 ldw r16,0(r7) + 3b00: 0009883a mov r4,zero + 3b04: 39c00104 addi r7,r7,4 + 3b08: 0023883a mov r17,zero + 3b0c: d9c14015 stw r7,1280(sp) + 3b10: d8000405 stb zero,16(sp) + 3b14: 003d1a06 br 2f80 <___vfprintf_internal_r+0xa38> + 3b18: 38800017 ldw r2,0(r7) + 3b1c: 39c00104 addi r7,r7,4 + 3b20: d9c14015 stw r7,1280(sp) + 3b24: 1023d7fa srai r17,r2,31 + 3b28: 1021883a mov r16,r2 + 3b2c: 003d1206 br 2f78 <___vfprintf_internal_r+0xa30> + 3b30: 3c000017 ldw r16,0(r7) + 3b34: 01000044 movi r4,1 + 3b38: 39c00104 addi r7,r7,4 + 3b3c: 0023883a mov r17,zero + 3b40: d9c14015 stw r7,1280(sp) + 3b44: d8000405 stb zero,16(sp) + 3b48: 003d0d06 br 2f80 <___vfprintf_internal_r+0xa38> + 3b4c: 00800074 movhi r2,1 + 3b50: 10b88704 addi r2,r2,-7652 + 3b54: 94800044 addi r18,r18,1 + 3b58: 8c400044 addi r17,r17,1 + 3b5c: a8800015 stw r2,0(r21) + 3b60: 00c00044 movi r3,1 + 3b64: 008001c4 movi r2,7 + 3b68: a8c00115 stw r3,4(r21) + 3b6c: dc800e15 stw r18,56(sp) + 3b70: dc400d15 stw r17,52(sp) + 3b74: 1440ca16 blt r2,r17,3ea0 <___vfprintf_internal_r+0x1958> + 3b78: a8c00204 addi r3,r21,8 + 3b7c: 2000061e bne r4,zero,3b98 <___vfprintf_internal_r+0x1650> + 3b80: d9414717 ldw r5,1308(sp) + 3b84: 2800041e bne r5,zero,3b98 <___vfprintf_internal_r+0x1650> + 3b88: d9814c17 ldw r6,1328(sp) + 3b8c: 3080004c andi r2,r6,1 + 3b90: 1005003a cmpeq r2,r2,zero + 3b94: 103bea1e bne r2,zero,2b40 <___vfprintf_internal_r+0x5f8> + 3b98: 00800044 movi r2,1 + 3b9c: dc400d17 ldw r17,52(sp) + 3ba0: 18800115 stw r2,4(r3) + 3ba4: d8814917 ldw r2,1316(sp) + 3ba8: 94800044 addi r18,r18,1 + 3bac: 8c400044 addi r17,r17,1 + 3bb0: 18800015 stw r2,0(r3) + 3bb4: 008001c4 movi r2,7 + 3bb8: dc800e15 stw r18,56(sp) + 3bbc: dc400d15 stw r17,52(sp) + 3bc0: 1440ca16 blt r2,r17,3eec <___vfprintf_internal_r+0x19a4> + 3bc4: 18c00204 addi r3,r3,8 + 3bc8: 0121c83a sub r16,zero,r4 + 3bcc: 0400500e bge zero,r16,3d10 <___vfprintf_internal_r+0x17c8> + 3bd0: 00800404 movi r2,16 + 3bd4: 1400800e bge r2,r16,3dd8 <___vfprintf_internal_r+0x1890> + 3bd8: 1027883a mov r19,r2 + 3bdc: 07000074 movhi fp,1 + 3be0: e7388784 addi fp,fp,-7650 + 3be4: 050001c4 movi r20,7 + 3be8: 00000306 br 3bf8 <___vfprintf_internal_r+0x16b0> + 3bec: 18c00204 addi r3,r3,8 + 3bf0: 843ffc04 addi r16,r16,-16 + 3bf4: 9c007a0e bge r19,r16,3de0 <___vfprintf_internal_r+0x1898> + 3bf8: 94800404 addi r18,r18,16 + 3bfc: 8c400044 addi r17,r17,1 + 3c00: 1f000015 stw fp,0(r3) + 3c04: 1cc00115 stw r19,4(r3) + 3c08: dc800e15 stw r18,56(sp) + 3c0c: dc400d15 stw r17,52(sp) + 3c10: a47ff60e bge r20,r17,3bec <___vfprintf_internal_r+0x16a4> + 3c14: d9014f17 ldw r4,1340(sp) + 3c18: b00b883a mov r5,r22 + 3c1c: d9800c04 addi r6,sp,48 + 3c20: 00024f00 call 24f0 <__sprint_r> + 3c24: 103c001e bne r2,zero,2c28 <___vfprintf_internal_r+0x6e0> + 3c28: dc800e17 ldw r18,56(sp) + 3c2c: dc400d17 ldw r17,52(sp) + 3c30: d8c01904 addi r3,sp,100 + 3c34: 003fee06 br 3bf0 <___vfprintf_internal_r+0x16a8> + 3c38: 3c000017 ldw r16,0(r7) + 3c3c: 0023883a mov r17,zero + 3c40: 39c00104 addi r7,r7,4 + 3c44: d9c14015 stw r7,1280(sp) + 3c48: 003e8c06 br 367c <___vfprintf_internal_r+0x1134> + 3c4c: d9401904 addi r5,sp,100 + 3c50: dd000f04 addi r20,sp,60 + 3c54: d9414115 stw r5,1284(sp) + 3c58: d9814417 ldw r6,1296(sp) + 3c5c: 880a973a slli r5,r17,28 + 3c60: 8004d13a srli r2,r16,4 + 3c64: 810003cc andi r4,r16,15 + 3c68: 3109883a add r4,r6,r4 + 3c6c: 2884b03a or r2,r5,r2 + 3c70: 21400003 ldbu r5,0(r4) + 3c74: d9014117 ldw r4,1284(sp) + 3c78: 8806d13a srli r3,r17,4 + 3c7c: 1021883a mov r16,r2 + 3c80: 213fffc4 addi r4,r4,-1 + 3c84: d9014115 stw r4,1284(sp) + 3c88: d9814117 ldw r6,1284(sp) + 3c8c: 10c8b03a or r4,r2,r3 + 3c90: 1823883a mov r17,r3 + 3c94: 31400005 stb r5,0(r6) + 3c98: 203fef1e bne r4,zero,3c58 <___vfprintf_internal_r+0x1710> + 3c9c: 003cc506 br 2fb4 <___vfprintf_internal_r+0xa6c> + 3ca0: 00800c04 movi r2,48 + 3ca4: d98018c4 addi r6,sp,99 + 3ca8: dd000f04 addi r20,sp,60 + 3cac: d88018c5 stb r2,99(sp) + 3cb0: d9814115 stw r6,1284(sp) + 3cb4: 003cbf06 br 2fb4 <___vfprintf_internal_r+0xa6c> + 3cb8: dc400d17 ldw r17,52(sp) + 3cbc: 07000074 movhi fp,1 + 3cc0: e7388b84 addi fp,fp,-7634 + 3cc4: 003bc106 br 2bcc <___vfprintf_internal_r+0x684> + 3cc8: d9414c17 ldw r5,1328(sp) + 3ccc: 2880040c andi r2,r5,16 + 3cd0: 10007c26 beq r2,zero,3ec4 <___vfprintf_internal_r+0x197c> + 3cd4: 38800017 ldw r2,0(r7) + 3cd8: 39c00104 addi r7,r7,4 + 3cdc: d9c14015 stw r7,1280(sp) + 3ce0: d9814b17 ldw r6,1324(sp) + 3ce4: d9c14017 ldw r7,1280(sp) + 3ce8: 11800015 stw r6,0(r2) + 3cec: 003a7206 br 26b8 <___vfprintf_internal_r+0x170> + 3cf0: d9014f17 ldw r4,1340(sp) + 3cf4: b00b883a mov r5,r22 + 3cf8: d9800c04 addi r6,sp,48 + 3cfc: 00024f00 call 24f0 <__sprint_r> + 3d00: 103bc91e bne r2,zero,2c28 <___vfprintf_internal_r+0x6e0> + 3d04: dc800e17 ldw r18,56(sp) + 3d08: dc400d17 ldw r17,52(sp) + 3d0c: d8c01904 addi r3,sp,100 + 3d10: d9014717 ldw r4,1308(sp) + 3d14: d9414117 ldw r5,1284(sp) + 3d18: 8c400044 addi r17,r17,1 + 3d1c: 9125883a add r18,r18,r4 + 3d20: 008001c4 movi r2,7 + 3d24: 19400015 stw r5,0(r3) + 3d28: 19000115 stw r4,4(r3) + 3d2c: dc800e15 stw r18,56(sp) + 3d30: dc400d15 stw r17,52(sp) + 3d34: 147ce816 blt r2,r17,30d8 <___vfprintf_internal_r+0xb90> + 3d38: 18c00204 addi r3,r3,8 + 3d3c: 003b8006 br 2b40 <___vfprintf_internal_r+0x5f8> + 3d40: 38c00017 ldw r3,0(r7) + 3d44: 39000204 addi r4,r7,8 + 3d48: d9014015 stw r4,1280(sp) + 3d4c: d8c14215 stw r3,1288(sp) + 3d50: 39c00117 ldw r7,4(r7) + 3d54: d9c14315 stw r7,1292(sp) + 3d58: 003e1a06 br 35c4 <___vfprintf_internal_r+0x107c> + 3d5c: 0005883a mov r2,zero + 3d60: 1409c83a sub r4,r2,r16 + 3d64: 1105803a cmpltu r2,r2,r4 + 3d68: 044bc83a sub r5,zero,r17 + 3d6c: 2885c83a sub r2,r5,r2 + 3d70: 2021883a mov r16,r4 + 3d74: 1023883a mov r17,r2 + 3d78: 01000044 movi r4,1 + 3d7c: 00800b44 movi r2,45 + 3d80: d8800405 stb r2,16(sp) + 3d84: 003c7e06 br 2f80 <___vfprintf_internal_r+0xa38> + 3d88: d9014f17 ldw r4,1340(sp) + 3d8c: b00b883a mov r5,r22 + 3d90: d9800c04 addi r6,sp,48 + 3d94: 00024f00 call 24f0 <__sprint_r> + 3d98: 103ba31e bne r2,zero,2c28 <___vfprintf_internal_r+0x6e0> + 3d9c: dc800e17 ldw r18,56(sp) + 3da0: dc400d17 ldw r17,52(sp) + 3da4: d9000517 ldw r4,20(sp) + 3da8: d9401904 addi r5,sp,100 + 3dac: 003da106 br 3434 <___vfprintf_internal_r+0xeec> + 3db0: d9014f17 ldw r4,1340(sp) + 3db4: b00b883a mov r5,r22 + 3db8: d9800c04 addi r6,sp,48 + 3dbc: 00024f00 call 24f0 <__sprint_r> + 3dc0: 103b991e bne r2,zero,2c28 <___vfprintf_internal_r+0x6e0> + 3dc4: dc800e17 ldw r18,56(sp) + 3dc8: dc400d17 ldw r17,52(sp) + 3dcc: d9000517 ldw r4,20(sp) + 3dd0: d8c01904 addi r3,sp,100 + 3dd4: 003d8b06 br 3404 <___vfprintf_internal_r+0xebc> + 3dd8: 07000074 movhi fp,1 + 3ddc: e7388784 addi fp,fp,-7650 + 3de0: 9425883a add r18,r18,r16 + 3de4: 8c400044 addi r17,r17,1 + 3de8: 008001c4 movi r2,7 + 3dec: 1f000015 stw fp,0(r3) + 3df0: 1c000115 stw r16,4(r3) + 3df4: dc800e15 stw r18,56(sp) + 3df8: dc400d15 stw r17,52(sp) + 3dfc: 147fbc16 blt r2,r17,3cf0 <___vfprintf_internal_r+0x17a8> + 3e00: 18c00204 addi r3,r3,8 + 3e04: 003fc206 br 3d10 <___vfprintf_internal_r+0x17c8> + 3e08: d9014f17 ldw r4,1340(sp) + 3e0c: b00b883a mov r5,r22 + 3e10: d9800c04 addi r6,sp,48 + 3e14: 00024f00 call 24f0 <__sprint_r> + 3e18: 103b831e bne r2,zero,2c28 <___vfprintf_internal_r+0x6e0> + 3e1c: dc800e17 ldw r18,56(sp) + 3e20: d9000517 ldw r4,20(sp) + 3e24: d8c01904 addi r3,sp,100 + 3e28: 003cfc06 br 321c <___vfprintf_internal_r+0xcd4> + 3e2c: 07000074 movhi fp,1 + 3e30: e7388784 addi fp,fp,-7650 + 3e34: 003bde06 br 2db0 <___vfprintf_internal_r+0x868> + 3e38: 00800074 movhi r2,1 + 3e3c: 10b87604 addi r2,r2,-7720 + 3e40: d8814115 stw r2,1284(sp) + 3e44: 003def06 br 3604 <___vfprintf_internal_r+0x10bc> + 3e48: d9014217 ldw r4,1288(sp) + 3e4c: d9414317 ldw r5,1292(sp) + 3e50: 0007ed00 call 7ed0 <__isnand> + 3e54: 10003926 beq r2,zero,3f3c <___vfprintf_internal_r+0x19f4> + 3e58: d9414d17 ldw r5,1332(sp) + 3e5c: 008011c4 movi r2,71 + 3e60: 1140ce16 blt r2,r5,419c <___vfprintf_internal_r+0x1c54> + 3e64: 01800074 movhi r6,1 + 3e68: 31b87704 addi r6,r6,-7716 + 3e6c: d9814115 stw r6,1284(sp) + 3e70: 003de406 br 3604 <___vfprintf_internal_r+0x10bc> + 3e74: d9014c17 ldw r4,1328(sp) + 3e78: bdc00044 addi r23,r23,1 + 3e7c: b8c00007 ldb r3,0(r23) + 3e80: 21000814 ori r4,r4,32 + 3e84: d9014c15 stw r4,1328(sp) + 3e88: 003a2e06 br 2744 <___vfprintf_internal_r+0x1fc> + 3e8c: dcc14515 stw r19,1300(sp) + 3e90: 98011016 blt r19,zero,42d4 <___vfprintf_internal_r+0x1d8c> + 3e94: 980f883a mov r7,r19 + 3e98: d8014615 stw zero,1304(sp) + 3e9c: 003c4c06 br 2fd0 <___vfprintf_internal_r+0xa88> + 3ea0: d9014f17 ldw r4,1340(sp) + 3ea4: b00b883a mov r5,r22 + 3ea8: d9800c04 addi r6,sp,48 + 3eac: 00024f00 call 24f0 <__sprint_r> + 3eb0: 103b5d1e bne r2,zero,2c28 <___vfprintf_internal_r+0x6e0> + 3eb4: dc800e17 ldw r18,56(sp) + 3eb8: d9000517 ldw r4,20(sp) + 3ebc: d8c01904 addi r3,sp,100 + 3ec0: 003f2e06 br 3b7c <___vfprintf_internal_r+0x1634> + 3ec4: d8c14c17 ldw r3,1328(sp) + 3ec8: 1880100c andi r2,r3,64 + 3ecc: 1000a026 beq r2,zero,4150 <___vfprintf_internal_r+0x1c08> + 3ed0: 38800017 ldw r2,0(r7) + 3ed4: 39c00104 addi r7,r7,4 + 3ed8: d9c14015 stw r7,1280(sp) + 3edc: d9014b17 ldw r4,1324(sp) + 3ee0: d9c14017 ldw r7,1280(sp) + 3ee4: 1100000d sth r4,0(r2) + 3ee8: 0039f306 br 26b8 <___vfprintf_internal_r+0x170> + 3eec: d9014f17 ldw r4,1340(sp) + 3ef0: b00b883a mov r5,r22 + 3ef4: d9800c04 addi r6,sp,48 + 3ef8: 00024f00 call 24f0 <__sprint_r> + 3efc: 103b4a1e bne r2,zero,2c28 <___vfprintf_internal_r+0x6e0> + 3f00: dc800e17 ldw r18,56(sp) + 3f04: dc400d17 ldw r17,52(sp) + 3f08: d9000517 ldw r4,20(sp) + 3f0c: d8c01904 addi r3,sp,100 + 3f10: 003f2d06 br 3bc8 <___vfprintf_internal_r+0x1680> + 3f14: 00800184 movi r2,6 + 3f18: 14c09a36 bltu r2,r19,4184 <___vfprintf_internal_r+0x1c3c> + 3f1c: dcc14515 stw r19,1300(sp) + 3f20: 9800010e bge r19,zero,3f28 <___vfprintf_internal_r+0x19e0> + 3f24: d8014515 stw zero,1300(sp) + 3f28: 00800074 movhi r2,1 + 3f2c: 10b87904 addi r2,r2,-7708 + 3f30: 980f883a mov r7,r19 + 3f34: d8814115 stw r2,1284(sp) + 3f38: 003a7206 br 2904 <___vfprintf_internal_r+0x3bc> + 3f3c: 00bfffc4 movi r2,-1 + 3f40: 9880e226 beq r19,r2,42cc <___vfprintf_internal_r+0x1d84> + 3f44: d9414d17 ldw r5,1332(sp) + 3f48: 008019c4 movi r2,103 + 3f4c: 2880dc26 beq r5,r2,42c0 <___vfprintf_internal_r+0x1d78> + 3f50: 008011c4 movi r2,71 + 3f54: 2880da26 beq r5,r2,42c0 <___vfprintf_internal_r+0x1d78> + 3f58: d9414c17 ldw r5,1328(sp) + 3f5c: d9014317 ldw r4,1292(sp) + 3f60: d9814217 ldw r6,1288(sp) + 3f64: 29404014 ori r5,r5,256 + 3f68: d9414c15 stw r5,1328(sp) + 3f6c: 2000cc16 blt r4,zero,42a0 <___vfprintf_internal_r+0x1d58> + 3f70: 3021883a mov r16,r6 + 3f74: 2023883a mov r17,r4 + 3f78: 0039883a mov fp,zero + 3f7c: d9414d17 ldw r5,1332(sp) + 3f80: 00801984 movi r2,102 + 3f84: 2880b726 beq r5,r2,4264 <___vfprintf_internal_r+0x1d1c> + 3f88: 00801184 movi r2,70 + 3f8c: 2880b526 beq r5,r2,4264 <___vfprintf_internal_r+0x1d1c> + 3f90: 00801944 movi r2,101 + 3f94: 2880c826 beq r5,r2,42b8 <___vfprintf_internal_r+0x1d70> + 3f98: 00801144 movi r2,69 + 3f9c: 2880c626 beq r5,r2,42b8 <___vfprintf_internal_r+0x1d70> + 3fa0: 9829883a mov r20,r19 + 3fa4: d9014f17 ldw r4,1340(sp) + 3fa8: d8800504 addi r2,sp,20 + 3fac: 880d883a mov r6,r17 + 3fb0: d8800115 stw r2,4(sp) + 3fb4: d8c00604 addi r3,sp,24 + 3fb8: d8800704 addi r2,sp,28 + 3fbc: 800b883a mov r5,r16 + 3fc0: 01c00084 movi r7,2 + 3fc4: d8c00215 stw r3,8(sp) + 3fc8: d8800315 stw r2,12(sp) + 3fcc: dd000015 stw r20,0(sp) + 3fd0: 00048980 call 4898 <_dtoa_r> + 3fd4: d9814d17 ldw r6,1332(sp) + 3fd8: d8814115 stw r2,1284(sp) + 3fdc: 008019c4 movi r2,103 + 3fe0: 30809526 beq r6,r2,4238 <___vfprintf_internal_r+0x1cf0> + 3fe4: d8c14d17 ldw r3,1332(sp) + 3fe8: 008011c4 movi r2,71 + 3fec: 18809226 beq r3,r2,4238 <___vfprintf_internal_r+0x1cf0> + 3ff0: d9414117 ldw r5,1284(sp) + 3ff4: d9814d17 ldw r6,1332(sp) + 3ff8: 00801984 movi r2,102 + 3ffc: 2d25883a add r18,r5,r20 + 4000: 30808626 beq r6,r2,421c <___vfprintf_internal_r+0x1cd4> + 4004: 00801184 movi r2,70 + 4008: 30808426 beq r6,r2,421c <___vfprintf_internal_r+0x1cd4> + 400c: 000d883a mov r6,zero + 4010: 000f883a mov r7,zero + 4014: 880b883a mov r5,r17 + 4018: 8009883a mov r4,r16 + 401c: 00098700 call 9870 <__eqdf2> + 4020: 1000751e bne r2,zero,41f8 <___vfprintf_internal_r+0x1cb0> + 4024: 9005883a mov r2,r18 + 4028: dc800715 stw r18,28(sp) + 402c: d9014117 ldw r4,1284(sp) + 4030: d9414d17 ldw r5,1332(sp) + 4034: 00c019c4 movi r3,103 + 4038: 1125c83a sub r18,r2,r4 + 403c: 28c06826 beq r5,r3,41e0 <___vfprintf_internal_r+0x1c98> + 4040: 008011c4 movi r2,71 + 4044: 28806626 beq r5,r2,41e0 <___vfprintf_internal_r+0x1c98> + 4048: d9000517 ldw r4,20(sp) + 404c: d8c14d17 ldw r3,1332(sp) + 4050: 00801944 movi r2,101 + 4054: 10c05516 blt r2,r3,41ac <___vfprintf_internal_r+0x1c64> + 4058: 213fffc4 addi r4,r4,-1 + 405c: d9000515 stw r4,20(sp) + 4060: d8c00805 stb r3,32(sp) + 4064: 2021883a mov r16,r4 + 4068: 2000c116 blt r4,zero,4370 <___vfprintf_internal_r+0x1e28> + 406c: 00800ac4 movi r2,43 + 4070: d8800845 stb r2,33(sp) + 4074: 00800244 movi r2,9 + 4078: 1400af0e bge r2,r16,4338 <___vfprintf_internal_r+0x1df0> + 407c: 1027883a mov r19,r2 + 4080: dc400b84 addi r17,sp,46 + 4084: 8009883a mov r4,r16 + 4088: 01400284 movi r5,10 + 408c: 0009f580 call 9f58 <__modsi3> + 4090: 10800c04 addi r2,r2,48 + 4094: 8c7fffc4 addi r17,r17,-1 + 4098: 8009883a mov r4,r16 + 409c: 01400284 movi r5,10 + 40a0: 88800005 stb r2,0(r17) + 40a4: 0009ef80 call 9ef8 <__divsi3> + 40a8: 1021883a mov r16,r2 + 40ac: 98bff516 blt r19,r2,4084 <___vfprintf_internal_r+0x1b3c> + 40b0: 10c00c04 addi r3,r2,48 + 40b4: d88009c4 addi r2,sp,39 + 40b8: 108001c4 addi r2,r2,7 + 40bc: 897fffc4 addi r5,r17,-1 + 40c0: 88ffffc5 stb r3,-1(r17) + 40c4: 2880a72e bgeu r5,r2,4364 <___vfprintf_internal_r+0x1e1c> + 40c8: 1009883a mov r4,r2 + 40cc: d9800804 addi r6,sp,32 + 40d0: d8c00884 addi r3,sp,34 + 40d4: 28800003 ldbu r2,0(r5) + 40d8: 29400044 addi r5,r5,1 + 40dc: 18800005 stb r2,0(r3) + 40e0: 18c00044 addi r3,r3,1 + 40e4: 293ffb36 bltu r5,r4,40d4 <___vfprintf_internal_r+0x1b8c> + 40e8: 1987c83a sub r3,r3,r6 + 40ec: 00800044 movi r2,1 + 40f0: d8c14815 stw r3,1312(sp) + 40f4: 90cf883a add r7,r18,r3 + 40f8: 1480960e bge r2,r18,4354 <___vfprintf_internal_r+0x1e0c> + 40fc: 39c00044 addi r7,r7,1 + 4100: d9c14515 stw r7,1300(sp) + 4104: 38003416 blt r7,zero,41d8 <___vfprintf_internal_r+0x1c90> + 4108: e0803fcc andi r2,fp,255 + 410c: 1080201c xori r2,r2,128 + 4110: 10bfe004 addi r2,r2,-128 + 4114: 10004e26 beq r2,zero,4250 <___vfprintf_internal_r+0x1d08> + 4118: 00800b44 movi r2,45 + 411c: dc814715 stw r18,1308(sp) + 4120: d8014615 stw zero,1304(sp) + 4124: d8800405 stb r2,16(sp) + 4128: 003bab06 br 2fd8 <___vfprintf_internal_r+0xa90> + 412c: 00800b44 movi r2,45 + 4130: d8800405 stb r2,16(sp) + 4134: 003d2d06 br 35ec <___vfprintf_internal_r+0x10a4> + 4138: d9014f17 ldw r4,1340(sp) + 413c: b00b883a mov r5,r22 + 4140: d9800c04 addi r6,sp,48 + 4144: 00024f00 call 24f0 <__sprint_r> + 4148: 103ab71e bne r2,zero,2c28 <___vfprintf_internal_r+0x6e0> + 414c: 003ab506 br 2c24 <___vfprintf_internal_r+0x6dc> + 4150: 38800017 ldw r2,0(r7) + 4154: 39c00104 addi r7,r7,4 + 4158: d9c14015 stw r7,1280(sp) + 415c: d9414b17 ldw r5,1324(sp) + 4160: d9c14017 ldw r7,1280(sp) + 4164: 11400015 stw r5,0(r2) + 4168: 00395306 br 26b8 <___vfprintf_internal_r+0x170> + 416c: 980f883a mov r7,r19 + 4170: dcc14515 stw r19,1300(sp) + 4174: d8014615 stw zero,1304(sp) + 4178: 003b9506 br 2fd0 <___vfprintf_internal_r+0xa88> + 417c: 0027883a mov r19,zero + 4180: 00397206 br 274c <___vfprintf_internal_r+0x204> + 4184: 00c00074 movhi r3,1 + 4188: 18f87904 addi r3,r3,-7708 + 418c: 100f883a mov r7,r2 + 4190: d8814515 stw r2,1300(sp) + 4194: d8c14115 stw r3,1284(sp) + 4198: 0039da06 br 2904 <___vfprintf_internal_r+0x3bc> + 419c: 00800074 movhi r2,1 + 41a0: 10b87804 addi r2,r2,-7712 + 41a4: d8814115 stw r2,1284(sp) + 41a8: 003d1606 br 3604 <___vfprintf_internal_r+0x10bc> + 41ac: d9414d17 ldw r5,1332(sp) + 41b0: 00801984 movi r2,102 + 41b4: 28804926 beq r5,r2,42dc <___vfprintf_internal_r+0x1d94> + 41b8: 200f883a mov r7,r4 + 41bc: 24805716 blt r4,r18,431c <___vfprintf_internal_r+0x1dd4> + 41c0: d9414c17 ldw r5,1328(sp) + 41c4: 2880004c andi r2,r5,1 + 41c8: 10000126 beq r2,zero,41d0 <___vfprintf_internal_r+0x1c88> + 41cc: 21c00044 addi r7,r4,1 + 41d0: d9c14515 stw r7,1300(sp) + 41d4: 383fcc0e bge r7,zero,4108 <___vfprintf_internal_r+0x1bc0> + 41d8: d8014515 stw zero,1300(sp) + 41dc: 003fca06 br 4108 <___vfprintf_internal_r+0x1bc0> + 41e0: d9000517 ldw r4,20(sp) + 41e4: 00bfff04 movi r2,-4 + 41e8: 1100480e bge r2,r4,430c <___vfprintf_internal_r+0x1dc4> + 41ec: 99004716 blt r19,r4,430c <___vfprintf_internal_r+0x1dc4> + 41f0: d8c14d15 stw r3,1332(sp) + 41f4: 003ff006 br 41b8 <___vfprintf_internal_r+0x1c70> + 41f8: d8800717 ldw r2,28(sp) + 41fc: 14bf8b2e bgeu r2,r18,402c <___vfprintf_internal_r+0x1ae4> + 4200: 9007883a mov r3,r18 + 4204: 01000c04 movi r4,48 + 4208: 11000005 stb r4,0(r2) + 420c: 10800044 addi r2,r2,1 + 4210: d8800715 stw r2,28(sp) + 4214: 18bffc1e bne r3,r2,4208 <___vfprintf_internal_r+0x1cc0> + 4218: 003f8406 br 402c <___vfprintf_internal_r+0x1ae4> + 421c: d8814117 ldw r2,1284(sp) + 4220: 10c00007 ldb r3,0(r2) + 4224: 00800c04 movi r2,48 + 4228: 18805b26 beq r3,r2,4398 <___vfprintf_internal_r+0x1e50> + 422c: d9000517 ldw r4,20(sp) + 4230: 9125883a add r18,r18,r4 + 4234: 003f7506 br 400c <___vfprintf_internal_r+0x1ac4> + 4238: d9014c17 ldw r4,1328(sp) + 423c: 2080004c andi r2,r4,1 + 4240: 1005003a cmpeq r2,r2,zero + 4244: 103f6a26 beq r2,zero,3ff0 <___vfprintf_internal_r+0x1aa8> + 4248: d8800717 ldw r2,28(sp) + 424c: 003f7706 br 402c <___vfprintf_internal_r+0x1ae4> + 4250: d9c14515 stw r7,1300(sp) + 4254: 38004d16 blt r7,zero,438c <___vfprintf_internal_r+0x1e44> + 4258: dc814715 stw r18,1308(sp) + 425c: d8014615 stw zero,1304(sp) + 4260: 003b5b06 br 2fd0 <___vfprintf_internal_r+0xa88> + 4264: d9014f17 ldw r4,1340(sp) + 4268: d8800504 addi r2,sp,20 + 426c: d8800115 stw r2,4(sp) + 4270: d8c00604 addi r3,sp,24 + 4274: d8800704 addi r2,sp,28 + 4278: 800b883a mov r5,r16 + 427c: 880d883a mov r6,r17 + 4280: 01c000c4 movi r7,3 + 4284: d8c00215 stw r3,8(sp) + 4288: d8800315 stw r2,12(sp) + 428c: dcc00015 stw r19,0(sp) + 4290: 9829883a mov r20,r19 + 4294: 00048980 call 4898 <_dtoa_r> + 4298: d8814115 stw r2,1284(sp) + 429c: 003f5106 br 3fe4 <___vfprintf_internal_r+0x1a9c> + 42a0: d8c14217 ldw r3,1288(sp) + 42a4: d9014317 ldw r4,1292(sp) + 42a8: 07000b44 movi fp,45 + 42ac: 1821883a mov r16,r3 + 42b0: 2460003c xorhi r17,r4,32768 + 42b4: 003f3106 br 3f7c <___vfprintf_internal_r+0x1a34> + 42b8: 9d000044 addi r20,r19,1 + 42bc: 003f3906 br 3fa4 <___vfprintf_internal_r+0x1a5c> + 42c0: 983f251e bne r19,zero,3f58 <___vfprintf_internal_r+0x1a10> + 42c4: 04c00044 movi r19,1 + 42c8: 003f2306 br 3f58 <___vfprintf_internal_r+0x1a10> + 42cc: 04c00184 movi r19,6 + 42d0: 003f2106 br 3f58 <___vfprintf_internal_r+0x1a10> + 42d4: d8014515 stw zero,1300(sp) + 42d8: 003eee06 br 3e94 <___vfprintf_internal_r+0x194c> + 42dc: 200f883a mov r7,r4 + 42e0: 0100370e bge zero,r4,43c0 <___vfprintf_internal_r+0x1e78> + 42e4: 9800031e bne r19,zero,42f4 <___vfprintf_internal_r+0x1dac> + 42e8: d9814c17 ldw r6,1328(sp) + 42ec: 3080004c andi r2,r6,1 + 42f0: 103fb726 beq r2,zero,41d0 <___vfprintf_internal_r+0x1c88> + 42f4: 20800044 addi r2,r4,1 + 42f8: 98a7883a add r19,r19,r2 + 42fc: dcc14515 stw r19,1300(sp) + 4300: 980f883a mov r7,r19 + 4304: 983f800e bge r19,zero,4108 <___vfprintf_internal_r+0x1bc0> + 4308: 003fb306 br 41d8 <___vfprintf_internal_r+0x1c90> + 430c: d9814d17 ldw r6,1332(sp) + 4310: 31bfff84 addi r6,r6,-2 + 4314: d9814d15 stw r6,1332(sp) + 4318: 003f4c06 br 404c <___vfprintf_internal_r+0x1b04> + 431c: 0100180e bge zero,r4,4380 <___vfprintf_internal_r+0x1e38> + 4320: 00800044 movi r2,1 + 4324: 1485883a add r2,r2,r18 + 4328: d8814515 stw r2,1300(sp) + 432c: 100f883a mov r7,r2 + 4330: 103f750e bge r2,zero,4108 <___vfprintf_internal_r+0x1bc0> + 4334: 003fa806 br 41d8 <___vfprintf_internal_r+0x1c90> + 4338: 80c00c04 addi r3,r16,48 + 433c: 00800c04 movi r2,48 + 4340: d8c008c5 stb r3,35(sp) + 4344: d9800804 addi r6,sp,32 + 4348: d8c00904 addi r3,sp,36 + 434c: d8800885 stb r2,34(sp) + 4350: 003f6506 br 40e8 <___vfprintf_internal_r+0x1ba0> + 4354: d9014c17 ldw r4,1328(sp) + 4358: 2084703a and r2,r4,r2 + 435c: 103f9c26 beq r2,zero,41d0 <___vfprintf_internal_r+0x1c88> + 4360: 003f6606 br 40fc <___vfprintf_internal_r+0x1bb4> + 4364: d9800804 addi r6,sp,32 + 4368: d8c00884 addi r3,sp,34 + 436c: 003f5e06 br 40e8 <___vfprintf_internal_r+0x1ba0> + 4370: 00800b44 movi r2,45 + 4374: 0121c83a sub r16,zero,r4 + 4378: d8800845 stb r2,33(sp) + 437c: 003f3d06 br 4074 <___vfprintf_internal_r+0x1b2c> + 4380: 00800084 movi r2,2 + 4384: 1105c83a sub r2,r2,r4 + 4388: 003fe606 br 4324 <___vfprintf_internal_r+0x1ddc> + 438c: d8014515 stw zero,1300(sp) + 4390: dc814715 stw r18,1308(sp) + 4394: 003fb106 br 425c <___vfprintf_internal_r+0x1d14> + 4398: 000d883a mov r6,zero + 439c: 000f883a mov r7,zero + 43a0: 8009883a mov r4,r16 + 43a4: 880b883a mov r5,r17 + 43a8: 00098f80 call 98f8 <__nedf2> + 43ac: 103f9f26 beq r2,zero,422c <___vfprintf_internal_r+0x1ce4> + 43b0: 00800044 movi r2,1 + 43b4: 1509c83a sub r4,r2,r20 + 43b8: d9000515 stw r4,20(sp) + 43bc: 003f9b06 br 422c <___vfprintf_internal_r+0x1ce4> + 43c0: 98000d1e bne r19,zero,43f8 <___vfprintf_internal_r+0x1eb0> + 43c4: d8c14c17 ldw r3,1328(sp) + 43c8: 1880004c andi r2,r3,1 + 43cc: 10000a1e bne r2,zero,43f8 <___vfprintf_internal_r+0x1eb0> + 43d0: 01000044 movi r4,1 + 43d4: 200f883a mov r7,r4 + 43d8: d9014515 stw r4,1300(sp) + 43dc: 003f4a06 br 4108 <___vfprintf_internal_r+0x1bc0> + 43e0: 3cc00017 ldw r19,0(r7) + 43e4: 39c00104 addi r7,r7,4 + 43e8: 983d0e0e bge r19,zero,3824 <___vfprintf_internal_r+0x12dc> + 43ec: b8c00007 ldb r3,0(r23) + 43f0: 04ffffc4 movi r19,-1 + 43f4: 0038d306 br 2744 <___vfprintf_internal_r+0x1fc> + 43f8: 9cc00084 addi r19,r19,2 + 43fc: dcc14515 stw r19,1300(sp) + 4400: 980f883a mov r7,r19 + 4404: 983f400e bge r19,zero,4108 <___vfprintf_internal_r+0x1bc0> + 4408: 003f7306 br 41d8 <___vfprintf_internal_r+0x1c90> + +0000440c <__vfprintf_internal>: + 440c: 00800074 movhi r2,1 + 4410: 1080b204 addi r2,r2,712 + 4414: 2013883a mov r9,r4 + 4418: 11000017 ldw r4,0(r2) + 441c: 2805883a mov r2,r5 + 4420: 300f883a mov r7,r6 + 4424: 480b883a mov r5,r9 + 4428: 100d883a mov r6,r2 + 442c: 00025481 jmpi 2548 <___vfprintf_internal_r> + +00004430 <_write_r>: + 4430: defffd04 addi sp,sp,-12 + 4434: dc000015 stw r16,0(sp) + 4438: 04000074 movhi r16,1 + 443c: 8407a504 addi r16,r16,7828 + 4440: dc400115 stw r17,4(sp) + 4444: 80000015 stw zero,0(r16) + 4448: 2023883a mov r17,r4 + 444c: 2809883a mov r4,r5 + 4450: 300b883a mov r5,r6 + 4454: 380d883a mov r6,r7 + 4458: dfc00215 stw ra,8(sp) + 445c: 000b3280 call b328 + 4460: 1007883a mov r3,r2 + 4464: 00bfffc4 movi r2,-1 + 4468: 18800626 beq r3,r2,4484 <_write_r+0x54> + 446c: 1805883a mov r2,r3 + 4470: dfc00217 ldw ra,8(sp) + 4474: dc400117 ldw r17,4(sp) + 4478: dc000017 ldw r16,0(sp) + 447c: dec00304 addi sp,sp,12 + 4480: f800283a ret + 4484: 80800017 ldw r2,0(r16) + 4488: 103ff826 beq r2,zero,446c <_write_r+0x3c> + 448c: 88800015 stw r2,0(r17) + 4490: 1805883a mov r2,r3 + 4494: dfc00217 ldw ra,8(sp) + 4498: dc400117 ldw r17,4(sp) + 449c: dc000017 ldw r16,0(sp) + 44a0: dec00304 addi sp,sp,12 + 44a4: f800283a ret + +000044a8 <__swsetup_r>: + 44a8: 00800074 movhi r2,1 + 44ac: 1080b204 addi r2,r2,712 + 44b0: 10c00017 ldw r3,0(r2) + 44b4: defffd04 addi sp,sp,-12 + 44b8: dc400115 stw r17,4(sp) + 44bc: dc000015 stw r16,0(sp) + 44c0: dfc00215 stw ra,8(sp) + 44c4: 2023883a mov r17,r4 + 44c8: 2821883a mov r16,r5 + 44cc: 18000226 beq r3,zero,44d8 <__swsetup_r+0x30> + 44d0: 18800e17 ldw r2,56(r3) + 44d4: 10001f26 beq r2,zero,4554 <__swsetup_r+0xac> + 44d8: 8100030b ldhu r4,12(r16) + 44dc: 2080020c andi r2,r4,8 + 44e0: 10002826 beq r2,zero,4584 <__swsetup_r+0xdc> + 44e4: 81400417 ldw r5,16(r16) + 44e8: 28001d26 beq r5,zero,4560 <__swsetup_r+0xb8> + 44ec: 2080004c andi r2,r4,1 + 44f0: 1005003a cmpeq r2,r2,zero + 44f4: 10000b26 beq r2,zero,4524 <__swsetup_r+0x7c> + 44f8: 2080008c andi r2,r4,2 + 44fc: 10001226 beq r2,zero,4548 <__swsetup_r+0xa0> + 4500: 0005883a mov r2,zero + 4504: 80800215 stw r2,8(r16) + 4508: 28000b26 beq r5,zero,4538 <__swsetup_r+0x90> + 450c: 0005883a mov r2,zero + 4510: dfc00217 ldw ra,8(sp) + 4514: dc400117 ldw r17,4(sp) + 4518: dc000017 ldw r16,0(sp) + 451c: dec00304 addi sp,sp,12 + 4520: f800283a ret + 4524: 80800517 ldw r2,20(r16) + 4528: 80000215 stw zero,8(r16) + 452c: 0085c83a sub r2,zero,r2 + 4530: 80800615 stw r2,24(r16) + 4534: 283ff51e bne r5,zero,450c <__swsetup_r+0x64> + 4538: 2080200c andi r2,r4,128 + 453c: 103ff326 beq r2,zero,450c <__swsetup_r+0x64> + 4540: 00bfffc4 movi r2,-1 + 4544: 003ff206 br 4510 <__swsetup_r+0x68> + 4548: 80800517 ldw r2,20(r16) + 454c: 80800215 stw r2,8(r16) + 4550: 003fed06 br 4508 <__swsetup_r+0x60> + 4554: 1809883a mov r4,r3 + 4558: 00006b40 call 6b4 <__sinit> + 455c: 003fde06 br 44d8 <__swsetup_r+0x30> + 4560: 20c0a00c andi r3,r4,640 + 4564: 00808004 movi r2,512 + 4568: 18bfe026 beq r3,r2,44ec <__swsetup_r+0x44> + 456c: 8809883a mov r4,r17 + 4570: 800b883a mov r5,r16 + 4574: 00015d00 call 15d0 <__smakebuf_r> + 4578: 8100030b ldhu r4,12(r16) + 457c: 81400417 ldw r5,16(r16) + 4580: 003fda06 br 44ec <__swsetup_r+0x44> + 4584: 2080040c andi r2,r4,16 + 4588: 103fed26 beq r2,zero,4540 <__swsetup_r+0x98> + 458c: 2080010c andi r2,r4,4 + 4590: 10001226 beq r2,zero,45dc <__swsetup_r+0x134> + 4594: 81400c17 ldw r5,48(r16) + 4598: 28000526 beq r5,zero,45b0 <__swsetup_r+0x108> + 459c: 80801004 addi r2,r16,64 + 45a0: 28800226 beq r5,r2,45ac <__swsetup_r+0x104> + 45a4: 8809883a mov r4,r17 + 45a8: 0000b7c0 call b7c <_free_r> + 45ac: 80000c15 stw zero,48(r16) + 45b0: 8080030b ldhu r2,12(r16) + 45b4: 81400417 ldw r5,16(r16) + 45b8: 80000115 stw zero,4(r16) + 45bc: 10bff6cc andi r2,r2,65499 + 45c0: 8080030d sth r2,12(r16) + 45c4: 81400015 stw r5,0(r16) + 45c8: 8080030b ldhu r2,12(r16) + 45cc: 10800214 ori r2,r2,8 + 45d0: 113fffcc andi r4,r2,65535 + 45d4: 8080030d sth r2,12(r16) + 45d8: 003fc306 br 44e8 <__swsetup_r+0x40> + 45dc: 81400417 ldw r5,16(r16) + 45e0: 003ff906 br 45c8 <__swsetup_r+0x120> + +000045e4 <_close_r>: + 45e4: defffd04 addi sp,sp,-12 + 45e8: dc000015 stw r16,0(sp) + 45ec: 04000074 movhi r16,1 + 45f0: 8407a504 addi r16,r16,7828 + 45f4: dc400115 stw r17,4(sp) + 45f8: 80000015 stw zero,0(r16) + 45fc: 2023883a mov r17,r4 + 4600: 2809883a mov r4,r5 + 4604: dfc00215 stw ra,8(sp) + 4608: 000a6b80 call a6b8 + 460c: 1007883a mov r3,r2 + 4610: 00bfffc4 movi r2,-1 + 4614: 18800626 beq r3,r2,4630 <_close_r+0x4c> + 4618: 1805883a mov r2,r3 + 461c: dfc00217 ldw ra,8(sp) + 4620: dc400117 ldw r17,4(sp) + 4624: dc000017 ldw r16,0(sp) + 4628: dec00304 addi sp,sp,12 + 462c: f800283a ret + 4630: 80800017 ldw r2,0(r16) + 4634: 103ff826 beq r2,zero,4618 <_close_r+0x34> + 4638: 88800015 stw r2,0(r17) + 463c: 1805883a mov r2,r3 + 4640: dfc00217 ldw ra,8(sp) + 4644: dc400117 ldw r17,4(sp) + 4648: dc000017 ldw r16,0(sp) + 464c: dec00304 addi sp,sp,12 + 4650: f800283a ret + +00004654 : + 4654: 28c00417 ldw r3,16(r5) + 4658: 20800417 ldw r2,16(r4) + 465c: defff104 addi sp,sp,-60 + 4660: dfc00e15 stw ra,56(sp) + 4664: df000d15 stw fp,52(sp) + 4668: ddc00c15 stw r23,48(sp) + 466c: dd800b15 stw r22,44(sp) + 4670: dd400a15 stw r21,40(sp) + 4674: dd000915 stw r20,36(sp) + 4678: dcc00815 stw r19,32(sp) + 467c: dc800715 stw r18,28(sp) + 4680: dc400615 stw r17,24(sp) + 4684: dc000515 stw r16,20(sp) + 4688: d9000315 stw r4,12(sp) + 468c: d9400415 stw r5,16(sp) + 4690: 10c07f16 blt r2,r3,4890 + 4694: 1d3fffc4 addi r20,r3,-1 + 4698: d8c00417 ldw r3,16(sp) + 469c: d9000317 ldw r4,12(sp) + 46a0: a505883a add r2,r20,r20 + 46a4: 1085883a add r2,r2,r2 + 46a8: 1cc00504 addi r19,r3,20 + 46ac: 25c00504 addi r23,r4,20 + 46b0: 98ad883a add r22,r19,r2 + 46b4: 15c7883a add r3,r2,r23 + 46b8: b1400017 ldw r5,0(r22) + 46bc: 19000017 ldw r4,0(r3) + 46c0: d8c00015 stw r3,0(sp) + 46c4: 29400044 addi r5,r5,1 + 46c8: d9000215 stw r4,8(sp) + 46cc: 0009fb80 call 9fb8 <__udivsi3> + 46d0: 1039883a mov fp,r2 + 46d4: 10003d1e bne r2,zero,47cc + 46d8: d9400417 ldw r5,16(sp) + 46dc: d9000317 ldw r4,12(sp) + 46e0: 00068f40 call 68f4 <__mcmp> + 46e4: 10002c16 blt r2,zero,4798 + 46e8: e7000044 addi fp,fp,1 + 46ec: b80f883a mov r7,r23 + 46f0: 0011883a mov r8,zero + 46f4: 0009883a mov r4,zero + 46f8: 99400017 ldw r5,0(r19) + 46fc: 38c00017 ldw r3,0(r7) + 4700: 9cc00104 addi r19,r19,4 + 4704: 28bfffcc andi r2,r5,65535 + 4708: 2085883a add r2,r4,r2 + 470c: 11bfffcc andi r6,r2,65535 + 4710: 193fffcc andi r4,r3,65535 + 4714: 1004d43a srli r2,r2,16 + 4718: 280ad43a srli r5,r5,16 + 471c: 2189c83a sub r4,r4,r6 + 4720: 2209883a add r4,r4,r8 + 4724: 1806d43a srli r3,r3,16 + 4728: 288b883a add r5,r5,r2 + 472c: 200dd43a srai r6,r4,16 + 4730: 28bfffcc andi r2,r5,65535 + 4734: 1887c83a sub r3,r3,r2 + 4738: 1987883a add r3,r3,r6 + 473c: 3900000d sth r4,0(r7) + 4740: 38c0008d sth r3,2(r7) + 4744: 2808d43a srli r4,r5,16 + 4748: 39c00104 addi r7,r7,4 + 474c: 1811d43a srai r8,r3,16 + 4750: b4ffe92e bgeu r22,r19,46f8 + 4754: a505883a add r2,r20,r20 + 4758: 1085883a add r2,r2,r2 + 475c: b885883a add r2,r23,r2 + 4760: 10c00017 ldw r3,0(r2) + 4764: 18000c1e bne r3,zero,4798 + 4768: 113fff04 addi r4,r2,-4 + 476c: b900082e bgeu r23,r4,4790 + 4770: 10bfff17 ldw r2,-4(r2) + 4774: 10000326 beq r2,zero,4784 + 4778: 00000506 br 4790 + 477c: 20800017 ldw r2,0(r4) + 4780: 1000031e bne r2,zero,4790 + 4784: 213fff04 addi r4,r4,-4 + 4788: a53fffc4 addi r20,r20,-1 + 478c: b93ffb36 bltu r23,r4,477c + 4790: d9000317 ldw r4,12(sp) + 4794: 25000415 stw r20,16(r4) + 4798: e005883a mov r2,fp + 479c: dfc00e17 ldw ra,56(sp) + 47a0: df000d17 ldw fp,52(sp) + 47a4: ddc00c17 ldw r23,48(sp) + 47a8: dd800b17 ldw r22,44(sp) + 47ac: dd400a17 ldw r21,40(sp) + 47b0: dd000917 ldw r20,36(sp) + 47b4: dcc00817 ldw r19,32(sp) + 47b8: dc800717 ldw r18,28(sp) + 47bc: dc400617 ldw r17,24(sp) + 47c0: dc000517 ldw r16,20(sp) + 47c4: dec00f04 addi sp,sp,60 + 47c8: f800283a ret + 47cc: b823883a mov r17,r23 + 47d0: 9825883a mov r18,r19 + 47d4: d8000115 stw zero,4(sp) + 47d8: 002b883a mov r21,zero + 47dc: 94000017 ldw r16,0(r18) + 47e0: e009883a mov r4,fp + 47e4: 94800104 addi r18,r18,4 + 47e8: 817fffcc andi r5,r16,65535 + 47ec: 0009fc80 call 9fc8 <__mulsi3> + 47f0: 800ad43a srli r5,r16,16 + 47f4: e009883a mov r4,fp + 47f8: a8a1883a add r16,r21,r2 + 47fc: 0009fc80 call 9fc8 <__mulsi3> + 4800: 89000017 ldw r4,0(r17) + 4804: 80ffffcc andi r3,r16,65535 + 4808: 8020d43a srli r16,r16,16 + 480c: 217fffcc andi r5,r4,65535 + 4810: 28cbc83a sub r5,r5,r3 + 4814: d8c00117 ldw r3,4(sp) + 4818: 2008d43a srli r4,r4,16 + 481c: 1405883a add r2,r2,r16 + 4820: 28cb883a add r5,r5,r3 + 4824: 280dd43a srai r6,r5,16 + 4828: 10ffffcc andi r3,r2,65535 + 482c: 20c9c83a sub r4,r4,r3 + 4830: 2189883a add r4,r4,r6 + 4834: 8900008d sth r4,2(r17) + 4838: 2009d43a srai r4,r4,16 + 483c: 8940000d sth r5,0(r17) + 4840: 102ad43a srli r21,r2,16 + 4844: 8c400104 addi r17,r17,4 + 4848: d9000115 stw r4,4(sp) + 484c: b4bfe32e bgeu r22,r18,47dc + 4850: d9000217 ldw r4,8(sp) + 4854: 203fa01e bne r4,zero,46d8 + 4858: d8800017 ldw r2,0(sp) + 485c: 10ffff04 addi r3,r2,-4 + 4860: b8c0082e bgeu r23,r3,4884 + 4864: 10bfff17 ldw r2,-4(r2) + 4868: 10000326 beq r2,zero,4878 + 486c: 00000506 br 4884 + 4870: 18800017 ldw r2,0(r3) + 4874: 1000031e bne r2,zero,4884 + 4878: 18ffff04 addi r3,r3,-4 + 487c: a53fffc4 addi r20,r20,-1 + 4880: b8fffb36 bltu r23,r3,4870 + 4884: d8c00317 ldw r3,12(sp) + 4888: 1d000415 stw r20,16(r3) + 488c: 003f9206 br 46d8 + 4890: 0005883a mov r2,zero + 4894: 003fc106 br 479c + +00004898 <_dtoa_r>: + 4898: 22001017 ldw r8,64(r4) + 489c: deffda04 addi sp,sp,-152 + 48a0: dd402115 stw r21,132(sp) + 48a4: dd002015 stw r20,128(sp) + 48a8: dc801e15 stw r18,120(sp) + 48ac: dc401d15 stw r17,116(sp) + 48b0: dfc02515 stw ra,148(sp) + 48b4: df002415 stw fp,144(sp) + 48b8: ddc02315 stw r23,140(sp) + 48bc: dd802215 stw r22,136(sp) + 48c0: dcc01f15 stw r19,124(sp) + 48c4: dc001c15 stw r16,112(sp) + 48c8: d9001615 stw r4,88(sp) + 48cc: 3023883a mov r17,r6 + 48d0: 2829883a mov r20,r5 + 48d4: d9c01715 stw r7,92(sp) + 48d8: dc802817 ldw r18,160(sp) + 48dc: 302b883a mov r21,r6 + 48e0: 40000a26 beq r8,zero,490c <_dtoa_r+0x74> + 48e4: 20801117 ldw r2,68(r4) + 48e8: 400b883a mov r5,r8 + 48ec: 40800115 stw r2,4(r8) + 48f0: 20c01117 ldw r3,68(r4) + 48f4: 00800044 movi r2,1 + 48f8: 10c4983a sll r2,r2,r3 + 48fc: 40800215 stw r2,8(r8) + 4900: 00067980 call 6798 <_Bfree> + 4904: d8c01617 ldw r3,88(sp) + 4908: 18001015 stw zero,64(r3) + 490c: 8800a316 blt r17,zero,4b9c <_dtoa_r+0x304> + 4910: 90000015 stw zero,0(r18) + 4914: a8dffc2c andhi r3,r21,32752 + 4918: 009ffc34 movhi r2,32752 + 491c: 18809126 beq r3,r2,4b64 <_dtoa_r+0x2cc> + 4920: 000d883a mov r6,zero + 4924: 000f883a mov r7,zero + 4928: a009883a mov r4,r20 + 492c: a80b883a mov r5,r21 + 4930: dd001215 stw r20,72(sp) + 4934: dd401315 stw r21,76(sp) + 4938: 00098f80 call 98f8 <__nedf2> + 493c: 1000171e bne r2,zero,499c <_dtoa_r+0x104> + 4940: d9802717 ldw r6,156(sp) + 4944: 00800044 movi r2,1 + 4948: 30800015 stw r2,0(r6) + 494c: d8802917 ldw r2,164(sp) + 4950: 10029b26 beq r2,zero,53c0 <_dtoa_r+0xb28> + 4954: d9002917 ldw r4,164(sp) + 4958: 00800074 movhi r2,1 + 495c: 10b88744 addi r2,r2,-7651 + 4960: 10ffffc4 addi r3,r2,-1 + 4964: 20800015 stw r2,0(r4) + 4968: 1805883a mov r2,r3 + 496c: dfc02517 ldw ra,148(sp) + 4970: df002417 ldw fp,144(sp) + 4974: ddc02317 ldw r23,140(sp) + 4978: dd802217 ldw r22,136(sp) + 497c: dd402117 ldw r21,132(sp) + 4980: dd002017 ldw r20,128(sp) + 4984: dcc01f17 ldw r19,124(sp) + 4988: dc801e17 ldw r18,120(sp) + 498c: dc401d17 ldw r17,116(sp) + 4990: dc001c17 ldw r16,112(sp) + 4994: dec02604 addi sp,sp,152 + 4998: f800283a ret + 499c: d9001617 ldw r4,88(sp) + 49a0: d9401217 ldw r5,72(sp) + 49a4: d8800104 addi r2,sp,4 + 49a8: a80d883a mov r6,r21 + 49ac: d9c00204 addi r7,sp,8 + 49b0: d8800015 stw r2,0(sp) + 49b4: 0006dd40 call 6dd4 <__d2b> + 49b8: d8800715 stw r2,28(sp) + 49bc: a804d53a srli r2,r21,20 + 49c0: 1101ffcc andi r4,r2,2047 + 49c4: 20008626 beq r4,zero,4be0 <_dtoa_r+0x348> + 49c8: d8c01217 ldw r3,72(sp) + 49cc: 00800434 movhi r2,16 + 49d0: 10bfffc4 addi r2,r2,-1 + 49d4: ddc00117 ldw r23,4(sp) + 49d8: a884703a and r2,r21,r2 + 49dc: 1811883a mov r8,r3 + 49e0: 124ffc34 orhi r9,r2,16368 + 49e4: 25bf0044 addi r22,r4,-1023 + 49e8: d8000815 stw zero,32(sp) + 49ec: 0005883a mov r2,zero + 49f0: 00cffe34 movhi r3,16376 + 49f4: 480b883a mov r5,r9 + 49f8: 4009883a mov r4,r8 + 49fc: 180f883a mov r7,r3 + 4a00: 100d883a mov r6,r2 + 4a04: 00091600 call 9160 <__subdf3> + 4a08: 0218dbf4 movhi r8,25455 + 4a0c: 4210d844 addi r8,r8,17249 + 4a10: 024ff4f4 movhi r9,16339 + 4a14: 4a61e9c4 addi r9,r9,-30809 + 4a18: 480f883a mov r7,r9 + 4a1c: 400d883a mov r6,r8 + 4a20: 180b883a mov r5,r3 + 4a24: 1009883a mov r4,r2 + 4a28: 00092540 call 9254 <__muldf3> + 4a2c: 0222d874 movhi r8,35681 + 4a30: 42322cc4 addi r8,r8,-14157 + 4a34: 024ff1f4 movhi r9,16327 + 4a38: 4a628a04 addi r9,r9,-30168 + 4a3c: 480f883a mov r7,r9 + 4a40: 400d883a mov r6,r8 + 4a44: 180b883a mov r5,r3 + 4a48: 1009883a mov r4,r2 + 4a4c: 00091e00 call 91e0 <__adddf3> + 4a50: b009883a mov r4,r22 + 4a54: 1021883a mov r16,r2 + 4a58: 1823883a mov r17,r3 + 4a5c: 0009b180 call 9b18 <__floatsidf> + 4a60: 021427f4 movhi r8,20639 + 4a64: 421e7ec4 addi r8,r8,31227 + 4a68: 024ff4f4 movhi r9,16339 + 4a6c: 4a5104c4 addi r9,r9,17427 + 4a70: 480f883a mov r7,r9 + 4a74: 400d883a mov r6,r8 + 4a78: 180b883a mov r5,r3 + 4a7c: 1009883a mov r4,r2 + 4a80: 00092540 call 9254 <__muldf3> + 4a84: 180f883a mov r7,r3 + 4a88: 880b883a mov r5,r17 + 4a8c: 100d883a mov r6,r2 + 4a90: 8009883a mov r4,r16 + 4a94: 00091e00 call 91e0 <__adddf3> + 4a98: 1009883a mov r4,r2 + 4a9c: 180b883a mov r5,r3 + 4aa0: 1021883a mov r16,r2 + 4aa4: 1823883a mov r17,r3 + 4aa8: 0009c100 call 9c10 <__fixdfsi> + 4aac: 000d883a mov r6,zero + 4ab0: 000f883a mov r7,zero + 4ab4: 8009883a mov r4,r16 + 4ab8: 880b883a mov r5,r17 + 4abc: d8800d15 stw r2,52(sp) + 4ac0: 0009a900 call 9a90 <__ltdf2> + 4ac4: 10031716 blt r2,zero,5724 <_dtoa_r+0xe8c> + 4ac8: d8c00d17 ldw r3,52(sp) + 4acc: 00800584 movi r2,22 + 4ad0: 10c1482e bgeu r2,r3,4ff4 <_dtoa_r+0x75c> + 4ad4: 01000044 movi r4,1 + 4ad8: d9000c15 stw r4,48(sp) + 4adc: bd85c83a sub r2,r23,r22 + 4ae0: 11bfffc4 addi r6,r2,-1 + 4ae4: 30030b16 blt r6,zero,5714 <_dtoa_r+0xe7c> + 4ae8: d9800a15 stw r6,40(sp) + 4aec: d8001115 stw zero,68(sp) + 4af0: d8c00d17 ldw r3,52(sp) + 4af4: 1802ff16 blt r3,zero,56f4 <_dtoa_r+0xe5c> + 4af8: d9000a17 ldw r4,40(sp) + 4afc: d8c00915 stw r3,36(sp) + 4b00: d8001015 stw zero,64(sp) + 4b04: 20c9883a add r4,r4,r3 + 4b08: d9000a15 stw r4,40(sp) + 4b0c: d9001717 ldw r4,92(sp) + 4b10: 00800244 movi r2,9 + 4b14: 11004636 bltu r2,r4,4c30 <_dtoa_r+0x398> + 4b18: 00800144 movi r2,5 + 4b1c: 11020416 blt r2,r4,5330 <_dtoa_r+0xa98> + 4b20: 04400044 movi r17,1 + 4b24: d8c01717 ldw r3,92(sp) + 4b28: 00800144 movi r2,5 + 4b2c: 10c1ed36 bltu r2,r3,52e4 <_dtoa_r+0xa4c> + 4b30: 18c5883a add r2,r3,r3 + 4b34: 1085883a add r2,r2,r2 + 4b38: 00c00034 movhi r3,0 + 4b3c: 18d2d304 addi r3,r3,19276 + 4b40: 10c5883a add r2,r2,r3 + 4b44: 11000017 ldw r4,0(r2) + 4b48: 2000683a jmp r4 + 4b4c: 00004c38 rdprs zero,zero,304 + 4b50: 00004c38 rdprs zero,zero,304 + 4b54: 00005638 rdprs zero,zero,344 + 4b58: 00005610 cmplti zero,zero,344 + 4b5c: 00005654 movui zero,345 + 4b60: 00005660 cmpeqi zero,zero,345 + 4b64: d9002717 ldw r4,156(sp) + 4b68: 0089c3c4 movi r2,9999 + 4b6c: 20800015 stw r2,0(r4) + 4b70: a0001026 beq r20,zero,4bb4 <_dtoa_r+0x31c> + 4b74: 00c00074 movhi r3,1 + 4b78: 18f89304 addi r3,r3,-7604 + 4b7c: d9802917 ldw r6,164(sp) + 4b80: 303f7926 beq r6,zero,4968 <_dtoa_r+0xd0> + 4b84: 188000c7 ldb r2,3(r3) + 4b88: 190000c4 addi r4,r3,3 + 4b8c: 1000101e bne r2,zero,4bd0 <_dtoa_r+0x338> + 4b90: d8802917 ldw r2,164(sp) + 4b94: 11000015 stw r4,0(r2) + 4b98: 003f7306 br 4968 <_dtoa_r+0xd0> + 4b9c: 00a00034 movhi r2,32768 + 4ba0: 10bfffc4 addi r2,r2,-1 + 4ba4: 00c00044 movi r3,1 + 4ba8: 88aa703a and r21,r17,r2 + 4bac: 90c00015 stw r3,0(r18) + 4bb0: 003f5806 br 4914 <_dtoa_r+0x7c> + 4bb4: 00800434 movhi r2,16 + 4bb8: 10bfffc4 addi r2,r2,-1 + 4bbc: a884703a and r2,r21,r2 + 4bc0: 103fec1e bne r2,zero,4b74 <_dtoa_r+0x2dc> + 4bc4: 00c00074 movhi r3,1 + 4bc8: 18f89004 addi r3,r3,-7616 + 4bcc: 003feb06 br 4b7c <_dtoa_r+0x2e4> + 4bd0: d8802917 ldw r2,164(sp) + 4bd4: 19000204 addi r4,r3,8 + 4bd8: 11000015 stw r4,0(r2) + 4bdc: 003f6206 br 4968 <_dtoa_r+0xd0> + 4be0: ddc00117 ldw r23,4(sp) + 4be4: d8800217 ldw r2,8(sp) + 4be8: 01000804 movi r4,32 + 4bec: b8c10c84 addi r3,r23,1074 + 4bf0: 18a3883a add r17,r3,r2 + 4bf4: 2441b80e bge r4,r17,52d8 <_dtoa_r+0xa40> + 4bf8: 00c01004 movi r3,64 + 4bfc: 1c47c83a sub r3,r3,r17 + 4c00: 88bff804 addi r2,r17,-32 + 4c04: a8c6983a sll r3,r21,r3 + 4c08: a084d83a srl r2,r20,r2 + 4c0c: 1888b03a or r4,r3,r2 + 4c10: 0009ce80 call 9ce8 <__floatunsidf> + 4c14: 1011883a mov r8,r2 + 4c18: 00bf8434 movhi r2,65040 + 4c1c: 01000044 movi r4,1 + 4c20: 10d3883a add r9,r2,r3 + 4c24: 8dbef344 addi r22,r17,-1075 + 4c28: d9000815 stw r4,32(sp) + 4c2c: 003f6f06 br 49ec <_dtoa_r+0x154> + 4c30: d8001715 stw zero,92(sp) + 4c34: 04400044 movi r17,1 + 4c38: 00bfffc4 movi r2,-1 + 4c3c: 00c00044 movi r3,1 + 4c40: d8800e15 stw r2,56(sp) + 4c44: d8002615 stw zero,152(sp) + 4c48: d8800f15 stw r2,60(sp) + 4c4c: d8c00b15 stw r3,44(sp) + 4c50: 1021883a mov r16,r2 + 4c54: d8801617 ldw r2,88(sp) + 4c58: 10001115 stw zero,68(r2) + 4c5c: d8801617 ldw r2,88(sp) + 4c60: 11401117 ldw r5,68(r2) + 4c64: 1009883a mov r4,r2 + 4c68: 0006d180 call 6d18 <_Balloc> + 4c6c: d8c01617 ldw r3,88(sp) + 4c70: d8800515 stw r2,20(sp) + 4c74: 18801015 stw r2,64(r3) + 4c78: 00800384 movi r2,14 + 4c7c: 14006836 bltu r2,r16,4e20 <_dtoa_r+0x588> + 4c80: 8805003a cmpeq r2,r17,zero + 4c84: 1000661e bne r2,zero,4e20 <_dtoa_r+0x588> + 4c88: d9000d17 ldw r4,52(sp) + 4c8c: 0102300e bge zero,r4,5550 <_dtoa_r+0xcb8> + 4c90: 208003cc andi r2,r4,15 + 4c94: 100490fa slli r2,r2,3 + 4c98: 2025d13a srai r18,r4,4 + 4c9c: 00c00074 movhi r3,1 + 4ca0: 18f8a404 addi r3,r3,-7536 + 4ca4: 10c5883a add r2,r2,r3 + 4ca8: 90c0040c andi r3,r18,16 + 4cac: 14000017 ldw r16,0(r2) + 4cb0: 14400117 ldw r17,4(r2) + 4cb4: 18036a1e bne r3,zero,5a60 <_dtoa_r+0x11c8> + 4cb8: 05800084 movi r22,2 + 4cbc: 90001026 beq r18,zero,4d00 <_dtoa_r+0x468> + 4cc0: 04c00074 movhi r19,1 + 4cc4: 9cf8d604 addi r19,r19,-7336 + 4cc8: 9080004c andi r2,r18,1 + 4ccc: 1005003a cmpeq r2,r2,zero + 4cd0: 1000081e bne r2,zero,4cf4 <_dtoa_r+0x45c> + 4cd4: 99800017 ldw r6,0(r19) + 4cd8: 99c00117 ldw r7,4(r19) + 4cdc: 880b883a mov r5,r17 + 4ce0: 8009883a mov r4,r16 + 4ce4: 00092540 call 9254 <__muldf3> + 4ce8: 1021883a mov r16,r2 + 4cec: b5800044 addi r22,r22,1 + 4cf0: 1823883a mov r17,r3 + 4cf4: 9025d07a srai r18,r18,1 + 4cf8: 9cc00204 addi r19,r19,8 + 4cfc: 903ff21e bne r18,zero,4cc8 <_dtoa_r+0x430> + 4d00: a80b883a mov r5,r21 + 4d04: a009883a mov r4,r20 + 4d08: 880f883a mov r7,r17 + 4d0c: 800d883a mov r6,r16 + 4d10: 00096180 call 9618 <__divdf3> + 4d14: 1029883a mov r20,r2 + 4d18: 182b883a mov r21,r3 + 4d1c: d8c00c17 ldw r3,48(sp) + 4d20: 1805003a cmpeq r2,r3,zero + 4d24: 1000081e bne r2,zero,4d48 <_dtoa_r+0x4b0> + 4d28: 0005883a mov r2,zero + 4d2c: 00cffc34 movhi r3,16368 + 4d30: 180f883a mov r7,r3 + 4d34: a009883a mov r4,r20 + 4d38: a80b883a mov r5,r21 + 4d3c: 100d883a mov r6,r2 + 4d40: 0009a900 call 9a90 <__ltdf2> + 4d44: 1003fe16 blt r2,zero,5d40 <_dtoa_r+0x14a8> + 4d48: b009883a mov r4,r22 + 4d4c: 0009b180 call 9b18 <__floatsidf> + 4d50: 180b883a mov r5,r3 + 4d54: 1009883a mov r4,r2 + 4d58: a00d883a mov r6,r20 + 4d5c: a80f883a mov r7,r21 + 4d60: 00092540 call 9254 <__muldf3> + 4d64: 0011883a mov r8,zero + 4d68: 02500734 movhi r9,16412 + 4d6c: 1009883a mov r4,r2 + 4d70: 180b883a mov r5,r3 + 4d74: 480f883a mov r7,r9 + 4d78: 400d883a mov r6,r8 + 4d7c: 00091e00 call 91e0 <__adddf3> + 4d80: d9000f17 ldw r4,60(sp) + 4d84: 102d883a mov r22,r2 + 4d88: 00bf3034 movhi r2,64704 + 4d8c: 18b9883a add fp,r3,r2 + 4d90: e02f883a mov r23,fp + 4d94: 20028f1e bne r4,zero,57d4 <_dtoa_r+0xf3c> + 4d98: 0005883a mov r2,zero + 4d9c: 00d00534 movhi r3,16404 + 4da0: a009883a mov r4,r20 + 4da4: a80b883a mov r5,r21 + 4da8: 180f883a mov r7,r3 + 4dac: 100d883a mov r6,r2 + 4db0: 00091600 call 9160 <__subdf3> + 4db4: 1009883a mov r4,r2 + 4db8: e00f883a mov r7,fp + 4dbc: 180b883a mov r5,r3 + 4dc0: b00d883a mov r6,r22 + 4dc4: 1025883a mov r18,r2 + 4dc8: 1827883a mov r19,r3 + 4dcc: 00099800 call 9980 <__gtdf2> + 4dd0: 00834f16 blt zero,r2,5b10 <_dtoa_r+0x1278> + 4dd4: e0e0003c xorhi r3,fp,32768 + 4dd8: 9009883a mov r4,r18 + 4ddc: 980b883a mov r5,r19 + 4de0: 180f883a mov r7,r3 + 4de4: b00d883a mov r6,r22 + 4de8: 0009a900 call 9a90 <__ltdf2> + 4dec: 1000080e bge r2,zero,4e10 <_dtoa_r+0x578> + 4df0: 0027883a mov r19,zero + 4df4: 0025883a mov r18,zero + 4df8: d8802617 ldw r2,152(sp) + 4dfc: df000517 ldw fp,20(sp) + 4e00: d8000615 stw zero,24(sp) + 4e04: 0084303a nor r2,zero,r2 + 4e08: d8800d15 stw r2,52(sp) + 4e0c: 00019b06 br 547c <_dtoa_r+0xbe4> + 4e10: d9801217 ldw r6,72(sp) + 4e14: d8801317 ldw r2,76(sp) + 4e18: 3029883a mov r20,r6 + 4e1c: 102b883a mov r21,r2 + 4e20: d8c00217 ldw r3,8(sp) + 4e24: 18008516 blt r3,zero,503c <_dtoa_r+0x7a4> + 4e28: d9000d17 ldw r4,52(sp) + 4e2c: 00800384 movi r2,14 + 4e30: 11008216 blt r2,r4,503c <_dtoa_r+0x7a4> + 4e34: 200490fa slli r2,r4,3 + 4e38: d9802617 ldw r6,152(sp) + 4e3c: 00c00074 movhi r3,1 + 4e40: 18f8a404 addi r3,r3,-7536 + 4e44: 10c5883a add r2,r2,r3 + 4e48: 14800017 ldw r18,0(r2) + 4e4c: 14c00117 ldw r19,4(r2) + 4e50: 30031e16 blt r6,zero,5acc <_dtoa_r+0x1234> + 4e54: d9000517 ldw r4,20(sp) + 4e58: d8c00f17 ldw r3,60(sp) + 4e5c: a823883a mov r17,r21 + 4e60: a021883a mov r16,r20 + 4e64: 192b883a add r21,r3,r4 + 4e68: 2039883a mov fp,r4 + 4e6c: 00000f06 br 4eac <_dtoa_r+0x614> + 4e70: 0005883a mov r2,zero + 4e74: 00d00934 movhi r3,16420 + 4e78: 5009883a mov r4,r10 + 4e7c: 580b883a mov r5,r11 + 4e80: 180f883a mov r7,r3 + 4e84: 100d883a mov r6,r2 + 4e88: 00092540 call 9254 <__muldf3> + 4e8c: 180b883a mov r5,r3 + 4e90: 000d883a mov r6,zero + 4e94: 000f883a mov r7,zero + 4e98: 1009883a mov r4,r2 + 4e9c: 1021883a mov r16,r2 + 4ea0: 1823883a mov r17,r3 + 4ea4: 00098f80 call 98f8 <__nedf2> + 4ea8: 10004526 beq r2,zero,4fc0 <_dtoa_r+0x728> + 4eac: 900d883a mov r6,r18 + 4eb0: 980f883a mov r7,r19 + 4eb4: 8009883a mov r4,r16 + 4eb8: 880b883a mov r5,r17 + 4ebc: 00096180 call 9618 <__divdf3> + 4ec0: 180b883a mov r5,r3 + 4ec4: 1009883a mov r4,r2 + 4ec8: 0009c100 call 9c10 <__fixdfsi> + 4ecc: 1009883a mov r4,r2 + 4ed0: 1029883a mov r20,r2 + 4ed4: 0009b180 call 9b18 <__floatsidf> + 4ed8: 180f883a mov r7,r3 + 4edc: 9009883a mov r4,r18 + 4ee0: 980b883a mov r5,r19 + 4ee4: 100d883a mov r6,r2 + 4ee8: 00092540 call 9254 <__muldf3> + 4eec: 180f883a mov r7,r3 + 4ef0: 880b883a mov r5,r17 + 4ef4: 8009883a mov r4,r16 + 4ef8: 100d883a mov r6,r2 + 4efc: 00091600 call 9160 <__subdf3> + 4f00: 1015883a mov r10,r2 + 4f04: a0800c04 addi r2,r20,48 + 4f08: e0800005 stb r2,0(fp) + 4f0c: e7000044 addi fp,fp,1 + 4f10: 1817883a mov r11,r3 + 4f14: e57fd61e bne fp,r21,4e70 <_dtoa_r+0x5d8> + 4f18: 500d883a mov r6,r10 + 4f1c: 180f883a mov r7,r3 + 4f20: 5009883a mov r4,r10 + 4f24: 180b883a mov r5,r3 + 4f28: 00091e00 call 91e0 <__adddf3> + 4f2c: 100d883a mov r6,r2 + 4f30: 9009883a mov r4,r18 + 4f34: 980b883a mov r5,r19 + 4f38: 180f883a mov r7,r3 + 4f3c: 1021883a mov r16,r2 + 4f40: 1823883a mov r17,r3 + 4f44: 0009a900 call 9a90 <__ltdf2> + 4f48: 10000816 blt r2,zero,4f6c <_dtoa_r+0x6d4> + 4f4c: 980b883a mov r5,r19 + 4f50: 800d883a mov r6,r16 + 4f54: 880f883a mov r7,r17 + 4f58: 9009883a mov r4,r18 + 4f5c: 00098700 call 9870 <__eqdf2> + 4f60: 1000171e bne r2,zero,4fc0 <_dtoa_r+0x728> + 4f64: a080004c andi r2,r20,1 + 4f68: 10001526 beq r2,zero,4fc0 <_dtoa_r+0x728> + 4f6c: d8800d17 ldw r2,52(sp) + 4f70: d8800415 stw r2,16(sp) + 4f74: e009883a mov r4,fp + 4f78: 213fffc4 addi r4,r4,-1 + 4f7c: 20c00007 ldb r3,0(r4) + 4f80: 00800e44 movi r2,57 + 4f84: 1880081e bne r3,r2,4fa8 <_dtoa_r+0x710> + 4f88: d8800517 ldw r2,20(sp) + 4f8c: 113ffa1e bne r2,r4,4f78 <_dtoa_r+0x6e0> + 4f90: d8c00417 ldw r3,16(sp) + 4f94: d9800517 ldw r6,20(sp) + 4f98: 00800c04 movi r2,48 + 4f9c: 18c00044 addi r3,r3,1 + 4fa0: d8c00415 stw r3,16(sp) + 4fa4: 30800005 stb r2,0(r6) + 4fa8: 20800003 ldbu r2,0(r4) + 4fac: d8c00417 ldw r3,16(sp) + 4fb0: 27000044 addi fp,r4,1 + 4fb4: 10800044 addi r2,r2,1 + 4fb8: d8c00d15 stw r3,52(sp) + 4fbc: 20800005 stb r2,0(r4) + 4fc0: d9001617 ldw r4,88(sp) + 4fc4: d9400717 ldw r5,28(sp) + 4fc8: 00067980 call 6798 <_Bfree> + 4fcc: e0000005 stb zero,0(fp) + 4fd0: d9800d17 ldw r6,52(sp) + 4fd4: d8c02717 ldw r3,156(sp) + 4fd8: d9002917 ldw r4,164(sp) + 4fdc: 30800044 addi r2,r6,1 + 4fe0: 18800015 stw r2,0(r3) + 4fe4: 20029c26 beq r4,zero,5a58 <_dtoa_r+0x11c0> + 4fe8: d8c00517 ldw r3,20(sp) + 4fec: 27000015 stw fp,0(r4) + 4ff0: 003e5d06 br 4968 <_dtoa_r+0xd0> + 4ff4: d9800d17 ldw r6,52(sp) + 4ff8: 00c00074 movhi r3,1 + 4ffc: 18f8a404 addi r3,r3,-7536 + 5000: d9001217 ldw r4,72(sp) + 5004: 300490fa slli r2,r6,3 + 5008: d9401317 ldw r5,76(sp) + 500c: 10c5883a add r2,r2,r3 + 5010: 12000017 ldw r8,0(r2) + 5014: 12400117 ldw r9,4(r2) + 5018: 400d883a mov r6,r8 + 501c: 480f883a mov r7,r9 + 5020: 0009a900 call 9a90 <__ltdf2> + 5024: 1000030e bge r2,zero,5034 <_dtoa_r+0x79c> + 5028: d8800d17 ldw r2,52(sp) + 502c: 10bfffc4 addi r2,r2,-1 + 5030: d8800d15 stw r2,52(sp) + 5034: d8000c15 stw zero,48(sp) + 5038: 003ea806 br 4adc <_dtoa_r+0x244> + 503c: d9000b17 ldw r4,44(sp) + 5040: 202cc03a cmpne r22,r4,zero + 5044: b000c71e bne r22,zero,5364 <_dtoa_r+0xacc> + 5048: dc001117 ldw r16,68(sp) + 504c: dc801017 ldw r18,64(sp) + 5050: 0027883a mov r19,zero + 5054: 04000b0e bge zero,r16,5084 <_dtoa_r+0x7ec> + 5058: d8c00a17 ldw r3,40(sp) + 505c: 00c0090e bge zero,r3,5084 <_dtoa_r+0x7ec> + 5060: 8005883a mov r2,r16 + 5064: 1c011316 blt r3,r16,54b4 <_dtoa_r+0xc1c> + 5068: d9000a17 ldw r4,40(sp) + 506c: d9801117 ldw r6,68(sp) + 5070: 80a1c83a sub r16,r16,r2 + 5074: 2089c83a sub r4,r4,r2 + 5078: 308dc83a sub r6,r6,r2 + 507c: d9000a15 stw r4,40(sp) + 5080: d9801115 stw r6,68(sp) + 5084: d8801017 ldw r2,64(sp) + 5088: 0080150e bge zero,r2,50e0 <_dtoa_r+0x848> + 508c: d8c00b17 ldw r3,44(sp) + 5090: 1805003a cmpeq r2,r3,zero + 5094: 1001c91e bne r2,zero,57bc <_dtoa_r+0xf24> + 5098: 04800e0e bge zero,r18,50d4 <_dtoa_r+0x83c> + 509c: d9001617 ldw r4,88(sp) + 50a0: 980b883a mov r5,r19 + 50a4: 900d883a mov r6,r18 + 50a8: 00075e40 call 75e4 <__pow5mult> + 50ac: d9001617 ldw r4,88(sp) + 50b0: d9800717 ldw r6,28(sp) + 50b4: 100b883a mov r5,r2 + 50b8: 1027883a mov r19,r2 + 50bc: 00072280 call 7228 <__multiply> + 50c0: d9001617 ldw r4,88(sp) + 50c4: d9400717 ldw r5,28(sp) + 50c8: 1023883a mov r17,r2 + 50cc: 00067980 call 6798 <_Bfree> + 50d0: dc400715 stw r17,28(sp) + 50d4: d9001017 ldw r4,64(sp) + 50d8: 248dc83a sub r6,r4,r18 + 50dc: 30010e1e bne r6,zero,5518 <_dtoa_r+0xc80> + 50e0: d9001617 ldw r4,88(sp) + 50e4: 04400044 movi r17,1 + 50e8: 880b883a mov r5,r17 + 50ec: 000747c0 call 747c <__i2b> + 50f0: d9800917 ldw r6,36(sp) + 50f4: 1025883a mov r18,r2 + 50f8: 0180040e bge zero,r6,510c <_dtoa_r+0x874> + 50fc: d9001617 ldw r4,88(sp) + 5100: 100b883a mov r5,r2 + 5104: 00075e40 call 75e4 <__pow5mult> + 5108: 1025883a mov r18,r2 + 510c: d8801717 ldw r2,92(sp) + 5110: 8880f30e bge r17,r2,54e0 <_dtoa_r+0xc48> + 5114: 0023883a mov r17,zero + 5118: d9800917 ldw r6,36(sp) + 511c: 30019e1e bne r6,zero,5798 <_dtoa_r+0xf00> + 5120: 00c00044 movi r3,1 + 5124: d9000a17 ldw r4,40(sp) + 5128: 20c5883a add r2,r4,r3 + 512c: 10c007cc andi r3,r2,31 + 5130: 1800841e bne r3,zero,5344 <_dtoa_r+0xaac> + 5134: 00800704 movi r2,28 + 5138: d9000a17 ldw r4,40(sp) + 513c: d9801117 ldw r6,68(sp) + 5140: 80a1883a add r16,r16,r2 + 5144: 2089883a add r4,r4,r2 + 5148: 308d883a add r6,r6,r2 + 514c: d9000a15 stw r4,40(sp) + 5150: d9801115 stw r6,68(sp) + 5154: d8801117 ldw r2,68(sp) + 5158: 0080050e bge zero,r2,5170 <_dtoa_r+0x8d8> + 515c: d9400717 ldw r5,28(sp) + 5160: d9001617 ldw r4,88(sp) + 5164: 100d883a mov r6,r2 + 5168: 00070dc0 call 70dc <__lshift> + 516c: d8800715 stw r2,28(sp) + 5170: d8c00a17 ldw r3,40(sp) + 5174: 00c0050e bge zero,r3,518c <_dtoa_r+0x8f4> + 5178: d9001617 ldw r4,88(sp) + 517c: 900b883a mov r5,r18 + 5180: 180d883a mov r6,r3 + 5184: 00070dc0 call 70dc <__lshift> + 5188: 1025883a mov r18,r2 + 518c: d9000c17 ldw r4,48(sp) + 5190: 2005003a cmpeq r2,r4,zero + 5194: 10016f26 beq r2,zero,5754 <_dtoa_r+0xebc> + 5198: d9000f17 ldw r4,60(sp) + 519c: 0102170e bge zero,r4,59fc <_dtoa_r+0x1164> + 51a0: d9800b17 ldw r6,44(sp) + 51a4: 3005003a cmpeq r2,r6,zero + 51a8: 1000881e bne r2,zero,53cc <_dtoa_r+0xb34> + 51ac: 0400050e bge zero,r16,51c4 <_dtoa_r+0x92c> + 51b0: d9001617 ldw r4,88(sp) + 51b4: 980b883a mov r5,r19 + 51b8: 800d883a mov r6,r16 + 51bc: 00070dc0 call 70dc <__lshift> + 51c0: 1027883a mov r19,r2 + 51c4: 8804c03a cmpne r2,r17,zero + 51c8: 1002541e bne r2,zero,5b1c <_dtoa_r+0x1284> + 51cc: 980b883a mov r5,r19 + 51d0: dd800517 ldw r22,20(sp) + 51d4: dcc00615 stw r19,24(sp) + 51d8: a700004c andi fp,r20,1 + 51dc: 2827883a mov r19,r5 + 51e0: d9000717 ldw r4,28(sp) + 51e4: 900b883a mov r5,r18 + 51e8: 00046540 call 4654 + 51ec: d9000717 ldw r4,28(sp) + 51f0: d9400617 ldw r5,24(sp) + 51f4: 1023883a mov r17,r2 + 51f8: 8dc00c04 addi r23,r17,48 + 51fc: 00068f40 call 68f4 <__mcmp> + 5200: d9001617 ldw r4,88(sp) + 5204: 900b883a mov r5,r18 + 5208: 980d883a mov r6,r19 + 520c: 1029883a mov r20,r2 + 5210: 0006f500 call 6f50 <__mdiff> + 5214: 102b883a mov r21,r2 + 5218: 10800317 ldw r2,12(r2) + 521c: 1001281e bne r2,zero,56c0 <_dtoa_r+0xe28> + 5220: d9000717 ldw r4,28(sp) + 5224: a80b883a mov r5,r21 + 5228: 00068f40 call 68f4 <__mcmp> + 522c: d9001617 ldw r4,88(sp) + 5230: 1021883a mov r16,r2 + 5234: a80b883a mov r5,r21 + 5238: 00067980 call 6798 <_Bfree> + 523c: 8000041e bne r16,zero,5250 <_dtoa_r+0x9b8> + 5240: d8801717 ldw r2,92(sp) + 5244: 1000021e bne r2,zero,5250 <_dtoa_r+0x9b8> + 5248: e004c03a cmpne r2,fp,zero + 524c: 10011726 beq r2,zero,56ac <_dtoa_r+0xe14> + 5250: a0010616 blt r20,zero,566c <_dtoa_r+0xdd4> + 5254: a000041e bne r20,zero,5268 <_dtoa_r+0x9d0> + 5258: d8c01717 ldw r3,92(sp) + 525c: 1800021e bne r3,zero,5268 <_dtoa_r+0x9d0> + 5260: e004c03a cmpne r2,fp,zero + 5264: 10010126 beq r2,zero,566c <_dtoa_r+0xdd4> + 5268: 04023d16 blt zero,r16,5b60 <_dtoa_r+0x12c8> + 526c: b5c00005 stb r23,0(r22) + 5270: d9800517 ldw r6,20(sp) + 5274: d9000f17 ldw r4,60(sp) + 5278: b5800044 addi r22,r22,1 + 527c: 3105883a add r2,r6,r4 + 5280: b0806526 beq r22,r2,5418 <_dtoa_r+0xb80> + 5284: d9400717 ldw r5,28(sp) + 5288: d9001617 ldw r4,88(sp) + 528c: 01800284 movi r6,10 + 5290: 000f883a mov r7,zero + 5294: 00074b80 call 74b8 <__multadd> + 5298: d8800715 stw r2,28(sp) + 529c: d8800617 ldw r2,24(sp) + 52a0: 14c10c26 beq r2,r19,56d4 <_dtoa_r+0xe3c> + 52a4: d9400617 ldw r5,24(sp) + 52a8: d9001617 ldw r4,88(sp) + 52ac: 01800284 movi r6,10 + 52b0: 000f883a mov r7,zero + 52b4: 00074b80 call 74b8 <__multadd> + 52b8: d9001617 ldw r4,88(sp) + 52bc: 980b883a mov r5,r19 + 52c0: 01800284 movi r6,10 + 52c4: 000f883a mov r7,zero + 52c8: d8800615 stw r2,24(sp) + 52cc: 00074b80 call 74b8 <__multadd> + 52d0: 1027883a mov r19,r2 + 52d4: 003fc206 br 51e0 <_dtoa_r+0x948> + 52d8: 2445c83a sub r2,r4,r17 + 52dc: a088983a sll r4,r20,r2 + 52e0: 003e4b06 br 4c10 <_dtoa_r+0x378> + 52e4: 01bfffc4 movi r6,-1 + 52e8: 00800044 movi r2,1 + 52ec: d9800e15 stw r6,56(sp) + 52f0: d9800f15 stw r6,60(sp) + 52f4: d8800b15 stw r2,44(sp) + 52f8: d8c01617 ldw r3,88(sp) + 52fc: 008005c4 movi r2,23 + 5300: 18001115 stw zero,68(r3) + 5304: 1580082e bgeu r2,r22,5328 <_dtoa_r+0xa90> + 5308: 00c00104 movi r3,4 + 530c: 0009883a mov r4,zero + 5310: 18c7883a add r3,r3,r3 + 5314: 18800504 addi r2,r3,20 + 5318: 21000044 addi r4,r4,1 + 531c: b0bffc2e bgeu r22,r2,5310 <_dtoa_r+0xa78> + 5320: d9801617 ldw r6,88(sp) + 5324: 31001115 stw r4,68(r6) + 5328: dc000f17 ldw r16,60(sp) + 532c: 003e4b06 br 4c5c <_dtoa_r+0x3c4> + 5330: d9801717 ldw r6,92(sp) + 5334: 0023883a mov r17,zero + 5338: 31bfff04 addi r6,r6,-4 + 533c: d9801715 stw r6,92(sp) + 5340: 003df806 br 4b24 <_dtoa_r+0x28c> + 5344: 00800804 movi r2,32 + 5348: 10c9c83a sub r4,r2,r3 + 534c: 00c00104 movi r3,4 + 5350: 19005a16 blt r3,r4,54bc <_dtoa_r+0xc24> + 5354: 008000c4 movi r2,3 + 5358: 113f7e16 blt r2,r4,5154 <_dtoa_r+0x8bc> + 535c: 20800704 addi r2,r4,28 + 5360: 003f7506 br 5138 <_dtoa_r+0x8a0> + 5364: d9801717 ldw r6,92(sp) + 5368: 00800044 movi r2,1 + 536c: 1180a10e bge r2,r6,55f4 <_dtoa_r+0xd5c> + 5370: d9800f17 ldw r6,60(sp) + 5374: d8c01017 ldw r3,64(sp) + 5378: 30bfffc4 addi r2,r6,-1 + 537c: 1881c616 blt r3,r2,5a98 <_dtoa_r+0x1200> + 5380: 18a5c83a sub r18,r3,r2 + 5384: d8800f17 ldw r2,60(sp) + 5388: 10026216 blt r2,zero,5d14 <_dtoa_r+0x147c> + 538c: dc001117 ldw r16,68(sp) + 5390: 1007883a mov r3,r2 + 5394: d9800a17 ldw r6,40(sp) + 5398: d8801117 ldw r2,68(sp) + 539c: d9001617 ldw r4,88(sp) + 53a0: 30cd883a add r6,r6,r3 + 53a4: 10c5883a add r2,r2,r3 + 53a8: 01400044 movi r5,1 + 53ac: d9800a15 stw r6,40(sp) + 53b0: d8801115 stw r2,68(sp) + 53b4: 000747c0 call 747c <__i2b> + 53b8: 1027883a mov r19,r2 + 53bc: 003f2506 br 5054 <_dtoa_r+0x7bc> + 53c0: 00c00074 movhi r3,1 + 53c4: 18f88704 addi r3,r3,-7652 + 53c8: 003d6706 br 4968 <_dtoa_r+0xd0> + 53cc: dd800517 ldw r22,20(sp) + 53d0: 04000044 movi r16,1 + 53d4: 00000706 br 53f4 <_dtoa_r+0xb5c> + 53d8: d9400717 ldw r5,28(sp) + 53dc: d9001617 ldw r4,88(sp) + 53e0: 01800284 movi r6,10 + 53e4: 000f883a mov r7,zero + 53e8: 00074b80 call 74b8 <__multadd> + 53ec: d8800715 stw r2,28(sp) + 53f0: 84000044 addi r16,r16,1 + 53f4: d9000717 ldw r4,28(sp) + 53f8: 900b883a mov r5,r18 + 53fc: 00046540 call 4654 + 5400: 15c00c04 addi r23,r2,48 + 5404: b5c00005 stb r23,0(r22) + 5408: d8c00f17 ldw r3,60(sp) + 540c: b5800044 addi r22,r22,1 + 5410: 80fff116 blt r16,r3,53d8 <_dtoa_r+0xb40> + 5414: d8000615 stw zero,24(sp) + 5418: d9400717 ldw r5,28(sp) + 541c: d9001617 ldw r4,88(sp) + 5420: 01800044 movi r6,1 + 5424: 00070dc0 call 70dc <__lshift> + 5428: 1009883a mov r4,r2 + 542c: 900b883a mov r5,r18 + 5430: d8800715 stw r2,28(sp) + 5434: 00068f40 call 68f4 <__mcmp> + 5438: 00803c0e bge zero,r2,552c <_dtoa_r+0xc94> + 543c: b009883a mov r4,r22 + 5440: 213fffc4 addi r4,r4,-1 + 5444: 21400003 ldbu r5,0(r4) + 5448: 00800e44 movi r2,57 + 544c: 28c03fcc andi r3,r5,255 + 5450: 18c0201c xori r3,r3,128 + 5454: 18ffe004 addi r3,r3,-128 + 5458: 1881981e bne r3,r2,5abc <_dtoa_r+0x1224> + 545c: d9800517 ldw r6,20(sp) + 5460: 21bff71e bne r4,r6,5440 <_dtoa_r+0xba8> + 5464: d8800d17 ldw r2,52(sp) + 5468: 37000044 addi fp,r6,1 + 546c: 10800044 addi r2,r2,1 + 5470: d8800d15 stw r2,52(sp) + 5474: 00800c44 movi r2,49 + 5478: 30800005 stb r2,0(r6) + 547c: d9001617 ldw r4,88(sp) + 5480: 900b883a mov r5,r18 + 5484: 00067980 call 6798 <_Bfree> + 5488: 983ecd26 beq r19,zero,4fc0 <_dtoa_r+0x728> + 548c: d8c00617 ldw r3,24(sp) + 5490: 18000426 beq r3,zero,54a4 <_dtoa_r+0xc0c> + 5494: 1cc00326 beq r3,r19,54a4 <_dtoa_r+0xc0c> + 5498: d9001617 ldw r4,88(sp) + 549c: 180b883a mov r5,r3 + 54a0: 00067980 call 6798 <_Bfree> + 54a4: d9001617 ldw r4,88(sp) + 54a8: 980b883a mov r5,r19 + 54ac: 00067980 call 6798 <_Bfree> + 54b0: 003ec306 br 4fc0 <_dtoa_r+0x728> + 54b4: 1805883a mov r2,r3 + 54b8: 003eeb06 br 5068 <_dtoa_r+0x7d0> + 54bc: d9800a17 ldw r6,40(sp) + 54c0: d8c01117 ldw r3,68(sp) + 54c4: 20bfff04 addi r2,r4,-4 + 54c8: 308d883a add r6,r6,r2 + 54cc: 1887883a add r3,r3,r2 + 54d0: 80a1883a add r16,r16,r2 + 54d4: d9800a15 stw r6,40(sp) + 54d8: d8c01115 stw r3,68(sp) + 54dc: 003f1d06 br 5154 <_dtoa_r+0x8bc> + 54e0: a03f0c1e bne r20,zero,5114 <_dtoa_r+0x87c> + 54e4: 00800434 movhi r2,16 + 54e8: 10bfffc4 addi r2,r2,-1 + 54ec: a884703a and r2,r21,r2 + 54f0: 103f081e bne r2,zero,5114 <_dtoa_r+0x87c> + 54f4: a89ffc2c andhi r2,r21,32752 + 54f8: 103f0626 beq r2,zero,5114 <_dtoa_r+0x87c> + 54fc: d8c01117 ldw r3,68(sp) + 5500: d9000a17 ldw r4,40(sp) + 5504: 18c00044 addi r3,r3,1 + 5508: 21000044 addi r4,r4,1 + 550c: d8c01115 stw r3,68(sp) + 5510: d9000a15 stw r4,40(sp) + 5514: 003f0006 br 5118 <_dtoa_r+0x880> + 5518: d9400717 ldw r5,28(sp) + 551c: d9001617 ldw r4,88(sp) + 5520: 00075e40 call 75e4 <__pow5mult> + 5524: d8800715 stw r2,28(sp) + 5528: 003eed06 br 50e0 <_dtoa_r+0x848> + 552c: 1000021e bne r2,zero,5538 <_dtoa_r+0xca0> + 5530: b880004c andi r2,r23,1 + 5534: 103fc11e bne r2,zero,543c <_dtoa_r+0xba4> + 5538: b5bfffc4 addi r22,r22,-1 + 553c: b0c00007 ldb r3,0(r22) + 5540: 00800c04 movi r2,48 + 5544: 18bffc26 beq r3,r2,5538 <_dtoa_r+0xca0> + 5548: b7000044 addi fp,r22,1 + 554c: 003fcb06 br 547c <_dtoa_r+0xbe4> + 5550: d9800d17 ldw r6,52(sp) + 5554: 018fc83a sub r7,zero,r6 + 5558: 3801f726 beq r7,zero,5d38 <_dtoa_r+0x14a0> + 555c: 398003cc andi r6,r7,15 + 5560: 300c90fa slli r6,r6,3 + 5564: 01400074 movhi r5,1 + 5568: 2978a404 addi r5,r5,-7536 + 556c: d9001217 ldw r4,72(sp) + 5570: 314d883a add r6,r6,r5 + 5574: 30c00117 ldw r3,4(r6) + 5578: 30800017 ldw r2,0(r6) + 557c: d9401317 ldw r5,76(sp) + 5580: 3821d13a srai r16,r7,4 + 5584: 100d883a mov r6,r2 + 5588: 180f883a mov r7,r3 + 558c: 00092540 call 9254 <__muldf3> + 5590: 1011883a mov r8,r2 + 5594: 1813883a mov r9,r3 + 5598: 1029883a mov r20,r2 + 559c: 182b883a mov r21,r3 + 55a0: 8001e526 beq r16,zero,5d38 <_dtoa_r+0x14a0> + 55a4: 05800084 movi r22,2 + 55a8: 04400074 movhi r17,1 + 55ac: 8c78d604 addi r17,r17,-7336 + 55b0: 8080004c andi r2,r16,1 + 55b4: 1005003a cmpeq r2,r2,zero + 55b8: 1000081e bne r2,zero,55dc <_dtoa_r+0xd44> + 55bc: 89800017 ldw r6,0(r17) + 55c0: 89c00117 ldw r7,4(r17) + 55c4: 480b883a mov r5,r9 + 55c8: 4009883a mov r4,r8 + 55cc: 00092540 call 9254 <__muldf3> + 55d0: 1011883a mov r8,r2 + 55d4: b5800044 addi r22,r22,1 + 55d8: 1813883a mov r9,r3 + 55dc: 8021d07a srai r16,r16,1 + 55e0: 8c400204 addi r17,r17,8 + 55e4: 803ff21e bne r16,zero,55b0 <_dtoa_r+0xd18> + 55e8: 4029883a mov r20,r8 + 55ec: 482b883a mov r21,r9 + 55f0: 003dca06 br 4d1c <_dtoa_r+0x484> + 55f4: d9000817 ldw r4,32(sp) + 55f8: 2005003a cmpeq r2,r4,zero + 55fc: 1001f61e bne r2,zero,5dd8 <_dtoa_r+0x1540> + 5600: dc001117 ldw r16,68(sp) + 5604: dc801017 ldw r18,64(sp) + 5608: 18c10cc4 addi r3,r3,1075 + 560c: 003f6106 br 5394 <_dtoa_r+0xafc> + 5610: d8000b15 stw zero,44(sp) + 5614: d9802617 ldw r6,152(sp) + 5618: d8c00d17 ldw r3,52(sp) + 561c: 30800044 addi r2,r6,1 + 5620: 18ad883a add r22,r3,r2 + 5624: b13fffc4 addi r4,r22,-1 + 5628: d9000e15 stw r4,56(sp) + 562c: 0581f60e bge zero,r22,5e08 <_dtoa_r+0x1570> + 5630: dd800f15 stw r22,60(sp) + 5634: 003f3006 br 52f8 <_dtoa_r+0xa60> + 5638: d8000b15 stw zero,44(sp) + 563c: d9002617 ldw r4,152(sp) + 5640: 0101eb0e bge zero,r4,5df0 <_dtoa_r+0x1558> + 5644: 202d883a mov r22,r4 + 5648: d9000e15 stw r4,56(sp) + 564c: d9000f15 stw r4,60(sp) + 5650: 003f2906 br 52f8 <_dtoa_r+0xa60> + 5654: 01800044 movi r6,1 + 5658: d9800b15 stw r6,44(sp) + 565c: 003ff706 br 563c <_dtoa_r+0xda4> + 5660: 01000044 movi r4,1 + 5664: d9000b15 stw r4,44(sp) + 5668: 003fea06 br 5614 <_dtoa_r+0xd7c> + 566c: 04000c0e bge zero,r16,56a0 <_dtoa_r+0xe08> + 5670: d9400717 ldw r5,28(sp) + 5674: d9001617 ldw r4,88(sp) + 5678: 01800044 movi r6,1 + 567c: 00070dc0 call 70dc <__lshift> + 5680: 1009883a mov r4,r2 + 5684: 900b883a mov r5,r18 + 5688: d8800715 stw r2,28(sp) + 568c: 00068f40 call 68f4 <__mcmp> + 5690: 0081e00e bge zero,r2,5e14 <_dtoa_r+0x157c> + 5694: bdc00044 addi r23,r23,1 + 5698: 00800e84 movi r2,58 + 569c: b881a226 beq r23,r2,5d28 <_dtoa_r+0x1490> + 56a0: b7000044 addi fp,r22,1 + 56a4: b5c00005 stb r23,0(r22) + 56a8: 003f7406 br 547c <_dtoa_r+0xbe4> + 56ac: 00800e44 movi r2,57 + 56b0: b8819d26 beq r23,r2,5d28 <_dtoa_r+0x1490> + 56b4: 053ffa0e bge zero,r20,56a0 <_dtoa_r+0xe08> + 56b8: 8dc00c44 addi r23,r17,49 + 56bc: 003ff806 br 56a0 <_dtoa_r+0xe08> + 56c0: d9001617 ldw r4,88(sp) + 56c4: a80b883a mov r5,r21 + 56c8: 04000044 movi r16,1 + 56cc: 00067980 call 6798 <_Bfree> + 56d0: 003edf06 br 5250 <_dtoa_r+0x9b8> + 56d4: d9001617 ldw r4,88(sp) + 56d8: 980b883a mov r5,r19 + 56dc: 01800284 movi r6,10 + 56e0: 000f883a mov r7,zero + 56e4: 00074b80 call 74b8 <__multadd> + 56e8: 1027883a mov r19,r2 + 56ec: d8800615 stw r2,24(sp) + 56f0: 003ebb06 br 51e0 <_dtoa_r+0x948> + 56f4: d9801117 ldw r6,68(sp) + 56f8: d8800d17 ldw r2,52(sp) + 56fc: d8000915 stw zero,36(sp) + 5700: 308dc83a sub r6,r6,r2 + 5704: 0087c83a sub r3,zero,r2 + 5708: d9801115 stw r6,68(sp) + 570c: d8c01015 stw r3,64(sp) + 5710: 003cfe06 br 4b0c <_dtoa_r+0x274> + 5714: 018dc83a sub r6,zero,r6 + 5718: d9801115 stw r6,68(sp) + 571c: d8000a15 stw zero,40(sp) + 5720: 003cf306 br 4af0 <_dtoa_r+0x258> + 5724: d9000d17 ldw r4,52(sp) + 5728: 0009b180 call 9b18 <__floatsidf> + 572c: 880b883a mov r5,r17 + 5730: 8009883a mov r4,r16 + 5734: 180f883a mov r7,r3 + 5738: 100d883a mov r6,r2 + 573c: 00098f80 call 98f8 <__nedf2> + 5740: 103ce126 beq r2,zero,4ac8 <_dtoa_r+0x230> + 5744: d9800d17 ldw r6,52(sp) + 5748: 31bfffc4 addi r6,r6,-1 + 574c: d9800d15 stw r6,52(sp) + 5750: 003cdd06 br 4ac8 <_dtoa_r+0x230> + 5754: d9000717 ldw r4,28(sp) + 5758: 900b883a mov r5,r18 + 575c: 00068f40 call 68f4 <__mcmp> + 5760: 103e8d0e bge r2,zero,5198 <_dtoa_r+0x900> + 5764: d9400717 ldw r5,28(sp) + 5768: d9001617 ldw r4,88(sp) + 576c: 01800284 movi r6,10 + 5770: 000f883a mov r7,zero + 5774: 00074b80 call 74b8 <__multadd> + 5778: d9800d17 ldw r6,52(sp) + 577c: d8800715 stw r2,28(sp) + 5780: 31bfffc4 addi r6,r6,-1 + 5784: d9800d15 stw r6,52(sp) + 5788: b001a71e bne r22,zero,5e28 <_dtoa_r+0x1590> + 578c: d8800e17 ldw r2,56(sp) + 5790: d8800f15 stw r2,60(sp) + 5794: 003e8006 br 5198 <_dtoa_r+0x900> + 5798: 90800417 ldw r2,16(r18) + 579c: 1085883a add r2,r2,r2 + 57a0: 1085883a add r2,r2,r2 + 57a4: 1485883a add r2,r2,r18 + 57a8: 11000417 ldw r4,16(r2) + 57ac: 00067c00 call 67c0 <__hi0bits> + 57b0: 00c00804 movi r3,32 + 57b4: 1887c83a sub r3,r3,r2 + 57b8: 003e5a06 br 5124 <_dtoa_r+0x88c> + 57bc: d9400717 ldw r5,28(sp) + 57c0: d9801017 ldw r6,64(sp) + 57c4: d9001617 ldw r4,88(sp) + 57c8: 00075e40 call 75e4 <__pow5mult> + 57cc: d8800715 stw r2,28(sp) + 57d0: 003e4306 br 50e0 <_dtoa_r+0x848> + 57d4: d9800f17 ldw r6,60(sp) + 57d8: d8800d17 ldw r2,52(sp) + 57dc: d9800315 stw r6,12(sp) + 57e0: d8800415 stw r2,16(sp) + 57e4: d8c00b17 ldw r3,44(sp) + 57e8: 1805003a cmpeq r2,r3,zero + 57ec: 1000e21e bne r2,zero,5b78 <_dtoa_r+0x12e0> + 57f0: d9000317 ldw r4,12(sp) + 57f4: 0005883a mov r2,zero + 57f8: 00cff834 movhi r3,16352 + 57fc: 200c90fa slli r6,r4,3 + 5800: 01000074 movhi r4,1 + 5804: 2138a404 addi r4,r4,-7536 + 5808: 180b883a mov r5,r3 + 580c: 310d883a add r6,r6,r4 + 5810: 327fff17 ldw r9,-4(r6) + 5814: 323ffe17 ldw r8,-8(r6) + 5818: 1009883a mov r4,r2 + 581c: 480f883a mov r7,r9 + 5820: 400d883a mov r6,r8 + 5824: 00096180 call 9618 <__divdf3> + 5828: 180b883a mov r5,r3 + 582c: b00d883a mov r6,r22 + 5830: b80f883a mov r7,r23 + 5834: 1009883a mov r4,r2 + 5838: 00091600 call 9160 <__subdf3> + 583c: a80b883a mov r5,r21 + 5840: a009883a mov r4,r20 + 5844: d8c01915 stw r3,100(sp) + 5848: d8801815 stw r2,96(sp) + 584c: 0009c100 call 9c10 <__fixdfsi> + 5850: 1009883a mov r4,r2 + 5854: 1027883a mov r19,r2 + 5858: 0009b180 call 9b18 <__floatsidf> + 585c: a80b883a mov r5,r21 + 5860: a009883a mov r4,r20 + 5864: 180f883a mov r7,r3 + 5868: 100d883a mov r6,r2 + 586c: 00091600 call 9160 <__subdf3> + 5870: d9801817 ldw r6,96(sp) + 5874: 1823883a mov r17,r3 + 5878: d8801415 stw r2,80(sp) + 587c: 302d883a mov r22,r6 + 5880: d9800517 ldw r6,20(sp) + 5884: 9cc00c04 addi r19,r19,48 + 5888: dc401515 stw r17,84(sp) + 588c: d8c01917 ldw r3,100(sp) + 5890: 34c00005 stb r19,0(r6) + 5894: d8800517 ldw r2,20(sp) + 5898: d9401917 ldw r5,100(sp) + 589c: d9801417 ldw r6,80(sp) + 58a0: b009883a mov r4,r22 + 58a4: 880f883a mov r7,r17 + 58a8: 182f883a mov r23,r3 + 58ac: 17000044 addi fp,r2,1 + 58b0: 00099800 call 9980 <__gtdf2> + 58b4: 00804e16 blt zero,r2,59f0 <_dtoa_r+0x1158> + 58b8: d9801417 ldw r6,80(sp) + 58bc: 0005883a mov r2,zero + 58c0: 00cffc34 movhi r3,16368 + 58c4: 180b883a mov r5,r3 + 58c8: 880f883a mov r7,r17 + 58cc: 1009883a mov r4,r2 + 58d0: 00091600 call 9160 <__subdf3> + 58d4: d9401917 ldw r5,100(sp) + 58d8: 180f883a mov r7,r3 + 58dc: b009883a mov r4,r22 + 58e0: 100d883a mov r6,r2 + 58e4: 00099800 call 9980 <__gtdf2> + 58e8: 00bda216 blt zero,r2,4f74 <_dtoa_r+0x6dc> + 58ec: d8c00317 ldw r3,12(sp) + 58f0: 00800044 movi r2,1 + 58f4: 10c01216 blt r2,r3,5940 <_dtoa_r+0x10a8> + 58f8: 003d4506 br 4e10 <_dtoa_r+0x578> + 58fc: d9801417 ldw r6,80(sp) + 5900: 0005883a mov r2,zero + 5904: 00cffc34 movhi r3,16368 + 5908: 180b883a mov r5,r3 + 590c: 880f883a mov r7,r17 + 5910: 1009883a mov r4,r2 + 5914: 00091600 call 9160 <__subdf3> + 5918: d9c01b17 ldw r7,108(sp) + 591c: 180b883a mov r5,r3 + 5920: 1009883a mov r4,r2 + 5924: b00d883a mov r6,r22 + 5928: 0009a900 call 9a90 <__ltdf2> + 592c: 103d9116 blt r2,zero,4f74 <_dtoa_r+0x6dc> + 5930: d9800517 ldw r6,20(sp) + 5934: d9000317 ldw r4,12(sp) + 5938: 3105883a add r2,r6,r4 + 593c: e0bd3426 beq fp,r2,4e10 <_dtoa_r+0x578> + 5940: 04500934 movhi r17,16420 + 5944: 0021883a mov r16,zero + 5948: b80b883a mov r5,r23 + 594c: b009883a mov r4,r22 + 5950: 800d883a mov r6,r16 + 5954: 880f883a mov r7,r17 + 5958: 00092540 call 9254 <__muldf3> + 595c: d9401517 ldw r5,84(sp) + 5960: d9001417 ldw r4,80(sp) + 5964: 880f883a mov r7,r17 + 5968: 000d883a mov r6,zero + 596c: d8801a15 stw r2,104(sp) + 5970: d8c01b15 stw r3,108(sp) + 5974: 00092540 call 9254 <__muldf3> + 5978: 180b883a mov r5,r3 + 597c: 1009883a mov r4,r2 + 5980: 1823883a mov r17,r3 + 5984: 1021883a mov r16,r2 + 5988: 0009c100 call 9c10 <__fixdfsi> + 598c: 1009883a mov r4,r2 + 5990: 102b883a mov r21,r2 + 5994: 0009b180 call 9b18 <__floatsidf> + 5998: 880b883a mov r5,r17 + 599c: 8009883a mov r4,r16 + 59a0: 180f883a mov r7,r3 + 59a4: 100d883a mov r6,r2 + 59a8: 00091600 call 9160 <__subdf3> + 59ac: 1021883a mov r16,r2 + 59b0: d9001b17 ldw r4,108(sp) + 59b4: 1823883a mov r17,r3 + 59b8: dc001415 stw r16,80(sp) + 59bc: ad400c04 addi r21,r21,48 + 59c0: dc401515 stw r17,84(sp) + 59c4: d8801a17 ldw r2,104(sp) + 59c8: e5400005 stb r21,0(fp) + 59cc: 202f883a mov r23,r4 + 59d0: d9c01b17 ldw r7,108(sp) + 59d4: d9001417 ldw r4,80(sp) + 59d8: 880b883a mov r5,r17 + 59dc: 100d883a mov r6,r2 + 59e0: 102d883a mov r22,r2 + 59e4: e7000044 addi fp,fp,1 + 59e8: 0009a900 call 9a90 <__ltdf2> + 59ec: 103fc30e bge r2,zero,58fc <_dtoa_r+0x1064> + 59f0: d9000417 ldw r4,16(sp) + 59f4: d9000d15 stw r4,52(sp) + 59f8: 003d7106 br 4fc0 <_dtoa_r+0x728> + 59fc: d9801717 ldw r6,92(sp) + 5a00: 00800084 movi r2,2 + 5a04: 11bde60e bge r2,r6,51a0 <_dtoa_r+0x908> + 5a08: 203cfb1e bne r4,zero,4df8 <_dtoa_r+0x560> + 5a0c: d9001617 ldw r4,88(sp) + 5a10: 900b883a mov r5,r18 + 5a14: 01800144 movi r6,5 + 5a18: 000f883a mov r7,zero + 5a1c: 00074b80 call 74b8 <__multadd> + 5a20: d9000717 ldw r4,28(sp) + 5a24: 100b883a mov r5,r2 + 5a28: 1025883a mov r18,r2 + 5a2c: 00068f40 call 68f4 <__mcmp> + 5a30: 00bcf10e bge zero,r2,4df8 <_dtoa_r+0x560> + 5a34: d8c00d17 ldw r3,52(sp) + 5a38: d9000517 ldw r4,20(sp) + 5a3c: d8000615 stw zero,24(sp) + 5a40: 18c00044 addi r3,r3,1 + 5a44: d8c00d15 stw r3,52(sp) + 5a48: 00800c44 movi r2,49 + 5a4c: 27000044 addi fp,r4,1 + 5a50: 20800005 stb r2,0(r4) + 5a54: 003e8906 br 547c <_dtoa_r+0xbe4> + 5a58: d8c00517 ldw r3,20(sp) + 5a5c: 003bc206 br 4968 <_dtoa_r+0xd0> + 5a60: 01800074 movhi r6,1 + 5a64: 31b8d604 addi r6,r6,-7336 + 5a68: 30c00917 ldw r3,36(r6) + 5a6c: 30800817 ldw r2,32(r6) + 5a70: d9001217 ldw r4,72(sp) + 5a74: d9401317 ldw r5,76(sp) + 5a78: 180f883a mov r7,r3 + 5a7c: 100d883a mov r6,r2 + 5a80: 00096180 call 9618 <__divdf3> + 5a84: 948003cc andi r18,r18,15 + 5a88: 058000c4 movi r22,3 + 5a8c: 1029883a mov r20,r2 + 5a90: 182b883a mov r21,r3 + 5a94: 003c8906 br 4cbc <_dtoa_r+0x424> + 5a98: d9001017 ldw r4,64(sp) + 5a9c: d9800917 ldw r6,36(sp) + 5aa0: 0025883a mov r18,zero + 5aa4: 1105c83a sub r2,r2,r4 + 5aa8: 2089883a add r4,r4,r2 + 5aac: 308d883a add r6,r6,r2 + 5ab0: d9001015 stw r4,64(sp) + 5ab4: d9800915 stw r6,36(sp) + 5ab8: 003e3206 br 5384 <_dtoa_r+0xaec> + 5abc: 28800044 addi r2,r5,1 + 5ac0: 27000044 addi fp,r4,1 + 5ac4: 20800005 stb r2,0(r4) + 5ac8: 003e6c06 br 547c <_dtoa_r+0xbe4> + 5acc: d8800f17 ldw r2,60(sp) + 5ad0: 00bce016 blt zero,r2,4e54 <_dtoa_r+0x5bc> + 5ad4: d9800f17 ldw r6,60(sp) + 5ad8: 303cc51e bne r6,zero,4df0 <_dtoa_r+0x558> + 5adc: 0005883a mov r2,zero + 5ae0: 00d00534 movhi r3,16404 + 5ae4: 980b883a mov r5,r19 + 5ae8: 180f883a mov r7,r3 + 5aec: 9009883a mov r4,r18 + 5af0: 100d883a mov r6,r2 + 5af4: 00092540 call 9254 <__muldf3> + 5af8: 180b883a mov r5,r3 + 5afc: a80f883a mov r7,r21 + 5b00: 1009883a mov r4,r2 + 5b04: a00d883a mov r6,r20 + 5b08: 0009a080 call 9a08 <__gedf2> + 5b0c: 103cb80e bge r2,zero,4df0 <_dtoa_r+0x558> + 5b10: 0027883a mov r19,zero + 5b14: 0025883a mov r18,zero + 5b18: 003fc606 br 5a34 <_dtoa_r+0x119c> + 5b1c: 99400117 ldw r5,4(r19) + 5b20: d9001617 ldw r4,88(sp) + 5b24: 0006d180 call 6d18 <_Balloc> + 5b28: 99800417 ldw r6,16(r19) + 5b2c: 11000304 addi r4,r2,12 + 5b30: 99400304 addi r5,r19,12 + 5b34: 318d883a add r6,r6,r6 + 5b38: 318d883a add r6,r6,r6 + 5b3c: 31800204 addi r6,r6,8 + 5b40: 1023883a mov r17,r2 + 5b44: 00066180 call 6618 + 5b48: d9001617 ldw r4,88(sp) + 5b4c: 880b883a mov r5,r17 + 5b50: 01800044 movi r6,1 + 5b54: 00070dc0 call 70dc <__lshift> + 5b58: 100b883a mov r5,r2 + 5b5c: 003d9c06 br 51d0 <_dtoa_r+0x938> + 5b60: 00800e44 movi r2,57 + 5b64: b8807026 beq r23,r2,5d28 <_dtoa_r+0x1490> + 5b68: b8800044 addi r2,r23,1 + 5b6c: b7000044 addi fp,r22,1 + 5b70: b0800005 stb r2,0(r22) + 5b74: 003e4106 br 547c <_dtoa_r+0xbe4> + 5b78: d8800317 ldw r2,12(sp) + 5b7c: 01800074 movhi r6,1 + 5b80: 31b8a404 addi r6,r6,-7536 + 5b84: b009883a mov r4,r22 + 5b88: 100e90fa slli r7,r2,3 + 5b8c: b80b883a mov r5,r23 + 5b90: 398f883a add r7,r7,r6 + 5b94: 38bffe17 ldw r2,-8(r7) + 5b98: d9800517 ldw r6,20(sp) + 5b9c: 38ffff17 ldw r3,-4(r7) + 5ba0: 37000044 addi fp,r6,1 + 5ba4: 180f883a mov r7,r3 + 5ba8: 100d883a mov r6,r2 + 5bac: 00092540 call 9254 <__muldf3> + 5bb0: a80b883a mov r5,r21 + 5bb4: a009883a mov r4,r20 + 5bb8: 182f883a mov r23,r3 + 5bbc: 102d883a mov r22,r2 + 5bc0: 0009c100 call 9c10 <__fixdfsi> + 5bc4: 1009883a mov r4,r2 + 5bc8: 1027883a mov r19,r2 + 5bcc: 0009b180 call 9b18 <__floatsidf> + 5bd0: a80b883a mov r5,r21 + 5bd4: a009883a mov r4,r20 + 5bd8: 180f883a mov r7,r3 + 5bdc: 100d883a mov r6,r2 + 5be0: 00091600 call 9160 <__subdf3> + 5be4: 180b883a mov r5,r3 + 5be8: d8c00517 ldw r3,20(sp) + 5bec: 9cc00c04 addi r19,r19,48 + 5bf0: 1009883a mov r4,r2 + 5bf4: 1cc00005 stb r19,0(r3) + 5bf8: 2021883a mov r16,r4 + 5bfc: d9000317 ldw r4,12(sp) + 5c00: 00800044 movi r2,1 + 5c04: 2823883a mov r17,r5 + 5c08: 20802226 beq r4,r2,5c94 <_dtoa_r+0x13fc> + 5c0c: 1029883a mov r20,r2 + 5c10: 0005883a mov r2,zero + 5c14: 00d00934 movhi r3,16420 + 5c18: 180f883a mov r7,r3 + 5c1c: 100d883a mov r6,r2 + 5c20: 880b883a mov r5,r17 + 5c24: 8009883a mov r4,r16 + 5c28: 00092540 call 9254 <__muldf3> + 5c2c: 180b883a mov r5,r3 + 5c30: 1009883a mov r4,r2 + 5c34: 1823883a mov r17,r3 + 5c38: 1021883a mov r16,r2 + 5c3c: 0009c100 call 9c10 <__fixdfsi> + 5c40: 1009883a mov r4,r2 + 5c44: 102b883a mov r21,r2 + 5c48: 0009b180 call 9b18 <__floatsidf> + 5c4c: 880b883a mov r5,r17 + 5c50: 8009883a mov r4,r16 + 5c54: 180f883a mov r7,r3 + 5c58: 100d883a mov r6,r2 + 5c5c: 00091600 call 9160 <__subdf3> + 5c60: 180b883a mov r5,r3 + 5c64: d8c00517 ldw r3,20(sp) + 5c68: 1009883a mov r4,r2 + 5c6c: ad400c04 addi r21,r21,48 + 5c70: 1d05883a add r2,r3,r20 + 5c74: 15400005 stb r21,0(r2) + 5c78: 2021883a mov r16,r4 + 5c7c: d9000317 ldw r4,12(sp) + 5c80: a5000044 addi r20,r20,1 + 5c84: 2823883a mov r17,r5 + 5c88: a13fe11e bne r20,r4,5c10 <_dtoa_r+0x1378> + 5c8c: e505883a add r2,fp,r20 + 5c90: 173fffc4 addi fp,r2,-1 + 5c94: 0025883a mov r18,zero + 5c98: 04cff834 movhi r19,16352 + 5c9c: b009883a mov r4,r22 + 5ca0: b80b883a mov r5,r23 + 5ca4: 900d883a mov r6,r18 + 5ca8: 980f883a mov r7,r19 + 5cac: 00091e00 call 91e0 <__adddf3> + 5cb0: 180b883a mov r5,r3 + 5cb4: 1009883a mov r4,r2 + 5cb8: 800d883a mov r6,r16 + 5cbc: 880f883a mov r7,r17 + 5cc0: 0009a900 call 9a90 <__ltdf2> + 5cc4: 103cab16 blt r2,zero,4f74 <_dtoa_r+0x6dc> + 5cc8: 0009883a mov r4,zero + 5ccc: 980b883a mov r5,r19 + 5cd0: b80f883a mov r7,r23 + 5cd4: b00d883a mov r6,r22 + 5cd8: 00091600 call 9160 <__subdf3> + 5cdc: 180b883a mov r5,r3 + 5ce0: 880f883a mov r7,r17 + 5ce4: 1009883a mov r4,r2 + 5ce8: 800d883a mov r6,r16 + 5cec: 00099800 call 9980 <__gtdf2> + 5cf0: 00bc470e bge zero,r2,4e10 <_dtoa_r+0x578> + 5cf4: 00c00c04 movi r3,48 + 5cf8: e73fffc4 addi fp,fp,-1 + 5cfc: e0800007 ldb r2,0(fp) + 5d00: 10fffd26 beq r2,r3,5cf8 <_dtoa_r+0x1460> + 5d04: d9800417 ldw r6,16(sp) + 5d08: e7000044 addi fp,fp,1 + 5d0c: d9800d15 stw r6,52(sp) + 5d10: 003cab06 br 4fc0 <_dtoa_r+0x728> + 5d14: d8c00f17 ldw r3,60(sp) + 5d18: d9001117 ldw r4,68(sp) + 5d1c: 20e1c83a sub r16,r4,r3 + 5d20: 0007883a mov r3,zero + 5d24: 003d9b06 br 5394 <_dtoa_r+0xafc> + 5d28: 00800e44 movi r2,57 + 5d2c: b0800005 stb r2,0(r22) + 5d30: b5800044 addi r22,r22,1 + 5d34: 003dc106 br 543c <_dtoa_r+0xba4> + 5d38: 05800084 movi r22,2 + 5d3c: 003bf706 br 4d1c <_dtoa_r+0x484> + 5d40: d9000f17 ldw r4,60(sp) + 5d44: 013c000e bge zero,r4,4d48 <_dtoa_r+0x4b0> + 5d48: d9800e17 ldw r6,56(sp) + 5d4c: 01bc300e bge zero,r6,4e10 <_dtoa_r+0x578> + 5d50: 0005883a mov r2,zero + 5d54: 00d00934 movhi r3,16420 + 5d58: a80b883a mov r5,r21 + 5d5c: 180f883a mov r7,r3 + 5d60: a009883a mov r4,r20 + 5d64: 100d883a mov r6,r2 + 5d68: 00092540 call 9254 <__muldf3> + 5d6c: b1000044 addi r4,r22,1 + 5d70: 1021883a mov r16,r2 + 5d74: 1823883a mov r17,r3 + 5d78: 0009b180 call 9b18 <__floatsidf> + 5d7c: 880b883a mov r5,r17 + 5d80: 8009883a mov r4,r16 + 5d84: 180f883a mov r7,r3 + 5d88: 100d883a mov r6,r2 + 5d8c: 00092540 call 9254 <__muldf3> + 5d90: 0011883a mov r8,zero + 5d94: 02500734 movhi r9,16412 + 5d98: 180b883a mov r5,r3 + 5d9c: 480f883a mov r7,r9 + 5da0: 1009883a mov r4,r2 + 5da4: 400d883a mov r6,r8 + 5da8: 00091e00 call 91e0 <__adddf3> + 5dac: 102d883a mov r22,r2 + 5db0: 00bf3034 movhi r2,64704 + 5db4: 10ef883a add r23,r2,r3 + 5db8: d8800d17 ldw r2,52(sp) + 5dbc: d8c00e17 ldw r3,56(sp) + 5dc0: 8029883a mov r20,r16 + 5dc4: 10bfffc4 addi r2,r2,-1 + 5dc8: 882b883a mov r21,r17 + 5dcc: d8800415 stw r2,16(sp) + 5dd0: d8c00315 stw r3,12(sp) + 5dd4: 003e8306 br 57e4 <_dtoa_r+0xf4c> + 5dd8: d8800117 ldw r2,4(sp) + 5ddc: dc001117 ldw r16,68(sp) + 5de0: dc801017 ldw r18,64(sp) + 5de4: 00c00d84 movi r3,54 + 5de8: 1887c83a sub r3,r3,r2 + 5dec: 003d6906 br 5394 <_dtoa_r+0xafc> + 5df0: 01800044 movi r6,1 + 5df4: 3021883a mov r16,r6 + 5df8: d9800f15 stw r6,60(sp) + 5dfc: d9802615 stw r6,152(sp) + 5e00: d9800e15 stw r6,56(sp) + 5e04: 003b9306 br 4c54 <_dtoa_r+0x3bc> + 5e08: b021883a mov r16,r22 + 5e0c: dd800f15 stw r22,60(sp) + 5e10: 003b9006 br 4c54 <_dtoa_r+0x3bc> + 5e14: 103e221e bne r2,zero,56a0 <_dtoa_r+0xe08> + 5e18: b880004c andi r2,r23,1 + 5e1c: 1005003a cmpeq r2,r2,zero + 5e20: 103e1f1e bne r2,zero,56a0 <_dtoa_r+0xe08> + 5e24: 003e1b06 br 5694 <_dtoa_r+0xdfc> + 5e28: d9001617 ldw r4,88(sp) + 5e2c: 980b883a mov r5,r19 + 5e30: 01800284 movi r6,10 + 5e34: 000f883a mov r7,zero + 5e38: 00074b80 call 74b8 <__multadd> + 5e3c: d8c00e17 ldw r3,56(sp) + 5e40: 1027883a mov r19,r2 + 5e44: d8c00f15 stw r3,60(sp) + 5e48: 003cd306 br 5198 <_dtoa_r+0x900> + +00005e4c <__sflags>: + 5e4c: 28c00007 ldb r3,0(r5) + 5e50: 00801c84 movi r2,114 + 5e54: 18800926 beq r3,r2,5e7c <__sflags+0x30> + 5e58: 00801dc4 movi r2,119 + 5e5c: 18801426 beq r3,r2,5eb0 <__sflags+0x64> + 5e60: 00801844 movi r2,97 + 5e64: 18801626 beq r3,r2,5ec0 <__sflags+0x74> + 5e68: 0007883a mov r3,zero + 5e6c: 00800584 movi r2,22 + 5e70: 20800015 stw r2,0(r4) + 5e74: 1805883a mov r2,r3 + 5e78: f800283a ret + 5e7c: 000f883a mov r7,zero + 5e80: 0011883a mov r8,zero + 5e84: 00c00104 movi r3,4 + 5e88: 28800047 ldb r2,1(r5) + 5e8c: 10000426 beq r2,zero,5ea0 <__sflags+0x54> + 5e90: 01000ac4 movi r4,43 + 5e94: 11000e26 beq r2,r4,5ed0 <__sflags+0x84> + 5e98: 28800087 ldb r2,2(r5) + 5e9c: 11000c26 beq r2,r4,5ed0 <__sflags+0x84> + 5ea0: 3a04b03a or r2,r7,r8 + 5ea4: 30800015 stw r2,0(r6) + 5ea8: 1805883a mov r2,r3 + 5eac: f800283a ret + 5eb0: 01c00044 movi r7,1 + 5eb4: 02018004 movi r8,1536 + 5eb8: 00c00204 movi r3,8 + 5ebc: 003ff206 br 5e88 <__sflags+0x3c> + 5ec0: 01c00044 movi r7,1 + 5ec4: 02008204 movi r8,520 + 5ec8: 00c04204 movi r3,264 + 5ecc: 003fee06 br 5e88 <__sflags+0x3c> + 5ed0: 00bffcc4 movi r2,-13 + 5ed4: 1884703a and r2,r3,r2 + 5ed8: 01c00084 movi r7,2 + 5edc: 10c00414 ori r3,r2,16 + 5ee0: 3a04b03a or r2,r7,r8 + 5ee4: 30800015 stw r2,0(r6) + 5ee8: 003fef06 br 5ea8 <__sflags+0x5c> + +00005eec <__sfvwrite_r>: + 5eec: 30800217 ldw r2,8(r6) + 5ef0: defff504 addi sp,sp,-44 + 5ef4: df000915 stw fp,36(sp) + 5ef8: dd800715 stw r22,28(sp) + 5efc: dc800315 stw r18,12(sp) + 5f00: dfc00a15 stw ra,40(sp) + 5f04: ddc00815 stw r23,32(sp) + 5f08: dd400615 stw r21,24(sp) + 5f0c: dd000515 stw r20,20(sp) + 5f10: dcc00415 stw r19,16(sp) + 5f14: dc400215 stw r17,8(sp) + 5f18: dc000115 stw r16,4(sp) + 5f1c: 302d883a mov r22,r6 + 5f20: 2039883a mov fp,r4 + 5f24: 2825883a mov r18,r5 + 5f28: 10001c26 beq r2,zero,5f9c <__sfvwrite_r+0xb0> + 5f2c: 29c0030b ldhu r7,12(r5) + 5f30: 3880020c andi r2,r7,8 + 5f34: 10002726 beq r2,zero,5fd4 <__sfvwrite_r+0xe8> + 5f38: 28800417 ldw r2,16(r5) + 5f3c: 10002526 beq r2,zero,5fd4 <__sfvwrite_r+0xe8> + 5f40: 3880008c andi r2,r7,2 + 5f44: b5400017 ldw r21,0(r22) + 5f48: 10002826 beq r2,zero,5fec <__sfvwrite_r+0x100> + 5f4c: 0021883a mov r16,zero + 5f50: 0023883a mov r17,zero + 5f54: 880d883a mov r6,r17 + 5f58: e009883a mov r4,fp + 5f5c: 00810004 movi r2,1024 + 5f60: 80006e26 beq r16,zero,611c <__sfvwrite_r+0x230> + 5f64: 800f883a mov r7,r16 + 5f68: 91400717 ldw r5,28(r18) + 5f6c: 1400012e bgeu r2,r16,5f74 <__sfvwrite_r+0x88> + 5f70: 100f883a mov r7,r2 + 5f74: 90c00917 ldw r3,36(r18) + 5f78: 183ee83a callr r3 + 5f7c: 1007883a mov r3,r2 + 5f80: 80a1c83a sub r16,r16,r2 + 5f84: 88a3883a add r17,r17,r2 + 5f88: 00806d0e bge zero,r2,6140 <__sfvwrite_r+0x254> + 5f8c: b0800217 ldw r2,8(r22) + 5f90: 10c5c83a sub r2,r2,r3 + 5f94: b0800215 stw r2,8(r22) + 5f98: 103fee1e bne r2,zero,5f54 <__sfvwrite_r+0x68> + 5f9c: 0009883a mov r4,zero + 5fa0: 2005883a mov r2,r4 + 5fa4: dfc00a17 ldw ra,40(sp) + 5fa8: df000917 ldw fp,36(sp) + 5fac: ddc00817 ldw r23,32(sp) + 5fb0: dd800717 ldw r22,28(sp) + 5fb4: dd400617 ldw r21,24(sp) + 5fb8: dd000517 ldw r20,20(sp) + 5fbc: dcc00417 ldw r19,16(sp) + 5fc0: dc800317 ldw r18,12(sp) + 5fc4: dc400217 ldw r17,8(sp) + 5fc8: dc000117 ldw r16,4(sp) + 5fcc: dec00b04 addi sp,sp,44 + 5fd0: f800283a ret + 5fd4: 00044a80 call 44a8 <__swsetup_r> + 5fd8: 1000e41e bne r2,zero,636c <__sfvwrite_r+0x480> + 5fdc: 91c0030b ldhu r7,12(r18) + 5fe0: b5400017 ldw r21,0(r22) + 5fe4: 3880008c andi r2,r7,2 + 5fe8: 103fd81e bne r2,zero,5f4c <__sfvwrite_r+0x60> + 5fec: 3880004c andi r2,r7,1 + 5ff0: 1005003a cmpeq r2,r2,zero + 5ff4: 10005726 beq r2,zero,6154 <__sfvwrite_r+0x268> + 5ff8: 0029883a mov r20,zero + 5ffc: 002f883a mov r23,zero + 6000: a0004226 beq r20,zero,610c <__sfvwrite_r+0x220> + 6004: 3880800c andi r2,r7,512 + 6008: 94000217 ldw r16,8(r18) + 600c: 10008b26 beq r2,zero,623c <__sfvwrite_r+0x350> + 6010: 800d883a mov r6,r16 + 6014: a400a536 bltu r20,r16,62ac <__sfvwrite_r+0x3c0> + 6018: 3881200c andi r2,r7,1152 + 601c: 10002726 beq r2,zero,60bc <__sfvwrite_r+0x1d0> + 6020: 90800517 ldw r2,20(r18) + 6024: 92000417 ldw r8,16(r18) + 6028: 91400017 ldw r5,0(r18) + 602c: 1087883a add r3,r2,r2 + 6030: 1887883a add r3,r3,r2 + 6034: 1808d7fa srli r4,r3,31 + 6038: 2a21c83a sub r16,r5,r8 + 603c: 80800044 addi r2,r16,1 + 6040: 20c9883a add r4,r4,r3 + 6044: 2027d07a srai r19,r4,1 + 6048: a085883a add r2,r20,r2 + 604c: 980d883a mov r6,r19 + 6050: 9880022e bgeu r19,r2,605c <__sfvwrite_r+0x170> + 6054: 1027883a mov r19,r2 + 6058: 100d883a mov r6,r2 + 605c: 3881000c andi r2,r7,1024 + 6060: 1000b826 beq r2,zero,6344 <__sfvwrite_r+0x458> + 6064: 300b883a mov r5,r6 + 6068: e009883a mov r4,fp + 606c: 00017640 call 1764 <_malloc_r> + 6070: 10003126 beq r2,zero,6138 <__sfvwrite_r+0x24c> + 6074: 91400417 ldw r5,16(r18) + 6078: 1009883a mov r4,r2 + 607c: 800d883a mov r6,r16 + 6080: 1023883a mov r17,r2 + 6084: 00066180 call 6618 + 6088: 90c0030b ldhu r3,12(r18) + 608c: 00beffc4 movi r2,-1025 + 6090: 1886703a and r3,r3,r2 + 6094: 18c02014 ori r3,r3,128 + 6098: 90c0030d sth r3,12(r18) + 609c: 9c07c83a sub r3,r19,r16 + 60a0: 8c05883a add r2,r17,r16 + 60a4: a00d883a mov r6,r20 + 60a8: a021883a mov r16,r20 + 60ac: 90800015 stw r2,0(r18) + 60b0: 90c00215 stw r3,8(r18) + 60b4: 94400415 stw r17,16(r18) + 60b8: 94c00515 stw r19,20(r18) + 60bc: 91000017 ldw r4,0(r18) + 60c0: b80b883a mov r5,r23 + 60c4: a023883a mov r17,r20 + 60c8: 00066b80 call 66b8 + 60cc: 90c00217 ldw r3,8(r18) + 60d0: 90800017 ldw r2,0(r18) + 60d4: a027883a mov r19,r20 + 60d8: 1c07c83a sub r3,r3,r16 + 60dc: 1405883a add r2,r2,r16 + 60e0: 90c00215 stw r3,8(r18) + 60e4: a021883a mov r16,r20 + 60e8: 90800015 stw r2,0(r18) + 60ec: b0800217 ldw r2,8(r22) + 60f0: 1405c83a sub r2,r2,r16 + 60f4: b0800215 stw r2,8(r22) + 60f8: 103fa826 beq r2,zero,5f9c <__sfvwrite_r+0xb0> + 60fc: a469c83a sub r20,r20,r17 + 6100: 91c0030b ldhu r7,12(r18) + 6104: bcef883a add r23,r23,r19 + 6108: a03fbe1e bne r20,zero,6004 <__sfvwrite_r+0x118> + 610c: adc00017 ldw r23,0(r21) + 6110: ad000117 ldw r20,4(r21) + 6114: ad400204 addi r21,r21,8 + 6118: 003fb906 br 6000 <__sfvwrite_r+0x114> + 611c: ac400017 ldw r17,0(r21) + 6120: ac000117 ldw r16,4(r21) + 6124: ad400204 addi r21,r21,8 + 6128: 003f8a06 br 5f54 <__sfvwrite_r+0x68> + 612c: 91400417 ldw r5,16(r18) + 6130: e009883a mov r4,fp + 6134: 0000b7c0 call b7c <_free_r> + 6138: 00800304 movi r2,12 + 613c: e0800015 stw r2,0(fp) + 6140: 9080030b ldhu r2,12(r18) + 6144: 013fffc4 movi r4,-1 + 6148: 10801014 ori r2,r2,64 + 614c: 9080030d sth r2,12(r18) + 6150: 003f9306 br 5fa0 <__sfvwrite_r+0xb4> + 6154: 0027883a mov r19,zero + 6158: 002f883a mov r23,zero + 615c: d8000015 stw zero,0(sp) + 6160: 0029883a mov r20,zero + 6164: 98001e26 beq r19,zero,61e0 <__sfvwrite_r+0x2f4> + 6168: d8c00017 ldw r3,0(sp) + 616c: 1804c03a cmpne r2,r3,zero + 6170: 10005e26 beq r2,zero,62ec <__sfvwrite_r+0x400> + 6174: 9821883a mov r16,r19 + 6178: a4c0012e bgeu r20,r19,6180 <__sfvwrite_r+0x294> + 617c: a021883a mov r16,r20 + 6180: 91000017 ldw r4,0(r18) + 6184: 90800417 ldw r2,16(r18) + 6188: 91800217 ldw r6,8(r18) + 618c: 91c00517 ldw r7,20(r18) + 6190: 1100022e bgeu r2,r4,619c <__sfvwrite_r+0x2b0> + 6194: 31e3883a add r17,r6,r7 + 6198: 8c001616 blt r17,r16,61f4 <__sfvwrite_r+0x308> + 619c: 81c03816 blt r16,r7,6280 <__sfvwrite_r+0x394> + 61a0: 90c00917 ldw r3,36(r18) + 61a4: 91400717 ldw r5,28(r18) + 61a8: e009883a mov r4,fp + 61ac: b80d883a mov r6,r23 + 61b0: 183ee83a callr r3 + 61b4: 1023883a mov r17,r2 + 61b8: 00bfe10e bge zero,r2,6140 <__sfvwrite_r+0x254> + 61bc: a469c83a sub r20,r20,r17 + 61c0: a0001826 beq r20,zero,6224 <__sfvwrite_r+0x338> + 61c4: b0800217 ldw r2,8(r22) + 61c8: 1445c83a sub r2,r2,r17 + 61cc: b0800215 stw r2,8(r22) + 61d0: 103f7226 beq r2,zero,5f9c <__sfvwrite_r+0xb0> + 61d4: 9c67c83a sub r19,r19,r17 + 61d8: bc6f883a add r23,r23,r17 + 61dc: 983fe21e bne r19,zero,6168 <__sfvwrite_r+0x27c> + 61e0: adc00017 ldw r23,0(r21) + 61e4: acc00117 ldw r19,4(r21) + 61e8: ad400204 addi r21,r21,8 + 61ec: d8000015 stw zero,0(sp) + 61f0: 003fdc06 br 6164 <__sfvwrite_r+0x278> + 61f4: b80b883a mov r5,r23 + 61f8: 880d883a mov r6,r17 + 61fc: 00066b80 call 66b8 + 6200: 90c00017 ldw r3,0(r18) + 6204: e009883a mov r4,fp + 6208: 900b883a mov r5,r18 + 620c: 1c47883a add r3,r3,r17 + 6210: 90c00015 stw r3,0(r18) + 6214: 000041c0 call 41c <_fflush_r> + 6218: 103fc91e bne r2,zero,6140 <__sfvwrite_r+0x254> + 621c: a469c83a sub r20,r20,r17 + 6220: a03fe81e bne r20,zero,61c4 <__sfvwrite_r+0x2d8> + 6224: e009883a mov r4,fp + 6228: 900b883a mov r5,r18 + 622c: 000041c0 call 41c <_fflush_r> + 6230: 103fc31e bne r2,zero,6140 <__sfvwrite_r+0x254> + 6234: d8000015 stw zero,0(sp) + 6238: 003fe206 br 61c4 <__sfvwrite_r+0x2d8> + 623c: 91000017 ldw r4,0(r18) + 6240: 90800417 ldw r2,16(r18) + 6244: 1100022e bgeu r2,r4,6250 <__sfvwrite_r+0x364> + 6248: 8023883a mov r17,r16 + 624c: 85003136 bltu r16,r20,6314 <__sfvwrite_r+0x428> + 6250: 91c00517 ldw r7,20(r18) + 6254: a1c01836 bltu r20,r7,62b8 <__sfvwrite_r+0x3cc> + 6258: 90c00917 ldw r3,36(r18) + 625c: 91400717 ldw r5,28(r18) + 6260: e009883a mov r4,fp + 6264: b80d883a mov r6,r23 + 6268: 183ee83a callr r3 + 626c: 1021883a mov r16,r2 + 6270: 00bfb30e bge zero,r2,6140 <__sfvwrite_r+0x254> + 6274: 1023883a mov r17,r2 + 6278: 1027883a mov r19,r2 + 627c: 003f9b06 br 60ec <__sfvwrite_r+0x200> + 6280: b80b883a mov r5,r23 + 6284: 800d883a mov r6,r16 + 6288: 00066b80 call 66b8 + 628c: 90c00217 ldw r3,8(r18) + 6290: 90800017 ldw r2,0(r18) + 6294: 8023883a mov r17,r16 + 6298: 1c07c83a sub r3,r3,r16 + 629c: 1405883a add r2,r2,r16 + 62a0: 90c00215 stw r3,8(r18) + 62a4: 90800015 stw r2,0(r18) + 62a8: 003fc406 br 61bc <__sfvwrite_r+0x2d0> + 62ac: a00d883a mov r6,r20 + 62b0: a021883a mov r16,r20 + 62b4: 003f8106 br 60bc <__sfvwrite_r+0x1d0> + 62b8: b80b883a mov r5,r23 + 62bc: a00d883a mov r6,r20 + 62c0: 00066b80 call 66b8 + 62c4: 90c00217 ldw r3,8(r18) + 62c8: 90800017 ldw r2,0(r18) + 62cc: a021883a mov r16,r20 + 62d0: 1d07c83a sub r3,r3,r20 + 62d4: 1505883a add r2,r2,r20 + 62d8: a023883a mov r17,r20 + 62dc: a027883a mov r19,r20 + 62e0: 90c00215 stw r3,8(r18) + 62e4: 90800015 stw r2,0(r18) + 62e8: 003f8006 br 60ec <__sfvwrite_r+0x200> + 62ec: b809883a mov r4,r23 + 62f0: 01400284 movi r5,10 + 62f4: 980d883a mov r6,r19 + 62f8: 00065340 call 6534 + 62fc: 10001726 beq r2,zero,635c <__sfvwrite_r+0x470> + 6300: 15c5c83a sub r2,r2,r23 + 6304: 15000044 addi r20,r2,1 + 6308: 00800044 movi r2,1 + 630c: d8800015 stw r2,0(sp) + 6310: 003f9806 br 6174 <__sfvwrite_r+0x288> + 6314: b80b883a mov r5,r23 + 6318: 800d883a mov r6,r16 + 631c: 00066b80 call 66b8 + 6320: 90c00017 ldw r3,0(r18) + 6324: e009883a mov r4,fp + 6328: 900b883a mov r5,r18 + 632c: 1c07883a add r3,r3,r16 + 6330: 90c00015 stw r3,0(r18) + 6334: 8027883a mov r19,r16 + 6338: 000041c0 call 41c <_fflush_r> + 633c: 103f6b26 beq r2,zero,60ec <__sfvwrite_r+0x200> + 6340: 003f7f06 br 6140 <__sfvwrite_r+0x254> + 6344: 400b883a mov r5,r8 + 6348: e009883a mov r4,fp + 634c: 000789c0 call 789c <_realloc_r> + 6350: 103f7626 beq r2,zero,612c <__sfvwrite_r+0x240> + 6354: 1023883a mov r17,r2 + 6358: 003f5006 br 609c <__sfvwrite_r+0x1b0> + 635c: 00c00044 movi r3,1 + 6360: 9d000044 addi r20,r19,1 + 6364: d8c00015 stw r3,0(sp) + 6368: 003f8206 br 6174 <__sfvwrite_r+0x288> + 636c: 9080030b ldhu r2,12(r18) + 6370: 00c00244 movi r3,9 + 6374: 013fffc4 movi r4,-1 + 6378: 10801014 ori r2,r2,64 + 637c: 9080030d sth r2,12(r18) + 6380: e0c00015 stw r3,0(fp) + 6384: 003f0606 br 5fa0 <__sfvwrite_r+0xb4> + +00006388 <_isatty_r>: + 6388: defffd04 addi sp,sp,-12 + 638c: dc000015 stw r16,0(sp) + 6390: 04000074 movhi r16,1 + 6394: 8407a504 addi r16,r16,7828 + 6398: dc400115 stw r17,4(sp) + 639c: 80000015 stw zero,0(r16) + 63a0: 2023883a mov r17,r4 + 63a4: 2809883a mov r4,r5 + 63a8: dfc00215 stw ra,8(sp) + 63ac: 000a97c0 call a97c + 63b0: 1007883a mov r3,r2 + 63b4: 00bfffc4 movi r2,-1 + 63b8: 18800626 beq r3,r2,63d4 <_isatty_r+0x4c> + 63bc: 1805883a mov r2,r3 + 63c0: dfc00217 ldw ra,8(sp) + 63c4: dc400117 ldw r17,4(sp) + 63c8: dc000017 ldw r16,0(sp) + 63cc: dec00304 addi sp,sp,12 + 63d0: f800283a ret + 63d4: 80800017 ldw r2,0(r16) + 63d8: 103ff826 beq r2,zero,63bc <_isatty_r+0x34> + 63dc: 88800015 stw r2,0(r17) + 63e0: 1805883a mov r2,r3 + 63e4: dfc00217 ldw ra,8(sp) + 63e8: dc400117 ldw r17,4(sp) + 63ec: dc000017 ldw r16,0(sp) + 63f0: dec00304 addi sp,sp,12 + 63f4: f800283a ret + +000063f8 <__locale_charset>: + 63f8: d0a00517 ldw r2,-32748(gp) + 63fc: f800283a ret + +00006400 <_localeconv_r>: + 6400: 00800074 movhi r2,1 + 6404: 10b89804 addi r2,r2,-7584 + 6408: f800283a ret + +0000640c : + 640c: 00800074 movhi r2,1 + 6410: 1080b204 addi r2,r2,712 + 6414: 11000017 ldw r4,0(r2) + 6418: 00064001 jmpi 6400 <_localeconv_r> + +0000641c <_setlocale_r>: + 641c: defffc04 addi sp,sp,-16 + 6420: 00c00074 movhi r3,1 + 6424: 18f86e04 addi r3,r3,-7752 + 6428: dc800215 stw r18,8(sp) + 642c: dc400115 stw r17,4(sp) + 6430: dc000015 stw r16,0(sp) + 6434: 2023883a mov r17,r4 + 6438: 2825883a mov r18,r5 + 643c: dfc00315 stw ra,12(sp) + 6440: 3021883a mov r16,r6 + 6444: 3009883a mov r4,r6 + 6448: 180b883a mov r5,r3 + 644c: 30000926 beq r6,zero,6474 <_setlocale_r+0x58> + 6450: 0007f000 call 7f00 + 6454: 8009883a mov r4,r16 + 6458: 01400074 movhi r5,1 + 645c: 29787f04 addi r5,r5,-7684 + 6460: 10000b1e bne r2,zero,6490 <_setlocale_r+0x74> + 6464: 8c000d15 stw r16,52(r17) + 6468: 8c800c15 stw r18,48(r17) + 646c: 00c00074 movhi r3,1 + 6470: 18f86e04 addi r3,r3,-7752 + 6474: 1805883a mov r2,r3 + 6478: dfc00317 ldw ra,12(sp) + 647c: dc800217 ldw r18,8(sp) + 6480: dc400117 ldw r17,4(sp) + 6484: dc000017 ldw r16,0(sp) + 6488: dec00404 addi sp,sp,16 + 648c: f800283a ret + 6490: 0007f000 call 7f00 + 6494: 0007883a mov r3,zero + 6498: 103ff226 beq r2,zero,6464 <_setlocale_r+0x48> + 649c: 003ff506 br 6474 <_setlocale_r+0x58> + +000064a0 : + 64a0: 01800074 movhi r6,1 + 64a4: 3180b204 addi r6,r6,712 + 64a8: 2007883a mov r3,r4 + 64ac: 31000017 ldw r4,0(r6) + 64b0: 280d883a mov r6,r5 + 64b4: 180b883a mov r5,r3 + 64b8: 000641c1 jmpi 641c <_setlocale_r> + +000064bc <_lseek_r>: + 64bc: defffd04 addi sp,sp,-12 + 64c0: dc000015 stw r16,0(sp) + 64c4: 04000074 movhi r16,1 + 64c8: 8407a504 addi r16,r16,7828 + 64cc: dc400115 stw r17,4(sp) + 64d0: 80000015 stw zero,0(r16) + 64d4: 2023883a mov r17,r4 + 64d8: 2809883a mov r4,r5 + 64dc: 300b883a mov r5,r6 + 64e0: 380d883a mov r6,r7 + 64e4: dfc00215 stw ra,8(sp) + 64e8: 000ab8c0 call ab8c + 64ec: 1007883a mov r3,r2 + 64f0: 00bfffc4 movi r2,-1 + 64f4: 18800626 beq r3,r2,6510 <_lseek_r+0x54> + 64f8: 1805883a mov r2,r3 + 64fc: dfc00217 ldw ra,8(sp) + 6500: dc400117 ldw r17,4(sp) + 6504: dc000017 ldw r16,0(sp) + 6508: dec00304 addi sp,sp,12 + 650c: f800283a ret + 6510: 80800017 ldw r2,0(r16) + 6514: 103ff826 beq r2,zero,64f8 <_lseek_r+0x3c> + 6518: 88800015 stw r2,0(r17) + 651c: 1805883a mov r2,r3 + 6520: dfc00217 ldw ra,8(sp) + 6524: dc400117 ldw r17,4(sp) + 6528: dc000017 ldw r16,0(sp) + 652c: dec00304 addi sp,sp,12 + 6530: f800283a ret + +00006534 : + 6534: 008000c4 movi r2,3 + 6538: 29403fcc andi r5,r5,255 + 653c: 2007883a mov r3,r4 + 6540: 1180022e bgeu r2,r6,654c + 6544: 2084703a and r2,r4,r2 + 6548: 10000b26 beq r2,zero,6578 + 654c: 313fffc4 addi r4,r6,-1 + 6550: 3000051e bne r6,zero,6568 + 6554: 00002c06 br 6608 + 6558: 213fffc4 addi r4,r4,-1 + 655c: 00bfffc4 movi r2,-1 + 6560: 18c00044 addi r3,r3,1 + 6564: 20802826 beq r4,r2,6608 + 6568: 18800003 ldbu r2,0(r3) + 656c: 28bffa1e bne r5,r2,6558 + 6570: 1805883a mov r2,r3 + 6574: f800283a ret + 6578: 0011883a mov r8,zero + 657c: 0007883a mov r3,zero + 6580: 01c00104 movi r7,4 + 6584: 4004923a slli r2,r8,8 + 6588: 18c00044 addi r3,r3,1 + 658c: 1151883a add r8,r2,r5 + 6590: 19fffc1e bne r3,r7,6584 + 6594: 02bfbff4 movhi r10,65279 + 6598: 52bfbfc4 addi r10,r10,-257 + 659c: 02602074 movhi r9,32897 + 65a0: 4a602004 addi r9,r9,-32640 + 65a4: 02c000c4 movi r11,3 + 65a8: 20800017 ldw r2,0(r4) + 65ac: 31bfff04 addi r6,r6,-4 + 65b0: 200f883a mov r7,r4 + 65b4: 1204f03a xor r2,r2,r8 + 65b8: 1287883a add r3,r2,r10 + 65bc: 1a46703a and r3,r3,r9 + 65c0: 0084303a nor r2,zero,r2 + 65c4: 10c4703a and r2,r2,r3 + 65c8: 10000b26 beq r2,zero,65f8 + 65cc: 20800003 ldbu r2,0(r4) + 65d0: 28800f26 beq r5,r2,6610 + 65d4: 20800043 ldbu r2,1(r4) + 65d8: 21c00044 addi r7,r4,1 + 65dc: 28800c26 beq r5,r2,6610 + 65e0: 20800083 ldbu r2,2(r4) + 65e4: 21c00084 addi r7,r4,2 + 65e8: 28800926 beq r5,r2,6610 + 65ec: 208000c3 ldbu r2,3(r4) + 65f0: 21c000c4 addi r7,r4,3 + 65f4: 28800626 beq r5,r2,6610 + 65f8: 21000104 addi r4,r4,4 + 65fc: 59bfea36 bltu r11,r6,65a8 + 6600: 2007883a mov r3,r4 + 6604: 003fd106 br 654c + 6608: 0005883a mov r2,zero + 660c: f800283a ret + 6610: 3805883a mov r2,r7 + 6614: f800283a ret + +00006618 : + 6618: 01c003c4 movi r7,15 + 661c: 2007883a mov r3,r4 + 6620: 3980032e bgeu r7,r6,6630 + 6624: 2904b03a or r2,r5,r4 + 6628: 108000cc andi r2,r2,3 + 662c: 10000926 beq r2,zero,6654 + 6630: 30000626 beq r6,zero,664c + 6634: 30cd883a add r6,r6,r3 + 6638: 28800003 ldbu r2,0(r5) + 663c: 29400044 addi r5,r5,1 + 6640: 18800005 stb r2,0(r3) + 6644: 18c00044 addi r3,r3,1 + 6648: 30fffb1e bne r6,r3,6638 + 664c: 2005883a mov r2,r4 + 6650: f800283a ret + 6654: 3811883a mov r8,r7 + 6658: 200f883a mov r7,r4 + 665c: 28c00017 ldw r3,0(r5) + 6660: 31bffc04 addi r6,r6,-16 + 6664: 38c00015 stw r3,0(r7) + 6668: 28800117 ldw r2,4(r5) + 666c: 38800115 stw r2,4(r7) + 6670: 28c00217 ldw r3,8(r5) + 6674: 38c00215 stw r3,8(r7) + 6678: 28800317 ldw r2,12(r5) + 667c: 29400404 addi r5,r5,16 + 6680: 38800315 stw r2,12(r7) + 6684: 39c00404 addi r7,r7,16 + 6688: 41bff436 bltu r8,r6,665c + 668c: 008000c4 movi r2,3 + 6690: 1180072e bgeu r2,r6,66b0 + 6694: 1007883a mov r3,r2 + 6698: 28800017 ldw r2,0(r5) + 669c: 31bfff04 addi r6,r6,-4 + 66a0: 29400104 addi r5,r5,4 + 66a4: 38800015 stw r2,0(r7) + 66a8: 39c00104 addi r7,r7,4 + 66ac: 19bffa36 bltu r3,r6,6698 + 66b0: 3807883a mov r3,r7 + 66b4: 003fde06 br 6630 + +000066b8 : + 66b8: 2807883a mov r3,r5 + 66bc: 2011883a mov r8,r4 + 66c0: 29000c2e bgeu r5,r4,66f4 + 66c4: 298f883a add r7,r5,r6 + 66c8: 21c00a2e bgeu r4,r7,66f4 + 66cc: 30000726 beq r6,zero,66ec + 66d0: 2187883a add r3,r4,r6 + 66d4: 198dc83a sub r6,r3,r6 + 66d8: 39ffffc4 addi r7,r7,-1 + 66dc: 38800003 ldbu r2,0(r7) + 66e0: 18ffffc4 addi r3,r3,-1 + 66e4: 18800005 stb r2,0(r3) + 66e8: 19bffb1e bne r3,r6,66d8 + 66ec: 2005883a mov r2,r4 + 66f0: f800283a ret + 66f4: 01c003c4 movi r7,15 + 66f8: 39800a36 bltu r7,r6,6724 + 66fc: 303ffb26 beq r6,zero,66ec + 6700: 400f883a mov r7,r8 + 6704: 320d883a add r6,r6,r8 + 6708: 28800003 ldbu r2,0(r5) + 670c: 29400044 addi r5,r5,1 + 6710: 38800005 stb r2,0(r7) + 6714: 39c00044 addi r7,r7,1 + 6718: 39bffb1e bne r7,r6,6708 + 671c: 2005883a mov r2,r4 + 6720: f800283a ret + 6724: 1904b03a or r2,r3,r4 + 6728: 108000cc andi r2,r2,3 + 672c: 103ff31e bne r2,zero,66fc + 6730: 3811883a mov r8,r7 + 6734: 180b883a mov r5,r3 + 6738: 200f883a mov r7,r4 + 673c: 28c00017 ldw r3,0(r5) + 6740: 31bffc04 addi r6,r6,-16 + 6744: 38c00015 stw r3,0(r7) + 6748: 28800117 ldw r2,4(r5) + 674c: 38800115 stw r2,4(r7) + 6750: 28c00217 ldw r3,8(r5) + 6754: 38c00215 stw r3,8(r7) + 6758: 28800317 ldw r2,12(r5) + 675c: 29400404 addi r5,r5,16 + 6760: 38800315 stw r2,12(r7) + 6764: 39c00404 addi r7,r7,16 + 6768: 41bff436 bltu r8,r6,673c + 676c: 008000c4 movi r2,3 + 6770: 1180072e bgeu r2,r6,6790 + 6774: 1007883a mov r3,r2 + 6778: 28800017 ldw r2,0(r5) + 677c: 31bfff04 addi r6,r6,-4 + 6780: 29400104 addi r5,r5,4 + 6784: 38800015 stw r2,0(r7) + 6788: 39c00104 addi r7,r7,4 + 678c: 19bffa36 bltu r3,r6,6778 + 6790: 3811883a mov r8,r7 + 6794: 003fd906 br 66fc + +00006798 <_Bfree>: + 6798: 28000826 beq r5,zero,67bc <_Bfree+0x24> + 679c: 28800117 ldw r2,4(r5) + 67a0: 21001317 ldw r4,76(r4) + 67a4: 1085883a add r2,r2,r2 + 67a8: 1085883a add r2,r2,r2 + 67ac: 1105883a add r2,r2,r4 + 67b0: 10c00017 ldw r3,0(r2) + 67b4: 28c00015 stw r3,0(r5) + 67b8: 11400015 stw r5,0(r2) + 67bc: f800283a ret + +000067c0 <__hi0bits>: + 67c0: 20bfffec andhi r2,r4,65535 + 67c4: 10001426 beq r2,zero,6818 <__hi0bits+0x58> + 67c8: 0007883a mov r3,zero + 67cc: 20bfc02c andhi r2,r4,65280 + 67d0: 1000021e bne r2,zero,67dc <__hi0bits+0x1c> + 67d4: 2008923a slli r4,r4,8 + 67d8: 18c00204 addi r3,r3,8 + 67dc: 20bc002c andhi r2,r4,61440 + 67e0: 1000021e bne r2,zero,67ec <__hi0bits+0x2c> + 67e4: 2008913a slli r4,r4,4 + 67e8: 18c00104 addi r3,r3,4 + 67ec: 20b0002c andhi r2,r4,49152 + 67f0: 1000031e bne r2,zero,6800 <__hi0bits+0x40> + 67f4: 2105883a add r2,r4,r4 + 67f8: 18c00084 addi r3,r3,2 + 67fc: 1089883a add r4,r2,r2 + 6800: 20000316 blt r4,zero,6810 <__hi0bits+0x50> + 6804: 2090002c andhi r2,r4,16384 + 6808: 10000626 beq r2,zero,6824 <__hi0bits+0x64> + 680c: 18c00044 addi r3,r3,1 + 6810: 1805883a mov r2,r3 + 6814: f800283a ret + 6818: 2008943a slli r4,r4,16 + 681c: 00c00404 movi r3,16 + 6820: 003fea06 br 67cc <__hi0bits+0xc> + 6824: 00c00804 movi r3,32 + 6828: 1805883a mov r2,r3 + 682c: f800283a ret + +00006830 <__lo0bits>: + 6830: 20c00017 ldw r3,0(r4) + 6834: 188001cc andi r2,r3,7 + 6838: 10000a26 beq r2,zero,6864 <__lo0bits+0x34> + 683c: 1880004c andi r2,r3,1 + 6840: 1005003a cmpeq r2,r2,zero + 6844: 10002126 beq r2,zero,68cc <__lo0bits+0x9c> + 6848: 1880008c andi r2,r3,2 + 684c: 1000251e bne r2,zero,68e4 <__lo0bits+0xb4> + 6850: 1804d0ba srli r2,r3,2 + 6854: 01400084 movi r5,2 + 6858: 20800015 stw r2,0(r4) + 685c: 2805883a mov r2,r5 + 6860: f800283a ret + 6864: 18bfffcc andi r2,r3,65535 + 6868: 10001526 beq r2,zero,68c0 <__lo0bits+0x90> + 686c: 000b883a mov r5,zero + 6870: 18803fcc andi r2,r3,255 + 6874: 1000021e bne r2,zero,6880 <__lo0bits+0x50> + 6878: 1806d23a srli r3,r3,8 + 687c: 29400204 addi r5,r5,8 + 6880: 188003cc andi r2,r3,15 + 6884: 1000021e bne r2,zero,6890 <__lo0bits+0x60> + 6888: 1806d13a srli r3,r3,4 + 688c: 29400104 addi r5,r5,4 + 6890: 188000cc andi r2,r3,3 + 6894: 1000021e bne r2,zero,68a0 <__lo0bits+0x70> + 6898: 1806d0ba srli r3,r3,2 + 689c: 29400084 addi r5,r5,2 + 68a0: 1880004c andi r2,r3,1 + 68a4: 1000031e bne r2,zero,68b4 <__lo0bits+0x84> + 68a8: 1806d07a srli r3,r3,1 + 68ac: 18000a26 beq r3,zero,68d8 <__lo0bits+0xa8> + 68b0: 29400044 addi r5,r5,1 + 68b4: 2805883a mov r2,r5 + 68b8: 20c00015 stw r3,0(r4) + 68bc: f800283a ret + 68c0: 1806d43a srli r3,r3,16 + 68c4: 01400404 movi r5,16 + 68c8: 003fe906 br 6870 <__lo0bits+0x40> + 68cc: 000b883a mov r5,zero + 68d0: 2805883a mov r2,r5 + 68d4: f800283a ret + 68d8: 01400804 movi r5,32 + 68dc: 2805883a mov r2,r5 + 68e0: f800283a ret + 68e4: 1804d07a srli r2,r3,1 + 68e8: 01400044 movi r5,1 + 68ec: 20800015 stw r2,0(r4) + 68f0: 003fda06 br 685c <__lo0bits+0x2c> + +000068f4 <__mcmp>: + 68f4: 20800417 ldw r2,16(r4) + 68f8: 28c00417 ldw r3,16(r5) + 68fc: 10cfc83a sub r7,r2,r3 + 6900: 38000c1e bne r7,zero,6934 <__mcmp+0x40> + 6904: 18c5883a add r2,r3,r3 + 6908: 1085883a add r2,r2,r2 + 690c: 10c00504 addi r3,r2,20 + 6910: 21000504 addi r4,r4,20 + 6914: 28cb883a add r5,r5,r3 + 6918: 2085883a add r2,r4,r2 + 691c: 10bfff04 addi r2,r2,-4 + 6920: 297fff04 addi r5,r5,-4 + 6924: 11800017 ldw r6,0(r2) + 6928: 28c00017 ldw r3,0(r5) + 692c: 30c0031e bne r6,r3,693c <__mcmp+0x48> + 6930: 20bffa36 bltu r4,r2,691c <__mcmp+0x28> + 6934: 3805883a mov r2,r7 + 6938: f800283a ret + 693c: 30c00336 bltu r6,r3,694c <__mcmp+0x58> + 6940: 01c00044 movi r7,1 + 6944: 3805883a mov r2,r7 + 6948: f800283a ret + 694c: 01ffffc4 movi r7,-1 + 6950: 003ff806 br 6934 <__mcmp+0x40> + +00006954 <__ulp>: + 6954: 295ffc2c andhi r5,r5,32752 + 6958: 013f3034 movhi r4,64704 + 695c: 290b883a add r5,r5,r4 + 6960: 0145c83a sub r2,zero,r5 + 6964: 1007d53a srai r3,r2,20 + 6968: 000d883a mov r6,zero + 696c: 0140040e bge zero,r5,6980 <__ulp+0x2c> + 6970: 280f883a mov r7,r5 + 6974: 3807883a mov r3,r7 + 6978: 3005883a mov r2,r6 + 697c: f800283a ret + 6980: 008004c4 movi r2,19 + 6984: 193ffb04 addi r4,r3,-20 + 6988: 10c00c0e bge r2,r3,69bc <__ulp+0x68> + 698c: 008007c4 movi r2,31 + 6990: 1107c83a sub r3,r2,r4 + 6994: 00800784 movi r2,30 + 6998: 01400044 movi r5,1 + 699c: 11000216 blt r2,r4,69a8 <__ulp+0x54> + 69a0: 00800044 movi r2,1 + 69a4: 10ca983a sll r5,r2,r3 + 69a8: 000f883a mov r7,zero + 69ac: 280d883a mov r6,r5 + 69b0: 3807883a mov r3,r7 + 69b4: 3005883a mov r2,r6 + 69b8: f800283a ret + 69bc: 00800234 movhi r2,8 + 69c0: 10cfd83a sra r7,r2,r3 + 69c4: 000d883a mov r6,zero + 69c8: 3005883a mov r2,r6 + 69cc: 3807883a mov r3,r7 + 69d0: f800283a ret + +000069d4 <__b2d>: + 69d4: 20800417 ldw r2,16(r4) + 69d8: defff904 addi sp,sp,-28 + 69dc: dd000415 stw r20,16(sp) + 69e0: 1085883a add r2,r2,r2 + 69e4: 25000504 addi r20,r4,20 + 69e8: 1085883a add r2,r2,r2 + 69ec: dc000015 stw r16,0(sp) + 69f0: a0a1883a add r16,r20,r2 + 69f4: dd400515 stw r21,20(sp) + 69f8: 857fff17 ldw r21,-4(r16) + 69fc: dc400115 stw r17,4(sp) + 6a00: dfc00615 stw ra,24(sp) + 6a04: a809883a mov r4,r21 + 6a08: 2823883a mov r17,r5 + 6a0c: dcc00315 stw r19,12(sp) + 6a10: dc800215 stw r18,8(sp) + 6a14: 00067c00 call 67c0 <__hi0bits> + 6a18: 100b883a mov r5,r2 + 6a1c: 00800804 movi r2,32 + 6a20: 1145c83a sub r2,r2,r5 + 6a24: 88800015 stw r2,0(r17) + 6a28: 00800284 movi r2,10 + 6a2c: 80ffff04 addi r3,r16,-4 + 6a30: 11401416 blt r2,r5,6a84 <__b2d+0xb0> + 6a34: 008002c4 movi r2,11 + 6a38: 1149c83a sub r4,r2,r5 + 6a3c: a0c02736 bltu r20,r3,6adc <__b2d+0x108> + 6a40: 000d883a mov r6,zero + 6a44: 28800544 addi r2,r5,21 + 6a48: a906d83a srl r3,r21,r4 + 6a4c: a884983a sll r2,r21,r2 + 6a50: 1ccffc34 orhi r19,r3,16368 + 6a54: 11a4b03a or r18,r2,r6 + 6a58: 9005883a mov r2,r18 + 6a5c: 9807883a mov r3,r19 + 6a60: dfc00617 ldw ra,24(sp) + 6a64: dd400517 ldw r21,20(sp) + 6a68: dd000417 ldw r20,16(sp) + 6a6c: dcc00317 ldw r19,12(sp) + 6a70: dc800217 ldw r18,8(sp) + 6a74: dc400117 ldw r17,4(sp) + 6a78: dc000017 ldw r16,0(sp) + 6a7c: dec00704 addi sp,sp,28 + 6a80: f800283a ret + 6a84: a0c00e36 bltu r20,r3,6ac0 <__b2d+0xec> + 6a88: 293ffd44 addi r4,r5,-11 + 6a8c: 000d883a mov r6,zero + 6a90: 20000f26 beq r4,zero,6ad0 <__b2d+0xfc> + 6a94: 00800804 movi r2,32 + 6a98: 110bc83a sub r5,r2,r4 + 6a9c: a0c01236 bltu r20,r3,6ae8 <__b2d+0x114> + 6aa0: 000f883a mov r7,zero + 6aa4: a904983a sll r2,r21,r4 + 6aa8: 3146d83a srl r3,r6,r5 + 6aac: 3108983a sll r4,r6,r4 + 6ab0: 108ffc34 orhi r2,r2,16368 + 6ab4: 18a6b03a or r19,r3,r2 + 6ab8: 3924b03a or r18,r7,r4 + 6abc: 003fe606 br 6a58 <__b2d+0x84> + 6ac0: 293ffd44 addi r4,r5,-11 + 6ac4: 81bffe17 ldw r6,-8(r16) + 6ac8: 80fffe04 addi r3,r16,-8 + 6acc: 203ff11e bne r4,zero,6a94 <__b2d+0xc0> + 6ad0: accffc34 orhi r19,r21,16368 + 6ad4: 3025883a mov r18,r6 + 6ad8: 003fdf06 br 6a58 <__b2d+0x84> + 6adc: 18bfff17 ldw r2,-4(r3) + 6ae0: 110cd83a srl r6,r2,r4 + 6ae4: 003fd706 br 6a44 <__b2d+0x70> + 6ae8: 18bfff17 ldw r2,-4(r3) + 6aec: 114ed83a srl r7,r2,r5 + 6af0: 003fec06 br 6aa4 <__b2d+0xd0> + +00006af4 <__ratio>: + 6af4: defff904 addi sp,sp,-28 + 6af8: dc400215 stw r17,8(sp) + 6afc: 2823883a mov r17,r5 + 6b00: d80b883a mov r5,sp + 6b04: dfc00615 stw ra,24(sp) + 6b08: dd000515 stw r20,20(sp) + 6b0c: dcc00415 stw r19,16(sp) + 6b10: dc800315 stw r18,12(sp) + 6b14: 2025883a mov r18,r4 + 6b18: 00069d40 call 69d4 <__b2d> + 6b1c: 8809883a mov r4,r17 + 6b20: d9400104 addi r5,sp,4 + 6b24: 1027883a mov r19,r2 + 6b28: 1829883a mov r20,r3 + 6b2c: 00069d40 call 69d4 <__b2d> + 6b30: 89000417 ldw r4,16(r17) + 6b34: 91c00417 ldw r7,16(r18) + 6b38: d9800117 ldw r6,4(sp) + 6b3c: 180b883a mov r5,r3 + 6b40: 390fc83a sub r7,r7,r4 + 6b44: 1009883a mov r4,r2 + 6b48: d8800017 ldw r2,0(sp) + 6b4c: 380e917a slli r7,r7,5 + 6b50: 2011883a mov r8,r4 + 6b54: 1185c83a sub r2,r2,r6 + 6b58: 11c5883a add r2,r2,r7 + 6b5c: 1006953a slli r3,r2,20 + 6b60: 2813883a mov r9,r5 + 6b64: 00800d0e bge zero,r2,6b9c <__ratio+0xa8> + 6b68: 1d29883a add r20,r3,r20 + 6b6c: a00b883a mov r5,r20 + 6b70: 480f883a mov r7,r9 + 6b74: 9809883a mov r4,r19 + 6b78: 400d883a mov r6,r8 + 6b7c: 00096180 call 9618 <__divdf3> + 6b80: dfc00617 ldw ra,24(sp) + 6b84: dd000517 ldw r20,20(sp) + 6b88: dcc00417 ldw r19,16(sp) + 6b8c: dc800317 ldw r18,12(sp) + 6b90: dc400217 ldw r17,8(sp) + 6b94: dec00704 addi sp,sp,28 + 6b98: f800283a ret + 6b9c: 28d3c83a sub r9,r5,r3 + 6ba0: 003ff206 br 6b6c <__ratio+0x78> + +00006ba4 <_mprec_log10>: + 6ba4: defffe04 addi sp,sp,-8 + 6ba8: 008005c4 movi r2,23 + 6bac: dc000015 stw r16,0(sp) + 6bb0: dfc00115 stw ra,4(sp) + 6bb4: 2021883a mov r16,r4 + 6bb8: 11000c16 blt r2,r4,6bec <_mprec_log10+0x48> + 6bbc: 200490fa slli r2,r4,3 + 6bc0: 00c00074 movhi r3,1 + 6bc4: 18f8a404 addi r3,r3,-7536 + 6bc8: 10c5883a add r2,r2,r3 + 6bcc: 12400117 ldw r9,4(r2) + 6bd0: 12000017 ldw r8,0(r2) + 6bd4: 4807883a mov r3,r9 + 6bd8: 4005883a mov r2,r8 + 6bdc: dfc00117 ldw ra,4(sp) + 6be0: dc000017 ldw r16,0(sp) + 6be4: dec00204 addi sp,sp,8 + 6be8: f800283a ret + 6bec: 0011883a mov r8,zero + 6bf0: 024ffc34 movhi r9,16368 + 6bf4: 0005883a mov r2,zero + 6bf8: 00d00934 movhi r3,16420 + 6bfc: 480b883a mov r5,r9 + 6c00: 4009883a mov r4,r8 + 6c04: 180f883a mov r7,r3 + 6c08: 100d883a mov r6,r2 + 6c0c: 00092540 call 9254 <__muldf3> + 6c10: 843fffc4 addi r16,r16,-1 + 6c14: 1011883a mov r8,r2 + 6c18: 1813883a mov r9,r3 + 6c1c: 803ff51e bne r16,zero,6bf4 <_mprec_log10+0x50> + 6c20: 4005883a mov r2,r8 + 6c24: 4807883a mov r3,r9 + 6c28: dfc00117 ldw ra,4(sp) + 6c2c: dc000017 ldw r16,0(sp) + 6c30: dec00204 addi sp,sp,8 + 6c34: f800283a ret + +00006c38 <__copybits>: + 6c38: 297fffc4 addi r5,r5,-1 + 6c3c: 30800417 ldw r2,16(r6) + 6c40: 280bd17a srai r5,r5,5 + 6c44: 31800504 addi r6,r6,20 + 6c48: 1085883a add r2,r2,r2 + 6c4c: 294b883a add r5,r5,r5 + 6c50: 294b883a add r5,r5,r5 + 6c54: 1085883a add r2,r2,r2 + 6c58: 290b883a add r5,r5,r4 + 6c5c: 3087883a add r3,r6,r2 + 6c60: 29400104 addi r5,r5,4 + 6c64: 30c0052e bgeu r6,r3,6c7c <__copybits+0x44> + 6c68: 30800017 ldw r2,0(r6) + 6c6c: 31800104 addi r6,r6,4 + 6c70: 20800015 stw r2,0(r4) + 6c74: 21000104 addi r4,r4,4 + 6c78: 30fffb36 bltu r6,r3,6c68 <__copybits+0x30> + 6c7c: 2140032e bgeu r4,r5,6c8c <__copybits+0x54> + 6c80: 20000015 stw zero,0(r4) + 6c84: 21000104 addi r4,r4,4 + 6c88: 217ffd36 bltu r4,r5,6c80 <__copybits+0x48> + 6c8c: f800283a ret + +00006c90 <__any_on>: + 6c90: 20800417 ldw r2,16(r4) + 6c94: 2807d17a srai r3,r5,5 + 6c98: 21000504 addi r4,r4,20 + 6c9c: 10c00d0e bge r2,r3,6cd4 <__any_on+0x44> + 6ca0: 1085883a add r2,r2,r2 + 6ca4: 1085883a add r2,r2,r2 + 6ca8: 208d883a add r6,r4,r2 + 6cac: 2180182e bgeu r4,r6,6d10 <__any_on+0x80> + 6cb0: 30bfff17 ldw r2,-4(r6) + 6cb4: 30ffff04 addi r3,r6,-4 + 6cb8: 1000041e bne r2,zero,6ccc <__any_on+0x3c> + 6cbc: 20c0142e bgeu r4,r3,6d10 <__any_on+0x80> + 6cc0: 18ffff04 addi r3,r3,-4 + 6cc4: 18800017 ldw r2,0(r3) + 6cc8: 103ffc26 beq r2,zero,6cbc <__any_on+0x2c> + 6ccc: 00800044 movi r2,1 + 6cd0: f800283a ret + 6cd4: 18800a0e bge r3,r2,6d00 <__any_on+0x70> + 6cd8: 294007cc andi r5,r5,31 + 6cdc: 28000826 beq r5,zero,6d00 <__any_on+0x70> + 6ce0: 18c5883a add r2,r3,r3 + 6ce4: 1085883a add r2,r2,r2 + 6ce8: 208d883a add r6,r4,r2 + 6cec: 30c00017 ldw r3,0(r6) + 6cf0: 1944d83a srl r2,r3,r5 + 6cf4: 1144983a sll r2,r2,r5 + 6cf8: 18bff41e bne r3,r2,6ccc <__any_on+0x3c> + 6cfc: 003feb06 br 6cac <__any_on+0x1c> + 6d00: 18c5883a add r2,r3,r3 + 6d04: 1085883a add r2,r2,r2 + 6d08: 208d883a add r6,r4,r2 + 6d0c: 003fe706 br 6cac <__any_on+0x1c> + 6d10: 0005883a mov r2,zero + 6d14: f800283a ret + +00006d18 <_Balloc>: + 6d18: 20c01317 ldw r3,76(r4) + 6d1c: defffb04 addi sp,sp,-20 + 6d20: dcc00315 stw r19,12(sp) + 6d24: dc800215 stw r18,8(sp) + 6d28: dfc00415 stw ra,16(sp) + 6d2c: 2825883a mov r18,r5 + 6d30: dc400115 stw r17,4(sp) + 6d34: dc000015 stw r16,0(sp) + 6d38: 2027883a mov r19,r4 + 6d3c: 01800404 movi r6,16 + 6d40: 01400104 movi r5,4 + 6d44: 18001726 beq r3,zero,6da4 <_Balloc+0x8c> + 6d48: 01400044 movi r5,1 + 6d4c: 9485883a add r2,r18,r18 + 6d50: 2ca2983a sll r17,r5,r18 + 6d54: 1085883a add r2,r2,r2 + 6d58: 10c7883a add r3,r2,r3 + 6d5c: 1c000017 ldw r16,0(r3) + 6d60: 8c4d883a add r6,r17,r17 + 6d64: 318d883a add r6,r6,r6 + 6d68: 9809883a mov r4,r19 + 6d6c: 31800504 addi r6,r6,20 + 6d70: 80001226 beq r16,zero,6dbc <_Balloc+0xa4> + 6d74: 80800017 ldw r2,0(r16) + 6d78: 18800015 stw r2,0(r3) + 6d7c: 80000415 stw zero,16(r16) + 6d80: 80000315 stw zero,12(r16) + 6d84: 8005883a mov r2,r16 + 6d88: dfc00417 ldw ra,16(sp) + 6d8c: dcc00317 ldw r19,12(sp) + 6d90: dc800217 ldw r18,8(sp) + 6d94: dc400117 ldw r17,4(sp) + 6d98: dc000017 ldw r16,0(sp) + 6d9c: dec00504 addi sp,sp,20 + 6da0: f800283a ret + 6da4: 0007fbc0 call 7fbc <_calloc_r> + 6da8: 1007883a mov r3,r2 + 6dac: 0021883a mov r16,zero + 6db0: 98801315 stw r2,76(r19) + 6db4: 103fe41e bne r2,zero,6d48 <_Balloc+0x30> + 6db8: 003ff206 br 6d84 <_Balloc+0x6c> + 6dbc: 0007fbc0 call 7fbc <_calloc_r> + 6dc0: 103ff026 beq r2,zero,6d84 <_Balloc+0x6c> + 6dc4: 1021883a mov r16,r2 + 6dc8: 14800115 stw r18,4(r2) + 6dcc: 14400215 stw r17,8(r2) + 6dd0: 003fea06 br 6d7c <_Balloc+0x64> + +00006dd4 <__d2b>: + 6dd4: defff504 addi sp,sp,-44 + 6dd8: dcc00515 stw r19,20(sp) + 6ddc: 04c00044 movi r19,1 + 6de0: dc000215 stw r16,8(sp) + 6de4: 2821883a mov r16,r5 + 6de8: 980b883a mov r5,r19 + 6dec: ddc00915 stw r23,36(sp) + 6df0: dd800815 stw r22,32(sp) + 6df4: dd400715 stw r21,28(sp) + 6df8: dd000615 stw r20,24(sp) + 6dfc: dc800415 stw r18,16(sp) + 6e00: dc400315 stw r17,12(sp) + 6e04: dfc00a15 stw ra,40(sp) + 6e08: 3023883a mov r17,r6 + 6e0c: 382d883a mov r22,r7 + 6e10: ddc00b17 ldw r23,44(sp) + 6e14: 0006d180 call 6d18 <_Balloc> + 6e18: 1025883a mov r18,r2 + 6e1c: 00a00034 movhi r2,32768 + 6e20: 10bfffc4 addi r2,r2,-1 + 6e24: 8888703a and r4,r17,r2 + 6e28: 202ad53a srli r21,r4,20 + 6e2c: 00800434 movhi r2,16 + 6e30: 10bfffc4 addi r2,r2,-1 + 6e34: 8886703a and r3,r17,r2 + 6e38: a829003a cmpeq r20,r21,zero + 6e3c: 800b883a mov r5,r16 + 6e40: d8c00115 stw r3,4(sp) + 6e44: 94000504 addi r16,r18,20 + 6e48: a000021e bne r20,zero,6e54 <__d2b+0x80> + 6e4c: 18c00434 orhi r3,r3,16 + 6e50: d8c00115 stw r3,4(sp) + 6e54: 28002726 beq r5,zero,6ef4 <__d2b+0x120> + 6e58: d809883a mov r4,sp + 6e5c: d9400015 stw r5,0(sp) + 6e60: 00068300 call 6830 <__lo0bits> + 6e64: 100d883a mov r6,r2 + 6e68: 10003526 beq r2,zero,6f40 <__d2b+0x16c> + 6e6c: d8c00117 ldw r3,4(sp) + 6e70: 00800804 movi r2,32 + 6e74: 1185c83a sub r2,r2,r6 + 6e78: d9000017 ldw r4,0(sp) + 6e7c: 1886983a sll r3,r3,r2 + 6e80: 1906b03a or r3,r3,r4 + 6e84: 90c00515 stw r3,20(r18) + 6e88: d8c00117 ldw r3,4(sp) + 6e8c: 1986d83a srl r3,r3,r6 + 6e90: d8c00115 stw r3,4(sp) + 6e94: 180b003a cmpeq r5,r3,zero + 6e98: 00800084 movi r2,2 + 6e9c: 114bc83a sub r5,r2,r5 + 6ea0: 80c00115 stw r3,4(r16) + 6ea4: 91400415 stw r5,16(r18) + 6ea8: a0001a1e bne r20,zero,6f14 <__d2b+0x140> + 6eac: 3545883a add r2,r6,r21 + 6eb0: 10bef344 addi r2,r2,-1075 + 6eb4: 00c00d44 movi r3,53 + 6eb8: b0800015 stw r2,0(r22) + 6ebc: 1987c83a sub r3,r3,r6 + 6ec0: b8c00015 stw r3,0(r23) + 6ec4: 9005883a mov r2,r18 + 6ec8: dfc00a17 ldw ra,40(sp) + 6ecc: ddc00917 ldw r23,36(sp) + 6ed0: dd800817 ldw r22,32(sp) + 6ed4: dd400717 ldw r21,28(sp) + 6ed8: dd000617 ldw r20,24(sp) + 6edc: dcc00517 ldw r19,20(sp) + 6ee0: dc800417 ldw r18,16(sp) + 6ee4: dc400317 ldw r17,12(sp) + 6ee8: dc000217 ldw r16,8(sp) + 6eec: dec00b04 addi sp,sp,44 + 6ef0: f800283a ret + 6ef4: d9000104 addi r4,sp,4 + 6ef8: 00068300 call 6830 <__lo0bits> + 6efc: 11800804 addi r6,r2,32 + 6f00: d8800117 ldw r2,4(sp) + 6f04: 94c00415 stw r19,16(r18) + 6f08: 980b883a mov r5,r19 + 6f0c: 90800515 stw r2,20(r18) + 6f10: a03fe626 beq r20,zero,6eac <__d2b+0xd8> + 6f14: 2945883a add r2,r5,r5 + 6f18: 1085883a add r2,r2,r2 + 6f1c: 1405883a add r2,r2,r16 + 6f20: 113fff17 ldw r4,-4(r2) + 6f24: 30fef384 addi r3,r6,-1074 + 6f28: 2820917a slli r16,r5,5 + 6f2c: b0c00015 stw r3,0(r22) + 6f30: 00067c00 call 67c0 <__hi0bits> + 6f34: 80a1c83a sub r16,r16,r2 + 6f38: bc000015 stw r16,0(r23) + 6f3c: 003fe106 br 6ec4 <__d2b+0xf0> + 6f40: d8800017 ldw r2,0(sp) + 6f44: 90800515 stw r2,20(r18) + 6f48: d8c00117 ldw r3,4(sp) + 6f4c: 003fd106 br 6e94 <__d2b+0xc0> + +00006f50 <__mdiff>: + 6f50: defffb04 addi sp,sp,-20 + 6f54: dc000015 stw r16,0(sp) + 6f58: 2821883a mov r16,r5 + 6f5c: dc800215 stw r18,8(sp) + 6f60: 300b883a mov r5,r6 + 6f64: 2025883a mov r18,r4 + 6f68: 8009883a mov r4,r16 + 6f6c: dc400115 stw r17,4(sp) + 6f70: dfc00415 stw ra,16(sp) + 6f74: dcc00315 stw r19,12(sp) + 6f78: 3023883a mov r17,r6 + 6f7c: 00068f40 call 68f4 <__mcmp> + 6f80: 10004226 beq r2,zero,708c <__mdiff+0x13c> + 6f84: 10005016 blt r2,zero,70c8 <__mdiff+0x178> + 6f88: 0027883a mov r19,zero + 6f8c: 81400117 ldw r5,4(r16) + 6f90: 9009883a mov r4,r18 + 6f94: 0006d180 call 6d18 <_Balloc> + 6f98: 1019883a mov r12,r2 + 6f9c: 82800417 ldw r10,16(r16) + 6fa0: 88800417 ldw r2,16(r17) + 6fa4: 81800504 addi r6,r16,20 + 6fa8: 5287883a add r3,r10,r10 + 6fac: 1085883a add r2,r2,r2 + 6fb0: 18c7883a add r3,r3,r3 + 6fb4: 1085883a add r2,r2,r2 + 6fb8: 8a000504 addi r8,r17,20 + 6fbc: 64c00315 stw r19,12(r12) + 6fc0: 30db883a add r13,r6,r3 + 6fc4: 4097883a add r11,r8,r2 + 6fc8: 61c00504 addi r7,r12,20 + 6fcc: 0013883a mov r9,zero + 6fd0: 31000017 ldw r4,0(r6) + 6fd4: 41400017 ldw r5,0(r8) + 6fd8: 42000104 addi r8,r8,4 + 6fdc: 20bfffcc andi r2,r4,65535 + 6fe0: 28ffffcc andi r3,r5,65535 + 6fe4: 10c5c83a sub r2,r2,r3 + 6fe8: 1245883a add r2,r2,r9 + 6fec: 2008d43a srli r4,r4,16 + 6ff0: 280ad43a srli r5,r5,16 + 6ff4: 1007d43a srai r3,r2,16 + 6ff8: 3880000d sth r2,0(r7) + 6ffc: 2149c83a sub r4,r4,r5 + 7000: 20c9883a add r4,r4,r3 + 7004: 3900008d sth r4,2(r7) + 7008: 31800104 addi r6,r6,4 + 700c: 39c00104 addi r7,r7,4 + 7010: 2013d43a srai r9,r4,16 + 7014: 42ffee36 bltu r8,r11,6fd0 <__mdiff+0x80> + 7018: 33400c2e bgeu r6,r13,704c <__mdiff+0xfc> + 701c: 30800017 ldw r2,0(r6) + 7020: 31800104 addi r6,r6,4 + 7024: 10ffffcc andi r3,r2,65535 + 7028: 1a47883a add r3,r3,r9 + 702c: 1004d43a srli r2,r2,16 + 7030: 1809d43a srai r4,r3,16 + 7034: 38c0000d sth r3,0(r7) + 7038: 1105883a add r2,r2,r4 + 703c: 3880008d sth r2,2(r7) + 7040: 1013d43a srai r9,r2,16 + 7044: 39c00104 addi r7,r7,4 + 7048: 337ff436 bltu r6,r13,701c <__mdiff+0xcc> + 704c: 38bfff17 ldw r2,-4(r7) + 7050: 38ffff04 addi r3,r7,-4 + 7054: 1000041e bne r2,zero,7068 <__mdiff+0x118> + 7058: 18ffff04 addi r3,r3,-4 + 705c: 18800017 ldw r2,0(r3) + 7060: 52bfffc4 addi r10,r10,-1 + 7064: 103ffc26 beq r2,zero,7058 <__mdiff+0x108> + 7068: 6005883a mov r2,r12 + 706c: 62800415 stw r10,16(r12) + 7070: dfc00417 ldw ra,16(sp) + 7074: dcc00317 ldw r19,12(sp) + 7078: dc800217 ldw r18,8(sp) + 707c: dc400117 ldw r17,4(sp) + 7080: dc000017 ldw r16,0(sp) + 7084: dec00504 addi sp,sp,20 + 7088: f800283a ret + 708c: 9009883a mov r4,r18 + 7090: 000b883a mov r5,zero + 7094: 0006d180 call 6d18 <_Balloc> + 7098: 1019883a mov r12,r2 + 709c: 00800044 movi r2,1 + 70a0: 60800415 stw r2,16(r12) + 70a4: 6005883a mov r2,r12 + 70a8: 60000515 stw zero,20(r12) + 70ac: dfc00417 ldw ra,16(sp) + 70b0: dcc00317 ldw r19,12(sp) + 70b4: dc800217 ldw r18,8(sp) + 70b8: dc400117 ldw r17,4(sp) + 70bc: dc000017 ldw r16,0(sp) + 70c0: dec00504 addi sp,sp,20 + 70c4: f800283a ret + 70c8: 880d883a mov r6,r17 + 70cc: 04c00044 movi r19,1 + 70d0: 8023883a mov r17,r16 + 70d4: 3021883a mov r16,r6 + 70d8: 003fac06 br 6f8c <__mdiff+0x3c> + +000070dc <__lshift>: + 70dc: defff904 addi sp,sp,-28 + 70e0: 28800417 ldw r2,16(r5) + 70e4: dc000015 stw r16,0(sp) + 70e8: 3021d17a srai r16,r6,5 + 70ec: 28c00217 ldw r3,8(r5) + 70f0: 10800044 addi r2,r2,1 + 70f4: dc400115 stw r17,4(sp) + 70f8: 80a3883a add r17,r16,r2 + 70fc: dd400515 stw r21,20(sp) + 7100: dd000415 stw r20,16(sp) + 7104: dc800215 stw r18,8(sp) + 7108: dfc00615 stw ra,24(sp) + 710c: 2825883a mov r18,r5 + 7110: dcc00315 stw r19,12(sp) + 7114: 3029883a mov r20,r6 + 7118: 202b883a mov r21,r4 + 711c: 29400117 ldw r5,4(r5) + 7120: 1c40030e bge r3,r17,7130 <__lshift+0x54> + 7124: 18c7883a add r3,r3,r3 + 7128: 29400044 addi r5,r5,1 + 712c: 1c7ffd16 blt r3,r17,7124 <__lshift+0x48> + 7130: a809883a mov r4,r21 + 7134: 0006d180 call 6d18 <_Balloc> + 7138: 1027883a mov r19,r2 + 713c: 11400504 addi r5,r2,20 + 7140: 0400090e bge zero,r16,7168 <__lshift+0x8c> + 7144: 2805883a mov r2,r5 + 7148: 0007883a mov r3,zero + 714c: 18c00044 addi r3,r3,1 + 7150: 10000015 stw zero,0(r2) + 7154: 10800104 addi r2,r2,4 + 7158: 80fffc1e bne r16,r3,714c <__lshift+0x70> + 715c: 8405883a add r2,r16,r16 + 7160: 1085883a add r2,r2,r2 + 7164: 288b883a add r5,r5,r2 + 7168: 90800417 ldw r2,16(r18) + 716c: 91000504 addi r4,r18,20 + 7170: a18007cc andi r6,r20,31 + 7174: 1085883a add r2,r2,r2 + 7178: 1085883a add r2,r2,r2 + 717c: 208f883a add r7,r4,r2 + 7180: 30001e26 beq r6,zero,71fc <__lshift+0x120> + 7184: 00800804 movi r2,32 + 7188: 1191c83a sub r8,r2,r6 + 718c: 0007883a mov r3,zero + 7190: 20800017 ldw r2,0(r4) + 7194: 1184983a sll r2,r2,r6 + 7198: 1884b03a or r2,r3,r2 + 719c: 28800015 stw r2,0(r5) + 71a0: 20c00017 ldw r3,0(r4) + 71a4: 21000104 addi r4,r4,4 + 71a8: 29400104 addi r5,r5,4 + 71ac: 1a06d83a srl r3,r3,r8 + 71b0: 21fff736 bltu r4,r7,7190 <__lshift+0xb4> + 71b4: 28c00015 stw r3,0(r5) + 71b8: 18000126 beq r3,zero,71c0 <__lshift+0xe4> + 71bc: 8c400044 addi r17,r17,1 + 71c0: 88bfffc4 addi r2,r17,-1 + 71c4: 98800415 stw r2,16(r19) + 71c8: a809883a mov r4,r21 + 71cc: 900b883a mov r5,r18 + 71d0: 00067980 call 6798 <_Bfree> + 71d4: 9805883a mov r2,r19 + 71d8: dfc00617 ldw ra,24(sp) + 71dc: dd400517 ldw r21,20(sp) + 71e0: dd000417 ldw r20,16(sp) + 71e4: dcc00317 ldw r19,12(sp) + 71e8: dc800217 ldw r18,8(sp) + 71ec: dc400117 ldw r17,4(sp) + 71f0: dc000017 ldw r16,0(sp) + 71f4: dec00704 addi sp,sp,28 + 71f8: f800283a ret + 71fc: 20800017 ldw r2,0(r4) + 7200: 21000104 addi r4,r4,4 + 7204: 28800015 stw r2,0(r5) + 7208: 29400104 addi r5,r5,4 + 720c: 21ffec2e bgeu r4,r7,71c0 <__lshift+0xe4> + 7210: 20800017 ldw r2,0(r4) + 7214: 21000104 addi r4,r4,4 + 7218: 28800015 stw r2,0(r5) + 721c: 29400104 addi r5,r5,4 + 7220: 21fff636 bltu r4,r7,71fc <__lshift+0x120> + 7224: 003fe606 br 71c0 <__lshift+0xe4> + +00007228 <__multiply>: + 7228: defff004 addi sp,sp,-64 + 722c: dc800815 stw r18,32(sp) + 7230: dc400715 stw r17,28(sp) + 7234: 2c800417 ldw r18,16(r5) + 7238: 34400417 ldw r17,16(r6) + 723c: dcc00915 stw r19,36(sp) + 7240: dc000615 stw r16,24(sp) + 7244: dfc00f15 stw ra,60(sp) + 7248: df000e15 stw fp,56(sp) + 724c: ddc00d15 stw r23,52(sp) + 7250: dd800c15 stw r22,48(sp) + 7254: dd400b15 stw r21,44(sp) + 7258: dd000a15 stw r20,40(sp) + 725c: 2821883a mov r16,r5 + 7260: 3027883a mov r19,r6 + 7264: 9440040e bge r18,r17,7278 <__multiply+0x50> + 7268: 8825883a mov r18,r17 + 726c: 2c400417 ldw r17,16(r5) + 7270: 2827883a mov r19,r5 + 7274: 3021883a mov r16,r6 + 7278: 80800217 ldw r2,8(r16) + 727c: 9447883a add r3,r18,r17 + 7280: d8c00415 stw r3,16(sp) + 7284: 81400117 ldw r5,4(r16) + 7288: 10c0010e bge r2,r3,7290 <__multiply+0x68> + 728c: 29400044 addi r5,r5,1 + 7290: 0006d180 call 6d18 <_Balloc> + 7294: d8800515 stw r2,20(sp) + 7298: d9000417 ldw r4,16(sp) + 729c: d8c00517 ldw r3,20(sp) + 72a0: 2105883a add r2,r4,r4 + 72a4: 1085883a add r2,r2,r2 + 72a8: 19000504 addi r4,r3,20 + 72ac: 2085883a add r2,r4,r2 + 72b0: d8800315 stw r2,12(sp) + 72b4: 2080052e bgeu r4,r2,72cc <__multiply+0xa4> + 72b8: 2005883a mov r2,r4 + 72bc: d8c00317 ldw r3,12(sp) + 72c0: 10000015 stw zero,0(r2) + 72c4: 10800104 addi r2,r2,4 + 72c8: 10fffc36 bltu r2,r3,72bc <__multiply+0x94> + 72cc: 8c45883a add r2,r17,r17 + 72d0: 9487883a add r3,r18,r18 + 72d4: 9dc00504 addi r23,r19,20 + 72d8: 1085883a add r2,r2,r2 + 72dc: 84000504 addi r16,r16,20 + 72e0: 18c7883a add r3,r3,r3 + 72e4: b885883a add r2,r23,r2 + 72e8: dc000015 stw r16,0(sp) + 72ec: d8800215 stw r2,8(sp) + 72f0: 80f9883a add fp,r16,r3 + 72f4: b880432e bgeu r23,r2,7404 <__multiply+0x1dc> + 72f8: d9000115 stw r4,4(sp) + 72fc: b9000017 ldw r4,0(r23) + 7300: 253fffcc andi r20,r4,65535 + 7304: a0001a26 beq r20,zero,7370 <__multiply+0x148> + 7308: dcc00017 ldw r19,0(sp) + 730c: dc800117 ldw r18,4(sp) + 7310: 002b883a mov r21,zero + 7314: 9c400017 ldw r17,0(r19) + 7318: 94000017 ldw r16,0(r18) + 731c: a009883a mov r4,r20 + 7320: 897fffcc andi r5,r17,65535 + 7324: 0009fc80 call 9fc8 <__mulsi3> + 7328: 880ad43a srli r5,r17,16 + 732c: 80ffffcc andi r3,r16,65535 + 7330: a8c7883a add r3,r21,r3 + 7334: a009883a mov r4,r20 + 7338: 10e3883a add r17,r2,r3 + 733c: 8020d43a srli r16,r16,16 + 7340: 0009fc80 call 9fc8 <__mulsi3> + 7344: 8806d43a srli r3,r17,16 + 7348: 1405883a add r2,r2,r16 + 734c: 9cc00104 addi r19,r19,4 + 7350: 1887883a add r3,r3,r2 + 7354: 90c0008d sth r3,2(r18) + 7358: 9440000d sth r17,0(r18) + 735c: 182ad43a srli r21,r3,16 + 7360: 94800104 addi r18,r18,4 + 7364: 9f3feb36 bltu r19,fp,7314 <__multiply+0xec> + 7368: 95400015 stw r21,0(r18) + 736c: b9000017 ldw r4,0(r23) + 7370: 202ad43a srli r21,r4,16 + 7374: a8001c26 beq r21,zero,73e8 <__multiply+0x1c0> + 7378: d9000117 ldw r4,4(sp) + 737c: dd000017 ldw r20,0(sp) + 7380: 002d883a mov r22,zero + 7384: 24c00017 ldw r19,0(r4) + 7388: 2025883a mov r18,r4 + 738c: 9823883a mov r17,r19 + 7390: a4000017 ldw r16,0(r20) + 7394: a809883a mov r4,r21 + 7398: a5000104 addi r20,r20,4 + 739c: 817fffcc andi r5,r16,65535 + 73a0: 0009fc80 call 9fc8 <__mulsi3> + 73a4: 8806d43a srli r3,r17,16 + 73a8: 800ad43a srli r5,r16,16 + 73ac: 94c0000d sth r19,0(r18) + 73b0: b0c7883a add r3,r22,r3 + 73b4: 10e1883a add r16,r2,r3 + 73b8: 9400008d sth r16,2(r18) + 73bc: a809883a mov r4,r21 + 73c0: 94800104 addi r18,r18,4 + 73c4: 0009fc80 call 9fc8 <__mulsi3> + 73c8: 94400017 ldw r17,0(r18) + 73cc: 8020d43a srli r16,r16,16 + 73d0: 88ffffcc andi r3,r17,65535 + 73d4: 10c5883a add r2,r2,r3 + 73d8: 80a7883a add r19,r16,r2 + 73dc: 982cd43a srli r22,r19,16 + 73e0: a73feb36 bltu r20,fp,7390 <__multiply+0x168> + 73e4: 94c00015 stw r19,0(r18) + 73e8: d8800217 ldw r2,8(sp) + 73ec: bdc00104 addi r23,r23,4 + 73f0: b880042e bgeu r23,r2,7404 <__multiply+0x1dc> + 73f4: d8c00117 ldw r3,4(sp) + 73f8: 18c00104 addi r3,r3,4 + 73fc: d8c00115 stw r3,4(sp) + 7400: 003fbe06 br 72fc <__multiply+0xd4> + 7404: d9000417 ldw r4,16(sp) + 7408: 01000c0e bge zero,r4,743c <__multiply+0x214> + 740c: d8c00317 ldw r3,12(sp) + 7410: 18bfff17 ldw r2,-4(r3) + 7414: 18ffff04 addi r3,r3,-4 + 7418: 10000326 beq r2,zero,7428 <__multiply+0x200> + 741c: 00000706 br 743c <__multiply+0x214> + 7420: 18800017 ldw r2,0(r3) + 7424: 1000051e bne r2,zero,743c <__multiply+0x214> + 7428: d9000417 ldw r4,16(sp) + 742c: 18ffff04 addi r3,r3,-4 + 7430: 213fffc4 addi r4,r4,-1 + 7434: d9000415 stw r4,16(sp) + 7438: 203ff91e bne r4,zero,7420 <__multiply+0x1f8> + 743c: d8800417 ldw r2,16(sp) + 7440: d8c00517 ldw r3,20(sp) + 7444: 18800415 stw r2,16(r3) + 7448: 1805883a mov r2,r3 + 744c: dfc00f17 ldw ra,60(sp) + 7450: df000e17 ldw fp,56(sp) + 7454: ddc00d17 ldw r23,52(sp) + 7458: dd800c17 ldw r22,48(sp) + 745c: dd400b17 ldw r21,44(sp) + 7460: dd000a17 ldw r20,40(sp) + 7464: dcc00917 ldw r19,36(sp) + 7468: dc800817 ldw r18,32(sp) + 746c: dc400717 ldw r17,28(sp) + 7470: dc000617 ldw r16,24(sp) + 7474: dec01004 addi sp,sp,64 + 7478: f800283a ret + +0000747c <__i2b>: + 747c: defffd04 addi sp,sp,-12 + 7480: dc000015 stw r16,0(sp) + 7484: 04000044 movi r16,1 + 7488: dc800115 stw r18,4(sp) + 748c: 2825883a mov r18,r5 + 7490: 800b883a mov r5,r16 + 7494: dfc00215 stw ra,8(sp) + 7498: 0006d180 call 6d18 <_Balloc> + 749c: 14000415 stw r16,16(r2) + 74a0: 14800515 stw r18,20(r2) + 74a4: dfc00217 ldw ra,8(sp) + 74a8: dc800117 ldw r18,4(sp) + 74ac: dc000017 ldw r16,0(sp) + 74b0: dec00304 addi sp,sp,12 + 74b4: f800283a ret + +000074b8 <__multadd>: + 74b8: defff604 addi sp,sp,-40 + 74bc: dd800615 stw r22,24(sp) + 74c0: 2d800417 ldw r22,16(r5) + 74c4: df000815 stw fp,32(sp) + 74c8: ddc00715 stw r23,28(sp) + 74cc: dd400515 stw r21,20(sp) + 74d0: dd000415 stw r20,16(sp) + 74d4: dcc00315 stw r19,12(sp) + 74d8: dc800215 stw r18,8(sp) + 74dc: dfc00915 stw ra,36(sp) + 74e0: dc400115 stw r17,4(sp) + 74e4: dc000015 stw r16,0(sp) + 74e8: 282f883a mov r23,r5 + 74ec: 2039883a mov fp,r4 + 74f0: 302b883a mov r21,r6 + 74f4: 3829883a mov r20,r7 + 74f8: 2c800504 addi r18,r5,20 + 74fc: 0027883a mov r19,zero + 7500: 94400017 ldw r17,0(r18) + 7504: a80b883a mov r5,r21 + 7508: 9cc00044 addi r19,r19,1 + 750c: 893fffcc andi r4,r17,65535 + 7510: 0009fc80 call 9fc8 <__mulsi3> + 7514: 8808d43a srli r4,r17,16 + 7518: 1521883a add r16,r2,r20 + 751c: a80b883a mov r5,r21 + 7520: 0009fc80 call 9fc8 <__mulsi3> + 7524: 8008d43a srli r4,r16,16 + 7528: 843fffcc andi r16,r16,65535 + 752c: 1105883a add r2,r2,r4 + 7530: 1006943a slli r3,r2,16 + 7534: 1028d43a srli r20,r2,16 + 7538: 1c07883a add r3,r3,r16 + 753c: 90c00015 stw r3,0(r18) + 7540: 94800104 addi r18,r18,4 + 7544: 9dbfee16 blt r19,r22,7500 <__multadd+0x48> + 7548: a0000826 beq r20,zero,756c <__multadd+0xb4> + 754c: b8800217 ldw r2,8(r23) + 7550: b080130e bge r22,r2,75a0 <__multadd+0xe8> + 7554: b585883a add r2,r22,r22 + 7558: 1085883a add r2,r2,r2 + 755c: 15c5883a add r2,r2,r23 + 7560: b0c00044 addi r3,r22,1 + 7564: 15000515 stw r20,20(r2) + 7568: b8c00415 stw r3,16(r23) + 756c: b805883a mov r2,r23 + 7570: dfc00917 ldw ra,36(sp) + 7574: df000817 ldw fp,32(sp) + 7578: ddc00717 ldw r23,28(sp) + 757c: dd800617 ldw r22,24(sp) + 7580: dd400517 ldw r21,20(sp) + 7584: dd000417 ldw r20,16(sp) + 7588: dcc00317 ldw r19,12(sp) + 758c: dc800217 ldw r18,8(sp) + 7590: dc400117 ldw r17,4(sp) + 7594: dc000017 ldw r16,0(sp) + 7598: dec00a04 addi sp,sp,40 + 759c: f800283a ret + 75a0: b9400117 ldw r5,4(r23) + 75a4: e009883a mov r4,fp + 75a8: 29400044 addi r5,r5,1 + 75ac: 0006d180 call 6d18 <_Balloc> + 75b0: b9800417 ldw r6,16(r23) + 75b4: b9400304 addi r5,r23,12 + 75b8: 11000304 addi r4,r2,12 + 75bc: 318d883a add r6,r6,r6 + 75c0: 318d883a add r6,r6,r6 + 75c4: 31800204 addi r6,r6,8 + 75c8: 1023883a mov r17,r2 + 75cc: 00066180 call 6618 + 75d0: b80b883a mov r5,r23 + 75d4: e009883a mov r4,fp + 75d8: 00067980 call 6798 <_Bfree> + 75dc: 882f883a mov r23,r17 + 75e0: 003fdc06 br 7554 <__multadd+0x9c> + +000075e4 <__pow5mult>: + 75e4: defffa04 addi sp,sp,-24 + 75e8: 308000cc andi r2,r6,3 + 75ec: dd000415 stw r20,16(sp) + 75f0: dcc00315 stw r19,12(sp) + 75f4: dc000015 stw r16,0(sp) + 75f8: dfc00515 stw ra,20(sp) + 75fc: dc800215 stw r18,8(sp) + 7600: dc400115 stw r17,4(sp) + 7604: 3021883a mov r16,r6 + 7608: 2027883a mov r19,r4 + 760c: 2829883a mov r20,r5 + 7610: 10002b1e bne r2,zero,76c0 <__pow5mult+0xdc> + 7614: 8025d0ba srai r18,r16,2 + 7618: 90001b26 beq r18,zero,7688 <__pow5mult+0xa4> + 761c: 9c001217 ldw r16,72(r19) + 7620: 8000081e bne r16,zero,7644 <__pow5mult+0x60> + 7624: 00003006 br 76e8 <__pow5mult+0x104> + 7628: 800b883a mov r5,r16 + 762c: 800d883a mov r6,r16 + 7630: 9809883a mov r4,r19 + 7634: 90001426 beq r18,zero,7688 <__pow5mult+0xa4> + 7638: 80800017 ldw r2,0(r16) + 763c: 10001b26 beq r2,zero,76ac <__pow5mult+0xc8> + 7640: 1021883a mov r16,r2 + 7644: 9080004c andi r2,r18,1 + 7648: 1005003a cmpeq r2,r2,zero + 764c: 9025d07a srai r18,r18,1 + 7650: 800d883a mov r6,r16 + 7654: 9809883a mov r4,r19 + 7658: a00b883a mov r5,r20 + 765c: 103ff21e bne r2,zero,7628 <__pow5mult+0x44> + 7660: 00072280 call 7228 <__multiply> + 7664: a00b883a mov r5,r20 + 7668: 9809883a mov r4,r19 + 766c: 1023883a mov r17,r2 + 7670: 00067980 call 6798 <_Bfree> + 7674: 8829883a mov r20,r17 + 7678: 800b883a mov r5,r16 + 767c: 800d883a mov r6,r16 + 7680: 9809883a mov r4,r19 + 7684: 903fec1e bne r18,zero,7638 <__pow5mult+0x54> + 7688: a005883a mov r2,r20 + 768c: dfc00517 ldw ra,20(sp) + 7690: dd000417 ldw r20,16(sp) + 7694: dcc00317 ldw r19,12(sp) + 7698: dc800217 ldw r18,8(sp) + 769c: dc400117 ldw r17,4(sp) + 76a0: dc000017 ldw r16,0(sp) + 76a4: dec00604 addi sp,sp,24 + 76a8: f800283a ret + 76ac: 00072280 call 7228 <__multiply> + 76b0: 80800015 stw r2,0(r16) + 76b4: 1021883a mov r16,r2 + 76b8: 10000015 stw zero,0(r2) + 76bc: 003fe106 br 7644 <__pow5mult+0x60> + 76c0: 1085883a add r2,r2,r2 + 76c4: 00c00074 movhi r3,1 + 76c8: 18f8ea04 addi r3,r3,-7256 + 76cc: 1085883a add r2,r2,r2 + 76d0: 10c5883a add r2,r2,r3 + 76d4: 11bfff17 ldw r6,-4(r2) + 76d8: 000f883a mov r7,zero + 76dc: 00074b80 call 74b8 <__multadd> + 76e0: 1029883a mov r20,r2 + 76e4: 003fcb06 br 7614 <__pow5mult+0x30> + 76e8: 9809883a mov r4,r19 + 76ec: 01409c44 movi r5,625 + 76f0: 000747c0 call 747c <__i2b> + 76f4: 98801215 stw r2,72(r19) + 76f8: 1021883a mov r16,r2 + 76fc: 10000015 stw zero,0(r2) + 7700: 003fd006 br 7644 <__pow5mult+0x60> + +00007704 <__s2b>: + 7704: defff904 addi sp,sp,-28 + 7708: dcc00315 stw r19,12(sp) + 770c: dc800215 stw r18,8(sp) + 7710: 2827883a mov r19,r5 + 7714: 2025883a mov r18,r4 + 7718: 01400244 movi r5,9 + 771c: 39000204 addi r4,r7,8 + 7720: dd000415 stw r20,16(sp) + 7724: dc400115 stw r17,4(sp) + 7728: dfc00615 stw ra,24(sp) + 772c: dd400515 stw r21,20(sp) + 7730: dc000015 stw r16,0(sp) + 7734: 3829883a mov r20,r7 + 7738: 3023883a mov r17,r6 + 773c: 0009ef80 call 9ef8 <__divsi3> + 7740: 00c00044 movi r3,1 + 7744: 1880350e bge r3,r2,781c <__s2b+0x118> + 7748: 000b883a mov r5,zero + 774c: 18c7883a add r3,r3,r3 + 7750: 29400044 addi r5,r5,1 + 7754: 18bffd16 blt r3,r2,774c <__s2b+0x48> + 7758: 9009883a mov r4,r18 + 775c: 0006d180 call 6d18 <_Balloc> + 7760: 1011883a mov r8,r2 + 7764: d8800717 ldw r2,28(sp) + 7768: 00c00044 movi r3,1 + 776c: 01800244 movi r6,9 + 7770: 40800515 stw r2,20(r8) + 7774: 40c00415 stw r3,16(r8) + 7778: 3440260e bge r6,r17,7814 <__s2b+0x110> + 777c: 3021883a mov r16,r6 + 7780: 99ab883a add r21,r19,r6 + 7784: 9c05883a add r2,r19,r16 + 7788: 11c00007 ldb r7,0(r2) + 778c: 400b883a mov r5,r8 + 7790: 9009883a mov r4,r18 + 7794: 39fff404 addi r7,r7,-48 + 7798: 01800284 movi r6,10 + 779c: 00074b80 call 74b8 <__multadd> + 77a0: 84000044 addi r16,r16,1 + 77a4: 1011883a mov r8,r2 + 77a8: 8c3ff61e bne r17,r16,7784 <__s2b+0x80> + 77ac: ac45883a add r2,r21,r17 + 77b0: 117ffe04 addi r5,r2,-8 + 77b4: 880d883a mov r6,r17 + 77b8: 35000c0e bge r6,r20,77ec <__s2b+0xe8> + 77bc: a185c83a sub r2,r20,r6 + 77c0: 2821883a mov r16,r5 + 77c4: 28a3883a add r17,r5,r2 + 77c8: 81c00007 ldb r7,0(r16) + 77cc: 400b883a mov r5,r8 + 77d0: 9009883a mov r4,r18 + 77d4: 39fff404 addi r7,r7,-48 + 77d8: 01800284 movi r6,10 + 77dc: 00074b80 call 74b8 <__multadd> + 77e0: 84000044 addi r16,r16,1 + 77e4: 1011883a mov r8,r2 + 77e8: 847ff71e bne r16,r17,77c8 <__s2b+0xc4> + 77ec: 4005883a mov r2,r8 + 77f0: dfc00617 ldw ra,24(sp) + 77f4: dd400517 ldw r21,20(sp) + 77f8: dd000417 ldw r20,16(sp) + 77fc: dcc00317 ldw r19,12(sp) + 7800: dc800217 ldw r18,8(sp) + 7804: dc400117 ldw r17,4(sp) + 7808: dc000017 ldw r16,0(sp) + 780c: dec00704 addi sp,sp,28 + 7810: f800283a ret + 7814: 99400284 addi r5,r19,10 + 7818: 003fe706 br 77b8 <__s2b+0xb4> + 781c: 000b883a mov r5,zero + 7820: 003fcd06 br 7758 <__s2b+0x54> + +00007824 <_read_r>: + 7824: defffd04 addi sp,sp,-12 + 7828: dc000015 stw r16,0(sp) + 782c: 04000074 movhi r16,1 + 7830: 8407a504 addi r16,r16,7828 + 7834: dc400115 stw r17,4(sp) + 7838: 80000015 stw zero,0(r16) + 783c: 2023883a mov r17,r4 + 7840: 2809883a mov r4,r5 + 7844: 300b883a mov r5,r6 + 7848: 380d883a mov r6,r7 + 784c: dfc00215 stw ra,8(sp) + 7850: 000b0700 call b070 + 7854: 1007883a mov r3,r2 + 7858: 00bfffc4 movi r2,-1 + 785c: 18800626 beq r3,r2,7878 <_read_r+0x54> + 7860: 1805883a mov r2,r3 + 7864: dfc00217 ldw ra,8(sp) + 7868: dc400117 ldw r17,4(sp) + 786c: dc000017 ldw r16,0(sp) + 7870: dec00304 addi sp,sp,12 + 7874: f800283a ret + 7878: 80800017 ldw r2,0(r16) + 787c: 103ff826 beq r2,zero,7860 <_read_r+0x3c> + 7880: 88800015 stw r2,0(r17) + 7884: 1805883a mov r2,r3 + 7888: dfc00217 ldw ra,8(sp) + 788c: dc400117 ldw r17,4(sp) + 7890: dc000017 ldw r16,0(sp) + 7894: dec00304 addi sp,sp,12 + 7898: f800283a ret + +0000789c <_realloc_r>: + 789c: defff404 addi sp,sp,-48 + 78a0: dd800815 stw r22,32(sp) + 78a4: dc800415 stw r18,16(sp) + 78a8: dc400315 stw r17,12(sp) + 78ac: dfc00b15 stw ra,44(sp) + 78b0: df000a15 stw fp,40(sp) + 78b4: ddc00915 stw r23,36(sp) + 78b8: dd400715 stw r21,28(sp) + 78bc: dd000615 stw r20,24(sp) + 78c0: dcc00515 stw r19,20(sp) + 78c4: dc000215 stw r16,8(sp) + 78c8: 2825883a mov r18,r5 + 78cc: 3023883a mov r17,r6 + 78d0: 202d883a mov r22,r4 + 78d4: 2800c926 beq r5,zero,7bfc <_realloc_r+0x360> + 78d8: 000ad4c0 call ad4c <__malloc_lock> + 78dc: 943ffe04 addi r16,r18,-8 + 78e0: 88c002c4 addi r3,r17,11 + 78e4: 00800584 movi r2,22 + 78e8: 82000117 ldw r8,4(r16) + 78ec: 10c01b2e bgeu r2,r3,795c <_realloc_r+0xc0> + 78f0: 00bffe04 movi r2,-8 + 78f4: 188e703a and r7,r3,r2 + 78f8: 3839883a mov fp,r7 + 78fc: 38001a16 blt r7,zero,7968 <_realloc_r+0xcc> + 7900: e4401936 bltu fp,r17,7968 <_realloc_r+0xcc> + 7904: 013fff04 movi r4,-4 + 7908: 4126703a and r19,r8,r4 + 790c: 99c02616 blt r19,r7,79a8 <_realloc_r+0x10c> + 7910: 802b883a mov r21,r16 + 7914: 9829883a mov r20,r19 + 7918: 84000204 addi r16,r16,8 + 791c: a80f883a mov r7,r21 + 7920: a70dc83a sub r6,r20,fp + 7924: 008003c4 movi r2,15 + 7928: 1180c136 bltu r2,r6,7c30 <_realloc_r+0x394> + 792c: 38800117 ldw r2,4(r7) + 7930: a549883a add r4,r20,r21 + 7934: 1080004c andi r2,r2,1 + 7938: a084b03a or r2,r20,r2 + 793c: 38800115 stw r2,4(r7) + 7940: 20c00117 ldw r3,4(r4) + 7944: 18c00054 ori r3,r3,1 + 7948: 20c00115 stw r3,4(r4) + 794c: b009883a mov r4,r22 + 7950: 000ad6c0 call ad6c <__malloc_unlock> + 7954: 8023883a mov r17,r16 + 7958: 00000606 br 7974 <_realloc_r+0xd8> + 795c: 01c00404 movi r7,16 + 7960: 3839883a mov fp,r7 + 7964: e47fe72e bgeu fp,r17,7904 <_realloc_r+0x68> + 7968: 00800304 movi r2,12 + 796c: 0023883a mov r17,zero + 7970: b0800015 stw r2,0(r22) + 7974: 8805883a mov r2,r17 + 7978: dfc00b17 ldw ra,44(sp) + 797c: df000a17 ldw fp,40(sp) + 7980: ddc00917 ldw r23,36(sp) + 7984: dd800817 ldw r22,32(sp) + 7988: dd400717 ldw r21,28(sp) + 798c: dd000617 ldw r20,24(sp) + 7990: dcc00517 ldw r19,20(sp) + 7994: dc800417 ldw r18,16(sp) + 7998: dc400317 ldw r17,12(sp) + 799c: dc000217 ldw r16,8(sp) + 79a0: dec00c04 addi sp,sp,48 + 79a4: f800283a ret + 79a8: 00800074 movhi r2,1 + 79ac: 10bae304 addi r2,r2,-5236 + 79b0: 12400217 ldw r9,8(r2) + 79b4: 84cd883a add r6,r16,r19 + 79b8: 802b883a mov r21,r16 + 79bc: 3240b926 beq r6,r9,7ca4 <_realloc_r+0x408> + 79c0: 31400117 ldw r5,4(r6) + 79c4: 00bfff84 movi r2,-2 + 79c8: 2884703a and r2,r5,r2 + 79cc: 1185883a add r2,r2,r6 + 79d0: 10c00117 ldw r3,4(r2) + 79d4: 18c0004c andi r3,r3,1 + 79d8: 1807003a cmpeq r3,r3,zero + 79dc: 1800a326 beq r3,zero,7c6c <_realloc_r+0x3d0> + 79e0: 2908703a and r4,r5,r4 + 79e4: 9929883a add r20,r19,r4 + 79e8: a1c0a30e bge r20,r7,7c78 <_realloc_r+0x3dc> + 79ec: 4080004c andi r2,r8,1 + 79f0: 1000551e bne r2,zero,7b48 <_realloc_r+0x2ac> + 79f4: 80800017 ldw r2,0(r16) + 79f8: 80afc83a sub r23,r16,r2 + 79fc: b8c00117 ldw r3,4(r23) + 7a00: 00bfff04 movi r2,-4 + 7a04: 1884703a and r2,r3,r2 + 7a08: 30002e26 beq r6,zero,7ac4 <_realloc_r+0x228> + 7a0c: 3240b926 beq r6,r9,7cf4 <_realloc_r+0x458> + 7a10: 98a9883a add r20,r19,r2 + 7a14: 2509883a add r4,r4,r20 + 7a18: d9000015 stw r4,0(sp) + 7a1c: 21c02a16 blt r4,r7,7ac8 <_realloc_r+0x22c> + 7a20: 30800317 ldw r2,12(r6) + 7a24: 30c00217 ldw r3,8(r6) + 7a28: 01400904 movi r5,36 + 7a2c: 99bfff04 addi r6,r19,-4 + 7a30: 18800315 stw r2,12(r3) + 7a34: 10c00215 stw r3,8(r2) + 7a38: b9000317 ldw r4,12(r23) + 7a3c: b8800217 ldw r2,8(r23) + 7a40: b82b883a mov r21,r23 + 7a44: bc000204 addi r16,r23,8 + 7a48: 20800215 stw r2,8(r4) + 7a4c: 11000315 stw r4,12(r2) + 7a50: 2980e436 bltu r5,r6,7de4 <_realloc_r+0x548> + 7a54: 008004c4 movi r2,19 + 7a58: 9009883a mov r4,r18 + 7a5c: 8011883a mov r8,r16 + 7a60: 11800f2e bgeu r2,r6,7aa0 <_realloc_r+0x204> + 7a64: 90800017 ldw r2,0(r18) + 7a68: ba000404 addi r8,r23,16 + 7a6c: 91000204 addi r4,r18,8 + 7a70: b8800215 stw r2,8(r23) + 7a74: 90c00117 ldw r3,4(r18) + 7a78: 008006c4 movi r2,27 + 7a7c: b8c00315 stw r3,12(r23) + 7a80: 1180072e bgeu r2,r6,7aa0 <_realloc_r+0x204> + 7a84: 90c00217 ldw r3,8(r18) + 7a88: ba000604 addi r8,r23,24 + 7a8c: 91000404 addi r4,r18,16 + 7a90: b8c00415 stw r3,16(r23) + 7a94: 90800317 ldw r2,12(r18) + 7a98: b8800515 stw r2,20(r23) + 7a9c: 3140e726 beq r6,r5,7e3c <_realloc_r+0x5a0> + 7aa0: 20800017 ldw r2,0(r4) + 7aa4: dd000017 ldw r20,0(sp) + 7aa8: b80f883a mov r7,r23 + 7aac: 40800015 stw r2,0(r8) + 7ab0: 20c00117 ldw r3,4(r4) + 7ab4: 40c00115 stw r3,4(r8) + 7ab8: 20800217 ldw r2,8(r4) + 7abc: 40800215 stw r2,8(r8) + 7ac0: 003f9706 br 7920 <_realloc_r+0x84> + 7ac4: 98a9883a add r20,r19,r2 + 7ac8: a1c01f16 blt r20,r7,7b48 <_realloc_r+0x2ac> + 7acc: b8c00317 ldw r3,12(r23) + 7ad0: b8800217 ldw r2,8(r23) + 7ad4: 99bfff04 addi r6,r19,-4 + 7ad8: 01400904 movi r5,36 + 7adc: b82b883a mov r21,r23 + 7ae0: 18800215 stw r2,8(r3) + 7ae4: 10c00315 stw r3,12(r2) + 7ae8: bc000204 addi r16,r23,8 + 7aec: 2980c336 bltu r5,r6,7dfc <_realloc_r+0x560> + 7af0: 008004c4 movi r2,19 + 7af4: 9009883a mov r4,r18 + 7af8: 8011883a mov r8,r16 + 7afc: 11800f2e bgeu r2,r6,7b3c <_realloc_r+0x2a0> + 7b00: 90800017 ldw r2,0(r18) + 7b04: ba000404 addi r8,r23,16 + 7b08: 91000204 addi r4,r18,8 + 7b0c: b8800215 stw r2,8(r23) + 7b10: 90c00117 ldw r3,4(r18) + 7b14: 008006c4 movi r2,27 + 7b18: b8c00315 stw r3,12(r23) + 7b1c: 1180072e bgeu r2,r6,7b3c <_realloc_r+0x2a0> + 7b20: 90c00217 ldw r3,8(r18) + 7b24: ba000604 addi r8,r23,24 + 7b28: 91000404 addi r4,r18,16 + 7b2c: b8c00415 stw r3,16(r23) + 7b30: 90800317 ldw r2,12(r18) + 7b34: b8800515 stw r2,20(r23) + 7b38: 3140c726 beq r6,r5,7e58 <_realloc_r+0x5bc> + 7b3c: 20800017 ldw r2,0(r4) + 7b40: b80f883a mov r7,r23 + 7b44: 003fd906 br 7aac <_realloc_r+0x210> + 7b48: 880b883a mov r5,r17 + 7b4c: b009883a mov r4,r22 + 7b50: 00017640 call 1764 <_malloc_r> + 7b54: 1023883a mov r17,r2 + 7b58: 10002526 beq r2,zero,7bf0 <_realloc_r+0x354> + 7b5c: 80800117 ldw r2,4(r16) + 7b60: 00ffff84 movi r3,-2 + 7b64: 893ffe04 addi r4,r17,-8 + 7b68: 10c4703a and r2,r2,r3 + 7b6c: 8085883a add r2,r16,r2 + 7b70: 20809526 beq r4,r2,7dc8 <_realloc_r+0x52c> + 7b74: 99bfff04 addi r6,r19,-4 + 7b78: 01c00904 movi r7,36 + 7b7c: 39804536 bltu r7,r6,7c94 <_realloc_r+0x3f8> + 7b80: 008004c4 movi r2,19 + 7b84: 9009883a mov r4,r18 + 7b88: 880b883a mov r5,r17 + 7b8c: 11800f2e bgeu r2,r6,7bcc <_realloc_r+0x330> + 7b90: 90800017 ldw r2,0(r18) + 7b94: 89400204 addi r5,r17,8 + 7b98: 91000204 addi r4,r18,8 + 7b9c: 88800015 stw r2,0(r17) + 7ba0: 90c00117 ldw r3,4(r18) + 7ba4: 008006c4 movi r2,27 + 7ba8: 88c00115 stw r3,4(r17) + 7bac: 1180072e bgeu r2,r6,7bcc <_realloc_r+0x330> + 7bb0: 90c00217 ldw r3,8(r18) + 7bb4: 89400404 addi r5,r17,16 + 7bb8: 91000404 addi r4,r18,16 + 7bbc: 88c00215 stw r3,8(r17) + 7bc0: 90800317 ldw r2,12(r18) + 7bc4: 88800315 stw r2,12(r17) + 7bc8: 31c09126 beq r6,r7,7e10 <_realloc_r+0x574> + 7bcc: 20800017 ldw r2,0(r4) + 7bd0: 28800015 stw r2,0(r5) + 7bd4: 20c00117 ldw r3,4(r4) + 7bd8: 28c00115 stw r3,4(r5) + 7bdc: 20800217 ldw r2,8(r4) + 7be0: 28800215 stw r2,8(r5) + 7be4: 900b883a mov r5,r18 + 7be8: b009883a mov r4,r22 + 7bec: 0000b7c0 call b7c <_free_r> + 7bf0: b009883a mov r4,r22 + 7bf4: 000ad6c0 call ad6c <__malloc_unlock> + 7bf8: 003f5e06 br 7974 <_realloc_r+0xd8> + 7bfc: 300b883a mov r5,r6 + 7c00: dfc00b17 ldw ra,44(sp) + 7c04: df000a17 ldw fp,40(sp) + 7c08: ddc00917 ldw r23,36(sp) + 7c0c: dd800817 ldw r22,32(sp) + 7c10: dd400717 ldw r21,28(sp) + 7c14: dd000617 ldw r20,24(sp) + 7c18: dcc00517 ldw r19,20(sp) + 7c1c: dc800417 ldw r18,16(sp) + 7c20: dc400317 ldw r17,12(sp) + 7c24: dc000217 ldw r16,8(sp) + 7c28: dec00c04 addi sp,sp,48 + 7c2c: 00017641 jmpi 1764 <_malloc_r> + 7c30: 38800117 ldw r2,4(r7) + 7c34: e54b883a add r5,fp,r21 + 7c38: 31000054 ori r4,r6,1 + 7c3c: 1080004c andi r2,r2,1 + 7c40: 1704b03a or r2,r2,fp + 7c44: 38800115 stw r2,4(r7) + 7c48: 29000115 stw r4,4(r5) + 7c4c: 2987883a add r3,r5,r6 + 7c50: 18800117 ldw r2,4(r3) + 7c54: 29400204 addi r5,r5,8 + 7c58: b009883a mov r4,r22 + 7c5c: 10800054 ori r2,r2,1 + 7c60: 18800115 stw r2,4(r3) + 7c64: 0000b7c0 call b7c <_free_r> + 7c68: 003f3806 br 794c <_realloc_r+0xb0> + 7c6c: 000d883a mov r6,zero + 7c70: 0009883a mov r4,zero + 7c74: 003f5d06 br 79ec <_realloc_r+0x150> + 7c78: 30c00217 ldw r3,8(r6) + 7c7c: 30800317 ldw r2,12(r6) + 7c80: 800f883a mov r7,r16 + 7c84: 84000204 addi r16,r16,8 + 7c88: 10c00215 stw r3,8(r2) + 7c8c: 18800315 stw r2,12(r3) + 7c90: 003f2306 br 7920 <_realloc_r+0x84> + 7c94: 8809883a mov r4,r17 + 7c98: 900b883a mov r5,r18 + 7c9c: 00066b80 call 66b8 + 7ca0: 003fd006 br 7be4 <_realloc_r+0x348> + 7ca4: 30800117 ldw r2,4(r6) + 7ca8: e0c00404 addi r3,fp,16 + 7cac: 1108703a and r4,r2,r4 + 7cb0: 9905883a add r2,r19,r4 + 7cb4: 10ff4d16 blt r2,r3,79ec <_realloc_r+0x150> + 7cb8: 1705c83a sub r2,r2,fp + 7cbc: 870b883a add r5,r16,fp + 7cc0: 10800054 ori r2,r2,1 + 7cc4: 28800115 stw r2,4(r5) + 7cc8: 80c00117 ldw r3,4(r16) + 7ccc: 00800074 movhi r2,1 + 7cd0: 10bae304 addi r2,r2,-5236 + 7cd4: b009883a mov r4,r22 + 7cd8: 18c0004c andi r3,r3,1 + 7cdc: e0c6b03a or r3,fp,r3 + 7ce0: 11400215 stw r5,8(r2) + 7ce4: 80c00115 stw r3,4(r16) + 7ce8: 000ad6c0 call ad6c <__malloc_unlock> + 7cec: 84400204 addi r17,r16,8 + 7cf0: 003f2006 br 7974 <_realloc_r+0xd8> + 7cf4: 98a9883a add r20,r19,r2 + 7cf8: 2509883a add r4,r4,r20 + 7cfc: e0800404 addi r2,fp,16 + 7d00: d9000115 stw r4,4(sp) + 7d04: 20bf7016 blt r4,r2,7ac8 <_realloc_r+0x22c> + 7d08: b8c00317 ldw r3,12(r23) + 7d0c: b8800217 ldw r2,8(r23) + 7d10: 99bfff04 addi r6,r19,-4 + 7d14: 01400904 movi r5,36 + 7d18: 18800215 stw r2,8(r3) + 7d1c: 10c00315 stw r3,12(r2) + 7d20: bc400204 addi r17,r23,8 + 7d24: 29804136 bltu r5,r6,7e2c <_realloc_r+0x590> + 7d28: 008004c4 movi r2,19 + 7d2c: 9009883a mov r4,r18 + 7d30: 880f883a mov r7,r17 + 7d34: 11800f2e bgeu r2,r6,7d74 <_realloc_r+0x4d8> + 7d38: 90800017 ldw r2,0(r18) + 7d3c: b9c00404 addi r7,r23,16 + 7d40: 91000204 addi r4,r18,8 + 7d44: b8800215 stw r2,8(r23) + 7d48: 90c00117 ldw r3,4(r18) + 7d4c: 008006c4 movi r2,27 + 7d50: b8c00315 stw r3,12(r23) + 7d54: 1180072e bgeu r2,r6,7d74 <_realloc_r+0x4d8> + 7d58: 90c00217 ldw r3,8(r18) + 7d5c: b9c00604 addi r7,r23,24 + 7d60: 91000404 addi r4,r18,16 + 7d64: b8c00415 stw r3,16(r23) + 7d68: 90800317 ldw r2,12(r18) + 7d6c: b8800515 stw r2,20(r23) + 7d70: 31404026 beq r6,r5,7e74 <_realloc_r+0x5d8> + 7d74: 20800017 ldw r2,0(r4) + 7d78: 38800015 stw r2,0(r7) + 7d7c: 20c00117 ldw r3,4(r4) + 7d80: 38c00115 stw r3,4(r7) + 7d84: 20800217 ldw r2,8(r4) + 7d88: 38800215 stw r2,8(r7) + 7d8c: d8c00117 ldw r3,4(sp) + 7d90: bf0b883a add r5,r23,fp + 7d94: b009883a mov r4,r22 + 7d98: 1f05c83a sub r2,r3,fp + 7d9c: 10800054 ori r2,r2,1 + 7da0: 28800115 stw r2,4(r5) + 7da4: b8c00117 ldw r3,4(r23) + 7da8: 00800074 movhi r2,1 + 7dac: 10bae304 addi r2,r2,-5236 + 7db0: 11400215 stw r5,8(r2) + 7db4: 18c0004c andi r3,r3,1 + 7db8: e0c6b03a or r3,fp,r3 + 7dbc: b8c00115 stw r3,4(r23) + 7dc0: 000ad6c0 call ad6c <__malloc_unlock> + 7dc4: 003eeb06 br 7974 <_realloc_r+0xd8> + 7dc8: 20800117 ldw r2,4(r4) + 7dcc: 00ffff04 movi r3,-4 + 7dd0: 800f883a mov r7,r16 + 7dd4: 10c4703a and r2,r2,r3 + 7dd8: 98a9883a add r20,r19,r2 + 7ddc: 84000204 addi r16,r16,8 + 7de0: 003ecf06 br 7920 <_realloc_r+0x84> + 7de4: 900b883a mov r5,r18 + 7de8: 8009883a mov r4,r16 + 7dec: 00066b80 call 66b8 + 7df0: dd000017 ldw r20,0(sp) + 7df4: b80f883a mov r7,r23 + 7df8: 003ec906 br 7920 <_realloc_r+0x84> + 7dfc: 900b883a mov r5,r18 + 7e00: 8009883a mov r4,r16 + 7e04: 00066b80 call 66b8 + 7e08: b80f883a mov r7,r23 + 7e0c: 003ec406 br 7920 <_realloc_r+0x84> + 7e10: 90c00417 ldw r3,16(r18) + 7e14: 89400604 addi r5,r17,24 + 7e18: 91000604 addi r4,r18,24 + 7e1c: 88c00415 stw r3,16(r17) + 7e20: 90800517 ldw r2,20(r18) + 7e24: 88800515 stw r2,20(r17) + 7e28: 003f6806 br 7bcc <_realloc_r+0x330> + 7e2c: 900b883a mov r5,r18 + 7e30: 8809883a mov r4,r17 + 7e34: 00066b80 call 66b8 + 7e38: 003fd406 br 7d8c <_realloc_r+0x4f0> + 7e3c: 90c00417 ldw r3,16(r18) + 7e40: 91000604 addi r4,r18,24 + 7e44: ba000804 addi r8,r23,32 + 7e48: b8c00615 stw r3,24(r23) + 7e4c: 90800517 ldw r2,20(r18) + 7e50: b8800715 stw r2,28(r23) + 7e54: 003f1206 br 7aa0 <_realloc_r+0x204> + 7e58: 90c00417 ldw r3,16(r18) + 7e5c: 91000604 addi r4,r18,24 + 7e60: ba000804 addi r8,r23,32 + 7e64: b8c00615 stw r3,24(r23) + 7e68: 90800517 ldw r2,20(r18) + 7e6c: b8800715 stw r2,28(r23) + 7e70: 003f3206 br 7b3c <_realloc_r+0x2a0> + 7e74: 90c00417 ldw r3,16(r18) + 7e78: 91000604 addi r4,r18,24 + 7e7c: b9c00804 addi r7,r23,32 + 7e80: b8c00615 stw r3,24(r23) + 7e84: 90800517 ldw r2,20(r18) + 7e88: b8800715 stw r2,28(r23) + 7e8c: 003fb906 br 7d74 <_realloc_r+0x4d8> + +00007e90 <__isinfd>: + 7e90: 200d883a mov r6,r4 + 7e94: 0109c83a sub r4,zero,r4 + 7e98: 2188b03a or r4,r4,r6 + 7e9c: 2008d7fa srli r4,r4,31 + 7ea0: 00a00034 movhi r2,32768 + 7ea4: 10bfffc4 addi r2,r2,-1 + 7ea8: 1144703a and r2,r2,r5 + 7eac: 2088b03a or r4,r4,r2 + 7eb0: 009ffc34 movhi r2,32752 + 7eb4: 1105c83a sub r2,r2,r4 + 7eb8: 0087c83a sub r3,zero,r2 + 7ebc: 10c4b03a or r2,r2,r3 + 7ec0: 1004d7fa srli r2,r2,31 + 7ec4: 00c00044 movi r3,1 + 7ec8: 1885c83a sub r2,r3,r2 + 7ecc: f800283a ret + +00007ed0 <__isnand>: + 7ed0: 200d883a mov r6,r4 + 7ed4: 0109c83a sub r4,zero,r4 + 7ed8: 2188b03a or r4,r4,r6 + 7edc: 2008d7fa srli r4,r4,31 + 7ee0: 00a00034 movhi r2,32768 + 7ee4: 10bfffc4 addi r2,r2,-1 + 7ee8: 1144703a and r2,r2,r5 + 7eec: 2088b03a or r4,r4,r2 + 7ef0: 009ffc34 movhi r2,32752 + 7ef4: 1105c83a sub r2,r2,r4 + 7ef8: 1004d7fa srli r2,r2,31 + 7efc: f800283a ret + +00007f00 : + 7f00: 2144b03a or r2,r4,r5 + 7f04: 108000cc andi r2,r2,3 + 7f08: 10001d1e bne r2,zero,7f80 + 7f0c: 200f883a mov r7,r4 + 7f10: 28800017 ldw r2,0(r5) + 7f14: 21000017 ldw r4,0(r4) + 7f18: 280d883a mov r6,r5 + 7f1c: 2080161e bne r4,r2,7f78 + 7f20: 023fbff4 movhi r8,65279 + 7f24: 423fbfc4 addi r8,r8,-257 + 7f28: 2207883a add r3,r4,r8 + 7f2c: 01602074 movhi r5,32897 + 7f30: 29602004 addi r5,r5,-32640 + 7f34: 1946703a and r3,r3,r5 + 7f38: 0104303a nor r2,zero,r4 + 7f3c: 10c4703a and r2,r2,r3 + 7f40: 10001c1e bne r2,zero,7fb4 + 7f44: 4013883a mov r9,r8 + 7f48: 2811883a mov r8,r5 + 7f4c: 00000106 br 7f54 + 7f50: 1800181e bne r3,zero,7fb4 + 7f54: 39c00104 addi r7,r7,4 + 7f58: 39000017 ldw r4,0(r7) + 7f5c: 31800104 addi r6,r6,4 + 7f60: 31400017 ldw r5,0(r6) + 7f64: 2245883a add r2,r4,r9 + 7f68: 1204703a and r2,r2,r8 + 7f6c: 0106303a nor r3,zero,r4 + 7f70: 1886703a and r3,r3,r2 + 7f74: 217ff626 beq r4,r5,7f50 + 7f78: 3809883a mov r4,r7 + 7f7c: 300b883a mov r5,r6 + 7f80: 20c00007 ldb r3,0(r4) + 7f84: 1800051e bne r3,zero,7f9c + 7f88: 00000606 br 7fa4 + 7f8c: 21000044 addi r4,r4,1 + 7f90: 20c00007 ldb r3,0(r4) + 7f94: 29400044 addi r5,r5,1 + 7f98: 18000226 beq r3,zero,7fa4 + 7f9c: 28800007 ldb r2,0(r5) + 7fa0: 18bffa26 beq r3,r2,7f8c + 7fa4: 20c00003 ldbu r3,0(r4) + 7fa8: 28800003 ldbu r2,0(r5) + 7fac: 1885c83a sub r2,r3,r2 + 7fb0: f800283a ret + 7fb4: 0005883a mov r2,zero + 7fb8: f800283a ret + +00007fbc <_calloc_r>: + 7fbc: defffe04 addi sp,sp,-8 + 7fc0: dc400015 stw r17,0(sp) + 7fc4: 2023883a mov r17,r4 + 7fc8: 2809883a mov r4,r5 + 7fcc: 300b883a mov r5,r6 + 7fd0: dfc00115 stw ra,4(sp) + 7fd4: 0009fc80 call 9fc8 <__mulsi3> + 7fd8: 100b883a mov r5,r2 + 7fdc: 8809883a mov r4,r17 + 7fe0: 00017640 call 1764 <_malloc_r> + 7fe4: 1023883a mov r17,r2 + 7fe8: 01c00904 movi r7,36 + 7fec: 10000d26 beq r2,zero,8024 <_calloc_r+0x68> + 7ff0: 10ffff17 ldw r3,-4(r2) + 7ff4: 1009883a mov r4,r2 + 7ff8: 00bfff04 movi r2,-4 + 7ffc: 1886703a and r3,r3,r2 + 8000: 1887883a add r3,r3,r2 + 8004: 180d883a mov r6,r3 + 8008: 000b883a mov r5,zero + 800c: 38c01736 bltu r7,r3,806c <_calloc_r+0xb0> + 8010: 008004c4 movi r2,19 + 8014: 10c00836 bltu r2,r3,8038 <_calloc_r+0x7c> + 8018: 20000215 stw zero,8(r4) + 801c: 20000015 stw zero,0(r4) + 8020: 20000115 stw zero,4(r4) + 8024: 8805883a mov r2,r17 + 8028: dfc00117 ldw ra,4(sp) + 802c: dc400017 ldw r17,0(sp) + 8030: dec00204 addi sp,sp,8 + 8034: f800283a ret + 8038: 008006c4 movi r2,27 + 803c: 88000015 stw zero,0(r17) + 8040: 88000115 stw zero,4(r17) + 8044: 89000204 addi r4,r17,8 + 8048: 10fff32e bgeu r2,r3,8018 <_calloc_r+0x5c> + 804c: 88000215 stw zero,8(r17) + 8050: 88000315 stw zero,12(r17) + 8054: 89000404 addi r4,r17,16 + 8058: 19ffef1e bne r3,r7,8018 <_calloc_r+0x5c> + 805c: 89000604 addi r4,r17,24 + 8060: 88000415 stw zero,16(r17) + 8064: 88000515 stw zero,20(r17) + 8068: 003feb06 br 8018 <_calloc_r+0x5c> + 806c: 0001ea40 call 1ea4 + 8070: 8805883a mov r2,r17 + 8074: dfc00117 ldw ra,4(sp) + 8078: dc400017 ldw r17,0(sp) + 807c: dec00204 addi sp,sp,8 + 8080: f800283a ret + +00008084 <__udivdi3>: + 8084: defff104 addi sp,sp,-60 + 8088: 0015883a mov r10,zero + 808c: 2005883a mov r2,r4 + 8090: 3011883a mov r8,r6 + 8094: df000d15 stw fp,52(sp) + 8098: dd400a15 stw r21,40(sp) + 809c: dcc00815 stw r19,32(sp) + 80a0: dfc00e15 stw ra,56(sp) + 80a4: ddc00c15 stw r23,48(sp) + 80a8: dd800b15 stw r22,44(sp) + 80ac: dd000915 stw r20,36(sp) + 80b0: dc800715 stw r18,28(sp) + 80b4: dc400615 stw r17,24(sp) + 80b8: dc000515 stw r16,20(sp) + 80bc: da800315 stw r10,12(sp) + 80c0: 4027883a mov r19,r8 + 80c4: 1039883a mov fp,r2 + 80c8: 282b883a mov r21,r5 + 80cc: da800415 stw r10,16(sp) + 80d0: 3800401e bne r7,zero,81d4 <__udivdi3+0x150> + 80d4: 2a006536 bltu r5,r8,826c <__udivdi3+0x1e8> + 80d8: 4000b526 beq r8,zero,83b0 <__udivdi3+0x32c> + 80dc: 00bfffd4 movui r2,65535 + 80e0: 14c0ad36 bltu r2,r19,8398 <__udivdi3+0x314> + 80e4: 00803fc4 movi r2,255 + 80e8: 14c15e36 bltu r2,r19,8664 <__udivdi3+0x5e0> + 80ec: 000b883a mov r5,zero + 80f0: 0005883a mov r2,zero + 80f4: 9884d83a srl r2,r19,r2 + 80f8: 01000074 movhi r4,1 + 80fc: 2138f204 addi r4,r4,-7224 + 8100: 01800804 movi r6,32 + 8104: 1105883a add r2,r2,r4 + 8108: 10c00003 ldbu r3,0(r2) + 810c: 28c7883a add r3,r5,r3 + 8110: 30e9c83a sub r20,r6,r3 + 8114: a0010a1e bne r20,zero,8540 <__udivdi3+0x4bc> + 8118: 982ed43a srli r23,r19,16 + 811c: acebc83a sub r21,r21,r19 + 8120: 9dbfffcc andi r22,r19,65535 + 8124: 05000044 movi r20,1 + 8128: a809883a mov r4,r21 + 812c: b80b883a mov r5,r23 + 8130: 0009fb80 call 9fb8 <__udivsi3> + 8134: 100b883a mov r5,r2 + 8138: b009883a mov r4,r22 + 813c: 1021883a mov r16,r2 + 8140: 0009fc80 call 9fc8 <__mulsi3> + 8144: a809883a mov r4,r21 + 8148: b80b883a mov r5,r23 + 814c: 1023883a mov r17,r2 + 8150: 0009fc00 call 9fc0 <__umodsi3> + 8154: 1004943a slli r2,r2,16 + 8158: e006d43a srli r3,fp,16 + 815c: 10c4b03a or r2,r2,r3 + 8160: 1440042e bgeu r2,r17,8174 <__udivdi3+0xf0> + 8164: 14c5883a add r2,r2,r19 + 8168: 843fffc4 addi r16,r16,-1 + 816c: 14c00136 bltu r2,r19,8174 <__udivdi3+0xf0> + 8170: 14415c36 bltu r2,r17,86e4 <__udivdi3+0x660> + 8174: 1463c83a sub r17,r2,r17 + 8178: 8809883a mov r4,r17 + 817c: b80b883a mov r5,r23 + 8180: 0009fb80 call 9fb8 <__udivsi3> + 8184: 100b883a mov r5,r2 + 8188: b009883a mov r4,r22 + 818c: 102b883a mov r21,r2 + 8190: 0009fc80 call 9fc8 <__mulsi3> + 8194: 8809883a mov r4,r17 + 8198: b80b883a mov r5,r23 + 819c: 1025883a mov r18,r2 + 81a0: 0009fc00 call 9fc0 <__umodsi3> + 81a4: 1004943a slli r2,r2,16 + 81a8: e0ffffcc andi r3,fp,65535 + 81ac: 10c4b03a or r2,r2,r3 + 81b0: 1480042e bgeu r2,r18,81c4 <__udivdi3+0x140> + 81b4: 9885883a add r2,r19,r2 + 81b8: ad7fffc4 addi r21,r21,-1 + 81bc: 14c00136 bltu r2,r19,81c4 <__udivdi3+0x140> + 81c0: 14813c36 bltu r2,r18,86b4 <__udivdi3+0x630> + 81c4: 8004943a slli r2,r16,16 + 81c8: a009883a mov r4,r20 + 81cc: a884b03a or r2,r21,r2 + 81d0: 00001506 br 8228 <__udivdi3+0x1a4> + 81d4: 380d883a mov r6,r7 + 81d8: 29c06c36 bltu r5,r7,838c <__udivdi3+0x308> + 81dc: 00bfffd4 movui r2,65535 + 81e0: 11c06436 bltu r2,r7,8374 <__udivdi3+0x2f0> + 81e4: 00803fc4 movi r2,255 + 81e8: 11c11836 bltu r2,r7,864c <__udivdi3+0x5c8> + 81ec: 000b883a mov r5,zero + 81f0: 0005883a mov r2,zero + 81f4: 3084d83a srl r2,r6,r2 + 81f8: 01000074 movhi r4,1 + 81fc: 2138f204 addi r4,r4,-7224 + 8200: 01c00804 movi r7,32 + 8204: 1105883a add r2,r2,r4 + 8208: 10c00003 ldbu r3,0(r2) + 820c: 28c7883a add r3,r5,r3 + 8210: 38edc83a sub r22,r7,r3 + 8214: b000731e bne r22,zero,83e4 <__udivdi3+0x360> + 8218: 35400136 bltu r6,r21,8220 <__udivdi3+0x19c> + 821c: e4c05b36 bltu fp,r19,838c <__udivdi3+0x308> + 8220: 00800044 movi r2,1 + 8224: 0009883a mov r4,zero + 8228: d8800315 stw r2,12(sp) + 822c: d9400317 ldw r5,12(sp) + 8230: 2007883a mov r3,r4 + 8234: d9000415 stw r4,16(sp) + 8238: 2805883a mov r2,r5 + 823c: dfc00e17 ldw ra,56(sp) + 8240: df000d17 ldw fp,52(sp) + 8244: ddc00c17 ldw r23,48(sp) + 8248: dd800b17 ldw r22,44(sp) + 824c: dd400a17 ldw r21,40(sp) + 8250: dd000917 ldw r20,36(sp) + 8254: dcc00817 ldw r19,32(sp) + 8258: dc800717 ldw r18,28(sp) + 825c: dc400617 ldw r17,24(sp) + 8260: dc000517 ldw r16,20(sp) + 8264: dec00f04 addi sp,sp,60 + 8268: f800283a ret + 826c: 00bfffd4 movui r2,65535 + 8270: 12005636 bltu r2,r8,83cc <__udivdi3+0x348> + 8274: 00803fc4 movi r2,255 + 8278: 12010036 bltu r2,r8,867c <__udivdi3+0x5f8> + 827c: 000b883a mov r5,zero + 8280: 0005883a mov r2,zero + 8284: 9884d83a srl r2,r19,r2 + 8288: 01000074 movhi r4,1 + 828c: 2138f204 addi r4,r4,-7224 + 8290: 01800804 movi r6,32 + 8294: 1105883a add r2,r2,r4 + 8298: 10c00003 ldbu r3,0(r2) + 829c: 28c7883a add r3,r5,r3 + 82a0: 30cbc83a sub r5,r6,r3 + 82a4: 28000626 beq r5,zero,82c0 <__udivdi3+0x23c> + 82a8: 3145c83a sub r2,r6,r5 + 82ac: e084d83a srl r2,fp,r2 + 82b0: a946983a sll r3,r21,r5 + 82b4: e178983a sll fp,fp,r5 + 82b8: 9966983a sll r19,r19,r5 + 82bc: 18aab03a or r21,r3,r2 + 82c0: 982ed43a srli r23,r19,16 + 82c4: a809883a mov r4,r21 + 82c8: 9cbfffcc andi r18,r19,65535 + 82cc: b80b883a mov r5,r23 + 82d0: 0009fb80 call 9fb8 <__udivsi3> + 82d4: 100b883a mov r5,r2 + 82d8: 9009883a mov r4,r18 + 82dc: 1021883a mov r16,r2 + 82e0: 0009fc80 call 9fc8 <__mulsi3> + 82e4: a809883a mov r4,r21 + 82e8: b80b883a mov r5,r23 + 82ec: 1023883a mov r17,r2 + 82f0: 0009fc00 call 9fc0 <__umodsi3> + 82f4: 1004943a slli r2,r2,16 + 82f8: e006d43a srli r3,fp,16 + 82fc: 10c4b03a or r2,r2,r3 + 8300: 1440042e bgeu r2,r17,8314 <__udivdi3+0x290> + 8304: 14c5883a add r2,r2,r19 + 8308: 843fffc4 addi r16,r16,-1 + 830c: 14c00136 bltu r2,r19,8314 <__udivdi3+0x290> + 8310: 1440ea36 bltu r2,r17,86bc <__udivdi3+0x638> + 8314: 1463c83a sub r17,r2,r17 + 8318: 8809883a mov r4,r17 + 831c: b80b883a mov r5,r23 + 8320: 0009fb80 call 9fb8 <__udivsi3> + 8324: 100b883a mov r5,r2 + 8328: 9009883a mov r4,r18 + 832c: 102b883a mov r21,r2 + 8330: 0009fc80 call 9fc8 <__mulsi3> + 8334: 8809883a mov r4,r17 + 8338: b80b883a mov r5,r23 + 833c: 1025883a mov r18,r2 + 8340: 0009fc00 call 9fc0 <__umodsi3> + 8344: 1004943a slli r2,r2,16 + 8348: e0ffffcc andi r3,fp,65535 + 834c: 10c4b03a or r2,r2,r3 + 8350: 1480042e bgeu r2,r18,8364 <__udivdi3+0x2e0> + 8354: 9885883a add r2,r19,r2 + 8358: ad7fffc4 addi r21,r21,-1 + 835c: 14c00136 bltu r2,r19,8364 <__udivdi3+0x2e0> + 8360: 1480d936 bltu r2,r18,86c8 <__udivdi3+0x644> + 8364: 8004943a slli r2,r16,16 + 8368: 0009883a mov r4,zero + 836c: a884b03a or r2,r21,r2 + 8370: 003fad06 br 8228 <__udivdi3+0x1a4> + 8374: 00804034 movhi r2,256 + 8378: 10bfffc4 addi r2,r2,-1 + 837c: 11c0b636 bltu r2,r7,8658 <__udivdi3+0x5d4> + 8380: 01400404 movi r5,16 + 8384: 2805883a mov r2,r5 + 8388: 003f9a06 br 81f4 <__udivdi3+0x170> + 838c: 0005883a mov r2,zero + 8390: 0009883a mov r4,zero + 8394: 003fa406 br 8228 <__udivdi3+0x1a4> + 8398: 00804034 movhi r2,256 + 839c: 10bfffc4 addi r2,r2,-1 + 83a0: 14c0b336 bltu r2,r19,8670 <__udivdi3+0x5ec> + 83a4: 01400404 movi r5,16 + 83a8: 2805883a mov r2,r5 + 83ac: 003f5106 br 80f4 <__udivdi3+0x70> + 83b0: 01000044 movi r4,1 + 83b4: 000b883a mov r5,zero + 83b8: 0009fb80 call 9fb8 <__udivsi3> + 83bc: 1027883a mov r19,r2 + 83c0: 00bfffd4 movui r2,65535 + 83c4: 14fff436 bltu r2,r19,8398 <__udivdi3+0x314> + 83c8: 003f4606 br 80e4 <__udivdi3+0x60> + 83cc: 00804034 movhi r2,256 + 83d0: 10bfffc4 addi r2,r2,-1 + 83d4: 1200ac36 bltu r2,r8,8688 <__udivdi3+0x604> + 83d8: 01400404 movi r5,16 + 83dc: 2805883a mov r2,r5 + 83e0: 003fa806 br 8284 <__udivdi3+0x200> + 83e4: 3d85c83a sub r2,r7,r22 + 83e8: 3588983a sll r4,r6,r22 + 83ec: 9886d83a srl r3,r19,r2 + 83f0: a8a2d83a srl r17,r21,r2 + 83f4: e084d83a srl r2,fp,r2 + 83f8: 20eeb03a or r23,r4,r3 + 83fc: b824d43a srli r18,r23,16 + 8400: ad86983a sll r3,r21,r22 + 8404: 8809883a mov r4,r17 + 8408: 900b883a mov r5,r18 + 840c: 1886b03a or r3,r3,r2 + 8410: d8c00115 stw r3,4(sp) + 8414: bc3fffcc andi r16,r23,65535 + 8418: 0009fb80 call 9fb8 <__udivsi3> + 841c: 100b883a mov r5,r2 + 8420: 8009883a mov r4,r16 + 8424: 1029883a mov r20,r2 + 8428: 0009fc80 call 9fc8 <__mulsi3> + 842c: 900b883a mov r5,r18 + 8430: 8809883a mov r4,r17 + 8434: 102b883a mov r21,r2 + 8438: 0009fc00 call 9fc0 <__umodsi3> + 843c: d9400117 ldw r5,4(sp) + 8440: 1004943a slli r2,r2,16 + 8444: 9da6983a sll r19,r19,r22 + 8448: 2806d43a srli r3,r5,16 + 844c: 10c4b03a or r2,r2,r3 + 8450: 1540032e bgeu r2,r21,8460 <__udivdi3+0x3dc> + 8454: 15c5883a add r2,r2,r23 + 8458: a53fffc4 addi r20,r20,-1 + 845c: 15c0912e bgeu r2,r23,86a4 <__udivdi3+0x620> + 8460: 1563c83a sub r17,r2,r21 + 8464: 8809883a mov r4,r17 + 8468: 900b883a mov r5,r18 + 846c: 0009fb80 call 9fb8 <__udivsi3> + 8470: 100b883a mov r5,r2 + 8474: 8009883a mov r4,r16 + 8478: 102b883a mov r21,r2 + 847c: 0009fc80 call 9fc8 <__mulsi3> + 8480: 8809883a mov r4,r17 + 8484: 900b883a mov r5,r18 + 8488: 1021883a mov r16,r2 + 848c: 0009fc00 call 9fc0 <__umodsi3> + 8490: da800117 ldw r10,4(sp) + 8494: 1004943a slli r2,r2,16 + 8498: 50ffffcc andi r3,r10,65535 + 849c: 10c6b03a or r3,r2,r3 + 84a0: 1c00032e bgeu r3,r16,84b0 <__udivdi3+0x42c> + 84a4: 1dc7883a add r3,r3,r23 + 84a8: ad7fffc4 addi r21,r21,-1 + 84ac: 1dc0792e bgeu r3,r23,8694 <__udivdi3+0x610> + 84b0: a004943a slli r2,r20,16 + 84b4: 982ed43a srli r23,r19,16 + 84b8: 9cffffcc andi r19,r19,65535 + 84bc: a8a4b03a or r18,r21,r2 + 84c0: 947fffcc andi r17,r18,65535 + 84c4: 902ad43a srli r21,r18,16 + 84c8: 8809883a mov r4,r17 + 84cc: 980b883a mov r5,r19 + 84d0: 1c21c83a sub r16,r3,r16 + 84d4: 0009fc80 call 9fc8 <__mulsi3> + 84d8: 8809883a mov r4,r17 + 84dc: b80b883a mov r5,r23 + 84e0: 1029883a mov r20,r2 + 84e4: 0009fc80 call 9fc8 <__mulsi3> + 84e8: 980b883a mov r5,r19 + 84ec: a809883a mov r4,r21 + 84f0: 1023883a mov r17,r2 + 84f4: 0009fc80 call 9fc8 <__mulsi3> + 84f8: a809883a mov r4,r21 + 84fc: b80b883a mov r5,r23 + 8500: 1027883a mov r19,r2 + 8504: 0009fc80 call 9fc8 <__mulsi3> + 8508: 1009883a mov r4,r2 + 850c: a004d43a srli r2,r20,16 + 8510: 8ce3883a add r17,r17,r19 + 8514: 1447883a add r3,r2,r17 + 8518: 1cc0022e bgeu r3,r19,8524 <__udivdi3+0x4a0> + 851c: 00800074 movhi r2,1 + 8520: 2089883a add r4,r4,r2 + 8524: 1804d43a srli r2,r3,16 + 8528: 2085883a add r2,r4,r2 + 852c: 80804436 bltu r16,r2,8640 <__udivdi3+0x5bc> + 8530: 80803e26 beq r16,r2,862c <__udivdi3+0x5a8> + 8534: 9005883a mov r2,r18 + 8538: 0009883a mov r4,zero + 853c: 003f3a06 br 8228 <__udivdi3+0x1a4> + 8540: 9d26983a sll r19,r19,r20 + 8544: 3505c83a sub r2,r6,r20 + 8548: a8a2d83a srl r17,r21,r2 + 854c: 982ed43a srli r23,r19,16 + 8550: e084d83a srl r2,fp,r2 + 8554: ad06983a sll r3,r21,r20 + 8558: 8809883a mov r4,r17 + 855c: b80b883a mov r5,r23 + 8560: 1886b03a or r3,r3,r2 + 8564: d8c00015 stw r3,0(sp) + 8568: 9dbfffcc andi r22,r19,65535 + 856c: 0009fb80 call 9fb8 <__udivsi3> + 8570: 100b883a mov r5,r2 + 8574: b009883a mov r4,r22 + 8578: d8800215 stw r2,8(sp) + 857c: 0009fc80 call 9fc8 <__mulsi3> + 8580: 8809883a mov r4,r17 + 8584: b80b883a mov r5,r23 + 8588: 102b883a mov r21,r2 + 858c: 0009fc00 call 9fc0 <__umodsi3> + 8590: d9000017 ldw r4,0(sp) + 8594: 1004943a slli r2,r2,16 + 8598: 2006d43a srli r3,r4,16 + 859c: 10c4b03a or r2,r2,r3 + 85a0: 1540052e bgeu r2,r21,85b8 <__udivdi3+0x534> + 85a4: d9400217 ldw r5,8(sp) + 85a8: 14c5883a add r2,r2,r19 + 85ac: 297fffc4 addi r5,r5,-1 + 85b0: d9400215 stw r5,8(sp) + 85b4: 14c0462e bgeu r2,r19,86d0 <__udivdi3+0x64c> + 85b8: 1563c83a sub r17,r2,r21 + 85bc: 8809883a mov r4,r17 + 85c0: b80b883a mov r5,r23 + 85c4: 0009fb80 call 9fb8 <__udivsi3> + 85c8: 100b883a mov r5,r2 + 85cc: b009883a mov r4,r22 + 85d0: 1025883a mov r18,r2 + 85d4: 0009fc80 call 9fc8 <__mulsi3> + 85d8: 8809883a mov r4,r17 + 85dc: b80b883a mov r5,r23 + 85e0: 1021883a mov r16,r2 + 85e4: 0009fc00 call 9fc0 <__umodsi3> + 85e8: da800017 ldw r10,0(sp) + 85ec: 1004943a slli r2,r2,16 + 85f0: 50ffffcc andi r3,r10,65535 + 85f4: 10c6b03a or r3,r2,r3 + 85f8: 1c00062e bgeu r3,r16,8614 <__udivdi3+0x590> + 85fc: 1cc7883a add r3,r3,r19 + 8600: 94bfffc4 addi r18,r18,-1 + 8604: 1cc00336 bltu r3,r19,8614 <__udivdi3+0x590> + 8608: 1c00022e bgeu r3,r16,8614 <__udivdi3+0x590> + 860c: 94bfffc4 addi r18,r18,-1 + 8610: 1cc7883a add r3,r3,r19 + 8614: d9000217 ldw r4,8(sp) + 8618: e538983a sll fp,fp,r20 + 861c: 1c2bc83a sub r21,r3,r16 + 8620: 2004943a slli r2,r4,16 + 8624: 90a8b03a or r20,r18,r2 + 8628: 003ebf06 br 8128 <__udivdi3+0xa4> + 862c: 1804943a slli r2,r3,16 + 8630: e588983a sll r4,fp,r22 + 8634: a0ffffcc andi r3,r20,65535 + 8638: 10c5883a add r2,r2,r3 + 863c: 20bfbd2e bgeu r4,r2,8534 <__udivdi3+0x4b0> + 8640: 90bfffc4 addi r2,r18,-1 + 8644: 0009883a mov r4,zero + 8648: 003ef706 br 8228 <__udivdi3+0x1a4> + 864c: 01400204 movi r5,8 + 8650: 2805883a mov r2,r5 + 8654: 003ee706 br 81f4 <__udivdi3+0x170> + 8658: 01400604 movi r5,24 + 865c: 2805883a mov r2,r5 + 8660: 003ee406 br 81f4 <__udivdi3+0x170> + 8664: 01400204 movi r5,8 + 8668: 2805883a mov r2,r5 + 866c: 003ea106 br 80f4 <__udivdi3+0x70> + 8670: 01400604 movi r5,24 + 8674: 2805883a mov r2,r5 + 8678: 003e9e06 br 80f4 <__udivdi3+0x70> + 867c: 01400204 movi r5,8 + 8680: 2805883a mov r2,r5 + 8684: 003eff06 br 8284 <__udivdi3+0x200> + 8688: 01400604 movi r5,24 + 868c: 2805883a mov r2,r5 + 8690: 003efc06 br 8284 <__udivdi3+0x200> + 8694: 1c3f862e bgeu r3,r16,84b0 <__udivdi3+0x42c> + 8698: 1dc7883a add r3,r3,r23 + 869c: ad7fffc4 addi r21,r21,-1 + 86a0: 003f8306 br 84b0 <__udivdi3+0x42c> + 86a4: 157f6e2e bgeu r2,r21,8460 <__udivdi3+0x3dc> + 86a8: a53fffc4 addi r20,r20,-1 + 86ac: 15c5883a add r2,r2,r23 + 86b0: 003f6b06 br 8460 <__udivdi3+0x3dc> + 86b4: ad7fffc4 addi r21,r21,-1 + 86b8: 003ec206 br 81c4 <__udivdi3+0x140> + 86bc: 843fffc4 addi r16,r16,-1 + 86c0: 14c5883a add r2,r2,r19 + 86c4: 003f1306 br 8314 <__udivdi3+0x290> + 86c8: ad7fffc4 addi r21,r21,-1 + 86cc: 003f2506 br 8364 <__udivdi3+0x2e0> + 86d0: 157fb92e bgeu r2,r21,85b8 <__udivdi3+0x534> + 86d4: 297fffc4 addi r5,r5,-1 + 86d8: 14c5883a add r2,r2,r19 + 86dc: d9400215 stw r5,8(sp) + 86e0: 003fb506 br 85b8 <__udivdi3+0x534> + 86e4: 843fffc4 addi r16,r16,-1 + 86e8: 14c5883a add r2,r2,r19 + 86ec: 003ea106 br 8174 <__udivdi3+0xf0> + +000086f0 <__umoddi3>: + 86f0: defff004 addi sp,sp,-64 + 86f4: 3011883a mov r8,r6 + 86f8: 000d883a mov r6,zero + 86fc: dd400b15 stw r21,44(sp) + 8700: dcc00915 stw r19,36(sp) + 8704: dc000615 stw r16,24(sp) + 8708: dfc00f15 stw ra,60(sp) + 870c: df000e15 stw fp,56(sp) + 8710: ddc00d15 stw r23,52(sp) + 8714: dd800c15 stw r22,48(sp) + 8718: dd000a15 stw r20,40(sp) + 871c: dc800815 stw r18,32(sp) + 8720: dc400715 stw r17,28(sp) + 8724: 2817883a mov r11,r5 + 8728: d9800415 stw r6,16(sp) + 872c: 4027883a mov r19,r8 + 8730: d9800515 stw r6,20(sp) + 8734: 2021883a mov r16,r4 + 8738: 282b883a mov r21,r5 + 873c: 38002c1e bne r7,zero,87f0 <__umoddi3+0x100> + 8740: 2a005636 bltu r5,r8,889c <__umoddi3+0x1ac> + 8744: 40009a26 beq r8,zero,89b0 <__umoddi3+0x2c0> + 8748: 00bfffd4 movui r2,65535 + 874c: 14c09236 bltu r2,r19,8998 <__umoddi3+0x2a8> + 8750: 00803fc4 movi r2,255 + 8754: 14c15c36 bltu r2,r19,8cc8 <__umoddi3+0x5d8> + 8758: 000b883a mov r5,zero + 875c: 0005883a mov r2,zero + 8760: 9884d83a srl r2,r19,r2 + 8764: 01000074 movhi r4,1 + 8768: 2138f204 addi r4,r4,-7224 + 876c: 01800804 movi r6,32 + 8770: 1105883a add r2,r2,r4 + 8774: 10c00003 ldbu r3,0(r2) + 8778: 28c7883a add r3,r5,r3 + 877c: 30e5c83a sub r18,r6,r3 + 8780: 9000a41e bne r18,zero,8a14 <__umoddi3+0x324> + 8784: 982ed43a srli r23,r19,16 + 8788: acebc83a sub r21,r21,r19 + 878c: 9d3fffcc andi r20,r19,65535 + 8790: 002d883a mov r22,zero + 8794: a809883a mov r4,r21 + 8798: b80b883a mov r5,r23 + 879c: 0009fb80 call 9fb8 <__udivsi3> + 87a0: 100b883a mov r5,r2 + 87a4: a009883a mov r4,r20 + 87a8: 0009fc80 call 9fc8 <__mulsi3> + 87ac: a809883a mov r4,r21 + 87b0: b80b883a mov r5,r23 + 87b4: 1023883a mov r17,r2 + 87b8: 0009fc00 call 9fc0 <__umodsi3> + 87bc: 1004943a slli r2,r2,16 + 87c0: 8006d43a srli r3,r16,16 + 87c4: 10c4b03a or r2,r2,r3 + 87c8: 1440032e bgeu r2,r17,87d8 <__umoddi3+0xe8> + 87cc: 14c5883a add r2,r2,r19 + 87d0: 14c00136 bltu r2,r19,87d8 <__umoddi3+0xe8> + 87d4: 14415836 bltu r2,r17,8d38 <__umoddi3+0x648> + 87d8: 1463c83a sub r17,r2,r17 + 87dc: 8809883a mov r4,r17 + 87e0: b80b883a mov r5,r23 + 87e4: 0009fb80 call 9fb8 <__udivsi3> + 87e8: a009883a mov r4,r20 + 87ec: 00005306 br 893c <__umoddi3+0x24c> + 87f0: 380d883a mov r6,r7 + 87f4: 29c0132e bgeu r5,r7,8844 <__umoddi3+0x154> + 87f8: d9000415 stw r4,16(sp) + 87fc: d9400515 stw r5,20(sp) + 8800: d9400417 ldw r5,16(sp) + 8804: 5813883a mov r9,r11 + 8808: 2811883a mov r8,r5 + 880c: 4005883a mov r2,r8 + 8810: 4807883a mov r3,r9 + 8814: dfc00f17 ldw ra,60(sp) + 8818: df000e17 ldw fp,56(sp) + 881c: ddc00d17 ldw r23,52(sp) + 8820: dd800c17 ldw r22,48(sp) + 8824: dd400b17 ldw r21,44(sp) + 8828: dd000a17 ldw r20,40(sp) + 882c: dcc00917 ldw r19,36(sp) + 8830: dc800817 ldw r18,32(sp) + 8834: dc400717 ldw r17,28(sp) + 8838: dc000617 ldw r16,24(sp) + 883c: dec01004 addi sp,sp,64 + 8840: f800283a ret + 8844: 00bfffd4 movui r2,65535 + 8848: 11c06636 bltu r2,r7,89e4 <__umoddi3+0x2f4> + 884c: 00803fc4 movi r2,255 + 8850: 11c12036 bltu r2,r7,8cd4 <__umoddi3+0x5e4> + 8854: 000b883a mov r5,zero + 8858: 0005883a mov r2,zero + 885c: 3084d83a srl r2,r6,r2 + 8860: 01000074 movhi r4,1 + 8864: 2138f204 addi r4,r4,-7224 + 8868: 01c00804 movi r7,32 + 886c: 1105883a add r2,r2,r4 + 8870: 10c00003 ldbu r3,0(r2) + 8874: 28c7883a add r3,r5,r3 + 8878: 38e5c83a sub r18,r7,r3 + 887c: 9000941e bne r18,zero,8ad0 <__umoddi3+0x3e0> + 8880: 35405e36 bltu r6,r21,89fc <__umoddi3+0x30c> + 8884: 84c05d2e bgeu r16,r19,89fc <__umoddi3+0x30c> + 8888: 8011883a mov r8,r16 + 888c: a813883a mov r9,r21 + 8890: dc000415 stw r16,16(sp) + 8894: dd400515 stw r21,20(sp) + 8898: 003fdc06 br 880c <__umoddi3+0x11c> + 889c: 00bfffd4 movui r2,65535 + 88a0: 12004a36 bltu r2,r8,89cc <__umoddi3+0x2dc> + 88a4: 00803fc4 movi r2,255 + 88a8: 12010d36 bltu r2,r8,8ce0 <__umoddi3+0x5f0> + 88ac: 000b883a mov r5,zero + 88b0: 0005883a mov r2,zero + 88b4: 9884d83a srl r2,r19,r2 + 88b8: 01000074 movhi r4,1 + 88bc: 2138f204 addi r4,r4,-7224 + 88c0: 01800804 movi r6,32 + 88c4: 1105883a add r2,r2,r4 + 88c8: 10c00003 ldbu r3,0(r2) + 88cc: 28c7883a add r3,r5,r3 + 88d0: 30c7c83a sub r3,r6,r3 + 88d4: 1800dc1e bne r3,zero,8c48 <__umoddi3+0x558> + 88d8: 002d883a mov r22,zero + 88dc: 982ed43a srli r23,r19,16 + 88e0: a809883a mov r4,r21 + 88e4: 9cbfffcc andi r18,r19,65535 + 88e8: b80b883a mov r5,r23 + 88ec: 0009fb80 call 9fb8 <__udivsi3> + 88f0: 100b883a mov r5,r2 + 88f4: 9009883a mov r4,r18 + 88f8: 0009fc80 call 9fc8 <__mulsi3> + 88fc: a809883a mov r4,r21 + 8900: b80b883a mov r5,r23 + 8904: 1023883a mov r17,r2 + 8908: 0009fc00 call 9fc0 <__umodsi3> + 890c: 1004943a slli r2,r2,16 + 8910: 8006d43a srli r3,r16,16 + 8914: 10c4b03a or r2,r2,r3 + 8918: 1440032e bgeu r2,r17,8928 <__umoddi3+0x238> + 891c: 14c5883a add r2,r2,r19 + 8920: 14c00136 bltu r2,r19,8928 <__umoddi3+0x238> + 8924: 14410236 bltu r2,r17,8d30 <__umoddi3+0x640> + 8928: 1463c83a sub r17,r2,r17 + 892c: 8809883a mov r4,r17 + 8930: b80b883a mov r5,r23 + 8934: 0009fb80 call 9fb8 <__udivsi3> + 8938: 9009883a mov r4,r18 + 893c: 100b883a mov r5,r2 + 8940: 0009fc80 call 9fc8 <__mulsi3> + 8944: 8809883a mov r4,r17 + 8948: b80b883a mov r5,r23 + 894c: 102b883a mov r21,r2 + 8950: 0009fc00 call 9fc0 <__umodsi3> + 8954: 1004943a slli r2,r2,16 + 8958: 80ffffcc andi r3,r16,65535 + 895c: 10c4b03a or r2,r2,r3 + 8960: 1540042e bgeu r2,r21,8974 <__umoddi3+0x284> + 8964: 14c5883a add r2,r2,r19 + 8968: 14c00236 bltu r2,r19,8974 <__umoddi3+0x284> + 896c: 1540012e bgeu r2,r21,8974 <__umoddi3+0x284> + 8970: 14c5883a add r2,r2,r19 + 8974: 1545c83a sub r2,r2,r21 + 8978: 1584d83a srl r2,r2,r22 + 897c: 0013883a mov r9,zero + 8980: d8800415 stw r2,16(sp) + 8984: d8c00417 ldw r3,16(sp) + 8988: 0005883a mov r2,zero + 898c: d8800515 stw r2,20(sp) + 8990: 1811883a mov r8,r3 + 8994: 003f9d06 br 880c <__umoddi3+0x11c> + 8998: 00804034 movhi r2,256 + 899c: 10bfffc4 addi r2,r2,-1 + 89a0: 14c0c636 bltu r2,r19,8cbc <__umoddi3+0x5cc> + 89a4: 01400404 movi r5,16 + 89a8: 2805883a mov r2,r5 + 89ac: 003f6c06 br 8760 <__umoddi3+0x70> + 89b0: 01000044 movi r4,1 + 89b4: 000b883a mov r5,zero + 89b8: 0009fb80 call 9fb8 <__udivsi3> + 89bc: 1027883a mov r19,r2 + 89c0: 00bfffd4 movui r2,65535 + 89c4: 14fff436 bltu r2,r19,8998 <__umoddi3+0x2a8> + 89c8: 003f6106 br 8750 <__umoddi3+0x60> + 89cc: 00804034 movhi r2,256 + 89d0: 10bfffc4 addi r2,r2,-1 + 89d4: 1200c536 bltu r2,r8,8cec <__umoddi3+0x5fc> + 89d8: 01400404 movi r5,16 + 89dc: 2805883a mov r2,r5 + 89e0: 003fb406 br 88b4 <__umoddi3+0x1c4> + 89e4: 00804034 movhi r2,256 + 89e8: 10bfffc4 addi r2,r2,-1 + 89ec: 11c0c236 bltu r2,r7,8cf8 <__umoddi3+0x608> + 89f0: 01400404 movi r5,16 + 89f4: 2805883a mov r2,r5 + 89f8: 003f9806 br 885c <__umoddi3+0x16c> + 89fc: 84c9c83a sub r4,r16,r19 + 8a00: 8105803a cmpltu r2,r16,r4 + 8a04: a987c83a sub r3,r21,r6 + 8a08: 18abc83a sub r21,r3,r2 + 8a0c: 2021883a mov r16,r4 + 8a10: 003f9d06 br 8888 <__umoddi3+0x198> + 8a14: 9ca6983a sll r19,r19,r18 + 8a18: 3485c83a sub r2,r6,r18 + 8a1c: a8a2d83a srl r17,r21,r2 + 8a20: 982ed43a srli r23,r19,16 + 8a24: ac86983a sll r3,r21,r18 + 8a28: 8084d83a srl r2,r16,r2 + 8a2c: 8809883a mov r4,r17 + 8a30: b80b883a mov r5,r23 + 8a34: 18b8b03a or fp,r3,r2 + 8a38: 9d3fffcc andi r20,r19,65535 + 8a3c: 0009fb80 call 9fb8 <__udivsi3> + 8a40: 100b883a mov r5,r2 + 8a44: a009883a mov r4,r20 + 8a48: 0009fc80 call 9fc8 <__mulsi3> + 8a4c: 8809883a mov r4,r17 + 8a50: b80b883a mov r5,r23 + 8a54: 102b883a mov r21,r2 + 8a58: 0009fc00 call 9fc0 <__umodsi3> + 8a5c: 1004943a slli r2,r2,16 + 8a60: e006d43a srli r3,fp,16 + 8a64: 902d883a mov r22,r18 + 8a68: 10c4b03a or r2,r2,r3 + 8a6c: 1540022e bgeu r2,r21,8a78 <__umoddi3+0x388> + 8a70: 14c5883a add r2,r2,r19 + 8a74: 14c0ab2e bgeu r2,r19,8d24 <__umoddi3+0x634> + 8a78: 1563c83a sub r17,r2,r21 + 8a7c: 8809883a mov r4,r17 + 8a80: b80b883a mov r5,r23 + 8a84: 0009fb80 call 9fb8 <__udivsi3> + 8a88: 100b883a mov r5,r2 + 8a8c: a009883a mov r4,r20 + 8a90: 0009fc80 call 9fc8 <__mulsi3> + 8a94: 8809883a mov r4,r17 + 8a98: b80b883a mov r5,r23 + 8a9c: 102b883a mov r21,r2 + 8aa0: 0009fc00 call 9fc0 <__umodsi3> + 8aa4: 1004943a slli r2,r2,16 + 8aa8: e0ffffcc andi r3,fp,65535 + 8aac: 10c4b03a or r2,r2,r3 + 8ab0: 1540042e bgeu r2,r21,8ac4 <__umoddi3+0x3d4> + 8ab4: 14c5883a add r2,r2,r19 + 8ab8: 14c00236 bltu r2,r19,8ac4 <__umoddi3+0x3d4> + 8abc: 1540012e bgeu r2,r21,8ac4 <__umoddi3+0x3d4> + 8ac0: 14c5883a add r2,r2,r19 + 8ac4: 84a0983a sll r16,r16,r18 + 8ac8: 156bc83a sub r21,r2,r21 + 8acc: 003f3106 br 8794 <__umoddi3+0xa4> + 8ad0: 3c8fc83a sub r7,r7,r18 + 8ad4: 3486983a sll r3,r6,r18 + 8ad8: 99c4d83a srl r2,r19,r7 + 8adc: a9e2d83a srl r17,r21,r7 + 8ae0: ac8c983a sll r6,r21,r18 + 8ae4: 18acb03a or r22,r3,r2 + 8ae8: b02ed43a srli r23,r22,16 + 8aec: 81c4d83a srl r2,r16,r7 + 8af0: 8809883a mov r4,r17 + 8af4: b80b883a mov r5,r23 + 8af8: 308cb03a or r6,r6,r2 + 8afc: d9c00315 stw r7,12(sp) + 8b00: d9800215 stw r6,8(sp) + 8b04: b53fffcc andi r20,r22,65535 + 8b08: 0009fb80 call 9fb8 <__udivsi3> + 8b0c: 100b883a mov r5,r2 + 8b10: a009883a mov r4,r20 + 8b14: 1039883a mov fp,r2 + 8b18: 0009fc80 call 9fc8 <__mulsi3> + 8b1c: 8809883a mov r4,r17 + 8b20: b80b883a mov r5,r23 + 8b24: 102b883a mov r21,r2 + 8b28: 0009fc00 call 9fc0 <__umodsi3> + 8b2c: d9000217 ldw r4,8(sp) + 8b30: 1004943a slli r2,r2,16 + 8b34: 9ca6983a sll r19,r19,r18 + 8b38: 2006d43a srli r3,r4,16 + 8b3c: 84a0983a sll r16,r16,r18 + 8b40: dcc00015 stw r19,0(sp) + 8b44: 10c4b03a or r2,r2,r3 + 8b48: dc000115 stw r16,4(sp) + 8b4c: 1540032e bgeu r2,r21,8b5c <__umoddi3+0x46c> + 8b50: 1585883a add r2,r2,r22 + 8b54: e73fffc4 addi fp,fp,-1 + 8b58: 15806e2e bgeu r2,r22,8d14 <__umoddi3+0x624> + 8b5c: 1563c83a sub r17,r2,r21 + 8b60: 8809883a mov r4,r17 + 8b64: b80b883a mov r5,r23 + 8b68: 0009fb80 call 9fb8 <__udivsi3> + 8b6c: 100b883a mov r5,r2 + 8b70: a009883a mov r4,r20 + 8b74: 1021883a mov r16,r2 + 8b78: 0009fc80 call 9fc8 <__mulsi3> + 8b7c: b80b883a mov r5,r23 + 8b80: 8809883a mov r4,r17 + 8b84: 1029883a mov r20,r2 + 8b88: 0009fc00 call 9fc0 <__umodsi3> + 8b8c: d9400217 ldw r5,8(sp) + 8b90: 1004943a slli r2,r2,16 + 8b94: 28ffffcc andi r3,r5,65535 + 8b98: 10c4b03a or r2,r2,r3 + 8b9c: 1500032e bgeu r2,r20,8bac <__umoddi3+0x4bc> + 8ba0: 1585883a add r2,r2,r22 + 8ba4: 843fffc4 addi r16,r16,-1 + 8ba8: 1580562e bgeu r2,r22,8d04 <__umoddi3+0x614> + 8bac: d9800017 ldw r6,0(sp) + 8bb0: e022943a slli r17,fp,16 + 8bb4: 302ed43a srli r23,r6,16 + 8bb8: 8462b03a or r17,r16,r17 + 8bbc: 34ffffcc andi r19,r6,65535 + 8bc0: 882ad43a srli r21,r17,16 + 8bc4: 8c7fffcc andi r17,r17,65535 + 8bc8: 8809883a mov r4,r17 + 8bcc: 980b883a mov r5,r19 + 8bd0: 1521c83a sub r16,r2,r20 + 8bd4: 0009fc80 call 9fc8 <__mulsi3> + 8bd8: 8809883a mov r4,r17 + 8bdc: b80b883a mov r5,r23 + 8be0: 1029883a mov r20,r2 + 8be4: 0009fc80 call 9fc8 <__mulsi3> + 8be8: 980b883a mov r5,r19 + 8bec: a809883a mov r4,r21 + 8bf0: 1023883a mov r17,r2 + 8bf4: 0009fc80 call 9fc8 <__mulsi3> + 8bf8: a809883a mov r4,r21 + 8bfc: b80b883a mov r5,r23 + 8c00: 1027883a mov r19,r2 + 8c04: 0009fc80 call 9fc8 <__mulsi3> + 8c08: 100b883a mov r5,r2 + 8c0c: a004d43a srli r2,r20,16 + 8c10: 8ce3883a add r17,r17,r19 + 8c14: 1449883a add r4,r2,r17 + 8c18: 24c0022e bgeu r4,r19,8c24 <__umoddi3+0x534> + 8c1c: 00800074 movhi r2,1 + 8c20: 288b883a add r5,r5,r2 + 8c24: 2004d43a srli r2,r4,16 + 8c28: 2008943a slli r4,r4,16 + 8c2c: a0ffffcc andi r3,r20,65535 + 8c30: 288d883a add r6,r5,r2 + 8c34: 20c9883a add r4,r4,r3 + 8c38: 81800b36 bltu r16,r6,8c68 <__umoddi3+0x578> + 8c3c: 81804026 beq r16,r6,8d40 <__umoddi3+0x650> + 8c40: 818dc83a sub r6,r16,r6 + 8c44: 00000f06 br 8c84 <__umoddi3+0x594> + 8c48: 30c5c83a sub r2,r6,r3 + 8c4c: 182d883a mov r22,r3 + 8c50: 8084d83a srl r2,r16,r2 + 8c54: a8c6983a sll r3,r21,r3 + 8c58: 9da6983a sll r19,r19,r22 + 8c5c: 85a0983a sll r16,r16,r22 + 8c60: 18aab03a or r21,r3,r2 + 8c64: 003f1d06 br 88dc <__umoddi3+0x1ec> + 8c68: d8c00017 ldw r3,0(sp) + 8c6c: 20c5c83a sub r2,r4,r3 + 8c70: 2089803a cmpltu r4,r4,r2 + 8c74: 3587c83a sub r3,r6,r22 + 8c78: 1907c83a sub r3,r3,r4 + 8c7c: 80cdc83a sub r6,r16,r3 + 8c80: 1009883a mov r4,r2 + 8c84: d9400117 ldw r5,4(sp) + 8c88: 2905c83a sub r2,r5,r4 + 8c8c: 2887803a cmpltu r3,r5,r2 + 8c90: 30c7c83a sub r3,r6,r3 + 8c94: d9800317 ldw r6,12(sp) + 8c98: 1484d83a srl r2,r2,r18 + 8c9c: 1988983a sll r4,r3,r6 + 8ca0: 1c86d83a srl r3,r3,r18 + 8ca4: 2088b03a or r4,r4,r2 + 8ca8: 2011883a mov r8,r4 + 8cac: 1813883a mov r9,r3 + 8cb0: d9000415 stw r4,16(sp) + 8cb4: d8c00515 stw r3,20(sp) + 8cb8: 003ed406 br 880c <__umoddi3+0x11c> + 8cbc: 01400604 movi r5,24 + 8cc0: 2805883a mov r2,r5 + 8cc4: 003ea606 br 8760 <__umoddi3+0x70> + 8cc8: 01400204 movi r5,8 + 8ccc: 2805883a mov r2,r5 + 8cd0: 003ea306 br 8760 <__umoddi3+0x70> + 8cd4: 01400204 movi r5,8 + 8cd8: 2805883a mov r2,r5 + 8cdc: 003edf06 br 885c <__umoddi3+0x16c> + 8ce0: 01400204 movi r5,8 + 8ce4: 2805883a mov r2,r5 + 8ce8: 003ef206 br 88b4 <__umoddi3+0x1c4> + 8cec: 01400604 movi r5,24 + 8cf0: 2805883a mov r2,r5 + 8cf4: 003eef06 br 88b4 <__umoddi3+0x1c4> + 8cf8: 01400604 movi r5,24 + 8cfc: 2805883a mov r2,r5 + 8d00: 003ed606 br 885c <__umoddi3+0x16c> + 8d04: 153fa92e bgeu r2,r20,8bac <__umoddi3+0x4bc> + 8d08: 843fffc4 addi r16,r16,-1 + 8d0c: 1585883a add r2,r2,r22 + 8d10: 003fa606 br 8bac <__umoddi3+0x4bc> + 8d14: 157f912e bgeu r2,r21,8b5c <__umoddi3+0x46c> + 8d18: e73fffc4 addi fp,fp,-1 + 8d1c: 1585883a add r2,r2,r22 + 8d20: 003f8e06 br 8b5c <__umoddi3+0x46c> + 8d24: 157f542e bgeu r2,r21,8a78 <__umoddi3+0x388> + 8d28: 14c5883a add r2,r2,r19 + 8d2c: 003f5206 br 8a78 <__umoddi3+0x388> + 8d30: 14c5883a add r2,r2,r19 + 8d34: 003efc06 br 8928 <__umoddi3+0x238> + 8d38: 14c5883a add r2,r2,r19 + 8d3c: 003ea606 br 87d8 <__umoddi3+0xe8> + 8d40: d8800117 ldw r2,4(sp) + 8d44: 113fc836 bltu r2,r4,8c68 <__umoddi3+0x578> + 8d48: 000d883a mov r6,zero + 8d4c: 003fcd06 br 8c84 <__umoddi3+0x594> + +00008d50 <_fpadd_parts>: + 8d50: defff804 addi sp,sp,-32 + 8d54: dcc00315 stw r19,12(sp) + 8d58: 2027883a mov r19,r4 + 8d5c: 21000017 ldw r4,0(r4) + 8d60: 00c00044 movi r3,1 + 8d64: dd400515 stw r21,20(sp) + 8d68: dd000415 stw r20,16(sp) + 8d6c: ddc00715 stw r23,28(sp) + 8d70: dd800615 stw r22,24(sp) + 8d74: dc800215 stw r18,8(sp) + 8d78: dc400115 stw r17,4(sp) + 8d7c: dc000015 stw r16,0(sp) + 8d80: 282b883a mov r21,r5 + 8d84: 3029883a mov r20,r6 + 8d88: 1900632e bgeu r3,r4,8f18 <_fpadd_parts+0x1c8> + 8d8c: 28800017 ldw r2,0(r5) + 8d90: 1880812e bgeu r3,r2,8f98 <_fpadd_parts+0x248> + 8d94: 00c00104 movi r3,4 + 8d98: 20c0dc26 beq r4,r3,910c <_fpadd_parts+0x3bc> + 8d9c: 10c07e26 beq r2,r3,8f98 <_fpadd_parts+0x248> + 8da0: 00c00084 movi r3,2 + 8da4: 10c06726 beq r2,r3,8f44 <_fpadd_parts+0x1f4> + 8da8: 20c07b26 beq r4,r3,8f98 <_fpadd_parts+0x248> + 8dac: 9dc00217 ldw r23,8(r19) + 8db0: 28c00217 ldw r3,8(r5) + 8db4: 9c400317 ldw r17,12(r19) + 8db8: 2bc00317 ldw r15,12(r5) + 8dbc: b8cdc83a sub r6,r23,r3 + 8dc0: 9c800417 ldw r18,16(r19) + 8dc4: 2c000417 ldw r16,16(r5) + 8dc8: 3009883a mov r4,r6 + 8dcc: 30009716 blt r6,zero,902c <_fpadd_parts+0x2dc> + 8dd0: 00800fc4 movi r2,63 + 8dd4: 11806b16 blt r2,r6,8f84 <_fpadd_parts+0x234> + 8dd8: 0100a40e bge zero,r4,906c <_fpadd_parts+0x31c> + 8ddc: 35bff804 addi r22,r6,-32 + 8de0: b000bc16 blt r22,zero,90d4 <_fpadd_parts+0x384> + 8de4: 8596d83a srl r11,r16,r22 + 8de8: 0019883a mov r12,zero + 8dec: 0013883a mov r9,zero + 8df0: 01000044 movi r4,1 + 8df4: 0015883a mov r10,zero + 8df8: b000be16 blt r22,zero,90f4 <_fpadd_parts+0x3a4> + 8dfc: 2590983a sll r8,r4,r22 + 8e00: 000f883a mov r7,zero + 8e04: 00bfffc4 movi r2,-1 + 8e08: 3889883a add r4,r7,r2 + 8e0c: 408b883a add r5,r8,r2 + 8e10: 21cd803a cmpltu r6,r4,r7 + 8e14: 314b883a add r5,r6,r5 + 8e18: 7904703a and r2,r15,r4 + 8e1c: 8146703a and r3,r16,r5 + 8e20: 10c4b03a or r2,r2,r3 + 8e24: 10000226 beq r2,zero,8e30 <_fpadd_parts+0xe0> + 8e28: 02400044 movi r9,1 + 8e2c: 0015883a mov r10,zero + 8e30: 5a5eb03a or r15,r11,r9 + 8e34: 62a0b03a or r16,r12,r10 + 8e38: 99400117 ldw r5,4(r19) + 8e3c: a8800117 ldw r2,4(r21) + 8e40: 28806e26 beq r5,r2,8ffc <_fpadd_parts+0x2ac> + 8e44: 28006626 beq r5,zero,8fe0 <_fpadd_parts+0x290> + 8e48: 7c45c83a sub r2,r15,r17 + 8e4c: 7889803a cmpltu r4,r15,r2 + 8e50: 8487c83a sub r3,r16,r18 + 8e54: 1909c83a sub r4,r3,r4 + 8e58: 100d883a mov r6,r2 + 8e5c: 200f883a mov r7,r4 + 8e60: 38007716 blt r7,zero,9040 <_fpadd_parts+0x2f0> + 8e64: a5c00215 stw r23,8(r20) + 8e68: a1c00415 stw r7,16(r20) + 8e6c: a0000115 stw zero,4(r20) + 8e70: a1800315 stw r6,12(r20) + 8e74: a2000317 ldw r8,12(r20) + 8e78: a2400417 ldw r9,16(r20) + 8e7c: 00bfffc4 movi r2,-1 + 8e80: 408b883a add r5,r8,r2 + 8e84: 2a09803a cmpltu r4,r5,r8 + 8e88: 488d883a add r6,r9,r2 + 8e8c: 01c40034 movhi r7,4096 + 8e90: 39ffffc4 addi r7,r7,-1 + 8e94: 218d883a add r6,r4,r6 + 8e98: 39801736 bltu r7,r6,8ef8 <_fpadd_parts+0x1a8> + 8e9c: 31c06526 beq r6,r7,9034 <_fpadd_parts+0x2e4> + 8ea0: a3000217 ldw r12,8(r20) + 8ea4: 4209883a add r4,r8,r8 + 8ea8: 00bfffc4 movi r2,-1 + 8eac: 220f803a cmpltu r7,r4,r8 + 8eb0: 4a4b883a add r5,r9,r9 + 8eb4: 394f883a add r7,r7,r5 + 8eb8: 2095883a add r10,r4,r2 + 8ebc: 3897883a add r11,r7,r2 + 8ec0: 510d803a cmpltu r6,r10,r4 + 8ec4: 6099883a add r12,r12,r2 + 8ec8: 32d7883a add r11,r6,r11 + 8ecc: 00840034 movhi r2,4096 + 8ed0: 10bfffc4 addi r2,r2,-1 + 8ed4: 2011883a mov r8,r4 + 8ed8: 3813883a mov r9,r7 + 8edc: a1000315 stw r4,12(r20) + 8ee0: a1c00415 stw r7,16(r20) + 8ee4: a3000215 stw r12,8(r20) + 8ee8: 12c00336 bltu r2,r11,8ef8 <_fpadd_parts+0x1a8> + 8eec: 58bfed1e bne r11,r2,8ea4 <_fpadd_parts+0x154> + 8ef0: 00bfff84 movi r2,-2 + 8ef4: 12bfeb2e bgeu r2,r10,8ea4 <_fpadd_parts+0x154> + 8ef8: a2800417 ldw r10,16(r20) + 8efc: 008000c4 movi r2,3 + 8f00: 00c80034 movhi r3,8192 + 8f04: 18ffffc4 addi r3,r3,-1 + 8f08: a2400317 ldw r9,12(r20) + 8f0c: a0800015 stw r2,0(r20) + 8f10: 1a802336 bltu r3,r10,8fa0 <_fpadd_parts+0x250> + 8f14: a027883a mov r19,r20 + 8f18: 9805883a mov r2,r19 + 8f1c: ddc00717 ldw r23,28(sp) + 8f20: dd800617 ldw r22,24(sp) + 8f24: dd400517 ldw r21,20(sp) + 8f28: dd000417 ldw r20,16(sp) + 8f2c: dcc00317 ldw r19,12(sp) + 8f30: dc800217 ldw r18,8(sp) + 8f34: dc400117 ldw r17,4(sp) + 8f38: dc000017 ldw r16,0(sp) + 8f3c: dec00804 addi sp,sp,32 + 8f40: f800283a ret + 8f44: 20fff41e bne r4,r3,8f18 <_fpadd_parts+0x1c8> + 8f48: 31000015 stw r4,0(r6) + 8f4c: 98800117 ldw r2,4(r19) + 8f50: 30800115 stw r2,4(r6) + 8f54: 98c00217 ldw r3,8(r19) + 8f58: 30c00215 stw r3,8(r6) + 8f5c: 98800317 ldw r2,12(r19) + 8f60: 30800315 stw r2,12(r6) + 8f64: 98c00417 ldw r3,16(r19) + 8f68: 30c00415 stw r3,16(r6) + 8f6c: 98800117 ldw r2,4(r19) + 8f70: 28c00117 ldw r3,4(r5) + 8f74: 3027883a mov r19,r6 + 8f78: 10c4703a and r2,r2,r3 + 8f7c: 30800115 stw r2,4(r6) + 8f80: 003fe506 br 8f18 <_fpadd_parts+0x1c8> + 8f84: 1dc02616 blt r3,r23,9020 <_fpadd_parts+0x2d0> + 8f88: 0023883a mov r17,zero + 8f8c: 182f883a mov r23,r3 + 8f90: 0025883a mov r18,zero + 8f94: 003fa806 br 8e38 <_fpadd_parts+0xe8> + 8f98: a827883a mov r19,r21 + 8f9c: 003fde06 br 8f18 <_fpadd_parts+0x1c8> + 8fa0: 01800044 movi r6,1 + 8fa4: 500497fa slli r2,r10,31 + 8fa8: 4808d07a srli r4,r9,1 + 8fac: 518ad83a srl r5,r10,r6 + 8fb0: a2000217 ldw r8,8(r20) + 8fb4: 1108b03a or r4,r2,r4 + 8fb8: 0007883a mov r3,zero + 8fbc: 4984703a and r2,r9,r6 + 8fc0: 208cb03a or r6,r4,r2 + 8fc4: 28ceb03a or r7,r5,r3 + 8fc8: 42000044 addi r8,r8,1 + 8fcc: a027883a mov r19,r20 + 8fd0: a1c00415 stw r7,16(r20) + 8fd4: a2000215 stw r8,8(r20) + 8fd8: a1800315 stw r6,12(r20) + 8fdc: 003fce06 br 8f18 <_fpadd_parts+0x1c8> + 8fe0: 8bc5c83a sub r2,r17,r15 + 8fe4: 8889803a cmpltu r4,r17,r2 + 8fe8: 9407c83a sub r3,r18,r16 + 8fec: 1909c83a sub r4,r3,r4 + 8ff0: 100d883a mov r6,r2 + 8ff4: 200f883a mov r7,r4 + 8ff8: 003f9906 br 8e60 <_fpadd_parts+0x110> + 8ffc: 7c45883a add r2,r15,r17 + 9000: 13c9803a cmpltu r4,r2,r15 + 9004: 8487883a add r3,r16,r18 + 9008: 20c9883a add r4,r4,r3 + 900c: a1400115 stw r5,4(r20) + 9010: a5c00215 stw r23,8(r20) + 9014: a0800315 stw r2,12(r20) + 9018: a1000415 stw r4,16(r20) + 901c: 003fb606 br 8ef8 <_fpadd_parts+0x1a8> + 9020: 001f883a mov r15,zero + 9024: 0021883a mov r16,zero + 9028: 003f8306 br 8e38 <_fpadd_parts+0xe8> + 902c: 018dc83a sub r6,zero,r6 + 9030: 003f6706 br 8dd0 <_fpadd_parts+0x80> + 9034: 00bfff84 movi r2,-2 + 9038: 117faf36 bltu r2,r5,8ef8 <_fpadd_parts+0x1a8> + 903c: 003f9806 br 8ea0 <_fpadd_parts+0x150> + 9040: 0005883a mov r2,zero + 9044: 1189c83a sub r4,r2,r6 + 9048: 1105803a cmpltu r2,r2,r4 + 904c: 01cbc83a sub r5,zero,r7 + 9050: 2885c83a sub r2,r5,r2 + 9054: 01800044 movi r6,1 + 9058: a1800115 stw r6,4(r20) + 905c: a5c00215 stw r23,8(r20) + 9060: a1000315 stw r4,12(r20) + 9064: a0800415 stw r2,16(r20) + 9068: 003f8206 br 8e74 <_fpadd_parts+0x124> + 906c: 203f7226 beq r4,zero,8e38 <_fpadd_parts+0xe8> + 9070: 35bff804 addi r22,r6,-32 + 9074: b9af883a add r23,r23,r6 + 9078: b0003116 blt r22,zero,9140 <_fpadd_parts+0x3f0> + 907c: 959ad83a srl r13,r18,r22 + 9080: 001d883a mov r14,zero + 9084: 000f883a mov r7,zero + 9088: 01000044 movi r4,1 + 908c: 0011883a mov r8,zero + 9090: b0002516 blt r22,zero,9128 <_fpadd_parts+0x3d8> + 9094: 2594983a sll r10,r4,r22 + 9098: 0013883a mov r9,zero + 909c: 00bfffc4 movi r2,-1 + 90a0: 4889883a add r4,r9,r2 + 90a4: 508b883a add r5,r10,r2 + 90a8: 224d803a cmpltu r6,r4,r9 + 90ac: 314b883a add r5,r6,r5 + 90b0: 8904703a and r2,r17,r4 + 90b4: 9146703a and r3,r18,r5 + 90b8: 10c4b03a or r2,r2,r3 + 90bc: 10000226 beq r2,zero,90c8 <_fpadd_parts+0x378> + 90c0: 01c00044 movi r7,1 + 90c4: 0011883a mov r8,zero + 90c8: 69e2b03a or r17,r13,r7 + 90cc: 7224b03a or r18,r14,r8 + 90d0: 003f5906 br 8e38 <_fpadd_parts+0xe8> + 90d4: 8407883a add r3,r16,r16 + 90d8: 008007c4 movi r2,31 + 90dc: 1185c83a sub r2,r2,r6 + 90e0: 1886983a sll r3,r3,r2 + 90e4: 7996d83a srl r11,r15,r6 + 90e8: 8198d83a srl r12,r16,r6 + 90ec: 1ad6b03a or r11,r3,r11 + 90f0: 003f3e06 br 8dec <_fpadd_parts+0x9c> + 90f4: 2006d07a srli r3,r4,1 + 90f8: 008007c4 movi r2,31 + 90fc: 1185c83a sub r2,r2,r6 + 9100: 1890d83a srl r8,r3,r2 + 9104: 218e983a sll r7,r4,r6 + 9108: 003f3e06 br 8e04 <_fpadd_parts+0xb4> + 910c: 113f821e bne r2,r4,8f18 <_fpadd_parts+0x1c8> + 9110: 28c00117 ldw r3,4(r5) + 9114: 98800117 ldw r2,4(r19) + 9118: 10ff7f26 beq r2,r3,8f18 <_fpadd_parts+0x1c8> + 911c: 04c00074 movhi r19,1 + 9120: 9cf8ed04 addi r19,r19,-7244 + 9124: 003f7c06 br 8f18 <_fpadd_parts+0x1c8> + 9128: 2006d07a srli r3,r4,1 + 912c: 008007c4 movi r2,31 + 9130: 1185c83a sub r2,r2,r6 + 9134: 1894d83a srl r10,r3,r2 + 9138: 2192983a sll r9,r4,r6 + 913c: 003fd706 br 909c <_fpadd_parts+0x34c> + 9140: 9487883a add r3,r18,r18 + 9144: 008007c4 movi r2,31 + 9148: 1185c83a sub r2,r2,r6 + 914c: 1886983a sll r3,r3,r2 + 9150: 899ad83a srl r13,r17,r6 + 9154: 919cd83a srl r14,r18,r6 + 9158: 1b5ab03a or r13,r3,r13 + 915c: 003fc906 br 9084 <_fpadd_parts+0x334> + +00009160 <__subdf3>: + 9160: deffea04 addi sp,sp,-88 + 9164: dcc01415 stw r19,80(sp) + 9168: dcc00404 addi r19,sp,16 + 916c: 2011883a mov r8,r4 + 9170: 2813883a mov r9,r5 + 9174: dc401315 stw r17,76(sp) + 9178: d809883a mov r4,sp + 917c: 980b883a mov r5,r19 + 9180: dc400904 addi r17,sp,36 + 9184: dfc01515 stw ra,84(sp) + 9188: da400115 stw r9,4(sp) + 918c: d9c00315 stw r7,12(sp) + 9190: da000015 stw r8,0(sp) + 9194: d9800215 stw r6,8(sp) + 9198: 000a4b80 call a4b8 <__unpack_d> + 919c: d9000204 addi r4,sp,8 + 91a0: 880b883a mov r5,r17 + 91a4: 000a4b80 call a4b8 <__unpack_d> + 91a8: d8800a17 ldw r2,40(sp) + 91ac: 880b883a mov r5,r17 + 91b0: 9809883a mov r4,r19 + 91b4: d9800e04 addi r6,sp,56 + 91b8: 1080005c xori r2,r2,1 + 91bc: d8800a15 stw r2,40(sp) + 91c0: 0008d500 call 8d50 <_fpadd_parts> + 91c4: 1009883a mov r4,r2 + 91c8: 000a1a40 call a1a4 <__pack_d> + 91cc: dfc01517 ldw ra,84(sp) + 91d0: dcc01417 ldw r19,80(sp) + 91d4: dc401317 ldw r17,76(sp) + 91d8: dec01604 addi sp,sp,88 + 91dc: f800283a ret + +000091e0 <__adddf3>: + 91e0: deffea04 addi sp,sp,-88 + 91e4: dcc01415 stw r19,80(sp) + 91e8: dcc00404 addi r19,sp,16 + 91ec: 2011883a mov r8,r4 + 91f0: 2813883a mov r9,r5 + 91f4: dc401315 stw r17,76(sp) + 91f8: d809883a mov r4,sp + 91fc: 980b883a mov r5,r19 + 9200: dc400904 addi r17,sp,36 + 9204: dfc01515 stw ra,84(sp) + 9208: da400115 stw r9,4(sp) + 920c: d9c00315 stw r7,12(sp) + 9210: da000015 stw r8,0(sp) + 9214: d9800215 stw r6,8(sp) + 9218: 000a4b80 call a4b8 <__unpack_d> + 921c: d9000204 addi r4,sp,8 + 9220: 880b883a mov r5,r17 + 9224: 000a4b80 call a4b8 <__unpack_d> + 9228: d9800e04 addi r6,sp,56 + 922c: 9809883a mov r4,r19 + 9230: 880b883a mov r5,r17 + 9234: 0008d500 call 8d50 <_fpadd_parts> + 9238: 1009883a mov r4,r2 + 923c: 000a1a40 call a1a4 <__pack_d> + 9240: dfc01517 ldw ra,84(sp) + 9244: dcc01417 ldw r19,80(sp) + 9248: dc401317 ldw r17,76(sp) + 924c: dec01604 addi sp,sp,88 + 9250: f800283a ret + +00009254 <__muldf3>: + 9254: deffe004 addi sp,sp,-128 + 9258: dc401815 stw r17,96(sp) + 925c: dc400404 addi r17,sp,16 + 9260: 2011883a mov r8,r4 + 9264: 2813883a mov r9,r5 + 9268: dc001715 stw r16,92(sp) + 926c: d809883a mov r4,sp + 9270: 880b883a mov r5,r17 + 9274: dc000904 addi r16,sp,36 + 9278: dfc01f15 stw ra,124(sp) + 927c: da400115 stw r9,4(sp) + 9280: d9c00315 stw r7,12(sp) + 9284: da000015 stw r8,0(sp) + 9288: d9800215 stw r6,8(sp) + 928c: ddc01e15 stw r23,120(sp) + 9290: dd801d15 stw r22,116(sp) + 9294: dd401c15 stw r21,112(sp) + 9298: dd001b15 stw r20,108(sp) + 929c: dcc01a15 stw r19,104(sp) + 92a0: dc801915 stw r18,100(sp) + 92a4: 000a4b80 call a4b8 <__unpack_d> + 92a8: d9000204 addi r4,sp,8 + 92ac: 800b883a mov r5,r16 + 92b0: 000a4b80 call a4b8 <__unpack_d> + 92b4: d9000417 ldw r4,16(sp) + 92b8: 00800044 movi r2,1 + 92bc: 1100102e bgeu r2,r4,9300 <__muldf3+0xac> + 92c0: d8c00917 ldw r3,36(sp) + 92c4: 10c0062e bgeu r2,r3,92e0 <__muldf3+0x8c> + 92c8: 00800104 movi r2,4 + 92cc: 20800a26 beq r4,r2,92f8 <__muldf3+0xa4> + 92d0: 1880cc26 beq r3,r2,9604 <__muldf3+0x3b0> + 92d4: 00800084 movi r2,2 + 92d8: 20800926 beq r4,r2,9300 <__muldf3+0xac> + 92dc: 1880191e bne r3,r2,9344 <__muldf3+0xf0> + 92e0: d8c00a17 ldw r3,40(sp) + 92e4: d8800517 ldw r2,20(sp) + 92e8: 8009883a mov r4,r16 + 92ec: 10c4c03a cmpne r2,r2,r3 + 92f0: d8800a15 stw r2,40(sp) + 92f4: 00000706 br 9314 <__muldf3+0xc0> + 92f8: 00800084 movi r2,2 + 92fc: 1880c326 beq r3,r2,960c <__muldf3+0x3b8> + 9300: d8800517 ldw r2,20(sp) + 9304: d8c00a17 ldw r3,40(sp) + 9308: 8809883a mov r4,r17 + 930c: 10c4c03a cmpne r2,r2,r3 + 9310: d8800515 stw r2,20(sp) + 9314: 000a1a40 call a1a4 <__pack_d> + 9318: dfc01f17 ldw ra,124(sp) + 931c: ddc01e17 ldw r23,120(sp) + 9320: dd801d17 ldw r22,116(sp) + 9324: dd401c17 ldw r21,112(sp) + 9328: dd001b17 ldw r20,108(sp) + 932c: dcc01a17 ldw r19,104(sp) + 9330: dc801917 ldw r18,100(sp) + 9334: dc401817 ldw r17,96(sp) + 9338: dc001717 ldw r16,92(sp) + 933c: dec02004 addi sp,sp,128 + 9340: f800283a ret + 9344: dd800717 ldw r22,28(sp) + 9348: dc800c17 ldw r18,48(sp) + 934c: 002b883a mov r21,zero + 9350: 0023883a mov r17,zero + 9354: a80b883a mov r5,r21 + 9358: b00d883a mov r6,r22 + 935c: 880f883a mov r7,r17 + 9360: ddc00817 ldw r23,32(sp) + 9364: dcc00d17 ldw r19,52(sp) + 9368: 9009883a mov r4,r18 + 936c: 000a0000 call a000 <__muldi3> + 9370: 001b883a mov r13,zero + 9374: 680f883a mov r7,r13 + 9378: b009883a mov r4,r22 + 937c: 000b883a mov r5,zero + 9380: 980d883a mov r6,r19 + 9384: b82d883a mov r22,r23 + 9388: 002f883a mov r23,zero + 938c: db401615 stw r13,88(sp) + 9390: d8801315 stw r2,76(sp) + 9394: d8c01415 stw r3,80(sp) + 9398: dcc01515 stw r19,84(sp) + 939c: 000a0000 call a000 <__muldi3> + 93a0: b00d883a mov r6,r22 + 93a4: 000b883a mov r5,zero + 93a8: 9009883a mov r4,r18 + 93ac: b80f883a mov r7,r23 + 93b0: 1021883a mov r16,r2 + 93b4: 1823883a mov r17,r3 + 93b8: 000a0000 call a000 <__muldi3> + 93bc: 8085883a add r2,r16,r2 + 93c0: 140d803a cmpltu r6,r2,r16 + 93c4: 88c7883a add r3,r17,r3 + 93c8: 30cd883a add r6,r6,r3 + 93cc: 1029883a mov r20,r2 + 93d0: 302b883a mov r21,r6 + 93d4: da801317 ldw r10,76(sp) + 93d8: dac01417 ldw r11,80(sp) + 93dc: db001517 ldw r12,84(sp) + 93e0: db401617 ldw r13,88(sp) + 93e4: 3440612e bgeu r6,r17,956c <__muldf3+0x318> + 93e8: 0009883a mov r4,zero + 93ec: 5105883a add r2,r10,r4 + 93f0: 128d803a cmpltu r6,r2,r10 + 93f4: 5d07883a add r3,r11,r20 + 93f8: 30cd883a add r6,r6,r3 + 93fc: 0021883a mov r16,zero + 9400: 04400044 movi r17,1 + 9404: 1025883a mov r18,r2 + 9408: 3027883a mov r19,r6 + 940c: 32c06236 bltu r6,r11,9598 <__muldf3+0x344> + 9410: 59807a26 beq r11,r6,95fc <__muldf3+0x3a8> + 9414: 680b883a mov r5,r13 + 9418: b80f883a mov r7,r23 + 941c: 6009883a mov r4,r12 + 9420: b00d883a mov r6,r22 + 9424: 000a0000 call a000 <__muldi3> + 9428: 1009883a mov r4,r2 + 942c: 000f883a mov r7,zero + 9430: 1545883a add r2,r2,r21 + 9434: 1111803a cmpltu r8,r2,r4 + 9438: 19c7883a add r3,r3,r7 + 943c: 40c7883a add r3,r8,r3 + 9440: 88cb883a add r5,r17,r3 + 9444: d8c00617 ldw r3,24(sp) + 9448: 8089883a add r4,r16,r2 + 944c: d8800b17 ldw r2,44(sp) + 9450: 18c00104 addi r3,r3,4 + 9454: 240d803a cmpltu r6,r4,r16 + 9458: 10c7883a add r3,r2,r3 + 945c: 2013883a mov r9,r4 + 9460: d8800a17 ldw r2,40(sp) + 9464: d9000517 ldw r4,20(sp) + 9468: 314d883a add r6,r6,r5 + 946c: 3015883a mov r10,r6 + 9470: 2088c03a cmpne r4,r4,r2 + 9474: 00880034 movhi r2,8192 + 9478: 10bfffc4 addi r2,r2,-1 + 947c: d9000f15 stw r4,60(sp) + 9480: d8c01015 stw r3,64(sp) + 9484: 1180162e bgeu r2,r6,94e0 <__muldf3+0x28c> + 9488: 1811883a mov r8,r3 + 948c: 101f883a mov r15,r2 + 9490: 980497fa slli r2,r19,31 + 9494: 9016d07a srli r11,r18,1 + 9498: 500697fa slli r3,r10,31 + 949c: 480cd07a srli r6,r9,1 + 94a0: 500ed07a srli r7,r10,1 + 94a4: 12d6b03a or r11,r2,r11 + 94a8: 00800044 movi r2,1 + 94ac: 198cb03a or r6,r3,r6 + 94b0: 4888703a and r4,r9,r2 + 94b4: 9818d07a srli r12,r19,1 + 94b8: 001b883a mov r13,zero + 94bc: 03a00034 movhi r14,32768 + 94c0: 3013883a mov r9,r6 + 94c4: 3815883a mov r10,r7 + 94c8: 4091883a add r8,r8,r2 + 94cc: 20000226 beq r4,zero,94d8 <__muldf3+0x284> + 94d0: 5b64b03a or r18,r11,r13 + 94d4: 63a6b03a or r19,r12,r14 + 94d8: 7abfed36 bltu r15,r10,9490 <__muldf3+0x23c> + 94dc: da001015 stw r8,64(sp) + 94e0: 00840034 movhi r2,4096 + 94e4: 10bfffc4 addi r2,r2,-1 + 94e8: 12801436 bltu r2,r10,953c <__muldf3+0x2e8> + 94ec: da001017 ldw r8,64(sp) + 94f0: 101f883a mov r15,r2 + 94f4: 4a45883a add r2,r9,r9 + 94f8: 124d803a cmpltu r6,r2,r9 + 94fc: 5287883a add r3,r10,r10 + 9500: 9497883a add r11,r18,r18 + 9504: 5c8f803a cmpltu r7,r11,r18 + 9508: 9cd9883a add r12,r19,r19 + 950c: 01000044 movi r4,1 + 9510: 30cd883a add r6,r6,r3 + 9514: 3b0f883a add r7,r7,r12 + 9518: 423fffc4 addi r8,r8,-1 + 951c: 1013883a mov r9,r2 + 9520: 3015883a mov r10,r6 + 9524: 111ab03a or r13,r2,r4 + 9528: 98003016 blt r19,zero,95ec <__muldf3+0x398> + 952c: 5825883a mov r18,r11 + 9530: 3827883a mov r19,r7 + 9534: 7abfef2e bgeu r15,r10,94f4 <__muldf3+0x2a0> + 9538: da001015 stw r8,64(sp) + 953c: 00803fc4 movi r2,255 + 9540: 488e703a and r7,r9,r2 + 9544: 00802004 movi r2,128 + 9548: 0007883a mov r3,zero + 954c: 0011883a mov r8,zero + 9550: 38801826 beq r7,r2,95b4 <__muldf3+0x360> + 9554: 008000c4 movi r2,3 + 9558: d9000e04 addi r4,sp,56 + 955c: da801215 stw r10,72(sp) + 9560: d8800e15 stw r2,56(sp) + 9564: da401115 stw r9,68(sp) + 9568: 003f6a06 br 9314 <__muldf3+0xc0> + 956c: 89802126 beq r17,r6,95f4 <__muldf3+0x3a0> + 9570: 0009883a mov r4,zero + 9574: 5105883a add r2,r10,r4 + 9578: 128d803a cmpltu r6,r2,r10 + 957c: 5d07883a add r3,r11,r20 + 9580: 30cd883a add r6,r6,r3 + 9584: 0021883a mov r16,zero + 9588: 0023883a mov r17,zero + 958c: 1025883a mov r18,r2 + 9590: 3027883a mov r19,r6 + 9594: 32ff9e2e bgeu r6,r11,9410 <__muldf3+0x1bc> + 9598: 00800044 movi r2,1 + 959c: 8089883a add r4,r16,r2 + 95a0: 240d803a cmpltu r6,r4,r16 + 95a4: 344d883a add r6,r6,r17 + 95a8: 2021883a mov r16,r4 + 95ac: 3023883a mov r17,r6 + 95b0: 003f9806 br 9414 <__muldf3+0x1c0> + 95b4: 403fe71e bne r8,zero,9554 <__muldf3+0x300> + 95b8: 01004004 movi r4,256 + 95bc: 4904703a and r2,r9,r4 + 95c0: 10c4b03a or r2,r2,r3 + 95c4: 103fe31e bne r2,zero,9554 <__muldf3+0x300> + 95c8: 94c4b03a or r2,r18,r19 + 95cc: 103fe126 beq r2,zero,9554 <__muldf3+0x300> + 95d0: 49c5883a add r2,r9,r7 + 95d4: 1251803a cmpltu r8,r2,r9 + 95d8: 4291883a add r8,r8,r10 + 95dc: 013fc004 movi r4,-256 + 95e0: 1112703a and r9,r2,r4 + 95e4: 4015883a mov r10,r8 + 95e8: 003fda06 br 9554 <__muldf3+0x300> + 95ec: 6813883a mov r9,r13 + 95f0: 003fce06 br 952c <__muldf3+0x2d8> + 95f4: 143f7c36 bltu r2,r16,93e8 <__muldf3+0x194> + 95f8: 003fdd06 br 9570 <__muldf3+0x31c> + 95fc: 12bf852e bgeu r2,r10,9414 <__muldf3+0x1c0> + 9600: 003fe506 br 9598 <__muldf3+0x344> + 9604: 00800084 movi r2,2 + 9608: 20bf351e bne r4,r2,92e0 <__muldf3+0x8c> + 960c: 01000074 movhi r4,1 + 9610: 2138ed04 addi r4,r4,-7244 + 9614: 003f3f06 br 9314 <__muldf3+0xc0> + +00009618 <__divdf3>: + 9618: deffed04 addi sp,sp,-76 + 961c: dcc01115 stw r19,68(sp) + 9620: dcc00404 addi r19,sp,16 + 9624: 2011883a mov r8,r4 + 9628: 2813883a mov r9,r5 + 962c: dc000e15 stw r16,56(sp) + 9630: d809883a mov r4,sp + 9634: 980b883a mov r5,r19 + 9638: dc000904 addi r16,sp,36 + 963c: dfc01215 stw ra,72(sp) + 9640: da400115 stw r9,4(sp) + 9644: d9c00315 stw r7,12(sp) + 9648: da000015 stw r8,0(sp) + 964c: d9800215 stw r6,8(sp) + 9650: dc801015 stw r18,64(sp) + 9654: dc400f15 stw r17,60(sp) + 9658: 000a4b80 call a4b8 <__unpack_d> + 965c: d9000204 addi r4,sp,8 + 9660: 800b883a mov r5,r16 + 9664: 000a4b80 call a4b8 <__unpack_d> + 9668: d9000417 ldw r4,16(sp) + 966c: 00800044 movi r2,1 + 9670: 11000b2e bgeu r2,r4,96a0 <__divdf3+0x88> + 9674: d9400917 ldw r5,36(sp) + 9678: 1140762e bgeu r2,r5,9854 <__divdf3+0x23c> + 967c: d8800517 ldw r2,20(sp) + 9680: d8c00a17 ldw r3,40(sp) + 9684: 01800104 movi r6,4 + 9688: 10c4f03a xor r2,r2,r3 + 968c: d8800515 stw r2,20(sp) + 9690: 21800226 beq r4,r6,969c <__divdf3+0x84> + 9694: 00800084 movi r2,2 + 9698: 2080141e bne r4,r2,96ec <__divdf3+0xd4> + 969c: 29000926 beq r5,r4,96c4 <__divdf3+0xac> + 96a0: 9809883a mov r4,r19 + 96a4: 000a1a40 call a1a4 <__pack_d> + 96a8: dfc01217 ldw ra,72(sp) + 96ac: dcc01117 ldw r19,68(sp) + 96b0: dc801017 ldw r18,64(sp) + 96b4: dc400f17 ldw r17,60(sp) + 96b8: dc000e17 ldw r16,56(sp) + 96bc: dec01304 addi sp,sp,76 + 96c0: f800283a ret + 96c4: 01000074 movhi r4,1 + 96c8: 2138ed04 addi r4,r4,-7244 + 96cc: 000a1a40 call a1a4 <__pack_d> + 96d0: dfc01217 ldw ra,72(sp) + 96d4: dcc01117 ldw r19,68(sp) + 96d8: dc801017 ldw r18,64(sp) + 96dc: dc400f17 ldw r17,60(sp) + 96e0: dc000e17 ldw r16,56(sp) + 96e4: dec01304 addi sp,sp,76 + 96e8: f800283a ret + 96ec: 29805b26 beq r5,r6,985c <__divdf3+0x244> + 96f0: 28802d26 beq r5,r2,97a8 <__divdf3+0x190> + 96f4: d8c00617 ldw r3,24(sp) + 96f8: d8800b17 ldw r2,44(sp) + 96fc: d9c00817 ldw r7,32(sp) + 9700: dc400d17 ldw r17,52(sp) + 9704: 188bc83a sub r5,r3,r2 + 9708: d9800717 ldw r6,28(sp) + 970c: dc000c17 ldw r16,48(sp) + 9710: d9400615 stw r5,24(sp) + 9714: 3c403836 bltu r7,r17,97f8 <__divdf3+0x1e0> + 9718: 89c03626 beq r17,r7,97f4 <__divdf3+0x1dc> + 971c: 0015883a mov r10,zero + 9720: 001d883a mov r14,zero + 9724: 02c40034 movhi r11,4096 + 9728: 001f883a mov r15,zero + 972c: 003f883a mov ra,zero + 9730: 04800f44 movi r18,61 + 9734: 00000f06 br 9774 <__divdf3+0x15c> + 9738: 601d883a mov r14,r12 + 973c: 681f883a mov r15,r13 + 9740: 400d883a mov r6,r8 + 9744: 100f883a mov r7,r2 + 9748: 3191883a add r8,r6,r6 + 974c: 5808d07a srli r4,r11,1 + 9750: 4185803a cmpltu r2,r8,r6 + 9754: 39d3883a add r9,r7,r7 + 9758: 28c6b03a or r3,r5,r3 + 975c: 1245883a add r2,r2,r9 + 9760: 1815883a mov r10,r3 + 9764: 2017883a mov r11,r4 + 9768: 400d883a mov r6,r8 + 976c: 100f883a mov r7,r2 + 9770: fc801726 beq ra,r18,97d0 <__divdf3+0x1b8> + 9774: 580a97fa slli r5,r11,31 + 9778: 5006d07a srli r3,r10,1 + 977c: ffc00044 addi ra,ra,1 + 9780: 3c7ff136 bltu r7,r17,9748 <__divdf3+0x130> + 9784: 3411c83a sub r8,r6,r16 + 9788: 3205803a cmpltu r2,r6,r8 + 978c: 3c53c83a sub r9,r7,r17 + 9790: 7298b03a or r12,r14,r10 + 9794: 7adab03a or r13,r15,r11 + 9798: 4885c83a sub r2,r9,r2 + 979c: 89ffe61e bne r17,r7,9738 <__divdf3+0x120> + 97a0: 343fe936 bltu r6,r16,9748 <__divdf3+0x130> + 97a4: 003fe406 br 9738 <__divdf3+0x120> + 97a8: 9809883a mov r4,r19 + 97ac: d9800415 stw r6,16(sp) + 97b0: 000a1a40 call a1a4 <__pack_d> + 97b4: dfc01217 ldw ra,72(sp) + 97b8: dcc01117 ldw r19,68(sp) + 97bc: dc801017 ldw r18,64(sp) + 97c0: dc400f17 ldw r17,60(sp) + 97c4: dc000e17 ldw r16,56(sp) + 97c8: dec01304 addi sp,sp,76 + 97cc: f800283a ret + 97d0: 00803fc4 movi r2,255 + 97d4: 7090703a and r8,r14,r2 + 97d8: 00802004 movi r2,128 + 97dc: 0007883a mov r3,zero + 97e0: 0013883a mov r9,zero + 97e4: 40800d26 beq r8,r2,981c <__divdf3+0x204> + 97e8: dbc00815 stw r15,32(sp) + 97ec: db800715 stw r14,28(sp) + 97f0: 003fab06 br 96a0 <__divdf3+0x88> + 97f4: 343fc92e bgeu r6,r16,971c <__divdf3+0x104> + 97f8: 3185883a add r2,r6,r6 + 97fc: 1189803a cmpltu r4,r2,r6 + 9800: 39c7883a add r3,r7,r7 + 9804: 20c9883a add r4,r4,r3 + 9808: 297fffc4 addi r5,r5,-1 + 980c: 100d883a mov r6,r2 + 9810: 200f883a mov r7,r4 + 9814: d9400615 stw r5,24(sp) + 9818: 003fc006 br 971c <__divdf3+0x104> + 981c: 483ff21e bne r9,zero,97e8 <__divdf3+0x1d0> + 9820: 01004004 movi r4,256 + 9824: 7104703a and r2,r14,r4 + 9828: 10c4b03a or r2,r2,r3 + 982c: 103fee1e bne r2,zero,97e8 <__divdf3+0x1d0> + 9830: 31c4b03a or r2,r6,r7 + 9834: 103fec26 beq r2,zero,97e8 <__divdf3+0x1d0> + 9838: 7205883a add r2,r14,r8 + 983c: 1391803a cmpltu r8,r2,r14 + 9840: 43d1883a add r8,r8,r15 + 9844: 013fc004 movi r4,-256 + 9848: 111c703a and r14,r2,r4 + 984c: 401f883a mov r15,r8 + 9850: 003fe506 br 97e8 <__divdf3+0x1d0> + 9854: 8009883a mov r4,r16 + 9858: 003f9206 br 96a4 <__divdf3+0x8c> + 985c: 9809883a mov r4,r19 + 9860: d8000715 stw zero,28(sp) + 9864: d8000815 stw zero,32(sp) + 9868: d8000615 stw zero,24(sp) + 986c: 003f8d06 br 96a4 <__divdf3+0x8c> + +00009870 <__eqdf2>: + 9870: deffef04 addi sp,sp,-68 + 9874: dc400f15 stw r17,60(sp) + 9878: dc400404 addi r17,sp,16 + 987c: 2005883a mov r2,r4 + 9880: 2807883a mov r3,r5 + 9884: dc000e15 stw r16,56(sp) + 9888: d809883a mov r4,sp + 988c: 880b883a mov r5,r17 + 9890: dc000904 addi r16,sp,36 + 9894: d8c00115 stw r3,4(sp) + 9898: d8800015 stw r2,0(sp) + 989c: d9800215 stw r6,8(sp) + 98a0: dfc01015 stw ra,64(sp) + 98a4: d9c00315 stw r7,12(sp) + 98a8: 000a4b80 call a4b8 <__unpack_d> + 98ac: d9000204 addi r4,sp,8 + 98b0: 800b883a mov r5,r16 + 98b4: 000a4b80 call a4b8 <__unpack_d> + 98b8: d8800417 ldw r2,16(sp) + 98bc: 00c00044 movi r3,1 + 98c0: 180d883a mov r6,r3 + 98c4: 1880062e bgeu r3,r2,98e0 <__eqdf2+0x70> + 98c8: d8800917 ldw r2,36(sp) + 98cc: 8809883a mov r4,r17 + 98d0: 800b883a mov r5,r16 + 98d4: 1880022e bgeu r3,r2,98e0 <__eqdf2+0x70> + 98d8: 000a5f00 call a5f0 <__fpcmp_parts_d> + 98dc: 100d883a mov r6,r2 + 98e0: 3005883a mov r2,r6 + 98e4: dfc01017 ldw ra,64(sp) + 98e8: dc400f17 ldw r17,60(sp) + 98ec: dc000e17 ldw r16,56(sp) + 98f0: dec01104 addi sp,sp,68 + 98f4: f800283a ret + +000098f8 <__nedf2>: + 98f8: deffef04 addi sp,sp,-68 + 98fc: dc400f15 stw r17,60(sp) + 9900: dc400404 addi r17,sp,16 + 9904: 2005883a mov r2,r4 + 9908: 2807883a mov r3,r5 + 990c: dc000e15 stw r16,56(sp) + 9910: d809883a mov r4,sp + 9914: 880b883a mov r5,r17 + 9918: dc000904 addi r16,sp,36 + 991c: d8c00115 stw r3,4(sp) + 9920: d8800015 stw r2,0(sp) + 9924: d9800215 stw r6,8(sp) + 9928: dfc01015 stw ra,64(sp) + 992c: d9c00315 stw r7,12(sp) + 9930: 000a4b80 call a4b8 <__unpack_d> + 9934: d9000204 addi r4,sp,8 + 9938: 800b883a mov r5,r16 + 993c: 000a4b80 call a4b8 <__unpack_d> + 9940: d8800417 ldw r2,16(sp) + 9944: 00c00044 movi r3,1 + 9948: 180d883a mov r6,r3 + 994c: 1880062e bgeu r3,r2,9968 <__nedf2+0x70> + 9950: d8800917 ldw r2,36(sp) + 9954: 8809883a mov r4,r17 + 9958: 800b883a mov r5,r16 + 995c: 1880022e bgeu r3,r2,9968 <__nedf2+0x70> + 9960: 000a5f00 call a5f0 <__fpcmp_parts_d> + 9964: 100d883a mov r6,r2 + 9968: 3005883a mov r2,r6 + 996c: dfc01017 ldw ra,64(sp) + 9970: dc400f17 ldw r17,60(sp) + 9974: dc000e17 ldw r16,56(sp) + 9978: dec01104 addi sp,sp,68 + 997c: f800283a ret + +00009980 <__gtdf2>: + 9980: deffef04 addi sp,sp,-68 + 9984: dc400f15 stw r17,60(sp) + 9988: dc400404 addi r17,sp,16 + 998c: 2005883a mov r2,r4 + 9990: 2807883a mov r3,r5 + 9994: dc000e15 stw r16,56(sp) + 9998: d809883a mov r4,sp + 999c: 880b883a mov r5,r17 + 99a0: dc000904 addi r16,sp,36 + 99a4: d8c00115 stw r3,4(sp) + 99a8: d8800015 stw r2,0(sp) + 99ac: d9800215 stw r6,8(sp) + 99b0: dfc01015 stw ra,64(sp) + 99b4: d9c00315 stw r7,12(sp) + 99b8: 000a4b80 call a4b8 <__unpack_d> + 99bc: d9000204 addi r4,sp,8 + 99c0: 800b883a mov r5,r16 + 99c4: 000a4b80 call a4b8 <__unpack_d> + 99c8: d8800417 ldw r2,16(sp) + 99cc: 00c00044 movi r3,1 + 99d0: 01bfffc4 movi r6,-1 + 99d4: 1880062e bgeu r3,r2,99f0 <__gtdf2+0x70> + 99d8: d8800917 ldw r2,36(sp) + 99dc: 8809883a mov r4,r17 + 99e0: 800b883a mov r5,r16 + 99e4: 1880022e bgeu r3,r2,99f0 <__gtdf2+0x70> + 99e8: 000a5f00 call a5f0 <__fpcmp_parts_d> + 99ec: 100d883a mov r6,r2 + 99f0: 3005883a mov r2,r6 + 99f4: dfc01017 ldw ra,64(sp) + 99f8: dc400f17 ldw r17,60(sp) + 99fc: dc000e17 ldw r16,56(sp) + 9a00: dec01104 addi sp,sp,68 + 9a04: f800283a ret + +00009a08 <__gedf2>: + 9a08: deffef04 addi sp,sp,-68 + 9a0c: dc400f15 stw r17,60(sp) + 9a10: dc400404 addi r17,sp,16 + 9a14: 2005883a mov r2,r4 + 9a18: 2807883a mov r3,r5 + 9a1c: dc000e15 stw r16,56(sp) + 9a20: d809883a mov r4,sp + 9a24: 880b883a mov r5,r17 + 9a28: dc000904 addi r16,sp,36 + 9a2c: d8c00115 stw r3,4(sp) + 9a30: d8800015 stw r2,0(sp) + 9a34: d9800215 stw r6,8(sp) + 9a38: dfc01015 stw ra,64(sp) + 9a3c: d9c00315 stw r7,12(sp) + 9a40: 000a4b80 call a4b8 <__unpack_d> + 9a44: d9000204 addi r4,sp,8 + 9a48: 800b883a mov r5,r16 + 9a4c: 000a4b80 call a4b8 <__unpack_d> + 9a50: d8800417 ldw r2,16(sp) + 9a54: 00c00044 movi r3,1 + 9a58: 01bfffc4 movi r6,-1 + 9a5c: 1880062e bgeu r3,r2,9a78 <__gedf2+0x70> + 9a60: d8800917 ldw r2,36(sp) + 9a64: 8809883a mov r4,r17 + 9a68: 800b883a mov r5,r16 + 9a6c: 1880022e bgeu r3,r2,9a78 <__gedf2+0x70> + 9a70: 000a5f00 call a5f0 <__fpcmp_parts_d> + 9a74: 100d883a mov r6,r2 + 9a78: 3005883a mov r2,r6 + 9a7c: dfc01017 ldw ra,64(sp) + 9a80: dc400f17 ldw r17,60(sp) + 9a84: dc000e17 ldw r16,56(sp) + 9a88: dec01104 addi sp,sp,68 + 9a8c: f800283a ret + +00009a90 <__ltdf2>: + 9a90: deffef04 addi sp,sp,-68 + 9a94: dc400f15 stw r17,60(sp) + 9a98: dc400404 addi r17,sp,16 + 9a9c: 2005883a mov r2,r4 + 9aa0: 2807883a mov r3,r5 + 9aa4: dc000e15 stw r16,56(sp) + 9aa8: d809883a mov r4,sp + 9aac: 880b883a mov r5,r17 + 9ab0: dc000904 addi r16,sp,36 + 9ab4: d8c00115 stw r3,4(sp) + 9ab8: d8800015 stw r2,0(sp) + 9abc: d9800215 stw r6,8(sp) + 9ac0: dfc01015 stw ra,64(sp) + 9ac4: d9c00315 stw r7,12(sp) + 9ac8: 000a4b80 call a4b8 <__unpack_d> + 9acc: d9000204 addi r4,sp,8 + 9ad0: 800b883a mov r5,r16 + 9ad4: 000a4b80 call a4b8 <__unpack_d> + 9ad8: d8800417 ldw r2,16(sp) + 9adc: 00c00044 movi r3,1 + 9ae0: 180d883a mov r6,r3 + 9ae4: 1880062e bgeu r3,r2,9b00 <__ltdf2+0x70> + 9ae8: d8800917 ldw r2,36(sp) + 9aec: 8809883a mov r4,r17 + 9af0: 800b883a mov r5,r16 + 9af4: 1880022e bgeu r3,r2,9b00 <__ltdf2+0x70> + 9af8: 000a5f00 call a5f0 <__fpcmp_parts_d> + 9afc: 100d883a mov r6,r2 + 9b00: 3005883a mov r2,r6 + 9b04: dfc01017 ldw ra,64(sp) + 9b08: dc400f17 ldw r17,60(sp) + 9b0c: dc000e17 ldw r16,56(sp) + 9b10: dec01104 addi sp,sp,68 + 9b14: f800283a ret + +00009b18 <__floatsidf>: + 9b18: 2006d7fa srli r3,r4,31 + 9b1c: defff604 addi sp,sp,-40 + 9b20: 008000c4 movi r2,3 + 9b24: dfc00915 stw ra,36(sp) + 9b28: dcc00815 stw r19,32(sp) + 9b2c: dc800715 stw r18,28(sp) + 9b30: dc400615 stw r17,24(sp) + 9b34: dc000515 stw r16,20(sp) + 9b38: d8800015 stw r2,0(sp) + 9b3c: d8c00115 stw r3,4(sp) + 9b40: 20000f1e bne r4,zero,9b80 <__floatsidf+0x68> + 9b44: 00800084 movi r2,2 + 9b48: d8800015 stw r2,0(sp) + 9b4c: d809883a mov r4,sp + 9b50: 000a1a40 call a1a4 <__pack_d> + 9b54: 1009883a mov r4,r2 + 9b58: 180b883a mov r5,r3 + 9b5c: 2005883a mov r2,r4 + 9b60: 2807883a mov r3,r5 + 9b64: dfc00917 ldw ra,36(sp) + 9b68: dcc00817 ldw r19,32(sp) + 9b6c: dc800717 ldw r18,28(sp) + 9b70: dc400617 ldw r17,24(sp) + 9b74: dc000517 ldw r16,20(sp) + 9b78: dec00a04 addi sp,sp,40 + 9b7c: f800283a ret + 9b80: 00800f04 movi r2,60 + 9b84: 1807003a cmpeq r3,r3,zero + 9b88: d8800215 stw r2,8(sp) + 9b8c: 18001126 beq r3,zero,9bd4 <__floatsidf+0xbc> + 9b90: 0027883a mov r19,zero + 9b94: 2025883a mov r18,r4 + 9b98: d9000315 stw r4,12(sp) + 9b9c: dcc00415 stw r19,16(sp) + 9ba0: 000a1240 call a124 <__clzsi2> + 9ba4: 11000744 addi r4,r2,29 + 9ba8: 013fe80e bge zero,r4,9b4c <__floatsidf+0x34> + 9bac: 10bfff44 addi r2,r2,-3 + 9bb0: 10000c16 blt r2,zero,9be4 <__floatsidf+0xcc> + 9bb4: 90a2983a sll r17,r18,r2 + 9bb8: 0021883a mov r16,zero + 9bbc: d8800217 ldw r2,8(sp) + 9bc0: dc400415 stw r17,16(sp) + 9bc4: dc000315 stw r16,12(sp) + 9bc8: 1105c83a sub r2,r2,r4 + 9bcc: d8800215 stw r2,8(sp) + 9bd0: 003fde06 br 9b4c <__floatsidf+0x34> + 9bd4: 00a00034 movhi r2,32768 + 9bd8: 20800a26 beq r4,r2,9c04 <__floatsidf+0xec> + 9bdc: 0109c83a sub r4,zero,r4 + 9be0: 003feb06 br 9b90 <__floatsidf+0x78> + 9be4: 9006d07a srli r3,r18,1 + 9be8: 008007c4 movi r2,31 + 9bec: 1105c83a sub r2,r2,r4 + 9bf0: 1886d83a srl r3,r3,r2 + 9bf4: 9922983a sll r17,r19,r4 + 9bf8: 9120983a sll r16,r18,r4 + 9bfc: 1c62b03a or r17,r3,r17 + 9c00: 003fee06 br 9bbc <__floatsidf+0xa4> + 9c04: 0009883a mov r4,zero + 9c08: 01707834 movhi r5,49632 + 9c0c: 003fd306 br 9b5c <__floatsidf+0x44> + +00009c10 <__fixdfsi>: + 9c10: defff804 addi sp,sp,-32 + 9c14: 2005883a mov r2,r4 + 9c18: 2807883a mov r3,r5 + 9c1c: d809883a mov r4,sp + 9c20: d9400204 addi r5,sp,8 + 9c24: d8c00115 stw r3,4(sp) + 9c28: d8800015 stw r2,0(sp) + 9c2c: dfc00715 stw ra,28(sp) + 9c30: 000a4b80 call a4b8 <__unpack_d> + 9c34: d8c00217 ldw r3,8(sp) + 9c38: 00800084 movi r2,2 + 9c3c: 1880051e bne r3,r2,9c54 <__fixdfsi+0x44> + 9c40: 0007883a mov r3,zero + 9c44: 1805883a mov r2,r3 + 9c48: dfc00717 ldw ra,28(sp) + 9c4c: dec00804 addi sp,sp,32 + 9c50: f800283a ret + 9c54: 00800044 movi r2,1 + 9c58: 10fff92e bgeu r2,r3,9c40 <__fixdfsi+0x30> + 9c5c: 00800104 movi r2,4 + 9c60: 18800426 beq r3,r2,9c74 <__fixdfsi+0x64> + 9c64: d8c00417 ldw r3,16(sp) + 9c68: 183ff516 blt r3,zero,9c40 <__fixdfsi+0x30> + 9c6c: 00800784 movi r2,30 + 9c70: 10c0080e bge r2,r3,9c94 <__fixdfsi+0x84> + 9c74: d8800317 ldw r2,12(sp) + 9c78: 1000121e bne r2,zero,9cc4 <__fixdfsi+0xb4> + 9c7c: 00e00034 movhi r3,32768 + 9c80: 18ffffc4 addi r3,r3,-1 + 9c84: 1805883a mov r2,r3 + 9c88: dfc00717 ldw ra,28(sp) + 9c8c: dec00804 addi sp,sp,32 + 9c90: f800283a ret + 9c94: 00800f04 movi r2,60 + 9c98: 10d1c83a sub r8,r2,r3 + 9c9c: 40bff804 addi r2,r8,-32 + 9ca0: d9800517 ldw r6,20(sp) + 9ca4: d9c00617 ldw r7,24(sp) + 9ca8: 10000816 blt r2,zero,9ccc <__fixdfsi+0xbc> + 9cac: 3888d83a srl r4,r7,r2 + 9cb0: d8800317 ldw r2,12(sp) + 9cb4: 2007883a mov r3,r4 + 9cb8: 103fe226 beq r2,zero,9c44 <__fixdfsi+0x34> + 9cbc: 0107c83a sub r3,zero,r4 + 9cc0: 003fe006 br 9c44 <__fixdfsi+0x34> + 9cc4: 00e00034 movhi r3,32768 + 9cc8: 003fde06 br 9c44 <__fixdfsi+0x34> + 9ccc: 39c7883a add r3,r7,r7 + 9cd0: 008007c4 movi r2,31 + 9cd4: 1205c83a sub r2,r2,r8 + 9cd8: 1886983a sll r3,r3,r2 + 9cdc: 3208d83a srl r4,r6,r8 + 9ce0: 1908b03a or r4,r3,r4 + 9ce4: 003ff206 br 9cb0 <__fixdfsi+0xa0> + +00009ce8 <__floatunsidf>: + 9ce8: defff204 addi sp,sp,-56 + 9cec: dfc00d15 stw ra,52(sp) + 9cf0: ddc00c15 stw r23,48(sp) + 9cf4: dd800b15 stw r22,44(sp) + 9cf8: dd400a15 stw r21,40(sp) + 9cfc: dd000915 stw r20,36(sp) + 9d00: dcc00815 stw r19,32(sp) + 9d04: dc800715 stw r18,28(sp) + 9d08: dc400615 stw r17,24(sp) + 9d0c: dc000515 stw r16,20(sp) + 9d10: d8000115 stw zero,4(sp) + 9d14: 20000f1e bne r4,zero,9d54 <__floatunsidf+0x6c> + 9d18: 00800084 movi r2,2 + 9d1c: d8800015 stw r2,0(sp) + 9d20: d809883a mov r4,sp + 9d24: 000a1a40 call a1a4 <__pack_d> + 9d28: dfc00d17 ldw ra,52(sp) + 9d2c: ddc00c17 ldw r23,48(sp) + 9d30: dd800b17 ldw r22,44(sp) + 9d34: dd400a17 ldw r21,40(sp) + 9d38: dd000917 ldw r20,36(sp) + 9d3c: dcc00817 ldw r19,32(sp) + 9d40: dc800717 ldw r18,28(sp) + 9d44: dc400617 ldw r17,24(sp) + 9d48: dc000517 ldw r16,20(sp) + 9d4c: dec00e04 addi sp,sp,56 + 9d50: f800283a ret + 9d54: 008000c4 movi r2,3 + 9d58: 00c00f04 movi r3,60 + 9d5c: 002f883a mov r23,zero + 9d60: 202d883a mov r22,r4 + 9d64: d8800015 stw r2,0(sp) + 9d68: d8c00215 stw r3,8(sp) + 9d6c: d9000315 stw r4,12(sp) + 9d70: ddc00415 stw r23,16(sp) + 9d74: 000a1240 call a124 <__clzsi2> + 9d78: 12400744 addi r9,r2,29 + 9d7c: 48000b16 blt r9,zero,9dac <__floatunsidf+0xc4> + 9d80: 483fe726 beq r9,zero,9d20 <__floatunsidf+0x38> + 9d84: 10bfff44 addi r2,r2,-3 + 9d88: 10002e16 blt r2,zero,9e44 <__floatunsidf+0x15c> + 9d8c: b0a2983a sll r17,r22,r2 + 9d90: 0021883a mov r16,zero + 9d94: d8800217 ldw r2,8(sp) + 9d98: dc400415 stw r17,16(sp) + 9d9c: dc000315 stw r16,12(sp) + 9da0: 1245c83a sub r2,r2,r9 + 9da4: d8800215 stw r2,8(sp) + 9da8: 003fdd06 br 9d20 <__floatunsidf+0x38> + 9dac: 0255c83a sub r10,zero,r9 + 9db0: 51bff804 addi r6,r10,-32 + 9db4: 30001b16 blt r6,zero,9e24 <__floatunsidf+0x13c> + 9db8: b9a8d83a srl r20,r23,r6 + 9dbc: 002b883a mov r21,zero + 9dc0: 000f883a mov r7,zero + 9dc4: 01000044 movi r4,1 + 9dc8: 0011883a mov r8,zero + 9dcc: 30002516 blt r6,zero,9e64 <__floatunsidf+0x17c> + 9dd0: 21a6983a sll r19,r4,r6 + 9dd4: 0025883a mov r18,zero + 9dd8: 00bfffc4 movi r2,-1 + 9ddc: 9089883a add r4,r18,r2 + 9de0: 988b883a add r5,r19,r2 + 9de4: 248d803a cmpltu r6,r4,r18 + 9de8: 314b883a add r5,r6,r5 + 9dec: b104703a and r2,r22,r4 + 9df0: b946703a and r3,r23,r5 + 9df4: 10c4b03a or r2,r2,r3 + 9df8: 10000226 beq r2,zero,9e04 <__floatunsidf+0x11c> + 9dfc: 01c00044 movi r7,1 + 9e00: 0011883a mov r8,zero + 9e04: d9000217 ldw r4,8(sp) + 9e08: a1c4b03a or r2,r20,r7 + 9e0c: aa06b03a or r3,r21,r8 + 9e10: 2249c83a sub r4,r4,r9 + 9e14: d8c00415 stw r3,16(sp) + 9e18: d9000215 stw r4,8(sp) + 9e1c: d8800315 stw r2,12(sp) + 9e20: 003fbf06 br 9d20 <__floatunsidf+0x38> + 9e24: bdc7883a add r3,r23,r23 + 9e28: 008007c4 movi r2,31 + 9e2c: 1285c83a sub r2,r2,r10 + 9e30: 1886983a sll r3,r3,r2 + 9e34: b2a8d83a srl r20,r22,r10 + 9e38: baaad83a srl r21,r23,r10 + 9e3c: 1d28b03a or r20,r3,r20 + 9e40: 003fdf06 br 9dc0 <__floatunsidf+0xd8> + 9e44: b006d07a srli r3,r22,1 + 9e48: 008007c4 movi r2,31 + 9e4c: 1245c83a sub r2,r2,r9 + 9e50: 1886d83a srl r3,r3,r2 + 9e54: ba62983a sll r17,r23,r9 + 9e58: b260983a sll r16,r22,r9 + 9e5c: 1c62b03a or r17,r3,r17 + 9e60: 003fcc06 br 9d94 <__floatunsidf+0xac> + 9e64: 2006d07a srli r3,r4,1 + 9e68: 008007c4 movi r2,31 + 9e6c: 1285c83a sub r2,r2,r10 + 9e70: 18a6d83a srl r19,r3,r2 + 9e74: 22a4983a sll r18,r4,r10 + 9e78: 003fd706 br 9dd8 <__floatunsidf+0xf0> + +00009e7c : + 9e7c: 29001b2e bgeu r5,r4,9eec + 9e80: 28001a16 blt r5,zero,9eec + 9e84: 00800044 movi r2,1 + 9e88: 0007883a mov r3,zero + 9e8c: 01c007c4 movi r7,31 + 9e90: 00000306 br 9ea0 + 9e94: 19c01326 beq r3,r7,9ee4 + 9e98: 18c00044 addi r3,r3,1 + 9e9c: 28000416 blt r5,zero,9eb0 + 9ea0: 294b883a add r5,r5,r5 + 9ea4: 1085883a add r2,r2,r2 + 9ea8: 293ffa36 bltu r5,r4,9e94 + 9eac: 10000d26 beq r2,zero,9ee4 + 9eb0: 0007883a mov r3,zero + 9eb4: 21400236 bltu r4,r5,9ec0 + 9eb8: 2149c83a sub r4,r4,r5 + 9ebc: 1886b03a or r3,r3,r2 + 9ec0: 1004d07a srli r2,r2,1 + 9ec4: 280ad07a srli r5,r5,1 + 9ec8: 103ffa1e bne r2,zero,9eb4 + 9ecc: 30000226 beq r6,zero,9ed8 + 9ed0: 2005883a mov r2,r4 + 9ed4: f800283a ret + 9ed8: 1809883a mov r4,r3 + 9edc: 2005883a mov r2,r4 + 9ee0: f800283a ret + 9ee4: 0007883a mov r3,zero + 9ee8: 003ff806 br 9ecc + 9eec: 00800044 movi r2,1 + 9ef0: 0007883a mov r3,zero + 9ef4: 003fef06 br 9eb4 + +00009ef8 <__divsi3>: + 9ef8: defffe04 addi sp,sp,-8 + 9efc: dc000015 stw r16,0(sp) + 9f00: dfc00115 stw ra,4(sp) + 9f04: 0021883a mov r16,zero + 9f08: 20000c16 blt r4,zero,9f3c <__divsi3+0x44> + 9f0c: 000d883a mov r6,zero + 9f10: 28000e16 blt r5,zero,9f4c <__divsi3+0x54> + 9f14: 0009e7c0 call 9e7c + 9f18: 1007883a mov r3,r2 + 9f1c: 8005003a cmpeq r2,r16,zero + 9f20: 1000011e bne r2,zero,9f28 <__divsi3+0x30> + 9f24: 00c7c83a sub r3,zero,r3 + 9f28: 1805883a mov r2,r3 + 9f2c: dfc00117 ldw ra,4(sp) + 9f30: dc000017 ldw r16,0(sp) + 9f34: dec00204 addi sp,sp,8 + 9f38: f800283a ret + 9f3c: 0109c83a sub r4,zero,r4 + 9f40: 04000044 movi r16,1 + 9f44: 000d883a mov r6,zero + 9f48: 283ff20e bge r5,zero,9f14 <__divsi3+0x1c> + 9f4c: 014bc83a sub r5,zero,r5 + 9f50: 8021003a cmpeq r16,r16,zero + 9f54: 003fef06 br 9f14 <__divsi3+0x1c> + +00009f58 <__modsi3>: + 9f58: deffff04 addi sp,sp,-4 + 9f5c: dfc00015 stw ra,0(sp) + 9f60: 01800044 movi r6,1 + 9f64: 2807883a mov r3,r5 + 9f68: 20000416 blt r4,zero,9f7c <__modsi3+0x24> + 9f6c: 28000c16 blt r5,zero,9fa0 <__modsi3+0x48> + 9f70: dfc00017 ldw ra,0(sp) + 9f74: dec00104 addi sp,sp,4 + 9f78: 0009e7c1 jmpi 9e7c + 9f7c: 0109c83a sub r4,zero,r4 + 9f80: 28000b16 blt r5,zero,9fb0 <__modsi3+0x58> + 9f84: 180b883a mov r5,r3 + 9f88: 01800044 movi r6,1 + 9f8c: 0009e7c0 call 9e7c + 9f90: 0085c83a sub r2,zero,r2 + 9f94: dfc00017 ldw ra,0(sp) + 9f98: dec00104 addi sp,sp,4 + 9f9c: f800283a ret + 9fa0: 014bc83a sub r5,zero,r5 + 9fa4: dfc00017 ldw ra,0(sp) + 9fa8: dec00104 addi sp,sp,4 + 9fac: 0009e7c1 jmpi 9e7c + 9fb0: 0147c83a sub r3,zero,r5 + 9fb4: 003ff306 br 9f84 <__modsi3+0x2c> + +00009fb8 <__udivsi3>: + 9fb8: 000d883a mov r6,zero + 9fbc: 0009e7c1 jmpi 9e7c + +00009fc0 <__umodsi3>: + 9fc0: 01800044 movi r6,1 + 9fc4: 0009e7c1 jmpi 9e7c + +00009fc8 <__mulsi3>: + 9fc8: 20000a26 beq r4,zero,9ff4 <__mulsi3+0x2c> + 9fcc: 0007883a mov r3,zero + 9fd0: 2080004c andi r2,r4,1 + 9fd4: 1005003a cmpeq r2,r2,zero + 9fd8: 2008d07a srli r4,r4,1 + 9fdc: 1000011e bne r2,zero,9fe4 <__mulsi3+0x1c> + 9fe0: 1947883a add r3,r3,r5 + 9fe4: 294b883a add r5,r5,r5 + 9fe8: 203ff91e bne r4,zero,9fd0 <__mulsi3+0x8> + 9fec: 1805883a mov r2,r3 + 9ff0: f800283a ret + 9ff4: 0007883a mov r3,zero + 9ff8: 1805883a mov r2,r3 + 9ffc: f800283a ret + +0000a000 <__muldi3>: + a000: defff204 addi sp,sp,-56 + a004: df000c15 stw fp,48(sp) + a008: 3038d43a srli fp,r6,16 + a00c: dd000815 stw r20,32(sp) + a010: dc400515 stw r17,20(sp) + a014: 2028d43a srli r20,r4,16 + a018: 247fffcc andi r17,r4,65535 + a01c: dc000415 stw r16,16(sp) + a020: 343fffcc andi r16,r6,65535 + a024: dcc00715 stw r19,28(sp) + a028: d9000015 stw r4,0(sp) + a02c: 2827883a mov r19,r5 + a030: 8809883a mov r4,r17 + a034: d9400115 stw r5,4(sp) + a038: 800b883a mov r5,r16 + a03c: d9800215 stw r6,8(sp) + a040: dfc00d15 stw ra,52(sp) + a044: d9c00315 stw r7,12(sp) + a048: dd800a15 stw r22,40(sp) + a04c: dd400915 stw r21,36(sp) + a050: 302d883a mov r22,r6 + a054: ddc00b15 stw r23,44(sp) + a058: dc800615 stw r18,24(sp) + a05c: 0009fc80 call 9fc8 <__mulsi3> + a060: 8809883a mov r4,r17 + a064: e00b883a mov r5,fp + a068: 102b883a mov r21,r2 + a06c: 0009fc80 call 9fc8 <__mulsi3> + a070: 800b883a mov r5,r16 + a074: a009883a mov r4,r20 + a078: 1023883a mov r17,r2 + a07c: 0009fc80 call 9fc8 <__mulsi3> + a080: a009883a mov r4,r20 + a084: e00b883a mov r5,fp + a088: 1021883a mov r16,r2 + a08c: 0009fc80 call 9fc8 <__mulsi3> + a090: a8ffffcc andi r3,r21,65535 + a094: a82ad43a srli r21,r21,16 + a098: 8c23883a add r17,r17,r16 + a09c: 1011883a mov r8,r2 + a0a0: ac6b883a add r21,r21,r17 + a0a4: a804943a slli r2,r21,16 + a0a8: b009883a mov r4,r22 + a0ac: 980b883a mov r5,r19 + a0b0: 10c7883a add r3,r2,r3 + a0b4: a812d43a srli r9,r21,16 + a0b8: 180d883a mov r6,r3 + a0bc: ac00022e bgeu r21,r16,a0c8 <__muldi3+0xc8> + a0c0: 00800074 movhi r2,1 + a0c4: 4091883a add r8,r8,r2 + a0c8: 4267883a add r19,r8,r9 + a0cc: 302d883a mov r22,r6 + a0d0: 0009fc80 call 9fc8 <__mulsi3> + a0d4: d9400317 ldw r5,12(sp) + a0d8: d9000017 ldw r4,0(sp) + a0dc: 1023883a mov r17,r2 + a0e0: 0009fc80 call 9fc8 <__mulsi3> + a0e4: 14cb883a add r5,r2,r19 + a0e8: 894b883a add r5,r17,r5 + a0ec: b005883a mov r2,r22 + a0f0: 2807883a mov r3,r5 + a0f4: dfc00d17 ldw ra,52(sp) + a0f8: df000c17 ldw fp,48(sp) + a0fc: ddc00b17 ldw r23,44(sp) + a100: dd800a17 ldw r22,40(sp) + a104: dd400917 ldw r21,36(sp) + a108: dd000817 ldw r20,32(sp) + a10c: dcc00717 ldw r19,28(sp) + a110: dc800617 ldw r18,24(sp) + a114: dc400517 ldw r17,20(sp) + a118: dc000417 ldw r16,16(sp) + a11c: dec00e04 addi sp,sp,56 + a120: f800283a ret + +0000a124 <__clzsi2>: + a124: 00bfffd4 movui r2,65535 + a128: 11000e36 bltu r2,r4,a164 <__clzsi2+0x40> + a12c: 00803fc4 movi r2,255 + a130: 01400204 movi r5,8 + a134: 0007883a mov r3,zero + a138: 11001036 bltu r2,r4,a17c <__clzsi2+0x58> + a13c: 000b883a mov r5,zero + a140: 20c6d83a srl r3,r4,r3 + a144: 00800074 movhi r2,1 + a148: 10b8f204 addi r2,r2,-7224 + a14c: 1887883a add r3,r3,r2 + a150: 18800003 ldbu r2,0(r3) + a154: 00c00804 movi r3,32 + a158: 2885883a add r2,r5,r2 + a15c: 1885c83a sub r2,r3,r2 + a160: f800283a ret + a164: 01400404 movi r5,16 + a168: 00804034 movhi r2,256 + a16c: 10bfffc4 addi r2,r2,-1 + a170: 2807883a mov r3,r5 + a174: 113ff22e bgeu r2,r4,a140 <__clzsi2+0x1c> + a178: 01400604 movi r5,24 + a17c: 2807883a mov r3,r5 + a180: 20c6d83a srl r3,r4,r3 + a184: 00800074 movhi r2,1 + a188: 10b8f204 addi r2,r2,-7224 + a18c: 1887883a add r3,r3,r2 + a190: 18800003 ldbu r2,0(r3) + a194: 00c00804 movi r3,32 + a198: 2885883a add r2,r5,r2 + a19c: 1885c83a sub r2,r3,r2 + a1a0: f800283a ret + +0000a1a4 <__pack_d>: + a1a4: 20c00017 ldw r3,0(r4) + a1a8: defffd04 addi sp,sp,-12 + a1ac: dc000015 stw r16,0(sp) + a1b0: dc800215 stw r18,8(sp) + a1b4: dc400115 stw r17,4(sp) + a1b8: 00800044 movi r2,1 + a1bc: 22000317 ldw r8,12(r4) + a1c0: 001f883a mov r15,zero + a1c4: 22400417 ldw r9,16(r4) + a1c8: 24000117 ldw r16,4(r4) + a1cc: 10c0552e bgeu r2,r3,a324 <__pack_d+0x180> + a1d0: 00800104 movi r2,4 + a1d4: 18804f26 beq r3,r2,a314 <__pack_d+0x170> + a1d8: 00800084 movi r2,2 + a1dc: 18800226 beq r3,r2,a1e8 <__pack_d+0x44> + a1e0: 4244b03a or r2,r8,r9 + a1e4: 10001a1e bne r2,zero,a250 <__pack_d+0xac> + a1e8: 000d883a mov r6,zero + a1ec: 000f883a mov r7,zero + a1f0: 0011883a mov r8,zero + a1f4: 00800434 movhi r2,16 + a1f8: 10bfffc4 addi r2,r2,-1 + a1fc: 301d883a mov r14,r6 + a200: 3884703a and r2,r7,r2 + a204: 400a953a slli r5,r8,20 + a208: 79bffc2c andhi r6,r15,65520 + a20c: 308cb03a or r6,r6,r2 + a210: 00e00434 movhi r3,32784 + a214: 18ffffc4 addi r3,r3,-1 + a218: 800497fa slli r2,r16,31 + a21c: 30c6703a and r3,r6,r3 + a220: 1946b03a or r3,r3,r5 + a224: 01600034 movhi r5,32768 + a228: 297fffc4 addi r5,r5,-1 + a22c: 194a703a and r5,r3,r5 + a230: 288ab03a or r5,r5,r2 + a234: 2807883a mov r3,r5 + a238: 7005883a mov r2,r14 + a23c: dc800217 ldw r18,8(sp) + a240: dc400117 ldw r17,4(sp) + a244: dc000017 ldw r16,0(sp) + a248: dec00304 addi sp,sp,12 + a24c: f800283a ret + a250: 21000217 ldw r4,8(r4) + a254: 00bf0084 movi r2,-1022 + a258: 20803f16 blt r4,r2,a358 <__pack_d+0x1b4> + a25c: 0080ffc4 movi r2,1023 + a260: 11002c16 blt r2,r4,a314 <__pack_d+0x170> + a264: 00803fc4 movi r2,255 + a268: 408c703a and r6,r8,r2 + a26c: 00802004 movi r2,128 + a270: 0007883a mov r3,zero + a274: 000f883a mov r7,zero + a278: 2280ffc4 addi r10,r4,1023 + a27c: 30801e26 beq r6,r2,a2f8 <__pack_d+0x154> + a280: 00801fc4 movi r2,127 + a284: 4089883a add r4,r8,r2 + a288: 220d803a cmpltu r6,r4,r8 + a28c: 324d883a add r6,r6,r9 + a290: 2011883a mov r8,r4 + a294: 3013883a mov r9,r6 + a298: 00880034 movhi r2,8192 + a29c: 10bfffc4 addi r2,r2,-1 + a2a0: 12400d36 bltu r2,r9,a2d8 <__pack_d+0x134> + a2a4: 4804963a slli r2,r9,24 + a2a8: 400cd23a srli r6,r8,8 + a2ac: 480ed23a srli r7,r9,8 + a2b0: 013fffc4 movi r4,-1 + a2b4: 118cb03a or r6,r2,r6 + a2b8: 01400434 movhi r5,16 + a2bc: 297fffc4 addi r5,r5,-1 + a2c0: 3104703a and r2,r6,r4 + a2c4: 3946703a and r3,r7,r5 + a2c8: 5201ffcc andi r8,r10,2047 + a2cc: 100d883a mov r6,r2 + a2d0: 180f883a mov r7,r3 + a2d4: 003fc706 br a1f4 <__pack_d+0x50> + a2d8: 480897fa slli r4,r9,31 + a2dc: 4004d07a srli r2,r8,1 + a2e0: 4806d07a srli r3,r9,1 + a2e4: 52800044 addi r10,r10,1 + a2e8: 2084b03a or r2,r4,r2 + a2ec: 1011883a mov r8,r2 + a2f0: 1813883a mov r9,r3 + a2f4: 003feb06 br a2a4 <__pack_d+0x100> + a2f8: 383fe11e bne r7,zero,a280 <__pack_d+0xdc> + a2fc: 01004004 movi r4,256 + a300: 4104703a and r2,r8,r4 + a304: 10c4b03a or r2,r2,r3 + a308: 103fe326 beq r2,zero,a298 <__pack_d+0xf4> + a30c: 3005883a mov r2,r6 + a310: 003fdc06 br a284 <__pack_d+0xe0> + a314: 000d883a mov r6,zero + a318: 000f883a mov r7,zero + a31c: 0201ffc4 movi r8,2047 + a320: 003fb406 br a1f4 <__pack_d+0x50> + a324: 0005883a mov r2,zero + a328: 00c00234 movhi r3,8 + a32c: 408cb03a or r6,r8,r2 + a330: 48ceb03a or r7,r9,r3 + a334: 013fffc4 movi r4,-1 + a338: 01400434 movhi r5,16 + a33c: 297fffc4 addi r5,r5,-1 + a340: 3104703a and r2,r6,r4 + a344: 3946703a and r3,r7,r5 + a348: 100d883a mov r6,r2 + a34c: 180f883a mov r7,r3 + a350: 0201ffc4 movi r8,2047 + a354: 003fa706 br a1f4 <__pack_d+0x50> + a358: 1109c83a sub r4,r2,r4 + a35c: 00800e04 movi r2,56 + a360: 11004316 blt r2,r4,a470 <__pack_d+0x2cc> + a364: 21fff804 addi r7,r4,-32 + a368: 38004516 blt r7,zero,a480 <__pack_d+0x2dc> + a36c: 49d8d83a srl r12,r9,r7 + a370: 001b883a mov r13,zero + a374: 0023883a mov r17,zero + a378: 01400044 movi r5,1 + a37c: 0025883a mov r18,zero + a380: 38004716 blt r7,zero,a4a0 <__pack_d+0x2fc> + a384: 29d6983a sll r11,r5,r7 + a388: 0015883a mov r10,zero + a38c: 00bfffc4 movi r2,-1 + a390: 5089883a add r4,r10,r2 + a394: 588b883a add r5,r11,r2 + a398: 228d803a cmpltu r6,r4,r10 + a39c: 314b883a add r5,r6,r5 + a3a0: 4104703a and r2,r8,r4 + a3a4: 4946703a and r3,r9,r5 + a3a8: 10c4b03a or r2,r2,r3 + a3ac: 10000226 beq r2,zero,a3b8 <__pack_d+0x214> + a3b0: 04400044 movi r17,1 + a3b4: 0025883a mov r18,zero + a3b8: 00803fc4 movi r2,255 + a3bc: 644eb03a or r7,r12,r17 + a3c0: 3892703a and r9,r7,r2 + a3c4: 00802004 movi r2,128 + a3c8: 6c90b03a or r8,r13,r18 + a3cc: 0015883a mov r10,zero + a3d0: 48801626 beq r9,r2,a42c <__pack_d+0x288> + a3d4: 01001fc4 movi r4,127 + a3d8: 3905883a add r2,r7,r4 + a3dc: 11cd803a cmpltu r6,r2,r7 + a3e0: 320d883a add r6,r6,r8 + a3e4: 100f883a mov r7,r2 + a3e8: 00840034 movhi r2,4096 + a3ec: 10bfffc4 addi r2,r2,-1 + a3f0: 3011883a mov r8,r6 + a3f4: 0007883a mov r3,zero + a3f8: 11801b36 bltu r2,r6,a468 <__pack_d+0x2c4> + a3fc: 4004963a slli r2,r8,24 + a400: 3808d23a srli r4,r7,8 + a404: 400ad23a srli r5,r8,8 + a408: 1813883a mov r9,r3 + a40c: 1108b03a or r4,r2,r4 + a410: 00bfffc4 movi r2,-1 + a414: 00c00434 movhi r3,16 + a418: 18ffffc4 addi r3,r3,-1 + a41c: 208c703a and r6,r4,r2 + a420: 28ce703a and r7,r5,r3 + a424: 4a01ffcc andi r8,r9,2047 + a428: 003f7206 br a1f4 <__pack_d+0x50> + a42c: 503fe91e bne r10,zero,a3d4 <__pack_d+0x230> + a430: 01004004 movi r4,256 + a434: 3904703a and r2,r7,r4 + a438: 0007883a mov r3,zero + a43c: 10c4b03a or r2,r2,r3 + a440: 10000626 beq r2,zero,a45c <__pack_d+0x2b8> + a444: 3a45883a add r2,r7,r9 + a448: 11cd803a cmpltu r6,r2,r7 + a44c: 320d883a add r6,r6,r8 + a450: 100f883a mov r7,r2 + a454: 3011883a mov r8,r6 + a458: 0007883a mov r3,zero + a45c: 00840034 movhi r2,4096 + a460: 10bfffc4 addi r2,r2,-1 + a464: 123fe52e bgeu r2,r8,a3fc <__pack_d+0x258> + a468: 00c00044 movi r3,1 + a46c: 003fe306 br a3fc <__pack_d+0x258> + a470: 0009883a mov r4,zero + a474: 0013883a mov r9,zero + a478: 000b883a mov r5,zero + a47c: 003fe406 br a410 <__pack_d+0x26c> + a480: 4a47883a add r3,r9,r9 + a484: 008007c4 movi r2,31 + a488: 1105c83a sub r2,r2,r4 + a48c: 1886983a sll r3,r3,r2 + a490: 4118d83a srl r12,r8,r4 + a494: 491ad83a srl r13,r9,r4 + a498: 1b18b03a or r12,r3,r12 + a49c: 003fb506 br a374 <__pack_d+0x1d0> + a4a0: 2806d07a srli r3,r5,1 + a4a4: 008007c4 movi r2,31 + a4a8: 1105c83a sub r2,r2,r4 + a4ac: 1896d83a srl r11,r3,r2 + a4b0: 2914983a sll r10,r5,r4 + a4b4: 003fb506 br a38c <__pack_d+0x1e8> + +0000a4b8 <__unpack_d>: + a4b8: 20c00117 ldw r3,4(r4) + a4bc: 22400017 ldw r9,0(r4) + a4c0: 00800434 movhi r2,16 + a4c4: 10bfffc4 addi r2,r2,-1 + a4c8: 1808d53a srli r4,r3,20 + a4cc: 180cd7fa srli r6,r3,31 + a4d0: 1894703a and r10,r3,r2 + a4d4: 2201ffcc andi r8,r4,2047 + a4d8: 281b883a mov r13,r5 + a4dc: 4817883a mov r11,r9 + a4e0: 29800115 stw r6,4(r5) + a4e4: 5019883a mov r12,r10 + a4e8: 40001e1e bne r8,zero,a564 <__unpack_d+0xac> + a4ec: 4a84b03a or r2,r9,r10 + a4f0: 10001926 beq r2,zero,a558 <__unpack_d+0xa0> + a4f4: 4804d63a srli r2,r9,24 + a4f8: 500c923a slli r6,r10,8 + a4fc: 013f0084 movi r4,-1022 + a500: 00c40034 movhi r3,4096 + a504: 18ffffc4 addi r3,r3,-1 + a508: 118cb03a or r6,r2,r6 + a50c: 008000c4 movi r2,3 + a510: 480a923a slli r5,r9,8 + a514: 68800015 stw r2,0(r13) + a518: 69000215 stw r4,8(r13) + a51c: 19800b36 bltu r3,r6,a54c <__unpack_d+0x94> + a520: 200f883a mov r7,r4 + a524: 1811883a mov r8,r3 + a528: 2945883a add r2,r5,r5 + a52c: 1149803a cmpltu r4,r2,r5 + a530: 3187883a add r3,r6,r6 + a534: 20c9883a add r4,r4,r3 + a538: 100b883a mov r5,r2 + a53c: 200d883a mov r6,r4 + a540: 39ffffc4 addi r7,r7,-1 + a544: 413ff82e bgeu r8,r4,a528 <__unpack_d+0x70> + a548: 69c00215 stw r7,8(r13) + a54c: 69800415 stw r6,16(r13) + a550: 69400315 stw r5,12(r13) + a554: f800283a ret + a558: 00800084 movi r2,2 + a55c: 28800015 stw r2,0(r5) + a560: f800283a ret + a564: 0081ffc4 movi r2,2047 + a568: 40800f26 beq r8,r2,a5a8 <__unpack_d+0xf0> + a56c: 480cd63a srli r6,r9,24 + a570: 5006923a slli r3,r10,8 + a574: 4804923a slli r2,r9,8 + a578: 0009883a mov r4,zero + a57c: 30c6b03a or r3,r6,r3 + a580: 01440034 movhi r5,4096 + a584: 110cb03a or r6,r2,r4 + a588: 423f0044 addi r8,r8,-1023 + a58c: 194eb03a or r7,r3,r5 + a590: 008000c4 movi r2,3 + a594: 69c00415 stw r7,16(r13) + a598: 6a000215 stw r8,8(r13) + a59c: 68800015 stw r2,0(r13) + a5a0: 69800315 stw r6,12(r13) + a5a4: f800283a ret + a5a8: 4a84b03a or r2,r9,r10 + a5ac: 1000031e bne r2,zero,a5bc <__unpack_d+0x104> + a5b0: 00800104 movi r2,4 + a5b4: 28800015 stw r2,0(r5) + a5b8: f800283a ret + a5bc: 0009883a mov r4,zero + a5c0: 01400234 movhi r5,8 + a5c4: 4904703a and r2,r9,r4 + a5c8: 5146703a and r3,r10,r5 + a5cc: 10c4b03a or r2,r2,r3 + a5d0: 10000526 beq r2,zero,a5e8 <__unpack_d+0x130> + a5d4: 00800044 movi r2,1 + a5d8: 68800015 stw r2,0(r13) + a5dc: 6b000415 stw r12,16(r13) + a5e0: 6ac00315 stw r11,12(r13) + a5e4: f800283a ret + a5e8: 68000015 stw zero,0(r13) + a5ec: 003ffb06 br a5dc <__unpack_d+0x124> + +0000a5f0 <__fpcmp_parts_d>: + a5f0: 21800017 ldw r6,0(r4) + a5f4: 00c00044 movi r3,1 + a5f8: 19800a2e bgeu r3,r6,a624 <__fpcmp_parts_d+0x34> + a5fc: 28800017 ldw r2,0(r5) + a600: 1880082e bgeu r3,r2,a624 <__fpcmp_parts_d+0x34> + a604: 00c00104 movi r3,4 + a608: 30c02626 beq r6,r3,a6a4 <__fpcmp_parts_d+0xb4> + a60c: 10c02226 beq r2,r3,a698 <__fpcmp_parts_d+0xa8> + a610: 00c00084 movi r3,2 + a614: 30c00526 beq r6,r3,a62c <__fpcmp_parts_d+0x3c> + a618: 10c0071e bne r2,r3,a638 <__fpcmp_parts_d+0x48> + a61c: 20800117 ldw r2,4(r4) + a620: 1000091e bne r2,zero,a648 <__fpcmp_parts_d+0x58> + a624: 00800044 movi r2,1 + a628: f800283a ret + a62c: 10c01a1e bne r2,r3,a698 <__fpcmp_parts_d+0xa8> + a630: 0005883a mov r2,zero + a634: f800283a ret + a638: 22000117 ldw r8,4(r4) + a63c: 28800117 ldw r2,4(r5) + a640: 40800326 beq r8,r2,a650 <__fpcmp_parts_d+0x60> + a644: 403ff726 beq r8,zero,a624 <__fpcmp_parts_d+0x34> + a648: 00bfffc4 movi r2,-1 + a64c: f800283a ret + a650: 20c00217 ldw r3,8(r4) + a654: 28800217 ldw r2,8(r5) + a658: 10fffa16 blt r2,r3,a644 <__fpcmp_parts_d+0x54> + a65c: 18800916 blt r3,r2,a684 <__fpcmp_parts_d+0x94> + a660: 21c00417 ldw r7,16(r4) + a664: 28c00417 ldw r3,16(r5) + a668: 21800317 ldw r6,12(r4) + a66c: 28800317 ldw r2,12(r5) + a670: 19fff436 bltu r3,r7,a644 <__fpcmp_parts_d+0x54> + a674: 38c00526 beq r7,r3,a68c <__fpcmp_parts_d+0x9c> + a678: 38c00236 bltu r7,r3,a684 <__fpcmp_parts_d+0x94> + a67c: 19ffec1e bne r3,r7,a630 <__fpcmp_parts_d+0x40> + a680: 30bfeb2e bgeu r6,r2,a630 <__fpcmp_parts_d+0x40> + a684: 403fe71e bne r8,zero,a624 <__fpcmp_parts_d+0x34> + a688: 003fef06 br a648 <__fpcmp_parts_d+0x58> + a68c: 11bffa2e bgeu r2,r6,a678 <__fpcmp_parts_d+0x88> + a690: 403fe426 beq r8,zero,a624 <__fpcmp_parts_d+0x34> + a694: 003fec06 br a648 <__fpcmp_parts_d+0x58> + a698: 28800117 ldw r2,4(r5) + a69c: 103fe11e bne r2,zero,a624 <__fpcmp_parts_d+0x34> + a6a0: 003fe906 br a648 <__fpcmp_parts_d+0x58> + a6a4: 11bfdd1e bne r2,r6,a61c <__fpcmp_parts_d+0x2c> + a6a8: 28c00117 ldw r3,4(r5) + a6ac: 20800117 ldw r2,4(r4) + a6b0: 1885c83a sub r2,r3,r2 + a6b4: f800283a ret + +0000a6b8 : + * + * ALT_CLOSE is mapped onto the close() system call in alt_syscall.h + */ + +int ALT_CLOSE (int fildes) +{ + a6b8: defff804 addi sp,sp,-32 + a6bc: dfc00715 stw ra,28(sp) + a6c0: df000615 stw fp,24(sp) + a6c4: df000604 addi fp,sp,24 + a6c8: e13ffc15 stw r4,-16(fp) + * A common error case is that when the file descriptor was created, the call + * to open() failed resulting in a negative file descriptor. This is trapped + * below so that we don't try and process an invalid file descriptor. + */ + + fd = (fildes < 0) ? NULL : &alt_fd_list[fildes]; + a6cc: e0bffc17 ldw r2,-16(fp) + a6d0: 1004803a cmplt r2,r2,zero + a6d4: 1000091e bne r2,zero,a6fc + a6d8: e13ffc17 ldw r4,-16(fp) + a6dc: 01400304 movi r5,12 + a6e0: 0009fc80 call 9fc8 <__mulsi3> + a6e4: 1007883a mov r3,r2 + a6e8: 00800074 movhi r2,1 + a6ec: 10bbf204 addi r2,r2,-4152 + a6f0: 1887883a add r3,r3,r2 + a6f4: e0ffff15 stw r3,-4(fp) + a6f8: 00000106 br a700 + a6fc: e03fff15 stw zero,-4(fp) + a700: e0bfff17 ldw r2,-4(fp) + a704: e0bffb15 stw r2,-20(fp) + + if (fd) + a708: e0bffb17 ldw r2,-20(fp) + a70c: 1005003a cmpeq r2,r2,zero + a710: 10001d1e bne r2,zero,a788 + /* + * If the associated file system/device has a close function, call it so + * that any necessary cleanup code can run. + */ + + rval = (fd->dev->close) ? fd->dev->close(fd) : 0; + a714: e0bffb17 ldw r2,-20(fp) + a718: 10800017 ldw r2,0(r2) + a71c: 10800417 ldw r2,16(r2) + a720: 1005003a cmpeq r2,r2,zero + a724: 1000071e bne r2,zero,a744 + a728: e0bffb17 ldw r2,-20(fp) + a72c: 10800017 ldw r2,0(r2) + a730: 10800417 ldw r2,16(r2) + a734: e13ffb17 ldw r4,-20(fp) + a738: 103ee83a callr r2 + a73c: e0bffe15 stw r2,-8(fp) + a740: 00000106 br a748 + a744: e03ffe15 stw zero,-8(fp) + a748: e0bffe17 ldw r2,-8(fp) + a74c: e0bffa15 stw r2,-24(fp) + + /* Free the file descriptor structure and return. */ + + alt_release_fd (fildes); + a750: e13ffc17 ldw r4,-16(fp) + a754: 000b1f40 call b1f4 + if (rval < 0) + a758: e0bffa17 ldw r2,-24(fp) + a75c: 1004403a cmpge r2,r2,zero + a760: 1000071e bne r2,zero,a780 + { + ALT_ERRNO = -rval; + a764: 000a7b80 call a7b8 + a768: e0fffa17 ldw r3,-24(fp) + a76c: 00c7c83a sub r3,zero,r3 + a770: 10c00015 stw r3,0(r2) + return -1; + a774: 00bfffc4 movi r2,-1 + a778: e0bffd15 stw r2,-12(fp) + a77c: 00000806 br a7a0 + } + return 0; + a780: e03ffd15 stw zero,-12(fp) + a784: 00000606 br a7a0 + } + else + { + ALT_ERRNO = EBADFD; + a788: 000a7b80 call a7b8 + a78c: 1007883a mov r3,r2 + a790: 00801444 movi r2,81 + a794: 18800015 stw r2,0(r3) + return -1; + a798: 00bfffc4 movi r2,-1 + a79c: e0bffd15 stw r2,-12(fp) + a7a0: e0bffd17 ldw r2,-12(fp) + } +} + a7a4: e037883a mov sp,fp + a7a8: dfc00117 ldw ra,4(sp) + a7ac: df000017 ldw fp,0(sp) + a7b0: dec00204 addi sp,sp,8 + a7b4: f800283a ret + +0000a7b8 : +#undef errno + +extern int errno; + +static ALT_INLINE int* alt_get_errno(void) +{ + a7b8: defffd04 addi sp,sp,-12 + a7bc: dfc00215 stw ra,8(sp) + a7c0: df000115 stw fp,4(sp) + a7c4: df000104 addi fp,sp,4 + return ((alt_errno) ? alt_errno() : &errno); + a7c8: 00800074 movhi r2,1 + a7cc: 1080bd04 addi r2,r2,756 + a7d0: 10800017 ldw r2,0(r2) + a7d4: 1005003a cmpeq r2,r2,zero + a7d8: 1000061e bne r2,zero,a7f4 + a7dc: 00800074 movhi r2,1 + a7e0: 1080bd04 addi r2,r2,756 + a7e4: 10800017 ldw r2,0(r2) + a7e8: 103ee83a callr r2 + a7ec: e0bfff15 stw r2,-4(fp) + a7f0: 00000306 br a800 + a7f4: 00800074 movhi r2,1 + a7f8: 1087a504 addi r2,r2,7828 + a7fc: e0bfff15 stw r2,-4(fp) + a800: e0bfff17 ldw r2,-4(fp) +} + a804: e037883a mov sp,fp + a808: dfc00117 ldw ra,4(sp) + a80c: df000017 ldw fp,0(sp) + a810: dec00204 addi sp,sp,8 + a814: f800283a ret + +0000a818 : + * by the alt_dev_null device. It simple discards all data passed to it, and + * indicates that the data has been successfully transmitted. + */ + +static int alt_dev_null_write (alt_fd* fd, const char* ptr, int len) +{ + a818: defffc04 addi sp,sp,-16 + a81c: df000315 stw fp,12(sp) + a820: df000304 addi fp,sp,12 + a824: e13ffd15 stw r4,-12(fp) + a828: e17ffe15 stw r5,-8(fp) + a82c: e1bfff15 stw r6,-4(fp) + return len; + a830: e0bfff17 ldw r2,-4(fp) +} + a834: e037883a mov sp,fp + a838: df000017 ldw fp,0(sp) + a83c: dec00104 addi sp,sp,4 + a840: f800283a ret + +0000a844 : +} + +#else /* !ALT_USE_DIRECT_DRIVERS */ + +int ALT_FSTAT (int file, struct stat *st) +{ + a844: defff904 addi sp,sp,-28 + a848: dfc00615 stw ra,24(sp) + a84c: df000515 stw fp,20(sp) + a850: df000504 addi fp,sp,20 + a854: e13ffc15 stw r4,-16(fp) + a858: e17ffd15 stw r5,-12(fp) + * A common error case is that when the file descriptor was created, the call + * to open() failed resulting in a negative file descriptor. This is trapped + * below so that we don't try and process an invalid file descriptor. + */ + + fd = (file < 0) ? NULL : &alt_fd_list[file]; + a85c: e0bffc17 ldw r2,-16(fp) + a860: 1004803a cmplt r2,r2,zero + a864: 1000091e bne r2,zero,a88c + a868: e13ffc17 ldw r4,-16(fp) + a86c: 01400304 movi r5,12 + a870: 0009fc80 call 9fc8 <__mulsi3> + a874: 1007883a mov r3,r2 + a878: 00800074 movhi r2,1 + a87c: 10bbf204 addi r2,r2,-4152 + a880: 1887883a add r3,r3,r2 + a884: e0ffff15 stw r3,-4(fp) + a888: 00000106 br a890 + a88c: e03fff15 stw zero,-4(fp) + a890: e0bfff17 ldw r2,-4(fp) + a894: e0bffb15 stw r2,-20(fp) + + if (fd) + a898: e0bffb17 ldw r2,-20(fp) + a89c: 1005003a cmpeq r2,r2,zero + a8a0: 1000121e bne r2,zero,a8ec + { + /* Call the drivers fstat() function to fill out the "st" structure. */ + + if (fd->dev->fstat) + a8a4: e0bffb17 ldw r2,-20(fp) + a8a8: 10800017 ldw r2,0(r2) + a8ac: 10800817 ldw r2,32(r2) + a8b0: 1005003a cmpeq r2,r2,zero + a8b4: 1000081e bne r2,zero,a8d8 + { + return fd->dev->fstat(fd, st); + a8b8: e0bffb17 ldw r2,-20(fp) + a8bc: 10800017 ldw r2,0(r2) + a8c0: 10800817 ldw r2,32(r2) + a8c4: e13ffb17 ldw r4,-20(fp) + a8c8: e17ffd17 ldw r5,-12(fp) + a8cc: 103ee83a callr r2 + a8d0: e0bffe15 stw r2,-8(fp) + a8d4: 00000b06 br a904 + * device. + */ + + else + { + st->st_mode = _IFCHR; + a8d8: e0fffd17 ldw r3,-12(fp) + a8dc: 00880004 movi r2,8192 + a8e0: 18800115 stw r2,4(r3) + return 0; + a8e4: e03ffe15 stw zero,-8(fp) + a8e8: 00000606 br a904 + } + } + else + { + ALT_ERRNO = EBADFD; + a8ec: 000a91c0 call a91c + a8f0: 1007883a mov r3,r2 + a8f4: 00801444 movi r2,81 + a8f8: 18800015 stw r2,0(r3) + return -1; + a8fc: 00bfffc4 movi r2,-1 + a900: e0bffe15 stw r2,-8(fp) + a904: e0bffe17 ldw r2,-8(fp) + } +} + a908: e037883a mov sp,fp + a90c: dfc00117 ldw ra,4(sp) + a910: df000017 ldw fp,0(sp) + a914: dec00204 addi sp,sp,8 + a918: f800283a ret + +0000a91c : +#undef errno + +extern int errno; + +static ALT_INLINE int* alt_get_errno(void) +{ + a91c: defffd04 addi sp,sp,-12 + a920: dfc00215 stw ra,8(sp) + a924: df000115 stw fp,4(sp) + a928: df000104 addi fp,sp,4 + return ((alt_errno) ? alt_errno() : &errno); + a92c: 00800074 movhi r2,1 + a930: 1080bd04 addi r2,r2,756 + a934: 10800017 ldw r2,0(r2) + a938: 1005003a cmpeq r2,r2,zero + a93c: 1000061e bne r2,zero,a958 + a940: 00800074 movhi r2,1 + a944: 1080bd04 addi r2,r2,756 + a948: 10800017 ldw r2,0(r2) + a94c: 103ee83a callr r2 + a950: e0bfff15 stw r2,-4(fp) + a954: 00000306 br a964 + a958: 00800074 movhi r2,1 + a95c: 1087a504 addi r2,r2,7828 + a960: e0bfff15 stw r2,-4(fp) + a964: e0bfff17 ldw r2,-4(fp) +} + a968: e037883a mov sp,fp + a96c: dfc00117 ldw ra,4(sp) + a970: df000017 ldw fp,0(sp) + a974: dec00204 addi sp,sp,8 + a978: f800283a ret + +0000a97c : + * + * ALT_ISATTY is mapped onto the isatty() system call in alt_syscall.h + */ + +int ALT_ISATTY (int file) +{ + a97c: deffeb04 addi sp,sp,-84 + a980: dfc01415 stw ra,80(sp) + a984: df001315 stw fp,76(sp) + a988: df001304 addi fp,sp,76 + a98c: e13ffd15 stw r4,-12(fp) + * A common error case is that when the file descriptor was created, the call + * to open() failed resulting in a negative file descriptor. This is trapped + * below so that we don't try and process an invalid file descriptor. + */ + + fd = (file < 0) ? NULL : &alt_fd_list[file]; + a990: e0bffd17 ldw r2,-12(fp) + a994: 1004803a cmplt r2,r2,zero + a998: 1000091e bne r2,zero,a9c0 + a99c: e13ffd17 ldw r4,-12(fp) + a9a0: 01400304 movi r5,12 + a9a4: 0009fc80 call 9fc8 <__mulsi3> + a9a8: 1007883a mov r3,r2 + a9ac: 00800074 movhi r2,1 + a9b0: 10bbf204 addi r2,r2,-4152 + a9b4: 1887883a add r3,r3,r2 + a9b8: e0ffff15 stw r3,-4(fp) + a9bc: 00000106 br a9c4 + a9c0: e03fff15 stw zero,-4(fp) + a9c4: e0bfff17 ldw r2,-4(fp) + a9c8: e0bfed15 stw r2,-76(fp) + + if (fd) + a9cc: e0bfed17 ldw r2,-76(fp) + a9d0: 1005003a cmpeq r2,r2,zero + a9d4: 10000f1e bne r2,zero,aa14 + /* + * If a device driver does not provide an fstat() function, then it is + * treated as a terminal device by default. + */ + + if (!fd->dev->fstat) + a9d8: e0bfed17 ldw r2,-76(fp) + a9dc: 10800017 ldw r2,0(r2) + a9e0: 10800817 ldw r2,32(r2) + a9e4: 1004c03a cmpne r2,r2,zero + a9e8: 1000031e bne r2,zero,a9f8 + { + return 1; + a9ec: 00800044 movi r2,1 + a9f0: e0bffe15 stw r2,-8(fp) + a9f4: 00000c06 br aa28 + * this is called so that the device can identify itself. + */ + + else + { + fstat (file, &stat); + a9f8: e17fee04 addi r5,fp,-72 + a9fc: e13ffd17 ldw r4,-12(fp) + aa00: 000a8440 call a844 + return (stat.st_mode == _IFCHR) ? 1 : 0; + aa04: e0bfef17 ldw r2,-68(fp) + aa08: 10880020 cmpeqi r2,r2,8192 + aa0c: e0bffe15 stw r2,-8(fp) + aa10: 00000506 br aa28 + } + } + else + { + ALT_ERRNO = EBADFD; + aa14: 000aa400 call aa40 + aa18: 1007883a mov r3,r2 + aa1c: 00801444 movi r2,81 + aa20: 18800015 stw r2,0(r3) + return 0; + aa24: e03ffe15 stw zero,-8(fp) + aa28: e0bffe17 ldw r2,-8(fp) + } +} + aa2c: e037883a mov sp,fp + aa30: dfc00117 ldw ra,4(sp) + aa34: df000017 ldw fp,0(sp) + aa38: dec00204 addi sp,sp,8 + aa3c: f800283a ret + +0000aa40 : +#undef errno + +extern int errno; + +static ALT_INLINE int* alt_get_errno(void) +{ + aa40: defffd04 addi sp,sp,-12 + aa44: dfc00215 stw ra,8(sp) + aa48: df000115 stw fp,4(sp) + aa4c: df000104 addi fp,sp,4 + return ((alt_errno) ? alt_errno() : &errno); + aa50: 00800074 movhi r2,1 + aa54: 1080bd04 addi r2,r2,756 + aa58: 10800017 ldw r2,0(r2) + aa5c: 1005003a cmpeq r2,r2,zero + aa60: 1000061e bne r2,zero,aa7c + aa64: 00800074 movhi r2,1 + aa68: 1080bd04 addi r2,r2,756 + aa6c: 10800017 ldw r2,0(r2) + aa70: 103ee83a callr r2 + aa74: e0bfff15 stw r2,-4(fp) + aa78: 00000306 br aa88 + aa7c: 00800074 movhi r2,1 + aa80: 1087a504 addi r2,r2,7828 + aa84: e0bfff15 stw r2,-4(fp) + aa88: e0bfff17 ldw r2,-4(fp) +} + aa8c: e037883a mov sp,fp + aa90: dfc00117 ldw ra,4(sp) + aa94: df000017 ldw fp,0(sp) + aa98: dec00204 addi sp,sp,8 + aa9c: f800283a ret + +0000aaa0 : + * there is no bootloader, so this application is responsible for loading to + * RAM any sections that are required. + */ + +void alt_load (void) +{ + aaa0: defffe04 addi sp,sp,-8 + aaa4: dfc00115 stw ra,4(sp) + aaa8: df000015 stw fp,0(sp) + aaac: d839883a mov fp,sp + /* + * Copy the .rwdata section. + */ + + alt_load_section (&__flash_rwdata_start, + aab0: 01000074 movhi r4,1 + aab4: 2100c404 addi r4,r4,784 + aab8: 01400074 movhi r5,1 + aabc: 2979e304 addi r5,r5,-6260 + aac0: 01800074 movhi r6,1 + aac4: 3180c404 addi r6,r6,784 + aac8: 000ab200 call ab20 + + /* + * Copy the exception handler. + */ + + alt_load_section (&__flash_exceptions_start, + aacc: 01000034 movhi r4,0 + aad0: 21000804 addi r4,r4,32 + aad4: 01400034 movhi r5,0 + aad8: 29400804 addi r5,r5,32 + aadc: 01800034 movhi r6,0 + aae0: 31806d04 addi r6,r6,436 + aae4: 000ab200 call ab20 + + /* + * Copy the .rodata section. + */ + + alt_load_section (&__flash_rodata_start, + aae8: 01000074 movhi r4,1 + aaec: 21385704 addi r4,r4,-7844 + aaf0: 01400074 movhi r5,1 + aaf4: 29785704 addi r5,r5,-7844 + aaf8: 01800074 movhi r6,1 + aafc: 31b9e304 addi r6,r6,-6260 + ab00: 000ab200 call ab20 + + /* + * Now ensure that the caches are in synch. + */ + + alt_dcache_flush_all(); + ab04: 000d14c0 call d14c + alt_icache_flush_all(); + ab08: 000d5c80 call d5c8 +} + ab0c: e037883a mov sp,fp + ab10: dfc00117 ldw ra,4(sp) + ab14: df000017 ldw fp,0(sp) + ab18: dec00204 addi sp,sp,8 + ab1c: f800283a ret + +0000ab20 : + */ + +static void ALT_INLINE alt_load_section (alt_u32* from, + alt_u32* to, + alt_u32* end) +{ + ab20: defffc04 addi sp,sp,-16 + ab24: df000315 stw fp,12(sp) + ab28: df000304 addi fp,sp,12 + ab2c: e13ffd15 stw r4,-12(fp) + ab30: e17ffe15 stw r5,-8(fp) + ab34: e1bfff15 stw r6,-4(fp) + if (to != from) + ab38: e0fffe17 ldw r3,-8(fp) + ab3c: e0bffd17 ldw r2,-12(fp) + ab40: 18800e26 beq r3,r2,ab7c + { + while( to != end ) + ab44: 00000a06 br ab70 + { + *to++ = *from++; + ab48: e0bffd17 ldw r2,-12(fp) + ab4c: 10c00017 ldw r3,0(r2) + ab50: e0bffe17 ldw r2,-8(fp) + ab54: 10c00015 stw r3,0(r2) + ab58: e0bffe17 ldw r2,-8(fp) + ab5c: 10800104 addi r2,r2,4 + ab60: e0bffe15 stw r2,-8(fp) + ab64: e0bffd17 ldw r2,-12(fp) + ab68: 10800104 addi r2,r2,4 + ab6c: e0bffd15 stw r2,-12(fp) + alt_u32* to, + alt_u32* end) +{ + if (to != from) + { + while( to != end ) + ab70: e0fffe17 ldw r3,-8(fp) + ab74: e0bfff17 ldw r2,-4(fp) + ab78: 18bff31e bne r3,r2,ab48 + { + *to++ = *from++; + } + } +} + ab7c: e037883a mov sp,fp + ab80: df000017 ldw fp,0(sp) + ab84: dec00104 addi sp,sp,4 + ab88: f800283a ret + +0000ab8c : + * ALT_LSEEK is mapped onto the lseek() system call in alt_syscall.h + * + */ + +off_t ALT_LSEEK (int file, off_t ptr, int dir) +{ + ab8c: defff804 addi sp,sp,-32 + ab90: dfc00715 stw ra,28(sp) + ab94: df000615 stw fp,24(sp) + ab98: df000604 addi fp,sp,24 + ab9c: e13ffc15 stw r4,-16(fp) + aba0: e17ffd15 stw r5,-12(fp) + aba4: e1bffe15 stw r6,-8(fp) + alt_fd* fd; + off_t rc = 0; + aba8: e03ffa15 stw zero,-24(fp) + * A common error case is that when the file descriptor was created, the call + * to open() failed resulting in a negative file descriptor. This is trapped + * below so that we don't try and process an invalid file descriptor. + */ + + fd = (file < 0) ? NULL : &alt_fd_list[file]; + abac: e0bffc17 ldw r2,-16(fp) + abb0: 1004803a cmplt r2,r2,zero + abb4: 1000091e bne r2,zero,abdc + abb8: e13ffc17 ldw r4,-16(fp) + abbc: 01400304 movi r5,12 + abc0: 0009fc80 call 9fc8 <__mulsi3> + abc4: 1007883a mov r3,r2 + abc8: 00800074 movhi r2,1 + abcc: 10bbf204 addi r2,r2,-4152 + abd0: 1887883a add r3,r3,r2 + abd4: e0ffff15 stw r3,-4(fp) + abd8: 00000106 br abe0 + abdc: e03fff15 stw zero,-4(fp) + abe0: e0bfff17 ldw r2,-4(fp) + abe4: e0bffb15 stw r2,-20(fp) + + if (fd) + abe8: e0bffb17 ldw r2,-20(fp) + abec: 1005003a cmpeq r2,r2,zero + abf0: 1000111e bne r2,zero,ac38 + /* + * If the device driver provides an implementation of the lseek() function, + * then call that to process the request. + */ + + if (fd->dev->lseek) + abf4: e0bffb17 ldw r2,-20(fp) + abf8: 10800017 ldw r2,0(r2) + abfc: 10800717 ldw r2,28(r2) + ac00: 1005003a cmpeq r2,r2,zero + ac04: 1000091e bne r2,zero,ac2c + { + rc = fd->dev->lseek(fd, ptr, dir); + ac08: e0bffb17 ldw r2,-20(fp) + ac0c: 10800017 ldw r2,0(r2) + ac10: 10800717 ldw r2,28(r2) + ac14: e13ffb17 ldw r4,-20(fp) + ac18: e17ffd17 ldw r5,-12(fp) + ac1c: e1bffe17 ldw r6,-8(fp) + ac20: 103ee83a callr r2 + ac24: e0bffa15 stw r2,-24(fp) + ac28: 00000506 br ac40 + * Otherwise return an error. + */ + + else + { + rc = -ENOTSUP; + ac2c: 00bfde84 movi r2,-134 + ac30: e0bffa15 stw r2,-24(fp) + ac34: 00000206 br ac40 + } + } + else + { + rc = -EBADFD; + ac38: 00bfebc4 movi r2,-81 + ac3c: e0bffa15 stw r2,-24(fp) + } + + if (rc < 0) + ac40: e0bffa17 ldw r2,-24(fp) + ac44: 1004403a cmpge r2,r2,zero + ac48: 1000071e bne r2,zero,ac68 + { + ALT_ERRNO = -rc; + ac4c: 000ac800 call ac80 + ac50: 1007883a mov r3,r2 + ac54: e0bffa17 ldw r2,-24(fp) + ac58: 0085c83a sub r2,zero,r2 + ac5c: 18800015 stw r2,0(r3) + rc = -1; + ac60: 00bfffc4 movi r2,-1 + ac64: e0bffa15 stw r2,-24(fp) + } + + return rc; + ac68: e0bffa17 ldw r2,-24(fp) +} + ac6c: e037883a mov sp,fp + ac70: dfc00117 ldw ra,4(sp) + ac74: df000017 ldw fp,0(sp) + ac78: dec00204 addi sp,sp,8 + ac7c: f800283a ret + +0000ac80 : +#undef errno + +extern int errno; + +static ALT_INLINE int* alt_get_errno(void) +{ + ac80: defffd04 addi sp,sp,-12 + ac84: dfc00215 stw ra,8(sp) + ac88: df000115 stw fp,4(sp) + ac8c: df000104 addi fp,sp,4 + return ((alt_errno) ? alt_errno() : &errno); + ac90: 00800074 movhi r2,1 + ac94: 1080bd04 addi r2,r2,756 + ac98: 10800017 ldw r2,0(r2) + ac9c: 1005003a cmpeq r2,r2,zero + aca0: 1000061e bne r2,zero,acbc + aca4: 00800074 movhi r2,1 + aca8: 1080bd04 addi r2,r2,756 + acac: 10800017 ldw r2,0(r2) + acb0: 103ee83a callr r2 + acb4: e0bfff15 stw r2,-4(fp) + acb8: 00000306 br acc8 + acbc: 00800074 movhi r2,1 + acc0: 1087a504 addi r2,r2,7828 + acc4: e0bfff15 stw r2,-4(fp) + acc8: e0bfff17 ldw r2,-4(fp) +} + accc: e037883a mov sp,fp + acd0: dfc00117 ldw ra,4(sp) + acd4: df000017 ldw fp,0(sp) + acd8: dec00204 addi sp,sp,8 + acdc: f800283a ret + +0000ace0 : + * devices/filesystems/components in the system; and call the entry point for + * the users application, i.e. main(). + */ + +void alt_main (void) +{ + ace0: defffd04 addi sp,sp,-12 + ace4: dfc00215 stw ra,8(sp) + ace8: df000115 stw fp,4(sp) + acec: df000104 addi fp,sp,4 +#endif + + /* ALT LOG - please see HAL/sys/alt_log_printf.h for details */ + ALT_LOG_PRINT_BOOT("[alt_main.c] Entering alt_main, calling alt_irq_init.\r\n"); + /* Initialize the interrupt controller. */ + alt_irq_init (NULL); + acf0: 0009883a mov r4,zero + acf4: 000b4ac0 call b4ac + ALT_LOG_PRINT_BOOT("[alt_main.c] Done OS Init, calling alt_sem_create.\r\n"); + ALT_SEM_CREATE (&alt_fd_list_lock, 1); + + /* Initialize the device drivers/software components. */ + ALT_LOG_PRINT_BOOT("[alt_main.c] Calling alt_sys_init.\r\n"); + alt_sys_init(); + acf8: 000b4e00 call b4e0 + * devices be present (not equal to /dev/null) and if direct drivers + * aren't being used. + */ + + ALT_LOG_PRINT_BOOT("[alt_main.c] Redirecting IO.\r\n"); + alt_io_redirect(ALT_STDOUT, ALT_STDIN, ALT_STDERR); + acfc: 01000074 movhi r4,1 + ad00: 21393504 addi r4,r4,-6956 + ad04: 01400074 movhi r5,1 + ad08: 29793504 addi r5,r5,-6956 + ad0c: 01800074 movhi r6,1 + ad10: 31b93504 addi r6,r6,-6956 + ad14: 000d9880 call d988 + /* + * Call the C++ constructors + */ + + ALT_LOG_PRINT_BOOT("[alt_main.c] Calling C++ constructors.\r\n"); + _do_ctors (); + ad18: 000d27c0 call d27c <_do_ctors> + * redefined as _exit()). This is in the interest of reducing code footprint, + * in that the atexit() overhead is removed when it's not needed. + */ + + ALT_LOG_PRINT_BOOT("[alt_main.c] Calling atexit.\r\n"); + atexit (_do_dtors); + ad1c: 01000074 movhi r4,1 + ad20: 2134b804 addi r4,r4,-11552 + ad24: 000dd500 call dd50 + ALT_LOG_PRINT_BOOT("[alt_main.c] Calling main.\r\n"); + +#ifdef ALT_NO_EXIT + main (alt_argc, alt_argv, alt_envp); +#else + result = main (alt_argc, alt_argv, alt_envp); + ad28: d126fa17 ldw r4,-25624(gp) + ad2c: d166fb17 ldw r5,-25620(gp) + ad30: d1a6fc17 ldw r6,-25616(gp) + ad34: 00001f00 call 1f0
+ ad38: e0bfff15 stw r2,-4(fp) + close(STDOUT_FILENO); + ad3c: 01000044 movi r4,1 + ad40: 000a6b80 call a6b8 + exit (result); + ad44: e13fff17 ldw r4,-4(fp) + ad48: 000dd640 call dd64 + +0000ad4c <__malloc_lock>: + * configuration is single threaded, so there is nothing to do here. Note that + * this requires that malloc is never called by an interrupt service routine. + */ + +void __malloc_lock ( struct _reent *_r ) +{ + ad4c: defffe04 addi sp,sp,-8 + ad50: df000115 stw fp,4(sp) + ad54: df000104 addi fp,sp,4 + ad58: e13fff15 stw r4,-4(fp) +} + ad5c: e037883a mov sp,fp + ad60: df000017 ldw fp,0(sp) + ad64: dec00104 addi sp,sp,4 + ad68: f800283a ret + +0000ad6c <__malloc_unlock>: +/* + * + */ + +void __malloc_unlock ( struct _reent *_r ) +{ + ad6c: defffe04 addi sp,sp,-8 + ad70: df000115 stw fp,4(sp) + ad74: df000104 addi fp,sp,4 + ad78: e13fff15 stw r4,-4(fp) +} + ad7c: e037883a mov sp,fp + ad80: df000017 ldw fp,0(sp) + ad84: dec00104 addi sp,sp,4 + ad88: f800283a ret + +0000ad8c : + * performed for devices. Filesystems are required to handle the ioctl() call + * themselves, and report the error from the filesystems open() function. + */ + +static int alt_file_locked (alt_fd* fd) +{ + ad8c: defffa04 addi sp,sp,-24 + ad90: dfc00515 stw ra,20(sp) + ad94: df000415 stw fp,16(sp) + ad98: dc000315 stw r16,12(sp) + ad9c: df000304 addi fp,sp,12 + ada0: e13ffe15 stw r4,-8(fp) + + /* + * Mark the file descriptor as belonging to a device. + */ + + fd->fd_flags |= ALT_FD_DEV; + ada4: e0bffe17 ldw r2,-8(fp) + ada8: 10800217 ldw r2,8(r2) + adac: 10d00034 orhi r3,r2,16384 + adb0: e0bffe17 ldw r2,-8(fp) + adb4: 10c00215 stw r3,8(r2) + /* + * Loop through all current file descriptors searching for one that's locked + * for exclusive access. If a match is found, generate an error. + */ + + for (i = 0; i <= alt_max_fd; i++) + adb8: e03ffd15 stw zero,-12(fp) + adbc: 00002306 br ae4c + { + if ((alt_fd_list[i].dev == fd->dev) && + adc0: e13ffd17 ldw r4,-12(fp) + adc4: 04000074 movhi r16,1 + adc8: 843bf204 addi r16,r16,-4152 + adcc: 01400304 movi r5,12 + add0: 0009fc80 call 9fc8 <__mulsi3> + add4: 1405883a add r2,r2,r16 + add8: 10c00017 ldw r3,0(r2) + addc: e0bffe17 ldw r2,-8(fp) + ade0: 10800017 ldw r2,0(r2) + ade4: 1880161e bne r3,r2,ae40 + ade8: e13ffd17 ldw r4,-12(fp) + adec: 04000074 movhi r16,1 + adf0: 843bf204 addi r16,r16,-4152 + adf4: 01400304 movi r5,12 + adf8: 0009fc80 call 9fc8 <__mulsi3> + adfc: 1405883a add r2,r2,r16 + ae00: 10800204 addi r2,r2,8 + ae04: 10800017 ldw r2,0(r2) + ae08: 1004403a cmpge r2,r2,zero + ae0c: 10000c1e bne r2,zero,ae40 + ae10: e13ffd17 ldw r4,-12(fp) + ae14: 01400304 movi r5,12 + ae18: 0009fc80 call 9fc8 <__mulsi3> + ae1c: 1007883a mov r3,r2 + ae20: 00800074 movhi r2,1 + ae24: 10bbf204 addi r2,r2,-4152 + ae28: 1887883a add r3,r3,r2 + ae2c: e0bffe17 ldw r2,-8(fp) + ae30: 18800326 beq r3,r2,ae40 + (alt_fd_list[i].fd_flags & ALT_FD_EXCL) && + (&alt_fd_list[i] != fd)) + { + return -EACCES; + ae34: 00bffcc4 movi r2,-13 + ae38: e0bfff15 stw r2,-4(fp) + ae3c: 00000a06 br ae68 + /* + * Loop through all current file descriptors searching for one that's locked + * for exclusive access. If a match is found, generate an error. + */ + + for (i = 0; i <= alt_max_fd; i++) + ae40: e0bffd17 ldw r2,-12(fp) + ae44: 10800044 addi r2,r2,1 + ae48: e0bffd15 stw r2,-12(fp) + ae4c: 00800074 movhi r2,1 + ae50: 1080bc04 addi r2,r2,752 + ae54: 10800017 ldw r2,0(r2) + ae58: 1007883a mov r3,r2 + ae5c: e0bffd17 ldw r2,-12(fp) + ae60: 18bfd72e bgeu r3,r2,adc0 + } + } + + /* The device is not locked */ + + return 0; + ae64: e03fff15 stw zero,-4(fp) + ae68: e0bfff17 ldw r2,-4(fp) +} + ae6c: e037883a mov sp,fp + ae70: dfc00217 ldw ra,8(sp) + ae74: df000117 ldw fp,4(sp) + ae78: dc000017 ldw r16,0(sp) + ae7c: dec00304 addi sp,sp,12 + ae80: f800283a ret + +0000ae84 : + * + * ALT_OPEN is mapped onto the open() system call in alt_syscall.h + */ + +int ALT_OPEN (const char* file, int flags, int mode) +{ + ae84: defff404 addi sp,sp,-48 + ae88: dfc00b15 stw ra,44(sp) + ae8c: df000a15 stw fp,40(sp) + ae90: df000a04 addi fp,sp,40 + ae94: e13ffb15 stw r4,-20(fp) + ae98: e17ffc15 stw r5,-16(fp) + ae9c: e1bffd15 stw r6,-12(fp) + alt_dev* dev; + alt_fd* fd; + int index = -1; + aea0: 00bfffc4 movi r2,-1 + aea4: e0bff815 stw r2,-32(fp) + int status = -ENODEV; + aea8: 00bffb44 movi r2,-19 + aeac: e0bff715 stw r2,-36(fp) + int isafs = 0; + aeb0: e03ff615 stw zero,-40(fp) + /* + * Check the device list, to see if a device with a matching name is + * registered. + */ + + if (!(dev = alt_find_dev (file, &alt_dev_list))) + aeb4: e13ffb17 ldw r4,-20(fp) + aeb8: 01400074 movhi r5,1 + aebc: 2940ba04 addi r5,r5,744 + aec0: 000d3440 call d344 + aec4: e0bffa15 stw r2,-24(fp) + aec8: e0bffa17 ldw r2,-24(fp) + aecc: 1004c03a cmpne r2,r2,zero + aed0: 1000051e bne r2,zero,aee8 + { + /* No matching device, so try the filesystem list */ + + dev = alt_find_file (file); + aed4: e13ffb17 ldw r4,-20(fp) + aed8: 000d3d80 call d3d8 + aedc: e0bffa15 stw r2,-24(fp) + isafs = 1; + aee0: 00800044 movi r2,1 + aee4: e0bff615 stw r2,-40(fp) + + /* + * If a matching device or filesystem is found, allocate a file descriptor. + */ + + if (dev) + aee8: e0bffa17 ldw r2,-24(fp) + aeec: 1005003a cmpeq r2,r2,zero + aef0: 1000311e bne r2,zero,afb8 + { + if ((index = alt_get_fd (dev)) < 0) + aef4: e13ffa17 ldw r4,-24(fp) + aef8: 000d4f80 call d4f8 + aefc: e0bff815 stw r2,-32(fp) + af00: e0bff817 ldw r2,-32(fp) + af04: 1004403a cmpge r2,r2,zero + af08: 1000031e bne r2,zero,af18 + { + status = index; + af0c: e0bff817 ldw r2,-32(fp) + af10: e0bff715 stw r2,-36(fp) + af14: 00002a06 br afc0 + } + else + { + fd = &alt_fd_list[index]; + af18: e13ff817 ldw r4,-32(fp) + af1c: 01400304 movi r5,12 + af20: 0009fc80 call 9fc8 <__mulsi3> + af24: 1007883a mov r3,r2 + af28: 00800074 movhi r2,1 + af2c: 10bbf204 addi r2,r2,-4152 + af30: 1885883a add r2,r3,r2 + af34: e0bff915 stw r2,-28(fp) + fd->fd_flags = (flags & ~ALT_FD_FLAGS_MASK); + af38: e0fffc17 ldw r3,-16(fp) + af3c: 00900034 movhi r2,16384 + af40: 10bfffc4 addi r2,r2,-1 + af44: 1886703a and r3,r3,r2 + af48: e0bff917 ldw r2,-28(fp) + af4c: 10c00215 stw r3,8(r2) + + /* If this is a device, ensure it isn't already locked */ + + if (isafs || ((status = alt_file_locked (fd)) >= 0)) + af50: e0bff617 ldw r2,-40(fp) + af54: 1004c03a cmpne r2,r2,zero + af58: 1000061e bne r2,zero,af74 + af5c: e13ff917 ldw r4,-28(fp) + af60: 000ad8c0 call ad8c + af64: e0bff715 stw r2,-36(fp) + af68: e0bff717 ldw r2,-36(fp) + af6c: 1004803a cmplt r2,r2,zero + af70: 1000131e bne r2,zero,afc0 + /* + * If the device or filesystem provides an open() callback function, + * call it now to perform any device/filesystem specific operations. + */ + + status = (dev->open) ? dev->open(fd, file, flags, mode): 0; + af74: e0bffa17 ldw r2,-24(fp) + af78: 10800317 ldw r2,12(r2) + af7c: 1005003a cmpeq r2,r2,zero + af80: 1000091e bne r2,zero,afa8 + af84: e0bffa17 ldw r2,-24(fp) + af88: 10800317 ldw r2,12(r2) + af8c: e13ff917 ldw r4,-28(fp) + af90: e17ffb17 ldw r5,-20(fp) + af94: e1bffc17 ldw r6,-16(fp) + af98: e1fffd17 ldw r7,-12(fp) + af9c: 103ee83a callr r2 + afa0: e0bfff15 stw r2,-4(fp) + afa4: 00000106 br afac + afa8: e03fff15 stw zero,-4(fp) + afac: e0bfff17 ldw r2,-4(fp) + afb0: e0bff715 stw r2,-36(fp) + afb4: 00000206 br afc0 + } + } + } + else + { + status = -ENODEV; + afb8: 00bffb44 movi r2,-19 + afbc: e0bff715 stw r2,-36(fp) + } + + /* Allocation failed, so clean up and return an error */ + + if (status < 0) + afc0: e0bff717 ldw r2,-36(fp) + afc4: 1004403a cmpge r2,r2,zero + afc8: 1000091e bne r2,zero,aff0 + { + alt_release_fd (index); + afcc: e13ff817 ldw r4,-32(fp) + afd0: 000b1f40 call b1f4 + ALT_ERRNO = -status; + afd4: 000b0100 call b010 + afd8: e0fff717 ldw r3,-36(fp) + afdc: 00c7c83a sub r3,zero,r3 + afe0: 10c00015 stw r3,0(r2) + return -1; + afe4: 00bfffc4 movi r2,-1 + afe8: e0bffe15 stw r2,-8(fp) + afec: 00000206 br aff8 + } + + /* return the reference upon success */ + + return index; + aff0: e0bff817 ldw r2,-32(fp) + aff4: e0bffe15 stw r2,-8(fp) + aff8: e0bffe17 ldw r2,-8(fp) +} + affc: e037883a mov sp,fp + b000: dfc00117 ldw ra,4(sp) + b004: df000017 ldw fp,0(sp) + b008: dec00204 addi sp,sp,8 + b00c: f800283a ret + +0000b010 : +#undef errno + +extern int errno; + +static ALT_INLINE int* alt_get_errno(void) +{ + b010: defffd04 addi sp,sp,-12 + b014: dfc00215 stw ra,8(sp) + b018: df000115 stw fp,4(sp) + b01c: df000104 addi fp,sp,4 + return ((alt_errno) ? alt_errno() : &errno); + b020: 00800074 movhi r2,1 + b024: 1080bd04 addi r2,r2,756 + b028: 10800017 ldw r2,0(r2) + b02c: 1005003a cmpeq r2,r2,zero + b030: 1000061e bne r2,zero,b04c + b034: 00800074 movhi r2,1 + b038: 1080bd04 addi r2,r2,756 + b03c: 10800017 ldw r2,0(r2) + b040: 103ee83a callr r2 + b044: e0bfff15 stw r2,-4(fp) + b048: 00000306 br b058 + b04c: 00800074 movhi r2,1 + b050: 1087a504 addi r2,r2,7828 + b054: e0bfff15 stw r2,-4(fp) + b058: e0bfff17 ldw r2,-4(fp) +} + b05c: e037883a mov sp,fp + b060: dfc00117 ldw ra,4(sp) + b064: df000017 ldw fp,0(sp) + b068: dec00204 addi sp,sp,8 + b06c: f800283a ret + +0000b070 : +} + +#else /* !ALT_USE_DIRECT_DRIVERS */ + +int ALT_READ (int file, void *ptr, size_t len) +{ + b070: defff704 addi sp,sp,-36 + b074: dfc00815 stw ra,32(sp) + b078: df000715 stw fp,28(sp) + b07c: df000704 addi fp,sp,28 + b080: e13ffb15 stw r4,-20(fp) + b084: e17ffc15 stw r5,-16(fp) + b088: e1bffd15 stw r6,-12(fp) + * A common error case is that when the file descriptor was created, the call + * to open() failed resulting in a negative file descriptor. This is trapped + * below so that we don't try and process an invalid file descriptor. + */ + + fd = (file < 0) ? NULL : &alt_fd_list[file]; + b08c: e0bffb17 ldw r2,-20(fp) + b090: 1004803a cmplt r2,r2,zero + b094: 1000091e bne r2,zero,b0bc + b098: e13ffb17 ldw r4,-20(fp) + b09c: 01400304 movi r5,12 + b0a0: 0009fc80 call 9fc8 <__mulsi3> + b0a4: 1007883a mov r3,r2 + b0a8: 00800074 movhi r2,1 + b0ac: 10bbf204 addi r2,r2,-4152 + b0b0: 1887883a add r3,r3,r2 + b0b4: e0ffff15 stw r3,-4(fp) + b0b8: 00000106 br b0c0 + b0bc: e03fff15 stw zero,-4(fp) + b0c0: e0bfff17 ldw r2,-4(fp) + b0c4: e0bffa15 stw r2,-24(fp) + + if (fd) + b0c8: e0bffa17 ldw r2,-24(fp) + b0cc: 1005003a cmpeq r2,r2,zero + b0d0: 1000241e bne r2,zero,b164 + * If the file has not been opened with read access, or if the driver does + * not provide an implementation of read(), generate an error. Otherwise + * call the drivers read() function to process the request. + */ + + if (((fd->fd_flags & O_ACCMODE) != O_WRONLY) && + b0d4: e0bffa17 ldw r2,-24(fp) + b0d8: 10800217 ldw r2,8(r2) + b0dc: 108000cc andi r2,r2,3 + b0e0: 10800060 cmpeqi r2,r2,1 + b0e4: 10001a1e bne r2,zero,b150 + b0e8: e0bffa17 ldw r2,-24(fp) + b0ec: 10800017 ldw r2,0(r2) + b0f0: 10800517 ldw r2,20(r2) + b0f4: 1005003a cmpeq r2,r2,zero + b0f8: 1000151e bne r2,zero,b150 + (fd->dev->read)) + { + if ((rval = fd->dev->read(fd, ptr, len)) < 0) + b0fc: e0bffa17 ldw r2,-24(fp) + b100: 10800017 ldw r2,0(r2) + b104: 10800517 ldw r2,20(r2) + b108: e17ffc17 ldw r5,-16(fp) + b10c: e1bffd17 ldw r6,-12(fp) + b110: e13ffa17 ldw r4,-24(fp) + b114: 103ee83a callr r2 + b118: e0bff915 stw r2,-28(fp) + b11c: e0bff917 ldw r2,-28(fp) + b120: 1004403a cmpge r2,r2,zero + b124: 1000071e bne r2,zero,b144 + { + ALT_ERRNO = -rval; + b128: 000b1940 call b194 + b12c: e0fff917 ldw r3,-28(fp) + b130: 00c7c83a sub r3,zero,r3 + b134: 10c00015 stw r3,0(r2) + return -1; + b138: 00bfffc4 movi r2,-1 + b13c: e0bffe15 stw r2,-8(fp) + b140: 00000e06 br b17c + } + return rval; + b144: e0bff917 ldw r2,-28(fp) + b148: e0bffe15 stw r2,-8(fp) + b14c: 00000b06 br b17c + } + else + { + ALT_ERRNO = EACCES; + b150: 000b1940 call b194 + b154: 1007883a mov r3,r2 + b158: 00800344 movi r2,13 + b15c: 18800015 stw r2,0(r3) + b160: 00000406 br b174 + } + } + else + { + ALT_ERRNO = EBADFD; + b164: 000b1940 call b194 + b168: 1007883a mov r3,r2 + b16c: 00801444 movi r2,81 + b170: 18800015 stw r2,0(r3) + } + return -1; + b174: 00bfffc4 movi r2,-1 + b178: e0bffe15 stw r2,-8(fp) + b17c: e0bffe17 ldw r2,-8(fp) +} + b180: e037883a mov sp,fp + b184: dfc00117 ldw ra,4(sp) + b188: df000017 ldw fp,0(sp) + b18c: dec00204 addi sp,sp,8 + b190: f800283a ret + +0000b194 : +#undef errno + +extern int errno; + +static ALT_INLINE int* alt_get_errno(void) +{ + b194: defffd04 addi sp,sp,-12 + b198: dfc00215 stw ra,8(sp) + b19c: df000115 stw fp,4(sp) + b1a0: df000104 addi fp,sp,4 + return ((alt_errno) ? alt_errno() : &errno); + b1a4: 00800074 movhi r2,1 + b1a8: 1080bd04 addi r2,r2,756 + b1ac: 10800017 ldw r2,0(r2) + b1b0: 1005003a cmpeq r2,r2,zero + b1b4: 1000061e bne r2,zero,b1d0 + b1b8: 00800074 movhi r2,1 + b1bc: 1080bd04 addi r2,r2,756 + b1c0: 10800017 ldw r2,0(r2) + b1c4: 103ee83a callr r2 + b1c8: e0bfff15 stw r2,-4(fp) + b1cc: 00000306 br b1dc + b1d0: 00800074 movhi r2,1 + b1d4: 1087a504 addi r2,r2,7828 + b1d8: e0bfff15 stw r2,-4(fp) + b1dc: e0bfff17 ldw r2,-4(fp) +} + b1e0: e037883a mov sp,fp + b1e4: dfc00117 ldw ra,4(sp) + b1e8: df000017 ldw fp,0(sp) + b1ec: dec00204 addi sp,sp,8 + b1f0: f800283a ret + +0000b1f4 : + * File descriptors correcponding to standard in, standard out and standard + * error cannont be released backed to the pool. They are always reserved. + */ + +void alt_release_fd (int fd) +{ + b1f4: defffc04 addi sp,sp,-16 + b1f8: dfc00315 stw ra,12(sp) + b1fc: df000215 stw fp,8(sp) + b200: dc000115 stw r16,4(sp) + b204: df000104 addi fp,sp,4 + b208: e13fff15 stw r4,-4(fp) + if (fd > 2) + b20c: e0bfff17 ldw r2,-4(fp) + b210: 108000d0 cmplti r2,r2,3 + b214: 10000f1e bne r2,zero,b254 + { + alt_fd_list[fd].fd_flags = 0; + b218: e13fff17 ldw r4,-4(fp) + b21c: 04000074 movhi r16,1 + b220: 843bf204 addi r16,r16,-4152 + b224: 01400304 movi r5,12 + b228: 0009fc80 call 9fc8 <__mulsi3> + b22c: 1405883a add r2,r2,r16 + b230: 10800204 addi r2,r2,8 + b234: 10000015 stw zero,0(r2) + alt_fd_list[fd].dev = 0; + b238: e13fff17 ldw r4,-4(fp) + b23c: 04000074 movhi r16,1 + b240: 843bf204 addi r16,r16,-4152 + b244: 01400304 movi r5,12 + b248: 0009fc80 call 9fc8 <__mulsi3> + b24c: 1405883a add r2,r2,r16 + b250: 10000015 stw zero,0(r2) + } +} + b254: e037883a mov sp,fp + b258: dfc00217 ldw ra,8(sp) + b25c: df000117 ldw fp,4(sp) + b260: dc000017 ldw r16,0(sp) + b264: dec00304 addi sp,sp,12 + b268: f800283a ret + +0000b26c : +#endif + +caddr_t ALT_SBRK (int incr) __attribute__ ((no_instrument_function )); + +caddr_t ALT_SBRK (int incr) +{ + b26c: defff804 addi sp,sp,-32 + b270: df000715 stw fp,28(sp) + b274: df000704 addi fp,sp,28 + b278: e13ffe15 stw r4,-8(fp) +static ALT_INLINE alt_irq_context ALT_ALWAYS_INLINE + alt_irq_disable_all (void) +{ + alt_irq_context context; + + NIOS2_READ_STATUS (context); + b27c: 0005303a rdctl r2,status + b280: e0bffb15 stw r2,-20(fp) + + NIOS2_WRITE_STATUS (context & ~NIOS2_STATUS_PIE_MSK); + b284: e0fffb17 ldw r3,-20(fp) + b288: 00bfff84 movi r2,-2 + b28c: 1884703a and r2,r3,r2 + b290: 1001703a wrctl status,r2 + + return context; + b294: e0bffb17 ldw r2,-20(fp) + alt_irq_context context; + char *prev_heap_end; + + context = alt_irq_disable_all(); + b298: e0bffd15 stw r2,-12(fp) + + /* Always return data aligned on a word boundary */ + heap_end = (char *)(((unsigned int)heap_end + 3) & ~3); + b29c: d0a00c17 ldw r2,-32720(gp) + b2a0: 10c000c4 addi r3,r2,3 + b2a4: 00bfff04 movi r2,-4 + b2a8: 1884703a and r2,r3,r2 + b2ac: d0a00c15 stw r2,-32720(gp) + if (((heap_end + incr) - __alt_heap_start) > ALT_MAX_HEAP_BYTES) { + alt_irq_enable_all(context); + return (caddr_t)-1; + } +#else + if ((heap_end + incr) > __alt_heap_limit) { + b2b0: d0e00c17 ldw r3,-32720(gp) + b2b4: e0bffe17 ldw r2,-8(fp) + b2b8: 1887883a add r3,r3,r2 + b2bc: 008000f4 movhi r2,3 + b2c0: 10880004 addi r2,r2,8192 + b2c4: 10c0072e bgeu r2,r3,b2e4 + b2c8: e0bffd17 ldw r2,-12(fp) + b2cc: e0bffa15 stw r2,-24(fp) + status &= ~NIOS2_STATUS_PIE_MSK; + status |= (context & NIOS2_STATUS_PIE_MSK); + + NIOS2_WRITE_STATUS (status); +#else + NIOS2_WRITE_STATUS (context); + b2d0: e0bffa17 ldw r2,-24(fp) + b2d4: 1001703a wrctl status,r2 + alt_irq_enable_all(context); + return (caddr_t)-1; + b2d8: 00bfffc4 movi r2,-1 + b2dc: e0bfff15 stw r2,-4(fp) + b2e0: 00000c06 br b314 + } +#endif + + prev_heap_end = heap_end; + b2e4: d0a00c17 ldw r2,-32720(gp) + b2e8: e0bffc15 stw r2,-16(fp) + heap_end += incr; + b2ec: d0e00c17 ldw r3,-32720(gp) + b2f0: e0bffe17 ldw r2,-8(fp) + b2f4: 1885883a add r2,r3,r2 + b2f8: d0a00c15 stw r2,-32720(gp) + b2fc: e0bffd17 ldw r2,-12(fp) + b300: e0bff915 stw r2,-28(fp) + b304: e0bff917 ldw r2,-28(fp) + b308: 1001703a wrctl status,r2 + +#endif + + alt_irq_enable_all(context); + + return (caddr_t) prev_heap_end; + b30c: e0bffc17 ldw r2,-16(fp) + b310: e0bfff15 stw r2,-4(fp) + b314: e0bfff17 ldw r2,-4(fp) +} + b318: e037883a mov sp,fp + b31c: df000017 ldw fp,0(sp) + b320: dec00104 addi sp,sp,4 + b324: f800283a ret + +0000b328 : +} + +#else /* !ALT_USE_DIRECT_DRIVERS */ + +int ALT_WRITE (int file, const void *ptr, size_t len) +{ + b328: defff704 addi sp,sp,-36 + b32c: dfc00815 stw ra,32(sp) + b330: df000715 stw fp,28(sp) + b334: df000704 addi fp,sp,28 + b338: e13ffb15 stw r4,-20(fp) + b33c: e17ffc15 stw r5,-16(fp) + b340: e1bffd15 stw r6,-12(fp) + * A common error case is that when the file descriptor was created, the call + * to open() failed resulting in a negative file descriptor. This is trapped + * below so that we don't try and process an invalid file descriptor. + */ + + fd = (file < 0) ? NULL : &alt_fd_list[file]; + b344: e0bffb17 ldw r2,-20(fp) + b348: 1004803a cmplt r2,r2,zero + b34c: 1000091e bne r2,zero,b374 + b350: e13ffb17 ldw r4,-20(fp) + b354: 01400304 movi r5,12 + b358: 0009fc80 call 9fc8 <__mulsi3> + b35c: 1007883a mov r3,r2 + b360: 00800074 movhi r2,1 + b364: 10bbf204 addi r2,r2,-4152 + b368: 1887883a add r3,r3,r2 + b36c: e0ffff15 stw r3,-4(fp) + b370: 00000106 br b378 + b374: e03fff15 stw zero,-4(fp) + b378: e0bfff17 ldw r2,-4(fp) + b37c: e0bffa15 stw r2,-24(fp) + + if (fd) + b380: e0bffa17 ldw r2,-24(fp) + b384: 1005003a cmpeq r2,r2,zero + b388: 1000241e bne r2,zero,b41c + * If the file has not been opened with write access, or if the driver does + * not provide an implementation of write(), generate an error. Otherwise + * call the drivers write() function to process the request. + */ + + if (((fd->fd_flags & O_ACCMODE) != O_RDONLY) && fd->dev->write) + b38c: e0bffa17 ldw r2,-24(fp) + b390: 10800217 ldw r2,8(r2) + b394: 108000cc andi r2,r2,3 + b398: 1005003a cmpeq r2,r2,zero + b39c: 10001a1e bne r2,zero,b408 + b3a0: e0bffa17 ldw r2,-24(fp) + b3a4: 10800017 ldw r2,0(r2) + b3a8: 10800617 ldw r2,24(r2) + b3ac: 1005003a cmpeq r2,r2,zero + b3b0: 1000151e bne r2,zero,b408 + { + + /* ALT_LOG - see altera_hal/HAL/inc/sys/alt_log_printf.h */ + ALT_LOG_WRITE_FUNCTION(ptr,len); + + if ((rval = fd->dev->write(fd, ptr, len)) < 0) + b3b4: e0bffa17 ldw r2,-24(fp) + b3b8: 10800017 ldw r2,0(r2) + b3bc: 10800617 ldw r2,24(r2) + b3c0: e17ffc17 ldw r5,-16(fp) + b3c4: e1bffd17 ldw r6,-12(fp) + b3c8: e13ffa17 ldw r4,-24(fp) + b3cc: 103ee83a callr r2 + b3d0: e0bff915 stw r2,-28(fp) + b3d4: e0bff917 ldw r2,-28(fp) + b3d8: 1004403a cmpge r2,r2,zero + b3dc: 1000071e bne r2,zero,b3fc + { + ALT_ERRNO = -rval; + b3e0: 000b44c0 call b44c + b3e4: e0fff917 ldw r3,-28(fp) + b3e8: 00c7c83a sub r3,zero,r3 + b3ec: 10c00015 stw r3,0(r2) + return -1; + b3f0: 00bfffc4 movi r2,-1 + b3f4: e0bffe15 stw r2,-8(fp) + b3f8: 00000e06 br b434 + } + return rval; + b3fc: e0bff917 ldw r2,-28(fp) + b400: e0bffe15 stw r2,-8(fp) + b404: 00000b06 br b434 + } + else + { + ALT_ERRNO = EACCES; + b408: 000b44c0 call b44c + b40c: 1007883a mov r3,r2 + b410: 00800344 movi r2,13 + b414: 18800015 stw r2,0(r3) + b418: 00000406 br b42c + } + } + else + { + ALT_ERRNO = EBADFD; + b41c: 000b44c0 call b44c + b420: 1007883a mov r3,r2 + b424: 00801444 movi r2,81 + b428: 18800015 stw r2,0(r3) + } + return -1; + b42c: 00bfffc4 movi r2,-1 + b430: e0bffe15 stw r2,-8(fp) + b434: e0bffe17 ldw r2,-8(fp) +} + b438: e037883a mov sp,fp + b43c: dfc00117 ldw ra,4(sp) + b440: df000017 ldw fp,0(sp) + b444: dec00204 addi sp,sp,8 + b448: f800283a ret + +0000b44c : +#undef errno + +extern int errno; + +static ALT_INLINE int* alt_get_errno(void) +{ + b44c: defffd04 addi sp,sp,-12 + b450: dfc00215 stw ra,8(sp) + b454: df000115 stw fp,4(sp) + b458: df000104 addi fp,sp,4 + return ((alt_errno) ? alt_errno() : &errno); + b45c: 00800074 movhi r2,1 + b460: 1080bd04 addi r2,r2,756 + b464: 10800017 ldw r2,0(r2) + b468: 1005003a cmpeq r2,r2,zero + b46c: 1000061e bne r2,zero,b488 + b470: 00800074 movhi r2,1 + b474: 1080bd04 addi r2,r2,756 + b478: 10800017 ldw r2,0(r2) + b47c: 103ee83a callr r2 + b480: e0bfff15 stw r2,-4(fp) + b484: 00000306 br b494 + b488: 00800074 movhi r2,1 + b48c: 1087a504 addi r2,r2,7828 + b490: e0bfff15 stw r2,-4(fp) + b494: e0bfff17 ldw r2,-4(fp) +} + b498: e037883a mov sp,fp + b49c: dfc00117 ldw ra,4(sp) + b4a0: df000017 ldw fp,0(sp) + b4a4: dec00204 addi sp,sp,8 + b4a8: f800283a ret + +0000b4ac : + * The "base" parameter is ignored and only + * present for backwards-compatibility. + */ + +void alt_irq_init ( const void* base ) +{ + b4ac: defffd04 addi sp,sp,-12 + b4b0: dfc00215 stw ra,8(sp) + b4b4: df000115 stw fp,4(sp) + b4b8: df000104 addi fp,sp,4 + b4bc: e13fff15 stw r4,-4(fp) + ALTERA_NIOS2_QSYS_IRQ_INIT ( NIOS2_PROCESSOR, nios2_processor); + b4c0: 000dbd40 call dbd4 + * alt_irq_cpu_enable_interrupts() enables the CPU to start taking interrupts. + */ +static ALT_INLINE void ALT_ALWAYS_INLINE + alt_irq_cpu_enable_interrupts () +{ + NIOS2_WRITE_STATUS(NIOS2_STATUS_PIE_MSK + b4c4: 00800044 movi r2,1 + b4c8: 1001703a wrctl status,r2 + alt_irq_cpu_enable_interrupts(); +} + b4cc: e037883a mov sp,fp + b4d0: dfc00117 ldw ra,4(sp) + b4d4: df000017 ldw fp,0(sp) + b4d8: dec00204 addi sp,sp,8 + b4dc: f800283a ret + +0000b4e0 : + * Initialize the non-interrupt controller devices. + * Called after alt_irq_init(). + */ + +void alt_sys_init( void ) +{ + b4e0: defffe04 addi sp,sp,-8 + b4e4: dfc00115 stw ra,4(sp) + b4e8: df000015 stw fp,0(sp) + b4ec: d839883a mov fp,sp + ALTERA_AVALON_JTAG_UART_INIT ( JTAG_UART, jtag_uart); + b4f0: 01000074 movhi r4,1 + b4f4: 213c5c04 addi r4,r4,-3728 + b4f8: 000b883a mov r5,zero + b4fc: 01800144 movi r6,5 + b500: 000b6bc0 call b6bc + b504: 01000074 movhi r4,1 + b508: 213c5204 addi r4,r4,-3768 + b50c: 000b53c0 call b53c + ALTERA_AVALON_LCD_16207_INIT ( LCD_16207_0, lcd_16207_0); + b510: 01000074 movhi r4,1 + b514: 21007404 addi r4,r4,464 + b518: 000ce640 call ce64 + b51c: 01000074 movhi r4,1 + b520: 21006a04 addi r4,r4,424 + b524: 000b53c0 call b53c +} + b528: e037883a mov sp,fp + b52c: dfc00117 ldw ra,4(sp) + b530: df000017 ldw fp,0(sp) + b534: dec00204 addi sp,sp,8 + b538: f800283a ret + +0000b53c : + */ + +extern int alt_fs_reg (alt_dev* dev); + +static ALT_INLINE int alt_dev_reg (alt_dev* dev) +{ + b53c: defffd04 addi sp,sp,-12 + b540: dfc00215 stw ra,8(sp) + b544: df000115 stw fp,4(sp) + b548: df000104 addi fp,sp,4 + b54c: e13fff15 stw r4,-4(fp) + extern alt_llist alt_dev_list; + + return alt_dev_llist_insert ((alt_dev_llist*) dev, &alt_dev_list); + b550: e13fff17 ldw r4,-4(fp) + b554: 01400074 movhi r5,1 + b558: 2940ba04 addi r5,r5,744 + b55c: 000d1680 call d168 +} + b560: e037883a mov sp,fp + b564: dfc00117 ldw ra,4(sp) + b568: df000017 ldw fp,0(sp) + b56c: dec00204 addi sp,sp,8 + b570: f800283a ret + +0000b574 : + * + */ + +int +altera_avalon_jtag_uart_read_fd(alt_fd* fd, char* buffer, int space) +{ + b574: defffa04 addi sp,sp,-24 + b578: dfc00515 stw ra,20(sp) + b57c: df000415 stw fp,16(sp) + b580: df000404 addi fp,sp,16 + b584: e13ffd15 stw r4,-12(fp) + b588: e17ffe15 stw r5,-8(fp) + b58c: e1bfff15 stw r6,-4(fp) + altera_avalon_jtag_uart_dev* dev = (altera_avalon_jtag_uart_dev*) fd->dev; + b590: e0bffd17 ldw r2,-12(fp) + b594: 10800017 ldw r2,0(r2) + b598: e0bffc15 stw r2,-16(fp) + + return altera_avalon_jtag_uart_read(&dev->state, buffer, space, + b59c: e0bffc17 ldw r2,-16(fp) + b5a0: 11000a04 addi r4,r2,40 + b5a4: e0bffd17 ldw r2,-12(fp) + b5a8: 11c00217 ldw r7,8(r2) + b5ac: e17ffe17 ldw r5,-8(fp) + b5b0: e1bfff17 ldw r6,-4(fp) + b5b4: 000bbbc0 call bbbc + fd->fd_flags); +} + b5b8: e037883a mov sp,fp + b5bc: dfc00117 ldw ra,4(sp) + b5c0: df000017 ldw fp,0(sp) + b5c4: dec00204 addi sp,sp,8 + b5c8: f800283a ret + +0000b5cc : + +int +altera_avalon_jtag_uart_write_fd(alt_fd* fd, const char* buffer, int space) +{ + b5cc: defffa04 addi sp,sp,-24 + b5d0: dfc00515 stw ra,20(sp) + b5d4: df000415 stw fp,16(sp) + b5d8: df000404 addi fp,sp,16 + b5dc: e13ffd15 stw r4,-12(fp) + b5e0: e17ffe15 stw r5,-8(fp) + b5e4: e1bfff15 stw r6,-4(fp) + altera_avalon_jtag_uart_dev* dev = (altera_avalon_jtag_uart_dev*) fd->dev; + b5e8: e0bffd17 ldw r2,-12(fp) + b5ec: 10800017 ldw r2,0(r2) + b5f0: e0bffc15 stw r2,-16(fp) + + return altera_avalon_jtag_uart_write(&dev->state, buffer, space, + b5f4: e0bffc17 ldw r2,-16(fp) + b5f8: 11000a04 addi r4,r2,40 + b5fc: e0bffd17 ldw r2,-12(fp) + b600: 11c00217 ldw r7,8(r2) + b604: e17ffe17 ldw r5,-8(fp) + b608: e1bfff17 ldw r6,-4(fp) + b60c: 000bde00 call bde0 + fd->fd_flags); +} + b610: e037883a mov sp,fp + b614: dfc00117 ldw ra,4(sp) + b618: df000017 ldw fp,0(sp) + b61c: dec00204 addi sp,sp,8 + b620: f800283a ret + +0000b624 : + +#ifndef ALTERA_AVALON_JTAG_UART_SMALL + +int +altera_avalon_jtag_uart_close_fd(alt_fd* fd) +{ + b624: defffc04 addi sp,sp,-16 + b628: dfc00315 stw ra,12(sp) + b62c: df000215 stw fp,8(sp) + b630: df000204 addi fp,sp,8 + b634: e13fff15 stw r4,-4(fp) + altera_avalon_jtag_uart_dev* dev = (altera_avalon_jtag_uart_dev*) fd->dev; + b638: e0bfff17 ldw r2,-4(fp) + b63c: 10800017 ldw r2,0(r2) + b640: e0bffe15 stw r2,-8(fp) + + return altera_avalon_jtag_uart_close(&dev->state, fd->fd_flags); + b644: e0bffe17 ldw r2,-8(fp) + b648: 11000a04 addi r4,r2,40 + b64c: e0bfff17 ldw r2,-4(fp) + b650: 11400217 ldw r5,8(r2) + b654: 000ba540 call ba54 +} + b658: e037883a mov sp,fp + b65c: dfc00117 ldw ra,4(sp) + b660: df000017 ldw fp,0(sp) + b664: dec00204 addi sp,sp,8 + b668: f800283a ret + +0000b66c : + +int +altera_avalon_jtag_uart_ioctl_fd(alt_fd* fd, int req, void* arg) +{ + b66c: defffa04 addi sp,sp,-24 + b670: dfc00515 stw ra,20(sp) + b674: df000415 stw fp,16(sp) + b678: df000404 addi fp,sp,16 + b67c: e13ffd15 stw r4,-12(fp) + b680: e17ffe15 stw r5,-8(fp) + b684: e1bfff15 stw r6,-4(fp) + altera_avalon_jtag_uart_dev* dev = (altera_avalon_jtag_uart_dev*) fd->dev; + b688: e0bffd17 ldw r2,-12(fp) + b68c: 10800017 ldw r2,0(r2) + b690: e0bffc15 stw r2,-16(fp) + + return altera_avalon_jtag_uart_ioctl(&dev->state, req, arg); + b694: e0bffc17 ldw r2,-16(fp) + b698: 11000a04 addi r4,r2,40 + b69c: e17ffe17 ldw r5,-8(fp) + b6a0: e1bfff17 ldw r6,-4(fp) + b6a4: 000bac80 call bac8 +} + b6a8: e037883a mov sp,fp + b6ac: dfc00117 ldw ra,4(sp) + b6b0: df000017 ldw fp,0(sp) + b6b4: dec00204 addi sp,sp,8 + b6b8: f800283a ret + +0000b6bc : + * Return 1 on sucessful IRQ register and 0 on failure. + */ + +void altera_avalon_jtag_uart_init(altera_avalon_jtag_uart_state* sp, + int irq_controller_id, int irq) +{ + b6bc: defffa04 addi sp,sp,-24 + b6c0: dfc00515 stw ra,20(sp) + b6c4: df000415 stw fp,16(sp) + b6c8: df000404 addi fp,sp,16 + b6cc: e13ffd15 stw r4,-12(fp) + b6d0: e17ffe15 stw r5,-8(fp) + b6d4: e1bfff15 stw r6,-4(fp) + ALT_FLAG_CREATE(&sp->events, 0); + ALT_SEM_CREATE(&sp->read_lock, 1); + ALT_SEM_CREATE(&sp->write_lock, 1); + + /* enable read interrupts at the device */ + sp->irq_enable = ALTERA_AVALON_JTAG_UART_CONTROL_RE_MSK; + b6d8: e0fffd17 ldw r3,-12(fp) + b6dc: 00800044 movi r2,1 + b6e0: 18800815 stw r2,32(r3) + + IOWR_ALTERA_AVALON_JTAG_UART_CONTROL(sp->base, sp->irq_enable); + b6e4: e0bffd17 ldw r2,-12(fp) + b6e8: 10800017 ldw r2,0(r2) + b6ec: 11000104 addi r4,r2,4 + b6f0: e0bffd17 ldw r2,-12(fp) + b6f4: 10800817 ldw r2,32(r2) + b6f8: 1007883a mov r3,r2 + b6fc: 2005883a mov r2,r4 + b700: 10c00035 stwio r3,0(r2) + + /* register the interrupt handler */ +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT + alt_ic_isr_register(irq_controller_id, irq, altera_avalon_jtag_uart_irq, + b704: e13ffe17 ldw r4,-8(fp) + b708: e17fff17 ldw r5,-4(fp) + b70c: d8000015 stw zero,0(sp) + b710: 01800074 movhi r6,1 + b714: 31addf04 addi r6,r6,-18564 + b718: e1fffd17 ldw r7,-12(fp) + b71c: 000d5e40 call d5e4 +#else + alt_irq_register(irq, sp, altera_avalon_jtag_uart_irq); +#endif + + /* Register an alarm to go off every second to check for presence of host */ + sp->host_inactive = 0; + b720: e0bffd17 ldw r2,-12(fp) + b724: 10000915 stw zero,36(r2) + + if (alt_alarm_start(&sp->alarm, alt_ticks_per_second(), + b728: e0bffd17 ldw r2,-12(fp) + b72c: 11000204 addi r4,r2,8 + * Obtain the system clock rate in ticks/s. + */ + +static ALT_INLINE alt_u32 ALT_ALWAYS_INLINE alt_ticks_per_second (void) +{ + return _alt_tick_rate; + b730: 00800074 movhi r2,1 + b734: 1087b004 addi r2,r2,7872 + b738: 10800017 ldw r2,0(r2) + b73c: 100b883a mov r5,r2 + b740: 01800074 movhi r6,1 + b744: 31ae6904 addi r6,r6,-18012 + b748: e1fffd17 ldw r7,-12(fp) + b74c: 000cff80 call cff8 + b750: 1004403a cmpge r2,r2,zero + b754: 1000041e bne r2,zero,b768 + &altera_avalon_jtag_uart_timeout, sp) < 0) + { + /* If we can't set the alarm then record "don't know if host present" + * and behave as though the host is present. + */ + sp->timeout = INT_MAX; + b758: e0fffd17 ldw r3,-12(fp) + b75c: 00a00034 movhi r2,32768 + b760: 10bfffc4 addi r2,r2,-1 + b764: 18800115 stw r2,4(r3) + } + + /* ALT_LOG - see altera_hal/HAL/inc/sys/alt_log_printf.h */ + ALT_LOG_JTAG_UART_ALARM_REGISTER(sp, sp->base); +} + b768: e037883a mov sp,fp + b76c: dfc00117 ldw ra,4(sp) + b770: df000017 ldw fp,0(sp) + b774: dec00204 addi sp,sp,8 + b778: f800283a ret + +0000b77c : +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT +static void altera_avalon_jtag_uart_irq(void* context) +#else +static void altera_avalon_jtag_uart_irq(void* context, alt_u32 id) +#endif +{ + b77c: defff804 addi sp,sp,-32 + b780: df000715 stw fp,28(sp) + b784: df000704 addi fp,sp,28 + b788: e13fff15 stw r4,-4(fp) + altera_avalon_jtag_uart_state* sp = (altera_avalon_jtag_uart_state*) context; + b78c: e0bfff17 ldw r2,-4(fp) + b790: e0bffe15 stw r2,-8(fp) + unsigned int base = sp->base; + b794: e0bffe17 ldw r2,-8(fp) + b798: 10800017 ldw r2,0(r2) + b79c: e0bffd15 stw r2,-12(fp) + b7a0: 00000006 br b7a4 + /* ALT_LOG - see altera_hal/HAL/inc/sys/alt_log_printf.h */ + ALT_LOG_JTAG_UART_ISR_FUNCTION(base, sp); + + for ( ; ; ) + { + unsigned int control = IORD_ALTERA_AVALON_JTAG_UART_CONTROL(base); + b7a4: e0bffd17 ldw r2,-12(fp) + b7a8: 10800104 addi r2,r2,4 + b7ac: 10800037 ldwio r2,0(r2) + b7b0: e0bffc15 stw r2,-16(fp) + + /* Return once nothing more to do */ + if ((control & (ALTERA_AVALON_JTAG_UART_CONTROL_RI_MSK | ALTERA_AVALON_JTAG_UART_CONTROL_WI_MSK)) == 0) + b7b4: e0bffc17 ldw r2,-16(fp) + b7b8: 1080c00c andi r2,r2,768 + b7bc: 1005003a cmpeq r2,r2,zero + b7c0: 1000741e bne r2,zero,b994 + break; + + if (control & ALTERA_AVALON_JTAG_UART_CONTROL_RI_MSK) + b7c4: e0bffc17 ldw r2,-16(fp) + b7c8: 1080400c andi r2,r2,256 + b7cc: 1005003a cmpeq r2,r2,zero + b7d0: 1000351e bne r2,zero,b8a8 + { + /* process a read irq. Start by assuming that there is data in the + * receive FIFO (otherwise why would we have been interrupted?) + */ + unsigned int data = 1 << ALTERA_AVALON_JTAG_UART_DATA_RAVAIL_OFST; + b7d4: 00800074 movhi r2,1 + b7d8: e0bffb15 stw r2,-20(fp) + for ( ; ; ) + { + /* Check whether there is space in the buffer. If not then we must not + * read any characters from the buffer as they will be lost. + */ + unsigned int next = (sp->rx_in + 1) % ALTERA_AVALON_JTAG_UART_BUF_LEN; + b7dc: e0bffe17 ldw r2,-8(fp) + b7e0: 10800a17 ldw r2,40(r2) + b7e4: 10800044 addi r2,r2,1 + b7e8: 1081ffcc andi r2,r2,2047 + b7ec: e0bffa15 stw r2,-24(fp) + if (next == sp->rx_out) + b7f0: e0bffe17 ldw r2,-8(fp) + b7f4: 10c00b17 ldw r3,44(r2) + b7f8: e0bffa17 ldw r2,-24(fp) + b7fc: 18801626 beq r3,r2,b858 + break; + + /* Try to remove a character from the FIFO and find out whether there + * are any more characters remaining. + */ + data = IORD_ALTERA_AVALON_JTAG_UART_DATA(base); + b800: e0bffd17 ldw r2,-12(fp) + b804: 10800037 ldwio r2,0(r2) + b808: e0bffb15 stw r2,-20(fp) + + if ((data & ALTERA_AVALON_JTAG_UART_DATA_RVALID_MSK) == 0) + b80c: e0bffb17 ldw r2,-20(fp) + b810: 10a0000c andi r2,r2,32768 + b814: 1005003a cmpeq r2,r2,zero + b818: 10000f1e bne r2,zero,b858 + break; + + sp->rx_buf[sp->rx_in] = (data & ALTERA_AVALON_JTAG_UART_DATA_DATA_MSK) >> ALTERA_AVALON_JTAG_UART_DATA_DATA_OFST; + b81c: e0bffe17 ldw r2,-8(fp) + b820: 10c00a17 ldw r3,40(r2) + b824: e0bffb17 ldw r2,-20(fp) + b828: 1009883a mov r4,r2 + b82c: e0bffe17 ldw r2,-8(fp) + b830: 1885883a add r2,r3,r2 + b834: 10800e04 addi r2,r2,56 + b838: 11000005 stb r4,0(r2) + sp->rx_in = (sp->rx_in + 1) % ALTERA_AVALON_JTAG_UART_BUF_LEN; + b83c: e0bffe17 ldw r2,-8(fp) + b840: 10800a17 ldw r2,40(r2) + b844: 10800044 addi r2,r2,1 + b848: 10c1ffcc andi r3,r2,2047 + b84c: e0bffe17 ldw r2,-8(fp) + b850: 10c00a15 stw r3,40(r2) + + /* Post an event to notify jtag_uart_read that a character has been read */ + ALT_FLAG_POST (sp->events, ALT_JTAG_UART_READ_RDY, OS_FLAG_SET); + } + b854: 003fe106 br b7dc + + if (data & ALTERA_AVALON_JTAG_UART_DATA_RAVAIL_MSK) + b858: e0bffb17 ldw r2,-20(fp) + b85c: 10bfffec andhi r2,r2,65535 + b860: 1005003a cmpeq r2,r2,zero + b864: 1000101e bne r2,zero,b8a8 + { + /* If there is still data available here then the buffer is full + * so turn off receive interrupts until some space becomes available. + */ + sp->irq_enable &= ~ALTERA_AVALON_JTAG_UART_CONTROL_RE_MSK; + b868: e0bffe17 ldw r2,-8(fp) + b86c: 10c00817 ldw r3,32(r2) + b870: 00bfff84 movi r2,-2 + b874: 1886703a and r3,r3,r2 + b878: e0bffe17 ldw r2,-8(fp) + b87c: 10c00815 stw r3,32(r2) + IOWR_ALTERA_AVALON_JTAG_UART_CONTROL(base, sp->irq_enable); + b880: e0bffd17 ldw r2,-12(fp) + b884: 11000104 addi r4,r2,4 + b888: e0bffe17 ldw r2,-8(fp) + b88c: 10800817 ldw r2,32(r2) + b890: 1007883a mov r3,r2 + b894: 2005883a mov r2,r4 + b898: 10c00035 stwio r3,0(r2) + + /* Dummy read to ensure IRQ is cleared prior to ISR completion */ + IORD_ALTERA_AVALON_JTAG_UART_CONTROL(base); + b89c: e0bffd17 ldw r2,-12(fp) + b8a0: 10800104 addi r2,r2,4 + b8a4: 10800037 ldwio r2,0(r2) + } + } + + if (control & ALTERA_AVALON_JTAG_UART_CONTROL_WI_MSK) + b8a8: e0bffc17 ldw r2,-16(fp) + b8ac: 1080800c andi r2,r2,512 + b8b0: 1005003a cmpeq r2,r2,zero + b8b4: 103fbb1e bne r2,zero,b7a4 + { + /* process a write irq */ + unsigned int space = (control & ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_MSK) >> ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_OFST; + b8b8: e0bffc17 ldw r2,-16(fp) + b8bc: 10bfffec andhi r2,r2,65535 + b8c0: 1004d43a srli r2,r2,16 + b8c4: e0bff915 stw r2,-28(fp) + + while (space > 0 && sp->tx_out != sp->tx_in) + b8c8: 00001506 br b920 + { + IOWR_ALTERA_AVALON_JTAG_UART_DATA(base, sp->tx_buf[sp->tx_out]); + b8cc: e13ffd17 ldw r4,-12(fp) + b8d0: e0bffe17 ldw r2,-8(fp) + b8d4: 10c00d17 ldw r3,52(r2) + b8d8: e0bffe17 ldw r2,-8(fp) + b8dc: 1885883a add r2,r3,r2 + b8e0: 10820e04 addi r2,r2,2104 + b8e4: 10800003 ldbu r2,0(r2) + b8e8: 10c03fcc andi r3,r2,255 + b8ec: 18c0201c xori r3,r3,128 + b8f0: 18ffe004 addi r3,r3,-128 + b8f4: 2005883a mov r2,r4 + b8f8: 10c00035 stwio r3,0(r2) + + sp->tx_out = (sp->tx_out + 1) % ALTERA_AVALON_JTAG_UART_BUF_LEN; + b8fc: e0bffe17 ldw r2,-8(fp) + b900: 10800d17 ldw r2,52(r2) + b904: 10800044 addi r2,r2,1 + b908: 10c1ffcc andi r3,r2,2047 + b90c: e0bffe17 ldw r2,-8(fp) + b910: 10c00d15 stw r3,52(r2) + + /* Post an event to notify jtag_uart_write that a character has been written */ + ALT_FLAG_POST (sp->events, ALT_JTAG_UART_WRITE_RDY, OS_FLAG_SET); + + space--; + b914: e0bff917 ldw r2,-28(fp) + b918: 10bfffc4 addi r2,r2,-1 + b91c: e0bff915 stw r2,-28(fp) + if (control & ALTERA_AVALON_JTAG_UART_CONTROL_WI_MSK) + { + /* process a write irq */ + unsigned int space = (control & ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_MSK) >> ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_OFST; + + while (space > 0 && sp->tx_out != sp->tx_in) + b920: e0bff917 ldw r2,-28(fp) + b924: 1005003a cmpeq r2,r2,zero + b928: 1000051e bne r2,zero,b940 + b92c: e0bffe17 ldw r2,-8(fp) + b930: 10c00d17 ldw r3,52(r2) + b934: e0bffe17 ldw r2,-8(fp) + b938: 10800c17 ldw r2,48(r2) + b93c: 18bfe31e bne r3,r2,b8cc + ALT_FLAG_POST (sp->events, ALT_JTAG_UART_WRITE_RDY, OS_FLAG_SET); + + space--; + } + + if (space > 0) + b940: e0bff917 ldw r2,-28(fp) + b944: 1005003a cmpeq r2,r2,zero + b948: 103f961e bne r2,zero,b7a4 + { + /* If we don't have any more data available then turn off the TX interrupt */ + sp->irq_enable &= ~ALTERA_AVALON_JTAG_UART_CONTROL_WE_MSK; + b94c: e0bffe17 ldw r2,-8(fp) + b950: 10c00817 ldw r3,32(r2) + b954: 00bfff44 movi r2,-3 + b958: 1886703a and r3,r3,r2 + b95c: e0bffe17 ldw r2,-8(fp) + b960: 10c00815 stw r3,32(r2) + IOWR_ALTERA_AVALON_JTAG_UART_CONTROL(sp->base, sp->irq_enable); + b964: e0bffe17 ldw r2,-8(fp) + b968: 10800017 ldw r2,0(r2) + b96c: 11000104 addi r4,r2,4 + b970: e0bffe17 ldw r2,-8(fp) + b974: 10800817 ldw r2,32(r2) + b978: 1007883a mov r3,r2 + b97c: 2005883a mov r2,r4 + b980: 10c00035 stwio r3,0(r2) + + /* Dummy read to ensure IRQ is cleared prior to ISR completion */ + IORD_ALTERA_AVALON_JTAG_UART_CONTROL(base); + b984: e0bffd17 ldw r2,-12(fp) + b988: 10800104 addi r2,r2,4 + b98c: 10800037 ldwio r2,0(r2) + } + } + } + b990: 003f8406 br b7a4 +} + b994: e037883a mov sp,fp + b998: df000017 ldw fp,0(sp) + b99c: dec00104 addi sp,sp,4 + b9a0: f800283a ret + +0000b9a4 : + * Timeout routine is called every second + */ + +static alt_u32 +altera_avalon_jtag_uart_timeout(void* context) +{ + b9a4: defffc04 addi sp,sp,-16 + b9a8: df000315 stw fp,12(sp) + b9ac: df000304 addi fp,sp,12 + b9b0: e13fff15 stw r4,-4(fp) + altera_avalon_jtag_uart_state* sp = (altera_avalon_jtag_uart_state *) context; + b9b4: e0bfff17 ldw r2,-4(fp) + b9b8: e0bffe15 stw r2,-8(fp) + + unsigned int control = IORD_ALTERA_AVALON_JTAG_UART_CONTROL(sp->base); + b9bc: e0bffe17 ldw r2,-8(fp) + b9c0: 10800017 ldw r2,0(r2) + b9c4: 10800104 addi r2,r2,4 + b9c8: 10800037 ldwio r2,0(r2) + b9cc: e0bffd15 stw r2,-12(fp) + + if (control & ALTERA_AVALON_JTAG_UART_CONTROL_AC_MSK) + b9d0: e0bffd17 ldw r2,-12(fp) + b9d4: 1081000c andi r2,r2,1024 + b9d8: 1005003a cmpeq r2,r2,zero + b9dc: 10000c1e bne r2,zero,ba10 + { + IOWR_ALTERA_AVALON_JTAG_UART_CONTROL(sp->base, sp->irq_enable | ALTERA_AVALON_JTAG_UART_CONTROL_AC_MSK); + b9e0: e0bffe17 ldw r2,-8(fp) + b9e4: 10800017 ldw r2,0(r2) + b9e8: 11000104 addi r4,r2,4 + b9ec: e0bffe17 ldw r2,-8(fp) + b9f0: 10800817 ldw r2,32(r2) + b9f4: 10810014 ori r2,r2,1024 + b9f8: 1007883a mov r3,r2 + b9fc: 2005883a mov r2,r4 + ba00: 10c00035 stwio r3,0(r2) + sp->host_inactive = 0; + ba04: e0bffe17 ldw r2,-8(fp) + ba08: 10000915 stw zero,36(r2) + ba0c: 00000a06 br ba38 + } + else if (sp->host_inactive < INT_MAX - 2) { + ba10: e0bffe17 ldw r2,-8(fp) + ba14: 10c00917 ldw r3,36(r2) + ba18: 00a00034 movhi r2,32768 + ba1c: 10bfff04 addi r2,r2,-4 + ba20: 10c00536 bltu r2,r3,ba38 + sp->host_inactive++; + ba24: e0bffe17 ldw r2,-8(fp) + ba28: 10800917 ldw r2,36(r2) + ba2c: 10c00044 addi r3,r2,1 + ba30: e0bffe17 ldw r2,-8(fp) + ba34: 10c00915 stw r3,36(r2) + ba38: 00800074 movhi r2,1 + ba3c: 1087b004 addi r2,r2,7872 + ba40: 10800017 ldw r2,0(r2) + ALT_FLAG_POST (sp->events, ALT_JTAG_UART_TIMEOUT, OS_FLAG_SET); + } + } + + return alt_ticks_per_second(); +} + ba44: e037883a mov sp,fp + ba48: df000017 ldw fp,0(sp) + ba4c: dec00104 addi sp,sp,4 + ba50: f800283a ret + +0000ba54 : + * The close routine is not implemented for the small driver; instead it will + * map to null. This is because the small driver simply waits while characters + * are transmitted; there is no interrupt-serviced buffer to empty + */ +int altera_avalon_jtag_uart_close(altera_avalon_jtag_uart_state* sp, int flags) +{ + ba54: defffc04 addi sp,sp,-16 + ba58: df000315 stw fp,12(sp) + ba5c: df000304 addi fp,sp,12 + ba60: e13ffd15 stw r4,-12(fp) + ba64: e17ffe15 stw r5,-8(fp) + /* + * Wait for all transmit data to be emptied by the JTAG UART ISR, or + * for a host-inactivity timeout, in which case transmit data will be lost + */ + while ( (sp->tx_out != sp->tx_in) && (sp->host_inactive < sp->timeout) ) { + ba68: 00000706 br ba88 + if (flags & O_NONBLOCK) { + ba6c: e0bffe17 ldw r2,-8(fp) + ba70: 1090000c andi r2,r2,16384 + ba74: 1005003a cmpeq r2,r2,zero + ba78: 1000031e bne r2,zero,ba88 + return -EWOULDBLOCK; + ba7c: 00bffd44 movi r2,-11 + ba80: e0bfff15 stw r2,-4(fp) + ba84: 00000b06 br bab4 +{ + /* + * Wait for all transmit data to be emptied by the JTAG UART ISR, or + * for a host-inactivity timeout, in which case transmit data will be lost + */ + while ( (sp->tx_out != sp->tx_in) && (sp->host_inactive < sp->timeout) ) { + ba88: e0bffd17 ldw r2,-12(fp) + ba8c: 10c00d17 ldw r3,52(r2) + ba90: e0bffd17 ldw r2,-12(fp) + ba94: 10800c17 ldw r2,48(r2) + ba98: 18800526 beq r3,r2,bab0 + ba9c: e0bffd17 ldw r2,-12(fp) + baa0: 10c00917 ldw r3,36(r2) + baa4: e0bffd17 ldw r2,-12(fp) + baa8: 10800117 ldw r2,4(r2) + baac: 18bfef36 bltu r3,r2,ba6c + if (flags & O_NONBLOCK) { + return -EWOULDBLOCK; + } + } + + return 0; + bab0: e03fff15 stw zero,-4(fp) + bab4: e0bfff17 ldw r2,-4(fp) +} + bab8: e037883a mov sp,fp + babc: df000017 ldw fp,0(sp) + bac0: dec00104 addi sp,sp,4 + bac4: f800283a ret + +0000bac8 : +/* ----------------------------------------------------------- */ + +int +altera_avalon_jtag_uart_ioctl(altera_avalon_jtag_uart_state* sp, int req, + void* arg) +{ + bac8: defff804 addi sp,sp,-32 + bacc: df000715 stw fp,28(sp) + bad0: df000704 addi fp,sp,28 + bad4: e13ffb15 stw r4,-20(fp) + bad8: e17ffc15 stw r5,-16(fp) + badc: e1bffd15 stw r6,-12(fp) + int rc = -ENOTTY; + bae0: 00bff9c4 movi r2,-25 + bae4: e0bffa15 stw r2,-24(fp) + + switch (req) + bae8: e0bffc17 ldw r2,-16(fp) + baec: e0bfff15 stw r2,-4(fp) + baf0: e0ffff17 ldw r3,-4(fp) + baf4: 189a8060 cmpeqi r2,r3,27137 + baf8: 1000041e bne r2,zero,bb0c + bafc: e0ffff17 ldw r3,-4(fp) + bb00: 189a80a0 cmpeqi r2,r3,27138 + bb04: 10001b1e bne r2,zero,bb74 + bb08: 00002706 br bba8 + { + case TIOCSTIMEOUT: + /* Set the time to wait until assuming host is not connected */ + if (sp->timeout != INT_MAX) + bb0c: e0bffb17 ldw r2,-20(fp) + bb10: 10c00117 ldw r3,4(r2) + bb14: 00a00034 movhi r2,32768 + bb18: 10bfffc4 addi r2,r2,-1 + bb1c: 18802226 beq r3,r2,bba8 + { + int timeout = *((int *)arg); + bb20: e0bffd17 ldw r2,-12(fp) + bb24: 10800017 ldw r2,0(r2) + bb28: e0bff915 stw r2,-28(fp) + sp->timeout = (timeout >= 2 && timeout < INT_MAX) ? timeout : INT_MAX - 1; + bb2c: e0bff917 ldw r2,-28(fp) + bb30: 10800090 cmplti r2,r2,2 + bb34: 1000071e bne r2,zero,bb54 + bb38: e0fff917 ldw r3,-28(fp) + bb3c: 00a00034 movhi r2,32768 + bb40: 10bfffc4 addi r2,r2,-1 + bb44: 18800326 beq r3,r2,bb54 + bb48: e0bff917 ldw r2,-28(fp) + bb4c: e0bffe15 stw r2,-8(fp) + bb50: 00000306 br bb60 + bb54: 00e00034 movhi r3,32768 + bb58: 18ffff84 addi r3,r3,-2 + bb5c: e0fffe15 stw r3,-8(fp) + bb60: e0bffb17 ldw r2,-20(fp) + bb64: e0fffe17 ldw r3,-8(fp) + bb68: 10c00115 stw r3,4(r2) + rc = 0; + bb6c: e03ffa15 stw zero,-24(fp) + } + break; + bb70: 00000d06 br bba8 + + case TIOCGCONNECTED: + /* Find out whether host is connected */ + if (sp->timeout != INT_MAX) + bb74: e0bffb17 ldw r2,-20(fp) + bb78: 10c00117 ldw r3,4(r2) + bb7c: 00a00034 movhi r2,32768 + bb80: 10bfffc4 addi r2,r2,-1 + bb84: 18800826 beq r3,r2,bba8 + { + *((int *)arg) = (sp->host_inactive < sp->timeout) ? 1 : 0; + bb88: e13ffd17 ldw r4,-12(fp) + bb8c: e0bffb17 ldw r2,-20(fp) + bb90: 10c00917 ldw r3,36(r2) + bb94: e0bffb17 ldw r2,-20(fp) + bb98: 10800117 ldw r2,4(r2) + bb9c: 1885803a cmpltu r2,r3,r2 + bba0: 20800015 stw r2,0(r4) + rc = 0; + bba4: e03ffa15 stw zero,-24(fp) + + default: + break; + } + + return rc; + bba8: e0bffa17 ldw r2,-24(fp) +} + bbac: e037883a mov sp,fp + bbb0: df000017 ldw fp,0(sp) + bbb4: dec00104 addi sp,sp,4 + bbb8: f800283a ret + +0000bbbc : +/* ----------------------------------------------------------- */ + +int +altera_avalon_jtag_uart_read(altera_avalon_jtag_uart_state* sp, + char * buffer, int space, int flags) +{ + bbbc: defff204 addi sp,sp,-56 + bbc0: dfc00d15 stw ra,52(sp) + bbc4: df000c15 stw fp,48(sp) + bbc8: df000c04 addi fp,sp,48 + bbcc: e13ffb15 stw r4,-20(fp) + bbd0: e17ffc15 stw r5,-16(fp) + bbd4: e1bffd15 stw r6,-12(fp) + bbd8: e1fffe15 stw r7,-8(fp) + char * ptr = buffer; + bbdc: e0bffc17 ldw r2,-16(fp) + bbe0: e0bffa15 stw r2,-24(fp) + * When running in a multi threaded environment, obtain the "read_lock" + * semaphore. This ensures that reading from the device is thread-safe. + */ + ALT_SEM_PEND (sp->read_lock, 0); + + while (space > 0) + bbe4: 00004806 br bd08 + unsigned int in, out; + + /* Read as much data as possible */ + do + { + in = sp->rx_in; + bbe8: e0bffb17 ldw r2,-20(fp) + bbec: 10800a17 ldw r2,40(r2) + bbf0: e0bff715 stw r2,-36(fp) + out = sp->rx_out; + bbf4: e0bffb17 ldw r2,-20(fp) + bbf8: 10800b17 ldw r2,44(r2) + bbfc: e0bff615 stw r2,-40(fp) + + if (in >= out) + bc00: e0fff717 ldw r3,-36(fp) + bc04: e0bff617 ldw r2,-40(fp) + bc08: 18800536 bltu r3,r2,bc20 + n = in - out; + bc0c: e0bff717 ldw r2,-36(fp) + bc10: e0fff617 ldw r3,-40(fp) + bc14: 10c5c83a sub r2,r2,r3 + bc18: e0bff815 stw r2,-32(fp) + bc1c: 00000406 br bc30 + else + n = ALTERA_AVALON_JTAG_UART_BUF_LEN - out; + bc20: 00820004 movi r2,2048 + bc24: e0fff617 ldw r3,-40(fp) + bc28: 10c5c83a sub r2,r2,r3 + bc2c: e0bff815 stw r2,-32(fp) + + if (n == 0) + bc30: e0bff817 ldw r2,-32(fp) + bc34: 1005003a cmpeq r2,r2,zero + bc38: 10001f1e bne r2,zero,bcb8 + break; /* No more data available */ + + if (n > space) + bc3c: e0fffd17 ldw r3,-12(fp) + bc40: e0bff817 ldw r2,-32(fp) + bc44: 1880022e bgeu r3,r2,bc50 + n = space; + bc48: e0bffd17 ldw r2,-12(fp) + bc4c: e0bff815 stw r2,-32(fp) + + memcpy(ptr, sp->rx_buf + out, n); + bc50: e0bffb17 ldw r2,-20(fp) + bc54: 10c00e04 addi r3,r2,56 + bc58: e0bff617 ldw r2,-40(fp) + bc5c: 1887883a add r3,r3,r2 + bc60: e0bffa17 ldw r2,-24(fp) + bc64: 1009883a mov r4,r2 + bc68: 180b883a mov r5,r3 + bc6c: e1bff817 ldw r6,-32(fp) + bc70: 00066180 call 6618 + ptr += n; + bc74: e0fff817 ldw r3,-32(fp) + bc78: e0bffa17 ldw r2,-24(fp) + bc7c: 10c5883a add r2,r2,r3 + bc80: e0bffa15 stw r2,-24(fp) + space -= n; + bc84: e0fffd17 ldw r3,-12(fp) + bc88: e0bff817 ldw r2,-32(fp) + bc8c: 1885c83a sub r2,r3,r2 + bc90: e0bffd15 stw r2,-12(fp) + + sp->rx_out = (out + n) % ALTERA_AVALON_JTAG_UART_BUF_LEN; + bc94: e0fff617 ldw r3,-40(fp) + bc98: e0bff817 ldw r2,-32(fp) + bc9c: 1885883a add r2,r3,r2 + bca0: 10c1ffcc andi r3,r2,2047 + bca4: e0bffb17 ldw r2,-20(fp) + bca8: 10c00b15 stw r3,44(r2) + } + while (space > 0); + bcac: e0bffd17 ldw r2,-12(fp) + bcb0: 10800048 cmpgei r2,r2,1 + bcb4: 103fcc1e bne r2,zero,bbe8 + + /* If we read any data then return it */ + if (ptr != buffer) + bcb8: e0fffa17 ldw r3,-24(fp) + bcbc: e0bffc17 ldw r2,-16(fp) + bcc0: 1880141e bne r3,r2,bd14 + break; + + /* If in non-blocking mode then return error */ + if (flags & O_NONBLOCK) + bcc4: e0bffe17 ldw r2,-8(fp) + bcc8: 1090000c andi r2,r2,16384 + bccc: 1004c03a cmpne r2,r2,zero + bcd0: 1000101e bne r2,zero,bd14 + while (in == sp->rx_in && sp->host_inactive < sp->timeout) + ; + } +#else + /* No OS: Always spin */ + while (in == sp->rx_in && sp->host_inactive < sp->timeout) + bcd4: e0bffb17 ldw r2,-20(fp) + bcd8: 10c00a17 ldw r3,40(r2) + bcdc: e0bff717 ldw r2,-36(fp) + bce0: 1880051e bne r3,r2,bcf8 + bce4: e0bffb17 ldw r2,-20(fp) + bce8: 10c00917 ldw r3,36(r2) + bcec: e0bffb17 ldw r2,-20(fp) + bcf0: 10800117 ldw r2,4(r2) + bcf4: 18bff736 bltu r3,r2,bcd4 + ; +#endif /* __ucosii__ */ + + if (in == sp->rx_in) + bcf8: e0bffb17 ldw r2,-20(fp) + bcfc: 10c00a17 ldw r3,40(r2) + bd00: e0bff717 ldw r2,-36(fp) + bd04: 18800326 beq r3,r2,bd14 + * When running in a multi threaded environment, obtain the "read_lock" + * semaphore. This ensures that reading from the device is thread-safe. + */ + ALT_SEM_PEND (sp->read_lock, 0); + + while (space > 0) + bd08: e0bffd17 ldw r2,-12(fp) + bd0c: 10800048 cmpgei r2,r2,1 + bd10: 103fb51e bne r2,zero,bbe8 + * semaphore so that other threads can access the buffer. + */ + + ALT_SEM_POST (sp->read_lock); + + if (ptr != buffer) + bd14: e0fffa17 ldw r3,-24(fp) + bd18: e0bffc17 ldw r2,-16(fp) + bd1c: 18801926 beq r3,r2,bd84 +static ALT_INLINE alt_irq_context ALT_ALWAYS_INLINE + alt_irq_disable_all (void) +{ + alt_irq_context context; + + NIOS2_READ_STATUS (context); + bd20: 0005303a rdctl r2,status + bd24: e0bff515 stw r2,-44(fp) + + NIOS2_WRITE_STATUS (context & ~NIOS2_STATUS_PIE_MSK); + bd28: e0fff517 ldw r3,-44(fp) + bd2c: 00bfff84 movi r2,-2 + bd30: 1884703a and r2,r3,r2 + bd34: 1001703a wrctl status,r2 + + return context; + bd38: e0bff517 ldw r2,-44(fp) + { + /* If we read any data then there is space in the buffer so enable interrupts */ + context = alt_irq_disable_all(); + bd3c: e0bff915 stw r2,-28(fp) + sp->irq_enable |= ALTERA_AVALON_JTAG_UART_CONTROL_RE_MSK; + bd40: e0bffb17 ldw r2,-20(fp) + bd44: 10800817 ldw r2,32(r2) + bd48: 10c00054 ori r3,r2,1 + bd4c: e0bffb17 ldw r2,-20(fp) + bd50: 10c00815 stw r3,32(r2) + IOWR_ALTERA_AVALON_JTAG_UART_CONTROL(sp->base, sp->irq_enable); + bd54: e0bffb17 ldw r2,-20(fp) + bd58: 10800017 ldw r2,0(r2) + bd5c: 11000104 addi r4,r2,4 + bd60: e0bffb17 ldw r2,-20(fp) + bd64: 10800817 ldw r2,32(r2) + bd68: 1007883a mov r3,r2 + bd6c: 2005883a mov r2,r4 + bd70: 10c00035 stwio r3,0(r2) + bd74: e0bff917 ldw r2,-28(fp) + bd78: e0bff415 stw r2,-48(fp) + status &= ~NIOS2_STATUS_PIE_MSK; + status |= (context & NIOS2_STATUS_PIE_MSK); + + NIOS2_WRITE_STATUS (status); +#else + NIOS2_WRITE_STATUS (context); + bd7c: e0bff417 ldw r2,-48(fp) + bd80: 1001703a wrctl status,r2 + alt_irq_enable_all(context); + } + + if (ptr != buffer) + bd84: e0fffa17 ldw r3,-24(fp) + bd88: e0bffc17 ldw r2,-16(fp) + bd8c: 18800526 beq r3,r2,bda4 + return ptr - buffer; + bd90: e0fffa17 ldw r3,-24(fp) + bd94: e0bffc17 ldw r2,-16(fp) + bd98: 1887c83a sub r3,r3,r2 + bd9c: e0ffff15 stw r3,-4(fp) + bda0: 00000906 br bdc8 + else if (flags & O_NONBLOCK) + bda4: e0bffe17 ldw r2,-8(fp) + bda8: 1090000c andi r2,r2,16384 + bdac: 1005003a cmpeq r2,r2,zero + bdb0: 1000031e bne r2,zero,bdc0 + return -EWOULDBLOCK; + bdb4: 00bffd44 movi r2,-11 + bdb8: e0bfff15 stw r2,-4(fp) + bdbc: 00000206 br bdc8 + else + return -EIO; + bdc0: 00bffec4 movi r2,-5 + bdc4: e0bfff15 stw r2,-4(fp) + bdc8: e0bfff17 ldw r2,-4(fp) +} + bdcc: e037883a mov sp,fp + bdd0: dfc00117 ldw ra,4(sp) + bdd4: df000017 ldw fp,0(sp) + bdd8: dec00204 addi sp,sp,8 + bddc: f800283a ret + +0000bde0 : +/* ----------------------------------------------------------- */ + +int +altera_avalon_jtag_uart_write(altera_avalon_jtag_uart_state* sp, + const char * ptr, int count, int flags) +{ + bde0: defff204 addi sp,sp,-56 + bde4: dfc00d15 stw ra,52(sp) + bde8: df000c15 stw fp,48(sp) + bdec: df000c04 addi fp,sp,48 + bdf0: e13ffb15 stw r4,-20(fp) + bdf4: e17ffc15 stw r5,-16(fp) + bdf8: e1bffd15 stw r6,-12(fp) + bdfc: e1fffe15 stw r7,-8(fp) + /* Remove warning at optimisation level 03 by seting out to 0 */ + unsigned int in, out=0; + be00: e03ff915 stw zero,-28(fp) + unsigned int n; + alt_irq_context context; + + const char * start = ptr; + be04: e0bffc17 ldw r2,-16(fp) + be08: e0bff615 stw r2,-40(fp) + ALT_SEM_PEND (sp->write_lock, 0); + + do + { + /* Copy as much as we can into the transmit buffer */ + while (count > 0) + be0c: 00003a06 br bef8 + { + /* We need a stable value of the out pointer to calculate the space available */ + in = sp->tx_in; + be10: e0bffb17 ldw r2,-20(fp) + be14: 10800c17 ldw r2,48(r2) + be18: e0bffa15 stw r2,-24(fp) + out = sp->tx_out; + be1c: e0bffb17 ldw r2,-20(fp) + be20: 10800d17 ldw r2,52(r2) + be24: e0bff915 stw r2,-28(fp) + + if (in < out) + be28: e0fffa17 ldw r3,-24(fp) + be2c: e0bff917 ldw r2,-28(fp) + be30: 1880062e bgeu r3,r2,be4c + n = out - 1 - in; + be34: e0fff917 ldw r3,-28(fp) + be38: e0bffa17 ldw r2,-24(fp) + be3c: 1885c83a sub r2,r3,r2 + be40: 10bfffc4 addi r2,r2,-1 + be44: e0bff815 stw r2,-32(fp) + be48: 00000c06 br be7c + else if (out > 0) + be4c: e0bff917 ldw r2,-28(fp) + be50: 1005003a cmpeq r2,r2,zero + be54: 1000051e bne r2,zero,be6c + n = ALTERA_AVALON_JTAG_UART_BUF_LEN - in; + be58: 00820004 movi r2,2048 + be5c: e0fffa17 ldw r3,-24(fp) + be60: 10c5c83a sub r2,r2,r3 + be64: e0bff815 stw r2,-32(fp) + be68: 00000406 br be7c + else + n = ALTERA_AVALON_JTAG_UART_BUF_LEN - 1 - in; + be6c: 0081ffc4 movi r2,2047 + be70: e0fffa17 ldw r3,-24(fp) + be74: 10c5c83a sub r2,r2,r3 + be78: e0bff815 stw r2,-32(fp) + + if (n == 0) + be7c: e0bff817 ldw r2,-32(fp) + be80: 1005003a cmpeq r2,r2,zero + be84: 10001f1e bne r2,zero,bf04 + break; + + if (n > count) + be88: e0fffd17 ldw r3,-12(fp) + be8c: e0bff817 ldw r2,-32(fp) + be90: 1880022e bgeu r3,r2,be9c + n = count; + be94: e0bffd17 ldw r2,-12(fp) + be98: e0bff815 stw r2,-32(fp) + + memcpy(sp->tx_buf + in, ptr, n); + be9c: e0bffb17 ldw r2,-20(fp) + bea0: 10c20e04 addi r3,r2,2104 + bea4: e0bffa17 ldw r2,-24(fp) + bea8: 1885883a add r2,r3,r2 + beac: e0fffc17 ldw r3,-16(fp) + beb0: 1009883a mov r4,r2 + beb4: 180b883a mov r5,r3 + beb8: e1bff817 ldw r6,-32(fp) + bebc: 00066180 call 6618 + ptr += n; + bec0: e0fff817 ldw r3,-32(fp) + bec4: e0bffc17 ldw r2,-16(fp) + bec8: 10c5883a add r2,r2,r3 + becc: e0bffc15 stw r2,-16(fp) + count -= n; + bed0: e0fffd17 ldw r3,-12(fp) + bed4: e0bff817 ldw r2,-32(fp) + bed8: 1885c83a sub r2,r3,r2 + bedc: e0bffd15 stw r2,-12(fp) + + sp->tx_in = (in + n) % ALTERA_AVALON_JTAG_UART_BUF_LEN; + bee0: e0fffa17 ldw r3,-24(fp) + bee4: e0bff817 ldw r2,-32(fp) + bee8: 1885883a add r2,r3,r2 + beec: 10c1ffcc andi r3,r2,2047 + bef0: e0bffb17 ldw r2,-20(fp) + bef4: 10c00c15 stw r3,48(r2) + ALT_SEM_PEND (sp->write_lock, 0); + + do + { + /* Copy as much as we can into the transmit buffer */ + while (count > 0) + bef8: e0bffd17 ldw r2,-12(fp) + befc: 10800048 cmpgei r2,r2,1 + bf00: 103fc31e bne r2,zero,be10 +static ALT_INLINE alt_irq_context ALT_ALWAYS_INLINE + alt_irq_disable_all (void) +{ + alt_irq_context context; + + NIOS2_READ_STATUS (context); + bf04: 0005303a rdctl r2,status + bf08: e0bff515 stw r2,-44(fp) + + NIOS2_WRITE_STATUS (context & ~NIOS2_STATUS_PIE_MSK); + bf0c: e0fff517 ldw r3,-44(fp) + bf10: 00bfff84 movi r2,-2 + bf14: 1884703a and r2,r3,r2 + bf18: 1001703a wrctl status,r2 + + return context; + bf1c: e0bff517 ldw r2,-44(fp) + * to enable interrupts if there is no space left in the FIFO + * + * For now kick the interrupt routine every time to make it transmit + * the data + */ + context = alt_irq_disable_all(); + bf20: e0bff715 stw r2,-36(fp) + sp->irq_enable |= ALTERA_AVALON_JTAG_UART_CONTROL_WE_MSK; + bf24: e0bffb17 ldw r2,-20(fp) + bf28: 10800817 ldw r2,32(r2) + bf2c: 10c00094 ori r3,r2,2 + bf30: e0bffb17 ldw r2,-20(fp) + bf34: 10c00815 stw r3,32(r2) + IOWR_ALTERA_AVALON_JTAG_UART_CONTROL(sp->base, sp->irq_enable); + bf38: e0bffb17 ldw r2,-20(fp) + bf3c: 10800017 ldw r2,0(r2) + bf40: 11000104 addi r4,r2,4 + bf44: e0bffb17 ldw r2,-20(fp) + bf48: 10800817 ldw r2,32(r2) + bf4c: 1007883a mov r3,r2 + bf50: 2005883a mov r2,r4 + bf54: 10c00035 stwio r3,0(r2) + bf58: e0bff717 ldw r2,-36(fp) + bf5c: e0bff415 stw r2,-48(fp) + status &= ~NIOS2_STATUS_PIE_MSK; + status |= (context & NIOS2_STATUS_PIE_MSK); + + NIOS2_WRITE_STATUS (status); +#else + NIOS2_WRITE_STATUS (context); + bf60: e0bff417 ldw r2,-48(fp) + bf64: 1001703a wrctl status,r2 + /* + * If there is any data left then either return now or block until + * some has been sent + */ + /* consider: test whether there is anything there while doing this and delay for at most 2s. */ + if (count > 0) + bf68: e0bffd17 ldw r2,-12(fp) + bf6c: 10800050 cmplti r2,r2,1 + bf70: 1000111e bne r2,zero,bfb8 + { + if (flags & O_NONBLOCK) + bf74: e0bffe17 ldw r2,-8(fp) + bf78: 1090000c andi r2,r2,16384 + bf7c: 1004c03a cmpne r2,r2,zero + bf80: 1000101e bne r2,zero,bfc4 + /* + * No OS present: Always wait for data to be removed from buffer. Once + * the interrupt routine has removed some data then we will be able to + * insert some more. + */ + while (out == sp->tx_out && sp->host_inactive < sp->timeout) + bf84: e0bffb17 ldw r2,-20(fp) + bf88: 10c00d17 ldw r3,52(r2) + bf8c: e0bff917 ldw r2,-28(fp) + bf90: 1880051e bne r3,r2,bfa8 + bf94: e0bffb17 ldw r2,-20(fp) + bf98: 10c00917 ldw r3,36(r2) + bf9c: e0bffb17 ldw r2,-20(fp) + bfa0: 10800117 ldw r2,4(r2) + bfa4: 18bff736 bltu r3,r2,bf84 + ; +#endif /* __ucosii__ */ + + if (out == sp->tx_out) + bfa8: e0bffb17 ldw r2,-20(fp) + bfac: 10c00d17 ldw r3,52(r2) + bfb0: e0bff917 ldw r2,-28(fp) + bfb4: 18800326 beq r3,r2,bfc4 + break; + } + } + while (count > 0); + bfb8: e0bffd17 ldw r2,-12(fp) + bfbc: 10800048 cmpgei r2,r2,1 + bfc0: 103fcd1e bne r2,zero,bef8 + * Now that access to the circular buffer is complete, release the write + * semaphore so that other threads can access the buffer. + */ + ALT_SEM_POST (sp->write_lock); + + if (ptr != start) + bfc4: e0fffc17 ldw r3,-16(fp) + bfc8: e0bff617 ldw r2,-40(fp) + bfcc: 18800526 beq r3,r2,bfe4 + return ptr - start; + bfd0: e0fffc17 ldw r3,-16(fp) + bfd4: e0bff617 ldw r2,-40(fp) + bfd8: 1887c83a sub r3,r3,r2 + bfdc: e0ffff15 stw r3,-4(fp) + bfe0: 00000906 br c008 + else if (flags & O_NONBLOCK) + bfe4: e0bffe17 ldw r2,-8(fp) + bfe8: 1090000c andi r2,r2,16384 + bfec: 1005003a cmpeq r2,r2,zero + bff0: 1000031e bne r2,zero,c000 + return -EWOULDBLOCK; + bff4: 00bffd44 movi r2,-11 + bff8: e0bfff15 stw r2,-4(fp) + bffc: 00000206 br c008 + sp->tx_out = sp->tx_in = 0; + return ptr - start + count; + } +#endif + else + return -EIO; /* Host not connected */ + c000: 00bffec4 movi r2,-5 + c004: e0bfff15 stw r2,-4(fp) + c008: e0bfff17 ldw r2,-4(fp) +} + c00c: e037883a mov sp,fp + c010: dfc00117 ldw ra,4(sp) + c014: df000017 ldw fp,0(sp) + c018: dec00204 addi sp,sp,8 + c01c: f800283a ret + +0000c020 : + +/* --------------------------------------------------------------------- */ + +static void lcd_write_command(altera_avalon_lcd_16207_state* sp, + unsigned char command) +{ + c020: defffa04 addi sp,sp,-24 + c024: dfc00515 stw ra,20(sp) + c028: df000415 stw fp,16(sp) + c02c: df000404 addi fp,sp,16 + c030: e13ffe15 stw r4,-8(fp) + c034: e17fff05 stb r5,-4(fp) + unsigned int base = sp->base; + c038: e0bffe17 ldw r2,-8(fp) + c03c: 10800017 ldw r2,0(r2) + c040: e0bffd15 stw r2,-12(fp) + /* We impose a timeout on the driver in case the LCD panel isn't connected. + * The first time we call this function the timeout is approx 25ms + * (assuming 5 cycles per loop and a 200MHz clock). Obviously systems + * with slower clocks, or debug builds, or slower memory will take longer. + */ + int i = 1000000; + c044: 008003f4 movhi r2,15 + c048: 10909004 addi r2,r2,16960 + c04c: e0bffc15 stw r2,-16(fp) + + /* Don't bother if the LCD panel didn't work before */ + if (sp->broken) + c050: e0bffe17 ldw r2,-8(fp) + c054: 10800803 ldbu r2,32(r2) + c058: 10803fcc andi r2,r2,255 + c05c: 1080201c xori r2,r2,128 + c060: 10bfe004 addi r2,r2,-128 + c064: 1004c03a cmpne r2,r2,zero + c068: 1000161e bne r2,zero,c0c4 + return; + + /* Wait until LCD isn't busy. */ + while (IORD_ALTERA_AVALON_LCD_16207_STATUS(base) & ALTERA_AVALON_LCD_16207_STATUS_BUSY_MSK) + c06c: 00000a06 br c098 + if (--i == 0) + c070: e0bffc17 ldw r2,-16(fp) + c074: 10bfffc4 addi r2,r2,-1 + c078: e0bffc15 stw r2,-16(fp) + c07c: e0bffc17 ldw r2,-16(fp) + c080: 1004c03a cmpne r2,r2,zero + c084: 1000041e bne r2,zero,c098 + { + sp->broken = 1; + c088: e0fffe17 ldw r3,-8(fp) + c08c: 00800044 movi r2,1 + c090: 18800805 stb r2,32(r3) + return; + c094: 00000b06 br c0c4 + /* Don't bother if the LCD panel didn't work before */ + if (sp->broken) + return; + + /* Wait until LCD isn't busy. */ + while (IORD_ALTERA_AVALON_LCD_16207_STATUS(base) & ALTERA_AVALON_LCD_16207_STATUS_BUSY_MSK) + c098: e0bffd17 ldw r2,-12(fp) + c09c: 10800104 addi r2,r2,4 + c0a0: 10800037 ldwio r2,0(r2) + c0a4: 1080200c andi r2,r2,128 + c0a8: 1004c03a cmpne r2,r2,zero + c0ac: 103ff01e bne r2,zero,c070 + } + + /* Despite what it says in the datasheet, the LCD isn't ready to accept + * a write immediately after it returns BUSY=0. Wait for 100us more. + */ + usleep(100); + c0b0: 01001904 movi r4,100 + c0b4: 000dba40 call dba4 + + IOWR_ALTERA_AVALON_LCD_16207_COMMAND(base, command); + c0b8: e0bffd17 ldw r2,-12(fp) + c0bc: e0ffff03 ldbu r3,-4(fp) + c0c0: 10c00035 stwio r3,0(r2) +} + c0c4: e037883a mov sp,fp + c0c8: dfc00117 ldw ra,4(sp) + c0cc: df000017 ldw fp,0(sp) + c0d0: dec00204 addi sp,sp,8 + c0d4: f800283a ret + +0000c0d8 : + +/* --------------------------------------------------------------------- */ + +static void lcd_write_data(altera_avalon_lcd_16207_state* sp, + unsigned char data) +{ + c0d8: defffa04 addi sp,sp,-24 + c0dc: dfc00515 stw ra,20(sp) + c0e0: df000415 stw fp,16(sp) + c0e4: df000404 addi fp,sp,16 + c0e8: e13ffe15 stw r4,-8(fp) + c0ec: e17fff05 stb r5,-4(fp) + unsigned int base = sp->base; + c0f0: e0bffe17 ldw r2,-8(fp) + c0f4: 10800017 ldw r2,0(r2) + c0f8: e0bffd15 stw r2,-12(fp) + /* We impose a timeout on the driver in case the LCD panel isn't connected. + * The first time we call this function the timeout is approx 25ms + * (assuming 5 cycles per loop and a 200MHz clock). Obviously systems + * with slower clocks, or debug builds, or slower memory will take longer. + */ + int i = 1000000; + c0fc: 008003f4 movhi r2,15 + c100: 10909004 addi r2,r2,16960 + c104: e0bffc15 stw r2,-16(fp) + + /* Don't bother if the LCD panel didn't work before */ + if (sp->broken) + c108: e0bffe17 ldw r2,-8(fp) + c10c: 10800803 ldbu r2,32(r2) + c110: 10803fcc andi r2,r2,255 + c114: 1080201c xori r2,r2,128 + c118: 10bfe004 addi r2,r2,-128 + c11c: 1004c03a cmpne r2,r2,zero + c120: 10001d1e bne r2,zero,c198 + return; + + /* Wait until LCD isn't busy. */ + while (IORD_ALTERA_AVALON_LCD_16207_STATUS(base) & ALTERA_AVALON_LCD_16207_STATUS_BUSY_MSK) + c124: 00000a06 br c150 + if (--i == 0) + c128: e0bffc17 ldw r2,-16(fp) + c12c: 10bfffc4 addi r2,r2,-1 + c130: e0bffc15 stw r2,-16(fp) + c134: e0bffc17 ldw r2,-16(fp) + c138: 1004c03a cmpne r2,r2,zero + c13c: 1000041e bne r2,zero,c150 + { + sp->broken = 1; + c140: e0fffe17 ldw r3,-8(fp) + c144: 00800044 movi r2,1 + c148: 18800805 stb r2,32(r3) + return; + c14c: 00001206 br c198 + /* Don't bother if the LCD panel didn't work before */ + if (sp->broken) + return; + + /* Wait until LCD isn't busy. */ + while (IORD_ALTERA_AVALON_LCD_16207_STATUS(base) & ALTERA_AVALON_LCD_16207_STATUS_BUSY_MSK) + c150: e0bffd17 ldw r2,-12(fp) + c154: 10800104 addi r2,r2,4 + c158: 10800037 ldwio r2,0(r2) + c15c: 1080200c andi r2,r2,128 + c160: 1004c03a cmpne r2,r2,zero + c164: 103ff01e bne r2,zero,c128 + } + + /* Despite what it says in the datasheet, the LCD isn't ready to accept + * a write immediately after it returns BUSY=0. Wait for 100us more. + */ + usleep(100); + c168: 01001904 movi r4,100 + c16c: 000dba40 call dba4 + + IOWR_ALTERA_AVALON_LCD_16207_DATA(base, data); + c170: e0bffd17 ldw r2,-12(fp) + c174: 10800204 addi r2,r2,8 + c178: e0ffff03 ldbu r3,-4(fp) + c17c: 10c00035 stwio r3,0(r2) + + sp->address++; + c180: e0bffe17 ldw r2,-8(fp) + c184: 108008c3 ldbu r2,35(r2) + c188: 10800044 addi r2,r2,1 + c18c: 1007883a mov r3,r2 + c190: e0bffe17 ldw r2,-8(fp) + c194: 10c008c5 stb r3,35(r2) +} + c198: e037883a mov sp,fp + c19c: dfc00117 ldw ra,4(sp) + c1a0: df000017 ldw fp,0(sp) + c1a4: dec00204 addi sp,sp,8 + c1a8: f800283a ret + +0000c1ac : + +/* --------------------------------------------------------------------- */ + +static void lcd_clear_screen(altera_avalon_lcd_16207_state* sp) +{ + c1ac: defffb04 addi sp,sp,-20 + c1b0: dfc00415 stw ra,16(sp) + c1b4: df000315 stw fp,12(sp) + c1b8: dc000215 stw r16,8(sp) + c1bc: df000204 addi fp,sp,8 + c1c0: e13fff15 stw r4,-4(fp) + int y; + + lcd_write_command(sp, LCD_CMD_CLEAR); + c1c4: e13fff17 ldw r4,-4(fp) + c1c8: 01400044 movi r5,1 + c1cc: 000c0200 call c020 + + sp->x = 0; + c1d0: e0bfff17 ldw r2,-4(fp) + c1d4: 10000845 stb zero,33(r2) + sp->y = 0; + c1d8: e0bfff17 ldw r2,-4(fp) + c1dc: 10000885 stb zero,34(r2) + sp->address = 0; + c1e0: e0bfff17 ldw r2,-4(fp) + c1e4: 100008c5 stb zero,35(r2) + + for (y = 0 ; y < ALT_LCD_HEIGHT ; y++) + c1e8: e03ffe15 stw zero,-8(fp) + c1ec: 00001c06 br c260 + { + memset(sp->line[y].data, ' ', sizeof(sp->line[0].data)); + c1f0: e13ffe17 ldw r4,-8(fp) + c1f4: 014018c4 movi r5,99 + c1f8: 0009fc80 call 9fc8 <__mulsi3> + c1fc: 10c01004 addi r3,r2,64 + c200: e0bfff17 ldw r2,-4(fp) + c204: 1889883a add r4,r3,r2 + c208: 01400804 movi r5,32 + c20c: 01801444 movi r6,81 + c210: 0001ea40 call 1ea4 + memset(sp->line[y].visible, ' ', sizeof(sp->line[0].visible)); + c214: e13ffe17 ldw r4,-8(fp) + c218: 014018c4 movi r5,99 + c21c: 0009fc80 call 9fc8 <__mulsi3> + c220: 10c00c04 addi r3,r2,48 + c224: e0bfff17 ldw r2,-4(fp) + c228: 1889883a add r4,r3,r2 + c22c: 01400804 movi r5,32 + c230: 01800404 movi r6,16 + c234: 0001ea40 call 1ea4 + sp->line[y].width = 0; + c238: e13ffe17 ldw r4,-8(fp) + c23c: e43fff17 ldw r16,-4(fp) + c240: 014018c4 movi r5,99 + c244: 0009fc80 call 9fc8 <__mulsi3> + c248: 1405883a add r2,r2,r16 + c24c: 10802404 addi r2,r2,144 + c250: 10000045 stb zero,1(r2) + + sp->x = 0; + sp->y = 0; + sp->address = 0; + + for (y = 0 ; y < ALT_LCD_HEIGHT ; y++) + c254: e0bffe17 ldw r2,-8(fp) + c258: 10800044 addi r2,r2,1 + c25c: e0bffe15 stw r2,-8(fp) + c260: e0bffe17 ldw r2,-8(fp) + c264: 10800090 cmplti r2,r2,2 + c268: 103fe11e bne r2,zero,c1f0 + { + memset(sp->line[y].data, ' ', sizeof(sp->line[0].data)); + memset(sp->line[y].visible, ' ', sizeof(sp->line[0].visible)); + sp->line[y].width = 0; + } +} + c26c: e037883a mov sp,fp + c270: dfc00217 ldw ra,8(sp) + c274: df000117 ldw fp,4(sp) + c278: dc000017 ldw r16,0(sp) + c27c: dec00304 addi sp,sp,12 + c280: f800283a ret + +0000c284 : + +/* --------------------------------------------------------------------- */ + +static void lcd_repaint_screen(altera_avalon_lcd_16207_state* sp) +{ + c284: defff404 addi sp,sp,-48 + c288: dfc00b15 stw ra,44(sp) + c28c: df000a15 stw fp,40(sp) + c290: dc800915 stw r18,36(sp) + c294: dc400815 stw r17,32(sp) + c298: dc000715 stw r16,28(sp) + c29c: df000704 addi fp,sp,28 + c2a0: e13fff15 stw r4,-4(fp) + /* scrollpos controls how much the lines have scrolled round. The speed + * each line scrolls at is controlled by its speed variable - while + * scrolline lines will wrap at the position set by width + */ + + int scrollpos = sp->scrollpos; + c2a4: e0bfff17 ldw r2,-4(fp) + c2a8: 10800943 ldbu r2,37(r2) + c2ac: 10803fcc andi r2,r2,255 + c2b0: 1080201c xori r2,r2,128 + c2b4: 10bfe004 addi r2,r2,-128 + c2b8: e0bffc15 stw r2,-16(fp) + + for (y = 0 ; y < ALT_LCD_HEIGHT ; y++) + c2bc: e03ffe15 stw zero,-8(fp) + c2c0: 00006a06 br c46c + { + int width = sp->line[y].width; + c2c4: e13ffe17 ldw r4,-8(fp) + c2c8: e43fff17 ldw r16,-4(fp) + c2cc: 014018c4 movi r5,99 + c2d0: 0009fc80 call 9fc8 <__mulsi3> + c2d4: 1405883a add r2,r2,r16 + c2d8: 10802404 addi r2,r2,144 + c2dc: 10800043 ldbu r2,1(r2) + c2e0: 10803fcc andi r2,r2,255 + c2e4: 1080201c xori r2,r2,128 + c2e8: 10bfe004 addi r2,r2,-128 + c2ec: e0bffb15 stw r2,-20(fp) + int offset = (scrollpos * sp->line[y].speed) >> 8; + c2f0: e13ffe17 ldw r4,-8(fp) + c2f4: e43fff17 ldw r16,-4(fp) + c2f8: 014018c4 movi r5,99 + c2fc: 0009fc80 call 9fc8 <__mulsi3> + c300: 1405883a add r2,r2,r16 + c304: 10802404 addi r2,r2,144 + c308: 10800083 ldbu r2,2(r2) + c30c: 11003fcc andi r4,r2,255 + c310: e17ffc17 ldw r5,-16(fp) + c314: 0009fc80 call 9fc8 <__mulsi3> + c318: 1005d23a srai r2,r2,8 + c31c: e0bffa15 stw r2,-24(fp) + if (offset >= width) + c320: e0fffa17 ldw r3,-24(fp) + c324: e0bffb17 ldw r2,-20(fp) + c328: 18800116 blt r3,r2,c330 + offset = 0; + c32c: e03ffa15 stw zero,-24(fp) + + for (x = 0 ; x < ALT_LCD_WIDTH ; x++) + c330: e03ffd15 stw zero,-12(fp) + c334: 00004706 br c454 + { + char c = sp->line[y].data[(x + offset) % width]; + c338: e47ffe17 ldw r17,-8(fp) + c33c: e0fffd17 ldw r3,-12(fp) + c340: e0bffa17 ldw r2,-24(fp) + c344: 1889883a add r4,r3,r2 + c348: e17ffb17 ldw r5,-20(fp) + c34c: 0009f580 call 9f58 <__modsi3> + c350: 1025883a mov r18,r2 + c354: e43fff17 ldw r16,-4(fp) + c358: 8809883a mov r4,r17 + c35c: 014018c4 movi r5,99 + c360: 0009fc80 call 9fc8 <__mulsi3> + c364: 1405883a add r2,r2,r16 + c368: 1485883a add r2,r2,r18 + c36c: 10801004 addi r2,r2,64 + c370: 10800003 ldbu r2,0(r2) + c374: e0bff945 stb r2,-27(fp) + + /* Writing data takes 40us, so don't do it unless required */ + if (sp->line[y].visible[x] != c) + c378: e13ffe17 ldw r4,-8(fp) + c37c: e47ffd17 ldw r17,-12(fp) + c380: e43fff17 ldw r16,-4(fp) + c384: 014018c4 movi r5,99 + c388: 0009fc80 call 9fc8 <__mulsi3> + c38c: 1405883a add r2,r2,r16 + c390: 1445883a add r2,r2,r17 + c394: 10800c04 addi r2,r2,48 + c398: 10800003 ldbu r2,0(r2) + c39c: 10c03fcc andi r3,r2,255 + c3a0: 18c0201c xori r3,r3,128 + c3a4: 18ffe004 addi r3,r3,-128 + c3a8: e0bff947 ldb r2,-27(fp) + c3ac: 18802626 beq r3,r2,c448 + { + unsigned char address = x + colstart[y]; + c3b0: e0fffe17 ldw r3,-8(fp) + c3b4: d0a00d04 addi r2,gp,-32716 + c3b8: 1885883a add r2,r3,r2 + c3bc: 10800003 ldbu r2,0(r2) + c3c0: 1007883a mov r3,r2 + c3c4: e0bffd17 ldw r2,-12(fp) + c3c8: 1885883a add r2,r3,r2 + c3cc: e0bff905 stb r2,-28(fp) + + if (address != sp->address) + c3d0: e0fff903 ldbu r3,-28(fp) + c3d4: e0bfff17 ldw r2,-4(fp) + c3d8: 108008c3 ldbu r2,35(r2) + c3dc: 10803fcc andi r2,r2,255 + c3e0: 1080201c xori r2,r2,128 + c3e4: 10bfe004 addi r2,r2,-128 + c3e8: 18800926 beq r3,r2,c410 + { + lcd_write_command(sp, LCD_CMD_WRITE_DATA | address); + c3ec: e0fff903 ldbu r3,-28(fp) + c3f0: 00bfe004 movi r2,-128 + c3f4: 1884b03a or r2,r3,r2 + c3f8: 11403fcc andi r5,r2,255 + c3fc: e13fff17 ldw r4,-4(fp) + c400: 000c0200 call c020 + sp->address = address; + c404: e0fff903 ldbu r3,-28(fp) + c408: e0bfff17 ldw r2,-4(fp) + c40c: 10c008c5 stb r3,35(r2) + } + + lcd_write_data(sp, c); + c410: e0bff943 ldbu r2,-27(fp) + c414: 11403fcc andi r5,r2,255 + c418: e13fff17 ldw r4,-4(fp) + c41c: 000c0d80 call c0d8 + sp->line[y].visible[x] = c; + c420: e13ffe17 ldw r4,-8(fp) + c424: e47ffd17 ldw r17,-12(fp) + c428: e43fff17 ldw r16,-4(fp) + c42c: 014018c4 movi r5,99 + c430: 0009fc80 call 9fc8 <__mulsi3> + c434: 1405883a add r2,r2,r16 + c438: 1445883a add r2,r2,r17 + c43c: 10c00c04 addi r3,r2,48 + c440: e0bff943 ldbu r2,-27(fp) + c444: 18800005 stb r2,0(r3) + int width = sp->line[y].width; + int offset = (scrollpos * sp->line[y].speed) >> 8; + if (offset >= width) + offset = 0; + + for (x = 0 ; x < ALT_LCD_WIDTH ; x++) + c448: e0bffd17 ldw r2,-12(fp) + c44c: 10800044 addi r2,r2,1 + c450: e0bffd15 stw r2,-12(fp) + c454: e0bffd17 ldw r2,-12(fp) + c458: 10800410 cmplti r2,r2,16 + c45c: 103fb61e bne r2,zero,c338 + * scrolline lines will wrap at the position set by width + */ + + int scrollpos = sp->scrollpos; + + for (y = 0 ; y < ALT_LCD_HEIGHT ; y++) + c460: e0bffe17 ldw r2,-8(fp) + c464: 10800044 addi r2,r2,1 + c468: e0bffe15 stw r2,-8(fp) + c46c: e0bffe17 ldw r2,-8(fp) + c470: 10800090 cmplti r2,r2,2 + c474: 103f931e bne r2,zero,c2c4 + lcd_write_data(sp, c); + sp->line[y].visible[x] = c; + } + } + } +} + c478: e037883a mov sp,fp + c47c: dfc00417 ldw ra,16(sp) + c480: df000317 ldw fp,12(sp) + c484: dc800217 ldw r18,8(sp) + c488: dc400117 ldw r17,4(sp) + c48c: dc000017 ldw r16,0(sp) + c490: dec00504 addi sp,sp,20 + c494: f800283a ret + +0000c498 : + +/* --------------------------------------------------------------------- */ + +static void lcd_scroll_up(altera_avalon_lcd_16207_state* sp) +{ + c498: defffb04 addi sp,sp,-20 + c49c: dfc00415 stw ra,16(sp) + c4a0: df000315 stw fp,12(sp) + c4a4: dc000215 stw r16,8(sp) + c4a8: df000204 addi fp,sp,8 + c4ac: e13fff15 stw r4,-4(fp) + int y; + + for (y = 0 ; y < ALT_LCD_HEIGHT ; y++) + c4b0: e03ffe15 stw zero,-8(fp) + c4b4: 00002106 br c53c + { + if (y < ALT_LCD_HEIGHT-1) + c4b8: e0bffe17 ldw r2,-8(fp) + c4bc: 10800048 cmpgei r2,r2,1 + c4c0: 1000121e bne r2,zero,c50c + memcpy(sp->line[y].data, sp->line[y+1].data, ALT_LCD_VIRTUAL_WIDTH); + c4c4: e13ffe17 ldw r4,-8(fp) + c4c8: 014018c4 movi r5,99 + c4cc: 0009fc80 call 9fc8 <__mulsi3> + c4d0: 10c01004 addi r3,r2,64 + c4d4: e0bfff17 ldw r2,-4(fp) + c4d8: 18a1883a add r16,r3,r2 + c4dc: e0bffe17 ldw r2,-8(fp) + c4e0: 11000044 addi r4,r2,1 + c4e4: 014018c4 movi r5,99 + c4e8: 0009fc80 call 9fc8 <__mulsi3> + c4ec: 10c01004 addi r3,r2,64 + c4f0: e0bfff17 ldw r2,-4(fp) + c4f4: 1885883a add r2,r3,r2 + c4f8: 8009883a mov r4,r16 + c4fc: 100b883a mov r5,r2 + c500: 01801404 movi r6,80 + c504: 00066180 call 6618 + c508: 00000906 br c530 + else + memset(sp->line[y].data, ' ', ALT_LCD_VIRTUAL_WIDTH); + c50c: e13ffe17 ldw r4,-8(fp) + c510: 014018c4 movi r5,99 + c514: 0009fc80 call 9fc8 <__mulsi3> + c518: 10c01004 addi r3,r2,64 + c51c: e0bfff17 ldw r2,-4(fp) + c520: 1889883a add r4,r3,r2 + c524: 01400804 movi r5,32 + c528: 01801404 movi r6,80 + c52c: 0001ea40 call 1ea4 + +static void lcd_scroll_up(altera_avalon_lcd_16207_state* sp) +{ + int y; + + for (y = 0 ; y < ALT_LCD_HEIGHT ; y++) + c530: e0bffe17 ldw r2,-8(fp) + c534: 10800044 addi r2,r2,1 + c538: e0bffe15 stw r2,-8(fp) + c53c: e0bffe17 ldw r2,-8(fp) + c540: 10800090 cmplti r2,r2,2 + c544: 103fdc1e bne r2,zero,c4b8 + memcpy(sp->line[y].data, sp->line[y+1].data, ALT_LCD_VIRTUAL_WIDTH); + else + memset(sp->line[y].data, ' ', ALT_LCD_VIRTUAL_WIDTH); + } + + sp->y--; + c548: e0bfff17 ldw r2,-4(fp) + c54c: 10800883 ldbu r2,34(r2) + c550: 10bfffc4 addi r2,r2,-1 + c554: 1007883a mov r3,r2 + c558: e0bfff17 ldw r2,-4(fp) + c55c: 10c00885 stb r3,34(r2) +} + c560: e037883a mov sp,fp + c564: dfc00217 ldw ra,8(sp) + c568: df000117 ldw fp,4(sp) + c56c: dc000017 ldw r16,0(sp) + c570: dec00304 addi sp,sp,12 + c574: f800283a ret + +0000c578 : + +/* --------------------------------------------------------------------- */ + +static void lcd_handle_escape(altera_avalon_lcd_16207_state* sp, char c) +{ + c578: defff804 addi sp,sp,-32 + c57c: dfc00715 stw ra,28(sp) + c580: df000615 stw fp,24(sp) + c584: df000604 addi fp,sp,24 + c588: e13ffd15 stw r4,-12(fp) + c58c: e17ffe05 stb r5,-8(fp) + int parm1 = 0, parm2 = 0; + c590: e03ffc15 stw zero,-16(fp) + c594: e03ffb15 stw zero,-20(fp) + + if (sp->escape[0] == '[') + c598: e0bffd17 ldw r2,-12(fp) + c59c: 10800a03 ldbu r2,40(r2) + c5a0: 10803fcc andi r2,r2,255 + c5a4: 1080201c xori r2,r2,128 + c5a8: 10bfe004 addi r2,r2,-128 + c5ac: 108016d8 cmpnei r2,r2,91 + c5b0: 10004d1e bne r2,zero,c6e8 + { + char * ptr = sp->escape+1; + c5b4: e0bffd17 ldw r2,-12(fp) + c5b8: 10800a04 addi r2,r2,40 + c5bc: 10800044 addi r2,r2,1 + c5c0: e0bffa15 stw r2,-24(fp) + while (isdigit(*ptr)) + c5c4: 00000f06 br c604 + parm1 = (parm1 * 10) + (*ptr++ - '0'); + c5c8: e13ffc17 ldw r4,-16(fp) + c5cc: 01400284 movi r5,10 + c5d0: 0009fc80 call 9fc8 <__mulsi3> + c5d4: 1007883a mov r3,r2 + c5d8: e0bffa17 ldw r2,-24(fp) + c5dc: 10800003 ldbu r2,0(r2) + c5e0: 10803fcc andi r2,r2,255 + c5e4: 1080201c xori r2,r2,128 + c5e8: 10bfe004 addi r2,r2,-128 + c5ec: 1885883a add r2,r3,r2 + c5f0: 10bff404 addi r2,r2,-48 + c5f4: e0bffc15 stw r2,-16(fp) + c5f8: e0bffa17 ldw r2,-24(fp) + c5fc: 10800044 addi r2,r2,1 + c600: e0bffa15 stw r2,-24(fp) + int parm1 = 0, parm2 = 0; + + if (sp->escape[0] == '[') + { + char * ptr = sp->escape+1; + while (isdigit(*ptr)) + c604: e0bffa17 ldw r2,-24(fp) + c608: 10800003 ldbu r2,0(r2) + c60c: 10803fcc andi r2,r2,255 + c610: 1080201c xori r2,r2,128 + c614: 10bfe004 addi r2,r2,-128 + c618: 1007883a mov r3,r2 + c61c: 00800074 movhi r2,1 + c620: 1080c304 addi r2,r2,780 + c624: 10800017 ldw r2,0(r2) + c628: 1885883a add r2,r3,r2 + c62c: 10800003 ldbu r2,0(r2) + c630: 10803fcc andi r2,r2,255 + c634: 1080010c andi r2,r2,4 + c638: 1004c03a cmpne r2,r2,zero + c63c: 103fe21e bne r2,zero,c5c8 + parm1 = (parm1 * 10) + (*ptr++ - '0'); + + if (*ptr == ';') + c640: e0bffa17 ldw r2,-24(fp) + c644: 10800003 ldbu r2,0(r2) + c648: 10803fcc andi r2,r2,255 + c64c: 1080201c xori r2,r2,128 + c650: 10bfe004 addi r2,r2,-128 + c654: 10800ed8 cmpnei r2,r2,59 + c658: 1000251e bne r2,zero,c6f0 + { + ptr++; + c65c: e0bffa17 ldw r2,-24(fp) + c660: 10800044 addi r2,r2,1 + c664: e0bffa15 stw r2,-24(fp) + while (isdigit(*ptr)) + c668: 00000f06 br c6a8 + parm2 = (parm2 * 10) + (*ptr++ - '0'); + c66c: e13ffb17 ldw r4,-20(fp) + c670: 01400284 movi r5,10 + c674: 0009fc80 call 9fc8 <__mulsi3> + c678: 1007883a mov r3,r2 + c67c: e0bffa17 ldw r2,-24(fp) + c680: 10800003 ldbu r2,0(r2) + c684: 10803fcc andi r2,r2,255 + c688: 1080201c xori r2,r2,128 + c68c: 10bfe004 addi r2,r2,-128 + c690: 1885883a add r2,r3,r2 + c694: 10bff404 addi r2,r2,-48 + c698: e0bffb15 stw r2,-20(fp) + c69c: e0bffa17 ldw r2,-24(fp) + c6a0: 10800044 addi r2,r2,1 + c6a4: e0bffa15 stw r2,-24(fp) + parm1 = (parm1 * 10) + (*ptr++ - '0'); + + if (*ptr == ';') + { + ptr++; + while (isdigit(*ptr)) + c6a8: e0bffa17 ldw r2,-24(fp) + c6ac: 10800003 ldbu r2,0(r2) + c6b0: 10803fcc andi r2,r2,255 + c6b4: 1080201c xori r2,r2,128 + c6b8: 10bfe004 addi r2,r2,-128 + c6bc: 1007883a mov r3,r2 + c6c0: 00800074 movhi r2,1 + c6c4: 1080c304 addi r2,r2,780 + c6c8: 10800017 ldw r2,0(r2) + c6cc: 1885883a add r2,r3,r2 + c6d0: 10800003 ldbu r2,0(r2) + c6d4: 10803fcc andi r2,r2,255 + c6d8: 1080010c andi r2,r2,4 + c6dc: 1004c03a cmpne r2,r2,zero + c6e0: 103fe21e bne r2,zero,c66c + c6e4: 00000206 br c6f0 + parm2 = (parm2 * 10) + (*ptr++ - '0'); + } + } + else + parm1 = -1; + c6e8: 00bfffc4 movi r2,-1 + c6ec: e0bffc15 stw r2,-16(fp) + + switch (c) + c6f0: e0bffe07 ldb r2,-8(fp) + c6f4: e0bfff15 stw r2,-4(fp) + c6f8: e0ffff17 ldw r3,-4(fp) + c6fc: 188012a0 cmpeqi r2,r3,74 + c700: 10002f1e bne r2,zero,c7c0 + c704: e0ffff17 ldw r3,-4(fp) + c708: 188012c8 cmpgei r2,r3,75 + c70c: 1000041e bne r2,zero,c720 + c710: e0ffff17 ldw r3,-4(fp) + c714: 18801220 cmpeqi r2,r3,72 + c718: 1000081e bne r2,zero,c73c + c71c: 00004a06 br c848 + c720: e0ffff17 ldw r3,-4(fp) + c724: 188012e0 cmpeqi r2,r3,75 + c728: 10002b1e bne r2,zero,c7d8 + c72c: e0ffff17 ldw r3,-4(fp) + c730: 188019a0 cmpeqi r2,r3,102 + c734: 1000011e bne r2,zero,c73c + c738: 00004306 br c848 + { + case 'H': /* ESC '[' ';' 'H' : Move cursor to location */ + case 'f': /* Same as above */ + if (parm2 > 0) + c73c: e0bffb17 ldw r2,-20(fp) + c740: 10800050 cmplti r2,r2,1 + c744: 1000051e bne r2,zero,c75c + sp->x = parm2 - 1; + c748: e0bffb17 ldw r2,-20(fp) + c74c: 10bfffc4 addi r2,r2,-1 + c750: 1007883a mov r3,r2 + c754: e0bffd17 ldw r2,-12(fp) + c758: 10c00845 stb r3,33(r2) + if (parm1 > 0) + c75c: e0bffc17 ldw r2,-16(fp) + c760: 10800050 cmplti r2,r2,1 + c764: 1000381e bne r2,zero,c848 + { + sp->y = parm1 - 1; + c768: e0bffc17 ldw r2,-16(fp) + c76c: 10bfffc4 addi r2,r2,-1 + c770: 1007883a mov r3,r2 + c774: e0bffd17 ldw r2,-12(fp) + c778: 10c00885 stb r3,34(r2) + if (sp->y > ALT_LCD_HEIGHT * 2) + c77c: e0bffd17 ldw r2,-12(fp) + c780: 10800883 ldbu r2,34(r2) + c784: 10803fcc andi r2,r2,255 + c788: 10800170 cmpltui r2,r2,5 + c78c: 1000061e bne r2,zero,c7a8 + sp->y = ALT_LCD_HEIGHT * 2; + c790: e0fffd17 ldw r3,-12(fp) + c794: 00800104 movi r2,4 + c798: 18800885 stb r2,34(r3) + while (sp->y > ALT_LCD_HEIGHT) + c79c: 00000206 br c7a8 + lcd_scroll_up(sp); + c7a0: e13ffd17 ldw r4,-12(fp) + c7a4: 000c4980 call c498 + if (parm1 > 0) + { + sp->y = parm1 - 1; + if (sp->y > ALT_LCD_HEIGHT * 2) + sp->y = ALT_LCD_HEIGHT * 2; + while (sp->y > ALT_LCD_HEIGHT) + c7a8: e0bffd17 ldw r2,-12(fp) + c7ac: 10800883 ldbu r2,34(r2) + c7b0: 10803fcc andi r2,r2,255 + c7b4: 108000e8 cmpgeui r2,r2,3 + c7b8: 103ff91e bne r2,zero,c7a0 + lcd_scroll_up(sp); + } + break; + c7bc: 00002206 br c848 + /* ESC J is clear to beginning of line [unimplemented] + * ESC [ 0 J is clear to bottom of screen [unimplemented] + * ESC [ 1 J is clear to beginning of screen [unimplemented] + * ESC [ 2 J is clear screen + */ + if (parm1 == 2) + c7c0: e0bffc17 ldw r2,-16(fp) + c7c4: 10800098 cmpnei r2,r2,2 + c7c8: 10001f1e bne r2,zero,c848 + lcd_clear_screen(sp); + c7cc: e13ffd17 ldw r4,-12(fp) + c7d0: 000c1ac0 call c1ac + break; + c7d4: 00001c06 br c848 + /* ESC K is clear to end of line + * ESC [ 0 K is clear to end of line + * ESC [ 1 K is clear to beginning of line [unimplemented] + * ESC [ 2 K is clear line [unimplemented] + */ + if (parm1 < 1) + c7d8: e0bffc17 ldw r2,-16(fp) + c7dc: 10800048 cmpgei r2,r2,1 + c7e0: 1000191e bne r2,zero,c848 + { + if (sp->x < ALT_LCD_VIRTUAL_WIDTH) + c7e4: e0bffd17 ldw r2,-12(fp) + c7e8: 10800843 ldbu r2,33(r2) + c7ec: 10803fcc andi r2,r2,255 + c7f0: 10801428 cmpgeui r2,r2,80 + c7f4: 1000141e bne r2,zero,c848 + memset(sp->line[sp->y].data + sp->x, ' ', ALT_LCD_VIRTUAL_WIDTH - sp->x); + c7f8: e0bffd17 ldw r2,-12(fp) + c7fc: 10800883 ldbu r2,34(r2) + c800: 11003fcc andi r4,r2,255 + c804: 014018c4 movi r5,99 + c808: 0009fc80 call 9fc8 <__mulsi3> + c80c: 10c01004 addi r3,r2,64 + c810: e0bffd17 ldw r2,-12(fp) + c814: 1887883a add r3,r3,r2 + c818: e0bffd17 ldw r2,-12(fp) + c81c: 10800843 ldbu r2,33(r2) + c820: 10803fcc andi r2,r2,255 + c824: 1889883a add r4,r3,r2 + c828: e0bffd17 ldw r2,-12(fp) + c82c: 10800843 ldbu r2,33(r2) + c830: 10c03fcc andi r3,r2,255 + c834: 00801404 movi r2,80 + c838: 10c5c83a sub r2,r2,r3 + c83c: 100d883a mov r6,r2 + c840: 01400804 movi r5,32 + c844: 0001ea40 call 1ea4 + } + break; + } +} + c848: e037883a mov sp,fp + c84c: dfc00117 ldw ra,4(sp) + c850: df000017 ldw fp,0(sp) + c854: dec00204 addi sp,sp,8 + c858: f800283a ret + +0000c85c : + +/* --------------------------------------------------------------------- */ + +int altera_avalon_lcd_16207_write(altera_avalon_lcd_16207_state* sp, + const char* ptr, int len, int flags) +{ + c85c: defff004 addi sp,sp,-64 + c860: dfc00f15 stw ra,60(sp) + c864: df000e15 stw fp,56(sp) + c868: dc800d15 stw r18,52(sp) + c86c: dc400c15 stw r17,48(sp) + c870: dc000b15 stw r16,44(sp) + c874: df000b04 addi fp,sp,44 + c878: e13ffc15 stw r4,-16(fp) + c87c: e17ffd15 stw r5,-12(fp) + c880: e1bffe15 stw r6,-8(fp) + c884: e1ffff15 stw r7,-4(fp) + const char* end = ptr + len; + c888: e0bffe17 ldw r2,-8(fp) + c88c: 1007883a mov r3,r2 + c890: e0bffd17 ldw r2,-12(fp) + c894: 10c5883a add r2,r2,r3 + c898: e0bffb15 stw r2,-20(fp) + + ALT_SEM_PEND (sp->write_lock, 0); + + /* Tell the routine which is called off the timer interrupt that the + * foreground routines are active so it must not repaint the display. */ + sp->active = 1; + c89c: e0fffc17 ldw r3,-16(fp) + c8a0: 00800044 movi r2,1 + c8a4: 188009c5 stb r2,39(r3) + + for ( ; ptr < end ; ptr++) + c8a8: 0000a306 br cb38 + { + char c = *ptr; + c8ac: e0bffd17 ldw r2,-12(fp) + c8b0: 10800003 ldbu r2,0(r2) + c8b4: e0bff805 stb r2,-32(fp) + + if (sp->esccount >= 0) + c8b8: e0bffc17 ldw r2,-16(fp) + c8bc: 10800903 ldbu r2,36(r2) + c8c0: 10803fcc andi r2,r2,255 + c8c4: 1080201c xori r2,r2,128 + c8c8: 10bfe004 addi r2,r2,-128 + c8cc: 1004803a cmplt r2,r2,zero + c8d0: 10003b1e bne r2,zero,c9c0 + { + unsigned int esccount = sp->esccount; + c8d4: e0bffc17 ldw r2,-16(fp) + c8d8: 10800903 ldbu r2,36(r2) + c8dc: 10803fcc andi r2,r2,255 + c8e0: 1080201c xori r2,r2,128 + c8e4: 10bfe004 addi r2,r2,-128 + c8e8: e0bff715 stw r2,-36(fp) + + /* Single character escape sequences can end with any character + * Multi character escape sequences start with '[' and contain + * digits and semicolons before terminating + */ + if ((esccount == 0 && c != '[') || + c8ec: e0bff717 ldw r2,-36(fp) + c8f0: 1004c03a cmpne r2,r2,zero + c8f4: 1000031e bne r2,zero,c904 + c8f8: e0bff807 ldb r2,-32(fp) + c8fc: 108016d8 cmpnei r2,r2,91 + c900: 1000111e bne r2,zero,c948 + c904: e0bff717 ldw r2,-36(fp) + c908: 1005003a cmpeq r2,r2,zero + c90c: 10001a1e bne r2,zero,c978 + c910: e0bff807 ldb r2,-32(fp) + c914: 1007883a mov r3,r2 + c918: 00800074 movhi r2,1 + c91c: 1080c304 addi r2,r2,780 + c920: 10800017 ldw r2,0(r2) + c924: 1885883a add r2,r3,r2 + c928: 10800003 ldbu r2,0(r2) + c92c: 10803fcc andi r2,r2,255 + c930: 1080010c andi r2,r2,4 + c934: 1004c03a cmpne r2,r2,zero + c938: 10000f1e bne r2,zero,c978 + c93c: e0bff807 ldb r2,-32(fp) + c940: 10800ee0 cmpeqi r2,r2,59 + c944: 10000c1e bne r2,zero,c978 + (esccount > 0 && !isdigit(c) && c != ';')) + { + sp->escape[esccount] = 0; + c948: e0fff717 ldw r3,-36(fp) + c94c: e0bffc17 ldw r2,-16(fp) + c950: 1885883a add r2,r3,r2 + c954: 10800a04 addi r2,r2,40 + c958: 10000005 stb zero,0(r2) + + lcd_handle_escape(sp, c); + c95c: e17ff807 ldb r5,-32(fp) + c960: e13ffc17 ldw r4,-16(fp) + c964: 000c5780 call c578 + + sp->esccount = -1; + c968: e0fffc17 ldw r3,-16(fp) + c96c: 00bfffc4 movi r2,-1 + c970: 18800905 stb r2,36(r3) + + /* Single character escape sequences can end with any character + * Multi character escape sequences start with '[' and contain + * digits and semicolons before terminating + */ + if ((esccount == 0 && c != '[') || + c974: 00006d06 br cb2c + + lcd_handle_escape(sp, c); + + sp->esccount = -1; + } + else if (sp->esccount < sizeof(sp->escape)-1) + c978: e0bffc17 ldw r2,-16(fp) + c97c: 10800903 ldbu r2,36(r2) + c980: 10803fcc andi r2,r2,255 + c984: 108001e8 cmpgeui r2,r2,7 + c988: 1000681e bne r2,zero,cb2c + { + sp->escape[esccount] = c; + c98c: e0fff717 ldw r3,-36(fp) + c990: e0bffc17 ldw r2,-16(fp) + c994: 1885883a add r2,r3,r2 + c998: 10c00a04 addi r3,r2,40 + c99c: e0bff803 ldbu r2,-32(fp) + c9a0: 18800005 stb r2,0(r3) + sp->esccount++; + c9a4: e0bffc17 ldw r2,-16(fp) + c9a8: 10800903 ldbu r2,36(r2) + c9ac: 10800044 addi r2,r2,1 + c9b0: 1007883a mov r3,r2 + c9b4: e0bffc17 ldw r2,-16(fp) + c9b8: 10c00905 stb r3,36(r2) + c9bc: 00005b06 br cb2c + } + } + else if (c == 27) /* ESC */ + c9c0: e0bff807 ldb r2,-32(fp) + c9c4: 108006d8 cmpnei r2,r2,27 + c9c8: 1000031e bne r2,zero,c9d8 + { + sp->esccount = 0; + c9cc: e0bffc17 ldw r2,-16(fp) + c9d0: 10000905 stb zero,36(r2) + c9d4: 00005506 br cb2c + } + else if (c == '\r') + c9d8: e0bff807 ldb r2,-32(fp) + c9dc: 10800358 cmpnei r2,r2,13 + c9e0: 1000031e bne r2,zero,c9f0 + { + sp->x = 0; + c9e4: e0bffc17 ldw r2,-16(fp) + c9e8: 10000845 stb zero,33(r2) + c9ec: 00004f06 br cb2c + } + else if (c == '\n') + c9f0: e0bff807 ldb r2,-32(fp) + c9f4: 10800298 cmpnei r2,r2,10 + c9f8: 1000101e bne r2,zero,ca3c + { + sp->x = 0; + c9fc: e0bffc17 ldw r2,-16(fp) + ca00: 10000845 stb zero,33(r2) + sp->y++; + ca04: e0bffc17 ldw r2,-16(fp) + ca08: 10800883 ldbu r2,34(r2) + ca0c: 10800044 addi r2,r2,1 + ca10: 1007883a mov r3,r2 + ca14: e0bffc17 ldw r2,-16(fp) + ca18: 10c00885 stb r3,34(r2) + + /* Let the cursor sit at X=0, Y=HEIGHT without scrolling so the user + * can print two lines of data without losing one. + */ + if (sp->y > ALT_LCD_HEIGHT) + ca1c: e0bffc17 ldw r2,-16(fp) + ca20: 10800883 ldbu r2,34(r2) + ca24: 10803fcc andi r2,r2,255 + ca28: 108000f0 cmpltui r2,r2,3 + ca2c: 10003f1e bne r2,zero,cb2c + lcd_scroll_up(sp); + ca30: e13ffc17 ldw r4,-16(fp) + ca34: 000c4980 call c498 + ca38: 00003c06 br cb2c + } + else if (c == '\b') + ca3c: e0bff807 ldb r2,-32(fp) + ca40: 10800218 cmpnei r2,r2,8 + ca44: 10000c1e bne r2,zero,ca78 + { + if (sp->x > 0) + ca48: e0bffc17 ldw r2,-16(fp) + ca4c: 10800843 ldbu r2,33(r2) + ca50: 10803fcc andi r2,r2,255 + ca54: 1005003a cmpeq r2,r2,zero + ca58: 1000341e bne r2,zero,cb2c + sp->x--; + ca5c: e0bffc17 ldw r2,-16(fp) + ca60: 10800843 ldbu r2,33(r2) + ca64: 10bfffc4 addi r2,r2,-1 + ca68: 1007883a mov r3,r2 + ca6c: e0bffc17 ldw r2,-16(fp) + ca70: 10c00845 stb r3,33(r2) + ca74: 00002d06 br cb2c + } + else if (isprint(c)) + ca78: e0bff807 ldb r2,-32(fp) + ca7c: 1007883a mov r3,r2 + ca80: 00800074 movhi r2,1 + ca84: 1080c304 addi r2,r2,780 + ca88: 10800017 ldw r2,0(r2) + ca8c: 1885883a add r2,r3,r2 + ca90: 10800003 ldbu r2,0(r2) + ca94: 10803fcc andi r2,r2,255 + ca98: 1080201c xori r2,r2,128 + ca9c: 10bfe004 addi r2,r2,-128 + caa0: 108025cc andi r2,r2,151 + caa4: 1005003a cmpeq r2,r2,zero + caa8: 1000201e bne r2,zero,cb2c + { + /* If we didn't scroll on the last linefeed then we might need to do + * it now. */ + if (sp->y >= ALT_LCD_HEIGHT) + caac: e0bffc17 ldw r2,-16(fp) + cab0: 10800883 ldbu r2,34(r2) + cab4: 10803fcc andi r2,r2,255 + cab8: 108000b0 cmpltui r2,r2,2 + cabc: 1000021e bne r2,zero,cac8 + lcd_scroll_up(sp); + cac0: e13ffc17 ldw r4,-16(fp) + cac4: 000c4980 call c498 + + if (sp->x < ALT_LCD_VIRTUAL_WIDTH) + cac8: e0bffc17 ldw r2,-16(fp) + cacc: 10800843 ldbu r2,33(r2) + cad0: 10803fcc andi r2,r2,255 + cad4: 10801428 cmpgeui r2,r2,80 + cad8: 10000e1e bne r2,zero,cb14 + sp->line[sp->y].data[sp->x] = c; + cadc: e0bffc17 ldw r2,-16(fp) + cae0: 10800883 ldbu r2,34(r2) + cae4: 11003fcc andi r4,r2,255 + cae8: e0bffc17 ldw r2,-16(fp) + caec: 10800843 ldbu r2,33(r2) + caf0: 14403fcc andi r17,r2,255 + caf4: e43ffc17 ldw r16,-16(fp) + caf8: 014018c4 movi r5,99 + cafc: 0009fc80 call 9fc8 <__mulsi3> + cb00: 1405883a add r2,r2,r16 + cb04: 1445883a add r2,r2,r17 + cb08: 10c01004 addi r3,r2,64 + cb0c: e0bff803 ldbu r2,-32(fp) + cb10: 18800005 stb r2,0(r3) + + sp->x++; + cb14: e0bffc17 ldw r2,-16(fp) + cb18: 10800843 ldbu r2,33(r2) + cb1c: 10800044 addi r2,r2,1 + cb20: 1007883a mov r3,r2 + cb24: e0bffc17 ldw r2,-16(fp) + cb28: 10c00845 stb r3,33(r2) + + /* Tell the routine which is called off the timer interrupt that the + * foreground routines are active so it must not repaint the display. */ + sp->active = 1; + + for ( ; ptr < end ; ptr++) + cb2c: e0bffd17 ldw r2,-12(fp) + cb30: 10800044 addi r2,r2,1 + cb34: e0bffd15 stw r2,-12(fp) + cb38: e0fffd17 ldw r3,-12(fp) + cb3c: e0bffb17 ldw r2,-20(fp) + cb40: 18bf5a36 bltu r3,r2,c8ac + sp->x++; + } + } + + /* Recalculate the scrolling parameters */ + widthmax = ALT_LCD_WIDTH; + cb44: 00800404 movi r2,16 + cb48: e0bff915 stw r2,-28(fp) + for (y = 0 ; y < ALT_LCD_HEIGHT ; y++) + cb4c: e03ffa15 stw zero,-24(fp) + cb50: 00003906 br cc38 + { + int width; + for (width = ALT_LCD_VIRTUAL_WIDTH ; width > 0 ; width--) + cb54: 00801404 movi r2,80 + cb58: e0bff615 stw r2,-40(fp) + cb5c: 00001206 br cba8 + if (sp->line[y].data[width-1] != ' ') + cb60: e13ffa17 ldw r4,-24(fp) + cb64: e0bff617 ldw r2,-40(fp) + cb68: 147fffc4 addi r17,r2,-1 + cb6c: e43ffc17 ldw r16,-16(fp) + cb70: 014018c4 movi r5,99 + cb74: 0009fc80 call 9fc8 <__mulsi3> + cb78: 1405883a add r2,r2,r16 + cb7c: 1445883a add r2,r2,r17 + cb80: 10801004 addi r2,r2,64 + cb84: 10800003 ldbu r2,0(r2) + cb88: 10803fcc andi r2,r2,255 + cb8c: 1080201c xori r2,r2,128 + cb90: 10bfe004 addi r2,r2,-128 + cb94: 10800818 cmpnei r2,r2,32 + cb98: 1000061e bne r2,zero,cbb4 + /* Recalculate the scrolling parameters */ + widthmax = ALT_LCD_WIDTH; + for (y = 0 ; y < ALT_LCD_HEIGHT ; y++) + { + int width; + for (width = ALT_LCD_VIRTUAL_WIDTH ; width > 0 ; width--) + cb9c: e0bff617 ldw r2,-40(fp) + cba0: 10bfffc4 addi r2,r2,-1 + cba4: e0bff615 stw r2,-40(fp) + cba8: e0bff617 ldw r2,-40(fp) + cbac: 10800048 cmpgei r2,r2,1 + cbb0: 103feb1e bne r2,zero,cb60 + + /* The minimum width is the size of the LCD panel. If the real width + * is long enough to require scrolling then add an extra space so the + * end of the message doesn't run into the beginning of it. + */ + if (width <= ALT_LCD_WIDTH) + cbb4: e0bff617 ldw r2,-40(fp) + cbb8: 10800448 cmpgei r2,r2,17 + cbbc: 1000031e bne r2,zero,cbcc + width = ALT_LCD_WIDTH; + cbc0: 00800404 movi r2,16 + cbc4: e0bff615 stw r2,-40(fp) + cbc8: 00000306 br cbd8 + else + width++; + cbcc: e0bff617 ldw r2,-40(fp) + cbd0: 10800044 addi r2,r2,1 + cbd4: e0bff615 stw r2,-40(fp) + + sp->line[y].width = width; + cbd8: e13ffa17 ldw r4,-24(fp) + cbdc: e0bff617 ldw r2,-40(fp) + cbe0: 1023883a mov r17,r2 + cbe4: e43ffc17 ldw r16,-16(fp) + cbe8: 014018c4 movi r5,99 + cbec: 0009fc80 call 9fc8 <__mulsi3> + cbf0: 1405883a add r2,r2,r16 + cbf4: 10802404 addi r2,r2,144 + cbf8: 14400045 stb r17,1(r2) + if (widthmax < width) + cbfc: e0fff917 ldw r3,-28(fp) + cc00: e0bff617 ldw r2,-40(fp) + cc04: 1880020e bge r3,r2,cc10 + widthmax = width; + cc08: e0bff617 ldw r2,-40(fp) + cc0c: e0bff915 stw r2,-28(fp) + sp->line[y].speed = 0; /* By default lines don't scroll */ + cc10: e13ffa17 ldw r4,-24(fp) + cc14: e43ffc17 ldw r16,-16(fp) + cc18: 014018c4 movi r5,99 + cc1c: 0009fc80 call 9fc8 <__mulsi3> + cc20: 1405883a add r2,r2,r16 + cc24: 10802404 addi r2,r2,144 + cc28: 10000085 stb zero,2(r2) + } + } + + /* Recalculate the scrolling parameters */ + widthmax = ALT_LCD_WIDTH; + for (y = 0 ; y < ALT_LCD_HEIGHT ; y++) + cc2c: e0bffa17 ldw r2,-24(fp) + cc30: 10800044 addi r2,r2,1 + cc34: e0bffa15 stw r2,-24(fp) + cc38: e0bffa17 ldw r2,-24(fp) + cc3c: 10800090 cmplti r2,r2,2 + cc40: 103fc41e bne r2,zero,cb54 + if (widthmax < width) + widthmax = width; + sp->line[y].speed = 0; /* By default lines don't scroll */ + } + + if (widthmax <= ALT_LCD_WIDTH) + cc44: e0bff917 ldw r2,-28(fp) + cc48: 10800448 cmpgei r2,r2,17 + cc4c: 1000031e bne r2,zero,cc5c + sp->scrollmax = 0; + cc50: e0bffc17 ldw r2,-16(fp) + cc54: 10000985 stb zero,38(r2) + cc58: 00003106 br cd20 + else + { + widthmax *= 2; + cc5c: e0bff917 ldw r2,-28(fp) + cc60: 1085883a add r2,r2,r2 + cc64: e0bff915 stw r2,-28(fp) + sp->scrollmax = widthmax; + cc68: e0bff917 ldw r2,-28(fp) + cc6c: 1007883a mov r3,r2 + cc70: e0bffc17 ldw r2,-16(fp) + cc74: 10c00985 stb r3,38(r2) + + /* Now calculate how fast each of the other lines should go */ + for (y = 0 ; y < ALT_LCD_HEIGHT ; y++) + cc78: e03ffa15 stw zero,-24(fp) + cc7c: 00002506 br cd14 + if (sp->line[y].width > ALT_LCD_WIDTH) + cc80: e13ffa17 ldw r4,-24(fp) + cc84: e43ffc17 ldw r16,-16(fp) + cc88: 014018c4 movi r5,99 + cc8c: 0009fc80 call 9fc8 <__mulsi3> + cc90: 1405883a add r2,r2,r16 + cc94: 10802404 addi r2,r2,144 + cc98: 10800043 ldbu r2,1(r2) + cc9c: 10803fcc andi r2,r2,255 + cca0: 1080201c xori r2,r2,128 + cca4: 10bfe004 addi r2,r2,-128 + cca8: 10800450 cmplti r2,r2,17 + ccac: 1000161e bne r2,zero,cd08 + */ +#if 1 + /* This option makes all the lines scroll round at different speeds + * which are chosen so that all the scrolls finish at the same time. + */ + sp->line[y].speed = 256 * sp->line[y].width / widthmax; + ccb0: e4bffa17 ldw r18,-24(fp) + ccb4: e13ffa17 ldw r4,-24(fp) + ccb8: e43ffc17 ldw r16,-16(fp) + ccbc: 014018c4 movi r5,99 + ccc0: 0009fc80 call 9fc8 <__mulsi3> + ccc4: 1405883a add r2,r2,r16 + ccc8: 10802404 addi r2,r2,144 + cccc: 10800043 ldbu r2,1(r2) + ccd0: 10803fcc andi r2,r2,255 + ccd4: 1080201c xori r2,r2,128 + ccd8: 10bfe004 addi r2,r2,-128 + ccdc: 1008923a slli r4,r2,8 + cce0: e17ff917 ldw r5,-28(fp) + cce4: 0009ef80 call 9ef8 <__divsi3> + cce8: 1023883a mov r17,r2 + ccec: e43ffc17 ldw r16,-16(fp) + ccf0: 9009883a mov r4,r18 + ccf4: 014018c4 movi r5,99 + ccf8: 0009fc80 call 9fc8 <__mulsi3> + ccfc: 1405883a add r2,r2,r16 + cd00: 10802404 addi r2,r2,144 + cd04: 14400085 stb r17,2(r2) + { + widthmax *= 2; + sp->scrollmax = widthmax; + + /* Now calculate how fast each of the other lines should go */ + for (y = 0 ; y < ALT_LCD_HEIGHT ; y++) + cd08: e0bffa17 ldw r2,-24(fp) + cd0c: 10800044 addi r2,r2,1 + cd10: e0bffa15 stw r2,-24(fp) + cd14: e0bffa17 ldw r2,-24(fp) + cd18: 10800090 cmplti r2,r2,2 + cd1c: 103fd81e bne r2,zero,cc80 + * (because active was set when the timer interrupt occurred). If there + * has been a missed repaint then paint again. And again. etc. + */ + for ( ; ; ) + { + int old_scrollpos = sp->scrollpos; + cd20: e0bffc17 ldw r2,-16(fp) + cd24: 10800943 ldbu r2,37(r2) + cd28: 10803fcc andi r2,r2,255 + cd2c: 1080201c xori r2,r2,128 + cd30: 10bfe004 addi r2,r2,-128 + cd34: e0bff515 stw r2,-44(fp) + + lcd_repaint_screen(sp); + cd38: e13ffc17 ldw r4,-16(fp) + cd3c: 000c2840 call c284 + + /* Let the timer routines repaint the display again */ + sp->active = 0; + cd40: e0bffc17 ldw r2,-16(fp) + cd44: 100009c5 stb zero,39(r2) + + /* Have the timer routines tried to scroll while we were painting? + * If not then we can exit */ + if (sp->scrollpos == old_scrollpos) + cd48: e0bffc17 ldw r2,-16(fp) + cd4c: 10800943 ldbu r2,37(r2) + cd50: 10c03fcc andi r3,r2,255 + cd54: 18c0201c xori r3,r3,128 + cd58: 18ffe004 addi r3,r3,-128 + cd5c: e0bff517 ldw r2,-44(fp) + cd60: 18800426 beq r3,r2,cd74 + break; + + /* We need to repaint again since the display scrolled while we were + * painting last time */ + sp->active = 1; + cd64: e0fffc17 ldw r3,-16(fp) + cd68: 00800044 movi r2,1 + cd6c: 188009c5 stb r2,39(r3) + } + cd70: 003feb06 br cd20 + * semaphore so that other threads can access the buffer. + */ + + ALT_SEM_POST (sp->write_lock); + + return len; + cd74: e0bffe17 ldw r2,-8(fp) +} + cd78: e037883a mov sp,fp + cd7c: dfc00417 ldw ra,16(sp) + cd80: df000317 ldw fp,12(sp) + cd84: dc800217 ldw r18,8(sp) + cd88: dc400117 ldw r17,4(sp) + cd8c: dc000017 ldw r16,0(sp) + cd90: dec00504 addi sp,sp,20 + cd94: f800283a ret + +0000cd98 : +/* + * Timeout routine is called every second + */ + +static alt_u32 alt_lcd_16207_timeout(void* context) +{ + cd98: defffc04 addi sp,sp,-16 + cd9c: dfc00315 stw ra,12(sp) + cda0: df000215 stw fp,8(sp) + cda4: df000204 addi fp,sp,8 + cda8: e13fff15 stw r4,-4(fp) + altera_avalon_lcd_16207_state* sp = (altera_avalon_lcd_16207_state*)context; + cdac: e0bfff17 ldw r2,-4(fp) + cdb0: e0bffe15 stw r2,-8(fp) + + /* Update the scrolling position */ + if (sp->scrollpos + 1 >= sp->scrollmax) + cdb4: e0bffe17 ldw r2,-8(fp) + cdb8: 10800943 ldbu r2,37(r2) + cdbc: 10803fcc andi r2,r2,255 + cdc0: 1080201c xori r2,r2,128 + cdc4: 10bfe004 addi r2,r2,-128 + cdc8: 10c00044 addi r3,r2,1 + cdcc: e0bffe17 ldw r2,-8(fp) + cdd0: 10800983 ldbu r2,38(r2) + cdd4: 10803fcc andi r2,r2,255 + cdd8: 1080201c xori r2,r2,128 + cddc: 10bfe004 addi r2,r2,-128 + cde0: 18800316 blt r3,r2,cdf0 + sp->scrollpos = 0; + cde4: e0bffe17 ldw r2,-8(fp) + cde8: 10000945 stb zero,37(r2) + cdec: 00000606 br ce08 + else + sp->scrollpos = sp->scrollpos + 1; + cdf0: e0bffe17 ldw r2,-8(fp) + cdf4: 10800943 ldbu r2,37(r2) + cdf8: 10800044 addi r2,r2,1 + cdfc: 1007883a mov r3,r2 + ce00: e0bffe17 ldw r2,-8(fp) + ce04: 10c00945 stb r3,37(r2) + + /* Repaint the panel unless the foreground will do it again soon */ + if (sp->scrollmax > 0 && !sp->active) + ce08: e0bffe17 ldw r2,-8(fp) + ce0c: 10800983 ldbu r2,38(r2) + ce10: 10803fcc andi r2,r2,255 + ce14: 1080201c xori r2,r2,128 + ce18: 10bfe004 addi r2,r2,-128 + ce1c: 10800050 cmplti r2,r2,1 + ce20: 1000091e bne r2,zero,ce48 + ce24: e0bffe17 ldw r2,-8(fp) + ce28: 108009c3 ldbu r2,39(r2) + ce2c: 10803fcc andi r2,r2,255 + ce30: 1080201c xori r2,r2,128 + ce34: 10bfe004 addi r2,r2,-128 + ce38: 1004c03a cmpne r2,r2,zero + ce3c: 1000021e bne r2,zero,ce48 + lcd_repaint_screen(sp); + ce40: e13ffe17 ldw r4,-8(fp) + ce44: 000c2840 call c284 + + return sp->period; + ce48: e0bffe17 ldw r2,-8(fp) + ce4c: 10800717 ldw r2,28(r2) +} + ce50: e037883a mov sp,fp + ce54: dfc00117 ldw ra,4(sp) + ce58: df000017 ldw fp,0(sp) + ce5c: dec00204 addi sp,sp,8 + ce60: f800283a ret + +0000ce64 : + +/* + * Called at boot time to initialise the LCD driver + */ +void altera_avalon_lcd_16207_init(altera_avalon_lcd_16207_state* sp) +{ + ce64: defffc04 addi sp,sp,-16 + ce68: dfc00315 stw ra,12(sp) + ce6c: df000215 stw fp,8(sp) + ce70: df000204 addi fp,sp,8 + ce74: e13fff15 stw r4,-4(fp) + unsigned int base = sp->base; + ce78: e0bfff17 ldw r2,-4(fp) + ce7c: 10800017 ldw r2,0(r2) + ce80: e0bffe15 stw r2,-8(fp) + + /* Mark the device as functional */ + sp->broken = 0; + ce84: e0bfff17 ldw r2,-4(fp) + ce88: 10000805 stb zero,32(r2) + * the BUSY bit in the status register doesn't work until the display + * has been reset three times. + */ + + /* Wait for 15 ms then reset */ + usleep(15000); + ce8c: 010ea604 movi r4,15000 + ce90: 000dba40 call dba4 + IOWR_ALTERA_AVALON_LCD_16207_COMMAND(base, LCD_CMD_FUNCTION_SET | LCD_CMD_8BIT); + ce94: e0bffe17 ldw r2,-8(fp) + ce98: 1007883a mov r3,r2 + ce9c: 00800c04 movi r2,48 + cea0: 18800035 stwio r2,0(r3) + + /* Wait for another 4.1ms and reset again */ + usleep(4100); + cea4: 01040104 movi r4,4100 + cea8: 000dba40 call dba4 + IOWR_ALTERA_AVALON_LCD_16207_COMMAND(base, LCD_CMD_FUNCTION_SET | LCD_CMD_8BIT); + ceac: e0bffe17 ldw r2,-8(fp) + ceb0: 1007883a mov r3,r2 + ceb4: 00800c04 movi r2,48 + ceb8: 18800035 stwio r2,0(r3) + + /* Wait a further 1 ms and reset a third time */ + usleep(1000); + cebc: 0100fa04 movi r4,1000 + cec0: 000dba40 call dba4 + IOWR_ALTERA_AVALON_LCD_16207_COMMAND(base, LCD_CMD_FUNCTION_SET | LCD_CMD_8BIT); + cec4: e0bffe17 ldw r2,-8(fp) + cec8: 1007883a mov r3,r2 + cecc: 00800c04 movi r2,48 + ced0: 18800035 stwio r2,0(r3) + + /* Setup interface parameters: 8 bit bus, 2 rows, 5x7 font */ + lcd_write_command(sp, LCD_CMD_FUNCTION_SET | LCD_CMD_8BIT | LCD_CMD_TWO_LINE); + ced4: e13fff17 ldw r4,-4(fp) + ced8: 01400e04 movi r5,56 + cedc: 000c0200 call c020 + + /* Turn display off */ + lcd_write_command(sp, LCD_CMD_ONOFF); + cee0: e13fff17 ldw r4,-4(fp) + cee4: 01400204 movi r5,8 + cee8: 000c0200 call c020 + + /* Clear display */ + lcd_clear_screen(sp); + ceec: e13fff17 ldw r4,-4(fp) + cef0: 000c1ac0 call c1ac + + /* Set mode: increment after writing, don't shift display */ + lcd_write_command(sp, LCD_CMD_MODES | LCD_CMD_MODE_INC); + cef4: e13fff17 ldw r4,-4(fp) + cef8: 01400184 movi r5,6 + cefc: 000c0200 call c020 + + /* Turn display on */ + lcd_write_command(sp, LCD_CMD_ONOFF | LCD_CMD_ENABLE_DISP); + cf00: e13fff17 ldw r4,-4(fp) + cf04: 01400304 movi r5,12 + cf08: 000c0200 call c020 + + sp->esccount = -1; + cf0c: e0ffff17 ldw r3,-4(fp) + cf10: 00bfffc4 movi r2,-1 + cf14: 18800905 stb r2,36(r3) + memset(sp->escape, 0, sizeof(sp->escape)); + cf18: e0bfff17 ldw r2,-4(fp) + cf1c: 11000a04 addi r4,r2,40 + cf20: 000b883a mov r5,zero + cf24: 01800204 movi r6,8 + cf28: 0001ea40 call 1ea4 + + sp->scrollpos = 0; + cf2c: e0bfff17 ldw r2,-4(fp) + cf30: 10000945 stb zero,37(r2) + sp->scrollmax = 0; + cf34: e0bfff17 ldw r2,-4(fp) + cf38: 10000985 stb zero,38(r2) + sp->active = 0; + cf3c: e0bfff17 ldw r2,-4(fp) + cf40: 100009c5 stb zero,39(r2) + cf44: 00800074 movhi r2,1 + cf48: 1087b004 addi r2,r2,7872 + cf4c: 10800017 ldw r2,0(r2) + cf50: 1009883a mov r4,r2 + + sp->period = alt_ticks_per_second() / 10; /* Call every 100ms */ + cf54: 01400284 movi r5,10 + cf58: 0009fb80 call 9fb8 <__udivsi3> + cf5c: 1007883a mov r3,r2 + cf60: e0bfff17 ldw r2,-4(fp) + cf64: 10c00715 stw r3,28(r2) + + alt_alarm_start(&sp->alarm, sp->period, &alt_lcd_16207_timeout, sp); + cf68: e0bfff17 ldw r2,-4(fp) + cf6c: 11000104 addi r4,r2,4 + cf70: e0bfff17 ldw r2,-4(fp) + cf74: 10800717 ldw r2,28(r2) + cf78: 100b883a mov r5,r2 + cf7c: 01800074 movhi r6,1 + cf80: 31b36604 addi r6,r6,-12904 + cf84: e1ffff17 ldw r7,-4(fp) + cf88: 000cff80 call cff8 +} + cf8c: e037883a mov sp,fp + cf90: dfc00117 ldw ra,4(sp) + cf94: df000017 ldw fp,0(sp) + cf98: dec00204 addi sp,sp,8 + cf9c: f800283a ret + +0000cfa0 : +extern int altera_avalon_lcd_16207_write(altera_avalon_lcd_16207_state* sp, + const char* ptr, int count, int flags); + +int +altera_avalon_lcd_16207_write_fd(alt_fd* fd, const char* buffer, int space) +{ + cfa0: defffa04 addi sp,sp,-24 + cfa4: dfc00515 stw ra,20(sp) + cfa8: df000415 stw fp,16(sp) + cfac: df000404 addi fp,sp,16 + cfb0: e13ffd15 stw r4,-12(fp) + cfb4: e17ffe15 stw r5,-8(fp) + cfb8: e1bfff15 stw r6,-4(fp) + altera_avalon_lcd_16207_dev* dev = (altera_avalon_lcd_16207_dev*) fd->dev; + cfbc: e0bffd17 ldw r2,-12(fp) + cfc0: 10800017 ldw r2,0(r2) + cfc4: e0bffc15 stw r2,-16(fp) + + return altera_avalon_lcd_16207_write(&dev->state, buffer, space, + cfc8: e0bffc17 ldw r2,-16(fp) + cfcc: 11000a04 addi r4,r2,40 + cfd0: e0bffd17 ldw r2,-12(fp) + cfd4: 11c00217 ldw r7,8(r2) + cfd8: e17ffe17 ldw r5,-8(fp) + cfdc: e1bfff17 ldw r6,-4(fp) + cfe0: 000c85c0 call c85c + fd->fd_flags); +} + cfe4: e037883a mov sp,fp + cfe8: dfc00117 ldw ra,4(sp) + cfec: df000017 ldw fp,0(sp) + cff0: dec00204 addi sp,sp,8 + cff4: f800283a ret + +0000cff8 : + */ + +int alt_alarm_start (alt_alarm* alarm, alt_u32 nticks, + alt_u32 (*callback) (void* context), + void* context) +{ + cff8: defff404 addi sp,sp,-48 + cffc: df000b15 stw fp,44(sp) + d000: df000b04 addi fp,sp,44 + d004: e13ffb15 stw r4,-20(fp) + d008: e17ffc15 stw r5,-16(fp) + d00c: e1bffd15 stw r6,-12(fp) + d010: e1fffe15 stw r7,-8(fp) + alt_irq_context irq_context; + alt_u32 current_nticks = 0; + d014: e03ff915 stw zero,-28(fp) + d018: 00800074 movhi r2,1 + d01c: 1087b004 addi r2,r2,7872 + d020: 10800017 ldw r2,0(r2) + + if (alt_ticks_per_second ()) + d024: 1005003a cmpeq r2,r2,zero + d028: 1000411e bne r2,zero,d130 + { + if (alarm) + d02c: e0bffb17 ldw r2,-20(fp) + d030: 1005003a cmpeq r2,r2,zero + d034: 10003b1e bne r2,zero,d124 + { + alarm->callback = callback; + d038: e0fffb17 ldw r3,-20(fp) + d03c: e0bffd17 ldw r2,-12(fp) + d040: 18800315 stw r2,12(r3) + alarm->context = context; + d044: e0fffb17 ldw r3,-20(fp) + d048: e0bffe17 ldw r2,-8(fp) + d04c: 18800515 stw r2,20(r3) +static ALT_INLINE alt_irq_context ALT_ALWAYS_INLINE + alt_irq_disable_all (void) +{ + alt_irq_context context; + + NIOS2_READ_STATUS (context); + d050: 0005303a rdctl r2,status + d054: e0bff815 stw r2,-32(fp) + + NIOS2_WRITE_STATUS (context & ~NIOS2_STATUS_PIE_MSK); + d058: e0fff817 ldw r3,-32(fp) + d05c: 00bfff84 movi r2,-2 + d060: 1884703a and r2,r3,r2 + d064: 1001703a wrctl status,r2 + + return context; + d068: e0bff817 ldw r2,-32(fp) + + irq_context = alt_irq_disable_all (); + d06c: e0bffa15 stw r2,-24(fp) + * alt_nticks() returns the elapsed number of system clock ticks since reset. + */ + +static ALT_INLINE alt_u32 ALT_ALWAYS_INLINE alt_nticks (void) +{ + return _alt_nticks; + d070: 00800074 movhi r2,1 + d074: 1087b104 addi r2,r2,7876 + d078: 10800017 ldw r2,0(r2) + + current_nticks = alt_nticks(); + d07c: e0bff915 stw r2,-28(fp) + + alarm->time = nticks + current_nticks + 1; + d080: e0fffc17 ldw r3,-16(fp) + d084: e0bff917 ldw r2,-28(fp) + d088: 1885883a add r2,r3,r2 + d08c: 10c00044 addi r3,r2,1 + d090: e0bffb17 ldw r2,-20(fp) + d094: 10c00215 stw r3,8(r2) + /* + * If the desired alarm time causes a roll-over, set the rollover + * flag. This will prevent the subsequent tick event from causing + * an alarm too early. + */ + if(alarm->time < current_nticks) + d098: e0bffb17 ldw r2,-20(fp) + d09c: 10c00217 ldw r3,8(r2) + d0a0: e0bff917 ldw r2,-28(fp) + d0a4: 1880042e bgeu r3,r2,d0b8 + { + alarm->rollover = 1; + d0a8: e0fffb17 ldw r3,-20(fp) + d0ac: 00800044 movi r2,1 + d0b0: 18800405 stb r2,16(r3) + d0b4: 00000206 br d0c0 + } + else + { + alarm->rollover = 0; + d0b8: e0bffb17 ldw r2,-20(fp) + d0bc: 10000405 stb zero,16(r2) + } + + alt_llist_insert (&alt_alarm_list, &alarm->llist); + d0c0: e0fffb17 ldw r3,-20(fp) + d0c4: 00800074 movhi r2,1 + d0c8: 1080c104 addi r2,r2,772 + d0cc: e0bff615 stw r2,-40(fp) + d0d0: e0fff715 stw r3,-36(fp) + */ + +static ALT_INLINE void ALT_ALWAYS_INLINE alt_llist_insert(alt_llist* list, + alt_llist* entry) +{ + entry->previous = list; + d0d4: e0fff717 ldw r3,-36(fp) + d0d8: e0bff617 ldw r2,-40(fp) + d0dc: 18800115 stw r2,4(r3) + entry->next = list->next; + d0e0: e0bff617 ldw r2,-40(fp) + d0e4: 10c00017 ldw r3,0(r2) + d0e8: e0bff717 ldw r2,-36(fp) + d0ec: 10c00015 stw r3,0(r2) + + list->next->previous = entry; + d0f0: e0bff617 ldw r2,-40(fp) + d0f4: 10c00017 ldw r3,0(r2) + d0f8: e0bff717 ldw r2,-36(fp) + d0fc: 18800115 stw r2,4(r3) + list->next = entry; + d100: e0fff617 ldw r3,-40(fp) + d104: e0bff717 ldw r2,-36(fp) + d108: 18800015 stw r2,0(r3) + d10c: e0bffa17 ldw r2,-24(fp) + d110: e0bff515 stw r2,-44(fp) + status &= ~NIOS2_STATUS_PIE_MSK; + status |= (context & NIOS2_STATUS_PIE_MSK); + + NIOS2_WRITE_STATUS (status); +#else + NIOS2_WRITE_STATUS (context); + d114: e0bff517 ldw r2,-44(fp) + d118: 1001703a wrctl status,r2 + alt_irq_enable_all (irq_context); + + return 0; + d11c: e03fff15 stw zero,-4(fp) + d120: 00000506 br d138 + } + else + { + return -EINVAL; + d124: 00bffa84 movi r2,-22 + d128: e0bfff15 stw r2,-4(fp) + d12c: 00000206 br d138 + } + } + else + { + return -ENOTSUP; + d130: 00bfde84 movi r2,-134 + d134: e0bfff15 stw r2,-4(fp) + d138: e0bfff17 ldw r2,-4(fp) + } +} + d13c: e037883a mov sp,fp + d140: df000017 ldw fp,0(sp) + d144: dec00104 addi sp,sp,4 + d148: f800283a ret + +0000d14c : +/* + * alt_dcache_flush_all() is called to flush the entire data cache. + */ + +void alt_dcache_flush_all (void) +{ + d14c: deffff04 addi sp,sp,-4 + d150: df000015 stw fp,0(sp) + d154: d839883a mov fp,sp + for (i = (char*) 0; i < (char*) NIOS2_DCACHE_SIZE; i+= NIOS2_DCACHE_LINE_SIZE) + { + __asm__ volatile ("flushd (%0)" :: "r" (i)); + } +#endif /* NIOS2_DCACHE_SIZE > 0 */ +} + d158: e037883a mov sp,fp + d15c: df000017 ldw fp,0(sp) + d160: dec00104 addi sp,sp,4 + d164: f800283a ret + +0000d168 : +/* + * + */ + +int alt_dev_llist_insert (alt_dev_llist* dev, alt_llist* list) +{ + d168: defff904 addi sp,sp,-28 + d16c: dfc00615 stw ra,24(sp) + d170: df000515 stw fp,20(sp) + d174: df000504 addi fp,sp,20 + d178: e13ffd15 stw r4,-12(fp) + d17c: e17ffe15 stw r5,-8(fp) + /* + * check that the device exists, and that it has a valid name. + */ + + if (!dev || !dev->name) + d180: e0bffd17 ldw r2,-12(fp) + d184: 1005003a cmpeq r2,r2,zero + d188: 1000041e bne r2,zero,d19c + d18c: e0bffd17 ldw r2,-12(fp) + d190: 10800217 ldw r2,8(r2) + d194: 1004c03a cmpne r2,r2,zero + d198: 1000071e bne r2,zero,d1b8 + { + ALT_ERRNO = EINVAL; + d19c: 000d21c0 call d21c + d1a0: 1007883a mov r3,r2 + d1a4: 00800584 movi r2,22 + d1a8: 18800015 stw r2,0(r3) + return -EINVAL; + d1ac: 00bffa84 movi r2,-22 + d1b0: e0bfff15 stw r2,-4(fp) + d1b4: 00001306 br d204 + + /* + * register the device. + */ + + alt_llist_insert(list, &dev->llist); + d1b8: e0fffd17 ldw r3,-12(fp) + d1bc: e0bffe17 ldw r2,-8(fp) + d1c0: e0bffb15 stw r2,-20(fp) + d1c4: e0fffc15 stw r3,-16(fp) + */ + +static ALT_INLINE void ALT_ALWAYS_INLINE alt_llist_insert(alt_llist* list, + alt_llist* entry) +{ + entry->previous = list; + d1c8: e0fffc17 ldw r3,-16(fp) + d1cc: e0bffb17 ldw r2,-20(fp) + d1d0: 18800115 stw r2,4(r3) + entry->next = list->next; + d1d4: e0bffb17 ldw r2,-20(fp) + d1d8: 10c00017 ldw r3,0(r2) + d1dc: e0bffc17 ldw r2,-16(fp) + d1e0: 10c00015 stw r3,0(r2) + + list->next->previous = entry; + d1e4: e0bffb17 ldw r2,-20(fp) + d1e8: 10c00017 ldw r3,0(r2) + d1ec: e0bffc17 ldw r2,-16(fp) + d1f0: 18800115 stw r2,4(r3) + list->next = entry; + d1f4: e0fffb17 ldw r3,-20(fp) + d1f8: e0bffc17 ldw r2,-16(fp) + d1fc: 18800015 stw r2,0(r3) + + return 0; + d200: e03fff15 stw zero,-4(fp) + d204: e0bfff17 ldw r2,-4(fp) +} + d208: e037883a mov sp,fp + d20c: dfc00117 ldw ra,4(sp) + d210: df000017 ldw fp,0(sp) + d214: dec00204 addi sp,sp,8 + d218: f800283a ret + +0000d21c : +#undef errno + +extern int errno; + +static ALT_INLINE int* alt_get_errno(void) +{ + d21c: defffd04 addi sp,sp,-12 + d220: dfc00215 stw ra,8(sp) + d224: df000115 stw fp,4(sp) + d228: df000104 addi fp,sp,4 + return ((alt_errno) ? alt_errno() : &errno); + d22c: 00800074 movhi r2,1 + d230: 1080bd04 addi r2,r2,756 + d234: 10800017 ldw r2,0(r2) + d238: 1005003a cmpeq r2,r2,zero + d23c: 1000061e bne r2,zero,d258 + d240: 00800074 movhi r2,1 + d244: 1080bd04 addi r2,r2,756 + d248: 10800017 ldw r2,0(r2) + d24c: 103ee83a callr r2 + d250: e0bfff15 stw r2,-4(fp) + d254: 00000306 br d264 + d258: 00800074 movhi r2,1 + d25c: 1087a504 addi r2,r2,7828 + d260: e0bfff15 stw r2,-4(fp) + d264: e0bfff17 ldw r2,-4(fp) +} + d268: e037883a mov sp,fp + d26c: dfc00117 ldw ra,4(sp) + d270: df000017 ldw fp,0(sp) + d274: dec00204 addi sp,sp,8 + d278: f800283a ret + +0000d27c <_do_ctors>: +/* + * Run the C++ static constructors. + */ + +void _do_ctors(void) +{ + d27c: defffd04 addi sp,sp,-12 + d280: dfc00215 stw ra,8(sp) + d284: df000115 stw fp,4(sp) + d288: df000104 addi fp,sp,4 + constructor* ctor; + + for (ctor = &__CTOR_END__[-1]; ctor >= __CTOR_LIST__; ctor--) + d28c: 00bfff04 movi r2,-4 + d290: 00c00074 movhi r3,1 + d294: 18f85704 addi r3,r3,-7844 + d298: 1885883a add r2,r3,r2 + d29c: e0bfff15 stw r2,-4(fp) + d2a0: 00000606 br d2bc <_do_ctors+0x40> + (*ctor) (); + d2a4: e0bfff17 ldw r2,-4(fp) + d2a8: 10800017 ldw r2,0(r2) + d2ac: 103ee83a callr r2 + +void _do_ctors(void) +{ + constructor* ctor; + + for (ctor = &__CTOR_END__[-1]; ctor >= __CTOR_LIST__; ctor--) + d2b0: e0bfff17 ldw r2,-4(fp) + d2b4: 10bfff04 addi r2,r2,-4 + d2b8: e0bfff15 stw r2,-4(fp) + d2bc: e0ffff17 ldw r3,-4(fp) + d2c0: 00800074 movhi r2,1 + d2c4: 10b85604 addi r2,r2,-7848 + d2c8: 18bff62e bgeu r3,r2,d2a4 <_do_ctors+0x28> + (*ctor) (); +} + d2cc: e037883a mov sp,fp + d2d0: dfc00117 ldw ra,4(sp) + d2d4: df000017 ldw fp,0(sp) + d2d8: dec00204 addi sp,sp,8 + d2dc: f800283a ret + +0000d2e0 <_do_dtors>: +/* + * Run the C++ static destructors. + */ + +void _do_dtors(void) +{ + d2e0: defffd04 addi sp,sp,-12 + d2e4: dfc00215 stw ra,8(sp) + d2e8: df000115 stw fp,4(sp) + d2ec: df000104 addi fp,sp,4 + destructor* dtor; + + for (dtor = &__DTOR_END__[-1]; dtor >= __DTOR_LIST__; dtor--) + d2f0: 00bfff04 movi r2,-4 + d2f4: 00c00074 movhi r3,1 + d2f8: 18f85704 addi r3,r3,-7844 + d2fc: 1885883a add r2,r3,r2 + d300: e0bfff15 stw r2,-4(fp) + d304: 00000606 br d320 <_do_dtors+0x40> + (*dtor) (); + d308: e0bfff17 ldw r2,-4(fp) + d30c: 10800017 ldw r2,0(r2) + d310: 103ee83a callr r2 + +void _do_dtors(void) +{ + destructor* dtor; + + for (dtor = &__DTOR_END__[-1]; dtor >= __DTOR_LIST__; dtor--) + d314: e0bfff17 ldw r2,-4(fp) + d318: 10bfff04 addi r2,r2,-4 + d31c: e0bfff15 stw r2,-4(fp) + d320: e0ffff17 ldw r3,-4(fp) + d324: 00800074 movhi r2,1 + d328: 10b85704 addi r2,r2,-7844 + d32c: 18bff62e bgeu r3,r2,d308 <_do_dtors+0x28> + (*dtor) (); +} + d330: e037883a mov sp,fp + d334: dfc00117 ldw ra,4(sp) + d338: df000017 ldw fp,0(sp) + d33c: dec00204 addi sp,sp,8 + d340: f800283a ret + +0000d344 : + * "name" must be an exact match for the devices registered name for a match to + * be found. + */ + +alt_dev* alt_find_dev(const char* name, alt_llist* llist) +{ + d344: defff904 addi sp,sp,-28 + d348: dfc00615 stw ra,24(sp) + d34c: df000515 stw fp,20(sp) + d350: df000504 addi fp,sp,20 + d354: e13ffd15 stw r4,-12(fp) + d358: e17ffe15 stw r5,-8(fp) + alt_dev* next = (alt_dev*) llist->next; + d35c: e0bffe17 ldw r2,-8(fp) + d360: 10800017 ldw r2,0(r2) + d364: e0bffc15 stw r2,-16(fp) + alt_32 len; + + len = strlen(name) + 1; + d368: e13ffd17 ldw r4,-12(fp) + d36c: 000247c0 call 247c + d370: 10800044 addi r2,r2,1 + d374: e0bffb15 stw r2,-20(fp) + /* + * Check each list entry in turn, until a match is found, or we reach the + * end of the list (i.e. next winds up pointing back to the list head). + */ + + while (next != (alt_dev*) llist) + d378: 00000d06 br d3b0 + /* + * memcmp() is used here rather than strcmp() in order to reduce the size + * of the executable. + */ + + if (!memcmp (next->name, name, len)) + d37c: e0bffc17 ldw r2,-16(fp) + d380: 11000217 ldw r4,8(r2) + d384: e1bffb17 ldw r6,-20(fp) + d388: e17ffd17 ldw r5,-12(fp) + d38c: 000dd9c0 call dd9c + d390: 1004c03a cmpne r2,r2,zero + d394: 1000031e bne r2,zero,d3a4 + { + /* match found */ + + return next; + d398: e0bffc17 ldw r2,-16(fp) + d39c: e0bfff15 stw r2,-4(fp) + d3a0: 00000706 br d3c0 + } + next = (alt_dev*) next->llist.next; + d3a4: e0bffc17 ldw r2,-16(fp) + d3a8: 10800017 ldw r2,0(r2) + d3ac: e0bffc15 stw r2,-16(fp) + /* + * Check each list entry in turn, until a match is found, or we reach the + * end of the list (i.e. next winds up pointing back to the list head). + */ + + while (next != (alt_dev*) llist) + d3b0: e0fffe17 ldw r3,-8(fp) + d3b4: e0bffc17 ldw r2,-16(fp) + d3b8: 10fff01e bne r2,r3,d37c + next = (alt_dev*) next->llist.next; + } + + /* No match found */ + + return NULL; + d3bc: e03fff15 stw zero,-4(fp) + d3c0: e0bfff17 ldw r2,-4(fp) +} + d3c4: e037883a mov sp,fp + d3c8: dfc00117 ldw ra,4(sp) + d3cc: df000017 ldw fp,0(sp) + d3d0: dec00204 addi sp,sp,8 + d3d4: f800283a ret + +0000d3d8 : + * either '/' or '\0' is the prefix of the filename. For example the filename: + * "/myfilesystem/junk.txt" would match: "/myfilesystem", but not: "/myfile". + */ + +alt_dev* alt_find_file (const char* name) +{ + d3d8: defffa04 addi sp,sp,-24 + d3dc: dfc00515 stw ra,20(sp) + d3e0: df000415 stw fp,16(sp) + d3e4: df000404 addi fp,sp,16 + d3e8: e13ffe15 stw r4,-8(fp) + alt_dev* next = (alt_dev*) alt_fs_list.next; + d3ec: 00800074 movhi r2,1 + d3f0: 1080b804 addi r2,r2,736 + d3f4: 10800017 ldw r2,0(r2) + d3f8: e0bffd15 stw r2,-12(fp) + /* + * Check each list entry in turn, until a match is found, or we reach the + * end of the list (i.e. next winds up pointing back to the list head). + */ + + while (next != (alt_dev*) &alt_fs_list) + d3fc: 00003306 br d4cc + { + len = strlen(next->name); + d400: e0bffd17 ldw r2,-12(fp) + d404: 11000217 ldw r4,8(r2) + d408: 000247c0 call 247c + d40c: e0bffc15 stw r2,-16(fp) + + if (next->name[len-1] == '/') + d410: e0bffd17 ldw r2,-12(fp) + d414: 10c00217 ldw r3,8(r2) + d418: e0bffc17 ldw r2,-16(fp) + d41c: 1885883a add r2,r3,r2 + d420: 10bfffc4 addi r2,r2,-1 + d424: 10800003 ldbu r2,0(r2) + d428: 10803fcc andi r2,r2,255 + d42c: 1080201c xori r2,r2,128 + d430: 10bfe004 addi r2,r2,-128 + d434: 10800bd8 cmpnei r2,r2,47 + d438: 1000031e bne r2,zero,d448 + { + len -= 1; + d43c: e0bffc17 ldw r2,-16(fp) + d440: 10bfffc4 addi r2,r2,-1 + d444: e0bffc15 stw r2,-16(fp) + } + + if (((name[len] == '/') || (name[len] == '\0')) && + d448: e0bffc17 ldw r2,-16(fp) + d44c: 1007883a mov r3,r2 + d450: e0bffe17 ldw r2,-8(fp) + d454: 1885883a add r2,r3,r2 + d458: 10800003 ldbu r2,0(r2) + d45c: 10803fcc andi r2,r2,255 + d460: 1080201c xori r2,r2,128 + d464: 10bfe004 addi r2,r2,-128 + d468: 10800be0 cmpeqi r2,r2,47 + d46c: 10000a1e bne r2,zero,d498 + d470: e0bffc17 ldw r2,-16(fp) + d474: 1007883a mov r3,r2 + d478: e0bffe17 ldw r2,-8(fp) + d47c: 1885883a add r2,r3,r2 + d480: 10800003 ldbu r2,0(r2) + d484: 10803fcc andi r2,r2,255 + d488: 1080201c xori r2,r2,128 + d48c: 10bfe004 addi r2,r2,-128 + d490: 1004c03a cmpne r2,r2,zero + d494: 10000a1e bne r2,zero,d4c0 + d498: e0bffd17 ldw r2,-12(fp) + d49c: 11000217 ldw r4,8(r2) + d4a0: e1bffc17 ldw r6,-16(fp) + d4a4: e17ffe17 ldw r5,-8(fp) + d4a8: 000dd9c0 call dd9c + d4ac: 1004c03a cmpne r2,r2,zero + d4b0: 1000031e bne r2,zero,d4c0 + !memcmp (next->name, name, len)) + { + /* match found */ + + return next; + d4b4: e0bffd17 ldw r2,-12(fp) + d4b8: e0bfff15 stw r2,-4(fp) + d4bc: 00000806 br d4e0 + } + next = (alt_dev*) next->llist.next; + d4c0: e0bffd17 ldw r2,-12(fp) + d4c4: 10800017 ldw r2,0(r2) + d4c8: e0bffd15 stw r2,-12(fp) + /* + * Check each list entry in turn, until a match is found, or we reach the + * end of the list (i.e. next winds up pointing back to the list head). + */ + + while (next != (alt_dev*) &alt_fs_list) + d4cc: 00c00074 movhi r3,1 + d4d0: 18c0b804 addi r3,r3,736 + d4d4: e0bffd17 ldw r2,-12(fp) + d4d8: 10ffc91e bne r2,r3,d400 + next = (alt_dev*) next->llist.next; + } + + /* No match found */ + + return NULL; + d4dc: e03fff15 stw zero,-4(fp) + d4e0: e0bfff17 ldw r2,-4(fp) +} + d4e4: e037883a mov sp,fp + d4e8: dfc00117 ldw ra,4(sp) + d4ec: df000017 ldw fp,0(sp) + d4f0: dec00204 addi sp,sp,8 + d4f4: f800283a ret + +0000d4f8 : + * the offset of the file descriptor within the file descriptor array). A + * negative value indicates failure. + */ + +int alt_get_fd (alt_dev* dev) +{ + d4f8: defffa04 addi sp,sp,-24 + d4fc: dfc00515 stw ra,20(sp) + d500: df000415 stw fp,16(sp) + d504: dc000315 stw r16,12(sp) + d508: df000304 addi fp,sp,12 + d50c: e13fff15 stw r4,-4(fp) + alt_32 i; + int rc = -EMFILE; + d510: 00bffa04 movi r2,-24 + d514: e0bffd15 stw r2,-12(fp) + * indicates the highest file descriptor ever allocated. This is used to + * improve efficency when searching the file descriptor list, and + * therefore reduce contention on the alt_fd_list_lock semaphore. + */ + + for (i = 0; i < ALT_MAX_FD; i++) + d518: e03ffe15 stw zero,-8(fp) + d51c: 00002006 br d5a0 + { + if (!alt_fd_list[i].dev) + d520: e13ffe17 ldw r4,-8(fp) + d524: 04000074 movhi r16,1 + d528: 843bf204 addi r16,r16,-4152 + d52c: 01400304 movi r5,12 + d530: 0009fc80 call 9fc8 <__mulsi3> + d534: 1405883a add r2,r2,r16 + d538: 10800017 ldw r2,0(r2) + d53c: 1004c03a cmpne r2,r2,zero + d540: 1000141e bne r2,zero,d594 + { + alt_fd_list[i].dev = dev; + d544: e13ffe17 ldw r4,-8(fp) + d548: 04000074 movhi r16,1 + d54c: 843bf204 addi r16,r16,-4152 + d550: 01400304 movi r5,12 + d554: 0009fc80 call 9fc8 <__mulsi3> + d558: 1407883a add r3,r2,r16 + d55c: e0bfff17 ldw r2,-4(fp) + d560: 18800015 stw r2,0(r3) + if (i > alt_max_fd) + d564: 00800074 movhi r2,1 + d568: 1080bc04 addi r2,r2,752 + d56c: 10c00017 ldw r3,0(r2) + d570: e0bffe17 ldw r2,-8(fp) + d574: 1880040e bge r3,r2,d588 + { + alt_max_fd = i; + d578: 00c00074 movhi r3,1 + d57c: 18c0bc04 addi r3,r3,752 + d580: e0bffe17 ldw r2,-8(fp) + d584: 18800015 stw r2,0(r3) + } + rc = i; + d588: e0bffe17 ldw r2,-8(fp) + d58c: e0bffd15 stw r2,-12(fp) + goto alt_get_fd_exit; + d590: 00000606 br d5ac + * indicates the highest file descriptor ever allocated. This is used to + * improve efficency when searching the file descriptor list, and + * therefore reduce contention on the alt_fd_list_lock semaphore. + */ + + for (i = 0; i < ALT_MAX_FD; i++) + d594: e0bffe17 ldw r2,-8(fp) + d598: 10800044 addi r2,r2,1 + d59c: e0bffe15 stw r2,-8(fp) + d5a0: e0bffe17 ldw r2,-8(fp) + d5a4: 10800810 cmplti r2,r2,32 + d5a8: 103fdd1e bne r2,zero,d520 + * file descriptor pool. + */ + + ALT_SEM_POST(alt_fd_list_lock); + + return rc; + d5ac: e0bffd17 ldw r2,-12(fp) +} + d5b0: e037883a mov sp,fp + d5b4: dfc00217 ldw ra,8(sp) + d5b8: df000117 ldw fp,4(sp) + d5bc: dc000017 ldw r16,0(sp) + d5c0: dec00304 addi sp,sp,12 + d5c4: f800283a ret + +0000d5c8 : +/* + * alt_icache_flush_all() is called to flush the entire instruction cache. + */ + +void alt_icache_flush_all (void) +{ + d5c8: deffff04 addi sp,sp,-4 + d5cc: df000015 stw fp,0(sp) + d5d0: d839883a mov fp,sp +#if NIOS2_ICACHE_SIZE > 0 + alt_icache_flush (0, NIOS2_ICACHE_SIZE); +#endif +} + d5d4: e037883a mov sp,fp + d5d8: df000017 ldw fp,0(sp) + d5dc: dec00104 addi sp,sp,4 + d5e0: f800283a ret + +0000d5e4 : + * @param irq IRQ number + * @return 0 if successful, else error (-1) + */ +int alt_ic_isr_register(alt_u32 ic_id, alt_u32 irq, alt_isr_func isr, + void *isr_context, void *flags) +{ + d5e4: defff904 addi sp,sp,-28 + d5e8: dfc00615 stw ra,24(sp) + d5ec: df000515 stw fp,20(sp) + d5f0: df000504 addi fp,sp,20 + d5f4: e13ffc15 stw r4,-16(fp) + d5f8: e17ffd15 stw r5,-12(fp) + d5fc: e1bffe15 stw r6,-8(fp) + d600: e1ffff15 stw r7,-4(fp) + return alt_iic_isr_register(ic_id, irq, isr, isr_context, flags); + d604: e0800217 ldw r2,8(fp) + d608: d8800015 stw r2,0(sp) + d60c: e13ffc17 ldw r4,-16(fp) + d610: e17ffd17 ldw r5,-12(fp) + d614: e1bffe17 ldw r6,-8(fp) + d618: e1ffff17 ldw r7,-4(fp) + d61c: 000d7b80 call d7b8 +} + d620: e037883a mov sp,fp + d624: dfc00117 ldw ra,4(sp) + d628: df000017 ldw fp,0(sp) + d62c: dec00204 addi sp,sp,8 + d630: f800283a ret + +0000d634 : + * @param ic_id Ignored. + * @param irq IRQ number + * @return 0 if successful, else error (-1) + */ +int alt_ic_irq_enable (alt_u32 ic_id, alt_u32 irq) +{ + d634: defff904 addi sp,sp,-28 + d638: df000615 stw fp,24(sp) + d63c: df000604 addi fp,sp,24 + d640: e13ffe15 stw r4,-8(fp) + d644: e17fff15 stw r5,-4(fp) + d648: e0bfff17 ldw r2,-4(fp) + d64c: e0bffc15 stw r2,-16(fp) +static ALT_INLINE alt_irq_context ALT_ALWAYS_INLINE + alt_irq_disable_all (void) +{ + alt_irq_context context; + + NIOS2_READ_STATUS (context); + d650: 0005303a rdctl r2,status + d654: e0bffb15 stw r2,-20(fp) + + NIOS2_WRITE_STATUS (context & ~NIOS2_STATUS_PIE_MSK); + d658: e0fffb17 ldw r3,-20(fp) + d65c: 00bfff84 movi r2,-2 + d660: 1884703a and r2,r3,r2 + d664: 1001703a wrctl status,r2 + + return context; + d668: e0bffb17 ldw r2,-20(fp) +static ALT_INLINE int ALT_ALWAYS_INLINE alt_irq_enable (alt_u32 id) +{ + alt_irq_context status; + extern volatile alt_u32 alt_irq_active; + + status = alt_irq_disable_all (); + d66c: e0bffd15 stw r2,-12(fp) + + alt_irq_active |= (1 << id); + d670: e0fffc17 ldw r3,-16(fp) + d674: 00800044 movi r2,1 + d678: 10c4983a sll r2,r2,r3 + d67c: 1007883a mov r3,r2 + d680: 00800074 movhi r2,1 + d684: 1087af04 addi r2,r2,7868 + d688: 10800017 ldw r2,0(r2) + d68c: 1886b03a or r3,r3,r2 + d690: 00800074 movhi r2,1 + d694: 1087af04 addi r2,r2,7868 + d698: 10c00015 stw r3,0(r2) + NIOS2_WRITE_IENABLE (alt_irq_active); + d69c: 00800074 movhi r2,1 + d6a0: 1087af04 addi r2,r2,7868 + d6a4: 10800017 ldw r2,0(r2) + d6a8: 100170fa wrctl ienable,r2 + d6ac: e0bffd17 ldw r2,-12(fp) + d6b0: e0bffa15 stw r2,-24(fp) + status &= ~NIOS2_STATUS_PIE_MSK; + status |= (context & NIOS2_STATUS_PIE_MSK); + + NIOS2_WRITE_STATUS (status); +#else + NIOS2_WRITE_STATUS (context); + d6b4: e0bffa17 ldw r2,-24(fp) + d6b8: 1001703a wrctl status,r2 + + alt_irq_enable_all(status); + + return 0; + d6bc: 0005883a mov r2,zero + return alt_irq_enable(irq); +} + d6c0: e037883a mov sp,fp + d6c4: df000017 ldw fp,0(sp) + d6c8: dec00104 addi sp,sp,4 + d6cc: f800283a ret + +0000d6d0 : + * @param ic_id Ignored. + * @param irq IRQ number + * @return 0 if successful, else error (-1) + */ +int alt_ic_irq_disable(alt_u32 ic_id, alt_u32 irq) +{ + d6d0: defff904 addi sp,sp,-28 + d6d4: df000615 stw fp,24(sp) + d6d8: df000604 addi fp,sp,24 + d6dc: e13ffe15 stw r4,-8(fp) + d6e0: e17fff15 stw r5,-4(fp) + d6e4: e0bfff17 ldw r2,-4(fp) + d6e8: e0bffc15 stw r2,-16(fp) +static ALT_INLINE alt_irq_context ALT_ALWAYS_INLINE + alt_irq_disable_all (void) +{ + alt_irq_context context; + + NIOS2_READ_STATUS (context); + d6ec: 0005303a rdctl r2,status + d6f0: e0bffb15 stw r2,-20(fp) + + NIOS2_WRITE_STATUS (context & ~NIOS2_STATUS_PIE_MSK); + d6f4: e0fffb17 ldw r3,-20(fp) + d6f8: 00bfff84 movi r2,-2 + d6fc: 1884703a and r2,r3,r2 + d700: 1001703a wrctl status,r2 + + return context; + d704: e0bffb17 ldw r2,-20(fp) +static ALT_INLINE int ALT_ALWAYS_INLINE alt_irq_disable (alt_u32 id) +{ + alt_irq_context status; + extern volatile alt_u32 alt_irq_active; + + status = alt_irq_disable_all (); + d708: e0bffd15 stw r2,-12(fp) + + alt_irq_active &= ~(1 << id); + d70c: e0fffc17 ldw r3,-16(fp) + d710: 00800044 movi r2,1 + d714: 10c4983a sll r2,r2,r3 + d718: 0084303a nor r2,zero,r2 + d71c: 1007883a mov r3,r2 + d720: 00800074 movhi r2,1 + d724: 1087af04 addi r2,r2,7868 + d728: 10800017 ldw r2,0(r2) + d72c: 1886703a and r3,r3,r2 + d730: 00800074 movhi r2,1 + d734: 1087af04 addi r2,r2,7868 + d738: 10c00015 stw r3,0(r2) + NIOS2_WRITE_IENABLE (alt_irq_active); + d73c: 00800074 movhi r2,1 + d740: 1087af04 addi r2,r2,7868 + d744: 10800017 ldw r2,0(r2) + d748: 100170fa wrctl ienable,r2 + d74c: e0bffd17 ldw r2,-12(fp) + d750: e0bffa15 stw r2,-24(fp) + status &= ~NIOS2_STATUS_PIE_MSK; + status |= (context & NIOS2_STATUS_PIE_MSK); + + NIOS2_WRITE_STATUS (status); +#else + NIOS2_WRITE_STATUS (context); + d754: e0bffa17 ldw r2,-24(fp) + d758: 1001703a wrctl status,r2 + + alt_irq_enable_all(status); + + return 0; + d75c: 0005883a mov r2,zero + return alt_irq_disable(irq); +} + d760: e037883a mov sp,fp + d764: df000017 ldw fp,0(sp) + d768: dec00104 addi sp,sp,4 + d76c: f800283a ret + +0000d770 : + * @param irq IRQ number + * @return Zero if corresponding interrupt is disabled and + * non-zero otherwise. + */ +alt_u32 alt_ic_irq_enabled(alt_u32 ic_id, alt_u32 irq) +{ + d770: defffc04 addi sp,sp,-16 + d774: df000315 stw fp,12(sp) + d778: df000304 addi fp,sp,12 + d77c: e13ffe15 stw r4,-8(fp) + d780: e17fff15 stw r5,-4(fp) + alt_u32 irq_enabled; + + NIOS2_READ_IENABLE(irq_enabled); + d784: 000530fa rdctl r2,ienable + d788: e0bffd15 stw r2,-12(fp) + + return (irq_enabled & (1 << irq)) ? 1: 0; + d78c: e0ffff17 ldw r3,-4(fp) + d790: 00800044 movi r2,1 + d794: 10c4983a sll r2,r2,r3 + d798: 1007883a mov r3,r2 + d79c: e0bffd17 ldw r2,-12(fp) + d7a0: 1884703a and r2,r3,r2 + d7a4: 1004c03a cmpne r2,r2,zero +} + d7a8: e037883a mov sp,fp + d7ac: df000017 ldw fp,0(sp) + d7b0: dec00104 addi sp,sp,4 + d7b4: f800283a ret + +0000d7b8 : + * @param flags + * @return 0 if successful, else error (-1) + */ +int alt_iic_isr_register(alt_u32 ic_id, alt_u32 irq, alt_isr_func isr, + void *isr_context, void *flags) +{ + d7b8: defff404 addi sp,sp,-48 + d7bc: dfc00b15 stw ra,44(sp) + d7c0: df000a15 stw fp,40(sp) + d7c4: df000a04 addi fp,sp,40 + d7c8: e13ffb15 stw r4,-20(fp) + d7cc: e17ffc15 stw r5,-16(fp) + d7d0: e1bffd15 stw r6,-12(fp) + d7d4: e1fffe15 stw r7,-8(fp) + int rc = -EINVAL; + d7d8: 00bffa84 movi r2,-22 + d7dc: e0bffa15 stw r2,-24(fp) + int id = irq; /* IRQ interpreted as the interrupt ID. */ + d7e0: e0bffc17 ldw r2,-16(fp) + d7e4: e0bff915 stw r2,-28(fp) + alt_irq_context status; + + if (id < ALT_NIRQ) + d7e8: e0bff917 ldw r2,-28(fp) + d7ec: 10800808 cmpgei r2,r2,32 + d7f0: 1000291e bne r2,zero,d898 +static ALT_INLINE alt_irq_context ALT_ALWAYS_INLINE + alt_irq_disable_all (void) +{ + alt_irq_context context; + + NIOS2_READ_STATUS (context); + d7f4: 0005303a rdctl r2,status + d7f8: e0bff715 stw r2,-36(fp) + + NIOS2_WRITE_STATUS (context & ~NIOS2_STATUS_PIE_MSK); + d7fc: e0fff717 ldw r3,-36(fp) + d800: 00bfff84 movi r2,-2 + d804: 1884703a and r2,r3,r2 + d808: 1001703a wrctl status,r2 + + return context; + d80c: e0bff717 ldw r2,-36(fp) + * interrupts are disabled while the handler tables are updated to ensure + * that an interrupt doesn't occur while the tables are in an inconsistant + * state. + */ + + status = alt_irq_disable_all(); + d810: e0bff815 stw r2,-32(fp) + + alt_irq[id].handler = isr; + d814: e0bff917 ldw r2,-28(fp) + d818: 00c00074 movhi r3,1 + d81c: 18c7bc04 addi r3,r3,7920 + d820: 100490fa slli r2,r2,3 + d824: 10c7883a add r3,r2,r3 + d828: e0bffd17 ldw r2,-12(fp) + d82c: 18800015 stw r2,0(r3) + alt_irq[id].context = isr_context; + d830: e0bff917 ldw r2,-28(fp) + d834: 00c00074 movhi r3,1 + d838: 18c7bc04 addi r3,r3,7920 + d83c: 100490fa slli r2,r2,3 + d840: 10c5883a add r2,r2,r3 + d844: 10c00104 addi r3,r2,4 + d848: e0bffe17 ldw r2,-8(fp) + d84c: 18800015 stw r2,0(r3) + + rc = (isr) ? alt_ic_irq_enable(ic_id, id) : alt_ic_irq_disable(ic_id, id); + d850: e0bffd17 ldw r2,-12(fp) + d854: 1005003a cmpeq r2,r2,zero + d858: 1000051e bne r2,zero,d870 + d85c: e17ff917 ldw r5,-28(fp) + d860: e13ffb17 ldw r4,-20(fp) + d864: 000d6340 call d634 + d868: e0bfff15 stw r2,-4(fp) + d86c: 00000406 br d880 + d870: e17ff917 ldw r5,-28(fp) + d874: e13ffb17 ldw r4,-20(fp) + d878: 000d6d00 call d6d0 + d87c: e0bfff15 stw r2,-4(fp) + d880: e0bfff17 ldw r2,-4(fp) + d884: e0bffa15 stw r2,-24(fp) + d888: e0bff817 ldw r2,-32(fp) + d88c: e0bff615 stw r2,-40(fp) + status &= ~NIOS2_STATUS_PIE_MSK; + status |= (context & NIOS2_STATUS_PIE_MSK); + + NIOS2_WRITE_STATUS (status); +#else + NIOS2_WRITE_STATUS (context); + d890: e0bff617 ldw r2,-40(fp) + d894: 1001703a wrctl status,r2 + + alt_irq_enable_all(status); + } + + return rc; + d898: e0bffa17 ldw r2,-24(fp) +} + d89c: e037883a mov sp,fp + d8a0: dfc00117 ldw ra,4(sp) + d8a4: df000017 ldw fp,0(sp) + d8a8: dec00204 addi sp,sp,8 + d8ac: f800283a ret + +0000d8b0 : + * If the device can not be succesfully opened, then the input file descriptor + * remains unchanged. + */ + +static void alt_open_fd(alt_fd* fd, const char* name, int flags, int mode) +{ + d8b0: defff804 addi sp,sp,-32 + d8b4: dfc00715 stw ra,28(sp) + d8b8: df000615 stw fp,24(sp) + d8bc: dc000515 stw r16,20(sp) + d8c0: df000504 addi fp,sp,20 + d8c4: e13ffc15 stw r4,-16(fp) + d8c8: e17ffd15 stw r5,-12(fp) + d8cc: e1bffe15 stw r6,-8(fp) + d8d0: e1ffff15 stw r7,-4(fp) + int old; + + old = open (name, flags, mode); + d8d4: e13ffd17 ldw r4,-12(fp) + d8d8: e17ffe17 ldw r5,-8(fp) + d8dc: e1bfff17 ldw r6,-4(fp) + d8e0: 000ae840 call ae84 + d8e4: e0bffb15 stw r2,-20(fp) + + if (old >= 0) + d8e8: e0bffb17 ldw r2,-20(fp) + d8ec: 1004803a cmplt r2,r2,zero + d8f0: 10001f1e bne r2,zero,d970 + { + fd->dev = alt_fd_list[old].dev; + d8f4: e13ffb17 ldw r4,-20(fp) + d8f8: 04000074 movhi r16,1 + d8fc: 843bf204 addi r16,r16,-4152 + d900: 01400304 movi r5,12 + d904: 0009fc80 call 9fc8 <__mulsi3> + d908: 1405883a add r2,r2,r16 + d90c: 10c00017 ldw r3,0(r2) + d910: e0bffc17 ldw r2,-16(fp) + d914: 10c00015 stw r3,0(r2) + fd->priv = alt_fd_list[old].priv; + d918: e13ffb17 ldw r4,-20(fp) + d91c: 04000074 movhi r16,1 + d920: 843bf204 addi r16,r16,-4152 + d924: 01400304 movi r5,12 + d928: 0009fc80 call 9fc8 <__mulsi3> + d92c: 1405883a add r2,r2,r16 + d930: 10800104 addi r2,r2,4 + d934: 10c00017 ldw r3,0(r2) + d938: e0bffc17 ldw r2,-16(fp) + d93c: 10c00115 stw r3,4(r2) + fd->fd_flags = alt_fd_list[old].fd_flags; + d940: e13ffb17 ldw r4,-20(fp) + d944: 04000074 movhi r16,1 + d948: 843bf204 addi r16,r16,-4152 + d94c: 01400304 movi r5,12 + d950: 0009fc80 call 9fc8 <__mulsi3> + d954: 1405883a add r2,r2,r16 + d958: 10800204 addi r2,r2,8 + d95c: 10c00017 ldw r3,0(r2) + d960: e0bffc17 ldw r2,-16(fp) + d964: 10c00215 stw r3,8(r2) + + alt_release_fd (old); + d968: e13ffb17 ldw r4,-20(fp) + d96c: 000b1f40 call b1f4 + } +} + d970: e037883a mov sp,fp + d974: dfc00217 ldw ra,8(sp) + d978: df000117 ldw fp,4(sp) + d97c: dc000017 ldw r16,0(sp) + d980: dec00304 addi sp,sp,12 + d984: f800283a ret + +0000d988 : + */ + +void alt_io_redirect(const char* stdout_dev, + const char* stdin_dev, + const char* stderr_dev) +{ + d988: defffb04 addi sp,sp,-20 + d98c: dfc00415 stw ra,16(sp) + d990: df000315 stw fp,12(sp) + d994: df000304 addi fp,sp,12 + d998: e13ffd15 stw r4,-12(fp) + d99c: e17ffe15 stw r5,-8(fp) + d9a0: e1bfff15 stw r6,-4(fp) + /* Redirect the channels */ + + alt_open_fd (&alt_fd_list[STDOUT_FILENO], stdout_dev, O_WRONLY, 0777); + d9a4: 01000074 movhi r4,1 + d9a8: 213bf504 addi r4,r4,-4140 + d9ac: e17ffd17 ldw r5,-12(fp) + d9b0: 01800044 movi r6,1 + d9b4: 01c07fc4 movi r7,511 + d9b8: 000d8b00 call d8b0 + alt_open_fd (&alt_fd_list[STDIN_FILENO], stdin_dev, O_RDONLY, 0777); + d9bc: 01000074 movhi r4,1 + d9c0: 213bf204 addi r4,r4,-4152 + d9c4: e17ffe17 ldw r5,-8(fp) + d9c8: 000d883a mov r6,zero + d9cc: 01c07fc4 movi r7,511 + d9d0: 000d8b00 call d8b0 + alt_open_fd (&alt_fd_list[STDERR_FILENO], stderr_dev, O_WRONLY, 0777); + d9d4: 01000074 movhi r4,1 + d9d8: 213bf804 addi r4,r4,-4128 + d9dc: e17fff17 ldw r5,-4(fp) + d9e0: 01800044 movi r6,1 + d9e4: 01c07fc4 movi r7,511 + d9e8: 000d8b00 call d8b0 +} + d9ec: e037883a mov sp,fp + d9f0: dfc00117 ldw ra,4(sp) + d9f4: df000017 ldw fp,0(sp) + d9f8: dec00204 addi sp,sp,8 + d9fc: f800283a ret + +0000da00 : + * alarms. Alternatively an alarm can unregister itself by returning zero when + * the alarm executes. + */ + +void alt_alarm_stop (alt_alarm* alarm) +{ + da00: defffa04 addi sp,sp,-24 + da04: df000515 stw fp,20(sp) + da08: df000504 addi fp,sp,20 + da0c: e13fff15 stw r4,-4(fp) +static ALT_INLINE alt_irq_context ALT_ALWAYS_INLINE + alt_irq_disable_all (void) +{ + alt_irq_context context; + + NIOS2_READ_STATUS (context); + da10: 0005303a rdctl r2,status + da14: e0bffd15 stw r2,-12(fp) + + NIOS2_WRITE_STATUS (context & ~NIOS2_STATUS_PIE_MSK); + da18: e0fffd17 ldw r3,-12(fp) + da1c: 00bfff84 movi r2,-2 + da20: 1884703a and r2,r3,r2 + da24: 1001703a wrctl status,r2 + + return context; + da28: e0bffd17 ldw r2,-12(fp) + alt_irq_context irq_context; + + irq_context = alt_irq_disable_all(); + da2c: e0bffe15 stw r2,-8(fp) + alt_llist_remove (&alarm->llist); + da30: e0bfff17 ldw r2,-4(fp) + da34: e0bffc15 stw r2,-16(fp) + * input argument is the element to remove. + */ + +static ALT_INLINE void ALT_ALWAYS_INLINE alt_llist_remove(alt_llist* entry) +{ + entry->next->previous = entry->previous; + da38: e0bffc17 ldw r2,-16(fp) + da3c: 10c00017 ldw r3,0(r2) + da40: e0bffc17 ldw r2,-16(fp) + da44: 10800117 ldw r2,4(r2) + da48: 18800115 stw r2,4(r3) + entry->previous->next = entry->next; + da4c: e0bffc17 ldw r2,-16(fp) + da50: 10c00117 ldw r3,4(r2) + da54: e0bffc17 ldw r2,-16(fp) + da58: 10800017 ldw r2,0(r2) + da5c: 18800015 stw r2,0(r3) + /* + * Set the entry to point to itself, so that any further calls to + * alt_llist_remove() are harmless. + */ + + entry->previous = entry; + da60: e0fffc17 ldw r3,-16(fp) + da64: e0bffc17 ldw r2,-16(fp) + da68: 18800115 stw r2,4(r3) + entry->next = entry; + da6c: e0fffc17 ldw r3,-16(fp) + da70: e0bffc17 ldw r2,-16(fp) + da74: 18800015 stw r2,0(r3) + da78: e0bffe17 ldw r2,-8(fp) + da7c: e0bffb15 stw r2,-20(fp) + status &= ~NIOS2_STATUS_PIE_MSK; + status |= (context & NIOS2_STATUS_PIE_MSK); + + NIOS2_WRITE_STATUS (status); +#else + NIOS2_WRITE_STATUS (context); + da80: e0bffb17 ldw r2,-20(fp) + da84: 1001703a wrctl status,r2 + alt_irq_enable_all (irq_context); +} + da88: e037883a mov sp,fp + da8c: df000017 ldw fp,0(sp) + da90: dec00104 addi sp,sp,4 + da94: f800283a ret + +0000da98 : + * + * alt_tick() is expected to run at interrupt level. + */ + +void alt_tick (void) +{ + da98: defffb04 addi sp,sp,-20 + da9c: dfc00415 stw ra,16(sp) + daa0: df000315 stw fp,12(sp) + daa4: df000304 addi fp,sp,12 + alt_alarm* next; + alt_alarm* alarm = (alt_alarm*) alt_alarm_list.next; + daa8: d0a00f17 ldw r2,-32708(gp) + daac: e0bffe15 stw r2,-8(fp) + + alt_u32 next_callback; + + /* update the tick counter */ + + _alt_nticks++; + dab0: d0a6ff17 ldw r2,-25604(gp) + dab4: 10800044 addi r2,r2,1 + dab8: d0a6ff15 stw r2,-25604(gp) + + /* process the registered callbacks */ + + while (alarm != (alt_alarm*) &alt_alarm_list) + dabc: 00003106 br db84 + { + next = (alt_alarm*) alarm->llist.next; + dac0: e0bffe17 ldw r2,-8(fp) + dac4: 10800017 ldw r2,0(r2) + dac8: e0bfff15 stw r2,-4(fp) + /* + * Upon the tick-counter rolling over it is safe to clear the + * roll-over flag; once the flag is cleared this (or subsequnt) + * tick events are enabled to generate an alarm event. + */ + if ((alarm->rollover) && (_alt_nticks == 0)) + dacc: e0bffe17 ldw r2,-8(fp) + dad0: 10800403 ldbu r2,16(r2) + dad4: 10803fcc andi r2,r2,255 + dad8: 1005003a cmpeq r2,r2,zero + dadc: 1000051e bne r2,zero,daf4 + dae0: d0a6ff17 ldw r2,-25604(gp) + dae4: 1004c03a cmpne r2,r2,zero + dae8: 1000021e bne r2,zero,daf4 + { + alarm->rollover = 0; + daec: e0bffe17 ldw r2,-8(fp) + daf0: 10000405 stb zero,16(r2) + } + + /* if the alarm period has expired, make the callback */ + if ((alarm->time <= _alt_nticks) && (alarm->rollover == 0)) + daf4: e0bffe17 ldw r2,-8(fp) + daf8: 10c00217 ldw r3,8(r2) + dafc: d0a6ff17 ldw r2,-25604(gp) + db00: 10c01e36 bltu r2,r3,db7c + db04: e0bffe17 ldw r2,-8(fp) + db08: 10800403 ldbu r2,16(r2) + db0c: 10803fcc andi r2,r2,255 + db10: 1004c03a cmpne r2,r2,zero + db14: 1000191e bne r2,zero,db7c + { + next_callback = alarm->callback (alarm->context); + db18: e0bffe17 ldw r2,-8(fp) + db1c: 10c00317 ldw r3,12(r2) + db20: e0bffe17 ldw r2,-8(fp) + db24: 11000517 ldw r4,20(r2) + db28: 183ee83a callr r3 + db2c: e0bffd15 stw r2,-12(fp) + + /* deactivate the alarm if the return value is zero */ + + if (next_callback == 0) + db30: e0bffd17 ldw r2,-12(fp) + db34: 1004c03a cmpne r2,r2,zero + db38: 1000031e bne r2,zero,db48 + { + alt_alarm_stop (alarm); + db3c: e13ffe17 ldw r4,-8(fp) + db40: 000da000 call da00 + db44: 00000d06 br db7c + } + else + { + alarm->time += next_callback; + db48: e0bffe17 ldw r2,-8(fp) + db4c: 10c00217 ldw r3,8(r2) + db50: e0bffd17 ldw r2,-12(fp) + db54: 1887883a add r3,r3,r2 + db58: e0bffe17 ldw r2,-8(fp) + db5c: 10c00215 stw r3,8(r2) + /* + * If the desired alarm time causes a roll-over, set the rollover + * flag. This will prevent the subsequent tick event from causing + * an alarm too early. + */ + if(alarm->time < _alt_nticks) + db60: e0bffe17 ldw r2,-8(fp) + db64: 10c00217 ldw r3,8(r2) + db68: d0a6ff17 ldw r2,-25604(gp) + db6c: 1880032e bgeu r3,r2,db7c + { + alarm->rollover = 1; + db70: e0fffe17 ldw r3,-8(fp) + db74: 00800044 movi r2,1 + db78: 18800405 stb r2,16(r3) + } + } + } + alarm = next; + db7c: e0bfff17 ldw r2,-4(fp) + db80: e0bffe15 stw r2,-8(fp) + + _alt_nticks++; + + /* process the registered callbacks */ + + while (alarm != (alt_alarm*) &alt_alarm_list) + db84: d0e00f04 addi r3,gp,-32708 + db88: e0bffe17 ldw r2,-8(fp) + db8c: 10ffcc1e bne r2,r3,dac0 + /* + * Update the operating system specific timer facilities. + */ + + ALT_OS_TIME_TICK(); +} + db90: e037883a mov sp,fp + db94: dfc00117 ldw ra,4(sp) + db98: df000017 ldw fp,0(sp) + db9c: dec00204 addi sp,sp,8 + dba0: f800283a ret + +0000dba4 : +#if defined (__GNUC__) && __GNUC__ >= 4 +int ALT_USLEEP (useconds_t us) +#else +unsigned int ALT_USLEEP (unsigned int us) +#endif +{ + dba4: defffd04 addi sp,sp,-12 + dba8: dfc00215 stw ra,8(sp) + dbac: df000115 stw fp,4(sp) + dbb0: df000104 addi fp,sp,4 + dbb4: e13fff15 stw r4,-4(fp) + return alt_busy_sleep(us); + dbb8: e13fff17 ldw r4,-4(fp) + dbbc: 000dbf40 call dbf4 +} + dbc0: e037883a mov sp,fp + dbc4: dfc00117 ldw ra,4(sp) + dbc8: df000017 ldw fp,0(sp) + dbcc: dec00204 addi sp,sp,8 + dbd0: f800283a ret + +0000dbd4 : +/* + * To initialize the internal interrupt controller, just clear the IENABLE + * register so that all possible IRQs are disabled. + */ +void altera_nios2_qsys_irq_init(void) +{ + dbd4: deffff04 addi sp,sp,-4 + dbd8: df000015 stw fp,0(sp) + dbdc: d839883a mov fp,sp + NIOS2_WRITE_IENABLE(0); + dbe0: 000170fa wrctl ienable,zero +} + dbe4: e037883a mov sp,fp + dbe8: df000017 ldw fp,0(sp) + dbec: dec00104 addi sp,sp,4 + dbf0: f800283a ret + +0000dbf4 : +#include "alt_types.h" + +#include "priv/alt_busy_sleep.h" + +unsigned int alt_busy_sleep (unsigned int us) +{ + dbf4: defffa04 addi sp,sp,-24 + dbf8: dfc00515 stw ra,20(sp) + dbfc: df000415 stw fp,16(sp) + dc00: df000404 addi fp,sp,16 + dc04: e13fff15 stw r4,-4(fp) + int big_loops; + alt_u32 cycles_per_loop; + + if (!strcmp(NIOS2_CPU_IMPLEMENTATION,"tiny")) + { + cycles_per_loop = 9; + dc08: 00800244 movi r2,9 + dc0c: e0bffc15 stw r2,-16(fp) + { + cycles_per_loop = 3; + } + + + big_loops = us / (INT_MAX/ + dc10: e13ffc17 ldw r4,-16(fp) + dc14: 014003f4 movhi r5,15 + dc18: 29509004 addi r5,r5,16960 + dc1c: 0009fc80 call 9fc8 <__mulsi3> + dc20: 100b883a mov r5,r2 + dc24: 0100bef4 movhi r4,763 + dc28: 213c2004 addi r4,r4,-3968 + dc2c: 0009fb80 call 9fb8 <__udivsi3> + dc30: 100b883a mov r5,r2 + dc34: 01200034 movhi r4,32768 + dc38: 213fffc4 addi r4,r4,-1 + dc3c: 0009fb80 call 9fb8 <__udivsi3> + dc40: 100b883a mov r5,r2 + dc44: e13fff17 ldw r4,-4(fp) + dc48: 0009fb80 call 9fb8 <__udivsi3> + dc4c: e0bffd15 stw r2,-12(fp) + (ALT_CPU_FREQ/(cycles_per_loop * 1000000))); + + if (big_loops) + dc50: e0bffd17 ldw r2,-12(fp) + dc54: 1005003a cmpeq r2,r2,zero + dc58: 10002a1e bne r2,zero,dd04 + { + for(i=0;i + /* + * Do NOT Try to single step the asm statement below + * (single step will never return) + * Step out of this function or set a breakpoint after the asm statements + */ + __asm__ volatile ( + dc64: 00a00034 movhi r2,32768 + dc68: 10bfffc4 addi r2,r2,-1 + dc6c: 10bfffc4 addi r2,r2,-1 + dc70: 103ffe1e bne r2,zero,dc6c + "\n1:" + "\n\t.pushsection .debug_alt_sim_info" + "\n\t.int 4, 0, 0b, 1b" + "\n\t.popsection" + :: "r" (INT_MAX)); + us -= (INT_MAX/(ALT_CPU_FREQ/ + dc74: e13ffc17 ldw r4,-16(fp) + dc78: 014003f4 movhi r5,15 + dc7c: 29509004 addi r5,r5,16960 + dc80: 0009fc80 call 9fc8 <__mulsi3> + dc84: 100b883a mov r5,r2 + dc88: 0100bef4 movhi r4,763 + dc8c: 213c2004 addi r4,r4,-3968 + dc90: 0009fb80 call 9fb8 <__udivsi3> + dc94: 100b883a mov r5,r2 + dc98: 01200034 movhi r4,32768 + dc9c: 213fffc4 addi r4,r4,-1 + dca0: 0009fb80 call 9fb8 <__udivsi3> + dca4: 1007883a mov r3,r2 + dca8: e0bfff17 ldw r2,-4(fp) + dcac: 10c5c83a sub r2,r2,r3 + dcb0: e0bfff15 stw r2,-4(fp) + big_loops = us / (INT_MAX/ + (ALT_CPU_FREQ/(cycles_per_loop * 1000000))); + + if (big_loops) + { + for(i=0;i + /* + * Do NOT Try to single step the asm statement below + * (single step will never return) + * Step out of this function or set a breakpoint after the asm statements + */ + __asm__ volatile ( + dccc: e13ffc17 ldw r4,-16(fp) + dcd0: 014003f4 movhi r5,15 + dcd4: 29509004 addi r5,r5,16960 + dcd8: 0009fc80 call 9fc8 <__mulsi3> + dcdc: 100b883a mov r5,r2 + dce0: 0100bef4 movhi r4,763 + dce4: 213c2004 addi r4,r4,-3968 + dce8: 0009fb80 call 9fb8 <__udivsi3> + dcec: 1009883a mov r4,r2 + dcf0: e17fff17 ldw r5,-4(fp) + dcf4: 0009fc80 call 9fc8 <__mulsi3> + dcf8: 10bfffc4 addi r2,r2,-1 + dcfc: 103ffe1e bne r2,zero,dcf8 + dd00: 00000d06 br dd38 + /* + * Do NOT Try to single step the asm statement below + * (single step will never return) + * Step out of this function or set a breakpoint after the asm statements + */ + __asm__ volatile ( + dd04: e13ffc17 ldw r4,-16(fp) + dd08: 014003f4 movhi r5,15 + dd0c: 29509004 addi r5,r5,16960 + dd10: 0009fc80 call 9fc8 <__mulsi3> + dd14: 100b883a mov r5,r2 + dd18: 0100bef4 movhi r4,763 + dd1c: 213c2004 addi r4,r4,-3968 + dd20: 0009fb80 call 9fb8 <__udivsi3> + dd24: 1009883a mov r4,r2 + dd28: e17fff17 ldw r5,-4(fp) + dd2c: 0009fc80 call 9fc8 <__mulsi3> + dd30: 10bfffc4 addi r2,r2,-1 + dd34: 00bffe16 blt zero,r2,dd30 + "\n\t.int 4, 0, 0b, 1b" + "\n\t.popsection" + :: "r" (us*(ALT_CPU_FREQ/(cycles_per_loop * 1000000)))); + } +#endif /* #ifndef ALT_SIM_OPTIMIZE */ + return 0; + dd38: 0005883a mov r2,zero +} + dd3c: e037883a mov sp,fp + dd40: dfc00117 ldw ra,4(sp) + dd44: df000017 ldw fp,0(sp) + dd48: dec00204 addi sp,sp,8 + dd4c: f800283a ret + +0000dd50 : + dd50: 200b883a mov r5,r4 + dd54: 000d883a mov r6,zero + dd58: 0009883a mov r4,zero + dd5c: 000f883a mov r7,zero + dd60: 000de101 jmpi de10 <__register_exitproc> + +0000dd64 : + dd64: defffe04 addi sp,sp,-8 + dd68: 000b883a mov r5,zero + dd6c: dc000015 stw r16,0(sp) + dd70: dfc00115 stw ra,4(sp) + dd74: 2021883a mov r16,r4 + dd78: 000df480 call df48 <__call_exitprocs> + dd7c: 00800074 movhi r2,1 + dd80: 1080b304 addi r2,r2,716 + dd84: 11000017 ldw r4,0(r2) + dd88: 20800f17 ldw r2,60(r4) + dd8c: 10000126 beq r2,zero,dd94 + dd90: 103ee83a callr r2 + dd94: 8009883a mov r4,r16 + dd98: 000e1380 call e138 <_exit> + +0000dd9c : + dd9c: 00c000c4 movi r3,3 + dda0: 1980032e bgeu r3,r6,ddb0 + dda4: 2144b03a or r2,r4,r5 + dda8: 10c4703a and r2,r2,r3 + ddac: 10000f26 beq r2,zero,ddec + ddb0: 31ffffc4 addi r7,r6,-1 + ddb4: 3000061e bne r6,zero,ddd0 + ddb8: 00000a06 br dde4 + ddbc: 39ffffc4 addi r7,r7,-1 + ddc0: 00bfffc4 movi r2,-1 + ddc4: 21000044 addi r4,r4,1 + ddc8: 29400044 addi r5,r5,1 + ddcc: 38800526 beq r7,r2,dde4 + ddd0: 20c00003 ldbu r3,0(r4) + ddd4: 28800003 ldbu r2,0(r5) + ddd8: 18bff826 beq r3,r2,ddbc + dddc: 1885c83a sub r2,r3,r2 + dde0: f800283a ret + dde4: 0005883a mov r2,zero + dde8: f800283a ret + ddec: 180f883a mov r7,r3 + ddf0: 20c00017 ldw r3,0(r4) + ddf4: 28800017 ldw r2,0(r5) + ddf8: 18bfed1e bne r3,r2,ddb0 + ddfc: 31bfff04 addi r6,r6,-4 + de00: 21000104 addi r4,r4,4 + de04: 29400104 addi r5,r5,4 + de08: 39bff936 bltu r7,r6,ddf0 + de0c: 003fe806 br ddb0 + +0000de10 <__register_exitproc>: + de10: defffa04 addi sp,sp,-24 + de14: 00800074 movhi r2,1 + de18: 1080b304 addi r2,r2,716 + de1c: dc000015 stw r16,0(sp) + de20: 14000017 ldw r16,0(r2) + de24: dd000415 stw r20,16(sp) + de28: 2829883a mov r20,r5 + de2c: 81405217 ldw r5,328(r16) + de30: dcc00315 stw r19,12(sp) + de34: dc800215 stw r18,8(sp) + de38: dc400115 stw r17,4(sp) + de3c: dfc00515 stw ra,20(sp) + de40: 2023883a mov r17,r4 + de44: 3027883a mov r19,r6 + de48: 3825883a mov r18,r7 + de4c: 28002526 beq r5,zero,dee4 <__register_exitproc+0xd4> + de50: 29000117 ldw r4,4(r5) + de54: 008007c4 movi r2,31 + de58: 11002716 blt r2,r4,def8 <__register_exitproc+0xe8> + de5c: 8800101e bne r17,zero,dea0 <__register_exitproc+0x90> + de60: 2105883a add r2,r4,r4 + de64: 1085883a add r2,r2,r2 + de68: 20c00044 addi r3,r4,1 + de6c: 1145883a add r2,r2,r5 + de70: 0009883a mov r4,zero + de74: 15000215 stw r20,8(r2) + de78: 28c00115 stw r3,4(r5) + de7c: 2005883a mov r2,r4 + de80: dfc00517 ldw ra,20(sp) + de84: dd000417 ldw r20,16(sp) + de88: dcc00317 ldw r19,12(sp) + de8c: dc800217 ldw r18,8(sp) + de90: dc400117 ldw r17,4(sp) + de94: dc000017 ldw r16,0(sp) + de98: dec00604 addi sp,sp,24 + de9c: f800283a ret + dea0: 29802204 addi r6,r5,136 + dea4: 00800044 movi r2,1 + dea8: 110e983a sll r7,r2,r4 + deac: 30c04017 ldw r3,256(r6) + deb0: 2105883a add r2,r4,r4 + deb4: 1085883a add r2,r2,r2 + deb8: 1185883a add r2,r2,r6 + debc: 19c6b03a or r3,r3,r7 + dec0: 14802015 stw r18,128(r2) + dec4: 14c00015 stw r19,0(r2) + dec8: 00800084 movi r2,2 + decc: 30c04015 stw r3,256(r6) + ded0: 88bfe31e bne r17,r2,de60 <__register_exitproc+0x50> + ded4: 30804117 ldw r2,260(r6) + ded8: 11c4b03a or r2,r2,r7 + dedc: 30804115 stw r2,260(r6) + dee0: 003fdf06 br de60 <__register_exitproc+0x50> + dee4: 00800074 movhi r2,1 + dee8: 1087fc04 addi r2,r2,8176 + deec: 100b883a mov r5,r2 + def0: 80805215 stw r2,328(r16) + def4: 003fd606 br de50 <__register_exitproc+0x40> + def8: 00800034 movhi r2,0 + defc: 10800004 addi r2,r2,0 + df00: 1000021e bne r2,zero,df0c <__register_exitproc+0xfc> + df04: 013fffc4 movi r4,-1 + df08: 003fdc06 br de7c <__register_exitproc+0x6c> + df0c: 01006404 movi r4,400 + df10: 103ee83a callr r2 + df14: 1007883a mov r3,r2 + df18: 103ffa26 beq r2,zero,df04 <__register_exitproc+0xf4> + df1c: 80805217 ldw r2,328(r16) + df20: 180b883a mov r5,r3 + df24: 18000115 stw zero,4(r3) + df28: 18800015 stw r2,0(r3) + df2c: 80c05215 stw r3,328(r16) + df30: 18006215 stw zero,392(r3) + df34: 18006315 stw zero,396(r3) + df38: 0009883a mov r4,zero + df3c: 883fc826 beq r17,zero,de60 <__register_exitproc+0x50> + df40: 003fd706 br dea0 <__register_exitproc+0x90> + +0000df44 : + df44: f800283a ret + +0000df48 <__call_exitprocs>: + df48: 00800074 movhi r2,1 + df4c: 1080b304 addi r2,r2,716 + df50: 10800017 ldw r2,0(r2) + df54: defff304 addi sp,sp,-52 + df58: df000b15 stw fp,44(sp) + df5c: d8800115 stw r2,4(sp) + df60: 00800034 movhi r2,0 + df64: 10800004 addi r2,r2,0 + df68: 1005003a cmpeq r2,r2,zero + df6c: d8800215 stw r2,8(sp) + df70: d8800117 ldw r2,4(sp) + df74: dd400815 stw r21,32(sp) + df78: dd000715 stw r20,28(sp) + df7c: 10805204 addi r2,r2,328 + df80: dfc00c15 stw ra,48(sp) + df84: ddc00a15 stw r23,40(sp) + df88: dd800915 stw r22,36(sp) + df8c: dcc00615 stw r19,24(sp) + df90: dc800515 stw r18,20(sp) + df94: dc400415 stw r17,16(sp) + df98: dc000315 stw r16,12(sp) + df9c: 282b883a mov r21,r5 + dfa0: 2039883a mov fp,r4 + dfa4: d8800015 stw r2,0(sp) + dfa8: 2829003a cmpeq r20,r5,zero + dfac: d8800117 ldw r2,4(sp) + dfb0: 14405217 ldw r17,328(r2) + dfb4: 88001026 beq r17,zero,dff8 <__call_exitprocs+0xb0> + dfb8: ddc00017 ldw r23,0(sp) + dfbc: 88800117 ldw r2,4(r17) + dfc0: 8c802204 addi r18,r17,136 + dfc4: 143fffc4 addi r16,r2,-1 + dfc8: 80000916 blt r16,zero,dff0 <__call_exitprocs+0xa8> + dfcc: 05bfffc4 movi r22,-1 + dfd0: a000151e bne r20,zero,e028 <__call_exitprocs+0xe0> + dfd4: 8409883a add r4,r16,r16 + dfd8: 2105883a add r2,r4,r4 + dfdc: 1485883a add r2,r2,r18 + dfe0: 10c02017 ldw r3,128(r2) + dfe4: a8c01126 beq r21,r3,e02c <__call_exitprocs+0xe4> + dfe8: 843fffc4 addi r16,r16,-1 + dfec: 85bff81e bne r16,r22,dfd0 <__call_exitprocs+0x88> + dff0: d8800217 ldw r2,8(sp) + dff4: 10003126 beq r2,zero,e0bc <__call_exitprocs+0x174> + dff8: dfc00c17 ldw ra,48(sp) + dffc: df000b17 ldw fp,44(sp) + e000: ddc00a17 ldw r23,40(sp) + e004: dd800917 ldw r22,36(sp) + e008: dd400817 ldw r21,32(sp) + e00c: dd000717 ldw r20,28(sp) + e010: dcc00617 ldw r19,24(sp) + e014: dc800517 ldw r18,20(sp) + e018: dc400417 ldw r17,16(sp) + e01c: dc000317 ldw r16,12(sp) + e020: dec00d04 addi sp,sp,52 + e024: f800283a ret + e028: 8409883a add r4,r16,r16 + e02c: 88c00117 ldw r3,4(r17) + e030: 2105883a add r2,r4,r4 + e034: 1445883a add r2,r2,r17 + e038: 18ffffc4 addi r3,r3,-1 + e03c: 11800217 ldw r6,8(r2) + e040: 1c001526 beq r3,r16,e098 <__call_exitprocs+0x150> + e044: 10000215 stw zero,8(r2) + e048: 303fe726 beq r6,zero,dfe8 <__call_exitprocs+0xa0> + e04c: 00c00044 movi r3,1 + e050: 1c06983a sll r3,r3,r16 + e054: 90804017 ldw r2,256(r18) + e058: 8cc00117 ldw r19,4(r17) + e05c: 1884703a and r2,r3,r2 + e060: 10001426 beq r2,zero,e0b4 <__call_exitprocs+0x16c> + e064: 90804117 ldw r2,260(r18) + e068: 1884703a and r2,r3,r2 + e06c: 10000c1e bne r2,zero,e0a0 <__call_exitprocs+0x158> + e070: 2105883a add r2,r4,r4 + e074: 1485883a add r2,r2,r18 + e078: 11400017 ldw r5,0(r2) + e07c: e009883a mov r4,fp + e080: 303ee83a callr r6 + e084: 88800117 ldw r2,4(r17) + e088: 98bfc81e bne r19,r2,dfac <__call_exitprocs+0x64> + e08c: b8800017 ldw r2,0(r23) + e090: 147fd526 beq r2,r17,dfe8 <__call_exitprocs+0xa0> + e094: 003fc506 br dfac <__call_exitprocs+0x64> + e098: 8c000115 stw r16,4(r17) + e09c: 003fea06 br e048 <__call_exitprocs+0x100> + e0a0: 2105883a add r2,r4,r4 + e0a4: 1485883a add r2,r2,r18 + e0a8: 11000017 ldw r4,0(r2) + e0ac: 303ee83a callr r6 + e0b0: 003ff406 br e084 <__call_exitprocs+0x13c> + e0b4: 303ee83a callr r6 + e0b8: 003ff206 br e084 <__call_exitprocs+0x13c> + e0bc: 88800117 ldw r2,4(r17) + e0c0: 1000081e bne r2,zero,e0e4 <__call_exitprocs+0x19c> + e0c4: 89000017 ldw r4,0(r17) + e0c8: 20000726 beq r4,zero,e0e8 <__call_exitprocs+0x1a0> + e0cc: b9000015 stw r4,0(r23) + e0d0: 8809883a mov r4,r17 + e0d4: 00000000 call 0 <__alt_mem_onchip_memory> + e0d8: bc400017 ldw r17,0(r23) + e0dc: 883fb71e bne r17,zero,dfbc <__call_exitprocs+0x74> + e0e0: 003fc506 br dff8 <__call_exitprocs+0xb0> + e0e4: 89000017 ldw r4,0(r17) + e0e8: 882f883a mov r23,r17 + e0ec: 2023883a mov r17,r4 + e0f0: 883fb21e bne r17,zero,dfbc <__call_exitprocs+0x74> + e0f4: 003fc006 br dff8 <__call_exitprocs+0xb0> + +0000e0f8 : + +/* + * Routine called on exit. + */ +static ALT_ALWAYS_INLINE void alt_sim_halt(int exit_code) +{ + e0f8: defffd04 addi sp,sp,-12 + e0fc: df000215 stw fp,8(sp) + e100: df000204 addi fp,sp,8 + e104: e13fff15 stw r4,-4(fp) + int r2 = exit_code; + e108: e0bfff17 ldw r2,-4(fp) + e10c: e0bffe15 stw r2,-8(fp) + __asm__ volatile ("\n0:\n\taddi %0,%0, -1\n\tbgt %0,zero,0b" : : "r" (ALT_CPU_FREQ/100) ); /* Delay for >30ms */ + + __asm__ volatile ("break 2" : : "D02"(r2), "D03"(r3) ALT_GMON_DATA ); + +#else /* !DEBUG_STUB */ + if (r2) { + e110: e0bffe17 ldw r2,-8(fp) + e114: 1005003a cmpeq r2,r2,zero + e118: 1000021e bne r2,zero,e124 + ALT_SIM_FAIL(); + e11c: 002af070 cmpltui zero,zero,43969 + e120: 00000106 br e128 + } else { + ALT_SIM_PASS(); + e124: 002af0b0 cmpltui zero,zero,43970 + } +#endif /* DEBUG_STUB */ +} + e128: e037883a mov sp,fp + e12c: df000017 ldw fp,0(sp) + e130: dec00104 addi sp,sp,4 + e134: f800283a ret + +0000e138 <_exit>: + * + * ALT_EXIT is mapped onto the _exit() system call in alt_syscall.h + */ + +void ALT_EXIT (int exit_code) +{ + e138: defffd04 addi sp,sp,-12 + e13c: dfc00215 stw ra,8(sp) + e140: df000115 stw fp,4(sp) + e144: df000104 addi fp,sp,4 + e148: e13fff15 stw r4,-4(fp) + ALT_OS_STOP(); + + /* Provide notification to the simulator that we've stopped */ + + ALT_LOG_PRINT_BOOT("[alt_exit.c] Calling ALT_SIM_HALT().\r\n"); + ALT_SIM_HALT(exit_code); + e14c: e13fff17 ldw r4,-4(fp) + e150: 000e0f80 call e0f8 + + /* spin forever, since there's no where to go back to */ + + ALT_LOG_PRINT_BOOT("[alt_exit.c] Spinning forever.\r\n"); + while (1); + e154: 003fff06 br e154 <_exit+0x1c> + e158: 0000df44 movi zero,893 diff --git a/software/qsys_tutorial_lcd3/readme.txt b/software/qsys_tutorial_lcd3/readme.txt new file mode 100644 index 0000000..7d0742f --- /dev/null +++ b/software/qsys_tutorial_lcd3/readme.txt @@ -0,0 +1,26 @@ +Readme - Hello World Software Example + +DESCRIPTION: +Simple program that prints "Hello from Nios II" + +The memory footprint of this hosted application is intended to be small (under 100 kbytes) by default +using a standard reference deisgn. + +For an even smaller, reduced footprint version of this template, and an explanation of how +to reduce the memory footprint for a given application, see the +"small_hello_world" template. + + +PERIPHERALS USED: +This example exercises the following peripherals: +- STDOUT device (UART or JTAG UART) + +SOFTWARE SOURCE FILES: +This example includes the following software source files: +- hello_world.c: Everyone needs a Hello World program, right? + +BOARD/HOST REQUIREMENTS: +This example requires only a JTAG connection with a Nios Development board. If +the host communication settings are changed from JTAG UART (default) to use a +conventional UART, a serial cable between board DB-9 connector and the host is +required. diff --git a/software/qsys_tutorial_lcd3_bsp/.cproject b/software/qsys_tutorial_lcd3_bsp/.cproject new file mode 100644 index 0000000..07708a0 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/.cproject @@ -0,0 +1,481 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/software/qsys_tutorial_lcd3_bsp/.project b/software/qsys_tutorial_lcd3_bsp/.project new file mode 100644 index 0000000..41778ab --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/.project @@ -0,0 +1,85 @@ + + + qsys_tutorial_lcd3_bsp + + + + + + org.eclipse.cdt.managedbuilder.core.genmakebuilder + clean,full,incremental, + + + ?name? + + + + org.eclipse.cdt.make.core.append_environment + true + + + org.eclipse.cdt.make.core.autoBuildTarget + all + + + org.eclipse.cdt.make.core.buildArguments + + + + org.eclipse.cdt.make.core.buildCommand + make + + + org.eclipse.cdt.make.core.buildLocation + ${workspace_loc://qsys_tutorial_lcd3_bsp} + + + org.eclipse.cdt.make.core.cleanBuildTarget + clean + + + org.eclipse.cdt.make.core.contents + org.eclipse.cdt.make.core.activeConfigSettings + + + org.eclipse.cdt.make.core.enableAutoBuild + false + + + org.eclipse.cdt.make.core.enableCleanBuild + true + + + org.eclipse.cdt.make.core.enableFullBuild + true + + + org.eclipse.cdt.make.core.fullBuildTarget + all + + + org.eclipse.cdt.make.core.stopOnError + true + + + org.eclipse.cdt.make.core.useDefaultBuildCmd + true + + + + + org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder + full,incremental, + + + + + + org.eclipse.cdt.core.cnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.managedbuilder.core.ScannerConfigNature + org.eclipse.cdt.core.ccnature + com.altera.sbtgui.project.SBTGUINature + com.altera.sbtgui.project.SBTGUIBspNature + + diff --git a/software/qsys_tutorial_lcd3_bsp/HAL/inc/alt_types.h b/software/qsys_tutorial_lcd3_bsp/HAL/inc/alt_types.h new file mode 100644 index 0000000..d02f171 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/HAL/inc/alt_types.h @@ -0,0 +1,54 @@ +#ifndef __ALT_TYPES_H__ +#define __ALT_TYPES_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/* + * Don't declare these typedefs if this file is included by assembly source. + */ +#ifndef ALT_ASM_SRC +typedef signed char alt_8; +typedef unsigned char alt_u8; +typedef signed short alt_16; +typedef unsigned short alt_u16; +typedef signed long alt_32; +typedef unsigned long alt_u32; +typedef long long alt_64; +typedef unsigned long long alt_u64; +#endif + +#define ALT_INLINE __inline__ +#define ALT_ALWAYS_INLINE __attribute__ ((always_inline)) +#define ALT_WEAK __attribute__((weak)) + +#endif /* __ALT_TYPES_H__ */ diff --git a/software/qsys_tutorial_lcd3_bsp/HAL/inc/altera_nios2_qsys_irq.h b/software/qsys_tutorial_lcd3_bsp/HAL/inc/altera_nios2_qsys_irq.h new file mode 100644 index 0000000..6629ec9 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/HAL/inc/altera_nios2_qsys_irq.h @@ -0,0 +1,80 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2009 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/* + * Support for the Nios II internal interrupt controller. + */ + +#ifndef __ALT_NIOS2_QSYS_IRQ_H__ +#define __ALT_NIOS2_QSYS_IRQ_H__ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * The macro ALTERA_NIOS2_IRQ_INSTANCE is used by the alt_irq_init() + * function in the auto-generated file alt_sys_init.c to create an + * instance of this interrupt controller device driver state if this + * module contains an interrupt controller. + * Only one instance of a Nios II is allowed so this macro is just empty. + */ + +#define ALTERA_NIOS2_QSYS_IRQ_INSTANCE(name, state) + +/* + * altera_nios2_irq_init() is called by the auto-generated function + * alt_irq_init() once for the Nios II if it contains an interrupt controller. + * The altera_nios2_irq_init() routine is called using the + * ALTERA_NIOS2_IRQ_INIT macro given below. + * + * This function initializes the internal interrupt controller + * so is not called if the Nios II contains an external interrupt + * controller port (because the internal interrupt controller + * is removed if this port is present). + */ + +extern void altera_nios2_qsys_irq_init( void ); + +/* + * The macro ALTERA_NIOS2_IRQ_INIT is used by the alt_irq_init() routine + * in the auto-generated file alt_sys_init.c to initialize an instance + * of the interrupt controller device driver state. + */ + +#define ALTERA_NIOS2_QSYS_IRQ_INIT(name, state) altera_nios2_qsys_irq_init() + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __ALT_NIOS2_QSYS_IRQ_H__ */ + diff --git a/software/qsys_tutorial_lcd3_bsp/HAL/inc/io.h b/software/qsys_tutorial_lcd3_bsp/HAL/inc/io.h new file mode 100644 index 0000000..362f103 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/HAL/inc/io.h @@ -0,0 +1,81 @@ +#ifndef __IO_H__ +#define __IO_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/* IO Header file for Nios II Toolchain */ + +#include "alt_types.h" +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +#ifndef SYSTEM_BUS_WIDTH +#error SYSTEM_BUS_WIDTH undefined +#endif + +/* Dynamic bus access functions */ + +#define __IO_CALC_ADDRESS_DYNAMIC(BASE, OFFSET) \ + ((void *)(((alt_u8*)BASE) + (OFFSET))) + +#define IORD_32DIRECT(BASE, OFFSET) \ + __builtin_ldwio (__IO_CALC_ADDRESS_DYNAMIC ((BASE), (OFFSET))) +#define IORD_16DIRECT(BASE, OFFSET) \ + __builtin_ldhuio (__IO_CALC_ADDRESS_DYNAMIC ((BASE), (OFFSET))) +#define IORD_8DIRECT(BASE, OFFSET) \ + __builtin_ldbuio (__IO_CALC_ADDRESS_DYNAMIC ((BASE), (OFFSET))) + +#define IOWR_32DIRECT(BASE, OFFSET, DATA) \ + __builtin_stwio (__IO_CALC_ADDRESS_DYNAMIC ((BASE), (OFFSET)), (DATA)) +#define IOWR_16DIRECT(BASE, OFFSET, DATA) \ + __builtin_sthio (__IO_CALC_ADDRESS_DYNAMIC ((BASE), (OFFSET)), (DATA)) +#define IOWR_8DIRECT(BASE, OFFSET, DATA) \ + __builtin_stbio (__IO_CALC_ADDRESS_DYNAMIC ((BASE), (OFFSET)), (DATA)) + +/* Native bus access functions */ + +#define __IO_CALC_ADDRESS_NATIVE(BASE, REGNUM) \ + ((void *)(((alt_u8*)BASE) + ((REGNUM) * (SYSTEM_BUS_WIDTH/8)))) + +#define IORD(BASE, REGNUM) \ + __builtin_ldwio (__IO_CALC_ADDRESS_NATIVE ((BASE), (REGNUM))) +#define IOWR(BASE, REGNUM, DATA) \ + __builtin_stwio (__IO_CALC_ADDRESS_NATIVE ((BASE), (REGNUM)), (DATA)) + +#ifdef __cplusplus +} +#endif + +#endif /* __IO_H__ */ diff --git a/software/qsys_tutorial_lcd3_bsp/HAL/inc/nios2.h b/software/qsys_tutorial_lcd3_bsp/HAL/inc/nios2.h new file mode 100644 index 0000000..72cefba --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/HAL/inc/nios2.h @@ -0,0 +1,230 @@ +#ifndef __NIOS2_H__ +#define __NIOS2_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2008 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/* + * This header provides processor specific macros for accessing the Nios2 + * control registers. + */ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * Macros for accessing selected processor registers + */ + +#define NIOS2_READ_ET(et) \ + do { __asm ("mov %0, et" : "=r" (et) ); } while (0) + +#define NIOS2_WRITE_ET(et) \ + do { __asm volatile ("mov et, %z0" : : "rM" (et)); } while (0) + +#define NIOS2_READ_SP(sp) \ + do { __asm ("mov %0, sp" : "=r" (sp) ); } while (0) + +/* + * Macros for useful processor instructions + */ + +#define NIOS2_BREAK() \ + do { __asm volatile ("break"); } while (0) + +#define NIOS2_REPORT_STACK_OVERFLOW() \ + do { __asm volatile("break 3"); } while (0) + +/* + * Macros for accessing the control registers. + */ + +#define NIOS2_READ_STATUS(dest) \ + do { dest = __builtin_rdctl(0); } while (0) + +#define NIOS2_WRITE_STATUS(src) \ + do { __builtin_wrctl(0, src); } while (0) + +#define NIOS2_READ_ESTATUS(dest) \ + do { dest = __builtin_rdctl(1); } while (0) + +#define NIOS2_READ_BSTATUS(dest) \ + do { dest = __builtin_rdctl(2); } while (0) + +#define NIOS2_READ_IENABLE(dest) \ + do { dest = __builtin_rdctl(3); } while (0) + +#define NIOS2_WRITE_IENABLE(src) \ + do { __builtin_wrctl(3, src); } while (0) + +#define NIOS2_READ_IPENDING(dest) \ + do { dest = __builtin_rdctl(4); } while (0) + +#define NIOS2_READ_CPUID(dest) \ + do { dest = __builtin_rdctl(5); } while (0) + + +/* + * Macros for accessing extra exception registers. These + * are always enabled wit the MPU or MMU, and optionally + * with other advanced exception types/ + */ +#define NIOS2_READ_EXCEPTION(dest) \ + do { dest = __builtin_rdctl(7); } while (0) + +#define NIOS2_READ_BADADDR(dest) \ + do { dest = __builtin_rdctl(12); } while (0) + + +/* + * Macros for accessing control registers for MPU + * operation. These should not be used unless the + * MPU is enabled. + * + * The config register may be augmented for future + * enhancements. For now, only MPU support is provided. + */ +/* Config register */ +#define NIOS2_WRITE_CONFIG(src) \ + do { __builtin_wrctl(13, src); } while (0) + +#define NIOS2_READ_CONFIG(dest) \ + do { dest = __builtin_rdctl(13); } while (0) + +/* MPU Base Address Register */ +#define NIOS2_WRITE_MPUBASE(src) \ + do { __builtin_wrctl(14, src); } while (0) + +#define NIOS2_READ_MPUBASE(dest) \ + do { dest = __builtin_rdctl(14); } while (0) + +/* MPU Access Register */ +#define NIOS2_WRITE_MPUACC(src) \ + do { __builtin_wrctl(15, src); } while (0) + +#define NIOS2_READ_MPUACC(dest) \ + do { dest = __builtin_rdctl(15); } while (0) + + +/* + * Nios II control registers that are always present + */ +#define NIOS2_STATUS status +#define NIOS2_ESTATUS estatus +#define NIOS2_BSTATUS bstatus +#define NIOS2_IENABLE ienable +#define NIOS2_IPENDING ipending +#define NIOS2_CPUID cpuid + +/* + * STATUS, BSTATUS, ESTATUS, and SSTATUS fields. + * The presence of fields is a function of the Nios II configuration. + */ +#define NIOS2_STATUS_PIE_MSK (0x00000001) +#define NIOS2_STATUS_PIE_OFST (0) +#define NIOS2_STATUS_U_MSK (0x00000002) +#define NIOS2_STATUS_U_OFST (1) +#define NIOS2_STATUS_EH_MSK (0x00000004) +#define NIOS2_STATUS_EH_OFST (2) +#define NIOS2_STATUS_IH_MSK (0x00000008) +#define NIOS2_STATUS_IH_OFST (3) +#define NIOS2_STATUS_IL_MSK (0x000003f0) +#define NIOS2_STATUS_IL_OFST (4) +#define NIOS2_STATUS_CRS_MSK (0x0000fc00) +#define NIOS2_STATUS_CRS_OFST (10) +#define NIOS2_STATUS_PRS_MSK (0x003f0000) +#define NIOS2_STATUS_PRS_OFST (16) +#define NIOS2_STATUS_NMI_MSK (0x00400000) +#define NIOS2_STATUS_NMI_OFST (22) +#define NIOS2_STATUS_RSIE_MSK (0x00800000) +#define NIOS2_STATUS_RSIE_OFST (23) +#define NIOS2_STATUS_SRS_MSK (0x80000000) +#define NIOS2_STATUS_SRS_OFST (31) + +/* + * Bit masks & offsets available with extra exceptions support + */ + +/* Exception register */ +#define NIOS2_EXCEPTION_REG_CAUSE_MASK (0x0000007c) +#define NIOS2_EXCEPTION_REG_CAUSE_OFST (2) + +/* + * Bit masks & offsets for MPU support + * + * All bit-masks are expressed relative to the position + * of the data with a register. To read data that is LSB- + * aligned, the register read data should be masked, then + * right-shifted by the designated "OFST" macro value. The + * opposite should be used for register writes when starting + * with LSB-aligned data. + */ + +/* Config register */ +#define NIOS2_CONFIG_REG_PE_MASK (0x00000001) +#define NIOS2_CONFIG_REG_PE_OFST (0) +#define NIOS2_CONFIG_REG_ANI_MASK (0x00000002) +#define NIOS2_CONFIG_REG_ANI_OFST (1) + +/* MPU Base Address Register */ +#define NIOS2_MPUBASE_D_MASK (0x00000001) +#define NIOS2_MPUBASE_D_OFST (0) +#define NIOS2_MPUBASE_INDEX_MASK (0x0000003e) +#define NIOS2_MPUBASE_INDEX_OFST (1) +#define NIOS2_MPUBASE_BASE_ADDR_MASK (0xffffffc0) +#define NIOS2_MPUBASE_BASE_ADDR_OFST (6) + +/* MPU Access Register */ +#define NIOS2_MPUACC_LIMIT_MASK (0xffffffc0) +#define NIOS2_MPUACC_LIMIT_OFST (6) +#define NIOS2_MPUACC_MASK_MASK (0xffffffc0) +#define NIOS2_MPUACC_MASK_OFST (6) +#define NIOS2_MPUACC_C_MASK (0x00000020) +#define NIOS2_MPUACC_C_OFST (5) +#define NIOS2_MPUACC_PERM_MASK (0x0000001c) +#define NIOS2_MPUACC_PERM_OFST (2) +#define NIOS2_MPUACC_RD_MASK (0x00000002) +#define NIOS2_MPUACC_RD_OFST (1) +#define NIOS2_MPUACC_WR_MASK (0x00000001) +#define NIOS2_MPUACC_WR_OFST (0) + +/* + * Number of available IRQs in internal interrupt controller. + */ +#define NIOS2_NIRQ 32 + + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __NIOS2_H__ */ diff --git a/software/qsys_tutorial_lcd3_bsp/HAL/inc/os/alt_flag.h b/software/qsys_tutorial_lcd3_bsp/HAL/inc/os/alt_flag.h new file mode 100644 index 0000000..b9b4605 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/HAL/inc/os/alt_flag.h @@ -0,0 +1,98 @@ +#ifndef __ALT_FLAG_H__ +#define __ALT_FLAG_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +/* + * This header provides macro definitions that can be used to create and use + * uc/OS-II style event flags. These macros can be used in both a uC/OS-II based + * environment, and a single threaded HAL based environment. + * + * The motivation for these macros is to allow code to be developed which is + * thread safe under uC/OS-II, but incurs no additional overhead when used in a + * single threaded HAL environment. + * + * In the case of a single threaded HAL environment, they compile to + * "do nothing" directives, which ensures they do not contribute to the final + * executable. + * + * The following macros are available: + * + * ALT_FLAG_GRP - Create a flag group instance. + * ALT_EXTERN_FLAG_GRP - Create a reference to an external flag group instance. + * ALT_STATIC_FLAG_GRP - Create a static flag group instance. + * ALT_FLAG_CREATE - Initialise a flag group. + * ALT_FLAG_PEND - Pend on a flag group. + * ALT_FLAG_POST - Set a flag condition. + + * + * Input arguments and return codes are all consistant with the equivalent + * uC/OS-II function. + * + * It's important to be careful in the use of the macros: ALT_FLAG_GRP, + * ALT_EXTERN_FLAG_GRP, and ALT_STATIC_FLAG_GRP. In these three cases the + * semi-colon is included in the macro definition; so, for example, you should + * use: + * + * ALT_FLAG_GRP(mygroup) + * + * not: + * + * ALT_FLAG_GRP(mygroup); + * + * The inclusion of the semi-colon has been necessary to ensure the macros can + * compile with no warnings when used in a single threaded HAL environment. + * + */ + +#include "priv/alt_no_error.h" + +#define ALT_FLAG_GRP(group) +#define ALT_EXTERN_FLAG_GRP(group) +#define ALT_STATIC_FLAG_GRP(group) + +#define ALT_FLAG_CREATE(group, flags) alt_no_error () +#define ALT_FLAG_PEND(group, flags, wait_type, timeout) alt_no_error () +#define ALT_FLAG_POST(group, flags, opt) alt_no_error () + +#ifndef ALT_SINGLE_THREADED +#define ALT_SINGLE_THREADED +#endif + +#endif /* __ALT_FLAG_H__ */ diff --git a/software/qsys_tutorial_lcd3_bsp/HAL/inc/os/alt_hooks.h b/software/qsys_tutorial_lcd3_bsp/HAL/inc/os/alt_hooks.h new file mode 100644 index 0000000..9054e3f --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/HAL/inc/os/alt_hooks.h @@ -0,0 +1,61 @@ +#ifndef __ALT_HOOKS_H__ +#define __ALT_HOOKS_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +/* + * This header provides "do-nothing" macro definitions for operating system + * hooks within the HAL. The O/S component can override these to provide it's + * own implementation. + */ + +#define ALT_OS_TIME_TICK() while(0) +#define ALT_OS_INIT() while(0) +#define ALT_OS_STOP() while(0) + +/* Call from assembly code */ +#define ALT_OS_INT_ENTER_ASM +#define ALT_OS_INT_EXIT_ASM + +/* Call from C code */ +#define ALT_OS_INT_ENTER() while(0) +#define ALT_OS_INT_EXIT() while(0) + + +#endif /* __ALT_HOOKS_H__ */ diff --git a/software/qsys_tutorial_lcd3_bsp/HAL/inc/os/alt_sem.h b/software/qsys_tutorial_lcd3_bsp/HAL/inc/os/alt_sem.h new file mode 100644 index 0000000..753943e --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/HAL/inc/os/alt_sem.h @@ -0,0 +1,96 @@ +#ifndef __ALT_SEM_H__ +#define __ALT_SEM_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +/* + * This header provides macro definitions that can be used to create and use + * semaphores. These macros can be used in both a uC/OS-II based environment, + * and a single threaded HAL based environment. + * + * The motivation for these macros is to allow code to be developed which is + * thread safe under uC/OS-II, but incurs no additional overhead when used in a + * single threaded HAL environment. + * + * In the case of a single threaded HAL environment, they compile to + * "do nothing" directives, which ensures they do not contribute to the final + * executable. + * + * The following macros are available: + * + * ALT_SEM - Create a semaphore instance. + * ALT_EXTERN_SEM - Create a reference to an external semaphore instance. + * ALT_STATIC_SEM - Create a static semaphore instance. + * ALT_SEM_CREATE - Initialise a semaphore. + * ALT_SEM_PEND - Pend on a semaphore. + * ALT_SEM_POST - Increment a semaphore. + * + * Input arguments and return codes are all consistant with the equivalent + * uC/OS-II function. + * + * It's important to be careful in the use of the macros: ALT_SEM, + * ALT_EXTERN_SEM, and ALT_STATIC_SEM. In these three cases the semi-colon is + * included in the macro definition; so, for example, you should use: + * + * ALT_SEM(mysem) + * + * not: + * + * ALT_SEM(mysem); + * + * The inclusion of the semi-colon has been necessary to ensure the macros can + * compile with no warnings when used in a single threaded HAL environment. + * + */ + +#include "priv/alt_no_error.h" + +#define ALT_SEM(sem) +#define ALT_EXTERN_SEM(sem) +#define ALT_STATIC_SEM(sem) + +#define ALT_SEM_CREATE(sem, value) alt_no_error () +#define ALT_SEM_PEND(sem, timeout) alt_no_error () +#define ALT_SEM_POST(sem) alt_no_error () + +#ifndef ALT_SINGLE_THREADED +#define ALT_SINGLE_THREADED +#endif + +#endif /* __ALT_SEM_H__ */ diff --git a/software/qsys_tutorial_lcd3_bsp/HAL/inc/os/alt_syscall.h b/software/qsys_tutorial_lcd3_bsp/HAL/inc/os/alt_syscall.h new file mode 100644 index 0000000..507c6aa --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/HAL/inc/os/alt_syscall.h @@ -0,0 +1,75 @@ +#ifndef __ALT_SYSCALL_H__ +#define __ALT_SYSCALL_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/* + * The macros defined in this file are used to provide the function names used + * for the HAL 'UNIX style' interface, e.g. read(), write() etc. + * + * Operating systems which are ported to the HAL can provide their own + * version of this file, which will be used in preference. This allows + * the operating system to provide it's own implementation of the top level + * system calls, while retaining the HAL functions under a different name, + * for example, alt_read(), alt_write() etc. + */ + +#define ALT_CLOSE close +#define ALT_ENVIRON environ +#define ALT_EXECVE execve +#define ALT_EXIT _exit +#define ALT_FCNTL fcntl +#define ALT_FORK fork +#define ALT_FSTAT fstat +#define ALT_GETPID getpid +#define ALT_GETTIMEOFDAY gettimeofday +#define ALT_IOCTL ioctl +#define ALT_ISATTY isatty +#define ALT_KILL kill +#define ALT_LINK link +#define ALT_LSEEK lseek +#define ALT_OPEN open +#define ALT_READ read +#define ALT_RENAME _rename +#define ALT_SBRK sbrk +#define ALT_SETTIMEOFDAY settimeofday +#define ALT_STAT stat +#define ALT_UNLINK unlink +#define ALT_USLEEP usleep +#define ALT_WAIT wait +#define ALT_WRITE write +#define ALT_TIMES times + +/* + * + */ + +#endif /* __ALT_SYSCALL_H__ */ diff --git a/software/qsys_tutorial_lcd3_bsp/HAL/inc/priv/alt_alarm.h b/software/qsys_tutorial_lcd3_bsp/HAL/inc/priv/alt_alarm.h new file mode 100644 index 0000000..45d6a0e --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/HAL/inc/priv/alt_alarm.h @@ -0,0 +1,101 @@ +#ifndef __ALT_PRIV_ALARM_H__ +#define __ALT_PRIV_ALARM_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#include "alt_types.h" + +/* + * This header provides the internal defenitions required by the public + * interface alt_alarm.h. These variables and structures are not guaranteed to + * exist in future implementations of the HAL. + */ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * "alt_alarm_s" is a structure type used to maintain lists of alarm callback + * functions. + */ + +struct alt_alarm_s +{ + alt_llist llist; /* linked list */ + alt_u32 time; /* time in system ticks of the callback */ + alt_u32 (*callback) (void* context); /* callback function. The return + * value is the period for the next callback; where + * zero indicates that the alarm should be removed + * from the list. + */ + alt_u8 rollover; /* set when desired alarm time + current time causes + overflow, to prevent premature alarm */ + void* context; /* Argument for the callback */ +}; + +/* + * "_alt_tick_rate" is a global variable used to store the system clock rate + * in ticks per second. This is initialised to zero, which coresponds to there + * being no system clock available. + * + * It is then set to it's final value by the system clock driver through a call + * to alt_sysclk_init(). + */ + +extern alt_u32 _alt_tick_rate; + +/* + * "_alt_nticks" is a global variable which records the elapsed number of + * system clock ticks since the last call to settimeofday() or since reset if + * settimeofday() has not been called. + */ + +extern volatile alt_u32 _alt_nticks; + +/* The list of registered alarms. */ + +extern alt_llist alt_alarm_list; + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_PRIV_ALARM_H__ */ diff --git a/software/qsys_tutorial_lcd3_bsp/HAL/inc/priv/alt_busy_sleep.h b/software/qsys_tutorial_lcd3_bsp/HAL/inc/priv/alt_busy_sleep.h new file mode 100644 index 0000000..b1af849 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/HAL/inc/priv/alt_busy_sleep.h @@ -0,0 +1,35 @@ +#ifndef __ALT_BUSY_SLEEP_H +#define __ALT_BUSY_SLEEP_H + +/* + * Copyright (c) 2003 Altera Corporation, San Jose, California, USA. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ + +/* + * The function alt_busy_sleep provides a busy loop implementation of usleep. + * This is used to provide usleep for the standalone HAL, or when the timer is + * unavailable in uC/OS-II. + */ + +extern unsigned int alt_busy_sleep (unsigned int us); + +#endif /* __ALT_BUSY_SLEEP_H */ diff --git a/software/qsys_tutorial_lcd3_bsp/HAL/inc/priv/alt_dev_llist.h b/software/qsys_tutorial_lcd3_bsp/HAL/inc/priv/alt_dev_llist.h new file mode 100644 index 0000000..451b063 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/HAL/inc/priv/alt_dev_llist.h @@ -0,0 +1,77 @@ +#ifndef __ALT_DEV_LLIST_H__ +#define __ALT_DEV_LLIST_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#include "sys/alt_llist.h" +#include "alt_types.h" + +/* + * This header provides the internal defenitions required to control file + * access. These variables and functions are not guaranteed to exist in + * future implementations of the HAL. + */ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * The alt_dev_llist is an internal structure used to form a common base + * class for all device types. The use of this structure allows common code + * to be used to manipulate the various device lists. + */ + +typedef struct { + alt_llist llist; + const char* name; +} alt_dev_llist; + +/* + * + */ + +extern int alt_dev_llist_insert (alt_dev_llist* dev, alt_llist* list); + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_DEV_LLIST_H__ */ diff --git a/software/qsys_tutorial_lcd3_bsp/HAL/inc/priv/alt_exception_handler_registry.h b/software/qsys_tutorial_lcd3_bsp/HAL/inc/priv/alt_exception_handler_registry.h new file mode 100644 index 0000000..c6905fa --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/HAL/inc/priv/alt_exception_handler_registry.h @@ -0,0 +1,39 @@ +#ifndef __ALT_EXCEPTION_HANDLER_REGISTRY_H__ +#define __ALT_EXCEPTION_HANDLER_REGISTRY_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2008 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ +#include "sys/alt_exceptions.h" + +/* Function pointer to exception callback routine */ +extern alt_exception_result (*alt_instruction_exception_handler) + (alt_exception_cause, alt_u32, alt_u32); + +#endif /* __ALT_EXCEPTION_HANDLER_REGISTRY_H__ */ diff --git a/software/qsys_tutorial_lcd3_bsp/HAL/inc/priv/alt_file.h b/software/qsys_tutorial_lcd3_bsp/HAL/inc/priv/alt_file.h new file mode 100644 index 0000000..2c3e843 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/HAL/inc/priv/alt_file.h @@ -0,0 +1,179 @@ +#ifndef __ALT_FILE_H__ +#define __ALT_FILE_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#include "sys/alt_dev.h" +#include "sys/alt_llist.h" +#include "os/alt_sem.h" + +#include "alt_types.h" + +/* + * This header provides the internal defenitions required to control file + * access. These variables and functions are not guaranteed to exist in + * future implementations of the HAL. + */ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * The function alt_find_dev() is used to search the device list "list" to + * locate a device named "name". If a match is found, then a pointer to the + * device is returned, otherwise NULL is returned. + */ + +extern alt_dev* alt_find_dev (const char* name, alt_llist* list); + +/* + * alt_find_file() is used to search the list of registered file systems to + * find the filesystem that the file named "name" belongs to. If a match is + * found, then a pointer to the filesystems alt_dev structure is returned, + * otherwise NULL is returned. + * + * Note that a match does not indicate that the file exists, only that a + * filesystem exists that is registered for a partition that could contain + * the file. The filesystems open() function would need to be called in order + * to determine if the file exists. + */ + +extern alt_dev* alt_find_file (const char* name); + +/* + * alt_get_fd() is used to allocate a file descriptor for the device or + * filesystem "dev". A negative return value indicates an error, otherwise the + * return value is the index of the file descriptor within the file descriptor + * pool. + */ + +extern int alt_get_fd (alt_dev* dev); + +/* + * alt_release_fd() is called to free the file descriptor with index "fd". + */ + +extern void alt_release_fd (int fd); + +/* + * alt_fd_lock() is called by ioctl() to mark the file descriptor "fd" as + * being open for exclusive access. Subsequent calls to open() for the device + * associated with "fd" will fail. A device is unlocked by either calling + * close() for "fd", or by an alternate call to ioctl() (see ioctl.c for + * details). + */ + +extern int alt_fd_lock (alt_fd* fd); + +/* + * alt_fd_unlock() is called by ioctl() to unlock a descriptor previously + * locked by a call to alt_fd_lock(). + */ + +extern int alt_fd_unlock (alt_fd* fd); + +/* + * "alt_fd_list" is the pool of file descriptors. + */ + +extern alt_fd alt_fd_list[]; + +/* + * flags used by alt_fd. + * + * ALT_FD_EXCL is used to mark a file descriptor as locked for exclusive + * access, i.e. further calls to open() for the associated device should + * fail. + * + * ALT_FD_DEV marks a dile descriptor as belonging to a device as oposed to a + * filesystem. + */ + +#define ALT_FD_EXCL 0x80000000 +#define ALT_FD_DEV 0x40000000 + +#define ALT_FD_FLAGS_MASK (ALT_FD_EXCL | ALT_FD_DEV) + +/* + * "alt_dev_list" is the head of the linked list of registered devices. + */ + +extern alt_llist alt_dev_list; + +/* + * "alt_fs_list" is the head of the linked list of registered filesystems. + */ + +extern alt_llist alt_fs_list; + +/* + * "alt_fd_list_lock" is a semaphore used to ensure that access to the pool + * of file descriptors is thread safe. + */ + +ALT_EXTERN_SEM(alt_fd_list_lock) + +/* + * "alt_max_fd" is a 'high water mark'. It indicates the highest file + * descriptor allocated. Use of this can save searching the entire pool + * for active file descriptors, which helps avoid contention on access + * to the file descriptor pool. + */ + +extern alt_32 alt_max_fd; + +/* + * alt_io_redirect() is called at startup to redirect stdout, stdin, and + * stderr to the devices named in the input arguments. By default these streams + * are directed at /dev/null, and are then redirected using this function once + * all of the devices have been registered within the system. + */ + +extern void alt_io_redirect(const char* stdout_dev, + const char* stdin_dev, + const char* stderr_dev); + + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_FILE_H__ */ diff --git a/software/qsys_tutorial_lcd3_bsp/HAL/inc/priv/alt_iic_isr_register.h b/software/qsys_tutorial_lcd3_bsp/HAL/inc/priv/alt_iic_isr_register.h new file mode 100644 index 0000000..a0cb01c --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/HAL/inc/priv/alt_iic_isr_register.h @@ -0,0 +1,39 @@ +#ifndef __ALT_IIC_ISR_REGISTER_H_ +#define __ALT_IIC_ISR_REGISTER_H_ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2009 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ +#include "alt_types.h" +#include "sys/alt_irq.h" + +extern int alt_iic_isr_register(alt_u32 ic_id, alt_u32 irq, alt_isr_func isr, + void *isr_context, void *flags); + +#endif /* __ALT_IIC_ISR_REGISTER_H_ */ diff --git a/software/qsys_tutorial_lcd3_bsp/HAL/inc/priv/alt_irq_table.h b/software/qsys_tutorial_lcd3_bsp/HAL/inc/priv/alt_irq_table.h new file mode 100644 index 0000000..694ef06 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/HAL/inc/priv/alt_irq_table.h @@ -0,0 +1,59 @@ +#ifndef __ALT_IRQ_TABLE_H__ +#define __ALT_IRQ_TABLE_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2009 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +/* + * Definition of a table describing each interrupt handler. The index into + * the array is the interrupt id associated with the handler. + * + * When an interrupt occurs, the associated handler is called with + * the argument stored in the context member. + * + * The table is physically created in alt_irq_handler.c + */ +extern struct ALT_IRQ_HANDLER +{ +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT + void (*handler)(void*); +#else + void (*handler)(void*, alt_u32); +#endif + void *context; +} alt_irq[ALT_NIRQ]; + +#endif diff --git a/software/qsys_tutorial_lcd3_bsp/HAL/inc/priv/alt_legacy_irq.h b/software/qsys_tutorial_lcd3_bsp/HAL/inc/priv/alt_legacy_irq.h new file mode 100644 index 0000000..c7aec02 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/HAL/inc/priv/alt_legacy_irq.h @@ -0,0 +1,158 @@ +#ifndef __ALT_LEGACY_IRQ_H__ +#define __ALT_LEGACY_IRQ_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2009 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/* + * This file provides prototypes and inline implementations of certain routines + * used by the legacy interrupt API. Do not include this in your driver or + * application source files, use "sys/alt_irq.h" instead to access the proper + * public API. + */ + +#include +#include "system.h" + +#ifndef NIOS2_EIC_PRESENT + +#include "nios2.h" +#include "alt_types.h" + +#include "sys/alt_irq.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * alt_irq_register() can be used to register an interrupt handler. If the + * function is succesful, then the requested interrupt will be enabled upon + * return. + */ +extern int alt_irq_register (alt_u32 id, + void* context, + alt_isr_func handler); + +/* + * alt_irq_disable() disables the individual interrupt indicated by "id". + */ +static ALT_INLINE int ALT_ALWAYS_INLINE alt_irq_disable (alt_u32 id) +{ + alt_irq_context status; + extern volatile alt_u32 alt_irq_active; + + status = alt_irq_disable_all (); + + alt_irq_active &= ~(1 << id); + NIOS2_WRITE_IENABLE (alt_irq_active); + + alt_irq_enable_all(status); + + return 0; +} + +/* + * alt_irq_enable() enables the individual interrupt indicated by "id". + */ +static ALT_INLINE int ALT_ALWAYS_INLINE alt_irq_enable (alt_u32 id) +{ + alt_irq_context status; + extern volatile alt_u32 alt_irq_active; + + status = alt_irq_disable_all (); + + alt_irq_active |= (1 << id); + NIOS2_WRITE_IENABLE (alt_irq_active); + + alt_irq_enable_all(status); + + return 0; +} + +#ifndef ALT_EXCEPTION_STACK +/* + * alt_irq_initerruptable() should only be called from within an ISR. It is used + * to allow higer priority interrupts to interrupt the current ISR. The input + * argument, "priority", is the priority, i.e. interrupt number of the current + * interrupt. + * + * If this function is called, then the ISR is required to make a call to + * alt_irq_non_interruptible() before returning. The input argument to + * alt_irq_non_interruptible() is the return value from alt_irq_interruptible(). + * + * Care should be taken when using this pair of functions, since they increasing + * the system overhead associated with interrupt handling. + * + * If you are using an exception stack then nested interrupts won't work, so + * these functions are not available in that case. + */ +static ALT_INLINE alt_u32 ALT_ALWAYS_INLINE alt_irq_interruptible (alt_u32 priority) +{ + extern volatile alt_u32 alt_priority_mask; + extern volatile alt_u32 alt_irq_active; + + alt_u32 old_priority; + + old_priority = alt_priority_mask; + alt_priority_mask = (1 << priority) - 1; + + NIOS2_WRITE_IENABLE (alt_irq_active & alt_priority_mask); + + NIOS2_WRITE_STATUS (1); + + return old_priority; +} + +/* + * See Comments above for alt_irq_interruptible() for an explanation of the use of this + * function. + */ +static ALT_INLINE void ALT_ALWAYS_INLINE alt_irq_non_interruptible (alt_u32 mask) +{ + extern volatile alt_u32 alt_priority_mask; + extern volatile alt_u32 alt_irq_active; + + NIOS2_WRITE_STATUS (0); + + alt_priority_mask = mask; + + NIOS2_WRITE_IENABLE (mask & alt_irq_active); +} +#endif /* ALT_EXCEPTION_STACK */ + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* NIOS2_EIC_PRESENT */ + +#endif /* __ALT_LEGACY_IRQ_H__ */ diff --git a/software/qsys_tutorial_lcd3_bsp/HAL/inc/priv/alt_no_error.h b/software/qsys_tutorial_lcd3_bsp/HAL/inc/priv/alt_no_error.h new file mode 100644 index 0000000..6143fc9 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/HAL/inc/priv/alt_no_error.h @@ -0,0 +1,77 @@ +#ifndef __ALT_NO_ERROR_H__ +#define __ALT_NO_ERROR_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#include "alt_types.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * alt_no_error() is a dummy function used by alt_sem.h and alt_flag.h. It + * substitutes for functions that have a return code by creating a function + * that always returns zero. + * + * This may seem a little obscure, but what happens is that the compiler can + * then optomise away the call to this function, and any code written which + * handles the error path (i.e. non zero return values). + * + * This allows code to be written which correctly use the uC/OS-II semaphore + * and flag utilities, without the use of those utilities impacting on + * excutables built for a single threaded HAL environment. + * + * This function is considered to be part of the internal implementation of + * the HAL, and should not be called directly by application code or device + * drivers. It is not guaranteed to be preserved in future versions of the + * HAL. + */ + +static ALT_INLINE int ALT_ALWAYS_INLINE alt_no_error (void) +{ + return 0; +} + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_NO_ERROR_H__ */ diff --git a/software/qsys_tutorial_lcd3_bsp/HAL/inc/priv/nios2_gmon_data.h b/software/qsys_tutorial_lcd3_bsp/HAL/inc/priv/nios2_gmon_data.h new file mode 100644 index 0000000..3f43f12 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/HAL/inc/priv/nios2_gmon_data.h @@ -0,0 +1,47 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ +#ifndef NIOS2_GMON_DATA_H +#define NIOS2_GMON_DATA_H + +#define GMON_DATA_SIG 0 +#define GMON_DATA_WORDS 1 +#define GMON_DATA_PROFILE_DATA 2 +#define GMON_DATA_PROFILE_LOWPC 3 +#define GMON_DATA_PROFILE_HIGHPC 4 +#define GMON_DATA_PROFILE_BUCKET 5 +#define GMON_DATA_PROFILE_RATE 6 +#define GMON_DATA_MCOUNT_START 7 +#define GMON_DATA_MCOUNT_LIMIT 8 + +#define GMON_DATA_SIZE 9 + +extern unsigned int alt_gmon_data[GMON_DATA_SIZE]; + +#endif diff --git a/software/qsys_tutorial_lcd3_bsp/HAL/inc/sys/alt_alarm.h b/software/qsys_tutorial_lcd3_bsp/HAL/inc/sys/alt_alarm.h new file mode 100644 index 0000000..68a2f5d --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/HAL/inc/sys/alt_alarm.h @@ -0,0 +1,126 @@ +#ifndef __ALT_ALARM_H__ +#define __ALT_ALARM_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#include "alt_llist.h" +#include "alt_types.h" + +#include "priv/alt_alarm.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * "alt_alarm" is a structure type used by applications to register an alarm + * callback function. An instance of this type must be passed as an input + * argument to alt_alarm_start(). The user is not responsible for initialising + * the contents of the instance. This is done by alt_alarm_start(). + */ + +typedef struct alt_alarm_s alt_alarm; + +/* + * alt_alarm_start() can be called by an application/driver in order to register + * a function for periodic callback at the system clock frequency. Be aware that + * this callback is likely to occur in interrupt context. + */ + +extern int alt_alarm_start (alt_alarm* the_alarm, + alt_u32 nticks, + alt_u32 (*callback) (void* context), + void* context); + +/* + * alt_alarm_stop() is used to unregister a callback. Alternatively the callback + * can return zero to unregister. + */ + +extern void alt_alarm_stop (alt_alarm* the_alarm); + +/* + * Obtain the system clock rate in ticks/s. + */ + +static ALT_INLINE alt_u32 ALT_ALWAYS_INLINE alt_ticks_per_second (void) +{ + return _alt_tick_rate; +} + +/* + * alt_sysclk_init() is intended to be only used by the system clock driver + * in order to initialise the value of the clock frequency. + */ + +static ALT_INLINE int ALT_ALWAYS_INLINE alt_sysclk_init (alt_u32 nticks) +{ + if (! _alt_tick_rate) + { + _alt_tick_rate = nticks; + return 0; + } + else + { + return -1; + } +} + +/* + * alt_nticks() returns the elapsed number of system clock ticks since reset. + */ + +static ALT_INLINE alt_u32 ALT_ALWAYS_INLINE alt_nticks (void) +{ + return _alt_nticks; +} + +/* + * alt_tick() should only be called by the system clock driver. This is used + * to notify the system that the system timer period has expired. + */ + +extern void alt_tick (void); + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_ALARM_H__ */ diff --git a/software/qsys_tutorial_lcd3_bsp/HAL/inc/sys/alt_cache.h b/software/qsys_tutorial_lcd3_bsp/HAL/inc/sys/alt_cache.h new file mode 100644 index 0000000..c4d8db9 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/HAL/inc/sys/alt_cache.h @@ -0,0 +1,117 @@ +#ifndef __ALT_CACHE_H__ +#define __ALT_CACHE_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003, 2007 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include + +#include "alt_types.h" + +/* + * alt_cache.h defines the processor specific functions for manipulating the + * cache. + */ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * alt_icache_flush() is called to flush the instruction cache for a memory + * region of length "len" bytes, starting at address "start". + */ + +extern void alt_icache_flush (void* start, alt_u32 len); + +/* + * alt_dcache_flush() is called to flush the data cache for a memory + * region of length "len" bytes, starting at address "start". + * Any dirty lines in the data cache are written back to memory. + */ + +extern void alt_dcache_flush (void* start, alt_u32 len); + +/* + * alt_dcache_flush() is called to flush the data cache for a memory + * region of length "len" bytes, starting at address "start". + * Any dirty lines in the data cache are NOT written back to memory. + */ + +extern void alt_dcache_flush_no_writeback (void* start, alt_u32 len); + +/* + * Flush the entire instruction cache. + */ + +extern void alt_icache_flush_all (void); + +/* + * Flush the entire data cache. + */ + +extern void alt_dcache_flush_all (void); + +/* + * Allocate a block of uncached memory. + */ + +extern volatile void* alt_uncached_malloc (size_t size); + +/* + * Free a block of uncached memory. + */ + +extern void alt_uncached_free (volatile void* ptr); + +/* + * Convert a pointer to a block of cached memory, into a block of + * uncached memory. + */ + +extern volatile void* alt_remap_uncached (void* ptr, alt_u32 len); + +/* + * Convert a pointer to a block of uncached memory, into a block of + * cached memory. + */ + +extern void* alt_remap_cached (volatile void* ptr, alt_u32 len); + +/* + * + */ + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_CACHE_H__ */ diff --git a/software/qsys_tutorial_lcd3_bsp/HAL/inc/sys/alt_debug.h b/software/qsys_tutorial_lcd3_bsp/HAL/inc/sys/alt_debug.h new file mode 100644 index 0000000..d9f9599 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/HAL/inc/sys/alt_debug.h @@ -0,0 +1,45 @@ +#ifndef __ALT_DEBUG_H__ +#define __ALT_DEBUG_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/* + * The ALT_DEVUG_ASSERT macro can be used to generate a debugger break + * from within software. The break is generated if "condition" evaluates to + * false. + */ + +#define ALT_DEBUG_ASSERT(condition) if (!condition) \ +{ \ + __asm__ volatile ("break"); \ +} + +#endif /* __ALT_DEBUG_H__ */ diff --git a/software/qsys_tutorial_lcd3_bsp/HAL/inc/sys/alt_dev.h b/software/qsys_tutorial_lcd3_bsp/HAL/inc/sys/alt_dev.h new file mode 100644 index 0000000..66c5e41 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/HAL/inc/sys/alt_dev.h @@ -0,0 +1,115 @@ +#ifndef __ALT_DEV_H__ +#define __ALT_DEV_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#include "system.h" +#include "sys/alt_llist.h" +#include "priv/alt_dev_llist.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * The value ALT_IRQ_NOT_CONNECTED is used to represent an unconnected + * interrupt line. It cannot evaluate to a valid interrupt number. + */ + +#define ALT_IRQ_NOT_CONNECTED (-1) + +typedef struct alt_dev_s alt_dev; + +struct stat; + +/* + * The file descriptor structure definition. + */ + +typedef struct alt_fd_s +{ + alt_dev* dev; + alt_u8* priv; + int fd_flags; +} alt_fd; + +/* + * The device structure definition. + */ + +struct alt_dev_s { + alt_llist llist; /* for internal use */ + const char* name; + int (*open) (alt_fd* fd, const char* name, int flags, int mode); + int (*close) (alt_fd* fd); + int (*read) (alt_fd* fd, char* ptr, int len); + int (*write) (alt_fd* fd, const char* ptr, int len); + int (*lseek) (alt_fd* fd, int ptr, int dir); + int (*fstat) (alt_fd* fd, struct stat* buf); + int (*ioctl) (alt_fd* fd, int req, void* arg); +}; + +/* + * Functions used to register device for access through the C standard + * library. + * + * The only difference between alt_dev_reg() and alt_fs_reg() is the + * interpretation that open() places on the device name. In the case of + * alt_dev_reg the device is assumed to be a particular character device, + * and so there must be an exact match in the name for open to succeed. + * In the case of alt_fs_reg() the name of the device is treated as the + * mount point for a directory, and so any call to open() where the name + * is the root of the device filename will succeed. + */ + +extern int alt_fs_reg (alt_dev* dev); + +static ALT_INLINE int alt_dev_reg (alt_dev* dev) +{ + extern alt_llist alt_dev_list; + + return alt_dev_llist_insert ((alt_dev_llist*) dev, &alt_dev_list); +} + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_DEV_H__ */ diff --git a/software/qsys_tutorial_lcd3_bsp/HAL/inc/sys/alt_dma.h b/software/qsys_tutorial_lcd3_bsp/HAL/inc/sys/alt_dma.h new file mode 100644 index 0000000..9f9b2ff --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/HAL/inc/sys/alt_dma.h @@ -0,0 +1,226 @@ +#ifndef __ALT_DMA_H__ +#define __ALT_DMA_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004-2005 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#include "sys/alt_dma_dev.h" +#include "alt_types.h" + +#include + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * This header contains the application side interface for accessing DMA + * resources. See alt_dma_dev.h for the dma device driver interface. + * + * The interface model treats a DMA transaction as being composed of two + * halves (read and write). + * + * The application can supply data for transmit using an "alt_dma_txchan" + * descriptor. Alternatively an "alt_dma_rxchan" descriptor can be used to + * receive data. + */ + +/* + * alt_dma_txchan_open() is used to obtain an "alt_dma_txchan" descriptor for + * a DMA transmit device. The name is the name of the associated physical + * device (e.g. "/dev/dma_0"). + * + * The return value will be NULL on failure, and non-NULL otherwise. + */ + +extern alt_dma_txchan alt_dma_txchan_open (const char* name); + +/* + * alt_dma_txchan_close() is provided so that an application can notify the + * system that it has finished with a given DMA transmit channel. This is only + * provided for completness. + */ + +static ALT_INLINE int alt_dma_txchan_close (alt_dma_txchan dma) +{ + return 0; +} + +/* + * alt_dma_txchan_send() posts a transmit request to a DMA transmit channel. + * The input arguments are: + * + * dma: the channel to use. + * from: a pointer to the start of the data to send. + * length: the length of the data to send in bytes. + * done: callback function that will be called once the data has been sent. + * handle: opaque value passed to "done". + * + * The return value will be negative if the request cannot be posted, and + * zero otherwise. + */ + +static ALT_INLINE int alt_dma_txchan_send (alt_dma_txchan dma, + const void* from, + alt_u32 length, + alt_txchan_done* done, + void* handle) +{ + return dma ? dma->dma_send (dma, + from, + length, + done, + handle) : -ENODEV; +} + +/* + * alt_dma_txchan_space() returns the number of tranmit requests that can be + * posted to the specified DMA transmit channel. + * + * A negative value indicates that the value could not be determined. + */ + +static ALT_INLINE int alt_dma_txchan_space (alt_dma_txchan dma) +{ + return dma ? dma->space (dma) : -ENODEV; +} + +/* + * alt_dma_txchan_ioctl() can be used to perform device specific I/O + * operations on the indicated DMA transmit channel. For example some drivers + * support options to control the width of the transfer operations. See + * alt_dma_dev.h for the list of generic requests. + * + * A negative return value indicates failure, otherwise the interpretation + * of the return value is request specific. + */ + +static ALT_INLINE int alt_dma_txchan_ioctl (alt_dma_txchan dma, + int req, + void* arg) +{ + return dma ? dma->ioctl (dma, req, arg) : -ENODEV; +} + +/* + * alt_dma_rxchan_open() is used to obtain an "alt_dma_rxchan" descriptor for + * a DMA receive channel. The name is the name of the associated physical + * device (e.g. "/dev/dma_0"). + * + * The return value will be NULL on failure, and non-NULL otherwise. + */ + +extern alt_dma_rxchan alt_dma_rxchan_open (const char* dev); + +/* + * alt_dma_rxchan_close() is provided so that an application can notify the + * system that it has finished with a given DMA receive channel. This is only + * provided for completness. + */ + +static ALT_INLINE int alt_dma_rxchan_close (alt_dma_rxchan dma) +{ + return 0; +} + +/* + * + */ + +/* + * alt_dma_rxchan_prepare() posts a receive request to a DMA receive channel. + * + * The input arguments are: + * + * dma: the channel to use. + * data: a pointer to the location that data is to be received to. + * len: the maximum length of the data to receive. + * done: callback function that will be called once the data has been + * received. + * handle: opaque value passed to "done". + * + * The return value will be negative if the request cannot be posted, and + * zero otherwise. + */ + +static ALT_INLINE int alt_dma_rxchan_prepare (alt_dma_rxchan dma, + void* data, + alt_u32 len, + alt_rxchan_done* done, + void* handle) +{ + return dma ? dma->prepare (dma, data, len, done, handle) : -ENODEV; +} + +/* + * alt_dma_rxchan_ioctl() can be used to perform device specific I/O + * operations on the indicated DMA receive channel. For example some drivers + * support options to control the width of the transfer operations. See + * alt_dma_dev.h for the list of generic requests. + * + * A negative return value indicates failure, otherwise the interpretation + * of the return value is request specific. + */ + +static ALT_INLINE int alt_dma_rxchan_ioctl (alt_dma_rxchan dma, + int req, + void* arg) +{ + return dma ? dma->ioctl (dma, req, arg) : -ENODEV; +} + +/* + * alt_dma_rxchan_depth() returns the depth of the receive FIFO used to store + * receive requests. + */ + +static ALT_INLINE alt_u32 alt_dma_rxchan_depth(alt_dma_rxchan dma) +{ + return dma->depth; +} + +/* + * + */ + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __ALT_DMA_H__ */ diff --git a/software/qsys_tutorial_lcd3_bsp/HAL/inc/sys/alt_dma_dev.h b/software/qsys_tutorial_lcd3_bsp/HAL/inc/sys/alt_dma_dev.h new file mode 100644 index 0000000..832463d --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/HAL/inc/sys/alt_dma_dev.h @@ -0,0 +1,200 @@ +#ifndef __ALT_DMA_DEV_H__ +#define __ALT_DMA_DEV_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004-2005 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#include "priv/alt_dev_llist.h" + +#include "alt_types.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * This header contains the device driver interface for accessing DMA + * resources. See alt_dma.h for the DMA application side interface. + * + * The interface model treats a DMA transaction as being composed of two + * halves (read and write). + * + * An "alt_dma_txchan_dev" is used to describe the device associated with a + * DMA transmit channel. An "alt_dma_rxchan_dev" is used to describe the + * device associated with a DMA receive channel. + */ + +/* + * List of generic ioctl requests that may be supported by a DMA device. + * + * ALT_DMA_RX_ONLY_ON: This causes a DMA channel to operate in a mode + * where only the receiver is under software control. + * The other side reads continously from a single + * location. The address to read is the argument to + * this request. + * ALT_DMA_RX_ONLY_OFF: Return to the default mode where both the receive + * and transmit sides of the DMA can be under software + * control. + * ALT_DMA_TX_ONLY_ON: This causes a DMA channel to operate in a mode + * where only the transmitter is under software control. + * The other side writes continously to a single + * location. The address to write to is the argument to + * this request. + * ALT_DMA_TX_ONLY_OFF: Return to the default mode where both the receive + * and transmit sides of the DMA can be under software + * control. + * ALT_DMA_SET_MODE_8: Transfer data in units of 8 bits. + * ALT_DMA_SET_MODE_16: Transfer data in units of 16 bits. + * ALT_DMA_SET_MODE_32: Transfer data in units of 32 bits. + * ALT_DMA_SET_MODE_64: Transfer data in units of 64 bits. + * ALT_DMA_SET_MODE_128: Transfer data in units of 128 bits. + * ALT_DMA_GET_MODE: Get the current transfer mode. + * + * The use of the macros: ALT_DMA_TX_STREAM_ON, ALT_DMA_TX_STREAM_OFF + * ALT_DMA_RX_STREAM_OFF and ALT_DMA_RX_STREAM_ON are depreciated. You should + * instead use the macros: ALT_DMA_RX_ONLY_ON, ALT_DMA_RX_ONLY_OFF, + * ALT_DMA_TX_ONLY_ON and ALT_DMA_TX_ONLY_OFF. + */ + +#define ALT_DMA_TX_STREAM_ON (0x1) +#define ALT_DMA_TX_STREAM_OFF (0x2) +#define ALT_DMA_RX_STREAM_ON (0x3) +#define ALT_DMA_RX_STREAM_OFF (0x4) +#define ALT_DMA_SET_MODE_8 (0x5) +#define ALT_DMA_SET_MODE_16 (0x6) +#define ALT_DMA_SET_MODE_32 (0x7) +#define ALT_DMA_SET_MODE_64 (0x8) +#define ALT_DMA_SET_MODE_128 (0x9) +#define ALT_DMA_GET_MODE (0xa) + +#define ALT_DMA_RX_ONLY_ON ALT_DMA_TX_STREAM_ON +#define ALT_DMA_RX_ONLY_OFF ALT_DMA_TX_STREAM_OFF +#define ALT_DMA_TX_ONLY_ON ALT_DMA_RX_STREAM_ON +#define ALT_DMA_TX_ONLY_OFF ALT_DMA_RX_STREAM_OFF + +/* + * + */ + +typedef struct alt_dma_txchan_dev_s alt_dma_txchan_dev; +typedef struct alt_dma_rxchan_dev_s alt_dma_rxchan_dev; + +typedef alt_dma_txchan_dev* alt_dma_txchan; +typedef alt_dma_rxchan_dev* alt_dma_rxchan; + +typedef void (alt_txchan_done)(void* handle); +typedef void (alt_rxchan_done)(void* handle, void* data); + +/* + * devices that provide a DMA transmit channel are required to provide an + * instance of the "alt_dma_txchan_dev" structure. + */ + +struct alt_dma_txchan_dev_s { + alt_llist llist; /* for internal use */ + const char* name; /* name of the device instance + * (e.g. "/dev/dma_0"). + */ + int (*space) (alt_dma_txchan dma); /* returns the maximum number of + * transmit requests that can be posted + */ + int (*dma_send) (alt_dma_txchan dma, + const void* from, + alt_u32 len, + alt_txchan_done* done, + void* handle); /* post a transmit request */ + int (*ioctl) (alt_dma_txchan dma, int req, void* arg); /* perform device + * specific I/O control. + */ +}; + +/* + * devices that provide a DMA receive channel are required to provide an + * instance of the "alt_dma_rxchan_dev" structure. + */ + +struct alt_dma_rxchan_dev_s { + alt_llist list; /* for internal use */ + const char* name; /* name of the device instance + * (e.g. "/dev/dma_0"). + */ + alt_u32 depth; /* maximum number of receive requests that + * can be posted. + */ + int (*prepare) (alt_dma_rxchan dma, + void* data, + alt_u32 len, + alt_rxchan_done* done, + void* handle); /* post a receive request */ + int (*ioctl) (alt_dma_rxchan dma, int req, void* arg); /* perform device + * specific I/O control. + */ +}; + +/* + * Register a DMA transmit channel with the system. + */ + +static ALT_INLINE int alt_dma_txchan_reg (alt_dma_txchan_dev* dev) +{ + extern alt_llist alt_dma_txchan_list; + + return alt_dev_llist_insert((alt_dev_llist*) dev, &alt_dma_txchan_list); +} + +/* + * Register a DMA receive channel with the system. + */ + +static ALT_INLINE int alt_dma_rxchan_reg (alt_dma_rxchan_dev* dev) +{ + extern alt_llist alt_dma_rxchan_list; + + return alt_dev_llist_insert((alt_dev_llist*) dev, &alt_dma_rxchan_list); +} + +/* + * + */ + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __ALT_DMA_DEV_H__ */ diff --git a/software/qsys_tutorial_lcd3_bsp/HAL/inc/sys/alt_driver.h b/software/qsys_tutorial_lcd3_bsp/HAL/inc/sys/alt_driver.h new file mode 100644 index 0000000..eb0f23b --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/HAL/inc/sys/alt_driver.h @@ -0,0 +1,168 @@ +#ifndef __ALT_DRIVER_H__ +#define __ALT_DRIVER_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/* + * Macros used to access a driver without HAL file descriptors. + */ + +/* + * ALT_MODULE_CLASS + * + * This macro returns the module class name for the specified module instance. + * It uses information in the system.h file. + * Neither the instance name or class name are quoted (so that they can + * be used with other pre-processor macros). + * + * Example: + * Assume the design has an instance of an altera_avalon_uart called uart1. + * Calling ALT_MODULE_CLASS(uart1) returns altera_avalon_uart. + */ + +#define ALT_MODULE_CLASS(instance) ALT_MODULE_CLASS_ ## instance + + +/* + * ALT_DRIVER_FUNC_NAME + * + * --> instance Instance name. + * --> func Function name. + * + * This macro returns the device driver function name of the specified + * module instance for the specified function name. + * + * Example: + * Assume the design has an instance of an altera_avalon_uart called uart1. + * Calling ALT_DRIVER_FUNC_NAME(uart1, write) returns + * altera_avalon_uart_write. + */ + +#define ALT_DRIVER_FUNC_NAME(instance, func) \ + ALT_DRIVER_FUNC_NAME1(ALT_MODULE_CLASS(instance), func) +#define ALT_DRIVER_FUNC_NAME1(module_class, func) \ + ALT_DRIVER_FUNC_NAME2(module_class, func) +#define ALT_DRIVER_FUNC_NAME2(module_class, func) \ + module_class ## _ ## func + +/* + * ALT_DRIVER_STATE_STRUCT + * + * --> instance Instance name. + * + * This macro returns the device driver state type name of the specified + * module instance. + * + * Example: + * Assume the design has an instance of an altera_avalon_uart called uart1. + * Calling ALT_DRIVER_STATE_STRUCT(uart1) returns: + * struct altera_avalon_uart_state_s + * + * Note that the ALT_DRIVER_FUNC_NAME macro is used even though "state" isn't + * really a function but it does match the required naming convention. + */ +#define ALT_DRIVER_STATE_STRUCT(instance) \ + struct ALT_DRIVER_FUNC_NAME(instance, state_s) + +/* + * ALT_DRIVER_STATE + * + * --> instance Instance name. + * + * This macro returns the device driver state name of the specified + * module instance. + * + * Example: + * Assume the design has an instance of an altera_avalon_uart called uart1. + * Calling ALT_DRIVER_STATE(uart1) returns uart1. + */ +#define ALT_DRIVER_STATE(instance) instance + +/* + * ALT_DRIVER_WRITE + * + * --> instance Instance name. + * --> buffer Write buffer. + * --> len Length of write buffer data. + * --> flags Control flags (e.g. O_NONBLOCK) + * + * This macro calls the "write" function of the specified driver instance. + */ + +#define ALT_DRIVER_WRITE_EXTERNS(instance) \ + extern ALT_DRIVER_STATE_STRUCT(instance) ALT_DRIVER_STATE(instance); \ + extern int ALT_DRIVER_FUNC_NAME(instance, write) \ + (ALT_DRIVER_STATE_STRUCT(instance) *, const char *, int, int); + +#define ALT_DRIVER_WRITE(instance, buffer, len, flags) \ + ALT_DRIVER_FUNC_NAME(instance, write)(&ALT_DRIVER_STATE(instance), buffer, len, flags) + + +/* + * ALT_DRIVER_READ + * + * --> instance Instance name. + * <-- buffer Read buffer. + * --> len Length of read buffer. + * --> flags Control flags (e.g. O_NONBLOCK) + * + * This macro calls the "read" function of the specified driver instance. + */ + +#define ALT_DRIVER_READ_EXTERNS(instance) \ + extern ALT_DRIVER_STATE_STRUCT(instance) ALT_DRIVER_STATE(instance); \ + extern int ALT_DRIVER_FUNC_NAME(instance, read) \ + (ALT_DRIVER_STATE_STRUCT(instance) *, const char *, int, int); + +#define ALT_DRIVER_READ(instance, buffer, len, flags) \ + ALT_DRIVER_FUNC_NAME(instance, read)(&ALT_DRIVER_STATE(instance), buffer, len, flags) + +/* + * ALT_DRIVER_IOCTL + * + * --> instance Instance name. + * --> req ioctl request (e.g. TIOCSTIMEOUT) + * --> arg Optional argument (void*) + * + * This macro calls the "ioctl" function of the specified driver instance + */ + +#define ALT_DRIVER_IOCTL_EXTERNS(instance) \ + extern ALT_DRIVER_STATE_STRUCT(instance) ALT_DRIVER_STATE(instance); \ + extern int ALT_DRIVER_FUNC_NAME(instance, ioctl) \ + (ALT_DRIVER_STATE_STRUCT(instance) *, int, void*); + +#define ALT_DRIVER_IOCTL(instance, req, arg) \ + ALT_DRIVER_FUNC_NAME(instance, ioctl)(&ALT_DRIVER_STATE(instance), req, arg) + +#endif /* __ALT_DRIVER_H__ */ diff --git a/software/qsys_tutorial_lcd3_bsp/HAL/inc/sys/alt_errno.h b/software/qsys_tutorial_lcd3_bsp/HAL/inc/sys/alt_errno.h new file mode 100644 index 0000000..4d3e50f --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/HAL/inc/sys/alt_errno.h @@ -0,0 +1,87 @@ +#ifndef __ALT_ERRNO_H__ +#define __ALT_ERRNO_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +/* + * errno is defined in so that it uses the thread local version + * stored in the location pointed to by "_impure_ptr". This means that the + * accesses to errno within the HAL library can cause the entirety of + * of the structure pointed to by "_impure_ptr" to be added to the + * users application. This can be undesirable in very small footprint systems. + * + * To avoid this happening, the HAL uses the macro ALT_ERRNO, defined below, + * to access errno, rather than accessing it directly. This macro will only + * use the thread local version if some other code has already caused it to be + * included into the system, otherwise it will use the global errno value. + * + * This causes a slight increases in code size where errno is accessed, but + * can lead to significant overall benefits in very small systems. The + * increase is inconsequential when compared to the size of the structure + * pointed to by _impure_ptr. + * + * Note that this macro accesses __errno() using an externally declared + * function pointer (alt_errno). This is done so that the function call uses the + * subroutine call instruction via a register rather than an immediate address. + * This is important in the case that the code has been linked for a high + * address, but __errno() is not being used. In this case the weak linkage + * would have resulted in the instruction: "call 0" which would fail to link. + */ + +extern int* (*alt_errno) (void); + +/* Must define this so that values such as EBADFD are defined in errno.h. */ +#define __LINUX_ERRNO_EXTENSIONS__ + +#include + +#include "alt_types.h" + +#undef errno + +extern int errno; + +static ALT_INLINE int* alt_get_errno(void) +{ + return ((alt_errno) ? alt_errno() : &errno); +} + +#define ALT_ERRNO *alt_get_errno() + +#endif /* __ALT_ERRNO_H__ */ diff --git a/software/qsys_tutorial_lcd3_bsp/HAL/inc/sys/alt_exceptions.h b/software/qsys_tutorial_lcd3_bsp/HAL/inc/sys/alt_exceptions.h new file mode 100644 index 0000000..3576a52 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/HAL/inc/sys/alt_exceptions.h @@ -0,0 +1,127 @@ +#ifndef __ALT_EXCEPTIONS_H__ +#define __ALT_EXCEPTIONS_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2008 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ +#include "alt_types.h" +#include "system.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * This file defines instruction-generated exception handling and registry + * API, exception type enumeration, and handler return value enumeration for + * Nios II. + */ + +/* + * The following enumeration describes the value in the CPU EXCEPTION + * register CAUSE bit field. Not all exception types will cause the + * processor to go to the exception vector; these are provided for + * reference. + */ +enum alt_exception_cause_e { + /* Exeption causes that will cause jump to exception vector */ + NIOS2_EXCEPTION_INTERRUPT = 2, + NIOS2_EXCEPTION_TRAP_INST = 3, + NIOS2_EXCEPTION_UNIMPLEMENTED_INST = 4, + NIOS2_EXCEPTION_ILLEGAL_INST = 5, + NIOS2_EXCEPTION_MISALIGNED_DATA_ADDR = 6, + NIOS2_EXCEPTION_MISALIGNED_TARGET_PC = 7, + NIOS2_EXCEPTION_DIVISION_ERROR = 8, + NIOS2_EXCEPTION_SUPERVISOR_ONLY_INST_ADDR = 9, + NIOS2_EXCEPTION_SUPERVISOR_ONLY_INST = 10, + NIOS2_EXCEPTION_SUPERVISOR_ONLY_DATA_ADDR = 11, + NIOS2_EXCEPTION_TLB_MISS = 12, + NIOS2_EXCEPTION_TLB_EXECUTE_PERM_VIOLATION = 13, + NIOS2_EXCEPTION_MPU_INST_REGION_VIOLATION = 16, + + /* Exception causes that will NOT cause a jump to exception vector */ + NIOS2_EXCEPTION_RESET = 0, + NIOS2_EXCEPTION_CPU_ONLY_RESET_REQUEST = 1, + NIOS2_EXCEPTION_TLB_READ_PERM_VIOLATION = 14, + NIOS2_EXCEPTION_TLB_WRITE_PERM_VIOLATION = 15, + NIOS2_EXCEPTION_MPU_DATA_REGION_VIOLATION = 17, + /* + * This value is passed to an exception handler's cause argument if + * "extra exceptions" information (EXECPTION) register is not + * present in the processor hardware configuration. + */ + NIOS2_EXCEPTION_CAUSE_NOT_PRESENT = -1 +}; +typedef enum alt_exception_cause_e alt_exception_cause; + +/* + * These define valid return values for a user-defined instruction-generated + * exception handler. The handler should return one of these to indicate + * whether to re-issue the instruction that triggered the exception, or to + * skip it. + */ +enum alt_exception_result_e { + NIOS2_EXCEPTION_RETURN_REISSUE_INST = 0, + NIOS2_EXCEPTION_RETURN_SKIP_INST = 1 +}; +typedef enum alt_exception_result_e alt_exception_result; + +/* + * alt_instruction_exception_register() can be used to register an exception + * handler for instruction-generated exceptions that are not handled by the + * built-in exception handler (i.e. for interrupts). + * + * The registry API is optionally enabled through the "Enable + * Instruction-related Exception API" HAL BSP setting, which will + * define the macro below. + */ +#ifdef ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API +void alt_instruction_exception_register ( + alt_exception_result (*exception_handler)( + alt_exception_cause cause, + alt_u32 exception_pc, + alt_u32 bad_addr) ); +#endif /*ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API */ + +/* + * alt_exception_cause_generated_bad_addr() indicates whether a particular + * exception cause value was from an exception-type that generated a valid + * address in the BADADDR register. The contents of BADADDR is passed to + * a user-registered exception handler in all cases, whether valid or not. + * This routine should be called to validate the bad_addr argument to + * your exception handler. + */ +int alt_exception_cause_generated_bad_addr(alt_exception_cause cause); + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __ALT_EXCEPTIONS_H__ */ diff --git a/software/qsys_tutorial_lcd3_bsp/HAL/inc/sys/alt_flash.h b/software/qsys_tutorial_lcd3_bsp/HAL/inc/sys/alt_flash.h new file mode 100644 index 0000000..527328d --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/HAL/inc/sys/alt_flash.h @@ -0,0 +1,166 @@ +#ifndef __ALT_FLASH_H__ +#define __ALT_FLASH_H__ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +/****************************************************************************** +* * +* Alt_flash.h - User interface for flash code * +* * +* Use this interface to avoid being exposed to the internals of the device * +* driver architecture. If you chose to use the flash driver internal * +* structures we don't guarantee not to change them * +* * +* Author PRR * +* * +******************************************************************************/ + + + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +#include "alt_types.h" +#include "alt_flash_types.h" +#include "alt_flash_dev.h" +#include "sys/alt_cache.h" + +alt_flash_fd* alt_flash_open_dev(const char* name); +void alt_flash_close_dev(alt_flash_fd* fd ); + +/* + * alt_write_flash + * + * Program a buffer into flash. + * + * This routine erases all the affected erase blocks (if necessary) + * and then programs the data. However it does not read the data out first + * and preserve and none overwritten data, because this would require very + * large buffers on the target. If you need + * that functionality use the functions below. + */ +static __inline__ int __attribute__ ((always_inline)) alt_write_flash( + alt_flash_fd* fd, + int offset, + const void* src_addr, + int length ) +{ + return fd->write( fd, offset, src_addr, length ); +} + +/* + * alt_read_flash + * + * Read a block of flash for most flashes this is just memcpy + * it's here for completeness in case we need it for some serial flash device + * + */ +static __inline__ int __attribute__ ((always_inline)) alt_read_flash( + alt_flash_fd* fd, int offset, + void* dest_addr, int length ) +{ + return fd->read( fd, offset, dest_addr, length ); +} + +/* + * alt_get_flash_info + * + * Return the information on the flash sectors. + * + */ +static __inline__ int __attribute__ ((always_inline)) alt_get_flash_info( + alt_flash_fd* fd, flash_region** info, + int* number_of_regions) +{ + return fd->get_info( fd, info, number_of_regions); +} + +/* + * alt_erase_flash_block + * + * Erase a particular erase block, pass in the offset to the start of + * the block and it's size + */ +static __inline__ int __attribute__ ((always_inline)) alt_erase_flash_block( + alt_flash_fd* fd, int offset, int length) +{ + int ret_code; + ret_code = fd->erase_block( fd, offset ); + + if(!ret_code) + alt_dcache_flush((alt_u8*)fd->base_addr + offset, length); + + return ret_code; +} + +/* + * alt_write_flash_block + * + * Write a particular flash block, block_offset is the offset + * (from the base of flash) to start of the block + * data_offset is the offset (from the base of flash) + * where you wish to start programming + * + * NB this function DOES NOT check that you are only writing a single + * block of data as that would slow down this function. + * + * Use alt_write_flash if you want that level of error checking. + */ + +static __inline__ int __attribute__ ((always_inline)) alt_write_flash_block( + alt_flash_fd* fd, int block_offset, + int data_offset, + const void *data, int length) +{ + + int ret_code; + ret_code = fd->write_block( fd, block_offset, data_offset, data, length ); + + if(!ret_code) + alt_dcache_flush((alt_u8*)fd->base_addr + data_offset, length); + + return ret_code; +} + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_FLASH_H__ */ diff --git a/software/qsys_tutorial_lcd3_bsp/HAL/inc/sys/alt_flash_dev.h b/software/qsys_tutorial_lcd3_bsp/HAL/inc/sys/alt_flash_dev.h new file mode 100644 index 0000000..8bab601 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/HAL/inc/sys/alt_flash_dev.h @@ -0,0 +1,98 @@ +#ifndef __ALT_FLASH_DEV_H__ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +/****************************************************************************** +* * +* Alt_flash_dev.h - Generic Flash device interfaces * +* * +* Author PRR * +* * +******************************************************************************/ +#define __ALT_FLASH_DEV_H__ + +#include "alt_flash_types.h" +#include "sys/alt_llist.h" +#include "priv/alt_dev_llist.h" + +#include "alt_types.h" + +typedef struct alt_flash_dev alt_flash_dev; +typedef alt_flash_dev alt_flash_fd; + +static ALT_INLINE int alt_flash_device_register( alt_flash_fd* fd) +{ + extern alt_llist alt_flash_dev_list; + + return alt_dev_llist_insert ((alt_dev_llist*) fd, &alt_flash_dev_list); +} + +typedef alt_flash_dev* (*alt_flash_open)(alt_flash_dev* flash, + const char* name ); +typedef int (*alt_flash_close)(alt_flash_dev* flash_info); + +typedef int (*alt_flash_write)( alt_flash_dev* flash, int offset, + const void* src_addr, int length ); + +typedef int (*alt_flash_get_flash_info)( alt_flash_dev* flash, flash_region** info, + int* number_of_regions); +typedef int (*alt_flash_write_block)( alt_flash_dev* flash, int block_offset, + int data_offset, const void* data, + int length); +typedef int (*alt_flash_erase_block)( alt_flash_dev* flash, int offset); +typedef int (*alt_flash_read)(alt_flash_dev* flash, int offset, + void* dest_addr, int length ); + +struct alt_flash_dev +{ + alt_llist llist; + const char* name; + alt_flash_open open; + alt_flash_close close; + alt_flash_write write; + alt_flash_read read; + alt_flash_get_flash_info get_info; + alt_flash_erase_block erase_block; + alt_flash_write_block write_block; + void* base_addr; + int length; + int number_of_regions; + flash_region region_info[ALT_MAX_NUMBER_OF_FLASH_REGIONS]; +}; + +#endif /* __ALT_FLASH_DEV_H__ */ diff --git a/software/qsys_tutorial_lcd3_bsp/HAL/inc/sys/alt_flash_types.h b/software/qsys_tutorial_lcd3_bsp/HAL/inc/sys/alt_flash_types.h new file mode 100644 index 0000000..884cbf8 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/HAL/inc/sys/alt_flash_types.h @@ -0,0 +1,64 @@ +#ifndef __ALT_FLASH_TYPES_H__ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +/****************************************************************************** +* * +* Alt_flash_types.h - Some generic types and defines used by the flash code * +* * +* Author PRR * +* * +******************************************************************************/ +#define __ALT_FLASH_TYPES_H__ + +#ifndef ALT_MAX_NUMBER_OF_FLASH_REGIONS +#define ALT_MAX_NUMBER_OF_FLASH_REGIONS 8 +#endif /* ALT_MAX_NUMBER_OF_FLASH_REGIONS */ + +/* + * Description of a single Erase region + */ +typedef struct flash_region +{ + int offset; + int region_size; + int number_of_blocks; + int block_size; +}flash_region; + +#endif /* __ALT_FLASH_TYPES_H__ */ diff --git a/software/qsys_tutorial_lcd3_bsp/HAL/inc/sys/alt_irq.h b/software/qsys_tutorial_lcd3_bsp/HAL/inc/sys/alt_irq.h new file mode 100644 index 0000000..6666e52 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/HAL/inc/sys/alt_irq.h @@ -0,0 +1,245 @@ +#ifndef __ALT_IRQ_H__ +#define __ALT_IRQ_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2009 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/* + * alt_irq.h is the Nios II specific implementation of the interrupt controller + * interface. + * + * Nios II includes optional support for an external interrupt controller. + * When an external controller is present, the "Enhanced" interrupt API + * must be used to manage individual interrupts. The enhanced API also + * supports the processor's internal interrupt controller. Certain API + * members are accessible from either the "legacy" or "enhanced" interrpt + * API. + * + * Regardless of which API is in use, this file should be included by + * application code and device drivers that register ISRs or manage interrpts. + */ +#include + +#include "nios2.h" +#include "alt_types.h" +#include "system.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * Macros used by alt_irq_enabled + */ +#define ALT_IRQ_ENABLED 1 +#define ALT_IRQ_DISABLED 0 + +/* + * Number of available interrupts in internal interrupt controller. + */ +#define ALT_NIRQ NIOS2_NIRQ + +/* + * Used by alt_irq_disable_all() and alt_irq_enable_all(). + */ +typedef int alt_irq_context; + +/* ISR Prototype */ +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT +typedef void (*alt_isr_func)(void* isr_context); +#else +typedef void (*alt_isr_func)(void* isr_context, alt_u32 id); +#endif + +/* + * The following protypes and routines are supported by both + * the enhanced and legacy interrupt APIs + */ + +/* + * alt_irq_enabled can be called to determine if the processor's global + * interrupt enable is asserted. The return value is zero if interrupts + * are disabled, and non-zero otherwise. + * + * Whether the internal or external interrupt controller is present, + * individual interrupts may still be disabled. Use the other API to query + * a specific interrupt. + */ +static ALT_INLINE int ALT_ALWAYS_INLINE alt_irq_enabled (void) +{ + int status; + + NIOS2_READ_STATUS (status); + + return status & NIOS2_STATUS_PIE_MSK; +} + +/* + * alt_irq_disable_all() + * + * This routine inhibits all interrupts by negating the status register PIE + * bit. It returns the previous contents of the CPU status register (IRQ + * context) which can be used to restore the status register PIE bit to its + * state before this routine was called. + */ +static ALT_INLINE alt_irq_context ALT_ALWAYS_INLINE + alt_irq_disable_all (void) +{ + alt_irq_context context; + + NIOS2_READ_STATUS (context); + + NIOS2_WRITE_STATUS (context & ~NIOS2_STATUS_PIE_MSK); + + return context; +} + +/* + * alt_irq_enable_all() + * + * Enable all interrupts that were previously disabled by alt_irq_disable_all() + * + * This routine accepts a context to restore the CPU status register PIE bit + * to the state prior to a call to alt_irq_disable_all(). + + * In the case of nested calls to alt_irq_disable_all()/alt_irq_enable_all(), + * this means that alt_irq_enable_all() does not necessarily re-enable + * interrupts. + * + * This routine will perform a read-modify-write sequence to restore only + * status.PIE if the processor is configured with options that add additional + * writeable status register bits. These include the MMU, MPU, the enhanced + * interrupt controller port, and shadow registers. Otherwise, as a performance + * enhancement, status is overwritten with the prior context. + */ +static ALT_INLINE void ALT_ALWAYS_INLINE + alt_irq_enable_all (alt_irq_context context) +{ +#if (NIOS2_NUM_OF_SHADOW_REG_SETS > 0) || (defined NIOS2_EIC_PRESENT) || \ + (defined NIOS2_MMU_PRESENT) || (defined NIOS2_MPU_PRESENT) + alt_irq_context status; + + NIOS2_READ_STATUS (status); + + status &= ~NIOS2_STATUS_PIE_MSK; + status |= (context & NIOS2_STATUS_PIE_MSK); + + NIOS2_WRITE_STATUS (status); +#else + NIOS2_WRITE_STATUS (context); +#endif +} + +/* + * The function alt_irq_init() is defined within the auto-generated file + * alt_sys_init.c. This function calls the initilization macros for all + * interrupt controllers in the system at config time, before any other + * non-interrupt controller driver is initialized. + * + * The "base" parameter is ignored and only present for backwards-compatibility. + * It is recommended that NULL is passed in for the "base" parameter. + */ +extern void alt_irq_init (const void* base); + +/* + * alt_irq_cpu_enable_interrupts() enables the CPU to start taking interrupts. + */ +static ALT_INLINE void ALT_ALWAYS_INLINE + alt_irq_cpu_enable_interrupts () +{ + NIOS2_WRITE_STATUS(NIOS2_STATUS_PIE_MSK +#if defined(NIOS2_EIC_PRESENT) && (NIOS2_NUM_OF_SHADOW_REG_SETS > 0) + | NIOS2_STATUS_RSIE_MSK +#endif + ); +} + + +/* + * Prototypes for the enhanced interrupt API. + */ +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT +/* + * alt_ic_isr_register() can be used to register an interrupt handler. If the + * function is succesful, then the requested interrupt will be enabled upon + * return. + */ +extern int alt_ic_isr_register(alt_u32 ic_id, + alt_u32 irq, + alt_isr_func isr, + void *isr_context, + void *flags); + +/* + * alt_ic_irq_enable() and alt_ic_irq_disable() enable/disable a specific + * interrupt by using IRQ port and interrupt controller instance. + */ +int alt_ic_irq_enable (alt_u32 ic_id, alt_u32 irq); +int alt_ic_irq_disable(alt_u32 ic_id, alt_u32 irq); + + /* + * alt_ic_irq_enabled() indicates whether a specific interrupt, as + * specified by IRQ port and interrupt controller instance is enabled. + */ +alt_u32 alt_ic_irq_enabled(alt_u32 ic_id, alt_u32 irq); + +#else +/* + * Prototypes for the legacy interrupt API. + */ +#include "priv/alt_legacy_irq.h" +#endif + + +/* + * alt_irq_pending() returns a bit list of the current pending interrupts. + * This is used by alt_irq_handler() to determine which registered interrupt + * handlers should be called. + * + * This routine is only available for the Nios II internal interrupt + * controller. + */ +#ifndef NIOS2_EIC_PRESENT +static ALT_INLINE alt_u32 ALT_ALWAYS_INLINE alt_irq_pending (void) +{ + alt_u32 active; + + NIOS2_READ_IPENDING (active); + + return active; +} +#endif + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __ALT_IRQ_H__ */ diff --git a/software/qsys_tutorial_lcd3_bsp/HAL/inc/sys/alt_irq_entry.h b/software/qsys_tutorial_lcd3_bsp/HAL/inc/sys/alt_irq_entry.h new file mode 100644 index 0000000..e2008d9 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/HAL/inc/sys/alt_irq_entry.h @@ -0,0 +1,39 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/* + * This file pulls in the IRQ entry assembler and C code, which is only + * required if there are any interruptes in the system. + */ + +__asm__( "\n\t.globl alt_irq_entry" ); + +__asm__( "\n\t.globl alt_irq_handler" ); + diff --git a/software/qsys_tutorial_lcd3_bsp/HAL/inc/sys/alt_license_reminder_ucosii.h b/software/qsys_tutorial_lcd3_bsp/HAL/inc/sys/alt_license_reminder_ucosii.h new file mode 100644 index 0000000..2fe649c --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/HAL/inc/sys/alt_license_reminder_ucosii.h @@ -0,0 +1,77 @@ +#ifndef __ALT_LICENSE_REMINDER_UCOSII_H__ +#define __ALT_LICENSE_REMINDER_UCOSII_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#include + +#define ALT_LICENSE_REMINDER_UCOSII_STRING \ + "============== Software License Reminder ===============\n" \ + "\n" \ + "uC/OS-II is provided in source form for FREE evaluation,\n" \ + "for educational use, or for peaceful research. If you\n" \ + "plan on using uC/OS-II in a commercial product you need\n" \ + "to contact Micrium to properly license its use in your\n" \ + "product. Micrium provides ALL the source code on the\n" \ + "Altera distribution for your convenience and to help you\n" \ + "experience uC/OS-II. The fact that the source is provided\n" \ + "does NOT mean that you can use it without paying a\n" \ + "licensing fee. Please help us continue to provide the\n" \ + "Embedded community with the finest software available.\n" \ + "Your honesty is greatly appreciated.\n" \ + "\n" \ + "Please contact:\n" \ + "\n" \ + "M I C R I U M\n" \ + "949 Crestview Circle\n" \ + "Weston, FL 33327-1848\n" \ + "U.S.A.\n" \ + "\n" \ + "Phone : +1 954 217 2036\n" \ + "FAX : +1 954 217 2037\n" \ + "WEB : www.micrium.com\n" \ + "E-mail: Sales@Micrium.com\n" \ + "\n" \ + "========================================================\n" + +#define alt_license_reminder_ucosii() puts(ALT_LICENSE_REMINDER_UCOSII_STRING) + + +#endif /* __ALT_LICENSE_REMINDER_UCOSII_H__ */ + diff --git a/software/qsys_tutorial_lcd3_bsp/HAL/inc/sys/alt_llist.h b/software/qsys_tutorial_lcd3_bsp/HAL/inc/sys/alt_llist.h new file mode 100644 index 0000000..46f81ce --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/HAL/inc/sys/alt_llist.h @@ -0,0 +1,123 @@ +#ifndef __ALT_LIST_H__ +#define __ALT_LIST_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#include "alt_types.h" + +/* + * alt_llist.h defines structures and functions for use in manipulating linked + * lists. A list is considered to be constructed from a chain of objects of + * type alt_llist, with one object being defined to be the head element. + * + * A list is considered to be empty if it only contains the head element. + */ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * alt_llist is the structure used to represent an element within a linked + * list. + */ + +typedef struct alt_llist_s alt_llist; + +struct alt_llist_s { + alt_llist* next; /* Pointer to the next element in the list. */ + alt_llist* previous; /* Pointer to the previous element in the list. */ +}; + +/* + * ALT_LLIST_HEAD is a macro that can be used to create the head of a new + * linked list. This is named "head". The head element is initialised to + * represent an empty list. + */ + +#define ALT_LLIST_HEAD(head) alt_llist head = {&head, &head} + +/* + * ALT_LLIST_ENTRY is a macro used to define an uninitialised linked list + * entry. This is used to reserve space in structure initialisation for + * structures that inherit form alt_llist. + */ + +#define ALT_LLIST_ENTRY {0, 0} + +/* + * alt_llist_insert() insert adds the linked list entry "entry" as the + * first entry in the linked list "list". "list" is the list head element. + */ + +static ALT_INLINE void ALT_ALWAYS_INLINE alt_llist_insert(alt_llist* list, + alt_llist* entry) +{ + entry->previous = list; + entry->next = list->next; + + list->next->previous = entry; + list->next = entry; +} + +/* + * alt_llist_remove() is called to remove an element from a linked list. The + * input argument is the element to remove. + */ + +static ALT_INLINE void ALT_ALWAYS_INLINE alt_llist_remove(alt_llist* entry) +{ + entry->next->previous = entry->previous; + entry->previous->next = entry->next; + + /* + * Set the entry to point to itself, so that any further calls to + * alt_llist_remove() are harmless. + */ + + entry->previous = entry; + entry->next = entry; +} + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_LLIST_H__ */ diff --git a/software/qsys_tutorial_lcd3_bsp/HAL/inc/sys/alt_load.h b/software/qsys_tutorial_lcd3_bsp/HAL/inc/sys/alt_load.h new file mode 100644 index 0000000..432e9f2 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/HAL/inc/sys/alt_load.h @@ -0,0 +1,78 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2005 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "alt_types.h" + +/* + * This macro is used to load code/data from its load address to its + * execution address for a given section. The section name is the input + * argument. Note that a leading '.' is assumed in the name. For example + * to load the section .onchip_ram, use: + * + * ALT_LOAD_SECTION_BY_NAME(onchip_ram); + * + * This requires that the apropriate linker symbols have been generated + * for the section in question. This will be the case if you are using the + * default linker script. + */ + +#define ALT_LOAD_SECTION_BY_NAME(name) \ + { \ + extern void _alt_partition_##name##_start; \ + extern void _alt_partition_##name##_end; \ + extern void _alt_partition_##name##_load_addr; \ + \ + alt_load_section(&_alt_partition_##name##_load_addr, \ + &_alt_partition_##name##_start, \ + &_alt_partition_##name##_end); \ + } + +/* + * Function used to load an individual section from flash to RAM. + * + * There is an implicit assumption here that the linker script will ensure + * that all sections are word aligned. + * + */ + +static void ALT_INLINE alt_load_section (alt_u32* from, + alt_u32* to, + alt_u32* end) +{ + if (to != from) + { + while( to != end ) + { + *to++ = *from++; + } + } +} diff --git a/software/qsys_tutorial_lcd3_bsp/HAL/inc/sys/alt_log_printf.h b/software/qsys_tutorial_lcd3_bsp/HAL/inc/sys/alt_log_printf.h new file mode 100644 index 0000000..c15ca05 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/HAL/inc/sys/alt_log_printf.h @@ -0,0 +1,349 @@ +/* alt_log_printf.h + * + * ALT_LOG is designed to provide extra logging/debugging messages from HAL + * through a different port than stdout. It is enabled by the ALT_LOG_ENABLE + * define, which needs to supplied at compile time. When logging is turned off, + * code size is unaffected. Thus, this should be transparent to the user + * when it is not actively turned on, and should not affect projects in any way. + * + * There are macros sprinkled within different components, such as the jtag uart + * and timer, in the HAL code. They are always named ALT_LOG_, and can be + * safely ignored if ALT_LOG is turned off. + * + * To turn on ALT_LOG, ALT_LOG_ENABLE must be defined, and ALT_LOG_PORT_TYPE and + * ALT_LOG_PORT_BASE must be set in system.h. This is done through editing + * .ptf, by editing the alt_log_port_type & alt_log_port_base settings. + * See the documentation html file for examples. + * + * When it is turned on, it will output extra HAL messages to a port specified + * in system.h. This can be a UART or JTAG UART port. By default it will + * output boot messages, detailing every step of the boot process. + * + * Extra logging is designed to be enabled by flags, which are defined in + * alt_log_printf.c. The default value is that all flags are off, so only the + * boot up logging messages show up. ALT_LOG_FLAGS can be set to enable certain + * groupings of flags, and that grouping is done in this file. Each flag can + * also be overridden with a -D at compile time. + * + * This header file includes the necessary prototypes for using the alt_log + * functions. It also contains all the macros that are used to remove the code + * from alt log is turned off. Also, the macros in other HAL files are defined + * here at the bottom. These macros all call some C function that is in + * alt_log_printf.c. + * + * The logging has functions for printing in C (ALT_LOG_PRINTF) and in assembly + * (ALT_LOG_PUTS). This was needed because the assembly printing occurs before + * the device is initialized. The assembly function corrupts register R4-R7, + * which are not used in the normal boot process. For this reason, do not call + * the assembly function in C. + * + * author: gkwan + */ + + +#ifndef __ALT_LOG_PRINTF_H__ +#define __ALT_LOG_PRINTF_H__ + +#include + +/* Global switch to turn on logging functions */ +#ifdef ALT_LOG_ENABLE + + /* ALT_LOG_PORT_TYPE values as defined in system.h. They are defined as + * numbers here first becasue the C preprocessor does not handle string + * comparisons. */ + #define ALTERA_AVALON_JTAG_UART 1 + #define ALTERA_AVALON_UART 0 + + /* If this .h file is included by an assembly file, skip over include files + * that won't compile in assembly. */ + #ifndef ALT_ASM_SRC + #include + #include "sys/alt_alarm.h" + #include "sys/alt_dev.h" + #ifdef __ALTERA_AVALON_JTAG_UART + #include "altera_avalon_jtag_uart.h" + #endif + #endif /* ALT_ASM_SRC */ + + /* These are included for the port register offsets and masks, needed + * to write to the port. Only include if the port type is set correctly, + * otherwise error. If alt_log is turned on and the port to output to is + * incorrect or does not exist, then should exit. */ + #if ALT_LOG_PORT_TYPE == ALTERA_AVALON_JTAG_UART + #ifdef __ALTERA_AVALON_JTAG_UART + #include + #else + #error ALT_LOG: JTAG_UART port chosen, but no JTAG_UART in system. + #endif + #elif ALT_LOG_PORT_TYPE == ALTERA_AVALON_UART + #ifdef __ALTERA_AVALON_UART + #include + #else + #error ALT_LOG: UART Port chosen, but no UART in system. + #endif + #else + #error ALT_LOG: alt_log_port_type declaration invalid! + #endif + + /* ALT_LOG_ENABLE turns on the basic printing function */ + #define ALT_LOG_PRINTF(...) do {alt_log_printf_proc(__VA_ARGS__);} while (0) + + /* Assembly macro for printing in assembly, calls tx_log_str + * which is in alt_log_macro.S. + * If alt_log_boot_on_flag is 0, skips the printing */ + #define ALT_LOG_PUTS(str) movhi r4, %hiadj(alt_log_boot_on_flag) ; \ + addi r4, r4, %lo(alt_log_boot_on_flag) ; \ + ldwio r5, 0(r4) ; \ + beq r0, r5, 0f ; \ + movhi r4, %hiadj(str) ; \ + addi r4, r4, %lo(str) ; \ + call tx_log_str ; \ + 0: + + /* These defines are here to faciliate the use of one output function + * (alt_log_txchar) to print to both the JTAG UART or the UART. Depending + * on the port type, the status register, read mask, and output register + * are set to the appropriate value for the port. */ + #if ALT_LOG_PORT_TYPE == ALTERA_AVALON_JTAG_UART + #define ALT_LOG_PRINT_REG_RD IORD_ALTERA_AVALON_JTAG_UART_CONTROL + #define ALT_LOG_PRINT_MSK ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_MSK + #define ALT_LOG_PRINT_TXDATA_WR IOWR_ALTERA_AVALON_JTAG_UART_DATA + #define ALT_LOG_PRINT_REG_OFFSET (ALTERA_AVALON_JTAG_UART_CONTROL_REG*0x4) + #define ALT_LOG_PRINT_TXDATA_REG_OFFSET (ALTERA_AVALON_JTAG_UART_DATA_REG*0x4) + #elif ALT_LOG_PORT_TYPE == ALTERA_AVALON_UART + #define ALT_LOG_PRINT_REG_RD IORD_ALTERA_AVALON_UART_STATUS + #define ALT_LOG_PRINT_MSK ALTERA_AVALON_UART_STATUS_TRDY_MSK + #define ALT_LOG_PRINT_TXDATA_WR IOWR_ALTERA_AVALON_UART_TXDATA + #define ALT_LOG_PRINT_REG_OFFSET (ALTERA_AVALON_UART_STATUS_REG*0x4) + #define ALT_LOG_PRINT_TXDATA_REG_OFFSET (ALTERA_AVALON_UART_TXDATA_REG*0x4) + #endif /* ALT_LOG_PORT */ + + /* Grouping of flags via ALT_LOG_FLAGS. Each specific flag can be set via + * -D at compile time, or else they'll be set to a default value according + * to ALT_LOG_FLAGS. ALT_LOG_FLAGS = 0 or not set is the default, where + * only the boot messages will be printed. As ALT_LOG_FLAGS increase, they + * increase in intrusiveness to the program, and will affect performance. + * + * Flag Level 1 - turns on system clock and JTAG UART startup status + * 2 - turns on write echo and JTAG_UART alarm (periodic report) + * 3 - turns on JTAG UART ISR logging - will slow performance + * significantly. + * -1 - All logging output is off, but if ALT_LOG_ENABLE is + * defined all logging function is built and code size + * remains constant + * + * Flag settings - 1 = on, 0 = off. */ + + /* This flag turns on "boot" messages for printing. This includes messages + * during crt0.S, then alt_main, and finally alt_exit. */ + #ifndef ALT_LOG_BOOT_ON_FLAG_SETTING + #if ALT_LOG_FLAGS == 1 + #define ALT_LOG_BOOT_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == 2 + #define ALT_LOG_BOOT_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == 3 + #define ALT_LOG_BOOT_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == -1 /* silent mode */ + #define ALT_LOG_BOOT_ON_FLAG_SETTING 0x0 + #else /* default setting */ + #define ALT_LOG_BOOT_ON_FLAG_SETTING 0x1 + #endif + #endif /* ALT_LOG_BOOT_ON_FLAG_SETTING */ + + #ifndef ALT_LOG_SYS_CLK_ON_FLAG_SETTING + #if ALT_LOG_FLAGS == 1 + #define ALT_LOG_SYS_CLK_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == 2 + #define ALT_LOG_SYS_CLK_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == 3 + #define ALT_LOG_SYS_CLK_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == -1 /* silent mode */ + #define ALT_LOG_SYS_CLK_ON_FLAG_SETTING 0x0 + #else /* default setting */ + #define ALT_LOG_SYS_CLK_ON_FLAG_SETTING 0x0 + #endif + #endif /* ALT_LOG_SYS_CLK_ON_FLAG_SETTING */ + + #ifndef ALT_LOG_WRITE_ON_FLAG_SETTING + #if ALT_LOG_FLAGS == 1 + #define ALT_LOG_WRITE_ON_FLAG_SETTING 0x0 + #elif ALT_LOG_FLAGS == 2 + #define ALT_LOG_WRITE_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == 3 + #define ALT_LOG_WRITE_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == -1 /* silent mode */ + #define ALT_LOG_WRITE_ON_FLAG_SETTING 0x0 + #else /* default setting */ + #define ALT_LOG_WRITE_ON_FLAG_SETTING 0x0 + #endif + #endif /* ALT_LOG_WRITE_ON_FLAG_SETTING */ + + #ifndef ALT_LOG_JTAG_UART_ALARM_ON_FLAG_SETTING + #ifndef __ALTERA_AVALON_JTAG_UART + #define ALT_LOG_JTAG_UART_ALARM_ON_FLAG_SETTING 0x0 + #elif ALT_LOG_FLAGS == 1 + #define ALT_LOG_JTAG_UART_ALARM_ON_FLAG_SETTING 0x0 + #elif ALT_LOG_FLAGS == 2 + #define ALT_LOG_JTAG_UART_ALARM_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == 3 + #define ALT_LOG_JTAG_UART_ALARM_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == -1 /* silent mode */ + #define ALT_LOG_JTAG_UART_ALARM_ON_FLAG_SETTING 0x0 + #else /* default setting */ + #define ALT_LOG_JTAG_UART_ALARM_ON_FLAG_SETTING 0x0 + #endif + #endif /* ALT_LOG_JTAG_UART_ALARM_ON_FLAG_SETTING */ + + #ifndef ALT_LOG_JTAG_UART_STARTUP_INFO_ON_FLAG_SETTING + #ifndef __ALTERA_AVALON_JTAG_UART + #define ALT_LOG_JTAG_UART_STARTUP_INFO_ON_FLAG_SETTING 0x0 + #elif ALT_LOG_FLAGS == 1 + #define ALT_LOG_JTAG_UART_STARTUP_INFO_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == 2 + #define ALT_LOG_JTAG_UART_STARTUP_INFO_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == 3 + #define ALT_LOG_JTAG_UART_STARTUP_INFO_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == -1 /* silent mode */ + #define ALT_LOG_JTAG_UART_STARTUP_INFO_ON_FLAG_SETTING 0x0 + #else /* default setting */ + #define ALT_LOG_JTAG_UART_STARTUP_INFO_ON_FLAG_SETTING 0x0 + #endif + #endif /* ALT_LOG_JTAG_UART_STARTUP_INFO_FLAG_SETTING */ + + #ifndef ALT_LOG_JTAG_UART_ISR_ON_FLAG_SETTING + #ifndef __ALTERA_AVALON_JTAG_UART + #define ALT_LOG_JTAG_UART_ISR_ON_FLAG_SETTING 0x0 + #elif ALT_LOG_FLAGS == 1 + #define ALT_LOG_JTAG_UART_ISR_ON_FLAG_SETTING 0x0 + #elif ALT_LOG_FLAGS == 2 + #define ALT_LOG_JTAG_UART_ISR_ON_FLAG_SETTING 0x0 + #elif ALT_LOG_FLAGS == 3 + #define ALT_LOG_JTAG_UART_ISR_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == -1 /* silent mode */ + #define ALT_LOG_JTAG_UART_ISR_ON_FLAG_SETTING 0x0 + #else /* default setting */ + #define ALT_LOG_JTAG_UART_ISR_ON_FLAG_SETTING 0x0 + #endif + #endif /* ALT_LOG_JTAG_UART_ISR_ON_FLAG_SETTING */ + +#ifndef ALT_ASM_SRC + /* Function Prototypes */ + void alt_log_txchar(int c,char *uartBase); + void alt_log_private_printf(const char *fmt,int base,va_list args); + void alt_log_repchar(char c,int r,int base); + int alt_log_printf_proc(const char *fmt, ... ); + void alt_log_system_clock(); + #ifdef __ALTERA_AVALON_JTAG_UART + alt_u32 altera_avalon_jtag_uart_report_log(void * context); + void alt_log_jtag_uart_startup_info(altera_avalon_jtag_uart_state* dev, int base); + void alt_log_jtag_uart_print_control_reg(altera_avalon_jtag_uart_state* dev, \ + int base, const char* header); + void alt_log_jtag_uart_isr_proc(int base, altera_avalon_jtag_uart_state* dev); + #endif + void alt_log_write(const void *ptr, size_t len); + + /* extern all global variables */ + extern volatile alt_u32 alt_log_boot_on_flag; + extern volatile alt_u8 alt_log_write_on_flag; + extern volatile alt_u8 alt_log_sys_clk_on_flag; + extern volatile alt_u8 alt_log_jtag_uart_alarm_on_flag; + extern volatile alt_u8 alt_log_jtag_uart_isr_on_flag; + extern volatile alt_u8 alt_log_jtag_uart_startup_info_on_flag; + extern volatile int alt_log_sys_clk_count; + extern volatile int alt_system_clock_in_sec; + extern alt_alarm alt_log_jtag_uart_alarm_1; +#endif /* ALT_ASM_SRC */ + + + /* Below are the MACRO defines used in various HAL files. They check + * if their specific flag is turned on; if it is, then it executes its + * code. + * + * To keep this file reasonable, most of these macros calls functions, + * which are defined in alt_log_printf.c. Look there for implementation + * details. */ + + /* Boot Messages Logging */ + #define ALT_LOG_PRINT_BOOT(...) \ + do { if (alt_log_boot_on_flag==1) {ALT_LOG_PRINTF(__VA_ARGS__);} \ + } while (0) + + /* JTAG UART Logging */ + /* number of ticks before alarm runs logging function */ + #ifndef ALT_LOG_JTAG_UART_TICKS_DIVISOR + #define ALT_LOG_JTAG_UART_TICKS_DIVISOR 10 + #endif + #ifndef ALT_LOG_JTAG_UART_TICKS + #define ALT_LOG_JTAG_UART_TICKS \ + (alt_ticks_per_second()/ALT_LOG_JTAG_UART_TICKS_DIVISOR) + #endif + + /* if there's a JTAG UART defined, then enable these macros */ + #ifdef __ALTERA_AVALON_JTAG_UART + + /* Macro in altera_avalon_jtag_uart.c, to register the alarm function. + * Also, the startup register info is also printed here, as this is + * called within the device driver initialization. */ + #define ALT_LOG_JTAG_UART_ALARM_REGISTER(dev, base) \ + do { if (alt_log_jtag_uart_alarm_on_flag==1) { \ + alt_alarm_start(&alt_log_jtag_uart_alarm_1, \ + ALT_LOG_JTAG_UART_TICKS, &altera_avalon_jtag_uart_report_log,\ + dev);} \ + if (alt_log_jtag_uart_startup_info_on_flag==1) {\ + alt_log_jtag_uart_startup_info(dev, base);} \ + } while (0) + + /* JTAG UART IRQ Logging (when buffer is empty) + * Inserted in the ISR in altera_avalon_jtag_uart.c */ + #define ALT_LOG_JTAG_UART_ISR_FUNCTION(base, dev) \ + do { alt_log_jtag_uart_isr_proc(base, dev); } while (0) + /* else, define macros to nothing. Or else the jtag_uart specific types + * will throw compiler errors */ + #else + #define ALT_LOG_JTAG_UART_ALARM_REGISTER(dev, base) + #define ALT_LOG_JTAG_UART_ISR_FUNCTION(base, dev) + #endif + + /* System clock logging + * How often (in seconds) the system clock logging prints. + * The default value is every 1 second */ + #ifndef ALT_LOG_SYS_CLK_INTERVAL_MULTIPLIER + #define ALT_LOG_SYS_CLK_INTERVAL_MULTIPLIER 1 + #endif + #ifndef ALT_LOG_SYS_CLK_INTERVAL + #define ALT_LOG_SYS_CLK_INTERVAL \ + (alt_ticks_per_second()*ALT_LOG_SYS_CLK_INTERVAL_MULTIPLIER) + #endif + + /* System clock logging - prints a message every interval (set above) + * to show that the system clock is alive. + * This macro is used in altera_avalon_timer_sc.c */ + #define ALT_LOG_SYS_CLK_HEARTBEAT() \ + do { alt_log_system_clock(); } while (0) + + /* alt_write_logging - echos a message every time write() is called, + * displays the first ALT_LOG_WRITE_ECHO_LEN characters. + * This macro is used in alt_write.c */ + #ifndef ALT_LOG_WRITE_ECHO_LEN + #define ALT_LOG_WRITE_ECHO_LEN 15 + #endif + + #define ALT_LOG_WRITE_FUNCTION(ptr,len) \ + do { alt_log_write(ptr,len); } while (0) + +#else /* ALT_LOG_ENABLE not defined */ + + /* logging is off, set all relevant macros to null */ + #define ALT_LOG_PRINT_BOOT(...) + #define ALT_LOG_PRINTF(...) + #define ALT_LOG_JTAG_UART_ISR_FUNCTION(base, dev) + #define ALT_LOG_JTAG_UART_ALARM_REGISTER(dev, base) + #define ALT_LOG_SYS_CLK_HEARTBEAT() + #define ALT_LOG_PUTS(str) + #define ALT_LOG_WRITE_FUNCTION(ptr,len) + +#endif /* ALT_LOG_ENABLE */ + +#endif /* __ALT_LOG_PRINTF_H__ */ + diff --git a/software/qsys_tutorial_lcd3_bsp/HAL/inc/sys/alt_set_args.h b/software/qsys_tutorial_lcd3_bsp/HAL/inc/sys/alt_set_args.h new file mode 100644 index 0000000..3750e67 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/HAL/inc/sys/alt_set_args.h @@ -0,0 +1,71 @@ +#ifndef __ALT_SET_ARGS_H__ +#define __ALT_SET_ARGS_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * The function alt_set_args() is provided in order to define the input + * arguments to main(). If this function is not called before main() then the + * argument list passed to main() will be empty. + * + * It is expected that this function will only be used by the ihost/iclient + * utility. + */ + +static inline void alt_set_args (int argc, char** argv, char** envp) +{ + extern int alt_argc; + extern char** alt_argv; + extern char** alt_envp; + + alt_argc = argc; + alt_argv = argv; + alt_envp = envp; +} + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_SET_ARGS_H__ */ diff --git a/software/qsys_tutorial_lcd3_bsp/HAL/inc/sys/alt_sim.h b/software/qsys_tutorial_lcd3_bsp/HAL/inc/sys/alt_sim.h new file mode 100644 index 0000000..06bd27a --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/HAL/inc/sys/alt_sim.h @@ -0,0 +1,91 @@ +#ifndef __ALT_SIM_H__ +#define __ALT_SIM_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2007 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ +#include "system.h" +#include "alt_types.h" + +/* + * Instructions that might mean something special to a simulator. + * These have no special effect on real hardware (they are just nops). + */ +#define ALT_SIM_FAIL() \ + do { __asm volatile ("cmpltui r0, r0, 0xabc1"); } while (0) + +#define ALT_SIM_PASS() \ + do { __asm volatile ("cmpltui r0, r0, 0xabc2"); } while (0) + +#define ALT_SIM_IN_TOP_OF_HOT_LOOP() \ + do { __asm volatile ("cmpltui r0, r0, 0xabc3"); } while (0) + +/* + * Routine called on exit. + */ +static ALT_ALWAYS_INLINE void alt_sim_halt(int exit_code) +{ + int r2 = exit_code; + +#if defined(NIOS2_HAS_DEBUG_STUB) && (defined(ALT_BREAK_ON_EXIT) || defined(ALT_PROVIDE_GMON)) + + int r3 = (1 << 2); + +#ifdef ALT_PROVIDE_GMON + extern unsigned int alt_gmon_data[]; + int r4 = (int)alt_gmon_data; + r3 |= (1 << 4); +#define ALT_GMON_DATA ,"D04"(r4) +#else +#define ALT_GMON_DATA +#endif /* ALT_PROVIDE_GMON */ + + if (r2) { + ALT_SIM_FAIL(); + } else { + ALT_SIM_PASS(); + } + + __asm__ volatile ("\n0:\n\taddi %0,%0, -1\n\tbgt %0,zero,0b" : : "r" (ALT_CPU_FREQ/100) ); /* Delay for >30ms */ + + __asm__ volatile ("break 2" : : "D02"(r2), "D03"(r3) ALT_GMON_DATA ); + +#else /* !DEBUG_STUB */ + if (r2) { + ALT_SIM_FAIL(); + } else { + ALT_SIM_PASS(); + } +#endif /* DEBUG_STUB */ +} + +#define ALT_SIM_HALT(exit_code) \ + alt_sim_halt(exit_code) + +#endif /* __ALT_SIM_H__ */ diff --git a/software/qsys_tutorial_lcd3_bsp/HAL/inc/sys/alt_stack.h b/software/qsys_tutorial_lcd3_bsp/HAL/inc/sys/alt_stack.h new file mode 100644 index 0000000..e30652a --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/HAL/inc/sys/alt_stack.h @@ -0,0 +1,126 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#ifndef __ALT_STACK_H__ +#define __ALT_STACK_H__ + +/* + * alt_stack.h is the nios2 specific implementation of functions used by the + * stack overflow code. + */ + +#include "nios2.h" + +#include "alt_types.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + + +extern char * alt_stack_limit_value; + +#ifdef ALT_EXCEPTION_STACK +extern char __alt_exception_stack_pointer[]; /* set by the linker */ +#endif /* ALT_EXCEPTION_STACK */ + + +/* + * alt_stack_limit can be called to determine the current value of the stack + * limit register. + */ + +static ALT_INLINE char * ALT_ALWAYS_INLINE alt_stack_limit (void) +{ + char * limit; + NIOS2_READ_ET(limit); + + return limit; +} + +/* + * alt_stack_pointer can be called to determine the current value of the stack + * pointer register. + */ + +static ALT_INLINE char * ALT_ALWAYS_INLINE alt_stack_pointer (void) +{ + char * pointer; + NIOS2_READ_SP(pointer); + + return pointer; +} + + +#ifdef ALT_EXCEPTION_STACK + +/* + * alt_exception_stack_pointer returns the normal stack pointer from + * where it is stored on the exception stack (uppermost 4 bytes). This + * is really only useful during exception processing, and is only + * available if a separate exception stack has been configured. + */ + +static ALT_INLINE char * ALT_ALWAYS_INLINE alt_exception_stack_pointer (void) +{ + return (char *) *(alt_u32 *)(__alt_exception_stack_pointer - sizeof(alt_u32)); +} + +#endif /* ALT_EXCEPTION_STACK */ + + +/* + * alt_set_stack_limit can be called to update the current value of the stack + * limit register. + */ + +static ALT_INLINE void ALT_ALWAYS_INLINE alt_set_stack_limit (char * limit) +{ + alt_stack_limit_value = limit; + NIOS2_WRITE_ET(limit); +} + +/* + * alt_report_stack_overflow reports that a stack overflow happened. + */ + +static ALT_INLINE void ALT_ALWAYS_INLINE alt_report_stack_overflow (void) +{ + NIOS2_REPORT_STACK_OVERFLOW(); +} + + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __ALT_STACK_H__ */ + diff --git a/software/qsys_tutorial_lcd3_bsp/HAL/inc/sys/alt_stdio.h b/software/qsys_tutorial_lcd3_bsp/HAL/inc/sys/alt_stdio.h new file mode 100644 index 0000000..1730360 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/HAL/inc/sys/alt_stdio.h @@ -0,0 +1,62 @@ +#ifndef __ALT_STDIO_H__ +#define __ALT_STDIO_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +/* + * Definitions for ALT stdio routines. + */ + +#include + + +#ifdef __cplusplus +extern "C" { +#endif + +int alt_getchar(); +int alt_putchar(int c); +int alt_putstr(const char* str); +void alt_printf(const char *fmt, ...); + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_STDIO_H__ */ diff --git a/software/qsys_tutorial_lcd3_bsp/HAL/inc/sys/alt_sys_init.h b/software/qsys_tutorial_lcd3_bsp/HAL/inc/sys/alt_sys_init.h new file mode 100644 index 0000000..e4abc28 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/HAL/inc/sys/alt_sys_init.h @@ -0,0 +1,62 @@ +#ifndef __ALT_SYS_INIT_H__ +#define __ALT_SYS_INIT_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * The function alt_sys_init() is defined within the auto-generated file: + * alt_sys_init.c. This function calls the initilisation macros for all + * devices, file systems, and software components within the system. + * + * The list of initilisation macros to use is constructed using the PTF and + * STF files associated with the system. + */ + +extern void alt_sys_init (void); + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_SYS_INIT_H__ */ diff --git a/software/qsys_tutorial_lcd3_bsp/HAL/inc/sys/alt_sys_wrappers.h b/software/qsys_tutorial_lcd3_bsp/HAL/inc/sys/alt_sys_wrappers.h new file mode 100644 index 0000000..044833b --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/HAL/inc/sys/alt_sys_wrappers.h @@ -0,0 +1,100 @@ +#ifndef __ALT_SYS_WRAPPERS_H__ +#define __ALT_SYS_WRAPPERS_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/* + * This file provides the prototypes for the HAL 'UNIX style functions. The + * names of these functions are defined in alt_syscall.h. THese are defined to + * be the standard names when running the standalone HAL, e.g. open(), close() + * etc., but the names may be redefined as a part of an operating system port + * in order to avoid name clashes. + */ + +#include "os/alt_syscall.h" + +#include +#include +#include +#include +#include +#include + +extern int ALT_CLOSE (int __fd); +extern int ALT_EXECVE (const char *__path, + char * const __argv[], + char * const __envp[]); +extern void ALT_EXIT (int __status); +extern int ALT_FSTAT (int file, struct stat *st); +extern int ALT_FCNTL (int file, int cmd, ...); +extern pid_t ALT_FORK (void); +extern pid_t ALT_GETPID (void); + +#if defined (__GNUC__) && __GNUC__ >= 4 +extern int ALT_GETTIMEOFDAY (struct timeval *ptimeval, + void *ptimezone); +#else +extern int ALT_GETTIMEOFDAY (struct timeval *ptimeval, + struct timezone *ptimezone); +#endif + +extern int ALT_IOCTL (int file, int req, void* arg); +extern int ALT_ISATTY (int file); +extern int ALT_KILL (int pid, int sig); +extern int ALT_LINK (const char *existing, const char *new); +extern off_t ALT_LSEEK (int file, off_t ptr, int dir); +extern int ALT_OPEN (const char* file, int flags, ...); +extern int ALT_READ (int file, void *ptr, size_t len); +extern int ALT_RENAME (char *existing, char *new); +extern void* ALT_SBRK (ptrdiff_t incr); +extern int ALT_SETTIMEOFDAY (const struct timeval *t, + const struct timezone *tz); +extern int ALT_STAT (const char *file, struct stat *st); +extern clock_t ALT_TIMES (struct tms *buf); +extern int ALT_UNLINK (const char *name); + +#if defined (__GNUC__) && __GNUC__ >= 4 +int ALT_USLEEP (useconds_t us); +#else +unsigned int ALT_USLEEP (unsigned int us); +#endif + +extern int ALT_WAIT (int *status); +extern int ALT_WRITE (int file, const void *ptr, size_t len); + + +extern char** ALT_ENVIRON; + +/* + * + */ + +#endif /* __ALT_SYS_WRAPPERS_H__ */ diff --git a/software/qsys_tutorial_lcd3_bsp/HAL/inc/sys/alt_timestamp.h b/software/qsys_tutorial_lcd3_bsp/HAL/inc/sys/alt_timestamp.h new file mode 100644 index 0000000..8a18da2 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/HAL/inc/sys/alt_timestamp.h @@ -0,0 +1,60 @@ +#ifndef __ALT_TIMESTAMP_H__ +#define __ALT_TIMESTAMP_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#include "alt_types.h" +#include "altera_avalon_timer.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +extern int alt_timestamp_start (void); + +extern alt_timestamp_type alt_timestamp (void); + +extern alt_u32 alt_timestamp_freq (void); + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_TIMESTAMP_H__ */ diff --git a/software/qsys_tutorial_lcd3_bsp/HAL/inc/sys/alt_warning.h b/software/qsys_tutorial_lcd3_bsp/HAL/inc/sys/alt_warning.h new file mode 100644 index 0000000..b66e71a --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/HAL/inc/sys/alt_warning.h @@ -0,0 +1,75 @@ +#ifndef __WARNING_H__ +#define __WARNING_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/* + * alt_warning.h provides macro definitions that can be used to generate link + * time warnings. + */ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * The symbol "__alt_invalid" is used to force a link error. There should be + * no corresponding implementation of this function. + */ + +extern void __alt_invalid (void); + +#define ALT_LINK_WARNING(symbol, msg) \ + __asm__(".ifndef __evoke_link_warning_" #symbol \ + "\n\t .section .gnu.warning." #symbol \ + "\n__evoke_link_warning_" #symbol ":\n\t .string \x22" msg "\x22 \n\t .previous" \ + "\n .endif"); + +/* A canned warning for sysdeps/stub functions. */ + +#define ALT_STUB_WARNING(name) \ + ALT_LINK_WARNING (name, \ + "warning: " #name " is not implemented and will always fail") + +#define ALT_OBSOLETE_FUNCTION_WARNING(name) \ + ALT_LINK_WARNING (name, \ + "warning: " #name " is a deprecated function") + +#define ALT_LINK_ERROR(msg) \ + ALT_LINK_WARNING (__alt_invalid, msg); \ + __alt_invalid() + +#ifdef __cplusplus +} +#endif + +#endif /* __WARNING_H__ */ diff --git a/software/qsys_tutorial_lcd3_bsp/HAL/inc/sys/ioctl.h b/software/qsys_tutorial_lcd3_bsp/HAL/inc/sys/ioctl.h new file mode 100644 index 0000000..4d565df --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/HAL/inc/sys/ioctl.h @@ -0,0 +1,90 @@ +#ifndef __IOCTL_H__ +#define __IOCTL_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * The ioctl() system call be used to initiate a variety of control operations + * on a file descriptor. For the most part this simply translates to a call to + * the ioctl() function of the associated device driver (TIOCEXCL and + * TIOCNXCL are notable exceptions - see ioctl.c for details). + * + * The interpretation of the ioctl requests are therefore device specific. + * + * This function is equivalent to the standard Posix ioctl() call. + */ + +extern int ioctl (int fd, int req, void* arg); + +/* + * list of ioctl calls handled by the system ioctl implementation. + */ + +#define TIOCEXCL 0x740d /* exclusive use of the device */ +#define TIOCNXCL 0x740e /* allow multiple use of the device */ + +/* + * ioctl calls which can be handled by device drivers. + */ + +#define TIOCOUTQ 0x7472 /* get output queue size */ +#define TIOCMGET 0x741d /* get termios flags */ +#define TIOCMSET 0x741a /* set termios flags */ + +/* + * ioctl calls specific to JTAG UART. + */ + +#define TIOCSTIMEOUT 0x6a01 /* Set Timeout before assuming no host present */ +#define TIOCGCONNECTED 0x6a02 /* Get indication of whether host is connected */ + +/* + * + */ + +#ifdef __cplusplus +} +#endif + +#endif /* __IOCTL_H__ */ diff --git a/software/qsys_tutorial_lcd3_bsp/HAL/inc/sys/termios.h b/software/qsys_tutorial_lcd3_bsp/HAL/inc/sys/termios.h new file mode 100644 index 0000000..cd09539 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/HAL/inc/sys/termios.h @@ -0,0 +1,181 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +/* + * This is the termios.h file provided with newlib. The only modification has + * been to the baud rate macro definitions, and an increase in the size of the + * termios structure to accomodate this. + */ + + +#ifndef _SYS_TERMIOS_H +# define _SYS_TERMIOS_H + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +# define _XCGETA (('x'<<8)|1) +# define _XCSETA (('x'<<8)|2) +# define _XCSETAW (('x'<<8)|3) +# define _XCSETAF (('x'<<8)|4) +# define _TCSBRK (('T'<<8)|5) +# define _TCFLSH (('T'<<8)|7) +# define _TCXONC (('T'<<8)|6) + +# define TCOOFF 0 +# define TCOON 1 +# define TCIOFF 2 +# define TCION 3 + +# define TCIFLUSH 0 +# define TCOFLUSH 1 +# define TCIOFLUSH 2 + +# define NCCS 13 + +# define TCSAFLUSH _XCSETAF +# define TCSANOW _XCSETA +# define TCSADRAIN _XCSETAW +# define TCSADFLUSH _XCSETAF + +# define IGNBRK 000001 +# define BRKINT 000002 +# define IGNPAR 000004 +# define INPCK 000020 +# define ISTRIP 000040 +# define INLCR 000100 +# define IGNCR 000200 +# define ICRNL 000400 +# define IXON 002000 +# define IXOFF 010000 + +# define OPOST 000001 +# define OCRNL 000004 +# define ONLCR 000010 +# define ONOCR 000020 +# define TAB3 014000 + +# define CLOCAL 004000 +# define CREAD 000200 +# define CSIZE 000060 +# define CS5 0 +# define CS6 020 +# define CS7 040 +# define CS8 060 +# define CSTOPB 000100 +# define HUPCL 002000 +# define PARENB 000400 +# define PAODD 001000 + +#define CCTS_OFLOW 010000 +#define CRTS_IFLOW 020000 +#define CRTSCTS (CCTS_OFLOW | CRTS_IFLOW) + +# define ECHO 0000010 +# define ECHOE 0000020 +# define ECHOK 0000040 +# define ECHONL 0000100 +# define ICANON 0000002 +# define IEXTEN 0000400 /* anybody know *what* this does?! */ +# define ISIG 0000001 +# define NOFLSH 0000200 +# define TOSTOP 0001000 + +# define VEOF 4 /* also VMIN -- thanks, AT&T */ +# define VEOL 5 /* also VTIME -- thanks again */ +# define VERASE 2 +# define VINTR 0 +# define VKILL 3 +# define VMIN 4 /* also VEOF */ +# define VQUIT 1 +# define VSUSP 10 +# define VTIME 5 /* also VEOL */ +# define VSTART 11 +# define VSTOP 12 + +# define B0 0 +# define B50 50 +# define B75 75 +# define B110 110 +# define B134 134 +# define B150 150 +# define B200 200 +# define B300 300 +# define B600 600 +# define B1200 1200 +# define B1800 1800 +# define B2400 2400 +# define B4800 4800 +# define B9600 9600 +# define B19200 19200 +# define B38400 38400 +# define B57600 57600 +# define B115200 115200 + +typedef unsigned char cc_t; +typedef unsigned short tcflag_t; +typedef unsigned long speed_t; + +struct termios { + tcflag_t c_iflag; + tcflag_t c_oflag; + tcflag_t c_cflag; + tcflag_t c_lflag; + char c_line; + cc_t c_cc[NCCS]; + speed_t c_ispeed; + speed_t c_ospeed; +}; + +# ifndef _NO_MACROS + +# define cfgetospeed(tp) ((tp)->c_ospeed) +# define cfgetispeed(tp) ((tp)->c_ispeed) +# define cfsetospeed(tp,s) (((tp)->c_ospeed = (s)), 0) +# define cfsetispeed(tp,s) (((tp)->c_ispeed = (s)), 0) +# define tcdrain(fd) _ioctl (fd, _TCSBRK, 1) +# endif /* _NO_MACROS */ + +#ifdef __cplusplus +} +#endif + +#endif /* _SYS_TERMIOS_H */ + diff --git a/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_alarm_start.c b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_alarm_start.c new file mode 100644 index 0000000..7739959 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_alarm_start.c @@ -0,0 +1,112 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +#include "sys/alt_alarm.h" +#include "sys/alt_irq.h" + +/* + * alt_alarm_start is called to register an alarm with the system. The + * "alarm" structure passed as an input argument does not need to be + * initialised by the user. This is done within this function. + * + * The remaining input arguments are: + * + * nticks - The time to elapse until the alarm executes. This is specified in + * system clock ticks. + * callback - The function to run when the indicated time has elapsed. + * context - An opaque value, passed to the callback function. +* + * Care should be taken when defining the callback function since it is + * likely to execute in interrupt context. In particular, this mean that + * library calls like printf() should not be made, since they can result in + * deadlock. + * + * The interval to be used for the next callback is the return + * value from the callback function. A return value of zero indicates that the + * alarm should be unregistered. + * + * alt_alarm_start() will fail if the timer facility has not been enabled + * (i.e. there is no system clock). Failure is indicated by a negative return + * value. + */ + +int alt_alarm_start (alt_alarm* alarm, alt_u32 nticks, + alt_u32 (*callback) (void* context), + void* context) +{ + alt_irq_context irq_context; + alt_u32 current_nticks = 0; + + if (alt_ticks_per_second ()) + { + if (alarm) + { + alarm->callback = callback; + alarm->context = context; + + irq_context = alt_irq_disable_all (); + + current_nticks = alt_nticks(); + + alarm->time = nticks + current_nticks + 1; + + /* + * If the desired alarm time causes a roll-over, set the rollover + * flag. This will prevent the subsequent tick event from causing + * an alarm too early. + */ + if(alarm->time < current_nticks) + { + alarm->rollover = 1; + } + else + { + alarm->rollover = 0; + } + + alt_llist_insert (&alt_alarm_list, &alarm->llist); + alt_irq_enable_all (irq_context); + + return 0; + } + else + { + return -EINVAL; + } + } + else + { + return -ENOTSUP; + } +} diff --git a/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_busy_sleep.c b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_busy_sleep.c new file mode 100644 index 0000000..561c0be --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_busy_sleep.c @@ -0,0 +1,133 @@ +/* + * Copyright (c) 2003-2004 Altera Corporation, San Jose, California, USA. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + * ------------ + * + * Altera does not recommend, suggest or require that this reference design + * file be used in conjunction or combination with any other product. + * + * alt_busy_sleep.c - Microsecond delay routine which uses a calibrated busy + * loop to perform the delay. This is used to implement + * usleep for both uC/OS-II and the standalone HAL. + * + * Author PRR + * + * Calibrated delay with no timer required + * + * The ASM instructions in the routine are equivalent to + * + * for (i=0;i +#include + +#include "system.h" +#include "alt_types.h" + +#include "priv/alt_busy_sleep.h" + +unsigned int alt_busy_sleep (unsigned int us) +{ +/* + * Only delay if ALT_SIM_OPTIMIZE is not defined; i.e., if software + * is built targetting ModelSim RTL simulation, the delay will be + * skipped to speed up simulation. + */ +#ifndef ALT_SIM_OPTIMIZE + int i; + int big_loops; + alt_u32 cycles_per_loop; + + if (!strcmp(NIOS2_CPU_IMPLEMENTATION,"tiny")) + { + cycles_per_loop = 9; + } + else + { + cycles_per_loop = 3; + } + + + big_loops = us / (INT_MAX/ + (ALT_CPU_FREQ/(cycles_per_loop * 1000000))); + + if (big_loops) + { + for(i=0;i + +#include "sys/alt_errno.h" +#include "sys/alt_warning.h" +#include "priv/alt_file.h" +#include "os/alt_syscall.h" + +#ifdef ALT_USE_DIRECT_DRIVERS + +int ALT_CLOSE (int fildes) +{ + /* Generate a link time warning, should this function ever be called. */ + + ALT_STUB_WARNING(close); + + /* Indicate an error */ + + ALT_ERRNO = ENOSYS; + return -1; +} + +#else /* !ALT_USE_DIRECT_DRIVERS */ + +/* + * close() is called by an application to release a file descriptor. If the + * associated file system/device has a close() callback function registered + * then this called. The file descriptor is then marked as free. + * + * ALT_CLOSE is mapped onto the close() system call in alt_syscall.h + */ + +int ALT_CLOSE (int fildes) +{ + alt_fd* fd; + int rval; + + /* + * A common error case is that when the file descriptor was created, the call + * to open() failed resulting in a negative file descriptor. This is trapped + * below so that we don't try and process an invalid file descriptor. + */ + + fd = (fildes < 0) ? NULL : &alt_fd_list[fildes]; + + if (fd) + { + /* + * If the associated file system/device has a close function, call it so + * that any necessary cleanup code can run. + */ + + rval = (fd->dev->close) ? fd->dev->close(fd) : 0; + + /* Free the file descriptor structure and return. */ + + alt_release_fd (fildes); + if (rval < 0) + { + ALT_ERRNO = -rval; + return -1; + } + return 0; + } + else + { + ALT_ERRNO = EBADFD; + return -1; + } +} + +#endif /* ALT_USE_DIRECT_DRIVERS */ diff --git a/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_dcache_flush.c b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_dcache_flush.c new file mode 100644 index 0000000..7ecc91a --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_dcache_flush.c @@ -0,0 +1,97 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003-2005 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "nios2.h" +#include "system.h" + +#include "alt_types.h" +#include "sys/alt_cache.h" + +/* + * Nios II version 1.2 and newer supports the "flush by address" instruction, in + * addition to the "flush by line" instruction provided by older versions of + * the core. This newer instruction is used by preference when it is + * available. + */ + +#ifdef NIOS2_FLUSHDA_SUPPORTED +#define ALT_FLUSH_DATA(i) __asm__ volatile ("flushda (%0)" :: "r" (i)); +#else +#define ALT_FLUSH_DATA(i) __asm__ volatile ("flushd (%0)" :: "r" (i)); +#endif /* NIOS2_FLUSHDA_SUPPORTED */ + +/* + * alt_dcache_flush() is called to flush the data cache for a memory + * region of length "len" bytes, starting at address "start". + * + * Any dirty lines in the data cache are written back to memory. + */ + +void alt_dcache_flush (void* start, alt_u32 len) +{ +#if NIOS2_DCACHE_SIZE > 0 + + char* i; + char* end; + + /* + * This is the most we would ever need to flush. + * + * SPR 196942, 2006.01.13: The cache flush loop below will use the + * 'flushda' instruction if its available; in that case each line + * must be flushed individually, and thus 'len' cannot be trimmed. + */ + #ifndef NIOS2_FLUSHDA_SUPPORTED + if (len > NIOS2_DCACHE_SIZE) + { + len = NIOS2_DCACHE_SIZE; + } + #endif + + end = ((char*) start) + len; + + for (i = start; i < end; i+= NIOS2_DCACHE_LINE_SIZE) + { + ALT_FLUSH_DATA(i); + } + + /* + * For an unaligned flush request, we've got one more line left. + * Note that this is dependent on NIOS2_DCACHE_LINE_SIZE to be a + * multiple of 2 (which it always is). + */ + + if (((alt_u32) start) & (NIOS2_DCACHE_LINE_SIZE - 1)) + { + ALT_FLUSH_DATA(i); + } + +#endif /* NIOS2_DCACHE_SIZE > 0 */ +} diff --git a/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_dcache_flush_all.c b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_dcache_flush_all.c new file mode 100644 index 0000000..6529231 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_dcache_flush_all.c @@ -0,0 +1,51 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003-2005 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "nios2.h" +#include "system.h" + +#include "alt_types.h" +#include "sys/alt_cache.h" + +/* + * alt_dcache_flush_all() is called to flush the entire data cache. + */ + +void alt_dcache_flush_all (void) +{ +#if NIOS2_DCACHE_SIZE > 0 + char* i; + + for (i = (char*) 0; i < (char*) NIOS2_DCACHE_SIZE; i+= NIOS2_DCACHE_LINE_SIZE) + { + __asm__ volatile ("flushd (%0)" :: "r" (i)); + } +#endif /* NIOS2_DCACHE_SIZE > 0 */ +} diff --git a/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_dcache_flush_no_writeback.c b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_dcache_flush_no_writeback.c new file mode 100644 index 0000000..c65ca7d --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_dcache_flush_no_writeback.c @@ -0,0 +1,88 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2007 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "nios2.h" +#include "system.h" + +#include "alt_types.h" +#include "sys/alt_cache.h" + +/* + * The INITDA instruction was added to Nios II in the 8.0 release. + * + * The INITDA instruction has one of the following possible behaviors + * depending on the processor configuration: + * 1) Flushes a line by address but does NOT write back dirty data. + * Occurs when a data cache is present that supports INITDA. + * The macro NIOS2_INITDA_SUPPORTED is defined in system.h. + * 2) Takes an unimplemented instruction exception. + * Occurs when a data cache is present that doesn't support INITDA. + * 3) Performs no operation + * Occurs when there is no data cache present. + * The macro NIOS2_DCACHE_SIZE is 0 in system.h. + */ + +#define ALT_FLUSH_DATA_NO_WRITEBACK(i) \ + __asm__ volatile ("initda (%0)" :: "r" (i)); + +/* + * alt_dcache_flush_no_writeback() is called to flush the data cache for a + * memory region of length "len" bytes, starting at address "start". + * + * Any dirty lines in the data cache are NOT written back to memory. + * Make sure you really want this behavior. If you aren't 100% sure, + * use the alt_dcache_flush() routine instead. + */ + +void alt_dcache_flush_no_writeback (void* start, alt_u32 len) +{ +#if defined(NIOS2_INITDA_SUPPORTED) + + char* i; + char* end = ((char*) start) + len; + + for (i = start; i < end; i+= NIOS2_DCACHE_LINE_SIZE) + { + ALT_FLUSH_DATA_NO_WRITEBACK(i); + } + + /* + * For an unaligned flush request, we've got one more line left. + * Note that this is dependent on NIOS2_DCACHE_LINE_SIZE to be a + * multiple of 2 (which it always is). + */ + + if (((alt_u32) start) & (NIOS2_DCACHE_LINE_SIZE - 1)) + { + ALT_FLUSH_DATA_NO_WRITEBACK(i); + } + +#endif /* NIOS2_INITDA_SUPPORTED */ +} diff --git a/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_dev.c b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_dev.c new file mode 100644 index 0000000..ebc15e5 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_dev.c @@ -0,0 +1,149 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include +#include +#include +#include + +#include "sys/alt_dev.h" +#include "priv/alt_file.h" + +#include "alt_types.h" + +#include "system.h" + +/* + * This file contains the data constructs used to control access to device and + * filesytems. + */ + +/* + * "alt_fs_list" is the head of a linked list of registered filesystems. It is + * initialised as an empty list. New entries can be added using the + * alt_fs_reg() function. + */ + +ALT_LLIST_HEAD(alt_fs_list); + + +/* + * "alt_dev_list" is the head of a linked list of registered devices. It is + * configured at startup to include a single device, "alt_dev_null". This + * device is discussed below. + */ + +extern alt_dev alt_dev_null; /* forward declaration */ + +alt_llist alt_dev_list = {&alt_dev_null.llist, &alt_dev_null.llist}; + +/* + * alt_dev_null_write() is the implementation of the write() function used + * by the alt_dev_null device. It simple discards all data passed to it, and + * indicates that the data has been successfully transmitted. + */ + +static int alt_dev_null_write (alt_fd* fd, const char* ptr, int len) +{ + return len; +} + +/* + * "alt_dev_null" is used to allow output to be redirected to nowhere. It is + * the only device registered before the call to alt_sys_init(). At startup + * stin, stdout & stderr are all directed towards this device so that library + * calls like printf() will be safe but inefectual. + */ + +alt_dev alt_dev_null = { + { + &alt_dev_list, + &alt_dev_list + }, + "/dev/null", + NULL, /* open */ + NULL, /* close */ + NULL, /* write */ + alt_dev_null_write, /* write */ + NULL, /* lseek */ + NULL, /* fstat */ + NULL /* ioctl */ + }; + +/* + * "alt_fd_list_lock" is a semaphore used to control access to the file + * descriptor list. This is used to ensure that access to the list is thread + * safe. + */ + +ALT_SEM(alt_fd_list_lock) + +/* + * "alt_max_fd" is used to make access to the file descriptor list more + * efficent. It is set to be the value of the highest allocated file + * descriptor. This saves having to search the entire pool of unallocated + * file descriptors when looking for a match. + */ + +alt_32 alt_max_fd = -1; + +/* + * "alt_fd_list" is the file descriptor pool. The first three entries in the + * array are configured as standard in, standard out, and standard error. These + * are all initialised so that accesses are directed to the alt_dev_null + * device. The remaining file descriptors are initialised as unallocated. + * + * The maximum number of file descriptors within the system is specified by the + * user defined macro "ALT_MAX_FD". This is defined in "system.h", which is + * auto-genereated using the projects PTF and STF files. + */ + +alt_fd alt_fd_list[ALT_MAX_FD] = + { + { + &alt_dev_null, /* standard in */ + 0, + 0 + }, + { + &alt_dev_null, /* standard out */ + 0, + 0 + }, + { + &alt_dev_null, /* standard error */ + 0, + 0 + } + /* all other elements are set to zero */ + }; diff --git a/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_dev_llist_insert.c b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_dev_llist_insert.c new file mode 100644 index 0000000..fa7239d --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_dev_llist_insert.c @@ -0,0 +1,59 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "priv/alt_dev_llist.h" +#include "sys/alt_errno.h" + +/* + * + */ + +int alt_dev_llist_insert (alt_dev_llist* dev, alt_llist* list) +{ + /* + * check that the device exists, and that it has a valid name. + */ + + if (!dev || !dev->name) + { + ALT_ERRNO = EINVAL; + return -EINVAL; + } + + /* + * register the device. + */ + + alt_llist_insert(list, &dev->llist); + + return 0; +} diff --git a/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_dma_rxchan_open.c b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_dma_rxchan_open.c new file mode 100644 index 0000000..6ea3b78 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_dma_rxchan_open.c @@ -0,0 +1,63 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_dma.h" +#include "sys/alt_errno.h" +#include "priv/alt_file.h" + +/* + * The list of registered DMA receive channels. + */ + +ALT_LLIST_HEAD(alt_dma_rxchan_list); + +/* + * alt_dma_txchan_open() is used to obtain an "alt_dma_txchan" descriptor for + * a DMA transmit device. The name is the name of the associated physical + * device (e.g. "/dev/dma_0"). + * + * The return value will be NULL on failure, and non-NULL otherwise. + */ + +alt_dma_rxchan alt_dma_rxchan_open (const char* name) +{ + alt_dma_rxchan dev; + + dev = (alt_dma_rxchan) alt_find_dev (name, &alt_dma_rxchan_list); + + if (!dev) + { + ALT_ERRNO = ENODEV; + } + + return dev; +} diff --git a/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_dma_txchan_open.c b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_dma_txchan_open.c new file mode 100644 index 0000000..f41fa81 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_dma_txchan_open.c @@ -0,0 +1,63 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_dma.h" +#include "sys/alt_errno.h" +#include "priv/alt_file.h" + +/* + * The list of registered receive channels. + */ + +ALT_LLIST_HEAD(alt_dma_txchan_list); + +/* + * alt_dma_txchan_open() is used to obtain an "alt_dma_txchan" descriptor for + * a DMA transmit device. The name is the name of the associated physical + * device (e.g. "/dev/dma_0"). + * + * The return value will be NULL on failure, and non-NULL otherwise. + */ + +alt_dma_txchan alt_dma_txchan_open (const char* name) +{ + alt_dma_txchan dev; + + dev = (alt_dma_txchan) alt_find_dev (name, &alt_dma_txchan_list); + + if (!dev) + { + ALT_ERRNO = ENODEV; + } + + return dev; +} diff --git a/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_do_ctors.c b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_do_ctors.c new file mode 100644 index 0000000..ff5a1f7 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_do_ctors.c @@ -0,0 +1,64 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT IT DIRECTLY. * +* * +* Overriding HAL Functions * +* * +* To provide your own implementation of a HAL function, include the file in * +* your Nios II IDE application project. When building the executable, the * +* Nios II IDE finds your function first, and uses it in place of the HAL * +* version. * +* * +******************************************************************************/ + +/* + * + */ + +typedef void (*constructor) (void); +extern constructor __CTOR_LIST__[]; +extern constructor __CTOR_END__[]; + +/* + * Run the C++ static constructors. + */ + +void _do_ctors(void) +{ + constructor* ctor; + + for (ctor = &__CTOR_END__[-1]; ctor >= __CTOR_LIST__; ctor--) + (*ctor) (); +} diff --git a/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_do_dtors.c b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_do_dtors.c new file mode 100644 index 0000000..565c99f --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_do_dtors.c @@ -0,0 +1,64 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT IT DIRECTLY. * +* * +* Overriding HAL Functions * +* * +* To provide your own implementation of a HAL function, include the file in * +* your Nios II IDE application project. When building the executable, the * +* Nios II IDE finds your function first, and uses it in place of the HAL * +* version. * +* * +******************************************************************************/ + +/* + * + */ + +typedef void (*destructor) (void); +extern destructor __DTOR_LIST__[]; +extern destructor __DTOR_END__[]; + +/* + * Run the C++ static destructors. + */ + +void _do_dtors(void) +{ + destructor* dtor; + + for (dtor = &__DTOR_END__[-1]; dtor >= __DTOR_LIST__; dtor--) + (*dtor) (); +} diff --git a/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_env_lock.c b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_env_lock.c new file mode 100644 index 0000000..fc25a0c --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_env_lock.c @@ -0,0 +1,53 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +/* + * These are the empty env lock/unlock stubs required by newlib. These are + * used to make accesses to environment variables thread safe. The default HAL + * configuration is single threaded, so there is nothing to do here. Note that + * this requires that environment variables are never manipulated by an interrupt + * service routine. + */ + +void __env_lock ( struct _reent *_r ) +{ +} + +/* + * + */ + +void __env_unlock ( struct _reent *_r ) +{ +} diff --git a/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_environ.c b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_environ.c new file mode 100644 index 0000000..404efc4 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_environ.c @@ -0,0 +1,42 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "os/alt_syscall.h" + +/* + * These are the environment variables passed to the C code. By default there + * are no variables registered. An application can manipulate this list using + * getenv() and setenv(). + */ + +char *__env[1] = { 0 }; +char **ALT_ENVIRON = __env; diff --git a/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_errno.c b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_errno.c new file mode 100644 index 0000000..1d8368d --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_errno.c @@ -0,0 +1,44 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/* + * This file defines the alt_errno global variable. See comments in + * alt_errno.h for the use of this variable. + */ + + +#include "sys/alt_errno.h" +#include "alt_types.h" + +extern int ALT_WEAK *__errno (void); + +int* (*alt_errno) (void) = __errno; diff --git a/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_exception_entry.S b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_exception_entry.S new file mode 100644 index 0000000..3afab93 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_exception_entry.S @@ -0,0 +1,360 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003-2008 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "system.h" + +/* + * This is the exception entry point code, which saves all the caller saved + * registers and then handles the appropriate exception. It should be pulled + * in using a .globl from all the exception handler routines. This scheme is + * used so that if an interrupt is never registered, then this code will not + * appear in the generated executable, thereby improving code footprint. + * + * If an external interrpt controller (EIC) is present, it will supply an + * interrupt vector address to the processor when an interrupt occurs. For + * The Altera Vectored Interrupt Controller (VIC) driver will establish a + * vector table and the processor will jump directly to the appropriate + * table entry, funnel routine, and then user ISR. This will bypass this code + * in entirety. This code might still be linked into a system with an EIC, + * but would then be used only for non-interrupt exceptions. + */ + + /* + * Explicitly allow the use of r1 (the assembler temporary register) + * within this code. This register is normally reserved for the use of + * the assembler. + */ + .set noat + + /* + * The top and bottom of the exception stack + */ +#ifdef ALT_EXCEPTION_STACK + + .globl __alt_exception_stack_pointer + +#ifdef ALT_STACK_CHECK + + .globl __alt_exception_stack_limit + + /* + * We need to store the value of the stack limit after interrupt somewhere. + */ + .globl alt_exception_old_stack_limit + +#endif +#endif + + .section .exceptions.entry.label, "xa" + + .globl alt_exception + .type alt_exception, @function +alt_exception: + + .section .exceptions.entry, "xa" + +#ifdef ALT_EXCEPTION_STACK + +#ifdef ALT_STACK_CHECK + stw et, %gprel(alt_exception_old_stack_limit)(gp) +#endif + + movhi et, %hiadj(__alt_exception_stack_pointer - 80) + addi et, et, %lo(__alt_exception_stack_pointer - 80) + stw sp, 76(et) + mov sp, et + +#ifdef ALT_STACK_CHECK + movhi et, %hiadj(__alt_exception_stack_limit) + addi et, et, %lo(__alt_exception_stack_limit) + stw et, %gprel(alt_stack_limit_value)(gp) +#endif + +#else + /* + * Process an exception. For all exceptions we must preserve all + * caller saved registers on the stack (See the Nios2 ABI + * documentation for details). + */ + + addi sp, sp, -76 + +#ifdef ALT_STACK_CHECK + + bltu sp, et, .Lstack_overflow + +#endif + +#endif + + stw ra, 0(sp) + + /* + * Leave a gap in the stack frame at 4(sp) for the muldiv handler to + * store zero into. + */ + + stw r1, 8(sp) + stw r2, 12(sp) + stw r3, 16(sp) + stw r4, 20(sp) + stw r5, 24(sp) + stw r6, 28(sp) + stw r7, 32(sp) + + rdctl r5, estatus + + stw r8, 36(sp) + stw r9, 40(sp) + stw r10, 44(sp) + stw r11, 48(sp) + stw r12, 52(sp) + stw r13, 56(sp) + stw r14, 60(sp) + stw r15, 64(sp) + + /* + * ea-4 contains the address of the instruction being executed + * when the exception occured. For interrupt exceptions, we will + * will be re-issue the isntruction. Store it in 72(sp) + */ + stw r5, 68(sp) /* estatus */ + addi r15, ea, -4 /* instruction that caused exception */ + stw r15, 72(sp) + + /* + * The interrupt testing code (.exceptions.irqtest) will be + * linked here. If the Internal Interrupt Controller (IIC) is + * present (an EIC is not present), the presense of an interrupt + * is determined by examining CPU control registers or an interrupt + * custom instruction, if present. + * + * If the IIC is used and an interrupt is active, the code linked + * here will call the HAL IRQ handler (alt_irq_handler()) which + * successively calls registered interrupt handler(s) until no + * interrupts remain pending. It then jumps to .exceptions.exit. If + * there is no interrupt then it continues to .exception.notirq, below. + */ + + .section .exceptions.notirq, "xa" + + /* + * Prepare to service unimplemtned instructions or traps, + * each of which is optionally inked into section .exceptions.soft, + * which will preceed .exceptions.unknown below. + * + * Unlike interrupts, we want to skip the exception-causing instructon + * upon completion, so we write ea (address of instruction *after* + * the one where the exception occured) into 72(sp). The actual + * instruction that caused the exception is written in r2, which these + * handlers will utilize. + */ + stw ea, 72(sp) /* Don't re-issue */ + ldw r2, -4(ea) /* Instruction that caused exception */ + + /* + * Other exception handling code, if enabled, will be linked here. + * This includes unimplemted (multiply/divide) instruction support + * (a BSP generaton option), and a trap handler (that would typically + * be augmented with user-specific code). These are not linked in by + * default. + */ + + /* + * In the context of linker sections, "unknown" are all exceptions + * not handled by the built-in handlers above (interupt, and trap or + * unimplemented instruction decoding, if enabled). + * + * Advanced exception types can be serviced by registering a handler. + * To do so, enable the "Enable Instruction-related Exception API" HAL + * BSP setting. If this setting is disabled, this handler code will + * either break (if the debug core is present) or enter an infinite + * loop because we don't how how to handle the exception. + */ + .section .exceptions.unknown +#ifdef ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API + /* + * The C-based HAL routine alt_instruction_exception_entry() will + * attempt to service the exception by calling a user-registered + * exception handler using alt_instruction_exception_register(). + * If no handler was registered it will either break (if the + * debugger is present) or go into an infinite loop since the + * handling behavior is undefined; in that case we will not return here. + */ + + /* Load exception-causing address as first argument (r4) */ + addi r4, ea, -4 + + /* Call the instruction-exception entry */ + call alt_instruction_exception_entry + + /* + * If alt_instruction_exception_entry() returned, the exception was + * serviced by a user-registered routine. Its return code (now in r2) + * indicates whether to re-issue or skip the exception-causing + * instruction + * + * Return code was 0: Skip. The instruction after the exception is + * already stored in 72(sp). + */ + bne r2, r0, .Lexception_exit + + /* + * Otherwise, modify 72(sp) to re-issue the instruction that caused the + * exception. + */ + addi r15, ea, -4 /* instruction that caused exception */ + stw r15, 72(sp) + +#else /* ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API disabled */ + + /* + * We got here because an instruction-related exception occured, but the + * handler API was not compiled in. We do not presume to know how to + * handle it. If the debugger is present, break, otherwise hang. + * + * If you get here then one of the following could have happened: + * + * - An instruction-generated exception occured, and the processor + * does not have the extra exceptions feature enabled, or you + * have not registered a handler using + * alt_instruction_exception_register() + * + * Some examples of instruction-generated exceptions and why they + * might occur: + * + * - Your program could have been compiled for a full-featured + * Nios II core, but it is running on a smaller core, and + * instruction emulation has been disabled by defining + * ALT_NO_INSTRUCTION_EMULATION. + * + * You can work around the problem by re-enabling instruction + * emulation, or you can figure out why your program is being + * compiled for a system other than the one that it is running on. + * + * - Your program has executed a trap instruction, but has not + * implemented a handler for this instruction. + * + * - Your program has executed an illegal instruction (one which is + * not defined in the instruction set). + * + * - Your processor includes an MMU or MPU, and you have enabled it + * before registering an exception handler to service exceptions it + * generates. + * + * The problem could also be hardware related: + * - If your hardware is broken and is generating spurious interrupts + * (a peripheral which negates its interrupt output before its + * interrupt handler has been executed will cause spurious + * interrupts) + */ +#ifdef NIOS2_HAS_DEBUG_STUB + /* + * Either tell the user now (if there is a debugger attached) or go into + * the debug monitor which will loop until a debugger is attached. + */ + break +#else + /* + * If there is no debug stub then a BREAK will probably cause a reboot. + * An infinate loop will probably be more useful. + */ +0: + br 0b +#endif /* NIOS2_HAS_DEBUG_STUB */ + +#endif /* ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API */ + + .section .exceptions.exit.label +.Lexception_exit: + + .section .exceptions.exit, "xa" + + /* + * Restore the saved registers, so that all general purpose registers + * have been restored to their state at the time the interrupt occured. + */ + + ldw r5, 68(sp) + ldw ea, 72(sp) /* This becomes the PC once eret is executed */ + ldw ra, 0(sp) + + wrctl estatus, r5 + + ldw r1, 8(sp) + ldw r2, 12(sp) + ldw r3, 16(sp) + ldw r4, 20(sp) + ldw r5, 24(sp) + ldw r6, 28(sp) + ldw r7, 32(sp) + +#ifdef ALT_EXCEPTION_STACK +#ifdef ALT_STACK_CHECK + ldw et, %gprel(alt_exception_old_stack_limit)(gp) +#endif +#endif + + ldw r8, 36(sp) + ldw r9, 40(sp) + ldw r10, 44(sp) + ldw r11, 48(sp) + ldw r12, 52(sp) + ldw r13, 56(sp) + ldw r14, 60(sp) + ldw r15, 64(sp) + +#ifdef ALT_EXCEPTION_STACK + +#ifdef ALT_STACK_CHECK + stw et, %gprel(alt_stack_limit_value)(gp) + stw zero, %gprel(alt_exception_old_stack_limit)(gp) +#endif + + ldw sp, 76(sp) + +#else + addi sp, sp, 76 + +#endif + + /* + * Return to the interrupted instruction. + */ + + eret + +#ifdef ALT_STACK_CHECK + +.Lstack_overflow: + break 3 + +#endif + diff --git a/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_exception_muldiv.S b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_exception_muldiv.S new file mode 100644 index 0000000..55617a6 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_exception_muldiv.S @@ -0,0 +1,583 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003-2005 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + + /* + * This is the software multiply/divide handler for Nios2. + */ + + /* + * Provide a label which can be used to pull this file in. + */ + + .section .exceptions.start + .globl alt_exception_muldiv +alt_exception_muldiv: + + /* + * Pull in the entry/exit code. + */ + .globl alt_exception + + + .section .exceptions.soft, "xa" + + + /* INSTRUCTION EMULATION + * --------------------- + * + * Nios II processors generate exceptions for unimplemented instructions. + * The routines below emulate these instructions. Depending on the + * processor core, the only instructions that might need to be emulated + * are div, divu, mul, muli, mulxss, mulxsu, and mulxuu. + * + * The emulations match the instructions, except for the following + * limitations: + * + * 1) The emulation routines do not emulate the use of the exception + * temporary register (et) as a source operand because the exception + * handler already has modified it. + * + * 2) The routines do not emulate the use of the stack pointer (sp) or the + * exception return address register (ea) as a destination because + * modifying these registers crashes the exception handler or the + * interrupted routine. + * + * 3) To save code size, the routines do not emulate the use of the + * breakpoint registers (ba and bt) as operands. + * + * Detailed Design + * --------------- + * + * The emulation routines expect the contents of integer registers r0-r31 + * to be on the stack at addresses sp, 4(sp), 8(sp), ... 124(sp). The + * routines retrieve source operands from the stack and modify the + * destination register's value on the stack prior to the end of the + * exception handler. Then all registers except the destination register + * are restored to their previous values. + * + * The instruction that causes the exception is found at address -4(ea). + * The instruction's OP and OPX fields identify the operation to be + * performed. + * + * One instruction, muli, is an I-type instruction that is identified by + * an OP field of 0x24. + * + * muli AAAAA,BBBBB,IIIIIIIIIIIIIIII,-0x24- + * 27 22 6 0 <-- LSB of field + * + * The remaining emulated instructions are R-type and have an OP field + * of 0x3a. Their OPX fields identify them. + * + * R-type AAAAA,BBBBB,CCCCC,XXXXXX,NNNNN,-0x3a- + * 27 22 17 11 6 0 <-- LSB of field + * + * + */ + + + /* + * Split the instruction into its fields. We need 4*A, 4*B, and 4*C as + * offsets to the stack pointer for access to the stored register values. + */ + /* r2 = AAAAA,BBBBB,IIIIIIIIIIIIIIII,PPPPPP */ + roli r3, r2, 7 /* r3 = BBB,IIIIIIIIIIIIIIII,PPPPPP,AAAAA,BB */ + roli r4, r3, 3 /* r4 = IIIIIIIIIIIIIIII,PPPPPP,AAAAA,BBBBB */ + roli r6, r4, 2 /* r6 = IIIIIIIIIIIIII,PPPPPP,AAAAA,BBBBB,II */ + srai r4, r4, 16 /* r4 = (sign-extended) IMM16 */ + xori r6, r6, 0x42 /* r6 = CCC,XXXXXX,NNNNN,PPPPPP,AAAAA,bBBBB,cC */ + roli r7, r6, 5 /* r7 = XXXX,NNNNN,PPPPPP,AAAAA,bBBBB,cCCCC,XX */ + andi r5, r2, 0x3f /* r5 = 00000000000000000000000000,PPPPPP */ + xori r3, r3, 0x40 + andi r3, r3, 0x7c /* r3 = 0000000000000000000000000,aAAAA,00 */ + andi r6, r6, 0x7c /* r6 = 0000000000000000000000000,bBBBB,00 */ + andi r7, r7, 0x7c /* r7 = 0000000000000000000000000,cCCCC,00 */ + + /* Now either + * r5 = OP + * r3 = 4*(A^16) + * r4 = IMM16 (sign extended) + * r6 = 4*(B^16) + * r7 = 4*(C^16) + * or + * r5 = OP + */ + + + /* + * Save everything on the stack to make it easy for the emulation routines + * to retrieve the source register operands. The exception entry code has + * already saved some of this so we don't need to do it all again. + */ + + addi sp, sp, -60 + stw zero, 64(sp) /* Save zero on stack to avoid special case for r0. */ + /* Register at and r2-r15 have already been saved. */ + + stw r16, 0(sp) + stw r17, 4(sp) + stw r18, 8(sp) + stw r19, 12(sp) + stw r20, 16(sp) + stw r21, 20(sp) + stw r22, 24(sp) + stw r23, 28(sp) + /* et @ 32 - Has already been changed.*/ + /* bt @ 36 - Usually isn't an operand. */ + stw gp, 40(sp) + stw sp, 44(sp) + stw fp, 48(sp) + /* ea @ 52 - Don't bother to save - it's already been changed */ + /* ba @ 56 - Breakpoint register usually isn't an operand */ + /* ra @ 60 - Has already been saved */ + + + /* + * Prepare for either multiplication or division loop. + * They both loop 32 times. + */ + movi r14, 32 + + + /* + * Get the operands. + * + * It is necessary to check for muli because it uses an I-type instruction + * format, while the other instructions are have an R-type format. + */ + add r3, r3, sp /* r3 = address of A-operand. */ + ldw r3, 0(r3) /* r3 = A-operand. */ + movi r15, 0x24 /* muli opcode (I-type instruction format) */ + beq r5, r15, .Lmul_immed /* muli doesn't use the B register as a source */ + + add r6, r6, sp /* r6 = address of B-operand. */ + ldw r6, 0(r6) /* r6 = B-operand. */ + /* r4 = SSSSSSSSSSSSSSSS,-----IMM16------ */ + /* IMM16 not needed, align OPX portion */ + /* r4 = SSSSSSSSSSSSSSSS,CCCCC,-OPX--,00000 */ + srli r4, r4, 5 /* r4 = 00000,SSSSSSSSSSSSSSSS,CCCCC,-OPX-- */ + andi r4, r4, 0x3f /* r4 = 00000000000000000000000000,-OPX-- */ + + /* Now + * r5 = OP + * r3 = src1 + * r6 = src2 + * r4 = OPX (no longer can be muli) + * r7 = 4*(C^16) + * r14 = loop counter + */ + + /* ILLEGAL-INSTRUCTION EXCEPTION + * ----------------------------- + * + * This code is for Nios II cores that generate exceptions when attempting + * to execute illegal instructions. Nios II cores that support an + * illegal-instruction exception are identified by the presence of the + * macro definition NIOS2_HAS_ILLEGAL_INSTRUCTION_EXCEPTION in system.h . + * + * Remember that illegal instructions are different than unimplemented + * instructions. Illegal instructions are instruction encodings that + * have not been defined by the Nios II ISA. Unimplemented instructions + * are legal instructions that must be emulated by some Nios II cores. + * + * If we get here, all instructions except multiplies and divides + * are illegal. + * + * This code assumes that OP is not muli (because muli was tested above). + * All other multiplies and divides are legal. Anything else is illegal. + */ + + movi r8, 0x3a /* OP for R-type mul* and div* */ + bne r5, r8, .Lnot_muldiv + + /* r15 already is 0x24 */ /* OPX of divu */ + beq r4, r15, .Ldivide + + movi r15,0x27 /* OPX of mul */ + beq r4, r15, .Lmultiply + + movi r15,0x07 /* OPX of mulxuu */ + beq r4, r15, .Lmultiply + + movi r15,0x17 /* OPX of mulxsu */ + beq r4, r15, .Lmultiply + + movi r15,0x1f /* OPX of mulxss */ + beq r4, r15, .Lmultiply + + movi r15,0x25 /* OPX of div */ + bne r4, r15, .Lnot_muldiv + + + /* DIVISION + * + * Divide an unsigned dividend by an unsigned divisor using + * a shift-and-subtract algorithm. The example below shows + * 43 div 7 = 6 for 8-bit integers. This classic algorithm uses a + * single register to store both the dividend and the quotient, + * allowing both values to be shifted with a single instruction. + * + * remainder dividend:quotient + * --------- ----------------- + * initialize 00000000 00101011: + * shift 00000000 0101011:_ + * remainder >= divisor? no 00000000 0101011:0 + * shift 00000000 101011:0_ + * remainder >= divisor? no 00000000 101011:00 + * shift 00000001 01011:00_ + * remainder >= divisor? no 00000001 01011:000 + * shift 00000010 1011:000_ + * remainder >= divisor? no 00000010 1011:0000 + * shift 00000101 011:0000_ + * remainder >= divisor? no 00000101 011:00000 + * shift 00001010 11:00000_ + * remainder >= divisor? yes 00001010 11:000001 + * remainder -= divisor - 00000111 + * ---------- + * 00000011 11:000001 + * shift 00000111 1:000001_ + * remainder >= divisor? yes 00000111 1:0000011 + * remainder -= divisor - 00000111 + * ---------- + * 00000000 1:0000011 + * shift 00000001 :0000011_ + * remainder >= divisor? no 00000001 :00000110 + * + * The quotient is 00000110. + */ + +.Ldivide: + /* + * Prepare for division by assuming the result + * is unsigned, and storing its "sign" as 0. + */ + movi r17, 0 + + + /* Which division opcode? */ + xori r15, r4, 0x25 /* OPX of div */ + bne r15, zero, .Lunsigned_division + + + /* + * OPX is div. Determine and store the sign of the quotient. + * Then take the absolute value of both operands. + */ + xor r17, r3, r6 /* MSB contains sign of quotient */ + bge r3, zero, 0f + sub r3, zero, r3 /* -r3 */ +0: + bge r6, zero, 0f + sub r6, zero, r6 /* -r6 */ +0: + + +.Lunsigned_division: + /* Initialize the unsigned-division loop. */ + movi r13, 0 /* remainder = 0 */ + + /* Now + * r3 = dividend : quotient + * r4 = 0x25 for div, 0x24 for divu + * r6 = divisor + * r13 = remainder + * r14 = loop counter (already initialized to 32) + * r17 = MSB contains sign of quotient + */ + + + /* + * for (count = 32; count > 0; --count) + * { + */ +.Ldivide_loop: + + /* + * Division: + * + * (remainder:dividend:quotient) <<= 1; + */ + slli r13, r13, 1 + cmplt r15, r3, zero /* r15 = MSB of r3 */ + or r13, r13, r15 + slli r3, r3, 1 + + + /* + * if (remainder >= divisor) + * { + * set LSB of quotient + * remainder -= divisor; + * } + */ + bltu r13, r6, .Ldiv_skip + ori r3, r3, 1 + sub r13, r13, r6 +.Ldiv_skip: + + /* + * } + */ + subi r14, r14, 1 + bne r14, zero, .Ldivide_loop + + mov r9, r3 + + + /* Now + * r9 = quotient + * r4 = 0x25 for div, 0x24 for divu + * r7 = 4*(C^16) + * r17 = MSB contains sign of quotient + */ + + + /* + * Conditionally negate signed quotient. If quotient is unsigned, + * the sign already is initialized to 0. + */ + bge r17, zero, .Lstore_result + sub r9, zero, r9 /* -r9 */ + + br .Lstore_result + + + + + /* MULTIPLICATION + * + * A "product" is the number that one gets by summing a "multiplicand" + * several times. The "multiplier" specifies the number of copies of the + * multiplicand that are summed. + * + * Actual multiplication algorithms don't use repeated addition, however. + * Shift-and-add algorithms get the same answer as repeated addition, and + * they are faster. To compute the lower half of a product (pppp below) + * one shifts the product left before adding in each of the partial products + * (a * mmmm) through (d * mmmm). + * + * To compute the upper half of a product (PPPP below), one adds in the + * partial products (d * mmmm) through (a * mmmm), each time following the + * add by a right shift of the product. + * + * mmmm + * * abcd + * ------ + * #### = d * mmmm + * #### = c * mmmm + * #### = b * mmmm + * #### = a * mmmm + * -------- + * PPPPpppp + * + * The example above shows 4 partial products. Computing actual Nios II + * products requires 32 partials. + * + * It is possible to compute the result of mulxsu from the result of mulxuu + * because the only difference between the results of these two opcodes is + * the value of the partial product associated with the sign bit of rA. + * + * mulxsu = mulxuu - ((rA < 0) ? rB : 0); + * + * It is possible to compute the result of mulxss from the result of mulxsu + * because the only difference between the results of these two opcodes is + * the value of the partial product associated with the sign bit of rB. + * + * mulxss = mulxsu - ((rB < 0) ? rA : 0); + * + */ + +.Lmul_immed: + /* Opcode is muli. Change it into mul for remainder of algorithm. */ + mov r7, r6 /* Field B is dest register, not field C. */ + mov r6, r4 /* Field IMM16 is src2, not field B. */ + movi r4, 0x27 /* OPX of mul is 0x27 */ + +.Lmultiply: + /* Initialize the multiplication loop. */ + movi r9, 0 /* mul_product = 0 */ + movi r10, 0 /* mulxuu_product = 0 */ + mov r11, r6 /* save original multiplier for mulxsu and mulxss */ + mov r12, r6 /* mulxuu_multiplier (will be shifted) */ + movi r16, 1 /* used to create "rori B,A,1" from "ror B,A,r16" */ + + /* Now + * r3 = multiplicand + * r6 = mul_multiplier + * r7 = 4 * dest_register (used later as offset to sp) + * r9 = mul_product + * r10 = mulxuu_product + * r11 = original multiplier + * r12 = mulxuu_multiplier + * r14 = loop counter (already initialized) + * r15 = temp + * r16 = 1 + */ + + + /* + * for (count = 32; count > 0; --count) + * { + */ +.Lmultiply_loop: + + /* + * mul_product <<= 1; + * lsb = multiplier & 1; + */ + slli r9, r9, 1 + andi r15, r12, 1 + + /* + * if (lsb == 1) + * { + * mulxuu_product += multiplicand; + * } + */ + beq r15, zero, .Lmulx_skip + add r10, r10, r3 + cmpltu r15, r10, r3 /* Save the carry from the MSB of mulxuu_product. */ + ror r15, r15, r16 /* r15 = 0x80000000 on carry, or else 0x00000000 */ +.Lmulx_skip: + + /* + * if (MSB of mul_multiplier == 1) + * { + * mul_product += multiplicand; + * } + */ + bge r6, zero, .Lmul_skip + add r9, r9, r3 +.Lmul_skip: + + /* + * mulxuu_product >>= 1; logical shift + * mul_multiplier <<= 1; done with MSB + * mulx_multiplier >>= 1; done with LSB + */ + srli r10, r10, 1 + or r10, r10, r15 /* OR in the saved carry bit. */ + slli r6, r6, 1 + srli r12, r12, 1 + + + /* + * } + */ + subi r14, r14, 1 + bne r14, zero, .Lmultiply_loop + + + /* + * Multiply emulation loop done. + */ + + /* Now + * r3 = multiplicand + * r4 = OPX + * r7 = 4 * dest_register (used later as offset to sp) + * r9 = mul_product + * r10 = mulxuu_product + * r11 = original multiplier + * r15 = temp + */ + + + /* + * Select/compute the result based on OPX. + */ + + + /* OPX == mul? Then store. */ + xori r15, r4, 0x27 + beq r15, zero, .Lstore_result + + /* It's one of the mulx.. opcodes. Move over the result. */ + mov r9, r10 + + /* OPX == mulxuu? Then store. */ + xori r15, r4, 0x07 + beq r15, zero, .Lstore_result + + /* Compute mulxsu + * + * mulxsu = mulxuu - ((rA < 0) ? rB : 0); + */ + bge r3, zero, .Lmulxsu_skip + sub r9, r9, r11 +.Lmulxsu_skip: + + /* OPX == mulxsu? Then store. */ + xori r15, r4, 0x17 + beq r15, zero, .Lstore_result + + /* Compute mulxss + * + * mulxss = mulxsu - ((rB < 0) ? rA : 0); + */ + bge r11, zero, .Lmulxss_skip + sub r9, r9, r3 +.Lmulxss_skip: + /* At this point, assume that OPX is mulxss, so store */ + + +.Lstore_result: + add r7, r7, sp + stw r9, 0(r7) + + ldw r16, 0(sp) + ldw r17, 4(sp) + ldw r18, 8(sp) + ldw r19, 12(sp) + ldw r20, 16(sp) + ldw r21, 20(sp) + ldw r22, 24(sp) + ldw r23, 28(sp) + + /* bt @ 32 - Breakpoint register usually isn't an operand. */ + /* et @ 36 - Don't corrupt et. */ + /* gp @ 40 - Don't corrupt gp. */ + /* sp @ 44 - Don't corrupt sp. */ + ldw fp, 48(sp) + /* ea @ 52 - Don't corrupt ea. */ + /* ba @ 56 - Breakpoint register usually isn't an operand. */ + + addi sp, sp, 60 + + br .Lexception_exit + + +.Lnot_muldiv: + + addi sp, sp, 60 + + + .section .exceptions.exit.label +.Lexception_exit: + diff --git a/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_exception_trap.S b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_exception_trap.S new file mode 100644 index 0000000..60a3d40 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_exception_trap.S @@ -0,0 +1,81 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003-2005 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + + /* + * This is the trap exception handler for Nios2. + */ + + /* + * Provide a label which can be used to pull this file in. + */ + + .section .exceptions.start + .globl alt_exception_trap +alt_exception_trap: + + /* + * Pull in the entry/exit code. + */ + .globl alt_exception + + .section .exceptions.soft, "xa" + +.Ltrap_handler: + + /* + * Did a trap instruction cause the exception? + * + * The instruction which the exception occurred on has been loaded + * into r2 by code in alt_exception_entry.S + * + */ + + movhi r3,0x003b /* upper half of trap opcode */ + ori r3,r3,0x683a /* lower half of trap opcode */ + bne r2,r3,.Lnot_trap + + /* + * There is no trap handler defined here, and so executing a trap + * instruction causes a software break. If you provide a trap handler, + * then you must replace the break instruction below with your handler. + * Your handler must preserve ea and the usual callee saved registers. + */ + + break + + br .Lexception_exit + +.Lnot_trap: + + + .section .exceptions.exit.label +.Lexception_exit: + + diff --git a/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_execve.c b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_execve.c new file mode 100644 index 0000000..27b99cf --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_execve.c @@ -0,0 +1,55 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_errno.h" +#include "sys/alt_warning.h" +#include "os/alt_syscall.h" + +/* + * execve() is used by newlib to launch new processes. This is unsupported in + * the HAL environment. However a "do-nothing" implementation is still + * provied for newlib compatability. + * + * ALT_EXECVE is mapped onto the execve() system call in alt_syscall.h + */ + +int ALT_EXECVE (char *name, char ** argv, char** env) +{ + /* Generate a link time warning, should this function ever be called. */ + + ALT_STUB_WARNING(execve); + + /* Indicate an error */ + + ALT_ERRNO = ENOSYS; + return -1; +} diff --git a/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_exit.c b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_exit.c new file mode 100644 index 0000000..971b35e --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_exit.c @@ -0,0 +1,71 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_irq.h" +#include "sys/alt_sim.h" +#include "os/alt_hooks.h" +#include "os/alt_syscall.h" + +#include "alt_types.h" +#include "sys/alt_log_printf.h" +/* + * _exit() is called by exit() in order to terminate the current process. + * Typically this is called when main() completes. It should never return. + * Since there is nowhere to go once this process completes, this + * implementation simply blocks forever. + * + * Note that interrupts are not disabled so that execution outside of this + * thread is allowed to continue. + * + * ALT_EXIT is mapped onto the _exit() system call in alt_syscall.h + */ + +void ALT_EXIT (int exit_code) +{ + /* ALT_LOG - please see HAL/inc/alt_log_printf.h for details */ + ALT_LOG_PRINT_BOOT("[alt_exit.c] Entering _exit() function.\r\n"); + ALT_LOG_PRINT_BOOT("[alt_exit.c] Exit code from main was %d.\r\n",exit_code); + /* Stop all other threads */ + + ALT_LOG_PRINT_BOOT("[alt_exit.c] Calling ALT_OS_STOP().\r\n"); + ALT_OS_STOP(); + + /* Provide notification to the simulator that we've stopped */ + + ALT_LOG_PRINT_BOOT("[alt_exit.c] Calling ALT_SIM_HALT().\r\n"); + ALT_SIM_HALT(exit_code); + + /* spin forever, since there's no where to go back to */ + + ALT_LOG_PRINT_BOOT("[alt_exit.c] Spinning forever.\r\n"); + while (1); +} diff --git a/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_fcntl.c b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_fcntl.c new file mode 100644 index 0000000..69c1544 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_fcntl.c @@ -0,0 +1,101 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include + +#include +#include + +#include "sys/alt_errno.h" +#include "priv/alt_file.h" +#include "alt_types.h" +#include "os/alt_syscall.h" + +#define ALT_FCNTL_FLAGS_MASK ((alt_u32) (O_APPEND | O_NONBLOCK)) + +/* + * fcntl() is a limited implementation of the standard fcntl() system call. + * It can be used to change the state of the flags associated with an open + * file descriptor. Normally these flags are set during the call to + * open(). It is anticipated that the main use of this function will be to + * change the state of a device from blocking to non-blocking (where this is + * supported). + * + * The input argument "fd" is the file descriptor to be manipulated. "cmd" + * is the command to execute. This can be either F_GETFL (return the + * current value of the flags) or F_SETFL (set the value of the flags). + * + * If "cmd" is F_SETFL then the argument "arg" is the new value of flags, + * otherwise "arg" is ignored. Only the flags: O_APPEND and O_NONBLOCK + * can be updated by a call to fcntl(). All other flags remain + * unchanged. + * + * ALT_FCNTL is mapped onto the fcntl() system call in alt_syscall.h + */ + +int ALT_FCNTL (int file, int cmd, ...) +{ + alt_fd* fd; + long flags; + va_list argp; + + /* + * A common error case is that when the file descriptor was created, the call + * to open() failed resulting in a negative file descriptor. This is trapped + * below so that we don't try and process an invalid file descriptor. + */ + + fd = (file < 0) ? NULL : &alt_fd_list[file]; + + if (fd) + { + switch (cmd) + { + case F_GETFL: + return fd->fd_flags & ~((alt_u32) ALT_FD_FLAGS_MASK); + case F_SETFL: + va_start(argp, cmd); + flags = va_arg(argp, long); + fd->fd_flags &= ~ALT_FCNTL_FLAGS_MASK; + fd->fd_flags |= (flags & ALT_FCNTL_FLAGS_MASK); + va_end(argp); + return 0; + default: + ALT_ERRNO = EINVAL; + return -1; + } + } + + ALT_ERRNO = EBADFD; + return -1; +} diff --git a/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_fd_lock.c b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_fd_lock.c new file mode 100644 index 0000000..0e2a85d --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_fd_lock.c @@ -0,0 +1,75 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +#include "priv/alt_file.h" + +/* + * alt_fd_lock() is called as a consequence of an ioctl call to gain exclusive + * access to a device, i.e.: + * + * ioctl (fd, TIOCEXCL, NULL); + * + * If there are no other open file descriptors which reference the same + * device, then alt_fd_lock() will grant the lock. Further calls to open() + * for this device will fail until the lock is released. + * + * This is done by calling close() for this file descriptor, or by calling: + * + * ioctl (fd, TIOCNXCL, NULL); + * + * The return value is zero for success, or negative in the case of failure. + */ + +int alt_fd_lock (alt_fd* fd) +{ + int i; + int rc = 0; + + ALT_SEM_PEND(alt_fd_list_lock, 0); + + for (i = 0; i < alt_max_fd; i++) + { + if ((&alt_fd_list[i] != fd) && (alt_fd_list[i].dev == fd->dev)) + { + rc = -EACCES; + goto alt_fd_lock_exit; + } + } + fd->fd_flags |= ALT_FD_EXCL; + + alt_fd_lock_exit: + + ALT_SEM_POST(alt_fd_list_lock); + return rc; +} diff --git a/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_fd_unlock.c b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_fd_unlock.c new file mode 100644 index 0000000..fb700dc --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_fd_unlock.c @@ -0,0 +1,56 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +#include "priv/alt_file.h" + +/* + * alt_fd_unlock() is the inverse of alt_fd_lock(). It is called as a + * consequence of a TIOCNXCL ioctl request, e.g: + * + * ioctl (fd, TIOCNXCL, NULL); + * + * It enables multiple file descriptors to exist for the same device. This + * is normally the case, but it may have been disabled by a previous call to + * alt_fd_lock(). + * + * Return zero on sucess, and a negative value on failure. + * + * The current implementation always succeeds. + */ + +int alt_fd_unlock (alt_fd* fd) +{ + fd->fd_flags &= ~ALT_FD_EXCL; + return 0; +} diff --git a/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_find_dev.c b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_find_dev.c new file mode 100644 index 0000000..37aefa4 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_find_dev.c @@ -0,0 +1,88 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include +#include + +#include "sys/alt_dev.h" +#include "priv/alt_file.h" + +#include "alt_types.h" + +/* + * alt_find_dev() is used by open() in order to locate a previously registered + * device with the name "name". The input argument "llist" is a pointer to the + * head of the device list to search. + * + * The return value is a pointer to the matching device, or NULL if there is + * no match. + * + * "name" must be an exact match for the devices registered name for a match to + * be found. + */ + +alt_dev* alt_find_dev(const char* name, alt_llist* llist) +{ + alt_dev* next = (alt_dev*) llist->next; + alt_32 len; + + len = strlen(name) + 1; + + /* + * Check each list entry in turn, until a match is found, or we reach the + * end of the list (i.e. next winds up pointing back to the list head). + */ + + while (next != (alt_dev*) llist) + { + + /* + * memcmp() is used here rather than strcmp() in order to reduce the size + * of the executable. + */ + + if (!memcmp (next->name, name, len)) + { + /* match found */ + + return next; + } + next = (alt_dev*) next->llist.next; + } + + /* No match found */ + + return NULL; +} + + diff --git a/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_find_file.c b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_find_file.c new file mode 100644 index 0000000..2d97ec2 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_find_file.c @@ -0,0 +1,89 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include +#include + +#include "sys/alt_dev.h" +#include "priv/alt_file.h" + +#include "alt_types.h" + +/* + * alt_find_file() is used by open() in order to locate a previously registered + * filesystem that owns that mount point that contains the file named "name". + * + * The return value is a pointer to the matching filesystem, or NULL if there is + * no match. + * + * A match is considered to have been found if the filesystem name followed by + * either '/' or '\0' is the prefix of the filename. For example the filename: + * "/myfilesystem/junk.txt" would match: "/myfilesystem", but not: "/myfile". + */ + +alt_dev* alt_find_file (const char* name) +{ + alt_dev* next = (alt_dev*) alt_fs_list.next; + + alt_32 len; + + /* + * Check each list entry in turn, until a match is found, or we reach the + * end of the list (i.e. next winds up pointing back to the list head). + */ + + while (next != (alt_dev*) &alt_fs_list) + { + len = strlen(next->name); + + if (next->name[len-1] == '/') + { + len -= 1; + } + + if (((name[len] == '/') || (name[len] == '\0')) && + !memcmp (next->name, name, len)) + { + /* match found */ + + return next; + } + next = (alt_dev*) next->llist.next; + } + + /* No match found */ + + return NULL; +} + + diff --git a/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_flash_dev.c b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_flash_dev.c new file mode 100644 index 0000000..213f721 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_flash_dev.c @@ -0,0 +1,69 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* Alt_flash.c - Functions to register a flash device to the "generic" flash * +* interface * +* * +* Author PRR * +* * +******************************************************************************/ + +#include +#include "sys/alt_llist.h" +#include "sys/alt_flash_dev.h" +#include "priv/alt_file.h" + +ALT_LLIST_HEAD(alt_flash_dev_list); + +alt_flash_fd* alt_flash_open_dev(const char* name) +{ + alt_flash_dev* dev = (alt_flash_dev*)alt_find_dev(name, &alt_flash_dev_list); + + if ((dev) && dev->open) + { + return dev->open(dev, name); + } + + return dev; +} + +void alt_flash_close_dev(alt_flash_fd* fd) +{ + if (fd && fd->close) + { + fd->close(fd); + } + return; +} + diff --git a/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_fork.c b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_fork.c new file mode 100644 index 0000000..ce74df0 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_fork.c @@ -0,0 +1,57 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_warning.h" +#include "sys/alt_errno.h" +#include "os/alt_syscall.h" + +/* + * The fork() system call is used by newlib to create a duplicate copy of the + * curent process. This is unsupported in the HAL environment. However a + * "do-nothing" implementation is still provied for newlib compatability. + * + * ALT_FORK is mapped onto the fork() system call in alt_syscall.h + */ + +int ALT_FORK (void) +{ + /* Generate a link time warning, should this function ever be called. */ + + ALT_STUB_WARNING(fork); + + /* Indicate an error */ + + ALT_ERRNO = ENOSYS; + return -1; +} + + diff --git a/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_fs_reg.c b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_fs_reg.c new file mode 100644 index 0000000..13437a1 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_fs_reg.c @@ -0,0 +1,75 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +#include "sys/alt_dev.h" +#include "priv/alt_file.h" + +/* + * The alt_fs_reg() function is used to register a file system. Once registered + * a device can be accessed using the standard posix calls: open(), read(), + * write() etc. + * + * System behaviour is undefined in the event that a file system is registered + * with a name that conflicts with an existing device or file system. + * + * alt_fs_reg() is not thread safe in the sense that there should be no other + * thread using the file system list at the time that alt_dev_reg() is called. In + * practice this means that alt_fs_reg() should only be called while operating + * in a single threaded mode. The expectation is that it will only be called + * by the file system initilisation functions invoked by alt_sys_init(), which in + * turn should only be called by the single threaded C startup code. + * + * A return value of zero indicates success. A negative return value indicates + * failure. + */ + +int alt_fs_reg (alt_dev* dev) +{ + /* + * check that the device has a name. + */ + + if (!dev->name) + { + return -ENODEV; + } + + /* + * register the file system. + */ + + alt_llist_insert(&alt_fs_list, &dev->llist); + + return 0; +} diff --git a/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_fstat.c b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_fstat.c new file mode 100644 index 0000000..af5d527 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_fstat.c @@ -0,0 +1,128 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include + +#include "sys/alt_dev.h" +#include "sys/alt_warning.h" +#include "sys/alt_errno.h" +#include "priv/alt_file.h" +#include "os/alt_syscall.h" + +/* + * The fstat() system call is used to obtain information about the capabilities + * of an open file descriptor. By default file descriptors are marked as + * being character devices. If a device or file system wishes to advertise + * alternative capabilities then they can register an fstat() function within + * their associated alt_dev structure. This will be called to fill in the + * entries in the imput "st" structure. + * + * This function is provided for compatability with newlib. + * + * ALT_FSTAT is mapped onto the fstat() system call in alt_syscall.h + */ + +#ifdef ALT_USE_DIRECT_DRIVERS + +#include "system.h" + +/* + * Provide minimal version that just describes all file descriptors + * as character devices for provided stdio devices. + */ +int ALT_FSTAT (int file, struct stat *st) +{ + switch (file) { +#ifdef ALT_STDIN_PRESENT + case 0: /* stdin file descriptor */ +#endif /* ALT_STDIN_PRESENT */ +#ifdef ALT_STDOUT_PRESENT + case 1: /* stdout file descriptor */ +#endif /* ALT_STDOUT_PRESENT */ +#ifdef ALT_STDERR_PRESENT + case 2: /* stderr file descriptor */ +#endif /* ALT_STDERR_PRESENT */ + st->st_mode = _IFCHR; + return 0; + default: + return -1; + } + +#if !defined(ALT_STDIN_PRESENT) && !defined(ALT_STDOUT_PRESENT) && !defined(ALT_STDERR_PRESENT) + /* Generate a link time warning, should this function ever be called. */ + ALT_STUB_WARNING(fstat); +#endif +} + +#else /* !ALT_USE_DIRECT_DRIVERS */ + +int ALT_FSTAT (int file, struct stat *st) +{ + alt_fd* fd; + + /* + * A common error case is that when the file descriptor was created, the call + * to open() failed resulting in a negative file descriptor. This is trapped + * below so that we don't try and process an invalid file descriptor. + */ + + fd = (file < 0) ? NULL : &alt_fd_list[file]; + + if (fd) + { + /* Call the drivers fstat() function to fill out the "st" structure. */ + + if (fd->dev->fstat) + { + return fd->dev->fstat(fd, st); + } + + /* + * If no function is provided, mark the fd as belonging to a character + * device. + */ + + else + { + st->st_mode = _IFCHR; + return 0; + } + } + else + { + ALT_ERRNO = EBADFD; + return -1; + } +} + +#endif /* ALT_USE_DIRECT_DRIVERS */ diff --git a/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_get_fd.c b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_get_fd.c new file mode 100644 index 0000000..db17b2c --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_get_fd.c @@ -0,0 +1,105 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include +#include + +#include "sys/alt_dev.h" +#include "priv/alt_file.h" + +#include "alt_types.h" + +#include "system.h" + +/* + * alt_get_fd() is called to allocate a new file descriptor from the file + * descriptor pool. If a file descriptor is succesfully allocated, it is + * configured to refer to device "dev". + * + * The return value is the index of the file descriptor structure (i.e. + * the offset of the file descriptor within the file descriptor array). A + * negative value indicates failure. + */ + +int alt_get_fd (alt_dev* dev) +{ + alt_32 i; + int rc = -EMFILE; + + /* + * Take the alt_fd_list_lock semaphore in order to avoid races when + * accessing the file descriptor pool. + */ + + ALT_SEM_PEND(alt_fd_list_lock, 0); + + /* + * Search through the list of file descriptors, and allocate the first + * free descriptor that's found. + * + * If a free descriptor is found, then the value of "alt_max_fd" is + * updated accordingly. "alt_max_fd" is a 'highwater mark' which + * indicates the highest file descriptor ever allocated. This is used to + * improve efficency when searching the file descriptor list, and + * therefore reduce contention on the alt_fd_list_lock semaphore. + */ + + for (i = 0; i < ALT_MAX_FD; i++) + { + if (!alt_fd_list[i].dev) + { + alt_fd_list[i].dev = dev; + if (i > alt_max_fd) + { + alt_max_fd = i; + } + rc = i; + goto alt_get_fd_exit; + } + } + + alt_get_fd_exit: + + /* + * Release the alt_fd_list_lock semaphore now that we are done with the + * file descriptor pool. + */ + + ALT_SEM_POST(alt_fd_list_lock); + + return rc; +} + + + + diff --git a/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_getchar.c b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_getchar.c new file mode 100644 index 0000000..a8f50d5 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_getchar.c @@ -0,0 +1,61 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +#ifdef ALT_USE_DIRECT_DRIVERS +#include "system.h" +#include "sys/alt_driver.h" +#include "sys/alt_stdio.h" +#include "priv/alt_file.h" +#include "unistd.h" +#endif + +/* + * Uses the ALT_DRIVER_READ() macro to call directly to driver if available. + * Otherwise, uses newlib provided getchar() routine. + */ +int +alt_getchar(void) +{ +#ifdef ALT_USE_DIRECT_DRIVERS + ALT_DRIVER_READ_EXTERNS(ALT_STDIN_DEV); + char c; + + if (ALT_DRIVER_READ(ALT_STDIN_DEV, &c, 1, alt_fd_list[STDIN_FILENO].fd_flags) <= 0) { + return -1; + } + return c; +#else + return getchar(); +#endif +} diff --git a/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_getpid.c b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_getpid.c new file mode 100644 index 0000000..2228c7e --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_getpid.c @@ -0,0 +1,47 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "os/alt_syscall.h" + +/* + * The getpid() system call is used by newlib to obtain the current process + * id. Since there is only ever a single process in the HAL environment, + * this just returns a constant. + * + * ALT_GETPID is mapped onto the getpid() system call in alt_syscall.h + */ + +int ALT_GETPID (void) +{ + return 0; +} + diff --git a/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_gettod.c b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_gettod.c new file mode 100644 index 0000000..ed86cba --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_gettod.c @@ -0,0 +1,125 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include +#include + +#include "sys/alt_alarm.h" +#include "alt_types.h" +#include "os/alt_syscall.h" + +/* + * Macro defining the number of micoseconds in a second. + */ + +#define ALT_US (1000000) + +/* + * "alt_timezone" and "alt_resettime" are the values of the the reset time and + * time zone set through the last call to settimeofday(). By default they are + * zero initialised. + */ + +struct timezone alt_timezone = {0, 0}; +struct timeval alt_resettime = {0, 0}; + +/* + * gettimeofday() can be called to obtain a time structure which indicates the + * current "wall clock" time. This is calculated using the elapsed number of + * system clock ticks, and the value of "alt_resettime" and "alt_timezone" set + * through the last call to settimeofday(). + * + * Warning: if this function is called concurrently with a call to + * settimeofday(), the value returned by gettimeofday() will be unreliable. + * + * ALT_GETTIMEOFDAY is mapped onto the gettimeofday() system call in + * alt_syscall.h + */ + + +#if defined (__GNUC__) && (__GNUC__ >= 4) +int ALT_GETTIMEOFDAY (struct timeval *ptimeval, void *ptimezone_vptr) +{ + struct timezone *ptimezone = (struct timezone*)ptimezone_vptr; +#else +int ALT_GETTIMEOFDAY (struct timeval *ptimeval, struct timezone *ptimezone) +{ +#endif + + alt_u32 nticks = alt_nticks (); + alt_u32 tick_rate = alt_ticks_per_second (); + + /* + * Check to see if the system clock is running. This is indicated by a + * non-zero system clock rate. If the system clock is not running, an error + * is generated and the contents of "ptimeval" and "ptimezone" are not + * updated. + */ + + if (tick_rate) + { + ptimeval->tv_sec = alt_resettime.tv_sec + nticks/tick_rate; + ptimeval->tv_usec = alt_resettime.tv_usec + + (alt_u32)(((alt_u64)nticks*(ALT_US/tick_rate))%ALT_US); + + while(ptimeval->tv_usec < 0) { + if (ptimeval->tv_sec <= 0) + { + ptimeval->tv_sec = 0; + ptimeval->tv_usec = 0; + break; + } + else + { + ptimeval->tv_sec--; + ptimeval->tv_usec += ALT_US; + } + } + + while(ptimeval->tv_usec >= ALT_US) { + ptimeval->tv_sec++; + ptimeval->tv_usec -= ALT_US; + } + + if (ptimezone) + { + ptimezone->tz_minuteswest = alt_timezone.tz_minuteswest; + ptimezone->tz_dsttime = alt_timezone.tz_dsttime; + } + + return 0; + } + + return -ENOTSUP; +} + diff --git a/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_gmon.c b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_gmon.c new file mode 100644 index 0000000..6add9f1 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_gmon.c @@ -0,0 +1,272 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003-2005 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include +#include +#include + +#include "priv/nios2_gmon_data.h" + +#include "sys/alt_irq.h" +#include "sys/alt_alarm.h" + + +/* Macros */ + +/* How large should the bins be which we use to generate the histogram */ +#define PCSAMPLE_BYTES_PER_BUCKET 32 + +#define NIOS2_READ_EA(dest) __asm__ ("mov %0, ea" : "=r" (dest)) + +/* The compiler inserts calls to mcount() at the start of + * every function call. The structure mcount_fn_arc records t + * he return address of the function called (in from_pc) + * and the return address of the mcount function + * (in self_pc). The number of times this arc is executed is + * recorded in the field count. + */ +struct mcount_fn_arc +{ + struct mcount_fn_arc * next; + void * from_pc; + unsigned int count; +}; + +/* We need to maintain a list of pointers to the heads of each adjacency + * list so that we can find them when writing out the gmon.out file. Since + * we don't know at the start of program execution how many functions will + * be called we use a list structure to do this. + */ +struct mcount_fn_entry +{ + struct mcount_fn_entry * next; + void * self_pc; + struct mcount_fn_arc * arc_head; +}; + +/* function prototypes */ + +void __mcount_record(void * self_pc, void * from_pc, struct mcount_fn_entry * fn_entry, struct mcount_fn_entry * * fn_head) __attribute__ ((no_instrument_function)); + +static __inline__ void * mcount_allocate(unsigned int size) __attribute__ ((no_instrument_function)); +static int nios2_pcsample_init(void) __attribute__ ((no_instrument_function)); +static alt_u32 nios2_pcsample(void* alarm) __attribute__ ((no_instrument_function)); + +/* global variables */ + +/* stext and etext are defined in the linker script */ +extern char stext[]; +extern char etext[]; + +/* Is the PC sampling stuff enabled yet? */ +static int pcsample_need_init = 1; + +#define HASH_BUCKETS 64 /* Must be a power of 2 */ + +/* This points to the list of adjacency list pointers. */ +struct mcount_fn_entry * __mcount_fn_head[HASH_BUCKETS]; + +/* pointer to the in-memory buffer containing the histogram */ +static unsigned short* s_pcsamples = 0; + +/* the address of the start and end of text section */ +static const unsigned int s_low_pc = (unsigned int)stext; +static const unsigned int s_high_pc = (unsigned int)etext; + +/* the alarm structure to register for pc sampling */ +static alt_alarm s_nios2_pcsample_alarm; + +unsigned int alt_gmon_data[GMON_DATA_SIZE] = +{ + 0x6e6f6d67, /* "gmon" */ + GMON_DATA_SIZE, + 0, + (unsigned int)stext, + (unsigned int)etext, + PCSAMPLE_BYTES_PER_BUCKET, + 0, + (unsigned int)__mcount_fn_head, + (unsigned int)(__mcount_fn_head + HASH_BUCKETS) +}; + +/* This holds the current slab of memory we're allocating out of */ +static char * mcount_slab_ptr = 0; +static int mcount_slab_size = 0; + +#define MCOUNT_SLAB_INCREMENT 1020 + + +/* + * We can't use malloc to allocate memory because that's too complicated, and + * can't be called at interrupt time. Use the lower level allocator instead + * because that's interrupt safe (and because we never free anything). + * + * For speed, we allocate a block of data at once. + */ +static __inline__ void * mcount_allocate(unsigned int size) +{ + void * data; + + if (size > mcount_slab_size) + { + mcount_slab_ptr = sbrk(MCOUNT_SLAB_INCREMENT); + mcount_slab_size = MCOUNT_SLAB_INCREMENT; + } + + data = mcount_slab_ptr; + mcount_slab_ptr += size; + mcount_slab_size -= size; + + return data; +} + + +/* + * Add the arc with the values of frompc and topc given to the graph. + * This function might be called at interrupt time so must be able to + * cope with reentrancy. + * + * The fast case, where we have already allocated a function arc, has been + * handled by the assmebler code. + */ +void __mcount_record(void * self_pc, void * from_pc, struct mcount_fn_entry * fn_entry, struct mcount_fn_entry * * fn_head) +{ + alt_irq_context context; + struct mcount_fn_arc * arc_entry; + + /* Keep trying to start up the PC sampler until it is running. + * (It can't start until the timer is going). + */ + if (pcsample_need_init) + { + pcsample_need_init = 0; + pcsample_need_init = nios2_pcsample_init(); + } + + /* + * We must disable interrupts around the allocation and the list update to + * prevent corruption if the instrumented function is re-entrant. + * + * It's safe for the code above to be stepping through the chain and be + * interrupted by this code modifying it - there is an edge case which will + * leave two copies of the same arc on the list (both with count=1), but + * this is dealt with on the host. + */ + context = alt_irq_disable_all(); + + if (fn_entry == NULL) + { + /* Add it to the list of functions we must output later. */ + fn_entry = (struct mcount_fn_entry *)mcount_allocate(sizeof(struct mcount_fn_entry)); + + fn_entry->self_pc = self_pc; + fn_entry->arc_head = NULL; + + fn_entry->next = *fn_head; + *fn_head = fn_entry; + } + + /* We will need a new list entry - if there was a list entry before + * then the assembler code would have handled it. */ + arc_entry = (struct mcount_fn_arc *)mcount_allocate(sizeof(struct mcount_fn_arc)); + + arc_entry->from_pc = from_pc; + arc_entry->count = 1; + + arc_entry->next = fn_entry->arc_head; + fn_entry->arc_head = arc_entry; + + alt_irq_enable_all(context); +} + + +/* + * nios2_pcsample_init starts profiling. + * It is called the first time mcount is called, and on subsequent calls to + * mcount until it returns zero. It initializes the pc histogram and turns on + * timer driven pc sampling. + */ +static int nios2_pcsample_init(void) +{ + unsigned int pcsamples_size; + + /* We sample the PC every tick */ + unsigned int prof_rate = alt_ticks_per_second(); + if (prof_rate == 0) + return 1; + + /* allocate the histogram buffer s_pcsamples */ + pcsamples_size = (s_high_pc - s_low_pc)/PCSAMPLE_BYTES_PER_BUCKET; + s_pcsamples = (unsigned short*)sbrk(pcsamples_size * sizeof(unsigned short)); + + if (s_pcsamples != 0) + { + /* initialize the buffer to zero */ + memset(s_pcsamples, 0, pcsamples_size * sizeof(unsigned short)); + + alt_gmon_data[GMON_DATA_PROFILE_DATA] = (int)s_pcsamples; + alt_gmon_data[GMON_DATA_PROFILE_RATE] = prof_rate; + + /* Sample every tick (it's cheap) */ + alt_alarm_start(&s_nios2_pcsample_alarm, 1, nios2_pcsample, 0); + } + + return 0; +} + + +/* + * Sample the PC value and store it in the histogram + */ +static alt_u32 nios2_pcsample(void* context) +{ + unsigned int pc; + unsigned int bucket; + + /* read the exception return address - this will be + * inaccurate if there are nested interrupts but we + * assume that this is rare and the inaccuracy will + * not be great */ + NIOS2_READ_EA(pc); + + /* + * If we're within the profilable range then increment the relevant + * bucket in the histogram + */ + if (pc >= s_low_pc && pc < s_high_pc && s_pcsamples != 0) + { + bucket = (pc - s_low_pc)/PCSAMPLE_BYTES_PER_BUCKET; + s_pcsamples[bucket]++; + } + + /* Sample every tick */ + return 1; +} + diff --git a/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_icache_flush.c b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_icache_flush.c new file mode 100644 index 0000000..4b706ed --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_icache_flush.c @@ -0,0 +1,84 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "nios2.h" +#include "system.h" + +#include "alt_types.h" +#include "sys/alt_cache.h" + +/* + * alt_icache_flush() is called to flush the instruction cache for a memory + * region of length "len" bytes, starting at address "start". + */ + +void alt_icache_flush (void* start, alt_u32 len) +{ +#if NIOS2_ICACHE_SIZE > 0 + + char* i; + char* end; + + /* + * This is the most we would ever need to flush. + */ + + if (len > NIOS2_ICACHE_SIZE) + { + len = NIOS2_ICACHE_SIZE; + } + + end = ((char*) start) + len; + + for (i = start; i < end; i+= NIOS2_ICACHE_LINE_SIZE) + { + __asm__ volatile ("flushi %0" :: "r" (i)); + } + + /* + * For an unaligned flush request, we've got one more line left. + * Note that this is dependent on NIOS2_ICACHE_LINE_SIZE to be a + * multiple of 2 (which it always is). + */ + + if (((alt_u32) start) & (NIOS2_ICACHE_LINE_SIZE - 1)) + { + __asm__ volatile ("flushi %0" :: "r" (i)); + } + + /* + * Having flushed the cache, flush any stale instructions in the + * pipeline + */ + + __asm__ volatile ("flushp"); + +#endif /* NIOS2_ICACHE_SIZE > 0 */ +} diff --git a/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_icache_flush_all.c b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_icache_flush_all.c new file mode 100644 index 0000000..5088552 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_icache_flush_all.c @@ -0,0 +1,46 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "nios2.h" +#include "system.h" + +#include "alt_types.h" +#include "sys/alt_cache.h" + +/* + * alt_icache_flush_all() is called to flush the entire instruction cache. + */ + +void alt_icache_flush_all (void) +{ +#if NIOS2_ICACHE_SIZE > 0 + alt_icache_flush (0, NIOS2_ICACHE_SIZE); +#endif +} diff --git a/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_iic.c b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_iic.c new file mode 100644 index 0000000..1db5afa --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_iic.c @@ -0,0 +1,106 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2009 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ +#include "system.h" + +/* + * This file implements the HAL Enhanced interrupt API for Nios II processors + * with an internal interrupt controller (IIC). For most routines, this serves + * as a wrapper layer over the legacy interrupt API (which must be used with + * the IIC only). + * + * Use of the enhanced API is recommended so that application and device + * drivers are compatible with a Nios II system configured with an external + * interrupt controller (EIC), or IIC. This will afford maximum portability. + * + * If an EIC is present, the EIC device driver must provide these routines, + * because their operation will be specific to that EIC type. + */ +#ifndef NIOS2_EIC_PRESENT +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT + +#include "sys/alt_irq.h" +#include "priv/alt_iic_isr_register.h" +#include "priv/alt_legacy_irq.h" + +/** @Function Description: This function registers an interrupt handler. + * If the function is succesful, then the requested interrupt will be enabled upon + * return. Registering a NULL handler will disable the interrupt. + * @API Type: External + * @param ic_id Ignored. + * @param irq IRQ number + * @return 0 if successful, else error (-1) + */ +int alt_ic_isr_register(alt_u32 ic_id, alt_u32 irq, alt_isr_func isr, + void *isr_context, void *flags) +{ + return alt_iic_isr_register(ic_id, irq, isr, isr_context, flags); +} + +/** @Function Description: This function enables a single interrupt. + * @API Type: External + * @param ic_id Ignored. + * @param irq IRQ number + * @return 0 if successful, else error (-1) + */ +int alt_ic_irq_enable (alt_u32 ic_id, alt_u32 irq) +{ + return alt_irq_enable(irq); +} + +/** @Function Description: This function disables a single interrupt. + * @API Type: External + * @param ic_id Ignored. + * @param irq IRQ number + * @return 0 if successful, else error (-1) + */ +int alt_ic_irq_disable(alt_u32 ic_id, alt_u32 irq) +{ + return alt_irq_disable(irq); +} + +/** @Function Description: This function to determine if corresponding + * interrupt is enabled. + * @API Type: External + * @param ic_id Ignored. + * @param irq IRQ number + * @return Zero if corresponding interrupt is disabled and + * non-zero otherwise. + */ +alt_u32 alt_ic_irq_enabled(alt_u32 ic_id, alt_u32 irq) +{ + alt_u32 irq_enabled; + + NIOS2_READ_IENABLE(irq_enabled); + + return (irq_enabled & (1 << irq)) ? 1: 0; +} + +#endif /* ALT_ENHANCED_INTERRUPT_API_PRESENT */ +#endif /* NIOS2_EIC_PRESENT */ diff --git a/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_iic_isr_register.c b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_iic_isr_register.c new file mode 100644 index 0000000..b104395 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_iic_isr_register.c @@ -0,0 +1,104 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2009 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ +#include +#include "system.h" + +/* + * Provides an interrupt registry mechanism for the any CPUs internal interrupt + * controller (IIC) when the enhanced interrupt API is active. + */ +#ifndef ALT_CPU_EIC_PRESENT +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT + +#include "alt_types.h" +#include "sys/alt_irq.h" +#include "priv/alt_iic_isr_register.h" + +/* + * The header, alt_irq_entry.h, contains the exception entry point, and is + * provided by the processor component. It is included here, so that the code + * will be added to the executable only if alt_irq_register() is present, i.e. + * if no interrupts are registered - there's no need to provide any + * interrupt handling. + */ + +#include "sys/alt_irq_entry.h" + +/* + * The header, alt_irq_table.h contains a table describing which function + * handles each interrupt. + */ + +#include "priv/alt_irq_table.h" + +/** @Function Description: This function registers an interrupt handler. + * If the function is succesful, then the requested interrupt will be enabled + * upon return. Registering a NULL handler will disable the interrupt. + * + * @API Type: External + * @param ic_id Interrupt controller ID + * @param irq IRQ ID number + * @param isr Pointer to interrupt service routine + * @param isr_context Opaque pointer passed to ISR + * @param flags + * @return 0 if successful, else error (-1) + */ +int alt_iic_isr_register(alt_u32 ic_id, alt_u32 irq, alt_isr_func isr, + void *isr_context, void *flags) +{ + int rc = -EINVAL; + int id = irq; /* IRQ interpreted as the interrupt ID. */ + alt_irq_context status; + + if (id < ALT_NIRQ) + { + /* + * interrupts are disabled while the handler tables are updated to ensure + * that an interrupt doesn't occur while the tables are in an inconsistant + * state. + */ + + status = alt_irq_disable_all(); + + alt_irq[id].handler = isr; + alt_irq[id].context = isr_context; + + rc = (isr) ? alt_ic_irq_enable(ic_id, id) : alt_ic_irq_disable(ic_id, id); + + alt_irq_enable_all(status); + } + + return rc; +} + +#endif /* ALT_ENHANCED_INTERRUPT_API_PRESENT */ +#endif /* ALT_CPU_EIC_PRESENT */ diff --git a/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_instruction_exception_entry.c b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_instruction_exception_entry.c new file mode 100644 index 0000000..f4f52fc --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_instruction_exception_entry.c @@ -0,0 +1,203 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2008 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ +#include "sys/alt_exceptions.h" +#include "nios2.h" +#include "alt_types.h" +#include "system.h" + +/* + * This file implements support for calling user-registered handlers for + * instruction-generated exceptions. This handler could also be reached + * in the event of a spurious interrupt. + * + * The handler code is optionally enabled through the "Enable + * Instruction-related Exception API" HAL BSP setting, which will + * define the macro below. + */ +#ifdef ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API + +/* Function pointer to exception callback routine */ +alt_exception_result (*alt_instruction_exception_handler) + (alt_exception_cause, alt_u32, alt_u32) = 0x0; + +/* Link entry routine to .exceptions section */ +int alt_instruction_exception_entry (alt_u32 exception_pc) + __attribute__ ((section (".exceptions"))); + +/* + * This is the entry point for instruction-generated exceptions handling. + * This routine will be called by alt_exceptions_entry.S, after it determines + * that an exception could not be handled by handlers that preceed that + * of instruction-generated exceptions (such as interrupts). + * + * For this to function properly, you must register an exception handler + * using alt_instruction_exception_register(). This routine will call + * that handler if it has been registered. Absent a handler, it will + * break break or hang as discussed below. + */ +int alt_instruction_exception_entry (alt_u32 exception_pc) +{ + alt_u32 cause, badaddr; + +/* + * If the processor hardware has the optional EXCEPTIONS & BADADDR registers, + * read them and pass their content to the user handler. These are always + * present if the MMU or MPU is enabled, and optionally for other advanced + * exception types via the "Extra exceptions information" setting in the + * processor (hardware) configuration. + * + * If these registers are not present, the cause field will be set to + * NIOS2_EXCEPTION_CAUSE_NOT_PRESENT. Your handling routine should + * check the validity of the cause argument before proceeding. + */ +#ifdef NIOS2_HAS_EXTRA_EXCEPTION_INFO + /* Get exception cause & "badaddr" */ + NIOS2_READ_EXCEPTION(cause); + cause = ( (cause & NIOS2_EXCEPTION_REG_CAUSE_MASK) >> + NIOS2_EXCEPTION_REG_CAUSE_OFST ); + + NIOS2_READ_BADADDR(badaddr); +#else + cause = NIOS2_EXCEPTION_CAUSE_NOT_PRESENT; + badaddr = 0; +#endif /* NIOS2_HAS_EXTRA_EXCEPTION_INFO */ + + if(alt_instruction_exception_handler) { + /* + * Call handler. Its return value indicates whether the exception-causing + * instruction should be re-issued. The code that called us, + * alt_eceptions_entry.S, will look at this value and adjust the ea + * register as necessary + */ + return alt_instruction_exception_handler(cause, exception_pc, badaddr); + } + /* + * We got here because an instruction-generated exception occured, but no + * handler is present. We do not presume to know how to handle it. If the + * debugger is present, break, otherwise hang. + * + * If you've reached here in the debugger, consider examining the + * EXCEPTIONS register cause bit-field, which was read into the 'cause' + * variable above, and compare it against the exceptions-type enumeration + * in alt_exceptions.h. This register is availabe if the MMU or MPU is + * present, or if the "Extra exceptions information" hardware option is + * selected. + * + * If you get here then one of the following could have happened: + * + * - An instruction-generated exception occured, and the processor + * does not have the extra exceptions feature enabled, or you + * have not registered a handler using + * alt_instruction_exception_register() + * + * Some examples of instruction-generated exceptions and why they + * might occur: + * + * - Your program could have been compiled for a full-featured + * Nios II core, but it is running on a smaller core, and + * instruction emulation has been disabled by defining + * ALT_NO_INSTRUCTION_EMULATION. + * + * You can work around the problem by re-enabling instruction + * emulation, or you can figure out why your program is being + * compiled for a system other than the one that it is running on. + * + * - Your program has executed a trap instruction, but has not + * implemented a handler for this instruction. + * + * - Your program has executed an illegal instruction (one which is + * not defined in the instruction set). + * + * - Your processor includes an MMU or MPU, and you have enabled it + * before registering an exception handler to service exceptions it + * generates. + * + * The problem could also be hardware related: + * - If your hardware is broken and is generating spurious interrupts + * (a peripheral which negates its interrupt output before its + * interrupt handler has been executed will cause spurious interrupts) + */ + else { +#ifdef NIOS2_HAS_DEBUG_STUB + NIOS2_BREAK(); +#else + while(1) + ; +#endif /* NIOS2_HAS_DEBUG_STUB */ + } + + /* // We should not get here. Remove compiler warning. */ + return NIOS2_EXCEPTION_RETURN_REISSUE_INST; +} + +#endif /* ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API */ + +/* + * This routine indicates whether a particular exception cause will have + * set a valid address into the BADADDR register, which is included + * in the arguments to a user-registered instruction-generated exception + * handler. Many exception types do not set valid contents in BADADDR; + * this is a convenience routine to easily test the validity of that + * argument in your handler. + * + * Note that this routine will return false (0) for cause '12', + * TLB miss. This is because there are four exception types that + * share that cause, two of which do not have a valid BADADDR. You + * must determine BADADDR's validity for these. + * + * Arguments: + * cause: The 5-bit exception cause field of the EXCEPTIONS register, + * shifted to the LSB position. You may pass the 'cause' argument + * in a handler you registered directy to this routine. + * + * Return: 1: BADADDR (bad_addr argument to handler) is valid + * 0: BADADDR is not valid + */ +int alt_exception_cause_generated_bad_addr(alt_exception_cause cause) +{ + switch (cause) { + case NIOS2_EXCEPTION_SUPERVISOR_ONLY_DATA_ADDR: + return 1; + case NIOS2_EXCEPTION_MISALIGNED_DATA_ADDR: + return 1; + case NIOS2_EXCEPTION_MISALIGNED_TARGET_PC: + return 1; + case NIOS2_EXCEPTION_TLB_READ_PERM_VIOLATION: + return 1; + case NIOS2_EXCEPTION_TLB_WRITE_PERM_VIOLATION: + return 1; + case NIOS2_EXCEPTION_MPU_DATA_REGION_VIOLATION: + return 1; + default: + return 0; + } +} diff --git a/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_instruction_exception_register.c b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_instruction_exception_register.c new file mode 100644 index 0000000..b059e1d --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_instruction_exception_register.c @@ -0,0 +1,82 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2008 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ +#include "sys/alt_exceptions.h" +#include "alt_types.h" +#include "system.h" + +/* + * This file implements support for calling user-registered handlers for + * instruction-generated exceptions. + * + * The registry API is optionally enabled through the "Enable + * Instruction-related Exception API" HAL BSP setting, which will + * define the macro below. + */ +#ifdef ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API + +/* + * The header, alt_exception_handler_registry.h contains a struct describing + * the registered exception handler + */ +#include "priv/alt_exception_handler_registry.h" + +/* + * Pull in the exception entry assembly code. This will not be linked in + * unless this object is linked into the executable (i.e. only if + * alt_instruction_exception_register() is called). + */ +__asm__( "\n\t.globl alt_exception" ); + +/* + * alt_instruction_exception_register() is called to register a handler to + * service instruction-generated exceptions that are not handled by the + * default exception handler code (interrupts, and optionally unimplemented + * instructions and traps). + * + * Passing null (0x0) in the handler argument will disable a previously- + * registered handler. + * + * Note that if no handler is registered, exceptions that are not processed + * using the built-in handler (interrupts, and optionally unimplemented + * instructions and traps) are treated as unknown exceptions, resulting + * in either a break or an infinite loop. + */ +void alt_instruction_exception_register ( + alt_exception_result (*exception_handler)( + alt_exception_cause cause, + alt_u32 exception_pc, + alt_u32 bad_addr) ) +{ + alt_instruction_exception_handler = exception_handler; +} + +#endif /* ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API */ diff --git a/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_io_redirect.c b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_io_redirect.c new file mode 100644 index 0000000..8c862f7 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_io_redirect.c @@ -0,0 +1,98 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include +#include +#include + +#include "sys/alt_dev.h" +#include "priv/alt_file.h" + + +/* + * alt_open_fd() is similar to open() in that it is used to obtain a file + * descriptor for the file named "name". The "flags" and "mode" arguments are + * identical to the "flags" and "mode" arguments of open(). + * + * The distinction between the two functions is that the file descriptor + * structure to use is passed in as an argument, rather than allocated from the + * list of free file descriptors. + * + * This is used by alt_io_redirect() to redirect the stdin, stdout and stderr + * file descriptors to point to new devices. + * + * If the device can not be succesfully opened, then the input file descriptor + * remains unchanged. + */ + +static void alt_open_fd(alt_fd* fd, const char* name, int flags, int mode) +{ + int old; + + old = open (name, flags, mode); + + if (old >= 0) + { + fd->dev = alt_fd_list[old].dev; + fd->priv = alt_fd_list[old].priv; + fd->fd_flags = alt_fd_list[old].fd_flags; + + alt_release_fd (old); + } +} + +/* + * alt_io_redirect() is called once the device/filesystem lists have been + * initialised, but before main(). Its function is to redirect standard in, + * standard out and standard error so that they point to the devices selected by + * the user (as defined in system.h). + * + * Prior to the call to this function, io is directed towards /dev/null. If + * i/o can not be redirected to the requested device, for example if the device + * does not exist, then it remains directed at /dev/null. + */ + +void alt_io_redirect(const char* stdout_dev, + const char* stdin_dev, + const char* stderr_dev) +{ + /* Redirect the channels */ + + alt_open_fd (&alt_fd_list[STDOUT_FILENO], stdout_dev, O_WRONLY, 0777); + alt_open_fd (&alt_fd_list[STDIN_FILENO], stdin_dev, O_RDONLY, 0777); + alt_open_fd (&alt_fd_list[STDERR_FILENO], stderr_dev, O_WRONLY, 0777); +} + + + + diff --git a/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_ioctl.c b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_ioctl.c new file mode 100644 index 0000000..f5d7ef1 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_ioctl.c @@ -0,0 +1,170 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +#include "sys/ioctl.h" +#include "sys/alt_errno.h" +#include "sys/alt_warning.h" +#include "priv/alt_file.h" +#include "os/alt_syscall.h" + +/* + * The ioctl() system call is provided so that application code can manipulate + * the i/o capabilities of a device in device specific ways. This is identical + * to the standard posix ioctl() function. + * + * In general this implementation simply vectors ioctl requests to the + * apropriate drivers ioctl function (as registered in the drivers alt_dev + * structure). + * + * However in the case of devices (as oposed to filesystem), the TIOCEXCL and + * TIOCNXCL requests are handled without reference to the driver. These + * requests are used to lock/release a device for exclusive access. + * + * Handling these requests centrally eases the task of device driver + * development. + * + * ALT_IOCTL is mapped onto the ioctl() system call in alt_syscall.h + */ + +#ifdef ALT_USE_DIRECT_DRIVERS + +#include "system.h" +#include "sys/alt_driver.h" + +/* + * Provide minimal version that calls ioctl routine of provided stdio devices. + */ +int ALT_IOCTL (int file, int req, void* arg) +{ +#ifdef ALT_STDIN_PRESENT + ALT_DRIVER_IOCTL_EXTERNS(ALT_STDIN_DEV); +#endif +#ifdef ALT_STDOUT_PRESENT + ALT_DRIVER_IOCTL_EXTERNS(ALT_STDOUT_DEV); +#endif +#ifdef ALT_STDERR_PRESENT + ALT_DRIVER_IOCTL_EXTERNS(ALT_STDERR_DEV); +#endif + +#if !defined(ALT_STDIN_PRESENT) && !defined(ALT_STDOUT_PRESENT) && !defined(ALT_STDERR_PRESENT) + /* Generate a link time warning, should this function ever be called. */ + ALT_STUB_WARNING(ioctl); +#endif + + switch (file) { +#ifdef ALT_STDIN_PRESENT + case 0: /* stdin file descriptor */ + return ALT_DRIVER_IOCTL(ALT_STDIN_DEV, req, arg); +#endif /* ALT_STDIN_PRESENT */ +#ifdef ALT_STDOUT_PRESENT + case 1: /* stdout file descriptor */ + return ALT_DRIVER_IOCTL(ALT_STDOUT_DEV, req, arg); +#endif /* ALT_STDOUT_PRESENT */ +#ifdef ALT_STDERR_PRESENT + case 2: /* stderr file descriptor */ + return ALT_DRIVER_IOCTL(ALT_STDERR_DEV, req, arg); +#endif /* ALT_STDERR_PRESENT */ + default: + ALT_ERRNO = EBADFD; + return -1; + } +} + +#else /* !ALT_USE_DIRECT_DRIVERS */ + +int ALT_IOCTL (int file, int req, void* arg) +{ + alt_fd* fd; + int rc; + + /* + * A common error case is that when the file descriptor was created, the call + * to open() failed resulting in a negative file descriptor. This is trapped + * below so that we don't try and process an invalid file descriptor. + */ + + fd = (file < 0) ? NULL : &alt_fd_list[file]; + + if (fd) + { + + /* + * In the case of device drivers (not file systems) handle the TIOCEXCL + * and TIOCNXCL requests as special cases. + */ + + if (fd->fd_flags & ALT_FD_DEV) + { + if (req == TIOCEXCL) + { + rc = alt_fd_lock (fd); + goto ioctl_done; + } + else if (req == TIOCNXCL) + { + rc = alt_fd_unlock (fd); + goto ioctl_done; + } + } + + /* + * If the driver provides an ioctl() function, call that to handle the + * request, otherwise set the return code to indicate that the request + * could not be processed. + */ + + if (fd->dev->ioctl) + { + rc = fd->dev->ioctl(fd, req, arg); + } + else + { + rc = -ENOTTY; + } + } + else + { + rc = -EBADFD; + } + +ioctl_done: + + if (rc < 0) + { + ALT_ERRNO = -rc; + } + return rc; +} + +#endif /* ALT_USE_DIRECT_DRIVERS */ diff --git a/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_irq_entry.S b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_irq_entry.S new file mode 100644 index 0000000..d3efe7d --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_irq_entry.S @@ -0,0 +1,108 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003-2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "system.h" + +/* + * This is the interrupt exception entry point code, which saves all the + * registers and calls the interrupt handler. It should be pulled in using + * a .globl from alt_irq_register.c. This scheme is used so that if an + * interrupt is never registered, then this code will not appear in the + * generated executable, thereby improving code footprint. + */ + + /* + * Explicitly allow the use of r1 (the assembler temporary register) + * within this code. This register is normally reserved for the use of + * the compiler. + */ + .set noat + + /* + * Pull in the exception handler register save code. + */ + .globl alt_exception + + .globl alt_irq_entry + .section .exceptions.entry.label, "xa" +alt_irq_entry: + + /* + * Section .exceptions.entry is in alt_exception_entry.S + * This saves all the caller saved registers and reads estatus into r5 + */ + + .section .exceptions.irqtest, "xa" + +#ifdef ALT_CI_INTERRUPT_VECTOR_N + /* + * Use the interrupt vector custom instruction if present to accelerate + * this code. + * If the interrupt vector custom instruction returns a negative + * value, there are no interrupts active (estatus.pie is 0 + * or ipending is 0) so assume it is a software exception. + */ + custom ALT_CI_INTERRUPT_VECTOR_N, r4, r0, r0 + blt r4, r0, .Lnot_irq +#else + /* + * Test to see if the exception was a software exception or caused + * by an external interrupt, and vector accordingly. + */ + rdctl r4, ipending + andi r2, r5, 1 + beq r2, zero, .Lnot_irq + beq r4, zero, .Lnot_irq +#endif /* ALT_CI_INTERRUPT_VECTOR_N */ + + .section .exceptions.irqhandler, "xa" + /* + * Now that all necessary registers have been preserved, call + * alt_irq_handler() to process the interrupts. + */ + + call alt_irq_handler + + .section .exceptions.irqreturn, "xa" + + br .Lexception_exit + + .section .exceptions.notirq.label, "xa" + +.Lnot_irq: + + /* + * Section .exceptions.exit is in alt_exception_entry.S + * This restores all the caller saved registers + */ + + .section .exceptions.exit.label +.Lexception_exit: + diff --git a/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_irq_handler.c b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_irq_handler.c new file mode 100644 index 0000000..3253d02 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_irq_handler.c @@ -0,0 +1,169 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2009 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include "system.h" + +/* + * This interrupt handler only works with an internal interrupt controller + * (IIC). Processors with an external interrupt controller (EIC) use an + * implementation provided by an EIC driver. + */ +#ifndef ALT_CPU_EIC_PRESENT + +#include "sys/alt_irq.h" +#include "os/alt_hooks.h" + +#include "alt_types.h" + +/* + * A table describing each interrupt handler. The index into the array is the + * interrupt id associated with the handler. + * + * When an interrupt occurs, the associated handler is called with + * the argument stored in the context member. + */ +struct ALT_IRQ_HANDLER +{ +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT + void (*handler)(void*); +#else + void (*handler)(void*, alt_u32); +#endif + void *context; +} alt_irq[ALT_NIRQ]; + +/* + * alt_irq_handler() is called by the interrupt exception handler in order to + * process any outstanding interrupts. + * + * It is defined here since it is linked in using weak linkage. + * This means that if there is never a call to alt_irq_register() (above) then + * this function will not get linked in to the executable. This is acceptable + * since if no handler is ever registered, then an interrupt can never occur. + * + * If Nios II interrupt vector custom instruction exists, use it to accelerate + * the dispatch of interrupt handlers. The Nios II interrupt vector custom + * instruction is present if the macro ALT_CI_INTERRUPT_VECTOR defined. + */ + +void alt_irq_handler (void) __attribute__ ((section (".exceptions"))); +void alt_irq_handler (void) +{ +#ifdef ALT_CI_INTERRUPT_VECTOR + alt_32 offset; + char* alt_irq_base = (char*)alt_irq; +#else + alt_u32 active; + alt_u32 mask; + alt_u32 i; +#endif /* ALT_CI_INTERRUPT_VECTOR */ + + /* + * Notify the operating system that we are at interrupt level. + */ + + ALT_OS_INT_ENTER(); + +#ifdef ALT_CI_INTERRUPT_VECTOR + /* + * Call the interrupt vector custom instruction using the + * ALT_CI_INTERRUPT_VECTOR macro. + * It returns the offset into the vector table of the lowest-valued pending + * interrupt (corresponds to highest priority) or a negative value if none. + * The custom instruction assumes that each table entry is eight bytes. + */ + while ((offset = ALT_CI_INTERRUPT_VECTOR) >= 0) { + struct ALT_IRQ_HANDLER* handler_entry = + (struct ALT_IRQ_HANDLER*)(alt_irq_base + offset); +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT + handler_entry->handler(handler_entry->context); +#else + handler_entry->handler(handler_entry->context, offset >> 3); +#endif + } +#else /* ALT_CI_INTERRUPT_VECTOR */ + /* + * Obtain from the interrupt controller a bit list of pending interrupts, + * and then process the highest priority interrupt. This process loops, + * loading the active interrupt list on each pass until alt_irq_pending() + * return zero. + * + * The maximum interrupt latency for the highest priority interrupt is + * reduced by finding out which interrupts are pending as late as possible. + * Consider the case where the high priority interupt is asserted during + * the interrupt entry sequence for a lower priority interrupt to see why + * this is the case. + */ + + active = alt_irq_pending (); + + do + { + i = 0; + mask = 1; + + /* + * Test each bit in turn looking for an active interrupt. Once one is + * found, the interrupt handler asigned by a call to alt_irq_register() is + * called to clear the interrupt condition. + */ + + do + { + if (active & mask) + { +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT + alt_irq[i].handler(alt_irq[i].context); +#else + alt_irq[i].handler(alt_irq[i].context, i); +#endif + break; + } + mask <<= 1; + i++; + + } while (1); + + active = alt_irq_pending (); + + } while (active); +#endif /* ALT_CI_INTERRUPT_VECTOR */ + + /* + * Notify the operating system that interrupt processing is complete. + */ + + ALT_OS_INT_EXIT(); +} + +#endif /* ALT_CPU_EIC_PRESENT */ diff --git a/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_irq_register.c b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_irq_register.c new file mode 100644 index 0000000..b5ea474 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_irq_register.c @@ -0,0 +1,102 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2009 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ +#include +#include "system.h" + +/* + * This interrupt registry mechanism works with the Nios II internal interrupt + * controller (IIC) only. Systems with an external interrupt controller (EIC), + * or those with the IIC who are using the enhanced interrupt API will + * utilize the alt_ic_isr_register() routine to register an interrupt. + */ +#ifndef NIOS2_EIC_PRESENT + +#include "sys/alt_irq.h" +#include "priv/alt_legacy_irq.h" +#include "os/alt_hooks.h" + +#include "alt_types.h" + +/* + * The header, alt_irq_entry.h, contains the exception entry point, and is + * provided by the processor component. It is included here, so that the code + * will be added to the executable only if alt_irq_register() is present, i.e. + * if no interrupts are registered - there's no need to provide any + * interrupt handling. + */ + +#include "sys/alt_irq_entry.h" + +/* + * The header, alt_irq_table.h contains a table describing which function + * handles each interrupt. + */ + +#include "priv/alt_irq_table.h" + +/* + * alt_irq_handler() is called to register an interrupt handler. If the + * function is succesful, then the requested interrupt will be enabled upon + * return. Registering a NULL handler will disable the interrupt. + * + * The return value is 0 if the interrupt handler was registered and the + * interrupt was enabled, otherwise it is negative. + */ + +int alt_irq_register (alt_u32 id, + void* context, + alt_isr_func handler) +{ + int rc = -EINVAL; + alt_irq_context status; + + if (id < ALT_NIRQ) + { + /* + * interrupts are disabled while the handler tables are updated to ensure + * that an interrupt doesn't occur while the tables are in an inconsistant + * state. + */ + + status = alt_irq_disable_all (); + + alt_irq[id].handler = handler; + alt_irq[id].context = context; + + rc = (handler) ? alt_irq_enable (id): alt_irq_disable (id); + + alt_irq_enable_all(status); + } + return rc; +} +#endif /* NIOS2_EIC_PRESENT */ + diff --git a/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_irq_vars.c b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_irq_vars.c new file mode 100644 index 0000000..8c0a18d --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_irq_vars.c @@ -0,0 +1,47 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "alt_types.h" + +#include "system.h" + +/* + * These global variables are used to save the current list of enabled + * interrupts. See alt_irq.h for further details. + */ + +volatile alt_u32 alt_irq_active = 0; + +#ifndef ALT_EXCEPTION_STACK + +volatile alt_u32 alt_priority_mask = (alt_u32) -1; + +#endif + diff --git a/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_isatty.c b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_isatty.c new file mode 100644 index 0000000..9276472 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_isatty.c @@ -0,0 +1,125 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include + +#include "sys/alt_dev.h" +#include "sys/alt_errno.h" +#include "sys/alt_warning.h" +#include "priv/alt_file.h" +#include "os/alt_syscall.h" + +#ifdef ALT_USE_DIRECT_DRIVERS + +#include "system.h" + +/* + * Provide minimal version that just describes all file descriptors + * as tty devices for provided stdio devices. + */ +int ALT_ISATTY (int file) +{ + switch (file) { +#ifdef ALT_STDIN_PRESENT + case 0: /* stdin file descriptor */ +#endif /* ALT_STDIN_PRESENT */ +#ifdef ALT_STDOUT_PRESENT + case 1: /* stdout file descriptor */ +#endif /* ALT_STDOUT_PRESENT */ +#ifdef ALT_STDERR_PRESENT + case 2: /* stderr file descriptor */ +#endif /* ALT_STDERR_PRESENT */ + return 1; + default: + return 0; + } + +#if !defined(ALT_STDIN_PRESENT) && !defined(ALT_STDOUT_PRESENT) && !defined(ALT_STDERR_PRESENT) + /* Generate a link time warning, should this function ever be called. */ + ALT_STUB_WARNING(isatty); +#endif +} + +#else /* !ALT_USE_DIRECT_DRIVERS */ +/* + * isatty() can be used to determine whether the input file descriptor "file" + * refers to a terminal device or not. If it is a terminal device then the + * return value is one, otherwise it is zero. + * + * ALT_ISATTY is mapped onto the isatty() system call in alt_syscall.h + */ + +int ALT_ISATTY (int file) +{ + alt_fd* fd; + struct stat stat; + + /* + * A common error case is that when the file descriptor was created, the call + * to open() failed resulting in a negative file descriptor. This is trapped + * below so that we don't try and process an invalid file descriptor. + */ + + fd = (file < 0) ? NULL : &alt_fd_list[file]; + + if (fd) + { + /* + * If a device driver does not provide an fstat() function, then it is + * treated as a terminal device by default. + */ + + if (!fd->dev->fstat) + { + return 1; + } + + /* + * If a driver does provide an implementation of the fstat() function, then + * this is called so that the device can identify itself. + */ + + else + { + fstat (file, &stat); + return (stat.st_mode == _IFCHR) ? 1 : 0; + } + } + else + { + ALT_ERRNO = EBADFD; + return 0; + } +} + +#endif /* ALT_USE_DIRECT_DRIVERS */ diff --git a/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_kill.c b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_kill.c new file mode 100644 index 0000000..42c2e1d --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_kill.c @@ -0,0 +1,121 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include + +#include "sys/alt_errno.h" +#include "os/alt_syscall.h" + + +/* + * kill() is used by newlib in order to send signals to processes. Since there + * is only a single process in the HAL, the only valid values for pid are + * either the current process id, or the broadcast values, i.e. pid must be + * less than or equal to zero. + * + * ALT_KILL is mapped onto the kill() system call in alt_syscall.h + */ + +int ALT_KILL (int pid, int sig) +{ + int status = 0; + + if (pid <= 0) + { + switch (sig) + { + case 0: + + /* The null signal is used to check that a pid is valid. */ + + break; + + case SIGABRT: + case SIGALRM: + case SIGFPE: + case SIGILL: + case SIGKILL: + case SIGPIPE: + case SIGQUIT: + case SIGSEGV: + case SIGTERM: + case SIGUSR1: + case SIGUSR2: + case SIGBUS: + case SIGPOLL: + case SIGPROF: + case SIGSYS: + case SIGTRAP: + case SIGVTALRM: + case SIGXCPU: + case SIGXFSZ: + + /* + * The Posix standard defines the default behaviour for all these signals + * as being eqivalent to a call to _exit(). No mechanism is provided to + * change this behaviour. + */ + + _exit(0); + case SIGCHLD: + case SIGURG: + + /* + * The Posix standard defines these signals to be ignored by default. No + * mechanism is provided to change this behaviour. + */ + + break; + default: + + /* Tried to send an unsupported signal */ + + status = EINVAL; + } + } + + else if (pid > 0) + { + /* Attempted to signal a non-existant process */ + + status = ESRCH; + } + + if (status) + { + ALT_ERRNO = status; + return -1; + } + + return 0; +} diff --git a/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_link.c b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_link.c new file mode 100644 index 0000000..d796c59 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_link.c @@ -0,0 +1,56 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_warning.h" +#include "sys/alt_errno.h" +#include "os/alt_syscall.h" + +/* + * link() is used by newlib to create a new link to an existing file. This is + * unsupported in the HAL environment. However a "do-nothing" implementation + * is still provied for newlib compatability. + * + * ALT_LINK is mapped onto the link() system call in alt_syscall.h + */ + +int ALT_LINK ( char *existing, char *new) +{ + /* Generate a link time warning, should this function ever be called. */ + + ALT_STUB_WARNING(link); + + /* Indicate an error */ + + ALT_ERRNO = ENOSYS; + return -1; +} + diff --git a/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_load.c b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_load.c new file mode 100644 index 0000000..ffab4b9 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_load.c @@ -0,0 +1,88 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004-2005 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_load.h" +#include "sys/alt_cache.h" + +/* + * Linker defined symbols. + */ + +extern void __flash_rwdata_start; +extern void __ram_rwdata_start; +extern void __ram_rwdata_end; +extern void __flash_rodata_start; +extern void __ram_rodata_start; +extern void __ram_rodata_end; +extern void __flash_exceptions_start; +extern void __ram_exceptions_start; +extern void __ram_exceptions_end; + +/* + * alt_load() is called when the code is executing from flash. In this case + * there is no bootloader, so this application is responsible for loading to + * RAM any sections that are required. + */ + +void alt_load (void) +{ + /* + * Copy the .rwdata section. + */ + + alt_load_section (&__flash_rwdata_start, + &__ram_rwdata_start, + &__ram_rwdata_end); + + /* + * Copy the exception handler. + */ + + alt_load_section (&__flash_exceptions_start, + &__ram_exceptions_start, + &__ram_exceptions_end); + + /* + * Copy the .rodata section. + */ + + alt_load_section (&__flash_rodata_start, + &__ram_rodata_start, + &__ram_rodata_end); + + /* + * Now ensure that the caches are in synch. + */ + + alt_dcache_flush_all(); + alt_icache_flush_all(); +} diff --git a/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_log_macro.S b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_log_macro.S new file mode 100644 index 0000000..499c4ad --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_log_macro.S @@ -0,0 +1,56 @@ +/* alt_log_macro.S + * + * Implements the function tx_log_str, called by the assembly macro + * ALT_LOG_PUTS(). The macro will be empty when logging is turned off, + * and this function will not be compiled. When logging is on, + * this function is used to print out the strings defined in the beginning + * of alt_log_printf.c, using port information taken from system.h and + * alt_log_printf.h. + * + * This routine only handles strings, and sends a character into the defined + * output device's output buffer when the device is ready. It's intended for + * debugging purposes, where messages can be set to print out at certain + * points in the boot code to indicate the progress of the program. + * + */ + +#ifndef __ALT_LOG_MACROS__ +#define __ALT_LOG_MACROS__ + +/* define this flag to skip assembly-incompatible parts + * of various include files. */ +#define ALT_ASM_SRC + +#ifdef ALT_LOG_ENABLE // only compile this function if this flag is defined. + + #include "system.h" + #include "sys/alt_log_printf.h" + + .global tx_log_str +tx_log_str: + /* load base uart / jtag uart address into r6 */ + movhi r6, %hiadj(ALT_LOG_PORT_BASE) + addi r6, r6, %lo(ALT_LOG_PORT_BASE) +tx_next_char: + /* if pointer points to null, return + * r4 is the pointer to the str to be printed, set by ALT_LOG_PUTS */ + ldb r7, (r4) + beq r0, r7, end_tx + + /* check device transmit ready */ +wait_tx_ready_loop: + ldwio r5, ALT_LOG_PRINT_REG_OFFSET(r6) + andi r5, r5, ALT_LOG_PRINT_MSK + beq r5, r0, wait_tx_ready_loop + /* write char */ + stwio r7, ALT_LOG_PRINT_TXDATA_REG_OFFSET (r6) + /* advance string pointer */ + addi r4, r4, 1 + br tx_next_char +end_tx: + ret + +#endif + +#endif /* __ALT_LOG_MACROS__ */ + diff --git a/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_log_printf.c b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_log_printf.c new file mode 100644 index 0000000..1f7056d --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_log_printf.c @@ -0,0 +1,479 @@ + +/* alt_log_printf.c + * + * This file implements the various C functions used for the + * alt_log logging/debugging print functions. The functions + * sit as is here - the job of hiding them from the compiler + * if logging is disabled is accomplished in the .h file. + * + * All the global variables for alt_log are defined here. + * These include the various flags that turn on additional + * logging options; the strings for assembly printing; and + * other globals needed by different logging options. + * + * There are 4 functions that handle the actual printing: + * alt_log_txchar: Actual function that puts 1 char to UART/JTAG UART. + * alt_log_repchar: Calls alt_log_txchar 'n' times - used by + * alt_log_private_printf for formatting. + * alt_log_private_printf: + * Stripped down implementation of printf - no floats. + * alt_log_printf_proc: + * Wrapper function for private_printf. + * + * The rest of the functions are called by the macros which + * were called by code in the other components. Each function + * is preceded by a comment, about which file it gets called + * in, and what its purpose is. + * + * author: gkwan + */ + +/* skip all code if enable is off */ +#ifdef ALT_LOG_ENABLE + +#include +#include +#include +#ifdef __ALTERA_AVALON_JTAG_UART + #include "altera_avalon_jtag_uart.h" + #include +#endif +#include "sys/alt_log_printf.h" + +/* strings for assembly puts */ +char alt_log_msg_bss[] = "[crt0.S] Clearing BSS \r\n";; +char alt_log_msg_alt_main[] = "[crt0.S] Calling alt_main.\r\n"; +char alt_log_msg_stackpointer[] \ + = "[crt0.S] Setting up stack and global pointers.\r\n"; +char alt_log_msg_cache[] = "[crt0.S] Inst & Data Cache Initialized.\r\n"; +/* char array allocation for alt_write */ +char alt_log_write_buf[ALT_LOG_WRITE_ECHO_LEN+2]; + +/* global variables for all 'on' flags */ + +/* + * The boot message flag is linked into the data (rwdata) section + * because if it is zero, it would otherwise be placed in the bss section. + * alt_log examines this variable before the BSS is cleared in the boot-up + * process. + */ +volatile alt_u32 alt_log_boot_on_flag \ + __attribute__ ((section (".data"))) = ALT_LOG_BOOT_ON_FLAG_SETTING; + +volatile alt_u8 alt_log_write_on_flag = ALT_LOG_WRITE_ON_FLAG_SETTING; + +volatile alt_u8 alt_log_sys_clk_on_flag = ALT_LOG_SYS_CLK_ON_FLAG_SETTING; + +volatile alt_u8 alt_log_jtag_uart_alarm_on_flag = \ + ALT_LOG_JTAG_UART_ALARM_ON_FLAG_SETTING; + +volatile alt_u8 alt_log_jtag_uart_isr_on_flag = \ + ALT_LOG_JTAG_UART_ISR_ON_FLAG_SETTING; + +volatile alt_u8 alt_log_jtag_uart_startup_info_on_flag = \ + ALT_LOG_JTAG_UART_STARTUP_INFO_ON_FLAG_SETTING; + +/* Global alarm object for recurrent JTAG UART status printing */ +alt_alarm alt_log_jtag_uart_alarm_1; + +/* Global ints for system clock printing and count */ +volatile int alt_log_sys_clk_count; +volatile int alt_system_clock_in_sec; + +/* enum used by alt_log_private_printf */ +enum +{ + pfState_chars, + pfState_firstFmtChar, + pfState_otherFmtChar +}; + + + + +/* Function to put one char onto the UART/JTAG UART txdata register. */ +void alt_log_txchar(int c,char *base) +{ + /* Wait until the device is ready for a character */ + while((ALT_LOG_PRINT_REG_RD(base) & ALT_LOG_PRINT_MSK) == 0) + ; + /* And pop the character into the register */ + ALT_LOG_PRINT_TXDATA_WR(base,c); +} + + +/* Called by alt_log_private_printf to print out characters repeatedly */ +void alt_log_repchar(char c,int r,int base) +{ + while(r-- > 0) + alt_log_txchar(c,(char*) base); +} + + +/* Stripped down printf function */ +void alt_log_private_printf(const char *fmt,int base,va_list args) + { + const char *w; + char c; + int state; + int fmtLeadingZero = 0; /* init these all to 0 for -W warnings. */ + int fmtLong = 0; + int fmtBeforeDecimal = 0; + int fmtAfterDecimal = 0; + int fmtBase = 0; + int fmtSigned = 0; + int fmtCase = 0; /* For hex format, if 1, A-F, else a-f. */ + + w = fmt; + state = pfState_chars; + + while(0 != (c = *w++)) + { + switch(state) + { + case pfState_chars: + if(c == '%') + { + fmtLeadingZero = 0; + fmtLong = 0; + fmtBase = 10; + fmtSigned = 1; + fmtCase = 0; /* Only %X sets this. */ + fmtBeforeDecimal = -1; + fmtAfterDecimal = -1; + state = pfState_firstFmtChar; + } + else + { + alt_log_txchar(c,(char*)base); + } + break; + + case pfState_firstFmtChar: + if(c == '0') + { + fmtLeadingZero = 1; + state = pfState_otherFmtChar; + } + else if(c == '%') + { + alt_log_txchar(c,(char*)base); + state = pfState_chars; + } + else + { + state = pfState_otherFmtChar; + goto otherFmtChar; + } + break; + + case pfState_otherFmtChar: +otherFmtChar: + if(c == '.') + { + fmtAfterDecimal = 0; + } + else if('0' <= c && c <= '9') + { + c -= '0'; + if(fmtAfterDecimal < 0) /* still before decimal */ + { + if(fmtBeforeDecimal < 0) + { + fmtBeforeDecimal = 0; + } + else + { + fmtBeforeDecimal *= 10; + } + fmtBeforeDecimal += c; + } + else + { + fmtAfterDecimal = (fmtAfterDecimal * 10) + c; + } + } + else if(c == 'l') + { + fmtLong = 1; + } + else /* we're up to the letter which determines type */ + { + switch(c) + { + case 'd': + case 'i': +doIntegerPrint: + { + unsigned long v; + unsigned long p; /* biggest power of fmtBase */ + unsigned long vShrink; /* used to count digits */ + int sign; + int digitCount; + + /* Get the value */ + if(fmtLong) + { + if (fmtSigned) + { + v = va_arg(args,long); + } + else + { + v = va_arg(args,unsigned long); + } + } + else + { + if (fmtSigned) + { + v = va_arg(args,int); + } + else + { + v = va_arg(args,unsigned int); + } + } + + /* Strip sign */ + sign = 0; + /* (assumes sign bit is #31) */ + if( fmtSigned && (v & (0x80000000)) ) + { + v = ~v + 1; + sign = 1; + } + + /* Count digits, and get largest place value */ + vShrink = v; + p = 1; + digitCount = 1; + while( (vShrink = vShrink / fmtBase) > 0 ) + { + digitCount++; + p *= fmtBase; + } + + /* Print leading characters & sign */ + fmtBeforeDecimal -= digitCount; + if(fmtLeadingZero) + { + if(sign) + { + alt_log_txchar('-',(char*)base); + fmtBeforeDecimal--; + } + alt_log_repchar('0',fmtBeforeDecimal,base); + } + else + { + if(sign) + { + fmtBeforeDecimal--; + } + alt_log_repchar(' ',fmtBeforeDecimal,base); + if(sign) + { + alt_log_txchar('-',(char*)base); + } + } + + /* Print numbery parts */ + while(p) + { + unsigned char d; + + d = v / p; + d += '0'; + if(d > '9') + { + d += (fmtCase ? 'A' : 'a') - '0' - 10; + } + alt_log_txchar(d,(char*)base); + + v = v % p; + p = p / fmtBase; + } + } + + state = pfState_chars; + break; + + case 'u': + fmtSigned = 0; + goto doIntegerPrint; + case 'o': + fmtSigned = 0; + fmtBase = 8; + goto doIntegerPrint; + case 'x': + fmtSigned = 0; + fmtBase = 16; + goto doIntegerPrint; + case 'X': + fmtSigned = 0; + fmtBase = 16; + fmtCase = 1; + goto doIntegerPrint; + + case 'c': + alt_log_repchar(' ',fmtBeforeDecimal-1,base); + alt_log_txchar(va_arg(args,int),(char*)base); + break; + + case 's': + { + char *s; + + s = va_arg(args,char *); + alt_log_repchar(' ',fmtBeforeDecimal-strlen(s),base); + + while(*s) + alt_log_txchar(*s++,(char*)base); + } + break; + } /* switch last letter of fmt */ + state=pfState_chars; + } + break; + } /* switch */ + } /* while chars left */ + } /* printf */ + +/* Main logging printf function */ +int alt_log_printf_proc(const char *fmt, ... ) +{ + va_list args; + + va_start (args, fmt); + alt_log_private_printf(fmt,ALT_LOG_PORT_BASE,args); + return (0); +} + +/* Below are the functions called by different macros in various components. */ + +/* If the system has a JTAG_UART, include JTAG_UART debugging functions */ +#ifdef __ALTERA_AVALON_JTAG_UART + +/* The alarm function in altera_avalon_jtag_uart.c. + * This function, when turned on, prints out the status + * of the JTAG UART Control register, every ALT_LOG_JTAG_UART_TICKS. + * If the flag is off, the alarm should never be registered, and this + * function should never run */ +alt_u32 altera_avalon_jtag_uart_report_log(void * context) +{ + if (alt_log_jtag_uart_alarm_on_flag) { + altera_avalon_jtag_uart_state* dev = (altera_avalon_jtag_uart_state*) context; + const char* header="JTAG Alarm:"; + alt_log_jtag_uart_print_control_reg(dev, dev->base, header); + return ALT_LOG_JTAG_UART_TICKS; + } + else + { + /* If flag is not on, return 0 to disable future alarms. + * Should never be here, alarm should not be enabled at all. */ + return 0; + } +} + +void alt_log_jtag_uart_print_control_reg(altera_avalon_jtag_uart_state* dev, int base, const char* header) +{ + unsigned int control, space, ac, wi, ri, we, re; + control = IORD_ALTERA_AVALON_JTAG_UART_CONTROL(base); + space = (control & ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_MSK) >> + ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_OFST; + we= (control & ALTERA_AVALON_JTAG_UART_CONTROL_WE_MSK) >> + ALTERA_AVALON_JTAG_UART_CONTROL_WE_OFST; + re= (control & ALTERA_AVALON_JTAG_UART_CONTROL_RE_MSK) >> + ALTERA_AVALON_JTAG_UART_CONTROL_RE_OFST; + ri= (control & ALTERA_AVALON_JTAG_UART_CONTROL_RI_MSK) >> + ALTERA_AVALON_JTAG_UART_CONTROL_RI_OFST; + wi= (control & ALTERA_AVALON_JTAG_UART_CONTROL_WI_MSK) >> + ALTERA_AVALON_JTAG_UART_CONTROL_WI_OFST; + ac= (control & ALTERA_AVALON_JTAG_UART_CONTROL_AC_MSK) >> + ALTERA_AVALON_JTAG_UART_CONTROL_AC_OFST; + +#ifdef ALTERA_AVALON_JTAG_UART_SMALL + ALT_LOG_PRINTF( + "%s HW FIFO wspace=%d AC=%d WI=%d RI=%d WE=%d RE=%d\r\n", + header,space,ac,wi,ri,we,re); +#else + ALT_LOG_PRINTF( + "%s SW CirBuf = %d, HW FIFO wspace=%d AC=%d WI=%d RI=%d WE=%d RE=%d\r\n", + header,(dev->tx_out-dev->tx_in),space,ac,wi,ri,we,re); +#endif + + return; + +} + +/* In altera_avalon_jtag_uart.c + * Same output as the alarm function above, but this is called in the driver + * init function. Hence, it gives the status of the JTAG UART control register + * right at the initialization of the driver */ +void alt_log_jtag_uart_startup_info(altera_avalon_jtag_uart_state* dev, int base) +{ + const char* header="JTAG Startup Info:"; + alt_log_jtag_uart_print_control_reg(dev, base, header); + return; +} + +/* In altera_avalon_jtag_uart.c + * When turned on, this function will print out the status of the jtag uart + * control register every time there is a jtag uart "almost-empty" interrupt. */ +void alt_log_jtag_uart_isr_proc(int base, altera_avalon_jtag_uart_state* dev) +{ + if (alt_log_jtag_uart_isr_on_flag) { + const char* header="JTAG IRQ:"; + alt_log_jtag_uart_print_control_reg(dev, base, header); + } + return; +} + +#endif /* __ALTERA_AVALON_JTAG_UART */ + +/* In alt_write.c + * When the alt_log_write_on_flag is turned on, this function gets called + * every time alt_write gets called. The first + * ALT_LOG_WRITE_ECHO_LEN characters of every printf command (or any command + * that eventually calls write()) gets echoed to the alt_log output. */ +void alt_log_write(const void *ptr, size_t len) +{ + if (alt_log_write_on_flag) { + int temp_cnt; + int length=(ALT_LOG_WRITE_ECHO_LEN>len) ? len : ALT_LOG_WRITE_ECHO_LEN; + + if (length < 2) return; + + strncpy (alt_log_write_buf,ptr,length); + alt_log_write_buf[length-1]='\n'; + alt_log_write_buf[length]='\r'; + alt_log_write_buf[length+1]='\0'; + + /* Escape Ctrl-D's. If the Ctrl-D gets sent it might kill the terminal + * connection of alt_log. It will get replaced by 'D'. */ + for (temp_cnt=0;temp_cnt < length; temp_cnt++) { + if (alt_log_write_buf[temp_cnt]== 0x4) { + alt_log_write_buf[temp_cnt]='D'; + } + } + ALT_LOG_PRINTF("Write Echo: %s",alt_log_write_buf); + } +} + +/* In altera_avalon_timer_sc + * This function prints out a system clock is alive message + * every ALT_LOG_SYS_CLK_INTERVAL (in ticks). */ +void alt_log_system_clock() +{ + if (alt_log_sys_clk_on_flag) { + alt_log_sys_clk_count++; + if (alt_log_sys_clk_count > ALT_LOG_SYS_CLK_INTERVAL) { + alt_log_sys_clk_count = 0; + ALT_LOG_PRINTF("System Clock On %u\r\n",alt_system_clock_in_sec++); + } + } +} + + +#endif diff --git a/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_lseek.c b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_lseek.c new file mode 100644 index 0000000..7857b0d --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_lseek.c @@ -0,0 +1,117 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004-2005 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +#include "sys/alt_errno.h" +#include "sys/alt_warning.h" +#include "priv/alt_file.h" +#include "os/alt_syscall.h" + +#ifdef ALT_USE_DIRECT_DRIVERS + +off_t ALT_LSEEK (int file, off_t ptr, int dir) +{ + /* Generate a link time warning, should this function ever be called. */ + + ALT_STUB_WARNING(lseek); + + /* Indicate an error */ + + ALT_ERRNO = ENOSYS; + return -1; +} + +#else /* !ALT_USE_DIRECT_DRIVERS */ + +/* + * lseek() can be called to move the read/write pointer associated with the + * file descriptor "file". This function simply vectors the call to the lseek() + * function provided by the driver associated with the file descriptor. + * + * If the driver does not provide an implementation of lseek() an error is + * indicated. + * + * lseek() corresponds to the standard lseek() function. + * + * ALT_LSEEK is mapped onto the lseek() system call in alt_syscall.h + * + */ + +off_t ALT_LSEEK (int file, off_t ptr, int dir) +{ + alt_fd* fd; + off_t rc = 0; + + /* + * A common error case is that when the file descriptor was created, the call + * to open() failed resulting in a negative file descriptor. This is trapped + * below so that we don't try and process an invalid file descriptor. + */ + + fd = (file < 0) ? NULL : &alt_fd_list[file]; + + if (fd) + { + /* + * If the device driver provides an implementation of the lseek() function, + * then call that to process the request. + */ + + if (fd->dev->lseek) + { + rc = fd->dev->lseek(fd, ptr, dir); + } + /* + * Otherwise return an error. + */ + + else + { + rc = -ENOTSUP; + } + } + else + { + rc = -EBADFD; + } + + if (rc < 0) + { + ALT_ERRNO = -rc; + rc = -1; + } + + return rc; +} + +#endif /* ALT_USE_DIRECT_DRIVERS */ diff --git a/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_main.c b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_main.c new file mode 100644 index 0000000..a96229b --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_main.c @@ -0,0 +1,161 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2007 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include +#include +#include +#include +#include + +#include "sys/alt_dev.h" +#include "sys/alt_sys_init.h" +#include "sys/alt_irq.h" +#include "sys/alt_dev.h" + +#include "os/alt_hooks.h" + +#include "priv/alt_file.h" +#include "alt_types.h" + +#include "system.h" + +#include "sys/alt_log_printf.h" + +extern void _do_ctors(void); +extern void _do_dtors(void); + +/* + * Standard arguments for main. By default, no arguments are passed to main. + * However a device driver may choose to configure these arguments by calling + * alt_set_args(). The expectation is that this facility will only be used by + * the iclient/ihost utility. + */ + +int alt_argc = 0; +char** alt_argv = {NULL}; +char** alt_envp = {NULL}; + +/* + * Prototype for the entry point to the users application. + */ + +extern int main (int, char **, char **); + +/* + * alt_main is the C entry point for the HAL. It is called by the assembler + * startup code in the processor specific crt0.S. It is responsible for: + * completing the C runtime configuration; configuring all the + * devices/filesystems/components in the system; and call the entry point for + * the users application, i.e. main(). + */ + +void alt_main (void) +{ +#ifndef ALT_NO_EXIT + int result; +#endif + + /* ALT LOG - please see HAL/sys/alt_log_printf.h for details */ + ALT_LOG_PRINT_BOOT("[alt_main.c] Entering alt_main, calling alt_irq_init.\r\n"); + /* Initialize the interrupt controller. */ + alt_irq_init (NULL); + + /* Initialize the operating system */ + ALT_LOG_PRINT_BOOT("[alt_main.c] Done alt_irq_init, calling alt_os_init.\r\n"); + ALT_OS_INIT(); + + /* + * Initialize the semaphore used to control access to the file descriptor + * list. + */ + + ALT_LOG_PRINT_BOOT("[alt_main.c] Done OS Init, calling alt_sem_create.\r\n"); + ALT_SEM_CREATE (&alt_fd_list_lock, 1); + + /* Initialize the device drivers/software components. */ + ALT_LOG_PRINT_BOOT("[alt_main.c] Calling alt_sys_init.\r\n"); + alt_sys_init(); + ALT_LOG_PRINT_BOOT("[alt_main.c] Done alt_sys_init.\r\n"); + +#if !defined(ALT_USE_DIRECT_DRIVERS) && (defined(ALT_STDIN_PRESENT) || defined(ALT_STDOUT_PRESENT) || defined(ALT_STDERR_PRESENT)) + + /* + * Redirect stdio to the apropriate devices now that the devices have + * been initialized. This is only done if the user has requested these + * devices be present (not equal to /dev/null) and if direct drivers + * aren't being used. + */ + + ALT_LOG_PRINT_BOOT("[alt_main.c] Redirecting IO.\r\n"); + alt_io_redirect(ALT_STDOUT, ALT_STDIN, ALT_STDERR); +#endif + +#ifndef ALT_NO_C_PLUS_PLUS + /* + * Call the C++ constructors + */ + + ALT_LOG_PRINT_BOOT("[alt_main.c] Calling C++ constructors.\r\n"); + _do_ctors (); +#endif /* ALT_NO_C_PLUS_PLUS */ + +#if !defined(ALT_NO_C_PLUS_PLUS) && !defined(ALT_NO_CLEAN_EXIT) && !defined(ALT_NO_EXIT) + /* + * Set the C++ destructors to be called at system shutdown. This is only done + * if a clean exit has been requested (i.e. the exit() function has not been + * redefined as _exit()). This is in the interest of reducing code footprint, + * in that the atexit() overhead is removed when it's not needed. + */ + + ALT_LOG_PRINT_BOOT("[alt_main.c] Calling atexit.\r\n"); + atexit (_do_dtors); +#endif + + /* + * Finally, call main(). The return code is then passed to a subsequent + * call to exit() unless the application is never supposed to exit. + */ + + ALT_LOG_PRINT_BOOT("[alt_main.c] Calling main.\r\n"); + +#ifdef ALT_NO_EXIT + main (alt_argc, alt_argv, alt_envp); +#else + result = main (alt_argc, alt_argv, alt_envp); + close(STDOUT_FILENO); + exit (result); +#endif + + ALT_LOG_PRINT_BOOT("[alt_main.c] After main - we should not be here?.\r\n"); +} + diff --git a/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_malloc_lock.c b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_malloc_lock.c new file mode 100644 index 0000000..8c78f46 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_malloc_lock.c @@ -0,0 +1,52 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +/* + * These are the empty malloc lock/unlock stubs required by newlib. These are + * used to make newlib's malloc() function thread safe. The default HAL + * configuration is single threaded, so there is nothing to do here. Note that + * this requires that malloc is never called by an interrupt service routine. + */ + +void __malloc_lock ( struct _reent *_r ) +{ +} + +/* + * + */ + +void __malloc_unlock ( struct _reent *_r ) +{ +} diff --git a/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_mcount.S b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_mcount.S new file mode 100644 index 0000000..3837523 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_mcount.S @@ -0,0 +1,198 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003-2010 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/* mcount or _mcount is inserted by GCC before the function prologue of every + * function when a program is compiled for profiling. At the start of mcount, + * we guarantee that: + * ra = self_pc (an address in the function which called mcount) + * r8 = from_pc (an address in the function which called mcount's caller) + * + * Because this is always called at the start of a function we can corrupt + * r2,r3 and r11-r15. We must not corrupt r4-r7 (because they might contain + * function arguments for the instrumented function) or r8 (which holds ra + * for the instrumented function). + */ + + .global __mcount_fn_head + + .global mcount + + /* _mcount is used by gcc4 */ + .global _mcount + +_mcount: +mcount: + /* Use a hash to speed up locating fn_entry. We use bits 5 upwards to choose + * the bucket because bits 1:0 will always be 0, and because the distribution + * of values for bits 4:2 won't be even (aligning on cache line boundaries + * will skew it). Higher bits should be fairly random. + */ + /* fn_head = mcount_fn_head + (((unsigned int)self_pc >> 5) & (HASH_BUCKETS - 1)); */ + + srli r2, ra, 3 + movhi r3, %hiadj(__mcount_fn_head) + addi r3, r3, %lo(__mcount_fn_head) + andi r2, r2, 0xFC + add r11, r2, r3 + + /* The fast case is where we have already allocated a function arc, and so + * also a function pointer. + */ + + /* First find the function being called (using self_pc) */ + mov r10, r11 +0: + ldw r10, 0(r10) + beq r10, zero, .Lnew_arc + ldw r2, 4(r10) + bne r2, ra, 0b + + /* Found a function entry for this PC. Now look for an arc with a matching + * from_pc value. There will always be at least one arc. */ + ldw r3, 8(r10) +0: + ldw r2, 4(r3) + beq r2, r8, .Lfound_arc + ldw r3, 0(r3) + bne r3, zero, 0b + +.Lnew_arc: + addi sp, sp, -24 + +.LCFI0: + stw ra, 0(sp) + stw r4, 4(sp) + stw r5, 8(sp) + stw r6, 12(sp) + stw r7, 16(sp) + stw r8, 20(sp) + +.LCFI1: + /* __mcount_record(orig_ra, orig_r8, fn_entry, *fn_head); */ + mov r4, ra + mov r5, r8 + mov r6, r10 + mov r7, r11 + call __mcount_record + + /* restore registers from the stack */ + ldw ra, 0(sp) + ldw r4, 4(sp) + ldw r5, 8(sp) + ldw r6, 12(sp) + ldw r7, 16(sp) + ldw r8, 20(sp) + + addi sp, sp, 24 + +.LCFI2: + ret + +.Lfound_arc: + /* We've found the correct arc record. Increment the count and return */ + ldw r2, 8(r3) + addi r2, r2, 1 + stw r2, 8(r3) + ret + +.Lmcount_end: + + + +/* + * Dwarf2 debug information for the function. This provides GDB with the + * information it needs to backtrace out of this function. + */ + + .section .debug_frame,"",@progbits +.LCIE: + .4byte 2f - 1f /* Length */ +1: + .4byte 0xffffffff /* CIE id */ + .byte 0x1 /* Version */ + .string "" /* Augmentation */ + .uleb128 0x1 /* Code alignment factor */ + .sleb128 -4 /* Data alignment factor */ + .byte 0x1f /* Return address register */ + + .byte 0xc /* Define CFA */ + .uleb128 0x1b /* Register 27 (sp) */ + .uleb128 0x0 /* Offset 0 */ + + .align 2 /* Padding */ +2: + +.LFDE_mcount: + .4byte 2f - 1f /* Length */ +1: + .4byte .LCIE /* Pointer to CIE */ + .4byte mcount /* Start of table entry */ + .4byte .Lmcount_end - mcount /* Size of table entry */ + + .byte 0x4 /* Advance location */ + .4byte .LCFI0 - mcount /* to .LCFI0 */ + .byte 0xe /* Define CFA offset */ + .uleb128 24 /* to 24 */ + + .byte 0x4 /* Advance location */ + .4byte .LCFI1 - .LCFI0 /* to .LCFI1 */ + .byte 0x9f /* Store ra */ + .uleb128 0x6 /* at CFA-24 */ + .byte 0x84 /* Store r4 */ + .uleb128 0x5 /* at CFA-20 */ + .byte 0x85 /* Store r5 */ + .uleb128 0x4 /* at CFA-16 */ + .byte 0x86 /* Store r6 */ + .uleb128 0x3 /* at CFA-12 */ + .byte 0x87 /* Store r7 */ + .uleb128 0x2 /* at CFA-8 */ + .byte 0x88 /* Store r8 */ + .uleb128 0x1 /* at CFA-4 */ + + .byte 0x4 /* Advance location */ + .4byte .LCFI2 - .LCFI1 /* to .LCFI2 */ + .byte 0xe /* Define CFA offset */ + .uleb128 0 /* to 0 */ + .byte 0x8 /* Same value */ + .uleb128 31 /* for ra */ + .byte 0x8 /* Same value */ + .uleb128 4 /* for r4 */ + .byte 0x8 /* Same value */ + .uleb128 5 /* for r5 */ + .byte 0x8 /* Same value */ + .uleb128 6 /* for r6 */ + .byte 0x8 /* Same value */ + .uleb128 7 /* for r7 */ + .byte 0x8 /* Same value */ + .uleb128 8 /* for r8 */ + + .align 2 +2: + diff --git a/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_open.c b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_open.c new file mode 100644 index 0000000..4790f53 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_open.c @@ -0,0 +1,173 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_errno.h" +#include "sys/alt_warning.h" +#include "priv/alt_file.h" +#include "alt_types.h" +#include "os/alt_syscall.h" + +#ifdef ALT_USE_DIRECT_DRIVERS + +int ALT_OPEN (const char* file, int flags, int mode) +{ + /* Generate a link time warning, should this function ever be called. */ + + ALT_STUB_WARNING(open); + + /* Indicate an error */ + + ALT_ERRNO = ENOSYS; + return -1; +} + +#else /* !ALT_USE_DIRECT_DRIVERS */ + +extern alt_llist alt_dev_list; + +/* + * alt_file_locked() is used by open() to ensure that a device has not been + * previously locked for exclusive access using ioctl(). This test is only + * performed for devices. Filesystems are required to handle the ioctl() call + * themselves, and report the error from the filesystems open() function. + */ + +static int alt_file_locked (alt_fd* fd) +{ + alt_u32 i; + + /* + * Mark the file descriptor as belonging to a device. + */ + + fd->fd_flags |= ALT_FD_DEV; + + /* + * Loop through all current file descriptors searching for one that's locked + * for exclusive access. If a match is found, generate an error. + */ + + for (i = 0; i <= alt_max_fd; i++) + { + if ((alt_fd_list[i].dev == fd->dev) && + (alt_fd_list[i].fd_flags & ALT_FD_EXCL) && + (&alt_fd_list[i] != fd)) + { + return -EACCES; + } + } + + /* The device is not locked */ + + return 0; +} + +/* + * open() is called in order to get a file descriptor that reference the file + * or device named "name". This descriptor can then be used to manipulate the + * file/device using the standard system calls, e.g. write(), read(), ioctl() + * etc. + * + * This is equivalent to the standard open() system call. + * + * ALT_OPEN is mapped onto the open() system call in alt_syscall.h + */ + +int ALT_OPEN (const char* file, int flags, int mode) +{ + alt_dev* dev; + alt_fd* fd; + int index = -1; + int status = -ENODEV; + int isafs = 0; + + /* + * Check the device list, to see if a device with a matching name is + * registered. + */ + + if (!(dev = alt_find_dev (file, &alt_dev_list))) + { + /* No matching device, so try the filesystem list */ + + dev = alt_find_file (file); + isafs = 1; + } + + /* + * If a matching device or filesystem is found, allocate a file descriptor. + */ + + if (dev) + { + if ((index = alt_get_fd (dev)) < 0) + { + status = index; + } + else + { + fd = &alt_fd_list[index]; + fd->fd_flags = (flags & ~ALT_FD_FLAGS_MASK); + + /* If this is a device, ensure it isn't already locked */ + + if (isafs || ((status = alt_file_locked (fd)) >= 0)) + { + /* + * If the device or filesystem provides an open() callback function, + * call it now to perform any device/filesystem specific operations. + */ + + status = (dev->open) ? dev->open(fd, file, flags, mode): 0; + } + } + } + else + { + status = -ENODEV; + } + + /* Allocation failed, so clean up and return an error */ + + if (status < 0) + { + alt_release_fd (index); + ALT_ERRNO = -status; + return -1; + } + + /* return the reference upon success */ + + return index; +} + +#endif /* ALT_USE_DIRECT_DRIVERS */ diff --git a/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_printf.c b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_printf.c new file mode 100644 index 0000000..e742b57 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_printf.c @@ -0,0 +1,127 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/* + * This file provides a very minimal printf implementation for use with very + * small applications. Only the following format strings are supported: + * %x + * %s + * %c + * %% + */ + +#include +#include "sys/alt_stdio.h" + +/* + * ALT printf function + */ +void +alt_printf(const char* fmt, ... ) +{ + va_list args; + va_start(args, fmt); + const char *w; + char c; + + /* Process format string. */ + w = fmt; + while ((c = *w++) != 0) + { + /* If not a format escape character, just print */ + /* character. Otherwise, process format string. */ + if (c != '%') + { + alt_putchar(c); + } + else + { + /* Get format character. If none */ + /* available, processing is complete. */ + if ((c = *w++) != 0) + { + if (c == '%') + { + /* Process "%" escape sequence. */ + alt_putchar(c); + } + else if (c == 'c') + { + int v = va_arg(args, int); + alt_putchar(v); + } + else if (c == 'x') + { + /* Process hexadecimal number format. */ + unsigned long v = va_arg(args, unsigned long); + unsigned long digit; + int digit_shift; + + /* If the number value is zero, just print and continue. */ + if (v == 0) + { + alt_putchar('0'); + continue; + } + + /* Find first non-zero digit. */ + digit_shift = 28; + while (!(v & (0xF << digit_shift))) + digit_shift -= 4; + + /* Print digits. */ + for (; digit_shift >= 0; digit_shift -= 4) + { + digit = (v & (0xF << digit_shift)) >> digit_shift; + if (digit <= 9) + c = '0' + digit; + else + c = 'a' + digit - 10; + alt_putchar(c); + } + } + else if (c == 's') + { + /* Process string format. */ + char *s = va_arg(args, char *); + + while(*s) + alt_putchar(*s++); + } + } + else + { + break; + } + } + } +} diff --git a/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_putchar.c b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_putchar.c new file mode 100644 index 0000000..badaa02 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_putchar.c @@ -0,0 +1,59 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +#ifdef ALT_USE_DIRECT_DRIVERS +#include "system.h" +#include "sys/alt_driver.h" +#include "sys/alt_stdio.h" +#endif + +/* + * Uses the ALT_DRIVER_WRITE() macro to call directly to driver if available. + * Otherwise, uses newlib provided putchar() routine. + */ +int +alt_putchar(int c) +{ +#ifdef ALT_USE_DIRECT_DRIVERS + ALT_DRIVER_WRITE_EXTERNS(ALT_STDOUT_DEV); + char c1 = (char)(c & 0xff); + + if (ALT_DRIVER_WRITE(ALT_STDOUT_DEV, &c1, 1, 0) == -1) { + return -1; + } + return c; +#else + return putchar(c); +#endif +} diff --git a/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_putstr.c b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_putstr.c new file mode 100644 index 0000000..5345945 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_putstr.c @@ -0,0 +1,55 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +#ifdef ALT_USE_DIRECT_DRIVERS +#include +#include "system.h" +#include "sys/alt_driver.h" +#include "sys/alt_stdio.h" +#endif + +/* + * Uses the ALT_DRIVER_WRITE() macro to call directly to driver if available. + * Otherwise, uses newlib provided fputs() routine. + */ +int +alt_putstr(const char* str) +{ +#ifdef ALT_USE_DIRECT_DRIVERS + ALT_DRIVER_WRITE_EXTERNS(ALT_STDOUT_DEV); + return ALT_DRIVER_WRITE(ALT_STDOUT_DEV, str, strlen(str), 0); +#else + return fputs(str, stdout); +#endif +} diff --git a/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_read.c b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_read.c new file mode 100644 index 0000000..1c89777 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_read.c @@ -0,0 +1,125 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include + +#include "sys/alt_errno.h" +#include "sys/alt_warning.h" +#include "priv/alt_file.h" +#include "os/alt_syscall.h" + +/* + * The read() system call is used to read a block of data from a file or device. + * This function simply vectors the request to the device driver associated + * with the input file descriptor "file". + * + * ALT_READ is mapped onto the read() system call in alt_syscall.h + */ + +#ifdef ALT_USE_DIRECT_DRIVERS + +#include "system.h" +#include "sys/alt_driver.h" + +/* + * Provide minimal version that just reads from the stdin device when provided. + */ + +int ALT_READ (int file, void *ptr, size_t len) +{ +#ifdef ALT_STDIN_PRESENT + ALT_DRIVER_READ_EXTERNS(ALT_STDIN_DEV); +#endif + +#if !defined(ALT_STDIN_PRESENT) + /* Generate a link time warning, should this function ever be called. */ + ALT_STUB_WARNING(read); +#endif + + switch (file) { +#ifdef ALT_STDIN_PRESENT + case 0: /* stdin file descriptor */ + return ALT_DRIVER_READ(ALT_STDIN_DEV, ptr, len, 0); +#endif /* ALT_STDIN_PRESENT */ + default: + ALT_ERRNO = EBADFD; + return -1; + } +} + +#else /* !ALT_USE_DIRECT_DRIVERS */ + +int ALT_READ (int file, void *ptr, size_t len) +{ + alt_fd* fd; + int rval; + + /* + * A common error case is that when the file descriptor was created, the call + * to open() failed resulting in a negative file descriptor. This is trapped + * below so that we don't try and process an invalid file descriptor. + */ + + fd = (file < 0) ? NULL : &alt_fd_list[file]; + + if (fd) + { + /* + * If the file has not been opened with read access, or if the driver does + * not provide an implementation of read(), generate an error. Otherwise + * call the drivers read() function to process the request. + */ + + if (((fd->fd_flags & O_ACCMODE) != O_WRONLY) && + (fd->dev->read)) + { + if ((rval = fd->dev->read(fd, ptr, len)) < 0) + { + ALT_ERRNO = -rval; + return -1; + } + return rval; + } + else + { + ALT_ERRNO = EACCES; + } + } + else + { + ALT_ERRNO = EBADFD; + } + return -1; +} + +#endif /* ALT_USE_DIRECT_DRIVERS */ diff --git a/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_release_fd.c b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_release_fd.c new file mode 100644 index 0000000..84733a7 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_release_fd.c @@ -0,0 +1,54 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_dev.h" +#include "priv/alt_file.h" + +/* + * alt_release_fd() is called to free an allocated file descriptor. This is + * done by setting the device pointer in the file descriptor structure to zero. + * + * File descriptors correcponding to standard in, standard out and standard + * error cannont be released backed to the pool. They are always reserved. + */ + +void alt_release_fd (int fd) +{ + if (fd > 2) + { + alt_fd_list[fd].fd_flags = 0; + alt_fd_list[fd].dev = 0; + } +} + + + diff --git a/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_remap_cached.c b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_remap_cached.c new file mode 100644 index 0000000..f61cb9c --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_remap_cached.c @@ -0,0 +1,50 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003,2007 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "sys/alt_cache.h" +#include "system.h" + +#ifdef NIOS2_MMU_PRESENT +/* Convert KERNEL region address to IO region address */ +#define BYPASS_DCACHE_MASK (0x1 << 29) +#else +/* Set bit 31 of address to bypass D-cache */ +#define BYPASS_DCACHE_MASK (0x1 << 31) +#endif + +/* + * Convert a pointer to a block of uncached memory, into a block of + * cached memory. + */ + +void* alt_remap_cached (volatile void* ptr, alt_u32 len) +{ + return (void*) (((alt_u32) ptr) & ~BYPASS_DCACHE_MASK); +} diff --git a/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_remap_uncached.c b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_remap_uncached.c new file mode 100644 index 0000000..7ff6302 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_remap_uncached.c @@ -0,0 +1,51 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003,2007 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "sys/alt_cache.h" +#include "system.h" + +#ifdef NIOS2_MMU_PRESENT +/* Convert KERNEL region address to IO region address */ +#define BYPASS_DCACHE_MASK (0x1 << 29) +#else +/* Set bit 31 of address to bypass D-cache */ +#define BYPASS_DCACHE_MASK (0x1 << 31) +#endif + +/* + * Convert a pointer to a block of cached memory, into a block of + * uncached memory. + */ + +volatile void* alt_remap_uncached (void* ptr, alt_u32 len) +{ + alt_dcache_flush (ptr, len); + return (volatile void*) (((alt_u32) ptr) | BYPASS_DCACHE_MASK); +} diff --git a/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_rename.c b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_rename.c new file mode 100644 index 0000000..48afac0 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_rename.c @@ -0,0 +1,55 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_errno.h" +#include "sys/alt_warning.h" +#include "os/alt_syscall.h" + +/* + * _rename() is used by newlib to rename an existing file. This is unsupported + * in the HAL environment. However a "do-nothing" implementation is still + * provied for newlib compatability. + * + * ALT_RENAME is mapped onto the _rename() system call in alt_syscall.h + */ + +int ALT_RENAME (char *existing, char *new) +{ + /* Generate a link time warning, should this function ever be called. */ + + ALT_STUB_WARNING(_rename); + + /* Indicate an error */ + + ALT_ERRNO = ENOSYS; + return -1; +} diff --git a/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_sbrk.c b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_sbrk.c new file mode 100644 index 0000000..b8c3799 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_sbrk.c @@ -0,0 +1,136 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +#include "os/alt_syscall.h" + +#include "sys/alt_irq.h" +#include "sys/alt_stack.h" + +#include "system.h" + +/* + * sbrk() is called to dynamically extend the data segment for the application. + * Thie input argument "incr" is the size of the block to allocate. + * + * This simple implementation does not perform any bounds checking. Memory will + * be allocated, even if the request region colides with the stack or overflows + * the available physical memory. + * + * ALT_SBRK is mapped onto the sbrk() system call in alt_syscall.h + * + * This function is called by the profiling code to allocate memory so must be + * safe if called from an interrupt context. It must also not be instrumented + * because that would lead to an infinate loop. + */ + +extern char __alt_heap_start[]; /* set by linker */ +extern char __alt_heap_limit[]; /* set by linker */ + +static char *heap_end = __alt_heap_start; + +#if defined(ALT_EXCEPTION_STACK) && defined(ALT_STACK_CHECK) +char * alt_exception_old_stack_limit = NULL; +#endif + +caddr_t ALT_SBRK (int incr) __attribute__ ((no_instrument_function )); + +caddr_t ALT_SBRK (int incr) +{ + alt_irq_context context; + char *prev_heap_end; + + context = alt_irq_disable_all(); + + /* Always return data aligned on a word boundary */ + heap_end = (char *)(((unsigned int)heap_end + 3) & ~3); + +#ifdef ALT_MAX_HEAP_BYTES + /* + * User specified a maximum heap size. Return -1 if it would + * be exceeded by this sbrk call. + */ + if (((heap_end + incr) - __alt_heap_start) > ALT_MAX_HEAP_BYTES) { + alt_irq_enable_all(context); + return (caddr_t)-1; + } +#else + if ((heap_end + incr) > __alt_heap_limit) { + alt_irq_enable_all(context); + return (caddr_t)-1; + } +#endif + + prev_heap_end = heap_end; + heap_end += incr; + +#ifdef ALT_STACK_CHECK + /* + * If the stack and heap are contiguous then extending the heap reduces the + * space available for the stack. If we are still using the default stack + * then adjust the stack limit to note this, while checking for stack + * pointer overflow. + * If the stack limit isn't pointing at the top of the heap then the code + * is using a different stack so none of this needs to be done. + */ + + if (alt_stack_limit() == prev_heap_end) + { + if (alt_stack_pointer() <= heap_end) + alt_report_stack_overflow(); + + alt_set_stack_limit(heap_end); + } + +#ifdef ALT_EXCEPTION_STACK + /* + * If we are executing from the exception stack then compare against the + * stack we switched away from as well. The exception stack is a fixed + * size so doesn't need to be checked. + */ + + if (alt_exception_old_stack_limit == prev_heap_end) + { + if (alt_exception_old_stack_limit <= heap_end) + alt_report_stack_overflow(); + + alt_exception_old_stack_limit = heap_end; + } +#endif + +#endif + + alt_irq_enable_all(context); + + return (caddr_t) prev_heap_end; +} diff --git a/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_settod.c b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_settod.c new file mode 100644 index 0000000..59db0f8 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_settod.c @@ -0,0 +1,96 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include + +#include "sys/alt_errno.h" +#include "sys/alt_alarm.h" +#include "os/alt_syscall.h" + +/* + * "alt_timezone" and "alt_resettime" are the values of the the reset time and + * time zone set through the last call to settimeofday(). By default they are + * zero initialised. + */ + +extern struct timezone alt_timezone; +extern struct timeval alt_resettime; + +/* + * Macro defining the number of micoseconds in a second. + */ + +#define ALT_US (1000000) + + +/* + * settimeofday() can be called to calibrate the system clock, so that + * subsequent calls to gettimeofday() will return the elapsed "wall clock" + * time. + * + * This is done by updating the global structures "alt_resettime" and + * "alt_timezone" so that an immediate call to gettimeofday() would return + * the value specified by "t" and "tz". + * + * Warning: if this function is called concurrently with a call to + * gettimeofday(), the value returned by gettimeofday() will be unreliable. + * + * ALT_SETTIMEOFDAY is mapped onto the settimeofday() system call in + * alt_syscall.h + */ + +int ALT_SETTIMEOFDAY (const struct timeval *t, + const struct timezone *tz) +{ + alt_u32 nticks = alt_nticks (); + alt_u32 tick_rate = alt_ticks_per_second (); + + /* If there is a system clock available, update the current time */ + + if (tick_rate) + { + alt_resettime.tv_sec = t->tv_sec - nticks/tick_rate; + alt_resettime.tv_usec = t->tv_usec - + ((nticks*(ALT_US/tick_rate))%ALT_US); + + alt_timezone.tz_minuteswest = tz->tz_minuteswest; + alt_timezone.tz_dsttime = tz->tz_dsttime; + + return 0; + } + + /* There's no system clock available */ + + ALT_ERRNO = ENOSYS; + return -1; +} diff --git a/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_software_exception.S b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_software_exception.S new file mode 100644 index 0000000..2142594 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_software_exception.S @@ -0,0 +1,53 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003-2005 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + + /* + * This file provides the global symbol: software_exception. It is provided to + * support legacy code, and should not be used by new software. + * + * It is used by legacy code to invoke the software exception handler as + * defined by version 1.0 of the Nios II kit. It should only be used when you + * are providing your own interrupt entry point, i.e. you are not using + * alt_irq_entry. + */ + +#include "system.h" + + /* + * Pull in the exception handler. + */ + + .globl alt_exception + + .section .exceptions.entry.label, "xa" + + .globl software_exception + .type software_exception, @function +software_exception: diff --git a/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_stat.c b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_stat.c new file mode 100644 index 0000000..44e207b --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_stat.c @@ -0,0 +1,59 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include +#include +#include + +#include "os/alt_syscall.h" + +/* + * The stat() function is similar to the fstat() function in that it is used to + * obtain status information about a file. Instead of using an open file + * descriptor (like fstat()), stat() takes the name of a file as an input + * argument. + * + * ALT_STAT is mapped onto the stat() system call in alt_syscall.h + */ + +int ALT_STAT (const char *file, struct stat *st) +{ + int fd; + int rc; + + fd = open (file, 0); + rc = fstat (fd, st); + close (fd); + + return rc; +} diff --git a/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_tick.c b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_tick.c new file mode 100644 index 0000000..c73488d --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_tick.c @@ -0,0 +1,149 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_irq.h" +#include "sys/alt_alarm.h" +#include "os/alt_hooks.h" +#include "alt_types.h" + +/* + * "_alt_tick_rate" is used to store the value of the system clock frequency + * in ticks per second. It is initialised to zero, which corresponds to there + * being no system clock facility available. + */ + +alt_u32 _alt_tick_rate = 0; + +/* + * "_alt_nticks" is the number of system clock ticks that have elapsed since + * reset. + */ + +volatile alt_u32 _alt_nticks = 0; + +/* + * "alt_alarm_list" is the head of a linked list of registered alarms. This is + * initialised to be an empty list. + */ + +ALT_LLIST_HEAD(alt_alarm_list); + +/* + * alt_alarm_stop() is called to remove an alarm from the list of registered + * alarms. Alternatively an alarm can unregister itself by returning zero when + * the alarm executes. + */ + +void alt_alarm_stop (alt_alarm* alarm) +{ + alt_irq_context irq_context; + + irq_context = alt_irq_disable_all(); + alt_llist_remove (&alarm->llist); + alt_irq_enable_all (irq_context); +} + +/* + * alt_tick() is periodically called by the system clock driver in order to + * process the registered list of alarms. Each alarm is registed with a + * callback interval, and a callback function, "callback". + * + * The return value of the callback function indicates how many ticks are to + * elapse until the next callback. A return value of zero indicates that the + * alarm should be deactivated. + * + * alt_tick() is expected to run at interrupt level. + */ + +void alt_tick (void) +{ + alt_alarm* next; + alt_alarm* alarm = (alt_alarm*) alt_alarm_list.next; + + alt_u32 next_callback; + + /* update the tick counter */ + + _alt_nticks++; + + /* process the registered callbacks */ + + while (alarm != (alt_alarm*) &alt_alarm_list) + { + next = (alt_alarm*) alarm->llist.next; + + /* + * Upon the tick-counter rolling over it is safe to clear the + * roll-over flag; once the flag is cleared this (or subsequnt) + * tick events are enabled to generate an alarm event. + */ + if ((alarm->rollover) && (_alt_nticks == 0)) + { + alarm->rollover = 0; + } + + /* if the alarm period has expired, make the callback */ + if ((alarm->time <= _alt_nticks) && (alarm->rollover == 0)) + { + next_callback = alarm->callback (alarm->context); + + /* deactivate the alarm if the return value is zero */ + + if (next_callback == 0) + { + alt_alarm_stop (alarm); + } + else + { + alarm->time += next_callback; + + /* + * If the desired alarm time causes a roll-over, set the rollover + * flag. This will prevent the subsequent tick event from causing + * an alarm too early. + */ + if(alarm->time < _alt_nticks) + { + alarm->rollover = 1; + } + } + } + alarm = next; + } + + /* + * Update the operating system specific timer facilities. + */ + + ALT_OS_TIME_TICK(); +} + diff --git a/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_times.c b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_times.c new file mode 100644 index 0000000..4dd965d --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_times.c @@ -0,0 +1,71 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +#include "sys/alt_errno.h" +#include "sys/alt_alarm.h" +#include "os/alt_syscall.h" + +/* + * The times() function is used by newlib to obtain elapsed time information. + * The return value is the elapsed time since reset in system clock ticks. Note + * that this is distinct from the strict Posix version of times(), which should + * return the time since: 0 hours, 0 minutes, 0 seconds, January 1, 1970, GMT. + * + * The input structure is filled in with time accounting information. This + * implementation attributes all cpu time to the system. + * + * ALT_TIMES is mapped onto the times() system call in alt_syscall.h + */ + +clock_t ALT_TIMES (struct tms *buf) +{ + clock_t ticks = alt_nticks(); + + /* If there is no system clock present, generate an error */ + + if (!alt_ticks_per_second()) + { + ALT_ERRNO = ENOSYS; + return 0; + } + + /* Otherwise return the elapsed time */ + + buf->tms_utime = 0; + buf->tms_stime = ticks; + buf->tms_cutime = 0; + buf->tms_cstime = 0; + + return ticks; +} diff --git a/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_uncached_free.c b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_uncached_free.c new file mode 100644 index 0000000..6e362ba --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_uncached_free.c @@ -0,0 +1,49 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003,2007 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "sys/alt_cache.h" +#include "system.h" + +#ifdef NIOS2_MMU_PRESENT +/* Convert KERNEL region address to IO region address */ +#define BYPASS_DCACHE_MASK (0x1 << 29) +#else +/* Set bit 31 of address to bypass D-cache */ +#define BYPASS_DCACHE_MASK (0x1 << 31) +#endif + +/* + * Free a block of uncached memory. + */ + +void alt_uncached_free (volatile void* ptr) +{ + free ((void*) (((alt_u32) ptr) & ~BYPASS_DCACHE_MASK)); +} diff --git a/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_uncached_malloc.c b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_uncached_malloc.c new file mode 100644 index 0000000..ab3416d --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_uncached_malloc.c @@ -0,0 +1,55 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003,2007 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "sys/alt_cache.h" +#include "system.h" + +#ifdef NIOS2_MMU_PRESENT +/* Convert KERNEL region address to IO region address */ +#define BYPASS_DCACHE_MASK (0x1 << 29) +#else +/* Set bit 31 of address to bypass D-cache */ +#define BYPASS_DCACHE_MASK (0x1 << 31) +#endif + +/* + * Allocate a block of uncached memory. + */ + +volatile void* alt_uncached_malloc (size_t size) +{ + void* ptr; + + ptr = malloc (size); + + alt_dcache_flush (ptr, size); + + return ptr ? (volatile void*) (((alt_u32) ptr) | BYPASS_DCACHE_MASK) : NULL; +} diff --git a/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_unlink.c b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_unlink.c new file mode 100644 index 0000000..29e35d6 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_unlink.c @@ -0,0 +1,55 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_errno.h" +#include "sys/alt_warning.h" +#include "os/alt_syscall.h" + +/* + * unlink() is used by newlib to delete an existing link to a file. This is + * unsupported in the HAL environment. However a "do-nothing" implementation + * is still provied for newlib compatability. + * + * ALT_UNLINK is mapped onto the unlink() system call in alt_syscall.h + */ + +int ALT_UNLINK (char *name) +{ + /* Generate a link time warning, should this function ever be called. */ + + ALT_STUB_WARNING(unlink); + + /* Indicate an error */ + + ALT_ERRNO = ENOSYS; + return -1; +} diff --git a/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_usleep.c b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_usleep.c new file mode 100644 index 0000000..2330eb8 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_usleep.c @@ -0,0 +1,52 @@ +/* + * Copyright (c) 2003 Altera Corporation, San Jose, California, USA. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + * ------------ + * + * Altera does not recommend, suggest or require that this reference design + * file be used in conjunction or combination with any other product. + * + * usleep.c - Microsecond delay routine + */ + +#include + +#include "priv/alt_busy_sleep.h" +#include "os/alt_syscall.h" + +/* + * This function simply calls alt_busy_sleep() to perform the delay. This + * function implements the delay as a calibrated "busy loop". + * + * ALT_USLEEP is mapped onto the usleep() system call in alt_syscall.h + */ + + + +#if defined (__GNUC__) && __GNUC__ >= 4 +int ALT_USLEEP (useconds_t us) +#else +unsigned int ALT_USLEEP (unsigned int us) +#endif +{ + return alt_busy_sleep(us); +} diff --git a/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_wait.c b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_wait.c new file mode 100644 index 0000000..a42f80f --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_wait.c @@ -0,0 +1,52 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_errno.h" +#include "os/alt_syscall.h" + +/* + * wait() is used by newlib to wait for all child processes to exit. Since the + * HAL does not support spawning child processes, this returns immediately as + * there can't be anythign to wait for. + * + * ALT_WAIT is mapped onto the wait() system call in alt_syscall.h + */ + +int ALT_WAIT (int *status) +{ + *status = 0; + + ALT_ERRNO = ECHILD; + + return -1; +} + diff --git a/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_write.c b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_write.c new file mode 100644 index 0000000..51debb5 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/HAL/src/alt_write.c @@ -0,0 +1,138 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include + +#include "sys/alt_errno.h" +#include "sys/alt_warning.h" +#include "priv/alt_file.h" +#include "os/alt_syscall.h" + +#include "sys/alt_log_printf.h" + +/* + * The write() system call is used to write a block of data to a file or + * device. This function simply vectors the request to the device driver + * associated with the input file descriptor "file". + * + * ALT_WRITE is mapped onto the write() system call in alt_syscall.h + */ + +#ifdef ALT_USE_DIRECT_DRIVERS + +#include "system.h" +#include "sys/alt_driver.h" + +/* + * Provide minimal version that just writes to the stdout/stderr devices + * when provided. + */ + +int ALT_WRITE (int file, const void *ptr, size_t len) +{ +#ifdef ALT_STDOUT_PRESENT + ALT_DRIVER_WRITE_EXTERNS(ALT_STDOUT_DEV); +#endif +#ifdef ALT_STDERR_PRESENT + ALT_DRIVER_WRITE_EXTERNS(ALT_STDERR_DEV); +#endif + +#if !defined(ALT_STDOUT_PRESENT) && !defined(ALT_STDERR_PRESENT) + /* Generate a link time warning, should this function ever be called. */ + ALT_STUB_WARNING(write); +#endif + + switch (file) { +#ifdef ALT_STDOUT_PRESENT + case 1: /* stdout file descriptor */ + return ALT_DRIVER_WRITE(ALT_STDOUT_DEV, ptr, len, 0); +#endif /* ALT_STDOUT_PRESENT */ +#ifdef ALT_STDERR_PRESENT + case 2: /* stderr file descriptor */ + return ALT_DRIVER_WRITE(ALT_STDERR_DEV, ptr, len, 0); +#endif /* ALT_STDERR_PRESENT */ + default: + ALT_ERRNO = EBADFD; + return -1; + } +} + +#else /* !ALT_USE_DIRECT_DRIVERS */ + +int ALT_WRITE (int file, const void *ptr, size_t len) +{ + alt_fd* fd; + int rval; + + /* + * A common error case is that when the file descriptor was created, the call + * to open() failed resulting in a negative file descriptor. This is trapped + * below so that we don't try and process an invalid file descriptor. + */ + + fd = (file < 0) ? NULL : &alt_fd_list[file]; + + if (fd) + { + /* + * If the file has not been opened with write access, or if the driver does + * not provide an implementation of write(), generate an error. Otherwise + * call the drivers write() function to process the request. + */ + + if (((fd->fd_flags & O_ACCMODE) != O_RDONLY) && fd->dev->write) + { + + /* ALT_LOG - see altera_hal/HAL/inc/sys/alt_log_printf.h */ + ALT_LOG_WRITE_FUNCTION(ptr,len); + + if ((rval = fd->dev->write(fd, ptr, len)) < 0) + { + ALT_ERRNO = -rval; + return -1; + } + return rval; + } + else + { + ALT_ERRNO = EACCES; + } + } + else + { + ALT_ERRNO = EBADFD; + } + return -1; +} + +#endif /* ALT_USE_DIRECT_DRIVERS */ diff --git a/software/qsys_tutorial_lcd3_bsp/HAL/src/altera_nios2_qsys_irq.c b/software/qsys_tutorial_lcd3_bsp/HAL/src/altera_nios2_qsys_irq.c new file mode 100644 index 0000000..c7a4f93 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/HAL/src/altera_nios2_qsys_irq.c @@ -0,0 +1,37 @@ +/* + * Copyright (c) 2009 Altera Corporation, San Jose, California, USA. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + * altera_nios2_irq.c - Support for Nios II internal interrupt controller. + * + */ + +#include "sys/alt_irq.h" +#include "altera_nios2_qsys_irq.h" + +/* + * To initialize the internal interrupt controller, just clear the IENABLE + * register so that all possible IRQs are disabled. + */ +void altera_nios2_qsys_irq_init(void) +{ + NIOS2_WRITE_IENABLE(0); +} diff --git a/software/qsys_tutorial_lcd3_bsp/HAL/src/crt0.S b/software/qsys_tutorial_lcd3_bsp/HAL/src/crt0.S new file mode 100644 index 0000000..582445d --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/HAL/src/crt0.S @@ -0,0 +1,456 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "system.h" +#include "nios2.h" + +/* Setup header files to work with assembler code. */ +#define ALT_ASM_SRC + +/* Debug logging facility */ +#include "sys/alt_log_printf.h" + +/*************************************************************************\ +| MACROS | +\*************************************************************************/ + +/* + * The new build tools explicitly define macros when alt_load() + * must be called. The define ALT_LOAD_EXPLICITLY_CONTROLLED tells us that + * those macros are controlling if alt_load() needs to be called. + */ +#ifdef ALT_LOAD_EXPLICITLY_CONTROLLED + +/* Need to call alt_load() if any of these sections are being copied. */ +#if defined(ALT_LOAD_COPY_RODATA) || defined(ALT_LOAD_COPY_RWDATA) || defined(ALT_LOAD_COPY_EXCEPTIONS) +#define CALL_ALT_LOAD +#endif + +#else /* !ALT_LOAD_EXPLICITLY_CONTROLLED */ + +/* + * The legacy build tools use the following macros to detect when alt_load() + * needs to be called. + */ + +#define __ALT_LOAD_SECTIONS(res, text, rodata, exc) \ + ((res##_BASE != rodata##_BASE) || \ + (res##_BASE != rwdata##_BASE) || \ + (res##_BASE != exc##_BASE)) + +#define _ALT_LOAD_SECTIONS(res, text, rodata, exc) \ + __ALT_LOAD_SECTIONS(res, text, rodata, exc) + +#define ALT_LOAD_SECTIONS _ALT_LOAD_SECTIONS(ALT_RESET_DEVICE, \ + ALT_RODATA_DEVICE, \ + ALT_RWDATA_DEVICE, \ + ALT_EXCEPTIONS_DEVICE) + +/* Call alt_load() if there is no bootloader and ALT_LOAD_SECTIONS isn't 0. */ +#if defined(ALT_NO_BOOTLOADER) && ALT_LOAD_SECTIONS +#define CALL_ALT_LOAD +#endif + +#endif /* !ALT_LOAD_EXPLICITLY_CONTROLLED */ + +/* + * When the legacy build tools define a macro called ALT_NO_BOOTLOADER, + * it indicates that initialization code is allowed at the reset address. + * The new build tools define a macro called ALT_ALLOW_CODE_AT_RESET for + * the same purpose. + */ +#ifdef ALT_NO_BOOTLOADER +#define ALT_ALLOW_CODE_AT_RESET +#endif + +/*************************************************************************\ +| EXTERNAL REFERENCES | +\*************************************************************************/ + +/* + * The entry point for user code is either "main" in hosted mode, or + * "alt_main" in standalone mode. These are explicitly referenced here, + * to ensure they are built into the executable. This allows the user + * to build them into libraries, rather than supplying them in object + * files at link time. + */ + .globl main + .globl alt_main + +/* + * Create a reference to the software multiply/divide and trap handers, + * so that if they are provided, they will appear in the executable. + */ +#ifndef ALT_NO_INSTRUCTION_EMULATION + .globl alt_exception_muldiv +#endif +#ifdef ALT_TRAP_HANDLER + .globl alt_exception_trap +#endif + +/* + * Linker defined symbols used to initialize bss. + */ +.globl __bss_start +.globl __bss_end + +/*************************************************************************\ +| RESET SECTION (.entry) | +\*************************************************************************/ + +/* + * This is the reset entry point for Nios II. + * + * At reset, only the cache line which contain the reset vector is + * initialized by the hardware. The code within the first cache line + * initializes the remainder of the instruction cache. + */ + + .section .entry, "xa" + .align 5 + +/* + * Explicitly allow the use of r1 (the assembler temporary register) + * within this code. This register is normally reserved for the use of + * the assembler. + */ + .set noat + +/* + * Some tools want to know where the reset vector is. + * Code isn't always provided at the reset vector but at least the + * __reset label always contains the reset vector address because + * it is defined at the start of the .entry section. + */ + + .globl __reset + .type __reset, @function +__reset: + +/* + * Initialize the instruction cache if present (i.e. size > 0) and + * reset code is allowed unless optimizing for RTL simulation. + * RTL simulations can ensure the instruction cache is already initialized + * so skipping this loop speeds up RTL simulation. + */ + +#if NIOS2_ICACHE_SIZE > 0 && defined(ALT_ALLOW_CODE_AT_RESET) && !defined(ALT_SIM_OPTIMIZE) + /* Assume the instruction cache size is always a power of two. */ +#if NIOS2_ICACHE_SIZE > 0x8000 + movhi r2, %hi(NIOS2_ICACHE_SIZE) +#else + movui r2, NIOS2_ICACHE_SIZE +#endif + +0: + initi r2 + addi r2, r2, -NIOS2_ICACHE_LINE_SIZE + bgt r2, zero, 0b +1: + + /* + * The following debug information tells the ISS not to run the loop above + * but to perform its actions using faster internal code. + */ + .pushsection .debug_alt_sim_info + .int 1, 1, 0b, 1b + .popsection +#endif /* Initialize Instruction Cache */ + +/* + * Jump to the _start entry point in the .text section if reset code + * is allowed or if optimizing for RTL simulation. + */ +#if defined(ALT_ALLOW_CODE_AT_RESET) || defined(ALT_SIM_OPTIMIZE) + /* Jump to the _start entry point in the .text section. */ + movhi r1, %hi(_start) + ori r1, r1, %lo(_start) + jmp r1 + + .size __reset, . - __reset +#endif /* Jump to _start */ + +/* + * When not using exit, provide an _exit symbol to prevent unresolved + * references to _exit from the linker script. + */ +#ifdef ALT_NO_EXIT + .globl _exit +_exit: +#endif + +/*************************************************************************\ +| TEXT SECTION (.text) | +\*************************************************************************/ + +/* + * Start of the .text section, and also the code entry point when + * the code is executed by a bootloader rather than directly from reset. + */ + .section .text + .align 2 + + .globl _start + .type _start, @function +_start: + +/* + * Initialize the data cache if present (i.e. size > 0) and not + * optimizing for RTL simulation. + * RTL simulations can ensure the data cache is already initialized + * so skipping this loop speeds up RTL simulation. + */ + +#if NIOS2_DCACHE_SIZE > 0 && !defined(ALT_SIM_OPTIMIZE) + + /* Assume the data cache size is always a power of two. */ +#if NIOS2_DCACHE_SIZE > 0x8000 + movhi r2, %hi(NIOS2_DCACHE_SIZE) +#else + movui r2, NIOS2_DCACHE_SIZE +#endif + +0: + initd 0(r2) + addi r2, r2, -NIOS2_DCACHE_LINE_SIZE + bgt r2, zero, 0b +1: + + /* + * The following debug information tells the ISS not to run the loop above + * but to perform its actions using faster internal code. + */ + .pushsection .debug_alt_sim_info + .int 2, 1, 0b, 1b + .popsection + +#endif /* Initialize Data Cache */ + + /* Log that caches have been initialized. */ + ALT_LOG_PUTS(alt_log_msg_cache) + + /* Log that the stack pointer is about to be setup. */ + ALT_LOG_PUTS(alt_log_msg_stackpointer) + +#if (NIOS2_NUM_OF_SHADOW_REG_SETS == 0) + /* + * Now that the caches are initialized, set up the stack pointer. + * The value provided by the linker is assumed to be correctly aligned. + */ + movhi sp, %hi(__alt_stack_pointer) + ori sp, sp, %lo(__alt_stack_pointer) + + /* Set up the global pointer. */ + movhi gp, %hi(_gp) + ori gp, gp, %lo(_gp) + +#else /* NIOS2_NUM_OF_SHADOW_REG_SETS > 0 */ + + /* + * Set up the GP and SP in all shadow register sets. + */ + + /* + * Check current register set number, if CPU resets into a shadow register + * set, switch register set to 0 by writing zero to SSTATUS register and + * execute an ERET instruction that just jumps to the next PC address + * (use the NEXTPC instruction to get this). + */ + + rdctl r2, status + + /* Get the current register set number (STATUS.CRS). */ + andi r3, r2, NIOS2_STATUS_CRS_MSK + + /* Skip switch register set if STATUS.CRS is 0. */ + beq r3, zero, .Lskip_switch_reg_set + + .set nobreak + + /* Current register set is non-zero, set SSTATUS to 0. */ + mov sstatus, zero + + /* Get next pc and store in ea. */ + nextpc ea + + /* Point to instruction after eret. */ + addi ea, ea, 8 + + /* + * Execute ERET instruction that just jumps to the next PC address + */ + eret + +.Lskip_switch_reg_set: + mov r2, zero + + /* Reset STATUS register */ + wrctl status, r2 + + movui r3, NIOS2_NUM_OF_SHADOW_REG_SETS + + /* Set up the stack pointer in register set 0. */ + movhi sp, %hi(__alt_stack_pointer) + ori sp, sp, %lo(__alt_stack_pointer) + + /* Set up the global pointer in register set 0. */ + movhi gp, %hi(_gp) + ori gp, gp, %lo(_gp) + +.Lsetup_sp_and_gp_loop: + /* + * Setup GP and SP for shadow register set + * from NIOS2_NUM_OF_SHADOW_REG_SETS to 0 + */ + + /* Skip if number of register sets is 0. */ + beq r3, zero, .Lno_shadow_register_set + + + /* Add previous register set STATUS.PRS by 1 */ + movhi r4, 1 + add r2, r2, r4 + + /* Write STATUS */ + wrctl status, r2 + + /* Clear r0 in the shadow register set (not done by hardware) */ + wrprs r0, r0 + + /* Write the GP in previous register set */ + wrprs gp, gp + + /* Only write the SP in previous register set + * if using the seperate exception stack. For normal case (single stack), + * funnel code would read the SP from previous register set. + */ +#ifdef ALT_INTERRUPT_STACK + + movhi et, %hiadj(__alt_interrupt_stack_pointer) + addi et, et, %lo(__alt_interrupt_stack_pointer) + wrprs sp, et + +#endif /* ALT_INTERRUPT_STACK */ + + /* Decrease number of register set counter by 1 */ + addi r3, r3, -1 + + br .Lsetup_sp_and_gp_loop +.Lno_shadow_register_set: + +#endif /* NIOS2_NUM_OF_SHADOW_REG_SETS */ +/* + * Clear the BSS if not optimizing for RTL simulation. + * + * This uses the symbols: __bss_start and __bss_end, which are defined + * by the linker script. They mark the begining and the end of the bss + * region. The linker script guarantees that these values are word aligned. + */ +#ifndef ALT_SIM_OPTIMIZE + /* Log that the BSS is about to be cleared. */ + ALT_LOG_PUTS(alt_log_msg_bss) + + movhi r2, %hi(__bss_start) + ori r2, r2, %lo(__bss_start) + + movhi r3, %hi(__bss_end) + ori r3, r3, %lo(__bss_end) + + beq r2, r3, 1f + +0: + stw zero, (r2) + addi r2, r2, 4 + bltu r2, r3, 0b + +1: + + /* + * The following debug information tells the ISS not to run the loop above + * but to perform its actions using faster internal code. + */ + .pushsection .debug_alt_sim_info + .int 3, 1, 0b, 1b + .popsection +#endif /* ALT_SIM_OPTIMIZE */ + +/* + * The alt_load() facility is normally used when there is no bootloader. + * It copies some sections into RAM so it acts like a mini-bootloader. + */ +#ifdef CALL_ALT_LOAD + +#ifdef ALT_STACK_CHECK + /* + * If the user has selected stack checking then we need to set up a safe + * value in the stack limit register so that the relocation functions + * don't think the stack has overflowed (the contents of the rwdata + * section aren't defined until alt_load() has been called). + */ + mov et, zero +#endif + + call alt_load + +#endif /* CALL_ALT_LOAD */ + +#ifdef ALT_STACK_CHECK + /* + * Set up the stack limit (if required). The linker has set up the + * copy of the variable which is in memory. + */ + + ldw et, %gprel(alt_stack_limit_value)(gp) +#endif + + /* Log that alt_main is about to be called. */ + ALT_LOG_PUTS(alt_log_msg_alt_main) + + /* Call the C entry point. It should never return. */ + call alt_main + + /* Wait in infinite loop in case alt_main does return. */ +alt_after_alt_main: + br alt_after_alt_main + + .size _start, . - _start + +/* + * Add information about the stack base if stack overflow checking is enabled. + */ +#ifdef ALT_STACK_CHECK + .globl alt_stack_limit_value + .section .sdata,"aws",@progbits + .align 2 + .type alt_stack_limit_value, @object + .size alt_stack_limit_value, 4 +alt_stack_limit_value: + .long __alt_stack_limit +#endif diff --git a/software/qsys_tutorial_lcd3_bsp/Makefile b/software/qsys_tutorial_lcd3_bsp/Makefile new file mode 100644 index 0000000..168b158 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/Makefile @@ -0,0 +1,775 @@ +#------------------------------------------------------------------------------ +# BSP MAKEFILE +# +# This makefile was automatically generated by the nios2-bsp-generate-files +# command. Its purpose is to build a custom Board Support Package (BSP) +# targeting a specific Nios II processor in an SOPC Builder-based design. +# +# To create an application or library Makefile which uses this BSP, try the +# nios2-app-generate-makefile or nios2-lib-generate-makefile commands. +#------------------------------------------------------------------------------ + +#------------------------------------------------------------------------------ +# TOOLS +#------------------------------------------------------------------------------ + +MKDIR := mkdir -p +ECHO := echo +SPACE := $(empty) $(empty) + +#------------------------------------------------------------------------------ +# The adjust-path macro +# +# If COMSPEC is defined, Make is launched from Windows through +# Cygwin. This adjust-path macro will call 'cygpath -u' on all +# paths to ensure they are readable by Make. +# +# If COMSPEC is not defined, Make is launched from *nix, and no adjustment +# is necessary +#------------------------------------------------------------------------------ + +ifndef COMSPEC +ifdef ComSpec +COMSPEC = $(ComSpec) +endif # ComSpec +endif # !COMSPEC + +ifdef COMSPEC + adjust-path = $(subst $(SPACE),\$(SPACE),$(shell cygpath -u "$1")) + adjust-path-mixed = $(subst $(SPACE),\$(SPACE),$(shell cygpath -m "$1")) +else + adjust-path = $(subst $(SPACE),\$(SPACE),$1) + adjust-path-mixed = $(subst $(SPACE),\$(SPACE),$1) +endif + +#------------------------------------------------------------------------------ +# DEFAULT TARGET +# +# The default target, "all", must appear before any other target in the +# Makefile. Note that extra prerequisites are added to the "all" rule later. +#------------------------------------------------------------------------------ +.PHONY: all +all: + @$(ECHO) [BSP build complete] + + +#------------------------------------------------------------------------------ +# PATHS & DIRECTORY NAMES +# +# Explicitly locate absolute path of the BSP root +#------------------------------------------------------------------------------ + +BSP_ROOT_DIR := . + +# Define absolute path to the root of the BSP. +ABS_BSP_ROOT := $(call adjust-path-mixed,$(shell pwd)) + +# Stash all BSP object files here +OBJ_DIR := ./obj + +NEWLIB_DIR = $(BSP_ROOT_DIR)/newlib + + +#------------------------------------------------------------------------------ +# MANAGED CONTENT +# +# All content between the lines "START MANAGED" and "END MANAGED" below is +# generated based on variables in the BSP settings file when the +# nios2-bsp-generate-files command is invoked. If you wish to persist any +# information pertaining to the build process, it is recomended that you +# utilize the BSP settings mechanism to do so. +# +# Note that most variable assignments in this section have a corresponding BSP +# setting that can be changed by using the nios2-bsp-create-settings or +# nios2-bsp-update-settings command before nios2-bsp-generate-files; if you +# want any variable set to a specific value when this Makefile is re-generated +# (to prevent hand-edits from being over-written), use the BSP settings +# facilities above. +#------------------------------------------------------------------------------ + +#START MANAGED + +# The following TYPE comment allows tools to identify the 'type' of target this +# makefile is associated with. +# TYPE: BSP_PRIVATE_MAKEFILE + +# This following VERSION comment indicates the version of the tool used to +# generate this makefile. A makefile variable is provided for VERSION as well. +# ACDS_VERSION: 13.0sp1 +ACDS_VERSION := 13.0sp1 + +# This following BUILD_NUMBER comment indicates the build number of the tool +# used to generate this makefile. +# BUILD_NUMBER: 232 + +SETTINGS_FILE := settings.bsp +SOPC_FILE := C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.sopcinfo + +#------------------------------------------------------------------------------- +# TOOL & COMMAND DEFINITIONS +# +# The base command for each build operation are expressed here. Additional +# switches may be expressed here. They will run for all instances of the +# utility. +#------------------------------------------------------------------------------- + +# Archiver command. Creates library files. +AR = nios2-elf-ar + +# Assembler command. Note that CC is used for .S files. +AS = nios2-elf-gcc + +# Custom flags only passed to the archiver. This content of this variable is +# directly passed to the archiver rather than the more standard "ARFLAGS". The +# reason for this is that GNU Make assumes some default content in ARFLAGS. +# This setting defines the value of BSP_ARFLAGS in Makefile. +BSP_ARFLAGS = -src + +# Custom flags only passed to the assembler. This setting defines the value of +# BSP_ASFLAGS in Makefile. +BSP_ASFLAGS = -Wa,-gdwarf2 + +# C/C++ compiler debug level. '-g' provides the default set of debug symbols +# typically required to debug a typical application. Omitting '-g' removes +# debug symbols from the ELF. This setting defines the value of +# BSP_CFLAGS_DEBUG in Makefile. +BSP_CFLAGS_DEBUG = -g + +# C/C++ compiler optimization level. "-O0" = no optimization,"-O2" = "normal" +# optimization, etc. "-O0" is recommended for code that you want to debug since +# compiler optimization can remove variables and produce non-sequential +# execution of code while debugging. This setting defines the value of +# BSP_CFLAGS_OPTIMIZATION in Makefile. +BSP_CFLAGS_OPTIMIZATION = -O0 + +# C/C++ compiler warning level. "-Wall" is commonly used.This setting defines +# the value of BSP_CFLAGS_WARNINGS in Makefile. +BSP_CFLAGS_WARNINGS = -Wall + +# C compiler command. +CC = nios2-elf-gcc -xc + +# C++ compiler command. +CXX = nios2-elf-gcc -xc++ + +# Command used to remove files during 'clean' target. +RM = rm -f + + +#------------------------------------------------------------------------------- +# BUILD PRE & POST PROCESS COMMANDS +# +# The following variables are treated as shell commands in the rule +# definitions for each file-type associated with the BSP build, as well as +# commands run at the beginning and end of the entire BSP build operation. +# Pre-process commands are executed before the relevant command (for example, +# a command defined in the "CC_PRE_PROCESS" variable executes before the C +# compiler for building .c files), while post-process commands are executed +# immediately afterwards. +# +# You can view each pre/post-process command in the "Build Rules: All & +# Clean", "Pattern Rules to Build Objects", and "Library Rules" sections of +# this Makefile. +#------------------------------------------------------------------------------- + + +#------------------------------------------------------------------------------- +# BSP SOURCE BUILD SETTINGS (FLAG GENERATION) +# +# Software build settings such as compiler optimization, debug level, warning +# flags, etc., may be defined in the following variables. The variables below +# are concatenated together in the 'Flags' section of this Makefile to form +# final variables of flags passed to the build tools. +# +# These settings are considered private to the BSP and apply to all library & +# driver files in it; they do NOT automatically propagate to, for example, the +# build settings for an application. +# # For additional detail and syntax requirements, please refer to GCC help +# (example: "nios2-elf-gcc --help --verbose"). +# +# Unless indicated otherwise, multiple entries in each variable should be +# space-separated. +#------------------------------------------------------------------------------- + +# Altera HAL alt_sys_init.c generated source file +GENERATED_C_FILES := $(ABS_BSP_ROOT)/alt_sys_init.c +GENERATED_C_LIB_SRCS += alt_sys_init.c + + +#------------------------------------------------------------------------------- +# BSP SOURCE FILE LISTING +# +# All source files that comprise the BSP are listed here, along with path +# information to each file expressed relative to the BSP root. The precise +# list and location of each file is derived from the driver, operating system, +# or software package source file declarations. +# +# Following specification of the source files for each component, driver, etc., +# each source file type (C, assembly, etc.) is concatenated together and used +# to construct a list of objects. Pattern rules to build each object are then +# used to build each file. +#------------------------------------------------------------------------------- + +# altera_avalon_jtag_uart_driver sources root +altera_avalon_jtag_uart_driver_SRCS_ROOT := drivers + +# altera_avalon_jtag_uart_driver sources +altera_avalon_jtag_uart_driver_C_LIB_SRCS := \ + $(altera_avalon_jtag_uart_driver_SRCS_ROOT)/src/altera_avalon_jtag_uart_init.c \ + $(altera_avalon_jtag_uart_driver_SRCS_ROOT)/src/altera_avalon_jtag_uart_read.c \ + $(altera_avalon_jtag_uart_driver_SRCS_ROOT)/src/altera_avalon_jtag_uart_write.c \ + $(altera_avalon_jtag_uart_driver_SRCS_ROOT)/src/altera_avalon_jtag_uart_ioctl.c \ + $(altera_avalon_jtag_uart_driver_SRCS_ROOT)/src/altera_avalon_jtag_uart_fd.c + +# altera_avalon_lcd_16207_driver sources root +altera_avalon_lcd_16207_driver_SRCS_ROOT := drivers + +# altera_avalon_lcd_16207_driver sources +altera_avalon_lcd_16207_driver_C_LIB_SRCS := \ + $(altera_avalon_lcd_16207_driver_SRCS_ROOT)/src/altera_avalon_lcd_16207.c \ + $(altera_avalon_lcd_16207_driver_SRCS_ROOT)/src/altera_avalon_lcd_16207_fd.c + +# altera_avalon_pio_driver sources root +altera_avalon_pio_driver_SRCS_ROOT := drivers + +# altera_avalon_pio_driver sources +# altera_nios2_qsys_hal_driver sources root +altera_nios2_qsys_hal_driver_SRCS_ROOT := HAL + +# altera_nios2_qsys_hal_driver sources +altera_nios2_qsys_hal_driver_C_LIB_SRCS := \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/altera_nios2_qsys_irq.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_usleep.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_busy_sleep.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_irq_vars.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_icache_flush.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_icache_flush_all.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_dcache_flush.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_dcache_flush_all.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_dcache_flush_no_writeback.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_instruction_exception_entry.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_irq_register.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_iic.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_remap_cached.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_remap_uncached.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_uncached_free.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_uncached_malloc.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_do_ctors.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_do_dtors.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_gmon.c + +altera_nios2_qsys_hal_driver_ASM_LIB_SRCS := \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_exception_entry.S \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_exception_trap.S \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_exception_muldiv.S \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_irq_entry.S \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_software_exception.S \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_mcount.S \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_log_macro.S \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/crt0.S + +# hal sources root +hal_SRCS_ROOT := HAL + +# hal sources +hal_C_LIB_SRCS := \ + $(hal_SRCS_ROOT)/src/alt_alarm_start.c \ + $(hal_SRCS_ROOT)/src/alt_close.c \ + $(hal_SRCS_ROOT)/src/alt_dev.c \ + $(hal_SRCS_ROOT)/src/alt_dev_llist_insert.c \ + $(hal_SRCS_ROOT)/src/alt_dma_rxchan_open.c \ + $(hal_SRCS_ROOT)/src/alt_dma_txchan_open.c \ + $(hal_SRCS_ROOT)/src/alt_environ.c \ + $(hal_SRCS_ROOT)/src/alt_env_lock.c \ + $(hal_SRCS_ROOT)/src/alt_errno.c \ + $(hal_SRCS_ROOT)/src/alt_execve.c \ + $(hal_SRCS_ROOT)/src/alt_exit.c \ + $(hal_SRCS_ROOT)/src/alt_fcntl.c \ + $(hal_SRCS_ROOT)/src/alt_fd_lock.c \ + $(hal_SRCS_ROOT)/src/alt_fd_unlock.c \ + $(hal_SRCS_ROOT)/src/alt_find_dev.c \ + $(hal_SRCS_ROOT)/src/alt_find_file.c \ + $(hal_SRCS_ROOT)/src/alt_flash_dev.c \ + $(hal_SRCS_ROOT)/src/alt_fork.c \ + $(hal_SRCS_ROOT)/src/alt_fs_reg.c \ + $(hal_SRCS_ROOT)/src/alt_fstat.c \ + $(hal_SRCS_ROOT)/src/alt_get_fd.c \ + $(hal_SRCS_ROOT)/src/alt_getchar.c \ + $(hal_SRCS_ROOT)/src/alt_getpid.c \ + $(hal_SRCS_ROOT)/src/alt_gettod.c \ + $(hal_SRCS_ROOT)/src/alt_iic_isr_register.c \ + $(hal_SRCS_ROOT)/src/alt_instruction_exception_register.c \ + $(hal_SRCS_ROOT)/src/alt_ioctl.c \ + $(hal_SRCS_ROOT)/src/alt_io_redirect.c \ + $(hal_SRCS_ROOT)/src/alt_irq_handler.c \ + $(hal_SRCS_ROOT)/src/alt_isatty.c \ + $(hal_SRCS_ROOT)/src/alt_kill.c \ + $(hal_SRCS_ROOT)/src/alt_link.c \ + $(hal_SRCS_ROOT)/src/alt_load.c \ + $(hal_SRCS_ROOT)/src/alt_log_printf.c \ + $(hal_SRCS_ROOT)/src/alt_lseek.c \ + $(hal_SRCS_ROOT)/src/alt_main.c \ + $(hal_SRCS_ROOT)/src/alt_malloc_lock.c \ + $(hal_SRCS_ROOT)/src/alt_open.c \ + $(hal_SRCS_ROOT)/src/alt_printf.c \ + $(hal_SRCS_ROOT)/src/alt_putchar.c \ + $(hal_SRCS_ROOT)/src/alt_putstr.c \ + $(hal_SRCS_ROOT)/src/alt_read.c \ + $(hal_SRCS_ROOT)/src/alt_release_fd.c \ + $(hal_SRCS_ROOT)/src/alt_rename.c \ + $(hal_SRCS_ROOT)/src/alt_sbrk.c \ + $(hal_SRCS_ROOT)/src/alt_settod.c \ + $(hal_SRCS_ROOT)/src/alt_stat.c \ + $(hal_SRCS_ROOT)/src/alt_tick.c \ + $(hal_SRCS_ROOT)/src/alt_times.c \ + $(hal_SRCS_ROOT)/src/alt_unlink.c \ + $(hal_SRCS_ROOT)/src/alt_wait.c \ + $(hal_SRCS_ROOT)/src/alt_write.c + + +# Assemble all component C source files +COMPONENT_C_LIB_SRCS += \ + $(altera_avalon_jtag_uart_driver_C_LIB_SRCS) \ + $(altera_avalon_lcd_16207_driver_C_LIB_SRCS) \ + $(altera_nios2_qsys_hal_driver_C_LIB_SRCS) \ + $(hal_C_LIB_SRCS) + +# Assemble all component assembly source files +COMPONENT_ASM_LIB_SRCS += \ + $(altera_nios2_qsys_hal_driver_ASM_LIB_SRCS) + +# Assemble all component C++ source files +COMPONENT_CPP_LIB_SRCS += \ + +#END MANAGED + +#------------------------------------------------------------------------------ +# PUBLIC.MK +# +# The generated public.mk file contains BSP information that is shared with +# other external makefiles, such as a Nios II application makefile. System- +# dependent information such as hardware-specific compiler flags and +# simulation file generation are stored here. +# +# In addition, public.mk contains include paths that various software, +# such as a device driver, may need for the C compiler. These paths are +# written to public.mk with respect to the BSP root. In public.mk, each +# path is prefixed with a special variable, $(ALT_LIBRARY_ROOT_DIR). The +# purpose of this variable is to allow an external Makefile to append on +# path information to precisely locate paths expressed in public.mk +# Since this is the BSP Makefile, we set ALT_LIBRARY_ROOT_DIR to point right +# here ("."), at the BSP root. +# +# ALT_LIBRARY_ROOT_DIR must always be set before public.mk is included. +#------------------------------------------------------------------------------ +ALT_LIBRARY_ROOT_DIR := . +include public.mk + + +#------------------------------------------------------------------------------ +# FLAGS +# +# Include paths for BSP files are written into the public.mk file and must +# be added to the existing list of pre-processor flags. In addition, "hooks" +# for standard flags left intentionally empty (CFLAGS, CPPFLAGS, ASFLAGS, +# and CXXFLAGS) are provided for conveniently adding to the relevant flags +# on the command-line or via script that calls make. +#------------------------------------------------------------------------------ +# Assemble final list of compiler flags from generated content +BSP_CFLAGS += \ + $(BSP_CFLAGS_DEFINED_SYMBOLS) \ + $(BSP_CFLAGS_UNDEFINED_SYMBOLS) \ + $(BSP_CFLAGS_OPTIMIZATION) \ + $(BSP_CFLAGS_DEBUG) \ + $(BSP_CFLAGS_WARNINGS) \ + $(BSP_CFLAGS_USER_FLAGS) \ + $(ALT_CFLAGS) \ + $(CFLAGS) + +# Make ready the final list of include directories and other C pre-processor +# flags. Each include path is made ready by prefixing it with "-I". +BSP_CPPFLAGS += \ + $(addprefix -I, $(BSP_INC_DIRS)) \ + $(addprefix -I, $(ALT_INCLUDE_DIRS)) \ + $(ALT_CPPFLAGS) \ + $(CPPFLAGS) + +# Finish off assembler flags with any user-provided flags +BSP_ASFLAGS += $(ASFLAGS) + +# Finish off C++ flags with any user-provided flags +BSP_CXXFLAGS += $(CXXFLAGS) + +# And finally, the ordered list +C_SRCS += $(GENERATED_C_LIB_SRCS) \ + $(COMPONENT_C_LIB_SRCS) + +CXX_SRCS += $(GENERATED_CPP_LIB_SRCS) \ + $(COMPONENT_CPP_LIB_SRCS) + +ASM_SRCS += $(GENERATED_ASM_LIB_SRCS) \ + $(COMPONENT_ASM_LIB_SRCS) + + +#------------------------------------------------------------------------------ +# LIST OF GENERATED FILES +# +# A Nios II BSP relies on the generation of several source files used +# by both the BSP and any applications referencing the BSP. +#------------------------------------------------------------------------------ + + +GENERATED_H_FILES := $(ABS_BSP_ROOT)/system.h + +GENERATED_LINKER_SCRIPT := $(ABS_BSP_ROOT)/linker.x + +GENERATED_FILES += $(GENERATED_H_FILES) \ + $(GENERATED_LINKER_SCRIPT) + + +#------------------------------------------------------------------------------ +# SETUP TO BUILD OBJECTS +# +# List of object files which are to be built. This is constructed from the input +# list of C source files (C_SRCS), C++ source files (CXX_SRCS), and assembler +# source file (ASM_SRCS). The permitted file extensions are: +# +# .c .C - for C files +# .cxx .cc .cpp .CXX .CC .CPP - for C++ files +# .S .s - for assembly files +# +# Extended description: The list of objects is a sorted list (duplicates +# removed) of all possible objects, placed beneath the ./obj directory, +# including any path information stored in the "*_SRCS" variable. The +# "patsubst" commands are used to concatenate together multiple file suffix +# types for common files (i.e. c++ as .cxx, .cc, .cpp). +# +# File extensions are case-insensitive in build rules with the exception of +# assembly sources. Nios II assembly sources with the ".S" extension are first +# run through the C preprocessor. Sources with the ".s" extension are not. +#------------------------------------------------------------------------------ +OBJS = $(sort $(addprefix $(OBJ_DIR)/, \ + $(patsubst %.c, %.o, $(patsubst %.C, %.o, $(C_SRCS))) \ + $(patsubst %.cxx, %.o, $(patsubst %.CXX, %.o, \ + $(patsubst %.cc, %.o, $(patsubst %.CC, %.o, \ + $(patsubst %.cpp, %.o, $(patsubst %.CPP, %.o, \ + $(CXX_SRCS) )))))) \ + $(patsubst %.S, %.o, $(patsubst %.s, %.o, $(ASM_SRCS))) )) + +# List of dependancy files for each object file. +DEPS = $(OBJS:.o=.d) + + +# Rules to force your project to rebuild or relink +# .force_relink file will cause any application that depends on this project to relink +# .force_rebuild file will cause this project to rebuild object files +# .force_rebuild_all file will cause this project and any project that depends on this project to rebuild object files + +FORCE_RELINK_DEP := .force_relink +FORCE_REBUILD_DEP := .force_rebuild +FORCE_REBUILD_ALL_DEP := .force_rebuild_all +FORCE_REBUILD_DEP_LIST := $(FORCE_RELINK_DEP) $(FORCE_REBUILD_DEP) $(FORCE_REBUILD_ALL_DEP) + +$(FORCE_REBUILD_DEP_LIST): + +$(OBJS): $(wildcard $(FORCE_REBUILD_DEP)) $(wildcard $(FORCE_REBUILD_ALL_DEP)) + + +#------------------------------------------------------------------------------ +# BUILD RULES: ALL & CLEAN +#------------------------------------------------------------------------------ +.DELETE_ON_ERROR: + +.PHONY: all +all: build_pre_process +all: Makefile $(GENERATED_FILES) $(BSP_LIB) $(NEWLIB_DIR) +all: build_post_process + + +# clean: remove .o/.a/.d +.PHONY: clean +clean: + @$(RM) -r $(BSP_LIB) $(OBJ_DIR) $(FORCE_REBUILD_DEP_LIST) +ifneq ($(wildcard $(NEWLIB_DIR)),) + @$(RM) -r $(NEWLIB_DIR) +endif + @$(ECHO) [BSP clean complete] + + +#------------------------------------------------------------------------------ +# BUILD PRE/POST PROCESS +#------------------------------------------------------------------------------ +build_pre_process : + $(BUILD_PRE_PROCESS) + +build_post_process : + $(BUILD_POST_PROCESS) + +.PHONY: build_pre_process build_post_process + + + +#------------------------------------------------------------------------------ +# MAKEFILE UP TO DATE? +# +# Is this very Makefile up to date? Someone may have changed the BSP settings +# file or the associated target hardware. +#------------------------------------------------------------------------------ +# Skip this check when clean is the only target +ifneq ($(MAKECMDGOALS),clean) + +ifneq ($(wildcard $(SETTINGS_FILE)),$(SETTINGS_FILE)) +$(warning Warning: BSP Settings File $(SETTINGS_FILE) could not be found.) +endif + +Makefile: $(wildcard $(SETTINGS_FILE)) + @$(ECHO) Makefile not up to date. + @$(ECHO) $(SETTINGS_FILE) has been modified since the BSP Makefile was generated. + @$(ECHO) + @$(ECHO) Generate the BSP to update the Makefile, and then build again. + @$(ECHO) + @$(ECHO) To generate from Eclipse: + @$(ECHO) " 1. Right-click the BSP project." + @$(ECHO) " 2. In the Nios II Menu, click Generate BSP." + @$(ECHO) + @$(ECHO) To generate from the command line: + @$(ECHO) " nios2-bsp-generate-files --settings= --bsp-dir=" + @$(ECHO) + @exit 1 + +ifneq ($(wildcard $(SOPC_FILE)),$(SOPC_FILE)) +$(warning Warning: SOPC File $(SOPC_FILE) could not be found.) +endif + +public.mk: $(wildcard $(SOPC_FILE)) + @$(ECHO) Makefile not up to date. + @$(ECHO) $(SOPC_FILE) has been modified since the BSP was generated. + @$(ECHO) + @$(ECHO) Generate the BSP to update the Makefile, and then build again. + @$(ECHO) + @$(ECHO) To generate from Eclipse: + @$(ECHO) " 1. Right-click the BSP project." + @$(ECHO) " 2. In the Nios II Menu, click Generate BSP." + @$(ECHO) + @$(ECHO) To generate from the command line: + @$(ECHO) " nios2-bsp-generate-files --settings= --bsp-dir=" + @$(ECHO) + @exit 1 + +endif # $(MAKECMDGOALS) != clean + +#------------------------------------------------------------------------------ +# PATTERN RULES TO BUILD OBJECTS +#------------------------------------------------------------------------------ +$(OBJ_DIR)/%.o: %.c + @$(ECHO) Compiling $( + +/* + * Device headers + */ + +#include "altera_nios2_qsys_irq.h" +#include "altera_avalon_jtag_uart.h" +#include "altera_avalon_lcd_16207.h" + +/* + * Allocate the device storage + */ + +ALTERA_NIOS2_QSYS_IRQ_INSTANCE ( NIOS2_PROCESSOR, nios2_processor); +ALTERA_AVALON_JTAG_UART_INSTANCE ( JTAG_UART, jtag_uart); +ALTERA_AVALON_LCD_16207_INSTANCE ( LCD_16207_0, lcd_16207_0); + +/* + * Initialize the interrupt controller devices + * and then enable interrupts in the CPU. + * Called before alt_sys_init(). + * The "base" parameter is ignored and only + * present for backwards-compatibility. + */ + +void alt_irq_init ( const void* base ) +{ + ALTERA_NIOS2_QSYS_IRQ_INIT ( NIOS2_PROCESSOR, nios2_processor); + alt_irq_cpu_enable_interrupts(); +} + +/* + * Initialize the non-interrupt controller devices. + * Called after alt_irq_init(). + */ + +void alt_sys_init( void ) +{ + ALTERA_AVALON_JTAG_UART_INIT ( JTAG_UART, jtag_uart); + ALTERA_AVALON_LCD_16207_INIT ( LCD_16207_0, lcd_16207_0); +} diff --git a/software/qsys_tutorial_lcd3_bsp/create-this-bsp b/software/qsys_tutorial_lcd3_bsp/create-this-bsp new file mode 100644 index 0000000..e8d0dc7 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/create-this-bsp @@ -0,0 +1,49 @@ +#!/bin/bash +# +# This script creates the ucosii_net_zipfs Board Support Package (BSP). + +BSP_TYPE=hal +BSP_DIR=. +SOPC_DIR=../../ +SOPC_FILE=C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.sopcinfo +NIOS2_BSP_ARGS="" +CPU_NAME= + + +# Don't run make if create-this-app script is called with --no-make arg +SKIP_MAKE= +while [ $# -gt 0 ] +do + case "$1" in + --no-make) + SKIP_MAKE=1 + ;; + *) + NIOS2_BSP_ARGS="$NIOS2_BSP_ARGS $1" + ;; + esac + shift +done + + +# Run nios2-bsp utility to create a hal BSP in this directory +# for the system with a .sopc file in $SOPC_FILE. +# Deprecating $SOPC_DIR in 10.1. Multiple .sopcinfo files in a directory may exist. + +if [ -z "$SOPC_FILE" ]; then + echo "WARNING: Use of a directory for locating a .sopcinfo file is deprecated in 10.1. Multiple .sopcinfo files may exist. You must specify the full .sopcinfo path." + cmd="nios2-bsp $BSP_TYPE $BSP_DIR $SOPC_DIR $NIOS2_BSP_ARGS $CPU_NAME" +else + cmd="nios2-bsp $BSP_TYPE $BSP_DIR $SOPC_FILE $NIOS2_BSP_ARGS $CPU_NAME" +fi + + +echo "create-this-bsp: Running \"$cmd\"" +$cmd || { + echo "$cmd failed" + exit 1 +} +if [ -z "$SKIP_MAKE" ]; then + echo "create-this-bsp: Running make" + make +fi diff --git a/software/qsys_tutorial_lcd3_bsp/drivers/inc/altera_avalon_jtag_uart.h b/software/qsys_tutorial_lcd3_bsp/drivers/inc/altera_avalon_jtag_uart.h new file mode 100644 index 0000000..95d4a99 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/drivers/inc/altera_avalon_jtag_uart.h @@ -0,0 +1,198 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#ifndef __ALT_AVALON_JTAG_UART_H__ +#define __ALT_AVALON_JTAG_UART_H__ + +#include + +#include "sys/alt_alarm.h" +#include "sys/alt_warning.h" + +#include "os/alt_sem.h" +#include "os/alt_flag.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * If the user wants all drivers to be small rather than fast then make sure + * this one is marked as needing to be small. + */ +#if defined ALT_USE_SMALL_DRIVERS && !defined ALTERA_AVALON_JTAG_UART_SMALL +#define ALTERA_AVALON_JTAG_UART_SMALL +#endif + +/* + * If the user wants to ignore FIFO full error after timeout + */ +#if defined ALT_JTAG_UART_IGNORE_FIFO_FULL_ERROR && !defined ALTERA_AVALON_JTAG_UART_IGNORE_FIFO_FULL_ERROR +#define ALTERA_AVALON_JTAG_UART_IGNORE_FIFO_FULL_ERROR +#endif + +/* + * Constants that can be overriden. + */ +#ifndef ALTERA_AVALON_JTAG_UART_DEFAULT_TIMEOUT +#define ALTERA_AVALON_JTAG_UART_DEFAULT_TIMEOUT 10 +#endif + +#ifndef ALTERA_AVALON_JTAG_UART_BUF_LEN +#define ALTERA_AVALON_JTAG_UART_BUF_LEN 2048 +#endif + +/* + * ALT_JTAG_UART_READ_RDY and ALT_JTAG_UART_WRITE_RDY are the bitmasks + * that define uC/OS-II event flags that are releated to this device. + * + * ALT_JTAG_UART_READ_RDY indicates that there is read data in the buffer + * ready to be processed. ALT_JTAG_UART_WRITE_RDY indicates that the transmitter is + * ready for more data. + */ +#define ALT_JTAG_UART_READ_RDY 0x1 +#define ALT_JTAG_UART_WRITE_RDY 0x2 +#define ALT_JTAG_UART_TIMEOUT 0x4 + +/* + * State structure definition. Each instance of the driver uses one + * of these structures to hold its associated state. + */ + +typedef struct altera_avalon_jtag_uart_state_s +{ + unsigned int base; + +#ifndef ALTERA_AVALON_JTAG_UART_SMALL + + unsigned int timeout; /* Timeout until host is assumed inactive */ + alt_alarm alarm; + unsigned int irq_enable; + unsigned int host_inactive; + + ALT_SEM (read_lock) + ALT_SEM (write_lock) + ALT_FLAG_GRP (events) + + /* The variables below are volatile because they are modified by the + * interrupt routine. Making them volatile and reading them atomically + * means that we don't need any large critical sections. + */ + volatile unsigned int rx_in; + unsigned int rx_out; + unsigned int tx_in; + volatile unsigned int tx_out; + char rx_buf[ALTERA_AVALON_JTAG_UART_BUF_LEN]; + char tx_buf[ALTERA_AVALON_JTAG_UART_BUF_LEN]; + +#endif /* !ALTERA_AVALON_JTAG_UART_SMALL */ + +} altera_avalon_jtag_uart_state; + +/* + * Macros used by alt_sys_init when the ALT file descriptor facility isn't used. + */ + +#ifdef ALTERA_AVALON_JTAG_UART_SMALL + +#define ALTERA_AVALON_JTAG_UART_STATE_INSTANCE(name, state) \ + altera_avalon_jtag_uart_state state = \ + { \ + name##_BASE, \ + } + +#define ALTERA_AVALON_JTAG_UART_STATE_INIT(name, state) + +#else /* !ALTERA_AVALON_JTAG_UART_SMALL */ + +#define ALTERA_AVALON_JTAG_UART_STATE_INSTANCE(name, state) \ + altera_avalon_jtag_uart_state state = \ + { \ + name##_BASE, \ + ALTERA_AVALON_JTAG_UART_DEFAULT_TIMEOUT, \ + } + +/* + * Externally referenced routines + */ +extern void altera_avalon_jtag_uart_init(altera_avalon_jtag_uart_state* sp, + int irq_controller_id, int irq); + +#define ALTERA_AVALON_JTAG_UART_STATE_INIT(name, state) \ + { \ + if (name##_IRQ == ALT_IRQ_NOT_CONNECTED) \ + { \ + ALT_LINK_ERROR ("Error: Interrupt not connected for " #name ". " \ + "You have selected the interrupt driven version of " \ + "the ALTERA Avalon JTAG UART driver, but the " \ + "interrupt is not connected for this device. You can " \ + "select a polled mode driver by checking the 'small " \ + "driver' option in the HAL configuration window, or " \ + "by using the -DALTERA_AVALON_JTAG_UART_SMALL " \ + "preprocessor flag."); \ + } \ + else \ + altera_avalon_jtag_uart_init(&state, \ + name##_IRQ_INTERRUPT_CONTROLLER_ID, \ + name##_IRQ); \ + } + +#endif /* ALTERA_AVALON_JTAG_UART_SMALL */ + +/* + * Include in case non-direct version of driver required. + */ +#include "altera_avalon_jtag_uart_fd.h" + +/* + * Map alt_sys_init macros to direct or non-direct versions. + */ +#ifdef ALT_USE_DIRECT_DRIVERS + +#define ALTERA_AVALON_JTAG_UART_INSTANCE(name, state) \ + ALTERA_AVALON_JTAG_UART_STATE_INSTANCE(name, state) +#define ALTERA_AVALON_JTAG_UART_INIT(name, state) \ + ALTERA_AVALON_JTAG_UART_STATE_INIT(name, state) + +#else /* !ALT_USE_DIRECT_DRIVERS */ + +#define ALTERA_AVALON_JTAG_UART_INSTANCE(name, dev) \ + ALTERA_AVALON_JTAG_UART_DEV_INSTANCE(name, dev) +#define ALTERA_AVALON_JTAG_UART_INIT(name, dev) \ + ALTERA_AVALON_JTAG_UART_DEV_INIT(name, dev) + +#endif /* ALT_USE_DIRECT_DRIVERS */ + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __ALT_AVALON_JTAG_UART_H__ */ diff --git a/software/qsys_tutorial_lcd3_bsp/drivers/inc/altera_avalon_jtag_uart_fd.h b/software/qsys_tutorial_lcd3_bsp/drivers/inc/altera_avalon_jtag_uart_fd.h new file mode 100644 index 0000000..b3c3200 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/drivers/inc/altera_avalon_jtag_uart_fd.h @@ -0,0 +1,125 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2007 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#ifndef __ALT_AVALON_JTAG_UART_FD_H__ +#define __ALT_AVALON_JTAG_UART_FD_H__ + +#include "sys/alt_dev.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * Externally referenced routines + */ +extern int altera_avalon_jtag_uart_read_fd (alt_fd* fd, char* ptr, int len); +extern int altera_avalon_jtag_uart_write_fd (alt_fd* fd, const char* ptr, + int len); + +/* + * Device structure definition. This is needed by alt_sys_init in order to + * reserve memory for the device instance. + */ + +typedef struct altera_avalon_jtag_uart_dev_s +{ + alt_dev dev; + altera_avalon_jtag_uart_state state; +} altera_avalon_jtag_uart_dev; + +/* + * Macros used by alt_sys_init when the ALT file descriptor facility is used. + */ + +#ifdef ALTERA_AVALON_JTAG_UART_SMALL + +#define ALTERA_AVALON_JTAG_UART_DEV_INSTANCE(name, d) \ + static altera_avalon_jtag_uart_dev d = \ + { \ + { \ + ALT_LLIST_ENTRY, \ + name##_NAME, \ + NULL, /* open */ \ + NULL, /* close */ \ + altera_avalon_jtag_uart_read_fd, \ + altera_avalon_jtag_uart_write_fd, \ + NULL, /* lseek */ \ + NULL, /* fstat */ \ + NULL, /* ioctl */ \ + }, \ + { \ + name##_BASE, \ + } \ + } + +#define ALTERA_AVALON_JTAG_UART_DEV_INIT(name, d) alt_dev_reg (&d.dev) + +#else /* !ALTERA_AVALON_JTAG_UART_SMALL */ + +extern int altera_avalon_jtag_uart_close_fd(alt_fd* fd); +extern int altera_avalon_jtag_uart_ioctl_fd (alt_fd* fd, int req, void* arg); + +#define ALTERA_AVALON_JTAG_UART_DEV_INSTANCE(name, d) \ + static altera_avalon_jtag_uart_dev d = \ + { \ + { \ + ALT_LLIST_ENTRY, \ + name##_NAME, \ + NULL, /* open */ \ + altera_avalon_jtag_uart_close_fd, \ + altera_avalon_jtag_uart_read_fd, \ + altera_avalon_jtag_uart_write_fd, \ + NULL, /* lseek */ \ + NULL, /* fstat */ \ + altera_avalon_jtag_uart_ioctl_fd, \ + }, \ + { \ + name##_BASE, \ + ALTERA_AVALON_JTAG_UART_DEFAULT_TIMEOUT, \ + } \ + } + +#define ALTERA_AVALON_JTAG_UART_DEV_INIT(name, d) \ + { \ + ALTERA_AVALON_JTAG_UART_STATE_INIT(name, d.state); \ + \ + /* make the device available to the system */ \ + alt_dev_reg(&d.dev); \ + } + +#endif /* ALTERA_AVALON_JTAG_UART_SMALL */ + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __ALT_AVALON_JTAG_UART_FD_H__ */ diff --git a/software/qsys_tutorial_lcd3_bsp/drivers/inc/altera_avalon_jtag_uart_regs.h b/software/qsys_tutorial_lcd3_bsp/drivers/inc/altera_avalon_jtag_uart_regs.h new file mode 100644 index 0000000..7f97160 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/drivers/inc/altera_avalon_jtag_uart_regs.h @@ -0,0 +1,73 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#ifndef __ALTERA_AVALON_JTAG_UART_REGS_H__ +#define __ALTERA_AVALON_JTAG_UART_REGS_H__ + +#include + +#define ALTERA_AVALON_JTAG_UART_DATA_REG 0 +#define IOADDR_ALTERA_AVALON_JTAG_UART_DATA(base) \ + __IO_CALC_ADDRESS_NATIVE(base, ALTERA_AVALON_JTAG_UART_DATA_REG) +#define IORD_ALTERA_AVALON_JTAG_UART_DATA(base) \ + IORD(base, ALTERA_AVALON_JTAG_UART_DATA_REG) +#define IOWR_ALTERA_AVALON_JTAG_UART_DATA(base, data) \ + IOWR(base, ALTERA_AVALON_JTAG_UART_DATA_REG, data) + +#define ALTERA_AVALON_JTAG_UART_DATA_DATA_MSK (0x000000FF) +#define ALTERA_AVALON_JTAG_UART_DATA_DATA_OFST (0) +#define ALTERA_AVALON_JTAG_UART_DATA_RVALID_MSK (0x00008000) +#define ALTERA_AVALON_JTAG_UART_DATA_RVALID_OFST (15) +#define ALTERA_AVALON_JTAG_UART_DATA_RAVAIL_MSK (0xFFFF0000) +#define ALTERA_AVALON_JTAG_UART_DATA_RAVAIL_OFST (16) + + +#define ALTERA_AVALON_JTAG_UART_CONTROL_REG 1 +#define IOADDR_ALTERA_AVALON_JTAG_UART_CONTROL(base) \ + __IO_CALC_ADDRESS_NATIVE(base, ALTERA_AVALON_JTAG_UART_CONTROL_REG) +#define IORD_ALTERA_AVALON_JTAG_UART_CONTROL(base) \ + IORD(base, ALTERA_AVALON_JTAG_UART_CONTROL_REG) +#define IOWR_ALTERA_AVALON_JTAG_UART_CONTROL(base, data) \ + IOWR(base, ALTERA_AVALON_JTAG_UART_CONTROL_REG, data) + +#define ALTERA_AVALON_JTAG_UART_CONTROL_RE_MSK (0x00000001) +#define ALTERA_AVALON_JTAG_UART_CONTROL_RE_OFST (0) +#define ALTERA_AVALON_JTAG_UART_CONTROL_WE_MSK (0x00000002) +#define ALTERA_AVALON_JTAG_UART_CONTROL_WE_OFST (1) +#define ALTERA_AVALON_JTAG_UART_CONTROL_RI_MSK (0x00000100) +#define ALTERA_AVALON_JTAG_UART_CONTROL_RI_OFST (8) +#define ALTERA_AVALON_JTAG_UART_CONTROL_WI_MSK (0x00000200) +#define ALTERA_AVALON_JTAG_UART_CONTROL_WI_OFST (9) +#define ALTERA_AVALON_JTAG_UART_CONTROL_AC_MSK (0x00000400) +#define ALTERA_AVALON_JTAG_UART_CONTROL_AC_OFST (10) +#define ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_MSK (0xFFFF0000) +#define ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_OFST (16) + +#endif /* __ALTERA_AVALON_JTAG_UART_REGS_H__ */ diff --git a/software/qsys_tutorial_lcd3_bsp/drivers/inc/altera_avalon_lcd_16207.h b/software/qsys_tutorial_lcd3_bsp/drivers/inc/altera_avalon_lcd_16207.h new file mode 100644 index 0000000..2024b9a --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/drivers/inc/altera_avalon_lcd_16207.h @@ -0,0 +1,158 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#ifndef __ALTERA_AVALON_LCD_16207_H__ +#define __ALTERA_AVALON_LCD_16207_H__ + +#include + +#include "sys/alt_alarm.h" +#include "os/alt_sem.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * The altera_avalon_lcd_16207_dev structure is used to hold device specific + * data. This includes the transmit and receive buffers. + * + * An instance of this structure is created in the auto-generated + * alt_sys_init.c file for each UART listed in the systems PTF file. This is + * done using the ALTERA_AVALON_LCD_16207_STATE_INSTANCE macro given below. + */ + +#define ALT_LCD_HEIGHT 2 +#define ALT_LCD_WIDTH 16 +#define ALT_LCD_VIRTUAL_WIDTH 80 + +typedef struct altera_avalon_lcd_16207_state_s +{ + int base; + + alt_alarm alarm; + int period; + + char broken; + + unsigned char x; + unsigned char y; + char address; + char esccount; + + char scrollpos; + char scrollmax; + char active; /* If non-zero then the foreground routines are + * active so the timer call must not update the + * display. */ + + char escape[8]; + + struct + { + char visible[ALT_LCD_WIDTH]; + char data[ALT_LCD_VIRTUAL_WIDTH+1]; + char width; + unsigned char speed; + + } line[ALT_LCD_HEIGHT]; + + ALT_SEM (write_lock)/* Semaphore used to control access to the + * write buffer in multi-threaded mode */ +} altera_avalon_lcd_16207_state; + +/* + * Called by alt_sys_init.c to initialize the driver. + */ +extern void altera_avalon_lcd_16207_init(altera_avalon_lcd_16207_state* sp); + +/* + * The LCD panel driver is not trivial, so leave it out in the small + * drivers case. Also leave it out in simulation because there is no + * simulated hardware for the LCD panel. These two can be overridden + * by defining ALT_USE_LCE_16207 if you really want it. + */ + +#if (!defined(ALT_USE_SMALL_DRIVERS) && !defined(ALT_SIM_OPTIMIZE)) || defined ALT_USE_LCD_16207 + +/* + * Used by the auto-generated file + * alt_sys_init.c to create an instance of this device driver. + */ +#define ALTERA_AVALON_LCD_16207_STATE_INSTANCE(name, state) \ + altera_avalon_lcd_16207_state state = \ + { \ + name##_BASE \ + } + +/* + * The macro ALTERA_AVALON_LCD_16207_INIT is used by the auto-generated file + * alt_sys_init.c to initialize an instance of the device driver. + */ +#define ALTERA_AVALON_LCD_16207_STATE_INIT(name, state) \ + altera_avalon_lcd_16207_init(&state) + +#else /* exclude driver */ + +#define ALTERA_AVALON_LCD_16207_STATE_INSTANCE(name, state) extern int alt_no_storage +#define ALTERA_AVALON_LCD_16207_STATE_INIT(name, state) while (0) + +#endif /* exclude driver */ + +/* + * Include in case non-direct version of driver required. + */ +#include "altera_avalon_lcd_16207_fd.h" + +/* + * Map alt_sys_init macros to direct or non-direct versions. + */ +#ifdef ALT_USE_DIRECT_DRIVERS + +#define ALTERA_AVALON_LCD_16207_INSTANCE(name, state) \ + ALTERA_AVALON_LCD_16207_STATE_INSTANCE(name, state) +#define ALTERA_AVALON_LCD_16207_INIT(name, state) \ + ALTERA_AVALON_LCD_16207_STATE_INIT(name, state) + +#else /* !ALT_USE_DIRECT_DRIVERS */ + +#define ALTERA_AVALON_LCD_16207_INSTANCE(name, dev) \ + ALTERA_AVALON_LCD_16207_DEV_INSTANCE(name, dev) +#define ALTERA_AVALON_LCD_16207_INIT(name, dev) \ + ALTERA_AVALON_LCD_16207_DEV_INIT(name, dev) + +#endif /* ALT_USE_DIRECT_DRIVERS */ + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __ALTERA_AVALON_LCD_16207_H__ */ diff --git a/software/qsys_tutorial_lcd3_bsp/drivers/inc/altera_avalon_lcd_16207_fd.h b/software/qsys_tutorial_lcd3_bsp/drivers/inc/altera_avalon_lcd_16207_fd.h new file mode 100644 index 0000000..370927b --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/drivers/inc/altera_avalon_lcd_16207_fd.h @@ -0,0 +1,108 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#ifndef __ALTERA_AVALON_LCD_16207_FD_H__ +#define __ALTERA_AVALON_LCD_16207_FD_H__ + +#include "sys/alt_dev.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * Externally referenced routines + */ +extern int altera_avalon_lcd_16207_write_fd(alt_fd* fd, const char* ptr, + int len); + +/* + * Device structure definition. This is needed by alt_sys_init in order to + * reserve memory for the device instance. + */ + +typedef struct altera_avalon_lcd_16207_dev_s +{ + alt_dev dev; + altera_avalon_lcd_16207_state state; +} altera_avalon_lcd_16207_dev; + +/* + * The LCD panel driver is not trivial, so leave it out in the small + * drivers case. Also leave it out in simulation because there is no + * simulated hardware for the LCD panel. These two can be overridden + * by defining ALT_USE_LCE_16207 if you really want it. + */ + +#if (!defined(ALT_USE_SMALL_DRIVERS) && !defined(ALT_SIM_OPTIMIZE)) || defined ALT_USE_LCD_16207 + +/* + * Macros used by alt_sys_init when the ALT file descriptor facility is used. + */ +#define ALTERA_AVALON_LCD_16207_DEV_INSTANCE(name, d) \ + static altera_avalon_lcd_16207_dev d = \ + { \ + { \ + ALT_LLIST_ENTRY, \ + name##_NAME, \ + NULL, /* open */ \ + NULL, /* close */ \ + NULL, /* read */ \ + altera_avalon_lcd_16207_write_fd, \ + NULL, /* lseek */ \ + NULL, /* fstat */ \ + NULL, /* ioctl */ \ + }, \ + { \ + name##_BASE \ + }, \ + } + +#define ALTERA_AVALON_LCD_16207_DEV_INIT(name, d) \ + { \ + ALTERA_AVALON_LCD_16207_STATE_INIT(name, d.state); \ + \ + /* make the device available to the system */ \ + alt_dev_reg(&d.dev); \ + } + +#else /* exclude driver */ + +#define ALTERA_AVALON_LCD_16207_DEV_INSTANCE(name, d) extern int alt_no_storage +#define ALTERA_AVALON_LCD_16207_DEV_INIT(name, d) while (0) + +#endif + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __ALTERA_AVALON_LCD_16207_FD_H__ */ diff --git a/software/qsys_tutorial_lcd3_bsp/drivers/inc/altera_avalon_lcd_16207_regs.h b/software/qsys_tutorial_lcd3_bsp/drivers/inc/altera_avalon_lcd_16207_regs.h new file mode 100644 index 0000000..79e29a6 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/drivers/inc/altera_avalon_lcd_16207_regs.h @@ -0,0 +1,83 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#ifndef __ALTERA_AVALON_LCD_16207_REGS_H__ +#define __ALTERA_AVALON_LCD_16207_REGS_H__ + +/* +/////////////////////////////////////////////////////////////////////////// +// +// ALTERA_AVALON_LCD_16207 PERIPHERAL +// +// Provides a hardware interface that allows software to +// access the two (2) internal 8-bit registers in an Optrex +// model 16207 (or equivalent) character LCD display (the kind +// shipped with the Nios Development Kit, 2 rows x 16 columns). +// +// Because the interface to the LCD module is "not quite Avalon," +// the hardware in this module ends-up mapping the module's +// two physical read-write registers into four Avalon-visible +// registers: Two read-only registers and two write-only registers. +// A picture is worth a thousand words: +// +// THE REGISTER MAP +// +// 7 6 5 4 3 2 1 0 Offset +// +-----+-----+-----+-----+-----+-----+-----+-----+ +// RS = 0 | Command Register (WRITE-Only) | 0 +// +-----+-----+-----+-----+-----+-----+-----+-----+ +// RS = 0 | Status Register (READ -Only) | 1 +// +-----+-----+-----+-----+-----+-----+-----+-----+ +// RS = 1 | Data Register (WRITE-Only) | 2 +// +-----+-----+-----+-----+-----+-----+-----+-----+ +// RS = 1 | Data Register (READ -Only) | 3 +// +-----+-----+-----+-----+-----+-----+-----+-----+ +// +/////////////////////////////////////////////////////////////////////////// +*/ + +#include + +#define IOADDR_ALTERA_AVALON_LCD_16207_COMMAND(base) __IO_CALC_ADDRESS_NATIVE(base, 0) +#define IOWR_ALTERA_AVALON_LCD_16207_COMMAND(base, data) IOWR(base, 0, data) + +#define IOADDR_ALTERA_AVALON_LCD_16207_STATUS(base) __IO_CALC_ADDRESS_NATIVE(base, 1) +#define IORD_ALTERA_AVALON_LCD_16207_STATUS(base) IORD(base, 1) + +#define ALTERA_AVALON_LCD_16207_STATUS_BUSY_MSK (0x00000080u) +#define ALTERA_AVALON_LCD_16207_STATUS_BUSY_OFST (7) + +#define IOADDR_ALTERA_AVALON_LCD_16207_DATA_WR(base) __IO_CALC_ADDRESS_NATIVE(base, 2) +#define IOWR_ALTERA_AVALON_LCD_16207_DATA(base, data) IOWR(base, 2, data) + +#define IOADDR_ALTERA_AVALON_LCD_16207_DATA_RD(base) __IO_CALC_ADDRESS_NATIVE(base, 3) +#define IORD_ALTERA_AVALON_LCD_16207_DATA(base) IORD(base, 3) + +#endif diff --git a/software/qsys_tutorial_lcd3_bsp/drivers/inc/altera_avalon_pio_regs.h b/software/qsys_tutorial_lcd3_bsp/drivers/inc/altera_avalon_pio_regs.h new file mode 100644 index 0000000..052439f --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/drivers/inc/altera_avalon_pio_regs.h @@ -0,0 +1,67 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#ifndef __ALTERA_AVALON_PIO_REGS_H__ +#define __ALTERA_AVALON_PIO_REGS_H__ + +#include + +#define IOADDR_ALTERA_AVALON_PIO_DATA(base) __IO_CALC_ADDRESS_NATIVE(base, 0) +#define IORD_ALTERA_AVALON_PIO_DATA(base) IORD(base, 0) +#define IOWR_ALTERA_AVALON_PIO_DATA(base, data) IOWR(base, 0, data) + +#define IOADDR_ALTERA_AVALON_PIO_DIRECTION(base) __IO_CALC_ADDRESS_NATIVE(base, 1) +#define IORD_ALTERA_AVALON_PIO_DIRECTION(base) IORD(base, 1) +#define IOWR_ALTERA_AVALON_PIO_DIRECTION(base, data) IOWR(base, 1, data) + +#define IOADDR_ALTERA_AVALON_PIO_IRQ_MASK(base) __IO_CALC_ADDRESS_NATIVE(base, 2) +#define IORD_ALTERA_AVALON_PIO_IRQ_MASK(base) IORD(base, 2) +#define IOWR_ALTERA_AVALON_PIO_IRQ_MASK(base, data) IOWR(base, 2, data) + +#define IOADDR_ALTERA_AVALON_PIO_EDGE_CAP(base) __IO_CALC_ADDRESS_NATIVE(base, 3) +#define IORD_ALTERA_AVALON_PIO_EDGE_CAP(base) IORD(base, 3) +#define IOWR_ALTERA_AVALON_PIO_EDGE_CAP(base, data) IOWR(base, 3, data) + + +#define IOADDR_ALTERA_AVALON_PIO_SET_BIT(base) __IO_CALC_ADDRESS_NATIVE(base, 4) +#define IORD_ALTERA_AVALON_PIO_SET_BITS(base) IORD(base, 4) +#define IOWR_ALTERA_AVALON_PIO_SET_BITS(base, data) IOWR(base, 4, data) + +#define IOADDR_ALTERA_AVALON_PIO_CLEAR_BITS(base) __IO_CALC_ADDRESS_NATIVE(base, 5) +#define IORD_ALTERA_AVALON_PIO_CLEAR_BITS(base) IORD(base, 5) +#define IOWR_ALTERA_AVALON_PIO_CLEAR_BITS(base, data) IOWR(base, 5, data) + + + +/* Defintions for direction-register operation with bi-directional PIOs */ +#define ALTERA_AVALON_PIO_DIRECTION_INPUT 0 +#define ALTERA_AVALON_PIO_DIRECTION_OUTPUT 1 + +#endif /* __ALTERA_AVALON_PIO_REGS_H__ */ diff --git a/software/qsys_tutorial_lcd3_bsp/drivers/src/altera_avalon_jtag_uart_fd.c b/software/qsys_tutorial_lcd3_bsp/drivers/src/altera_avalon_jtag_uart_fd.c new file mode 100644 index 0000000..53dfc3b --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/drivers/src/altera_avalon_jtag_uart_fd.c @@ -0,0 +1,86 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2007 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "alt_types.h" +#include "sys/alt_dev.h" +#include "altera_avalon_jtag_uart.h" + +extern int altera_avalon_jtag_uart_read(altera_avalon_jtag_uart_state* sp, + char* buffer, int space, int flags); +extern int altera_avalon_jtag_uart_write(altera_avalon_jtag_uart_state* sp, + const char* ptr, int count, int flags); +extern int altera_avalon_jtag_uart_ioctl(altera_avalon_jtag_uart_state* sp, + int req, void* arg); +extern int altera_avalon_jtag_uart_close(altera_avalon_jtag_uart_state* sp, + int flags); + +/* ----------------------------------------------------------------------- */ +/* --------------------- WRAPPERS FOR ALT FD SUPPORT --------------------- */ +/* + * + */ + +int +altera_avalon_jtag_uart_read_fd(alt_fd* fd, char* buffer, int space) +{ + altera_avalon_jtag_uart_dev* dev = (altera_avalon_jtag_uart_dev*) fd->dev; + + return altera_avalon_jtag_uart_read(&dev->state, buffer, space, + fd->fd_flags); +} + +int +altera_avalon_jtag_uart_write_fd(alt_fd* fd, const char* buffer, int space) +{ + altera_avalon_jtag_uart_dev* dev = (altera_avalon_jtag_uart_dev*) fd->dev; + + return altera_avalon_jtag_uart_write(&dev->state, buffer, space, + fd->fd_flags); +} + +#ifndef ALTERA_AVALON_JTAG_UART_SMALL + +int +altera_avalon_jtag_uart_close_fd(alt_fd* fd) +{ + altera_avalon_jtag_uart_dev* dev = (altera_avalon_jtag_uart_dev*) fd->dev; + + return altera_avalon_jtag_uart_close(&dev->state, fd->fd_flags); +} + +int +altera_avalon_jtag_uart_ioctl_fd(alt_fd* fd, int req, void* arg) +{ + altera_avalon_jtag_uart_dev* dev = (altera_avalon_jtag_uart_dev*) fd->dev; + + return altera_avalon_jtag_uart_ioctl(&dev->state, req, arg); +} + +#endif /* ALTERA_AVALON_JTAG_UART_SMALL */ diff --git a/software/qsys_tutorial_lcd3_bsp/drivers/src/altera_avalon_jtag_uart_init.c b/software/qsys_tutorial_lcd3_bsp/drivers/src/altera_avalon_jtag_uart_init.c new file mode 100644 index 0000000..7317bec --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/drivers/src/altera_avalon_jtag_uart_init.c @@ -0,0 +1,256 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2007 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include +#include +#include +#include + +#include + +#include "sys/alt_irq.h" +#include "sys/alt_alarm.h" +#include "sys/ioctl.h" +#include "alt_types.h" + +#include "altera_avalon_jtag_uart_regs.h" +#include "altera_avalon_jtag_uart.h" + +#include "sys/alt_log_printf.h" + +#ifndef ALTERA_AVALON_JTAG_UART_SMALL + +/* ----------------------------------------------------------- */ +/* ------------------------- FAST DRIVER --------------------- */ +/* ----------------------------------------------------------- */ +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT +static void altera_avalon_jtag_uart_irq(void* context); +#else +static void altera_avalon_jtag_uart_irq(void* context, alt_u32 id); +#endif +static alt_u32 altera_avalon_jtag_uart_timeout(void* context); + +/* + * Driver initialization code. Register interrupts and start a timer + * which we can use to check whether the host is there. + * Return 1 on sucessful IRQ register and 0 on failure. + */ + +void altera_avalon_jtag_uart_init(altera_avalon_jtag_uart_state* sp, + int irq_controller_id, int irq) +{ + ALT_FLAG_CREATE(&sp->events, 0); + ALT_SEM_CREATE(&sp->read_lock, 1); + ALT_SEM_CREATE(&sp->write_lock, 1); + + /* enable read interrupts at the device */ + sp->irq_enable = ALTERA_AVALON_JTAG_UART_CONTROL_RE_MSK; + + IOWR_ALTERA_AVALON_JTAG_UART_CONTROL(sp->base, sp->irq_enable); + + /* register the interrupt handler */ +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT + alt_ic_isr_register(irq_controller_id, irq, altera_avalon_jtag_uart_irq, + sp, NULL); +#else + alt_irq_register(irq, sp, altera_avalon_jtag_uart_irq); +#endif + + /* Register an alarm to go off every second to check for presence of host */ + sp->host_inactive = 0; + + if (alt_alarm_start(&sp->alarm, alt_ticks_per_second(), + &altera_avalon_jtag_uart_timeout, sp) < 0) + { + /* If we can't set the alarm then record "don't know if host present" + * and behave as though the host is present. + */ + sp->timeout = INT_MAX; + } + + /* ALT_LOG - see altera_hal/HAL/inc/sys/alt_log_printf.h */ + ALT_LOG_JTAG_UART_ALARM_REGISTER(sp, sp->base); +} + +/* + * Interrupt routine + */ +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT +static void altera_avalon_jtag_uart_irq(void* context) +#else +static void altera_avalon_jtag_uart_irq(void* context, alt_u32 id) +#endif +{ + altera_avalon_jtag_uart_state* sp = (altera_avalon_jtag_uart_state*) context; + unsigned int base = sp->base; + + /* ALT_LOG - see altera_hal/HAL/inc/sys/alt_log_printf.h */ + ALT_LOG_JTAG_UART_ISR_FUNCTION(base, sp); + + for ( ; ; ) + { + unsigned int control = IORD_ALTERA_AVALON_JTAG_UART_CONTROL(base); + + /* Return once nothing more to do */ + if ((control & (ALTERA_AVALON_JTAG_UART_CONTROL_RI_MSK | ALTERA_AVALON_JTAG_UART_CONTROL_WI_MSK)) == 0) + break; + + if (control & ALTERA_AVALON_JTAG_UART_CONTROL_RI_MSK) + { + /* process a read irq. Start by assuming that there is data in the + * receive FIFO (otherwise why would we have been interrupted?) + */ + unsigned int data = 1 << ALTERA_AVALON_JTAG_UART_DATA_RAVAIL_OFST; + + for ( ; ; ) + { + /* Check whether there is space in the buffer. If not then we must not + * read any characters from the buffer as they will be lost. + */ + unsigned int next = (sp->rx_in + 1) % ALTERA_AVALON_JTAG_UART_BUF_LEN; + if (next == sp->rx_out) + break; + + /* Try to remove a character from the FIFO and find out whether there + * are any more characters remaining. + */ + data = IORD_ALTERA_AVALON_JTAG_UART_DATA(base); + + if ((data & ALTERA_AVALON_JTAG_UART_DATA_RVALID_MSK) == 0) + break; + + sp->rx_buf[sp->rx_in] = (data & ALTERA_AVALON_JTAG_UART_DATA_DATA_MSK) >> ALTERA_AVALON_JTAG_UART_DATA_DATA_OFST; + sp->rx_in = (sp->rx_in + 1) % ALTERA_AVALON_JTAG_UART_BUF_LEN; + + /* Post an event to notify jtag_uart_read that a character has been read */ + ALT_FLAG_POST (sp->events, ALT_JTAG_UART_READ_RDY, OS_FLAG_SET); + } + + if (data & ALTERA_AVALON_JTAG_UART_DATA_RAVAIL_MSK) + { + /* If there is still data available here then the buffer is full + * so turn off receive interrupts until some space becomes available. + */ + sp->irq_enable &= ~ALTERA_AVALON_JTAG_UART_CONTROL_RE_MSK; + IOWR_ALTERA_AVALON_JTAG_UART_CONTROL(base, sp->irq_enable); + + /* Dummy read to ensure IRQ is cleared prior to ISR completion */ + IORD_ALTERA_AVALON_JTAG_UART_CONTROL(base); + } + } + + if (control & ALTERA_AVALON_JTAG_UART_CONTROL_WI_MSK) + { + /* process a write irq */ + unsigned int space = (control & ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_MSK) >> ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_OFST; + + while (space > 0 && sp->tx_out != sp->tx_in) + { + IOWR_ALTERA_AVALON_JTAG_UART_DATA(base, sp->tx_buf[sp->tx_out]); + + sp->tx_out = (sp->tx_out + 1) % ALTERA_AVALON_JTAG_UART_BUF_LEN; + + /* Post an event to notify jtag_uart_write that a character has been written */ + ALT_FLAG_POST (sp->events, ALT_JTAG_UART_WRITE_RDY, OS_FLAG_SET); + + space--; + } + + if (space > 0) + { + /* If we don't have any more data available then turn off the TX interrupt */ + sp->irq_enable &= ~ALTERA_AVALON_JTAG_UART_CONTROL_WE_MSK; + IOWR_ALTERA_AVALON_JTAG_UART_CONTROL(sp->base, sp->irq_enable); + + /* Dummy read to ensure IRQ is cleared prior to ISR completion */ + IORD_ALTERA_AVALON_JTAG_UART_CONTROL(base); + } + } + } +} + +/* + * Timeout routine is called every second + */ + +static alt_u32 +altera_avalon_jtag_uart_timeout(void* context) +{ + altera_avalon_jtag_uart_state* sp = (altera_avalon_jtag_uart_state *) context; + + unsigned int control = IORD_ALTERA_AVALON_JTAG_UART_CONTROL(sp->base); + + if (control & ALTERA_AVALON_JTAG_UART_CONTROL_AC_MSK) + { + IOWR_ALTERA_AVALON_JTAG_UART_CONTROL(sp->base, sp->irq_enable | ALTERA_AVALON_JTAG_UART_CONTROL_AC_MSK); + sp->host_inactive = 0; + } + else if (sp->host_inactive < INT_MAX - 2) { + sp->host_inactive++; + + if (sp->host_inactive >= sp->timeout) { + /* Post an event to indicate host is inactive (for jtag_uart_read */ + ALT_FLAG_POST (sp->events, ALT_JTAG_UART_TIMEOUT, OS_FLAG_SET); + } + } + + return alt_ticks_per_second(); +} + +/* + * The close() routine is implemented to drain the JTAG UART transmit buffer + * when not in "small" mode. This routine will wait for transimt data to be + * emptied unless a timeout from host-activity occurs. If the driver flags + * have been set to non-blocking mode, this routine will exit immediately if + * any data remains. This routine should be called indirectly (i.e. though + * the C library close() routine) so that the file descriptor associated + * with the relevant stream (i.e. stdout) can be closed as well. This routine + * does not manage file descriptors. + * + * The close routine is not implemented for the small driver; instead it will + * map to null. This is because the small driver simply waits while characters + * are transmitted; there is no interrupt-serviced buffer to empty + */ +int altera_avalon_jtag_uart_close(altera_avalon_jtag_uart_state* sp, int flags) +{ + /* + * Wait for all transmit data to be emptied by the JTAG UART ISR, or + * for a host-inactivity timeout, in which case transmit data will be lost + */ + while ( (sp->tx_out != sp->tx_in) && (sp->host_inactive < sp->timeout) ) { + if (flags & O_NONBLOCK) { + return -EWOULDBLOCK; + } + } + + return 0; +} + +#endif /* !ALTERA_AVALON_JTAG_UART_SMALL */ diff --git a/software/qsys_tutorial_lcd3_bsp/drivers/src/altera_avalon_jtag_uart_ioctl.c b/software/qsys_tutorial_lcd3_bsp/drivers/src/altera_avalon_jtag_uart_ioctl.c new file mode 100644 index 0000000..cf71e6f --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/drivers/src/altera_avalon_jtag_uart_ioctl.c @@ -0,0 +1,86 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include +#include +#include +#include + +#include + +#include "sys/ioctl.h" +#include "alt_types.h" + +#include "altera_avalon_jtag_uart_regs.h" +#include "altera_avalon_jtag_uart.h" + +#include "sys/alt_log_printf.h" + +#ifndef ALTERA_AVALON_JTAG_UART_SMALL + +/* ----------------------------------------------------------- */ +/* ------------------------- FAST DRIVER --------------------- */ +/* ----------------------------------------------------------- */ + +int +altera_avalon_jtag_uart_ioctl(altera_avalon_jtag_uart_state* sp, int req, + void* arg) +{ + int rc = -ENOTTY; + + switch (req) + { + case TIOCSTIMEOUT: + /* Set the time to wait until assuming host is not connected */ + if (sp->timeout != INT_MAX) + { + int timeout = *((int *)arg); + sp->timeout = (timeout >= 2 && timeout < INT_MAX) ? timeout : INT_MAX - 1; + rc = 0; + } + break; + + case TIOCGCONNECTED: + /* Find out whether host is connected */ + if (sp->timeout != INT_MAX) + { + *((int *)arg) = (sp->host_inactive < sp->timeout) ? 1 : 0; + rc = 0; + } + break; + + default: + break; + } + + return rc; +} + +#endif /* !ALTERA_AVALON_JTAG_UART_SMALL */ diff --git a/software/qsys_tutorial_lcd3_bsp/drivers/src/altera_avalon_jtag_uart_read.c b/software/qsys_tutorial_lcd3_bsp/drivers/src/altera_avalon_jtag_uart_read.c new file mode 100644 index 0000000..5657adb --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/drivers/src/altera_avalon_jtag_uart_read.c @@ -0,0 +1,205 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include +#include +#include +#include + +#include + +#include "sys/alt_irq.h" +#include "sys/alt_alarm.h" +#include "sys/ioctl.h" +#include "alt_types.h" + +#include "altera_avalon_jtag_uart_regs.h" +#include "altera_avalon_jtag_uart.h" + +#include "sys/alt_log_printf.h" + +#ifdef __ucosii__ +#include "includes.h" +#endif /* __ucosii__ */ + +#ifdef ALTERA_AVALON_JTAG_UART_SMALL + +/* ----------------------------------------------------------- */ +/* ----------------------- SMALL DRIVER ---------------------- */ +/* ----------------------------------------------------------- */ + +/* Read routine. The small version blocks until it has at least one byte + * available, it then returns as much as is immediately available without + * waiting any more. It's performance will be very poor without + * interrupts. + */ + +int +altera_avalon_jtag_uart_read(altera_avalon_jtag_uart_state* sp, + char* buffer, int space, int flags) +{ + unsigned int base = sp->base; + + char * ptr = buffer; + char * end = buffer + space; + + while (ptr < end) + { + unsigned int data = IORD_ALTERA_AVALON_JTAG_UART_DATA(base); + + if (data & ALTERA_AVALON_JTAG_UART_DATA_RVALID_MSK) + *ptr++ = (data & ALTERA_AVALON_JTAG_UART_DATA_DATA_MSK) >> ALTERA_AVALON_JTAG_UART_DATA_DATA_OFST; + else if (ptr != buffer) + break; + else if(flags & O_NONBLOCK) + break; + + } + + if (ptr != buffer) + return ptr - buffer; + else if (flags & O_NONBLOCK) + return -EWOULDBLOCK; + else + return -EIO; +} + +#else /* !ALTERA_AVALON_JTAG_UART_SMALL */ + +/* ----------------------------------------------------------- */ +/* ----------------------- FAST DRIVER ----------------------- */ +/* ----------------------------------------------------------- */ + +int +altera_avalon_jtag_uart_read(altera_avalon_jtag_uart_state* sp, + char * buffer, int space, int flags) +{ + char * ptr = buffer; + + alt_irq_context context; + unsigned int n; + + /* + * When running in a multi threaded environment, obtain the "read_lock" + * semaphore. This ensures that reading from the device is thread-safe. + */ + ALT_SEM_PEND (sp->read_lock, 0); + + while (space > 0) + { + unsigned int in, out; + + /* Read as much data as possible */ + do + { + in = sp->rx_in; + out = sp->rx_out; + + if (in >= out) + n = in - out; + else + n = ALTERA_AVALON_JTAG_UART_BUF_LEN - out; + + if (n == 0) + break; /* No more data available */ + + if (n > space) + n = space; + + memcpy(ptr, sp->rx_buf + out, n); + ptr += n; + space -= n; + + sp->rx_out = (out + n) % ALTERA_AVALON_JTAG_UART_BUF_LEN; + } + while (space > 0); + + /* If we read any data then return it */ + if (ptr != buffer) + break; + + /* If in non-blocking mode then return error */ + if (flags & O_NONBLOCK) + break; + +#ifdef __ucosii__ + /* OS Present: Pend on a flag if the OS is running, otherwise spin */ + if(OSRunning == OS_TRUE) { + /* + * When running in a multi-threaded mode, we pend on the read event + * flag set and timeout event flag set in the isr. This avoids wasting CPU + * cycles waiting in this thread, when we could be doing something more + * profitable elsewhere. + */ + ALT_FLAG_PEND (sp->events, + ALT_JTAG_UART_READ_RDY | ALT_JTAG_UART_TIMEOUT, + OS_FLAG_WAIT_SET_ANY + OS_FLAG_CONSUME, + 0); + } + else { + /* Spin until more data arrives or until host disconnects */ + while (in == sp->rx_in && sp->host_inactive < sp->timeout) + ; + } +#else + /* No OS: Always spin */ + while (in == sp->rx_in && sp->host_inactive < sp->timeout) + ; +#endif /* __ucosii__ */ + + if (in == sp->rx_in) + break; + } + + /* + * Now that access to the circular buffer is complete, release the read + * semaphore so that other threads can access the buffer. + */ + + ALT_SEM_POST (sp->read_lock); + + if (ptr != buffer) + { + /* If we read any data then there is space in the buffer so enable interrupts */ + context = alt_irq_disable_all(); + sp->irq_enable |= ALTERA_AVALON_JTAG_UART_CONTROL_RE_MSK; + IOWR_ALTERA_AVALON_JTAG_UART_CONTROL(sp->base, sp->irq_enable); + alt_irq_enable_all(context); + } + + if (ptr != buffer) + return ptr - buffer; + else if (flags & O_NONBLOCK) + return -EWOULDBLOCK; + else + return -EIO; +} + +#endif /* ALTERA_AVALON_JTAG_UART_SMALL */ diff --git a/software/qsys_tutorial_lcd3_bsp/drivers/src/altera_avalon_jtag_uart_write.c b/software/qsys_tutorial_lcd3_bsp/drivers/src/altera_avalon_jtag_uart_write.c new file mode 100644 index 0000000..11aeca1 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/drivers/src/altera_avalon_jtag_uart_write.c @@ -0,0 +1,217 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include +#include +#include +#include + +#include + +#include "sys/alt_irq.h" +#include "sys/alt_alarm.h" +#include "sys/ioctl.h" +#include "alt_types.h" + +#include "altera_avalon_jtag_uart_regs.h" +#include "altera_avalon_jtag_uart.h" + +#include "sys/alt_log_printf.h" + +#ifdef __ucosii__ +#include "includes.h" +#endif /* __ucosii__ */ + +#ifdef ALTERA_AVALON_JTAG_UART_SMALL + +/* ----------------------------------------------------------- */ +/* ------------------------ SMALL DRIVER --------------------- */ +/* ----------------------------------------------------------- */ + +/* Write routine. The small version blocks when there is no space to write + * into, so it's performance will be very bad if you are writing more than + * one FIFOs worth of data. But you said you didn't want to use interrupts :-) + */ + +int altera_avalon_jtag_uart_write(altera_avalon_jtag_uart_state* sp, + const char * ptr, int count, int flags) +{ + unsigned int base = sp->base; + + const char * end = ptr + count; + + while (ptr < end) + if ((IORD_ALTERA_AVALON_JTAG_UART_CONTROL(base) & ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_MSK) != 0) + IOWR_ALTERA_AVALON_JTAG_UART_DATA(base, *ptr++); + + return count; +} + +#else /* !ALTERA_AVALON_JTAG_UART_SMALL */ + +/* ----------------------------------------------------------- */ +/* ------------------------- FAST DRIVER --------------------- */ +/* ----------------------------------------------------------- */ + +int +altera_avalon_jtag_uart_write(altera_avalon_jtag_uart_state* sp, + const char * ptr, int count, int flags) +{ + /* Remove warning at optimisation level 03 by seting out to 0 */ + unsigned int in, out=0; + unsigned int n; + alt_irq_context context; + + const char * start = ptr; + + /* + * When running in a multi threaded environment, obtain the "write_lock" + * semaphore. This ensures that writing to the device is thread-safe. + */ + ALT_SEM_PEND (sp->write_lock, 0); + + do + { + /* Copy as much as we can into the transmit buffer */ + while (count > 0) + { + /* We need a stable value of the out pointer to calculate the space available */ + in = sp->tx_in; + out = sp->tx_out; + + if (in < out) + n = out - 1 - in; + else if (out > 0) + n = ALTERA_AVALON_JTAG_UART_BUF_LEN - in; + else + n = ALTERA_AVALON_JTAG_UART_BUF_LEN - 1 - in; + + if (n == 0) + break; + + if (n > count) + n = count; + + memcpy(sp->tx_buf + in, ptr, n); + ptr += n; + count -= n; + + sp->tx_in = (in + n) % ALTERA_AVALON_JTAG_UART_BUF_LEN; + } + + /* + * If interrupts are disabled then we could transmit here, we only need + * to enable interrupts if there is no space left in the FIFO + * + * For now kick the interrupt routine every time to make it transmit + * the data + */ + context = alt_irq_disable_all(); + sp->irq_enable |= ALTERA_AVALON_JTAG_UART_CONTROL_WE_MSK; + IOWR_ALTERA_AVALON_JTAG_UART_CONTROL(sp->base, sp->irq_enable); + alt_irq_enable_all(context); + + /* + * If there is any data left then either return now or block until + * some has been sent + */ + /* consider: test whether there is anything there while doing this and delay for at most 2s. */ + if (count > 0) + { + if (flags & O_NONBLOCK) + break; + +#ifdef __ucosii__ + /* OS Present: Pend on a flag if the OS is running, otherwise spin */ + if(OSRunning == OS_TRUE) { + /* + * When running in a multi-threaded mode, we pend on the write event + * flag set or the timeout flag in the isr. This avoids wasting CPU + * cycles waiting in this thread, when we could be doing something + * more profitable elsewhere. + */ +#ifdef ALTERA_AVALON_JTAG_UART_IGNORE_FIFO_FULL_ERROR + if(!sp->host_inactive) +#endif + ALT_FLAG_PEND (sp->events, + ALT_JTAG_UART_WRITE_RDY | ALT_JTAG_UART_TIMEOUT, + OS_FLAG_WAIT_SET_ANY + OS_FLAG_CONSUME, + 0); + } + else { + /* + * OS not running: Wait for data to be removed from buffer. + * Once the interrupt routine has removed some data then we + * will be able to insert some more. + */ + while (out == sp->tx_out && sp->host_inactive < sp->timeout) + ; + } +#else + /* + * No OS present: Always wait for data to be removed from buffer. Once + * the interrupt routine has removed some data then we will be able to + * insert some more. + */ + while (out == sp->tx_out && sp->host_inactive < sp->timeout) + ; +#endif /* __ucosii__ */ + + if (out == sp->tx_out) + break; + } + } + while (count > 0); + + /* + * Now that access to the circular buffer is complete, release the write + * semaphore so that other threads can access the buffer. + */ + ALT_SEM_POST (sp->write_lock); + + if (ptr != start) + return ptr - start; + else if (flags & O_NONBLOCK) + return -EWOULDBLOCK; +#ifdef ALTERA_AVALON_JTAG_UART_IGNORE_FIFO_FULL_ERROR + else if (sp->host_inactive >= sp->timeout) { + /* + * Reset the software FIFO, hardware FIFO could not be reset. + * Just throw away characters without reporting error. + */ + sp->tx_out = sp->tx_in = 0; + return ptr - start + count; + } +#endif + else + return -EIO; /* Host not connected */ +} + +#endif /* ALTERA_AVALON_JTAG_UART_SMALL */ diff --git a/software/qsys_tutorial_lcd3_bsp/drivers/src/altera_avalon_lcd_16207.c b/software/qsys_tutorial_lcd3_bsp/drivers/src/altera_avalon_lcd_16207.c new file mode 100644 index 0000000..1fefba3 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/drivers/src/altera_avalon_lcd_16207.c @@ -0,0 +1,605 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/* ===================================================================== */ + +/* + * This file provides the implementation of the functions used to drive a + * LCD panel. + * + * Characters written to the device will appear on the LCD panel as though + * it is a very small terminal. If the lines written to the terminal are + * longer than the number of characters on the terminal then it will scroll + * the lines of text automatically to display them all. + * + * If more lines are written than will fit on the terminal then it will scroll + * when characters are written to the line "below" the last displayed one - + * the cursor is allowed to sit below the visible area of the screen providing + * that this line is entirely blank. + * + * The following control sequences may be used to move around and do useful + * stuff: + * CR Moves back to the start of the current line + * LF Moves down a line and back to the start + * BS Moves back a character without erasing + * ESC Starts a VT100 style escape sequence + * + * The following escape sequences are recognised: + * ESC [ ; H Move to row and column specified (positions are + * counted from the top left which is 1;1) + * ESC [ K Clear from current position to end of line + * ESC [ 2 J Clear screen and go to top left + * + */ + +/* ===================================================================== */ + +#include +#include + +#include +#include +#include + +#include "sys/alt_alarm.h" + +#include "altera_avalon_lcd_16207_regs.h" +#include "altera_avalon_lcd_16207.h" + +/* --------------------------------------------------------------------- */ + +/* Commands which can be written to the COMMAND register */ + +enum /* Write to character RAM */ +{ + LCD_CMD_WRITE_DATA = 0x80 + /* Bits 6:0 hold character RAM address */ +}; + +enum /* Write to character generator RAM */ +{ + LCD_CMD_WRITE_CGR = 0x40 + /* Bits 5:0 hold character generator RAM address */ +}; + +enum /* Function Set command */ +{ + LCD_CMD_FUNCTION_SET = 0x20, + LCD_CMD_8BIT = 0x10, + LCD_CMD_TWO_LINE = 0x08, + LCD_CMD_BIGFONT = 0x04 +}; + +enum /* Shift command */ +{ + LCD_CMD_SHIFT = 0x10, + LCD_CMD_SHIFT_DISPLAY = 0x08, + LCD_CMD_SHIFT_RIGHT = 0x04 +}; + +enum /* On/Off command */ +{ + LCD_CMD_ONOFF = 0x08, + LCD_CMD_ENABLE_DISP = 0x04, + LCD_CMD_ENABLE_CURSOR = 0x02, + LCD_CMD_ENABLE_BLINK = 0x01 +}; + +enum /* Entry Mode command */ +{ + LCD_CMD_MODES = 0x04, + LCD_CMD_MODE_INC = 0x02, + LCD_CMD_MODE_SHIFT = 0x01 +}; + +enum /* Home command */ +{ + LCD_CMD_HOME = 0x02 +}; + +enum /* Clear command */ +{ + LCD_CMD_CLEAR = 0x01 +}; + +/* Where in LCD character space do the rows start */ +static char colstart[4] = { 0x00, 0x40, 0x20, 0x60 }; + +/* --------------------------------------------------------------------- */ + +static void lcd_write_command(altera_avalon_lcd_16207_state* sp, + unsigned char command) +{ + unsigned int base = sp->base; + + /* We impose a timeout on the driver in case the LCD panel isn't connected. + * The first time we call this function the timeout is approx 25ms + * (assuming 5 cycles per loop and a 200MHz clock). Obviously systems + * with slower clocks, or debug builds, or slower memory will take longer. + */ + int i = 1000000; + + /* Don't bother if the LCD panel didn't work before */ + if (sp->broken) + return; + + /* Wait until LCD isn't busy. */ + while (IORD_ALTERA_AVALON_LCD_16207_STATUS(base) & ALTERA_AVALON_LCD_16207_STATUS_BUSY_MSK) + if (--i == 0) + { + sp->broken = 1; + return; + } + + /* Despite what it says in the datasheet, the LCD isn't ready to accept + * a write immediately after it returns BUSY=0. Wait for 100us more. + */ + usleep(100); + + IOWR_ALTERA_AVALON_LCD_16207_COMMAND(base, command); +} + +/* --------------------------------------------------------------------- */ + +static void lcd_write_data(altera_avalon_lcd_16207_state* sp, + unsigned char data) +{ + unsigned int base = sp->base; + + /* We impose a timeout on the driver in case the LCD panel isn't connected. + * The first time we call this function the timeout is approx 25ms + * (assuming 5 cycles per loop and a 200MHz clock). Obviously systems + * with slower clocks, or debug builds, or slower memory will take longer. + */ + int i = 1000000; + + /* Don't bother if the LCD panel didn't work before */ + if (sp->broken) + return; + + /* Wait until LCD isn't busy. */ + while (IORD_ALTERA_AVALON_LCD_16207_STATUS(base) & ALTERA_AVALON_LCD_16207_STATUS_BUSY_MSK) + if (--i == 0) + { + sp->broken = 1; + return; + } + + /* Despite what it says in the datasheet, the LCD isn't ready to accept + * a write immediately after it returns BUSY=0. Wait for 100us more. + */ + usleep(100); + + IOWR_ALTERA_AVALON_LCD_16207_DATA(base, data); + + sp->address++; +} + +/* --------------------------------------------------------------------- */ + +static void lcd_clear_screen(altera_avalon_lcd_16207_state* sp) +{ + int y; + + lcd_write_command(sp, LCD_CMD_CLEAR); + + sp->x = 0; + sp->y = 0; + sp->address = 0; + + for (y = 0 ; y < ALT_LCD_HEIGHT ; y++) + { + memset(sp->line[y].data, ' ', sizeof(sp->line[0].data)); + memset(sp->line[y].visible, ' ', sizeof(sp->line[0].visible)); + sp->line[y].width = 0; + } +} + +/* --------------------------------------------------------------------- */ + +static void lcd_repaint_screen(altera_avalon_lcd_16207_state* sp) +{ + int y, x; + + /* scrollpos controls how much the lines have scrolled round. The speed + * each line scrolls at is controlled by its speed variable - while + * scrolline lines will wrap at the position set by width + */ + + int scrollpos = sp->scrollpos; + + for (y = 0 ; y < ALT_LCD_HEIGHT ; y++) + { + int width = sp->line[y].width; + int offset = (scrollpos * sp->line[y].speed) >> 8; + if (offset >= width) + offset = 0; + + for (x = 0 ; x < ALT_LCD_WIDTH ; x++) + { + char c = sp->line[y].data[(x + offset) % width]; + + /* Writing data takes 40us, so don't do it unless required */ + if (sp->line[y].visible[x] != c) + { + unsigned char address = x + colstart[y]; + + if (address != sp->address) + { + lcd_write_command(sp, LCD_CMD_WRITE_DATA | address); + sp->address = address; + } + + lcd_write_data(sp, c); + sp->line[y].visible[x] = c; + } + } + } +} + +/* --------------------------------------------------------------------- */ + +static void lcd_scroll_up(altera_avalon_lcd_16207_state* sp) +{ + int y; + + for (y = 0 ; y < ALT_LCD_HEIGHT ; y++) + { + if (y < ALT_LCD_HEIGHT-1) + memcpy(sp->line[y].data, sp->line[y+1].data, ALT_LCD_VIRTUAL_WIDTH); + else + memset(sp->line[y].data, ' ', ALT_LCD_VIRTUAL_WIDTH); + } + + sp->y--; +} + +/* --------------------------------------------------------------------- */ + +static void lcd_handle_escape(altera_avalon_lcd_16207_state* sp, char c) +{ + int parm1 = 0, parm2 = 0; + + if (sp->escape[0] == '[') + { + char * ptr = sp->escape+1; + while (isdigit(*ptr)) + parm1 = (parm1 * 10) + (*ptr++ - '0'); + + if (*ptr == ';') + { + ptr++; + while (isdigit(*ptr)) + parm2 = (parm2 * 10) + (*ptr++ - '0'); + } + } + else + parm1 = -1; + + switch (c) + { + case 'H': /* ESC '[' ';' 'H' : Move cursor to location */ + case 'f': /* Same as above */ + if (parm2 > 0) + sp->x = parm2 - 1; + if (parm1 > 0) + { + sp->y = parm1 - 1; + if (sp->y > ALT_LCD_HEIGHT * 2) + sp->y = ALT_LCD_HEIGHT * 2; + while (sp->y > ALT_LCD_HEIGHT) + lcd_scroll_up(sp); + } + break; + + case 'J': + /* ESC J is clear to beginning of line [unimplemented] + * ESC [ 0 J is clear to bottom of screen [unimplemented] + * ESC [ 1 J is clear to beginning of screen [unimplemented] + * ESC [ 2 J is clear screen + */ + if (parm1 == 2) + lcd_clear_screen(sp); + break; + + case 'K': + /* ESC K is clear to end of line + * ESC [ 0 K is clear to end of line + * ESC [ 1 K is clear to beginning of line [unimplemented] + * ESC [ 2 K is clear line [unimplemented] + */ + if (parm1 < 1) + { + if (sp->x < ALT_LCD_VIRTUAL_WIDTH) + memset(sp->line[sp->y].data + sp->x, ' ', ALT_LCD_VIRTUAL_WIDTH - sp->x); + } + break; + } +} + +/* --------------------------------------------------------------------- */ + +int altera_avalon_lcd_16207_write(altera_avalon_lcd_16207_state* sp, + const char* ptr, int len, int flags) +{ + const char* end = ptr + len; + + int y; + int widthmax; + + /* When running in a multi threaded environment, obtain the "write_lock" + * semaphore. This ensures that writing to the device is thread-safe. + */ + + ALT_SEM_PEND (sp->write_lock, 0); + + /* Tell the routine which is called off the timer interrupt that the + * foreground routines are active so it must not repaint the display. */ + sp->active = 1; + + for ( ; ptr < end ; ptr++) + { + char c = *ptr; + + if (sp->esccount >= 0) + { + unsigned int esccount = sp->esccount; + + /* Single character escape sequences can end with any character + * Multi character escape sequences start with '[' and contain + * digits and semicolons before terminating + */ + if ((esccount == 0 && c != '[') || + (esccount > 0 && !isdigit(c) && c != ';')) + { + sp->escape[esccount] = 0; + + lcd_handle_escape(sp, c); + + sp->esccount = -1; + } + else if (sp->esccount < sizeof(sp->escape)-1) + { + sp->escape[esccount] = c; + sp->esccount++; + } + } + else if (c == 27) /* ESC */ + { + sp->esccount = 0; + } + else if (c == '\r') + { + sp->x = 0; + } + else if (c == '\n') + { + sp->x = 0; + sp->y++; + + /* Let the cursor sit at X=0, Y=HEIGHT without scrolling so the user + * can print two lines of data without losing one. + */ + if (sp->y > ALT_LCD_HEIGHT) + lcd_scroll_up(sp); + } + else if (c == '\b') + { + if (sp->x > 0) + sp->x--; + } + else if (isprint(c)) + { + /* If we didn't scroll on the last linefeed then we might need to do + * it now. */ + if (sp->y >= ALT_LCD_HEIGHT) + lcd_scroll_up(sp); + + if (sp->x < ALT_LCD_VIRTUAL_WIDTH) + sp->line[sp->y].data[sp->x] = c; + + sp->x++; + } + } + + /* Recalculate the scrolling parameters */ + widthmax = ALT_LCD_WIDTH; + for (y = 0 ; y < ALT_LCD_HEIGHT ; y++) + { + int width; + for (width = ALT_LCD_VIRTUAL_WIDTH ; width > 0 ; width--) + if (sp->line[y].data[width-1] != ' ') + break; + + /* The minimum width is the size of the LCD panel. If the real width + * is long enough to require scrolling then add an extra space so the + * end of the message doesn't run into the beginning of it. + */ + if (width <= ALT_LCD_WIDTH) + width = ALT_LCD_WIDTH; + else + width++; + + sp->line[y].width = width; + if (widthmax < width) + widthmax = width; + sp->line[y].speed = 0; /* By default lines don't scroll */ + } + + if (widthmax <= ALT_LCD_WIDTH) + sp->scrollmax = 0; + else + { + widthmax *= 2; + sp->scrollmax = widthmax; + + /* Now calculate how fast each of the other lines should go */ + for (y = 0 ; y < ALT_LCD_HEIGHT ; y++) + if (sp->line[y].width > ALT_LCD_WIDTH) + { + /* You have three options for how to make the display scroll, chosen + * using the preprocessor directives below + */ +#if 1 + /* This option makes all the lines scroll round at different speeds + * which are chosen so that all the scrolls finish at the same time. + */ + sp->line[y].speed = 256 * sp->line[y].width / widthmax; +#elif 1 + /* This option pads the shorter lines with spaces so that they all + * scroll together. + */ + sp->line[y].width = widthmax / 2; + sp->line[y].speed = 256/2; +#else + /* This option makes the shorter lines stop after they have rotated + * and waits for the longer lines to catch up + */ + sp->line[y].speed = 256/2; +#endif + } + } + + /* Repaint once, then check whether there has been a missed repaint + * (because active was set when the timer interrupt occurred). If there + * has been a missed repaint then paint again. And again. etc. + */ + for ( ; ; ) + { + int old_scrollpos = sp->scrollpos; + + lcd_repaint_screen(sp); + + /* Let the timer routines repaint the display again */ + sp->active = 0; + + /* Have the timer routines tried to scroll while we were painting? + * If not then we can exit */ + if (sp->scrollpos == old_scrollpos) + break; + + /* We need to repaint again since the display scrolled while we were + * painting last time */ + sp->active = 1; + } + + /* Now that access to the display is complete, release the write + * semaphore so that other threads can access the buffer. + */ + + ALT_SEM_POST (sp->write_lock); + + return len; +} + +/* --------------------------------------------------------------------- */ + +/* This should be in a top level header file really */ +#define container_of(ptr, type, member) ((type *)((char *)ptr - offsetof(type, member))) + +/* + * Timeout routine is called every second + */ + +static alt_u32 alt_lcd_16207_timeout(void* context) +{ + altera_avalon_lcd_16207_state* sp = (altera_avalon_lcd_16207_state*)context; + + /* Update the scrolling position */ + if (sp->scrollpos + 1 >= sp->scrollmax) + sp->scrollpos = 0; + else + sp->scrollpos = sp->scrollpos + 1; + + /* Repaint the panel unless the foreground will do it again soon */ + if (sp->scrollmax > 0 && !sp->active) + lcd_repaint_screen(sp); + + return sp->period; +} + +/* --------------------------------------------------------------------- */ + +/* + * Called at boot time to initialise the LCD driver + */ +void altera_avalon_lcd_16207_init(altera_avalon_lcd_16207_state* sp) +{ + unsigned int base = sp->base; + + /* Mark the device as functional */ + sp->broken = 0; + + ALT_SEM_CREATE (&sp->write_lock, 1); + + /* The initialisation sequence below is copied from the datasheet for + * the 16207 LCD display. The first commands need to be timed because + * the BUSY bit in the status register doesn't work until the display + * has been reset three times. + */ + + /* Wait for 15 ms then reset */ + usleep(15000); + IOWR_ALTERA_AVALON_LCD_16207_COMMAND(base, LCD_CMD_FUNCTION_SET | LCD_CMD_8BIT); + + /* Wait for another 4.1ms and reset again */ + usleep(4100); + IOWR_ALTERA_AVALON_LCD_16207_COMMAND(base, LCD_CMD_FUNCTION_SET | LCD_CMD_8BIT); + + /* Wait a further 1 ms and reset a third time */ + usleep(1000); + IOWR_ALTERA_AVALON_LCD_16207_COMMAND(base, LCD_CMD_FUNCTION_SET | LCD_CMD_8BIT); + + /* Setup interface parameters: 8 bit bus, 2 rows, 5x7 font */ + lcd_write_command(sp, LCD_CMD_FUNCTION_SET | LCD_CMD_8BIT | LCD_CMD_TWO_LINE); + + /* Turn display off */ + lcd_write_command(sp, LCD_CMD_ONOFF); + + /* Clear display */ + lcd_clear_screen(sp); + + /* Set mode: increment after writing, don't shift display */ + lcd_write_command(sp, LCD_CMD_MODES | LCD_CMD_MODE_INC); + + /* Turn display on */ + lcd_write_command(sp, LCD_CMD_ONOFF | LCD_CMD_ENABLE_DISP); + + sp->esccount = -1; + memset(sp->escape, 0, sizeof(sp->escape)); + + sp->scrollpos = 0; + sp->scrollmax = 0; + sp->active = 0; + + sp->period = alt_ticks_per_second() / 10; /* Call every 100ms */ + + alt_alarm_start(&sp->alarm, sp->period, &alt_lcd_16207_timeout, sp); +} diff --git a/software/qsys_tutorial_lcd3_bsp/drivers/src/altera_avalon_lcd_16207_fd.c b/software/qsys_tutorial_lcd3_bsp/drivers/src/altera_avalon_lcd_16207_fd.c new file mode 100644 index 0000000..431b094 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/drivers/src/altera_avalon_lcd_16207_fd.c @@ -0,0 +1,45 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "alt_types.h" +#include "sys/alt_dev.h" +#include "altera_avalon_lcd_16207.h" + +extern int altera_avalon_lcd_16207_write(altera_avalon_lcd_16207_state* sp, + const char* ptr, int count, int flags); + +int +altera_avalon_lcd_16207_write_fd(alt_fd* fd, const char* buffer, int space) +{ + altera_avalon_lcd_16207_dev* dev = (altera_avalon_lcd_16207_dev*) fd->dev; + + return altera_avalon_lcd_16207_write(&dev->state, buffer, space, + fd->fd_flags); +} diff --git a/software/qsys_tutorial_lcd3_bsp/libhal_bsp.a b/software/qsys_tutorial_lcd3_bsp/libhal_bsp.a new file mode 100644 index 0000000..4773527 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/libhal_bsp.a Binary files differ diff --git a/software/qsys_tutorial_lcd3_bsp/linker.h b/software/qsys_tutorial_lcd3_bsp/linker.h new file mode 100644 index 0000000..e3d49ae --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/linker.h @@ -0,0 +1,101 @@ +/* + * linker.h - Linker script mapping information + * + * Machine generated for CPU 'nios2_processor' in SOPC Builder design 'nios_system' + * SOPC Builder design path: C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.sopcinfo + * + * Generated: Fri Dec 02 01:06:42 JST 2016 + */ + +/* + * DO NOT MODIFY THIS FILE + * + * Changing this file will have subtle consequences + * which will almost certainly lead to a nonfunctioning + * system. If you do modify this file, be aware that your + * changes will be overwritten and lost when this file + * is generated again. + * + * DO NOT MODIFY THIS FILE + */ + +/* + * License Agreement + * + * Copyright (c) 2008 + * Altera Corporation, San Jose, California, USA. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + * This agreement shall be governed in all respects by the laws of the State + * of California and by the laws of the United States of America. + */ + +#ifndef __LINKER_H_ +#define __LINKER_H_ + + +/* + * BSP controls alt_load() behavior in crt0. + * + */ + +#define ALT_LOAD_EXPLICITLY_CONTROLLED + + +/* + * Base address and span (size in bytes) of each linker region + * + */ + +#define ONCHIP_MEMORY_REGION_BASE 0x20 +#define ONCHIP_MEMORY_REGION_SPAN 204768 +#define RESET_REGION_BASE 0x0 +#define RESET_REGION_SPAN 32 + + +/* + * Devices associated with code sections + * + */ + +#define ALT_EXCEPTIONS_DEVICE ONCHIP_MEMORY +#define ALT_RESET_DEVICE ONCHIP_MEMORY +#define ALT_RODATA_DEVICE ONCHIP_MEMORY +#define ALT_RWDATA_DEVICE ONCHIP_MEMORY +#define ALT_TEXT_DEVICE ONCHIP_MEMORY + + +/* + * Initialization code at the reset address is allowed (e.g. no external bootloader). + * + */ + +#define ALT_ALLOW_CODE_AT_RESET + + +/* + * The alt_load() facility is called from crt0 to copy sections into RAM. + * + */ + +#define ALT_LOAD_COPY_RWDATA + +#endif /* __LINKER_H_ */ diff --git a/software/qsys_tutorial_lcd3_bsp/linker.x b/software/qsys_tutorial_lcd3_bsp/linker.x new file mode 100644 index 0000000..7322ddd --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/linker.x @@ -0,0 +1,385 @@ +/* + * linker.x - Linker script + * + * Machine generated for CPU 'nios2_processor' in SOPC Builder design 'nios_system' + * SOPC Builder design path: C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.sopcinfo + * + * Generated: Fri Dec 02 01:06:42 JST 2016 + */ + +/* + * DO NOT MODIFY THIS FILE + * + * Changing this file will have subtle consequences + * which will almost certainly lead to a nonfunctioning + * system. If you do modify this file, be aware that your + * changes will be overwritten and lost when this file + * is generated again. + * + * DO NOT MODIFY THIS FILE + */ + +/* + * License Agreement + * + * Copyright (c) 2008 + * Altera Corporation, San Jose, California, USA. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + * This agreement shall be governed in all respects by the laws of the State + * of California and by the laws of the United States of America. + */ + +MEMORY +{ + reset : ORIGIN = 0x0, LENGTH = 32 + onchip_memory : ORIGIN = 0x20, LENGTH = 204768 +} + +/* Define symbols for each memory base-address */ +__alt_mem_onchip_memory = 0x0; + +OUTPUT_FORMAT( "elf32-littlenios2", + "elf32-littlenios2", + "elf32-littlenios2" ) +OUTPUT_ARCH( nios2 ) +ENTRY( _start ) + +/* + * The alt_load() facility is enabled. This typically happens when there isn't + * an external bootloader (e.g. flash bootloader). + * The LMA (aka physical address) of each loaded section is + * set to the .text memory device. + * The HAL alt_load() routine called from crt0 copies sections from + * the .text memory to RAM as needed. + */ + +SECTIONS +{ + + /* + * Output sections associated with reset and exceptions (they have to be first) + */ + + .entry : + { + KEEP (*(.entry)) + } > reset + + .exceptions : + { + PROVIDE (__ram_exceptions_start = ABSOLUTE(.)); + . = ALIGN(0x20); + KEEP (*(.irq)); + KEEP (*(.exceptions.entry.label)); + KEEP (*(.exceptions.entry.user)); + KEEP (*(.exceptions.entry)); + KEEP (*(.exceptions.irqtest.user)); + KEEP (*(.exceptions.irqtest)); + KEEP (*(.exceptions.irqhandler.user)); + KEEP (*(.exceptions.irqhandler)); + KEEP (*(.exceptions.irqreturn.user)); + KEEP (*(.exceptions.irqreturn)); + KEEP (*(.exceptions.notirq.label)); + KEEP (*(.exceptions.notirq.user)); + KEEP (*(.exceptions.notirq)); + KEEP (*(.exceptions.soft.user)); + KEEP (*(.exceptions.soft)); + KEEP (*(.exceptions.unknown.user)); + KEEP (*(.exceptions.unknown)); + KEEP (*(.exceptions.exit.label)); + KEEP (*(.exceptions.exit.user)); + KEEP (*(.exceptions.exit)); + KEEP (*(.exceptions)); + PROVIDE (__ram_exceptions_end = ABSOLUTE(.)); + } > onchip_memory + + PROVIDE (__flash_exceptions_start = LOADADDR(.exceptions)); + + .text : + { + /* + * All code sections are merged into the text output section, along with + * the read only data sections. + * + */ + + PROVIDE (stext = ABSOLUTE(.)); + + *(.interp) + *(.hash) + *(.dynsym) + *(.dynstr) + *(.gnu.version) + *(.gnu.version_d) + *(.gnu.version_r) + *(.rel.init) + *(.rela.init) + *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) + *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) + *(.rel.fini) + *(.rela.fini) + *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) + *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) + *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) + *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) + *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) + *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) + *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) + *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) + *(.rel.ctors) + *(.rela.ctors) + *(.rel.dtors) + *(.rela.dtors) + *(.rel.got) + *(.rela.got) + *(.rel.sdata .rel.sdata.* .rel.gnu.linkonce.s.*) + *(.rela.sdata .rela.sdata.* .rela.gnu.linkonce.s.*) + *(.rel.sbss .rel.sbss.* .rel.gnu.linkonce.sb.*) + *(.rela.sbss .rela.sbss.* .rela.gnu.linkonce.sb.*) + *(.rel.sdata2 .rel.sdata2.* .rel.gnu.linkonce.s2.*) + *(.rela.sdata2 .rela.sdata2.* .rela.gnu.linkonce.s2.*) + *(.rel.sbss2 .rel.sbss2.* .rel.gnu.linkonce.sb2.*) + *(.rela.sbss2 .rela.sbss2.* .rela.gnu.linkonce.sb2.*) + *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) + *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) + *(.rel.plt) + *(.rela.plt) + *(.rel.dyn) + + KEEP (*(.init)) + *(.plt) + *(.text .stub .text.* .gnu.linkonce.t.*) + + /* .gnu.warning sections are handled specially by elf32.em. */ + + *(.gnu.warning.*) + KEEP (*(.fini)) + PROVIDE (__etext = ABSOLUTE(.)); + PROVIDE (_etext = ABSOLUTE(.)); + PROVIDE (etext = ABSOLUTE(.)); + + *(.eh_frame_hdr) + /* Ensure the __preinit_array_start label is properly aligned. We + could instead move the label definition inside the section, but + the linker would then create the section even if it turns out to + be empty, which isn't pretty. */ + . = ALIGN(4); + PROVIDE (__preinit_array_start = ABSOLUTE(.)); + *(.preinit_array) + PROVIDE (__preinit_array_end = ABSOLUTE(.)); + PROVIDE (__init_array_start = ABSOLUTE(.)); + *(.init_array) + PROVIDE (__init_array_end = ABSOLUTE(.)); + PROVIDE (__fini_array_start = ABSOLUTE(.)); + *(.fini_array) + PROVIDE (__fini_array_end = ABSOLUTE(.)); + SORT(CONSTRUCTORS) + KEEP (*(.eh_frame)) + *(.gcc_except_table) + *(.dynamic) + PROVIDE (__CTOR_LIST__ = ABSOLUTE(.)); + KEEP (*(.ctors)) + KEEP (*(SORT(.ctors.*))) + PROVIDE (__CTOR_END__ = ABSOLUTE(.)); + PROVIDE (__DTOR_LIST__ = ABSOLUTE(.)); + KEEP (*(.dtors)) + KEEP (*(SORT(.dtors.*))) + PROVIDE (__DTOR_END__ = ABSOLUTE(.)); + KEEP (*(.jcr)) + . = ALIGN(4); + } > onchip_memory = 0x3a880100 /* Nios II NOP instruction */ + + .rodata : + { + PROVIDE (__ram_rodata_start = ABSOLUTE(.)); + . = ALIGN(4); + *(.rodata .rodata.* .gnu.linkonce.r.*) + *(.rodata1) + . = ALIGN(4); + PROVIDE (__ram_rodata_end = ABSOLUTE(.)); + } > onchip_memory + + PROVIDE (__flash_rodata_start = LOADADDR(.rodata)); + + /* + * + * This section's LMA is set to the .text region. + * crt0 will copy to this section's specified mapped region virtual memory address (VMA) + * + * .rwdata region equals the .text region, and is set to be loaded into .text region. + * This requires two copies of .rwdata in the .text region. One read writable at VMA. + * and one read-only at LMA. crt0 will copy from LMA to VMA on reset + * + */ + + .rwdata LOADADDR (.rodata) + SIZEOF (.rodata) : AT ( LOADADDR (.rodata) + SIZEOF (.rodata)+ SIZEOF (.rwdata) ) + { + PROVIDE (__ram_rwdata_start = ABSOLUTE(.)); + . = ALIGN(4); + *(.got.plt) *(.got) + *(.data1) + *(.data .data.* .gnu.linkonce.d.*) + + _gp = ABSOLUTE(. + 0x8000); + PROVIDE(gp = _gp); + + *(.rwdata .rwdata.*) + *(.sdata .sdata.* .gnu.linkonce.s.*) + *(.sdata2 .sdata2.* .gnu.linkonce.s2.*) + + . = ALIGN(4); + _edata = ABSOLUTE(.); + PROVIDE (edata = ABSOLUTE(.)); + PROVIDE (__ram_rwdata_end = ABSOLUTE(.)); + } > onchip_memory + + PROVIDE (__flash_rwdata_start = LOADADDR(.rwdata)); + + /* + * + * This section's LMA is set to the .text region. + * crt0 will copy to this section's specified mapped region virtual memory address (VMA) + * + */ + + .bss LOADADDR (.rwdata) + SIZEOF (.rwdata) : AT ( LOADADDR (.rwdata) + SIZEOF (.rwdata) ) + { + __bss_start = ABSOLUTE(.); + PROVIDE (__sbss_start = ABSOLUTE(.)); + PROVIDE (___sbss_start = ABSOLUTE(.)); + + *(.dynsbss) + *(.sbss .sbss.* .gnu.linkonce.sb.*) + *(.sbss2 .sbss2.* .gnu.linkonce.sb2.*) + *(.scommon) + + PROVIDE (__sbss_end = ABSOLUTE(.)); + PROVIDE (___sbss_end = ABSOLUTE(.)); + + *(.dynbss) + *(.bss .bss.* .gnu.linkonce.b.*) + *(COMMON) + + . = ALIGN(4); + __bss_end = ABSOLUTE(.); + } > onchip_memory + + /* + * + * One output section mapped to the associated memory device for each of + * the available memory devices. These are not used by default, but can + * be used by user applications by using the .section directive. + * + * The output section used for the heap is treated in a special way, + * i.e. the symbols "end" and "_end" are added to point to the heap start. + * + * Because alt_load() is enabled, these sections have + * their LMA set to be loaded into the .text memory region. + * However, the alt_load() code will NOT automatically copy + * these sections into their mapped memory region. + * + */ + + /* + * + * This section's LMA is set to the .text region. + * crt0 will copy to this section's specified mapped region virtual memory address (VMA) + * + */ + + .onchip_memory LOADADDR (.bss) + SIZEOF (.bss) : AT ( LOADADDR (.bss) + SIZEOF (.bss) ) + { + PROVIDE (_alt_partition_onchip_memory_start = ABSOLUTE(.)); + *(.onchip_memory. onchip_memory.*) + . = ALIGN(4); + PROVIDE (_alt_partition_onchip_memory_end = ABSOLUTE(.)); + _end = ABSOLUTE(.); + end = ABSOLUTE(.); + __alt_stack_base = ABSOLUTE(.); + } > onchip_memory + + PROVIDE (_alt_partition_onchip_memory_load_addr = LOADADDR(.onchip_memory)); + + /* + * Stabs debugging sections. + * + */ + + .stab 0 : { *(.stab) } + .stabstr 0 : { *(.stabstr) } + .stab.excl 0 : { *(.stab.excl) } + .stab.exclstr 0 : { *(.stab.exclstr) } + .stab.index 0 : { *(.stab.index) } + .stab.indexstr 0 : { *(.stab.indexstr) } + .comment 0 : { *(.comment) } + /* DWARF debug sections. + Symbols in the DWARF debugging sections are relative to the beginning + of the section so we begin them at 0. */ + /* DWARF 1 */ + .debug 0 : { *(.debug) } + .line 0 : { *(.line) } + /* GNU DWARF 1 extensions */ + .debug_srcinfo 0 : { *(.debug_srcinfo) } + .debug_sfnames 0 : { *(.debug_sfnames) } + /* DWARF 1.1 and DWARF 2 */ + .debug_aranges 0 : { *(.debug_aranges) } + .debug_pubnames 0 : { *(.debug_pubnames) } + /* DWARF 2 */ + .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } + .debug_abbrev 0 : { *(.debug_abbrev) } + .debug_line 0 : { *(.debug_line) } + .debug_frame 0 : { *(.debug_frame) } + .debug_str 0 : { *(.debug_str) } + .debug_loc 0 : { *(.debug_loc) } + .debug_macinfo 0 : { *(.debug_macinfo) } + /* SGI/MIPS DWARF 2 extensions */ + .debug_weaknames 0 : { *(.debug_weaknames) } + .debug_funcnames 0 : { *(.debug_funcnames) } + .debug_typenames 0 : { *(.debug_typenames) } + .debug_varnames 0 : { *(.debug_varnames) } + + /* Altera debug extensions */ + .debug_alt_sim_info 0 : { *(.debug_alt_sim_info) } +} + +/* provide a pointer for the stack */ + +/* + * Don't override this, override the __alt_stack_* symbols instead. + */ +__alt_data_end = 0x32000; + +/* + * The next two symbols define the location of the default stack. You can + * override them to move the stack to a different memory. + */ +PROVIDE( __alt_stack_pointer = __alt_data_end ); +PROVIDE( __alt_stack_limit = __alt_stack_base ); + +/* + * This symbol controls where the start of the heap is. If the stack is + * contiguous with the heap then the stack will contract as memory is + * allocated to the heap. + * Override this symbol to put the heap in a different memory. + */ +PROVIDE( __alt_heap_start = end ); +PROVIDE( __alt_heap_limit = 0x32000 ); diff --git a/software/qsys_tutorial_lcd3_bsp/mem_init.mk b/software/qsys_tutorial_lcd3_bsp/mem_init.mk new file mode 100644 index 0000000..1f2a48f --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/mem_init.mk @@ -0,0 +1,322 @@ + +######################################################################### +####### M E M I N I T M A K E F I L E C O N T E N T ###### +######################################################################### + +######################################################################### +# This file is intended to be included by public.mk +# +# +# The following variables must be defined before including this file: +# - ELF +# +# The following variables may be defined to override the default behavior: +# - HDL_SIM_DIR +# - HDL_SIM_INSTALL_DIR +# - MEM_INIT_DIR +# - MEM_INIT_INSTALL_DIR +# - QUARTUS_PROJECT_DIR +# - SOPC_NAME +# - SIM_OPTIMIZE +# - RESET_ADDRESS +# +######################################################################### + +ifeq ($(MEM_INIT_FILE),) +# MEM_INIT_FILE should be set equal to the working relative path to this +# mem_init.mk makefile fragment +MEM_INIT_FILE := $(wildcard $(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST))) +endif + +ifeq ($(ELF2DAT),) +ELF2DAT := elf2dat +endif + +ifeq ($(ELF2HEX),) +ELF2HEX := elf2hex +endif + +ifeq ($(ELF2FLASH),) +ELF2FLASH := elf2flash +endif + +ifeq ($(FLASH2DAT),) +FLASH2DAT := flash2dat +endif + +ifeq ($(NM),) +NM := nios2-elf-nm +endif + +ifeq ($(MKDIR),) +MKDIR := mkdir -p +endif + +ifeq ($(RM),) +RM := rm -f +endif + +ifeq ($(CP),) +CP := cp +endif + +ifeq ($(ECHO),) +ECHO := echo +endif + +MEM_INIT_DIR ?= mem_init +HDL_SIM_DIR ?= $(MEM_INIT_DIR)/hdl_sim + +ifdef QUARTUS_PROJECT_DIR +MEM_INIT_INSTALL_DIR ?= $(patsubst %/,%,$(QUARTUS_PROJECT_DIR)) +ifdef SOPC_NAME +HDL_SIM_INSTALL_DIR ?= $(patsubst %/,%,$(QUARTUS_PROJECT_DIR))/$(SOPC_NAME)_sim +endif +endif + +MEM_INIT_DESCRIPTOR_FILE ?= $(MEM_INIT_DIR)/meminit.spd + +MEM_INIT_QIP_FILE ?= $(MEM_INIT_DIR)/meminit.qip + +#------------------------------------- +# Default Flash Boot Loaders +#------------------------------------- + +BOOT_LOADER_PATH ?= $(SOPC_KIT_NIOS2)/components/altera_nios2 +BOOT_LOADER_CFI ?= $(BOOT_LOADER_PATH)/boot_loader_cfi.srec +BOOT_LOADER_CFI_BE ?= $(BOOT_LOADER_PATH)/boot_loader_cfi_be.srec + + +#------------------------------------- +# Default Target +#------------------------------------- + +.PHONY: default_mem_init +ifeq ($(QSYS),1) +default_mem_init: mem_init_generate +else +default_mem_init: mem_init_install +endif +#------------------------------------- +# Runtime Macros +#------------------------------------- + +define post-process-info + @echo Post-processing to create $@... +endef + +target_stem = $(notdir $(basename $@)) + +mem_start_address = $($(target_stem)_START) +mem_end_address = $($(target_stem)_END) +mem_width = $($(target_stem)_WIDTH) +mem_endianness = $($(target_stem)_ENDIANNESS) +mem_create_lanes = $($(target_stem)_CREATE_LANES) + +mem_pad_flag = $($(target_stem)_PAD_FLAG) +mem_reloc_input_flag = $($(target_stem)_RELOC_INPUT_FLAG) +mem_no_zero_fill_flag = $($(target_stem)_NO_ZERO_FILL_FLAG) + +flash_mem_epcs_flag = $($(target_stem)_EPCS_FLAGS) +flash_mem_cfi_flag = $($(target_stem)_CFI_FLAGS) +flash_mem_boot_loader_flag = $($(target_stem)_BOOT_LOADER_FLAG) + +elf2dat_extra_args = $(mem_pad_flag) +elf2hex_extra_args = $(mem_no_zero_fill_flag) +elf2flash_extra_args = $(flash_mem_cfi_flag) $(flash_mem_epcs_flag) $(flash_mem_boot_loader_flag) +flash2dat_extra_args = $(mem_pad_flag) $(mem_reloc_input_flag) + +#------------------------------------------------------------------------------ +# BSP SPECIFIC CONTENT +# +# The content below is controlled by the BSP and SOPC System +#------------------------------------------------------------------------------ +#START OF BSP SPECIFIC + +#------------------------------------- +# Global Settings +#------------------------------------- + + +# The following TYPE comment allows tools to identify the 'type' of target this +# makefile is associated with. +# TYPE: BSP_MEMINIT_MAKEFILE + +# This following VERSION comment indicates the version of the tool used to +# generate this makefile. A makefile variable is provided for VERSION as well. +# ACDS_VERSION: 13.0sp1 +ACDS_VERSION := 13.0sp1 + +# This following BUILD_NUMBER comment indicates the build number of the tool +# used to generate this makefile. +# BUILD_NUMBER: 232 + +# Optimize for simulation +SIM_OPTIMIZE ?= 0 + +# The CPU reset address as needed by elf2flash +RESET_ADDRESS ?= 0x00000000 + +#------------------------------------- +# Pre-Initialized Memory Descriptions +#------------------------------------- + +# Memory: onchip_memory +MEM_0 := nios_system_onchip_memory +$(MEM_0)_NAME := onchip_memory +$(MEM_0)_MEM_INIT_FILE_PARAM_NAME := INIT_FILE +HEX_FILES += $(MEM_INIT_DIR)/$(MEM_0).hex +MEM_INIT_INSTALL_FILES += $(MEM_INIT_INSTALL_DIR)/$(MEM_0).hex +DAT_FILES += $(HDL_SIM_DIR)/$(MEM_0).dat +HDL_SIM_INSTALL_FILES += $(HDL_SIM_INSTALL_DIR)/$(MEM_0).dat +SYM_FILES += $(HDL_SIM_DIR)/$(MEM_0).sym +HDL_SIM_INSTALL_FILES += $(HDL_SIM_INSTALL_DIR)/$(MEM_0).sym +$(MEM_0)_START := 0x00000000 +$(MEM_0)_END := 0x00031fff +$(MEM_0)_HIERARCHICAL_PATH := onchip_memory +$(MEM_0)_WIDTH := 32 +$(MEM_0)_ENDIANNESS := --little-endian-mem +$(MEM_0)_CREATE_LANES := 0 + +.PHONY: onchip_memory +onchip_memory: check_elf_exists $(MEM_INIT_DIR)/$(MEM_0).hex $(HDL_SIM_DIR)/$(MEM_0).dat $(HDL_SIM_DIR)/$(MEM_0).sym + + +#END OF BSP SPECIFIC + +#------------------------------------- +# Pre-Initialized Memory Targets +#------------------------------------- + +.PHONY: mem_init_install mem_init_generate mem_init_clean + +ifeq ($(QSYS),1) +# Target mem_init_install is deprecated for QSys based systems +# To initialize onchip memories for Quartus II Synthesis with Qsys based systems: +# 1) Use "make mem_init_genearate" +# 2) Add the generated mem_init/meminit.qip file to your Quartus II Project +# +mem_init_install: + $(error Deprecated Makefile Target: '$@'. Use target 'mem_init_generate' and then add $(MEM_INIT_QIP_FILE) to your Quartus II Project) + +else # QSYS != 1, if SopcBuilder based system + +ifneq ($(MEM_INIT_INSTALL_DIR),) +mem_init_install: $(MEM_INIT_INSTALL_FILES) +endif + +ifneq ($(HDL_SIM_INSTALL_DIR),) +mem_init_install: $(HDL_SIM_INSTALL_FILES) +endif + +mem_init_install: mem_init_generate +ifeq ($(MEM_INIT_INSTALL_DIR),) + @echo "WARNING: MEM_INIT_INSTALL_DIR not set. Set your QUARTUS_PROJECT_DIR environment variable." +endif +ifeq ($(HDL_SIM_INSTALL_DIR),) + @echo "WARNING: HDL_SIM_INSTALL_DIR not set. Set your QUARTUS_PROJECT_DIR and SOPC_NAME environment variable." +endif + +$(MEM_INIT_INSTALL_FILES): $(MEM_INIT_INSTALL_DIR)/%: $(MEM_INIT_DIR)/% + @$(MKDIR) $(@D) + @$(CP) -v $< $@ + +$(HDL_SIM_INSTALL_FILES): $(HDL_SIM_INSTALL_DIR)/%: $(HDL_SIM_DIR)/% + @$(MKDIR) $(@D) + @$(CP) -v $< $@ + +endif # QSYS == 1 + + +mem_init_generate: hex dat sym flash $(MEM_INIT_DESCRIPTOR_FILE) $(MEM_INIT_QIP_FILE) + +mem_init_clean: + @$(RM) -r $(MEM_INIT_DIR) $(HDL_SIM_DIR) $(FLASH_FILES) + +.PHONY: hex dat sym flash + +hex: check_elf_exists $(HEX_FILES) + +dat: check_elf_exists $(DAT_FILES) + +sym: check_elf_exists $(SYM_FILES) + +flash: check_elf_exists $(FLASH_FILES) + +#------------------------------------- +# Pre-Initialized Memory Rules +#------------------------------------- + +.PHONY: check_elf_exists +check_elf_exists: $(ELF) +ifeq ($(ELF),) + $(error ELF var not set in mem_init.mk) +endif + +$(filter-out $(FLASH_DAT_FILES),$(DAT_FILES)): %.dat: $(ELF) + $(post-process-info) + @$(MKDIR) $(@D) + bash -c '$(ELF2DAT) --infile=$< --outfile=$@ \ + --base=$(mem_start_address) --end=$(mem_end_address) --width=$(mem_width) \ + $(mem_endianness) --create-lanes=$(mem_create_lanes) $(elf2dat_extra_args)' + +$(foreach i,0 1 2 3 4 5 6 7,%_lane$(i).dat): %.dat + @true + +$(HEX_FILES): %.hex: $(ELF) + $(post-process-info) + @$(MKDIR) $(@D) + bash -c '$(ELF2HEX) $< $(mem_start_address) $(mem_end_address) --width=$(mem_width) \ + $(mem_endianness) --create-lanes=$(mem_create_lanes) $(elf2hex_extra_args) $@' + +$(SYM_FILES): %.sym: $(ELF) + $(post-process-info) + @$(MKDIR) $(@D) + $(NM) -n $< > $@ + +$(FLASH_FILES): %.flash: $(ELF) + $(post-process-info) + @$(MKDIR) $(@D) + bash -c '$(ELF2FLASH) --input=$< --outfile=$@ --sim_optimize=$(SIM_OPTIMIZE) $(mem_endianness) \ + $(elf2flash_extra_args)' + +# +# Function generate_spd_entry +# Arg1: path to the memory initialization file +# Arg2: Type HEX or DAT +# Arg3: Output spd file to append +gen_spd_entry.BASE_FILE = $(basename $(notdir $1)) +gen_spd_entry.PARAM_NAME = $($(gen_spd_entry.BASE_FILE)_MEM_INIT_FILE_PARAM_NAME) +gen_spd_entry.MEM_PATH = $($(gen_spd_entry.BASE_FILE)_HIERARCHICAL_PATH) +gen_spd_entry.SETTINGS = $(strip \ + path=\"$1\" \ + type=\"$2\" \ + $(if $(gen_spd_entry.PARAM_NAME),initParamName=\"$(gen_spd_entry.PARAM_NAME)\") \ + $(if $(gen_spd_entry.MEM_PATH),memoryPath=\"$(gen_spd_entry.MEM_PATH)\") \ +) +define gen_spd_entry +$(ECHO) "" >> $3 +endef + +$(MEM_INIT_DESCRIPTOR_FILE).DAT_FILESET := $(patsubst $(dir $(MEM_INIT_DESCRIPTOR_FILE))%,%,$(DAT_FILES)) +$(MEM_INIT_DESCRIPTOR_FILE).HEX_FILESET := $(patsubst $(dir $(MEM_INIT_DESCRIPTOR_FILE))%,%,$(HEX_FILES)) + +$(MEM_INIT_DESCRIPTOR_FILE): %.spd: $(MEM_INIT_FILE) + $(post-process-info) + @$(MKDIR) $(@D) + @$(RM) $@ + @$(ECHO) "" > $@ + @$(ECHO) "" >> $@ + @$(foreach dat_file,$($@.DAT_FILESET),$(call gen_spd_entry,$(dat_file),DAT,$@) &&)true + @$(foreach hex_file,$($@.HEX_FILESET),$(call gen_spd_entry,$(hex_file),HEX,$@) &&)true + @$(ECHO) "" >> $@ + +.DELETE_ON_ERROR: $(MEM_INIT_DESCRIPTOR_FILE) + +$(MEM_INIT_QIP_FILE): %.qip: $(MEM_INIT_FILE) + $(post-process-info) + @$(MKDIR) $(@D) + @$(RM) $@ + @$(ECHO) "set_global_assignment -name SEARCH_PATH $$::quartus(qip_path)" > $@ + +.DELETE_ON_ERROR: $(MEM_INIT_QIP_FILE) diff --git a/software/qsys_tutorial_lcd3_bsp/memory.gdb b/software/qsys_tutorial_lcd3_bsp/memory.gdb new file mode 100644 index 0000000..9ebe96d --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/memory.gdb @@ -0,0 +1,50 @@ +# memory.gdb - GDB memory region definitions +# +# Machine generated for CPU 'nios2_processor' in SOPC Builder design 'nios_system' +# SOPC Builder design path: C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.sopcinfo +# +# Generated: Fri Dec 02 01:06:42 JST 2016 + +# DO NOT MODIFY THIS FILE +# +# Changing this file will have subtle consequences +# which will almost certainly lead to a nonfunctioning +# system. If you do modify this file, be aware that your +# changes will be overwritten and lost when this file +# is generated again. +# +# DO NOT MODIFY THIS FILE + +# License Agreement +# +# Copyright (c) 2008 +# Altera Corporation, San Jose, California, USA. +# All rights reserved. +# +# Permission is hereby granted, free of charge, to any person obtaining a +# copy of this software and associated documentation files (the "Software"), +# to deal in the Software without restriction, including without limitation +# the rights to use, copy, modify, merge, publish, distribute, sublicense, +# and/or sell copies of the Software, and to permit persons to whom the +# Software is furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +# DEALINGS IN THE SOFTWARE. +# +# This agreement shall be governed in all respects by the laws of the State +# of California and by the laws of the United States of America. + +# Define memory regions for each memory connected to the CPU. +# The cache attribute is specified which improves GDB performance +# by allowing GDB to cache memory contents on the host. + +# onchip_memory +memory 0x0 0x32000 cache diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_alarm_start.d b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_alarm_start.d new file mode 100644 index 0000000..3bb20ea --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_alarm_start.d @@ -0,0 +1,22 @@ +obj/HAL/src/alt_alarm_start.o: HAL/src/alt_alarm_start.c \ + HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ + HAL/inc/priv/alt_alarm.h HAL/inc/alt_types.h HAL/inc/sys/alt_irq.h \ + HAL/inc/nios2.h system.h linker.h + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +system.h: + +linker.h: diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_alarm_start.o b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_alarm_start.o new file mode 100644 index 0000000..2418f17 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_alarm_start.o Binary files differ diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_busy_sleep.d b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_busy_sleep.d new file mode 100644 index 0000000..e93e80c --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_busy_sleep.d @@ -0,0 +1,10 @@ +obj/HAL/src/alt_busy_sleep.o: HAL/src/alt_busy_sleep.c system.h linker.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_busy_sleep.h + +system.h: + +linker.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_busy_sleep.h: diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_busy_sleep.o b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_busy_sleep.o new file mode 100644 index 0000000..9501d41 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_busy_sleep.o Binary files differ diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_close.d b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_close.d new file mode 100644 index 0000000..fbbab9c --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_close.d @@ -0,0 +1,34 @@ +obj/HAL/src/alt_close.o: HAL/src/alt_close.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h HAL/inc/priv/alt_file.h \ + HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h \ + HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_close.o b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_close.o new file mode 100644 index 0000000..96ddd38 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_close.o Binary files differ diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_dcache_flush.d b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_dcache_flush.d new file mode 100644 index 0000000..a0eaf8a --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_dcache_flush.d @@ -0,0 +1,15 @@ +obj/HAL/src/alt_dcache_flush.o: HAL/src/alt_dcache_flush.c \ + HAL/inc/nios2.h system.h linker.h HAL/inc/alt_types.h \ + HAL/inc/sys/alt_cache.h HAL/inc/alt_types.h + +HAL/inc/nios2.h: + +system.h: + +linker.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_cache.h: + +HAL/inc/alt_types.h: diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_dcache_flush.o b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_dcache_flush.o new file mode 100644 index 0000000..d0f44fc --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_dcache_flush.o Binary files differ diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_dcache_flush_all.d b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_dcache_flush_all.d new file mode 100644 index 0000000..792c3e4 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_dcache_flush_all.d @@ -0,0 +1,15 @@ +obj/HAL/src/alt_dcache_flush_all.o: HAL/src/alt_dcache_flush_all.c \ + HAL/inc/nios2.h system.h linker.h HAL/inc/alt_types.h \ + HAL/inc/sys/alt_cache.h HAL/inc/alt_types.h + +HAL/inc/nios2.h: + +system.h: + +linker.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_cache.h: + +HAL/inc/alt_types.h: diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_dcache_flush_all.o b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_dcache_flush_all.o new file mode 100644 index 0000000..ee4c6e1 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_dcache_flush_all.o Binary files differ diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_dcache_flush_no_writeback.d b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_dcache_flush_no_writeback.d new file mode 100644 index 0000000..867c42b --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_dcache_flush_no_writeback.d @@ -0,0 +1,16 @@ +obj/HAL/src/alt_dcache_flush_no_writeback.o: \ + HAL/src/alt_dcache_flush_no_writeback.c HAL/inc/nios2.h system.h \ + linker.h HAL/inc/alt_types.h HAL/inc/sys/alt_cache.h \ + HAL/inc/alt_types.h + +HAL/inc/nios2.h: + +system.h: + +linker.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_cache.h: + +HAL/inc/alt_types.h: diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_dcache_flush_no_writeback.o b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_dcache_flush_no_writeback.o new file mode 100644 index 0000000..f7da147 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_dcache_flush_no_writeback.o Binary files differ diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_dev.d b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_dev.d new file mode 100644 index 0000000..cd9b1d4 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_dev.d @@ -0,0 +1,34 @@ +obj/HAL/src/alt_dev.o: HAL/src/alt_dev.c HAL/inc/sys/alt_dev.h system.h \ + linker.h HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h \ + HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h HAL/inc/alt_types.h \ + system.h + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/alt_types.h: + +system.h: diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_dev.o b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_dev.o new file mode 100644 index 0000000..7e25d95 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_dev.o Binary files differ diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_dev_llist_insert.d b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_dev_llist_insert.d new file mode 100644 index 0000000..344d065 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_dev_llist_insert.d @@ -0,0 +1,13 @@ +obj/HAL/src/alt_dev_llist_insert.o: HAL/src/alt_dev_llist_insert.c \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/alt_types.h HAL/inc/sys/alt_errno.h + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_errno.h: diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_dev_llist_insert.o b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_dev_llist_insert.o new file mode 100644 index 0000000..0d370b7 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_dev_llist_insert.o Binary files differ diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_dma_rxchan_open.d b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_dma_rxchan_open.d new file mode 100644 index 0000000..fb21fed --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_dma_rxchan_open.d @@ -0,0 +1,35 @@ +obj/HAL/src/alt_dma_rxchan_open.o: HAL/src/alt_dma_rxchan_open.c \ + HAL/inc/sys/alt_dma.h HAL/inc/sys/alt_dma_dev.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/alt_types.h HAL/inc/sys/alt_errno.h \ + HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h system.h linker.h \ + HAL/inc/sys/alt_llist.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h + +HAL/inc/sys/alt_dma.h: + +HAL/inc/sys/alt_dma_dev.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_errno.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_dma_rxchan_open.o b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_dma_rxchan_open.o new file mode 100644 index 0000000..37f3767 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_dma_rxchan_open.o Binary files differ diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_dma_txchan_open.d b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_dma_txchan_open.d new file mode 100644 index 0000000..500b95c --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_dma_txchan_open.d @@ -0,0 +1,35 @@ +obj/HAL/src/alt_dma_txchan_open.o: HAL/src/alt_dma_txchan_open.c \ + HAL/inc/sys/alt_dma.h HAL/inc/sys/alt_dma_dev.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/alt_types.h HAL/inc/sys/alt_errno.h \ + HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h system.h linker.h \ + HAL/inc/sys/alt_llist.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h + +HAL/inc/sys/alt_dma.h: + +HAL/inc/sys/alt_dma_dev.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_errno.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_dma_txchan_open.o b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_dma_txchan_open.o new file mode 100644 index 0000000..8c5c058 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_dma_txchan_open.o Binary files differ diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_do_ctors.d b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_do_ctors.d new file mode 100644 index 0000000..daf8baf --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_do_ctors.d @@ -0,0 +1 @@ +obj/HAL/src/alt_do_ctors.o: HAL/src/alt_do_ctors.c diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_do_ctors.o b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_do_ctors.o new file mode 100644 index 0000000..4235a19 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_do_ctors.o Binary files differ diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_do_dtors.d b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_do_dtors.d new file mode 100644 index 0000000..c3471eb --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_do_dtors.d @@ -0,0 +1 @@ +obj/HAL/src/alt_do_dtors.o: HAL/src/alt_do_dtors.c diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_do_dtors.o b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_do_dtors.o new file mode 100644 index 0000000..261d32a --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_do_dtors.o Binary files differ diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_env_lock.d b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_env_lock.d new file mode 100644 index 0000000..634d7b0 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_env_lock.d @@ -0,0 +1 @@ +obj/HAL/src/alt_env_lock.o: HAL/src/alt_env_lock.c diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_env_lock.o b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_env_lock.o new file mode 100644 index 0000000..be19712 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_env_lock.o Binary files differ diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_environ.d b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_environ.d new file mode 100644 index 0000000..e9ca295 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_environ.d @@ -0,0 +1,3 @@ +obj/HAL/src/alt_environ.o: HAL/src/alt_environ.c HAL/inc/os/alt_syscall.h + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_environ.o b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_environ.o new file mode 100644 index 0000000..e633e33 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_environ.o Binary files differ diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_errno.d b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_errno.d new file mode 100644 index 0000000..29ca544 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_errno.d @@ -0,0 +1,8 @@ +obj/HAL/src/alt_errno.o: HAL/src/alt_errno.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/alt_types.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/alt_types.h: diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_errno.o b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_errno.o new file mode 100644 index 0000000..fa6d846 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_errno.o Binary files differ diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_exception_entry.d b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_exception_entry.d new file mode 100644 index 0000000..540567e --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_exception_entry.d @@ -0,0 +1,6 @@ +obj/HAL/src/alt_exception_entry.o: HAL/src/alt_exception_entry.S system.h \ + linker.h + +system.h: + +linker.h: diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_exception_entry.o b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_exception_entry.o new file mode 100644 index 0000000..b045152 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_exception_entry.o Binary files differ diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_exception_muldiv.d b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_exception_muldiv.d new file mode 100644 index 0000000..63d66a7 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_exception_muldiv.d @@ -0,0 +1 @@ +obj/HAL/src/alt_exception_muldiv.o: HAL/src/alt_exception_muldiv.S diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_exception_muldiv.o b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_exception_muldiv.o new file mode 100644 index 0000000..998f167 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_exception_muldiv.o Binary files differ diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_exception_trap.d b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_exception_trap.d new file mode 100644 index 0000000..6e18488 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_exception_trap.d @@ -0,0 +1 @@ +obj/HAL/src/alt_exception_trap.o: HAL/src/alt_exception_trap.S diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_exception_trap.o b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_exception_trap.o new file mode 100644 index 0000000..10825c2 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_exception_trap.o Binary files differ diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_execve.d b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_execve.d new file mode 100644 index 0000000..9cef7d2 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_execve.d @@ -0,0 +1,10 @@ +obj/HAL/src/alt_execve.o: HAL/src/alt_execve.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_execve.o b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_execve.o new file mode 100644 index 0000000..b0bc128 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_execve.o Binary files differ diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_exit.d b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_exit.d new file mode 100644 index 0000000..a779da8 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_exit.d @@ -0,0 +1,26 @@ +obj/HAL/src/alt_exit.o: HAL/src/alt_exit.c HAL/inc/sys/alt_irq.h \ + HAL/inc/nios2.h HAL/inc/alt_types.h system.h linker.h \ + HAL/inc/sys/alt_sim.h HAL/inc/os/alt_hooks.h HAL/inc/os/alt_syscall.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_log_printf.h system.h + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_sim.h: + +HAL/inc/os/alt_hooks.h: + +HAL/inc/os/alt_syscall.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_log_printf.h: + +system.h: diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_exit.o b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_exit.o new file mode 100644 index 0000000..f3742d0 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_exit.o Binary files differ diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_fcntl.d b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_fcntl.d new file mode 100644 index 0000000..527f242 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_fcntl.d @@ -0,0 +1,34 @@ +obj/HAL/src/alt_fcntl.o: HAL/src/alt_fcntl.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h \ + system.h linker.h HAL/inc/sys/alt_llist.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h HAL/inc/alt_types.h \ + HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_fcntl.o b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_fcntl.o new file mode 100644 index 0000000..1f19539 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_fcntl.o Binary files differ diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_fd_lock.d b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_fd_lock.d new file mode 100644 index 0000000..93daeac --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_fd_lock.d @@ -0,0 +1,27 @@ +obj/HAL/src/alt_fd_lock.o: HAL/src/alt_fd_lock.c HAL/inc/priv/alt_file.h \ + HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_fd_lock.o b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_fd_lock.o new file mode 100644 index 0000000..4eaacbb --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_fd_lock.o Binary files differ diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_fd_unlock.d b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_fd_unlock.d new file mode 100644 index 0000000..45a3207 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_fd_unlock.d @@ -0,0 +1,27 @@ +obj/HAL/src/alt_fd_unlock.o: HAL/src/alt_fd_unlock.c \ + HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h system.h linker.h \ + HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_fd_unlock.o b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_fd_unlock.o new file mode 100644 index 0000000..1ef5ad4 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_fd_unlock.o Binary files differ diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_find_dev.d b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_find_dev.d new file mode 100644 index 0000000..98336f8 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_find_dev.d @@ -0,0 +1,31 @@ +obj/HAL/src/alt_find_dev.o: HAL/src/alt_find_dev.c HAL/inc/sys/alt_dev.h \ + system.h linker.h HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h \ + HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h HAL/inc/alt_types.h + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/alt_types.h: diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_find_dev.o b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_find_dev.o new file mode 100644 index 0000000..57e0147 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_find_dev.o Binary files differ diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_find_file.d b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_find_file.d new file mode 100644 index 0000000..d1150ca --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_find_file.d @@ -0,0 +1,32 @@ +obj/HAL/src/alt_find_file.o: HAL/src/alt_find_file.c \ + HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h HAL/inc/priv/alt_file.h \ + HAL/inc/sys/alt_dev.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h \ + HAL/inc/alt_types.h + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/alt_types.h: diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_find_file.o b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_find_file.o new file mode 100644 index 0000000..4b25cbe --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_find_file.o Binary files differ diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_flash_dev.d b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_flash_dev.d new file mode 100644 index 0000000..8835e8f --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_flash_dev.d @@ -0,0 +1,34 @@ +obj/HAL/src/alt_flash_dev.o: HAL/src/alt_flash_dev.c \ + HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h HAL/inc/sys/alt_flash_dev.h \ + HAL/inc/sys/alt_flash_types.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h \ + system.h linker.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_flash_dev.h: + +HAL/inc/sys/alt_flash_types.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_flash_dev.o b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_flash_dev.o new file mode 100644 index 0000000..5e4e36f --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_flash_dev.o Binary files differ diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_fork.d b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_fork.d new file mode 100644 index 0000000..492be65 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_fork.d @@ -0,0 +1,10 @@ +obj/HAL/src/alt_fork.o: HAL/src/alt_fork.c HAL/inc/sys/alt_warning.h \ + HAL/inc/sys/alt_errno.h HAL/inc/alt_types.h HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_warning.h: + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_fork.o b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_fork.o new file mode 100644 index 0000000..66f5a76 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_fork.o Binary files differ diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_fs_reg.d b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_fs_reg.d new file mode 100644 index 0000000..d8f95ab --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_fs_reg.d @@ -0,0 +1,29 @@ +obj/HAL/src/alt_fs_reg.o: HAL/src/alt_fs_reg.c HAL/inc/sys/alt_dev.h \ + system.h linker.h HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h \ + HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_fs_reg.o b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_fs_reg.o new file mode 100644 index 0000000..36d4898 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_fs_reg.o Binary files differ diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_fstat.d b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_fstat.d new file mode 100644 index 0000000..0d021b8 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_fstat.d @@ -0,0 +1,36 @@ +obj/HAL/src/alt_fstat.o: HAL/src/alt_fstat.c HAL/inc/sys/alt_dev.h \ + system.h linker.h HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h HAL/inc/sys/alt_errno.h \ + HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/sys/alt_errno.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_fstat.o b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_fstat.o new file mode 100644 index 0000000..8c5b30c --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_fstat.o Binary files differ diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_get_fd.d b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_get_fd.d new file mode 100644 index 0000000..9a4daaa --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_get_fd.d @@ -0,0 +1,34 @@ +obj/HAL/src/alt_get_fd.o: HAL/src/alt_get_fd.c HAL/inc/sys/alt_dev.h \ + system.h linker.h HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h \ + HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h HAL/inc/alt_types.h \ + system.h + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/alt_types.h: + +system.h: diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_get_fd.o b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_get_fd.o new file mode 100644 index 0000000..37fb7b0 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_get_fd.o Binary files differ diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_getchar.d b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_getchar.d new file mode 100644 index 0000000..2a468de --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_getchar.d @@ -0,0 +1 @@ +obj/HAL/src/alt_getchar.o: HAL/src/alt_getchar.c diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_getchar.o b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_getchar.o new file mode 100644 index 0000000..3f4ee49 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_getchar.o Binary files differ diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_getpid.d b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_getpid.d new file mode 100644 index 0000000..d9499b9 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_getpid.d @@ -0,0 +1,3 @@ +obj/HAL/src/alt_getpid.o: HAL/src/alt_getpid.c HAL/inc/os/alt_syscall.h + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_getpid.o b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_getpid.o new file mode 100644 index 0000000..98473e2 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_getpid.o Binary files differ diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_gettod.d b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_gettod.d new file mode 100644 index 0000000..cf3cf34 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_gettod.d @@ -0,0 +1,17 @@ +obj/HAL/src/alt_gettod.o: HAL/src/alt_gettod.c HAL/inc/sys/alt_alarm.h \ + HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h HAL/inc/priv/alt_alarm.h \ + HAL/inc/alt_types.h HAL/inc/alt_types.h HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/alt_types.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_gettod.o b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_gettod.o new file mode 100644 index 0000000..c58c109 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_gettod.o Binary files differ diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_gmon.d b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_gmon.d new file mode 100644 index 0000000..e9469ab --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_gmon.d @@ -0,0 +1,24 @@ +obj/HAL/src/alt_gmon.o: HAL/src/alt_gmon.c HAL/inc/priv/nios2_gmon_data.h \ + HAL/inc/sys/alt_irq.h HAL/inc/nios2.h HAL/inc/alt_types.h system.h \ + linker.h HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_alarm.h HAL/inc/alt_types.h + +HAL/inc/priv/nios2_gmon_data.h: + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/alt_types.h: diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_gmon.o b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_gmon.o new file mode 100644 index 0000000..1588d7f --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_gmon.o Binary files differ diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_icache_flush.d b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_icache_flush.d new file mode 100644 index 0000000..2e4ddd1 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_icache_flush.d @@ -0,0 +1,15 @@ +obj/HAL/src/alt_icache_flush.o: HAL/src/alt_icache_flush.c \ + HAL/inc/nios2.h system.h linker.h HAL/inc/alt_types.h \ + HAL/inc/sys/alt_cache.h HAL/inc/alt_types.h + +HAL/inc/nios2.h: + +system.h: + +linker.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_cache.h: + +HAL/inc/alt_types.h: diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_icache_flush.o b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_icache_flush.o new file mode 100644 index 0000000..6f5113b --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_icache_flush.o Binary files differ diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_icache_flush_all.d b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_icache_flush_all.d new file mode 100644 index 0000000..47cfbf3 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_icache_flush_all.d @@ -0,0 +1,15 @@ +obj/HAL/src/alt_icache_flush_all.o: HAL/src/alt_icache_flush_all.c \ + HAL/inc/nios2.h system.h linker.h HAL/inc/alt_types.h \ + HAL/inc/sys/alt_cache.h HAL/inc/alt_types.h + +HAL/inc/nios2.h: + +system.h: + +linker.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_cache.h: + +HAL/inc/alt_types.h: diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_icache_flush_all.o b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_icache_flush_all.o new file mode 100644 index 0000000..7cd830a --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_icache_flush_all.o Binary files differ diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_iic.d b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_iic.d new file mode 100644 index 0000000..a709e0c --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_iic.d @@ -0,0 +1,29 @@ +obj/HAL/src/alt_iic.o: HAL/src/alt_iic.c system.h linker.h \ + HAL/inc/sys/alt_irq.h HAL/inc/nios2.h HAL/inc/alt_types.h system.h \ + HAL/inc/priv/alt_iic_isr_register.h HAL/inc/alt_types.h \ + HAL/inc/sys/alt_irq.h HAL/inc/priv/alt_legacy_irq.h system.h \ + HAL/inc/nios2.h + +system.h: + +linker.h: + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +HAL/inc/priv/alt_iic_isr_register.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_irq.h: + +HAL/inc/priv/alt_legacy_irq.h: + +system.h: + +HAL/inc/nios2.h: diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_iic.o b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_iic.o new file mode 100644 index 0000000..670afe4 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_iic.o Binary files differ diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_iic_isr_register.d b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_iic_isr_register.d new file mode 100644 index 0000000..d0470ae --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_iic_isr_register.d @@ -0,0 +1,30 @@ +obj/HAL/src/alt_iic_isr_register.o: HAL/src/alt_iic_isr_register.c \ + system.h linker.h HAL/inc/alt_types.h HAL/inc/sys/alt_irq.h \ + HAL/inc/nios2.h HAL/inc/alt_types.h system.h \ + HAL/inc/priv/alt_iic_isr_register.h HAL/inc/alt_types.h \ + HAL/inc/sys/alt_irq.h HAL/inc/sys/alt_irq_entry.h \ + HAL/inc/priv/alt_irq_table.h + +system.h: + +linker.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +HAL/inc/priv/alt_iic_isr_register.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_irq.h: + +HAL/inc/sys/alt_irq_entry.h: + +HAL/inc/priv/alt_irq_table.h: diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_iic_isr_register.o b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_iic_isr_register.o new file mode 100644 index 0000000..676a804 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_iic_isr_register.o Binary files differ diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_instruction_exception_entry.d b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_instruction_exception_entry.d new file mode 100644 index 0000000..6d0705f --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_instruction_exception_entry.d @@ -0,0 +1,18 @@ +obj/HAL/src/alt_instruction_exception_entry.o: \ + HAL/src/alt_instruction_exception_entry.c HAL/inc/sys/alt_exceptions.h \ + HAL/inc/alt_types.h system.h linker.h HAL/inc/nios2.h \ + HAL/inc/alt_types.h system.h + +HAL/inc/sys/alt_exceptions.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_instruction_exception_entry.o b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_instruction_exception_entry.o new file mode 100644 index 0000000..8ba3e6d --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_instruction_exception_entry.o Binary files differ diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_instruction_exception_register.d b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_instruction_exception_register.d new file mode 100644 index 0000000..d4fac04 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_instruction_exception_register.d @@ -0,0 +1,16 @@ +obj/HAL/src/alt_instruction_exception_register.o: \ + HAL/src/alt_instruction_exception_register.c \ + HAL/inc/sys/alt_exceptions.h HAL/inc/alt_types.h system.h linker.h \ + HAL/inc/alt_types.h system.h + +HAL/inc/sys/alt_exceptions.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: + +HAL/inc/alt_types.h: + +system.h: diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_instruction_exception_register.o b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_instruction_exception_register.o new file mode 100644 index 0000000..a2061ed --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_instruction_exception_register.o Binary files differ diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_io_redirect.d b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_io_redirect.d new file mode 100644 index 0000000..8228365 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_io_redirect.d @@ -0,0 +1,29 @@ +obj/HAL/src/alt_io_redirect.o: HAL/src/alt_io_redirect.c \ + HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h HAL/inc/priv/alt_file.h \ + HAL/inc/sys/alt_dev.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_io_redirect.o b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_io_redirect.o new file mode 100644 index 0000000..b870eef --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_io_redirect.o Binary files differ diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_ioctl.d b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_ioctl.d new file mode 100644 index 0000000..5a705e4 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_ioctl.d @@ -0,0 +1,36 @@ +obj/HAL/src/alt_ioctl.o: HAL/src/alt_ioctl.c HAL/inc/sys/ioctl.h \ + HAL/inc/sys/alt_errno.h HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h \ + HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h system.h linker.h \ + HAL/inc/sys/alt_llist.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h HAL/inc/os/alt_syscall.h + +HAL/inc/sys/ioctl.h: + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_ioctl.o b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_ioctl.o new file mode 100644 index 0000000..b18a679 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_ioctl.o Binary files differ diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_irq_entry.d b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_irq_entry.d new file mode 100644 index 0000000..9ec3751 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_irq_entry.d @@ -0,0 +1,5 @@ +obj/HAL/src/alt_irq_entry.o: HAL/src/alt_irq_entry.S system.h linker.h + +system.h: + +linker.h: diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_irq_entry.o b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_irq_entry.o new file mode 100644 index 0000000..9a2941d --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_irq_entry.o Binary files differ diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_irq_handler.d b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_irq_handler.d new file mode 100644 index 0000000..6fb668f --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_irq_handler.d @@ -0,0 +1,19 @@ +obj/HAL/src/alt_irq_handler.o: HAL/src/alt_irq_handler.c system.h \ + linker.h HAL/inc/sys/alt_irq.h HAL/inc/nios2.h HAL/inc/alt_types.h \ + system.h HAL/inc/os/alt_hooks.h HAL/inc/alt_types.h + +system.h: + +linker.h: + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +HAL/inc/os/alt_hooks.h: + +HAL/inc/alt_types.h: diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_irq_handler.o b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_irq_handler.o new file mode 100644 index 0000000..129f63b --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_irq_handler.o Binary files differ diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_irq_register.d b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_irq_register.d new file mode 100644 index 0000000..3df2f8a --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_irq_register.d @@ -0,0 +1,36 @@ +obj/HAL/src/alt_irq_register.o: HAL/src/alt_irq_register.c system.h \ + linker.h HAL/inc/sys/alt_irq.h HAL/inc/nios2.h HAL/inc/alt_types.h \ + system.h HAL/inc/priv/alt_legacy_irq.h system.h HAL/inc/nios2.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_irq.h HAL/inc/os/alt_hooks.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_irq_entry.h \ + HAL/inc/priv/alt_irq_table.h + +system.h: + +linker.h: + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +HAL/inc/priv/alt_legacy_irq.h: + +system.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_irq.h: + +HAL/inc/os/alt_hooks.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_irq_entry.h: + +HAL/inc/priv/alt_irq_table.h: diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_irq_register.o b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_irq_register.o new file mode 100644 index 0000000..e1077a1 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_irq_register.o Binary files differ diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_irq_vars.d b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_irq_vars.d new file mode 100644 index 0000000..f316558 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_irq_vars.d @@ -0,0 +1,8 @@ +obj/HAL/src/alt_irq_vars.o: HAL/src/alt_irq_vars.c HAL/inc/alt_types.h \ + system.h linker.h + +HAL/inc/alt_types.h: + +system.h: + +linker.h: diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_irq_vars.o b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_irq_vars.o new file mode 100644 index 0000000..85354ff --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_irq_vars.o Binary files differ diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_isatty.d b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_isatty.d new file mode 100644 index 0000000..4a21885 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_isatty.d @@ -0,0 +1,36 @@ +obj/HAL/src/alt_isatty.o: HAL/src/alt_isatty.c HAL/inc/sys/alt_dev.h \ + system.h linker.h HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_errno.h HAL/inc/sys/alt_warning.h \ + HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_errno.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_isatty.o b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_isatty.o new file mode 100644 index 0000000..607ff43 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_isatty.o Binary files differ diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_kill.d b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_kill.d new file mode 100644 index 0000000..0c14ae8 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_kill.d @@ -0,0 +1,8 @@ +obj/HAL/src/alt_kill.o: HAL/src/alt_kill.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_kill.o b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_kill.o new file mode 100644 index 0000000..f5dd200 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_kill.o Binary files differ diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_link.d b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_link.d new file mode 100644 index 0000000..dc844c6 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_link.d @@ -0,0 +1,10 @@ +obj/HAL/src/alt_link.o: HAL/src/alt_link.c HAL/inc/sys/alt_warning.h \ + HAL/inc/sys/alt_errno.h HAL/inc/alt_types.h HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_warning.h: + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_link.o b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_link.o new file mode 100644 index 0000000..993332f --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_link.o Binary files differ diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_load.d b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_load.d new file mode 100644 index 0000000..d496ab8 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_load.d @@ -0,0 +1,8 @@ +obj/HAL/src/alt_load.o: HAL/src/alt_load.c HAL/inc/sys/alt_load.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_cache.h + +HAL/inc/sys/alt_load.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_cache.h: diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_load.o b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_load.o new file mode 100644 index 0000000..f8134ab --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_load.o Binary files differ diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_log_macro.d b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_log_macro.d new file mode 100644 index 0000000..9768c1f --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_log_macro.d @@ -0,0 +1 @@ +obj/HAL/src/alt_log_macro.o: HAL/src/alt_log_macro.S diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_log_macro.o b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_log_macro.o new file mode 100644 index 0000000..489e2cc --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_log_macro.o Binary files differ diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_log_printf.d b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_log_printf.d new file mode 100644 index 0000000..251ff6d --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_log_printf.d @@ -0,0 +1 @@ +obj/HAL/src/alt_log_printf.o: HAL/src/alt_log_printf.c diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_log_printf.o b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_log_printf.o new file mode 100644 index 0000000..a03c33d --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_log_printf.o Binary files differ diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_lseek.d b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_lseek.d new file mode 100644 index 0000000..25ed783 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_lseek.d @@ -0,0 +1,34 @@ +obj/HAL/src/alt_lseek.o: HAL/src/alt_lseek.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h HAL/inc/priv/alt_file.h \ + HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h \ + HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_lseek.o b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_lseek.o new file mode 100644 index 0000000..6883963 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_lseek.o Binary files differ diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_main.d b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_main.d new file mode 100644 index 0000000..afdfda0 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_main.d @@ -0,0 +1,47 @@ +obj/HAL/src/alt_main.o: HAL/src/alt_main.c HAL/inc/sys/alt_dev.h system.h \ + linker.h HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_sys_init.h HAL/inc/sys/alt_irq.h \ + HAL/inc/nios2.h HAL/inc/os/alt_hooks.h HAL/inc/priv/alt_file.h \ + HAL/inc/sys/alt_dev.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h \ + HAL/inc/alt_types.h system.h HAL/inc/sys/alt_log_printf.h system.h + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_sys_init.h: + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/os/alt_hooks.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/alt_types.h: + +system.h: + +HAL/inc/sys/alt_log_printf.h: + +system.h: diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_main.o b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_main.o new file mode 100644 index 0000000..e1e1f20 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_main.o Binary files differ diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_malloc_lock.d b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_malloc_lock.d new file mode 100644 index 0000000..4ed35c2 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_malloc_lock.d @@ -0,0 +1 @@ +obj/HAL/src/alt_malloc_lock.o: HAL/src/alt_malloc_lock.c diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_malloc_lock.o b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_malloc_lock.o new file mode 100644 index 0000000..7857d08 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_malloc_lock.o Binary files differ diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_mcount.d b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_mcount.d new file mode 100644 index 0000000..1203efc --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_mcount.d @@ -0,0 +1 @@ +obj/HAL/src/alt_mcount.o: HAL/src/alt_mcount.S diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_mcount.o b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_mcount.o new file mode 100644 index 0000000..dc0ce7e --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_mcount.o Binary files differ diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_open.d b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_open.d new file mode 100644 index 0000000..a2aacd9 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_open.d @@ -0,0 +1,36 @@ +obj/HAL/src/alt_open.o: HAL/src/alt_open.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h HAL/inc/priv/alt_file.h \ + HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h \ + HAL/inc/alt_types.h HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_open.o b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_open.o new file mode 100644 index 0000000..9030e6d --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_open.o Binary files differ diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_printf.d b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_printf.d new file mode 100644 index 0000000..3ce68a4 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_printf.d @@ -0,0 +1,3 @@ +obj/HAL/src/alt_printf.o: HAL/src/alt_printf.c HAL/inc/sys/alt_stdio.h + +HAL/inc/sys/alt_stdio.h: diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_printf.o b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_printf.o new file mode 100644 index 0000000..2219daf --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_printf.o Binary files differ diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_putchar.d b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_putchar.d new file mode 100644 index 0000000..0f19fb8 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_putchar.d @@ -0,0 +1 @@ +obj/HAL/src/alt_putchar.o: HAL/src/alt_putchar.c diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_putchar.o b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_putchar.o new file mode 100644 index 0000000..24acf7f --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_putchar.o Binary files differ diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_putstr.d b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_putstr.d new file mode 100644 index 0000000..ed03fdc --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_putstr.d @@ -0,0 +1 @@ +obj/HAL/src/alt_putstr.o: HAL/src/alt_putstr.c diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_putstr.o b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_putstr.o new file mode 100644 index 0000000..2a7943d --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_putstr.o Binary files differ diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_read.d b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_read.d new file mode 100644 index 0000000..4081a45 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_read.d @@ -0,0 +1,34 @@ +obj/HAL/src/alt_read.o: HAL/src/alt_read.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h HAL/inc/priv/alt_file.h \ + HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h \ + HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_read.o b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_read.o new file mode 100644 index 0000000..ebce8f8 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_read.o Binary files differ diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_release_fd.d b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_release_fd.d new file mode 100644 index 0000000..0e3acb5 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_release_fd.d @@ -0,0 +1,29 @@ +obj/HAL/src/alt_release_fd.o: HAL/src/alt_release_fd.c \ + HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h HAL/inc/priv/alt_file.h \ + HAL/inc/sys/alt_dev.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_release_fd.o b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_release_fd.o new file mode 100644 index 0000000..58e66c1 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_release_fd.o Binary files differ diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_remap_cached.d b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_remap_cached.d new file mode 100644 index 0000000..b5fb151 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_remap_cached.d @@ -0,0 +1,10 @@ +obj/HAL/src/alt_remap_cached.o: HAL/src/alt_remap_cached.c \ + HAL/inc/sys/alt_cache.h HAL/inc/alt_types.h system.h linker.h + +HAL/inc/sys/alt_cache.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_remap_cached.o b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_remap_cached.o new file mode 100644 index 0000000..f942389 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_remap_cached.o Binary files differ diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_remap_uncached.d b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_remap_uncached.d new file mode 100644 index 0000000..0423405 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_remap_uncached.d @@ -0,0 +1,10 @@ +obj/HAL/src/alt_remap_uncached.o: HAL/src/alt_remap_uncached.c \ + HAL/inc/sys/alt_cache.h HAL/inc/alt_types.h system.h linker.h + +HAL/inc/sys/alt_cache.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_remap_uncached.o b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_remap_uncached.o new file mode 100644 index 0000000..9e95591 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_remap_uncached.o Binary files differ diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_rename.d b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_rename.d new file mode 100644 index 0000000..b7af4b2 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_rename.d @@ -0,0 +1,10 @@ +obj/HAL/src/alt_rename.o: HAL/src/alt_rename.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_rename.o b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_rename.o new file mode 100644 index 0000000..b8d09e0 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_rename.o Binary files differ diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_sbrk.d b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_sbrk.d new file mode 100644 index 0000000..a0771ae --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_sbrk.d @@ -0,0 +1,19 @@ +obj/HAL/src/alt_sbrk.o: HAL/src/alt_sbrk.c HAL/inc/os/alt_syscall.h \ + HAL/inc/sys/alt_irq.h HAL/inc/nios2.h HAL/inc/alt_types.h system.h \ + linker.h HAL/inc/sys/alt_stack.h system.h + +HAL/inc/os/alt_syscall.h: + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_stack.h: + +system.h: diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_sbrk.o b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_sbrk.o new file mode 100644 index 0000000..fd67c9b --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_sbrk.o Binary files differ diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_settod.d b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_settod.d new file mode 100644 index 0000000..56718d5 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_settod.d @@ -0,0 +1,17 @@ +obj/HAL/src/alt_settod.o: HAL/src/alt_settod.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_alarm.h HAL/inc/alt_types.h HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_settod.o b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_settod.o new file mode 100644 index 0000000..16cb6b8 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_settod.o Binary files differ diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_software_exception.d b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_software_exception.d new file mode 100644 index 0000000..fab4023 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_software_exception.d @@ -0,0 +1,6 @@ +obj/HAL/src/alt_software_exception.o: HAL/src/alt_software_exception.S \ + system.h linker.h + +system.h: + +linker.h: diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_software_exception.o b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_software_exception.o new file mode 100644 index 0000000..f9e01c2 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_software_exception.o Binary files differ diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_stat.d b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_stat.d new file mode 100644 index 0000000..8a63c27 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_stat.d @@ -0,0 +1,3 @@ +obj/HAL/src/alt_stat.o: HAL/src/alt_stat.c HAL/inc/os/alt_syscall.h + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_stat.o b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_stat.o new file mode 100644 index 0000000..0b2f244 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_stat.o Binary files differ diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_tick.d b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_tick.d new file mode 100644 index 0000000..ddbb281 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_tick.d @@ -0,0 +1,27 @@ +obj/HAL/src/alt_tick.o: HAL/src/alt_tick.c HAL/inc/sys/alt_irq.h \ + HAL/inc/nios2.h HAL/inc/alt_types.h system.h linker.h \ + HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_alarm.h HAL/inc/alt_types.h HAL/inc/os/alt_hooks.h \ + HAL/inc/alt_types.h + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_hooks.h: + +HAL/inc/alt_types.h: diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_tick.o b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_tick.o new file mode 100644 index 0000000..e3f2ff2 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_tick.o Binary files differ diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_times.d b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_times.d new file mode 100644 index 0000000..4bad83d --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_times.d @@ -0,0 +1,17 @@ +obj/HAL/src/alt_times.o: HAL/src/alt_times.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_alarm.h HAL/inc/alt_types.h HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_times.o b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_times.o new file mode 100644 index 0000000..6acc882 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_times.o Binary files differ diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_uncached_free.d b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_uncached_free.d new file mode 100644 index 0000000..d74ef4b --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_uncached_free.d @@ -0,0 +1,10 @@ +obj/HAL/src/alt_uncached_free.o: HAL/src/alt_uncached_free.c \ + HAL/inc/sys/alt_cache.h HAL/inc/alt_types.h system.h linker.h + +HAL/inc/sys/alt_cache.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_uncached_free.o b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_uncached_free.o new file mode 100644 index 0000000..e0d5d77 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_uncached_free.o Binary files differ diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_uncached_malloc.d b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_uncached_malloc.d new file mode 100644 index 0000000..16799fb --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_uncached_malloc.d @@ -0,0 +1,10 @@ +obj/HAL/src/alt_uncached_malloc.o: HAL/src/alt_uncached_malloc.c \ + HAL/inc/sys/alt_cache.h HAL/inc/alt_types.h system.h linker.h + +HAL/inc/sys/alt_cache.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_uncached_malloc.o b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_uncached_malloc.o new file mode 100644 index 0000000..1d7a10e --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_uncached_malloc.o Binary files differ diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_unlink.d b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_unlink.d new file mode 100644 index 0000000..0205f86 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_unlink.d @@ -0,0 +1,10 @@ +obj/HAL/src/alt_unlink.o: HAL/src/alt_unlink.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_unlink.o b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_unlink.o new file mode 100644 index 0000000..cc9c8c3 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_unlink.o Binary files differ diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_usleep.d b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_usleep.d new file mode 100644 index 0000000..b5eca45 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_usleep.d @@ -0,0 +1,6 @@ +obj/HAL/src/alt_usleep.o: HAL/src/alt_usleep.c \ + HAL/inc/priv/alt_busy_sleep.h HAL/inc/os/alt_syscall.h + +HAL/inc/priv/alt_busy_sleep.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_usleep.o b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_usleep.o new file mode 100644 index 0000000..526196e --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_usleep.o Binary files differ diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_wait.d b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_wait.d new file mode 100644 index 0000000..f47f5df --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_wait.d @@ -0,0 +1,8 @@ +obj/HAL/src/alt_wait.o: HAL/src/alt_wait.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_wait.o b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_wait.o new file mode 100644 index 0000000..b2653a9 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_wait.o Binary files differ diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_write.d b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_write.d new file mode 100644 index 0000000..0bc4b7c --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_write.d @@ -0,0 +1,38 @@ +obj/HAL/src/alt_write.o: HAL/src/alt_write.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h HAL/inc/priv/alt_file.h \ + HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h \ + HAL/inc/os/alt_syscall.h HAL/inc/sys/alt_log_printf.h system.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_syscall.h: + +HAL/inc/sys/alt_log_printf.h: + +system.h: diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_write.o b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_write.o new file mode 100644 index 0000000..71e9c2c --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/alt_write.o Binary files differ diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/altera_nios2_qsys_irq.d b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/altera_nios2_qsys_irq.d new file mode 100644 index 0000000..47bdd9c --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/altera_nios2_qsys_irq.d @@ -0,0 +1,15 @@ +obj/HAL/src/altera_nios2_qsys_irq.o: HAL/src/altera_nios2_qsys_irq.c \ + HAL/inc/sys/alt_irq.h HAL/inc/nios2.h HAL/inc/alt_types.h system.h \ + linker.h HAL/inc/altera_nios2_qsys_irq.h + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: + +HAL/inc/altera_nios2_qsys_irq.h: diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/altera_nios2_qsys_irq.o b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/altera_nios2_qsys_irq.o new file mode 100644 index 0000000..2143d01 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/altera_nios2_qsys_irq.o Binary files differ diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/crt0.d b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/crt0.d new file mode 100644 index 0000000..3af0bb0 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/crt0.d @@ -0,0 +1,12 @@ +obj/HAL/src/crt0.o: HAL/src/crt0.S system.h linker.h HAL/inc/nios2.h \ + HAL/inc/sys/alt_log_printf.h system.h + +system.h: + +linker.h: + +HAL/inc/nios2.h: + +HAL/inc/sys/alt_log_printf.h: + +system.h: diff --git a/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/crt0.o b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/crt0.o new file mode 100644 index 0000000..a23108f --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/HAL/src/crt0.o Binary files differ diff --git a/software/qsys_tutorial_lcd3_bsp/obj/alt_sys_init.d b/software/qsys_tutorial_lcd3_bsp/obj/alt_sys_init.d new file mode 100644 index 0000000..029ebe0 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/alt_sys_init.d @@ -0,0 +1,59 @@ +obj/alt_sys_init.o: alt_sys_init.c system.h linker.h \ + HAL/inc/sys/alt_irq.h HAL/inc/nios2.h HAL/inc/alt_types.h system.h \ + HAL/inc/sys/alt_sys_init.h HAL/inc/altera_nios2_qsys_irq.h \ + drivers/inc/altera_avalon_jtag_uart.h HAL/inc/sys/alt_alarm.h \ + HAL/inc/sys/alt_llist.h HAL/inc/priv/alt_alarm.h HAL/inc/alt_types.h \ + HAL/inc/sys/alt_warning.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h HAL/inc/os/alt_flag.h \ + drivers/inc/altera_avalon_jtag_uart_fd.h HAL/inc/sys/alt_dev.h \ + HAL/inc/sys/alt_llist.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h drivers/inc/altera_avalon_lcd_16207.h \ + drivers/inc/altera_avalon_lcd_16207_fd.h + +system.h: + +linker.h: + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +HAL/inc/sys/alt_sys_init.h: + +HAL/inc/altera_nios2_qsys_irq.h: + +drivers/inc/altera_avalon_jtag_uart.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_flag.h: + +drivers/inc/altera_avalon_jtag_uart_fd.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +drivers/inc/altera_avalon_lcd_16207.h: + +drivers/inc/altera_avalon_lcd_16207_fd.h: diff --git a/software/qsys_tutorial_lcd3_bsp/obj/alt_sys_init.o b/software/qsys_tutorial_lcd3_bsp/obj/alt_sys_init.o new file mode 100644 index 0000000..60e5e67 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/alt_sys_init.o Binary files differ diff --git a/software/qsys_tutorial_lcd3_bsp/obj/drivers/src/altera_avalon_jtag_uart_fd.d b/software/qsys_tutorial_lcd3_bsp/obj/drivers/src/altera_avalon_jtag_uart_fd.d new file mode 100644 index 0000000..b152697 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/drivers/src/altera_avalon_jtag_uart_fd.d @@ -0,0 +1,48 @@ +obj/drivers/src/altera_avalon_jtag_uart_fd.o: \ + drivers/src/altera_avalon_jtag_uart_fd.c HAL/inc/alt_types.h \ + HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ + drivers/inc/altera_avalon_jtag_uart.h HAL/inc/sys/alt_alarm.h \ + HAL/inc/sys/alt_llist.h HAL/inc/priv/alt_alarm.h \ + HAL/inc/sys/alt_warning.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h HAL/inc/os/alt_flag.h \ + drivers/inc/altera_avalon_jtag_uart_fd.h HAL/inc/sys/alt_dev.h + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +drivers/inc/altera_avalon_jtag_uart.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_flag.h: + +drivers/inc/altera_avalon_jtag_uart_fd.h: + +HAL/inc/sys/alt_dev.h: diff --git a/software/qsys_tutorial_lcd3_bsp/obj/drivers/src/altera_avalon_jtag_uart_fd.o b/software/qsys_tutorial_lcd3_bsp/obj/drivers/src/altera_avalon_jtag_uart_fd.o new file mode 100644 index 0000000..24be6a7 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/drivers/src/altera_avalon_jtag_uart_fd.o Binary files differ diff --git a/software/qsys_tutorial_lcd3_bsp/obj/drivers/src/altera_avalon_jtag_uart_init.d b/software/qsys_tutorial_lcd3_bsp/obj/drivers/src/altera_avalon_jtag_uart_init.d new file mode 100644 index 0000000..f9460a1 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/drivers/src/altera_avalon_jtag_uart_init.d @@ -0,0 +1,66 @@ +obj/drivers/src/altera_avalon_jtag_uart_init.o: \ + drivers/src/altera_avalon_jtag_uart_init.c HAL/inc/sys/alt_irq.h \ + HAL/inc/nios2.h HAL/inc/alt_types.h system.h linker.h \ + HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_alarm.h HAL/inc/alt_types.h HAL/inc/sys/ioctl.h \ + HAL/inc/alt_types.h drivers/inc/altera_avalon_jtag_uart_regs.h \ + HAL/inc/io.h HAL/inc/alt_types.h drivers/inc/altera_avalon_jtag_uart.h \ + HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_warning.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h HAL/inc/os/alt_flag.h \ + drivers/inc/altera_avalon_jtag_uart_fd.h HAL/inc/sys/alt_dev.h \ + HAL/inc/sys/alt_llist.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h HAL/inc/sys/alt_log_printf.h system.h + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/ioctl.h: + +HAL/inc/alt_types.h: + +drivers/inc/altera_avalon_jtag_uart_regs.h: + +HAL/inc/io.h: + +HAL/inc/alt_types.h: + +drivers/inc/altera_avalon_jtag_uart.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_flag.h: + +drivers/inc/altera_avalon_jtag_uart_fd.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/sys/alt_log_printf.h: + +system.h: diff --git a/software/qsys_tutorial_lcd3_bsp/obj/drivers/src/altera_avalon_jtag_uart_init.o b/software/qsys_tutorial_lcd3_bsp/obj/drivers/src/altera_avalon_jtag_uart_init.o new file mode 100644 index 0000000..a612e51 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/drivers/src/altera_avalon_jtag_uart_init.o Binary files differ diff --git a/software/qsys_tutorial_lcd3_bsp/obj/drivers/src/altera_avalon_jtag_uart_ioctl.d b/software/qsys_tutorial_lcd3_bsp/obj/drivers/src/altera_avalon_jtag_uart_ioctl.d new file mode 100644 index 0000000..d75a559 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/drivers/src/altera_avalon_jtag_uart_ioctl.d @@ -0,0 +1,58 @@ +obj/drivers/src/altera_avalon_jtag_uart_ioctl.o: \ + drivers/src/altera_avalon_jtag_uart_ioctl.c HAL/inc/sys/ioctl.h \ + HAL/inc/alt_types.h drivers/inc/altera_avalon_jtag_uart_regs.h \ + HAL/inc/io.h HAL/inc/alt_types.h drivers/inc/altera_avalon_jtag_uart.h \ + HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ + HAL/inc/priv/alt_alarm.h HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h \ + HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h HAL/inc/os/alt_flag.h \ + drivers/inc/altera_avalon_jtag_uart_fd.h HAL/inc/sys/alt_dev.h system.h \ + linker.h HAL/inc/sys/alt_llist.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h HAL/inc/sys/alt_log_printf.h system.h + +HAL/inc/sys/ioctl.h: + +HAL/inc/alt_types.h: + +drivers/inc/altera_avalon_jtag_uart_regs.h: + +HAL/inc/io.h: + +HAL/inc/alt_types.h: + +drivers/inc/altera_avalon_jtag_uart.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_flag.h: + +drivers/inc/altera_avalon_jtag_uart_fd.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/sys/alt_log_printf.h: + +system.h: diff --git a/software/qsys_tutorial_lcd3_bsp/obj/drivers/src/altera_avalon_jtag_uart_ioctl.o b/software/qsys_tutorial_lcd3_bsp/obj/drivers/src/altera_avalon_jtag_uart_ioctl.o new file mode 100644 index 0000000..8fe8058 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/drivers/src/altera_avalon_jtag_uart_ioctl.o Binary files differ diff --git a/software/qsys_tutorial_lcd3_bsp/obj/drivers/src/altera_avalon_jtag_uart_read.d b/software/qsys_tutorial_lcd3_bsp/obj/drivers/src/altera_avalon_jtag_uart_read.d new file mode 100644 index 0000000..9a4846a --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/drivers/src/altera_avalon_jtag_uart_read.d @@ -0,0 +1,66 @@ +obj/drivers/src/altera_avalon_jtag_uart_read.o: \ + drivers/src/altera_avalon_jtag_uart_read.c HAL/inc/sys/alt_irq.h \ + HAL/inc/nios2.h HAL/inc/alt_types.h system.h linker.h \ + HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_alarm.h HAL/inc/alt_types.h HAL/inc/sys/ioctl.h \ + HAL/inc/alt_types.h drivers/inc/altera_avalon_jtag_uart_regs.h \ + HAL/inc/io.h HAL/inc/alt_types.h drivers/inc/altera_avalon_jtag_uart.h \ + HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_warning.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h HAL/inc/os/alt_flag.h \ + drivers/inc/altera_avalon_jtag_uart_fd.h HAL/inc/sys/alt_dev.h \ + HAL/inc/sys/alt_llist.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h HAL/inc/sys/alt_log_printf.h system.h + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/ioctl.h: + +HAL/inc/alt_types.h: + +drivers/inc/altera_avalon_jtag_uart_regs.h: + +HAL/inc/io.h: + +HAL/inc/alt_types.h: + +drivers/inc/altera_avalon_jtag_uart.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_flag.h: + +drivers/inc/altera_avalon_jtag_uart_fd.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/sys/alt_log_printf.h: + +system.h: diff --git a/software/qsys_tutorial_lcd3_bsp/obj/drivers/src/altera_avalon_jtag_uart_read.o b/software/qsys_tutorial_lcd3_bsp/obj/drivers/src/altera_avalon_jtag_uart_read.o new file mode 100644 index 0000000..30dbfbc --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/drivers/src/altera_avalon_jtag_uart_read.o Binary files differ diff --git a/software/qsys_tutorial_lcd3_bsp/obj/drivers/src/altera_avalon_jtag_uart_write.d b/software/qsys_tutorial_lcd3_bsp/obj/drivers/src/altera_avalon_jtag_uart_write.d new file mode 100644 index 0000000..5518b7f --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/drivers/src/altera_avalon_jtag_uart_write.d @@ -0,0 +1,66 @@ +obj/drivers/src/altera_avalon_jtag_uart_write.o: \ + drivers/src/altera_avalon_jtag_uart_write.c HAL/inc/sys/alt_irq.h \ + HAL/inc/nios2.h HAL/inc/alt_types.h system.h linker.h \ + HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_alarm.h HAL/inc/alt_types.h HAL/inc/sys/ioctl.h \ + HAL/inc/alt_types.h drivers/inc/altera_avalon_jtag_uart_regs.h \ + HAL/inc/io.h HAL/inc/alt_types.h drivers/inc/altera_avalon_jtag_uart.h \ + HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_warning.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h HAL/inc/os/alt_flag.h \ + drivers/inc/altera_avalon_jtag_uart_fd.h HAL/inc/sys/alt_dev.h \ + HAL/inc/sys/alt_llist.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h HAL/inc/sys/alt_log_printf.h system.h + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/ioctl.h: + +HAL/inc/alt_types.h: + +drivers/inc/altera_avalon_jtag_uart_regs.h: + +HAL/inc/io.h: + +HAL/inc/alt_types.h: + +drivers/inc/altera_avalon_jtag_uart.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_flag.h: + +drivers/inc/altera_avalon_jtag_uart_fd.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/sys/alt_log_printf.h: + +system.h: diff --git a/software/qsys_tutorial_lcd3_bsp/obj/drivers/src/altera_avalon_jtag_uart_write.o b/software/qsys_tutorial_lcd3_bsp/obj/drivers/src/altera_avalon_jtag_uart_write.o new file mode 100644 index 0000000..1fc68b3 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/drivers/src/altera_avalon_jtag_uart_write.o Binary files differ diff --git a/software/qsys_tutorial_lcd3_bsp/obj/drivers/src/altera_avalon_lcd_16207.d b/software/qsys_tutorial_lcd3_bsp/obj/drivers/src/altera_avalon_lcd_16207.d new file mode 100644 index 0000000..dfd0adb --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/drivers/src/altera_avalon_lcd_16207.d @@ -0,0 +1,47 @@ +obj/drivers/src/altera_avalon_lcd_16207.o: \ + drivers/src/altera_avalon_lcd_16207.c HAL/inc/sys/alt_alarm.h \ + HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h HAL/inc/priv/alt_alarm.h \ + HAL/inc/alt_types.h drivers/inc/altera_avalon_lcd_16207_regs.h \ + HAL/inc/io.h HAL/inc/alt_types.h drivers/inc/altera_avalon_lcd_16207.h \ + HAL/inc/sys/alt_alarm.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h drivers/inc/altera_avalon_lcd_16207_fd.h \ + HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/alt_types.h: + +drivers/inc/altera_avalon_lcd_16207_regs.h: + +HAL/inc/io.h: + +HAL/inc/alt_types.h: + +drivers/inc/altera_avalon_lcd_16207.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +drivers/inc/altera_avalon_lcd_16207_fd.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: diff --git a/software/qsys_tutorial_lcd3_bsp/obj/drivers/src/altera_avalon_lcd_16207.o b/software/qsys_tutorial_lcd3_bsp/obj/drivers/src/altera_avalon_lcd_16207.o new file mode 100644 index 0000000..07542cf --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/drivers/src/altera_avalon_lcd_16207.o Binary files differ diff --git a/software/qsys_tutorial_lcd3_bsp/obj/drivers/src/altera_avalon_lcd_16207_fd.d b/software/qsys_tutorial_lcd3_bsp/obj/drivers/src/altera_avalon_lcd_16207_fd.d new file mode 100644 index 0000000..b39dc1d --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/drivers/src/altera_avalon_lcd_16207_fd.d @@ -0,0 +1,43 @@ +obj/drivers/src/altera_avalon_lcd_16207_fd.o: \ + drivers/src/altera_avalon_lcd_16207_fd.c HAL/inc/alt_types.h \ + HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ + drivers/inc/altera_avalon_lcd_16207.h HAL/inc/sys/alt_alarm.h \ + HAL/inc/sys/alt_llist.h HAL/inc/priv/alt_alarm.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h drivers/inc/altera_avalon_lcd_16207_fd.h \ + HAL/inc/sys/alt_dev.h + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +drivers/inc/altera_avalon_lcd_16207.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +drivers/inc/altera_avalon_lcd_16207_fd.h: + +HAL/inc/sys/alt_dev.h: diff --git a/software/qsys_tutorial_lcd3_bsp/obj/drivers/src/altera_avalon_lcd_16207_fd.o b/software/qsys_tutorial_lcd3_bsp/obj/drivers/src/altera_avalon_lcd_16207_fd.o new file mode 100644 index 0000000..c4dd725 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/obj/drivers/src/altera_avalon_lcd_16207_fd.o Binary files differ diff --git a/software/qsys_tutorial_lcd3_bsp/public.mk b/software/qsys_tutorial_lcd3_bsp/public.mk new file mode 100644 index 0000000..2fd6fc6 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/public.mk @@ -0,0 +1,377 @@ +#------------------------------------------------------------------------------ +# BSP "PUBLIC" MAKEFILE CONTENT +# +# This file is intended to be included in an application or library +# Makefile that is using this BSP. You can create such a Makefile with +# the nios2-app-generate-makefile or nios2-lib-generate-makefile +# commands. +# +# The following variables must be defined before including this file: +# +# ALT_LIBRARY_ROOT_DIR +# Contains the path to the BSP top-level (aka root) directory +#------------------------------------------------------------------------------ + +#------------------------------------------------------------------------------ +# PATHS +#------------------------------------------------------------------------------ + + + +# Path to the provided linker script. +BSP_LINKER_SCRIPT := $(ALT_LIBRARY_ROOT_DIR)/linker.x + +# Include paths: +# The path to root of all header files that a library wishes to make +# available for an application's use is specified here. Note that this +# may not be *all* folders within a hierarchy. For example, if it is +# desired that the application developer type: +# #include +# #include +# With files laid out like this: +# /inc/sockets.h +# /inc/ip/tcpip.h +# +# Then, only /inc need be added to the list of include +# directories. Alternatively, if you wish to be able to directly include +# all files in a hierarchy, separate paths to each folder in that +# hierarchy must be defined. + +# The following are the "base" set of include paths for a BSP. +# These paths are appended to the list that individual software +# components, drivers, etc., add in the generated portion of this +# file (below). +ALT_INCLUDE_DIRS_TO_APPEND += \ + $(ALT_LIBRARY_ROOT_DIR) \ + $(ALT_LIBRARY_ROOT_DIR)/drivers/inc + +# Additions to linker library search-path: +# Here we provide a path to "our self" for the application to construct a +# "-L " out of. This should contain a list of directories, +# relative to the library root, of all directories with .a files to link +# against. +ALT_LIBRARY_DIRS += $(ALT_LIBRARY_ROOT_DIR) + + +#------------------------------------------------------------------------------ +# COMPILATION FLAGS +#------------------------------------------------------------------------------ +# Default C pre-processor flags for a BSP: +ALT_CPPFLAGS += -DSYSTEM_BUS_WIDTH=32 \ + -pipe + + +#------------------------------------------------------------------------------ +# MANAGED CONTENT +# +# All content between the lines "START MANAGED" and "END MANAGED" below is +# generated based on variables in the BSP settings file when the +# nios2-bsp-generate-files command is invoked. If you wish to persist any +# information pertaining to the build process, it is recomended that you +# utilize the BSP settings mechanism to do so. +#------------------------------------------------------------------------------ +#START MANAGED + +# The following TYPE comment allows tools to identify the 'type' of target this +# makefile is associated with. +# TYPE: BSP_PUBLIC_MAKEFILE + +# This following VERSION comment indicates the version of the tool used to +# generate this makefile. A makefile variable is provided for VERSION as well. +# ACDS_VERSION: 13.0sp1 +ACDS_VERSION := 13.0sp1 + +# This following BUILD_NUMBER comment indicates the build number of the tool +# used to generate this makefile. +# BUILD_NUMBER: 232 + +# Qsys--generated SOPCINFO file. Required for resolving node instance ID's with +# design component names. +SOPCINFO_FILE := C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.sopcinfo + +# Big-Endian operation. +# setting BIG_ENDIAN is false +ALT_CFLAGS += -EL + +# Path to the provided C language runtime initialization code. +BSP_CRT0 := $(ALT_LIBRARY_ROOT_DIR)/obj/HAL/src/crt0.o + +# Name of BSP library as provided to linker using the "-msys-lib" flag or +# linker script GROUP command. +# setting BSP_SYS_LIB is hal_bsp +BSP_SYS_LIB := hal_bsp +ELF_PATCH_FLAG += --thread_model hal + +# Type identifier of the BSP library +# setting BSP_TYPE is hal +ALT_CPPFLAGS += -D__hal__ +BSP_TYPE := hal + +# CPU Name +# setting CPU_NAME is nios2_processor +CPU_NAME = nios2_processor +ELF_PATCH_FLAG += --cpu_name $(CPU_NAME) + +# Hardware Divider present. +# setting HARDWARE_DIVIDE is false +ALT_CFLAGS += -mno-hw-div + +# Hardware Multiplier present. +# setting HARDWARE_MULTIPLY is false +ALT_CFLAGS += -mno-hw-mul + +# Hardware Mulx present. +# setting HARDWARE_MULX is false +ALT_CFLAGS += -mno-hw-mulx + +# Debug Core present. +# setting HAS_DEBUG_CORE is true +CPU_HAS_DEBUG_CORE = 1 + +# Qsys generated design +# setting QSYS is 1 +QSYS := 1 +ELF_PATCH_FLAG += --qsys true + +# Design Name +# setting SOPC_NAME is nios_system +SOPC_NAME := nios_system + +# SopcBuilder Simulation Enabled +# setting SOPC_SIMULATION_ENABLED is false +ELF_PATCH_FLAG += --simulation_enabled false + +# Enable JTAG UART driver to recover when host is inactive causing buffer to +# full without returning error. Printf will not fail with this recovery. none +# setting altera_avalon_jtag_uart_driver.enable_jtag_uart_ignore_fifo_full_error is false + +# Small-footprint (polled mode) driver none +# setting altera_avalon_jtag_uart_driver.enable_small_driver is false + +# Build a custom version of newlib with the specified space-separated compiler +# flags. The custom newlib build will be placed in the <bsp root>/newlib +# directory, and will be used only for applications that utilize this BSP. +# setting hal.custom_newlib_flags is none + +# Enable support for a subset of the C++ language. This option increases code +# footprint by adding support for C++ constructors. Certain features, such as +# multiple inheritance and exceptions are not supported. If false, adds +# -DALT_NO_C_PLUS_PLUS to ALT_CPPFLAGS in public.mk, and reduces code +# footprint. none +# setting hal.enable_c_plus_plus is true + +# When your application exits, close file descriptors, call C++ destructors, +# etc. Code footprint can be reduced by disabling clean exit. If disabled, adds +# -DALT_NO_CLEAN_EXIT to ALT_CPPFLAGS and -Wl,--defsym, exit=_exit to +# ALT_LDFLAGS in public.mk. none +# setting hal.enable_clean_exit is true + +# Add exit() support. This option increases code footprint if your "main()" +# routine does "return" or call "exit()". If false, adds -DALT_NO_EXIT to +# ALT_CPPFLAGS in public.mk, and reduces footprint none +# setting hal.enable_exit is true + +# Causes code to be compiled with gprof profiling enabled and the application +# ELF to be linked with the GPROF library. If true, adds -DALT_PROVIDE_GMON to +# ALT_CPPFLAGS and -pg to ALT_CFLAGS in public.mk. none +# setting hal.enable_gprof is false + +# Enables lightweight device driver API. This reduces code and data footprint +# by removing the HAL layer that maps device names (e.g. /dev/uart0) to file +# descriptors. Instead, driver routines are called directly. The open(), +# close(), and lseek() routines will always fail if called. The read(), +# write(), fstat(), ioctl(), and isatty() routines only work for the stdio +# devices. If true, adds -DALT_USE_DIRECT_DRIVERS to ALT_CPPFLAGS in public.mk. +# The Altera Host and read-only ZIP file systems can't be used if +# hal.enable_lightweight_device_driver_api is true. +# setting hal.enable_lightweight_device_driver_api is false + +# Adds code to emulate multiply and divide instructions in case they are +# executed but aren't present in the CPU. Normally this isn't required because +# the compiler won't use multiply and divide instructions that aren't present +# in the CPU. If false, adds -DALT_NO_INSTRUCTION_EMULATION to ALT_CPPFLAGS in +# public.mk. none +# setting hal.enable_mul_div_emulation is false +ALT_CPPFLAGS += -DALT_NO_INSTRUCTION_EMULATION + +# Certain drivers are compiled with reduced functionality to reduce code +# footprint. Not all drivers observe this setting. The altera_avalon_uart and +# altera_avalon_jtag_uart drivers switch from interrupt-driven to polled +# operation. CAUTION: Several device drivers are disabled entirely. These +# include the altera_avalon_cfi_flash, altera_avalon_epcs_flash_controller, and +# altera_avalon_lcd_16207 drivers. This can result in certain API (HAL flash +# access routines) to fail. You can define a symbol provided by each driver to +# prevent it from being removed. If true, adds -DALT_USE_SMALL_DRIVERS to +# ALT_CPPFLAGS in public.mk. none +# setting hal.enable_reduced_device_drivers is false + +# Turns on HAL runtime stack checking feature. Enabling this setting causes +# additional code to be placed into each subroutine call to generate an +# exception if a stack collision occurs with the heap or statically allocated +# data. If true, adds -DALT_STACK_CHECK and -mstack-check to ALT_CPPFLAGS in +# public.mk. none +# setting hal.enable_runtime_stack_checking is false + +# The BSP is compiled with optimizations to speedup HDL simulation such as +# initializing the cache, clearing the .bss section, and skipping long delay +# loops. If true, adds -DALT_SIM_OPTIMIZE to ALT_CPPFLAGS in public.mk. When +# this setting is true, the BSP shouldn't be used to build applications that +# are expected to run real hardware. +# setting hal.enable_sim_optimize is false + +# Causes the small newlib (C library) to be used. This reduces code and data +# footprint at the expense of reduced functionality. Several newlib features +# are removed such as floating-point support in printf(), stdin input routines, +# and buffered I/O. The small C library is not compatible with Micrium +# MicroC/OS-II. If true, adds -msmallc to ALT_LDFLAGS in public.mk. none +# setting hal.enable_small_c_library is false + +# Enable SOPC Builder System ID. If a System ID SOPC Builder component is +# connected to the CPU associated with this BSP, it will be enabled in the +# creation of command-line arguments to download an ELF to the target. +# Otherwise, system ID and timestamp values are left out of public.mk for +# application Makefile "download-elf" target definition. With the system ID +# check disabled, the Nios II EDS tools will not automatically ensure that the +# application .elf file (and BSP it is linked against) corresponds to the +# hardware design on the target. If false, adds --accept-bad-sysid to +# SOPC_SYSID_FLAG in public.mk. none +# setting hal.enable_sopc_sysid_check is true + +# Enable BSP generation to query if SOPC system is big endian. If true ignores +# export of 'ALT_CFLAGS += -EB' to public.mk if big endian system. If true +# ignores export of 'ALT_CFLAGS += -EL' if little endian system. none +# setting hal.make.ignore_system_derived.big_endian is false + +# Enable BSP generation to query if SOPC system has a debug core present. If +# true ignores export of 'CPU_HAS_DEBUG_CORE = 1' to public.mk if a debug core +# is found in the system. If true ignores export of 'CPU_HAS_DEBUG_CORE = 0' if +# no debug core is found in the system. none +# setting hal.make.ignore_system_derived.debug_core_present is false + +# Enable BSP generation to query if SOPC system has FPU present. If true +# ignores export of 'ALT_CFLAGS += -mhard-float' to public.mk if FPU is found +# in the system. If true ignores export of 'ALT_CFLAGS += -mhard-soft' if FPU +# is not found in the system. none +# setting hal.make.ignore_system_derived.fpu_present is false + +# Enable BSP generation to query if SOPC system has hardware divide present. If +# true ignores export of 'ALT_CFLAGS += -mno-hw-div' to public.mk if no +# division is found in system. If true ignores export of 'ALT_CFLAGS += +# -mhw-div' if division is found in the system. none +# setting hal.make.ignore_system_derived.hardware_divide_present is false + +# Enable BSP generation to query if SOPC system floating point custom +# instruction with a divider is present. If true ignores export of 'ALT_CFLAGS +# += -mcustom-fpu-cfg=60-2' and 'ALT_LDFLAGS += -mcustom-fpu-cfg=60-2' to +# public.mk if the custom instruction is found in the system. none +# setting hal.make.ignore_system_derived.hardware_fp_cust_inst_divider_present is false + +# Enable BSP generation to query if SOPC system floating point custom +# instruction without a divider is present. If true ignores export of +# 'ALT_CFLAGS += -mcustom-fpu-cfg=60-1' and 'ALT_LDFLAGS += +# -mcustom-fpu-cfg=60-1' to public.mk if the custom instruction is found in the +# system. none +# setting hal.make.ignore_system_derived.hardware_fp_cust_inst_no_divider_present is false + +# Enable BSP generation to query if SOPC system has multiplier present. If true +# ignores export of 'ALT_CFLAGS += -mno-hw-mul' to public.mk if no multiplier +# is found in the system. If true ignores export of 'ALT_CFLAGS += -mhw-mul' if +# multiplier is found in the system. none +# setting hal.make.ignore_system_derived.hardware_multiplier_present is false + +# Enable BSP generation to query if SOPC system has hardware mulx present. If +# true ignores export of 'ALT_CFLAGS += -mno-hw-mulx' to public.mk if no mulx +# is found in the system. If true ignores export of 'ALT_CFLAGS += -mhw-mulx' +# if mulx is found in the system. none +# setting hal.make.ignore_system_derived.hardware_mulx_present is false + +# Enable BSP generation to query if SOPC system has simulation enabled. If true +# ignores export of 'ELF_PATCH_FLAG += --simulation_enabled' to public.mk. none +# setting hal.make.ignore_system_derived.sopc_simulation_enabled is false + +# Enable BSP generation to query SOPC system for system ID base address. If +# true ignores export of 'SOPC_SYSID_FLAG += --sidp=
' and +# 'ELF_PATCH_FLAG += --sidp=
' to public.mk. none +# setting hal.make.ignore_system_derived.sopc_system_base_address is false + +# Enable BSP generation to query SOPC system for system ID. If true ignores +# export of 'SOPC_SYSID_FLAG += --id=' and 'ELF_PATCH_FLAG += +# --id=' to public.mk. none +# setting hal.make.ignore_system_derived.sopc_system_id is false + +# Enable BSP generation to query SOPC system for system timestamp. If true +# ignores export of 'SOPC_SYSID_FLAG += --timestamp=' and +# 'ELF_PATCH_FLAG += --timestamp=' to public.mk. none +# setting hal.make.ignore_system_derived.sopc_system_timestamp is false + +# Slave descriptor of STDERR character-mode device. This setting is used by the +# ALT_STDERR family of defines in system.h. none +# setting hal.stderr is jtag_uart +ELF_PATCH_FLAG += --stderr_dev jtag_uart + +# Slave descriptor of STDIN character-mode device. This setting is used by the +# ALT_STDIN family of defines in system.h. none +# setting hal.stdin is jtag_uart +ELF_PATCH_FLAG += --stdin_dev jtag_uart + +# Slave descriptor of STDOUT character-mode device. This setting is used by the +# ALT_STDOUT family of defines in system.h. none +# setting hal.stdout is jtag_uart +ELF_PATCH_FLAG += --stdout_dev jtag_uart + + +#------------------------------------------------------------------------------ +# SOFTWARE COMPONENT & DRIVER INCLUDE PATHS +#------------------------------------------------------------------------------ + +ALT_INCLUDE_DIRS += $(ALT_LIBRARY_ROOT_DIR)/HAL/inc + +#------------------------------------------------------------------------------ +# SOFTWARE COMPONENT & DRIVER PRODUCED ALT_CPPFLAGS ADDITIONS +#------------------------------------------------------------------------------ + +ALT_CPPFLAGS += -DALT_SINGLE_THREADED + +#END MANAGED + + +#------------------------------------------------------------------------------ +# LIBRARY INFORMATION +#------------------------------------------------------------------------------ +# Assemble the name of the BSP *.a file using the BSP library name +# (BSP_SYS_LIB) in generated content above. +BSP_LIB := lib$(BSP_SYS_LIB).a + +# Additional libraries to link against: +# An application including this file will prefix each library with "-l". +# For example, to include the Newlib math library "m" is included, which +# becomes "-lm" when linking the application. +ALT_LIBRARY_NAMES += m + +# Additions to linker dependencies: +# An application Makefile will typically add these directly to the list +# of dependencies required to build the executable target(s). The BSP +# library (*.a) file is specified here. +ALT_LDDEPS += $(ALT_LIBRARY_ROOT_DIR)/$(BSP_LIB) + +# Is this library "Makeable"? +# Add to list of root library directories that support running 'make' +# to build them. Because libraries may or may not have a Makefile in their +# root, appending to this variable tells an application to run 'make' in +# the library root to build/update this library. +MAKEABLE_LIBRARY_ROOT_DIRS += $(ALT_LIBRARY_ROOT_DIR) + +# Additional Assembler Flags +# -gdwarf2 flag is required for stepping through assembly code +ALT_ASFLAGS += -gdwarf2 + +#------------------------------------------------------------------------------ +# FINAL INCLUDE PATH LIST +#------------------------------------------------------------------------------ +# Append static include paths to paths specified by OS/driver/sw package +# additions to the BSP thus giving them precedence in case a BSP addition +# is attempting to override BSP sources. +ALT_INCLUDE_DIRS += $(ALT_INCLUDE_DIRS_TO_APPEND) + + + diff --git a/software/qsys_tutorial_lcd3_bsp/settings.bsp b/software/qsys_tutorial_lcd3_bsp/settings.bsp new file mode 100644 index 0000000..13f012c --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/settings.bsp @@ -0,0 +1,991 @@ + + + hal + default + 2016/12/02 1:06:41 + 1480608401552 + C:\Users\takayun\Documents\DE2-115\qsys_tutorial\software\qsys_tutorial_lcd3_bsp + .\settings.bsp + C:\Users\takayun\Documents\DE2-115\qsys_tutorial\nios_system.sopcinfo + default + nios2_processor + 1.9 + + hal.sys_clk_timer + ALT_SYS_CLK + UnquotedString + none + none + system_h_define + Slave descriptor of the system clock timer device. This device provides a periodic interrupt ("tick") and is typically required for RTOS use. This setting defines the value of ALT_SYS_CLK in system.h. + none + false + common + + + hal.timestamp_timer + ALT_TIMESTAMP_CLK + UnquotedString + none + none + system_h_define + Slave descriptor of timestamp timer device. This device is used by Altera HAL timestamp drivers for high-resolution time measurement. This setting defines the value of ALT_TIMESTAMP_CLK in system.h. + none + false + common + + + hal.max_file_descriptors + ALT_MAX_FD + DecimalNumber + 32 + 32 + system_h_define + Determines the number of file descriptors statically allocated. This setting defines the value of ALT_MAX_FD in system.h. + If hal.enable_lightweight_device_driver_api is true, there are no file descriptors so this setting is ignored. If hal.enable_lightweight_device_driver_api is false, this setting must be at least 4 because HAL needs a file descriptor for /dev/null, /dev/stdin, /dev/stdout, and /dev/stderr. + false + + + + hal.enable_instruction_related_exceptions_api + ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API + BooleanDefineOnly + false + false + system_h_define + Enables API for registering handlers to service instruction-related exceptions. Enabling this setting increases the size of the exception entry code. + These exception types can be generated if various processor options are enabled, such as the MMU, MPU, or other advanced exception types. + false + + + + hal.linker.allow_code_at_reset + ALT_ALLOW_CODE_AT_RESET + Boolean + 1 + 0 + none + Indicates if initialization code is allowed at the reset address. If true, defines the macro ALT_ALLOW_CODE_AT_RESET in linker.h. + If true, defines the macro ALT_ALLOW_CODE_AT_RESET in linker.h. This setting is typically false if an external bootloader (e.g. flash bootloader) is present. + false + + + + hal.linker.enable_alt_load + NONE + Boolean + 1 + 0 + none + Enables the alt_load() facility. The alt_load() facility copies sections from the .text memory into RAM. If true, this setting sets up the VMA/LMA of sections in linker.x to allow them to be loaded into the .text memory. + This setting is typically false if an external bootloader (e.g. flash bootloader) is present. + false + + + + hal.linker.enable_alt_load_copy_rodata + NONE + Boolean + 0 + 0 + none + Causes the alt_load() facility to copy the .rodata section. If true, this setting defines the macro ALT_LOAD_COPY_RODATA in linker.h. + none + false + + + + hal.linker.enable_alt_load_copy_rwdata + NONE + Boolean + 1 + 0 + none + Causes the alt_load() facility to copy the .rwdata section. If true, this setting defines the macro ALT_LOAD_COPY_RWDATA in linker.h. + none + false + + + + hal.linker.enable_alt_load_copy_exceptions + NONE + Boolean + 0 + 0 + none + Causes the alt_load() facility to copy the .exceptions section. If true, this setting defines the macro ALT_LOAD_COPY_EXCEPTIONS in linker.h. + none + false + + + + hal.linker.enable_exception_stack + NONE + Boolean + 0 + 0 + none + Enables use of a separate exception stack. If true, defines the macro ALT_EXCEPTION_STACK in linker.h, adds a memory region called exception_stack to linker.x, and provides the symbols __alt_exception_stack_pointer and __alt_exception_stack_limit in linker.x. + The hal.linker.exception_stack_size and hal.linker.exception_stack_memory_region_name settings must also be valid. This setting must be false for MicroC/OS-II BSPs. The exception stack can be used to improve interrupt and other exception performance if the EIC is *not* used. + false + common + + + hal.linker.exception_stack_size + NONE + DecimalNumber + 1024 + 1024 + none + Size of the exception stack in bytes. + Only used if hal.linker.enable_exception_stack is true. + false + common + + + hal.linker.exception_stack_memory_region_name + NONE + UnquotedString + onchip_memory + none + none + Name of the existing memory region that will be divided up to create the 'exception_stack' memory region. The selected region name will be adjusted automatically when the BSP is generated to create the 'exception_stack' memory region. + Only used if hal.linker.enable_exception_stack is true. + false + common + + + hal.linker.enable_interrupt_stack + NONE + Boolean + 0 + 0 + none + Enables use of a separate interrupt stack. If true, defines the macro ALT_INTERRUPT_STACK in linker.h, adds a memory region called interrupt_stack to linker.x, and provides the symbols __alt_interrupt_stack_pointer and __alt_interrupt_stack_limit in linker.x. + The hal.linker.interrupt_stack_size and hal.linker.interrupt_stack_memory_region_name settings must also be valid. This setting must be false for MicroC/OS-II BSPs. Only enable if the EIC is used exclusively. The exception stack can be used to improve interrupt and other exception performance if the EIC is *not* used. + false + common + + + hal.linker.interrupt_stack_size + NONE + DecimalNumber + 1024 + 1024 + none + Size of the interrupt stack in bytes. + Only used if hal.linker.enable_interrupt_stack is true. + false + common + + + hal.linker.interrupt_stack_memory_region_name + NONE + UnquotedString + onchip_memory + none + none + Name of the existing memory region that will be divided up to create the 'interrupt_stack' memory region. The selected region name will be adjusted automatically when the BSP is generated to create the 'interrupt_stack' memory region. + Only used if hal.linker.enable_interrupt_stack is true. + false + common + + + hal.stdin + NONE + UnquotedString + jtag_uart + none + system_h_define + Slave descriptor of STDIN character-mode device. This setting is used by the ALT_STDIN family of defines in system.h. + none + false + common + + + hal.stdout + NONE + UnquotedString + jtag_uart + none + system_h_define + Slave descriptor of STDOUT character-mode device. This setting is used by the ALT_STDOUT family of defines in system.h. + none + false + common + + + hal.stderr + NONE + UnquotedString + jtag_uart + none + system_h_define + Slave descriptor of STDERR character-mode device. This setting is used by the ALT_STDERR family of defines in system.h. + none + false + common + + + hal.log_port + NONE + UnquotedString + none + none + public_mk_define + Slave descriptor of debug logging character-mode device. If defined, it enables extra debug messages in the HAL source. This setting is used by the ALT_LOG_PORT family of defines in system.h. + none + false + none + + + hal.make.build_pre_process + BUILD_PRE_PROCESS + UnquotedString + none + none + makefile_variable + Command executed before BSP built. + none + false + none + + + hal.make.ar_pre_process + AR_PRE_PROCESS + UnquotedString + none + none + makefile_variable + Command executed before archiver execution. + none + false + none + + + hal.make.bsp_cflags_defined_symbols + BSP_CFLAGS_DEFINED_SYMBOLS + UnquotedString + none + none + makefile_variable + Preprocessor macros to define. A macro definition in this setting has the same effect as a "#define" in source code. Adding "-DALT_DEBUG" to this setting has the same effect as "#define ALT_DEBUG" in a souce file. Adding "-DFOO=1" to this setting is equivalent to the macro "#define FOO 1" in a source file. Macros defined with this setting are applied to all .S, .c, and C++ files in the BSP. This setting defines the value of BSP_CFLAGS_DEFINED_SYMBOLS in the BSP Makefile. + none + false + none + + + hal.make.ar_post_process + AR_POST_PROCESS + UnquotedString + none + none + makefile_variable + Command executed after archiver execution. + none + false + none + + + hal.make.as + AS + UnquotedString + nios2-elf-gcc + nios2-elf-gcc + makefile_variable + Assembler command. Note that CC is used for .S files. + none + false + none + + + hal.make.build_post_process + BUILD_POST_PROCESS + UnquotedString + none + none + makefile_variable + Command executed after BSP built. + none + false + none + + + hal.make.bsp_cflags_debug + BSP_CFLAGS_DEBUG + UnquotedString + -g + -g + makefile_variable + C/C++ compiler debug level. '-g' provides the default set of debug symbols typically required to debug a typical application. Omitting '-g' removes debug symbols from the ELF. This setting defines the value of BSP_CFLAGS_DEBUG in Makefile. + none + false + common + + + hal.make.ar + AR + UnquotedString + nios2-elf-ar + nios2-elf-ar + makefile_variable + Archiver command. Creates library files. + none + false + none + + + hal.make.rm + RM + UnquotedString + rm -f + rm -f + makefile_variable + Command used to remove files during 'clean' target. + none + false + none + + + hal.make.cxx_pre_process + CXX_PRE_PROCESS + UnquotedString + none + none + makefile_variable + Command executed before each C++ file is compiled. + none + false + none + + + hal.make.bsp_cflags_warnings + BSP_CFLAGS_WARNINGS + UnquotedString + -Wall + -Wall + makefile_variable + C/C++ compiler warning level. "-Wall" is commonly used.This setting defines the value of BSP_CFLAGS_WARNINGS in Makefile. + none + false + none + + + hal.make.bsp_arflags + BSP_ARFLAGS + UnquotedString + -src + -src + makefile_variable + Custom flags only passed to the archiver. This content of this variable is directly passed to the archiver rather than the more standard "ARFLAGS". The reason for this is that GNU Make assumes some default content in ARFLAGS. This setting defines the value of BSP_ARFLAGS in Makefile. + none + false + none + + + hal.make.bsp_cflags_optimization + BSP_CFLAGS_OPTIMIZATION + UnquotedString + -O0 + -O0 + makefile_variable + C/C++ compiler optimization level. "-O0" = no optimization,"-O2" = "normal" optimization, etc. "-O0" is recommended for code that you want to debug since compiler optimization can remove variables and produce non-sequential execution of code while debugging. This setting defines the value of BSP_CFLAGS_OPTIMIZATION in Makefile. + none + false + common + + + hal.make.as_post_process + AS_POST_PROCESS + UnquotedString + none + none + makefile_variable + Command executed after each assembly file is compiled. + none + false + none + + + hal.make.cc_pre_process + CC_PRE_PROCESS + UnquotedString + none + none + makefile_variable + Command executed before each .c/.S file is compiled. + none + false + none + + + hal.make.bsp_asflags + BSP_ASFLAGS + UnquotedString + -Wa,-gdwarf2 + -Wa,-gdwarf2 + makefile_variable + Custom flags only passed to the assembler. This setting defines the value of BSP_ASFLAGS in Makefile. + none + false + none + + + hal.make.as_pre_process + AS_PRE_PROCESS + UnquotedString + none + none + makefile_variable + Command executed before each assembly file is compiled. + none + false + none + + + hal.make.bsp_cflags_undefined_symbols + BSP_CFLAGS_UNDEFINED_SYMBOLS + UnquotedString + none + none + makefile_variable + Preprocessor macros to undefine. Undefined macros are similar to defined macros, but replicate the "#undef" directive in source code. To undefine the macro FOO use the syntax "-u FOO" in this setting. This is equivalent to "#undef FOO" in a source file. Note: the syntax differs from macro definition (there is a space, i.e. "-u FOO" versus "-DFOO"). Macros defined with this setting are applied to all .S, .c, and C++ files in the BSP. This setting defines the value of BSP_CFLAGS_UNDEFINED_SYMBOLS in the BSP Makefile. + none + false + none + + + hal.make.cc_post_process + CC_POST_PROCESS + UnquotedString + none + none + makefile_variable + Command executed after each .c/.S file is compiled. + none + false + none + + + hal.make.cxx_post_process + CXX_POST_PROCESS + UnquotedString + none + none + makefile_variable + Command executed before each C++ file is compiled. + none + false + none + + + hal.make.cc + CC + UnquotedString + nios2-elf-gcc -xc + nios2-elf-gcc -xc + makefile_variable + C compiler command. + none + false + none + + + hal.make.bsp_cxx_flags + BSP_CXXFLAGS + UnquotedString + none + none + makefile_variable + Custom flags only passed to the C++ compiler. This setting defines the value of BSP_CXXFLAGS in Makefile. + none + false + none + + + hal.make.bsp_inc_dirs + BSP_INC_DIRS + UnquotedString + none + none + makefile_variable + Space separated list of extra include directories to scan for header files. Directories are relative to the top-level BSP directory. The -I prefix's added by the makefile so don't add it here. This setting defines the value of BSP_INC_DIRS in Makefile. + none + false + none + + + hal.make.cxx + CXX + UnquotedString + nios2-elf-gcc -xc++ + nios2-elf-gcc -xc++ + makefile_variable + C++ compiler command. + none + false + none + + + hal.make.bsp_cflags_user_flags + BSP_CFLAGS_USER_FLAGS + UnquotedString + none + none + makefile_variable + Custom flags passed to the compiler when compiling C, C++, and .S files. This setting defines the value of BSP_CFLAGS_USER_FLAGS in Makefile. + none + false + none + + + hal.make.ignore_system_derived.sopc_system_id + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query SOPC system for system ID. If true ignores export of 'SOPC_SYSID_FLAG += --id=<sysid>' and 'ELF_PATCH_FLAG += --id=<sysid>' to public.mk. + none + false + none + + + hal.make.ignore_system_derived.sopc_system_timestamp + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query SOPC system for system timestamp. If true ignores export of 'SOPC_SYSID_FLAG += --timestamp=<timestamp>' and 'ELF_PATCH_FLAG += --timestamp=<timestamp>' to public.mk. + none + false + none + + + hal.make.ignore_system_derived.sopc_system_base_address + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query SOPC system for system ID base address. If true ignores export of 'SOPC_SYSID_FLAG += --sidp=<address>' and 'ELF_PATCH_FLAG += --sidp=<address>' to public.mk. + none + false + none + + + hal.make.ignore_system_derived.sopc_simulation_enabled + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query if SOPC system has simulation enabled. If true ignores export of 'ELF_PATCH_FLAG += --simulation_enabled' to public.mk. + none + false + none + + + hal.make.ignore_system_derived.fpu_present + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query if SOPC system has FPU present. If true ignores export of 'ALT_CFLAGS += -mhard-float' to public.mk if FPU is found in the system. If true ignores export of 'ALT_CFLAGS += -mhard-soft' if FPU is not found in the system. + none + false + none + + + hal.make.ignore_system_derived.hardware_multiplier_present + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query if SOPC system has multiplier present. If true ignores export of 'ALT_CFLAGS += -mno-hw-mul' to public.mk if no multiplier is found in the system. If true ignores export of 'ALT_CFLAGS += -mhw-mul' if multiplier is found in the system. + none + false + none + + + hal.make.ignore_system_derived.hardware_mulx_present + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query if SOPC system has hardware mulx present. If true ignores export of 'ALT_CFLAGS += -mno-hw-mulx' to public.mk if no mulx is found in the system. If true ignores export of 'ALT_CFLAGS += -mhw-mulx' if mulx is found in the system. + none + false + none + + + hal.make.ignore_system_derived.hardware_divide_present + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query if SOPC system has hardware divide present. If true ignores export of 'ALT_CFLAGS += -mno-hw-div' to public.mk if no division is found in system. If true ignores export of 'ALT_CFLAGS += -mhw-div' if division is found in the system. + none + false + none + + + hal.make.ignore_system_derived.debug_core_present + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query if SOPC system has a debug core present. If true ignores export of 'CPU_HAS_DEBUG_CORE = 1' to public.mk if a debug core is found in the system. If true ignores export of 'CPU_HAS_DEBUG_CORE = 0' if no debug core is found in the system. + none + false + none + + + hal.make.ignore_system_derived.big_endian + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query if SOPC system is big endian. If true ignores export of 'ALT_CFLAGS += -EB' to public.mk if big endian system. If true ignores export of 'ALT_CFLAGS += -EL' if little endian system. + none + false + none + + + hal.make.ignore_system_derived.hardware_fp_cust_inst_divider_present + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query if SOPC system floating point custom instruction with a divider is present. If true ignores export of 'ALT_CFLAGS += -mcustom-fpu-cfg=60-2' and 'ALT_LDFLAGS += -mcustom-fpu-cfg=60-2' to public.mk if the custom instruction is found in the system. + none + false + none + + + hal.make.ignore_system_derived.hardware_fp_cust_inst_no_divider_present + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query if SOPC system floating point custom instruction without a divider is present. If true ignores export of 'ALT_CFLAGS += -mcustom-fpu-cfg=60-1' and 'ALT_LDFLAGS += -mcustom-fpu-cfg=60-1' to public.mk if the custom instruction is found in the system. + none + false + none + + + hal.enable_exit + ALT_NO_EXIT + Boolean + 1 + 1 + public_mk_define + Add exit() support. This option increases code footprint if your "main()" routine does "return" or call "exit()". If false, adds -DALT_NO_EXIT to ALT_CPPFLAGS in public.mk, and reduces footprint + none + false + none + + + hal.enable_small_c_library + NONE + Boolean + 0 + 0 + public_mk_define + Causes the small newlib (C library) to be used. This reduces code and data footprint at the expense of reduced functionality. Several newlib features are removed such as floating-point support in printf(), stdin input routines, and buffered I/O. The small C library is not compatible with Micrium MicroC/OS-II. If true, adds -msmallc to ALT_LDFLAGS in public.mk. + none + false + common + + + hal.enable_clean_exit + ALT_NO_CLEAN_EXIT + Boolean + 1 + 1 + public_mk_define + When your application exits, close file descriptors, call C++ destructors, etc. Code footprint can be reduced by disabling clean exit. If disabled, adds -DALT_NO_CLEAN_EXIT to ALT_CPPFLAGS and -Wl,--defsym, exit=_exit to ALT_LDFLAGS in public.mk. + none + false + none + + + hal.enable_runtime_stack_checking + ALT_STACK_CHECK + Boolean + 0 + 0 + public_mk_define + Turns on HAL runtime stack checking feature. Enabling this setting causes additional code to be placed into each subroutine call to generate an exception if a stack collision occurs with the heap or statically allocated data. If true, adds -DALT_STACK_CHECK and -mstack-check to ALT_CPPFLAGS in public.mk. + none + false + none + + + hal.enable_gprof + ALT_PROVIDE_GMON + Boolean + 0 + 0 + public_mk_define + Causes code to be compiled with gprof profiling enabled and the application ELF to be linked with the GPROF library. If true, adds -DALT_PROVIDE_GMON to ALT_CPPFLAGS and -pg to ALT_CFLAGS in public.mk. + none + false + common + + + hal.enable_c_plus_plus + ALT_NO_C_PLUS_PLUS + Boolean + 1 + 1 + public_mk_define + Enable support for a subset of the C++ language. This option increases code footprint by adding support for C++ constructors. Certain features, such as multiple inheritance and exceptions are not supported. If false, adds -DALT_NO_C_PLUS_PLUS to ALT_CPPFLAGS in public.mk, and reduces code footprint. + none + false + none + + + hal.enable_reduced_device_drivers + ALT_USE_SMALL_DRIVERS + Boolean + 0 + 0 + public_mk_define + Certain drivers are compiled with reduced functionality to reduce code footprint. Not all drivers observe this setting. The altera_avalon_uart and altera_avalon_jtag_uart drivers switch from interrupt-driven to polled operation. CAUTION: Several device drivers are disabled entirely. These include the altera_avalon_cfi_flash, altera_avalon_epcs_flash_controller, and altera_avalon_lcd_16207 drivers. This can result in certain API (HAL flash access routines) to fail. You can define a symbol provided by each driver to prevent it from being removed. If true, adds -DALT_USE_SMALL_DRIVERS to ALT_CPPFLAGS in public.mk. + none + false + common + + + hal.enable_lightweight_device_driver_api + ALT_USE_DIRECT_DRIVERS + Boolean + 0 + 0 + public_mk_define + Enables lightweight device driver API. This reduces code and data footprint by removing the HAL layer that maps device names (e.g. /dev/uart0) to file descriptors. Instead, driver routines are called directly. The open(), close(), and lseek() routines will always fail if called. The read(), write(), fstat(), ioctl(), and isatty() routines only work for the stdio devices. If true, adds -DALT_USE_DIRECT_DRIVERS to ALT_CPPFLAGS in public.mk. + The Altera Host and read-only ZIP file systems can't be used if hal.enable_lightweight_device_driver_api is true. + false + none + + + hal.enable_mul_div_emulation + ALT_NO_INSTRUCTION_EMULATION + Boolean + 0 + 0 + public_mk_define + Adds code to emulate multiply and divide instructions in case they are executed but aren't present in the CPU. Normally this isn't required because the compiler won't use multiply and divide instructions that aren't present in the CPU. If false, adds -DALT_NO_INSTRUCTION_EMULATION to ALT_CPPFLAGS in public.mk. + none + false + none + + + hal.enable_sim_optimize + ALT_SIM_OPTIMIZE + Boolean + 0 + 0 + public_mk_define + The BSP is compiled with optimizations to speedup HDL simulation such as initializing the cache, clearing the .bss section, and skipping long delay loops. If true, adds -DALT_SIM_OPTIMIZE to ALT_CPPFLAGS in public.mk. + When this setting is true, the BSP shouldn't be used to build applications that are expected to run real hardware. + false + common + + + hal.enable_sopc_sysid_check + NONE + Boolean + 1 + 1 + public_mk_define + Enable SOPC Builder System ID. If a System ID SOPC Builder component is connected to the CPU associated with this BSP, it will be enabled in the creation of command-line arguments to download an ELF to the target. Otherwise, system ID and timestamp values are left out of public.mk for application Makefile "download-elf" target definition. With the system ID check disabled, the Nios II EDS tools will not automatically ensure that the application .elf file (and BSP it is linked against) corresponds to the hardware design on the target. If false, adds --accept-bad-sysid to SOPC_SYSID_FLAG in public.mk. + none + false + none + + + hal.custom_newlib_flags + CUSTOM_NEWLIB_FLAGS + UnquotedString + none + none + public_mk_define + Build a custom version of newlib with the specified space-separated compiler flags. + The custom newlib build will be placed in the &lt;bsp root>/newlib directory, and will be used only for applications that utilize this BSP. + false + none + + + hal.log_flags + ALT_LOG_FLAGS + DecimalNumber + 0 + 0 + public_mk_define + The value is assigned to ALT_LOG_FLAGS in the generated public.mk. See hal.log_port setting description. Values can be -1 through 3. + hal.log_port must be set for this to be used. + false + none + + + altera_avalon_jtag_uart_driver.enable_small_driver + ALTERA_AVALON_JTAG_UART_SMALL + BooleanDefineOnly + false + false + public_mk_define + Small-footprint (polled mode) driver + none + false + + + + altera_avalon_jtag_uart_driver.enable_jtag_uart_ignore_fifo_full_error + ALTERA_AVALON_JTAG_UART_IGNORE_FIFO_FULL_ERROR + BooleanDefineOnly + false + false + public_mk_define + Enable JTAG UART driver to recover when host is inactive causing buffer to full without returning error. Printf will not fail with this recovery. + none + false + + + + onchip_memory + 0x00000000 - 0x00031FFF + 204800 + memory + + + lcd_on + 0x00041010 - 0x0004101F + 16 + + + + lcd_blon + 0x00041020 - 0x0004102F + 16 + + + + lcd_16207_0 + 0x00041030 - 0x0004103F + 16 + printable + + + hex7 + 0x00041040 - 0x0004104F + 16 + + + + hex6 + 0x00041050 - 0x0004105F + 16 + + + + hex5 + 0x00041060 - 0x0004106F + 16 + + + + hex4 + 0x00041070 - 0x0004107F + 16 + + + + hex3 + 0x00041080 - 0x0004108F + 16 + + + + hex2 + 0x00041090 - 0x0004109F + 16 + + + + hex1 + 0x000410A0 - 0x000410AF + 16 + + + + hex0 + 0x000410B0 - 0x000410BF + 16 + + + + push_switches + 0x000410C0 - 0x000410CF + 16 + + + + switches + 0x000410D0 - 0x000410DF + 16 + + + + LEDRs + 0x000410E0 - 0x000410EF + 16 + + + + LEDs + 0x000410F0 - 0x000410FF + 16 + + + + jtag_uart + 0x00041100 - 0x00041107 + 8 + printable + + + .text + onchip_memory + + + .rodata + onchip_memory + + + .rwdata + onchip_memory + + + .bss + onchip_memory + + + .heap + onchip_memory + + + .stack + onchip_memory + + \ No newline at end of file diff --git a/software/qsys_tutorial_lcd3_bsp/summary.html b/software/qsys_tutorial_lcd3_bsp/summary.html new file mode 100644 index 0000000..ef2ea68 --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/summary.html @@ -0,0 +1,2047 @@ + +Altera Nios II BSP Summary + +

BSP Description

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
BSP Type:hal
SOPC Design File:C:\Users\takayun\Documents\DE2-115\qsys_tutorial\nios_system.sopcinfo
Quartus JDI File:default
CPU:nios2_processor
BSP Settings File:.\settings.bsp
BSP Version:default
BSP Generated On:2016/12/02 1:06:41
BSP Generated Timestamp:1480608401552
BSP Generated Location:C:\Users\takayun\Documents\DE2-115\qsys_tutorial\software\qsys_tutorial_lcd3_bsp
+
+

Nios II Memory Map

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Slave DescriptorAddress RangeSizeAttributes
jtag_uart0x00041100 - 0x000411078printable
LEDs0x000410F0 - 0x000410FF16 
LEDRs0x000410E0 - 0x000410EF16 
switches0x000410D0 - 0x000410DF16 
push_switches0x000410C0 - 0x000410CF16 
hex00x000410B0 - 0x000410BF16 
hex10x000410A0 - 0x000410AF16 
hex20x00041090 - 0x0004109F16 
hex30x00041080 - 0x0004108F16 
hex40x00041070 - 0x0004107F16 
hex50x00041060 - 0x0004106F16 
hex60x00041050 - 0x0004105F16 
hex70x00041040 - 0x0004104F16 
lcd_16207_00x00041030 - 0x0004103F16printable
lcd_blon0x00041020 - 0x0004102F16 
lcd_on0x00041010 - 0x0004101F16 
onchip_memory0x00000000 - 0x00031FFF204800memory
+
+
+

Linker Regions

+ + + + +
RegionAddress RangeSizeMemoryOffset
+
+
+

Linker Section Mappings

+ + + + + + + + + + + + + + + + + + + + + + +
SectionRegion
.textonchip_memory
.rodataonchip_memory
.rwdataonchip_memory
.bssonchip_memory
.heaponchip_memory
.stackonchip_memory
+

Settings

+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:altera_avalon_jtag_uart_driver.enable_jtag_uart_ignore_fifo_full_error
Identifier:ALTERA_AVALON_JTAG_UART_IGNORE_FIFO_FULL_ERROR
Default Value:false
Value:false
Type:BooleanDefineOnly
Destination:public_mk_define
Description:Enable JTAG UART driver to recover when host is inactive causing buffer to full without returning error. Printf will not fail with this recovery.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:altera_avalon_jtag_uart_driver.enable_small_driver
Identifier:ALTERA_AVALON_JTAG_UART_SMALL
Default Value:false
Value:false
Type:BooleanDefineOnly
Destination:public_mk_define
Description:Small-footprint (polled mode) driver
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.custom_newlib_flags
Identifier:CUSTOM_NEWLIB_FLAGS
Default Value:none
Value:none
Type:UnquotedString
Destination:public_mk_define
Description:Build a custom version of newlib with the specified space-separated compiler flags.
Restrictions:The custom newlib build will be placed in the &lt;bsp root>/newlib directory, and will be used only for applications that utilize this BSP.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_c_plus_plus
Identifier:ALT_NO_C_PLUS_PLUS
Default Value:1
Value:1
Type:Boolean
Destination:public_mk_define
Description:Enable support for a subset of the C++ language. This option increases code footprint by adding support for C++ constructors. Certain features, such as multiple inheritance and exceptions are not supported. If false, adds -DALT_NO_C_PLUS_PLUS to ALT_CPPFLAGS in public.mk, and reduces code footprint.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_clean_exit
Identifier:ALT_NO_CLEAN_EXIT
Default Value:1
Value:1
Type:Boolean
Destination:public_mk_define
Description:When your application exits, close file descriptors, call C++ destructors, etc. Code footprint can be reduced by disabling clean exit. If disabled, adds -DALT_NO_CLEAN_EXIT to ALT_CPPFLAGS and -Wl,--defsym, exit=_exit to ALT_LDFLAGS in public.mk.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_exit
Identifier:ALT_NO_EXIT
Default Value:1
Value:1
Type:Boolean
Destination:public_mk_define
Description:Add exit() support. This option increases code footprint if your "main()" routine does "return" or call "exit()". If false, adds -DALT_NO_EXIT to ALT_CPPFLAGS in public.mk, and reduces footprint
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_gprof
Identifier:ALT_PROVIDE_GMON
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Causes code to be compiled with gprof profiling enabled and the application ELF to be linked with the GPROF library. If true, adds -DALT_PROVIDE_GMON to ALT_CPPFLAGS and -pg to ALT_CFLAGS in public.mk.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_instruction_related_exceptions_api
Identifier:ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API
Default Value:false
Value:false
Type:BooleanDefineOnly
Destination:system_h_define
Description:Enables API for registering handlers to service instruction-related exceptions. Enabling this setting increases the size of the exception entry code.
Restrictions:These exception types can be generated if various processor options are enabled, such as the MMU, MPU, or other advanced exception types.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_lightweight_device_driver_api
Identifier:ALT_USE_DIRECT_DRIVERS
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enables lightweight device driver API. This reduces code and data footprint by removing the HAL layer that maps device names (e.g. /dev/uart0) to file descriptors. Instead, driver routines are called directly. The open(), close(), and lseek() routines will always fail if called. The read(), write(), fstat(), ioctl(), and isatty() routines only work for the stdio devices. If true, adds -DALT_USE_DIRECT_DRIVERS to ALT_CPPFLAGS in public.mk.
Restrictions:The Altera Host and read-only ZIP file systems can't be used if hal.enable_lightweight_device_driver_api is true.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_mul_div_emulation
Identifier:ALT_NO_INSTRUCTION_EMULATION
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Adds code to emulate multiply and divide instructions in case they are executed but aren't present in the CPU. Normally this isn't required because the compiler won't use multiply and divide instructions that aren't present in the CPU. If false, adds -DALT_NO_INSTRUCTION_EMULATION to ALT_CPPFLAGS in public.mk.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_reduced_device_drivers
Identifier:ALT_USE_SMALL_DRIVERS
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Certain drivers are compiled with reduced functionality to reduce code footprint. Not all drivers observe this setting. The altera_avalon_uart and altera_avalon_jtag_uart drivers switch from interrupt-driven to polled operation. CAUTION: Several device drivers are disabled entirely. These include the altera_avalon_cfi_flash, altera_avalon_epcs_flash_controller, and altera_avalon_lcd_16207 drivers. This can result in certain API (HAL flash access routines) to fail. You can define a symbol provided by each driver to prevent it from being removed. If true, adds -DALT_USE_SMALL_DRIVERS to ALT_CPPFLAGS in public.mk.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_runtime_stack_checking
Identifier:ALT_STACK_CHECK
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Turns on HAL runtime stack checking feature. Enabling this setting causes additional code to be placed into each subroutine call to generate an exception if a stack collision occurs with the heap or statically allocated data. If true, adds -DALT_STACK_CHECK and -mstack-check to ALT_CPPFLAGS in public.mk.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_sim_optimize
Identifier:ALT_SIM_OPTIMIZE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:The BSP is compiled with optimizations to speedup HDL simulation such as initializing the cache, clearing the .bss section, and skipping long delay loops. If true, adds -DALT_SIM_OPTIMIZE to ALT_CPPFLAGS in public.mk.
Restrictions:When this setting is true, the BSP shouldn't be used to build applications that are expected to run real hardware.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_small_c_library
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Causes the small newlib (C library) to be used. This reduces code and data footprint at the expense of reduced functionality. Several newlib features are removed such as floating-point support in printf(), stdin input routines, and buffered I/O. The small C library is not compatible with Micrium MicroC/OS-II. If true, adds -msmallc to ALT_LDFLAGS in public.mk.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_sopc_sysid_check
Identifier:NONE
Default Value:1
Value:1
Type:Boolean
Destination:public_mk_define
Description:Enable SOPC Builder System ID. If a System ID SOPC Builder component is connected to the CPU associated with this BSP, it will be enabled in the creation of command-line arguments to download an ELF to the target. Otherwise, system ID and timestamp values are left out of public.mk for application Makefile "download-elf" target definition. With the system ID check disabled, the Nios II EDS tools will not automatically ensure that the application .elf file (and BSP it is linked against) corresponds to the hardware design on the target. If false, adds --accept-bad-sysid to SOPC_SYSID_FLAG in public.mk.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.linker.allow_code_at_reset
Identifier:ALT_ALLOW_CODE_AT_RESET
Default Value:0
Value:1
Type:Boolean
Destination:none
Description:Indicates if initialization code is allowed at the reset address. If true, defines the macro ALT_ALLOW_CODE_AT_RESET in linker.h.
Restrictions:If true, defines the macro ALT_ALLOW_CODE_AT_RESET in linker.h. This setting is typically false if an external bootloader (e.g. flash bootloader) is present.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.linker.enable_alt_load
Identifier:NONE
Default Value:0
Value:1
Type:Boolean
Destination:none
Description:Enables the alt_load() facility. The alt_load() facility copies sections from the .text memory into RAM. If true, this setting sets up the VMA/LMA of sections in linker.x to allow them to be loaded into the .text memory.
Restrictions:This setting is typically false if an external bootloader (e.g. flash bootloader) is present.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.linker.enable_alt_load_copy_exceptions
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:none
Description:Causes the alt_load() facility to copy the .exceptions section. If true, this setting defines the macro ALT_LOAD_COPY_EXCEPTIONS in linker.h.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.linker.enable_alt_load_copy_rodata
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:none
Description:Causes the alt_load() facility to copy the .rodata section. If true, this setting defines the macro ALT_LOAD_COPY_RODATA in linker.h.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.linker.enable_alt_load_copy_rwdata
Identifier:NONE
Default Value:0
Value:1
Type:Boolean
Destination:none
Description:Causes the alt_load() facility to copy the .rwdata section. If true, this setting defines the macro ALT_LOAD_COPY_RWDATA in linker.h.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.linker.enable_exception_stack
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:none
Description:Enables use of a separate exception stack. If true, defines the macro ALT_EXCEPTION_STACK in linker.h, adds a memory region called exception_stack to linker.x, and provides the symbols __alt_exception_stack_pointer and __alt_exception_stack_limit in linker.x.
Restrictions:The hal.linker.exception_stack_size and hal.linker.exception_stack_memory_region_name settings must also be valid. This setting must be false for MicroC/OS-II BSPs. The exception stack can be used to improve interrupt and other exception performance if the EIC is *not* used.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.linker.enable_interrupt_stack
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:none
Description:Enables use of a separate interrupt stack. If true, defines the macro ALT_INTERRUPT_STACK in linker.h, adds a memory region called interrupt_stack to linker.x, and provides the symbols __alt_interrupt_stack_pointer and __alt_interrupt_stack_limit in linker.x.
Restrictions:The hal.linker.interrupt_stack_size and hal.linker.interrupt_stack_memory_region_name settings must also be valid. This setting must be false for MicroC/OS-II BSPs. Only enable if the EIC is used exclusively. The exception stack can be used to improve interrupt and other exception performance if the EIC is *not* used.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.linker.exception_stack_memory_region_name
Identifier:NONE
Default Value:none
Value:onchip_memory
Type:UnquotedString
Destination:none
Description:Name of the existing memory region that will be divided up to create the 'exception_stack' memory region. The selected region name will be adjusted automatically when the BSP is generated to create the 'exception_stack' memory region.
Restrictions:Only used if hal.linker.enable_exception_stack is true.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.linker.exception_stack_size
Identifier:NONE
Default Value:1024
Value:1024
Type:DecimalNumber
Destination:none
Description:Size of the exception stack in bytes.
Restrictions:Only used if hal.linker.enable_exception_stack is true.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.linker.interrupt_stack_memory_region_name
Identifier:NONE
Default Value:none
Value:onchip_memory
Type:UnquotedString
Destination:none
Description:Name of the existing memory region that will be divided up to create the 'interrupt_stack' memory region. The selected region name will be adjusted automatically when the BSP is generated to create the 'interrupt_stack' memory region.
Restrictions:Only used if hal.linker.enable_interrupt_stack is true.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.linker.interrupt_stack_size
Identifier:NONE
Default Value:1024
Value:1024
Type:DecimalNumber
Destination:none
Description:Size of the interrupt stack in bytes.
Restrictions:Only used if hal.linker.enable_interrupt_stack is true.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.log_flags
Identifier:ALT_LOG_FLAGS
Default Value:0
Value:0
Type:DecimalNumber
Destination:public_mk_define
Description:The value is assigned to ALT_LOG_FLAGS in the generated public.mk. See hal.log_port setting description. Values can be -1 through 3.
Restrictions:hal.log_port must be set for this to be used.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.log_port
Identifier:NONE
Default Value:none
Value:none
Type:UnquotedString
Destination:public_mk_define
Description:Slave descriptor of debug logging character-mode device. If defined, it enables extra debug messages in the HAL source. This setting is used by the ALT_LOG_PORT family of defines in system.h.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ar
Identifier:AR
Default Value:nios2-elf-ar
Value:nios2-elf-ar
Type:UnquotedString
Destination:makefile_variable
Description:Archiver command. Creates library files.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ar_post_process
Identifier:AR_POST_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed after archiver execution.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ar_pre_process
Identifier:AR_PRE_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed before archiver execution.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.as
Identifier:AS
Default Value:nios2-elf-gcc
Value:nios2-elf-gcc
Type:UnquotedString
Destination:makefile_variable
Description:Assembler command. Note that CC is used for .S files.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.as_post_process
Identifier:AS_POST_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed after each assembly file is compiled.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.as_pre_process
Identifier:AS_PRE_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed before each assembly file is compiled.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.bsp_arflags
Identifier:BSP_ARFLAGS
Default Value:-src
Value:-src
Type:UnquotedString
Destination:makefile_variable
Description:Custom flags only passed to the archiver. This content of this variable is directly passed to the archiver rather than the more standard "ARFLAGS". The reason for this is that GNU Make assumes some default content in ARFLAGS. This setting defines the value of BSP_ARFLAGS in Makefile.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.bsp_asflags
Identifier:BSP_ASFLAGS
Default Value:-Wa,-gdwarf2
Value:-Wa,-gdwarf2
Type:UnquotedString
Destination:makefile_variable
Description:Custom flags only passed to the assembler. This setting defines the value of BSP_ASFLAGS in Makefile.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.bsp_cflags_debug
Identifier:BSP_CFLAGS_DEBUG
Default Value:-g
Value:-g
Type:UnquotedString
Destination:makefile_variable
Description:C/C++ compiler debug level. '-g' provides the default set of debug symbols typically required to debug a typical application. Omitting '-g' removes debug symbols from the ELF. This setting defines the value of BSP_CFLAGS_DEBUG in Makefile.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.bsp_cflags_defined_symbols
Identifier:BSP_CFLAGS_DEFINED_SYMBOLS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Preprocessor macros to define. A macro definition in this setting has the same effect as a "#define" in source code. Adding "-DALT_DEBUG" to this setting has the same effect as "#define ALT_DEBUG" in a souce file. Adding "-DFOO=1" to this setting is equivalent to the macro "#define FOO 1" in a source file. Macros defined with this setting are applied to all .S, .c, and C++ files in the BSP. This setting defines the value of BSP_CFLAGS_DEFINED_SYMBOLS in the BSP Makefile.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.bsp_cflags_optimization
Identifier:BSP_CFLAGS_OPTIMIZATION
Default Value:-O0
Value:-O0
Type:UnquotedString
Destination:makefile_variable
Description:C/C++ compiler optimization level. "-O0" = no optimization,"-O2" = "normal" optimization, etc. "-O0" is recommended for code that you want to debug since compiler optimization can remove variables and produce non-sequential execution of code while debugging. This setting defines the value of BSP_CFLAGS_OPTIMIZATION in Makefile.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.bsp_cflags_undefined_symbols
Identifier:BSP_CFLAGS_UNDEFINED_SYMBOLS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Preprocessor macros to undefine. Undefined macros are similar to defined macros, but replicate the "#undef" directive in source code. To undefine the macro FOO use the syntax "-u FOO" in this setting. This is equivalent to "#undef FOO" in a source file. Note: the syntax differs from macro definition (there is a space, i.e. "-u FOO" versus "-DFOO"). Macros defined with this setting are applied to all .S, .c, and C++ files in the BSP. This setting defines the value of BSP_CFLAGS_UNDEFINED_SYMBOLS in the BSP Makefile.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.bsp_cflags_user_flags
Identifier:BSP_CFLAGS_USER_FLAGS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Custom flags passed to the compiler when compiling C, C++, and .S files. This setting defines the value of BSP_CFLAGS_USER_FLAGS in Makefile.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.bsp_cflags_warnings
Identifier:BSP_CFLAGS_WARNINGS
Default Value:-Wall
Value:-Wall
Type:UnquotedString
Destination:makefile_variable
Description:C/C++ compiler warning level. "-Wall" is commonly used.This setting defines the value of BSP_CFLAGS_WARNINGS in Makefile.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.bsp_cxx_flags
Identifier:BSP_CXXFLAGS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Custom flags only passed to the C++ compiler. This setting defines the value of BSP_CXXFLAGS in Makefile.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.bsp_inc_dirs
Identifier:BSP_INC_DIRS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Space separated list of extra include directories to scan for header files. Directories are relative to the top-level BSP directory. The -I prefix's added by the makefile so don't add it here. This setting defines the value of BSP_INC_DIRS in Makefile.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.build_post_process
Identifier:BUILD_POST_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed after BSP built.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.build_pre_process
Identifier:BUILD_PRE_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed before BSP built.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.cc
Identifier:CC
Default Value:nios2-elf-gcc -xc
Value:nios2-elf-gcc -xc
Type:UnquotedString
Destination:makefile_variable
Description:C compiler command.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.cc_post_process
Identifier:CC_POST_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed after each .c/.S file is compiled.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.cc_pre_process
Identifier:CC_PRE_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed before each .c/.S file is compiled.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.cxx
Identifier:CXX
Default Value:nios2-elf-gcc -xc++
Value:nios2-elf-gcc -xc++
Type:UnquotedString
Destination:makefile_variable
Description:C++ compiler command.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.cxx_post_process
Identifier:CXX_POST_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed before each C++ file is compiled.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.cxx_pre_process
Identifier:CXX_PRE_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed before each C++ file is compiled.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.big_endian
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query if SOPC system is big endian. If true ignores export of 'ALT_CFLAGS += -EB' to public.mk if big endian system. If true ignores export of 'ALT_CFLAGS += -EL' if little endian system.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.debug_core_present
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query if SOPC system has a debug core present. If true ignores export of 'CPU_HAS_DEBUG_CORE = 1' to public.mk if a debug core is found in the system. If true ignores export of 'CPU_HAS_DEBUG_CORE = 0' if no debug core is found in the system.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.fpu_present
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query if SOPC system has FPU present. If true ignores export of 'ALT_CFLAGS += -mhard-float' to public.mk if FPU is found in the system. If true ignores export of 'ALT_CFLAGS += -mhard-soft' if FPU is not found in the system.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.hardware_divide_present
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query if SOPC system has hardware divide present. If true ignores export of 'ALT_CFLAGS += -mno-hw-div' to public.mk if no division is found in system. If true ignores export of 'ALT_CFLAGS += -mhw-div' if division is found in the system.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.hardware_fp_cust_inst_divider_present
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query if SOPC system floating point custom instruction with a divider is present. If true ignores export of 'ALT_CFLAGS += -mcustom-fpu-cfg=60-2' and 'ALT_LDFLAGS += -mcustom-fpu-cfg=60-2' to public.mk if the custom instruction is found in the system.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.hardware_fp_cust_inst_no_divider_present
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query if SOPC system floating point custom instruction without a divider is present. If true ignores export of 'ALT_CFLAGS += -mcustom-fpu-cfg=60-1' and 'ALT_LDFLAGS += -mcustom-fpu-cfg=60-1' to public.mk if the custom instruction is found in the system.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.hardware_multiplier_present
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query if SOPC system has multiplier present. If true ignores export of 'ALT_CFLAGS += -mno-hw-mul' to public.mk if no multiplier is found in the system. If true ignores export of 'ALT_CFLAGS += -mhw-mul' if multiplier is found in the system.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.hardware_mulx_present
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query if SOPC system has hardware mulx present. If true ignores export of 'ALT_CFLAGS += -mno-hw-mulx' to public.mk if no mulx is found in the system. If true ignores export of 'ALT_CFLAGS += -mhw-mulx' if mulx is found in the system.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.sopc_simulation_enabled
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query if SOPC system has simulation enabled. If true ignores export of 'ELF_PATCH_FLAG += --simulation_enabled' to public.mk.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.sopc_system_base_address
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query SOPC system for system ID base address. If true ignores export of 'SOPC_SYSID_FLAG += --sidp=<address>' and 'ELF_PATCH_FLAG += --sidp=<address>' to public.mk.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.sopc_system_id
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query SOPC system for system ID. If true ignores export of 'SOPC_SYSID_FLAG += --id=<sysid>' and 'ELF_PATCH_FLAG += --id=<sysid>' to public.mk.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.sopc_system_timestamp
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query SOPC system for system timestamp. If true ignores export of 'SOPC_SYSID_FLAG += --timestamp=<timestamp>' and 'ELF_PATCH_FLAG += --timestamp=<timestamp>' to public.mk.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.rm
Identifier:RM
Default Value:rm -f
Value:rm -f
Type:UnquotedString
Destination:makefile_variable
Description:Command used to remove files during 'clean' target.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.max_file_descriptors
Identifier:ALT_MAX_FD
Default Value:32
Value:32
Type:DecimalNumber
Destination:system_h_define
Description:Determines the number of file descriptors statically allocated. This setting defines the value of ALT_MAX_FD in system.h.
Restrictions:If hal.enable_lightweight_device_driver_api is true, there are no file descriptors so this setting is ignored. If hal.enable_lightweight_device_driver_api is false, this setting must be at least 4 because HAL needs a file descriptor for /dev/null, /dev/stdin, /dev/stdout, and /dev/stderr.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.stderr
Identifier:NONE
Default Value:none
Value:jtag_uart
Type:UnquotedString
Destination:system_h_define
Description:Slave descriptor of STDERR character-mode device. This setting is used by the ALT_STDERR family of defines in system.h.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.stdin
Identifier:NONE
Default Value:none
Value:jtag_uart
Type:UnquotedString
Destination:system_h_define
Description:Slave descriptor of STDIN character-mode device. This setting is used by the ALT_STDIN family of defines in system.h.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.stdout
Identifier:NONE
Default Value:none
Value:jtag_uart
Type:UnquotedString
Destination:system_h_define
Description:Slave descriptor of STDOUT character-mode device. This setting is used by the ALT_STDOUT family of defines in system.h.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.sys_clk_timer
Identifier:ALT_SYS_CLK
Default Value:none
Value:none
Type:UnquotedString
Destination:system_h_define
Description:Slave descriptor of the system clock timer device. This device provides a periodic interrupt ("tick") and is typically required for RTOS use. This setting defines the value of ALT_SYS_CLK in system.h.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.timestamp_timer
Identifier:ALT_TIMESTAMP_CLK
Default Value:none
Value:none
Type:UnquotedString
Destination:system_h_define
Description:Slave descriptor of timestamp timer device. This device is used by Altera HAL timestamp drivers for high-resolution time measurement. This setting defines the value of ALT_TIMESTAMP_CLK in system.h.
Restrictions:none
+
+
+
+ + diff --git a/software/qsys_tutorial_lcd3_bsp/system.h b/software/qsys_tutorial_lcd3_bsp/system.h new file mode 100644 index 0000000..c6d28dc --- /dev/null +++ b/software/qsys_tutorial_lcd3_bsp/system.h @@ -0,0 +1,617 @@ +/* + * system.h - SOPC Builder system and BSP software package information + * + * Machine generated for CPU 'nios2_processor' in SOPC Builder design 'nios_system' + * SOPC Builder design path: C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.sopcinfo + * + * Generated: Fri Dec 02 01:06:42 JST 2016 + */ + +/* + * DO NOT MODIFY THIS FILE + * + * Changing this file will have subtle consequences + * which will almost certainly lead to a nonfunctioning + * system. If you do modify this file, be aware that your + * changes will be overwritten and lost when this file + * is generated again. + * + * DO NOT MODIFY THIS FILE + */ + +/* + * License Agreement + * + * Copyright (c) 2008 + * Altera Corporation, San Jose, California, USA. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + * This agreement shall be governed in all respects by the laws of the State + * of California and by the laws of the United States of America. + */ + +#ifndef __SYSTEM_H_ +#define __SYSTEM_H_ + +/* Include definitions from linker script generator */ +#include "linker.h" + + +/* + * CPU configuration + * + */ + +#define ALT_CPU_ARCHITECTURE "altera_nios2_qsys" +#define ALT_CPU_BIG_ENDIAN 0 +#define ALT_CPU_BREAK_ADDR 0x40820 +#define ALT_CPU_CPU_FREQ 50000000u +#define ALT_CPU_CPU_ID_SIZE 1 +#define ALT_CPU_CPU_ID_VALUE 0x00000000 +#define ALT_CPU_CPU_IMPLEMENTATION "tiny" +#define ALT_CPU_DATA_ADDR_WIDTH 0x13 +#define ALT_CPU_DCACHE_LINE_SIZE 0 +#define ALT_CPU_DCACHE_LINE_SIZE_LOG2 0 +#define ALT_CPU_DCACHE_SIZE 0 +#define ALT_CPU_EXCEPTION_ADDR 0x20 +#define ALT_CPU_FLUSHDA_SUPPORTED +#define ALT_CPU_FREQ 50000000 +#define ALT_CPU_HARDWARE_DIVIDE_PRESENT 0 +#define ALT_CPU_HARDWARE_MULTIPLY_PRESENT 0 +#define ALT_CPU_HARDWARE_MULX_PRESENT 0 +#define ALT_CPU_HAS_DEBUG_CORE 1 +#define ALT_CPU_HAS_DEBUG_STUB +#define ALT_CPU_HAS_JMPI_INSTRUCTION +#define ALT_CPU_ICACHE_LINE_SIZE 0 +#define ALT_CPU_ICACHE_LINE_SIZE_LOG2 0 +#define ALT_CPU_ICACHE_SIZE 0 +#define ALT_CPU_INST_ADDR_WIDTH 0x13 +#define ALT_CPU_NAME "nios2_processor" +#define ALT_CPU_RESET_ADDR 0x0 + + +/* + * CPU configuration (with legacy prefix - don't use these anymore) + * + */ + +#define NIOS2_BIG_ENDIAN 0 +#define NIOS2_BREAK_ADDR 0x40820 +#define NIOS2_CPU_FREQ 50000000u +#define NIOS2_CPU_ID_SIZE 1 +#define NIOS2_CPU_ID_VALUE 0x00000000 +#define NIOS2_CPU_IMPLEMENTATION "tiny" +#define NIOS2_DATA_ADDR_WIDTH 0x13 +#define NIOS2_DCACHE_LINE_SIZE 0 +#define NIOS2_DCACHE_LINE_SIZE_LOG2 0 +#define NIOS2_DCACHE_SIZE 0 +#define NIOS2_EXCEPTION_ADDR 0x20 +#define NIOS2_FLUSHDA_SUPPORTED +#define NIOS2_HARDWARE_DIVIDE_PRESENT 0 +#define NIOS2_HARDWARE_MULTIPLY_PRESENT 0 +#define NIOS2_HARDWARE_MULX_PRESENT 0 +#define NIOS2_HAS_DEBUG_CORE 1 +#define NIOS2_HAS_DEBUG_STUB +#define NIOS2_HAS_JMPI_INSTRUCTION +#define NIOS2_ICACHE_LINE_SIZE 0 +#define NIOS2_ICACHE_LINE_SIZE_LOG2 0 +#define NIOS2_ICACHE_SIZE 0 +#define NIOS2_INST_ADDR_WIDTH 0x13 +#define NIOS2_RESET_ADDR 0x0 + + +/* + * Define for each module class mastered by the CPU + * + */ + +#define __ALTERA_AVALON_JTAG_UART +#define __ALTERA_AVALON_LCD_16207 +#define __ALTERA_AVALON_ONCHIP_MEMORY2 +#define __ALTERA_AVALON_PIO +#define __ALTERA_NIOS2_QSYS + + +/* + * LEDRs configuration + * + */ + +#define ALT_MODULE_CLASS_LEDRs altera_avalon_pio +#define LEDRS_BASE 0x410e0 +#define LEDRS_BIT_CLEARING_EDGE_REGISTER 0 +#define LEDRS_BIT_MODIFYING_OUTPUT_REGISTER 0 +#define LEDRS_CAPTURE 0 +#define LEDRS_DATA_WIDTH 18 +#define LEDRS_DO_TEST_BENCH_WIRING 0 +#define LEDRS_DRIVEN_SIM_VALUE 0 +#define LEDRS_EDGE_TYPE "NONE" +#define LEDRS_FREQ 50000000 +#define LEDRS_HAS_IN 0 +#define LEDRS_HAS_OUT 1 +#define LEDRS_HAS_TRI 0 +#define LEDRS_IRQ -1 +#define LEDRS_IRQ_INTERRUPT_CONTROLLER_ID -1 +#define LEDRS_IRQ_TYPE "NONE" +#define LEDRS_NAME "/dev/LEDRs" +#define LEDRS_RESET_VALUE 0 +#define LEDRS_SPAN 16 +#define LEDRS_TYPE "altera_avalon_pio" + + +/* + * LEDs configuration + * + */ + +#define ALT_MODULE_CLASS_LEDs altera_avalon_pio +#define LEDS_BASE 0x410f0 +#define LEDS_BIT_CLEARING_EDGE_REGISTER 0 +#define LEDS_BIT_MODIFYING_OUTPUT_REGISTER 0 +#define LEDS_CAPTURE 0 +#define LEDS_DATA_WIDTH 8 +#define LEDS_DO_TEST_BENCH_WIRING 0 +#define LEDS_DRIVEN_SIM_VALUE 0 +#define LEDS_EDGE_TYPE "NONE" +#define LEDS_FREQ 50000000 +#define LEDS_HAS_IN 0 +#define LEDS_HAS_OUT 1 +#define LEDS_HAS_TRI 0 +#define LEDS_IRQ -1 +#define LEDS_IRQ_INTERRUPT_CONTROLLER_ID -1 +#define LEDS_IRQ_TYPE "NONE" +#define LEDS_NAME "/dev/LEDs" +#define LEDS_RESET_VALUE 0 +#define LEDS_SPAN 16 +#define LEDS_TYPE "altera_avalon_pio" + + +/* + * System configuration + * + */ + +#define ALT_DEVICE_FAMILY "Cyclone IV E" +#define ALT_ENHANCED_INTERRUPT_API_PRESENT +#define ALT_IRQ_BASE NULL +#define ALT_LOG_PORT "/dev/null" +#define ALT_LOG_PORT_BASE 0x0 +#define ALT_LOG_PORT_DEV null +#define ALT_LOG_PORT_TYPE "" +#define ALT_NUM_EXTERNAL_INTERRUPT_CONTROLLERS 0 +#define ALT_NUM_INTERNAL_INTERRUPT_CONTROLLERS 1 +#define ALT_NUM_INTERRUPT_CONTROLLERS 1 +#define ALT_STDERR "/dev/jtag_uart" +#define ALT_STDERR_BASE 0x41100 +#define ALT_STDERR_DEV jtag_uart +#define ALT_STDERR_IS_JTAG_UART +#define ALT_STDERR_PRESENT +#define ALT_STDERR_TYPE "altera_avalon_jtag_uart" +#define ALT_STDIN "/dev/jtag_uart" +#define ALT_STDIN_BASE 0x41100 +#define ALT_STDIN_DEV jtag_uart +#define ALT_STDIN_IS_JTAG_UART +#define ALT_STDIN_PRESENT +#define ALT_STDIN_TYPE "altera_avalon_jtag_uart" +#define ALT_STDOUT "/dev/jtag_uart" +#define ALT_STDOUT_BASE 0x41100 +#define ALT_STDOUT_DEV jtag_uart +#define ALT_STDOUT_IS_JTAG_UART +#define ALT_STDOUT_PRESENT +#define ALT_STDOUT_TYPE "altera_avalon_jtag_uart" +#define ALT_SYSTEM_NAME "nios_system" + + +/* + * hal configuration + * + */ + +#define ALT_MAX_FD 32 +#define ALT_SYS_CLK none +#define ALT_TIMESTAMP_CLK none + + +/* + * hex0 configuration + * + */ + +#define ALT_MODULE_CLASS_hex0 altera_avalon_pio +#define HEX0_BASE 0x410b0 +#define HEX0_BIT_CLEARING_EDGE_REGISTER 0 +#define HEX0_BIT_MODIFYING_OUTPUT_REGISTER 0 +#define HEX0_CAPTURE 0 +#define HEX0_DATA_WIDTH 7 +#define HEX0_DO_TEST_BENCH_WIRING 0 +#define HEX0_DRIVEN_SIM_VALUE 0 +#define HEX0_EDGE_TYPE "NONE" +#define HEX0_FREQ 50000000 +#define HEX0_HAS_IN 0 +#define HEX0_HAS_OUT 1 +#define HEX0_HAS_TRI 0 +#define HEX0_IRQ -1 +#define HEX0_IRQ_INTERRUPT_CONTROLLER_ID -1 +#define HEX0_IRQ_TYPE "NONE" +#define HEX0_NAME "/dev/hex0" +#define HEX0_RESET_VALUE 0 +#define HEX0_SPAN 16 +#define HEX0_TYPE "altera_avalon_pio" + + +/* + * hex1 configuration + * + */ + +#define ALT_MODULE_CLASS_hex1 altera_avalon_pio +#define HEX1_BASE 0x410a0 +#define HEX1_BIT_CLEARING_EDGE_REGISTER 0 +#define HEX1_BIT_MODIFYING_OUTPUT_REGISTER 0 +#define HEX1_CAPTURE 0 +#define HEX1_DATA_WIDTH 7 +#define HEX1_DO_TEST_BENCH_WIRING 0 +#define HEX1_DRIVEN_SIM_VALUE 0 +#define HEX1_EDGE_TYPE "NONE" +#define HEX1_FREQ 50000000 +#define HEX1_HAS_IN 0 +#define HEX1_HAS_OUT 1 +#define HEX1_HAS_TRI 0 +#define HEX1_IRQ -1 +#define HEX1_IRQ_INTERRUPT_CONTROLLER_ID -1 +#define HEX1_IRQ_TYPE "NONE" +#define HEX1_NAME "/dev/hex1" +#define HEX1_RESET_VALUE 0 +#define HEX1_SPAN 16 +#define HEX1_TYPE "altera_avalon_pio" + + +/* + * hex2 configuration + * + */ + +#define ALT_MODULE_CLASS_hex2 altera_avalon_pio +#define HEX2_BASE 0x41090 +#define HEX2_BIT_CLEARING_EDGE_REGISTER 0 +#define HEX2_BIT_MODIFYING_OUTPUT_REGISTER 0 +#define HEX2_CAPTURE 0 +#define HEX2_DATA_WIDTH 7 +#define HEX2_DO_TEST_BENCH_WIRING 0 +#define HEX2_DRIVEN_SIM_VALUE 0 +#define HEX2_EDGE_TYPE "NONE" +#define HEX2_FREQ 50000000 +#define HEX2_HAS_IN 0 +#define HEX2_HAS_OUT 1 +#define HEX2_HAS_TRI 0 +#define HEX2_IRQ -1 +#define HEX2_IRQ_INTERRUPT_CONTROLLER_ID -1 +#define HEX2_IRQ_TYPE "NONE" +#define HEX2_NAME "/dev/hex2" +#define HEX2_RESET_VALUE 0 +#define HEX2_SPAN 16 +#define HEX2_TYPE "altera_avalon_pio" + + +/* + * hex3 configuration + * + */ + +#define ALT_MODULE_CLASS_hex3 altera_avalon_pio +#define HEX3_BASE 0x41080 +#define HEX3_BIT_CLEARING_EDGE_REGISTER 0 +#define HEX3_BIT_MODIFYING_OUTPUT_REGISTER 0 +#define HEX3_CAPTURE 0 +#define HEX3_DATA_WIDTH 7 +#define HEX3_DO_TEST_BENCH_WIRING 0 +#define HEX3_DRIVEN_SIM_VALUE 0 +#define HEX3_EDGE_TYPE "NONE" +#define HEX3_FREQ 50000000 +#define HEX3_HAS_IN 0 +#define HEX3_HAS_OUT 1 +#define HEX3_HAS_TRI 0 +#define HEX3_IRQ -1 +#define HEX3_IRQ_INTERRUPT_CONTROLLER_ID -1 +#define HEX3_IRQ_TYPE "NONE" +#define HEX3_NAME "/dev/hex3" +#define HEX3_RESET_VALUE 0 +#define HEX3_SPAN 16 +#define HEX3_TYPE "altera_avalon_pio" + + +/* + * hex4 configuration + * + */ + +#define ALT_MODULE_CLASS_hex4 altera_avalon_pio +#define HEX4_BASE 0x41070 +#define HEX4_BIT_CLEARING_EDGE_REGISTER 0 +#define HEX4_BIT_MODIFYING_OUTPUT_REGISTER 0 +#define HEX4_CAPTURE 0 +#define HEX4_DATA_WIDTH 7 +#define HEX4_DO_TEST_BENCH_WIRING 0 +#define HEX4_DRIVEN_SIM_VALUE 0 +#define HEX4_EDGE_TYPE "NONE" +#define HEX4_FREQ 50000000 +#define HEX4_HAS_IN 0 +#define HEX4_HAS_OUT 1 +#define HEX4_HAS_TRI 0 +#define HEX4_IRQ -1 +#define HEX4_IRQ_INTERRUPT_CONTROLLER_ID -1 +#define HEX4_IRQ_TYPE "NONE" +#define HEX4_NAME "/dev/hex4" +#define HEX4_RESET_VALUE 0 +#define HEX4_SPAN 16 +#define HEX4_TYPE "altera_avalon_pio" + + +/* + * hex5 configuration + * + */ + +#define ALT_MODULE_CLASS_hex5 altera_avalon_pio +#define HEX5_BASE 0x41060 +#define HEX5_BIT_CLEARING_EDGE_REGISTER 0 +#define HEX5_BIT_MODIFYING_OUTPUT_REGISTER 0 +#define HEX5_CAPTURE 0 +#define HEX5_DATA_WIDTH 7 +#define HEX5_DO_TEST_BENCH_WIRING 0 +#define HEX5_DRIVEN_SIM_VALUE 0 +#define HEX5_EDGE_TYPE "NONE" +#define HEX5_FREQ 50000000 +#define HEX5_HAS_IN 0 +#define HEX5_HAS_OUT 1 +#define HEX5_HAS_TRI 0 +#define HEX5_IRQ -1 +#define HEX5_IRQ_INTERRUPT_CONTROLLER_ID -1 +#define HEX5_IRQ_TYPE "NONE" +#define HEX5_NAME "/dev/hex5" +#define HEX5_RESET_VALUE 0 +#define HEX5_SPAN 16 +#define HEX5_TYPE "altera_avalon_pio" + + +/* + * hex6 configuration + * + */ + +#define ALT_MODULE_CLASS_hex6 altera_avalon_pio +#define HEX6_BASE 0x41050 +#define HEX6_BIT_CLEARING_EDGE_REGISTER 0 +#define HEX6_BIT_MODIFYING_OUTPUT_REGISTER 0 +#define HEX6_CAPTURE 0 +#define HEX6_DATA_WIDTH 7 +#define HEX6_DO_TEST_BENCH_WIRING 0 +#define HEX6_DRIVEN_SIM_VALUE 0 +#define HEX6_EDGE_TYPE "NONE" +#define HEX6_FREQ 50000000 +#define HEX6_HAS_IN 0 +#define HEX6_HAS_OUT 1 +#define HEX6_HAS_TRI 0 +#define HEX6_IRQ -1 +#define HEX6_IRQ_INTERRUPT_CONTROLLER_ID -1 +#define HEX6_IRQ_TYPE "NONE" +#define HEX6_NAME "/dev/hex6" +#define HEX6_RESET_VALUE 0 +#define HEX6_SPAN 16 +#define HEX6_TYPE "altera_avalon_pio" + + +/* + * hex7 configuration + * + */ + +#define ALT_MODULE_CLASS_hex7 altera_avalon_pio +#define HEX7_BASE 0x41040 +#define HEX7_BIT_CLEARING_EDGE_REGISTER 0 +#define HEX7_BIT_MODIFYING_OUTPUT_REGISTER 0 +#define HEX7_CAPTURE 0 +#define HEX7_DATA_WIDTH 7 +#define HEX7_DO_TEST_BENCH_WIRING 0 +#define HEX7_DRIVEN_SIM_VALUE 0 +#define HEX7_EDGE_TYPE "NONE" +#define HEX7_FREQ 50000000 +#define HEX7_HAS_IN 0 +#define HEX7_HAS_OUT 1 +#define HEX7_HAS_TRI 0 +#define HEX7_IRQ -1 +#define HEX7_IRQ_INTERRUPT_CONTROLLER_ID -1 +#define HEX7_IRQ_TYPE "NONE" +#define HEX7_NAME "/dev/hex7" +#define HEX7_RESET_VALUE 0 +#define HEX7_SPAN 16 +#define HEX7_TYPE "altera_avalon_pio" + + +/* + * jtag_uart configuration + * + */ + +#define ALT_MODULE_CLASS_jtag_uart altera_avalon_jtag_uart +#define JTAG_UART_BASE 0x41100 +#define JTAG_UART_IRQ 5 +#define JTAG_UART_IRQ_INTERRUPT_CONTROLLER_ID 0 +#define JTAG_UART_NAME "/dev/jtag_uart" +#define JTAG_UART_READ_DEPTH 64 +#define JTAG_UART_READ_THRESHOLD 8 +#define JTAG_UART_SPAN 8 +#define JTAG_UART_TYPE "altera_avalon_jtag_uart" +#define JTAG_UART_WRITE_DEPTH 64 +#define JTAG_UART_WRITE_THRESHOLD 8 + + +/* + * lcd_16207_0 configuration + * + */ + +#define ALT_MODULE_CLASS_lcd_16207_0 altera_avalon_lcd_16207 +#define LCD_16207_0_BASE 0x41030 +#define LCD_16207_0_IRQ -1 +#define LCD_16207_0_IRQ_INTERRUPT_CONTROLLER_ID -1 +#define LCD_16207_0_NAME "/dev/lcd_16207_0" +#define LCD_16207_0_SPAN 16 +#define LCD_16207_0_TYPE "altera_avalon_lcd_16207" + + +/* + * lcd_blon configuration + * + */ + +#define ALT_MODULE_CLASS_lcd_blon altera_avalon_pio +#define LCD_BLON_BASE 0x41020 +#define LCD_BLON_BIT_CLEARING_EDGE_REGISTER 0 +#define LCD_BLON_BIT_MODIFYING_OUTPUT_REGISTER 0 +#define LCD_BLON_CAPTURE 0 +#define LCD_BLON_DATA_WIDTH 1 +#define LCD_BLON_DO_TEST_BENCH_WIRING 0 +#define LCD_BLON_DRIVEN_SIM_VALUE 0 +#define LCD_BLON_EDGE_TYPE "NONE" +#define LCD_BLON_FREQ 50000000 +#define LCD_BLON_HAS_IN 0 +#define LCD_BLON_HAS_OUT 1 +#define LCD_BLON_HAS_TRI 0 +#define LCD_BLON_IRQ -1 +#define LCD_BLON_IRQ_INTERRUPT_CONTROLLER_ID -1 +#define LCD_BLON_IRQ_TYPE "NONE" +#define LCD_BLON_NAME "/dev/lcd_blon" +#define LCD_BLON_RESET_VALUE 0 +#define LCD_BLON_SPAN 16 +#define LCD_BLON_TYPE "altera_avalon_pio" + + +/* + * lcd_on configuration + * + */ + +#define ALT_MODULE_CLASS_lcd_on altera_avalon_pio +#define LCD_ON_BASE 0x41010 +#define LCD_ON_BIT_CLEARING_EDGE_REGISTER 0 +#define LCD_ON_BIT_MODIFYING_OUTPUT_REGISTER 0 +#define LCD_ON_CAPTURE 0 +#define LCD_ON_DATA_WIDTH 1 +#define LCD_ON_DO_TEST_BENCH_WIRING 0 +#define LCD_ON_DRIVEN_SIM_VALUE 0 +#define LCD_ON_EDGE_TYPE "NONE" +#define LCD_ON_FREQ 50000000 +#define LCD_ON_HAS_IN 0 +#define LCD_ON_HAS_OUT 1 +#define LCD_ON_HAS_TRI 0 +#define LCD_ON_IRQ -1 +#define LCD_ON_IRQ_INTERRUPT_CONTROLLER_ID -1 +#define LCD_ON_IRQ_TYPE "NONE" +#define LCD_ON_NAME "/dev/lcd_on" +#define LCD_ON_RESET_VALUE 0 +#define LCD_ON_SPAN 16 +#define LCD_ON_TYPE "altera_avalon_pio" + + +/* + * onchip_memory configuration + * + */ + +#define ALT_MODULE_CLASS_onchip_memory altera_avalon_onchip_memory2 +#define ONCHIP_MEMORY_ALLOW_IN_SYSTEM_MEMORY_CONTENT_EDITOR 0 +#define ONCHIP_MEMORY_ALLOW_MRAM_SIM_CONTENTS_ONLY_FILE 0 +#define ONCHIP_MEMORY_BASE 0x0 +#define ONCHIP_MEMORY_CONTENTS_INFO "" +#define ONCHIP_MEMORY_DUAL_PORT 0 +#define ONCHIP_MEMORY_GUI_RAM_BLOCK_TYPE "AUTO" +#define ONCHIP_MEMORY_INIT_CONTENTS_FILE "nios_system_onchip_memory" +#define ONCHIP_MEMORY_INIT_MEM_CONTENT 1 +#define ONCHIP_MEMORY_INSTANCE_ID "NONE" +#define ONCHIP_MEMORY_IRQ -1 +#define ONCHIP_MEMORY_IRQ_INTERRUPT_CONTROLLER_ID -1 +#define ONCHIP_MEMORY_NAME "/dev/onchip_memory" +#define ONCHIP_MEMORY_NON_DEFAULT_INIT_FILE_ENABLED 0 +#define ONCHIP_MEMORY_RAM_BLOCK_TYPE "AUTO" +#define ONCHIP_MEMORY_READ_DURING_WRITE_MODE "DONT_CARE" +#define ONCHIP_MEMORY_SINGLE_CLOCK_OP 0 +#define ONCHIP_MEMORY_SIZE_MULTIPLE 1 +#define ONCHIP_MEMORY_SIZE_VALUE 204800 +#define ONCHIP_MEMORY_SPAN 204800 +#define ONCHIP_MEMORY_TYPE "altera_avalon_onchip_memory2" +#define ONCHIP_MEMORY_WRITABLE 1 + + +/* + * push_switches configuration + * + */ + +#define ALT_MODULE_CLASS_push_switches altera_avalon_pio +#define PUSH_SWITCHES_BASE 0x410c0 +#define PUSH_SWITCHES_BIT_CLEARING_EDGE_REGISTER 0 +#define PUSH_SWITCHES_BIT_MODIFYING_OUTPUT_REGISTER 0 +#define PUSH_SWITCHES_CAPTURE 0 +#define PUSH_SWITCHES_DATA_WIDTH 3 +#define PUSH_SWITCHES_DO_TEST_BENCH_WIRING 0 +#define PUSH_SWITCHES_DRIVEN_SIM_VALUE 0 +#define PUSH_SWITCHES_EDGE_TYPE "NONE" +#define PUSH_SWITCHES_FREQ 50000000 +#define PUSH_SWITCHES_HAS_IN 1 +#define PUSH_SWITCHES_HAS_OUT 0 +#define PUSH_SWITCHES_HAS_TRI 0 +#define PUSH_SWITCHES_IRQ -1 +#define PUSH_SWITCHES_IRQ_INTERRUPT_CONTROLLER_ID -1 +#define PUSH_SWITCHES_IRQ_TYPE "NONE" +#define PUSH_SWITCHES_NAME "/dev/push_switches" +#define PUSH_SWITCHES_RESET_VALUE 0 +#define PUSH_SWITCHES_SPAN 16 +#define PUSH_SWITCHES_TYPE "altera_avalon_pio" + + +/* + * switches configuration + * + */ + +#define ALT_MODULE_CLASS_switches altera_avalon_pio +#define SWITCHES_BASE 0x410d0 +#define SWITCHES_BIT_CLEARING_EDGE_REGISTER 0 +#define SWITCHES_BIT_MODIFYING_OUTPUT_REGISTER 0 +#define SWITCHES_CAPTURE 0 +#define SWITCHES_DATA_WIDTH 18 +#define SWITCHES_DO_TEST_BENCH_WIRING 0 +#define SWITCHES_DRIVEN_SIM_VALUE 0 +#define SWITCHES_EDGE_TYPE "NONE" +#define SWITCHES_FREQ 50000000 +#define SWITCHES_HAS_IN 1 +#define SWITCHES_HAS_OUT 0 +#define SWITCHES_HAS_TRI 0 +#define SWITCHES_IRQ -1 +#define SWITCHES_IRQ_INTERRUPT_CONTROLLER_ID -1 +#define SWITCHES_IRQ_TYPE "NONE" +#define SWITCHES_NAME "/dev/switches" +#define SWITCHES_RESET_VALUE 0 +#define SWITCHES_SPAN 16 +#define SWITCHES_TYPE "altera_avalon_pio" + +#endif /* __SYSTEM_H_ */ diff --git a/software/qsys_tutorial_lcd4/.cproject b/software/qsys_tutorial_lcd4/.cproject new file mode 100644 index 0000000..a59f7ce --- /dev/null +++ b/software/qsys_tutorial_lcd4/.cproject @@ -0,0 +1,508 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + make + + mem_init_install + true + false + false + + + make + + mem_init_generate + true + false + false + + + make + + help + true + false + false + + + + diff --git a/software/qsys_tutorial_lcd4/.force_relink b/software/qsys_tutorial_lcd4/.force_relink new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/software/qsys_tutorial_lcd4/.force_relink diff --git a/software/qsys_tutorial_lcd4/.project b/software/qsys_tutorial_lcd4/.project new file mode 100644 index 0000000..24528eb --- /dev/null +++ b/software/qsys_tutorial_lcd4/.project @@ -0,0 +1,96 @@ + + + qsys_tutorial_lcd4 + + + + + + com.altera.sbtgui.project.makefileBuilder + + + + + com.altera.sbtgui.project.makefileBuilder + + + + + org.eclipse.cdt.managedbuilder.core.genmakebuilder + clean,full,incremental, + + + ?name? + + + + org.eclipse.cdt.make.core.append_environment + true + + + org.eclipse.cdt.make.core.autoBuildTarget + all + + + org.eclipse.cdt.make.core.buildArguments + + + + org.eclipse.cdt.make.core.buildCommand + make + + + org.eclipse.cdt.make.core.buildLocation + ${workspace_loc://qsys_tutorial_lcd4} + + + org.eclipse.cdt.make.core.cleanBuildTarget + clean + + + org.eclipse.cdt.make.core.contents + org.eclipse.cdt.make.core.activeConfigSettings + + + org.eclipse.cdt.make.core.enableAutoBuild + false + + + org.eclipse.cdt.make.core.enableCleanBuild + true + + + org.eclipse.cdt.make.core.enableFullBuild + true + + + org.eclipse.cdt.make.core.fullBuildTarget + all + + + org.eclipse.cdt.make.core.stopOnError + true + + + org.eclipse.cdt.make.core.useDefaultBuildCmd + true + + + + + org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder + full,incremental, + + + + + + org.eclipse.cdt.core.cnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.managedbuilder.core.ScannerConfigNature + org.eclipse.cdt.core.ccnature + com.altera.sbtgui.project.SBTGUINature + com.altera.sbtgui.project.SBTGUIAppNature + com.altera.sbtgui.project.SBTGUIManagedNature + + diff --git a/software/qsys_tutorial_lcd4/LCD.c b/software/qsys_tutorial_lcd4/LCD.c new file mode 100644 index 0000000..5804ed6 --- /dev/null +++ b/software/qsys_tutorial_lcd4/LCD.c @@ -0,0 +1,50 @@ +#include +#include +#include +#include "system.h" +#include "LCD.h" +//------------------------------------------------------------------------- +void LCD_Init() +{ + lcd_write_cmd(LCD_16207_0_BASE,0x38); + usleep(2000); + lcd_write_cmd(LCD_16207_0_BASE,0x0C); + usleep(2000); + lcd_write_cmd(LCD_16207_0_BASE,0x01); + usleep(2000); + lcd_write_cmd(LCD_16207_0_BASE,0x06); + usleep(2000); + lcd_write_cmd(LCD_16207_0_BASE,0x80); + usleep(2000); +} +//------------------------------------------------------------------------- +void LCD_Show_Text(char* Text) +{ + int i; + for(i=0;i /c/dir). This will ensture +# paths are readable by GNU Make. +# +# If COMSPEC/ComSpec is not defined, Make is launched from linux, and no +# adjustment is necessary +# +#------------------------------------------------------------------------------ + +ifndef COMSPEC +ifdef ComSpec +COMSPEC = $(ComSpec) +endif # ComSpec +endif # COMSPEC + +ifdef COMSPEC # if Windows OS + +ifeq ($(MAKE_VERSION),3.81) +# +# adjust-path/adjust-path-mixed for Mingw Gnu Make on Windows +# +# Example Usage: +# $(call adjust-path,c:/aaa/bbb) => /c/aaa/bbb +# $(call adjust-path-mixed,/c/aaa/bbb) => c:/aaa/bbb +# $(call adjust-path-mixed,/cygdrive/c/aaa/bbb) => c:/aaa/bbb +# + +# +# adjust-path +# - converts back slash characters into forward slashes +# - if input arg ($1) is an empty string then return the empty string +# - if input arg ($1) does not contain the string ":/", then return input arg +# - using sed, convert mixed path [c:/...] into mingw path [/c/...] +define adjust-path +$(strip \ +$(if $1,\ +$(if $(findstring :/,$(subst \,/,$1)),\ +$(shell echo $(subst \,/,$1) | sed -e 's,^\([a-zA-Z]\):/,/\1/,'),\ +$(subst \,/,$1)))) +endef + +# +# adjust-path-mixed +# - converts back slash characters into forward slashes +# - if input arg ($1) is an empty string then return the empty string +# - if input arg ($1) does not begin with a forward slash '/' char, then +# return input arg +# - using sed, convert mingw path [/c/...] or cygwin path [/c/cygdrive/...] +# into a mixed path [c:/...] +define adjust-path-mixed +$(strip \ +$(if $1,\ +$(if $(findstring $(subst \,/,$1),$(patsubst /%,%,$(subst \,/,$1))),\ +$(subst \,/,$1),\ +$(shell echo $(subst \,/,$1) | sed -e 's,^/cygdrive/\([a-zA-Z]\)/,\1:/,' -e 's,^/\([a-zA-Z]\)/,\1:/,')))) +endef + +else # MAKE_VERSION != 3.81 (MAKE_VERSION == 3.80 or MAKE_VERSION == 3.79) +# +# adjust-path for Cygwin Gnu Make +# $(call adjust-path,c:/aaa/bbb) = /cygdrive/c/aaa/bbb +# $(call adjust-path-mixed,/cygdrive/c/aaa/bbb) = c:/aaa/bbb +# +adjust-path = $(if $1,$(shell cygpath -u "$1"),) +adjust-path-mixed = $(if $1,$(shell cygpath -m "$1"),) +endif + +else # !COMSPEC + +adjust-path = $1 +adjust-path-mixed = $1 + +endif # COMSPEC + + +#vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv +# GENERATED SETTINGS START v +#vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv + +#START GENERATED +ACTIVE_BUILD_CONFIG := default +BUILD_CONFIGS := default + +# The following TYPE comment allows tools to identify the 'type' of target this +# makefile is associated with. +# TYPE: APP_MAKEFILE + +# This following VERSION comment indicates the version of the tool used to +# generate this makefile. A makefile variable is provided for VERSION as well. +# ACDS_VERSION: 13.0sp1 +ACDS_VERSION := 13.0sp1 + +# This following BUILD_NUMBER comment indicates the build number of the tool +# used to generate this makefile. +# BUILD_NUMBER: 232 + +# Define path to the application ELF. +# It may be used by the makefile fragments so is defined before including them. +# +ELF := qsys_tutorial_lcd4.elf + +# Paths to C, C++, and assembly source files. +C_SRCS += LCD.c +C_SRCS += hello_world_small.c +C_SRCS += hex_encoder.c +C_SRCS += hex_out.c +C_SRCS += input_int.c +C_SRCS += inst_decoder.c +C_SRCS += sys_memory.c +C_SRCS += sys_register.c +C_SRCS += sys_except.c +C_SRCS += lcd_out.c +C_SRCS += sys_debug.c +C_SRCS += sys_prog.c +CXX_SRCS := +ASM_SRCS := + + +# Path to root of object file tree. +OBJ_ROOT_DIR := obj + +# Options to control objdump. +CREATE_OBJDUMP := 1 +OBJDUMP_INCLUDE_SOURCE := 1 +OBJDUMP_FULL_CONTENTS := 0 + +# Options to enable/disable optional files. +CREATE_ELF_DERIVED_FILES := 0 +CREATE_LINKER_MAP := 1 + +# Common arguments for ALT_CFLAGSs +APP_CFLAGS_DEFINED_SYMBOLS := +APP_CFLAGS_UNDEFINED_SYMBOLS := +APP_CFLAGS_OPTIMIZATION := -O0 +APP_CFLAGS_DEBUG_LEVEL := -g +APP_CFLAGS_WARNINGS := -Wall +APP_CFLAGS_USER_FLAGS := + +APP_ASFLAGS_USER := +APP_LDFLAGS_USER := + +# Linker options that have default values assigned later if not +# assigned here. +LINKER_SCRIPT := +CRT0 := +SYS_LIB := + +# Define path to the root of the BSP. +BSP_ROOT_DIR := ../qsys_tutorial_lcd4_bsp/ + +# List of application specific include directories, library directories and library names +APP_INCLUDE_DIRS := +APP_LIBRARY_DIRS := +APP_LIBRARY_NAMES := + +# Pre- and post- processor settings. +BUILD_PRE_PROCESS := +BUILD_POST_PROCESS := + +QUARTUS_PROJECT_DIR := ../../ + + +#END GENERATED + +#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +# GENERATED SETTINGS END ^ +#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + +#------------------------------------------------------------------------------ +# DEFAULT TARGET +#------------------------------------------------------------------------------ + +# Define the variable used to echo output if not already defined. +ifeq ($(ECHO),) +ECHO := echo +endif + +# Put "all" rule before included makefile fragments because they may +# define rules and we don't want one of those to become the default rule. +.PHONY : all + +all: + @$(ECHO) [$(APP_NAME) build complete] + +all : build_pre_process libs app build_post_process + + +#------------------------------------------------------------------------------ +# VARIABLES DEPENDENT ON GENERATED CONTENT +#------------------------------------------------------------------------------ + +# Define object file directory per build configuration +CONFIG_OBJ_DIR := $(OBJ_ROOT_DIR)/$(ACTIVE_BUILD_CONFIG) + +ifeq ($(BSP_ROOT_DIR),) +$(error Edit Makefile and provide a value for BSP_ROOT_DIR) +endif + +ifeq ($(wildcard $(BSP_ROOT_DIR)),) +$(error BSP directory does not exist: $(BSP_ROOT_DIR)) +endif + +# Define absolute path to the root of the BSP. +ABS_BSP_ROOT_DIR := $(call adjust-path-mixed,$(shell cd "$(BSP_ROOT_DIR)"; pwd)) + +# Include makefile fragments. Define variable ALT_LIBRARY_ROOT_DIR before +# including each makefile fragment so that it knows the path to itself. +BSP_INCLUDE_FILE := $(BSP_ROOT_DIR)/public.mk +ALT_LIBRARY_ROOT_DIR := $(BSP_ROOT_DIR) +include $(BSP_INCLUDE_FILE) +# C2H will need this to touch the BSP public.mk and avoid the sopc file +# out-of-date error during a BSP make +ABS_BSP_INCLUDE_FILE := $(ABS_BSP_ROOT_DIR)/public.mk + + +ifneq ($(WARNING.SMALL_STACK_SIZE),) +# This WARNING is here to protect you from unknowingly using a very small stack +# If the warning is set, increase your stack size or enable the BSP small stack +# setting to eliminate the warning +$(warning WARNING: $(WARNING.SMALL_STACK_SIZE)) +endif + + +# If the BSP public.mk indicates that ALT_SIM_OPTIMIZE is set, rename the ELF +# by prefixing it with RUN_ON_HDL_SIMULATOR_ONLY_. +ifneq ($(filter -DALT_SIM_OPTIMIZE,$(ALT_CPPFLAGS)),) +ELF := RUN_ON_HDL_SIMULATOR_ONLY_$(ELF) +endif + +# If the BSP public.mk indicates that ALT_PROVIDE_GMON is set, add option to +# download_elf target +ifneq ($(filter -DALT_PROVIDE_GMON,$(ALT_CPPFLAGS)),) +GMON_OUT_FILENAME := gmon.out +WRITE_GMON_OPTION := --write-gmon $(GMON_OUT_FILENAME) +endif + +# Name of ELF application. +APP_NAME := $(basename $(ELF)) + +# Set to defaults if variables not already defined in settings. +ifeq ($(LINKER_SCRIPT),) +LINKER_SCRIPT := $(BSP_LINKER_SCRIPT) +endif +ifeq ($(CRT0),) +CRT0 := $(BSP_CRT0) +endif +ifeq ($(SYS_LIB),) +SYS_LIB := $(BSP_SYS_LIB) +endif + +OBJDUMP_NAME := $(APP_NAME).objdump +OBJDUMP_FLAGS := --disassemble --syms --all-header +ifeq ($(OBJDUMP_INCLUDE_SOURCE),1) +OBJDUMP_FLAGS += --source +endif +ifeq ($(OBJDUMP_FULL_CONTENTS),1) +OBJDUMP_FLAGS += --full-contents +endif + +# Create list of linker dependencies (*.a files). +APP_LDDEPS := $(ALT_LDDEPS) $(LDDEPS) + +# Take lists and add required prefixes. +APP_INC_DIRS := $(addprefix -I, $(ALT_INCLUDE_DIRS) $(APP_INCLUDE_DIRS) $(INC_DIRS)) +ASM_INC_PREFIX := -Wa,-I +APP_ASM_INC_DIRS := $(addprefix $(ASM_INC_PREFIX), $(ALT_INCLUDE_DIRS) $(APP_INCLUDE_DIRS) $(INC_DIRS)) +APP_LIB_DIRS := $(addprefix -L, $(ALT_LIBRARY_DIRS) $(APP_LIBRARY_DIRS) $(LIB_DIRS)) +APP_LIBS := $(addprefix -l, $(ALT_LIBRARY_NAMES) $(APP_LIBRARY_NAMES) $(LIBS)) + +ifneq ($(AVOID_NIOS2_GCC3_OPTIONS),) + +# +# Avoid Nios II GCC 3.X options. +# + +# Detect if small newlib C library is requested. +# If yes, remove the -msmallc option because it is +# now handled by other means. +ifneq ($(filter -msmallc,$(ALT_LDFLAGS)),) + ALT_LDFLAGS := $(filter-out -msmallc,$(ALT_LDFLAGS)) + ALT_C_LIBRARY := smallc +else + ALT_C_LIBRARY := c +endif + +# Put each BSP dependent library in a group to avoid circular dependencies. +APP_BSP_DEP_LIBS := $(foreach l,$(ALT_BSP_DEP_LIBRARY_NAMES),-Wl,--start-group -l$(ALT_C_LIBRARY) -lgcc -l$(l) -Wl,--end-group) + +else # !AVOID_NIOS2_GCC3_OPTIONS + +# +# Use Nios II GCC 3.X options. +# +APP_BSP_DEP_LIBS := $(addprefix -msys-lib=, $(ALT_BSP_DEP_LIBRARY_NAMES)) + +endif # !AVOID_NIOS2_GCC3_OPTIONS + +# Arguments for the C preprocessor, C/C++ compiler, assembler, and linker. +APP_CFLAGS := $(APP_CFLAGS_DEFINED_SYMBOLS) \ + $(APP_CFLAGS_UNDEFINED_SYMBOLS) \ + $(APP_CFLAGS_OPTIMIZATION) \ + $(APP_CFLAGS_DEBUG_LEVEL) \ + $(APP_CFLAGS_WARNINGS) \ + $(APP_CFLAGS_USER_FLAGS) \ + $(ALT_CFLAGS) \ + $(CFLAGS) + +# Arguments only for the C++ compiler. +APP_CXXFLAGS := $(ALT_CXXFLAGS) $(CXXFLAGS) + +# Arguments only for the C preprocessor. +# Prefix each include directory with -I. +APP_CPPFLAGS := $(APP_INC_DIRS) \ + $(ALT_CPPFLAGS) \ + $(CPPFLAGS) + +# Arguments only for the assembler. +APP_ASFLAGS := $(APP_ASM_INC_DIRS) \ + $(ALT_ASFLAGS) \ + $(APP_ASFLAGS_USER) \ + $(ASFLAGS) + +# Arguments only for the linker. +APP_LDFLAGS := $(APP_LDFLAGS_USER) + +ifneq ($(LINKER_SCRIPT),) +APP_LDFLAGS += -T'$(LINKER_SCRIPT)' +endif + +ifneq ($(AVOID_NIOS2_GCC3_OPTIONS),) + +# Avoid Nios II GCC 3.x options. +ifneq ($(CRT0),) +APP_LDFLAGS += $(CRT0) +endif + +# The equivalent of the -msys-lib option is provided +# by the GROUP() command in the linker script. +# Note this means the SYS_LIB variable is now ignored. + +else # !AVOID_NIOS2_GCC3_OPTIONS + +# Use Nios II GCC 3.x options. +ifneq ($(CRT0),) +APP_LDFLAGS += -msys-crt0='$(CRT0)' +endif +ifneq ($(SYS_LIB),) +APP_LDFLAGS += -msys-lib=$(SYS_LIB) +endif + +endif # !AVOID_NIOS2_GCC3_OPTIONS + +APP_LDFLAGS += \ + $(APP_LIB_DIRS) \ + $(ALT_LDFLAGS) \ + $(LDFLAGS) + +LINKER_MAP_NAME := $(APP_NAME).map +ifeq ($(CREATE_LINKER_MAP), 1) +APP_LDFLAGS += -Wl,-Map=$(LINKER_MAP_NAME) +endif + +# QUARTUS_PROJECT_DIR and SOPC_NAME need to be defined if you want the +# mem_init_install target of the mem_init.mk (located in the associated BSP) +# to know how to copy memory initialization files (e.g. .dat, .hex) into +# directories required for Quartus compilation or RTL simulation. + +# Defining QUARTUS_PROJECT_DIR causes mem_init_install to copy memory +# initialization files into your Quartus project directory. This is required +# to provide the initial memory contents of FPGA memories that can be +# initialized by the programming file (.sof) or Hardcopy ROMs. It is also used +# for VHDL simulation of on-chip memories. + +# Defining SOPC_NAME causes the mem_init_install target to copy memory +# initialization files into your RTL simulation directory. This is required +# to provide the initial memory contents of all memories that can be +# initialized by RTL simulation. This variable should be set to the same name +# as your SOPC Builder system name. For example, if you have a system called +# "foo.sopc", this variable should be set to "foo". + +# If SOPC_NAME is not set and QUARTUS_PROJECT_DIR is set, then derive SOPC_NAME. +ifeq ($(SOPC_NAME),) +ifneq ($(QUARTUS_PROJECT_DIR),) +SOPC_NAME := $(basename $(notdir $(wildcard $(QUARTUS_PROJECT_DIR)/*.sopcinfo))) +endif +endif + +# Defining JDI_FILE is required to specify the JTAG Debug Information File +# path. This file is generated by Quartus, and is needed along with the +# .sopcinfo file to resolve processor instance ID's from names in a multi-CPU +# systems. For multi-CPU systems, the processor instance ID is used to select +# from multiple CPU's during ELF download. + +# Both JDI_FILE and SOPCINFO_FILE are provided by the BSP if they found during +# BSP creation. If JDI_FILE is not set and QUARTUS_PROJECT_DIR is set, then +# derive JDI_FILE. We do not attempt to derive SOPCINFO_FILE since there may be +# multiple .sopcinfo files in a Quartus project. +ifeq ($(JDI_FILE),) +ifneq ($(QUARTUS_PROJECT_DIR),) +JDI_FILE := $(wildcard $(QUARTUS_PROJECT_DIR)/*.jdi) +endif +endif + +# Path to root runtime directory used for hdl simulation +RUNTIME_ROOT_DIR := $(CONFIG_OBJ_DIR)/runtime + + + +#------------------------------------------------------------------------------ +# MAKEFILE INCLUDES DEPENDENT ON GENERATED CONTENT +#------------------------------------------------------------------------------ +# mem_init.mk is a generated makefile fragment. This file defines all targets +# used to generate HDL initialization simulation files and pre-initialized +# onchip memory files. +MEM_INIT_FILE := $(BSP_ROOT_DIR)/mem_init.mk +include $(MEM_INIT_FILE) + +# Create list of object files to be built using the list of source files. +# The source file hierarchy is preserved in the object tree. +# The supported file extensions are: +# +# .c - for C files +# .cxx .cc .cpp - for C++ files +# .S .s - for assembler files +# +# Handle source files specified by --src-dir & --src-rdir differently, to +# save some processing time in calling the adjust-path macro. + +OBJ_LIST_C := $(patsubst %.c,%.o,$(filter %.c,$(C_SRCS))) +OBJ_LIST_CPP := $(patsubst %.cpp,%.o,$(filter %.cpp,$(CXX_SRCS))) +OBJ_LIST_CXX := $(patsubst %.cxx,%.o,$(filter %.cxx,$(CXX_SRCS))) +OBJ_LIST_CC := $(patsubst %.cc,%.o,$(filter %.cc,$(CXX_SRCS))) +OBJ_LIST_S := $(patsubst %.S,%.o,$(filter %.S,$(ASM_SRCS))) +OBJ_LIST_SS := $(patsubst %.s,%.o,$(filter %.s,$(ASM_SRCS))) + +OBJ_LIST := $(sort $(OBJ_LIST_C) $(OBJ_LIST_CPP) $(OBJ_LIST_CXX) \ + $(OBJ_LIST_CC) $(OBJ_LIST_S) $(OBJ_LIST_SS)) + +SDIR_OBJ_LIST_C := $(patsubst %.c,%.o,$(filter %.c,$(SDIR_C_SRCS))) +SDIR_OBJ_LIST_CPP := $(patsubst %.cpp,%.o,$(filter %.cpp,$(SDIR_CXX_SRCS))) +SDIR_OBJ_LIST_CXX := $(patsubst %.cxx,%.o,$(filter %.cxx,$(SDIR_CXX_SRCS))) +SDIR_OBJ_LIST_CC := $(patsubst %.cc,%.o,$(filter %.cc,$(SDIR_CXX_SRCS))) +SDIR_OBJ_LIST_S := $(patsubst %.S,%.o,$(filter %.S,$(SDIR_ASM_SRCS))) +SDIR_OBJ_LIST_SS := $(patsubst %.s,%.o,$(filter %.s,$(SDIR_ASM_SRCS))) + +SDIR_OBJ_LIST := $(sort $(SDIR_OBJ_LIST_C) $(SDIR_OBJ_LIST_CPP) \ + $(SDIR_OBJ_LIST_CXX) $(SDIR_OBJ_LIST_CC) $(SDIR_OBJ_LIST_S) \ + $(SDIR_OBJ_LIST_SS)) + +# Relative-pathed objects that being with "../" are handled differently. +# +# Regular objects are created as +# $(CONFIG_OBJ_DIR)//.o +# where the path structure is maintained under the obj directory. This +# applies for both absolute and relative paths; in the absolute path +# case this means the entire source path will be recreated under the obj +# directory. This is done to allow two source files with the same name +# to be included as part of the project. +# +# Note: On Cygwin, the path recreated under the obj directory will be +# the cygpath -u output path. +# +# Relative-path objects that begin with "../" cause problems under this +# scheme, as $(CONFIG_OBJ_DIR)/..// can potentially put the object +# files anywhere in the system, creating clutter and polluting the source tree. +# As such, their paths are flattened - the object file created will be +# $(CONFIG_OBJ_DIR)/.o. Due to this, two files specified with +# "../" in the beginning cannot have the same name in the project. VPATH +# will be set for these sources to allow make to relocate the source file +# via %.o rules. +# +# The following lines separate the object list into the flatten and regular +# lists, and then handles them as appropriate. + +FLATTEN_OBJ_LIST := $(filter ../%,$(OBJ_LIST)) +FLATTEN_APP_OBJS := $(addprefix $(CONFIG_OBJ_DIR)/,$(notdir $(FLATTEN_OBJ_LIST))) + +REGULAR_OBJ_LIST := $(filter-out $(FLATTEN_OBJ_LIST),$(OBJ_LIST)) +REGULAR_OBJ_LIST_C := $(filter $(OBJ_LIST_C),$(REGULAR_OBJ_LIST)) +REGULAR_OBJ_LIST_CPP := $(filter $(OBJ_LIST_CPP),$(REGULAR_OBJ_LIST)) +REGULAR_OBJ_LIST_CXX := $(filter $(OBJ_LIST_CXX),$(REGULAR_OBJ_LIST)) +REGULAR_OBJ_LIST_CC := $(filter $(OBJ_LIST_CC),$(REGULAR_OBJ_LIST)) +REGULAR_OBJ_LIST_S := $(filter $(OBJ_LIST_S),$(REGULAR_OBJ_LIST)) +REGULAR_OBJ_LIST_SS := $(filter $(OBJ_LIST_SS),$(REGULAR_OBJ_LIST)) + +FLATTEN_SDIR_OBJ_LIST := $(filter ../%,$(SDIR_OBJ_LIST)) +FLATTEN_SDIR_APP_OBJS := $(addprefix $(CONFIG_OBJ_DIR)/,$(notdir $(FLATTEN_SDIR_OBJ_LIST))) + +REGULAR_SDIR_OBJ_LIST := $(filter-out $(FLATTEN_SDIR_OBJ_LIST),$(SDIR_OBJ_LIST)) +REGULAR_SDIR_OBJ_LIST_C := $(filter $(SDIR_OBJ_LIST_C),$(REGULAR_SDIR_OBJ_LIST)) +REGULAR_SDIR_OBJ_LIST_CPP := $(filter $(SDIR_OBJ_LIST_CPP),$(REGULAR_SDIR_OBJ_LIST)) +REGULAR_SDIR_OBJ_LIST_CXX := $(filter $(SDIR_OBJ_LIST_CXX),$(REGULAR_SDIR_OBJ_LIST)) +REGULAR_SDIR_OBJ_LIST_CC := $(filter $(SDIR_OBJ_LIST_CC),$(REGULAR_SDIR_OBJ_LIST)) +REGULAR_SDIR_OBJ_LIST_S := $(filter $(SDIR_OBJ_LIST_S),$(REGULAR_SDIR_OBJ_LIST)) +REGULAR_SDIR_OBJ_LIST_SS := $(filter $(SDIR_OBJ_LIST_SS),$(REGULAR_SDIR_OBJ_LIST)) + +VPATH := $(sort $(dir $(FLATTEN_OBJ_LIST)) $(dir $(FLATTEN_SDIR_OBJ_LIST))) + +APP_OBJS_C := $(addprefix $(CONFIG_OBJ_DIR)/,\ + $(REGULAR_SDIR_OBJ_LIST_C) \ + $(foreach s,$(REGULAR_OBJ_LIST_C),$(call adjust-path,$s))) + +APP_OBJS_CPP := $(addprefix $(CONFIG_OBJ_DIR)/,\ + $(REGULAR_SDIR_OBJ_LIST_CPP) \ + $(foreach s,$(REGULAR_OBJ_LIST_CPP),$(call adjust-path,$s))) + +APP_OBJS_CXX := $(addprefix $(CONFIG_OBJ_DIR)/,\ + $(REGULAR_SDIR_OBJ_LIST_CXX) \ + $(foreach s,$(REGULAR_OBJ_LIST_CXX),$(call adjust-path,$s))) + +APP_OBJS_CC := $(addprefix $(CONFIG_OBJ_DIR)/,\ + $(REGULAR_SDIR_OBJ_LIST_CC) \ + $(foreach s,$(REGULAR_OBJ_LIST_CC),$(call adjust-path,$s))) + +APP_OBJS_S := $(addprefix $(CONFIG_OBJ_DIR)/,\ + $(REGULAR_SDIR_OBJ_LIST_S) \ + $(foreach s,$(REGULAR_OBJ_LIST_S),$(call adjust-path,$s))) + +APP_OBJS_SS := $(addprefix $(CONFIG_OBJ_DIR)/,\ + $(REGULAR_SDIR_OBJ_LIST_SS) \ + $(foreach s,$(REGULAR_OBJ_LIST_SS),$(call adjust-path,$s))) + +APP_OBJS := $(APP_OBJS_C) $(APP_OBJS_CPP) $(APP_OBJS_CXX) $(APP_OBJS_CC) \ + $(APP_OBJS_S) $(APP_OBJS_SS) \ + $(FLATTEN_APP_OBJS) $(FLATTEN_SDIR_APP_OBJS) + +# Add any extra user-provided object files. +APP_OBJS += $(OBJS) + +# Create list of dependancy files for each object file. +APP_DEPS := $(APP_OBJS:.o=.d) + +# Patch the Elf file with system specific information + +# Patch the Elf with the name of the sopc system +ifneq ($(SOPC_NAME),) +ELF_PATCH_FLAG += --sopc_system_name $(SOPC_NAME) +endif + +# Patch the Elf with the absolute path to the Quartus Project Directory +ifneq ($(QUARTUS_PROJECT_DIR),) +ABS_QUARTUS_PROJECT_DIR := $(call adjust-path-mixed,$(shell cd "$(QUARTUS_PROJECT_DIR)"; pwd)) +ELF_PATCH_FLAG += --quartus_project_dir "$(ABS_QUARTUS_PROJECT_DIR)" +endif + +# Patch the Elf and download args with the JDI_FILE if specified +ifneq ($(wildcard $(JDI_FILE)),) +ELF_PATCH_FLAG += --jdi $(JDI_FILE) +DOWNLOAD_JDI_FLAG := --jdi $(JDI_FILE) +endif + +# Patch the Elf with the SOPCINFO_FILE if specified +ifneq ($(wildcard $(SOPCINFO_FILE)),) +ELF_PATCH_FLAG += --sopcinfo $(SOPCINFO_FILE) +endif + +# Use the DOWNLOAD_CABLE variable to specify which JTAG cable to use. +# This is not needed if you only have one cable. +ifneq ($(DOWNLOAD_CABLE),) +DOWNLOAD_CABLE_FLAG := --cable '$(DOWNLOAD_CABLE)' +endif + + +#------------------------------------------------------------------------------ +# BUILD PRE/POST PROCESS +#------------------------------------------------------------------------------ +build_pre_process : + $(BUILD_PRE_PROCESS) + +build_post_process : + $(BUILD_POST_PROCESS) + +.PHONY: build_pre_process build_post_process + + +#------------------------------------------------------------------------------ +# TOOLS +#------------------------------------------------------------------------------ + +# +# Set tool default variables if not already defined. +# If these are defined, they would typically be defined in an +# included makefile fragment. +# +ifeq ($(DEFAULT_CROSS_COMPILE),) +DEFAULT_CROSS_COMPILE := nios2-elf- +endif + +ifeq ($(DEFAULT_STACK_REPORT),) +DEFAULT_STACKREPORT := nios2-stackreport +endif + +ifeq ($(DEFAULT_DOWNLOAD),) +DEFAULT_DOWNLOAD := nios2-download +endif + +ifeq ($(DEFAULT_FLASHPROG),) +DEFAULT_FLASHPROG := nios2-flash-programmer +endif + +ifeq ($(DEFAULT_ELFPATCH),) +DEFAULT_ELFPATCH := nios2-elf-insert +endif + +ifeq ($(DEFAULT_RM),) +DEFAULT_RM := rm -f +endif + +ifeq ($(DEFAULT_CP),) +DEFAULT_CP := cp -f +endif + +ifeq ($(DEFAULT_MKDIR),) +DEFAULT_MKDIR := mkdir -p +endif + +# +# Set tool variables to defaults if not already defined. +# If these are defined, they would typically be defined by a +# setting in the generated portion of this makefile. +# +ifeq ($(CROSS_COMPILE),) +CROSS_COMPILE := $(DEFAULT_CROSS_COMPILE) +endif + +ifeq ($(origin CC),default) +CC := $(CROSS_COMPILE)gcc -xc +endif + +ifeq ($(origin CXX),default) +CXX := $(CROSS_COMPILE)gcc -xc++ +endif + +ifeq ($(origin AS),default) +AS := $(CROSS_COMPILE)gcc +endif + +ifeq ($(origin AR),default) +AR := $(CROSS_COMPILE)ar +endif + +ifeq ($(origin LD),default) +LD := $(CROSS_COMPILE)g++ +endif + +ifeq ($(origin NM),default) +NM := $(CROSS_COMPILE)nm +endif + +ifeq ($(origin RM),default) +RM := $(DEFAULT_RM) +endif + +ifeq ($(origin CP),default) +CP := $(DEFAULT_CP) +endif + +ifeq ($(OBJDUMP),) +OBJDUMP := $(CROSS_COMPILE)objdump +endif + +ifeq ($(OBJCOPY),) +OBJCOPY := $(CROSS_COMPILE)objcopy +endif + +ifeq ($(STACKREPORT),) +ifeq ($(CROSS_COMPILE),nios2-elf-) +STACKREPORT := $(DEFAULT_STACKREPORT) +else +DISABLE_STACKREPORT := 1 +endif +endif + +ifeq ($(DOWNLOAD),) +DOWNLOAD := $(DEFAULT_DOWNLOAD) +endif + +ifeq ($(FLASHPROG),) +FLASHPROG := $(DEFAULT_FLASHPROG) +endif + +ifeq ($(ELFPATCH),) +ELFPATCH := $(DEFAULT_ELFPATCH) +endif + +ifeq ($(MKDIR),) +MKDIR := $(DEFAULT_MKDIR) +endif + +#------------------------------------------------------------------------------ +# PATTERN RULES TO BUILD OBJECTS +#------------------------------------------------------------------------------ + +define compile.c +@$(ECHO) Info: Compiling $< to $@ +@$(MKDIR) $(@D) +$(CC) -MP -MMD -c $(APP_CPPFLAGS) $(APP_CFLAGS) -o $@ $< +$(CC_POST_PROCESS) +endef + +define compile.cpp +@$(ECHO) Info: Compiling $< to $@ +@$(MKDIR) $(@D) +$(CXX) -MP -MMD -c $(APP_CPPFLAGS) $(APP_CXXFLAGS) $(APP_CFLAGS) -o $@ $< +$(CXX_POST_PROCESS) +endef + +# If assembling with the compiler, ensure "-Wa," is prepended to all APP_ASFLAGS +ifeq ($(AS),$(patsubst %as,%,$(AS))) +COMMA := , +APP_ASFLAGS := $(filter-out $(APP_CFLAGS),$(addprefix -Wa$(COMMA),$(patsubst -Wa$(COMMA)%,%,$(APP_ASFLAGS)))) +endif + +define compile.s +@$(ECHO) Info: Assembling $< to $@ +@$(MKDIR) $(@D) +$(AS) -MP -MMD -c $(APP_CPPFLAGS) $(APP_CFLAGS) $(APP_ASFLAGS) -o $@ $< +$(AS_POST_PROCESS) +endef + +ifeq ($(MAKE_VERSION),3.81) +.SECONDEXPANSION: + +$(APP_OBJS_C): $(CONFIG_OBJ_DIR)/%.o: $$(call adjust-path-mixed,%.c) + $(compile.c) + +$(APP_OBJS_CPP): $(CONFIG_OBJ_DIR)/%.o: $$(call adjust-path-mixed,%.cpp) + $(compile.cpp) + +$(APP_OBJS_CC): $(CONFIG_OBJ_DIR)/%.o: $$(call adjust-path-mixed,%.cc) + $(compile.cpp) + +$(APP_OBJS_CXX): $(CONFIG_OBJ_DIR)/%.o: $$(call adjust-path-mixed,%.cxx) + $(compile.cpp) + +$(APP_OBJS_S): $(CONFIG_OBJ_DIR)/%.o: $$(call adjust-path-mixed,%.S) + $(compile.s) + +$(APP_OBJS_SS): $(CONFIG_OBJ_DIR)/%.o: $$(call adjust-path-mixed,%.s) + $(compile.s) + +endif # MAKE_VERSION != 3.81 + +$(CONFIG_OBJ_DIR)/%.o: %.c + $(compile.c) + +$(CONFIG_OBJ_DIR)/%.o: %.cpp + $(compile.cpp) + +$(CONFIG_OBJ_DIR)/%.o: %.cc + $(compile.cpp) + +$(CONFIG_OBJ_DIR)/%.o: %.cxx + $(compile.cpp) + +$(CONFIG_OBJ_DIR)/%.o: %.S + $(compile.s) + +$(CONFIG_OBJ_DIR)/%.o: %.s + $(compile.s) + + +#------------------------------------------------------------------------------ +# PATTERN RULES TO INTERMEDIATE FILES +#------------------------------------------------------------------------------ + +$(CONFIG_OBJ_DIR)/%.s: %.c + @$(ECHO) Info: Compiling $< to $@ + @$(MKDIR) $(@D) + $(CC) -S $(APP_CPPFLAGS) $(APP_CFLAGS) -o $@ $< + +$(CONFIG_OBJ_DIR)/%.s: %.cpp + @$(ECHO) Info: Compiling $< to $@ + @$(MKDIR) $(@D) + $(CXX) -S $(APP_CPPFLAGS) $(APP_CXXFLAGS) $(APP_CFLAGS) -o $@ $< + +$(CONFIG_OBJ_DIR)/%.s: %.cc + @$(ECHO) Info: Compiling $< to $@ + @$(MKDIR) $(@D) + $(CXX) -S $(APP_CPPFLAGS) $(APP_CXXFLAGS) $(APP_CFLAGS) -o $@ $< + +$(CONFIG_OBJ_DIR)/%.s: %.cxx + @$(ECHO) Info: Compiling $< to $@ + @$(MKDIR) $(@D) + $(CXX) -S $(APP_CPPFLAGS) $(APP_CXXFLAGS) $(APP_CFLAGS) -o $@ $< + +$(CONFIG_OBJ_DIR)/%.i: %.c + @$(ECHO) Info: Compiling $< to $@ + @$(MKDIR) $(@D) + $(CC) -E $(APP_CPPFLAGS) $(APP_CFLAGS) -o $@ $< + +$(CONFIG_OBJ_DIR)/%.i: %.cpp + @$(ECHO) Info: Compiling $< to $@ + @$(MKDIR) $(@D) + $(CXX) -E $(APP_CPPFLAGS) $(APP_CXXFLAGS) $(APP_CFLAGS) -o $@ $< + +$(CONFIG_OBJ_DIR)/%.i: %.cc + @$(ECHO) Info: Compiling $< to $@ + @$(MKDIR) $(@D) + $(CXX) -E $(APP_CPPFLAGS) $(APP_CXXFLAGS) $(APP_CFLAGS) -o $@ $< + +$(CONFIG_OBJ_DIR)/%.i: %.cxx + @$(ECHO) Info: Compiling $< to $@ + @$(MKDIR) $(@D) + $(CXX) -E $(APP_CPPFLAGS) $(APP_CXXFLAGS) $(APP_CFLAGS) -o $@ $< + + +#------------------------------------------------------------------------------ +# TARGET RULES +#------------------------------------------------------------------------------ + +.PHONY : help +help : + @$(ECHO) "Summary of Makefile targets" + @$(ECHO) " Build targets:" + @$(ECHO) " all (default) - Application and all libraries (including BSP)" + @$(ECHO) " bsp - Just the BSP" + @$(ECHO) " libs - All libraries (including BSP)" + @$(ECHO) " flash - All flash files" + @$(ECHO) " mem_init_generate - All memory initialization files" +ifeq ($(QSYS),1) + @$(ECHO) " mem_init_install - This target is deprecated for QSys Systems" + @$(ECHO) " --> Use the mem_init_generate target and then" + @$(ECHO) " add the generated meminit.qip file to your" + @$(ECHO) " Quartus II Project." +else # if QSYS != 1 + @$(ECHO) " mem_init_install - Copy memory initialization files to Quartus II project" +endif # QSYS == 1 + @$(ECHO) + @$(ECHO) " Clean targets:" + @$(ECHO) " clean_all - Application and all libraries (including BSP)" + @$(ECHO) " clean - Just the application" + @$(ECHO) " clean_bsp - Just the BSP" + @$(ECHO) " clean_libs - All libraries (including BSP)" + @$(ECHO) + @$(ECHO) " Run targets:" + @$(ECHO) " download-elf - Download and run your elf executable" + @$(ECHO) " program-flash - Program flash contents to the board" + +# Handy rule to skip making libraries and just make application. +.PHONY : app +app : $(ELF) + +ifeq ($(CREATE_OBJDUMP), 1) +app : $(OBJDUMP_NAME) +endif + +ifeq ($(CREATE_ELF_DERIVED_FILES),1) +app : elf_derived_files +endif + +.PHONY: elf_derived_files +elf_derived_files: default_mem_init + +# Handy rule for making just the BSP. +.PHONY : bsp +bsp : + @$(ECHO) Info: Building $(BSP_ROOT_DIR) + @$(MAKE) --no-print-directory -C $(BSP_ROOT_DIR) + + +# Make sure all makeable libraries (including the BSP) are up-to-date. +LIB_TARGETS := $(patsubst %,%-recurs-make-lib,$(MAKEABLE_LIBRARY_ROOT_DIRS)) + +.PHONY : libs +libs : $(LIB_TARGETS) + +ifneq ($(strip $(LIB_TARGETS)),) +$(LIB_TARGETS): %-recurs-make-lib: + @$(ECHO) Info: Building $* + $(MAKE) --no-print-directory -C $* +endif + +ifneq ($(strip $(APP_LDDEPS)),) +$(APP_LDDEPS): libs + @true +endif + +# Rules to force your project to rebuild or relink +# .force_relink file will cause any application that depends on this project to relink +# .force_rebuild file will cause this project to rebuild object files +# .force_rebuild_all file will cause this project and any project that depends on this project to rebuild object files + +FORCE_RELINK_DEP := .force_relink +FORCE_REBUILD_DEP := .force_rebuild +FORCE_REBUILD_ALL_DEP := .force_rebuild_all +FORCE_REBUILD_DEP_LIST := $(CONFIG_OBJ_DIR)/$(FORCE_RELINK_DEP) $(CONFIG_OBJ_DIR)/$(FORCE_REBUILD_DEP) $(FORCE_REBUILD_ALL_DEP) + +$(FORCE_REBUILD_DEP_LIST): + +$(APP_OBJS): $(wildcard $(CONFIG_OBJ_DIR)/$(FORCE_REBUILD_DEP)) $(wildcard $(addsuffix /$(FORCE_REBUILD_ALL_DEP), . $(ALT_LIBRARY_DIRS))) + +$(ELF): $(wildcard $(addsuffix /$(FORCE_RELINK_DEP), $(CONFIG_OBJ_DIR) $(ALT_LIBRARY_DIRS))) + + +# Clean just the application. +.PHONY : clean +ifeq ($(CREATE_ELF_DERIVED_FILES),1) +clean : clean_elf_derived_files +endif + +clean : + @$(RM) -r $(ELF) $(OBJDUMP_NAME) $(LINKER_MAP_NAME) $(OBJ_ROOT_DIR) $(RUNTIME_ROOT_DIR) $(FORCE_REBUILD_DEP_LIST) + @$(ECHO) [$(APP_NAME) clean complete] + +# Clean just the BSP. +.PHONY : clean_bsp +clean_bsp : + @$(ECHO) Info: Cleaning $(BSP_ROOT_DIR) + @$(MAKE) --no-print-directory -C $(BSP_ROOT_DIR) clean + +# Clean all makeable libraries including the BSP. +LIB_CLEAN_TARGETS := $(patsubst %,%-recurs-make-clean-lib,$(MAKEABLE_LIBRARY_ROOT_DIRS)) + +.PHONY : clean_libs +clean_libs : $(LIB_CLEAN_TARGETS) + +ifneq ($(strip $(LIB_CLEAN_TARGETS)),) +$(LIB_CLEAN_TARGETS): %-recurs-make-clean-lib: + @$(ECHO) Info: Cleaning $* + $(MAKE) --no-print-directory -C $* clean +endif + +.PHONY: clean_elf_derived_files +clean_elf_derived_files: mem_init_clean + +# Clean application and all makeable libraries including the BSP. +.PHONY : clean_all +clean_all : clean mem_init_clean clean_libs + +# Include the dependency files unless the make goal is performing a clean +# of the application. +ifneq ($(firstword $(MAKECMDGOALS)),clean) +ifneq ($(firstword $(MAKECMDGOALS)),clean_all) +-include $(APP_DEPS) +endif +endif + +.PHONY : download-elf +download-elf : $(ELF) + @if [ "$(DOWNLOAD)" = "none" ]; \ + then \ + $(ECHO) Downloading $(ELF) not supported; \ + else \ + $(ECHO) Info: Downloading $(ELF); \ + $(DOWNLOAD) --go --cpu_name=$(CPU_NAME) $(DOWNLOAD_CABLE_FLAG) $(SOPC_SYSID_FLAG) $(DOWNLOAD_JDI_FLAG) $(WRITE_GMON_OPTION) $(ELF); \ + fi + +# Delete the target of a rule if it has changed and its commands exit +# with a nonzero exit status. +.DELETE_ON_ERROR: + +# Rules for flash programming commands +PROGRAM_FLASH_SUFFIX := -program +PROGRAM_FLASH_TARGET := $(addsuffix $(PROGRAM_FLASH_SUFFIX), $(FLASH_FILES)) + +.PHONY : program-flash +program-flash : $(PROGRAM_FLASH_TARGET) + +.PHONY : $(PROGRAM_FLASH_TARGET) +$(PROGRAM_FLASH_TARGET) : flash + @if [ "$(FLASHPROG)" = "none" ]; \ + then \ + $(ECHO) Programming flash not supported; \ + else \ + $(ECHO) Info: Programming $(basename $@).flash; \ + if [ -z "$($(basename $@)_EPCS_FLAGS)" ]; \ + then \ + $(ECHO) $(FLASHPROG) $(SOPC_SYSID_FLAG) --base=$($(basename $@)_START) $(basename $@).flash; \ + $(FLASHPROG) $(DOWNLOAD_CABLE_FLAG) $(SOPC_SYSID_FLAG) --base=$($(basename $@)_START) $(basename $@).flash; \ + else \ + $(ECHO) $(FLASHPROG) $(SOPC_SYSID_FLAG) --epcs --base=$($(basename $@)_START) $(basename $@).flash; \ + $(FLASHPROG) $(DOWNLOAD_CABLE_FLAG) $(SOPC_SYSID_FLAG) --epcs --base=$($(basename $@)_START) $(basename $@).flash; \ + fi \ + fi + + +# Rules for simulating with an HDL Simulator [QSYS only] +ifeq ($(QSYS),1) +IP_MAKE_SIMSCRIPT := ip-make-simscript + +ifeq ($(VSIM),) +VSIM_EXE := "$(if $(VSIM_DIR),$(VSIM_DIR)/,)vsim" +ifeq ($(ENABLE_VSIM_GUI),1) +VSIM := $(VSIM_EXE) -gui +else +VSIM := $(VSIM_EXE) -c +endif # ENABLE_VSIM_GUI == 1 +endif # VSIM not set + +ifeq ($(SPD),) +ifneq ($(ABS_QUARTUS_PROJECT_DIR),) +ifneq ($(SOPC_NAME),) +SPD := $(ABS_QUARTUS_PROJECT_DIR)/$(SOPC_NAME)_tb.spd +endif # SOPC_NAME set +endif # ABS_QUARTUS_PROJECT_DIR set +endif # SPD == empty string + +ifeq ($(MSIM_SCRIPT),) +SIM_SCRIPT_DIR := $(RUNTIME_ROOT_DIR)/sim +MSIM_SCRIPT := $(SIM_SCRIPT_DIR)/mentor/msim_setup.tcl +endif # MSIM_SCRIPT == empty string + +ifeq ($(MAKE_VERSION),3.81) +ABS_MEM_INIT_DESCRIPTOR_FILE := $(abspath $(MEM_INIT_DESCRIPTOR_FILE)) +else +ABS_MEM_INIT_DESCRIPTOR_FILE := $(call adjust-path-mixed,$(shell pwd))/$(MEM_INIT_DESCRIPTOR_FILE) +endif + +$(MSIM_SCRIPT): $(SPD) $(MEM_INIT_DESCRIPTOR_FILE) +ifeq ($(SPD),) + $(error No SPD file specified. Ensure QUARTUS_PROJECT_DIR variable is set) +endif + @$(MKDIR) $(SIM_SCRIPT_DIR) + $(IP_MAKE_SIMSCRIPT) --spd=$(SPD) --spd=$(MEM_INIT_DESCRIPTOR_FILE) --output-directory=$(SIM_SCRIPT_DIR) + +VSIM_COMMAND = \ + cd $(dir $(MSIM_SCRIPT)) && \ + $(VSIM) -do "do $(notdir $(MSIM_SCRIPT)); ld; $(if $(VSIM_RUN_TIME),run ${VSIM_RUN_TIME};quit;)" + +.PHONY: sim +sim: $(MSIM_SCRIPT) mem_init_generate +ifeq ($(MSIM_SCRIPT),) + $(error MSIM_SCRIPT not set) +endif + $(VSIM_COMMAND) + +endif # QSYS == 1 + + +#------------------------------------------------------------------------------ +# ELF TARGET RULE +#------------------------------------------------------------------------------ +# Rule for constructing the executable elf file. +$(ELF) : $(APP_OBJS) $(LINKER_SCRIPT) $(APP_LDDEPS) + @$(ECHO) Info: Linking $@ + $(LD) $(APP_LDFLAGS) $(APP_CFLAGS) -o $@ $(filter-out $(CRT0),$(APP_OBJS)) $(APP_LIBS) $(APP_BSP_DEP_LIBS) +ifneq ($(DISABLE_ELFPATCH),1) + $(ELFPATCH) $@ $(ELF_PATCH_FLAG) +endif +ifneq ($(DISABLE_STACKREPORT),1) + @bash -c "$(STACKREPORT) $@" +endif + +$(OBJDUMP_NAME) : $(ELF) + @$(ECHO) Info: Creating $@ + $(OBJDUMP) $(OBJDUMP_FLAGS) $< >$@ + +# Rule for printing the name of the elf file +.PHONY: print-elf-name +print-elf-name: + @$(ECHO) $(ELF) + + diff --git a/software/qsys_tutorial_lcd4/create-this-app b/software/qsys_tutorial_lcd4/create-this-app new file mode 100644 index 0000000..dcd4608 --- /dev/null +++ b/software/qsys_tutorial_lcd4/create-this-app @@ -0,0 +1,114 @@ +#!/bin/bash +# +# This script creates the hello_world application in this directory. + + +BSP_DIR=../qsys_tutorial_lcd4_bsp +QUARTUS_PROJECT_DIR=../../ +NIOS2_APP_GEN_ARGS="--elf-name qsys_tutorial_lcd4.elf --set OBJDUMP_INCLUDE_SOURCE 1 --src-files hello_world.c" + + +# First, check to see if $SOPC_KIT_NIOS2 environmental variable is set. +# This variable is required for the command line tools to execute correctly. +if [ -z "${SOPC_KIT_NIOS2}" ] +then + echo Required \$SOPC_KIT_NIOS2 Environmental Variable is not set! + exit 1 +fi + + +# Also make sure that the APP has not been created already. Check for +# existence of Makefile in the app directory +if [ -f ./Makefile ] +then + echo Application has already been created! Delete Makefile if you want to create a new application makefile + exit 1 +fi + + +# We are selecting hal_default bsp because it supports this application. +# Check to see if the hal_default has already been generated by checking for +# existence of the public.mk file. If not, we need to run +# create-this-bsp file to generate the bsp. +if [ ! -f ${BSP_DIR}/public.mk ]; then + # Since BSP doesn't exist, create the BSP + # Pass any command line arguments passed to this script to the BSP. + pushd ${BSP_DIR} >> /dev/null + ./create-this-bsp "$@" || { + echo "create-this-bsp failed" + exit 1 + } + popd >> /dev/null +fi + + +# Don't run make if create-this-app script is called with --no-make arg +SKIP_MAKE= +while [ $# -gt 0 ] +do + case "$1" in + --no-make) + SKIP_MAKE=1 + ;; + esac + shift +done + + +# Now we also need to go copy the sources for this application to the +# local directory. +find "${SOPC_KIT_NIOS2}/examples/software/hello_world/" -name '*.c' -or -name '*.h' -or -name 'hostfs*' | xargs -i cp -L {} ./ || { + echo "failed during copying example source files" + exit 1 +} + +find "${SOPC_KIT_NIOS2}/examples/software/hello_world/" -name 'readme.txt' -or -name 'Readme.txt' | xargs -i cp -L {} ./ || { + echo "failed copying readme file" +} + +if [ -d "${SOPC_KIT_NIOS2}/examples/software/hello_world/system" ] +then + cp -RL "${SOPC_KIT_NIOS2}/examples/software/hello_world/system" . || { + echo "failed during copying project support files" + exit 1 + } +fi + +chmod -R +w . || { + echo "failed during changing file permissions" + exit 1 +} + +cmd="nios2-app-generate-makefile --bsp-dir ${BSP_DIR} --set QUARTUS_PROJECT_DIR=${QUARTUS_PROJECT_DIR} ${NIOS2_APP_GEN_ARGS}" + +echo "create-this-app: Running \"${cmd}\"" +$cmd || { + echo "nios2-app-generate-makefile failed" + exit 1 +} + +if [ -z "$SKIP_MAKE" ]; then + cmd="make" + + echo "create-this-app: Running \"$cmd\"" + $cmd || { + echo "make failed" + exit 1 + } + + echo + echo "To download and run the application:" + echo " 1. Make sure the board is connected to the system." + echo " 2. Run 'nios2-configure-sof ' to configure the FPGA with the hardware design." + echo " 3. If you have a stdio device, run 'nios2-terminal' in a different shell." + echo " 4. Run 'make download-elf' from the application directory." + echo + echo "To debug the application:" + echo " Import the project into Nios II Software Build Tools for Eclipse." + echo " Refer to Nios II Software Build Tools for Eclipse Documentation for more information." + echo + echo -e "" +fi + + +exit 0 diff --git a/software/qsys_tutorial_lcd4/hello_world_small.c b/software/qsys_tutorial_lcd4/hello_world_small.c new file mode 100644 index 0000000..d2f4740 --- /dev/null +++ b/software/qsys_tutorial_lcd4/hello_world_small.c @@ -0,0 +1,267 @@ +#include "sys/alt_stdio.h" +#include +#include +#include "system.h" +#include "hex_out.h" +#include "lcd_out.h" +#include "sys_register.h" +#include "sys_memory.h" +#include "input_int.h" +#include "inst_decoder.h" +#include "sys_debug.h" +#include "sys_prog.h" + +#define ledrs (volatile int *) LEDRS_BASE + +// �v���O�������s��� +enum RunMode { RUN_STOP, RUN_INIT, RUN_PROC, RUN_TERM }; + +void wait(unsigned int s) { + usleep(s*10000); +} + +void init() { + // lcd + lcd_init(); + lcd_print("Starting now..."); + + registers_init(); + memory_init(); + // hex + clear_block(HEX0_3); clear_block(HEX4_5); clear_block(HEX6_7); + print_block("he", 2, HEX6_7); + print_block("lo", 2, HEX4_5); + print_block("you1", 4, HEX0_3); + wait(200); + clear_block(HEX0_3); clear_block(HEX4_5); clear_block(HEX6_7); + + lcd_caret_reset2(); + lcd_print("Ok!"); +} + +char stack[5]; + +void store_value(){ + unsigned int memi = global_registers[Ssw_memi]; + memory_store(memi, Ssw_data); + + { // �f�o�b�N�\�� + char buf[5]; + sprintf(buf, "%02x", (unsigned char)memi); + print_block(buf, 2, HEX6_7); + print_block("--", 2, HEX4_5); + sprintf(buf, "%04d", global_registers[Ssw_data]); + print_block(buf, 4, HEX0_3); + + display_mem((unsigned char)memi, global_registers[Ssw_data]); + } +} +void store_inst(){ + char inst; + char mem_index; + char reg_index; + unsigned int stored_pc; + struct InstRec inst_rec; + + // �K�v�ȏ��̎擾 + inst = global_registers[Ssw_inst]; + mem_index = global_registers[Ssw_memi]; + reg_index = global_registers[Ssw_regi]; + inst_rec.inst = (unsigned int)inst; + inst_rec.memi = (unsigned int)mem_index; + inst_rec.regi = (unsigned int)reg_index; + + // �X�g�A���� + stored_pc = (unsigned char)global_registers[Spc]; + inst_memory_store((unsigned int)global_registers[Spc], inst_rec); + inc_pc(); + { // �f�o�b�N�\�� + char buf[5]; + sprintf(buf, "%04d", inst_rec.inst); + print_block(buf, 4, HEX0_3); + sprintf(buf, "%02x", (unsigned char)global_registers[Spc]); + print_block(buf, 2, HEX4_5); + + display_inst(inst_rec, stored_pc); + } +} +enum RunMode run_proc(enum RunMode mode) { + volatile struct InstRec inst_rec; + + if (RUN_INIT == mode) { + lcd_caret_reset(); + lcd_print("Run...now"); + + global_registers[Spc] = 0; + clear_block(HEX0_3); clear_block(HEX4_5); clear_block(HEX6_7); + + // �v���O�������s���֑J�� + return RUN_PROC; + } + + if (RUN_PROC == mode) { + // ���߃t�F�b�` + inst_rec = inst_fetch(); + // ���߃f�R�[�h���s + inst_decode(inst_rec); + // pc�\�� + { + char buf[5]; + sprintf(buf, "%02x", (unsigned char)global_registers[Spc]); + print_block("pc", 2, HEX6_7); + print_block(buf, 2, HEX4_5); + } + + // �f�o�b�N�p + if ( global_registers[Ssw_run] ) wait(100); + + // �v���O�����I������ + if (inst_rec.inst != INST_END) return RUN_PROC; + return RUN_TERM; + } + + if (RUN_TERM == mode) { + lcd_caret_reset(); + lcd_print("Run...Exit"); + return RUN_STOP; + } + + // Default + return RUN_STOP; +} + +void print_change_memory(unsigned int current_memory) { + char buf[17]; + sprintf(buf, "Current page:%2d", current_memory); + lcd_caret_reset(); + lcd_print("Change program"); + lcd_caret_reset2(); + lcd_print(buf); + clear_block(HEX0_3); clear_block(HEX4_5); clear_block(HEX6_7); +} + +static void reset_mem_cancel() { + lcd_caret_reset(); + lcd_print("rewrite all 0?"); + lcd_caret_reset2(); + lcd_print("push again -> NG"); +} +static char reset_mem(char confirmed) { + if (confirmed == 0) { + lcd_caret_reset(); + lcd_print("rewrite all 0?"); + lcd_caret_reset2(); + lcd_print("push again"); + // �m�F�v�� + return 1; + } else { + int i; + for (i = 0; i < MEM_SIZE; i++){ + memory_store(i,Szero); + } + lcd_caret_reset(); + lcd_print("rewrite all 0?"); + lcd_caret_reset2(); + lcd_print("push again -> OK"); + + // PC���Z�b�g���� + return 0; + } +} +static void reset_pc_cancel() { + lcd_caret_reset(); + lcd_print("reset pc?"); + lcd_caret_reset2(); + lcd_print("push again -> NG"); +} +static char reset_pc(char confirmed) { + if (confirmed == 0) { + lcd_caret_reset(); + lcd_print("reset pc?"); + lcd_caret_reset2(); + lcd_print("push again"); + // �m�F�v�� + return 1; + } else { + global_registers[Spc]=0; + + lcd_caret_reset(); + lcd_print("reset pc?"); + lcd_caret_reset2(); + lcd_print("push again -> OK"); + + // PC���Z�b�g���� + return 0; + } +} + + +int main() +{ + init(); + + enum RunMode fRun = RUN_STOP; + char reset_pc_confirmed = 0; + char reset_mem_confirmed = 0; + + while(1) { + // interrupt + in_int(); + + // event + // CANCEL + if (global_registers[Ssw_rw] == 0 + || ((PUSH_EVENT & PUSH_ANY) && !(PUSH_EVENT & PUSH_VALSTR))) { + if (reset_mem_confirmed == 1) { + reset_mem_confirmed = 0; //�m�F�L�����Z�� + reset_mem_cancel(); + } + } + if (global_registers[Ssw_rw] == 0 + || ((PUSH_EVENT & PUSH_ANY) && !(PUSH_EVENT & PUSH_INSSTR))) { + if (reset_pc_confirmed == 1) { + reset_pc_confirmed = 0; //�m�F�L�����Z�� + reset_pc_cancel(); + } + } + // CONFIRM + if (PUSH_EVENT & PUSH_VALSTR) { + // �l�̃X�g�A + if (global_registers[Ssw_rw] == 1) { + //�폜 + char res = reset_mem(reset_mem_confirmed);//���m�F�̏��F + if (1 == res) reset_mem_confirmed = 1; //���m�F + if (0 == res) reset_mem_confirmed = 0; //���Z�b�g�̊m�F + } else { + store_value(); + } + } + if (PUSH_EVENT & PUSH_INSSTR) { + // ���߂̃X�g�A + if (global_registers[Ssw_rw] == 1) { + //PC�̃��Z�b�g + char res = reset_pc(reset_pc_confirmed);//���m�F�̏��F + if (1 == res) reset_pc_confirmed = 1; //���m�F + if (0 == res) reset_pc_confirmed = 0; //���Z�b�g�̊m�F + } else { + store_inst(); + } + } + // RUN + if (PUSH_EVENT & PUSH_RUN) { + if (global_current_memory != (unsigned int)global_registers[Ssw_psel]) { + global_current_memory = (unsigned int)global_registers[Ssw_psel]; + print_change_memory(global_current_memory); + } + else { + // �v���O�����������ݒ� + fRun = RUN_INIT; + } + } + if (fRun != RUN_STOP) { + // �v���O�������s���荞�� & ���s���[�h�X�V + fRun = run_proc(fRun); + } + } + return 0; +} diff --git a/software/qsys_tutorial_lcd4/hex_encoder.c b/software/qsys_tutorial_lcd4/hex_encoder.c new file mode 100644 index 0000000..ab4eca0 --- /dev/null +++ b/software/qsys_tutorial_lcd4/hex_encoder.c @@ -0,0 +1,205 @@ +/* + * hex_encoder.c + * + * Created on: 2016/11/17 + * Author: takayun + */ + +#include "hex_encoder.h" +#include + +void encodeNumHex(int hex_i, int num) { + char encoded = 0; + switch (num) { + case 0: + encoded = (char)0x40; // 100 0000 + break; + case 1: + encoded = (char)0xF9; // 111 1001 + break; + case 2: + encoded = (char)0x24; // 010 0100 + break; + case 3: + encoded = (char)0x30; // 011 0000 + break; + case 4: + encoded = (char)0x19; // 001 1001 + break; + case 5: + encoded = (char)0x12; // 001 0010 + break; + case 6: + encoded = (char)0x02; // 000 0010 + break; + case 7: + encoded = (char)0x58; // 101 1000 + break; + case 8: + encoded = (char)0x00; // 000 0000 + break; + case 9: + encoded = (char)0x10; // 001 0000 + break; + default: + encoded = 0; + break; + } + + switch (hex_i) { + case 0: + *hex0 = encoded; + break; + case 1: + *hex1 = encoded; + break; + case 2: + *hex2 = encoded; + break; + case 3: + *hex3 = encoded; + break; + case 4: + *hex4 = encoded; + break; + case 5: + *hex5 = encoded; + break; + case 6: + *hex6 = encoded; + break; + case 7: + *hex7 = encoded; + break; + default: + break; + } +} + +void encodeLatHex(int hex_i, char c) { + char encoded = 0; + + if (isdigit(c)) { + encodeNumHex(hex_i, c-'0'); + return; + } + + switch (c) { + case ' ': + encoded = (char)0xFF; // 111 1111 + break; + case '-': + encoded = (char)0x3F; // 011 1111 + break; + case 'a': + encoded = (char)0x08; // 000 1000 + break; + case 'b': + encoded = (char)0x03; // 000 0011 + break; + case 'c': + encoded = (char)0x27; // 010 0111 + break; + case 'd': + encoded = (char)0x21; // 010 0001 + break; + case 'e': + encoded = (char)0x06; // 000 0110 + break; + case 'f': + encoded = (char)0x0E; // 000 1110 + break; + case 'g': + encoded = (char)0x42; // 100 0010 + break; + case 'h': + encoded = (char)0x0B; // 000 1011 + break; + case 'i': + encoded = (char)0xFB; // 111 1011 + break; + case 'j': + encoded = (char)0x61; // 110 0001 + break; + case 'k': + encoded = (char)0x0A; // 000 1010 + break; + case 'l': + encoded = (char)0x47; // 100 0111 + break; + case 'm': + encoded = (char)0x48; // 100 1000 + break; + case 'n': + encoded = (char)0x2B; // 010 1011 + break; + case 'o': + encoded = (char)0x23; // 010 0011 + break; + case 'p': + encoded = (char)0x0C; // 000 1100 + break; + case 'q': + encoded = (char)0x04; // 000 0100 + break; + case 'r': + encoded = (char)0x2F; // 010 1111 + break; + case 's': + encoded = (char)0x13; // 001 0011 + break; + case 't': + encoded = (char)0x07; // 000 0111 + break; + case 'u': + encoded = (char)0x63; // 110 0011 + break; + case 'v': + encoded = (char)0x41; // 100 0001 + break; + case 'w': + encoded = (char)0x01; // 000 0001 + break; + case 'x': + encoded = (char)0x09; // 000 1001 + break; + case 'y': + encoded = (char)0x11; // 001 0001 + break; + case 'z': + encoded = (char)0x64; // 110 0100 + break; + default: + encoded = 0; + break; + } + + switch (hex_i) { + case 0: + *hex0 = encoded; + break; + case 1: + *hex1 = encoded; + break; + case 2: + *hex2 = encoded; + break; + case 3: + *hex3 = encoded; + break; + case 4: + *hex4 = encoded; + break; + case 5: + *hex5 = encoded; + break; + case 6: + *hex6 = encoded; + break; + case 7: + *hex7 = encoded; + break; + default: + break; + } +} diff --git a/software/qsys_tutorial_lcd4/hex_encoder.h b/software/qsys_tutorial_lcd4/hex_encoder.h new file mode 100644 index 0000000..3aa8e67 --- /dev/null +++ b/software/qsys_tutorial_lcd4/hex_encoder.h @@ -0,0 +1,38 @@ +/* + * hex_encoder.h + * + * Created on: 2016/11/17 + * Author: takayun + */ + +#ifndef HEX_ENCODER_H_ +#define HEX_ENCODER_H_ + +#include "system.h" + +/************************************************** + * Defines + **************************************************/ + +#define hex0 (volatile char *) HEX0_BASE +#define hex1 (volatile char *) HEX1_BASE +#define hex2 (volatile char *) HEX2_BASE +#define hex3 (volatile char *) HEX3_BASE +#define hex4 (volatile char *) HEX4_BASE +#define hex5 (volatile char *) HEX5_BASE +#define hex6 (volatile char *) HEX6_BASE +#define hex7 (volatile char *) HEX7_BASE + +/************************************************** + * Variables + **************************************************/ + + +/************************************************** + * Functions + **************************************************/ + +void encodeNumHex(int hex_i, int num); +void encodeLatHex(int hex_i, char c); + +#endif /* HEX_ENCODER_H_ */ diff --git a/software/qsys_tutorial_lcd4/hex_out.c b/software/qsys_tutorial_lcd4/hex_out.c new file mode 100644 index 0000000..2995aac --- /dev/null +++ b/software/qsys_tutorial_lcd4/hex_out.c @@ -0,0 +1,67 @@ +/* + * hex_out.c + * + * Created on: 2016/11/24 + * Author: takayun + */ +#include "hex_out.h" +#include "hex_encoder.h" +#include "sys_except.h" + +void print_block(char * str, unsigned int size, enum BLOCK_N block_i) { + int i; + if (block_i == HEX0_3) { + if (size > 4) panic(); + for (i = 0; i < size; i++) { + encodeLatHex(i,str[size-1-i]); + } + } + else if (block_i == HEX4_5) { + if (size > 2) panic(); + for (i = 0; i < size; i++) { + encodeLatHex(i+4,str[size-1-i]); + } + } + else if (block_i == HEX6_7) { + if (size > 2) panic(); + for (i = 0; i < size; i++) { + encodeLatHex(i+6,str[size-1-i]); + } + } +} + +void clear_block(enum BLOCK_N block_i) { + if (block_i == HEX0_3) { + print_block(" ", 4, HEX0_3); + } + else if (block_i == HEX4_5) { + print_block(" ", 2, HEX4_5); + } + else if (block_i == HEX6_7) { + print_block(" ", 2, HEX6_7); + } +} + +void print_number(char num) { + int i; + char buf[5]; + char val; + for (i = 0; i < 4; i++) { + if (num < 0) { + buf[0] = '-'; + val = -num; + } else { + buf[0] = ' '; + val = num; + } + buf[1] = val/100%10 + '0'; + buf[2] = val/10%10 + '0'; + buf[3] = val%10 + '0'; + } + clear_block(HEX0_3); + print_block(buf, 4, HEX0_3); +} + + + + diff --git a/software/qsys_tutorial_lcd4/hex_out.h b/software/qsys_tutorial_lcd4/hex_out.h new file mode 100644 index 0000000..50d6868 --- /dev/null +++ b/software/qsys_tutorial_lcd4/hex_out.h @@ -0,0 +1,33 @@ +/* + * hex_out.h + * + * Created on: 2016/11/24 + * Author: takayun + */ + +#ifndef HEX_IO_H_ +#define HEX_IO_H_ + +/************************************************** + * Defines + **************************************************/ + +enum BLOCK_N { + HEX0_3, HEX4_5, HEX6_7 +}; + +/************************************************** + * Variables + **************************************************/ + + +/************************************************** + * Functions + **************************************************/ + +void print_block(char * str, unsigned int size, enum BLOCK_N block_i); +void clear_block(enum BLOCK_N block_i); +void print_number(char num); + + +#endif /* HEX_IO_H_ */ diff --git a/software/qsys_tutorial_lcd4/input_int.c b/software/qsys_tutorial_lcd4/input_int.c new file mode 100644 index 0000000..6897db4 --- /dev/null +++ b/software/qsys_tutorial_lcd4/input_int.c @@ -0,0 +1,71 @@ +/* + * input_int.c + * + * Created on: 2016/11/24 + * Author: takayun + */ +#include "input_int.h" +#include "sys_register.h" + +unsigned char PUSH_EVENT = PUSH_NONE; + +void in_int() { + push_int(); +} + +static void update_sw_reg(sw_t s) { + global_registers[Ssw_data] = (char)s.data.value; + global_registers[Ssw_inst] = (char)s.splited.instruction_code; + global_registers[Ssw_memi] = (char)s.splited.memory_index; + global_registers[Ssw_regi] = (char)s.splited.register_index; + global_registers[Ssw_psel] = (char)s.splited.program_selecter; + global_registers[Ssw_rw] = (char)s.splited.rw_mode; + global_registers[Ssw_run] = (char)s.splited.run_mode; +} + +enum PushEvent push_decode(char psw) { + int result = PUSH_NONE; + switch(psw) { + case 0x3: + result += PUSH_ANY; + result += PUSH_VALSTR; + break; + case 0x5: + result += PUSH_ANY; + result += PUSH_INSSTR; + break; + case 0x6: + result += PUSH_ANY; + result += PUSH_RUN; + break; + } + return result; +} + +void push_int() { + static unsigned char status = 0; + static enum PushEvent event_code; + volatile sw_t s; + s.sw = *switches; + + switch (status) { + case 0: + PUSH_EVENT = PUSH_NONE; + if (*push_switches != 7) { + event_code = push_decode(*push_switches); + status = 1; + } + update_sw_reg(s); // �X�C�b�`���W�X�^�X�V + break; + case 1: + if (*push_switches == 7) status = 2; + break; + case 2: + PUSH_EVENT = event_code; + status = 0; + break; + default: + status = 0; + break; + } +} diff --git a/software/qsys_tutorial_lcd4/input_int.h b/software/qsys_tutorial_lcd4/input_int.h new file mode 100644 index 0000000..288fc14 --- /dev/null +++ b/software/qsys_tutorial_lcd4/input_int.h @@ -0,0 +1,62 @@ +/* + * input_int.h + * + * Created on: 2016/11/24 + * Author: takayun + */ + +#ifndef SWITCHES_INT_H_ +#define SWITCHES_INT_H_ + +#include "system.h" + +/************************************************** + * Defines + **************************************************/ + +#define switches (volatile int *) SWITCHES_BASE +#define push_switches (volatile char *) PUSH_SWITCHES_BASE + +typedef union { + int sw; + struct { + unsigned int run_mode : 1; + unsigned int rw_mode : 1; + unsigned int program_selecter : 4; + unsigned int memory_index : 4; + unsigned int register_index : 4; + unsigned int instruction_code : 4; + } splited; + struct { + unsigned int : 10; + unsigned int value : 8; + } data; +} sw_t; + +enum PushEvent{ + PUSH_NONE = 1<<0, + PUSH_ANY = 1<<1, + PUSH_VALSTR = 1<<2, + PUSH_INSSTR = 1<<3, + PUSH_RUN = 1<<4 +}; + +/************************************************** + * Variables + **************************************************/ + +extern unsigned char PUSH_EVENT; + +/************************************************** + * Functions + **************************************************/ + +/* Function: in_int + * Sammary: + * �S�Ă̓��͊��荞�݂��s�� + * */ +void in_int(); + +void push_int(); + +#endif /* SWITCHES_INT_H_ */ diff --git a/software/qsys_tutorial_lcd4/inst_decoder.c b/software/qsys_tutorial_lcd4/inst_decoder.c new file mode 100644 index 0000000..d4b34fa --- /dev/null +++ b/software/qsys_tutorial_lcd4/inst_decoder.c @@ -0,0 +1,114 @@ +/* + * inst_decoder.c + * + * Created on: 2016/11/25 + * Author: takayun + */ + +#include "inst_decoder.h" +#include "sys_memory.h" +#include "sys_register.h" +#include "hex_out.h" +#include "sys_prog.h" +#include +#include + +struct InstRec inst_fetch(){ + struct InstRec rec = inst_memory_load((unsigned int)global_registers[Spc]); + inc_pc(); + return rec; +} + +void inst_decode(struct InstRec inst_rec){ + switch(inst_rec.inst) { + case INST_END: + break; + case INST_JUMP: + inst_jump(inst_rec.regi, inst_rec.memi); + break; + case INST_OUTPUT: + inst_output(inst_rec.regi, inst_rec.memi); + break; + case INST_LOAD: + inst_load(inst_rec.regi, inst_rec.memi); + break; + case INST_STORE: + inst_store(inst_rec.regi, inst_rec.memi); + break; + case INST_DELAY: + inst_delay(inst_rec.regi, inst_rec.memi); + break; + case INST_ADD: + inst_add(inst_rec.regi, inst_rec.memi); + break; + case INST_COMP: + inst_comp(inst_rec.regi, inst_rec.memi); + break; + case INST_JEQ: + inst_jeq(inst_rec.regi, inst_rec.memi); + break; + case INST_JNE: + inst_jne(inst_rec.regi, inst_rec.memi); + break; + case INST_JIEQ: + inst_jieq(inst_rec.regi, inst_rec.memi); + break; + case INST_JINE: + inst_jine(inst_rec.regi, inst_rec.memi); + break; + } +} + +void inst_jump(enum Register reg, unsigned char memory_index){ + set_pc(global_registers[reg]+memory_index); +} +void inst_output(enum Register reg, unsigned char memory_index){ + //�������̒l��7�Z�O�ɕ\�� + char buf[5]; + memory_load(memory_index, Sseg); + sprintf(buf, "%04d", global_registers[Sseg]); + print_block(buf, 4, HEX0_3); +} +void inst_load(enum Register reg, unsigned char memory_index){ + memory_load(memory_index, reg); +} +void inst_store(enum Register reg, unsigned char memory_index){ + memory_store(memory_index, reg); +} +void inst_delay(enum Register reg, unsigned char memory_index){ + //���W�X�^�̒l*10ms�҂� + usleep((int)global_registers[reg]*10000); +} +void inst_add(enum Register reg, unsigned char memory_index){ + global_registers[Sacc]+=global_registers[reg]; +} +void inst_comp(enum Register reg, unsigned char memory_index){ + if(global_registers[Sacc]==global_registers[reg]){ + global_registers[Sflg]=0; + } else if(global_registers[Sacc] > global_registers[reg]){ + global_registers[Sflg]=-1; + }else{ + global_registers[Sflg]=1; + } +} +void inst_jeq(enum Register reg, unsigned char memory_index){ + if(global_registers[Sflg]==global_registers[reg]){ + inc_pc(); + } +} +void inst_jne(enum Register reg, unsigned char memory_index){ + if(global_registers[Sflg]!=global_registers[reg]){ + inc_pc(); + } +} +void inst_jieq(char im, unsigned char memory_index){ + if(global_registers[Sflg]==im){ + inc_pc(); + } +} +void inst_jine(char im, unsigned char memory_index){ + if(global_registers[Sflg]!=im){ + inc_pc(); + } +} + diff --git a/software/qsys_tutorial_lcd4/inst_decoder.h b/software/qsys_tutorial_lcd4/inst_decoder.h new file mode 100644 index 0000000..9860750 --- /dev/null +++ b/software/qsys_tutorial_lcd4/inst_decoder.h @@ -0,0 +1,49 @@ +/* + * inst_decoder.h + * + * Created on: 2016/11/25 + * Author: takayun + */ + +#ifndef INST_DECODER_H_ +#define INST_DECODER_H_ + +#include "sys_register.h" + +#define INST_END 0x0 +#define INST_JUMP 0x1 +#define INST_OUTPUT 0x2 +#define INST_LOAD 0x3 +#define INST_STORE 0x4 +#define INST_DELAY 0x5 +#define INST_ADD 0x6 +#define INST_COMP 0x7 +#define INST_JEQ 0x8 +#define INST_JNE 0x9 +#define INST_JIEQ 0xA +#define INST_JINE 0xB + +struct InstRec { + unsigned int inst : 4; + unsigned int memi : 4; + unsigned int regi : 4; +}; + +struct InstRec inst_fetch(); + +void inst_decode(struct InstRec inst_rec); + +void inst_jump(enum Register reg, unsigned char memory_index); +void inst_output(enum Register reg, unsigned char memory_index); +void inst_load(enum Register reg, unsigned char memory_index); +void inst_store(enum Register reg, unsigned char memory_index); +void inst_delay(enum Register reg, unsigned char memory_index); +void inst_add(enum Register reg, unsigned char memory_index); +void inst_comp(enum Register reg, unsigned char memory_index); +void inst_jeq(enum Register reg, unsigned char memory_index); +void inst_jne(enum Register reg, unsigned char memory_index); +void inst_jieq(char im, unsigned char memory_index); +void inst_jine(char im, unsigned char memory_index); + + +#endif /* INST_DECODER_H_ */ diff --git a/software/qsys_tutorial_lcd4/lcd_out.c b/software/qsys_tutorial_lcd4/lcd_out.c new file mode 100644 index 0000000..a97d5a6 --- /dev/null +++ b/software/qsys_tutorial_lcd4/lcd_out.c @@ -0,0 +1,29 @@ +#include "lcd_out.h" +#include +#include +#include +#include +#include "system.h" +#include "LCD.h" + +// LCD�̏����� +void lcd_init() { + *lcd_on = 1; + *lcd_blon = 1; + LCD_Init(); +} + +// LCD�̃L�����b�g���P�s�ڂ̂͂��߂Ɉړ����� +void lcd_caret_reset() { + LCD_Init(); +} + +// LCD�̃L�����b�g���Q�s�ڂ̂͂��߂Ɉړ����� +void lcd_caret_reset2() { + LCD_Line2(); +} + +// LCD�ɕ�����\������ +void lcd_print(const char *str) { + LCD_Show_Text(str); +} diff --git a/software/qsys_tutorial_lcd4/lcd_out.h b/software/qsys_tutorial_lcd4/lcd_out.h new file mode 100644 index 0000000..a1c2cfe --- /dev/null +++ b/software/qsys_tutorial_lcd4/lcd_out.h @@ -0,0 +1,28 @@ +/* + * lcd_out.h + * + * Created on: 2016/12/02 + * Author: takayun + */ + +#ifndef LCD_OUT_H_ +#define LCD_OUT_H_ + +#include "system.h" + +#define lcd_on (volatile char *) LCD_ON_BASE +#define lcd_blon (volatile char *) LCD_BLON_BASE + +// LCD�̏����� +void lcd_init(); + +// LCD�̃L�����b�g���P�s�ڂ̂͂��߂Ɉړ����� +void lcd_caret_reset(); + +// LCD�̃L�����b�g���Q�s�ڂ̂͂��߂Ɉړ����� +void lcd_caret_reset2(); + +// LCD�ɕ�����\������ +void lcd_print(const char *str); + +#endif /* LCD_OUT_H_ */ diff --git a/software/qsys_tutorial_lcd4/obj/default/LCD.d b/software/qsys_tutorial_lcd4/obj/default/LCD.d new file mode 100644 index 0000000..2634512 --- /dev/null +++ b/software/qsys_tutorial_lcd4/obj/default/LCD.d @@ -0,0 +1,14 @@ +obj/default/LCD.o: LCD.c ../qsys_tutorial_lcd4_bsp//HAL/inc/io.h \ + ../qsys_tutorial_lcd4_bsp//HAL/inc/alt_types.h \ + ../qsys_tutorial_lcd4_bsp/system.h ../qsys_tutorial_lcd4_bsp/linker.h \ + LCD.h + +../qsys_tutorial_lcd4_bsp//HAL/inc/io.h: + +../qsys_tutorial_lcd4_bsp//HAL/inc/alt_types.h: + +../qsys_tutorial_lcd4_bsp/system.h: + +../qsys_tutorial_lcd4_bsp/linker.h: + +LCD.h: diff --git a/software/qsys_tutorial_lcd4/obj/default/LCD.o b/software/qsys_tutorial_lcd4/obj/default/LCD.o new file mode 100644 index 0000000..500af2b --- /dev/null +++ b/software/qsys_tutorial_lcd4/obj/default/LCD.o Binary files differ diff --git a/software/qsys_tutorial_lcd4/obj/default/hello_world_small.d b/software/qsys_tutorial_lcd4/obj/default/hello_world_small.d new file mode 100644 index 0000000..1c86f1a --- /dev/null +++ b/software/qsys_tutorial_lcd4/obj/default/hello_world_small.d @@ -0,0 +1,27 @@ +obj/default/hello_world_small.o: hello_world_small.c \ + ../qsys_tutorial_lcd4_bsp//HAL/inc/sys/alt_stdio.h \ + ../qsys_tutorial_lcd4_bsp/system.h ../qsys_tutorial_lcd4_bsp/linker.h \ + hex_out.h lcd_out.h sys_register.h sys_memory.h inst_decoder.h \ + input_int.h sys_debug.h sys_prog.h + +../qsys_tutorial_lcd4_bsp//HAL/inc/sys/alt_stdio.h: + +../qsys_tutorial_lcd4_bsp/system.h: + +../qsys_tutorial_lcd4_bsp/linker.h: + +hex_out.h: + +lcd_out.h: + +sys_register.h: + +sys_memory.h: + +inst_decoder.h: + +input_int.h: + +sys_debug.h: + +sys_prog.h: diff --git a/software/qsys_tutorial_lcd4/obj/default/hello_world_small.o b/software/qsys_tutorial_lcd4/obj/default/hello_world_small.o new file mode 100644 index 0000000..cc78ec2 --- /dev/null +++ b/software/qsys_tutorial_lcd4/obj/default/hello_world_small.o Binary files differ diff --git a/software/qsys_tutorial_lcd4/obj/default/hex_encoder.d b/software/qsys_tutorial_lcd4/obj/default/hex_encoder.d new file mode 100644 index 0000000..600af0b --- /dev/null +++ b/software/qsys_tutorial_lcd4/obj/default/hex_encoder.d @@ -0,0 +1,8 @@ +obj/default/hex_encoder.o: hex_encoder.c hex_encoder.h \ + ../qsys_tutorial_lcd4_bsp/system.h ../qsys_tutorial_lcd4_bsp/linker.h + +hex_encoder.h: + +../qsys_tutorial_lcd4_bsp/system.h: + +../qsys_tutorial_lcd4_bsp/linker.h: diff --git a/software/qsys_tutorial_lcd4/obj/default/hex_encoder.o b/software/qsys_tutorial_lcd4/obj/default/hex_encoder.o new file mode 100644 index 0000000..e6f5f32 --- /dev/null +++ b/software/qsys_tutorial_lcd4/obj/default/hex_encoder.o Binary files differ diff --git a/software/qsys_tutorial_lcd4/obj/default/hex_out.d b/software/qsys_tutorial_lcd4/obj/default/hex_out.d new file mode 100644 index 0000000..fb61bcb --- /dev/null +++ b/software/qsys_tutorial_lcd4/obj/default/hex_out.d @@ -0,0 +1,13 @@ +obj/default/hex_out.o: hex_out.c hex_out.h hex_encoder.h \ + ../qsys_tutorial_lcd4_bsp/system.h ../qsys_tutorial_lcd4_bsp/linker.h \ + sys_except.h + +hex_out.h: + +hex_encoder.h: + +../qsys_tutorial_lcd4_bsp/system.h: + +../qsys_tutorial_lcd4_bsp/linker.h: + +sys_except.h: diff --git a/software/qsys_tutorial_lcd4/obj/default/hex_out.o b/software/qsys_tutorial_lcd4/obj/default/hex_out.o new file mode 100644 index 0000000..2279113 --- /dev/null +++ b/software/qsys_tutorial_lcd4/obj/default/hex_out.o Binary files differ diff --git a/software/qsys_tutorial_lcd4/obj/default/input_int.d b/software/qsys_tutorial_lcd4/obj/default/input_int.d new file mode 100644 index 0000000..5f6f066 --- /dev/null +++ b/software/qsys_tutorial_lcd4/obj/default/input_int.d @@ -0,0 +1,11 @@ +obj/default/input_int.o: input_int.c input_int.h \ + ../qsys_tutorial_lcd4_bsp/system.h ../qsys_tutorial_lcd4_bsp/linker.h \ + sys_register.h + +input_int.h: + +../qsys_tutorial_lcd4_bsp/system.h: + +../qsys_tutorial_lcd4_bsp/linker.h: + +sys_register.h: diff --git a/software/qsys_tutorial_lcd4/obj/default/input_int.o b/software/qsys_tutorial_lcd4/obj/default/input_int.o new file mode 100644 index 0000000..2ccc4dc --- /dev/null +++ b/software/qsys_tutorial_lcd4/obj/default/input_int.o Binary files differ diff --git a/software/qsys_tutorial_lcd4/obj/default/inst_decoder.d b/software/qsys_tutorial_lcd4/obj/default/inst_decoder.d new file mode 100644 index 0000000..66c5270 --- /dev/null +++ b/software/qsys_tutorial_lcd4/obj/default/inst_decoder.d @@ -0,0 +1,12 @@ +obj/default/inst_decoder.o: inst_decoder.c inst_decoder.h sys_register.h \ + sys_memory.h hex_out.h sys_prog.h + +inst_decoder.h: + +sys_register.h: + +sys_memory.h: + +hex_out.h: + +sys_prog.h: diff --git a/software/qsys_tutorial_lcd4/obj/default/inst_decoder.o b/software/qsys_tutorial_lcd4/obj/default/inst_decoder.o new file mode 100644 index 0000000..2e7c866 --- /dev/null +++ b/software/qsys_tutorial_lcd4/obj/default/inst_decoder.o Binary files differ diff --git a/software/qsys_tutorial_lcd4/obj/default/lcd_out.d b/software/qsys_tutorial_lcd4/obj/default/lcd_out.d new file mode 100644 index 0000000..f1e03d1 --- /dev/null +++ b/software/qsys_tutorial_lcd4/obj/default/lcd_out.d @@ -0,0 +1,11 @@ +obj/default/lcd_out.o: lcd_out.c lcd_out.h \ + ../qsys_tutorial_lcd4_bsp/system.h ../qsys_tutorial_lcd4_bsp/linker.h \ + LCD.h + +lcd_out.h: + +../qsys_tutorial_lcd4_bsp/system.h: + +../qsys_tutorial_lcd4_bsp/linker.h: + +LCD.h: diff --git a/software/qsys_tutorial_lcd4/obj/default/lcd_out.o b/software/qsys_tutorial_lcd4/obj/default/lcd_out.o new file mode 100644 index 0000000..b2e5dd5 --- /dev/null +++ b/software/qsys_tutorial_lcd4/obj/default/lcd_out.o Binary files differ diff --git a/software/qsys_tutorial_lcd4/obj/default/sys_debug.d b/software/qsys_tutorial_lcd4/obj/default/sys_debug.d new file mode 100644 index 0000000..4d04c60 --- /dev/null +++ b/software/qsys_tutorial_lcd4/obj/default/sys_debug.d @@ -0,0 +1,15 @@ +obj/default/sys_debug.o: sys_debug.c sys_debug.h inst_decoder.h \ + sys_register.h lcd_out.h ../qsys_tutorial_lcd4_bsp/system.h \ + ../qsys_tutorial_lcd4_bsp/linker.h + +sys_debug.h: + +inst_decoder.h: + +sys_register.h: + +lcd_out.h: + +../qsys_tutorial_lcd4_bsp/system.h: + +../qsys_tutorial_lcd4_bsp/linker.h: diff --git a/software/qsys_tutorial_lcd4/obj/default/sys_debug.o b/software/qsys_tutorial_lcd4/obj/default/sys_debug.o new file mode 100644 index 0000000..9211581 --- /dev/null +++ b/software/qsys_tutorial_lcd4/obj/default/sys_debug.o Binary files differ diff --git a/software/qsys_tutorial_lcd4/obj/default/sys_except.d b/software/qsys_tutorial_lcd4/obj/default/sys_except.d new file mode 100644 index 0000000..81b0c01 --- /dev/null +++ b/software/qsys_tutorial_lcd4/obj/default/sys_except.d @@ -0,0 +1,8 @@ +obj/default/sys_except.o: sys_except.c ../qsys_tutorial_lcd4_bsp/system.h \ + ../qsys_tutorial_lcd4_bsp/linker.h hex_out.h + +../qsys_tutorial_lcd4_bsp/system.h: + +../qsys_tutorial_lcd4_bsp/linker.h: + +hex_out.h: diff --git a/software/qsys_tutorial_lcd4/obj/default/sys_except.o b/software/qsys_tutorial_lcd4/obj/default/sys_except.o new file mode 100644 index 0000000..904dcf7 --- /dev/null +++ b/software/qsys_tutorial_lcd4/obj/default/sys_except.o Binary files differ diff --git a/software/qsys_tutorial_lcd4/obj/default/sys_memory.d b/software/qsys_tutorial_lcd4/obj/default/sys_memory.d new file mode 100644 index 0000000..4ab3444 --- /dev/null +++ b/software/qsys_tutorial_lcd4/obj/default/sys_memory.d @@ -0,0 +1,13 @@ +obj/default/sys_memory.o: sys_memory.c ../qsys_tutorial_lcd4_bsp/system.h \ + ../qsys_tutorial_lcd4_bsp/linker.h sys_memory.h sys_register.h \ + inst_decoder.h + +../qsys_tutorial_lcd4_bsp/system.h: + +../qsys_tutorial_lcd4_bsp/linker.h: + +sys_memory.h: + +sys_register.h: + +inst_decoder.h: diff --git a/software/qsys_tutorial_lcd4/obj/default/sys_memory.o b/software/qsys_tutorial_lcd4/obj/default/sys_memory.o new file mode 100644 index 0000000..d3edf3a --- /dev/null +++ b/software/qsys_tutorial_lcd4/obj/default/sys_memory.o Binary files differ diff --git a/software/qsys_tutorial_lcd4/obj/default/sys_prog.d b/software/qsys_tutorial_lcd4/obj/default/sys_prog.d new file mode 100644 index 0000000..715417c --- /dev/null +++ b/software/qsys_tutorial_lcd4/obj/default/sys_prog.d @@ -0,0 +1,8 @@ +obj/default/sys_prog.o: sys_prog.c sys_register.h sys_memory.h \ + inst_decoder.h + +sys_register.h: + +sys_memory.h: + +inst_decoder.h: diff --git a/software/qsys_tutorial_lcd4/obj/default/sys_prog.o b/software/qsys_tutorial_lcd4/obj/default/sys_prog.o new file mode 100644 index 0000000..2078ff4 --- /dev/null +++ b/software/qsys_tutorial_lcd4/obj/default/sys_prog.o Binary files differ diff --git a/software/qsys_tutorial_lcd4/obj/default/sys_register.d b/software/qsys_tutorial_lcd4/obj/default/sys_register.d new file mode 100644 index 0000000..ec29589 --- /dev/null +++ b/software/qsys_tutorial_lcd4/obj/default/sys_register.d @@ -0,0 +1,3 @@ +obj/default/sys_register.o: sys_register.c sys_register.h + +sys_register.h: diff --git a/software/qsys_tutorial_lcd4/obj/default/sys_register.o b/software/qsys_tutorial_lcd4/obj/default/sys_register.o new file mode 100644 index 0000000..51e9247 --- /dev/null +++ b/software/qsys_tutorial_lcd4/obj/default/sys_register.o Binary files differ diff --git a/software/qsys_tutorial_lcd4/qsys_tutorial_lcd4.elf b/software/qsys_tutorial_lcd4/qsys_tutorial_lcd4.elf new file mode 100644 index 0000000..38c409e --- /dev/null +++ b/software/qsys_tutorial_lcd4/qsys_tutorial_lcd4.elf Binary files differ diff --git a/software/qsys_tutorial_lcd4/qsys_tutorial_lcd4.map b/software/qsys_tutorial_lcd4/qsys_tutorial_lcd4.map new file mode 100644 index 0000000..d7d2930 --- /dev/null +++ b/software/qsys_tutorial_lcd4/qsys_tutorial_lcd4.map @@ -0,0 +1,2507 @@ +Archive member included because of file (symbol) + +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-divmod.o) + obj/default/hex_out.o (__divsi3) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-mul.o) + obj/default/hello_world_small.o (__mulsi3) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-ctype_.o) + obj/default/hex_encoder.o (__ctype_ptr) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-sprintf.o) + obj/default/hello_world_small.o (sprintf) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-strlen.o) + obj/default/LCD.o (strlen) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-vfprintf.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-sprintf.o) (___vfprintf_internal_r) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-wsetup.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-vfprintf.o) (__swsetup_r) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-dtoa.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-vfprintf.o) (_dtoa_r) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fflush.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-vfprintf.o) (_fflush_r) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-findfp.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-vfprintf.o) (__sinit) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-freer.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-wsetup.o) (_free_r) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fvwrite.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-vfprintf.o) (__sfvwrite_r) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fwalk.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fflush.o) (_fwalk_reent) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-impure.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-sprintf.o) (_impure_ptr) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-locale.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-vfprintf.o) (_localeconv_r) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-makebuf.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-wsetup.o) (__smakebuf_r) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-mallocr.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-findfp.o) (_malloc_r) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memchr.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-vfprintf.o) (memchr) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memcpy.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-dtoa.o) (memcpy) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memmove.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fvwrite.o) (memmove) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memset.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-findfp.o) (memset) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-mprec.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-dtoa.o) (_Bfree) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-reallocr.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fvwrite.o) (_realloc_r) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-s_isinfd.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-vfprintf.o) (__isinfd) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-s_isnand.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-vfprintf.o) (__isnand) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-sbrkr.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-freer.o) (_sbrk_r) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-stdio.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-findfp.o) (__sclose) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-strcmp.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-locale.o) (strcmp) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-writer.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-stdio.o) (_write_r) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-callocr.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-mprec.o) (_calloc_r) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-closer.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-stdio.o) (_close_r) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fclose.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-findfp.o) (fclose) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fstatr.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-makebuf.o) (_fstat_r) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-int_errno.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-sbrkr.o) (errno) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-isattyr.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-makebuf.o) (_isatty_r) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-lseekr.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-stdio.o) (_lseek_r) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-readr.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-stdio.o) (_read_r) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_udivdi3.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-vfprintf.o) (__udivdi3) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_umoddi3.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-vfprintf.o) (__umoddi3) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_addsub_df.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-dtoa.o) (__subdf3) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_mul_df.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-dtoa.o) (__muldf3) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_div_df.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-dtoa.o) (__divdf3) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_eq_df.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-vfprintf.o) (__eqdf2) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_ne_df.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-vfprintf.o) (__nedf2) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_gt_df.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-dtoa.o) (__gtdf2) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_ge_df.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-dtoa.o) (__gedf2) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_lt_df.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-vfprintf.o) (__ltdf2) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_si_to_df.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-dtoa.o) (__floatsidf) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_df_to_si.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-dtoa.o) (__fixdfsi) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_thenan_df.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_addsub_df.o) (__thenan_df) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_usi_to_df.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-dtoa.o) (__floatunsidf) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_muldi3.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_mul_df.o) (__muldi3) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_clz.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_udivdi3.o) (__clz_tab) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_clzsi2.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_si_to_df.o) (__clzsi2) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_pack_df.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_addsub_df.o) (__pack_d) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_unpack_df.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_addsub_df.o) (__unpack_d) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_fpcmp_parts_df.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_eq_df.o) (__fpcmp_parts_d) +../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_close.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-closer.o) (close) +../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_dev.o) + ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_close.o) (alt_fd_list) +../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_errno.o) + ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_close.o) (alt_errno) +../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_fstat.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fstatr.o) (fstat) +../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_isatty.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-isattyr.o) (isatty) +../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_load.o) + ../qsys_tutorial_lcd4_bsp//obj/HAL/src/crt0.o (alt_load) +../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_lseek.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-lseekr.o) (lseek) +../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_main.o) + ../qsys_tutorial_lcd4_bsp//obj/HAL/src/crt0.o (alt_main) +../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_malloc_lock.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-freer.o) (__malloc_lock) +../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_read.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-readr.o) (read) +../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_release_fd.o) + ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_close.o) (alt_release_fd) +../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_sbrk.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-sbrkr.o) (sbrk) +../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_usleep.o) + obj/default/LCD.o (usleep) +../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_write.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-writer.o) (write) +../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_sys_init.o) + ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_main.o) (alt_irq_init) +../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_fd.o) + ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_sys_init.o) (altera_avalon_jtag_uart_read_fd) +../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_init.o) + ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_sys_init.o) (altera_avalon_jtag_uart_init) +../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_ioctl.o) + ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_fd.o) (altera_avalon_jtag_uart_ioctl) +../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_read.o) + ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_fd.o) (altera_avalon_jtag_uart_read) +../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_write.o) + ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_fd.o) (altera_avalon_jtag_uart_write) +../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(altera_avalon_lcd_16207.o) + ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_sys_init.o) (altera_avalon_lcd_16207_init) +../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(altera_avalon_lcd_16207_fd.o) + ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_sys_init.o) (altera_avalon_lcd_16207_write_fd) +../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_alarm_start.o) + ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_init.o) (alt_alarm_start) +../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_busy_sleep.o) + ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_usleep.o) (alt_busy_sleep) +../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) + ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_load.o) (alt_dcache_flush_all) +../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_dev_llist_insert.o) + ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_sys_init.o) (alt_dev_llist_insert) +../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_do_ctors.o) + ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_main.o) (_do_ctors) +../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_do_dtors.o) + ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_main.o) (_do_dtors) +../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_icache_flush_all.o) + ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_load.o) (alt_icache_flush_all) +../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_iic.o) + ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_init.o) (alt_ic_isr_register) +../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_iic_isr_register.o) + ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_iic.o) (alt_iic_isr_register) +../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_io_redirect.o) + ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_main.o) (alt_io_redirect) +../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_irq_entry.o) + ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_iic_isr_register.o) (alt_irq_entry) +../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_irq_handler.o) + ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_iic_isr_register.o) (alt_irq_handler) +../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_irq_vars.o) + ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_iic.o) (alt_irq_active) +../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_open.o) + ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_io_redirect.o) (open) +../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_tick.o) + ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_init.o) (_alt_tick_rate) +../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) + ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_sys_init.o) (altera_nios2_qsys_irq_init) +../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_exception_entry.o) + ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_irq_entry.o) (alt_exception) +../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_find_dev.o) + ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_open.o) (alt_find_dev) +../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_find_file.o) + ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_open.o) (alt_find_file) +../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_get_fd.o) + ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_open.o) (alt_get_fd) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-atexit.o) + ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_main.o) (atexit) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-exit.o) + ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_main.o) (exit) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memcmp.o) + ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_find_dev.o) (memcmp) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-__atexit.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-atexit.o) (__register_exitproc) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-__call_atexit.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-exit.o) (__call_exitprocs) +../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_exit.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-exit.o) (_exit) + +Allocating common symbols +Common symbol size file + +alt_irq 0x100 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_irq_handler.o) +errno 0x4 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-int_errno.o) +stack 0x5 obj/default/hello_world_small.o +global_registers 0xf obj/default/sys_register.o +_atexit0 0x190 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-atexit.o) + +Memory Configuration + +Name Origin Length Attributes +reset 0x00000000 0x00000020 +onchip_memory 0x00000020 0x00031fe0 +*default* 0x00000000 0xffffffff + +Linker script and memory map + +LOAD ../qsys_tutorial_lcd4_bsp//obj/HAL/src/crt0.o +LOAD obj/default/LCD.o +LOAD obj/default/hello_world_small.o +LOAD obj/default/hex_encoder.o +LOAD obj/default/hex_out.o +LOAD obj/default/input_int.o +LOAD obj/default/inst_decoder.o +LOAD obj/default/lcd_out.o +LOAD obj/default/sys_debug.o +LOAD obj/default/sys_except.o +LOAD obj/default/sys_memory.o +LOAD obj/default/sys_prog.o +LOAD obj/default/sys_register.o +LOAD c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libstdc++.a +LOAD c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libm.a +LOAD c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a +START GROUP +LOAD c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a +LOAD c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a +LOAD ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a +END GROUP +LOAD c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a + 0x00000000 __alt_mem_onchip_memory = 0x0 + +.entry 0x00000000 0x20 + *(.entry) + .entry 0x00000000 0x20 ../qsys_tutorial_lcd4_bsp//obj/HAL/src/crt0.o + 0x00000000 __reset + +.exceptions 0x00000020 0x194 + 0x00000020 PROVIDE (__ram_exceptions_start, ABSOLUTE (.)) + 0x00000020 . = ALIGN (0x20) + *(.irq) + *(.exceptions.entry.label) + .exceptions.entry.label + 0x00000020 0x0 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_irq_entry.o) + 0x00000020 alt_irq_entry + .exceptions.entry.label + 0x00000020 0x0 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_exception_entry.o) + 0x00000020 alt_exception + *(.exceptions.entry.user) + *(.exceptions.entry) + .exceptions.entry + 0x00000020 0x54 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_exception_entry.o) + *(.exceptions.irqtest.user) + *(.exceptions.irqtest) + .exceptions.irqtest + 0x00000074 0x10 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_irq_entry.o) + *(.exceptions.irqhandler.user) + *(.exceptions.irqhandler) + .exceptions.irqhandler + 0x00000084 0x4 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_irq_entry.o) + *(.exceptions.irqreturn.user) + *(.exceptions.irqreturn) + .exceptions.irqreturn + 0x00000088 0x4 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_irq_entry.o) + *(.exceptions.notirq.label) + .exceptions.notirq.label + 0x0000008c 0x0 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_irq_entry.o) + *(.exceptions.notirq.user) + *(.exceptions.notirq) + .exceptions.notirq + 0x0000008c 0x8 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_exception_entry.o) + *(.exceptions.soft.user) + *(.exceptions.soft) + *(.exceptions.unknown.user) + *(.exceptions.unknown) + .exceptions.unknown + 0x00000094 0x4 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_exception_entry.o) + *(.exceptions.exit.label) + .exceptions.exit.label + 0x00000098 0x0 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_irq_entry.o) + .exceptions.exit.label + 0x00000098 0x0 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_exception_entry.o) + *(.exceptions.exit.user) + *(.exceptions.exit) + .exceptions.exit + 0x00000098 0x54 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_exception_entry.o) + *(.exceptions) + .exceptions 0x000000ec 0xc8 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_irq_handler.o) + 0x000000ec alt_irq_handler + 0x000001b4 PROVIDE (__ram_exceptions_end, ABSOLUTE (.)) + 0x00000020 PROVIDE (__flash_exceptions_start, LOADADDR (.exceptions)) + +.text 0x000001b4 0xfce4 + 0x000001b4 PROVIDE (stext, ABSOLUTE (.)) + *(.interp) + *(.hash) + *(.dynsym) + *(.dynstr) + *(.gnu.version) + *(.gnu.version_d) + *(.gnu.version_r) + *(.rel.init) + *(.rela.init) + *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) + *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) + *(.rel.fini) + *(.rela.fini) + *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) + *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) + *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) + *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) + *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) + *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) + *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) + *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) + *(.rel.ctors) + *(.rela.ctors) + *(.rel.dtors) + *(.rela.dtors) + *(.rel.got) + *(.rela.got) + *(.rel.sdata .rel.sdata.* .rel.gnu.linkonce.s.*) + *(.rela.sdata .rela.sdata.* .rela.gnu.linkonce.s.*) + *(.rel.sbss .rel.sbss.* .rel.gnu.linkonce.sb.*) + *(.rela.sbss .rela.sbss.* .rela.gnu.linkonce.sb.*) + *(.rel.sdata2 .rel.sdata2.* .rel.gnu.linkonce.s2.*) + *(.rela.sdata2 .rela.sdata2.* .rela.gnu.linkonce.s2.*) + *(.rel.sbss2 .rel.sbss2.* .rel.gnu.linkonce.sb2.*) + *(.rela.sbss2 .rela.sbss2.* .rela.gnu.linkonce.sb2.*) + *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) + *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) + *(.rel.plt) + *(.rela.plt) + *(.rel.dyn) + *(.init) + *(.plt) + *(.text .stub .text.* .gnu.linkonce.t.*) + .text 0x000001b4 0x3c ../qsys_tutorial_lcd4_bsp//obj/HAL/src/crt0.o + 0x000001b4 _start + .text 0x000001f0 0x1ec obj/default/LCD.o + 0x000001f0 LCD_Init + 0x0000028c LCD_Show_Text + 0x00000314 LCD_Line2 + 0x00000350 LCD_Test + .text 0x000003dc 0x960 obj/default/hello_world_small.o + 0x000003dc wait + 0x00000418 init + 0x000004d8 store_value + 0x000005bc store_inst + 0x00000724 run_proc + 0x00000874 print_change_memory + 0x00000ab4 main + .text 0x00000d3c 0x630 obj/default/hex_encoder.o + 0x00000d3c encodeNumHex + 0x00000f18 encodeLatHex + .text 0x0000136c 0x318 obj/default/hex_out.o + 0x0000136c print_block + 0x000014fc clear_block + 0x0000158c print_number + .text 0x00001684 0x2c0 obj/default/input_int.o + 0x00001684 in_int + 0x00001794 push_decode + 0x00001840 push_int + .text 0x00001944 0x6d4 obj/default/inst_decoder.o + 0x00001944 inst_fetch + 0x00001990 inst_decode + 0x00001bdc inst_jump + 0x00001c38 inst_output + 0x00001ca8 inst_load + 0x00001ce0 inst_store + 0x00001d18 inst_delay + 0x00001d74 inst_add + 0x00001dd0 inst_comp + 0x00001ea0 inst_jeq + 0x00001f0c inst_jne + 0x00001f78 inst_jieq + 0x00001fc8 inst_jine + .text 0x00002018 0xc8 obj/default/lcd_out.o + 0x00002018 lcd_init + 0x00002060 lcd_caret_reset + 0x00002088 lcd_caret_reset2 + 0x000020b0 lcd_print + .text 0x000020e0 0x524 obj/default/sys_debug.o + 0x000020e0 display_inst + 0x0000218c display_mem + 0x000021f8 convertRegName + 0x00002368 convertInstName + .text 0x00002604 0x40 obj/default/sys_except.o + 0x00002604 panic + .text 0x00002644 0x240 obj/default/sys_memory.o + 0x00002644 memory_init + 0x000026c0 inst_memory_store + 0x00002710 inst_memory_load + 0x00002758 memory_store + 0x000027f4 memory_load + .text 0x00002884 0x10c obj/default/sys_prog.o + 0x00002884 inc_pc + 0x00002908 add_pc + 0x00002958 set_pc + .text 0x00002990 0x50 obj/default/sys_register.o + 0x00002990 registers_init + .text 0x000029e0 0x14c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-divmod.o) + 0x00002a5c __divsi3 + 0x00002abc __modsi3 + 0x00002b1c __udivsi3 + 0x00002b24 __umodsi3 + .text 0x00002b2c 0x38 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-mul.o) + 0x00002b2c __mulsi3 + .text 0x00002b64 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-ctype_.o) + .text 0x00002b64 0xd4 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-sprintf.o) + 0x00002b64 sprintf + 0x00002bd8 _sprintf_r + .text 0x00002c38 0x74 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-strlen.o) + 0x00002c38 strlen + .text 0x00002cac 0x1f40 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-vfprintf.o) + 0x00002d04 ___vfprintf_internal_r + 0x00004bc8 __vfprintf_internal + .text 0x00004bec 0x13c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-wsetup.o) + 0x00004bec __swsetup_r + .text 0x00004d28 0x17f8 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-dtoa.o) + 0x00004f6c _dtoa_r + .text 0x00006520 0x230 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fflush.o) + 0x00006520 _fflush_r + 0x0000671c fflush + .text 0x00006750 0x2f4 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-findfp.o) + 0x000067a8 __sfp_lock_acquire + 0x000067ac __sfp_lock_release + 0x000067b0 __sinit_lock_acquire + 0x000067b4 __sinit_lock_release + 0x000067b8 __sinit + 0x0000686c __fp_unlock_all + 0x00006884 __fp_lock_all + 0x0000689c _cleanup_r + 0x000068a8 _cleanup + 0x000068b8 __sfmoreglue + 0x00006954 __sfp + .text 0x00006a44 0x440 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-freer.o) + 0x00006a44 _malloc_trim_r + 0x00006b70 _free_r + .text 0x00006e84 0x49c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fvwrite.o) + 0x00006e84 __sfvwrite_r + .text 0x00007320 0x180 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fwalk.o) + 0x00007320 _fwalk_reent + 0x000073e8 _fwalk + .text 0x000074a0 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-impure.o) + .text 0x000074a0 0xc4 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-locale.o) + 0x000074a0 __locale_charset + 0x000074a8 _localeconv_r + 0x000074b4 localeconv + 0x000074c4 _setlocale_r + 0x00007548 setlocale + .text 0x00007564 0x194 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-makebuf.o) + 0x00007564 __smakebuf_r + .text 0x000076f8 0x740 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-mallocr.o) + 0x000076f8 _malloc_r + .text 0x00007e38 0xe4 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memchr.o) + 0x00007e38 memchr + .text 0x00007f1c 0xa0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memcpy.o) + 0x00007f1c memcpy + .text 0x00007fbc 0xe0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memmove.o) + 0x00007fbc memmove + .text 0x0000809c 0x98 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memset.o) + 0x0000809c memset + .text 0x00008134 0x108c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-mprec.o) + 0x00008134 _Bfree + 0x0000815c __hi0bits + 0x000081cc __lo0bits + 0x00008290 __mcmp + 0x000082f0 __ulp + 0x00008370 __b2d + 0x00008490 __ratio + 0x00008540 _mprec_log10 + 0x000085d4 __copybits + 0x0000862c __any_on + 0x000086b4 _Balloc + 0x00008770 __d2b + 0x000088ec __mdiff + 0x00008a78 __lshift + 0x00008bc4 __multiply + 0x00008e18 __i2b + 0x00008e54 __multadd + 0x00008f80 __pow5mult + 0x000090a0 __s2b + .text 0x000091c0 0x5f4 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-reallocr.o) + 0x000091c0 _realloc_r + .text 0x000097b4 0x40 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-s_isinfd.o) + 0x000097b4 __isinfd + .text 0x000097f4 0x30 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-s_isnand.o) + 0x000097f4 __isnand + .text 0x00009824 0x70 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-sbrkr.o) + 0x00009824 _sbrk_r + .text 0x00009894 0x14c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-stdio.o) + 0x00009894 __sclose + 0x0000989c __sseek + 0x00009904 __swrite + 0x00009980 __sread + .text 0x000099e0 0xbc c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-strcmp.o) + 0x000099e0 strcmp + .text 0x00009a9c 0x78 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-writer.o) + 0x00009a9c _write_r + .text 0x00009b14 0xc8 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-callocr.o) + 0x00009b14 _calloc_r + .text 0x00009bdc 0x70 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-closer.o) + 0x00009bdc _close_r + .text 0x00009c4c 0x124 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fclose.o) + 0x00009c4c _fclose_r + 0x00009d5c fclose + .text 0x00009d70 0x74 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fstatr.o) + 0x00009d70 _fstat_r + .text 0x00009de4 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-int_errno.o) + .text 0x00009de4 0x70 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-isattyr.o) + 0x00009de4 _isatty_r + .text 0x00009e54 0x78 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-lseekr.o) + 0x00009e54 _lseek_r + .text 0x00009ecc 0x78 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-readr.o) + 0x00009ecc _read_r + .text 0x00009f44 0x66c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_udivdi3.o) + 0x00009f44 __udivdi3 + .text 0x0000a5b0 0x660 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_umoddi3.o) + 0x0000a5b0 __umoddi3 + .text 0x0000ac10 0x504 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_addsub_df.o) + 0x0000b020 __subdf3 + 0x0000b0a0 __adddf3 + .text 0x0000b114 0x3c4 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_mul_df.o) + 0x0000b114 __muldf3 + .text 0x0000b4d8 0x258 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_div_df.o) + 0x0000b4d8 __divdf3 + .text 0x0000b730 0x88 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_eq_df.o) + 0x0000b730 __eqdf2 + .text 0x0000b7b8 0x88 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_ne_df.o) + 0x0000b7b8 __nedf2 + .text 0x0000b840 0x88 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_gt_df.o) + 0x0000b840 __gtdf2 + .text 0x0000b8c8 0x88 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_ge_df.o) + 0x0000b8c8 __gedf2 + .text 0x0000b950 0x88 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_lt_df.o) + 0x0000b950 __ltdf2 + .text 0x0000b9d8 0xf8 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_si_to_df.o) + 0x0000b9d8 __floatsidf + .text 0x0000bad0 0xd8 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_df_to_si.o) + 0x0000bad0 __fixdfsi + .text 0x0000bba8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_thenan_df.o) + .text 0x0000bba8 0x194 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_usi_to_df.o) + 0x0000bba8 __floatunsidf + .text 0x0000bd3c 0x124 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_muldi3.o) + 0x0000bd3c __muldi3 + .text 0x0000be60 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_clz.o) + .text 0x0000be60 0x80 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_clzsi2.o) + 0x0000be60 __clzsi2 + .text 0x0000bee0 0x314 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_pack_df.o) + 0x0000bee0 __pack_d + .text 0x0000c1f4 0x138 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_unpack_df.o) + 0x0000c1f4 __unpack_d + .text 0x0000c32c 0xc8 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_fpcmp_parts_df.o) + 0x0000c32c __fpcmp_parts_d + .text 0x0000c3f4 0x160 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_close.o) + 0x0000c3f4 close + .text 0x0000c554 0x2c ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_dev.o) + .text 0x0000c580 0x0 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_errno.o) + .text 0x0000c580 0x138 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_fstat.o) + 0x0000c580 fstat + .text 0x0000c6b8 0x124 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_isatty.o) + 0x0000c6b8 isatty + .text 0x0000c7dc 0xec ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_load.o) + 0x0000c7dc alt_load + .text 0x0000c8c8 0x154 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_lseek.o) + 0x0000c8c8 lseek + .text 0x0000ca1c 0x6c ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_main.o) + 0x0000ca1c alt_main + .text 0x0000ca88 0x40 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_malloc_lock.o) + 0x0000ca88 __malloc_lock + 0x0000caa8 __malloc_unlock + .text 0x0000cac8 0x184 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_read.o) + 0x0000cac8 read + .text 0x0000cc4c 0x78 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_release_fd.o) + 0x0000cc4c alt_release_fd + .text 0x0000ccc4 0xbc ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_sbrk.o) + 0x0000ccc4 sbrk + .text 0x0000cd80 0x30 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_usleep.o) + 0x0000cd80 usleep + .text 0x0000cdb0 0x184 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_write.o) + 0x0000cdb0 write + .text 0x0000cf34 0xc8 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_sys_init.o) + 0x0000cf34 alt_irq_init + 0x0000cf68 alt_sys_init + .text 0x0000cffc 0x148 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_fd.o) + 0x0000cffc altera_avalon_jtag_uart_read_fd + 0x0000d054 altera_avalon_jtag_uart_write_fd + 0x0000d0ac altera_avalon_jtag_uart_close_fd + 0x0000d0f4 altera_avalon_jtag_uart_ioctl_fd + .text 0x0000d144 0x40c ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_init.o) + 0x0000d144 altera_avalon_jtag_uart_init + 0x0000d4dc altera_avalon_jtag_uart_close + .text 0x0000d550 0xf4 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_ioctl.o) + 0x0000d550 altera_avalon_jtag_uart_ioctl + .text 0x0000d644 0x224 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_read.o) + 0x0000d644 altera_avalon_jtag_uart_read + .text 0x0000d868 0x240 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_write.o) + 0x0000d868 altera_avalon_jtag_uart_write + .text 0x0000daa8 0xf80 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(altera_avalon_lcd_16207.o) + 0x0000e2e4 altera_avalon_lcd_16207_write + 0x0000e8ec altera_avalon_lcd_16207_init + .text 0x0000ea28 0x58 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(altera_avalon_lcd_16207_fd.o) + 0x0000ea28 altera_avalon_lcd_16207_write_fd + .text 0x0000ea80 0x154 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_alarm_start.o) + 0x0000ea80 alt_alarm_start + .text 0x0000ebd4 0x15c ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_busy_sleep.o) + 0x0000ebd4 alt_busy_sleep + .text 0x0000ed30 0x1c ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) + 0x0000ed30 alt_dcache_flush_all + .text 0x0000ed4c 0x114 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_dev_llist_insert.o) + 0x0000ed4c alt_dev_llist_insert + .text 0x0000ee60 0x64 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_do_ctors.o) + 0x0000ee60 _do_ctors + .text 0x0000eec4 0x64 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_do_dtors.o) + 0x0000eec4 _do_dtors + .text 0x0000ef28 0x1c ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_icache_flush_all.o) + 0x0000ef28 alt_icache_flush_all + .text 0x0000ef44 0x1d4 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_iic.o) + 0x0000ef44 alt_ic_isr_register + 0x0000ef94 alt_ic_irq_enable + 0x0000f030 alt_ic_irq_disable + 0x0000f0d0 alt_ic_irq_enabled + .text 0x0000f118 0xf8 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_iic_isr_register.o) + 0x0000f118 alt_iic_isr_register + .text 0x0000f210 0x150 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_io_redirect.o) + 0x0000f2e8 alt_io_redirect + .text 0x0000f360 0x0 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_irq_entry.o) + .text 0x0000f360 0x0 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_irq_handler.o) + .text 0x0000f360 0x0 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_irq_vars.o) + .text 0x0000f360 0x2e4 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_open.o) + 0x0000f458 open + .text 0x0000f644 0x1a4 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_tick.o) + 0x0000f644 alt_alarm_stop + 0x0000f6dc alt_tick + .text 0x0000f7e8 0x20 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) + 0x0000f7e8 altera_nios2_qsys_irq_init + .text 0x0000f808 0x0 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_exception_entry.o) + .text 0x0000f808 0x94 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_find_dev.o) + 0x0000f808 alt_find_dev + .text 0x0000f89c 0x120 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_find_file.o) + 0x0000f89c alt_find_file + .text 0x0000f9bc 0xd0 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_get_fd.o) + 0x0000f9bc alt_get_fd + .text 0x0000fa8c 0x14 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-atexit.o) + 0x0000fa8c atexit + .text 0x0000faa0 0x38 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-exit.o) + 0x0000faa0 exit + .text 0x0000fad8 0x74 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memcmp.o) + 0x0000fad8 memcmp + .text 0x0000fb4c 0x134 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-__atexit.o) + 0x0000fb4c __register_exitproc + .text 0x0000fc80 0x1b4 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-__call_atexit.o) + 0x0000fc84 __call_exitprocs + .text 0x0000fe34 0x60 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_exit.o) + 0x0000fe74 _exit + *(.gnu.warning.*) + *(.fini) + 0x0000fe94 PROVIDE (__etext, ABSOLUTE (.)) + 0x0000fe94 PROVIDE (_etext, ABSOLUTE (.)) + 0x0000fe94 PROVIDE (etext, ABSOLUTE (.)) + *(.eh_frame_hdr) + 0x0000fe94 . = ALIGN (0x4) + 0x0000fe94 PROVIDE (__preinit_array_start, ABSOLUTE (.)) + *(.preinit_array) + 0x0000fe94 PROVIDE (__preinit_array_end, ABSOLUTE (.)) + 0x0000fe94 PROVIDE (__init_array_start, ABSOLUTE (.)) + *(.init_array) + 0x0000fe94 PROVIDE (__init_array_end, ABSOLUTE (.)) + 0x0000fe94 PROVIDE (__fini_array_start, ABSOLUTE (.)) + *(.fini_array) + 0x0000fe94 PROVIDE (__fini_array_end, ABSOLUTE (.)) + *(.eh_frame) + *(.gcc_except_table) + *(.dynamic) + 0x0000fe94 PROVIDE (__CTOR_LIST__, ABSOLUTE (.)) + *(.ctors) + *(SORT(.ctors.*)) + .ctors.65535 0x0000fe94 0x4 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-__call_atexit.o) + 0x0000fe98 PROVIDE (__CTOR_END__, ABSOLUTE (.)) + 0x0000fe98 PROVIDE (__DTOR_LIST__, ABSOLUTE (.)) + *(.dtors) + *(SORT(.dtors.*)) + 0x0000fe98 PROVIDE (__DTOR_END__, ABSOLUTE (.)) + *(.jcr) + 0x0000fe98 . = ALIGN (0x4) + +.rodata 0x0000fe98 0x71c + 0x0000fe98 PROVIDE (__ram_rodata_start, ABSOLUTE (.)) + 0x0000fe98 . = ALIGN (0x4) + *(.rodata .rodata.* .gnu.linkonce.r.*) + .rodata 0x0000fe98 0x28 obj/default/LCD.o + .rodata 0x0000fec0 0xc8 obj/default/hello_world_small.o + .rodata 0x0000ff88 0xc obj/default/hex_out.o + .rodata 0x0000ff94 0x8 obj/default/inst_decoder.o + .rodata 0x0000ff9c 0x40 obj/default/sys_debug.o + .rodata 0x0000ffdc 0x8 obj/default/sys_except.o + .rodata 0x0000ffe4 0x281 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-ctype_.o) + 0x0000ffe4 _ctype_ + *fill* 0x00010265 0x3 00 + .rodata.str1.4 + 0x00010268 0x5e c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-vfprintf.o) + 0x60 (size before relaxing) + .rodata 0x000102c6 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-vfprintf.o) + *fill* 0x000102e6 0x2 00 + .rodata.str1.4 + 0x000102e8 0x10 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-dtoa.o) + 0x14 (size before relaxing) + .rodata.str1.4 + 0x000102f8 0x2 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-impure.o) + 0x4 (size before relaxing) + *fill* 0x000102fa 0x2 00 + .rodata.str1.4 + 0x000102fc 0x10 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-locale.o) + 0x18 (size before relaxing) + .rodata 0x0001030c 0x30 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-locale.o) + .rodata 0x0001033c 0x124 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-mprec.o) + 0x0001033c __mprec_tens + 0x00010404 __mprec_bigtens + 0x0001042c __mprec_tinytens + .rodata 0x00010460 0x14 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_thenan_df.o) + 0x00010460 __thenan_df + .rodata 0x00010474 0x100 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_clz.o) + 0x00010474 __clz_tab + .rodata 0x00010574 0xc ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_dev.o) + .rodata 0x00010580 0x10 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_main.o) + .rodata 0x00010590 0x24 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_sys_init.o) + *(.rodata1) + 0x000105b4 . = ALIGN (0x4) + 0x000105b4 PROVIDE (__ram_rodata_end, ABSOLUTE (.)) + 0x0000fe98 PROVIDE (__flash_rodata_start, LOADADDR (.rodata)) + +.rwdata 0x000105b4 0x1b88 load address 0x0001213c + 0x000105b4 PROVIDE (__ram_rwdata_start, ABSOLUTE (.)) + 0x000105b4 . = ALIGN (0x4) + *(.got.plt) + *(.got) + *(.data1) + *(.data .data.* .gnu.linkonce.d.*) + .data 0x000105b4 0x0 ../qsys_tutorial_lcd4_bsp//obj/HAL/src/crt0.o + .data 0x000105b4 0x0 obj/default/LCD.o + .data 0x000105b4 0x0 obj/default/hello_world_small.o + .data 0x000105b4 0x0 obj/default/hex_encoder.o + .data 0x000105b4 0x0 obj/default/hex_out.o + .data 0x000105b4 0x0 obj/default/input_int.o + .data 0x000105b4 0x0 obj/default/inst_decoder.o + .data 0x000105b4 0x0 obj/default/lcd_out.o + .data 0x000105b4 0x0 obj/default/sys_debug.o + .data 0x000105b4 0x0 obj/default/sys_except.o + .data 0x000105b4 0x0 obj/default/sys_memory.o + .data 0x000105b4 0x0 obj/default/sys_prog.o + .data 0x000105b4 0x0 obj/default/sys_register.o + .data 0x000105b4 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-divmod.o) + .data 0x000105b4 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-mul.o) + .data 0x000105b4 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-ctype_.o) + .data 0x000105b4 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-sprintf.o) + .data 0x000105b4 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-strlen.o) + .data 0x000105b4 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-vfprintf.o) + .data 0x000105b4 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-wsetup.o) + .data 0x000105b4 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-dtoa.o) + .data 0x000105b4 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fflush.o) + .data 0x000105b4 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-findfp.o) + .data 0x000105b4 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-freer.o) + .data 0x000105b4 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fvwrite.o) + .data 0x000105b4 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fwalk.o) + .data 0x000105b4 0x400 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-impure.o) + .data 0x000109b4 0xc c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-locale.o) + 0x000109b4 __lc_ctype + .data 0x000109c0 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-makebuf.o) + .data 0x000109c0 0x408 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-mallocr.o) + 0x000109c0 __malloc_av_ + .data 0x00010dc8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memchr.o) + .data 0x00010dc8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memcpy.o) + .data 0x00010dc8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memmove.o) + .data 0x00010dc8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memset.o) + .data 0x00010dc8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-mprec.o) + .data 0x00010dc8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-reallocr.o) + .data 0x00010dc8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-s_isinfd.o) + .data 0x00010dc8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-s_isnand.o) + .data 0x00010dc8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-sbrkr.o) + .data 0x00010dc8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-stdio.o) + .data 0x00010dc8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-strcmp.o) + .data 0x00010dc8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-writer.o) + .data 0x00010dc8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-callocr.o) + .data 0x00010dc8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-closer.o) + .data 0x00010dc8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fclose.o) + .data 0x00010dc8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fstatr.o) + .data 0x00010dc8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-int_errno.o) + .data 0x00010dc8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-isattyr.o) + .data 0x00010dc8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-lseekr.o) + .data 0x00010dc8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-readr.o) + .data 0x00010dc8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_udivdi3.o) + .data 0x00010dc8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_umoddi3.o) + .data 0x00010dc8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_addsub_df.o) + .data 0x00010dc8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_mul_df.o) + .data 0x00010dc8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_div_df.o) + .data 0x00010dc8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_eq_df.o) + .data 0x00010dc8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_ne_df.o) + .data 0x00010dc8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_gt_df.o) + .data 0x00010dc8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_ge_df.o) + .data 0x00010dc8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_lt_df.o) + .data 0x00010dc8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_si_to_df.o) + .data 0x00010dc8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_df_to_si.o) + .data 0x00010dc8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_thenan_df.o) + .data 0x00010dc8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_usi_to_df.o) + .data 0x00010dc8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_muldi3.o) + .data 0x00010dc8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_clz.o) + .data 0x00010dc8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_clzsi2.o) + .data 0x00010dc8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_pack_df.o) + .data 0x00010dc8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_unpack_df.o) + .data 0x00010dc8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_fpcmp_parts_df.o) + .data 0x00010dc8 0x0 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_close.o) + .data 0x00010dc8 0x1a8 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_dev.o) + 0x00010dc8 alt_dev_null + 0x00010df0 alt_fd_list + .data 0x00010f70 0x0 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_errno.o) + .data 0x00010f70 0x0 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_fstat.o) + .data 0x00010f70 0x0 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_isatty.o) + .data 0x00010f70 0x0 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_load.o) + .data 0x00010f70 0x0 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_lseek.o) + .data 0x00010f70 0x0 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_main.o) + .data 0x00010f70 0x0 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_malloc_lock.o) + .data 0x00010f70 0x0 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_read.o) + .data 0x00010f70 0x0 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_release_fd.o) + .data 0x00010f70 0x0 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_sbrk.o) + .data 0x00010f70 0x0 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_usleep.o) + .data 0x00010f70 0x0 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_write.o) + .data 0x00010f70 0x1180 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_sys_init.o) + .data 0x000120f0 0x0 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_fd.o) + .data 0x000120f0 0x0 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_init.o) + .data 0x000120f0 0x0 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_ioctl.o) + .data 0x000120f0 0x0 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_read.o) + .data 0x000120f0 0x0 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_write.o) + .data 0x000120f0 0x0 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(altera_avalon_lcd_16207.o) + .data 0x000120f0 0x0 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(altera_avalon_lcd_16207_fd.o) + .data 0x000120f0 0x0 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_alarm_start.o) + .data 0x000120f0 0x0 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_busy_sleep.o) + .data 0x000120f0 0x0 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) + .data 0x000120f0 0x0 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_dev_llist_insert.o) + .data 0x000120f0 0x0 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_do_ctors.o) + .data 0x000120f0 0x0 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_do_dtors.o) + .data 0x000120f0 0x0 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_icache_flush_all.o) + .data 0x000120f0 0x0 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_iic.o) + .data 0x000120f0 0x0 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_iic_isr_register.o) + .data 0x000120f0 0x0 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_io_redirect.o) + .data 0x000120f0 0x0 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_irq_entry.o) + .data 0x000120f0 0x0 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_irq_handler.o) + .data 0x000120f0 0x0 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_irq_vars.o) + .data 0x000120f0 0x0 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_open.o) + .data 0x000120f0 0x0 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_tick.o) + .data 0x000120f0 0x0 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) + .data 0x000120f0 0x0 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_exception_entry.o) + .data 0x000120f0 0x0 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_find_dev.o) + .data 0x000120f0 0x0 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_find_file.o) + .data 0x000120f0 0x0 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_get_fd.o) + .data 0x000120f0 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-atexit.o) + .data 0x000120f0 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-exit.o) + .data 0x000120f0 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memcmp.o) + .data 0x000120f0 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-__atexit.o) + .data 0x000120f0 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-__call_atexit.o) + .data 0x000120f0 0x0 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_exit.o) + 0x0001a0f0 _gp = ABSOLUTE ((. + 0x8000)) + 0x0001a0f0 PROVIDE (gp, _gp) + *(.rwdata .rwdata.*) + *(.sdata .sdata.* .gnu.linkonce.s.*) + .sdata 0x000120f0 0x1 obj/default/input_int.o + 0x000120f0 PUSH_EVENT + *fill* 0x000120f1 0x3 00 + .sdata 0x000120f4 0x4 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-ctype_.o) + 0x000120f4 __ctype_ptr + .sdata 0x000120f8 0x8 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-impure.o) + 0x000120f8 _impure_ptr + 0x000120fc _global_impure_ptr + .sdata 0x00012100 0x8 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-locale.o) + 0x00012100 __mb_cur_max + .sdata 0x00012108 0x8 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-mallocr.o) + 0x00012108 __malloc_trim_threshold + 0x0001210c __malloc_sbrk_base + .sdata 0x00012110 0x14 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_dev.o) + 0x00012110 alt_fs_list + 0x00012118 alt_dev_list + 0x00012120 alt_max_fd + .sdata 0x00012124 0x4 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_errno.o) + 0x00012124 alt_errno + .sdata 0x00012128 0x4 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_sbrk.o) + .sdata 0x0001212c 0x4 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(altera_avalon_lcd_16207.o) + .sdata 0x00012130 0x4 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_irq_vars.o) + 0x00012130 alt_priority_mask + .sdata 0x00012134 0x8 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_tick.o) + 0x00012134 alt_alarm_list + *(.sdata2 .sdata2.* .gnu.linkonce.s2.*) + 0x0001213c . = ALIGN (0x4) + 0x0001213c _edata = ABSOLUTE (.) + 0x0001213c PROVIDE (edata, ABSOLUTE (.)) + 0x0001213c PROVIDE (__ram_rwdata_end, ABSOLUTE (.)) + 0x0001213c PROVIDE (__flash_rwdata_start, LOADADDR (.rwdata)) + +.bss 0x00013cc4 0x810 + 0x00013cc4 __bss_start = ABSOLUTE (.) + 0x00013cc4 PROVIDE (__sbss_start, ABSOLUTE (.)) + 0x00013cc4 PROVIDE (___sbss_start, ABSOLUTE (.)) + *(.dynsbss) + *(.sbss .sbss.* .gnu.linkonce.sb.*) + .sbss 0x00013cc4 0x5 obj/default/hello_world_small.o + 0x00013cc4 stack + *fill* 0x00013cc9 0x3 00 + .sbss 0x00013ccc 0x8 obj/default/input_int.o + .sbss 0x00013cd4 0x4 obj/default/sys_memory.o + 0x00013cd4 global_current_memory + .sbss 0x00013cd8 0xc c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-locale.o) + 0x00013cd8 __nlocale_changed + 0x00013cdc __mlocale_changed + 0x00013ce0 _PathLocale + .sbss 0x00013ce4 0xc c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-mallocr.o) + 0x00013ce4 __malloc_top_pad + 0x00013ce8 __malloc_max_sbrked_mem + 0x00013cec __malloc_max_total_mem + .sbss 0x00013cf0 0x4 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-int_errno.o) + 0x00013cf0 errno + .sbss 0x00013cf4 0xc ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_main.o) + 0x00013cf4 alt_argc + 0x00013cf8 alt_argv + 0x00013cfc alt_envp + .sbss 0x00013d00 0x4 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_irq_vars.o) + 0x00013d00 alt_irq_active + .sbss 0x00013d04 0x8 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_tick.o) + 0x00013d04 _alt_tick_rate + 0x00013d08 _alt_nticks + *(.sbss2 .sbss2.* .gnu.linkonce.sb2.*) + *(.scommon) + 0x00013d0c PROVIDE (__sbss_end, ABSOLUTE (.)) + 0x00013d0c PROVIDE (___sbss_end, ABSOLUTE (.)) + *(.dynbss) + *(.bss .bss.* .gnu.linkonce.b.*) + .bss 0x00013d0c 0x0 ../qsys_tutorial_lcd4_bsp//obj/HAL/src/crt0.o + .bss 0x00013d0c 0x0 obj/default/LCD.o + .bss 0x00013d0c 0x0 obj/default/hello_world_small.o + .bss 0x00013d0c 0x0 obj/default/hex_encoder.o + .bss 0x00013d0c 0x0 obj/default/hex_out.o + .bss 0x00013d0c 0x0 obj/default/input_int.o + .bss 0x00013d0c 0x0 obj/default/inst_decoder.o + .bss 0x00013d0c 0x0 obj/default/lcd_out.o + .bss 0x00013d0c 0x0 obj/default/sys_debug.o + .bss 0x00013d0c 0x0 obj/default/sys_except.o + .bss 0x00013d0c 0x500 obj/default/sys_memory.o + .bss 0x0001420c 0x0 obj/default/sys_prog.o + .bss 0x0001420c 0x0 obj/default/sys_register.o + .bss 0x0001420c 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-divmod.o) + .bss 0x0001420c 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-mul.o) + .bss 0x0001420c 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-ctype_.o) + .bss 0x0001420c 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-sprintf.o) + .bss 0x0001420c 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-strlen.o) + .bss 0x0001420c 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-vfprintf.o) + .bss 0x0001420c 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-wsetup.o) + .bss 0x0001420c 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-dtoa.o) + .bss 0x0001420c 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fflush.o) + .bss 0x0001420c 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-findfp.o) + .bss 0x0001420c 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-freer.o) + .bss 0x0001420c 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fvwrite.o) + .bss 0x0001420c 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fwalk.o) + .bss 0x0001420c 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-impure.o) + .bss 0x0001420c 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-locale.o) + .bss 0x0001420c 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-makebuf.o) + .bss 0x0001420c 0x28 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-mallocr.o) + 0x0001420c __malloc_current_mallinfo + .bss 0x00014234 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memchr.o) + .bss 0x00014234 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memcpy.o) + .bss 0x00014234 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memmove.o) + .bss 0x00014234 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memset.o) + .bss 0x00014234 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-mprec.o) + .bss 0x00014234 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-reallocr.o) + .bss 0x00014234 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-s_isinfd.o) + .bss 0x00014234 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-s_isnand.o) + .bss 0x00014234 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-sbrkr.o) + .bss 0x00014234 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-stdio.o) + .bss 0x00014234 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-strcmp.o) + .bss 0x00014234 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-writer.o) + .bss 0x00014234 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-callocr.o) + .bss 0x00014234 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-closer.o) + .bss 0x00014234 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fclose.o) + .bss 0x00014234 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fstatr.o) + .bss 0x00014234 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-int_errno.o) + .bss 0x00014234 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-isattyr.o) + .bss 0x00014234 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-lseekr.o) + .bss 0x00014234 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-readr.o) + .bss 0x00014234 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_udivdi3.o) + .bss 0x00014234 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_umoddi3.o) + .bss 0x00014234 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_addsub_df.o) + .bss 0x00014234 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_mul_df.o) + .bss 0x00014234 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_div_df.o) + .bss 0x00014234 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_eq_df.o) + .bss 0x00014234 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_ne_df.o) + .bss 0x00014234 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_gt_df.o) + .bss 0x00014234 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_ge_df.o) + .bss 0x00014234 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_lt_df.o) + .bss 0x00014234 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_si_to_df.o) + .bss 0x00014234 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_df_to_si.o) + .bss 0x00014234 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_thenan_df.o) + .bss 0x00014234 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_usi_to_df.o) + .bss 0x00014234 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_muldi3.o) + .bss 0x00014234 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_clz.o) + .bss 0x00014234 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_clzsi2.o) + .bss 0x00014234 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_pack_df.o) + .bss 0x00014234 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_unpack_df.o) + .bss 0x00014234 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_fpcmp_parts_df.o) + .bss 0x00014234 0x0 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_close.o) + .bss 0x00014234 0x0 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_dev.o) + .bss 0x00014234 0x0 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_errno.o) + .bss 0x00014234 0x0 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_fstat.o) + .bss 0x00014234 0x0 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_isatty.o) + .bss 0x00014234 0x0 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_load.o) + .bss 0x00014234 0x0 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_lseek.o) + .bss 0x00014234 0x0 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_main.o) + .bss 0x00014234 0x0 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_malloc_lock.o) + .bss 0x00014234 0x0 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_read.o) + .bss 0x00014234 0x0 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_release_fd.o) + .bss 0x00014234 0x0 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_sbrk.o) + .bss 0x00014234 0x0 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_usleep.o) + .bss 0x00014234 0x0 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_write.o) + .bss 0x00014234 0x0 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_sys_init.o) + .bss 0x00014234 0x0 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_fd.o) + .bss 0x00014234 0x0 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_init.o) + .bss 0x00014234 0x0 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_ioctl.o) + .bss 0x00014234 0x0 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_read.o) + .bss 0x00014234 0x0 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_write.o) + .bss 0x00014234 0x0 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(altera_avalon_lcd_16207.o) + .bss 0x00014234 0x0 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(altera_avalon_lcd_16207_fd.o) + .bss 0x00014234 0x0 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_alarm_start.o) + .bss 0x00014234 0x0 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_busy_sleep.o) + .bss 0x00014234 0x0 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) + .bss 0x00014234 0x0 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_dev_llist_insert.o) + .bss 0x00014234 0x0 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_do_ctors.o) + .bss 0x00014234 0x0 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_do_dtors.o) + .bss 0x00014234 0x0 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_icache_flush_all.o) + .bss 0x00014234 0x0 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_iic.o) + .bss 0x00014234 0x0 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_iic_isr_register.o) + .bss 0x00014234 0x0 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_io_redirect.o) + .bss 0x00014234 0x0 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_irq_entry.o) + .bss 0x00014234 0x0 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_irq_handler.o) + .bss 0x00014234 0x0 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_irq_vars.o) + .bss 0x00014234 0x0 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_open.o) + .bss 0x00014234 0x0 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_tick.o) + .bss 0x00014234 0x0 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) + .bss 0x00014234 0x0 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_exception_entry.o) + .bss 0x00014234 0x0 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_find_dev.o) + .bss 0x00014234 0x0 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_find_file.o) + .bss 0x00014234 0x0 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_get_fd.o) + .bss 0x00014234 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-atexit.o) + .bss 0x00014234 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-exit.o) + .bss 0x00014234 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memcmp.o) + .bss 0x00014234 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-__atexit.o) + .bss 0x00014234 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-__call_atexit.o) + .bss 0x00014234 0x0 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_exit.o) + *(COMMON) + COMMON 0x00014234 0xf obj/default/sys_register.o + 0x00014234 global_registers + *fill* 0x00014243 0x1 00 + COMMON 0x00014244 0x100 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_irq_handler.o) + 0x00014244 alt_irq + COMMON 0x00014344 0x190 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-atexit.o) + 0x00014344 _atexit0 + 0x000144d4 . = ALIGN (0x4) + 0x000144d4 __bss_end = ABSOLUTE (.) + +.onchip_memory 0x000144d4 0x0 + 0x000144d4 PROVIDE (_alt_partition_onchip_memory_start, ABSOLUTE (.)) + *(.onchip_memory. onchip_memory.*) + 0x000144d4 . = ALIGN (0x4) + 0x000144d4 PROVIDE (_alt_partition_onchip_memory_end, ABSOLUTE (.)) + 0x000144d4 _end = ABSOLUTE (.) + 0x000144d4 end = ABSOLUTE (.) + 0x000144d4 __alt_stack_base = ABSOLUTE (.) + 0x000144d4 PROVIDE (_alt_partition_onchip_memory_load_addr, LOADADDR (.onchip_memory)) + +.stab + *(.stab) + +.stabstr + *(.stabstr) + +.stab.excl + *(.stab.excl) + +.stab.exclstr + *(.stab.exclstr) + +.stab.index + *(.stab.index) + +.stab.indexstr + *(.stab.indexstr) + +.comment 0x00000000 0x26 + *(.comment) + .comment 0x00000000 0x26 obj/default/LCD.o + 0x27 (size before relaxing) + .comment 0x00000000 0x27 obj/default/hello_world_small.o + .comment 0x00000000 0x27 obj/default/hex_encoder.o + .comment 0x00000000 0x27 obj/default/hex_out.o + .comment 0x00000000 0x27 obj/default/input_int.o + .comment 0x00000000 0x27 obj/default/inst_decoder.o + .comment 0x00000000 0x27 obj/default/lcd_out.o + .comment 0x00000000 0x27 obj/default/sys_debug.o + .comment 0x00000000 0x27 obj/default/sys_except.o + .comment 0x00000000 0x27 obj/default/sys_memory.o + .comment 0x00000000 0x27 obj/default/sys_prog.o + .comment 0x00000000 0x27 obj/default/sys_register.o + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-divmod.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-mul.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-ctype_.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-sprintf.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-strlen.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-vfprintf.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-wsetup.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-dtoa.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fflush.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-findfp.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-freer.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fvwrite.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fwalk.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-impure.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-locale.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-makebuf.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-mallocr.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memchr.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memcpy.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memmove.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memset.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-mprec.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-reallocr.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-s_isinfd.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-s_isnand.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-sbrkr.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-stdio.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-strcmp.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-writer.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-callocr.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-closer.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fclose.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fstatr.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-int_errno.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-isattyr.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-lseekr.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-readr.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_udivdi3.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_umoddi3.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_addsub_df.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_mul_df.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_div_df.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_eq_df.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_ne_df.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_gt_df.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_ge_df.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_lt_df.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_si_to_df.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_df_to_si.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_thenan_df.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_usi_to_df.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_muldi3.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_clz.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_clzsi2.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_pack_df.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_unpack_df.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_fpcmp_parts_df.o) + .comment 0x00000000 0x27 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_close.o) + .comment 0x00000000 0x27 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_dev.o) + .comment 0x00000000 0x27 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_errno.o) + .comment 0x00000000 0x27 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_fstat.o) + .comment 0x00000000 0x27 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_isatty.o) + .comment 0x00000000 0x27 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_load.o) + .comment 0x00000000 0x27 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_lseek.o) + .comment 0x00000000 0x27 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_main.o) + .comment 0x00000000 0x27 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_malloc_lock.o) + .comment 0x00000000 0x27 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_read.o) + .comment 0x00000000 0x27 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_release_fd.o) + .comment 0x00000000 0x27 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_sbrk.o) + .comment 0x00000000 0x27 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_usleep.o) + .comment 0x00000000 0x27 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_write.o) + .comment 0x00000000 0x27 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_sys_init.o) + .comment 0x00000000 0x27 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_fd.o) + .comment 0x00000000 0x27 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_init.o) + .comment 0x00000000 0x27 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_ioctl.o) + .comment 0x00000000 0x27 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_read.o) + .comment 0x00000000 0x27 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_write.o) + .comment 0x00000000 0x27 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(altera_avalon_lcd_16207.o) + .comment 0x00000000 0x27 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(altera_avalon_lcd_16207_fd.o) + .comment 0x00000000 0x27 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_alarm_start.o) + .comment 0x00000000 0x27 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_busy_sleep.o) + .comment 0x00000000 0x27 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) + .comment 0x00000000 0x27 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_dev_llist_insert.o) + .comment 0x00000000 0x27 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_do_ctors.o) + .comment 0x00000000 0x27 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_do_dtors.o) + .comment 0x00000000 0x27 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_icache_flush_all.o) + .comment 0x00000000 0x27 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_iic.o) + .comment 0x00000000 0x27 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_iic_isr_register.o) + .comment 0x00000000 0x27 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_io_redirect.o) + .comment 0x00000000 0x27 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_irq_handler.o) + .comment 0x00000000 0x27 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_irq_vars.o) + .comment 0x00000000 0x27 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_open.o) + .comment 0x00000000 0x27 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_tick.o) + .comment 0x00000000 0x27 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) + .comment 0x00000000 0x27 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_find_dev.o) + .comment 0x00000000 0x27 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_find_file.o) + .comment 0x00000000 0x27 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_get_fd.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-atexit.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-exit.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memcmp.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-__atexit.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-__call_atexit.o) + .comment 0x00000000 0x27 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_exit.o) + +.debug + *(.debug) + +.line + *(.line) + +.debug_srcinfo + *(.debug_srcinfo) + +.debug_sfnames + *(.debug_sfnames) + +.debug_aranges 0x00000000 0xe18 + *(.debug_aranges) + .debug_aranges + 0x00000000 0x28 ../qsys_tutorial_lcd4_bsp//obj/HAL/src/crt0.o + .debug_aranges + 0x00000028 0x20 obj/default/LCD.o + .debug_aranges + 0x00000048 0x20 obj/default/hello_world_small.o + .debug_aranges + 0x00000068 0x20 obj/default/hex_encoder.o + .debug_aranges + 0x00000088 0x20 obj/default/hex_out.o + .debug_aranges + 0x000000a8 0x20 obj/default/input_int.o + .debug_aranges + 0x000000c8 0x20 obj/default/inst_decoder.o + .debug_aranges + 0x000000e8 0x20 obj/default/lcd_out.o + .debug_aranges + 0x00000108 0x20 obj/default/sys_debug.o + .debug_aranges + 0x00000128 0x20 obj/default/sys_except.o + .debug_aranges + 0x00000148 0x20 obj/default/sys_memory.o + .debug_aranges + 0x00000168 0x20 obj/default/sys_prog.o + .debug_aranges + 0x00000188 0x20 obj/default/sys_register.o + .debug_aranges + 0x000001a8 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-divmod.o) + .debug_aranges + 0x000001c8 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-mul.o) + .debug_aranges + 0x000001e8 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-sprintf.o) + .debug_aranges + 0x00000208 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-strlen.o) + .debug_aranges + 0x00000228 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-vfprintf.o) + .debug_aranges + 0x00000248 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-wsetup.o) + .debug_aranges + 0x00000268 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-dtoa.o) + .debug_aranges + 0x00000288 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fflush.o) + .debug_aranges + 0x000002a8 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-findfp.o) + .debug_aranges + 0x000002c8 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-freer.o) + .debug_aranges + 0x000002e8 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fvwrite.o) + .debug_aranges + 0x00000308 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fwalk.o) + .debug_aranges + 0x00000328 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-locale.o) + .debug_aranges + 0x00000348 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-makebuf.o) + .debug_aranges + 0x00000368 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-mallocr.o) + .debug_aranges + 0x00000388 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memchr.o) + .debug_aranges + 0x000003a8 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memcpy.o) + .debug_aranges + 0x000003c8 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memmove.o) + .debug_aranges + 0x000003e8 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memset.o) + .debug_aranges + 0x00000408 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-mprec.o) + .debug_aranges + 0x00000428 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-reallocr.o) + .debug_aranges + 0x00000448 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-s_isinfd.o) + .debug_aranges + 0x00000468 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-s_isnand.o) + .debug_aranges + 0x00000488 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-sbrkr.o) + .debug_aranges + 0x000004a8 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-stdio.o) + .debug_aranges + 0x000004c8 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-strcmp.o) + .debug_aranges + 0x000004e8 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-writer.o) + .debug_aranges + 0x00000508 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-callocr.o) + .debug_aranges + 0x00000528 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-closer.o) + .debug_aranges + 0x00000548 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fclose.o) + .debug_aranges + 0x00000568 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fstatr.o) + .debug_aranges + 0x00000588 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-isattyr.o) + .debug_aranges + 0x000005a8 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-lseekr.o) + .debug_aranges + 0x000005c8 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-readr.o) + .debug_aranges + 0x000005e8 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_udivdi3.o) + .debug_aranges + 0x00000608 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_umoddi3.o) + .debug_aranges + 0x00000628 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_addsub_df.o) + .debug_aranges + 0x00000648 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_mul_df.o) + .debug_aranges + 0x00000668 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_div_df.o) + .debug_aranges + 0x00000688 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_eq_df.o) + .debug_aranges + 0x000006a8 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_ne_df.o) + .debug_aranges + 0x000006c8 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_gt_df.o) + .debug_aranges + 0x000006e8 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_ge_df.o) + .debug_aranges + 0x00000708 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_lt_df.o) + .debug_aranges + 0x00000728 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_si_to_df.o) + .debug_aranges + 0x00000748 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_df_to_si.o) + .debug_aranges + 0x00000768 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_usi_to_df.o) + .debug_aranges + 0x00000788 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_muldi3.o) + .debug_aranges + 0x000007a8 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_clzsi2.o) + .debug_aranges + 0x000007c8 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_pack_df.o) + .debug_aranges + 0x000007e8 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_unpack_df.o) + .debug_aranges + 0x00000808 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_fpcmp_parts_df.o) + .debug_aranges + 0x00000828 0x20 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_close.o) + .debug_aranges + 0x00000848 0x20 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_dev.o) + .debug_aranges + 0x00000868 0x20 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_fstat.o) + .debug_aranges + 0x00000888 0x20 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_isatty.o) + .debug_aranges + 0x000008a8 0x20 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_load.o) + .debug_aranges + 0x000008c8 0x20 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_lseek.o) + .debug_aranges + 0x000008e8 0x20 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_main.o) + .debug_aranges + 0x00000908 0x20 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_malloc_lock.o) + .debug_aranges + 0x00000928 0x20 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_read.o) + .debug_aranges + 0x00000948 0x20 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_release_fd.o) + .debug_aranges + 0x00000968 0x20 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_sbrk.o) + .debug_aranges + 0x00000988 0x20 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_usleep.o) + .debug_aranges + 0x000009a8 0x20 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_write.o) + .debug_aranges + 0x000009c8 0x20 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_sys_init.o) + .debug_aranges + 0x000009e8 0x20 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_fd.o) + .debug_aranges + 0x00000a08 0x20 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_init.o) + .debug_aranges + 0x00000a28 0x20 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_ioctl.o) + .debug_aranges + 0x00000a48 0x20 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_read.o) + .debug_aranges + 0x00000a68 0x20 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_write.o) + .debug_aranges + 0x00000a88 0x20 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(altera_avalon_lcd_16207.o) + .debug_aranges + 0x00000aa8 0x20 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(altera_avalon_lcd_16207_fd.o) + .debug_aranges + 0x00000ac8 0x20 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_alarm_start.o) + .debug_aranges + 0x00000ae8 0x20 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_busy_sleep.o) + .debug_aranges + 0x00000b08 0x20 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) + .debug_aranges + 0x00000b28 0x20 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_dev_llist_insert.o) + .debug_aranges + 0x00000b48 0x20 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_do_ctors.o) + .debug_aranges + 0x00000b68 0x20 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_do_dtors.o) + .debug_aranges + 0x00000b88 0x20 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_icache_flush_all.o) + .debug_aranges + 0x00000ba8 0x20 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_iic.o) + .debug_aranges + 0x00000bc8 0x20 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_iic_isr_register.o) + .debug_aranges + 0x00000be8 0x20 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_io_redirect.o) + .debug_aranges + 0x00000c08 0x30 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_irq_entry.o) + .debug_aranges + 0x00000c38 0x28 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_irq_handler.o) + .debug_aranges + 0x00000c60 0x20 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_open.o) + .debug_aranges + 0x00000c80 0x20 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_tick.o) + .debug_aranges + 0x00000ca0 0x20 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) + .debug_aranges + 0x00000cc0 0x38 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_exception_entry.o) + .debug_aranges + 0x00000cf8 0x20 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_find_dev.o) + .debug_aranges + 0x00000d18 0x20 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_find_file.o) + .debug_aranges + 0x00000d38 0x20 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_get_fd.o) + .debug_aranges + 0x00000d58 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-atexit.o) + .debug_aranges + 0x00000d78 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-exit.o) + .debug_aranges + 0x00000d98 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memcmp.o) + .debug_aranges + 0x00000db8 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-__atexit.o) + .debug_aranges + 0x00000dd8 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-__call_atexit.o) + .debug_aranges + 0x00000df8 0x20 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_exit.o) + +.debug_pubnames + 0x00000000 0x17c4 + *(.debug_pubnames) + .debug_pubnames + 0x00000000 0x4c obj/default/LCD.o + .debug_pubnames + 0x0000004c 0x7b obj/default/hello_world_small.o + .debug_pubnames + 0x000000c7 0x34 obj/default/hex_encoder.o + .debug_pubnames + 0x000000fb 0x43 obj/default/hex_out.o + .debug_pubnames + 0x0000013e 0x49 obj/default/input_int.o + .debug_pubnames + 0x00000187 0xcc obj/default/inst_decoder.o + .debug_pubnames + 0x00000253 0x56 obj/default/lcd_out.o + .debug_pubnames + 0x000002a9 0x5a obj/default/sys_debug.o + .debug_pubnames + 0x00000303 0x1c obj/default/sys_except.o + .debug_pubnames + 0x0000031f 0x88 obj/default/sys_memory.o + .debug_pubnames + 0x000003a7 0x33 obj/default/sys_prog.o + .debug_pubnames + 0x000003da 0x3a obj/default/sys_register.o + .debug_pubnames + 0x00000414 0x48 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-divmod.o) + .debug_pubnames + 0x0000045c 0x1f c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-mul.o) + .debug_pubnames + 0x0000047b 0x2e c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-ctype_.o) + .debug_pubnames + 0x000004a9 0x2d c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-sprintf.o) + .debug_pubnames + 0x000004d6 0x1d c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-strlen.o) + .debug_pubnames + 0x000004f3 0x45 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-vfprintf.o) + .debug_pubnames + 0x00000538 0x22 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-wsetup.o) + .debug_pubnames + 0x0000055a 0x1e c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-dtoa.o) + .debug_pubnames + 0x00000578 0x2b c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fflush.o) + .debug_pubnames + 0x000005a3 0xdb c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-findfp.o) + .debug_pubnames + 0x0000067e 0x31 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-freer.o) + .debug_pubnames + 0x000006af 0x23 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fvwrite.o) + .debug_pubnames + 0x000006d2 0x2e c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fwalk.o) + .debug_pubnames + 0x00000700 0x39 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-impure.o) + .debug_pubnames + 0x00000739 0xc3 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-locale.o) + .debug_pubnames + 0x000007fc 0x23 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-makebuf.o) + .debug_pubnames + 0x0000081f 0xce c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-mallocr.o) + .debug_pubnames + 0x000008ed 0x1d c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memchr.o) + .debug_pubnames + 0x0000090a 0x1d c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memcpy.o) + .debug_pubnames + 0x00000927 0x1e c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memmove.o) + .debug_pubnames + 0x00000945 0x1d c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memset.o) + .debug_pubnames + 0x00000962 0x13a c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-mprec.o) + .debug_pubnames + 0x00000a9c 0x21 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-reallocr.o) + .debug_pubnames + 0x00000abd 0x1f c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-s_isinfd.o) + .debug_pubnames + 0x00000adc 0x1f c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-s_isnand.o) + .debug_pubnames + 0x00000afb 0x1e c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-sbrkr.o) + .debug_pubnames + 0x00000b19 0x44 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-stdio.o) + .debug_pubnames + 0x00000b5d 0x1d c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-strcmp.o) + .debug_pubnames + 0x00000b7a 0x1f c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-writer.o) + .debug_pubnames + 0x00000b99 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-callocr.o) + .debug_pubnames + 0x00000bb9 0x1f c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-closer.o) + .debug_pubnames + 0x00000bd8 0x2b c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fclose.o) + .debug_pubnames + 0x00000c03 0x1f c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fstatr.o) + .debug_pubnames + 0x00000c22 0x1c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-int_errno.o) + .debug_pubnames + 0x00000c3e 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-isattyr.o) + .debug_pubnames + 0x00000c5e 0x1f c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-lseekr.o) + .debug_pubnames + 0x00000c7d 0x1e c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-readr.o) + .debug_pubnames + 0x00000c9b 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_udivdi3.o) + .debug_pubnames + 0x00000cbb 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_umoddi3.o) + .debug_pubnames + 0x00000cdb 0x2c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_addsub_df.o) + .debug_pubnames + 0x00000d07 0x1f c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_mul_df.o) + .debug_pubnames + 0x00000d26 0x1f c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_div_df.o) + .debug_pubnames + 0x00000d45 0x1e c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_eq_df.o) + .debug_pubnames + 0x00000d63 0x1e c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_ne_df.o) + .debug_pubnames + 0x00000d81 0x1e c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_gt_df.o) + .debug_pubnames + 0x00000d9f 0x1e c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_ge_df.o) + .debug_pubnames + 0x00000dbd 0x1e c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_lt_df.o) + .debug_pubnames + 0x00000ddb 0x22 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_si_to_df.o) + .debug_pubnames + 0x00000dfd 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_df_to_si.o) + .debug_pubnames + 0x00000e1d 0x22 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_thenan_df.o) + .debug_pubnames + 0x00000e3f 0x24 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_usi_to_df.o) + .debug_pubnames + 0x00000e63 0x1f c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_muldi3.o) + .debug_pubnames + 0x00000e82 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_clz.o) + .debug_pubnames + 0x00000ea2 0x1f c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_clzsi2.o) + .debug_pubnames + 0x00000ec1 0x1f c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_pack_df.o) + .debug_pubnames + 0x00000ee0 0x21 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_unpack_df.o) + .debug_pubnames + 0x00000f01 0x26 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_fpcmp_parts_df.o) + .debug_pubnames + 0x00000f27 0x1c ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_close.o) + .debug_pubnames + 0x00000f43 0x63 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_dev.o) + .debug_pubnames + 0x00000fa6 0x20 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_errno.o) + .debug_pubnames + 0x00000fc6 0x1c ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_fstat.o) + .debug_pubnames + 0x00000fe2 0x1d ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_isatty.o) + .debug_pubnames + 0x00000fff 0x1f ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_load.o) + .debug_pubnames + 0x0000101e 0x1c ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_lseek.o) + .debug_pubnames + 0x0000103a 0x46 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_main.o) + .debug_pubnames + 0x00001080 0x38 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_malloc_lock.o) + .debug_pubnames + 0x000010b8 0x1b ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_read.o) + .debug_pubnames + 0x000010d3 0x25 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_release_fd.o) + .debug_pubnames + 0x000010f8 0x1b ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_sbrk.o) + .debug_pubnames + 0x00001113 0x1d ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_usleep.o) + .debug_pubnames + 0x00001130 0x1c ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_write.o) + .debug_pubnames + 0x0000114c 0x34 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_sys_init.o) + .debug_pubnames + 0x00001180 0xa5 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_fd.o) + .debug_pubnames + 0x00001225 0x55 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_init.o) + .debug_pubnames + 0x0000127a 0x34 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_ioctl.o) + .debug_pubnames + 0x000012ae 0x33 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_read.o) + .debug_pubnames + 0x000012e1 0x34 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_write.o) + .debug_pubnames + 0x00001315 0x55 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(altera_avalon_lcd_16207.o) + .debug_pubnames + 0x0000136a 0x37 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(altera_avalon_lcd_16207_fd.o) + .debug_pubnames + 0x000013a1 0x26 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_alarm_start.o) + .debug_pubnames + 0x000013c7 0x25 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_busy_sleep.o) + .debug_pubnames + 0x000013ec 0x2b ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) + .debug_pubnames + 0x00001417 0x2b ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_dev_llist_insert.o) + .debug_pubnames + 0x00001442 0x20 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_do_ctors.o) + .debug_pubnames + 0x00001462 0x20 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_do_dtors.o) + .debug_pubnames + 0x00001482 0x2b ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_icache_flush_all.o) + .debug_pubnames + 0x000014ad 0x6e ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_iic.o) + .debug_pubnames + 0x0000151b 0x2b ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_iic_isr_register.o) + .debug_pubnames + 0x00001546 0x26 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_io_redirect.o) + .debug_pubnames + 0x0000156c 0x32 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_irq_handler.o) + .debug_pubnames + 0x0000159e 0x3b ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_irq_vars.o) + .debug_pubnames + 0x000015d9 0x1b ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_open.o) + .debug_pubnames + 0x000015f4 0x68 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_tick.o) + .debug_pubnames + 0x0000165c 0x31 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) + .debug_pubnames + 0x0000168d 0x23 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_find_dev.o) + .debug_pubnames + 0x000016b0 0x24 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_find_file.o) + .debug_pubnames + 0x000016d4 0x21 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_get_fd.o) + .debug_pubnames + 0x000016f5 0x2a c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-atexit.o) + .debug_pubnames + 0x0000171f 0x1b c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-exit.o) + .debug_pubnames + 0x0000173a 0x1d c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memcmp.o) + .debug_pubnames + 0x00001757 0x2a c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-__atexit.o) + .debug_pubnames + 0x00001781 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-__call_atexit.o) + .debug_pubnames + 0x000017a8 0x1c ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_exit.o) + +.debug_info 0x00000000 0x251e5 + *(.debug_info .gnu.linkonce.wi.*) + .debug_info 0x00000000 0x82 ../qsys_tutorial_lcd4_bsp//obj/HAL/src/crt0.o + .debug_info 0x00000082 0x1e2 obj/default/LCD.o + .debug_info 0x00000264 0x558 obj/default/hello_world_small.o + .debug_info 0x000007bc 0x154 obj/default/hex_encoder.o + .debug_info 0x00000910 0x1dd obj/default/hex_out.o + .debug_info 0x00000aed 0x33a obj/default/input_int.o + .debug_info 0x00000e27 0x555 obj/default/inst_decoder.o + .debug_info 0x0000137c 0x1b3 obj/default/lcd_out.o + .debug_info 0x0000152f 0x387 obj/default/sys_debug.o + .debug_info 0x000018b6 0x96 obj/default/sys_except.o + .debug_info 0x0000194c 0x385 obj/default/sys_memory.o + .debug_info 0x00001cd1 0x180 obj/default/sys_prog.o + .debug_info 0x00001e51 0x105 obj/default/sys_register.o + .debug_info 0x00001f56 0x21c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-divmod.o) + .debug_info 0x00002172 0xf3 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-mul.o) + .debug_info 0x00002265 0xa0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-ctype_.o) + .debug_info 0x00002305 0xa16 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-sprintf.o) + .debug_info 0x00002d1b 0xdb c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-strlen.o) + .debug_info 0x00002df6 0x10d5 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-vfprintf.o) + .debug_info 0x00003ecb 0x95d c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-wsetup.o) + .debug_info 0x00004828 0xd6f c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-dtoa.o) + .debug_info 0x00005597 0x9fe c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fflush.o) + .debug_info 0x00005f95 0xb72 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-findfp.o) + .debug_info 0x00006b07 0xbc9 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-freer.o) + .debug_info 0x000076d0 0xa88 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fvwrite.o) + .debug_info 0x00008158 0xaed c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fwalk.o) + .debug_info 0x00008c45 0x93d c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-impure.o) + .debug_info 0x00009582 0xb97 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-locale.o) + .debug_info 0x0000a119 0xb1a c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-makebuf.o) + .debug_info 0x0000ac33 0xcd0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-mallocr.o) + .debug_info 0x0000b903 0x138 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memchr.o) + .debug_info 0x0000ba3b 0x106 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memcpy.o) + .debug_info 0x0000bb41 0x13e c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memmove.o) + .debug_info 0x0000bc7f 0x113 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memset.o) + .debug_info 0x0000bd92 0x143b c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-mprec.o) + .debug_info 0x0000d1cd 0xbd7 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-reallocr.o) + .debug_info 0x0000dda4 0xd7 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-s_isinfd.o) + .debug_info 0x0000de7b 0xd5 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-s_isnand.o) + .debug_info 0x0000df50 0x962 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-sbrkr.o) + .debug_info 0x0000e8b2 0xaac c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-stdio.o) + .debug_info 0x0000f35e 0xdd c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-strcmp.o) + .debug_info 0x0000f43b 0x993 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-writer.o) + .debug_info 0x0000fdce 0xa1b c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-callocr.o) + .debug_info 0x000107e9 0x958 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-closer.o) + .debug_info 0x00011141 0x994 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fclose.o) + .debug_info 0x00011ad5 0xafc c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fstatr.o) + .debug_info 0x000125d1 0x8c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-int_errno.o) + .debug_info 0x0001265d 0x958 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-isattyr.o) + .debug_info 0x00012fb5 0x981 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-lseekr.o) + .debug_info 0x00013936 0x98c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-readr.o) + .debug_info 0x000142c2 0x71c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_udivdi3.o) + .debug_info 0x000149de 0x749 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_umoddi3.o) + .debug_info 0x00015127 0x493 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_addsub_df.o) + .debug_info 0x000155ba 0x488 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_mul_df.o) + .debug_info 0x00015a42 0x39b c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_div_df.o) + .debug_info 0x00015ddd 0x29d c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_eq_df.o) + .debug_info 0x0001607a 0x29d c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_ne_df.o) + .debug_info 0x00016317 0x29d c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_gt_df.o) + .debug_info 0x000165b4 0x29d c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_ge_df.o) + .debug_info 0x00016851 0x29d c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_lt_df.o) + .debug_info 0x00016aee 0x218 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_si_to_df.o) + .debug_info 0x00016d06 0x2cd c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_df_to_si.o) + .debug_info 0x00016fd3 0x164 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_thenan_df.o) + .debug_info 0x00017137 0x213 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_usi_to_df.o) + .debug_info 0x0001734a 0x210 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_muldi3.o) + .debug_info 0x0001755a 0xc9 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_clz.o) + .debug_info 0x00017623 0x130 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_clzsi2.o) + .debug_info 0x00017753 0x2fc c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_pack_df.o) + .debug_info 0x00017a4f 0x268 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_unpack_df.o) + .debug_info 0x00017cb7 0x21b c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_fpcmp_parts_df.o) + .debug_info 0x00017ed2 0x46e ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_close.o) + .debug_info 0x00018340 0x686 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_dev.o) + .debug_info 0x000189c6 0x16b ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_errno.o) + .debug_info 0x00018b31 0x667 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_fstat.o) + .debug_info 0x00019198 0x66d ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_isatty.o) + .debug_info 0x00019805 0x294 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_load.o) + .debug_info 0x00019a99 0x4a1 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_lseek.o) + .debug_info 0x00019f3a 0x22c ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_main.o) + .debug_info 0x0001a166 0xc1f ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_malloc_lock.o) + .debug_info 0x0001ad85 0x691 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_read.o) + .debug_info 0x0001b416 0x3f9 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_release_fd.o) + .debug_info 0x0001b80f 0x2be ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_sbrk.o) + .debug_info 0x0001bacd 0x16f ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_usleep.o) + .debug_info 0x0001bc3c 0x69a ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_write.o) + .debug_info 0x0001c2d6 0x90e ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_sys_init.o) + .debug_info 0x0001cbe4 0x7e0 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_fd.o) + .debug_info 0x0001d3c4 0x608 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_init.o) + .debug_info 0x0001d9cc 0x44a ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_ioctl.o) + .debug_info 0x0001de16 0x54d ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_read.o) + .debug_info 0x0001e363 0x545 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_write.o) + .debug_info 0x0001e8a8 0x8f5 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(altera_avalon_lcd_16207.o) + .debug_info 0x0001f19d 0x719 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(altera_avalon_lcd_16207_fd.o) + .debug_info 0x0001f8b6 0x449 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_alarm_start.o) + .debug_info 0x0001fcff 0x1b2 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_busy_sleep.o) + .debug_info 0x0001feb1 0x163 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) + .debug_info 0x00020014 0x2be ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_dev_llist_insert.o) + .debug_info 0x000202d2 0x116 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_do_ctors.o) + .debug_info 0x000203e8 0x115 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_do_dtors.o) + .debug_info 0x000204fd 0x163 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_icache_flush_all.o) + .debug_info 0x00020660 0x49a ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_iic.o) + .debug_info 0x00020afa 0x31b ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_iic_isr_register.o) + .debug_info 0x00020e15 0x69c ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_io_redirect.o) + .debug_info 0x000214b1 0x8b ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_irq_entry.o) + .debug_info 0x0002153c 0x27c ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_irq_handler.o) + .debug_info 0x000217b8 0x16e ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_irq_vars.o) + .debug_info 0x00021926 0x52c ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_open.o) + .debug_info 0x00021e52 0x405 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_tick.o) + .debug_info 0x00022257 0x16a ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) + .debug_info 0x000223c1 0x91 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_exception_entry.o) + .debug_info 0x00022452 0x41f ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_find_dev.o) + .debug_info 0x00022871 0x426 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_find_file.o) + .debug_info 0x00022c97 0x467 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_get_fd.o) + .debug_info 0x000230fe 0x181 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-atexit.o) + .debug_info 0x0002327f 0x93f c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-exit.o) + .debug_info 0x00023bbe 0x115 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memcmp.o) + .debug_info 0x00023cd3 0x99c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-__atexit.o) + .debug_info 0x0002466f 0x9e2 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-__call_atexit.o) + .debug_info 0x00025051 0x194 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_exit.o) + +.debug_abbrev 0x00000000 0x823c + *(.debug_abbrev) + .debug_abbrev 0x00000000 0x12 ../qsys_tutorial_lcd4_bsp//obj/HAL/src/crt0.o + .debug_abbrev 0x00000012 0xa0 obj/default/LCD.o + .debug_abbrev 0x000000b2 0x188 obj/default/hello_world_small.o + .debug_abbrev 0x0000023a 0x75 obj/default/hex_encoder.o + .debug_abbrev 0x000002af 0x87 obj/default/hex_out.o + .debug_abbrev 0x00000336 0x12f obj/default/input_int.o + .debug_abbrev 0x00000465 0xe4 obj/default/inst_decoder.o + .debug_abbrev 0x00000549 0x71 obj/default/lcd_out.o + .debug_abbrev 0x000005ba 0xe9 obj/default/sys_debug.o + .debug_abbrev 0x000006a3 0x27 obj/default/sys_except.o + .debug_abbrev 0x000006ca 0x101 obj/default/sys_memory.o + .debug_abbrev 0x000007cb 0x8e obj/default/sys_prog.o + .debug_abbrev 0x00000859 0x66 obj/default/sys_register.o + .debug_abbrev 0x000008bf 0xe0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-divmod.o) + .debug_abbrev 0x0000099f 0x7b c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-mul.o) + .debug_abbrev 0x00000a1a 0x61 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-ctype_.o) + .debug_abbrev 0x00000a7b 0x191 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-sprintf.o) + .debug_abbrev 0x00000c0c 0x8b c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-strlen.o) + .debug_abbrev 0x00000c97 0x30a c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-vfprintf.o) + .debug_abbrev 0x00000fa1 0x170 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-wsetup.o) + .debug_abbrev 0x00001111 0x232 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-dtoa.o) + .debug_abbrev 0x00001343 0x1c6 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fflush.o) + .debug_abbrev 0x00001509 0x24c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-findfp.o) + .debug_abbrev 0x00001755 0x1d9 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-freer.o) + .debug_abbrev 0x0000192e 0x1a3 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fvwrite.o) + .debug_abbrev 0x00001ad1 0x1e3 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fwalk.o) + .debug_abbrev 0x00001cb4 0x157 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-impure.o) + .debug_abbrev 0x00001e0b 0x1ed c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-locale.o) + .debug_abbrev 0x00001ff8 0x197 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-makebuf.o) + .debug_abbrev 0x0000218f 0x216 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-mallocr.o) + .debug_abbrev 0x000023a5 0xb5 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memchr.o) + .debug_abbrev 0x0000245a 0xb5 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memcpy.o) + .debug_abbrev 0x0000250f 0xb5 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memmove.o) + .debug_abbrev 0x000025c4 0xb8 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memset.o) + .debug_abbrev 0x0000267c 0x297 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-mprec.o) + .debug_abbrev 0x00002913 0x1c3 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-reallocr.o) + .debug_abbrev 0x00002ad6 0x79 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-s_isinfd.o) + .debug_abbrev 0x00002b4f 0x79 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-s_isnand.o) + .debug_abbrev 0x00002bc8 0x18c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-sbrkr.o) + .debug_abbrev 0x00002d54 0x1c9 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-stdio.o) + .debug_abbrev 0x00002f1d 0x80 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-strcmp.o) + .debug_abbrev 0x00002f9d 0x184 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-writer.o) + .debug_abbrev 0x00003121 0x1b8 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-callocr.o) + .debug_abbrev 0x000032d9 0x17f c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-closer.o) + .debug_abbrev 0x00003458 0x1a7 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fclose.o) + .debug_abbrev 0x000035ff 0x18e c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fstatr.o) + .debug_abbrev 0x0000378d 0x3b c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-int_errno.o) + .debug_abbrev 0x000037c8 0x17f c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-isattyr.o) + .debug_abbrev 0x00003947 0x18e c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-lseekr.o) + .debug_abbrev 0x00003ad5 0x17f c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-readr.o) + .debug_abbrev 0x00003c54 0x16b c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_udivdi3.o) + .debug_abbrev 0x00003dbf 0x18e c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_umoddi3.o) + .debug_abbrev 0x00003f4d 0x1d2 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_addsub_df.o) + .debug_abbrev 0x0000411f 0x204 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_mul_df.o) + .debug_abbrev 0x00004323 0x1e3 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_div_df.o) + .debug_abbrev 0x00004506 0x151 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_eq_df.o) + .debug_abbrev 0x00004657 0x151 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_ne_df.o) + .debug_abbrev 0x000047a8 0x151 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_gt_df.o) + .debug_abbrev 0x000048f9 0x151 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_ge_df.o) + .debug_abbrev 0x00004a4a 0x151 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_lt_df.o) + .debug_abbrev 0x00004b9b 0x13f c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_si_to_df.o) + .debug_abbrev 0x00004cda 0x176 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_df_to_si.o) + .debug_abbrev 0x00004e50 0xba c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_thenan_df.o) + .debug_abbrev 0x00004f0a 0x155 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_usi_to_df.o) + .debug_abbrev 0x0000505f 0xfb c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_muldi3.o) + .debug_abbrev 0x0000515a 0x61 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_clz.o) + .debug_abbrev 0x000051bb 0xb9 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_clzsi2.o) + .debug_abbrev 0x00005274 0x1b1 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_pack_df.o) + .debug_abbrev 0x00005425 0x149 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_unpack_df.o) + .debug_abbrev 0x0000556e 0x132 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_fpcmp_parts_df.o) + .debug_abbrev 0x000056a0 0xfb ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_close.o) + .debug_abbrev 0x0000579b 0xc7 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_dev.o) + .debug_abbrev 0x00005862 0x5e ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_errno.o) + .debug_abbrev 0x000058c0 0xfb ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_fstat.o) + .debug_abbrev 0x000059bb 0xfb ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_isatty.o) + .debug_abbrev 0x00005ab6 0x88 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_load.o) + .debug_abbrev 0x00005b3e 0xfb ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_lseek.o) + .debug_abbrev 0x00005c39 0xb7 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_main.o) + .debug_abbrev 0x00005cf0 0x181 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_malloc_lock.o) + .debug_abbrev 0x00005e71 0xfb ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_read.o) + .debug_abbrev 0x00005f6c 0xc1 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_release_fd.o) + .debug_abbrev 0x0000602d 0x115 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_sbrk.o) + .debug_abbrev 0x00006142 0x5d ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_usleep.o) + .debug_abbrev 0x0000619f 0x100 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_write.o) + .debug_abbrev 0x0000629f 0x158 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_sys_init.o) + .debug_abbrev 0x000063f7 0xf7 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_fd.o) + .debug_abbrev 0x000064ee 0x17c ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_init.o) + .debug_abbrev 0x0000666a 0xf0 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_ioctl.o) + .debug_abbrev 0x0000675a 0x191 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_read.o) + .debug_abbrev 0x000068eb 0x18d ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_write.o) + .debug_abbrev 0x00006a78 0x1c3 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(altera_avalon_lcd_16207.o) + .debug_abbrev 0x00006c3b 0x104 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(altera_avalon_lcd_16207_fd.o) + .debug_abbrev 0x00006d3f 0x172 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_alarm_start.o) + .debug_abbrev 0x00006eb1 0x6c ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_busy_sleep.o) + .debug_abbrev 0x00006f1d 0x3f ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) + .debug_abbrev 0x00006f5c 0xf6 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_dev_llist_insert.o) + .debug_abbrev 0x00007052 0x76 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_do_ctors.o) + .debug_abbrev 0x000070c8 0x76 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_do_dtors.o) + .debug_abbrev 0x0000713e 0x3f ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_icache_flush_all.o) + .debug_abbrev 0x0000717d 0x134 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_iic.o) + .debug_abbrev 0x000072b1 0x14e ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_iic_isr_register.o) + .debug_abbrev 0x000073ff 0xf0 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_io_redirect.o) + .debug_abbrev 0x000074ef 0x12 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_irq_entry.o) + .debug_abbrev 0x00007501 0x10c ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_irq_handler.o) + .debug_abbrev 0x0000760d 0x44 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_irq_vars.o) + .debug_abbrev 0x00007651 0x112 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_open.o) + .debug_abbrev 0x00007763 0x150 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_tick.o) + .debug_abbrev 0x000078b3 0x3f ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) + .debug_abbrev 0x000078f2 0x12 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_exception_entry.o) + .debug_abbrev 0x00007904 0xcf ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_find_dev.o) + .debug_abbrev 0x000079d3 0xcf ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_find_file.o) + .debug_abbrev 0x00007aa2 0xfb ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_get_fd.o) + .debug_abbrev 0x00007b9d 0xb7 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-atexit.o) + .debug_abbrev 0x00007c54 0x16e c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-exit.o) + .debug_abbrev 0x00007dc2 0x7c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memcmp.o) + .debug_abbrev 0x00007e3e 0x1ae c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-__atexit.o) + .debug_abbrev 0x00007fec 0x1de c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-__call_atexit.o) + .debug_abbrev 0x000081ca 0x72 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_exit.o) + +.debug_line 0x00000000 0x15b9c + *(.debug_line) + .debug_line 0x00000000 0x66 ../qsys_tutorial_lcd4_bsp//obj/HAL/src/crt0.o + .debug_line 0x00000066 0x308 obj/default/LCD.o + .debug_line 0x0000036e 0x6a8 obj/default/hello_world_small.o + .debug_line 0x00000a16 0x494 obj/default/hex_encoder.o + .debug_line 0x00000eaa 0x195 obj/default/hex_out.o + .debug_line 0x0000103f 0x1bb obj/default/input_int.o + .debug_line 0x000011fa 0x41c obj/default/inst_decoder.o + .debug_line 0x00001616 0x222 obj/default/lcd_out.o + .debug_line 0x00001838 0x3cc obj/default/sys_debug.o + .debug_line 0x00001c04 0x80 obj/default/sys_except.o + .debug_line 0x00001c84 0x12f obj/default/sys_memory.o + .debug_line 0x00001db3 0xf5 obj/default/sys_prog.o + .debug_line 0x00001ea8 0x7f obj/default/sys_register.o + .debug_line 0x00001f27 0x24f c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-divmod.o) + .debug_line 0x00002176 0x11a c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-mul.o) + .debug_line 0x00002290 0x81 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-ctype_.o) + .debug_line 0x00002311 0x325 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-sprintf.o) + .debug_line 0x00002636 0x270 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-strlen.o) + .debug_line 0x000028a6 0x110f c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-vfprintf.o) + .debug_line 0x000039b5 0x2f3 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-wsetup.o) + .debug_line 0x00003ca8 0x1309 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-dtoa.o) + .debug_line 0x00004fb1 0x410 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fflush.o) + .debug_line 0x000053c1 0x60c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-findfp.o) + .debug_line 0x000059cd 0x5ee c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-freer.o) + .debug_line 0x00005fbb 0x644 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fvwrite.o) + .debug_line 0x000065ff 0x34d c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fwalk.o) + .debug_line 0x0000694c 0x230 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-impure.o) + .debug_line 0x00006b7c 0x2cb c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-locale.o) + .debug_line 0x00006e47 0x3c6 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-makebuf.o) + .debug_line 0x0000720d 0x80d c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-mallocr.o) + .debug_line 0x00007a1a 0x306 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memchr.o) + .debug_line 0x00007d20 0x1af c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memcpy.o) + .debug_line 0x00007ecf 0x30d c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memmove.o) + .debug_line 0x000081dc 0x304 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memset.o) + .debug_line 0x000084e0 0x125e c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-mprec.o) + .debug_line 0x0000973e 0x58d c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-reallocr.o) + .debug_line 0x00009ccb 0x225 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-s_isinfd.o) + .debug_line 0x00009ef0 0x21d c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-s_isnand.o) + .debug_line 0x0000a10d 0x29c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-sbrkr.o) + .debug_line 0x0000a3a9 0x38f c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-stdio.o) + .debug_line 0x0000a738 0x2d8 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-strcmp.o) + .debug_line 0x0000aa10 0x29d c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-writer.o) + .debug_line 0x0000acad 0x25f c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-callocr.o) + .debug_line 0x0000af0c 0x29d c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-closer.o) + .debug_line 0x0000b1a9 0x2eb c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fclose.o) + .debug_line 0x0000b494 0x267 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fstatr.o) + .debug_line 0x0000b6fb 0x1e2 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-int_errno.o) + .debug_line 0x0000b8dd 0x29e c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-isattyr.o) + .debug_line 0x0000bb7b 0x29d c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-lseekr.o) + .debug_line 0x0000be18 0x29c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-readr.o) + .debug_line 0x0000c0b4 0x2f2 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_udivdi3.o) + .debug_line 0x0000c3a6 0x405 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_umoddi3.o) + .debug_line 0x0000c7ab 0x430 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_addsub_df.o) + .debug_line 0x0000cbdb 0x3e5 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_mul_df.o) + .debug_line 0x0000cfc0 0x301 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_div_df.o) + .debug_line 0x0000d2c1 0x129 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_eq_df.o) + .debug_line 0x0000d3ea 0x129 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_ne_df.o) + .debug_line 0x0000d513 0x129 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_gt_df.o) + .debug_line 0x0000d63c 0x129 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_ge_df.o) + .debug_line 0x0000d765 0x129 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_lt_df.o) + .debug_line 0x0000d88e 0x175 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_si_to_df.o) + .debug_line 0x0000da03 0x149 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_df_to_si.o) + .debug_line 0x0000db4c 0x94 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_thenan_df.o) + .debug_line 0x0000dbe0 0x189 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_usi_to_df.o) + .debug_line 0x0000dd69 0x14f c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_muldi3.o) + .debug_line 0x0000deb8 0xaa c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_clz.o) + .debug_line 0x0000df62 0x105 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_clzsi2.o) + .debug_line 0x0000e067 0x222 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_pack_df.o) + .debug_line 0x0000e289 0x1e4 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_unpack_df.o) + .debug_line 0x0000e46d 0x187 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_fpcmp_parts_df.o) + .debug_line 0x0000e5f4 0x299 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_close.o) + .debug_line 0x0000e88d 0x254 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_dev.o) + .debug_line 0x0000eae1 0x1aa ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_errno.o) + .debug_line 0x0000ec8b 0x2a1 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_fstat.o) + .debug_line 0x0000ef2c 0x2a2 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_isatty.o) + .debug_line 0x0000f1ce 0x217 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_load.o) + .debug_line 0x0000f3e5 0x2a1 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_lseek.o) + .debug_line 0x0000f686 0x2ca ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_main.o) + .debug_line 0x0000f950 0x20f ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_malloc_lock.o) + .debug_line 0x0000fb5f 0x2c8 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_read.o) + .debug_line 0x0000fe27 0xed ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_release_fd.o) + .debug_line 0x0000ff14 0x261 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_sbrk.o) + .debug_line 0x00010175 0x202 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_usleep.o) + .debug_line 0x00010377 0x2c9 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_write.o) + .debug_line 0x00010640 0x2eb ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_sys_init.o) + .debug_line 0x0001092b 0x217 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_fd.o) + .debug_line 0x00010b42 0x4ab ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_init.o) + .debug_line 0x00010fed 0x317 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_ioctl.o) + .debug_line 0x00011304 0x3f7 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_read.o) + .debug_line 0x000116fb 0x405 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_write.o) + .debug_line 0x00011b00 0x8c1 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(altera_avalon_lcd_16207.o) + .debug_line 0x000123c1 0x1b7 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(altera_avalon_lcd_16207_fd.o) + .debug_line 0x00012578 0x2dc ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_alarm_start.o) + .debug_line 0x00012854 0x25c ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_busy_sleep.o) + .debug_line 0x00012ab0 0x1b5 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) + .debug_line 0x00012c65 0x25a ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_dev_llist_insert.o) + .debug_line 0x00012ebf 0x83 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_do_ctors.o) + .debug_line 0x00012f42 0x83 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_do_dtors.o) + .debug_line 0x00012fc5 0x1b5 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_icache_flush_all.o) + .debug_line 0x0001317a 0x2c8 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_iic.o) + .debug_line 0x00013442 0x249 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_iic_isr_register.o) + .debug_line 0x0001368b 0x2b4 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_io_redirect.o) + .debug_line 0x0001393f 0x6b ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_irq_entry.o) + .debug_line 0x000139aa 0x248 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_irq_handler.o) + .debug_line 0x00013bf2 0x72 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_irq_vars.o) + .debug_line 0x00013c64 0x2ff ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_open.o) + .debug_line 0x00013f63 0x2dc ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_tick.o) + .debug_line 0x0001423f 0x1ce ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) + .debug_line 0x0001440d 0xab ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_exception_entry.o) + .debug_line 0x000144b8 0x26b ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_find_dev.o) + .debug_line 0x00014723 0x27c ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_find_file.o) + .debug_line 0x0001499f 0x297 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_get_fd.o) + .debug_line 0x00014c36 0x203 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-atexit.o) + .debug_line 0x00014e39 0x23b c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-exit.o) + .debug_line 0x00015074 0x2a2 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memcmp.o) + .debug_line 0x00015316 0x316 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-__atexit.o) + .debug_line 0x0001562c 0x36a c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-__call_atexit.o) + .debug_line 0x00015996 0x206 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_exit.o) + +.debug_frame 0x00000000 0x1ff4 + *(.debug_frame) + .debug_frame 0x00000000 0x84 obj/default/LCD.o + .debug_frame 0x00000084 0x144 obj/default/hello_world_small.o + .debug_frame 0x000001c8 0x48 obj/default/hex_encoder.o + .debug_frame 0x00000210 0x64 obj/default/hex_out.o + .debug_frame 0x00000274 0x80 obj/default/input_int.o + .debug_frame 0x000002f4 0x17c obj/default/inst_decoder.o + .debug_frame 0x00000470 0x80 obj/default/lcd_out.o + .debug_frame 0x000004f0 0x80 obj/default/sys_debug.o + .debug_frame 0x00000570 0x2c obj/default/sys_except.o + .debug_frame 0x0000059c 0x9c obj/default/sys_memory.o + .debug_frame 0x00000638 0x64 obj/default/sys_prog.o + .debug_frame 0x0000069c 0x2c obj/default/sys_register.o + .debug_frame 0x000006c8 0x70 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-divmod.o) + .debug_frame 0x00000738 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-mul.o) + .debug_frame 0x00000758 0x40 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-sprintf.o) + .debug_frame 0x00000798 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-strlen.o) + .debug_frame 0x000007b8 0x64 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-vfprintf.o) + .debug_frame 0x0000081c 0x2c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-wsetup.o) + .debug_frame 0x00000848 0x64 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-dtoa.o) + .debug_frame 0x000008ac 0x40 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fflush.o) + .debug_frame 0x000008ec 0x118 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-findfp.o) + .debug_frame 0x00000a04 0x4c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-freer.o) + .debug_frame 0x00000a50 0x38 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fvwrite.o) + .debug_frame 0x00000a88 0x60 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fwalk.o) + .debug_frame 0x00000ae8 0x70 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-locale.o) + .debug_frame 0x00000b58 0x2c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-makebuf.o) + .debug_frame 0x00000b84 0x38 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-mallocr.o) + .debug_frame 0x00000bbc 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memchr.o) + .debug_frame 0x00000bdc 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memcpy.o) + .debug_frame 0x00000bfc 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memmove.o) + .debug_frame 0x00000c1c 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memset.o) + .debug_frame 0x00000c3c 0x228 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-mprec.o) + .debug_frame 0x00000e64 0x38 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-reallocr.o) + .debug_frame 0x00000e9c 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-s_isinfd.o) + .debug_frame 0x00000ebc 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-s_isnand.o) + .debug_frame 0x00000edc 0x2c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-sbrkr.o) + .debug_frame 0x00000f08 0x78 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-stdio.o) + .debug_frame 0x00000f80 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-strcmp.o) + .debug_frame 0x00000fa0 0x2c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-writer.o) + .debug_frame 0x00000fcc 0x2c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-callocr.o) + .debug_frame 0x00000ff8 0x2c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-closer.o) + .debug_frame 0x00001024 0x3c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fclose.o) + .debug_frame 0x00001060 0x2c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fstatr.o) + .debug_frame 0x0000108c 0x2c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-isattyr.o) + .debug_frame 0x000010b8 0x2c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-lseekr.o) + .debug_frame 0x000010e4 0x2c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-readr.o) + .debug_frame 0x00001110 0x38 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_udivdi3.o) + .debug_frame 0x00001148 0x38 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_umoddi3.o) + .debug_frame 0x00001180 0x70 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_addsub_df.o) + .debug_frame 0x000011f0 0x3c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_mul_df.o) + .debug_frame 0x0000122c 0x30 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_div_df.o) + .debug_frame 0x0000125c 0x2c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_eq_df.o) + .debug_frame 0x00001288 0x2c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_ne_df.o) + .debug_frame 0x000012b4 0x2c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_gt_df.o) + .debug_frame 0x000012e0 0x2c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_ge_df.o) + .debug_frame 0x0000130c 0x2c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_lt_df.o) + .debug_frame 0x00001338 0x30 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_si_to_df.o) + .debug_frame 0x00001368 0x28 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_df_to_si.o) + .debug_frame 0x00001390 0x38 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_usi_to_df.o) + .debug_frame 0x000013c8 0x40 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_muldi3.o) + .debug_frame 0x00001408 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_clzsi2.o) + .debug_frame 0x00001428 0x2c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_pack_df.o) + .debug_frame 0x00001454 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_unpack_df.o) + .debug_frame 0x00001474 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_fpcmp_parts_df.o) + .debug_frame 0x00001494 0x48 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_close.o) + .debug_frame 0x000014dc 0x2c ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_dev.o) + .debug_frame 0x00001508 0x48 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_fstat.o) + .debug_frame 0x00001550 0x48 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_isatty.o) + .debug_frame 0x00001598 0x48 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_load.o) + .debug_frame 0x000015e0 0x48 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_lseek.o) + .debug_frame 0x00001628 0x2c ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_main.o) + .debug_frame 0x00001654 0x48 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_malloc_lock.o) + .debug_frame 0x0000169c 0x48 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_read.o) + .debug_frame 0x000016e4 0x30 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_release_fd.o) + .debug_frame 0x00001714 0x2c ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_sbrk.o) + .debug_frame 0x00001740 0x2c ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_usleep.o) + .debug_frame 0x0000176c 0x48 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_write.o) + .debug_frame 0x000017b4 0x64 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_sys_init.o) + .debug_frame 0x00001818 0x80 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_fd.o) + .debug_frame 0x00001898 0x80 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_init.o) + .debug_frame 0x00001918 0x2c ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_ioctl.o) + .debug_frame 0x00001944 0x2c ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_read.o) + .debug_frame 0x00001970 0x2c ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_write.o) + .debug_frame 0x0000199c 0x124 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(altera_avalon_lcd_16207.o) + .debug_frame 0x00001ac0 0x2c ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(altera_avalon_lcd_16207_fd.o) + .debug_frame 0x00001aec 0x2c ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_alarm_start.o) + .debug_frame 0x00001b18 0x2c ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_busy_sleep.o) + .debug_frame 0x00001b44 0x2c ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) + .debug_frame 0x00001b70 0x48 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_dev_llist_insert.o) + .debug_frame 0x00001bb8 0x2c ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_do_ctors.o) + .debug_frame 0x00001be4 0x2c ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_do_dtors.o) + .debug_frame 0x00001c10 0x2c ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_icache_flush_all.o) + .debug_frame 0x00001c3c 0x80 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_iic.o) + .debug_frame 0x00001cbc 0x2c ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_iic_isr_register.o) + .debug_frame 0x00001ce8 0x4c ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_io_redirect.o) + .debug_frame 0x00001d34 0x2c ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_irq_handler.o) + .debug_frame 0x00001d60 0x68 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_open.o) + .debug_frame 0x00001dc8 0x48 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_tick.o) + .debug_frame 0x00001e10 0x2c ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) + .debug_frame 0x00001e3c 0x2c ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_find_dev.o) + .debug_frame 0x00001e68 0x2c ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_find_file.o) + .debug_frame 0x00001e94 0x30 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_get_fd.o) + .debug_frame 0x00001ec4 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-atexit.o) + .debug_frame 0x00001ee4 0x28 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-exit.o) + .debug_frame 0x00001f0c 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memcmp.o) + .debug_frame 0x00001f2c 0x34 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-__atexit.o) + .debug_frame 0x00001f60 0x4c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-__call_atexit.o) + .debug_frame 0x00001fac 0x48 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_exit.o) + +.debug_str 0x00000000 0x23ac + *(.debug_str) + .debug_str 0x00000000 0x12 obj/default/LCD.o + .debug_str 0x00000012 0x25 obj/default/hello_world_small.o + .debug_str 0x00000037 0x1f obj/default/inst_decoder.o + .debug_str 0x00000056 0x12 obj/default/lcd_out.o + .debug_str 0x00000068 0x25 obj/default/sys_debug.o + .debug_str 0x0000008d 0x9 obj/default/sys_memory.o + .debug_str 0x00000096 0x167 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-divmod.o) + 0x1b4 (size before relaxing) + .debug_str 0x000001fd 0x37 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-mul.o) + 0x175 (size before relaxing) + .debug_str 0x00000234 0xf0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-ctype_.o) + 0x113 (size before relaxing) + .debug_str 0x00000324 0x457 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-sprintf.o) + 0x539 (size before relaxing) + .debug_str 0x0000077b 0xe9 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-strlen.o) + 0x18b (size before relaxing) + .debug_str 0x00000864 0x1c4 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-vfprintf.o) + 0x706 (size before relaxing) + .debug_str 0x00000a28 0x49 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-wsetup.o) + 0x51a (size before relaxing) + .debug_str 0x00000a71 0x19c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-dtoa.o) + 0x60f (size before relaxing) + .debug_str 0x00000c0d 0x68 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fflush.o) + 0x540 (size before relaxing) + .debug_str 0x00000c75 0x105 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-findfp.o) + 0x602 (size before relaxing) + .debug_str 0x00000d7a 0x15e c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-freer.o) + 0x651 (size before relaxing) + .debug_str 0x00000ed8 0x69 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fvwrite.o) + 0x571 (size before relaxing) + .debug_str 0x00000f41 0x61 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fwalk.o) + 0x543 (size before relaxing) + .debug_str 0x00000fa2 0xdf c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-impure.o) + 0x528 (size before relaxing) + .debug_str 0x00001081 0x233 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-locale.o) + 0x6b7 (size before relaxing) + .debug_str 0x000012b4 0x126 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-makebuf.o) + 0x614 (size before relaxing) + .debug_str 0x000013da 0xef c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-mallocr.o) + 0x6ff (size before relaxing) + .debug_str 0x000014c9 0x5f c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memchr.o) + 0x199 (size before relaxing) + .debug_str 0x00001528 0x6c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memcpy.o) + 0x136 (size before relaxing) + .debug_str 0x00001594 0x50 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memmove.o) + 0x1ab (size before relaxing) + .debug_str 0x000015e4 0x45 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memset.o) + 0x18c (size before relaxing) + .debug_str 0x00001629 0xfb c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-mprec.o) + 0x61c (size before relaxing) + .debug_str 0x00001724 0x59 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-reallocr.o) + 0x5d1 (size before relaxing) + .debug_str 0x0000177d 0xea c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-s_isinfd.o) + 0x198 (size before relaxing) + .debug_str 0x00001867 0x49 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-s_isnand.o) + 0x198 (size before relaxing) + .debug_str 0x000018b0 0x53 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-sbrkr.o) + 0x519 (size before relaxing) + .debug_str 0x00001903 0x65 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-stdio.o) + 0x53f (size before relaxing) + .debug_str 0x00001968 0x45 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-strcmp.o) + 0x171 (size before relaxing) + .debug_str 0x000019ad 0x4f c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-writer.o) + 0x51c (size before relaxing) + .debug_str 0x000019fc 0x19 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-callocr.o) + 0x550 (size before relaxing) + .debug_str 0x00001a15 0x46 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-closer.o) + 0x50c (size before relaxing) + .debug_str 0x00001a5b 0x4e c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fclose.o) + 0x524 (size before relaxing) + .debug_str 0x00001aa9 0x4c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fstatr.o) + 0x5ff (size before relaxing) + .debug_str 0x00001af5 0x40 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-int_errno.o) + 0x171 (size before relaxing) + .debug_str 0x00001b35 0x48 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-isattyr.o) + 0x50e (size before relaxing) + .debug_str 0x00001b7d 0x46 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-lseekr.o) + 0x51a (size before relaxing) + .debug_str 0x00001bc3 0x44 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-readr.o) + 0x51a (size before relaxing) + .debug_str 0x00001c07 0xb2 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_udivdi3.o) + 0x1f7 (size before relaxing) + .debug_str 0x00001cb9 0xa c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_umoddi3.o) + 0x1f7 (size before relaxing) + .debug_str 0x00001cc3 0x137 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_addsub_df.o) + 0x26f (size before relaxing) + .debug_str 0x00001dfa 0x40 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_mul_df.o) + 0x241 (size before relaxing) + .debug_str 0x00001e3a 0x35 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_div_df.o) + 0x231 (size before relaxing) + .debug_str 0x00001e6f 0x8 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_eq_df.o) + 0x1fe (size before relaxing) + .debug_str 0x00001e77 0x8 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_ne_df.o) + 0x1fe (size before relaxing) + .debug_str 0x00001e7f 0x8 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_gt_df.o) + 0x1fe (size before relaxing) + .debug_str 0x00001e87 0x8 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_ge_df.o) + 0x1fe (size before relaxing) + .debug_str 0x00001e8f 0x8 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_lt_df.o) + 0x1fe (size before relaxing) + .debug_str 0x00001e97 0x18 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_si_to_df.o) + 0x1de (size before relaxing) + .debug_str 0x00001eaf 0xa c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_df_to_si.o) + 0x207 (size before relaxing) + .debug_str 0x00000000 0x1a3 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_thenan_df.o) + .debug_str 0x00001eb9 0x14 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_usi_to_df.o) + 0x1da (size before relaxing) + .debug_str 0x00001ecd 0x9 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_muldi3.o) + 0x1ac (size before relaxing) + .debug_str 0x00000000 0x161 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_clz.o) + .debug_str 0x00001ed6 0x9 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_clzsi2.o) + 0x17e (size before relaxing) + .debug_str 0x00001edf 0x10 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_pack_df.o) + 0x206 (size before relaxing) + .debug_str 0x00001eef 0xb c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_unpack_df.o) + 0x1e8 (size before relaxing) + .debug_str 0x00001efa 0x10 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_fpcmp_parts_df.o) + 0x1c6 (size before relaxing) + .debug_str 0x00001f0a 0x12 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_close.o) + .debug_str 0x00001f1c 0x12 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_dev.o) + .debug_str 0x00001f2e 0x12 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_errno.o) + .debug_str 0x00001f40 0x12 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_fstat.o) + .debug_str 0x00001f52 0x12 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_isatty.o) + .debug_str 0x00001f64 0x12 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_load.o) + .debug_str 0x00001f76 0x12 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_lseek.o) + .debug_str 0x00001f88 0x12 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_main.o) + .debug_str 0x00001f9a 0x20 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_malloc_lock.o) + .debug_str 0x00001fba 0x12 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_read.o) + .debug_str 0x00001fcc 0x1a ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_sbrk.o) + .debug_str 0x00001fe6 0x12 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_usleep.o) + .debug_str 0x00001ff8 0x12 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_write.o) + .debug_str 0x0000200a 0x12 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_sys_init.o) + .debug_str 0x0000201c 0x12 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_fd.o) + .debug_str 0x0000202e 0x1a ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_init.o) + .debug_str 0x00002048 0x12 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_ioctl.o) + .debug_str 0x0000205a 0x1a ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_read.o) + .debug_str 0x00002074 0x1a ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_write.o) + .debug_str 0x0000208e 0x25 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(altera_avalon_lcd_16207.o) + .debug_str 0x000020b3 0x12 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(altera_avalon_lcd_16207_fd.o) + .debug_str 0x000020c5 0x23 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_alarm_start.o) + .debug_str 0x000020e8 0x12 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_busy_sleep.o) + .debug_str 0x000020fa 0x12 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) + .debug_str 0x0000210c 0x12 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_dev_llist_insert.o) + .debug_str 0x0000211e 0x12 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_icache_flush_all.o) + .debug_str 0x00002130 0x18 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_iic.o) + .debug_str 0x00002148 0x1a ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_iic_isr_register.o) + .debug_str 0x00002162 0x12 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_io_redirect.o) + .debug_str 0x00002174 0x12 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_irq_handler.o) + .debug_str 0x00002186 0x12 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_open.o) + .debug_str 0x00002198 0x1a ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_tick.o) + .debug_str 0x000021b2 0x12 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) + .debug_str 0x000021c4 0x12 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_find_dev.o) + .debug_str 0x000021d6 0x12 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_find_file.o) + .debug_str 0x000021e8 0x12 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_get_fd.o) + .debug_str 0x000021fa 0x3e c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-atexit.o) + 0x1cd (size before relaxing) + .debug_str 0x00002238 0x41 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-exit.o) + 0x51a (size before relaxing) + .debug_str 0x00002279 0x45 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memcmp.o) + 0x178 (size before relaxing) + .debug_str 0x000022be 0x54 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-__atexit.o) + 0x532 (size before relaxing) + .debug_str 0x00002312 0x7e c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-__call_atexit.o) + 0x55c (size before relaxing) + .debug_str 0x00002390 0x1c ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_exit.o) + +.debug_loc 0x00000000 0xc785 + *(.debug_loc) + .debug_loc 0x00000000 0xac obj/default/LCD.o + .debug_loc 0x000000ac 0x1d9 obj/default/hello_world_small.o + .debug_loc 0x00000285 0x56 obj/default/hex_encoder.o + .debug_loc 0x000002db 0x81 obj/default/hex_out.o + .debug_loc 0x0000035c 0xac obj/default/input_int.o + .debug_loc 0x00000408 0x22f obj/default/inst_decoder.o + .debug_loc 0x00000637 0xac obj/default/lcd_out.o + .debug_loc 0x000006e3 0xac obj/default/sys_debug.o + .debug_loc 0x0000078f 0x2b obj/default/sys_except.o + .debug_loc 0x000007ba 0xd7 obj/default/sys_memory.o + .debug_loc 0x00000891 0x81 obj/default/sys_prog.o + .debug_loc 0x00000912 0x2b obj/default/sys_register.o + .debug_loc 0x0000093d 0x1d2 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-divmod.o) + .debug_loc 0x00000b0f 0x4f c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-mul.o) + .debug_loc 0x00000b5e 0xc0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-sprintf.o) + .debug_loc 0x00000c1e 0x3c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-strlen.o) + .debug_loc 0x00000c5a 0x1dc0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-vfprintf.o) + .debug_loc 0x00002a1a 0x7c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-wsetup.o) + .debug_loc 0x00002a96 0x1da7 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-dtoa.o) + .debug_loc 0x0000483d 0x1f6 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fflush.o) + .debug_loc 0x00004a33 0x1e1 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-findfp.o) + .debug_loc 0x00004c14 0x4a7 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-freer.o) + .debug_loc 0x000050bb 0x4e4 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fvwrite.o) + .debug_loc 0x0000559f 0x1d2 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fwalk.o) + .debug_loc 0x00005771 0xe1 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-locale.o) + .debug_loc 0x00005852 0x11c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-makebuf.o) + .debug_loc 0x0000596e 0xaeb c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-mallocr.o) + .debug_loc 0x00006459 0x106 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memchr.o) + .debug_loc 0x0000655f 0xca c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memcpy.o) + .debug_loc 0x00006629 0x117 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memmove.o) + .debug_loc 0x00006740 0xa1 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memset.o) + .debug_loc 0x000067e1 0x1547 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-mprec.o) + .debug_loc 0x00007d28 0x8c0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-reallocr.o) + .debug_loc 0x000085e8 0x36 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-s_isinfd.o) + .debug_loc 0x0000861e 0x18 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-s_isnand.o) + .debug_loc 0x00008636 0x5b c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-sbrkr.o) + .debug_loc 0x00008691 0x21f c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-stdio.o) + .debug_loc 0x000088b0 0x65 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-strcmp.o) + .debug_loc 0x00008915 0x97 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-writer.o) + .debug_loc 0x000089ac 0xff c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-callocr.o) + .debug_loc 0x00008aab 0x5b c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-closer.o) + .debug_loc 0x00008b06 0xe4 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fclose.o) + .debug_loc 0x00008bea 0x79 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fstatr.o) + .debug_loc 0x00008c63 0x5b c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-isattyr.o) + .debug_loc 0x00008cbe 0x97 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-lseekr.o) + .debug_loc 0x00008d55 0x97 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-readr.o) + .debug_loc 0x00008dec 0xc12 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_udivdi3.o) + .debug_loc 0x000099fe 0xbcc c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_umoddi3.o) + .debug_loc 0x0000a5ca 0x47a c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_addsub_df.o) + .debug_loc 0x0000aa44 0x3b4 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_mul_df.o) + .debug_loc 0x0000adf8 0x1df c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_div_df.o) + .debug_loc 0x0000afd7 0x70 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_eq_df.o) + .debug_loc 0x0000b047 0x70 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_ne_df.o) + .debug_loc 0x0000b0b7 0x70 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_gt_df.o) + .debug_loc 0x0000b127 0x70 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_ge_df.o) + .debug_loc 0x0000b197 0x70 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_lt_df.o) + .debug_loc 0x0000b207 0x9a c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_si_to_df.o) + .debug_loc 0x0000b2a1 0x8b c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_df_to_si.o) + .debug_loc 0x0000b32c 0x5b c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_usi_to_df.o) + .debug_loc 0x0000b387 0x103 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_muldi3.o) + .debug_loc 0x0000b48a 0x1e c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_clzsi2.o) + .debug_loc 0x0000b4a8 0x184 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_pack_df.o) + .debug_loc 0x0000b62c 0xe5 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_unpack_df.o) + .debug_loc 0x0000b711 0x56 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_close.o) + .debug_loc 0x0000b767 0x2b ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_dev.o) + .debug_loc 0x0000b792 0x56 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_fstat.o) + .debug_loc 0x0000b7e8 0x57 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_isatty.o) + .debug_loc 0x0000b83f 0x56 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_load.o) + .debug_loc 0x0000b895 0x56 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_lseek.o) + .debug_loc 0x0000b8eb 0x2b ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_main.o) + .debug_loc 0x0000b916 0x56 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_malloc_lock.o) + .debug_loc 0x0000b96c 0x56 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_read.o) + .debug_loc 0x0000b9c2 0x2b ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_release_fd.o) + .debug_loc 0x0000b9ed 0x2b ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_sbrk.o) + .debug_loc 0x0000ba18 0x2b ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_usleep.o) + .debug_loc 0x0000ba43 0x56 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_write.o) + .debug_loc 0x0000ba99 0x81 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_sys_init.o) + .debug_loc 0x0000bb1a 0xac ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_fd.o) + .debug_loc 0x0000bbc6 0xac ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_init.o) + .debug_loc 0x0000bc72 0x2b ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_ioctl.o) + .debug_loc 0x0000bc9d 0x2b ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_read.o) + .debug_loc 0x0000bcc8 0x2b ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_write.o) + .debug_loc 0x0000bcf3 0x184 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(altera_avalon_lcd_16207.o) + .debug_loc 0x0000be77 0x2b ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(altera_avalon_lcd_16207_fd.o) + .debug_loc 0x0000bea2 0x2b ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_alarm_start.o) + .debug_loc 0x0000becd 0x2b ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_busy_sleep.o) + .debug_loc 0x0000bef8 0x2b ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) + .debug_loc 0x0000bf23 0x56 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_dev_llist_insert.o) + .debug_loc 0x0000bf79 0x2b ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_do_ctors.o) + .debug_loc 0x0000bfa4 0x2b ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_do_dtors.o) + .debug_loc 0x0000bfcf 0x2b ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_icache_flush_all.o) + .debug_loc 0x0000bffa 0xac ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_iic.o) + .debug_loc 0x0000c0a6 0x2b ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_iic_isr_register.o) + .debug_loc 0x0000c0d1 0x56 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_io_redirect.o) + .debug_loc 0x0000c127 0x2b ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_irq_handler.o) + .debug_loc 0x0000c152 0x81 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_open.o) + .debug_loc 0x0000c1d3 0x56 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_tick.o) + .debug_loc 0x0000c229 0x2b ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) + .debug_loc 0x0000c254 0x2b ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_find_dev.o) + .debug_loc 0x0000c27f 0x2b ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_find_file.o) + .debug_loc 0x0000c2aa 0x2b ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_get_fd.o) + .debug_loc 0x0000c2d5 0x1e c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-atexit.o) + .debug_loc 0x0000c2f3 0x3d c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-exit.o) + .debug_loc 0x0000c330 0x114 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memcmp.o) + .debug_loc 0x0000c444 0x120 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-__atexit.o) + .debug_loc 0x0000c564 0x1cb c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-__call_atexit.o) + .debug_loc 0x0000c72f 0x56 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_exit.o) + +.debug_macinfo + *(.debug_macinfo) + +.debug_weaknames + *(.debug_weaknames) + +.debug_funcnames + *(.debug_funcnames) + +.debug_typenames + *(.debug_typenames) + +.debug_varnames + *(.debug_varnames) + +.debug_alt_sim_info + 0x00000000 0x40 + *(.debug_alt_sim_info) + .debug_alt_sim_info + 0x00000000 0x10 ../qsys_tutorial_lcd4_bsp//obj/HAL/src/crt0.o + .debug_alt_sim_info + 0x00000010 0x30 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_busy_sleep.o) + 0x00032000 __alt_data_end = 0x32000 + 0x00032000 PROVIDE (__alt_stack_pointer, __alt_data_end) + 0x000144d4 PROVIDE (__alt_stack_limit, __alt_stack_base) + 0x000144d4 PROVIDE (__alt_heap_start, end) + 0x00032000 PROVIDE (__alt_heap_limit, 0x32000) +OUTPUT(qsys_tutorial_lcd4.elf elf32-littlenios2) + +.debug_ranges 0x00000000 0x9e0 + .debug_ranges 0x00000000 0x20 ../qsys_tutorial_lcd4_bsp//obj/HAL/src/crt0.o + .debug_ranges 0x00000020 0x168 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-vfprintf.o) + .debug_ranges 0x00000188 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fflush.o) + .debug_ranges 0x000001a8 0x28 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fvwrite.o) + .debug_ranges 0x000001d0 0xa0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fwalk.o) + .debug_ranges 0x00000270 0x70 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-mallocr.o) + .debug_ranges 0x000002e0 0x110 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-reallocr.o) + .debug_ranges 0x000003f0 0x38 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-callocr.o) + .debug_ranges 0x00000428 0x190 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_udivdi3.o) + .debug_ranges 0x000005b8 0x1c0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_umoddi3.o) + .debug_ranges 0x00000778 0x30 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_addsub_df.o) + .debug_ranges 0x000007a8 0x88 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_mul_df.o) + .debug_ranges 0x00000830 0x50 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_div_df.o) + .debug_ranges 0x00000880 0x18 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_usi_to_df.o) + .debug_ranges 0x00000898 0x88 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_muldi3.o) + .debug_ranges 0x00000920 0x28 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_clzsi2.o) + .debug_ranges 0x00000948 0x28 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_pack_df.o) + .debug_ranges 0x00000970 0x28 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_irq_entry.o) + .debug_ranges 0x00000998 0x30 ../qsys_tutorial_lcd4_bsp/\libhal_bsp.a(alt_exception_entry.o) + .debug_ranges 0x000009c8 0x18 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-__call_atexit.o) diff --git a/software/qsys_tutorial_lcd4/qsys_tutorial_lcd4.objdump b/software/qsys_tutorial_lcd4/qsys_tutorial_lcd4.objdump new file mode 100644 index 0000000..9ac00fc --- /dev/null +++ b/software/qsys_tutorial_lcd4/qsys_tutorial_lcd4.objdump @@ -0,0 +1,20847 @@ + +qsys_tutorial_lcd4.elf: file format elf32-littlenios2 +qsys_tutorial_lcd4.elf +architecture: nios2, flags 0x00000112: +EXEC_P, HAS_SYMS, D_PAGED +start address 0x000001b4 + +Program Header: + LOAD off 0x00001000 vaddr 0x00000000 paddr 0x00000000 align 2**12 + filesz 0x00000020 memsz 0x00000020 flags r-x + LOAD off 0x00001020 vaddr 0x00000020 paddr 0x00000020 align 2**12 + filesz 0x00010594 memsz 0x00010594 flags r-x + LOAD off 0x000115b4 vaddr 0x000105b4 paddr 0x0001213c align 2**12 + filesz 0x00001b88 memsz 0x00001b88 flags rw- + LOAD off 0x00013cc4 vaddr 0x00013cc4 paddr 0x00013cc4 align 2**12 + filesz 0x00000000 memsz 0x00000810 flags rw- + +Sections: +Idx Name Size VMA LMA File off Algn + 0 .entry 00000020 00000000 00000000 00001000 2**5 + CONTENTS, ALLOC, LOAD, READONLY, CODE + 1 .exceptions 00000194 00000020 00000020 00001020 2**2 + CONTENTS, ALLOC, LOAD, READONLY, CODE + 2 .text 0000fce4 000001b4 000001b4 000011b4 2**2 + CONTENTS, ALLOC, LOAD, READONLY, CODE + 3 .rodata 0000071c 0000fe98 0000fe98 00010e98 2**2 + CONTENTS, ALLOC, LOAD, READONLY, DATA + 4 .rwdata 00001b88 000105b4 0001213c 000115b4 2**2 + CONTENTS, ALLOC, LOAD, DATA, SMALL_DATA + 5 .bss 00000810 00013cc4 00013cc4 00013cc4 2**2 + ALLOC, SMALL_DATA + 6 .comment 00000026 00000000 00000000 0001313c 2**0 + CONTENTS, READONLY + 7 .debug_aranges 00000e18 00000000 00000000 00013168 2**3 + CONTENTS, READONLY, DEBUGGING + 8 .debug_pubnames 000017c4 00000000 00000000 00013f80 2**0 + CONTENTS, READONLY, DEBUGGING + 9 .debug_info 000251e5 00000000 00000000 00015744 2**0 + CONTENTS, READONLY, DEBUGGING + 10 .debug_abbrev 0000823c 00000000 00000000 0003a929 2**0 + CONTENTS, READONLY, DEBUGGING + 11 .debug_line 00015b9c 00000000 00000000 00042b65 2**0 + CONTENTS, READONLY, DEBUGGING + 12 .debug_frame 00001ff4 00000000 00000000 00058704 2**2 + CONTENTS, READONLY, DEBUGGING + 13 .debug_str 000023ac 00000000 00000000 0005a6f8 2**0 + CONTENTS, READONLY, DEBUGGING + 14 .debug_loc 0000c785 00000000 00000000 0005caa4 2**0 + CONTENTS, READONLY, DEBUGGING + 15 .debug_alt_sim_info 00000040 00000000 00000000 0006922c 2**2 + CONTENTS, READONLY, DEBUGGING + 16 .debug_ranges 000009e0 00000000 00000000 00069270 2**3 + CONTENTS, READONLY, DEBUGGING + 17 .thread_model 00000003 00000000 00000000 0006d43a 2**0 + CONTENTS, READONLY + 18 .cpu 0000000f 00000000 00000000 0006d43d 2**0 + CONTENTS, READONLY + 19 .qsys 00000001 00000000 00000000 0006d44c 2**0 + CONTENTS, READONLY + 20 .simulation_enabled 00000001 00000000 00000000 0006d44d 2**0 + CONTENTS, READONLY + 21 .stderr_dev 00000009 00000000 00000000 0006d44e 2**0 + CONTENTS, READONLY + 22 .stdin_dev 00000009 00000000 00000000 0006d457 2**0 + CONTENTS, READONLY + 23 .stdout_dev 00000009 00000000 00000000 0006d460 2**0 + CONTENTS, READONLY + 24 .sopc_system_name 0000000b 00000000 00000000 0006d469 2**0 + CONTENTS, READONLY + 25 .quartus_project_dir 00000030 00000000 00000000 0006d474 2**0 + CONTENTS, READONLY + 26 .sopcinfo 0007d2ad 00000000 00000000 0006d4a4 2**0 + CONTENTS, READONLY +SYMBOL TABLE: +00000000 l d .entry 00000000 .entry +00000020 l d .exceptions 00000000 .exceptions +000001b4 l d .text 00000000 .text +0000fe98 l d .rodata 00000000 .rodata +000105b4 l d .rwdata 00000000 .rwdata +00013cc4 l d .bss 00000000 .bss +00000000 l d .comment 00000000 .comment +00000000 l d .debug_aranges 00000000 .debug_aranges +00000000 l d .debug_pubnames 00000000 .debug_pubnames +00000000 l d .debug_info 00000000 .debug_info +00000000 l d .debug_abbrev 00000000 .debug_abbrev +00000000 l d .debug_line 00000000 .debug_line +00000000 l d .debug_frame 00000000 .debug_frame +00000000 l d .debug_str 00000000 .debug_str +00000000 l d .debug_loc 00000000 .debug_loc +00000000 l d .debug_alt_sim_info 00000000 .debug_alt_sim_info +00000000 l d .debug_ranges 00000000 .debug_ranges +000001ec l .text 00000000 alt_after_alt_main +00000000 l df *ABS* 00000000 alt_irq_handler.c +00000000 l df *ABS* 00000000 LCD.c +00000000 l df *ABS* 00000000 hello_world_small.c +000008e4 l F .text 00000044 reset_mem_cancel +00000928 l F .text 000000b4 reset_mem +000009dc l F .text 00000044 reset_pc_cancel +00000a20 l F .text 00000094 reset_pc +00000000 l df *ABS* 00000000 hex_encoder.c +00000000 l df *ABS* 00000000 hex_out.c +00000000 l df *ABS* 00000000 input_int.c +000016ac l F .text 000000e8 update_sw_reg +00013ccc l O .bss 00000004 event_code.1400 +00013cd0 l O .bss 00000001 status.1399 +00000000 l df *ABS* 00000000 inst_decoder.c +00000000 l df *ABS* 00000000 lcd_out.c +00000000 l df *ABS* 00000000 sys_debug.c +00000000 l df *ABS* 00000000 sys_except.c +00000000 l df *ABS* 00000000 sys_memory.c +00013d0c l O .bss 00000100 memory +00013e0c l O .bss 00000400 inst_memory +00000000 l df *ABS* 00000000 sys_prog.c +00000000 l df *ABS* 00000000 sys_register.c +00000000 l df *ABS* 00000000 lib2-divmod.c +000029e0 l F .text 0000007c udivmodsi4 +00000000 l df *ABS* 00000000 lib2-mul.c +00000000 l df *ABS* 00000000 ctype_.c +000100e5 l O .rodata 00000180 _ctype_b +00000000 l df *ABS* 00000000 sprintf.c +00000000 l df *ABS* 00000000 strlen.c +00000000 l df *ABS* 00000000 vfprintf.c +00002cac l F .text 00000058 __sprint_r +000102d6 l O .rodata 00000010 blanks.3452 +000102c6 l O .rodata 00000010 zeroes.3453 +00000000 l df *ABS* 00000000 wsetup.c +00000000 l df *ABS* 00000000 dtoa.c +00004d28 l F .text 00000244 quorem +00000000 l df *ABS* 00000000 fflush.c +00000000 l df *ABS* 00000000 findfp.c +00006750 l F .text 00000058 std +0000685c l F .text 00000008 __fp_lock +00006864 l F .text 00000008 __fp_unlock +00000000 l df *ABS* 00000000 mallocr.c +00000000 l df *ABS* 00000000 fvwrite.c +00000000 l df *ABS* 00000000 fwalk.c +00000000 l df *ABS* 00000000 impure.c +000105b4 l O .rwdata 00000400 impure_data +00000000 l df *ABS* 00000000 locale.c +00012104 l O .rwdata 00000004 charset +0001030c l O .rodata 00000030 lconv +00000000 l df *ABS* 00000000 makebuf.c +00000000 l df *ABS* 00000000 mallocr.c +00000000 l df *ABS* 00000000 memchr.c +00000000 l df *ABS* 00000000 memcpy.c +00000000 l df *ABS* 00000000 memmove.c +00000000 l df *ABS* 00000000 memset.c +00000000 l df *ABS* 00000000 mprec.c +00010454 l O .rodata 0000000c p05.2458 +00000000 l df *ABS* 00000000 mallocr.c +00000000 l df *ABS* 00000000 s_isinfd.c +00000000 l df *ABS* 00000000 s_isnand.c +00000000 l df *ABS* 00000000 sbrkr.c +00000000 l df *ABS* 00000000 stdio.c +00000000 l df *ABS* 00000000 strcmp.c +00000000 l df *ABS* 00000000 writer.c +00000000 l df *ABS* 00000000 mallocr.c +00000000 l df *ABS* 00000000 closer.c +00000000 l df *ABS* 00000000 fclose.c +00000000 l df *ABS* 00000000 fstatr.c +00000000 l df *ABS* 00000000 int_errno.c +00000000 l df *ABS* 00000000 isattyr.c +00000000 l df *ABS* 00000000 lseekr.c +00000000 l df *ABS* 00000000 readr.c +00000000 l df *ABS* 00000000 libgcc2.c +00000000 l df *ABS* 00000000 libgcc2.c +00000000 l df *ABS* 00000000 dp-bit.c +0000ac10 l F .text 00000410 _fpadd_parts +00000000 l df *ABS* 00000000 dp-bit.c +00000000 l df *ABS* 00000000 dp-bit.c +00000000 l df *ABS* 00000000 dp-bit.c +00000000 l df *ABS* 00000000 dp-bit.c +00000000 l df *ABS* 00000000 dp-bit.c +00000000 l df *ABS* 00000000 dp-bit.c +00000000 l df *ABS* 00000000 dp-bit.c +00000000 l df *ABS* 00000000 dp-bit.c +00000000 l df *ABS* 00000000 dp-bit.c +00000000 l df *ABS* 00000000 dp-bit.c +00000000 l df *ABS* 00000000 dp-bit.c +00000000 l df *ABS* 00000000 libgcc2.c +00000000 l df *ABS* 00000000 libgcc2.c +00000000 l df *ABS* 00000000 libgcc2.c +00000000 l df *ABS* 00000000 dp-bit.c +00000000 l df *ABS* 00000000 dp-bit.c +00000000 l df *ABS* 00000000 dp-bit.c +00000000 l df *ABS* 00000000 alt_close.c +0000c4f4 l F .text 00000060 alt_get_errno +00000000 l df *ABS* 00000000 alt_dev.c +0000c554 l F .text 0000002c alt_dev_null_write +00000000 l df *ABS* 00000000 alt_errno.c +00000000 l df *ABS* 00000000 alt_fstat.c +0000c658 l F .text 00000060 alt_get_errno +00000000 l df *ABS* 00000000 alt_isatty.c +0000c77c l F .text 00000060 alt_get_errno +00000000 l df *ABS* 00000000 alt_load.c +0000c85c l F .text 0000006c alt_load_section +00000000 l df *ABS* 00000000 alt_lseek.c +0000c9bc l F .text 00000060 alt_get_errno +00000000 l df *ABS* 00000000 alt_main.c +00000000 l df *ABS* 00000000 alt_malloc_lock.c +00000000 l df *ABS* 00000000 alt_read.c +0000cbec l F .text 00000060 alt_get_errno +00000000 l df *ABS* 00000000 alt_release_fd.c +00000000 l df *ABS* 00000000 alt_sbrk.c +00012128 l O .rwdata 00000004 heap_end +00000000 l df *ABS* 00000000 alt_usleep.c +00000000 l df *ABS* 00000000 alt_write.c +0000ced4 l F .text 00000060 alt_get_errno +00000000 l df *ABS* 00000000 alt_sys_init.c +00010f70 l O .rwdata 00001060 jtag_uart +00011fd0 l O .rwdata 00000120 lcd_16207_0 +0000cfc4 l F .text 00000038 alt_dev_reg +00000000 l df *ABS* 00000000 altera_avalon_jtag_uart_fd.c +00000000 l df *ABS* 00000000 altera_avalon_jtag_uart_init.c +0000d204 l F .text 00000228 altera_avalon_jtag_uart_irq +0000d42c l F .text 000000b0 altera_avalon_jtag_uart_timeout +00000000 l df *ABS* 00000000 altera_avalon_jtag_uart_ioctl.c +00000000 l df *ABS* 00000000 altera_avalon_jtag_uart_read.c +00000000 l df *ABS* 00000000 altera_avalon_jtag_uart_write.c +00000000 l df *ABS* 00000000 altera_avalon_lcd_16207.c +0001212c l O .rwdata 00000004 colstart +0000daa8 l F .text 000000b8 lcd_write_command +0000db60 l F .text 000000d4 lcd_write_data +0000dc34 l F .text 000000d8 lcd_clear_screen +0000dd0c l F .text 00000214 lcd_repaint_screen +0000df20 l F .text 000000e0 lcd_scroll_up +0000e000 l F .text 000002e4 lcd_handle_escape +0000e820 l F .text 000000cc alt_lcd_16207_timeout +00000000 l df *ABS* 00000000 altera_avalon_lcd_16207_fd.c +00000000 l df *ABS* 00000000 alt_alarm_start.c +00000000 l df *ABS* 00000000 alt_busy_sleep.c +00000000 l df *ABS* 00000000 alt_dcache_flush_all.c +00000000 l df *ABS* 00000000 alt_dev_llist_insert.c +0000ee00 l F .text 00000060 alt_get_errno +00000000 l df *ABS* 00000000 alt_do_ctors.c +00000000 l df *ABS* 00000000 alt_do_dtors.c +00000000 l df *ABS* 00000000 alt_icache_flush_all.c +00000000 l df *ABS* 00000000 alt_iic.c +00000000 l df *ABS* 00000000 alt_iic_isr_register.c +00000000 l df *ABS* 00000000 alt_io_redirect.c +0000f210 l F .text 000000d8 alt_open_fd +00000000 l df *ABS* 00000000 alt_irq_vars.c +00000000 l df *ABS* 00000000 alt_open.c +0000f360 l F .text 000000f8 alt_file_locked +0000f5e4 l F .text 00000060 alt_get_errno +00000000 l df *ABS* 00000000 alt_tick.c +00000000 l df *ABS* 00000000 altera_nios2_qsys_irq.c +00000000 l df *ABS* 00000000 alt_find_dev.c +00000000 l df *ABS* 00000000 alt_find_file.c +00000000 l df *ABS* 00000000 alt_get_fd.c +00000000 l df *ABS* 00000000 atexit.c +00000000 l df *ABS* 00000000 exit.c +00000000 l df *ABS* 00000000 memcmp.c +00000000 l df *ABS* 00000000 __atexit.c +00000000 l df *ABS* 00000000 __call_atexit.c +0000fc80 l F .text 00000004 register_fini +00000000 l df *ABS* 00000000 alt_exit.c +0000fe34 l F .text 00000040 alt_sim_halt +00008540 g F .text 00000094 _mprec_log10 +0000862c g F .text 00000088 __any_on +00009de4 g F .text 00000070 _isatty_r +0001042c g O .rodata 00000028 __mprec_tinytens +00001ca8 g F .text 00000038 inst_load +0000ca1c g F .text 0000006c alt_main +00014244 g O .bss 00000100 alt_irq +00009e54 g F .text 00000078 _lseek_r +0001213c g *ABS* 00000000 __flash_rwdata_start +0000b730 g F .text 00000088 __eqdf2 +000144d4 g *ABS* 00000000 __alt_heap_start +0000989c g F .text 00000068 __sseek +000067b8 g F .text 000000a4 __sinit +00002884 g F .text 00000084 inc_pc +000014fc g F .text 00000090 clear_block +000074c4 g F .text 00000084 _setlocale_r +000004d8 g F .text 000000e4 store_value +000068b8 g F .text 0000009c __sfmoreglue +0000caa8 g F .text 00000020 __malloc_unlock +00001d74 g F .text 0000005c inst_add +00001fc8 g F .text 00000050 inst_jine +00007fbc g F .text 000000e0 memmove +000068a8 g F .text 00000010 _cleanup +000086b4 g F .text 000000bc _Balloc +00000350 g F .text 0000008c LCD_Test +0000b840 g F .text 00000088 __gtdf2 +00000000 w *UND* 00000000 __errno +00000000 g F .entry 0000000c __reset +00000020 g *ABS* 00000000 __flash_exceptions_start +00009d70 g F .text 00000074 _fstat_r +00013cf0 g O .bss 00000004 errno +00013cf8 g O .bss 00000004 alt_argv +0001a0f0 g *ABS* 00000000 _gp +0000cd80 g F .text 00000030 usleep +00010df0 g O .rwdata 00000180 alt_fd_list +00001bdc g F .text 0000005c inst_jump +0000f808 g F .text 00000094 alt_find_dev +00007f1c g F .text 000000a0 memcpy +0000689c g F .text 0000000c _cleanup_r +0000b9d8 g F .text 000000f8 __floatsidf +0000f2e8 g F .text 00000078 alt_io_redirect +0000b950 g F .text 00000088 __ltdf2 +0000fe98 g *ABS* 00000000 __DTOR_END__ +00008490 g F .text 000000b0 __ratio +00000724 g F .text 00000150 run_proc +0000d644 g F .text 00000224 altera_avalon_jtag_uart_read +00000000 w *UND* 00000000 malloc +00002b1c g F .text 00000008 __udivsi3 +0000c6b8 g F .text 000000c4 isatty +0001033c g O .rodata 000000c8 __mprec_tens +000074a0 g F .text 00000008 __locale_charset +00013ce4 g O .bss 00000004 __malloc_top_pad +00012100 g O .rwdata 00000004 __mb_cur_max +000074a8 g F .text 0000000c _localeconv_r +00008e18 g F .text 0000003c __i2b +00006e84 g F .text 0000049c __sfvwrite_r +00009824 g F .text 00000070 _sbrk_r +00002060 g F .text 00000028 lcd_caret_reset +00001f78 g F .text 00000050 inst_jieq +00009ecc g F .text 00000078 _read_r +000109b4 g O .rwdata 0000000c __lc_ctype +00012120 g O .rwdata 00000004 alt_max_fd +0000c1f4 g F .text 00000138 __unpack_d +00009c4c g F .text 00000110 _fclose_r +000021f8 g F .text 00000170 convertRegName +0000671c g F .text 00000034 fflush +00013ce8 g O .bss 00000004 __malloc_max_sbrked_mem +00001c38 g F .text 00000070 inst_output +0000b0a0 g F .text 00000074 __adddf3 +00008370 g F .text 00000120 __b2d +00002758 g F .text 0000009c memory_store +0000a5b0 g F .text 00000660 __umoddi3 +0000c8c8 g F .text 000000f4 lseek +000120fc g O .rwdata 00000004 _global_impure_ptr +000091c0 g F .text 000005f4 _realloc_r +000144d4 g *ABS* 00000000 __bss_end +0000f118 g F .text 000000f8 alt_iic_isr_register +0000f6dc g F .text 0000010c alt_tick +00013cc4 g O .bss 00000005 stack +00009f44 g F .text 0000066c __udivdi3 +00010404 g O .rodata 00000028 __mprec_bigtens +000090a0 g F .text 00000120 __s2b +0000bba8 g F .text 00000194 __floatunsidf +00008290 g F .text 00000060 __mcmp +000120f4 g O .rwdata 00000004 __ctype_ptr +00006884 g F .text 00000018 __fp_lock_all +0000f0d0 g F .text 00000048 alt_ic_irq_enabled +0000f644 g F .text 00000098 alt_alarm_stop +00013d00 g O .bss 00000004 alt_irq_active +00001944 g F .text 0000004c inst_fetch +000000ec g F .exceptions 000000c8 alt_irq_handler +00010dc8 g O .rwdata 00000028 alt_dev_null +0000ed30 g F .text 0000001c alt_dcache_flush_all +0000815c g F .text 00000070 __hi0bits +00014234 g O .bss 0000000f global_registers +0000bad0 g F .text 000000d8 __fixdfsi +00001ea0 g F .text 0000006c inst_jeq +0001213c g *ABS* 00000000 __ram_rwdata_end +00000000 g *ABS* 00000000 __alt_mem_onchip_memory +00012118 g O .rwdata 00000008 alt_dev_list +0000cdb0 g F .text 00000124 write +000105b4 g *ABS* 00000000 __ram_rodata_end +0000c580 g F .text 000000d8 fstat +00008f80 g F .text 00000120 __pow5mult +00013cd8 g O .bss 00000004 __nlocale_changed +00002b24 g F .text 00000008 __umodsi3 +000144d4 g *ABS* 00000000 end +0000e2e4 g F .text 0000053c altera_avalon_lcd_16207_write +00002908 g F .text 00000050 add_pc +0000d144 g F .text 000000c0 altera_avalon_jtag_uart_init +0000fe94 g *ABS* 00000000 __CTOR_LIST__ +00032000 g *ABS* 00000000 __alt_stack_pointer +0000be60 g F .text 00000080 __clzsi2 +0000d868 g F .text 00000240 altera_avalon_jtag_uart_write +000067a8 g F .text 00000004 __sfp_lock_acquire +00007e38 g F .text 000000e4 memchr +00002d04 g F .text 00001ec4 ___vfprintf_internal_r +00002bd8 g F .text 00000060 _sprintf_r +00006b70 g F .text 00000314 _free_r +000003dc g F .text 0000003c wait +0000fc84 g F .text 000001b0 __call_exitprocs +00013cdc g O .bss 00000004 __mlocale_changed +0000158c g F .text 000000f8 print_number +0001210c g O .rwdata 00000004 __malloc_sbrk_base +000001b4 g F .text 0000003c _start +00013d04 g O .bss 00000004 _alt_tick_rate +0000136c g F .text 00000190 print_block +00008a78 g F .text 0000014c __lshift +00013d08 g O .bss 00000004 _alt_nticks +0000cac8 g F .text 00000124 read +0000cf68 g F .text 0000005c alt_sys_init +0000fb4c g F .text 00000134 __register_exitproc +00008bc4 g F .text 00000254 __multiply +000020b0 g F .text 00000030 lcd_print +0000d4dc g F .text 00000074 altera_avalon_jtag_uart_close +00002b2c g F .text 00000038 __mulsi3 +000105b4 g *ABS* 00000000 __ram_rwdata_start +0000fe98 g *ABS* 00000000 __ram_rodata_start +0001420c g O .bss 00000028 __malloc_current_mallinfo +00008770 g F .text 0000017c __d2b +0000cffc g F .text 00000058 altera_avalon_jtag_uart_read_fd +0000f9bc g F .text 000000d0 alt_get_fd +00002604 g F .text 00000040 panic +0000ebd4 g F .text 0000015c alt_busy_sleep +0000c32c g F .text 000000c8 __fpcmp_parts_d +00009bdc g F .text 00000070 _close_r +0000fad8 g F .text 00000074 memcmp +0000d0ac g F .text 00000048 altera_avalon_jtag_uart_close_fd +000144d4 g *ABS* 00000000 __alt_stack_base +0000d0f4 g F .text 00000050 altera_avalon_jtag_uart_ioctl_fd +00001d18 g F .text 0000005c inst_delay +00001ce0 g F .text 00000038 inst_store +000020e0 g F .text 000000ac display_inst +00004bec g F .text 0000013c __swsetup_r +00000418 g F .text 000000c0 init +0000b4d8 g F .text 00000258 __divdf3 +00006954 g F .text 000000f0 __sfp +000085d4 g F .text 00000058 __copybits +000109c0 g O .rwdata 00000408 __malloc_av_ +000067b4 g F .text 00000004 __sinit_lock_release +0000b114 g F .text 000003c4 __muldf3 +00009980 g F .text 00000060 __sread +0000f89c g F .text 00000120 alt_find_file +0000ed4c g F .text 000000b4 alt_dev_llist_insert +0000ca88 g F .text 00000020 __malloc_lock +0000ccc4 g F .text 000000bc sbrk +00006520 g F .text 000001fc _fflush_r +00009b14 g F .text 000000c8 _calloc_r +00013cc4 g *ABS* 00000000 __bss_start +000001f0 g F .text 0000009c LCD_Init +0000809c g F .text 00000098 memset +00002018 g F .text 00000048 lcd_init +00000ab4 g F .text 00000288 main +00013cfc g O .bss 00000004 alt_envp +00013cec g O .bss 00000004 __malloc_max_total_mem +0000d054 g F .text 00000058 altera_avalon_jtag_uart_write_fd +0000e8ec g F .text 0000013c altera_avalon_lcd_16207_init +00000314 g F .text 0000003c LCD_Line2 +00000d3c g F .text 000001dc encodeNumHex +00009894 g F .text 00000008 __sclose +00032000 g *ABS* 00000000 __alt_heap_limit +00009d5c g F .text 00000014 fclose +00014344 g O .bss 00000190 _atexit0 +00004f6c g F .text 000015b4 _dtoa_r +000076f8 g F .text 00000740 _malloc_r +00012124 g O .rwdata 00000004 alt_errno +000073e8 g F .text 000000b8 _fwalk +00001684 g F .text 00000028 in_int +00002a5c g F .text 00000060 __divsi3 +00010460 g O .rodata 00000014 __thenan_df +00006a44 g F .text 0000012c _malloc_trim_r +0000fe98 g *ABS* 00000000 __CTOR_END__ +000099e0 g F .text 000000bc strcmp +0000fe98 g *ABS* 00000000 __flash_rodata_start +0000fe98 g *ABS* 00000000 __DTOR_LIST__ +0000b7b8 g F .text 00000088 __nedf2 +0000cf34 g F .text 00000034 alt_irq_init +0000028c g F .text 00000088 LCD_Show_Text +0000cc4c g F .text 00000078 alt_release_fd +00002b64 g F .text 00000074 sprintf +00010474 g O .rodata 00000100 __clz_tab +00013ce0 g O .bss 00000004 _PathLocale +0000fa8c g F .text 00000014 atexit +00002958 g F .text 00000038 set_pc +00009a9c g F .text 00000078 _write_r +00007548 g F .text 0000001c setlocale +00000874 g F .text 00000070 print_change_memory +00001840 g F .text 00000104 push_int +0000218c g F .text 0000006c display_mem +000120f8 g O .rwdata 00000004 _impure_ptr +00013cf4 g O .bss 00000004 alt_argc +00013cd4 g O .bss 00000004 global_current_memory +0000eec4 g F .text 00000064 _do_dtors +00000020 g .exceptions 00000000 alt_irq_entry +000082f0 g F .text 00000080 __ulp +000097b4 g F .text 00000040 __isinfd +0000686c g F .text 00000018 __fp_unlock_all +0000ea28 g F .text 00000058 altera_avalon_lcd_16207_write_fd +00012110 g O .rwdata 00000008 alt_fs_list +00000020 g *ABS* 00000000 __ram_exceptions_start +000074b4 g F .text 00000010 localeconv +00000f18 g F .text 00000454 encodeLatHex +00002368 g F .text 0000029c convertInstName +0000ef44 g F .text 00000050 alt_ic_isr_register +0001213c g *ABS* 00000000 _edata +000144d4 g *ABS* 00000000 _end +000001b4 g *ABS* 00000000 __ram_exceptions_end +0000d550 g F .text 000000f4 altera_avalon_jtag_uart_ioctl +00002088 g F .text 00000028 lcd_caret_reset2 +0000f030 g F .text 000000a0 alt_ic_irq_disable +00002644 g F .text 0000007c memory_init +00009904 g F .text 0000007c __swrite +00012108 g O .rwdata 00000004 __malloc_trim_threshold +0000f7e8 g F .text 00000020 altera_nios2_qsys_irq_init +0000faa0 g F .text 00000038 exit +000027f4 g F .text 00000090 memory_load +00007320 g F .text 000000c8 _fwalk_reent +000088ec g F .text 0000018c __mdiff +00002abc g F .text 00000060 __modsi3 +00032000 g *ABS* 00000000 __alt_data_end +00000020 g F .exceptions 00000000 alt_exception +000067ac g F .text 00000004 __sfp_lock_release +00001990 g F .text 0000024c inst_decode +0000ffe4 g O .rodata 00000101 _ctype_ +00001dd0 g F .text 000000d0 inst_comp +0000fe74 g F .text 00000020 _exit +000097f4 g F .text 00000030 __isnand +00002990 g F .text 00000050 registers_init +0000ea80 g F .text 00000154 alt_alarm_start +0000bd3c g F .text 00000124 __muldi3 +00007564 g F .text 00000194 __smakebuf_r +00001f0c g F .text 0000006c inst_jne +00002c38 g F .text 00000074 strlen +0000f458 g F .text 0000018c open +0000b8c8 g F .text 00000088 __gedf2 +000005bc g F .text 00000168 store_inst +0000ef28 g F .text 0000001c alt_icache_flush_all +00012130 g O .rwdata 00000004 alt_priority_mask +0000ef94 g F .text 0000009c alt_ic_irq_enable +00004bc8 g F .text 00000024 __vfprintf_internal +0000b020 g F .text 00000080 __subdf3 +000081cc g F .text 000000c4 __lo0bits +00012134 g O .rwdata 00000008 alt_alarm_list +0000ee60 g F .text 00000064 _do_ctors +000026c0 g F .text 00000050 inst_memory_store +0000c3f4 g F .text 00000100 close +00001794 g F .text 000000ac push_decode +0000c7dc g F .text 00000080 alt_load +0000bee0 g F .text 00000314 __pack_d +000120f0 g O .rwdata 00000001 PUSH_EVENT +00002710 g F .text 00000048 inst_memory_load +00000000 w *UND* 00000000 free +000067b0 g F .text 00000004 __sinit_lock_acquire +00008e54 g F .text 0000012c __multadd +00008134 g F .text 00000028 _Bfree + + + +Disassembly of section .entry: + +00000000 <__reset>: + * Jump to the _start entry point in the .text section if reset code + * is allowed or if optimizing for RTL simulation. + */ +#if defined(ALT_ALLOW_CODE_AT_RESET) || defined(ALT_SIM_OPTIMIZE) + /* Jump to the _start entry point in the .text section. */ + movhi r1, %hi(_start) + 0: 00400034 movhi at,0 + ori r1, r1, %lo(_start) + 4: 08406d14 ori at,at,436 + jmp r1 + 8: 0800683a jmp at + ... + +Disassembly of section .exceptions: + +00000020 : + * Process an exception. For all exceptions we must preserve all + * caller saved registers on the stack (See the Nios2 ABI + * documentation for details). + */ + + addi sp, sp, -76 + 20: deffed04 addi sp,sp,-76 + +#endif + +#endif + + stw ra, 0(sp) + 24: dfc00015 stw ra,0(sp) + /* + * Leave a gap in the stack frame at 4(sp) for the muldiv handler to + * store zero into. + */ + + stw r1, 8(sp) + 28: d8400215 stw at,8(sp) + stw r2, 12(sp) + 2c: d8800315 stw r2,12(sp) + stw r3, 16(sp) + 30: d8c00415 stw r3,16(sp) + stw r4, 20(sp) + 34: d9000515 stw r4,20(sp) + stw r5, 24(sp) + 38: d9400615 stw r5,24(sp) + stw r6, 28(sp) + 3c: d9800715 stw r6,28(sp) + stw r7, 32(sp) + 40: d9c00815 stw r7,32(sp) + + rdctl r5, estatus + 44: 000b307a rdctl r5,estatus + + stw r8, 36(sp) + 48: da000915 stw r8,36(sp) + stw r9, 40(sp) + 4c: da400a15 stw r9,40(sp) + stw r10, 44(sp) + 50: da800b15 stw r10,44(sp) + stw r11, 48(sp) + 54: dac00c15 stw r11,48(sp) + stw r12, 52(sp) + 58: db000d15 stw r12,52(sp) + stw r13, 56(sp) + 5c: db400e15 stw r13,56(sp) + stw r14, 60(sp) + 60: db800f15 stw r14,60(sp) + stw r15, 64(sp) + 64: dbc01015 stw r15,64(sp) + /* + * ea-4 contains the address of the instruction being executed + * when the exception occured. For interrupt exceptions, we will + * will be re-issue the isntruction. Store it in 72(sp) + */ + stw r5, 68(sp) /* estatus */ + 68: d9401115 stw r5,68(sp) + addi r15, ea, -4 /* instruction that caused exception */ + 6c: ebffff04 addi r15,ea,-4 + stw r15, 72(sp) + 70: dbc01215 stw r15,72(sp) +#else + /* + * Test to see if the exception was a software exception or caused + * by an external interrupt, and vector accordingly. + */ + rdctl r4, ipending + 74: 0009313a rdctl r4,ipending + andi r2, r5, 1 + 78: 2880004c andi r2,r5,1 + beq r2, zero, .Lnot_irq + 7c: 10000326 beq r2,zero,8c + beq r4, zero, .Lnot_irq + 80: 20000226 beq r4,zero,8c + /* + * Now that all necessary registers have been preserved, call + * alt_irq_handler() to process the interrupts. + */ + + call alt_irq_handler + 84: 00000ec0 call ec + + .section .exceptions.irqreturn, "xa" + + br .Lexception_exit + 88: 00000306 br 98 + * upon completion, so we write ea (address of instruction *after* + * the one where the exception occured) into 72(sp). The actual + * instruction that caused the exception is written in r2, which these + * handlers will utilize. + */ + stw ea, 72(sp) /* Don't re-issue */ + 8c: df401215 stw ea,72(sp) + ldw r2, -4(ea) /* Instruction that caused exception */ + 90: e8bfff17 ldw r2,-4(ea) +#ifdef NIOS2_HAS_DEBUG_STUB + /* + * Either tell the user now (if there is a debugger attached) or go into + * the debug monitor which will loop until a debugger is attached. + */ + break + 94: 003da03a break 0 + /* + * Restore the saved registers, so that all general purpose registers + * have been restored to their state at the time the interrupt occured. + */ + + ldw r5, 68(sp) + 98: d9401117 ldw r5,68(sp) + ldw ea, 72(sp) /* This becomes the PC once eret is executed */ + 9c: df401217 ldw ea,72(sp) + ldw ra, 0(sp) + a0: dfc00017 ldw ra,0(sp) + + wrctl estatus, r5 + a4: 2801707a wrctl estatus,r5 + + ldw r1, 8(sp) + a8: d8400217 ldw at,8(sp) + ldw r2, 12(sp) + ac: d8800317 ldw r2,12(sp) + ldw r3, 16(sp) + b0: d8c00417 ldw r3,16(sp) + ldw r4, 20(sp) + b4: d9000517 ldw r4,20(sp) + ldw r5, 24(sp) + b8: d9400617 ldw r5,24(sp) + ldw r6, 28(sp) + bc: d9800717 ldw r6,28(sp) + ldw r7, 32(sp) + c0: d9c00817 ldw r7,32(sp) +#ifdef ALT_STACK_CHECK + ldw et, %gprel(alt_exception_old_stack_limit)(gp) +#endif +#endif + + ldw r8, 36(sp) + c4: da000917 ldw r8,36(sp) + ldw r9, 40(sp) + c8: da400a17 ldw r9,40(sp) + ldw r10, 44(sp) + cc: da800b17 ldw r10,44(sp) + ldw r11, 48(sp) + d0: dac00c17 ldw r11,48(sp) + ldw r12, 52(sp) + d4: db000d17 ldw r12,52(sp) + ldw r13, 56(sp) + d8: db400e17 ldw r13,56(sp) + ldw r14, 60(sp) + dc: db800f17 ldw r14,60(sp) + ldw r15, 64(sp) + e0: dbc01017 ldw r15,64(sp) +#endif + + ldw sp, 76(sp) + +#else + addi sp, sp, 76 + e4: dec01304 addi sp,sp,76 + + /* + * Return to the interrupted instruction. + */ + + eret + e8: ef80083a eret + +000000ec : + * instruction is present if the macro ALT_CI_INTERRUPT_VECTOR defined. + */ + +void alt_irq_handler (void) __attribute__ ((section (".exceptions"))); +void alt_irq_handler (void) +{ + ec: defff904 addi sp,sp,-28 + f0: dfc00615 stw ra,24(sp) + f4: df000515 stw fp,20(sp) + f8: df000504 addi fp,sp,20 +#ifndef NIOS2_EIC_PRESENT +static ALT_INLINE alt_u32 ALT_ALWAYS_INLINE alt_irq_pending (void) +{ + alt_u32 active; + + NIOS2_READ_IPENDING (active); + fc: 0005313a rdctl r2,ipending + 100: e0bffc15 stw r2,-16(fp) + + return active; + 104: e0bffc17 ldw r2,-16(fp) + * Consider the case where the high priority interupt is asserted during + * the interrupt entry sequence for a lower priority interrupt to see why + * this is the case. + */ + + active = alt_irq_pending (); + 108: e0bfff15 stw r2,-4(fp) + + do + { + i = 0; + 10c: e03ffd15 stw zero,-12(fp) + mask = 1; + 110: 00800044 movi r2,1 + 114: e0bffe15 stw r2,-8(fp) + * called to clear the interrupt condition. + */ + + do + { + if (active & mask) + 118: e0ffff17 ldw r3,-4(fp) + 11c: e0bffe17 ldw r2,-8(fp) + 120: 1884703a and r2,r3,r2 + 124: 1005003a cmpeq r2,r2,zero + 128: 1000161e bne r2,zero,184 + { +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT + alt_irq[i].handler(alt_irq[i].context); + 12c: e0bffd17 ldw r2,-12(fp) + 130: 00c00074 movhi r3,1 + 134: 18d09104 addi r3,r3,16964 + 138: 100490fa slli r2,r2,3 + 13c: 10c5883a add r2,r2,r3 + 140: 11400017 ldw r5,0(r2) + 144: e0bffd17 ldw r2,-12(fp) + 148: 00c00074 movhi r3,1 + 14c: 18d09104 addi r3,r3,16964 + 150: 100490fa slli r2,r2,3 + 154: 10c5883a add r2,r2,r3 + 158: 10800104 addi r2,r2,4 + 15c: 11000017 ldw r4,0(r2) + 160: 283ee83a callr r5 +#ifndef NIOS2_EIC_PRESENT +static ALT_INLINE alt_u32 ALT_ALWAYS_INLINE alt_irq_pending (void) +{ + alt_u32 active; + + NIOS2_READ_IPENDING (active); + 164: 0005313a rdctl r2,ipending + 168: e0bffb15 stw r2,-20(fp) + + return active; + 16c: e0bffb17 ldw r2,-20(fp) + mask <<= 1; + i++; + + } while (1); + + active = alt_irq_pending (); + 170: e0bfff15 stw r2,-4(fp) + + } while (active); + 174: e0bfff17 ldw r2,-4(fp) + 178: 1004c03a cmpne r2,r2,zero + 17c: 103fe31e bne r2,zero,10c + 180: 00000706 br 1a0 +#else + alt_irq[i].handler(alt_irq[i].context, i); +#endif + break; + } + mask <<= 1; + 184: e0bffe17 ldw r2,-8(fp) + 188: 1085883a add r2,r2,r2 + 18c: e0bffe15 stw r2,-8(fp) + i++; + 190: e0bffd17 ldw r2,-12(fp) + 194: 10800044 addi r2,r2,1 + 198: e0bffd15 stw r2,-12(fp) + + } while (1); + 19c: 003fde06 br 118 + /* + * Notify the operating system that interrupt processing is complete. + */ + + ALT_OS_INT_EXIT(); +} + 1a0: e037883a mov sp,fp + 1a4: dfc00117 ldw ra,4(sp) + 1a8: df000017 ldw fp,0(sp) + 1ac: dec00204 addi sp,sp,8 + 1b0: f800283a ret + +Disassembly of section .text: + +000001b4 <_start>: +#if (NIOS2_NUM_OF_SHADOW_REG_SETS == 0) + /* + * Now that the caches are initialized, set up the stack pointer. + * The value provided by the linker is assumed to be correctly aligned. + */ + movhi sp, %hi(__alt_stack_pointer) + 1b4: 06c000f4 movhi sp,3 + ori sp, sp, %lo(__alt_stack_pointer) + 1b8: dec80014 ori sp,sp,8192 + + /* Set up the global pointer. */ + movhi gp, %hi(_gp) + 1bc: 06800074 movhi gp,1 + ori gp, gp, %lo(_gp) + 1c0: d6a83c14 ori gp,gp,41200 + */ +#ifndef ALT_SIM_OPTIMIZE + /* Log that the BSS is about to be cleared. */ + ALT_LOG_PUTS(alt_log_msg_bss) + + movhi r2, %hi(__bss_start) + 1c4: 00800074 movhi r2,1 + ori r2, r2, %lo(__bss_start) + 1c8: 108f3114 ori r2,r2,15556 + + movhi r3, %hi(__bss_end) + 1cc: 00c00074 movhi r3,1 + ori r3, r3, %lo(__bss_end) + 1d0: 18d13514 ori r3,r3,17620 + + beq r2, r3, 1f + 1d4: 10c00326 beq r2,r3,1e4 <_start+0x30> + +0: + stw zero, (r2) + 1d8: 10000015 stw zero,0(r2) + addi r2, r2, 4 + 1dc: 10800104 addi r2,r2,4 + bltu r2, r3, 0b + 1e0: 10fffd36 bltu r2,r3,1d8 <_start+0x24> + * section aren't defined until alt_load() has been called). + */ + mov et, zero +#endif + + call alt_load + 1e4: 000c7dc0 call c7dc + + /* Log that alt_main is about to be called. */ + ALT_LOG_PUTS(alt_log_msg_alt_main) + + /* Call the C entry point. It should never return. */ + call alt_main + 1e8: 000ca1c0 call ca1c + +000001ec : + + /* Wait in infinite loop in case alt_main does return. */ +alt_after_alt_main: + br alt_after_alt_main + 1ec: 003fff06 br 1ec + +000001f0 : +#include +#include "system.h" +#include "LCD.h" +//------------------------------------------------------------------------- +void LCD_Init() +{ + 1f0: defffe04 addi sp,sp,-8 + 1f4: dfc00115 stw ra,4(sp) + 1f8: df000015 stw fp,0(sp) + 1fc: d839883a mov fp,sp + lcd_write_cmd(LCD_16207_0_BASE,0x38); + 200: 00c00134 movhi r3,4 + 204: 18c40c04 addi r3,r3,4144 + 208: 00800e04 movi r2,56 + 20c: 18800035 stwio r2,0(r3) + usleep(2000); + 210: 0101f404 movi r4,2000 + 214: 000cd800 call cd80 + lcd_write_cmd(LCD_16207_0_BASE,0x0C); + 218: 00c00134 movhi r3,4 + 21c: 18c40c04 addi r3,r3,4144 + 220: 00800304 movi r2,12 + 224: 18800035 stwio r2,0(r3) + usleep(2000); + 228: 0101f404 movi r4,2000 + 22c: 000cd800 call cd80 + lcd_write_cmd(LCD_16207_0_BASE,0x01); + 230: 00c00134 movhi r3,4 + 234: 18c40c04 addi r3,r3,4144 + 238: 00800044 movi r2,1 + 23c: 18800035 stwio r2,0(r3) + usleep(2000); + 240: 0101f404 movi r4,2000 + 244: 000cd800 call cd80 + lcd_write_cmd(LCD_16207_0_BASE,0x06); + 248: 00c00134 movhi r3,4 + 24c: 18c40c04 addi r3,r3,4144 + 250: 00800184 movi r2,6 + 254: 18800035 stwio r2,0(r3) + usleep(2000); + 258: 0101f404 movi r4,2000 + 25c: 000cd800 call cd80 + lcd_write_cmd(LCD_16207_0_BASE,0x80); + 260: 00c00134 movhi r3,4 + 264: 18c40c04 addi r3,r3,4144 + 268: 00802004 movi r2,128 + 26c: 18800035 stwio r2,0(r3) + usleep(2000); + 270: 0101f404 movi r4,2000 + 274: 000cd800 call cd80 +} + 278: e037883a mov sp,fp + 27c: dfc00117 ldw ra,4(sp) + 280: df000017 ldw fp,0(sp) + 284: dec00204 addi sp,sp,8 + 288: f800283a ret + +0000028c : +//------------------------------------------------------------------------- +void LCD_Show_Text(char* Text) +{ + 28c: defffb04 addi sp,sp,-20 + 290: dfc00415 stw ra,16(sp) + 294: df000315 stw fp,12(sp) + 298: dc000215 stw r16,8(sp) + 29c: df000204 addi fp,sp,8 + 2a0: e13fff15 stw r4,-4(fp) + int i; + for(i=0;i + { + lcd_write_data(LCD_16207_0_BASE,Text[i]); + 2ac: e0bffe17 ldw r2,-8(fp) + 2b0: 1007883a mov r3,r2 + 2b4: e0bfff17 ldw r2,-4(fp) + 2b8: 1885883a add r2,r3,r2 + 2bc: 10800003 ldbu r2,0(r2) + 2c0: 10c03fcc andi r3,r2,255 + 2c4: 18c0201c xori r3,r3,128 + 2c8: 18ffe004 addi r3,r3,-128 + 2cc: 00800134 movhi r2,4 + 2d0: 10840e04 addi r2,r2,4152 + 2d4: 10c00035 stwio r3,0(r2) + usleep(2000); + 2d8: 0101f404 movi r4,2000 + 2dc: 000cd800 call cd80 +} +//------------------------------------------------------------------------- +void LCD_Show_Text(char* Text) +{ + int i; + for(i=0;i + 2f8: 80bfec36 bltu r16,r2,2ac + { + lcd_write_data(LCD_16207_0_BASE,Text[i]); + usleep(2000); + } +} + 2fc: e037883a mov sp,fp + 300: dfc00217 ldw ra,8(sp) + 304: df000117 ldw fp,4(sp) + 308: dc000017 ldw r16,0(sp) + 30c: dec00304 addi sp,sp,12 + 310: f800283a ret + +00000314 : +//------------------------------------------------------------------------- +void LCD_Line2() +{ + 314: defffe04 addi sp,sp,-8 + 318: dfc00115 stw ra,4(sp) + 31c: df000015 stw fp,0(sp) + 320: d839883a mov fp,sp + lcd_write_cmd(LCD_16207_0_BASE,0xC0); + 324: 00c00134 movhi r3,4 + 328: 18c40c04 addi r3,r3,4144 + 32c: 00803004 movi r2,192 + 330: 18800035 stwio r2,0(r3) + usleep(2000); + 334: 0101f404 movi r4,2000 + 338: 000cd800 call cd80 +} + 33c: e037883a mov sp,fp + 340: dfc00117 ldw ra,4(sp) + 344: df000017 ldw fp,0(sp) + 348: dec00204 addi sp,sp,8 + 34c: f800283a ret + +00000350 : +//------------------------------------------------------------------------- +void LCD_Test() +{ + 350: defff604 addi sp,sp,-40 + 354: dfc00915 stw ra,36(sp) + 358: df000815 stw fp,32(sp) + 35c: df000804 addi fp,sp,32 + char Text1[16] = ""; + 360: 00c00074 movhi r3,1 + 364: 18ffa604 addi r3,r3,-360 + 368: 18800017 ldw r2,0(r3) + 36c: e0bff815 stw r2,-32(fp) + 370: 18800117 ldw r2,4(r3) + 374: e0bff915 stw r2,-28(fp) + 378: 18800217 ldw r2,8(r3) + 37c: e0bffa15 stw r2,-24(fp) + 380: 18800317 ldw r2,12(r3) + 384: e0bffb15 stw r2,-20(fp) + char Text2[16] = "Nice to See You!"; + 388: 00c00074 movhi r3,1 + 38c: 18ffab04 addi r3,r3,-340 + 390: 18800017 ldw r2,0(r3) + 394: e0bffc15 stw r2,-16(fp) + 398: 18800117 ldw r2,4(r3) + 39c: e0bffd15 stw r2,-12(fp) + 3a0: 18800217 ldw r2,8(r3) + 3a4: e0bffe15 stw r2,-8(fp) + 3a8: 18800317 ldw r2,12(r3) + 3ac: e0bfff15 stw r2,-4(fp) + // Initial LCD + LCD_Init(); + 3b0: 00001f00 call 1f0 + // Show Text to LCD + LCD_Show_Text(Text1); + 3b4: e13ff804 addi r4,fp,-32 + 3b8: 000028c0 call 28c + // Change Line2 + LCD_Line2(); + 3bc: 00003140 call 314 + // Show Text to LCD + LCD_Show_Text(Text2); + 3c0: e13ffc04 addi r4,fp,-16 + 3c4: 000028c0 call 28c +} + 3c8: e037883a mov sp,fp + 3cc: dfc00117 ldw ra,4(sp) + 3d0: df000017 ldw fp,0(sp) + 3d4: dec00204 addi sp,sp,8 + 3d8: f800283a ret + +000003dc : +#define ledrs (volatile int *) LEDRS_BASE + +// �v���O�������s��� +enum RunMode { RUN_STOP, RUN_INIT, RUN_PROC, RUN_TERM }; + +void wait(unsigned int s) { + 3dc: defffd04 addi sp,sp,-12 + 3e0: dfc00215 stw ra,8(sp) + 3e4: df000115 stw fp,4(sp) + 3e8: df000104 addi fp,sp,4 + 3ec: e13fff15 stw r4,-4(fp) + usleep(s*10000); + 3f0: e13fff17 ldw r4,-4(fp) + 3f4: 0149c404 movi r5,10000 + 3f8: 0002b2c0 call 2b2c <__mulsi3> + 3fc: 1009883a mov r4,r2 + 400: 000cd800 call cd80 +} + 404: e037883a mov sp,fp + 408: dfc00117 ldw ra,4(sp) + 40c: df000017 ldw fp,0(sp) + 410: dec00204 addi sp,sp,8 + 414: f800283a ret + +00000418 : + +void init() { + 418: defffe04 addi sp,sp,-8 + 41c: dfc00115 stw ra,4(sp) + 420: df000015 stw fp,0(sp) + 424: d839883a mov fp,sp + // lcd + lcd_init(); + 428: 00020180 call 2018 + lcd_print("Starting now..."); + 42c: 01000074 movhi r4,1 + 430: 213fb004 addi r4,r4,-320 + 434: 00020b00 call 20b0 + + registers_init(); + 438: 00029900 call 2990 + memory_init(); + 43c: 00026440 call 2644 + // hex + clear_block(HEX0_3); clear_block(HEX4_5); clear_block(HEX6_7); + 440: 0009883a mov r4,zero + 444: 00014fc0 call 14fc + 448: 01000044 movi r4,1 + 44c: 00014fc0 call 14fc + 450: 01000084 movi r4,2 + 454: 00014fc0 call 14fc + print_block("he", 2, HEX6_7); + 458: 01000074 movhi r4,1 + 45c: 213fb404 addi r4,r4,-304 + 460: 01400084 movi r5,2 + 464: 01800084 movi r6,2 + 468: 000136c0 call 136c + print_block("lo", 2, HEX4_5); + 46c: 01000074 movhi r4,1 + 470: 213fb504 addi r4,r4,-300 + 474: 01400084 movi r5,2 + 478: 01800044 movi r6,1 + 47c: 000136c0 call 136c + print_block("you1", 4, HEX0_3); + 480: 01000074 movhi r4,1 + 484: 213fb604 addi r4,r4,-296 + 488: 01400104 movi r5,4 + 48c: 000d883a mov r6,zero + 490: 000136c0 call 136c + wait(200); + 494: 01003204 movi r4,200 + 498: 00003dc0 call 3dc + clear_block(HEX0_3); clear_block(HEX4_5); clear_block(HEX6_7); + 49c: 0009883a mov r4,zero + 4a0: 00014fc0 call 14fc + 4a4: 01000044 movi r4,1 + 4a8: 00014fc0 call 14fc + 4ac: 01000084 movi r4,2 + 4b0: 00014fc0 call 14fc + + lcd_caret_reset2(); + 4b4: 00020880 call 2088 + lcd_print("Ok!"); + 4b8: 01000074 movhi r4,1 + 4bc: 213fb804 addi r4,r4,-288 + 4c0: 00020b00 call 20b0 +} + 4c4: e037883a mov sp,fp + 4c8: dfc00117 ldw ra,4(sp) + 4cc: df000017 ldw fp,0(sp) + 4d0: dec00204 addi sp,sp,8 + 4d4: f800283a ret + +000004d8 : + +char stack[5]; + +void store_value(){ + 4d8: defffb04 addi sp,sp,-20 + 4dc: dfc00415 stw ra,16(sp) + 4e0: df000315 stw fp,12(sp) + 4e4: df000304 addi fp,sp,12 + unsigned int memi = global_registers[Ssw_memi]; + 4e8: 00800074 movhi r2,1 + 4ec: 10908d04 addi r2,r2,16948 + 4f0: 10800283 ldbu r2,10(r2) + 4f4: 10803fcc andi r2,r2,255 + 4f8: 1080201c xori r2,r2,128 + 4fc: 10bfe004 addi r2,r2,-128 + 500: e0bffd15 stw r2,-12(fp) + memory_store(memi, Ssw_data); + 504: e13ffd17 ldw r4,-12(fp) + 508: 014001c4 movi r5,7 + 50c: 00027580 call 2758 + + { // �f�o�b�N�\�� + char buf[5]; + sprintf(buf, "%02x", (unsigned char)memi); + 510: e0bffd17 ldw r2,-12(fp) + 514: 11803fcc andi r6,r2,255 + 518: e13ffe04 addi r4,fp,-8 + 51c: 01400074 movhi r5,1 + 520: 297fb904 addi r5,r5,-284 + 524: 0002b640 call 2b64 + print_block(buf, 2, HEX6_7); + 528: e13ffe04 addi r4,fp,-8 + 52c: 01400084 movi r5,2 + 530: 01800084 movi r6,2 + 534: 000136c0 call 136c + print_block("--", 2, HEX4_5); + 538: 01000074 movhi r4,1 + 53c: 213fbb04 addi r4,r4,-276 + 540: 01400084 movi r5,2 + 544: 01800044 movi r6,1 + 548: 000136c0 call 136c + sprintf(buf, "%04d", global_registers[Ssw_data]); + 54c: 00800074 movhi r2,1 + 550: 10908d04 addi r2,r2,16948 + 554: 108001c3 ldbu r2,7(r2) + 558: 11803fcc andi r6,r2,255 + 55c: 3180201c xori r6,r6,128 + 560: 31bfe004 addi r6,r6,-128 + 564: e13ffe04 addi r4,fp,-8 + 568: 01400074 movhi r5,1 + 56c: 297fbc04 addi r5,r5,-272 + 570: 0002b640 call 2b64 + print_block(buf, 4, HEX0_3); + 574: e13ffe04 addi r4,fp,-8 + 578: 01400104 movi r5,4 + 57c: 000d883a mov r6,zero + 580: 000136c0 call 136c + + display_mem((unsigned char)memi, global_registers[Ssw_data]); + 584: e0bffd17 ldw r2,-12(fp) + 588: 11003fcc andi r4,r2,255 + 58c: 00800074 movhi r2,1 + 590: 10908d04 addi r2,r2,16948 + 594: 108001c3 ldbu r2,7(r2) + 598: 11403fcc andi r5,r2,255 + 59c: 2940201c xori r5,r5,128 + 5a0: 297fe004 addi r5,r5,-128 + 5a4: 000218c0 call 218c + } +} + 5a8: e037883a mov sp,fp + 5ac: dfc00117 ldw ra,4(sp) + 5b0: df000017 ldw fp,0(sp) + 5b4: dec00204 addi sp,sp,8 + 5b8: f800283a ret + +000005bc : +void store_inst(){ + 5bc: defff904 addi sp,sp,-28 + 5c0: dfc00615 stw ra,24(sp) + 5c4: df000515 stw fp,20(sp) + 5c8: df000504 addi fp,sp,20 + char reg_index; + unsigned int stored_pc; + struct InstRec inst_rec; + + // �K�v�ȏ��̎擾 + inst = global_registers[Ssw_inst]; + 5cc: 00800074 movhi r2,1 + 5d0: 10908d04 addi r2,r2,16948 + 5d4: 10800203 ldbu r2,8(r2) + 5d8: e0bffc85 stb r2,-14(fp) + mem_index = global_registers[Ssw_memi]; + 5dc: 00800074 movhi r2,1 + 5e0: 10908d04 addi r2,r2,16948 + 5e4: 10800283 ldbu r2,10(r2) + 5e8: e0bffc45 stb r2,-15(fp) + reg_index = global_registers[Ssw_regi]; + 5ec: 00800074 movhi r2,1 + 5f0: 10908d04 addi r2,r2,16948 + 5f4: 10800243 ldbu r2,9(r2) + 5f8: e0bffc05 stb r2,-16(fp) + inst_rec.inst = (unsigned int)inst; + 5fc: e0bffc83 ldbu r2,-14(fp) + 600: 108003cc andi r2,r2,15 + 604: 10803fcc andi r2,r2,255 + 608: 110003cc andi r4,r2,15 + 60c: e0fffd17 ldw r3,-12(fp) + 610: 00bffc04 movi r2,-16 + 614: 1884703a and r2,r3,r2 + 618: 1104b03a or r2,r2,r4 + 61c: e0bffd15 stw r2,-12(fp) + inst_rec.memi = (unsigned int)mem_index; + 620: e0bffc43 ldbu r2,-15(fp) + 624: 108003cc andi r2,r2,15 + 628: 10803fcc andi r2,r2,255 + 62c: 108003cc andi r2,r2,15 + 630: 1008913a slli r4,r2,4 + 634: e0fffd17 ldw r3,-12(fp) + 638: 00bfc3c4 movi r2,-241 + 63c: 1884703a and r2,r3,r2 + 640: 1104b03a or r2,r2,r4 + 644: e0bffd15 stw r2,-12(fp) + inst_rec.regi = (unsigned int)reg_index; + 648: e0bffc03 ldbu r2,-16(fp) + 64c: 108003cc andi r2,r2,15 + 650: 10803fcc andi r2,r2,255 + 654: 108003cc andi r2,r2,15 + 658: 1008923a slli r4,r2,8 + 65c: e0fffd17 ldw r3,-12(fp) + 660: 00bc3fc4 movi r2,-3841 + 664: 1884703a and r2,r3,r2 + 668: 1104b03a or r2,r2,r4 + 66c: e0bffd15 stw r2,-12(fp) + + // �X�g�A���� + stored_pc = (unsigned char)global_registers[Spc]; + 670: 00800074 movhi r2,1 + 674: 10908d04 addi r2,r2,16948 + 678: 10800043 ldbu r2,1(r2) + 67c: 10803fcc andi r2,r2,255 + 680: e0bffb15 stw r2,-20(fp) + inst_memory_store((unsigned int)global_registers[Spc], inst_rec); + 684: 00800074 movhi r2,1 + 688: 10908d04 addi r2,r2,16948 + 68c: 10800043 ldbu r2,1(r2) + 690: 11003fcc andi r4,r2,255 + 694: 2100201c xori r4,r4,128 + 698: 213fe004 addi r4,r4,-128 + 69c: e17ffd17 ldw r5,-12(fp) + 6a0: 00026c00 call 26c0 + inc_pc(); + 6a4: 00028840 call 2884 + { // �f�o�b�N�\�� + char buf[5]; + sprintf(buf, "%04d", inst_rec.inst); + 6a8: e0bffd17 ldw r2,-12(fp) + 6ac: 108003cc andi r2,r2,15 + 6b0: 11803fcc andi r6,r2,255 + 6b4: e13ffe04 addi r4,fp,-8 + 6b8: 01400074 movhi r5,1 + 6bc: 297fbc04 addi r5,r5,-272 + 6c0: 0002b640 call 2b64 + print_block(buf, 4, HEX0_3); + 6c4: e13ffe04 addi r4,fp,-8 + 6c8: 01400104 movi r5,4 + 6cc: 000d883a mov r6,zero + 6d0: 000136c0 call 136c + sprintf(buf, "%02x", (unsigned char)global_registers[Spc]); + 6d4: 00800074 movhi r2,1 + 6d8: 10908d04 addi r2,r2,16948 + 6dc: 10800043 ldbu r2,1(r2) + 6e0: 11803fcc andi r6,r2,255 + 6e4: e13ffe04 addi r4,fp,-8 + 6e8: 01400074 movhi r5,1 + 6ec: 297fb904 addi r5,r5,-284 + 6f0: 0002b640 call 2b64 + print_block(buf, 2, HEX4_5); + 6f4: e13ffe04 addi r4,fp,-8 + 6f8: 01400084 movi r5,2 + 6fc: 01800044 movi r6,1 + 700: 000136c0 call 136c + + display_inst(inst_rec, stored_pc); + 704: e13ffd17 ldw r4,-12(fp) + 708: e17ffb17 ldw r5,-20(fp) + 70c: 00020e00 call 20e0 + } +} + 710: e037883a mov sp,fp + 714: dfc00117 ldw ra,4(sp) + 718: df000017 ldw fp,0(sp) + 71c: dec00204 addi sp,sp,8 + 720: f800283a ret + +00000724 : +enum RunMode run_proc(enum RunMode mode) { + 724: defff904 addi sp,sp,-28 + 728: dfc00615 stw ra,24(sp) + 72c: df000515 stw fp,20(sp) + 730: df000504 addi fp,sp,20 + 734: e13ffe15 stw r4,-8(fp) + volatile struct InstRec inst_rec; + + if (RUN_INIT == mode) { + 738: e0bffe17 ldw r2,-8(fp) + 73c: 10800058 cmpnei r2,r2,1 + 740: 1000101e bne r2,zero,784 + lcd_caret_reset(); + 744: 00020600 call 2060 + lcd_print("Run...now"); + 748: 01000074 movhi r4,1 + 74c: 213fbe04 addi r4,r4,-264 + 750: 00020b00 call 20b0 + + global_registers[Spc] = 0; + 754: 00800074 movhi r2,1 + 758: 10908d04 addi r2,r2,16948 + 75c: 10000045 stb zero,1(r2) + clear_block(HEX0_3); clear_block(HEX4_5); clear_block(HEX6_7); + 760: 0009883a mov r4,zero + 764: 00014fc0 call 14fc + 768: 01000044 movi r4,1 + 76c: 00014fc0 call 14fc + 770: 01000084 movi r4,2 + 774: 00014fc0 call 14fc + + // �v���O�������s���֑J�� + return RUN_PROC; + 778: 00800084 movi r2,2 + 77c: e0bfff15 stw r2,-4(fp) + 780: 00003606 br 85c + } + + if (RUN_PROC == mode) { + 784: e0bffe17 ldw r2,-8(fp) + 788: 10800098 cmpnei r2,r2,2 + 78c: 1000291e bne r2,zero,834 + // ���߃t�F�b�` + inst_rec = inst_fetch(); + 790: 00019440 call 1944 + 794: e0bffb15 stw r2,-20(fp) + // ���߃f�R�[�h���s + inst_decode(inst_rec); + 798: e13ffb17 ldw r4,-20(fp) + 79c: 00019900 call 1990 + // pc�\�� + { + char buf[5]; + sprintf(buf, "%02x", (unsigned char)global_registers[Spc]); + 7a0: 00800074 movhi r2,1 + 7a4: 10908d04 addi r2,r2,16948 + 7a8: 10800043 ldbu r2,1(r2) + 7ac: 11803fcc andi r6,r2,255 + 7b0: e13ffc04 addi r4,fp,-16 + 7b4: 01400074 movhi r5,1 + 7b8: 297fb904 addi r5,r5,-284 + 7bc: 0002b640 call 2b64 + print_block("pc", 2, HEX6_7); + 7c0: 01000074 movhi r4,1 + 7c4: 213fc104 addi r4,r4,-252 + 7c8: 01400084 movi r5,2 + 7cc: 01800084 movi r6,2 + 7d0: 000136c0 call 136c + print_block(buf, 2, HEX4_5); + 7d4: e13ffc04 addi r4,fp,-16 + 7d8: 01400084 movi r5,2 + 7dc: 01800044 movi r6,1 + 7e0: 000136c0 call 136c + } + + // �f�o�b�N�p + if ( global_registers[Ssw_run] ) wait(100); + 7e4: 00800074 movhi r2,1 + 7e8: 10908d04 addi r2,r2,16948 + 7ec: 10800343 ldbu r2,13(r2) + 7f0: 10803fcc andi r2,r2,255 + 7f4: 1080201c xori r2,r2,128 + 7f8: 10bfe004 addi r2,r2,-128 + 7fc: 1005003a cmpeq r2,r2,zero + 800: 1000021e bne r2,zero,80c + 804: 01001904 movi r4,100 + 808: 00003dc0 call 3dc + + // �v���O�����I������ + if (inst_rec.inst != INST_END) return RUN_PROC; + 80c: e0bffb17 ldw r2,-20(fp) + 810: 108003cc andi r2,r2,15 + 814: 1005003a cmpeq r2,r2,zero + 818: 1000031e bne r2,zero,828 + 81c: 00800084 movi r2,2 + 820: e0bfff15 stw r2,-4(fp) + 824: 00000d06 br 85c + return RUN_TERM; + 828: 008000c4 movi r2,3 + 82c: e0bfff15 stw r2,-4(fp) + 830: 00000a06 br 85c + } + + if (RUN_TERM == mode) { + 834: e0bffe17 ldw r2,-8(fp) + 838: 108000d8 cmpnei r2,r2,3 + 83c: 1000061e bne r2,zero,858 + lcd_caret_reset(); + 840: 00020600 call 2060 + lcd_print("Run...Exit"); + 844: 01000074 movhi r4,1 + 848: 213fc204 addi r4,r4,-248 + 84c: 00020b00 call 20b0 + return RUN_STOP; + 850: e03fff15 stw zero,-4(fp) + 854: 00000106 br 85c + } + + // Default + return RUN_STOP; + 858: e03fff15 stw zero,-4(fp) + 85c: e0bfff17 ldw r2,-4(fp) +} + 860: e037883a mov sp,fp + 864: dfc00117 ldw ra,4(sp) + 868: df000017 ldw fp,0(sp) + 86c: dec00204 addi sp,sp,8 + 870: f800283a ret + +00000874 : + +void print_change_memory(unsigned int current_memory) { + 874: defff804 addi sp,sp,-32 + 878: dfc00715 stw ra,28(sp) + 87c: df000615 stw fp,24(sp) + 880: df000604 addi fp,sp,24 + 884: e13fff15 stw r4,-4(fp) + char buf[17]; + sprintf(buf, "Current page:%2d", current_memory); + 888: e13ffa04 addi r4,fp,-24 + 88c: 01400074 movhi r5,1 + 890: 297fc504 addi r5,r5,-236 + 894: e1bfff17 ldw r6,-4(fp) + 898: 0002b640 call 2b64 + lcd_caret_reset(); + 89c: 00020600 call 2060 + lcd_print("Change program"); + 8a0: 01000074 movhi r4,1 + 8a4: 213fca04 addi r4,r4,-216 + 8a8: 00020b00 call 20b0 + lcd_caret_reset2(); + 8ac: 00020880 call 2088 + lcd_print(buf); + 8b0: e13ffa04 addi r4,fp,-24 + 8b4: 00020b00 call 20b0 + clear_block(HEX0_3); clear_block(HEX4_5); clear_block(HEX6_7); + 8b8: 0009883a mov r4,zero + 8bc: 00014fc0 call 14fc + 8c0: 01000044 movi r4,1 + 8c4: 00014fc0 call 14fc + 8c8: 01000084 movi r4,2 + 8cc: 00014fc0 call 14fc +} + 8d0: e037883a mov sp,fp + 8d4: dfc00117 ldw ra,4(sp) + 8d8: df000017 ldw fp,0(sp) + 8dc: dec00204 addi sp,sp,8 + 8e0: f800283a ret + +000008e4 : + +static void reset_mem_cancel() { + 8e4: defffe04 addi sp,sp,-8 + 8e8: dfc00115 stw ra,4(sp) + 8ec: df000015 stw fp,0(sp) + 8f0: d839883a mov fp,sp + lcd_caret_reset(); + 8f4: 00020600 call 2060 + lcd_print("rewrite all 0?"); + 8f8: 01000074 movhi r4,1 + 8fc: 213fce04 addi r4,r4,-200 + 900: 00020b00 call 20b0 + lcd_caret_reset2(); + 904: 00020880 call 2088 + lcd_print("push again -> NG"); + 908: 01000074 movhi r4,1 + 90c: 213fd204 addi r4,r4,-184 + 910: 00020b00 call 20b0 +} + 914: e037883a mov sp,fp + 918: dfc00117 ldw ra,4(sp) + 91c: df000017 ldw fp,0(sp) + 920: dec00204 addi sp,sp,8 + 924: f800283a ret + +00000928 : +static char reset_mem(char confirmed) { + 928: defffb04 addi sp,sp,-20 + 92c: dfc00415 stw ra,16(sp) + 930: df000315 stw fp,12(sp) + 934: df000304 addi fp,sp,12 + 938: e13ffe05 stb r4,-8(fp) + if (confirmed == 0) { + 93c: e0bffe07 ldb r2,-8(fp) + 940: 1004c03a cmpne r2,r2,zero + 944: 10000b1e bne r2,zero,974 + lcd_caret_reset(); + 948: 00020600 call 2060 + lcd_print("rewrite all 0?"); + 94c: 01000074 movhi r4,1 + 950: 213fce04 addi r4,r4,-200 + 954: 00020b00 call 20b0 + lcd_caret_reset2(); + 958: 00020880 call 2088 + lcd_print("push again"); + 95c: 01000074 movhi r4,1 + 960: 213fd704 addi r4,r4,-164 + 964: 00020b00 call 20b0 + // �m�F�v�� + return 1; + 968: 00800044 movi r2,1 + 96c: e0bfff15 stw r2,-4(fp) + 970: 00001406 br 9c4 + } else { + int i; + for (i = 0; i < MEM_SIZE; i++){ + 974: e03ffd15 stw zero,-12(fp) + 978: 00000606 br 994 + memory_store(i,Szero); + 97c: e13ffd17 ldw r4,-12(fp) + 980: 000b883a mov r5,zero + 984: 00027580 call 2758 + lcd_print("push again"); + // �m�F�v�� + return 1; + } else { + int i; + for (i = 0; i < MEM_SIZE; i++){ + 988: e0bffd17 ldw r2,-12(fp) + 98c: 10800044 addi r2,r2,1 + 990: e0bffd15 stw r2,-12(fp) + 994: e0bffd17 ldw r2,-12(fp) + 998: 10800410 cmplti r2,r2,16 + 99c: 103ff71e bne r2,zero,97c + memory_store(i,Szero); + } + lcd_caret_reset(); + 9a0: 00020600 call 2060 + lcd_print("rewrite all 0?"); + 9a4: 01000074 movhi r4,1 + 9a8: 213fce04 addi r4,r4,-200 + 9ac: 00020b00 call 20b0 + lcd_caret_reset2(); + 9b0: 00020880 call 2088 + lcd_print("push again -> OK"); + 9b4: 01000074 movhi r4,1 + 9b8: 213fda04 addi r4,r4,-152 + 9bc: 00020b00 call 20b0 + + // PC���Z�b�g���� + return 0; + 9c0: e03fff15 stw zero,-4(fp) + 9c4: e0bfff17 ldw r2,-4(fp) + } +} + 9c8: e037883a mov sp,fp + 9cc: dfc00117 ldw ra,4(sp) + 9d0: df000017 ldw fp,0(sp) + 9d4: dec00204 addi sp,sp,8 + 9d8: f800283a ret + +000009dc : +static void reset_pc_cancel() { + 9dc: defffe04 addi sp,sp,-8 + 9e0: dfc00115 stw ra,4(sp) + 9e4: df000015 stw fp,0(sp) + 9e8: d839883a mov fp,sp + lcd_caret_reset(); + 9ec: 00020600 call 2060 + lcd_print("reset pc?"); + 9f0: 01000074 movhi r4,1 + 9f4: 213fdf04 addi r4,r4,-132 + 9f8: 00020b00 call 20b0 + lcd_caret_reset2(); + 9fc: 00020880 call 2088 + lcd_print("push again -> NG"); + a00: 01000074 movhi r4,1 + a04: 213fd204 addi r4,r4,-184 + a08: 00020b00 call 20b0 +} + a0c: e037883a mov sp,fp + a10: dfc00117 ldw ra,4(sp) + a14: df000017 ldw fp,0(sp) + a18: dec00204 addi sp,sp,8 + a1c: f800283a ret + +00000a20 : +static char reset_pc(char confirmed) { + a20: defffc04 addi sp,sp,-16 + a24: dfc00315 stw ra,12(sp) + a28: df000215 stw fp,8(sp) + a2c: df000204 addi fp,sp,8 + a30: e13ffe05 stb r4,-8(fp) + if (confirmed == 0) { + a34: e0bffe07 ldb r2,-8(fp) + a38: 1004c03a cmpne r2,r2,zero + a3c: 10000b1e bne r2,zero,a6c + lcd_caret_reset(); + a40: 00020600 call 2060 + lcd_print("reset pc?"); + a44: 01000074 movhi r4,1 + a48: 213fdf04 addi r4,r4,-132 + a4c: 00020b00 call 20b0 + lcd_caret_reset2(); + a50: 00020880 call 2088 + lcd_print("push again"); + a54: 01000074 movhi r4,1 + a58: 213fd704 addi r4,r4,-164 + a5c: 00020b00 call 20b0 + // �m�F�v�� + return 1; + a60: 00800044 movi r2,1 + a64: e0bfff15 stw r2,-4(fp) + a68: 00000c06 br a9c + } else { + global_registers[Spc]=0; + a6c: 00800074 movhi r2,1 + a70: 10908d04 addi r2,r2,16948 + a74: 10000045 stb zero,1(r2) + + lcd_caret_reset(); + a78: 00020600 call 2060 + lcd_print("reset pc?"); + a7c: 01000074 movhi r4,1 + a80: 213fdf04 addi r4,r4,-132 + a84: 00020b00 call 20b0 + lcd_caret_reset2(); + a88: 00020880 call 2088 + lcd_print("push again -> OK"); + a8c: 01000074 movhi r4,1 + a90: 213fda04 addi r4,r4,-152 + a94: 00020b00 call 20b0 + + // PC���Z�b�g���� + return 0; + a98: e03fff15 stw zero,-4(fp) + a9c: e0bfff17 ldw r2,-4(fp) + } +} + aa0: e037883a mov sp,fp + aa4: dfc00117 ldw ra,4(sp) + aa8: df000017 ldw fp,0(sp) + aac: dec00204 addi sp,sp,8 + ab0: f800283a ret + +00000ab4
: + + +int main() +{ + ab4: defffc04 addi sp,sp,-16 + ab8: dfc00315 stw ra,12(sp) + abc: df000215 stw fp,8(sp) + ac0: df000204 addi fp,sp,8 + init(); + ac4: 00004180 call 418 + + enum RunMode fRun = RUN_STOP; + ac8: e03fff15 stw zero,-4(fp) + char reset_pc_confirmed = 0; + acc: e03ffec5 stb zero,-5(fp) + char reset_mem_confirmed = 0; + ad0: e03ffe85 stb zero,-6(fp) + ad4: 00000006 br ad8 + + while(1) { + // interrupt + in_int(); + ad8: 00016840 call 1684 + + // event + // CANCEL + if (global_registers[Ssw_rw] == 0 + adc: 00800074 movhi r2,1 + ae0: 10908d04 addi r2,r2,16948 + ae4: 10800303 ldbu r2,12(r2) + ae8: 10803fcc andi r2,r2,255 + aec: 1080201c xori r2,r2,128 + af0: 10bfe004 addi r2,r2,-128 + af4: 1005003a cmpeq r2,r2,zero + af8: 10000e1e bne r2,zero,b34 + afc: 00800074 movhi r2,1 + b00: 10883c04 addi r2,r2,8432 + b04: 10800003 ldbu r2,0(r2) + b08: 10803fcc andi r2,r2,255 + b0c: 1080008c andi r2,r2,2 + b10: 1005003a cmpeq r2,r2,zero + b14: 10000c1e bne r2,zero,b48 + b18: 00800074 movhi r2,1 + b1c: 10883c04 addi r2,r2,8432 + b20: 10800003 ldbu r2,0(r2) + b24: 10803fcc andi r2,r2,255 + b28: 1080010c andi r2,r2,4 + b2c: 1004c03a cmpne r2,r2,zero + b30: 1000051e bne r2,zero,b48 + || ((PUSH_EVENT & PUSH_ANY) && !(PUSH_EVENT & PUSH_VALSTR))) { + if (reset_mem_confirmed == 1) { + b34: e0bffe87 ldb r2,-6(fp) + b38: 10800058 cmpnei r2,r2,1 + b3c: 1000021e bne r2,zero,b48 + reset_mem_confirmed = 0; //�m�F�L�����Z�� + b40: e03ffe85 stb zero,-6(fp) + reset_mem_cancel(); + b44: 00008e40 call 8e4 + } + } + if (global_registers[Ssw_rw] == 0 + b48: 00800074 movhi r2,1 + b4c: 10908d04 addi r2,r2,16948 + b50: 10800303 ldbu r2,12(r2) + b54: 10803fcc andi r2,r2,255 + b58: 1080201c xori r2,r2,128 + b5c: 10bfe004 addi r2,r2,-128 + b60: 1005003a cmpeq r2,r2,zero + b64: 10000e1e bne r2,zero,ba0 + b68: 00800074 movhi r2,1 + b6c: 10883c04 addi r2,r2,8432 + b70: 10800003 ldbu r2,0(r2) + b74: 10803fcc andi r2,r2,255 + b78: 1080008c andi r2,r2,2 + b7c: 1005003a cmpeq r2,r2,zero + b80: 10000c1e bne r2,zero,bb4 + b84: 00800074 movhi r2,1 + b88: 10883c04 addi r2,r2,8432 + b8c: 10800003 ldbu r2,0(r2) + b90: 10803fcc andi r2,r2,255 + b94: 1080020c andi r2,r2,8 + b98: 1004c03a cmpne r2,r2,zero + b9c: 1000051e bne r2,zero,bb4 + || ((PUSH_EVENT & PUSH_ANY) && !(PUSH_EVENT & PUSH_INSSTR))) { + if (reset_pc_confirmed == 1) { + ba0: e0bffec7 ldb r2,-5(fp) + ba4: 10800058 cmpnei r2,r2,1 + ba8: 1000021e bne r2,zero,bb4 + reset_pc_confirmed = 0; //�m�F�L�����Z�� + bac: e03ffec5 stb zero,-5(fp) + reset_pc_cancel(); + bb0: 00009dc0 call 9dc + } + } + // CONFIRM + if (PUSH_EVENT & PUSH_VALSTR) { + bb4: 00800074 movhi r2,1 + bb8: 10883c04 addi r2,r2,8432 + bbc: 10800003 ldbu r2,0(r2) + bc0: 10803fcc andi r2,r2,255 + bc4: 1080010c andi r2,r2,4 + bc8: 1005003a cmpeq r2,r2,zero + bcc: 1000161e bne r2,zero,c28 + // �l�̃X�g�A + if (global_registers[Ssw_rw] == 1) { + bd0: 00800074 movhi r2,1 + bd4: 10908d04 addi r2,r2,16948 + bd8: 10800303 ldbu r2,12(r2) + bdc: 10803fcc andi r2,r2,255 + be0: 1080201c xori r2,r2,128 + be4: 10bfe004 addi r2,r2,-128 + be8: 10800058 cmpnei r2,r2,1 + bec: 10000d1e bne r2,zero,c24 + //�폜 + char res = reset_mem(reset_mem_confirmed);//���m�F�̏��F + bf0: e13ffe87 ldb r4,-6(fp) + bf4: 00009280 call 928 + bf8: e0bffe45 stb r2,-7(fp) + if (1 == res) reset_mem_confirmed = 1; //���m�F + bfc: e0bffe47 ldb r2,-7(fp) + c00: 10800058 cmpnei r2,r2,1 + c04: 1000021e bne r2,zero,c10 + c08: 00800044 movi r2,1 + c0c: e0bffe85 stb r2,-6(fp) + if (0 == res) reset_mem_confirmed = 0; //���Z�b�g�̊m�F + c10: e0bffe47 ldb r2,-7(fp) + c14: 1004c03a cmpne r2,r2,zero + c18: 1000031e bne r2,zero,c28 + c1c: e03ffe85 stb zero,-6(fp) + c20: 00000106 br c28 + } else { + store_value(); + c24: 00004d80 call 4d8 + } + } + if (PUSH_EVENT & PUSH_INSSTR) { + c28: 00800074 movhi r2,1 + c2c: 10883c04 addi r2,r2,8432 + c30: 10800003 ldbu r2,0(r2) + c34: 10803fcc andi r2,r2,255 + c38: 1080020c andi r2,r2,8 + c3c: 1005003a cmpeq r2,r2,zero + c40: 1000161e bne r2,zero,c9c + // ���߂̃X�g�A + if (global_registers[Ssw_rw] == 1) { + c44: 00800074 movhi r2,1 + c48: 10908d04 addi r2,r2,16948 + c4c: 10800303 ldbu r2,12(r2) + c50: 10803fcc andi r2,r2,255 + c54: 1080201c xori r2,r2,128 + c58: 10bfe004 addi r2,r2,-128 + c5c: 10800058 cmpnei r2,r2,1 + c60: 10000d1e bne r2,zero,c98 + //PC�̃��Z�b�g + char res = reset_pc(reset_pc_confirmed);//���m�F�̏��F + c64: e13ffec7 ldb r4,-5(fp) + c68: 0000a200 call a20 + c6c: e0bffe05 stb r2,-8(fp) + if (1 == res) reset_pc_confirmed = 1; //���m�F + c70: e0bffe07 ldb r2,-8(fp) + c74: 10800058 cmpnei r2,r2,1 + c78: 1000021e bne r2,zero,c84 + c7c: 00800044 movi r2,1 + c80: e0bffec5 stb r2,-5(fp) + if (0 == res) reset_pc_confirmed = 0; //���Z�b�g�̊m�F + c84: e0bffe07 ldb r2,-8(fp) + c88: 1004c03a cmpne r2,r2,zero + c8c: 1000031e bne r2,zero,c9c + c90: e03ffec5 stb zero,-5(fp) + c94: 00000106 br c9c + } else { + store_inst(); + c98: 00005bc0 call 5bc + } + } + // RUN + if (PUSH_EVENT & PUSH_RUN) { + c9c: 00800074 movhi r2,1 + ca0: 10883c04 addi r2,r2,8432 + ca4: 10800003 ldbu r2,0(r2) + ca8: 10803fcc andi r2,r2,255 + cac: 1080040c andi r2,r2,16 + cb0: 1005003a cmpeq r2,r2,zero + cb4: 10001a1e bne r2,zero,d20 + if (global_current_memory != (unsigned int)global_registers[Ssw_psel]) { + cb8: 00800074 movhi r2,1 + cbc: 10908d04 addi r2,r2,16948 + cc0: 108002c3 ldbu r2,11(r2) + cc4: 10c03fcc andi r3,r2,255 + cc8: 18c0201c xori r3,r3,128 + ccc: 18ffe004 addi r3,r3,-128 + cd0: 00800074 movhi r2,1 + cd4: 108f3504 addi r2,r2,15572 + cd8: 10800017 ldw r2,0(r2) + cdc: 18800e26 beq r3,r2,d18 + global_current_memory = (unsigned int)global_registers[Ssw_psel]; + ce0: 00800074 movhi r2,1 + ce4: 10908d04 addi r2,r2,16948 + ce8: 108002c3 ldbu r2,11(r2) + cec: 10c03fcc andi r3,r2,255 + cf0: 18c0201c xori r3,r3,128 + cf4: 18ffe004 addi r3,r3,-128 + cf8: 00800074 movhi r2,1 + cfc: 108f3504 addi r2,r2,15572 + d00: 10c00015 stw r3,0(r2) + print_change_memory(global_current_memory); + d04: 00800074 movhi r2,1 + d08: 108f3504 addi r2,r2,15572 + d0c: 11000017 ldw r4,0(r2) + d10: 00008740 call 874 + d14: 00000206 br d20 + } + else { + // �v���O�����������ݒ� + fRun = RUN_INIT; + d18: 00800044 movi r2,1 + d1c: e0bfff15 stw r2,-4(fp) + } + } + if (fRun != RUN_STOP) { + d20: e0bfff17 ldw r2,-4(fp) + d24: 1005003a cmpeq r2,r2,zero + d28: 103f6b1e bne r2,zero,ad8 + // �v���O�������s���荞�� & ���s���[�h�X�V + fRun = run_proc(fRun); + d2c: e13fff17 ldw r4,-4(fp) + d30: 00007240 call 724 + d34: e0bfff15 stw r2,-4(fp) + } + } + d38: 003f6706 br ad8 + +00000d3c : + */ + +#include "hex_encoder.h" +#include + +void encodeNumHex(int hex_i, int num) { + d3c: defffc04 addi sp,sp,-16 + d40: df000315 stw fp,12(sp) + d44: df000304 addi fp,sp,12 + d48: e13ffe15 stw r4,-8(fp) + d4c: e17fff15 stw r5,-4(fp) + char encoded = 0; + d50: e03ffd05 stb zero,-12(fp) + switch (num) { + d54: e0bfff17 ldw r2,-4(fp) + d58: 108002a8 cmpgeui r2,r2,10 + d5c: 10002f1e bne r2,zero,e1c + d60: e0bfff17 ldw r2,-4(fp) + d64: 1085883a add r2,r2,r2 + d68: 1087883a add r3,r2,r2 + d6c: 00800034 movhi r2,0 + d70: 10836004 addi r2,r2,3456 + d74: 1885883a add r2,r3,r2 + d78: 10800017 ldw r2,0(r2) + d7c: 1000683a jmp r2 + d80: 00000da8 cmpgeui zero,zero,54 + d84: 00000db4 movhi zero,54 + d88: 00000dc0 call dc <__flash_exceptions_start+0xbc> + d8c: 00000dcc andi zero,zero,55 + d90: 00000dd8 cmpnei zero,zero,55 + d94: 00000de4 muli zero,zero,55 + d98: 00000df0 cmpltui zero,zero,55 + d9c: 00000dfc xorhi zero,zero,55 + da0: 00000e08 cmpgei zero,zero,56 + da4: 00000e10 cmplti zero,zero,56 + case 0: + encoded = (char)0x40; // 100 0000 + da8: 00801004 movi r2,64 + dac: e0bffd05 stb r2,-12(fp) + break; + db0: 00001b06 br e20 + case 1: + encoded = (char)0xF9; // 111 1001 + db4: 00bffe44 movi r2,-7 + db8: e0bffd05 stb r2,-12(fp) + break; + dbc: 00001806 br e20 + case 2: + encoded = (char)0x24; // 010 0100 + dc0: 00800904 movi r2,36 + dc4: e0bffd05 stb r2,-12(fp) + break; + dc8: 00001506 br e20 + case 3: + encoded = (char)0x30; // 011 0000 + dcc: 00800c04 movi r2,48 + dd0: e0bffd05 stb r2,-12(fp) + break; + dd4: 00001206 br e20 + case 4: + encoded = (char)0x19; // 001 1001 + dd8: 00800644 movi r2,25 + ddc: e0bffd05 stb r2,-12(fp) + break; + de0: 00000f06 br e20 + case 5: + encoded = (char)0x12; // 001 0010 + de4: 00800484 movi r2,18 + de8: e0bffd05 stb r2,-12(fp) + break; + dec: 00000c06 br e20 + case 6: + encoded = (char)0x02; // 000 0010 + df0: 00800084 movi r2,2 + df4: e0bffd05 stb r2,-12(fp) + break; + df8: 00000906 br e20 + case 7: + encoded = (char)0x58; // 101 1000 + dfc: 00801604 movi r2,88 + e00: e0bffd05 stb r2,-12(fp) + break; + e04: 00000606 br e20 + case 8: + encoded = (char)0x00; // 000 0000 + e08: e03ffd05 stb zero,-12(fp) + break; + e0c: 00000406 br e20 + case 9: + encoded = (char)0x10; // 001 0000 + e10: 00800404 movi r2,16 + e14: e0bffd05 stb r2,-12(fp) + break; + e18: 00000106 br e20 + default: + encoded = 0; + e1c: e03ffd05 stb zero,-12(fp) + break; + } + + switch (hex_i) { + e20: e0bffe17 ldw r2,-8(fp) + e24: 10800228 cmpgeui r2,r2,8 + e28: 1000371e bne r2,zero,f08 + e2c: e0bffe17 ldw r2,-8(fp) + e30: 1085883a add r2,r2,r2 + e34: 1087883a add r3,r2,r2 + e38: 00800034 movhi r2,0 + e3c: 10839304 addi r2,r2,3660 + e40: 1885883a add r2,r3,r2 + e44: 10800017 ldw r2,0(r2) + e48: 1000683a jmp r2 + e4c: 00000e6c andhi zero,zero,57 + e50: 00000e80 call e8 <__flash_exceptions_start+0xc8> + e54: 00000e94 movui zero,58 + e58: 00000ea8 cmpgeui zero,zero,58 + e5c: 00000ebc xorhi zero,zero,58 + e60: 00000ed0 cmplti zero,zero,59 + e64: 00000ee4 muli zero,zero,59 + e68: 00000ef8 rdprs zero,zero,59 + case 0: + *hex0 = encoded; + e6c: 00c00134 movhi r3,4 + e70: 18c42c04 addi r3,r3,4272 + e74: e0bffd03 ldbu r2,-12(fp) + e78: 18800005 stb r2,0(r3) + break; + e7c: 00002206 br f08 + case 1: + *hex1 = encoded; + e80: 00c00134 movhi r3,4 + e84: 18c42804 addi r3,r3,4256 + e88: e0bffd03 ldbu r2,-12(fp) + e8c: 18800005 stb r2,0(r3) + break; + e90: 00001d06 br f08 + case 2: + *hex2 = encoded; + e94: 00c00134 movhi r3,4 + e98: 18c42404 addi r3,r3,4240 + e9c: e0bffd03 ldbu r2,-12(fp) + ea0: 18800005 stb r2,0(r3) + break; + ea4: 00001806 br f08 + case 3: + *hex3 = encoded; + ea8: 00c00134 movhi r3,4 + eac: 18c42004 addi r3,r3,4224 + eb0: e0bffd03 ldbu r2,-12(fp) + eb4: 18800005 stb r2,0(r3) + break; + eb8: 00001306 br f08 + case 4: + *hex4 = encoded; + ebc: 00c00134 movhi r3,4 + ec0: 18c41c04 addi r3,r3,4208 + ec4: e0bffd03 ldbu r2,-12(fp) + ec8: 18800005 stb r2,0(r3) + break; + ecc: 00000e06 br f08 + case 5: + *hex5 = encoded; + ed0: 00c00134 movhi r3,4 + ed4: 18c41804 addi r3,r3,4192 + ed8: e0bffd03 ldbu r2,-12(fp) + edc: 18800005 stb r2,0(r3) + break; + ee0: 00000906 br f08 + case 6: + *hex6 = encoded; + ee4: 00c00134 movhi r3,4 + ee8: 18c41404 addi r3,r3,4176 + eec: e0bffd03 ldbu r2,-12(fp) + ef0: 18800005 stb r2,0(r3) + break; + ef4: 00000406 br f08 + case 7: + *hex7 = encoded; + ef8: 00c00134 movhi r3,4 + efc: 18c41004 addi r3,r3,4160 + f00: e0bffd03 ldbu r2,-12(fp) + f04: 18800005 stb r2,0(r3) + break; + default: + break; + } +} + f08: e037883a mov sp,fp + f0c: df000017 ldw fp,0(sp) + f10: dec00104 addi sp,sp,4 + f14: f800283a ret + +00000f18 : + +void encodeLatHex(int hex_i, char c) { + f18: defffa04 addi sp,sp,-24 + f1c: dfc00515 stw ra,20(sp) + f20: df000415 stw fp,16(sp) + f24: df000404 addi fp,sp,16 + f28: e13ffd15 stw r4,-12(fp) + f2c: e17ffe05 stb r5,-8(fp) + char encoded = 0; + f30: e03ffc05 stb zero,-16(fp) + + if (isdigit(c)) { + f34: e0bffe07 ldb r2,-8(fp) + f38: 1007883a mov r3,r2 + f3c: 00800074 movhi r2,1 + f40: 10883d04 addi r2,r2,8436 + f44: 10800017 ldw r2,0(r2) + f48: 1885883a add r2,r3,r2 + f4c: 10800003 ldbu r2,0(r2) + f50: 10803fcc andi r2,r2,255 + f54: 1080010c andi r2,r2,4 + f58: 1005003a cmpeq r2,r2,zero + f5c: 1000051e bne r2,zero,f74 + encodeNumHex(hex_i, c-'0'); + f60: e0bffe07 ldb r2,-8(fp) + f64: 117ff404 addi r5,r2,-48 + f68: e13ffd17 ldw r4,-12(fp) + f6c: 0000d3c0 call d3c + return; + f70: 0000f906 br 1358 + } + + switch (c) { + f74: e0bffe07 ldb r2,-8(fp) + f78: 10bff804 addi r2,r2,-32 + f7c: e0bfff15 stw r2,-4(fp) + f80: e0ffff17 ldw r3,-4(fp) + f84: 188016e8 cmpgeui r2,r3,91 + f88: 1000b81e bne r2,zero,126c + f8c: e13fff17 ldw r4,-4(fp) + f90: e13fff17 ldw r4,-4(fp) + f94: 2105883a add r2,r4,r4 + f98: 1087883a add r3,r2,r2 + f9c: 00800034 movhi r2,0 + fa0: 1083ec04 addi r2,r2,4016 + fa4: 1885883a add r2,r3,r2 + fa8: 10800017 ldw r2,0(r2) + fac: 1000683a jmp r2 + fb0: 0000111c xori zero,zero,68 + fb4: 0000126c andhi zero,zero,73 + fb8: 0000126c andhi zero,zero,73 + fbc: 0000126c andhi zero,zero,73 + fc0: 0000126c andhi zero,zero,73 + fc4: 0000126c andhi zero,zero,73 + fc8: 0000126c andhi zero,zero,73 + fcc: 0000126c andhi zero,zero,73 + fd0: 0000126c andhi zero,zero,73 + fd4: 0000126c andhi zero,zero,73 + fd8: 0000126c andhi zero,zero,73 + fdc: 0000126c andhi zero,zero,73 + fe0: 0000126c andhi zero,zero,73 + fe4: 00001128 cmpgeui zero,zero,68 + fe8: 0000126c andhi zero,zero,73 + fec: 0000126c andhi zero,zero,73 + ff0: 0000126c andhi zero,zero,73 + ff4: 0000126c andhi zero,zero,73 + ff8: 0000126c andhi zero,zero,73 + ffc: 0000126c andhi zero,zero,73 + 1000: 0000126c andhi zero,zero,73 + 1004: 0000126c andhi zero,zero,73 + 1008: 0000126c andhi zero,zero,73 + 100c: 0000126c andhi zero,zero,73 + 1010: 0000126c andhi zero,zero,73 + 1014: 0000126c andhi zero,zero,73 + 1018: 0000126c andhi zero,zero,73 + 101c: 0000126c andhi zero,zero,73 + 1020: 0000126c andhi zero,zero,73 + 1024: 0000126c andhi zero,zero,73 + 1028: 0000126c andhi zero,zero,73 + 102c: 0000126c andhi zero,zero,73 + 1030: 0000126c andhi zero,zero,73 + 1034: 0000126c andhi zero,zero,73 + 1038: 0000126c andhi zero,zero,73 + 103c: 0000126c andhi zero,zero,73 + 1040: 0000126c andhi zero,zero,73 + 1044: 0000126c andhi zero,zero,73 + 1048: 0000126c andhi zero,zero,73 + 104c: 0000126c andhi zero,zero,73 + 1050: 0000126c andhi zero,zero,73 + 1054: 0000126c andhi zero,zero,73 + 1058: 0000126c andhi zero,zero,73 + 105c: 0000126c andhi zero,zero,73 + 1060: 0000126c andhi zero,zero,73 + 1064: 0000126c andhi zero,zero,73 + 1068: 0000126c andhi zero,zero,73 + 106c: 0000126c andhi zero,zero,73 + 1070: 0000126c andhi zero,zero,73 + 1074: 0000126c andhi zero,zero,73 + 1078: 0000126c andhi zero,zero,73 + 107c: 0000126c andhi zero,zero,73 + 1080: 0000126c andhi zero,zero,73 + 1084: 0000126c andhi zero,zero,73 + 1088: 0000126c andhi zero,zero,73 + 108c: 0000126c andhi zero,zero,73 + 1090: 0000126c andhi zero,zero,73 + 1094: 0000126c andhi zero,zero,73 + 1098: 0000126c andhi zero,zero,73 + 109c: 0000126c andhi zero,zero,73 + 10a0: 0000126c andhi zero,zero,73 + 10a4: 0000126c andhi zero,zero,73 + 10a8: 0000126c andhi zero,zero,73 + 10ac: 0000126c andhi zero,zero,73 + 10b0: 0000126c andhi zero,zero,73 + 10b4: 00001134 movhi zero,68 + 10b8: 00001140 call 114 + 10bc: 0000114c andi zero,zero,69 + 10c0: 00001158 cmpnei zero,zero,69 + 10c4: 00001164 muli zero,zero,69 + 10c8: 00001170 cmpltui zero,zero,69 + 10cc: 0000117c xorhi zero,zero,69 + 10d0: 00001188 cmpgei zero,zero,70 + 10d4: 00001194 movui zero,70 + 10d8: 000011a0 cmpeqi zero,zero,70 + 10dc: 000011ac andhi zero,zero,70 + 10e0: 000011b8 rdprs zero,zero,70 + 10e4: 000011c4 movi zero,71 + 10e8: 000011d0 cmplti zero,zero,71 + 10ec: 000011dc xori zero,zero,71 + 10f0: 000011e8 cmpgeui zero,zero,71 + 10f4: 000011f4 movhi zero,71 + 10f8: 00001200 call 120 + 10fc: 0000120c andi zero,zero,72 + 1100: 00001218 cmpnei zero,zero,72 + 1104: 00001224 muli zero,zero,72 + 1108: 00001230 cmpltui zero,zero,72 + 110c: 0000123c xorhi zero,zero,72 + 1110: 00001248 cmpgei zero,zero,73 + 1114: 00001254 movui zero,73 + 1118: 00001260 cmpeqi zero,zero,73 + case ' ': + encoded = (char)0xFF; // 111 1111 + 111c: 00bfffc4 movi r2,-1 + 1120: e0bffc05 stb r2,-16(fp) + break; + 1124: 00005206 br 1270 + case '-': + encoded = (char)0x3F; // 011 1111 + 1128: 00800fc4 movi r2,63 + 112c: e0bffc05 stb r2,-16(fp) + break; + 1130: 00004f06 br 1270 + case 'a': + encoded = (char)0x08; // 000 1000 + 1134: 00800204 movi r2,8 + 1138: e0bffc05 stb r2,-16(fp) + break; + 113c: 00004c06 br 1270 + case 'b': + encoded = (char)0x03; // 000 0011 + 1140: 008000c4 movi r2,3 + 1144: e0bffc05 stb r2,-16(fp) + break; + 1148: 00004906 br 1270 + case 'c': + encoded = (char)0x27; // 010 0111 + 114c: 008009c4 movi r2,39 + 1150: e0bffc05 stb r2,-16(fp) + break; + 1154: 00004606 br 1270 + case 'd': + encoded = (char)0x21; // 010 0001 + 1158: 00800844 movi r2,33 + 115c: e0bffc05 stb r2,-16(fp) + break; + 1160: 00004306 br 1270 + case 'e': + encoded = (char)0x06; // 000 0110 + 1164: 00800184 movi r2,6 + 1168: e0bffc05 stb r2,-16(fp) + break; + 116c: 00004006 br 1270 + case 'f': + encoded = (char)0x0E; // 000 1110 + 1170: 00800384 movi r2,14 + 1174: e0bffc05 stb r2,-16(fp) + break; + 1178: 00003d06 br 1270 + case 'g': + encoded = (char)0x42; // 100 0010 + 117c: 00801084 movi r2,66 + 1180: e0bffc05 stb r2,-16(fp) + break; + 1184: 00003a06 br 1270 + case 'h': + encoded = (char)0x0B; // 000 1011 + 1188: 008002c4 movi r2,11 + 118c: e0bffc05 stb r2,-16(fp) + break; + 1190: 00003706 br 1270 + case 'i': + encoded = (char)0xFB; // 111 1011 + 1194: 00bffec4 movi r2,-5 + 1198: e0bffc05 stb r2,-16(fp) + break; + 119c: 00003406 br 1270 + case 'j': + encoded = (char)0x61; // 110 0001 + 11a0: 00801844 movi r2,97 + 11a4: e0bffc05 stb r2,-16(fp) + break; + 11a8: 00003106 br 1270 + case 'k': + encoded = (char)0x0A; // 000 1010 + 11ac: 00800284 movi r2,10 + 11b0: e0bffc05 stb r2,-16(fp) + break; + 11b4: 00002e06 br 1270 + case 'l': + encoded = (char)0x47; // 100 0111 + 11b8: 008011c4 movi r2,71 + 11bc: e0bffc05 stb r2,-16(fp) + break; + 11c0: 00002b06 br 1270 + case 'm': + encoded = (char)0x48; // 100 1000 + 11c4: 00801204 movi r2,72 + 11c8: e0bffc05 stb r2,-16(fp) + break; + 11cc: 00002806 br 1270 + case 'n': + encoded = (char)0x2B; // 010 1011 + 11d0: 00800ac4 movi r2,43 + 11d4: e0bffc05 stb r2,-16(fp) + break; + 11d8: 00002506 br 1270 + case 'o': + encoded = (char)0x23; // 010 0011 + 11dc: 008008c4 movi r2,35 + 11e0: e0bffc05 stb r2,-16(fp) + break; + 11e4: 00002206 br 1270 + case 'p': + encoded = (char)0x0C; // 000 1100 + 11e8: 00800304 movi r2,12 + 11ec: e0bffc05 stb r2,-16(fp) + break; + 11f0: 00001f06 br 1270 + case 'q': + encoded = (char)0x04; // 000 0100 + 11f4: 00800104 movi r2,4 + 11f8: e0bffc05 stb r2,-16(fp) + break; + 11fc: 00001c06 br 1270 + case 'r': + encoded = (char)0x2F; // 010 1111 + 1200: 00800bc4 movi r2,47 + 1204: e0bffc05 stb r2,-16(fp) + break; + 1208: 00001906 br 1270 + case 's': + encoded = (char)0x13; // 001 0011 + 120c: 008004c4 movi r2,19 + 1210: e0bffc05 stb r2,-16(fp) + break; + 1214: 00001606 br 1270 + case 't': + encoded = (char)0x07; // 000 0111 + 1218: 008001c4 movi r2,7 + 121c: e0bffc05 stb r2,-16(fp) + break; + 1220: 00001306 br 1270 + case 'u': + encoded = (char)0x63; // 110 0011 + 1224: 008018c4 movi r2,99 + 1228: e0bffc05 stb r2,-16(fp) + break; + 122c: 00001006 br 1270 + case 'v': + encoded = (char)0x41; // 100 0001 + 1230: 00801044 movi r2,65 + 1234: e0bffc05 stb r2,-16(fp) + break; + 1238: 00000d06 br 1270 + case 'w': + encoded = (char)0x01; // 000 0001 + 123c: 00800044 movi r2,1 + 1240: e0bffc05 stb r2,-16(fp) + break; + 1244: 00000a06 br 1270 + case 'x': + encoded = (char)0x09; // 000 1001 + 1248: 00800244 movi r2,9 + 124c: e0bffc05 stb r2,-16(fp) + break; + 1250: 00000706 br 1270 + case 'y': + encoded = (char)0x11; // 001 0001 + 1254: 00800444 movi r2,17 + 1258: e0bffc05 stb r2,-16(fp) + break; + 125c: 00000406 br 1270 + case 'z': + encoded = (char)0x64; // 110 0100 + 1260: 00801904 movi r2,100 + 1264: e0bffc05 stb r2,-16(fp) + break; + 1268: 00000106 br 1270 + default: + encoded = 0; + 126c: e03ffc05 stb zero,-16(fp) + break; + } + + switch (hex_i) { + 1270: e0bffd17 ldw r2,-12(fp) + 1274: 10800228 cmpgeui r2,r2,8 + 1278: 1000371e bne r2,zero,1358 + 127c: e0bffd17 ldw r2,-12(fp) + 1280: 1085883a add r2,r2,r2 + 1284: 1087883a add r3,r2,r2 + 1288: 00800034 movhi r2,0 + 128c: 1084a704 addi r2,r2,4764 + 1290: 1885883a add r2,r3,r2 + 1294: 10800017 ldw r2,0(r2) + 1298: 1000683a jmp r2 + 129c: 000012bc xorhi zero,zero,74 + 12a0: 000012d0 cmplti zero,zero,75 + 12a4: 000012e4 muli zero,zero,75 + 12a8: 000012f8 rdprs zero,zero,75 + 12ac: 0000130c andi zero,zero,76 + 12b0: 00001320 cmpeqi zero,zero,76 + 12b4: 00001334 movhi zero,76 + 12b8: 00001348 cmpgei zero,zero,77 + case 0: + *hex0 = encoded; + 12bc: 00c00134 movhi r3,4 + 12c0: 18c42c04 addi r3,r3,4272 + 12c4: e0bffc03 ldbu r2,-16(fp) + 12c8: 18800005 stb r2,0(r3) + break; + 12cc: 00002206 br 1358 + case 1: + *hex1 = encoded; + 12d0: 00c00134 movhi r3,4 + 12d4: 18c42804 addi r3,r3,4256 + 12d8: e0bffc03 ldbu r2,-16(fp) + 12dc: 18800005 stb r2,0(r3) + break; + 12e0: 00001d06 br 1358 + case 2: + *hex2 = encoded; + 12e4: 00c00134 movhi r3,4 + 12e8: 18c42404 addi r3,r3,4240 + 12ec: e0bffc03 ldbu r2,-16(fp) + 12f0: 18800005 stb r2,0(r3) + break; + 12f4: 00001806 br 1358 + case 3: + *hex3 = encoded; + 12f8: 00c00134 movhi r3,4 + 12fc: 18c42004 addi r3,r3,4224 + 1300: e0bffc03 ldbu r2,-16(fp) + 1304: 18800005 stb r2,0(r3) + break; + 1308: 00001306 br 1358 + case 4: + *hex4 = encoded; + 130c: 00c00134 movhi r3,4 + 1310: 18c41c04 addi r3,r3,4208 + 1314: e0bffc03 ldbu r2,-16(fp) + 1318: 18800005 stb r2,0(r3) + break; + 131c: 00000e06 br 1358 + case 5: + *hex5 = encoded; + 1320: 00c00134 movhi r3,4 + 1324: 18c41804 addi r3,r3,4192 + 1328: e0bffc03 ldbu r2,-16(fp) + 132c: 18800005 stb r2,0(r3) + break; + 1330: 00000906 br 1358 + case 6: + *hex6 = encoded; + 1334: 00c00134 movhi r3,4 + 1338: 18c41404 addi r3,r3,4176 + 133c: e0bffc03 ldbu r2,-16(fp) + 1340: 18800005 stb r2,0(r3) + break; + 1344: 00000406 br 1358 + case 7: + *hex7 = encoded; + 1348: 00c00134 movhi r3,4 + 134c: 18c41004 addi r3,r3,4160 + 1350: e0bffc03 ldbu r2,-16(fp) + 1354: 18800005 stb r2,0(r3) + break; + default: + break; + } +} + 1358: e037883a mov sp,fp + 135c: dfc00117 ldw ra,4(sp) + 1360: df000017 ldw fp,0(sp) + 1364: dec00204 addi sp,sp,8 + 1368: f800283a ret + +0000136c : + */ +#include "hex_out.h" +#include "hex_encoder.h" +#include "sys_except.h" + +void print_block(char * str, unsigned int size, enum BLOCK_N block_i) { + 136c: defffa04 addi sp,sp,-24 + 1370: dfc00515 stw ra,20(sp) + 1374: df000415 stw fp,16(sp) + 1378: df000404 addi fp,sp,16 + 137c: e13ffd15 stw r4,-12(fp) + 1380: e17ffe15 stw r5,-8(fp) + 1384: e1bfff15 stw r6,-4(fp) + int i; + if (block_i == HEX0_3) { + 1388: e0bfff17 ldw r2,-4(fp) + 138c: 1004c03a cmpne r2,r2,zero + 1390: 10001a1e bne r2,zero,13fc + if (size > 4) panic(); + 1394: e0bffe17 ldw r2,-8(fp) + 1398: 10800170 cmpltui r2,r2,5 + 139c: 1000011e bne r2,zero,13a4 + 13a0: 00026040 call 2604 + for (i = 0; i < size; i++) { + 13a4: e03ffc15 stw zero,-16(fp) + 13a8: 00001006 br 13ec + encodeLatHex(i,str[size-1-i]); + 13ac: e0fffc17 ldw r3,-16(fp) + 13b0: e0bffe17 ldw r2,-8(fp) + 13b4: 10c5c83a sub r2,r2,r3 + 13b8: 1007883a mov r3,r2 + 13bc: e0bffd17 ldw r2,-12(fp) + 13c0: 1885883a add r2,r3,r2 + 13c4: 10bfffc4 addi r2,r2,-1 + 13c8: 10800003 ldbu r2,0(r2) + 13cc: 11403fcc andi r5,r2,255 + 13d0: 2940201c xori r5,r5,128 + 13d4: 297fe004 addi r5,r5,-128 + 13d8: e13ffc17 ldw r4,-16(fp) + 13dc: 0000f180 call f18 + +void print_block(char * str, unsigned int size, enum BLOCK_N block_i) { + int i; + if (block_i == HEX0_3) { + if (size > 4) panic(); + for (i = 0; i < size; i++) { + 13e0: e0bffc17 ldw r2,-16(fp) + 13e4: 10800044 addi r2,r2,1 + 13e8: e0bffc15 stw r2,-16(fp) + 13ec: e0fffc17 ldw r3,-16(fp) + 13f0: e0bffe17 ldw r2,-8(fp) + 13f4: 18bfed36 bltu r3,r2,13ac + 13f8: 00003b06 br 14e8 + encodeLatHex(i,str[size-1-i]); + } + } + else if (block_i == HEX4_5) { + 13fc: e0bfff17 ldw r2,-4(fp) + 1400: 10800058 cmpnei r2,r2,1 + 1404: 10001b1e bne r2,zero,1474 + if (size > 2) panic(); + 1408: e0bffe17 ldw r2,-8(fp) + 140c: 108000f0 cmpltui r2,r2,3 + 1410: 1000011e bne r2,zero,1418 + 1414: 00026040 call 2604 + for (i = 0; i < size; i++) { + 1418: e03ffc15 stw zero,-16(fp) + 141c: 00001106 br 1464 + encodeLatHex(i+4,str[size-1-i]); + 1420: e0bffc17 ldw r2,-16(fp) + 1424: 11000104 addi r4,r2,4 + 1428: e0fffc17 ldw r3,-16(fp) + 142c: e0bffe17 ldw r2,-8(fp) + 1430: 10c5c83a sub r2,r2,r3 + 1434: 1007883a mov r3,r2 + 1438: e0bffd17 ldw r2,-12(fp) + 143c: 1885883a add r2,r3,r2 + 1440: 10bfffc4 addi r2,r2,-1 + 1444: 10800003 ldbu r2,0(r2) + 1448: 11403fcc andi r5,r2,255 + 144c: 2940201c xori r5,r5,128 + 1450: 297fe004 addi r5,r5,-128 + 1454: 0000f180 call f18 + encodeLatHex(i,str[size-1-i]); + } + } + else if (block_i == HEX4_5) { + if (size > 2) panic(); + for (i = 0; i < size; i++) { + 1458: e0bffc17 ldw r2,-16(fp) + 145c: 10800044 addi r2,r2,1 + 1460: e0bffc15 stw r2,-16(fp) + 1464: e0fffc17 ldw r3,-16(fp) + 1468: e0bffe17 ldw r2,-8(fp) + 146c: 18bfec36 bltu r3,r2,1420 + 1470: 00001d06 br 14e8 + encodeLatHex(i+4,str[size-1-i]); + } + } + else if (block_i == HEX6_7) { + 1474: e0bfff17 ldw r2,-4(fp) + 1478: 10800098 cmpnei r2,r2,2 + 147c: 10001a1e bne r2,zero,14e8 + if (size > 2) panic(); + 1480: e0bffe17 ldw r2,-8(fp) + 1484: 108000f0 cmpltui r2,r2,3 + 1488: 1000011e bne r2,zero,1490 + 148c: 00026040 call 2604 + for (i = 0; i < size; i++) { + 1490: e03ffc15 stw zero,-16(fp) + 1494: 00001106 br 14dc + encodeLatHex(i+6,str[size-1-i]); + 1498: e0bffc17 ldw r2,-16(fp) + 149c: 11000184 addi r4,r2,6 + 14a0: e0fffc17 ldw r3,-16(fp) + 14a4: e0bffe17 ldw r2,-8(fp) + 14a8: 10c5c83a sub r2,r2,r3 + 14ac: 1007883a mov r3,r2 + 14b0: e0bffd17 ldw r2,-12(fp) + 14b4: 1885883a add r2,r3,r2 + 14b8: 10bfffc4 addi r2,r2,-1 + 14bc: 10800003 ldbu r2,0(r2) + 14c0: 11403fcc andi r5,r2,255 + 14c4: 2940201c xori r5,r5,128 + 14c8: 297fe004 addi r5,r5,-128 + 14cc: 0000f180 call f18 + encodeLatHex(i+4,str[size-1-i]); + } + } + else if (block_i == HEX6_7) { + if (size > 2) panic(); + for (i = 0; i < size; i++) { + 14d0: e0bffc17 ldw r2,-16(fp) + 14d4: 10800044 addi r2,r2,1 + 14d8: e0bffc15 stw r2,-16(fp) + 14dc: e0fffc17 ldw r3,-16(fp) + 14e0: e0bffe17 ldw r2,-8(fp) + 14e4: 18bfec36 bltu r3,r2,1498 + encodeLatHex(i+6,str[size-1-i]); + } + } +} + 14e8: e037883a mov sp,fp + 14ec: dfc00117 ldw ra,4(sp) + 14f0: df000017 ldw fp,0(sp) + 14f4: dec00204 addi sp,sp,8 + 14f8: f800283a ret + +000014fc : + +void clear_block(enum BLOCK_N block_i) { + 14fc: defffd04 addi sp,sp,-12 + 1500: dfc00215 stw ra,8(sp) + 1504: df000115 stw fp,4(sp) + 1508: df000104 addi fp,sp,4 + 150c: e13fff15 stw r4,-4(fp) + if (block_i == HEX0_3) { + 1510: e0bfff17 ldw r2,-4(fp) + 1514: 1004c03a cmpne r2,r2,zero + 1518: 1000061e bne r2,zero,1534 + print_block(" ", 4, HEX0_3); + 151c: 01000074 movhi r4,1 + 1520: 213fe204 addi r4,r4,-120 + 1524: 01400104 movi r5,4 + 1528: 000d883a mov r6,zero + 152c: 000136c0 call 136c + 1530: 00001106 br 1578 + } + else if (block_i == HEX4_5) { + 1534: e0bfff17 ldw r2,-4(fp) + 1538: 10800058 cmpnei r2,r2,1 + 153c: 1000061e bne r2,zero,1558 + print_block(" ", 2, HEX4_5); + 1540: 01000074 movhi r4,1 + 1544: 213fe404 addi r4,r4,-112 + 1548: 01400084 movi r5,2 + 154c: 01800044 movi r6,1 + 1550: 000136c0 call 136c + 1554: 00000806 br 1578 + } + else if (block_i == HEX6_7) { + 1558: e0bfff17 ldw r2,-4(fp) + 155c: 10800098 cmpnei r2,r2,2 + 1560: 1000051e bne r2,zero,1578 + print_block(" ", 2, HEX6_7); + 1564: 01000074 movhi r4,1 + 1568: 213fe404 addi r4,r4,-112 + 156c: 01400084 movi r5,2 + 1570: 01800084 movi r6,2 + 1574: 000136c0 call 136c + } +} + 1578: e037883a mov sp,fp + 157c: dfc00117 ldw ra,4(sp) + 1580: df000017 ldw fp,0(sp) + 1584: dec00204 addi sp,sp,8 + 1588: f800283a ret + +0000158c : + +void print_number(char num) { + 158c: defff904 addi sp,sp,-28 + 1590: dfc00615 stw ra,24(sp) + 1594: df000515 stw fp,20(sp) + 1598: df000504 addi fp,sp,20 + 159c: e13fff05 stb r4,-4(fp) + int i; + char buf[5]; + char val; + for (i = 0; i < 4; i++) { + 15a0: e03ffc15 stw zero,-16(fp) + 15a4: 00002906 br 164c + if (num < 0) { + 15a8: e0bfff07 ldb r2,-4(fp) + 15ac: 1004403a cmpge r2,r2,zero + 15b0: 1000061e bne r2,zero,15cc + buf[0] = '-'; + 15b4: 00800b44 movi r2,45 + 15b8: e0bffd05 stb r2,-12(fp) + val = -num; + 15bc: e0bfff03 ldbu r2,-4(fp) + 15c0: 0085c83a sub r2,zero,r2 + 15c4: e0bffb05 stb r2,-20(fp) + 15c8: 00000406 br 15dc + } else { + buf[0] = ' '; + 15cc: 00800804 movi r2,32 + 15d0: e0bffd05 stb r2,-12(fp) + val = num; + 15d4: e0bfff03 ldbu r2,-4(fp) + 15d8: e0bffb05 stb r2,-20(fp) + } + buf[1] = val/100%10 + '0'; + 15dc: e13ffb07 ldb r4,-20(fp) + 15e0: 01401904 movi r5,100 + 15e4: 0002a5c0 call 2a5c <__divsi3> + 15e8: 11003fcc andi r4,r2,255 + 15ec: 2100201c xori r4,r4,128 + 15f0: 213fe004 addi r4,r4,-128 + 15f4: 01400284 movi r5,10 + 15f8: 0002abc0 call 2abc <__modsi3> + 15fc: 10800c04 addi r2,r2,48 + 1600: e0bffd45 stb r2,-11(fp) + buf[2] = val/10%10 + '0'; + 1604: e13ffb07 ldb r4,-20(fp) + 1608: 01400284 movi r5,10 + 160c: 0002a5c0 call 2a5c <__divsi3> + 1610: 11003fcc andi r4,r2,255 + 1614: 2100201c xori r4,r4,128 + 1618: 213fe004 addi r4,r4,-128 + 161c: 01400284 movi r5,10 + 1620: 0002abc0 call 2abc <__modsi3> + 1624: 10800c04 addi r2,r2,48 + 1628: e0bffd85 stb r2,-10(fp) + buf[3] = val%10 + '0'; + 162c: e13ffb07 ldb r4,-20(fp) + 1630: 01400284 movi r5,10 + 1634: 0002abc0 call 2abc <__modsi3> + 1638: 10800c04 addi r2,r2,48 + 163c: e0bffdc5 stb r2,-9(fp) + +void print_number(char num) { + int i; + char buf[5]; + char val; + for (i = 0; i < 4; i++) { + 1640: e0bffc17 ldw r2,-16(fp) + 1644: 10800044 addi r2,r2,1 + 1648: e0bffc15 stw r2,-16(fp) + 164c: e0bffc17 ldw r2,-16(fp) + 1650: 10800110 cmplti r2,r2,4 + 1654: 103fd41e bne r2,zero,15a8 + } + buf[1] = val/100%10 + '0'; + buf[2] = val/10%10 + '0'; + buf[3] = val%10 + '0'; + } + clear_block(HEX0_3); + 1658: 0009883a mov r4,zero + 165c: 00014fc0 call 14fc + print_block(buf, 4, HEX0_3); + 1660: e13ffd04 addi r4,fp,-12 + 1664: 01400104 movi r5,4 + 1668: 000d883a mov r6,zero + 166c: 000136c0 call 136c +} + 1670: e037883a mov sp,fp + 1674: dfc00117 ldw ra,4(sp) + 1678: df000017 ldw fp,0(sp) + 167c: dec00204 addi sp,sp,8 + 1680: f800283a ret + +00001684 : +#include "input_int.h" +#include "sys_register.h" + +unsigned char PUSH_EVENT = PUSH_NONE; + +void in_int() { + 1684: defffe04 addi sp,sp,-8 + 1688: dfc00115 stw ra,4(sp) + 168c: df000015 stw fp,0(sp) + 1690: d839883a mov fp,sp + push_int(); + 1694: 00018400 call 1840 +} + 1698: e037883a mov sp,fp + 169c: dfc00117 ldw ra,4(sp) + 16a0: df000017 ldw fp,0(sp) + 16a4: dec00204 addi sp,sp,8 + 16a8: f800283a ret + +000016ac : + +static void update_sw_reg(sw_t s) { + 16ac: defffe04 addi sp,sp,-8 + 16b0: df000115 stw fp,4(sp) + 16b4: df000104 addi fp,sp,4 + 16b8: e13fff15 stw r4,-4(fp) + global_registers[Ssw_data] = (char)s.data.value; + 16bc: e0bfff17 ldw r2,-4(fp) + 16c0: 1004d2ba srli r2,r2,10 + 16c4: 1007883a mov r3,r2 + 16c8: 00bfffc4 movi r2,-1 + 16cc: 1884703a and r2,r3,r2 + 16d0: 1007883a mov r3,r2 + 16d4: 00800074 movhi r2,1 + 16d8: 10908d04 addi r2,r2,16948 + 16dc: 10c001c5 stb r3,7(r2) + global_registers[Ssw_inst] = (char)s.splited.instruction_code; + 16e0: e0bfff17 ldw r2,-4(fp) + 16e4: 1004d3ba srli r2,r2,14 + 16e8: 108003cc andi r2,r2,15 + 16ec: 1007883a mov r3,r2 + 16f0: 00800074 movhi r2,1 + 16f4: 10908d04 addi r2,r2,16948 + 16f8: 10c00205 stb r3,8(r2) + global_registers[Ssw_memi] = (char)s.splited.memory_index; + 16fc: e0bfff17 ldw r2,-4(fp) + 1700: 1004d1ba srli r2,r2,6 + 1704: 108003cc andi r2,r2,15 + 1708: 1007883a mov r3,r2 + 170c: 00800074 movhi r2,1 + 1710: 10908d04 addi r2,r2,16948 + 1714: 10c00285 stb r3,10(r2) + global_registers[Ssw_regi] = (char)s.splited.register_index; + 1718: e0bfff17 ldw r2,-4(fp) + 171c: 1004d2ba srli r2,r2,10 + 1720: 108003cc andi r2,r2,15 + 1724: 1007883a mov r3,r2 + 1728: 00800074 movhi r2,1 + 172c: 10908d04 addi r2,r2,16948 + 1730: 10c00245 stb r3,9(r2) + global_registers[Ssw_psel] = (char)s.splited.program_selecter; + 1734: e0bfff17 ldw r2,-4(fp) + 1738: 1004d0ba srli r2,r2,2 + 173c: 108003cc andi r2,r2,15 + 1740: 1007883a mov r3,r2 + 1744: 00800074 movhi r2,1 + 1748: 10908d04 addi r2,r2,16948 + 174c: 10c002c5 stb r3,11(r2) + global_registers[Ssw_rw] = (char)s.splited.rw_mode; + 1750: e0bfff17 ldw r2,-4(fp) + 1754: 1004d07a srli r2,r2,1 + 1758: 1080004c andi r2,r2,1 + 175c: 1007883a mov r3,r2 + 1760: 00800074 movhi r2,1 + 1764: 10908d04 addi r2,r2,16948 + 1768: 10c00305 stb r3,12(r2) + global_registers[Ssw_run] = (char)s.splited.run_mode; + 176c: e0bfff17 ldw r2,-4(fp) + 1770: 1080004c andi r2,r2,1 + 1774: 1007883a mov r3,r2 + 1778: 00800074 movhi r2,1 + 177c: 10908d04 addi r2,r2,16948 + 1780: 10c00345 stb r3,13(r2) +} + 1784: e037883a mov sp,fp + 1788: df000017 ldw fp,0(sp) + 178c: dec00104 addi sp,sp,4 + 1790: f800283a ret + +00001794 : + +enum PushEvent push_decode(char psw) { + 1794: defffc04 addi sp,sp,-16 + 1798: df000315 stw fp,12(sp) + 179c: df000304 addi fp,sp,12 + 17a0: e13ffe05 stb r4,-8(fp) + int result = PUSH_NONE; + 17a4: 00800044 movi r2,1 + 17a8: e0bffd15 stw r2,-12(fp) + switch(psw) { + 17ac: e0bffe07 ldb r2,-8(fp) + 17b0: e0bfff15 stw r2,-4(fp) + 17b4: e0ffff17 ldw r3,-4(fp) + 17b8: 18800160 cmpeqi r2,r3,5 + 17bc: 10000e1e bne r2,zero,17f8 + 17c0: e0ffff17 ldw r3,-4(fp) + 17c4: 188001a0 cmpeqi r2,r3,6 + 17c8: 1000121e bne r2,zero,1814 + 17cc: e0ffff17 ldw r3,-4(fp) + 17d0: 188000e0 cmpeqi r2,r3,3 + 17d4: 1000011e bne r2,zero,17dc + 17d8: 00001406 br 182c + case 0x3: + result += PUSH_ANY; + 17dc: e0bffd17 ldw r2,-12(fp) + 17e0: 10800084 addi r2,r2,2 + 17e4: e0bffd15 stw r2,-12(fp) + result += PUSH_VALSTR; + 17e8: e0bffd17 ldw r2,-12(fp) + 17ec: 10800104 addi r2,r2,4 + 17f0: e0bffd15 stw r2,-12(fp) + break; + 17f4: 00000d06 br 182c + case 0x5: + result += PUSH_ANY; + 17f8: e0bffd17 ldw r2,-12(fp) + 17fc: 10800084 addi r2,r2,2 + 1800: e0bffd15 stw r2,-12(fp) + result += PUSH_INSSTR; + 1804: e0bffd17 ldw r2,-12(fp) + 1808: 10800204 addi r2,r2,8 + 180c: e0bffd15 stw r2,-12(fp) + break; + 1810: 00000606 br 182c + case 0x6: + result += PUSH_ANY; + 1814: e0bffd17 ldw r2,-12(fp) + 1818: 10800084 addi r2,r2,2 + 181c: e0bffd15 stw r2,-12(fp) + result += PUSH_RUN; + 1820: e0bffd17 ldw r2,-12(fp) + 1824: 10800404 addi r2,r2,16 + 1828: e0bffd15 stw r2,-12(fp) + break; + } + return result; + 182c: e0bffd17 ldw r2,-12(fp) +} + 1830: e037883a mov sp,fp + 1834: df000017 ldw fp,0(sp) + 1838: dec00104 addi sp,sp,4 + 183c: f800283a ret + +00001840 : + +void push_int() { + 1840: defffc04 addi sp,sp,-16 + 1844: dfc00315 stw ra,12(sp) + 1848: df000215 stw fp,8(sp) + 184c: df000204 addi fp,sp,8 + static unsigned char status = 0; + static enum PushEvent event_code; + volatile sw_t s; + s.sw = *switches; + 1850: 00800134 movhi r2,4 + 1854: 10843404 addi r2,r2,4304 + 1858: 10800017 ldw r2,0(r2) + 185c: e0bffe15 stw r2,-8(fp) + + switch (status) { + 1860: d0a6f803 ldbu r2,-25632(gp) + 1864: 10803fcc andi r2,r2,255 + 1868: e0bfff15 stw r2,-4(fp) + 186c: e0ffff17 ldw r3,-4(fp) + 1870: 18800060 cmpeqi r2,r3,1 + 1874: 10001e1e bne r2,zero,18f0 + 1878: e0ffff17 ldw r3,-4(fp) + 187c: 188000a0 cmpeqi r2,r3,2 + 1880: 1000261e bne r2,zero,191c + 1884: e0ffff17 ldw r3,-4(fp) + 1888: 1805003a cmpeq r2,r3,zero + 188c: 1000011e bne r2,zero,1894 + 1890: 00002606 br 192c + case 0: + PUSH_EVENT = PUSH_NONE; + 1894: 00800044 movi r2,1 + 1898: d0a00005 stb r2,-32768(gp) + if (*push_switches != 7) { + 189c: 00800134 movhi r2,4 + 18a0: 10843004 addi r2,r2,4288 + 18a4: 10800003 ldbu r2,0(r2) + 18a8: 10803fcc andi r2,r2,255 + 18ac: 1080201c xori r2,r2,128 + 18b0: 10bfe004 addi r2,r2,-128 + 18b4: 108001e0 cmpeqi r2,r2,7 + 18b8: 10000a1e bne r2,zero,18e4 + event_code = push_decode(*push_switches); + 18bc: 00800134 movhi r2,4 + 18c0: 10843004 addi r2,r2,4288 + 18c4: 10800003 ldbu r2,0(r2) + 18c8: 11003fcc andi r4,r2,255 + 18cc: 2100201c xori r4,r4,128 + 18d0: 213fe004 addi r4,r4,-128 + 18d4: 00017940 call 1794 + 18d8: d0a6f715 stw r2,-25636(gp) + status = 1; + 18dc: 00800044 movi r2,1 + 18e0: d0a6f805 stb r2,-25632(gp) + } + update_sw_reg(s); // �X�C�b�`���W�X�^�X�V + 18e4: e13ffe17 ldw r4,-8(fp) + 18e8: 00016ac0 call 16ac + break; + 18ec: 00001006 br 1930 + case 1: + if (*push_switches == 7) status = 2; + 18f0: 00800134 movhi r2,4 + 18f4: 10843004 addi r2,r2,4288 + 18f8: 10800003 ldbu r2,0(r2) + 18fc: 10803fcc andi r2,r2,255 + 1900: 1080201c xori r2,r2,128 + 1904: 10bfe004 addi r2,r2,-128 + 1908: 108001d8 cmpnei r2,r2,7 + 190c: 1000081e bne r2,zero,1930 + 1910: 00800084 movi r2,2 + 1914: d0a6f805 stb r2,-25632(gp) + break; + 1918: 00000506 br 1930 + case 2: + PUSH_EVENT = event_code; + 191c: d0a6f717 ldw r2,-25636(gp) + 1920: d0a00005 stb r2,-32768(gp) + status = 0; + 1924: d026f805 stb zero,-25632(gp) + break; + 1928: 00000106 br 1930 + default: + status = 0; + 192c: d026f805 stb zero,-25632(gp) + break; + } +} + 1930: e037883a mov sp,fp + 1934: dfc00117 ldw ra,4(sp) + 1938: df000017 ldw fp,0(sp) + 193c: dec00204 addi sp,sp,8 + 1940: f800283a ret + +00001944 : +#include "hex_out.h" +#include "sys_prog.h" +#include +#include + +struct InstRec inst_fetch(){ + 1944: defffd04 addi sp,sp,-12 + 1948: dfc00215 stw ra,8(sp) + 194c: df000115 stw fp,4(sp) + 1950: df000104 addi fp,sp,4 + struct InstRec rec = inst_memory_load((unsigned int)global_registers[Spc]); + 1954: 00800074 movhi r2,1 + 1958: 10908d04 addi r2,r2,16948 + 195c: 10800043 ldbu r2,1(r2) + 1960: 11003fcc andi r4,r2,255 + 1964: 2100201c xori r4,r4,128 + 1968: 213fe004 addi r4,r4,-128 + 196c: 00027100 call 2710 + 1970: e0bfff15 stw r2,-4(fp) + inc_pc(); + 1974: 00028840 call 2884 + return rec; + 1978: e0bfff17 ldw r2,-4(fp) +} + 197c: e037883a mov sp,fp + 1980: dfc00117 ldw ra,4(sp) + 1984: df000017 ldw fp,0(sp) + 1988: dec00204 addi sp,sp,8 + 198c: f800283a ret + +00001990 : + +void inst_decode(struct InstRec inst_rec){ + 1990: defffc04 addi sp,sp,-16 + 1994: dfc00315 stw ra,12(sp) + 1998: df000215 stw fp,8(sp) + 199c: df000204 addi fp,sp,8 + 19a0: e13ffe15 stw r4,-8(fp) + switch(inst_rec.inst) { + 19a4: e0bffe17 ldw r2,-8(fp) + 19a8: 108003cc andi r2,r2,15 + 19ac: 10803fcc andi r2,r2,255 + 19b0: e0bfff15 stw r2,-4(fp) + 19b4: e0ffff17 ldw r3,-4(fp) + 19b8: 18800328 cmpgeui r2,r3,12 + 19bc: 1000821e bne r2,zero,1bc8 + 19c0: e13fff17 ldw r4,-4(fp) + 19c4: e13fff17 ldw r4,-4(fp) + 19c8: 2105883a add r2,r4,r4 + 19cc: 1087883a add r3,r2,r2 + 19d0: 00800034 movhi r2,0 + 19d4: 10867904 addi r2,r2,6628 + 19d8: 1885883a add r2,r3,r2 + 19dc: 10800017 ldw r2,0(r2) + 19e0: 1000683a jmp r2 + 19e4: 00001bc8 cmpgei zero,zero,111 + 19e8: 00001a14 movui zero,104 + 19ec: 00001a3c xorhi zero,zero,104 + 19f0: 00001a64 muli zero,zero,105 + 19f4: 00001a8c andi zero,zero,106 + 19f8: 00001ab4 movhi zero,106 + 19fc: 00001adc xori zero,zero,107 + 1a00: 00001b04 movi zero,108 + 1a04: 00001b2c andhi zero,zero,108 + 1a08: 00001b54 movui zero,109 + 1a0c: 00001b7c xorhi zero,zero,109 + 1a10: 00001ba4 muli zero,zero,110 + case INST_END: + break; + case INST_JUMP: + inst_jump(inst_rec.regi, inst_rec.memi); + 1a14: e0bffe17 ldw r2,-8(fp) + 1a18: 1004d23a srli r2,r2,8 + 1a1c: 108003cc andi r2,r2,15 + 1a20: 11003fcc andi r4,r2,255 + 1a24: e0bffe17 ldw r2,-8(fp) + 1a28: 1004d13a srli r2,r2,4 + 1a2c: 108003cc andi r2,r2,15 + 1a30: 11403fcc andi r5,r2,255 + 1a34: 0001bdc0 call 1bdc + break; + 1a38: 00006306 br 1bc8 + case INST_OUTPUT: + inst_output(inst_rec.regi, inst_rec.memi); + 1a3c: e0bffe17 ldw r2,-8(fp) + 1a40: 1004d23a srli r2,r2,8 + 1a44: 108003cc andi r2,r2,15 + 1a48: 11003fcc andi r4,r2,255 + 1a4c: e0bffe17 ldw r2,-8(fp) + 1a50: 1004d13a srli r2,r2,4 + 1a54: 108003cc andi r2,r2,15 + 1a58: 11403fcc andi r5,r2,255 + 1a5c: 0001c380 call 1c38 + break; + 1a60: 00005906 br 1bc8 + case INST_LOAD: + inst_load(inst_rec.regi, inst_rec.memi); + 1a64: e0bffe17 ldw r2,-8(fp) + 1a68: 1004d23a srli r2,r2,8 + 1a6c: 108003cc andi r2,r2,15 + 1a70: 11003fcc andi r4,r2,255 + 1a74: e0bffe17 ldw r2,-8(fp) + 1a78: 1004d13a srli r2,r2,4 + 1a7c: 108003cc andi r2,r2,15 + 1a80: 11403fcc andi r5,r2,255 + 1a84: 0001ca80 call 1ca8 + break; + 1a88: 00004f06 br 1bc8 + case INST_STORE: + inst_store(inst_rec.regi, inst_rec.memi); + 1a8c: e0bffe17 ldw r2,-8(fp) + 1a90: 1004d23a srli r2,r2,8 + 1a94: 108003cc andi r2,r2,15 + 1a98: 11003fcc andi r4,r2,255 + 1a9c: e0bffe17 ldw r2,-8(fp) + 1aa0: 1004d13a srli r2,r2,4 + 1aa4: 108003cc andi r2,r2,15 + 1aa8: 11403fcc andi r5,r2,255 + 1aac: 0001ce00 call 1ce0 + break; + 1ab0: 00004506 br 1bc8 + case INST_DELAY: + inst_delay(inst_rec.regi, inst_rec.memi); + 1ab4: e0bffe17 ldw r2,-8(fp) + 1ab8: 1004d23a srli r2,r2,8 + 1abc: 108003cc andi r2,r2,15 + 1ac0: 11003fcc andi r4,r2,255 + 1ac4: e0bffe17 ldw r2,-8(fp) + 1ac8: 1004d13a srli r2,r2,4 + 1acc: 108003cc andi r2,r2,15 + 1ad0: 11403fcc andi r5,r2,255 + 1ad4: 0001d180 call 1d18 + break; + 1ad8: 00003b06 br 1bc8 + case INST_ADD: + inst_add(inst_rec.regi, inst_rec.memi); + 1adc: e0bffe17 ldw r2,-8(fp) + 1ae0: 1004d23a srli r2,r2,8 + 1ae4: 108003cc andi r2,r2,15 + 1ae8: 11003fcc andi r4,r2,255 + 1aec: e0bffe17 ldw r2,-8(fp) + 1af0: 1004d13a srli r2,r2,4 + 1af4: 108003cc andi r2,r2,15 + 1af8: 11403fcc andi r5,r2,255 + 1afc: 0001d740 call 1d74 + break; + 1b00: 00003106 br 1bc8 + case INST_COMP: + inst_comp(inst_rec.regi, inst_rec.memi); + 1b04: e0bffe17 ldw r2,-8(fp) + 1b08: 1004d23a srli r2,r2,8 + 1b0c: 108003cc andi r2,r2,15 + 1b10: 11003fcc andi r4,r2,255 + 1b14: e0bffe17 ldw r2,-8(fp) + 1b18: 1004d13a srli r2,r2,4 + 1b1c: 108003cc andi r2,r2,15 + 1b20: 11403fcc andi r5,r2,255 + 1b24: 0001dd00 call 1dd0 + break; + 1b28: 00002706 br 1bc8 + case INST_JEQ: + inst_jeq(inst_rec.regi, inst_rec.memi); + 1b2c: e0bffe17 ldw r2,-8(fp) + 1b30: 1004d23a srli r2,r2,8 + 1b34: 108003cc andi r2,r2,15 + 1b38: 11003fcc andi r4,r2,255 + 1b3c: e0bffe17 ldw r2,-8(fp) + 1b40: 1004d13a srli r2,r2,4 + 1b44: 108003cc andi r2,r2,15 + 1b48: 11403fcc andi r5,r2,255 + 1b4c: 0001ea00 call 1ea0 + break; + 1b50: 00001d06 br 1bc8 + case INST_JNE: + inst_jne(inst_rec.regi, inst_rec.memi); + 1b54: e0bffe17 ldw r2,-8(fp) + 1b58: 1004d23a srli r2,r2,8 + 1b5c: 108003cc andi r2,r2,15 + 1b60: 11003fcc andi r4,r2,255 + 1b64: e0bffe17 ldw r2,-8(fp) + 1b68: 1004d13a srli r2,r2,4 + 1b6c: 108003cc andi r2,r2,15 + 1b70: 11403fcc andi r5,r2,255 + 1b74: 0001f0c0 call 1f0c + break; + 1b78: 00001306 br 1bc8 + case INST_JIEQ: + inst_jieq(inst_rec.regi, inst_rec.memi); + 1b7c: e0bffe17 ldw r2,-8(fp) + 1b80: 1004d23a srli r2,r2,8 + 1b84: 108003cc andi r2,r2,15 + 1b88: 11003fcc andi r4,r2,255 + 1b8c: e0bffe17 ldw r2,-8(fp) + 1b90: 1004d13a srli r2,r2,4 + 1b94: 108003cc andi r2,r2,15 + 1b98: 11403fcc andi r5,r2,255 + 1b9c: 0001f780 call 1f78 + break; + 1ba0: 00000906 br 1bc8 + case INST_JINE: + inst_jine(inst_rec.regi, inst_rec.memi); + 1ba4: e0bffe17 ldw r2,-8(fp) + 1ba8: 1004d23a srli r2,r2,8 + 1bac: 108003cc andi r2,r2,15 + 1bb0: 11003fcc andi r4,r2,255 + 1bb4: e0bffe17 ldw r2,-8(fp) + 1bb8: 1004d13a srli r2,r2,4 + 1bbc: 108003cc andi r2,r2,15 + 1bc0: 11403fcc andi r5,r2,255 + 1bc4: 0001fc80 call 1fc8 + break; + } +} + 1bc8: e037883a mov sp,fp + 1bcc: dfc00117 ldw ra,4(sp) + 1bd0: df000017 ldw fp,0(sp) + 1bd4: dec00204 addi sp,sp,8 + 1bd8: f800283a ret + +00001bdc : + +void inst_jump(enum Register reg, unsigned char memory_index){ + 1bdc: defffc04 addi sp,sp,-16 + 1be0: dfc00315 stw ra,12(sp) + 1be4: df000215 stw fp,8(sp) + 1be8: df000204 addi fp,sp,8 + 1bec: e13ffe15 stw r4,-8(fp) + 1bf0: e17fff05 stb r5,-4(fp) + set_pc(global_registers[reg]+memory_index); + 1bf4: e0fffe17 ldw r3,-8(fp) + 1bf8: 00800074 movhi r2,1 + 1bfc: 10908d04 addi r2,r2,16948 + 1c00: 10c5883a add r2,r2,r3 + 1c04: 10800003 ldbu r2,0(r2) + 1c08: 10c03fcc andi r3,r2,255 + 1c0c: 18c0201c xori r3,r3,128 + 1c10: 18ffe004 addi r3,r3,-128 + 1c14: e0bfff03 ldbu r2,-4(fp) + 1c18: 1885883a add r2,r3,r2 + 1c1c: 1009883a mov r4,r2 + 1c20: 00029580 call 2958 +} + 1c24: e037883a mov sp,fp + 1c28: dfc00117 ldw ra,4(sp) + 1c2c: df000017 ldw fp,0(sp) + 1c30: dec00204 addi sp,sp,8 + 1c34: f800283a ret + +00001c38 : +void inst_output(enum Register reg, unsigned char memory_index){ + 1c38: defffa04 addi sp,sp,-24 + 1c3c: dfc00515 stw ra,20(sp) + 1c40: df000415 stw fp,16(sp) + 1c44: df000404 addi fp,sp,16 + 1c48: e13ffe15 stw r4,-8(fp) + 1c4c: e17fff05 stb r5,-4(fp) + //�������̒l��7�Z�O�ɕ\�� + char buf[5]; + memory_load(memory_index, Sseg); + 1c50: e13fff03 ldbu r4,-4(fp) + 1c54: 01400384 movi r5,14 + 1c58: 00027f40 call 27f4 + sprintf(buf, "%04d", global_registers[Sseg]); + 1c5c: 00800074 movhi r2,1 + 1c60: 10908d04 addi r2,r2,16948 + 1c64: 10800383 ldbu r2,14(r2) + 1c68: 11803fcc andi r6,r2,255 + 1c6c: 3180201c xori r6,r6,128 + 1c70: 31bfe004 addi r6,r6,-128 + 1c74: e13ffc04 addi r4,fp,-16 + 1c78: 01400074 movhi r5,1 + 1c7c: 297fe504 addi r5,r5,-108 + 1c80: 0002b640 call 2b64 + print_block(buf, 4, HEX0_3); + 1c84: e13ffc04 addi r4,fp,-16 + 1c88: 01400104 movi r5,4 + 1c8c: 000d883a mov r6,zero + 1c90: 000136c0 call 136c +} + 1c94: e037883a mov sp,fp + 1c98: dfc00117 ldw ra,4(sp) + 1c9c: df000017 ldw fp,0(sp) + 1ca0: dec00204 addi sp,sp,8 + 1ca4: f800283a ret + +00001ca8 : +void inst_load(enum Register reg, unsigned char memory_index){ + 1ca8: defffc04 addi sp,sp,-16 + 1cac: dfc00315 stw ra,12(sp) + 1cb0: df000215 stw fp,8(sp) + 1cb4: df000204 addi fp,sp,8 + 1cb8: e13ffe15 stw r4,-8(fp) + 1cbc: e17fff05 stb r5,-4(fp) + memory_load(memory_index, reg); + 1cc0: e13fff03 ldbu r4,-4(fp) + 1cc4: e17ffe17 ldw r5,-8(fp) + 1cc8: 00027f40 call 27f4 +} + 1ccc: e037883a mov sp,fp + 1cd0: dfc00117 ldw ra,4(sp) + 1cd4: df000017 ldw fp,0(sp) + 1cd8: dec00204 addi sp,sp,8 + 1cdc: f800283a ret + +00001ce0 : +void inst_store(enum Register reg, unsigned char memory_index){ + 1ce0: defffc04 addi sp,sp,-16 + 1ce4: dfc00315 stw ra,12(sp) + 1ce8: df000215 stw fp,8(sp) + 1cec: df000204 addi fp,sp,8 + 1cf0: e13ffe15 stw r4,-8(fp) + 1cf4: e17fff05 stb r5,-4(fp) + memory_store(memory_index, reg); + 1cf8: e13fff03 ldbu r4,-4(fp) + 1cfc: e17ffe17 ldw r5,-8(fp) + 1d00: 00027580 call 2758 +} + 1d04: e037883a mov sp,fp + 1d08: dfc00117 ldw ra,4(sp) + 1d0c: df000017 ldw fp,0(sp) + 1d10: dec00204 addi sp,sp,8 + 1d14: f800283a ret + +00001d18 : +void inst_delay(enum Register reg, unsigned char memory_index){ + 1d18: defffc04 addi sp,sp,-16 + 1d1c: dfc00315 stw ra,12(sp) + 1d20: df000215 stw fp,8(sp) + 1d24: df000204 addi fp,sp,8 + 1d28: e13ffe15 stw r4,-8(fp) + 1d2c: e17fff05 stb r5,-4(fp) + //���W�X�^�̒l*10ms�҂� + usleep((int)global_registers[reg]*10000); + 1d30: e0fffe17 ldw r3,-8(fp) + 1d34: 00800074 movhi r2,1 + 1d38: 10908d04 addi r2,r2,16948 + 1d3c: 10c5883a add r2,r2,r3 + 1d40: 10800003 ldbu r2,0(r2) + 1d44: 11003fcc andi r4,r2,255 + 1d48: 2100201c xori r4,r4,128 + 1d4c: 213fe004 addi r4,r4,-128 + 1d50: 0149c404 movi r5,10000 + 1d54: 0002b2c0 call 2b2c <__mulsi3> + 1d58: 1009883a mov r4,r2 + 1d5c: 000cd800 call cd80 +} + 1d60: e037883a mov sp,fp + 1d64: dfc00117 ldw ra,4(sp) + 1d68: df000017 ldw fp,0(sp) + 1d6c: dec00204 addi sp,sp,8 + 1d70: f800283a ret + +00001d74 : +void inst_add(enum Register reg, unsigned char memory_index){ + 1d74: defffd04 addi sp,sp,-12 + 1d78: df000215 stw fp,8(sp) + 1d7c: df000204 addi fp,sp,8 + 1d80: e13ffe15 stw r4,-8(fp) + 1d84: e17fff05 stb r5,-4(fp) + global_registers[Sacc]+=global_registers[reg]; + 1d88: 00800074 movhi r2,1 + 1d8c: 10908d04 addi r2,r2,16948 + 1d90: 10800143 ldbu r2,5(r2) + 1d94: 1009883a mov r4,r2 + 1d98: e0fffe17 ldw r3,-8(fp) + 1d9c: 00800074 movhi r2,1 + 1da0: 10908d04 addi r2,r2,16948 + 1da4: 10c5883a add r2,r2,r3 + 1da8: 10800003 ldbu r2,0(r2) + 1dac: 2085883a add r2,r4,r2 + 1db0: 1007883a mov r3,r2 + 1db4: 00800074 movhi r2,1 + 1db8: 10908d04 addi r2,r2,16948 + 1dbc: 10c00145 stb r3,5(r2) +} + 1dc0: e037883a mov sp,fp + 1dc4: df000017 ldw fp,0(sp) + 1dc8: dec00104 addi sp,sp,4 + 1dcc: f800283a ret + +00001dd0 : +void inst_comp(enum Register reg, unsigned char memory_index){ + 1dd0: defffd04 addi sp,sp,-12 + 1dd4: df000215 stw fp,8(sp) + 1dd8: df000204 addi fp,sp,8 + 1ddc: e13ffe15 stw r4,-8(fp) + 1de0: e17fff05 stb r5,-4(fp) + if(global_registers[Sacc]==global_registers[reg]){ + 1de4: 00800074 movhi r2,1 + 1de8: 10908d04 addi r2,r2,16948 + 1dec: 11000143 ldbu r4,5(r2) + 1df0: e0fffe17 ldw r3,-8(fp) + 1df4: 00800074 movhi r2,1 + 1df8: 10908d04 addi r2,r2,16948 + 1dfc: 10c5883a add r2,r2,r3 + 1e00: 10800003 ldbu r2,0(r2) + 1e04: 20c03fcc andi r3,r4,255 + 1e08: 18c0201c xori r3,r3,128 + 1e0c: 18ffe004 addi r3,r3,-128 + 1e10: 10803fcc andi r2,r2,255 + 1e14: 1080201c xori r2,r2,128 + 1e18: 10bfe004 addi r2,r2,-128 + 1e1c: 1880041e bne r3,r2,1e30 + global_registers[Sflg]=0; + 1e20: 00800074 movhi r2,1 + 1e24: 10908d04 addi r2,r2,16948 + 1e28: 10000185 stb zero,6(r2) + 1e2c: 00001806 br 1e90 + } else if(global_registers[Sacc] > global_registers[reg]){ + 1e30: 00800074 movhi r2,1 + 1e34: 10908d04 addi r2,r2,16948 + 1e38: 11000143 ldbu r4,5(r2) + 1e3c: e0fffe17 ldw r3,-8(fp) + 1e40: 00800074 movhi r2,1 + 1e44: 10908d04 addi r2,r2,16948 + 1e48: 10c5883a add r2,r2,r3 + 1e4c: 10800003 ldbu r2,0(r2) + 1e50: 20c03fcc andi r3,r4,255 + 1e54: 18c0201c xori r3,r3,128 + 1e58: 18ffe004 addi r3,r3,-128 + 1e5c: 10803fcc andi r2,r2,255 + 1e60: 1080201c xori r2,r2,128 + 1e64: 10bfe004 addi r2,r2,-128 + 1e68: 10c0050e bge r2,r3,1e80 + global_registers[Sflg]=-1; + 1e6c: 00c00074 movhi r3,1 + 1e70: 18d08d04 addi r3,r3,16948 + 1e74: 00bfffc4 movi r2,-1 + 1e78: 18800185 stb r2,6(r3) + 1e7c: 00000406 br 1e90 + }else{ + global_registers[Sflg]=1; + 1e80: 00c00074 movhi r3,1 + 1e84: 18d08d04 addi r3,r3,16948 + 1e88: 00800044 movi r2,1 + 1e8c: 18800185 stb r2,6(r3) + } +} + 1e90: e037883a mov sp,fp + 1e94: df000017 ldw fp,0(sp) + 1e98: dec00104 addi sp,sp,4 + 1e9c: f800283a ret + +00001ea0 : +void inst_jeq(enum Register reg, unsigned char memory_index){ + 1ea0: defffc04 addi sp,sp,-16 + 1ea4: dfc00315 stw ra,12(sp) + 1ea8: df000215 stw fp,8(sp) + 1eac: df000204 addi fp,sp,8 + 1eb0: e13ffe15 stw r4,-8(fp) + 1eb4: e17fff05 stb r5,-4(fp) + if(global_registers[Sflg]==global_registers[reg]){ + 1eb8: 00800074 movhi r2,1 + 1ebc: 10908d04 addi r2,r2,16948 + 1ec0: 11000183 ldbu r4,6(r2) + 1ec4: e0fffe17 ldw r3,-8(fp) + 1ec8: 00800074 movhi r2,1 + 1ecc: 10908d04 addi r2,r2,16948 + 1ed0: 10c5883a add r2,r2,r3 + 1ed4: 10800003 ldbu r2,0(r2) + 1ed8: 20c03fcc andi r3,r4,255 + 1edc: 18c0201c xori r3,r3,128 + 1ee0: 18ffe004 addi r3,r3,-128 + 1ee4: 10803fcc andi r2,r2,255 + 1ee8: 1080201c xori r2,r2,128 + 1eec: 10bfe004 addi r2,r2,-128 + 1ef0: 1880011e bne r3,r2,1ef8 + inc_pc(); + 1ef4: 00028840 call 2884 + } +} + 1ef8: e037883a mov sp,fp + 1efc: dfc00117 ldw ra,4(sp) + 1f00: df000017 ldw fp,0(sp) + 1f04: dec00204 addi sp,sp,8 + 1f08: f800283a ret + +00001f0c : +void inst_jne(enum Register reg, unsigned char memory_index){ + 1f0c: defffc04 addi sp,sp,-16 + 1f10: dfc00315 stw ra,12(sp) + 1f14: df000215 stw fp,8(sp) + 1f18: df000204 addi fp,sp,8 + 1f1c: e13ffe15 stw r4,-8(fp) + 1f20: e17fff05 stb r5,-4(fp) + if(global_registers[Sflg]!=global_registers[reg]){ + 1f24: 00800074 movhi r2,1 + 1f28: 10908d04 addi r2,r2,16948 + 1f2c: 11000183 ldbu r4,6(r2) + 1f30: e0fffe17 ldw r3,-8(fp) + 1f34: 00800074 movhi r2,1 + 1f38: 10908d04 addi r2,r2,16948 + 1f3c: 10c5883a add r2,r2,r3 + 1f40: 10800003 ldbu r2,0(r2) + 1f44: 20c03fcc andi r3,r4,255 + 1f48: 18c0201c xori r3,r3,128 + 1f4c: 18ffe004 addi r3,r3,-128 + 1f50: 10803fcc andi r2,r2,255 + 1f54: 1080201c xori r2,r2,128 + 1f58: 10bfe004 addi r2,r2,-128 + 1f5c: 18800126 beq r3,r2,1f64 + inc_pc(); + 1f60: 00028840 call 2884 + } +} + 1f64: e037883a mov sp,fp + 1f68: dfc00117 ldw ra,4(sp) + 1f6c: df000017 ldw fp,0(sp) + 1f70: dec00204 addi sp,sp,8 + 1f74: f800283a ret + +00001f78 : +void inst_jieq(char im, unsigned char memory_index){ + 1f78: defffc04 addi sp,sp,-16 + 1f7c: dfc00315 stw ra,12(sp) + 1f80: df000215 stw fp,8(sp) + 1f84: df000204 addi fp,sp,8 + 1f88: e13ffe05 stb r4,-8(fp) + 1f8c: e17fff05 stb r5,-4(fp) + if(global_registers[Sflg]==im){ + 1f90: 00800074 movhi r2,1 + 1f94: 10908d04 addi r2,r2,16948 + 1f98: 10800183 ldbu r2,6(r2) + 1f9c: 10c03fcc andi r3,r2,255 + 1fa0: 18c0201c xori r3,r3,128 + 1fa4: 18ffe004 addi r3,r3,-128 + 1fa8: e0bffe07 ldb r2,-8(fp) + 1fac: 1880011e bne r3,r2,1fb4 + inc_pc(); + 1fb0: 00028840 call 2884 + } +} + 1fb4: e037883a mov sp,fp + 1fb8: dfc00117 ldw ra,4(sp) + 1fbc: df000017 ldw fp,0(sp) + 1fc0: dec00204 addi sp,sp,8 + 1fc4: f800283a ret + +00001fc8 : +void inst_jine(char im, unsigned char memory_index){ + 1fc8: defffc04 addi sp,sp,-16 + 1fcc: dfc00315 stw ra,12(sp) + 1fd0: df000215 stw fp,8(sp) + 1fd4: df000204 addi fp,sp,8 + 1fd8: e13ffe05 stb r4,-8(fp) + 1fdc: e17fff05 stb r5,-4(fp) + if(global_registers[Sflg]!=im){ + 1fe0: 00800074 movhi r2,1 + 1fe4: 10908d04 addi r2,r2,16948 + 1fe8: 10800183 ldbu r2,6(r2) + 1fec: 10c03fcc andi r3,r2,255 + 1ff0: 18c0201c xori r3,r3,128 + 1ff4: 18ffe004 addi r3,r3,-128 + 1ff8: e0bffe07 ldb r2,-8(fp) + 1ffc: 18800126 beq r3,r2,2004 + inc_pc(); + 2000: 00028840 call 2884 + } +} + 2004: e037883a mov sp,fp + 2008: dfc00117 ldw ra,4(sp) + 200c: df000017 ldw fp,0(sp) + 2010: dec00204 addi sp,sp,8 + 2014: f800283a ret + +00002018 : +#include +#include "system.h" +#include "LCD.h" + +// LCD�̏����� +void lcd_init() { + 2018: defffe04 addi sp,sp,-8 + 201c: dfc00115 stw ra,4(sp) + 2020: df000015 stw fp,0(sp) + 2024: d839883a mov fp,sp + *lcd_on = 1; + 2028: 00c00134 movhi r3,4 + 202c: 18c40404 addi r3,r3,4112 + 2030: 00800044 movi r2,1 + 2034: 18800005 stb r2,0(r3) + *lcd_blon = 1; + 2038: 00c00134 movhi r3,4 + 203c: 18c40804 addi r3,r3,4128 + 2040: 00800044 movi r2,1 + 2044: 18800005 stb r2,0(r3) + LCD_Init(); + 2048: 00001f00 call 1f0 +} + 204c: e037883a mov sp,fp + 2050: dfc00117 ldw ra,4(sp) + 2054: df000017 ldw fp,0(sp) + 2058: dec00204 addi sp,sp,8 + 205c: f800283a ret + +00002060 : + +// LCD�̃L�����b�g���P�s�ڂ̂͂��߂Ɉړ����� +void lcd_caret_reset() { + 2060: defffe04 addi sp,sp,-8 + 2064: dfc00115 stw ra,4(sp) + 2068: df000015 stw fp,0(sp) + 206c: d839883a mov fp,sp + LCD_Init(); + 2070: 00001f00 call 1f0 +} + 2074: e037883a mov sp,fp + 2078: dfc00117 ldw ra,4(sp) + 207c: df000017 ldw fp,0(sp) + 2080: dec00204 addi sp,sp,8 + 2084: f800283a ret + +00002088 : + +// LCD�̃L�����b�g���Q�s�ڂ̂͂��߂Ɉړ����� +void lcd_caret_reset2() { + 2088: defffe04 addi sp,sp,-8 + 208c: dfc00115 stw ra,4(sp) + 2090: df000015 stw fp,0(sp) + 2094: d839883a mov fp,sp + LCD_Line2(); + 2098: 00003140 call 314 +} + 209c: e037883a mov sp,fp + 20a0: dfc00117 ldw ra,4(sp) + 20a4: df000017 ldw fp,0(sp) + 20a8: dec00204 addi sp,sp,8 + 20ac: f800283a ret + +000020b0 : + +// LCD�ɕ�����\������ +void lcd_print(const char *str) { + 20b0: defffd04 addi sp,sp,-12 + 20b4: dfc00215 stw ra,8(sp) + 20b8: df000115 stw fp,4(sp) + 20bc: df000104 addi fp,sp,4 + 20c0: e13fff15 stw r4,-4(fp) + LCD_Show_Text(str); + 20c4: e13fff17 ldw r4,-4(fp) + 20c8: 000028c0 call 28c +} + 20cc: e037883a mov sp,fp + 20d0: dfc00117 ldw ra,4(sp) + 20d4: df000017 ldw fp,0(sp) + 20d8: dec00204 addi sp,sp,8 + 20dc: f800283a ret + +000020e0 : + +#include "sys_debug.h" +#include +#include "lcd_out.h" + +void display_inst(struct InstRec inst, unsigned int pc) { + 20e0: defff504 addi sp,sp,-44 + 20e4: dfc00a15 stw ra,40(sp) + 20e8: df000915 stw fp,36(sp) + 20ec: df000904 addi fp,sp,36 + 20f0: e13ffe15 stw r4,-8(fp) + 20f4: e17fff15 stw r5,-4(fp) + char inst_name[INST_NAME_ARRAY_LEN]; // ���ߖ� + char reg_name[REG_NAME_ARRAY_LEN]; // ���W�X�^�� + char buf[17]; + + // ���߂̖��O�̎擾 + convertInstName(inst_name, inst.inst); + 20f8: e0bffe17 ldw r2,-8(fp) + 20fc: 108003cc andi r2,r2,15 + 2100: 11403fcc andi r5,r2,255 + 2104: e13ff704 addi r4,fp,-36 + 2108: 00023680 call 2368 + // ���W�X�^�̖��O�̎擾 + convertRegName(reg_name, inst.regi); + 210c: e0bffe17 ldw r2,-8(fp) + 2110: 1004d23a srli r2,r2,8 + 2114: 108003cc andi r2,r2,15 + 2118: 11403fcc andi r5,r2,255 + 211c: e13ff844 addi r4,fp,-31 + 2120: 00021f80 call 21f8 + + lcd_caret_reset(); + 2124: 00020600 call 2060 + sprintf(buf, "PC:0x%02x -> %4s",pc,inst_name); + 2128: e13ff944 addi r4,fp,-27 + 212c: 01400074 movhi r5,1 + 2130: 297fe704 addi r5,r5,-100 + 2134: e1bfff17 ldw r6,-4(fp) + 2138: e1fff704 addi r7,fp,-36 + 213c: 0002b640 call 2b64 + lcd_print(buf); + 2140: e13ff944 addi r4,fp,-27 + 2144: 00020b00 call 20b0 + lcd_caret_reset2(); + 2148: 00020880 call 2088 + sprintf(buf, "REG:%3s,MEM:0x%1x",reg_name,inst.memi); + 214c: e0bffe17 ldw r2,-8(fp) + 2150: 1004d13a srli r2,r2,4 + 2154: 108003cc andi r2,r2,15 + 2158: 11c03fcc andi r7,r2,255 + 215c: e13ff944 addi r4,fp,-27 + 2160: e1bff844 addi r6,fp,-31 + 2164: 01400074 movhi r5,1 + 2168: 297fec04 addi r5,r5,-80 + 216c: 0002b640 call 2b64 + lcd_print(buf); + 2170: e13ff944 addi r4,fp,-27 + 2174: 00020b00 call 20b0 +} + 2178: e037883a mov sp,fp + 217c: dfc00117 ldw ra,4(sp) + 2180: df000017 ldw fp,0(sp) + 2184: dec00204 addi sp,sp,8 + 2188: f800283a ret + +0000218c : + +void display_mem(unsigned char memi, char memv) { + 218c: defff704 addi sp,sp,-36 + 2190: dfc00815 stw ra,32(sp) + 2194: df000715 stw fp,28(sp) + 2198: df000704 addi fp,sp,28 + 219c: e13ffe05 stb r4,-8(fp) + 21a0: e17fff05 stb r5,-4(fp) + char buf[17]; + + lcd_caret_reset(); + 21a4: 00020600 call 2060 + sprintf(buf, "MEM:0x%1x",memi); + 21a8: e1bffe03 ldbu r6,-8(fp) + 21ac: e13ff904 addi r4,fp,-28 + 21b0: 01400074 movhi r5,1 + 21b4: 297ff104 addi r5,r5,-60 + 21b8: 0002b640 call 2b64 + lcd_print(buf); + 21bc: e13ff904 addi r4,fp,-28 + 21c0: 00020b00 call 20b0 + lcd_caret_reset2(); + 21c4: 00020880 call 2088 + sprintf(buf, "value:%d",memv); + 21c8: e1bfff07 ldb r6,-4(fp) + 21cc: e13ff904 addi r4,fp,-28 + 21d0: 01400074 movhi r5,1 + 21d4: 297ff404 addi r5,r5,-48 + 21d8: 0002b640 call 2b64 + lcd_print(buf); + 21dc: e13ff904 addi r4,fp,-28 + 21e0: 00020b00 call 20b0 +} + 21e4: e037883a mov sp,fp + 21e8: dfc00117 ldw ra,4(sp) + 21ec: df000017 ldw fp,0(sp) + 21f0: dec00204 addi sp,sp,8 + 21f4: f800283a ret + +000021f8 : + +void convertRegName(char reg_name[REG_NAME_ARRAY_LEN], enum Register reg_code) { + 21f8: defffd04 addi sp,sp,-12 + 21fc: df000215 stw fp,8(sp) + 2200: df000204 addi fp,sp,8 + 2204: e13ffe15 stw r4,-8(fp) + 2208: e17fff15 stw r5,-4(fp) + switch(reg_code) { + 220c: e0bfff17 ldw r2,-4(fp) + 2210: 108001e8 cmpgeui r2,r2,7 + 2214: 1000481e bne r2,zero,2338 + 2218: e0bfff17 ldw r2,-4(fp) + 221c: 1085883a add r2,r2,r2 + 2220: 1087883a add r3,r2,r2 + 2224: 00800034 movhi r2,0 + 2228: 10888e04 addi r2,r2,8760 + 222c: 1885883a add r2,r3,r2 + 2230: 10800017 ldw r2,0(r2) + 2234: 1000683a jmp r2 + 2238: 00002254 movui zero,137 + 223c: 00002270 cmpltui zero,zero,137 + 2240: 0000228c andi zero,zero,138 + 2244: 000022a8 cmpgeui zero,zero,138 + 2248: 000022cc andi zero,zero,139 + 224c: 000022f0 cmpltui zero,zero,139 + 2250: 00002314 movui zero,140 + case Szero: + sprintf(reg_name, STRING_REG_ZERO); + 2254: e0bffe17 ldw r2,-8(fp) + 2258: 00c01684 movi r3,90 + 225c: 10c00005 stb r3,0(r2) + 2260: 00c01144 movi r3,69 + 2264: 10c00045 stb r3,1(r2) + 2268: 10000085 stb zero,2(r2) + break; + 226c: 00003a06 br 2358 + case Spc: + sprintf(reg_name, STRING_REG_PC); + 2270: e0bffe17 ldw r2,-8(fp) + 2274: 00c01404 movi r3,80 + 2278: 10c00005 stb r3,0(r2) + 227c: 00c010c4 movi r3,67 + 2280: 10c00045 stb r3,1(r2) + 2284: 10000085 stb zero,2(r2) + break; + 2288: 00003306 br 2358 + case Ssp: + sprintf(reg_name, STRING_REG_SP); + 228c: e0bffe17 ldw r2,-8(fp) + 2290: 00c014c4 movi r3,83 + 2294: 10c00005 stb r3,0(r2) + 2298: 00c01404 movi r3,80 + 229c: 10c00045 stb r3,1(r2) + 22a0: 10000085 stb zero,2(r2) + break; + 22a4: 00002c06 br 2358 + case Sgp0: + sprintf(reg_name, STRING_REG_GP0); + 22a8: e0fffe17 ldw r3,-8(fp) + 22ac: 008011c4 movi r2,71 + 22b0: 18800005 stb r2,0(r3) + 22b4: 00801404 movi r2,80 + 22b8: 18800045 stb r2,1(r3) + 22bc: 00800c04 movi r2,48 + 22c0: 18800085 stb r2,2(r3) + 22c4: 180000c5 stb zero,3(r3) + break; + 22c8: 00002306 br 2358 + case Sgp1: + sprintf(reg_name, STRING_REG_GP1); + 22cc: e0fffe17 ldw r3,-8(fp) + 22d0: 008011c4 movi r2,71 + 22d4: 18800005 stb r2,0(r3) + 22d8: 00801404 movi r2,80 + 22dc: 18800045 stb r2,1(r3) + 22e0: 00800c44 movi r2,49 + 22e4: 18800085 stb r2,2(r3) + 22e8: 180000c5 stb zero,3(r3) + break; + 22ec: 00001a06 br 2358 + case Sacc: + sprintf(reg_name, STRING_REG_ACC); + 22f0: e0fffe17 ldw r3,-8(fp) + 22f4: 00801044 movi r2,65 + 22f8: 18800005 stb r2,0(r3) + 22fc: 008010c4 movi r2,67 + 2300: 18800045 stb r2,1(r3) + 2304: 008010c4 movi r2,67 + 2308: 18800085 stb r2,2(r3) + 230c: 180000c5 stb zero,3(r3) + break; + 2310: 00001106 br 2358 + case Sflg: + sprintf(reg_name, STRING_REG_FLG); + 2314: e0fffe17 ldw r3,-8(fp) + 2318: 00801184 movi r2,70 + 231c: 18800005 stb r2,0(r3) + 2320: 00801304 movi r2,76 + 2324: 18800045 stb r2,1(r3) + 2328: 008011c4 movi r2,71 + 232c: 18800085 stb r2,2(r3) + 2330: 180000c5 stb zero,3(r3) + break; + 2334: 00000806 br 2358 + default: + sprintf(reg_name, "non"); + 2338: e0fffe17 ldw r3,-8(fp) + 233c: 00801b84 movi r2,110 + 2340: 18800005 stb r2,0(r3) + 2344: 00801bc4 movi r2,111 + 2348: 18800045 stb r2,1(r3) + 234c: 00801b84 movi r2,110 + 2350: 18800085 stb r2,2(r3) + 2354: 180000c5 stb zero,3(r3) + break; + } +} + 2358: e037883a mov sp,fp + 235c: df000017 ldw fp,0(sp) + 2360: dec00104 addi sp,sp,4 + 2364: f800283a ret + +00002368 : + + +void convertInstName(char inst_name[INST_NAME_ARRAY_LEN], unsigned char inst_code) { + 2368: defffc04 addi sp,sp,-16 + 236c: df000315 stw fp,12(sp) + 2370: df000304 addi fp,sp,12 + 2374: e13ffd15 stw r4,-12(fp) + 2378: e17ffe05 stb r5,-8(fp) + switch(inst_code) { + 237c: e0bffe03 ldbu r2,-8(fp) + 2380: e0bfff15 stw r2,-4(fp) + 2384: e0ffff17 ldw r3,-4(fp) + 2388: 18800328 cmpgeui r2,r3,12 + 238c: 10008f1e bne r2,zero,25cc + 2390: e13fff17 ldw r4,-4(fp) + 2394: e13fff17 ldw r4,-4(fp) + 2398: 2105883a add r2,r4,r4 + 239c: 1087883a add r3,r2,r2 + 23a0: 00800034 movhi r2,0 + 23a4: 1088ed04 addi r2,r2,9140 + 23a8: 1885883a add r2,r3,r2 + 23ac: 10800017 ldw r2,0(r2) + 23b0: 1000683a jmp r2 + 23b4: 000023e4 muli zero,zero,143 + 23b8: 00002408 cmpgei zero,zero,144 + 23bc: 00002434 movhi zero,144 + 23c0: 00002458 cmpnei zero,zero,145 + 23c4: 00002484 movi zero,146 + 23c8: 000024b0 cmpltui zero,zero,146 + 23cc: 000024dc xori zero,zero,147 + 23d0: 00002500 call 250 + 23d4: 0000252c andhi zero,zero,148 + 23d8: 00002550 cmplti zero,zero,149 + 23dc: 00002574 movhi zero,149 + 23e0: 000025a0 cmpeqi zero,zero,150 + case INST_END: + sprintf(inst_name, STRING_INST_END); + 23e4: e0fffd17 ldw r3,-12(fp) + 23e8: 00801144 movi r2,69 + 23ec: 18800005 stb r2,0(r3) + 23f0: 00801384 movi r2,78 + 23f4: 18800045 stb r2,1(r3) + 23f8: 00801104 movi r2,68 + 23fc: 18800085 stb r2,2(r3) + 2400: 180000c5 stb zero,3(r3) + break; + 2404: 00007b06 br 25f4 + case INST_JUMP: + sprintf(inst_name, STRING_INST_JUMP); + 2408: e0fffd17 ldw r3,-12(fp) + 240c: 00801284 movi r2,74 + 2410: 18800005 stb r2,0(r3) + 2414: 00801544 movi r2,85 + 2418: 18800045 stb r2,1(r3) + 241c: 00801344 movi r2,77 + 2420: 18800085 stb r2,2(r3) + 2424: 00801404 movi r2,80 + 2428: 188000c5 stb r2,3(r3) + 242c: 18000105 stb zero,4(r3) + break; + 2430: 00007006 br 25f4 + case INST_OUTPUT: + sprintf(inst_name, STRING_INST_OUTPUT); + 2434: e0fffd17 ldw r3,-12(fp) + 2438: 008013c4 movi r2,79 + 243c: 18800005 stb r2,0(r3) + 2440: 00801544 movi r2,85 + 2444: 18800045 stb r2,1(r3) + 2448: 00801504 movi r2,84 + 244c: 18800085 stb r2,2(r3) + 2450: 180000c5 stb zero,3(r3) + break; + 2454: 00006706 br 25f4 + case INST_LOAD: + sprintf(inst_name, STRING_INST_LOAD); + 2458: e0fffd17 ldw r3,-12(fp) + 245c: 00801304 movi r2,76 + 2460: 18800005 stb r2,0(r3) + 2464: 008013c4 movi r2,79 + 2468: 18800045 stb r2,1(r3) + 246c: 00801044 movi r2,65 + 2470: 18800085 stb r2,2(r3) + 2474: 00801104 movi r2,68 + 2478: 188000c5 stb r2,3(r3) + 247c: 18000105 stb zero,4(r3) + break; + 2480: 00005c06 br 25f4 + case INST_STORE: + sprintf(inst_name, STRING_INST_STORE); + 2484: e0fffd17 ldw r3,-12(fp) + 2488: 008014c4 movi r2,83 + 248c: 18800005 stb r2,0(r3) + 2490: 00801504 movi r2,84 + 2494: 18800045 stb r2,1(r3) + 2498: 008013c4 movi r2,79 + 249c: 18800085 stb r2,2(r3) + 24a0: 00801484 movi r2,82 + 24a4: 188000c5 stb r2,3(r3) + 24a8: 18000105 stb zero,4(r3) + break; + 24ac: 00005106 br 25f4 + case INST_DELAY: + sprintf(inst_name, STRING_INST_DELAY); + 24b0: e0fffd17 ldw r3,-12(fp) + 24b4: 00801104 movi r2,68 + 24b8: 18800005 stb r2,0(r3) + 24bc: 00801144 movi r2,69 + 24c0: 18800045 stb r2,1(r3) + 24c4: 00801304 movi r2,76 + 24c8: 18800085 stb r2,2(r3) + 24cc: 00801644 movi r2,89 + 24d0: 188000c5 stb r2,3(r3) + 24d4: 18000105 stb zero,4(r3) + break; + 24d8: 00004606 br 25f4 + case INST_ADD: + sprintf(inst_name, STRING_INST_ADD); + 24dc: e0fffd17 ldw r3,-12(fp) + 24e0: 00801044 movi r2,65 + 24e4: 18800005 stb r2,0(r3) + 24e8: 00801104 movi r2,68 + 24ec: 18800045 stb r2,1(r3) + 24f0: 00801104 movi r2,68 + 24f4: 18800085 stb r2,2(r3) + 24f8: 180000c5 stb zero,3(r3) + break; + 24fc: 00003d06 br 25f4 + case INST_COMP: + sprintf(inst_name, STRING_INST_COMP); + 2500: e0fffd17 ldw r3,-12(fp) + 2504: 008010c4 movi r2,67 + 2508: 18800005 stb r2,0(r3) + 250c: 008013c4 movi r2,79 + 2510: 18800045 stb r2,1(r3) + 2514: 00801344 movi r2,77 + 2518: 18800085 stb r2,2(r3) + 251c: 00801404 movi r2,80 + 2520: 188000c5 stb r2,3(r3) + 2524: 18000105 stb zero,4(r3) + break; + 2528: 00003206 br 25f4 + case INST_JEQ: + sprintf(inst_name, STRING_INST_JEQ); + 252c: e0fffd17 ldw r3,-12(fp) + 2530: 00801284 movi r2,74 + 2534: 18800005 stb r2,0(r3) + 2538: 00801144 movi r2,69 + 253c: 18800045 stb r2,1(r3) + 2540: 00801444 movi r2,81 + 2544: 18800085 stb r2,2(r3) + 2548: 180000c5 stb zero,3(r3) + break; + 254c: 00002906 br 25f4 + case INST_JNE: + sprintf(inst_name, STRING_INST_JNE); + 2550: e0fffd17 ldw r3,-12(fp) + 2554: 00801284 movi r2,74 + 2558: 18800005 stb r2,0(r3) + 255c: 00801384 movi r2,78 + 2560: 18800045 stb r2,1(r3) + 2564: 00801144 movi r2,69 + 2568: 18800085 stb r2,2(r3) + 256c: 180000c5 stb zero,3(r3) + break; + 2570: 00002006 br 25f4 + case INST_JIEQ: + sprintf(inst_name, STRING_INST_JIEQ); + 2574: e0fffd17 ldw r3,-12(fp) + 2578: 00801284 movi r2,74 + 257c: 18800005 stb r2,0(r3) + 2580: 00801244 movi r2,73 + 2584: 18800045 stb r2,1(r3) + 2588: 00801144 movi r2,69 + 258c: 18800085 stb r2,2(r3) + 2590: 00801444 movi r2,81 + 2594: 188000c5 stb r2,3(r3) + 2598: 18000105 stb zero,4(r3) + break; + 259c: 00001506 br 25f4 + case INST_JINE: + sprintf(inst_name, STRING_INST_JINE); + 25a0: e0fffd17 ldw r3,-12(fp) + 25a4: 00801284 movi r2,74 + 25a8: 18800005 stb r2,0(r3) + 25ac: 00801244 movi r2,73 + 25b0: 18800045 stb r2,1(r3) + 25b4: 00801384 movi r2,78 + 25b8: 18800085 stb r2,2(r3) + 25bc: 00801144 movi r2,69 + 25c0: 188000c5 stb r2,3(r3) + 25c4: 18000105 stb zero,4(r3) + break; + 25c8: 00000a06 br 25f4 + default: + sprintf(inst_name, "NoOp"); + 25cc: e0fffd17 ldw r3,-12(fp) + 25d0: 00801384 movi r2,78 + 25d4: 18800005 stb r2,0(r3) + 25d8: 00801bc4 movi r2,111 + 25dc: 18800045 stb r2,1(r3) + 25e0: 008013c4 movi r2,79 + 25e4: 18800085 stb r2,2(r3) + 25e8: 00801c04 movi r2,112 + 25ec: 188000c5 stb r2,3(r3) + 25f0: 18000105 stb zero,4(r3) + break; + } +} + 25f4: e037883a mov sp,fp + 25f8: df000017 ldw fp,0(sp) + 25fc: dec00104 addi sp,sp,4 + 2600: f800283a ret + +00002604 : + * Author: takayun + */ +#include "system.h" +#include "hex_out.h" + +void panic() { + 2604: defffe04 addi sp,sp,-8 + 2608: dfc00115 stw ra,4(sp) + 260c: df000015 stw fp,0(sp) + 2610: d839883a mov fp,sp + clear_block(HEX0_3); + 2614: 0009883a mov r4,zero + 2618: 00014fc0 call 14fc + print_block("err ", 4, HEX0_3); + 261c: 01000074 movhi r4,1 + 2620: 213ff704 addi r4,r4,-36 + 2624: 01400104 movi r5,4 + 2628: 000d883a mov r6,zero + 262c: 000136c0 call 136c +} + 2630: e037883a mov sp,fp + 2634: dfc00117 ldw ra,4(sp) + 2638: df000017 ldw fp,0(sp) + 263c: dec00204 addi sp,sp,8 + 2640: f800283a ret + +00002644 : + +/************************************************** + * Impl + **************************************************/ + +void memory_init() { + 2644: defffd04 addi sp,sp,-12 + 2648: df000215 stw fp,8(sp) + 264c: df000204 addi fp,sp,8 + int i, j; + for (i = 0; i < MEMS_COUNT; i++) + 2650: e03fff15 stw zero,-4(fp) + 2654: 00001306 br 26a4 + for (j = 0; j < MEM_SIZE; j++) { + 2658: e03ffe15 stw zero,-8(fp) + 265c: 00000b06 br 268c + memory[i][j] = 0; + 2660: e0bfff17 ldw r2,-4(fp) + 2664: e13ffe17 ldw r4,-8(fp) + 2668: 00c00074 movhi r3,1 + 266c: 18cf4304 addi r3,r3,15628 + 2670: 1004913a slli r2,r2,4 + 2674: 10c5883a add r2,r2,r3 + 2678: 1105883a add r2,r2,r4 + 267c: 10000005 stb zero,0(r2) + **************************************************/ + +void memory_init() { + int i, j; + for (i = 0; i < MEMS_COUNT; i++) + for (j = 0; j < MEM_SIZE; j++) { + 2680: e0bffe17 ldw r2,-8(fp) + 2684: 10800044 addi r2,r2,1 + 2688: e0bffe15 stw r2,-8(fp) + 268c: e0bffe17 ldw r2,-8(fp) + 2690: 10800410 cmplti r2,r2,16 + 2694: 103ff21e bne r2,zero,2660 + * Impl + **************************************************/ + +void memory_init() { + int i, j; + for (i = 0; i < MEMS_COUNT; i++) + 2698: e0bfff17 ldw r2,-4(fp) + 269c: 10800044 addi r2,r2,1 + 26a0: e0bfff15 stw r2,-4(fp) + 26a4: e0bfff17 ldw r2,-4(fp) + 26a8: 10800410 cmplti r2,r2,16 + 26ac: 103fea1e bne r2,zero,2658 + for (j = 0; j < MEM_SIZE; j++) { + memory[i][j] = 0; + } +} + 26b0: e037883a mov sp,fp + 26b4: df000017 ldw fp,0(sp) + 26b8: dec00104 addi sp,sp,4 + 26bc: f800283a ret + +000026c0 : + +void inst_memory_store(unsigned int mem_addr, struct InstRec inst_rec){ + 26c0: defffd04 addi sp,sp,-12 + 26c4: df000215 stw fp,8(sp) + 26c8: df000204 addi fp,sp,8 + 26cc: e13ffe15 stw r4,-8(fp) + 26d0: e17fff15 stw r5,-4(fp) + inst_memory[global_current_memory][mem_addr] = inst_rec; + 26d4: d0a6f917 ldw r2,-25628(gp) + 26d8: e0fffe17 ldw r3,-8(fp) + 26dc: 01000074 movhi r4,1 + 26e0: 210f8304 addi r4,r4,15884 + 26e4: 1004913a slli r2,r2,4 + 26e8: 10c5883a add r2,r2,r3 + 26ec: 1085883a add r2,r2,r2 + 26f0: 1085883a add r2,r2,r2 + 26f4: 1107883a add r3,r2,r4 + 26f8: e0bfff17 ldw r2,-4(fp) + 26fc: 18800015 stw r2,0(r3) +} + 2700: e037883a mov sp,fp + 2704: df000017 ldw fp,0(sp) + 2708: dec00104 addi sp,sp,4 + 270c: f800283a ret + +00002710 : +struct InstRec inst_memory_load(unsigned int mem_addr){ + 2710: defffe04 addi sp,sp,-8 + 2714: df000115 stw fp,4(sp) + 2718: df000104 addi fp,sp,4 + 271c: e13fff15 stw r4,-4(fp) + return inst_memory[global_current_memory][mem_addr]; + 2720: d0a6f917 ldw r2,-25628(gp) + 2724: e0ffff17 ldw r3,-4(fp) + 2728: 01000074 movhi r4,1 + 272c: 210f8304 addi r4,r4,15884 + 2730: 1004913a slli r2,r2,4 + 2734: 10c5883a add r2,r2,r3 + 2738: 1085883a add r2,r2,r2 + 273c: 1085883a add r2,r2,r2 + 2740: 1105883a add r2,r2,r4 + 2744: 10800017 ldw r2,0(r2) +} + 2748: e037883a mov sp,fp + 274c: df000017 ldw fp,0(sp) + 2750: dec00104 addi sp,sp,4 + 2754: f800283a ret + +00002758 : + +char memory_store(unsigned int mem_addr, enum Register reg) { + 2758: defffc04 addi sp,sp,-16 + 275c: dfc00315 stw ra,12(sp) + 2760: df000215 stw fp,8(sp) + 2764: df000204 addi fp,sp,8 + 2768: e13ffe15 stw r4,-8(fp) + 276c: e17fff15 stw r5,-4(fp) + if (!(mem_addr < MEM_SIZE)) panic(); + 2770: e0bffe17 ldw r2,-8(fp) + 2774: 10800430 cmpltui r2,r2,16 + 2778: 1000011e bne r2,zero,2780 + 277c: 00026040 call 2604 + memory[global_current_memory][mem_addr] = global_registers[reg]; + 2780: d166f917 ldw r5,-25628(gp) + 2784: e1bffe17 ldw r6,-8(fp) + 2788: e0ffff17 ldw r3,-4(fp) + 278c: 00800074 movhi r2,1 + 2790: 10908d04 addi r2,r2,16948 + 2794: 10c5883a add r2,r2,r3 + 2798: 11000003 ldbu r4,0(r2) + 279c: 00c00074 movhi r3,1 + 27a0: 18cf4304 addi r3,r3,15628 + 27a4: 2804913a slli r2,r5,4 + 27a8: 10c5883a add r2,r2,r3 + 27ac: 1185883a add r2,r2,r6 + 27b0: 11000005 stb r4,0(r2) + return memory[global_current_memory][mem_addr]; + 27b4: d0a6f917 ldw r2,-25628(gp) + 27b8: e13ffe17 ldw r4,-8(fp) + 27bc: 00c00074 movhi r3,1 + 27c0: 18cf4304 addi r3,r3,15628 + 27c4: 1004913a slli r2,r2,4 + 27c8: 10c5883a add r2,r2,r3 + 27cc: 1105883a add r2,r2,r4 + 27d0: 10800003 ldbu r2,0(r2) + 27d4: 10803fcc andi r2,r2,255 + 27d8: 1080201c xori r2,r2,128 + 27dc: 10bfe004 addi r2,r2,-128 +} + 27e0: e037883a mov sp,fp + 27e4: dfc00117 ldw ra,4(sp) + 27e8: df000017 ldw fp,0(sp) + 27ec: dec00204 addi sp,sp,8 + 27f0: f800283a ret + +000027f4 : + +char memory_load(unsigned int mem_addr, enum Register reg) { + 27f4: defffc04 addi sp,sp,-16 + 27f8: dfc00315 stw ra,12(sp) + 27fc: df000215 stw fp,8(sp) + 2800: df000204 addi fp,sp,8 + 2804: e13ffe15 stw r4,-8(fp) + 2808: e17fff15 stw r5,-4(fp) + if (!(mem_addr < MEM_SIZE)) panic(); + 280c: e0bffe17 ldw r2,-8(fp) + 2810: 10800430 cmpltui r2,r2,16 + 2814: 1000011e bne r2,zero,281c + 2818: 00026040 call 2604 + global_registers[reg] = memory[global_current_memory][mem_addr]; + 281c: e17fff17 ldw r5,-4(fp) + 2820: d0a6f917 ldw r2,-25628(gp) + 2824: e13ffe17 ldw r4,-8(fp) + 2828: 00c00074 movhi r3,1 + 282c: 18cf4304 addi r3,r3,15628 + 2830: 1004913a slli r2,r2,4 + 2834: 10c5883a add r2,r2,r3 + 2838: 1105883a add r2,r2,r4 + 283c: 10c00003 ldbu r3,0(r2) + 2840: 00800074 movhi r2,1 + 2844: 10908d04 addi r2,r2,16948 + 2848: 1145883a add r2,r2,r5 + 284c: 10c00005 stb r3,0(r2) + return global_registers[reg]; + 2850: e0ffff17 ldw r3,-4(fp) + 2854: 00800074 movhi r2,1 + 2858: 10908d04 addi r2,r2,16948 + 285c: 10c5883a add r2,r2,r3 + 2860: 10800003 ldbu r2,0(r2) + 2864: 10803fcc andi r2,r2,255 + 2868: 1080201c xori r2,r2,128 + 286c: 10bfe004 addi r2,r2,-128 +} + 2870: e037883a mov sp,fp + 2874: dfc00117 ldw ra,4(sp) + 2878: df000017 ldw fp,0(sp) + 287c: dec00204 addi sp,sp,8 + 2880: f800283a ret + +00002884 : + */ + +#include "sys_register.h" +#include "sys_memory.h" + +unsigned int inc_pc() { + 2884: deffff04 addi sp,sp,-4 + 2888: df000015 stw fp,0(sp) + 288c: d839883a mov fp,sp + if ((unsigned char)global_registers[Spc]+1 < MEM_SIZE*MEMS_COUNT - global_current_memory*MEM_SIZE ) { + 2890: 00800074 movhi r2,1 + 2894: 10908d04 addi r2,r2,16948 + 2898: 10800043 ldbu r2,1(r2) + 289c: 10803fcc andi r2,r2,255 + 28a0: 10800044 addi r2,r2,1 + 28a4: 1009883a mov r4,r2 + 28a8: 00800074 movhi r2,1 + 28ac: 108f3504 addi r2,r2,15572 + 28b0: 10800017 ldw r2,0(r2) + 28b4: 1006913a slli r3,r2,4 + 28b8: 00804004 movi r2,256 + 28bc: 10c5c83a sub r2,r2,r3 + 28c0: 2080092e bgeu r4,r2,28e8 + global_registers[Spc] = (unsigned char)global_registers[Spc] + 1; + 28c4: 00800074 movhi r2,1 + 28c8: 10908d04 addi r2,r2,16948 + 28cc: 10800043 ldbu r2,1(r2) + 28d0: 10800044 addi r2,r2,1 + 28d4: 1007883a mov r3,r2 + 28d8: 00800074 movhi r2,1 + 28dc: 10908d04 addi r2,r2,16948 + 28e0: 10c00045 stb r3,1(r2) + 28e4: 00000306 br 28f4 + } else { + global_registers[Spc] = 0; + 28e8: 00800074 movhi r2,1 + 28ec: 10908d04 addi r2,r2,16948 + 28f0: 10000045 stb zero,1(r2) + } + return 0; + 28f4: 0005883a mov r2,zero +} + 28f8: e037883a mov sp,fp + 28fc: df000017 ldw fp,0(sp) + 2900: dec00104 addi sp,sp,4 + 2904: f800283a ret + +00002908 : +unsigned int add_pc(unsigned int cnt) { + 2908: defffc04 addi sp,sp,-16 + 290c: dfc00315 stw ra,12(sp) + 2910: df000215 stw fp,8(sp) + 2914: df000204 addi fp,sp,8 + 2918: e13fff15 stw r4,-4(fp) + int i; + for (i = 0; i < cnt; i++) inc_pc(); + 291c: e03ffe15 stw zero,-8(fp) + 2920: 00000406 br 2934 + 2924: 00028840 call 2884 + 2928: e0bffe17 ldw r2,-8(fp) + 292c: 10800044 addi r2,r2,1 + 2930: e0bffe15 stw r2,-8(fp) + 2934: e0fffe17 ldw r3,-8(fp) + 2938: e0bfff17 ldw r2,-4(fp) + 293c: 18bff936 bltu r3,r2,2924 + return 0; + 2940: 0005883a mov r2,zero +} + 2944: e037883a mov sp,fp + 2948: dfc00117 ldw ra,4(sp) + 294c: df000017 ldw fp,0(sp) + 2950: dec00204 addi sp,sp,8 + 2954: f800283a ret + +00002958 : +unsigned int set_pc(unsigned int cnt) { + 2958: defffe04 addi sp,sp,-8 + 295c: df000115 stw fp,4(sp) + 2960: df000104 addi fp,sp,4 + 2964: e13fff15 stw r4,-4(fp) + global_registers[Spc]=cnt; + 2968: e0bfff17 ldw r2,-4(fp) + 296c: 1007883a mov r3,r2 + 2970: 00800074 movhi r2,1 + 2974: 10908d04 addi r2,r2,16948 + 2978: 10c00045 stb r3,1(r2) + return 0; + 297c: 0005883a mov r2,zero +} + 2980: e037883a mov sp,fp + 2984: df000017 ldw fp,0(sp) + 2988: dec00104 addi sp,sp,4 + 298c: f800283a ret + +00002990 : + */ +#include "sys_register.h" + +char global_registers[REG_MAX_COUNT]; + +void registers_init() { + 2990: defffe04 addi sp,sp,-8 + 2994: df000115 stw fp,4(sp) + 2998: df000104 addi fp,sp,4 + int i; + for (i = 0; i < REG_MAX_COUNT; i++) global_registers[i] = 0; + 299c: e03fff15 stw zero,-4(fp) + 29a0: 00000806 br 29c4 + 29a4: e0ffff17 ldw r3,-4(fp) + 29a8: 00800074 movhi r2,1 + 29ac: 10908d04 addi r2,r2,16948 + 29b0: 10c5883a add r2,r2,r3 + 29b4: 10000005 stb zero,0(r2) + 29b8: e0bfff17 ldw r2,-4(fp) + 29bc: 10800044 addi r2,r2,1 + 29c0: e0bfff15 stw r2,-4(fp) + 29c4: e0bfff17 ldw r2,-4(fp) + 29c8: 108003d0 cmplti r2,r2,15 + 29cc: 103ff51e bne r2,zero,29a4 +} + 29d0: e037883a mov sp,fp + 29d4: df000017 ldw fp,0(sp) + 29d8: dec00104 addi sp,sp,4 + 29dc: f800283a ret + +000029e0 : + 29e0: 29001b2e bgeu r5,r4,2a50 + 29e4: 28001a16 blt r5,zero,2a50 + 29e8: 00800044 movi r2,1 + 29ec: 0007883a mov r3,zero + 29f0: 01c007c4 movi r7,31 + 29f4: 00000306 br 2a04 + 29f8: 19c01326 beq r3,r7,2a48 + 29fc: 18c00044 addi r3,r3,1 + 2a00: 28000416 blt r5,zero,2a14 + 2a04: 294b883a add r5,r5,r5 + 2a08: 1085883a add r2,r2,r2 + 2a0c: 293ffa36 bltu r5,r4,29f8 + 2a10: 10000d26 beq r2,zero,2a48 + 2a14: 0007883a mov r3,zero + 2a18: 21400236 bltu r4,r5,2a24 + 2a1c: 2149c83a sub r4,r4,r5 + 2a20: 1886b03a or r3,r3,r2 + 2a24: 1004d07a srli r2,r2,1 + 2a28: 280ad07a srli r5,r5,1 + 2a2c: 103ffa1e bne r2,zero,2a18 + 2a30: 30000226 beq r6,zero,2a3c + 2a34: 2005883a mov r2,r4 + 2a38: f800283a ret + 2a3c: 1809883a mov r4,r3 + 2a40: 2005883a mov r2,r4 + 2a44: f800283a ret + 2a48: 0007883a mov r3,zero + 2a4c: 003ff806 br 2a30 + 2a50: 00800044 movi r2,1 + 2a54: 0007883a mov r3,zero + 2a58: 003fef06 br 2a18 + +00002a5c <__divsi3>: + 2a5c: defffe04 addi sp,sp,-8 + 2a60: dc000015 stw r16,0(sp) + 2a64: dfc00115 stw ra,4(sp) + 2a68: 0021883a mov r16,zero + 2a6c: 20000c16 blt r4,zero,2aa0 <__divsi3+0x44> + 2a70: 000d883a mov r6,zero + 2a74: 28000e16 blt r5,zero,2ab0 <__divsi3+0x54> + 2a78: 00029e00 call 29e0 + 2a7c: 1007883a mov r3,r2 + 2a80: 8005003a cmpeq r2,r16,zero + 2a84: 1000011e bne r2,zero,2a8c <__divsi3+0x30> + 2a88: 00c7c83a sub r3,zero,r3 + 2a8c: 1805883a mov r2,r3 + 2a90: dfc00117 ldw ra,4(sp) + 2a94: dc000017 ldw r16,0(sp) + 2a98: dec00204 addi sp,sp,8 + 2a9c: f800283a ret + 2aa0: 0109c83a sub r4,zero,r4 + 2aa4: 04000044 movi r16,1 + 2aa8: 000d883a mov r6,zero + 2aac: 283ff20e bge r5,zero,2a78 <__divsi3+0x1c> + 2ab0: 014bc83a sub r5,zero,r5 + 2ab4: 8021003a cmpeq r16,r16,zero + 2ab8: 003fef06 br 2a78 <__divsi3+0x1c> + +00002abc <__modsi3>: + 2abc: deffff04 addi sp,sp,-4 + 2ac0: dfc00015 stw ra,0(sp) + 2ac4: 01800044 movi r6,1 + 2ac8: 2807883a mov r3,r5 + 2acc: 20000416 blt r4,zero,2ae0 <__modsi3+0x24> + 2ad0: 28000c16 blt r5,zero,2b04 <__modsi3+0x48> + 2ad4: dfc00017 ldw ra,0(sp) + 2ad8: dec00104 addi sp,sp,4 + 2adc: 00029e01 jmpi 29e0 + 2ae0: 0109c83a sub r4,zero,r4 + 2ae4: 28000b16 blt r5,zero,2b14 <__modsi3+0x58> + 2ae8: 180b883a mov r5,r3 + 2aec: 01800044 movi r6,1 + 2af0: 00029e00 call 29e0 + 2af4: 0085c83a sub r2,zero,r2 + 2af8: dfc00017 ldw ra,0(sp) + 2afc: dec00104 addi sp,sp,4 + 2b00: f800283a ret + 2b04: 014bc83a sub r5,zero,r5 + 2b08: dfc00017 ldw ra,0(sp) + 2b0c: dec00104 addi sp,sp,4 + 2b10: 00029e01 jmpi 29e0 + 2b14: 0147c83a sub r3,zero,r5 + 2b18: 003ff306 br 2ae8 <__modsi3+0x2c> + +00002b1c <__udivsi3>: + 2b1c: 000d883a mov r6,zero + 2b20: 00029e01 jmpi 29e0 + +00002b24 <__umodsi3>: + 2b24: 01800044 movi r6,1 + 2b28: 00029e01 jmpi 29e0 + +00002b2c <__mulsi3>: + 2b2c: 20000a26 beq r4,zero,2b58 <__mulsi3+0x2c> + 2b30: 0007883a mov r3,zero + 2b34: 2080004c andi r2,r4,1 + 2b38: 1005003a cmpeq r2,r2,zero + 2b3c: 2008d07a srli r4,r4,1 + 2b40: 1000011e bne r2,zero,2b48 <__mulsi3+0x1c> + 2b44: 1947883a add r3,r3,r5 + 2b48: 294b883a add r5,r5,r5 + 2b4c: 203ff91e bne r4,zero,2b34 <__mulsi3+0x8> + 2b50: 1805883a mov r2,r3 + 2b54: f800283a ret + 2b58: 0007883a mov r3,zero + 2b5c: 1805883a mov r2,r3 + 2b60: f800283a ret + +00002b64 : + 2b64: deffe504 addi sp,sp,-108 + 2b68: 2013883a mov r9,r4 + 2b6c: dfc01815 stw ra,96(sp) + 2b70: d9801915 stw r6,100(sp) + 2b74: d9c01a15 stw r7,104(sp) + 2b78: d8801904 addi r2,sp,100 + 2b7c: d8800015 stw r2,0(sp) + 2b80: 00800074 movhi r2,1 + 2b84: 10883e04 addi r2,r2,8440 + 2b88: 11000017 ldw r4,0(r2) + 2b8c: d9c00017 ldw r7,0(sp) + 2b90: 00808204 movi r2,520 + 2b94: 00e00034 movhi r3,32768 + 2b98: 18ffffc4 addi r3,r3,-1 + 2b9c: 280d883a mov r6,r5 + 2ba0: d880040d sth r2,16(sp) + 2ba4: d9400104 addi r5,sp,4 + 2ba8: 00bfffc4 movi r2,-1 + 2bac: d8c00615 stw r3,24(sp) + 2bb0: d8c00315 stw r3,12(sp) + 2bb4: da400515 stw r9,20(sp) + 2bb8: d880048d sth r2,18(sp) + 2bbc: da400115 stw r9,4(sp) + 2bc0: 0002d040 call 2d04 <___vfprintf_internal_r> + 2bc4: d8c00117 ldw r3,4(sp) + 2bc8: 18000005 stb zero,0(r3) + 2bcc: dfc01817 ldw ra,96(sp) + 2bd0: dec01b04 addi sp,sp,108 + 2bd4: f800283a ret + +00002bd8 <_sprintf_r>: + 2bd8: deffe604 addi sp,sp,-104 + 2bdc: 2813883a mov r9,r5 + 2be0: dfc01815 stw ra,96(sp) + 2be4: d9c01915 stw r7,100(sp) + 2be8: d8801904 addi r2,sp,100 + 2bec: d8800015 stw r2,0(sp) + 2bf0: 100f883a mov r7,r2 + 2bf4: 00808204 movi r2,520 + 2bf8: 00e00034 movhi r3,32768 + 2bfc: 18ffffc4 addi r3,r3,-1 + 2c00: d880040d sth r2,16(sp) + 2c04: d9400104 addi r5,sp,4 + 2c08: 00bfffc4 movi r2,-1 + 2c0c: d8c00615 stw r3,24(sp) + 2c10: d8c00315 stw r3,12(sp) + 2c14: da400515 stw r9,20(sp) + 2c18: d880048d sth r2,18(sp) + 2c1c: da400115 stw r9,4(sp) + 2c20: 0002d040 call 2d04 <___vfprintf_internal_r> + 2c24: d8c00117 ldw r3,4(sp) + 2c28: 18000005 stb zero,0(r3) + 2c2c: dfc01817 ldw ra,96(sp) + 2c30: dec01a04 addi sp,sp,104 + 2c34: f800283a ret + +00002c38 : + 2c38: 208000cc andi r2,r4,3 + 2c3c: 2011883a mov r8,r4 + 2c40: 1000161e bne r2,zero,2c9c + 2c44: 20c00017 ldw r3,0(r4) + 2c48: 017fbff4 movhi r5,65279 + 2c4c: 297fbfc4 addi r5,r5,-257 + 2c50: 01e02074 movhi r7,32897 + 2c54: 39e02004 addi r7,r7,-32640 + 2c58: 1945883a add r2,r3,r5 + 2c5c: 11c4703a and r2,r2,r7 + 2c60: 00c6303a nor r3,zero,r3 + 2c64: 1886703a and r3,r3,r2 + 2c68: 18000c1e bne r3,zero,2c9c + 2c6c: 280d883a mov r6,r5 + 2c70: 380b883a mov r5,r7 + 2c74: 21000104 addi r4,r4,4 + 2c78: 20800017 ldw r2,0(r4) + 2c7c: 1187883a add r3,r2,r6 + 2c80: 1946703a and r3,r3,r5 + 2c84: 0084303a nor r2,zero,r2 + 2c88: 10c4703a and r2,r2,r3 + 2c8c: 103ff926 beq r2,zero,2c74 + 2c90: 20800007 ldb r2,0(r4) + 2c94: 10000326 beq r2,zero,2ca4 + 2c98: 21000044 addi r4,r4,1 + 2c9c: 20800007 ldb r2,0(r4) + 2ca0: 103ffd1e bne r2,zero,2c98 + 2ca4: 2205c83a sub r2,r4,r8 + 2ca8: f800283a ret + +00002cac <__sprint_r>: + 2cac: 30800217 ldw r2,8(r6) + 2cb0: defffe04 addi sp,sp,-8 + 2cb4: dc000015 stw r16,0(sp) + 2cb8: dfc00115 stw ra,4(sp) + 2cbc: 3021883a mov r16,r6 + 2cc0: 0007883a mov r3,zero + 2cc4: 1000061e bne r2,zero,2ce0 <__sprint_r+0x34> + 2cc8: 1805883a mov r2,r3 + 2ccc: 30000115 stw zero,4(r6) + 2cd0: dfc00117 ldw ra,4(sp) + 2cd4: dc000017 ldw r16,0(sp) + 2cd8: dec00204 addi sp,sp,8 + 2cdc: f800283a ret + 2ce0: 0006e840 call 6e84 <__sfvwrite_r> + 2ce4: 1007883a mov r3,r2 + 2ce8: 1805883a mov r2,r3 + 2cec: 80000115 stw zero,4(r16) + 2cf0: 80000215 stw zero,8(r16) + 2cf4: dfc00117 ldw ra,4(sp) + 2cf8: dc000017 ldw r16,0(sp) + 2cfc: dec00204 addi sp,sp,8 + 2d00: f800283a ret + +00002d04 <___vfprintf_internal_r>: + 2d04: defea404 addi sp,sp,-1392 + 2d08: dd815815 stw r22,1376(sp) + 2d0c: dc015215 stw r16,1352(sp) + 2d10: d9c15115 stw r7,1348(sp) + 2d14: dfc15b15 stw ra,1388(sp) + 2d18: df015a15 stw fp,1384(sp) + 2d1c: ddc15915 stw r23,1380(sp) + 2d20: dd415715 stw r21,1372(sp) + 2d24: dd015615 stw r20,1368(sp) + 2d28: dcc15515 stw r19,1364(sp) + 2d2c: dc815415 stw r18,1360(sp) + 2d30: dc415315 stw r17,1356(sp) + 2d34: 282d883a mov r22,r5 + 2d38: 3021883a mov r16,r6 + 2d3c: d9014f15 stw r4,1340(sp) + 2d40: 00074a80 call 74a8 <_localeconv_r> + 2d44: 10800017 ldw r2,0(r2) + 2d48: d9c15117 ldw r7,1348(sp) + 2d4c: d8814915 stw r2,1316(sp) + 2d50: d8814f17 ldw r2,1340(sp) + 2d54: 10000226 beq r2,zero,2d60 <___vfprintf_internal_r+0x5c> + 2d58: 10800e17 ldw r2,56(r2) + 2d5c: 10020d26 beq r2,zero,3594 <___vfprintf_internal_r+0x890> + 2d60: b080030b ldhu r2,12(r22) + 2d64: 1080020c andi r2,r2,8 + 2d68: 10020e26 beq r2,zero,35a4 <___vfprintf_internal_r+0x8a0> + 2d6c: b0800417 ldw r2,16(r22) + 2d70: 10020c26 beq r2,zero,35a4 <___vfprintf_internal_r+0x8a0> + 2d74: b200030b ldhu r8,12(r22) + 2d78: 00800284 movi r2,10 + 2d7c: 40c0068c andi r3,r8,26 + 2d80: 18802f1e bne r3,r2,2e40 <___vfprintf_internal_r+0x13c> + 2d84: b080038f ldh r2,14(r22) + 2d88: 10002d16 blt r2,zero,2e40 <___vfprintf_internal_r+0x13c> + 2d8c: b240038b ldhu r9,14(r22) + 2d90: b2800717 ldw r10,28(r22) + 2d94: b2c00917 ldw r11,36(r22) + 2d98: d9014f17 ldw r4,1340(sp) + 2d9c: dc402904 addi r17,sp,164 + 2da0: d8804004 addi r2,sp,256 + 2da4: 00c10004 movi r3,1024 + 2da8: 423fff4c andi r8,r8,65533 + 2dac: 800d883a mov r6,r16 + 2db0: 880b883a mov r5,r17 + 2db4: da002c0d sth r8,176(sp) + 2db8: da402c8d sth r9,178(sp) + 2dbc: da803015 stw r10,192(sp) + 2dc0: dac03215 stw r11,200(sp) + 2dc4: d8802d15 stw r2,180(sp) + 2dc8: d8c02e15 stw r3,184(sp) + 2dcc: d8802915 stw r2,164(sp) + 2dd0: d8c02b15 stw r3,172(sp) + 2dd4: d8002f15 stw zero,188(sp) + 2dd8: 0002d040 call 2d04 <___vfprintf_internal_r> + 2ddc: d8814b15 stw r2,1324(sp) + 2de0: 10000416 blt r2,zero,2df4 <___vfprintf_internal_r+0xf0> + 2de4: d9014f17 ldw r4,1340(sp) + 2de8: 880b883a mov r5,r17 + 2dec: 00065200 call 6520 <_fflush_r> + 2df0: 1002321e bne r2,zero,36bc <___vfprintf_internal_r+0x9b8> + 2df4: d8802c0b ldhu r2,176(sp) + 2df8: 1080100c andi r2,r2,64 + 2dfc: 10000326 beq r2,zero,2e0c <___vfprintf_internal_r+0x108> + 2e00: b080030b ldhu r2,12(r22) + 2e04: 10801014 ori r2,r2,64 + 2e08: b080030d sth r2,12(r22) + 2e0c: d8814b17 ldw r2,1324(sp) + 2e10: dfc15b17 ldw ra,1388(sp) + 2e14: df015a17 ldw fp,1384(sp) + 2e18: ddc15917 ldw r23,1380(sp) + 2e1c: dd815817 ldw r22,1376(sp) + 2e20: dd415717 ldw r21,1372(sp) + 2e24: dd015617 ldw r20,1368(sp) + 2e28: dcc15517 ldw r19,1364(sp) + 2e2c: dc815417 ldw r18,1360(sp) + 2e30: dc415317 ldw r17,1356(sp) + 2e34: dc015217 ldw r16,1352(sp) + 2e38: dec15c04 addi sp,sp,1392 + 2e3c: f800283a ret + 2e40: 0005883a mov r2,zero + 2e44: 0007883a mov r3,zero + 2e48: dd401904 addi r21,sp,100 + 2e4c: d8814215 stw r2,1288(sp) + 2e50: 802f883a mov r23,r16 + 2e54: d8c14315 stw r3,1292(sp) + 2e58: d8014b15 stw zero,1324(sp) + 2e5c: d8014815 stw zero,1312(sp) + 2e60: d8014415 stw zero,1296(sp) + 2e64: d8014715 stw zero,1308(sp) + 2e68: dd400c15 stw r21,48(sp) + 2e6c: d8000e15 stw zero,56(sp) + 2e70: d8000d15 stw zero,52(sp) + 2e74: b8800007 ldb r2,0(r23) + 2e78: 10001926 beq r2,zero,2ee0 <___vfprintf_internal_r+0x1dc> + 2e7c: 00c00944 movi r3,37 + 2e80: 10c01726 beq r2,r3,2ee0 <___vfprintf_internal_r+0x1dc> + 2e84: b821883a mov r16,r23 + 2e88: 00000106 br 2e90 <___vfprintf_internal_r+0x18c> + 2e8c: 10c00326 beq r2,r3,2e9c <___vfprintf_internal_r+0x198> + 2e90: 84000044 addi r16,r16,1 + 2e94: 80800007 ldb r2,0(r16) + 2e98: 103ffc1e bne r2,zero,2e8c <___vfprintf_internal_r+0x188> + 2e9c: 85e7c83a sub r19,r16,r23 + 2ea0: 98000e26 beq r19,zero,2edc <___vfprintf_internal_r+0x1d8> + 2ea4: dc800e17 ldw r18,56(sp) + 2ea8: dc400d17 ldw r17,52(sp) + 2eac: 008001c4 movi r2,7 + 2eb0: 94e5883a add r18,r18,r19 + 2eb4: 8c400044 addi r17,r17,1 + 2eb8: adc00015 stw r23,0(r21) + 2ebc: dc800e15 stw r18,56(sp) + 2ec0: acc00115 stw r19,4(r21) + 2ec4: dc400d15 stw r17,52(sp) + 2ec8: 14428b16 blt r2,r17,38f8 <___vfprintf_internal_r+0xbf4> + 2ecc: ad400204 addi r21,r21,8 + 2ed0: d9014b17 ldw r4,1324(sp) + 2ed4: 24c9883a add r4,r4,r19 + 2ed8: d9014b15 stw r4,1324(sp) + 2edc: 802f883a mov r23,r16 + 2ee0: b8800007 ldb r2,0(r23) + 2ee4: 10013c26 beq r2,zero,33d8 <___vfprintf_internal_r+0x6d4> + 2ee8: bdc00044 addi r23,r23,1 + 2eec: d8000405 stb zero,16(sp) + 2ef0: b8c00007 ldb r3,0(r23) + 2ef4: 04ffffc4 movi r19,-1 + 2ef8: d8014c15 stw zero,1328(sp) + 2efc: d8014a15 stw zero,1320(sp) + 2f00: d8c14d15 stw r3,1332(sp) + 2f04: bdc00044 addi r23,r23,1 + 2f08: d9414d17 ldw r5,1332(sp) + 2f0c: 00801604 movi r2,88 + 2f10: 28fff804 addi r3,r5,-32 + 2f14: 10c06036 bltu r2,r3,3098 <___vfprintf_internal_r+0x394> + 2f18: 18c5883a add r2,r3,r3 + 2f1c: 1085883a add r2,r2,r2 + 2f20: 00c00034 movhi r3,0 + 2f24: 18cbcd04 addi r3,r3,12084 + 2f28: 10c5883a add r2,r2,r3 + 2f2c: 11000017 ldw r4,0(r2) + 2f30: 2000683a jmp r4 + 2f34: 00003ea8 cmpgeui zero,zero,250 + 2f38: 00003098 cmpnei zero,zero,194 + 2f3c: 00003098 cmpnei zero,zero,194 + 2f40: 00003e94 movui zero,250 + 2f44: 00003098 cmpnei zero,zero,194 + 2f48: 00003098 cmpnei zero,zero,194 + 2f4c: 00003098 cmpnei zero,zero,194 + 2f50: 00003098 cmpnei zero,zero,194 + 2f54: 00003098 cmpnei zero,zero,194 + 2f58: 00003098 cmpnei zero,zero,194 + 2f5c: 00003c74 movhi zero,241 + 2f60: 00003e84 movi zero,250 + 2f64: 00003098 cmpnei zero,zero,194 + 2f68: 00003c8c andi zero,zero,242 + 2f6c: 00003f2c andhi zero,zero,252 + 2f70: 00003098 cmpnei zero,zero,194 + 2f74: 00003f18 cmpnei zero,zero,252 + 2f78: 00003ed4 movui zero,251 + 2f7c: 00003ed4 movui zero,251 + 2f80: 00003ed4 movui zero,251 + 2f84: 00003ed4 movui zero,251 + 2f88: 00003ed4 movui zero,251 + 2f8c: 00003ed4 movui zero,251 + 2f90: 00003ed4 movui zero,251 + 2f94: 00003ed4 movui zero,251 + 2f98: 00003ed4 movui zero,251 + 2f9c: 00003098 cmpnei zero,zero,194 + 2fa0: 00003098 cmpnei zero,zero,194 + 2fa4: 00003098 cmpnei zero,zero,194 + 2fa8: 00003098 cmpnei zero,zero,194 + 2fac: 00003098 cmpnei zero,zero,194 + 2fb0: 00003098 cmpnei zero,zero,194 + 2fb4: 00003098 cmpnei zero,zero,194 + 2fb8: 00003098 cmpnei zero,zero,194 + 2fbc: 00003098 cmpnei zero,zero,194 + 2fc0: 00003098 cmpnei zero,zero,194 + 2fc4: 000036f0 cmpltui zero,zero,219 + 2fc8: 00003d5c xori zero,zero,245 + 2fcc: 00003098 cmpnei zero,zero,194 + 2fd0: 00003d5c xori zero,zero,245 + 2fd4: 00003098 cmpnei zero,zero,194 + 2fd8: 00003098 cmpnei zero,zero,194 + 2fdc: 00003098 cmpnei zero,zero,194 + 2fe0: 00003098 cmpnei zero,zero,194 + 2fe4: 00003ec0 call 3ec + 2fe8: 00003098 cmpnei zero,zero,194 + 2fec: 00003098 cmpnei zero,zero,194 + 2ff0: 000037a4 muli zero,zero,222 + 2ff4: 00003098 cmpnei zero,zero,194 + 2ff8: 00003098 cmpnei zero,zero,194 + 2ffc: 00003098 cmpnei zero,zero,194 + 3000: 00003098 cmpnei zero,zero,194 + 3004: 00003098 cmpnei zero,zero,194 + 3008: 000037f0 cmpltui zero,zero,223 + 300c: 00003098 cmpnei zero,zero,194 + 3010: 00003098 cmpnei zero,zero,194 + 3014: 00003e10 cmplti zero,zero,248 + 3018: 00003098 cmpnei zero,zero,194 + 301c: 00003098 cmpnei zero,zero,194 + 3020: 00003098 cmpnei zero,zero,194 + 3024: 00003098 cmpnei zero,zero,194 + 3028: 00003098 cmpnei zero,zero,194 + 302c: 00003098 cmpnei zero,zero,194 + 3030: 00003098 cmpnei zero,zero,194 + 3034: 00003098 cmpnei zero,zero,194 + 3038: 00003098 cmpnei zero,zero,194 + 303c: 00003098 cmpnei zero,zero,194 + 3040: 00003de4 muli zero,zero,247 + 3044: 000036fc xorhi zero,zero,219 + 3048: 00003d5c xori zero,zero,245 + 304c: 00003d5c xori zero,zero,245 + 3050: 00003d5c xori zero,zero,245 + 3054: 00003d48 cmpgei zero,zero,245 + 3058: 000036fc xorhi zero,zero,219 + 305c: 00003098 cmpnei zero,zero,194 + 3060: 00003098 cmpnei zero,zero,194 + 3064: 00003cd0 cmplti zero,zero,243 + 3068: 00003098 cmpnei zero,zero,194 + 306c: 00003ca0 cmpeqi zero,zero,242 + 3070: 000037b0 cmpltui zero,zero,222 + 3074: 00003d00 call 3d0 + 3078: 00003cec andhi zero,zero,243 + 307c: 00003098 cmpnei zero,zero,194 + 3080: 00003f94 movui zero,254 + 3084: 00003098 cmpnei zero,zero,194 + 3088: 000037fc xorhi zero,zero,223 + 308c: 00003098 cmpnei zero,zero,194 + 3090: 00003098 cmpnei zero,zero,194 + 3094: 00003e74 movhi zero,249 + 3098: d9014d17 ldw r4,1332(sp) + 309c: 2000ce26 beq r4,zero,33d8 <___vfprintf_internal_r+0x6d4> + 30a0: 01400044 movi r5,1 + 30a4: d9800f04 addi r6,sp,60 + 30a8: d9c14015 stw r7,1280(sp) + 30ac: d9414515 stw r5,1300(sp) + 30b0: d9814115 stw r6,1284(sp) + 30b4: 280f883a mov r7,r5 + 30b8: d9000f05 stb r4,60(sp) + 30bc: d8000405 stb zero,16(sp) + 30c0: d8014615 stw zero,1304(sp) + 30c4: d8c14c17 ldw r3,1328(sp) + 30c8: 1880008c andi r2,r3,2 + 30cc: 1005003a cmpeq r2,r2,zero + 30d0: d8815015 stw r2,1344(sp) + 30d4: 1000031e bne r2,zero,30e4 <___vfprintf_internal_r+0x3e0> + 30d8: d9014517 ldw r4,1300(sp) + 30dc: 21000084 addi r4,r4,2 + 30e0: d9014515 stw r4,1300(sp) + 30e4: d9414c17 ldw r5,1328(sp) + 30e8: 2940210c andi r5,r5,132 + 30ec: d9414e15 stw r5,1336(sp) + 30f0: 28002d1e bne r5,zero,31a8 <___vfprintf_internal_r+0x4a4> + 30f4: d9814a17 ldw r6,1320(sp) + 30f8: d8814517 ldw r2,1300(sp) + 30fc: 30a1c83a sub r16,r6,r2 + 3100: 0400290e bge zero,r16,31a8 <___vfprintf_internal_r+0x4a4> + 3104: 00800404 movi r2,16 + 3108: 14045e0e bge r2,r16,4284 <___vfprintf_internal_r+0x1580> + 310c: dc800e17 ldw r18,56(sp) + 3110: dc400d17 ldw r17,52(sp) + 3114: 1027883a mov r19,r2 + 3118: 07000074 movhi fp,1 + 311c: e700b584 addi fp,fp,726 + 3120: 050001c4 movi r20,7 + 3124: 00000306 br 3134 <___vfprintf_internal_r+0x430> + 3128: 843ffc04 addi r16,r16,-16 + 312c: ad400204 addi r21,r21,8 + 3130: 9c00130e bge r19,r16,3180 <___vfprintf_internal_r+0x47c> + 3134: 94800404 addi r18,r18,16 + 3138: 8c400044 addi r17,r17,1 + 313c: af000015 stw fp,0(r21) + 3140: acc00115 stw r19,4(r21) + 3144: dc800e15 stw r18,56(sp) + 3148: dc400d15 stw r17,52(sp) + 314c: a47ff60e bge r20,r17,3128 <___vfprintf_internal_r+0x424> + 3150: d9014f17 ldw r4,1340(sp) + 3154: b00b883a mov r5,r22 + 3158: d9800c04 addi r6,sp,48 + 315c: d9c15115 stw r7,1348(sp) + 3160: 0002cac0 call 2cac <__sprint_r> + 3164: d9c15117 ldw r7,1348(sp) + 3168: 10009e1e bne r2,zero,33e4 <___vfprintf_internal_r+0x6e0> + 316c: 843ffc04 addi r16,r16,-16 + 3170: dc800e17 ldw r18,56(sp) + 3174: dc400d17 ldw r17,52(sp) + 3178: dd401904 addi r21,sp,100 + 317c: 9c3fed16 blt r19,r16,3134 <___vfprintf_internal_r+0x430> + 3180: 9425883a add r18,r18,r16 + 3184: 8c400044 addi r17,r17,1 + 3188: 008001c4 movi r2,7 + 318c: af000015 stw fp,0(r21) + 3190: ac000115 stw r16,4(r21) + 3194: dc800e15 stw r18,56(sp) + 3198: dc400d15 stw r17,52(sp) + 319c: 1441f516 blt r2,r17,3974 <___vfprintf_internal_r+0xc70> + 31a0: ad400204 addi r21,r21,8 + 31a4: 00000206 br 31b0 <___vfprintf_internal_r+0x4ac> + 31a8: dc800e17 ldw r18,56(sp) + 31ac: dc400d17 ldw r17,52(sp) + 31b0: d8800407 ldb r2,16(sp) + 31b4: 10000b26 beq r2,zero,31e4 <___vfprintf_internal_r+0x4e0> + 31b8: 00800044 movi r2,1 + 31bc: 94800044 addi r18,r18,1 + 31c0: 8c400044 addi r17,r17,1 + 31c4: a8800115 stw r2,4(r21) + 31c8: d8c00404 addi r3,sp,16 + 31cc: 008001c4 movi r2,7 + 31d0: a8c00015 stw r3,0(r21) + 31d4: dc800e15 stw r18,56(sp) + 31d8: dc400d15 stw r17,52(sp) + 31dc: 1441da16 blt r2,r17,3948 <___vfprintf_internal_r+0xc44> + 31e0: ad400204 addi r21,r21,8 + 31e4: d9015017 ldw r4,1344(sp) + 31e8: 20000b1e bne r4,zero,3218 <___vfprintf_internal_r+0x514> + 31ec: d8800444 addi r2,sp,17 + 31f0: 94800084 addi r18,r18,2 + 31f4: 8c400044 addi r17,r17,1 + 31f8: a8800015 stw r2,0(r21) + 31fc: 00c00084 movi r3,2 + 3200: 008001c4 movi r2,7 + 3204: a8c00115 stw r3,4(r21) + 3208: dc800e15 stw r18,56(sp) + 320c: dc400d15 stw r17,52(sp) + 3210: 1441c216 blt r2,r17,391c <___vfprintf_internal_r+0xc18> + 3214: ad400204 addi r21,r21,8 + 3218: d9414e17 ldw r5,1336(sp) + 321c: 00802004 movi r2,128 + 3220: 2880b126 beq r5,r2,34e8 <___vfprintf_internal_r+0x7e4> + 3224: d8c14617 ldw r3,1304(sp) + 3228: 19e1c83a sub r16,r3,r7 + 322c: 0400260e bge zero,r16,32c8 <___vfprintf_internal_r+0x5c4> + 3230: 00800404 movi r2,16 + 3234: 1403cf0e bge r2,r16,4174 <___vfprintf_internal_r+0x1470> + 3238: 1027883a mov r19,r2 + 323c: 07000074 movhi fp,1 + 3240: e700b184 addi fp,fp,710 + 3244: 050001c4 movi r20,7 + 3248: 00000306 br 3258 <___vfprintf_internal_r+0x554> + 324c: 843ffc04 addi r16,r16,-16 + 3250: ad400204 addi r21,r21,8 + 3254: 9c00130e bge r19,r16,32a4 <___vfprintf_internal_r+0x5a0> + 3258: 94800404 addi r18,r18,16 + 325c: 8c400044 addi r17,r17,1 + 3260: af000015 stw fp,0(r21) + 3264: acc00115 stw r19,4(r21) + 3268: dc800e15 stw r18,56(sp) + 326c: dc400d15 stw r17,52(sp) + 3270: a47ff60e bge r20,r17,324c <___vfprintf_internal_r+0x548> + 3274: d9014f17 ldw r4,1340(sp) + 3278: b00b883a mov r5,r22 + 327c: d9800c04 addi r6,sp,48 + 3280: d9c15115 stw r7,1348(sp) + 3284: 0002cac0 call 2cac <__sprint_r> + 3288: d9c15117 ldw r7,1348(sp) + 328c: 1000551e bne r2,zero,33e4 <___vfprintf_internal_r+0x6e0> + 3290: 843ffc04 addi r16,r16,-16 + 3294: dc800e17 ldw r18,56(sp) + 3298: dc400d17 ldw r17,52(sp) + 329c: dd401904 addi r21,sp,100 + 32a0: 9c3fed16 blt r19,r16,3258 <___vfprintf_internal_r+0x554> + 32a4: 9425883a add r18,r18,r16 + 32a8: 8c400044 addi r17,r17,1 + 32ac: 008001c4 movi r2,7 + 32b0: af000015 stw fp,0(r21) + 32b4: ac000115 stw r16,4(r21) + 32b8: dc800e15 stw r18,56(sp) + 32bc: dc400d15 stw r17,52(sp) + 32c0: 14418216 blt r2,r17,38cc <___vfprintf_internal_r+0xbc8> + 32c4: ad400204 addi r21,r21,8 + 32c8: d9014c17 ldw r4,1328(sp) + 32cc: 2080400c andi r2,r4,256 + 32d0: 10004a1e bne r2,zero,33fc <___vfprintf_internal_r+0x6f8> + 32d4: d9414117 ldw r5,1284(sp) + 32d8: 91e5883a add r18,r18,r7 + 32dc: 8c400044 addi r17,r17,1 + 32e0: 008001c4 movi r2,7 + 32e4: a9400015 stw r5,0(r21) + 32e8: a9c00115 stw r7,4(r21) + 32ec: dc800e15 stw r18,56(sp) + 32f0: dc400d15 stw r17,52(sp) + 32f4: 14416716 blt r2,r17,3894 <___vfprintf_internal_r+0xb90> + 32f8: a8c00204 addi r3,r21,8 + 32fc: d9814c17 ldw r6,1328(sp) + 3300: 3080010c andi r2,r6,4 + 3304: 10002826 beq r2,zero,33a8 <___vfprintf_internal_r+0x6a4> + 3308: d8814a17 ldw r2,1320(sp) + 330c: d9014517 ldw r4,1300(sp) + 3310: 1121c83a sub r16,r2,r4 + 3314: 0400240e bge zero,r16,33a8 <___vfprintf_internal_r+0x6a4> + 3318: 00800404 movi r2,16 + 331c: 1404550e bge r2,r16,4474 <___vfprintf_internal_r+0x1770> + 3320: dc400d17 ldw r17,52(sp) + 3324: 1027883a mov r19,r2 + 3328: 07000074 movhi fp,1 + 332c: e700b584 addi fp,fp,726 + 3330: 050001c4 movi r20,7 + 3334: 00000306 br 3344 <___vfprintf_internal_r+0x640> + 3338: 843ffc04 addi r16,r16,-16 + 333c: 18c00204 addi r3,r3,8 + 3340: 9c00110e bge r19,r16,3388 <___vfprintf_internal_r+0x684> + 3344: 94800404 addi r18,r18,16 + 3348: 8c400044 addi r17,r17,1 + 334c: 1f000015 stw fp,0(r3) + 3350: 1cc00115 stw r19,4(r3) + 3354: dc800e15 stw r18,56(sp) + 3358: dc400d15 stw r17,52(sp) + 335c: a47ff60e bge r20,r17,3338 <___vfprintf_internal_r+0x634> + 3360: d9014f17 ldw r4,1340(sp) + 3364: b00b883a mov r5,r22 + 3368: d9800c04 addi r6,sp,48 + 336c: 0002cac0 call 2cac <__sprint_r> + 3370: 10001c1e bne r2,zero,33e4 <___vfprintf_internal_r+0x6e0> + 3374: 843ffc04 addi r16,r16,-16 + 3378: dc800e17 ldw r18,56(sp) + 337c: dc400d17 ldw r17,52(sp) + 3380: d8c01904 addi r3,sp,100 + 3384: 9c3fef16 blt r19,r16,3344 <___vfprintf_internal_r+0x640> + 3388: 9425883a add r18,r18,r16 + 338c: 8c400044 addi r17,r17,1 + 3390: 008001c4 movi r2,7 + 3394: 1f000015 stw fp,0(r3) + 3398: 1c000115 stw r16,4(r3) + 339c: dc800e15 stw r18,56(sp) + 33a0: dc400d15 stw r17,52(sp) + 33a4: 1440cb16 blt r2,r17,36d4 <___vfprintf_internal_r+0x9d0> + 33a8: d8814a17 ldw r2,1320(sp) + 33ac: d9414517 ldw r5,1300(sp) + 33b0: 1140010e bge r2,r5,33b8 <___vfprintf_internal_r+0x6b4> + 33b4: 2805883a mov r2,r5 + 33b8: d9814b17 ldw r6,1324(sp) + 33bc: 308d883a add r6,r6,r2 + 33c0: d9814b15 stw r6,1324(sp) + 33c4: 90013b1e bne r18,zero,38b4 <___vfprintf_internal_r+0xbb0> + 33c8: d9c14017 ldw r7,1280(sp) + 33cc: dd401904 addi r21,sp,100 + 33d0: d8000d15 stw zero,52(sp) + 33d4: 003ea706 br 2e74 <___vfprintf_internal_r+0x170> + 33d8: d8800e17 ldw r2,56(sp) + 33dc: 1005451e bne r2,zero,48f4 <___vfprintf_internal_r+0x1bf0> + 33e0: d8000d15 stw zero,52(sp) + 33e4: b080030b ldhu r2,12(r22) + 33e8: 1080100c andi r2,r2,64 + 33ec: 103e8726 beq r2,zero,2e0c <___vfprintf_internal_r+0x108> + 33f0: 00bfffc4 movi r2,-1 + 33f4: d8814b15 stw r2,1324(sp) + 33f8: 003e8406 br 2e0c <___vfprintf_internal_r+0x108> + 33fc: d9814d17 ldw r6,1332(sp) + 3400: 00801944 movi r2,101 + 3404: 11806e16 blt r2,r6,35c0 <___vfprintf_internal_r+0x8bc> + 3408: d9414717 ldw r5,1308(sp) + 340c: 00c00044 movi r3,1 + 3410: 1943490e bge r3,r5,4138 <___vfprintf_internal_r+0x1434> + 3414: d8814117 ldw r2,1284(sp) + 3418: 94800044 addi r18,r18,1 + 341c: 8c400044 addi r17,r17,1 + 3420: a8800015 stw r2,0(r21) + 3424: 008001c4 movi r2,7 + 3428: a8c00115 stw r3,4(r21) + 342c: dc800e15 stw r18,56(sp) + 3430: dc400d15 stw r17,52(sp) + 3434: 1441ca16 blt r2,r17,3b60 <___vfprintf_internal_r+0xe5c> + 3438: a8c00204 addi r3,r21,8 + 343c: d9014917 ldw r4,1316(sp) + 3440: 00800044 movi r2,1 + 3444: 94800044 addi r18,r18,1 + 3448: 8c400044 addi r17,r17,1 + 344c: 18800115 stw r2,4(r3) + 3450: 008001c4 movi r2,7 + 3454: 19000015 stw r4,0(r3) + 3458: dc800e15 stw r18,56(sp) + 345c: dc400d15 stw r17,52(sp) + 3460: 1441b616 blt r2,r17,3b3c <___vfprintf_internal_r+0xe38> + 3464: 1cc00204 addi r19,r3,8 + 3468: d9014217 ldw r4,1288(sp) + 346c: d9414317 ldw r5,1292(sp) + 3470: 000d883a mov r6,zero + 3474: 000f883a mov r7,zero + 3478: 000b7b80 call b7b8 <__nedf2> + 347c: 10017426 beq r2,zero,3a50 <___vfprintf_internal_r+0xd4c> + 3480: d9414717 ldw r5,1308(sp) + 3484: d9814117 ldw r6,1284(sp) + 3488: 8c400044 addi r17,r17,1 + 348c: 2c85883a add r2,r5,r18 + 3490: 14bfffc4 addi r18,r2,-1 + 3494: 28bfffc4 addi r2,r5,-1 + 3498: 30c00044 addi r3,r6,1 + 349c: 98800115 stw r2,4(r19) + 34a0: 008001c4 movi r2,7 + 34a4: 98c00015 stw r3,0(r19) + 34a8: dc800e15 stw r18,56(sp) + 34ac: dc400d15 stw r17,52(sp) + 34b0: 14418e16 blt r2,r17,3aec <___vfprintf_internal_r+0xde8> + 34b4: 9cc00204 addi r19,r19,8 + 34b8: d9414817 ldw r5,1312(sp) + 34bc: d8800804 addi r2,sp,32 + 34c0: 8c400044 addi r17,r17,1 + 34c4: 9165883a add r18,r18,r5 + 34c8: 98800015 stw r2,0(r19) + 34cc: 008001c4 movi r2,7 + 34d0: 99400115 stw r5,4(r19) + 34d4: dc800e15 stw r18,56(sp) + 34d8: dc400d15 stw r17,52(sp) + 34dc: 1440ed16 blt r2,r17,3894 <___vfprintf_internal_r+0xb90> + 34e0: 98c00204 addi r3,r19,8 + 34e4: 003f8506 br 32fc <___vfprintf_internal_r+0x5f8> + 34e8: d9814a17 ldw r6,1320(sp) + 34ec: d8814517 ldw r2,1300(sp) + 34f0: 30a1c83a sub r16,r6,r2 + 34f4: 043f4b0e bge zero,r16,3224 <___vfprintf_internal_r+0x520> + 34f8: 00800404 movi r2,16 + 34fc: 14043a0e bge r2,r16,45e8 <___vfprintf_internal_r+0x18e4> + 3500: 1027883a mov r19,r2 + 3504: 07000074 movhi fp,1 + 3508: e700b184 addi fp,fp,710 + 350c: 050001c4 movi r20,7 + 3510: 00000306 br 3520 <___vfprintf_internal_r+0x81c> + 3514: 843ffc04 addi r16,r16,-16 + 3518: ad400204 addi r21,r21,8 + 351c: 9c00130e bge r19,r16,356c <___vfprintf_internal_r+0x868> + 3520: 94800404 addi r18,r18,16 + 3524: 8c400044 addi r17,r17,1 + 3528: af000015 stw fp,0(r21) + 352c: acc00115 stw r19,4(r21) + 3530: dc800e15 stw r18,56(sp) + 3534: dc400d15 stw r17,52(sp) + 3538: a47ff60e bge r20,r17,3514 <___vfprintf_internal_r+0x810> + 353c: d9014f17 ldw r4,1340(sp) + 3540: b00b883a mov r5,r22 + 3544: d9800c04 addi r6,sp,48 + 3548: d9c15115 stw r7,1348(sp) + 354c: 0002cac0 call 2cac <__sprint_r> + 3550: d9c15117 ldw r7,1348(sp) + 3554: 103fa31e bne r2,zero,33e4 <___vfprintf_internal_r+0x6e0> + 3558: 843ffc04 addi r16,r16,-16 + 355c: dc800e17 ldw r18,56(sp) + 3560: dc400d17 ldw r17,52(sp) + 3564: dd401904 addi r21,sp,100 + 3568: 9c3fed16 blt r19,r16,3520 <___vfprintf_internal_r+0x81c> + 356c: 9425883a add r18,r18,r16 + 3570: 8c400044 addi r17,r17,1 + 3574: 008001c4 movi r2,7 + 3578: af000015 stw fp,0(r21) + 357c: ac000115 stw r16,4(r21) + 3580: dc800e15 stw r18,56(sp) + 3584: dc400d15 stw r17,52(sp) + 3588: 14416116 blt r2,r17,3b10 <___vfprintf_internal_r+0xe0c> + 358c: ad400204 addi r21,r21,8 + 3590: 003f2406 br 3224 <___vfprintf_internal_r+0x520> + 3594: d9014f17 ldw r4,1340(sp) + 3598: 00067b80 call 67b8 <__sinit> + 359c: d9c15117 ldw r7,1348(sp) + 35a0: 003def06 br 2d60 <___vfprintf_internal_r+0x5c> + 35a4: d9014f17 ldw r4,1340(sp) + 35a8: b00b883a mov r5,r22 + 35ac: d9c15115 stw r7,1348(sp) + 35b0: 0004bec0 call 4bec <__swsetup_r> + 35b4: d9c15117 ldw r7,1348(sp) + 35b8: 103dee26 beq r2,zero,2d74 <___vfprintf_internal_r+0x70> + 35bc: 003f8c06 br 33f0 <___vfprintf_internal_r+0x6ec> + 35c0: d9014217 ldw r4,1288(sp) + 35c4: d9414317 ldw r5,1292(sp) + 35c8: 000d883a mov r6,zero + 35cc: 000f883a mov r7,zero + 35d0: 000b7300 call b730 <__eqdf2> + 35d4: 1000f21e bne r2,zero,39a0 <___vfprintf_internal_r+0xc9c> + 35d8: 00800074 movhi r2,1 + 35dc: 1080b104 addi r2,r2,708 + 35e0: 94800044 addi r18,r18,1 + 35e4: 8c400044 addi r17,r17,1 + 35e8: a8800015 stw r2,0(r21) + 35ec: 00c00044 movi r3,1 + 35f0: 008001c4 movi r2,7 + 35f4: a8c00115 stw r3,4(r21) + 35f8: dc800e15 stw r18,56(sp) + 35fc: dc400d15 stw r17,52(sp) + 3600: 14430016 blt r2,r17,4204 <___vfprintf_internal_r+0x1500> + 3604: a8c00204 addi r3,r21,8 + 3608: d8800517 ldw r2,20(sp) + 360c: d9014717 ldw r4,1308(sp) + 3610: 11015c0e bge r2,r4,3b84 <___vfprintf_internal_r+0xe80> + 3614: dc400d17 ldw r17,52(sp) + 3618: d9814917 ldw r6,1316(sp) + 361c: 00800044 movi r2,1 + 3620: 94800044 addi r18,r18,1 + 3624: 8c400044 addi r17,r17,1 + 3628: 18800115 stw r2,4(r3) + 362c: 008001c4 movi r2,7 + 3630: 19800015 stw r6,0(r3) + 3634: dc800e15 stw r18,56(sp) + 3638: dc400d15 stw r17,52(sp) + 363c: 14431616 blt r2,r17,4298 <___vfprintf_internal_r+0x1594> + 3640: 18c00204 addi r3,r3,8 + 3644: d8814717 ldw r2,1308(sp) + 3648: 143fffc4 addi r16,r2,-1 + 364c: 043f2b0e bge zero,r16,32fc <___vfprintf_internal_r+0x5f8> + 3650: 00800404 movi r2,16 + 3654: 1402a80e bge r2,r16,40f8 <___vfprintf_internal_r+0x13f4> + 3658: dc400d17 ldw r17,52(sp) + 365c: 1027883a mov r19,r2 + 3660: 07000074 movhi fp,1 + 3664: e700b184 addi fp,fp,710 + 3668: 050001c4 movi r20,7 + 366c: 00000306 br 367c <___vfprintf_internal_r+0x978> + 3670: 18c00204 addi r3,r3,8 + 3674: 843ffc04 addi r16,r16,-16 + 3678: 9c02a20e bge r19,r16,4104 <___vfprintf_internal_r+0x1400> + 367c: 94800404 addi r18,r18,16 + 3680: 8c400044 addi r17,r17,1 + 3684: 1f000015 stw fp,0(r3) + 3688: 1cc00115 stw r19,4(r3) + 368c: dc800e15 stw r18,56(sp) + 3690: dc400d15 stw r17,52(sp) + 3694: a47ff60e bge r20,r17,3670 <___vfprintf_internal_r+0x96c> + 3698: d9014f17 ldw r4,1340(sp) + 369c: b00b883a mov r5,r22 + 36a0: d9800c04 addi r6,sp,48 + 36a4: 0002cac0 call 2cac <__sprint_r> + 36a8: 103f4e1e bne r2,zero,33e4 <___vfprintf_internal_r+0x6e0> + 36ac: dc800e17 ldw r18,56(sp) + 36b0: dc400d17 ldw r17,52(sp) + 36b4: d8c01904 addi r3,sp,100 + 36b8: 003fee06 br 3674 <___vfprintf_internal_r+0x970> + 36bc: d8802c0b ldhu r2,176(sp) + 36c0: 00ffffc4 movi r3,-1 + 36c4: d8c14b15 stw r3,1324(sp) + 36c8: 1080100c andi r2,r2,64 + 36cc: 103dcc1e bne r2,zero,2e00 <___vfprintf_internal_r+0xfc> + 36d0: 003dce06 br 2e0c <___vfprintf_internal_r+0x108> + 36d4: d9014f17 ldw r4,1340(sp) + 36d8: b00b883a mov r5,r22 + 36dc: d9800c04 addi r6,sp,48 + 36e0: 0002cac0 call 2cac <__sprint_r> + 36e4: 103f3f1e bne r2,zero,33e4 <___vfprintf_internal_r+0x6e0> + 36e8: dc800e17 ldw r18,56(sp) + 36ec: 003f2e06 br 33a8 <___vfprintf_internal_r+0x6a4> + 36f0: d9414c17 ldw r5,1328(sp) + 36f4: 29400414 ori r5,r5,16 + 36f8: d9414c15 stw r5,1328(sp) + 36fc: d9814c17 ldw r6,1328(sp) + 3700: 3080080c andi r2,r6,32 + 3704: 10014f1e bne r2,zero,3c44 <___vfprintf_internal_r+0xf40> + 3708: d8c14c17 ldw r3,1328(sp) + 370c: 1880040c andi r2,r3,16 + 3710: 1002f01e bne r2,zero,42d4 <___vfprintf_internal_r+0x15d0> + 3714: d9014c17 ldw r4,1328(sp) + 3718: 2080100c andi r2,r4,64 + 371c: 1002ed26 beq r2,zero,42d4 <___vfprintf_internal_r+0x15d0> + 3720: 3880000f ldh r2,0(r7) + 3724: 39c00104 addi r7,r7,4 + 3728: d9c14015 stw r7,1280(sp) + 372c: 1023d7fa srai r17,r2,31 + 3730: 1021883a mov r16,r2 + 3734: 88037816 blt r17,zero,4518 <___vfprintf_internal_r+0x1814> + 3738: 01000044 movi r4,1 + 373c: 98000416 blt r19,zero,3750 <___vfprintf_internal_r+0xa4c> + 3740: d8c14c17 ldw r3,1328(sp) + 3744: 00bfdfc4 movi r2,-129 + 3748: 1886703a and r3,r3,r2 + 374c: d8c14c15 stw r3,1328(sp) + 3750: 8444b03a or r2,r16,r17 + 3754: 10022c1e bne r2,zero,4008 <___vfprintf_internal_r+0x1304> + 3758: 98022b1e bne r19,zero,4008 <___vfprintf_internal_r+0x1304> + 375c: 20803fcc andi r2,r4,255 + 3760: 1002a126 beq r2,zero,41e8 <___vfprintf_internal_r+0x14e4> + 3764: d8c01904 addi r3,sp,100 + 3768: dd000f04 addi r20,sp,60 + 376c: d8c14115 stw r3,1284(sp) + 3770: d8c14117 ldw r3,1284(sp) + 3774: dcc14515 stw r19,1300(sp) + 3778: a0c5c83a sub r2,r20,r3 + 377c: 11c00a04 addi r7,r2,40 + 3780: 99c0010e bge r19,r7,3788 <___vfprintf_internal_r+0xa84> + 3784: d9c14515 stw r7,1300(sp) + 3788: dcc14615 stw r19,1304(sp) + 378c: d8800407 ldb r2,16(sp) + 3790: 103e4c26 beq r2,zero,30c4 <___vfprintf_internal_r+0x3c0> + 3794: d8814517 ldw r2,1300(sp) + 3798: 10800044 addi r2,r2,1 + 379c: d8814515 stw r2,1300(sp) + 37a0: 003e4806 br 30c4 <___vfprintf_internal_r+0x3c0> + 37a4: d9814c17 ldw r6,1328(sp) + 37a8: 31800414 ori r6,r6,16 + 37ac: d9814c15 stw r6,1328(sp) + 37b0: d8c14c17 ldw r3,1328(sp) + 37b4: 1880080c andi r2,r3,32 + 37b8: 1001271e bne r2,zero,3c58 <___vfprintf_internal_r+0xf54> + 37bc: d9414c17 ldw r5,1328(sp) + 37c0: 2880040c andi r2,r5,16 + 37c4: 1002bc1e bne r2,zero,42b8 <___vfprintf_internal_r+0x15b4> + 37c8: d9814c17 ldw r6,1328(sp) + 37cc: 3080100c andi r2,r6,64 + 37d0: 1002b926 beq r2,zero,42b8 <___vfprintf_internal_r+0x15b4> + 37d4: 3c00000b ldhu r16,0(r7) + 37d8: 0009883a mov r4,zero + 37dc: 39c00104 addi r7,r7,4 + 37e0: 0023883a mov r17,zero + 37e4: d9c14015 stw r7,1280(sp) + 37e8: d8000405 stb zero,16(sp) + 37ec: 003fd306 br 373c <___vfprintf_internal_r+0xa38> + 37f0: d9014c17 ldw r4,1328(sp) + 37f4: 21000414 ori r4,r4,16 + 37f8: d9014c15 stw r4,1328(sp) + 37fc: d9414c17 ldw r5,1328(sp) + 3800: 2880080c andi r2,r5,32 + 3804: 1001081e bne r2,zero,3c28 <___vfprintf_internal_r+0xf24> + 3808: d8c14c17 ldw r3,1328(sp) + 380c: 1880040c andi r2,r3,16 + 3810: 1002b61e bne r2,zero,42ec <___vfprintf_internal_r+0x15e8> + 3814: d9014c17 ldw r4,1328(sp) + 3818: 2080100c andi r2,r4,64 + 381c: 1002b326 beq r2,zero,42ec <___vfprintf_internal_r+0x15e8> + 3820: 3c00000b ldhu r16,0(r7) + 3824: 01000044 movi r4,1 + 3828: 39c00104 addi r7,r7,4 + 382c: 0023883a mov r17,zero + 3830: d9c14015 stw r7,1280(sp) + 3834: d8000405 stb zero,16(sp) + 3838: 003fc006 br 373c <___vfprintf_internal_r+0xa38> + 383c: d9014f17 ldw r4,1340(sp) + 3840: b00b883a mov r5,r22 + 3844: d9800c04 addi r6,sp,48 + 3848: 0002cac0 call 2cac <__sprint_r> + 384c: 103ee51e bne r2,zero,33e4 <___vfprintf_internal_r+0x6e0> + 3850: dc800e17 ldw r18,56(sp) + 3854: d8c01904 addi r3,sp,100 + 3858: d9814c17 ldw r6,1328(sp) + 385c: 3080004c andi r2,r6,1 + 3860: 1005003a cmpeq r2,r2,zero + 3864: 103ea51e bne r2,zero,32fc <___vfprintf_internal_r+0x5f8> + 3868: 00800044 movi r2,1 + 386c: dc400d17 ldw r17,52(sp) + 3870: 18800115 stw r2,4(r3) + 3874: d8814917 ldw r2,1316(sp) + 3878: 94800044 addi r18,r18,1 + 387c: 8c400044 addi r17,r17,1 + 3880: 18800015 stw r2,0(r3) + 3884: 008001c4 movi r2,7 + 3888: dc800e15 stw r18,56(sp) + 388c: dc400d15 stw r17,52(sp) + 3890: 1442240e bge r2,r17,4124 <___vfprintf_internal_r+0x1420> + 3894: d9014f17 ldw r4,1340(sp) + 3898: b00b883a mov r5,r22 + 389c: d9800c04 addi r6,sp,48 + 38a0: 0002cac0 call 2cac <__sprint_r> + 38a4: 103ecf1e bne r2,zero,33e4 <___vfprintf_internal_r+0x6e0> + 38a8: dc800e17 ldw r18,56(sp) + 38ac: d8c01904 addi r3,sp,100 + 38b0: 003e9206 br 32fc <___vfprintf_internal_r+0x5f8> + 38b4: d9014f17 ldw r4,1340(sp) + 38b8: b00b883a mov r5,r22 + 38bc: d9800c04 addi r6,sp,48 + 38c0: 0002cac0 call 2cac <__sprint_r> + 38c4: 103ec026 beq r2,zero,33c8 <___vfprintf_internal_r+0x6c4> + 38c8: 003ec606 br 33e4 <___vfprintf_internal_r+0x6e0> + 38cc: d9014f17 ldw r4,1340(sp) + 38d0: b00b883a mov r5,r22 + 38d4: d9800c04 addi r6,sp,48 + 38d8: d9c15115 stw r7,1348(sp) + 38dc: 0002cac0 call 2cac <__sprint_r> + 38e0: d9c15117 ldw r7,1348(sp) + 38e4: 103ebf1e bne r2,zero,33e4 <___vfprintf_internal_r+0x6e0> + 38e8: dc800e17 ldw r18,56(sp) + 38ec: dc400d17 ldw r17,52(sp) + 38f0: dd401904 addi r21,sp,100 + 38f4: 003e7406 br 32c8 <___vfprintf_internal_r+0x5c4> + 38f8: d9014f17 ldw r4,1340(sp) + 38fc: b00b883a mov r5,r22 + 3900: d9800c04 addi r6,sp,48 + 3904: d9c15115 stw r7,1348(sp) + 3908: 0002cac0 call 2cac <__sprint_r> + 390c: d9c15117 ldw r7,1348(sp) + 3910: 103eb41e bne r2,zero,33e4 <___vfprintf_internal_r+0x6e0> + 3914: dd401904 addi r21,sp,100 + 3918: 003d6d06 br 2ed0 <___vfprintf_internal_r+0x1cc> + 391c: d9014f17 ldw r4,1340(sp) + 3920: b00b883a mov r5,r22 + 3924: d9800c04 addi r6,sp,48 + 3928: d9c15115 stw r7,1348(sp) + 392c: 0002cac0 call 2cac <__sprint_r> + 3930: d9c15117 ldw r7,1348(sp) + 3934: 103eab1e bne r2,zero,33e4 <___vfprintf_internal_r+0x6e0> + 3938: dc800e17 ldw r18,56(sp) + 393c: dc400d17 ldw r17,52(sp) + 3940: dd401904 addi r21,sp,100 + 3944: 003e3406 br 3218 <___vfprintf_internal_r+0x514> + 3948: d9014f17 ldw r4,1340(sp) + 394c: b00b883a mov r5,r22 + 3950: d9800c04 addi r6,sp,48 + 3954: d9c15115 stw r7,1348(sp) + 3958: 0002cac0 call 2cac <__sprint_r> + 395c: d9c15117 ldw r7,1348(sp) + 3960: 103ea01e bne r2,zero,33e4 <___vfprintf_internal_r+0x6e0> + 3964: dc800e17 ldw r18,56(sp) + 3968: dc400d17 ldw r17,52(sp) + 396c: dd401904 addi r21,sp,100 + 3970: 003e1c06 br 31e4 <___vfprintf_internal_r+0x4e0> + 3974: d9014f17 ldw r4,1340(sp) + 3978: b00b883a mov r5,r22 + 397c: d9800c04 addi r6,sp,48 + 3980: d9c15115 stw r7,1348(sp) + 3984: 0002cac0 call 2cac <__sprint_r> + 3988: d9c15117 ldw r7,1348(sp) + 398c: 103e951e bne r2,zero,33e4 <___vfprintf_internal_r+0x6e0> + 3990: dc800e17 ldw r18,56(sp) + 3994: dc400d17 ldw r17,52(sp) + 3998: dd401904 addi r21,sp,100 + 399c: 003e0406 br 31b0 <___vfprintf_internal_r+0x4ac> + 39a0: d9000517 ldw r4,20(sp) + 39a4: 0102580e bge zero,r4,4308 <___vfprintf_internal_r+0x1604> + 39a8: d9814717 ldw r6,1308(sp) + 39ac: 21807a16 blt r4,r6,3b98 <___vfprintf_internal_r+0xe94> + 39b0: d8814117 ldw r2,1284(sp) + 39b4: 91a5883a add r18,r18,r6 + 39b8: 8c400044 addi r17,r17,1 + 39bc: a8800015 stw r2,0(r21) + 39c0: 008001c4 movi r2,7 + 39c4: a9800115 stw r6,4(r21) + 39c8: dc800e15 stw r18,56(sp) + 39cc: dc400d15 stw r17,52(sp) + 39d0: 1442fc16 blt r2,r17,45c4 <___vfprintf_internal_r+0x18c0> + 39d4: a8c00204 addi r3,r21,8 + 39d8: d9414717 ldw r5,1308(sp) + 39dc: 2161c83a sub r16,r4,r5 + 39e0: 043f9d0e bge zero,r16,3858 <___vfprintf_internal_r+0xb54> + 39e4: 00800404 movi r2,16 + 39e8: 1402190e bge r2,r16,4250 <___vfprintf_internal_r+0x154c> + 39ec: dc400d17 ldw r17,52(sp) + 39f0: 1027883a mov r19,r2 + 39f4: 07000074 movhi fp,1 + 39f8: e700b184 addi fp,fp,710 + 39fc: 050001c4 movi r20,7 + 3a00: 00000306 br 3a10 <___vfprintf_internal_r+0xd0c> + 3a04: 18c00204 addi r3,r3,8 + 3a08: 843ffc04 addi r16,r16,-16 + 3a0c: 9c02130e bge r19,r16,425c <___vfprintf_internal_r+0x1558> + 3a10: 94800404 addi r18,r18,16 + 3a14: 8c400044 addi r17,r17,1 + 3a18: 1f000015 stw fp,0(r3) + 3a1c: 1cc00115 stw r19,4(r3) + 3a20: dc800e15 stw r18,56(sp) + 3a24: dc400d15 stw r17,52(sp) + 3a28: a47ff60e bge r20,r17,3a04 <___vfprintf_internal_r+0xd00> + 3a2c: d9014f17 ldw r4,1340(sp) + 3a30: b00b883a mov r5,r22 + 3a34: d9800c04 addi r6,sp,48 + 3a38: 0002cac0 call 2cac <__sprint_r> + 3a3c: 103e691e bne r2,zero,33e4 <___vfprintf_internal_r+0x6e0> + 3a40: dc800e17 ldw r18,56(sp) + 3a44: dc400d17 ldw r17,52(sp) + 3a48: d8c01904 addi r3,sp,100 + 3a4c: 003fee06 br 3a08 <___vfprintf_internal_r+0xd04> + 3a50: d8814717 ldw r2,1308(sp) + 3a54: 143fffc4 addi r16,r2,-1 + 3a58: 043e970e bge zero,r16,34b8 <___vfprintf_internal_r+0x7b4> + 3a5c: 00800404 movi r2,16 + 3a60: 1400180e bge r2,r16,3ac4 <___vfprintf_internal_r+0xdc0> + 3a64: 1029883a mov r20,r2 + 3a68: 07000074 movhi fp,1 + 3a6c: e700b184 addi fp,fp,710 + 3a70: 054001c4 movi r21,7 + 3a74: 00000306 br 3a84 <___vfprintf_internal_r+0xd80> + 3a78: 9cc00204 addi r19,r19,8 + 3a7c: 843ffc04 addi r16,r16,-16 + 3a80: a400120e bge r20,r16,3acc <___vfprintf_internal_r+0xdc8> + 3a84: 94800404 addi r18,r18,16 + 3a88: 8c400044 addi r17,r17,1 + 3a8c: 9f000015 stw fp,0(r19) + 3a90: 9d000115 stw r20,4(r19) + 3a94: dc800e15 stw r18,56(sp) + 3a98: dc400d15 stw r17,52(sp) + 3a9c: ac7ff60e bge r21,r17,3a78 <___vfprintf_internal_r+0xd74> + 3aa0: d9014f17 ldw r4,1340(sp) + 3aa4: b00b883a mov r5,r22 + 3aa8: d9800c04 addi r6,sp,48 + 3aac: 0002cac0 call 2cac <__sprint_r> + 3ab0: 103e4c1e bne r2,zero,33e4 <___vfprintf_internal_r+0x6e0> + 3ab4: dc800e17 ldw r18,56(sp) + 3ab8: dc400d17 ldw r17,52(sp) + 3abc: dcc01904 addi r19,sp,100 + 3ac0: 003fee06 br 3a7c <___vfprintf_internal_r+0xd78> + 3ac4: 07000074 movhi fp,1 + 3ac8: e700b184 addi fp,fp,710 + 3acc: 9425883a add r18,r18,r16 + 3ad0: 8c400044 addi r17,r17,1 + 3ad4: 008001c4 movi r2,7 + 3ad8: 9f000015 stw fp,0(r19) + 3adc: 9c000115 stw r16,4(r19) + 3ae0: dc800e15 stw r18,56(sp) + 3ae4: dc400d15 stw r17,52(sp) + 3ae8: 147e720e bge r2,r17,34b4 <___vfprintf_internal_r+0x7b0> + 3aec: d9014f17 ldw r4,1340(sp) + 3af0: b00b883a mov r5,r22 + 3af4: d9800c04 addi r6,sp,48 + 3af8: 0002cac0 call 2cac <__sprint_r> + 3afc: 103e391e bne r2,zero,33e4 <___vfprintf_internal_r+0x6e0> + 3b00: dc800e17 ldw r18,56(sp) + 3b04: dc400d17 ldw r17,52(sp) + 3b08: dcc01904 addi r19,sp,100 + 3b0c: 003e6a06 br 34b8 <___vfprintf_internal_r+0x7b4> + 3b10: d9014f17 ldw r4,1340(sp) + 3b14: b00b883a mov r5,r22 + 3b18: d9800c04 addi r6,sp,48 + 3b1c: d9c15115 stw r7,1348(sp) + 3b20: 0002cac0 call 2cac <__sprint_r> + 3b24: d9c15117 ldw r7,1348(sp) + 3b28: 103e2e1e bne r2,zero,33e4 <___vfprintf_internal_r+0x6e0> + 3b2c: dc800e17 ldw r18,56(sp) + 3b30: dc400d17 ldw r17,52(sp) + 3b34: dd401904 addi r21,sp,100 + 3b38: 003dba06 br 3224 <___vfprintf_internal_r+0x520> + 3b3c: d9014f17 ldw r4,1340(sp) + 3b40: b00b883a mov r5,r22 + 3b44: d9800c04 addi r6,sp,48 + 3b48: 0002cac0 call 2cac <__sprint_r> + 3b4c: 103e251e bne r2,zero,33e4 <___vfprintf_internal_r+0x6e0> + 3b50: dc800e17 ldw r18,56(sp) + 3b54: dc400d17 ldw r17,52(sp) + 3b58: dcc01904 addi r19,sp,100 + 3b5c: 003e4206 br 3468 <___vfprintf_internal_r+0x764> + 3b60: d9014f17 ldw r4,1340(sp) + 3b64: b00b883a mov r5,r22 + 3b68: d9800c04 addi r6,sp,48 + 3b6c: 0002cac0 call 2cac <__sprint_r> + 3b70: 103e1c1e bne r2,zero,33e4 <___vfprintf_internal_r+0x6e0> + 3b74: dc800e17 ldw r18,56(sp) + 3b78: dc400d17 ldw r17,52(sp) + 3b7c: d8c01904 addi r3,sp,100 + 3b80: 003e2e06 br 343c <___vfprintf_internal_r+0x738> + 3b84: d9414c17 ldw r5,1328(sp) + 3b88: 2880004c andi r2,r5,1 + 3b8c: 1005003a cmpeq r2,r2,zero + 3b90: 103dda1e bne r2,zero,32fc <___vfprintf_internal_r+0x5f8> + 3b94: 003e9f06 br 3614 <___vfprintf_internal_r+0x910> + 3b98: d8c14117 ldw r3,1284(sp) + 3b9c: 9125883a add r18,r18,r4 + 3ba0: 8c400044 addi r17,r17,1 + 3ba4: 008001c4 movi r2,7 + 3ba8: a8c00015 stw r3,0(r21) + 3bac: a9000115 stw r4,4(r21) + 3bb0: dc800e15 stw r18,56(sp) + 3bb4: dc400d15 stw r17,52(sp) + 3bb8: 14426c16 blt r2,r17,456c <___vfprintf_internal_r+0x1868> + 3bbc: a8c00204 addi r3,r21,8 + 3bc0: d9414917 ldw r5,1316(sp) + 3bc4: 00800044 movi r2,1 + 3bc8: 94800044 addi r18,r18,1 + 3bcc: 8c400044 addi r17,r17,1 + 3bd0: 18800115 stw r2,4(r3) + 3bd4: 008001c4 movi r2,7 + 3bd8: 19400015 stw r5,0(r3) + 3bdc: dc800e15 stw r18,56(sp) + 3be0: dc400d15 stw r17,52(sp) + 3be4: 2021883a mov r16,r4 + 3be8: 14425616 blt r2,r17,4544 <___vfprintf_internal_r+0x1840> + 3bec: 19400204 addi r5,r3,8 + 3bf0: d9814717 ldw r6,1308(sp) + 3bf4: 8c400044 addi r17,r17,1 + 3bf8: dc400d15 stw r17,52(sp) + 3bfc: 3107c83a sub r3,r6,r4 + 3c00: d9014117 ldw r4,1284(sp) + 3c04: 90e5883a add r18,r18,r3 + 3c08: 28c00115 stw r3,4(r5) + 3c0c: 8105883a add r2,r16,r4 + 3c10: 28800015 stw r2,0(r5) + 3c14: 008001c4 movi r2,7 + 3c18: dc800e15 stw r18,56(sp) + 3c1c: 147f1d16 blt r2,r17,3894 <___vfprintf_internal_r+0xb90> + 3c20: 28c00204 addi r3,r5,8 + 3c24: 003db506 br 32fc <___vfprintf_internal_r+0x5f8> + 3c28: 3c000017 ldw r16,0(r7) + 3c2c: 3c400117 ldw r17,4(r7) + 3c30: 39800204 addi r6,r7,8 + 3c34: 01000044 movi r4,1 + 3c38: d9814015 stw r6,1280(sp) + 3c3c: d8000405 stb zero,16(sp) + 3c40: 003ebe06 br 373c <___vfprintf_internal_r+0xa38> + 3c44: 3c000017 ldw r16,0(r7) + 3c48: 3c400117 ldw r17,4(r7) + 3c4c: 38800204 addi r2,r7,8 + 3c50: d8814015 stw r2,1280(sp) + 3c54: 003eb706 br 3734 <___vfprintf_internal_r+0xa30> + 3c58: 3c000017 ldw r16,0(r7) + 3c5c: 3c400117 ldw r17,4(r7) + 3c60: 39000204 addi r4,r7,8 + 3c64: d9014015 stw r4,1280(sp) + 3c68: 0009883a mov r4,zero + 3c6c: d8000405 stb zero,16(sp) + 3c70: 003eb206 br 373c <___vfprintf_internal_r+0xa38> + 3c74: 38c00017 ldw r3,0(r7) + 3c78: 39c00104 addi r7,r7,4 + 3c7c: d8c14a15 stw r3,1320(sp) + 3c80: 1800d70e bge r3,zero,3fe0 <___vfprintf_internal_r+0x12dc> + 3c84: 00c7c83a sub r3,zero,r3 + 3c88: d8c14a15 stw r3,1320(sp) + 3c8c: d9014c17 ldw r4,1328(sp) + 3c90: b8c00007 ldb r3,0(r23) + 3c94: 21000114 ori r4,r4,4 + 3c98: d9014c15 stw r4,1328(sp) + 3c9c: 003c9806 br 2f00 <___vfprintf_internal_r+0x1fc> + 3ca0: d9814c17 ldw r6,1328(sp) + 3ca4: 3080080c andi r2,r6,32 + 3ca8: 1001f626 beq r2,zero,4484 <___vfprintf_internal_r+0x1780> + 3cac: d9014b17 ldw r4,1324(sp) + 3cb0: 38800017 ldw r2,0(r7) + 3cb4: 39c00104 addi r7,r7,4 + 3cb8: d9c14015 stw r7,1280(sp) + 3cbc: 2007d7fa srai r3,r4,31 + 3cc0: d9c14017 ldw r7,1280(sp) + 3cc4: 11000015 stw r4,0(r2) + 3cc8: 10c00115 stw r3,4(r2) + 3ccc: 003c6906 br 2e74 <___vfprintf_internal_r+0x170> + 3cd0: b8c00007 ldb r3,0(r23) + 3cd4: 00801b04 movi r2,108 + 3cd8: 18825526 beq r3,r2,4630 <___vfprintf_internal_r+0x192c> + 3cdc: d9414c17 ldw r5,1328(sp) + 3ce0: 29400414 ori r5,r5,16 + 3ce4: d9414c15 stw r5,1328(sp) + 3ce8: 003c8506 br 2f00 <___vfprintf_internal_r+0x1fc> + 3cec: d9814c17 ldw r6,1328(sp) + 3cf0: b8c00007 ldb r3,0(r23) + 3cf4: 31800814 ori r6,r6,32 + 3cf8: d9814c15 stw r6,1328(sp) + 3cfc: 003c8006 br 2f00 <___vfprintf_internal_r+0x1fc> + 3d00: d8814c17 ldw r2,1328(sp) + 3d04: 3c000017 ldw r16,0(r7) + 3d08: 00c01e04 movi r3,120 + 3d0c: 10800094 ori r2,r2,2 + 3d10: d8814c15 stw r2,1328(sp) + 3d14: 39c00104 addi r7,r7,4 + 3d18: 01400074 movhi r5,1 + 3d1c: 29409a04 addi r5,r5,616 + 3d20: 00800c04 movi r2,48 + 3d24: 0023883a mov r17,zero + 3d28: 01000084 movi r4,2 + 3d2c: d9c14015 stw r7,1280(sp) + 3d30: d8c14d15 stw r3,1332(sp) + 3d34: d9414415 stw r5,1296(sp) + 3d38: d8800445 stb r2,17(sp) + 3d3c: d8c00485 stb r3,18(sp) + 3d40: d8000405 stb zero,16(sp) + 3d44: 003e7d06 br 373c <___vfprintf_internal_r+0xa38> + 3d48: d8814c17 ldw r2,1328(sp) + 3d4c: b8c00007 ldb r3,0(r23) + 3d50: 10801014 ori r2,r2,64 + 3d54: d8814c15 stw r2,1328(sp) + 3d58: 003c6906 br 2f00 <___vfprintf_internal_r+0x1fc> + 3d5c: d9414c17 ldw r5,1328(sp) + 3d60: 2880020c andi r2,r5,8 + 3d64: 1001e526 beq r2,zero,44fc <___vfprintf_internal_r+0x17f8> + 3d68: 39800017 ldw r6,0(r7) + 3d6c: 38800204 addi r2,r7,8 + 3d70: d8814015 stw r2,1280(sp) + 3d74: d9814215 stw r6,1288(sp) + 3d78: 39c00117 ldw r7,4(r7) + 3d7c: d9c14315 stw r7,1292(sp) + 3d80: d9014217 ldw r4,1288(sp) + 3d84: d9414317 ldw r5,1292(sp) + 3d88: 00097b40 call 97b4 <__isinfd> + 3d8c: 10021d26 beq r2,zero,4604 <___vfprintf_internal_r+0x1900> + 3d90: d9014217 ldw r4,1288(sp) + 3d94: d9414317 ldw r5,1292(sp) + 3d98: 000d883a mov r6,zero + 3d9c: 000f883a mov r7,zero + 3da0: 000b9500 call b950 <__ltdf2> + 3da4: 1002d016 blt r2,zero,48e8 <___vfprintf_internal_r+0x1be4> + 3da8: d9414d17 ldw r5,1332(sp) + 3dac: 008011c4 movi r2,71 + 3db0: 11421016 blt r2,r5,45f4 <___vfprintf_internal_r+0x18f0> + 3db4: 01800074 movhi r6,1 + 3db8: 31809f04 addi r6,r6,636 + 3dbc: d9814115 stw r6,1284(sp) + 3dc0: d9014c17 ldw r4,1328(sp) + 3dc4: 00c000c4 movi r3,3 + 3dc8: 00bfdfc4 movi r2,-129 + 3dcc: 2088703a and r4,r4,r2 + 3dd0: 180f883a mov r7,r3 + 3dd4: d8c14515 stw r3,1300(sp) + 3dd8: d9014c15 stw r4,1328(sp) + 3ddc: d8014615 stw zero,1304(sp) + 3de0: 003e6a06 br 378c <___vfprintf_internal_r+0xa88> + 3de4: 38800017 ldw r2,0(r7) + 3de8: 00c00044 movi r3,1 + 3dec: 39c00104 addi r7,r7,4 + 3df0: d9c14015 stw r7,1280(sp) + 3df4: d9000f04 addi r4,sp,60 + 3df8: 180f883a mov r7,r3 + 3dfc: d8c14515 stw r3,1300(sp) + 3e00: d9014115 stw r4,1284(sp) + 3e04: d8800f05 stb r2,60(sp) + 3e08: d8000405 stb zero,16(sp) + 3e0c: 003cac06 br 30c0 <___vfprintf_internal_r+0x3bc> + 3e10: 01400074 movhi r5,1 + 3e14: 2940a504 addi r5,r5,660 + 3e18: d9414415 stw r5,1296(sp) + 3e1c: d9814c17 ldw r6,1328(sp) + 3e20: 3080080c andi r2,r6,32 + 3e24: 1000ff26 beq r2,zero,4224 <___vfprintf_internal_r+0x1520> + 3e28: 3c000017 ldw r16,0(r7) + 3e2c: 3c400117 ldw r17,4(r7) + 3e30: 38800204 addi r2,r7,8 + 3e34: d8814015 stw r2,1280(sp) + 3e38: d9414c17 ldw r5,1328(sp) + 3e3c: 2880004c andi r2,r5,1 + 3e40: 1005003a cmpeq r2,r2,zero + 3e44: 1000b91e bne r2,zero,412c <___vfprintf_internal_r+0x1428> + 3e48: 8444b03a or r2,r16,r17 + 3e4c: 1000b726 beq r2,zero,412c <___vfprintf_internal_r+0x1428> + 3e50: d9814d17 ldw r6,1332(sp) + 3e54: 29400094 ori r5,r5,2 + 3e58: 00800c04 movi r2,48 + 3e5c: 01000084 movi r4,2 + 3e60: d9414c15 stw r5,1328(sp) + 3e64: d8800445 stb r2,17(sp) + 3e68: d9800485 stb r6,18(sp) + 3e6c: d8000405 stb zero,16(sp) + 3e70: 003e3206 br 373c <___vfprintf_internal_r+0xa38> + 3e74: 01800074 movhi r6,1 + 3e78: 31809a04 addi r6,r6,616 + 3e7c: d9814415 stw r6,1296(sp) + 3e80: 003fe606 br 3e1c <___vfprintf_internal_r+0x1118> + 3e84: 00800ac4 movi r2,43 + 3e88: d8800405 stb r2,16(sp) + 3e8c: b8c00007 ldb r3,0(r23) + 3e90: 003c1b06 br 2f00 <___vfprintf_internal_r+0x1fc> + 3e94: d8814c17 ldw r2,1328(sp) + 3e98: b8c00007 ldb r3,0(r23) + 3e9c: 10800054 ori r2,r2,1 + 3ea0: d8814c15 stw r2,1328(sp) + 3ea4: 003c1606 br 2f00 <___vfprintf_internal_r+0x1fc> + 3ea8: d8800407 ldb r2,16(sp) + 3eac: 10004c1e bne r2,zero,3fe0 <___vfprintf_internal_r+0x12dc> + 3eb0: 00800804 movi r2,32 + 3eb4: d8800405 stb r2,16(sp) + 3eb8: b8c00007 ldb r3,0(r23) + 3ebc: 003c1006 br 2f00 <___vfprintf_internal_r+0x1fc> + 3ec0: d9814c17 ldw r6,1328(sp) + 3ec4: b8c00007 ldb r3,0(r23) + 3ec8: 31800214 ori r6,r6,8 + 3ecc: d9814c15 stw r6,1328(sp) + 3ed0: 003c0b06 br 2f00 <___vfprintf_internal_r+0x1fc> + 3ed4: 0009883a mov r4,zero + 3ed8: 04000244 movi r16,9 + 3edc: 01400284 movi r5,10 + 3ee0: d9c15115 stw r7,1348(sp) + 3ee4: 0002b2c0 call 2b2c <__mulsi3> + 3ee8: b9000007 ldb r4,0(r23) + 3eec: d8c14d17 ldw r3,1332(sp) + 3ef0: bdc00044 addi r23,r23,1 + 3ef4: d9014d15 stw r4,1332(sp) + 3ef8: d9414d17 ldw r5,1332(sp) + 3efc: 1885883a add r2,r3,r2 + 3f00: 113ff404 addi r4,r2,-48 + 3f04: 28bff404 addi r2,r5,-48 + 3f08: d9c15117 ldw r7,1348(sp) + 3f0c: 80bff32e bgeu r16,r2,3edc <___vfprintf_internal_r+0x11d8> + 3f10: d9014a15 stw r4,1320(sp) + 3f14: 003bfc06 br 2f08 <___vfprintf_internal_r+0x204> + 3f18: d8814c17 ldw r2,1328(sp) + 3f1c: b8c00007 ldb r3,0(r23) + 3f20: 10802014 ori r2,r2,128 + 3f24: d8814c15 stw r2,1328(sp) + 3f28: 003bf506 br 2f00 <___vfprintf_internal_r+0x1fc> + 3f2c: b8c00007 ldb r3,0(r23) + 3f30: 00800a84 movi r2,42 + 3f34: bdc00044 addi r23,r23,1 + 3f38: 18831826 beq r3,r2,4b9c <___vfprintf_internal_r+0x1e98> + 3f3c: d8c14d15 stw r3,1332(sp) + 3f40: 18bff404 addi r2,r3,-48 + 3f44: 00c00244 movi r3,9 + 3f48: 18827b36 bltu r3,r2,4938 <___vfprintf_internal_r+0x1c34> + 3f4c: 1821883a mov r16,r3 + 3f50: 0009883a mov r4,zero + 3f54: 01400284 movi r5,10 + 3f58: d9c15115 stw r7,1348(sp) + 3f5c: 0002b2c0 call 2b2c <__mulsi3> + 3f60: d9414d17 ldw r5,1332(sp) + 3f64: b9800007 ldb r6,0(r23) + 3f68: d9c15117 ldw r7,1348(sp) + 3f6c: 1145883a add r2,r2,r5 + 3f70: 113ff404 addi r4,r2,-48 + 3f74: 30bff404 addi r2,r6,-48 + 3f78: d9814d15 stw r6,1332(sp) + 3f7c: bdc00044 addi r23,r23,1 + 3f80: 80bff42e bgeu r16,r2,3f54 <___vfprintf_internal_r+0x1250> + 3f84: 2027883a mov r19,r4 + 3f88: 203bdf0e bge r4,zero,2f08 <___vfprintf_internal_r+0x204> + 3f8c: 04ffffc4 movi r19,-1 + 3f90: 003bdd06 br 2f08 <___vfprintf_internal_r+0x204> + 3f94: d8000405 stb zero,16(sp) + 3f98: 39800017 ldw r6,0(r7) + 3f9c: 39c00104 addi r7,r7,4 + 3fa0: d9c14015 stw r7,1280(sp) + 3fa4: d9814115 stw r6,1284(sp) + 3fa8: 3001c926 beq r6,zero,46d0 <___vfprintf_internal_r+0x19cc> + 3fac: 98000e16 blt r19,zero,3fe8 <___vfprintf_internal_r+0x12e4> + 3fb0: d9014117 ldw r4,1284(sp) + 3fb4: 000b883a mov r5,zero + 3fb8: 980d883a mov r6,r19 + 3fbc: 0007e380 call 7e38 + 3fc0: 10025926 beq r2,zero,4928 <___vfprintf_internal_r+0x1c24> + 3fc4: d8c14117 ldw r3,1284(sp) + 3fc8: 10cfc83a sub r7,r2,r3 + 3fcc: 99c19e16 blt r19,r7,4648 <___vfprintf_internal_r+0x1944> + 3fd0: d9c14515 stw r7,1300(sp) + 3fd4: 38000916 blt r7,zero,3ffc <___vfprintf_internal_r+0x12f8> + 3fd8: d8014615 stw zero,1304(sp) + 3fdc: 003deb06 br 378c <___vfprintf_internal_r+0xa88> + 3fe0: b8c00007 ldb r3,0(r23) + 3fe4: 003bc606 br 2f00 <___vfprintf_internal_r+0x1fc> + 3fe8: d9014117 ldw r4,1284(sp) + 3fec: 0002c380 call 2c38 + 3ff0: d8814515 stw r2,1300(sp) + 3ff4: 100f883a mov r7,r2 + 3ff8: 103ff70e bge r2,zero,3fd8 <___vfprintf_internal_r+0x12d4> + 3ffc: d8014515 stw zero,1300(sp) + 4000: d8014615 stw zero,1304(sp) + 4004: 003de106 br 378c <___vfprintf_internal_r+0xa88> + 4008: 20c03fcc andi r3,r4,255 + 400c: 00800044 movi r2,1 + 4010: 18802d26 beq r3,r2,40c8 <___vfprintf_internal_r+0x13c4> + 4014: 18800e36 bltu r3,r2,4050 <___vfprintf_internal_r+0x134c> + 4018: 00800084 movi r2,2 + 401c: 1880fa26 beq r3,r2,4408 <___vfprintf_internal_r+0x1704> + 4020: 01000074 movhi r4,1 + 4024: 2100aa04 addi r4,r4,680 + 4028: 0002c380 call 2c38 + 402c: 100f883a mov r7,r2 + 4030: dcc14515 stw r19,1300(sp) + 4034: 9880010e bge r19,r2,403c <___vfprintf_internal_r+0x1338> + 4038: d8814515 stw r2,1300(sp) + 403c: 00800074 movhi r2,1 + 4040: 1080aa04 addi r2,r2,680 + 4044: dcc14615 stw r19,1304(sp) + 4048: d8814115 stw r2,1284(sp) + 404c: 003dcf06 br 378c <___vfprintf_internal_r+0xa88> + 4050: d9401904 addi r5,sp,100 + 4054: dd000f04 addi r20,sp,60 + 4058: d9414115 stw r5,1284(sp) + 405c: 880a977a slli r5,r17,29 + 4060: d9814117 ldw r6,1284(sp) + 4064: 8004d0fa srli r2,r16,3 + 4068: 8806d0fa srli r3,r17,3 + 406c: 810001cc andi r4,r16,7 + 4070: 2884b03a or r2,r5,r2 + 4074: 31bfffc4 addi r6,r6,-1 + 4078: 21000c04 addi r4,r4,48 + 407c: d9814115 stw r6,1284(sp) + 4080: 10cab03a or r5,r2,r3 + 4084: 31000005 stb r4,0(r6) + 4088: 1021883a mov r16,r2 + 408c: 1823883a mov r17,r3 + 4090: 283ff21e bne r5,zero,405c <___vfprintf_internal_r+0x1358> + 4094: d8c14c17 ldw r3,1328(sp) + 4098: 1880004c andi r2,r3,1 + 409c: 1005003a cmpeq r2,r2,zero + 40a0: 103db31e bne r2,zero,3770 <___vfprintf_internal_r+0xa6c> + 40a4: 20803fcc andi r2,r4,255 + 40a8: 1080201c xori r2,r2,128 + 40ac: 10bfe004 addi r2,r2,-128 + 40b0: 00c00c04 movi r3,48 + 40b4: 10fdae26 beq r2,r3,3770 <___vfprintf_internal_r+0xa6c> + 40b8: 31bfffc4 addi r6,r6,-1 + 40bc: d9814115 stw r6,1284(sp) + 40c0: 30c00005 stb r3,0(r6) + 40c4: 003daa06 br 3770 <___vfprintf_internal_r+0xa6c> + 40c8: 88800068 cmpgeui r2,r17,1 + 40cc: 10002c1e bne r2,zero,4180 <___vfprintf_internal_r+0x147c> + 40d0: 8800021e bne r17,zero,40dc <___vfprintf_internal_r+0x13d8> + 40d4: 00800244 movi r2,9 + 40d8: 14002936 bltu r2,r16,4180 <___vfprintf_internal_r+0x147c> + 40dc: d90018c4 addi r4,sp,99 + 40e0: dd000f04 addi r20,sp,60 + 40e4: d9014115 stw r4,1284(sp) + 40e8: d9014117 ldw r4,1284(sp) + 40ec: 80800c04 addi r2,r16,48 + 40f0: 20800005 stb r2,0(r4) + 40f4: 003d9e06 br 3770 <___vfprintf_internal_r+0xa6c> + 40f8: dc400d17 ldw r17,52(sp) + 40fc: 07000074 movhi fp,1 + 4100: e700b184 addi fp,fp,710 + 4104: 9425883a add r18,r18,r16 + 4108: 8c400044 addi r17,r17,1 + 410c: 008001c4 movi r2,7 + 4110: 1f000015 stw fp,0(r3) + 4114: 1c000115 stw r16,4(r3) + 4118: dc800e15 stw r18,56(sp) + 411c: dc400d15 stw r17,52(sp) + 4120: 147ddc16 blt r2,r17,3894 <___vfprintf_internal_r+0xb90> + 4124: 18c00204 addi r3,r3,8 + 4128: 003c7406 br 32fc <___vfprintf_internal_r+0x5f8> + 412c: 01000084 movi r4,2 + 4130: d8000405 stb zero,16(sp) + 4134: 003d8106 br 373c <___vfprintf_internal_r+0xa38> + 4138: d9814c17 ldw r6,1328(sp) + 413c: 30c4703a and r2,r6,r3 + 4140: 1005003a cmpeq r2,r2,zero + 4144: 103cb326 beq r2,zero,3414 <___vfprintf_internal_r+0x710> + 4148: d9014117 ldw r4,1284(sp) + 414c: 94800044 addi r18,r18,1 + 4150: 8c400044 addi r17,r17,1 + 4154: 008001c4 movi r2,7 + 4158: a9000015 stw r4,0(r21) + 415c: a8c00115 stw r3,4(r21) + 4160: dc800e15 stw r18,56(sp) + 4164: dc400d15 stw r17,52(sp) + 4168: 147e6016 blt r2,r17,3aec <___vfprintf_internal_r+0xde8> + 416c: acc00204 addi r19,r21,8 + 4170: 003cd106 br 34b8 <___vfprintf_internal_r+0x7b4> + 4174: 07000074 movhi fp,1 + 4178: e700b184 addi fp,fp,710 + 417c: 003c4906 br 32a4 <___vfprintf_internal_r+0x5a0> + 4180: dd000f04 addi r20,sp,60 + 4184: dc801904 addi r18,sp,100 + 4188: 8009883a mov r4,r16 + 418c: 880b883a mov r5,r17 + 4190: 01800284 movi r6,10 + 4194: 000f883a mov r7,zero + 4198: 000a5b00 call a5b0 <__umoddi3> + 419c: 12000c04 addi r8,r2,48 + 41a0: 94bfffc4 addi r18,r18,-1 + 41a4: 8009883a mov r4,r16 + 41a8: 880b883a mov r5,r17 + 41ac: 01800284 movi r6,10 + 41b0: 000f883a mov r7,zero + 41b4: 92000005 stb r8,0(r18) + 41b8: 0009f440 call 9f44 <__udivdi3> + 41bc: 1009883a mov r4,r2 + 41c0: 1021883a mov r16,r2 + 41c4: 18800068 cmpgeui r2,r3,1 + 41c8: 1823883a mov r17,r3 + 41cc: 103fee1e bne r2,zero,4188 <___vfprintf_internal_r+0x1484> + 41d0: 1800021e bne r3,zero,41dc <___vfprintf_internal_r+0x14d8> + 41d4: 00800244 movi r2,9 + 41d8: 113feb36 bltu r2,r4,4188 <___vfprintf_internal_r+0x1484> + 41dc: 94bfffc4 addi r18,r18,-1 + 41e0: dc814115 stw r18,1284(sp) + 41e4: 003fc006 br 40e8 <___vfprintf_internal_r+0x13e4> + 41e8: d9014c17 ldw r4,1328(sp) + 41ec: 2080004c andi r2,r4,1 + 41f0: 10009a1e bne r2,zero,445c <___vfprintf_internal_r+0x1758> + 41f4: d9401904 addi r5,sp,100 + 41f8: dd000f04 addi r20,sp,60 + 41fc: d9414115 stw r5,1284(sp) + 4200: 003d5b06 br 3770 <___vfprintf_internal_r+0xa6c> + 4204: d9014f17 ldw r4,1340(sp) + 4208: b00b883a mov r5,r22 + 420c: d9800c04 addi r6,sp,48 + 4210: 0002cac0 call 2cac <__sprint_r> + 4214: 103c731e bne r2,zero,33e4 <___vfprintf_internal_r+0x6e0> + 4218: dc800e17 ldw r18,56(sp) + 421c: d8c01904 addi r3,sp,100 + 4220: 003cf906 br 3608 <___vfprintf_internal_r+0x904> + 4224: d8c14c17 ldw r3,1328(sp) + 4228: 1880040c andi r2,r3,16 + 422c: 1000711e bne r2,zero,43f4 <___vfprintf_internal_r+0x16f0> + 4230: d9014c17 ldw r4,1328(sp) + 4234: 2080100c andi r2,r4,64 + 4238: 10006e26 beq r2,zero,43f4 <___vfprintf_internal_r+0x16f0> + 423c: 3c00000b ldhu r16,0(r7) + 4240: 0023883a mov r17,zero + 4244: 39c00104 addi r7,r7,4 + 4248: d9c14015 stw r7,1280(sp) + 424c: 003efa06 br 3e38 <___vfprintf_internal_r+0x1134> + 4250: dc400d17 ldw r17,52(sp) + 4254: 07000074 movhi fp,1 + 4258: e700b184 addi fp,fp,710 + 425c: 9425883a add r18,r18,r16 + 4260: 8c400044 addi r17,r17,1 + 4264: 008001c4 movi r2,7 + 4268: 1f000015 stw fp,0(r3) + 426c: 1c000115 stw r16,4(r3) + 4270: dc800e15 stw r18,56(sp) + 4274: dc400d15 stw r17,52(sp) + 4278: 147d7016 blt r2,r17,383c <___vfprintf_internal_r+0xb38> + 427c: 18c00204 addi r3,r3,8 + 4280: 003d7506 br 3858 <___vfprintf_internal_r+0xb54> + 4284: dc800e17 ldw r18,56(sp) + 4288: dc400d17 ldw r17,52(sp) + 428c: 07000074 movhi fp,1 + 4290: e700b584 addi fp,fp,726 + 4294: 003bba06 br 3180 <___vfprintf_internal_r+0x47c> + 4298: d9014f17 ldw r4,1340(sp) + 429c: b00b883a mov r5,r22 + 42a0: d9800c04 addi r6,sp,48 + 42a4: 0002cac0 call 2cac <__sprint_r> + 42a8: 103c4e1e bne r2,zero,33e4 <___vfprintf_internal_r+0x6e0> + 42ac: dc800e17 ldw r18,56(sp) + 42b0: d8c01904 addi r3,sp,100 + 42b4: 003ce306 br 3644 <___vfprintf_internal_r+0x940> + 42b8: 3c000017 ldw r16,0(r7) + 42bc: 0009883a mov r4,zero + 42c0: 39c00104 addi r7,r7,4 + 42c4: 0023883a mov r17,zero + 42c8: d9c14015 stw r7,1280(sp) + 42cc: d8000405 stb zero,16(sp) + 42d0: 003d1a06 br 373c <___vfprintf_internal_r+0xa38> + 42d4: 38800017 ldw r2,0(r7) + 42d8: 39c00104 addi r7,r7,4 + 42dc: d9c14015 stw r7,1280(sp) + 42e0: 1023d7fa srai r17,r2,31 + 42e4: 1021883a mov r16,r2 + 42e8: 003d1206 br 3734 <___vfprintf_internal_r+0xa30> + 42ec: 3c000017 ldw r16,0(r7) + 42f0: 01000044 movi r4,1 + 42f4: 39c00104 addi r7,r7,4 + 42f8: 0023883a mov r17,zero + 42fc: d9c14015 stw r7,1280(sp) + 4300: d8000405 stb zero,16(sp) + 4304: 003d0d06 br 373c <___vfprintf_internal_r+0xa38> + 4308: 00800074 movhi r2,1 + 430c: 1080b104 addi r2,r2,708 + 4310: 94800044 addi r18,r18,1 + 4314: 8c400044 addi r17,r17,1 + 4318: a8800015 stw r2,0(r21) + 431c: 00c00044 movi r3,1 + 4320: 008001c4 movi r2,7 + 4324: a8c00115 stw r3,4(r21) + 4328: dc800e15 stw r18,56(sp) + 432c: dc400d15 stw r17,52(sp) + 4330: 1440ca16 blt r2,r17,465c <___vfprintf_internal_r+0x1958> + 4334: a8c00204 addi r3,r21,8 + 4338: 2000061e bne r4,zero,4354 <___vfprintf_internal_r+0x1650> + 433c: d9414717 ldw r5,1308(sp) + 4340: 2800041e bne r5,zero,4354 <___vfprintf_internal_r+0x1650> + 4344: d9814c17 ldw r6,1328(sp) + 4348: 3080004c andi r2,r6,1 + 434c: 1005003a cmpeq r2,r2,zero + 4350: 103bea1e bne r2,zero,32fc <___vfprintf_internal_r+0x5f8> + 4354: 00800044 movi r2,1 + 4358: dc400d17 ldw r17,52(sp) + 435c: 18800115 stw r2,4(r3) + 4360: d8814917 ldw r2,1316(sp) + 4364: 94800044 addi r18,r18,1 + 4368: 8c400044 addi r17,r17,1 + 436c: 18800015 stw r2,0(r3) + 4370: 008001c4 movi r2,7 + 4374: dc800e15 stw r18,56(sp) + 4378: dc400d15 stw r17,52(sp) + 437c: 1440ca16 blt r2,r17,46a8 <___vfprintf_internal_r+0x19a4> + 4380: 18c00204 addi r3,r3,8 + 4384: 0121c83a sub r16,zero,r4 + 4388: 0400500e bge zero,r16,44cc <___vfprintf_internal_r+0x17c8> + 438c: 00800404 movi r2,16 + 4390: 1400800e bge r2,r16,4594 <___vfprintf_internal_r+0x1890> + 4394: 1027883a mov r19,r2 + 4398: 07000074 movhi fp,1 + 439c: e700b184 addi fp,fp,710 + 43a0: 050001c4 movi r20,7 + 43a4: 00000306 br 43b4 <___vfprintf_internal_r+0x16b0> + 43a8: 18c00204 addi r3,r3,8 + 43ac: 843ffc04 addi r16,r16,-16 + 43b0: 9c007a0e bge r19,r16,459c <___vfprintf_internal_r+0x1898> + 43b4: 94800404 addi r18,r18,16 + 43b8: 8c400044 addi r17,r17,1 + 43bc: 1f000015 stw fp,0(r3) + 43c0: 1cc00115 stw r19,4(r3) + 43c4: dc800e15 stw r18,56(sp) + 43c8: dc400d15 stw r17,52(sp) + 43cc: a47ff60e bge r20,r17,43a8 <___vfprintf_internal_r+0x16a4> + 43d0: d9014f17 ldw r4,1340(sp) + 43d4: b00b883a mov r5,r22 + 43d8: d9800c04 addi r6,sp,48 + 43dc: 0002cac0 call 2cac <__sprint_r> + 43e0: 103c001e bne r2,zero,33e4 <___vfprintf_internal_r+0x6e0> + 43e4: dc800e17 ldw r18,56(sp) + 43e8: dc400d17 ldw r17,52(sp) + 43ec: d8c01904 addi r3,sp,100 + 43f0: 003fee06 br 43ac <___vfprintf_internal_r+0x16a8> + 43f4: 3c000017 ldw r16,0(r7) + 43f8: 0023883a mov r17,zero + 43fc: 39c00104 addi r7,r7,4 + 4400: d9c14015 stw r7,1280(sp) + 4404: 003e8c06 br 3e38 <___vfprintf_internal_r+0x1134> + 4408: d9401904 addi r5,sp,100 + 440c: dd000f04 addi r20,sp,60 + 4410: d9414115 stw r5,1284(sp) + 4414: d9814417 ldw r6,1296(sp) + 4418: 880a973a slli r5,r17,28 + 441c: 8004d13a srli r2,r16,4 + 4420: 810003cc andi r4,r16,15 + 4424: 3109883a add r4,r6,r4 + 4428: 2884b03a or r2,r5,r2 + 442c: 21400003 ldbu r5,0(r4) + 4430: d9014117 ldw r4,1284(sp) + 4434: 8806d13a srli r3,r17,4 + 4438: 1021883a mov r16,r2 + 443c: 213fffc4 addi r4,r4,-1 + 4440: d9014115 stw r4,1284(sp) + 4444: d9814117 ldw r6,1284(sp) + 4448: 10c8b03a or r4,r2,r3 + 444c: 1823883a mov r17,r3 + 4450: 31400005 stb r5,0(r6) + 4454: 203fef1e bne r4,zero,4414 <___vfprintf_internal_r+0x1710> + 4458: 003cc506 br 3770 <___vfprintf_internal_r+0xa6c> + 445c: 00800c04 movi r2,48 + 4460: d98018c4 addi r6,sp,99 + 4464: dd000f04 addi r20,sp,60 + 4468: d88018c5 stb r2,99(sp) + 446c: d9814115 stw r6,1284(sp) + 4470: 003cbf06 br 3770 <___vfprintf_internal_r+0xa6c> + 4474: dc400d17 ldw r17,52(sp) + 4478: 07000074 movhi fp,1 + 447c: e700b584 addi fp,fp,726 + 4480: 003bc106 br 3388 <___vfprintf_internal_r+0x684> + 4484: d9414c17 ldw r5,1328(sp) + 4488: 2880040c andi r2,r5,16 + 448c: 10007c26 beq r2,zero,4680 <___vfprintf_internal_r+0x197c> + 4490: 38800017 ldw r2,0(r7) + 4494: 39c00104 addi r7,r7,4 + 4498: d9c14015 stw r7,1280(sp) + 449c: d9814b17 ldw r6,1324(sp) + 44a0: d9c14017 ldw r7,1280(sp) + 44a4: 11800015 stw r6,0(r2) + 44a8: 003a7206 br 2e74 <___vfprintf_internal_r+0x170> + 44ac: d9014f17 ldw r4,1340(sp) + 44b0: b00b883a mov r5,r22 + 44b4: d9800c04 addi r6,sp,48 + 44b8: 0002cac0 call 2cac <__sprint_r> + 44bc: 103bc91e bne r2,zero,33e4 <___vfprintf_internal_r+0x6e0> + 44c0: dc800e17 ldw r18,56(sp) + 44c4: dc400d17 ldw r17,52(sp) + 44c8: d8c01904 addi r3,sp,100 + 44cc: d9014717 ldw r4,1308(sp) + 44d0: d9414117 ldw r5,1284(sp) + 44d4: 8c400044 addi r17,r17,1 + 44d8: 9125883a add r18,r18,r4 + 44dc: 008001c4 movi r2,7 + 44e0: 19400015 stw r5,0(r3) + 44e4: 19000115 stw r4,4(r3) + 44e8: dc800e15 stw r18,56(sp) + 44ec: dc400d15 stw r17,52(sp) + 44f0: 147ce816 blt r2,r17,3894 <___vfprintf_internal_r+0xb90> + 44f4: 18c00204 addi r3,r3,8 + 44f8: 003b8006 br 32fc <___vfprintf_internal_r+0x5f8> + 44fc: 38c00017 ldw r3,0(r7) + 4500: 39000204 addi r4,r7,8 + 4504: d9014015 stw r4,1280(sp) + 4508: d8c14215 stw r3,1288(sp) + 450c: 39c00117 ldw r7,4(r7) + 4510: d9c14315 stw r7,1292(sp) + 4514: 003e1a06 br 3d80 <___vfprintf_internal_r+0x107c> + 4518: 0005883a mov r2,zero + 451c: 1409c83a sub r4,r2,r16 + 4520: 1105803a cmpltu r2,r2,r4 + 4524: 044bc83a sub r5,zero,r17 + 4528: 2885c83a sub r2,r5,r2 + 452c: 2021883a mov r16,r4 + 4530: 1023883a mov r17,r2 + 4534: 01000044 movi r4,1 + 4538: 00800b44 movi r2,45 + 453c: d8800405 stb r2,16(sp) + 4540: 003c7e06 br 373c <___vfprintf_internal_r+0xa38> + 4544: d9014f17 ldw r4,1340(sp) + 4548: b00b883a mov r5,r22 + 454c: d9800c04 addi r6,sp,48 + 4550: 0002cac0 call 2cac <__sprint_r> + 4554: 103ba31e bne r2,zero,33e4 <___vfprintf_internal_r+0x6e0> + 4558: dc800e17 ldw r18,56(sp) + 455c: dc400d17 ldw r17,52(sp) + 4560: d9000517 ldw r4,20(sp) + 4564: d9401904 addi r5,sp,100 + 4568: 003da106 br 3bf0 <___vfprintf_internal_r+0xeec> + 456c: d9014f17 ldw r4,1340(sp) + 4570: b00b883a mov r5,r22 + 4574: d9800c04 addi r6,sp,48 + 4578: 0002cac0 call 2cac <__sprint_r> + 457c: 103b991e bne r2,zero,33e4 <___vfprintf_internal_r+0x6e0> + 4580: dc800e17 ldw r18,56(sp) + 4584: dc400d17 ldw r17,52(sp) + 4588: d9000517 ldw r4,20(sp) + 458c: d8c01904 addi r3,sp,100 + 4590: 003d8b06 br 3bc0 <___vfprintf_internal_r+0xebc> + 4594: 07000074 movhi fp,1 + 4598: e700b184 addi fp,fp,710 + 459c: 9425883a add r18,r18,r16 + 45a0: 8c400044 addi r17,r17,1 + 45a4: 008001c4 movi r2,7 + 45a8: 1f000015 stw fp,0(r3) + 45ac: 1c000115 stw r16,4(r3) + 45b0: dc800e15 stw r18,56(sp) + 45b4: dc400d15 stw r17,52(sp) + 45b8: 147fbc16 blt r2,r17,44ac <___vfprintf_internal_r+0x17a8> + 45bc: 18c00204 addi r3,r3,8 + 45c0: 003fc206 br 44cc <___vfprintf_internal_r+0x17c8> + 45c4: d9014f17 ldw r4,1340(sp) + 45c8: b00b883a mov r5,r22 + 45cc: d9800c04 addi r6,sp,48 + 45d0: 0002cac0 call 2cac <__sprint_r> + 45d4: 103b831e bne r2,zero,33e4 <___vfprintf_internal_r+0x6e0> + 45d8: dc800e17 ldw r18,56(sp) + 45dc: d9000517 ldw r4,20(sp) + 45e0: d8c01904 addi r3,sp,100 + 45e4: 003cfc06 br 39d8 <___vfprintf_internal_r+0xcd4> + 45e8: 07000074 movhi fp,1 + 45ec: e700b184 addi fp,fp,710 + 45f0: 003bde06 br 356c <___vfprintf_internal_r+0x868> + 45f4: 00800074 movhi r2,1 + 45f8: 1080a004 addi r2,r2,640 + 45fc: d8814115 stw r2,1284(sp) + 4600: 003def06 br 3dc0 <___vfprintf_internal_r+0x10bc> + 4604: d9014217 ldw r4,1288(sp) + 4608: d9414317 ldw r5,1292(sp) + 460c: 00097f40 call 97f4 <__isnand> + 4610: 10003926 beq r2,zero,46f8 <___vfprintf_internal_r+0x19f4> + 4614: d9414d17 ldw r5,1332(sp) + 4618: 008011c4 movi r2,71 + 461c: 1140ce16 blt r2,r5,4958 <___vfprintf_internal_r+0x1c54> + 4620: 01800074 movhi r6,1 + 4624: 3180a104 addi r6,r6,644 + 4628: d9814115 stw r6,1284(sp) + 462c: 003de406 br 3dc0 <___vfprintf_internal_r+0x10bc> + 4630: d9014c17 ldw r4,1328(sp) + 4634: bdc00044 addi r23,r23,1 + 4638: b8c00007 ldb r3,0(r23) + 463c: 21000814 ori r4,r4,32 + 4640: d9014c15 stw r4,1328(sp) + 4644: 003a2e06 br 2f00 <___vfprintf_internal_r+0x1fc> + 4648: dcc14515 stw r19,1300(sp) + 464c: 98011016 blt r19,zero,4a90 <___vfprintf_internal_r+0x1d8c> + 4650: 980f883a mov r7,r19 + 4654: d8014615 stw zero,1304(sp) + 4658: 003c4c06 br 378c <___vfprintf_internal_r+0xa88> + 465c: d9014f17 ldw r4,1340(sp) + 4660: b00b883a mov r5,r22 + 4664: d9800c04 addi r6,sp,48 + 4668: 0002cac0 call 2cac <__sprint_r> + 466c: 103b5d1e bne r2,zero,33e4 <___vfprintf_internal_r+0x6e0> + 4670: dc800e17 ldw r18,56(sp) + 4674: d9000517 ldw r4,20(sp) + 4678: d8c01904 addi r3,sp,100 + 467c: 003f2e06 br 4338 <___vfprintf_internal_r+0x1634> + 4680: d8c14c17 ldw r3,1328(sp) + 4684: 1880100c andi r2,r3,64 + 4688: 1000a026 beq r2,zero,490c <___vfprintf_internal_r+0x1c08> + 468c: 38800017 ldw r2,0(r7) + 4690: 39c00104 addi r7,r7,4 + 4694: d9c14015 stw r7,1280(sp) + 4698: d9014b17 ldw r4,1324(sp) + 469c: d9c14017 ldw r7,1280(sp) + 46a0: 1100000d sth r4,0(r2) + 46a4: 0039f306 br 2e74 <___vfprintf_internal_r+0x170> + 46a8: d9014f17 ldw r4,1340(sp) + 46ac: b00b883a mov r5,r22 + 46b0: d9800c04 addi r6,sp,48 + 46b4: 0002cac0 call 2cac <__sprint_r> + 46b8: 103b4a1e bne r2,zero,33e4 <___vfprintf_internal_r+0x6e0> + 46bc: dc800e17 ldw r18,56(sp) + 46c0: dc400d17 ldw r17,52(sp) + 46c4: d9000517 ldw r4,20(sp) + 46c8: d8c01904 addi r3,sp,100 + 46cc: 003f2d06 br 4384 <___vfprintf_internal_r+0x1680> + 46d0: 00800184 movi r2,6 + 46d4: 14c09a36 bltu r2,r19,4940 <___vfprintf_internal_r+0x1c3c> + 46d8: dcc14515 stw r19,1300(sp) + 46dc: 9800010e bge r19,zero,46e4 <___vfprintf_internal_r+0x19e0> + 46e0: d8014515 stw zero,1300(sp) + 46e4: 00800074 movhi r2,1 + 46e8: 1080a304 addi r2,r2,652 + 46ec: 980f883a mov r7,r19 + 46f0: d8814115 stw r2,1284(sp) + 46f4: 003a7206 br 30c0 <___vfprintf_internal_r+0x3bc> + 46f8: 00bfffc4 movi r2,-1 + 46fc: 9880e226 beq r19,r2,4a88 <___vfprintf_internal_r+0x1d84> + 4700: d9414d17 ldw r5,1332(sp) + 4704: 008019c4 movi r2,103 + 4708: 2880dc26 beq r5,r2,4a7c <___vfprintf_internal_r+0x1d78> + 470c: 008011c4 movi r2,71 + 4710: 2880da26 beq r5,r2,4a7c <___vfprintf_internal_r+0x1d78> + 4714: d9414c17 ldw r5,1328(sp) + 4718: d9014317 ldw r4,1292(sp) + 471c: d9814217 ldw r6,1288(sp) + 4720: 29404014 ori r5,r5,256 + 4724: d9414c15 stw r5,1328(sp) + 4728: 2000cc16 blt r4,zero,4a5c <___vfprintf_internal_r+0x1d58> + 472c: 3021883a mov r16,r6 + 4730: 2023883a mov r17,r4 + 4734: 0039883a mov fp,zero + 4738: d9414d17 ldw r5,1332(sp) + 473c: 00801984 movi r2,102 + 4740: 2880b726 beq r5,r2,4a20 <___vfprintf_internal_r+0x1d1c> + 4744: 00801184 movi r2,70 + 4748: 2880b526 beq r5,r2,4a20 <___vfprintf_internal_r+0x1d1c> + 474c: 00801944 movi r2,101 + 4750: 2880c826 beq r5,r2,4a74 <___vfprintf_internal_r+0x1d70> + 4754: 00801144 movi r2,69 + 4758: 2880c626 beq r5,r2,4a74 <___vfprintf_internal_r+0x1d70> + 475c: 9829883a mov r20,r19 + 4760: d9014f17 ldw r4,1340(sp) + 4764: d8800504 addi r2,sp,20 + 4768: 880d883a mov r6,r17 + 476c: d8800115 stw r2,4(sp) + 4770: d8c00604 addi r3,sp,24 + 4774: d8800704 addi r2,sp,28 + 4778: 800b883a mov r5,r16 + 477c: 01c00084 movi r7,2 + 4780: d8c00215 stw r3,8(sp) + 4784: d8800315 stw r2,12(sp) + 4788: dd000015 stw r20,0(sp) + 478c: 0004f6c0 call 4f6c <_dtoa_r> + 4790: d9814d17 ldw r6,1332(sp) + 4794: d8814115 stw r2,1284(sp) + 4798: 008019c4 movi r2,103 + 479c: 30809526 beq r6,r2,49f4 <___vfprintf_internal_r+0x1cf0> + 47a0: d8c14d17 ldw r3,1332(sp) + 47a4: 008011c4 movi r2,71 + 47a8: 18809226 beq r3,r2,49f4 <___vfprintf_internal_r+0x1cf0> + 47ac: d9414117 ldw r5,1284(sp) + 47b0: d9814d17 ldw r6,1332(sp) + 47b4: 00801984 movi r2,102 + 47b8: 2d25883a add r18,r5,r20 + 47bc: 30808626 beq r6,r2,49d8 <___vfprintf_internal_r+0x1cd4> + 47c0: 00801184 movi r2,70 + 47c4: 30808426 beq r6,r2,49d8 <___vfprintf_internal_r+0x1cd4> + 47c8: 000d883a mov r6,zero + 47cc: 000f883a mov r7,zero + 47d0: 880b883a mov r5,r17 + 47d4: 8009883a mov r4,r16 + 47d8: 000b7300 call b730 <__eqdf2> + 47dc: 1000751e bne r2,zero,49b4 <___vfprintf_internal_r+0x1cb0> + 47e0: 9005883a mov r2,r18 + 47e4: dc800715 stw r18,28(sp) + 47e8: d9014117 ldw r4,1284(sp) + 47ec: d9414d17 ldw r5,1332(sp) + 47f0: 00c019c4 movi r3,103 + 47f4: 1125c83a sub r18,r2,r4 + 47f8: 28c06826 beq r5,r3,499c <___vfprintf_internal_r+0x1c98> + 47fc: 008011c4 movi r2,71 + 4800: 28806626 beq r5,r2,499c <___vfprintf_internal_r+0x1c98> + 4804: d9000517 ldw r4,20(sp) + 4808: d8c14d17 ldw r3,1332(sp) + 480c: 00801944 movi r2,101 + 4810: 10c05516 blt r2,r3,4968 <___vfprintf_internal_r+0x1c64> + 4814: 213fffc4 addi r4,r4,-1 + 4818: d9000515 stw r4,20(sp) + 481c: d8c00805 stb r3,32(sp) + 4820: 2021883a mov r16,r4 + 4824: 2000c116 blt r4,zero,4b2c <___vfprintf_internal_r+0x1e28> + 4828: 00800ac4 movi r2,43 + 482c: d8800845 stb r2,33(sp) + 4830: 00800244 movi r2,9 + 4834: 1400af0e bge r2,r16,4af4 <___vfprintf_internal_r+0x1df0> + 4838: 1027883a mov r19,r2 + 483c: dc400b84 addi r17,sp,46 + 4840: 8009883a mov r4,r16 + 4844: 01400284 movi r5,10 + 4848: 0002abc0 call 2abc <__modsi3> + 484c: 10800c04 addi r2,r2,48 + 4850: 8c7fffc4 addi r17,r17,-1 + 4854: 8009883a mov r4,r16 + 4858: 01400284 movi r5,10 + 485c: 88800005 stb r2,0(r17) + 4860: 0002a5c0 call 2a5c <__divsi3> + 4864: 1021883a mov r16,r2 + 4868: 98bff516 blt r19,r2,4840 <___vfprintf_internal_r+0x1b3c> + 486c: 10c00c04 addi r3,r2,48 + 4870: d88009c4 addi r2,sp,39 + 4874: 108001c4 addi r2,r2,7 + 4878: 897fffc4 addi r5,r17,-1 + 487c: 88ffffc5 stb r3,-1(r17) + 4880: 2880a72e bgeu r5,r2,4b20 <___vfprintf_internal_r+0x1e1c> + 4884: 1009883a mov r4,r2 + 4888: d9800804 addi r6,sp,32 + 488c: d8c00884 addi r3,sp,34 + 4890: 28800003 ldbu r2,0(r5) + 4894: 29400044 addi r5,r5,1 + 4898: 18800005 stb r2,0(r3) + 489c: 18c00044 addi r3,r3,1 + 48a0: 293ffb36 bltu r5,r4,4890 <___vfprintf_internal_r+0x1b8c> + 48a4: 1987c83a sub r3,r3,r6 + 48a8: 00800044 movi r2,1 + 48ac: d8c14815 stw r3,1312(sp) + 48b0: 90cf883a add r7,r18,r3 + 48b4: 1480960e bge r2,r18,4b10 <___vfprintf_internal_r+0x1e0c> + 48b8: 39c00044 addi r7,r7,1 + 48bc: d9c14515 stw r7,1300(sp) + 48c0: 38003416 blt r7,zero,4994 <___vfprintf_internal_r+0x1c90> + 48c4: e0803fcc andi r2,fp,255 + 48c8: 1080201c xori r2,r2,128 + 48cc: 10bfe004 addi r2,r2,-128 + 48d0: 10004e26 beq r2,zero,4a0c <___vfprintf_internal_r+0x1d08> + 48d4: 00800b44 movi r2,45 + 48d8: dc814715 stw r18,1308(sp) + 48dc: d8014615 stw zero,1304(sp) + 48e0: d8800405 stb r2,16(sp) + 48e4: 003bab06 br 3794 <___vfprintf_internal_r+0xa90> + 48e8: 00800b44 movi r2,45 + 48ec: d8800405 stb r2,16(sp) + 48f0: 003d2d06 br 3da8 <___vfprintf_internal_r+0x10a4> + 48f4: d9014f17 ldw r4,1340(sp) + 48f8: b00b883a mov r5,r22 + 48fc: d9800c04 addi r6,sp,48 + 4900: 0002cac0 call 2cac <__sprint_r> + 4904: 103ab71e bne r2,zero,33e4 <___vfprintf_internal_r+0x6e0> + 4908: 003ab506 br 33e0 <___vfprintf_internal_r+0x6dc> + 490c: 38800017 ldw r2,0(r7) + 4910: 39c00104 addi r7,r7,4 + 4914: d9c14015 stw r7,1280(sp) + 4918: d9414b17 ldw r5,1324(sp) + 491c: d9c14017 ldw r7,1280(sp) + 4920: 11400015 stw r5,0(r2) + 4924: 00395306 br 2e74 <___vfprintf_internal_r+0x170> + 4928: 980f883a mov r7,r19 + 492c: dcc14515 stw r19,1300(sp) + 4930: d8014615 stw zero,1304(sp) + 4934: 003b9506 br 378c <___vfprintf_internal_r+0xa88> + 4938: 0027883a mov r19,zero + 493c: 00397206 br 2f08 <___vfprintf_internal_r+0x204> + 4940: 00c00074 movhi r3,1 + 4944: 18c0a304 addi r3,r3,652 + 4948: 100f883a mov r7,r2 + 494c: d8814515 stw r2,1300(sp) + 4950: d8c14115 stw r3,1284(sp) + 4954: 0039da06 br 30c0 <___vfprintf_internal_r+0x3bc> + 4958: 00800074 movhi r2,1 + 495c: 1080a204 addi r2,r2,648 + 4960: d8814115 stw r2,1284(sp) + 4964: 003d1606 br 3dc0 <___vfprintf_internal_r+0x10bc> + 4968: d9414d17 ldw r5,1332(sp) + 496c: 00801984 movi r2,102 + 4970: 28804926 beq r5,r2,4a98 <___vfprintf_internal_r+0x1d94> + 4974: 200f883a mov r7,r4 + 4978: 24805716 blt r4,r18,4ad8 <___vfprintf_internal_r+0x1dd4> + 497c: d9414c17 ldw r5,1328(sp) + 4980: 2880004c andi r2,r5,1 + 4984: 10000126 beq r2,zero,498c <___vfprintf_internal_r+0x1c88> + 4988: 21c00044 addi r7,r4,1 + 498c: d9c14515 stw r7,1300(sp) + 4990: 383fcc0e bge r7,zero,48c4 <___vfprintf_internal_r+0x1bc0> + 4994: d8014515 stw zero,1300(sp) + 4998: 003fca06 br 48c4 <___vfprintf_internal_r+0x1bc0> + 499c: d9000517 ldw r4,20(sp) + 49a0: 00bfff04 movi r2,-4 + 49a4: 1100480e bge r2,r4,4ac8 <___vfprintf_internal_r+0x1dc4> + 49a8: 99004716 blt r19,r4,4ac8 <___vfprintf_internal_r+0x1dc4> + 49ac: d8c14d15 stw r3,1332(sp) + 49b0: 003ff006 br 4974 <___vfprintf_internal_r+0x1c70> + 49b4: d8800717 ldw r2,28(sp) + 49b8: 14bf8b2e bgeu r2,r18,47e8 <___vfprintf_internal_r+0x1ae4> + 49bc: 9007883a mov r3,r18 + 49c0: 01000c04 movi r4,48 + 49c4: 11000005 stb r4,0(r2) + 49c8: 10800044 addi r2,r2,1 + 49cc: d8800715 stw r2,28(sp) + 49d0: 18bffc1e bne r3,r2,49c4 <___vfprintf_internal_r+0x1cc0> + 49d4: 003f8406 br 47e8 <___vfprintf_internal_r+0x1ae4> + 49d8: d8814117 ldw r2,1284(sp) + 49dc: 10c00007 ldb r3,0(r2) + 49e0: 00800c04 movi r2,48 + 49e4: 18805b26 beq r3,r2,4b54 <___vfprintf_internal_r+0x1e50> + 49e8: d9000517 ldw r4,20(sp) + 49ec: 9125883a add r18,r18,r4 + 49f0: 003f7506 br 47c8 <___vfprintf_internal_r+0x1ac4> + 49f4: d9014c17 ldw r4,1328(sp) + 49f8: 2080004c andi r2,r4,1 + 49fc: 1005003a cmpeq r2,r2,zero + 4a00: 103f6a26 beq r2,zero,47ac <___vfprintf_internal_r+0x1aa8> + 4a04: d8800717 ldw r2,28(sp) + 4a08: 003f7706 br 47e8 <___vfprintf_internal_r+0x1ae4> + 4a0c: d9c14515 stw r7,1300(sp) + 4a10: 38004d16 blt r7,zero,4b48 <___vfprintf_internal_r+0x1e44> + 4a14: dc814715 stw r18,1308(sp) + 4a18: d8014615 stw zero,1304(sp) + 4a1c: 003b5b06 br 378c <___vfprintf_internal_r+0xa88> + 4a20: d9014f17 ldw r4,1340(sp) + 4a24: d8800504 addi r2,sp,20 + 4a28: d8800115 stw r2,4(sp) + 4a2c: d8c00604 addi r3,sp,24 + 4a30: d8800704 addi r2,sp,28 + 4a34: 800b883a mov r5,r16 + 4a38: 880d883a mov r6,r17 + 4a3c: 01c000c4 movi r7,3 + 4a40: d8c00215 stw r3,8(sp) + 4a44: d8800315 stw r2,12(sp) + 4a48: dcc00015 stw r19,0(sp) + 4a4c: 9829883a mov r20,r19 + 4a50: 0004f6c0 call 4f6c <_dtoa_r> + 4a54: d8814115 stw r2,1284(sp) + 4a58: 003f5106 br 47a0 <___vfprintf_internal_r+0x1a9c> + 4a5c: d8c14217 ldw r3,1288(sp) + 4a60: d9014317 ldw r4,1292(sp) + 4a64: 07000b44 movi fp,45 + 4a68: 1821883a mov r16,r3 + 4a6c: 2460003c xorhi r17,r4,32768 + 4a70: 003f3106 br 4738 <___vfprintf_internal_r+0x1a34> + 4a74: 9d000044 addi r20,r19,1 + 4a78: 003f3906 br 4760 <___vfprintf_internal_r+0x1a5c> + 4a7c: 983f251e bne r19,zero,4714 <___vfprintf_internal_r+0x1a10> + 4a80: 04c00044 movi r19,1 + 4a84: 003f2306 br 4714 <___vfprintf_internal_r+0x1a10> + 4a88: 04c00184 movi r19,6 + 4a8c: 003f2106 br 4714 <___vfprintf_internal_r+0x1a10> + 4a90: d8014515 stw zero,1300(sp) + 4a94: 003eee06 br 4650 <___vfprintf_internal_r+0x194c> + 4a98: 200f883a mov r7,r4 + 4a9c: 0100370e bge zero,r4,4b7c <___vfprintf_internal_r+0x1e78> + 4aa0: 9800031e bne r19,zero,4ab0 <___vfprintf_internal_r+0x1dac> + 4aa4: d9814c17 ldw r6,1328(sp) + 4aa8: 3080004c andi r2,r6,1 + 4aac: 103fb726 beq r2,zero,498c <___vfprintf_internal_r+0x1c88> + 4ab0: 20800044 addi r2,r4,1 + 4ab4: 98a7883a add r19,r19,r2 + 4ab8: dcc14515 stw r19,1300(sp) + 4abc: 980f883a mov r7,r19 + 4ac0: 983f800e bge r19,zero,48c4 <___vfprintf_internal_r+0x1bc0> + 4ac4: 003fb306 br 4994 <___vfprintf_internal_r+0x1c90> + 4ac8: d9814d17 ldw r6,1332(sp) + 4acc: 31bfff84 addi r6,r6,-2 + 4ad0: d9814d15 stw r6,1332(sp) + 4ad4: 003f4c06 br 4808 <___vfprintf_internal_r+0x1b04> + 4ad8: 0100180e bge zero,r4,4b3c <___vfprintf_internal_r+0x1e38> + 4adc: 00800044 movi r2,1 + 4ae0: 1485883a add r2,r2,r18 + 4ae4: d8814515 stw r2,1300(sp) + 4ae8: 100f883a mov r7,r2 + 4aec: 103f750e bge r2,zero,48c4 <___vfprintf_internal_r+0x1bc0> + 4af0: 003fa806 br 4994 <___vfprintf_internal_r+0x1c90> + 4af4: 80c00c04 addi r3,r16,48 + 4af8: 00800c04 movi r2,48 + 4afc: d8c008c5 stb r3,35(sp) + 4b00: d9800804 addi r6,sp,32 + 4b04: d8c00904 addi r3,sp,36 + 4b08: d8800885 stb r2,34(sp) + 4b0c: 003f6506 br 48a4 <___vfprintf_internal_r+0x1ba0> + 4b10: d9014c17 ldw r4,1328(sp) + 4b14: 2084703a and r2,r4,r2 + 4b18: 103f9c26 beq r2,zero,498c <___vfprintf_internal_r+0x1c88> + 4b1c: 003f6606 br 48b8 <___vfprintf_internal_r+0x1bb4> + 4b20: d9800804 addi r6,sp,32 + 4b24: d8c00884 addi r3,sp,34 + 4b28: 003f5e06 br 48a4 <___vfprintf_internal_r+0x1ba0> + 4b2c: 00800b44 movi r2,45 + 4b30: 0121c83a sub r16,zero,r4 + 4b34: d8800845 stb r2,33(sp) + 4b38: 003f3d06 br 4830 <___vfprintf_internal_r+0x1b2c> + 4b3c: 00800084 movi r2,2 + 4b40: 1105c83a sub r2,r2,r4 + 4b44: 003fe606 br 4ae0 <___vfprintf_internal_r+0x1ddc> + 4b48: d8014515 stw zero,1300(sp) + 4b4c: dc814715 stw r18,1308(sp) + 4b50: 003fb106 br 4a18 <___vfprintf_internal_r+0x1d14> + 4b54: 000d883a mov r6,zero + 4b58: 000f883a mov r7,zero + 4b5c: 8009883a mov r4,r16 + 4b60: 880b883a mov r5,r17 + 4b64: 000b7b80 call b7b8 <__nedf2> + 4b68: 103f9f26 beq r2,zero,49e8 <___vfprintf_internal_r+0x1ce4> + 4b6c: 00800044 movi r2,1 + 4b70: 1509c83a sub r4,r2,r20 + 4b74: d9000515 stw r4,20(sp) + 4b78: 003f9b06 br 49e8 <___vfprintf_internal_r+0x1ce4> + 4b7c: 98000d1e bne r19,zero,4bb4 <___vfprintf_internal_r+0x1eb0> + 4b80: d8c14c17 ldw r3,1328(sp) + 4b84: 1880004c andi r2,r3,1 + 4b88: 10000a1e bne r2,zero,4bb4 <___vfprintf_internal_r+0x1eb0> + 4b8c: 01000044 movi r4,1 + 4b90: 200f883a mov r7,r4 + 4b94: d9014515 stw r4,1300(sp) + 4b98: 003f4a06 br 48c4 <___vfprintf_internal_r+0x1bc0> + 4b9c: 3cc00017 ldw r19,0(r7) + 4ba0: 39c00104 addi r7,r7,4 + 4ba4: 983d0e0e bge r19,zero,3fe0 <___vfprintf_internal_r+0x12dc> + 4ba8: b8c00007 ldb r3,0(r23) + 4bac: 04ffffc4 movi r19,-1 + 4bb0: 0038d306 br 2f00 <___vfprintf_internal_r+0x1fc> + 4bb4: 9cc00084 addi r19,r19,2 + 4bb8: dcc14515 stw r19,1300(sp) + 4bbc: 980f883a mov r7,r19 + 4bc0: 983f400e bge r19,zero,48c4 <___vfprintf_internal_r+0x1bc0> + 4bc4: 003f7306 br 4994 <___vfprintf_internal_r+0x1c90> + +00004bc8 <__vfprintf_internal>: + 4bc8: 00800074 movhi r2,1 + 4bcc: 10883e04 addi r2,r2,8440 + 4bd0: 2013883a mov r9,r4 + 4bd4: 11000017 ldw r4,0(r2) + 4bd8: 2805883a mov r2,r5 + 4bdc: 300f883a mov r7,r6 + 4be0: 480b883a mov r5,r9 + 4be4: 100d883a mov r6,r2 + 4be8: 0002d041 jmpi 2d04 <___vfprintf_internal_r> + +00004bec <__swsetup_r>: + 4bec: 00800074 movhi r2,1 + 4bf0: 10883e04 addi r2,r2,8440 + 4bf4: 10c00017 ldw r3,0(r2) + 4bf8: defffd04 addi sp,sp,-12 + 4bfc: dc400115 stw r17,4(sp) + 4c00: dc000015 stw r16,0(sp) + 4c04: dfc00215 stw ra,8(sp) + 4c08: 2023883a mov r17,r4 + 4c0c: 2821883a mov r16,r5 + 4c10: 18000226 beq r3,zero,4c1c <__swsetup_r+0x30> + 4c14: 18800e17 ldw r2,56(r3) + 4c18: 10001f26 beq r2,zero,4c98 <__swsetup_r+0xac> + 4c1c: 8100030b ldhu r4,12(r16) + 4c20: 2080020c andi r2,r4,8 + 4c24: 10002826 beq r2,zero,4cc8 <__swsetup_r+0xdc> + 4c28: 81400417 ldw r5,16(r16) + 4c2c: 28001d26 beq r5,zero,4ca4 <__swsetup_r+0xb8> + 4c30: 2080004c andi r2,r4,1 + 4c34: 1005003a cmpeq r2,r2,zero + 4c38: 10000b26 beq r2,zero,4c68 <__swsetup_r+0x7c> + 4c3c: 2080008c andi r2,r4,2 + 4c40: 10001226 beq r2,zero,4c8c <__swsetup_r+0xa0> + 4c44: 0005883a mov r2,zero + 4c48: 80800215 stw r2,8(r16) + 4c4c: 28000b26 beq r5,zero,4c7c <__swsetup_r+0x90> + 4c50: 0005883a mov r2,zero + 4c54: dfc00217 ldw ra,8(sp) + 4c58: dc400117 ldw r17,4(sp) + 4c5c: dc000017 ldw r16,0(sp) + 4c60: dec00304 addi sp,sp,12 + 4c64: f800283a ret + 4c68: 80800517 ldw r2,20(r16) + 4c6c: 80000215 stw zero,8(r16) + 4c70: 0085c83a sub r2,zero,r2 + 4c74: 80800615 stw r2,24(r16) + 4c78: 283ff51e bne r5,zero,4c50 <__swsetup_r+0x64> + 4c7c: 2080200c andi r2,r4,128 + 4c80: 103ff326 beq r2,zero,4c50 <__swsetup_r+0x64> + 4c84: 00bfffc4 movi r2,-1 + 4c88: 003ff206 br 4c54 <__swsetup_r+0x68> + 4c8c: 80800517 ldw r2,20(r16) + 4c90: 80800215 stw r2,8(r16) + 4c94: 003fed06 br 4c4c <__swsetup_r+0x60> + 4c98: 1809883a mov r4,r3 + 4c9c: 00067b80 call 67b8 <__sinit> + 4ca0: 003fde06 br 4c1c <__swsetup_r+0x30> + 4ca4: 20c0a00c andi r3,r4,640 + 4ca8: 00808004 movi r2,512 + 4cac: 18bfe026 beq r3,r2,4c30 <__swsetup_r+0x44> + 4cb0: 8809883a mov r4,r17 + 4cb4: 800b883a mov r5,r16 + 4cb8: 00075640 call 7564 <__smakebuf_r> + 4cbc: 8100030b ldhu r4,12(r16) + 4cc0: 81400417 ldw r5,16(r16) + 4cc4: 003fda06 br 4c30 <__swsetup_r+0x44> + 4cc8: 2080040c andi r2,r4,16 + 4ccc: 103fed26 beq r2,zero,4c84 <__swsetup_r+0x98> + 4cd0: 2080010c andi r2,r4,4 + 4cd4: 10001226 beq r2,zero,4d20 <__swsetup_r+0x134> + 4cd8: 81400c17 ldw r5,48(r16) + 4cdc: 28000526 beq r5,zero,4cf4 <__swsetup_r+0x108> + 4ce0: 80801004 addi r2,r16,64 + 4ce4: 28800226 beq r5,r2,4cf0 <__swsetup_r+0x104> + 4ce8: 8809883a mov r4,r17 + 4cec: 0006b700 call 6b70 <_free_r> + 4cf0: 80000c15 stw zero,48(r16) + 4cf4: 8080030b ldhu r2,12(r16) + 4cf8: 81400417 ldw r5,16(r16) + 4cfc: 80000115 stw zero,4(r16) + 4d00: 10bff6cc andi r2,r2,65499 + 4d04: 8080030d sth r2,12(r16) + 4d08: 81400015 stw r5,0(r16) + 4d0c: 8080030b ldhu r2,12(r16) + 4d10: 10800214 ori r2,r2,8 + 4d14: 113fffcc andi r4,r2,65535 + 4d18: 8080030d sth r2,12(r16) + 4d1c: 003fc306 br 4c2c <__swsetup_r+0x40> + 4d20: 81400417 ldw r5,16(r16) + 4d24: 003ff906 br 4d0c <__swsetup_r+0x120> + +00004d28 : + 4d28: 28c00417 ldw r3,16(r5) + 4d2c: 20800417 ldw r2,16(r4) + 4d30: defff104 addi sp,sp,-60 + 4d34: dfc00e15 stw ra,56(sp) + 4d38: df000d15 stw fp,52(sp) + 4d3c: ddc00c15 stw r23,48(sp) + 4d40: dd800b15 stw r22,44(sp) + 4d44: dd400a15 stw r21,40(sp) + 4d48: dd000915 stw r20,36(sp) + 4d4c: dcc00815 stw r19,32(sp) + 4d50: dc800715 stw r18,28(sp) + 4d54: dc400615 stw r17,24(sp) + 4d58: dc000515 stw r16,20(sp) + 4d5c: d9000315 stw r4,12(sp) + 4d60: d9400415 stw r5,16(sp) + 4d64: 10c07f16 blt r2,r3,4f64 + 4d68: 1d3fffc4 addi r20,r3,-1 + 4d6c: d8c00417 ldw r3,16(sp) + 4d70: d9000317 ldw r4,12(sp) + 4d74: a505883a add r2,r20,r20 + 4d78: 1085883a add r2,r2,r2 + 4d7c: 1cc00504 addi r19,r3,20 + 4d80: 25c00504 addi r23,r4,20 + 4d84: 98ad883a add r22,r19,r2 + 4d88: 15c7883a add r3,r2,r23 + 4d8c: b1400017 ldw r5,0(r22) + 4d90: 19000017 ldw r4,0(r3) + 4d94: d8c00015 stw r3,0(sp) + 4d98: 29400044 addi r5,r5,1 + 4d9c: d9000215 stw r4,8(sp) + 4da0: 0002b1c0 call 2b1c <__udivsi3> + 4da4: 1039883a mov fp,r2 + 4da8: 10003d1e bne r2,zero,4ea0 + 4dac: d9400417 ldw r5,16(sp) + 4db0: d9000317 ldw r4,12(sp) + 4db4: 00082900 call 8290 <__mcmp> + 4db8: 10002c16 blt r2,zero,4e6c + 4dbc: e7000044 addi fp,fp,1 + 4dc0: b80f883a mov r7,r23 + 4dc4: 0011883a mov r8,zero + 4dc8: 0009883a mov r4,zero + 4dcc: 99400017 ldw r5,0(r19) + 4dd0: 38c00017 ldw r3,0(r7) + 4dd4: 9cc00104 addi r19,r19,4 + 4dd8: 28bfffcc andi r2,r5,65535 + 4ddc: 2085883a add r2,r4,r2 + 4de0: 11bfffcc andi r6,r2,65535 + 4de4: 193fffcc andi r4,r3,65535 + 4de8: 1004d43a srli r2,r2,16 + 4dec: 280ad43a srli r5,r5,16 + 4df0: 2189c83a sub r4,r4,r6 + 4df4: 2209883a add r4,r4,r8 + 4df8: 1806d43a srli r3,r3,16 + 4dfc: 288b883a add r5,r5,r2 + 4e00: 200dd43a srai r6,r4,16 + 4e04: 28bfffcc andi r2,r5,65535 + 4e08: 1887c83a sub r3,r3,r2 + 4e0c: 1987883a add r3,r3,r6 + 4e10: 3900000d sth r4,0(r7) + 4e14: 38c0008d sth r3,2(r7) + 4e18: 2808d43a srli r4,r5,16 + 4e1c: 39c00104 addi r7,r7,4 + 4e20: 1811d43a srai r8,r3,16 + 4e24: b4ffe92e bgeu r22,r19,4dcc + 4e28: a505883a add r2,r20,r20 + 4e2c: 1085883a add r2,r2,r2 + 4e30: b885883a add r2,r23,r2 + 4e34: 10c00017 ldw r3,0(r2) + 4e38: 18000c1e bne r3,zero,4e6c + 4e3c: 113fff04 addi r4,r2,-4 + 4e40: b900082e bgeu r23,r4,4e64 + 4e44: 10bfff17 ldw r2,-4(r2) + 4e48: 10000326 beq r2,zero,4e58 + 4e4c: 00000506 br 4e64 + 4e50: 20800017 ldw r2,0(r4) + 4e54: 1000031e bne r2,zero,4e64 + 4e58: 213fff04 addi r4,r4,-4 + 4e5c: a53fffc4 addi r20,r20,-1 + 4e60: b93ffb36 bltu r23,r4,4e50 + 4e64: d9000317 ldw r4,12(sp) + 4e68: 25000415 stw r20,16(r4) + 4e6c: e005883a mov r2,fp + 4e70: dfc00e17 ldw ra,56(sp) + 4e74: df000d17 ldw fp,52(sp) + 4e78: ddc00c17 ldw r23,48(sp) + 4e7c: dd800b17 ldw r22,44(sp) + 4e80: dd400a17 ldw r21,40(sp) + 4e84: dd000917 ldw r20,36(sp) + 4e88: dcc00817 ldw r19,32(sp) + 4e8c: dc800717 ldw r18,28(sp) + 4e90: dc400617 ldw r17,24(sp) + 4e94: dc000517 ldw r16,20(sp) + 4e98: dec00f04 addi sp,sp,60 + 4e9c: f800283a ret + 4ea0: b823883a mov r17,r23 + 4ea4: 9825883a mov r18,r19 + 4ea8: d8000115 stw zero,4(sp) + 4eac: 002b883a mov r21,zero + 4eb0: 94000017 ldw r16,0(r18) + 4eb4: e009883a mov r4,fp + 4eb8: 94800104 addi r18,r18,4 + 4ebc: 817fffcc andi r5,r16,65535 + 4ec0: 0002b2c0 call 2b2c <__mulsi3> + 4ec4: 800ad43a srli r5,r16,16 + 4ec8: e009883a mov r4,fp + 4ecc: a8a1883a add r16,r21,r2 + 4ed0: 0002b2c0 call 2b2c <__mulsi3> + 4ed4: 89000017 ldw r4,0(r17) + 4ed8: 80ffffcc andi r3,r16,65535 + 4edc: 8020d43a srli r16,r16,16 + 4ee0: 217fffcc andi r5,r4,65535 + 4ee4: 28cbc83a sub r5,r5,r3 + 4ee8: d8c00117 ldw r3,4(sp) + 4eec: 2008d43a srli r4,r4,16 + 4ef0: 1405883a add r2,r2,r16 + 4ef4: 28cb883a add r5,r5,r3 + 4ef8: 280dd43a srai r6,r5,16 + 4efc: 10ffffcc andi r3,r2,65535 + 4f00: 20c9c83a sub r4,r4,r3 + 4f04: 2189883a add r4,r4,r6 + 4f08: 8900008d sth r4,2(r17) + 4f0c: 2009d43a srai r4,r4,16 + 4f10: 8940000d sth r5,0(r17) + 4f14: 102ad43a srli r21,r2,16 + 4f18: 8c400104 addi r17,r17,4 + 4f1c: d9000115 stw r4,4(sp) + 4f20: b4bfe32e bgeu r22,r18,4eb0 + 4f24: d9000217 ldw r4,8(sp) + 4f28: 203fa01e bne r4,zero,4dac + 4f2c: d8800017 ldw r2,0(sp) + 4f30: 10ffff04 addi r3,r2,-4 + 4f34: b8c0082e bgeu r23,r3,4f58 + 4f38: 10bfff17 ldw r2,-4(r2) + 4f3c: 10000326 beq r2,zero,4f4c + 4f40: 00000506 br 4f58 + 4f44: 18800017 ldw r2,0(r3) + 4f48: 1000031e bne r2,zero,4f58 + 4f4c: 18ffff04 addi r3,r3,-4 + 4f50: a53fffc4 addi r20,r20,-1 + 4f54: b8fffb36 bltu r23,r3,4f44 + 4f58: d8c00317 ldw r3,12(sp) + 4f5c: 1d000415 stw r20,16(r3) + 4f60: 003f9206 br 4dac + 4f64: 0005883a mov r2,zero + 4f68: 003fc106 br 4e70 + +00004f6c <_dtoa_r>: + 4f6c: 22001017 ldw r8,64(r4) + 4f70: deffda04 addi sp,sp,-152 + 4f74: dd402115 stw r21,132(sp) + 4f78: dd002015 stw r20,128(sp) + 4f7c: dc801e15 stw r18,120(sp) + 4f80: dc401d15 stw r17,116(sp) + 4f84: dfc02515 stw ra,148(sp) + 4f88: df002415 stw fp,144(sp) + 4f8c: ddc02315 stw r23,140(sp) + 4f90: dd802215 stw r22,136(sp) + 4f94: dcc01f15 stw r19,124(sp) + 4f98: dc001c15 stw r16,112(sp) + 4f9c: d9001615 stw r4,88(sp) + 4fa0: 3023883a mov r17,r6 + 4fa4: 2829883a mov r20,r5 + 4fa8: d9c01715 stw r7,92(sp) + 4fac: dc802817 ldw r18,160(sp) + 4fb0: 302b883a mov r21,r6 + 4fb4: 40000a26 beq r8,zero,4fe0 <_dtoa_r+0x74> + 4fb8: 20801117 ldw r2,68(r4) + 4fbc: 400b883a mov r5,r8 + 4fc0: 40800115 stw r2,4(r8) + 4fc4: 20c01117 ldw r3,68(r4) + 4fc8: 00800044 movi r2,1 + 4fcc: 10c4983a sll r2,r2,r3 + 4fd0: 40800215 stw r2,8(r8) + 4fd4: 00081340 call 8134 <_Bfree> + 4fd8: d8c01617 ldw r3,88(sp) + 4fdc: 18001015 stw zero,64(r3) + 4fe0: 8800a316 blt r17,zero,5270 <_dtoa_r+0x304> + 4fe4: 90000015 stw zero,0(r18) + 4fe8: a8dffc2c andhi r3,r21,32752 + 4fec: 009ffc34 movhi r2,32752 + 4ff0: 18809126 beq r3,r2,5238 <_dtoa_r+0x2cc> + 4ff4: 000d883a mov r6,zero + 4ff8: 000f883a mov r7,zero + 4ffc: a009883a mov r4,r20 + 5000: a80b883a mov r5,r21 + 5004: dd001215 stw r20,72(sp) + 5008: dd401315 stw r21,76(sp) + 500c: 000b7b80 call b7b8 <__nedf2> + 5010: 1000171e bne r2,zero,5070 <_dtoa_r+0x104> + 5014: d9802717 ldw r6,156(sp) + 5018: 00800044 movi r2,1 + 501c: 30800015 stw r2,0(r6) + 5020: d8802917 ldw r2,164(sp) + 5024: 10029b26 beq r2,zero,5a94 <_dtoa_r+0xb28> + 5028: d9002917 ldw r4,164(sp) + 502c: 00800074 movhi r2,1 + 5030: 1080b144 addi r2,r2,709 + 5034: 10ffffc4 addi r3,r2,-1 + 5038: 20800015 stw r2,0(r4) + 503c: 1805883a mov r2,r3 + 5040: dfc02517 ldw ra,148(sp) + 5044: df002417 ldw fp,144(sp) + 5048: ddc02317 ldw r23,140(sp) + 504c: dd802217 ldw r22,136(sp) + 5050: dd402117 ldw r21,132(sp) + 5054: dd002017 ldw r20,128(sp) + 5058: dcc01f17 ldw r19,124(sp) + 505c: dc801e17 ldw r18,120(sp) + 5060: dc401d17 ldw r17,116(sp) + 5064: dc001c17 ldw r16,112(sp) + 5068: dec02604 addi sp,sp,152 + 506c: f800283a ret + 5070: d9001617 ldw r4,88(sp) + 5074: d9401217 ldw r5,72(sp) + 5078: d8800104 addi r2,sp,4 + 507c: a80d883a mov r6,r21 + 5080: d9c00204 addi r7,sp,8 + 5084: d8800015 stw r2,0(sp) + 5088: 00087700 call 8770 <__d2b> + 508c: d8800715 stw r2,28(sp) + 5090: a804d53a srli r2,r21,20 + 5094: 1101ffcc andi r4,r2,2047 + 5098: 20008626 beq r4,zero,52b4 <_dtoa_r+0x348> + 509c: d8c01217 ldw r3,72(sp) + 50a0: 00800434 movhi r2,16 + 50a4: 10bfffc4 addi r2,r2,-1 + 50a8: ddc00117 ldw r23,4(sp) + 50ac: a884703a and r2,r21,r2 + 50b0: 1811883a mov r8,r3 + 50b4: 124ffc34 orhi r9,r2,16368 + 50b8: 25bf0044 addi r22,r4,-1023 + 50bc: d8000815 stw zero,32(sp) + 50c0: 0005883a mov r2,zero + 50c4: 00cffe34 movhi r3,16376 + 50c8: 480b883a mov r5,r9 + 50cc: 4009883a mov r4,r8 + 50d0: 180f883a mov r7,r3 + 50d4: 100d883a mov r6,r2 + 50d8: 000b0200 call b020 <__subdf3> + 50dc: 0218dbf4 movhi r8,25455 + 50e0: 4210d844 addi r8,r8,17249 + 50e4: 024ff4f4 movhi r9,16339 + 50e8: 4a61e9c4 addi r9,r9,-30809 + 50ec: 480f883a mov r7,r9 + 50f0: 400d883a mov r6,r8 + 50f4: 180b883a mov r5,r3 + 50f8: 1009883a mov r4,r2 + 50fc: 000b1140 call b114 <__muldf3> + 5100: 0222d874 movhi r8,35681 + 5104: 42322cc4 addi r8,r8,-14157 + 5108: 024ff1f4 movhi r9,16327 + 510c: 4a628a04 addi r9,r9,-30168 + 5110: 480f883a mov r7,r9 + 5114: 400d883a mov r6,r8 + 5118: 180b883a mov r5,r3 + 511c: 1009883a mov r4,r2 + 5120: 000b0a00 call b0a0 <__adddf3> + 5124: b009883a mov r4,r22 + 5128: 1021883a mov r16,r2 + 512c: 1823883a mov r17,r3 + 5130: 000b9d80 call b9d8 <__floatsidf> + 5134: 021427f4 movhi r8,20639 + 5138: 421e7ec4 addi r8,r8,31227 + 513c: 024ff4f4 movhi r9,16339 + 5140: 4a5104c4 addi r9,r9,17427 + 5144: 480f883a mov r7,r9 + 5148: 400d883a mov r6,r8 + 514c: 180b883a mov r5,r3 + 5150: 1009883a mov r4,r2 + 5154: 000b1140 call b114 <__muldf3> + 5158: 180f883a mov r7,r3 + 515c: 880b883a mov r5,r17 + 5160: 100d883a mov r6,r2 + 5164: 8009883a mov r4,r16 + 5168: 000b0a00 call b0a0 <__adddf3> + 516c: 1009883a mov r4,r2 + 5170: 180b883a mov r5,r3 + 5174: 1021883a mov r16,r2 + 5178: 1823883a mov r17,r3 + 517c: 000bad00 call bad0 <__fixdfsi> + 5180: 000d883a mov r6,zero + 5184: 000f883a mov r7,zero + 5188: 8009883a mov r4,r16 + 518c: 880b883a mov r5,r17 + 5190: d8800d15 stw r2,52(sp) + 5194: 000b9500 call b950 <__ltdf2> + 5198: 10031716 blt r2,zero,5df8 <_dtoa_r+0xe8c> + 519c: d8c00d17 ldw r3,52(sp) + 51a0: 00800584 movi r2,22 + 51a4: 10c1482e bgeu r2,r3,56c8 <_dtoa_r+0x75c> + 51a8: 01000044 movi r4,1 + 51ac: d9000c15 stw r4,48(sp) + 51b0: bd85c83a sub r2,r23,r22 + 51b4: 11bfffc4 addi r6,r2,-1 + 51b8: 30030b16 blt r6,zero,5de8 <_dtoa_r+0xe7c> + 51bc: d9800a15 stw r6,40(sp) + 51c0: d8001115 stw zero,68(sp) + 51c4: d8c00d17 ldw r3,52(sp) + 51c8: 1802ff16 blt r3,zero,5dc8 <_dtoa_r+0xe5c> + 51cc: d9000a17 ldw r4,40(sp) + 51d0: d8c00915 stw r3,36(sp) + 51d4: d8001015 stw zero,64(sp) + 51d8: 20c9883a add r4,r4,r3 + 51dc: d9000a15 stw r4,40(sp) + 51e0: d9001717 ldw r4,92(sp) + 51e4: 00800244 movi r2,9 + 51e8: 11004636 bltu r2,r4,5304 <_dtoa_r+0x398> + 51ec: 00800144 movi r2,5 + 51f0: 11020416 blt r2,r4,5a04 <_dtoa_r+0xa98> + 51f4: 04400044 movi r17,1 + 51f8: d8c01717 ldw r3,92(sp) + 51fc: 00800144 movi r2,5 + 5200: 10c1ed36 bltu r2,r3,59b8 <_dtoa_r+0xa4c> + 5204: 18c5883a add r2,r3,r3 + 5208: 1085883a add r2,r2,r2 + 520c: 00c00034 movhi r3,0 + 5210: 18d48804 addi r3,r3,21024 + 5214: 10c5883a add r2,r2,r3 + 5218: 11000017 ldw r4,0(r2) + 521c: 2000683a jmp r4 + 5220: 0000530c andi zero,zero,332 + 5224: 0000530c andi zero,zero,332 + 5228: 00005d0c andi zero,zero,372 + 522c: 00005ce4 muli zero,zero,371 + 5230: 00005d28 cmpgeui zero,zero,372 + 5234: 00005d34 movhi zero,372 + 5238: d9002717 ldw r4,156(sp) + 523c: 0089c3c4 movi r2,9999 + 5240: 20800015 stw r2,0(r4) + 5244: a0001026 beq r20,zero,5288 <_dtoa_r+0x31c> + 5248: 00c00074 movhi r3,1 + 524c: 18c0bd04 addi r3,r3,756 + 5250: d9802917 ldw r6,164(sp) + 5254: 303f7926 beq r6,zero,503c <_dtoa_r+0xd0> + 5258: 188000c7 ldb r2,3(r3) + 525c: 190000c4 addi r4,r3,3 + 5260: 1000101e bne r2,zero,52a4 <_dtoa_r+0x338> + 5264: d8802917 ldw r2,164(sp) + 5268: 11000015 stw r4,0(r2) + 526c: 003f7306 br 503c <_dtoa_r+0xd0> + 5270: 00a00034 movhi r2,32768 + 5274: 10bfffc4 addi r2,r2,-1 + 5278: 00c00044 movi r3,1 + 527c: 88aa703a and r21,r17,r2 + 5280: 90c00015 stw r3,0(r18) + 5284: 003f5806 br 4fe8 <_dtoa_r+0x7c> + 5288: 00800434 movhi r2,16 + 528c: 10bfffc4 addi r2,r2,-1 + 5290: a884703a and r2,r21,r2 + 5294: 103fec1e bne r2,zero,5248 <_dtoa_r+0x2dc> + 5298: 00c00074 movhi r3,1 + 529c: 18c0ba04 addi r3,r3,744 + 52a0: 003feb06 br 5250 <_dtoa_r+0x2e4> + 52a4: d8802917 ldw r2,164(sp) + 52a8: 19000204 addi r4,r3,8 + 52ac: 11000015 stw r4,0(r2) + 52b0: 003f6206 br 503c <_dtoa_r+0xd0> + 52b4: ddc00117 ldw r23,4(sp) + 52b8: d8800217 ldw r2,8(sp) + 52bc: 01000804 movi r4,32 + 52c0: b8c10c84 addi r3,r23,1074 + 52c4: 18a3883a add r17,r3,r2 + 52c8: 2441b80e bge r4,r17,59ac <_dtoa_r+0xa40> + 52cc: 00c01004 movi r3,64 + 52d0: 1c47c83a sub r3,r3,r17 + 52d4: 88bff804 addi r2,r17,-32 + 52d8: a8c6983a sll r3,r21,r3 + 52dc: a084d83a srl r2,r20,r2 + 52e0: 1888b03a or r4,r3,r2 + 52e4: 000bba80 call bba8 <__floatunsidf> + 52e8: 1011883a mov r8,r2 + 52ec: 00bf8434 movhi r2,65040 + 52f0: 01000044 movi r4,1 + 52f4: 10d3883a add r9,r2,r3 + 52f8: 8dbef344 addi r22,r17,-1075 + 52fc: d9000815 stw r4,32(sp) + 5300: 003f6f06 br 50c0 <_dtoa_r+0x154> + 5304: d8001715 stw zero,92(sp) + 5308: 04400044 movi r17,1 + 530c: 00bfffc4 movi r2,-1 + 5310: 00c00044 movi r3,1 + 5314: d8800e15 stw r2,56(sp) + 5318: d8002615 stw zero,152(sp) + 531c: d8800f15 stw r2,60(sp) + 5320: d8c00b15 stw r3,44(sp) + 5324: 1021883a mov r16,r2 + 5328: d8801617 ldw r2,88(sp) + 532c: 10001115 stw zero,68(r2) + 5330: d8801617 ldw r2,88(sp) + 5334: 11401117 ldw r5,68(r2) + 5338: 1009883a mov r4,r2 + 533c: 00086b40 call 86b4 <_Balloc> + 5340: d8c01617 ldw r3,88(sp) + 5344: d8800515 stw r2,20(sp) + 5348: 18801015 stw r2,64(r3) + 534c: 00800384 movi r2,14 + 5350: 14006836 bltu r2,r16,54f4 <_dtoa_r+0x588> + 5354: 8805003a cmpeq r2,r17,zero + 5358: 1000661e bne r2,zero,54f4 <_dtoa_r+0x588> + 535c: d9000d17 ldw r4,52(sp) + 5360: 0102300e bge zero,r4,5c24 <_dtoa_r+0xcb8> + 5364: 208003cc andi r2,r4,15 + 5368: 100490fa slli r2,r2,3 + 536c: 2025d13a srai r18,r4,4 + 5370: 00c00074 movhi r3,1 + 5374: 18c0cf04 addi r3,r3,828 + 5378: 10c5883a add r2,r2,r3 + 537c: 90c0040c andi r3,r18,16 + 5380: 14000017 ldw r16,0(r2) + 5384: 14400117 ldw r17,4(r2) + 5388: 18036a1e bne r3,zero,6134 <_dtoa_r+0x11c8> + 538c: 05800084 movi r22,2 + 5390: 90001026 beq r18,zero,53d4 <_dtoa_r+0x468> + 5394: 04c00074 movhi r19,1 + 5398: 9cc10104 addi r19,r19,1028 + 539c: 9080004c andi r2,r18,1 + 53a0: 1005003a cmpeq r2,r2,zero + 53a4: 1000081e bne r2,zero,53c8 <_dtoa_r+0x45c> + 53a8: 99800017 ldw r6,0(r19) + 53ac: 99c00117 ldw r7,4(r19) + 53b0: 880b883a mov r5,r17 + 53b4: 8009883a mov r4,r16 + 53b8: 000b1140 call b114 <__muldf3> + 53bc: 1021883a mov r16,r2 + 53c0: b5800044 addi r22,r22,1 + 53c4: 1823883a mov r17,r3 + 53c8: 9025d07a srai r18,r18,1 + 53cc: 9cc00204 addi r19,r19,8 + 53d0: 903ff21e bne r18,zero,539c <_dtoa_r+0x430> + 53d4: a80b883a mov r5,r21 + 53d8: a009883a mov r4,r20 + 53dc: 880f883a mov r7,r17 + 53e0: 800d883a mov r6,r16 + 53e4: 000b4d80 call b4d8 <__divdf3> + 53e8: 1029883a mov r20,r2 + 53ec: 182b883a mov r21,r3 + 53f0: d8c00c17 ldw r3,48(sp) + 53f4: 1805003a cmpeq r2,r3,zero + 53f8: 1000081e bne r2,zero,541c <_dtoa_r+0x4b0> + 53fc: 0005883a mov r2,zero + 5400: 00cffc34 movhi r3,16368 + 5404: 180f883a mov r7,r3 + 5408: a009883a mov r4,r20 + 540c: a80b883a mov r5,r21 + 5410: 100d883a mov r6,r2 + 5414: 000b9500 call b950 <__ltdf2> + 5418: 1003fe16 blt r2,zero,6414 <_dtoa_r+0x14a8> + 541c: b009883a mov r4,r22 + 5420: 000b9d80 call b9d8 <__floatsidf> + 5424: 180b883a mov r5,r3 + 5428: 1009883a mov r4,r2 + 542c: a00d883a mov r6,r20 + 5430: a80f883a mov r7,r21 + 5434: 000b1140 call b114 <__muldf3> + 5438: 0011883a mov r8,zero + 543c: 02500734 movhi r9,16412 + 5440: 1009883a mov r4,r2 + 5444: 180b883a mov r5,r3 + 5448: 480f883a mov r7,r9 + 544c: 400d883a mov r6,r8 + 5450: 000b0a00 call b0a0 <__adddf3> + 5454: d9000f17 ldw r4,60(sp) + 5458: 102d883a mov r22,r2 + 545c: 00bf3034 movhi r2,64704 + 5460: 18b9883a add fp,r3,r2 + 5464: e02f883a mov r23,fp + 5468: 20028f1e bne r4,zero,5ea8 <_dtoa_r+0xf3c> + 546c: 0005883a mov r2,zero + 5470: 00d00534 movhi r3,16404 + 5474: a009883a mov r4,r20 + 5478: a80b883a mov r5,r21 + 547c: 180f883a mov r7,r3 + 5480: 100d883a mov r6,r2 + 5484: 000b0200 call b020 <__subdf3> + 5488: 1009883a mov r4,r2 + 548c: e00f883a mov r7,fp + 5490: 180b883a mov r5,r3 + 5494: b00d883a mov r6,r22 + 5498: 1025883a mov r18,r2 + 549c: 1827883a mov r19,r3 + 54a0: 000b8400 call b840 <__gtdf2> + 54a4: 00834f16 blt zero,r2,61e4 <_dtoa_r+0x1278> + 54a8: e0e0003c xorhi r3,fp,32768 + 54ac: 9009883a mov r4,r18 + 54b0: 980b883a mov r5,r19 + 54b4: 180f883a mov r7,r3 + 54b8: b00d883a mov r6,r22 + 54bc: 000b9500 call b950 <__ltdf2> + 54c0: 1000080e bge r2,zero,54e4 <_dtoa_r+0x578> + 54c4: 0027883a mov r19,zero + 54c8: 0025883a mov r18,zero + 54cc: d8802617 ldw r2,152(sp) + 54d0: df000517 ldw fp,20(sp) + 54d4: d8000615 stw zero,24(sp) + 54d8: 0084303a nor r2,zero,r2 + 54dc: d8800d15 stw r2,52(sp) + 54e0: 00019b06 br 5b50 <_dtoa_r+0xbe4> + 54e4: d9801217 ldw r6,72(sp) + 54e8: d8801317 ldw r2,76(sp) + 54ec: 3029883a mov r20,r6 + 54f0: 102b883a mov r21,r2 + 54f4: d8c00217 ldw r3,8(sp) + 54f8: 18008516 blt r3,zero,5710 <_dtoa_r+0x7a4> + 54fc: d9000d17 ldw r4,52(sp) + 5500: 00800384 movi r2,14 + 5504: 11008216 blt r2,r4,5710 <_dtoa_r+0x7a4> + 5508: 200490fa slli r2,r4,3 + 550c: d9802617 ldw r6,152(sp) + 5510: 00c00074 movhi r3,1 + 5514: 18c0cf04 addi r3,r3,828 + 5518: 10c5883a add r2,r2,r3 + 551c: 14800017 ldw r18,0(r2) + 5520: 14c00117 ldw r19,4(r2) + 5524: 30031e16 blt r6,zero,61a0 <_dtoa_r+0x1234> + 5528: d9000517 ldw r4,20(sp) + 552c: d8c00f17 ldw r3,60(sp) + 5530: a823883a mov r17,r21 + 5534: a021883a mov r16,r20 + 5538: 192b883a add r21,r3,r4 + 553c: 2039883a mov fp,r4 + 5540: 00000f06 br 5580 <_dtoa_r+0x614> + 5544: 0005883a mov r2,zero + 5548: 00d00934 movhi r3,16420 + 554c: 5009883a mov r4,r10 + 5550: 580b883a mov r5,r11 + 5554: 180f883a mov r7,r3 + 5558: 100d883a mov r6,r2 + 555c: 000b1140 call b114 <__muldf3> + 5560: 180b883a mov r5,r3 + 5564: 000d883a mov r6,zero + 5568: 000f883a mov r7,zero + 556c: 1009883a mov r4,r2 + 5570: 1021883a mov r16,r2 + 5574: 1823883a mov r17,r3 + 5578: 000b7b80 call b7b8 <__nedf2> + 557c: 10004526 beq r2,zero,5694 <_dtoa_r+0x728> + 5580: 900d883a mov r6,r18 + 5584: 980f883a mov r7,r19 + 5588: 8009883a mov r4,r16 + 558c: 880b883a mov r5,r17 + 5590: 000b4d80 call b4d8 <__divdf3> + 5594: 180b883a mov r5,r3 + 5598: 1009883a mov r4,r2 + 559c: 000bad00 call bad0 <__fixdfsi> + 55a0: 1009883a mov r4,r2 + 55a4: 1029883a mov r20,r2 + 55a8: 000b9d80 call b9d8 <__floatsidf> + 55ac: 180f883a mov r7,r3 + 55b0: 9009883a mov r4,r18 + 55b4: 980b883a mov r5,r19 + 55b8: 100d883a mov r6,r2 + 55bc: 000b1140 call b114 <__muldf3> + 55c0: 180f883a mov r7,r3 + 55c4: 880b883a mov r5,r17 + 55c8: 8009883a mov r4,r16 + 55cc: 100d883a mov r6,r2 + 55d0: 000b0200 call b020 <__subdf3> + 55d4: 1015883a mov r10,r2 + 55d8: a0800c04 addi r2,r20,48 + 55dc: e0800005 stb r2,0(fp) + 55e0: e7000044 addi fp,fp,1 + 55e4: 1817883a mov r11,r3 + 55e8: e57fd61e bne fp,r21,5544 <_dtoa_r+0x5d8> + 55ec: 500d883a mov r6,r10 + 55f0: 180f883a mov r7,r3 + 55f4: 5009883a mov r4,r10 + 55f8: 180b883a mov r5,r3 + 55fc: 000b0a00 call b0a0 <__adddf3> + 5600: 100d883a mov r6,r2 + 5604: 9009883a mov r4,r18 + 5608: 980b883a mov r5,r19 + 560c: 180f883a mov r7,r3 + 5610: 1021883a mov r16,r2 + 5614: 1823883a mov r17,r3 + 5618: 000b9500 call b950 <__ltdf2> + 561c: 10000816 blt r2,zero,5640 <_dtoa_r+0x6d4> + 5620: 980b883a mov r5,r19 + 5624: 800d883a mov r6,r16 + 5628: 880f883a mov r7,r17 + 562c: 9009883a mov r4,r18 + 5630: 000b7300 call b730 <__eqdf2> + 5634: 1000171e bne r2,zero,5694 <_dtoa_r+0x728> + 5638: a080004c andi r2,r20,1 + 563c: 10001526 beq r2,zero,5694 <_dtoa_r+0x728> + 5640: d8800d17 ldw r2,52(sp) + 5644: d8800415 stw r2,16(sp) + 5648: e009883a mov r4,fp + 564c: 213fffc4 addi r4,r4,-1 + 5650: 20c00007 ldb r3,0(r4) + 5654: 00800e44 movi r2,57 + 5658: 1880081e bne r3,r2,567c <_dtoa_r+0x710> + 565c: d8800517 ldw r2,20(sp) + 5660: 113ffa1e bne r2,r4,564c <_dtoa_r+0x6e0> + 5664: d8c00417 ldw r3,16(sp) + 5668: d9800517 ldw r6,20(sp) + 566c: 00800c04 movi r2,48 + 5670: 18c00044 addi r3,r3,1 + 5674: d8c00415 stw r3,16(sp) + 5678: 30800005 stb r2,0(r6) + 567c: 20800003 ldbu r2,0(r4) + 5680: d8c00417 ldw r3,16(sp) + 5684: 27000044 addi fp,r4,1 + 5688: 10800044 addi r2,r2,1 + 568c: d8c00d15 stw r3,52(sp) + 5690: 20800005 stb r2,0(r4) + 5694: d9001617 ldw r4,88(sp) + 5698: d9400717 ldw r5,28(sp) + 569c: 00081340 call 8134 <_Bfree> + 56a0: e0000005 stb zero,0(fp) + 56a4: d9800d17 ldw r6,52(sp) + 56a8: d8c02717 ldw r3,156(sp) + 56ac: d9002917 ldw r4,164(sp) + 56b0: 30800044 addi r2,r6,1 + 56b4: 18800015 stw r2,0(r3) + 56b8: 20029c26 beq r4,zero,612c <_dtoa_r+0x11c0> + 56bc: d8c00517 ldw r3,20(sp) + 56c0: 27000015 stw fp,0(r4) + 56c4: 003e5d06 br 503c <_dtoa_r+0xd0> + 56c8: d9800d17 ldw r6,52(sp) + 56cc: 00c00074 movhi r3,1 + 56d0: 18c0cf04 addi r3,r3,828 + 56d4: d9001217 ldw r4,72(sp) + 56d8: 300490fa slli r2,r6,3 + 56dc: d9401317 ldw r5,76(sp) + 56e0: 10c5883a add r2,r2,r3 + 56e4: 12000017 ldw r8,0(r2) + 56e8: 12400117 ldw r9,4(r2) + 56ec: 400d883a mov r6,r8 + 56f0: 480f883a mov r7,r9 + 56f4: 000b9500 call b950 <__ltdf2> + 56f8: 1000030e bge r2,zero,5708 <_dtoa_r+0x79c> + 56fc: d8800d17 ldw r2,52(sp) + 5700: 10bfffc4 addi r2,r2,-1 + 5704: d8800d15 stw r2,52(sp) + 5708: d8000c15 stw zero,48(sp) + 570c: 003ea806 br 51b0 <_dtoa_r+0x244> + 5710: d9000b17 ldw r4,44(sp) + 5714: 202cc03a cmpne r22,r4,zero + 5718: b000c71e bne r22,zero,5a38 <_dtoa_r+0xacc> + 571c: dc001117 ldw r16,68(sp) + 5720: dc801017 ldw r18,64(sp) + 5724: 0027883a mov r19,zero + 5728: 04000b0e bge zero,r16,5758 <_dtoa_r+0x7ec> + 572c: d8c00a17 ldw r3,40(sp) + 5730: 00c0090e bge zero,r3,5758 <_dtoa_r+0x7ec> + 5734: 8005883a mov r2,r16 + 5738: 1c011316 blt r3,r16,5b88 <_dtoa_r+0xc1c> + 573c: d9000a17 ldw r4,40(sp) + 5740: d9801117 ldw r6,68(sp) + 5744: 80a1c83a sub r16,r16,r2 + 5748: 2089c83a sub r4,r4,r2 + 574c: 308dc83a sub r6,r6,r2 + 5750: d9000a15 stw r4,40(sp) + 5754: d9801115 stw r6,68(sp) + 5758: d8801017 ldw r2,64(sp) + 575c: 0080150e bge zero,r2,57b4 <_dtoa_r+0x848> + 5760: d8c00b17 ldw r3,44(sp) + 5764: 1805003a cmpeq r2,r3,zero + 5768: 1001c91e bne r2,zero,5e90 <_dtoa_r+0xf24> + 576c: 04800e0e bge zero,r18,57a8 <_dtoa_r+0x83c> + 5770: d9001617 ldw r4,88(sp) + 5774: 980b883a mov r5,r19 + 5778: 900d883a mov r6,r18 + 577c: 0008f800 call 8f80 <__pow5mult> + 5780: d9001617 ldw r4,88(sp) + 5784: d9800717 ldw r6,28(sp) + 5788: 100b883a mov r5,r2 + 578c: 1027883a mov r19,r2 + 5790: 0008bc40 call 8bc4 <__multiply> + 5794: d9001617 ldw r4,88(sp) + 5798: d9400717 ldw r5,28(sp) + 579c: 1023883a mov r17,r2 + 57a0: 00081340 call 8134 <_Bfree> + 57a4: dc400715 stw r17,28(sp) + 57a8: d9001017 ldw r4,64(sp) + 57ac: 248dc83a sub r6,r4,r18 + 57b0: 30010e1e bne r6,zero,5bec <_dtoa_r+0xc80> + 57b4: d9001617 ldw r4,88(sp) + 57b8: 04400044 movi r17,1 + 57bc: 880b883a mov r5,r17 + 57c0: 0008e180 call 8e18 <__i2b> + 57c4: d9800917 ldw r6,36(sp) + 57c8: 1025883a mov r18,r2 + 57cc: 0180040e bge zero,r6,57e0 <_dtoa_r+0x874> + 57d0: d9001617 ldw r4,88(sp) + 57d4: 100b883a mov r5,r2 + 57d8: 0008f800 call 8f80 <__pow5mult> + 57dc: 1025883a mov r18,r2 + 57e0: d8801717 ldw r2,92(sp) + 57e4: 8880f30e bge r17,r2,5bb4 <_dtoa_r+0xc48> + 57e8: 0023883a mov r17,zero + 57ec: d9800917 ldw r6,36(sp) + 57f0: 30019e1e bne r6,zero,5e6c <_dtoa_r+0xf00> + 57f4: 00c00044 movi r3,1 + 57f8: d9000a17 ldw r4,40(sp) + 57fc: 20c5883a add r2,r4,r3 + 5800: 10c007cc andi r3,r2,31 + 5804: 1800841e bne r3,zero,5a18 <_dtoa_r+0xaac> + 5808: 00800704 movi r2,28 + 580c: d9000a17 ldw r4,40(sp) + 5810: d9801117 ldw r6,68(sp) + 5814: 80a1883a add r16,r16,r2 + 5818: 2089883a add r4,r4,r2 + 581c: 308d883a add r6,r6,r2 + 5820: d9000a15 stw r4,40(sp) + 5824: d9801115 stw r6,68(sp) + 5828: d8801117 ldw r2,68(sp) + 582c: 0080050e bge zero,r2,5844 <_dtoa_r+0x8d8> + 5830: d9400717 ldw r5,28(sp) + 5834: d9001617 ldw r4,88(sp) + 5838: 100d883a mov r6,r2 + 583c: 0008a780 call 8a78 <__lshift> + 5840: d8800715 stw r2,28(sp) + 5844: d8c00a17 ldw r3,40(sp) + 5848: 00c0050e bge zero,r3,5860 <_dtoa_r+0x8f4> + 584c: d9001617 ldw r4,88(sp) + 5850: 900b883a mov r5,r18 + 5854: 180d883a mov r6,r3 + 5858: 0008a780 call 8a78 <__lshift> + 585c: 1025883a mov r18,r2 + 5860: d9000c17 ldw r4,48(sp) + 5864: 2005003a cmpeq r2,r4,zero + 5868: 10016f26 beq r2,zero,5e28 <_dtoa_r+0xebc> + 586c: d9000f17 ldw r4,60(sp) + 5870: 0102170e bge zero,r4,60d0 <_dtoa_r+0x1164> + 5874: d9800b17 ldw r6,44(sp) + 5878: 3005003a cmpeq r2,r6,zero + 587c: 1000881e bne r2,zero,5aa0 <_dtoa_r+0xb34> + 5880: 0400050e bge zero,r16,5898 <_dtoa_r+0x92c> + 5884: d9001617 ldw r4,88(sp) + 5888: 980b883a mov r5,r19 + 588c: 800d883a mov r6,r16 + 5890: 0008a780 call 8a78 <__lshift> + 5894: 1027883a mov r19,r2 + 5898: 8804c03a cmpne r2,r17,zero + 589c: 1002541e bne r2,zero,61f0 <_dtoa_r+0x1284> + 58a0: 980b883a mov r5,r19 + 58a4: dd800517 ldw r22,20(sp) + 58a8: dcc00615 stw r19,24(sp) + 58ac: a700004c andi fp,r20,1 + 58b0: 2827883a mov r19,r5 + 58b4: d9000717 ldw r4,28(sp) + 58b8: 900b883a mov r5,r18 + 58bc: 0004d280 call 4d28 + 58c0: d9000717 ldw r4,28(sp) + 58c4: d9400617 ldw r5,24(sp) + 58c8: 1023883a mov r17,r2 + 58cc: 8dc00c04 addi r23,r17,48 + 58d0: 00082900 call 8290 <__mcmp> + 58d4: d9001617 ldw r4,88(sp) + 58d8: 900b883a mov r5,r18 + 58dc: 980d883a mov r6,r19 + 58e0: 1029883a mov r20,r2 + 58e4: 00088ec0 call 88ec <__mdiff> + 58e8: 102b883a mov r21,r2 + 58ec: 10800317 ldw r2,12(r2) + 58f0: 1001281e bne r2,zero,5d94 <_dtoa_r+0xe28> + 58f4: d9000717 ldw r4,28(sp) + 58f8: a80b883a mov r5,r21 + 58fc: 00082900 call 8290 <__mcmp> + 5900: d9001617 ldw r4,88(sp) + 5904: 1021883a mov r16,r2 + 5908: a80b883a mov r5,r21 + 590c: 00081340 call 8134 <_Bfree> + 5910: 8000041e bne r16,zero,5924 <_dtoa_r+0x9b8> + 5914: d8801717 ldw r2,92(sp) + 5918: 1000021e bne r2,zero,5924 <_dtoa_r+0x9b8> + 591c: e004c03a cmpne r2,fp,zero + 5920: 10011726 beq r2,zero,5d80 <_dtoa_r+0xe14> + 5924: a0010616 blt r20,zero,5d40 <_dtoa_r+0xdd4> + 5928: a000041e bne r20,zero,593c <_dtoa_r+0x9d0> + 592c: d8c01717 ldw r3,92(sp) + 5930: 1800021e bne r3,zero,593c <_dtoa_r+0x9d0> + 5934: e004c03a cmpne r2,fp,zero + 5938: 10010126 beq r2,zero,5d40 <_dtoa_r+0xdd4> + 593c: 04023d16 blt zero,r16,6234 <_dtoa_r+0x12c8> + 5940: b5c00005 stb r23,0(r22) + 5944: d9800517 ldw r6,20(sp) + 5948: d9000f17 ldw r4,60(sp) + 594c: b5800044 addi r22,r22,1 + 5950: 3105883a add r2,r6,r4 + 5954: b0806526 beq r22,r2,5aec <_dtoa_r+0xb80> + 5958: d9400717 ldw r5,28(sp) + 595c: d9001617 ldw r4,88(sp) + 5960: 01800284 movi r6,10 + 5964: 000f883a mov r7,zero + 5968: 0008e540 call 8e54 <__multadd> + 596c: d8800715 stw r2,28(sp) + 5970: d8800617 ldw r2,24(sp) + 5974: 14c10c26 beq r2,r19,5da8 <_dtoa_r+0xe3c> + 5978: d9400617 ldw r5,24(sp) + 597c: d9001617 ldw r4,88(sp) + 5980: 01800284 movi r6,10 + 5984: 000f883a mov r7,zero + 5988: 0008e540 call 8e54 <__multadd> + 598c: d9001617 ldw r4,88(sp) + 5990: 980b883a mov r5,r19 + 5994: 01800284 movi r6,10 + 5998: 000f883a mov r7,zero + 599c: d8800615 stw r2,24(sp) + 59a0: 0008e540 call 8e54 <__multadd> + 59a4: 1027883a mov r19,r2 + 59a8: 003fc206 br 58b4 <_dtoa_r+0x948> + 59ac: 2445c83a sub r2,r4,r17 + 59b0: a088983a sll r4,r20,r2 + 59b4: 003e4b06 br 52e4 <_dtoa_r+0x378> + 59b8: 01bfffc4 movi r6,-1 + 59bc: 00800044 movi r2,1 + 59c0: d9800e15 stw r6,56(sp) + 59c4: d9800f15 stw r6,60(sp) + 59c8: d8800b15 stw r2,44(sp) + 59cc: d8c01617 ldw r3,88(sp) + 59d0: 008005c4 movi r2,23 + 59d4: 18001115 stw zero,68(r3) + 59d8: 1580082e bgeu r2,r22,59fc <_dtoa_r+0xa90> + 59dc: 00c00104 movi r3,4 + 59e0: 0009883a mov r4,zero + 59e4: 18c7883a add r3,r3,r3 + 59e8: 18800504 addi r2,r3,20 + 59ec: 21000044 addi r4,r4,1 + 59f0: b0bffc2e bgeu r22,r2,59e4 <_dtoa_r+0xa78> + 59f4: d9801617 ldw r6,88(sp) + 59f8: 31001115 stw r4,68(r6) + 59fc: dc000f17 ldw r16,60(sp) + 5a00: 003e4b06 br 5330 <_dtoa_r+0x3c4> + 5a04: d9801717 ldw r6,92(sp) + 5a08: 0023883a mov r17,zero + 5a0c: 31bfff04 addi r6,r6,-4 + 5a10: d9801715 stw r6,92(sp) + 5a14: 003df806 br 51f8 <_dtoa_r+0x28c> + 5a18: 00800804 movi r2,32 + 5a1c: 10c9c83a sub r4,r2,r3 + 5a20: 00c00104 movi r3,4 + 5a24: 19005a16 blt r3,r4,5b90 <_dtoa_r+0xc24> + 5a28: 008000c4 movi r2,3 + 5a2c: 113f7e16 blt r2,r4,5828 <_dtoa_r+0x8bc> + 5a30: 20800704 addi r2,r4,28 + 5a34: 003f7506 br 580c <_dtoa_r+0x8a0> + 5a38: d9801717 ldw r6,92(sp) + 5a3c: 00800044 movi r2,1 + 5a40: 1180a10e bge r2,r6,5cc8 <_dtoa_r+0xd5c> + 5a44: d9800f17 ldw r6,60(sp) + 5a48: d8c01017 ldw r3,64(sp) + 5a4c: 30bfffc4 addi r2,r6,-1 + 5a50: 1881c616 blt r3,r2,616c <_dtoa_r+0x1200> + 5a54: 18a5c83a sub r18,r3,r2 + 5a58: d8800f17 ldw r2,60(sp) + 5a5c: 10026216 blt r2,zero,63e8 <_dtoa_r+0x147c> + 5a60: dc001117 ldw r16,68(sp) + 5a64: 1007883a mov r3,r2 + 5a68: d9800a17 ldw r6,40(sp) + 5a6c: d8801117 ldw r2,68(sp) + 5a70: d9001617 ldw r4,88(sp) + 5a74: 30cd883a add r6,r6,r3 + 5a78: 10c5883a add r2,r2,r3 + 5a7c: 01400044 movi r5,1 + 5a80: d9800a15 stw r6,40(sp) + 5a84: d8801115 stw r2,68(sp) + 5a88: 0008e180 call 8e18 <__i2b> + 5a8c: 1027883a mov r19,r2 + 5a90: 003f2506 br 5728 <_dtoa_r+0x7bc> + 5a94: 00c00074 movhi r3,1 + 5a98: 18c0b104 addi r3,r3,708 + 5a9c: 003d6706 br 503c <_dtoa_r+0xd0> + 5aa0: dd800517 ldw r22,20(sp) + 5aa4: 04000044 movi r16,1 + 5aa8: 00000706 br 5ac8 <_dtoa_r+0xb5c> + 5aac: d9400717 ldw r5,28(sp) + 5ab0: d9001617 ldw r4,88(sp) + 5ab4: 01800284 movi r6,10 + 5ab8: 000f883a mov r7,zero + 5abc: 0008e540 call 8e54 <__multadd> + 5ac0: d8800715 stw r2,28(sp) + 5ac4: 84000044 addi r16,r16,1 + 5ac8: d9000717 ldw r4,28(sp) + 5acc: 900b883a mov r5,r18 + 5ad0: 0004d280 call 4d28 + 5ad4: 15c00c04 addi r23,r2,48 + 5ad8: b5c00005 stb r23,0(r22) + 5adc: d8c00f17 ldw r3,60(sp) + 5ae0: b5800044 addi r22,r22,1 + 5ae4: 80fff116 blt r16,r3,5aac <_dtoa_r+0xb40> + 5ae8: d8000615 stw zero,24(sp) + 5aec: d9400717 ldw r5,28(sp) + 5af0: d9001617 ldw r4,88(sp) + 5af4: 01800044 movi r6,1 + 5af8: 0008a780 call 8a78 <__lshift> + 5afc: 1009883a mov r4,r2 + 5b00: 900b883a mov r5,r18 + 5b04: d8800715 stw r2,28(sp) + 5b08: 00082900 call 8290 <__mcmp> + 5b0c: 00803c0e bge zero,r2,5c00 <_dtoa_r+0xc94> + 5b10: b009883a mov r4,r22 + 5b14: 213fffc4 addi r4,r4,-1 + 5b18: 21400003 ldbu r5,0(r4) + 5b1c: 00800e44 movi r2,57 + 5b20: 28c03fcc andi r3,r5,255 + 5b24: 18c0201c xori r3,r3,128 + 5b28: 18ffe004 addi r3,r3,-128 + 5b2c: 1881981e bne r3,r2,6190 <_dtoa_r+0x1224> + 5b30: d9800517 ldw r6,20(sp) + 5b34: 21bff71e bne r4,r6,5b14 <_dtoa_r+0xba8> + 5b38: d8800d17 ldw r2,52(sp) + 5b3c: 37000044 addi fp,r6,1 + 5b40: 10800044 addi r2,r2,1 + 5b44: d8800d15 stw r2,52(sp) + 5b48: 00800c44 movi r2,49 + 5b4c: 30800005 stb r2,0(r6) + 5b50: d9001617 ldw r4,88(sp) + 5b54: 900b883a mov r5,r18 + 5b58: 00081340 call 8134 <_Bfree> + 5b5c: 983ecd26 beq r19,zero,5694 <_dtoa_r+0x728> + 5b60: d8c00617 ldw r3,24(sp) + 5b64: 18000426 beq r3,zero,5b78 <_dtoa_r+0xc0c> + 5b68: 1cc00326 beq r3,r19,5b78 <_dtoa_r+0xc0c> + 5b6c: d9001617 ldw r4,88(sp) + 5b70: 180b883a mov r5,r3 + 5b74: 00081340 call 8134 <_Bfree> + 5b78: d9001617 ldw r4,88(sp) + 5b7c: 980b883a mov r5,r19 + 5b80: 00081340 call 8134 <_Bfree> + 5b84: 003ec306 br 5694 <_dtoa_r+0x728> + 5b88: 1805883a mov r2,r3 + 5b8c: 003eeb06 br 573c <_dtoa_r+0x7d0> + 5b90: d9800a17 ldw r6,40(sp) + 5b94: d8c01117 ldw r3,68(sp) + 5b98: 20bfff04 addi r2,r4,-4 + 5b9c: 308d883a add r6,r6,r2 + 5ba0: 1887883a add r3,r3,r2 + 5ba4: 80a1883a add r16,r16,r2 + 5ba8: d9800a15 stw r6,40(sp) + 5bac: d8c01115 stw r3,68(sp) + 5bb0: 003f1d06 br 5828 <_dtoa_r+0x8bc> + 5bb4: a03f0c1e bne r20,zero,57e8 <_dtoa_r+0x87c> + 5bb8: 00800434 movhi r2,16 + 5bbc: 10bfffc4 addi r2,r2,-1 + 5bc0: a884703a and r2,r21,r2 + 5bc4: 103f081e bne r2,zero,57e8 <_dtoa_r+0x87c> + 5bc8: a89ffc2c andhi r2,r21,32752 + 5bcc: 103f0626 beq r2,zero,57e8 <_dtoa_r+0x87c> + 5bd0: d8c01117 ldw r3,68(sp) + 5bd4: d9000a17 ldw r4,40(sp) + 5bd8: 18c00044 addi r3,r3,1 + 5bdc: 21000044 addi r4,r4,1 + 5be0: d8c01115 stw r3,68(sp) + 5be4: d9000a15 stw r4,40(sp) + 5be8: 003f0006 br 57ec <_dtoa_r+0x880> + 5bec: d9400717 ldw r5,28(sp) + 5bf0: d9001617 ldw r4,88(sp) + 5bf4: 0008f800 call 8f80 <__pow5mult> + 5bf8: d8800715 stw r2,28(sp) + 5bfc: 003eed06 br 57b4 <_dtoa_r+0x848> + 5c00: 1000021e bne r2,zero,5c0c <_dtoa_r+0xca0> + 5c04: b880004c andi r2,r23,1 + 5c08: 103fc11e bne r2,zero,5b10 <_dtoa_r+0xba4> + 5c0c: b5bfffc4 addi r22,r22,-1 + 5c10: b0c00007 ldb r3,0(r22) + 5c14: 00800c04 movi r2,48 + 5c18: 18bffc26 beq r3,r2,5c0c <_dtoa_r+0xca0> + 5c1c: b7000044 addi fp,r22,1 + 5c20: 003fcb06 br 5b50 <_dtoa_r+0xbe4> + 5c24: d9800d17 ldw r6,52(sp) + 5c28: 018fc83a sub r7,zero,r6 + 5c2c: 3801f726 beq r7,zero,640c <_dtoa_r+0x14a0> + 5c30: 398003cc andi r6,r7,15 + 5c34: 300c90fa slli r6,r6,3 + 5c38: 01400074 movhi r5,1 + 5c3c: 2940cf04 addi r5,r5,828 + 5c40: d9001217 ldw r4,72(sp) + 5c44: 314d883a add r6,r6,r5 + 5c48: 30c00117 ldw r3,4(r6) + 5c4c: 30800017 ldw r2,0(r6) + 5c50: d9401317 ldw r5,76(sp) + 5c54: 3821d13a srai r16,r7,4 + 5c58: 100d883a mov r6,r2 + 5c5c: 180f883a mov r7,r3 + 5c60: 000b1140 call b114 <__muldf3> + 5c64: 1011883a mov r8,r2 + 5c68: 1813883a mov r9,r3 + 5c6c: 1029883a mov r20,r2 + 5c70: 182b883a mov r21,r3 + 5c74: 8001e526 beq r16,zero,640c <_dtoa_r+0x14a0> + 5c78: 05800084 movi r22,2 + 5c7c: 04400074 movhi r17,1 + 5c80: 8c410104 addi r17,r17,1028 + 5c84: 8080004c andi r2,r16,1 + 5c88: 1005003a cmpeq r2,r2,zero + 5c8c: 1000081e bne r2,zero,5cb0 <_dtoa_r+0xd44> + 5c90: 89800017 ldw r6,0(r17) + 5c94: 89c00117 ldw r7,4(r17) + 5c98: 480b883a mov r5,r9 + 5c9c: 4009883a mov r4,r8 + 5ca0: 000b1140 call b114 <__muldf3> + 5ca4: 1011883a mov r8,r2 + 5ca8: b5800044 addi r22,r22,1 + 5cac: 1813883a mov r9,r3 + 5cb0: 8021d07a srai r16,r16,1 + 5cb4: 8c400204 addi r17,r17,8 + 5cb8: 803ff21e bne r16,zero,5c84 <_dtoa_r+0xd18> + 5cbc: 4029883a mov r20,r8 + 5cc0: 482b883a mov r21,r9 + 5cc4: 003dca06 br 53f0 <_dtoa_r+0x484> + 5cc8: d9000817 ldw r4,32(sp) + 5ccc: 2005003a cmpeq r2,r4,zero + 5cd0: 1001f61e bne r2,zero,64ac <_dtoa_r+0x1540> + 5cd4: dc001117 ldw r16,68(sp) + 5cd8: dc801017 ldw r18,64(sp) + 5cdc: 18c10cc4 addi r3,r3,1075 + 5ce0: 003f6106 br 5a68 <_dtoa_r+0xafc> + 5ce4: d8000b15 stw zero,44(sp) + 5ce8: d9802617 ldw r6,152(sp) + 5cec: d8c00d17 ldw r3,52(sp) + 5cf0: 30800044 addi r2,r6,1 + 5cf4: 18ad883a add r22,r3,r2 + 5cf8: b13fffc4 addi r4,r22,-1 + 5cfc: d9000e15 stw r4,56(sp) + 5d00: 0581f60e bge zero,r22,64dc <_dtoa_r+0x1570> + 5d04: dd800f15 stw r22,60(sp) + 5d08: 003f3006 br 59cc <_dtoa_r+0xa60> + 5d0c: d8000b15 stw zero,44(sp) + 5d10: d9002617 ldw r4,152(sp) + 5d14: 0101eb0e bge zero,r4,64c4 <_dtoa_r+0x1558> + 5d18: 202d883a mov r22,r4 + 5d1c: d9000e15 stw r4,56(sp) + 5d20: d9000f15 stw r4,60(sp) + 5d24: 003f2906 br 59cc <_dtoa_r+0xa60> + 5d28: 01800044 movi r6,1 + 5d2c: d9800b15 stw r6,44(sp) + 5d30: 003ff706 br 5d10 <_dtoa_r+0xda4> + 5d34: 01000044 movi r4,1 + 5d38: d9000b15 stw r4,44(sp) + 5d3c: 003fea06 br 5ce8 <_dtoa_r+0xd7c> + 5d40: 04000c0e bge zero,r16,5d74 <_dtoa_r+0xe08> + 5d44: d9400717 ldw r5,28(sp) + 5d48: d9001617 ldw r4,88(sp) + 5d4c: 01800044 movi r6,1 + 5d50: 0008a780 call 8a78 <__lshift> + 5d54: 1009883a mov r4,r2 + 5d58: 900b883a mov r5,r18 + 5d5c: d8800715 stw r2,28(sp) + 5d60: 00082900 call 8290 <__mcmp> + 5d64: 0081e00e bge zero,r2,64e8 <_dtoa_r+0x157c> + 5d68: bdc00044 addi r23,r23,1 + 5d6c: 00800e84 movi r2,58 + 5d70: b881a226 beq r23,r2,63fc <_dtoa_r+0x1490> + 5d74: b7000044 addi fp,r22,1 + 5d78: b5c00005 stb r23,0(r22) + 5d7c: 003f7406 br 5b50 <_dtoa_r+0xbe4> + 5d80: 00800e44 movi r2,57 + 5d84: b8819d26 beq r23,r2,63fc <_dtoa_r+0x1490> + 5d88: 053ffa0e bge zero,r20,5d74 <_dtoa_r+0xe08> + 5d8c: 8dc00c44 addi r23,r17,49 + 5d90: 003ff806 br 5d74 <_dtoa_r+0xe08> + 5d94: d9001617 ldw r4,88(sp) + 5d98: a80b883a mov r5,r21 + 5d9c: 04000044 movi r16,1 + 5da0: 00081340 call 8134 <_Bfree> + 5da4: 003edf06 br 5924 <_dtoa_r+0x9b8> + 5da8: d9001617 ldw r4,88(sp) + 5dac: 980b883a mov r5,r19 + 5db0: 01800284 movi r6,10 + 5db4: 000f883a mov r7,zero + 5db8: 0008e540 call 8e54 <__multadd> + 5dbc: 1027883a mov r19,r2 + 5dc0: d8800615 stw r2,24(sp) + 5dc4: 003ebb06 br 58b4 <_dtoa_r+0x948> + 5dc8: d9801117 ldw r6,68(sp) + 5dcc: d8800d17 ldw r2,52(sp) + 5dd0: d8000915 stw zero,36(sp) + 5dd4: 308dc83a sub r6,r6,r2 + 5dd8: 0087c83a sub r3,zero,r2 + 5ddc: d9801115 stw r6,68(sp) + 5de0: d8c01015 stw r3,64(sp) + 5de4: 003cfe06 br 51e0 <_dtoa_r+0x274> + 5de8: 018dc83a sub r6,zero,r6 + 5dec: d9801115 stw r6,68(sp) + 5df0: d8000a15 stw zero,40(sp) + 5df4: 003cf306 br 51c4 <_dtoa_r+0x258> + 5df8: d9000d17 ldw r4,52(sp) + 5dfc: 000b9d80 call b9d8 <__floatsidf> + 5e00: 880b883a mov r5,r17 + 5e04: 8009883a mov r4,r16 + 5e08: 180f883a mov r7,r3 + 5e0c: 100d883a mov r6,r2 + 5e10: 000b7b80 call b7b8 <__nedf2> + 5e14: 103ce126 beq r2,zero,519c <_dtoa_r+0x230> + 5e18: d9800d17 ldw r6,52(sp) + 5e1c: 31bfffc4 addi r6,r6,-1 + 5e20: d9800d15 stw r6,52(sp) + 5e24: 003cdd06 br 519c <_dtoa_r+0x230> + 5e28: d9000717 ldw r4,28(sp) + 5e2c: 900b883a mov r5,r18 + 5e30: 00082900 call 8290 <__mcmp> + 5e34: 103e8d0e bge r2,zero,586c <_dtoa_r+0x900> + 5e38: d9400717 ldw r5,28(sp) + 5e3c: d9001617 ldw r4,88(sp) + 5e40: 01800284 movi r6,10 + 5e44: 000f883a mov r7,zero + 5e48: 0008e540 call 8e54 <__multadd> + 5e4c: d9800d17 ldw r6,52(sp) + 5e50: d8800715 stw r2,28(sp) + 5e54: 31bfffc4 addi r6,r6,-1 + 5e58: d9800d15 stw r6,52(sp) + 5e5c: b001a71e bne r22,zero,64fc <_dtoa_r+0x1590> + 5e60: d8800e17 ldw r2,56(sp) + 5e64: d8800f15 stw r2,60(sp) + 5e68: 003e8006 br 586c <_dtoa_r+0x900> + 5e6c: 90800417 ldw r2,16(r18) + 5e70: 1085883a add r2,r2,r2 + 5e74: 1085883a add r2,r2,r2 + 5e78: 1485883a add r2,r2,r18 + 5e7c: 11000417 ldw r4,16(r2) + 5e80: 000815c0 call 815c <__hi0bits> + 5e84: 00c00804 movi r3,32 + 5e88: 1887c83a sub r3,r3,r2 + 5e8c: 003e5a06 br 57f8 <_dtoa_r+0x88c> + 5e90: d9400717 ldw r5,28(sp) + 5e94: d9801017 ldw r6,64(sp) + 5e98: d9001617 ldw r4,88(sp) + 5e9c: 0008f800 call 8f80 <__pow5mult> + 5ea0: d8800715 stw r2,28(sp) + 5ea4: 003e4306 br 57b4 <_dtoa_r+0x848> + 5ea8: d9800f17 ldw r6,60(sp) + 5eac: d8800d17 ldw r2,52(sp) + 5eb0: d9800315 stw r6,12(sp) + 5eb4: d8800415 stw r2,16(sp) + 5eb8: d8c00b17 ldw r3,44(sp) + 5ebc: 1805003a cmpeq r2,r3,zero + 5ec0: 1000e21e bne r2,zero,624c <_dtoa_r+0x12e0> + 5ec4: d9000317 ldw r4,12(sp) + 5ec8: 0005883a mov r2,zero + 5ecc: 00cff834 movhi r3,16352 + 5ed0: 200c90fa slli r6,r4,3 + 5ed4: 01000074 movhi r4,1 + 5ed8: 2100cf04 addi r4,r4,828 + 5edc: 180b883a mov r5,r3 + 5ee0: 310d883a add r6,r6,r4 + 5ee4: 327fff17 ldw r9,-4(r6) + 5ee8: 323ffe17 ldw r8,-8(r6) + 5eec: 1009883a mov r4,r2 + 5ef0: 480f883a mov r7,r9 + 5ef4: 400d883a mov r6,r8 + 5ef8: 000b4d80 call b4d8 <__divdf3> + 5efc: 180b883a mov r5,r3 + 5f00: b00d883a mov r6,r22 + 5f04: b80f883a mov r7,r23 + 5f08: 1009883a mov r4,r2 + 5f0c: 000b0200 call b020 <__subdf3> + 5f10: a80b883a mov r5,r21 + 5f14: a009883a mov r4,r20 + 5f18: d8c01915 stw r3,100(sp) + 5f1c: d8801815 stw r2,96(sp) + 5f20: 000bad00 call bad0 <__fixdfsi> + 5f24: 1009883a mov r4,r2 + 5f28: 1027883a mov r19,r2 + 5f2c: 000b9d80 call b9d8 <__floatsidf> + 5f30: a80b883a mov r5,r21 + 5f34: a009883a mov r4,r20 + 5f38: 180f883a mov r7,r3 + 5f3c: 100d883a mov r6,r2 + 5f40: 000b0200 call b020 <__subdf3> + 5f44: d9801817 ldw r6,96(sp) + 5f48: 1823883a mov r17,r3 + 5f4c: d8801415 stw r2,80(sp) + 5f50: 302d883a mov r22,r6 + 5f54: d9800517 ldw r6,20(sp) + 5f58: 9cc00c04 addi r19,r19,48 + 5f5c: dc401515 stw r17,84(sp) + 5f60: d8c01917 ldw r3,100(sp) + 5f64: 34c00005 stb r19,0(r6) + 5f68: d8800517 ldw r2,20(sp) + 5f6c: d9401917 ldw r5,100(sp) + 5f70: d9801417 ldw r6,80(sp) + 5f74: b009883a mov r4,r22 + 5f78: 880f883a mov r7,r17 + 5f7c: 182f883a mov r23,r3 + 5f80: 17000044 addi fp,r2,1 + 5f84: 000b8400 call b840 <__gtdf2> + 5f88: 00804e16 blt zero,r2,60c4 <_dtoa_r+0x1158> + 5f8c: d9801417 ldw r6,80(sp) + 5f90: 0005883a mov r2,zero + 5f94: 00cffc34 movhi r3,16368 + 5f98: 180b883a mov r5,r3 + 5f9c: 880f883a mov r7,r17 + 5fa0: 1009883a mov r4,r2 + 5fa4: 000b0200 call b020 <__subdf3> + 5fa8: d9401917 ldw r5,100(sp) + 5fac: 180f883a mov r7,r3 + 5fb0: b009883a mov r4,r22 + 5fb4: 100d883a mov r6,r2 + 5fb8: 000b8400 call b840 <__gtdf2> + 5fbc: 00bda216 blt zero,r2,5648 <_dtoa_r+0x6dc> + 5fc0: d8c00317 ldw r3,12(sp) + 5fc4: 00800044 movi r2,1 + 5fc8: 10c01216 blt r2,r3,6014 <_dtoa_r+0x10a8> + 5fcc: 003d4506 br 54e4 <_dtoa_r+0x578> + 5fd0: d9801417 ldw r6,80(sp) + 5fd4: 0005883a mov r2,zero + 5fd8: 00cffc34 movhi r3,16368 + 5fdc: 180b883a mov r5,r3 + 5fe0: 880f883a mov r7,r17 + 5fe4: 1009883a mov r4,r2 + 5fe8: 000b0200 call b020 <__subdf3> + 5fec: d9c01b17 ldw r7,108(sp) + 5ff0: 180b883a mov r5,r3 + 5ff4: 1009883a mov r4,r2 + 5ff8: b00d883a mov r6,r22 + 5ffc: 000b9500 call b950 <__ltdf2> + 6000: 103d9116 blt r2,zero,5648 <_dtoa_r+0x6dc> + 6004: d9800517 ldw r6,20(sp) + 6008: d9000317 ldw r4,12(sp) + 600c: 3105883a add r2,r6,r4 + 6010: e0bd3426 beq fp,r2,54e4 <_dtoa_r+0x578> + 6014: 04500934 movhi r17,16420 + 6018: 0021883a mov r16,zero + 601c: b80b883a mov r5,r23 + 6020: b009883a mov r4,r22 + 6024: 800d883a mov r6,r16 + 6028: 880f883a mov r7,r17 + 602c: 000b1140 call b114 <__muldf3> + 6030: d9401517 ldw r5,84(sp) + 6034: d9001417 ldw r4,80(sp) + 6038: 880f883a mov r7,r17 + 603c: 000d883a mov r6,zero + 6040: d8801a15 stw r2,104(sp) + 6044: d8c01b15 stw r3,108(sp) + 6048: 000b1140 call b114 <__muldf3> + 604c: 180b883a mov r5,r3 + 6050: 1009883a mov r4,r2 + 6054: 1823883a mov r17,r3 + 6058: 1021883a mov r16,r2 + 605c: 000bad00 call bad0 <__fixdfsi> + 6060: 1009883a mov r4,r2 + 6064: 102b883a mov r21,r2 + 6068: 000b9d80 call b9d8 <__floatsidf> + 606c: 880b883a mov r5,r17 + 6070: 8009883a mov r4,r16 + 6074: 180f883a mov r7,r3 + 6078: 100d883a mov r6,r2 + 607c: 000b0200 call b020 <__subdf3> + 6080: 1021883a mov r16,r2 + 6084: d9001b17 ldw r4,108(sp) + 6088: 1823883a mov r17,r3 + 608c: dc001415 stw r16,80(sp) + 6090: ad400c04 addi r21,r21,48 + 6094: dc401515 stw r17,84(sp) + 6098: d8801a17 ldw r2,104(sp) + 609c: e5400005 stb r21,0(fp) + 60a0: 202f883a mov r23,r4 + 60a4: d9c01b17 ldw r7,108(sp) + 60a8: d9001417 ldw r4,80(sp) + 60ac: 880b883a mov r5,r17 + 60b0: 100d883a mov r6,r2 + 60b4: 102d883a mov r22,r2 + 60b8: e7000044 addi fp,fp,1 + 60bc: 000b9500 call b950 <__ltdf2> + 60c0: 103fc30e bge r2,zero,5fd0 <_dtoa_r+0x1064> + 60c4: d9000417 ldw r4,16(sp) + 60c8: d9000d15 stw r4,52(sp) + 60cc: 003d7106 br 5694 <_dtoa_r+0x728> + 60d0: d9801717 ldw r6,92(sp) + 60d4: 00800084 movi r2,2 + 60d8: 11bde60e bge r2,r6,5874 <_dtoa_r+0x908> + 60dc: 203cfb1e bne r4,zero,54cc <_dtoa_r+0x560> + 60e0: d9001617 ldw r4,88(sp) + 60e4: 900b883a mov r5,r18 + 60e8: 01800144 movi r6,5 + 60ec: 000f883a mov r7,zero + 60f0: 0008e540 call 8e54 <__multadd> + 60f4: d9000717 ldw r4,28(sp) + 60f8: 100b883a mov r5,r2 + 60fc: 1025883a mov r18,r2 + 6100: 00082900 call 8290 <__mcmp> + 6104: 00bcf10e bge zero,r2,54cc <_dtoa_r+0x560> + 6108: d8c00d17 ldw r3,52(sp) + 610c: d9000517 ldw r4,20(sp) + 6110: d8000615 stw zero,24(sp) + 6114: 18c00044 addi r3,r3,1 + 6118: d8c00d15 stw r3,52(sp) + 611c: 00800c44 movi r2,49 + 6120: 27000044 addi fp,r4,1 + 6124: 20800005 stb r2,0(r4) + 6128: 003e8906 br 5b50 <_dtoa_r+0xbe4> + 612c: d8c00517 ldw r3,20(sp) + 6130: 003bc206 br 503c <_dtoa_r+0xd0> + 6134: 01800074 movhi r6,1 + 6138: 31810104 addi r6,r6,1028 + 613c: 30c00917 ldw r3,36(r6) + 6140: 30800817 ldw r2,32(r6) + 6144: d9001217 ldw r4,72(sp) + 6148: d9401317 ldw r5,76(sp) + 614c: 180f883a mov r7,r3 + 6150: 100d883a mov r6,r2 + 6154: 000b4d80 call b4d8 <__divdf3> + 6158: 948003cc andi r18,r18,15 + 615c: 058000c4 movi r22,3 + 6160: 1029883a mov r20,r2 + 6164: 182b883a mov r21,r3 + 6168: 003c8906 br 5390 <_dtoa_r+0x424> + 616c: d9001017 ldw r4,64(sp) + 6170: d9800917 ldw r6,36(sp) + 6174: 0025883a mov r18,zero + 6178: 1105c83a sub r2,r2,r4 + 617c: 2089883a add r4,r4,r2 + 6180: 308d883a add r6,r6,r2 + 6184: d9001015 stw r4,64(sp) + 6188: d9800915 stw r6,36(sp) + 618c: 003e3206 br 5a58 <_dtoa_r+0xaec> + 6190: 28800044 addi r2,r5,1 + 6194: 27000044 addi fp,r4,1 + 6198: 20800005 stb r2,0(r4) + 619c: 003e6c06 br 5b50 <_dtoa_r+0xbe4> + 61a0: d8800f17 ldw r2,60(sp) + 61a4: 00bce016 blt zero,r2,5528 <_dtoa_r+0x5bc> + 61a8: d9800f17 ldw r6,60(sp) + 61ac: 303cc51e bne r6,zero,54c4 <_dtoa_r+0x558> + 61b0: 0005883a mov r2,zero + 61b4: 00d00534 movhi r3,16404 + 61b8: 980b883a mov r5,r19 + 61bc: 180f883a mov r7,r3 + 61c0: 9009883a mov r4,r18 + 61c4: 100d883a mov r6,r2 + 61c8: 000b1140 call b114 <__muldf3> + 61cc: 180b883a mov r5,r3 + 61d0: a80f883a mov r7,r21 + 61d4: 1009883a mov r4,r2 + 61d8: a00d883a mov r6,r20 + 61dc: 000b8c80 call b8c8 <__gedf2> + 61e0: 103cb80e bge r2,zero,54c4 <_dtoa_r+0x558> + 61e4: 0027883a mov r19,zero + 61e8: 0025883a mov r18,zero + 61ec: 003fc606 br 6108 <_dtoa_r+0x119c> + 61f0: 99400117 ldw r5,4(r19) + 61f4: d9001617 ldw r4,88(sp) + 61f8: 00086b40 call 86b4 <_Balloc> + 61fc: 99800417 ldw r6,16(r19) + 6200: 11000304 addi r4,r2,12 + 6204: 99400304 addi r5,r19,12 + 6208: 318d883a add r6,r6,r6 + 620c: 318d883a add r6,r6,r6 + 6210: 31800204 addi r6,r6,8 + 6214: 1023883a mov r17,r2 + 6218: 0007f1c0 call 7f1c + 621c: d9001617 ldw r4,88(sp) + 6220: 880b883a mov r5,r17 + 6224: 01800044 movi r6,1 + 6228: 0008a780 call 8a78 <__lshift> + 622c: 100b883a mov r5,r2 + 6230: 003d9c06 br 58a4 <_dtoa_r+0x938> + 6234: 00800e44 movi r2,57 + 6238: b8807026 beq r23,r2,63fc <_dtoa_r+0x1490> + 623c: b8800044 addi r2,r23,1 + 6240: b7000044 addi fp,r22,1 + 6244: b0800005 stb r2,0(r22) + 6248: 003e4106 br 5b50 <_dtoa_r+0xbe4> + 624c: d8800317 ldw r2,12(sp) + 6250: 01800074 movhi r6,1 + 6254: 3180cf04 addi r6,r6,828 + 6258: b009883a mov r4,r22 + 625c: 100e90fa slli r7,r2,3 + 6260: b80b883a mov r5,r23 + 6264: 398f883a add r7,r7,r6 + 6268: 38bffe17 ldw r2,-8(r7) + 626c: d9800517 ldw r6,20(sp) + 6270: 38ffff17 ldw r3,-4(r7) + 6274: 37000044 addi fp,r6,1 + 6278: 180f883a mov r7,r3 + 627c: 100d883a mov r6,r2 + 6280: 000b1140 call b114 <__muldf3> + 6284: a80b883a mov r5,r21 + 6288: a009883a mov r4,r20 + 628c: 182f883a mov r23,r3 + 6290: 102d883a mov r22,r2 + 6294: 000bad00 call bad0 <__fixdfsi> + 6298: 1009883a mov r4,r2 + 629c: 1027883a mov r19,r2 + 62a0: 000b9d80 call b9d8 <__floatsidf> + 62a4: a80b883a mov r5,r21 + 62a8: a009883a mov r4,r20 + 62ac: 180f883a mov r7,r3 + 62b0: 100d883a mov r6,r2 + 62b4: 000b0200 call b020 <__subdf3> + 62b8: 180b883a mov r5,r3 + 62bc: d8c00517 ldw r3,20(sp) + 62c0: 9cc00c04 addi r19,r19,48 + 62c4: 1009883a mov r4,r2 + 62c8: 1cc00005 stb r19,0(r3) + 62cc: 2021883a mov r16,r4 + 62d0: d9000317 ldw r4,12(sp) + 62d4: 00800044 movi r2,1 + 62d8: 2823883a mov r17,r5 + 62dc: 20802226 beq r4,r2,6368 <_dtoa_r+0x13fc> + 62e0: 1029883a mov r20,r2 + 62e4: 0005883a mov r2,zero + 62e8: 00d00934 movhi r3,16420 + 62ec: 180f883a mov r7,r3 + 62f0: 100d883a mov r6,r2 + 62f4: 880b883a mov r5,r17 + 62f8: 8009883a mov r4,r16 + 62fc: 000b1140 call b114 <__muldf3> + 6300: 180b883a mov r5,r3 + 6304: 1009883a mov r4,r2 + 6308: 1823883a mov r17,r3 + 630c: 1021883a mov r16,r2 + 6310: 000bad00 call bad0 <__fixdfsi> + 6314: 1009883a mov r4,r2 + 6318: 102b883a mov r21,r2 + 631c: 000b9d80 call b9d8 <__floatsidf> + 6320: 880b883a mov r5,r17 + 6324: 8009883a mov r4,r16 + 6328: 180f883a mov r7,r3 + 632c: 100d883a mov r6,r2 + 6330: 000b0200 call b020 <__subdf3> + 6334: 180b883a mov r5,r3 + 6338: d8c00517 ldw r3,20(sp) + 633c: 1009883a mov r4,r2 + 6340: ad400c04 addi r21,r21,48 + 6344: 1d05883a add r2,r3,r20 + 6348: 15400005 stb r21,0(r2) + 634c: 2021883a mov r16,r4 + 6350: d9000317 ldw r4,12(sp) + 6354: a5000044 addi r20,r20,1 + 6358: 2823883a mov r17,r5 + 635c: a13fe11e bne r20,r4,62e4 <_dtoa_r+0x1378> + 6360: e505883a add r2,fp,r20 + 6364: 173fffc4 addi fp,r2,-1 + 6368: 0025883a mov r18,zero + 636c: 04cff834 movhi r19,16352 + 6370: b009883a mov r4,r22 + 6374: b80b883a mov r5,r23 + 6378: 900d883a mov r6,r18 + 637c: 980f883a mov r7,r19 + 6380: 000b0a00 call b0a0 <__adddf3> + 6384: 180b883a mov r5,r3 + 6388: 1009883a mov r4,r2 + 638c: 800d883a mov r6,r16 + 6390: 880f883a mov r7,r17 + 6394: 000b9500 call b950 <__ltdf2> + 6398: 103cab16 blt r2,zero,5648 <_dtoa_r+0x6dc> + 639c: 0009883a mov r4,zero + 63a0: 980b883a mov r5,r19 + 63a4: b80f883a mov r7,r23 + 63a8: b00d883a mov r6,r22 + 63ac: 000b0200 call b020 <__subdf3> + 63b0: 180b883a mov r5,r3 + 63b4: 880f883a mov r7,r17 + 63b8: 1009883a mov r4,r2 + 63bc: 800d883a mov r6,r16 + 63c0: 000b8400 call b840 <__gtdf2> + 63c4: 00bc470e bge zero,r2,54e4 <_dtoa_r+0x578> + 63c8: 00c00c04 movi r3,48 + 63cc: e73fffc4 addi fp,fp,-1 + 63d0: e0800007 ldb r2,0(fp) + 63d4: 10fffd26 beq r2,r3,63cc <_dtoa_r+0x1460> + 63d8: d9800417 ldw r6,16(sp) + 63dc: e7000044 addi fp,fp,1 + 63e0: d9800d15 stw r6,52(sp) + 63e4: 003cab06 br 5694 <_dtoa_r+0x728> + 63e8: d8c00f17 ldw r3,60(sp) + 63ec: d9001117 ldw r4,68(sp) + 63f0: 20e1c83a sub r16,r4,r3 + 63f4: 0007883a mov r3,zero + 63f8: 003d9b06 br 5a68 <_dtoa_r+0xafc> + 63fc: 00800e44 movi r2,57 + 6400: b0800005 stb r2,0(r22) + 6404: b5800044 addi r22,r22,1 + 6408: 003dc106 br 5b10 <_dtoa_r+0xba4> + 640c: 05800084 movi r22,2 + 6410: 003bf706 br 53f0 <_dtoa_r+0x484> + 6414: d9000f17 ldw r4,60(sp) + 6418: 013c000e bge zero,r4,541c <_dtoa_r+0x4b0> + 641c: d9800e17 ldw r6,56(sp) + 6420: 01bc300e bge zero,r6,54e4 <_dtoa_r+0x578> + 6424: 0005883a mov r2,zero + 6428: 00d00934 movhi r3,16420 + 642c: a80b883a mov r5,r21 + 6430: 180f883a mov r7,r3 + 6434: a009883a mov r4,r20 + 6438: 100d883a mov r6,r2 + 643c: 000b1140 call b114 <__muldf3> + 6440: b1000044 addi r4,r22,1 + 6444: 1021883a mov r16,r2 + 6448: 1823883a mov r17,r3 + 644c: 000b9d80 call b9d8 <__floatsidf> + 6450: 880b883a mov r5,r17 + 6454: 8009883a mov r4,r16 + 6458: 180f883a mov r7,r3 + 645c: 100d883a mov r6,r2 + 6460: 000b1140 call b114 <__muldf3> + 6464: 0011883a mov r8,zero + 6468: 02500734 movhi r9,16412 + 646c: 180b883a mov r5,r3 + 6470: 480f883a mov r7,r9 + 6474: 1009883a mov r4,r2 + 6478: 400d883a mov r6,r8 + 647c: 000b0a00 call b0a0 <__adddf3> + 6480: 102d883a mov r22,r2 + 6484: 00bf3034 movhi r2,64704 + 6488: 10ef883a add r23,r2,r3 + 648c: d8800d17 ldw r2,52(sp) + 6490: d8c00e17 ldw r3,56(sp) + 6494: 8029883a mov r20,r16 + 6498: 10bfffc4 addi r2,r2,-1 + 649c: 882b883a mov r21,r17 + 64a0: d8800415 stw r2,16(sp) + 64a4: d8c00315 stw r3,12(sp) + 64a8: 003e8306 br 5eb8 <_dtoa_r+0xf4c> + 64ac: d8800117 ldw r2,4(sp) + 64b0: dc001117 ldw r16,68(sp) + 64b4: dc801017 ldw r18,64(sp) + 64b8: 00c00d84 movi r3,54 + 64bc: 1887c83a sub r3,r3,r2 + 64c0: 003d6906 br 5a68 <_dtoa_r+0xafc> + 64c4: 01800044 movi r6,1 + 64c8: 3021883a mov r16,r6 + 64cc: d9800f15 stw r6,60(sp) + 64d0: d9802615 stw r6,152(sp) + 64d4: d9800e15 stw r6,56(sp) + 64d8: 003b9306 br 5328 <_dtoa_r+0x3bc> + 64dc: b021883a mov r16,r22 + 64e0: dd800f15 stw r22,60(sp) + 64e4: 003b9006 br 5328 <_dtoa_r+0x3bc> + 64e8: 103e221e bne r2,zero,5d74 <_dtoa_r+0xe08> + 64ec: b880004c andi r2,r23,1 + 64f0: 1005003a cmpeq r2,r2,zero + 64f4: 103e1f1e bne r2,zero,5d74 <_dtoa_r+0xe08> + 64f8: 003e1b06 br 5d68 <_dtoa_r+0xdfc> + 64fc: d9001617 ldw r4,88(sp) + 6500: 980b883a mov r5,r19 + 6504: 01800284 movi r6,10 + 6508: 000f883a mov r7,zero + 650c: 0008e540 call 8e54 <__multadd> + 6510: d8c00e17 ldw r3,56(sp) + 6514: 1027883a mov r19,r2 + 6518: d8c00f15 stw r3,60(sp) + 651c: 003cd306 br 586c <_dtoa_r+0x900> + +00006520 <_fflush_r>: + 6520: defffb04 addi sp,sp,-20 + 6524: dcc00315 stw r19,12(sp) + 6528: dc800215 stw r18,8(sp) + 652c: dfc00415 stw ra,16(sp) + 6530: dc400115 stw r17,4(sp) + 6534: dc000015 stw r16,0(sp) + 6538: 2027883a mov r19,r4 + 653c: 2825883a mov r18,r5 + 6540: 20000226 beq r4,zero,654c <_fflush_r+0x2c> + 6544: 20800e17 ldw r2,56(r4) + 6548: 10005626 beq r2,zero,66a4 <_fflush_r+0x184> + 654c: 9100030b ldhu r4,12(r18) + 6550: 20ffffcc andi r3,r4,65535 + 6554: 18e0001c xori r3,r3,32768 + 6558: 18e00004 addi r3,r3,-32768 + 655c: 1880020c andi r2,r3,8 + 6560: 1000261e bne r2,zero,65fc <_fflush_r+0xdc> + 6564: 90c00117 ldw r3,4(r18) + 6568: 20820014 ori r2,r4,2048 + 656c: 9080030d sth r2,12(r18) + 6570: 1009883a mov r4,r2 + 6574: 00c0400e bge zero,r3,6678 <_fflush_r+0x158> + 6578: 92000a17 ldw r8,40(r18) + 657c: 40004026 beq r8,zero,6680 <_fflush_r+0x160> + 6580: 2084000c andi r2,r4,4096 + 6584: 10005326 beq r2,zero,66d4 <_fflush_r+0x1b4> + 6588: 94001417 ldw r16,80(r18) + 658c: 9080030b ldhu r2,12(r18) + 6590: 1080010c andi r2,r2,4 + 6594: 1000481e bne r2,zero,66b8 <_fflush_r+0x198> + 6598: 91400717 ldw r5,28(r18) + 659c: 9809883a mov r4,r19 + 65a0: 800d883a mov r6,r16 + 65a4: 000f883a mov r7,zero + 65a8: 403ee83a callr r8 + 65ac: 8080261e bne r16,r2,6648 <_fflush_r+0x128> + 65b0: 9080030b ldhu r2,12(r18) + 65b4: 91000417 ldw r4,16(r18) + 65b8: 90000115 stw zero,4(r18) + 65bc: 10bdffcc andi r2,r2,63487 + 65c0: 10ffffcc andi r3,r2,65535 + 65c4: 18c4000c andi r3,r3,4096 + 65c8: 9080030d sth r2,12(r18) + 65cc: 91000015 stw r4,0(r18) + 65d0: 18002b26 beq r3,zero,6680 <_fflush_r+0x160> + 65d4: 0007883a mov r3,zero + 65d8: 1805883a mov r2,r3 + 65dc: 94001415 stw r16,80(r18) + 65e0: dfc00417 ldw ra,16(sp) + 65e4: dcc00317 ldw r19,12(sp) + 65e8: dc800217 ldw r18,8(sp) + 65ec: dc400117 ldw r17,4(sp) + 65f0: dc000017 ldw r16,0(sp) + 65f4: dec00504 addi sp,sp,20 + 65f8: f800283a ret + 65fc: 94400417 ldw r17,16(r18) + 6600: 88001f26 beq r17,zero,6680 <_fflush_r+0x160> + 6604: 90800017 ldw r2,0(r18) + 6608: 18c000cc andi r3,r3,3 + 660c: 94400015 stw r17,0(r18) + 6610: 1461c83a sub r16,r2,r17 + 6614: 18002526 beq r3,zero,66ac <_fflush_r+0x18c> + 6618: 0005883a mov r2,zero + 661c: 90800215 stw r2,8(r18) + 6620: 0400170e bge zero,r16,6680 <_fflush_r+0x160> + 6624: 90c00917 ldw r3,36(r18) + 6628: 91400717 ldw r5,28(r18) + 662c: 880d883a mov r6,r17 + 6630: 800f883a mov r7,r16 + 6634: 9809883a mov r4,r19 + 6638: 183ee83a callr r3 + 663c: 88a3883a add r17,r17,r2 + 6640: 80a1c83a sub r16,r16,r2 + 6644: 00bff616 blt zero,r2,6620 <_fflush_r+0x100> + 6648: 9080030b ldhu r2,12(r18) + 664c: 00ffffc4 movi r3,-1 + 6650: 10801014 ori r2,r2,64 + 6654: 9080030d sth r2,12(r18) + 6658: 1805883a mov r2,r3 + 665c: dfc00417 ldw ra,16(sp) + 6660: dcc00317 ldw r19,12(sp) + 6664: dc800217 ldw r18,8(sp) + 6668: dc400117 ldw r17,4(sp) + 666c: dc000017 ldw r16,0(sp) + 6670: dec00504 addi sp,sp,20 + 6674: f800283a ret + 6678: 90800f17 ldw r2,60(r18) + 667c: 00bfbe16 blt zero,r2,6578 <_fflush_r+0x58> + 6680: 0007883a mov r3,zero + 6684: 1805883a mov r2,r3 + 6688: dfc00417 ldw ra,16(sp) + 668c: dcc00317 ldw r19,12(sp) + 6690: dc800217 ldw r18,8(sp) + 6694: dc400117 ldw r17,4(sp) + 6698: dc000017 ldw r16,0(sp) + 669c: dec00504 addi sp,sp,20 + 66a0: f800283a ret + 66a4: 00067b80 call 67b8 <__sinit> + 66a8: 003fa806 br 654c <_fflush_r+0x2c> + 66ac: 90800517 ldw r2,20(r18) + 66b0: 90800215 stw r2,8(r18) + 66b4: 003fda06 br 6620 <_fflush_r+0x100> + 66b8: 90800117 ldw r2,4(r18) + 66bc: 90c00c17 ldw r3,48(r18) + 66c0: 80a1c83a sub r16,r16,r2 + 66c4: 183fb426 beq r3,zero,6598 <_fflush_r+0x78> + 66c8: 90800f17 ldw r2,60(r18) + 66cc: 80a1c83a sub r16,r16,r2 + 66d0: 003fb106 br 6598 <_fflush_r+0x78> + 66d4: 91400717 ldw r5,28(r18) + 66d8: 9809883a mov r4,r19 + 66dc: 000d883a mov r6,zero + 66e0: 01c00044 movi r7,1 + 66e4: 403ee83a callr r8 + 66e8: 1021883a mov r16,r2 + 66ec: 00bfffc4 movi r2,-1 + 66f0: 80800226 beq r16,r2,66fc <_fflush_r+0x1dc> + 66f4: 92000a17 ldw r8,40(r18) + 66f8: 003fa406 br 658c <_fflush_r+0x6c> + 66fc: 98c00017 ldw r3,0(r19) + 6700: 00800744 movi r2,29 + 6704: 18bfde26 beq r3,r2,6680 <_fflush_r+0x160> + 6708: 9080030b ldhu r2,12(r18) + 670c: 8007883a mov r3,r16 + 6710: 10801014 ori r2,r2,64 + 6714: 9080030d sth r2,12(r18) + 6718: 003fcf06 br 6658 <_fflush_r+0x138> + +0000671c : + 671c: 01400034 movhi r5,0 + 6720: 29594804 addi r5,r5,25888 + 6724: 2007883a mov r3,r4 + 6728: 20000526 beq r4,zero,6740 + 672c: 00800074 movhi r2,1 + 6730: 10883e04 addi r2,r2,8440 + 6734: 11000017 ldw r4,0(r2) + 6738: 180b883a mov r5,r3 + 673c: 00065201 jmpi 6520 <_fflush_r> + 6740: 00800074 movhi r2,1 + 6744: 10883f04 addi r2,r2,8444 + 6748: 11000017 ldw r4,0(r2) + 674c: 00073201 jmpi 7320 <_fwalk_reent> + +00006750 : + 6750: 00800074 movhi r2,1 + 6754: 10a62504 addi r2,r2,-26476 + 6758: 20800b15 stw r2,44(r4) + 675c: 00800074 movhi r2,1 + 6760: 10a66004 addi r2,r2,-26240 + 6764: 20800815 stw r2,32(r4) + 6768: 00c00074 movhi r3,1 + 676c: 18e64104 addi r3,r3,-26364 + 6770: 00800074 movhi r2,1 + 6774: 10a62704 addi r2,r2,-26468 + 6778: 2140030d sth r5,12(r4) + 677c: 2180038d sth r6,14(r4) + 6780: 20c00915 stw r3,36(r4) + 6784: 20800a15 stw r2,40(r4) + 6788: 20000015 stw zero,0(r4) + 678c: 20000115 stw zero,4(r4) + 6790: 20000215 stw zero,8(r4) + 6794: 20000415 stw zero,16(r4) + 6798: 20000515 stw zero,20(r4) + 679c: 20000615 stw zero,24(r4) + 67a0: 21000715 stw r4,28(r4) + 67a4: f800283a ret + +000067a8 <__sfp_lock_acquire>: + 67a8: f800283a ret + +000067ac <__sfp_lock_release>: + 67ac: f800283a ret + +000067b0 <__sinit_lock_acquire>: + 67b0: f800283a ret + +000067b4 <__sinit_lock_release>: + 67b4: f800283a ret + +000067b8 <__sinit>: + 67b8: 20800e17 ldw r2,56(r4) + 67bc: defffd04 addi sp,sp,-12 + 67c0: dc400115 stw r17,4(sp) + 67c4: dc000015 stw r16,0(sp) + 67c8: dfc00215 stw ra,8(sp) + 67cc: 04400044 movi r17,1 + 67d0: 01400104 movi r5,4 + 67d4: 000d883a mov r6,zero + 67d8: 2021883a mov r16,r4 + 67dc: 2200bb04 addi r8,r4,748 + 67e0: 200f883a mov r7,r4 + 67e4: 10000526 beq r2,zero,67fc <__sinit+0x44> + 67e8: dfc00217 ldw ra,8(sp) + 67ec: dc400117 ldw r17,4(sp) + 67f0: dc000017 ldw r16,0(sp) + 67f4: dec00304 addi sp,sp,12 + 67f8: f800283a ret + 67fc: 21000117 ldw r4,4(r4) + 6800: 00800034 movhi r2,0 + 6804: 109a2704 addi r2,r2,26780 + 6808: 00c000c4 movi r3,3 + 680c: 80800f15 stw r2,60(r16) + 6810: 80c0b915 stw r3,740(r16) + 6814: 8200ba15 stw r8,744(r16) + 6818: 84400e15 stw r17,56(r16) + 681c: 8000b815 stw zero,736(r16) + 6820: 00067500 call 6750 + 6824: 81000217 ldw r4,8(r16) + 6828: 880d883a mov r6,r17 + 682c: 800f883a mov r7,r16 + 6830: 01400284 movi r5,10 + 6834: 00067500 call 6750 + 6838: 81000317 ldw r4,12(r16) + 683c: 800f883a mov r7,r16 + 6840: 01400484 movi r5,18 + 6844: 01800084 movi r6,2 + 6848: dfc00217 ldw ra,8(sp) + 684c: dc400117 ldw r17,4(sp) + 6850: dc000017 ldw r16,0(sp) + 6854: dec00304 addi sp,sp,12 + 6858: 00067501 jmpi 6750 + +0000685c <__fp_lock>: + 685c: 0005883a mov r2,zero + 6860: f800283a ret + +00006864 <__fp_unlock>: + 6864: 0005883a mov r2,zero + 6868: f800283a ret + +0000686c <__fp_unlock_all>: + 686c: 00800074 movhi r2,1 + 6870: 10883e04 addi r2,r2,8440 + 6874: 11000017 ldw r4,0(r2) + 6878: 01400034 movhi r5,0 + 687c: 295a1904 addi r5,r5,26724 + 6880: 00073e81 jmpi 73e8 <_fwalk> + +00006884 <__fp_lock_all>: + 6884: 00800074 movhi r2,1 + 6888: 10883e04 addi r2,r2,8440 + 688c: 11000017 ldw r4,0(r2) + 6890: 01400034 movhi r5,0 + 6894: 295a1704 addi r5,r5,26716 + 6898: 00073e81 jmpi 73e8 <_fwalk> + +0000689c <_cleanup_r>: + 689c: 01400074 movhi r5,1 + 68a0: 29675704 addi r5,r5,-25252 + 68a4: 00073e81 jmpi 73e8 <_fwalk> + +000068a8 <_cleanup>: + 68a8: 00800074 movhi r2,1 + 68ac: 10883f04 addi r2,r2,8444 + 68b0: 11000017 ldw r4,0(r2) + 68b4: 000689c1 jmpi 689c <_cleanup_r> + +000068b8 <__sfmoreglue>: + 68b8: defffc04 addi sp,sp,-16 + 68bc: dc000015 stw r16,0(sp) + 68c0: 2821883a mov r16,r5 + 68c4: dc400115 stw r17,4(sp) + 68c8: 01401704 movi r5,92 + 68cc: 2023883a mov r17,r4 + 68d0: 8009883a mov r4,r16 + 68d4: dfc00315 stw ra,12(sp) + 68d8: dcc00215 stw r19,8(sp) + 68dc: 0002b2c0 call 2b2c <__mulsi3> + 68e0: 11400304 addi r5,r2,12 + 68e4: 8809883a mov r4,r17 + 68e8: 1027883a mov r19,r2 + 68ec: 00076f80 call 76f8 <_malloc_r> + 68f0: 10c00304 addi r3,r2,12 + 68f4: 1023883a mov r17,r2 + 68f8: 1809883a mov r4,r3 + 68fc: 980d883a mov r6,r19 + 6900: 000b883a mov r5,zero + 6904: 10000b26 beq r2,zero,6934 <__sfmoreglue+0x7c> + 6908: 14000115 stw r16,4(r2) + 690c: 10c00215 stw r3,8(r2) + 6910: 10000015 stw zero,0(r2) + 6914: 000809c0 call 809c + 6918: 8805883a mov r2,r17 + 691c: dfc00317 ldw ra,12(sp) + 6920: dcc00217 ldw r19,8(sp) + 6924: dc400117 ldw r17,4(sp) + 6928: dc000017 ldw r16,0(sp) + 692c: dec00404 addi sp,sp,16 + 6930: f800283a ret + 6934: 0023883a mov r17,zero + 6938: 8805883a mov r2,r17 + 693c: dfc00317 ldw ra,12(sp) + 6940: dcc00217 ldw r19,8(sp) + 6944: dc400117 ldw r17,4(sp) + 6948: dc000017 ldw r16,0(sp) + 694c: dec00404 addi sp,sp,16 + 6950: f800283a ret + +00006954 <__sfp>: + 6954: defffd04 addi sp,sp,-12 + 6958: 00800074 movhi r2,1 + 695c: 10883f04 addi r2,r2,8444 + 6960: dc000015 stw r16,0(sp) + 6964: 14000017 ldw r16,0(r2) + 6968: dc400115 stw r17,4(sp) + 696c: dfc00215 stw ra,8(sp) + 6970: 80800e17 ldw r2,56(r16) + 6974: 2023883a mov r17,r4 + 6978: 10002626 beq r2,zero,6a14 <__sfp+0xc0> + 697c: 8400b804 addi r16,r16,736 + 6980: 80800117 ldw r2,4(r16) + 6984: 81000217 ldw r4,8(r16) + 6988: 10ffffc4 addi r3,r2,-1 + 698c: 18000916 blt r3,zero,69b4 <__sfp+0x60> + 6990: 2080030f ldh r2,12(r4) + 6994: 10000b26 beq r2,zero,69c4 <__sfp+0x70> + 6998: 017fffc4 movi r5,-1 + 699c: 00000206 br 69a8 <__sfp+0x54> + 69a0: 2080030f ldh r2,12(r4) + 69a4: 10000726 beq r2,zero,69c4 <__sfp+0x70> + 69a8: 18ffffc4 addi r3,r3,-1 + 69ac: 21001704 addi r4,r4,92 + 69b0: 197ffb1e bne r3,r5,69a0 <__sfp+0x4c> + 69b4: 80800017 ldw r2,0(r16) + 69b8: 10001926 beq r2,zero,6a20 <__sfp+0xcc> + 69bc: 1021883a mov r16,r2 + 69c0: 003fef06 br 6980 <__sfp+0x2c> + 69c4: 00bfffc4 movi r2,-1 + 69c8: 00c00044 movi r3,1 + 69cc: 2080038d sth r2,14(r4) + 69d0: 20c0030d sth r3,12(r4) + 69d4: 20000015 stw zero,0(r4) + 69d8: 20000215 stw zero,8(r4) + 69dc: 20000115 stw zero,4(r4) + 69e0: 20000415 stw zero,16(r4) + 69e4: 20000515 stw zero,20(r4) + 69e8: 20000615 stw zero,24(r4) + 69ec: 20000c15 stw zero,48(r4) + 69f0: 20000d15 stw zero,52(r4) + 69f4: 20001115 stw zero,68(r4) + 69f8: 20001215 stw zero,72(r4) + 69fc: 2005883a mov r2,r4 + 6a00: dfc00217 ldw ra,8(sp) + 6a04: dc400117 ldw r17,4(sp) + 6a08: dc000017 ldw r16,0(sp) + 6a0c: dec00304 addi sp,sp,12 + 6a10: f800283a ret + 6a14: 8009883a mov r4,r16 + 6a18: 00067b80 call 67b8 <__sinit> + 6a1c: 003fd706 br 697c <__sfp+0x28> + 6a20: 8809883a mov r4,r17 + 6a24: 01400104 movi r5,4 + 6a28: 00068b80 call 68b8 <__sfmoreglue> + 6a2c: 80800015 stw r2,0(r16) + 6a30: 103fe21e bne r2,zero,69bc <__sfp+0x68> + 6a34: 00800304 movi r2,12 + 6a38: 0009883a mov r4,zero + 6a3c: 88800015 stw r2,0(r17) + 6a40: 003fee06 br 69fc <__sfp+0xa8> + +00006a44 <_malloc_trim_r>: + 6a44: defffb04 addi sp,sp,-20 + 6a48: dcc00315 stw r19,12(sp) + 6a4c: 04c00074 movhi r19,1 + 6a50: 9cc27004 addi r19,r19,2496 + 6a54: dc800215 stw r18,8(sp) + 6a58: dc400115 stw r17,4(sp) + 6a5c: dc000015 stw r16,0(sp) + 6a60: 2823883a mov r17,r5 + 6a64: 2025883a mov r18,r4 + 6a68: dfc00415 stw ra,16(sp) + 6a6c: 000ca880 call ca88 <__malloc_lock> + 6a70: 98800217 ldw r2,8(r19) + 6a74: 9009883a mov r4,r18 + 6a78: 000b883a mov r5,zero + 6a7c: 10c00117 ldw r3,4(r2) + 6a80: 00bfff04 movi r2,-4 + 6a84: 18a0703a and r16,r3,r2 + 6a88: 8463c83a sub r17,r16,r17 + 6a8c: 8c43fbc4 addi r17,r17,4079 + 6a90: 8822d33a srli r17,r17,12 + 6a94: 0083ffc4 movi r2,4095 + 6a98: 8c7fffc4 addi r17,r17,-1 + 6a9c: 8822933a slli r17,r17,12 + 6aa0: 1440060e bge r2,r17,6abc <_malloc_trim_r+0x78> + 6aa4: 00098240 call 9824 <_sbrk_r> + 6aa8: 98c00217 ldw r3,8(r19) + 6aac: 9009883a mov r4,r18 + 6ab0: 044bc83a sub r5,zero,r17 + 6ab4: 80c7883a add r3,r16,r3 + 6ab8: 10c00926 beq r2,r3,6ae0 <_malloc_trim_r+0x9c> + 6abc: 000caa80 call caa8 <__malloc_unlock> + 6ac0: 0005883a mov r2,zero + 6ac4: dfc00417 ldw ra,16(sp) + 6ac8: dcc00317 ldw r19,12(sp) + 6acc: dc800217 ldw r18,8(sp) + 6ad0: dc400117 ldw r17,4(sp) + 6ad4: dc000017 ldw r16,0(sp) + 6ad8: dec00504 addi sp,sp,20 + 6adc: f800283a ret + 6ae0: 9009883a mov r4,r18 + 6ae4: 00098240 call 9824 <_sbrk_r> + 6ae8: 844dc83a sub r6,r16,r17 + 6aec: 00ffffc4 movi r3,-1 + 6af0: 9009883a mov r4,r18 + 6af4: 000b883a mov r5,zero + 6af8: 01c00074 movhi r7,1 + 6afc: 39d08304 addi r7,r7,16908 + 6b00: 31800054 ori r6,r6,1 + 6b04: 10c00926 beq r2,r3,6b2c <_malloc_trim_r+0xe8> + 6b08: 38800017 ldw r2,0(r7) + 6b0c: 98c00217 ldw r3,8(r19) + 6b10: 9009883a mov r4,r18 + 6b14: 1445c83a sub r2,r2,r17 + 6b18: 38800015 stw r2,0(r7) + 6b1c: 19800115 stw r6,4(r3) + 6b20: 000caa80 call caa8 <__malloc_unlock> + 6b24: 00800044 movi r2,1 + 6b28: 003fe606 br 6ac4 <_malloc_trim_r+0x80> + 6b2c: 00098240 call 9824 <_sbrk_r> + 6b30: 99800217 ldw r6,8(r19) + 6b34: 100f883a mov r7,r2 + 6b38: 9009883a mov r4,r18 + 6b3c: 1187c83a sub r3,r2,r6 + 6b40: 008003c4 movi r2,15 + 6b44: 19400054 ori r5,r3,1 + 6b48: 10ffdc0e bge r2,r3,6abc <_malloc_trim_r+0x78> + 6b4c: 00800074 movhi r2,1 + 6b50: 10884304 addi r2,r2,8460 + 6b54: 10c00017 ldw r3,0(r2) + 6b58: 00800074 movhi r2,1 + 6b5c: 10908304 addi r2,r2,16908 + 6b60: 31400115 stw r5,4(r6) + 6b64: 38c7c83a sub r3,r7,r3 + 6b68: 10c00015 stw r3,0(r2) + 6b6c: 003fd306 br 6abc <_malloc_trim_r+0x78> + +00006b70 <_free_r>: + 6b70: defffd04 addi sp,sp,-12 + 6b74: dc400115 stw r17,4(sp) + 6b78: dc000015 stw r16,0(sp) + 6b7c: dfc00215 stw ra,8(sp) + 6b80: 2821883a mov r16,r5 + 6b84: 2023883a mov r17,r4 + 6b88: 28005a26 beq r5,zero,6cf4 <_free_r+0x184> + 6b8c: 000ca880 call ca88 <__malloc_lock> + 6b90: 823ffe04 addi r8,r16,-8 + 6b94: 41400117 ldw r5,4(r8) + 6b98: 00bfff84 movi r2,-2 + 6b9c: 02800074 movhi r10,1 + 6ba0: 52827004 addi r10,r10,2496 + 6ba4: 288e703a and r7,r5,r2 + 6ba8: 41cd883a add r6,r8,r7 + 6bac: 30c00117 ldw r3,4(r6) + 6bb0: 51000217 ldw r4,8(r10) + 6bb4: 00bfff04 movi r2,-4 + 6bb8: 1892703a and r9,r3,r2 + 6bbc: 5017883a mov r11,r10 + 6bc0: 31006726 beq r6,r4,6d60 <_free_r+0x1f0> + 6bc4: 2880004c andi r2,r5,1 + 6bc8: 1005003a cmpeq r2,r2,zero + 6bcc: 32400115 stw r9,4(r6) + 6bd0: 10001a1e bne r2,zero,6c3c <_free_r+0xcc> + 6bd4: 000b883a mov r5,zero + 6bd8: 3247883a add r3,r6,r9 + 6bdc: 18800117 ldw r2,4(r3) + 6be0: 1080004c andi r2,r2,1 + 6be4: 1000231e bne r2,zero,6c74 <_free_r+0x104> + 6be8: 280ac03a cmpne r5,r5,zero + 6bec: 3a4f883a add r7,r7,r9 + 6bf0: 2800451e bne r5,zero,6d08 <_free_r+0x198> + 6bf4: 31000217 ldw r4,8(r6) + 6bf8: 00800074 movhi r2,1 + 6bfc: 10827204 addi r2,r2,2504 + 6c00: 20807b26 beq r4,r2,6df0 <_free_r+0x280> + 6c04: 30800317 ldw r2,12(r6) + 6c08: 3a07883a add r3,r7,r8 + 6c0c: 19c00015 stw r7,0(r3) + 6c10: 11000215 stw r4,8(r2) + 6c14: 20800315 stw r2,12(r4) + 6c18: 38800054 ori r2,r7,1 + 6c1c: 40800115 stw r2,4(r8) + 6c20: 28001a26 beq r5,zero,6c8c <_free_r+0x11c> + 6c24: 8809883a mov r4,r17 + 6c28: dfc00217 ldw ra,8(sp) + 6c2c: dc400117 ldw r17,4(sp) + 6c30: dc000017 ldw r16,0(sp) + 6c34: dec00304 addi sp,sp,12 + 6c38: 000caa81 jmpi caa8 <__malloc_unlock> + 6c3c: 80bffe17 ldw r2,-8(r16) + 6c40: 50c00204 addi r3,r10,8 + 6c44: 4091c83a sub r8,r8,r2 + 6c48: 41000217 ldw r4,8(r8) + 6c4c: 388f883a add r7,r7,r2 + 6c50: 20c06126 beq r4,r3,6dd8 <_free_r+0x268> + 6c54: 40800317 ldw r2,12(r8) + 6c58: 3247883a add r3,r6,r9 + 6c5c: 000b883a mov r5,zero + 6c60: 11000215 stw r4,8(r2) + 6c64: 20800315 stw r2,12(r4) + 6c68: 18800117 ldw r2,4(r3) + 6c6c: 1080004c andi r2,r2,1 + 6c70: 103fdd26 beq r2,zero,6be8 <_free_r+0x78> + 6c74: 38800054 ori r2,r7,1 + 6c78: 3a07883a add r3,r7,r8 + 6c7c: 280ac03a cmpne r5,r5,zero + 6c80: 40800115 stw r2,4(r8) + 6c84: 19c00015 stw r7,0(r3) + 6c88: 283fe61e bne r5,zero,6c24 <_free_r+0xb4> + 6c8c: 00807fc4 movi r2,511 + 6c90: 11c01f2e bgeu r2,r7,6d10 <_free_r+0x1a0> + 6c94: 3806d27a srli r3,r7,9 + 6c98: 1800481e bne r3,zero,6dbc <_free_r+0x24c> + 6c9c: 3804d0fa srli r2,r7,3 + 6ca0: 100690fa slli r3,r2,3 + 6ca4: 1acd883a add r6,r3,r11 + 6ca8: 31400217 ldw r5,8(r6) + 6cac: 31405926 beq r6,r5,6e14 <_free_r+0x2a4> + 6cb0: 28800117 ldw r2,4(r5) + 6cb4: 00ffff04 movi r3,-4 + 6cb8: 10c4703a and r2,r2,r3 + 6cbc: 3880022e bgeu r7,r2,6cc8 <_free_r+0x158> + 6cc0: 29400217 ldw r5,8(r5) + 6cc4: 317ffa1e bne r6,r5,6cb0 <_free_r+0x140> + 6cc8: 29800317 ldw r6,12(r5) + 6ccc: 41800315 stw r6,12(r8) + 6cd0: 41400215 stw r5,8(r8) + 6cd4: 8809883a mov r4,r17 + 6cd8: 2a000315 stw r8,12(r5) + 6cdc: 32000215 stw r8,8(r6) + 6ce0: dfc00217 ldw ra,8(sp) + 6ce4: dc400117 ldw r17,4(sp) + 6ce8: dc000017 ldw r16,0(sp) + 6cec: dec00304 addi sp,sp,12 + 6cf0: 000caa81 jmpi caa8 <__malloc_unlock> + 6cf4: dfc00217 ldw ra,8(sp) + 6cf8: dc400117 ldw r17,4(sp) + 6cfc: dc000017 ldw r16,0(sp) + 6d00: dec00304 addi sp,sp,12 + 6d04: f800283a ret + 6d08: 31000217 ldw r4,8(r6) + 6d0c: 003fbd06 br 6c04 <_free_r+0x94> + 6d10: 3806d0fa srli r3,r7,3 + 6d14: 00800044 movi r2,1 + 6d18: 51400117 ldw r5,4(r10) + 6d1c: 180890fa slli r4,r3,3 + 6d20: 1807d0ba srai r3,r3,2 + 6d24: 22c9883a add r4,r4,r11 + 6d28: 21800217 ldw r6,8(r4) + 6d2c: 10c4983a sll r2,r2,r3 + 6d30: 41000315 stw r4,12(r8) + 6d34: 41800215 stw r6,8(r8) + 6d38: 288ab03a or r5,r5,r2 + 6d3c: 22000215 stw r8,8(r4) + 6d40: 8809883a mov r4,r17 + 6d44: 51400115 stw r5,4(r10) + 6d48: 32000315 stw r8,12(r6) + 6d4c: dfc00217 ldw ra,8(sp) + 6d50: dc400117 ldw r17,4(sp) + 6d54: dc000017 ldw r16,0(sp) + 6d58: dec00304 addi sp,sp,12 + 6d5c: 000caa81 jmpi caa8 <__malloc_unlock> + 6d60: 2880004c andi r2,r5,1 + 6d64: 3a4d883a add r6,r7,r9 + 6d68: 1000071e bne r2,zero,6d88 <_free_r+0x218> + 6d6c: 80bffe17 ldw r2,-8(r16) + 6d70: 4091c83a sub r8,r8,r2 + 6d74: 41000317 ldw r4,12(r8) + 6d78: 40c00217 ldw r3,8(r8) + 6d7c: 308d883a add r6,r6,r2 + 6d80: 20c00215 stw r3,8(r4) + 6d84: 19000315 stw r4,12(r3) + 6d88: 00800074 movhi r2,1 + 6d8c: 10884204 addi r2,r2,8456 + 6d90: 11000017 ldw r4,0(r2) + 6d94: 30c00054 ori r3,r6,1 + 6d98: 52000215 stw r8,8(r10) + 6d9c: 40c00115 stw r3,4(r8) + 6da0: 313fa036 bltu r6,r4,6c24 <_free_r+0xb4> + 6da4: 00800074 movhi r2,1 + 6da8: 108f3904 addi r2,r2,15588 + 6dac: 11400017 ldw r5,0(r2) + 6db0: 8809883a mov r4,r17 + 6db4: 0006a440 call 6a44 <_malloc_trim_r> + 6db8: 003f9a06 br 6c24 <_free_r+0xb4> + 6dbc: 00800104 movi r2,4 + 6dc0: 10c0072e bgeu r2,r3,6de0 <_free_r+0x270> + 6dc4: 00800504 movi r2,20 + 6dc8: 10c01936 bltu r2,r3,6e30 <_free_r+0x2c0> + 6dcc: 188016c4 addi r2,r3,91 + 6dd0: 100690fa slli r3,r2,3 + 6dd4: 003fb306 br 6ca4 <_free_r+0x134> + 6dd8: 01400044 movi r5,1 + 6ddc: 003f7e06 br 6bd8 <_free_r+0x68> + 6de0: 3804d1ba srli r2,r7,6 + 6de4: 10800e04 addi r2,r2,56 + 6de8: 100690fa slli r3,r2,3 + 6dec: 003fad06 br 6ca4 <_free_r+0x134> + 6df0: 22000315 stw r8,12(r4) + 6df4: 22000215 stw r8,8(r4) + 6df8: 3a05883a add r2,r7,r8 + 6dfc: 38c00054 ori r3,r7,1 + 6e00: 11c00015 stw r7,0(r2) + 6e04: 41000215 stw r4,8(r8) + 6e08: 40c00115 stw r3,4(r8) + 6e0c: 41000315 stw r4,12(r8) + 6e10: 003f8406 br 6c24 <_free_r+0xb4> + 6e14: 1005d0ba srai r2,r2,2 + 6e18: 00c00044 movi r3,1 + 6e1c: 51000117 ldw r4,4(r10) + 6e20: 1886983a sll r3,r3,r2 + 6e24: 20c8b03a or r4,r4,r3 + 6e28: 51000115 stw r4,4(r10) + 6e2c: 003fa706 br 6ccc <_free_r+0x15c> + 6e30: 00801504 movi r2,84 + 6e34: 10c00436 bltu r2,r3,6e48 <_free_r+0x2d8> + 6e38: 3804d33a srli r2,r7,12 + 6e3c: 10801b84 addi r2,r2,110 + 6e40: 100690fa slli r3,r2,3 + 6e44: 003f9706 br 6ca4 <_free_r+0x134> + 6e48: 00805504 movi r2,340 + 6e4c: 10c00436 bltu r2,r3,6e60 <_free_r+0x2f0> + 6e50: 3804d3fa srli r2,r7,15 + 6e54: 10801dc4 addi r2,r2,119 + 6e58: 100690fa slli r3,r2,3 + 6e5c: 003f9106 br 6ca4 <_free_r+0x134> + 6e60: 00815504 movi r2,1364 + 6e64: 10c0032e bgeu r2,r3,6e74 <_free_r+0x304> + 6e68: 00801f84 movi r2,126 + 6e6c: 00c0fc04 movi r3,1008 + 6e70: 003f8c06 br 6ca4 <_free_r+0x134> + 6e74: 3804d4ba srli r2,r7,18 + 6e78: 10801f04 addi r2,r2,124 + 6e7c: 100690fa slli r3,r2,3 + 6e80: 003f8806 br 6ca4 <_free_r+0x134> + +00006e84 <__sfvwrite_r>: + 6e84: 30800217 ldw r2,8(r6) + 6e88: defff504 addi sp,sp,-44 + 6e8c: df000915 stw fp,36(sp) + 6e90: dd800715 stw r22,28(sp) + 6e94: dc800315 stw r18,12(sp) + 6e98: dfc00a15 stw ra,40(sp) + 6e9c: ddc00815 stw r23,32(sp) + 6ea0: dd400615 stw r21,24(sp) + 6ea4: dd000515 stw r20,20(sp) + 6ea8: dcc00415 stw r19,16(sp) + 6eac: dc400215 stw r17,8(sp) + 6eb0: dc000115 stw r16,4(sp) + 6eb4: 302d883a mov r22,r6 + 6eb8: 2039883a mov fp,r4 + 6ebc: 2825883a mov r18,r5 + 6ec0: 10001c26 beq r2,zero,6f34 <__sfvwrite_r+0xb0> + 6ec4: 29c0030b ldhu r7,12(r5) + 6ec8: 3880020c andi r2,r7,8 + 6ecc: 10002726 beq r2,zero,6f6c <__sfvwrite_r+0xe8> + 6ed0: 28800417 ldw r2,16(r5) + 6ed4: 10002526 beq r2,zero,6f6c <__sfvwrite_r+0xe8> + 6ed8: 3880008c andi r2,r7,2 + 6edc: b5400017 ldw r21,0(r22) + 6ee0: 10002826 beq r2,zero,6f84 <__sfvwrite_r+0x100> + 6ee4: 0021883a mov r16,zero + 6ee8: 0023883a mov r17,zero + 6eec: 880d883a mov r6,r17 + 6ef0: e009883a mov r4,fp + 6ef4: 00810004 movi r2,1024 + 6ef8: 80006e26 beq r16,zero,70b4 <__sfvwrite_r+0x230> + 6efc: 800f883a mov r7,r16 + 6f00: 91400717 ldw r5,28(r18) + 6f04: 1400012e bgeu r2,r16,6f0c <__sfvwrite_r+0x88> + 6f08: 100f883a mov r7,r2 + 6f0c: 90c00917 ldw r3,36(r18) + 6f10: 183ee83a callr r3 + 6f14: 1007883a mov r3,r2 + 6f18: 80a1c83a sub r16,r16,r2 + 6f1c: 88a3883a add r17,r17,r2 + 6f20: 00806d0e bge zero,r2,70d8 <__sfvwrite_r+0x254> + 6f24: b0800217 ldw r2,8(r22) + 6f28: 10c5c83a sub r2,r2,r3 + 6f2c: b0800215 stw r2,8(r22) + 6f30: 103fee1e bne r2,zero,6eec <__sfvwrite_r+0x68> + 6f34: 0009883a mov r4,zero + 6f38: 2005883a mov r2,r4 + 6f3c: dfc00a17 ldw ra,40(sp) + 6f40: df000917 ldw fp,36(sp) + 6f44: ddc00817 ldw r23,32(sp) + 6f48: dd800717 ldw r22,28(sp) + 6f4c: dd400617 ldw r21,24(sp) + 6f50: dd000517 ldw r20,20(sp) + 6f54: dcc00417 ldw r19,16(sp) + 6f58: dc800317 ldw r18,12(sp) + 6f5c: dc400217 ldw r17,8(sp) + 6f60: dc000117 ldw r16,4(sp) + 6f64: dec00b04 addi sp,sp,44 + 6f68: f800283a ret + 6f6c: 0004bec0 call 4bec <__swsetup_r> + 6f70: 1000e41e bne r2,zero,7304 <__sfvwrite_r+0x480> + 6f74: 91c0030b ldhu r7,12(r18) + 6f78: b5400017 ldw r21,0(r22) + 6f7c: 3880008c andi r2,r7,2 + 6f80: 103fd81e bne r2,zero,6ee4 <__sfvwrite_r+0x60> + 6f84: 3880004c andi r2,r7,1 + 6f88: 1005003a cmpeq r2,r2,zero + 6f8c: 10005726 beq r2,zero,70ec <__sfvwrite_r+0x268> + 6f90: 0029883a mov r20,zero + 6f94: 002f883a mov r23,zero + 6f98: a0004226 beq r20,zero,70a4 <__sfvwrite_r+0x220> + 6f9c: 3880800c andi r2,r7,512 + 6fa0: 94000217 ldw r16,8(r18) + 6fa4: 10008b26 beq r2,zero,71d4 <__sfvwrite_r+0x350> + 6fa8: 800d883a mov r6,r16 + 6fac: a400a536 bltu r20,r16,7244 <__sfvwrite_r+0x3c0> + 6fb0: 3881200c andi r2,r7,1152 + 6fb4: 10002726 beq r2,zero,7054 <__sfvwrite_r+0x1d0> + 6fb8: 90800517 ldw r2,20(r18) + 6fbc: 92000417 ldw r8,16(r18) + 6fc0: 91400017 ldw r5,0(r18) + 6fc4: 1087883a add r3,r2,r2 + 6fc8: 1887883a add r3,r3,r2 + 6fcc: 1808d7fa srli r4,r3,31 + 6fd0: 2a21c83a sub r16,r5,r8 + 6fd4: 80800044 addi r2,r16,1 + 6fd8: 20c9883a add r4,r4,r3 + 6fdc: 2027d07a srai r19,r4,1 + 6fe0: a085883a add r2,r20,r2 + 6fe4: 980d883a mov r6,r19 + 6fe8: 9880022e bgeu r19,r2,6ff4 <__sfvwrite_r+0x170> + 6fec: 1027883a mov r19,r2 + 6ff0: 100d883a mov r6,r2 + 6ff4: 3881000c andi r2,r7,1024 + 6ff8: 1000b826 beq r2,zero,72dc <__sfvwrite_r+0x458> + 6ffc: 300b883a mov r5,r6 + 7000: e009883a mov r4,fp + 7004: 00076f80 call 76f8 <_malloc_r> + 7008: 10003126 beq r2,zero,70d0 <__sfvwrite_r+0x24c> + 700c: 91400417 ldw r5,16(r18) + 7010: 1009883a mov r4,r2 + 7014: 800d883a mov r6,r16 + 7018: 1023883a mov r17,r2 + 701c: 0007f1c0 call 7f1c + 7020: 90c0030b ldhu r3,12(r18) + 7024: 00beffc4 movi r2,-1025 + 7028: 1886703a and r3,r3,r2 + 702c: 18c02014 ori r3,r3,128 + 7030: 90c0030d sth r3,12(r18) + 7034: 9c07c83a sub r3,r19,r16 + 7038: 8c05883a add r2,r17,r16 + 703c: a00d883a mov r6,r20 + 7040: a021883a mov r16,r20 + 7044: 90800015 stw r2,0(r18) + 7048: 90c00215 stw r3,8(r18) + 704c: 94400415 stw r17,16(r18) + 7050: 94c00515 stw r19,20(r18) + 7054: 91000017 ldw r4,0(r18) + 7058: b80b883a mov r5,r23 + 705c: a023883a mov r17,r20 + 7060: 0007fbc0 call 7fbc + 7064: 90c00217 ldw r3,8(r18) + 7068: 90800017 ldw r2,0(r18) + 706c: a027883a mov r19,r20 + 7070: 1c07c83a sub r3,r3,r16 + 7074: 1405883a add r2,r2,r16 + 7078: 90c00215 stw r3,8(r18) + 707c: a021883a mov r16,r20 + 7080: 90800015 stw r2,0(r18) + 7084: b0800217 ldw r2,8(r22) + 7088: 1405c83a sub r2,r2,r16 + 708c: b0800215 stw r2,8(r22) + 7090: 103fa826 beq r2,zero,6f34 <__sfvwrite_r+0xb0> + 7094: a469c83a sub r20,r20,r17 + 7098: 91c0030b ldhu r7,12(r18) + 709c: bcef883a add r23,r23,r19 + 70a0: a03fbe1e bne r20,zero,6f9c <__sfvwrite_r+0x118> + 70a4: adc00017 ldw r23,0(r21) + 70a8: ad000117 ldw r20,4(r21) + 70ac: ad400204 addi r21,r21,8 + 70b0: 003fb906 br 6f98 <__sfvwrite_r+0x114> + 70b4: ac400017 ldw r17,0(r21) + 70b8: ac000117 ldw r16,4(r21) + 70bc: ad400204 addi r21,r21,8 + 70c0: 003f8a06 br 6eec <__sfvwrite_r+0x68> + 70c4: 91400417 ldw r5,16(r18) + 70c8: e009883a mov r4,fp + 70cc: 0006b700 call 6b70 <_free_r> + 70d0: 00800304 movi r2,12 + 70d4: e0800015 stw r2,0(fp) + 70d8: 9080030b ldhu r2,12(r18) + 70dc: 013fffc4 movi r4,-1 + 70e0: 10801014 ori r2,r2,64 + 70e4: 9080030d sth r2,12(r18) + 70e8: 003f9306 br 6f38 <__sfvwrite_r+0xb4> + 70ec: 0027883a mov r19,zero + 70f0: 002f883a mov r23,zero + 70f4: d8000015 stw zero,0(sp) + 70f8: 0029883a mov r20,zero + 70fc: 98001e26 beq r19,zero,7178 <__sfvwrite_r+0x2f4> + 7100: d8c00017 ldw r3,0(sp) + 7104: 1804c03a cmpne r2,r3,zero + 7108: 10005e26 beq r2,zero,7284 <__sfvwrite_r+0x400> + 710c: 9821883a mov r16,r19 + 7110: a4c0012e bgeu r20,r19,7118 <__sfvwrite_r+0x294> + 7114: a021883a mov r16,r20 + 7118: 91000017 ldw r4,0(r18) + 711c: 90800417 ldw r2,16(r18) + 7120: 91800217 ldw r6,8(r18) + 7124: 91c00517 ldw r7,20(r18) + 7128: 1100022e bgeu r2,r4,7134 <__sfvwrite_r+0x2b0> + 712c: 31e3883a add r17,r6,r7 + 7130: 8c001616 blt r17,r16,718c <__sfvwrite_r+0x308> + 7134: 81c03816 blt r16,r7,7218 <__sfvwrite_r+0x394> + 7138: 90c00917 ldw r3,36(r18) + 713c: 91400717 ldw r5,28(r18) + 7140: e009883a mov r4,fp + 7144: b80d883a mov r6,r23 + 7148: 183ee83a callr r3 + 714c: 1023883a mov r17,r2 + 7150: 00bfe10e bge zero,r2,70d8 <__sfvwrite_r+0x254> + 7154: a469c83a sub r20,r20,r17 + 7158: a0001826 beq r20,zero,71bc <__sfvwrite_r+0x338> + 715c: b0800217 ldw r2,8(r22) + 7160: 1445c83a sub r2,r2,r17 + 7164: b0800215 stw r2,8(r22) + 7168: 103f7226 beq r2,zero,6f34 <__sfvwrite_r+0xb0> + 716c: 9c67c83a sub r19,r19,r17 + 7170: bc6f883a add r23,r23,r17 + 7174: 983fe21e bne r19,zero,7100 <__sfvwrite_r+0x27c> + 7178: adc00017 ldw r23,0(r21) + 717c: acc00117 ldw r19,4(r21) + 7180: ad400204 addi r21,r21,8 + 7184: d8000015 stw zero,0(sp) + 7188: 003fdc06 br 70fc <__sfvwrite_r+0x278> + 718c: b80b883a mov r5,r23 + 7190: 880d883a mov r6,r17 + 7194: 0007fbc0 call 7fbc + 7198: 90c00017 ldw r3,0(r18) + 719c: e009883a mov r4,fp + 71a0: 900b883a mov r5,r18 + 71a4: 1c47883a add r3,r3,r17 + 71a8: 90c00015 stw r3,0(r18) + 71ac: 00065200 call 6520 <_fflush_r> + 71b0: 103fc91e bne r2,zero,70d8 <__sfvwrite_r+0x254> + 71b4: a469c83a sub r20,r20,r17 + 71b8: a03fe81e bne r20,zero,715c <__sfvwrite_r+0x2d8> + 71bc: e009883a mov r4,fp + 71c0: 900b883a mov r5,r18 + 71c4: 00065200 call 6520 <_fflush_r> + 71c8: 103fc31e bne r2,zero,70d8 <__sfvwrite_r+0x254> + 71cc: d8000015 stw zero,0(sp) + 71d0: 003fe206 br 715c <__sfvwrite_r+0x2d8> + 71d4: 91000017 ldw r4,0(r18) + 71d8: 90800417 ldw r2,16(r18) + 71dc: 1100022e bgeu r2,r4,71e8 <__sfvwrite_r+0x364> + 71e0: 8023883a mov r17,r16 + 71e4: 85003136 bltu r16,r20,72ac <__sfvwrite_r+0x428> + 71e8: 91c00517 ldw r7,20(r18) + 71ec: a1c01836 bltu r20,r7,7250 <__sfvwrite_r+0x3cc> + 71f0: 90c00917 ldw r3,36(r18) + 71f4: 91400717 ldw r5,28(r18) + 71f8: e009883a mov r4,fp + 71fc: b80d883a mov r6,r23 + 7200: 183ee83a callr r3 + 7204: 1021883a mov r16,r2 + 7208: 00bfb30e bge zero,r2,70d8 <__sfvwrite_r+0x254> + 720c: 1023883a mov r17,r2 + 7210: 1027883a mov r19,r2 + 7214: 003f9b06 br 7084 <__sfvwrite_r+0x200> + 7218: b80b883a mov r5,r23 + 721c: 800d883a mov r6,r16 + 7220: 0007fbc0 call 7fbc + 7224: 90c00217 ldw r3,8(r18) + 7228: 90800017 ldw r2,0(r18) + 722c: 8023883a mov r17,r16 + 7230: 1c07c83a sub r3,r3,r16 + 7234: 1405883a add r2,r2,r16 + 7238: 90c00215 stw r3,8(r18) + 723c: 90800015 stw r2,0(r18) + 7240: 003fc406 br 7154 <__sfvwrite_r+0x2d0> + 7244: a00d883a mov r6,r20 + 7248: a021883a mov r16,r20 + 724c: 003f8106 br 7054 <__sfvwrite_r+0x1d0> + 7250: b80b883a mov r5,r23 + 7254: a00d883a mov r6,r20 + 7258: 0007fbc0 call 7fbc + 725c: 90c00217 ldw r3,8(r18) + 7260: 90800017 ldw r2,0(r18) + 7264: a021883a mov r16,r20 + 7268: 1d07c83a sub r3,r3,r20 + 726c: 1505883a add r2,r2,r20 + 7270: a023883a mov r17,r20 + 7274: a027883a mov r19,r20 + 7278: 90c00215 stw r3,8(r18) + 727c: 90800015 stw r2,0(r18) + 7280: 003f8006 br 7084 <__sfvwrite_r+0x200> + 7284: b809883a mov r4,r23 + 7288: 01400284 movi r5,10 + 728c: 980d883a mov r6,r19 + 7290: 0007e380 call 7e38 + 7294: 10001726 beq r2,zero,72f4 <__sfvwrite_r+0x470> + 7298: 15c5c83a sub r2,r2,r23 + 729c: 15000044 addi r20,r2,1 + 72a0: 00800044 movi r2,1 + 72a4: d8800015 stw r2,0(sp) + 72a8: 003f9806 br 710c <__sfvwrite_r+0x288> + 72ac: b80b883a mov r5,r23 + 72b0: 800d883a mov r6,r16 + 72b4: 0007fbc0 call 7fbc + 72b8: 90c00017 ldw r3,0(r18) + 72bc: e009883a mov r4,fp + 72c0: 900b883a mov r5,r18 + 72c4: 1c07883a add r3,r3,r16 + 72c8: 90c00015 stw r3,0(r18) + 72cc: 8027883a mov r19,r16 + 72d0: 00065200 call 6520 <_fflush_r> + 72d4: 103f6b26 beq r2,zero,7084 <__sfvwrite_r+0x200> + 72d8: 003f7f06 br 70d8 <__sfvwrite_r+0x254> + 72dc: 400b883a mov r5,r8 + 72e0: e009883a mov r4,fp + 72e4: 00091c00 call 91c0 <_realloc_r> + 72e8: 103f7626 beq r2,zero,70c4 <__sfvwrite_r+0x240> + 72ec: 1023883a mov r17,r2 + 72f0: 003f5006 br 7034 <__sfvwrite_r+0x1b0> + 72f4: 00c00044 movi r3,1 + 72f8: 9d000044 addi r20,r19,1 + 72fc: d8c00015 stw r3,0(sp) + 7300: 003f8206 br 710c <__sfvwrite_r+0x288> + 7304: 9080030b ldhu r2,12(r18) + 7308: 00c00244 movi r3,9 + 730c: 013fffc4 movi r4,-1 + 7310: 10801014 ori r2,r2,64 + 7314: 9080030d sth r2,12(r18) + 7318: e0c00015 stw r3,0(fp) + 731c: 003f0606 br 6f38 <__sfvwrite_r+0xb4> + +00007320 <_fwalk_reent>: + 7320: defff704 addi sp,sp,-36 + 7324: dcc00315 stw r19,12(sp) + 7328: 24c0b804 addi r19,r4,736 + 732c: dd800615 stw r22,24(sp) + 7330: dd400515 stw r21,20(sp) + 7334: dfc00815 stw ra,32(sp) + 7338: ddc00715 stw r23,28(sp) + 733c: dd000415 stw r20,16(sp) + 7340: dc800215 stw r18,8(sp) + 7344: dc400115 stw r17,4(sp) + 7348: dc000015 stw r16,0(sp) + 734c: 202b883a mov r21,r4 + 7350: 282d883a mov r22,r5 + 7354: 00067a80 call 67a8 <__sfp_lock_acquire> + 7358: 98002126 beq r19,zero,73e0 <_fwalk_reent+0xc0> + 735c: 002f883a mov r23,zero + 7360: 9c800117 ldw r18,4(r19) + 7364: 9c000217 ldw r16,8(r19) + 7368: 90bfffc4 addi r2,r18,-1 + 736c: 10000d16 blt r2,zero,73a4 <_fwalk_reent+0x84> + 7370: 0023883a mov r17,zero + 7374: 053fffc4 movi r20,-1 + 7378: 8080030f ldh r2,12(r16) + 737c: 8c400044 addi r17,r17,1 + 7380: 10000626 beq r2,zero,739c <_fwalk_reent+0x7c> + 7384: 8080038f ldh r2,14(r16) + 7388: 800b883a mov r5,r16 + 738c: a809883a mov r4,r21 + 7390: 15000226 beq r2,r20,739c <_fwalk_reent+0x7c> + 7394: b03ee83a callr r22 + 7398: b8aeb03a or r23,r23,r2 + 739c: 84001704 addi r16,r16,92 + 73a0: 947ff51e bne r18,r17,7378 <_fwalk_reent+0x58> + 73a4: 9cc00017 ldw r19,0(r19) + 73a8: 983fed1e bne r19,zero,7360 <_fwalk_reent+0x40> + 73ac: 00067ac0 call 67ac <__sfp_lock_release> + 73b0: b805883a mov r2,r23 + 73b4: dfc00817 ldw ra,32(sp) + 73b8: ddc00717 ldw r23,28(sp) + 73bc: dd800617 ldw r22,24(sp) + 73c0: dd400517 ldw r21,20(sp) + 73c4: dd000417 ldw r20,16(sp) + 73c8: dcc00317 ldw r19,12(sp) + 73cc: dc800217 ldw r18,8(sp) + 73d0: dc400117 ldw r17,4(sp) + 73d4: dc000017 ldw r16,0(sp) + 73d8: dec00904 addi sp,sp,36 + 73dc: f800283a ret + 73e0: 002f883a mov r23,zero + 73e4: 003ff106 br 73ac <_fwalk_reent+0x8c> + +000073e8 <_fwalk>: + 73e8: defff804 addi sp,sp,-32 + 73ec: dcc00315 stw r19,12(sp) + 73f0: 24c0b804 addi r19,r4,736 + 73f4: dd400515 stw r21,20(sp) + 73f8: dfc00715 stw ra,28(sp) + 73fc: dd800615 stw r22,24(sp) + 7400: dd000415 stw r20,16(sp) + 7404: dc800215 stw r18,8(sp) + 7408: dc400115 stw r17,4(sp) + 740c: dc000015 stw r16,0(sp) + 7410: 282b883a mov r21,r5 + 7414: 00067a80 call 67a8 <__sfp_lock_acquire> + 7418: 98001f26 beq r19,zero,7498 <_fwalk+0xb0> + 741c: 002d883a mov r22,zero + 7420: 9c800117 ldw r18,4(r19) + 7424: 9c000217 ldw r16,8(r19) + 7428: 90bfffc4 addi r2,r18,-1 + 742c: 10000c16 blt r2,zero,7460 <_fwalk+0x78> + 7430: 0023883a mov r17,zero + 7434: 053fffc4 movi r20,-1 + 7438: 8080030f ldh r2,12(r16) + 743c: 8c400044 addi r17,r17,1 + 7440: 10000526 beq r2,zero,7458 <_fwalk+0x70> + 7444: 8080038f ldh r2,14(r16) + 7448: 8009883a mov r4,r16 + 744c: 15000226 beq r2,r20,7458 <_fwalk+0x70> + 7450: a83ee83a callr r21 + 7454: b0acb03a or r22,r22,r2 + 7458: 84001704 addi r16,r16,92 + 745c: 947ff61e bne r18,r17,7438 <_fwalk+0x50> + 7460: 9cc00017 ldw r19,0(r19) + 7464: 983fee1e bne r19,zero,7420 <_fwalk+0x38> + 7468: 00067ac0 call 67ac <__sfp_lock_release> + 746c: b005883a mov r2,r22 + 7470: dfc00717 ldw ra,28(sp) + 7474: dd800617 ldw r22,24(sp) + 7478: dd400517 ldw r21,20(sp) + 747c: dd000417 ldw r20,16(sp) + 7480: dcc00317 ldw r19,12(sp) + 7484: dc800217 ldw r18,8(sp) + 7488: dc400117 ldw r17,4(sp) + 748c: dc000017 ldw r16,0(sp) + 7490: dec00804 addi sp,sp,32 + 7494: f800283a ret + 7498: 002d883a mov r22,zero + 749c: 003ff206 br 7468 <_fwalk+0x80> + +000074a0 <__locale_charset>: + 74a0: d0a00517 ldw r2,-32748(gp) + 74a4: f800283a ret + +000074a8 <_localeconv_r>: + 74a8: 00800074 movhi r2,1 + 74ac: 1080c304 addi r2,r2,780 + 74b0: f800283a ret + +000074b4 : + 74b4: 00800074 movhi r2,1 + 74b8: 10883e04 addi r2,r2,8440 + 74bc: 11000017 ldw r4,0(r2) + 74c0: 00074a81 jmpi 74a8 <_localeconv_r> + +000074c4 <_setlocale_r>: + 74c4: defffc04 addi sp,sp,-16 + 74c8: 00c00074 movhi r3,1 + 74cc: 18c0be04 addi r3,r3,760 + 74d0: dc800215 stw r18,8(sp) + 74d4: dc400115 stw r17,4(sp) + 74d8: dc000015 stw r16,0(sp) + 74dc: 2023883a mov r17,r4 + 74e0: 2825883a mov r18,r5 + 74e4: dfc00315 stw ra,12(sp) + 74e8: 3021883a mov r16,r6 + 74ec: 3009883a mov r4,r6 + 74f0: 180b883a mov r5,r3 + 74f4: 30000926 beq r6,zero,751c <_setlocale_r+0x58> + 74f8: 00099e00 call 99e0 + 74fc: 8009883a mov r4,r16 + 7500: 01400074 movhi r5,1 + 7504: 2940a904 addi r5,r5,676 + 7508: 10000b1e bne r2,zero,7538 <_setlocale_r+0x74> + 750c: 8c000d15 stw r16,52(r17) + 7510: 8c800c15 stw r18,48(r17) + 7514: 00c00074 movhi r3,1 + 7518: 18c0be04 addi r3,r3,760 + 751c: 1805883a mov r2,r3 + 7520: dfc00317 ldw ra,12(sp) + 7524: dc800217 ldw r18,8(sp) + 7528: dc400117 ldw r17,4(sp) + 752c: dc000017 ldw r16,0(sp) + 7530: dec00404 addi sp,sp,16 + 7534: f800283a ret + 7538: 00099e00 call 99e0 + 753c: 0007883a mov r3,zero + 7540: 103ff226 beq r2,zero,750c <_setlocale_r+0x48> + 7544: 003ff506 br 751c <_setlocale_r+0x58> + +00007548 : + 7548: 01800074 movhi r6,1 + 754c: 31883e04 addi r6,r6,8440 + 7550: 2007883a mov r3,r4 + 7554: 31000017 ldw r4,0(r6) + 7558: 280d883a mov r6,r5 + 755c: 180b883a mov r5,r3 + 7560: 00074c41 jmpi 74c4 <_setlocale_r> + +00007564 <__smakebuf_r>: + 7564: 2880030b ldhu r2,12(r5) + 7568: deffed04 addi sp,sp,-76 + 756c: dc401015 stw r17,64(sp) + 7570: 1080008c andi r2,r2,2 + 7574: dc000f15 stw r16,60(sp) + 7578: dfc01215 stw ra,72(sp) + 757c: dc801115 stw r18,68(sp) + 7580: 2821883a mov r16,r5 + 7584: 2023883a mov r17,r4 + 7588: 10000b26 beq r2,zero,75b8 <__smakebuf_r+0x54> + 758c: 28c010c4 addi r3,r5,67 + 7590: 00800044 movi r2,1 + 7594: 28800515 stw r2,20(r5) + 7598: 28c00415 stw r3,16(r5) + 759c: 28c00015 stw r3,0(r5) + 75a0: dfc01217 ldw ra,72(sp) + 75a4: dc801117 ldw r18,68(sp) + 75a8: dc401017 ldw r17,64(sp) + 75ac: dc000f17 ldw r16,60(sp) + 75b0: dec01304 addi sp,sp,76 + 75b4: f800283a ret + 75b8: 2940038f ldh r5,14(r5) + 75bc: 28002116 blt r5,zero,7644 <__smakebuf_r+0xe0> + 75c0: d80d883a mov r6,sp + 75c4: 0009d700 call 9d70 <_fstat_r> + 75c8: 10001e16 blt r2,zero,7644 <__smakebuf_r+0xe0> + 75cc: d8800117 ldw r2,4(sp) + 75d0: 00e00014 movui r3,32768 + 75d4: 113c000c andi r4,r2,61440 + 75d8: 20c03126 beq r4,r3,76a0 <__smakebuf_r+0x13c> + 75dc: 8080030b ldhu r2,12(r16) + 75e0: 00c80004 movi r3,8192 + 75e4: 10820014 ori r2,r2,2048 + 75e8: 8080030d sth r2,12(r16) + 75ec: 20c01e26 beq r4,r3,7668 <__smakebuf_r+0x104> + 75f0: 04810004 movi r18,1024 + 75f4: 8809883a mov r4,r17 + 75f8: 900b883a mov r5,r18 + 75fc: 00076f80 call 76f8 <_malloc_r> + 7600: 1009883a mov r4,r2 + 7604: 10003126 beq r2,zero,76cc <__smakebuf_r+0x168> + 7608: 80c0030b ldhu r3,12(r16) + 760c: 00800034 movhi r2,0 + 7610: 109a2704 addi r2,r2,26780 + 7614: 88800f15 stw r2,60(r17) + 7618: 18c02014 ori r3,r3,128 + 761c: 84800515 stw r18,20(r16) + 7620: 80c0030d sth r3,12(r16) + 7624: 81000415 stw r4,16(r16) + 7628: 81000015 stw r4,0(r16) + 762c: dfc01217 ldw ra,72(sp) + 7630: dc801117 ldw r18,68(sp) + 7634: dc401017 ldw r17,64(sp) + 7638: dc000f17 ldw r16,60(sp) + 763c: dec01304 addi sp,sp,76 + 7640: f800283a ret + 7644: 80c0030b ldhu r3,12(r16) + 7648: 1880200c andi r2,r3,128 + 764c: 10000426 beq r2,zero,7660 <__smakebuf_r+0xfc> + 7650: 04801004 movi r18,64 + 7654: 18820014 ori r2,r3,2048 + 7658: 8080030d sth r2,12(r16) + 765c: 003fe506 br 75f4 <__smakebuf_r+0x90> + 7660: 04810004 movi r18,1024 + 7664: 003ffb06 br 7654 <__smakebuf_r+0xf0> + 7668: 8140038f ldh r5,14(r16) + 766c: 8809883a mov r4,r17 + 7670: 0009de40 call 9de4 <_isatty_r> + 7674: 103fde26 beq r2,zero,75f0 <__smakebuf_r+0x8c> + 7678: 8080030b ldhu r2,12(r16) + 767c: 80c010c4 addi r3,r16,67 + 7680: 04810004 movi r18,1024 + 7684: 10800054 ori r2,r2,1 + 7688: 8080030d sth r2,12(r16) + 768c: 00800044 movi r2,1 + 7690: 80c00415 stw r3,16(r16) + 7694: 80800515 stw r2,20(r16) + 7698: 80c00015 stw r3,0(r16) + 769c: 003fd506 br 75f4 <__smakebuf_r+0x90> + 76a0: 80c00a17 ldw r3,40(r16) + 76a4: 00800074 movhi r2,1 + 76a8: 10a62704 addi r2,r2,-26468 + 76ac: 18bfcb1e bne r3,r2,75dc <__smakebuf_r+0x78> + 76b0: 8080030b ldhu r2,12(r16) + 76b4: 00c10004 movi r3,1024 + 76b8: 1825883a mov r18,r3 + 76bc: 10c4b03a or r2,r2,r3 + 76c0: 8080030d sth r2,12(r16) + 76c4: 80c01315 stw r3,76(r16) + 76c8: 003fca06 br 75f4 <__smakebuf_r+0x90> + 76cc: 8100030b ldhu r4,12(r16) + 76d0: 2080800c andi r2,r4,512 + 76d4: 103fb21e bne r2,zero,75a0 <__smakebuf_r+0x3c> + 76d8: 80c010c4 addi r3,r16,67 + 76dc: 21000094 ori r4,r4,2 + 76e0: 00800044 movi r2,1 + 76e4: 80800515 stw r2,20(r16) + 76e8: 8100030d sth r4,12(r16) + 76ec: 80c00415 stw r3,16(r16) + 76f0: 80c00015 stw r3,0(r16) + 76f4: 003faa06 br 75a0 <__smakebuf_r+0x3c> + +000076f8 <_malloc_r>: + 76f8: defff604 addi sp,sp,-40 + 76fc: 28c002c4 addi r3,r5,11 + 7700: 00800584 movi r2,22 + 7704: dc800215 stw r18,8(sp) + 7708: dfc00915 stw ra,36(sp) + 770c: df000815 stw fp,32(sp) + 7710: ddc00715 stw r23,28(sp) + 7714: dd800615 stw r22,24(sp) + 7718: dd400515 stw r21,20(sp) + 771c: dd000415 stw r20,16(sp) + 7720: dcc00315 stw r19,12(sp) + 7724: dc400115 stw r17,4(sp) + 7728: dc000015 stw r16,0(sp) + 772c: 2025883a mov r18,r4 + 7730: 10c01236 bltu r2,r3,777c <_malloc_r+0x84> + 7734: 04400404 movi r17,16 + 7738: 8940142e bgeu r17,r5,778c <_malloc_r+0x94> + 773c: 00800304 movi r2,12 + 7740: 0007883a mov r3,zero + 7744: 90800015 stw r2,0(r18) + 7748: 1805883a mov r2,r3 + 774c: dfc00917 ldw ra,36(sp) + 7750: df000817 ldw fp,32(sp) + 7754: ddc00717 ldw r23,28(sp) + 7758: dd800617 ldw r22,24(sp) + 775c: dd400517 ldw r21,20(sp) + 7760: dd000417 ldw r20,16(sp) + 7764: dcc00317 ldw r19,12(sp) + 7768: dc800217 ldw r18,8(sp) + 776c: dc400117 ldw r17,4(sp) + 7770: dc000017 ldw r16,0(sp) + 7774: dec00a04 addi sp,sp,40 + 7778: f800283a ret + 777c: 00bffe04 movi r2,-8 + 7780: 18a2703a and r17,r3,r2 + 7784: 883fed16 blt r17,zero,773c <_malloc_r+0x44> + 7788: 897fec36 bltu r17,r5,773c <_malloc_r+0x44> + 778c: 9009883a mov r4,r18 + 7790: 000ca880 call ca88 <__malloc_lock> + 7794: 00807dc4 movi r2,503 + 7798: 14402b2e bgeu r2,r17,7848 <_malloc_r+0x150> + 779c: 8806d27a srli r3,r17,9 + 77a0: 18003f1e bne r3,zero,78a0 <_malloc_r+0x1a8> + 77a4: 880cd0fa srli r6,r17,3 + 77a8: 300490fa slli r2,r6,3 + 77ac: 02c00074 movhi r11,1 + 77b0: 5ac27004 addi r11,r11,2496 + 77b4: 12cb883a add r5,r2,r11 + 77b8: 2c000317 ldw r16,12(r5) + 77bc: 580f883a mov r7,r11 + 77c0: 2c00041e bne r5,r16,77d4 <_malloc_r+0xdc> + 77c4: 00000a06 br 77f0 <_malloc_r+0xf8> + 77c8: 1800860e bge r3,zero,79e4 <_malloc_r+0x2ec> + 77cc: 84000317 ldw r16,12(r16) + 77d0: 2c000726 beq r5,r16,77f0 <_malloc_r+0xf8> + 77d4: 80800117 ldw r2,4(r16) + 77d8: 00ffff04 movi r3,-4 + 77dc: 10c8703a and r4,r2,r3 + 77e0: 2447c83a sub r3,r4,r17 + 77e4: 008003c4 movi r2,15 + 77e8: 10fff70e bge r2,r3,77c8 <_malloc_r+0xd0> + 77ec: 31bfffc4 addi r6,r6,-1 + 77f0: 32400044 addi r9,r6,1 + 77f4: 02800074 movhi r10,1 + 77f8: 52827204 addi r10,r10,2504 + 77fc: 54000217 ldw r16,8(r10) + 7800: 8280a026 beq r16,r10,7a84 <_malloc_r+0x38c> + 7804: 80800117 ldw r2,4(r16) + 7808: 00ffff04 movi r3,-4 + 780c: 10ca703a and r5,r2,r3 + 7810: 2c4dc83a sub r6,r5,r17 + 7814: 008003c4 movi r2,15 + 7818: 11808316 blt r2,r6,7a28 <_malloc_r+0x330> + 781c: 52800315 stw r10,12(r10) + 7820: 52800215 stw r10,8(r10) + 7824: 30002916 blt r6,zero,78cc <_malloc_r+0x1d4> + 7828: 8147883a add r3,r16,r5 + 782c: 18800117 ldw r2,4(r3) + 7830: 9009883a mov r4,r18 + 7834: 10800054 ori r2,r2,1 + 7838: 18800115 stw r2,4(r3) + 783c: 000caa80 call caa8 <__malloc_unlock> + 7840: 80c00204 addi r3,r16,8 + 7844: 003fc006 br 7748 <_malloc_r+0x50> + 7848: 02c00074 movhi r11,1 + 784c: 5ac27004 addi r11,r11,2496 + 7850: 8ac5883a add r2,r17,r11 + 7854: 14000317 ldw r16,12(r2) + 7858: 580f883a mov r7,r11 + 785c: 8806d0fa srli r3,r17,3 + 7860: 14006c26 beq r2,r16,7a14 <_malloc_r+0x31c> + 7864: 80c00117 ldw r3,4(r16) + 7868: 00bfff04 movi r2,-4 + 786c: 81800317 ldw r6,12(r16) + 7870: 1886703a and r3,r3,r2 + 7874: 80c7883a add r3,r16,r3 + 7878: 18800117 ldw r2,4(r3) + 787c: 81400217 ldw r5,8(r16) + 7880: 9009883a mov r4,r18 + 7884: 10800054 ori r2,r2,1 + 7888: 18800115 stw r2,4(r3) + 788c: 31400215 stw r5,8(r6) + 7890: 29800315 stw r6,12(r5) + 7894: 000caa80 call caa8 <__malloc_unlock> + 7898: 80c00204 addi r3,r16,8 + 789c: 003faa06 br 7748 <_malloc_r+0x50> + 78a0: 00800104 movi r2,4 + 78a4: 10c0052e bgeu r2,r3,78bc <_malloc_r+0x1c4> + 78a8: 00800504 movi r2,20 + 78ac: 10c07836 bltu r2,r3,7a90 <_malloc_r+0x398> + 78b0: 198016c4 addi r6,r3,91 + 78b4: 300490fa slli r2,r6,3 + 78b8: 003fbc06 br 77ac <_malloc_r+0xb4> + 78bc: 8804d1ba srli r2,r17,6 + 78c0: 11800e04 addi r6,r2,56 + 78c4: 300490fa slli r2,r6,3 + 78c8: 003fb806 br 77ac <_malloc_r+0xb4> + 78cc: 00807fc4 movi r2,511 + 78d0: 1140bb36 bltu r2,r5,7bc0 <_malloc_r+0x4c8> + 78d4: 2806d0fa srli r3,r5,3 + 78d8: 573ffe04 addi fp,r10,-8 + 78dc: 00800044 movi r2,1 + 78e0: 180890fa slli r4,r3,3 + 78e4: 1807d0ba srai r3,r3,2 + 78e8: e1c00117 ldw r7,4(fp) + 78ec: 5909883a add r4,r11,r4 + 78f0: 21400217 ldw r5,8(r4) + 78f4: 10c4983a sll r2,r2,r3 + 78f8: 81000315 stw r4,12(r16) + 78fc: 81400215 stw r5,8(r16) + 7900: 388eb03a or r7,r7,r2 + 7904: 2c000315 stw r16,12(r5) + 7908: 24000215 stw r16,8(r4) + 790c: e1c00115 stw r7,4(fp) + 7910: 4807883a mov r3,r9 + 7914: 4800cd16 blt r9,zero,7c4c <_malloc_r+0x554> + 7918: 1807d0ba srai r3,r3,2 + 791c: 00800044 movi r2,1 + 7920: 10c8983a sll r4,r2,r3 + 7924: 39004436 bltu r7,r4,7a38 <_malloc_r+0x340> + 7928: 21c4703a and r2,r4,r7 + 792c: 10000a1e bne r2,zero,7958 <_malloc_r+0x260> + 7930: 2109883a add r4,r4,r4 + 7934: 00bfff04 movi r2,-4 + 7938: 4884703a and r2,r9,r2 + 793c: 3906703a and r3,r7,r4 + 7940: 12400104 addi r9,r2,4 + 7944: 1800041e bne r3,zero,7958 <_malloc_r+0x260> + 7948: 2109883a add r4,r4,r4 + 794c: 3904703a and r2,r7,r4 + 7950: 4a400104 addi r9,r9,4 + 7954: 103ffc26 beq r2,zero,7948 <_malloc_r+0x250> + 7958: 480490fa slli r2,r9,3 + 795c: 4819883a mov r12,r9 + 7960: 023fff04 movi r8,-4 + 7964: 589b883a add r13,r11,r2 + 7968: 6807883a mov r3,r13 + 796c: 014003c4 movi r5,15 + 7970: 1c000317 ldw r16,12(r3) + 7974: 1c00041e bne r3,r16,7988 <_malloc_r+0x290> + 7978: 0000a706 br 7c18 <_malloc_r+0x520> + 797c: 3000ab0e bge r6,zero,7c2c <_malloc_r+0x534> + 7980: 84000317 ldw r16,12(r16) + 7984: 1c00a426 beq r3,r16,7c18 <_malloc_r+0x520> + 7988: 80800117 ldw r2,4(r16) + 798c: 1204703a and r2,r2,r8 + 7990: 144dc83a sub r6,r2,r17 + 7994: 29bff90e bge r5,r6,797c <_malloc_r+0x284> + 7998: 81000317 ldw r4,12(r16) + 799c: 80c00217 ldw r3,8(r16) + 79a0: 89400054 ori r5,r17,1 + 79a4: 8445883a add r2,r16,r17 + 79a8: 20c00215 stw r3,8(r4) + 79ac: 19000315 stw r4,12(r3) + 79b0: 81400115 stw r5,4(r16) + 79b4: 1187883a add r3,r2,r6 + 79b8: 31000054 ori r4,r6,1 + 79bc: 50800315 stw r2,12(r10) + 79c0: 50800215 stw r2,8(r10) + 79c4: 19800015 stw r6,0(r3) + 79c8: 11000115 stw r4,4(r2) + 79cc: 12800215 stw r10,8(r2) + 79d0: 12800315 stw r10,12(r2) + 79d4: 9009883a mov r4,r18 + 79d8: 000caa80 call caa8 <__malloc_unlock> + 79dc: 80c00204 addi r3,r16,8 + 79e0: 003f5906 br 7748 <_malloc_r+0x50> + 79e4: 8109883a add r4,r16,r4 + 79e8: 20800117 ldw r2,4(r4) + 79ec: 80c00217 ldw r3,8(r16) + 79f0: 81400317 ldw r5,12(r16) + 79f4: 10800054 ori r2,r2,1 + 79f8: 20800115 stw r2,4(r4) + 79fc: 28c00215 stw r3,8(r5) + 7a00: 19400315 stw r5,12(r3) + 7a04: 9009883a mov r4,r18 + 7a08: 000caa80 call caa8 <__malloc_unlock> + 7a0c: 80c00204 addi r3,r16,8 + 7a10: 003f4d06 br 7748 <_malloc_r+0x50> + 7a14: 80800204 addi r2,r16,8 + 7a18: 14000317 ldw r16,12(r2) + 7a1c: 143f911e bne r2,r16,7864 <_malloc_r+0x16c> + 7a20: 1a400084 addi r9,r3,2 + 7a24: 003f7306 br 77f4 <_malloc_r+0xfc> + 7a28: 88c00054 ori r3,r17,1 + 7a2c: 8445883a add r2,r16,r17 + 7a30: 80c00115 stw r3,4(r16) + 7a34: 003fdf06 br 79b4 <_malloc_r+0x2bc> + 7a38: e4000217 ldw r16,8(fp) + 7a3c: 00bfff04 movi r2,-4 + 7a40: 80c00117 ldw r3,4(r16) + 7a44: 802d883a mov r22,r16 + 7a48: 18aa703a and r21,r3,r2 + 7a4c: ac401636 bltu r21,r17,7aa8 <_malloc_r+0x3b0> + 7a50: ac49c83a sub r4,r21,r17 + 7a54: 008003c4 movi r2,15 + 7a58: 1100130e bge r2,r4,7aa8 <_malloc_r+0x3b0> + 7a5c: 88800054 ori r2,r17,1 + 7a60: 8447883a add r3,r16,r17 + 7a64: 80800115 stw r2,4(r16) + 7a68: 20800054 ori r2,r4,1 + 7a6c: 18800115 stw r2,4(r3) + 7a70: e0c00215 stw r3,8(fp) + 7a74: 9009883a mov r4,r18 + 7a78: 000caa80 call caa8 <__malloc_unlock> + 7a7c: 80c00204 addi r3,r16,8 + 7a80: 003f3106 br 7748 <_malloc_r+0x50> + 7a84: 39c00117 ldw r7,4(r7) + 7a88: 573ffe04 addi fp,r10,-8 + 7a8c: 003fa006 br 7910 <_malloc_r+0x218> + 7a90: 00801504 movi r2,84 + 7a94: 10c06736 bltu r2,r3,7c34 <_malloc_r+0x53c> + 7a98: 8804d33a srli r2,r17,12 + 7a9c: 11801b84 addi r6,r2,110 + 7aa0: 300490fa slli r2,r6,3 + 7aa4: 003f4106 br 77ac <_malloc_r+0xb4> + 7aa8: d0a6fd17 ldw r2,-25612(gp) + 7aac: d0e00717 ldw r3,-32740(gp) + 7ab0: 053fffc4 movi r20,-1 + 7ab4: 10800404 addi r2,r2,16 + 7ab8: 88a7883a add r19,r17,r2 + 7abc: 1d000326 beq r3,r20,7acc <_malloc_r+0x3d4> + 7ac0: 98c3ffc4 addi r3,r19,4095 + 7ac4: 00bc0004 movi r2,-4096 + 7ac8: 18a6703a and r19,r3,r2 + 7acc: 9009883a mov r4,r18 + 7ad0: 980b883a mov r5,r19 + 7ad4: 00098240 call 9824 <_sbrk_r> + 7ad8: 1009883a mov r4,r2 + 7adc: 15000426 beq r2,r20,7af0 <_malloc_r+0x3f8> + 7ae0: 854b883a add r5,r16,r21 + 7ae4: 1029883a mov r20,r2 + 7ae8: 11405a2e bgeu r2,r5,7c54 <_malloc_r+0x55c> + 7aec: 87000c26 beq r16,fp,7b20 <_malloc_r+0x428> + 7af0: e4000217 ldw r16,8(fp) + 7af4: 80c00117 ldw r3,4(r16) + 7af8: 00bfff04 movi r2,-4 + 7afc: 1884703a and r2,r3,r2 + 7b00: 14400336 bltu r2,r17,7b10 <_malloc_r+0x418> + 7b04: 1449c83a sub r4,r2,r17 + 7b08: 008003c4 movi r2,15 + 7b0c: 113fd316 blt r2,r4,7a5c <_malloc_r+0x364> + 7b10: 9009883a mov r4,r18 + 7b14: 000caa80 call caa8 <__malloc_unlock> + 7b18: 0007883a mov r3,zero + 7b1c: 003f0a06 br 7748 <_malloc_r+0x50> + 7b20: 05c00074 movhi r23,1 + 7b24: bdd08304 addi r23,r23,16908 + 7b28: b8800017 ldw r2,0(r23) + 7b2c: 988d883a add r6,r19,r2 + 7b30: b9800015 stw r6,0(r23) + 7b34: d0e00717 ldw r3,-32740(gp) + 7b38: 00bfffc4 movi r2,-1 + 7b3c: 18808e26 beq r3,r2,7d78 <_malloc_r+0x680> + 7b40: 2145c83a sub r2,r4,r5 + 7b44: 3085883a add r2,r6,r2 + 7b48: b8800015 stw r2,0(r23) + 7b4c: 20c001cc andi r3,r4,7 + 7b50: 18005f1e bne r3,zero,7cd0 <_malloc_r+0x5d8> + 7b54: 000b883a mov r5,zero + 7b58: a4c5883a add r2,r20,r19 + 7b5c: 1083ffcc andi r2,r2,4095 + 7b60: 00c40004 movi r3,4096 + 7b64: 1887c83a sub r3,r3,r2 + 7b68: 28e7883a add r19,r5,r3 + 7b6c: 9009883a mov r4,r18 + 7b70: 980b883a mov r5,r19 + 7b74: 00098240 call 9824 <_sbrk_r> + 7b78: 1007883a mov r3,r2 + 7b7c: 00bfffc4 movi r2,-1 + 7b80: 18807a26 beq r3,r2,7d6c <_malloc_r+0x674> + 7b84: 1d05c83a sub r2,r3,r20 + 7b88: 9885883a add r2,r19,r2 + 7b8c: 10c00054 ori r3,r2,1 + 7b90: b8800017 ldw r2,0(r23) + 7b94: a021883a mov r16,r20 + 7b98: a0c00115 stw r3,4(r20) + 7b9c: 9885883a add r2,r19,r2 + 7ba0: b8800015 stw r2,0(r23) + 7ba4: e5000215 stw r20,8(fp) + 7ba8: b7003626 beq r22,fp,7c84 <_malloc_r+0x58c> + 7bac: 018003c4 movi r6,15 + 7bb0: 35404b36 bltu r6,r21,7ce0 <_malloc_r+0x5e8> + 7bb4: 00800044 movi r2,1 + 7bb8: a0800115 stw r2,4(r20) + 7bbc: 003fcd06 br 7af4 <_malloc_r+0x3fc> + 7bc0: 2808d27a srli r4,r5,9 + 7bc4: 2000371e bne r4,zero,7ca4 <_malloc_r+0x5ac> + 7bc8: 2808d0fa srli r4,r5,3 + 7bcc: 200690fa slli r3,r4,3 + 7bd0: 1ad1883a add r8,r3,r11 + 7bd4: 41800217 ldw r6,8(r8) + 7bd8: 41805b26 beq r8,r6,7d48 <_malloc_r+0x650> + 7bdc: 30800117 ldw r2,4(r6) + 7be0: 00ffff04 movi r3,-4 + 7be4: 10c4703a and r2,r2,r3 + 7be8: 2880022e bgeu r5,r2,7bf4 <_malloc_r+0x4fc> + 7bec: 31800217 ldw r6,8(r6) + 7bf0: 41bffa1e bne r8,r6,7bdc <_malloc_r+0x4e4> + 7bf4: 32000317 ldw r8,12(r6) + 7bf8: 39c00117 ldw r7,4(r7) + 7bfc: 82000315 stw r8,12(r16) + 7c00: 81800215 stw r6,8(r16) + 7c04: 07000074 movhi fp,1 + 7c08: e7027004 addi fp,fp,2496 + 7c0c: 34000315 stw r16,12(r6) + 7c10: 44000215 stw r16,8(r8) + 7c14: 003f3e06 br 7910 <_malloc_r+0x218> + 7c18: 63000044 addi r12,r12,1 + 7c1c: 608000cc andi r2,r12,3 + 7c20: 10005d26 beq r2,zero,7d98 <_malloc_r+0x6a0> + 7c24: 18c00204 addi r3,r3,8 + 7c28: 003f5106 br 7970 <_malloc_r+0x278> + 7c2c: 8089883a add r4,r16,r2 + 7c30: 003f6d06 br 79e8 <_malloc_r+0x2f0> + 7c34: 00805504 movi r2,340 + 7c38: 10c02036 bltu r2,r3,7cbc <_malloc_r+0x5c4> + 7c3c: 8804d3fa srli r2,r17,15 + 7c40: 11801dc4 addi r6,r2,119 + 7c44: 300490fa slli r2,r6,3 + 7c48: 003ed806 br 77ac <_malloc_r+0xb4> + 7c4c: 48c000c4 addi r3,r9,3 + 7c50: 003f3106 br 7918 <_malloc_r+0x220> + 7c54: 05c00074 movhi r23,1 + 7c58: bdd08304 addi r23,r23,16908 + 7c5c: b8800017 ldw r2,0(r23) + 7c60: 988d883a add r6,r19,r2 + 7c64: b9800015 stw r6,0(r23) + 7c68: 293fb21e bne r5,r4,7b34 <_malloc_r+0x43c> + 7c6c: 2083ffcc andi r2,r4,4095 + 7c70: 103fb01e bne r2,zero,7b34 <_malloc_r+0x43c> + 7c74: e4000217 ldw r16,8(fp) + 7c78: 9d45883a add r2,r19,r21 + 7c7c: 10800054 ori r2,r2,1 + 7c80: 80800115 stw r2,4(r16) + 7c84: b8c00017 ldw r3,0(r23) + 7c88: d0a6fe17 ldw r2,-25608(gp) + 7c8c: 10c0012e bgeu r2,r3,7c94 <_malloc_r+0x59c> + 7c90: d0e6fe15 stw r3,-25608(gp) + 7c94: d0a6ff17 ldw r2,-25604(gp) + 7c98: 10ff962e bgeu r2,r3,7af4 <_malloc_r+0x3fc> + 7c9c: d0e6ff15 stw r3,-25604(gp) + 7ca0: 003f9406 br 7af4 <_malloc_r+0x3fc> + 7ca4: 00800104 movi r2,4 + 7ca8: 11001e36 bltu r2,r4,7d24 <_malloc_r+0x62c> + 7cac: 2804d1ba srli r2,r5,6 + 7cb0: 11000e04 addi r4,r2,56 + 7cb4: 200690fa slli r3,r4,3 + 7cb8: 003fc506 br 7bd0 <_malloc_r+0x4d8> + 7cbc: 00815504 movi r2,1364 + 7cc0: 10c01d2e bgeu r2,r3,7d38 <_malloc_r+0x640> + 7cc4: 01801f84 movi r6,126 + 7cc8: 0080fc04 movi r2,1008 + 7ccc: 003eb706 br 77ac <_malloc_r+0xb4> + 7cd0: 00800204 movi r2,8 + 7cd4: 10cbc83a sub r5,r2,r3 + 7cd8: 2169883a add r20,r4,r5 + 7cdc: 003f9e06 br 7b58 <_malloc_r+0x460> + 7ce0: 00bffe04 movi r2,-8 + 7ce4: a93ffd04 addi r4,r21,-12 + 7ce8: 2088703a and r4,r4,r2 + 7cec: b10b883a add r5,r22,r4 + 7cf0: 00c00144 movi r3,5 + 7cf4: 28c00215 stw r3,8(r5) + 7cf8: 28c00115 stw r3,4(r5) + 7cfc: b0800117 ldw r2,4(r22) + 7d00: 1080004c andi r2,r2,1 + 7d04: 2084b03a or r2,r4,r2 + 7d08: b0800115 stw r2,4(r22) + 7d0c: 313fdd2e bgeu r6,r4,7c84 <_malloc_r+0x58c> + 7d10: b1400204 addi r5,r22,8 + 7d14: 9009883a mov r4,r18 + 7d18: 0006b700 call 6b70 <_free_r> + 7d1c: e4000217 ldw r16,8(fp) + 7d20: 003fd806 br 7c84 <_malloc_r+0x58c> + 7d24: 00800504 movi r2,20 + 7d28: 11001536 bltu r2,r4,7d80 <_malloc_r+0x688> + 7d2c: 210016c4 addi r4,r4,91 + 7d30: 200690fa slli r3,r4,3 + 7d34: 003fa606 br 7bd0 <_malloc_r+0x4d8> + 7d38: 8804d4ba srli r2,r17,18 + 7d3c: 11801f04 addi r6,r2,124 + 7d40: 300490fa slli r2,r6,3 + 7d44: 003e9906 br 77ac <_malloc_r+0xb4> + 7d48: 2009d0ba srai r4,r4,2 + 7d4c: 01400074 movhi r5,1 + 7d50: 29427004 addi r5,r5,2496 + 7d54: 00c00044 movi r3,1 + 7d58: 28800117 ldw r2,4(r5) + 7d5c: 1906983a sll r3,r3,r4 + 7d60: 10c4b03a or r2,r2,r3 + 7d64: 28800115 stw r2,4(r5) + 7d68: 003fa306 br 7bf8 <_malloc_r+0x500> + 7d6c: 0027883a mov r19,zero + 7d70: 00c00044 movi r3,1 + 7d74: 003f8606 br 7b90 <_malloc_r+0x498> + 7d78: d1200715 stw r4,-32740(gp) + 7d7c: 003f7306 br 7b4c <_malloc_r+0x454> + 7d80: 00801504 movi r2,84 + 7d84: 11001936 bltu r2,r4,7dec <_malloc_r+0x6f4> + 7d88: 2804d33a srli r2,r5,12 + 7d8c: 11001b84 addi r4,r2,110 + 7d90: 200690fa slli r3,r4,3 + 7d94: 003f8e06 br 7bd0 <_malloc_r+0x4d8> + 7d98: 480b883a mov r5,r9 + 7d9c: 6807883a mov r3,r13 + 7da0: 288000cc andi r2,r5,3 + 7da4: 18fffe04 addi r3,r3,-8 + 7da8: 297fffc4 addi r5,r5,-1 + 7dac: 10001526 beq r2,zero,7e04 <_malloc_r+0x70c> + 7db0: 18800217 ldw r2,8(r3) + 7db4: 10fffa26 beq r2,r3,7da0 <_malloc_r+0x6a8> + 7db8: 2109883a add r4,r4,r4 + 7dbc: 393f1e36 bltu r7,r4,7a38 <_malloc_r+0x340> + 7dc0: 203f1d26 beq r4,zero,7a38 <_malloc_r+0x340> + 7dc4: 21c4703a and r2,r4,r7 + 7dc8: 10000226 beq r2,zero,7dd4 <_malloc_r+0x6dc> + 7dcc: 6013883a mov r9,r12 + 7dd0: 003ee106 br 7958 <_malloc_r+0x260> + 7dd4: 2109883a add r4,r4,r4 + 7dd8: 3904703a and r2,r7,r4 + 7ddc: 63000104 addi r12,r12,4 + 7de0: 103ffc26 beq r2,zero,7dd4 <_malloc_r+0x6dc> + 7de4: 6013883a mov r9,r12 + 7de8: 003edb06 br 7958 <_malloc_r+0x260> + 7dec: 00805504 movi r2,340 + 7df0: 11000836 bltu r2,r4,7e14 <_malloc_r+0x71c> + 7df4: 2804d3fa srli r2,r5,15 + 7df8: 11001dc4 addi r4,r2,119 + 7dfc: 200690fa slli r3,r4,3 + 7e00: 003f7306 br 7bd0 <_malloc_r+0x4d8> + 7e04: 0104303a nor r2,zero,r4 + 7e08: 388e703a and r7,r7,r2 + 7e0c: e1c00115 stw r7,4(fp) + 7e10: 003fe906 br 7db8 <_malloc_r+0x6c0> + 7e14: 00815504 movi r2,1364 + 7e18: 1100032e bgeu r2,r4,7e28 <_malloc_r+0x730> + 7e1c: 01001f84 movi r4,126 + 7e20: 00c0fc04 movi r3,1008 + 7e24: 003f6a06 br 7bd0 <_malloc_r+0x4d8> + 7e28: 2804d4ba srli r2,r5,18 + 7e2c: 11001f04 addi r4,r2,124 + 7e30: 200690fa slli r3,r4,3 + 7e34: 003f6606 br 7bd0 <_malloc_r+0x4d8> + +00007e38 : + 7e38: 008000c4 movi r2,3 + 7e3c: 29403fcc andi r5,r5,255 + 7e40: 2007883a mov r3,r4 + 7e44: 1180022e bgeu r2,r6,7e50 + 7e48: 2084703a and r2,r4,r2 + 7e4c: 10000b26 beq r2,zero,7e7c + 7e50: 313fffc4 addi r4,r6,-1 + 7e54: 3000051e bne r6,zero,7e6c + 7e58: 00002c06 br 7f0c + 7e5c: 213fffc4 addi r4,r4,-1 + 7e60: 00bfffc4 movi r2,-1 + 7e64: 18c00044 addi r3,r3,1 + 7e68: 20802826 beq r4,r2,7f0c + 7e6c: 18800003 ldbu r2,0(r3) + 7e70: 28bffa1e bne r5,r2,7e5c + 7e74: 1805883a mov r2,r3 + 7e78: f800283a ret + 7e7c: 0011883a mov r8,zero + 7e80: 0007883a mov r3,zero + 7e84: 01c00104 movi r7,4 + 7e88: 4004923a slli r2,r8,8 + 7e8c: 18c00044 addi r3,r3,1 + 7e90: 1151883a add r8,r2,r5 + 7e94: 19fffc1e bne r3,r7,7e88 + 7e98: 02bfbff4 movhi r10,65279 + 7e9c: 52bfbfc4 addi r10,r10,-257 + 7ea0: 02602074 movhi r9,32897 + 7ea4: 4a602004 addi r9,r9,-32640 + 7ea8: 02c000c4 movi r11,3 + 7eac: 20800017 ldw r2,0(r4) + 7eb0: 31bfff04 addi r6,r6,-4 + 7eb4: 200f883a mov r7,r4 + 7eb8: 1204f03a xor r2,r2,r8 + 7ebc: 1287883a add r3,r2,r10 + 7ec0: 1a46703a and r3,r3,r9 + 7ec4: 0084303a nor r2,zero,r2 + 7ec8: 10c4703a and r2,r2,r3 + 7ecc: 10000b26 beq r2,zero,7efc + 7ed0: 20800003 ldbu r2,0(r4) + 7ed4: 28800f26 beq r5,r2,7f14 + 7ed8: 20800043 ldbu r2,1(r4) + 7edc: 21c00044 addi r7,r4,1 + 7ee0: 28800c26 beq r5,r2,7f14 + 7ee4: 20800083 ldbu r2,2(r4) + 7ee8: 21c00084 addi r7,r4,2 + 7eec: 28800926 beq r5,r2,7f14 + 7ef0: 208000c3 ldbu r2,3(r4) + 7ef4: 21c000c4 addi r7,r4,3 + 7ef8: 28800626 beq r5,r2,7f14 + 7efc: 21000104 addi r4,r4,4 + 7f00: 59bfea36 bltu r11,r6,7eac + 7f04: 2007883a mov r3,r4 + 7f08: 003fd106 br 7e50 + 7f0c: 0005883a mov r2,zero + 7f10: f800283a ret + 7f14: 3805883a mov r2,r7 + 7f18: f800283a ret + +00007f1c : + 7f1c: 01c003c4 movi r7,15 + 7f20: 2007883a mov r3,r4 + 7f24: 3980032e bgeu r7,r6,7f34 + 7f28: 2904b03a or r2,r5,r4 + 7f2c: 108000cc andi r2,r2,3 + 7f30: 10000926 beq r2,zero,7f58 + 7f34: 30000626 beq r6,zero,7f50 + 7f38: 30cd883a add r6,r6,r3 + 7f3c: 28800003 ldbu r2,0(r5) + 7f40: 29400044 addi r5,r5,1 + 7f44: 18800005 stb r2,0(r3) + 7f48: 18c00044 addi r3,r3,1 + 7f4c: 30fffb1e bne r6,r3,7f3c + 7f50: 2005883a mov r2,r4 + 7f54: f800283a ret + 7f58: 3811883a mov r8,r7 + 7f5c: 200f883a mov r7,r4 + 7f60: 28c00017 ldw r3,0(r5) + 7f64: 31bffc04 addi r6,r6,-16 + 7f68: 38c00015 stw r3,0(r7) + 7f6c: 28800117 ldw r2,4(r5) + 7f70: 38800115 stw r2,4(r7) + 7f74: 28c00217 ldw r3,8(r5) + 7f78: 38c00215 stw r3,8(r7) + 7f7c: 28800317 ldw r2,12(r5) + 7f80: 29400404 addi r5,r5,16 + 7f84: 38800315 stw r2,12(r7) + 7f88: 39c00404 addi r7,r7,16 + 7f8c: 41bff436 bltu r8,r6,7f60 + 7f90: 008000c4 movi r2,3 + 7f94: 1180072e bgeu r2,r6,7fb4 + 7f98: 1007883a mov r3,r2 + 7f9c: 28800017 ldw r2,0(r5) + 7fa0: 31bfff04 addi r6,r6,-4 + 7fa4: 29400104 addi r5,r5,4 + 7fa8: 38800015 stw r2,0(r7) + 7fac: 39c00104 addi r7,r7,4 + 7fb0: 19bffa36 bltu r3,r6,7f9c + 7fb4: 3807883a mov r3,r7 + 7fb8: 003fde06 br 7f34 + +00007fbc : + 7fbc: 2807883a mov r3,r5 + 7fc0: 2011883a mov r8,r4 + 7fc4: 29000c2e bgeu r5,r4,7ff8 + 7fc8: 298f883a add r7,r5,r6 + 7fcc: 21c00a2e bgeu r4,r7,7ff8 + 7fd0: 30000726 beq r6,zero,7ff0 + 7fd4: 2187883a add r3,r4,r6 + 7fd8: 198dc83a sub r6,r3,r6 + 7fdc: 39ffffc4 addi r7,r7,-1 + 7fe0: 38800003 ldbu r2,0(r7) + 7fe4: 18ffffc4 addi r3,r3,-1 + 7fe8: 18800005 stb r2,0(r3) + 7fec: 19bffb1e bne r3,r6,7fdc + 7ff0: 2005883a mov r2,r4 + 7ff4: f800283a ret + 7ff8: 01c003c4 movi r7,15 + 7ffc: 39800a36 bltu r7,r6,8028 + 8000: 303ffb26 beq r6,zero,7ff0 + 8004: 400f883a mov r7,r8 + 8008: 320d883a add r6,r6,r8 + 800c: 28800003 ldbu r2,0(r5) + 8010: 29400044 addi r5,r5,1 + 8014: 38800005 stb r2,0(r7) + 8018: 39c00044 addi r7,r7,1 + 801c: 39bffb1e bne r7,r6,800c + 8020: 2005883a mov r2,r4 + 8024: f800283a ret + 8028: 1904b03a or r2,r3,r4 + 802c: 108000cc andi r2,r2,3 + 8030: 103ff31e bne r2,zero,8000 + 8034: 3811883a mov r8,r7 + 8038: 180b883a mov r5,r3 + 803c: 200f883a mov r7,r4 + 8040: 28c00017 ldw r3,0(r5) + 8044: 31bffc04 addi r6,r6,-16 + 8048: 38c00015 stw r3,0(r7) + 804c: 28800117 ldw r2,4(r5) + 8050: 38800115 stw r2,4(r7) + 8054: 28c00217 ldw r3,8(r5) + 8058: 38c00215 stw r3,8(r7) + 805c: 28800317 ldw r2,12(r5) + 8060: 29400404 addi r5,r5,16 + 8064: 38800315 stw r2,12(r7) + 8068: 39c00404 addi r7,r7,16 + 806c: 41bff436 bltu r8,r6,8040 + 8070: 008000c4 movi r2,3 + 8074: 1180072e bgeu r2,r6,8094 + 8078: 1007883a mov r3,r2 + 807c: 28800017 ldw r2,0(r5) + 8080: 31bfff04 addi r6,r6,-4 + 8084: 29400104 addi r5,r5,4 + 8088: 38800015 stw r2,0(r7) + 808c: 39c00104 addi r7,r7,4 + 8090: 19bffa36 bltu r3,r6,807c + 8094: 3811883a mov r8,r7 + 8098: 003fd906 br 8000 + +0000809c : + 809c: 008000c4 movi r2,3 + 80a0: 29403fcc andi r5,r5,255 + 80a4: 2007883a mov r3,r4 + 80a8: 1180022e bgeu r2,r6,80b4 + 80ac: 2084703a and r2,r4,r2 + 80b0: 10000826 beq r2,zero,80d4 + 80b4: 30000526 beq r6,zero,80cc + 80b8: 2805883a mov r2,r5 + 80bc: 30cd883a add r6,r6,r3 + 80c0: 18800005 stb r2,0(r3) + 80c4: 18c00044 addi r3,r3,1 + 80c8: 19bffd1e bne r3,r6,80c0 + 80cc: 2005883a mov r2,r4 + 80d0: f800283a ret + 80d4: 2804923a slli r2,r5,8 + 80d8: 020003c4 movi r8,15 + 80dc: 200f883a mov r7,r4 + 80e0: 2884b03a or r2,r5,r2 + 80e4: 1006943a slli r3,r2,16 + 80e8: 10c6b03a or r3,r2,r3 + 80ec: 41800a2e bgeu r8,r6,8118 + 80f0: 4005883a mov r2,r8 + 80f4: 31bffc04 addi r6,r6,-16 + 80f8: 38c00015 stw r3,0(r7) + 80fc: 38c00115 stw r3,4(r7) + 8100: 38c00215 stw r3,8(r7) + 8104: 38c00315 stw r3,12(r7) + 8108: 39c00404 addi r7,r7,16 + 810c: 11bff936 bltu r2,r6,80f4 + 8110: 008000c4 movi r2,3 + 8114: 1180052e bgeu r2,r6,812c + 8118: 31bfff04 addi r6,r6,-4 + 811c: 008000c4 movi r2,3 + 8120: 38c00015 stw r3,0(r7) + 8124: 39c00104 addi r7,r7,4 + 8128: 11bffb36 bltu r2,r6,8118 + 812c: 3807883a mov r3,r7 + 8130: 003fe006 br 80b4 + +00008134 <_Bfree>: + 8134: 28000826 beq r5,zero,8158 <_Bfree+0x24> + 8138: 28800117 ldw r2,4(r5) + 813c: 21001317 ldw r4,76(r4) + 8140: 1085883a add r2,r2,r2 + 8144: 1085883a add r2,r2,r2 + 8148: 1105883a add r2,r2,r4 + 814c: 10c00017 ldw r3,0(r2) + 8150: 28c00015 stw r3,0(r5) + 8154: 11400015 stw r5,0(r2) + 8158: f800283a ret + +0000815c <__hi0bits>: + 815c: 20bfffec andhi r2,r4,65535 + 8160: 10001426 beq r2,zero,81b4 <__hi0bits+0x58> + 8164: 0007883a mov r3,zero + 8168: 20bfc02c andhi r2,r4,65280 + 816c: 1000021e bne r2,zero,8178 <__hi0bits+0x1c> + 8170: 2008923a slli r4,r4,8 + 8174: 18c00204 addi r3,r3,8 + 8178: 20bc002c andhi r2,r4,61440 + 817c: 1000021e bne r2,zero,8188 <__hi0bits+0x2c> + 8180: 2008913a slli r4,r4,4 + 8184: 18c00104 addi r3,r3,4 + 8188: 20b0002c andhi r2,r4,49152 + 818c: 1000031e bne r2,zero,819c <__hi0bits+0x40> + 8190: 2105883a add r2,r4,r4 + 8194: 18c00084 addi r3,r3,2 + 8198: 1089883a add r4,r2,r2 + 819c: 20000316 blt r4,zero,81ac <__hi0bits+0x50> + 81a0: 2090002c andhi r2,r4,16384 + 81a4: 10000626 beq r2,zero,81c0 <__hi0bits+0x64> + 81a8: 18c00044 addi r3,r3,1 + 81ac: 1805883a mov r2,r3 + 81b0: f800283a ret + 81b4: 2008943a slli r4,r4,16 + 81b8: 00c00404 movi r3,16 + 81bc: 003fea06 br 8168 <__hi0bits+0xc> + 81c0: 00c00804 movi r3,32 + 81c4: 1805883a mov r2,r3 + 81c8: f800283a ret + +000081cc <__lo0bits>: + 81cc: 20c00017 ldw r3,0(r4) + 81d0: 188001cc andi r2,r3,7 + 81d4: 10000a26 beq r2,zero,8200 <__lo0bits+0x34> + 81d8: 1880004c andi r2,r3,1 + 81dc: 1005003a cmpeq r2,r2,zero + 81e0: 10002126 beq r2,zero,8268 <__lo0bits+0x9c> + 81e4: 1880008c andi r2,r3,2 + 81e8: 1000251e bne r2,zero,8280 <__lo0bits+0xb4> + 81ec: 1804d0ba srli r2,r3,2 + 81f0: 01400084 movi r5,2 + 81f4: 20800015 stw r2,0(r4) + 81f8: 2805883a mov r2,r5 + 81fc: f800283a ret + 8200: 18bfffcc andi r2,r3,65535 + 8204: 10001526 beq r2,zero,825c <__lo0bits+0x90> + 8208: 000b883a mov r5,zero + 820c: 18803fcc andi r2,r3,255 + 8210: 1000021e bne r2,zero,821c <__lo0bits+0x50> + 8214: 1806d23a srli r3,r3,8 + 8218: 29400204 addi r5,r5,8 + 821c: 188003cc andi r2,r3,15 + 8220: 1000021e bne r2,zero,822c <__lo0bits+0x60> + 8224: 1806d13a srli r3,r3,4 + 8228: 29400104 addi r5,r5,4 + 822c: 188000cc andi r2,r3,3 + 8230: 1000021e bne r2,zero,823c <__lo0bits+0x70> + 8234: 1806d0ba srli r3,r3,2 + 8238: 29400084 addi r5,r5,2 + 823c: 1880004c andi r2,r3,1 + 8240: 1000031e bne r2,zero,8250 <__lo0bits+0x84> + 8244: 1806d07a srli r3,r3,1 + 8248: 18000a26 beq r3,zero,8274 <__lo0bits+0xa8> + 824c: 29400044 addi r5,r5,1 + 8250: 2805883a mov r2,r5 + 8254: 20c00015 stw r3,0(r4) + 8258: f800283a ret + 825c: 1806d43a srli r3,r3,16 + 8260: 01400404 movi r5,16 + 8264: 003fe906 br 820c <__lo0bits+0x40> + 8268: 000b883a mov r5,zero + 826c: 2805883a mov r2,r5 + 8270: f800283a ret + 8274: 01400804 movi r5,32 + 8278: 2805883a mov r2,r5 + 827c: f800283a ret + 8280: 1804d07a srli r2,r3,1 + 8284: 01400044 movi r5,1 + 8288: 20800015 stw r2,0(r4) + 828c: 003fda06 br 81f8 <__lo0bits+0x2c> + +00008290 <__mcmp>: + 8290: 20800417 ldw r2,16(r4) + 8294: 28c00417 ldw r3,16(r5) + 8298: 10cfc83a sub r7,r2,r3 + 829c: 38000c1e bne r7,zero,82d0 <__mcmp+0x40> + 82a0: 18c5883a add r2,r3,r3 + 82a4: 1085883a add r2,r2,r2 + 82a8: 10c00504 addi r3,r2,20 + 82ac: 21000504 addi r4,r4,20 + 82b0: 28cb883a add r5,r5,r3 + 82b4: 2085883a add r2,r4,r2 + 82b8: 10bfff04 addi r2,r2,-4 + 82bc: 297fff04 addi r5,r5,-4 + 82c0: 11800017 ldw r6,0(r2) + 82c4: 28c00017 ldw r3,0(r5) + 82c8: 30c0031e bne r6,r3,82d8 <__mcmp+0x48> + 82cc: 20bffa36 bltu r4,r2,82b8 <__mcmp+0x28> + 82d0: 3805883a mov r2,r7 + 82d4: f800283a ret + 82d8: 30c00336 bltu r6,r3,82e8 <__mcmp+0x58> + 82dc: 01c00044 movi r7,1 + 82e0: 3805883a mov r2,r7 + 82e4: f800283a ret + 82e8: 01ffffc4 movi r7,-1 + 82ec: 003ff806 br 82d0 <__mcmp+0x40> + +000082f0 <__ulp>: + 82f0: 295ffc2c andhi r5,r5,32752 + 82f4: 013f3034 movhi r4,64704 + 82f8: 290b883a add r5,r5,r4 + 82fc: 0145c83a sub r2,zero,r5 + 8300: 1007d53a srai r3,r2,20 + 8304: 000d883a mov r6,zero + 8308: 0140040e bge zero,r5,831c <__ulp+0x2c> + 830c: 280f883a mov r7,r5 + 8310: 3807883a mov r3,r7 + 8314: 3005883a mov r2,r6 + 8318: f800283a ret + 831c: 008004c4 movi r2,19 + 8320: 193ffb04 addi r4,r3,-20 + 8324: 10c00c0e bge r2,r3,8358 <__ulp+0x68> + 8328: 008007c4 movi r2,31 + 832c: 1107c83a sub r3,r2,r4 + 8330: 00800784 movi r2,30 + 8334: 01400044 movi r5,1 + 8338: 11000216 blt r2,r4,8344 <__ulp+0x54> + 833c: 00800044 movi r2,1 + 8340: 10ca983a sll r5,r2,r3 + 8344: 000f883a mov r7,zero + 8348: 280d883a mov r6,r5 + 834c: 3807883a mov r3,r7 + 8350: 3005883a mov r2,r6 + 8354: f800283a ret + 8358: 00800234 movhi r2,8 + 835c: 10cfd83a sra r7,r2,r3 + 8360: 000d883a mov r6,zero + 8364: 3005883a mov r2,r6 + 8368: 3807883a mov r3,r7 + 836c: f800283a ret + +00008370 <__b2d>: + 8370: 20800417 ldw r2,16(r4) + 8374: defff904 addi sp,sp,-28 + 8378: dd000415 stw r20,16(sp) + 837c: 1085883a add r2,r2,r2 + 8380: 25000504 addi r20,r4,20 + 8384: 1085883a add r2,r2,r2 + 8388: dc000015 stw r16,0(sp) + 838c: a0a1883a add r16,r20,r2 + 8390: dd400515 stw r21,20(sp) + 8394: 857fff17 ldw r21,-4(r16) + 8398: dc400115 stw r17,4(sp) + 839c: dfc00615 stw ra,24(sp) + 83a0: a809883a mov r4,r21 + 83a4: 2823883a mov r17,r5 + 83a8: dcc00315 stw r19,12(sp) + 83ac: dc800215 stw r18,8(sp) + 83b0: 000815c0 call 815c <__hi0bits> + 83b4: 100b883a mov r5,r2 + 83b8: 00800804 movi r2,32 + 83bc: 1145c83a sub r2,r2,r5 + 83c0: 88800015 stw r2,0(r17) + 83c4: 00800284 movi r2,10 + 83c8: 80ffff04 addi r3,r16,-4 + 83cc: 11401416 blt r2,r5,8420 <__b2d+0xb0> + 83d0: 008002c4 movi r2,11 + 83d4: 1149c83a sub r4,r2,r5 + 83d8: a0c02736 bltu r20,r3,8478 <__b2d+0x108> + 83dc: 000d883a mov r6,zero + 83e0: 28800544 addi r2,r5,21 + 83e4: a906d83a srl r3,r21,r4 + 83e8: a884983a sll r2,r21,r2 + 83ec: 1ccffc34 orhi r19,r3,16368 + 83f0: 11a4b03a or r18,r2,r6 + 83f4: 9005883a mov r2,r18 + 83f8: 9807883a mov r3,r19 + 83fc: dfc00617 ldw ra,24(sp) + 8400: dd400517 ldw r21,20(sp) + 8404: dd000417 ldw r20,16(sp) + 8408: dcc00317 ldw r19,12(sp) + 840c: dc800217 ldw r18,8(sp) + 8410: dc400117 ldw r17,4(sp) + 8414: dc000017 ldw r16,0(sp) + 8418: dec00704 addi sp,sp,28 + 841c: f800283a ret + 8420: a0c00e36 bltu r20,r3,845c <__b2d+0xec> + 8424: 293ffd44 addi r4,r5,-11 + 8428: 000d883a mov r6,zero + 842c: 20000f26 beq r4,zero,846c <__b2d+0xfc> + 8430: 00800804 movi r2,32 + 8434: 110bc83a sub r5,r2,r4 + 8438: a0c01236 bltu r20,r3,8484 <__b2d+0x114> + 843c: 000f883a mov r7,zero + 8440: a904983a sll r2,r21,r4 + 8444: 3146d83a srl r3,r6,r5 + 8448: 3108983a sll r4,r6,r4 + 844c: 108ffc34 orhi r2,r2,16368 + 8450: 18a6b03a or r19,r3,r2 + 8454: 3924b03a or r18,r7,r4 + 8458: 003fe606 br 83f4 <__b2d+0x84> + 845c: 293ffd44 addi r4,r5,-11 + 8460: 81bffe17 ldw r6,-8(r16) + 8464: 80fffe04 addi r3,r16,-8 + 8468: 203ff11e bne r4,zero,8430 <__b2d+0xc0> + 846c: accffc34 orhi r19,r21,16368 + 8470: 3025883a mov r18,r6 + 8474: 003fdf06 br 83f4 <__b2d+0x84> + 8478: 18bfff17 ldw r2,-4(r3) + 847c: 110cd83a srl r6,r2,r4 + 8480: 003fd706 br 83e0 <__b2d+0x70> + 8484: 18bfff17 ldw r2,-4(r3) + 8488: 114ed83a srl r7,r2,r5 + 848c: 003fec06 br 8440 <__b2d+0xd0> + +00008490 <__ratio>: + 8490: defff904 addi sp,sp,-28 + 8494: dc400215 stw r17,8(sp) + 8498: 2823883a mov r17,r5 + 849c: d80b883a mov r5,sp + 84a0: dfc00615 stw ra,24(sp) + 84a4: dd000515 stw r20,20(sp) + 84a8: dcc00415 stw r19,16(sp) + 84ac: dc800315 stw r18,12(sp) + 84b0: 2025883a mov r18,r4 + 84b4: 00083700 call 8370 <__b2d> + 84b8: 8809883a mov r4,r17 + 84bc: d9400104 addi r5,sp,4 + 84c0: 1027883a mov r19,r2 + 84c4: 1829883a mov r20,r3 + 84c8: 00083700 call 8370 <__b2d> + 84cc: 89000417 ldw r4,16(r17) + 84d0: 91c00417 ldw r7,16(r18) + 84d4: d9800117 ldw r6,4(sp) + 84d8: 180b883a mov r5,r3 + 84dc: 390fc83a sub r7,r7,r4 + 84e0: 1009883a mov r4,r2 + 84e4: d8800017 ldw r2,0(sp) + 84e8: 380e917a slli r7,r7,5 + 84ec: 2011883a mov r8,r4 + 84f0: 1185c83a sub r2,r2,r6 + 84f4: 11c5883a add r2,r2,r7 + 84f8: 1006953a slli r3,r2,20 + 84fc: 2813883a mov r9,r5 + 8500: 00800d0e bge zero,r2,8538 <__ratio+0xa8> + 8504: 1d29883a add r20,r3,r20 + 8508: a00b883a mov r5,r20 + 850c: 480f883a mov r7,r9 + 8510: 9809883a mov r4,r19 + 8514: 400d883a mov r6,r8 + 8518: 000b4d80 call b4d8 <__divdf3> + 851c: dfc00617 ldw ra,24(sp) + 8520: dd000517 ldw r20,20(sp) + 8524: dcc00417 ldw r19,16(sp) + 8528: dc800317 ldw r18,12(sp) + 852c: dc400217 ldw r17,8(sp) + 8530: dec00704 addi sp,sp,28 + 8534: f800283a ret + 8538: 28d3c83a sub r9,r5,r3 + 853c: 003ff206 br 8508 <__ratio+0x78> + +00008540 <_mprec_log10>: + 8540: defffe04 addi sp,sp,-8 + 8544: 008005c4 movi r2,23 + 8548: dc000015 stw r16,0(sp) + 854c: dfc00115 stw ra,4(sp) + 8550: 2021883a mov r16,r4 + 8554: 11000c16 blt r2,r4,8588 <_mprec_log10+0x48> + 8558: 200490fa slli r2,r4,3 + 855c: 00c00074 movhi r3,1 + 8560: 18c0cf04 addi r3,r3,828 + 8564: 10c5883a add r2,r2,r3 + 8568: 12400117 ldw r9,4(r2) + 856c: 12000017 ldw r8,0(r2) + 8570: 4807883a mov r3,r9 + 8574: 4005883a mov r2,r8 + 8578: dfc00117 ldw ra,4(sp) + 857c: dc000017 ldw r16,0(sp) + 8580: dec00204 addi sp,sp,8 + 8584: f800283a ret + 8588: 0011883a mov r8,zero + 858c: 024ffc34 movhi r9,16368 + 8590: 0005883a mov r2,zero + 8594: 00d00934 movhi r3,16420 + 8598: 480b883a mov r5,r9 + 859c: 4009883a mov r4,r8 + 85a0: 180f883a mov r7,r3 + 85a4: 100d883a mov r6,r2 + 85a8: 000b1140 call b114 <__muldf3> + 85ac: 843fffc4 addi r16,r16,-1 + 85b0: 1011883a mov r8,r2 + 85b4: 1813883a mov r9,r3 + 85b8: 803ff51e bne r16,zero,8590 <_mprec_log10+0x50> + 85bc: 4005883a mov r2,r8 + 85c0: 4807883a mov r3,r9 + 85c4: dfc00117 ldw ra,4(sp) + 85c8: dc000017 ldw r16,0(sp) + 85cc: dec00204 addi sp,sp,8 + 85d0: f800283a ret + +000085d4 <__copybits>: + 85d4: 297fffc4 addi r5,r5,-1 + 85d8: 30800417 ldw r2,16(r6) + 85dc: 280bd17a srai r5,r5,5 + 85e0: 31800504 addi r6,r6,20 + 85e4: 1085883a add r2,r2,r2 + 85e8: 294b883a add r5,r5,r5 + 85ec: 294b883a add r5,r5,r5 + 85f0: 1085883a add r2,r2,r2 + 85f4: 290b883a add r5,r5,r4 + 85f8: 3087883a add r3,r6,r2 + 85fc: 29400104 addi r5,r5,4 + 8600: 30c0052e bgeu r6,r3,8618 <__copybits+0x44> + 8604: 30800017 ldw r2,0(r6) + 8608: 31800104 addi r6,r6,4 + 860c: 20800015 stw r2,0(r4) + 8610: 21000104 addi r4,r4,4 + 8614: 30fffb36 bltu r6,r3,8604 <__copybits+0x30> + 8618: 2140032e bgeu r4,r5,8628 <__copybits+0x54> + 861c: 20000015 stw zero,0(r4) + 8620: 21000104 addi r4,r4,4 + 8624: 217ffd36 bltu r4,r5,861c <__copybits+0x48> + 8628: f800283a ret + +0000862c <__any_on>: + 862c: 20800417 ldw r2,16(r4) + 8630: 2807d17a srai r3,r5,5 + 8634: 21000504 addi r4,r4,20 + 8638: 10c00d0e bge r2,r3,8670 <__any_on+0x44> + 863c: 1085883a add r2,r2,r2 + 8640: 1085883a add r2,r2,r2 + 8644: 208d883a add r6,r4,r2 + 8648: 2180182e bgeu r4,r6,86ac <__any_on+0x80> + 864c: 30bfff17 ldw r2,-4(r6) + 8650: 30ffff04 addi r3,r6,-4 + 8654: 1000041e bne r2,zero,8668 <__any_on+0x3c> + 8658: 20c0142e bgeu r4,r3,86ac <__any_on+0x80> + 865c: 18ffff04 addi r3,r3,-4 + 8660: 18800017 ldw r2,0(r3) + 8664: 103ffc26 beq r2,zero,8658 <__any_on+0x2c> + 8668: 00800044 movi r2,1 + 866c: f800283a ret + 8670: 18800a0e bge r3,r2,869c <__any_on+0x70> + 8674: 294007cc andi r5,r5,31 + 8678: 28000826 beq r5,zero,869c <__any_on+0x70> + 867c: 18c5883a add r2,r3,r3 + 8680: 1085883a add r2,r2,r2 + 8684: 208d883a add r6,r4,r2 + 8688: 30c00017 ldw r3,0(r6) + 868c: 1944d83a srl r2,r3,r5 + 8690: 1144983a sll r2,r2,r5 + 8694: 18bff41e bne r3,r2,8668 <__any_on+0x3c> + 8698: 003feb06 br 8648 <__any_on+0x1c> + 869c: 18c5883a add r2,r3,r3 + 86a0: 1085883a add r2,r2,r2 + 86a4: 208d883a add r6,r4,r2 + 86a8: 003fe706 br 8648 <__any_on+0x1c> + 86ac: 0005883a mov r2,zero + 86b0: f800283a ret + +000086b4 <_Balloc>: + 86b4: 20c01317 ldw r3,76(r4) + 86b8: defffb04 addi sp,sp,-20 + 86bc: dcc00315 stw r19,12(sp) + 86c0: dc800215 stw r18,8(sp) + 86c4: dfc00415 stw ra,16(sp) + 86c8: 2825883a mov r18,r5 + 86cc: dc400115 stw r17,4(sp) + 86d0: dc000015 stw r16,0(sp) + 86d4: 2027883a mov r19,r4 + 86d8: 01800404 movi r6,16 + 86dc: 01400104 movi r5,4 + 86e0: 18001726 beq r3,zero,8740 <_Balloc+0x8c> + 86e4: 01400044 movi r5,1 + 86e8: 9485883a add r2,r18,r18 + 86ec: 2ca2983a sll r17,r5,r18 + 86f0: 1085883a add r2,r2,r2 + 86f4: 10c7883a add r3,r2,r3 + 86f8: 1c000017 ldw r16,0(r3) + 86fc: 8c4d883a add r6,r17,r17 + 8700: 318d883a add r6,r6,r6 + 8704: 9809883a mov r4,r19 + 8708: 31800504 addi r6,r6,20 + 870c: 80001226 beq r16,zero,8758 <_Balloc+0xa4> + 8710: 80800017 ldw r2,0(r16) + 8714: 18800015 stw r2,0(r3) + 8718: 80000415 stw zero,16(r16) + 871c: 80000315 stw zero,12(r16) + 8720: 8005883a mov r2,r16 + 8724: dfc00417 ldw ra,16(sp) + 8728: dcc00317 ldw r19,12(sp) + 872c: dc800217 ldw r18,8(sp) + 8730: dc400117 ldw r17,4(sp) + 8734: dc000017 ldw r16,0(sp) + 8738: dec00504 addi sp,sp,20 + 873c: f800283a ret + 8740: 0009b140 call 9b14 <_calloc_r> + 8744: 1007883a mov r3,r2 + 8748: 0021883a mov r16,zero + 874c: 98801315 stw r2,76(r19) + 8750: 103fe41e bne r2,zero,86e4 <_Balloc+0x30> + 8754: 003ff206 br 8720 <_Balloc+0x6c> + 8758: 0009b140 call 9b14 <_calloc_r> + 875c: 103ff026 beq r2,zero,8720 <_Balloc+0x6c> + 8760: 1021883a mov r16,r2 + 8764: 14800115 stw r18,4(r2) + 8768: 14400215 stw r17,8(r2) + 876c: 003fea06 br 8718 <_Balloc+0x64> + +00008770 <__d2b>: + 8770: defff504 addi sp,sp,-44 + 8774: dcc00515 stw r19,20(sp) + 8778: 04c00044 movi r19,1 + 877c: dc000215 stw r16,8(sp) + 8780: 2821883a mov r16,r5 + 8784: 980b883a mov r5,r19 + 8788: ddc00915 stw r23,36(sp) + 878c: dd800815 stw r22,32(sp) + 8790: dd400715 stw r21,28(sp) + 8794: dd000615 stw r20,24(sp) + 8798: dc800415 stw r18,16(sp) + 879c: dc400315 stw r17,12(sp) + 87a0: dfc00a15 stw ra,40(sp) + 87a4: 3023883a mov r17,r6 + 87a8: 382d883a mov r22,r7 + 87ac: ddc00b17 ldw r23,44(sp) + 87b0: 00086b40 call 86b4 <_Balloc> + 87b4: 1025883a mov r18,r2 + 87b8: 00a00034 movhi r2,32768 + 87bc: 10bfffc4 addi r2,r2,-1 + 87c0: 8888703a and r4,r17,r2 + 87c4: 202ad53a srli r21,r4,20 + 87c8: 00800434 movhi r2,16 + 87cc: 10bfffc4 addi r2,r2,-1 + 87d0: 8886703a and r3,r17,r2 + 87d4: a829003a cmpeq r20,r21,zero + 87d8: 800b883a mov r5,r16 + 87dc: d8c00115 stw r3,4(sp) + 87e0: 94000504 addi r16,r18,20 + 87e4: a000021e bne r20,zero,87f0 <__d2b+0x80> + 87e8: 18c00434 orhi r3,r3,16 + 87ec: d8c00115 stw r3,4(sp) + 87f0: 28002726 beq r5,zero,8890 <__d2b+0x120> + 87f4: d809883a mov r4,sp + 87f8: d9400015 stw r5,0(sp) + 87fc: 00081cc0 call 81cc <__lo0bits> + 8800: 100d883a mov r6,r2 + 8804: 10003526 beq r2,zero,88dc <__d2b+0x16c> + 8808: d8c00117 ldw r3,4(sp) + 880c: 00800804 movi r2,32 + 8810: 1185c83a sub r2,r2,r6 + 8814: d9000017 ldw r4,0(sp) + 8818: 1886983a sll r3,r3,r2 + 881c: 1906b03a or r3,r3,r4 + 8820: 90c00515 stw r3,20(r18) + 8824: d8c00117 ldw r3,4(sp) + 8828: 1986d83a srl r3,r3,r6 + 882c: d8c00115 stw r3,4(sp) + 8830: 180b003a cmpeq r5,r3,zero + 8834: 00800084 movi r2,2 + 8838: 114bc83a sub r5,r2,r5 + 883c: 80c00115 stw r3,4(r16) + 8840: 91400415 stw r5,16(r18) + 8844: a0001a1e bne r20,zero,88b0 <__d2b+0x140> + 8848: 3545883a add r2,r6,r21 + 884c: 10bef344 addi r2,r2,-1075 + 8850: 00c00d44 movi r3,53 + 8854: b0800015 stw r2,0(r22) + 8858: 1987c83a sub r3,r3,r6 + 885c: b8c00015 stw r3,0(r23) + 8860: 9005883a mov r2,r18 + 8864: dfc00a17 ldw ra,40(sp) + 8868: ddc00917 ldw r23,36(sp) + 886c: dd800817 ldw r22,32(sp) + 8870: dd400717 ldw r21,28(sp) + 8874: dd000617 ldw r20,24(sp) + 8878: dcc00517 ldw r19,20(sp) + 887c: dc800417 ldw r18,16(sp) + 8880: dc400317 ldw r17,12(sp) + 8884: dc000217 ldw r16,8(sp) + 8888: dec00b04 addi sp,sp,44 + 888c: f800283a ret + 8890: d9000104 addi r4,sp,4 + 8894: 00081cc0 call 81cc <__lo0bits> + 8898: 11800804 addi r6,r2,32 + 889c: d8800117 ldw r2,4(sp) + 88a0: 94c00415 stw r19,16(r18) + 88a4: 980b883a mov r5,r19 + 88a8: 90800515 stw r2,20(r18) + 88ac: a03fe626 beq r20,zero,8848 <__d2b+0xd8> + 88b0: 2945883a add r2,r5,r5 + 88b4: 1085883a add r2,r2,r2 + 88b8: 1405883a add r2,r2,r16 + 88bc: 113fff17 ldw r4,-4(r2) + 88c0: 30fef384 addi r3,r6,-1074 + 88c4: 2820917a slli r16,r5,5 + 88c8: b0c00015 stw r3,0(r22) + 88cc: 000815c0 call 815c <__hi0bits> + 88d0: 80a1c83a sub r16,r16,r2 + 88d4: bc000015 stw r16,0(r23) + 88d8: 003fe106 br 8860 <__d2b+0xf0> + 88dc: d8800017 ldw r2,0(sp) + 88e0: 90800515 stw r2,20(r18) + 88e4: d8c00117 ldw r3,4(sp) + 88e8: 003fd106 br 8830 <__d2b+0xc0> + +000088ec <__mdiff>: + 88ec: defffb04 addi sp,sp,-20 + 88f0: dc000015 stw r16,0(sp) + 88f4: 2821883a mov r16,r5 + 88f8: dc800215 stw r18,8(sp) + 88fc: 300b883a mov r5,r6 + 8900: 2025883a mov r18,r4 + 8904: 8009883a mov r4,r16 + 8908: dc400115 stw r17,4(sp) + 890c: dfc00415 stw ra,16(sp) + 8910: dcc00315 stw r19,12(sp) + 8914: 3023883a mov r17,r6 + 8918: 00082900 call 8290 <__mcmp> + 891c: 10004226 beq r2,zero,8a28 <__mdiff+0x13c> + 8920: 10005016 blt r2,zero,8a64 <__mdiff+0x178> + 8924: 0027883a mov r19,zero + 8928: 81400117 ldw r5,4(r16) + 892c: 9009883a mov r4,r18 + 8930: 00086b40 call 86b4 <_Balloc> + 8934: 1019883a mov r12,r2 + 8938: 82800417 ldw r10,16(r16) + 893c: 88800417 ldw r2,16(r17) + 8940: 81800504 addi r6,r16,20 + 8944: 5287883a add r3,r10,r10 + 8948: 1085883a add r2,r2,r2 + 894c: 18c7883a add r3,r3,r3 + 8950: 1085883a add r2,r2,r2 + 8954: 8a000504 addi r8,r17,20 + 8958: 64c00315 stw r19,12(r12) + 895c: 30db883a add r13,r6,r3 + 8960: 4097883a add r11,r8,r2 + 8964: 61c00504 addi r7,r12,20 + 8968: 0013883a mov r9,zero + 896c: 31000017 ldw r4,0(r6) + 8970: 41400017 ldw r5,0(r8) + 8974: 42000104 addi r8,r8,4 + 8978: 20bfffcc andi r2,r4,65535 + 897c: 28ffffcc andi r3,r5,65535 + 8980: 10c5c83a sub r2,r2,r3 + 8984: 1245883a add r2,r2,r9 + 8988: 2008d43a srli r4,r4,16 + 898c: 280ad43a srli r5,r5,16 + 8990: 1007d43a srai r3,r2,16 + 8994: 3880000d sth r2,0(r7) + 8998: 2149c83a sub r4,r4,r5 + 899c: 20c9883a add r4,r4,r3 + 89a0: 3900008d sth r4,2(r7) + 89a4: 31800104 addi r6,r6,4 + 89a8: 39c00104 addi r7,r7,4 + 89ac: 2013d43a srai r9,r4,16 + 89b0: 42ffee36 bltu r8,r11,896c <__mdiff+0x80> + 89b4: 33400c2e bgeu r6,r13,89e8 <__mdiff+0xfc> + 89b8: 30800017 ldw r2,0(r6) + 89bc: 31800104 addi r6,r6,4 + 89c0: 10ffffcc andi r3,r2,65535 + 89c4: 1a47883a add r3,r3,r9 + 89c8: 1004d43a srli r2,r2,16 + 89cc: 1809d43a srai r4,r3,16 + 89d0: 38c0000d sth r3,0(r7) + 89d4: 1105883a add r2,r2,r4 + 89d8: 3880008d sth r2,2(r7) + 89dc: 1013d43a srai r9,r2,16 + 89e0: 39c00104 addi r7,r7,4 + 89e4: 337ff436 bltu r6,r13,89b8 <__mdiff+0xcc> + 89e8: 38bfff17 ldw r2,-4(r7) + 89ec: 38ffff04 addi r3,r7,-4 + 89f0: 1000041e bne r2,zero,8a04 <__mdiff+0x118> + 89f4: 18ffff04 addi r3,r3,-4 + 89f8: 18800017 ldw r2,0(r3) + 89fc: 52bfffc4 addi r10,r10,-1 + 8a00: 103ffc26 beq r2,zero,89f4 <__mdiff+0x108> + 8a04: 6005883a mov r2,r12 + 8a08: 62800415 stw r10,16(r12) + 8a0c: dfc00417 ldw ra,16(sp) + 8a10: dcc00317 ldw r19,12(sp) + 8a14: dc800217 ldw r18,8(sp) + 8a18: dc400117 ldw r17,4(sp) + 8a1c: dc000017 ldw r16,0(sp) + 8a20: dec00504 addi sp,sp,20 + 8a24: f800283a ret + 8a28: 9009883a mov r4,r18 + 8a2c: 000b883a mov r5,zero + 8a30: 00086b40 call 86b4 <_Balloc> + 8a34: 1019883a mov r12,r2 + 8a38: 00800044 movi r2,1 + 8a3c: 60800415 stw r2,16(r12) + 8a40: 6005883a mov r2,r12 + 8a44: 60000515 stw zero,20(r12) + 8a48: dfc00417 ldw ra,16(sp) + 8a4c: dcc00317 ldw r19,12(sp) + 8a50: dc800217 ldw r18,8(sp) + 8a54: dc400117 ldw r17,4(sp) + 8a58: dc000017 ldw r16,0(sp) + 8a5c: dec00504 addi sp,sp,20 + 8a60: f800283a ret + 8a64: 880d883a mov r6,r17 + 8a68: 04c00044 movi r19,1 + 8a6c: 8023883a mov r17,r16 + 8a70: 3021883a mov r16,r6 + 8a74: 003fac06 br 8928 <__mdiff+0x3c> + +00008a78 <__lshift>: + 8a78: defff904 addi sp,sp,-28 + 8a7c: 28800417 ldw r2,16(r5) + 8a80: dc000015 stw r16,0(sp) + 8a84: 3021d17a srai r16,r6,5 + 8a88: 28c00217 ldw r3,8(r5) + 8a8c: 10800044 addi r2,r2,1 + 8a90: dc400115 stw r17,4(sp) + 8a94: 80a3883a add r17,r16,r2 + 8a98: dd400515 stw r21,20(sp) + 8a9c: dd000415 stw r20,16(sp) + 8aa0: dc800215 stw r18,8(sp) + 8aa4: dfc00615 stw ra,24(sp) + 8aa8: 2825883a mov r18,r5 + 8aac: dcc00315 stw r19,12(sp) + 8ab0: 3029883a mov r20,r6 + 8ab4: 202b883a mov r21,r4 + 8ab8: 29400117 ldw r5,4(r5) + 8abc: 1c40030e bge r3,r17,8acc <__lshift+0x54> + 8ac0: 18c7883a add r3,r3,r3 + 8ac4: 29400044 addi r5,r5,1 + 8ac8: 1c7ffd16 blt r3,r17,8ac0 <__lshift+0x48> + 8acc: a809883a mov r4,r21 + 8ad0: 00086b40 call 86b4 <_Balloc> + 8ad4: 1027883a mov r19,r2 + 8ad8: 11400504 addi r5,r2,20 + 8adc: 0400090e bge zero,r16,8b04 <__lshift+0x8c> + 8ae0: 2805883a mov r2,r5 + 8ae4: 0007883a mov r3,zero + 8ae8: 18c00044 addi r3,r3,1 + 8aec: 10000015 stw zero,0(r2) + 8af0: 10800104 addi r2,r2,4 + 8af4: 80fffc1e bne r16,r3,8ae8 <__lshift+0x70> + 8af8: 8405883a add r2,r16,r16 + 8afc: 1085883a add r2,r2,r2 + 8b00: 288b883a add r5,r5,r2 + 8b04: 90800417 ldw r2,16(r18) + 8b08: 91000504 addi r4,r18,20 + 8b0c: a18007cc andi r6,r20,31 + 8b10: 1085883a add r2,r2,r2 + 8b14: 1085883a add r2,r2,r2 + 8b18: 208f883a add r7,r4,r2 + 8b1c: 30001e26 beq r6,zero,8b98 <__lshift+0x120> + 8b20: 00800804 movi r2,32 + 8b24: 1191c83a sub r8,r2,r6 + 8b28: 0007883a mov r3,zero + 8b2c: 20800017 ldw r2,0(r4) + 8b30: 1184983a sll r2,r2,r6 + 8b34: 1884b03a or r2,r3,r2 + 8b38: 28800015 stw r2,0(r5) + 8b3c: 20c00017 ldw r3,0(r4) + 8b40: 21000104 addi r4,r4,4 + 8b44: 29400104 addi r5,r5,4 + 8b48: 1a06d83a srl r3,r3,r8 + 8b4c: 21fff736 bltu r4,r7,8b2c <__lshift+0xb4> + 8b50: 28c00015 stw r3,0(r5) + 8b54: 18000126 beq r3,zero,8b5c <__lshift+0xe4> + 8b58: 8c400044 addi r17,r17,1 + 8b5c: 88bfffc4 addi r2,r17,-1 + 8b60: 98800415 stw r2,16(r19) + 8b64: a809883a mov r4,r21 + 8b68: 900b883a mov r5,r18 + 8b6c: 00081340 call 8134 <_Bfree> + 8b70: 9805883a mov r2,r19 + 8b74: dfc00617 ldw ra,24(sp) + 8b78: dd400517 ldw r21,20(sp) + 8b7c: dd000417 ldw r20,16(sp) + 8b80: dcc00317 ldw r19,12(sp) + 8b84: dc800217 ldw r18,8(sp) + 8b88: dc400117 ldw r17,4(sp) + 8b8c: dc000017 ldw r16,0(sp) + 8b90: dec00704 addi sp,sp,28 + 8b94: f800283a ret + 8b98: 20800017 ldw r2,0(r4) + 8b9c: 21000104 addi r4,r4,4 + 8ba0: 28800015 stw r2,0(r5) + 8ba4: 29400104 addi r5,r5,4 + 8ba8: 21ffec2e bgeu r4,r7,8b5c <__lshift+0xe4> + 8bac: 20800017 ldw r2,0(r4) + 8bb0: 21000104 addi r4,r4,4 + 8bb4: 28800015 stw r2,0(r5) + 8bb8: 29400104 addi r5,r5,4 + 8bbc: 21fff636 bltu r4,r7,8b98 <__lshift+0x120> + 8bc0: 003fe606 br 8b5c <__lshift+0xe4> + +00008bc4 <__multiply>: + 8bc4: defff004 addi sp,sp,-64 + 8bc8: dc800815 stw r18,32(sp) + 8bcc: dc400715 stw r17,28(sp) + 8bd0: 2c800417 ldw r18,16(r5) + 8bd4: 34400417 ldw r17,16(r6) + 8bd8: dcc00915 stw r19,36(sp) + 8bdc: dc000615 stw r16,24(sp) + 8be0: dfc00f15 stw ra,60(sp) + 8be4: df000e15 stw fp,56(sp) + 8be8: ddc00d15 stw r23,52(sp) + 8bec: dd800c15 stw r22,48(sp) + 8bf0: dd400b15 stw r21,44(sp) + 8bf4: dd000a15 stw r20,40(sp) + 8bf8: 2821883a mov r16,r5 + 8bfc: 3027883a mov r19,r6 + 8c00: 9440040e bge r18,r17,8c14 <__multiply+0x50> + 8c04: 8825883a mov r18,r17 + 8c08: 2c400417 ldw r17,16(r5) + 8c0c: 2827883a mov r19,r5 + 8c10: 3021883a mov r16,r6 + 8c14: 80800217 ldw r2,8(r16) + 8c18: 9447883a add r3,r18,r17 + 8c1c: d8c00415 stw r3,16(sp) + 8c20: 81400117 ldw r5,4(r16) + 8c24: 10c0010e bge r2,r3,8c2c <__multiply+0x68> + 8c28: 29400044 addi r5,r5,1 + 8c2c: 00086b40 call 86b4 <_Balloc> + 8c30: d8800515 stw r2,20(sp) + 8c34: d9000417 ldw r4,16(sp) + 8c38: d8c00517 ldw r3,20(sp) + 8c3c: 2105883a add r2,r4,r4 + 8c40: 1085883a add r2,r2,r2 + 8c44: 19000504 addi r4,r3,20 + 8c48: 2085883a add r2,r4,r2 + 8c4c: d8800315 stw r2,12(sp) + 8c50: 2080052e bgeu r4,r2,8c68 <__multiply+0xa4> + 8c54: 2005883a mov r2,r4 + 8c58: d8c00317 ldw r3,12(sp) + 8c5c: 10000015 stw zero,0(r2) + 8c60: 10800104 addi r2,r2,4 + 8c64: 10fffc36 bltu r2,r3,8c58 <__multiply+0x94> + 8c68: 8c45883a add r2,r17,r17 + 8c6c: 9487883a add r3,r18,r18 + 8c70: 9dc00504 addi r23,r19,20 + 8c74: 1085883a add r2,r2,r2 + 8c78: 84000504 addi r16,r16,20 + 8c7c: 18c7883a add r3,r3,r3 + 8c80: b885883a add r2,r23,r2 + 8c84: dc000015 stw r16,0(sp) + 8c88: d8800215 stw r2,8(sp) + 8c8c: 80f9883a add fp,r16,r3 + 8c90: b880432e bgeu r23,r2,8da0 <__multiply+0x1dc> + 8c94: d9000115 stw r4,4(sp) + 8c98: b9000017 ldw r4,0(r23) + 8c9c: 253fffcc andi r20,r4,65535 + 8ca0: a0001a26 beq r20,zero,8d0c <__multiply+0x148> + 8ca4: dcc00017 ldw r19,0(sp) + 8ca8: dc800117 ldw r18,4(sp) + 8cac: 002b883a mov r21,zero + 8cb0: 9c400017 ldw r17,0(r19) + 8cb4: 94000017 ldw r16,0(r18) + 8cb8: a009883a mov r4,r20 + 8cbc: 897fffcc andi r5,r17,65535 + 8cc0: 0002b2c0 call 2b2c <__mulsi3> + 8cc4: 880ad43a srli r5,r17,16 + 8cc8: 80ffffcc andi r3,r16,65535 + 8ccc: a8c7883a add r3,r21,r3 + 8cd0: a009883a mov r4,r20 + 8cd4: 10e3883a add r17,r2,r3 + 8cd8: 8020d43a srli r16,r16,16 + 8cdc: 0002b2c0 call 2b2c <__mulsi3> + 8ce0: 8806d43a srli r3,r17,16 + 8ce4: 1405883a add r2,r2,r16 + 8ce8: 9cc00104 addi r19,r19,4 + 8cec: 1887883a add r3,r3,r2 + 8cf0: 90c0008d sth r3,2(r18) + 8cf4: 9440000d sth r17,0(r18) + 8cf8: 182ad43a srli r21,r3,16 + 8cfc: 94800104 addi r18,r18,4 + 8d00: 9f3feb36 bltu r19,fp,8cb0 <__multiply+0xec> + 8d04: 95400015 stw r21,0(r18) + 8d08: b9000017 ldw r4,0(r23) + 8d0c: 202ad43a srli r21,r4,16 + 8d10: a8001c26 beq r21,zero,8d84 <__multiply+0x1c0> + 8d14: d9000117 ldw r4,4(sp) + 8d18: dd000017 ldw r20,0(sp) + 8d1c: 002d883a mov r22,zero + 8d20: 24c00017 ldw r19,0(r4) + 8d24: 2025883a mov r18,r4 + 8d28: 9823883a mov r17,r19 + 8d2c: a4000017 ldw r16,0(r20) + 8d30: a809883a mov r4,r21 + 8d34: a5000104 addi r20,r20,4 + 8d38: 817fffcc andi r5,r16,65535 + 8d3c: 0002b2c0 call 2b2c <__mulsi3> + 8d40: 8806d43a srli r3,r17,16 + 8d44: 800ad43a srli r5,r16,16 + 8d48: 94c0000d sth r19,0(r18) + 8d4c: b0c7883a add r3,r22,r3 + 8d50: 10e1883a add r16,r2,r3 + 8d54: 9400008d sth r16,2(r18) + 8d58: a809883a mov r4,r21 + 8d5c: 94800104 addi r18,r18,4 + 8d60: 0002b2c0 call 2b2c <__mulsi3> + 8d64: 94400017 ldw r17,0(r18) + 8d68: 8020d43a srli r16,r16,16 + 8d6c: 88ffffcc andi r3,r17,65535 + 8d70: 10c5883a add r2,r2,r3 + 8d74: 80a7883a add r19,r16,r2 + 8d78: 982cd43a srli r22,r19,16 + 8d7c: a73feb36 bltu r20,fp,8d2c <__multiply+0x168> + 8d80: 94c00015 stw r19,0(r18) + 8d84: d8800217 ldw r2,8(sp) + 8d88: bdc00104 addi r23,r23,4 + 8d8c: b880042e bgeu r23,r2,8da0 <__multiply+0x1dc> + 8d90: d8c00117 ldw r3,4(sp) + 8d94: 18c00104 addi r3,r3,4 + 8d98: d8c00115 stw r3,4(sp) + 8d9c: 003fbe06 br 8c98 <__multiply+0xd4> + 8da0: d9000417 ldw r4,16(sp) + 8da4: 01000c0e bge zero,r4,8dd8 <__multiply+0x214> + 8da8: d8c00317 ldw r3,12(sp) + 8dac: 18bfff17 ldw r2,-4(r3) + 8db0: 18ffff04 addi r3,r3,-4 + 8db4: 10000326 beq r2,zero,8dc4 <__multiply+0x200> + 8db8: 00000706 br 8dd8 <__multiply+0x214> + 8dbc: 18800017 ldw r2,0(r3) + 8dc0: 1000051e bne r2,zero,8dd8 <__multiply+0x214> + 8dc4: d9000417 ldw r4,16(sp) + 8dc8: 18ffff04 addi r3,r3,-4 + 8dcc: 213fffc4 addi r4,r4,-1 + 8dd0: d9000415 stw r4,16(sp) + 8dd4: 203ff91e bne r4,zero,8dbc <__multiply+0x1f8> + 8dd8: d8800417 ldw r2,16(sp) + 8ddc: d8c00517 ldw r3,20(sp) + 8de0: 18800415 stw r2,16(r3) + 8de4: 1805883a mov r2,r3 + 8de8: dfc00f17 ldw ra,60(sp) + 8dec: df000e17 ldw fp,56(sp) + 8df0: ddc00d17 ldw r23,52(sp) + 8df4: dd800c17 ldw r22,48(sp) + 8df8: dd400b17 ldw r21,44(sp) + 8dfc: dd000a17 ldw r20,40(sp) + 8e00: dcc00917 ldw r19,36(sp) + 8e04: dc800817 ldw r18,32(sp) + 8e08: dc400717 ldw r17,28(sp) + 8e0c: dc000617 ldw r16,24(sp) + 8e10: dec01004 addi sp,sp,64 + 8e14: f800283a ret + +00008e18 <__i2b>: + 8e18: defffd04 addi sp,sp,-12 + 8e1c: dc000015 stw r16,0(sp) + 8e20: 04000044 movi r16,1 + 8e24: dc800115 stw r18,4(sp) + 8e28: 2825883a mov r18,r5 + 8e2c: 800b883a mov r5,r16 + 8e30: dfc00215 stw ra,8(sp) + 8e34: 00086b40 call 86b4 <_Balloc> + 8e38: 14000415 stw r16,16(r2) + 8e3c: 14800515 stw r18,20(r2) + 8e40: dfc00217 ldw ra,8(sp) + 8e44: dc800117 ldw r18,4(sp) + 8e48: dc000017 ldw r16,0(sp) + 8e4c: dec00304 addi sp,sp,12 + 8e50: f800283a ret + +00008e54 <__multadd>: + 8e54: defff604 addi sp,sp,-40 + 8e58: dd800615 stw r22,24(sp) + 8e5c: 2d800417 ldw r22,16(r5) + 8e60: df000815 stw fp,32(sp) + 8e64: ddc00715 stw r23,28(sp) + 8e68: dd400515 stw r21,20(sp) + 8e6c: dd000415 stw r20,16(sp) + 8e70: dcc00315 stw r19,12(sp) + 8e74: dc800215 stw r18,8(sp) + 8e78: dfc00915 stw ra,36(sp) + 8e7c: dc400115 stw r17,4(sp) + 8e80: dc000015 stw r16,0(sp) + 8e84: 282f883a mov r23,r5 + 8e88: 2039883a mov fp,r4 + 8e8c: 302b883a mov r21,r6 + 8e90: 3829883a mov r20,r7 + 8e94: 2c800504 addi r18,r5,20 + 8e98: 0027883a mov r19,zero + 8e9c: 94400017 ldw r17,0(r18) + 8ea0: a80b883a mov r5,r21 + 8ea4: 9cc00044 addi r19,r19,1 + 8ea8: 893fffcc andi r4,r17,65535 + 8eac: 0002b2c0 call 2b2c <__mulsi3> + 8eb0: 8808d43a srli r4,r17,16 + 8eb4: 1521883a add r16,r2,r20 + 8eb8: a80b883a mov r5,r21 + 8ebc: 0002b2c0 call 2b2c <__mulsi3> + 8ec0: 8008d43a srli r4,r16,16 + 8ec4: 843fffcc andi r16,r16,65535 + 8ec8: 1105883a add r2,r2,r4 + 8ecc: 1006943a slli r3,r2,16 + 8ed0: 1028d43a srli r20,r2,16 + 8ed4: 1c07883a add r3,r3,r16 + 8ed8: 90c00015 stw r3,0(r18) + 8edc: 94800104 addi r18,r18,4 + 8ee0: 9dbfee16 blt r19,r22,8e9c <__multadd+0x48> + 8ee4: a0000826 beq r20,zero,8f08 <__multadd+0xb4> + 8ee8: b8800217 ldw r2,8(r23) + 8eec: b080130e bge r22,r2,8f3c <__multadd+0xe8> + 8ef0: b585883a add r2,r22,r22 + 8ef4: 1085883a add r2,r2,r2 + 8ef8: 15c5883a add r2,r2,r23 + 8efc: b0c00044 addi r3,r22,1 + 8f00: 15000515 stw r20,20(r2) + 8f04: b8c00415 stw r3,16(r23) + 8f08: b805883a mov r2,r23 + 8f0c: dfc00917 ldw ra,36(sp) + 8f10: df000817 ldw fp,32(sp) + 8f14: ddc00717 ldw r23,28(sp) + 8f18: dd800617 ldw r22,24(sp) + 8f1c: dd400517 ldw r21,20(sp) + 8f20: dd000417 ldw r20,16(sp) + 8f24: dcc00317 ldw r19,12(sp) + 8f28: dc800217 ldw r18,8(sp) + 8f2c: dc400117 ldw r17,4(sp) + 8f30: dc000017 ldw r16,0(sp) + 8f34: dec00a04 addi sp,sp,40 + 8f38: f800283a ret + 8f3c: b9400117 ldw r5,4(r23) + 8f40: e009883a mov r4,fp + 8f44: 29400044 addi r5,r5,1 + 8f48: 00086b40 call 86b4 <_Balloc> + 8f4c: b9800417 ldw r6,16(r23) + 8f50: b9400304 addi r5,r23,12 + 8f54: 11000304 addi r4,r2,12 + 8f58: 318d883a add r6,r6,r6 + 8f5c: 318d883a add r6,r6,r6 + 8f60: 31800204 addi r6,r6,8 + 8f64: 1023883a mov r17,r2 + 8f68: 0007f1c0 call 7f1c + 8f6c: b80b883a mov r5,r23 + 8f70: e009883a mov r4,fp + 8f74: 00081340 call 8134 <_Bfree> + 8f78: 882f883a mov r23,r17 + 8f7c: 003fdc06 br 8ef0 <__multadd+0x9c> + +00008f80 <__pow5mult>: + 8f80: defffa04 addi sp,sp,-24 + 8f84: 308000cc andi r2,r6,3 + 8f88: dd000415 stw r20,16(sp) + 8f8c: dcc00315 stw r19,12(sp) + 8f90: dc000015 stw r16,0(sp) + 8f94: dfc00515 stw ra,20(sp) + 8f98: dc800215 stw r18,8(sp) + 8f9c: dc400115 stw r17,4(sp) + 8fa0: 3021883a mov r16,r6 + 8fa4: 2027883a mov r19,r4 + 8fa8: 2829883a mov r20,r5 + 8fac: 10002b1e bne r2,zero,905c <__pow5mult+0xdc> + 8fb0: 8025d0ba srai r18,r16,2 + 8fb4: 90001b26 beq r18,zero,9024 <__pow5mult+0xa4> + 8fb8: 9c001217 ldw r16,72(r19) + 8fbc: 8000081e bne r16,zero,8fe0 <__pow5mult+0x60> + 8fc0: 00003006 br 9084 <__pow5mult+0x104> + 8fc4: 800b883a mov r5,r16 + 8fc8: 800d883a mov r6,r16 + 8fcc: 9809883a mov r4,r19 + 8fd0: 90001426 beq r18,zero,9024 <__pow5mult+0xa4> + 8fd4: 80800017 ldw r2,0(r16) + 8fd8: 10001b26 beq r2,zero,9048 <__pow5mult+0xc8> + 8fdc: 1021883a mov r16,r2 + 8fe0: 9080004c andi r2,r18,1 + 8fe4: 1005003a cmpeq r2,r2,zero + 8fe8: 9025d07a srai r18,r18,1 + 8fec: 800d883a mov r6,r16 + 8ff0: 9809883a mov r4,r19 + 8ff4: a00b883a mov r5,r20 + 8ff8: 103ff21e bne r2,zero,8fc4 <__pow5mult+0x44> + 8ffc: 0008bc40 call 8bc4 <__multiply> + 9000: a00b883a mov r5,r20 + 9004: 9809883a mov r4,r19 + 9008: 1023883a mov r17,r2 + 900c: 00081340 call 8134 <_Bfree> + 9010: 8829883a mov r20,r17 + 9014: 800b883a mov r5,r16 + 9018: 800d883a mov r6,r16 + 901c: 9809883a mov r4,r19 + 9020: 903fec1e bne r18,zero,8fd4 <__pow5mult+0x54> + 9024: a005883a mov r2,r20 + 9028: dfc00517 ldw ra,20(sp) + 902c: dd000417 ldw r20,16(sp) + 9030: dcc00317 ldw r19,12(sp) + 9034: dc800217 ldw r18,8(sp) + 9038: dc400117 ldw r17,4(sp) + 903c: dc000017 ldw r16,0(sp) + 9040: dec00604 addi sp,sp,24 + 9044: f800283a ret + 9048: 0008bc40 call 8bc4 <__multiply> + 904c: 80800015 stw r2,0(r16) + 9050: 1021883a mov r16,r2 + 9054: 10000015 stw zero,0(r2) + 9058: 003fe106 br 8fe0 <__pow5mult+0x60> + 905c: 1085883a add r2,r2,r2 + 9060: 00c00074 movhi r3,1 + 9064: 18c11504 addi r3,r3,1108 + 9068: 1085883a add r2,r2,r2 + 906c: 10c5883a add r2,r2,r3 + 9070: 11bfff17 ldw r6,-4(r2) + 9074: 000f883a mov r7,zero + 9078: 0008e540 call 8e54 <__multadd> + 907c: 1029883a mov r20,r2 + 9080: 003fcb06 br 8fb0 <__pow5mult+0x30> + 9084: 9809883a mov r4,r19 + 9088: 01409c44 movi r5,625 + 908c: 0008e180 call 8e18 <__i2b> + 9090: 98801215 stw r2,72(r19) + 9094: 1021883a mov r16,r2 + 9098: 10000015 stw zero,0(r2) + 909c: 003fd006 br 8fe0 <__pow5mult+0x60> + +000090a0 <__s2b>: + 90a0: defff904 addi sp,sp,-28 + 90a4: dcc00315 stw r19,12(sp) + 90a8: dc800215 stw r18,8(sp) + 90ac: 2827883a mov r19,r5 + 90b0: 2025883a mov r18,r4 + 90b4: 01400244 movi r5,9 + 90b8: 39000204 addi r4,r7,8 + 90bc: dd000415 stw r20,16(sp) + 90c0: dc400115 stw r17,4(sp) + 90c4: dfc00615 stw ra,24(sp) + 90c8: dd400515 stw r21,20(sp) + 90cc: dc000015 stw r16,0(sp) + 90d0: 3829883a mov r20,r7 + 90d4: 3023883a mov r17,r6 + 90d8: 0002a5c0 call 2a5c <__divsi3> + 90dc: 00c00044 movi r3,1 + 90e0: 1880350e bge r3,r2,91b8 <__s2b+0x118> + 90e4: 000b883a mov r5,zero + 90e8: 18c7883a add r3,r3,r3 + 90ec: 29400044 addi r5,r5,1 + 90f0: 18bffd16 blt r3,r2,90e8 <__s2b+0x48> + 90f4: 9009883a mov r4,r18 + 90f8: 00086b40 call 86b4 <_Balloc> + 90fc: 1011883a mov r8,r2 + 9100: d8800717 ldw r2,28(sp) + 9104: 00c00044 movi r3,1 + 9108: 01800244 movi r6,9 + 910c: 40800515 stw r2,20(r8) + 9110: 40c00415 stw r3,16(r8) + 9114: 3440260e bge r6,r17,91b0 <__s2b+0x110> + 9118: 3021883a mov r16,r6 + 911c: 99ab883a add r21,r19,r6 + 9120: 9c05883a add r2,r19,r16 + 9124: 11c00007 ldb r7,0(r2) + 9128: 400b883a mov r5,r8 + 912c: 9009883a mov r4,r18 + 9130: 39fff404 addi r7,r7,-48 + 9134: 01800284 movi r6,10 + 9138: 0008e540 call 8e54 <__multadd> + 913c: 84000044 addi r16,r16,1 + 9140: 1011883a mov r8,r2 + 9144: 8c3ff61e bne r17,r16,9120 <__s2b+0x80> + 9148: ac45883a add r2,r21,r17 + 914c: 117ffe04 addi r5,r2,-8 + 9150: 880d883a mov r6,r17 + 9154: 35000c0e bge r6,r20,9188 <__s2b+0xe8> + 9158: a185c83a sub r2,r20,r6 + 915c: 2821883a mov r16,r5 + 9160: 28a3883a add r17,r5,r2 + 9164: 81c00007 ldb r7,0(r16) + 9168: 400b883a mov r5,r8 + 916c: 9009883a mov r4,r18 + 9170: 39fff404 addi r7,r7,-48 + 9174: 01800284 movi r6,10 + 9178: 0008e540 call 8e54 <__multadd> + 917c: 84000044 addi r16,r16,1 + 9180: 1011883a mov r8,r2 + 9184: 847ff71e bne r16,r17,9164 <__s2b+0xc4> + 9188: 4005883a mov r2,r8 + 918c: dfc00617 ldw ra,24(sp) + 9190: dd400517 ldw r21,20(sp) + 9194: dd000417 ldw r20,16(sp) + 9198: dcc00317 ldw r19,12(sp) + 919c: dc800217 ldw r18,8(sp) + 91a0: dc400117 ldw r17,4(sp) + 91a4: dc000017 ldw r16,0(sp) + 91a8: dec00704 addi sp,sp,28 + 91ac: f800283a ret + 91b0: 99400284 addi r5,r19,10 + 91b4: 003fe706 br 9154 <__s2b+0xb4> + 91b8: 000b883a mov r5,zero + 91bc: 003fcd06 br 90f4 <__s2b+0x54> + +000091c0 <_realloc_r>: + 91c0: defff404 addi sp,sp,-48 + 91c4: dd800815 stw r22,32(sp) + 91c8: dc800415 stw r18,16(sp) + 91cc: dc400315 stw r17,12(sp) + 91d0: dfc00b15 stw ra,44(sp) + 91d4: df000a15 stw fp,40(sp) + 91d8: ddc00915 stw r23,36(sp) + 91dc: dd400715 stw r21,28(sp) + 91e0: dd000615 stw r20,24(sp) + 91e4: dcc00515 stw r19,20(sp) + 91e8: dc000215 stw r16,8(sp) + 91ec: 2825883a mov r18,r5 + 91f0: 3023883a mov r17,r6 + 91f4: 202d883a mov r22,r4 + 91f8: 2800c926 beq r5,zero,9520 <_realloc_r+0x360> + 91fc: 000ca880 call ca88 <__malloc_lock> + 9200: 943ffe04 addi r16,r18,-8 + 9204: 88c002c4 addi r3,r17,11 + 9208: 00800584 movi r2,22 + 920c: 82000117 ldw r8,4(r16) + 9210: 10c01b2e bgeu r2,r3,9280 <_realloc_r+0xc0> + 9214: 00bffe04 movi r2,-8 + 9218: 188e703a and r7,r3,r2 + 921c: 3839883a mov fp,r7 + 9220: 38001a16 blt r7,zero,928c <_realloc_r+0xcc> + 9224: e4401936 bltu fp,r17,928c <_realloc_r+0xcc> + 9228: 013fff04 movi r4,-4 + 922c: 4126703a and r19,r8,r4 + 9230: 99c02616 blt r19,r7,92cc <_realloc_r+0x10c> + 9234: 802b883a mov r21,r16 + 9238: 9829883a mov r20,r19 + 923c: 84000204 addi r16,r16,8 + 9240: a80f883a mov r7,r21 + 9244: a70dc83a sub r6,r20,fp + 9248: 008003c4 movi r2,15 + 924c: 1180c136 bltu r2,r6,9554 <_realloc_r+0x394> + 9250: 38800117 ldw r2,4(r7) + 9254: a549883a add r4,r20,r21 + 9258: 1080004c andi r2,r2,1 + 925c: a084b03a or r2,r20,r2 + 9260: 38800115 stw r2,4(r7) + 9264: 20c00117 ldw r3,4(r4) + 9268: 18c00054 ori r3,r3,1 + 926c: 20c00115 stw r3,4(r4) + 9270: b009883a mov r4,r22 + 9274: 000caa80 call caa8 <__malloc_unlock> + 9278: 8023883a mov r17,r16 + 927c: 00000606 br 9298 <_realloc_r+0xd8> + 9280: 01c00404 movi r7,16 + 9284: 3839883a mov fp,r7 + 9288: e47fe72e bgeu fp,r17,9228 <_realloc_r+0x68> + 928c: 00800304 movi r2,12 + 9290: 0023883a mov r17,zero + 9294: b0800015 stw r2,0(r22) + 9298: 8805883a mov r2,r17 + 929c: dfc00b17 ldw ra,44(sp) + 92a0: df000a17 ldw fp,40(sp) + 92a4: ddc00917 ldw r23,36(sp) + 92a8: dd800817 ldw r22,32(sp) + 92ac: dd400717 ldw r21,28(sp) + 92b0: dd000617 ldw r20,24(sp) + 92b4: dcc00517 ldw r19,20(sp) + 92b8: dc800417 ldw r18,16(sp) + 92bc: dc400317 ldw r17,12(sp) + 92c0: dc000217 ldw r16,8(sp) + 92c4: dec00c04 addi sp,sp,48 + 92c8: f800283a ret + 92cc: 00800074 movhi r2,1 + 92d0: 10827004 addi r2,r2,2496 + 92d4: 12400217 ldw r9,8(r2) + 92d8: 84cd883a add r6,r16,r19 + 92dc: 802b883a mov r21,r16 + 92e0: 3240b926 beq r6,r9,95c8 <_realloc_r+0x408> + 92e4: 31400117 ldw r5,4(r6) + 92e8: 00bfff84 movi r2,-2 + 92ec: 2884703a and r2,r5,r2 + 92f0: 1185883a add r2,r2,r6 + 92f4: 10c00117 ldw r3,4(r2) + 92f8: 18c0004c andi r3,r3,1 + 92fc: 1807003a cmpeq r3,r3,zero + 9300: 1800a326 beq r3,zero,9590 <_realloc_r+0x3d0> + 9304: 2908703a and r4,r5,r4 + 9308: 9929883a add r20,r19,r4 + 930c: a1c0a30e bge r20,r7,959c <_realloc_r+0x3dc> + 9310: 4080004c andi r2,r8,1 + 9314: 1000551e bne r2,zero,946c <_realloc_r+0x2ac> + 9318: 80800017 ldw r2,0(r16) + 931c: 80afc83a sub r23,r16,r2 + 9320: b8c00117 ldw r3,4(r23) + 9324: 00bfff04 movi r2,-4 + 9328: 1884703a and r2,r3,r2 + 932c: 30002e26 beq r6,zero,93e8 <_realloc_r+0x228> + 9330: 3240b926 beq r6,r9,9618 <_realloc_r+0x458> + 9334: 98a9883a add r20,r19,r2 + 9338: 2509883a add r4,r4,r20 + 933c: d9000015 stw r4,0(sp) + 9340: 21c02a16 blt r4,r7,93ec <_realloc_r+0x22c> + 9344: 30800317 ldw r2,12(r6) + 9348: 30c00217 ldw r3,8(r6) + 934c: 01400904 movi r5,36 + 9350: 99bfff04 addi r6,r19,-4 + 9354: 18800315 stw r2,12(r3) + 9358: 10c00215 stw r3,8(r2) + 935c: b9000317 ldw r4,12(r23) + 9360: b8800217 ldw r2,8(r23) + 9364: b82b883a mov r21,r23 + 9368: bc000204 addi r16,r23,8 + 936c: 20800215 stw r2,8(r4) + 9370: 11000315 stw r4,12(r2) + 9374: 2980e436 bltu r5,r6,9708 <_realloc_r+0x548> + 9378: 008004c4 movi r2,19 + 937c: 9009883a mov r4,r18 + 9380: 8011883a mov r8,r16 + 9384: 11800f2e bgeu r2,r6,93c4 <_realloc_r+0x204> + 9388: 90800017 ldw r2,0(r18) + 938c: ba000404 addi r8,r23,16 + 9390: 91000204 addi r4,r18,8 + 9394: b8800215 stw r2,8(r23) + 9398: 90c00117 ldw r3,4(r18) + 939c: 008006c4 movi r2,27 + 93a0: b8c00315 stw r3,12(r23) + 93a4: 1180072e bgeu r2,r6,93c4 <_realloc_r+0x204> + 93a8: 90c00217 ldw r3,8(r18) + 93ac: ba000604 addi r8,r23,24 + 93b0: 91000404 addi r4,r18,16 + 93b4: b8c00415 stw r3,16(r23) + 93b8: 90800317 ldw r2,12(r18) + 93bc: b8800515 stw r2,20(r23) + 93c0: 3140e726 beq r6,r5,9760 <_realloc_r+0x5a0> + 93c4: 20800017 ldw r2,0(r4) + 93c8: dd000017 ldw r20,0(sp) + 93cc: b80f883a mov r7,r23 + 93d0: 40800015 stw r2,0(r8) + 93d4: 20c00117 ldw r3,4(r4) + 93d8: 40c00115 stw r3,4(r8) + 93dc: 20800217 ldw r2,8(r4) + 93e0: 40800215 stw r2,8(r8) + 93e4: 003f9706 br 9244 <_realloc_r+0x84> + 93e8: 98a9883a add r20,r19,r2 + 93ec: a1c01f16 blt r20,r7,946c <_realloc_r+0x2ac> + 93f0: b8c00317 ldw r3,12(r23) + 93f4: b8800217 ldw r2,8(r23) + 93f8: 99bfff04 addi r6,r19,-4 + 93fc: 01400904 movi r5,36 + 9400: b82b883a mov r21,r23 + 9404: 18800215 stw r2,8(r3) + 9408: 10c00315 stw r3,12(r2) + 940c: bc000204 addi r16,r23,8 + 9410: 2980c336 bltu r5,r6,9720 <_realloc_r+0x560> + 9414: 008004c4 movi r2,19 + 9418: 9009883a mov r4,r18 + 941c: 8011883a mov r8,r16 + 9420: 11800f2e bgeu r2,r6,9460 <_realloc_r+0x2a0> + 9424: 90800017 ldw r2,0(r18) + 9428: ba000404 addi r8,r23,16 + 942c: 91000204 addi r4,r18,8 + 9430: b8800215 stw r2,8(r23) + 9434: 90c00117 ldw r3,4(r18) + 9438: 008006c4 movi r2,27 + 943c: b8c00315 stw r3,12(r23) + 9440: 1180072e bgeu r2,r6,9460 <_realloc_r+0x2a0> + 9444: 90c00217 ldw r3,8(r18) + 9448: ba000604 addi r8,r23,24 + 944c: 91000404 addi r4,r18,16 + 9450: b8c00415 stw r3,16(r23) + 9454: 90800317 ldw r2,12(r18) + 9458: b8800515 stw r2,20(r23) + 945c: 3140c726 beq r6,r5,977c <_realloc_r+0x5bc> + 9460: 20800017 ldw r2,0(r4) + 9464: b80f883a mov r7,r23 + 9468: 003fd906 br 93d0 <_realloc_r+0x210> + 946c: 880b883a mov r5,r17 + 9470: b009883a mov r4,r22 + 9474: 00076f80 call 76f8 <_malloc_r> + 9478: 1023883a mov r17,r2 + 947c: 10002526 beq r2,zero,9514 <_realloc_r+0x354> + 9480: 80800117 ldw r2,4(r16) + 9484: 00ffff84 movi r3,-2 + 9488: 893ffe04 addi r4,r17,-8 + 948c: 10c4703a and r2,r2,r3 + 9490: 8085883a add r2,r16,r2 + 9494: 20809526 beq r4,r2,96ec <_realloc_r+0x52c> + 9498: 99bfff04 addi r6,r19,-4 + 949c: 01c00904 movi r7,36 + 94a0: 39804536 bltu r7,r6,95b8 <_realloc_r+0x3f8> + 94a4: 008004c4 movi r2,19 + 94a8: 9009883a mov r4,r18 + 94ac: 880b883a mov r5,r17 + 94b0: 11800f2e bgeu r2,r6,94f0 <_realloc_r+0x330> + 94b4: 90800017 ldw r2,0(r18) + 94b8: 89400204 addi r5,r17,8 + 94bc: 91000204 addi r4,r18,8 + 94c0: 88800015 stw r2,0(r17) + 94c4: 90c00117 ldw r3,4(r18) + 94c8: 008006c4 movi r2,27 + 94cc: 88c00115 stw r3,4(r17) + 94d0: 1180072e bgeu r2,r6,94f0 <_realloc_r+0x330> + 94d4: 90c00217 ldw r3,8(r18) + 94d8: 89400404 addi r5,r17,16 + 94dc: 91000404 addi r4,r18,16 + 94e0: 88c00215 stw r3,8(r17) + 94e4: 90800317 ldw r2,12(r18) + 94e8: 88800315 stw r2,12(r17) + 94ec: 31c09126 beq r6,r7,9734 <_realloc_r+0x574> + 94f0: 20800017 ldw r2,0(r4) + 94f4: 28800015 stw r2,0(r5) + 94f8: 20c00117 ldw r3,4(r4) + 94fc: 28c00115 stw r3,4(r5) + 9500: 20800217 ldw r2,8(r4) + 9504: 28800215 stw r2,8(r5) + 9508: 900b883a mov r5,r18 + 950c: b009883a mov r4,r22 + 9510: 0006b700 call 6b70 <_free_r> + 9514: b009883a mov r4,r22 + 9518: 000caa80 call caa8 <__malloc_unlock> + 951c: 003f5e06 br 9298 <_realloc_r+0xd8> + 9520: 300b883a mov r5,r6 + 9524: dfc00b17 ldw ra,44(sp) + 9528: df000a17 ldw fp,40(sp) + 952c: ddc00917 ldw r23,36(sp) + 9530: dd800817 ldw r22,32(sp) + 9534: dd400717 ldw r21,28(sp) + 9538: dd000617 ldw r20,24(sp) + 953c: dcc00517 ldw r19,20(sp) + 9540: dc800417 ldw r18,16(sp) + 9544: dc400317 ldw r17,12(sp) + 9548: dc000217 ldw r16,8(sp) + 954c: dec00c04 addi sp,sp,48 + 9550: 00076f81 jmpi 76f8 <_malloc_r> + 9554: 38800117 ldw r2,4(r7) + 9558: e54b883a add r5,fp,r21 + 955c: 31000054 ori r4,r6,1 + 9560: 1080004c andi r2,r2,1 + 9564: 1704b03a or r2,r2,fp + 9568: 38800115 stw r2,4(r7) + 956c: 29000115 stw r4,4(r5) + 9570: 2987883a add r3,r5,r6 + 9574: 18800117 ldw r2,4(r3) + 9578: 29400204 addi r5,r5,8 + 957c: b009883a mov r4,r22 + 9580: 10800054 ori r2,r2,1 + 9584: 18800115 stw r2,4(r3) + 9588: 0006b700 call 6b70 <_free_r> + 958c: 003f3806 br 9270 <_realloc_r+0xb0> + 9590: 000d883a mov r6,zero + 9594: 0009883a mov r4,zero + 9598: 003f5d06 br 9310 <_realloc_r+0x150> + 959c: 30c00217 ldw r3,8(r6) + 95a0: 30800317 ldw r2,12(r6) + 95a4: 800f883a mov r7,r16 + 95a8: 84000204 addi r16,r16,8 + 95ac: 10c00215 stw r3,8(r2) + 95b0: 18800315 stw r2,12(r3) + 95b4: 003f2306 br 9244 <_realloc_r+0x84> + 95b8: 8809883a mov r4,r17 + 95bc: 900b883a mov r5,r18 + 95c0: 0007fbc0 call 7fbc + 95c4: 003fd006 br 9508 <_realloc_r+0x348> + 95c8: 30800117 ldw r2,4(r6) + 95cc: e0c00404 addi r3,fp,16 + 95d0: 1108703a and r4,r2,r4 + 95d4: 9905883a add r2,r19,r4 + 95d8: 10ff4d16 blt r2,r3,9310 <_realloc_r+0x150> + 95dc: 1705c83a sub r2,r2,fp + 95e0: 870b883a add r5,r16,fp + 95e4: 10800054 ori r2,r2,1 + 95e8: 28800115 stw r2,4(r5) + 95ec: 80c00117 ldw r3,4(r16) + 95f0: 00800074 movhi r2,1 + 95f4: 10827004 addi r2,r2,2496 + 95f8: b009883a mov r4,r22 + 95fc: 18c0004c andi r3,r3,1 + 9600: e0c6b03a or r3,fp,r3 + 9604: 11400215 stw r5,8(r2) + 9608: 80c00115 stw r3,4(r16) + 960c: 000caa80 call caa8 <__malloc_unlock> + 9610: 84400204 addi r17,r16,8 + 9614: 003f2006 br 9298 <_realloc_r+0xd8> + 9618: 98a9883a add r20,r19,r2 + 961c: 2509883a add r4,r4,r20 + 9620: e0800404 addi r2,fp,16 + 9624: d9000115 stw r4,4(sp) + 9628: 20bf7016 blt r4,r2,93ec <_realloc_r+0x22c> + 962c: b8c00317 ldw r3,12(r23) + 9630: b8800217 ldw r2,8(r23) + 9634: 99bfff04 addi r6,r19,-4 + 9638: 01400904 movi r5,36 + 963c: 18800215 stw r2,8(r3) + 9640: 10c00315 stw r3,12(r2) + 9644: bc400204 addi r17,r23,8 + 9648: 29804136 bltu r5,r6,9750 <_realloc_r+0x590> + 964c: 008004c4 movi r2,19 + 9650: 9009883a mov r4,r18 + 9654: 880f883a mov r7,r17 + 9658: 11800f2e bgeu r2,r6,9698 <_realloc_r+0x4d8> + 965c: 90800017 ldw r2,0(r18) + 9660: b9c00404 addi r7,r23,16 + 9664: 91000204 addi r4,r18,8 + 9668: b8800215 stw r2,8(r23) + 966c: 90c00117 ldw r3,4(r18) + 9670: 008006c4 movi r2,27 + 9674: b8c00315 stw r3,12(r23) + 9678: 1180072e bgeu r2,r6,9698 <_realloc_r+0x4d8> + 967c: 90c00217 ldw r3,8(r18) + 9680: b9c00604 addi r7,r23,24 + 9684: 91000404 addi r4,r18,16 + 9688: b8c00415 stw r3,16(r23) + 968c: 90800317 ldw r2,12(r18) + 9690: b8800515 stw r2,20(r23) + 9694: 31404026 beq r6,r5,9798 <_realloc_r+0x5d8> + 9698: 20800017 ldw r2,0(r4) + 969c: 38800015 stw r2,0(r7) + 96a0: 20c00117 ldw r3,4(r4) + 96a4: 38c00115 stw r3,4(r7) + 96a8: 20800217 ldw r2,8(r4) + 96ac: 38800215 stw r2,8(r7) + 96b0: d8c00117 ldw r3,4(sp) + 96b4: bf0b883a add r5,r23,fp + 96b8: b009883a mov r4,r22 + 96bc: 1f05c83a sub r2,r3,fp + 96c0: 10800054 ori r2,r2,1 + 96c4: 28800115 stw r2,4(r5) + 96c8: b8c00117 ldw r3,4(r23) + 96cc: 00800074 movhi r2,1 + 96d0: 10827004 addi r2,r2,2496 + 96d4: 11400215 stw r5,8(r2) + 96d8: 18c0004c andi r3,r3,1 + 96dc: e0c6b03a or r3,fp,r3 + 96e0: b8c00115 stw r3,4(r23) + 96e4: 000caa80 call caa8 <__malloc_unlock> + 96e8: 003eeb06 br 9298 <_realloc_r+0xd8> + 96ec: 20800117 ldw r2,4(r4) + 96f0: 00ffff04 movi r3,-4 + 96f4: 800f883a mov r7,r16 + 96f8: 10c4703a and r2,r2,r3 + 96fc: 98a9883a add r20,r19,r2 + 9700: 84000204 addi r16,r16,8 + 9704: 003ecf06 br 9244 <_realloc_r+0x84> + 9708: 900b883a mov r5,r18 + 970c: 8009883a mov r4,r16 + 9710: 0007fbc0 call 7fbc + 9714: dd000017 ldw r20,0(sp) + 9718: b80f883a mov r7,r23 + 971c: 003ec906 br 9244 <_realloc_r+0x84> + 9720: 900b883a mov r5,r18 + 9724: 8009883a mov r4,r16 + 9728: 0007fbc0 call 7fbc + 972c: b80f883a mov r7,r23 + 9730: 003ec406 br 9244 <_realloc_r+0x84> + 9734: 90c00417 ldw r3,16(r18) + 9738: 89400604 addi r5,r17,24 + 973c: 91000604 addi r4,r18,24 + 9740: 88c00415 stw r3,16(r17) + 9744: 90800517 ldw r2,20(r18) + 9748: 88800515 stw r2,20(r17) + 974c: 003f6806 br 94f0 <_realloc_r+0x330> + 9750: 900b883a mov r5,r18 + 9754: 8809883a mov r4,r17 + 9758: 0007fbc0 call 7fbc + 975c: 003fd406 br 96b0 <_realloc_r+0x4f0> + 9760: 90c00417 ldw r3,16(r18) + 9764: 91000604 addi r4,r18,24 + 9768: ba000804 addi r8,r23,32 + 976c: b8c00615 stw r3,24(r23) + 9770: 90800517 ldw r2,20(r18) + 9774: b8800715 stw r2,28(r23) + 9778: 003f1206 br 93c4 <_realloc_r+0x204> + 977c: 90c00417 ldw r3,16(r18) + 9780: 91000604 addi r4,r18,24 + 9784: ba000804 addi r8,r23,32 + 9788: b8c00615 stw r3,24(r23) + 978c: 90800517 ldw r2,20(r18) + 9790: b8800715 stw r2,28(r23) + 9794: 003f3206 br 9460 <_realloc_r+0x2a0> + 9798: 90c00417 ldw r3,16(r18) + 979c: 91000604 addi r4,r18,24 + 97a0: b9c00804 addi r7,r23,32 + 97a4: b8c00615 stw r3,24(r23) + 97a8: 90800517 ldw r2,20(r18) + 97ac: b8800715 stw r2,28(r23) + 97b0: 003fb906 br 9698 <_realloc_r+0x4d8> + +000097b4 <__isinfd>: + 97b4: 200d883a mov r6,r4 + 97b8: 0109c83a sub r4,zero,r4 + 97bc: 2188b03a or r4,r4,r6 + 97c0: 2008d7fa srli r4,r4,31 + 97c4: 00a00034 movhi r2,32768 + 97c8: 10bfffc4 addi r2,r2,-1 + 97cc: 1144703a and r2,r2,r5 + 97d0: 2088b03a or r4,r4,r2 + 97d4: 009ffc34 movhi r2,32752 + 97d8: 1105c83a sub r2,r2,r4 + 97dc: 0087c83a sub r3,zero,r2 + 97e0: 10c4b03a or r2,r2,r3 + 97e4: 1004d7fa srli r2,r2,31 + 97e8: 00c00044 movi r3,1 + 97ec: 1885c83a sub r2,r3,r2 + 97f0: f800283a ret + +000097f4 <__isnand>: + 97f4: 200d883a mov r6,r4 + 97f8: 0109c83a sub r4,zero,r4 + 97fc: 2188b03a or r4,r4,r6 + 9800: 2008d7fa srli r4,r4,31 + 9804: 00a00034 movhi r2,32768 + 9808: 10bfffc4 addi r2,r2,-1 + 980c: 1144703a and r2,r2,r5 + 9810: 2088b03a or r4,r4,r2 + 9814: 009ffc34 movhi r2,32752 + 9818: 1105c83a sub r2,r2,r4 + 981c: 1004d7fa srli r2,r2,31 + 9820: f800283a ret + +00009824 <_sbrk_r>: + 9824: defffd04 addi sp,sp,-12 + 9828: dc000015 stw r16,0(sp) + 982c: 04000074 movhi r16,1 + 9830: 840f3c04 addi r16,r16,15600 + 9834: dc400115 stw r17,4(sp) + 9838: 80000015 stw zero,0(r16) + 983c: 2023883a mov r17,r4 + 9840: 2809883a mov r4,r5 + 9844: dfc00215 stw ra,8(sp) + 9848: 000ccc40 call ccc4 + 984c: 1007883a mov r3,r2 + 9850: 00bfffc4 movi r2,-1 + 9854: 18800626 beq r3,r2,9870 <_sbrk_r+0x4c> + 9858: 1805883a mov r2,r3 + 985c: dfc00217 ldw ra,8(sp) + 9860: dc400117 ldw r17,4(sp) + 9864: dc000017 ldw r16,0(sp) + 9868: dec00304 addi sp,sp,12 + 986c: f800283a ret + 9870: 80800017 ldw r2,0(r16) + 9874: 103ff826 beq r2,zero,9858 <_sbrk_r+0x34> + 9878: 88800015 stw r2,0(r17) + 987c: 1805883a mov r2,r3 + 9880: dfc00217 ldw ra,8(sp) + 9884: dc400117 ldw r17,4(sp) + 9888: dc000017 ldw r16,0(sp) + 988c: dec00304 addi sp,sp,12 + 9890: f800283a ret + +00009894 <__sclose>: + 9894: 2940038f ldh r5,14(r5) + 9898: 0009bdc1 jmpi 9bdc <_close_r> + +0000989c <__sseek>: + 989c: defffe04 addi sp,sp,-8 + 98a0: dc000015 stw r16,0(sp) + 98a4: 2821883a mov r16,r5 + 98a8: 2940038f ldh r5,14(r5) + 98ac: dfc00115 stw ra,4(sp) + 98b0: 0009e540 call 9e54 <_lseek_r> + 98b4: 1007883a mov r3,r2 + 98b8: 00bfffc4 movi r2,-1 + 98bc: 18800926 beq r3,r2,98e4 <__sseek+0x48> + 98c0: 8080030b ldhu r2,12(r16) + 98c4: 80c01415 stw r3,80(r16) + 98c8: 10840014 ori r2,r2,4096 + 98cc: 8080030d sth r2,12(r16) + 98d0: 1805883a mov r2,r3 + 98d4: dfc00117 ldw ra,4(sp) + 98d8: dc000017 ldw r16,0(sp) + 98dc: dec00204 addi sp,sp,8 + 98e0: f800283a ret + 98e4: 8080030b ldhu r2,12(r16) + 98e8: 10bbffcc andi r2,r2,61439 + 98ec: 8080030d sth r2,12(r16) + 98f0: 1805883a mov r2,r3 + 98f4: dfc00117 ldw ra,4(sp) + 98f8: dc000017 ldw r16,0(sp) + 98fc: dec00204 addi sp,sp,8 + 9900: f800283a ret + +00009904 <__swrite>: + 9904: 2880030b ldhu r2,12(r5) + 9908: defffb04 addi sp,sp,-20 + 990c: dcc00315 stw r19,12(sp) + 9910: 1080400c andi r2,r2,256 + 9914: dc800215 stw r18,8(sp) + 9918: dc400115 stw r17,4(sp) + 991c: dc000015 stw r16,0(sp) + 9920: 3027883a mov r19,r6 + 9924: 3825883a mov r18,r7 + 9928: dfc00415 stw ra,16(sp) + 992c: 2821883a mov r16,r5 + 9930: 000d883a mov r6,zero + 9934: 01c00084 movi r7,2 + 9938: 2023883a mov r17,r4 + 993c: 10000226 beq r2,zero,9948 <__swrite+0x44> + 9940: 2940038f ldh r5,14(r5) + 9944: 0009e540 call 9e54 <_lseek_r> + 9948: 8080030b ldhu r2,12(r16) + 994c: 8140038f ldh r5,14(r16) + 9950: 8809883a mov r4,r17 + 9954: 10bbffcc andi r2,r2,61439 + 9958: 980d883a mov r6,r19 + 995c: 900f883a mov r7,r18 + 9960: 8080030d sth r2,12(r16) + 9964: dfc00417 ldw ra,16(sp) + 9968: dcc00317 ldw r19,12(sp) + 996c: dc800217 ldw r18,8(sp) + 9970: dc400117 ldw r17,4(sp) + 9974: dc000017 ldw r16,0(sp) + 9978: dec00504 addi sp,sp,20 + 997c: 0009a9c1 jmpi 9a9c <_write_r> + +00009980 <__sread>: + 9980: defffe04 addi sp,sp,-8 + 9984: dc000015 stw r16,0(sp) + 9988: 2821883a mov r16,r5 + 998c: 2940038f ldh r5,14(r5) + 9990: dfc00115 stw ra,4(sp) + 9994: 0009ecc0 call 9ecc <_read_r> + 9998: 1007883a mov r3,r2 + 999c: 10000816 blt r2,zero,99c0 <__sread+0x40> + 99a0: 80801417 ldw r2,80(r16) + 99a4: 10c5883a add r2,r2,r3 + 99a8: 80801415 stw r2,80(r16) + 99ac: 1805883a mov r2,r3 + 99b0: dfc00117 ldw ra,4(sp) + 99b4: dc000017 ldw r16,0(sp) + 99b8: dec00204 addi sp,sp,8 + 99bc: f800283a ret + 99c0: 8080030b ldhu r2,12(r16) + 99c4: 10bbffcc andi r2,r2,61439 + 99c8: 8080030d sth r2,12(r16) + 99cc: 1805883a mov r2,r3 + 99d0: dfc00117 ldw ra,4(sp) + 99d4: dc000017 ldw r16,0(sp) + 99d8: dec00204 addi sp,sp,8 + 99dc: f800283a ret + +000099e0 : + 99e0: 2144b03a or r2,r4,r5 + 99e4: 108000cc andi r2,r2,3 + 99e8: 10001d1e bne r2,zero,9a60 + 99ec: 200f883a mov r7,r4 + 99f0: 28800017 ldw r2,0(r5) + 99f4: 21000017 ldw r4,0(r4) + 99f8: 280d883a mov r6,r5 + 99fc: 2080161e bne r4,r2,9a58 + 9a00: 023fbff4 movhi r8,65279 + 9a04: 423fbfc4 addi r8,r8,-257 + 9a08: 2207883a add r3,r4,r8 + 9a0c: 01602074 movhi r5,32897 + 9a10: 29602004 addi r5,r5,-32640 + 9a14: 1946703a and r3,r3,r5 + 9a18: 0104303a nor r2,zero,r4 + 9a1c: 10c4703a and r2,r2,r3 + 9a20: 10001c1e bne r2,zero,9a94 + 9a24: 4013883a mov r9,r8 + 9a28: 2811883a mov r8,r5 + 9a2c: 00000106 br 9a34 + 9a30: 1800181e bne r3,zero,9a94 + 9a34: 39c00104 addi r7,r7,4 + 9a38: 39000017 ldw r4,0(r7) + 9a3c: 31800104 addi r6,r6,4 + 9a40: 31400017 ldw r5,0(r6) + 9a44: 2245883a add r2,r4,r9 + 9a48: 1204703a and r2,r2,r8 + 9a4c: 0106303a nor r3,zero,r4 + 9a50: 1886703a and r3,r3,r2 + 9a54: 217ff626 beq r4,r5,9a30 + 9a58: 3809883a mov r4,r7 + 9a5c: 300b883a mov r5,r6 + 9a60: 20c00007 ldb r3,0(r4) + 9a64: 1800051e bne r3,zero,9a7c + 9a68: 00000606 br 9a84 + 9a6c: 21000044 addi r4,r4,1 + 9a70: 20c00007 ldb r3,0(r4) + 9a74: 29400044 addi r5,r5,1 + 9a78: 18000226 beq r3,zero,9a84 + 9a7c: 28800007 ldb r2,0(r5) + 9a80: 18bffa26 beq r3,r2,9a6c + 9a84: 20c00003 ldbu r3,0(r4) + 9a88: 28800003 ldbu r2,0(r5) + 9a8c: 1885c83a sub r2,r3,r2 + 9a90: f800283a ret + 9a94: 0005883a mov r2,zero + 9a98: f800283a ret + +00009a9c <_write_r>: + 9a9c: defffd04 addi sp,sp,-12 + 9aa0: dc000015 stw r16,0(sp) + 9aa4: 04000074 movhi r16,1 + 9aa8: 840f3c04 addi r16,r16,15600 + 9aac: dc400115 stw r17,4(sp) + 9ab0: 80000015 stw zero,0(r16) + 9ab4: 2023883a mov r17,r4 + 9ab8: 2809883a mov r4,r5 + 9abc: 300b883a mov r5,r6 + 9ac0: 380d883a mov r6,r7 + 9ac4: dfc00215 stw ra,8(sp) + 9ac8: 000cdb00 call cdb0 + 9acc: 1007883a mov r3,r2 + 9ad0: 00bfffc4 movi r2,-1 + 9ad4: 18800626 beq r3,r2,9af0 <_write_r+0x54> + 9ad8: 1805883a mov r2,r3 + 9adc: dfc00217 ldw ra,8(sp) + 9ae0: dc400117 ldw r17,4(sp) + 9ae4: dc000017 ldw r16,0(sp) + 9ae8: dec00304 addi sp,sp,12 + 9aec: f800283a ret + 9af0: 80800017 ldw r2,0(r16) + 9af4: 103ff826 beq r2,zero,9ad8 <_write_r+0x3c> + 9af8: 88800015 stw r2,0(r17) + 9afc: 1805883a mov r2,r3 + 9b00: dfc00217 ldw ra,8(sp) + 9b04: dc400117 ldw r17,4(sp) + 9b08: dc000017 ldw r16,0(sp) + 9b0c: dec00304 addi sp,sp,12 + 9b10: f800283a ret + +00009b14 <_calloc_r>: + 9b14: defffe04 addi sp,sp,-8 + 9b18: dc400015 stw r17,0(sp) + 9b1c: 2023883a mov r17,r4 + 9b20: 2809883a mov r4,r5 + 9b24: 300b883a mov r5,r6 + 9b28: dfc00115 stw ra,4(sp) + 9b2c: 0002b2c0 call 2b2c <__mulsi3> + 9b30: 100b883a mov r5,r2 + 9b34: 8809883a mov r4,r17 + 9b38: 00076f80 call 76f8 <_malloc_r> + 9b3c: 1023883a mov r17,r2 + 9b40: 01c00904 movi r7,36 + 9b44: 10000d26 beq r2,zero,9b7c <_calloc_r+0x68> + 9b48: 10ffff17 ldw r3,-4(r2) + 9b4c: 1009883a mov r4,r2 + 9b50: 00bfff04 movi r2,-4 + 9b54: 1886703a and r3,r3,r2 + 9b58: 1887883a add r3,r3,r2 + 9b5c: 180d883a mov r6,r3 + 9b60: 000b883a mov r5,zero + 9b64: 38c01736 bltu r7,r3,9bc4 <_calloc_r+0xb0> + 9b68: 008004c4 movi r2,19 + 9b6c: 10c00836 bltu r2,r3,9b90 <_calloc_r+0x7c> + 9b70: 20000215 stw zero,8(r4) + 9b74: 20000015 stw zero,0(r4) + 9b78: 20000115 stw zero,4(r4) + 9b7c: 8805883a mov r2,r17 + 9b80: dfc00117 ldw ra,4(sp) + 9b84: dc400017 ldw r17,0(sp) + 9b88: dec00204 addi sp,sp,8 + 9b8c: f800283a ret + 9b90: 008006c4 movi r2,27 + 9b94: 88000015 stw zero,0(r17) + 9b98: 88000115 stw zero,4(r17) + 9b9c: 89000204 addi r4,r17,8 + 9ba0: 10fff32e bgeu r2,r3,9b70 <_calloc_r+0x5c> + 9ba4: 88000215 stw zero,8(r17) + 9ba8: 88000315 stw zero,12(r17) + 9bac: 89000404 addi r4,r17,16 + 9bb0: 19ffef1e bne r3,r7,9b70 <_calloc_r+0x5c> + 9bb4: 89000604 addi r4,r17,24 + 9bb8: 88000415 stw zero,16(r17) + 9bbc: 88000515 stw zero,20(r17) + 9bc0: 003feb06 br 9b70 <_calloc_r+0x5c> + 9bc4: 000809c0 call 809c + 9bc8: 8805883a mov r2,r17 + 9bcc: dfc00117 ldw ra,4(sp) + 9bd0: dc400017 ldw r17,0(sp) + 9bd4: dec00204 addi sp,sp,8 + 9bd8: f800283a ret + +00009bdc <_close_r>: + 9bdc: defffd04 addi sp,sp,-12 + 9be0: dc000015 stw r16,0(sp) + 9be4: 04000074 movhi r16,1 + 9be8: 840f3c04 addi r16,r16,15600 + 9bec: dc400115 stw r17,4(sp) + 9bf0: 80000015 stw zero,0(r16) + 9bf4: 2023883a mov r17,r4 + 9bf8: 2809883a mov r4,r5 + 9bfc: dfc00215 stw ra,8(sp) + 9c00: 000c3f40 call c3f4 + 9c04: 1007883a mov r3,r2 + 9c08: 00bfffc4 movi r2,-1 + 9c0c: 18800626 beq r3,r2,9c28 <_close_r+0x4c> + 9c10: 1805883a mov r2,r3 + 9c14: dfc00217 ldw ra,8(sp) + 9c18: dc400117 ldw r17,4(sp) + 9c1c: dc000017 ldw r16,0(sp) + 9c20: dec00304 addi sp,sp,12 + 9c24: f800283a ret + 9c28: 80800017 ldw r2,0(r16) + 9c2c: 103ff826 beq r2,zero,9c10 <_close_r+0x34> + 9c30: 88800015 stw r2,0(r17) + 9c34: 1805883a mov r2,r3 + 9c38: dfc00217 ldw ra,8(sp) + 9c3c: dc400117 ldw r17,4(sp) + 9c40: dc000017 ldw r16,0(sp) + 9c44: dec00304 addi sp,sp,12 + 9c48: f800283a ret + +00009c4c <_fclose_r>: + 9c4c: defffc04 addi sp,sp,-16 + 9c50: dc400115 stw r17,4(sp) + 9c54: dc000015 stw r16,0(sp) + 9c58: dfc00315 stw ra,12(sp) + 9c5c: dc800215 stw r18,8(sp) + 9c60: 2821883a mov r16,r5 + 9c64: 2023883a mov r17,r4 + 9c68: 28002926 beq r5,zero,9d10 <_fclose_r+0xc4> + 9c6c: 00067a80 call 67a8 <__sfp_lock_acquire> + 9c70: 88000226 beq r17,zero,9c7c <_fclose_r+0x30> + 9c74: 88800e17 ldw r2,56(r17) + 9c78: 10002d26 beq r2,zero,9d30 <_fclose_r+0xe4> + 9c7c: 8080030f ldh r2,12(r16) + 9c80: 10002226 beq r2,zero,9d0c <_fclose_r+0xc0> + 9c84: 8809883a mov r4,r17 + 9c88: 800b883a mov r5,r16 + 9c8c: 00065200 call 6520 <_fflush_r> + 9c90: 1025883a mov r18,r2 + 9c94: 80800b17 ldw r2,44(r16) + 9c98: 10000426 beq r2,zero,9cac <_fclose_r+0x60> + 9c9c: 81400717 ldw r5,28(r16) + 9ca0: 8809883a mov r4,r17 + 9ca4: 103ee83a callr r2 + 9ca8: 10002a16 blt r2,zero,9d54 <_fclose_r+0x108> + 9cac: 8080030b ldhu r2,12(r16) + 9cb0: 1080200c andi r2,r2,128 + 9cb4: 1000231e bne r2,zero,9d44 <_fclose_r+0xf8> + 9cb8: 81400c17 ldw r5,48(r16) + 9cbc: 28000526 beq r5,zero,9cd4 <_fclose_r+0x88> + 9cc0: 80801004 addi r2,r16,64 + 9cc4: 28800226 beq r5,r2,9cd0 <_fclose_r+0x84> + 9cc8: 8809883a mov r4,r17 + 9ccc: 0006b700 call 6b70 <_free_r> + 9cd0: 80000c15 stw zero,48(r16) + 9cd4: 81401117 ldw r5,68(r16) + 9cd8: 28000326 beq r5,zero,9ce8 <_fclose_r+0x9c> + 9cdc: 8809883a mov r4,r17 + 9ce0: 0006b700 call 6b70 <_free_r> + 9ce4: 80001115 stw zero,68(r16) + 9ce8: 8000030d sth zero,12(r16) + 9cec: 00067ac0 call 67ac <__sfp_lock_release> + 9cf0: 9005883a mov r2,r18 + 9cf4: dfc00317 ldw ra,12(sp) + 9cf8: dc800217 ldw r18,8(sp) + 9cfc: dc400117 ldw r17,4(sp) + 9d00: dc000017 ldw r16,0(sp) + 9d04: dec00404 addi sp,sp,16 + 9d08: f800283a ret + 9d0c: 00067ac0 call 67ac <__sfp_lock_release> + 9d10: 0025883a mov r18,zero + 9d14: 9005883a mov r2,r18 + 9d18: dfc00317 ldw ra,12(sp) + 9d1c: dc800217 ldw r18,8(sp) + 9d20: dc400117 ldw r17,4(sp) + 9d24: dc000017 ldw r16,0(sp) + 9d28: dec00404 addi sp,sp,16 + 9d2c: f800283a ret + 9d30: 8809883a mov r4,r17 + 9d34: 00067b80 call 67b8 <__sinit> + 9d38: 8080030f ldh r2,12(r16) + 9d3c: 103fd11e bne r2,zero,9c84 <_fclose_r+0x38> + 9d40: 003ff206 br 9d0c <_fclose_r+0xc0> + 9d44: 81400417 ldw r5,16(r16) + 9d48: 8809883a mov r4,r17 + 9d4c: 0006b700 call 6b70 <_free_r> + 9d50: 003fd906 br 9cb8 <_fclose_r+0x6c> + 9d54: 04bfffc4 movi r18,-1 + 9d58: 003fd406 br 9cac <_fclose_r+0x60> + +00009d5c : + 9d5c: 00800074 movhi r2,1 + 9d60: 10883e04 addi r2,r2,8440 + 9d64: 200b883a mov r5,r4 + 9d68: 11000017 ldw r4,0(r2) + 9d6c: 0009c4c1 jmpi 9c4c <_fclose_r> + +00009d70 <_fstat_r>: + 9d70: defffd04 addi sp,sp,-12 + 9d74: dc000015 stw r16,0(sp) + 9d78: 04000074 movhi r16,1 + 9d7c: 840f3c04 addi r16,r16,15600 + 9d80: dc400115 stw r17,4(sp) + 9d84: 80000015 stw zero,0(r16) + 9d88: 2023883a mov r17,r4 + 9d8c: 2809883a mov r4,r5 + 9d90: 300b883a mov r5,r6 + 9d94: dfc00215 stw ra,8(sp) + 9d98: 000c5800 call c580 + 9d9c: 1007883a mov r3,r2 + 9da0: 00bfffc4 movi r2,-1 + 9da4: 18800626 beq r3,r2,9dc0 <_fstat_r+0x50> + 9da8: 1805883a mov r2,r3 + 9dac: dfc00217 ldw ra,8(sp) + 9db0: dc400117 ldw r17,4(sp) + 9db4: dc000017 ldw r16,0(sp) + 9db8: dec00304 addi sp,sp,12 + 9dbc: f800283a ret + 9dc0: 80800017 ldw r2,0(r16) + 9dc4: 103ff826 beq r2,zero,9da8 <_fstat_r+0x38> + 9dc8: 88800015 stw r2,0(r17) + 9dcc: 1805883a mov r2,r3 + 9dd0: dfc00217 ldw ra,8(sp) + 9dd4: dc400117 ldw r17,4(sp) + 9dd8: dc000017 ldw r16,0(sp) + 9ddc: dec00304 addi sp,sp,12 + 9de0: f800283a ret + +00009de4 <_isatty_r>: + 9de4: defffd04 addi sp,sp,-12 + 9de8: dc000015 stw r16,0(sp) + 9dec: 04000074 movhi r16,1 + 9df0: 840f3c04 addi r16,r16,15600 + 9df4: dc400115 stw r17,4(sp) + 9df8: 80000015 stw zero,0(r16) + 9dfc: 2023883a mov r17,r4 + 9e00: 2809883a mov r4,r5 + 9e04: dfc00215 stw ra,8(sp) + 9e08: 000c6b80 call c6b8 + 9e0c: 1007883a mov r3,r2 + 9e10: 00bfffc4 movi r2,-1 + 9e14: 18800626 beq r3,r2,9e30 <_isatty_r+0x4c> + 9e18: 1805883a mov r2,r3 + 9e1c: dfc00217 ldw ra,8(sp) + 9e20: dc400117 ldw r17,4(sp) + 9e24: dc000017 ldw r16,0(sp) + 9e28: dec00304 addi sp,sp,12 + 9e2c: f800283a ret + 9e30: 80800017 ldw r2,0(r16) + 9e34: 103ff826 beq r2,zero,9e18 <_isatty_r+0x34> + 9e38: 88800015 stw r2,0(r17) + 9e3c: 1805883a mov r2,r3 + 9e40: dfc00217 ldw ra,8(sp) + 9e44: dc400117 ldw r17,4(sp) + 9e48: dc000017 ldw r16,0(sp) + 9e4c: dec00304 addi sp,sp,12 + 9e50: f800283a ret + +00009e54 <_lseek_r>: + 9e54: defffd04 addi sp,sp,-12 + 9e58: dc000015 stw r16,0(sp) + 9e5c: 04000074 movhi r16,1 + 9e60: 840f3c04 addi r16,r16,15600 + 9e64: dc400115 stw r17,4(sp) + 9e68: 80000015 stw zero,0(r16) + 9e6c: 2023883a mov r17,r4 + 9e70: 2809883a mov r4,r5 + 9e74: 300b883a mov r5,r6 + 9e78: 380d883a mov r6,r7 + 9e7c: dfc00215 stw ra,8(sp) + 9e80: 000c8c80 call c8c8 + 9e84: 1007883a mov r3,r2 + 9e88: 00bfffc4 movi r2,-1 + 9e8c: 18800626 beq r3,r2,9ea8 <_lseek_r+0x54> + 9e90: 1805883a mov r2,r3 + 9e94: dfc00217 ldw ra,8(sp) + 9e98: dc400117 ldw r17,4(sp) + 9e9c: dc000017 ldw r16,0(sp) + 9ea0: dec00304 addi sp,sp,12 + 9ea4: f800283a ret + 9ea8: 80800017 ldw r2,0(r16) + 9eac: 103ff826 beq r2,zero,9e90 <_lseek_r+0x3c> + 9eb0: 88800015 stw r2,0(r17) + 9eb4: 1805883a mov r2,r3 + 9eb8: dfc00217 ldw ra,8(sp) + 9ebc: dc400117 ldw r17,4(sp) + 9ec0: dc000017 ldw r16,0(sp) + 9ec4: dec00304 addi sp,sp,12 + 9ec8: f800283a ret + +00009ecc <_read_r>: + 9ecc: defffd04 addi sp,sp,-12 + 9ed0: dc000015 stw r16,0(sp) + 9ed4: 04000074 movhi r16,1 + 9ed8: 840f3c04 addi r16,r16,15600 + 9edc: dc400115 stw r17,4(sp) + 9ee0: 80000015 stw zero,0(r16) + 9ee4: 2023883a mov r17,r4 + 9ee8: 2809883a mov r4,r5 + 9eec: 300b883a mov r5,r6 + 9ef0: 380d883a mov r6,r7 + 9ef4: dfc00215 stw ra,8(sp) + 9ef8: 000cac80 call cac8 + 9efc: 1007883a mov r3,r2 + 9f00: 00bfffc4 movi r2,-1 + 9f04: 18800626 beq r3,r2,9f20 <_read_r+0x54> + 9f08: 1805883a mov r2,r3 + 9f0c: dfc00217 ldw ra,8(sp) + 9f10: dc400117 ldw r17,4(sp) + 9f14: dc000017 ldw r16,0(sp) + 9f18: dec00304 addi sp,sp,12 + 9f1c: f800283a ret + 9f20: 80800017 ldw r2,0(r16) + 9f24: 103ff826 beq r2,zero,9f08 <_read_r+0x3c> + 9f28: 88800015 stw r2,0(r17) + 9f2c: 1805883a mov r2,r3 + 9f30: dfc00217 ldw ra,8(sp) + 9f34: dc400117 ldw r17,4(sp) + 9f38: dc000017 ldw r16,0(sp) + 9f3c: dec00304 addi sp,sp,12 + 9f40: f800283a ret + +00009f44 <__udivdi3>: + 9f44: defff104 addi sp,sp,-60 + 9f48: 0015883a mov r10,zero + 9f4c: 2005883a mov r2,r4 + 9f50: 3011883a mov r8,r6 + 9f54: df000d15 stw fp,52(sp) + 9f58: dd400a15 stw r21,40(sp) + 9f5c: dcc00815 stw r19,32(sp) + 9f60: dfc00e15 stw ra,56(sp) + 9f64: ddc00c15 stw r23,48(sp) + 9f68: dd800b15 stw r22,44(sp) + 9f6c: dd000915 stw r20,36(sp) + 9f70: dc800715 stw r18,28(sp) + 9f74: dc400615 stw r17,24(sp) + 9f78: dc000515 stw r16,20(sp) + 9f7c: da800315 stw r10,12(sp) + 9f80: 4027883a mov r19,r8 + 9f84: 1039883a mov fp,r2 + 9f88: 282b883a mov r21,r5 + 9f8c: da800415 stw r10,16(sp) + 9f90: 3800401e bne r7,zero,a094 <__udivdi3+0x150> + 9f94: 2a006536 bltu r5,r8,a12c <__udivdi3+0x1e8> + 9f98: 4000b526 beq r8,zero,a270 <__udivdi3+0x32c> + 9f9c: 00bfffd4 movui r2,65535 + 9fa0: 14c0ad36 bltu r2,r19,a258 <__udivdi3+0x314> + 9fa4: 00803fc4 movi r2,255 + 9fa8: 14c15e36 bltu r2,r19,a524 <__udivdi3+0x5e0> + 9fac: 000b883a mov r5,zero + 9fb0: 0005883a mov r2,zero + 9fb4: 9884d83a srl r2,r19,r2 + 9fb8: 01000074 movhi r4,1 + 9fbc: 21011d04 addi r4,r4,1140 + 9fc0: 01800804 movi r6,32 + 9fc4: 1105883a add r2,r2,r4 + 9fc8: 10c00003 ldbu r3,0(r2) + 9fcc: 28c7883a add r3,r5,r3 + 9fd0: 30e9c83a sub r20,r6,r3 + 9fd4: a0010a1e bne r20,zero,a400 <__udivdi3+0x4bc> + 9fd8: 982ed43a srli r23,r19,16 + 9fdc: acebc83a sub r21,r21,r19 + 9fe0: 9dbfffcc andi r22,r19,65535 + 9fe4: 05000044 movi r20,1 + 9fe8: a809883a mov r4,r21 + 9fec: b80b883a mov r5,r23 + 9ff0: 0002b1c0 call 2b1c <__udivsi3> + 9ff4: 100b883a mov r5,r2 + 9ff8: b009883a mov r4,r22 + 9ffc: 1021883a mov r16,r2 + a000: 0002b2c0 call 2b2c <__mulsi3> + a004: a809883a mov r4,r21 + a008: b80b883a mov r5,r23 + a00c: 1023883a mov r17,r2 + a010: 0002b240 call 2b24 <__umodsi3> + a014: 1004943a slli r2,r2,16 + a018: e006d43a srli r3,fp,16 + a01c: 10c4b03a or r2,r2,r3 + a020: 1440042e bgeu r2,r17,a034 <__udivdi3+0xf0> + a024: 14c5883a add r2,r2,r19 + a028: 843fffc4 addi r16,r16,-1 + a02c: 14c00136 bltu r2,r19,a034 <__udivdi3+0xf0> + a030: 14415c36 bltu r2,r17,a5a4 <__udivdi3+0x660> + a034: 1463c83a sub r17,r2,r17 + a038: 8809883a mov r4,r17 + a03c: b80b883a mov r5,r23 + a040: 0002b1c0 call 2b1c <__udivsi3> + a044: 100b883a mov r5,r2 + a048: b009883a mov r4,r22 + a04c: 102b883a mov r21,r2 + a050: 0002b2c0 call 2b2c <__mulsi3> + a054: 8809883a mov r4,r17 + a058: b80b883a mov r5,r23 + a05c: 1025883a mov r18,r2 + a060: 0002b240 call 2b24 <__umodsi3> + a064: 1004943a slli r2,r2,16 + a068: e0ffffcc andi r3,fp,65535 + a06c: 10c4b03a or r2,r2,r3 + a070: 1480042e bgeu r2,r18,a084 <__udivdi3+0x140> + a074: 9885883a add r2,r19,r2 + a078: ad7fffc4 addi r21,r21,-1 + a07c: 14c00136 bltu r2,r19,a084 <__udivdi3+0x140> + a080: 14813c36 bltu r2,r18,a574 <__udivdi3+0x630> + a084: 8004943a slli r2,r16,16 + a088: a009883a mov r4,r20 + a08c: a884b03a or r2,r21,r2 + a090: 00001506 br a0e8 <__udivdi3+0x1a4> + a094: 380d883a mov r6,r7 + a098: 29c06c36 bltu r5,r7,a24c <__udivdi3+0x308> + a09c: 00bfffd4 movui r2,65535 + a0a0: 11c06436 bltu r2,r7,a234 <__udivdi3+0x2f0> + a0a4: 00803fc4 movi r2,255 + a0a8: 11c11836 bltu r2,r7,a50c <__udivdi3+0x5c8> + a0ac: 000b883a mov r5,zero + a0b0: 0005883a mov r2,zero + a0b4: 3084d83a srl r2,r6,r2 + a0b8: 01000074 movhi r4,1 + a0bc: 21011d04 addi r4,r4,1140 + a0c0: 01c00804 movi r7,32 + a0c4: 1105883a add r2,r2,r4 + a0c8: 10c00003 ldbu r3,0(r2) + a0cc: 28c7883a add r3,r5,r3 + a0d0: 38edc83a sub r22,r7,r3 + a0d4: b000731e bne r22,zero,a2a4 <__udivdi3+0x360> + a0d8: 35400136 bltu r6,r21,a0e0 <__udivdi3+0x19c> + a0dc: e4c05b36 bltu fp,r19,a24c <__udivdi3+0x308> + a0e0: 00800044 movi r2,1 + a0e4: 0009883a mov r4,zero + a0e8: d8800315 stw r2,12(sp) + a0ec: d9400317 ldw r5,12(sp) + a0f0: 2007883a mov r3,r4 + a0f4: d9000415 stw r4,16(sp) + a0f8: 2805883a mov r2,r5 + a0fc: dfc00e17 ldw ra,56(sp) + a100: df000d17 ldw fp,52(sp) + a104: ddc00c17 ldw r23,48(sp) + a108: dd800b17 ldw r22,44(sp) + a10c: dd400a17 ldw r21,40(sp) + a110: dd000917 ldw r20,36(sp) + a114: dcc00817 ldw r19,32(sp) + a118: dc800717 ldw r18,28(sp) + a11c: dc400617 ldw r17,24(sp) + a120: dc000517 ldw r16,20(sp) + a124: dec00f04 addi sp,sp,60 + a128: f800283a ret + a12c: 00bfffd4 movui r2,65535 + a130: 12005636 bltu r2,r8,a28c <__udivdi3+0x348> + a134: 00803fc4 movi r2,255 + a138: 12010036 bltu r2,r8,a53c <__udivdi3+0x5f8> + a13c: 000b883a mov r5,zero + a140: 0005883a mov r2,zero + a144: 9884d83a srl r2,r19,r2 + a148: 01000074 movhi r4,1 + a14c: 21011d04 addi r4,r4,1140 + a150: 01800804 movi r6,32 + a154: 1105883a add r2,r2,r4 + a158: 10c00003 ldbu r3,0(r2) + a15c: 28c7883a add r3,r5,r3 + a160: 30cbc83a sub r5,r6,r3 + a164: 28000626 beq r5,zero,a180 <__udivdi3+0x23c> + a168: 3145c83a sub r2,r6,r5 + a16c: e084d83a srl r2,fp,r2 + a170: a946983a sll r3,r21,r5 + a174: e178983a sll fp,fp,r5 + a178: 9966983a sll r19,r19,r5 + a17c: 18aab03a or r21,r3,r2 + a180: 982ed43a srli r23,r19,16 + a184: a809883a mov r4,r21 + a188: 9cbfffcc andi r18,r19,65535 + a18c: b80b883a mov r5,r23 + a190: 0002b1c0 call 2b1c <__udivsi3> + a194: 100b883a mov r5,r2 + a198: 9009883a mov r4,r18 + a19c: 1021883a mov r16,r2 + a1a0: 0002b2c0 call 2b2c <__mulsi3> + a1a4: a809883a mov r4,r21 + a1a8: b80b883a mov r5,r23 + a1ac: 1023883a mov r17,r2 + a1b0: 0002b240 call 2b24 <__umodsi3> + a1b4: 1004943a slli r2,r2,16 + a1b8: e006d43a srli r3,fp,16 + a1bc: 10c4b03a or r2,r2,r3 + a1c0: 1440042e bgeu r2,r17,a1d4 <__udivdi3+0x290> + a1c4: 14c5883a add r2,r2,r19 + a1c8: 843fffc4 addi r16,r16,-1 + a1cc: 14c00136 bltu r2,r19,a1d4 <__udivdi3+0x290> + a1d0: 1440ea36 bltu r2,r17,a57c <__udivdi3+0x638> + a1d4: 1463c83a sub r17,r2,r17 + a1d8: 8809883a mov r4,r17 + a1dc: b80b883a mov r5,r23 + a1e0: 0002b1c0 call 2b1c <__udivsi3> + a1e4: 100b883a mov r5,r2 + a1e8: 9009883a mov r4,r18 + a1ec: 102b883a mov r21,r2 + a1f0: 0002b2c0 call 2b2c <__mulsi3> + a1f4: 8809883a mov r4,r17 + a1f8: b80b883a mov r5,r23 + a1fc: 1025883a mov r18,r2 + a200: 0002b240 call 2b24 <__umodsi3> + a204: 1004943a slli r2,r2,16 + a208: e0ffffcc andi r3,fp,65535 + a20c: 10c4b03a or r2,r2,r3 + a210: 1480042e bgeu r2,r18,a224 <__udivdi3+0x2e0> + a214: 9885883a add r2,r19,r2 + a218: ad7fffc4 addi r21,r21,-1 + a21c: 14c00136 bltu r2,r19,a224 <__udivdi3+0x2e0> + a220: 1480d936 bltu r2,r18,a588 <__udivdi3+0x644> + a224: 8004943a slli r2,r16,16 + a228: 0009883a mov r4,zero + a22c: a884b03a or r2,r21,r2 + a230: 003fad06 br a0e8 <__udivdi3+0x1a4> + a234: 00804034 movhi r2,256 + a238: 10bfffc4 addi r2,r2,-1 + a23c: 11c0b636 bltu r2,r7,a518 <__udivdi3+0x5d4> + a240: 01400404 movi r5,16 + a244: 2805883a mov r2,r5 + a248: 003f9a06 br a0b4 <__udivdi3+0x170> + a24c: 0005883a mov r2,zero + a250: 0009883a mov r4,zero + a254: 003fa406 br a0e8 <__udivdi3+0x1a4> + a258: 00804034 movhi r2,256 + a25c: 10bfffc4 addi r2,r2,-1 + a260: 14c0b336 bltu r2,r19,a530 <__udivdi3+0x5ec> + a264: 01400404 movi r5,16 + a268: 2805883a mov r2,r5 + a26c: 003f5106 br 9fb4 <__udivdi3+0x70> + a270: 01000044 movi r4,1 + a274: 000b883a mov r5,zero + a278: 0002b1c0 call 2b1c <__udivsi3> + a27c: 1027883a mov r19,r2 + a280: 00bfffd4 movui r2,65535 + a284: 14fff436 bltu r2,r19,a258 <__udivdi3+0x314> + a288: 003f4606 br 9fa4 <__udivdi3+0x60> + a28c: 00804034 movhi r2,256 + a290: 10bfffc4 addi r2,r2,-1 + a294: 1200ac36 bltu r2,r8,a548 <__udivdi3+0x604> + a298: 01400404 movi r5,16 + a29c: 2805883a mov r2,r5 + a2a0: 003fa806 br a144 <__udivdi3+0x200> + a2a4: 3d85c83a sub r2,r7,r22 + a2a8: 3588983a sll r4,r6,r22 + a2ac: 9886d83a srl r3,r19,r2 + a2b0: a8a2d83a srl r17,r21,r2 + a2b4: e084d83a srl r2,fp,r2 + a2b8: 20eeb03a or r23,r4,r3 + a2bc: b824d43a srli r18,r23,16 + a2c0: ad86983a sll r3,r21,r22 + a2c4: 8809883a mov r4,r17 + a2c8: 900b883a mov r5,r18 + a2cc: 1886b03a or r3,r3,r2 + a2d0: d8c00115 stw r3,4(sp) + a2d4: bc3fffcc andi r16,r23,65535 + a2d8: 0002b1c0 call 2b1c <__udivsi3> + a2dc: 100b883a mov r5,r2 + a2e0: 8009883a mov r4,r16 + a2e4: 1029883a mov r20,r2 + a2e8: 0002b2c0 call 2b2c <__mulsi3> + a2ec: 900b883a mov r5,r18 + a2f0: 8809883a mov r4,r17 + a2f4: 102b883a mov r21,r2 + a2f8: 0002b240 call 2b24 <__umodsi3> + a2fc: d9400117 ldw r5,4(sp) + a300: 1004943a slli r2,r2,16 + a304: 9da6983a sll r19,r19,r22 + a308: 2806d43a srli r3,r5,16 + a30c: 10c4b03a or r2,r2,r3 + a310: 1540032e bgeu r2,r21,a320 <__udivdi3+0x3dc> + a314: 15c5883a add r2,r2,r23 + a318: a53fffc4 addi r20,r20,-1 + a31c: 15c0912e bgeu r2,r23,a564 <__udivdi3+0x620> + a320: 1563c83a sub r17,r2,r21 + a324: 8809883a mov r4,r17 + a328: 900b883a mov r5,r18 + a32c: 0002b1c0 call 2b1c <__udivsi3> + a330: 100b883a mov r5,r2 + a334: 8009883a mov r4,r16 + a338: 102b883a mov r21,r2 + a33c: 0002b2c0 call 2b2c <__mulsi3> + a340: 8809883a mov r4,r17 + a344: 900b883a mov r5,r18 + a348: 1021883a mov r16,r2 + a34c: 0002b240 call 2b24 <__umodsi3> + a350: da800117 ldw r10,4(sp) + a354: 1004943a slli r2,r2,16 + a358: 50ffffcc andi r3,r10,65535 + a35c: 10c6b03a or r3,r2,r3 + a360: 1c00032e bgeu r3,r16,a370 <__udivdi3+0x42c> + a364: 1dc7883a add r3,r3,r23 + a368: ad7fffc4 addi r21,r21,-1 + a36c: 1dc0792e bgeu r3,r23,a554 <__udivdi3+0x610> + a370: a004943a slli r2,r20,16 + a374: 982ed43a srli r23,r19,16 + a378: 9cffffcc andi r19,r19,65535 + a37c: a8a4b03a or r18,r21,r2 + a380: 947fffcc andi r17,r18,65535 + a384: 902ad43a srli r21,r18,16 + a388: 8809883a mov r4,r17 + a38c: 980b883a mov r5,r19 + a390: 1c21c83a sub r16,r3,r16 + a394: 0002b2c0 call 2b2c <__mulsi3> + a398: 8809883a mov r4,r17 + a39c: b80b883a mov r5,r23 + a3a0: 1029883a mov r20,r2 + a3a4: 0002b2c0 call 2b2c <__mulsi3> + a3a8: 980b883a mov r5,r19 + a3ac: a809883a mov r4,r21 + a3b0: 1023883a mov r17,r2 + a3b4: 0002b2c0 call 2b2c <__mulsi3> + a3b8: a809883a mov r4,r21 + a3bc: b80b883a mov r5,r23 + a3c0: 1027883a mov r19,r2 + a3c4: 0002b2c0 call 2b2c <__mulsi3> + a3c8: 1009883a mov r4,r2 + a3cc: a004d43a srli r2,r20,16 + a3d0: 8ce3883a add r17,r17,r19 + a3d4: 1447883a add r3,r2,r17 + a3d8: 1cc0022e bgeu r3,r19,a3e4 <__udivdi3+0x4a0> + a3dc: 00800074 movhi r2,1 + a3e0: 2089883a add r4,r4,r2 + a3e4: 1804d43a srli r2,r3,16 + a3e8: 2085883a add r2,r4,r2 + a3ec: 80804436 bltu r16,r2,a500 <__udivdi3+0x5bc> + a3f0: 80803e26 beq r16,r2,a4ec <__udivdi3+0x5a8> + a3f4: 9005883a mov r2,r18 + a3f8: 0009883a mov r4,zero + a3fc: 003f3a06 br a0e8 <__udivdi3+0x1a4> + a400: 9d26983a sll r19,r19,r20 + a404: 3505c83a sub r2,r6,r20 + a408: a8a2d83a srl r17,r21,r2 + a40c: 982ed43a srli r23,r19,16 + a410: e084d83a srl r2,fp,r2 + a414: ad06983a sll r3,r21,r20 + a418: 8809883a mov r4,r17 + a41c: b80b883a mov r5,r23 + a420: 1886b03a or r3,r3,r2 + a424: d8c00015 stw r3,0(sp) + a428: 9dbfffcc andi r22,r19,65535 + a42c: 0002b1c0 call 2b1c <__udivsi3> + a430: 100b883a mov r5,r2 + a434: b009883a mov r4,r22 + a438: d8800215 stw r2,8(sp) + a43c: 0002b2c0 call 2b2c <__mulsi3> + a440: 8809883a mov r4,r17 + a444: b80b883a mov r5,r23 + a448: 102b883a mov r21,r2 + a44c: 0002b240 call 2b24 <__umodsi3> + a450: d9000017 ldw r4,0(sp) + a454: 1004943a slli r2,r2,16 + a458: 2006d43a srli r3,r4,16 + a45c: 10c4b03a or r2,r2,r3 + a460: 1540052e bgeu r2,r21,a478 <__udivdi3+0x534> + a464: d9400217 ldw r5,8(sp) + a468: 14c5883a add r2,r2,r19 + a46c: 297fffc4 addi r5,r5,-1 + a470: d9400215 stw r5,8(sp) + a474: 14c0462e bgeu r2,r19,a590 <__udivdi3+0x64c> + a478: 1563c83a sub r17,r2,r21 + a47c: 8809883a mov r4,r17 + a480: b80b883a mov r5,r23 + a484: 0002b1c0 call 2b1c <__udivsi3> + a488: 100b883a mov r5,r2 + a48c: b009883a mov r4,r22 + a490: 1025883a mov r18,r2 + a494: 0002b2c0 call 2b2c <__mulsi3> + a498: 8809883a mov r4,r17 + a49c: b80b883a mov r5,r23 + a4a0: 1021883a mov r16,r2 + a4a4: 0002b240 call 2b24 <__umodsi3> + a4a8: da800017 ldw r10,0(sp) + a4ac: 1004943a slli r2,r2,16 + a4b0: 50ffffcc andi r3,r10,65535 + a4b4: 10c6b03a or r3,r2,r3 + a4b8: 1c00062e bgeu r3,r16,a4d4 <__udivdi3+0x590> + a4bc: 1cc7883a add r3,r3,r19 + a4c0: 94bfffc4 addi r18,r18,-1 + a4c4: 1cc00336 bltu r3,r19,a4d4 <__udivdi3+0x590> + a4c8: 1c00022e bgeu r3,r16,a4d4 <__udivdi3+0x590> + a4cc: 94bfffc4 addi r18,r18,-1 + a4d0: 1cc7883a add r3,r3,r19 + a4d4: d9000217 ldw r4,8(sp) + a4d8: e538983a sll fp,fp,r20 + a4dc: 1c2bc83a sub r21,r3,r16 + a4e0: 2004943a slli r2,r4,16 + a4e4: 90a8b03a or r20,r18,r2 + a4e8: 003ebf06 br 9fe8 <__udivdi3+0xa4> + a4ec: 1804943a slli r2,r3,16 + a4f0: e588983a sll r4,fp,r22 + a4f4: a0ffffcc andi r3,r20,65535 + a4f8: 10c5883a add r2,r2,r3 + a4fc: 20bfbd2e bgeu r4,r2,a3f4 <__udivdi3+0x4b0> + a500: 90bfffc4 addi r2,r18,-1 + a504: 0009883a mov r4,zero + a508: 003ef706 br a0e8 <__udivdi3+0x1a4> + a50c: 01400204 movi r5,8 + a510: 2805883a mov r2,r5 + a514: 003ee706 br a0b4 <__udivdi3+0x170> + a518: 01400604 movi r5,24 + a51c: 2805883a mov r2,r5 + a520: 003ee406 br a0b4 <__udivdi3+0x170> + a524: 01400204 movi r5,8 + a528: 2805883a mov r2,r5 + a52c: 003ea106 br 9fb4 <__udivdi3+0x70> + a530: 01400604 movi r5,24 + a534: 2805883a mov r2,r5 + a538: 003e9e06 br 9fb4 <__udivdi3+0x70> + a53c: 01400204 movi r5,8 + a540: 2805883a mov r2,r5 + a544: 003eff06 br a144 <__udivdi3+0x200> + a548: 01400604 movi r5,24 + a54c: 2805883a mov r2,r5 + a550: 003efc06 br a144 <__udivdi3+0x200> + a554: 1c3f862e bgeu r3,r16,a370 <__udivdi3+0x42c> + a558: 1dc7883a add r3,r3,r23 + a55c: ad7fffc4 addi r21,r21,-1 + a560: 003f8306 br a370 <__udivdi3+0x42c> + a564: 157f6e2e bgeu r2,r21,a320 <__udivdi3+0x3dc> + a568: a53fffc4 addi r20,r20,-1 + a56c: 15c5883a add r2,r2,r23 + a570: 003f6b06 br a320 <__udivdi3+0x3dc> + a574: ad7fffc4 addi r21,r21,-1 + a578: 003ec206 br a084 <__udivdi3+0x140> + a57c: 843fffc4 addi r16,r16,-1 + a580: 14c5883a add r2,r2,r19 + a584: 003f1306 br a1d4 <__udivdi3+0x290> + a588: ad7fffc4 addi r21,r21,-1 + a58c: 003f2506 br a224 <__udivdi3+0x2e0> + a590: 157fb92e bgeu r2,r21,a478 <__udivdi3+0x534> + a594: 297fffc4 addi r5,r5,-1 + a598: 14c5883a add r2,r2,r19 + a59c: d9400215 stw r5,8(sp) + a5a0: 003fb506 br a478 <__udivdi3+0x534> + a5a4: 843fffc4 addi r16,r16,-1 + a5a8: 14c5883a add r2,r2,r19 + a5ac: 003ea106 br a034 <__udivdi3+0xf0> + +0000a5b0 <__umoddi3>: + a5b0: defff004 addi sp,sp,-64 + a5b4: 3011883a mov r8,r6 + a5b8: 000d883a mov r6,zero + a5bc: dd400b15 stw r21,44(sp) + a5c0: dcc00915 stw r19,36(sp) + a5c4: dc000615 stw r16,24(sp) + a5c8: dfc00f15 stw ra,60(sp) + a5cc: df000e15 stw fp,56(sp) + a5d0: ddc00d15 stw r23,52(sp) + a5d4: dd800c15 stw r22,48(sp) + a5d8: dd000a15 stw r20,40(sp) + a5dc: dc800815 stw r18,32(sp) + a5e0: dc400715 stw r17,28(sp) + a5e4: 2817883a mov r11,r5 + a5e8: d9800415 stw r6,16(sp) + a5ec: 4027883a mov r19,r8 + a5f0: d9800515 stw r6,20(sp) + a5f4: 2021883a mov r16,r4 + a5f8: 282b883a mov r21,r5 + a5fc: 38002c1e bne r7,zero,a6b0 <__umoddi3+0x100> + a600: 2a005636 bltu r5,r8,a75c <__umoddi3+0x1ac> + a604: 40009a26 beq r8,zero,a870 <__umoddi3+0x2c0> + a608: 00bfffd4 movui r2,65535 + a60c: 14c09236 bltu r2,r19,a858 <__umoddi3+0x2a8> + a610: 00803fc4 movi r2,255 + a614: 14c15c36 bltu r2,r19,ab88 <__umoddi3+0x5d8> + a618: 000b883a mov r5,zero + a61c: 0005883a mov r2,zero + a620: 9884d83a srl r2,r19,r2 + a624: 01000074 movhi r4,1 + a628: 21011d04 addi r4,r4,1140 + a62c: 01800804 movi r6,32 + a630: 1105883a add r2,r2,r4 + a634: 10c00003 ldbu r3,0(r2) + a638: 28c7883a add r3,r5,r3 + a63c: 30e5c83a sub r18,r6,r3 + a640: 9000a41e bne r18,zero,a8d4 <__umoddi3+0x324> + a644: 982ed43a srli r23,r19,16 + a648: acebc83a sub r21,r21,r19 + a64c: 9d3fffcc andi r20,r19,65535 + a650: 002d883a mov r22,zero + a654: a809883a mov r4,r21 + a658: b80b883a mov r5,r23 + a65c: 0002b1c0 call 2b1c <__udivsi3> + a660: 100b883a mov r5,r2 + a664: a009883a mov r4,r20 + a668: 0002b2c0 call 2b2c <__mulsi3> + a66c: a809883a mov r4,r21 + a670: b80b883a mov r5,r23 + a674: 1023883a mov r17,r2 + a678: 0002b240 call 2b24 <__umodsi3> + a67c: 1004943a slli r2,r2,16 + a680: 8006d43a srli r3,r16,16 + a684: 10c4b03a or r2,r2,r3 + a688: 1440032e bgeu r2,r17,a698 <__umoddi3+0xe8> + a68c: 14c5883a add r2,r2,r19 + a690: 14c00136 bltu r2,r19,a698 <__umoddi3+0xe8> + a694: 14415836 bltu r2,r17,abf8 <__umoddi3+0x648> + a698: 1463c83a sub r17,r2,r17 + a69c: 8809883a mov r4,r17 + a6a0: b80b883a mov r5,r23 + a6a4: 0002b1c0 call 2b1c <__udivsi3> + a6a8: a009883a mov r4,r20 + a6ac: 00005306 br a7fc <__umoddi3+0x24c> + a6b0: 380d883a mov r6,r7 + a6b4: 29c0132e bgeu r5,r7,a704 <__umoddi3+0x154> + a6b8: d9000415 stw r4,16(sp) + a6bc: d9400515 stw r5,20(sp) + a6c0: d9400417 ldw r5,16(sp) + a6c4: 5813883a mov r9,r11 + a6c8: 2811883a mov r8,r5 + a6cc: 4005883a mov r2,r8 + a6d0: 4807883a mov r3,r9 + a6d4: dfc00f17 ldw ra,60(sp) + a6d8: df000e17 ldw fp,56(sp) + a6dc: ddc00d17 ldw r23,52(sp) + a6e0: dd800c17 ldw r22,48(sp) + a6e4: dd400b17 ldw r21,44(sp) + a6e8: dd000a17 ldw r20,40(sp) + a6ec: dcc00917 ldw r19,36(sp) + a6f0: dc800817 ldw r18,32(sp) + a6f4: dc400717 ldw r17,28(sp) + a6f8: dc000617 ldw r16,24(sp) + a6fc: dec01004 addi sp,sp,64 + a700: f800283a ret + a704: 00bfffd4 movui r2,65535 + a708: 11c06636 bltu r2,r7,a8a4 <__umoddi3+0x2f4> + a70c: 00803fc4 movi r2,255 + a710: 11c12036 bltu r2,r7,ab94 <__umoddi3+0x5e4> + a714: 000b883a mov r5,zero + a718: 0005883a mov r2,zero + a71c: 3084d83a srl r2,r6,r2 + a720: 01000074 movhi r4,1 + a724: 21011d04 addi r4,r4,1140 + a728: 01c00804 movi r7,32 + a72c: 1105883a add r2,r2,r4 + a730: 10c00003 ldbu r3,0(r2) + a734: 28c7883a add r3,r5,r3 + a738: 38e5c83a sub r18,r7,r3 + a73c: 9000941e bne r18,zero,a990 <__umoddi3+0x3e0> + a740: 35405e36 bltu r6,r21,a8bc <__umoddi3+0x30c> + a744: 84c05d2e bgeu r16,r19,a8bc <__umoddi3+0x30c> + a748: 8011883a mov r8,r16 + a74c: a813883a mov r9,r21 + a750: dc000415 stw r16,16(sp) + a754: dd400515 stw r21,20(sp) + a758: 003fdc06 br a6cc <__umoddi3+0x11c> + a75c: 00bfffd4 movui r2,65535 + a760: 12004a36 bltu r2,r8,a88c <__umoddi3+0x2dc> + a764: 00803fc4 movi r2,255 + a768: 12010d36 bltu r2,r8,aba0 <__umoddi3+0x5f0> + a76c: 000b883a mov r5,zero + a770: 0005883a mov r2,zero + a774: 9884d83a srl r2,r19,r2 + a778: 01000074 movhi r4,1 + a77c: 21011d04 addi r4,r4,1140 + a780: 01800804 movi r6,32 + a784: 1105883a add r2,r2,r4 + a788: 10c00003 ldbu r3,0(r2) + a78c: 28c7883a add r3,r5,r3 + a790: 30c7c83a sub r3,r6,r3 + a794: 1800dc1e bne r3,zero,ab08 <__umoddi3+0x558> + a798: 002d883a mov r22,zero + a79c: 982ed43a srli r23,r19,16 + a7a0: a809883a mov r4,r21 + a7a4: 9cbfffcc andi r18,r19,65535 + a7a8: b80b883a mov r5,r23 + a7ac: 0002b1c0 call 2b1c <__udivsi3> + a7b0: 100b883a mov r5,r2 + a7b4: 9009883a mov r4,r18 + a7b8: 0002b2c0 call 2b2c <__mulsi3> + a7bc: a809883a mov r4,r21 + a7c0: b80b883a mov r5,r23 + a7c4: 1023883a mov r17,r2 + a7c8: 0002b240 call 2b24 <__umodsi3> + a7cc: 1004943a slli r2,r2,16 + a7d0: 8006d43a srli r3,r16,16 + a7d4: 10c4b03a or r2,r2,r3 + a7d8: 1440032e bgeu r2,r17,a7e8 <__umoddi3+0x238> + a7dc: 14c5883a add r2,r2,r19 + a7e0: 14c00136 bltu r2,r19,a7e8 <__umoddi3+0x238> + a7e4: 14410236 bltu r2,r17,abf0 <__umoddi3+0x640> + a7e8: 1463c83a sub r17,r2,r17 + a7ec: 8809883a mov r4,r17 + a7f0: b80b883a mov r5,r23 + a7f4: 0002b1c0 call 2b1c <__udivsi3> + a7f8: 9009883a mov r4,r18 + a7fc: 100b883a mov r5,r2 + a800: 0002b2c0 call 2b2c <__mulsi3> + a804: 8809883a mov r4,r17 + a808: b80b883a mov r5,r23 + a80c: 102b883a mov r21,r2 + a810: 0002b240 call 2b24 <__umodsi3> + a814: 1004943a slli r2,r2,16 + a818: 80ffffcc andi r3,r16,65535 + a81c: 10c4b03a or r2,r2,r3 + a820: 1540042e bgeu r2,r21,a834 <__umoddi3+0x284> + a824: 14c5883a add r2,r2,r19 + a828: 14c00236 bltu r2,r19,a834 <__umoddi3+0x284> + a82c: 1540012e bgeu r2,r21,a834 <__umoddi3+0x284> + a830: 14c5883a add r2,r2,r19 + a834: 1545c83a sub r2,r2,r21 + a838: 1584d83a srl r2,r2,r22 + a83c: 0013883a mov r9,zero + a840: d8800415 stw r2,16(sp) + a844: d8c00417 ldw r3,16(sp) + a848: 0005883a mov r2,zero + a84c: d8800515 stw r2,20(sp) + a850: 1811883a mov r8,r3 + a854: 003f9d06 br a6cc <__umoddi3+0x11c> + a858: 00804034 movhi r2,256 + a85c: 10bfffc4 addi r2,r2,-1 + a860: 14c0c636 bltu r2,r19,ab7c <__umoddi3+0x5cc> + a864: 01400404 movi r5,16 + a868: 2805883a mov r2,r5 + a86c: 003f6c06 br a620 <__umoddi3+0x70> + a870: 01000044 movi r4,1 + a874: 000b883a mov r5,zero + a878: 0002b1c0 call 2b1c <__udivsi3> + a87c: 1027883a mov r19,r2 + a880: 00bfffd4 movui r2,65535 + a884: 14fff436 bltu r2,r19,a858 <__umoddi3+0x2a8> + a888: 003f6106 br a610 <__umoddi3+0x60> + a88c: 00804034 movhi r2,256 + a890: 10bfffc4 addi r2,r2,-1 + a894: 1200c536 bltu r2,r8,abac <__umoddi3+0x5fc> + a898: 01400404 movi r5,16 + a89c: 2805883a mov r2,r5 + a8a0: 003fb406 br a774 <__umoddi3+0x1c4> + a8a4: 00804034 movhi r2,256 + a8a8: 10bfffc4 addi r2,r2,-1 + a8ac: 11c0c236 bltu r2,r7,abb8 <__umoddi3+0x608> + a8b0: 01400404 movi r5,16 + a8b4: 2805883a mov r2,r5 + a8b8: 003f9806 br a71c <__umoddi3+0x16c> + a8bc: 84c9c83a sub r4,r16,r19 + a8c0: 8105803a cmpltu r2,r16,r4 + a8c4: a987c83a sub r3,r21,r6 + a8c8: 18abc83a sub r21,r3,r2 + a8cc: 2021883a mov r16,r4 + a8d0: 003f9d06 br a748 <__umoddi3+0x198> + a8d4: 9ca6983a sll r19,r19,r18 + a8d8: 3485c83a sub r2,r6,r18 + a8dc: a8a2d83a srl r17,r21,r2 + a8e0: 982ed43a srli r23,r19,16 + a8e4: ac86983a sll r3,r21,r18 + a8e8: 8084d83a srl r2,r16,r2 + a8ec: 8809883a mov r4,r17 + a8f0: b80b883a mov r5,r23 + a8f4: 18b8b03a or fp,r3,r2 + a8f8: 9d3fffcc andi r20,r19,65535 + a8fc: 0002b1c0 call 2b1c <__udivsi3> + a900: 100b883a mov r5,r2 + a904: a009883a mov r4,r20 + a908: 0002b2c0 call 2b2c <__mulsi3> + a90c: 8809883a mov r4,r17 + a910: b80b883a mov r5,r23 + a914: 102b883a mov r21,r2 + a918: 0002b240 call 2b24 <__umodsi3> + a91c: 1004943a slli r2,r2,16 + a920: e006d43a srli r3,fp,16 + a924: 902d883a mov r22,r18 + a928: 10c4b03a or r2,r2,r3 + a92c: 1540022e bgeu r2,r21,a938 <__umoddi3+0x388> + a930: 14c5883a add r2,r2,r19 + a934: 14c0ab2e bgeu r2,r19,abe4 <__umoddi3+0x634> + a938: 1563c83a sub r17,r2,r21 + a93c: 8809883a mov r4,r17 + a940: b80b883a mov r5,r23 + a944: 0002b1c0 call 2b1c <__udivsi3> + a948: 100b883a mov r5,r2 + a94c: a009883a mov r4,r20 + a950: 0002b2c0 call 2b2c <__mulsi3> + a954: 8809883a mov r4,r17 + a958: b80b883a mov r5,r23 + a95c: 102b883a mov r21,r2 + a960: 0002b240 call 2b24 <__umodsi3> + a964: 1004943a slli r2,r2,16 + a968: e0ffffcc andi r3,fp,65535 + a96c: 10c4b03a or r2,r2,r3 + a970: 1540042e bgeu r2,r21,a984 <__umoddi3+0x3d4> + a974: 14c5883a add r2,r2,r19 + a978: 14c00236 bltu r2,r19,a984 <__umoddi3+0x3d4> + a97c: 1540012e bgeu r2,r21,a984 <__umoddi3+0x3d4> + a980: 14c5883a add r2,r2,r19 + a984: 84a0983a sll r16,r16,r18 + a988: 156bc83a sub r21,r2,r21 + a98c: 003f3106 br a654 <__umoddi3+0xa4> + a990: 3c8fc83a sub r7,r7,r18 + a994: 3486983a sll r3,r6,r18 + a998: 99c4d83a srl r2,r19,r7 + a99c: a9e2d83a srl r17,r21,r7 + a9a0: ac8c983a sll r6,r21,r18 + a9a4: 18acb03a or r22,r3,r2 + a9a8: b02ed43a srli r23,r22,16 + a9ac: 81c4d83a srl r2,r16,r7 + a9b0: 8809883a mov r4,r17 + a9b4: b80b883a mov r5,r23 + a9b8: 308cb03a or r6,r6,r2 + a9bc: d9c00315 stw r7,12(sp) + a9c0: d9800215 stw r6,8(sp) + a9c4: b53fffcc andi r20,r22,65535 + a9c8: 0002b1c0 call 2b1c <__udivsi3> + a9cc: 100b883a mov r5,r2 + a9d0: a009883a mov r4,r20 + a9d4: 1039883a mov fp,r2 + a9d8: 0002b2c0 call 2b2c <__mulsi3> + a9dc: 8809883a mov r4,r17 + a9e0: b80b883a mov r5,r23 + a9e4: 102b883a mov r21,r2 + a9e8: 0002b240 call 2b24 <__umodsi3> + a9ec: d9000217 ldw r4,8(sp) + a9f0: 1004943a slli r2,r2,16 + a9f4: 9ca6983a sll r19,r19,r18 + a9f8: 2006d43a srli r3,r4,16 + a9fc: 84a0983a sll r16,r16,r18 + aa00: dcc00015 stw r19,0(sp) + aa04: 10c4b03a or r2,r2,r3 + aa08: dc000115 stw r16,4(sp) + aa0c: 1540032e bgeu r2,r21,aa1c <__umoddi3+0x46c> + aa10: 1585883a add r2,r2,r22 + aa14: e73fffc4 addi fp,fp,-1 + aa18: 15806e2e bgeu r2,r22,abd4 <__umoddi3+0x624> + aa1c: 1563c83a sub r17,r2,r21 + aa20: 8809883a mov r4,r17 + aa24: b80b883a mov r5,r23 + aa28: 0002b1c0 call 2b1c <__udivsi3> + aa2c: 100b883a mov r5,r2 + aa30: a009883a mov r4,r20 + aa34: 1021883a mov r16,r2 + aa38: 0002b2c0 call 2b2c <__mulsi3> + aa3c: b80b883a mov r5,r23 + aa40: 8809883a mov r4,r17 + aa44: 1029883a mov r20,r2 + aa48: 0002b240 call 2b24 <__umodsi3> + aa4c: d9400217 ldw r5,8(sp) + aa50: 1004943a slli r2,r2,16 + aa54: 28ffffcc andi r3,r5,65535 + aa58: 10c4b03a or r2,r2,r3 + aa5c: 1500032e bgeu r2,r20,aa6c <__umoddi3+0x4bc> + aa60: 1585883a add r2,r2,r22 + aa64: 843fffc4 addi r16,r16,-1 + aa68: 1580562e bgeu r2,r22,abc4 <__umoddi3+0x614> + aa6c: d9800017 ldw r6,0(sp) + aa70: e022943a slli r17,fp,16 + aa74: 302ed43a srli r23,r6,16 + aa78: 8462b03a or r17,r16,r17 + aa7c: 34ffffcc andi r19,r6,65535 + aa80: 882ad43a srli r21,r17,16 + aa84: 8c7fffcc andi r17,r17,65535 + aa88: 8809883a mov r4,r17 + aa8c: 980b883a mov r5,r19 + aa90: 1521c83a sub r16,r2,r20 + aa94: 0002b2c0 call 2b2c <__mulsi3> + aa98: 8809883a mov r4,r17 + aa9c: b80b883a mov r5,r23 + aaa0: 1029883a mov r20,r2 + aaa4: 0002b2c0 call 2b2c <__mulsi3> + aaa8: 980b883a mov r5,r19 + aaac: a809883a mov r4,r21 + aab0: 1023883a mov r17,r2 + aab4: 0002b2c0 call 2b2c <__mulsi3> + aab8: a809883a mov r4,r21 + aabc: b80b883a mov r5,r23 + aac0: 1027883a mov r19,r2 + aac4: 0002b2c0 call 2b2c <__mulsi3> + aac8: 100b883a mov r5,r2 + aacc: a004d43a srli r2,r20,16 + aad0: 8ce3883a add r17,r17,r19 + aad4: 1449883a add r4,r2,r17 + aad8: 24c0022e bgeu r4,r19,aae4 <__umoddi3+0x534> + aadc: 00800074 movhi r2,1 + aae0: 288b883a add r5,r5,r2 + aae4: 2004d43a srli r2,r4,16 + aae8: 2008943a slli r4,r4,16 + aaec: a0ffffcc andi r3,r20,65535 + aaf0: 288d883a add r6,r5,r2 + aaf4: 20c9883a add r4,r4,r3 + aaf8: 81800b36 bltu r16,r6,ab28 <__umoddi3+0x578> + aafc: 81804026 beq r16,r6,ac00 <__umoddi3+0x650> + ab00: 818dc83a sub r6,r16,r6 + ab04: 00000f06 br ab44 <__umoddi3+0x594> + ab08: 30c5c83a sub r2,r6,r3 + ab0c: 182d883a mov r22,r3 + ab10: 8084d83a srl r2,r16,r2 + ab14: a8c6983a sll r3,r21,r3 + ab18: 9da6983a sll r19,r19,r22 + ab1c: 85a0983a sll r16,r16,r22 + ab20: 18aab03a or r21,r3,r2 + ab24: 003f1d06 br a79c <__umoddi3+0x1ec> + ab28: d8c00017 ldw r3,0(sp) + ab2c: 20c5c83a sub r2,r4,r3 + ab30: 2089803a cmpltu r4,r4,r2 + ab34: 3587c83a sub r3,r6,r22 + ab38: 1907c83a sub r3,r3,r4 + ab3c: 80cdc83a sub r6,r16,r3 + ab40: 1009883a mov r4,r2 + ab44: d9400117 ldw r5,4(sp) + ab48: 2905c83a sub r2,r5,r4 + ab4c: 2887803a cmpltu r3,r5,r2 + ab50: 30c7c83a sub r3,r6,r3 + ab54: d9800317 ldw r6,12(sp) + ab58: 1484d83a srl r2,r2,r18 + ab5c: 1988983a sll r4,r3,r6 + ab60: 1c86d83a srl r3,r3,r18 + ab64: 2088b03a or r4,r4,r2 + ab68: 2011883a mov r8,r4 + ab6c: 1813883a mov r9,r3 + ab70: d9000415 stw r4,16(sp) + ab74: d8c00515 stw r3,20(sp) + ab78: 003ed406 br a6cc <__umoddi3+0x11c> + ab7c: 01400604 movi r5,24 + ab80: 2805883a mov r2,r5 + ab84: 003ea606 br a620 <__umoddi3+0x70> + ab88: 01400204 movi r5,8 + ab8c: 2805883a mov r2,r5 + ab90: 003ea306 br a620 <__umoddi3+0x70> + ab94: 01400204 movi r5,8 + ab98: 2805883a mov r2,r5 + ab9c: 003edf06 br a71c <__umoddi3+0x16c> + aba0: 01400204 movi r5,8 + aba4: 2805883a mov r2,r5 + aba8: 003ef206 br a774 <__umoddi3+0x1c4> + abac: 01400604 movi r5,24 + abb0: 2805883a mov r2,r5 + abb4: 003eef06 br a774 <__umoddi3+0x1c4> + abb8: 01400604 movi r5,24 + abbc: 2805883a mov r2,r5 + abc0: 003ed606 br a71c <__umoddi3+0x16c> + abc4: 153fa92e bgeu r2,r20,aa6c <__umoddi3+0x4bc> + abc8: 843fffc4 addi r16,r16,-1 + abcc: 1585883a add r2,r2,r22 + abd0: 003fa606 br aa6c <__umoddi3+0x4bc> + abd4: 157f912e bgeu r2,r21,aa1c <__umoddi3+0x46c> + abd8: e73fffc4 addi fp,fp,-1 + abdc: 1585883a add r2,r2,r22 + abe0: 003f8e06 br aa1c <__umoddi3+0x46c> + abe4: 157f542e bgeu r2,r21,a938 <__umoddi3+0x388> + abe8: 14c5883a add r2,r2,r19 + abec: 003f5206 br a938 <__umoddi3+0x388> + abf0: 14c5883a add r2,r2,r19 + abf4: 003efc06 br a7e8 <__umoddi3+0x238> + abf8: 14c5883a add r2,r2,r19 + abfc: 003ea606 br a698 <__umoddi3+0xe8> + ac00: d8800117 ldw r2,4(sp) + ac04: 113fc836 bltu r2,r4,ab28 <__umoddi3+0x578> + ac08: 000d883a mov r6,zero + ac0c: 003fcd06 br ab44 <__umoddi3+0x594> + +0000ac10 <_fpadd_parts>: + ac10: defff804 addi sp,sp,-32 + ac14: dcc00315 stw r19,12(sp) + ac18: 2027883a mov r19,r4 + ac1c: 21000017 ldw r4,0(r4) + ac20: 00c00044 movi r3,1 + ac24: dd400515 stw r21,20(sp) + ac28: dd000415 stw r20,16(sp) + ac2c: ddc00715 stw r23,28(sp) + ac30: dd800615 stw r22,24(sp) + ac34: dc800215 stw r18,8(sp) + ac38: dc400115 stw r17,4(sp) + ac3c: dc000015 stw r16,0(sp) + ac40: 282b883a mov r21,r5 + ac44: 3029883a mov r20,r6 + ac48: 1900632e bgeu r3,r4,add8 <_fpadd_parts+0x1c8> + ac4c: 28800017 ldw r2,0(r5) + ac50: 1880812e bgeu r3,r2,ae58 <_fpadd_parts+0x248> + ac54: 00c00104 movi r3,4 + ac58: 20c0dc26 beq r4,r3,afcc <_fpadd_parts+0x3bc> + ac5c: 10c07e26 beq r2,r3,ae58 <_fpadd_parts+0x248> + ac60: 00c00084 movi r3,2 + ac64: 10c06726 beq r2,r3,ae04 <_fpadd_parts+0x1f4> + ac68: 20c07b26 beq r4,r3,ae58 <_fpadd_parts+0x248> + ac6c: 9dc00217 ldw r23,8(r19) + ac70: 28c00217 ldw r3,8(r5) + ac74: 9c400317 ldw r17,12(r19) + ac78: 2bc00317 ldw r15,12(r5) + ac7c: b8cdc83a sub r6,r23,r3 + ac80: 9c800417 ldw r18,16(r19) + ac84: 2c000417 ldw r16,16(r5) + ac88: 3009883a mov r4,r6 + ac8c: 30009716 blt r6,zero,aeec <_fpadd_parts+0x2dc> + ac90: 00800fc4 movi r2,63 + ac94: 11806b16 blt r2,r6,ae44 <_fpadd_parts+0x234> + ac98: 0100a40e bge zero,r4,af2c <_fpadd_parts+0x31c> + ac9c: 35bff804 addi r22,r6,-32 + aca0: b000bc16 blt r22,zero,af94 <_fpadd_parts+0x384> + aca4: 8596d83a srl r11,r16,r22 + aca8: 0019883a mov r12,zero + acac: 0013883a mov r9,zero + acb0: 01000044 movi r4,1 + acb4: 0015883a mov r10,zero + acb8: b000be16 blt r22,zero,afb4 <_fpadd_parts+0x3a4> + acbc: 2590983a sll r8,r4,r22 + acc0: 000f883a mov r7,zero + acc4: 00bfffc4 movi r2,-1 + acc8: 3889883a add r4,r7,r2 + accc: 408b883a add r5,r8,r2 + acd0: 21cd803a cmpltu r6,r4,r7 + acd4: 314b883a add r5,r6,r5 + acd8: 7904703a and r2,r15,r4 + acdc: 8146703a and r3,r16,r5 + ace0: 10c4b03a or r2,r2,r3 + ace4: 10000226 beq r2,zero,acf0 <_fpadd_parts+0xe0> + ace8: 02400044 movi r9,1 + acec: 0015883a mov r10,zero + acf0: 5a5eb03a or r15,r11,r9 + acf4: 62a0b03a or r16,r12,r10 + acf8: 99400117 ldw r5,4(r19) + acfc: a8800117 ldw r2,4(r21) + ad00: 28806e26 beq r5,r2,aebc <_fpadd_parts+0x2ac> + ad04: 28006626 beq r5,zero,aea0 <_fpadd_parts+0x290> + ad08: 7c45c83a sub r2,r15,r17 + ad0c: 7889803a cmpltu r4,r15,r2 + ad10: 8487c83a sub r3,r16,r18 + ad14: 1909c83a sub r4,r3,r4 + ad18: 100d883a mov r6,r2 + ad1c: 200f883a mov r7,r4 + ad20: 38007716 blt r7,zero,af00 <_fpadd_parts+0x2f0> + ad24: a5c00215 stw r23,8(r20) + ad28: a1c00415 stw r7,16(r20) + ad2c: a0000115 stw zero,4(r20) + ad30: a1800315 stw r6,12(r20) + ad34: a2000317 ldw r8,12(r20) + ad38: a2400417 ldw r9,16(r20) + ad3c: 00bfffc4 movi r2,-1 + ad40: 408b883a add r5,r8,r2 + ad44: 2a09803a cmpltu r4,r5,r8 + ad48: 488d883a add r6,r9,r2 + ad4c: 01c40034 movhi r7,4096 + ad50: 39ffffc4 addi r7,r7,-1 + ad54: 218d883a add r6,r4,r6 + ad58: 39801736 bltu r7,r6,adb8 <_fpadd_parts+0x1a8> + ad5c: 31c06526 beq r6,r7,aef4 <_fpadd_parts+0x2e4> + ad60: a3000217 ldw r12,8(r20) + ad64: 4209883a add r4,r8,r8 + ad68: 00bfffc4 movi r2,-1 + ad6c: 220f803a cmpltu r7,r4,r8 + ad70: 4a4b883a add r5,r9,r9 + ad74: 394f883a add r7,r7,r5 + ad78: 2095883a add r10,r4,r2 + ad7c: 3897883a add r11,r7,r2 + ad80: 510d803a cmpltu r6,r10,r4 + ad84: 6099883a add r12,r12,r2 + ad88: 32d7883a add r11,r6,r11 + ad8c: 00840034 movhi r2,4096 + ad90: 10bfffc4 addi r2,r2,-1 + ad94: 2011883a mov r8,r4 + ad98: 3813883a mov r9,r7 + ad9c: a1000315 stw r4,12(r20) + ada0: a1c00415 stw r7,16(r20) + ada4: a3000215 stw r12,8(r20) + ada8: 12c00336 bltu r2,r11,adb8 <_fpadd_parts+0x1a8> + adac: 58bfed1e bne r11,r2,ad64 <_fpadd_parts+0x154> + adb0: 00bfff84 movi r2,-2 + adb4: 12bfeb2e bgeu r2,r10,ad64 <_fpadd_parts+0x154> + adb8: a2800417 ldw r10,16(r20) + adbc: 008000c4 movi r2,3 + adc0: 00c80034 movhi r3,8192 + adc4: 18ffffc4 addi r3,r3,-1 + adc8: a2400317 ldw r9,12(r20) + adcc: a0800015 stw r2,0(r20) + add0: 1a802336 bltu r3,r10,ae60 <_fpadd_parts+0x250> + add4: a027883a mov r19,r20 + add8: 9805883a mov r2,r19 + addc: ddc00717 ldw r23,28(sp) + ade0: dd800617 ldw r22,24(sp) + ade4: dd400517 ldw r21,20(sp) + ade8: dd000417 ldw r20,16(sp) + adec: dcc00317 ldw r19,12(sp) + adf0: dc800217 ldw r18,8(sp) + adf4: dc400117 ldw r17,4(sp) + adf8: dc000017 ldw r16,0(sp) + adfc: dec00804 addi sp,sp,32 + ae00: f800283a ret + ae04: 20fff41e bne r4,r3,add8 <_fpadd_parts+0x1c8> + ae08: 31000015 stw r4,0(r6) + ae0c: 98800117 ldw r2,4(r19) + ae10: 30800115 stw r2,4(r6) + ae14: 98c00217 ldw r3,8(r19) + ae18: 30c00215 stw r3,8(r6) + ae1c: 98800317 ldw r2,12(r19) + ae20: 30800315 stw r2,12(r6) + ae24: 98c00417 ldw r3,16(r19) + ae28: 30c00415 stw r3,16(r6) + ae2c: 98800117 ldw r2,4(r19) + ae30: 28c00117 ldw r3,4(r5) + ae34: 3027883a mov r19,r6 + ae38: 10c4703a and r2,r2,r3 + ae3c: 30800115 stw r2,4(r6) + ae40: 003fe506 br add8 <_fpadd_parts+0x1c8> + ae44: 1dc02616 blt r3,r23,aee0 <_fpadd_parts+0x2d0> + ae48: 0023883a mov r17,zero + ae4c: 182f883a mov r23,r3 + ae50: 0025883a mov r18,zero + ae54: 003fa806 br acf8 <_fpadd_parts+0xe8> + ae58: a827883a mov r19,r21 + ae5c: 003fde06 br add8 <_fpadd_parts+0x1c8> + ae60: 01800044 movi r6,1 + ae64: 500497fa slli r2,r10,31 + ae68: 4808d07a srli r4,r9,1 + ae6c: 518ad83a srl r5,r10,r6 + ae70: a2000217 ldw r8,8(r20) + ae74: 1108b03a or r4,r2,r4 + ae78: 0007883a mov r3,zero + ae7c: 4984703a and r2,r9,r6 + ae80: 208cb03a or r6,r4,r2 + ae84: 28ceb03a or r7,r5,r3 + ae88: 42000044 addi r8,r8,1 + ae8c: a027883a mov r19,r20 + ae90: a1c00415 stw r7,16(r20) + ae94: a2000215 stw r8,8(r20) + ae98: a1800315 stw r6,12(r20) + ae9c: 003fce06 br add8 <_fpadd_parts+0x1c8> + aea0: 8bc5c83a sub r2,r17,r15 + aea4: 8889803a cmpltu r4,r17,r2 + aea8: 9407c83a sub r3,r18,r16 + aeac: 1909c83a sub r4,r3,r4 + aeb0: 100d883a mov r6,r2 + aeb4: 200f883a mov r7,r4 + aeb8: 003f9906 br ad20 <_fpadd_parts+0x110> + aebc: 7c45883a add r2,r15,r17 + aec0: 13c9803a cmpltu r4,r2,r15 + aec4: 8487883a add r3,r16,r18 + aec8: 20c9883a add r4,r4,r3 + aecc: a1400115 stw r5,4(r20) + aed0: a5c00215 stw r23,8(r20) + aed4: a0800315 stw r2,12(r20) + aed8: a1000415 stw r4,16(r20) + aedc: 003fb606 br adb8 <_fpadd_parts+0x1a8> + aee0: 001f883a mov r15,zero + aee4: 0021883a mov r16,zero + aee8: 003f8306 br acf8 <_fpadd_parts+0xe8> + aeec: 018dc83a sub r6,zero,r6 + aef0: 003f6706 br ac90 <_fpadd_parts+0x80> + aef4: 00bfff84 movi r2,-2 + aef8: 117faf36 bltu r2,r5,adb8 <_fpadd_parts+0x1a8> + aefc: 003f9806 br ad60 <_fpadd_parts+0x150> + af00: 0005883a mov r2,zero + af04: 1189c83a sub r4,r2,r6 + af08: 1105803a cmpltu r2,r2,r4 + af0c: 01cbc83a sub r5,zero,r7 + af10: 2885c83a sub r2,r5,r2 + af14: 01800044 movi r6,1 + af18: a1800115 stw r6,4(r20) + af1c: a5c00215 stw r23,8(r20) + af20: a1000315 stw r4,12(r20) + af24: a0800415 stw r2,16(r20) + af28: 003f8206 br ad34 <_fpadd_parts+0x124> + af2c: 203f7226 beq r4,zero,acf8 <_fpadd_parts+0xe8> + af30: 35bff804 addi r22,r6,-32 + af34: b9af883a add r23,r23,r6 + af38: b0003116 blt r22,zero,b000 <_fpadd_parts+0x3f0> + af3c: 959ad83a srl r13,r18,r22 + af40: 001d883a mov r14,zero + af44: 000f883a mov r7,zero + af48: 01000044 movi r4,1 + af4c: 0011883a mov r8,zero + af50: b0002516 blt r22,zero,afe8 <_fpadd_parts+0x3d8> + af54: 2594983a sll r10,r4,r22 + af58: 0013883a mov r9,zero + af5c: 00bfffc4 movi r2,-1 + af60: 4889883a add r4,r9,r2 + af64: 508b883a add r5,r10,r2 + af68: 224d803a cmpltu r6,r4,r9 + af6c: 314b883a add r5,r6,r5 + af70: 8904703a and r2,r17,r4 + af74: 9146703a and r3,r18,r5 + af78: 10c4b03a or r2,r2,r3 + af7c: 10000226 beq r2,zero,af88 <_fpadd_parts+0x378> + af80: 01c00044 movi r7,1 + af84: 0011883a mov r8,zero + af88: 69e2b03a or r17,r13,r7 + af8c: 7224b03a or r18,r14,r8 + af90: 003f5906 br acf8 <_fpadd_parts+0xe8> + af94: 8407883a add r3,r16,r16 + af98: 008007c4 movi r2,31 + af9c: 1185c83a sub r2,r2,r6 + afa0: 1886983a sll r3,r3,r2 + afa4: 7996d83a srl r11,r15,r6 + afa8: 8198d83a srl r12,r16,r6 + afac: 1ad6b03a or r11,r3,r11 + afb0: 003f3e06 br acac <_fpadd_parts+0x9c> + afb4: 2006d07a srli r3,r4,1 + afb8: 008007c4 movi r2,31 + afbc: 1185c83a sub r2,r2,r6 + afc0: 1890d83a srl r8,r3,r2 + afc4: 218e983a sll r7,r4,r6 + afc8: 003f3e06 br acc4 <_fpadd_parts+0xb4> + afcc: 113f821e bne r2,r4,add8 <_fpadd_parts+0x1c8> + afd0: 28c00117 ldw r3,4(r5) + afd4: 98800117 ldw r2,4(r19) + afd8: 10ff7f26 beq r2,r3,add8 <_fpadd_parts+0x1c8> + afdc: 04c00074 movhi r19,1 + afe0: 9cc11804 addi r19,r19,1120 + afe4: 003f7c06 br add8 <_fpadd_parts+0x1c8> + afe8: 2006d07a srli r3,r4,1 + afec: 008007c4 movi r2,31 + aff0: 1185c83a sub r2,r2,r6 + aff4: 1894d83a srl r10,r3,r2 + aff8: 2192983a sll r9,r4,r6 + affc: 003fd706 br af5c <_fpadd_parts+0x34c> + b000: 9487883a add r3,r18,r18 + b004: 008007c4 movi r2,31 + b008: 1185c83a sub r2,r2,r6 + b00c: 1886983a sll r3,r3,r2 + b010: 899ad83a srl r13,r17,r6 + b014: 919cd83a srl r14,r18,r6 + b018: 1b5ab03a or r13,r3,r13 + b01c: 003fc906 br af44 <_fpadd_parts+0x334> + +0000b020 <__subdf3>: + b020: deffea04 addi sp,sp,-88 + b024: dcc01415 stw r19,80(sp) + b028: dcc00404 addi r19,sp,16 + b02c: 2011883a mov r8,r4 + b030: 2813883a mov r9,r5 + b034: dc401315 stw r17,76(sp) + b038: d809883a mov r4,sp + b03c: 980b883a mov r5,r19 + b040: dc400904 addi r17,sp,36 + b044: dfc01515 stw ra,84(sp) + b048: da400115 stw r9,4(sp) + b04c: d9c00315 stw r7,12(sp) + b050: da000015 stw r8,0(sp) + b054: d9800215 stw r6,8(sp) + b058: 000c1f40 call c1f4 <__unpack_d> + b05c: d9000204 addi r4,sp,8 + b060: 880b883a mov r5,r17 + b064: 000c1f40 call c1f4 <__unpack_d> + b068: d8800a17 ldw r2,40(sp) + b06c: 880b883a mov r5,r17 + b070: 9809883a mov r4,r19 + b074: d9800e04 addi r6,sp,56 + b078: 1080005c xori r2,r2,1 + b07c: d8800a15 stw r2,40(sp) + b080: 000ac100 call ac10 <_fpadd_parts> + b084: 1009883a mov r4,r2 + b088: 000bee00 call bee0 <__pack_d> + b08c: dfc01517 ldw ra,84(sp) + b090: dcc01417 ldw r19,80(sp) + b094: dc401317 ldw r17,76(sp) + b098: dec01604 addi sp,sp,88 + b09c: f800283a ret + +0000b0a0 <__adddf3>: + b0a0: deffea04 addi sp,sp,-88 + b0a4: dcc01415 stw r19,80(sp) + b0a8: dcc00404 addi r19,sp,16 + b0ac: 2011883a mov r8,r4 + b0b0: 2813883a mov r9,r5 + b0b4: dc401315 stw r17,76(sp) + b0b8: d809883a mov r4,sp + b0bc: 980b883a mov r5,r19 + b0c0: dc400904 addi r17,sp,36 + b0c4: dfc01515 stw ra,84(sp) + b0c8: da400115 stw r9,4(sp) + b0cc: d9c00315 stw r7,12(sp) + b0d0: da000015 stw r8,0(sp) + b0d4: d9800215 stw r6,8(sp) + b0d8: 000c1f40 call c1f4 <__unpack_d> + b0dc: d9000204 addi r4,sp,8 + b0e0: 880b883a mov r5,r17 + b0e4: 000c1f40 call c1f4 <__unpack_d> + b0e8: d9800e04 addi r6,sp,56 + b0ec: 9809883a mov r4,r19 + b0f0: 880b883a mov r5,r17 + b0f4: 000ac100 call ac10 <_fpadd_parts> + b0f8: 1009883a mov r4,r2 + b0fc: 000bee00 call bee0 <__pack_d> + b100: dfc01517 ldw ra,84(sp) + b104: dcc01417 ldw r19,80(sp) + b108: dc401317 ldw r17,76(sp) + b10c: dec01604 addi sp,sp,88 + b110: f800283a ret + +0000b114 <__muldf3>: + b114: deffe004 addi sp,sp,-128 + b118: dc401815 stw r17,96(sp) + b11c: dc400404 addi r17,sp,16 + b120: 2011883a mov r8,r4 + b124: 2813883a mov r9,r5 + b128: dc001715 stw r16,92(sp) + b12c: d809883a mov r4,sp + b130: 880b883a mov r5,r17 + b134: dc000904 addi r16,sp,36 + b138: dfc01f15 stw ra,124(sp) + b13c: da400115 stw r9,4(sp) + b140: d9c00315 stw r7,12(sp) + b144: da000015 stw r8,0(sp) + b148: d9800215 stw r6,8(sp) + b14c: ddc01e15 stw r23,120(sp) + b150: dd801d15 stw r22,116(sp) + b154: dd401c15 stw r21,112(sp) + b158: dd001b15 stw r20,108(sp) + b15c: dcc01a15 stw r19,104(sp) + b160: dc801915 stw r18,100(sp) + b164: 000c1f40 call c1f4 <__unpack_d> + b168: d9000204 addi r4,sp,8 + b16c: 800b883a mov r5,r16 + b170: 000c1f40 call c1f4 <__unpack_d> + b174: d9000417 ldw r4,16(sp) + b178: 00800044 movi r2,1 + b17c: 1100102e bgeu r2,r4,b1c0 <__muldf3+0xac> + b180: d8c00917 ldw r3,36(sp) + b184: 10c0062e bgeu r2,r3,b1a0 <__muldf3+0x8c> + b188: 00800104 movi r2,4 + b18c: 20800a26 beq r4,r2,b1b8 <__muldf3+0xa4> + b190: 1880cc26 beq r3,r2,b4c4 <__muldf3+0x3b0> + b194: 00800084 movi r2,2 + b198: 20800926 beq r4,r2,b1c0 <__muldf3+0xac> + b19c: 1880191e bne r3,r2,b204 <__muldf3+0xf0> + b1a0: d8c00a17 ldw r3,40(sp) + b1a4: d8800517 ldw r2,20(sp) + b1a8: 8009883a mov r4,r16 + b1ac: 10c4c03a cmpne r2,r2,r3 + b1b0: d8800a15 stw r2,40(sp) + b1b4: 00000706 br b1d4 <__muldf3+0xc0> + b1b8: 00800084 movi r2,2 + b1bc: 1880c326 beq r3,r2,b4cc <__muldf3+0x3b8> + b1c0: d8800517 ldw r2,20(sp) + b1c4: d8c00a17 ldw r3,40(sp) + b1c8: 8809883a mov r4,r17 + b1cc: 10c4c03a cmpne r2,r2,r3 + b1d0: d8800515 stw r2,20(sp) + b1d4: 000bee00 call bee0 <__pack_d> + b1d8: dfc01f17 ldw ra,124(sp) + b1dc: ddc01e17 ldw r23,120(sp) + b1e0: dd801d17 ldw r22,116(sp) + b1e4: dd401c17 ldw r21,112(sp) + b1e8: dd001b17 ldw r20,108(sp) + b1ec: dcc01a17 ldw r19,104(sp) + b1f0: dc801917 ldw r18,100(sp) + b1f4: dc401817 ldw r17,96(sp) + b1f8: dc001717 ldw r16,92(sp) + b1fc: dec02004 addi sp,sp,128 + b200: f800283a ret + b204: dd800717 ldw r22,28(sp) + b208: dc800c17 ldw r18,48(sp) + b20c: 002b883a mov r21,zero + b210: 0023883a mov r17,zero + b214: a80b883a mov r5,r21 + b218: b00d883a mov r6,r22 + b21c: 880f883a mov r7,r17 + b220: ddc00817 ldw r23,32(sp) + b224: dcc00d17 ldw r19,52(sp) + b228: 9009883a mov r4,r18 + b22c: 000bd3c0 call bd3c <__muldi3> + b230: 001b883a mov r13,zero + b234: 680f883a mov r7,r13 + b238: b009883a mov r4,r22 + b23c: 000b883a mov r5,zero + b240: 980d883a mov r6,r19 + b244: b82d883a mov r22,r23 + b248: 002f883a mov r23,zero + b24c: db401615 stw r13,88(sp) + b250: d8801315 stw r2,76(sp) + b254: d8c01415 stw r3,80(sp) + b258: dcc01515 stw r19,84(sp) + b25c: 000bd3c0 call bd3c <__muldi3> + b260: b00d883a mov r6,r22 + b264: 000b883a mov r5,zero + b268: 9009883a mov r4,r18 + b26c: b80f883a mov r7,r23 + b270: 1021883a mov r16,r2 + b274: 1823883a mov r17,r3 + b278: 000bd3c0 call bd3c <__muldi3> + b27c: 8085883a add r2,r16,r2 + b280: 140d803a cmpltu r6,r2,r16 + b284: 88c7883a add r3,r17,r3 + b288: 30cd883a add r6,r6,r3 + b28c: 1029883a mov r20,r2 + b290: 302b883a mov r21,r6 + b294: da801317 ldw r10,76(sp) + b298: dac01417 ldw r11,80(sp) + b29c: db001517 ldw r12,84(sp) + b2a0: db401617 ldw r13,88(sp) + b2a4: 3440612e bgeu r6,r17,b42c <__muldf3+0x318> + b2a8: 0009883a mov r4,zero + b2ac: 5105883a add r2,r10,r4 + b2b0: 128d803a cmpltu r6,r2,r10 + b2b4: 5d07883a add r3,r11,r20 + b2b8: 30cd883a add r6,r6,r3 + b2bc: 0021883a mov r16,zero + b2c0: 04400044 movi r17,1 + b2c4: 1025883a mov r18,r2 + b2c8: 3027883a mov r19,r6 + b2cc: 32c06236 bltu r6,r11,b458 <__muldf3+0x344> + b2d0: 59807a26 beq r11,r6,b4bc <__muldf3+0x3a8> + b2d4: 680b883a mov r5,r13 + b2d8: b80f883a mov r7,r23 + b2dc: 6009883a mov r4,r12 + b2e0: b00d883a mov r6,r22 + b2e4: 000bd3c0 call bd3c <__muldi3> + b2e8: 1009883a mov r4,r2 + b2ec: 000f883a mov r7,zero + b2f0: 1545883a add r2,r2,r21 + b2f4: 1111803a cmpltu r8,r2,r4 + b2f8: 19c7883a add r3,r3,r7 + b2fc: 40c7883a add r3,r8,r3 + b300: 88cb883a add r5,r17,r3 + b304: d8c00617 ldw r3,24(sp) + b308: 8089883a add r4,r16,r2 + b30c: d8800b17 ldw r2,44(sp) + b310: 18c00104 addi r3,r3,4 + b314: 240d803a cmpltu r6,r4,r16 + b318: 10c7883a add r3,r2,r3 + b31c: 2013883a mov r9,r4 + b320: d8800a17 ldw r2,40(sp) + b324: d9000517 ldw r4,20(sp) + b328: 314d883a add r6,r6,r5 + b32c: 3015883a mov r10,r6 + b330: 2088c03a cmpne r4,r4,r2 + b334: 00880034 movhi r2,8192 + b338: 10bfffc4 addi r2,r2,-1 + b33c: d9000f15 stw r4,60(sp) + b340: d8c01015 stw r3,64(sp) + b344: 1180162e bgeu r2,r6,b3a0 <__muldf3+0x28c> + b348: 1811883a mov r8,r3 + b34c: 101f883a mov r15,r2 + b350: 980497fa slli r2,r19,31 + b354: 9016d07a srli r11,r18,1 + b358: 500697fa slli r3,r10,31 + b35c: 480cd07a srli r6,r9,1 + b360: 500ed07a srli r7,r10,1 + b364: 12d6b03a or r11,r2,r11 + b368: 00800044 movi r2,1 + b36c: 198cb03a or r6,r3,r6 + b370: 4888703a and r4,r9,r2 + b374: 9818d07a srli r12,r19,1 + b378: 001b883a mov r13,zero + b37c: 03a00034 movhi r14,32768 + b380: 3013883a mov r9,r6 + b384: 3815883a mov r10,r7 + b388: 4091883a add r8,r8,r2 + b38c: 20000226 beq r4,zero,b398 <__muldf3+0x284> + b390: 5b64b03a or r18,r11,r13 + b394: 63a6b03a or r19,r12,r14 + b398: 7abfed36 bltu r15,r10,b350 <__muldf3+0x23c> + b39c: da001015 stw r8,64(sp) + b3a0: 00840034 movhi r2,4096 + b3a4: 10bfffc4 addi r2,r2,-1 + b3a8: 12801436 bltu r2,r10,b3fc <__muldf3+0x2e8> + b3ac: da001017 ldw r8,64(sp) + b3b0: 101f883a mov r15,r2 + b3b4: 4a45883a add r2,r9,r9 + b3b8: 124d803a cmpltu r6,r2,r9 + b3bc: 5287883a add r3,r10,r10 + b3c0: 9497883a add r11,r18,r18 + b3c4: 5c8f803a cmpltu r7,r11,r18 + b3c8: 9cd9883a add r12,r19,r19 + b3cc: 01000044 movi r4,1 + b3d0: 30cd883a add r6,r6,r3 + b3d4: 3b0f883a add r7,r7,r12 + b3d8: 423fffc4 addi r8,r8,-1 + b3dc: 1013883a mov r9,r2 + b3e0: 3015883a mov r10,r6 + b3e4: 111ab03a or r13,r2,r4 + b3e8: 98003016 blt r19,zero,b4ac <__muldf3+0x398> + b3ec: 5825883a mov r18,r11 + b3f0: 3827883a mov r19,r7 + b3f4: 7abfef2e bgeu r15,r10,b3b4 <__muldf3+0x2a0> + b3f8: da001015 stw r8,64(sp) + b3fc: 00803fc4 movi r2,255 + b400: 488e703a and r7,r9,r2 + b404: 00802004 movi r2,128 + b408: 0007883a mov r3,zero + b40c: 0011883a mov r8,zero + b410: 38801826 beq r7,r2,b474 <__muldf3+0x360> + b414: 008000c4 movi r2,3 + b418: d9000e04 addi r4,sp,56 + b41c: da801215 stw r10,72(sp) + b420: d8800e15 stw r2,56(sp) + b424: da401115 stw r9,68(sp) + b428: 003f6a06 br b1d4 <__muldf3+0xc0> + b42c: 89802126 beq r17,r6,b4b4 <__muldf3+0x3a0> + b430: 0009883a mov r4,zero + b434: 5105883a add r2,r10,r4 + b438: 128d803a cmpltu r6,r2,r10 + b43c: 5d07883a add r3,r11,r20 + b440: 30cd883a add r6,r6,r3 + b444: 0021883a mov r16,zero + b448: 0023883a mov r17,zero + b44c: 1025883a mov r18,r2 + b450: 3027883a mov r19,r6 + b454: 32ff9e2e bgeu r6,r11,b2d0 <__muldf3+0x1bc> + b458: 00800044 movi r2,1 + b45c: 8089883a add r4,r16,r2 + b460: 240d803a cmpltu r6,r4,r16 + b464: 344d883a add r6,r6,r17 + b468: 2021883a mov r16,r4 + b46c: 3023883a mov r17,r6 + b470: 003f9806 br b2d4 <__muldf3+0x1c0> + b474: 403fe71e bne r8,zero,b414 <__muldf3+0x300> + b478: 01004004 movi r4,256 + b47c: 4904703a and r2,r9,r4 + b480: 10c4b03a or r2,r2,r3 + b484: 103fe31e bne r2,zero,b414 <__muldf3+0x300> + b488: 94c4b03a or r2,r18,r19 + b48c: 103fe126 beq r2,zero,b414 <__muldf3+0x300> + b490: 49c5883a add r2,r9,r7 + b494: 1251803a cmpltu r8,r2,r9 + b498: 4291883a add r8,r8,r10 + b49c: 013fc004 movi r4,-256 + b4a0: 1112703a and r9,r2,r4 + b4a4: 4015883a mov r10,r8 + b4a8: 003fda06 br b414 <__muldf3+0x300> + b4ac: 6813883a mov r9,r13 + b4b0: 003fce06 br b3ec <__muldf3+0x2d8> + b4b4: 143f7c36 bltu r2,r16,b2a8 <__muldf3+0x194> + b4b8: 003fdd06 br b430 <__muldf3+0x31c> + b4bc: 12bf852e bgeu r2,r10,b2d4 <__muldf3+0x1c0> + b4c0: 003fe506 br b458 <__muldf3+0x344> + b4c4: 00800084 movi r2,2 + b4c8: 20bf351e bne r4,r2,b1a0 <__muldf3+0x8c> + b4cc: 01000074 movhi r4,1 + b4d0: 21011804 addi r4,r4,1120 + b4d4: 003f3f06 br b1d4 <__muldf3+0xc0> + +0000b4d8 <__divdf3>: + b4d8: deffed04 addi sp,sp,-76 + b4dc: dcc01115 stw r19,68(sp) + b4e0: dcc00404 addi r19,sp,16 + b4e4: 2011883a mov r8,r4 + b4e8: 2813883a mov r9,r5 + b4ec: dc000e15 stw r16,56(sp) + b4f0: d809883a mov r4,sp + b4f4: 980b883a mov r5,r19 + b4f8: dc000904 addi r16,sp,36 + b4fc: dfc01215 stw ra,72(sp) + b500: da400115 stw r9,4(sp) + b504: d9c00315 stw r7,12(sp) + b508: da000015 stw r8,0(sp) + b50c: d9800215 stw r6,8(sp) + b510: dc801015 stw r18,64(sp) + b514: dc400f15 stw r17,60(sp) + b518: 000c1f40 call c1f4 <__unpack_d> + b51c: d9000204 addi r4,sp,8 + b520: 800b883a mov r5,r16 + b524: 000c1f40 call c1f4 <__unpack_d> + b528: d9000417 ldw r4,16(sp) + b52c: 00800044 movi r2,1 + b530: 11000b2e bgeu r2,r4,b560 <__divdf3+0x88> + b534: d9400917 ldw r5,36(sp) + b538: 1140762e bgeu r2,r5,b714 <__divdf3+0x23c> + b53c: d8800517 ldw r2,20(sp) + b540: d8c00a17 ldw r3,40(sp) + b544: 01800104 movi r6,4 + b548: 10c4f03a xor r2,r2,r3 + b54c: d8800515 stw r2,20(sp) + b550: 21800226 beq r4,r6,b55c <__divdf3+0x84> + b554: 00800084 movi r2,2 + b558: 2080141e bne r4,r2,b5ac <__divdf3+0xd4> + b55c: 29000926 beq r5,r4,b584 <__divdf3+0xac> + b560: 9809883a mov r4,r19 + b564: 000bee00 call bee0 <__pack_d> + b568: dfc01217 ldw ra,72(sp) + b56c: dcc01117 ldw r19,68(sp) + b570: dc801017 ldw r18,64(sp) + b574: dc400f17 ldw r17,60(sp) + b578: dc000e17 ldw r16,56(sp) + b57c: dec01304 addi sp,sp,76 + b580: f800283a ret + b584: 01000074 movhi r4,1 + b588: 21011804 addi r4,r4,1120 + b58c: 000bee00 call bee0 <__pack_d> + b590: dfc01217 ldw ra,72(sp) + b594: dcc01117 ldw r19,68(sp) + b598: dc801017 ldw r18,64(sp) + b59c: dc400f17 ldw r17,60(sp) + b5a0: dc000e17 ldw r16,56(sp) + b5a4: dec01304 addi sp,sp,76 + b5a8: f800283a ret + b5ac: 29805b26 beq r5,r6,b71c <__divdf3+0x244> + b5b0: 28802d26 beq r5,r2,b668 <__divdf3+0x190> + b5b4: d8c00617 ldw r3,24(sp) + b5b8: d8800b17 ldw r2,44(sp) + b5bc: d9c00817 ldw r7,32(sp) + b5c0: dc400d17 ldw r17,52(sp) + b5c4: 188bc83a sub r5,r3,r2 + b5c8: d9800717 ldw r6,28(sp) + b5cc: dc000c17 ldw r16,48(sp) + b5d0: d9400615 stw r5,24(sp) + b5d4: 3c403836 bltu r7,r17,b6b8 <__divdf3+0x1e0> + b5d8: 89c03626 beq r17,r7,b6b4 <__divdf3+0x1dc> + b5dc: 0015883a mov r10,zero + b5e0: 001d883a mov r14,zero + b5e4: 02c40034 movhi r11,4096 + b5e8: 001f883a mov r15,zero + b5ec: 003f883a mov ra,zero + b5f0: 04800f44 movi r18,61 + b5f4: 00000f06 br b634 <__divdf3+0x15c> + b5f8: 601d883a mov r14,r12 + b5fc: 681f883a mov r15,r13 + b600: 400d883a mov r6,r8 + b604: 100f883a mov r7,r2 + b608: 3191883a add r8,r6,r6 + b60c: 5808d07a srli r4,r11,1 + b610: 4185803a cmpltu r2,r8,r6 + b614: 39d3883a add r9,r7,r7 + b618: 28c6b03a or r3,r5,r3 + b61c: 1245883a add r2,r2,r9 + b620: 1815883a mov r10,r3 + b624: 2017883a mov r11,r4 + b628: 400d883a mov r6,r8 + b62c: 100f883a mov r7,r2 + b630: fc801726 beq ra,r18,b690 <__divdf3+0x1b8> + b634: 580a97fa slli r5,r11,31 + b638: 5006d07a srli r3,r10,1 + b63c: ffc00044 addi ra,ra,1 + b640: 3c7ff136 bltu r7,r17,b608 <__divdf3+0x130> + b644: 3411c83a sub r8,r6,r16 + b648: 3205803a cmpltu r2,r6,r8 + b64c: 3c53c83a sub r9,r7,r17 + b650: 7298b03a or r12,r14,r10 + b654: 7adab03a or r13,r15,r11 + b658: 4885c83a sub r2,r9,r2 + b65c: 89ffe61e bne r17,r7,b5f8 <__divdf3+0x120> + b660: 343fe936 bltu r6,r16,b608 <__divdf3+0x130> + b664: 003fe406 br b5f8 <__divdf3+0x120> + b668: 9809883a mov r4,r19 + b66c: d9800415 stw r6,16(sp) + b670: 000bee00 call bee0 <__pack_d> + b674: dfc01217 ldw ra,72(sp) + b678: dcc01117 ldw r19,68(sp) + b67c: dc801017 ldw r18,64(sp) + b680: dc400f17 ldw r17,60(sp) + b684: dc000e17 ldw r16,56(sp) + b688: dec01304 addi sp,sp,76 + b68c: f800283a ret + b690: 00803fc4 movi r2,255 + b694: 7090703a and r8,r14,r2 + b698: 00802004 movi r2,128 + b69c: 0007883a mov r3,zero + b6a0: 0013883a mov r9,zero + b6a4: 40800d26 beq r8,r2,b6dc <__divdf3+0x204> + b6a8: dbc00815 stw r15,32(sp) + b6ac: db800715 stw r14,28(sp) + b6b0: 003fab06 br b560 <__divdf3+0x88> + b6b4: 343fc92e bgeu r6,r16,b5dc <__divdf3+0x104> + b6b8: 3185883a add r2,r6,r6 + b6bc: 1189803a cmpltu r4,r2,r6 + b6c0: 39c7883a add r3,r7,r7 + b6c4: 20c9883a add r4,r4,r3 + b6c8: 297fffc4 addi r5,r5,-1 + b6cc: 100d883a mov r6,r2 + b6d0: 200f883a mov r7,r4 + b6d4: d9400615 stw r5,24(sp) + b6d8: 003fc006 br b5dc <__divdf3+0x104> + b6dc: 483ff21e bne r9,zero,b6a8 <__divdf3+0x1d0> + b6e0: 01004004 movi r4,256 + b6e4: 7104703a and r2,r14,r4 + b6e8: 10c4b03a or r2,r2,r3 + b6ec: 103fee1e bne r2,zero,b6a8 <__divdf3+0x1d0> + b6f0: 31c4b03a or r2,r6,r7 + b6f4: 103fec26 beq r2,zero,b6a8 <__divdf3+0x1d0> + b6f8: 7205883a add r2,r14,r8 + b6fc: 1391803a cmpltu r8,r2,r14 + b700: 43d1883a add r8,r8,r15 + b704: 013fc004 movi r4,-256 + b708: 111c703a and r14,r2,r4 + b70c: 401f883a mov r15,r8 + b710: 003fe506 br b6a8 <__divdf3+0x1d0> + b714: 8009883a mov r4,r16 + b718: 003f9206 br b564 <__divdf3+0x8c> + b71c: 9809883a mov r4,r19 + b720: d8000715 stw zero,28(sp) + b724: d8000815 stw zero,32(sp) + b728: d8000615 stw zero,24(sp) + b72c: 003f8d06 br b564 <__divdf3+0x8c> + +0000b730 <__eqdf2>: + b730: deffef04 addi sp,sp,-68 + b734: dc400f15 stw r17,60(sp) + b738: dc400404 addi r17,sp,16 + b73c: 2005883a mov r2,r4 + b740: 2807883a mov r3,r5 + b744: dc000e15 stw r16,56(sp) + b748: d809883a mov r4,sp + b74c: 880b883a mov r5,r17 + b750: dc000904 addi r16,sp,36 + b754: d8c00115 stw r3,4(sp) + b758: d8800015 stw r2,0(sp) + b75c: d9800215 stw r6,8(sp) + b760: dfc01015 stw ra,64(sp) + b764: d9c00315 stw r7,12(sp) + b768: 000c1f40 call c1f4 <__unpack_d> + b76c: d9000204 addi r4,sp,8 + b770: 800b883a mov r5,r16 + b774: 000c1f40 call c1f4 <__unpack_d> + b778: d8800417 ldw r2,16(sp) + b77c: 00c00044 movi r3,1 + b780: 180d883a mov r6,r3 + b784: 1880062e bgeu r3,r2,b7a0 <__eqdf2+0x70> + b788: d8800917 ldw r2,36(sp) + b78c: 8809883a mov r4,r17 + b790: 800b883a mov r5,r16 + b794: 1880022e bgeu r3,r2,b7a0 <__eqdf2+0x70> + b798: 000c32c0 call c32c <__fpcmp_parts_d> + b79c: 100d883a mov r6,r2 + b7a0: 3005883a mov r2,r6 + b7a4: dfc01017 ldw ra,64(sp) + b7a8: dc400f17 ldw r17,60(sp) + b7ac: dc000e17 ldw r16,56(sp) + b7b0: dec01104 addi sp,sp,68 + b7b4: f800283a ret + +0000b7b8 <__nedf2>: + b7b8: deffef04 addi sp,sp,-68 + b7bc: dc400f15 stw r17,60(sp) + b7c0: dc400404 addi r17,sp,16 + b7c4: 2005883a mov r2,r4 + b7c8: 2807883a mov r3,r5 + b7cc: dc000e15 stw r16,56(sp) + b7d0: d809883a mov r4,sp + b7d4: 880b883a mov r5,r17 + b7d8: dc000904 addi r16,sp,36 + b7dc: d8c00115 stw r3,4(sp) + b7e0: d8800015 stw r2,0(sp) + b7e4: d9800215 stw r6,8(sp) + b7e8: dfc01015 stw ra,64(sp) + b7ec: d9c00315 stw r7,12(sp) + b7f0: 000c1f40 call c1f4 <__unpack_d> + b7f4: d9000204 addi r4,sp,8 + b7f8: 800b883a mov r5,r16 + b7fc: 000c1f40 call c1f4 <__unpack_d> + b800: d8800417 ldw r2,16(sp) + b804: 00c00044 movi r3,1 + b808: 180d883a mov r6,r3 + b80c: 1880062e bgeu r3,r2,b828 <__nedf2+0x70> + b810: d8800917 ldw r2,36(sp) + b814: 8809883a mov r4,r17 + b818: 800b883a mov r5,r16 + b81c: 1880022e bgeu r3,r2,b828 <__nedf2+0x70> + b820: 000c32c0 call c32c <__fpcmp_parts_d> + b824: 100d883a mov r6,r2 + b828: 3005883a mov r2,r6 + b82c: dfc01017 ldw ra,64(sp) + b830: dc400f17 ldw r17,60(sp) + b834: dc000e17 ldw r16,56(sp) + b838: dec01104 addi sp,sp,68 + b83c: f800283a ret + +0000b840 <__gtdf2>: + b840: deffef04 addi sp,sp,-68 + b844: dc400f15 stw r17,60(sp) + b848: dc400404 addi r17,sp,16 + b84c: 2005883a mov r2,r4 + b850: 2807883a mov r3,r5 + b854: dc000e15 stw r16,56(sp) + b858: d809883a mov r4,sp + b85c: 880b883a mov r5,r17 + b860: dc000904 addi r16,sp,36 + b864: d8c00115 stw r3,4(sp) + b868: d8800015 stw r2,0(sp) + b86c: d9800215 stw r6,8(sp) + b870: dfc01015 stw ra,64(sp) + b874: d9c00315 stw r7,12(sp) + b878: 000c1f40 call c1f4 <__unpack_d> + b87c: d9000204 addi r4,sp,8 + b880: 800b883a mov r5,r16 + b884: 000c1f40 call c1f4 <__unpack_d> + b888: d8800417 ldw r2,16(sp) + b88c: 00c00044 movi r3,1 + b890: 01bfffc4 movi r6,-1 + b894: 1880062e bgeu r3,r2,b8b0 <__gtdf2+0x70> + b898: d8800917 ldw r2,36(sp) + b89c: 8809883a mov r4,r17 + b8a0: 800b883a mov r5,r16 + b8a4: 1880022e bgeu r3,r2,b8b0 <__gtdf2+0x70> + b8a8: 000c32c0 call c32c <__fpcmp_parts_d> + b8ac: 100d883a mov r6,r2 + b8b0: 3005883a mov r2,r6 + b8b4: dfc01017 ldw ra,64(sp) + b8b8: dc400f17 ldw r17,60(sp) + b8bc: dc000e17 ldw r16,56(sp) + b8c0: dec01104 addi sp,sp,68 + b8c4: f800283a ret + +0000b8c8 <__gedf2>: + b8c8: deffef04 addi sp,sp,-68 + b8cc: dc400f15 stw r17,60(sp) + b8d0: dc400404 addi r17,sp,16 + b8d4: 2005883a mov r2,r4 + b8d8: 2807883a mov r3,r5 + b8dc: dc000e15 stw r16,56(sp) + b8e0: d809883a mov r4,sp + b8e4: 880b883a mov r5,r17 + b8e8: dc000904 addi r16,sp,36 + b8ec: d8c00115 stw r3,4(sp) + b8f0: d8800015 stw r2,0(sp) + b8f4: d9800215 stw r6,8(sp) + b8f8: dfc01015 stw ra,64(sp) + b8fc: d9c00315 stw r7,12(sp) + b900: 000c1f40 call c1f4 <__unpack_d> + b904: d9000204 addi r4,sp,8 + b908: 800b883a mov r5,r16 + b90c: 000c1f40 call c1f4 <__unpack_d> + b910: d8800417 ldw r2,16(sp) + b914: 00c00044 movi r3,1 + b918: 01bfffc4 movi r6,-1 + b91c: 1880062e bgeu r3,r2,b938 <__gedf2+0x70> + b920: d8800917 ldw r2,36(sp) + b924: 8809883a mov r4,r17 + b928: 800b883a mov r5,r16 + b92c: 1880022e bgeu r3,r2,b938 <__gedf2+0x70> + b930: 000c32c0 call c32c <__fpcmp_parts_d> + b934: 100d883a mov r6,r2 + b938: 3005883a mov r2,r6 + b93c: dfc01017 ldw ra,64(sp) + b940: dc400f17 ldw r17,60(sp) + b944: dc000e17 ldw r16,56(sp) + b948: dec01104 addi sp,sp,68 + b94c: f800283a ret + +0000b950 <__ltdf2>: + b950: deffef04 addi sp,sp,-68 + b954: dc400f15 stw r17,60(sp) + b958: dc400404 addi r17,sp,16 + b95c: 2005883a mov r2,r4 + b960: 2807883a mov r3,r5 + b964: dc000e15 stw r16,56(sp) + b968: d809883a mov r4,sp + b96c: 880b883a mov r5,r17 + b970: dc000904 addi r16,sp,36 + b974: d8c00115 stw r3,4(sp) + b978: d8800015 stw r2,0(sp) + b97c: d9800215 stw r6,8(sp) + b980: dfc01015 stw ra,64(sp) + b984: d9c00315 stw r7,12(sp) + b988: 000c1f40 call c1f4 <__unpack_d> + b98c: d9000204 addi r4,sp,8 + b990: 800b883a mov r5,r16 + b994: 000c1f40 call c1f4 <__unpack_d> + b998: d8800417 ldw r2,16(sp) + b99c: 00c00044 movi r3,1 + b9a0: 180d883a mov r6,r3 + b9a4: 1880062e bgeu r3,r2,b9c0 <__ltdf2+0x70> + b9a8: d8800917 ldw r2,36(sp) + b9ac: 8809883a mov r4,r17 + b9b0: 800b883a mov r5,r16 + b9b4: 1880022e bgeu r3,r2,b9c0 <__ltdf2+0x70> + b9b8: 000c32c0 call c32c <__fpcmp_parts_d> + b9bc: 100d883a mov r6,r2 + b9c0: 3005883a mov r2,r6 + b9c4: dfc01017 ldw ra,64(sp) + b9c8: dc400f17 ldw r17,60(sp) + b9cc: dc000e17 ldw r16,56(sp) + b9d0: dec01104 addi sp,sp,68 + b9d4: f800283a ret + +0000b9d8 <__floatsidf>: + b9d8: 2006d7fa srli r3,r4,31 + b9dc: defff604 addi sp,sp,-40 + b9e0: 008000c4 movi r2,3 + b9e4: dfc00915 stw ra,36(sp) + b9e8: dcc00815 stw r19,32(sp) + b9ec: dc800715 stw r18,28(sp) + b9f0: dc400615 stw r17,24(sp) + b9f4: dc000515 stw r16,20(sp) + b9f8: d8800015 stw r2,0(sp) + b9fc: d8c00115 stw r3,4(sp) + ba00: 20000f1e bne r4,zero,ba40 <__floatsidf+0x68> + ba04: 00800084 movi r2,2 + ba08: d8800015 stw r2,0(sp) + ba0c: d809883a mov r4,sp + ba10: 000bee00 call bee0 <__pack_d> + ba14: 1009883a mov r4,r2 + ba18: 180b883a mov r5,r3 + ba1c: 2005883a mov r2,r4 + ba20: 2807883a mov r3,r5 + ba24: dfc00917 ldw ra,36(sp) + ba28: dcc00817 ldw r19,32(sp) + ba2c: dc800717 ldw r18,28(sp) + ba30: dc400617 ldw r17,24(sp) + ba34: dc000517 ldw r16,20(sp) + ba38: dec00a04 addi sp,sp,40 + ba3c: f800283a ret + ba40: 00800f04 movi r2,60 + ba44: 1807003a cmpeq r3,r3,zero + ba48: d8800215 stw r2,8(sp) + ba4c: 18001126 beq r3,zero,ba94 <__floatsidf+0xbc> + ba50: 0027883a mov r19,zero + ba54: 2025883a mov r18,r4 + ba58: d9000315 stw r4,12(sp) + ba5c: dcc00415 stw r19,16(sp) + ba60: 000be600 call be60 <__clzsi2> + ba64: 11000744 addi r4,r2,29 + ba68: 013fe80e bge zero,r4,ba0c <__floatsidf+0x34> + ba6c: 10bfff44 addi r2,r2,-3 + ba70: 10000c16 blt r2,zero,baa4 <__floatsidf+0xcc> + ba74: 90a2983a sll r17,r18,r2 + ba78: 0021883a mov r16,zero + ba7c: d8800217 ldw r2,8(sp) + ba80: dc400415 stw r17,16(sp) + ba84: dc000315 stw r16,12(sp) + ba88: 1105c83a sub r2,r2,r4 + ba8c: d8800215 stw r2,8(sp) + ba90: 003fde06 br ba0c <__floatsidf+0x34> + ba94: 00a00034 movhi r2,32768 + ba98: 20800a26 beq r4,r2,bac4 <__floatsidf+0xec> + ba9c: 0109c83a sub r4,zero,r4 + baa0: 003feb06 br ba50 <__floatsidf+0x78> + baa4: 9006d07a srli r3,r18,1 + baa8: 008007c4 movi r2,31 + baac: 1105c83a sub r2,r2,r4 + bab0: 1886d83a srl r3,r3,r2 + bab4: 9922983a sll r17,r19,r4 + bab8: 9120983a sll r16,r18,r4 + babc: 1c62b03a or r17,r3,r17 + bac0: 003fee06 br ba7c <__floatsidf+0xa4> + bac4: 0009883a mov r4,zero + bac8: 01707834 movhi r5,49632 + bacc: 003fd306 br ba1c <__floatsidf+0x44> + +0000bad0 <__fixdfsi>: + bad0: defff804 addi sp,sp,-32 + bad4: 2005883a mov r2,r4 + bad8: 2807883a mov r3,r5 + badc: d809883a mov r4,sp + bae0: d9400204 addi r5,sp,8 + bae4: d8c00115 stw r3,4(sp) + bae8: d8800015 stw r2,0(sp) + baec: dfc00715 stw ra,28(sp) + baf0: 000c1f40 call c1f4 <__unpack_d> + baf4: d8c00217 ldw r3,8(sp) + baf8: 00800084 movi r2,2 + bafc: 1880051e bne r3,r2,bb14 <__fixdfsi+0x44> + bb00: 0007883a mov r3,zero + bb04: 1805883a mov r2,r3 + bb08: dfc00717 ldw ra,28(sp) + bb0c: dec00804 addi sp,sp,32 + bb10: f800283a ret + bb14: 00800044 movi r2,1 + bb18: 10fff92e bgeu r2,r3,bb00 <__fixdfsi+0x30> + bb1c: 00800104 movi r2,4 + bb20: 18800426 beq r3,r2,bb34 <__fixdfsi+0x64> + bb24: d8c00417 ldw r3,16(sp) + bb28: 183ff516 blt r3,zero,bb00 <__fixdfsi+0x30> + bb2c: 00800784 movi r2,30 + bb30: 10c0080e bge r2,r3,bb54 <__fixdfsi+0x84> + bb34: d8800317 ldw r2,12(sp) + bb38: 1000121e bne r2,zero,bb84 <__fixdfsi+0xb4> + bb3c: 00e00034 movhi r3,32768 + bb40: 18ffffc4 addi r3,r3,-1 + bb44: 1805883a mov r2,r3 + bb48: dfc00717 ldw ra,28(sp) + bb4c: dec00804 addi sp,sp,32 + bb50: f800283a ret + bb54: 00800f04 movi r2,60 + bb58: 10d1c83a sub r8,r2,r3 + bb5c: 40bff804 addi r2,r8,-32 + bb60: d9800517 ldw r6,20(sp) + bb64: d9c00617 ldw r7,24(sp) + bb68: 10000816 blt r2,zero,bb8c <__fixdfsi+0xbc> + bb6c: 3888d83a srl r4,r7,r2 + bb70: d8800317 ldw r2,12(sp) + bb74: 2007883a mov r3,r4 + bb78: 103fe226 beq r2,zero,bb04 <__fixdfsi+0x34> + bb7c: 0107c83a sub r3,zero,r4 + bb80: 003fe006 br bb04 <__fixdfsi+0x34> + bb84: 00e00034 movhi r3,32768 + bb88: 003fde06 br bb04 <__fixdfsi+0x34> + bb8c: 39c7883a add r3,r7,r7 + bb90: 008007c4 movi r2,31 + bb94: 1205c83a sub r2,r2,r8 + bb98: 1886983a sll r3,r3,r2 + bb9c: 3208d83a srl r4,r6,r8 + bba0: 1908b03a or r4,r3,r4 + bba4: 003ff206 br bb70 <__fixdfsi+0xa0> + +0000bba8 <__floatunsidf>: + bba8: defff204 addi sp,sp,-56 + bbac: dfc00d15 stw ra,52(sp) + bbb0: ddc00c15 stw r23,48(sp) + bbb4: dd800b15 stw r22,44(sp) + bbb8: dd400a15 stw r21,40(sp) + bbbc: dd000915 stw r20,36(sp) + bbc0: dcc00815 stw r19,32(sp) + bbc4: dc800715 stw r18,28(sp) + bbc8: dc400615 stw r17,24(sp) + bbcc: dc000515 stw r16,20(sp) + bbd0: d8000115 stw zero,4(sp) + bbd4: 20000f1e bne r4,zero,bc14 <__floatunsidf+0x6c> + bbd8: 00800084 movi r2,2 + bbdc: d8800015 stw r2,0(sp) + bbe0: d809883a mov r4,sp + bbe4: 000bee00 call bee0 <__pack_d> + bbe8: dfc00d17 ldw ra,52(sp) + bbec: ddc00c17 ldw r23,48(sp) + bbf0: dd800b17 ldw r22,44(sp) + bbf4: dd400a17 ldw r21,40(sp) + bbf8: dd000917 ldw r20,36(sp) + bbfc: dcc00817 ldw r19,32(sp) + bc00: dc800717 ldw r18,28(sp) + bc04: dc400617 ldw r17,24(sp) + bc08: dc000517 ldw r16,20(sp) + bc0c: dec00e04 addi sp,sp,56 + bc10: f800283a ret + bc14: 008000c4 movi r2,3 + bc18: 00c00f04 movi r3,60 + bc1c: 002f883a mov r23,zero + bc20: 202d883a mov r22,r4 + bc24: d8800015 stw r2,0(sp) + bc28: d8c00215 stw r3,8(sp) + bc2c: d9000315 stw r4,12(sp) + bc30: ddc00415 stw r23,16(sp) + bc34: 000be600 call be60 <__clzsi2> + bc38: 12400744 addi r9,r2,29 + bc3c: 48000b16 blt r9,zero,bc6c <__floatunsidf+0xc4> + bc40: 483fe726 beq r9,zero,bbe0 <__floatunsidf+0x38> + bc44: 10bfff44 addi r2,r2,-3 + bc48: 10002e16 blt r2,zero,bd04 <__floatunsidf+0x15c> + bc4c: b0a2983a sll r17,r22,r2 + bc50: 0021883a mov r16,zero + bc54: d8800217 ldw r2,8(sp) + bc58: dc400415 stw r17,16(sp) + bc5c: dc000315 stw r16,12(sp) + bc60: 1245c83a sub r2,r2,r9 + bc64: d8800215 stw r2,8(sp) + bc68: 003fdd06 br bbe0 <__floatunsidf+0x38> + bc6c: 0255c83a sub r10,zero,r9 + bc70: 51bff804 addi r6,r10,-32 + bc74: 30001b16 blt r6,zero,bce4 <__floatunsidf+0x13c> + bc78: b9a8d83a srl r20,r23,r6 + bc7c: 002b883a mov r21,zero + bc80: 000f883a mov r7,zero + bc84: 01000044 movi r4,1 + bc88: 0011883a mov r8,zero + bc8c: 30002516 blt r6,zero,bd24 <__floatunsidf+0x17c> + bc90: 21a6983a sll r19,r4,r6 + bc94: 0025883a mov r18,zero + bc98: 00bfffc4 movi r2,-1 + bc9c: 9089883a add r4,r18,r2 + bca0: 988b883a add r5,r19,r2 + bca4: 248d803a cmpltu r6,r4,r18 + bca8: 314b883a add r5,r6,r5 + bcac: b104703a and r2,r22,r4 + bcb0: b946703a and r3,r23,r5 + bcb4: 10c4b03a or r2,r2,r3 + bcb8: 10000226 beq r2,zero,bcc4 <__floatunsidf+0x11c> + bcbc: 01c00044 movi r7,1 + bcc0: 0011883a mov r8,zero + bcc4: d9000217 ldw r4,8(sp) + bcc8: a1c4b03a or r2,r20,r7 + bccc: aa06b03a or r3,r21,r8 + bcd0: 2249c83a sub r4,r4,r9 + bcd4: d8c00415 stw r3,16(sp) + bcd8: d9000215 stw r4,8(sp) + bcdc: d8800315 stw r2,12(sp) + bce0: 003fbf06 br bbe0 <__floatunsidf+0x38> + bce4: bdc7883a add r3,r23,r23 + bce8: 008007c4 movi r2,31 + bcec: 1285c83a sub r2,r2,r10 + bcf0: 1886983a sll r3,r3,r2 + bcf4: b2a8d83a srl r20,r22,r10 + bcf8: baaad83a srl r21,r23,r10 + bcfc: 1d28b03a or r20,r3,r20 + bd00: 003fdf06 br bc80 <__floatunsidf+0xd8> + bd04: b006d07a srli r3,r22,1 + bd08: 008007c4 movi r2,31 + bd0c: 1245c83a sub r2,r2,r9 + bd10: 1886d83a srl r3,r3,r2 + bd14: ba62983a sll r17,r23,r9 + bd18: b260983a sll r16,r22,r9 + bd1c: 1c62b03a or r17,r3,r17 + bd20: 003fcc06 br bc54 <__floatunsidf+0xac> + bd24: 2006d07a srli r3,r4,1 + bd28: 008007c4 movi r2,31 + bd2c: 1285c83a sub r2,r2,r10 + bd30: 18a6d83a srl r19,r3,r2 + bd34: 22a4983a sll r18,r4,r10 + bd38: 003fd706 br bc98 <__floatunsidf+0xf0> + +0000bd3c <__muldi3>: + bd3c: defff204 addi sp,sp,-56 + bd40: df000c15 stw fp,48(sp) + bd44: 3038d43a srli fp,r6,16 + bd48: dd000815 stw r20,32(sp) + bd4c: dc400515 stw r17,20(sp) + bd50: 2028d43a srli r20,r4,16 + bd54: 247fffcc andi r17,r4,65535 + bd58: dc000415 stw r16,16(sp) + bd5c: 343fffcc andi r16,r6,65535 + bd60: dcc00715 stw r19,28(sp) + bd64: d9000015 stw r4,0(sp) + bd68: 2827883a mov r19,r5 + bd6c: 8809883a mov r4,r17 + bd70: d9400115 stw r5,4(sp) + bd74: 800b883a mov r5,r16 + bd78: d9800215 stw r6,8(sp) + bd7c: dfc00d15 stw ra,52(sp) + bd80: d9c00315 stw r7,12(sp) + bd84: dd800a15 stw r22,40(sp) + bd88: dd400915 stw r21,36(sp) + bd8c: 302d883a mov r22,r6 + bd90: ddc00b15 stw r23,44(sp) + bd94: dc800615 stw r18,24(sp) + bd98: 0002b2c0 call 2b2c <__mulsi3> + bd9c: 8809883a mov r4,r17 + bda0: e00b883a mov r5,fp + bda4: 102b883a mov r21,r2 + bda8: 0002b2c0 call 2b2c <__mulsi3> + bdac: 800b883a mov r5,r16 + bdb0: a009883a mov r4,r20 + bdb4: 1023883a mov r17,r2 + bdb8: 0002b2c0 call 2b2c <__mulsi3> + bdbc: a009883a mov r4,r20 + bdc0: e00b883a mov r5,fp + bdc4: 1021883a mov r16,r2 + bdc8: 0002b2c0 call 2b2c <__mulsi3> + bdcc: a8ffffcc andi r3,r21,65535 + bdd0: a82ad43a srli r21,r21,16 + bdd4: 8c23883a add r17,r17,r16 + bdd8: 1011883a mov r8,r2 + bddc: ac6b883a add r21,r21,r17 + bde0: a804943a slli r2,r21,16 + bde4: b009883a mov r4,r22 + bde8: 980b883a mov r5,r19 + bdec: 10c7883a add r3,r2,r3 + bdf0: a812d43a srli r9,r21,16 + bdf4: 180d883a mov r6,r3 + bdf8: ac00022e bgeu r21,r16,be04 <__muldi3+0xc8> + bdfc: 00800074 movhi r2,1 + be00: 4091883a add r8,r8,r2 + be04: 4267883a add r19,r8,r9 + be08: 302d883a mov r22,r6 + be0c: 0002b2c0 call 2b2c <__mulsi3> + be10: d9400317 ldw r5,12(sp) + be14: d9000017 ldw r4,0(sp) + be18: 1023883a mov r17,r2 + be1c: 0002b2c0 call 2b2c <__mulsi3> + be20: 14cb883a add r5,r2,r19 + be24: 894b883a add r5,r17,r5 + be28: b005883a mov r2,r22 + be2c: 2807883a mov r3,r5 + be30: dfc00d17 ldw ra,52(sp) + be34: df000c17 ldw fp,48(sp) + be38: ddc00b17 ldw r23,44(sp) + be3c: dd800a17 ldw r22,40(sp) + be40: dd400917 ldw r21,36(sp) + be44: dd000817 ldw r20,32(sp) + be48: dcc00717 ldw r19,28(sp) + be4c: dc800617 ldw r18,24(sp) + be50: dc400517 ldw r17,20(sp) + be54: dc000417 ldw r16,16(sp) + be58: dec00e04 addi sp,sp,56 + be5c: f800283a ret + +0000be60 <__clzsi2>: + be60: 00bfffd4 movui r2,65535 + be64: 11000e36 bltu r2,r4,bea0 <__clzsi2+0x40> + be68: 00803fc4 movi r2,255 + be6c: 01400204 movi r5,8 + be70: 0007883a mov r3,zero + be74: 11001036 bltu r2,r4,beb8 <__clzsi2+0x58> + be78: 000b883a mov r5,zero + be7c: 20c6d83a srl r3,r4,r3 + be80: 00800074 movhi r2,1 + be84: 10811d04 addi r2,r2,1140 + be88: 1887883a add r3,r3,r2 + be8c: 18800003 ldbu r2,0(r3) + be90: 00c00804 movi r3,32 + be94: 2885883a add r2,r5,r2 + be98: 1885c83a sub r2,r3,r2 + be9c: f800283a ret + bea0: 01400404 movi r5,16 + bea4: 00804034 movhi r2,256 + bea8: 10bfffc4 addi r2,r2,-1 + beac: 2807883a mov r3,r5 + beb0: 113ff22e bgeu r2,r4,be7c <__clzsi2+0x1c> + beb4: 01400604 movi r5,24 + beb8: 2807883a mov r3,r5 + bebc: 20c6d83a srl r3,r4,r3 + bec0: 00800074 movhi r2,1 + bec4: 10811d04 addi r2,r2,1140 + bec8: 1887883a add r3,r3,r2 + becc: 18800003 ldbu r2,0(r3) + bed0: 00c00804 movi r3,32 + bed4: 2885883a add r2,r5,r2 + bed8: 1885c83a sub r2,r3,r2 + bedc: f800283a ret + +0000bee0 <__pack_d>: + bee0: 20c00017 ldw r3,0(r4) + bee4: defffd04 addi sp,sp,-12 + bee8: dc000015 stw r16,0(sp) + beec: dc800215 stw r18,8(sp) + bef0: dc400115 stw r17,4(sp) + bef4: 00800044 movi r2,1 + bef8: 22000317 ldw r8,12(r4) + befc: 001f883a mov r15,zero + bf00: 22400417 ldw r9,16(r4) + bf04: 24000117 ldw r16,4(r4) + bf08: 10c0552e bgeu r2,r3,c060 <__pack_d+0x180> + bf0c: 00800104 movi r2,4 + bf10: 18804f26 beq r3,r2,c050 <__pack_d+0x170> + bf14: 00800084 movi r2,2 + bf18: 18800226 beq r3,r2,bf24 <__pack_d+0x44> + bf1c: 4244b03a or r2,r8,r9 + bf20: 10001a1e bne r2,zero,bf8c <__pack_d+0xac> + bf24: 000d883a mov r6,zero + bf28: 000f883a mov r7,zero + bf2c: 0011883a mov r8,zero + bf30: 00800434 movhi r2,16 + bf34: 10bfffc4 addi r2,r2,-1 + bf38: 301d883a mov r14,r6 + bf3c: 3884703a and r2,r7,r2 + bf40: 400a953a slli r5,r8,20 + bf44: 79bffc2c andhi r6,r15,65520 + bf48: 308cb03a or r6,r6,r2 + bf4c: 00e00434 movhi r3,32784 + bf50: 18ffffc4 addi r3,r3,-1 + bf54: 800497fa slli r2,r16,31 + bf58: 30c6703a and r3,r6,r3 + bf5c: 1946b03a or r3,r3,r5 + bf60: 01600034 movhi r5,32768 + bf64: 297fffc4 addi r5,r5,-1 + bf68: 194a703a and r5,r3,r5 + bf6c: 288ab03a or r5,r5,r2 + bf70: 2807883a mov r3,r5 + bf74: 7005883a mov r2,r14 + bf78: dc800217 ldw r18,8(sp) + bf7c: dc400117 ldw r17,4(sp) + bf80: dc000017 ldw r16,0(sp) + bf84: dec00304 addi sp,sp,12 + bf88: f800283a ret + bf8c: 21000217 ldw r4,8(r4) + bf90: 00bf0084 movi r2,-1022 + bf94: 20803f16 blt r4,r2,c094 <__pack_d+0x1b4> + bf98: 0080ffc4 movi r2,1023 + bf9c: 11002c16 blt r2,r4,c050 <__pack_d+0x170> + bfa0: 00803fc4 movi r2,255 + bfa4: 408c703a and r6,r8,r2 + bfa8: 00802004 movi r2,128 + bfac: 0007883a mov r3,zero + bfb0: 000f883a mov r7,zero + bfb4: 2280ffc4 addi r10,r4,1023 + bfb8: 30801e26 beq r6,r2,c034 <__pack_d+0x154> + bfbc: 00801fc4 movi r2,127 + bfc0: 4089883a add r4,r8,r2 + bfc4: 220d803a cmpltu r6,r4,r8 + bfc8: 324d883a add r6,r6,r9 + bfcc: 2011883a mov r8,r4 + bfd0: 3013883a mov r9,r6 + bfd4: 00880034 movhi r2,8192 + bfd8: 10bfffc4 addi r2,r2,-1 + bfdc: 12400d36 bltu r2,r9,c014 <__pack_d+0x134> + bfe0: 4804963a slli r2,r9,24 + bfe4: 400cd23a srli r6,r8,8 + bfe8: 480ed23a srli r7,r9,8 + bfec: 013fffc4 movi r4,-1 + bff0: 118cb03a or r6,r2,r6 + bff4: 01400434 movhi r5,16 + bff8: 297fffc4 addi r5,r5,-1 + bffc: 3104703a and r2,r6,r4 + c000: 3946703a and r3,r7,r5 + c004: 5201ffcc andi r8,r10,2047 + c008: 100d883a mov r6,r2 + c00c: 180f883a mov r7,r3 + c010: 003fc706 br bf30 <__pack_d+0x50> + c014: 480897fa slli r4,r9,31 + c018: 4004d07a srli r2,r8,1 + c01c: 4806d07a srli r3,r9,1 + c020: 52800044 addi r10,r10,1 + c024: 2084b03a or r2,r4,r2 + c028: 1011883a mov r8,r2 + c02c: 1813883a mov r9,r3 + c030: 003feb06 br bfe0 <__pack_d+0x100> + c034: 383fe11e bne r7,zero,bfbc <__pack_d+0xdc> + c038: 01004004 movi r4,256 + c03c: 4104703a and r2,r8,r4 + c040: 10c4b03a or r2,r2,r3 + c044: 103fe326 beq r2,zero,bfd4 <__pack_d+0xf4> + c048: 3005883a mov r2,r6 + c04c: 003fdc06 br bfc0 <__pack_d+0xe0> + c050: 000d883a mov r6,zero + c054: 000f883a mov r7,zero + c058: 0201ffc4 movi r8,2047 + c05c: 003fb406 br bf30 <__pack_d+0x50> + c060: 0005883a mov r2,zero + c064: 00c00234 movhi r3,8 + c068: 408cb03a or r6,r8,r2 + c06c: 48ceb03a or r7,r9,r3 + c070: 013fffc4 movi r4,-1 + c074: 01400434 movhi r5,16 + c078: 297fffc4 addi r5,r5,-1 + c07c: 3104703a and r2,r6,r4 + c080: 3946703a and r3,r7,r5 + c084: 100d883a mov r6,r2 + c088: 180f883a mov r7,r3 + c08c: 0201ffc4 movi r8,2047 + c090: 003fa706 br bf30 <__pack_d+0x50> + c094: 1109c83a sub r4,r2,r4 + c098: 00800e04 movi r2,56 + c09c: 11004316 blt r2,r4,c1ac <__pack_d+0x2cc> + c0a0: 21fff804 addi r7,r4,-32 + c0a4: 38004516 blt r7,zero,c1bc <__pack_d+0x2dc> + c0a8: 49d8d83a srl r12,r9,r7 + c0ac: 001b883a mov r13,zero + c0b0: 0023883a mov r17,zero + c0b4: 01400044 movi r5,1 + c0b8: 0025883a mov r18,zero + c0bc: 38004716 blt r7,zero,c1dc <__pack_d+0x2fc> + c0c0: 29d6983a sll r11,r5,r7 + c0c4: 0015883a mov r10,zero + c0c8: 00bfffc4 movi r2,-1 + c0cc: 5089883a add r4,r10,r2 + c0d0: 588b883a add r5,r11,r2 + c0d4: 228d803a cmpltu r6,r4,r10 + c0d8: 314b883a add r5,r6,r5 + c0dc: 4104703a and r2,r8,r4 + c0e0: 4946703a and r3,r9,r5 + c0e4: 10c4b03a or r2,r2,r3 + c0e8: 10000226 beq r2,zero,c0f4 <__pack_d+0x214> + c0ec: 04400044 movi r17,1 + c0f0: 0025883a mov r18,zero + c0f4: 00803fc4 movi r2,255 + c0f8: 644eb03a or r7,r12,r17 + c0fc: 3892703a and r9,r7,r2 + c100: 00802004 movi r2,128 + c104: 6c90b03a or r8,r13,r18 + c108: 0015883a mov r10,zero + c10c: 48801626 beq r9,r2,c168 <__pack_d+0x288> + c110: 01001fc4 movi r4,127 + c114: 3905883a add r2,r7,r4 + c118: 11cd803a cmpltu r6,r2,r7 + c11c: 320d883a add r6,r6,r8 + c120: 100f883a mov r7,r2 + c124: 00840034 movhi r2,4096 + c128: 10bfffc4 addi r2,r2,-1 + c12c: 3011883a mov r8,r6 + c130: 0007883a mov r3,zero + c134: 11801b36 bltu r2,r6,c1a4 <__pack_d+0x2c4> + c138: 4004963a slli r2,r8,24 + c13c: 3808d23a srli r4,r7,8 + c140: 400ad23a srli r5,r8,8 + c144: 1813883a mov r9,r3 + c148: 1108b03a or r4,r2,r4 + c14c: 00bfffc4 movi r2,-1 + c150: 00c00434 movhi r3,16 + c154: 18ffffc4 addi r3,r3,-1 + c158: 208c703a and r6,r4,r2 + c15c: 28ce703a and r7,r5,r3 + c160: 4a01ffcc andi r8,r9,2047 + c164: 003f7206 br bf30 <__pack_d+0x50> + c168: 503fe91e bne r10,zero,c110 <__pack_d+0x230> + c16c: 01004004 movi r4,256 + c170: 3904703a and r2,r7,r4 + c174: 0007883a mov r3,zero + c178: 10c4b03a or r2,r2,r3 + c17c: 10000626 beq r2,zero,c198 <__pack_d+0x2b8> + c180: 3a45883a add r2,r7,r9 + c184: 11cd803a cmpltu r6,r2,r7 + c188: 320d883a add r6,r6,r8 + c18c: 100f883a mov r7,r2 + c190: 3011883a mov r8,r6 + c194: 0007883a mov r3,zero + c198: 00840034 movhi r2,4096 + c19c: 10bfffc4 addi r2,r2,-1 + c1a0: 123fe52e bgeu r2,r8,c138 <__pack_d+0x258> + c1a4: 00c00044 movi r3,1 + c1a8: 003fe306 br c138 <__pack_d+0x258> + c1ac: 0009883a mov r4,zero + c1b0: 0013883a mov r9,zero + c1b4: 000b883a mov r5,zero + c1b8: 003fe406 br c14c <__pack_d+0x26c> + c1bc: 4a47883a add r3,r9,r9 + c1c0: 008007c4 movi r2,31 + c1c4: 1105c83a sub r2,r2,r4 + c1c8: 1886983a sll r3,r3,r2 + c1cc: 4118d83a srl r12,r8,r4 + c1d0: 491ad83a srl r13,r9,r4 + c1d4: 1b18b03a or r12,r3,r12 + c1d8: 003fb506 br c0b0 <__pack_d+0x1d0> + c1dc: 2806d07a srli r3,r5,1 + c1e0: 008007c4 movi r2,31 + c1e4: 1105c83a sub r2,r2,r4 + c1e8: 1896d83a srl r11,r3,r2 + c1ec: 2914983a sll r10,r5,r4 + c1f0: 003fb506 br c0c8 <__pack_d+0x1e8> + +0000c1f4 <__unpack_d>: + c1f4: 20c00117 ldw r3,4(r4) + c1f8: 22400017 ldw r9,0(r4) + c1fc: 00800434 movhi r2,16 + c200: 10bfffc4 addi r2,r2,-1 + c204: 1808d53a srli r4,r3,20 + c208: 180cd7fa srli r6,r3,31 + c20c: 1894703a and r10,r3,r2 + c210: 2201ffcc andi r8,r4,2047 + c214: 281b883a mov r13,r5 + c218: 4817883a mov r11,r9 + c21c: 29800115 stw r6,4(r5) + c220: 5019883a mov r12,r10 + c224: 40001e1e bne r8,zero,c2a0 <__unpack_d+0xac> + c228: 4a84b03a or r2,r9,r10 + c22c: 10001926 beq r2,zero,c294 <__unpack_d+0xa0> + c230: 4804d63a srli r2,r9,24 + c234: 500c923a slli r6,r10,8 + c238: 013f0084 movi r4,-1022 + c23c: 00c40034 movhi r3,4096 + c240: 18ffffc4 addi r3,r3,-1 + c244: 118cb03a or r6,r2,r6 + c248: 008000c4 movi r2,3 + c24c: 480a923a slli r5,r9,8 + c250: 68800015 stw r2,0(r13) + c254: 69000215 stw r4,8(r13) + c258: 19800b36 bltu r3,r6,c288 <__unpack_d+0x94> + c25c: 200f883a mov r7,r4 + c260: 1811883a mov r8,r3 + c264: 2945883a add r2,r5,r5 + c268: 1149803a cmpltu r4,r2,r5 + c26c: 3187883a add r3,r6,r6 + c270: 20c9883a add r4,r4,r3 + c274: 100b883a mov r5,r2 + c278: 200d883a mov r6,r4 + c27c: 39ffffc4 addi r7,r7,-1 + c280: 413ff82e bgeu r8,r4,c264 <__unpack_d+0x70> + c284: 69c00215 stw r7,8(r13) + c288: 69800415 stw r6,16(r13) + c28c: 69400315 stw r5,12(r13) + c290: f800283a ret + c294: 00800084 movi r2,2 + c298: 28800015 stw r2,0(r5) + c29c: f800283a ret + c2a0: 0081ffc4 movi r2,2047 + c2a4: 40800f26 beq r8,r2,c2e4 <__unpack_d+0xf0> + c2a8: 480cd63a srli r6,r9,24 + c2ac: 5006923a slli r3,r10,8 + c2b0: 4804923a slli r2,r9,8 + c2b4: 0009883a mov r4,zero + c2b8: 30c6b03a or r3,r6,r3 + c2bc: 01440034 movhi r5,4096 + c2c0: 110cb03a or r6,r2,r4 + c2c4: 423f0044 addi r8,r8,-1023 + c2c8: 194eb03a or r7,r3,r5 + c2cc: 008000c4 movi r2,3 + c2d0: 69c00415 stw r7,16(r13) + c2d4: 6a000215 stw r8,8(r13) + c2d8: 68800015 stw r2,0(r13) + c2dc: 69800315 stw r6,12(r13) + c2e0: f800283a ret + c2e4: 4a84b03a or r2,r9,r10 + c2e8: 1000031e bne r2,zero,c2f8 <__unpack_d+0x104> + c2ec: 00800104 movi r2,4 + c2f0: 28800015 stw r2,0(r5) + c2f4: f800283a ret + c2f8: 0009883a mov r4,zero + c2fc: 01400234 movhi r5,8 + c300: 4904703a and r2,r9,r4 + c304: 5146703a and r3,r10,r5 + c308: 10c4b03a or r2,r2,r3 + c30c: 10000526 beq r2,zero,c324 <__unpack_d+0x130> + c310: 00800044 movi r2,1 + c314: 68800015 stw r2,0(r13) + c318: 6b000415 stw r12,16(r13) + c31c: 6ac00315 stw r11,12(r13) + c320: f800283a ret + c324: 68000015 stw zero,0(r13) + c328: 003ffb06 br c318 <__unpack_d+0x124> + +0000c32c <__fpcmp_parts_d>: + c32c: 21800017 ldw r6,0(r4) + c330: 00c00044 movi r3,1 + c334: 19800a2e bgeu r3,r6,c360 <__fpcmp_parts_d+0x34> + c338: 28800017 ldw r2,0(r5) + c33c: 1880082e bgeu r3,r2,c360 <__fpcmp_parts_d+0x34> + c340: 00c00104 movi r3,4 + c344: 30c02626 beq r6,r3,c3e0 <__fpcmp_parts_d+0xb4> + c348: 10c02226 beq r2,r3,c3d4 <__fpcmp_parts_d+0xa8> + c34c: 00c00084 movi r3,2 + c350: 30c00526 beq r6,r3,c368 <__fpcmp_parts_d+0x3c> + c354: 10c0071e bne r2,r3,c374 <__fpcmp_parts_d+0x48> + c358: 20800117 ldw r2,4(r4) + c35c: 1000091e bne r2,zero,c384 <__fpcmp_parts_d+0x58> + c360: 00800044 movi r2,1 + c364: f800283a ret + c368: 10c01a1e bne r2,r3,c3d4 <__fpcmp_parts_d+0xa8> + c36c: 0005883a mov r2,zero + c370: f800283a ret + c374: 22000117 ldw r8,4(r4) + c378: 28800117 ldw r2,4(r5) + c37c: 40800326 beq r8,r2,c38c <__fpcmp_parts_d+0x60> + c380: 403ff726 beq r8,zero,c360 <__fpcmp_parts_d+0x34> + c384: 00bfffc4 movi r2,-1 + c388: f800283a ret + c38c: 20c00217 ldw r3,8(r4) + c390: 28800217 ldw r2,8(r5) + c394: 10fffa16 blt r2,r3,c380 <__fpcmp_parts_d+0x54> + c398: 18800916 blt r3,r2,c3c0 <__fpcmp_parts_d+0x94> + c39c: 21c00417 ldw r7,16(r4) + c3a0: 28c00417 ldw r3,16(r5) + c3a4: 21800317 ldw r6,12(r4) + c3a8: 28800317 ldw r2,12(r5) + c3ac: 19fff436 bltu r3,r7,c380 <__fpcmp_parts_d+0x54> + c3b0: 38c00526 beq r7,r3,c3c8 <__fpcmp_parts_d+0x9c> + c3b4: 38c00236 bltu r7,r3,c3c0 <__fpcmp_parts_d+0x94> + c3b8: 19ffec1e bne r3,r7,c36c <__fpcmp_parts_d+0x40> + c3bc: 30bfeb2e bgeu r6,r2,c36c <__fpcmp_parts_d+0x40> + c3c0: 403fe71e bne r8,zero,c360 <__fpcmp_parts_d+0x34> + c3c4: 003fef06 br c384 <__fpcmp_parts_d+0x58> + c3c8: 11bffa2e bgeu r2,r6,c3b4 <__fpcmp_parts_d+0x88> + c3cc: 403fe426 beq r8,zero,c360 <__fpcmp_parts_d+0x34> + c3d0: 003fec06 br c384 <__fpcmp_parts_d+0x58> + c3d4: 28800117 ldw r2,4(r5) + c3d8: 103fe11e bne r2,zero,c360 <__fpcmp_parts_d+0x34> + c3dc: 003fe906 br c384 <__fpcmp_parts_d+0x58> + c3e0: 11bfdd1e bne r2,r6,c358 <__fpcmp_parts_d+0x2c> + c3e4: 28c00117 ldw r3,4(r5) + c3e8: 20800117 ldw r2,4(r4) + c3ec: 1885c83a sub r2,r3,r2 + c3f0: f800283a ret + +0000c3f4 : + * + * ALT_CLOSE is mapped onto the close() system call in alt_syscall.h + */ + +int ALT_CLOSE (int fildes) +{ + c3f4: defff804 addi sp,sp,-32 + c3f8: dfc00715 stw ra,28(sp) + c3fc: df000615 stw fp,24(sp) + c400: df000604 addi fp,sp,24 + c404: e13ffc15 stw r4,-16(fp) + * A common error case is that when the file descriptor was created, the call + * to open() failed resulting in a negative file descriptor. This is trapped + * below so that we don't try and process an invalid file descriptor. + */ + + fd = (fildes < 0) ? NULL : &alt_fd_list[fildes]; + c408: e0bffc17 ldw r2,-16(fp) + c40c: 1004803a cmplt r2,r2,zero + c410: 1000091e bne r2,zero,c438 + c414: e13ffc17 ldw r4,-16(fp) + c418: 01400304 movi r5,12 + c41c: 0002b2c0 call 2b2c <__mulsi3> + c420: 1007883a mov r3,r2 + c424: 00800074 movhi r2,1 + c428: 10837c04 addi r2,r2,3568 + c42c: 1887883a add r3,r3,r2 + c430: e0ffff15 stw r3,-4(fp) + c434: 00000106 br c43c + c438: e03fff15 stw zero,-4(fp) + c43c: e0bfff17 ldw r2,-4(fp) + c440: e0bffb15 stw r2,-20(fp) + + if (fd) + c444: e0bffb17 ldw r2,-20(fp) + c448: 1005003a cmpeq r2,r2,zero + c44c: 10001d1e bne r2,zero,c4c4 + /* + * If the associated file system/device has a close function, call it so + * that any necessary cleanup code can run. + */ + + rval = (fd->dev->close) ? fd->dev->close(fd) : 0; + c450: e0bffb17 ldw r2,-20(fp) + c454: 10800017 ldw r2,0(r2) + c458: 10800417 ldw r2,16(r2) + c45c: 1005003a cmpeq r2,r2,zero + c460: 1000071e bne r2,zero,c480 + c464: e0bffb17 ldw r2,-20(fp) + c468: 10800017 ldw r2,0(r2) + c46c: 10800417 ldw r2,16(r2) + c470: e13ffb17 ldw r4,-20(fp) + c474: 103ee83a callr r2 + c478: e0bffe15 stw r2,-8(fp) + c47c: 00000106 br c484 + c480: e03ffe15 stw zero,-8(fp) + c484: e0bffe17 ldw r2,-8(fp) + c488: e0bffa15 stw r2,-24(fp) + + /* Free the file descriptor structure and return. */ + + alt_release_fd (fildes); + c48c: e13ffc17 ldw r4,-16(fp) + c490: 000cc4c0 call cc4c + if (rval < 0) + c494: e0bffa17 ldw r2,-24(fp) + c498: 1004403a cmpge r2,r2,zero + c49c: 1000071e bne r2,zero,c4bc + { + ALT_ERRNO = -rval; + c4a0: 000c4f40 call c4f4 + c4a4: e0fffa17 ldw r3,-24(fp) + c4a8: 00c7c83a sub r3,zero,r3 + c4ac: 10c00015 stw r3,0(r2) + return -1; + c4b0: 00bfffc4 movi r2,-1 + c4b4: e0bffd15 stw r2,-12(fp) + c4b8: 00000806 br c4dc + } + return 0; + c4bc: e03ffd15 stw zero,-12(fp) + c4c0: 00000606 br c4dc + } + else + { + ALT_ERRNO = EBADFD; + c4c4: 000c4f40 call c4f4 + c4c8: 1007883a mov r3,r2 + c4cc: 00801444 movi r2,81 + c4d0: 18800015 stw r2,0(r3) + return -1; + c4d4: 00bfffc4 movi r2,-1 + c4d8: e0bffd15 stw r2,-12(fp) + c4dc: e0bffd17 ldw r2,-12(fp) + } +} + c4e0: e037883a mov sp,fp + c4e4: dfc00117 ldw ra,4(sp) + c4e8: df000017 ldw fp,0(sp) + c4ec: dec00204 addi sp,sp,8 + c4f0: f800283a ret + +0000c4f4 : +#undef errno + +extern int errno; + +static ALT_INLINE int* alt_get_errno(void) +{ + c4f4: defffd04 addi sp,sp,-12 + c4f8: dfc00215 stw ra,8(sp) + c4fc: df000115 stw fp,4(sp) + c500: df000104 addi fp,sp,4 + return ((alt_errno) ? alt_errno() : &errno); + c504: 00800074 movhi r2,1 + c508: 10884904 addi r2,r2,8484 + c50c: 10800017 ldw r2,0(r2) + c510: 1005003a cmpeq r2,r2,zero + c514: 1000061e bne r2,zero,c530 + c518: 00800074 movhi r2,1 + c51c: 10884904 addi r2,r2,8484 + c520: 10800017 ldw r2,0(r2) + c524: 103ee83a callr r2 + c528: e0bfff15 stw r2,-4(fp) + c52c: 00000306 br c53c + c530: 00800074 movhi r2,1 + c534: 108f3c04 addi r2,r2,15600 + c538: e0bfff15 stw r2,-4(fp) + c53c: e0bfff17 ldw r2,-4(fp) +} + c540: e037883a mov sp,fp + c544: dfc00117 ldw ra,4(sp) + c548: df000017 ldw fp,0(sp) + c54c: dec00204 addi sp,sp,8 + c550: f800283a ret + +0000c554 : + * by the alt_dev_null device. It simple discards all data passed to it, and + * indicates that the data has been successfully transmitted. + */ + +static int alt_dev_null_write (alt_fd* fd, const char* ptr, int len) +{ + c554: defffc04 addi sp,sp,-16 + c558: df000315 stw fp,12(sp) + c55c: df000304 addi fp,sp,12 + c560: e13ffd15 stw r4,-12(fp) + c564: e17ffe15 stw r5,-8(fp) + c568: e1bfff15 stw r6,-4(fp) + return len; + c56c: e0bfff17 ldw r2,-4(fp) +} + c570: e037883a mov sp,fp + c574: df000017 ldw fp,0(sp) + c578: dec00104 addi sp,sp,4 + c57c: f800283a ret + +0000c580 : +} + +#else /* !ALT_USE_DIRECT_DRIVERS */ + +int ALT_FSTAT (int file, struct stat *st) +{ + c580: defff904 addi sp,sp,-28 + c584: dfc00615 stw ra,24(sp) + c588: df000515 stw fp,20(sp) + c58c: df000504 addi fp,sp,20 + c590: e13ffc15 stw r4,-16(fp) + c594: e17ffd15 stw r5,-12(fp) + * A common error case is that when the file descriptor was created, the call + * to open() failed resulting in a negative file descriptor. This is trapped + * below so that we don't try and process an invalid file descriptor. + */ + + fd = (file < 0) ? NULL : &alt_fd_list[file]; + c598: e0bffc17 ldw r2,-16(fp) + c59c: 1004803a cmplt r2,r2,zero + c5a0: 1000091e bne r2,zero,c5c8 + c5a4: e13ffc17 ldw r4,-16(fp) + c5a8: 01400304 movi r5,12 + c5ac: 0002b2c0 call 2b2c <__mulsi3> + c5b0: 1007883a mov r3,r2 + c5b4: 00800074 movhi r2,1 + c5b8: 10837c04 addi r2,r2,3568 + c5bc: 1887883a add r3,r3,r2 + c5c0: e0ffff15 stw r3,-4(fp) + c5c4: 00000106 br c5cc + c5c8: e03fff15 stw zero,-4(fp) + c5cc: e0bfff17 ldw r2,-4(fp) + c5d0: e0bffb15 stw r2,-20(fp) + + if (fd) + c5d4: e0bffb17 ldw r2,-20(fp) + c5d8: 1005003a cmpeq r2,r2,zero + c5dc: 1000121e bne r2,zero,c628 + { + /* Call the drivers fstat() function to fill out the "st" structure. */ + + if (fd->dev->fstat) + c5e0: e0bffb17 ldw r2,-20(fp) + c5e4: 10800017 ldw r2,0(r2) + c5e8: 10800817 ldw r2,32(r2) + c5ec: 1005003a cmpeq r2,r2,zero + c5f0: 1000081e bne r2,zero,c614 + { + return fd->dev->fstat(fd, st); + c5f4: e0bffb17 ldw r2,-20(fp) + c5f8: 10800017 ldw r2,0(r2) + c5fc: 10800817 ldw r2,32(r2) + c600: e13ffb17 ldw r4,-20(fp) + c604: e17ffd17 ldw r5,-12(fp) + c608: 103ee83a callr r2 + c60c: e0bffe15 stw r2,-8(fp) + c610: 00000b06 br c640 + * device. + */ + + else + { + st->st_mode = _IFCHR; + c614: e0fffd17 ldw r3,-12(fp) + c618: 00880004 movi r2,8192 + c61c: 18800115 stw r2,4(r3) + return 0; + c620: e03ffe15 stw zero,-8(fp) + c624: 00000606 br c640 + } + } + else + { + ALT_ERRNO = EBADFD; + c628: 000c6580 call c658 + c62c: 1007883a mov r3,r2 + c630: 00801444 movi r2,81 + c634: 18800015 stw r2,0(r3) + return -1; + c638: 00bfffc4 movi r2,-1 + c63c: e0bffe15 stw r2,-8(fp) + c640: e0bffe17 ldw r2,-8(fp) + } +} + c644: e037883a mov sp,fp + c648: dfc00117 ldw ra,4(sp) + c64c: df000017 ldw fp,0(sp) + c650: dec00204 addi sp,sp,8 + c654: f800283a ret + +0000c658 : +#undef errno + +extern int errno; + +static ALT_INLINE int* alt_get_errno(void) +{ + c658: defffd04 addi sp,sp,-12 + c65c: dfc00215 stw ra,8(sp) + c660: df000115 stw fp,4(sp) + c664: df000104 addi fp,sp,4 + return ((alt_errno) ? alt_errno() : &errno); + c668: 00800074 movhi r2,1 + c66c: 10884904 addi r2,r2,8484 + c670: 10800017 ldw r2,0(r2) + c674: 1005003a cmpeq r2,r2,zero + c678: 1000061e bne r2,zero,c694 + c67c: 00800074 movhi r2,1 + c680: 10884904 addi r2,r2,8484 + c684: 10800017 ldw r2,0(r2) + c688: 103ee83a callr r2 + c68c: e0bfff15 stw r2,-4(fp) + c690: 00000306 br c6a0 + c694: 00800074 movhi r2,1 + c698: 108f3c04 addi r2,r2,15600 + c69c: e0bfff15 stw r2,-4(fp) + c6a0: e0bfff17 ldw r2,-4(fp) +} + c6a4: e037883a mov sp,fp + c6a8: dfc00117 ldw ra,4(sp) + c6ac: df000017 ldw fp,0(sp) + c6b0: dec00204 addi sp,sp,8 + c6b4: f800283a ret + +0000c6b8 : + * + * ALT_ISATTY is mapped onto the isatty() system call in alt_syscall.h + */ + +int ALT_ISATTY (int file) +{ + c6b8: deffeb04 addi sp,sp,-84 + c6bc: dfc01415 stw ra,80(sp) + c6c0: df001315 stw fp,76(sp) + c6c4: df001304 addi fp,sp,76 + c6c8: e13ffd15 stw r4,-12(fp) + * A common error case is that when the file descriptor was created, the call + * to open() failed resulting in a negative file descriptor. This is trapped + * below so that we don't try and process an invalid file descriptor. + */ + + fd = (file < 0) ? NULL : &alt_fd_list[file]; + c6cc: e0bffd17 ldw r2,-12(fp) + c6d0: 1004803a cmplt r2,r2,zero + c6d4: 1000091e bne r2,zero,c6fc + c6d8: e13ffd17 ldw r4,-12(fp) + c6dc: 01400304 movi r5,12 + c6e0: 0002b2c0 call 2b2c <__mulsi3> + c6e4: 1007883a mov r3,r2 + c6e8: 00800074 movhi r2,1 + c6ec: 10837c04 addi r2,r2,3568 + c6f0: 1887883a add r3,r3,r2 + c6f4: e0ffff15 stw r3,-4(fp) + c6f8: 00000106 br c700 + c6fc: e03fff15 stw zero,-4(fp) + c700: e0bfff17 ldw r2,-4(fp) + c704: e0bfed15 stw r2,-76(fp) + + if (fd) + c708: e0bfed17 ldw r2,-76(fp) + c70c: 1005003a cmpeq r2,r2,zero + c710: 10000f1e bne r2,zero,c750 + /* + * If a device driver does not provide an fstat() function, then it is + * treated as a terminal device by default. + */ + + if (!fd->dev->fstat) + c714: e0bfed17 ldw r2,-76(fp) + c718: 10800017 ldw r2,0(r2) + c71c: 10800817 ldw r2,32(r2) + c720: 1004c03a cmpne r2,r2,zero + c724: 1000031e bne r2,zero,c734 + { + return 1; + c728: 00800044 movi r2,1 + c72c: e0bffe15 stw r2,-8(fp) + c730: 00000c06 br c764 + * this is called so that the device can identify itself. + */ + + else + { + fstat (file, &stat); + c734: e17fee04 addi r5,fp,-72 + c738: e13ffd17 ldw r4,-12(fp) + c73c: 000c5800 call c580 + return (stat.st_mode == _IFCHR) ? 1 : 0; + c740: e0bfef17 ldw r2,-68(fp) + c744: 10880020 cmpeqi r2,r2,8192 + c748: e0bffe15 stw r2,-8(fp) + c74c: 00000506 br c764 + } + } + else + { + ALT_ERRNO = EBADFD; + c750: 000c77c0 call c77c + c754: 1007883a mov r3,r2 + c758: 00801444 movi r2,81 + c75c: 18800015 stw r2,0(r3) + return 0; + c760: e03ffe15 stw zero,-8(fp) + c764: e0bffe17 ldw r2,-8(fp) + } +} + c768: e037883a mov sp,fp + c76c: dfc00117 ldw ra,4(sp) + c770: df000017 ldw fp,0(sp) + c774: dec00204 addi sp,sp,8 + c778: f800283a ret + +0000c77c : +#undef errno + +extern int errno; + +static ALT_INLINE int* alt_get_errno(void) +{ + c77c: defffd04 addi sp,sp,-12 + c780: dfc00215 stw ra,8(sp) + c784: df000115 stw fp,4(sp) + c788: df000104 addi fp,sp,4 + return ((alt_errno) ? alt_errno() : &errno); + c78c: 00800074 movhi r2,1 + c790: 10884904 addi r2,r2,8484 + c794: 10800017 ldw r2,0(r2) + c798: 1005003a cmpeq r2,r2,zero + c79c: 1000061e bne r2,zero,c7b8 + c7a0: 00800074 movhi r2,1 + c7a4: 10884904 addi r2,r2,8484 + c7a8: 10800017 ldw r2,0(r2) + c7ac: 103ee83a callr r2 + c7b0: e0bfff15 stw r2,-4(fp) + c7b4: 00000306 br c7c4 + c7b8: 00800074 movhi r2,1 + c7bc: 108f3c04 addi r2,r2,15600 + c7c0: e0bfff15 stw r2,-4(fp) + c7c4: e0bfff17 ldw r2,-4(fp) +} + c7c8: e037883a mov sp,fp + c7cc: dfc00117 ldw ra,4(sp) + c7d0: df000017 ldw fp,0(sp) + c7d4: dec00204 addi sp,sp,8 + c7d8: f800283a ret + +0000c7dc : + * there is no bootloader, so this application is responsible for loading to + * RAM any sections that are required. + */ + +void alt_load (void) +{ + c7dc: defffe04 addi sp,sp,-8 + c7e0: dfc00115 stw ra,4(sp) + c7e4: df000015 stw fp,0(sp) + c7e8: d839883a mov fp,sp + /* + * Copy the .rwdata section. + */ + + alt_load_section (&__flash_rwdata_start, + c7ec: 01000074 movhi r4,1 + c7f0: 21084f04 addi r4,r4,8508 + c7f4: 01400074 movhi r5,1 + c7f8: 29416d04 addi r5,r5,1460 + c7fc: 01800074 movhi r6,1 + c800: 31884f04 addi r6,r6,8508 + c804: 000c85c0 call c85c + + /* + * Copy the exception handler. + */ + + alt_load_section (&__flash_exceptions_start, + c808: 01000034 movhi r4,0 + c80c: 21000804 addi r4,r4,32 + c810: 01400034 movhi r5,0 + c814: 29400804 addi r5,r5,32 + c818: 01800034 movhi r6,0 + c81c: 31806d04 addi r6,r6,436 + c820: 000c85c0 call c85c + + /* + * Copy the .rodata section. + */ + + alt_load_section (&__flash_rodata_start, + c824: 01000074 movhi r4,1 + c828: 213fa604 addi r4,r4,-360 + c82c: 01400074 movhi r5,1 + c830: 297fa604 addi r5,r5,-360 + c834: 01800074 movhi r6,1 + c838: 31816d04 addi r6,r6,1460 + c83c: 000c85c0 call c85c + + /* + * Now ensure that the caches are in synch. + */ + + alt_dcache_flush_all(); + c840: 000ed300 call ed30 + alt_icache_flush_all(); + c844: 000ef280 call ef28 +} + c848: e037883a mov sp,fp + c84c: dfc00117 ldw ra,4(sp) + c850: df000017 ldw fp,0(sp) + c854: dec00204 addi sp,sp,8 + c858: f800283a ret + +0000c85c : + */ + +static void ALT_INLINE alt_load_section (alt_u32* from, + alt_u32* to, + alt_u32* end) +{ + c85c: defffc04 addi sp,sp,-16 + c860: df000315 stw fp,12(sp) + c864: df000304 addi fp,sp,12 + c868: e13ffd15 stw r4,-12(fp) + c86c: e17ffe15 stw r5,-8(fp) + c870: e1bfff15 stw r6,-4(fp) + if (to != from) + c874: e0fffe17 ldw r3,-8(fp) + c878: e0bffd17 ldw r2,-12(fp) + c87c: 18800e26 beq r3,r2,c8b8 + { + while( to != end ) + c880: 00000a06 br c8ac + { + *to++ = *from++; + c884: e0bffd17 ldw r2,-12(fp) + c888: 10c00017 ldw r3,0(r2) + c88c: e0bffe17 ldw r2,-8(fp) + c890: 10c00015 stw r3,0(r2) + c894: e0bffe17 ldw r2,-8(fp) + c898: 10800104 addi r2,r2,4 + c89c: e0bffe15 stw r2,-8(fp) + c8a0: e0bffd17 ldw r2,-12(fp) + c8a4: 10800104 addi r2,r2,4 + c8a8: e0bffd15 stw r2,-12(fp) + alt_u32* to, + alt_u32* end) +{ + if (to != from) + { + while( to != end ) + c8ac: e0fffe17 ldw r3,-8(fp) + c8b0: e0bfff17 ldw r2,-4(fp) + c8b4: 18bff31e bne r3,r2,c884 + { + *to++ = *from++; + } + } +} + c8b8: e037883a mov sp,fp + c8bc: df000017 ldw fp,0(sp) + c8c0: dec00104 addi sp,sp,4 + c8c4: f800283a ret + +0000c8c8 : + * ALT_LSEEK is mapped onto the lseek() system call in alt_syscall.h + * + */ + +off_t ALT_LSEEK (int file, off_t ptr, int dir) +{ + c8c8: defff804 addi sp,sp,-32 + c8cc: dfc00715 stw ra,28(sp) + c8d0: df000615 stw fp,24(sp) + c8d4: df000604 addi fp,sp,24 + c8d8: e13ffc15 stw r4,-16(fp) + c8dc: e17ffd15 stw r5,-12(fp) + c8e0: e1bffe15 stw r6,-8(fp) + alt_fd* fd; + off_t rc = 0; + c8e4: e03ffa15 stw zero,-24(fp) + * A common error case is that when the file descriptor was created, the call + * to open() failed resulting in a negative file descriptor. This is trapped + * below so that we don't try and process an invalid file descriptor. + */ + + fd = (file < 0) ? NULL : &alt_fd_list[file]; + c8e8: e0bffc17 ldw r2,-16(fp) + c8ec: 1004803a cmplt r2,r2,zero + c8f0: 1000091e bne r2,zero,c918 + c8f4: e13ffc17 ldw r4,-16(fp) + c8f8: 01400304 movi r5,12 + c8fc: 0002b2c0 call 2b2c <__mulsi3> + c900: 1007883a mov r3,r2 + c904: 00800074 movhi r2,1 + c908: 10837c04 addi r2,r2,3568 + c90c: 1887883a add r3,r3,r2 + c910: e0ffff15 stw r3,-4(fp) + c914: 00000106 br c91c + c918: e03fff15 stw zero,-4(fp) + c91c: e0bfff17 ldw r2,-4(fp) + c920: e0bffb15 stw r2,-20(fp) + + if (fd) + c924: e0bffb17 ldw r2,-20(fp) + c928: 1005003a cmpeq r2,r2,zero + c92c: 1000111e bne r2,zero,c974 + /* + * If the device driver provides an implementation of the lseek() function, + * then call that to process the request. + */ + + if (fd->dev->lseek) + c930: e0bffb17 ldw r2,-20(fp) + c934: 10800017 ldw r2,0(r2) + c938: 10800717 ldw r2,28(r2) + c93c: 1005003a cmpeq r2,r2,zero + c940: 1000091e bne r2,zero,c968 + { + rc = fd->dev->lseek(fd, ptr, dir); + c944: e0bffb17 ldw r2,-20(fp) + c948: 10800017 ldw r2,0(r2) + c94c: 10800717 ldw r2,28(r2) + c950: e13ffb17 ldw r4,-20(fp) + c954: e17ffd17 ldw r5,-12(fp) + c958: e1bffe17 ldw r6,-8(fp) + c95c: 103ee83a callr r2 + c960: e0bffa15 stw r2,-24(fp) + c964: 00000506 br c97c + * Otherwise return an error. + */ + + else + { + rc = -ENOTSUP; + c968: 00bfde84 movi r2,-134 + c96c: e0bffa15 stw r2,-24(fp) + c970: 00000206 br c97c + } + } + else + { + rc = -EBADFD; + c974: 00bfebc4 movi r2,-81 + c978: e0bffa15 stw r2,-24(fp) + } + + if (rc < 0) + c97c: e0bffa17 ldw r2,-24(fp) + c980: 1004403a cmpge r2,r2,zero + c984: 1000071e bne r2,zero,c9a4 + { + ALT_ERRNO = -rc; + c988: 000c9bc0 call c9bc + c98c: 1007883a mov r3,r2 + c990: e0bffa17 ldw r2,-24(fp) + c994: 0085c83a sub r2,zero,r2 + c998: 18800015 stw r2,0(r3) + rc = -1; + c99c: 00bfffc4 movi r2,-1 + c9a0: e0bffa15 stw r2,-24(fp) + } + + return rc; + c9a4: e0bffa17 ldw r2,-24(fp) +} + c9a8: e037883a mov sp,fp + c9ac: dfc00117 ldw ra,4(sp) + c9b0: df000017 ldw fp,0(sp) + c9b4: dec00204 addi sp,sp,8 + c9b8: f800283a ret + +0000c9bc : +#undef errno + +extern int errno; + +static ALT_INLINE int* alt_get_errno(void) +{ + c9bc: defffd04 addi sp,sp,-12 + c9c0: dfc00215 stw ra,8(sp) + c9c4: df000115 stw fp,4(sp) + c9c8: df000104 addi fp,sp,4 + return ((alt_errno) ? alt_errno() : &errno); + c9cc: 00800074 movhi r2,1 + c9d0: 10884904 addi r2,r2,8484 + c9d4: 10800017 ldw r2,0(r2) + c9d8: 1005003a cmpeq r2,r2,zero + c9dc: 1000061e bne r2,zero,c9f8 + c9e0: 00800074 movhi r2,1 + c9e4: 10884904 addi r2,r2,8484 + c9e8: 10800017 ldw r2,0(r2) + c9ec: 103ee83a callr r2 + c9f0: e0bfff15 stw r2,-4(fp) + c9f4: 00000306 br ca04 + c9f8: 00800074 movhi r2,1 + c9fc: 108f3c04 addi r2,r2,15600 + ca00: e0bfff15 stw r2,-4(fp) + ca04: e0bfff17 ldw r2,-4(fp) +} + ca08: e037883a mov sp,fp + ca0c: dfc00117 ldw ra,4(sp) + ca10: df000017 ldw fp,0(sp) + ca14: dec00204 addi sp,sp,8 + ca18: f800283a ret + +0000ca1c : + * devices/filesystems/components in the system; and call the entry point for + * the users application, i.e. main(). + */ + +void alt_main (void) +{ + ca1c: defffd04 addi sp,sp,-12 + ca20: dfc00215 stw ra,8(sp) + ca24: df000115 stw fp,4(sp) + ca28: df000104 addi fp,sp,4 +#endif + + /* ALT LOG - please see HAL/sys/alt_log_printf.h for details */ + ALT_LOG_PRINT_BOOT("[alt_main.c] Entering alt_main, calling alt_irq_init.\r\n"); + /* Initialize the interrupt controller. */ + alt_irq_init (NULL); + ca2c: 0009883a mov r4,zero + ca30: 000cf340 call cf34 + ALT_LOG_PRINT_BOOT("[alt_main.c] Done OS Init, calling alt_sem_create.\r\n"); + ALT_SEM_CREATE (&alt_fd_list_lock, 1); + + /* Initialize the device drivers/software components. */ + ALT_LOG_PRINT_BOOT("[alt_main.c] Calling alt_sys_init.\r\n"); + alt_sys_init(); + ca34: 000cf680 call cf68 + * devices be present (not equal to /dev/null) and if direct drivers + * aren't being used. + */ + + ALT_LOG_PRINT_BOOT("[alt_main.c] Redirecting IO.\r\n"); + alt_io_redirect(ALT_STDOUT, ALT_STDIN, ALT_STDERR); + ca38: 01000074 movhi r4,1 + ca3c: 21016004 addi r4,r4,1408 + ca40: 01400074 movhi r5,1 + ca44: 29416004 addi r5,r5,1408 + ca48: 01800074 movhi r6,1 + ca4c: 31816004 addi r6,r6,1408 + ca50: 000f2e80 call f2e8 + /* + * Call the C++ constructors + */ + + ALT_LOG_PRINT_BOOT("[alt_main.c] Calling C++ constructors.\r\n"); + _do_ctors (); + ca54: 000ee600 call ee60 <_do_ctors> + * redefined as _exit()). This is in the interest of reducing code footprint, + * in that the atexit() overhead is removed when it's not needed. + */ + + ALT_LOG_PRINT_BOOT("[alt_main.c] Calling atexit.\r\n"); + atexit (_do_dtors); + ca58: 01000074 movhi r4,1 + ca5c: 213bb104 addi r4,r4,-4412 + ca60: 000fa8c0 call fa8c + ALT_LOG_PRINT_BOOT("[alt_main.c] Calling main.\r\n"); + +#ifdef ALT_NO_EXIT + main (alt_argc, alt_argv, alt_envp); +#else + result = main (alt_argc, alt_argv, alt_envp); + ca64: d1270117 ldw r4,-25596(gp) + ca68: d1670217 ldw r5,-25592(gp) + ca6c: d1a70317 ldw r6,-25588(gp) + ca70: 0000ab40 call ab4
+ ca74: e0bfff15 stw r2,-4(fp) + close(STDOUT_FILENO); + ca78: 01000044 movi r4,1 + ca7c: 000c3f40 call c3f4 + exit (result); + ca80: e13fff17 ldw r4,-4(fp) + ca84: 000faa00 call faa0 + +0000ca88 <__malloc_lock>: + * configuration is single threaded, so there is nothing to do here. Note that + * this requires that malloc is never called by an interrupt service routine. + */ + +void __malloc_lock ( struct _reent *_r ) +{ + ca88: defffe04 addi sp,sp,-8 + ca8c: df000115 stw fp,4(sp) + ca90: df000104 addi fp,sp,4 + ca94: e13fff15 stw r4,-4(fp) +} + ca98: e037883a mov sp,fp + ca9c: df000017 ldw fp,0(sp) + caa0: dec00104 addi sp,sp,4 + caa4: f800283a ret + +0000caa8 <__malloc_unlock>: +/* + * + */ + +void __malloc_unlock ( struct _reent *_r ) +{ + caa8: defffe04 addi sp,sp,-8 + caac: df000115 stw fp,4(sp) + cab0: df000104 addi fp,sp,4 + cab4: e13fff15 stw r4,-4(fp) +} + cab8: e037883a mov sp,fp + cabc: df000017 ldw fp,0(sp) + cac0: dec00104 addi sp,sp,4 + cac4: f800283a ret + +0000cac8 : +} + +#else /* !ALT_USE_DIRECT_DRIVERS */ + +int ALT_READ (int file, void *ptr, size_t len) +{ + cac8: defff704 addi sp,sp,-36 + cacc: dfc00815 stw ra,32(sp) + cad0: df000715 stw fp,28(sp) + cad4: df000704 addi fp,sp,28 + cad8: e13ffb15 stw r4,-20(fp) + cadc: e17ffc15 stw r5,-16(fp) + cae0: e1bffd15 stw r6,-12(fp) + * A common error case is that when the file descriptor was created, the call + * to open() failed resulting in a negative file descriptor. This is trapped + * below so that we don't try and process an invalid file descriptor. + */ + + fd = (file < 0) ? NULL : &alt_fd_list[file]; + cae4: e0bffb17 ldw r2,-20(fp) + cae8: 1004803a cmplt r2,r2,zero + caec: 1000091e bne r2,zero,cb14 + caf0: e13ffb17 ldw r4,-20(fp) + caf4: 01400304 movi r5,12 + caf8: 0002b2c0 call 2b2c <__mulsi3> + cafc: 1007883a mov r3,r2 + cb00: 00800074 movhi r2,1 + cb04: 10837c04 addi r2,r2,3568 + cb08: 1887883a add r3,r3,r2 + cb0c: e0ffff15 stw r3,-4(fp) + cb10: 00000106 br cb18 + cb14: e03fff15 stw zero,-4(fp) + cb18: e0bfff17 ldw r2,-4(fp) + cb1c: e0bffa15 stw r2,-24(fp) + + if (fd) + cb20: e0bffa17 ldw r2,-24(fp) + cb24: 1005003a cmpeq r2,r2,zero + cb28: 1000241e bne r2,zero,cbbc + * If the file has not been opened with read access, or if the driver does + * not provide an implementation of read(), generate an error. Otherwise + * call the drivers read() function to process the request. + */ + + if (((fd->fd_flags & O_ACCMODE) != O_WRONLY) && + cb2c: e0bffa17 ldw r2,-24(fp) + cb30: 10800217 ldw r2,8(r2) + cb34: 108000cc andi r2,r2,3 + cb38: 10800060 cmpeqi r2,r2,1 + cb3c: 10001a1e bne r2,zero,cba8 + cb40: e0bffa17 ldw r2,-24(fp) + cb44: 10800017 ldw r2,0(r2) + cb48: 10800517 ldw r2,20(r2) + cb4c: 1005003a cmpeq r2,r2,zero + cb50: 1000151e bne r2,zero,cba8 + (fd->dev->read)) + { + if ((rval = fd->dev->read(fd, ptr, len)) < 0) + cb54: e0bffa17 ldw r2,-24(fp) + cb58: 10800017 ldw r2,0(r2) + cb5c: 10800517 ldw r2,20(r2) + cb60: e17ffc17 ldw r5,-16(fp) + cb64: e1bffd17 ldw r6,-12(fp) + cb68: e13ffa17 ldw r4,-24(fp) + cb6c: 103ee83a callr r2 + cb70: e0bff915 stw r2,-28(fp) + cb74: e0bff917 ldw r2,-28(fp) + cb78: 1004403a cmpge r2,r2,zero + cb7c: 1000071e bne r2,zero,cb9c + { + ALT_ERRNO = -rval; + cb80: 000cbec0 call cbec + cb84: e0fff917 ldw r3,-28(fp) + cb88: 00c7c83a sub r3,zero,r3 + cb8c: 10c00015 stw r3,0(r2) + return -1; + cb90: 00bfffc4 movi r2,-1 + cb94: e0bffe15 stw r2,-8(fp) + cb98: 00000e06 br cbd4 + } + return rval; + cb9c: e0bff917 ldw r2,-28(fp) + cba0: e0bffe15 stw r2,-8(fp) + cba4: 00000b06 br cbd4 + } + else + { + ALT_ERRNO = EACCES; + cba8: 000cbec0 call cbec + cbac: 1007883a mov r3,r2 + cbb0: 00800344 movi r2,13 + cbb4: 18800015 stw r2,0(r3) + cbb8: 00000406 br cbcc + } + } + else + { + ALT_ERRNO = EBADFD; + cbbc: 000cbec0 call cbec + cbc0: 1007883a mov r3,r2 + cbc4: 00801444 movi r2,81 + cbc8: 18800015 stw r2,0(r3) + } + return -1; + cbcc: 00bfffc4 movi r2,-1 + cbd0: e0bffe15 stw r2,-8(fp) + cbd4: e0bffe17 ldw r2,-8(fp) +} + cbd8: e037883a mov sp,fp + cbdc: dfc00117 ldw ra,4(sp) + cbe0: df000017 ldw fp,0(sp) + cbe4: dec00204 addi sp,sp,8 + cbe8: f800283a ret + +0000cbec : +#undef errno + +extern int errno; + +static ALT_INLINE int* alt_get_errno(void) +{ + cbec: defffd04 addi sp,sp,-12 + cbf0: dfc00215 stw ra,8(sp) + cbf4: df000115 stw fp,4(sp) + cbf8: df000104 addi fp,sp,4 + return ((alt_errno) ? alt_errno() : &errno); + cbfc: 00800074 movhi r2,1 + cc00: 10884904 addi r2,r2,8484 + cc04: 10800017 ldw r2,0(r2) + cc08: 1005003a cmpeq r2,r2,zero + cc0c: 1000061e bne r2,zero,cc28 + cc10: 00800074 movhi r2,1 + cc14: 10884904 addi r2,r2,8484 + cc18: 10800017 ldw r2,0(r2) + cc1c: 103ee83a callr r2 + cc20: e0bfff15 stw r2,-4(fp) + cc24: 00000306 br cc34 + cc28: 00800074 movhi r2,1 + cc2c: 108f3c04 addi r2,r2,15600 + cc30: e0bfff15 stw r2,-4(fp) + cc34: e0bfff17 ldw r2,-4(fp) +} + cc38: e037883a mov sp,fp + cc3c: dfc00117 ldw ra,4(sp) + cc40: df000017 ldw fp,0(sp) + cc44: dec00204 addi sp,sp,8 + cc48: f800283a ret + +0000cc4c : + * File descriptors correcponding to standard in, standard out and standard + * error cannont be released backed to the pool. They are always reserved. + */ + +void alt_release_fd (int fd) +{ + cc4c: defffc04 addi sp,sp,-16 + cc50: dfc00315 stw ra,12(sp) + cc54: df000215 stw fp,8(sp) + cc58: dc000115 stw r16,4(sp) + cc5c: df000104 addi fp,sp,4 + cc60: e13fff15 stw r4,-4(fp) + if (fd > 2) + cc64: e0bfff17 ldw r2,-4(fp) + cc68: 108000d0 cmplti r2,r2,3 + cc6c: 10000f1e bne r2,zero,ccac + { + alt_fd_list[fd].fd_flags = 0; + cc70: e13fff17 ldw r4,-4(fp) + cc74: 04000074 movhi r16,1 + cc78: 84037c04 addi r16,r16,3568 + cc7c: 01400304 movi r5,12 + cc80: 0002b2c0 call 2b2c <__mulsi3> + cc84: 1405883a add r2,r2,r16 + cc88: 10800204 addi r2,r2,8 + cc8c: 10000015 stw zero,0(r2) + alt_fd_list[fd].dev = 0; + cc90: e13fff17 ldw r4,-4(fp) + cc94: 04000074 movhi r16,1 + cc98: 84037c04 addi r16,r16,3568 + cc9c: 01400304 movi r5,12 + cca0: 0002b2c0 call 2b2c <__mulsi3> + cca4: 1405883a add r2,r2,r16 + cca8: 10000015 stw zero,0(r2) + } +} + ccac: e037883a mov sp,fp + ccb0: dfc00217 ldw ra,8(sp) + ccb4: df000117 ldw fp,4(sp) + ccb8: dc000017 ldw r16,0(sp) + ccbc: dec00304 addi sp,sp,12 + ccc0: f800283a ret + +0000ccc4 : +#endif + +caddr_t ALT_SBRK (int incr) __attribute__ ((no_instrument_function )); + +caddr_t ALT_SBRK (int incr) +{ + ccc4: defff804 addi sp,sp,-32 + ccc8: df000715 stw fp,28(sp) + cccc: df000704 addi fp,sp,28 + ccd0: e13ffe15 stw r4,-8(fp) +static ALT_INLINE alt_irq_context ALT_ALWAYS_INLINE + alt_irq_disable_all (void) +{ + alt_irq_context context; + + NIOS2_READ_STATUS (context); + ccd4: 0005303a rdctl r2,status + ccd8: e0bffb15 stw r2,-20(fp) + + NIOS2_WRITE_STATUS (context & ~NIOS2_STATUS_PIE_MSK); + ccdc: e0fffb17 ldw r3,-20(fp) + cce0: 00bfff84 movi r2,-2 + cce4: 1884703a and r2,r3,r2 + cce8: 1001703a wrctl status,r2 + + return context; + ccec: e0bffb17 ldw r2,-20(fp) + alt_irq_context context; + char *prev_heap_end; + + context = alt_irq_disable_all(); + ccf0: e0bffd15 stw r2,-12(fp) + + /* Always return data aligned on a word boundary */ + heap_end = (char *)(((unsigned int)heap_end + 3) & ~3); + ccf4: d0a00e17 ldw r2,-32712(gp) + ccf8: 10c000c4 addi r3,r2,3 + ccfc: 00bfff04 movi r2,-4 + cd00: 1884703a and r2,r3,r2 + cd04: d0a00e15 stw r2,-32712(gp) + if (((heap_end + incr) - __alt_heap_start) > ALT_MAX_HEAP_BYTES) { + alt_irq_enable_all(context); + return (caddr_t)-1; + } +#else + if ((heap_end + incr) > __alt_heap_limit) { + cd08: d0e00e17 ldw r3,-32712(gp) + cd0c: e0bffe17 ldw r2,-8(fp) + cd10: 1887883a add r3,r3,r2 + cd14: 008000f4 movhi r2,3 + cd18: 10880004 addi r2,r2,8192 + cd1c: 10c0072e bgeu r2,r3,cd3c + cd20: e0bffd17 ldw r2,-12(fp) + cd24: e0bffa15 stw r2,-24(fp) + status &= ~NIOS2_STATUS_PIE_MSK; + status |= (context & NIOS2_STATUS_PIE_MSK); + + NIOS2_WRITE_STATUS (status); +#else + NIOS2_WRITE_STATUS (context); + cd28: e0bffa17 ldw r2,-24(fp) + cd2c: 1001703a wrctl status,r2 + alt_irq_enable_all(context); + return (caddr_t)-1; + cd30: 00bfffc4 movi r2,-1 + cd34: e0bfff15 stw r2,-4(fp) + cd38: 00000c06 br cd6c + } +#endif + + prev_heap_end = heap_end; + cd3c: d0a00e17 ldw r2,-32712(gp) + cd40: e0bffc15 stw r2,-16(fp) + heap_end += incr; + cd44: d0e00e17 ldw r3,-32712(gp) + cd48: e0bffe17 ldw r2,-8(fp) + cd4c: 1885883a add r2,r3,r2 + cd50: d0a00e15 stw r2,-32712(gp) + cd54: e0bffd17 ldw r2,-12(fp) + cd58: e0bff915 stw r2,-28(fp) + cd5c: e0bff917 ldw r2,-28(fp) + cd60: 1001703a wrctl status,r2 + +#endif + + alt_irq_enable_all(context); + + return (caddr_t) prev_heap_end; + cd64: e0bffc17 ldw r2,-16(fp) + cd68: e0bfff15 stw r2,-4(fp) + cd6c: e0bfff17 ldw r2,-4(fp) +} + cd70: e037883a mov sp,fp + cd74: df000017 ldw fp,0(sp) + cd78: dec00104 addi sp,sp,4 + cd7c: f800283a ret + +0000cd80 : +#if defined (__GNUC__) && __GNUC__ >= 4 +int ALT_USLEEP (useconds_t us) +#else +unsigned int ALT_USLEEP (unsigned int us) +#endif +{ + cd80: defffd04 addi sp,sp,-12 + cd84: dfc00215 stw ra,8(sp) + cd88: df000115 stw fp,4(sp) + cd8c: df000104 addi fp,sp,4 + cd90: e13fff15 stw r4,-4(fp) + return alt_busy_sleep(us); + cd94: e13fff17 ldw r4,-4(fp) + cd98: 000ebd40 call ebd4 +} + cd9c: e037883a mov sp,fp + cda0: dfc00117 ldw ra,4(sp) + cda4: df000017 ldw fp,0(sp) + cda8: dec00204 addi sp,sp,8 + cdac: f800283a ret + +0000cdb0 : +} + +#else /* !ALT_USE_DIRECT_DRIVERS */ + +int ALT_WRITE (int file, const void *ptr, size_t len) +{ + cdb0: defff704 addi sp,sp,-36 + cdb4: dfc00815 stw ra,32(sp) + cdb8: df000715 stw fp,28(sp) + cdbc: df000704 addi fp,sp,28 + cdc0: e13ffb15 stw r4,-20(fp) + cdc4: e17ffc15 stw r5,-16(fp) + cdc8: e1bffd15 stw r6,-12(fp) + * A common error case is that when the file descriptor was created, the call + * to open() failed resulting in a negative file descriptor. This is trapped + * below so that we don't try and process an invalid file descriptor. + */ + + fd = (file < 0) ? NULL : &alt_fd_list[file]; + cdcc: e0bffb17 ldw r2,-20(fp) + cdd0: 1004803a cmplt r2,r2,zero + cdd4: 1000091e bne r2,zero,cdfc + cdd8: e13ffb17 ldw r4,-20(fp) + cddc: 01400304 movi r5,12 + cde0: 0002b2c0 call 2b2c <__mulsi3> + cde4: 1007883a mov r3,r2 + cde8: 00800074 movhi r2,1 + cdec: 10837c04 addi r2,r2,3568 + cdf0: 1887883a add r3,r3,r2 + cdf4: e0ffff15 stw r3,-4(fp) + cdf8: 00000106 br ce00 + cdfc: e03fff15 stw zero,-4(fp) + ce00: e0bfff17 ldw r2,-4(fp) + ce04: e0bffa15 stw r2,-24(fp) + + if (fd) + ce08: e0bffa17 ldw r2,-24(fp) + ce0c: 1005003a cmpeq r2,r2,zero + ce10: 1000241e bne r2,zero,cea4 + * If the file has not been opened with write access, or if the driver does + * not provide an implementation of write(), generate an error. Otherwise + * call the drivers write() function to process the request. + */ + + if (((fd->fd_flags & O_ACCMODE) != O_RDONLY) && fd->dev->write) + ce14: e0bffa17 ldw r2,-24(fp) + ce18: 10800217 ldw r2,8(r2) + ce1c: 108000cc andi r2,r2,3 + ce20: 1005003a cmpeq r2,r2,zero + ce24: 10001a1e bne r2,zero,ce90 + ce28: e0bffa17 ldw r2,-24(fp) + ce2c: 10800017 ldw r2,0(r2) + ce30: 10800617 ldw r2,24(r2) + ce34: 1005003a cmpeq r2,r2,zero + ce38: 1000151e bne r2,zero,ce90 + { + + /* ALT_LOG - see altera_hal/HAL/inc/sys/alt_log_printf.h */ + ALT_LOG_WRITE_FUNCTION(ptr,len); + + if ((rval = fd->dev->write(fd, ptr, len)) < 0) + ce3c: e0bffa17 ldw r2,-24(fp) + ce40: 10800017 ldw r2,0(r2) + ce44: 10800617 ldw r2,24(r2) + ce48: e17ffc17 ldw r5,-16(fp) + ce4c: e1bffd17 ldw r6,-12(fp) + ce50: e13ffa17 ldw r4,-24(fp) + ce54: 103ee83a callr r2 + ce58: e0bff915 stw r2,-28(fp) + ce5c: e0bff917 ldw r2,-28(fp) + ce60: 1004403a cmpge r2,r2,zero + ce64: 1000071e bne r2,zero,ce84 + { + ALT_ERRNO = -rval; + ce68: 000ced40 call ced4 + ce6c: e0fff917 ldw r3,-28(fp) + ce70: 00c7c83a sub r3,zero,r3 + ce74: 10c00015 stw r3,0(r2) + return -1; + ce78: 00bfffc4 movi r2,-1 + ce7c: e0bffe15 stw r2,-8(fp) + ce80: 00000e06 br cebc + } + return rval; + ce84: e0bff917 ldw r2,-28(fp) + ce88: e0bffe15 stw r2,-8(fp) + ce8c: 00000b06 br cebc + } + else + { + ALT_ERRNO = EACCES; + ce90: 000ced40 call ced4 + ce94: 1007883a mov r3,r2 + ce98: 00800344 movi r2,13 + ce9c: 18800015 stw r2,0(r3) + cea0: 00000406 br ceb4 + } + } + else + { + ALT_ERRNO = EBADFD; + cea4: 000ced40 call ced4 + cea8: 1007883a mov r3,r2 + ceac: 00801444 movi r2,81 + ceb0: 18800015 stw r2,0(r3) + } + return -1; + ceb4: 00bfffc4 movi r2,-1 + ceb8: e0bffe15 stw r2,-8(fp) + cebc: e0bffe17 ldw r2,-8(fp) +} + cec0: e037883a mov sp,fp + cec4: dfc00117 ldw ra,4(sp) + cec8: df000017 ldw fp,0(sp) + cecc: dec00204 addi sp,sp,8 + ced0: f800283a ret + +0000ced4 : +#undef errno + +extern int errno; + +static ALT_INLINE int* alt_get_errno(void) +{ + ced4: defffd04 addi sp,sp,-12 + ced8: dfc00215 stw ra,8(sp) + cedc: df000115 stw fp,4(sp) + cee0: df000104 addi fp,sp,4 + return ((alt_errno) ? alt_errno() : &errno); + cee4: 00800074 movhi r2,1 + cee8: 10884904 addi r2,r2,8484 + ceec: 10800017 ldw r2,0(r2) + cef0: 1005003a cmpeq r2,r2,zero + cef4: 1000061e bne r2,zero,cf10 + cef8: 00800074 movhi r2,1 + cefc: 10884904 addi r2,r2,8484 + cf00: 10800017 ldw r2,0(r2) + cf04: 103ee83a callr r2 + cf08: e0bfff15 stw r2,-4(fp) + cf0c: 00000306 br cf1c + cf10: 00800074 movhi r2,1 + cf14: 108f3c04 addi r2,r2,15600 + cf18: e0bfff15 stw r2,-4(fp) + cf1c: e0bfff17 ldw r2,-4(fp) +} + cf20: e037883a mov sp,fp + cf24: dfc00117 ldw ra,4(sp) + cf28: df000017 ldw fp,0(sp) + cf2c: dec00204 addi sp,sp,8 + cf30: f800283a ret + +0000cf34 : + * The "base" parameter is ignored and only + * present for backwards-compatibility. + */ + +void alt_irq_init ( const void* base ) +{ + cf34: defffd04 addi sp,sp,-12 + cf38: dfc00215 stw ra,8(sp) + cf3c: df000115 stw fp,4(sp) + cf40: df000104 addi fp,sp,4 + cf44: e13fff15 stw r4,-4(fp) + ALTERA_NIOS2_QSYS_IRQ_INIT ( NIOS2_PROCESSOR, nios2_processor); + cf48: 000f7e80 call f7e8 + * alt_irq_cpu_enable_interrupts() enables the CPU to start taking interrupts. + */ +static ALT_INLINE void ALT_ALWAYS_INLINE + alt_irq_cpu_enable_interrupts () +{ + NIOS2_WRITE_STATUS(NIOS2_STATUS_PIE_MSK + cf4c: 00800044 movi r2,1 + cf50: 1001703a wrctl status,r2 + alt_irq_cpu_enable_interrupts(); +} + cf54: e037883a mov sp,fp + cf58: dfc00117 ldw ra,4(sp) + cf5c: df000017 ldw fp,0(sp) + cf60: dec00204 addi sp,sp,8 + cf64: f800283a ret + +0000cf68 : + * Initialize the non-interrupt controller devices. + * Called after alt_irq_init(). + */ + +void alt_sys_init( void ) +{ + cf68: defffe04 addi sp,sp,-8 + cf6c: dfc00115 stw ra,4(sp) + cf70: df000015 stw fp,0(sp) + cf74: d839883a mov fp,sp + ALTERA_AVALON_JTAG_UART_INIT ( JTAG_UART, jtag_uart); + cf78: 01000074 movhi r4,1 + cf7c: 2103e604 addi r4,r4,3992 + cf80: 000b883a mov r5,zero + cf84: 01800144 movi r6,5 + cf88: 000d1440 call d144 + cf8c: 01000074 movhi r4,1 + cf90: 2103dc04 addi r4,r4,3952 + cf94: 000cfc40 call cfc4 + ALTERA_AVALON_LCD_16207_INIT ( LCD_16207_0, lcd_16207_0); + cf98: 01000074 movhi r4,1 + cf9c: 2107fe04 addi r4,r4,8184 + cfa0: 000e8ec0 call e8ec + cfa4: 01000074 movhi r4,1 + cfa8: 2107f404 addi r4,r4,8144 + cfac: 000cfc40 call cfc4 +} + cfb0: e037883a mov sp,fp + cfb4: dfc00117 ldw ra,4(sp) + cfb8: df000017 ldw fp,0(sp) + cfbc: dec00204 addi sp,sp,8 + cfc0: f800283a ret + +0000cfc4 : + */ + +extern int alt_fs_reg (alt_dev* dev); + +static ALT_INLINE int alt_dev_reg (alt_dev* dev) +{ + cfc4: defffd04 addi sp,sp,-12 + cfc8: dfc00215 stw ra,8(sp) + cfcc: df000115 stw fp,4(sp) + cfd0: df000104 addi fp,sp,4 + cfd4: e13fff15 stw r4,-4(fp) + extern alt_llist alt_dev_list; + + return alt_dev_llist_insert ((alt_dev_llist*) dev, &alt_dev_list); + cfd8: e13fff17 ldw r4,-4(fp) + cfdc: 01400074 movhi r5,1 + cfe0: 29484604 addi r5,r5,8472 + cfe4: 000ed4c0 call ed4c +} + cfe8: e037883a mov sp,fp + cfec: dfc00117 ldw ra,4(sp) + cff0: df000017 ldw fp,0(sp) + cff4: dec00204 addi sp,sp,8 + cff8: f800283a ret + +0000cffc : + * + */ + +int +altera_avalon_jtag_uart_read_fd(alt_fd* fd, char* buffer, int space) +{ + cffc: defffa04 addi sp,sp,-24 + d000: dfc00515 stw ra,20(sp) + d004: df000415 stw fp,16(sp) + d008: df000404 addi fp,sp,16 + d00c: e13ffd15 stw r4,-12(fp) + d010: e17ffe15 stw r5,-8(fp) + d014: e1bfff15 stw r6,-4(fp) + altera_avalon_jtag_uart_dev* dev = (altera_avalon_jtag_uart_dev*) fd->dev; + d018: e0bffd17 ldw r2,-12(fp) + d01c: 10800017 ldw r2,0(r2) + d020: e0bffc15 stw r2,-16(fp) + + return altera_avalon_jtag_uart_read(&dev->state, buffer, space, + d024: e0bffc17 ldw r2,-16(fp) + d028: 11000a04 addi r4,r2,40 + d02c: e0bffd17 ldw r2,-12(fp) + d030: 11c00217 ldw r7,8(r2) + d034: e17ffe17 ldw r5,-8(fp) + d038: e1bfff17 ldw r6,-4(fp) + d03c: 000d6440 call d644 + fd->fd_flags); +} + d040: e037883a mov sp,fp + d044: dfc00117 ldw ra,4(sp) + d048: df000017 ldw fp,0(sp) + d04c: dec00204 addi sp,sp,8 + d050: f800283a ret + +0000d054 : + +int +altera_avalon_jtag_uart_write_fd(alt_fd* fd, const char* buffer, int space) +{ + d054: defffa04 addi sp,sp,-24 + d058: dfc00515 stw ra,20(sp) + d05c: df000415 stw fp,16(sp) + d060: df000404 addi fp,sp,16 + d064: e13ffd15 stw r4,-12(fp) + d068: e17ffe15 stw r5,-8(fp) + d06c: e1bfff15 stw r6,-4(fp) + altera_avalon_jtag_uart_dev* dev = (altera_avalon_jtag_uart_dev*) fd->dev; + d070: e0bffd17 ldw r2,-12(fp) + d074: 10800017 ldw r2,0(r2) + d078: e0bffc15 stw r2,-16(fp) + + return altera_avalon_jtag_uart_write(&dev->state, buffer, space, + d07c: e0bffc17 ldw r2,-16(fp) + d080: 11000a04 addi r4,r2,40 + d084: e0bffd17 ldw r2,-12(fp) + d088: 11c00217 ldw r7,8(r2) + d08c: e17ffe17 ldw r5,-8(fp) + d090: e1bfff17 ldw r6,-4(fp) + d094: 000d8680 call d868 + fd->fd_flags); +} + d098: e037883a mov sp,fp + d09c: dfc00117 ldw ra,4(sp) + d0a0: df000017 ldw fp,0(sp) + d0a4: dec00204 addi sp,sp,8 + d0a8: f800283a ret + +0000d0ac : + +#ifndef ALTERA_AVALON_JTAG_UART_SMALL + +int +altera_avalon_jtag_uart_close_fd(alt_fd* fd) +{ + d0ac: defffc04 addi sp,sp,-16 + d0b0: dfc00315 stw ra,12(sp) + d0b4: df000215 stw fp,8(sp) + d0b8: df000204 addi fp,sp,8 + d0bc: e13fff15 stw r4,-4(fp) + altera_avalon_jtag_uart_dev* dev = (altera_avalon_jtag_uart_dev*) fd->dev; + d0c0: e0bfff17 ldw r2,-4(fp) + d0c4: 10800017 ldw r2,0(r2) + d0c8: e0bffe15 stw r2,-8(fp) + + return altera_avalon_jtag_uart_close(&dev->state, fd->fd_flags); + d0cc: e0bffe17 ldw r2,-8(fp) + d0d0: 11000a04 addi r4,r2,40 + d0d4: e0bfff17 ldw r2,-4(fp) + d0d8: 11400217 ldw r5,8(r2) + d0dc: 000d4dc0 call d4dc +} + d0e0: e037883a mov sp,fp + d0e4: dfc00117 ldw ra,4(sp) + d0e8: df000017 ldw fp,0(sp) + d0ec: dec00204 addi sp,sp,8 + d0f0: f800283a ret + +0000d0f4 : + +int +altera_avalon_jtag_uart_ioctl_fd(alt_fd* fd, int req, void* arg) +{ + d0f4: defffa04 addi sp,sp,-24 + d0f8: dfc00515 stw ra,20(sp) + d0fc: df000415 stw fp,16(sp) + d100: df000404 addi fp,sp,16 + d104: e13ffd15 stw r4,-12(fp) + d108: e17ffe15 stw r5,-8(fp) + d10c: e1bfff15 stw r6,-4(fp) + altera_avalon_jtag_uart_dev* dev = (altera_avalon_jtag_uart_dev*) fd->dev; + d110: e0bffd17 ldw r2,-12(fp) + d114: 10800017 ldw r2,0(r2) + d118: e0bffc15 stw r2,-16(fp) + + return altera_avalon_jtag_uart_ioctl(&dev->state, req, arg); + d11c: e0bffc17 ldw r2,-16(fp) + d120: 11000a04 addi r4,r2,40 + d124: e17ffe17 ldw r5,-8(fp) + d128: e1bfff17 ldw r6,-4(fp) + d12c: 000d5500 call d550 +} + d130: e037883a mov sp,fp + d134: dfc00117 ldw ra,4(sp) + d138: df000017 ldw fp,0(sp) + d13c: dec00204 addi sp,sp,8 + d140: f800283a ret + +0000d144 : + * Return 1 on sucessful IRQ register and 0 on failure. + */ + +void altera_avalon_jtag_uart_init(altera_avalon_jtag_uart_state* sp, + int irq_controller_id, int irq) +{ + d144: defffa04 addi sp,sp,-24 + d148: dfc00515 stw ra,20(sp) + d14c: df000415 stw fp,16(sp) + d150: df000404 addi fp,sp,16 + d154: e13ffd15 stw r4,-12(fp) + d158: e17ffe15 stw r5,-8(fp) + d15c: e1bfff15 stw r6,-4(fp) + ALT_FLAG_CREATE(&sp->events, 0); + ALT_SEM_CREATE(&sp->read_lock, 1); + ALT_SEM_CREATE(&sp->write_lock, 1); + + /* enable read interrupts at the device */ + sp->irq_enable = ALTERA_AVALON_JTAG_UART_CONTROL_RE_MSK; + d160: e0fffd17 ldw r3,-12(fp) + d164: 00800044 movi r2,1 + d168: 18800815 stw r2,32(r3) + + IOWR_ALTERA_AVALON_JTAG_UART_CONTROL(sp->base, sp->irq_enable); + d16c: e0bffd17 ldw r2,-12(fp) + d170: 10800017 ldw r2,0(r2) + d174: 11000104 addi r4,r2,4 + d178: e0bffd17 ldw r2,-12(fp) + d17c: 10800817 ldw r2,32(r2) + d180: 1007883a mov r3,r2 + d184: 2005883a mov r2,r4 + d188: 10c00035 stwio r3,0(r2) + + /* register the interrupt handler */ +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT + alt_ic_isr_register(irq_controller_id, irq, altera_avalon_jtag_uart_irq, + d18c: e13ffe17 ldw r4,-8(fp) + d190: e17fff17 ldw r5,-4(fp) + d194: d8000015 stw zero,0(sp) + d198: 01800074 movhi r6,1 + d19c: 31b48104 addi r6,r6,-11772 + d1a0: e1fffd17 ldw r7,-12(fp) + d1a4: 000ef440 call ef44 +#else + alt_irq_register(irq, sp, altera_avalon_jtag_uart_irq); +#endif + + /* Register an alarm to go off every second to check for presence of host */ + sp->host_inactive = 0; + d1a8: e0bffd17 ldw r2,-12(fp) + d1ac: 10000915 stw zero,36(r2) + + if (alt_alarm_start(&sp->alarm, alt_ticks_per_second(), + d1b0: e0bffd17 ldw r2,-12(fp) + d1b4: 11000204 addi r4,r2,8 + * Obtain the system clock rate in ticks/s. + */ + +static ALT_INLINE alt_u32 ALT_ALWAYS_INLINE alt_ticks_per_second (void) +{ + return _alt_tick_rate; + d1b8: 00800074 movhi r2,1 + d1bc: 108f4104 addi r2,r2,15620 + d1c0: 10800017 ldw r2,0(r2) + d1c4: 100b883a mov r5,r2 + d1c8: 01800074 movhi r6,1 + d1cc: 31b50b04 addi r6,r6,-11220 + d1d0: e1fffd17 ldw r7,-12(fp) + d1d4: 000ea800 call ea80 + d1d8: 1004403a cmpge r2,r2,zero + d1dc: 1000041e bne r2,zero,d1f0 + &altera_avalon_jtag_uart_timeout, sp) < 0) + { + /* If we can't set the alarm then record "don't know if host present" + * and behave as though the host is present. + */ + sp->timeout = INT_MAX; + d1e0: e0fffd17 ldw r3,-12(fp) + d1e4: 00a00034 movhi r2,32768 + d1e8: 10bfffc4 addi r2,r2,-1 + d1ec: 18800115 stw r2,4(r3) + } + + /* ALT_LOG - see altera_hal/HAL/inc/sys/alt_log_printf.h */ + ALT_LOG_JTAG_UART_ALARM_REGISTER(sp, sp->base); +} + d1f0: e037883a mov sp,fp + d1f4: dfc00117 ldw ra,4(sp) + d1f8: df000017 ldw fp,0(sp) + d1fc: dec00204 addi sp,sp,8 + d200: f800283a ret + +0000d204 : +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT +static void altera_avalon_jtag_uart_irq(void* context) +#else +static void altera_avalon_jtag_uart_irq(void* context, alt_u32 id) +#endif +{ + d204: defff804 addi sp,sp,-32 + d208: df000715 stw fp,28(sp) + d20c: df000704 addi fp,sp,28 + d210: e13fff15 stw r4,-4(fp) + altera_avalon_jtag_uart_state* sp = (altera_avalon_jtag_uart_state*) context; + d214: e0bfff17 ldw r2,-4(fp) + d218: e0bffe15 stw r2,-8(fp) + unsigned int base = sp->base; + d21c: e0bffe17 ldw r2,-8(fp) + d220: 10800017 ldw r2,0(r2) + d224: e0bffd15 stw r2,-12(fp) + d228: 00000006 br d22c + /* ALT_LOG - see altera_hal/HAL/inc/sys/alt_log_printf.h */ + ALT_LOG_JTAG_UART_ISR_FUNCTION(base, sp); + + for ( ; ; ) + { + unsigned int control = IORD_ALTERA_AVALON_JTAG_UART_CONTROL(base); + d22c: e0bffd17 ldw r2,-12(fp) + d230: 10800104 addi r2,r2,4 + d234: 10800037 ldwio r2,0(r2) + d238: e0bffc15 stw r2,-16(fp) + + /* Return once nothing more to do */ + if ((control & (ALTERA_AVALON_JTAG_UART_CONTROL_RI_MSK | ALTERA_AVALON_JTAG_UART_CONTROL_WI_MSK)) == 0) + d23c: e0bffc17 ldw r2,-16(fp) + d240: 1080c00c andi r2,r2,768 + d244: 1005003a cmpeq r2,r2,zero + d248: 1000741e bne r2,zero,d41c + break; + + if (control & ALTERA_AVALON_JTAG_UART_CONTROL_RI_MSK) + d24c: e0bffc17 ldw r2,-16(fp) + d250: 1080400c andi r2,r2,256 + d254: 1005003a cmpeq r2,r2,zero + d258: 1000351e bne r2,zero,d330 + { + /* process a read irq. Start by assuming that there is data in the + * receive FIFO (otherwise why would we have been interrupted?) + */ + unsigned int data = 1 << ALTERA_AVALON_JTAG_UART_DATA_RAVAIL_OFST; + d25c: 00800074 movhi r2,1 + d260: e0bffb15 stw r2,-20(fp) + for ( ; ; ) + { + /* Check whether there is space in the buffer. If not then we must not + * read any characters from the buffer as they will be lost. + */ + unsigned int next = (sp->rx_in + 1) % ALTERA_AVALON_JTAG_UART_BUF_LEN; + d264: e0bffe17 ldw r2,-8(fp) + d268: 10800a17 ldw r2,40(r2) + d26c: 10800044 addi r2,r2,1 + d270: 1081ffcc andi r2,r2,2047 + d274: e0bffa15 stw r2,-24(fp) + if (next == sp->rx_out) + d278: e0bffe17 ldw r2,-8(fp) + d27c: 10c00b17 ldw r3,44(r2) + d280: e0bffa17 ldw r2,-24(fp) + d284: 18801626 beq r3,r2,d2e0 + break; + + /* Try to remove a character from the FIFO and find out whether there + * are any more characters remaining. + */ + data = IORD_ALTERA_AVALON_JTAG_UART_DATA(base); + d288: e0bffd17 ldw r2,-12(fp) + d28c: 10800037 ldwio r2,0(r2) + d290: e0bffb15 stw r2,-20(fp) + + if ((data & ALTERA_AVALON_JTAG_UART_DATA_RVALID_MSK) == 0) + d294: e0bffb17 ldw r2,-20(fp) + d298: 10a0000c andi r2,r2,32768 + d29c: 1005003a cmpeq r2,r2,zero + d2a0: 10000f1e bne r2,zero,d2e0 + break; + + sp->rx_buf[sp->rx_in] = (data & ALTERA_AVALON_JTAG_UART_DATA_DATA_MSK) >> ALTERA_AVALON_JTAG_UART_DATA_DATA_OFST; + d2a4: e0bffe17 ldw r2,-8(fp) + d2a8: 10c00a17 ldw r3,40(r2) + d2ac: e0bffb17 ldw r2,-20(fp) + d2b0: 1009883a mov r4,r2 + d2b4: e0bffe17 ldw r2,-8(fp) + d2b8: 1885883a add r2,r3,r2 + d2bc: 10800e04 addi r2,r2,56 + d2c0: 11000005 stb r4,0(r2) + sp->rx_in = (sp->rx_in + 1) % ALTERA_AVALON_JTAG_UART_BUF_LEN; + d2c4: e0bffe17 ldw r2,-8(fp) + d2c8: 10800a17 ldw r2,40(r2) + d2cc: 10800044 addi r2,r2,1 + d2d0: 10c1ffcc andi r3,r2,2047 + d2d4: e0bffe17 ldw r2,-8(fp) + d2d8: 10c00a15 stw r3,40(r2) + + /* Post an event to notify jtag_uart_read that a character has been read */ + ALT_FLAG_POST (sp->events, ALT_JTAG_UART_READ_RDY, OS_FLAG_SET); + } + d2dc: 003fe106 br d264 + + if (data & ALTERA_AVALON_JTAG_UART_DATA_RAVAIL_MSK) + d2e0: e0bffb17 ldw r2,-20(fp) + d2e4: 10bfffec andhi r2,r2,65535 + d2e8: 1005003a cmpeq r2,r2,zero + d2ec: 1000101e bne r2,zero,d330 + { + /* If there is still data available here then the buffer is full + * so turn off receive interrupts until some space becomes available. + */ + sp->irq_enable &= ~ALTERA_AVALON_JTAG_UART_CONTROL_RE_MSK; + d2f0: e0bffe17 ldw r2,-8(fp) + d2f4: 10c00817 ldw r3,32(r2) + d2f8: 00bfff84 movi r2,-2 + d2fc: 1886703a and r3,r3,r2 + d300: e0bffe17 ldw r2,-8(fp) + d304: 10c00815 stw r3,32(r2) + IOWR_ALTERA_AVALON_JTAG_UART_CONTROL(base, sp->irq_enable); + d308: e0bffd17 ldw r2,-12(fp) + d30c: 11000104 addi r4,r2,4 + d310: e0bffe17 ldw r2,-8(fp) + d314: 10800817 ldw r2,32(r2) + d318: 1007883a mov r3,r2 + d31c: 2005883a mov r2,r4 + d320: 10c00035 stwio r3,0(r2) + + /* Dummy read to ensure IRQ is cleared prior to ISR completion */ + IORD_ALTERA_AVALON_JTAG_UART_CONTROL(base); + d324: e0bffd17 ldw r2,-12(fp) + d328: 10800104 addi r2,r2,4 + d32c: 10800037 ldwio r2,0(r2) + } + } + + if (control & ALTERA_AVALON_JTAG_UART_CONTROL_WI_MSK) + d330: e0bffc17 ldw r2,-16(fp) + d334: 1080800c andi r2,r2,512 + d338: 1005003a cmpeq r2,r2,zero + d33c: 103fbb1e bne r2,zero,d22c + { + /* process a write irq */ + unsigned int space = (control & ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_MSK) >> ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_OFST; + d340: e0bffc17 ldw r2,-16(fp) + d344: 10bfffec andhi r2,r2,65535 + d348: 1004d43a srli r2,r2,16 + d34c: e0bff915 stw r2,-28(fp) + + while (space > 0 && sp->tx_out != sp->tx_in) + d350: 00001506 br d3a8 + { + IOWR_ALTERA_AVALON_JTAG_UART_DATA(base, sp->tx_buf[sp->tx_out]); + d354: e13ffd17 ldw r4,-12(fp) + d358: e0bffe17 ldw r2,-8(fp) + d35c: 10c00d17 ldw r3,52(r2) + d360: e0bffe17 ldw r2,-8(fp) + d364: 1885883a add r2,r3,r2 + d368: 10820e04 addi r2,r2,2104 + d36c: 10800003 ldbu r2,0(r2) + d370: 10c03fcc andi r3,r2,255 + d374: 18c0201c xori r3,r3,128 + d378: 18ffe004 addi r3,r3,-128 + d37c: 2005883a mov r2,r4 + d380: 10c00035 stwio r3,0(r2) + + sp->tx_out = (sp->tx_out + 1) % ALTERA_AVALON_JTAG_UART_BUF_LEN; + d384: e0bffe17 ldw r2,-8(fp) + d388: 10800d17 ldw r2,52(r2) + d38c: 10800044 addi r2,r2,1 + d390: 10c1ffcc andi r3,r2,2047 + d394: e0bffe17 ldw r2,-8(fp) + d398: 10c00d15 stw r3,52(r2) + + /* Post an event to notify jtag_uart_write that a character has been written */ + ALT_FLAG_POST (sp->events, ALT_JTAG_UART_WRITE_RDY, OS_FLAG_SET); + + space--; + d39c: e0bff917 ldw r2,-28(fp) + d3a0: 10bfffc4 addi r2,r2,-1 + d3a4: e0bff915 stw r2,-28(fp) + if (control & ALTERA_AVALON_JTAG_UART_CONTROL_WI_MSK) + { + /* process a write irq */ + unsigned int space = (control & ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_MSK) >> ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_OFST; + + while (space > 0 && sp->tx_out != sp->tx_in) + d3a8: e0bff917 ldw r2,-28(fp) + d3ac: 1005003a cmpeq r2,r2,zero + d3b0: 1000051e bne r2,zero,d3c8 + d3b4: e0bffe17 ldw r2,-8(fp) + d3b8: 10c00d17 ldw r3,52(r2) + d3bc: e0bffe17 ldw r2,-8(fp) + d3c0: 10800c17 ldw r2,48(r2) + d3c4: 18bfe31e bne r3,r2,d354 + ALT_FLAG_POST (sp->events, ALT_JTAG_UART_WRITE_RDY, OS_FLAG_SET); + + space--; + } + + if (space > 0) + d3c8: e0bff917 ldw r2,-28(fp) + d3cc: 1005003a cmpeq r2,r2,zero + d3d0: 103f961e bne r2,zero,d22c + { + /* If we don't have any more data available then turn off the TX interrupt */ + sp->irq_enable &= ~ALTERA_AVALON_JTAG_UART_CONTROL_WE_MSK; + d3d4: e0bffe17 ldw r2,-8(fp) + d3d8: 10c00817 ldw r3,32(r2) + d3dc: 00bfff44 movi r2,-3 + d3e0: 1886703a and r3,r3,r2 + d3e4: e0bffe17 ldw r2,-8(fp) + d3e8: 10c00815 stw r3,32(r2) + IOWR_ALTERA_AVALON_JTAG_UART_CONTROL(sp->base, sp->irq_enable); + d3ec: e0bffe17 ldw r2,-8(fp) + d3f0: 10800017 ldw r2,0(r2) + d3f4: 11000104 addi r4,r2,4 + d3f8: e0bffe17 ldw r2,-8(fp) + d3fc: 10800817 ldw r2,32(r2) + d400: 1007883a mov r3,r2 + d404: 2005883a mov r2,r4 + d408: 10c00035 stwio r3,0(r2) + + /* Dummy read to ensure IRQ is cleared prior to ISR completion */ + IORD_ALTERA_AVALON_JTAG_UART_CONTROL(base); + d40c: e0bffd17 ldw r2,-12(fp) + d410: 10800104 addi r2,r2,4 + d414: 10800037 ldwio r2,0(r2) + } + } + } + d418: 003f8406 br d22c +} + d41c: e037883a mov sp,fp + d420: df000017 ldw fp,0(sp) + d424: dec00104 addi sp,sp,4 + d428: f800283a ret + +0000d42c : + * Timeout routine is called every second + */ + +static alt_u32 +altera_avalon_jtag_uart_timeout(void* context) +{ + d42c: defffc04 addi sp,sp,-16 + d430: df000315 stw fp,12(sp) + d434: df000304 addi fp,sp,12 + d438: e13fff15 stw r4,-4(fp) + altera_avalon_jtag_uart_state* sp = (altera_avalon_jtag_uart_state *) context; + d43c: e0bfff17 ldw r2,-4(fp) + d440: e0bffe15 stw r2,-8(fp) + + unsigned int control = IORD_ALTERA_AVALON_JTAG_UART_CONTROL(sp->base); + d444: e0bffe17 ldw r2,-8(fp) + d448: 10800017 ldw r2,0(r2) + d44c: 10800104 addi r2,r2,4 + d450: 10800037 ldwio r2,0(r2) + d454: e0bffd15 stw r2,-12(fp) + + if (control & ALTERA_AVALON_JTAG_UART_CONTROL_AC_MSK) + d458: e0bffd17 ldw r2,-12(fp) + d45c: 1081000c andi r2,r2,1024 + d460: 1005003a cmpeq r2,r2,zero + d464: 10000c1e bne r2,zero,d498 + { + IOWR_ALTERA_AVALON_JTAG_UART_CONTROL(sp->base, sp->irq_enable | ALTERA_AVALON_JTAG_UART_CONTROL_AC_MSK); + d468: e0bffe17 ldw r2,-8(fp) + d46c: 10800017 ldw r2,0(r2) + d470: 11000104 addi r4,r2,4 + d474: e0bffe17 ldw r2,-8(fp) + d478: 10800817 ldw r2,32(r2) + d47c: 10810014 ori r2,r2,1024 + d480: 1007883a mov r3,r2 + d484: 2005883a mov r2,r4 + d488: 10c00035 stwio r3,0(r2) + sp->host_inactive = 0; + d48c: e0bffe17 ldw r2,-8(fp) + d490: 10000915 stw zero,36(r2) + d494: 00000a06 br d4c0 + } + else if (sp->host_inactive < INT_MAX - 2) { + d498: e0bffe17 ldw r2,-8(fp) + d49c: 10c00917 ldw r3,36(r2) + d4a0: 00a00034 movhi r2,32768 + d4a4: 10bfff04 addi r2,r2,-4 + d4a8: 10c00536 bltu r2,r3,d4c0 + sp->host_inactive++; + d4ac: e0bffe17 ldw r2,-8(fp) + d4b0: 10800917 ldw r2,36(r2) + d4b4: 10c00044 addi r3,r2,1 + d4b8: e0bffe17 ldw r2,-8(fp) + d4bc: 10c00915 stw r3,36(r2) + d4c0: 00800074 movhi r2,1 + d4c4: 108f4104 addi r2,r2,15620 + d4c8: 10800017 ldw r2,0(r2) + ALT_FLAG_POST (sp->events, ALT_JTAG_UART_TIMEOUT, OS_FLAG_SET); + } + } + + return alt_ticks_per_second(); +} + d4cc: e037883a mov sp,fp + d4d0: df000017 ldw fp,0(sp) + d4d4: dec00104 addi sp,sp,4 + d4d8: f800283a ret + +0000d4dc : + * The close routine is not implemented for the small driver; instead it will + * map to null. This is because the small driver simply waits while characters + * are transmitted; there is no interrupt-serviced buffer to empty + */ +int altera_avalon_jtag_uart_close(altera_avalon_jtag_uart_state* sp, int flags) +{ + d4dc: defffc04 addi sp,sp,-16 + d4e0: df000315 stw fp,12(sp) + d4e4: df000304 addi fp,sp,12 + d4e8: e13ffd15 stw r4,-12(fp) + d4ec: e17ffe15 stw r5,-8(fp) + /* + * Wait for all transmit data to be emptied by the JTAG UART ISR, or + * for a host-inactivity timeout, in which case transmit data will be lost + */ + while ( (sp->tx_out != sp->tx_in) && (sp->host_inactive < sp->timeout) ) { + d4f0: 00000706 br d510 + if (flags & O_NONBLOCK) { + d4f4: e0bffe17 ldw r2,-8(fp) + d4f8: 1090000c andi r2,r2,16384 + d4fc: 1005003a cmpeq r2,r2,zero + d500: 1000031e bne r2,zero,d510 + return -EWOULDBLOCK; + d504: 00bffd44 movi r2,-11 + d508: e0bfff15 stw r2,-4(fp) + d50c: 00000b06 br d53c +{ + /* + * Wait for all transmit data to be emptied by the JTAG UART ISR, or + * for a host-inactivity timeout, in which case transmit data will be lost + */ + while ( (sp->tx_out != sp->tx_in) && (sp->host_inactive < sp->timeout) ) { + d510: e0bffd17 ldw r2,-12(fp) + d514: 10c00d17 ldw r3,52(r2) + d518: e0bffd17 ldw r2,-12(fp) + d51c: 10800c17 ldw r2,48(r2) + d520: 18800526 beq r3,r2,d538 + d524: e0bffd17 ldw r2,-12(fp) + d528: 10c00917 ldw r3,36(r2) + d52c: e0bffd17 ldw r2,-12(fp) + d530: 10800117 ldw r2,4(r2) + d534: 18bfef36 bltu r3,r2,d4f4 + if (flags & O_NONBLOCK) { + return -EWOULDBLOCK; + } + } + + return 0; + d538: e03fff15 stw zero,-4(fp) + d53c: e0bfff17 ldw r2,-4(fp) +} + d540: e037883a mov sp,fp + d544: df000017 ldw fp,0(sp) + d548: dec00104 addi sp,sp,4 + d54c: f800283a ret + +0000d550 : +/* ----------------------------------------------------------- */ + +int +altera_avalon_jtag_uart_ioctl(altera_avalon_jtag_uart_state* sp, int req, + void* arg) +{ + d550: defff804 addi sp,sp,-32 + d554: df000715 stw fp,28(sp) + d558: df000704 addi fp,sp,28 + d55c: e13ffb15 stw r4,-20(fp) + d560: e17ffc15 stw r5,-16(fp) + d564: e1bffd15 stw r6,-12(fp) + int rc = -ENOTTY; + d568: 00bff9c4 movi r2,-25 + d56c: e0bffa15 stw r2,-24(fp) + + switch (req) + d570: e0bffc17 ldw r2,-16(fp) + d574: e0bfff15 stw r2,-4(fp) + d578: e0ffff17 ldw r3,-4(fp) + d57c: 189a8060 cmpeqi r2,r3,27137 + d580: 1000041e bne r2,zero,d594 + d584: e0ffff17 ldw r3,-4(fp) + d588: 189a80a0 cmpeqi r2,r3,27138 + d58c: 10001b1e bne r2,zero,d5fc + d590: 00002706 br d630 + { + case TIOCSTIMEOUT: + /* Set the time to wait until assuming host is not connected */ + if (sp->timeout != INT_MAX) + d594: e0bffb17 ldw r2,-20(fp) + d598: 10c00117 ldw r3,4(r2) + d59c: 00a00034 movhi r2,32768 + d5a0: 10bfffc4 addi r2,r2,-1 + d5a4: 18802226 beq r3,r2,d630 + { + int timeout = *((int *)arg); + d5a8: e0bffd17 ldw r2,-12(fp) + d5ac: 10800017 ldw r2,0(r2) + d5b0: e0bff915 stw r2,-28(fp) + sp->timeout = (timeout >= 2 && timeout < INT_MAX) ? timeout : INT_MAX - 1; + d5b4: e0bff917 ldw r2,-28(fp) + d5b8: 10800090 cmplti r2,r2,2 + d5bc: 1000071e bne r2,zero,d5dc + d5c0: e0fff917 ldw r3,-28(fp) + d5c4: 00a00034 movhi r2,32768 + d5c8: 10bfffc4 addi r2,r2,-1 + d5cc: 18800326 beq r3,r2,d5dc + d5d0: e0bff917 ldw r2,-28(fp) + d5d4: e0bffe15 stw r2,-8(fp) + d5d8: 00000306 br d5e8 + d5dc: 00e00034 movhi r3,32768 + d5e0: 18ffff84 addi r3,r3,-2 + d5e4: e0fffe15 stw r3,-8(fp) + d5e8: e0bffb17 ldw r2,-20(fp) + d5ec: e0fffe17 ldw r3,-8(fp) + d5f0: 10c00115 stw r3,4(r2) + rc = 0; + d5f4: e03ffa15 stw zero,-24(fp) + } + break; + d5f8: 00000d06 br d630 + + case TIOCGCONNECTED: + /* Find out whether host is connected */ + if (sp->timeout != INT_MAX) + d5fc: e0bffb17 ldw r2,-20(fp) + d600: 10c00117 ldw r3,4(r2) + d604: 00a00034 movhi r2,32768 + d608: 10bfffc4 addi r2,r2,-1 + d60c: 18800826 beq r3,r2,d630 + { + *((int *)arg) = (sp->host_inactive < sp->timeout) ? 1 : 0; + d610: e13ffd17 ldw r4,-12(fp) + d614: e0bffb17 ldw r2,-20(fp) + d618: 10c00917 ldw r3,36(r2) + d61c: e0bffb17 ldw r2,-20(fp) + d620: 10800117 ldw r2,4(r2) + d624: 1885803a cmpltu r2,r3,r2 + d628: 20800015 stw r2,0(r4) + rc = 0; + d62c: e03ffa15 stw zero,-24(fp) + + default: + break; + } + + return rc; + d630: e0bffa17 ldw r2,-24(fp) +} + d634: e037883a mov sp,fp + d638: df000017 ldw fp,0(sp) + d63c: dec00104 addi sp,sp,4 + d640: f800283a ret + +0000d644 : +/* ----------------------------------------------------------- */ + +int +altera_avalon_jtag_uart_read(altera_avalon_jtag_uart_state* sp, + char * buffer, int space, int flags) +{ + d644: defff204 addi sp,sp,-56 + d648: dfc00d15 stw ra,52(sp) + d64c: df000c15 stw fp,48(sp) + d650: df000c04 addi fp,sp,48 + d654: e13ffb15 stw r4,-20(fp) + d658: e17ffc15 stw r5,-16(fp) + d65c: e1bffd15 stw r6,-12(fp) + d660: e1fffe15 stw r7,-8(fp) + char * ptr = buffer; + d664: e0bffc17 ldw r2,-16(fp) + d668: e0bffa15 stw r2,-24(fp) + * When running in a multi threaded environment, obtain the "read_lock" + * semaphore. This ensures that reading from the device is thread-safe. + */ + ALT_SEM_PEND (sp->read_lock, 0); + + while (space > 0) + d66c: 00004806 br d790 + unsigned int in, out; + + /* Read as much data as possible */ + do + { + in = sp->rx_in; + d670: e0bffb17 ldw r2,-20(fp) + d674: 10800a17 ldw r2,40(r2) + d678: e0bff715 stw r2,-36(fp) + out = sp->rx_out; + d67c: e0bffb17 ldw r2,-20(fp) + d680: 10800b17 ldw r2,44(r2) + d684: e0bff615 stw r2,-40(fp) + + if (in >= out) + d688: e0fff717 ldw r3,-36(fp) + d68c: e0bff617 ldw r2,-40(fp) + d690: 18800536 bltu r3,r2,d6a8 + n = in - out; + d694: e0bff717 ldw r2,-36(fp) + d698: e0fff617 ldw r3,-40(fp) + d69c: 10c5c83a sub r2,r2,r3 + d6a0: e0bff815 stw r2,-32(fp) + d6a4: 00000406 br d6b8 + else + n = ALTERA_AVALON_JTAG_UART_BUF_LEN - out; + d6a8: 00820004 movi r2,2048 + d6ac: e0fff617 ldw r3,-40(fp) + d6b0: 10c5c83a sub r2,r2,r3 + d6b4: e0bff815 stw r2,-32(fp) + + if (n == 0) + d6b8: e0bff817 ldw r2,-32(fp) + d6bc: 1005003a cmpeq r2,r2,zero + d6c0: 10001f1e bne r2,zero,d740 + break; /* No more data available */ + + if (n > space) + d6c4: e0fffd17 ldw r3,-12(fp) + d6c8: e0bff817 ldw r2,-32(fp) + d6cc: 1880022e bgeu r3,r2,d6d8 + n = space; + d6d0: e0bffd17 ldw r2,-12(fp) + d6d4: e0bff815 stw r2,-32(fp) + + memcpy(ptr, sp->rx_buf + out, n); + d6d8: e0bffb17 ldw r2,-20(fp) + d6dc: 10c00e04 addi r3,r2,56 + d6e0: e0bff617 ldw r2,-40(fp) + d6e4: 1887883a add r3,r3,r2 + d6e8: e0bffa17 ldw r2,-24(fp) + d6ec: 1009883a mov r4,r2 + d6f0: 180b883a mov r5,r3 + d6f4: e1bff817 ldw r6,-32(fp) + d6f8: 0007f1c0 call 7f1c + ptr += n; + d6fc: e0fff817 ldw r3,-32(fp) + d700: e0bffa17 ldw r2,-24(fp) + d704: 10c5883a add r2,r2,r3 + d708: e0bffa15 stw r2,-24(fp) + space -= n; + d70c: e0fffd17 ldw r3,-12(fp) + d710: e0bff817 ldw r2,-32(fp) + d714: 1885c83a sub r2,r3,r2 + d718: e0bffd15 stw r2,-12(fp) + + sp->rx_out = (out + n) % ALTERA_AVALON_JTAG_UART_BUF_LEN; + d71c: e0fff617 ldw r3,-40(fp) + d720: e0bff817 ldw r2,-32(fp) + d724: 1885883a add r2,r3,r2 + d728: 10c1ffcc andi r3,r2,2047 + d72c: e0bffb17 ldw r2,-20(fp) + d730: 10c00b15 stw r3,44(r2) + } + while (space > 0); + d734: e0bffd17 ldw r2,-12(fp) + d738: 10800048 cmpgei r2,r2,1 + d73c: 103fcc1e bne r2,zero,d670 + + /* If we read any data then return it */ + if (ptr != buffer) + d740: e0fffa17 ldw r3,-24(fp) + d744: e0bffc17 ldw r2,-16(fp) + d748: 1880141e bne r3,r2,d79c + break; + + /* If in non-blocking mode then return error */ + if (flags & O_NONBLOCK) + d74c: e0bffe17 ldw r2,-8(fp) + d750: 1090000c andi r2,r2,16384 + d754: 1004c03a cmpne r2,r2,zero + d758: 1000101e bne r2,zero,d79c + while (in == sp->rx_in && sp->host_inactive < sp->timeout) + ; + } +#else + /* No OS: Always spin */ + while (in == sp->rx_in && sp->host_inactive < sp->timeout) + d75c: e0bffb17 ldw r2,-20(fp) + d760: 10c00a17 ldw r3,40(r2) + d764: e0bff717 ldw r2,-36(fp) + d768: 1880051e bne r3,r2,d780 + d76c: e0bffb17 ldw r2,-20(fp) + d770: 10c00917 ldw r3,36(r2) + d774: e0bffb17 ldw r2,-20(fp) + d778: 10800117 ldw r2,4(r2) + d77c: 18bff736 bltu r3,r2,d75c + ; +#endif /* __ucosii__ */ + + if (in == sp->rx_in) + d780: e0bffb17 ldw r2,-20(fp) + d784: 10c00a17 ldw r3,40(r2) + d788: e0bff717 ldw r2,-36(fp) + d78c: 18800326 beq r3,r2,d79c + * When running in a multi threaded environment, obtain the "read_lock" + * semaphore. This ensures that reading from the device is thread-safe. + */ + ALT_SEM_PEND (sp->read_lock, 0); + + while (space > 0) + d790: e0bffd17 ldw r2,-12(fp) + d794: 10800048 cmpgei r2,r2,1 + d798: 103fb51e bne r2,zero,d670 + * semaphore so that other threads can access the buffer. + */ + + ALT_SEM_POST (sp->read_lock); + + if (ptr != buffer) + d79c: e0fffa17 ldw r3,-24(fp) + d7a0: e0bffc17 ldw r2,-16(fp) + d7a4: 18801926 beq r3,r2,d80c +static ALT_INLINE alt_irq_context ALT_ALWAYS_INLINE + alt_irq_disable_all (void) +{ + alt_irq_context context; + + NIOS2_READ_STATUS (context); + d7a8: 0005303a rdctl r2,status + d7ac: e0bff515 stw r2,-44(fp) + + NIOS2_WRITE_STATUS (context & ~NIOS2_STATUS_PIE_MSK); + d7b0: e0fff517 ldw r3,-44(fp) + d7b4: 00bfff84 movi r2,-2 + d7b8: 1884703a and r2,r3,r2 + d7bc: 1001703a wrctl status,r2 + + return context; + d7c0: e0bff517 ldw r2,-44(fp) + { + /* If we read any data then there is space in the buffer so enable interrupts */ + context = alt_irq_disable_all(); + d7c4: e0bff915 stw r2,-28(fp) + sp->irq_enable |= ALTERA_AVALON_JTAG_UART_CONTROL_RE_MSK; + d7c8: e0bffb17 ldw r2,-20(fp) + d7cc: 10800817 ldw r2,32(r2) + d7d0: 10c00054 ori r3,r2,1 + d7d4: e0bffb17 ldw r2,-20(fp) + d7d8: 10c00815 stw r3,32(r2) + IOWR_ALTERA_AVALON_JTAG_UART_CONTROL(sp->base, sp->irq_enable); + d7dc: e0bffb17 ldw r2,-20(fp) + d7e0: 10800017 ldw r2,0(r2) + d7e4: 11000104 addi r4,r2,4 + d7e8: e0bffb17 ldw r2,-20(fp) + d7ec: 10800817 ldw r2,32(r2) + d7f0: 1007883a mov r3,r2 + d7f4: 2005883a mov r2,r4 + d7f8: 10c00035 stwio r3,0(r2) + d7fc: e0bff917 ldw r2,-28(fp) + d800: e0bff415 stw r2,-48(fp) + status &= ~NIOS2_STATUS_PIE_MSK; + status |= (context & NIOS2_STATUS_PIE_MSK); + + NIOS2_WRITE_STATUS (status); +#else + NIOS2_WRITE_STATUS (context); + d804: e0bff417 ldw r2,-48(fp) + d808: 1001703a wrctl status,r2 + alt_irq_enable_all(context); + } + + if (ptr != buffer) + d80c: e0fffa17 ldw r3,-24(fp) + d810: e0bffc17 ldw r2,-16(fp) + d814: 18800526 beq r3,r2,d82c + return ptr - buffer; + d818: e0fffa17 ldw r3,-24(fp) + d81c: e0bffc17 ldw r2,-16(fp) + d820: 1887c83a sub r3,r3,r2 + d824: e0ffff15 stw r3,-4(fp) + d828: 00000906 br d850 + else if (flags & O_NONBLOCK) + d82c: e0bffe17 ldw r2,-8(fp) + d830: 1090000c andi r2,r2,16384 + d834: 1005003a cmpeq r2,r2,zero + d838: 1000031e bne r2,zero,d848 + return -EWOULDBLOCK; + d83c: 00bffd44 movi r2,-11 + d840: e0bfff15 stw r2,-4(fp) + d844: 00000206 br d850 + else + return -EIO; + d848: 00bffec4 movi r2,-5 + d84c: e0bfff15 stw r2,-4(fp) + d850: e0bfff17 ldw r2,-4(fp) +} + d854: e037883a mov sp,fp + d858: dfc00117 ldw ra,4(sp) + d85c: df000017 ldw fp,0(sp) + d860: dec00204 addi sp,sp,8 + d864: f800283a ret + +0000d868 : +/* ----------------------------------------------------------- */ + +int +altera_avalon_jtag_uart_write(altera_avalon_jtag_uart_state* sp, + const char * ptr, int count, int flags) +{ + d868: defff204 addi sp,sp,-56 + d86c: dfc00d15 stw ra,52(sp) + d870: df000c15 stw fp,48(sp) + d874: df000c04 addi fp,sp,48 + d878: e13ffb15 stw r4,-20(fp) + d87c: e17ffc15 stw r5,-16(fp) + d880: e1bffd15 stw r6,-12(fp) + d884: e1fffe15 stw r7,-8(fp) + /* Remove warning at optimisation level 03 by seting out to 0 */ + unsigned int in, out=0; + d888: e03ff915 stw zero,-28(fp) + unsigned int n; + alt_irq_context context; + + const char * start = ptr; + d88c: e0bffc17 ldw r2,-16(fp) + d890: e0bff615 stw r2,-40(fp) + ALT_SEM_PEND (sp->write_lock, 0); + + do + { + /* Copy as much as we can into the transmit buffer */ + while (count > 0) + d894: 00003a06 br d980 + { + /* We need a stable value of the out pointer to calculate the space available */ + in = sp->tx_in; + d898: e0bffb17 ldw r2,-20(fp) + d89c: 10800c17 ldw r2,48(r2) + d8a0: e0bffa15 stw r2,-24(fp) + out = sp->tx_out; + d8a4: e0bffb17 ldw r2,-20(fp) + d8a8: 10800d17 ldw r2,52(r2) + d8ac: e0bff915 stw r2,-28(fp) + + if (in < out) + d8b0: e0fffa17 ldw r3,-24(fp) + d8b4: e0bff917 ldw r2,-28(fp) + d8b8: 1880062e bgeu r3,r2,d8d4 + n = out - 1 - in; + d8bc: e0fff917 ldw r3,-28(fp) + d8c0: e0bffa17 ldw r2,-24(fp) + d8c4: 1885c83a sub r2,r3,r2 + d8c8: 10bfffc4 addi r2,r2,-1 + d8cc: e0bff815 stw r2,-32(fp) + d8d0: 00000c06 br d904 + else if (out > 0) + d8d4: e0bff917 ldw r2,-28(fp) + d8d8: 1005003a cmpeq r2,r2,zero + d8dc: 1000051e bne r2,zero,d8f4 + n = ALTERA_AVALON_JTAG_UART_BUF_LEN - in; + d8e0: 00820004 movi r2,2048 + d8e4: e0fffa17 ldw r3,-24(fp) + d8e8: 10c5c83a sub r2,r2,r3 + d8ec: e0bff815 stw r2,-32(fp) + d8f0: 00000406 br d904 + else + n = ALTERA_AVALON_JTAG_UART_BUF_LEN - 1 - in; + d8f4: 0081ffc4 movi r2,2047 + d8f8: e0fffa17 ldw r3,-24(fp) + d8fc: 10c5c83a sub r2,r2,r3 + d900: e0bff815 stw r2,-32(fp) + + if (n == 0) + d904: e0bff817 ldw r2,-32(fp) + d908: 1005003a cmpeq r2,r2,zero + d90c: 10001f1e bne r2,zero,d98c + break; + + if (n > count) + d910: e0fffd17 ldw r3,-12(fp) + d914: e0bff817 ldw r2,-32(fp) + d918: 1880022e bgeu r3,r2,d924 + n = count; + d91c: e0bffd17 ldw r2,-12(fp) + d920: e0bff815 stw r2,-32(fp) + + memcpy(sp->tx_buf + in, ptr, n); + d924: e0bffb17 ldw r2,-20(fp) + d928: 10c20e04 addi r3,r2,2104 + d92c: e0bffa17 ldw r2,-24(fp) + d930: 1885883a add r2,r3,r2 + d934: e0fffc17 ldw r3,-16(fp) + d938: 1009883a mov r4,r2 + d93c: 180b883a mov r5,r3 + d940: e1bff817 ldw r6,-32(fp) + d944: 0007f1c0 call 7f1c + ptr += n; + d948: e0fff817 ldw r3,-32(fp) + d94c: e0bffc17 ldw r2,-16(fp) + d950: 10c5883a add r2,r2,r3 + d954: e0bffc15 stw r2,-16(fp) + count -= n; + d958: e0fffd17 ldw r3,-12(fp) + d95c: e0bff817 ldw r2,-32(fp) + d960: 1885c83a sub r2,r3,r2 + d964: e0bffd15 stw r2,-12(fp) + + sp->tx_in = (in + n) % ALTERA_AVALON_JTAG_UART_BUF_LEN; + d968: e0fffa17 ldw r3,-24(fp) + d96c: e0bff817 ldw r2,-32(fp) + d970: 1885883a add r2,r3,r2 + d974: 10c1ffcc andi r3,r2,2047 + d978: e0bffb17 ldw r2,-20(fp) + d97c: 10c00c15 stw r3,48(r2) + ALT_SEM_PEND (sp->write_lock, 0); + + do + { + /* Copy as much as we can into the transmit buffer */ + while (count > 0) + d980: e0bffd17 ldw r2,-12(fp) + d984: 10800048 cmpgei r2,r2,1 + d988: 103fc31e bne r2,zero,d898 +static ALT_INLINE alt_irq_context ALT_ALWAYS_INLINE + alt_irq_disable_all (void) +{ + alt_irq_context context; + + NIOS2_READ_STATUS (context); + d98c: 0005303a rdctl r2,status + d990: e0bff515 stw r2,-44(fp) + + NIOS2_WRITE_STATUS (context & ~NIOS2_STATUS_PIE_MSK); + d994: e0fff517 ldw r3,-44(fp) + d998: 00bfff84 movi r2,-2 + d99c: 1884703a and r2,r3,r2 + d9a0: 1001703a wrctl status,r2 + + return context; + d9a4: e0bff517 ldw r2,-44(fp) + * to enable interrupts if there is no space left in the FIFO + * + * For now kick the interrupt routine every time to make it transmit + * the data + */ + context = alt_irq_disable_all(); + d9a8: e0bff715 stw r2,-36(fp) + sp->irq_enable |= ALTERA_AVALON_JTAG_UART_CONTROL_WE_MSK; + d9ac: e0bffb17 ldw r2,-20(fp) + d9b0: 10800817 ldw r2,32(r2) + d9b4: 10c00094 ori r3,r2,2 + d9b8: e0bffb17 ldw r2,-20(fp) + d9bc: 10c00815 stw r3,32(r2) + IOWR_ALTERA_AVALON_JTAG_UART_CONTROL(sp->base, sp->irq_enable); + d9c0: e0bffb17 ldw r2,-20(fp) + d9c4: 10800017 ldw r2,0(r2) + d9c8: 11000104 addi r4,r2,4 + d9cc: e0bffb17 ldw r2,-20(fp) + d9d0: 10800817 ldw r2,32(r2) + d9d4: 1007883a mov r3,r2 + d9d8: 2005883a mov r2,r4 + d9dc: 10c00035 stwio r3,0(r2) + d9e0: e0bff717 ldw r2,-36(fp) + d9e4: e0bff415 stw r2,-48(fp) + status &= ~NIOS2_STATUS_PIE_MSK; + status |= (context & NIOS2_STATUS_PIE_MSK); + + NIOS2_WRITE_STATUS (status); +#else + NIOS2_WRITE_STATUS (context); + d9e8: e0bff417 ldw r2,-48(fp) + d9ec: 1001703a wrctl status,r2 + /* + * If there is any data left then either return now or block until + * some has been sent + */ + /* consider: test whether there is anything there while doing this and delay for at most 2s. */ + if (count > 0) + d9f0: e0bffd17 ldw r2,-12(fp) + d9f4: 10800050 cmplti r2,r2,1 + d9f8: 1000111e bne r2,zero,da40 + { + if (flags & O_NONBLOCK) + d9fc: e0bffe17 ldw r2,-8(fp) + da00: 1090000c andi r2,r2,16384 + da04: 1004c03a cmpne r2,r2,zero + da08: 1000101e bne r2,zero,da4c + /* + * No OS present: Always wait for data to be removed from buffer. Once + * the interrupt routine has removed some data then we will be able to + * insert some more. + */ + while (out == sp->tx_out && sp->host_inactive < sp->timeout) + da0c: e0bffb17 ldw r2,-20(fp) + da10: 10c00d17 ldw r3,52(r2) + da14: e0bff917 ldw r2,-28(fp) + da18: 1880051e bne r3,r2,da30 + da1c: e0bffb17 ldw r2,-20(fp) + da20: 10c00917 ldw r3,36(r2) + da24: e0bffb17 ldw r2,-20(fp) + da28: 10800117 ldw r2,4(r2) + da2c: 18bff736 bltu r3,r2,da0c + ; +#endif /* __ucosii__ */ + + if (out == sp->tx_out) + da30: e0bffb17 ldw r2,-20(fp) + da34: 10c00d17 ldw r3,52(r2) + da38: e0bff917 ldw r2,-28(fp) + da3c: 18800326 beq r3,r2,da4c + break; + } + } + while (count > 0); + da40: e0bffd17 ldw r2,-12(fp) + da44: 10800048 cmpgei r2,r2,1 + da48: 103fcd1e bne r2,zero,d980 + * Now that access to the circular buffer is complete, release the write + * semaphore so that other threads can access the buffer. + */ + ALT_SEM_POST (sp->write_lock); + + if (ptr != start) + da4c: e0fffc17 ldw r3,-16(fp) + da50: e0bff617 ldw r2,-40(fp) + da54: 18800526 beq r3,r2,da6c + return ptr - start; + da58: e0fffc17 ldw r3,-16(fp) + da5c: e0bff617 ldw r2,-40(fp) + da60: 1887c83a sub r3,r3,r2 + da64: e0ffff15 stw r3,-4(fp) + da68: 00000906 br da90 + else if (flags & O_NONBLOCK) + da6c: e0bffe17 ldw r2,-8(fp) + da70: 1090000c andi r2,r2,16384 + da74: 1005003a cmpeq r2,r2,zero + da78: 1000031e bne r2,zero,da88 + return -EWOULDBLOCK; + da7c: 00bffd44 movi r2,-11 + da80: e0bfff15 stw r2,-4(fp) + da84: 00000206 br da90 + sp->tx_out = sp->tx_in = 0; + return ptr - start + count; + } +#endif + else + return -EIO; /* Host not connected */ + da88: 00bffec4 movi r2,-5 + da8c: e0bfff15 stw r2,-4(fp) + da90: e0bfff17 ldw r2,-4(fp) +} + da94: e037883a mov sp,fp + da98: dfc00117 ldw ra,4(sp) + da9c: df000017 ldw fp,0(sp) + daa0: dec00204 addi sp,sp,8 + daa4: f800283a ret + +0000daa8 : + +/* --------------------------------------------------------------------- */ + +static void lcd_write_command(altera_avalon_lcd_16207_state* sp, + unsigned char command) +{ + daa8: defffa04 addi sp,sp,-24 + daac: dfc00515 stw ra,20(sp) + dab0: df000415 stw fp,16(sp) + dab4: df000404 addi fp,sp,16 + dab8: e13ffe15 stw r4,-8(fp) + dabc: e17fff05 stb r5,-4(fp) + unsigned int base = sp->base; + dac0: e0bffe17 ldw r2,-8(fp) + dac4: 10800017 ldw r2,0(r2) + dac8: e0bffd15 stw r2,-12(fp) + /* We impose a timeout on the driver in case the LCD panel isn't connected. + * The first time we call this function the timeout is approx 25ms + * (assuming 5 cycles per loop and a 200MHz clock). Obviously systems + * with slower clocks, or debug builds, or slower memory will take longer. + */ + int i = 1000000; + dacc: 008003f4 movhi r2,15 + dad0: 10909004 addi r2,r2,16960 + dad4: e0bffc15 stw r2,-16(fp) + + /* Don't bother if the LCD panel didn't work before */ + if (sp->broken) + dad8: e0bffe17 ldw r2,-8(fp) + dadc: 10800803 ldbu r2,32(r2) + dae0: 10803fcc andi r2,r2,255 + dae4: 1080201c xori r2,r2,128 + dae8: 10bfe004 addi r2,r2,-128 + daec: 1004c03a cmpne r2,r2,zero + daf0: 1000161e bne r2,zero,db4c + return; + + /* Wait until LCD isn't busy. */ + while (IORD_ALTERA_AVALON_LCD_16207_STATUS(base) & ALTERA_AVALON_LCD_16207_STATUS_BUSY_MSK) + daf4: 00000a06 br db20 + if (--i == 0) + daf8: e0bffc17 ldw r2,-16(fp) + dafc: 10bfffc4 addi r2,r2,-1 + db00: e0bffc15 stw r2,-16(fp) + db04: e0bffc17 ldw r2,-16(fp) + db08: 1004c03a cmpne r2,r2,zero + db0c: 1000041e bne r2,zero,db20 + { + sp->broken = 1; + db10: e0fffe17 ldw r3,-8(fp) + db14: 00800044 movi r2,1 + db18: 18800805 stb r2,32(r3) + return; + db1c: 00000b06 br db4c + /* Don't bother if the LCD panel didn't work before */ + if (sp->broken) + return; + + /* Wait until LCD isn't busy. */ + while (IORD_ALTERA_AVALON_LCD_16207_STATUS(base) & ALTERA_AVALON_LCD_16207_STATUS_BUSY_MSK) + db20: e0bffd17 ldw r2,-12(fp) + db24: 10800104 addi r2,r2,4 + db28: 10800037 ldwio r2,0(r2) + db2c: 1080200c andi r2,r2,128 + db30: 1004c03a cmpne r2,r2,zero + db34: 103ff01e bne r2,zero,daf8 + } + + /* Despite what it says in the datasheet, the LCD isn't ready to accept + * a write immediately after it returns BUSY=0. Wait for 100us more. + */ + usleep(100); + db38: 01001904 movi r4,100 + db3c: 000cd800 call cd80 + + IOWR_ALTERA_AVALON_LCD_16207_COMMAND(base, command); + db40: e0bffd17 ldw r2,-12(fp) + db44: e0ffff03 ldbu r3,-4(fp) + db48: 10c00035 stwio r3,0(r2) +} + db4c: e037883a mov sp,fp + db50: dfc00117 ldw ra,4(sp) + db54: df000017 ldw fp,0(sp) + db58: dec00204 addi sp,sp,8 + db5c: f800283a ret + +0000db60 : + +/* --------------------------------------------------------------------- */ + +static void lcd_write_data(altera_avalon_lcd_16207_state* sp, + unsigned char data) +{ + db60: defffa04 addi sp,sp,-24 + db64: dfc00515 stw ra,20(sp) + db68: df000415 stw fp,16(sp) + db6c: df000404 addi fp,sp,16 + db70: e13ffe15 stw r4,-8(fp) + db74: e17fff05 stb r5,-4(fp) + unsigned int base = sp->base; + db78: e0bffe17 ldw r2,-8(fp) + db7c: 10800017 ldw r2,0(r2) + db80: e0bffd15 stw r2,-12(fp) + /* We impose a timeout on the driver in case the LCD panel isn't connected. + * The first time we call this function the timeout is approx 25ms + * (assuming 5 cycles per loop and a 200MHz clock). Obviously systems + * with slower clocks, or debug builds, or slower memory will take longer. + */ + int i = 1000000; + db84: 008003f4 movhi r2,15 + db88: 10909004 addi r2,r2,16960 + db8c: e0bffc15 stw r2,-16(fp) + + /* Don't bother if the LCD panel didn't work before */ + if (sp->broken) + db90: e0bffe17 ldw r2,-8(fp) + db94: 10800803 ldbu r2,32(r2) + db98: 10803fcc andi r2,r2,255 + db9c: 1080201c xori r2,r2,128 + dba0: 10bfe004 addi r2,r2,-128 + dba4: 1004c03a cmpne r2,r2,zero + dba8: 10001d1e bne r2,zero,dc20 + return; + + /* Wait until LCD isn't busy. */ + while (IORD_ALTERA_AVALON_LCD_16207_STATUS(base) & ALTERA_AVALON_LCD_16207_STATUS_BUSY_MSK) + dbac: 00000a06 br dbd8 + if (--i == 0) + dbb0: e0bffc17 ldw r2,-16(fp) + dbb4: 10bfffc4 addi r2,r2,-1 + dbb8: e0bffc15 stw r2,-16(fp) + dbbc: e0bffc17 ldw r2,-16(fp) + dbc0: 1004c03a cmpne r2,r2,zero + dbc4: 1000041e bne r2,zero,dbd8 + { + sp->broken = 1; + dbc8: e0fffe17 ldw r3,-8(fp) + dbcc: 00800044 movi r2,1 + dbd0: 18800805 stb r2,32(r3) + return; + dbd4: 00001206 br dc20 + /* Don't bother if the LCD panel didn't work before */ + if (sp->broken) + return; + + /* Wait until LCD isn't busy. */ + while (IORD_ALTERA_AVALON_LCD_16207_STATUS(base) & ALTERA_AVALON_LCD_16207_STATUS_BUSY_MSK) + dbd8: e0bffd17 ldw r2,-12(fp) + dbdc: 10800104 addi r2,r2,4 + dbe0: 10800037 ldwio r2,0(r2) + dbe4: 1080200c andi r2,r2,128 + dbe8: 1004c03a cmpne r2,r2,zero + dbec: 103ff01e bne r2,zero,dbb0 + } + + /* Despite what it says in the datasheet, the LCD isn't ready to accept + * a write immediately after it returns BUSY=0. Wait for 100us more. + */ + usleep(100); + dbf0: 01001904 movi r4,100 + dbf4: 000cd800 call cd80 + + IOWR_ALTERA_AVALON_LCD_16207_DATA(base, data); + dbf8: e0bffd17 ldw r2,-12(fp) + dbfc: 10800204 addi r2,r2,8 + dc00: e0ffff03 ldbu r3,-4(fp) + dc04: 10c00035 stwio r3,0(r2) + + sp->address++; + dc08: e0bffe17 ldw r2,-8(fp) + dc0c: 108008c3 ldbu r2,35(r2) + dc10: 10800044 addi r2,r2,1 + dc14: 1007883a mov r3,r2 + dc18: e0bffe17 ldw r2,-8(fp) + dc1c: 10c008c5 stb r3,35(r2) +} + dc20: e037883a mov sp,fp + dc24: dfc00117 ldw ra,4(sp) + dc28: df000017 ldw fp,0(sp) + dc2c: dec00204 addi sp,sp,8 + dc30: f800283a ret + +0000dc34 : + +/* --------------------------------------------------------------------- */ + +static void lcd_clear_screen(altera_avalon_lcd_16207_state* sp) +{ + dc34: defffb04 addi sp,sp,-20 + dc38: dfc00415 stw ra,16(sp) + dc3c: df000315 stw fp,12(sp) + dc40: dc000215 stw r16,8(sp) + dc44: df000204 addi fp,sp,8 + dc48: e13fff15 stw r4,-4(fp) + int y; + + lcd_write_command(sp, LCD_CMD_CLEAR); + dc4c: e13fff17 ldw r4,-4(fp) + dc50: 01400044 movi r5,1 + dc54: 000daa80 call daa8 + + sp->x = 0; + dc58: e0bfff17 ldw r2,-4(fp) + dc5c: 10000845 stb zero,33(r2) + sp->y = 0; + dc60: e0bfff17 ldw r2,-4(fp) + dc64: 10000885 stb zero,34(r2) + sp->address = 0; + dc68: e0bfff17 ldw r2,-4(fp) + dc6c: 100008c5 stb zero,35(r2) + + for (y = 0 ; y < ALT_LCD_HEIGHT ; y++) + dc70: e03ffe15 stw zero,-8(fp) + dc74: 00001c06 br dce8 + { + memset(sp->line[y].data, ' ', sizeof(sp->line[0].data)); + dc78: e13ffe17 ldw r4,-8(fp) + dc7c: 014018c4 movi r5,99 + dc80: 0002b2c0 call 2b2c <__mulsi3> + dc84: 10c01004 addi r3,r2,64 + dc88: e0bfff17 ldw r2,-4(fp) + dc8c: 1889883a add r4,r3,r2 + dc90: 01400804 movi r5,32 + dc94: 01801444 movi r6,81 + dc98: 000809c0 call 809c + memset(sp->line[y].visible, ' ', sizeof(sp->line[0].visible)); + dc9c: e13ffe17 ldw r4,-8(fp) + dca0: 014018c4 movi r5,99 + dca4: 0002b2c0 call 2b2c <__mulsi3> + dca8: 10c00c04 addi r3,r2,48 + dcac: e0bfff17 ldw r2,-4(fp) + dcb0: 1889883a add r4,r3,r2 + dcb4: 01400804 movi r5,32 + dcb8: 01800404 movi r6,16 + dcbc: 000809c0 call 809c + sp->line[y].width = 0; + dcc0: e13ffe17 ldw r4,-8(fp) + dcc4: e43fff17 ldw r16,-4(fp) + dcc8: 014018c4 movi r5,99 + dccc: 0002b2c0 call 2b2c <__mulsi3> + dcd0: 1405883a add r2,r2,r16 + dcd4: 10802404 addi r2,r2,144 + dcd8: 10000045 stb zero,1(r2) + + sp->x = 0; + sp->y = 0; + sp->address = 0; + + for (y = 0 ; y < ALT_LCD_HEIGHT ; y++) + dcdc: e0bffe17 ldw r2,-8(fp) + dce0: 10800044 addi r2,r2,1 + dce4: e0bffe15 stw r2,-8(fp) + dce8: e0bffe17 ldw r2,-8(fp) + dcec: 10800090 cmplti r2,r2,2 + dcf0: 103fe11e bne r2,zero,dc78 + { + memset(sp->line[y].data, ' ', sizeof(sp->line[0].data)); + memset(sp->line[y].visible, ' ', sizeof(sp->line[0].visible)); + sp->line[y].width = 0; + } +} + dcf4: e037883a mov sp,fp + dcf8: dfc00217 ldw ra,8(sp) + dcfc: df000117 ldw fp,4(sp) + dd00: dc000017 ldw r16,0(sp) + dd04: dec00304 addi sp,sp,12 + dd08: f800283a ret + +0000dd0c : + +/* --------------------------------------------------------------------- */ + +static void lcd_repaint_screen(altera_avalon_lcd_16207_state* sp) +{ + dd0c: defff404 addi sp,sp,-48 + dd10: dfc00b15 stw ra,44(sp) + dd14: df000a15 stw fp,40(sp) + dd18: dc800915 stw r18,36(sp) + dd1c: dc400815 stw r17,32(sp) + dd20: dc000715 stw r16,28(sp) + dd24: df000704 addi fp,sp,28 + dd28: e13fff15 stw r4,-4(fp) + /* scrollpos controls how much the lines have scrolled round. The speed + * each line scrolls at is controlled by its speed variable - while + * scrolline lines will wrap at the position set by width + */ + + int scrollpos = sp->scrollpos; + dd2c: e0bfff17 ldw r2,-4(fp) + dd30: 10800943 ldbu r2,37(r2) + dd34: 10803fcc andi r2,r2,255 + dd38: 1080201c xori r2,r2,128 + dd3c: 10bfe004 addi r2,r2,-128 + dd40: e0bffc15 stw r2,-16(fp) + + for (y = 0 ; y < ALT_LCD_HEIGHT ; y++) + dd44: e03ffe15 stw zero,-8(fp) + dd48: 00006a06 br def4 + { + int width = sp->line[y].width; + dd4c: e13ffe17 ldw r4,-8(fp) + dd50: e43fff17 ldw r16,-4(fp) + dd54: 014018c4 movi r5,99 + dd58: 0002b2c0 call 2b2c <__mulsi3> + dd5c: 1405883a add r2,r2,r16 + dd60: 10802404 addi r2,r2,144 + dd64: 10800043 ldbu r2,1(r2) + dd68: 10803fcc andi r2,r2,255 + dd6c: 1080201c xori r2,r2,128 + dd70: 10bfe004 addi r2,r2,-128 + dd74: e0bffb15 stw r2,-20(fp) + int offset = (scrollpos * sp->line[y].speed) >> 8; + dd78: e13ffe17 ldw r4,-8(fp) + dd7c: e43fff17 ldw r16,-4(fp) + dd80: 014018c4 movi r5,99 + dd84: 0002b2c0 call 2b2c <__mulsi3> + dd88: 1405883a add r2,r2,r16 + dd8c: 10802404 addi r2,r2,144 + dd90: 10800083 ldbu r2,2(r2) + dd94: 11003fcc andi r4,r2,255 + dd98: e17ffc17 ldw r5,-16(fp) + dd9c: 0002b2c0 call 2b2c <__mulsi3> + dda0: 1005d23a srai r2,r2,8 + dda4: e0bffa15 stw r2,-24(fp) + if (offset >= width) + dda8: e0fffa17 ldw r3,-24(fp) + ddac: e0bffb17 ldw r2,-20(fp) + ddb0: 18800116 blt r3,r2,ddb8 + offset = 0; + ddb4: e03ffa15 stw zero,-24(fp) + + for (x = 0 ; x < ALT_LCD_WIDTH ; x++) + ddb8: e03ffd15 stw zero,-12(fp) + ddbc: 00004706 br dedc + { + char c = sp->line[y].data[(x + offset) % width]; + ddc0: e47ffe17 ldw r17,-8(fp) + ddc4: e0fffd17 ldw r3,-12(fp) + ddc8: e0bffa17 ldw r2,-24(fp) + ddcc: 1889883a add r4,r3,r2 + ddd0: e17ffb17 ldw r5,-20(fp) + ddd4: 0002abc0 call 2abc <__modsi3> + ddd8: 1025883a mov r18,r2 + dddc: e43fff17 ldw r16,-4(fp) + dde0: 8809883a mov r4,r17 + dde4: 014018c4 movi r5,99 + dde8: 0002b2c0 call 2b2c <__mulsi3> + ddec: 1405883a add r2,r2,r16 + ddf0: 1485883a add r2,r2,r18 + ddf4: 10801004 addi r2,r2,64 + ddf8: 10800003 ldbu r2,0(r2) + ddfc: e0bff945 stb r2,-27(fp) + + /* Writing data takes 40us, so don't do it unless required */ + if (sp->line[y].visible[x] != c) + de00: e13ffe17 ldw r4,-8(fp) + de04: e47ffd17 ldw r17,-12(fp) + de08: e43fff17 ldw r16,-4(fp) + de0c: 014018c4 movi r5,99 + de10: 0002b2c0 call 2b2c <__mulsi3> + de14: 1405883a add r2,r2,r16 + de18: 1445883a add r2,r2,r17 + de1c: 10800c04 addi r2,r2,48 + de20: 10800003 ldbu r2,0(r2) + de24: 10c03fcc andi r3,r2,255 + de28: 18c0201c xori r3,r3,128 + de2c: 18ffe004 addi r3,r3,-128 + de30: e0bff947 ldb r2,-27(fp) + de34: 18802626 beq r3,r2,ded0 + { + unsigned char address = x + colstart[y]; + de38: e0fffe17 ldw r3,-8(fp) + de3c: d0a00f04 addi r2,gp,-32708 + de40: 1885883a add r2,r3,r2 + de44: 10800003 ldbu r2,0(r2) + de48: 1007883a mov r3,r2 + de4c: e0bffd17 ldw r2,-12(fp) + de50: 1885883a add r2,r3,r2 + de54: e0bff905 stb r2,-28(fp) + + if (address != sp->address) + de58: e0fff903 ldbu r3,-28(fp) + de5c: e0bfff17 ldw r2,-4(fp) + de60: 108008c3 ldbu r2,35(r2) + de64: 10803fcc andi r2,r2,255 + de68: 1080201c xori r2,r2,128 + de6c: 10bfe004 addi r2,r2,-128 + de70: 18800926 beq r3,r2,de98 + { + lcd_write_command(sp, LCD_CMD_WRITE_DATA | address); + de74: e0fff903 ldbu r3,-28(fp) + de78: 00bfe004 movi r2,-128 + de7c: 1884b03a or r2,r3,r2 + de80: 11403fcc andi r5,r2,255 + de84: e13fff17 ldw r4,-4(fp) + de88: 000daa80 call daa8 + sp->address = address; + de8c: e0fff903 ldbu r3,-28(fp) + de90: e0bfff17 ldw r2,-4(fp) + de94: 10c008c5 stb r3,35(r2) + } + + lcd_write_data(sp, c); + de98: e0bff943 ldbu r2,-27(fp) + de9c: 11403fcc andi r5,r2,255 + dea0: e13fff17 ldw r4,-4(fp) + dea4: 000db600 call db60 + sp->line[y].visible[x] = c; + dea8: e13ffe17 ldw r4,-8(fp) + deac: e47ffd17 ldw r17,-12(fp) + deb0: e43fff17 ldw r16,-4(fp) + deb4: 014018c4 movi r5,99 + deb8: 0002b2c0 call 2b2c <__mulsi3> + debc: 1405883a add r2,r2,r16 + dec0: 1445883a add r2,r2,r17 + dec4: 10c00c04 addi r3,r2,48 + dec8: e0bff943 ldbu r2,-27(fp) + decc: 18800005 stb r2,0(r3) + int width = sp->line[y].width; + int offset = (scrollpos * sp->line[y].speed) >> 8; + if (offset >= width) + offset = 0; + + for (x = 0 ; x < ALT_LCD_WIDTH ; x++) + ded0: e0bffd17 ldw r2,-12(fp) + ded4: 10800044 addi r2,r2,1 + ded8: e0bffd15 stw r2,-12(fp) + dedc: e0bffd17 ldw r2,-12(fp) + dee0: 10800410 cmplti r2,r2,16 + dee4: 103fb61e bne r2,zero,ddc0 + * scrolline lines will wrap at the position set by width + */ + + int scrollpos = sp->scrollpos; + + for (y = 0 ; y < ALT_LCD_HEIGHT ; y++) + dee8: e0bffe17 ldw r2,-8(fp) + deec: 10800044 addi r2,r2,1 + def0: e0bffe15 stw r2,-8(fp) + def4: e0bffe17 ldw r2,-8(fp) + def8: 10800090 cmplti r2,r2,2 + defc: 103f931e bne r2,zero,dd4c + lcd_write_data(sp, c); + sp->line[y].visible[x] = c; + } + } + } +} + df00: e037883a mov sp,fp + df04: dfc00417 ldw ra,16(sp) + df08: df000317 ldw fp,12(sp) + df0c: dc800217 ldw r18,8(sp) + df10: dc400117 ldw r17,4(sp) + df14: dc000017 ldw r16,0(sp) + df18: dec00504 addi sp,sp,20 + df1c: f800283a ret + +0000df20 : + +/* --------------------------------------------------------------------- */ + +static void lcd_scroll_up(altera_avalon_lcd_16207_state* sp) +{ + df20: defffb04 addi sp,sp,-20 + df24: dfc00415 stw ra,16(sp) + df28: df000315 stw fp,12(sp) + df2c: dc000215 stw r16,8(sp) + df30: df000204 addi fp,sp,8 + df34: e13fff15 stw r4,-4(fp) + int y; + + for (y = 0 ; y < ALT_LCD_HEIGHT ; y++) + df38: e03ffe15 stw zero,-8(fp) + df3c: 00002106 br dfc4 + { + if (y < ALT_LCD_HEIGHT-1) + df40: e0bffe17 ldw r2,-8(fp) + df44: 10800048 cmpgei r2,r2,1 + df48: 1000121e bne r2,zero,df94 + memcpy(sp->line[y].data, sp->line[y+1].data, ALT_LCD_VIRTUAL_WIDTH); + df4c: e13ffe17 ldw r4,-8(fp) + df50: 014018c4 movi r5,99 + df54: 0002b2c0 call 2b2c <__mulsi3> + df58: 10c01004 addi r3,r2,64 + df5c: e0bfff17 ldw r2,-4(fp) + df60: 18a1883a add r16,r3,r2 + df64: e0bffe17 ldw r2,-8(fp) + df68: 11000044 addi r4,r2,1 + df6c: 014018c4 movi r5,99 + df70: 0002b2c0 call 2b2c <__mulsi3> + df74: 10c01004 addi r3,r2,64 + df78: e0bfff17 ldw r2,-4(fp) + df7c: 1885883a add r2,r3,r2 + df80: 8009883a mov r4,r16 + df84: 100b883a mov r5,r2 + df88: 01801404 movi r6,80 + df8c: 0007f1c0 call 7f1c + df90: 00000906 br dfb8 + else + memset(sp->line[y].data, ' ', ALT_LCD_VIRTUAL_WIDTH); + df94: e13ffe17 ldw r4,-8(fp) + df98: 014018c4 movi r5,99 + df9c: 0002b2c0 call 2b2c <__mulsi3> + dfa0: 10c01004 addi r3,r2,64 + dfa4: e0bfff17 ldw r2,-4(fp) + dfa8: 1889883a add r4,r3,r2 + dfac: 01400804 movi r5,32 + dfb0: 01801404 movi r6,80 + dfb4: 000809c0 call 809c + +static void lcd_scroll_up(altera_avalon_lcd_16207_state* sp) +{ + int y; + + for (y = 0 ; y < ALT_LCD_HEIGHT ; y++) + dfb8: e0bffe17 ldw r2,-8(fp) + dfbc: 10800044 addi r2,r2,1 + dfc0: e0bffe15 stw r2,-8(fp) + dfc4: e0bffe17 ldw r2,-8(fp) + dfc8: 10800090 cmplti r2,r2,2 + dfcc: 103fdc1e bne r2,zero,df40 + memcpy(sp->line[y].data, sp->line[y+1].data, ALT_LCD_VIRTUAL_WIDTH); + else + memset(sp->line[y].data, ' ', ALT_LCD_VIRTUAL_WIDTH); + } + + sp->y--; + dfd0: e0bfff17 ldw r2,-4(fp) + dfd4: 10800883 ldbu r2,34(r2) + dfd8: 10bfffc4 addi r2,r2,-1 + dfdc: 1007883a mov r3,r2 + dfe0: e0bfff17 ldw r2,-4(fp) + dfe4: 10c00885 stb r3,34(r2) +} + dfe8: e037883a mov sp,fp + dfec: dfc00217 ldw ra,8(sp) + dff0: df000117 ldw fp,4(sp) + dff4: dc000017 ldw r16,0(sp) + dff8: dec00304 addi sp,sp,12 + dffc: f800283a ret + +0000e000 : + +/* --------------------------------------------------------------------- */ + +static void lcd_handle_escape(altera_avalon_lcd_16207_state* sp, char c) +{ + e000: defff804 addi sp,sp,-32 + e004: dfc00715 stw ra,28(sp) + e008: df000615 stw fp,24(sp) + e00c: df000604 addi fp,sp,24 + e010: e13ffd15 stw r4,-12(fp) + e014: e17ffe05 stb r5,-8(fp) + int parm1 = 0, parm2 = 0; + e018: e03ffc15 stw zero,-16(fp) + e01c: e03ffb15 stw zero,-20(fp) + + if (sp->escape[0] == '[') + e020: e0bffd17 ldw r2,-12(fp) + e024: 10800a03 ldbu r2,40(r2) + e028: 10803fcc andi r2,r2,255 + e02c: 1080201c xori r2,r2,128 + e030: 10bfe004 addi r2,r2,-128 + e034: 108016d8 cmpnei r2,r2,91 + e038: 10004d1e bne r2,zero,e170 + { + char * ptr = sp->escape+1; + e03c: e0bffd17 ldw r2,-12(fp) + e040: 10800a04 addi r2,r2,40 + e044: 10800044 addi r2,r2,1 + e048: e0bffa15 stw r2,-24(fp) + while (isdigit(*ptr)) + e04c: 00000f06 br e08c + parm1 = (parm1 * 10) + (*ptr++ - '0'); + e050: e13ffc17 ldw r4,-16(fp) + e054: 01400284 movi r5,10 + e058: 0002b2c0 call 2b2c <__mulsi3> + e05c: 1007883a mov r3,r2 + e060: e0bffa17 ldw r2,-24(fp) + e064: 10800003 ldbu r2,0(r2) + e068: 10803fcc andi r2,r2,255 + e06c: 1080201c xori r2,r2,128 + e070: 10bfe004 addi r2,r2,-128 + e074: 1885883a add r2,r3,r2 + e078: 10bff404 addi r2,r2,-48 + e07c: e0bffc15 stw r2,-16(fp) + e080: e0bffa17 ldw r2,-24(fp) + e084: 10800044 addi r2,r2,1 + e088: e0bffa15 stw r2,-24(fp) + int parm1 = 0, parm2 = 0; + + if (sp->escape[0] == '[') + { + char * ptr = sp->escape+1; + while (isdigit(*ptr)) + e08c: e0bffa17 ldw r2,-24(fp) + e090: 10800003 ldbu r2,0(r2) + e094: 10803fcc andi r2,r2,255 + e098: 1080201c xori r2,r2,128 + e09c: 10bfe004 addi r2,r2,-128 + e0a0: 1007883a mov r3,r2 + e0a4: 00800074 movhi r2,1 + e0a8: 10883d04 addi r2,r2,8436 + e0ac: 10800017 ldw r2,0(r2) + e0b0: 1885883a add r2,r3,r2 + e0b4: 10800003 ldbu r2,0(r2) + e0b8: 10803fcc andi r2,r2,255 + e0bc: 1080010c andi r2,r2,4 + e0c0: 1004c03a cmpne r2,r2,zero + e0c4: 103fe21e bne r2,zero,e050 + parm1 = (parm1 * 10) + (*ptr++ - '0'); + + if (*ptr == ';') + e0c8: e0bffa17 ldw r2,-24(fp) + e0cc: 10800003 ldbu r2,0(r2) + e0d0: 10803fcc andi r2,r2,255 + e0d4: 1080201c xori r2,r2,128 + e0d8: 10bfe004 addi r2,r2,-128 + e0dc: 10800ed8 cmpnei r2,r2,59 + e0e0: 1000251e bne r2,zero,e178 + { + ptr++; + e0e4: e0bffa17 ldw r2,-24(fp) + e0e8: 10800044 addi r2,r2,1 + e0ec: e0bffa15 stw r2,-24(fp) + while (isdigit(*ptr)) + e0f0: 00000f06 br e130 + parm2 = (parm2 * 10) + (*ptr++ - '0'); + e0f4: e13ffb17 ldw r4,-20(fp) + e0f8: 01400284 movi r5,10 + e0fc: 0002b2c0 call 2b2c <__mulsi3> + e100: 1007883a mov r3,r2 + e104: e0bffa17 ldw r2,-24(fp) + e108: 10800003 ldbu r2,0(r2) + e10c: 10803fcc andi r2,r2,255 + e110: 1080201c xori r2,r2,128 + e114: 10bfe004 addi r2,r2,-128 + e118: 1885883a add r2,r3,r2 + e11c: 10bff404 addi r2,r2,-48 + e120: e0bffb15 stw r2,-20(fp) + e124: e0bffa17 ldw r2,-24(fp) + e128: 10800044 addi r2,r2,1 + e12c: e0bffa15 stw r2,-24(fp) + parm1 = (parm1 * 10) + (*ptr++ - '0'); + + if (*ptr == ';') + { + ptr++; + while (isdigit(*ptr)) + e130: e0bffa17 ldw r2,-24(fp) + e134: 10800003 ldbu r2,0(r2) + e138: 10803fcc andi r2,r2,255 + e13c: 1080201c xori r2,r2,128 + e140: 10bfe004 addi r2,r2,-128 + e144: 1007883a mov r3,r2 + e148: 00800074 movhi r2,1 + e14c: 10883d04 addi r2,r2,8436 + e150: 10800017 ldw r2,0(r2) + e154: 1885883a add r2,r3,r2 + e158: 10800003 ldbu r2,0(r2) + e15c: 10803fcc andi r2,r2,255 + e160: 1080010c andi r2,r2,4 + e164: 1004c03a cmpne r2,r2,zero + e168: 103fe21e bne r2,zero,e0f4 + e16c: 00000206 br e178 + parm2 = (parm2 * 10) + (*ptr++ - '0'); + } + } + else + parm1 = -1; + e170: 00bfffc4 movi r2,-1 + e174: e0bffc15 stw r2,-16(fp) + + switch (c) + e178: e0bffe07 ldb r2,-8(fp) + e17c: e0bfff15 stw r2,-4(fp) + e180: e0ffff17 ldw r3,-4(fp) + e184: 188012a0 cmpeqi r2,r3,74 + e188: 10002f1e bne r2,zero,e248 + e18c: e0ffff17 ldw r3,-4(fp) + e190: 188012c8 cmpgei r2,r3,75 + e194: 1000041e bne r2,zero,e1a8 + e198: e0ffff17 ldw r3,-4(fp) + e19c: 18801220 cmpeqi r2,r3,72 + e1a0: 1000081e bne r2,zero,e1c4 + e1a4: 00004a06 br e2d0 + e1a8: e0ffff17 ldw r3,-4(fp) + e1ac: 188012e0 cmpeqi r2,r3,75 + e1b0: 10002b1e bne r2,zero,e260 + e1b4: e0ffff17 ldw r3,-4(fp) + e1b8: 188019a0 cmpeqi r2,r3,102 + e1bc: 1000011e bne r2,zero,e1c4 + e1c0: 00004306 br e2d0 + { + case 'H': /* ESC '[' ';' 'H' : Move cursor to location */ + case 'f': /* Same as above */ + if (parm2 > 0) + e1c4: e0bffb17 ldw r2,-20(fp) + e1c8: 10800050 cmplti r2,r2,1 + e1cc: 1000051e bne r2,zero,e1e4 + sp->x = parm2 - 1; + e1d0: e0bffb17 ldw r2,-20(fp) + e1d4: 10bfffc4 addi r2,r2,-1 + e1d8: 1007883a mov r3,r2 + e1dc: e0bffd17 ldw r2,-12(fp) + e1e0: 10c00845 stb r3,33(r2) + if (parm1 > 0) + e1e4: e0bffc17 ldw r2,-16(fp) + e1e8: 10800050 cmplti r2,r2,1 + e1ec: 1000381e bne r2,zero,e2d0 + { + sp->y = parm1 - 1; + e1f0: e0bffc17 ldw r2,-16(fp) + e1f4: 10bfffc4 addi r2,r2,-1 + e1f8: 1007883a mov r3,r2 + e1fc: e0bffd17 ldw r2,-12(fp) + e200: 10c00885 stb r3,34(r2) + if (sp->y > ALT_LCD_HEIGHT * 2) + e204: e0bffd17 ldw r2,-12(fp) + e208: 10800883 ldbu r2,34(r2) + e20c: 10803fcc andi r2,r2,255 + e210: 10800170 cmpltui r2,r2,5 + e214: 1000061e bne r2,zero,e230 + sp->y = ALT_LCD_HEIGHT * 2; + e218: e0fffd17 ldw r3,-12(fp) + e21c: 00800104 movi r2,4 + e220: 18800885 stb r2,34(r3) + while (sp->y > ALT_LCD_HEIGHT) + e224: 00000206 br e230 + lcd_scroll_up(sp); + e228: e13ffd17 ldw r4,-12(fp) + e22c: 000df200 call df20 + if (parm1 > 0) + { + sp->y = parm1 - 1; + if (sp->y > ALT_LCD_HEIGHT * 2) + sp->y = ALT_LCD_HEIGHT * 2; + while (sp->y > ALT_LCD_HEIGHT) + e230: e0bffd17 ldw r2,-12(fp) + e234: 10800883 ldbu r2,34(r2) + e238: 10803fcc andi r2,r2,255 + e23c: 108000e8 cmpgeui r2,r2,3 + e240: 103ff91e bne r2,zero,e228 + lcd_scroll_up(sp); + } + break; + e244: 00002206 br e2d0 + /* ESC J is clear to beginning of line [unimplemented] + * ESC [ 0 J is clear to bottom of screen [unimplemented] + * ESC [ 1 J is clear to beginning of screen [unimplemented] + * ESC [ 2 J is clear screen + */ + if (parm1 == 2) + e248: e0bffc17 ldw r2,-16(fp) + e24c: 10800098 cmpnei r2,r2,2 + e250: 10001f1e bne r2,zero,e2d0 + lcd_clear_screen(sp); + e254: e13ffd17 ldw r4,-12(fp) + e258: 000dc340 call dc34 + break; + e25c: 00001c06 br e2d0 + /* ESC K is clear to end of line + * ESC [ 0 K is clear to end of line + * ESC [ 1 K is clear to beginning of line [unimplemented] + * ESC [ 2 K is clear line [unimplemented] + */ + if (parm1 < 1) + e260: e0bffc17 ldw r2,-16(fp) + e264: 10800048 cmpgei r2,r2,1 + e268: 1000191e bne r2,zero,e2d0 + { + if (sp->x < ALT_LCD_VIRTUAL_WIDTH) + e26c: e0bffd17 ldw r2,-12(fp) + e270: 10800843 ldbu r2,33(r2) + e274: 10803fcc andi r2,r2,255 + e278: 10801428 cmpgeui r2,r2,80 + e27c: 1000141e bne r2,zero,e2d0 + memset(sp->line[sp->y].data + sp->x, ' ', ALT_LCD_VIRTUAL_WIDTH - sp->x); + e280: e0bffd17 ldw r2,-12(fp) + e284: 10800883 ldbu r2,34(r2) + e288: 11003fcc andi r4,r2,255 + e28c: 014018c4 movi r5,99 + e290: 0002b2c0 call 2b2c <__mulsi3> + e294: 10c01004 addi r3,r2,64 + e298: e0bffd17 ldw r2,-12(fp) + e29c: 1887883a add r3,r3,r2 + e2a0: e0bffd17 ldw r2,-12(fp) + e2a4: 10800843 ldbu r2,33(r2) + e2a8: 10803fcc andi r2,r2,255 + e2ac: 1889883a add r4,r3,r2 + e2b0: e0bffd17 ldw r2,-12(fp) + e2b4: 10800843 ldbu r2,33(r2) + e2b8: 10c03fcc andi r3,r2,255 + e2bc: 00801404 movi r2,80 + e2c0: 10c5c83a sub r2,r2,r3 + e2c4: 100d883a mov r6,r2 + e2c8: 01400804 movi r5,32 + e2cc: 000809c0 call 809c + } + break; + } +} + e2d0: e037883a mov sp,fp + e2d4: dfc00117 ldw ra,4(sp) + e2d8: df000017 ldw fp,0(sp) + e2dc: dec00204 addi sp,sp,8 + e2e0: f800283a ret + +0000e2e4 : + +/* --------------------------------------------------------------------- */ + +int altera_avalon_lcd_16207_write(altera_avalon_lcd_16207_state* sp, + const char* ptr, int len, int flags) +{ + e2e4: defff004 addi sp,sp,-64 + e2e8: dfc00f15 stw ra,60(sp) + e2ec: df000e15 stw fp,56(sp) + e2f0: dc800d15 stw r18,52(sp) + e2f4: dc400c15 stw r17,48(sp) + e2f8: dc000b15 stw r16,44(sp) + e2fc: df000b04 addi fp,sp,44 + e300: e13ffc15 stw r4,-16(fp) + e304: e17ffd15 stw r5,-12(fp) + e308: e1bffe15 stw r6,-8(fp) + e30c: e1ffff15 stw r7,-4(fp) + const char* end = ptr + len; + e310: e0bffe17 ldw r2,-8(fp) + e314: 1007883a mov r3,r2 + e318: e0bffd17 ldw r2,-12(fp) + e31c: 10c5883a add r2,r2,r3 + e320: e0bffb15 stw r2,-20(fp) + + ALT_SEM_PEND (sp->write_lock, 0); + + /* Tell the routine which is called off the timer interrupt that the + * foreground routines are active so it must not repaint the display. */ + sp->active = 1; + e324: e0fffc17 ldw r3,-16(fp) + e328: 00800044 movi r2,1 + e32c: 188009c5 stb r2,39(r3) + + for ( ; ptr < end ; ptr++) + e330: 0000a306 br e5c0 + { + char c = *ptr; + e334: e0bffd17 ldw r2,-12(fp) + e338: 10800003 ldbu r2,0(r2) + e33c: e0bff805 stb r2,-32(fp) + + if (sp->esccount >= 0) + e340: e0bffc17 ldw r2,-16(fp) + e344: 10800903 ldbu r2,36(r2) + e348: 10803fcc andi r2,r2,255 + e34c: 1080201c xori r2,r2,128 + e350: 10bfe004 addi r2,r2,-128 + e354: 1004803a cmplt r2,r2,zero + e358: 10003b1e bne r2,zero,e448 + { + unsigned int esccount = sp->esccount; + e35c: e0bffc17 ldw r2,-16(fp) + e360: 10800903 ldbu r2,36(r2) + e364: 10803fcc andi r2,r2,255 + e368: 1080201c xori r2,r2,128 + e36c: 10bfe004 addi r2,r2,-128 + e370: e0bff715 stw r2,-36(fp) + + /* Single character escape sequences can end with any character + * Multi character escape sequences start with '[' and contain + * digits and semicolons before terminating + */ + if ((esccount == 0 && c != '[') || + e374: e0bff717 ldw r2,-36(fp) + e378: 1004c03a cmpne r2,r2,zero + e37c: 1000031e bne r2,zero,e38c + e380: e0bff807 ldb r2,-32(fp) + e384: 108016d8 cmpnei r2,r2,91 + e388: 1000111e bne r2,zero,e3d0 + e38c: e0bff717 ldw r2,-36(fp) + e390: 1005003a cmpeq r2,r2,zero + e394: 10001a1e bne r2,zero,e400 + e398: e0bff807 ldb r2,-32(fp) + e39c: 1007883a mov r3,r2 + e3a0: 00800074 movhi r2,1 + e3a4: 10883d04 addi r2,r2,8436 + e3a8: 10800017 ldw r2,0(r2) + e3ac: 1885883a add r2,r3,r2 + e3b0: 10800003 ldbu r2,0(r2) + e3b4: 10803fcc andi r2,r2,255 + e3b8: 1080010c andi r2,r2,4 + e3bc: 1004c03a cmpne r2,r2,zero + e3c0: 10000f1e bne r2,zero,e400 + e3c4: e0bff807 ldb r2,-32(fp) + e3c8: 10800ee0 cmpeqi r2,r2,59 + e3cc: 10000c1e bne r2,zero,e400 + (esccount > 0 && !isdigit(c) && c != ';')) + { + sp->escape[esccount] = 0; + e3d0: e0fff717 ldw r3,-36(fp) + e3d4: e0bffc17 ldw r2,-16(fp) + e3d8: 1885883a add r2,r3,r2 + e3dc: 10800a04 addi r2,r2,40 + e3e0: 10000005 stb zero,0(r2) + + lcd_handle_escape(sp, c); + e3e4: e17ff807 ldb r5,-32(fp) + e3e8: e13ffc17 ldw r4,-16(fp) + e3ec: 000e0000 call e000 + + sp->esccount = -1; + e3f0: e0fffc17 ldw r3,-16(fp) + e3f4: 00bfffc4 movi r2,-1 + e3f8: 18800905 stb r2,36(r3) + + /* Single character escape sequences can end with any character + * Multi character escape sequences start with '[' and contain + * digits and semicolons before terminating + */ + if ((esccount == 0 && c != '[') || + e3fc: 00006d06 br e5b4 + + lcd_handle_escape(sp, c); + + sp->esccount = -1; + } + else if (sp->esccount < sizeof(sp->escape)-1) + e400: e0bffc17 ldw r2,-16(fp) + e404: 10800903 ldbu r2,36(r2) + e408: 10803fcc andi r2,r2,255 + e40c: 108001e8 cmpgeui r2,r2,7 + e410: 1000681e bne r2,zero,e5b4 + { + sp->escape[esccount] = c; + e414: e0fff717 ldw r3,-36(fp) + e418: e0bffc17 ldw r2,-16(fp) + e41c: 1885883a add r2,r3,r2 + e420: 10c00a04 addi r3,r2,40 + e424: e0bff803 ldbu r2,-32(fp) + e428: 18800005 stb r2,0(r3) + sp->esccount++; + e42c: e0bffc17 ldw r2,-16(fp) + e430: 10800903 ldbu r2,36(r2) + e434: 10800044 addi r2,r2,1 + e438: 1007883a mov r3,r2 + e43c: e0bffc17 ldw r2,-16(fp) + e440: 10c00905 stb r3,36(r2) + e444: 00005b06 br e5b4 + } + } + else if (c == 27) /* ESC */ + e448: e0bff807 ldb r2,-32(fp) + e44c: 108006d8 cmpnei r2,r2,27 + e450: 1000031e bne r2,zero,e460 + { + sp->esccount = 0; + e454: e0bffc17 ldw r2,-16(fp) + e458: 10000905 stb zero,36(r2) + e45c: 00005506 br e5b4 + } + else if (c == '\r') + e460: e0bff807 ldb r2,-32(fp) + e464: 10800358 cmpnei r2,r2,13 + e468: 1000031e bne r2,zero,e478 + { + sp->x = 0; + e46c: e0bffc17 ldw r2,-16(fp) + e470: 10000845 stb zero,33(r2) + e474: 00004f06 br e5b4 + } + else if (c == '\n') + e478: e0bff807 ldb r2,-32(fp) + e47c: 10800298 cmpnei r2,r2,10 + e480: 1000101e bne r2,zero,e4c4 + { + sp->x = 0; + e484: e0bffc17 ldw r2,-16(fp) + e488: 10000845 stb zero,33(r2) + sp->y++; + e48c: e0bffc17 ldw r2,-16(fp) + e490: 10800883 ldbu r2,34(r2) + e494: 10800044 addi r2,r2,1 + e498: 1007883a mov r3,r2 + e49c: e0bffc17 ldw r2,-16(fp) + e4a0: 10c00885 stb r3,34(r2) + + /* Let the cursor sit at X=0, Y=HEIGHT without scrolling so the user + * can print two lines of data without losing one. + */ + if (sp->y > ALT_LCD_HEIGHT) + e4a4: e0bffc17 ldw r2,-16(fp) + e4a8: 10800883 ldbu r2,34(r2) + e4ac: 10803fcc andi r2,r2,255 + e4b0: 108000f0 cmpltui r2,r2,3 + e4b4: 10003f1e bne r2,zero,e5b4 + lcd_scroll_up(sp); + e4b8: e13ffc17 ldw r4,-16(fp) + e4bc: 000df200 call df20 + e4c0: 00003c06 br e5b4 + } + else if (c == '\b') + e4c4: e0bff807 ldb r2,-32(fp) + e4c8: 10800218 cmpnei r2,r2,8 + e4cc: 10000c1e bne r2,zero,e500 + { + if (sp->x > 0) + e4d0: e0bffc17 ldw r2,-16(fp) + e4d4: 10800843 ldbu r2,33(r2) + e4d8: 10803fcc andi r2,r2,255 + e4dc: 1005003a cmpeq r2,r2,zero + e4e0: 1000341e bne r2,zero,e5b4 + sp->x--; + e4e4: e0bffc17 ldw r2,-16(fp) + e4e8: 10800843 ldbu r2,33(r2) + e4ec: 10bfffc4 addi r2,r2,-1 + e4f0: 1007883a mov r3,r2 + e4f4: e0bffc17 ldw r2,-16(fp) + e4f8: 10c00845 stb r3,33(r2) + e4fc: 00002d06 br e5b4 + } + else if (isprint(c)) + e500: e0bff807 ldb r2,-32(fp) + e504: 1007883a mov r3,r2 + e508: 00800074 movhi r2,1 + e50c: 10883d04 addi r2,r2,8436 + e510: 10800017 ldw r2,0(r2) + e514: 1885883a add r2,r3,r2 + e518: 10800003 ldbu r2,0(r2) + e51c: 10803fcc andi r2,r2,255 + e520: 1080201c xori r2,r2,128 + e524: 10bfe004 addi r2,r2,-128 + e528: 108025cc andi r2,r2,151 + e52c: 1005003a cmpeq r2,r2,zero + e530: 1000201e bne r2,zero,e5b4 + { + /* If we didn't scroll on the last linefeed then we might need to do + * it now. */ + if (sp->y >= ALT_LCD_HEIGHT) + e534: e0bffc17 ldw r2,-16(fp) + e538: 10800883 ldbu r2,34(r2) + e53c: 10803fcc andi r2,r2,255 + e540: 108000b0 cmpltui r2,r2,2 + e544: 1000021e bne r2,zero,e550 + lcd_scroll_up(sp); + e548: e13ffc17 ldw r4,-16(fp) + e54c: 000df200 call df20 + + if (sp->x < ALT_LCD_VIRTUAL_WIDTH) + e550: e0bffc17 ldw r2,-16(fp) + e554: 10800843 ldbu r2,33(r2) + e558: 10803fcc andi r2,r2,255 + e55c: 10801428 cmpgeui r2,r2,80 + e560: 10000e1e bne r2,zero,e59c + sp->line[sp->y].data[sp->x] = c; + e564: e0bffc17 ldw r2,-16(fp) + e568: 10800883 ldbu r2,34(r2) + e56c: 11003fcc andi r4,r2,255 + e570: e0bffc17 ldw r2,-16(fp) + e574: 10800843 ldbu r2,33(r2) + e578: 14403fcc andi r17,r2,255 + e57c: e43ffc17 ldw r16,-16(fp) + e580: 014018c4 movi r5,99 + e584: 0002b2c0 call 2b2c <__mulsi3> + e588: 1405883a add r2,r2,r16 + e58c: 1445883a add r2,r2,r17 + e590: 10c01004 addi r3,r2,64 + e594: e0bff803 ldbu r2,-32(fp) + e598: 18800005 stb r2,0(r3) + + sp->x++; + e59c: e0bffc17 ldw r2,-16(fp) + e5a0: 10800843 ldbu r2,33(r2) + e5a4: 10800044 addi r2,r2,1 + e5a8: 1007883a mov r3,r2 + e5ac: e0bffc17 ldw r2,-16(fp) + e5b0: 10c00845 stb r3,33(r2) + + /* Tell the routine which is called off the timer interrupt that the + * foreground routines are active so it must not repaint the display. */ + sp->active = 1; + + for ( ; ptr < end ; ptr++) + e5b4: e0bffd17 ldw r2,-12(fp) + e5b8: 10800044 addi r2,r2,1 + e5bc: e0bffd15 stw r2,-12(fp) + e5c0: e0fffd17 ldw r3,-12(fp) + e5c4: e0bffb17 ldw r2,-20(fp) + e5c8: 18bf5a36 bltu r3,r2,e334 + sp->x++; + } + } + + /* Recalculate the scrolling parameters */ + widthmax = ALT_LCD_WIDTH; + e5cc: 00800404 movi r2,16 + e5d0: e0bff915 stw r2,-28(fp) + for (y = 0 ; y < ALT_LCD_HEIGHT ; y++) + e5d4: e03ffa15 stw zero,-24(fp) + e5d8: 00003906 br e6c0 + { + int width; + for (width = ALT_LCD_VIRTUAL_WIDTH ; width > 0 ; width--) + e5dc: 00801404 movi r2,80 + e5e0: e0bff615 stw r2,-40(fp) + e5e4: 00001206 br e630 + if (sp->line[y].data[width-1] != ' ') + e5e8: e13ffa17 ldw r4,-24(fp) + e5ec: e0bff617 ldw r2,-40(fp) + e5f0: 147fffc4 addi r17,r2,-1 + e5f4: e43ffc17 ldw r16,-16(fp) + e5f8: 014018c4 movi r5,99 + e5fc: 0002b2c0 call 2b2c <__mulsi3> + e600: 1405883a add r2,r2,r16 + e604: 1445883a add r2,r2,r17 + e608: 10801004 addi r2,r2,64 + e60c: 10800003 ldbu r2,0(r2) + e610: 10803fcc andi r2,r2,255 + e614: 1080201c xori r2,r2,128 + e618: 10bfe004 addi r2,r2,-128 + e61c: 10800818 cmpnei r2,r2,32 + e620: 1000061e bne r2,zero,e63c + /* Recalculate the scrolling parameters */ + widthmax = ALT_LCD_WIDTH; + for (y = 0 ; y < ALT_LCD_HEIGHT ; y++) + { + int width; + for (width = ALT_LCD_VIRTUAL_WIDTH ; width > 0 ; width--) + e624: e0bff617 ldw r2,-40(fp) + e628: 10bfffc4 addi r2,r2,-1 + e62c: e0bff615 stw r2,-40(fp) + e630: e0bff617 ldw r2,-40(fp) + e634: 10800048 cmpgei r2,r2,1 + e638: 103feb1e bne r2,zero,e5e8 + + /* The minimum width is the size of the LCD panel. If the real width + * is long enough to require scrolling then add an extra space so the + * end of the message doesn't run into the beginning of it. + */ + if (width <= ALT_LCD_WIDTH) + e63c: e0bff617 ldw r2,-40(fp) + e640: 10800448 cmpgei r2,r2,17 + e644: 1000031e bne r2,zero,e654 + width = ALT_LCD_WIDTH; + e648: 00800404 movi r2,16 + e64c: e0bff615 stw r2,-40(fp) + e650: 00000306 br e660 + else + width++; + e654: e0bff617 ldw r2,-40(fp) + e658: 10800044 addi r2,r2,1 + e65c: e0bff615 stw r2,-40(fp) + + sp->line[y].width = width; + e660: e13ffa17 ldw r4,-24(fp) + e664: e0bff617 ldw r2,-40(fp) + e668: 1023883a mov r17,r2 + e66c: e43ffc17 ldw r16,-16(fp) + e670: 014018c4 movi r5,99 + e674: 0002b2c0 call 2b2c <__mulsi3> + e678: 1405883a add r2,r2,r16 + e67c: 10802404 addi r2,r2,144 + e680: 14400045 stb r17,1(r2) + if (widthmax < width) + e684: e0fff917 ldw r3,-28(fp) + e688: e0bff617 ldw r2,-40(fp) + e68c: 1880020e bge r3,r2,e698 + widthmax = width; + e690: e0bff617 ldw r2,-40(fp) + e694: e0bff915 stw r2,-28(fp) + sp->line[y].speed = 0; /* By default lines don't scroll */ + e698: e13ffa17 ldw r4,-24(fp) + e69c: e43ffc17 ldw r16,-16(fp) + e6a0: 014018c4 movi r5,99 + e6a4: 0002b2c0 call 2b2c <__mulsi3> + e6a8: 1405883a add r2,r2,r16 + e6ac: 10802404 addi r2,r2,144 + e6b0: 10000085 stb zero,2(r2) + } + } + + /* Recalculate the scrolling parameters */ + widthmax = ALT_LCD_WIDTH; + for (y = 0 ; y < ALT_LCD_HEIGHT ; y++) + e6b4: e0bffa17 ldw r2,-24(fp) + e6b8: 10800044 addi r2,r2,1 + e6bc: e0bffa15 stw r2,-24(fp) + e6c0: e0bffa17 ldw r2,-24(fp) + e6c4: 10800090 cmplti r2,r2,2 + e6c8: 103fc41e bne r2,zero,e5dc + if (widthmax < width) + widthmax = width; + sp->line[y].speed = 0; /* By default lines don't scroll */ + } + + if (widthmax <= ALT_LCD_WIDTH) + e6cc: e0bff917 ldw r2,-28(fp) + e6d0: 10800448 cmpgei r2,r2,17 + e6d4: 1000031e bne r2,zero,e6e4 + sp->scrollmax = 0; + e6d8: e0bffc17 ldw r2,-16(fp) + e6dc: 10000985 stb zero,38(r2) + e6e0: 00003106 br e7a8 + else + { + widthmax *= 2; + e6e4: e0bff917 ldw r2,-28(fp) + e6e8: 1085883a add r2,r2,r2 + e6ec: e0bff915 stw r2,-28(fp) + sp->scrollmax = widthmax; + e6f0: e0bff917 ldw r2,-28(fp) + e6f4: 1007883a mov r3,r2 + e6f8: e0bffc17 ldw r2,-16(fp) + e6fc: 10c00985 stb r3,38(r2) + + /* Now calculate how fast each of the other lines should go */ + for (y = 0 ; y < ALT_LCD_HEIGHT ; y++) + e700: e03ffa15 stw zero,-24(fp) + e704: 00002506 br e79c + if (sp->line[y].width > ALT_LCD_WIDTH) + e708: e13ffa17 ldw r4,-24(fp) + e70c: e43ffc17 ldw r16,-16(fp) + e710: 014018c4 movi r5,99 + e714: 0002b2c0 call 2b2c <__mulsi3> + e718: 1405883a add r2,r2,r16 + e71c: 10802404 addi r2,r2,144 + e720: 10800043 ldbu r2,1(r2) + e724: 10803fcc andi r2,r2,255 + e728: 1080201c xori r2,r2,128 + e72c: 10bfe004 addi r2,r2,-128 + e730: 10800450 cmplti r2,r2,17 + e734: 1000161e bne r2,zero,e790 + */ +#if 1 + /* This option makes all the lines scroll round at different speeds + * which are chosen so that all the scrolls finish at the same time. + */ + sp->line[y].speed = 256 * sp->line[y].width / widthmax; + e738: e4bffa17 ldw r18,-24(fp) + e73c: e13ffa17 ldw r4,-24(fp) + e740: e43ffc17 ldw r16,-16(fp) + e744: 014018c4 movi r5,99 + e748: 0002b2c0 call 2b2c <__mulsi3> + e74c: 1405883a add r2,r2,r16 + e750: 10802404 addi r2,r2,144 + e754: 10800043 ldbu r2,1(r2) + e758: 10803fcc andi r2,r2,255 + e75c: 1080201c xori r2,r2,128 + e760: 10bfe004 addi r2,r2,-128 + e764: 1008923a slli r4,r2,8 + e768: e17ff917 ldw r5,-28(fp) + e76c: 0002a5c0 call 2a5c <__divsi3> + e770: 1023883a mov r17,r2 + e774: e43ffc17 ldw r16,-16(fp) + e778: 9009883a mov r4,r18 + e77c: 014018c4 movi r5,99 + e780: 0002b2c0 call 2b2c <__mulsi3> + e784: 1405883a add r2,r2,r16 + e788: 10802404 addi r2,r2,144 + e78c: 14400085 stb r17,2(r2) + { + widthmax *= 2; + sp->scrollmax = widthmax; + + /* Now calculate how fast each of the other lines should go */ + for (y = 0 ; y < ALT_LCD_HEIGHT ; y++) + e790: e0bffa17 ldw r2,-24(fp) + e794: 10800044 addi r2,r2,1 + e798: e0bffa15 stw r2,-24(fp) + e79c: e0bffa17 ldw r2,-24(fp) + e7a0: 10800090 cmplti r2,r2,2 + e7a4: 103fd81e bne r2,zero,e708 + * (because active was set when the timer interrupt occurred). If there + * has been a missed repaint then paint again. And again. etc. + */ + for ( ; ; ) + { + int old_scrollpos = sp->scrollpos; + e7a8: e0bffc17 ldw r2,-16(fp) + e7ac: 10800943 ldbu r2,37(r2) + e7b0: 10803fcc andi r2,r2,255 + e7b4: 1080201c xori r2,r2,128 + e7b8: 10bfe004 addi r2,r2,-128 + e7bc: e0bff515 stw r2,-44(fp) + + lcd_repaint_screen(sp); + e7c0: e13ffc17 ldw r4,-16(fp) + e7c4: 000dd0c0 call dd0c + + /* Let the timer routines repaint the display again */ + sp->active = 0; + e7c8: e0bffc17 ldw r2,-16(fp) + e7cc: 100009c5 stb zero,39(r2) + + /* Have the timer routines tried to scroll while we were painting? + * If not then we can exit */ + if (sp->scrollpos == old_scrollpos) + e7d0: e0bffc17 ldw r2,-16(fp) + e7d4: 10800943 ldbu r2,37(r2) + e7d8: 10c03fcc andi r3,r2,255 + e7dc: 18c0201c xori r3,r3,128 + e7e0: 18ffe004 addi r3,r3,-128 + e7e4: e0bff517 ldw r2,-44(fp) + e7e8: 18800426 beq r3,r2,e7fc + break; + + /* We need to repaint again since the display scrolled while we were + * painting last time */ + sp->active = 1; + e7ec: e0fffc17 ldw r3,-16(fp) + e7f0: 00800044 movi r2,1 + e7f4: 188009c5 stb r2,39(r3) + } + e7f8: 003feb06 br e7a8 + * semaphore so that other threads can access the buffer. + */ + + ALT_SEM_POST (sp->write_lock); + + return len; + e7fc: e0bffe17 ldw r2,-8(fp) +} + e800: e037883a mov sp,fp + e804: dfc00417 ldw ra,16(sp) + e808: df000317 ldw fp,12(sp) + e80c: dc800217 ldw r18,8(sp) + e810: dc400117 ldw r17,4(sp) + e814: dc000017 ldw r16,0(sp) + e818: dec00504 addi sp,sp,20 + e81c: f800283a ret + +0000e820 : +/* + * Timeout routine is called every second + */ + +static alt_u32 alt_lcd_16207_timeout(void* context) +{ + e820: defffc04 addi sp,sp,-16 + e824: dfc00315 stw ra,12(sp) + e828: df000215 stw fp,8(sp) + e82c: df000204 addi fp,sp,8 + e830: e13fff15 stw r4,-4(fp) + altera_avalon_lcd_16207_state* sp = (altera_avalon_lcd_16207_state*)context; + e834: e0bfff17 ldw r2,-4(fp) + e838: e0bffe15 stw r2,-8(fp) + + /* Update the scrolling position */ + if (sp->scrollpos + 1 >= sp->scrollmax) + e83c: e0bffe17 ldw r2,-8(fp) + e840: 10800943 ldbu r2,37(r2) + e844: 10803fcc andi r2,r2,255 + e848: 1080201c xori r2,r2,128 + e84c: 10bfe004 addi r2,r2,-128 + e850: 10c00044 addi r3,r2,1 + e854: e0bffe17 ldw r2,-8(fp) + e858: 10800983 ldbu r2,38(r2) + e85c: 10803fcc andi r2,r2,255 + e860: 1080201c xori r2,r2,128 + e864: 10bfe004 addi r2,r2,-128 + e868: 18800316 blt r3,r2,e878 + sp->scrollpos = 0; + e86c: e0bffe17 ldw r2,-8(fp) + e870: 10000945 stb zero,37(r2) + e874: 00000606 br e890 + else + sp->scrollpos = sp->scrollpos + 1; + e878: e0bffe17 ldw r2,-8(fp) + e87c: 10800943 ldbu r2,37(r2) + e880: 10800044 addi r2,r2,1 + e884: 1007883a mov r3,r2 + e888: e0bffe17 ldw r2,-8(fp) + e88c: 10c00945 stb r3,37(r2) + + /* Repaint the panel unless the foreground will do it again soon */ + if (sp->scrollmax > 0 && !sp->active) + e890: e0bffe17 ldw r2,-8(fp) + e894: 10800983 ldbu r2,38(r2) + e898: 10803fcc andi r2,r2,255 + e89c: 1080201c xori r2,r2,128 + e8a0: 10bfe004 addi r2,r2,-128 + e8a4: 10800050 cmplti r2,r2,1 + e8a8: 1000091e bne r2,zero,e8d0 + e8ac: e0bffe17 ldw r2,-8(fp) + e8b0: 108009c3 ldbu r2,39(r2) + e8b4: 10803fcc andi r2,r2,255 + e8b8: 1080201c xori r2,r2,128 + e8bc: 10bfe004 addi r2,r2,-128 + e8c0: 1004c03a cmpne r2,r2,zero + e8c4: 1000021e bne r2,zero,e8d0 + lcd_repaint_screen(sp); + e8c8: e13ffe17 ldw r4,-8(fp) + e8cc: 000dd0c0 call dd0c + + return sp->period; + e8d0: e0bffe17 ldw r2,-8(fp) + e8d4: 10800717 ldw r2,28(r2) +} + e8d8: e037883a mov sp,fp + e8dc: dfc00117 ldw ra,4(sp) + e8e0: df000017 ldw fp,0(sp) + e8e4: dec00204 addi sp,sp,8 + e8e8: f800283a ret + +0000e8ec : + +/* + * Called at boot time to initialise the LCD driver + */ +void altera_avalon_lcd_16207_init(altera_avalon_lcd_16207_state* sp) +{ + e8ec: defffc04 addi sp,sp,-16 + e8f0: dfc00315 stw ra,12(sp) + e8f4: df000215 stw fp,8(sp) + e8f8: df000204 addi fp,sp,8 + e8fc: e13fff15 stw r4,-4(fp) + unsigned int base = sp->base; + e900: e0bfff17 ldw r2,-4(fp) + e904: 10800017 ldw r2,0(r2) + e908: e0bffe15 stw r2,-8(fp) + + /* Mark the device as functional */ + sp->broken = 0; + e90c: e0bfff17 ldw r2,-4(fp) + e910: 10000805 stb zero,32(r2) + * the BUSY bit in the status register doesn't work until the display + * has been reset three times. + */ + + /* Wait for 15 ms then reset */ + usleep(15000); + e914: 010ea604 movi r4,15000 + e918: 000cd800 call cd80 + IOWR_ALTERA_AVALON_LCD_16207_COMMAND(base, LCD_CMD_FUNCTION_SET | LCD_CMD_8BIT); + e91c: e0bffe17 ldw r2,-8(fp) + e920: 1007883a mov r3,r2 + e924: 00800c04 movi r2,48 + e928: 18800035 stwio r2,0(r3) + + /* Wait for another 4.1ms and reset again */ + usleep(4100); + e92c: 01040104 movi r4,4100 + e930: 000cd800 call cd80 + IOWR_ALTERA_AVALON_LCD_16207_COMMAND(base, LCD_CMD_FUNCTION_SET | LCD_CMD_8BIT); + e934: e0bffe17 ldw r2,-8(fp) + e938: 1007883a mov r3,r2 + e93c: 00800c04 movi r2,48 + e940: 18800035 stwio r2,0(r3) + + /* Wait a further 1 ms and reset a third time */ + usleep(1000); + e944: 0100fa04 movi r4,1000 + e948: 000cd800 call cd80 + IOWR_ALTERA_AVALON_LCD_16207_COMMAND(base, LCD_CMD_FUNCTION_SET | LCD_CMD_8BIT); + e94c: e0bffe17 ldw r2,-8(fp) + e950: 1007883a mov r3,r2 + e954: 00800c04 movi r2,48 + e958: 18800035 stwio r2,0(r3) + + /* Setup interface parameters: 8 bit bus, 2 rows, 5x7 font */ + lcd_write_command(sp, LCD_CMD_FUNCTION_SET | LCD_CMD_8BIT | LCD_CMD_TWO_LINE); + e95c: e13fff17 ldw r4,-4(fp) + e960: 01400e04 movi r5,56 + e964: 000daa80 call daa8 + + /* Turn display off */ + lcd_write_command(sp, LCD_CMD_ONOFF); + e968: e13fff17 ldw r4,-4(fp) + e96c: 01400204 movi r5,8 + e970: 000daa80 call daa8 + + /* Clear display */ + lcd_clear_screen(sp); + e974: e13fff17 ldw r4,-4(fp) + e978: 000dc340 call dc34 + + /* Set mode: increment after writing, don't shift display */ + lcd_write_command(sp, LCD_CMD_MODES | LCD_CMD_MODE_INC); + e97c: e13fff17 ldw r4,-4(fp) + e980: 01400184 movi r5,6 + e984: 000daa80 call daa8 + + /* Turn display on */ + lcd_write_command(sp, LCD_CMD_ONOFF | LCD_CMD_ENABLE_DISP); + e988: e13fff17 ldw r4,-4(fp) + e98c: 01400304 movi r5,12 + e990: 000daa80 call daa8 + + sp->esccount = -1; + e994: e0ffff17 ldw r3,-4(fp) + e998: 00bfffc4 movi r2,-1 + e99c: 18800905 stb r2,36(r3) + memset(sp->escape, 0, sizeof(sp->escape)); + e9a0: e0bfff17 ldw r2,-4(fp) + e9a4: 11000a04 addi r4,r2,40 + e9a8: 000b883a mov r5,zero + e9ac: 01800204 movi r6,8 + e9b0: 000809c0 call 809c + + sp->scrollpos = 0; + e9b4: e0bfff17 ldw r2,-4(fp) + e9b8: 10000945 stb zero,37(r2) + sp->scrollmax = 0; + e9bc: e0bfff17 ldw r2,-4(fp) + e9c0: 10000985 stb zero,38(r2) + sp->active = 0; + e9c4: e0bfff17 ldw r2,-4(fp) + e9c8: 100009c5 stb zero,39(r2) + e9cc: 00800074 movhi r2,1 + e9d0: 108f4104 addi r2,r2,15620 + e9d4: 10800017 ldw r2,0(r2) + e9d8: 1009883a mov r4,r2 + + sp->period = alt_ticks_per_second() / 10; /* Call every 100ms */ + e9dc: 01400284 movi r5,10 + e9e0: 0002b1c0 call 2b1c <__udivsi3> + e9e4: 1007883a mov r3,r2 + e9e8: e0bfff17 ldw r2,-4(fp) + e9ec: 10c00715 stw r3,28(r2) + + alt_alarm_start(&sp->alarm, sp->period, &alt_lcd_16207_timeout, sp); + e9f0: e0bfff17 ldw r2,-4(fp) + e9f4: 11000104 addi r4,r2,4 + e9f8: e0bfff17 ldw r2,-4(fp) + e9fc: 10800717 ldw r2,28(r2) + ea00: 100b883a mov r5,r2 + ea04: 01800074 movhi r6,1 + ea08: 31ba0804 addi r6,r6,-6112 + ea0c: e1ffff17 ldw r7,-4(fp) + ea10: 000ea800 call ea80 +} + ea14: e037883a mov sp,fp + ea18: dfc00117 ldw ra,4(sp) + ea1c: df000017 ldw fp,0(sp) + ea20: dec00204 addi sp,sp,8 + ea24: f800283a ret + +0000ea28 : +extern int altera_avalon_lcd_16207_write(altera_avalon_lcd_16207_state* sp, + const char* ptr, int count, int flags); + +int +altera_avalon_lcd_16207_write_fd(alt_fd* fd, const char* buffer, int space) +{ + ea28: defffa04 addi sp,sp,-24 + ea2c: dfc00515 stw ra,20(sp) + ea30: df000415 stw fp,16(sp) + ea34: df000404 addi fp,sp,16 + ea38: e13ffd15 stw r4,-12(fp) + ea3c: e17ffe15 stw r5,-8(fp) + ea40: e1bfff15 stw r6,-4(fp) + altera_avalon_lcd_16207_dev* dev = (altera_avalon_lcd_16207_dev*) fd->dev; + ea44: e0bffd17 ldw r2,-12(fp) + ea48: 10800017 ldw r2,0(r2) + ea4c: e0bffc15 stw r2,-16(fp) + + return altera_avalon_lcd_16207_write(&dev->state, buffer, space, + ea50: e0bffc17 ldw r2,-16(fp) + ea54: 11000a04 addi r4,r2,40 + ea58: e0bffd17 ldw r2,-12(fp) + ea5c: 11c00217 ldw r7,8(r2) + ea60: e17ffe17 ldw r5,-8(fp) + ea64: e1bfff17 ldw r6,-4(fp) + ea68: 000e2e40 call e2e4 + fd->fd_flags); +} + ea6c: e037883a mov sp,fp + ea70: dfc00117 ldw ra,4(sp) + ea74: df000017 ldw fp,0(sp) + ea78: dec00204 addi sp,sp,8 + ea7c: f800283a ret + +0000ea80 : + */ + +int alt_alarm_start (alt_alarm* alarm, alt_u32 nticks, + alt_u32 (*callback) (void* context), + void* context) +{ + ea80: defff404 addi sp,sp,-48 + ea84: df000b15 stw fp,44(sp) + ea88: df000b04 addi fp,sp,44 + ea8c: e13ffb15 stw r4,-20(fp) + ea90: e17ffc15 stw r5,-16(fp) + ea94: e1bffd15 stw r6,-12(fp) + ea98: e1fffe15 stw r7,-8(fp) + alt_irq_context irq_context; + alt_u32 current_nticks = 0; + ea9c: e03ff915 stw zero,-28(fp) + eaa0: 00800074 movhi r2,1 + eaa4: 108f4104 addi r2,r2,15620 + eaa8: 10800017 ldw r2,0(r2) + + if (alt_ticks_per_second ()) + eaac: 1005003a cmpeq r2,r2,zero + eab0: 1000411e bne r2,zero,ebb8 + { + if (alarm) + eab4: e0bffb17 ldw r2,-20(fp) + eab8: 1005003a cmpeq r2,r2,zero + eabc: 10003b1e bne r2,zero,ebac + { + alarm->callback = callback; + eac0: e0fffb17 ldw r3,-20(fp) + eac4: e0bffd17 ldw r2,-12(fp) + eac8: 18800315 stw r2,12(r3) + alarm->context = context; + eacc: e0fffb17 ldw r3,-20(fp) + ead0: e0bffe17 ldw r2,-8(fp) + ead4: 18800515 stw r2,20(r3) +static ALT_INLINE alt_irq_context ALT_ALWAYS_INLINE + alt_irq_disable_all (void) +{ + alt_irq_context context; + + NIOS2_READ_STATUS (context); + ead8: 0005303a rdctl r2,status + eadc: e0bff815 stw r2,-32(fp) + + NIOS2_WRITE_STATUS (context & ~NIOS2_STATUS_PIE_MSK); + eae0: e0fff817 ldw r3,-32(fp) + eae4: 00bfff84 movi r2,-2 + eae8: 1884703a and r2,r3,r2 + eaec: 1001703a wrctl status,r2 + + return context; + eaf0: e0bff817 ldw r2,-32(fp) + + irq_context = alt_irq_disable_all (); + eaf4: e0bffa15 stw r2,-24(fp) + * alt_nticks() returns the elapsed number of system clock ticks since reset. + */ + +static ALT_INLINE alt_u32 ALT_ALWAYS_INLINE alt_nticks (void) +{ + return _alt_nticks; + eaf8: 00800074 movhi r2,1 + eafc: 108f4204 addi r2,r2,15624 + eb00: 10800017 ldw r2,0(r2) + + current_nticks = alt_nticks(); + eb04: e0bff915 stw r2,-28(fp) + + alarm->time = nticks + current_nticks + 1; + eb08: e0fffc17 ldw r3,-16(fp) + eb0c: e0bff917 ldw r2,-28(fp) + eb10: 1885883a add r2,r3,r2 + eb14: 10c00044 addi r3,r2,1 + eb18: e0bffb17 ldw r2,-20(fp) + eb1c: 10c00215 stw r3,8(r2) + /* + * If the desired alarm time causes a roll-over, set the rollover + * flag. This will prevent the subsequent tick event from causing + * an alarm too early. + */ + if(alarm->time < current_nticks) + eb20: e0bffb17 ldw r2,-20(fp) + eb24: 10c00217 ldw r3,8(r2) + eb28: e0bff917 ldw r2,-28(fp) + eb2c: 1880042e bgeu r3,r2,eb40 + { + alarm->rollover = 1; + eb30: e0fffb17 ldw r3,-20(fp) + eb34: 00800044 movi r2,1 + eb38: 18800405 stb r2,16(r3) + eb3c: 00000206 br eb48 + } + else + { + alarm->rollover = 0; + eb40: e0bffb17 ldw r2,-20(fp) + eb44: 10000405 stb zero,16(r2) + } + + alt_llist_insert (&alt_alarm_list, &alarm->llist); + eb48: e0fffb17 ldw r3,-20(fp) + eb4c: 00800074 movhi r2,1 + eb50: 10884d04 addi r2,r2,8500 + eb54: e0bff615 stw r2,-40(fp) + eb58: e0fff715 stw r3,-36(fp) + */ + +static ALT_INLINE void ALT_ALWAYS_INLINE alt_llist_insert(alt_llist* list, + alt_llist* entry) +{ + entry->previous = list; + eb5c: e0fff717 ldw r3,-36(fp) + eb60: e0bff617 ldw r2,-40(fp) + eb64: 18800115 stw r2,4(r3) + entry->next = list->next; + eb68: e0bff617 ldw r2,-40(fp) + eb6c: 10c00017 ldw r3,0(r2) + eb70: e0bff717 ldw r2,-36(fp) + eb74: 10c00015 stw r3,0(r2) + + list->next->previous = entry; + eb78: e0bff617 ldw r2,-40(fp) + eb7c: 10c00017 ldw r3,0(r2) + eb80: e0bff717 ldw r2,-36(fp) + eb84: 18800115 stw r2,4(r3) + list->next = entry; + eb88: e0fff617 ldw r3,-40(fp) + eb8c: e0bff717 ldw r2,-36(fp) + eb90: 18800015 stw r2,0(r3) + eb94: e0bffa17 ldw r2,-24(fp) + eb98: e0bff515 stw r2,-44(fp) + status &= ~NIOS2_STATUS_PIE_MSK; + status |= (context & NIOS2_STATUS_PIE_MSK); + + NIOS2_WRITE_STATUS (status); +#else + NIOS2_WRITE_STATUS (context); + eb9c: e0bff517 ldw r2,-44(fp) + eba0: 1001703a wrctl status,r2 + alt_irq_enable_all (irq_context); + + return 0; + eba4: e03fff15 stw zero,-4(fp) + eba8: 00000506 br ebc0 + } + else + { + return -EINVAL; + ebac: 00bffa84 movi r2,-22 + ebb0: e0bfff15 stw r2,-4(fp) + ebb4: 00000206 br ebc0 + } + } + else + { + return -ENOTSUP; + ebb8: 00bfde84 movi r2,-134 + ebbc: e0bfff15 stw r2,-4(fp) + ebc0: e0bfff17 ldw r2,-4(fp) + } +} + ebc4: e037883a mov sp,fp + ebc8: df000017 ldw fp,0(sp) + ebcc: dec00104 addi sp,sp,4 + ebd0: f800283a ret + +0000ebd4 : +#include "alt_types.h" + +#include "priv/alt_busy_sleep.h" + +unsigned int alt_busy_sleep (unsigned int us) +{ + ebd4: defffa04 addi sp,sp,-24 + ebd8: dfc00515 stw ra,20(sp) + ebdc: df000415 stw fp,16(sp) + ebe0: df000404 addi fp,sp,16 + ebe4: e13fff15 stw r4,-4(fp) + int big_loops; + alt_u32 cycles_per_loop; + + if (!strcmp(NIOS2_CPU_IMPLEMENTATION,"tiny")) + { + cycles_per_loop = 9; + ebe8: 00800244 movi r2,9 + ebec: e0bffc15 stw r2,-16(fp) + { + cycles_per_loop = 3; + } + + + big_loops = us / (INT_MAX/ + ebf0: e13ffc17 ldw r4,-16(fp) + ebf4: 014003f4 movhi r5,15 + ebf8: 29509004 addi r5,r5,16960 + ebfc: 0002b2c0 call 2b2c <__mulsi3> + ec00: 100b883a mov r5,r2 + ec04: 0100bef4 movhi r4,763 + ec08: 213c2004 addi r4,r4,-3968 + ec0c: 0002b1c0 call 2b1c <__udivsi3> + ec10: 100b883a mov r5,r2 + ec14: 01200034 movhi r4,32768 + ec18: 213fffc4 addi r4,r4,-1 + ec1c: 0002b1c0 call 2b1c <__udivsi3> + ec20: 100b883a mov r5,r2 + ec24: e13fff17 ldw r4,-4(fp) + ec28: 0002b1c0 call 2b1c <__udivsi3> + ec2c: e0bffd15 stw r2,-12(fp) + (ALT_CPU_FREQ/(cycles_per_loop * 1000000))); + + if (big_loops) + ec30: e0bffd17 ldw r2,-12(fp) + ec34: 1005003a cmpeq r2,r2,zero + ec38: 10002a1e bne r2,zero,ece4 + { + for(i=0;i + /* + * Do NOT Try to single step the asm statement below + * (single step will never return) + * Step out of this function or set a breakpoint after the asm statements + */ + __asm__ volatile ( + ec44: 00a00034 movhi r2,32768 + ec48: 10bfffc4 addi r2,r2,-1 + ec4c: 10bfffc4 addi r2,r2,-1 + ec50: 103ffe1e bne r2,zero,ec4c + "\n1:" + "\n\t.pushsection .debug_alt_sim_info" + "\n\t.int 4, 0, 0b, 1b" + "\n\t.popsection" + :: "r" (INT_MAX)); + us -= (INT_MAX/(ALT_CPU_FREQ/ + ec54: e13ffc17 ldw r4,-16(fp) + ec58: 014003f4 movhi r5,15 + ec5c: 29509004 addi r5,r5,16960 + ec60: 0002b2c0 call 2b2c <__mulsi3> + ec64: 100b883a mov r5,r2 + ec68: 0100bef4 movhi r4,763 + ec6c: 213c2004 addi r4,r4,-3968 + ec70: 0002b1c0 call 2b1c <__udivsi3> + ec74: 100b883a mov r5,r2 + ec78: 01200034 movhi r4,32768 + ec7c: 213fffc4 addi r4,r4,-1 + ec80: 0002b1c0 call 2b1c <__udivsi3> + ec84: 1007883a mov r3,r2 + ec88: e0bfff17 ldw r2,-4(fp) + ec8c: 10c5c83a sub r2,r2,r3 + ec90: e0bfff15 stw r2,-4(fp) + big_loops = us / (INT_MAX/ + (ALT_CPU_FREQ/(cycles_per_loop * 1000000))); + + if (big_loops) + { + for(i=0;i + /* + * Do NOT Try to single step the asm statement below + * (single step will never return) + * Step out of this function or set a breakpoint after the asm statements + */ + __asm__ volatile ( + ecac: e13ffc17 ldw r4,-16(fp) + ecb0: 014003f4 movhi r5,15 + ecb4: 29509004 addi r5,r5,16960 + ecb8: 0002b2c0 call 2b2c <__mulsi3> + ecbc: 100b883a mov r5,r2 + ecc0: 0100bef4 movhi r4,763 + ecc4: 213c2004 addi r4,r4,-3968 + ecc8: 0002b1c0 call 2b1c <__udivsi3> + eccc: 1009883a mov r4,r2 + ecd0: e17fff17 ldw r5,-4(fp) + ecd4: 0002b2c0 call 2b2c <__mulsi3> + ecd8: 10bfffc4 addi r2,r2,-1 + ecdc: 103ffe1e bne r2,zero,ecd8 + ece0: 00000d06 br ed18 + /* + * Do NOT Try to single step the asm statement below + * (single step will never return) + * Step out of this function or set a breakpoint after the asm statements + */ + __asm__ volatile ( + ece4: e13ffc17 ldw r4,-16(fp) + ece8: 014003f4 movhi r5,15 + ecec: 29509004 addi r5,r5,16960 + ecf0: 0002b2c0 call 2b2c <__mulsi3> + ecf4: 100b883a mov r5,r2 + ecf8: 0100bef4 movhi r4,763 + ecfc: 213c2004 addi r4,r4,-3968 + ed00: 0002b1c0 call 2b1c <__udivsi3> + ed04: 1009883a mov r4,r2 + ed08: e17fff17 ldw r5,-4(fp) + ed0c: 0002b2c0 call 2b2c <__mulsi3> + ed10: 10bfffc4 addi r2,r2,-1 + ed14: 00bffe16 blt zero,r2,ed10 + "\n\t.int 4, 0, 0b, 1b" + "\n\t.popsection" + :: "r" (us*(ALT_CPU_FREQ/(cycles_per_loop * 1000000)))); + } +#endif /* #ifndef ALT_SIM_OPTIMIZE */ + return 0; + ed18: 0005883a mov r2,zero +} + ed1c: e037883a mov sp,fp + ed20: dfc00117 ldw ra,4(sp) + ed24: df000017 ldw fp,0(sp) + ed28: dec00204 addi sp,sp,8 + ed2c: f800283a ret + +0000ed30 : +/* + * alt_dcache_flush_all() is called to flush the entire data cache. + */ + +void alt_dcache_flush_all (void) +{ + ed30: deffff04 addi sp,sp,-4 + ed34: df000015 stw fp,0(sp) + ed38: d839883a mov fp,sp + for (i = (char*) 0; i < (char*) NIOS2_DCACHE_SIZE; i+= NIOS2_DCACHE_LINE_SIZE) + { + __asm__ volatile ("flushd (%0)" :: "r" (i)); + } +#endif /* NIOS2_DCACHE_SIZE > 0 */ +} + ed3c: e037883a mov sp,fp + ed40: df000017 ldw fp,0(sp) + ed44: dec00104 addi sp,sp,4 + ed48: f800283a ret + +0000ed4c : +/* + * + */ + +int alt_dev_llist_insert (alt_dev_llist* dev, alt_llist* list) +{ + ed4c: defff904 addi sp,sp,-28 + ed50: dfc00615 stw ra,24(sp) + ed54: df000515 stw fp,20(sp) + ed58: df000504 addi fp,sp,20 + ed5c: e13ffd15 stw r4,-12(fp) + ed60: e17ffe15 stw r5,-8(fp) + /* + * check that the device exists, and that it has a valid name. + */ + + if (!dev || !dev->name) + ed64: e0bffd17 ldw r2,-12(fp) + ed68: 1005003a cmpeq r2,r2,zero + ed6c: 1000041e bne r2,zero,ed80 + ed70: e0bffd17 ldw r2,-12(fp) + ed74: 10800217 ldw r2,8(r2) + ed78: 1004c03a cmpne r2,r2,zero + ed7c: 1000071e bne r2,zero,ed9c + { + ALT_ERRNO = EINVAL; + ed80: 000ee000 call ee00 + ed84: 1007883a mov r3,r2 + ed88: 00800584 movi r2,22 + ed8c: 18800015 stw r2,0(r3) + return -EINVAL; + ed90: 00bffa84 movi r2,-22 + ed94: e0bfff15 stw r2,-4(fp) + ed98: 00001306 br ede8 + + /* + * register the device. + */ + + alt_llist_insert(list, &dev->llist); + ed9c: e0fffd17 ldw r3,-12(fp) + eda0: e0bffe17 ldw r2,-8(fp) + eda4: e0bffb15 stw r2,-20(fp) + eda8: e0fffc15 stw r3,-16(fp) + */ + +static ALT_INLINE void ALT_ALWAYS_INLINE alt_llist_insert(alt_llist* list, + alt_llist* entry) +{ + entry->previous = list; + edac: e0fffc17 ldw r3,-16(fp) + edb0: e0bffb17 ldw r2,-20(fp) + edb4: 18800115 stw r2,4(r3) + entry->next = list->next; + edb8: e0bffb17 ldw r2,-20(fp) + edbc: 10c00017 ldw r3,0(r2) + edc0: e0bffc17 ldw r2,-16(fp) + edc4: 10c00015 stw r3,0(r2) + + list->next->previous = entry; + edc8: e0bffb17 ldw r2,-20(fp) + edcc: 10c00017 ldw r3,0(r2) + edd0: e0bffc17 ldw r2,-16(fp) + edd4: 18800115 stw r2,4(r3) + list->next = entry; + edd8: e0fffb17 ldw r3,-20(fp) + eddc: e0bffc17 ldw r2,-16(fp) + ede0: 18800015 stw r2,0(r3) + + return 0; + ede4: e03fff15 stw zero,-4(fp) + ede8: e0bfff17 ldw r2,-4(fp) +} + edec: e037883a mov sp,fp + edf0: dfc00117 ldw ra,4(sp) + edf4: df000017 ldw fp,0(sp) + edf8: dec00204 addi sp,sp,8 + edfc: f800283a ret + +0000ee00 : +#undef errno + +extern int errno; + +static ALT_INLINE int* alt_get_errno(void) +{ + ee00: defffd04 addi sp,sp,-12 + ee04: dfc00215 stw ra,8(sp) + ee08: df000115 stw fp,4(sp) + ee0c: df000104 addi fp,sp,4 + return ((alt_errno) ? alt_errno() : &errno); + ee10: 00800074 movhi r2,1 + ee14: 10884904 addi r2,r2,8484 + ee18: 10800017 ldw r2,0(r2) + ee1c: 1005003a cmpeq r2,r2,zero + ee20: 1000061e bne r2,zero,ee3c + ee24: 00800074 movhi r2,1 + ee28: 10884904 addi r2,r2,8484 + ee2c: 10800017 ldw r2,0(r2) + ee30: 103ee83a callr r2 + ee34: e0bfff15 stw r2,-4(fp) + ee38: 00000306 br ee48 + ee3c: 00800074 movhi r2,1 + ee40: 108f3c04 addi r2,r2,15600 + ee44: e0bfff15 stw r2,-4(fp) + ee48: e0bfff17 ldw r2,-4(fp) +} + ee4c: e037883a mov sp,fp + ee50: dfc00117 ldw ra,4(sp) + ee54: df000017 ldw fp,0(sp) + ee58: dec00204 addi sp,sp,8 + ee5c: f800283a ret + +0000ee60 <_do_ctors>: +/* + * Run the C++ static constructors. + */ + +void _do_ctors(void) +{ + ee60: defffd04 addi sp,sp,-12 + ee64: dfc00215 stw ra,8(sp) + ee68: df000115 stw fp,4(sp) + ee6c: df000104 addi fp,sp,4 + constructor* ctor; + + for (ctor = &__CTOR_END__[-1]; ctor >= __CTOR_LIST__; ctor--) + ee70: 00bfff04 movi r2,-4 + ee74: 00c00074 movhi r3,1 + ee78: 18ffa604 addi r3,r3,-360 + ee7c: 1885883a add r2,r3,r2 + ee80: e0bfff15 stw r2,-4(fp) + ee84: 00000606 br eea0 <_do_ctors+0x40> + (*ctor) (); + ee88: e0bfff17 ldw r2,-4(fp) + ee8c: 10800017 ldw r2,0(r2) + ee90: 103ee83a callr r2 + +void _do_ctors(void) +{ + constructor* ctor; + + for (ctor = &__CTOR_END__[-1]; ctor >= __CTOR_LIST__; ctor--) + ee94: e0bfff17 ldw r2,-4(fp) + ee98: 10bfff04 addi r2,r2,-4 + ee9c: e0bfff15 stw r2,-4(fp) + eea0: e0ffff17 ldw r3,-4(fp) + eea4: 00800074 movhi r2,1 + eea8: 10bfa504 addi r2,r2,-364 + eeac: 18bff62e bgeu r3,r2,ee88 <_do_ctors+0x28> + (*ctor) (); +} + eeb0: e037883a mov sp,fp + eeb4: dfc00117 ldw ra,4(sp) + eeb8: df000017 ldw fp,0(sp) + eebc: dec00204 addi sp,sp,8 + eec0: f800283a ret + +0000eec4 <_do_dtors>: +/* + * Run the C++ static destructors. + */ + +void _do_dtors(void) +{ + eec4: defffd04 addi sp,sp,-12 + eec8: dfc00215 stw ra,8(sp) + eecc: df000115 stw fp,4(sp) + eed0: df000104 addi fp,sp,4 + destructor* dtor; + + for (dtor = &__DTOR_END__[-1]; dtor >= __DTOR_LIST__; dtor--) + eed4: 00bfff04 movi r2,-4 + eed8: 00c00074 movhi r3,1 + eedc: 18ffa604 addi r3,r3,-360 + eee0: 1885883a add r2,r3,r2 + eee4: e0bfff15 stw r2,-4(fp) + eee8: 00000606 br ef04 <_do_dtors+0x40> + (*dtor) (); + eeec: e0bfff17 ldw r2,-4(fp) + eef0: 10800017 ldw r2,0(r2) + eef4: 103ee83a callr r2 + +void _do_dtors(void) +{ + destructor* dtor; + + for (dtor = &__DTOR_END__[-1]; dtor >= __DTOR_LIST__; dtor--) + eef8: e0bfff17 ldw r2,-4(fp) + eefc: 10bfff04 addi r2,r2,-4 + ef00: e0bfff15 stw r2,-4(fp) + ef04: e0ffff17 ldw r3,-4(fp) + ef08: 00800074 movhi r2,1 + ef0c: 10bfa604 addi r2,r2,-360 + ef10: 18bff62e bgeu r3,r2,eeec <_do_dtors+0x28> + (*dtor) (); +} + ef14: e037883a mov sp,fp + ef18: dfc00117 ldw ra,4(sp) + ef1c: df000017 ldw fp,0(sp) + ef20: dec00204 addi sp,sp,8 + ef24: f800283a ret + +0000ef28 : +/* + * alt_icache_flush_all() is called to flush the entire instruction cache. + */ + +void alt_icache_flush_all (void) +{ + ef28: deffff04 addi sp,sp,-4 + ef2c: df000015 stw fp,0(sp) + ef30: d839883a mov fp,sp +#if NIOS2_ICACHE_SIZE > 0 + alt_icache_flush (0, NIOS2_ICACHE_SIZE); +#endif +} + ef34: e037883a mov sp,fp + ef38: df000017 ldw fp,0(sp) + ef3c: dec00104 addi sp,sp,4 + ef40: f800283a ret + +0000ef44 : + * @param irq IRQ number + * @return 0 if successful, else error (-1) + */ +int alt_ic_isr_register(alt_u32 ic_id, alt_u32 irq, alt_isr_func isr, + void *isr_context, void *flags) +{ + ef44: defff904 addi sp,sp,-28 + ef48: dfc00615 stw ra,24(sp) + ef4c: df000515 stw fp,20(sp) + ef50: df000504 addi fp,sp,20 + ef54: e13ffc15 stw r4,-16(fp) + ef58: e17ffd15 stw r5,-12(fp) + ef5c: e1bffe15 stw r6,-8(fp) + ef60: e1ffff15 stw r7,-4(fp) + return alt_iic_isr_register(ic_id, irq, isr, isr_context, flags); + ef64: e0800217 ldw r2,8(fp) + ef68: d8800015 stw r2,0(sp) + ef6c: e13ffc17 ldw r4,-16(fp) + ef70: e17ffd17 ldw r5,-12(fp) + ef74: e1bffe17 ldw r6,-8(fp) + ef78: e1ffff17 ldw r7,-4(fp) + ef7c: 000f1180 call f118 +} + ef80: e037883a mov sp,fp + ef84: dfc00117 ldw ra,4(sp) + ef88: df000017 ldw fp,0(sp) + ef8c: dec00204 addi sp,sp,8 + ef90: f800283a ret + +0000ef94 : + * @param ic_id Ignored. + * @param irq IRQ number + * @return 0 if successful, else error (-1) + */ +int alt_ic_irq_enable (alt_u32 ic_id, alt_u32 irq) +{ + ef94: defff904 addi sp,sp,-28 + ef98: df000615 stw fp,24(sp) + ef9c: df000604 addi fp,sp,24 + efa0: e13ffe15 stw r4,-8(fp) + efa4: e17fff15 stw r5,-4(fp) + efa8: e0bfff17 ldw r2,-4(fp) + efac: e0bffc15 stw r2,-16(fp) +static ALT_INLINE alt_irq_context ALT_ALWAYS_INLINE + alt_irq_disable_all (void) +{ + alt_irq_context context; + + NIOS2_READ_STATUS (context); + efb0: 0005303a rdctl r2,status + efb4: e0bffb15 stw r2,-20(fp) + + NIOS2_WRITE_STATUS (context & ~NIOS2_STATUS_PIE_MSK); + efb8: e0fffb17 ldw r3,-20(fp) + efbc: 00bfff84 movi r2,-2 + efc0: 1884703a and r2,r3,r2 + efc4: 1001703a wrctl status,r2 + + return context; + efc8: e0bffb17 ldw r2,-20(fp) +static ALT_INLINE int ALT_ALWAYS_INLINE alt_irq_enable (alt_u32 id) +{ + alt_irq_context status; + extern volatile alt_u32 alt_irq_active; + + status = alt_irq_disable_all (); + efcc: e0bffd15 stw r2,-12(fp) + + alt_irq_active |= (1 << id); + efd0: e0fffc17 ldw r3,-16(fp) + efd4: 00800044 movi r2,1 + efd8: 10c4983a sll r2,r2,r3 + efdc: 1007883a mov r3,r2 + efe0: 00800074 movhi r2,1 + efe4: 108f4004 addi r2,r2,15616 + efe8: 10800017 ldw r2,0(r2) + efec: 1886b03a or r3,r3,r2 + eff0: 00800074 movhi r2,1 + eff4: 108f4004 addi r2,r2,15616 + eff8: 10c00015 stw r3,0(r2) + NIOS2_WRITE_IENABLE (alt_irq_active); + effc: 00800074 movhi r2,1 + f000: 108f4004 addi r2,r2,15616 + f004: 10800017 ldw r2,0(r2) + f008: 100170fa wrctl ienable,r2 + f00c: e0bffd17 ldw r2,-12(fp) + f010: e0bffa15 stw r2,-24(fp) + status &= ~NIOS2_STATUS_PIE_MSK; + status |= (context & NIOS2_STATUS_PIE_MSK); + + NIOS2_WRITE_STATUS (status); +#else + NIOS2_WRITE_STATUS (context); + f014: e0bffa17 ldw r2,-24(fp) + f018: 1001703a wrctl status,r2 + + alt_irq_enable_all(status); + + return 0; + f01c: 0005883a mov r2,zero + return alt_irq_enable(irq); +} + f020: e037883a mov sp,fp + f024: df000017 ldw fp,0(sp) + f028: dec00104 addi sp,sp,4 + f02c: f800283a ret + +0000f030 : + * @param ic_id Ignored. + * @param irq IRQ number + * @return 0 if successful, else error (-1) + */ +int alt_ic_irq_disable(alt_u32 ic_id, alt_u32 irq) +{ + f030: defff904 addi sp,sp,-28 + f034: df000615 stw fp,24(sp) + f038: df000604 addi fp,sp,24 + f03c: e13ffe15 stw r4,-8(fp) + f040: e17fff15 stw r5,-4(fp) + f044: e0bfff17 ldw r2,-4(fp) + f048: e0bffc15 stw r2,-16(fp) +static ALT_INLINE alt_irq_context ALT_ALWAYS_INLINE + alt_irq_disable_all (void) +{ + alt_irq_context context; + + NIOS2_READ_STATUS (context); + f04c: 0005303a rdctl r2,status + f050: e0bffb15 stw r2,-20(fp) + + NIOS2_WRITE_STATUS (context & ~NIOS2_STATUS_PIE_MSK); + f054: e0fffb17 ldw r3,-20(fp) + f058: 00bfff84 movi r2,-2 + f05c: 1884703a and r2,r3,r2 + f060: 1001703a wrctl status,r2 + + return context; + f064: e0bffb17 ldw r2,-20(fp) +static ALT_INLINE int ALT_ALWAYS_INLINE alt_irq_disable (alt_u32 id) +{ + alt_irq_context status; + extern volatile alt_u32 alt_irq_active; + + status = alt_irq_disable_all (); + f068: e0bffd15 stw r2,-12(fp) + + alt_irq_active &= ~(1 << id); + f06c: e0fffc17 ldw r3,-16(fp) + f070: 00800044 movi r2,1 + f074: 10c4983a sll r2,r2,r3 + f078: 0084303a nor r2,zero,r2 + f07c: 1007883a mov r3,r2 + f080: 00800074 movhi r2,1 + f084: 108f4004 addi r2,r2,15616 + f088: 10800017 ldw r2,0(r2) + f08c: 1886703a and r3,r3,r2 + f090: 00800074 movhi r2,1 + f094: 108f4004 addi r2,r2,15616 + f098: 10c00015 stw r3,0(r2) + NIOS2_WRITE_IENABLE (alt_irq_active); + f09c: 00800074 movhi r2,1 + f0a0: 108f4004 addi r2,r2,15616 + f0a4: 10800017 ldw r2,0(r2) + f0a8: 100170fa wrctl ienable,r2 + f0ac: e0bffd17 ldw r2,-12(fp) + f0b0: e0bffa15 stw r2,-24(fp) + status &= ~NIOS2_STATUS_PIE_MSK; + status |= (context & NIOS2_STATUS_PIE_MSK); + + NIOS2_WRITE_STATUS (status); +#else + NIOS2_WRITE_STATUS (context); + f0b4: e0bffa17 ldw r2,-24(fp) + f0b8: 1001703a wrctl status,r2 + + alt_irq_enable_all(status); + + return 0; + f0bc: 0005883a mov r2,zero + return alt_irq_disable(irq); +} + f0c0: e037883a mov sp,fp + f0c4: df000017 ldw fp,0(sp) + f0c8: dec00104 addi sp,sp,4 + f0cc: f800283a ret + +0000f0d0 : + * @param irq IRQ number + * @return Zero if corresponding interrupt is disabled and + * non-zero otherwise. + */ +alt_u32 alt_ic_irq_enabled(alt_u32 ic_id, alt_u32 irq) +{ + f0d0: defffc04 addi sp,sp,-16 + f0d4: df000315 stw fp,12(sp) + f0d8: df000304 addi fp,sp,12 + f0dc: e13ffe15 stw r4,-8(fp) + f0e0: e17fff15 stw r5,-4(fp) + alt_u32 irq_enabled; + + NIOS2_READ_IENABLE(irq_enabled); + f0e4: 000530fa rdctl r2,ienable + f0e8: e0bffd15 stw r2,-12(fp) + + return (irq_enabled & (1 << irq)) ? 1: 0; + f0ec: e0ffff17 ldw r3,-4(fp) + f0f0: 00800044 movi r2,1 + f0f4: 10c4983a sll r2,r2,r3 + f0f8: 1007883a mov r3,r2 + f0fc: e0bffd17 ldw r2,-12(fp) + f100: 1884703a and r2,r3,r2 + f104: 1004c03a cmpne r2,r2,zero +} + f108: e037883a mov sp,fp + f10c: df000017 ldw fp,0(sp) + f110: dec00104 addi sp,sp,4 + f114: f800283a ret + +0000f118 : + * @param flags + * @return 0 if successful, else error (-1) + */ +int alt_iic_isr_register(alt_u32 ic_id, alt_u32 irq, alt_isr_func isr, + void *isr_context, void *flags) +{ + f118: defff404 addi sp,sp,-48 + f11c: dfc00b15 stw ra,44(sp) + f120: df000a15 stw fp,40(sp) + f124: df000a04 addi fp,sp,40 + f128: e13ffb15 stw r4,-20(fp) + f12c: e17ffc15 stw r5,-16(fp) + f130: e1bffd15 stw r6,-12(fp) + f134: e1fffe15 stw r7,-8(fp) + int rc = -EINVAL; + f138: 00bffa84 movi r2,-22 + f13c: e0bffa15 stw r2,-24(fp) + int id = irq; /* IRQ interpreted as the interrupt ID. */ + f140: e0bffc17 ldw r2,-16(fp) + f144: e0bff915 stw r2,-28(fp) + alt_irq_context status; + + if (id < ALT_NIRQ) + f148: e0bff917 ldw r2,-28(fp) + f14c: 10800808 cmpgei r2,r2,32 + f150: 1000291e bne r2,zero,f1f8 +static ALT_INLINE alt_irq_context ALT_ALWAYS_INLINE + alt_irq_disable_all (void) +{ + alt_irq_context context; + + NIOS2_READ_STATUS (context); + f154: 0005303a rdctl r2,status + f158: e0bff715 stw r2,-36(fp) + + NIOS2_WRITE_STATUS (context & ~NIOS2_STATUS_PIE_MSK); + f15c: e0fff717 ldw r3,-36(fp) + f160: 00bfff84 movi r2,-2 + f164: 1884703a and r2,r3,r2 + f168: 1001703a wrctl status,r2 + + return context; + f16c: e0bff717 ldw r2,-36(fp) + * interrupts are disabled while the handler tables are updated to ensure + * that an interrupt doesn't occur while the tables are in an inconsistant + * state. + */ + + status = alt_irq_disable_all(); + f170: e0bff815 stw r2,-32(fp) + + alt_irq[id].handler = isr; + f174: e0bff917 ldw r2,-28(fp) + f178: 00c00074 movhi r3,1 + f17c: 18d09104 addi r3,r3,16964 + f180: 100490fa slli r2,r2,3 + f184: 10c7883a add r3,r2,r3 + f188: e0bffd17 ldw r2,-12(fp) + f18c: 18800015 stw r2,0(r3) + alt_irq[id].context = isr_context; + f190: e0bff917 ldw r2,-28(fp) + f194: 00c00074 movhi r3,1 + f198: 18d09104 addi r3,r3,16964 + f19c: 100490fa slli r2,r2,3 + f1a0: 10c5883a add r2,r2,r3 + f1a4: 10c00104 addi r3,r2,4 + f1a8: e0bffe17 ldw r2,-8(fp) + f1ac: 18800015 stw r2,0(r3) + + rc = (isr) ? alt_ic_irq_enable(ic_id, id) : alt_ic_irq_disable(ic_id, id); + f1b0: e0bffd17 ldw r2,-12(fp) + f1b4: 1005003a cmpeq r2,r2,zero + f1b8: 1000051e bne r2,zero,f1d0 + f1bc: e17ff917 ldw r5,-28(fp) + f1c0: e13ffb17 ldw r4,-20(fp) + f1c4: 000ef940 call ef94 + f1c8: e0bfff15 stw r2,-4(fp) + f1cc: 00000406 br f1e0 + f1d0: e17ff917 ldw r5,-28(fp) + f1d4: e13ffb17 ldw r4,-20(fp) + f1d8: 000f0300 call f030 + f1dc: e0bfff15 stw r2,-4(fp) + f1e0: e0bfff17 ldw r2,-4(fp) + f1e4: e0bffa15 stw r2,-24(fp) + f1e8: e0bff817 ldw r2,-32(fp) + f1ec: e0bff615 stw r2,-40(fp) + status &= ~NIOS2_STATUS_PIE_MSK; + status |= (context & NIOS2_STATUS_PIE_MSK); + + NIOS2_WRITE_STATUS (status); +#else + NIOS2_WRITE_STATUS (context); + f1f0: e0bff617 ldw r2,-40(fp) + f1f4: 1001703a wrctl status,r2 + + alt_irq_enable_all(status); + } + + return rc; + f1f8: e0bffa17 ldw r2,-24(fp) +} + f1fc: e037883a mov sp,fp + f200: dfc00117 ldw ra,4(sp) + f204: df000017 ldw fp,0(sp) + f208: dec00204 addi sp,sp,8 + f20c: f800283a ret + +0000f210 : + * If the device can not be succesfully opened, then the input file descriptor + * remains unchanged. + */ + +static void alt_open_fd(alt_fd* fd, const char* name, int flags, int mode) +{ + f210: defff804 addi sp,sp,-32 + f214: dfc00715 stw ra,28(sp) + f218: df000615 stw fp,24(sp) + f21c: dc000515 stw r16,20(sp) + f220: df000504 addi fp,sp,20 + f224: e13ffc15 stw r4,-16(fp) + f228: e17ffd15 stw r5,-12(fp) + f22c: e1bffe15 stw r6,-8(fp) + f230: e1ffff15 stw r7,-4(fp) + int old; + + old = open (name, flags, mode); + f234: e13ffd17 ldw r4,-12(fp) + f238: e17ffe17 ldw r5,-8(fp) + f23c: e1bfff17 ldw r6,-4(fp) + f240: 000f4580 call f458 + f244: e0bffb15 stw r2,-20(fp) + + if (old >= 0) + f248: e0bffb17 ldw r2,-20(fp) + f24c: 1004803a cmplt r2,r2,zero + f250: 10001f1e bne r2,zero,f2d0 + { + fd->dev = alt_fd_list[old].dev; + f254: e13ffb17 ldw r4,-20(fp) + f258: 04000074 movhi r16,1 + f25c: 84037c04 addi r16,r16,3568 + f260: 01400304 movi r5,12 + f264: 0002b2c0 call 2b2c <__mulsi3> + f268: 1405883a add r2,r2,r16 + f26c: 10c00017 ldw r3,0(r2) + f270: e0bffc17 ldw r2,-16(fp) + f274: 10c00015 stw r3,0(r2) + fd->priv = alt_fd_list[old].priv; + f278: e13ffb17 ldw r4,-20(fp) + f27c: 04000074 movhi r16,1 + f280: 84037c04 addi r16,r16,3568 + f284: 01400304 movi r5,12 + f288: 0002b2c0 call 2b2c <__mulsi3> + f28c: 1405883a add r2,r2,r16 + f290: 10800104 addi r2,r2,4 + f294: 10c00017 ldw r3,0(r2) + f298: e0bffc17 ldw r2,-16(fp) + f29c: 10c00115 stw r3,4(r2) + fd->fd_flags = alt_fd_list[old].fd_flags; + f2a0: e13ffb17 ldw r4,-20(fp) + f2a4: 04000074 movhi r16,1 + f2a8: 84037c04 addi r16,r16,3568 + f2ac: 01400304 movi r5,12 + f2b0: 0002b2c0 call 2b2c <__mulsi3> + f2b4: 1405883a add r2,r2,r16 + f2b8: 10800204 addi r2,r2,8 + f2bc: 10c00017 ldw r3,0(r2) + f2c0: e0bffc17 ldw r2,-16(fp) + f2c4: 10c00215 stw r3,8(r2) + + alt_release_fd (old); + f2c8: e13ffb17 ldw r4,-20(fp) + f2cc: 000cc4c0 call cc4c + } +} + f2d0: e037883a mov sp,fp + f2d4: dfc00217 ldw ra,8(sp) + f2d8: df000117 ldw fp,4(sp) + f2dc: dc000017 ldw r16,0(sp) + f2e0: dec00304 addi sp,sp,12 + f2e4: f800283a ret + +0000f2e8 : + */ + +void alt_io_redirect(const char* stdout_dev, + const char* stdin_dev, + const char* stderr_dev) +{ + f2e8: defffb04 addi sp,sp,-20 + f2ec: dfc00415 stw ra,16(sp) + f2f0: df000315 stw fp,12(sp) + f2f4: df000304 addi fp,sp,12 + f2f8: e13ffd15 stw r4,-12(fp) + f2fc: e17ffe15 stw r5,-8(fp) + f300: e1bfff15 stw r6,-4(fp) + /* Redirect the channels */ + + alt_open_fd (&alt_fd_list[STDOUT_FILENO], stdout_dev, O_WRONLY, 0777); + f304: 01000074 movhi r4,1 + f308: 21037f04 addi r4,r4,3580 + f30c: e17ffd17 ldw r5,-12(fp) + f310: 01800044 movi r6,1 + f314: 01c07fc4 movi r7,511 + f318: 000f2100 call f210 + alt_open_fd (&alt_fd_list[STDIN_FILENO], stdin_dev, O_RDONLY, 0777); + f31c: 01000074 movhi r4,1 + f320: 21037c04 addi r4,r4,3568 + f324: e17ffe17 ldw r5,-8(fp) + f328: 000d883a mov r6,zero + f32c: 01c07fc4 movi r7,511 + f330: 000f2100 call f210 + alt_open_fd (&alt_fd_list[STDERR_FILENO], stderr_dev, O_WRONLY, 0777); + f334: 01000074 movhi r4,1 + f338: 21038204 addi r4,r4,3592 + f33c: e17fff17 ldw r5,-4(fp) + f340: 01800044 movi r6,1 + f344: 01c07fc4 movi r7,511 + f348: 000f2100 call f210 +} + f34c: e037883a mov sp,fp + f350: dfc00117 ldw ra,4(sp) + f354: df000017 ldw fp,0(sp) + f358: dec00204 addi sp,sp,8 + f35c: f800283a ret + +0000f360 : + * performed for devices. Filesystems are required to handle the ioctl() call + * themselves, and report the error from the filesystems open() function. + */ + +static int alt_file_locked (alt_fd* fd) +{ + f360: defffa04 addi sp,sp,-24 + f364: dfc00515 stw ra,20(sp) + f368: df000415 stw fp,16(sp) + f36c: dc000315 stw r16,12(sp) + f370: df000304 addi fp,sp,12 + f374: e13ffe15 stw r4,-8(fp) + + /* + * Mark the file descriptor as belonging to a device. + */ + + fd->fd_flags |= ALT_FD_DEV; + f378: e0bffe17 ldw r2,-8(fp) + f37c: 10800217 ldw r2,8(r2) + f380: 10d00034 orhi r3,r2,16384 + f384: e0bffe17 ldw r2,-8(fp) + f388: 10c00215 stw r3,8(r2) + /* + * Loop through all current file descriptors searching for one that's locked + * for exclusive access. If a match is found, generate an error. + */ + + for (i = 0; i <= alt_max_fd; i++) + f38c: e03ffd15 stw zero,-12(fp) + f390: 00002306 br f420 + { + if ((alt_fd_list[i].dev == fd->dev) && + f394: e13ffd17 ldw r4,-12(fp) + f398: 04000074 movhi r16,1 + f39c: 84037c04 addi r16,r16,3568 + f3a0: 01400304 movi r5,12 + f3a4: 0002b2c0 call 2b2c <__mulsi3> + f3a8: 1405883a add r2,r2,r16 + f3ac: 10c00017 ldw r3,0(r2) + f3b0: e0bffe17 ldw r2,-8(fp) + f3b4: 10800017 ldw r2,0(r2) + f3b8: 1880161e bne r3,r2,f414 + f3bc: e13ffd17 ldw r4,-12(fp) + f3c0: 04000074 movhi r16,1 + f3c4: 84037c04 addi r16,r16,3568 + f3c8: 01400304 movi r5,12 + f3cc: 0002b2c0 call 2b2c <__mulsi3> + f3d0: 1405883a add r2,r2,r16 + f3d4: 10800204 addi r2,r2,8 + f3d8: 10800017 ldw r2,0(r2) + f3dc: 1004403a cmpge r2,r2,zero + f3e0: 10000c1e bne r2,zero,f414 + f3e4: e13ffd17 ldw r4,-12(fp) + f3e8: 01400304 movi r5,12 + f3ec: 0002b2c0 call 2b2c <__mulsi3> + f3f0: 1007883a mov r3,r2 + f3f4: 00800074 movhi r2,1 + f3f8: 10837c04 addi r2,r2,3568 + f3fc: 1887883a add r3,r3,r2 + f400: e0bffe17 ldw r2,-8(fp) + f404: 18800326 beq r3,r2,f414 + (alt_fd_list[i].fd_flags & ALT_FD_EXCL) && + (&alt_fd_list[i] != fd)) + { + return -EACCES; + f408: 00bffcc4 movi r2,-13 + f40c: e0bfff15 stw r2,-4(fp) + f410: 00000a06 br f43c + /* + * Loop through all current file descriptors searching for one that's locked + * for exclusive access. If a match is found, generate an error. + */ + + for (i = 0; i <= alt_max_fd; i++) + f414: e0bffd17 ldw r2,-12(fp) + f418: 10800044 addi r2,r2,1 + f41c: e0bffd15 stw r2,-12(fp) + f420: 00800074 movhi r2,1 + f424: 10884804 addi r2,r2,8480 + f428: 10800017 ldw r2,0(r2) + f42c: 1007883a mov r3,r2 + f430: e0bffd17 ldw r2,-12(fp) + f434: 18bfd72e bgeu r3,r2,f394 + } + } + + /* The device is not locked */ + + return 0; + f438: e03fff15 stw zero,-4(fp) + f43c: e0bfff17 ldw r2,-4(fp) +} + f440: e037883a mov sp,fp + f444: dfc00217 ldw ra,8(sp) + f448: df000117 ldw fp,4(sp) + f44c: dc000017 ldw r16,0(sp) + f450: dec00304 addi sp,sp,12 + f454: f800283a ret + +0000f458 : + * + * ALT_OPEN is mapped onto the open() system call in alt_syscall.h + */ + +int ALT_OPEN (const char* file, int flags, int mode) +{ + f458: defff404 addi sp,sp,-48 + f45c: dfc00b15 stw ra,44(sp) + f460: df000a15 stw fp,40(sp) + f464: df000a04 addi fp,sp,40 + f468: e13ffb15 stw r4,-20(fp) + f46c: e17ffc15 stw r5,-16(fp) + f470: e1bffd15 stw r6,-12(fp) + alt_dev* dev; + alt_fd* fd; + int index = -1; + f474: 00bfffc4 movi r2,-1 + f478: e0bff815 stw r2,-32(fp) + int status = -ENODEV; + f47c: 00bffb44 movi r2,-19 + f480: e0bff715 stw r2,-36(fp) + int isafs = 0; + f484: e03ff615 stw zero,-40(fp) + /* + * Check the device list, to see if a device with a matching name is + * registered. + */ + + if (!(dev = alt_find_dev (file, &alt_dev_list))) + f488: e13ffb17 ldw r4,-20(fp) + f48c: 01400074 movhi r5,1 + f490: 29484604 addi r5,r5,8472 + f494: 000f8080 call f808 + f498: e0bffa15 stw r2,-24(fp) + f49c: e0bffa17 ldw r2,-24(fp) + f4a0: 1004c03a cmpne r2,r2,zero + f4a4: 1000051e bne r2,zero,f4bc + { + /* No matching device, so try the filesystem list */ + + dev = alt_find_file (file); + f4a8: e13ffb17 ldw r4,-20(fp) + f4ac: 000f89c0 call f89c + f4b0: e0bffa15 stw r2,-24(fp) + isafs = 1; + f4b4: 00800044 movi r2,1 + f4b8: e0bff615 stw r2,-40(fp) + + /* + * If a matching device or filesystem is found, allocate a file descriptor. + */ + + if (dev) + f4bc: e0bffa17 ldw r2,-24(fp) + f4c0: 1005003a cmpeq r2,r2,zero + f4c4: 1000311e bne r2,zero,f58c + { + if ((index = alt_get_fd (dev)) < 0) + f4c8: e13ffa17 ldw r4,-24(fp) + f4cc: 000f9bc0 call f9bc + f4d0: e0bff815 stw r2,-32(fp) + f4d4: e0bff817 ldw r2,-32(fp) + f4d8: 1004403a cmpge r2,r2,zero + f4dc: 1000031e bne r2,zero,f4ec + { + status = index; + f4e0: e0bff817 ldw r2,-32(fp) + f4e4: e0bff715 stw r2,-36(fp) + f4e8: 00002a06 br f594 + } + else + { + fd = &alt_fd_list[index]; + f4ec: e13ff817 ldw r4,-32(fp) + f4f0: 01400304 movi r5,12 + f4f4: 0002b2c0 call 2b2c <__mulsi3> + f4f8: 1007883a mov r3,r2 + f4fc: 00800074 movhi r2,1 + f500: 10837c04 addi r2,r2,3568 + f504: 1885883a add r2,r3,r2 + f508: e0bff915 stw r2,-28(fp) + fd->fd_flags = (flags & ~ALT_FD_FLAGS_MASK); + f50c: e0fffc17 ldw r3,-16(fp) + f510: 00900034 movhi r2,16384 + f514: 10bfffc4 addi r2,r2,-1 + f518: 1886703a and r3,r3,r2 + f51c: e0bff917 ldw r2,-28(fp) + f520: 10c00215 stw r3,8(r2) + + /* If this is a device, ensure it isn't already locked */ + + if (isafs || ((status = alt_file_locked (fd)) >= 0)) + f524: e0bff617 ldw r2,-40(fp) + f528: 1004c03a cmpne r2,r2,zero + f52c: 1000061e bne r2,zero,f548 + f530: e13ff917 ldw r4,-28(fp) + f534: 000f3600 call f360 + f538: e0bff715 stw r2,-36(fp) + f53c: e0bff717 ldw r2,-36(fp) + f540: 1004803a cmplt r2,r2,zero + f544: 1000131e bne r2,zero,f594 + /* + * If the device or filesystem provides an open() callback function, + * call it now to perform any device/filesystem specific operations. + */ + + status = (dev->open) ? dev->open(fd, file, flags, mode): 0; + f548: e0bffa17 ldw r2,-24(fp) + f54c: 10800317 ldw r2,12(r2) + f550: 1005003a cmpeq r2,r2,zero + f554: 1000091e bne r2,zero,f57c + f558: e0bffa17 ldw r2,-24(fp) + f55c: 10800317 ldw r2,12(r2) + f560: e13ff917 ldw r4,-28(fp) + f564: e17ffb17 ldw r5,-20(fp) + f568: e1bffc17 ldw r6,-16(fp) + f56c: e1fffd17 ldw r7,-12(fp) + f570: 103ee83a callr r2 + f574: e0bfff15 stw r2,-4(fp) + f578: 00000106 br f580 + f57c: e03fff15 stw zero,-4(fp) + f580: e0bfff17 ldw r2,-4(fp) + f584: e0bff715 stw r2,-36(fp) + f588: 00000206 br f594 + } + } + } + else + { + status = -ENODEV; + f58c: 00bffb44 movi r2,-19 + f590: e0bff715 stw r2,-36(fp) + } + + /* Allocation failed, so clean up and return an error */ + + if (status < 0) + f594: e0bff717 ldw r2,-36(fp) + f598: 1004403a cmpge r2,r2,zero + f59c: 1000091e bne r2,zero,f5c4 + { + alt_release_fd (index); + f5a0: e13ff817 ldw r4,-32(fp) + f5a4: 000cc4c0 call cc4c + ALT_ERRNO = -status; + f5a8: 000f5e40 call f5e4 + f5ac: e0fff717 ldw r3,-36(fp) + f5b0: 00c7c83a sub r3,zero,r3 + f5b4: 10c00015 stw r3,0(r2) + return -1; + f5b8: 00bfffc4 movi r2,-1 + f5bc: e0bffe15 stw r2,-8(fp) + f5c0: 00000206 br f5cc + } + + /* return the reference upon success */ + + return index; + f5c4: e0bff817 ldw r2,-32(fp) + f5c8: e0bffe15 stw r2,-8(fp) + f5cc: e0bffe17 ldw r2,-8(fp) +} + f5d0: e037883a mov sp,fp + f5d4: dfc00117 ldw ra,4(sp) + f5d8: df000017 ldw fp,0(sp) + f5dc: dec00204 addi sp,sp,8 + f5e0: f800283a ret + +0000f5e4 : +#undef errno + +extern int errno; + +static ALT_INLINE int* alt_get_errno(void) +{ + f5e4: defffd04 addi sp,sp,-12 + f5e8: dfc00215 stw ra,8(sp) + f5ec: df000115 stw fp,4(sp) + f5f0: df000104 addi fp,sp,4 + return ((alt_errno) ? alt_errno() : &errno); + f5f4: 00800074 movhi r2,1 + f5f8: 10884904 addi r2,r2,8484 + f5fc: 10800017 ldw r2,0(r2) + f600: 1005003a cmpeq r2,r2,zero + f604: 1000061e bne r2,zero,f620 + f608: 00800074 movhi r2,1 + f60c: 10884904 addi r2,r2,8484 + f610: 10800017 ldw r2,0(r2) + f614: 103ee83a callr r2 + f618: e0bfff15 stw r2,-4(fp) + f61c: 00000306 br f62c + f620: 00800074 movhi r2,1 + f624: 108f3c04 addi r2,r2,15600 + f628: e0bfff15 stw r2,-4(fp) + f62c: e0bfff17 ldw r2,-4(fp) +} + f630: e037883a mov sp,fp + f634: dfc00117 ldw ra,4(sp) + f638: df000017 ldw fp,0(sp) + f63c: dec00204 addi sp,sp,8 + f640: f800283a ret + +0000f644 : + * alarms. Alternatively an alarm can unregister itself by returning zero when + * the alarm executes. + */ + +void alt_alarm_stop (alt_alarm* alarm) +{ + f644: defffa04 addi sp,sp,-24 + f648: df000515 stw fp,20(sp) + f64c: df000504 addi fp,sp,20 + f650: e13fff15 stw r4,-4(fp) +static ALT_INLINE alt_irq_context ALT_ALWAYS_INLINE + alt_irq_disable_all (void) +{ + alt_irq_context context; + + NIOS2_READ_STATUS (context); + f654: 0005303a rdctl r2,status + f658: e0bffd15 stw r2,-12(fp) + + NIOS2_WRITE_STATUS (context & ~NIOS2_STATUS_PIE_MSK); + f65c: e0fffd17 ldw r3,-12(fp) + f660: 00bfff84 movi r2,-2 + f664: 1884703a and r2,r3,r2 + f668: 1001703a wrctl status,r2 + + return context; + f66c: e0bffd17 ldw r2,-12(fp) + alt_irq_context irq_context; + + irq_context = alt_irq_disable_all(); + f670: e0bffe15 stw r2,-8(fp) + alt_llist_remove (&alarm->llist); + f674: e0bfff17 ldw r2,-4(fp) + f678: e0bffc15 stw r2,-16(fp) + * input argument is the element to remove. + */ + +static ALT_INLINE void ALT_ALWAYS_INLINE alt_llist_remove(alt_llist* entry) +{ + entry->next->previous = entry->previous; + f67c: e0bffc17 ldw r2,-16(fp) + f680: 10c00017 ldw r3,0(r2) + f684: e0bffc17 ldw r2,-16(fp) + f688: 10800117 ldw r2,4(r2) + f68c: 18800115 stw r2,4(r3) + entry->previous->next = entry->next; + f690: e0bffc17 ldw r2,-16(fp) + f694: 10c00117 ldw r3,4(r2) + f698: e0bffc17 ldw r2,-16(fp) + f69c: 10800017 ldw r2,0(r2) + f6a0: 18800015 stw r2,0(r3) + /* + * Set the entry to point to itself, so that any further calls to + * alt_llist_remove() are harmless. + */ + + entry->previous = entry; + f6a4: e0fffc17 ldw r3,-16(fp) + f6a8: e0bffc17 ldw r2,-16(fp) + f6ac: 18800115 stw r2,4(r3) + entry->next = entry; + f6b0: e0fffc17 ldw r3,-16(fp) + f6b4: e0bffc17 ldw r2,-16(fp) + f6b8: 18800015 stw r2,0(r3) + f6bc: e0bffe17 ldw r2,-8(fp) + f6c0: e0bffb15 stw r2,-20(fp) + status &= ~NIOS2_STATUS_PIE_MSK; + status |= (context & NIOS2_STATUS_PIE_MSK); + + NIOS2_WRITE_STATUS (status); +#else + NIOS2_WRITE_STATUS (context); + f6c4: e0bffb17 ldw r2,-20(fp) + f6c8: 1001703a wrctl status,r2 + alt_irq_enable_all (irq_context); +} + f6cc: e037883a mov sp,fp + f6d0: df000017 ldw fp,0(sp) + f6d4: dec00104 addi sp,sp,4 + f6d8: f800283a ret + +0000f6dc : + * + * alt_tick() is expected to run at interrupt level. + */ + +void alt_tick (void) +{ + f6dc: defffb04 addi sp,sp,-20 + f6e0: dfc00415 stw ra,16(sp) + f6e4: df000315 stw fp,12(sp) + f6e8: df000304 addi fp,sp,12 + alt_alarm* next; + alt_alarm* alarm = (alt_alarm*) alt_alarm_list.next; + f6ec: d0a01117 ldw r2,-32700(gp) + f6f0: e0bffe15 stw r2,-8(fp) + + alt_u32 next_callback; + + /* update the tick counter */ + + _alt_nticks++; + f6f4: d0a70617 ldw r2,-25576(gp) + f6f8: 10800044 addi r2,r2,1 + f6fc: d0a70615 stw r2,-25576(gp) + + /* process the registered callbacks */ + + while (alarm != (alt_alarm*) &alt_alarm_list) + f700: 00003106 br f7c8 + { + next = (alt_alarm*) alarm->llist.next; + f704: e0bffe17 ldw r2,-8(fp) + f708: 10800017 ldw r2,0(r2) + f70c: e0bfff15 stw r2,-4(fp) + /* + * Upon the tick-counter rolling over it is safe to clear the + * roll-over flag; once the flag is cleared this (or subsequnt) + * tick events are enabled to generate an alarm event. + */ + if ((alarm->rollover) && (_alt_nticks == 0)) + f710: e0bffe17 ldw r2,-8(fp) + f714: 10800403 ldbu r2,16(r2) + f718: 10803fcc andi r2,r2,255 + f71c: 1005003a cmpeq r2,r2,zero + f720: 1000051e bne r2,zero,f738 + f724: d0a70617 ldw r2,-25576(gp) + f728: 1004c03a cmpne r2,r2,zero + f72c: 1000021e bne r2,zero,f738 + { + alarm->rollover = 0; + f730: e0bffe17 ldw r2,-8(fp) + f734: 10000405 stb zero,16(r2) + } + + /* if the alarm period has expired, make the callback */ + if ((alarm->time <= _alt_nticks) && (alarm->rollover == 0)) + f738: e0bffe17 ldw r2,-8(fp) + f73c: 10c00217 ldw r3,8(r2) + f740: d0a70617 ldw r2,-25576(gp) + f744: 10c01e36 bltu r2,r3,f7c0 + f748: e0bffe17 ldw r2,-8(fp) + f74c: 10800403 ldbu r2,16(r2) + f750: 10803fcc andi r2,r2,255 + f754: 1004c03a cmpne r2,r2,zero + f758: 1000191e bne r2,zero,f7c0 + { + next_callback = alarm->callback (alarm->context); + f75c: e0bffe17 ldw r2,-8(fp) + f760: 10c00317 ldw r3,12(r2) + f764: e0bffe17 ldw r2,-8(fp) + f768: 11000517 ldw r4,20(r2) + f76c: 183ee83a callr r3 + f770: e0bffd15 stw r2,-12(fp) + + /* deactivate the alarm if the return value is zero */ + + if (next_callback == 0) + f774: e0bffd17 ldw r2,-12(fp) + f778: 1004c03a cmpne r2,r2,zero + f77c: 1000031e bne r2,zero,f78c + { + alt_alarm_stop (alarm); + f780: e13ffe17 ldw r4,-8(fp) + f784: 000f6440 call f644 + f788: 00000d06 br f7c0 + } + else + { + alarm->time += next_callback; + f78c: e0bffe17 ldw r2,-8(fp) + f790: 10c00217 ldw r3,8(r2) + f794: e0bffd17 ldw r2,-12(fp) + f798: 1887883a add r3,r3,r2 + f79c: e0bffe17 ldw r2,-8(fp) + f7a0: 10c00215 stw r3,8(r2) + /* + * If the desired alarm time causes a roll-over, set the rollover + * flag. This will prevent the subsequent tick event from causing + * an alarm too early. + */ + if(alarm->time < _alt_nticks) + f7a4: e0bffe17 ldw r2,-8(fp) + f7a8: 10c00217 ldw r3,8(r2) + f7ac: d0a70617 ldw r2,-25576(gp) + f7b0: 1880032e bgeu r3,r2,f7c0 + { + alarm->rollover = 1; + f7b4: e0fffe17 ldw r3,-8(fp) + f7b8: 00800044 movi r2,1 + f7bc: 18800405 stb r2,16(r3) + } + } + } + alarm = next; + f7c0: e0bfff17 ldw r2,-4(fp) + f7c4: e0bffe15 stw r2,-8(fp) + + _alt_nticks++; + + /* process the registered callbacks */ + + while (alarm != (alt_alarm*) &alt_alarm_list) + f7c8: d0e01104 addi r3,gp,-32700 + f7cc: e0bffe17 ldw r2,-8(fp) + f7d0: 10ffcc1e bne r2,r3,f704 + /* + * Update the operating system specific timer facilities. + */ + + ALT_OS_TIME_TICK(); +} + f7d4: e037883a mov sp,fp + f7d8: dfc00117 ldw ra,4(sp) + f7dc: df000017 ldw fp,0(sp) + f7e0: dec00204 addi sp,sp,8 + f7e4: f800283a ret + +0000f7e8 : +/* + * To initialize the internal interrupt controller, just clear the IENABLE + * register so that all possible IRQs are disabled. + */ +void altera_nios2_qsys_irq_init(void) +{ + f7e8: deffff04 addi sp,sp,-4 + f7ec: df000015 stw fp,0(sp) + f7f0: d839883a mov fp,sp + NIOS2_WRITE_IENABLE(0); + f7f4: 000170fa wrctl ienable,zero +} + f7f8: e037883a mov sp,fp + f7fc: df000017 ldw fp,0(sp) + f800: dec00104 addi sp,sp,4 + f804: f800283a ret + +0000f808 : + * "name" must be an exact match for the devices registered name for a match to + * be found. + */ + +alt_dev* alt_find_dev(const char* name, alt_llist* llist) +{ + f808: defff904 addi sp,sp,-28 + f80c: dfc00615 stw ra,24(sp) + f810: df000515 stw fp,20(sp) + f814: df000504 addi fp,sp,20 + f818: e13ffd15 stw r4,-12(fp) + f81c: e17ffe15 stw r5,-8(fp) + alt_dev* next = (alt_dev*) llist->next; + f820: e0bffe17 ldw r2,-8(fp) + f824: 10800017 ldw r2,0(r2) + f828: e0bffc15 stw r2,-16(fp) + alt_32 len; + + len = strlen(name) + 1; + f82c: e13ffd17 ldw r4,-12(fp) + f830: 0002c380 call 2c38 + f834: 10800044 addi r2,r2,1 + f838: e0bffb15 stw r2,-20(fp) + /* + * Check each list entry in turn, until a match is found, or we reach the + * end of the list (i.e. next winds up pointing back to the list head). + */ + + while (next != (alt_dev*) llist) + f83c: 00000d06 br f874 + /* + * memcmp() is used here rather than strcmp() in order to reduce the size + * of the executable. + */ + + if (!memcmp (next->name, name, len)) + f840: e0bffc17 ldw r2,-16(fp) + f844: 11000217 ldw r4,8(r2) + f848: e1bffb17 ldw r6,-20(fp) + f84c: e17ffd17 ldw r5,-12(fp) + f850: 000fad80 call fad8 + f854: 1004c03a cmpne r2,r2,zero + f858: 1000031e bne r2,zero,f868 + { + /* match found */ + + return next; + f85c: e0bffc17 ldw r2,-16(fp) + f860: e0bfff15 stw r2,-4(fp) + f864: 00000706 br f884 + } + next = (alt_dev*) next->llist.next; + f868: e0bffc17 ldw r2,-16(fp) + f86c: 10800017 ldw r2,0(r2) + f870: e0bffc15 stw r2,-16(fp) + /* + * Check each list entry in turn, until a match is found, or we reach the + * end of the list (i.e. next winds up pointing back to the list head). + */ + + while (next != (alt_dev*) llist) + f874: e0fffe17 ldw r3,-8(fp) + f878: e0bffc17 ldw r2,-16(fp) + f87c: 10fff01e bne r2,r3,f840 + next = (alt_dev*) next->llist.next; + } + + /* No match found */ + + return NULL; + f880: e03fff15 stw zero,-4(fp) + f884: e0bfff17 ldw r2,-4(fp) +} + f888: e037883a mov sp,fp + f88c: dfc00117 ldw ra,4(sp) + f890: df000017 ldw fp,0(sp) + f894: dec00204 addi sp,sp,8 + f898: f800283a ret + +0000f89c : + * either '/' or '\0' is the prefix of the filename. For example the filename: + * "/myfilesystem/junk.txt" would match: "/myfilesystem", but not: "/myfile". + */ + +alt_dev* alt_find_file (const char* name) +{ + f89c: defffa04 addi sp,sp,-24 + f8a0: dfc00515 stw ra,20(sp) + f8a4: df000415 stw fp,16(sp) + f8a8: df000404 addi fp,sp,16 + f8ac: e13ffe15 stw r4,-8(fp) + alt_dev* next = (alt_dev*) alt_fs_list.next; + f8b0: 00800074 movhi r2,1 + f8b4: 10884404 addi r2,r2,8464 + f8b8: 10800017 ldw r2,0(r2) + f8bc: e0bffd15 stw r2,-12(fp) + /* + * Check each list entry in turn, until a match is found, or we reach the + * end of the list (i.e. next winds up pointing back to the list head). + */ + + while (next != (alt_dev*) &alt_fs_list) + f8c0: 00003306 br f990 + { + len = strlen(next->name); + f8c4: e0bffd17 ldw r2,-12(fp) + f8c8: 11000217 ldw r4,8(r2) + f8cc: 0002c380 call 2c38 + f8d0: e0bffc15 stw r2,-16(fp) + + if (next->name[len-1] == '/') + f8d4: e0bffd17 ldw r2,-12(fp) + f8d8: 10c00217 ldw r3,8(r2) + f8dc: e0bffc17 ldw r2,-16(fp) + f8e0: 1885883a add r2,r3,r2 + f8e4: 10bfffc4 addi r2,r2,-1 + f8e8: 10800003 ldbu r2,0(r2) + f8ec: 10803fcc andi r2,r2,255 + f8f0: 1080201c xori r2,r2,128 + f8f4: 10bfe004 addi r2,r2,-128 + f8f8: 10800bd8 cmpnei r2,r2,47 + f8fc: 1000031e bne r2,zero,f90c + { + len -= 1; + f900: e0bffc17 ldw r2,-16(fp) + f904: 10bfffc4 addi r2,r2,-1 + f908: e0bffc15 stw r2,-16(fp) + } + + if (((name[len] == '/') || (name[len] == '\0')) && + f90c: e0bffc17 ldw r2,-16(fp) + f910: 1007883a mov r3,r2 + f914: e0bffe17 ldw r2,-8(fp) + f918: 1885883a add r2,r3,r2 + f91c: 10800003 ldbu r2,0(r2) + f920: 10803fcc andi r2,r2,255 + f924: 1080201c xori r2,r2,128 + f928: 10bfe004 addi r2,r2,-128 + f92c: 10800be0 cmpeqi r2,r2,47 + f930: 10000a1e bne r2,zero,f95c + f934: e0bffc17 ldw r2,-16(fp) + f938: 1007883a mov r3,r2 + f93c: e0bffe17 ldw r2,-8(fp) + f940: 1885883a add r2,r3,r2 + f944: 10800003 ldbu r2,0(r2) + f948: 10803fcc andi r2,r2,255 + f94c: 1080201c xori r2,r2,128 + f950: 10bfe004 addi r2,r2,-128 + f954: 1004c03a cmpne r2,r2,zero + f958: 10000a1e bne r2,zero,f984 + f95c: e0bffd17 ldw r2,-12(fp) + f960: 11000217 ldw r4,8(r2) + f964: e1bffc17 ldw r6,-16(fp) + f968: e17ffe17 ldw r5,-8(fp) + f96c: 000fad80 call fad8 + f970: 1004c03a cmpne r2,r2,zero + f974: 1000031e bne r2,zero,f984 + !memcmp (next->name, name, len)) + { + /* match found */ + + return next; + f978: e0bffd17 ldw r2,-12(fp) + f97c: e0bfff15 stw r2,-4(fp) + f980: 00000806 br f9a4 + } + next = (alt_dev*) next->llist.next; + f984: e0bffd17 ldw r2,-12(fp) + f988: 10800017 ldw r2,0(r2) + f98c: e0bffd15 stw r2,-12(fp) + /* + * Check each list entry in turn, until a match is found, or we reach the + * end of the list (i.e. next winds up pointing back to the list head). + */ + + while (next != (alt_dev*) &alt_fs_list) + f990: 00c00074 movhi r3,1 + f994: 18c84404 addi r3,r3,8464 + f998: e0bffd17 ldw r2,-12(fp) + f99c: 10ffc91e bne r2,r3,f8c4 + next = (alt_dev*) next->llist.next; + } + + /* No match found */ + + return NULL; + f9a0: e03fff15 stw zero,-4(fp) + f9a4: e0bfff17 ldw r2,-4(fp) +} + f9a8: e037883a mov sp,fp + f9ac: dfc00117 ldw ra,4(sp) + f9b0: df000017 ldw fp,0(sp) + f9b4: dec00204 addi sp,sp,8 + f9b8: f800283a ret + +0000f9bc : + * the offset of the file descriptor within the file descriptor array). A + * negative value indicates failure. + */ + +int alt_get_fd (alt_dev* dev) +{ + f9bc: defffa04 addi sp,sp,-24 + f9c0: dfc00515 stw ra,20(sp) + f9c4: df000415 stw fp,16(sp) + f9c8: dc000315 stw r16,12(sp) + f9cc: df000304 addi fp,sp,12 + f9d0: e13fff15 stw r4,-4(fp) + alt_32 i; + int rc = -EMFILE; + f9d4: 00bffa04 movi r2,-24 + f9d8: e0bffd15 stw r2,-12(fp) + * indicates the highest file descriptor ever allocated. This is used to + * improve efficency when searching the file descriptor list, and + * therefore reduce contention on the alt_fd_list_lock semaphore. + */ + + for (i = 0; i < ALT_MAX_FD; i++) + f9dc: e03ffe15 stw zero,-8(fp) + f9e0: 00002006 br fa64 + { + if (!alt_fd_list[i].dev) + f9e4: e13ffe17 ldw r4,-8(fp) + f9e8: 04000074 movhi r16,1 + f9ec: 84037c04 addi r16,r16,3568 + f9f0: 01400304 movi r5,12 + f9f4: 0002b2c0 call 2b2c <__mulsi3> + f9f8: 1405883a add r2,r2,r16 + f9fc: 10800017 ldw r2,0(r2) + fa00: 1004c03a cmpne r2,r2,zero + fa04: 1000141e bne r2,zero,fa58 + { + alt_fd_list[i].dev = dev; + fa08: e13ffe17 ldw r4,-8(fp) + fa0c: 04000074 movhi r16,1 + fa10: 84037c04 addi r16,r16,3568 + fa14: 01400304 movi r5,12 + fa18: 0002b2c0 call 2b2c <__mulsi3> + fa1c: 1407883a add r3,r2,r16 + fa20: e0bfff17 ldw r2,-4(fp) + fa24: 18800015 stw r2,0(r3) + if (i > alt_max_fd) + fa28: 00800074 movhi r2,1 + fa2c: 10884804 addi r2,r2,8480 + fa30: 10c00017 ldw r3,0(r2) + fa34: e0bffe17 ldw r2,-8(fp) + fa38: 1880040e bge r3,r2,fa4c + { + alt_max_fd = i; + fa3c: 00c00074 movhi r3,1 + fa40: 18c84804 addi r3,r3,8480 + fa44: e0bffe17 ldw r2,-8(fp) + fa48: 18800015 stw r2,0(r3) + } + rc = i; + fa4c: e0bffe17 ldw r2,-8(fp) + fa50: e0bffd15 stw r2,-12(fp) + goto alt_get_fd_exit; + fa54: 00000606 br fa70 + * indicates the highest file descriptor ever allocated. This is used to + * improve efficency when searching the file descriptor list, and + * therefore reduce contention on the alt_fd_list_lock semaphore. + */ + + for (i = 0; i < ALT_MAX_FD; i++) + fa58: e0bffe17 ldw r2,-8(fp) + fa5c: 10800044 addi r2,r2,1 + fa60: e0bffe15 stw r2,-8(fp) + fa64: e0bffe17 ldw r2,-8(fp) + fa68: 10800810 cmplti r2,r2,32 + fa6c: 103fdd1e bne r2,zero,f9e4 + * file descriptor pool. + */ + + ALT_SEM_POST(alt_fd_list_lock); + + return rc; + fa70: e0bffd17 ldw r2,-12(fp) +} + fa74: e037883a mov sp,fp + fa78: dfc00217 ldw ra,8(sp) + fa7c: df000117 ldw fp,4(sp) + fa80: dc000017 ldw r16,0(sp) + fa84: dec00304 addi sp,sp,12 + fa88: f800283a ret + +0000fa8c : + fa8c: 200b883a mov r5,r4 + fa90: 000d883a mov r6,zero + fa94: 0009883a mov r4,zero + fa98: 000f883a mov r7,zero + fa9c: 000fb4c1 jmpi fb4c <__register_exitproc> + +0000faa0 : + faa0: defffe04 addi sp,sp,-8 + faa4: 000b883a mov r5,zero + faa8: dc000015 stw r16,0(sp) + faac: dfc00115 stw ra,4(sp) + fab0: 2021883a mov r16,r4 + fab4: 000fc840 call fc84 <__call_exitprocs> + fab8: 00800074 movhi r2,1 + fabc: 10883f04 addi r2,r2,8444 + fac0: 11000017 ldw r4,0(r2) + fac4: 20800f17 ldw r2,60(r4) + fac8: 10000126 beq r2,zero,fad0 + facc: 103ee83a callr r2 + fad0: 8009883a mov r4,r16 + fad4: 000fe740 call fe74 <_exit> + +0000fad8 : + fad8: 00c000c4 movi r3,3 + fadc: 1980032e bgeu r3,r6,faec + fae0: 2144b03a or r2,r4,r5 + fae4: 10c4703a and r2,r2,r3 + fae8: 10000f26 beq r2,zero,fb28 + faec: 31ffffc4 addi r7,r6,-1 + faf0: 3000061e bne r6,zero,fb0c + faf4: 00000a06 br fb20 + faf8: 39ffffc4 addi r7,r7,-1 + fafc: 00bfffc4 movi r2,-1 + fb00: 21000044 addi r4,r4,1 + fb04: 29400044 addi r5,r5,1 + fb08: 38800526 beq r7,r2,fb20 + fb0c: 20c00003 ldbu r3,0(r4) + fb10: 28800003 ldbu r2,0(r5) + fb14: 18bff826 beq r3,r2,faf8 + fb18: 1885c83a sub r2,r3,r2 + fb1c: f800283a ret + fb20: 0005883a mov r2,zero + fb24: f800283a ret + fb28: 180f883a mov r7,r3 + fb2c: 20c00017 ldw r3,0(r4) + fb30: 28800017 ldw r2,0(r5) + fb34: 18bfed1e bne r3,r2,faec + fb38: 31bfff04 addi r6,r6,-4 + fb3c: 21000104 addi r4,r4,4 + fb40: 29400104 addi r5,r5,4 + fb44: 39bff936 bltu r7,r6,fb2c + fb48: 003fe806 br faec + +0000fb4c <__register_exitproc>: + fb4c: defffa04 addi sp,sp,-24 + fb50: 00800074 movhi r2,1 + fb54: 10883f04 addi r2,r2,8444 + fb58: dc000015 stw r16,0(sp) + fb5c: 14000017 ldw r16,0(r2) + fb60: dd000415 stw r20,16(sp) + fb64: 2829883a mov r20,r5 + fb68: 81405217 ldw r5,328(r16) + fb6c: dcc00315 stw r19,12(sp) + fb70: dc800215 stw r18,8(sp) + fb74: dc400115 stw r17,4(sp) + fb78: dfc00515 stw ra,20(sp) + fb7c: 2023883a mov r17,r4 + fb80: 3027883a mov r19,r6 + fb84: 3825883a mov r18,r7 + fb88: 28002526 beq r5,zero,fc20 <__register_exitproc+0xd4> + fb8c: 29000117 ldw r4,4(r5) + fb90: 008007c4 movi r2,31 + fb94: 11002716 blt r2,r4,fc34 <__register_exitproc+0xe8> + fb98: 8800101e bne r17,zero,fbdc <__register_exitproc+0x90> + fb9c: 2105883a add r2,r4,r4 + fba0: 1085883a add r2,r2,r2 + fba4: 20c00044 addi r3,r4,1 + fba8: 1145883a add r2,r2,r5 + fbac: 0009883a mov r4,zero + fbb0: 15000215 stw r20,8(r2) + fbb4: 28c00115 stw r3,4(r5) + fbb8: 2005883a mov r2,r4 + fbbc: dfc00517 ldw ra,20(sp) + fbc0: dd000417 ldw r20,16(sp) + fbc4: dcc00317 ldw r19,12(sp) + fbc8: dc800217 ldw r18,8(sp) + fbcc: dc400117 ldw r17,4(sp) + fbd0: dc000017 ldw r16,0(sp) + fbd4: dec00604 addi sp,sp,24 + fbd8: f800283a ret + fbdc: 29802204 addi r6,r5,136 + fbe0: 00800044 movi r2,1 + fbe4: 110e983a sll r7,r2,r4 + fbe8: 30c04017 ldw r3,256(r6) + fbec: 2105883a add r2,r4,r4 + fbf0: 1085883a add r2,r2,r2 + fbf4: 1185883a add r2,r2,r6 + fbf8: 19c6b03a or r3,r3,r7 + fbfc: 14802015 stw r18,128(r2) + fc00: 14c00015 stw r19,0(r2) + fc04: 00800084 movi r2,2 + fc08: 30c04015 stw r3,256(r6) + fc0c: 88bfe31e bne r17,r2,fb9c <__register_exitproc+0x50> + fc10: 30804117 ldw r2,260(r6) + fc14: 11c4b03a or r2,r2,r7 + fc18: 30804115 stw r2,260(r6) + fc1c: 003fdf06 br fb9c <__register_exitproc+0x50> + fc20: 00800074 movhi r2,1 + fc24: 1090d104 addi r2,r2,17220 + fc28: 100b883a mov r5,r2 + fc2c: 80805215 stw r2,328(r16) + fc30: 003fd606 br fb8c <__register_exitproc+0x40> + fc34: 00800034 movhi r2,0 + fc38: 10800004 addi r2,r2,0 + fc3c: 1000021e bne r2,zero,fc48 <__register_exitproc+0xfc> + fc40: 013fffc4 movi r4,-1 + fc44: 003fdc06 br fbb8 <__register_exitproc+0x6c> + fc48: 01006404 movi r4,400 + fc4c: 103ee83a callr r2 + fc50: 1007883a mov r3,r2 + fc54: 103ffa26 beq r2,zero,fc40 <__register_exitproc+0xf4> + fc58: 80805217 ldw r2,328(r16) + fc5c: 180b883a mov r5,r3 + fc60: 18000115 stw zero,4(r3) + fc64: 18800015 stw r2,0(r3) + fc68: 80c05215 stw r3,328(r16) + fc6c: 18006215 stw zero,392(r3) + fc70: 18006315 stw zero,396(r3) + fc74: 0009883a mov r4,zero + fc78: 883fc826 beq r17,zero,fb9c <__register_exitproc+0x50> + fc7c: 003fd706 br fbdc <__register_exitproc+0x90> + +0000fc80 : + fc80: f800283a ret + +0000fc84 <__call_exitprocs>: + fc84: 00800074 movhi r2,1 + fc88: 10883f04 addi r2,r2,8444 + fc8c: 10800017 ldw r2,0(r2) + fc90: defff304 addi sp,sp,-52 + fc94: df000b15 stw fp,44(sp) + fc98: d8800115 stw r2,4(sp) + fc9c: 00800034 movhi r2,0 + fca0: 10800004 addi r2,r2,0 + fca4: 1005003a cmpeq r2,r2,zero + fca8: d8800215 stw r2,8(sp) + fcac: d8800117 ldw r2,4(sp) + fcb0: dd400815 stw r21,32(sp) + fcb4: dd000715 stw r20,28(sp) + fcb8: 10805204 addi r2,r2,328 + fcbc: dfc00c15 stw ra,48(sp) + fcc0: ddc00a15 stw r23,40(sp) + fcc4: dd800915 stw r22,36(sp) + fcc8: dcc00615 stw r19,24(sp) + fccc: dc800515 stw r18,20(sp) + fcd0: dc400415 stw r17,16(sp) + fcd4: dc000315 stw r16,12(sp) + fcd8: 282b883a mov r21,r5 + fcdc: 2039883a mov fp,r4 + fce0: d8800015 stw r2,0(sp) + fce4: 2829003a cmpeq r20,r5,zero + fce8: d8800117 ldw r2,4(sp) + fcec: 14405217 ldw r17,328(r2) + fcf0: 88001026 beq r17,zero,fd34 <__call_exitprocs+0xb0> + fcf4: ddc00017 ldw r23,0(sp) + fcf8: 88800117 ldw r2,4(r17) + fcfc: 8c802204 addi r18,r17,136 + fd00: 143fffc4 addi r16,r2,-1 + fd04: 80000916 blt r16,zero,fd2c <__call_exitprocs+0xa8> + fd08: 05bfffc4 movi r22,-1 + fd0c: a000151e bne r20,zero,fd64 <__call_exitprocs+0xe0> + fd10: 8409883a add r4,r16,r16 + fd14: 2105883a add r2,r4,r4 + fd18: 1485883a add r2,r2,r18 + fd1c: 10c02017 ldw r3,128(r2) + fd20: a8c01126 beq r21,r3,fd68 <__call_exitprocs+0xe4> + fd24: 843fffc4 addi r16,r16,-1 + fd28: 85bff81e bne r16,r22,fd0c <__call_exitprocs+0x88> + fd2c: d8800217 ldw r2,8(sp) + fd30: 10003126 beq r2,zero,fdf8 <__call_exitprocs+0x174> + fd34: dfc00c17 ldw ra,48(sp) + fd38: df000b17 ldw fp,44(sp) + fd3c: ddc00a17 ldw r23,40(sp) + fd40: dd800917 ldw r22,36(sp) + fd44: dd400817 ldw r21,32(sp) + fd48: dd000717 ldw r20,28(sp) + fd4c: dcc00617 ldw r19,24(sp) + fd50: dc800517 ldw r18,20(sp) + fd54: dc400417 ldw r17,16(sp) + fd58: dc000317 ldw r16,12(sp) + fd5c: dec00d04 addi sp,sp,52 + fd60: f800283a ret + fd64: 8409883a add r4,r16,r16 + fd68: 88c00117 ldw r3,4(r17) + fd6c: 2105883a add r2,r4,r4 + fd70: 1445883a add r2,r2,r17 + fd74: 18ffffc4 addi r3,r3,-1 + fd78: 11800217 ldw r6,8(r2) + fd7c: 1c001526 beq r3,r16,fdd4 <__call_exitprocs+0x150> + fd80: 10000215 stw zero,8(r2) + fd84: 303fe726 beq r6,zero,fd24 <__call_exitprocs+0xa0> + fd88: 00c00044 movi r3,1 + fd8c: 1c06983a sll r3,r3,r16 + fd90: 90804017 ldw r2,256(r18) + fd94: 8cc00117 ldw r19,4(r17) + fd98: 1884703a and r2,r3,r2 + fd9c: 10001426 beq r2,zero,fdf0 <__call_exitprocs+0x16c> + fda0: 90804117 ldw r2,260(r18) + fda4: 1884703a and r2,r3,r2 + fda8: 10000c1e bne r2,zero,fddc <__call_exitprocs+0x158> + fdac: 2105883a add r2,r4,r4 + fdb0: 1485883a add r2,r2,r18 + fdb4: 11400017 ldw r5,0(r2) + fdb8: e009883a mov r4,fp + fdbc: 303ee83a callr r6 + fdc0: 88800117 ldw r2,4(r17) + fdc4: 98bfc81e bne r19,r2,fce8 <__call_exitprocs+0x64> + fdc8: b8800017 ldw r2,0(r23) + fdcc: 147fd526 beq r2,r17,fd24 <__call_exitprocs+0xa0> + fdd0: 003fc506 br fce8 <__call_exitprocs+0x64> + fdd4: 8c000115 stw r16,4(r17) + fdd8: 003fea06 br fd84 <__call_exitprocs+0x100> + fddc: 2105883a add r2,r4,r4 + fde0: 1485883a add r2,r2,r18 + fde4: 11000017 ldw r4,0(r2) + fde8: 303ee83a callr r6 + fdec: 003ff406 br fdc0 <__call_exitprocs+0x13c> + fdf0: 303ee83a callr r6 + fdf4: 003ff206 br fdc0 <__call_exitprocs+0x13c> + fdf8: 88800117 ldw r2,4(r17) + fdfc: 1000081e bne r2,zero,fe20 <__call_exitprocs+0x19c> + fe00: 89000017 ldw r4,0(r17) + fe04: 20000726 beq r4,zero,fe24 <__call_exitprocs+0x1a0> + fe08: b9000015 stw r4,0(r23) + fe0c: 8809883a mov r4,r17 + fe10: 00000000 call 0 <__alt_mem_onchip_memory> + fe14: bc400017 ldw r17,0(r23) + fe18: 883fb71e bne r17,zero,fcf8 <__call_exitprocs+0x74> + fe1c: 003fc506 br fd34 <__call_exitprocs+0xb0> + fe20: 89000017 ldw r4,0(r17) + fe24: 882f883a mov r23,r17 + fe28: 2023883a mov r17,r4 + fe2c: 883fb21e bne r17,zero,fcf8 <__call_exitprocs+0x74> + fe30: 003fc006 br fd34 <__call_exitprocs+0xb0> + +0000fe34 : + +/* + * Routine called on exit. + */ +static ALT_ALWAYS_INLINE void alt_sim_halt(int exit_code) +{ + fe34: defffd04 addi sp,sp,-12 + fe38: df000215 stw fp,8(sp) + fe3c: df000204 addi fp,sp,8 + fe40: e13fff15 stw r4,-4(fp) + int r2 = exit_code; + fe44: e0bfff17 ldw r2,-4(fp) + fe48: e0bffe15 stw r2,-8(fp) + __asm__ volatile ("\n0:\n\taddi %0,%0, -1\n\tbgt %0,zero,0b" : : "r" (ALT_CPU_FREQ/100) ); /* Delay for >30ms */ + + __asm__ volatile ("break 2" : : "D02"(r2), "D03"(r3) ALT_GMON_DATA ); + +#else /* !DEBUG_STUB */ + if (r2) { + fe4c: e0bffe17 ldw r2,-8(fp) + fe50: 1005003a cmpeq r2,r2,zero + fe54: 1000021e bne r2,zero,fe60 + ALT_SIM_FAIL(); + fe58: 002af070 cmpltui zero,zero,43969 + fe5c: 00000106 br fe64 + } else { + ALT_SIM_PASS(); + fe60: 002af0b0 cmpltui zero,zero,43970 + } +#endif /* DEBUG_STUB */ +} + fe64: e037883a mov sp,fp + fe68: df000017 ldw fp,0(sp) + fe6c: dec00104 addi sp,sp,4 + fe70: f800283a ret + +0000fe74 <_exit>: + * + * ALT_EXIT is mapped onto the _exit() system call in alt_syscall.h + */ + +void ALT_EXIT (int exit_code) +{ + fe74: defffd04 addi sp,sp,-12 + fe78: dfc00215 stw ra,8(sp) + fe7c: df000115 stw fp,4(sp) + fe80: df000104 addi fp,sp,4 + fe84: e13fff15 stw r4,-4(fp) + ALT_OS_STOP(); + + /* Provide notification to the simulator that we've stopped */ + + ALT_LOG_PRINT_BOOT("[alt_exit.c] Calling ALT_SIM_HALT().\r\n"); + ALT_SIM_HALT(exit_code); + fe88: e13fff17 ldw r4,-4(fp) + fe8c: 000fe340 call fe34 + + /* spin forever, since there's no where to go back to */ + + ALT_LOG_PRINT_BOOT("[alt_exit.c] Spinning forever.\r\n"); + while (1); + fe90: 003fff06 br fe90 <_exit+0x1c> + fe94: 0000fc80 call fc8 diff --git a/software/qsys_tutorial_lcd4/readme.txt b/software/qsys_tutorial_lcd4/readme.txt new file mode 100644 index 0000000..7d0742f --- /dev/null +++ b/software/qsys_tutorial_lcd4/readme.txt @@ -0,0 +1,26 @@ +Readme - Hello World Software Example + +DESCRIPTION: +Simple program that prints "Hello from Nios II" + +The memory footprint of this hosted application is intended to be small (under 100 kbytes) by default +using a standard reference deisgn. + +For an even smaller, reduced footprint version of this template, and an explanation of how +to reduce the memory footprint for a given application, see the +"small_hello_world" template. + + +PERIPHERALS USED: +This example exercises the following peripherals: +- STDOUT device (UART or JTAG UART) + +SOFTWARE SOURCE FILES: +This example includes the following software source files: +- hello_world.c: Everyone needs a Hello World program, right? + +BOARD/HOST REQUIREMENTS: +This example requires only a JTAG connection with a Nios Development board. If +the host communication settings are changed from JTAG UART (default) to use a +conventional UART, a serial cable between board DB-9 connector and the host is +required. diff --git a/software/qsys_tutorial_lcd4/sys_debug.c b/software/qsys_tutorial_lcd4/sys_debug.c new file mode 100644 index 0000000..de2aaa5 --- /dev/null +++ b/software/qsys_tutorial_lcd4/sys_debug.c @@ -0,0 +1,116 @@ +/* + * sys_debug.c + * + * Created on: 2016/12/02 + * Author: takayun + */ + +#include "sys_debug.h" +#include +#include "lcd_out.h" + +void display_inst(struct InstRec inst, unsigned int pc) { + char inst_name[INST_NAME_ARRAY_LEN]; // ���ߖ� + char reg_name[REG_NAME_ARRAY_LEN]; // ���W�X�^�� + char buf[17]; + + // ���߂̖��O�̎擾 + convertInstName(inst_name, inst.inst); + // ���W�X�^�̖��O�̎擾 + convertRegName(reg_name, inst.regi); + + lcd_caret_reset(); + sprintf(buf, "PC:0x%02x -> %4s",pc,inst_name); + lcd_print(buf); + lcd_caret_reset2(); + sprintf(buf, "REG:%3s,MEM:0x%1x",reg_name,inst.memi); + lcd_print(buf); +} + +void display_mem(unsigned char memi, char memv) { + char buf[17]; + + lcd_caret_reset(); + sprintf(buf, "MEM:0x%1x",memi); + lcd_print(buf); + lcd_caret_reset2(); + sprintf(buf, "value:%d",memv); + lcd_print(buf); +} + +void convertRegName(char reg_name[REG_NAME_ARRAY_LEN], enum Register reg_code) { + switch(reg_code) { + case Szero: + sprintf(reg_name, STRING_REG_ZERO); + break; + case Spc: + sprintf(reg_name, STRING_REG_PC); + break; + case Ssp: + sprintf(reg_name, STRING_REG_SP); + break; + case Sgp0: + sprintf(reg_name, STRING_REG_GP0); + break; + case Sgp1: + sprintf(reg_name, STRING_REG_GP1); + break; + case Sacc: + sprintf(reg_name, STRING_REG_ACC); + break; + case Sflg: + sprintf(reg_name, STRING_REG_FLG); + break; + default: + sprintf(reg_name, "non"); + break; + } +} + + +void convertInstName(char inst_name[INST_NAME_ARRAY_LEN], unsigned char inst_code) { + switch(inst_code) { + case INST_END: + sprintf(inst_name, STRING_INST_END); + break; + case INST_JUMP: + sprintf(inst_name, STRING_INST_JUMP); + break; + case INST_OUTPUT: + sprintf(inst_name, STRING_INST_OUTPUT); + break; + case INST_LOAD: + sprintf(inst_name, STRING_INST_LOAD); + break; + case INST_STORE: + sprintf(inst_name, STRING_INST_STORE); + break; + case INST_DELAY: + sprintf(inst_name, STRING_INST_DELAY); + break; + case INST_ADD: + sprintf(inst_name, STRING_INST_ADD); + break; + case INST_COMP: + sprintf(inst_name, STRING_INST_COMP); + break; + case INST_JEQ: + sprintf(inst_name, STRING_INST_JEQ); + break; + case INST_JNE: + sprintf(inst_name, STRING_INST_JNE); + break; + case INST_JIEQ: + sprintf(inst_name, STRING_INST_JIEQ); + break; + case INST_JINE: + sprintf(inst_name, STRING_INST_JINE); + break; + default: + sprintf(inst_name, "NoOp"); + break; + } +} + + + diff --git a/software/qsys_tutorial_lcd4/sys_debug.h b/software/qsys_tutorial_lcd4/sys_debug.h new file mode 100644 index 0000000..2a6dbab --- /dev/null +++ b/software/qsys_tutorial_lcd4/sys_debug.h @@ -0,0 +1,60 @@ +/* + * sys_debug.h + * + * Created on: 2016/12/02 + * Author: takayun + */ + +#ifndef SYS_DEBUG_H_ +#define SYS_DEBUG_H_ + +#include "inst_decoder.h" +#include "sys_register.h" + +/************************************************** + * Defines + **************************************************/ + +#define INST_NAME_ARRAY_LEN 5 + +#define STRING_INST_END "END" +#define STRING_INST_JUMP "JUMP" +#define STRING_INST_OUTPUT "OUT" +#define STRING_INST_LOAD "LOAD" +#define STRING_INST_STORE "STOR" +#define STRING_INST_DELAY "DELY" +#define STRING_INST_ADD "ADD" +#define STRING_INST_COMP "COMP" +#define STRING_INST_JEQ "JEQ" +#define STRING_INST_JNE "JNE" +#define STRING_INST_JIEQ "JIEQ" +#define STRING_INST_JINE "JINE" + + +#define REG_NAME_ARRAY_LEN 4 + +#define STRING_REG_ZERO "ZE" +#define STRING_REG_PC "PC" +#define STRING_REG_SP "SP" +#define STRING_REG_GP0 "GP0" +#define STRING_REG_GP1 "GP1" +#define STRING_REG_ACC "ACC" +#define STRING_REG_FLG "FLG" + +/************************************************** + * Variables + **************************************************/ + + +/************************************************** + * Functions + **************************************************/ + +void convertInstName(char inst_name[INST_NAME_ARRAY_LEN], unsigned char inst_code); +void convertRegName(char reg_name[REG_NAME_ARRAY_LEN], enum Register reg_code); + +void display_inst(struct InstRec inst, unsigned int pc); +void display_mem(unsigned char memi, char memv); + + +#endif /* SYS_DEBUG_H_ */ diff --git a/software/qsys_tutorial_lcd4/sys_except.c b/software/qsys_tutorial_lcd4/sys_except.c new file mode 100644 index 0000000..27c1a74 --- /dev/null +++ b/software/qsys_tutorial_lcd4/sys_except.c @@ -0,0 +1,14 @@ +/* + * sys_except.c + * + * Created on: 2016/11/24 + * Author: takayun + */ +#include "system.h" +#include "hex_out.h" + +void panic() { + clear_block(HEX0_3); + print_block("err ", 4, HEX0_3); +} + diff --git a/software/qsys_tutorial_lcd4/sys_except.h b/software/qsys_tutorial_lcd4/sys_except.h new file mode 100644 index 0000000..689c62b --- /dev/null +++ b/software/qsys_tutorial_lcd4/sys_except.h @@ -0,0 +1,13 @@ +/* + * sys_except.h + * + * Created on: 2016/11/24 + * Author: takayun + */ + +#ifndef SYSTEM_H_ +#define SYSTEM_H_ + +void panic(); + +#endif /* SYSTEM_H_ */ diff --git a/software/qsys_tutorial_lcd4/sys_memory.c b/software/qsys_tutorial_lcd4/sys_memory.c new file mode 100644 index 0000000..c8faff6 --- /dev/null +++ b/software/qsys_tutorial_lcd4/sys_memory.c @@ -0,0 +1,58 @@ +/* + * sys_memory.c + * + * Created on: 2016/11/24 + * Author: takayun + */ +#include "system.h" +#include "sys_memory.h" +#include "sys_register.h" + +/************************************************** + * Public + **************************************************/ + +// �����������̂ǂ̃�������(0 < global_current_memory < MEMS_COUNT) +unsigned int global_current_memory = 0; + +/************************************************** + * Private + **************************************************/ + +// �����������̕ϐ� +static char memory[MEMS_COUNT][MEM_SIZE]; + +static struct InstRec inst_memory[MEMS_COUNT][MEM_SIZE]; + + +/************************************************** + * Impl + **************************************************/ + +void memory_init() { + int i, j; + for (i = 0; i < MEMS_COUNT; i++) + for (j = 0; j < MEM_SIZE; j++) { + memory[i][j] = 0; + } +} + +void inst_memory_store(unsigned int mem_addr, struct InstRec inst_rec){ + inst_memory[global_current_memory][mem_addr] = inst_rec; +} +struct InstRec inst_memory_load(unsigned int mem_addr){ + return inst_memory[global_current_memory][mem_addr]; +} + +char memory_store(unsigned int mem_addr, enum Register reg) { + if (!(mem_addr < MEM_SIZE)) panic(); + memory[global_current_memory][mem_addr] = global_registers[reg]; + return memory[global_current_memory][mem_addr]; +} + +char memory_load(unsigned int mem_addr, enum Register reg) { + if (!(mem_addr < MEM_SIZE)) panic(); + global_registers[reg] = memory[global_current_memory][mem_addr]; + return global_registers[reg]; +} + diff --git a/software/qsys_tutorial_lcd4/sys_memory.h b/software/qsys_tutorial_lcd4/sys_memory.h new file mode 100644 index 0000000..f9bce60 --- /dev/null +++ b/software/qsys_tutorial_lcd4/sys_memory.h @@ -0,0 +1,67 @@ +/* + * sys_memory.h + * + * Created on: 2016/11/24 + * Author: takayun + */ + +#ifndef SYS_MEMORY_H_ +#define SYS_MEMORY_H_ + +#include "sys_register.h" +#include "inst_decoder.h" + +/************************************************** + * Defines + **************************************************/ + +// �������̐� +#define MEMS_COUNT 16 + +// 1�������̃T�C�Y +#define MEM_SIZE 16 + +/************************************************** + * Variables + **************************************************/ + +extern unsigned int global_current_memory; + +/************************************************** + * Functions + **************************************************/ + +/* Function: memory_init + * Sammary: + * ������������������(All 0) */ +void memory_init(); + +/* ���ߗp�������ɖ��߂̃X�g�A&���[�h */ + +/* Function: memory_store -> char + * Sammary: + * �������̎w��Ԓn�Ɏw�肵�����W�X�^����l���i�[���� + * Return: + * �������Ɋi�[���ꂽ�l */ +void inst_memory_store(unsigned int mem_addr, struct InstRec inst_rec); +struct InstRec inst_memory_load(unsigned int mem_addr); + + +/* ������-���W�X�^�Ԃ̑��� */ + +/* Function: memory_store -> char + * Sammary: + * �������̎w��Ԓn�Ɏw�肵�����W�X�^����l���i�[���� + * Return: + * �������Ɋi�[���ꂽ�l */ +char memory_store(unsigned int mem_addr, enum Register reg); + +/* Function: memory_store -> char + * Sammary: + * �w�肵�����W�X�^�Ƀ������̎w��Ԓn����l���i�[���� + * Return: + * ���W�X�^�Ɋi�[���ꂽ�l */ +char memory_load(unsigned int mem_addr, enum Register reg); + + +#endif /* SYS_MEMORY_H_ */ diff --git a/software/qsys_tutorial_lcd4/sys_prog.c b/software/qsys_tutorial_lcd4/sys_prog.c new file mode 100644 index 0000000..8875ae1 --- /dev/null +++ b/software/qsys_tutorial_lcd4/sys_prog.c @@ -0,0 +1,27 @@ +/* + * sys_prog.c + * + * Created on: 2016/12/15 + * Author: takayun + */ + +#include "sys_register.h" +#include "sys_memory.h" + +unsigned int inc_pc() { + if ((unsigned char)global_registers[Spc]+1 < MEM_SIZE*MEMS_COUNT - global_current_memory*MEM_SIZE ) { + global_registers[Spc] = (unsigned char)global_registers[Spc] + 1; + } else { + global_registers[Spc] = 0; + } + return 0; +} +unsigned int add_pc(unsigned int cnt) { + int i; + for (i = 0; i < cnt; i++) inc_pc(); + return 0; +} +unsigned int set_pc(unsigned int cnt) { + global_registers[Spc]=cnt; + return 0; +} diff --git a/software/qsys_tutorial_lcd4/sys_prog.h b/software/qsys_tutorial_lcd4/sys_prog.h new file mode 100644 index 0000000..3c3b830 --- /dev/null +++ b/software/qsys_tutorial_lcd4/sys_prog.h @@ -0,0 +1,16 @@ +/* + * sys_prog.h + * + * Created on: 2016/12/15 + * Author: takayun + */ + +#ifndef SYS_PROG_H_ +#define SYS_PROG_H_ + +// ���S��PC�̃J�E���g�A�b�v���s�� +unsigned int inc_pc(); +unsigned int add_pc(unsigned int); +unsigned int set_pc(unsigned int); + +#endif /* SYS_PROG_H_ */ diff --git a/software/qsys_tutorial_lcd4/sys_register.c b/software/qsys_tutorial_lcd4/sys_register.c new file mode 100644 index 0000000..84ed485 --- /dev/null +++ b/software/qsys_tutorial_lcd4/sys_register.c @@ -0,0 +1,17 @@ +/* + * sys_register.c + * + * Created on: 2016/11/24 + * Author: takayun + */ +#include "sys_register.h" + +char global_registers[REG_MAX_COUNT]; + +void registers_init() { + int i; + for (i = 0; i < REG_MAX_COUNT; i++) global_registers[i] = 0; +} + + + diff --git a/software/qsys_tutorial_lcd4/sys_register.h b/software/qsys_tutorial_lcd4/sys_register.h new file mode 100644 index 0000000..65ad219 --- /dev/null +++ b/software/qsys_tutorial_lcd4/sys_register.h @@ -0,0 +1,54 @@ +/* + * sys_register.h + * + * Created on: 2016/11/24 + * Author: takayun + */ + +#ifndef SYS_REGISTER_H_ +#define SYS_REGISTER_H_ + +/************************************************** + * Defines + **************************************************/ + +// ���W�X�^�̒�` +enum Register { + /* �ʏ�̃��W�X�^ */ + Szero, //�[�����W�X�^ + Spc, //�v���O�����J�E���^ + Ssp, //�X�^�b�N�|�C���^ + Sgp0, //�ėp���W�X�^0 + Sgp1, //�ėp���W�X�^1 + Sacc, //�A�L�������[�^ + Sflg, //�t���O���W�X�^ + /* �X�C�b�`�ǂݏo���p���W�X�^ */ + Ssw_data, //�f�[�^(8bit) + Ssw_inst, //����(4bit) + Ssw_regi, //���W�X�^�ԍ�(4bit) + Ssw_memi, //�������Ԓn(4bit) + Ssw_psel, //�v���O�����Z���N�^(4bit) + Ssw_rw, //�ǂݏ������[�h(1bit) + Ssw_run, //���s���[�h(1bit) + /* 7�Z�O�p���W�X�^ */ + Sseg, + + /* �z��錾�p */ + REG_MAX_COUNT +}; + +/************************************************** + * Variables + **************************************************/ + +// ���W�X�^�p�̕ϐ� +extern char global_registers[REG_MAX_COUNT]; + +/************************************************** + * Functions + **************************************************/ + +void registers_init(); + + +#endif /* SYS_REGISTER_H_ */ diff --git a/software/qsys_tutorial_lcd4_bsp/.cproject b/software/qsys_tutorial_lcd4_bsp/.cproject new file mode 100644 index 0000000..a92ec0f --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/.cproject @@ -0,0 +1,481 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/software/qsys_tutorial_lcd4_bsp/.project b/software/qsys_tutorial_lcd4_bsp/.project new file mode 100644 index 0000000..8bbece1 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/.project @@ -0,0 +1,85 @@ + + + qsys_tutorial_lcd4_bsp + + + + + + org.eclipse.cdt.managedbuilder.core.genmakebuilder + clean,full,incremental, + + + ?name? + + + + org.eclipse.cdt.make.core.append_environment + true + + + org.eclipse.cdt.make.core.autoBuildTarget + all + + + org.eclipse.cdt.make.core.buildArguments + + + + org.eclipse.cdt.make.core.buildCommand + make + + + org.eclipse.cdt.make.core.buildLocation + ${workspace_loc://qsys_tutorial_lcd4_bsp} + + + org.eclipse.cdt.make.core.cleanBuildTarget + clean + + + org.eclipse.cdt.make.core.contents + org.eclipse.cdt.make.core.activeConfigSettings + + + org.eclipse.cdt.make.core.enableAutoBuild + false + + + org.eclipse.cdt.make.core.enableCleanBuild + true + + + org.eclipse.cdt.make.core.enableFullBuild + true + + + org.eclipse.cdt.make.core.fullBuildTarget + all + + + org.eclipse.cdt.make.core.stopOnError + true + + + org.eclipse.cdt.make.core.useDefaultBuildCmd + true + + + + + org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder + full,incremental, + + + + + + org.eclipse.cdt.core.cnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.managedbuilder.core.ScannerConfigNature + org.eclipse.cdt.core.ccnature + com.altera.sbtgui.project.SBTGUINature + com.altera.sbtgui.project.SBTGUIBspNature + + diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/inc/alt_types.h b/software/qsys_tutorial_lcd4_bsp/HAL/inc/alt_types.h new file mode 100644 index 0000000..d02f171 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/HAL/inc/alt_types.h @@ -0,0 +1,54 @@ +#ifndef __ALT_TYPES_H__ +#define __ALT_TYPES_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/* + * Don't declare these typedefs if this file is included by assembly source. + */ +#ifndef ALT_ASM_SRC +typedef signed char alt_8; +typedef unsigned char alt_u8; +typedef signed short alt_16; +typedef unsigned short alt_u16; +typedef signed long alt_32; +typedef unsigned long alt_u32; +typedef long long alt_64; +typedef unsigned long long alt_u64; +#endif + +#define ALT_INLINE __inline__ +#define ALT_ALWAYS_INLINE __attribute__ ((always_inline)) +#define ALT_WEAK __attribute__((weak)) + +#endif /* __ALT_TYPES_H__ */ diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/inc/altera_nios2_qsys_irq.h b/software/qsys_tutorial_lcd4_bsp/HAL/inc/altera_nios2_qsys_irq.h new file mode 100644 index 0000000..6629ec9 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/HAL/inc/altera_nios2_qsys_irq.h @@ -0,0 +1,80 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2009 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/* + * Support for the Nios II internal interrupt controller. + */ + +#ifndef __ALT_NIOS2_QSYS_IRQ_H__ +#define __ALT_NIOS2_QSYS_IRQ_H__ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * The macro ALTERA_NIOS2_IRQ_INSTANCE is used by the alt_irq_init() + * function in the auto-generated file alt_sys_init.c to create an + * instance of this interrupt controller device driver state if this + * module contains an interrupt controller. + * Only one instance of a Nios II is allowed so this macro is just empty. + */ + +#define ALTERA_NIOS2_QSYS_IRQ_INSTANCE(name, state) + +/* + * altera_nios2_irq_init() is called by the auto-generated function + * alt_irq_init() once for the Nios II if it contains an interrupt controller. + * The altera_nios2_irq_init() routine is called using the + * ALTERA_NIOS2_IRQ_INIT macro given below. + * + * This function initializes the internal interrupt controller + * so is not called if the Nios II contains an external interrupt + * controller port (because the internal interrupt controller + * is removed if this port is present). + */ + +extern void altera_nios2_qsys_irq_init( void ); + +/* + * The macro ALTERA_NIOS2_IRQ_INIT is used by the alt_irq_init() routine + * in the auto-generated file alt_sys_init.c to initialize an instance + * of the interrupt controller device driver state. + */ + +#define ALTERA_NIOS2_QSYS_IRQ_INIT(name, state) altera_nios2_qsys_irq_init() + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __ALT_NIOS2_QSYS_IRQ_H__ */ + diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/inc/io.h b/software/qsys_tutorial_lcd4_bsp/HAL/inc/io.h new file mode 100644 index 0000000..362f103 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/HAL/inc/io.h @@ -0,0 +1,81 @@ +#ifndef __IO_H__ +#define __IO_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/* IO Header file for Nios II Toolchain */ + +#include "alt_types.h" +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +#ifndef SYSTEM_BUS_WIDTH +#error SYSTEM_BUS_WIDTH undefined +#endif + +/* Dynamic bus access functions */ + +#define __IO_CALC_ADDRESS_DYNAMIC(BASE, OFFSET) \ + ((void *)(((alt_u8*)BASE) + (OFFSET))) + +#define IORD_32DIRECT(BASE, OFFSET) \ + __builtin_ldwio (__IO_CALC_ADDRESS_DYNAMIC ((BASE), (OFFSET))) +#define IORD_16DIRECT(BASE, OFFSET) \ + __builtin_ldhuio (__IO_CALC_ADDRESS_DYNAMIC ((BASE), (OFFSET))) +#define IORD_8DIRECT(BASE, OFFSET) \ + __builtin_ldbuio (__IO_CALC_ADDRESS_DYNAMIC ((BASE), (OFFSET))) + +#define IOWR_32DIRECT(BASE, OFFSET, DATA) \ + __builtin_stwio (__IO_CALC_ADDRESS_DYNAMIC ((BASE), (OFFSET)), (DATA)) +#define IOWR_16DIRECT(BASE, OFFSET, DATA) \ + __builtin_sthio (__IO_CALC_ADDRESS_DYNAMIC ((BASE), (OFFSET)), (DATA)) +#define IOWR_8DIRECT(BASE, OFFSET, DATA) \ + __builtin_stbio (__IO_CALC_ADDRESS_DYNAMIC ((BASE), (OFFSET)), (DATA)) + +/* Native bus access functions */ + +#define __IO_CALC_ADDRESS_NATIVE(BASE, REGNUM) \ + ((void *)(((alt_u8*)BASE) + ((REGNUM) * (SYSTEM_BUS_WIDTH/8)))) + +#define IORD(BASE, REGNUM) \ + __builtin_ldwio (__IO_CALC_ADDRESS_NATIVE ((BASE), (REGNUM))) +#define IOWR(BASE, REGNUM, DATA) \ + __builtin_stwio (__IO_CALC_ADDRESS_NATIVE ((BASE), (REGNUM)), (DATA)) + +#ifdef __cplusplus +} +#endif + +#endif /* __IO_H__ */ diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/inc/nios2.h b/software/qsys_tutorial_lcd4_bsp/HAL/inc/nios2.h new file mode 100644 index 0000000..72cefba --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/HAL/inc/nios2.h @@ -0,0 +1,230 @@ +#ifndef __NIOS2_H__ +#define __NIOS2_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2008 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/* + * This header provides processor specific macros for accessing the Nios2 + * control registers. + */ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * Macros for accessing selected processor registers + */ + +#define NIOS2_READ_ET(et) \ + do { __asm ("mov %0, et" : "=r" (et) ); } while (0) + +#define NIOS2_WRITE_ET(et) \ + do { __asm volatile ("mov et, %z0" : : "rM" (et)); } while (0) + +#define NIOS2_READ_SP(sp) \ + do { __asm ("mov %0, sp" : "=r" (sp) ); } while (0) + +/* + * Macros for useful processor instructions + */ + +#define NIOS2_BREAK() \ + do { __asm volatile ("break"); } while (0) + +#define NIOS2_REPORT_STACK_OVERFLOW() \ + do { __asm volatile("break 3"); } while (0) + +/* + * Macros for accessing the control registers. + */ + +#define NIOS2_READ_STATUS(dest) \ + do { dest = __builtin_rdctl(0); } while (0) + +#define NIOS2_WRITE_STATUS(src) \ + do { __builtin_wrctl(0, src); } while (0) + +#define NIOS2_READ_ESTATUS(dest) \ + do { dest = __builtin_rdctl(1); } while (0) + +#define NIOS2_READ_BSTATUS(dest) \ + do { dest = __builtin_rdctl(2); } while (0) + +#define NIOS2_READ_IENABLE(dest) \ + do { dest = __builtin_rdctl(3); } while (0) + +#define NIOS2_WRITE_IENABLE(src) \ + do { __builtin_wrctl(3, src); } while (0) + +#define NIOS2_READ_IPENDING(dest) \ + do { dest = __builtin_rdctl(4); } while (0) + +#define NIOS2_READ_CPUID(dest) \ + do { dest = __builtin_rdctl(5); } while (0) + + +/* + * Macros for accessing extra exception registers. These + * are always enabled wit the MPU or MMU, and optionally + * with other advanced exception types/ + */ +#define NIOS2_READ_EXCEPTION(dest) \ + do { dest = __builtin_rdctl(7); } while (0) + +#define NIOS2_READ_BADADDR(dest) \ + do { dest = __builtin_rdctl(12); } while (0) + + +/* + * Macros for accessing control registers for MPU + * operation. These should not be used unless the + * MPU is enabled. + * + * The config register may be augmented for future + * enhancements. For now, only MPU support is provided. + */ +/* Config register */ +#define NIOS2_WRITE_CONFIG(src) \ + do { __builtin_wrctl(13, src); } while (0) + +#define NIOS2_READ_CONFIG(dest) \ + do { dest = __builtin_rdctl(13); } while (0) + +/* MPU Base Address Register */ +#define NIOS2_WRITE_MPUBASE(src) \ + do { __builtin_wrctl(14, src); } while (0) + +#define NIOS2_READ_MPUBASE(dest) \ + do { dest = __builtin_rdctl(14); } while (0) + +/* MPU Access Register */ +#define NIOS2_WRITE_MPUACC(src) \ + do { __builtin_wrctl(15, src); } while (0) + +#define NIOS2_READ_MPUACC(dest) \ + do { dest = __builtin_rdctl(15); } while (0) + + +/* + * Nios II control registers that are always present + */ +#define NIOS2_STATUS status +#define NIOS2_ESTATUS estatus +#define NIOS2_BSTATUS bstatus +#define NIOS2_IENABLE ienable +#define NIOS2_IPENDING ipending +#define NIOS2_CPUID cpuid + +/* + * STATUS, BSTATUS, ESTATUS, and SSTATUS fields. + * The presence of fields is a function of the Nios II configuration. + */ +#define NIOS2_STATUS_PIE_MSK (0x00000001) +#define NIOS2_STATUS_PIE_OFST (0) +#define NIOS2_STATUS_U_MSK (0x00000002) +#define NIOS2_STATUS_U_OFST (1) +#define NIOS2_STATUS_EH_MSK (0x00000004) +#define NIOS2_STATUS_EH_OFST (2) +#define NIOS2_STATUS_IH_MSK (0x00000008) +#define NIOS2_STATUS_IH_OFST (3) +#define NIOS2_STATUS_IL_MSK (0x000003f0) +#define NIOS2_STATUS_IL_OFST (4) +#define NIOS2_STATUS_CRS_MSK (0x0000fc00) +#define NIOS2_STATUS_CRS_OFST (10) +#define NIOS2_STATUS_PRS_MSK (0x003f0000) +#define NIOS2_STATUS_PRS_OFST (16) +#define NIOS2_STATUS_NMI_MSK (0x00400000) +#define NIOS2_STATUS_NMI_OFST (22) +#define NIOS2_STATUS_RSIE_MSK (0x00800000) +#define NIOS2_STATUS_RSIE_OFST (23) +#define NIOS2_STATUS_SRS_MSK (0x80000000) +#define NIOS2_STATUS_SRS_OFST (31) + +/* + * Bit masks & offsets available with extra exceptions support + */ + +/* Exception register */ +#define NIOS2_EXCEPTION_REG_CAUSE_MASK (0x0000007c) +#define NIOS2_EXCEPTION_REG_CAUSE_OFST (2) + +/* + * Bit masks & offsets for MPU support + * + * All bit-masks are expressed relative to the position + * of the data with a register. To read data that is LSB- + * aligned, the register read data should be masked, then + * right-shifted by the designated "OFST" macro value. The + * opposite should be used for register writes when starting + * with LSB-aligned data. + */ + +/* Config register */ +#define NIOS2_CONFIG_REG_PE_MASK (0x00000001) +#define NIOS2_CONFIG_REG_PE_OFST (0) +#define NIOS2_CONFIG_REG_ANI_MASK (0x00000002) +#define NIOS2_CONFIG_REG_ANI_OFST (1) + +/* MPU Base Address Register */ +#define NIOS2_MPUBASE_D_MASK (0x00000001) +#define NIOS2_MPUBASE_D_OFST (0) +#define NIOS2_MPUBASE_INDEX_MASK (0x0000003e) +#define NIOS2_MPUBASE_INDEX_OFST (1) +#define NIOS2_MPUBASE_BASE_ADDR_MASK (0xffffffc0) +#define NIOS2_MPUBASE_BASE_ADDR_OFST (6) + +/* MPU Access Register */ +#define NIOS2_MPUACC_LIMIT_MASK (0xffffffc0) +#define NIOS2_MPUACC_LIMIT_OFST (6) +#define NIOS2_MPUACC_MASK_MASK (0xffffffc0) +#define NIOS2_MPUACC_MASK_OFST (6) +#define NIOS2_MPUACC_C_MASK (0x00000020) +#define NIOS2_MPUACC_C_OFST (5) +#define NIOS2_MPUACC_PERM_MASK (0x0000001c) +#define NIOS2_MPUACC_PERM_OFST (2) +#define NIOS2_MPUACC_RD_MASK (0x00000002) +#define NIOS2_MPUACC_RD_OFST (1) +#define NIOS2_MPUACC_WR_MASK (0x00000001) +#define NIOS2_MPUACC_WR_OFST (0) + +/* + * Number of available IRQs in internal interrupt controller. + */ +#define NIOS2_NIRQ 32 + + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __NIOS2_H__ */ diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/inc/os/alt_flag.h b/software/qsys_tutorial_lcd4_bsp/HAL/inc/os/alt_flag.h new file mode 100644 index 0000000..b9b4605 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/HAL/inc/os/alt_flag.h @@ -0,0 +1,98 @@ +#ifndef __ALT_FLAG_H__ +#define __ALT_FLAG_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +/* + * This header provides macro definitions that can be used to create and use + * uc/OS-II style event flags. These macros can be used in both a uC/OS-II based + * environment, and a single threaded HAL based environment. + * + * The motivation for these macros is to allow code to be developed which is + * thread safe under uC/OS-II, but incurs no additional overhead when used in a + * single threaded HAL environment. + * + * In the case of a single threaded HAL environment, they compile to + * "do nothing" directives, which ensures they do not contribute to the final + * executable. + * + * The following macros are available: + * + * ALT_FLAG_GRP - Create a flag group instance. + * ALT_EXTERN_FLAG_GRP - Create a reference to an external flag group instance. + * ALT_STATIC_FLAG_GRP - Create a static flag group instance. + * ALT_FLAG_CREATE - Initialise a flag group. + * ALT_FLAG_PEND - Pend on a flag group. + * ALT_FLAG_POST - Set a flag condition. + + * + * Input arguments and return codes are all consistant with the equivalent + * uC/OS-II function. + * + * It's important to be careful in the use of the macros: ALT_FLAG_GRP, + * ALT_EXTERN_FLAG_GRP, and ALT_STATIC_FLAG_GRP. In these three cases the + * semi-colon is included in the macro definition; so, for example, you should + * use: + * + * ALT_FLAG_GRP(mygroup) + * + * not: + * + * ALT_FLAG_GRP(mygroup); + * + * The inclusion of the semi-colon has been necessary to ensure the macros can + * compile with no warnings when used in a single threaded HAL environment. + * + */ + +#include "priv/alt_no_error.h" + +#define ALT_FLAG_GRP(group) +#define ALT_EXTERN_FLAG_GRP(group) +#define ALT_STATIC_FLAG_GRP(group) + +#define ALT_FLAG_CREATE(group, flags) alt_no_error () +#define ALT_FLAG_PEND(group, flags, wait_type, timeout) alt_no_error () +#define ALT_FLAG_POST(group, flags, opt) alt_no_error () + +#ifndef ALT_SINGLE_THREADED +#define ALT_SINGLE_THREADED +#endif + +#endif /* __ALT_FLAG_H__ */ diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/inc/os/alt_hooks.h b/software/qsys_tutorial_lcd4_bsp/HAL/inc/os/alt_hooks.h new file mode 100644 index 0000000..9054e3f --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/HAL/inc/os/alt_hooks.h @@ -0,0 +1,61 @@ +#ifndef __ALT_HOOKS_H__ +#define __ALT_HOOKS_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +/* + * This header provides "do-nothing" macro definitions for operating system + * hooks within the HAL. The O/S component can override these to provide it's + * own implementation. + */ + +#define ALT_OS_TIME_TICK() while(0) +#define ALT_OS_INIT() while(0) +#define ALT_OS_STOP() while(0) + +/* Call from assembly code */ +#define ALT_OS_INT_ENTER_ASM +#define ALT_OS_INT_EXIT_ASM + +/* Call from C code */ +#define ALT_OS_INT_ENTER() while(0) +#define ALT_OS_INT_EXIT() while(0) + + +#endif /* __ALT_HOOKS_H__ */ diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/inc/os/alt_sem.h b/software/qsys_tutorial_lcd4_bsp/HAL/inc/os/alt_sem.h new file mode 100644 index 0000000..753943e --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/HAL/inc/os/alt_sem.h @@ -0,0 +1,96 @@ +#ifndef __ALT_SEM_H__ +#define __ALT_SEM_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +/* + * This header provides macro definitions that can be used to create and use + * semaphores. These macros can be used in both a uC/OS-II based environment, + * and a single threaded HAL based environment. + * + * The motivation for these macros is to allow code to be developed which is + * thread safe under uC/OS-II, but incurs no additional overhead when used in a + * single threaded HAL environment. + * + * In the case of a single threaded HAL environment, they compile to + * "do nothing" directives, which ensures they do not contribute to the final + * executable. + * + * The following macros are available: + * + * ALT_SEM - Create a semaphore instance. + * ALT_EXTERN_SEM - Create a reference to an external semaphore instance. + * ALT_STATIC_SEM - Create a static semaphore instance. + * ALT_SEM_CREATE - Initialise a semaphore. + * ALT_SEM_PEND - Pend on a semaphore. + * ALT_SEM_POST - Increment a semaphore. + * + * Input arguments and return codes are all consistant with the equivalent + * uC/OS-II function. + * + * It's important to be careful in the use of the macros: ALT_SEM, + * ALT_EXTERN_SEM, and ALT_STATIC_SEM. In these three cases the semi-colon is + * included in the macro definition; so, for example, you should use: + * + * ALT_SEM(mysem) + * + * not: + * + * ALT_SEM(mysem); + * + * The inclusion of the semi-colon has been necessary to ensure the macros can + * compile with no warnings when used in a single threaded HAL environment. + * + */ + +#include "priv/alt_no_error.h" + +#define ALT_SEM(sem) +#define ALT_EXTERN_SEM(sem) +#define ALT_STATIC_SEM(sem) + +#define ALT_SEM_CREATE(sem, value) alt_no_error () +#define ALT_SEM_PEND(sem, timeout) alt_no_error () +#define ALT_SEM_POST(sem) alt_no_error () + +#ifndef ALT_SINGLE_THREADED +#define ALT_SINGLE_THREADED +#endif + +#endif /* __ALT_SEM_H__ */ diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/inc/os/alt_syscall.h b/software/qsys_tutorial_lcd4_bsp/HAL/inc/os/alt_syscall.h new file mode 100644 index 0000000..507c6aa --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/HAL/inc/os/alt_syscall.h @@ -0,0 +1,75 @@ +#ifndef __ALT_SYSCALL_H__ +#define __ALT_SYSCALL_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/* + * The macros defined in this file are used to provide the function names used + * for the HAL 'UNIX style' interface, e.g. read(), write() etc. + * + * Operating systems which are ported to the HAL can provide their own + * version of this file, which will be used in preference. This allows + * the operating system to provide it's own implementation of the top level + * system calls, while retaining the HAL functions under a different name, + * for example, alt_read(), alt_write() etc. + */ + +#define ALT_CLOSE close +#define ALT_ENVIRON environ +#define ALT_EXECVE execve +#define ALT_EXIT _exit +#define ALT_FCNTL fcntl +#define ALT_FORK fork +#define ALT_FSTAT fstat +#define ALT_GETPID getpid +#define ALT_GETTIMEOFDAY gettimeofday +#define ALT_IOCTL ioctl +#define ALT_ISATTY isatty +#define ALT_KILL kill +#define ALT_LINK link +#define ALT_LSEEK lseek +#define ALT_OPEN open +#define ALT_READ read +#define ALT_RENAME _rename +#define ALT_SBRK sbrk +#define ALT_SETTIMEOFDAY settimeofday +#define ALT_STAT stat +#define ALT_UNLINK unlink +#define ALT_USLEEP usleep +#define ALT_WAIT wait +#define ALT_WRITE write +#define ALT_TIMES times + +/* + * + */ + +#endif /* __ALT_SYSCALL_H__ */ diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/inc/priv/alt_alarm.h b/software/qsys_tutorial_lcd4_bsp/HAL/inc/priv/alt_alarm.h new file mode 100644 index 0000000..45d6a0e --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/HAL/inc/priv/alt_alarm.h @@ -0,0 +1,101 @@ +#ifndef __ALT_PRIV_ALARM_H__ +#define __ALT_PRIV_ALARM_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#include "alt_types.h" + +/* + * This header provides the internal defenitions required by the public + * interface alt_alarm.h. These variables and structures are not guaranteed to + * exist in future implementations of the HAL. + */ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * "alt_alarm_s" is a structure type used to maintain lists of alarm callback + * functions. + */ + +struct alt_alarm_s +{ + alt_llist llist; /* linked list */ + alt_u32 time; /* time in system ticks of the callback */ + alt_u32 (*callback) (void* context); /* callback function. The return + * value is the period for the next callback; where + * zero indicates that the alarm should be removed + * from the list. + */ + alt_u8 rollover; /* set when desired alarm time + current time causes + overflow, to prevent premature alarm */ + void* context; /* Argument for the callback */ +}; + +/* + * "_alt_tick_rate" is a global variable used to store the system clock rate + * in ticks per second. This is initialised to zero, which coresponds to there + * being no system clock available. + * + * It is then set to it's final value by the system clock driver through a call + * to alt_sysclk_init(). + */ + +extern alt_u32 _alt_tick_rate; + +/* + * "_alt_nticks" is a global variable which records the elapsed number of + * system clock ticks since the last call to settimeofday() or since reset if + * settimeofday() has not been called. + */ + +extern volatile alt_u32 _alt_nticks; + +/* The list of registered alarms. */ + +extern alt_llist alt_alarm_list; + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_PRIV_ALARM_H__ */ diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/inc/priv/alt_busy_sleep.h b/software/qsys_tutorial_lcd4_bsp/HAL/inc/priv/alt_busy_sleep.h new file mode 100644 index 0000000..b1af849 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/HAL/inc/priv/alt_busy_sleep.h @@ -0,0 +1,35 @@ +#ifndef __ALT_BUSY_SLEEP_H +#define __ALT_BUSY_SLEEP_H + +/* + * Copyright (c) 2003 Altera Corporation, San Jose, California, USA. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ + +/* + * The function alt_busy_sleep provides a busy loop implementation of usleep. + * This is used to provide usleep for the standalone HAL, or when the timer is + * unavailable in uC/OS-II. + */ + +extern unsigned int alt_busy_sleep (unsigned int us); + +#endif /* __ALT_BUSY_SLEEP_H */ diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/inc/priv/alt_dev_llist.h b/software/qsys_tutorial_lcd4_bsp/HAL/inc/priv/alt_dev_llist.h new file mode 100644 index 0000000..451b063 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/HAL/inc/priv/alt_dev_llist.h @@ -0,0 +1,77 @@ +#ifndef __ALT_DEV_LLIST_H__ +#define __ALT_DEV_LLIST_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#include "sys/alt_llist.h" +#include "alt_types.h" + +/* + * This header provides the internal defenitions required to control file + * access. These variables and functions are not guaranteed to exist in + * future implementations of the HAL. + */ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * The alt_dev_llist is an internal structure used to form a common base + * class for all device types. The use of this structure allows common code + * to be used to manipulate the various device lists. + */ + +typedef struct { + alt_llist llist; + const char* name; +} alt_dev_llist; + +/* + * + */ + +extern int alt_dev_llist_insert (alt_dev_llist* dev, alt_llist* list); + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_DEV_LLIST_H__ */ diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/inc/priv/alt_exception_handler_registry.h b/software/qsys_tutorial_lcd4_bsp/HAL/inc/priv/alt_exception_handler_registry.h new file mode 100644 index 0000000..c6905fa --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/HAL/inc/priv/alt_exception_handler_registry.h @@ -0,0 +1,39 @@ +#ifndef __ALT_EXCEPTION_HANDLER_REGISTRY_H__ +#define __ALT_EXCEPTION_HANDLER_REGISTRY_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2008 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ +#include "sys/alt_exceptions.h" + +/* Function pointer to exception callback routine */ +extern alt_exception_result (*alt_instruction_exception_handler) + (alt_exception_cause, alt_u32, alt_u32); + +#endif /* __ALT_EXCEPTION_HANDLER_REGISTRY_H__ */ diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/inc/priv/alt_file.h b/software/qsys_tutorial_lcd4_bsp/HAL/inc/priv/alt_file.h new file mode 100644 index 0000000..2c3e843 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/HAL/inc/priv/alt_file.h @@ -0,0 +1,179 @@ +#ifndef __ALT_FILE_H__ +#define __ALT_FILE_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#include "sys/alt_dev.h" +#include "sys/alt_llist.h" +#include "os/alt_sem.h" + +#include "alt_types.h" + +/* + * This header provides the internal defenitions required to control file + * access. These variables and functions are not guaranteed to exist in + * future implementations of the HAL. + */ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * The function alt_find_dev() is used to search the device list "list" to + * locate a device named "name". If a match is found, then a pointer to the + * device is returned, otherwise NULL is returned. + */ + +extern alt_dev* alt_find_dev (const char* name, alt_llist* list); + +/* + * alt_find_file() is used to search the list of registered file systems to + * find the filesystem that the file named "name" belongs to. If a match is + * found, then a pointer to the filesystems alt_dev structure is returned, + * otherwise NULL is returned. + * + * Note that a match does not indicate that the file exists, only that a + * filesystem exists that is registered for a partition that could contain + * the file. The filesystems open() function would need to be called in order + * to determine if the file exists. + */ + +extern alt_dev* alt_find_file (const char* name); + +/* + * alt_get_fd() is used to allocate a file descriptor for the device or + * filesystem "dev". A negative return value indicates an error, otherwise the + * return value is the index of the file descriptor within the file descriptor + * pool. + */ + +extern int alt_get_fd (alt_dev* dev); + +/* + * alt_release_fd() is called to free the file descriptor with index "fd". + */ + +extern void alt_release_fd (int fd); + +/* + * alt_fd_lock() is called by ioctl() to mark the file descriptor "fd" as + * being open for exclusive access. Subsequent calls to open() for the device + * associated with "fd" will fail. A device is unlocked by either calling + * close() for "fd", or by an alternate call to ioctl() (see ioctl.c for + * details). + */ + +extern int alt_fd_lock (alt_fd* fd); + +/* + * alt_fd_unlock() is called by ioctl() to unlock a descriptor previously + * locked by a call to alt_fd_lock(). + */ + +extern int alt_fd_unlock (alt_fd* fd); + +/* + * "alt_fd_list" is the pool of file descriptors. + */ + +extern alt_fd alt_fd_list[]; + +/* + * flags used by alt_fd. + * + * ALT_FD_EXCL is used to mark a file descriptor as locked for exclusive + * access, i.e. further calls to open() for the associated device should + * fail. + * + * ALT_FD_DEV marks a dile descriptor as belonging to a device as oposed to a + * filesystem. + */ + +#define ALT_FD_EXCL 0x80000000 +#define ALT_FD_DEV 0x40000000 + +#define ALT_FD_FLAGS_MASK (ALT_FD_EXCL | ALT_FD_DEV) + +/* + * "alt_dev_list" is the head of the linked list of registered devices. + */ + +extern alt_llist alt_dev_list; + +/* + * "alt_fs_list" is the head of the linked list of registered filesystems. + */ + +extern alt_llist alt_fs_list; + +/* + * "alt_fd_list_lock" is a semaphore used to ensure that access to the pool + * of file descriptors is thread safe. + */ + +ALT_EXTERN_SEM(alt_fd_list_lock) + +/* + * "alt_max_fd" is a 'high water mark'. It indicates the highest file + * descriptor allocated. Use of this can save searching the entire pool + * for active file descriptors, which helps avoid contention on access + * to the file descriptor pool. + */ + +extern alt_32 alt_max_fd; + +/* + * alt_io_redirect() is called at startup to redirect stdout, stdin, and + * stderr to the devices named in the input arguments. By default these streams + * are directed at /dev/null, and are then redirected using this function once + * all of the devices have been registered within the system. + */ + +extern void alt_io_redirect(const char* stdout_dev, + const char* stdin_dev, + const char* stderr_dev); + + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_FILE_H__ */ diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/inc/priv/alt_iic_isr_register.h b/software/qsys_tutorial_lcd4_bsp/HAL/inc/priv/alt_iic_isr_register.h new file mode 100644 index 0000000..a0cb01c --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/HAL/inc/priv/alt_iic_isr_register.h @@ -0,0 +1,39 @@ +#ifndef __ALT_IIC_ISR_REGISTER_H_ +#define __ALT_IIC_ISR_REGISTER_H_ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2009 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ +#include "alt_types.h" +#include "sys/alt_irq.h" + +extern int alt_iic_isr_register(alt_u32 ic_id, alt_u32 irq, alt_isr_func isr, + void *isr_context, void *flags); + +#endif /* __ALT_IIC_ISR_REGISTER_H_ */ diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/inc/priv/alt_irq_table.h b/software/qsys_tutorial_lcd4_bsp/HAL/inc/priv/alt_irq_table.h new file mode 100644 index 0000000..694ef06 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/HAL/inc/priv/alt_irq_table.h @@ -0,0 +1,59 @@ +#ifndef __ALT_IRQ_TABLE_H__ +#define __ALT_IRQ_TABLE_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2009 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +/* + * Definition of a table describing each interrupt handler. The index into + * the array is the interrupt id associated with the handler. + * + * When an interrupt occurs, the associated handler is called with + * the argument stored in the context member. + * + * The table is physically created in alt_irq_handler.c + */ +extern struct ALT_IRQ_HANDLER +{ +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT + void (*handler)(void*); +#else + void (*handler)(void*, alt_u32); +#endif + void *context; +} alt_irq[ALT_NIRQ]; + +#endif diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/inc/priv/alt_legacy_irq.h b/software/qsys_tutorial_lcd4_bsp/HAL/inc/priv/alt_legacy_irq.h new file mode 100644 index 0000000..c7aec02 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/HAL/inc/priv/alt_legacy_irq.h @@ -0,0 +1,158 @@ +#ifndef __ALT_LEGACY_IRQ_H__ +#define __ALT_LEGACY_IRQ_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2009 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/* + * This file provides prototypes and inline implementations of certain routines + * used by the legacy interrupt API. Do not include this in your driver or + * application source files, use "sys/alt_irq.h" instead to access the proper + * public API. + */ + +#include +#include "system.h" + +#ifndef NIOS2_EIC_PRESENT + +#include "nios2.h" +#include "alt_types.h" + +#include "sys/alt_irq.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * alt_irq_register() can be used to register an interrupt handler. If the + * function is succesful, then the requested interrupt will be enabled upon + * return. + */ +extern int alt_irq_register (alt_u32 id, + void* context, + alt_isr_func handler); + +/* + * alt_irq_disable() disables the individual interrupt indicated by "id". + */ +static ALT_INLINE int ALT_ALWAYS_INLINE alt_irq_disable (alt_u32 id) +{ + alt_irq_context status; + extern volatile alt_u32 alt_irq_active; + + status = alt_irq_disable_all (); + + alt_irq_active &= ~(1 << id); + NIOS2_WRITE_IENABLE (alt_irq_active); + + alt_irq_enable_all(status); + + return 0; +} + +/* + * alt_irq_enable() enables the individual interrupt indicated by "id". + */ +static ALT_INLINE int ALT_ALWAYS_INLINE alt_irq_enable (alt_u32 id) +{ + alt_irq_context status; + extern volatile alt_u32 alt_irq_active; + + status = alt_irq_disable_all (); + + alt_irq_active |= (1 << id); + NIOS2_WRITE_IENABLE (alt_irq_active); + + alt_irq_enable_all(status); + + return 0; +} + +#ifndef ALT_EXCEPTION_STACK +/* + * alt_irq_initerruptable() should only be called from within an ISR. It is used + * to allow higer priority interrupts to interrupt the current ISR. The input + * argument, "priority", is the priority, i.e. interrupt number of the current + * interrupt. + * + * If this function is called, then the ISR is required to make a call to + * alt_irq_non_interruptible() before returning. The input argument to + * alt_irq_non_interruptible() is the return value from alt_irq_interruptible(). + * + * Care should be taken when using this pair of functions, since they increasing + * the system overhead associated with interrupt handling. + * + * If you are using an exception stack then nested interrupts won't work, so + * these functions are not available in that case. + */ +static ALT_INLINE alt_u32 ALT_ALWAYS_INLINE alt_irq_interruptible (alt_u32 priority) +{ + extern volatile alt_u32 alt_priority_mask; + extern volatile alt_u32 alt_irq_active; + + alt_u32 old_priority; + + old_priority = alt_priority_mask; + alt_priority_mask = (1 << priority) - 1; + + NIOS2_WRITE_IENABLE (alt_irq_active & alt_priority_mask); + + NIOS2_WRITE_STATUS (1); + + return old_priority; +} + +/* + * See Comments above for alt_irq_interruptible() for an explanation of the use of this + * function. + */ +static ALT_INLINE void ALT_ALWAYS_INLINE alt_irq_non_interruptible (alt_u32 mask) +{ + extern volatile alt_u32 alt_priority_mask; + extern volatile alt_u32 alt_irq_active; + + NIOS2_WRITE_STATUS (0); + + alt_priority_mask = mask; + + NIOS2_WRITE_IENABLE (mask & alt_irq_active); +} +#endif /* ALT_EXCEPTION_STACK */ + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* NIOS2_EIC_PRESENT */ + +#endif /* __ALT_LEGACY_IRQ_H__ */ diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/inc/priv/alt_no_error.h b/software/qsys_tutorial_lcd4_bsp/HAL/inc/priv/alt_no_error.h new file mode 100644 index 0000000..6143fc9 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/HAL/inc/priv/alt_no_error.h @@ -0,0 +1,77 @@ +#ifndef __ALT_NO_ERROR_H__ +#define __ALT_NO_ERROR_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#include "alt_types.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * alt_no_error() is a dummy function used by alt_sem.h and alt_flag.h. It + * substitutes for functions that have a return code by creating a function + * that always returns zero. + * + * This may seem a little obscure, but what happens is that the compiler can + * then optomise away the call to this function, and any code written which + * handles the error path (i.e. non zero return values). + * + * This allows code to be written which correctly use the uC/OS-II semaphore + * and flag utilities, without the use of those utilities impacting on + * excutables built for a single threaded HAL environment. + * + * This function is considered to be part of the internal implementation of + * the HAL, and should not be called directly by application code or device + * drivers. It is not guaranteed to be preserved in future versions of the + * HAL. + */ + +static ALT_INLINE int ALT_ALWAYS_INLINE alt_no_error (void) +{ + return 0; +} + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_NO_ERROR_H__ */ diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/inc/priv/nios2_gmon_data.h b/software/qsys_tutorial_lcd4_bsp/HAL/inc/priv/nios2_gmon_data.h new file mode 100644 index 0000000..3f43f12 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/HAL/inc/priv/nios2_gmon_data.h @@ -0,0 +1,47 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ +#ifndef NIOS2_GMON_DATA_H +#define NIOS2_GMON_DATA_H + +#define GMON_DATA_SIG 0 +#define GMON_DATA_WORDS 1 +#define GMON_DATA_PROFILE_DATA 2 +#define GMON_DATA_PROFILE_LOWPC 3 +#define GMON_DATA_PROFILE_HIGHPC 4 +#define GMON_DATA_PROFILE_BUCKET 5 +#define GMON_DATA_PROFILE_RATE 6 +#define GMON_DATA_MCOUNT_START 7 +#define GMON_DATA_MCOUNT_LIMIT 8 + +#define GMON_DATA_SIZE 9 + +extern unsigned int alt_gmon_data[GMON_DATA_SIZE]; + +#endif diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_alarm.h b/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_alarm.h new file mode 100644 index 0000000..68a2f5d --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_alarm.h @@ -0,0 +1,126 @@ +#ifndef __ALT_ALARM_H__ +#define __ALT_ALARM_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#include "alt_llist.h" +#include "alt_types.h" + +#include "priv/alt_alarm.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * "alt_alarm" is a structure type used by applications to register an alarm + * callback function. An instance of this type must be passed as an input + * argument to alt_alarm_start(). The user is not responsible for initialising + * the contents of the instance. This is done by alt_alarm_start(). + */ + +typedef struct alt_alarm_s alt_alarm; + +/* + * alt_alarm_start() can be called by an application/driver in order to register + * a function for periodic callback at the system clock frequency. Be aware that + * this callback is likely to occur in interrupt context. + */ + +extern int alt_alarm_start (alt_alarm* the_alarm, + alt_u32 nticks, + alt_u32 (*callback) (void* context), + void* context); + +/* + * alt_alarm_stop() is used to unregister a callback. Alternatively the callback + * can return zero to unregister. + */ + +extern void alt_alarm_stop (alt_alarm* the_alarm); + +/* + * Obtain the system clock rate in ticks/s. + */ + +static ALT_INLINE alt_u32 ALT_ALWAYS_INLINE alt_ticks_per_second (void) +{ + return _alt_tick_rate; +} + +/* + * alt_sysclk_init() is intended to be only used by the system clock driver + * in order to initialise the value of the clock frequency. + */ + +static ALT_INLINE int ALT_ALWAYS_INLINE alt_sysclk_init (alt_u32 nticks) +{ + if (! _alt_tick_rate) + { + _alt_tick_rate = nticks; + return 0; + } + else + { + return -1; + } +} + +/* + * alt_nticks() returns the elapsed number of system clock ticks since reset. + */ + +static ALT_INLINE alt_u32 ALT_ALWAYS_INLINE alt_nticks (void) +{ + return _alt_nticks; +} + +/* + * alt_tick() should only be called by the system clock driver. This is used + * to notify the system that the system timer period has expired. + */ + +extern void alt_tick (void); + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_ALARM_H__ */ diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_cache.h b/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_cache.h new file mode 100644 index 0000000..c4d8db9 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_cache.h @@ -0,0 +1,117 @@ +#ifndef __ALT_CACHE_H__ +#define __ALT_CACHE_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003, 2007 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include + +#include "alt_types.h" + +/* + * alt_cache.h defines the processor specific functions for manipulating the + * cache. + */ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * alt_icache_flush() is called to flush the instruction cache for a memory + * region of length "len" bytes, starting at address "start". + */ + +extern void alt_icache_flush (void* start, alt_u32 len); + +/* + * alt_dcache_flush() is called to flush the data cache for a memory + * region of length "len" bytes, starting at address "start". + * Any dirty lines in the data cache are written back to memory. + */ + +extern void alt_dcache_flush (void* start, alt_u32 len); + +/* + * alt_dcache_flush() is called to flush the data cache for a memory + * region of length "len" bytes, starting at address "start". + * Any dirty lines in the data cache are NOT written back to memory. + */ + +extern void alt_dcache_flush_no_writeback (void* start, alt_u32 len); + +/* + * Flush the entire instruction cache. + */ + +extern void alt_icache_flush_all (void); + +/* + * Flush the entire data cache. + */ + +extern void alt_dcache_flush_all (void); + +/* + * Allocate a block of uncached memory. + */ + +extern volatile void* alt_uncached_malloc (size_t size); + +/* + * Free a block of uncached memory. + */ + +extern void alt_uncached_free (volatile void* ptr); + +/* + * Convert a pointer to a block of cached memory, into a block of + * uncached memory. + */ + +extern volatile void* alt_remap_uncached (void* ptr, alt_u32 len); + +/* + * Convert a pointer to a block of uncached memory, into a block of + * cached memory. + */ + +extern void* alt_remap_cached (volatile void* ptr, alt_u32 len); + +/* + * + */ + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_CACHE_H__ */ diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_debug.h b/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_debug.h new file mode 100644 index 0000000..d9f9599 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_debug.h @@ -0,0 +1,45 @@ +#ifndef __ALT_DEBUG_H__ +#define __ALT_DEBUG_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/* + * The ALT_DEVUG_ASSERT macro can be used to generate a debugger break + * from within software. The break is generated if "condition" evaluates to + * false. + */ + +#define ALT_DEBUG_ASSERT(condition) if (!condition) \ +{ \ + __asm__ volatile ("break"); \ +} + +#endif /* __ALT_DEBUG_H__ */ diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_dev.h b/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_dev.h new file mode 100644 index 0000000..66c5e41 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_dev.h @@ -0,0 +1,115 @@ +#ifndef __ALT_DEV_H__ +#define __ALT_DEV_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#include "system.h" +#include "sys/alt_llist.h" +#include "priv/alt_dev_llist.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * The value ALT_IRQ_NOT_CONNECTED is used to represent an unconnected + * interrupt line. It cannot evaluate to a valid interrupt number. + */ + +#define ALT_IRQ_NOT_CONNECTED (-1) + +typedef struct alt_dev_s alt_dev; + +struct stat; + +/* + * The file descriptor structure definition. + */ + +typedef struct alt_fd_s +{ + alt_dev* dev; + alt_u8* priv; + int fd_flags; +} alt_fd; + +/* + * The device structure definition. + */ + +struct alt_dev_s { + alt_llist llist; /* for internal use */ + const char* name; + int (*open) (alt_fd* fd, const char* name, int flags, int mode); + int (*close) (alt_fd* fd); + int (*read) (alt_fd* fd, char* ptr, int len); + int (*write) (alt_fd* fd, const char* ptr, int len); + int (*lseek) (alt_fd* fd, int ptr, int dir); + int (*fstat) (alt_fd* fd, struct stat* buf); + int (*ioctl) (alt_fd* fd, int req, void* arg); +}; + +/* + * Functions used to register device for access through the C standard + * library. + * + * The only difference between alt_dev_reg() and alt_fs_reg() is the + * interpretation that open() places on the device name. In the case of + * alt_dev_reg the device is assumed to be a particular character device, + * and so there must be an exact match in the name for open to succeed. + * In the case of alt_fs_reg() the name of the device is treated as the + * mount point for a directory, and so any call to open() where the name + * is the root of the device filename will succeed. + */ + +extern int alt_fs_reg (alt_dev* dev); + +static ALT_INLINE int alt_dev_reg (alt_dev* dev) +{ + extern alt_llist alt_dev_list; + + return alt_dev_llist_insert ((alt_dev_llist*) dev, &alt_dev_list); +} + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_DEV_H__ */ diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_dma.h b/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_dma.h new file mode 100644 index 0000000..9f9b2ff --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_dma.h @@ -0,0 +1,226 @@ +#ifndef __ALT_DMA_H__ +#define __ALT_DMA_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004-2005 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#include "sys/alt_dma_dev.h" +#include "alt_types.h" + +#include + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * This header contains the application side interface for accessing DMA + * resources. See alt_dma_dev.h for the dma device driver interface. + * + * The interface model treats a DMA transaction as being composed of two + * halves (read and write). + * + * The application can supply data for transmit using an "alt_dma_txchan" + * descriptor. Alternatively an "alt_dma_rxchan" descriptor can be used to + * receive data. + */ + +/* + * alt_dma_txchan_open() is used to obtain an "alt_dma_txchan" descriptor for + * a DMA transmit device. The name is the name of the associated physical + * device (e.g. "/dev/dma_0"). + * + * The return value will be NULL on failure, and non-NULL otherwise. + */ + +extern alt_dma_txchan alt_dma_txchan_open (const char* name); + +/* + * alt_dma_txchan_close() is provided so that an application can notify the + * system that it has finished with a given DMA transmit channel. This is only + * provided for completness. + */ + +static ALT_INLINE int alt_dma_txchan_close (alt_dma_txchan dma) +{ + return 0; +} + +/* + * alt_dma_txchan_send() posts a transmit request to a DMA transmit channel. + * The input arguments are: + * + * dma: the channel to use. + * from: a pointer to the start of the data to send. + * length: the length of the data to send in bytes. + * done: callback function that will be called once the data has been sent. + * handle: opaque value passed to "done". + * + * The return value will be negative if the request cannot be posted, and + * zero otherwise. + */ + +static ALT_INLINE int alt_dma_txchan_send (alt_dma_txchan dma, + const void* from, + alt_u32 length, + alt_txchan_done* done, + void* handle) +{ + return dma ? dma->dma_send (dma, + from, + length, + done, + handle) : -ENODEV; +} + +/* + * alt_dma_txchan_space() returns the number of tranmit requests that can be + * posted to the specified DMA transmit channel. + * + * A negative value indicates that the value could not be determined. + */ + +static ALT_INLINE int alt_dma_txchan_space (alt_dma_txchan dma) +{ + return dma ? dma->space (dma) : -ENODEV; +} + +/* + * alt_dma_txchan_ioctl() can be used to perform device specific I/O + * operations on the indicated DMA transmit channel. For example some drivers + * support options to control the width of the transfer operations. See + * alt_dma_dev.h for the list of generic requests. + * + * A negative return value indicates failure, otherwise the interpretation + * of the return value is request specific. + */ + +static ALT_INLINE int alt_dma_txchan_ioctl (alt_dma_txchan dma, + int req, + void* arg) +{ + return dma ? dma->ioctl (dma, req, arg) : -ENODEV; +} + +/* + * alt_dma_rxchan_open() is used to obtain an "alt_dma_rxchan" descriptor for + * a DMA receive channel. The name is the name of the associated physical + * device (e.g. "/dev/dma_0"). + * + * The return value will be NULL on failure, and non-NULL otherwise. + */ + +extern alt_dma_rxchan alt_dma_rxchan_open (const char* dev); + +/* + * alt_dma_rxchan_close() is provided so that an application can notify the + * system that it has finished with a given DMA receive channel. This is only + * provided for completness. + */ + +static ALT_INLINE int alt_dma_rxchan_close (alt_dma_rxchan dma) +{ + return 0; +} + +/* + * + */ + +/* + * alt_dma_rxchan_prepare() posts a receive request to a DMA receive channel. + * + * The input arguments are: + * + * dma: the channel to use. + * data: a pointer to the location that data is to be received to. + * len: the maximum length of the data to receive. + * done: callback function that will be called once the data has been + * received. + * handle: opaque value passed to "done". + * + * The return value will be negative if the request cannot be posted, and + * zero otherwise. + */ + +static ALT_INLINE int alt_dma_rxchan_prepare (alt_dma_rxchan dma, + void* data, + alt_u32 len, + alt_rxchan_done* done, + void* handle) +{ + return dma ? dma->prepare (dma, data, len, done, handle) : -ENODEV; +} + +/* + * alt_dma_rxchan_ioctl() can be used to perform device specific I/O + * operations on the indicated DMA receive channel. For example some drivers + * support options to control the width of the transfer operations. See + * alt_dma_dev.h for the list of generic requests. + * + * A negative return value indicates failure, otherwise the interpretation + * of the return value is request specific. + */ + +static ALT_INLINE int alt_dma_rxchan_ioctl (alt_dma_rxchan dma, + int req, + void* arg) +{ + return dma ? dma->ioctl (dma, req, arg) : -ENODEV; +} + +/* + * alt_dma_rxchan_depth() returns the depth of the receive FIFO used to store + * receive requests. + */ + +static ALT_INLINE alt_u32 alt_dma_rxchan_depth(alt_dma_rxchan dma) +{ + return dma->depth; +} + +/* + * + */ + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __ALT_DMA_H__ */ diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_dma_dev.h b/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_dma_dev.h new file mode 100644 index 0000000..832463d --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_dma_dev.h @@ -0,0 +1,200 @@ +#ifndef __ALT_DMA_DEV_H__ +#define __ALT_DMA_DEV_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004-2005 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#include "priv/alt_dev_llist.h" + +#include "alt_types.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * This header contains the device driver interface for accessing DMA + * resources. See alt_dma.h for the DMA application side interface. + * + * The interface model treats a DMA transaction as being composed of two + * halves (read and write). + * + * An "alt_dma_txchan_dev" is used to describe the device associated with a + * DMA transmit channel. An "alt_dma_rxchan_dev" is used to describe the + * device associated with a DMA receive channel. + */ + +/* + * List of generic ioctl requests that may be supported by a DMA device. + * + * ALT_DMA_RX_ONLY_ON: This causes a DMA channel to operate in a mode + * where only the receiver is under software control. + * The other side reads continously from a single + * location. The address to read is the argument to + * this request. + * ALT_DMA_RX_ONLY_OFF: Return to the default mode where both the receive + * and transmit sides of the DMA can be under software + * control. + * ALT_DMA_TX_ONLY_ON: This causes a DMA channel to operate in a mode + * where only the transmitter is under software control. + * The other side writes continously to a single + * location. The address to write to is the argument to + * this request. + * ALT_DMA_TX_ONLY_OFF: Return to the default mode where both the receive + * and transmit sides of the DMA can be under software + * control. + * ALT_DMA_SET_MODE_8: Transfer data in units of 8 bits. + * ALT_DMA_SET_MODE_16: Transfer data in units of 16 bits. + * ALT_DMA_SET_MODE_32: Transfer data in units of 32 bits. + * ALT_DMA_SET_MODE_64: Transfer data in units of 64 bits. + * ALT_DMA_SET_MODE_128: Transfer data in units of 128 bits. + * ALT_DMA_GET_MODE: Get the current transfer mode. + * + * The use of the macros: ALT_DMA_TX_STREAM_ON, ALT_DMA_TX_STREAM_OFF + * ALT_DMA_RX_STREAM_OFF and ALT_DMA_RX_STREAM_ON are depreciated. You should + * instead use the macros: ALT_DMA_RX_ONLY_ON, ALT_DMA_RX_ONLY_OFF, + * ALT_DMA_TX_ONLY_ON and ALT_DMA_TX_ONLY_OFF. + */ + +#define ALT_DMA_TX_STREAM_ON (0x1) +#define ALT_DMA_TX_STREAM_OFF (0x2) +#define ALT_DMA_RX_STREAM_ON (0x3) +#define ALT_DMA_RX_STREAM_OFF (0x4) +#define ALT_DMA_SET_MODE_8 (0x5) +#define ALT_DMA_SET_MODE_16 (0x6) +#define ALT_DMA_SET_MODE_32 (0x7) +#define ALT_DMA_SET_MODE_64 (0x8) +#define ALT_DMA_SET_MODE_128 (0x9) +#define ALT_DMA_GET_MODE (0xa) + +#define ALT_DMA_RX_ONLY_ON ALT_DMA_TX_STREAM_ON +#define ALT_DMA_RX_ONLY_OFF ALT_DMA_TX_STREAM_OFF +#define ALT_DMA_TX_ONLY_ON ALT_DMA_RX_STREAM_ON +#define ALT_DMA_TX_ONLY_OFF ALT_DMA_RX_STREAM_OFF + +/* + * + */ + +typedef struct alt_dma_txchan_dev_s alt_dma_txchan_dev; +typedef struct alt_dma_rxchan_dev_s alt_dma_rxchan_dev; + +typedef alt_dma_txchan_dev* alt_dma_txchan; +typedef alt_dma_rxchan_dev* alt_dma_rxchan; + +typedef void (alt_txchan_done)(void* handle); +typedef void (alt_rxchan_done)(void* handle, void* data); + +/* + * devices that provide a DMA transmit channel are required to provide an + * instance of the "alt_dma_txchan_dev" structure. + */ + +struct alt_dma_txchan_dev_s { + alt_llist llist; /* for internal use */ + const char* name; /* name of the device instance + * (e.g. "/dev/dma_0"). + */ + int (*space) (alt_dma_txchan dma); /* returns the maximum number of + * transmit requests that can be posted + */ + int (*dma_send) (alt_dma_txchan dma, + const void* from, + alt_u32 len, + alt_txchan_done* done, + void* handle); /* post a transmit request */ + int (*ioctl) (alt_dma_txchan dma, int req, void* arg); /* perform device + * specific I/O control. + */ +}; + +/* + * devices that provide a DMA receive channel are required to provide an + * instance of the "alt_dma_rxchan_dev" structure. + */ + +struct alt_dma_rxchan_dev_s { + alt_llist list; /* for internal use */ + const char* name; /* name of the device instance + * (e.g. "/dev/dma_0"). + */ + alt_u32 depth; /* maximum number of receive requests that + * can be posted. + */ + int (*prepare) (alt_dma_rxchan dma, + void* data, + alt_u32 len, + alt_rxchan_done* done, + void* handle); /* post a receive request */ + int (*ioctl) (alt_dma_rxchan dma, int req, void* arg); /* perform device + * specific I/O control. + */ +}; + +/* + * Register a DMA transmit channel with the system. + */ + +static ALT_INLINE int alt_dma_txchan_reg (alt_dma_txchan_dev* dev) +{ + extern alt_llist alt_dma_txchan_list; + + return alt_dev_llist_insert((alt_dev_llist*) dev, &alt_dma_txchan_list); +} + +/* + * Register a DMA receive channel with the system. + */ + +static ALT_INLINE int alt_dma_rxchan_reg (alt_dma_rxchan_dev* dev) +{ + extern alt_llist alt_dma_rxchan_list; + + return alt_dev_llist_insert((alt_dev_llist*) dev, &alt_dma_rxchan_list); +} + +/* + * + */ + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __ALT_DMA_DEV_H__ */ diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_driver.h b/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_driver.h new file mode 100644 index 0000000..eb0f23b --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_driver.h @@ -0,0 +1,168 @@ +#ifndef __ALT_DRIVER_H__ +#define __ALT_DRIVER_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/* + * Macros used to access a driver without HAL file descriptors. + */ + +/* + * ALT_MODULE_CLASS + * + * This macro returns the module class name for the specified module instance. + * It uses information in the system.h file. + * Neither the instance name or class name are quoted (so that they can + * be used with other pre-processor macros). + * + * Example: + * Assume the design has an instance of an altera_avalon_uart called uart1. + * Calling ALT_MODULE_CLASS(uart1) returns altera_avalon_uart. + */ + +#define ALT_MODULE_CLASS(instance) ALT_MODULE_CLASS_ ## instance + + +/* + * ALT_DRIVER_FUNC_NAME + * + * --> instance Instance name. + * --> func Function name. + * + * This macro returns the device driver function name of the specified + * module instance for the specified function name. + * + * Example: + * Assume the design has an instance of an altera_avalon_uart called uart1. + * Calling ALT_DRIVER_FUNC_NAME(uart1, write) returns + * altera_avalon_uart_write. + */ + +#define ALT_DRIVER_FUNC_NAME(instance, func) \ + ALT_DRIVER_FUNC_NAME1(ALT_MODULE_CLASS(instance), func) +#define ALT_DRIVER_FUNC_NAME1(module_class, func) \ + ALT_DRIVER_FUNC_NAME2(module_class, func) +#define ALT_DRIVER_FUNC_NAME2(module_class, func) \ + module_class ## _ ## func + +/* + * ALT_DRIVER_STATE_STRUCT + * + * --> instance Instance name. + * + * This macro returns the device driver state type name of the specified + * module instance. + * + * Example: + * Assume the design has an instance of an altera_avalon_uart called uart1. + * Calling ALT_DRIVER_STATE_STRUCT(uart1) returns: + * struct altera_avalon_uart_state_s + * + * Note that the ALT_DRIVER_FUNC_NAME macro is used even though "state" isn't + * really a function but it does match the required naming convention. + */ +#define ALT_DRIVER_STATE_STRUCT(instance) \ + struct ALT_DRIVER_FUNC_NAME(instance, state_s) + +/* + * ALT_DRIVER_STATE + * + * --> instance Instance name. + * + * This macro returns the device driver state name of the specified + * module instance. + * + * Example: + * Assume the design has an instance of an altera_avalon_uart called uart1. + * Calling ALT_DRIVER_STATE(uart1) returns uart1. + */ +#define ALT_DRIVER_STATE(instance) instance + +/* + * ALT_DRIVER_WRITE + * + * --> instance Instance name. + * --> buffer Write buffer. + * --> len Length of write buffer data. + * --> flags Control flags (e.g. O_NONBLOCK) + * + * This macro calls the "write" function of the specified driver instance. + */ + +#define ALT_DRIVER_WRITE_EXTERNS(instance) \ + extern ALT_DRIVER_STATE_STRUCT(instance) ALT_DRIVER_STATE(instance); \ + extern int ALT_DRIVER_FUNC_NAME(instance, write) \ + (ALT_DRIVER_STATE_STRUCT(instance) *, const char *, int, int); + +#define ALT_DRIVER_WRITE(instance, buffer, len, flags) \ + ALT_DRIVER_FUNC_NAME(instance, write)(&ALT_DRIVER_STATE(instance), buffer, len, flags) + + +/* + * ALT_DRIVER_READ + * + * --> instance Instance name. + * <-- buffer Read buffer. + * --> len Length of read buffer. + * --> flags Control flags (e.g. O_NONBLOCK) + * + * This macro calls the "read" function of the specified driver instance. + */ + +#define ALT_DRIVER_READ_EXTERNS(instance) \ + extern ALT_DRIVER_STATE_STRUCT(instance) ALT_DRIVER_STATE(instance); \ + extern int ALT_DRIVER_FUNC_NAME(instance, read) \ + (ALT_DRIVER_STATE_STRUCT(instance) *, const char *, int, int); + +#define ALT_DRIVER_READ(instance, buffer, len, flags) \ + ALT_DRIVER_FUNC_NAME(instance, read)(&ALT_DRIVER_STATE(instance), buffer, len, flags) + +/* + * ALT_DRIVER_IOCTL + * + * --> instance Instance name. + * --> req ioctl request (e.g. TIOCSTIMEOUT) + * --> arg Optional argument (void*) + * + * This macro calls the "ioctl" function of the specified driver instance + */ + +#define ALT_DRIVER_IOCTL_EXTERNS(instance) \ + extern ALT_DRIVER_STATE_STRUCT(instance) ALT_DRIVER_STATE(instance); \ + extern int ALT_DRIVER_FUNC_NAME(instance, ioctl) \ + (ALT_DRIVER_STATE_STRUCT(instance) *, int, void*); + +#define ALT_DRIVER_IOCTL(instance, req, arg) \ + ALT_DRIVER_FUNC_NAME(instance, ioctl)(&ALT_DRIVER_STATE(instance), req, arg) + +#endif /* __ALT_DRIVER_H__ */ diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_errno.h b/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_errno.h new file mode 100644 index 0000000..4d3e50f --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_errno.h @@ -0,0 +1,87 @@ +#ifndef __ALT_ERRNO_H__ +#define __ALT_ERRNO_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +/* + * errno is defined in so that it uses the thread local version + * stored in the location pointed to by "_impure_ptr". This means that the + * accesses to errno within the HAL library can cause the entirety of + * of the structure pointed to by "_impure_ptr" to be added to the + * users application. This can be undesirable in very small footprint systems. + * + * To avoid this happening, the HAL uses the macro ALT_ERRNO, defined below, + * to access errno, rather than accessing it directly. This macro will only + * use the thread local version if some other code has already caused it to be + * included into the system, otherwise it will use the global errno value. + * + * This causes a slight increases in code size where errno is accessed, but + * can lead to significant overall benefits in very small systems. The + * increase is inconsequential when compared to the size of the structure + * pointed to by _impure_ptr. + * + * Note that this macro accesses __errno() using an externally declared + * function pointer (alt_errno). This is done so that the function call uses the + * subroutine call instruction via a register rather than an immediate address. + * This is important in the case that the code has been linked for a high + * address, but __errno() is not being used. In this case the weak linkage + * would have resulted in the instruction: "call 0" which would fail to link. + */ + +extern int* (*alt_errno) (void); + +/* Must define this so that values such as EBADFD are defined in errno.h. */ +#define __LINUX_ERRNO_EXTENSIONS__ + +#include + +#include "alt_types.h" + +#undef errno + +extern int errno; + +static ALT_INLINE int* alt_get_errno(void) +{ + return ((alt_errno) ? alt_errno() : &errno); +} + +#define ALT_ERRNO *alt_get_errno() + +#endif /* __ALT_ERRNO_H__ */ diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_exceptions.h b/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_exceptions.h new file mode 100644 index 0000000..3576a52 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_exceptions.h @@ -0,0 +1,127 @@ +#ifndef __ALT_EXCEPTIONS_H__ +#define __ALT_EXCEPTIONS_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2008 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ +#include "alt_types.h" +#include "system.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * This file defines instruction-generated exception handling and registry + * API, exception type enumeration, and handler return value enumeration for + * Nios II. + */ + +/* + * The following enumeration describes the value in the CPU EXCEPTION + * register CAUSE bit field. Not all exception types will cause the + * processor to go to the exception vector; these are provided for + * reference. + */ +enum alt_exception_cause_e { + /* Exeption causes that will cause jump to exception vector */ + NIOS2_EXCEPTION_INTERRUPT = 2, + NIOS2_EXCEPTION_TRAP_INST = 3, + NIOS2_EXCEPTION_UNIMPLEMENTED_INST = 4, + NIOS2_EXCEPTION_ILLEGAL_INST = 5, + NIOS2_EXCEPTION_MISALIGNED_DATA_ADDR = 6, + NIOS2_EXCEPTION_MISALIGNED_TARGET_PC = 7, + NIOS2_EXCEPTION_DIVISION_ERROR = 8, + NIOS2_EXCEPTION_SUPERVISOR_ONLY_INST_ADDR = 9, + NIOS2_EXCEPTION_SUPERVISOR_ONLY_INST = 10, + NIOS2_EXCEPTION_SUPERVISOR_ONLY_DATA_ADDR = 11, + NIOS2_EXCEPTION_TLB_MISS = 12, + NIOS2_EXCEPTION_TLB_EXECUTE_PERM_VIOLATION = 13, + NIOS2_EXCEPTION_MPU_INST_REGION_VIOLATION = 16, + + /* Exception causes that will NOT cause a jump to exception vector */ + NIOS2_EXCEPTION_RESET = 0, + NIOS2_EXCEPTION_CPU_ONLY_RESET_REQUEST = 1, + NIOS2_EXCEPTION_TLB_READ_PERM_VIOLATION = 14, + NIOS2_EXCEPTION_TLB_WRITE_PERM_VIOLATION = 15, + NIOS2_EXCEPTION_MPU_DATA_REGION_VIOLATION = 17, + /* + * This value is passed to an exception handler's cause argument if + * "extra exceptions" information (EXECPTION) register is not + * present in the processor hardware configuration. + */ + NIOS2_EXCEPTION_CAUSE_NOT_PRESENT = -1 +}; +typedef enum alt_exception_cause_e alt_exception_cause; + +/* + * These define valid return values for a user-defined instruction-generated + * exception handler. The handler should return one of these to indicate + * whether to re-issue the instruction that triggered the exception, or to + * skip it. + */ +enum alt_exception_result_e { + NIOS2_EXCEPTION_RETURN_REISSUE_INST = 0, + NIOS2_EXCEPTION_RETURN_SKIP_INST = 1 +}; +typedef enum alt_exception_result_e alt_exception_result; + +/* + * alt_instruction_exception_register() can be used to register an exception + * handler for instruction-generated exceptions that are not handled by the + * built-in exception handler (i.e. for interrupts). + * + * The registry API is optionally enabled through the "Enable + * Instruction-related Exception API" HAL BSP setting, which will + * define the macro below. + */ +#ifdef ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API +void alt_instruction_exception_register ( + alt_exception_result (*exception_handler)( + alt_exception_cause cause, + alt_u32 exception_pc, + alt_u32 bad_addr) ); +#endif /*ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API */ + +/* + * alt_exception_cause_generated_bad_addr() indicates whether a particular + * exception cause value was from an exception-type that generated a valid + * address in the BADADDR register. The contents of BADADDR is passed to + * a user-registered exception handler in all cases, whether valid or not. + * This routine should be called to validate the bad_addr argument to + * your exception handler. + */ +int alt_exception_cause_generated_bad_addr(alt_exception_cause cause); + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __ALT_EXCEPTIONS_H__ */ diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_flash.h b/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_flash.h new file mode 100644 index 0000000..527328d --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_flash.h @@ -0,0 +1,166 @@ +#ifndef __ALT_FLASH_H__ +#define __ALT_FLASH_H__ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +/****************************************************************************** +* * +* Alt_flash.h - User interface for flash code * +* * +* Use this interface to avoid being exposed to the internals of the device * +* driver architecture. If you chose to use the flash driver internal * +* structures we don't guarantee not to change them * +* * +* Author PRR * +* * +******************************************************************************/ + + + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +#include "alt_types.h" +#include "alt_flash_types.h" +#include "alt_flash_dev.h" +#include "sys/alt_cache.h" + +alt_flash_fd* alt_flash_open_dev(const char* name); +void alt_flash_close_dev(alt_flash_fd* fd ); + +/* + * alt_write_flash + * + * Program a buffer into flash. + * + * This routine erases all the affected erase blocks (if necessary) + * and then programs the data. However it does not read the data out first + * and preserve and none overwritten data, because this would require very + * large buffers on the target. If you need + * that functionality use the functions below. + */ +static __inline__ int __attribute__ ((always_inline)) alt_write_flash( + alt_flash_fd* fd, + int offset, + const void* src_addr, + int length ) +{ + return fd->write( fd, offset, src_addr, length ); +} + +/* + * alt_read_flash + * + * Read a block of flash for most flashes this is just memcpy + * it's here for completeness in case we need it for some serial flash device + * + */ +static __inline__ int __attribute__ ((always_inline)) alt_read_flash( + alt_flash_fd* fd, int offset, + void* dest_addr, int length ) +{ + return fd->read( fd, offset, dest_addr, length ); +} + +/* + * alt_get_flash_info + * + * Return the information on the flash sectors. + * + */ +static __inline__ int __attribute__ ((always_inline)) alt_get_flash_info( + alt_flash_fd* fd, flash_region** info, + int* number_of_regions) +{ + return fd->get_info( fd, info, number_of_regions); +} + +/* + * alt_erase_flash_block + * + * Erase a particular erase block, pass in the offset to the start of + * the block and it's size + */ +static __inline__ int __attribute__ ((always_inline)) alt_erase_flash_block( + alt_flash_fd* fd, int offset, int length) +{ + int ret_code; + ret_code = fd->erase_block( fd, offset ); + + if(!ret_code) + alt_dcache_flush((alt_u8*)fd->base_addr + offset, length); + + return ret_code; +} + +/* + * alt_write_flash_block + * + * Write a particular flash block, block_offset is the offset + * (from the base of flash) to start of the block + * data_offset is the offset (from the base of flash) + * where you wish to start programming + * + * NB this function DOES NOT check that you are only writing a single + * block of data as that would slow down this function. + * + * Use alt_write_flash if you want that level of error checking. + */ + +static __inline__ int __attribute__ ((always_inline)) alt_write_flash_block( + alt_flash_fd* fd, int block_offset, + int data_offset, + const void *data, int length) +{ + + int ret_code; + ret_code = fd->write_block( fd, block_offset, data_offset, data, length ); + + if(!ret_code) + alt_dcache_flush((alt_u8*)fd->base_addr + data_offset, length); + + return ret_code; +} + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_FLASH_H__ */ diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_flash_dev.h b/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_flash_dev.h new file mode 100644 index 0000000..8bab601 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_flash_dev.h @@ -0,0 +1,98 @@ +#ifndef __ALT_FLASH_DEV_H__ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +/****************************************************************************** +* * +* Alt_flash_dev.h - Generic Flash device interfaces * +* * +* Author PRR * +* * +******************************************************************************/ +#define __ALT_FLASH_DEV_H__ + +#include "alt_flash_types.h" +#include "sys/alt_llist.h" +#include "priv/alt_dev_llist.h" + +#include "alt_types.h" + +typedef struct alt_flash_dev alt_flash_dev; +typedef alt_flash_dev alt_flash_fd; + +static ALT_INLINE int alt_flash_device_register( alt_flash_fd* fd) +{ + extern alt_llist alt_flash_dev_list; + + return alt_dev_llist_insert ((alt_dev_llist*) fd, &alt_flash_dev_list); +} + +typedef alt_flash_dev* (*alt_flash_open)(alt_flash_dev* flash, + const char* name ); +typedef int (*alt_flash_close)(alt_flash_dev* flash_info); + +typedef int (*alt_flash_write)( alt_flash_dev* flash, int offset, + const void* src_addr, int length ); + +typedef int (*alt_flash_get_flash_info)( alt_flash_dev* flash, flash_region** info, + int* number_of_regions); +typedef int (*alt_flash_write_block)( alt_flash_dev* flash, int block_offset, + int data_offset, const void* data, + int length); +typedef int (*alt_flash_erase_block)( alt_flash_dev* flash, int offset); +typedef int (*alt_flash_read)(alt_flash_dev* flash, int offset, + void* dest_addr, int length ); + +struct alt_flash_dev +{ + alt_llist llist; + const char* name; + alt_flash_open open; + alt_flash_close close; + alt_flash_write write; + alt_flash_read read; + alt_flash_get_flash_info get_info; + alt_flash_erase_block erase_block; + alt_flash_write_block write_block; + void* base_addr; + int length; + int number_of_regions; + flash_region region_info[ALT_MAX_NUMBER_OF_FLASH_REGIONS]; +}; + +#endif /* __ALT_FLASH_DEV_H__ */ diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_flash_types.h b/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_flash_types.h new file mode 100644 index 0000000..884cbf8 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_flash_types.h @@ -0,0 +1,64 @@ +#ifndef __ALT_FLASH_TYPES_H__ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +/****************************************************************************** +* * +* Alt_flash_types.h - Some generic types and defines used by the flash code * +* * +* Author PRR * +* * +******************************************************************************/ +#define __ALT_FLASH_TYPES_H__ + +#ifndef ALT_MAX_NUMBER_OF_FLASH_REGIONS +#define ALT_MAX_NUMBER_OF_FLASH_REGIONS 8 +#endif /* ALT_MAX_NUMBER_OF_FLASH_REGIONS */ + +/* + * Description of a single Erase region + */ +typedef struct flash_region +{ + int offset; + int region_size; + int number_of_blocks; + int block_size; +}flash_region; + +#endif /* __ALT_FLASH_TYPES_H__ */ diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_irq.h b/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_irq.h new file mode 100644 index 0000000..6666e52 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_irq.h @@ -0,0 +1,245 @@ +#ifndef __ALT_IRQ_H__ +#define __ALT_IRQ_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2009 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/* + * alt_irq.h is the Nios II specific implementation of the interrupt controller + * interface. + * + * Nios II includes optional support for an external interrupt controller. + * When an external controller is present, the "Enhanced" interrupt API + * must be used to manage individual interrupts. The enhanced API also + * supports the processor's internal interrupt controller. Certain API + * members are accessible from either the "legacy" or "enhanced" interrpt + * API. + * + * Regardless of which API is in use, this file should be included by + * application code and device drivers that register ISRs or manage interrpts. + */ +#include + +#include "nios2.h" +#include "alt_types.h" +#include "system.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * Macros used by alt_irq_enabled + */ +#define ALT_IRQ_ENABLED 1 +#define ALT_IRQ_DISABLED 0 + +/* + * Number of available interrupts in internal interrupt controller. + */ +#define ALT_NIRQ NIOS2_NIRQ + +/* + * Used by alt_irq_disable_all() and alt_irq_enable_all(). + */ +typedef int alt_irq_context; + +/* ISR Prototype */ +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT +typedef void (*alt_isr_func)(void* isr_context); +#else +typedef void (*alt_isr_func)(void* isr_context, alt_u32 id); +#endif + +/* + * The following protypes and routines are supported by both + * the enhanced and legacy interrupt APIs + */ + +/* + * alt_irq_enabled can be called to determine if the processor's global + * interrupt enable is asserted. The return value is zero if interrupts + * are disabled, and non-zero otherwise. + * + * Whether the internal or external interrupt controller is present, + * individual interrupts may still be disabled. Use the other API to query + * a specific interrupt. + */ +static ALT_INLINE int ALT_ALWAYS_INLINE alt_irq_enabled (void) +{ + int status; + + NIOS2_READ_STATUS (status); + + return status & NIOS2_STATUS_PIE_MSK; +} + +/* + * alt_irq_disable_all() + * + * This routine inhibits all interrupts by negating the status register PIE + * bit. It returns the previous contents of the CPU status register (IRQ + * context) which can be used to restore the status register PIE bit to its + * state before this routine was called. + */ +static ALT_INLINE alt_irq_context ALT_ALWAYS_INLINE + alt_irq_disable_all (void) +{ + alt_irq_context context; + + NIOS2_READ_STATUS (context); + + NIOS2_WRITE_STATUS (context & ~NIOS2_STATUS_PIE_MSK); + + return context; +} + +/* + * alt_irq_enable_all() + * + * Enable all interrupts that were previously disabled by alt_irq_disable_all() + * + * This routine accepts a context to restore the CPU status register PIE bit + * to the state prior to a call to alt_irq_disable_all(). + + * In the case of nested calls to alt_irq_disable_all()/alt_irq_enable_all(), + * this means that alt_irq_enable_all() does not necessarily re-enable + * interrupts. + * + * This routine will perform a read-modify-write sequence to restore only + * status.PIE if the processor is configured with options that add additional + * writeable status register bits. These include the MMU, MPU, the enhanced + * interrupt controller port, and shadow registers. Otherwise, as a performance + * enhancement, status is overwritten with the prior context. + */ +static ALT_INLINE void ALT_ALWAYS_INLINE + alt_irq_enable_all (alt_irq_context context) +{ +#if (NIOS2_NUM_OF_SHADOW_REG_SETS > 0) || (defined NIOS2_EIC_PRESENT) || \ + (defined NIOS2_MMU_PRESENT) || (defined NIOS2_MPU_PRESENT) + alt_irq_context status; + + NIOS2_READ_STATUS (status); + + status &= ~NIOS2_STATUS_PIE_MSK; + status |= (context & NIOS2_STATUS_PIE_MSK); + + NIOS2_WRITE_STATUS (status); +#else + NIOS2_WRITE_STATUS (context); +#endif +} + +/* + * The function alt_irq_init() is defined within the auto-generated file + * alt_sys_init.c. This function calls the initilization macros for all + * interrupt controllers in the system at config time, before any other + * non-interrupt controller driver is initialized. + * + * The "base" parameter is ignored and only present for backwards-compatibility. + * It is recommended that NULL is passed in for the "base" parameter. + */ +extern void alt_irq_init (const void* base); + +/* + * alt_irq_cpu_enable_interrupts() enables the CPU to start taking interrupts. + */ +static ALT_INLINE void ALT_ALWAYS_INLINE + alt_irq_cpu_enable_interrupts () +{ + NIOS2_WRITE_STATUS(NIOS2_STATUS_PIE_MSK +#if defined(NIOS2_EIC_PRESENT) && (NIOS2_NUM_OF_SHADOW_REG_SETS > 0) + | NIOS2_STATUS_RSIE_MSK +#endif + ); +} + + +/* + * Prototypes for the enhanced interrupt API. + */ +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT +/* + * alt_ic_isr_register() can be used to register an interrupt handler. If the + * function is succesful, then the requested interrupt will be enabled upon + * return. + */ +extern int alt_ic_isr_register(alt_u32 ic_id, + alt_u32 irq, + alt_isr_func isr, + void *isr_context, + void *flags); + +/* + * alt_ic_irq_enable() and alt_ic_irq_disable() enable/disable a specific + * interrupt by using IRQ port and interrupt controller instance. + */ +int alt_ic_irq_enable (alt_u32 ic_id, alt_u32 irq); +int alt_ic_irq_disable(alt_u32 ic_id, alt_u32 irq); + + /* + * alt_ic_irq_enabled() indicates whether a specific interrupt, as + * specified by IRQ port and interrupt controller instance is enabled. + */ +alt_u32 alt_ic_irq_enabled(alt_u32 ic_id, alt_u32 irq); + +#else +/* + * Prototypes for the legacy interrupt API. + */ +#include "priv/alt_legacy_irq.h" +#endif + + +/* + * alt_irq_pending() returns a bit list of the current pending interrupts. + * This is used by alt_irq_handler() to determine which registered interrupt + * handlers should be called. + * + * This routine is only available for the Nios II internal interrupt + * controller. + */ +#ifndef NIOS2_EIC_PRESENT +static ALT_INLINE alt_u32 ALT_ALWAYS_INLINE alt_irq_pending (void) +{ + alt_u32 active; + + NIOS2_READ_IPENDING (active); + + return active; +} +#endif + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __ALT_IRQ_H__ */ diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_irq_entry.h b/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_irq_entry.h new file mode 100644 index 0000000..e2008d9 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_irq_entry.h @@ -0,0 +1,39 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/* + * This file pulls in the IRQ entry assembler and C code, which is only + * required if there are any interruptes in the system. + */ + +__asm__( "\n\t.globl alt_irq_entry" ); + +__asm__( "\n\t.globl alt_irq_handler" ); + diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_license_reminder_ucosii.h b/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_license_reminder_ucosii.h new file mode 100644 index 0000000..2fe649c --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_license_reminder_ucosii.h @@ -0,0 +1,77 @@ +#ifndef __ALT_LICENSE_REMINDER_UCOSII_H__ +#define __ALT_LICENSE_REMINDER_UCOSII_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#include + +#define ALT_LICENSE_REMINDER_UCOSII_STRING \ + "============== Software License Reminder ===============\n" \ + "\n" \ + "uC/OS-II is provided in source form for FREE evaluation,\n" \ + "for educational use, or for peaceful research. If you\n" \ + "plan on using uC/OS-II in a commercial product you need\n" \ + "to contact Micrium to properly license its use in your\n" \ + "product. Micrium provides ALL the source code on the\n" \ + "Altera distribution for your convenience and to help you\n" \ + "experience uC/OS-II. The fact that the source is provided\n" \ + "does NOT mean that you can use it without paying a\n" \ + "licensing fee. Please help us continue to provide the\n" \ + "Embedded community with the finest software available.\n" \ + "Your honesty is greatly appreciated.\n" \ + "\n" \ + "Please contact:\n" \ + "\n" \ + "M I C R I U M\n" \ + "949 Crestview Circle\n" \ + "Weston, FL 33327-1848\n" \ + "U.S.A.\n" \ + "\n" \ + "Phone : +1 954 217 2036\n" \ + "FAX : +1 954 217 2037\n" \ + "WEB : www.micrium.com\n" \ + "E-mail: Sales@Micrium.com\n" \ + "\n" \ + "========================================================\n" + +#define alt_license_reminder_ucosii() puts(ALT_LICENSE_REMINDER_UCOSII_STRING) + + +#endif /* __ALT_LICENSE_REMINDER_UCOSII_H__ */ + diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_llist.h b/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_llist.h new file mode 100644 index 0000000..46f81ce --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_llist.h @@ -0,0 +1,123 @@ +#ifndef __ALT_LIST_H__ +#define __ALT_LIST_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#include "alt_types.h" + +/* + * alt_llist.h defines structures and functions for use in manipulating linked + * lists. A list is considered to be constructed from a chain of objects of + * type alt_llist, with one object being defined to be the head element. + * + * A list is considered to be empty if it only contains the head element. + */ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * alt_llist is the structure used to represent an element within a linked + * list. + */ + +typedef struct alt_llist_s alt_llist; + +struct alt_llist_s { + alt_llist* next; /* Pointer to the next element in the list. */ + alt_llist* previous; /* Pointer to the previous element in the list. */ +}; + +/* + * ALT_LLIST_HEAD is a macro that can be used to create the head of a new + * linked list. This is named "head". The head element is initialised to + * represent an empty list. + */ + +#define ALT_LLIST_HEAD(head) alt_llist head = {&head, &head} + +/* + * ALT_LLIST_ENTRY is a macro used to define an uninitialised linked list + * entry. This is used to reserve space in structure initialisation for + * structures that inherit form alt_llist. + */ + +#define ALT_LLIST_ENTRY {0, 0} + +/* + * alt_llist_insert() insert adds the linked list entry "entry" as the + * first entry in the linked list "list". "list" is the list head element. + */ + +static ALT_INLINE void ALT_ALWAYS_INLINE alt_llist_insert(alt_llist* list, + alt_llist* entry) +{ + entry->previous = list; + entry->next = list->next; + + list->next->previous = entry; + list->next = entry; +} + +/* + * alt_llist_remove() is called to remove an element from a linked list. The + * input argument is the element to remove. + */ + +static ALT_INLINE void ALT_ALWAYS_INLINE alt_llist_remove(alt_llist* entry) +{ + entry->next->previous = entry->previous; + entry->previous->next = entry->next; + + /* + * Set the entry to point to itself, so that any further calls to + * alt_llist_remove() are harmless. + */ + + entry->previous = entry; + entry->next = entry; +} + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_LLIST_H__ */ diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_load.h b/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_load.h new file mode 100644 index 0000000..432e9f2 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_load.h @@ -0,0 +1,78 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2005 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "alt_types.h" + +/* + * This macro is used to load code/data from its load address to its + * execution address for a given section. The section name is the input + * argument. Note that a leading '.' is assumed in the name. For example + * to load the section .onchip_ram, use: + * + * ALT_LOAD_SECTION_BY_NAME(onchip_ram); + * + * This requires that the apropriate linker symbols have been generated + * for the section in question. This will be the case if you are using the + * default linker script. + */ + +#define ALT_LOAD_SECTION_BY_NAME(name) \ + { \ + extern void _alt_partition_##name##_start; \ + extern void _alt_partition_##name##_end; \ + extern void _alt_partition_##name##_load_addr; \ + \ + alt_load_section(&_alt_partition_##name##_load_addr, \ + &_alt_partition_##name##_start, \ + &_alt_partition_##name##_end); \ + } + +/* + * Function used to load an individual section from flash to RAM. + * + * There is an implicit assumption here that the linker script will ensure + * that all sections are word aligned. + * + */ + +static void ALT_INLINE alt_load_section (alt_u32* from, + alt_u32* to, + alt_u32* end) +{ + if (to != from) + { + while( to != end ) + { + *to++ = *from++; + } + } +} diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_log_printf.h b/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_log_printf.h new file mode 100644 index 0000000..c15ca05 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_log_printf.h @@ -0,0 +1,349 @@ +/* alt_log_printf.h + * + * ALT_LOG is designed to provide extra logging/debugging messages from HAL + * through a different port than stdout. It is enabled by the ALT_LOG_ENABLE + * define, which needs to supplied at compile time. When logging is turned off, + * code size is unaffected. Thus, this should be transparent to the user + * when it is not actively turned on, and should not affect projects in any way. + * + * There are macros sprinkled within different components, such as the jtag uart + * and timer, in the HAL code. They are always named ALT_LOG_, and can be + * safely ignored if ALT_LOG is turned off. + * + * To turn on ALT_LOG, ALT_LOG_ENABLE must be defined, and ALT_LOG_PORT_TYPE and + * ALT_LOG_PORT_BASE must be set in system.h. This is done through editing + * .ptf, by editing the alt_log_port_type & alt_log_port_base settings. + * See the documentation html file for examples. + * + * When it is turned on, it will output extra HAL messages to a port specified + * in system.h. This can be a UART or JTAG UART port. By default it will + * output boot messages, detailing every step of the boot process. + * + * Extra logging is designed to be enabled by flags, which are defined in + * alt_log_printf.c. The default value is that all flags are off, so only the + * boot up logging messages show up. ALT_LOG_FLAGS can be set to enable certain + * groupings of flags, and that grouping is done in this file. Each flag can + * also be overridden with a -D at compile time. + * + * This header file includes the necessary prototypes for using the alt_log + * functions. It also contains all the macros that are used to remove the code + * from alt log is turned off. Also, the macros in other HAL files are defined + * here at the bottom. These macros all call some C function that is in + * alt_log_printf.c. + * + * The logging has functions for printing in C (ALT_LOG_PRINTF) and in assembly + * (ALT_LOG_PUTS). This was needed because the assembly printing occurs before + * the device is initialized. The assembly function corrupts register R4-R7, + * which are not used in the normal boot process. For this reason, do not call + * the assembly function in C. + * + * author: gkwan + */ + + +#ifndef __ALT_LOG_PRINTF_H__ +#define __ALT_LOG_PRINTF_H__ + +#include + +/* Global switch to turn on logging functions */ +#ifdef ALT_LOG_ENABLE + + /* ALT_LOG_PORT_TYPE values as defined in system.h. They are defined as + * numbers here first becasue the C preprocessor does not handle string + * comparisons. */ + #define ALTERA_AVALON_JTAG_UART 1 + #define ALTERA_AVALON_UART 0 + + /* If this .h file is included by an assembly file, skip over include files + * that won't compile in assembly. */ + #ifndef ALT_ASM_SRC + #include + #include "sys/alt_alarm.h" + #include "sys/alt_dev.h" + #ifdef __ALTERA_AVALON_JTAG_UART + #include "altera_avalon_jtag_uart.h" + #endif + #endif /* ALT_ASM_SRC */ + + /* These are included for the port register offsets and masks, needed + * to write to the port. Only include if the port type is set correctly, + * otherwise error. If alt_log is turned on and the port to output to is + * incorrect or does not exist, then should exit. */ + #if ALT_LOG_PORT_TYPE == ALTERA_AVALON_JTAG_UART + #ifdef __ALTERA_AVALON_JTAG_UART + #include + #else + #error ALT_LOG: JTAG_UART port chosen, but no JTAG_UART in system. + #endif + #elif ALT_LOG_PORT_TYPE == ALTERA_AVALON_UART + #ifdef __ALTERA_AVALON_UART + #include + #else + #error ALT_LOG: UART Port chosen, but no UART in system. + #endif + #else + #error ALT_LOG: alt_log_port_type declaration invalid! + #endif + + /* ALT_LOG_ENABLE turns on the basic printing function */ + #define ALT_LOG_PRINTF(...) do {alt_log_printf_proc(__VA_ARGS__);} while (0) + + /* Assembly macro for printing in assembly, calls tx_log_str + * which is in alt_log_macro.S. + * If alt_log_boot_on_flag is 0, skips the printing */ + #define ALT_LOG_PUTS(str) movhi r4, %hiadj(alt_log_boot_on_flag) ; \ + addi r4, r4, %lo(alt_log_boot_on_flag) ; \ + ldwio r5, 0(r4) ; \ + beq r0, r5, 0f ; \ + movhi r4, %hiadj(str) ; \ + addi r4, r4, %lo(str) ; \ + call tx_log_str ; \ + 0: + + /* These defines are here to faciliate the use of one output function + * (alt_log_txchar) to print to both the JTAG UART or the UART. Depending + * on the port type, the status register, read mask, and output register + * are set to the appropriate value for the port. */ + #if ALT_LOG_PORT_TYPE == ALTERA_AVALON_JTAG_UART + #define ALT_LOG_PRINT_REG_RD IORD_ALTERA_AVALON_JTAG_UART_CONTROL + #define ALT_LOG_PRINT_MSK ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_MSK + #define ALT_LOG_PRINT_TXDATA_WR IOWR_ALTERA_AVALON_JTAG_UART_DATA + #define ALT_LOG_PRINT_REG_OFFSET (ALTERA_AVALON_JTAG_UART_CONTROL_REG*0x4) + #define ALT_LOG_PRINT_TXDATA_REG_OFFSET (ALTERA_AVALON_JTAG_UART_DATA_REG*0x4) + #elif ALT_LOG_PORT_TYPE == ALTERA_AVALON_UART + #define ALT_LOG_PRINT_REG_RD IORD_ALTERA_AVALON_UART_STATUS + #define ALT_LOG_PRINT_MSK ALTERA_AVALON_UART_STATUS_TRDY_MSK + #define ALT_LOG_PRINT_TXDATA_WR IOWR_ALTERA_AVALON_UART_TXDATA + #define ALT_LOG_PRINT_REG_OFFSET (ALTERA_AVALON_UART_STATUS_REG*0x4) + #define ALT_LOG_PRINT_TXDATA_REG_OFFSET (ALTERA_AVALON_UART_TXDATA_REG*0x4) + #endif /* ALT_LOG_PORT */ + + /* Grouping of flags via ALT_LOG_FLAGS. Each specific flag can be set via + * -D at compile time, or else they'll be set to a default value according + * to ALT_LOG_FLAGS. ALT_LOG_FLAGS = 0 or not set is the default, where + * only the boot messages will be printed. As ALT_LOG_FLAGS increase, they + * increase in intrusiveness to the program, and will affect performance. + * + * Flag Level 1 - turns on system clock and JTAG UART startup status + * 2 - turns on write echo and JTAG_UART alarm (periodic report) + * 3 - turns on JTAG UART ISR logging - will slow performance + * significantly. + * -1 - All logging output is off, but if ALT_LOG_ENABLE is + * defined all logging function is built and code size + * remains constant + * + * Flag settings - 1 = on, 0 = off. */ + + /* This flag turns on "boot" messages for printing. This includes messages + * during crt0.S, then alt_main, and finally alt_exit. */ + #ifndef ALT_LOG_BOOT_ON_FLAG_SETTING + #if ALT_LOG_FLAGS == 1 + #define ALT_LOG_BOOT_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == 2 + #define ALT_LOG_BOOT_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == 3 + #define ALT_LOG_BOOT_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == -1 /* silent mode */ + #define ALT_LOG_BOOT_ON_FLAG_SETTING 0x0 + #else /* default setting */ + #define ALT_LOG_BOOT_ON_FLAG_SETTING 0x1 + #endif + #endif /* ALT_LOG_BOOT_ON_FLAG_SETTING */ + + #ifndef ALT_LOG_SYS_CLK_ON_FLAG_SETTING + #if ALT_LOG_FLAGS == 1 + #define ALT_LOG_SYS_CLK_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == 2 + #define ALT_LOG_SYS_CLK_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == 3 + #define ALT_LOG_SYS_CLK_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == -1 /* silent mode */ + #define ALT_LOG_SYS_CLK_ON_FLAG_SETTING 0x0 + #else /* default setting */ + #define ALT_LOG_SYS_CLK_ON_FLAG_SETTING 0x0 + #endif + #endif /* ALT_LOG_SYS_CLK_ON_FLAG_SETTING */ + + #ifndef ALT_LOG_WRITE_ON_FLAG_SETTING + #if ALT_LOG_FLAGS == 1 + #define ALT_LOG_WRITE_ON_FLAG_SETTING 0x0 + #elif ALT_LOG_FLAGS == 2 + #define ALT_LOG_WRITE_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == 3 + #define ALT_LOG_WRITE_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == -1 /* silent mode */ + #define ALT_LOG_WRITE_ON_FLAG_SETTING 0x0 + #else /* default setting */ + #define ALT_LOG_WRITE_ON_FLAG_SETTING 0x0 + #endif + #endif /* ALT_LOG_WRITE_ON_FLAG_SETTING */ + + #ifndef ALT_LOG_JTAG_UART_ALARM_ON_FLAG_SETTING + #ifndef __ALTERA_AVALON_JTAG_UART + #define ALT_LOG_JTAG_UART_ALARM_ON_FLAG_SETTING 0x0 + #elif ALT_LOG_FLAGS == 1 + #define ALT_LOG_JTAG_UART_ALARM_ON_FLAG_SETTING 0x0 + #elif ALT_LOG_FLAGS == 2 + #define ALT_LOG_JTAG_UART_ALARM_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == 3 + #define ALT_LOG_JTAG_UART_ALARM_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == -1 /* silent mode */ + #define ALT_LOG_JTAG_UART_ALARM_ON_FLAG_SETTING 0x0 + #else /* default setting */ + #define ALT_LOG_JTAG_UART_ALARM_ON_FLAG_SETTING 0x0 + #endif + #endif /* ALT_LOG_JTAG_UART_ALARM_ON_FLAG_SETTING */ + + #ifndef ALT_LOG_JTAG_UART_STARTUP_INFO_ON_FLAG_SETTING + #ifndef __ALTERA_AVALON_JTAG_UART + #define ALT_LOG_JTAG_UART_STARTUP_INFO_ON_FLAG_SETTING 0x0 + #elif ALT_LOG_FLAGS == 1 + #define ALT_LOG_JTAG_UART_STARTUP_INFO_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == 2 + #define ALT_LOG_JTAG_UART_STARTUP_INFO_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == 3 + #define ALT_LOG_JTAG_UART_STARTUP_INFO_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == -1 /* silent mode */ + #define ALT_LOG_JTAG_UART_STARTUP_INFO_ON_FLAG_SETTING 0x0 + #else /* default setting */ + #define ALT_LOG_JTAG_UART_STARTUP_INFO_ON_FLAG_SETTING 0x0 + #endif + #endif /* ALT_LOG_JTAG_UART_STARTUP_INFO_FLAG_SETTING */ + + #ifndef ALT_LOG_JTAG_UART_ISR_ON_FLAG_SETTING + #ifndef __ALTERA_AVALON_JTAG_UART + #define ALT_LOG_JTAG_UART_ISR_ON_FLAG_SETTING 0x0 + #elif ALT_LOG_FLAGS == 1 + #define ALT_LOG_JTAG_UART_ISR_ON_FLAG_SETTING 0x0 + #elif ALT_LOG_FLAGS == 2 + #define ALT_LOG_JTAG_UART_ISR_ON_FLAG_SETTING 0x0 + #elif ALT_LOG_FLAGS == 3 + #define ALT_LOG_JTAG_UART_ISR_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == -1 /* silent mode */ + #define ALT_LOG_JTAG_UART_ISR_ON_FLAG_SETTING 0x0 + #else /* default setting */ + #define ALT_LOG_JTAG_UART_ISR_ON_FLAG_SETTING 0x0 + #endif + #endif /* ALT_LOG_JTAG_UART_ISR_ON_FLAG_SETTING */ + +#ifndef ALT_ASM_SRC + /* Function Prototypes */ + void alt_log_txchar(int c,char *uartBase); + void alt_log_private_printf(const char *fmt,int base,va_list args); + void alt_log_repchar(char c,int r,int base); + int alt_log_printf_proc(const char *fmt, ... ); + void alt_log_system_clock(); + #ifdef __ALTERA_AVALON_JTAG_UART + alt_u32 altera_avalon_jtag_uart_report_log(void * context); + void alt_log_jtag_uart_startup_info(altera_avalon_jtag_uart_state* dev, int base); + void alt_log_jtag_uart_print_control_reg(altera_avalon_jtag_uart_state* dev, \ + int base, const char* header); + void alt_log_jtag_uart_isr_proc(int base, altera_avalon_jtag_uart_state* dev); + #endif + void alt_log_write(const void *ptr, size_t len); + + /* extern all global variables */ + extern volatile alt_u32 alt_log_boot_on_flag; + extern volatile alt_u8 alt_log_write_on_flag; + extern volatile alt_u8 alt_log_sys_clk_on_flag; + extern volatile alt_u8 alt_log_jtag_uart_alarm_on_flag; + extern volatile alt_u8 alt_log_jtag_uart_isr_on_flag; + extern volatile alt_u8 alt_log_jtag_uart_startup_info_on_flag; + extern volatile int alt_log_sys_clk_count; + extern volatile int alt_system_clock_in_sec; + extern alt_alarm alt_log_jtag_uart_alarm_1; +#endif /* ALT_ASM_SRC */ + + + /* Below are the MACRO defines used in various HAL files. They check + * if their specific flag is turned on; if it is, then it executes its + * code. + * + * To keep this file reasonable, most of these macros calls functions, + * which are defined in alt_log_printf.c. Look there for implementation + * details. */ + + /* Boot Messages Logging */ + #define ALT_LOG_PRINT_BOOT(...) \ + do { if (alt_log_boot_on_flag==1) {ALT_LOG_PRINTF(__VA_ARGS__);} \ + } while (0) + + /* JTAG UART Logging */ + /* number of ticks before alarm runs logging function */ + #ifndef ALT_LOG_JTAG_UART_TICKS_DIVISOR + #define ALT_LOG_JTAG_UART_TICKS_DIVISOR 10 + #endif + #ifndef ALT_LOG_JTAG_UART_TICKS + #define ALT_LOG_JTAG_UART_TICKS \ + (alt_ticks_per_second()/ALT_LOG_JTAG_UART_TICKS_DIVISOR) + #endif + + /* if there's a JTAG UART defined, then enable these macros */ + #ifdef __ALTERA_AVALON_JTAG_UART + + /* Macro in altera_avalon_jtag_uart.c, to register the alarm function. + * Also, the startup register info is also printed here, as this is + * called within the device driver initialization. */ + #define ALT_LOG_JTAG_UART_ALARM_REGISTER(dev, base) \ + do { if (alt_log_jtag_uart_alarm_on_flag==1) { \ + alt_alarm_start(&alt_log_jtag_uart_alarm_1, \ + ALT_LOG_JTAG_UART_TICKS, &altera_avalon_jtag_uart_report_log,\ + dev);} \ + if (alt_log_jtag_uart_startup_info_on_flag==1) {\ + alt_log_jtag_uart_startup_info(dev, base);} \ + } while (0) + + /* JTAG UART IRQ Logging (when buffer is empty) + * Inserted in the ISR in altera_avalon_jtag_uart.c */ + #define ALT_LOG_JTAG_UART_ISR_FUNCTION(base, dev) \ + do { alt_log_jtag_uart_isr_proc(base, dev); } while (0) + /* else, define macros to nothing. Or else the jtag_uart specific types + * will throw compiler errors */ + #else + #define ALT_LOG_JTAG_UART_ALARM_REGISTER(dev, base) + #define ALT_LOG_JTAG_UART_ISR_FUNCTION(base, dev) + #endif + + /* System clock logging + * How often (in seconds) the system clock logging prints. + * The default value is every 1 second */ + #ifndef ALT_LOG_SYS_CLK_INTERVAL_MULTIPLIER + #define ALT_LOG_SYS_CLK_INTERVAL_MULTIPLIER 1 + #endif + #ifndef ALT_LOG_SYS_CLK_INTERVAL + #define ALT_LOG_SYS_CLK_INTERVAL \ + (alt_ticks_per_second()*ALT_LOG_SYS_CLK_INTERVAL_MULTIPLIER) + #endif + + /* System clock logging - prints a message every interval (set above) + * to show that the system clock is alive. + * This macro is used in altera_avalon_timer_sc.c */ + #define ALT_LOG_SYS_CLK_HEARTBEAT() \ + do { alt_log_system_clock(); } while (0) + + /* alt_write_logging - echos a message every time write() is called, + * displays the first ALT_LOG_WRITE_ECHO_LEN characters. + * This macro is used in alt_write.c */ + #ifndef ALT_LOG_WRITE_ECHO_LEN + #define ALT_LOG_WRITE_ECHO_LEN 15 + #endif + + #define ALT_LOG_WRITE_FUNCTION(ptr,len) \ + do { alt_log_write(ptr,len); } while (0) + +#else /* ALT_LOG_ENABLE not defined */ + + /* logging is off, set all relevant macros to null */ + #define ALT_LOG_PRINT_BOOT(...) + #define ALT_LOG_PRINTF(...) + #define ALT_LOG_JTAG_UART_ISR_FUNCTION(base, dev) + #define ALT_LOG_JTAG_UART_ALARM_REGISTER(dev, base) + #define ALT_LOG_SYS_CLK_HEARTBEAT() + #define ALT_LOG_PUTS(str) + #define ALT_LOG_WRITE_FUNCTION(ptr,len) + +#endif /* ALT_LOG_ENABLE */ + +#endif /* __ALT_LOG_PRINTF_H__ */ + diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_set_args.h b/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_set_args.h new file mode 100644 index 0000000..3750e67 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_set_args.h @@ -0,0 +1,71 @@ +#ifndef __ALT_SET_ARGS_H__ +#define __ALT_SET_ARGS_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * The function alt_set_args() is provided in order to define the input + * arguments to main(). If this function is not called before main() then the + * argument list passed to main() will be empty. + * + * It is expected that this function will only be used by the ihost/iclient + * utility. + */ + +static inline void alt_set_args (int argc, char** argv, char** envp) +{ + extern int alt_argc; + extern char** alt_argv; + extern char** alt_envp; + + alt_argc = argc; + alt_argv = argv; + alt_envp = envp; +} + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_SET_ARGS_H__ */ diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_sim.h b/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_sim.h new file mode 100644 index 0000000..06bd27a --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_sim.h @@ -0,0 +1,91 @@ +#ifndef __ALT_SIM_H__ +#define __ALT_SIM_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2007 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ +#include "system.h" +#include "alt_types.h" + +/* + * Instructions that might mean something special to a simulator. + * These have no special effect on real hardware (they are just nops). + */ +#define ALT_SIM_FAIL() \ + do { __asm volatile ("cmpltui r0, r0, 0xabc1"); } while (0) + +#define ALT_SIM_PASS() \ + do { __asm volatile ("cmpltui r0, r0, 0xabc2"); } while (0) + +#define ALT_SIM_IN_TOP_OF_HOT_LOOP() \ + do { __asm volatile ("cmpltui r0, r0, 0xabc3"); } while (0) + +/* + * Routine called on exit. + */ +static ALT_ALWAYS_INLINE void alt_sim_halt(int exit_code) +{ + int r2 = exit_code; + +#if defined(NIOS2_HAS_DEBUG_STUB) && (defined(ALT_BREAK_ON_EXIT) || defined(ALT_PROVIDE_GMON)) + + int r3 = (1 << 2); + +#ifdef ALT_PROVIDE_GMON + extern unsigned int alt_gmon_data[]; + int r4 = (int)alt_gmon_data; + r3 |= (1 << 4); +#define ALT_GMON_DATA ,"D04"(r4) +#else +#define ALT_GMON_DATA +#endif /* ALT_PROVIDE_GMON */ + + if (r2) { + ALT_SIM_FAIL(); + } else { + ALT_SIM_PASS(); + } + + __asm__ volatile ("\n0:\n\taddi %0,%0, -1\n\tbgt %0,zero,0b" : : "r" (ALT_CPU_FREQ/100) ); /* Delay for >30ms */ + + __asm__ volatile ("break 2" : : "D02"(r2), "D03"(r3) ALT_GMON_DATA ); + +#else /* !DEBUG_STUB */ + if (r2) { + ALT_SIM_FAIL(); + } else { + ALT_SIM_PASS(); + } +#endif /* DEBUG_STUB */ +} + +#define ALT_SIM_HALT(exit_code) \ + alt_sim_halt(exit_code) + +#endif /* __ALT_SIM_H__ */ diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_stack.h b/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_stack.h new file mode 100644 index 0000000..e30652a --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_stack.h @@ -0,0 +1,126 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#ifndef __ALT_STACK_H__ +#define __ALT_STACK_H__ + +/* + * alt_stack.h is the nios2 specific implementation of functions used by the + * stack overflow code. + */ + +#include "nios2.h" + +#include "alt_types.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + + +extern char * alt_stack_limit_value; + +#ifdef ALT_EXCEPTION_STACK +extern char __alt_exception_stack_pointer[]; /* set by the linker */ +#endif /* ALT_EXCEPTION_STACK */ + + +/* + * alt_stack_limit can be called to determine the current value of the stack + * limit register. + */ + +static ALT_INLINE char * ALT_ALWAYS_INLINE alt_stack_limit (void) +{ + char * limit; + NIOS2_READ_ET(limit); + + return limit; +} + +/* + * alt_stack_pointer can be called to determine the current value of the stack + * pointer register. + */ + +static ALT_INLINE char * ALT_ALWAYS_INLINE alt_stack_pointer (void) +{ + char * pointer; + NIOS2_READ_SP(pointer); + + return pointer; +} + + +#ifdef ALT_EXCEPTION_STACK + +/* + * alt_exception_stack_pointer returns the normal stack pointer from + * where it is stored on the exception stack (uppermost 4 bytes). This + * is really only useful during exception processing, and is only + * available if a separate exception stack has been configured. + */ + +static ALT_INLINE char * ALT_ALWAYS_INLINE alt_exception_stack_pointer (void) +{ + return (char *) *(alt_u32 *)(__alt_exception_stack_pointer - sizeof(alt_u32)); +} + +#endif /* ALT_EXCEPTION_STACK */ + + +/* + * alt_set_stack_limit can be called to update the current value of the stack + * limit register. + */ + +static ALT_INLINE void ALT_ALWAYS_INLINE alt_set_stack_limit (char * limit) +{ + alt_stack_limit_value = limit; + NIOS2_WRITE_ET(limit); +} + +/* + * alt_report_stack_overflow reports that a stack overflow happened. + */ + +static ALT_INLINE void ALT_ALWAYS_INLINE alt_report_stack_overflow (void) +{ + NIOS2_REPORT_STACK_OVERFLOW(); +} + + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __ALT_STACK_H__ */ + diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_stdio.h b/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_stdio.h new file mode 100644 index 0000000..1730360 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_stdio.h @@ -0,0 +1,62 @@ +#ifndef __ALT_STDIO_H__ +#define __ALT_STDIO_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +/* + * Definitions for ALT stdio routines. + */ + +#include + + +#ifdef __cplusplus +extern "C" { +#endif + +int alt_getchar(); +int alt_putchar(int c); +int alt_putstr(const char* str); +void alt_printf(const char *fmt, ...); + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_STDIO_H__ */ diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_sys_init.h b/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_sys_init.h new file mode 100644 index 0000000..e4abc28 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_sys_init.h @@ -0,0 +1,62 @@ +#ifndef __ALT_SYS_INIT_H__ +#define __ALT_SYS_INIT_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * The function alt_sys_init() is defined within the auto-generated file: + * alt_sys_init.c. This function calls the initilisation macros for all + * devices, file systems, and software components within the system. + * + * The list of initilisation macros to use is constructed using the PTF and + * STF files associated with the system. + */ + +extern void alt_sys_init (void); + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_SYS_INIT_H__ */ diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_sys_wrappers.h b/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_sys_wrappers.h new file mode 100644 index 0000000..044833b --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_sys_wrappers.h @@ -0,0 +1,100 @@ +#ifndef __ALT_SYS_WRAPPERS_H__ +#define __ALT_SYS_WRAPPERS_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/* + * This file provides the prototypes for the HAL 'UNIX style functions. The + * names of these functions are defined in alt_syscall.h. THese are defined to + * be the standard names when running the standalone HAL, e.g. open(), close() + * etc., but the names may be redefined as a part of an operating system port + * in order to avoid name clashes. + */ + +#include "os/alt_syscall.h" + +#include +#include +#include +#include +#include +#include + +extern int ALT_CLOSE (int __fd); +extern int ALT_EXECVE (const char *__path, + char * const __argv[], + char * const __envp[]); +extern void ALT_EXIT (int __status); +extern int ALT_FSTAT (int file, struct stat *st); +extern int ALT_FCNTL (int file, int cmd, ...); +extern pid_t ALT_FORK (void); +extern pid_t ALT_GETPID (void); + +#if defined (__GNUC__) && __GNUC__ >= 4 +extern int ALT_GETTIMEOFDAY (struct timeval *ptimeval, + void *ptimezone); +#else +extern int ALT_GETTIMEOFDAY (struct timeval *ptimeval, + struct timezone *ptimezone); +#endif + +extern int ALT_IOCTL (int file, int req, void* arg); +extern int ALT_ISATTY (int file); +extern int ALT_KILL (int pid, int sig); +extern int ALT_LINK (const char *existing, const char *new); +extern off_t ALT_LSEEK (int file, off_t ptr, int dir); +extern int ALT_OPEN (const char* file, int flags, ...); +extern int ALT_READ (int file, void *ptr, size_t len); +extern int ALT_RENAME (char *existing, char *new); +extern void* ALT_SBRK (ptrdiff_t incr); +extern int ALT_SETTIMEOFDAY (const struct timeval *t, + const struct timezone *tz); +extern int ALT_STAT (const char *file, struct stat *st); +extern clock_t ALT_TIMES (struct tms *buf); +extern int ALT_UNLINK (const char *name); + +#if defined (__GNUC__) && __GNUC__ >= 4 +int ALT_USLEEP (useconds_t us); +#else +unsigned int ALT_USLEEP (unsigned int us); +#endif + +extern int ALT_WAIT (int *status); +extern int ALT_WRITE (int file, const void *ptr, size_t len); + + +extern char** ALT_ENVIRON; + +/* + * + */ + +#endif /* __ALT_SYS_WRAPPERS_H__ */ diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_timestamp.h b/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_timestamp.h new file mode 100644 index 0000000..8a18da2 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_timestamp.h @@ -0,0 +1,60 @@ +#ifndef __ALT_TIMESTAMP_H__ +#define __ALT_TIMESTAMP_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#include "alt_types.h" +#include "altera_avalon_timer.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +extern int alt_timestamp_start (void); + +extern alt_timestamp_type alt_timestamp (void); + +extern alt_u32 alt_timestamp_freq (void); + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_TIMESTAMP_H__ */ diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_warning.h b/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_warning.h new file mode 100644 index 0000000..b66e71a --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_warning.h @@ -0,0 +1,75 @@ +#ifndef __WARNING_H__ +#define __WARNING_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/* + * alt_warning.h provides macro definitions that can be used to generate link + * time warnings. + */ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * The symbol "__alt_invalid" is used to force a link error. There should be + * no corresponding implementation of this function. + */ + +extern void __alt_invalid (void); + +#define ALT_LINK_WARNING(symbol, msg) \ + __asm__(".ifndef __evoke_link_warning_" #symbol \ + "\n\t .section .gnu.warning." #symbol \ + "\n__evoke_link_warning_" #symbol ":\n\t .string \x22" msg "\x22 \n\t .previous" \ + "\n .endif"); + +/* A canned warning for sysdeps/stub functions. */ + +#define ALT_STUB_WARNING(name) \ + ALT_LINK_WARNING (name, \ + "warning: " #name " is not implemented and will always fail") + +#define ALT_OBSOLETE_FUNCTION_WARNING(name) \ + ALT_LINK_WARNING (name, \ + "warning: " #name " is a deprecated function") + +#define ALT_LINK_ERROR(msg) \ + ALT_LINK_WARNING (__alt_invalid, msg); \ + __alt_invalid() + +#ifdef __cplusplus +} +#endif + +#endif /* __WARNING_H__ */ diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/ioctl.h b/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/ioctl.h new file mode 100644 index 0000000..4d565df --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/ioctl.h @@ -0,0 +1,90 @@ +#ifndef __IOCTL_H__ +#define __IOCTL_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * The ioctl() system call be used to initiate a variety of control operations + * on a file descriptor. For the most part this simply translates to a call to + * the ioctl() function of the associated device driver (TIOCEXCL and + * TIOCNXCL are notable exceptions - see ioctl.c for details). + * + * The interpretation of the ioctl requests are therefore device specific. + * + * This function is equivalent to the standard Posix ioctl() call. + */ + +extern int ioctl (int fd, int req, void* arg); + +/* + * list of ioctl calls handled by the system ioctl implementation. + */ + +#define TIOCEXCL 0x740d /* exclusive use of the device */ +#define TIOCNXCL 0x740e /* allow multiple use of the device */ + +/* + * ioctl calls which can be handled by device drivers. + */ + +#define TIOCOUTQ 0x7472 /* get output queue size */ +#define TIOCMGET 0x741d /* get termios flags */ +#define TIOCMSET 0x741a /* set termios flags */ + +/* + * ioctl calls specific to JTAG UART. + */ + +#define TIOCSTIMEOUT 0x6a01 /* Set Timeout before assuming no host present */ +#define TIOCGCONNECTED 0x6a02 /* Get indication of whether host is connected */ + +/* + * + */ + +#ifdef __cplusplus +} +#endif + +#endif /* __IOCTL_H__ */ diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/termios.h b/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/termios.h new file mode 100644 index 0000000..cd09539 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/termios.h @@ -0,0 +1,181 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +/* + * This is the termios.h file provided with newlib. The only modification has + * been to the baud rate macro definitions, and an increase in the size of the + * termios structure to accomodate this. + */ + + +#ifndef _SYS_TERMIOS_H +# define _SYS_TERMIOS_H + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +# define _XCGETA (('x'<<8)|1) +# define _XCSETA (('x'<<8)|2) +# define _XCSETAW (('x'<<8)|3) +# define _XCSETAF (('x'<<8)|4) +# define _TCSBRK (('T'<<8)|5) +# define _TCFLSH (('T'<<8)|7) +# define _TCXONC (('T'<<8)|6) + +# define TCOOFF 0 +# define TCOON 1 +# define TCIOFF 2 +# define TCION 3 + +# define TCIFLUSH 0 +# define TCOFLUSH 1 +# define TCIOFLUSH 2 + +# define NCCS 13 + +# define TCSAFLUSH _XCSETAF +# define TCSANOW _XCSETA +# define TCSADRAIN _XCSETAW +# define TCSADFLUSH _XCSETAF + +# define IGNBRK 000001 +# define BRKINT 000002 +# define IGNPAR 000004 +# define INPCK 000020 +# define ISTRIP 000040 +# define INLCR 000100 +# define IGNCR 000200 +# define ICRNL 000400 +# define IXON 002000 +# define IXOFF 010000 + +# define OPOST 000001 +# define OCRNL 000004 +# define ONLCR 000010 +# define ONOCR 000020 +# define TAB3 014000 + +# define CLOCAL 004000 +# define CREAD 000200 +# define CSIZE 000060 +# define CS5 0 +# define CS6 020 +# define CS7 040 +# define CS8 060 +# define CSTOPB 000100 +# define HUPCL 002000 +# define PARENB 000400 +# define PAODD 001000 + +#define CCTS_OFLOW 010000 +#define CRTS_IFLOW 020000 +#define CRTSCTS (CCTS_OFLOW | CRTS_IFLOW) + +# define ECHO 0000010 +# define ECHOE 0000020 +# define ECHOK 0000040 +# define ECHONL 0000100 +# define ICANON 0000002 +# define IEXTEN 0000400 /* anybody know *what* this does?! */ +# define ISIG 0000001 +# define NOFLSH 0000200 +# define TOSTOP 0001000 + +# define VEOF 4 /* also VMIN -- thanks, AT&T */ +# define VEOL 5 /* also VTIME -- thanks again */ +# define VERASE 2 +# define VINTR 0 +# define VKILL 3 +# define VMIN 4 /* also VEOF */ +# define VQUIT 1 +# define VSUSP 10 +# define VTIME 5 /* also VEOL */ +# define VSTART 11 +# define VSTOP 12 + +# define B0 0 +# define B50 50 +# define B75 75 +# define B110 110 +# define B134 134 +# define B150 150 +# define B200 200 +# define B300 300 +# define B600 600 +# define B1200 1200 +# define B1800 1800 +# define B2400 2400 +# define B4800 4800 +# define B9600 9600 +# define B19200 19200 +# define B38400 38400 +# define B57600 57600 +# define B115200 115200 + +typedef unsigned char cc_t; +typedef unsigned short tcflag_t; +typedef unsigned long speed_t; + +struct termios { + tcflag_t c_iflag; + tcflag_t c_oflag; + tcflag_t c_cflag; + tcflag_t c_lflag; + char c_line; + cc_t c_cc[NCCS]; + speed_t c_ispeed; + speed_t c_ospeed; +}; + +# ifndef _NO_MACROS + +# define cfgetospeed(tp) ((tp)->c_ospeed) +# define cfgetispeed(tp) ((tp)->c_ispeed) +# define cfsetospeed(tp,s) (((tp)->c_ospeed = (s)), 0) +# define cfsetispeed(tp,s) (((tp)->c_ispeed = (s)), 0) +# define tcdrain(fd) _ioctl (fd, _TCSBRK, 1) +# endif /* _NO_MACROS */ + +#ifdef __cplusplus +} +#endif + +#endif /* _SYS_TERMIOS_H */ + diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_alarm_start.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_alarm_start.c new file mode 100644 index 0000000..7739959 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_alarm_start.c @@ -0,0 +1,112 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +#include "sys/alt_alarm.h" +#include "sys/alt_irq.h" + +/* + * alt_alarm_start is called to register an alarm with the system. The + * "alarm" structure passed as an input argument does not need to be + * initialised by the user. This is done within this function. + * + * The remaining input arguments are: + * + * nticks - The time to elapse until the alarm executes. This is specified in + * system clock ticks. + * callback - The function to run when the indicated time has elapsed. + * context - An opaque value, passed to the callback function. +* + * Care should be taken when defining the callback function since it is + * likely to execute in interrupt context. In particular, this mean that + * library calls like printf() should not be made, since they can result in + * deadlock. + * + * The interval to be used for the next callback is the return + * value from the callback function. A return value of zero indicates that the + * alarm should be unregistered. + * + * alt_alarm_start() will fail if the timer facility has not been enabled + * (i.e. there is no system clock). Failure is indicated by a negative return + * value. + */ + +int alt_alarm_start (alt_alarm* alarm, alt_u32 nticks, + alt_u32 (*callback) (void* context), + void* context) +{ + alt_irq_context irq_context; + alt_u32 current_nticks = 0; + + if (alt_ticks_per_second ()) + { + if (alarm) + { + alarm->callback = callback; + alarm->context = context; + + irq_context = alt_irq_disable_all (); + + current_nticks = alt_nticks(); + + alarm->time = nticks + current_nticks + 1; + + /* + * If the desired alarm time causes a roll-over, set the rollover + * flag. This will prevent the subsequent tick event from causing + * an alarm too early. + */ + if(alarm->time < current_nticks) + { + alarm->rollover = 1; + } + else + { + alarm->rollover = 0; + } + + alt_llist_insert (&alt_alarm_list, &alarm->llist); + alt_irq_enable_all (irq_context); + + return 0; + } + else + { + return -EINVAL; + } + } + else + { + return -ENOTSUP; + } +} diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_busy_sleep.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_busy_sleep.c new file mode 100644 index 0000000..561c0be --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_busy_sleep.c @@ -0,0 +1,133 @@ +/* + * Copyright (c) 2003-2004 Altera Corporation, San Jose, California, USA. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + * ------------ + * + * Altera does not recommend, suggest or require that this reference design + * file be used in conjunction or combination with any other product. + * + * alt_busy_sleep.c - Microsecond delay routine which uses a calibrated busy + * loop to perform the delay. This is used to implement + * usleep for both uC/OS-II and the standalone HAL. + * + * Author PRR + * + * Calibrated delay with no timer required + * + * The ASM instructions in the routine are equivalent to + * + * for (i=0;i +#include + +#include "system.h" +#include "alt_types.h" + +#include "priv/alt_busy_sleep.h" + +unsigned int alt_busy_sleep (unsigned int us) +{ +/* + * Only delay if ALT_SIM_OPTIMIZE is not defined; i.e., if software + * is built targetting ModelSim RTL simulation, the delay will be + * skipped to speed up simulation. + */ +#ifndef ALT_SIM_OPTIMIZE + int i; + int big_loops; + alt_u32 cycles_per_loop; + + if (!strcmp(NIOS2_CPU_IMPLEMENTATION,"tiny")) + { + cycles_per_loop = 9; + } + else + { + cycles_per_loop = 3; + } + + + big_loops = us / (INT_MAX/ + (ALT_CPU_FREQ/(cycles_per_loop * 1000000))); + + if (big_loops) + { + for(i=0;i + +#include "sys/alt_errno.h" +#include "sys/alt_warning.h" +#include "priv/alt_file.h" +#include "os/alt_syscall.h" + +#ifdef ALT_USE_DIRECT_DRIVERS + +int ALT_CLOSE (int fildes) +{ + /* Generate a link time warning, should this function ever be called. */ + + ALT_STUB_WARNING(close); + + /* Indicate an error */ + + ALT_ERRNO = ENOSYS; + return -1; +} + +#else /* !ALT_USE_DIRECT_DRIVERS */ + +/* + * close() is called by an application to release a file descriptor. If the + * associated file system/device has a close() callback function registered + * then this called. The file descriptor is then marked as free. + * + * ALT_CLOSE is mapped onto the close() system call in alt_syscall.h + */ + +int ALT_CLOSE (int fildes) +{ + alt_fd* fd; + int rval; + + /* + * A common error case is that when the file descriptor was created, the call + * to open() failed resulting in a negative file descriptor. This is trapped + * below so that we don't try and process an invalid file descriptor. + */ + + fd = (fildes < 0) ? NULL : &alt_fd_list[fildes]; + + if (fd) + { + /* + * If the associated file system/device has a close function, call it so + * that any necessary cleanup code can run. + */ + + rval = (fd->dev->close) ? fd->dev->close(fd) : 0; + + /* Free the file descriptor structure and return. */ + + alt_release_fd (fildes); + if (rval < 0) + { + ALT_ERRNO = -rval; + return -1; + } + return 0; + } + else + { + ALT_ERRNO = EBADFD; + return -1; + } +} + +#endif /* ALT_USE_DIRECT_DRIVERS */ diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_dcache_flush.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_dcache_flush.c new file mode 100644 index 0000000..7ecc91a --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_dcache_flush.c @@ -0,0 +1,97 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003-2005 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "nios2.h" +#include "system.h" + +#include "alt_types.h" +#include "sys/alt_cache.h" + +/* + * Nios II version 1.2 and newer supports the "flush by address" instruction, in + * addition to the "flush by line" instruction provided by older versions of + * the core. This newer instruction is used by preference when it is + * available. + */ + +#ifdef NIOS2_FLUSHDA_SUPPORTED +#define ALT_FLUSH_DATA(i) __asm__ volatile ("flushda (%0)" :: "r" (i)); +#else +#define ALT_FLUSH_DATA(i) __asm__ volatile ("flushd (%0)" :: "r" (i)); +#endif /* NIOS2_FLUSHDA_SUPPORTED */ + +/* + * alt_dcache_flush() is called to flush the data cache for a memory + * region of length "len" bytes, starting at address "start". + * + * Any dirty lines in the data cache are written back to memory. + */ + +void alt_dcache_flush (void* start, alt_u32 len) +{ +#if NIOS2_DCACHE_SIZE > 0 + + char* i; + char* end; + + /* + * This is the most we would ever need to flush. + * + * SPR 196942, 2006.01.13: The cache flush loop below will use the + * 'flushda' instruction if its available; in that case each line + * must be flushed individually, and thus 'len' cannot be trimmed. + */ + #ifndef NIOS2_FLUSHDA_SUPPORTED + if (len > NIOS2_DCACHE_SIZE) + { + len = NIOS2_DCACHE_SIZE; + } + #endif + + end = ((char*) start) + len; + + for (i = start; i < end; i+= NIOS2_DCACHE_LINE_SIZE) + { + ALT_FLUSH_DATA(i); + } + + /* + * For an unaligned flush request, we've got one more line left. + * Note that this is dependent on NIOS2_DCACHE_LINE_SIZE to be a + * multiple of 2 (which it always is). + */ + + if (((alt_u32) start) & (NIOS2_DCACHE_LINE_SIZE - 1)) + { + ALT_FLUSH_DATA(i); + } + +#endif /* NIOS2_DCACHE_SIZE > 0 */ +} diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_dcache_flush_all.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_dcache_flush_all.c new file mode 100644 index 0000000..6529231 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_dcache_flush_all.c @@ -0,0 +1,51 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003-2005 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "nios2.h" +#include "system.h" + +#include "alt_types.h" +#include "sys/alt_cache.h" + +/* + * alt_dcache_flush_all() is called to flush the entire data cache. + */ + +void alt_dcache_flush_all (void) +{ +#if NIOS2_DCACHE_SIZE > 0 + char* i; + + for (i = (char*) 0; i < (char*) NIOS2_DCACHE_SIZE; i+= NIOS2_DCACHE_LINE_SIZE) + { + __asm__ volatile ("flushd (%0)" :: "r" (i)); + } +#endif /* NIOS2_DCACHE_SIZE > 0 */ +} diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_dcache_flush_no_writeback.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_dcache_flush_no_writeback.c new file mode 100644 index 0000000..c65ca7d --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_dcache_flush_no_writeback.c @@ -0,0 +1,88 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2007 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "nios2.h" +#include "system.h" + +#include "alt_types.h" +#include "sys/alt_cache.h" + +/* + * The INITDA instruction was added to Nios II in the 8.0 release. + * + * The INITDA instruction has one of the following possible behaviors + * depending on the processor configuration: + * 1) Flushes a line by address but does NOT write back dirty data. + * Occurs when a data cache is present that supports INITDA. + * The macro NIOS2_INITDA_SUPPORTED is defined in system.h. + * 2) Takes an unimplemented instruction exception. + * Occurs when a data cache is present that doesn't support INITDA. + * 3) Performs no operation + * Occurs when there is no data cache present. + * The macro NIOS2_DCACHE_SIZE is 0 in system.h. + */ + +#define ALT_FLUSH_DATA_NO_WRITEBACK(i) \ + __asm__ volatile ("initda (%0)" :: "r" (i)); + +/* + * alt_dcache_flush_no_writeback() is called to flush the data cache for a + * memory region of length "len" bytes, starting at address "start". + * + * Any dirty lines in the data cache are NOT written back to memory. + * Make sure you really want this behavior. If you aren't 100% sure, + * use the alt_dcache_flush() routine instead. + */ + +void alt_dcache_flush_no_writeback (void* start, alt_u32 len) +{ +#if defined(NIOS2_INITDA_SUPPORTED) + + char* i; + char* end = ((char*) start) + len; + + for (i = start; i < end; i+= NIOS2_DCACHE_LINE_SIZE) + { + ALT_FLUSH_DATA_NO_WRITEBACK(i); + } + + /* + * For an unaligned flush request, we've got one more line left. + * Note that this is dependent on NIOS2_DCACHE_LINE_SIZE to be a + * multiple of 2 (which it always is). + */ + + if (((alt_u32) start) & (NIOS2_DCACHE_LINE_SIZE - 1)) + { + ALT_FLUSH_DATA_NO_WRITEBACK(i); + } + +#endif /* NIOS2_INITDA_SUPPORTED */ +} diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_dev.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_dev.c new file mode 100644 index 0000000..ebc15e5 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_dev.c @@ -0,0 +1,149 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include +#include +#include +#include + +#include "sys/alt_dev.h" +#include "priv/alt_file.h" + +#include "alt_types.h" + +#include "system.h" + +/* + * This file contains the data constructs used to control access to device and + * filesytems. + */ + +/* + * "alt_fs_list" is the head of a linked list of registered filesystems. It is + * initialised as an empty list. New entries can be added using the + * alt_fs_reg() function. + */ + +ALT_LLIST_HEAD(alt_fs_list); + + +/* + * "alt_dev_list" is the head of a linked list of registered devices. It is + * configured at startup to include a single device, "alt_dev_null". This + * device is discussed below. + */ + +extern alt_dev alt_dev_null; /* forward declaration */ + +alt_llist alt_dev_list = {&alt_dev_null.llist, &alt_dev_null.llist}; + +/* + * alt_dev_null_write() is the implementation of the write() function used + * by the alt_dev_null device. It simple discards all data passed to it, and + * indicates that the data has been successfully transmitted. + */ + +static int alt_dev_null_write (alt_fd* fd, const char* ptr, int len) +{ + return len; +} + +/* + * "alt_dev_null" is used to allow output to be redirected to nowhere. It is + * the only device registered before the call to alt_sys_init(). At startup + * stin, stdout & stderr are all directed towards this device so that library + * calls like printf() will be safe but inefectual. + */ + +alt_dev alt_dev_null = { + { + &alt_dev_list, + &alt_dev_list + }, + "/dev/null", + NULL, /* open */ + NULL, /* close */ + NULL, /* write */ + alt_dev_null_write, /* write */ + NULL, /* lseek */ + NULL, /* fstat */ + NULL /* ioctl */ + }; + +/* + * "alt_fd_list_lock" is a semaphore used to control access to the file + * descriptor list. This is used to ensure that access to the list is thread + * safe. + */ + +ALT_SEM(alt_fd_list_lock) + +/* + * "alt_max_fd" is used to make access to the file descriptor list more + * efficent. It is set to be the value of the highest allocated file + * descriptor. This saves having to search the entire pool of unallocated + * file descriptors when looking for a match. + */ + +alt_32 alt_max_fd = -1; + +/* + * "alt_fd_list" is the file descriptor pool. The first three entries in the + * array are configured as standard in, standard out, and standard error. These + * are all initialised so that accesses are directed to the alt_dev_null + * device. The remaining file descriptors are initialised as unallocated. + * + * The maximum number of file descriptors within the system is specified by the + * user defined macro "ALT_MAX_FD". This is defined in "system.h", which is + * auto-genereated using the projects PTF and STF files. + */ + +alt_fd alt_fd_list[ALT_MAX_FD] = + { + { + &alt_dev_null, /* standard in */ + 0, + 0 + }, + { + &alt_dev_null, /* standard out */ + 0, + 0 + }, + { + &alt_dev_null, /* standard error */ + 0, + 0 + } + /* all other elements are set to zero */ + }; diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_dev_llist_insert.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_dev_llist_insert.c new file mode 100644 index 0000000..fa7239d --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_dev_llist_insert.c @@ -0,0 +1,59 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "priv/alt_dev_llist.h" +#include "sys/alt_errno.h" + +/* + * + */ + +int alt_dev_llist_insert (alt_dev_llist* dev, alt_llist* list) +{ + /* + * check that the device exists, and that it has a valid name. + */ + + if (!dev || !dev->name) + { + ALT_ERRNO = EINVAL; + return -EINVAL; + } + + /* + * register the device. + */ + + alt_llist_insert(list, &dev->llist); + + return 0; +} diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_dma_rxchan_open.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_dma_rxchan_open.c new file mode 100644 index 0000000..6ea3b78 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_dma_rxchan_open.c @@ -0,0 +1,63 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_dma.h" +#include "sys/alt_errno.h" +#include "priv/alt_file.h" + +/* + * The list of registered DMA receive channels. + */ + +ALT_LLIST_HEAD(alt_dma_rxchan_list); + +/* + * alt_dma_txchan_open() is used to obtain an "alt_dma_txchan" descriptor for + * a DMA transmit device. The name is the name of the associated physical + * device (e.g. "/dev/dma_0"). + * + * The return value will be NULL on failure, and non-NULL otherwise. + */ + +alt_dma_rxchan alt_dma_rxchan_open (const char* name) +{ + alt_dma_rxchan dev; + + dev = (alt_dma_rxchan) alt_find_dev (name, &alt_dma_rxchan_list); + + if (!dev) + { + ALT_ERRNO = ENODEV; + } + + return dev; +} diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_dma_txchan_open.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_dma_txchan_open.c new file mode 100644 index 0000000..f41fa81 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_dma_txchan_open.c @@ -0,0 +1,63 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_dma.h" +#include "sys/alt_errno.h" +#include "priv/alt_file.h" + +/* + * The list of registered receive channels. + */ + +ALT_LLIST_HEAD(alt_dma_txchan_list); + +/* + * alt_dma_txchan_open() is used to obtain an "alt_dma_txchan" descriptor for + * a DMA transmit device. The name is the name of the associated physical + * device (e.g. "/dev/dma_0"). + * + * The return value will be NULL on failure, and non-NULL otherwise. + */ + +alt_dma_txchan alt_dma_txchan_open (const char* name) +{ + alt_dma_txchan dev; + + dev = (alt_dma_txchan) alt_find_dev (name, &alt_dma_txchan_list); + + if (!dev) + { + ALT_ERRNO = ENODEV; + } + + return dev; +} diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_do_ctors.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_do_ctors.c new file mode 100644 index 0000000..ff5a1f7 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_do_ctors.c @@ -0,0 +1,64 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT IT DIRECTLY. * +* * +* Overriding HAL Functions * +* * +* To provide your own implementation of a HAL function, include the file in * +* your Nios II IDE application project. When building the executable, the * +* Nios II IDE finds your function first, and uses it in place of the HAL * +* version. * +* * +******************************************************************************/ + +/* + * + */ + +typedef void (*constructor) (void); +extern constructor __CTOR_LIST__[]; +extern constructor __CTOR_END__[]; + +/* + * Run the C++ static constructors. + */ + +void _do_ctors(void) +{ + constructor* ctor; + + for (ctor = &__CTOR_END__[-1]; ctor >= __CTOR_LIST__; ctor--) + (*ctor) (); +} diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_do_dtors.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_do_dtors.c new file mode 100644 index 0000000..565c99f --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_do_dtors.c @@ -0,0 +1,64 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT IT DIRECTLY. * +* * +* Overriding HAL Functions * +* * +* To provide your own implementation of a HAL function, include the file in * +* your Nios II IDE application project. When building the executable, the * +* Nios II IDE finds your function first, and uses it in place of the HAL * +* version. * +* * +******************************************************************************/ + +/* + * + */ + +typedef void (*destructor) (void); +extern destructor __DTOR_LIST__[]; +extern destructor __DTOR_END__[]; + +/* + * Run the C++ static destructors. + */ + +void _do_dtors(void) +{ + destructor* dtor; + + for (dtor = &__DTOR_END__[-1]; dtor >= __DTOR_LIST__; dtor--) + (*dtor) (); +} diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_env_lock.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_env_lock.c new file mode 100644 index 0000000..fc25a0c --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_env_lock.c @@ -0,0 +1,53 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +/* + * These are the empty env lock/unlock stubs required by newlib. These are + * used to make accesses to environment variables thread safe. The default HAL + * configuration is single threaded, so there is nothing to do here. Note that + * this requires that environment variables are never manipulated by an interrupt + * service routine. + */ + +void __env_lock ( struct _reent *_r ) +{ +} + +/* + * + */ + +void __env_unlock ( struct _reent *_r ) +{ +} diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_environ.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_environ.c new file mode 100644 index 0000000..404efc4 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_environ.c @@ -0,0 +1,42 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "os/alt_syscall.h" + +/* + * These are the environment variables passed to the C code. By default there + * are no variables registered. An application can manipulate this list using + * getenv() and setenv(). + */ + +char *__env[1] = { 0 }; +char **ALT_ENVIRON = __env; diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_errno.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_errno.c new file mode 100644 index 0000000..1d8368d --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_errno.c @@ -0,0 +1,44 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/* + * This file defines the alt_errno global variable. See comments in + * alt_errno.h for the use of this variable. + */ + + +#include "sys/alt_errno.h" +#include "alt_types.h" + +extern int ALT_WEAK *__errno (void); + +int* (*alt_errno) (void) = __errno; diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_exception_entry.S b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_exception_entry.S new file mode 100644 index 0000000..3afab93 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_exception_entry.S @@ -0,0 +1,360 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003-2008 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "system.h" + +/* + * This is the exception entry point code, which saves all the caller saved + * registers and then handles the appropriate exception. It should be pulled + * in using a .globl from all the exception handler routines. This scheme is + * used so that if an interrupt is never registered, then this code will not + * appear in the generated executable, thereby improving code footprint. + * + * If an external interrpt controller (EIC) is present, it will supply an + * interrupt vector address to the processor when an interrupt occurs. For + * The Altera Vectored Interrupt Controller (VIC) driver will establish a + * vector table and the processor will jump directly to the appropriate + * table entry, funnel routine, and then user ISR. This will bypass this code + * in entirety. This code might still be linked into a system with an EIC, + * but would then be used only for non-interrupt exceptions. + */ + + /* + * Explicitly allow the use of r1 (the assembler temporary register) + * within this code. This register is normally reserved for the use of + * the assembler. + */ + .set noat + + /* + * The top and bottom of the exception stack + */ +#ifdef ALT_EXCEPTION_STACK + + .globl __alt_exception_stack_pointer + +#ifdef ALT_STACK_CHECK + + .globl __alt_exception_stack_limit + + /* + * We need to store the value of the stack limit after interrupt somewhere. + */ + .globl alt_exception_old_stack_limit + +#endif +#endif + + .section .exceptions.entry.label, "xa" + + .globl alt_exception + .type alt_exception, @function +alt_exception: + + .section .exceptions.entry, "xa" + +#ifdef ALT_EXCEPTION_STACK + +#ifdef ALT_STACK_CHECK + stw et, %gprel(alt_exception_old_stack_limit)(gp) +#endif + + movhi et, %hiadj(__alt_exception_stack_pointer - 80) + addi et, et, %lo(__alt_exception_stack_pointer - 80) + stw sp, 76(et) + mov sp, et + +#ifdef ALT_STACK_CHECK + movhi et, %hiadj(__alt_exception_stack_limit) + addi et, et, %lo(__alt_exception_stack_limit) + stw et, %gprel(alt_stack_limit_value)(gp) +#endif + +#else + /* + * Process an exception. For all exceptions we must preserve all + * caller saved registers on the stack (See the Nios2 ABI + * documentation for details). + */ + + addi sp, sp, -76 + +#ifdef ALT_STACK_CHECK + + bltu sp, et, .Lstack_overflow + +#endif + +#endif + + stw ra, 0(sp) + + /* + * Leave a gap in the stack frame at 4(sp) for the muldiv handler to + * store zero into. + */ + + stw r1, 8(sp) + stw r2, 12(sp) + stw r3, 16(sp) + stw r4, 20(sp) + stw r5, 24(sp) + stw r6, 28(sp) + stw r7, 32(sp) + + rdctl r5, estatus + + stw r8, 36(sp) + stw r9, 40(sp) + stw r10, 44(sp) + stw r11, 48(sp) + stw r12, 52(sp) + stw r13, 56(sp) + stw r14, 60(sp) + stw r15, 64(sp) + + /* + * ea-4 contains the address of the instruction being executed + * when the exception occured. For interrupt exceptions, we will + * will be re-issue the isntruction. Store it in 72(sp) + */ + stw r5, 68(sp) /* estatus */ + addi r15, ea, -4 /* instruction that caused exception */ + stw r15, 72(sp) + + /* + * The interrupt testing code (.exceptions.irqtest) will be + * linked here. If the Internal Interrupt Controller (IIC) is + * present (an EIC is not present), the presense of an interrupt + * is determined by examining CPU control registers or an interrupt + * custom instruction, if present. + * + * If the IIC is used and an interrupt is active, the code linked + * here will call the HAL IRQ handler (alt_irq_handler()) which + * successively calls registered interrupt handler(s) until no + * interrupts remain pending. It then jumps to .exceptions.exit. If + * there is no interrupt then it continues to .exception.notirq, below. + */ + + .section .exceptions.notirq, "xa" + + /* + * Prepare to service unimplemtned instructions or traps, + * each of which is optionally inked into section .exceptions.soft, + * which will preceed .exceptions.unknown below. + * + * Unlike interrupts, we want to skip the exception-causing instructon + * upon completion, so we write ea (address of instruction *after* + * the one where the exception occured) into 72(sp). The actual + * instruction that caused the exception is written in r2, which these + * handlers will utilize. + */ + stw ea, 72(sp) /* Don't re-issue */ + ldw r2, -4(ea) /* Instruction that caused exception */ + + /* + * Other exception handling code, if enabled, will be linked here. + * This includes unimplemted (multiply/divide) instruction support + * (a BSP generaton option), and a trap handler (that would typically + * be augmented with user-specific code). These are not linked in by + * default. + */ + + /* + * In the context of linker sections, "unknown" are all exceptions + * not handled by the built-in handlers above (interupt, and trap or + * unimplemented instruction decoding, if enabled). + * + * Advanced exception types can be serviced by registering a handler. + * To do so, enable the "Enable Instruction-related Exception API" HAL + * BSP setting. If this setting is disabled, this handler code will + * either break (if the debug core is present) or enter an infinite + * loop because we don't how how to handle the exception. + */ + .section .exceptions.unknown +#ifdef ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API + /* + * The C-based HAL routine alt_instruction_exception_entry() will + * attempt to service the exception by calling a user-registered + * exception handler using alt_instruction_exception_register(). + * If no handler was registered it will either break (if the + * debugger is present) or go into an infinite loop since the + * handling behavior is undefined; in that case we will not return here. + */ + + /* Load exception-causing address as first argument (r4) */ + addi r4, ea, -4 + + /* Call the instruction-exception entry */ + call alt_instruction_exception_entry + + /* + * If alt_instruction_exception_entry() returned, the exception was + * serviced by a user-registered routine. Its return code (now in r2) + * indicates whether to re-issue or skip the exception-causing + * instruction + * + * Return code was 0: Skip. The instruction after the exception is + * already stored in 72(sp). + */ + bne r2, r0, .Lexception_exit + + /* + * Otherwise, modify 72(sp) to re-issue the instruction that caused the + * exception. + */ + addi r15, ea, -4 /* instruction that caused exception */ + stw r15, 72(sp) + +#else /* ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API disabled */ + + /* + * We got here because an instruction-related exception occured, but the + * handler API was not compiled in. We do not presume to know how to + * handle it. If the debugger is present, break, otherwise hang. + * + * If you get here then one of the following could have happened: + * + * - An instruction-generated exception occured, and the processor + * does not have the extra exceptions feature enabled, or you + * have not registered a handler using + * alt_instruction_exception_register() + * + * Some examples of instruction-generated exceptions and why they + * might occur: + * + * - Your program could have been compiled for a full-featured + * Nios II core, but it is running on a smaller core, and + * instruction emulation has been disabled by defining + * ALT_NO_INSTRUCTION_EMULATION. + * + * You can work around the problem by re-enabling instruction + * emulation, or you can figure out why your program is being + * compiled for a system other than the one that it is running on. + * + * - Your program has executed a trap instruction, but has not + * implemented a handler for this instruction. + * + * - Your program has executed an illegal instruction (one which is + * not defined in the instruction set). + * + * - Your processor includes an MMU or MPU, and you have enabled it + * before registering an exception handler to service exceptions it + * generates. + * + * The problem could also be hardware related: + * - If your hardware is broken and is generating spurious interrupts + * (a peripheral which negates its interrupt output before its + * interrupt handler has been executed will cause spurious + * interrupts) + */ +#ifdef NIOS2_HAS_DEBUG_STUB + /* + * Either tell the user now (if there is a debugger attached) or go into + * the debug monitor which will loop until a debugger is attached. + */ + break +#else + /* + * If there is no debug stub then a BREAK will probably cause a reboot. + * An infinate loop will probably be more useful. + */ +0: + br 0b +#endif /* NIOS2_HAS_DEBUG_STUB */ + +#endif /* ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API */ + + .section .exceptions.exit.label +.Lexception_exit: + + .section .exceptions.exit, "xa" + + /* + * Restore the saved registers, so that all general purpose registers + * have been restored to their state at the time the interrupt occured. + */ + + ldw r5, 68(sp) + ldw ea, 72(sp) /* This becomes the PC once eret is executed */ + ldw ra, 0(sp) + + wrctl estatus, r5 + + ldw r1, 8(sp) + ldw r2, 12(sp) + ldw r3, 16(sp) + ldw r4, 20(sp) + ldw r5, 24(sp) + ldw r6, 28(sp) + ldw r7, 32(sp) + +#ifdef ALT_EXCEPTION_STACK +#ifdef ALT_STACK_CHECK + ldw et, %gprel(alt_exception_old_stack_limit)(gp) +#endif +#endif + + ldw r8, 36(sp) + ldw r9, 40(sp) + ldw r10, 44(sp) + ldw r11, 48(sp) + ldw r12, 52(sp) + ldw r13, 56(sp) + ldw r14, 60(sp) + ldw r15, 64(sp) + +#ifdef ALT_EXCEPTION_STACK + +#ifdef ALT_STACK_CHECK + stw et, %gprel(alt_stack_limit_value)(gp) + stw zero, %gprel(alt_exception_old_stack_limit)(gp) +#endif + + ldw sp, 76(sp) + +#else + addi sp, sp, 76 + +#endif + + /* + * Return to the interrupted instruction. + */ + + eret + +#ifdef ALT_STACK_CHECK + +.Lstack_overflow: + break 3 + +#endif + diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_exception_muldiv.S b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_exception_muldiv.S new file mode 100644 index 0000000..55617a6 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_exception_muldiv.S @@ -0,0 +1,583 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003-2005 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + + /* + * This is the software multiply/divide handler for Nios2. + */ + + /* + * Provide a label which can be used to pull this file in. + */ + + .section .exceptions.start + .globl alt_exception_muldiv +alt_exception_muldiv: + + /* + * Pull in the entry/exit code. + */ + .globl alt_exception + + + .section .exceptions.soft, "xa" + + + /* INSTRUCTION EMULATION + * --------------------- + * + * Nios II processors generate exceptions for unimplemented instructions. + * The routines below emulate these instructions. Depending on the + * processor core, the only instructions that might need to be emulated + * are div, divu, mul, muli, mulxss, mulxsu, and mulxuu. + * + * The emulations match the instructions, except for the following + * limitations: + * + * 1) The emulation routines do not emulate the use of the exception + * temporary register (et) as a source operand because the exception + * handler already has modified it. + * + * 2) The routines do not emulate the use of the stack pointer (sp) or the + * exception return address register (ea) as a destination because + * modifying these registers crashes the exception handler or the + * interrupted routine. + * + * 3) To save code size, the routines do not emulate the use of the + * breakpoint registers (ba and bt) as operands. + * + * Detailed Design + * --------------- + * + * The emulation routines expect the contents of integer registers r0-r31 + * to be on the stack at addresses sp, 4(sp), 8(sp), ... 124(sp). The + * routines retrieve source operands from the stack and modify the + * destination register's value on the stack prior to the end of the + * exception handler. Then all registers except the destination register + * are restored to their previous values. + * + * The instruction that causes the exception is found at address -4(ea). + * The instruction's OP and OPX fields identify the operation to be + * performed. + * + * One instruction, muli, is an I-type instruction that is identified by + * an OP field of 0x24. + * + * muli AAAAA,BBBBB,IIIIIIIIIIIIIIII,-0x24- + * 27 22 6 0 <-- LSB of field + * + * The remaining emulated instructions are R-type and have an OP field + * of 0x3a. Their OPX fields identify them. + * + * R-type AAAAA,BBBBB,CCCCC,XXXXXX,NNNNN,-0x3a- + * 27 22 17 11 6 0 <-- LSB of field + * + * + */ + + + /* + * Split the instruction into its fields. We need 4*A, 4*B, and 4*C as + * offsets to the stack pointer for access to the stored register values. + */ + /* r2 = AAAAA,BBBBB,IIIIIIIIIIIIIIII,PPPPPP */ + roli r3, r2, 7 /* r3 = BBB,IIIIIIIIIIIIIIII,PPPPPP,AAAAA,BB */ + roli r4, r3, 3 /* r4 = IIIIIIIIIIIIIIII,PPPPPP,AAAAA,BBBBB */ + roli r6, r4, 2 /* r6 = IIIIIIIIIIIIII,PPPPPP,AAAAA,BBBBB,II */ + srai r4, r4, 16 /* r4 = (sign-extended) IMM16 */ + xori r6, r6, 0x42 /* r6 = CCC,XXXXXX,NNNNN,PPPPPP,AAAAA,bBBBB,cC */ + roli r7, r6, 5 /* r7 = XXXX,NNNNN,PPPPPP,AAAAA,bBBBB,cCCCC,XX */ + andi r5, r2, 0x3f /* r5 = 00000000000000000000000000,PPPPPP */ + xori r3, r3, 0x40 + andi r3, r3, 0x7c /* r3 = 0000000000000000000000000,aAAAA,00 */ + andi r6, r6, 0x7c /* r6 = 0000000000000000000000000,bBBBB,00 */ + andi r7, r7, 0x7c /* r7 = 0000000000000000000000000,cCCCC,00 */ + + /* Now either + * r5 = OP + * r3 = 4*(A^16) + * r4 = IMM16 (sign extended) + * r6 = 4*(B^16) + * r7 = 4*(C^16) + * or + * r5 = OP + */ + + + /* + * Save everything on the stack to make it easy for the emulation routines + * to retrieve the source register operands. The exception entry code has + * already saved some of this so we don't need to do it all again. + */ + + addi sp, sp, -60 + stw zero, 64(sp) /* Save zero on stack to avoid special case for r0. */ + /* Register at and r2-r15 have already been saved. */ + + stw r16, 0(sp) + stw r17, 4(sp) + stw r18, 8(sp) + stw r19, 12(sp) + stw r20, 16(sp) + stw r21, 20(sp) + stw r22, 24(sp) + stw r23, 28(sp) + /* et @ 32 - Has already been changed.*/ + /* bt @ 36 - Usually isn't an operand. */ + stw gp, 40(sp) + stw sp, 44(sp) + stw fp, 48(sp) + /* ea @ 52 - Don't bother to save - it's already been changed */ + /* ba @ 56 - Breakpoint register usually isn't an operand */ + /* ra @ 60 - Has already been saved */ + + + /* + * Prepare for either multiplication or division loop. + * They both loop 32 times. + */ + movi r14, 32 + + + /* + * Get the operands. + * + * It is necessary to check for muli because it uses an I-type instruction + * format, while the other instructions are have an R-type format. + */ + add r3, r3, sp /* r3 = address of A-operand. */ + ldw r3, 0(r3) /* r3 = A-operand. */ + movi r15, 0x24 /* muli opcode (I-type instruction format) */ + beq r5, r15, .Lmul_immed /* muli doesn't use the B register as a source */ + + add r6, r6, sp /* r6 = address of B-operand. */ + ldw r6, 0(r6) /* r6 = B-operand. */ + /* r4 = SSSSSSSSSSSSSSSS,-----IMM16------ */ + /* IMM16 not needed, align OPX portion */ + /* r4 = SSSSSSSSSSSSSSSS,CCCCC,-OPX--,00000 */ + srli r4, r4, 5 /* r4 = 00000,SSSSSSSSSSSSSSSS,CCCCC,-OPX-- */ + andi r4, r4, 0x3f /* r4 = 00000000000000000000000000,-OPX-- */ + + /* Now + * r5 = OP + * r3 = src1 + * r6 = src2 + * r4 = OPX (no longer can be muli) + * r7 = 4*(C^16) + * r14 = loop counter + */ + + /* ILLEGAL-INSTRUCTION EXCEPTION + * ----------------------------- + * + * This code is for Nios II cores that generate exceptions when attempting + * to execute illegal instructions. Nios II cores that support an + * illegal-instruction exception are identified by the presence of the + * macro definition NIOS2_HAS_ILLEGAL_INSTRUCTION_EXCEPTION in system.h . + * + * Remember that illegal instructions are different than unimplemented + * instructions. Illegal instructions are instruction encodings that + * have not been defined by the Nios II ISA. Unimplemented instructions + * are legal instructions that must be emulated by some Nios II cores. + * + * If we get here, all instructions except multiplies and divides + * are illegal. + * + * This code assumes that OP is not muli (because muli was tested above). + * All other multiplies and divides are legal. Anything else is illegal. + */ + + movi r8, 0x3a /* OP for R-type mul* and div* */ + bne r5, r8, .Lnot_muldiv + + /* r15 already is 0x24 */ /* OPX of divu */ + beq r4, r15, .Ldivide + + movi r15,0x27 /* OPX of mul */ + beq r4, r15, .Lmultiply + + movi r15,0x07 /* OPX of mulxuu */ + beq r4, r15, .Lmultiply + + movi r15,0x17 /* OPX of mulxsu */ + beq r4, r15, .Lmultiply + + movi r15,0x1f /* OPX of mulxss */ + beq r4, r15, .Lmultiply + + movi r15,0x25 /* OPX of div */ + bne r4, r15, .Lnot_muldiv + + + /* DIVISION + * + * Divide an unsigned dividend by an unsigned divisor using + * a shift-and-subtract algorithm. The example below shows + * 43 div 7 = 6 for 8-bit integers. This classic algorithm uses a + * single register to store both the dividend and the quotient, + * allowing both values to be shifted with a single instruction. + * + * remainder dividend:quotient + * --------- ----------------- + * initialize 00000000 00101011: + * shift 00000000 0101011:_ + * remainder >= divisor? no 00000000 0101011:0 + * shift 00000000 101011:0_ + * remainder >= divisor? no 00000000 101011:00 + * shift 00000001 01011:00_ + * remainder >= divisor? no 00000001 01011:000 + * shift 00000010 1011:000_ + * remainder >= divisor? no 00000010 1011:0000 + * shift 00000101 011:0000_ + * remainder >= divisor? no 00000101 011:00000 + * shift 00001010 11:00000_ + * remainder >= divisor? yes 00001010 11:000001 + * remainder -= divisor - 00000111 + * ---------- + * 00000011 11:000001 + * shift 00000111 1:000001_ + * remainder >= divisor? yes 00000111 1:0000011 + * remainder -= divisor - 00000111 + * ---------- + * 00000000 1:0000011 + * shift 00000001 :0000011_ + * remainder >= divisor? no 00000001 :00000110 + * + * The quotient is 00000110. + */ + +.Ldivide: + /* + * Prepare for division by assuming the result + * is unsigned, and storing its "sign" as 0. + */ + movi r17, 0 + + + /* Which division opcode? */ + xori r15, r4, 0x25 /* OPX of div */ + bne r15, zero, .Lunsigned_division + + + /* + * OPX is div. Determine and store the sign of the quotient. + * Then take the absolute value of both operands. + */ + xor r17, r3, r6 /* MSB contains sign of quotient */ + bge r3, zero, 0f + sub r3, zero, r3 /* -r3 */ +0: + bge r6, zero, 0f + sub r6, zero, r6 /* -r6 */ +0: + + +.Lunsigned_division: + /* Initialize the unsigned-division loop. */ + movi r13, 0 /* remainder = 0 */ + + /* Now + * r3 = dividend : quotient + * r4 = 0x25 for div, 0x24 for divu + * r6 = divisor + * r13 = remainder + * r14 = loop counter (already initialized to 32) + * r17 = MSB contains sign of quotient + */ + + + /* + * for (count = 32; count > 0; --count) + * { + */ +.Ldivide_loop: + + /* + * Division: + * + * (remainder:dividend:quotient) <<= 1; + */ + slli r13, r13, 1 + cmplt r15, r3, zero /* r15 = MSB of r3 */ + or r13, r13, r15 + slli r3, r3, 1 + + + /* + * if (remainder >= divisor) + * { + * set LSB of quotient + * remainder -= divisor; + * } + */ + bltu r13, r6, .Ldiv_skip + ori r3, r3, 1 + sub r13, r13, r6 +.Ldiv_skip: + + /* + * } + */ + subi r14, r14, 1 + bne r14, zero, .Ldivide_loop + + mov r9, r3 + + + /* Now + * r9 = quotient + * r4 = 0x25 for div, 0x24 for divu + * r7 = 4*(C^16) + * r17 = MSB contains sign of quotient + */ + + + /* + * Conditionally negate signed quotient. If quotient is unsigned, + * the sign already is initialized to 0. + */ + bge r17, zero, .Lstore_result + sub r9, zero, r9 /* -r9 */ + + br .Lstore_result + + + + + /* MULTIPLICATION + * + * A "product" is the number that one gets by summing a "multiplicand" + * several times. The "multiplier" specifies the number of copies of the + * multiplicand that are summed. + * + * Actual multiplication algorithms don't use repeated addition, however. + * Shift-and-add algorithms get the same answer as repeated addition, and + * they are faster. To compute the lower half of a product (pppp below) + * one shifts the product left before adding in each of the partial products + * (a * mmmm) through (d * mmmm). + * + * To compute the upper half of a product (PPPP below), one adds in the + * partial products (d * mmmm) through (a * mmmm), each time following the + * add by a right shift of the product. + * + * mmmm + * * abcd + * ------ + * #### = d * mmmm + * #### = c * mmmm + * #### = b * mmmm + * #### = a * mmmm + * -------- + * PPPPpppp + * + * The example above shows 4 partial products. Computing actual Nios II + * products requires 32 partials. + * + * It is possible to compute the result of mulxsu from the result of mulxuu + * because the only difference between the results of these two opcodes is + * the value of the partial product associated with the sign bit of rA. + * + * mulxsu = mulxuu - ((rA < 0) ? rB : 0); + * + * It is possible to compute the result of mulxss from the result of mulxsu + * because the only difference between the results of these two opcodes is + * the value of the partial product associated with the sign bit of rB. + * + * mulxss = mulxsu - ((rB < 0) ? rA : 0); + * + */ + +.Lmul_immed: + /* Opcode is muli. Change it into mul for remainder of algorithm. */ + mov r7, r6 /* Field B is dest register, not field C. */ + mov r6, r4 /* Field IMM16 is src2, not field B. */ + movi r4, 0x27 /* OPX of mul is 0x27 */ + +.Lmultiply: + /* Initialize the multiplication loop. */ + movi r9, 0 /* mul_product = 0 */ + movi r10, 0 /* mulxuu_product = 0 */ + mov r11, r6 /* save original multiplier for mulxsu and mulxss */ + mov r12, r6 /* mulxuu_multiplier (will be shifted) */ + movi r16, 1 /* used to create "rori B,A,1" from "ror B,A,r16" */ + + /* Now + * r3 = multiplicand + * r6 = mul_multiplier + * r7 = 4 * dest_register (used later as offset to sp) + * r9 = mul_product + * r10 = mulxuu_product + * r11 = original multiplier + * r12 = mulxuu_multiplier + * r14 = loop counter (already initialized) + * r15 = temp + * r16 = 1 + */ + + + /* + * for (count = 32; count > 0; --count) + * { + */ +.Lmultiply_loop: + + /* + * mul_product <<= 1; + * lsb = multiplier & 1; + */ + slli r9, r9, 1 + andi r15, r12, 1 + + /* + * if (lsb == 1) + * { + * mulxuu_product += multiplicand; + * } + */ + beq r15, zero, .Lmulx_skip + add r10, r10, r3 + cmpltu r15, r10, r3 /* Save the carry from the MSB of mulxuu_product. */ + ror r15, r15, r16 /* r15 = 0x80000000 on carry, or else 0x00000000 */ +.Lmulx_skip: + + /* + * if (MSB of mul_multiplier == 1) + * { + * mul_product += multiplicand; + * } + */ + bge r6, zero, .Lmul_skip + add r9, r9, r3 +.Lmul_skip: + + /* + * mulxuu_product >>= 1; logical shift + * mul_multiplier <<= 1; done with MSB + * mulx_multiplier >>= 1; done with LSB + */ + srli r10, r10, 1 + or r10, r10, r15 /* OR in the saved carry bit. */ + slli r6, r6, 1 + srli r12, r12, 1 + + + /* + * } + */ + subi r14, r14, 1 + bne r14, zero, .Lmultiply_loop + + + /* + * Multiply emulation loop done. + */ + + /* Now + * r3 = multiplicand + * r4 = OPX + * r7 = 4 * dest_register (used later as offset to sp) + * r9 = mul_product + * r10 = mulxuu_product + * r11 = original multiplier + * r15 = temp + */ + + + /* + * Select/compute the result based on OPX. + */ + + + /* OPX == mul? Then store. */ + xori r15, r4, 0x27 + beq r15, zero, .Lstore_result + + /* It's one of the mulx.. opcodes. Move over the result. */ + mov r9, r10 + + /* OPX == mulxuu? Then store. */ + xori r15, r4, 0x07 + beq r15, zero, .Lstore_result + + /* Compute mulxsu + * + * mulxsu = mulxuu - ((rA < 0) ? rB : 0); + */ + bge r3, zero, .Lmulxsu_skip + sub r9, r9, r11 +.Lmulxsu_skip: + + /* OPX == mulxsu? Then store. */ + xori r15, r4, 0x17 + beq r15, zero, .Lstore_result + + /* Compute mulxss + * + * mulxss = mulxsu - ((rB < 0) ? rA : 0); + */ + bge r11, zero, .Lmulxss_skip + sub r9, r9, r3 +.Lmulxss_skip: + /* At this point, assume that OPX is mulxss, so store */ + + +.Lstore_result: + add r7, r7, sp + stw r9, 0(r7) + + ldw r16, 0(sp) + ldw r17, 4(sp) + ldw r18, 8(sp) + ldw r19, 12(sp) + ldw r20, 16(sp) + ldw r21, 20(sp) + ldw r22, 24(sp) + ldw r23, 28(sp) + + /* bt @ 32 - Breakpoint register usually isn't an operand. */ + /* et @ 36 - Don't corrupt et. */ + /* gp @ 40 - Don't corrupt gp. */ + /* sp @ 44 - Don't corrupt sp. */ + ldw fp, 48(sp) + /* ea @ 52 - Don't corrupt ea. */ + /* ba @ 56 - Breakpoint register usually isn't an operand. */ + + addi sp, sp, 60 + + br .Lexception_exit + + +.Lnot_muldiv: + + addi sp, sp, 60 + + + .section .exceptions.exit.label +.Lexception_exit: + diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_exception_trap.S b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_exception_trap.S new file mode 100644 index 0000000..60a3d40 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_exception_trap.S @@ -0,0 +1,81 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003-2005 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + + /* + * This is the trap exception handler for Nios2. + */ + + /* + * Provide a label which can be used to pull this file in. + */ + + .section .exceptions.start + .globl alt_exception_trap +alt_exception_trap: + + /* + * Pull in the entry/exit code. + */ + .globl alt_exception + + .section .exceptions.soft, "xa" + +.Ltrap_handler: + + /* + * Did a trap instruction cause the exception? + * + * The instruction which the exception occurred on has been loaded + * into r2 by code in alt_exception_entry.S + * + */ + + movhi r3,0x003b /* upper half of trap opcode */ + ori r3,r3,0x683a /* lower half of trap opcode */ + bne r2,r3,.Lnot_trap + + /* + * There is no trap handler defined here, and so executing a trap + * instruction causes a software break. If you provide a trap handler, + * then you must replace the break instruction below with your handler. + * Your handler must preserve ea and the usual callee saved registers. + */ + + break + + br .Lexception_exit + +.Lnot_trap: + + + .section .exceptions.exit.label +.Lexception_exit: + + diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_execve.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_execve.c new file mode 100644 index 0000000..27b99cf --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_execve.c @@ -0,0 +1,55 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_errno.h" +#include "sys/alt_warning.h" +#include "os/alt_syscall.h" + +/* + * execve() is used by newlib to launch new processes. This is unsupported in + * the HAL environment. However a "do-nothing" implementation is still + * provied for newlib compatability. + * + * ALT_EXECVE is mapped onto the execve() system call in alt_syscall.h + */ + +int ALT_EXECVE (char *name, char ** argv, char** env) +{ + /* Generate a link time warning, should this function ever be called. */ + + ALT_STUB_WARNING(execve); + + /* Indicate an error */ + + ALT_ERRNO = ENOSYS; + return -1; +} diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_exit.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_exit.c new file mode 100644 index 0000000..971b35e --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_exit.c @@ -0,0 +1,71 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_irq.h" +#include "sys/alt_sim.h" +#include "os/alt_hooks.h" +#include "os/alt_syscall.h" + +#include "alt_types.h" +#include "sys/alt_log_printf.h" +/* + * _exit() is called by exit() in order to terminate the current process. + * Typically this is called when main() completes. It should never return. + * Since there is nowhere to go once this process completes, this + * implementation simply blocks forever. + * + * Note that interrupts are not disabled so that execution outside of this + * thread is allowed to continue. + * + * ALT_EXIT is mapped onto the _exit() system call in alt_syscall.h + */ + +void ALT_EXIT (int exit_code) +{ + /* ALT_LOG - please see HAL/inc/alt_log_printf.h for details */ + ALT_LOG_PRINT_BOOT("[alt_exit.c] Entering _exit() function.\r\n"); + ALT_LOG_PRINT_BOOT("[alt_exit.c] Exit code from main was %d.\r\n",exit_code); + /* Stop all other threads */ + + ALT_LOG_PRINT_BOOT("[alt_exit.c] Calling ALT_OS_STOP().\r\n"); + ALT_OS_STOP(); + + /* Provide notification to the simulator that we've stopped */ + + ALT_LOG_PRINT_BOOT("[alt_exit.c] Calling ALT_SIM_HALT().\r\n"); + ALT_SIM_HALT(exit_code); + + /* spin forever, since there's no where to go back to */ + + ALT_LOG_PRINT_BOOT("[alt_exit.c] Spinning forever.\r\n"); + while (1); +} diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_fcntl.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_fcntl.c new file mode 100644 index 0000000..69c1544 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_fcntl.c @@ -0,0 +1,101 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include + +#include +#include + +#include "sys/alt_errno.h" +#include "priv/alt_file.h" +#include "alt_types.h" +#include "os/alt_syscall.h" + +#define ALT_FCNTL_FLAGS_MASK ((alt_u32) (O_APPEND | O_NONBLOCK)) + +/* + * fcntl() is a limited implementation of the standard fcntl() system call. + * It can be used to change the state of the flags associated with an open + * file descriptor. Normally these flags are set during the call to + * open(). It is anticipated that the main use of this function will be to + * change the state of a device from blocking to non-blocking (where this is + * supported). + * + * The input argument "fd" is the file descriptor to be manipulated. "cmd" + * is the command to execute. This can be either F_GETFL (return the + * current value of the flags) or F_SETFL (set the value of the flags). + * + * If "cmd" is F_SETFL then the argument "arg" is the new value of flags, + * otherwise "arg" is ignored. Only the flags: O_APPEND and O_NONBLOCK + * can be updated by a call to fcntl(). All other flags remain + * unchanged. + * + * ALT_FCNTL is mapped onto the fcntl() system call in alt_syscall.h + */ + +int ALT_FCNTL (int file, int cmd, ...) +{ + alt_fd* fd; + long flags; + va_list argp; + + /* + * A common error case is that when the file descriptor was created, the call + * to open() failed resulting in a negative file descriptor. This is trapped + * below so that we don't try and process an invalid file descriptor. + */ + + fd = (file < 0) ? NULL : &alt_fd_list[file]; + + if (fd) + { + switch (cmd) + { + case F_GETFL: + return fd->fd_flags & ~((alt_u32) ALT_FD_FLAGS_MASK); + case F_SETFL: + va_start(argp, cmd); + flags = va_arg(argp, long); + fd->fd_flags &= ~ALT_FCNTL_FLAGS_MASK; + fd->fd_flags |= (flags & ALT_FCNTL_FLAGS_MASK); + va_end(argp); + return 0; + default: + ALT_ERRNO = EINVAL; + return -1; + } + } + + ALT_ERRNO = EBADFD; + return -1; +} diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_fd_lock.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_fd_lock.c new file mode 100644 index 0000000..0e2a85d --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_fd_lock.c @@ -0,0 +1,75 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +#include "priv/alt_file.h" + +/* + * alt_fd_lock() is called as a consequence of an ioctl call to gain exclusive + * access to a device, i.e.: + * + * ioctl (fd, TIOCEXCL, NULL); + * + * If there are no other open file descriptors which reference the same + * device, then alt_fd_lock() will grant the lock. Further calls to open() + * for this device will fail until the lock is released. + * + * This is done by calling close() for this file descriptor, or by calling: + * + * ioctl (fd, TIOCNXCL, NULL); + * + * The return value is zero for success, or negative in the case of failure. + */ + +int alt_fd_lock (alt_fd* fd) +{ + int i; + int rc = 0; + + ALT_SEM_PEND(alt_fd_list_lock, 0); + + for (i = 0; i < alt_max_fd; i++) + { + if ((&alt_fd_list[i] != fd) && (alt_fd_list[i].dev == fd->dev)) + { + rc = -EACCES; + goto alt_fd_lock_exit; + } + } + fd->fd_flags |= ALT_FD_EXCL; + + alt_fd_lock_exit: + + ALT_SEM_POST(alt_fd_list_lock); + return rc; +} diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_fd_unlock.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_fd_unlock.c new file mode 100644 index 0000000..fb700dc --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_fd_unlock.c @@ -0,0 +1,56 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +#include "priv/alt_file.h" + +/* + * alt_fd_unlock() is the inverse of alt_fd_lock(). It is called as a + * consequence of a TIOCNXCL ioctl request, e.g: + * + * ioctl (fd, TIOCNXCL, NULL); + * + * It enables multiple file descriptors to exist for the same device. This + * is normally the case, but it may have been disabled by a previous call to + * alt_fd_lock(). + * + * Return zero on sucess, and a negative value on failure. + * + * The current implementation always succeeds. + */ + +int alt_fd_unlock (alt_fd* fd) +{ + fd->fd_flags &= ~ALT_FD_EXCL; + return 0; +} diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_find_dev.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_find_dev.c new file mode 100644 index 0000000..37aefa4 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_find_dev.c @@ -0,0 +1,88 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include +#include + +#include "sys/alt_dev.h" +#include "priv/alt_file.h" + +#include "alt_types.h" + +/* + * alt_find_dev() is used by open() in order to locate a previously registered + * device with the name "name". The input argument "llist" is a pointer to the + * head of the device list to search. + * + * The return value is a pointer to the matching device, or NULL if there is + * no match. + * + * "name" must be an exact match for the devices registered name for a match to + * be found. + */ + +alt_dev* alt_find_dev(const char* name, alt_llist* llist) +{ + alt_dev* next = (alt_dev*) llist->next; + alt_32 len; + + len = strlen(name) + 1; + + /* + * Check each list entry in turn, until a match is found, or we reach the + * end of the list (i.e. next winds up pointing back to the list head). + */ + + while (next != (alt_dev*) llist) + { + + /* + * memcmp() is used here rather than strcmp() in order to reduce the size + * of the executable. + */ + + if (!memcmp (next->name, name, len)) + { + /* match found */ + + return next; + } + next = (alt_dev*) next->llist.next; + } + + /* No match found */ + + return NULL; +} + + diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_find_file.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_find_file.c new file mode 100644 index 0000000..2d97ec2 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_find_file.c @@ -0,0 +1,89 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include +#include + +#include "sys/alt_dev.h" +#include "priv/alt_file.h" + +#include "alt_types.h" + +/* + * alt_find_file() is used by open() in order to locate a previously registered + * filesystem that owns that mount point that contains the file named "name". + * + * The return value is a pointer to the matching filesystem, or NULL if there is + * no match. + * + * A match is considered to have been found if the filesystem name followed by + * either '/' or '\0' is the prefix of the filename. For example the filename: + * "/myfilesystem/junk.txt" would match: "/myfilesystem", but not: "/myfile". + */ + +alt_dev* alt_find_file (const char* name) +{ + alt_dev* next = (alt_dev*) alt_fs_list.next; + + alt_32 len; + + /* + * Check each list entry in turn, until a match is found, or we reach the + * end of the list (i.e. next winds up pointing back to the list head). + */ + + while (next != (alt_dev*) &alt_fs_list) + { + len = strlen(next->name); + + if (next->name[len-1] == '/') + { + len -= 1; + } + + if (((name[len] == '/') || (name[len] == '\0')) && + !memcmp (next->name, name, len)) + { + /* match found */ + + return next; + } + next = (alt_dev*) next->llist.next; + } + + /* No match found */ + + return NULL; +} + + diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_flash_dev.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_flash_dev.c new file mode 100644 index 0000000..213f721 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_flash_dev.c @@ -0,0 +1,69 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* Alt_flash.c - Functions to register a flash device to the "generic" flash * +* interface * +* * +* Author PRR * +* * +******************************************************************************/ + +#include +#include "sys/alt_llist.h" +#include "sys/alt_flash_dev.h" +#include "priv/alt_file.h" + +ALT_LLIST_HEAD(alt_flash_dev_list); + +alt_flash_fd* alt_flash_open_dev(const char* name) +{ + alt_flash_dev* dev = (alt_flash_dev*)alt_find_dev(name, &alt_flash_dev_list); + + if ((dev) && dev->open) + { + return dev->open(dev, name); + } + + return dev; +} + +void alt_flash_close_dev(alt_flash_fd* fd) +{ + if (fd && fd->close) + { + fd->close(fd); + } + return; +} + diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_fork.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_fork.c new file mode 100644 index 0000000..ce74df0 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_fork.c @@ -0,0 +1,57 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_warning.h" +#include "sys/alt_errno.h" +#include "os/alt_syscall.h" + +/* + * The fork() system call is used by newlib to create a duplicate copy of the + * curent process. This is unsupported in the HAL environment. However a + * "do-nothing" implementation is still provied for newlib compatability. + * + * ALT_FORK is mapped onto the fork() system call in alt_syscall.h + */ + +int ALT_FORK (void) +{ + /* Generate a link time warning, should this function ever be called. */ + + ALT_STUB_WARNING(fork); + + /* Indicate an error */ + + ALT_ERRNO = ENOSYS; + return -1; +} + + diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_fs_reg.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_fs_reg.c new file mode 100644 index 0000000..13437a1 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_fs_reg.c @@ -0,0 +1,75 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +#include "sys/alt_dev.h" +#include "priv/alt_file.h" + +/* + * The alt_fs_reg() function is used to register a file system. Once registered + * a device can be accessed using the standard posix calls: open(), read(), + * write() etc. + * + * System behaviour is undefined in the event that a file system is registered + * with a name that conflicts with an existing device or file system. + * + * alt_fs_reg() is not thread safe in the sense that there should be no other + * thread using the file system list at the time that alt_dev_reg() is called. In + * practice this means that alt_fs_reg() should only be called while operating + * in a single threaded mode. The expectation is that it will only be called + * by the file system initilisation functions invoked by alt_sys_init(), which in + * turn should only be called by the single threaded C startup code. + * + * A return value of zero indicates success. A negative return value indicates + * failure. + */ + +int alt_fs_reg (alt_dev* dev) +{ + /* + * check that the device has a name. + */ + + if (!dev->name) + { + return -ENODEV; + } + + /* + * register the file system. + */ + + alt_llist_insert(&alt_fs_list, &dev->llist); + + return 0; +} diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_fstat.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_fstat.c new file mode 100644 index 0000000..af5d527 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_fstat.c @@ -0,0 +1,128 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include + +#include "sys/alt_dev.h" +#include "sys/alt_warning.h" +#include "sys/alt_errno.h" +#include "priv/alt_file.h" +#include "os/alt_syscall.h" + +/* + * The fstat() system call is used to obtain information about the capabilities + * of an open file descriptor. By default file descriptors are marked as + * being character devices. If a device or file system wishes to advertise + * alternative capabilities then they can register an fstat() function within + * their associated alt_dev structure. This will be called to fill in the + * entries in the imput "st" structure. + * + * This function is provided for compatability with newlib. + * + * ALT_FSTAT is mapped onto the fstat() system call in alt_syscall.h + */ + +#ifdef ALT_USE_DIRECT_DRIVERS + +#include "system.h" + +/* + * Provide minimal version that just describes all file descriptors + * as character devices for provided stdio devices. + */ +int ALT_FSTAT (int file, struct stat *st) +{ + switch (file) { +#ifdef ALT_STDIN_PRESENT + case 0: /* stdin file descriptor */ +#endif /* ALT_STDIN_PRESENT */ +#ifdef ALT_STDOUT_PRESENT + case 1: /* stdout file descriptor */ +#endif /* ALT_STDOUT_PRESENT */ +#ifdef ALT_STDERR_PRESENT + case 2: /* stderr file descriptor */ +#endif /* ALT_STDERR_PRESENT */ + st->st_mode = _IFCHR; + return 0; + default: + return -1; + } + +#if !defined(ALT_STDIN_PRESENT) && !defined(ALT_STDOUT_PRESENT) && !defined(ALT_STDERR_PRESENT) + /* Generate a link time warning, should this function ever be called. */ + ALT_STUB_WARNING(fstat); +#endif +} + +#else /* !ALT_USE_DIRECT_DRIVERS */ + +int ALT_FSTAT (int file, struct stat *st) +{ + alt_fd* fd; + + /* + * A common error case is that when the file descriptor was created, the call + * to open() failed resulting in a negative file descriptor. This is trapped + * below so that we don't try and process an invalid file descriptor. + */ + + fd = (file < 0) ? NULL : &alt_fd_list[file]; + + if (fd) + { + /* Call the drivers fstat() function to fill out the "st" structure. */ + + if (fd->dev->fstat) + { + return fd->dev->fstat(fd, st); + } + + /* + * If no function is provided, mark the fd as belonging to a character + * device. + */ + + else + { + st->st_mode = _IFCHR; + return 0; + } + } + else + { + ALT_ERRNO = EBADFD; + return -1; + } +} + +#endif /* ALT_USE_DIRECT_DRIVERS */ diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_get_fd.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_get_fd.c new file mode 100644 index 0000000..db17b2c --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_get_fd.c @@ -0,0 +1,105 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include +#include + +#include "sys/alt_dev.h" +#include "priv/alt_file.h" + +#include "alt_types.h" + +#include "system.h" + +/* + * alt_get_fd() is called to allocate a new file descriptor from the file + * descriptor pool. If a file descriptor is succesfully allocated, it is + * configured to refer to device "dev". + * + * The return value is the index of the file descriptor structure (i.e. + * the offset of the file descriptor within the file descriptor array). A + * negative value indicates failure. + */ + +int alt_get_fd (alt_dev* dev) +{ + alt_32 i; + int rc = -EMFILE; + + /* + * Take the alt_fd_list_lock semaphore in order to avoid races when + * accessing the file descriptor pool. + */ + + ALT_SEM_PEND(alt_fd_list_lock, 0); + + /* + * Search through the list of file descriptors, and allocate the first + * free descriptor that's found. + * + * If a free descriptor is found, then the value of "alt_max_fd" is + * updated accordingly. "alt_max_fd" is a 'highwater mark' which + * indicates the highest file descriptor ever allocated. This is used to + * improve efficency when searching the file descriptor list, and + * therefore reduce contention on the alt_fd_list_lock semaphore. + */ + + for (i = 0; i < ALT_MAX_FD; i++) + { + if (!alt_fd_list[i].dev) + { + alt_fd_list[i].dev = dev; + if (i > alt_max_fd) + { + alt_max_fd = i; + } + rc = i; + goto alt_get_fd_exit; + } + } + + alt_get_fd_exit: + + /* + * Release the alt_fd_list_lock semaphore now that we are done with the + * file descriptor pool. + */ + + ALT_SEM_POST(alt_fd_list_lock); + + return rc; +} + + + + diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_getchar.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_getchar.c new file mode 100644 index 0000000..a8f50d5 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_getchar.c @@ -0,0 +1,61 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +#ifdef ALT_USE_DIRECT_DRIVERS +#include "system.h" +#include "sys/alt_driver.h" +#include "sys/alt_stdio.h" +#include "priv/alt_file.h" +#include "unistd.h" +#endif + +/* + * Uses the ALT_DRIVER_READ() macro to call directly to driver if available. + * Otherwise, uses newlib provided getchar() routine. + */ +int +alt_getchar(void) +{ +#ifdef ALT_USE_DIRECT_DRIVERS + ALT_DRIVER_READ_EXTERNS(ALT_STDIN_DEV); + char c; + + if (ALT_DRIVER_READ(ALT_STDIN_DEV, &c, 1, alt_fd_list[STDIN_FILENO].fd_flags) <= 0) { + return -1; + } + return c; +#else + return getchar(); +#endif +} diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_getpid.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_getpid.c new file mode 100644 index 0000000..2228c7e --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_getpid.c @@ -0,0 +1,47 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "os/alt_syscall.h" + +/* + * The getpid() system call is used by newlib to obtain the current process + * id. Since there is only ever a single process in the HAL environment, + * this just returns a constant. + * + * ALT_GETPID is mapped onto the getpid() system call in alt_syscall.h + */ + +int ALT_GETPID (void) +{ + return 0; +} + diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_gettod.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_gettod.c new file mode 100644 index 0000000..ed86cba --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_gettod.c @@ -0,0 +1,125 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include +#include + +#include "sys/alt_alarm.h" +#include "alt_types.h" +#include "os/alt_syscall.h" + +/* + * Macro defining the number of micoseconds in a second. + */ + +#define ALT_US (1000000) + +/* + * "alt_timezone" and "alt_resettime" are the values of the the reset time and + * time zone set through the last call to settimeofday(). By default they are + * zero initialised. + */ + +struct timezone alt_timezone = {0, 0}; +struct timeval alt_resettime = {0, 0}; + +/* + * gettimeofday() can be called to obtain a time structure which indicates the + * current "wall clock" time. This is calculated using the elapsed number of + * system clock ticks, and the value of "alt_resettime" and "alt_timezone" set + * through the last call to settimeofday(). + * + * Warning: if this function is called concurrently with a call to + * settimeofday(), the value returned by gettimeofday() will be unreliable. + * + * ALT_GETTIMEOFDAY is mapped onto the gettimeofday() system call in + * alt_syscall.h + */ + + +#if defined (__GNUC__) && (__GNUC__ >= 4) +int ALT_GETTIMEOFDAY (struct timeval *ptimeval, void *ptimezone_vptr) +{ + struct timezone *ptimezone = (struct timezone*)ptimezone_vptr; +#else +int ALT_GETTIMEOFDAY (struct timeval *ptimeval, struct timezone *ptimezone) +{ +#endif + + alt_u32 nticks = alt_nticks (); + alt_u32 tick_rate = alt_ticks_per_second (); + + /* + * Check to see if the system clock is running. This is indicated by a + * non-zero system clock rate. If the system clock is not running, an error + * is generated and the contents of "ptimeval" and "ptimezone" are not + * updated. + */ + + if (tick_rate) + { + ptimeval->tv_sec = alt_resettime.tv_sec + nticks/tick_rate; + ptimeval->tv_usec = alt_resettime.tv_usec + + (alt_u32)(((alt_u64)nticks*(ALT_US/tick_rate))%ALT_US); + + while(ptimeval->tv_usec < 0) { + if (ptimeval->tv_sec <= 0) + { + ptimeval->tv_sec = 0; + ptimeval->tv_usec = 0; + break; + } + else + { + ptimeval->tv_sec--; + ptimeval->tv_usec += ALT_US; + } + } + + while(ptimeval->tv_usec >= ALT_US) { + ptimeval->tv_sec++; + ptimeval->tv_usec -= ALT_US; + } + + if (ptimezone) + { + ptimezone->tz_minuteswest = alt_timezone.tz_minuteswest; + ptimezone->tz_dsttime = alt_timezone.tz_dsttime; + } + + return 0; + } + + return -ENOTSUP; +} + diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_gmon.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_gmon.c new file mode 100644 index 0000000..6add9f1 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_gmon.c @@ -0,0 +1,272 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003-2005 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include +#include +#include + +#include "priv/nios2_gmon_data.h" + +#include "sys/alt_irq.h" +#include "sys/alt_alarm.h" + + +/* Macros */ + +/* How large should the bins be which we use to generate the histogram */ +#define PCSAMPLE_BYTES_PER_BUCKET 32 + +#define NIOS2_READ_EA(dest) __asm__ ("mov %0, ea" : "=r" (dest)) + +/* The compiler inserts calls to mcount() at the start of + * every function call. The structure mcount_fn_arc records t + * he return address of the function called (in from_pc) + * and the return address of the mcount function + * (in self_pc). The number of times this arc is executed is + * recorded in the field count. + */ +struct mcount_fn_arc +{ + struct mcount_fn_arc * next; + void * from_pc; + unsigned int count; +}; + +/* We need to maintain a list of pointers to the heads of each adjacency + * list so that we can find them when writing out the gmon.out file. Since + * we don't know at the start of program execution how many functions will + * be called we use a list structure to do this. + */ +struct mcount_fn_entry +{ + struct mcount_fn_entry * next; + void * self_pc; + struct mcount_fn_arc * arc_head; +}; + +/* function prototypes */ + +void __mcount_record(void * self_pc, void * from_pc, struct mcount_fn_entry * fn_entry, struct mcount_fn_entry * * fn_head) __attribute__ ((no_instrument_function)); + +static __inline__ void * mcount_allocate(unsigned int size) __attribute__ ((no_instrument_function)); +static int nios2_pcsample_init(void) __attribute__ ((no_instrument_function)); +static alt_u32 nios2_pcsample(void* alarm) __attribute__ ((no_instrument_function)); + +/* global variables */ + +/* stext and etext are defined in the linker script */ +extern char stext[]; +extern char etext[]; + +/* Is the PC sampling stuff enabled yet? */ +static int pcsample_need_init = 1; + +#define HASH_BUCKETS 64 /* Must be a power of 2 */ + +/* This points to the list of adjacency list pointers. */ +struct mcount_fn_entry * __mcount_fn_head[HASH_BUCKETS]; + +/* pointer to the in-memory buffer containing the histogram */ +static unsigned short* s_pcsamples = 0; + +/* the address of the start and end of text section */ +static const unsigned int s_low_pc = (unsigned int)stext; +static const unsigned int s_high_pc = (unsigned int)etext; + +/* the alarm structure to register for pc sampling */ +static alt_alarm s_nios2_pcsample_alarm; + +unsigned int alt_gmon_data[GMON_DATA_SIZE] = +{ + 0x6e6f6d67, /* "gmon" */ + GMON_DATA_SIZE, + 0, + (unsigned int)stext, + (unsigned int)etext, + PCSAMPLE_BYTES_PER_BUCKET, + 0, + (unsigned int)__mcount_fn_head, + (unsigned int)(__mcount_fn_head + HASH_BUCKETS) +}; + +/* This holds the current slab of memory we're allocating out of */ +static char * mcount_slab_ptr = 0; +static int mcount_slab_size = 0; + +#define MCOUNT_SLAB_INCREMENT 1020 + + +/* + * We can't use malloc to allocate memory because that's too complicated, and + * can't be called at interrupt time. Use the lower level allocator instead + * because that's interrupt safe (and because we never free anything). + * + * For speed, we allocate a block of data at once. + */ +static __inline__ void * mcount_allocate(unsigned int size) +{ + void * data; + + if (size > mcount_slab_size) + { + mcount_slab_ptr = sbrk(MCOUNT_SLAB_INCREMENT); + mcount_slab_size = MCOUNT_SLAB_INCREMENT; + } + + data = mcount_slab_ptr; + mcount_slab_ptr += size; + mcount_slab_size -= size; + + return data; +} + + +/* + * Add the arc with the values of frompc and topc given to the graph. + * This function might be called at interrupt time so must be able to + * cope with reentrancy. + * + * The fast case, where we have already allocated a function arc, has been + * handled by the assmebler code. + */ +void __mcount_record(void * self_pc, void * from_pc, struct mcount_fn_entry * fn_entry, struct mcount_fn_entry * * fn_head) +{ + alt_irq_context context; + struct mcount_fn_arc * arc_entry; + + /* Keep trying to start up the PC sampler until it is running. + * (It can't start until the timer is going). + */ + if (pcsample_need_init) + { + pcsample_need_init = 0; + pcsample_need_init = nios2_pcsample_init(); + } + + /* + * We must disable interrupts around the allocation and the list update to + * prevent corruption if the instrumented function is re-entrant. + * + * It's safe for the code above to be stepping through the chain and be + * interrupted by this code modifying it - there is an edge case which will + * leave two copies of the same arc on the list (both with count=1), but + * this is dealt with on the host. + */ + context = alt_irq_disable_all(); + + if (fn_entry == NULL) + { + /* Add it to the list of functions we must output later. */ + fn_entry = (struct mcount_fn_entry *)mcount_allocate(sizeof(struct mcount_fn_entry)); + + fn_entry->self_pc = self_pc; + fn_entry->arc_head = NULL; + + fn_entry->next = *fn_head; + *fn_head = fn_entry; + } + + /* We will need a new list entry - if there was a list entry before + * then the assembler code would have handled it. */ + arc_entry = (struct mcount_fn_arc *)mcount_allocate(sizeof(struct mcount_fn_arc)); + + arc_entry->from_pc = from_pc; + arc_entry->count = 1; + + arc_entry->next = fn_entry->arc_head; + fn_entry->arc_head = arc_entry; + + alt_irq_enable_all(context); +} + + +/* + * nios2_pcsample_init starts profiling. + * It is called the first time mcount is called, and on subsequent calls to + * mcount until it returns zero. It initializes the pc histogram and turns on + * timer driven pc sampling. + */ +static int nios2_pcsample_init(void) +{ + unsigned int pcsamples_size; + + /* We sample the PC every tick */ + unsigned int prof_rate = alt_ticks_per_second(); + if (prof_rate == 0) + return 1; + + /* allocate the histogram buffer s_pcsamples */ + pcsamples_size = (s_high_pc - s_low_pc)/PCSAMPLE_BYTES_PER_BUCKET; + s_pcsamples = (unsigned short*)sbrk(pcsamples_size * sizeof(unsigned short)); + + if (s_pcsamples != 0) + { + /* initialize the buffer to zero */ + memset(s_pcsamples, 0, pcsamples_size * sizeof(unsigned short)); + + alt_gmon_data[GMON_DATA_PROFILE_DATA] = (int)s_pcsamples; + alt_gmon_data[GMON_DATA_PROFILE_RATE] = prof_rate; + + /* Sample every tick (it's cheap) */ + alt_alarm_start(&s_nios2_pcsample_alarm, 1, nios2_pcsample, 0); + } + + return 0; +} + + +/* + * Sample the PC value and store it in the histogram + */ +static alt_u32 nios2_pcsample(void* context) +{ + unsigned int pc; + unsigned int bucket; + + /* read the exception return address - this will be + * inaccurate if there are nested interrupts but we + * assume that this is rare and the inaccuracy will + * not be great */ + NIOS2_READ_EA(pc); + + /* + * If we're within the profilable range then increment the relevant + * bucket in the histogram + */ + if (pc >= s_low_pc && pc < s_high_pc && s_pcsamples != 0) + { + bucket = (pc - s_low_pc)/PCSAMPLE_BYTES_PER_BUCKET; + s_pcsamples[bucket]++; + } + + /* Sample every tick */ + return 1; +} + diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_icache_flush.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_icache_flush.c new file mode 100644 index 0000000..4b706ed --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_icache_flush.c @@ -0,0 +1,84 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "nios2.h" +#include "system.h" + +#include "alt_types.h" +#include "sys/alt_cache.h" + +/* + * alt_icache_flush() is called to flush the instruction cache for a memory + * region of length "len" bytes, starting at address "start". + */ + +void alt_icache_flush (void* start, alt_u32 len) +{ +#if NIOS2_ICACHE_SIZE > 0 + + char* i; + char* end; + + /* + * This is the most we would ever need to flush. + */ + + if (len > NIOS2_ICACHE_SIZE) + { + len = NIOS2_ICACHE_SIZE; + } + + end = ((char*) start) + len; + + for (i = start; i < end; i+= NIOS2_ICACHE_LINE_SIZE) + { + __asm__ volatile ("flushi %0" :: "r" (i)); + } + + /* + * For an unaligned flush request, we've got one more line left. + * Note that this is dependent on NIOS2_ICACHE_LINE_SIZE to be a + * multiple of 2 (which it always is). + */ + + if (((alt_u32) start) & (NIOS2_ICACHE_LINE_SIZE - 1)) + { + __asm__ volatile ("flushi %0" :: "r" (i)); + } + + /* + * Having flushed the cache, flush any stale instructions in the + * pipeline + */ + + __asm__ volatile ("flushp"); + +#endif /* NIOS2_ICACHE_SIZE > 0 */ +} diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_icache_flush_all.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_icache_flush_all.c new file mode 100644 index 0000000..5088552 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_icache_flush_all.c @@ -0,0 +1,46 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "nios2.h" +#include "system.h" + +#include "alt_types.h" +#include "sys/alt_cache.h" + +/* + * alt_icache_flush_all() is called to flush the entire instruction cache. + */ + +void alt_icache_flush_all (void) +{ +#if NIOS2_ICACHE_SIZE > 0 + alt_icache_flush (0, NIOS2_ICACHE_SIZE); +#endif +} diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_iic.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_iic.c new file mode 100644 index 0000000..1db5afa --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_iic.c @@ -0,0 +1,106 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2009 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ +#include "system.h" + +/* + * This file implements the HAL Enhanced interrupt API for Nios II processors + * with an internal interrupt controller (IIC). For most routines, this serves + * as a wrapper layer over the legacy interrupt API (which must be used with + * the IIC only). + * + * Use of the enhanced API is recommended so that application and device + * drivers are compatible with a Nios II system configured with an external + * interrupt controller (EIC), or IIC. This will afford maximum portability. + * + * If an EIC is present, the EIC device driver must provide these routines, + * because their operation will be specific to that EIC type. + */ +#ifndef NIOS2_EIC_PRESENT +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT + +#include "sys/alt_irq.h" +#include "priv/alt_iic_isr_register.h" +#include "priv/alt_legacy_irq.h" + +/** @Function Description: This function registers an interrupt handler. + * If the function is succesful, then the requested interrupt will be enabled upon + * return. Registering a NULL handler will disable the interrupt. + * @API Type: External + * @param ic_id Ignored. + * @param irq IRQ number + * @return 0 if successful, else error (-1) + */ +int alt_ic_isr_register(alt_u32 ic_id, alt_u32 irq, alt_isr_func isr, + void *isr_context, void *flags) +{ + return alt_iic_isr_register(ic_id, irq, isr, isr_context, flags); +} + +/** @Function Description: This function enables a single interrupt. + * @API Type: External + * @param ic_id Ignored. + * @param irq IRQ number + * @return 0 if successful, else error (-1) + */ +int alt_ic_irq_enable (alt_u32 ic_id, alt_u32 irq) +{ + return alt_irq_enable(irq); +} + +/** @Function Description: This function disables a single interrupt. + * @API Type: External + * @param ic_id Ignored. + * @param irq IRQ number + * @return 0 if successful, else error (-1) + */ +int alt_ic_irq_disable(alt_u32 ic_id, alt_u32 irq) +{ + return alt_irq_disable(irq); +} + +/** @Function Description: This function to determine if corresponding + * interrupt is enabled. + * @API Type: External + * @param ic_id Ignored. + * @param irq IRQ number + * @return Zero if corresponding interrupt is disabled and + * non-zero otherwise. + */ +alt_u32 alt_ic_irq_enabled(alt_u32 ic_id, alt_u32 irq) +{ + alt_u32 irq_enabled; + + NIOS2_READ_IENABLE(irq_enabled); + + return (irq_enabled & (1 << irq)) ? 1: 0; +} + +#endif /* ALT_ENHANCED_INTERRUPT_API_PRESENT */ +#endif /* NIOS2_EIC_PRESENT */ diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_iic_isr_register.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_iic_isr_register.c new file mode 100644 index 0000000..b104395 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_iic_isr_register.c @@ -0,0 +1,104 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2009 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ +#include +#include "system.h" + +/* + * Provides an interrupt registry mechanism for the any CPUs internal interrupt + * controller (IIC) when the enhanced interrupt API is active. + */ +#ifndef ALT_CPU_EIC_PRESENT +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT + +#include "alt_types.h" +#include "sys/alt_irq.h" +#include "priv/alt_iic_isr_register.h" + +/* + * The header, alt_irq_entry.h, contains the exception entry point, and is + * provided by the processor component. It is included here, so that the code + * will be added to the executable only if alt_irq_register() is present, i.e. + * if no interrupts are registered - there's no need to provide any + * interrupt handling. + */ + +#include "sys/alt_irq_entry.h" + +/* + * The header, alt_irq_table.h contains a table describing which function + * handles each interrupt. + */ + +#include "priv/alt_irq_table.h" + +/** @Function Description: This function registers an interrupt handler. + * If the function is succesful, then the requested interrupt will be enabled + * upon return. Registering a NULL handler will disable the interrupt. + * + * @API Type: External + * @param ic_id Interrupt controller ID + * @param irq IRQ ID number + * @param isr Pointer to interrupt service routine + * @param isr_context Opaque pointer passed to ISR + * @param flags + * @return 0 if successful, else error (-1) + */ +int alt_iic_isr_register(alt_u32 ic_id, alt_u32 irq, alt_isr_func isr, + void *isr_context, void *flags) +{ + int rc = -EINVAL; + int id = irq; /* IRQ interpreted as the interrupt ID. */ + alt_irq_context status; + + if (id < ALT_NIRQ) + { + /* + * interrupts are disabled while the handler tables are updated to ensure + * that an interrupt doesn't occur while the tables are in an inconsistant + * state. + */ + + status = alt_irq_disable_all(); + + alt_irq[id].handler = isr; + alt_irq[id].context = isr_context; + + rc = (isr) ? alt_ic_irq_enable(ic_id, id) : alt_ic_irq_disable(ic_id, id); + + alt_irq_enable_all(status); + } + + return rc; +} + +#endif /* ALT_ENHANCED_INTERRUPT_API_PRESENT */ +#endif /* ALT_CPU_EIC_PRESENT */ diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_instruction_exception_entry.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_instruction_exception_entry.c new file mode 100644 index 0000000..f4f52fc --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_instruction_exception_entry.c @@ -0,0 +1,203 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2008 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ +#include "sys/alt_exceptions.h" +#include "nios2.h" +#include "alt_types.h" +#include "system.h" + +/* + * This file implements support for calling user-registered handlers for + * instruction-generated exceptions. This handler could also be reached + * in the event of a spurious interrupt. + * + * The handler code is optionally enabled through the "Enable + * Instruction-related Exception API" HAL BSP setting, which will + * define the macro below. + */ +#ifdef ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API + +/* Function pointer to exception callback routine */ +alt_exception_result (*alt_instruction_exception_handler) + (alt_exception_cause, alt_u32, alt_u32) = 0x0; + +/* Link entry routine to .exceptions section */ +int alt_instruction_exception_entry (alt_u32 exception_pc) + __attribute__ ((section (".exceptions"))); + +/* + * This is the entry point for instruction-generated exceptions handling. + * This routine will be called by alt_exceptions_entry.S, after it determines + * that an exception could not be handled by handlers that preceed that + * of instruction-generated exceptions (such as interrupts). + * + * For this to function properly, you must register an exception handler + * using alt_instruction_exception_register(). This routine will call + * that handler if it has been registered. Absent a handler, it will + * break break or hang as discussed below. + */ +int alt_instruction_exception_entry (alt_u32 exception_pc) +{ + alt_u32 cause, badaddr; + +/* + * If the processor hardware has the optional EXCEPTIONS & BADADDR registers, + * read them and pass their content to the user handler. These are always + * present if the MMU or MPU is enabled, and optionally for other advanced + * exception types via the "Extra exceptions information" setting in the + * processor (hardware) configuration. + * + * If these registers are not present, the cause field will be set to + * NIOS2_EXCEPTION_CAUSE_NOT_PRESENT. Your handling routine should + * check the validity of the cause argument before proceeding. + */ +#ifdef NIOS2_HAS_EXTRA_EXCEPTION_INFO + /* Get exception cause & "badaddr" */ + NIOS2_READ_EXCEPTION(cause); + cause = ( (cause & NIOS2_EXCEPTION_REG_CAUSE_MASK) >> + NIOS2_EXCEPTION_REG_CAUSE_OFST ); + + NIOS2_READ_BADADDR(badaddr); +#else + cause = NIOS2_EXCEPTION_CAUSE_NOT_PRESENT; + badaddr = 0; +#endif /* NIOS2_HAS_EXTRA_EXCEPTION_INFO */ + + if(alt_instruction_exception_handler) { + /* + * Call handler. Its return value indicates whether the exception-causing + * instruction should be re-issued. The code that called us, + * alt_eceptions_entry.S, will look at this value and adjust the ea + * register as necessary + */ + return alt_instruction_exception_handler(cause, exception_pc, badaddr); + } + /* + * We got here because an instruction-generated exception occured, but no + * handler is present. We do not presume to know how to handle it. If the + * debugger is present, break, otherwise hang. + * + * If you've reached here in the debugger, consider examining the + * EXCEPTIONS register cause bit-field, which was read into the 'cause' + * variable above, and compare it against the exceptions-type enumeration + * in alt_exceptions.h. This register is availabe if the MMU or MPU is + * present, or if the "Extra exceptions information" hardware option is + * selected. + * + * If you get here then one of the following could have happened: + * + * - An instruction-generated exception occured, and the processor + * does not have the extra exceptions feature enabled, or you + * have not registered a handler using + * alt_instruction_exception_register() + * + * Some examples of instruction-generated exceptions and why they + * might occur: + * + * - Your program could have been compiled for a full-featured + * Nios II core, but it is running on a smaller core, and + * instruction emulation has been disabled by defining + * ALT_NO_INSTRUCTION_EMULATION. + * + * You can work around the problem by re-enabling instruction + * emulation, or you can figure out why your program is being + * compiled for a system other than the one that it is running on. + * + * - Your program has executed a trap instruction, but has not + * implemented a handler for this instruction. + * + * - Your program has executed an illegal instruction (one which is + * not defined in the instruction set). + * + * - Your processor includes an MMU or MPU, and you have enabled it + * before registering an exception handler to service exceptions it + * generates. + * + * The problem could also be hardware related: + * - If your hardware is broken and is generating spurious interrupts + * (a peripheral which negates its interrupt output before its + * interrupt handler has been executed will cause spurious interrupts) + */ + else { +#ifdef NIOS2_HAS_DEBUG_STUB + NIOS2_BREAK(); +#else + while(1) + ; +#endif /* NIOS2_HAS_DEBUG_STUB */ + } + + /* // We should not get here. Remove compiler warning. */ + return NIOS2_EXCEPTION_RETURN_REISSUE_INST; +} + +#endif /* ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API */ + +/* + * This routine indicates whether a particular exception cause will have + * set a valid address into the BADADDR register, which is included + * in the arguments to a user-registered instruction-generated exception + * handler. Many exception types do not set valid contents in BADADDR; + * this is a convenience routine to easily test the validity of that + * argument in your handler. + * + * Note that this routine will return false (0) for cause '12', + * TLB miss. This is because there are four exception types that + * share that cause, two of which do not have a valid BADADDR. You + * must determine BADADDR's validity for these. + * + * Arguments: + * cause: The 5-bit exception cause field of the EXCEPTIONS register, + * shifted to the LSB position. You may pass the 'cause' argument + * in a handler you registered directy to this routine. + * + * Return: 1: BADADDR (bad_addr argument to handler) is valid + * 0: BADADDR is not valid + */ +int alt_exception_cause_generated_bad_addr(alt_exception_cause cause) +{ + switch (cause) { + case NIOS2_EXCEPTION_SUPERVISOR_ONLY_DATA_ADDR: + return 1; + case NIOS2_EXCEPTION_MISALIGNED_DATA_ADDR: + return 1; + case NIOS2_EXCEPTION_MISALIGNED_TARGET_PC: + return 1; + case NIOS2_EXCEPTION_TLB_READ_PERM_VIOLATION: + return 1; + case NIOS2_EXCEPTION_TLB_WRITE_PERM_VIOLATION: + return 1; + case NIOS2_EXCEPTION_MPU_DATA_REGION_VIOLATION: + return 1; + default: + return 0; + } +} diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_instruction_exception_register.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_instruction_exception_register.c new file mode 100644 index 0000000..b059e1d --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_instruction_exception_register.c @@ -0,0 +1,82 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2008 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ +#include "sys/alt_exceptions.h" +#include "alt_types.h" +#include "system.h" + +/* + * This file implements support for calling user-registered handlers for + * instruction-generated exceptions. + * + * The registry API is optionally enabled through the "Enable + * Instruction-related Exception API" HAL BSP setting, which will + * define the macro below. + */ +#ifdef ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API + +/* + * The header, alt_exception_handler_registry.h contains a struct describing + * the registered exception handler + */ +#include "priv/alt_exception_handler_registry.h" + +/* + * Pull in the exception entry assembly code. This will not be linked in + * unless this object is linked into the executable (i.e. only if + * alt_instruction_exception_register() is called). + */ +__asm__( "\n\t.globl alt_exception" ); + +/* + * alt_instruction_exception_register() is called to register a handler to + * service instruction-generated exceptions that are not handled by the + * default exception handler code (interrupts, and optionally unimplemented + * instructions and traps). + * + * Passing null (0x0) in the handler argument will disable a previously- + * registered handler. + * + * Note that if no handler is registered, exceptions that are not processed + * using the built-in handler (interrupts, and optionally unimplemented + * instructions and traps) are treated as unknown exceptions, resulting + * in either a break or an infinite loop. + */ +void alt_instruction_exception_register ( + alt_exception_result (*exception_handler)( + alt_exception_cause cause, + alt_u32 exception_pc, + alt_u32 bad_addr) ) +{ + alt_instruction_exception_handler = exception_handler; +} + +#endif /* ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API */ diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_io_redirect.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_io_redirect.c new file mode 100644 index 0000000..8c862f7 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_io_redirect.c @@ -0,0 +1,98 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include +#include +#include + +#include "sys/alt_dev.h" +#include "priv/alt_file.h" + + +/* + * alt_open_fd() is similar to open() in that it is used to obtain a file + * descriptor for the file named "name". The "flags" and "mode" arguments are + * identical to the "flags" and "mode" arguments of open(). + * + * The distinction between the two functions is that the file descriptor + * structure to use is passed in as an argument, rather than allocated from the + * list of free file descriptors. + * + * This is used by alt_io_redirect() to redirect the stdin, stdout and stderr + * file descriptors to point to new devices. + * + * If the device can not be succesfully opened, then the input file descriptor + * remains unchanged. + */ + +static void alt_open_fd(alt_fd* fd, const char* name, int flags, int mode) +{ + int old; + + old = open (name, flags, mode); + + if (old >= 0) + { + fd->dev = alt_fd_list[old].dev; + fd->priv = alt_fd_list[old].priv; + fd->fd_flags = alt_fd_list[old].fd_flags; + + alt_release_fd (old); + } +} + +/* + * alt_io_redirect() is called once the device/filesystem lists have been + * initialised, but before main(). Its function is to redirect standard in, + * standard out and standard error so that they point to the devices selected by + * the user (as defined in system.h). + * + * Prior to the call to this function, io is directed towards /dev/null. If + * i/o can not be redirected to the requested device, for example if the device + * does not exist, then it remains directed at /dev/null. + */ + +void alt_io_redirect(const char* stdout_dev, + const char* stdin_dev, + const char* stderr_dev) +{ + /* Redirect the channels */ + + alt_open_fd (&alt_fd_list[STDOUT_FILENO], stdout_dev, O_WRONLY, 0777); + alt_open_fd (&alt_fd_list[STDIN_FILENO], stdin_dev, O_RDONLY, 0777); + alt_open_fd (&alt_fd_list[STDERR_FILENO], stderr_dev, O_WRONLY, 0777); +} + + + + diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_ioctl.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_ioctl.c new file mode 100644 index 0000000..f5d7ef1 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_ioctl.c @@ -0,0 +1,170 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +#include "sys/ioctl.h" +#include "sys/alt_errno.h" +#include "sys/alt_warning.h" +#include "priv/alt_file.h" +#include "os/alt_syscall.h" + +/* + * The ioctl() system call is provided so that application code can manipulate + * the i/o capabilities of a device in device specific ways. This is identical + * to the standard posix ioctl() function. + * + * In general this implementation simply vectors ioctl requests to the + * apropriate drivers ioctl function (as registered in the drivers alt_dev + * structure). + * + * However in the case of devices (as oposed to filesystem), the TIOCEXCL and + * TIOCNXCL requests are handled without reference to the driver. These + * requests are used to lock/release a device for exclusive access. + * + * Handling these requests centrally eases the task of device driver + * development. + * + * ALT_IOCTL is mapped onto the ioctl() system call in alt_syscall.h + */ + +#ifdef ALT_USE_DIRECT_DRIVERS + +#include "system.h" +#include "sys/alt_driver.h" + +/* + * Provide minimal version that calls ioctl routine of provided stdio devices. + */ +int ALT_IOCTL (int file, int req, void* arg) +{ +#ifdef ALT_STDIN_PRESENT + ALT_DRIVER_IOCTL_EXTERNS(ALT_STDIN_DEV); +#endif +#ifdef ALT_STDOUT_PRESENT + ALT_DRIVER_IOCTL_EXTERNS(ALT_STDOUT_DEV); +#endif +#ifdef ALT_STDERR_PRESENT + ALT_DRIVER_IOCTL_EXTERNS(ALT_STDERR_DEV); +#endif + +#if !defined(ALT_STDIN_PRESENT) && !defined(ALT_STDOUT_PRESENT) && !defined(ALT_STDERR_PRESENT) + /* Generate a link time warning, should this function ever be called. */ + ALT_STUB_WARNING(ioctl); +#endif + + switch (file) { +#ifdef ALT_STDIN_PRESENT + case 0: /* stdin file descriptor */ + return ALT_DRIVER_IOCTL(ALT_STDIN_DEV, req, arg); +#endif /* ALT_STDIN_PRESENT */ +#ifdef ALT_STDOUT_PRESENT + case 1: /* stdout file descriptor */ + return ALT_DRIVER_IOCTL(ALT_STDOUT_DEV, req, arg); +#endif /* ALT_STDOUT_PRESENT */ +#ifdef ALT_STDERR_PRESENT + case 2: /* stderr file descriptor */ + return ALT_DRIVER_IOCTL(ALT_STDERR_DEV, req, arg); +#endif /* ALT_STDERR_PRESENT */ + default: + ALT_ERRNO = EBADFD; + return -1; + } +} + +#else /* !ALT_USE_DIRECT_DRIVERS */ + +int ALT_IOCTL (int file, int req, void* arg) +{ + alt_fd* fd; + int rc; + + /* + * A common error case is that when the file descriptor was created, the call + * to open() failed resulting in a negative file descriptor. This is trapped + * below so that we don't try and process an invalid file descriptor. + */ + + fd = (file < 0) ? NULL : &alt_fd_list[file]; + + if (fd) + { + + /* + * In the case of device drivers (not file systems) handle the TIOCEXCL + * and TIOCNXCL requests as special cases. + */ + + if (fd->fd_flags & ALT_FD_DEV) + { + if (req == TIOCEXCL) + { + rc = alt_fd_lock (fd); + goto ioctl_done; + } + else if (req == TIOCNXCL) + { + rc = alt_fd_unlock (fd); + goto ioctl_done; + } + } + + /* + * If the driver provides an ioctl() function, call that to handle the + * request, otherwise set the return code to indicate that the request + * could not be processed. + */ + + if (fd->dev->ioctl) + { + rc = fd->dev->ioctl(fd, req, arg); + } + else + { + rc = -ENOTTY; + } + } + else + { + rc = -EBADFD; + } + +ioctl_done: + + if (rc < 0) + { + ALT_ERRNO = -rc; + } + return rc; +} + +#endif /* ALT_USE_DIRECT_DRIVERS */ diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_irq_entry.S b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_irq_entry.S new file mode 100644 index 0000000..d3efe7d --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_irq_entry.S @@ -0,0 +1,108 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003-2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "system.h" + +/* + * This is the interrupt exception entry point code, which saves all the + * registers and calls the interrupt handler. It should be pulled in using + * a .globl from alt_irq_register.c. This scheme is used so that if an + * interrupt is never registered, then this code will not appear in the + * generated executable, thereby improving code footprint. + */ + + /* + * Explicitly allow the use of r1 (the assembler temporary register) + * within this code. This register is normally reserved for the use of + * the compiler. + */ + .set noat + + /* + * Pull in the exception handler register save code. + */ + .globl alt_exception + + .globl alt_irq_entry + .section .exceptions.entry.label, "xa" +alt_irq_entry: + + /* + * Section .exceptions.entry is in alt_exception_entry.S + * This saves all the caller saved registers and reads estatus into r5 + */ + + .section .exceptions.irqtest, "xa" + +#ifdef ALT_CI_INTERRUPT_VECTOR_N + /* + * Use the interrupt vector custom instruction if present to accelerate + * this code. + * If the interrupt vector custom instruction returns a negative + * value, there are no interrupts active (estatus.pie is 0 + * or ipending is 0) so assume it is a software exception. + */ + custom ALT_CI_INTERRUPT_VECTOR_N, r4, r0, r0 + blt r4, r0, .Lnot_irq +#else + /* + * Test to see if the exception was a software exception or caused + * by an external interrupt, and vector accordingly. + */ + rdctl r4, ipending + andi r2, r5, 1 + beq r2, zero, .Lnot_irq + beq r4, zero, .Lnot_irq +#endif /* ALT_CI_INTERRUPT_VECTOR_N */ + + .section .exceptions.irqhandler, "xa" + /* + * Now that all necessary registers have been preserved, call + * alt_irq_handler() to process the interrupts. + */ + + call alt_irq_handler + + .section .exceptions.irqreturn, "xa" + + br .Lexception_exit + + .section .exceptions.notirq.label, "xa" + +.Lnot_irq: + + /* + * Section .exceptions.exit is in alt_exception_entry.S + * This restores all the caller saved registers + */ + + .section .exceptions.exit.label +.Lexception_exit: + diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_irq_handler.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_irq_handler.c new file mode 100644 index 0000000..3253d02 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_irq_handler.c @@ -0,0 +1,169 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2009 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include "system.h" + +/* + * This interrupt handler only works with an internal interrupt controller + * (IIC). Processors with an external interrupt controller (EIC) use an + * implementation provided by an EIC driver. + */ +#ifndef ALT_CPU_EIC_PRESENT + +#include "sys/alt_irq.h" +#include "os/alt_hooks.h" + +#include "alt_types.h" + +/* + * A table describing each interrupt handler. The index into the array is the + * interrupt id associated with the handler. + * + * When an interrupt occurs, the associated handler is called with + * the argument stored in the context member. + */ +struct ALT_IRQ_HANDLER +{ +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT + void (*handler)(void*); +#else + void (*handler)(void*, alt_u32); +#endif + void *context; +} alt_irq[ALT_NIRQ]; + +/* + * alt_irq_handler() is called by the interrupt exception handler in order to + * process any outstanding interrupts. + * + * It is defined here since it is linked in using weak linkage. + * This means that if there is never a call to alt_irq_register() (above) then + * this function will not get linked in to the executable. This is acceptable + * since if no handler is ever registered, then an interrupt can never occur. + * + * If Nios II interrupt vector custom instruction exists, use it to accelerate + * the dispatch of interrupt handlers. The Nios II interrupt vector custom + * instruction is present if the macro ALT_CI_INTERRUPT_VECTOR defined. + */ + +void alt_irq_handler (void) __attribute__ ((section (".exceptions"))); +void alt_irq_handler (void) +{ +#ifdef ALT_CI_INTERRUPT_VECTOR + alt_32 offset; + char* alt_irq_base = (char*)alt_irq; +#else + alt_u32 active; + alt_u32 mask; + alt_u32 i; +#endif /* ALT_CI_INTERRUPT_VECTOR */ + + /* + * Notify the operating system that we are at interrupt level. + */ + + ALT_OS_INT_ENTER(); + +#ifdef ALT_CI_INTERRUPT_VECTOR + /* + * Call the interrupt vector custom instruction using the + * ALT_CI_INTERRUPT_VECTOR macro. + * It returns the offset into the vector table of the lowest-valued pending + * interrupt (corresponds to highest priority) or a negative value if none. + * The custom instruction assumes that each table entry is eight bytes. + */ + while ((offset = ALT_CI_INTERRUPT_VECTOR) >= 0) { + struct ALT_IRQ_HANDLER* handler_entry = + (struct ALT_IRQ_HANDLER*)(alt_irq_base + offset); +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT + handler_entry->handler(handler_entry->context); +#else + handler_entry->handler(handler_entry->context, offset >> 3); +#endif + } +#else /* ALT_CI_INTERRUPT_VECTOR */ + /* + * Obtain from the interrupt controller a bit list of pending interrupts, + * and then process the highest priority interrupt. This process loops, + * loading the active interrupt list on each pass until alt_irq_pending() + * return zero. + * + * The maximum interrupt latency for the highest priority interrupt is + * reduced by finding out which interrupts are pending as late as possible. + * Consider the case where the high priority interupt is asserted during + * the interrupt entry sequence for a lower priority interrupt to see why + * this is the case. + */ + + active = alt_irq_pending (); + + do + { + i = 0; + mask = 1; + + /* + * Test each bit in turn looking for an active interrupt. Once one is + * found, the interrupt handler asigned by a call to alt_irq_register() is + * called to clear the interrupt condition. + */ + + do + { + if (active & mask) + { +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT + alt_irq[i].handler(alt_irq[i].context); +#else + alt_irq[i].handler(alt_irq[i].context, i); +#endif + break; + } + mask <<= 1; + i++; + + } while (1); + + active = alt_irq_pending (); + + } while (active); +#endif /* ALT_CI_INTERRUPT_VECTOR */ + + /* + * Notify the operating system that interrupt processing is complete. + */ + + ALT_OS_INT_EXIT(); +} + +#endif /* ALT_CPU_EIC_PRESENT */ diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_irq_register.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_irq_register.c new file mode 100644 index 0000000..b5ea474 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_irq_register.c @@ -0,0 +1,102 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2009 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ +#include +#include "system.h" + +/* + * This interrupt registry mechanism works with the Nios II internal interrupt + * controller (IIC) only. Systems with an external interrupt controller (EIC), + * or those with the IIC who are using the enhanced interrupt API will + * utilize the alt_ic_isr_register() routine to register an interrupt. + */ +#ifndef NIOS2_EIC_PRESENT + +#include "sys/alt_irq.h" +#include "priv/alt_legacy_irq.h" +#include "os/alt_hooks.h" + +#include "alt_types.h" + +/* + * The header, alt_irq_entry.h, contains the exception entry point, and is + * provided by the processor component. It is included here, so that the code + * will be added to the executable only if alt_irq_register() is present, i.e. + * if no interrupts are registered - there's no need to provide any + * interrupt handling. + */ + +#include "sys/alt_irq_entry.h" + +/* + * The header, alt_irq_table.h contains a table describing which function + * handles each interrupt. + */ + +#include "priv/alt_irq_table.h" + +/* + * alt_irq_handler() is called to register an interrupt handler. If the + * function is succesful, then the requested interrupt will be enabled upon + * return. Registering a NULL handler will disable the interrupt. + * + * The return value is 0 if the interrupt handler was registered and the + * interrupt was enabled, otherwise it is negative. + */ + +int alt_irq_register (alt_u32 id, + void* context, + alt_isr_func handler) +{ + int rc = -EINVAL; + alt_irq_context status; + + if (id < ALT_NIRQ) + { + /* + * interrupts are disabled while the handler tables are updated to ensure + * that an interrupt doesn't occur while the tables are in an inconsistant + * state. + */ + + status = alt_irq_disable_all (); + + alt_irq[id].handler = handler; + alt_irq[id].context = context; + + rc = (handler) ? alt_irq_enable (id): alt_irq_disable (id); + + alt_irq_enable_all(status); + } + return rc; +} +#endif /* NIOS2_EIC_PRESENT */ + diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_irq_vars.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_irq_vars.c new file mode 100644 index 0000000..8c0a18d --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_irq_vars.c @@ -0,0 +1,47 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "alt_types.h" + +#include "system.h" + +/* + * These global variables are used to save the current list of enabled + * interrupts. See alt_irq.h for further details. + */ + +volatile alt_u32 alt_irq_active = 0; + +#ifndef ALT_EXCEPTION_STACK + +volatile alt_u32 alt_priority_mask = (alt_u32) -1; + +#endif + diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_isatty.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_isatty.c new file mode 100644 index 0000000..9276472 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_isatty.c @@ -0,0 +1,125 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include + +#include "sys/alt_dev.h" +#include "sys/alt_errno.h" +#include "sys/alt_warning.h" +#include "priv/alt_file.h" +#include "os/alt_syscall.h" + +#ifdef ALT_USE_DIRECT_DRIVERS + +#include "system.h" + +/* + * Provide minimal version that just describes all file descriptors + * as tty devices for provided stdio devices. + */ +int ALT_ISATTY (int file) +{ + switch (file) { +#ifdef ALT_STDIN_PRESENT + case 0: /* stdin file descriptor */ +#endif /* ALT_STDIN_PRESENT */ +#ifdef ALT_STDOUT_PRESENT + case 1: /* stdout file descriptor */ +#endif /* ALT_STDOUT_PRESENT */ +#ifdef ALT_STDERR_PRESENT + case 2: /* stderr file descriptor */ +#endif /* ALT_STDERR_PRESENT */ + return 1; + default: + return 0; + } + +#if !defined(ALT_STDIN_PRESENT) && !defined(ALT_STDOUT_PRESENT) && !defined(ALT_STDERR_PRESENT) + /* Generate a link time warning, should this function ever be called. */ + ALT_STUB_WARNING(isatty); +#endif +} + +#else /* !ALT_USE_DIRECT_DRIVERS */ +/* + * isatty() can be used to determine whether the input file descriptor "file" + * refers to a terminal device or not. If it is a terminal device then the + * return value is one, otherwise it is zero. + * + * ALT_ISATTY is mapped onto the isatty() system call in alt_syscall.h + */ + +int ALT_ISATTY (int file) +{ + alt_fd* fd; + struct stat stat; + + /* + * A common error case is that when the file descriptor was created, the call + * to open() failed resulting in a negative file descriptor. This is trapped + * below so that we don't try and process an invalid file descriptor. + */ + + fd = (file < 0) ? NULL : &alt_fd_list[file]; + + if (fd) + { + /* + * If a device driver does not provide an fstat() function, then it is + * treated as a terminal device by default. + */ + + if (!fd->dev->fstat) + { + return 1; + } + + /* + * If a driver does provide an implementation of the fstat() function, then + * this is called so that the device can identify itself. + */ + + else + { + fstat (file, &stat); + return (stat.st_mode == _IFCHR) ? 1 : 0; + } + } + else + { + ALT_ERRNO = EBADFD; + return 0; + } +} + +#endif /* ALT_USE_DIRECT_DRIVERS */ diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_kill.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_kill.c new file mode 100644 index 0000000..42c2e1d --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_kill.c @@ -0,0 +1,121 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include + +#include "sys/alt_errno.h" +#include "os/alt_syscall.h" + + +/* + * kill() is used by newlib in order to send signals to processes. Since there + * is only a single process in the HAL, the only valid values for pid are + * either the current process id, or the broadcast values, i.e. pid must be + * less than or equal to zero. + * + * ALT_KILL is mapped onto the kill() system call in alt_syscall.h + */ + +int ALT_KILL (int pid, int sig) +{ + int status = 0; + + if (pid <= 0) + { + switch (sig) + { + case 0: + + /* The null signal is used to check that a pid is valid. */ + + break; + + case SIGABRT: + case SIGALRM: + case SIGFPE: + case SIGILL: + case SIGKILL: + case SIGPIPE: + case SIGQUIT: + case SIGSEGV: + case SIGTERM: + case SIGUSR1: + case SIGUSR2: + case SIGBUS: + case SIGPOLL: + case SIGPROF: + case SIGSYS: + case SIGTRAP: + case SIGVTALRM: + case SIGXCPU: + case SIGXFSZ: + + /* + * The Posix standard defines the default behaviour for all these signals + * as being eqivalent to a call to _exit(). No mechanism is provided to + * change this behaviour. + */ + + _exit(0); + case SIGCHLD: + case SIGURG: + + /* + * The Posix standard defines these signals to be ignored by default. No + * mechanism is provided to change this behaviour. + */ + + break; + default: + + /* Tried to send an unsupported signal */ + + status = EINVAL; + } + } + + else if (pid > 0) + { + /* Attempted to signal a non-existant process */ + + status = ESRCH; + } + + if (status) + { + ALT_ERRNO = status; + return -1; + } + + return 0; +} diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_link.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_link.c new file mode 100644 index 0000000..d796c59 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_link.c @@ -0,0 +1,56 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_warning.h" +#include "sys/alt_errno.h" +#include "os/alt_syscall.h" + +/* + * link() is used by newlib to create a new link to an existing file. This is + * unsupported in the HAL environment. However a "do-nothing" implementation + * is still provied for newlib compatability. + * + * ALT_LINK is mapped onto the link() system call in alt_syscall.h + */ + +int ALT_LINK ( char *existing, char *new) +{ + /* Generate a link time warning, should this function ever be called. */ + + ALT_STUB_WARNING(link); + + /* Indicate an error */ + + ALT_ERRNO = ENOSYS; + return -1; +} + diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_load.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_load.c new file mode 100644 index 0000000..ffab4b9 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_load.c @@ -0,0 +1,88 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004-2005 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_load.h" +#include "sys/alt_cache.h" + +/* + * Linker defined symbols. + */ + +extern void __flash_rwdata_start; +extern void __ram_rwdata_start; +extern void __ram_rwdata_end; +extern void __flash_rodata_start; +extern void __ram_rodata_start; +extern void __ram_rodata_end; +extern void __flash_exceptions_start; +extern void __ram_exceptions_start; +extern void __ram_exceptions_end; + +/* + * alt_load() is called when the code is executing from flash. In this case + * there is no bootloader, so this application is responsible for loading to + * RAM any sections that are required. + */ + +void alt_load (void) +{ + /* + * Copy the .rwdata section. + */ + + alt_load_section (&__flash_rwdata_start, + &__ram_rwdata_start, + &__ram_rwdata_end); + + /* + * Copy the exception handler. + */ + + alt_load_section (&__flash_exceptions_start, + &__ram_exceptions_start, + &__ram_exceptions_end); + + /* + * Copy the .rodata section. + */ + + alt_load_section (&__flash_rodata_start, + &__ram_rodata_start, + &__ram_rodata_end); + + /* + * Now ensure that the caches are in synch. + */ + + alt_dcache_flush_all(); + alt_icache_flush_all(); +} diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_log_macro.S b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_log_macro.S new file mode 100644 index 0000000..499c4ad --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_log_macro.S @@ -0,0 +1,56 @@ +/* alt_log_macro.S + * + * Implements the function tx_log_str, called by the assembly macro + * ALT_LOG_PUTS(). The macro will be empty when logging is turned off, + * and this function will not be compiled. When logging is on, + * this function is used to print out the strings defined in the beginning + * of alt_log_printf.c, using port information taken from system.h and + * alt_log_printf.h. + * + * This routine only handles strings, and sends a character into the defined + * output device's output buffer when the device is ready. It's intended for + * debugging purposes, where messages can be set to print out at certain + * points in the boot code to indicate the progress of the program. + * + */ + +#ifndef __ALT_LOG_MACROS__ +#define __ALT_LOG_MACROS__ + +/* define this flag to skip assembly-incompatible parts + * of various include files. */ +#define ALT_ASM_SRC + +#ifdef ALT_LOG_ENABLE // only compile this function if this flag is defined. + + #include "system.h" + #include "sys/alt_log_printf.h" + + .global tx_log_str +tx_log_str: + /* load base uart / jtag uart address into r6 */ + movhi r6, %hiadj(ALT_LOG_PORT_BASE) + addi r6, r6, %lo(ALT_LOG_PORT_BASE) +tx_next_char: + /* if pointer points to null, return + * r4 is the pointer to the str to be printed, set by ALT_LOG_PUTS */ + ldb r7, (r4) + beq r0, r7, end_tx + + /* check device transmit ready */ +wait_tx_ready_loop: + ldwio r5, ALT_LOG_PRINT_REG_OFFSET(r6) + andi r5, r5, ALT_LOG_PRINT_MSK + beq r5, r0, wait_tx_ready_loop + /* write char */ + stwio r7, ALT_LOG_PRINT_TXDATA_REG_OFFSET (r6) + /* advance string pointer */ + addi r4, r4, 1 + br tx_next_char +end_tx: + ret + +#endif + +#endif /* __ALT_LOG_MACROS__ */ + diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_log_printf.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_log_printf.c new file mode 100644 index 0000000..1f7056d --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_log_printf.c @@ -0,0 +1,479 @@ + +/* alt_log_printf.c + * + * This file implements the various C functions used for the + * alt_log logging/debugging print functions. The functions + * sit as is here - the job of hiding them from the compiler + * if logging is disabled is accomplished in the .h file. + * + * All the global variables for alt_log are defined here. + * These include the various flags that turn on additional + * logging options; the strings for assembly printing; and + * other globals needed by different logging options. + * + * There are 4 functions that handle the actual printing: + * alt_log_txchar: Actual function that puts 1 char to UART/JTAG UART. + * alt_log_repchar: Calls alt_log_txchar 'n' times - used by + * alt_log_private_printf for formatting. + * alt_log_private_printf: + * Stripped down implementation of printf - no floats. + * alt_log_printf_proc: + * Wrapper function for private_printf. + * + * The rest of the functions are called by the macros which + * were called by code in the other components. Each function + * is preceded by a comment, about which file it gets called + * in, and what its purpose is. + * + * author: gkwan + */ + +/* skip all code if enable is off */ +#ifdef ALT_LOG_ENABLE + +#include +#include +#include +#ifdef __ALTERA_AVALON_JTAG_UART + #include "altera_avalon_jtag_uart.h" + #include +#endif +#include "sys/alt_log_printf.h" + +/* strings for assembly puts */ +char alt_log_msg_bss[] = "[crt0.S] Clearing BSS \r\n";; +char alt_log_msg_alt_main[] = "[crt0.S] Calling alt_main.\r\n"; +char alt_log_msg_stackpointer[] \ + = "[crt0.S] Setting up stack and global pointers.\r\n"; +char alt_log_msg_cache[] = "[crt0.S] Inst & Data Cache Initialized.\r\n"; +/* char array allocation for alt_write */ +char alt_log_write_buf[ALT_LOG_WRITE_ECHO_LEN+2]; + +/* global variables for all 'on' flags */ + +/* + * The boot message flag is linked into the data (rwdata) section + * because if it is zero, it would otherwise be placed in the bss section. + * alt_log examines this variable before the BSS is cleared in the boot-up + * process. + */ +volatile alt_u32 alt_log_boot_on_flag \ + __attribute__ ((section (".data"))) = ALT_LOG_BOOT_ON_FLAG_SETTING; + +volatile alt_u8 alt_log_write_on_flag = ALT_LOG_WRITE_ON_FLAG_SETTING; + +volatile alt_u8 alt_log_sys_clk_on_flag = ALT_LOG_SYS_CLK_ON_FLAG_SETTING; + +volatile alt_u8 alt_log_jtag_uart_alarm_on_flag = \ + ALT_LOG_JTAG_UART_ALARM_ON_FLAG_SETTING; + +volatile alt_u8 alt_log_jtag_uart_isr_on_flag = \ + ALT_LOG_JTAG_UART_ISR_ON_FLAG_SETTING; + +volatile alt_u8 alt_log_jtag_uart_startup_info_on_flag = \ + ALT_LOG_JTAG_UART_STARTUP_INFO_ON_FLAG_SETTING; + +/* Global alarm object for recurrent JTAG UART status printing */ +alt_alarm alt_log_jtag_uart_alarm_1; + +/* Global ints for system clock printing and count */ +volatile int alt_log_sys_clk_count; +volatile int alt_system_clock_in_sec; + +/* enum used by alt_log_private_printf */ +enum +{ + pfState_chars, + pfState_firstFmtChar, + pfState_otherFmtChar +}; + + + + +/* Function to put one char onto the UART/JTAG UART txdata register. */ +void alt_log_txchar(int c,char *base) +{ + /* Wait until the device is ready for a character */ + while((ALT_LOG_PRINT_REG_RD(base) & ALT_LOG_PRINT_MSK) == 0) + ; + /* And pop the character into the register */ + ALT_LOG_PRINT_TXDATA_WR(base,c); +} + + +/* Called by alt_log_private_printf to print out characters repeatedly */ +void alt_log_repchar(char c,int r,int base) +{ + while(r-- > 0) + alt_log_txchar(c,(char*) base); +} + + +/* Stripped down printf function */ +void alt_log_private_printf(const char *fmt,int base,va_list args) + { + const char *w; + char c; + int state; + int fmtLeadingZero = 0; /* init these all to 0 for -W warnings. */ + int fmtLong = 0; + int fmtBeforeDecimal = 0; + int fmtAfterDecimal = 0; + int fmtBase = 0; + int fmtSigned = 0; + int fmtCase = 0; /* For hex format, if 1, A-F, else a-f. */ + + w = fmt; + state = pfState_chars; + + while(0 != (c = *w++)) + { + switch(state) + { + case pfState_chars: + if(c == '%') + { + fmtLeadingZero = 0; + fmtLong = 0; + fmtBase = 10; + fmtSigned = 1; + fmtCase = 0; /* Only %X sets this. */ + fmtBeforeDecimal = -1; + fmtAfterDecimal = -1; + state = pfState_firstFmtChar; + } + else + { + alt_log_txchar(c,(char*)base); + } + break; + + case pfState_firstFmtChar: + if(c == '0') + { + fmtLeadingZero = 1; + state = pfState_otherFmtChar; + } + else if(c == '%') + { + alt_log_txchar(c,(char*)base); + state = pfState_chars; + } + else + { + state = pfState_otherFmtChar; + goto otherFmtChar; + } + break; + + case pfState_otherFmtChar: +otherFmtChar: + if(c == '.') + { + fmtAfterDecimal = 0; + } + else if('0' <= c && c <= '9') + { + c -= '0'; + if(fmtAfterDecimal < 0) /* still before decimal */ + { + if(fmtBeforeDecimal < 0) + { + fmtBeforeDecimal = 0; + } + else + { + fmtBeforeDecimal *= 10; + } + fmtBeforeDecimal += c; + } + else + { + fmtAfterDecimal = (fmtAfterDecimal * 10) + c; + } + } + else if(c == 'l') + { + fmtLong = 1; + } + else /* we're up to the letter which determines type */ + { + switch(c) + { + case 'd': + case 'i': +doIntegerPrint: + { + unsigned long v; + unsigned long p; /* biggest power of fmtBase */ + unsigned long vShrink; /* used to count digits */ + int sign; + int digitCount; + + /* Get the value */ + if(fmtLong) + { + if (fmtSigned) + { + v = va_arg(args,long); + } + else + { + v = va_arg(args,unsigned long); + } + } + else + { + if (fmtSigned) + { + v = va_arg(args,int); + } + else + { + v = va_arg(args,unsigned int); + } + } + + /* Strip sign */ + sign = 0; + /* (assumes sign bit is #31) */ + if( fmtSigned && (v & (0x80000000)) ) + { + v = ~v + 1; + sign = 1; + } + + /* Count digits, and get largest place value */ + vShrink = v; + p = 1; + digitCount = 1; + while( (vShrink = vShrink / fmtBase) > 0 ) + { + digitCount++; + p *= fmtBase; + } + + /* Print leading characters & sign */ + fmtBeforeDecimal -= digitCount; + if(fmtLeadingZero) + { + if(sign) + { + alt_log_txchar('-',(char*)base); + fmtBeforeDecimal--; + } + alt_log_repchar('0',fmtBeforeDecimal,base); + } + else + { + if(sign) + { + fmtBeforeDecimal--; + } + alt_log_repchar(' ',fmtBeforeDecimal,base); + if(sign) + { + alt_log_txchar('-',(char*)base); + } + } + + /* Print numbery parts */ + while(p) + { + unsigned char d; + + d = v / p; + d += '0'; + if(d > '9') + { + d += (fmtCase ? 'A' : 'a') - '0' - 10; + } + alt_log_txchar(d,(char*)base); + + v = v % p; + p = p / fmtBase; + } + } + + state = pfState_chars; + break; + + case 'u': + fmtSigned = 0; + goto doIntegerPrint; + case 'o': + fmtSigned = 0; + fmtBase = 8; + goto doIntegerPrint; + case 'x': + fmtSigned = 0; + fmtBase = 16; + goto doIntegerPrint; + case 'X': + fmtSigned = 0; + fmtBase = 16; + fmtCase = 1; + goto doIntegerPrint; + + case 'c': + alt_log_repchar(' ',fmtBeforeDecimal-1,base); + alt_log_txchar(va_arg(args,int),(char*)base); + break; + + case 's': + { + char *s; + + s = va_arg(args,char *); + alt_log_repchar(' ',fmtBeforeDecimal-strlen(s),base); + + while(*s) + alt_log_txchar(*s++,(char*)base); + } + break; + } /* switch last letter of fmt */ + state=pfState_chars; + } + break; + } /* switch */ + } /* while chars left */ + } /* printf */ + +/* Main logging printf function */ +int alt_log_printf_proc(const char *fmt, ... ) +{ + va_list args; + + va_start (args, fmt); + alt_log_private_printf(fmt,ALT_LOG_PORT_BASE,args); + return (0); +} + +/* Below are the functions called by different macros in various components. */ + +/* If the system has a JTAG_UART, include JTAG_UART debugging functions */ +#ifdef __ALTERA_AVALON_JTAG_UART + +/* The alarm function in altera_avalon_jtag_uart.c. + * This function, when turned on, prints out the status + * of the JTAG UART Control register, every ALT_LOG_JTAG_UART_TICKS. + * If the flag is off, the alarm should never be registered, and this + * function should never run */ +alt_u32 altera_avalon_jtag_uart_report_log(void * context) +{ + if (alt_log_jtag_uart_alarm_on_flag) { + altera_avalon_jtag_uart_state* dev = (altera_avalon_jtag_uart_state*) context; + const char* header="JTAG Alarm:"; + alt_log_jtag_uart_print_control_reg(dev, dev->base, header); + return ALT_LOG_JTAG_UART_TICKS; + } + else + { + /* If flag is not on, return 0 to disable future alarms. + * Should never be here, alarm should not be enabled at all. */ + return 0; + } +} + +void alt_log_jtag_uart_print_control_reg(altera_avalon_jtag_uart_state* dev, int base, const char* header) +{ + unsigned int control, space, ac, wi, ri, we, re; + control = IORD_ALTERA_AVALON_JTAG_UART_CONTROL(base); + space = (control & ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_MSK) >> + ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_OFST; + we= (control & ALTERA_AVALON_JTAG_UART_CONTROL_WE_MSK) >> + ALTERA_AVALON_JTAG_UART_CONTROL_WE_OFST; + re= (control & ALTERA_AVALON_JTAG_UART_CONTROL_RE_MSK) >> + ALTERA_AVALON_JTAG_UART_CONTROL_RE_OFST; + ri= (control & ALTERA_AVALON_JTAG_UART_CONTROL_RI_MSK) >> + ALTERA_AVALON_JTAG_UART_CONTROL_RI_OFST; + wi= (control & ALTERA_AVALON_JTAG_UART_CONTROL_WI_MSK) >> + ALTERA_AVALON_JTAG_UART_CONTROL_WI_OFST; + ac= (control & ALTERA_AVALON_JTAG_UART_CONTROL_AC_MSK) >> + ALTERA_AVALON_JTAG_UART_CONTROL_AC_OFST; + +#ifdef ALTERA_AVALON_JTAG_UART_SMALL + ALT_LOG_PRINTF( + "%s HW FIFO wspace=%d AC=%d WI=%d RI=%d WE=%d RE=%d\r\n", + header,space,ac,wi,ri,we,re); +#else + ALT_LOG_PRINTF( + "%s SW CirBuf = %d, HW FIFO wspace=%d AC=%d WI=%d RI=%d WE=%d RE=%d\r\n", + header,(dev->tx_out-dev->tx_in),space,ac,wi,ri,we,re); +#endif + + return; + +} + +/* In altera_avalon_jtag_uart.c + * Same output as the alarm function above, but this is called in the driver + * init function. Hence, it gives the status of the JTAG UART control register + * right at the initialization of the driver */ +void alt_log_jtag_uart_startup_info(altera_avalon_jtag_uart_state* dev, int base) +{ + const char* header="JTAG Startup Info:"; + alt_log_jtag_uart_print_control_reg(dev, base, header); + return; +} + +/* In altera_avalon_jtag_uart.c + * When turned on, this function will print out the status of the jtag uart + * control register every time there is a jtag uart "almost-empty" interrupt. */ +void alt_log_jtag_uart_isr_proc(int base, altera_avalon_jtag_uart_state* dev) +{ + if (alt_log_jtag_uart_isr_on_flag) { + const char* header="JTAG IRQ:"; + alt_log_jtag_uart_print_control_reg(dev, base, header); + } + return; +} + +#endif /* __ALTERA_AVALON_JTAG_UART */ + +/* In alt_write.c + * When the alt_log_write_on_flag is turned on, this function gets called + * every time alt_write gets called. The first + * ALT_LOG_WRITE_ECHO_LEN characters of every printf command (or any command + * that eventually calls write()) gets echoed to the alt_log output. */ +void alt_log_write(const void *ptr, size_t len) +{ + if (alt_log_write_on_flag) { + int temp_cnt; + int length=(ALT_LOG_WRITE_ECHO_LEN>len) ? len : ALT_LOG_WRITE_ECHO_LEN; + + if (length < 2) return; + + strncpy (alt_log_write_buf,ptr,length); + alt_log_write_buf[length-1]='\n'; + alt_log_write_buf[length]='\r'; + alt_log_write_buf[length+1]='\0'; + + /* Escape Ctrl-D's. If the Ctrl-D gets sent it might kill the terminal + * connection of alt_log. It will get replaced by 'D'. */ + for (temp_cnt=0;temp_cnt < length; temp_cnt++) { + if (alt_log_write_buf[temp_cnt]== 0x4) { + alt_log_write_buf[temp_cnt]='D'; + } + } + ALT_LOG_PRINTF("Write Echo: %s",alt_log_write_buf); + } +} + +/* In altera_avalon_timer_sc + * This function prints out a system clock is alive message + * every ALT_LOG_SYS_CLK_INTERVAL (in ticks). */ +void alt_log_system_clock() +{ + if (alt_log_sys_clk_on_flag) { + alt_log_sys_clk_count++; + if (alt_log_sys_clk_count > ALT_LOG_SYS_CLK_INTERVAL) { + alt_log_sys_clk_count = 0; + ALT_LOG_PRINTF("System Clock On %u\r\n",alt_system_clock_in_sec++); + } + } +} + + +#endif diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_lseek.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_lseek.c new file mode 100644 index 0000000..7857b0d --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_lseek.c @@ -0,0 +1,117 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004-2005 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +#include "sys/alt_errno.h" +#include "sys/alt_warning.h" +#include "priv/alt_file.h" +#include "os/alt_syscall.h" + +#ifdef ALT_USE_DIRECT_DRIVERS + +off_t ALT_LSEEK (int file, off_t ptr, int dir) +{ + /* Generate a link time warning, should this function ever be called. */ + + ALT_STUB_WARNING(lseek); + + /* Indicate an error */ + + ALT_ERRNO = ENOSYS; + return -1; +} + +#else /* !ALT_USE_DIRECT_DRIVERS */ + +/* + * lseek() can be called to move the read/write pointer associated with the + * file descriptor "file". This function simply vectors the call to the lseek() + * function provided by the driver associated with the file descriptor. + * + * If the driver does not provide an implementation of lseek() an error is + * indicated. + * + * lseek() corresponds to the standard lseek() function. + * + * ALT_LSEEK is mapped onto the lseek() system call in alt_syscall.h + * + */ + +off_t ALT_LSEEK (int file, off_t ptr, int dir) +{ + alt_fd* fd; + off_t rc = 0; + + /* + * A common error case is that when the file descriptor was created, the call + * to open() failed resulting in a negative file descriptor. This is trapped + * below so that we don't try and process an invalid file descriptor. + */ + + fd = (file < 0) ? NULL : &alt_fd_list[file]; + + if (fd) + { + /* + * If the device driver provides an implementation of the lseek() function, + * then call that to process the request. + */ + + if (fd->dev->lseek) + { + rc = fd->dev->lseek(fd, ptr, dir); + } + /* + * Otherwise return an error. + */ + + else + { + rc = -ENOTSUP; + } + } + else + { + rc = -EBADFD; + } + + if (rc < 0) + { + ALT_ERRNO = -rc; + rc = -1; + } + + return rc; +} + +#endif /* ALT_USE_DIRECT_DRIVERS */ diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_main.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_main.c new file mode 100644 index 0000000..a96229b --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_main.c @@ -0,0 +1,161 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2007 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include +#include +#include +#include +#include + +#include "sys/alt_dev.h" +#include "sys/alt_sys_init.h" +#include "sys/alt_irq.h" +#include "sys/alt_dev.h" + +#include "os/alt_hooks.h" + +#include "priv/alt_file.h" +#include "alt_types.h" + +#include "system.h" + +#include "sys/alt_log_printf.h" + +extern void _do_ctors(void); +extern void _do_dtors(void); + +/* + * Standard arguments for main. By default, no arguments are passed to main. + * However a device driver may choose to configure these arguments by calling + * alt_set_args(). The expectation is that this facility will only be used by + * the iclient/ihost utility. + */ + +int alt_argc = 0; +char** alt_argv = {NULL}; +char** alt_envp = {NULL}; + +/* + * Prototype for the entry point to the users application. + */ + +extern int main (int, char **, char **); + +/* + * alt_main is the C entry point for the HAL. It is called by the assembler + * startup code in the processor specific crt0.S. It is responsible for: + * completing the C runtime configuration; configuring all the + * devices/filesystems/components in the system; and call the entry point for + * the users application, i.e. main(). + */ + +void alt_main (void) +{ +#ifndef ALT_NO_EXIT + int result; +#endif + + /* ALT LOG - please see HAL/sys/alt_log_printf.h for details */ + ALT_LOG_PRINT_BOOT("[alt_main.c] Entering alt_main, calling alt_irq_init.\r\n"); + /* Initialize the interrupt controller. */ + alt_irq_init (NULL); + + /* Initialize the operating system */ + ALT_LOG_PRINT_BOOT("[alt_main.c] Done alt_irq_init, calling alt_os_init.\r\n"); + ALT_OS_INIT(); + + /* + * Initialize the semaphore used to control access to the file descriptor + * list. + */ + + ALT_LOG_PRINT_BOOT("[alt_main.c] Done OS Init, calling alt_sem_create.\r\n"); + ALT_SEM_CREATE (&alt_fd_list_lock, 1); + + /* Initialize the device drivers/software components. */ + ALT_LOG_PRINT_BOOT("[alt_main.c] Calling alt_sys_init.\r\n"); + alt_sys_init(); + ALT_LOG_PRINT_BOOT("[alt_main.c] Done alt_sys_init.\r\n"); + +#if !defined(ALT_USE_DIRECT_DRIVERS) && (defined(ALT_STDIN_PRESENT) || defined(ALT_STDOUT_PRESENT) || defined(ALT_STDERR_PRESENT)) + + /* + * Redirect stdio to the apropriate devices now that the devices have + * been initialized. This is only done if the user has requested these + * devices be present (not equal to /dev/null) and if direct drivers + * aren't being used. + */ + + ALT_LOG_PRINT_BOOT("[alt_main.c] Redirecting IO.\r\n"); + alt_io_redirect(ALT_STDOUT, ALT_STDIN, ALT_STDERR); +#endif + +#ifndef ALT_NO_C_PLUS_PLUS + /* + * Call the C++ constructors + */ + + ALT_LOG_PRINT_BOOT("[alt_main.c] Calling C++ constructors.\r\n"); + _do_ctors (); +#endif /* ALT_NO_C_PLUS_PLUS */ + +#if !defined(ALT_NO_C_PLUS_PLUS) && !defined(ALT_NO_CLEAN_EXIT) && !defined(ALT_NO_EXIT) + /* + * Set the C++ destructors to be called at system shutdown. This is only done + * if a clean exit has been requested (i.e. the exit() function has not been + * redefined as _exit()). This is in the interest of reducing code footprint, + * in that the atexit() overhead is removed when it's not needed. + */ + + ALT_LOG_PRINT_BOOT("[alt_main.c] Calling atexit.\r\n"); + atexit (_do_dtors); +#endif + + /* + * Finally, call main(). The return code is then passed to a subsequent + * call to exit() unless the application is never supposed to exit. + */ + + ALT_LOG_PRINT_BOOT("[alt_main.c] Calling main.\r\n"); + +#ifdef ALT_NO_EXIT + main (alt_argc, alt_argv, alt_envp); +#else + result = main (alt_argc, alt_argv, alt_envp); + close(STDOUT_FILENO); + exit (result); +#endif + + ALT_LOG_PRINT_BOOT("[alt_main.c] After main - we should not be here?.\r\n"); +} + diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_malloc_lock.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_malloc_lock.c new file mode 100644 index 0000000..8c78f46 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_malloc_lock.c @@ -0,0 +1,52 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +/* + * These are the empty malloc lock/unlock stubs required by newlib. These are + * used to make newlib's malloc() function thread safe. The default HAL + * configuration is single threaded, so there is nothing to do here. Note that + * this requires that malloc is never called by an interrupt service routine. + */ + +void __malloc_lock ( struct _reent *_r ) +{ +} + +/* + * + */ + +void __malloc_unlock ( struct _reent *_r ) +{ +} diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_mcount.S b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_mcount.S new file mode 100644 index 0000000..3837523 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_mcount.S @@ -0,0 +1,198 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003-2010 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/* mcount or _mcount is inserted by GCC before the function prologue of every + * function when a program is compiled for profiling. At the start of mcount, + * we guarantee that: + * ra = self_pc (an address in the function which called mcount) + * r8 = from_pc (an address in the function which called mcount's caller) + * + * Because this is always called at the start of a function we can corrupt + * r2,r3 and r11-r15. We must not corrupt r4-r7 (because they might contain + * function arguments for the instrumented function) or r8 (which holds ra + * for the instrumented function). + */ + + .global __mcount_fn_head + + .global mcount + + /* _mcount is used by gcc4 */ + .global _mcount + +_mcount: +mcount: + /* Use a hash to speed up locating fn_entry. We use bits 5 upwards to choose + * the bucket because bits 1:0 will always be 0, and because the distribution + * of values for bits 4:2 won't be even (aligning on cache line boundaries + * will skew it). Higher bits should be fairly random. + */ + /* fn_head = mcount_fn_head + (((unsigned int)self_pc >> 5) & (HASH_BUCKETS - 1)); */ + + srli r2, ra, 3 + movhi r3, %hiadj(__mcount_fn_head) + addi r3, r3, %lo(__mcount_fn_head) + andi r2, r2, 0xFC + add r11, r2, r3 + + /* The fast case is where we have already allocated a function arc, and so + * also a function pointer. + */ + + /* First find the function being called (using self_pc) */ + mov r10, r11 +0: + ldw r10, 0(r10) + beq r10, zero, .Lnew_arc + ldw r2, 4(r10) + bne r2, ra, 0b + + /* Found a function entry for this PC. Now look for an arc with a matching + * from_pc value. There will always be at least one arc. */ + ldw r3, 8(r10) +0: + ldw r2, 4(r3) + beq r2, r8, .Lfound_arc + ldw r3, 0(r3) + bne r3, zero, 0b + +.Lnew_arc: + addi sp, sp, -24 + +.LCFI0: + stw ra, 0(sp) + stw r4, 4(sp) + stw r5, 8(sp) + stw r6, 12(sp) + stw r7, 16(sp) + stw r8, 20(sp) + +.LCFI1: + /* __mcount_record(orig_ra, orig_r8, fn_entry, *fn_head); */ + mov r4, ra + mov r5, r8 + mov r6, r10 + mov r7, r11 + call __mcount_record + + /* restore registers from the stack */ + ldw ra, 0(sp) + ldw r4, 4(sp) + ldw r5, 8(sp) + ldw r6, 12(sp) + ldw r7, 16(sp) + ldw r8, 20(sp) + + addi sp, sp, 24 + +.LCFI2: + ret + +.Lfound_arc: + /* We've found the correct arc record. Increment the count and return */ + ldw r2, 8(r3) + addi r2, r2, 1 + stw r2, 8(r3) + ret + +.Lmcount_end: + + + +/* + * Dwarf2 debug information for the function. This provides GDB with the + * information it needs to backtrace out of this function. + */ + + .section .debug_frame,"",@progbits +.LCIE: + .4byte 2f - 1f /* Length */ +1: + .4byte 0xffffffff /* CIE id */ + .byte 0x1 /* Version */ + .string "" /* Augmentation */ + .uleb128 0x1 /* Code alignment factor */ + .sleb128 -4 /* Data alignment factor */ + .byte 0x1f /* Return address register */ + + .byte 0xc /* Define CFA */ + .uleb128 0x1b /* Register 27 (sp) */ + .uleb128 0x0 /* Offset 0 */ + + .align 2 /* Padding */ +2: + +.LFDE_mcount: + .4byte 2f - 1f /* Length */ +1: + .4byte .LCIE /* Pointer to CIE */ + .4byte mcount /* Start of table entry */ + .4byte .Lmcount_end - mcount /* Size of table entry */ + + .byte 0x4 /* Advance location */ + .4byte .LCFI0 - mcount /* to .LCFI0 */ + .byte 0xe /* Define CFA offset */ + .uleb128 24 /* to 24 */ + + .byte 0x4 /* Advance location */ + .4byte .LCFI1 - .LCFI0 /* to .LCFI1 */ + .byte 0x9f /* Store ra */ + .uleb128 0x6 /* at CFA-24 */ + .byte 0x84 /* Store r4 */ + .uleb128 0x5 /* at CFA-20 */ + .byte 0x85 /* Store r5 */ + .uleb128 0x4 /* at CFA-16 */ + .byte 0x86 /* Store r6 */ + .uleb128 0x3 /* at CFA-12 */ + .byte 0x87 /* Store r7 */ + .uleb128 0x2 /* at CFA-8 */ + .byte 0x88 /* Store r8 */ + .uleb128 0x1 /* at CFA-4 */ + + .byte 0x4 /* Advance location */ + .4byte .LCFI2 - .LCFI1 /* to .LCFI2 */ + .byte 0xe /* Define CFA offset */ + .uleb128 0 /* to 0 */ + .byte 0x8 /* Same value */ + .uleb128 31 /* for ra */ + .byte 0x8 /* Same value */ + .uleb128 4 /* for r4 */ + .byte 0x8 /* Same value */ + .uleb128 5 /* for r5 */ + .byte 0x8 /* Same value */ + .uleb128 6 /* for r6 */ + .byte 0x8 /* Same value */ + .uleb128 7 /* for r7 */ + .byte 0x8 /* Same value */ + .uleb128 8 /* for r8 */ + + .align 2 +2: + diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_open.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_open.c new file mode 100644 index 0000000..4790f53 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_open.c @@ -0,0 +1,173 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_errno.h" +#include "sys/alt_warning.h" +#include "priv/alt_file.h" +#include "alt_types.h" +#include "os/alt_syscall.h" + +#ifdef ALT_USE_DIRECT_DRIVERS + +int ALT_OPEN (const char* file, int flags, int mode) +{ + /* Generate a link time warning, should this function ever be called. */ + + ALT_STUB_WARNING(open); + + /* Indicate an error */ + + ALT_ERRNO = ENOSYS; + return -1; +} + +#else /* !ALT_USE_DIRECT_DRIVERS */ + +extern alt_llist alt_dev_list; + +/* + * alt_file_locked() is used by open() to ensure that a device has not been + * previously locked for exclusive access using ioctl(). This test is only + * performed for devices. Filesystems are required to handle the ioctl() call + * themselves, and report the error from the filesystems open() function. + */ + +static int alt_file_locked (alt_fd* fd) +{ + alt_u32 i; + + /* + * Mark the file descriptor as belonging to a device. + */ + + fd->fd_flags |= ALT_FD_DEV; + + /* + * Loop through all current file descriptors searching for one that's locked + * for exclusive access. If a match is found, generate an error. + */ + + for (i = 0; i <= alt_max_fd; i++) + { + if ((alt_fd_list[i].dev == fd->dev) && + (alt_fd_list[i].fd_flags & ALT_FD_EXCL) && + (&alt_fd_list[i] != fd)) + { + return -EACCES; + } + } + + /* The device is not locked */ + + return 0; +} + +/* + * open() is called in order to get a file descriptor that reference the file + * or device named "name". This descriptor can then be used to manipulate the + * file/device using the standard system calls, e.g. write(), read(), ioctl() + * etc. + * + * This is equivalent to the standard open() system call. + * + * ALT_OPEN is mapped onto the open() system call in alt_syscall.h + */ + +int ALT_OPEN (const char* file, int flags, int mode) +{ + alt_dev* dev; + alt_fd* fd; + int index = -1; + int status = -ENODEV; + int isafs = 0; + + /* + * Check the device list, to see if a device with a matching name is + * registered. + */ + + if (!(dev = alt_find_dev (file, &alt_dev_list))) + { + /* No matching device, so try the filesystem list */ + + dev = alt_find_file (file); + isafs = 1; + } + + /* + * If a matching device or filesystem is found, allocate a file descriptor. + */ + + if (dev) + { + if ((index = alt_get_fd (dev)) < 0) + { + status = index; + } + else + { + fd = &alt_fd_list[index]; + fd->fd_flags = (flags & ~ALT_FD_FLAGS_MASK); + + /* If this is a device, ensure it isn't already locked */ + + if (isafs || ((status = alt_file_locked (fd)) >= 0)) + { + /* + * If the device or filesystem provides an open() callback function, + * call it now to perform any device/filesystem specific operations. + */ + + status = (dev->open) ? dev->open(fd, file, flags, mode): 0; + } + } + } + else + { + status = -ENODEV; + } + + /* Allocation failed, so clean up and return an error */ + + if (status < 0) + { + alt_release_fd (index); + ALT_ERRNO = -status; + return -1; + } + + /* return the reference upon success */ + + return index; +} + +#endif /* ALT_USE_DIRECT_DRIVERS */ diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_printf.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_printf.c new file mode 100644 index 0000000..e742b57 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_printf.c @@ -0,0 +1,127 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/* + * This file provides a very minimal printf implementation for use with very + * small applications. Only the following format strings are supported: + * %x + * %s + * %c + * %% + */ + +#include +#include "sys/alt_stdio.h" + +/* + * ALT printf function + */ +void +alt_printf(const char* fmt, ... ) +{ + va_list args; + va_start(args, fmt); + const char *w; + char c; + + /* Process format string. */ + w = fmt; + while ((c = *w++) != 0) + { + /* If not a format escape character, just print */ + /* character. Otherwise, process format string. */ + if (c != '%') + { + alt_putchar(c); + } + else + { + /* Get format character. If none */ + /* available, processing is complete. */ + if ((c = *w++) != 0) + { + if (c == '%') + { + /* Process "%" escape sequence. */ + alt_putchar(c); + } + else if (c == 'c') + { + int v = va_arg(args, int); + alt_putchar(v); + } + else if (c == 'x') + { + /* Process hexadecimal number format. */ + unsigned long v = va_arg(args, unsigned long); + unsigned long digit; + int digit_shift; + + /* If the number value is zero, just print and continue. */ + if (v == 0) + { + alt_putchar('0'); + continue; + } + + /* Find first non-zero digit. */ + digit_shift = 28; + while (!(v & (0xF << digit_shift))) + digit_shift -= 4; + + /* Print digits. */ + for (; digit_shift >= 0; digit_shift -= 4) + { + digit = (v & (0xF << digit_shift)) >> digit_shift; + if (digit <= 9) + c = '0' + digit; + else + c = 'a' + digit - 10; + alt_putchar(c); + } + } + else if (c == 's') + { + /* Process string format. */ + char *s = va_arg(args, char *); + + while(*s) + alt_putchar(*s++); + } + } + else + { + break; + } + } + } +} diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_putchar.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_putchar.c new file mode 100644 index 0000000..badaa02 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_putchar.c @@ -0,0 +1,59 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +#ifdef ALT_USE_DIRECT_DRIVERS +#include "system.h" +#include "sys/alt_driver.h" +#include "sys/alt_stdio.h" +#endif + +/* + * Uses the ALT_DRIVER_WRITE() macro to call directly to driver if available. + * Otherwise, uses newlib provided putchar() routine. + */ +int +alt_putchar(int c) +{ +#ifdef ALT_USE_DIRECT_DRIVERS + ALT_DRIVER_WRITE_EXTERNS(ALT_STDOUT_DEV); + char c1 = (char)(c & 0xff); + + if (ALT_DRIVER_WRITE(ALT_STDOUT_DEV, &c1, 1, 0) == -1) { + return -1; + } + return c; +#else + return putchar(c); +#endif +} diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_putstr.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_putstr.c new file mode 100644 index 0000000..5345945 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_putstr.c @@ -0,0 +1,55 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +#ifdef ALT_USE_DIRECT_DRIVERS +#include +#include "system.h" +#include "sys/alt_driver.h" +#include "sys/alt_stdio.h" +#endif + +/* + * Uses the ALT_DRIVER_WRITE() macro to call directly to driver if available. + * Otherwise, uses newlib provided fputs() routine. + */ +int +alt_putstr(const char* str) +{ +#ifdef ALT_USE_DIRECT_DRIVERS + ALT_DRIVER_WRITE_EXTERNS(ALT_STDOUT_DEV); + return ALT_DRIVER_WRITE(ALT_STDOUT_DEV, str, strlen(str), 0); +#else + return fputs(str, stdout); +#endif +} diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_read.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_read.c new file mode 100644 index 0000000..1c89777 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_read.c @@ -0,0 +1,125 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include + +#include "sys/alt_errno.h" +#include "sys/alt_warning.h" +#include "priv/alt_file.h" +#include "os/alt_syscall.h" + +/* + * The read() system call is used to read a block of data from a file or device. + * This function simply vectors the request to the device driver associated + * with the input file descriptor "file". + * + * ALT_READ is mapped onto the read() system call in alt_syscall.h + */ + +#ifdef ALT_USE_DIRECT_DRIVERS + +#include "system.h" +#include "sys/alt_driver.h" + +/* + * Provide minimal version that just reads from the stdin device when provided. + */ + +int ALT_READ (int file, void *ptr, size_t len) +{ +#ifdef ALT_STDIN_PRESENT + ALT_DRIVER_READ_EXTERNS(ALT_STDIN_DEV); +#endif + +#if !defined(ALT_STDIN_PRESENT) + /* Generate a link time warning, should this function ever be called. */ + ALT_STUB_WARNING(read); +#endif + + switch (file) { +#ifdef ALT_STDIN_PRESENT + case 0: /* stdin file descriptor */ + return ALT_DRIVER_READ(ALT_STDIN_DEV, ptr, len, 0); +#endif /* ALT_STDIN_PRESENT */ + default: + ALT_ERRNO = EBADFD; + return -1; + } +} + +#else /* !ALT_USE_DIRECT_DRIVERS */ + +int ALT_READ (int file, void *ptr, size_t len) +{ + alt_fd* fd; + int rval; + + /* + * A common error case is that when the file descriptor was created, the call + * to open() failed resulting in a negative file descriptor. This is trapped + * below so that we don't try and process an invalid file descriptor. + */ + + fd = (file < 0) ? NULL : &alt_fd_list[file]; + + if (fd) + { + /* + * If the file has not been opened with read access, or if the driver does + * not provide an implementation of read(), generate an error. Otherwise + * call the drivers read() function to process the request. + */ + + if (((fd->fd_flags & O_ACCMODE) != O_WRONLY) && + (fd->dev->read)) + { + if ((rval = fd->dev->read(fd, ptr, len)) < 0) + { + ALT_ERRNO = -rval; + return -1; + } + return rval; + } + else + { + ALT_ERRNO = EACCES; + } + } + else + { + ALT_ERRNO = EBADFD; + } + return -1; +} + +#endif /* ALT_USE_DIRECT_DRIVERS */ diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_release_fd.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_release_fd.c new file mode 100644 index 0000000..84733a7 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_release_fd.c @@ -0,0 +1,54 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_dev.h" +#include "priv/alt_file.h" + +/* + * alt_release_fd() is called to free an allocated file descriptor. This is + * done by setting the device pointer in the file descriptor structure to zero. + * + * File descriptors correcponding to standard in, standard out and standard + * error cannont be released backed to the pool. They are always reserved. + */ + +void alt_release_fd (int fd) +{ + if (fd > 2) + { + alt_fd_list[fd].fd_flags = 0; + alt_fd_list[fd].dev = 0; + } +} + + + diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_remap_cached.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_remap_cached.c new file mode 100644 index 0000000..f61cb9c --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_remap_cached.c @@ -0,0 +1,50 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003,2007 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "sys/alt_cache.h" +#include "system.h" + +#ifdef NIOS2_MMU_PRESENT +/* Convert KERNEL region address to IO region address */ +#define BYPASS_DCACHE_MASK (0x1 << 29) +#else +/* Set bit 31 of address to bypass D-cache */ +#define BYPASS_DCACHE_MASK (0x1 << 31) +#endif + +/* + * Convert a pointer to a block of uncached memory, into a block of + * cached memory. + */ + +void* alt_remap_cached (volatile void* ptr, alt_u32 len) +{ + return (void*) (((alt_u32) ptr) & ~BYPASS_DCACHE_MASK); +} diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_remap_uncached.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_remap_uncached.c new file mode 100644 index 0000000..7ff6302 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_remap_uncached.c @@ -0,0 +1,51 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003,2007 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "sys/alt_cache.h" +#include "system.h" + +#ifdef NIOS2_MMU_PRESENT +/* Convert KERNEL region address to IO region address */ +#define BYPASS_DCACHE_MASK (0x1 << 29) +#else +/* Set bit 31 of address to bypass D-cache */ +#define BYPASS_DCACHE_MASK (0x1 << 31) +#endif + +/* + * Convert a pointer to a block of cached memory, into a block of + * uncached memory. + */ + +volatile void* alt_remap_uncached (void* ptr, alt_u32 len) +{ + alt_dcache_flush (ptr, len); + return (volatile void*) (((alt_u32) ptr) | BYPASS_DCACHE_MASK); +} diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_rename.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_rename.c new file mode 100644 index 0000000..48afac0 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_rename.c @@ -0,0 +1,55 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_errno.h" +#include "sys/alt_warning.h" +#include "os/alt_syscall.h" + +/* + * _rename() is used by newlib to rename an existing file. This is unsupported + * in the HAL environment. However a "do-nothing" implementation is still + * provied for newlib compatability. + * + * ALT_RENAME is mapped onto the _rename() system call in alt_syscall.h + */ + +int ALT_RENAME (char *existing, char *new) +{ + /* Generate a link time warning, should this function ever be called. */ + + ALT_STUB_WARNING(_rename); + + /* Indicate an error */ + + ALT_ERRNO = ENOSYS; + return -1; +} diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_sbrk.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_sbrk.c new file mode 100644 index 0000000..b8c3799 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_sbrk.c @@ -0,0 +1,136 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +#include "os/alt_syscall.h" + +#include "sys/alt_irq.h" +#include "sys/alt_stack.h" + +#include "system.h" + +/* + * sbrk() is called to dynamically extend the data segment for the application. + * Thie input argument "incr" is the size of the block to allocate. + * + * This simple implementation does not perform any bounds checking. Memory will + * be allocated, even if the request region colides with the stack or overflows + * the available physical memory. + * + * ALT_SBRK is mapped onto the sbrk() system call in alt_syscall.h + * + * This function is called by the profiling code to allocate memory so must be + * safe if called from an interrupt context. It must also not be instrumented + * because that would lead to an infinate loop. + */ + +extern char __alt_heap_start[]; /* set by linker */ +extern char __alt_heap_limit[]; /* set by linker */ + +static char *heap_end = __alt_heap_start; + +#if defined(ALT_EXCEPTION_STACK) && defined(ALT_STACK_CHECK) +char * alt_exception_old_stack_limit = NULL; +#endif + +caddr_t ALT_SBRK (int incr) __attribute__ ((no_instrument_function )); + +caddr_t ALT_SBRK (int incr) +{ + alt_irq_context context; + char *prev_heap_end; + + context = alt_irq_disable_all(); + + /* Always return data aligned on a word boundary */ + heap_end = (char *)(((unsigned int)heap_end + 3) & ~3); + +#ifdef ALT_MAX_HEAP_BYTES + /* + * User specified a maximum heap size. Return -1 if it would + * be exceeded by this sbrk call. + */ + if (((heap_end + incr) - __alt_heap_start) > ALT_MAX_HEAP_BYTES) { + alt_irq_enable_all(context); + return (caddr_t)-1; + } +#else + if ((heap_end + incr) > __alt_heap_limit) { + alt_irq_enable_all(context); + return (caddr_t)-1; + } +#endif + + prev_heap_end = heap_end; + heap_end += incr; + +#ifdef ALT_STACK_CHECK + /* + * If the stack and heap are contiguous then extending the heap reduces the + * space available for the stack. If we are still using the default stack + * then adjust the stack limit to note this, while checking for stack + * pointer overflow. + * If the stack limit isn't pointing at the top of the heap then the code + * is using a different stack so none of this needs to be done. + */ + + if (alt_stack_limit() == prev_heap_end) + { + if (alt_stack_pointer() <= heap_end) + alt_report_stack_overflow(); + + alt_set_stack_limit(heap_end); + } + +#ifdef ALT_EXCEPTION_STACK + /* + * If we are executing from the exception stack then compare against the + * stack we switched away from as well. The exception stack is a fixed + * size so doesn't need to be checked. + */ + + if (alt_exception_old_stack_limit == prev_heap_end) + { + if (alt_exception_old_stack_limit <= heap_end) + alt_report_stack_overflow(); + + alt_exception_old_stack_limit = heap_end; + } +#endif + +#endif + + alt_irq_enable_all(context); + + return (caddr_t) prev_heap_end; +} diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_settod.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_settod.c new file mode 100644 index 0000000..59db0f8 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_settod.c @@ -0,0 +1,96 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include + +#include "sys/alt_errno.h" +#include "sys/alt_alarm.h" +#include "os/alt_syscall.h" + +/* + * "alt_timezone" and "alt_resettime" are the values of the the reset time and + * time zone set through the last call to settimeofday(). By default they are + * zero initialised. + */ + +extern struct timezone alt_timezone; +extern struct timeval alt_resettime; + +/* + * Macro defining the number of micoseconds in a second. + */ + +#define ALT_US (1000000) + + +/* + * settimeofday() can be called to calibrate the system clock, so that + * subsequent calls to gettimeofday() will return the elapsed "wall clock" + * time. + * + * This is done by updating the global structures "alt_resettime" and + * "alt_timezone" so that an immediate call to gettimeofday() would return + * the value specified by "t" and "tz". + * + * Warning: if this function is called concurrently with a call to + * gettimeofday(), the value returned by gettimeofday() will be unreliable. + * + * ALT_SETTIMEOFDAY is mapped onto the settimeofday() system call in + * alt_syscall.h + */ + +int ALT_SETTIMEOFDAY (const struct timeval *t, + const struct timezone *tz) +{ + alt_u32 nticks = alt_nticks (); + alt_u32 tick_rate = alt_ticks_per_second (); + + /* If there is a system clock available, update the current time */ + + if (tick_rate) + { + alt_resettime.tv_sec = t->tv_sec - nticks/tick_rate; + alt_resettime.tv_usec = t->tv_usec - + ((nticks*(ALT_US/tick_rate))%ALT_US); + + alt_timezone.tz_minuteswest = tz->tz_minuteswest; + alt_timezone.tz_dsttime = tz->tz_dsttime; + + return 0; + } + + /* There's no system clock available */ + + ALT_ERRNO = ENOSYS; + return -1; +} diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_software_exception.S b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_software_exception.S new file mode 100644 index 0000000..2142594 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_software_exception.S @@ -0,0 +1,53 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003-2005 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + + /* + * This file provides the global symbol: software_exception. It is provided to + * support legacy code, and should not be used by new software. + * + * It is used by legacy code to invoke the software exception handler as + * defined by version 1.0 of the Nios II kit. It should only be used when you + * are providing your own interrupt entry point, i.e. you are not using + * alt_irq_entry. + */ + +#include "system.h" + + /* + * Pull in the exception handler. + */ + + .globl alt_exception + + .section .exceptions.entry.label, "xa" + + .globl software_exception + .type software_exception, @function +software_exception: diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_stat.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_stat.c new file mode 100644 index 0000000..44e207b --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_stat.c @@ -0,0 +1,59 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include +#include +#include + +#include "os/alt_syscall.h" + +/* + * The stat() function is similar to the fstat() function in that it is used to + * obtain status information about a file. Instead of using an open file + * descriptor (like fstat()), stat() takes the name of a file as an input + * argument. + * + * ALT_STAT is mapped onto the stat() system call in alt_syscall.h + */ + +int ALT_STAT (const char *file, struct stat *st) +{ + int fd; + int rc; + + fd = open (file, 0); + rc = fstat (fd, st); + close (fd); + + return rc; +} diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_tick.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_tick.c new file mode 100644 index 0000000..c73488d --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_tick.c @@ -0,0 +1,149 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_irq.h" +#include "sys/alt_alarm.h" +#include "os/alt_hooks.h" +#include "alt_types.h" + +/* + * "_alt_tick_rate" is used to store the value of the system clock frequency + * in ticks per second. It is initialised to zero, which corresponds to there + * being no system clock facility available. + */ + +alt_u32 _alt_tick_rate = 0; + +/* + * "_alt_nticks" is the number of system clock ticks that have elapsed since + * reset. + */ + +volatile alt_u32 _alt_nticks = 0; + +/* + * "alt_alarm_list" is the head of a linked list of registered alarms. This is + * initialised to be an empty list. + */ + +ALT_LLIST_HEAD(alt_alarm_list); + +/* + * alt_alarm_stop() is called to remove an alarm from the list of registered + * alarms. Alternatively an alarm can unregister itself by returning zero when + * the alarm executes. + */ + +void alt_alarm_stop (alt_alarm* alarm) +{ + alt_irq_context irq_context; + + irq_context = alt_irq_disable_all(); + alt_llist_remove (&alarm->llist); + alt_irq_enable_all (irq_context); +} + +/* + * alt_tick() is periodically called by the system clock driver in order to + * process the registered list of alarms. Each alarm is registed with a + * callback interval, and a callback function, "callback". + * + * The return value of the callback function indicates how many ticks are to + * elapse until the next callback. A return value of zero indicates that the + * alarm should be deactivated. + * + * alt_tick() is expected to run at interrupt level. + */ + +void alt_tick (void) +{ + alt_alarm* next; + alt_alarm* alarm = (alt_alarm*) alt_alarm_list.next; + + alt_u32 next_callback; + + /* update the tick counter */ + + _alt_nticks++; + + /* process the registered callbacks */ + + while (alarm != (alt_alarm*) &alt_alarm_list) + { + next = (alt_alarm*) alarm->llist.next; + + /* + * Upon the tick-counter rolling over it is safe to clear the + * roll-over flag; once the flag is cleared this (or subsequnt) + * tick events are enabled to generate an alarm event. + */ + if ((alarm->rollover) && (_alt_nticks == 0)) + { + alarm->rollover = 0; + } + + /* if the alarm period has expired, make the callback */ + if ((alarm->time <= _alt_nticks) && (alarm->rollover == 0)) + { + next_callback = alarm->callback (alarm->context); + + /* deactivate the alarm if the return value is zero */ + + if (next_callback == 0) + { + alt_alarm_stop (alarm); + } + else + { + alarm->time += next_callback; + + /* + * If the desired alarm time causes a roll-over, set the rollover + * flag. This will prevent the subsequent tick event from causing + * an alarm too early. + */ + if(alarm->time < _alt_nticks) + { + alarm->rollover = 1; + } + } + } + alarm = next; + } + + /* + * Update the operating system specific timer facilities. + */ + + ALT_OS_TIME_TICK(); +} + diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_times.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_times.c new file mode 100644 index 0000000..4dd965d --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_times.c @@ -0,0 +1,71 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +#include "sys/alt_errno.h" +#include "sys/alt_alarm.h" +#include "os/alt_syscall.h" + +/* + * The times() function is used by newlib to obtain elapsed time information. + * The return value is the elapsed time since reset in system clock ticks. Note + * that this is distinct from the strict Posix version of times(), which should + * return the time since: 0 hours, 0 minutes, 0 seconds, January 1, 1970, GMT. + * + * The input structure is filled in with time accounting information. This + * implementation attributes all cpu time to the system. + * + * ALT_TIMES is mapped onto the times() system call in alt_syscall.h + */ + +clock_t ALT_TIMES (struct tms *buf) +{ + clock_t ticks = alt_nticks(); + + /* If there is no system clock present, generate an error */ + + if (!alt_ticks_per_second()) + { + ALT_ERRNO = ENOSYS; + return 0; + } + + /* Otherwise return the elapsed time */ + + buf->tms_utime = 0; + buf->tms_stime = ticks; + buf->tms_cutime = 0; + buf->tms_cstime = 0; + + return ticks; +} diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_uncached_free.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_uncached_free.c new file mode 100644 index 0000000..6e362ba --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_uncached_free.c @@ -0,0 +1,49 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003,2007 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "sys/alt_cache.h" +#include "system.h" + +#ifdef NIOS2_MMU_PRESENT +/* Convert KERNEL region address to IO region address */ +#define BYPASS_DCACHE_MASK (0x1 << 29) +#else +/* Set bit 31 of address to bypass D-cache */ +#define BYPASS_DCACHE_MASK (0x1 << 31) +#endif + +/* + * Free a block of uncached memory. + */ + +void alt_uncached_free (volatile void* ptr) +{ + free ((void*) (((alt_u32) ptr) & ~BYPASS_DCACHE_MASK)); +} diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_uncached_malloc.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_uncached_malloc.c new file mode 100644 index 0000000..ab3416d --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_uncached_malloc.c @@ -0,0 +1,55 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003,2007 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "sys/alt_cache.h" +#include "system.h" + +#ifdef NIOS2_MMU_PRESENT +/* Convert KERNEL region address to IO region address */ +#define BYPASS_DCACHE_MASK (0x1 << 29) +#else +/* Set bit 31 of address to bypass D-cache */ +#define BYPASS_DCACHE_MASK (0x1 << 31) +#endif + +/* + * Allocate a block of uncached memory. + */ + +volatile void* alt_uncached_malloc (size_t size) +{ + void* ptr; + + ptr = malloc (size); + + alt_dcache_flush (ptr, size); + + return ptr ? (volatile void*) (((alt_u32) ptr) | BYPASS_DCACHE_MASK) : NULL; +} diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_unlink.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_unlink.c new file mode 100644 index 0000000..29e35d6 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_unlink.c @@ -0,0 +1,55 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_errno.h" +#include "sys/alt_warning.h" +#include "os/alt_syscall.h" + +/* + * unlink() is used by newlib to delete an existing link to a file. This is + * unsupported in the HAL environment. However a "do-nothing" implementation + * is still provied for newlib compatability. + * + * ALT_UNLINK is mapped onto the unlink() system call in alt_syscall.h + */ + +int ALT_UNLINK (char *name) +{ + /* Generate a link time warning, should this function ever be called. */ + + ALT_STUB_WARNING(unlink); + + /* Indicate an error */ + + ALT_ERRNO = ENOSYS; + return -1; +} diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_usleep.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_usleep.c new file mode 100644 index 0000000..2330eb8 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_usleep.c @@ -0,0 +1,52 @@ +/* + * Copyright (c) 2003 Altera Corporation, San Jose, California, USA. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + * ------------ + * + * Altera does not recommend, suggest or require that this reference design + * file be used in conjunction or combination with any other product. + * + * usleep.c - Microsecond delay routine + */ + +#include + +#include "priv/alt_busy_sleep.h" +#include "os/alt_syscall.h" + +/* + * This function simply calls alt_busy_sleep() to perform the delay. This + * function implements the delay as a calibrated "busy loop". + * + * ALT_USLEEP is mapped onto the usleep() system call in alt_syscall.h + */ + + + +#if defined (__GNUC__) && __GNUC__ >= 4 +int ALT_USLEEP (useconds_t us) +#else +unsigned int ALT_USLEEP (unsigned int us) +#endif +{ + return alt_busy_sleep(us); +} diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_wait.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_wait.c new file mode 100644 index 0000000..a42f80f --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_wait.c @@ -0,0 +1,52 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_errno.h" +#include "os/alt_syscall.h" + +/* + * wait() is used by newlib to wait for all child processes to exit. Since the + * HAL does not support spawning child processes, this returns immediately as + * there can't be anythign to wait for. + * + * ALT_WAIT is mapped onto the wait() system call in alt_syscall.h + */ + +int ALT_WAIT (int *status) +{ + *status = 0; + + ALT_ERRNO = ECHILD; + + return -1; +} + diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_write.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_write.c new file mode 100644 index 0000000..51debb5 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_write.c @@ -0,0 +1,138 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include + +#include "sys/alt_errno.h" +#include "sys/alt_warning.h" +#include "priv/alt_file.h" +#include "os/alt_syscall.h" + +#include "sys/alt_log_printf.h" + +/* + * The write() system call is used to write a block of data to a file or + * device. This function simply vectors the request to the device driver + * associated with the input file descriptor "file". + * + * ALT_WRITE is mapped onto the write() system call in alt_syscall.h + */ + +#ifdef ALT_USE_DIRECT_DRIVERS + +#include "system.h" +#include "sys/alt_driver.h" + +/* + * Provide minimal version that just writes to the stdout/stderr devices + * when provided. + */ + +int ALT_WRITE (int file, const void *ptr, size_t len) +{ +#ifdef ALT_STDOUT_PRESENT + ALT_DRIVER_WRITE_EXTERNS(ALT_STDOUT_DEV); +#endif +#ifdef ALT_STDERR_PRESENT + ALT_DRIVER_WRITE_EXTERNS(ALT_STDERR_DEV); +#endif + +#if !defined(ALT_STDOUT_PRESENT) && !defined(ALT_STDERR_PRESENT) + /* Generate a link time warning, should this function ever be called. */ + ALT_STUB_WARNING(write); +#endif + + switch (file) { +#ifdef ALT_STDOUT_PRESENT + case 1: /* stdout file descriptor */ + return ALT_DRIVER_WRITE(ALT_STDOUT_DEV, ptr, len, 0); +#endif /* ALT_STDOUT_PRESENT */ +#ifdef ALT_STDERR_PRESENT + case 2: /* stderr file descriptor */ + return ALT_DRIVER_WRITE(ALT_STDERR_DEV, ptr, len, 0); +#endif /* ALT_STDERR_PRESENT */ + default: + ALT_ERRNO = EBADFD; + return -1; + } +} + +#else /* !ALT_USE_DIRECT_DRIVERS */ + +int ALT_WRITE (int file, const void *ptr, size_t len) +{ + alt_fd* fd; + int rval; + + /* + * A common error case is that when the file descriptor was created, the call + * to open() failed resulting in a negative file descriptor. This is trapped + * below so that we don't try and process an invalid file descriptor. + */ + + fd = (file < 0) ? NULL : &alt_fd_list[file]; + + if (fd) + { + /* + * If the file has not been opened with write access, or if the driver does + * not provide an implementation of write(), generate an error. Otherwise + * call the drivers write() function to process the request. + */ + + if (((fd->fd_flags & O_ACCMODE) != O_RDONLY) && fd->dev->write) + { + + /* ALT_LOG - see altera_hal/HAL/inc/sys/alt_log_printf.h */ + ALT_LOG_WRITE_FUNCTION(ptr,len); + + if ((rval = fd->dev->write(fd, ptr, len)) < 0) + { + ALT_ERRNO = -rval; + return -1; + } + return rval; + } + else + { + ALT_ERRNO = EACCES; + } + } + else + { + ALT_ERRNO = EBADFD; + } + return -1; +} + +#endif /* ALT_USE_DIRECT_DRIVERS */ diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/altera_nios2_qsys_irq.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/altera_nios2_qsys_irq.c new file mode 100644 index 0000000..c7a4f93 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/HAL/src/altera_nios2_qsys_irq.c @@ -0,0 +1,37 @@ +/* + * Copyright (c) 2009 Altera Corporation, San Jose, California, USA. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + * altera_nios2_irq.c - Support for Nios II internal interrupt controller. + * + */ + +#include "sys/alt_irq.h" +#include "altera_nios2_qsys_irq.h" + +/* + * To initialize the internal interrupt controller, just clear the IENABLE + * register so that all possible IRQs are disabled. + */ +void altera_nios2_qsys_irq_init(void) +{ + NIOS2_WRITE_IENABLE(0); +} diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/crt0.S b/software/qsys_tutorial_lcd4_bsp/HAL/src/crt0.S new file mode 100644 index 0000000..582445d --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/HAL/src/crt0.S @@ -0,0 +1,456 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "system.h" +#include "nios2.h" + +/* Setup header files to work with assembler code. */ +#define ALT_ASM_SRC + +/* Debug logging facility */ +#include "sys/alt_log_printf.h" + +/*************************************************************************\ +| MACROS | +\*************************************************************************/ + +/* + * The new build tools explicitly define macros when alt_load() + * must be called. The define ALT_LOAD_EXPLICITLY_CONTROLLED tells us that + * those macros are controlling if alt_load() needs to be called. + */ +#ifdef ALT_LOAD_EXPLICITLY_CONTROLLED + +/* Need to call alt_load() if any of these sections are being copied. */ +#if defined(ALT_LOAD_COPY_RODATA) || defined(ALT_LOAD_COPY_RWDATA) || defined(ALT_LOAD_COPY_EXCEPTIONS) +#define CALL_ALT_LOAD +#endif + +#else /* !ALT_LOAD_EXPLICITLY_CONTROLLED */ + +/* + * The legacy build tools use the following macros to detect when alt_load() + * needs to be called. + */ + +#define __ALT_LOAD_SECTIONS(res, text, rodata, exc) \ + ((res##_BASE != rodata##_BASE) || \ + (res##_BASE != rwdata##_BASE) || \ + (res##_BASE != exc##_BASE)) + +#define _ALT_LOAD_SECTIONS(res, text, rodata, exc) \ + __ALT_LOAD_SECTIONS(res, text, rodata, exc) + +#define ALT_LOAD_SECTIONS _ALT_LOAD_SECTIONS(ALT_RESET_DEVICE, \ + ALT_RODATA_DEVICE, \ + ALT_RWDATA_DEVICE, \ + ALT_EXCEPTIONS_DEVICE) + +/* Call alt_load() if there is no bootloader and ALT_LOAD_SECTIONS isn't 0. */ +#if defined(ALT_NO_BOOTLOADER) && ALT_LOAD_SECTIONS +#define CALL_ALT_LOAD +#endif + +#endif /* !ALT_LOAD_EXPLICITLY_CONTROLLED */ + +/* + * When the legacy build tools define a macro called ALT_NO_BOOTLOADER, + * it indicates that initialization code is allowed at the reset address. + * The new build tools define a macro called ALT_ALLOW_CODE_AT_RESET for + * the same purpose. + */ +#ifdef ALT_NO_BOOTLOADER +#define ALT_ALLOW_CODE_AT_RESET +#endif + +/*************************************************************************\ +| EXTERNAL REFERENCES | +\*************************************************************************/ + +/* + * The entry point for user code is either "main" in hosted mode, or + * "alt_main" in standalone mode. These are explicitly referenced here, + * to ensure they are built into the executable. This allows the user + * to build them into libraries, rather than supplying them in object + * files at link time. + */ + .globl main + .globl alt_main + +/* + * Create a reference to the software multiply/divide and trap handers, + * so that if they are provided, they will appear in the executable. + */ +#ifndef ALT_NO_INSTRUCTION_EMULATION + .globl alt_exception_muldiv +#endif +#ifdef ALT_TRAP_HANDLER + .globl alt_exception_trap +#endif + +/* + * Linker defined symbols used to initialize bss. + */ +.globl __bss_start +.globl __bss_end + +/*************************************************************************\ +| RESET SECTION (.entry) | +\*************************************************************************/ + +/* + * This is the reset entry point for Nios II. + * + * At reset, only the cache line which contain the reset vector is + * initialized by the hardware. The code within the first cache line + * initializes the remainder of the instruction cache. + */ + + .section .entry, "xa" + .align 5 + +/* + * Explicitly allow the use of r1 (the assembler temporary register) + * within this code. This register is normally reserved for the use of + * the assembler. + */ + .set noat + +/* + * Some tools want to know where the reset vector is. + * Code isn't always provided at the reset vector but at least the + * __reset label always contains the reset vector address because + * it is defined at the start of the .entry section. + */ + + .globl __reset + .type __reset, @function +__reset: + +/* + * Initialize the instruction cache if present (i.e. size > 0) and + * reset code is allowed unless optimizing for RTL simulation. + * RTL simulations can ensure the instruction cache is already initialized + * so skipping this loop speeds up RTL simulation. + */ + +#if NIOS2_ICACHE_SIZE > 0 && defined(ALT_ALLOW_CODE_AT_RESET) && !defined(ALT_SIM_OPTIMIZE) + /* Assume the instruction cache size is always a power of two. */ +#if NIOS2_ICACHE_SIZE > 0x8000 + movhi r2, %hi(NIOS2_ICACHE_SIZE) +#else + movui r2, NIOS2_ICACHE_SIZE +#endif + +0: + initi r2 + addi r2, r2, -NIOS2_ICACHE_LINE_SIZE + bgt r2, zero, 0b +1: + + /* + * The following debug information tells the ISS not to run the loop above + * but to perform its actions using faster internal code. + */ + .pushsection .debug_alt_sim_info + .int 1, 1, 0b, 1b + .popsection +#endif /* Initialize Instruction Cache */ + +/* + * Jump to the _start entry point in the .text section if reset code + * is allowed or if optimizing for RTL simulation. + */ +#if defined(ALT_ALLOW_CODE_AT_RESET) || defined(ALT_SIM_OPTIMIZE) + /* Jump to the _start entry point in the .text section. */ + movhi r1, %hi(_start) + ori r1, r1, %lo(_start) + jmp r1 + + .size __reset, . - __reset +#endif /* Jump to _start */ + +/* + * When not using exit, provide an _exit symbol to prevent unresolved + * references to _exit from the linker script. + */ +#ifdef ALT_NO_EXIT + .globl _exit +_exit: +#endif + +/*************************************************************************\ +| TEXT SECTION (.text) | +\*************************************************************************/ + +/* + * Start of the .text section, and also the code entry point when + * the code is executed by a bootloader rather than directly from reset. + */ + .section .text + .align 2 + + .globl _start + .type _start, @function +_start: + +/* + * Initialize the data cache if present (i.e. size > 0) and not + * optimizing for RTL simulation. + * RTL simulations can ensure the data cache is already initialized + * so skipping this loop speeds up RTL simulation. + */ + +#if NIOS2_DCACHE_SIZE > 0 && !defined(ALT_SIM_OPTIMIZE) + + /* Assume the data cache size is always a power of two. */ +#if NIOS2_DCACHE_SIZE > 0x8000 + movhi r2, %hi(NIOS2_DCACHE_SIZE) +#else + movui r2, NIOS2_DCACHE_SIZE +#endif + +0: + initd 0(r2) + addi r2, r2, -NIOS2_DCACHE_LINE_SIZE + bgt r2, zero, 0b +1: + + /* + * The following debug information tells the ISS not to run the loop above + * but to perform its actions using faster internal code. + */ + .pushsection .debug_alt_sim_info + .int 2, 1, 0b, 1b + .popsection + +#endif /* Initialize Data Cache */ + + /* Log that caches have been initialized. */ + ALT_LOG_PUTS(alt_log_msg_cache) + + /* Log that the stack pointer is about to be setup. */ + ALT_LOG_PUTS(alt_log_msg_stackpointer) + +#if (NIOS2_NUM_OF_SHADOW_REG_SETS == 0) + /* + * Now that the caches are initialized, set up the stack pointer. + * The value provided by the linker is assumed to be correctly aligned. + */ + movhi sp, %hi(__alt_stack_pointer) + ori sp, sp, %lo(__alt_stack_pointer) + + /* Set up the global pointer. */ + movhi gp, %hi(_gp) + ori gp, gp, %lo(_gp) + +#else /* NIOS2_NUM_OF_SHADOW_REG_SETS > 0 */ + + /* + * Set up the GP and SP in all shadow register sets. + */ + + /* + * Check current register set number, if CPU resets into a shadow register + * set, switch register set to 0 by writing zero to SSTATUS register and + * execute an ERET instruction that just jumps to the next PC address + * (use the NEXTPC instruction to get this). + */ + + rdctl r2, status + + /* Get the current register set number (STATUS.CRS). */ + andi r3, r2, NIOS2_STATUS_CRS_MSK + + /* Skip switch register set if STATUS.CRS is 0. */ + beq r3, zero, .Lskip_switch_reg_set + + .set nobreak + + /* Current register set is non-zero, set SSTATUS to 0. */ + mov sstatus, zero + + /* Get next pc and store in ea. */ + nextpc ea + + /* Point to instruction after eret. */ + addi ea, ea, 8 + + /* + * Execute ERET instruction that just jumps to the next PC address + */ + eret + +.Lskip_switch_reg_set: + mov r2, zero + + /* Reset STATUS register */ + wrctl status, r2 + + movui r3, NIOS2_NUM_OF_SHADOW_REG_SETS + + /* Set up the stack pointer in register set 0. */ + movhi sp, %hi(__alt_stack_pointer) + ori sp, sp, %lo(__alt_stack_pointer) + + /* Set up the global pointer in register set 0. */ + movhi gp, %hi(_gp) + ori gp, gp, %lo(_gp) + +.Lsetup_sp_and_gp_loop: + /* + * Setup GP and SP for shadow register set + * from NIOS2_NUM_OF_SHADOW_REG_SETS to 0 + */ + + /* Skip if number of register sets is 0. */ + beq r3, zero, .Lno_shadow_register_set + + + /* Add previous register set STATUS.PRS by 1 */ + movhi r4, 1 + add r2, r2, r4 + + /* Write STATUS */ + wrctl status, r2 + + /* Clear r0 in the shadow register set (not done by hardware) */ + wrprs r0, r0 + + /* Write the GP in previous register set */ + wrprs gp, gp + + /* Only write the SP in previous register set + * if using the seperate exception stack. For normal case (single stack), + * funnel code would read the SP from previous register set. + */ +#ifdef ALT_INTERRUPT_STACK + + movhi et, %hiadj(__alt_interrupt_stack_pointer) + addi et, et, %lo(__alt_interrupt_stack_pointer) + wrprs sp, et + +#endif /* ALT_INTERRUPT_STACK */ + + /* Decrease number of register set counter by 1 */ + addi r3, r3, -1 + + br .Lsetup_sp_and_gp_loop +.Lno_shadow_register_set: + +#endif /* NIOS2_NUM_OF_SHADOW_REG_SETS */ +/* + * Clear the BSS if not optimizing for RTL simulation. + * + * This uses the symbols: __bss_start and __bss_end, which are defined + * by the linker script. They mark the begining and the end of the bss + * region. The linker script guarantees that these values are word aligned. + */ +#ifndef ALT_SIM_OPTIMIZE + /* Log that the BSS is about to be cleared. */ + ALT_LOG_PUTS(alt_log_msg_bss) + + movhi r2, %hi(__bss_start) + ori r2, r2, %lo(__bss_start) + + movhi r3, %hi(__bss_end) + ori r3, r3, %lo(__bss_end) + + beq r2, r3, 1f + +0: + stw zero, (r2) + addi r2, r2, 4 + bltu r2, r3, 0b + +1: + + /* + * The following debug information tells the ISS not to run the loop above + * but to perform its actions using faster internal code. + */ + .pushsection .debug_alt_sim_info + .int 3, 1, 0b, 1b + .popsection +#endif /* ALT_SIM_OPTIMIZE */ + +/* + * The alt_load() facility is normally used when there is no bootloader. + * It copies some sections into RAM so it acts like a mini-bootloader. + */ +#ifdef CALL_ALT_LOAD + +#ifdef ALT_STACK_CHECK + /* + * If the user has selected stack checking then we need to set up a safe + * value in the stack limit register so that the relocation functions + * don't think the stack has overflowed (the contents of the rwdata + * section aren't defined until alt_load() has been called). + */ + mov et, zero +#endif + + call alt_load + +#endif /* CALL_ALT_LOAD */ + +#ifdef ALT_STACK_CHECK + /* + * Set up the stack limit (if required). The linker has set up the + * copy of the variable which is in memory. + */ + + ldw et, %gprel(alt_stack_limit_value)(gp) +#endif + + /* Log that alt_main is about to be called. */ + ALT_LOG_PUTS(alt_log_msg_alt_main) + + /* Call the C entry point. It should never return. */ + call alt_main + + /* Wait in infinite loop in case alt_main does return. */ +alt_after_alt_main: + br alt_after_alt_main + + .size _start, . - _start + +/* + * Add information about the stack base if stack overflow checking is enabled. + */ +#ifdef ALT_STACK_CHECK + .globl alt_stack_limit_value + .section .sdata,"aws",@progbits + .align 2 + .type alt_stack_limit_value, @object + .size alt_stack_limit_value, 4 +alt_stack_limit_value: + .long __alt_stack_limit +#endif diff --git a/software/qsys_tutorial_lcd4_bsp/Makefile b/software/qsys_tutorial_lcd4_bsp/Makefile new file mode 100644 index 0000000..168b158 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/Makefile @@ -0,0 +1,775 @@ +#------------------------------------------------------------------------------ +# BSP MAKEFILE +# +# This makefile was automatically generated by the nios2-bsp-generate-files +# command. Its purpose is to build a custom Board Support Package (BSP) +# targeting a specific Nios II processor in an SOPC Builder-based design. +# +# To create an application or library Makefile which uses this BSP, try the +# nios2-app-generate-makefile or nios2-lib-generate-makefile commands. +#------------------------------------------------------------------------------ + +#------------------------------------------------------------------------------ +# TOOLS +#------------------------------------------------------------------------------ + +MKDIR := mkdir -p +ECHO := echo +SPACE := $(empty) $(empty) + +#------------------------------------------------------------------------------ +# The adjust-path macro +# +# If COMSPEC is defined, Make is launched from Windows through +# Cygwin. This adjust-path macro will call 'cygpath -u' on all +# paths to ensure they are readable by Make. +# +# If COMSPEC is not defined, Make is launched from *nix, and no adjustment +# is necessary +#------------------------------------------------------------------------------ + +ifndef COMSPEC +ifdef ComSpec +COMSPEC = $(ComSpec) +endif # ComSpec +endif # !COMSPEC + +ifdef COMSPEC + adjust-path = $(subst $(SPACE),\$(SPACE),$(shell cygpath -u "$1")) + adjust-path-mixed = $(subst $(SPACE),\$(SPACE),$(shell cygpath -m "$1")) +else + adjust-path = $(subst $(SPACE),\$(SPACE),$1) + adjust-path-mixed = $(subst $(SPACE),\$(SPACE),$1) +endif + +#------------------------------------------------------------------------------ +# DEFAULT TARGET +# +# The default target, "all", must appear before any other target in the +# Makefile. Note that extra prerequisites are added to the "all" rule later. +#------------------------------------------------------------------------------ +.PHONY: all +all: + @$(ECHO) [BSP build complete] + + +#------------------------------------------------------------------------------ +# PATHS & DIRECTORY NAMES +# +# Explicitly locate absolute path of the BSP root +#------------------------------------------------------------------------------ + +BSP_ROOT_DIR := . + +# Define absolute path to the root of the BSP. +ABS_BSP_ROOT := $(call adjust-path-mixed,$(shell pwd)) + +# Stash all BSP object files here +OBJ_DIR := ./obj + +NEWLIB_DIR = $(BSP_ROOT_DIR)/newlib + + +#------------------------------------------------------------------------------ +# MANAGED CONTENT +# +# All content between the lines "START MANAGED" and "END MANAGED" below is +# generated based on variables in the BSP settings file when the +# nios2-bsp-generate-files command is invoked. If you wish to persist any +# information pertaining to the build process, it is recomended that you +# utilize the BSP settings mechanism to do so. +# +# Note that most variable assignments in this section have a corresponding BSP +# setting that can be changed by using the nios2-bsp-create-settings or +# nios2-bsp-update-settings command before nios2-bsp-generate-files; if you +# want any variable set to a specific value when this Makefile is re-generated +# (to prevent hand-edits from being over-written), use the BSP settings +# facilities above. +#------------------------------------------------------------------------------ + +#START MANAGED + +# The following TYPE comment allows tools to identify the 'type' of target this +# makefile is associated with. +# TYPE: BSP_PRIVATE_MAKEFILE + +# This following VERSION comment indicates the version of the tool used to +# generate this makefile. A makefile variable is provided for VERSION as well. +# ACDS_VERSION: 13.0sp1 +ACDS_VERSION := 13.0sp1 + +# This following BUILD_NUMBER comment indicates the build number of the tool +# used to generate this makefile. +# BUILD_NUMBER: 232 + +SETTINGS_FILE := settings.bsp +SOPC_FILE := C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.sopcinfo + +#------------------------------------------------------------------------------- +# TOOL & COMMAND DEFINITIONS +# +# The base command for each build operation are expressed here. Additional +# switches may be expressed here. They will run for all instances of the +# utility. +#------------------------------------------------------------------------------- + +# Archiver command. Creates library files. +AR = nios2-elf-ar + +# Assembler command. Note that CC is used for .S files. +AS = nios2-elf-gcc + +# Custom flags only passed to the archiver. This content of this variable is +# directly passed to the archiver rather than the more standard "ARFLAGS". The +# reason for this is that GNU Make assumes some default content in ARFLAGS. +# This setting defines the value of BSP_ARFLAGS in Makefile. +BSP_ARFLAGS = -src + +# Custom flags only passed to the assembler. This setting defines the value of +# BSP_ASFLAGS in Makefile. +BSP_ASFLAGS = -Wa,-gdwarf2 + +# C/C++ compiler debug level. '-g' provides the default set of debug symbols +# typically required to debug a typical application. Omitting '-g' removes +# debug symbols from the ELF. This setting defines the value of +# BSP_CFLAGS_DEBUG in Makefile. +BSP_CFLAGS_DEBUG = -g + +# C/C++ compiler optimization level. "-O0" = no optimization,"-O2" = "normal" +# optimization, etc. "-O0" is recommended for code that you want to debug since +# compiler optimization can remove variables and produce non-sequential +# execution of code while debugging. This setting defines the value of +# BSP_CFLAGS_OPTIMIZATION in Makefile. +BSP_CFLAGS_OPTIMIZATION = -O0 + +# C/C++ compiler warning level. "-Wall" is commonly used.This setting defines +# the value of BSP_CFLAGS_WARNINGS in Makefile. +BSP_CFLAGS_WARNINGS = -Wall + +# C compiler command. +CC = nios2-elf-gcc -xc + +# C++ compiler command. +CXX = nios2-elf-gcc -xc++ + +# Command used to remove files during 'clean' target. +RM = rm -f + + +#------------------------------------------------------------------------------- +# BUILD PRE & POST PROCESS COMMANDS +# +# The following variables are treated as shell commands in the rule +# definitions for each file-type associated with the BSP build, as well as +# commands run at the beginning and end of the entire BSP build operation. +# Pre-process commands are executed before the relevant command (for example, +# a command defined in the "CC_PRE_PROCESS" variable executes before the C +# compiler for building .c files), while post-process commands are executed +# immediately afterwards. +# +# You can view each pre/post-process command in the "Build Rules: All & +# Clean", "Pattern Rules to Build Objects", and "Library Rules" sections of +# this Makefile. +#------------------------------------------------------------------------------- + + +#------------------------------------------------------------------------------- +# BSP SOURCE BUILD SETTINGS (FLAG GENERATION) +# +# Software build settings such as compiler optimization, debug level, warning +# flags, etc., may be defined in the following variables. The variables below +# are concatenated together in the 'Flags' section of this Makefile to form +# final variables of flags passed to the build tools. +# +# These settings are considered private to the BSP and apply to all library & +# driver files in it; they do NOT automatically propagate to, for example, the +# build settings for an application. +# # For additional detail and syntax requirements, please refer to GCC help +# (example: "nios2-elf-gcc --help --verbose"). +# +# Unless indicated otherwise, multiple entries in each variable should be +# space-separated. +#------------------------------------------------------------------------------- + +# Altera HAL alt_sys_init.c generated source file +GENERATED_C_FILES := $(ABS_BSP_ROOT)/alt_sys_init.c +GENERATED_C_LIB_SRCS += alt_sys_init.c + + +#------------------------------------------------------------------------------- +# BSP SOURCE FILE LISTING +# +# All source files that comprise the BSP are listed here, along with path +# information to each file expressed relative to the BSP root. The precise +# list and location of each file is derived from the driver, operating system, +# or software package source file declarations. +# +# Following specification of the source files for each component, driver, etc., +# each source file type (C, assembly, etc.) is concatenated together and used +# to construct a list of objects. Pattern rules to build each object are then +# used to build each file. +#------------------------------------------------------------------------------- + +# altera_avalon_jtag_uart_driver sources root +altera_avalon_jtag_uart_driver_SRCS_ROOT := drivers + +# altera_avalon_jtag_uart_driver sources +altera_avalon_jtag_uart_driver_C_LIB_SRCS := \ + $(altera_avalon_jtag_uart_driver_SRCS_ROOT)/src/altera_avalon_jtag_uart_init.c \ + $(altera_avalon_jtag_uart_driver_SRCS_ROOT)/src/altera_avalon_jtag_uart_read.c \ + $(altera_avalon_jtag_uart_driver_SRCS_ROOT)/src/altera_avalon_jtag_uart_write.c \ + $(altera_avalon_jtag_uart_driver_SRCS_ROOT)/src/altera_avalon_jtag_uart_ioctl.c \ + $(altera_avalon_jtag_uart_driver_SRCS_ROOT)/src/altera_avalon_jtag_uart_fd.c + +# altera_avalon_lcd_16207_driver sources root +altera_avalon_lcd_16207_driver_SRCS_ROOT := drivers + +# altera_avalon_lcd_16207_driver sources +altera_avalon_lcd_16207_driver_C_LIB_SRCS := \ + $(altera_avalon_lcd_16207_driver_SRCS_ROOT)/src/altera_avalon_lcd_16207.c \ + $(altera_avalon_lcd_16207_driver_SRCS_ROOT)/src/altera_avalon_lcd_16207_fd.c + +# altera_avalon_pio_driver sources root +altera_avalon_pio_driver_SRCS_ROOT := drivers + +# altera_avalon_pio_driver sources +# altera_nios2_qsys_hal_driver sources root +altera_nios2_qsys_hal_driver_SRCS_ROOT := HAL + +# altera_nios2_qsys_hal_driver sources +altera_nios2_qsys_hal_driver_C_LIB_SRCS := \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/altera_nios2_qsys_irq.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_usleep.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_busy_sleep.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_irq_vars.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_icache_flush.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_icache_flush_all.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_dcache_flush.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_dcache_flush_all.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_dcache_flush_no_writeback.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_instruction_exception_entry.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_irq_register.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_iic.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_remap_cached.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_remap_uncached.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_uncached_free.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_uncached_malloc.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_do_ctors.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_do_dtors.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_gmon.c + +altera_nios2_qsys_hal_driver_ASM_LIB_SRCS := \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_exception_entry.S \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_exception_trap.S \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_exception_muldiv.S \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_irq_entry.S \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_software_exception.S \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_mcount.S \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_log_macro.S \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/crt0.S + +# hal sources root +hal_SRCS_ROOT := HAL + +# hal sources +hal_C_LIB_SRCS := \ + $(hal_SRCS_ROOT)/src/alt_alarm_start.c \ + $(hal_SRCS_ROOT)/src/alt_close.c \ + $(hal_SRCS_ROOT)/src/alt_dev.c \ + $(hal_SRCS_ROOT)/src/alt_dev_llist_insert.c \ + $(hal_SRCS_ROOT)/src/alt_dma_rxchan_open.c \ + $(hal_SRCS_ROOT)/src/alt_dma_txchan_open.c \ + $(hal_SRCS_ROOT)/src/alt_environ.c \ + $(hal_SRCS_ROOT)/src/alt_env_lock.c \ + $(hal_SRCS_ROOT)/src/alt_errno.c \ + $(hal_SRCS_ROOT)/src/alt_execve.c \ + $(hal_SRCS_ROOT)/src/alt_exit.c \ + $(hal_SRCS_ROOT)/src/alt_fcntl.c \ + $(hal_SRCS_ROOT)/src/alt_fd_lock.c \ + $(hal_SRCS_ROOT)/src/alt_fd_unlock.c \ + $(hal_SRCS_ROOT)/src/alt_find_dev.c \ + $(hal_SRCS_ROOT)/src/alt_find_file.c \ + $(hal_SRCS_ROOT)/src/alt_flash_dev.c \ + $(hal_SRCS_ROOT)/src/alt_fork.c \ + $(hal_SRCS_ROOT)/src/alt_fs_reg.c \ + $(hal_SRCS_ROOT)/src/alt_fstat.c \ + $(hal_SRCS_ROOT)/src/alt_get_fd.c \ + $(hal_SRCS_ROOT)/src/alt_getchar.c \ + $(hal_SRCS_ROOT)/src/alt_getpid.c \ + $(hal_SRCS_ROOT)/src/alt_gettod.c \ + $(hal_SRCS_ROOT)/src/alt_iic_isr_register.c \ + $(hal_SRCS_ROOT)/src/alt_instruction_exception_register.c \ + $(hal_SRCS_ROOT)/src/alt_ioctl.c \ + $(hal_SRCS_ROOT)/src/alt_io_redirect.c \ + $(hal_SRCS_ROOT)/src/alt_irq_handler.c \ + $(hal_SRCS_ROOT)/src/alt_isatty.c \ + $(hal_SRCS_ROOT)/src/alt_kill.c \ + $(hal_SRCS_ROOT)/src/alt_link.c \ + $(hal_SRCS_ROOT)/src/alt_load.c \ + $(hal_SRCS_ROOT)/src/alt_log_printf.c \ + $(hal_SRCS_ROOT)/src/alt_lseek.c \ + $(hal_SRCS_ROOT)/src/alt_main.c \ + $(hal_SRCS_ROOT)/src/alt_malloc_lock.c \ + $(hal_SRCS_ROOT)/src/alt_open.c \ + $(hal_SRCS_ROOT)/src/alt_printf.c \ + $(hal_SRCS_ROOT)/src/alt_putchar.c \ + $(hal_SRCS_ROOT)/src/alt_putstr.c \ + $(hal_SRCS_ROOT)/src/alt_read.c \ + $(hal_SRCS_ROOT)/src/alt_release_fd.c \ + $(hal_SRCS_ROOT)/src/alt_rename.c \ + $(hal_SRCS_ROOT)/src/alt_sbrk.c \ + $(hal_SRCS_ROOT)/src/alt_settod.c \ + $(hal_SRCS_ROOT)/src/alt_stat.c \ + $(hal_SRCS_ROOT)/src/alt_tick.c \ + $(hal_SRCS_ROOT)/src/alt_times.c \ + $(hal_SRCS_ROOT)/src/alt_unlink.c \ + $(hal_SRCS_ROOT)/src/alt_wait.c \ + $(hal_SRCS_ROOT)/src/alt_write.c + + +# Assemble all component C source files +COMPONENT_C_LIB_SRCS += \ + $(altera_avalon_jtag_uart_driver_C_LIB_SRCS) \ + $(altera_avalon_lcd_16207_driver_C_LIB_SRCS) \ + $(altera_nios2_qsys_hal_driver_C_LIB_SRCS) \ + $(hal_C_LIB_SRCS) + +# Assemble all component assembly source files +COMPONENT_ASM_LIB_SRCS += \ + $(altera_nios2_qsys_hal_driver_ASM_LIB_SRCS) + +# Assemble all component C++ source files +COMPONENT_CPP_LIB_SRCS += \ + +#END MANAGED + +#------------------------------------------------------------------------------ +# PUBLIC.MK +# +# The generated public.mk file contains BSP information that is shared with +# other external makefiles, such as a Nios II application makefile. System- +# dependent information such as hardware-specific compiler flags and +# simulation file generation are stored here. +# +# In addition, public.mk contains include paths that various software, +# such as a device driver, may need for the C compiler. These paths are +# written to public.mk with respect to the BSP root. In public.mk, each +# path is prefixed with a special variable, $(ALT_LIBRARY_ROOT_DIR). The +# purpose of this variable is to allow an external Makefile to append on +# path information to precisely locate paths expressed in public.mk +# Since this is the BSP Makefile, we set ALT_LIBRARY_ROOT_DIR to point right +# here ("."), at the BSP root. +# +# ALT_LIBRARY_ROOT_DIR must always be set before public.mk is included. +#------------------------------------------------------------------------------ +ALT_LIBRARY_ROOT_DIR := . +include public.mk + + +#------------------------------------------------------------------------------ +# FLAGS +# +# Include paths for BSP files are written into the public.mk file and must +# be added to the existing list of pre-processor flags. In addition, "hooks" +# for standard flags left intentionally empty (CFLAGS, CPPFLAGS, ASFLAGS, +# and CXXFLAGS) are provided for conveniently adding to the relevant flags +# on the command-line or via script that calls make. +#------------------------------------------------------------------------------ +# Assemble final list of compiler flags from generated content +BSP_CFLAGS += \ + $(BSP_CFLAGS_DEFINED_SYMBOLS) \ + $(BSP_CFLAGS_UNDEFINED_SYMBOLS) \ + $(BSP_CFLAGS_OPTIMIZATION) \ + $(BSP_CFLAGS_DEBUG) \ + $(BSP_CFLAGS_WARNINGS) \ + $(BSP_CFLAGS_USER_FLAGS) \ + $(ALT_CFLAGS) \ + $(CFLAGS) + +# Make ready the final list of include directories and other C pre-processor +# flags. Each include path is made ready by prefixing it with "-I". +BSP_CPPFLAGS += \ + $(addprefix -I, $(BSP_INC_DIRS)) \ + $(addprefix -I, $(ALT_INCLUDE_DIRS)) \ + $(ALT_CPPFLAGS) \ + $(CPPFLAGS) + +# Finish off assembler flags with any user-provided flags +BSP_ASFLAGS += $(ASFLAGS) + +# Finish off C++ flags with any user-provided flags +BSP_CXXFLAGS += $(CXXFLAGS) + +# And finally, the ordered list +C_SRCS += $(GENERATED_C_LIB_SRCS) \ + $(COMPONENT_C_LIB_SRCS) + +CXX_SRCS += $(GENERATED_CPP_LIB_SRCS) \ + $(COMPONENT_CPP_LIB_SRCS) + +ASM_SRCS += $(GENERATED_ASM_LIB_SRCS) \ + $(COMPONENT_ASM_LIB_SRCS) + + +#------------------------------------------------------------------------------ +# LIST OF GENERATED FILES +# +# A Nios II BSP relies on the generation of several source files used +# by both the BSP and any applications referencing the BSP. +#------------------------------------------------------------------------------ + + +GENERATED_H_FILES := $(ABS_BSP_ROOT)/system.h + +GENERATED_LINKER_SCRIPT := $(ABS_BSP_ROOT)/linker.x + +GENERATED_FILES += $(GENERATED_H_FILES) \ + $(GENERATED_LINKER_SCRIPT) + + +#------------------------------------------------------------------------------ +# SETUP TO BUILD OBJECTS +# +# List of object files which are to be built. This is constructed from the input +# list of C source files (C_SRCS), C++ source files (CXX_SRCS), and assembler +# source file (ASM_SRCS). The permitted file extensions are: +# +# .c .C - for C files +# .cxx .cc .cpp .CXX .CC .CPP - for C++ files +# .S .s - for assembly files +# +# Extended description: The list of objects is a sorted list (duplicates +# removed) of all possible objects, placed beneath the ./obj directory, +# including any path information stored in the "*_SRCS" variable. The +# "patsubst" commands are used to concatenate together multiple file suffix +# types for common files (i.e. c++ as .cxx, .cc, .cpp). +# +# File extensions are case-insensitive in build rules with the exception of +# assembly sources. Nios II assembly sources with the ".S" extension are first +# run through the C preprocessor. Sources with the ".s" extension are not. +#------------------------------------------------------------------------------ +OBJS = $(sort $(addprefix $(OBJ_DIR)/, \ + $(patsubst %.c, %.o, $(patsubst %.C, %.o, $(C_SRCS))) \ + $(patsubst %.cxx, %.o, $(patsubst %.CXX, %.o, \ + $(patsubst %.cc, %.o, $(patsubst %.CC, %.o, \ + $(patsubst %.cpp, %.o, $(patsubst %.CPP, %.o, \ + $(CXX_SRCS) )))))) \ + $(patsubst %.S, %.o, $(patsubst %.s, %.o, $(ASM_SRCS))) )) + +# List of dependancy files for each object file. +DEPS = $(OBJS:.o=.d) + + +# Rules to force your project to rebuild or relink +# .force_relink file will cause any application that depends on this project to relink +# .force_rebuild file will cause this project to rebuild object files +# .force_rebuild_all file will cause this project and any project that depends on this project to rebuild object files + +FORCE_RELINK_DEP := .force_relink +FORCE_REBUILD_DEP := .force_rebuild +FORCE_REBUILD_ALL_DEP := .force_rebuild_all +FORCE_REBUILD_DEP_LIST := $(FORCE_RELINK_DEP) $(FORCE_REBUILD_DEP) $(FORCE_REBUILD_ALL_DEP) + +$(FORCE_REBUILD_DEP_LIST): + +$(OBJS): $(wildcard $(FORCE_REBUILD_DEP)) $(wildcard $(FORCE_REBUILD_ALL_DEP)) + + +#------------------------------------------------------------------------------ +# BUILD RULES: ALL & CLEAN +#------------------------------------------------------------------------------ +.DELETE_ON_ERROR: + +.PHONY: all +all: build_pre_process +all: Makefile $(GENERATED_FILES) $(BSP_LIB) $(NEWLIB_DIR) +all: build_post_process + + +# clean: remove .o/.a/.d +.PHONY: clean +clean: + @$(RM) -r $(BSP_LIB) $(OBJ_DIR) $(FORCE_REBUILD_DEP_LIST) +ifneq ($(wildcard $(NEWLIB_DIR)),) + @$(RM) -r $(NEWLIB_DIR) +endif + @$(ECHO) [BSP clean complete] + + +#------------------------------------------------------------------------------ +# BUILD PRE/POST PROCESS +#------------------------------------------------------------------------------ +build_pre_process : + $(BUILD_PRE_PROCESS) + +build_post_process : + $(BUILD_POST_PROCESS) + +.PHONY: build_pre_process build_post_process + + + +#------------------------------------------------------------------------------ +# MAKEFILE UP TO DATE? +# +# Is this very Makefile up to date? Someone may have changed the BSP settings +# file or the associated target hardware. +#------------------------------------------------------------------------------ +# Skip this check when clean is the only target +ifneq ($(MAKECMDGOALS),clean) + +ifneq ($(wildcard $(SETTINGS_FILE)),$(SETTINGS_FILE)) +$(warning Warning: BSP Settings File $(SETTINGS_FILE) could not be found.) +endif + +Makefile: $(wildcard $(SETTINGS_FILE)) + @$(ECHO) Makefile not up to date. + @$(ECHO) $(SETTINGS_FILE) has been modified since the BSP Makefile was generated. + @$(ECHO) + @$(ECHO) Generate the BSP to update the Makefile, and then build again. + @$(ECHO) + @$(ECHO) To generate from Eclipse: + @$(ECHO) " 1. Right-click the BSP project." + @$(ECHO) " 2. In the Nios II Menu, click Generate BSP." + @$(ECHO) + @$(ECHO) To generate from the command line: + @$(ECHO) " nios2-bsp-generate-files --settings= --bsp-dir=" + @$(ECHO) + @exit 1 + +ifneq ($(wildcard $(SOPC_FILE)),$(SOPC_FILE)) +$(warning Warning: SOPC File $(SOPC_FILE) could not be found.) +endif + +public.mk: $(wildcard $(SOPC_FILE)) + @$(ECHO) Makefile not up to date. + @$(ECHO) $(SOPC_FILE) has been modified since the BSP was generated. + @$(ECHO) + @$(ECHO) Generate the BSP to update the Makefile, and then build again. + @$(ECHO) + @$(ECHO) To generate from Eclipse: + @$(ECHO) " 1. Right-click the BSP project." + @$(ECHO) " 2. In the Nios II Menu, click Generate BSP." + @$(ECHO) + @$(ECHO) To generate from the command line: + @$(ECHO) " nios2-bsp-generate-files --settings= --bsp-dir=" + @$(ECHO) + @exit 1 + +endif # $(MAKECMDGOALS) != clean + +#------------------------------------------------------------------------------ +# PATTERN RULES TO BUILD OBJECTS +#------------------------------------------------------------------------------ +$(OBJ_DIR)/%.o: %.c + @$(ECHO) Compiling $( + +/* + * Device headers + */ + +#include "altera_nios2_qsys_irq.h" +#include "altera_avalon_jtag_uart.h" +#include "altera_avalon_lcd_16207.h" + +/* + * Allocate the device storage + */ + +ALTERA_NIOS2_QSYS_IRQ_INSTANCE ( NIOS2_PROCESSOR, nios2_processor); +ALTERA_AVALON_JTAG_UART_INSTANCE ( JTAG_UART, jtag_uart); +ALTERA_AVALON_LCD_16207_INSTANCE ( LCD_16207_0, lcd_16207_0); + +/* + * Initialize the interrupt controller devices + * and then enable interrupts in the CPU. + * Called before alt_sys_init(). + * The "base" parameter is ignored and only + * present for backwards-compatibility. + */ + +void alt_irq_init ( const void* base ) +{ + ALTERA_NIOS2_QSYS_IRQ_INIT ( NIOS2_PROCESSOR, nios2_processor); + alt_irq_cpu_enable_interrupts(); +} + +/* + * Initialize the non-interrupt controller devices. + * Called after alt_irq_init(). + */ + +void alt_sys_init( void ) +{ + ALTERA_AVALON_JTAG_UART_INIT ( JTAG_UART, jtag_uart); + ALTERA_AVALON_LCD_16207_INIT ( LCD_16207_0, lcd_16207_0); +} diff --git a/software/qsys_tutorial_lcd4_bsp/create-this-bsp b/software/qsys_tutorial_lcd4_bsp/create-this-bsp new file mode 100644 index 0000000..e8d0dc7 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/create-this-bsp @@ -0,0 +1,49 @@ +#!/bin/bash +# +# This script creates the ucosii_net_zipfs Board Support Package (BSP). + +BSP_TYPE=hal +BSP_DIR=. +SOPC_DIR=../../ +SOPC_FILE=C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.sopcinfo +NIOS2_BSP_ARGS="" +CPU_NAME= + + +# Don't run make if create-this-app script is called with --no-make arg +SKIP_MAKE= +while [ $# -gt 0 ] +do + case "$1" in + --no-make) + SKIP_MAKE=1 + ;; + *) + NIOS2_BSP_ARGS="$NIOS2_BSP_ARGS $1" + ;; + esac + shift +done + + +# Run nios2-bsp utility to create a hal BSP in this directory +# for the system with a .sopc file in $SOPC_FILE. +# Deprecating $SOPC_DIR in 10.1. Multiple .sopcinfo files in a directory may exist. + +if [ -z "$SOPC_FILE" ]; then + echo "WARNING: Use of a directory for locating a .sopcinfo file is deprecated in 10.1. Multiple .sopcinfo files may exist. You must specify the full .sopcinfo path." + cmd="nios2-bsp $BSP_TYPE $BSP_DIR $SOPC_DIR $NIOS2_BSP_ARGS $CPU_NAME" +else + cmd="nios2-bsp $BSP_TYPE $BSP_DIR $SOPC_FILE $NIOS2_BSP_ARGS $CPU_NAME" +fi + + +echo "create-this-bsp: Running \"$cmd\"" +$cmd || { + echo "$cmd failed" + exit 1 +} +if [ -z "$SKIP_MAKE" ]; then + echo "create-this-bsp: Running make" + make +fi diff --git a/software/qsys_tutorial_lcd4_bsp/drivers/inc/altera_avalon_jtag_uart.h b/software/qsys_tutorial_lcd4_bsp/drivers/inc/altera_avalon_jtag_uart.h new file mode 100644 index 0000000..95d4a99 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/drivers/inc/altera_avalon_jtag_uart.h @@ -0,0 +1,198 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#ifndef __ALT_AVALON_JTAG_UART_H__ +#define __ALT_AVALON_JTAG_UART_H__ + +#include + +#include "sys/alt_alarm.h" +#include "sys/alt_warning.h" + +#include "os/alt_sem.h" +#include "os/alt_flag.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * If the user wants all drivers to be small rather than fast then make sure + * this one is marked as needing to be small. + */ +#if defined ALT_USE_SMALL_DRIVERS && !defined ALTERA_AVALON_JTAG_UART_SMALL +#define ALTERA_AVALON_JTAG_UART_SMALL +#endif + +/* + * If the user wants to ignore FIFO full error after timeout + */ +#if defined ALT_JTAG_UART_IGNORE_FIFO_FULL_ERROR && !defined ALTERA_AVALON_JTAG_UART_IGNORE_FIFO_FULL_ERROR +#define ALTERA_AVALON_JTAG_UART_IGNORE_FIFO_FULL_ERROR +#endif + +/* + * Constants that can be overriden. + */ +#ifndef ALTERA_AVALON_JTAG_UART_DEFAULT_TIMEOUT +#define ALTERA_AVALON_JTAG_UART_DEFAULT_TIMEOUT 10 +#endif + +#ifndef ALTERA_AVALON_JTAG_UART_BUF_LEN +#define ALTERA_AVALON_JTAG_UART_BUF_LEN 2048 +#endif + +/* + * ALT_JTAG_UART_READ_RDY and ALT_JTAG_UART_WRITE_RDY are the bitmasks + * that define uC/OS-II event flags that are releated to this device. + * + * ALT_JTAG_UART_READ_RDY indicates that there is read data in the buffer + * ready to be processed. ALT_JTAG_UART_WRITE_RDY indicates that the transmitter is + * ready for more data. + */ +#define ALT_JTAG_UART_READ_RDY 0x1 +#define ALT_JTAG_UART_WRITE_RDY 0x2 +#define ALT_JTAG_UART_TIMEOUT 0x4 + +/* + * State structure definition. Each instance of the driver uses one + * of these structures to hold its associated state. + */ + +typedef struct altera_avalon_jtag_uart_state_s +{ + unsigned int base; + +#ifndef ALTERA_AVALON_JTAG_UART_SMALL + + unsigned int timeout; /* Timeout until host is assumed inactive */ + alt_alarm alarm; + unsigned int irq_enable; + unsigned int host_inactive; + + ALT_SEM (read_lock) + ALT_SEM (write_lock) + ALT_FLAG_GRP (events) + + /* The variables below are volatile because they are modified by the + * interrupt routine. Making them volatile and reading them atomically + * means that we don't need any large critical sections. + */ + volatile unsigned int rx_in; + unsigned int rx_out; + unsigned int tx_in; + volatile unsigned int tx_out; + char rx_buf[ALTERA_AVALON_JTAG_UART_BUF_LEN]; + char tx_buf[ALTERA_AVALON_JTAG_UART_BUF_LEN]; + +#endif /* !ALTERA_AVALON_JTAG_UART_SMALL */ + +} altera_avalon_jtag_uart_state; + +/* + * Macros used by alt_sys_init when the ALT file descriptor facility isn't used. + */ + +#ifdef ALTERA_AVALON_JTAG_UART_SMALL + +#define ALTERA_AVALON_JTAG_UART_STATE_INSTANCE(name, state) \ + altera_avalon_jtag_uart_state state = \ + { \ + name##_BASE, \ + } + +#define ALTERA_AVALON_JTAG_UART_STATE_INIT(name, state) + +#else /* !ALTERA_AVALON_JTAG_UART_SMALL */ + +#define ALTERA_AVALON_JTAG_UART_STATE_INSTANCE(name, state) \ + altera_avalon_jtag_uart_state state = \ + { \ + name##_BASE, \ + ALTERA_AVALON_JTAG_UART_DEFAULT_TIMEOUT, \ + } + +/* + * Externally referenced routines + */ +extern void altera_avalon_jtag_uart_init(altera_avalon_jtag_uart_state* sp, + int irq_controller_id, int irq); + +#define ALTERA_AVALON_JTAG_UART_STATE_INIT(name, state) \ + { \ + if (name##_IRQ == ALT_IRQ_NOT_CONNECTED) \ + { \ + ALT_LINK_ERROR ("Error: Interrupt not connected for " #name ". " \ + "You have selected the interrupt driven version of " \ + "the ALTERA Avalon JTAG UART driver, but the " \ + "interrupt is not connected for this device. You can " \ + "select a polled mode driver by checking the 'small " \ + "driver' option in the HAL configuration window, or " \ + "by using the -DALTERA_AVALON_JTAG_UART_SMALL " \ + "preprocessor flag."); \ + } \ + else \ + altera_avalon_jtag_uart_init(&state, \ + name##_IRQ_INTERRUPT_CONTROLLER_ID, \ + name##_IRQ); \ + } + +#endif /* ALTERA_AVALON_JTAG_UART_SMALL */ + +/* + * Include in case non-direct version of driver required. + */ +#include "altera_avalon_jtag_uart_fd.h" + +/* + * Map alt_sys_init macros to direct or non-direct versions. + */ +#ifdef ALT_USE_DIRECT_DRIVERS + +#define ALTERA_AVALON_JTAG_UART_INSTANCE(name, state) \ + ALTERA_AVALON_JTAG_UART_STATE_INSTANCE(name, state) +#define ALTERA_AVALON_JTAG_UART_INIT(name, state) \ + ALTERA_AVALON_JTAG_UART_STATE_INIT(name, state) + +#else /* !ALT_USE_DIRECT_DRIVERS */ + +#define ALTERA_AVALON_JTAG_UART_INSTANCE(name, dev) \ + ALTERA_AVALON_JTAG_UART_DEV_INSTANCE(name, dev) +#define ALTERA_AVALON_JTAG_UART_INIT(name, dev) \ + ALTERA_AVALON_JTAG_UART_DEV_INIT(name, dev) + +#endif /* ALT_USE_DIRECT_DRIVERS */ + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __ALT_AVALON_JTAG_UART_H__ */ diff --git a/software/qsys_tutorial_lcd4_bsp/drivers/inc/altera_avalon_jtag_uart_fd.h b/software/qsys_tutorial_lcd4_bsp/drivers/inc/altera_avalon_jtag_uart_fd.h new file mode 100644 index 0000000..b3c3200 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/drivers/inc/altera_avalon_jtag_uart_fd.h @@ -0,0 +1,125 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2007 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#ifndef __ALT_AVALON_JTAG_UART_FD_H__ +#define __ALT_AVALON_JTAG_UART_FD_H__ + +#include "sys/alt_dev.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * Externally referenced routines + */ +extern int altera_avalon_jtag_uart_read_fd (alt_fd* fd, char* ptr, int len); +extern int altera_avalon_jtag_uart_write_fd (alt_fd* fd, const char* ptr, + int len); + +/* + * Device structure definition. This is needed by alt_sys_init in order to + * reserve memory for the device instance. + */ + +typedef struct altera_avalon_jtag_uart_dev_s +{ + alt_dev dev; + altera_avalon_jtag_uart_state state; +} altera_avalon_jtag_uart_dev; + +/* + * Macros used by alt_sys_init when the ALT file descriptor facility is used. + */ + +#ifdef ALTERA_AVALON_JTAG_UART_SMALL + +#define ALTERA_AVALON_JTAG_UART_DEV_INSTANCE(name, d) \ + static altera_avalon_jtag_uart_dev d = \ + { \ + { \ + ALT_LLIST_ENTRY, \ + name##_NAME, \ + NULL, /* open */ \ + NULL, /* close */ \ + altera_avalon_jtag_uart_read_fd, \ + altera_avalon_jtag_uart_write_fd, \ + NULL, /* lseek */ \ + NULL, /* fstat */ \ + NULL, /* ioctl */ \ + }, \ + { \ + name##_BASE, \ + } \ + } + +#define ALTERA_AVALON_JTAG_UART_DEV_INIT(name, d) alt_dev_reg (&d.dev) + +#else /* !ALTERA_AVALON_JTAG_UART_SMALL */ + +extern int altera_avalon_jtag_uart_close_fd(alt_fd* fd); +extern int altera_avalon_jtag_uart_ioctl_fd (alt_fd* fd, int req, void* arg); + +#define ALTERA_AVALON_JTAG_UART_DEV_INSTANCE(name, d) \ + static altera_avalon_jtag_uart_dev d = \ + { \ + { \ + ALT_LLIST_ENTRY, \ + name##_NAME, \ + NULL, /* open */ \ + altera_avalon_jtag_uart_close_fd, \ + altera_avalon_jtag_uart_read_fd, \ + altera_avalon_jtag_uart_write_fd, \ + NULL, /* lseek */ \ + NULL, /* fstat */ \ + altera_avalon_jtag_uart_ioctl_fd, \ + }, \ + { \ + name##_BASE, \ + ALTERA_AVALON_JTAG_UART_DEFAULT_TIMEOUT, \ + } \ + } + +#define ALTERA_AVALON_JTAG_UART_DEV_INIT(name, d) \ + { \ + ALTERA_AVALON_JTAG_UART_STATE_INIT(name, d.state); \ + \ + /* make the device available to the system */ \ + alt_dev_reg(&d.dev); \ + } + +#endif /* ALTERA_AVALON_JTAG_UART_SMALL */ + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __ALT_AVALON_JTAG_UART_FD_H__ */ diff --git a/software/qsys_tutorial_lcd4_bsp/drivers/inc/altera_avalon_jtag_uart_regs.h b/software/qsys_tutorial_lcd4_bsp/drivers/inc/altera_avalon_jtag_uart_regs.h new file mode 100644 index 0000000..7f97160 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/drivers/inc/altera_avalon_jtag_uart_regs.h @@ -0,0 +1,73 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#ifndef __ALTERA_AVALON_JTAG_UART_REGS_H__ +#define __ALTERA_AVALON_JTAG_UART_REGS_H__ + +#include + +#define ALTERA_AVALON_JTAG_UART_DATA_REG 0 +#define IOADDR_ALTERA_AVALON_JTAG_UART_DATA(base) \ + __IO_CALC_ADDRESS_NATIVE(base, ALTERA_AVALON_JTAG_UART_DATA_REG) +#define IORD_ALTERA_AVALON_JTAG_UART_DATA(base) \ + IORD(base, ALTERA_AVALON_JTAG_UART_DATA_REG) +#define IOWR_ALTERA_AVALON_JTAG_UART_DATA(base, data) \ + IOWR(base, ALTERA_AVALON_JTAG_UART_DATA_REG, data) + +#define ALTERA_AVALON_JTAG_UART_DATA_DATA_MSK (0x000000FF) +#define ALTERA_AVALON_JTAG_UART_DATA_DATA_OFST (0) +#define ALTERA_AVALON_JTAG_UART_DATA_RVALID_MSK (0x00008000) +#define ALTERA_AVALON_JTAG_UART_DATA_RVALID_OFST (15) +#define ALTERA_AVALON_JTAG_UART_DATA_RAVAIL_MSK (0xFFFF0000) +#define ALTERA_AVALON_JTAG_UART_DATA_RAVAIL_OFST (16) + + +#define ALTERA_AVALON_JTAG_UART_CONTROL_REG 1 +#define IOADDR_ALTERA_AVALON_JTAG_UART_CONTROL(base) \ + __IO_CALC_ADDRESS_NATIVE(base, ALTERA_AVALON_JTAG_UART_CONTROL_REG) +#define IORD_ALTERA_AVALON_JTAG_UART_CONTROL(base) \ + IORD(base, ALTERA_AVALON_JTAG_UART_CONTROL_REG) +#define IOWR_ALTERA_AVALON_JTAG_UART_CONTROL(base, data) \ + IOWR(base, ALTERA_AVALON_JTAG_UART_CONTROL_REG, data) + +#define ALTERA_AVALON_JTAG_UART_CONTROL_RE_MSK (0x00000001) +#define ALTERA_AVALON_JTAG_UART_CONTROL_RE_OFST (0) +#define ALTERA_AVALON_JTAG_UART_CONTROL_WE_MSK (0x00000002) +#define ALTERA_AVALON_JTAG_UART_CONTROL_WE_OFST (1) +#define ALTERA_AVALON_JTAG_UART_CONTROL_RI_MSK (0x00000100) +#define ALTERA_AVALON_JTAG_UART_CONTROL_RI_OFST (8) +#define ALTERA_AVALON_JTAG_UART_CONTROL_WI_MSK (0x00000200) +#define ALTERA_AVALON_JTAG_UART_CONTROL_WI_OFST (9) +#define ALTERA_AVALON_JTAG_UART_CONTROL_AC_MSK (0x00000400) +#define ALTERA_AVALON_JTAG_UART_CONTROL_AC_OFST (10) +#define ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_MSK (0xFFFF0000) +#define ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_OFST (16) + +#endif /* __ALTERA_AVALON_JTAG_UART_REGS_H__ */ diff --git a/software/qsys_tutorial_lcd4_bsp/drivers/inc/altera_avalon_lcd_16207.h b/software/qsys_tutorial_lcd4_bsp/drivers/inc/altera_avalon_lcd_16207.h new file mode 100644 index 0000000..2024b9a --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/drivers/inc/altera_avalon_lcd_16207.h @@ -0,0 +1,158 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#ifndef __ALTERA_AVALON_LCD_16207_H__ +#define __ALTERA_AVALON_LCD_16207_H__ + +#include + +#include "sys/alt_alarm.h" +#include "os/alt_sem.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * The altera_avalon_lcd_16207_dev structure is used to hold device specific + * data. This includes the transmit and receive buffers. + * + * An instance of this structure is created in the auto-generated + * alt_sys_init.c file for each UART listed in the systems PTF file. This is + * done using the ALTERA_AVALON_LCD_16207_STATE_INSTANCE macro given below. + */ + +#define ALT_LCD_HEIGHT 2 +#define ALT_LCD_WIDTH 16 +#define ALT_LCD_VIRTUAL_WIDTH 80 + +typedef struct altera_avalon_lcd_16207_state_s +{ + int base; + + alt_alarm alarm; + int period; + + char broken; + + unsigned char x; + unsigned char y; + char address; + char esccount; + + char scrollpos; + char scrollmax; + char active; /* If non-zero then the foreground routines are + * active so the timer call must not update the + * display. */ + + char escape[8]; + + struct + { + char visible[ALT_LCD_WIDTH]; + char data[ALT_LCD_VIRTUAL_WIDTH+1]; + char width; + unsigned char speed; + + } line[ALT_LCD_HEIGHT]; + + ALT_SEM (write_lock)/* Semaphore used to control access to the + * write buffer in multi-threaded mode */ +} altera_avalon_lcd_16207_state; + +/* + * Called by alt_sys_init.c to initialize the driver. + */ +extern void altera_avalon_lcd_16207_init(altera_avalon_lcd_16207_state* sp); + +/* + * The LCD panel driver is not trivial, so leave it out in the small + * drivers case. Also leave it out in simulation because there is no + * simulated hardware for the LCD panel. These two can be overridden + * by defining ALT_USE_LCE_16207 if you really want it. + */ + +#if (!defined(ALT_USE_SMALL_DRIVERS) && !defined(ALT_SIM_OPTIMIZE)) || defined ALT_USE_LCD_16207 + +/* + * Used by the auto-generated file + * alt_sys_init.c to create an instance of this device driver. + */ +#define ALTERA_AVALON_LCD_16207_STATE_INSTANCE(name, state) \ + altera_avalon_lcd_16207_state state = \ + { \ + name##_BASE \ + } + +/* + * The macro ALTERA_AVALON_LCD_16207_INIT is used by the auto-generated file + * alt_sys_init.c to initialize an instance of the device driver. + */ +#define ALTERA_AVALON_LCD_16207_STATE_INIT(name, state) \ + altera_avalon_lcd_16207_init(&state) + +#else /* exclude driver */ + +#define ALTERA_AVALON_LCD_16207_STATE_INSTANCE(name, state) extern int alt_no_storage +#define ALTERA_AVALON_LCD_16207_STATE_INIT(name, state) while (0) + +#endif /* exclude driver */ + +/* + * Include in case non-direct version of driver required. + */ +#include "altera_avalon_lcd_16207_fd.h" + +/* + * Map alt_sys_init macros to direct or non-direct versions. + */ +#ifdef ALT_USE_DIRECT_DRIVERS + +#define ALTERA_AVALON_LCD_16207_INSTANCE(name, state) \ + ALTERA_AVALON_LCD_16207_STATE_INSTANCE(name, state) +#define ALTERA_AVALON_LCD_16207_INIT(name, state) \ + ALTERA_AVALON_LCD_16207_STATE_INIT(name, state) + +#else /* !ALT_USE_DIRECT_DRIVERS */ + +#define ALTERA_AVALON_LCD_16207_INSTANCE(name, dev) \ + ALTERA_AVALON_LCD_16207_DEV_INSTANCE(name, dev) +#define ALTERA_AVALON_LCD_16207_INIT(name, dev) \ + ALTERA_AVALON_LCD_16207_DEV_INIT(name, dev) + +#endif /* ALT_USE_DIRECT_DRIVERS */ + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __ALTERA_AVALON_LCD_16207_H__ */ diff --git a/software/qsys_tutorial_lcd4_bsp/drivers/inc/altera_avalon_lcd_16207_fd.h b/software/qsys_tutorial_lcd4_bsp/drivers/inc/altera_avalon_lcd_16207_fd.h new file mode 100644 index 0000000..370927b --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/drivers/inc/altera_avalon_lcd_16207_fd.h @@ -0,0 +1,108 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#ifndef __ALTERA_AVALON_LCD_16207_FD_H__ +#define __ALTERA_AVALON_LCD_16207_FD_H__ + +#include "sys/alt_dev.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * Externally referenced routines + */ +extern int altera_avalon_lcd_16207_write_fd(alt_fd* fd, const char* ptr, + int len); + +/* + * Device structure definition. This is needed by alt_sys_init in order to + * reserve memory for the device instance. + */ + +typedef struct altera_avalon_lcd_16207_dev_s +{ + alt_dev dev; + altera_avalon_lcd_16207_state state; +} altera_avalon_lcd_16207_dev; + +/* + * The LCD panel driver is not trivial, so leave it out in the small + * drivers case. Also leave it out in simulation because there is no + * simulated hardware for the LCD panel. These two can be overridden + * by defining ALT_USE_LCE_16207 if you really want it. + */ + +#if (!defined(ALT_USE_SMALL_DRIVERS) && !defined(ALT_SIM_OPTIMIZE)) || defined ALT_USE_LCD_16207 + +/* + * Macros used by alt_sys_init when the ALT file descriptor facility is used. + */ +#define ALTERA_AVALON_LCD_16207_DEV_INSTANCE(name, d) \ + static altera_avalon_lcd_16207_dev d = \ + { \ + { \ + ALT_LLIST_ENTRY, \ + name##_NAME, \ + NULL, /* open */ \ + NULL, /* close */ \ + NULL, /* read */ \ + altera_avalon_lcd_16207_write_fd, \ + NULL, /* lseek */ \ + NULL, /* fstat */ \ + NULL, /* ioctl */ \ + }, \ + { \ + name##_BASE \ + }, \ + } + +#define ALTERA_AVALON_LCD_16207_DEV_INIT(name, d) \ + { \ + ALTERA_AVALON_LCD_16207_STATE_INIT(name, d.state); \ + \ + /* make the device available to the system */ \ + alt_dev_reg(&d.dev); \ + } + +#else /* exclude driver */ + +#define ALTERA_AVALON_LCD_16207_DEV_INSTANCE(name, d) extern int alt_no_storage +#define ALTERA_AVALON_LCD_16207_DEV_INIT(name, d) while (0) + +#endif + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __ALTERA_AVALON_LCD_16207_FD_H__ */ diff --git a/software/qsys_tutorial_lcd4_bsp/drivers/inc/altera_avalon_lcd_16207_regs.h b/software/qsys_tutorial_lcd4_bsp/drivers/inc/altera_avalon_lcd_16207_regs.h new file mode 100644 index 0000000..79e29a6 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/drivers/inc/altera_avalon_lcd_16207_regs.h @@ -0,0 +1,83 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#ifndef __ALTERA_AVALON_LCD_16207_REGS_H__ +#define __ALTERA_AVALON_LCD_16207_REGS_H__ + +/* +/////////////////////////////////////////////////////////////////////////// +// +// ALTERA_AVALON_LCD_16207 PERIPHERAL +// +// Provides a hardware interface that allows software to +// access the two (2) internal 8-bit registers in an Optrex +// model 16207 (or equivalent) character LCD display (the kind +// shipped with the Nios Development Kit, 2 rows x 16 columns). +// +// Because the interface to the LCD module is "not quite Avalon," +// the hardware in this module ends-up mapping the module's +// two physical read-write registers into four Avalon-visible +// registers: Two read-only registers and two write-only registers. +// A picture is worth a thousand words: +// +// THE REGISTER MAP +// +// 7 6 5 4 3 2 1 0 Offset +// +-----+-----+-----+-----+-----+-----+-----+-----+ +// RS = 0 | Command Register (WRITE-Only) | 0 +// +-----+-----+-----+-----+-----+-----+-----+-----+ +// RS = 0 | Status Register (READ -Only) | 1 +// +-----+-----+-----+-----+-----+-----+-----+-----+ +// RS = 1 | Data Register (WRITE-Only) | 2 +// +-----+-----+-----+-----+-----+-----+-----+-----+ +// RS = 1 | Data Register (READ -Only) | 3 +// +-----+-----+-----+-----+-----+-----+-----+-----+ +// +/////////////////////////////////////////////////////////////////////////// +*/ + +#include + +#define IOADDR_ALTERA_AVALON_LCD_16207_COMMAND(base) __IO_CALC_ADDRESS_NATIVE(base, 0) +#define IOWR_ALTERA_AVALON_LCD_16207_COMMAND(base, data) IOWR(base, 0, data) + +#define IOADDR_ALTERA_AVALON_LCD_16207_STATUS(base) __IO_CALC_ADDRESS_NATIVE(base, 1) +#define IORD_ALTERA_AVALON_LCD_16207_STATUS(base) IORD(base, 1) + +#define ALTERA_AVALON_LCD_16207_STATUS_BUSY_MSK (0x00000080u) +#define ALTERA_AVALON_LCD_16207_STATUS_BUSY_OFST (7) + +#define IOADDR_ALTERA_AVALON_LCD_16207_DATA_WR(base) __IO_CALC_ADDRESS_NATIVE(base, 2) +#define IOWR_ALTERA_AVALON_LCD_16207_DATA(base, data) IOWR(base, 2, data) + +#define IOADDR_ALTERA_AVALON_LCD_16207_DATA_RD(base) __IO_CALC_ADDRESS_NATIVE(base, 3) +#define IORD_ALTERA_AVALON_LCD_16207_DATA(base) IORD(base, 3) + +#endif diff --git a/software/qsys_tutorial_lcd4_bsp/drivers/inc/altera_avalon_pio_regs.h b/software/qsys_tutorial_lcd4_bsp/drivers/inc/altera_avalon_pio_regs.h new file mode 100644 index 0000000..052439f --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/drivers/inc/altera_avalon_pio_regs.h @@ -0,0 +1,67 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#ifndef __ALTERA_AVALON_PIO_REGS_H__ +#define __ALTERA_AVALON_PIO_REGS_H__ + +#include + +#define IOADDR_ALTERA_AVALON_PIO_DATA(base) __IO_CALC_ADDRESS_NATIVE(base, 0) +#define IORD_ALTERA_AVALON_PIO_DATA(base) IORD(base, 0) +#define IOWR_ALTERA_AVALON_PIO_DATA(base, data) IOWR(base, 0, data) + +#define IOADDR_ALTERA_AVALON_PIO_DIRECTION(base) __IO_CALC_ADDRESS_NATIVE(base, 1) +#define IORD_ALTERA_AVALON_PIO_DIRECTION(base) IORD(base, 1) +#define IOWR_ALTERA_AVALON_PIO_DIRECTION(base, data) IOWR(base, 1, data) + +#define IOADDR_ALTERA_AVALON_PIO_IRQ_MASK(base) __IO_CALC_ADDRESS_NATIVE(base, 2) +#define IORD_ALTERA_AVALON_PIO_IRQ_MASK(base) IORD(base, 2) +#define IOWR_ALTERA_AVALON_PIO_IRQ_MASK(base, data) IOWR(base, 2, data) + +#define IOADDR_ALTERA_AVALON_PIO_EDGE_CAP(base) __IO_CALC_ADDRESS_NATIVE(base, 3) +#define IORD_ALTERA_AVALON_PIO_EDGE_CAP(base) IORD(base, 3) +#define IOWR_ALTERA_AVALON_PIO_EDGE_CAP(base, data) IOWR(base, 3, data) + + +#define IOADDR_ALTERA_AVALON_PIO_SET_BIT(base) __IO_CALC_ADDRESS_NATIVE(base, 4) +#define IORD_ALTERA_AVALON_PIO_SET_BITS(base) IORD(base, 4) +#define IOWR_ALTERA_AVALON_PIO_SET_BITS(base, data) IOWR(base, 4, data) + +#define IOADDR_ALTERA_AVALON_PIO_CLEAR_BITS(base) __IO_CALC_ADDRESS_NATIVE(base, 5) +#define IORD_ALTERA_AVALON_PIO_CLEAR_BITS(base) IORD(base, 5) +#define IOWR_ALTERA_AVALON_PIO_CLEAR_BITS(base, data) IOWR(base, 5, data) + + + +/* Defintions for direction-register operation with bi-directional PIOs */ +#define ALTERA_AVALON_PIO_DIRECTION_INPUT 0 +#define ALTERA_AVALON_PIO_DIRECTION_OUTPUT 1 + +#endif /* __ALTERA_AVALON_PIO_REGS_H__ */ diff --git a/software/qsys_tutorial_lcd4_bsp/drivers/src/altera_avalon_jtag_uart_fd.c b/software/qsys_tutorial_lcd4_bsp/drivers/src/altera_avalon_jtag_uart_fd.c new file mode 100644 index 0000000..53dfc3b --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/drivers/src/altera_avalon_jtag_uart_fd.c @@ -0,0 +1,86 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2007 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "alt_types.h" +#include "sys/alt_dev.h" +#include "altera_avalon_jtag_uart.h" + +extern int altera_avalon_jtag_uart_read(altera_avalon_jtag_uart_state* sp, + char* buffer, int space, int flags); +extern int altera_avalon_jtag_uart_write(altera_avalon_jtag_uart_state* sp, + const char* ptr, int count, int flags); +extern int altera_avalon_jtag_uart_ioctl(altera_avalon_jtag_uart_state* sp, + int req, void* arg); +extern int altera_avalon_jtag_uart_close(altera_avalon_jtag_uart_state* sp, + int flags); + +/* ----------------------------------------------------------------------- */ +/* --------------------- WRAPPERS FOR ALT FD SUPPORT --------------------- */ +/* + * + */ + +int +altera_avalon_jtag_uart_read_fd(alt_fd* fd, char* buffer, int space) +{ + altera_avalon_jtag_uart_dev* dev = (altera_avalon_jtag_uart_dev*) fd->dev; + + return altera_avalon_jtag_uart_read(&dev->state, buffer, space, + fd->fd_flags); +} + +int +altera_avalon_jtag_uart_write_fd(alt_fd* fd, const char* buffer, int space) +{ + altera_avalon_jtag_uart_dev* dev = (altera_avalon_jtag_uart_dev*) fd->dev; + + return altera_avalon_jtag_uart_write(&dev->state, buffer, space, + fd->fd_flags); +} + +#ifndef ALTERA_AVALON_JTAG_UART_SMALL + +int +altera_avalon_jtag_uart_close_fd(alt_fd* fd) +{ + altera_avalon_jtag_uart_dev* dev = (altera_avalon_jtag_uart_dev*) fd->dev; + + return altera_avalon_jtag_uart_close(&dev->state, fd->fd_flags); +} + +int +altera_avalon_jtag_uart_ioctl_fd(alt_fd* fd, int req, void* arg) +{ + altera_avalon_jtag_uart_dev* dev = (altera_avalon_jtag_uart_dev*) fd->dev; + + return altera_avalon_jtag_uart_ioctl(&dev->state, req, arg); +} + +#endif /* ALTERA_AVALON_JTAG_UART_SMALL */ diff --git a/software/qsys_tutorial_lcd4_bsp/drivers/src/altera_avalon_jtag_uart_init.c b/software/qsys_tutorial_lcd4_bsp/drivers/src/altera_avalon_jtag_uart_init.c new file mode 100644 index 0000000..7317bec --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/drivers/src/altera_avalon_jtag_uart_init.c @@ -0,0 +1,256 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2007 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include +#include +#include +#include + +#include + +#include "sys/alt_irq.h" +#include "sys/alt_alarm.h" +#include "sys/ioctl.h" +#include "alt_types.h" + +#include "altera_avalon_jtag_uart_regs.h" +#include "altera_avalon_jtag_uart.h" + +#include "sys/alt_log_printf.h" + +#ifndef ALTERA_AVALON_JTAG_UART_SMALL + +/* ----------------------------------------------------------- */ +/* ------------------------- FAST DRIVER --------------------- */ +/* ----------------------------------------------------------- */ +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT +static void altera_avalon_jtag_uart_irq(void* context); +#else +static void altera_avalon_jtag_uart_irq(void* context, alt_u32 id); +#endif +static alt_u32 altera_avalon_jtag_uart_timeout(void* context); + +/* + * Driver initialization code. Register interrupts and start a timer + * which we can use to check whether the host is there. + * Return 1 on sucessful IRQ register and 0 on failure. + */ + +void altera_avalon_jtag_uart_init(altera_avalon_jtag_uart_state* sp, + int irq_controller_id, int irq) +{ + ALT_FLAG_CREATE(&sp->events, 0); + ALT_SEM_CREATE(&sp->read_lock, 1); + ALT_SEM_CREATE(&sp->write_lock, 1); + + /* enable read interrupts at the device */ + sp->irq_enable = ALTERA_AVALON_JTAG_UART_CONTROL_RE_MSK; + + IOWR_ALTERA_AVALON_JTAG_UART_CONTROL(sp->base, sp->irq_enable); + + /* register the interrupt handler */ +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT + alt_ic_isr_register(irq_controller_id, irq, altera_avalon_jtag_uart_irq, + sp, NULL); +#else + alt_irq_register(irq, sp, altera_avalon_jtag_uart_irq); +#endif + + /* Register an alarm to go off every second to check for presence of host */ + sp->host_inactive = 0; + + if (alt_alarm_start(&sp->alarm, alt_ticks_per_second(), + &altera_avalon_jtag_uart_timeout, sp) < 0) + { + /* If we can't set the alarm then record "don't know if host present" + * and behave as though the host is present. + */ + sp->timeout = INT_MAX; + } + + /* ALT_LOG - see altera_hal/HAL/inc/sys/alt_log_printf.h */ + ALT_LOG_JTAG_UART_ALARM_REGISTER(sp, sp->base); +} + +/* + * Interrupt routine + */ +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT +static void altera_avalon_jtag_uart_irq(void* context) +#else +static void altera_avalon_jtag_uart_irq(void* context, alt_u32 id) +#endif +{ + altera_avalon_jtag_uart_state* sp = (altera_avalon_jtag_uart_state*) context; + unsigned int base = sp->base; + + /* ALT_LOG - see altera_hal/HAL/inc/sys/alt_log_printf.h */ + ALT_LOG_JTAG_UART_ISR_FUNCTION(base, sp); + + for ( ; ; ) + { + unsigned int control = IORD_ALTERA_AVALON_JTAG_UART_CONTROL(base); + + /* Return once nothing more to do */ + if ((control & (ALTERA_AVALON_JTAG_UART_CONTROL_RI_MSK | ALTERA_AVALON_JTAG_UART_CONTROL_WI_MSK)) == 0) + break; + + if (control & ALTERA_AVALON_JTAG_UART_CONTROL_RI_MSK) + { + /* process a read irq. Start by assuming that there is data in the + * receive FIFO (otherwise why would we have been interrupted?) + */ + unsigned int data = 1 << ALTERA_AVALON_JTAG_UART_DATA_RAVAIL_OFST; + + for ( ; ; ) + { + /* Check whether there is space in the buffer. If not then we must not + * read any characters from the buffer as they will be lost. + */ + unsigned int next = (sp->rx_in + 1) % ALTERA_AVALON_JTAG_UART_BUF_LEN; + if (next == sp->rx_out) + break; + + /* Try to remove a character from the FIFO and find out whether there + * are any more characters remaining. + */ + data = IORD_ALTERA_AVALON_JTAG_UART_DATA(base); + + if ((data & ALTERA_AVALON_JTAG_UART_DATA_RVALID_MSK) == 0) + break; + + sp->rx_buf[sp->rx_in] = (data & ALTERA_AVALON_JTAG_UART_DATA_DATA_MSK) >> ALTERA_AVALON_JTAG_UART_DATA_DATA_OFST; + sp->rx_in = (sp->rx_in + 1) % ALTERA_AVALON_JTAG_UART_BUF_LEN; + + /* Post an event to notify jtag_uart_read that a character has been read */ + ALT_FLAG_POST (sp->events, ALT_JTAG_UART_READ_RDY, OS_FLAG_SET); + } + + if (data & ALTERA_AVALON_JTAG_UART_DATA_RAVAIL_MSK) + { + /* If there is still data available here then the buffer is full + * so turn off receive interrupts until some space becomes available. + */ + sp->irq_enable &= ~ALTERA_AVALON_JTAG_UART_CONTROL_RE_MSK; + IOWR_ALTERA_AVALON_JTAG_UART_CONTROL(base, sp->irq_enable); + + /* Dummy read to ensure IRQ is cleared prior to ISR completion */ + IORD_ALTERA_AVALON_JTAG_UART_CONTROL(base); + } + } + + if (control & ALTERA_AVALON_JTAG_UART_CONTROL_WI_MSK) + { + /* process a write irq */ + unsigned int space = (control & ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_MSK) >> ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_OFST; + + while (space > 0 && sp->tx_out != sp->tx_in) + { + IOWR_ALTERA_AVALON_JTAG_UART_DATA(base, sp->tx_buf[sp->tx_out]); + + sp->tx_out = (sp->tx_out + 1) % ALTERA_AVALON_JTAG_UART_BUF_LEN; + + /* Post an event to notify jtag_uart_write that a character has been written */ + ALT_FLAG_POST (sp->events, ALT_JTAG_UART_WRITE_RDY, OS_FLAG_SET); + + space--; + } + + if (space > 0) + { + /* If we don't have any more data available then turn off the TX interrupt */ + sp->irq_enable &= ~ALTERA_AVALON_JTAG_UART_CONTROL_WE_MSK; + IOWR_ALTERA_AVALON_JTAG_UART_CONTROL(sp->base, sp->irq_enable); + + /* Dummy read to ensure IRQ is cleared prior to ISR completion */ + IORD_ALTERA_AVALON_JTAG_UART_CONTROL(base); + } + } + } +} + +/* + * Timeout routine is called every second + */ + +static alt_u32 +altera_avalon_jtag_uart_timeout(void* context) +{ + altera_avalon_jtag_uart_state* sp = (altera_avalon_jtag_uart_state *) context; + + unsigned int control = IORD_ALTERA_AVALON_JTAG_UART_CONTROL(sp->base); + + if (control & ALTERA_AVALON_JTAG_UART_CONTROL_AC_MSK) + { + IOWR_ALTERA_AVALON_JTAG_UART_CONTROL(sp->base, sp->irq_enable | ALTERA_AVALON_JTAG_UART_CONTROL_AC_MSK); + sp->host_inactive = 0; + } + else if (sp->host_inactive < INT_MAX - 2) { + sp->host_inactive++; + + if (sp->host_inactive >= sp->timeout) { + /* Post an event to indicate host is inactive (for jtag_uart_read */ + ALT_FLAG_POST (sp->events, ALT_JTAG_UART_TIMEOUT, OS_FLAG_SET); + } + } + + return alt_ticks_per_second(); +} + +/* + * The close() routine is implemented to drain the JTAG UART transmit buffer + * when not in "small" mode. This routine will wait for transimt data to be + * emptied unless a timeout from host-activity occurs. If the driver flags + * have been set to non-blocking mode, this routine will exit immediately if + * any data remains. This routine should be called indirectly (i.e. though + * the C library close() routine) so that the file descriptor associated + * with the relevant stream (i.e. stdout) can be closed as well. This routine + * does not manage file descriptors. + * + * The close routine is not implemented for the small driver; instead it will + * map to null. This is because the small driver simply waits while characters + * are transmitted; there is no interrupt-serviced buffer to empty + */ +int altera_avalon_jtag_uart_close(altera_avalon_jtag_uart_state* sp, int flags) +{ + /* + * Wait for all transmit data to be emptied by the JTAG UART ISR, or + * for a host-inactivity timeout, in which case transmit data will be lost + */ + while ( (sp->tx_out != sp->tx_in) && (sp->host_inactive < sp->timeout) ) { + if (flags & O_NONBLOCK) { + return -EWOULDBLOCK; + } + } + + return 0; +} + +#endif /* !ALTERA_AVALON_JTAG_UART_SMALL */ diff --git a/software/qsys_tutorial_lcd4_bsp/drivers/src/altera_avalon_jtag_uart_ioctl.c b/software/qsys_tutorial_lcd4_bsp/drivers/src/altera_avalon_jtag_uart_ioctl.c new file mode 100644 index 0000000..cf71e6f --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/drivers/src/altera_avalon_jtag_uart_ioctl.c @@ -0,0 +1,86 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include +#include +#include +#include + +#include + +#include "sys/ioctl.h" +#include "alt_types.h" + +#include "altera_avalon_jtag_uart_regs.h" +#include "altera_avalon_jtag_uart.h" + +#include "sys/alt_log_printf.h" + +#ifndef ALTERA_AVALON_JTAG_UART_SMALL + +/* ----------------------------------------------------------- */ +/* ------------------------- FAST DRIVER --------------------- */ +/* ----------------------------------------------------------- */ + +int +altera_avalon_jtag_uart_ioctl(altera_avalon_jtag_uart_state* sp, int req, + void* arg) +{ + int rc = -ENOTTY; + + switch (req) + { + case TIOCSTIMEOUT: + /* Set the time to wait until assuming host is not connected */ + if (sp->timeout != INT_MAX) + { + int timeout = *((int *)arg); + sp->timeout = (timeout >= 2 && timeout < INT_MAX) ? timeout : INT_MAX - 1; + rc = 0; + } + break; + + case TIOCGCONNECTED: + /* Find out whether host is connected */ + if (sp->timeout != INT_MAX) + { + *((int *)arg) = (sp->host_inactive < sp->timeout) ? 1 : 0; + rc = 0; + } + break; + + default: + break; + } + + return rc; +} + +#endif /* !ALTERA_AVALON_JTAG_UART_SMALL */ diff --git a/software/qsys_tutorial_lcd4_bsp/drivers/src/altera_avalon_jtag_uart_read.c b/software/qsys_tutorial_lcd4_bsp/drivers/src/altera_avalon_jtag_uart_read.c new file mode 100644 index 0000000..5657adb --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/drivers/src/altera_avalon_jtag_uart_read.c @@ -0,0 +1,205 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include +#include +#include +#include + +#include + +#include "sys/alt_irq.h" +#include "sys/alt_alarm.h" +#include "sys/ioctl.h" +#include "alt_types.h" + +#include "altera_avalon_jtag_uart_regs.h" +#include "altera_avalon_jtag_uart.h" + +#include "sys/alt_log_printf.h" + +#ifdef __ucosii__ +#include "includes.h" +#endif /* __ucosii__ */ + +#ifdef ALTERA_AVALON_JTAG_UART_SMALL + +/* ----------------------------------------------------------- */ +/* ----------------------- SMALL DRIVER ---------------------- */ +/* ----------------------------------------------------------- */ + +/* Read routine. The small version blocks until it has at least one byte + * available, it then returns as much as is immediately available without + * waiting any more. It's performance will be very poor without + * interrupts. + */ + +int +altera_avalon_jtag_uart_read(altera_avalon_jtag_uart_state* sp, + char* buffer, int space, int flags) +{ + unsigned int base = sp->base; + + char * ptr = buffer; + char * end = buffer + space; + + while (ptr < end) + { + unsigned int data = IORD_ALTERA_AVALON_JTAG_UART_DATA(base); + + if (data & ALTERA_AVALON_JTAG_UART_DATA_RVALID_MSK) + *ptr++ = (data & ALTERA_AVALON_JTAG_UART_DATA_DATA_MSK) >> ALTERA_AVALON_JTAG_UART_DATA_DATA_OFST; + else if (ptr != buffer) + break; + else if(flags & O_NONBLOCK) + break; + + } + + if (ptr != buffer) + return ptr - buffer; + else if (flags & O_NONBLOCK) + return -EWOULDBLOCK; + else + return -EIO; +} + +#else /* !ALTERA_AVALON_JTAG_UART_SMALL */ + +/* ----------------------------------------------------------- */ +/* ----------------------- FAST DRIVER ----------------------- */ +/* ----------------------------------------------------------- */ + +int +altera_avalon_jtag_uart_read(altera_avalon_jtag_uart_state* sp, + char * buffer, int space, int flags) +{ + char * ptr = buffer; + + alt_irq_context context; + unsigned int n; + + /* + * When running in a multi threaded environment, obtain the "read_lock" + * semaphore. This ensures that reading from the device is thread-safe. + */ + ALT_SEM_PEND (sp->read_lock, 0); + + while (space > 0) + { + unsigned int in, out; + + /* Read as much data as possible */ + do + { + in = sp->rx_in; + out = sp->rx_out; + + if (in >= out) + n = in - out; + else + n = ALTERA_AVALON_JTAG_UART_BUF_LEN - out; + + if (n == 0) + break; /* No more data available */ + + if (n > space) + n = space; + + memcpy(ptr, sp->rx_buf + out, n); + ptr += n; + space -= n; + + sp->rx_out = (out + n) % ALTERA_AVALON_JTAG_UART_BUF_LEN; + } + while (space > 0); + + /* If we read any data then return it */ + if (ptr != buffer) + break; + + /* If in non-blocking mode then return error */ + if (flags & O_NONBLOCK) + break; + +#ifdef __ucosii__ + /* OS Present: Pend on a flag if the OS is running, otherwise spin */ + if(OSRunning == OS_TRUE) { + /* + * When running in a multi-threaded mode, we pend on the read event + * flag set and timeout event flag set in the isr. This avoids wasting CPU + * cycles waiting in this thread, when we could be doing something more + * profitable elsewhere. + */ + ALT_FLAG_PEND (sp->events, + ALT_JTAG_UART_READ_RDY | ALT_JTAG_UART_TIMEOUT, + OS_FLAG_WAIT_SET_ANY + OS_FLAG_CONSUME, + 0); + } + else { + /* Spin until more data arrives or until host disconnects */ + while (in == sp->rx_in && sp->host_inactive < sp->timeout) + ; + } +#else + /* No OS: Always spin */ + while (in == sp->rx_in && sp->host_inactive < sp->timeout) + ; +#endif /* __ucosii__ */ + + if (in == sp->rx_in) + break; + } + + /* + * Now that access to the circular buffer is complete, release the read + * semaphore so that other threads can access the buffer. + */ + + ALT_SEM_POST (sp->read_lock); + + if (ptr != buffer) + { + /* If we read any data then there is space in the buffer so enable interrupts */ + context = alt_irq_disable_all(); + sp->irq_enable |= ALTERA_AVALON_JTAG_UART_CONTROL_RE_MSK; + IOWR_ALTERA_AVALON_JTAG_UART_CONTROL(sp->base, sp->irq_enable); + alt_irq_enable_all(context); + } + + if (ptr != buffer) + return ptr - buffer; + else if (flags & O_NONBLOCK) + return -EWOULDBLOCK; + else + return -EIO; +} + +#endif /* ALTERA_AVALON_JTAG_UART_SMALL */ diff --git a/software/qsys_tutorial_lcd4_bsp/drivers/src/altera_avalon_jtag_uart_write.c b/software/qsys_tutorial_lcd4_bsp/drivers/src/altera_avalon_jtag_uart_write.c new file mode 100644 index 0000000..11aeca1 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/drivers/src/altera_avalon_jtag_uart_write.c @@ -0,0 +1,217 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include +#include +#include +#include + +#include + +#include "sys/alt_irq.h" +#include "sys/alt_alarm.h" +#include "sys/ioctl.h" +#include "alt_types.h" + +#include "altera_avalon_jtag_uart_regs.h" +#include "altera_avalon_jtag_uart.h" + +#include "sys/alt_log_printf.h" + +#ifdef __ucosii__ +#include "includes.h" +#endif /* __ucosii__ */ + +#ifdef ALTERA_AVALON_JTAG_UART_SMALL + +/* ----------------------------------------------------------- */ +/* ------------------------ SMALL DRIVER --------------------- */ +/* ----------------------------------------------------------- */ + +/* Write routine. The small version blocks when there is no space to write + * into, so it's performance will be very bad if you are writing more than + * one FIFOs worth of data. But you said you didn't want to use interrupts :-) + */ + +int altera_avalon_jtag_uart_write(altera_avalon_jtag_uart_state* sp, + const char * ptr, int count, int flags) +{ + unsigned int base = sp->base; + + const char * end = ptr + count; + + while (ptr < end) + if ((IORD_ALTERA_AVALON_JTAG_UART_CONTROL(base) & ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_MSK) != 0) + IOWR_ALTERA_AVALON_JTAG_UART_DATA(base, *ptr++); + + return count; +} + +#else /* !ALTERA_AVALON_JTAG_UART_SMALL */ + +/* ----------------------------------------------------------- */ +/* ------------------------- FAST DRIVER --------------------- */ +/* ----------------------------------------------------------- */ + +int +altera_avalon_jtag_uart_write(altera_avalon_jtag_uart_state* sp, + const char * ptr, int count, int flags) +{ + /* Remove warning at optimisation level 03 by seting out to 0 */ + unsigned int in, out=0; + unsigned int n; + alt_irq_context context; + + const char * start = ptr; + + /* + * When running in a multi threaded environment, obtain the "write_lock" + * semaphore. This ensures that writing to the device is thread-safe. + */ + ALT_SEM_PEND (sp->write_lock, 0); + + do + { + /* Copy as much as we can into the transmit buffer */ + while (count > 0) + { + /* We need a stable value of the out pointer to calculate the space available */ + in = sp->tx_in; + out = sp->tx_out; + + if (in < out) + n = out - 1 - in; + else if (out > 0) + n = ALTERA_AVALON_JTAG_UART_BUF_LEN - in; + else + n = ALTERA_AVALON_JTAG_UART_BUF_LEN - 1 - in; + + if (n == 0) + break; + + if (n > count) + n = count; + + memcpy(sp->tx_buf + in, ptr, n); + ptr += n; + count -= n; + + sp->tx_in = (in + n) % ALTERA_AVALON_JTAG_UART_BUF_LEN; + } + + /* + * If interrupts are disabled then we could transmit here, we only need + * to enable interrupts if there is no space left in the FIFO + * + * For now kick the interrupt routine every time to make it transmit + * the data + */ + context = alt_irq_disable_all(); + sp->irq_enable |= ALTERA_AVALON_JTAG_UART_CONTROL_WE_MSK; + IOWR_ALTERA_AVALON_JTAG_UART_CONTROL(sp->base, sp->irq_enable); + alt_irq_enable_all(context); + + /* + * If there is any data left then either return now or block until + * some has been sent + */ + /* consider: test whether there is anything there while doing this and delay for at most 2s. */ + if (count > 0) + { + if (flags & O_NONBLOCK) + break; + +#ifdef __ucosii__ + /* OS Present: Pend on a flag if the OS is running, otherwise spin */ + if(OSRunning == OS_TRUE) { + /* + * When running in a multi-threaded mode, we pend on the write event + * flag set or the timeout flag in the isr. This avoids wasting CPU + * cycles waiting in this thread, when we could be doing something + * more profitable elsewhere. + */ +#ifdef ALTERA_AVALON_JTAG_UART_IGNORE_FIFO_FULL_ERROR + if(!sp->host_inactive) +#endif + ALT_FLAG_PEND (sp->events, + ALT_JTAG_UART_WRITE_RDY | ALT_JTAG_UART_TIMEOUT, + OS_FLAG_WAIT_SET_ANY + OS_FLAG_CONSUME, + 0); + } + else { + /* + * OS not running: Wait for data to be removed from buffer. + * Once the interrupt routine has removed some data then we + * will be able to insert some more. + */ + while (out == sp->tx_out && sp->host_inactive < sp->timeout) + ; + } +#else + /* + * No OS present: Always wait for data to be removed from buffer. Once + * the interrupt routine has removed some data then we will be able to + * insert some more. + */ + while (out == sp->tx_out && sp->host_inactive < sp->timeout) + ; +#endif /* __ucosii__ */ + + if (out == sp->tx_out) + break; + } + } + while (count > 0); + + /* + * Now that access to the circular buffer is complete, release the write + * semaphore so that other threads can access the buffer. + */ + ALT_SEM_POST (sp->write_lock); + + if (ptr != start) + return ptr - start; + else if (flags & O_NONBLOCK) + return -EWOULDBLOCK; +#ifdef ALTERA_AVALON_JTAG_UART_IGNORE_FIFO_FULL_ERROR + else if (sp->host_inactive >= sp->timeout) { + /* + * Reset the software FIFO, hardware FIFO could not be reset. + * Just throw away characters without reporting error. + */ + sp->tx_out = sp->tx_in = 0; + return ptr - start + count; + } +#endif + else + return -EIO; /* Host not connected */ +} + +#endif /* ALTERA_AVALON_JTAG_UART_SMALL */ diff --git a/software/qsys_tutorial_lcd4_bsp/drivers/src/altera_avalon_lcd_16207.c b/software/qsys_tutorial_lcd4_bsp/drivers/src/altera_avalon_lcd_16207.c new file mode 100644 index 0000000..1fefba3 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/drivers/src/altera_avalon_lcd_16207.c @@ -0,0 +1,605 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/* ===================================================================== */ + +/* + * This file provides the implementation of the functions used to drive a + * LCD panel. + * + * Characters written to the device will appear on the LCD panel as though + * it is a very small terminal. If the lines written to the terminal are + * longer than the number of characters on the terminal then it will scroll + * the lines of text automatically to display them all. + * + * If more lines are written than will fit on the terminal then it will scroll + * when characters are written to the line "below" the last displayed one - + * the cursor is allowed to sit below the visible area of the screen providing + * that this line is entirely blank. + * + * The following control sequences may be used to move around and do useful + * stuff: + * CR Moves back to the start of the current line + * LF Moves down a line and back to the start + * BS Moves back a character without erasing + * ESC Starts a VT100 style escape sequence + * + * The following escape sequences are recognised: + * ESC [ ; H Move to row and column specified (positions are + * counted from the top left which is 1;1) + * ESC [ K Clear from current position to end of line + * ESC [ 2 J Clear screen and go to top left + * + */ + +/* ===================================================================== */ + +#include +#include + +#include +#include +#include + +#include "sys/alt_alarm.h" + +#include "altera_avalon_lcd_16207_regs.h" +#include "altera_avalon_lcd_16207.h" + +/* --------------------------------------------------------------------- */ + +/* Commands which can be written to the COMMAND register */ + +enum /* Write to character RAM */ +{ + LCD_CMD_WRITE_DATA = 0x80 + /* Bits 6:0 hold character RAM address */ +}; + +enum /* Write to character generator RAM */ +{ + LCD_CMD_WRITE_CGR = 0x40 + /* Bits 5:0 hold character generator RAM address */ +}; + +enum /* Function Set command */ +{ + LCD_CMD_FUNCTION_SET = 0x20, + LCD_CMD_8BIT = 0x10, + LCD_CMD_TWO_LINE = 0x08, + LCD_CMD_BIGFONT = 0x04 +}; + +enum /* Shift command */ +{ + LCD_CMD_SHIFT = 0x10, + LCD_CMD_SHIFT_DISPLAY = 0x08, + LCD_CMD_SHIFT_RIGHT = 0x04 +}; + +enum /* On/Off command */ +{ + LCD_CMD_ONOFF = 0x08, + LCD_CMD_ENABLE_DISP = 0x04, + LCD_CMD_ENABLE_CURSOR = 0x02, + LCD_CMD_ENABLE_BLINK = 0x01 +}; + +enum /* Entry Mode command */ +{ + LCD_CMD_MODES = 0x04, + LCD_CMD_MODE_INC = 0x02, + LCD_CMD_MODE_SHIFT = 0x01 +}; + +enum /* Home command */ +{ + LCD_CMD_HOME = 0x02 +}; + +enum /* Clear command */ +{ + LCD_CMD_CLEAR = 0x01 +}; + +/* Where in LCD character space do the rows start */ +static char colstart[4] = { 0x00, 0x40, 0x20, 0x60 }; + +/* --------------------------------------------------------------------- */ + +static void lcd_write_command(altera_avalon_lcd_16207_state* sp, + unsigned char command) +{ + unsigned int base = sp->base; + + /* We impose a timeout on the driver in case the LCD panel isn't connected. + * The first time we call this function the timeout is approx 25ms + * (assuming 5 cycles per loop and a 200MHz clock). Obviously systems + * with slower clocks, or debug builds, or slower memory will take longer. + */ + int i = 1000000; + + /* Don't bother if the LCD panel didn't work before */ + if (sp->broken) + return; + + /* Wait until LCD isn't busy. */ + while (IORD_ALTERA_AVALON_LCD_16207_STATUS(base) & ALTERA_AVALON_LCD_16207_STATUS_BUSY_MSK) + if (--i == 0) + { + sp->broken = 1; + return; + } + + /* Despite what it says in the datasheet, the LCD isn't ready to accept + * a write immediately after it returns BUSY=0. Wait for 100us more. + */ + usleep(100); + + IOWR_ALTERA_AVALON_LCD_16207_COMMAND(base, command); +} + +/* --------------------------------------------------------------------- */ + +static void lcd_write_data(altera_avalon_lcd_16207_state* sp, + unsigned char data) +{ + unsigned int base = sp->base; + + /* We impose a timeout on the driver in case the LCD panel isn't connected. + * The first time we call this function the timeout is approx 25ms + * (assuming 5 cycles per loop and a 200MHz clock). Obviously systems + * with slower clocks, or debug builds, or slower memory will take longer. + */ + int i = 1000000; + + /* Don't bother if the LCD panel didn't work before */ + if (sp->broken) + return; + + /* Wait until LCD isn't busy. */ + while (IORD_ALTERA_AVALON_LCD_16207_STATUS(base) & ALTERA_AVALON_LCD_16207_STATUS_BUSY_MSK) + if (--i == 0) + { + sp->broken = 1; + return; + } + + /* Despite what it says in the datasheet, the LCD isn't ready to accept + * a write immediately after it returns BUSY=0. Wait for 100us more. + */ + usleep(100); + + IOWR_ALTERA_AVALON_LCD_16207_DATA(base, data); + + sp->address++; +} + +/* --------------------------------------------------------------------- */ + +static void lcd_clear_screen(altera_avalon_lcd_16207_state* sp) +{ + int y; + + lcd_write_command(sp, LCD_CMD_CLEAR); + + sp->x = 0; + sp->y = 0; + sp->address = 0; + + for (y = 0 ; y < ALT_LCD_HEIGHT ; y++) + { + memset(sp->line[y].data, ' ', sizeof(sp->line[0].data)); + memset(sp->line[y].visible, ' ', sizeof(sp->line[0].visible)); + sp->line[y].width = 0; + } +} + +/* --------------------------------------------------------------------- */ + +static void lcd_repaint_screen(altera_avalon_lcd_16207_state* sp) +{ + int y, x; + + /* scrollpos controls how much the lines have scrolled round. The speed + * each line scrolls at is controlled by its speed variable - while + * scrolline lines will wrap at the position set by width + */ + + int scrollpos = sp->scrollpos; + + for (y = 0 ; y < ALT_LCD_HEIGHT ; y++) + { + int width = sp->line[y].width; + int offset = (scrollpos * sp->line[y].speed) >> 8; + if (offset >= width) + offset = 0; + + for (x = 0 ; x < ALT_LCD_WIDTH ; x++) + { + char c = sp->line[y].data[(x + offset) % width]; + + /* Writing data takes 40us, so don't do it unless required */ + if (sp->line[y].visible[x] != c) + { + unsigned char address = x + colstart[y]; + + if (address != sp->address) + { + lcd_write_command(sp, LCD_CMD_WRITE_DATA | address); + sp->address = address; + } + + lcd_write_data(sp, c); + sp->line[y].visible[x] = c; + } + } + } +} + +/* --------------------------------------------------------------------- */ + +static void lcd_scroll_up(altera_avalon_lcd_16207_state* sp) +{ + int y; + + for (y = 0 ; y < ALT_LCD_HEIGHT ; y++) + { + if (y < ALT_LCD_HEIGHT-1) + memcpy(sp->line[y].data, sp->line[y+1].data, ALT_LCD_VIRTUAL_WIDTH); + else + memset(sp->line[y].data, ' ', ALT_LCD_VIRTUAL_WIDTH); + } + + sp->y--; +} + +/* --------------------------------------------------------------------- */ + +static void lcd_handle_escape(altera_avalon_lcd_16207_state* sp, char c) +{ + int parm1 = 0, parm2 = 0; + + if (sp->escape[0] == '[') + { + char * ptr = sp->escape+1; + while (isdigit(*ptr)) + parm1 = (parm1 * 10) + (*ptr++ - '0'); + + if (*ptr == ';') + { + ptr++; + while (isdigit(*ptr)) + parm2 = (parm2 * 10) + (*ptr++ - '0'); + } + } + else + parm1 = -1; + + switch (c) + { + case 'H': /* ESC '[' ';' 'H' : Move cursor to location */ + case 'f': /* Same as above */ + if (parm2 > 0) + sp->x = parm2 - 1; + if (parm1 > 0) + { + sp->y = parm1 - 1; + if (sp->y > ALT_LCD_HEIGHT * 2) + sp->y = ALT_LCD_HEIGHT * 2; + while (sp->y > ALT_LCD_HEIGHT) + lcd_scroll_up(sp); + } + break; + + case 'J': + /* ESC J is clear to beginning of line [unimplemented] + * ESC [ 0 J is clear to bottom of screen [unimplemented] + * ESC [ 1 J is clear to beginning of screen [unimplemented] + * ESC [ 2 J is clear screen + */ + if (parm1 == 2) + lcd_clear_screen(sp); + break; + + case 'K': + /* ESC K is clear to end of line + * ESC [ 0 K is clear to end of line + * ESC [ 1 K is clear to beginning of line [unimplemented] + * ESC [ 2 K is clear line [unimplemented] + */ + if (parm1 < 1) + { + if (sp->x < ALT_LCD_VIRTUAL_WIDTH) + memset(sp->line[sp->y].data + sp->x, ' ', ALT_LCD_VIRTUAL_WIDTH - sp->x); + } + break; + } +} + +/* --------------------------------------------------------------------- */ + +int altera_avalon_lcd_16207_write(altera_avalon_lcd_16207_state* sp, + const char* ptr, int len, int flags) +{ + const char* end = ptr + len; + + int y; + int widthmax; + + /* When running in a multi threaded environment, obtain the "write_lock" + * semaphore. This ensures that writing to the device is thread-safe. + */ + + ALT_SEM_PEND (sp->write_lock, 0); + + /* Tell the routine which is called off the timer interrupt that the + * foreground routines are active so it must not repaint the display. */ + sp->active = 1; + + for ( ; ptr < end ; ptr++) + { + char c = *ptr; + + if (sp->esccount >= 0) + { + unsigned int esccount = sp->esccount; + + /* Single character escape sequences can end with any character + * Multi character escape sequences start with '[' and contain + * digits and semicolons before terminating + */ + if ((esccount == 0 && c != '[') || + (esccount > 0 && !isdigit(c) && c != ';')) + { + sp->escape[esccount] = 0; + + lcd_handle_escape(sp, c); + + sp->esccount = -1; + } + else if (sp->esccount < sizeof(sp->escape)-1) + { + sp->escape[esccount] = c; + sp->esccount++; + } + } + else if (c == 27) /* ESC */ + { + sp->esccount = 0; + } + else if (c == '\r') + { + sp->x = 0; + } + else if (c == '\n') + { + sp->x = 0; + sp->y++; + + /* Let the cursor sit at X=0, Y=HEIGHT without scrolling so the user + * can print two lines of data without losing one. + */ + if (sp->y > ALT_LCD_HEIGHT) + lcd_scroll_up(sp); + } + else if (c == '\b') + { + if (sp->x > 0) + sp->x--; + } + else if (isprint(c)) + { + /* If we didn't scroll on the last linefeed then we might need to do + * it now. */ + if (sp->y >= ALT_LCD_HEIGHT) + lcd_scroll_up(sp); + + if (sp->x < ALT_LCD_VIRTUAL_WIDTH) + sp->line[sp->y].data[sp->x] = c; + + sp->x++; + } + } + + /* Recalculate the scrolling parameters */ + widthmax = ALT_LCD_WIDTH; + for (y = 0 ; y < ALT_LCD_HEIGHT ; y++) + { + int width; + for (width = ALT_LCD_VIRTUAL_WIDTH ; width > 0 ; width--) + if (sp->line[y].data[width-1] != ' ') + break; + + /* The minimum width is the size of the LCD panel. If the real width + * is long enough to require scrolling then add an extra space so the + * end of the message doesn't run into the beginning of it. + */ + if (width <= ALT_LCD_WIDTH) + width = ALT_LCD_WIDTH; + else + width++; + + sp->line[y].width = width; + if (widthmax < width) + widthmax = width; + sp->line[y].speed = 0; /* By default lines don't scroll */ + } + + if (widthmax <= ALT_LCD_WIDTH) + sp->scrollmax = 0; + else + { + widthmax *= 2; + sp->scrollmax = widthmax; + + /* Now calculate how fast each of the other lines should go */ + for (y = 0 ; y < ALT_LCD_HEIGHT ; y++) + if (sp->line[y].width > ALT_LCD_WIDTH) + { + /* You have three options for how to make the display scroll, chosen + * using the preprocessor directives below + */ +#if 1 + /* This option makes all the lines scroll round at different speeds + * which are chosen so that all the scrolls finish at the same time. + */ + sp->line[y].speed = 256 * sp->line[y].width / widthmax; +#elif 1 + /* This option pads the shorter lines with spaces so that they all + * scroll together. + */ + sp->line[y].width = widthmax / 2; + sp->line[y].speed = 256/2; +#else + /* This option makes the shorter lines stop after they have rotated + * and waits for the longer lines to catch up + */ + sp->line[y].speed = 256/2; +#endif + } + } + + /* Repaint once, then check whether there has been a missed repaint + * (because active was set when the timer interrupt occurred). If there + * has been a missed repaint then paint again. And again. etc. + */ + for ( ; ; ) + { + int old_scrollpos = sp->scrollpos; + + lcd_repaint_screen(sp); + + /* Let the timer routines repaint the display again */ + sp->active = 0; + + /* Have the timer routines tried to scroll while we were painting? + * If not then we can exit */ + if (sp->scrollpos == old_scrollpos) + break; + + /* We need to repaint again since the display scrolled while we were + * painting last time */ + sp->active = 1; + } + + /* Now that access to the display is complete, release the write + * semaphore so that other threads can access the buffer. + */ + + ALT_SEM_POST (sp->write_lock); + + return len; +} + +/* --------------------------------------------------------------------- */ + +/* This should be in a top level header file really */ +#define container_of(ptr, type, member) ((type *)((char *)ptr - offsetof(type, member))) + +/* + * Timeout routine is called every second + */ + +static alt_u32 alt_lcd_16207_timeout(void* context) +{ + altera_avalon_lcd_16207_state* sp = (altera_avalon_lcd_16207_state*)context; + + /* Update the scrolling position */ + if (sp->scrollpos + 1 >= sp->scrollmax) + sp->scrollpos = 0; + else + sp->scrollpos = sp->scrollpos + 1; + + /* Repaint the panel unless the foreground will do it again soon */ + if (sp->scrollmax > 0 && !sp->active) + lcd_repaint_screen(sp); + + return sp->period; +} + +/* --------------------------------------------------------------------- */ + +/* + * Called at boot time to initialise the LCD driver + */ +void altera_avalon_lcd_16207_init(altera_avalon_lcd_16207_state* sp) +{ + unsigned int base = sp->base; + + /* Mark the device as functional */ + sp->broken = 0; + + ALT_SEM_CREATE (&sp->write_lock, 1); + + /* The initialisation sequence below is copied from the datasheet for + * the 16207 LCD display. The first commands need to be timed because + * the BUSY bit in the status register doesn't work until the display + * has been reset three times. + */ + + /* Wait for 15 ms then reset */ + usleep(15000); + IOWR_ALTERA_AVALON_LCD_16207_COMMAND(base, LCD_CMD_FUNCTION_SET | LCD_CMD_8BIT); + + /* Wait for another 4.1ms and reset again */ + usleep(4100); + IOWR_ALTERA_AVALON_LCD_16207_COMMAND(base, LCD_CMD_FUNCTION_SET | LCD_CMD_8BIT); + + /* Wait a further 1 ms and reset a third time */ + usleep(1000); + IOWR_ALTERA_AVALON_LCD_16207_COMMAND(base, LCD_CMD_FUNCTION_SET | LCD_CMD_8BIT); + + /* Setup interface parameters: 8 bit bus, 2 rows, 5x7 font */ + lcd_write_command(sp, LCD_CMD_FUNCTION_SET | LCD_CMD_8BIT | LCD_CMD_TWO_LINE); + + /* Turn display off */ + lcd_write_command(sp, LCD_CMD_ONOFF); + + /* Clear display */ + lcd_clear_screen(sp); + + /* Set mode: increment after writing, don't shift display */ + lcd_write_command(sp, LCD_CMD_MODES | LCD_CMD_MODE_INC); + + /* Turn display on */ + lcd_write_command(sp, LCD_CMD_ONOFF | LCD_CMD_ENABLE_DISP); + + sp->esccount = -1; + memset(sp->escape, 0, sizeof(sp->escape)); + + sp->scrollpos = 0; + sp->scrollmax = 0; + sp->active = 0; + + sp->period = alt_ticks_per_second() / 10; /* Call every 100ms */ + + alt_alarm_start(&sp->alarm, sp->period, &alt_lcd_16207_timeout, sp); +} diff --git a/software/qsys_tutorial_lcd4_bsp/drivers/src/altera_avalon_lcd_16207_fd.c b/software/qsys_tutorial_lcd4_bsp/drivers/src/altera_avalon_lcd_16207_fd.c new file mode 100644 index 0000000..431b094 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/drivers/src/altera_avalon_lcd_16207_fd.c @@ -0,0 +1,45 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "alt_types.h" +#include "sys/alt_dev.h" +#include "altera_avalon_lcd_16207.h" + +extern int altera_avalon_lcd_16207_write(altera_avalon_lcd_16207_state* sp, + const char* ptr, int count, int flags); + +int +altera_avalon_lcd_16207_write_fd(alt_fd* fd, const char* buffer, int space) +{ + altera_avalon_lcd_16207_dev* dev = (altera_avalon_lcd_16207_dev*) fd->dev; + + return altera_avalon_lcd_16207_write(&dev->state, buffer, space, + fd->fd_flags); +} diff --git a/software/qsys_tutorial_lcd4_bsp/libhal_bsp.a b/software/qsys_tutorial_lcd4_bsp/libhal_bsp.a new file mode 100644 index 0000000..e9340ac --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/libhal_bsp.a Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/linker.h b/software/qsys_tutorial_lcd4_bsp/linker.h new file mode 100644 index 0000000..bb80fd7 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/linker.h @@ -0,0 +1,101 @@ +/* + * linker.h - Linker script mapping information + * + * Machine generated for CPU 'nios2_processor' in SOPC Builder design 'nios_system' + * SOPC Builder design path: C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.sopcinfo + * + * Generated: Fri Dec 02 01:35:14 JST 2016 + */ + +/* + * DO NOT MODIFY THIS FILE + * + * Changing this file will have subtle consequences + * which will almost certainly lead to a nonfunctioning + * system. If you do modify this file, be aware that your + * changes will be overwritten and lost when this file + * is generated again. + * + * DO NOT MODIFY THIS FILE + */ + +/* + * License Agreement + * + * Copyright (c) 2008 + * Altera Corporation, San Jose, California, USA. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + * This agreement shall be governed in all respects by the laws of the State + * of California and by the laws of the United States of America. + */ + +#ifndef __LINKER_H_ +#define __LINKER_H_ + + +/* + * BSP controls alt_load() behavior in crt0. + * + */ + +#define ALT_LOAD_EXPLICITLY_CONTROLLED + + +/* + * Base address and span (size in bytes) of each linker region + * + */ + +#define ONCHIP_MEMORY_REGION_BASE 0x20 +#define ONCHIP_MEMORY_REGION_SPAN 204768 +#define RESET_REGION_BASE 0x0 +#define RESET_REGION_SPAN 32 + + +/* + * Devices associated with code sections + * + */ + +#define ALT_EXCEPTIONS_DEVICE ONCHIP_MEMORY +#define ALT_RESET_DEVICE ONCHIP_MEMORY +#define ALT_RODATA_DEVICE ONCHIP_MEMORY +#define ALT_RWDATA_DEVICE ONCHIP_MEMORY +#define ALT_TEXT_DEVICE ONCHIP_MEMORY + + +/* + * Initialization code at the reset address is allowed (e.g. no external bootloader). + * + */ + +#define ALT_ALLOW_CODE_AT_RESET + + +/* + * The alt_load() facility is called from crt0 to copy sections into RAM. + * + */ + +#define ALT_LOAD_COPY_RWDATA + +#endif /* __LINKER_H_ */ diff --git a/software/qsys_tutorial_lcd4_bsp/linker.x b/software/qsys_tutorial_lcd4_bsp/linker.x new file mode 100644 index 0000000..2fb11ec --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/linker.x @@ -0,0 +1,385 @@ +/* + * linker.x - Linker script + * + * Machine generated for CPU 'nios2_processor' in SOPC Builder design 'nios_system' + * SOPC Builder design path: C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.sopcinfo + * + * Generated: Fri Dec 02 01:35:14 JST 2016 + */ + +/* + * DO NOT MODIFY THIS FILE + * + * Changing this file will have subtle consequences + * which will almost certainly lead to a nonfunctioning + * system. If you do modify this file, be aware that your + * changes will be overwritten and lost when this file + * is generated again. + * + * DO NOT MODIFY THIS FILE + */ + +/* + * License Agreement + * + * Copyright (c) 2008 + * Altera Corporation, San Jose, California, USA. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + * This agreement shall be governed in all respects by the laws of the State + * of California and by the laws of the United States of America. + */ + +MEMORY +{ + reset : ORIGIN = 0x0, LENGTH = 32 + onchip_memory : ORIGIN = 0x20, LENGTH = 204768 +} + +/* Define symbols for each memory base-address */ +__alt_mem_onchip_memory = 0x0; + +OUTPUT_FORMAT( "elf32-littlenios2", + "elf32-littlenios2", + "elf32-littlenios2" ) +OUTPUT_ARCH( nios2 ) +ENTRY( _start ) + +/* + * The alt_load() facility is enabled. This typically happens when there isn't + * an external bootloader (e.g. flash bootloader). + * The LMA (aka physical address) of each loaded section is + * set to the .text memory device. + * The HAL alt_load() routine called from crt0 copies sections from + * the .text memory to RAM as needed. + */ + +SECTIONS +{ + + /* + * Output sections associated with reset and exceptions (they have to be first) + */ + + .entry : + { + KEEP (*(.entry)) + } > reset + + .exceptions : + { + PROVIDE (__ram_exceptions_start = ABSOLUTE(.)); + . = ALIGN(0x20); + KEEP (*(.irq)); + KEEP (*(.exceptions.entry.label)); + KEEP (*(.exceptions.entry.user)); + KEEP (*(.exceptions.entry)); + KEEP (*(.exceptions.irqtest.user)); + KEEP (*(.exceptions.irqtest)); + KEEP (*(.exceptions.irqhandler.user)); + KEEP (*(.exceptions.irqhandler)); + KEEP (*(.exceptions.irqreturn.user)); + KEEP (*(.exceptions.irqreturn)); + KEEP (*(.exceptions.notirq.label)); + KEEP (*(.exceptions.notirq.user)); + KEEP (*(.exceptions.notirq)); + KEEP (*(.exceptions.soft.user)); + KEEP (*(.exceptions.soft)); + KEEP (*(.exceptions.unknown.user)); + KEEP (*(.exceptions.unknown)); + KEEP (*(.exceptions.exit.label)); + KEEP (*(.exceptions.exit.user)); + KEEP (*(.exceptions.exit)); + KEEP (*(.exceptions)); + PROVIDE (__ram_exceptions_end = ABSOLUTE(.)); + } > onchip_memory + + PROVIDE (__flash_exceptions_start = LOADADDR(.exceptions)); + + .text : + { + /* + * All code sections are merged into the text output section, along with + * the read only data sections. + * + */ + + PROVIDE (stext = ABSOLUTE(.)); + + *(.interp) + *(.hash) + *(.dynsym) + *(.dynstr) + *(.gnu.version) + *(.gnu.version_d) + *(.gnu.version_r) + *(.rel.init) + *(.rela.init) + *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) + *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) + *(.rel.fini) + *(.rela.fini) + *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) + *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) + *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) + *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) + *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) + *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) + *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) + *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) + *(.rel.ctors) + *(.rela.ctors) + *(.rel.dtors) + *(.rela.dtors) + *(.rel.got) + *(.rela.got) + *(.rel.sdata .rel.sdata.* .rel.gnu.linkonce.s.*) + *(.rela.sdata .rela.sdata.* .rela.gnu.linkonce.s.*) + *(.rel.sbss .rel.sbss.* .rel.gnu.linkonce.sb.*) + *(.rela.sbss .rela.sbss.* .rela.gnu.linkonce.sb.*) + *(.rel.sdata2 .rel.sdata2.* .rel.gnu.linkonce.s2.*) + *(.rela.sdata2 .rela.sdata2.* .rela.gnu.linkonce.s2.*) + *(.rel.sbss2 .rel.sbss2.* .rel.gnu.linkonce.sb2.*) + *(.rela.sbss2 .rela.sbss2.* .rela.gnu.linkonce.sb2.*) + *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) + *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) + *(.rel.plt) + *(.rela.plt) + *(.rel.dyn) + + KEEP (*(.init)) + *(.plt) + *(.text .stub .text.* .gnu.linkonce.t.*) + + /* .gnu.warning sections are handled specially by elf32.em. */ + + *(.gnu.warning.*) + KEEP (*(.fini)) + PROVIDE (__etext = ABSOLUTE(.)); + PROVIDE (_etext = ABSOLUTE(.)); + PROVIDE (etext = ABSOLUTE(.)); + + *(.eh_frame_hdr) + /* Ensure the __preinit_array_start label is properly aligned. We + could instead move the label definition inside the section, but + the linker would then create the section even if it turns out to + be empty, which isn't pretty. */ + . = ALIGN(4); + PROVIDE (__preinit_array_start = ABSOLUTE(.)); + *(.preinit_array) + PROVIDE (__preinit_array_end = ABSOLUTE(.)); + PROVIDE (__init_array_start = ABSOLUTE(.)); + *(.init_array) + PROVIDE (__init_array_end = ABSOLUTE(.)); + PROVIDE (__fini_array_start = ABSOLUTE(.)); + *(.fini_array) + PROVIDE (__fini_array_end = ABSOLUTE(.)); + SORT(CONSTRUCTORS) + KEEP (*(.eh_frame)) + *(.gcc_except_table) + *(.dynamic) + PROVIDE (__CTOR_LIST__ = ABSOLUTE(.)); + KEEP (*(.ctors)) + KEEP (*(SORT(.ctors.*))) + PROVIDE (__CTOR_END__ = ABSOLUTE(.)); + PROVIDE (__DTOR_LIST__ = ABSOLUTE(.)); + KEEP (*(.dtors)) + KEEP (*(SORT(.dtors.*))) + PROVIDE (__DTOR_END__ = ABSOLUTE(.)); + KEEP (*(.jcr)) + . = ALIGN(4); + } > onchip_memory = 0x3a880100 /* Nios II NOP instruction */ + + .rodata : + { + PROVIDE (__ram_rodata_start = ABSOLUTE(.)); + . = ALIGN(4); + *(.rodata .rodata.* .gnu.linkonce.r.*) + *(.rodata1) + . = ALIGN(4); + PROVIDE (__ram_rodata_end = ABSOLUTE(.)); + } > onchip_memory + + PROVIDE (__flash_rodata_start = LOADADDR(.rodata)); + + /* + * + * This section's LMA is set to the .text region. + * crt0 will copy to this section's specified mapped region virtual memory address (VMA) + * + * .rwdata region equals the .text region, and is set to be loaded into .text region. + * This requires two copies of .rwdata in the .text region. One read writable at VMA. + * and one read-only at LMA. crt0 will copy from LMA to VMA on reset + * + */ + + .rwdata LOADADDR (.rodata) + SIZEOF (.rodata) : AT ( LOADADDR (.rodata) + SIZEOF (.rodata)+ SIZEOF (.rwdata) ) + { + PROVIDE (__ram_rwdata_start = ABSOLUTE(.)); + . = ALIGN(4); + *(.got.plt) *(.got) + *(.data1) + *(.data .data.* .gnu.linkonce.d.*) + + _gp = ABSOLUTE(. + 0x8000); + PROVIDE(gp = _gp); + + *(.rwdata .rwdata.*) + *(.sdata .sdata.* .gnu.linkonce.s.*) + *(.sdata2 .sdata2.* .gnu.linkonce.s2.*) + + . = ALIGN(4); + _edata = ABSOLUTE(.); + PROVIDE (edata = ABSOLUTE(.)); + PROVIDE (__ram_rwdata_end = ABSOLUTE(.)); + } > onchip_memory + + PROVIDE (__flash_rwdata_start = LOADADDR(.rwdata)); + + /* + * + * This section's LMA is set to the .text region. + * crt0 will copy to this section's specified mapped region virtual memory address (VMA) + * + */ + + .bss LOADADDR (.rwdata) + SIZEOF (.rwdata) : AT ( LOADADDR (.rwdata) + SIZEOF (.rwdata) ) + { + __bss_start = ABSOLUTE(.); + PROVIDE (__sbss_start = ABSOLUTE(.)); + PROVIDE (___sbss_start = ABSOLUTE(.)); + + *(.dynsbss) + *(.sbss .sbss.* .gnu.linkonce.sb.*) + *(.sbss2 .sbss2.* .gnu.linkonce.sb2.*) + *(.scommon) + + PROVIDE (__sbss_end = ABSOLUTE(.)); + PROVIDE (___sbss_end = ABSOLUTE(.)); + + *(.dynbss) + *(.bss .bss.* .gnu.linkonce.b.*) + *(COMMON) + + . = ALIGN(4); + __bss_end = ABSOLUTE(.); + } > onchip_memory + + /* + * + * One output section mapped to the associated memory device for each of + * the available memory devices. These are not used by default, but can + * be used by user applications by using the .section directive. + * + * The output section used for the heap is treated in a special way, + * i.e. the symbols "end" and "_end" are added to point to the heap start. + * + * Because alt_load() is enabled, these sections have + * their LMA set to be loaded into the .text memory region. + * However, the alt_load() code will NOT automatically copy + * these sections into their mapped memory region. + * + */ + + /* + * + * This section's LMA is set to the .text region. + * crt0 will copy to this section's specified mapped region virtual memory address (VMA) + * + */ + + .onchip_memory LOADADDR (.bss) + SIZEOF (.bss) : AT ( LOADADDR (.bss) + SIZEOF (.bss) ) + { + PROVIDE (_alt_partition_onchip_memory_start = ABSOLUTE(.)); + *(.onchip_memory. onchip_memory.*) + . = ALIGN(4); + PROVIDE (_alt_partition_onchip_memory_end = ABSOLUTE(.)); + _end = ABSOLUTE(.); + end = ABSOLUTE(.); + __alt_stack_base = ABSOLUTE(.); + } > onchip_memory + + PROVIDE (_alt_partition_onchip_memory_load_addr = LOADADDR(.onchip_memory)); + + /* + * Stabs debugging sections. + * + */ + + .stab 0 : { *(.stab) } + .stabstr 0 : { *(.stabstr) } + .stab.excl 0 : { *(.stab.excl) } + .stab.exclstr 0 : { *(.stab.exclstr) } + .stab.index 0 : { *(.stab.index) } + .stab.indexstr 0 : { *(.stab.indexstr) } + .comment 0 : { *(.comment) } + /* DWARF debug sections. + Symbols in the DWARF debugging sections are relative to the beginning + of the section so we begin them at 0. */ + /* DWARF 1 */ + .debug 0 : { *(.debug) } + .line 0 : { *(.line) } + /* GNU DWARF 1 extensions */ + .debug_srcinfo 0 : { *(.debug_srcinfo) } + .debug_sfnames 0 : { *(.debug_sfnames) } + /* DWARF 1.1 and DWARF 2 */ + .debug_aranges 0 : { *(.debug_aranges) } + .debug_pubnames 0 : { *(.debug_pubnames) } + /* DWARF 2 */ + .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } + .debug_abbrev 0 : { *(.debug_abbrev) } + .debug_line 0 : { *(.debug_line) } + .debug_frame 0 : { *(.debug_frame) } + .debug_str 0 : { *(.debug_str) } + .debug_loc 0 : { *(.debug_loc) } + .debug_macinfo 0 : { *(.debug_macinfo) } + /* SGI/MIPS DWARF 2 extensions */ + .debug_weaknames 0 : { *(.debug_weaknames) } + .debug_funcnames 0 : { *(.debug_funcnames) } + .debug_typenames 0 : { *(.debug_typenames) } + .debug_varnames 0 : { *(.debug_varnames) } + + /* Altera debug extensions */ + .debug_alt_sim_info 0 : { *(.debug_alt_sim_info) } +} + +/* provide a pointer for the stack */ + +/* + * Don't override this, override the __alt_stack_* symbols instead. + */ +__alt_data_end = 0x32000; + +/* + * The next two symbols define the location of the default stack. You can + * override them to move the stack to a different memory. + */ +PROVIDE( __alt_stack_pointer = __alt_data_end ); +PROVIDE( __alt_stack_limit = __alt_stack_base ); + +/* + * This symbol controls where the start of the heap is. If the stack is + * contiguous with the heap then the stack will contract as memory is + * allocated to the heap. + * Override this symbol to put the heap in a different memory. + */ +PROVIDE( __alt_heap_start = end ); +PROVIDE( __alt_heap_limit = 0x32000 ); diff --git a/software/qsys_tutorial_lcd4_bsp/mem_init.mk b/software/qsys_tutorial_lcd4_bsp/mem_init.mk new file mode 100644 index 0000000..1f2a48f --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/mem_init.mk @@ -0,0 +1,322 @@ + +######################################################################### +####### M E M I N I T M A K E F I L E C O N T E N T ###### +######################################################################### + +######################################################################### +# This file is intended to be included by public.mk +# +# +# The following variables must be defined before including this file: +# - ELF +# +# The following variables may be defined to override the default behavior: +# - HDL_SIM_DIR +# - HDL_SIM_INSTALL_DIR +# - MEM_INIT_DIR +# - MEM_INIT_INSTALL_DIR +# - QUARTUS_PROJECT_DIR +# - SOPC_NAME +# - SIM_OPTIMIZE +# - RESET_ADDRESS +# +######################################################################### + +ifeq ($(MEM_INIT_FILE),) +# MEM_INIT_FILE should be set equal to the working relative path to this +# mem_init.mk makefile fragment +MEM_INIT_FILE := $(wildcard $(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST))) +endif + +ifeq ($(ELF2DAT),) +ELF2DAT := elf2dat +endif + +ifeq ($(ELF2HEX),) +ELF2HEX := elf2hex +endif + +ifeq ($(ELF2FLASH),) +ELF2FLASH := elf2flash +endif + +ifeq ($(FLASH2DAT),) +FLASH2DAT := flash2dat +endif + +ifeq ($(NM),) +NM := nios2-elf-nm +endif + +ifeq ($(MKDIR),) +MKDIR := mkdir -p +endif + +ifeq ($(RM),) +RM := rm -f +endif + +ifeq ($(CP),) +CP := cp +endif + +ifeq ($(ECHO),) +ECHO := echo +endif + +MEM_INIT_DIR ?= mem_init +HDL_SIM_DIR ?= $(MEM_INIT_DIR)/hdl_sim + +ifdef QUARTUS_PROJECT_DIR +MEM_INIT_INSTALL_DIR ?= $(patsubst %/,%,$(QUARTUS_PROJECT_DIR)) +ifdef SOPC_NAME +HDL_SIM_INSTALL_DIR ?= $(patsubst %/,%,$(QUARTUS_PROJECT_DIR))/$(SOPC_NAME)_sim +endif +endif + +MEM_INIT_DESCRIPTOR_FILE ?= $(MEM_INIT_DIR)/meminit.spd + +MEM_INIT_QIP_FILE ?= $(MEM_INIT_DIR)/meminit.qip + +#------------------------------------- +# Default Flash Boot Loaders +#------------------------------------- + +BOOT_LOADER_PATH ?= $(SOPC_KIT_NIOS2)/components/altera_nios2 +BOOT_LOADER_CFI ?= $(BOOT_LOADER_PATH)/boot_loader_cfi.srec +BOOT_LOADER_CFI_BE ?= $(BOOT_LOADER_PATH)/boot_loader_cfi_be.srec + + +#------------------------------------- +# Default Target +#------------------------------------- + +.PHONY: default_mem_init +ifeq ($(QSYS),1) +default_mem_init: mem_init_generate +else +default_mem_init: mem_init_install +endif +#------------------------------------- +# Runtime Macros +#------------------------------------- + +define post-process-info + @echo Post-processing to create $@... +endef + +target_stem = $(notdir $(basename $@)) + +mem_start_address = $($(target_stem)_START) +mem_end_address = $($(target_stem)_END) +mem_width = $($(target_stem)_WIDTH) +mem_endianness = $($(target_stem)_ENDIANNESS) +mem_create_lanes = $($(target_stem)_CREATE_LANES) + +mem_pad_flag = $($(target_stem)_PAD_FLAG) +mem_reloc_input_flag = $($(target_stem)_RELOC_INPUT_FLAG) +mem_no_zero_fill_flag = $($(target_stem)_NO_ZERO_FILL_FLAG) + +flash_mem_epcs_flag = $($(target_stem)_EPCS_FLAGS) +flash_mem_cfi_flag = $($(target_stem)_CFI_FLAGS) +flash_mem_boot_loader_flag = $($(target_stem)_BOOT_LOADER_FLAG) + +elf2dat_extra_args = $(mem_pad_flag) +elf2hex_extra_args = $(mem_no_zero_fill_flag) +elf2flash_extra_args = $(flash_mem_cfi_flag) $(flash_mem_epcs_flag) $(flash_mem_boot_loader_flag) +flash2dat_extra_args = $(mem_pad_flag) $(mem_reloc_input_flag) + +#------------------------------------------------------------------------------ +# BSP SPECIFIC CONTENT +# +# The content below is controlled by the BSP and SOPC System +#------------------------------------------------------------------------------ +#START OF BSP SPECIFIC + +#------------------------------------- +# Global Settings +#------------------------------------- + + +# The following TYPE comment allows tools to identify the 'type' of target this +# makefile is associated with. +# TYPE: BSP_MEMINIT_MAKEFILE + +# This following VERSION comment indicates the version of the tool used to +# generate this makefile. A makefile variable is provided for VERSION as well. +# ACDS_VERSION: 13.0sp1 +ACDS_VERSION := 13.0sp1 + +# This following BUILD_NUMBER comment indicates the build number of the tool +# used to generate this makefile. +# BUILD_NUMBER: 232 + +# Optimize for simulation +SIM_OPTIMIZE ?= 0 + +# The CPU reset address as needed by elf2flash +RESET_ADDRESS ?= 0x00000000 + +#------------------------------------- +# Pre-Initialized Memory Descriptions +#------------------------------------- + +# Memory: onchip_memory +MEM_0 := nios_system_onchip_memory +$(MEM_0)_NAME := onchip_memory +$(MEM_0)_MEM_INIT_FILE_PARAM_NAME := INIT_FILE +HEX_FILES += $(MEM_INIT_DIR)/$(MEM_0).hex +MEM_INIT_INSTALL_FILES += $(MEM_INIT_INSTALL_DIR)/$(MEM_0).hex +DAT_FILES += $(HDL_SIM_DIR)/$(MEM_0).dat +HDL_SIM_INSTALL_FILES += $(HDL_SIM_INSTALL_DIR)/$(MEM_0).dat +SYM_FILES += $(HDL_SIM_DIR)/$(MEM_0).sym +HDL_SIM_INSTALL_FILES += $(HDL_SIM_INSTALL_DIR)/$(MEM_0).sym +$(MEM_0)_START := 0x00000000 +$(MEM_0)_END := 0x00031fff +$(MEM_0)_HIERARCHICAL_PATH := onchip_memory +$(MEM_0)_WIDTH := 32 +$(MEM_0)_ENDIANNESS := --little-endian-mem +$(MEM_0)_CREATE_LANES := 0 + +.PHONY: onchip_memory +onchip_memory: check_elf_exists $(MEM_INIT_DIR)/$(MEM_0).hex $(HDL_SIM_DIR)/$(MEM_0).dat $(HDL_SIM_DIR)/$(MEM_0).sym + + +#END OF BSP SPECIFIC + +#------------------------------------- +# Pre-Initialized Memory Targets +#------------------------------------- + +.PHONY: mem_init_install mem_init_generate mem_init_clean + +ifeq ($(QSYS),1) +# Target mem_init_install is deprecated for QSys based systems +# To initialize onchip memories for Quartus II Synthesis with Qsys based systems: +# 1) Use "make mem_init_genearate" +# 2) Add the generated mem_init/meminit.qip file to your Quartus II Project +# +mem_init_install: + $(error Deprecated Makefile Target: '$@'. Use target 'mem_init_generate' and then add $(MEM_INIT_QIP_FILE) to your Quartus II Project) + +else # QSYS != 1, if SopcBuilder based system + +ifneq ($(MEM_INIT_INSTALL_DIR),) +mem_init_install: $(MEM_INIT_INSTALL_FILES) +endif + +ifneq ($(HDL_SIM_INSTALL_DIR),) +mem_init_install: $(HDL_SIM_INSTALL_FILES) +endif + +mem_init_install: mem_init_generate +ifeq ($(MEM_INIT_INSTALL_DIR),) + @echo "WARNING: MEM_INIT_INSTALL_DIR not set. Set your QUARTUS_PROJECT_DIR environment variable." +endif +ifeq ($(HDL_SIM_INSTALL_DIR),) + @echo "WARNING: HDL_SIM_INSTALL_DIR not set. Set your QUARTUS_PROJECT_DIR and SOPC_NAME environment variable." +endif + +$(MEM_INIT_INSTALL_FILES): $(MEM_INIT_INSTALL_DIR)/%: $(MEM_INIT_DIR)/% + @$(MKDIR) $(@D) + @$(CP) -v $< $@ + +$(HDL_SIM_INSTALL_FILES): $(HDL_SIM_INSTALL_DIR)/%: $(HDL_SIM_DIR)/% + @$(MKDIR) $(@D) + @$(CP) -v $< $@ + +endif # QSYS == 1 + + +mem_init_generate: hex dat sym flash $(MEM_INIT_DESCRIPTOR_FILE) $(MEM_INIT_QIP_FILE) + +mem_init_clean: + @$(RM) -r $(MEM_INIT_DIR) $(HDL_SIM_DIR) $(FLASH_FILES) + +.PHONY: hex dat sym flash + +hex: check_elf_exists $(HEX_FILES) + +dat: check_elf_exists $(DAT_FILES) + +sym: check_elf_exists $(SYM_FILES) + +flash: check_elf_exists $(FLASH_FILES) + +#------------------------------------- +# Pre-Initialized Memory Rules +#------------------------------------- + +.PHONY: check_elf_exists +check_elf_exists: $(ELF) +ifeq ($(ELF),) + $(error ELF var not set in mem_init.mk) +endif + +$(filter-out $(FLASH_DAT_FILES),$(DAT_FILES)): %.dat: $(ELF) + $(post-process-info) + @$(MKDIR) $(@D) + bash -c '$(ELF2DAT) --infile=$< --outfile=$@ \ + --base=$(mem_start_address) --end=$(mem_end_address) --width=$(mem_width) \ + $(mem_endianness) --create-lanes=$(mem_create_lanes) $(elf2dat_extra_args)' + +$(foreach i,0 1 2 3 4 5 6 7,%_lane$(i).dat): %.dat + @true + +$(HEX_FILES): %.hex: $(ELF) + $(post-process-info) + @$(MKDIR) $(@D) + bash -c '$(ELF2HEX) $< $(mem_start_address) $(mem_end_address) --width=$(mem_width) \ + $(mem_endianness) --create-lanes=$(mem_create_lanes) $(elf2hex_extra_args) $@' + +$(SYM_FILES): %.sym: $(ELF) + $(post-process-info) + @$(MKDIR) $(@D) + $(NM) -n $< > $@ + +$(FLASH_FILES): %.flash: $(ELF) + $(post-process-info) + @$(MKDIR) $(@D) + bash -c '$(ELF2FLASH) --input=$< --outfile=$@ --sim_optimize=$(SIM_OPTIMIZE) $(mem_endianness) \ + $(elf2flash_extra_args)' + +# +# Function generate_spd_entry +# Arg1: path to the memory initialization file +# Arg2: Type HEX or DAT +# Arg3: Output spd file to append +gen_spd_entry.BASE_FILE = $(basename $(notdir $1)) +gen_spd_entry.PARAM_NAME = $($(gen_spd_entry.BASE_FILE)_MEM_INIT_FILE_PARAM_NAME) +gen_spd_entry.MEM_PATH = $($(gen_spd_entry.BASE_FILE)_HIERARCHICAL_PATH) +gen_spd_entry.SETTINGS = $(strip \ + path=\"$1\" \ + type=\"$2\" \ + $(if $(gen_spd_entry.PARAM_NAME),initParamName=\"$(gen_spd_entry.PARAM_NAME)\") \ + $(if $(gen_spd_entry.MEM_PATH),memoryPath=\"$(gen_spd_entry.MEM_PATH)\") \ +) +define gen_spd_entry +$(ECHO) "" >> $3 +endef + +$(MEM_INIT_DESCRIPTOR_FILE).DAT_FILESET := $(patsubst $(dir $(MEM_INIT_DESCRIPTOR_FILE))%,%,$(DAT_FILES)) +$(MEM_INIT_DESCRIPTOR_FILE).HEX_FILESET := $(patsubst $(dir $(MEM_INIT_DESCRIPTOR_FILE))%,%,$(HEX_FILES)) + +$(MEM_INIT_DESCRIPTOR_FILE): %.spd: $(MEM_INIT_FILE) + $(post-process-info) + @$(MKDIR) $(@D) + @$(RM) $@ + @$(ECHO) "" > $@ + @$(ECHO) "" >> $@ + @$(foreach dat_file,$($@.DAT_FILESET),$(call gen_spd_entry,$(dat_file),DAT,$@) &&)true + @$(foreach hex_file,$($@.HEX_FILESET),$(call gen_spd_entry,$(hex_file),HEX,$@) &&)true + @$(ECHO) "" >> $@ + +.DELETE_ON_ERROR: $(MEM_INIT_DESCRIPTOR_FILE) + +$(MEM_INIT_QIP_FILE): %.qip: $(MEM_INIT_FILE) + $(post-process-info) + @$(MKDIR) $(@D) + @$(RM) $@ + @$(ECHO) "set_global_assignment -name SEARCH_PATH $$::quartus(qip_path)" > $@ + +.DELETE_ON_ERROR: $(MEM_INIT_QIP_FILE) diff --git a/software/qsys_tutorial_lcd4_bsp/memory.gdb b/software/qsys_tutorial_lcd4_bsp/memory.gdb new file mode 100644 index 0000000..919e9c3 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/memory.gdb @@ -0,0 +1,50 @@ +# memory.gdb - GDB memory region definitions +# +# Machine generated for CPU 'nios2_processor' in SOPC Builder design 'nios_system' +# SOPC Builder design path: C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.sopcinfo +# +# Generated: Fri Dec 02 01:35:14 JST 2016 + +# DO NOT MODIFY THIS FILE +# +# Changing this file will have subtle consequences +# which will almost certainly lead to a nonfunctioning +# system. If you do modify this file, be aware that your +# changes will be overwritten and lost when this file +# is generated again. +# +# DO NOT MODIFY THIS FILE + +# License Agreement +# +# Copyright (c) 2008 +# Altera Corporation, San Jose, California, USA. +# All rights reserved. +# +# Permission is hereby granted, free of charge, to any person obtaining a +# copy of this software and associated documentation files (the "Software"), +# to deal in the Software without restriction, including without limitation +# the rights to use, copy, modify, merge, publish, distribute, sublicense, +# and/or sell copies of the Software, and to permit persons to whom the +# Software is furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +# DEALINGS IN THE SOFTWARE. +# +# This agreement shall be governed in all respects by the laws of the State +# of California and by the laws of the United States of America. + +# Define memory regions for each memory connected to the CPU. +# The cache attribute is specified which improves GDB performance +# by allowing GDB to cache memory contents on the host. + +# onchip_memory +memory 0x0 0x32000 cache diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_alarm_start.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_alarm_start.d new file mode 100644 index 0000000..3bb20ea --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_alarm_start.d @@ -0,0 +1,22 @@ +obj/HAL/src/alt_alarm_start.o: HAL/src/alt_alarm_start.c \ + HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ + HAL/inc/priv/alt_alarm.h HAL/inc/alt_types.h HAL/inc/sys/alt_irq.h \ + HAL/inc/nios2.h system.h linker.h + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +system.h: + +linker.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_alarm_start.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_alarm_start.o new file mode 100644 index 0000000..f448c80 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_alarm_start.o Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_busy_sleep.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_busy_sleep.d new file mode 100644 index 0000000..e93e80c --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_busy_sleep.d @@ -0,0 +1,10 @@ +obj/HAL/src/alt_busy_sleep.o: HAL/src/alt_busy_sleep.c system.h linker.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_busy_sleep.h + +system.h: + +linker.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_busy_sleep.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_busy_sleep.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_busy_sleep.o new file mode 100644 index 0000000..a0ab6c3 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_busy_sleep.o Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_close.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_close.d new file mode 100644 index 0000000..fbbab9c --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_close.d @@ -0,0 +1,34 @@ +obj/HAL/src/alt_close.o: HAL/src/alt_close.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h HAL/inc/priv/alt_file.h \ + HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h \ + HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_close.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_close.o new file mode 100644 index 0000000..1d5963f --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_close.o Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_dcache_flush.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_dcache_flush.d new file mode 100644 index 0000000..a0eaf8a --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_dcache_flush.d @@ -0,0 +1,15 @@ +obj/HAL/src/alt_dcache_flush.o: HAL/src/alt_dcache_flush.c \ + HAL/inc/nios2.h system.h linker.h HAL/inc/alt_types.h \ + HAL/inc/sys/alt_cache.h HAL/inc/alt_types.h + +HAL/inc/nios2.h: + +system.h: + +linker.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_cache.h: + +HAL/inc/alt_types.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_dcache_flush.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_dcache_flush.o new file mode 100644 index 0000000..c808c9c --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_dcache_flush.o Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_dcache_flush_all.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_dcache_flush_all.d new file mode 100644 index 0000000..792c3e4 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_dcache_flush_all.d @@ -0,0 +1,15 @@ +obj/HAL/src/alt_dcache_flush_all.o: HAL/src/alt_dcache_flush_all.c \ + HAL/inc/nios2.h system.h linker.h HAL/inc/alt_types.h \ + HAL/inc/sys/alt_cache.h HAL/inc/alt_types.h + +HAL/inc/nios2.h: + +system.h: + +linker.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_cache.h: + +HAL/inc/alt_types.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_dcache_flush_all.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_dcache_flush_all.o new file mode 100644 index 0000000..63cbf72 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_dcache_flush_all.o Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_dcache_flush_no_writeback.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_dcache_flush_no_writeback.d new file mode 100644 index 0000000..867c42b --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_dcache_flush_no_writeback.d @@ -0,0 +1,16 @@ +obj/HAL/src/alt_dcache_flush_no_writeback.o: \ + HAL/src/alt_dcache_flush_no_writeback.c HAL/inc/nios2.h system.h \ + linker.h HAL/inc/alt_types.h HAL/inc/sys/alt_cache.h \ + HAL/inc/alt_types.h + +HAL/inc/nios2.h: + +system.h: + +linker.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_cache.h: + +HAL/inc/alt_types.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_dcache_flush_no_writeback.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_dcache_flush_no_writeback.o new file mode 100644 index 0000000..d398537 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_dcache_flush_no_writeback.o Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_dev.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_dev.d new file mode 100644 index 0000000..cd9b1d4 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_dev.d @@ -0,0 +1,34 @@ +obj/HAL/src/alt_dev.o: HAL/src/alt_dev.c HAL/inc/sys/alt_dev.h system.h \ + linker.h HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h \ + HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h HAL/inc/alt_types.h \ + system.h + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/alt_types.h: + +system.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_dev.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_dev.o new file mode 100644 index 0000000..b1269dc --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_dev.o Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_dev_llist_insert.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_dev_llist_insert.d new file mode 100644 index 0000000..344d065 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_dev_llist_insert.d @@ -0,0 +1,13 @@ +obj/HAL/src/alt_dev_llist_insert.o: HAL/src/alt_dev_llist_insert.c \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/alt_types.h HAL/inc/sys/alt_errno.h + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_errno.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_dev_llist_insert.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_dev_llist_insert.o new file mode 100644 index 0000000..ff99a15 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_dev_llist_insert.o Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_dma_rxchan_open.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_dma_rxchan_open.d new file mode 100644 index 0000000..fb21fed --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_dma_rxchan_open.d @@ -0,0 +1,35 @@ +obj/HAL/src/alt_dma_rxchan_open.o: HAL/src/alt_dma_rxchan_open.c \ + HAL/inc/sys/alt_dma.h HAL/inc/sys/alt_dma_dev.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/alt_types.h HAL/inc/sys/alt_errno.h \ + HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h system.h linker.h \ + HAL/inc/sys/alt_llist.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h + +HAL/inc/sys/alt_dma.h: + +HAL/inc/sys/alt_dma_dev.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_errno.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_dma_rxchan_open.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_dma_rxchan_open.o new file mode 100644 index 0000000..037b093 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_dma_rxchan_open.o Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_dma_txchan_open.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_dma_txchan_open.d new file mode 100644 index 0000000..500b95c --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_dma_txchan_open.d @@ -0,0 +1,35 @@ +obj/HAL/src/alt_dma_txchan_open.o: HAL/src/alt_dma_txchan_open.c \ + HAL/inc/sys/alt_dma.h HAL/inc/sys/alt_dma_dev.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/alt_types.h HAL/inc/sys/alt_errno.h \ + HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h system.h linker.h \ + HAL/inc/sys/alt_llist.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h + +HAL/inc/sys/alt_dma.h: + +HAL/inc/sys/alt_dma_dev.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_errno.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_dma_txchan_open.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_dma_txchan_open.o new file mode 100644 index 0000000..710be6e --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_dma_txchan_open.o Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_do_ctors.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_do_ctors.d new file mode 100644 index 0000000..daf8baf --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_do_ctors.d @@ -0,0 +1 @@ +obj/HAL/src/alt_do_ctors.o: HAL/src/alt_do_ctors.c diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_do_ctors.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_do_ctors.o new file mode 100644 index 0000000..be38516 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_do_ctors.o Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_do_dtors.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_do_dtors.d new file mode 100644 index 0000000..c3471eb --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_do_dtors.d @@ -0,0 +1 @@ +obj/HAL/src/alt_do_dtors.o: HAL/src/alt_do_dtors.c diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_do_dtors.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_do_dtors.o new file mode 100644 index 0000000..bf6f4e7 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_do_dtors.o Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_env_lock.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_env_lock.d new file mode 100644 index 0000000..634d7b0 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_env_lock.d @@ -0,0 +1 @@ +obj/HAL/src/alt_env_lock.o: HAL/src/alt_env_lock.c diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_env_lock.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_env_lock.o new file mode 100644 index 0000000..5aca054 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_env_lock.o Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_environ.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_environ.d new file mode 100644 index 0000000..e9ca295 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_environ.d @@ -0,0 +1,3 @@ +obj/HAL/src/alt_environ.o: HAL/src/alt_environ.c HAL/inc/os/alt_syscall.h + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_environ.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_environ.o new file mode 100644 index 0000000..5dd291e --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_environ.o Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_errno.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_errno.d new file mode 100644 index 0000000..29ca544 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_errno.d @@ -0,0 +1,8 @@ +obj/HAL/src/alt_errno.o: HAL/src/alt_errno.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/alt_types.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/alt_types.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_errno.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_errno.o new file mode 100644 index 0000000..1b96c0a --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_errno.o Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_exception_entry.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_exception_entry.d new file mode 100644 index 0000000..540567e --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_exception_entry.d @@ -0,0 +1,6 @@ +obj/HAL/src/alt_exception_entry.o: HAL/src/alt_exception_entry.S system.h \ + linker.h + +system.h: + +linker.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_exception_entry.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_exception_entry.o new file mode 100644 index 0000000..da2bc74 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_exception_entry.o Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_exception_muldiv.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_exception_muldiv.d new file mode 100644 index 0000000..63d66a7 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_exception_muldiv.d @@ -0,0 +1 @@ +obj/HAL/src/alt_exception_muldiv.o: HAL/src/alt_exception_muldiv.S diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_exception_muldiv.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_exception_muldiv.o new file mode 100644 index 0000000..cfff51d --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_exception_muldiv.o Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_exception_trap.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_exception_trap.d new file mode 100644 index 0000000..6e18488 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_exception_trap.d @@ -0,0 +1 @@ +obj/HAL/src/alt_exception_trap.o: HAL/src/alt_exception_trap.S diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_exception_trap.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_exception_trap.o new file mode 100644 index 0000000..0949730 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_exception_trap.o Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_execve.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_execve.d new file mode 100644 index 0000000..9cef7d2 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_execve.d @@ -0,0 +1,10 @@ +obj/HAL/src/alt_execve.o: HAL/src/alt_execve.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_execve.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_execve.o new file mode 100644 index 0000000..8bcdf4e --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_execve.o Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_exit.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_exit.d new file mode 100644 index 0000000..a779da8 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_exit.d @@ -0,0 +1,26 @@ +obj/HAL/src/alt_exit.o: HAL/src/alt_exit.c HAL/inc/sys/alt_irq.h \ + HAL/inc/nios2.h HAL/inc/alt_types.h system.h linker.h \ + HAL/inc/sys/alt_sim.h HAL/inc/os/alt_hooks.h HAL/inc/os/alt_syscall.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_log_printf.h system.h + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_sim.h: + +HAL/inc/os/alt_hooks.h: + +HAL/inc/os/alt_syscall.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_log_printf.h: + +system.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_exit.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_exit.o new file mode 100644 index 0000000..ba0dd15 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_exit.o Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_fcntl.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_fcntl.d new file mode 100644 index 0000000..527f242 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_fcntl.d @@ -0,0 +1,34 @@ +obj/HAL/src/alt_fcntl.o: HAL/src/alt_fcntl.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h \ + system.h linker.h HAL/inc/sys/alt_llist.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h HAL/inc/alt_types.h \ + HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_fcntl.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_fcntl.o new file mode 100644 index 0000000..8530c9f --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_fcntl.o Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_fd_lock.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_fd_lock.d new file mode 100644 index 0000000..93daeac --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_fd_lock.d @@ -0,0 +1,27 @@ +obj/HAL/src/alt_fd_lock.o: HAL/src/alt_fd_lock.c HAL/inc/priv/alt_file.h \ + HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_fd_lock.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_fd_lock.o new file mode 100644 index 0000000..8fe3cf5 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_fd_lock.o Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_fd_unlock.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_fd_unlock.d new file mode 100644 index 0000000..45a3207 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_fd_unlock.d @@ -0,0 +1,27 @@ +obj/HAL/src/alt_fd_unlock.o: HAL/src/alt_fd_unlock.c \ + HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h system.h linker.h \ + HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_fd_unlock.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_fd_unlock.o new file mode 100644 index 0000000..e56798c --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_fd_unlock.o Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_find_dev.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_find_dev.d new file mode 100644 index 0000000..98336f8 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_find_dev.d @@ -0,0 +1,31 @@ +obj/HAL/src/alt_find_dev.o: HAL/src/alt_find_dev.c HAL/inc/sys/alt_dev.h \ + system.h linker.h HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h \ + HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h HAL/inc/alt_types.h + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/alt_types.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_find_dev.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_find_dev.o new file mode 100644 index 0000000..152b073 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_find_dev.o Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_find_file.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_find_file.d new file mode 100644 index 0000000..d1150ca --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_find_file.d @@ -0,0 +1,32 @@ +obj/HAL/src/alt_find_file.o: HAL/src/alt_find_file.c \ + HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h HAL/inc/priv/alt_file.h \ + HAL/inc/sys/alt_dev.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h \ + HAL/inc/alt_types.h + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/alt_types.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_find_file.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_find_file.o new file mode 100644 index 0000000..d2e541b --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_find_file.o Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_flash_dev.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_flash_dev.d new file mode 100644 index 0000000..8835e8f --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_flash_dev.d @@ -0,0 +1,34 @@ +obj/HAL/src/alt_flash_dev.o: HAL/src/alt_flash_dev.c \ + HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h HAL/inc/sys/alt_flash_dev.h \ + HAL/inc/sys/alt_flash_types.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h \ + system.h linker.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_flash_dev.h: + +HAL/inc/sys/alt_flash_types.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_flash_dev.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_flash_dev.o new file mode 100644 index 0000000..74bc7e8 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_flash_dev.o Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_fork.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_fork.d new file mode 100644 index 0000000..492be65 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_fork.d @@ -0,0 +1,10 @@ +obj/HAL/src/alt_fork.o: HAL/src/alt_fork.c HAL/inc/sys/alt_warning.h \ + HAL/inc/sys/alt_errno.h HAL/inc/alt_types.h HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_warning.h: + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_fork.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_fork.o new file mode 100644 index 0000000..a383d61 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_fork.o Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_fs_reg.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_fs_reg.d new file mode 100644 index 0000000..d8f95ab --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_fs_reg.d @@ -0,0 +1,29 @@ +obj/HAL/src/alt_fs_reg.o: HAL/src/alt_fs_reg.c HAL/inc/sys/alt_dev.h \ + system.h linker.h HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h \ + HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_fs_reg.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_fs_reg.o new file mode 100644 index 0000000..2b362d2 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_fs_reg.o Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_fstat.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_fstat.d new file mode 100644 index 0000000..0d021b8 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_fstat.d @@ -0,0 +1,36 @@ +obj/HAL/src/alt_fstat.o: HAL/src/alt_fstat.c HAL/inc/sys/alt_dev.h \ + system.h linker.h HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h HAL/inc/sys/alt_errno.h \ + HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/sys/alt_errno.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_fstat.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_fstat.o new file mode 100644 index 0000000..3f2b8a4 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_fstat.o Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_get_fd.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_get_fd.d new file mode 100644 index 0000000..9a4daaa --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_get_fd.d @@ -0,0 +1,34 @@ +obj/HAL/src/alt_get_fd.o: HAL/src/alt_get_fd.c HAL/inc/sys/alt_dev.h \ + system.h linker.h HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h \ + HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h HAL/inc/alt_types.h \ + system.h + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/alt_types.h: + +system.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_get_fd.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_get_fd.o new file mode 100644 index 0000000..085b9ea --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_get_fd.o Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_getchar.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_getchar.d new file mode 100644 index 0000000..2a468de --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_getchar.d @@ -0,0 +1 @@ +obj/HAL/src/alt_getchar.o: HAL/src/alt_getchar.c diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_getchar.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_getchar.o new file mode 100644 index 0000000..3e51a29 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_getchar.o Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_getpid.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_getpid.d new file mode 100644 index 0000000..d9499b9 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_getpid.d @@ -0,0 +1,3 @@ +obj/HAL/src/alt_getpid.o: HAL/src/alt_getpid.c HAL/inc/os/alt_syscall.h + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_getpid.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_getpid.o new file mode 100644 index 0000000..804be35 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_getpid.o Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_gettod.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_gettod.d new file mode 100644 index 0000000..cf3cf34 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_gettod.d @@ -0,0 +1,17 @@ +obj/HAL/src/alt_gettod.o: HAL/src/alt_gettod.c HAL/inc/sys/alt_alarm.h \ + HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h HAL/inc/priv/alt_alarm.h \ + HAL/inc/alt_types.h HAL/inc/alt_types.h HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/alt_types.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_gettod.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_gettod.o new file mode 100644 index 0000000..e2d99e2 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_gettod.o Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_gmon.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_gmon.d new file mode 100644 index 0000000..e9469ab --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_gmon.d @@ -0,0 +1,24 @@ +obj/HAL/src/alt_gmon.o: HAL/src/alt_gmon.c HAL/inc/priv/nios2_gmon_data.h \ + HAL/inc/sys/alt_irq.h HAL/inc/nios2.h HAL/inc/alt_types.h system.h \ + linker.h HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_alarm.h HAL/inc/alt_types.h + +HAL/inc/priv/nios2_gmon_data.h: + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/alt_types.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_gmon.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_gmon.o new file mode 100644 index 0000000..96a7c68 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_gmon.o Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_icache_flush.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_icache_flush.d new file mode 100644 index 0000000..2e4ddd1 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_icache_flush.d @@ -0,0 +1,15 @@ +obj/HAL/src/alt_icache_flush.o: HAL/src/alt_icache_flush.c \ + HAL/inc/nios2.h system.h linker.h HAL/inc/alt_types.h \ + HAL/inc/sys/alt_cache.h HAL/inc/alt_types.h + +HAL/inc/nios2.h: + +system.h: + +linker.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_cache.h: + +HAL/inc/alt_types.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_icache_flush.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_icache_flush.o new file mode 100644 index 0000000..2619923 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_icache_flush.o Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_icache_flush_all.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_icache_flush_all.d new file mode 100644 index 0000000..47cfbf3 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_icache_flush_all.d @@ -0,0 +1,15 @@ +obj/HAL/src/alt_icache_flush_all.o: HAL/src/alt_icache_flush_all.c \ + HAL/inc/nios2.h system.h linker.h HAL/inc/alt_types.h \ + HAL/inc/sys/alt_cache.h HAL/inc/alt_types.h + +HAL/inc/nios2.h: + +system.h: + +linker.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_cache.h: + +HAL/inc/alt_types.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_icache_flush_all.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_icache_flush_all.o new file mode 100644 index 0000000..c1d3c7c --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_icache_flush_all.o Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_iic.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_iic.d new file mode 100644 index 0000000..a709e0c --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_iic.d @@ -0,0 +1,29 @@ +obj/HAL/src/alt_iic.o: HAL/src/alt_iic.c system.h linker.h \ + HAL/inc/sys/alt_irq.h HAL/inc/nios2.h HAL/inc/alt_types.h system.h \ + HAL/inc/priv/alt_iic_isr_register.h HAL/inc/alt_types.h \ + HAL/inc/sys/alt_irq.h HAL/inc/priv/alt_legacy_irq.h system.h \ + HAL/inc/nios2.h + +system.h: + +linker.h: + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +HAL/inc/priv/alt_iic_isr_register.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_irq.h: + +HAL/inc/priv/alt_legacy_irq.h: + +system.h: + +HAL/inc/nios2.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_iic.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_iic.o new file mode 100644 index 0000000..58dc6c1 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_iic.o Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_iic_isr_register.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_iic_isr_register.d new file mode 100644 index 0000000..d0470ae --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_iic_isr_register.d @@ -0,0 +1,30 @@ +obj/HAL/src/alt_iic_isr_register.o: HAL/src/alt_iic_isr_register.c \ + system.h linker.h HAL/inc/alt_types.h HAL/inc/sys/alt_irq.h \ + HAL/inc/nios2.h HAL/inc/alt_types.h system.h \ + HAL/inc/priv/alt_iic_isr_register.h HAL/inc/alt_types.h \ + HAL/inc/sys/alt_irq.h HAL/inc/sys/alt_irq_entry.h \ + HAL/inc/priv/alt_irq_table.h + +system.h: + +linker.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +HAL/inc/priv/alt_iic_isr_register.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_irq.h: + +HAL/inc/sys/alt_irq_entry.h: + +HAL/inc/priv/alt_irq_table.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_iic_isr_register.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_iic_isr_register.o new file mode 100644 index 0000000..23a1763 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_iic_isr_register.o Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_instruction_exception_entry.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_instruction_exception_entry.d new file mode 100644 index 0000000..6d0705f --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_instruction_exception_entry.d @@ -0,0 +1,18 @@ +obj/HAL/src/alt_instruction_exception_entry.o: \ + HAL/src/alt_instruction_exception_entry.c HAL/inc/sys/alt_exceptions.h \ + HAL/inc/alt_types.h system.h linker.h HAL/inc/nios2.h \ + HAL/inc/alt_types.h system.h + +HAL/inc/sys/alt_exceptions.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_instruction_exception_entry.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_instruction_exception_entry.o new file mode 100644 index 0000000..5a3b998 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_instruction_exception_entry.o Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_instruction_exception_register.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_instruction_exception_register.d new file mode 100644 index 0000000..d4fac04 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_instruction_exception_register.d @@ -0,0 +1,16 @@ +obj/HAL/src/alt_instruction_exception_register.o: \ + HAL/src/alt_instruction_exception_register.c \ + HAL/inc/sys/alt_exceptions.h HAL/inc/alt_types.h system.h linker.h \ + HAL/inc/alt_types.h system.h + +HAL/inc/sys/alt_exceptions.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: + +HAL/inc/alt_types.h: + +system.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_instruction_exception_register.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_instruction_exception_register.o new file mode 100644 index 0000000..b6dd600 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_instruction_exception_register.o Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_io_redirect.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_io_redirect.d new file mode 100644 index 0000000..8228365 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_io_redirect.d @@ -0,0 +1,29 @@ +obj/HAL/src/alt_io_redirect.o: HAL/src/alt_io_redirect.c \ + HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h HAL/inc/priv/alt_file.h \ + HAL/inc/sys/alt_dev.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_io_redirect.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_io_redirect.o new file mode 100644 index 0000000..ed56196 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_io_redirect.o Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_ioctl.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_ioctl.d new file mode 100644 index 0000000..5a705e4 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_ioctl.d @@ -0,0 +1,36 @@ +obj/HAL/src/alt_ioctl.o: HAL/src/alt_ioctl.c HAL/inc/sys/ioctl.h \ + HAL/inc/sys/alt_errno.h HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h \ + HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h system.h linker.h \ + HAL/inc/sys/alt_llist.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h HAL/inc/os/alt_syscall.h + +HAL/inc/sys/ioctl.h: + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_ioctl.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_ioctl.o new file mode 100644 index 0000000..1fd0e47 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_ioctl.o Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_irq_entry.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_irq_entry.d new file mode 100644 index 0000000..9ec3751 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_irq_entry.d @@ -0,0 +1,5 @@ +obj/HAL/src/alt_irq_entry.o: HAL/src/alt_irq_entry.S system.h linker.h + +system.h: + +linker.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_irq_entry.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_irq_entry.o new file mode 100644 index 0000000..b437282 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_irq_entry.o Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_irq_handler.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_irq_handler.d new file mode 100644 index 0000000..6fb668f --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_irq_handler.d @@ -0,0 +1,19 @@ +obj/HAL/src/alt_irq_handler.o: HAL/src/alt_irq_handler.c system.h \ + linker.h HAL/inc/sys/alt_irq.h HAL/inc/nios2.h HAL/inc/alt_types.h \ + system.h HAL/inc/os/alt_hooks.h HAL/inc/alt_types.h + +system.h: + +linker.h: + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +HAL/inc/os/alt_hooks.h: + +HAL/inc/alt_types.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_irq_handler.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_irq_handler.o new file mode 100644 index 0000000..f688411 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_irq_handler.o Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_irq_register.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_irq_register.d new file mode 100644 index 0000000..3df2f8a --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_irq_register.d @@ -0,0 +1,36 @@ +obj/HAL/src/alt_irq_register.o: HAL/src/alt_irq_register.c system.h \ + linker.h HAL/inc/sys/alt_irq.h HAL/inc/nios2.h HAL/inc/alt_types.h \ + system.h HAL/inc/priv/alt_legacy_irq.h system.h HAL/inc/nios2.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_irq.h HAL/inc/os/alt_hooks.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_irq_entry.h \ + HAL/inc/priv/alt_irq_table.h + +system.h: + +linker.h: + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +HAL/inc/priv/alt_legacy_irq.h: + +system.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_irq.h: + +HAL/inc/os/alt_hooks.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_irq_entry.h: + +HAL/inc/priv/alt_irq_table.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_irq_register.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_irq_register.o new file mode 100644 index 0000000..e319407 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_irq_register.o Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_irq_vars.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_irq_vars.d new file mode 100644 index 0000000..f316558 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_irq_vars.d @@ -0,0 +1,8 @@ +obj/HAL/src/alt_irq_vars.o: HAL/src/alt_irq_vars.c HAL/inc/alt_types.h \ + system.h linker.h + +HAL/inc/alt_types.h: + +system.h: + +linker.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_irq_vars.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_irq_vars.o new file mode 100644 index 0000000..4e13c7a --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_irq_vars.o Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_isatty.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_isatty.d new file mode 100644 index 0000000..4a21885 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_isatty.d @@ -0,0 +1,36 @@ +obj/HAL/src/alt_isatty.o: HAL/src/alt_isatty.c HAL/inc/sys/alt_dev.h \ + system.h linker.h HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_errno.h HAL/inc/sys/alt_warning.h \ + HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_errno.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_isatty.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_isatty.o new file mode 100644 index 0000000..6844ad9 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_isatty.o Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_kill.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_kill.d new file mode 100644 index 0000000..0c14ae8 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_kill.d @@ -0,0 +1,8 @@ +obj/HAL/src/alt_kill.o: HAL/src/alt_kill.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_kill.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_kill.o new file mode 100644 index 0000000..583ec15 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_kill.o Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_link.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_link.d new file mode 100644 index 0000000..dc844c6 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_link.d @@ -0,0 +1,10 @@ +obj/HAL/src/alt_link.o: HAL/src/alt_link.c HAL/inc/sys/alt_warning.h \ + HAL/inc/sys/alt_errno.h HAL/inc/alt_types.h HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_warning.h: + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_link.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_link.o new file mode 100644 index 0000000..4837403 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_link.o Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_load.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_load.d new file mode 100644 index 0000000..d496ab8 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_load.d @@ -0,0 +1,8 @@ +obj/HAL/src/alt_load.o: HAL/src/alt_load.c HAL/inc/sys/alt_load.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_cache.h + +HAL/inc/sys/alt_load.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_cache.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_load.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_load.o new file mode 100644 index 0000000..1bd1f85 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_load.o Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_log_macro.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_log_macro.d new file mode 100644 index 0000000..9768c1f --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_log_macro.d @@ -0,0 +1 @@ +obj/HAL/src/alt_log_macro.o: HAL/src/alt_log_macro.S diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_log_macro.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_log_macro.o new file mode 100644 index 0000000..489e2cc --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_log_macro.o Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_log_printf.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_log_printf.d new file mode 100644 index 0000000..251ff6d --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_log_printf.d @@ -0,0 +1 @@ +obj/HAL/src/alt_log_printf.o: HAL/src/alt_log_printf.c diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_log_printf.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_log_printf.o new file mode 100644 index 0000000..a03c33d --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_log_printf.o Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_lseek.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_lseek.d new file mode 100644 index 0000000..25ed783 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_lseek.d @@ -0,0 +1,34 @@ +obj/HAL/src/alt_lseek.o: HAL/src/alt_lseek.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h HAL/inc/priv/alt_file.h \ + HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h \ + HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_lseek.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_lseek.o new file mode 100644 index 0000000..2881303 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_lseek.o Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_main.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_main.d new file mode 100644 index 0000000..afdfda0 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_main.d @@ -0,0 +1,47 @@ +obj/HAL/src/alt_main.o: HAL/src/alt_main.c HAL/inc/sys/alt_dev.h system.h \ + linker.h HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_sys_init.h HAL/inc/sys/alt_irq.h \ + HAL/inc/nios2.h HAL/inc/os/alt_hooks.h HAL/inc/priv/alt_file.h \ + HAL/inc/sys/alt_dev.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h \ + HAL/inc/alt_types.h system.h HAL/inc/sys/alt_log_printf.h system.h + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_sys_init.h: + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/os/alt_hooks.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/alt_types.h: + +system.h: + +HAL/inc/sys/alt_log_printf.h: + +system.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_main.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_main.o new file mode 100644 index 0000000..6cd08ef --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_main.o Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_malloc_lock.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_malloc_lock.d new file mode 100644 index 0000000..4ed35c2 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_malloc_lock.d @@ -0,0 +1 @@ +obj/HAL/src/alt_malloc_lock.o: HAL/src/alt_malloc_lock.c diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_malloc_lock.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_malloc_lock.o new file mode 100644 index 0000000..aafd2ee --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_malloc_lock.o Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_mcount.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_mcount.d new file mode 100644 index 0000000..1203efc --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_mcount.d @@ -0,0 +1 @@ +obj/HAL/src/alt_mcount.o: HAL/src/alt_mcount.S diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_mcount.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_mcount.o new file mode 100644 index 0000000..9222010 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_mcount.o Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_open.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_open.d new file mode 100644 index 0000000..a2aacd9 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_open.d @@ -0,0 +1,36 @@ +obj/HAL/src/alt_open.o: HAL/src/alt_open.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h HAL/inc/priv/alt_file.h \ + HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h \ + HAL/inc/alt_types.h HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_open.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_open.o new file mode 100644 index 0000000..4d10367 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_open.o Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_printf.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_printf.d new file mode 100644 index 0000000..3ce68a4 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_printf.d @@ -0,0 +1,3 @@ +obj/HAL/src/alt_printf.o: HAL/src/alt_printf.c HAL/inc/sys/alt_stdio.h + +HAL/inc/sys/alt_stdio.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_printf.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_printf.o new file mode 100644 index 0000000..02a9989 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_printf.o Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_putchar.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_putchar.d new file mode 100644 index 0000000..0f19fb8 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_putchar.d @@ -0,0 +1 @@ +obj/HAL/src/alt_putchar.o: HAL/src/alt_putchar.c diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_putchar.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_putchar.o new file mode 100644 index 0000000..9ad652b --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_putchar.o Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_putstr.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_putstr.d new file mode 100644 index 0000000..ed03fdc --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_putstr.d @@ -0,0 +1 @@ +obj/HAL/src/alt_putstr.o: HAL/src/alt_putstr.c diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_putstr.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_putstr.o new file mode 100644 index 0000000..d320ab7 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_putstr.o Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_read.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_read.d new file mode 100644 index 0000000..4081a45 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_read.d @@ -0,0 +1,34 @@ +obj/HAL/src/alt_read.o: HAL/src/alt_read.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h HAL/inc/priv/alt_file.h \ + HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h \ + HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_read.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_read.o new file mode 100644 index 0000000..3a2cb87 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_read.o Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_release_fd.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_release_fd.d new file mode 100644 index 0000000..0e3acb5 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_release_fd.d @@ -0,0 +1,29 @@ +obj/HAL/src/alt_release_fd.o: HAL/src/alt_release_fd.c \ + HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h HAL/inc/priv/alt_file.h \ + HAL/inc/sys/alt_dev.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_release_fd.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_release_fd.o new file mode 100644 index 0000000..f492037 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_release_fd.o Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_remap_cached.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_remap_cached.d new file mode 100644 index 0000000..b5fb151 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_remap_cached.d @@ -0,0 +1,10 @@ +obj/HAL/src/alt_remap_cached.o: HAL/src/alt_remap_cached.c \ + HAL/inc/sys/alt_cache.h HAL/inc/alt_types.h system.h linker.h + +HAL/inc/sys/alt_cache.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_remap_cached.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_remap_cached.o new file mode 100644 index 0000000..6dfdb91 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_remap_cached.o Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_remap_uncached.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_remap_uncached.d new file mode 100644 index 0000000..0423405 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_remap_uncached.d @@ -0,0 +1,10 @@ +obj/HAL/src/alt_remap_uncached.o: HAL/src/alt_remap_uncached.c \ + HAL/inc/sys/alt_cache.h HAL/inc/alt_types.h system.h linker.h + +HAL/inc/sys/alt_cache.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_remap_uncached.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_remap_uncached.o new file mode 100644 index 0000000..db61c94 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_remap_uncached.o Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_rename.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_rename.d new file mode 100644 index 0000000..b7af4b2 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_rename.d @@ -0,0 +1,10 @@ +obj/HAL/src/alt_rename.o: HAL/src/alt_rename.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_rename.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_rename.o new file mode 100644 index 0000000..fa33675 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_rename.o Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_sbrk.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_sbrk.d new file mode 100644 index 0000000..a0771ae --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_sbrk.d @@ -0,0 +1,19 @@ +obj/HAL/src/alt_sbrk.o: HAL/src/alt_sbrk.c HAL/inc/os/alt_syscall.h \ + HAL/inc/sys/alt_irq.h HAL/inc/nios2.h HAL/inc/alt_types.h system.h \ + linker.h HAL/inc/sys/alt_stack.h system.h + +HAL/inc/os/alt_syscall.h: + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_stack.h: + +system.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_sbrk.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_sbrk.o new file mode 100644 index 0000000..aa724fc --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_sbrk.o Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_settod.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_settod.d new file mode 100644 index 0000000..56718d5 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_settod.d @@ -0,0 +1,17 @@ +obj/HAL/src/alt_settod.o: HAL/src/alt_settod.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_alarm.h HAL/inc/alt_types.h HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_settod.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_settod.o new file mode 100644 index 0000000..1f3f495 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_settod.o Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_software_exception.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_software_exception.d new file mode 100644 index 0000000..fab4023 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_software_exception.d @@ -0,0 +1,6 @@ +obj/HAL/src/alt_software_exception.o: HAL/src/alt_software_exception.S \ + system.h linker.h + +system.h: + +linker.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_software_exception.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_software_exception.o new file mode 100644 index 0000000..f9e01c2 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_software_exception.o Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_stat.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_stat.d new file mode 100644 index 0000000..8a63c27 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_stat.d @@ -0,0 +1,3 @@ +obj/HAL/src/alt_stat.o: HAL/src/alt_stat.c HAL/inc/os/alt_syscall.h + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_stat.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_stat.o new file mode 100644 index 0000000..4ae64f5 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_stat.o Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_tick.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_tick.d new file mode 100644 index 0000000..ddbb281 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_tick.d @@ -0,0 +1,27 @@ +obj/HAL/src/alt_tick.o: HAL/src/alt_tick.c HAL/inc/sys/alt_irq.h \ + HAL/inc/nios2.h HAL/inc/alt_types.h system.h linker.h \ + HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_alarm.h HAL/inc/alt_types.h HAL/inc/os/alt_hooks.h \ + HAL/inc/alt_types.h + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_hooks.h: + +HAL/inc/alt_types.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_tick.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_tick.o new file mode 100644 index 0000000..ddc243c --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_tick.o Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_times.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_times.d new file mode 100644 index 0000000..4bad83d --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_times.d @@ -0,0 +1,17 @@ +obj/HAL/src/alt_times.o: HAL/src/alt_times.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_alarm.h HAL/inc/alt_types.h HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_times.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_times.o new file mode 100644 index 0000000..d54db07 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_times.o Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_uncached_free.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_uncached_free.d new file mode 100644 index 0000000..d74ef4b --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_uncached_free.d @@ -0,0 +1,10 @@ +obj/HAL/src/alt_uncached_free.o: HAL/src/alt_uncached_free.c \ + HAL/inc/sys/alt_cache.h HAL/inc/alt_types.h system.h linker.h + +HAL/inc/sys/alt_cache.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_uncached_free.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_uncached_free.o new file mode 100644 index 0000000..003b83e --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_uncached_free.o Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_uncached_malloc.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_uncached_malloc.d new file mode 100644 index 0000000..16799fb --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_uncached_malloc.d @@ -0,0 +1,10 @@ +obj/HAL/src/alt_uncached_malloc.o: HAL/src/alt_uncached_malloc.c \ + HAL/inc/sys/alt_cache.h HAL/inc/alt_types.h system.h linker.h + +HAL/inc/sys/alt_cache.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_uncached_malloc.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_uncached_malloc.o new file mode 100644 index 0000000..0481ead --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_uncached_malloc.o Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_unlink.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_unlink.d new file mode 100644 index 0000000..0205f86 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_unlink.d @@ -0,0 +1,10 @@ +obj/HAL/src/alt_unlink.o: HAL/src/alt_unlink.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_unlink.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_unlink.o new file mode 100644 index 0000000..8cf1437 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_unlink.o Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_usleep.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_usleep.d new file mode 100644 index 0000000..b5eca45 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_usleep.d @@ -0,0 +1,6 @@ +obj/HAL/src/alt_usleep.o: HAL/src/alt_usleep.c \ + HAL/inc/priv/alt_busy_sleep.h HAL/inc/os/alt_syscall.h + +HAL/inc/priv/alt_busy_sleep.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_usleep.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_usleep.o new file mode 100644 index 0000000..d3a2e4e --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_usleep.o Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_wait.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_wait.d new file mode 100644 index 0000000..f47f5df --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_wait.d @@ -0,0 +1,8 @@ +obj/HAL/src/alt_wait.o: HAL/src/alt_wait.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_wait.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_wait.o new file mode 100644 index 0000000..82033f5 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_wait.o Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_write.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_write.d new file mode 100644 index 0000000..0bc4b7c --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_write.d @@ -0,0 +1,38 @@ +obj/HAL/src/alt_write.o: HAL/src/alt_write.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h HAL/inc/priv/alt_file.h \ + HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h \ + HAL/inc/os/alt_syscall.h HAL/inc/sys/alt_log_printf.h system.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_syscall.h: + +HAL/inc/sys/alt_log_printf.h: + +system.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_write.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_write.o new file mode 100644 index 0000000..4c25338 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_write.o Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/altera_nios2_qsys_irq.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/altera_nios2_qsys_irq.d new file mode 100644 index 0000000..47bdd9c --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/altera_nios2_qsys_irq.d @@ -0,0 +1,15 @@ +obj/HAL/src/altera_nios2_qsys_irq.o: HAL/src/altera_nios2_qsys_irq.c \ + HAL/inc/sys/alt_irq.h HAL/inc/nios2.h HAL/inc/alt_types.h system.h \ + linker.h HAL/inc/altera_nios2_qsys_irq.h + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: + +HAL/inc/altera_nios2_qsys_irq.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/altera_nios2_qsys_irq.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/altera_nios2_qsys_irq.o new file mode 100644 index 0000000..8991bdc --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/altera_nios2_qsys_irq.o Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/crt0.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/crt0.d new file mode 100644 index 0000000..3af0bb0 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/crt0.d @@ -0,0 +1,12 @@ +obj/HAL/src/crt0.o: HAL/src/crt0.S system.h linker.h HAL/inc/nios2.h \ + HAL/inc/sys/alt_log_printf.h system.h + +system.h: + +linker.h: + +HAL/inc/nios2.h: + +HAL/inc/sys/alt_log_printf.h: + +system.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/crt0.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/crt0.o new file mode 100644 index 0000000..40b849e --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/crt0.o Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/alt_sys_init.d b/software/qsys_tutorial_lcd4_bsp/obj/alt_sys_init.d new file mode 100644 index 0000000..029ebe0 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/alt_sys_init.d @@ -0,0 +1,59 @@ +obj/alt_sys_init.o: alt_sys_init.c system.h linker.h \ + HAL/inc/sys/alt_irq.h HAL/inc/nios2.h HAL/inc/alt_types.h system.h \ + HAL/inc/sys/alt_sys_init.h HAL/inc/altera_nios2_qsys_irq.h \ + drivers/inc/altera_avalon_jtag_uart.h HAL/inc/sys/alt_alarm.h \ + HAL/inc/sys/alt_llist.h HAL/inc/priv/alt_alarm.h HAL/inc/alt_types.h \ + HAL/inc/sys/alt_warning.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h HAL/inc/os/alt_flag.h \ + drivers/inc/altera_avalon_jtag_uart_fd.h HAL/inc/sys/alt_dev.h \ + HAL/inc/sys/alt_llist.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h drivers/inc/altera_avalon_lcd_16207.h \ + drivers/inc/altera_avalon_lcd_16207_fd.h + +system.h: + +linker.h: + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +HAL/inc/sys/alt_sys_init.h: + +HAL/inc/altera_nios2_qsys_irq.h: + +drivers/inc/altera_avalon_jtag_uart.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_flag.h: + +drivers/inc/altera_avalon_jtag_uart_fd.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +drivers/inc/altera_avalon_lcd_16207.h: + +drivers/inc/altera_avalon_lcd_16207_fd.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/alt_sys_init.o b/software/qsys_tutorial_lcd4_bsp/obj/alt_sys_init.o new file mode 100644 index 0000000..368c963 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/alt_sys_init.o Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/drivers/src/altera_avalon_jtag_uart_fd.d b/software/qsys_tutorial_lcd4_bsp/obj/drivers/src/altera_avalon_jtag_uart_fd.d new file mode 100644 index 0000000..b152697 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/drivers/src/altera_avalon_jtag_uart_fd.d @@ -0,0 +1,48 @@ +obj/drivers/src/altera_avalon_jtag_uart_fd.o: \ + drivers/src/altera_avalon_jtag_uart_fd.c HAL/inc/alt_types.h \ + HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ + drivers/inc/altera_avalon_jtag_uart.h HAL/inc/sys/alt_alarm.h \ + HAL/inc/sys/alt_llist.h HAL/inc/priv/alt_alarm.h \ + HAL/inc/sys/alt_warning.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h HAL/inc/os/alt_flag.h \ + drivers/inc/altera_avalon_jtag_uart_fd.h HAL/inc/sys/alt_dev.h + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +drivers/inc/altera_avalon_jtag_uart.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_flag.h: + +drivers/inc/altera_avalon_jtag_uart_fd.h: + +HAL/inc/sys/alt_dev.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/drivers/src/altera_avalon_jtag_uart_fd.o b/software/qsys_tutorial_lcd4_bsp/obj/drivers/src/altera_avalon_jtag_uart_fd.o new file mode 100644 index 0000000..47d1060 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/drivers/src/altera_avalon_jtag_uart_fd.o Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/drivers/src/altera_avalon_jtag_uart_init.d b/software/qsys_tutorial_lcd4_bsp/obj/drivers/src/altera_avalon_jtag_uart_init.d new file mode 100644 index 0000000..f9460a1 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/drivers/src/altera_avalon_jtag_uart_init.d @@ -0,0 +1,66 @@ +obj/drivers/src/altera_avalon_jtag_uart_init.o: \ + drivers/src/altera_avalon_jtag_uart_init.c HAL/inc/sys/alt_irq.h \ + HAL/inc/nios2.h HAL/inc/alt_types.h system.h linker.h \ + HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_alarm.h HAL/inc/alt_types.h HAL/inc/sys/ioctl.h \ + HAL/inc/alt_types.h drivers/inc/altera_avalon_jtag_uart_regs.h \ + HAL/inc/io.h HAL/inc/alt_types.h drivers/inc/altera_avalon_jtag_uart.h \ + HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_warning.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h HAL/inc/os/alt_flag.h \ + drivers/inc/altera_avalon_jtag_uart_fd.h HAL/inc/sys/alt_dev.h \ + HAL/inc/sys/alt_llist.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h HAL/inc/sys/alt_log_printf.h system.h + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/ioctl.h: + +HAL/inc/alt_types.h: + +drivers/inc/altera_avalon_jtag_uart_regs.h: + +HAL/inc/io.h: + +HAL/inc/alt_types.h: + +drivers/inc/altera_avalon_jtag_uart.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_flag.h: + +drivers/inc/altera_avalon_jtag_uart_fd.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/sys/alt_log_printf.h: + +system.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/drivers/src/altera_avalon_jtag_uart_init.o b/software/qsys_tutorial_lcd4_bsp/obj/drivers/src/altera_avalon_jtag_uart_init.o new file mode 100644 index 0000000..5421bd3 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/drivers/src/altera_avalon_jtag_uart_init.o Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/drivers/src/altera_avalon_jtag_uart_ioctl.d b/software/qsys_tutorial_lcd4_bsp/obj/drivers/src/altera_avalon_jtag_uart_ioctl.d new file mode 100644 index 0000000..d75a559 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/drivers/src/altera_avalon_jtag_uart_ioctl.d @@ -0,0 +1,58 @@ +obj/drivers/src/altera_avalon_jtag_uart_ioctl.o: \ + drivers/src/altera_avalon_jtag_uart_ioctl.c HAL/inc/sys/ioctl.h \ + HAL/inc/alt_types.h drivers/inc/altera_avalon_jtag_uart_regs.h \ + HAL/inc/io.h HAL/inc/alt_types.h drivers/inc/altera_avalon_jtag_uart.h \ + HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ + HAL/inc/priv/alt_alarm.h HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h \ + HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h HAL/inc/os/alt_flag.h \ + drivers/inc/altera_avalon_jtag_uart_fd.h HAL/inc/sys/alt_dev.h system.h \ + linker.h HAL/inc/sys/alt_llist.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h HAL/inc/sys/alt_log_printf.h system.h + +HAL/inc/sys/ioctl.h: + +HAL/inc/alt_types.h: + +drivers/inc/altera_avalon_jtag_uart_regs.h: + +HAL/inc/io.h: + +HAL/inc/alt_types.h: + +drivers/inc/altera_avalon_jtag_uart.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_flag.h: + +drivers/inc/altera_avalon_jtag_uart_fd.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/sys/alt_log_printf.h: + +system.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/drivers/src/altera_avalon_jtag_uart_ioctl.o b/software/qsys_tutorial_lcd4_bsp/obj/drivers/src/altera_avalon_jtag_uart_ioctl.o new file mode 100644 index 0000000..e0ab8c9 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/drivers/src/altera_avalon_jtag_uart_ioctl.o Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/drivers/src/altera_avalon_jtag_uart_read.d b/software/qsys_tutorial_lcd4_bsp/obj/drivers/src/altera_avalon_jtag_uart_read.d new file mode 100644 index 0000000..9a4846a --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/drivers/src/altera_avalon_jtag_uart_read.d @@ -0,0 +1,66 @@ +obj/drivers/src/altera_avalon_jtag_uart_read.o: \ + drivers/src/altera_avalon_jtag_uart_read.c HAL/inc/sys/alt_irq.h \ + HAL/inc/nios2.h HAL/inc/alt_types.h system.h linker.h \ + HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_alarm.h HAL/inc/alt_types.h HAL/inc/sys/ioctl.h \ + HAL/inc/alt_types.h drivers/inc/altera_avalon_jtag_uart_regs.h \ + HAL/inc/io.h HAL/inc/alt_types.h drivers/inc/altera_avalon_jtag_uart.h \ + HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_warning.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h HAL/inc/os/alt_flag.h \ + drivers/inc/altera_avalon_jtag_uart_fd.h HAL/inc/sys/alt_dev.h \ + HAL/inc/sys/alt_llist.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h HAL/inc/sys/alt_log_printf.h system.h + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/ioctl.h: + +HAL/inc/alt_types.h: + +drivers/inc/altera_avalon_jtag_uart_regs.h: + +HAL/inc/io.h: + +HAL/inc/alt_types.h: + +drivers/inc/altera_avalon_jtag_uart.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_flag.h: + +drivers/inc/altera_avalon_jtag_uart_fd.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/sys/alt_log_printf.h: + +system.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/drivers/src/altera_avalon_jtag_uart_read.o b/software/qsys_tutorial_lcd4_bsp/obj/drivers/src/altera_avalon_jtag_uart_read.o new file mode 100644 index 0000000..3ed168a --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/drivers/src/altera_avalon_jtag_uart_read.o Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/drivers/src/altera_avalon_jtag_uart_write.d b/software/qsys_tutorial_lcd4_bsp/obj/drivers/src/altera_avalon_jtag_uart_write.d new file mode 100644 index 0000000..5518b7f --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/drivers/src/altera_avalon_jtag_uart_write.d @@ -0,0 +1,66 @@ +obj/drivers/src/altera_avalon_jtag_uart_write.o: \ + drivers/src/altera_avalon_jtag_uart_write.c HAL/inc/sys/alt_irq.h \ + HAL/inc/nios2.h HAL/inc/alt_types.h system.h linker.h \ + HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_alarm.h HAL/inc/alt_types.h HAL/inc/sys/ioctl.h \ + HAL/inc/alt_types.h drivers/inc/altera_avalon_jtag_uart_regs.h \ + HAL/inc/io.h HAL/inc/alt_types.h drivers/inc/altera_avalon_jtag_uart.h \ + HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_warning.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h HAL/inc/os/alt_flag.h \ + drivers/inc/altera_avalon_jtag_uart_fd.h HAL/inc/sys/alt_dev.h \ + HAL/inc/sys/alt_llist.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h HAL/inc/sys/alt_log_printf.h system.h + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/ioctl.h: + +HAL/inc/alt_types.h: + +drivers/inc/altera_avalon_jtag_uart_regs.h: + +HAL/inc/io.h: + +HAL/inc/alt_types.h: + +drivers/inc/altera_avalon_jtag_uart.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_flag.h: + +drivers/inc/altera_avalon_jtag_uart_fd.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/sys/alt_log_printf.h: + +system.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/drivers/src/altera_avalon_jtag_uart_write.o b/software/qsys_tutorial_lcd4_bsp/obj/drivers/src/altera_avalon_jtag_uart_write.o new file mode 100644 index 0000000..7436f27 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/drivers/src/altera_avalon_jtag_uart_write.o Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/drivers/src/altera_avalon_lcd_16207.d b/software/qsys_tutorial_lcd4_bsp/obj/drivers/src/altera_avalon_lcd_16207.d new file mode 100644 index 0000000..dfd0adb --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/drivers/src/altera_avalon_lcd_16207.d @@ -0,0 +1,47 @@ +obj/drivers/src/altera_avalon_lcd_16207.o: \ + drivers/src/altera_avalon_lcd_16207.c HAL/inc/sys/alt_alarm.h \ + HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h HAL/inc/priv/alt_alarm.h \ + HAL/inc/alt_types.h drivers/inc/altera_avalon_lcd_16207_regs.h \ + HAL/inc/io.h HAL/inc/alt_types.h drivers/inc/altera_avalon_lcd_16207.h \ + HAL/inc/sys/alt_alarm.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h drivers/inc/altera_avalon_lcd_16207_fd.h \ + HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/alt_types.h: + +drivers/inc/altera_avalon_lcd_16207_regs.h: + +HAL/inc/io.h: + +HAL/inc/alt_types.h: + +drivers/inc/altera_avalon_lcd_16207.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +drivers/inc/altera_avalon_lcd_16207_fd.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/drivers/src/altera_avalon_lcd_16207.o b/software/qsys_tutorial_lcd4_bsp/obj/drivers/src/altera_avalon_lcd_16207.o new file mode 100644 index 0000000..ff2c2e8 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/drivers/src/altera_avalon_lcd_16207.o Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/drivers/src/altera_avalon_lcd_16207_fd.d b/software/qsys_tutorial_lcd4_bsp/obj/drivers/src/altera_avalon_lcd_16207_fd.d new file mode 100644 index 0000000..b39dc1d --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/drivers/src/altera_avalon_lcd_16207_fd.d @@ -0,0 +1,43 @@ +obj/drivers/src/altera_avalon_lcd_16207_fd.o: \ + drivers/src/altera_avalon_lcd_16207_fd.c HAL/inc/alt_types.h \ + HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ + drivers/inc/altera_avalon_lcd_16207.h HAL/inc/sys/alt_alarm.h \ + HAL/inc/sys/alt_llist.h HAL/inc/priv/alt_alarm.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h drivers/inc/altera_avalon_lcd_16207_fd.h \ + HAL/inc/sys/alt_dev.h + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +drivers/inc/altera_avalon_lcd_16207.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +drivers/inc/altera_avalon_lcd_16207_fd.h: + +HAL/inc/sys/alt_dev.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/drivers/src/altera_avalon_lcd_16207_fd.o b/software/qsys_tutorial_lcd4_bsp/obj/drivers/src/altera_avalon_lcd_16207_fd.o new file mode 100644 index 0000000..1986e12 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/obj/drivers/src/altera_avalon_lcd_16207_fd.o Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/public.mk b/software/qsys_tutorial_lcd4_bsp/public.mk new file mode 100644 index 0000000..2fd6fc6 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/public.mk @@ -0,0 +1,377 @@ +#------------------------------------------------------------------------------ +# BSP "PUBLIC" MAKEFILE CONTENT +# +# This file is intended to be included in an application or library +# Makefile that is using this BSP. You can create such a Makefile with +# the nios2-app-generate-makefile or nios2-lib-generate-makefile +# commands. +# +# The following variables must be defined before including this file: +# +# ALT_LIBRARY_ROOT_DIR +# Contains the path to the BSP top-level (aka root) directory +#------------------------------------------------------------------------------ + +#------------------------------------------------------------------------------ +# PATHS +#------------------------------------------------------------------------------ + + + +# Path to the provided linker script. +BSP_LINKER_SCRIPT := $(ALT_LIBRARY_ROOT_DIR)/linker.x + +# Include paths: +# The path to root of all header files that a library wishes to make +# available for an application's use is specified here. Note that this +# may not be *all* folders within a hierarchy. For example, if it is +# desired that the application developer type: +# #include +# #include +# With files laid out like this: +# /inc/sockets.h +# /inc/ip/tcpip.h +# +# Then, only /inc need be added to the list of include +# directories. Alternatively, if you wish to be able to directly include +# all files in a hierarchy, separate paths to each folder in that +# hierarchy must be defined. + +# The following are the "base" set of include paths for a BSP. +# These paths are appended to the list that individual software +# components, drivers, etc., add in the generated portion of this +# file (below). +ALT_INCLUDE_DIRS_TO_APPEND += \ + $(ALT_LIBRARY_ROOT_DIR) \ + $(ALT_LIBRARY_ROOT_DIR)/drivers/inc + +# Additions to linker library search-path: +# Here we provide a path to "our self" for the application to construct a +# "-L " out of. This should contain a list of directories, +# relative to the library root, of all directories with .a files to link +# against. +ALT_LIBRARY_DIRS += $(ALT_LIBRARY_ROOT_DIR) + + +#------------------------------------------------------------------------------ +# COMPILATION FLAGS +#------------------------------------------------------------------------------ +# Default C pre-processor flags for a BSP: +ALT_CPPFLAGS += -DSYSTEM_BUS_WIDTH=32 \ + -pipe + + +#------------------------------------------------------------------------------ +# MANAGED CONTENT +# +# All content between the lines "START MANAGED" and "END MANAGED" below is +# generated based on variables in the BSP settings file when the +# nios2-bsp-generate-files command is invoked. If you wish to persist any +# information pertaining to the build process, it is recomended that you +# utilize the BSP settings mechanism to do so. +#------------------------------------------------------------------------------ +#START MANAGED + +# The following TYPE comment allows tools to identify the 'type' of target this +# makefile is associated with. +# TYPE: BSP_PUBLIC_MAKEFILE + +# This following VERSION comment indicates the version of the tool used to +# generate this makefile. A makefile variable is provided for VERSION as well. +# ACDS_VERSION: 13.0sp1 +ACDS_VERSION := 13.0sp1 + +# This following BUILD_NUMBER comment indicates the build number of the tool +# used to generate this makefile. +# BUILD_NUMBER: 232 + +# Qsys--generated SOPCINFO file. Required for resolving node instance ID's with +# design component names. +SOPCINFO_FILE := C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.sopcinfo + +# Big-Endian operation. +# setting BIG_ENDIAN is false +ALT_CFLAGS += -EL + +# Path to the provided C language runtime initialization code. +BSP_CRT0 := $(ALT_LIBRARY_ROOT_DIR)/obj/HAL/src/crt0.o + +# Name of BSP library as provided to linker using the "-msys-lib" flag or +# linker script GROUP command. +# setting BSP_SYS_LIB is hal_bsp +BSP_SYS_LIB := hal_bsp +ELF_PATCH_FLAG += --thread_model hal + +# Type identifier of the BSP library +# setting BSP_TYPE is hal +ALT_CPPFLAGS += -D__hal__ +BSP_TYPE := hal + +# CPU Name +# setting CPU_NAME is nios2_processor +CPU_NAME = nios2_processor +ELF_PATCH_FLAG += --cpu_name $(CPU_NAME) + +# Hardware Divider present. +# setting HARDWARE_DIVIDE is false +ALT_CFLAGS += -mno-hw-div + +# Hardware Multiplier present. +# setting HARDWARE_MULTIPLY is false +ALT_CFLAGS += -mno-hw-mul + +# Hardware Mulx present. +# setting HARDWARE_MULX is false +ALT_CFLAGS += -mno-hw-mulx + +# Debug Core present. +# setting HAS_DEBUG_CORE is true +CPU_HAS_DEBUG_CORE = 1 + +# Qsys generated design +# setting QSYS is 1 +QSYS := 1 +ELF_PATCH_FLAG += --qsys true + +# Design Name +# setting SOPC_NAME is nios_system +SOPC_NAME := nios_system + +# SopcBuilder Simulation Enabled +# setting SOPC_SIMULATION_ENABLED is false +ELF_PATCH_FLAG += --simulation_enabled false + +# Enable JTAG UART driver to recover when host is inactive causing buffer to +# full without returning error. Printf will not fail with this recovery. none +# setting altera_avalon_jtag_uart_driver.enable_jtag_uart_ignore_fifo_full_error is false + +# Small-footprint (polled mode) driver none +# setting altera_avalon_jtag_uart_driver.enable_small_driver is false + +# Build a custom version of newlib with the specified space-separated compiler +# flags. The custom newlib build will be placed in the <bsp root>/newlib +# directory, and will be used only for applications that utilize this BSP. +# setting hal.custom_newlib_flags is none + +# Enable support for a subset of the C++ language. This option increases code +# footprint by adding support for C++ constructors. Certain features, such as +# multiple inheritance and exceptions are not supported. If false, adds +# -DALT_NO_C_PLUS_PLUS to ALT_CPPFLAGS in public.mk, and reduces code +# footprint. none +# setting hal.enable_c_plus_plus is true + +# When your application exits, close file descriptors, call C++ destructors, +# etc. Code footprint can be reduced by disabling clean exit. If disabled, adds +# -DALT_NO_CLEAN_EXIT to ALT_CPPFLAGS and -Wl,--defsym, exit=_exit to +# ALT_LDFLAGS in public.mk. none +# setting hal.enable_clean_exit is true + +# Add exit() support. This option increases code footprint if your "main()" +# routine does "return" or call "exit()". If false, adds -DALT_NO_EXIT to +# ALT_CPPFLAGS in public.mk, and reduces footprint none +# setting hal.enable_exit is true + +# Causes code to be compiled with gprof profiling enabled and the application +# ELF to be linked with the GPROF library. If true, adds -DALT_PROVIDE_GMON to +# ALT_CPPFLAGS and -pg to ALT_CFLAGS in public.mk. none +# setting hal.enable_gprof is false + +# Enables lightweight device driver API. This reduces code and data footprint +# by removing the HAL layer that maps device names (e.g. /dev/uart0) to file +# descriptors. Instead, driver routines are called directly. The open(), +# close(), and lseek() routines will always fail if called. The read(), +# write(), fstat(), ioctl(), and isatty() routines only work for the stdio +# devices. If true, adds -DALT_USE_DIRECT_DRIVERS to ALT_CPPFLAGS in public.mk. +# The Altera Host and read-only ZIP file systems can't be used if +# hal.enable_lightweight_device_driver_api is true. +# setting hal.enable_lightweight_device_driver_api is false + +# Adds code to emulate multiply and divide instructions in case they are +# executed but aren't present in the CPU. Normally this isn't required because +# the compiler won't use multiply and divide instructions that aren't present +# in the CPU. If false, adds -DALT_NO_INSTRUCTION_EMULATION to ALT_CPPFLAGS in +# public.mk. none +# setting hal.enable_mul_div_emulation is false +ALT_CPPFLAGS += -DALT_NO_INSTRUCTION_EMULATION + +# Certain drivers are compiled with reduced functionality to reduce code +# footprint. Not all drivers observe this setting. The altera_avalon_uart and +# altera_avalon_jtag_uart drivers switch from interrupt-driven to polled +# operation. CAUTION: Several device drivers are disabled entirely. These +# include the altera_avalon_cfi_flash, altera_avalon_epcs_flash_controller, and +# altera_avalon_lcd_16207 drivers. This can result in certain API (HAL flash +# access routines) to fail. You can define a symbol provided by each driver to +# prevent it from being removed. If true, adds -DALT_USE_SMALL_DRIVERS to +# ALT_CPPFLAGS in public.mk. none +# setting hal.enable_reduced_device_drivers is false + +# Turns on HAL runtime stack checking feature. Enabling this setting causes +# additional code to be placed into each subroutine call to generate an +# exception if a stack collision occurs with the heap or statically allocated +# data. If true, adds -DALT_STACK_CHECK and -mstack-check to ALT_CPPFLAGS in +# public.mk. none +# setting hal.enable_runtime_stack_checking is false + +# The BSP is compiled with optimizations to speedup HDL simulation such as +# initializing the cache, clearing the .bss section, and skipping long delay +# loops. If true, adds -DALT_SIM_OPTIMIZE to ALT_CPPFLAGS in public.mk. When +# this setting is true, the BSP shouldn't be used to build applications that +# are expected to run real hardware. +# setting hal.enable_sim_optimize is false + +# Causes the small newlib (C library) to be used. This reduces code and data +# footprint at the expense of reduced functionality. Several newlib features +# are removed such as floating-point support in printf(), stdin input routines, +# and buffered I/O. The small C library is not compatible with Micrium +# MicroC/OS-II. If true, adds -msmallc to ALT_LDFLAGS in public.mk. none +# setting hal.enable_small_c_library is false + +# Enable SOPC Builder System ID. If a System ID SOPC Builder component is +# connected to the CPU associated with this BSP, it will be enabled in the +# creation of command-line arguments to download an ELF to the target. +# Otherwise, system ID and timestamp values are left out of public.mk for +# application Makefile "download-elf" target definition. With the system ID +# check disabled, the Nios II EDS tools will not automatically ensure that the +# application .elf file (and BSP it is linked against) corresponds to the +# hardware design on the target. If false, adds --accept-bad-sysid to +# SOPC_SYSID_FLAG in public.mk. none +# setting hal.enable_sopc_sysid_check is true + +# Enable BSP generation to query if SOPC system is big endian. If true ignores +# export of 'ALT_CFLAGS += -EB' to public.mk if big endian system. If true +# ignores export of 'ALT_CFLAGS += -EL' if little endian system. none +# setting hal.make.ignore_system_derived.big_endian is false + +# Enable BSP generation to query if SOPC system has a debug core present. If +# true ignores export of 'CPU_HAS_DEBUG_CORE = 1' to public.mk if a debug core +# is found in the system. If true ignores export of 'CPU_HAS_DEBUG_CORE = 0' if +# no debug core is found in the system. none +# setting hal.make.ignore_system_derived.debug_core_present is false + +# Enable BSP generation to query if SOPC system has FPU present. If true +# ignores export of 'ALT_CFLAGS += -mhard-float' to public.mk if FPU is found +# in the system. If true ignores export of 'ALT_CFLAGS += -mhard-soft' if FPU +# is not found in the system. none +# setting hal.make.ignore_system_derived.fpu_present is false + +# Enable BSP generation to query if SOPC system has hardware divide present. If +# true ignores export of 'ALT_CFLAGS += -mno-hw-div' to public.mk if no +# division is found in system. If true ignores export of 'ALT_CFLAGS += +# -mhw-div' if division is found in the system. none +# setting hal.make.ignore_system_derived.hardware_divide_present is false + +# Enable BSP generation to query if SOPC system floating point custom +# instruction with a divider is present. If true ignores export of 'ALT_CFLAGS +# += -mcustom-fpu-cfg=60-2' and 'ALT_LDFLAGS += -mcustom-fpu-cfg=60-2' to +# public.mk if the custom instruction is found in the system. none +# setting hal.make.ignore_system_derived.hardware_fp_cust_inst_divider_present is false + +# Enable BSP generation to query if SOPC system floating point custom +# instruction without a divider is present. If true ignores export of +# 'ALT_CFLAGS += -mcustom-fpu-cfg=60-1' and 'ALT_LDFLAGS += +# -mcustom-fpu-cfg=60-1' to public.mk if the custom instruction is found in the +# system. none +# setting hal.make.ignore_system_derived.hardware_fp_cust_inst_no_divider_present is false + +# Enable BSP generation to query if SOPC system has multiplier present. If true +# ignores export of 'ALT_CFLAGS += -mno-hw-mul' to public.mk if no multiplier +# is found in the system. If true ignores export of 'ALT_CFLAGS += -mhw-mul' if +# multiplier is found in the system. none +# setting hal.make.ignore_system_derived.hardware_multiplier_present is false + +# Enable BSP generation to query if SOPC system has hardware mulx present. If +# true ignores export of 'ALT_CFLAGS += -mno-hw-mulx' to public.mk if no mulx +# is found in the system. If true ignores export of 'ALT_CFLAGS += -mhw-mulx' +# if mulx is found in the system. none +# setting hal.make.ignore_system_derived.hardware_mulx_present is false + +# Enable BSP generation to query if SOPC system has simulation enabled. If true +# ignores export of 'ELF_PATCH_FLAG += --simulation_enabled' to public.mk. none +# setting hal.make.ignore_system_derived.sopc_simulation_enabled is false + +# Enable BSP generation to query SOPC system for system ID base address. If +# true ignores export of 'SOPC_SYSID_FLAG += --sidp=
' and +# 'ELF_PATCH_FLAG += --sidp=
' to public.mk. none +# setting hal.make.ignore_system_derived.sopc_system_base_address is false + +# Enable BSP generation to query SOPC system for system ID. If true ignores +# export of 'SOPC_SYSID_FLAG += --id=' and 'ELF_PATCH_FLAG += +# --id=' to public.mk. none +# setting hal.make.ignore_system_derived.sopc_system_id is false + +# Enable BSP generation to query SOPC system for system timestamp. If true +# ignores export of 'SOPC_SYSID_FLAG += --timestamp=' and +# 'ELF_PATCH_FLAG += --timestamp=' to public.mk. none +# setting hal.make.ignore_system_derived.sopc_system_timestamp is false + +# Slave descriptor of STDERR character-mode device. This setting is used by the +# ALT_STDERR family of defines in system.h. none +# setting hal.stderr is jtag_uart +ELF_PATCH_FLAG += --stderr_dev jtag_uart + +# Slave descriptor of STDIN character-mode device. This setting is used by the +# ALT_STDIN family of defines in system.h. none +# setting hal.stdin is jtag_uart +ELF_PATCH_FLAG += --stdin_dev jtag_uart + +# Slave descriptor of STDOUT character-mode device. This setting is used by the +# ALT_STDOUT family of defines in system.h. none +# setting hal.stdout is jtag_uart +ELF_PATCH_FLAG += --stdout_dev jtag_uart + + +#------------------------------------------------------------------------------ +# SOFTWARE COMPONENT & DRIVER INCLUDE PATHS +#------------------------------------------------------------------------------ + +ALT_INCLUDE_DIRS += $(ALT_LIBRARY_ROOT_DIR)/HAL/inc + +#------------------------------------------------------------------------------ +# SOFTWARE COMPONENT & DRIVER PRODUCED ALT_CPPFLAGS ADDITIONS +#------------------------------------------------------------------------------ + +ALT_CPPFLAGS += -DALT_SINGLE_THREADED + +#END MANAGED + + +#------------------------------------------------------------------------------ +# LIBRARY INFORMATION +#------------------------------------------------------------------------------ +# Assemble the name of the BSP *.a file using the BSP library name +# (BSP_SYS_LIB) in generated content above. +BSP_LIB := lib$(BSP_SYS_LIB).a + +# Additional libraries to link against: +# An application including this file will prefix each library with "-l". +# For example, to include the Newlib math library "m" is included, which +# becomes "-lm" when linking the application. +ALT_LIBRARY_NAMES += m + +# Additions to linker dependencies: +# An application Makefile will typically add these directly to the list +# of dependencies required to build the executable target(s). The BSP +# library (*.a) file is specified here. +ALT_LDDEPS += $(ALT_LIBRARY_ROOT_DIR)/$(BSP_LIB) + +# Is this library "Makeable"? +# Add to list of root library directories that support running 'make' +# to build them. Because libraries may or may not have a Makefile in their +# root, appending to this variable tells an application to run 'make' in +# the library root to build/update this library. +MAKEABLE_LIBRARY_ROOT_DIRS += $(ALT_LIBRARY_ROOT_DIR) + +# Additional Assembler Flags +# -gdwarf2 flag is required for stepping through assembly code +ALT_ASFLAGS += -gdwarf2 + +#------------------------------------------------------------------------------ +# FINAL INCLUDE PATH LIST +#------------------------------------------------------------------------------ +# Append static include paths to paths specified by OS/driver/sw package +# additions to the BSP thus giving them precedence in case a BSP addition +# is attempting to override BSP sources. +ALT_INCLUDE_DIRS += $(ALT_INCLUDE_DIRS_TO_APPEND) + + + diff --git a/software/qsys_tutorial_lcd4_bsp/settings.bsp b/software/qsys_tutorial_lcd4_bsp/settings.bsp new file mode 100644 index 0000000..94ddcfd --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/settings.bsp @@ -0,0 +1,991 @@ + + + hal + default + 2016/12/02 1:35:13 + 1480610113326 + C:\Users\takayun\Documents\DE2-115\qsys_tutorial\software\qsys_tutorial_lcd4_bsp + .\settings.bsp + C:\Users\takayun\Documents\DE2-115\qsys_tutorial\nios_system.sopcinfo + default + nios2_processor + 1.9 + + hal.sys_clk_timer + ALT_SYS_CLK + UnquotedString + none + none + system_h_define + Slave descriptor of the system clock timer device. This device provides a periodic interrupt ("tick") and is typically required for RTOS use. This setting defines the value of ALT_SYS_CLK in system.h. + none + false + common + + + hal.timestamp_timer + ALT_TIMESTAMP_CLK + UnquotedString + none + none + system_h_define + Slave descriptor of timestamp timer device. This device is used by Altera HAL timestamp drivers for high-resolution time measurement. This setting defines the value of ALT_TIMESTAMP_CLK in system.h. + none + false + common + + + hal.max_file_descriptors + ALT_MAX_FD + DecimalNumber + 32 + 32 + system_h_define + Determines the number of file descriptors statically allocated. This setting defines the value of ALT_MAX_FD in system.h. + If hal.enable_lightweight_device_driver_api is true, there are no file descriptors so this setting is ignored. If hal.enable_lightweight_device_driver_api is false, this setting must be at least 4 because HAL needs a file descriptor for /dev/null, /dev/stdin, /dev/stdout, and /dev/stderr. + false + + + + hal.enable_instruction_related_exceptions_api + ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API + BooleanDefineOnly + false + false + system_h_define + Enables API for registering handlers to service instruction-related exceptions. Enabling this setting increases the size of the exception entry code. + These exception types can be generated if various processor options are enabled, such as the MMU, MPU, or other advanced exception types. + false + + + + hal.linker.allow_code_at_reset + ALT_ALLOW_CODE_AT_RESET + Boolean + 1 + 0 + none + Indicates if initialization code is allowed at the reset address. If true, defines the macro ALT_ALLOW_CODE_AT_RESET in linker.h. + If true, defines the macro ALT_ALLOW_CODE_AT_RESET in linker.h. This setting is typically false if an external bootloader (e.g. flash bootloader) is present. + false + + + + hal.linker.enable_alt_load + NONE + Boolean + 1 + 0 + none + Enables the alt_load() facility. The alt_load() facility copies sections from the .text memory into RAM. If true, this setting sets up the VMA/LMA of sections in linker.x to allow them to be loaded into the .text memory. + This setting is typically false if an external bootloader (e.g. flash bootloader) is present. + false + + + + hal.linker.enable_alt_load_copy_rodata + NONE + Boolean + 0 + 0 + none + Causes the alt_load() facility to copy the .rodata section. If true, this setting defines the macro ALT_LOAD_COPY_RODATA in linker.h. + none + false + + + + hal.linker.enable_alt_load_copy_rwdata + NONE + Boolean + 1 + 0 + none + Causes the alt_load() facility to copy the .rwdata section. If true, this setting defines the macro ALT_LOAD_COPY_RWDATA in linker.h. + none + false + + + + hal.linker.enable_alt_load_copy_exceptions + NONE + Boolean + 0 + 0 + none + Causes the alt_load() facility to copy the .exceptions section. If true, this setting defines the macro ALT_LOAD_COPY_EXCEPTIONS in linker.h. + none + false + + + + hal.linker.enable_exception_stack + NONE + Boolean + 0 + 0 + none + Enables use of a separate exception stack. If true, defines the macro ALT_EXCEPTION_STACK in linker.h, adds a memory region called exception_stack to linker.x, and provides the symbols __alt_exception_stack_pointer and __alt_exception_stack_limit in linker.x. + The hal.linker.exception_stack_size and hal.linker.exception_stack_memory_region_name settings must also be valid. This setting must be false for MicroC/OS-II BSPs. The exception stack can be used to improve interrupt and other exception performance if the EIC is *not* used. + false + common + + + hal.linker.exception_stack_size + NONE + DecimalNumber + 1024 + 1024 + none + Size of the exception stack in bytes. + Only used if hal.linker.enable_exception_stack is true. + false + common + + + hal.linker.exception_stack_memory_region_name + NONE + UnquotedString + onchip_memory + none + none + Name of the existing memory region that will be divided up to create the 'exception_stack' memory region. The selected region name will be adjusted automatically when the BSP is generated to create the 'exception_stack' memory region. + Only used if hal.linker.enable_exception_stack is true. + false + common + + + hal.linker.enable_interrupt_stack + NONE + Boolean + 0 + 0 + none + Enables use of a separate interrupt stack. If true, defines the macro ALT_INTERRUPT_STACK in linker.h, adds a memory region called interrupt_stack to linker.x, and provides the symbols __alt_interrupt_stack_pointer and __alt_interrupt_stack_limit in linker.x. + The hal.linker.interrupt_stack_size and hal.linker.interrupt_stack_memory_region_name settings must also be valid. This setting must be false for MicroC/OS-II BSPs. Only enable if the EIC is used exclusively. The exception stack can be used to improve interrupt and other exception performance if the EIC is *not* used. + false + common + + + hal.linker.interrupt_stack_size + NONE + DecimalNumber + 1024 + 1024 + none + Size of the interrupt stack in bytes. + Only used if hal.linker.enable_interrupt_stack is true. + false + common + + + hal.linker.interrupt_stack_memory_region_name + NONE + UnquotedString + onchip_memory + none + none + Name of the existing memory region that will be divided up to create the 'interrupt_stack' memory region. The selected region name will be adjusted automatically when the BSP is generated to create the 'interrupt_stack' memory region. + Only used if hal.linker.enable_interrupt_stack is true. + false + common + + + hal.stdin + NONE + UnquotedString + jtag_uart + none + system_h_define + Slave descriptor of STDIN character-mode device. This setting is used by the ALT_STDIN family of defines in system.h. + none + false + common + + + hal.stdout + NONE + UnquotedString + jtag_uart + none + system_h_define + Slave descriptor of STDOUT character-mode device. This setting is used by the ALT_STDOUT family of defines in system.h. + none + false + common + + + hal.stderr + NONE + UnquotedString + jtag_uart + none + system_h_define + Slave descriptor of STDERR character-mode device. This setting is used by the ALT_STDERR family of defines in system.h. + none + false + common + + + hal.log_port + NONE + UnquotedString + none + none + public_mk_define + Slave descriptor of debug logging character-mode device. If defined, it enables extra debug messages in the HAL source. This setting is used by the ALT_LOG_PORT family of defines in system.h. + none + false + none + + + hal.make.build_pre_process + BUILD_PRE_PROCESS + UnquotedString + none + none + makefile_variable + Command executed before BSP built. + none + false + none + + + hal.make.ar_pre_process + AR_PRE_PROCESS + UnquotedString + none + none + makefile_variable + Command executed before archiver execution. + none + false + none + + + hal.make.bsp_cflags_defined_symbols + BSP_CFLAGS_DEFINED_SYMBOLS + UnquotedString + none + none + makefile_variable + Preprocessor macros to define. A macro definition in this setting has the same effect as a "#define" in source code. Adding "-DALT_DEBUG" to this setting has the same effect as "#define ALT_DEBUG" in a souce file. Adding "-DFOO=1" to this setting is equivalent to the macro "#define FOO 1" in a source file. Macros defined with this setting are applied to all .S, .c, and C++ files in the BSP. This setting defines the value of BSP_CFLAGS_DEFINED_SYMBOLS in the BSP Makefile. + none + false + none + + + hal.make.ar_post_process + AR_POST_PROCESS + UnquotedString + none + none + makefile_variable + Command executed after archiver execution. + none + false + none + + + hal.make.as + AS + UnquotedString + nios2-elf-gcc + nios2-elf-gcc + makefile_variable + Assembler command. Note that CC is used for .S files. + none + false + none + + + hal.make.build_post_process + BUILD_POST_PROCESS + UnquotedString + none + none + makefile_variable + Command executed after BSP built. + none + false + none + + + hal.make.bsp_cflags_debug + BSP_CFLAGS_DEBUG + UnquotedString + -g + -g + makefile_variable + C/C++ compiler debug level. '-g' provides the default set of debug symbols typically required to debug a typical application. Omitting '-g' removes debug symbols from the ELF. This setting defines the value of BSP_CFLAGS_DEBUG in Makefile. + none + false + common + + + hal.make.ar + AR + UnquotedString + nios2-elf-ar + nios2-elf-ar + makefile_variable + Archiver command. Creates library files. + none + false + none + + + hal.make.rm + RM + UnquotedString + rm -f + rm -f + makefile_variable + Command used to remove files during 'clean' target. + none + false + none + + + hal.make.cxx_pre_process + CXX_PRE_PROCESS + UnquotedString + none + none + makefile_variable + Command executed before each C++ file is compiled. + none + false + none + + + hal.make.bsp_cflags_warnings + BSP_CFLAGS_WARNINGS + UnquotedString + -Wall + -Wall + makefile_variable + C/C++ compiler warning level. "-Wall" is commonly used.This setting defines the value of BSP_CFLAGS_WARNINGS in Makefile. + none + false + none + + + hal.make.bsp_arflags + BSP_ARFLAGS + UnquotedString + -src + -src + makefile_variable + Custom flags only passed to the archiver. This content of this variable is directly passed to the archiver rather than the more standard "ARFLAGS". The reason for this is that GNU Make assumes some default content in ARFLAGS. This setting defines the value of BSP_ARFLAGS in Makefile. + none + false + none + + + hal.make.bsp_cflags_optimization + BSP_CFLAGS_OPTIMIZATION + UnquotedString + -O0 + -O0 + makefile_variable + C/C++ compiler optimization level. "-O0" = no optimization,"-O2" = "normal" optimization, etc. "-O0" is recommended for code that you want to debug since compiler optimization can remove variables and produce non-sequential execution of code while debugging. This setting defines the value of BSP_CFLAGS_OPTIMIZATION in Makefile. + none + false + common + + + hal.make.as_post_process + AS_POST_PROCESS + UnquotedString + none + none + makefile_variable + Command executed after each assembly file is compiled. + none + false + none + + + hal.make.cc_pre_process + CC_PRE_PROCESS + UnquotedString + none + none + makefile_variable + Command executed before each .c/.S file is compiled. + none + false + none + + + hal.make.bsp_asflags + BSP_ASFLAGS + UnquotedString + -Wa,-gdwarf2 + -Wa,-gdwarf2 + makefile_variable + Custom flags only passed to the assembler. This setting defines the value of BSP_ASFLAGS in Makefile. + none + false + none + + + hal.make.as_pre_process + AS_PRE_PROCESS + UnquotedString + none + none + makefile_variable + Command executed before each assembly file is compiled. + none + false + none + + + hal.make.bsp_cflags_undefined_symbols + BSP_CFLAGS_UNDEFINED_SYMBOLS + UnquotedString + none + none + makefile_variable + Preprocessor macros to undefine. Undefined macros are similar to defined macros, but replicate the "#undef" directive in source code. To undefine the macro FOO use the syntax "-u FOO" in this setting. This is equivalent to "#undef FOO" in a source file. Note: the syntax differs from macro definition (there is a space, i.e. "-u FOO" versus "-DFOO"). Macros defined with this setting are applied to all .S, .c, and C++ files in the BSP. This setting defines the value of BSP_CFLAGS_UNDEFINED_SYMBOLS in the BSP Makefile. + none + false + none + + + hal.make.cc_post_process + CC_POST_PROCESS + UnquotedString + none + none + makefile_variable + Command executed after each .c/.S file is compiled. + none + false + none + + + hal.make.cxx_post_process + CXX_POST_PROCESS + UnquotedString + none + none + makefile_variable + Command executed before each C++ file is compiled. + none + false + none + + + hal.make.cc + CC + UnquotedString + nios2-elf-gcc -xc + nios2-elf-gcc -xc + makefile_variable + C compiler command. + none + false + none + + + hal.make.bsp_cxx_flags + BSP_CXXFLAGS + UnquotedString + none + none + makefile_variable + Custom flags only passed to the C++ compiler. This setting defines the value of BSP_CXXFLAGS in Makefile. + none + false + none + + + hal.make.bsp_inc_dirs + BSP_INC_DIRS + UnquotedString + none + none + makefile_variable + Space separated list of extra include directories to scan for header files. Directories are relative to the top-level BSP directory. The -I prefix's added by the makefile so don't add it here. This setting defines the value of BSP_INC_DIRS in Makefile. + none + false + none + + + hal.make.cxx + CXX + UnquotedString + nios2-elf-gcc -xc++ + nios2-elf-gcc -xc++ + makefile_variable + C++ compiler command. + none + false + none + + + hal.make.bsp_cflags_user_flags + BSP_CFLAGS_USER_FLAGS + UnquotedString + none + none + makefile_variable + Custom flags passed to the compiler when compiling C, C++, and .S files. This setting defines the value of BSP_CFLAGS_USER_FLAGS in Makefile. + none + false + none + + + hal.make.ignore_system_derived.sopc_system_id + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query SOPC system for system ID. If true ignores export of 'SOPC_SYSID_FLAG += --id=<sysid>' and 'ELF_PATCH_FLAG += --id=<sysid>' to public.mk. + none + false + none + + + hal.make.ignore_system_derived.sopc_system_timestamp + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query SOPC system for system timestamp. If true ignores export of 'SOPC_SYSID_FLAG += --timestamp=<timestamp>' and 'ELF_PATCH_FLAG += --timestamp=<timestamp>' to public.mk. + none + false + none + + + hal.make.ignore_system_derived.sopc_system_base_address + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query SOPC system for system ID base address. If true ignores export of 'SOPC_SYSID_FLAG += --sidp=<address>' and 'ELF_PATCH_FLAG += --sidp=<address>' to public.mk. + none + false + none + + + hal.make.ignore_system_derived.sopc_simulation_enabled + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query if SOPC system has simulation enabled. If true ignores export of 'ELF_PATCH_FLAG += --simulation_enabled' to public.mk. + none + false + none + + + hal.make.ignore_system_derived.fpu_present + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query if SOPC system has FPU present. If true ignores export of 'ALT_CFLAGS += -mhard-float' to public.mk if FPU is found in the system. If true ignores export of 'ALT_CFLAGS += -mhard-soft' if FPU is not found in the system. + none + false + none + + + hal.make.ignore_system_derived.hardware_multiplier_present + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query if SOPC system has multiplier present. If true ignores export of 'ALT_CFLAGS += -mno-hw-mul' to public.mk if no multiplier is found in the system. If true ignores export of 'ALT_CFLAGS += -mhw-mul' if multiplier is found in the system. + none + false + none + + + hal.make.ignore_system_derived.hardware_mulx_present + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query if SOPC system has hardware mulx present. If true ignores export of 'ALT_CFLAGS += -mno-hw-mulx' to public.mk if no mulx is found in the system. If true ignores export of 'ALT_CFLAGS += -mhw-mulx' if mulx is found in the system. + none + false + none + + + hal.make.ignore_system_derived.hardware_divide_present + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query if SOPC system has hardware divide present. If true ignores export of 'ALT_CFLAGS += -mno-hw-div' to public.mk if no division is found in system. If true ignores export of 'ALT_CFLAGS += -mhw-div' if division is found in the system. + none + false + none + + + hal.make.ignore_system_derived.debug_core_present + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query if SOPC system has a debug core present. If true ignores export of 'CPU_HAS_DEBUG_CORE = 1' to public.mk if a debug core is found in the system. If true ignores export of 'CPU_HAS_DEBUG_CORE = 0' if no debug core is found in the system. + none + false + none + + + hal.make.ignore_system_derived.big_endian + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query if SOPC system is big endian. If true ignores export of 'ALT_CFLAGS += -EB' to public.mk if big endian system. If true ignores export of 'ALT_CFLAGS += -EL' if little endian system. + none + false + none + + + hal.make.ignore_system_derived.hardware_fp_cust_inst_divider_present + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query if SOPC system floating point custom instruction with a divider is present. If true ignores export of 'ALT_CFLAGS += -mcustom-fpu-cfg=60-2' and 'ALT_LDFLAGS += -mcustom-fpu-cfg=60-2' to public.mk if the custom instruction is found in the system. + none + false + none + + + hal.make.ignore_system_derived.hardware_fp_cust_inst_no_divider_present + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query if SOPC system floating point custom instruction without a divider is present. If true ignores export of 'ALT_CFLAGS += -mcustom-fpu-cfg=60-1' and 'ALT_LDFLAGS += -mcustom-fpu-cfg=60-1' to public.mk if the custom instruction is found in the system. + none + false + none + + + hal.enable_exit + ALT_NO_EXIT + Boolean + 1 + 1 + public_mk_define + Add exit() support. This option increases code footprint if your "main()" routine does "return" or call "exit()". If false, adds -DALT_NO_EXIT to ALT_CPPFLAGS in public.mk, and reduces footprint + none + false + none + + + hal.enable_small_c_library + NONE + Boolean + 0 + 0 + public_mk_define + Causes the small newlib (C library) to be used. This reduces code and data footprint at the expense of reduced functionality. Several newlib features are removed such as floating-point support in printf(), stdin input routines, and buffered I/O. The small C library is not compatible with Micrium MicroC/OS-II. If true, adds -msmallc to ALT_LDFLAGS in public.mk. + none + false + common + + + hal.enable_clean_exit + ALT_NO_CLEAN_EXIT + Boolean + 1 + 1 + public_mk_define + When your application exits, close file descriptors, call C++ destructors, etc. Code footprint can be reduced by disabling clean exit. If disabled, adds -DALT_NO_CLEAN_EXIT to ALT_CPPFLAGS and -Wl,--defsym, exit=_exit to ALT_LDFLAGS in public.mk. + none + false + none + + + hal.enable_runtime_stack_checking + ALT_STACK_CHECK + Boolean + 0 + 0 + public_mk_define + Turns on HAL runtime stack checking feature. Enabling this setting causes additional code to be placed into each subroutine call to generate an exception if a stack collision occurs with the heap or statically allocated data. If true, adds -DALT_STACK_CHECK and -mstack-check to ALT_CPPFLAGS in public.mk. + none + false + none + + + hal.enable_gprof + ALT_PROVIDE_GMON + Boolean + 0 + 0 + public_mk_define + Causes code to be compiled with gprof profiling enabled and the application ELF to be linked with the GPROF library. If true, adds -DALT_PROVIDE_GMON to ALT_CPPFLAGS and -pg to ALT_CFLAGS in public.mk. + none + false + common + + + hal.enable_c_plus_plus + ALT_NO_C_PLUS_PLUS + Boolean + 1 + 1 + public_mk_define + Enable support for a subset of the C++ language. This option increases code footprint by adding support for C++ constructors. Certain features, such as multiple inheritance and exceptions are not supported. If false, adds -DALT_NO_C_PLUS_PLUS to ALT_CPPFLAGS in public.mk, and reduces code footprint. + none + false + none + + + hal.enable_reduced_device_drivers + ALT_USE_SMALL_DRIVERS + Boolean + 0 + 0 + public_mk_define + Certain drivers are compiled with reduced functionality to reduce code footprint. Not all drivers observe this setting. The altera_avalon_uart and altera_avalon_jtag_uart drivers switch from interrupt-driven to polled operation. CAUTION: Several device drivers are disabled entirely. These include the altera_avalon_cfi_flash, altera_avalon_epcs_flash_controller, and altera_avalon_lcd_16207 drivers. This can result in certain API (HAL flash access routines) to fail. You can define a symbol provided by each driver to prevent it from being removed. If true, adds -DALT_USE_SMALL_DRIVERS to ALT_CPPFLAGS in public.mk. + none + false + common + + + hal.enable_lightweight_device_driver_api + ALT_USE_DIRECT_DRIVERS + Boolean + 0 + 0 + public_mk_define + Enables lightweight device driver API. This reduces code and data footprint by removing the HAL layer that maps device names (e.g. /dev/uart0) to file descriptors. Instead, driver routines are called directly. The open(), close(), and lseek() routines will always fail if called. The read(), write(), fstat(), ioctl(), and isatty() routines only work for the stdio devices. If true, adds -DALT_USE_DIRECT_DRIVERS to ALT_CPPFLAGS in public.mk. + The Altera Host and read-only ZIP file systems can't be used if hal.enable_lightweight_device_driver_api is true. + false + none + + + hal.enable_mul_div_emulation + ALT_NO_INSTRUCTION_EMULATION + Boolean + 0 + 0 + public_mk_define + Adds code to emulate multiply and divide instructions in case they are executed but aren't present in the CPU. Normally this isn't required because the compiler won't use multiply and divide instructions that aren't present in the CPU. If false, adds -DALT_NO_INSTRUCTION_EMULATION to ALT_CPPFLAGS in public.mk. + none + false + none + + + hal.enable_sim_optimize + ALT_SIM_OPTIMIZE + Boolean + 0 + 0 + public_mk_define + The BSP is compiled with optimizations to speedup HDL simulation such as initializing the cache, clearing the .bss section, and skipping long delay loops. If true, adds -DALT_SIM_OPTIMIZE to ALT_CPPFLAGS in public.mk. + When this setting is true, the BSP shouldn't be used to build applications that are expected to run real hardware. + false + common + + + hal.enable_sopc_sysid_check + NONE + Boolean + 1 + 1 + public_mk_define + Enable SOPC Builder System ID. If a System ID SOPC Builder component is connected to the CPU associated with this BSP, it will be enabled in the creation of command-line arguments to download an ELF to the target. Otherwise, system ID and timestamp values are left out of public.mk for application Makefile "download-elf" target definition. With the system ID check disabled, the Nios II EDS tools will not automatically ensure that the application .elf file (and BSP it is linked against) corresponds to the hardware design on the target. If false, adds --accept-bad-sysid to SOPC_SYSID_FLAG in public.mk. + none + false + none + + + hal.custom_newlib_flags + CUSTOM_NEWLIB_FLAGS + UnquotedString + none + none + public_mk_define + Build a custom version of newlib with the specified space-separated compiler flags. + The custom newlib build will be placed in the &lt;bsp root>/newlib directory, and will be used only for applications that utilize this BSP. + false + none + + + hal.log_flags + ALT_LOG_FLAGS + DecimalNumber + 0 + 0 + public_mk_define + The value is assigned to ALT_LOG_FLAGS in the generated public.mk. See hal.log_port setting description. Values can be -1 through 3. + hal.log_port must be set for this to be used. + false + none + + + altera_avalon_jtag_uart_driver.enable_small_driver + ALTERA_AVALON_JTAG_UART_SMALL + BooleanDefineOnly + false + false + public_mk_define + Small-footprint (polled mode) driver + none + false + + + + altera_avalon_jtag_uart_driver.enable_jtag_uart_ignore_fifo_full_error + ALTERA_AVALON_JTAG_UART_IGNORE_FIFO_FULL_ERROR + BooleanDefineOnly + false + false + public_mk_define + Enable JTAG UART driver to recover when host is inactive causing buffer to full without returning error. Printf will not fail with this recovery. + none + false + + + + onchip_memory + 0x00000000 - 0x00031FFF + 204800 + memory + + + lcd_on + 0x00041010 - 0x0004101F + 16 + + + + lcd_blon + 0x00041020 - 0x0004102F + 16 + + + + lcd_16207_0 + 0x00041030 - 0x0004103F + 16 + printable + + + hex7 + 0x00041040 - 0x0004104F + 16 + + + + hex6 + 0x00041050 - 0x0004105F + 16 + + + + hex5 + 0x00041060 - 0x0004106F + 16 + + + + hex4 + 0x00041070 - 0x0004107F + 16 + + + + hex3 + 0x00041080 - 0x0004108F + 16 + + + + hex2 + 0x00041090 - 0x0004109F + 16 + + + + hex1 + 0x000410A0 - 0x000410AF + 16 + + + + hex0 + 0x000410B0 - 0x000410BF + 16 + + + + push_switches + 0x000410C0 - 0x000410CF + 16 + + + + switches + 0x000410D0 - 0x000410DF + 16 + + + + LEDRs + 0x000410E0 - 0x000410EF + 16 + + + + LEDs + 0x000410F0 - 0x000410FF + 16 + + + + jtag_uart + 0x00041100 - 0x00041107 + 8 + printable + + + .text + onchip_memory + + + .rodata + onchip_memory + + + .rwdata + onchip_memory + + + .bss + onchip_memory + + + .heap + onchip_memory + + + .stack + onchip_memory + + \ No newline at end of file diff --git a/software/qsys_tutorial_lcd4_bsp/summary.html b/software/qsys_tutorial_lcd4_bsp/summary.html new file mode 100644 index 0000000..1ae83c4 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/summary.html @@ -0,0 +1,2047 @@ + +Altera Nios II BSP Summary + +

BSP Description

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
BSP Type:hal
SOPC Design File:C:\Users\takayun\Documents\DE2-115\qsys_tutorial\nios_system.sopcinfo
Quartus JDI File:default
CPU:nios2_processor
BSP Settings File:.\settings.bsp
BSP Version:default
BSP Generated On:2016/12/02 1:35:13
BSP Generated Timestamp:1480610113326
BSP Generated Location:C:\Users\takayun\Documents\DE2-115\qsys_tutorial\software\qsys_tutorial_lcd4_bsp
+
+

Nios II Memory Map

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Slave DescriptorAddress RangeSizeAttributes
jtag_uart0x00041100 - 0x000411078printable
LEDs0x000410F0 - 0x000410FF16 
LEDRs0x000410E0 - 0x000410EF16 
switches0x000410D0 - 0x000410DF16 
push_switches0x000410C0 - 0x000410CF16 
hex00x000410B0 - 0x000410BF16 
hex10x000410A0 - 0x000410AF16 
hex20x00041090 - 0x0004109F16 
hex30x00041080 - 0x0004108F16 
hex40x00041070 - 0x0004107F16 
hex50x00041060 - 0x0004106F16 
hex60x00041050 - 0x0004105F16 
hex70x00041040 - 0x0004104F16 
lcd_16207_00x00041030 - 0x0004103F16printable
lcd_blon0x00041020 - 0x0004102F16 
lcd_on0x00041010 - 0x0004101F16 
onchip_memory0x00000000 - 0x00031FFF204800memory
+
+
+

Linker Regions

+ + + + +
RegionAddress RangeSizeMemoryOffset
+
+
+

Linker Section Mappings

+ + + + + + + + + + + + + + + + + + + + + + +
SectionRegion
.textonchip_memory
.rodataonchip_memory
.rwdataonchip_memory
.bssonchip_memory
.heaponchip_memory
.stackonchip_memory
+

Settings

+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:altera_avalon_jtag_uart_driver.enable_jtag_uart_ignore_fifo_full_error
Identifier:ALTERA_AVALON_JTAG_UART_IGNORE_FIFO_FULL_ERROR
Default Value:false
Value:false
Type:BooleanDefineOnly
Destination:public_mk_define
Description:Enable JTAG UART driver to recover when host is inactive causing buffer to full without returning error. Printf will not fail with this recovery.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:altera_avalon_jtag_uart_driver.enable_small_driver
Identifier:ALTERA_AVALON_JTAG_UART_SMALL
Default Value:false
Value:false
Type:BooleanDefineOnly
Destination:public_mk_define
Description:Small-footprint (polled mode) driver
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.custom_newlib_flags
Identifier:CUSTOM_NEWLIB_FLAGS
Default Value:none
Value:none
Type:UnquotedString
Destination:public_mk_define
Description:Build a custom version of newlib with the specified space-separated compiler flags.
Restrictions:The custom newlib build will be placed in the &lt;bsp root>/newlib directory, and will be used only for applications that utilize this BSP.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_c_plus_plus
Identifier:ALT_NO_C_PLUS_PLUS
Default Value:1
Value:1
Type:Boolean
Destination:public_mk_define
Description:Enable support for a subset of the C++ language. This option increases code footprint by adding support for C++ constructors. Certain features, such as multiple inheritance and exceptions are not supported. If false, adds -DALT_NO_C_PLUS_PLUS to ALT_CPPFLAGS in public.mk, and reduces code footprint.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_clean_exit
Identifier:ALT_NO_CLEAN_EXIT
Default Value:1
Value:1
Type:Boolean
Destination:public_mk_define
Description:When your application exits, close file descriptors, call C++ destructors, etc. Code footprint can be reduced by disabling clean exit. If disabled, adds -DALT_NO_CLEAN_EXIT to ALT_CPPFLAGS and -Wl,--defsym, exit=_exit to ALT_LDFLAGS in public.mk.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_exit
Identifier:ALT_NO_EXIT
Default Value:1
Value:1
Type:Boolean
Destination:public_mk_define
Description:Add exit() support. This option increases code footprint if your "main()" routine does "return" or call "exit()". If false, adds -DALT_NO_EXIT to ALT_CPPFLAGS in public.mk, and reduces footprint
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_gprof
Identifier:ALT_PROVIDE_GMON
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Causes code to be compiled with gprof profiling enabled and the application ELF to be linked with the GPROF library. If true, adds -DALT_PROVIDE_GMON to ALT_CPPFLAGS and -pg to ALT_CFLAGS in public.mk.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_instruction_related_exceptions_api
Identifier:ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API
Default Value:false
Value:false
Type:BooleanDefineOnly
Destination:system_h_define
Description:Enables API for registering handlers to service instruction-related exceptions. Enabling this setting increases the size of the exception entry code.
Restrictions:These exception types can be generated if various processor options are enabled, such as the MMU, MPU, or other advanced exception types.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_lightweight_device_driver_api
Identifier:ALT_USE_DIRECT_DRIVERS
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enables lightweight device driver API. This reduces code and data footprint by removing the HAL layer that maps device names (e.g. /dev/uart0) to file descriptors. Instead, driver routines are called directly. The open(), close(), and lseek() routines will always fail if called. The read(), write(), fstat(), ioctl(), and isatty() routines only work for the stdio devices. If true, adds -DALT_USE_DIRECT_DRIVERS to ALT_CPPFLAGS in public.mk.
Restrictions:The Altera Host and read-only ZIP file systems can't be used if hal.enable_lightweight_device_driver_api is true.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_mul_div_emulation
Identifier:ALT_NO_INSTRUCTION_EMULATION
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Adds code to emulate multiply and divide instructions in case they are executed but aren't present in the CPU. Normally this isn't required because the compiler won't use multiply and divide instructions that aren't present in the CPU. If false, adds -DALT_NO_INSTRUCTION_EMULATION to ALT_CPPFLAGS in public.mk.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_reduced_device_drivers
Identifier:ALT_USE_SMALL_DRIVERS
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Certain drivers are compiled with reduced functionality to reduce code footprint. Not all drivers observe this setting. The altera_avalon_uart and altera_avalon_jtag_uart drivers switch from interrupt-driven to polled operation. CAUTION: Several device drivers are disabled entirely. These include the altera_avalon_cfi_flash, altera_avalon_epcs_flash_controller, and altera_avalon_lcd_16207 drivers. This can result in certain API (HAL flash access routines) to fail. You can define a symbol provided by each driver to prevent it from being removed. If true, adds -DALT_USE_SMALL_DRIVERS to ALT_CPPFLAGS in public.mk.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_runtime_stack_checking
Identifier:ALT_STACK_CHECK
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Turns on HAL runtime stack checking feature. Enabling this setting causes additional code to be placed into each subroutine call to generate an exception if a stack collision occurs with the heap or statically allocated data. If true, adds -DALT_STACK_CHECK and -mstack-check to ALT_CPPFLAGS in public.mk.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_sim_optimize
Identifier:ALT_SIM_OPTIMIZE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:The BSP is compiled with optimizations to speedup HDL simulation such as initializing the cache, clearing the .bss section, and skipping long delay loops. If true, adds -DALT_SIM_OPTIMIZE to ALT_CPPFLAGS in public.mk.
Restrictions:When this setting is true, the BSP shouldn't be used to build applications that are expected to run real hardware.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_small_c_library
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Causes the small newlib (C library) to be used. This reduces code and data footprint at the expense of reduced functionality. Several newlib features are removed such as floating-point support in printf(), stdin input routines, and buffered I/O. The small C library is not compatible with Micrium MicroC/OS-II. If true, adds -msmallc to ALT_LDFLAGS in public.mk.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_sopc_sysid_check
Identifier:NONE
Default Value:1
Value:1
Type:Boolean
Destination:public_mk_define
Description:Enable SOPC Builder System ID. If a System ID SOPC Builder component is connected to the CPU associated with this BSP, it will be enabled in the creation of command-line arguments to download an ELF to the target. Otherwise, system ID and timestamp values are left out of public.mk for application Makefile "download-elf" target definition. With the system ID check disabled, the Nios II EDS tools will not automatically ensure that the application .elf file (and BSP it is linked against) corresponds to the hardware design on the target. If false, adds --accept-bad-sysid to SOPC_SYSID_FLAG in public.mk.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.linker.allow_code_at_reset
Identifier:ALT_ALLOW_CODE_AT_RESET
Default Value:0
Value:1
Type:Boolean
Destination:none
Description:Indicates if initialization code is allowed at the reset address. If true, defines the macro ALT_ALLOW_CODE_AT_RESET in linker.h.
Restrictions:If true, defines the macro ALT_ALLOW_CODE_AT_RESET in linker.h. This setting is typically false if an external bootloader (e.g. flash bootloader) is present.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.linker.enable_alt_load
Identifier:NONE
Default Value:0
Value:1
Type:Boolean
Destination:none
Description:Enables the alt_load() facility. The alt_load() facility copies sections from the .text memory into RAM. If true, this setting sets up the VMA/LMA of sections in linker.x to allow them to be loaded into the .text memory.
Restrictions:This setting is typically false if an external bootloader (e.g. flash bootloader) is present.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.linker.enable_alt_load_copy_exceptions
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:none
Description:Causes the alt_load() facility to copy the .exceptions section. If true, this setting defines the macro ALT_LOAD_COPY_EXCEPTIONS in linker.h.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.linker.enable_alt_load_copy_rodata
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:none
Description:Causes the alt_load() facility to copy the .rodata section. If true, this setting defines the macro ALT_LOAD_COPY_RODATA in linker.h.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.linker.enable_alt_load_copy_rwdata
Identifier:NONE
Default Value:0
Value:1
Type:Boolean
Destination:none
Description:Causes the alt_load() facility to copy the .rwdata section. If true, this setting defines the macro ALT_LOAD_COPY_RWDATA in linker.h.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.linker.enable_exception_stack
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:none
Description:Enables use of a separate exception stack. If true, defines the macro ALT_EXCEPTION_STACK in linker.h, adds a memory region called exception_stack to linker.x, and provides the symbols __alt_exception_stack_pointer and __alt_exception_stack_limit in linker.x.
Restrictions:The hal.linker.exception_stack_size and hal.linker.exception_stack_memory_region_name settings must also be valid. This setting must be false for MicroC/OS-II BSPs. The exception stack can be used to improve interrupt and other exception performance if the EIC is *not* used.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.linker.enable_interrupt_stack
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:none
Description:Enables use of a separate interrupt stack. If true, defines the macro ALT_INTERRUPT_STACK in linker.h, adds a memory region called interrupt_stack to linker.x, and provides the symbols __alt_interrupt_stack_pointer and __alt_interrupt_stack_limit in linker.x.
Restrictions:The hal.linker.interrupt_stack_size and hal.linker.interrupt_stack_memory_region_name settings must also be valid. This setting must be false for MicroC/OS-II BSPs. Only enable if the EIC is used exclusively. The exception stack can be used to improve interrupt and other exception performance if the EIC is *not* used.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.linker.exception_stack_memory_region_name
Identifier:NONE
Default Value:none
Value:onchip_memory
Type:UnquotedString
Destination:none
Description:Name of the existing memory region that will be divided up to create the 'exception_stack' memory region. The selected region name will be adjusted automatically when the BSP is generated to create the 'exception_stack' memory region.
Restrictions:Only used if hal.linker.enable_exception_stack is true.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.linker.exception_stack_size
Identifier:NONE
Default Value:1024
Value:1024
Type:DecimalNumber
Destination:none
Description:Size of the exception stack in bytes.
Restrictions:Only used if hal.linker.enable_exception_stack is true.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.linker.interrupt_stack_memory_region_name
Identifier:NONE
Default Value:none
Value:onchip_memory
Type:UnquotedString
Destination:none
Description:Name of the existing memory region that will be divided up to create the 'interrupt_stack' memory region. The selected region name will be adjusted automatically when the BSP is generated to create the 'interrupt_stack' memory region.
Restrictions:Only used if hal.linker.enable_interrupt_stack is true.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.linker.interrupt_stack_size
Identifier:NONE
Default Value:1024
Value:1024
Type:DecimalNumber
Destination:none
Description:Size of the interrupt stack in bytes.
Restrictions:Only used if hal.linker.enable_interrupt_stack is true.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.log_flags
Identifier:ALT_LOG_FLAGS
Default Value:0
Value:0
Type:DecimalNumber
Destination:public_mk_define
Description:The value is assigned to ALT_LOG_FLAGS in the generated public.mk. See hal.log_port setting description. Values can be -1 through 3.
Restrictions:hal.log_port must be set for this to be used.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.log_port
Identifier:NONE
Default Value:none
Value:none
Type:UnquotedString
Destination:public_mk_define
Description:Slave descriptor of debug logging character-mode device. If defined, it enables extra debug messages in the HAL source. This setting is used by the ALT_LOG_PORT family of defines in system.h.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ar
Identifier:AR
Default Value:nios2-elf-ar
Value:nios2-elf-ar
Type:UnquotedString
Destination:makefile_variable
Description:Archiver command. Creates library files.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ar_post_process
Identifier:AR_POST_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed after archiver execution.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ar_pre_process
Identifier:AR_PRE_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed before archiver execution.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.as
Identifier:AS
Default Value:nios2-elf-gcc
Value:nios2-elf-gcc
Type:UnquotedString
Destination:makefile_variable
Description:Assembler command. Note that CC is used for .S files.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.as_post_process
Identifier:AS_POST_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed after each assembly file is compiled.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.as_pre_process
Identifier:AS_PRE_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed before each assembly file is compiled.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.bsp_arflags
Identifier:BSP_ARFLAGS
Default Value:-src
Value:-src
Type:UnquotedString
Destination:makefile_variable
Description:Custom flags only passed to the archiver. This content of this variable is directly passed to the archiver rather than the more standard "ARFLAGS". The reason for this is that GNU Make assumes some default content in ARFLAGS. This setting defines the value of BSP_ARFLAGS in Makefile.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.bsp_asflags
Identifier:BSP_ASFLAGS
Default Value:-Wa,-gdwarf2
Value:-Wa,-gdwarf2
Type:UnquotedString
Destination:makefile_variable
Description:Custom flags only passed to the assembler. This setting defines the value of BSP_ASFLAGS in Makefile.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.bsp_cflags_debug
Identifier:BSP_CFLAGS_DEBUG
Default Value:-g
Value:-g
Type:UnquotedString
Destination:makefile_variable
Description:C/C++ compiler debug level. '-g' provides the default set of debug symbols typically required to debug a typical application. Omitting '-g' removes debug symbols from the ELF. This setting defines the value of BSP_CFLAGS_DEBUG in Makefile.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.bsp_cflags_defined_symbols
Identifier:BSP_CFLAGS_DEFINED_SYMBOLS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Preprocessor macros to define. A macro definition in this setting has the same effect as a "#define" in source code. Adding "-DALT_DEBUG" to this setting has the same effect as "#define ALT_DEBUG" in a souce file. Adding "-DFOO=1" to this setting is equivalent to the macro "#define FOO 1" in a source file. Macros defined with this setting are applied to all .S, .c, and C++ files in the BSP. This setting defines the value of BSP_CFLAGS_DEFINED_SYMBOLS in the BSP Makefile.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.bsp_cflags_optimization
Identifier:BSP_CFLAGS_OPTIMIZATION
Default Value:-O0
Value:-O0
Type:UnquotedString
Destination:makefile_variable
Description:C/C++ compiler optimization level. "-O0" = no optimization,"-O2" = "normal" optimization, etc. "-O0" is recommended for code that you want to debug since compiler optimization can remove variables and produce non-sequential execution of code while debugging. This setting defines the value of BSP_CFLAGS_OPTIMIZATION in Makefile.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.bsp_cflags_undefined_symbols
Identifier:BSP_CFLAGS_UNDEFINED_SYMBOLS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Preprocessor macros to undefine. Undefined macros are similar to defined macros, but replicate the "#undef" directive in source code. To undefine the macro FOO use the syntax "-u FOO" in this setting. This is equivalent to "#undef FOO" in a source file. Note: the syntax differs from macro definition (there is a space, i.e. "-u FOO" versus "-DFOO"). Macros defined with this setting are applied to all .S, .c, and C++ files in the BSP. This setting defines the value of BSP_CFLAGS_UNDEFINED_SYMBOLS in the BSP Makefile.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.bsp_cflags_user_flags
Identifier:BSP_CFLAGS_USER_FLAGS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Custom flags passed to the compiler when compiling C, C++, and .S files. This setting defines the value of BSP_CFLAGS_USER_FLAGS in Makefile.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.bsp_cflags_warnings
Identifier:BSP_CFLAGS_WARNINGS
Default Value:-Wall
Value:-Wall
Type:UnquotedString
Destination:makefile_variable
Description:C/C++ compiler warning level. "-Wall" is commonly used.This setting defines the value of BSP_CFLAGS_WARNINGS in Makefile.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.bsp_cxx_flags
Identifier:BSP_CXXFLAGS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Custom flags only passed to the C++ compiler. This setting defines the value of BSP_CXXFLAGS in Makefile.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.bsp_inc_dirs
Identifier:BSP_INC_DIRS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Space separated list of extra include directories to scan for header files. Directories are relative to the top-level BSP directory. The -I prefix's added by the makefile so don't add it here. This setting defines the value of BSP_INC_DIRS in Makefile.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.build_post_process
Identifier:BUILD_POST_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed after BSP built.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.build_pre_process
Identifier:BUILD_PRE_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed before BSP built.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.cc
Identifier:CC
Default Value:nios2-elf-gcc -xc
Value:nios2-elf-gcc -xc
Type:UnquotedString
Destination:makefile_variable
Description:C compiler command.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.cc_post_process
Identifier:CC_POST_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed after each .c/.S file is compiled.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.cc_pre_process
Identifier:CC_PRE_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed before each .c/.S file is compiled.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.cxx
Identifier:CXX
Default Value:nios2-elf-gcc -xc++
Value:nios2-elf-gcc -xc++
Type:UnquotedString
Destination:makefile_variable
Description:C++ compiler command.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.cxx_post_process
Identifier:CXX_POST_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed before each C++ file is compiled.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.cxx_pre_process
Identifier:CXX_PRE_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed before each C++ file is compiled.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.big_endian
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query if SOPC system is big endian. If true ignores export of 'ALT_CFLAGS += -EB' to public.mk if big endian system. If true ignores export of 'ALT_CFLAGS += -EL' if little endian system.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.debug_core_present
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query if SOPC system has a debug core present. If true ignores export of 'CPU_HAS_DEBUG_CORE = 1' to public.mk if a debug core is found in the system. If true ignores export of 'CPU_HAS_DEBUG_CORE = 0' if no debug core is found in the system.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.fpu_present
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query if SOPC system has FPU present. If true ignores export of 'ALT_CFLAGS += -mhard-float' to public.mk if FPU is found in the system. If true ignores export of 'ALT_CFLAGS += -mhard-soft' if FPU is not found in the system.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.hardware_divide_present
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query if SOPC system has hardware divide present. If true ignores export of 'ALT_CFLAGS += -mno-hw-div' to public.mk if no division is found in system. If true ignores export of 'ALT_CFLAGS += -mhw-div' if division is found in the system.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.hardware_fp_cust_inst_divider_present
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query if SOPC system floating point custom instruction with a divider is present. If true ignores export of 'ALT_CFLAGS += -mcustom-fpu-cfg=60-2' and 'ALT_LDFLAGS += -mcustom-fpu-cfg=60-2' to public.mk if the custom instruction is found in the system.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.hardware_fp_cust_inst_no_divider_present
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query if SOPC system floating point custom instruction without a divider is present. If true ignores export of 'ALT_CFLAGS += -mcustom-fpu-cfg=60-1' and 'ALT_LDFLAGS += -mcustom-fpu-cfg=60-1' to public.mk if the custom instruction is found in the system.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.hardware_multiplier_present
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query if SOPC system has multiplier present. If true ignores export of 'ALT_CFLAGS += -mno-hw-mul' to public.mk if no multiplier is found in the system. If true ignores export of 'ALT_CFLAGS += -mhw-mul' if multiplier is found in the system.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.hardware_mulx_present
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query if SOPC system has hardware mulx present. If true ignores export of 'ALT_CFLAGS += -mno-hw-mulx' to public.mk if no mulx is found in the system. If true ignores export of 'ALT_CFLAGS += -mhw-mulx' if mulx is found in the system.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.sopc_simulation_enabled
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query if SOPC system has simulation enabled. If true ignores export of 'ELF_PATCH_FLAG += --simulation_enabled' to public.mk.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.sopc_system_base_address
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query SOPC system for system ID base address. If true ignores export of 'SOPC_SYSID_FLAG += --sidp=<address>' and 'ELF_PATCH_FLAG += --sidp=<address>' to public.mk.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.sopc_system_id
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query SOPC system for system ID. If true ignores export of 'SOPC_SYSID_FLAG += --id=<sysid>' and 'ELF_PATCH_FLAG += --id=<sysid>' to public.mk.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.sopc_system_timestamp
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query SOPC system for system timestamp. If true ignores export of 'SOPC_SYSID_FLAG += --timestamp=<timestamp>' and 'ELF_PATCH_FLAG += --timestamp=<timestamp>' to public.mk.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.rm
Identifier:RM
Default Value:rm -f
Value:rm -f
Type:UnquotedString
Destination:makefile_variable
Description:Command used to remove files during 'clean' target.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.max_file_descriptors
Identifier:ALT_MAX_FD
Default Value:32
Value:32
Type:DecimalNumber
Destination:system_h_define
Description:Determines the number of file descriptors statically allocated. This setting defines the value of ALT_MAX_FD in system.h.
Restrictions:If hal.enable_lightweight_device_driver_api is true, there are no file descriptors so this setting is ignored. If hal.enable_lightweight_device_driver_api is false, this setting must be at least 4 because HAL needs a file descriptor for /dev/null, /dev/stdin, /dev/stdout, and /dev/stderr.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.stderr
Identifier:NONE
Default Value:none
Value:jtag_uart
Type:UnquotedString
Destination:system_h_define
Description:Slave descriptor of STDERR character-mode device. This setting is used by the ALT_STDERR family of defines in system.h.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.stdin
Identifier:NONE
Default Value:none
Value:jtag_uart
Type:UnquotedString
Destination:system_h_define
Description:Slave descriptor of STDIN character-mode device. This setting is used by the ALT_STDIN family of defines in system.h.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.stdout
Identifier:NONE
Default Value:none
Value:jtag_uart
Type:UnquotedString
Destination:system_h_define
Description:Slave descriptor of STDOUT character-mode device. This setting is used by the ALT_STDOUT family of defines in system.h.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.sys_clk_timer
Identifier:ALT_SYS_CLK
Default Value:none
Value:none
Type:UnquotedString
Destination:system_h_define
Description:Slave descriptor of the system clock timer device. This device provides a periodic interrupt ("tick") and is typically required for RTOS use. This setting defines the value of ALT_SYS_CLK in system.h.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.timestamp_timer
Identifier:ALT_TIMESTAMP_CLK
Default Value:none
Value:none
Type:UnquotedString
Destination:system_h_define
Description:Slave descriptor of timestamp timer device. This device is used by Altera HAL timestamp drivers for high-resolution time measurement. This setting defines the value of ALT_TIMESTAMP_CLK in system.h.
Restrictions:none
+
+
+
+ + diff --git a/software/qsys_tutorial_lcd4_bsp/system.h b/software/qsys_tutorial_lcd4_bsp/system.h new file mode 100644 index 0000000..5767cc9 --- /dev/null +++ b/software/qsys_tutorial_lcd4_bsp/system.h @@ -0,0 +1,617 @@ +/* + * system.h - SOPC Builder system and BSP software package information + * + * Machine generated for CPU 'nios2_processor' in SOPC Builder design 'nios_system' + * SOPC Builder design path: C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.sopcinfo + * + * Generated: Fri Dec 02 01:35:14 JST 2016 + */ + +/* + * DO NOT MODIFY THIS FILE + * + * Changing this file will have subtle consequences + * which will almost certainly lead to a nonfunctioning + * system. If you do modify this file, be aware that your + * changes will be overwritten and lost when this file + * is generated again. + * + * DO NOT MODIFY THIS FILE + */ + +/* + * License Agreement + * + * Copyright (c) 2008 + * Altera Corporation, San Jose, California, USA. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + * This agreement shall be governed in all respects by the laws of the State + * of California and by the laws of the United States of America. + */ + +#ifndef __SYSTEM_H_ +#define __SYSTEM_H_ + +/* Include definitions from linker script generator */ +#include "linker.h" + + +/* + * CPU configuration + * + */ + +#define ALT_CPU_ARCHITECTURE "altera_nios2_qsys" +#define ALT_CPU_BIG_ENDIAN 0 +#define ALT_CPU_BREAK_ADDR 0x40820 +#define ALT_CPU_CPU_FREQ 50000000u +#define ALT_CPU_CPU_ID_SIZE 1 +#define ALT_CPU_CPU_ID_VALUE 0x00000000 +#define ALT_CPU_CPU_IMPLEMENTATION "tiny" +#define ALT_CPU_DATA_ADDR_WIDTH 0x13 +#define ALT_CPU_DCACHE_LINE_SIZE 0 +#define ALT_CPU_DCACHE_LINE_SIZE_LOG2 0 +#define ALT_CPU_DCACHE_SIZE 0 +#define ALT_CPU_EXCEPTION_ADDR 0x20 +#define ALT_CPU_FLUSHDA_SUPPORTED +#define ALT_CPU_FREQ 50000000 +#define ALT_CPU_HARDWARE_DIVIDE_PRESENT 0 +#define ALT_CPU_HARDWARE_MULTIPLY_PRESENT 0 +#define ALT_CPU_HARDWARE_MULX_PRESENT 0 +#define ALT_CPU_HAS_DEBUG_CORE 1 +#define ALT_CPU_HAS_DEBUG_STUB +#define ALT_CPU_HAS_JMPI_INSTRUCTION +#define ALT_CPU_ICACHE_LINE_SIZE 0 +#define ALT_CPU_ICACHE_LINE_SIZE_LOG2 0 +#define ALT_CPU_ICACHE_SIZE 0 +#define ALT_CPU_INST_ADDR_WIDTH 0x13 +#define ALT_CPU_NAME "nios2_processor" +#define ALT_CPU_RESET_ADDR 0x0 + + +/* + * CPU configuration (with legacy prefix - don't use these anymore) + * + */ + +#define NIOS2_BIG_ENDIAN 0 +#define NIOS2_BREAK_ADDR 0x40820 +#define NIOS2_CPU_FREQ 50000000u +#define NIOS2_CPU_ID_SIZE 1 +#define NIOS2_CPU_ID_VALUE 0x00000000 +#define NIOS2_CPU_IMPLEMENTATION "tiny" +#define NIOS2_DATA_ADDR_WIDTH 0x13 +#define NIOS2_DCACHE_LINE_SIZE 0 +#define NIOS2_DCACHE_LINE_SIZE_LOG2 0 +#define NIOS2_DCACHE_SIZE 0 +#define NIOS2_EXCEPTION_ADDR 0x20 +#define NIOS2_FLUSHDA_SUPPORTED +#define NIOS2_HARDWARE_DIVIDE_PRESENT 0 +#define NIOS2_HARDWARE_MULTIPLY_PRESENT 0 +#define NIOS2_HARDWARE_MULX_PRESENT 0 +#define NIOS2_HAS_DEBUG_CORE 1 +#define NIOS2_HAS_DEBUG_STUB +#define NIOS2_HAS_JMPI_INSTRUCTION +#define NIOS2_ICACHE_LINE_SIZE 0 +#define NIOS2_ICACHE_LINE_SIZE_LOG2 0 +#define NIOS2_ICACHE_SIZE 0 +#define NIOS2_INST_ADDR_WIDTH 0x13 +#define NIOS2_RESET_ADDR 0x0 + + +/* + * Define for each module class mastered by the CPU + * + */ + +#define __ALTERA_AVALON_JTAG_UART +#define __ALTERA_AVALON_LCD_16207 +#define __ALTERA_AVALON_ONCHIP_MEMORY2 +#define __ALTERA_AVALON_PIO +#define __ALTERA_NIOS2_QSYS + + +/* + * LEDRs configuration + * + */ + +#define ALT_MODULE_CLASS_LEDRs altera_avalon_pio +#define LEDRS_BASE 0x410e0 +#define LEDRS_BIT_CLEARING_EDGE_REGISTER 0 +#define LEDRS_BIT_MODIFYING_OUTPUT_REGISTER 0 +#define LEDRS_CAPTURE 0 +#define LEDRS_DATA_WIDTH 18 +#define LEDRS_DO_TEST_BENCH_WIRING 0 +#define LEDRS_DRIVEN_SIM_VALUE 0 +#define LEDRS_EDGE_TYPE "NONE" +#define LEDRS_FREQ 50000000 +#define LEDRS_HAS_IN 0 +#define LEDRS_HAS_OUT 1 +#define LEDRS_HAS_TRI 0 +#define LEDRS_IRQ -1 +#define LEDRS_IRQ_INTERRUPT_CONTROLLER_ID -1 +#define LEDRS_IRQ_TYPE "NONE" +#define LEDRS_NAME "/dev/LEDRs" +#define LEDRS_RESET_VALUE 0 +#define LEDRS_SPAN 16 +#define LEDRS_TYPE "altera_avalon_pio" + + +/* + * LEDs configuration + * + */ + +#define ALT_MODULE_CLASS_LEDs altera_avalon_pio +#define LEDS_BASE 0x410f0 +#define LEDS_BIT_CLEARING_EDGE_REGISTER 0 +#define LEDS_BIT_MODIFYING_OUTPUT_REGISTER 0 +#define LEDS_CAPTURE 0 +#define LEDS_DATA_WIDTH 8 +#define LEDS_DO_TEST_BENCH_WIRING 0 +#define LEDS_DRIVEN_SIM_VALUE 0 +#define LEDS_EDGE_TYPE "NONE" +#define LEDS_FREQ 50000000 +#define LEDS_HAS_IN 0 +#define LEDS_HAS_OUT 1 +#define LEDS_HAS_TRI 0 +#define LEDS_IRQ -1 +#define LEDS_IRQ_INTERRUPT_CONTROLLER_ID -1 +#define LEDS_IRQ_TYPE "NONE" +#define LEDS_NAME "/dev/LEDs" +#define LEDS_RESET_VALUE 0 +#define LEDS_SPAN 16 +#define LEDS_TYPE "altera_avalon_pio" + + +/* + * System configuration + * + */ + +#define ALT_DEVICE_FAMILY "Cyclone IV E" +#define ALT_ENHANCED_INTERRUPT_API_PRESENT +#define ALT_IRQ_BASE NULL +#define ALT_LOG_PORT "/dev/null" +#define ALT_LOG_PORT_BASE 0x0 +#define ALT_LOG_PORT_DEV null +#define ALT_LOG_PORT_TYPE "" +#define ALT_NUM_EXTERNAL_INTERRUPT_CONTROLLERS 0 +#define ALT_NUM_INTERNAL_INTERRUPT_CONTROLLERS 1 +#define ALT_NUM_INTERRUPT_CONTROLLERS 1 +#define ALT_STDERR "/dev/jtag_uart" +#define ALT_STDERR_BASE 0x41100 +#define ALT_STDERR_DEV jtag_uart +#define ALT_STDERR_IS_JTAG_UART +#define ALT_STDERR_PRESENT +#define ALT_STDERR_TYPE "altera_avalon_jtag_uart" +#define ALT_STDIN "/dev/jtag_uart" +#define ALT_STDIN_BASE 0x41100 +#define ALT_STDIN_DEV jtag_uart +#define ALT_STDIN_IS_JTAG_UART +#define ALT_STDIN_PRESENT +#define ALT_STDIN_TYPE "altera_avalon_jtag_uart" +#define ALT_STDOUT "/dev/jtag_uart" +#define ALT_STDOUT_BASE 0x41100 +#define ALT_STDOUT_DEV jtag_uart +#define ALT_STDOUT_IS_JTAG_UART +#define ALT_STDOUT_PRESENT +#define ALT_STDOUT_TYPE "altera_avalon_jtag_uart" +#define ALT_SYSTEM_NAME "nios_system" + + +/* + * hal configuration + * + */ + +#define ALT_MAX_FD 32 +#define ALT_SYS_CLK none +#define ALT_TIMESTAMP_CLK none + + +/* + * hex0 configuration + * + */ + +#define ALT_MODULE_CLASS_hex0 altera_avalon_pio +#define HEX0_BASE 0x410b0 +#define HEX0_BIT_CLEARING_EDGE_REGISTER 0 +#define HEX0_BIT_MODIFYING_OUTPUT_REGISTER 0 +#define HEX0_CAPTURE 0 +#define HEX0_DATA_WIDTH 7 +#define HEX0_DO_TEST_BENCH_WIRING 0 +#define HEX0_DRIVEN_SIM_VALUE 0 +#define HEX0_EDGE_TYPE "NONE" +#define HEX0_FREQ 50000000 +#define HEX0_HAS_IN 0 +#define HEX0_HAS_OUT 1 +#define HEX0_HAS_TRI 0 +#define HEX0_IRQ -1 +#define HEX0_IRQ_INTERRUPT_CONTROLLER_ID -1 +#define HEX0_IRQ_TYPE "NONE" +#define HEX0_NAME "/dev/hex0" +#define HEX0_RESET_VALUE 0 +#define HEX0_SPAN 16 +#define HEX0_TYPE "altera_avalon_pio" + + +/* + * hex1 configuration + * + */ + +#define ALT_MODULE_CLASS_hex1 altera_avalon_pio +#define HEX1_BASE 0x410a0 +#define HEX1_BIT_CLEARING_EDGE_REGISTER 0 +#define HEX1_BIT_MODIFYING_OUTPUT_REGISTER 0 +#define HEX1_CAPTURE 0 +#define HEX1_DATA_WIDTH 7 +#define HEX1_DO_TEST_BENCH_WIRING 0 +#define HEX1_DRIVEN_SIM_VALUE 0 +#define HEX1_EDGE_TYPE "NONE" +#define HEX1_FREQ 50000000 +#define HEX1_HAS_IN 0 +#define HEX1_HAS_OUT 1 +#define HEX1_HAS_TRI 0 +#define HEX1_IRQ -1 +#define HEX1_IRQ_INTERRUPT_CONTROLLER_ID -1 +#define HEX1_IRQ_TYPE "NONE" +#define HEX1_NAME "/dev/hex1" +#define HEX1_RESET_VALUE 0 +#define HEX1_SPAN 16 +#define HEX1_TYPE "altera_avalon_pio" + + +/* + * hex2 configuration + * + */ + +#define ALT_MODULE_CLASS_hex2 altera_avalon_pio +#define HEX2_BASE 0x41090 +#define HEX2_BIT_CLEARING_EDGE_REGISTER 0 +#define HEX2_BIT_MODIFYING_OUTPUT_REGISTER 0 +#define HEX2_CAPTURE 0 +#define HEX2_DATA_WIDTH 7 +#define HEX2_DO_TEST_BENCH_WIRING 0 +#define HEX2_DRIVEN_SIM_VALUE 0 +#define HEX2_EDGE_TYPE "NONE" +#define HEX2_FREQ 50000000 +#define HEX2_HAS_IN 0 +#define HEX2_HAS_OUT 1 +#define HEX2_HAS_TRI 0 +#define HEX2_IRQ -1 +#define HEX2_IRQ_INTERRUPT_CONTROLLER_ID -1 +#define HEX2_IRQ_TYPE "NONE" +#define HEX2_NAME "/dev/hex2" +#define HEX2_RESET_VALUE 0 +#define HEX2_SPAN 16 +#define HEX2_TYPE "altera_avalon_pio" + + +/* + * hex3 configuration + * + */ + +#define ALT_MODULE_CLASS_hex3 altera_avalon_pio +#define HEX3_BASE 0x41080 +#define HEX3_BIT_CLEARING_EDGE_REGISTER 0 +#define HEX3_BIT_MODIFYING_OUTPUT_REGISTER 0 +#define HEX3_CAPTURE 0 +#define HEX3_DATA_WIDTH 7 +#define HEX3_DO_TEST_BENCH_WIRING 0 +#define HEX3_DRIVEN_SIM_VALUE 0 +#define HEX3_EDGE_TYPE "NONE" +#define HEX3_FREQ 50000000 +#define HEX3_HAS_IN 0 +#define HEX3_HAS_OUT 1 +#define HEX3_HAS_TRI 0 +#define HEX3_IRQ -1 +#define HEX3_IRQ_INTERRUPT_CONTROLLER_ID -1 +#define HEX3_IRQ_TYPE "NONE" +#define HEX3_NAME "/dev/hex3" +#define HEX3_RESET_VALUE 0 +#define HEX3_SPAN 16 +#define HEX3_TYPE "altera_avalon_pio" + + +/* + * hex4 configuration + * + */ + +#define ALT_MODULE_CLASS_hex4 altera_avalon_pio +#define HEX4_BASE 0x41070 +#define HEX4_BIT_CLEARING_EDGE_REGISTER 0 +#define HEX4_BIT_MODIFYING_OUTPUT_REGISTER 0 +#define HEX4_CAPTURE 0 +#define HEX4_DATA_WIDTH 7 +#define HEX4_DO_TEST_BENCH_WIRING 0 +#define HEX4_DRIVEN_SIM_VALUE 0 +#define HEX4_EDGE_TYPE "NONE" +#define HEX4_FREQ 50000000 +#define HEX4_HAS_IN 0 +#define HEX4_HAS_OUT 1 +#define HEX4_HAS_TRI 0 +#define HEX4_IRQ -1 +#define HEX4_IRQ_INTERRUPT_CONTROLLER_ID -1 +#define HEX4_IRQ_TYPE "NONE" +#define HEX4_NAME "/dev/hex4" +#define HEX4_RESET_VALUE 0 +#define HEX4_SPAN 16 +#define HEX4_TYPE "altera_avalon_pio" + + +/* + * hex5 configuration + * + */ + +#define ALT_MODULE_CLASS_hex5 altera_avalon_pio +#define HEX5_BASE 0x41060 +#define HEX5_BIT_CLEARING_EDGE_REGISTER 0 +#define HEX5_BIT_MODIFYING_OUTPUT_REGISTER 0 +#define HEX5_CAPTURE 0 +#define HEX5_DATA_WIDTH 7 +#define HEX5_DO_TEST_BENCH_WIRING 0 +#define HEX5_DRIVEN_SIM_VALUE 0 +#define HEX5_EDGE_TYPE "NONE" +#define HEX5_FREQ 50000000 +#define HEX5_HAS_IN 0 +#define HEX5_HAS_OUT 1 +#define HEX5_HAS_TRI 0 +#define HEX5_IRQ -1 +#define HEX5_IRQ_INTERRUPT_CONTROLLER_ID -1 +#define HEX5_IRQ_TYPE "NONE" +#define HEX5_NAME "/dev/hex5" +#define HEX5_RESET_VALUE 0 +#define HEX5_SPAN 16 +#define HEX5_TYPE "altera_avalon_pio" + + +/* + * hex6 configuration + * + */ + +#define ALT_MODULE_CLASS_hex6 altera_avalon_pio +#define HEX6_BASE 0x41050 +#define HEX6_BIT_CLEARING_EDGE_REGISTER 0 +#define HEX6_BIT_MODIFYING_OUTPUT_REGISTER 0 +#define HEX6_CAPTURE 0 +#define HEX6_DATA_WIDTH 7 +#define HEX6_DO_TEST_BENCH_WIRING 0 +#define HEX6_DRIVEN_SIM_VALUE 0 +#define HEX6_EDGE_TYPE "NONE" +#define HEX6_FREQ 50000000 +#define HEX6_HAS_IN 0 +#define HEX6_HAS_OUT 1 +#define HEX6_HAS_TRI 0 +#define HEX6_IRQ -1 +#define HEX6_IRQ_INTERRUPT_CONTROLLER_ID -1 +#define HEX6_IRQ_TYPE "NONE" +#define HEX6_NAME "/dev/hex6" +#define HEX6_RESET_VALUE 0 +#define HEX6_SPAN 16 +#define HEX6_TYPE "altera_avalon_pio" + + +/* + * hex7 configuration + * + */ + +#define ALT_MODULE_CLASS_hex7 altera_avalon_pio +#define HEX7_BASE 0x41040 +#define HEX7_BIT_CLEARING_EDGE_REGISTER 0 +#define HEX7_BIT_MODIFYING_OUTPUT_REGISTER 0 +#define HEX7_CAPTURE 0 +#define HEX7_DATA_WIDTH 7 +#define HEX7_DO_TEST_BENCH_WIRING 0 +#define HEX7_DRIVEN_SIM_VALUE 0 +#define HEX7_EDGE_TYPE "NONE" +#define HEX7_FREQ 50000000 +#define HEX7_HAS_IN 0 +#define HEX7_HAS_OUT 1 +#define HEX7_HAS_TRI 0 +#define HEX7_IRQ -1 +#define HEX7_IRQ_INTERRUPT_CONTROLLER_ID -1 +#define HEX7_IRQ_TYPE "NONE" +#define HEX7_NAME "/dev/hex7" +#define HEX7_RESET_VALUE 0 +#define HEX7_SPAN 16 +#define HEX7_TYPE "altera_avalon_pio" + + +/* + * jtag_uart configuration + * + */ + +#define ALT_MODULE_CLASS_jtag_uart altera_avalon_jtag_uart +#define JTAG_UART_BASE 0x41100 +#define JTAG_UART_IRQ 5 +#define JTAG_UART_IRQ_INTERRUPT_CONTROLLER_ID 0 +#define JTAG_UART_NAME "/dev/jtag_uart" +#define JTAG_UART_READ_DEPTH 64 +#define JTAG_UART_READ_THRESHOLD 8 +#define JTAG_UART_SPAN 8 +#define JTAG_UART_TYPE "altera_avalon_jtag_uart" +#define JTAG_UART_WRITE_DEPTH 64 +#define JTAG_UART_WRITE_THRESHOLD 8 + + +/* + * lcd_16207_0 configuration + * + */ + +#define ALT_MODULE_CLASS_lcd_16207_0 altera_avalon_lcd_16207 +#define LCD_16207_0_BASE 0x41030 +#define LCD_16207_0_IRQ -1 +#define LCD_16207_0_IRQ_INTERRUPT_CONTROLLER_ID -1 +#define LCD_16207_0_NAME "/dev/lcd_16207_0" +#define LCD_16207_0_SPAN 16 +#define LCD_16207_0_TYPE "altera_avalon_lcd_16207" + + +/* + * lcd_blon configuration + * + */ + +#define ALT_MODULE_CLASS_lcd_blon altera_avalon_pio +#define LCD_BLON_BASE 0x41020 +#define LCD_BLON_BIT_CLEARING_EDGE_REGISTER 0 +#define LCD_BLON_BIT_MODIFYING_OUTPUT_REGISTER 0 +#define LCD_BLON_CAPTURE 0 +#define LCD_BLON_DATA_WIDTH 1 +#define LCD_BLON_DO_TEST_BENCH_WIRING 0 +#define LCD_BLON_DRIVEN_SIM_VALUE 0 +#define LCD_BLON_EDGE_TYPE "NONE" +#define LCD_BLON_FREQ 50000000 +#define LCD_BLON_HAS_IN 0 +#define LCD_BLON_HAS_OUT 1 +#define LCD_BLON_HAS_TRI 0 +#define LCD_BLON_IRQ -1 +#define LCD_BLON_IRQ_INTERRUPT_CONTROLLER_ID -1 +#define LCD_BLON_IRQ_TYPE "NONE" +#define LCD_BLON_NAME "/dev/lcd_blon" +#define LCD_BLON_RESET_VALUE 0 +#define LCD_BLON_SPAN 16 +#define LCD_BLON_TYPE "altera_avalon_pio" + + +/* + * lcd_on configuration + * + */ + +#define ALT_MODULE_CLASS_lcd_on altera_avalon_pio +#define LCD_ON_BASE 0x41010 +#define LCD_ON_BIT_CLEARING_EDGE_REGISTER 0 +#define LCD_ON_BIT_MODIFYING_OUTPUT_REGISTER 0 +#define LCD_ON_CAPTURE 0 +#define LCD_ON_DATA_WIDTH 1 +#define LCD_ON_DO_TEST_BENCH_WIRING 0 +#define LCD_ON_DRIVEN_SIM_VALUE 0 +#define LCD_ON_EDGE_TYPE "NONE" +#define LCD_ON_FREQ 50000000 +#define LCD_ON_HAS_IN 0 +#define LCD_ON_HAS_OUT 1 +#define LCD_ON_HAS_TRI 0 +#define LCD_ON_IRQ -1 +#define LCD_ON_IRQ_INTERRUPT_CONTROLLER_ID -1 +#define LCD_ON_IRQ_TYPE "NONE" +#define LCD_ON_NAME "/dev/lcd_on" +#define LCD_ON_RESET_VALUE 0 +#define LCD_ON_SPAN 16 +#define LCD_ON_TYPE "altera_avalon_pio" + + +/* + * onchip_memory configuration + * + */ + +#define ALT_MODULE_CLASS_onchip_memory altera_avalon_onchip_memory2 +#define ONCHIP_MEMORY_ALLOW_IN_SYSTEM_MEMORY_CONTENT_EDITOR 0 +#define ONCHIP_MEMORY_ALLOW_MRAM_SIM_CONTENTS_ONLY_FILE 0 +#define ONCHIP_MEMORY_BASE 0x0 +#define ONCHIP_MEMORY_CONTENTS_INFO "" +#define ONCHIP_MEMORY_DUAL_PORT 0 +#define ONCHIP_MEMORY_GUI_RAM_BLOCK_TYPE "AUTO" +#define ONCHIP_MEMORY_INIT_CONTENTS_FILE "nios_system_onchip_memory" +#define ONCHIP_MEMORY_INIT_MEM_CONTENT 1 +#define ONCHIP_MEMORY_INSTANCE_ID "NONE" +#define ONCHIP_MEMORY_IRQ -1 +#define ONCHIP_MEMORY_IRQ_INTERRUPT_CONTROLLER_ID -1 +#define ONCHIP_MEMORY_NAME "/dev/onchip_memory" +#define ONCHIP_MEMORY_NON_DEFAULT_INIT_FILE_ENABLED 0 +#define ONCHIP_MEMORY_RAM_BLOCK_TYPE "AUTO" +#define ONCHIP_MEMORY_READ_DURING_WRITE_MODE "DONT_CARE" +#define ONCHIP_MEMORY_SINGLE_CLOCK_OP 0 +#define ONCHIP_MEMORY_SIZE_MULTIPLE 1 +#define ONCHIP_MEMORY_SIZE_VALUE 204800 +#define ONCHIP_MEMORY_SPAN 204800 +#define ONCHIP_MEMORY_TYPE "altera_avalon_onchip_memory2" +#define ONCHIP_MEMORY_WRITABLE 1 + + +/* + * push_switches configuration + * + */ + +#define ALT_MODULE_CLASS_push_switches altera_avalon_pio +#define PUSH_SWITCHES_BASE 0x410c0 +#define PUSH_SWITCHES_BIT_CLEARING_EDGE_REGISTER 0 +#define PUSH_SWITCHES_BIT_MODIFYING_OUTPUT_REGISTER 0 +#define PUSH_SWITCHES_CAPTURE 0 +#define PUSH_SWITCHES_DATA_WIDTH 3 +#define PUSH_SWITCHES_DO_TEST_BENCH_WIRING 0 +#define PUSH_SWITCHES_DRIVEN_SIM_VALUE 0 +#define PUSH_SWITCHES_EDGE_TYPE "NONE" +#define PUSH_SWITCHES_FREQ 50000000 +#define PUSH_SWITCHES_HAS_IN 1 +#define PUSH_SWITCHES_HAS_OUT 0 +#define PUSH_SWITCHES_HAS_TRI 0 +#define PUSH_SWITCHES_IRQ -1 +#define PUSH_SWITCHES_IRQ_INTERRUPT_CONTROLLER_ID -1 +#define PUSH_SWITCHES_IRQ_TYPE "NONE" +#define PUSH_SWITCHES_NAME "/dev/push_switches" +#define PUSH_SWITCHES_RESET_VALUE 0 +#define PUSH_SWITCHES_SPAN 16 +#define PUSH_SWITCHES_TYPE "altera_avalon_pio" + + +/* + * switches configuration + * + */ + +#define ALT_MODULE_CLASS_switches altera_avalon_pio +#define SWITCHES_BASE 0x410d0 +#define SWITCHES_BIT_CLEARING_EDGE_REGISTER 0 +#define SWITCHES_BIT_MODIFYING_OUTPUT_REGISTER 0 +#define SWITCHES_CAPTURE 0 +#define SWITCHES_DATA_WIDTH 18 +#define SWITCHES_DO_TEST_BENCH_WIRING 0 +#define SWITCHES_DRIVEN_SIM_VALUE 0 +#define SWITCHES_EDGE_TYPE "NONE" +#define SWITCHES_FREQ 50000000 +#define SWITCHES_HAS_IN 1 +#define SWITCHES_HAS_OUT 0 +#define SWITCHES_HAS_TRI 0 +#define SWITCHES_IRQ -1 +#define SWITCHES_IRQ_INTERRUPT_CONTROLLER_ID -1 +#define SWITCHES_IRQ_TYPE "NONE" +#define SWITCHES_NAME "/dev/switches" +#define SWITCHES_RESET_VALUE 0 +#define SWITCHES_SPAN 16 +#define SWITCHES_TYPE "altera_avalon_pio" + +#endif /* __SYSTEM_H_ */ diff --git a/software/qsys_tutorial_lcd_bsp/.cproject b/software/qsys_tutorial_lcd_bsp/.cproject new file mode 100644 index 0000000..a6be1d9 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/.cproject @@ -0,0 +1,481 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/software/qsys_tutorial_lcd_bsp/.project b/software/qsys_tutorial_lcd_bsp/.project new file mode 100644 index 0000000..0df0f9a --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/.project @@ -0,0 +1,85 @@ + + + qsys_tutorial_lcd_bsp + + + + + + org.eclipse.cdt.managedbuilder.core.genmakebuilder + clean,full,incremental, + + + ?name? + + + + org.eclipse.cdt.make.core.append_environment + true + + + org.eclipse.cdt.make.core.autoBuildTarget + all + + + org.eclipse.cdt.make.core.buildArguments + + + + org.eclipse.cdt.make.core.buildCommand + make + + + org.eclipse.cdt.make.core.buildLocation + ${workspace_loc://qsys_tutorial_lcd_bsp} + + + org.eclipse.cdt.make.core.cleanBuildTarget + clean + + + org.eclipse.cdt.make.core.contents + org.eclipse.cdt.make.core.activeConfigSettings + + + org.eclipse.cdt.make.core.enableAutoBuild + false + + + org.eclipse.cdt.make.core.enableCleanBuild + true + + + org.eclipse.cdt.make.core.enableFullBuild + true + + + org.eclipse.cdt.make.core.fullBuildTarget + all + + + org.eclipse.cdt.make.core.stopOnError + true + + + org.eclipse.cdt.make.core.useDefaultBuildCmd + true + + + + + org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder + full,incremental, + + + + + + org.eclipse.cdt.core.cnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.managedbuilder.core.ScannerConfigNature + org.eclipse.cdt.core.ccnature + com.altera.sbtgui.project.SBTGUINature + com.altera.sbtgui.project.SBTGUIBspNature + + diff --git a/software/qsys_tutorial_lcd_bsp/HAL/inc/alt_types.h b/software/qsys_tutorial_lcd_bsp/HAL/inc/alt_types.h new file mode 100644 index 0000000..d02f171 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/HAL/inc/alt_types.h @@ -0,0 +1,54 @@ +#ifndef __ALT_TYPES_H__ +#define __ALT_TYPES_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/* + * Don't declare these typedefs if this file is included by assembly source. + */ +#ifndef ALT_ASM_SRC +typedef signed char alt_8; +typedef unsigned char alt_u8; +typedef signed short alt_16; +typedef unsigned short alt_u16; +typedef signed long alt_32; +typedef unsigned long alt_u32; +typedef long long alt_64; +typedef unsigned long long alt_u64; +#endif + +#define ALT_INLINE __inline__ +#define ALT_ALWAYS_INLINE __attribute__ ((always_inline)) +#define ALT_WEAK __attribute__((weak)) + +#endif /* __ALT_TYPES_H__ */ diff --git a/software/qsys_tutorial_lcd_bsp/HAL/inc/altera_nios2_qsys_irq.h b/software/qsys_tutorial_lcd_bsp/HAL/inc/altera_nios2_qsys_irq.h new file mode 100644 index 0000000..6629ec9 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/HAL/inc/altera_nios2_qsys_irq.h @@ -0,0 +1,80 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2009 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/* + * Support for the Nios II internal interrupt controller. + */ + +#ifndef __ALT_NIOS2_QSYS_IRQ_H__ +#define __ALT_NIOS2_QSYS_IRQ_H__ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * The macro ALTERA_NIOS2_IRQ_INSTANCE is used by the alt_irq_init() + * function in the auto-generated file alt_sys_init.c to create an + * instance of this interrupt controller device driver state if this + * module contains an interrupt controller. + * Only one instance of a Nios II is allowed so this macro is just empty. + */ + +#define ALTERA_NIOS2_QSYS_IRQ_INSTANCE(name, state) + +/* + * altera_nios2_irq_init() is called by the auto-generated function + * alt_irq_init() once for the Nios II if it contains an interrupt controller. + * The altera_nios2_irq_init() routine is called using the + * ALTERA_NIOS2_IRQ_INIT macro given below. + * + * This function initializes the internal interrupt controller + * so is not called if the Nios II contains an external interrupt + * controller port (because the internal interrupt controller + * is removed if this port is present). + */ + +extern void altera_nios2_qsys_irq_init( void ); + +/* + * The macro ALTERA_NIOS2_IRQ_INIT is used by the alt_irq_init() routine + * in the auto-generated file alt_sys_init.c to initialize an instance + * of the interrupt controller device driver state. + */ + +#define ALTERA_NIOS2_QSYS_IRQ_INIT(name, state) altera_nios2_qsys_irq_init() + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __ALT_NIOS2_QSYS_IRQ_H__ */ + diff --git a/software/qsys_tutorial_lcd_bsp/HAL/inc/io.h b/software/qsys_tutorial_lcd_bsp/HAL/inc/io.h new file mode 100644 index 0000000..362f103 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/HAL/inc/io.h @@ -0,0 +1,81 @@ +#ifndef __IO_H__ +#define __IO_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/* IO Header file for Nios II Toolchain */ + +#include "alt_types.h" +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +#ifndef SYSTEM_BUS_WIDTH +#error SYSTEM_BUS_WIDTH undefined +#endif + +/* Dynamic bus access functions */ + +#define __IO_CALC_ADDRESS_DYNAMIC(BASE, OFFSET) \ + ((void *)(((alt_u8*)BASE) + (OFFSET))) + +#define IORD_32DIRECT(BASE, OFFSET) \ + __builtin_ldwio (__IO_CALC_ADDRESS_DYNAMIC ((BASE), (OFFSET))) +#define IORD_16DIRECT(BASE, OFFSET) \ + __builtin_ldhuio (__IO_CALC_ADDRESS_DYNAMIC ((BASE), (OFFSET))) +#define IORD_8DIRECT(BASE, OFFSET) \ + __builtin_ldbuio (__IO_CALC_ADDRESS_DYNAMIC ((BASE), (OFFSET))) + +#define IOWR_32DIRECT(BASE, OFFSET, DATA) \ + __builtin_stwio (__IO_CALC_ADDRESS_DYNAMIC ((BASE), (OFFSET)), (DATA)) +#define IOWR_16DIRECT(BASE, OFFSET, DATA) \ + __builtin_sthio (__IO_CALC_ADDRESS_DYNAMIC ((BASE), (OFFSET)), (DATA)) +#define IOWR_8DIRECT(BASE, OFFSET, DATA) \ + __builtin_stbio (__IO_CALC_ADDRESS_DYNAMIC ((BASE), (OFFSET)), (DATA)) + +/* Native bus access functions */ + +#define __IO_CALC_ADDRESS_NATIVE(BASE, REGNUM) \ + ((void *)(((alt_u8*)BASE) + ((REGNUM) * (SYSTEM_BUS_WIDTH/8)))) + +#define IORD(BASE, REGNUM) \ + __builtin_ldwio (__IO_CALC_ADDRESS_NATIVE ((BASE), (REGNUM))) +#define IOWR(BASE, REGNUM, DATA) \ + __builtin_stwio (__IO_CALC_ADDRESS_NATIVE ((BASE), (REGNUM)), (DATA)) + +#ifdef __cplusplus +} +#endif + +#endif /* __IO_H__ */ diff --git a/software/qsys_tutorial_lcd_bsp/HAL/inc/nios2.h b/software/qsys_tutorial_lcd_bsp/HAL/inc/nios2.h new file mode 100644 index 0000000..72cefba --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/HAL/inc/nios2.h @@ -0,0 +1,230 @@ +#ifndef __NIOS2_H__ +#define __NIOS2_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2008 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/* + * This header provides processor specific macros for accessing the Nios2 + * control registers. + */ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * Macros for accessing selected processor registers + */ + +#define NIOS2_READ_ET(et) \ + do { __asm ("mov %0, et" : "=r" (et) ); } while (0) + +#define NIOS2_WRITE_ET(et) \ + do { __asm volatile ("mov et, %z0" : : "rM" (et)); } while (0) + +#define NIOS2_READ_SP(sp) \ + do { __asm ("mov %0, sp" : "=r" (sp) ); } while (0) + +/* + * Macros for useful processor instructions + */ + +#define NIOS2_BREAK() \ + do { __asm volatile ("break"); } while (0) + +#define NIOS2_REPORT_STACK_OVERFLOW() \ + do { __asm volatile("break 3"); } while (0) + +/* + * Macros for accessing the control registers. + */ + +#define NIOS2_READ_STATUS(dest) \ + do { dest = __builtin_rdctl(0); } while (0) + +#define NIOS2_WRITE_STATUS(src) \ + do { __builtin_wrctl(0, src); } while (0) + +#define NIOS2_READ_ESTATUS(dest) \ + do { dest = __builtin_rdctl(1); } while (0) + +#define NIOS2_READ_BSTATUS(dest) \ + do { dest = __builtin_rdctl(2); } while (0) + +#define NIOS2_READ_IENABLE(dest) \ + do { dest = __builtin_rdctl(3); } while (0) + +#define NIOS2_WRITE_IENABLE(src) \ + do { __builtin_wrctl(3, src); } while (0) + +#define NIOS2_READ_IPENDING(dest) \ + do { dest = __builtin_rdctl(4); } while (0) + +#define NIOS2_READ_CPUID(dest) \ + do { dest = __builtin_rdctl(5); } while (0) + + +/* + * Macros for accessing extra exception registers. These + * are always enabled wit the MPU or MMU, and optionally + * with other advanced exception types/ + */ +#define NIOS2_READ_EXCEPTION(dest) \ + do { dest = __builtin_rdctl(7); } while (0) + +#define NIOS2_READ_BADADDR(dest) \ + do { dest = __builtin_rdctl(12); } while (0) + + +/* + * Macros for accessing control registers for MPU + * operation. These should not be used unless the + * MPU is enabled. + * + * The config register may be augmented for future + * enhancements. For now, only MPU support is provided. + */ +/* Config register */ +#define NIOS2_WRITE_CONFIG(src) \ + do { __builtin_wrctl(13, src); } while (0) + +#define NIOS2_READ_CONFIG(dest) \ + do { dest = __builtin_rdctl(13); } while (0) + +/* MPU Base Address Register */ +#define NIOS2_WRITE_MPUBASE(src) \ + do { __builtin_wrctl(14, src); } while (0) + +#define NIOS2_READ_MPUBASE(dest) \ + do { dest = __builtin_rdctl(14); } while (0) + +/* MPU Access Register */ +#define NIOS2_WRITE_MPUACC(src) \ + do { __builtin_wrctl(15, src); } while (0) + +#define NIOS2_READ_MPUACC(dest) \ + do { dest = __builtin_rdctl(15); } while (0) + + +/* + * Nios II control registers that are always present + */ +#define NIOS2_STATUS status +#define NIOS2_ESTATUS estatus +#define NIOS2_BSTATUS bstatus +#define NIOS2_IENABLE ienable +#define NIOS2_IPENDING ipending +#define NIOS2_CPUID cpuid + +/* + * STATUS, BSTATUS, ESTATUS, and SSTATUS fields. + * The presence of fields is a function of the Nios II configuration. + */ +#define NIOS2_STATUS_PIE_MSK (0x00000001) +#define NIOS2_STATUS_PIE_OFST (0) +#define NIOS2_STATUS_U_MSK (0x00000002) +#define NIOS2_STATUS_U_OFST (1) +#define NIOS2_STATUS_EH_MSK (0x00000004) +#define NIOS2_STATUS_EH_OFST (2) +#define NIOS2_STATUS_IH_MSK (0x00000008) +#define NIOS2_STATUS_IH_OFST (3) +#define NIOS2_STATUS_IL_MSK (0x000003f0) +#define NIOS2_STATUS_IL_OFST (4) +#define NIOS2_STATUS_CRS_MSK (0x0000fc00) +#define NIOS2_STATUS_CRS_OFST (10) +#define NIOS2_STATUS_PRS_MSK (0x003f0000) +#define NIOS2_STATUS_PRS_OFST (16) +#define NIOS2_STATUS_NMI_MSK (0x00400000) +#define NIOS2_STATUS_NMI_OFST (22) +#define NIOS2_STATUS_RSIE_MSK (0x00800000) +#define NIOS2_STATUS_RSIE_OFST (23) +#define NIOS2_STATUS_SRS_MSK (0x80000000) +#define NIOS2_STATUS_SRS_OFST (31) + +/* + * Bit masks & offsets available with extra exceptions support + */ + +/* Exception register */ +#define NIOS2_EXCEPTION_REG_CAUSE_MASK (0x0000007c) +#define NIOS2_EXCEPTION_REG_CAUSE_OFST (2) + +/* + * Bit masks & offsets for MPU support + * + * All bit-masks are expressed relative to the position + * of the data with a register. To read data that is LSB- + * aligned, the register read data should be masked, then + * right-shifted by the designated "OFST" macro value. The + * opposite should be used for register writes when starting + * with LSB-aligned data. + */ + +/* Config register */ +#define NIOS2_CONFIG_REG_PE_MASK (0x00000001) +#define NIOS2_CONFIG_REG_PE_OFST (0) +#define NIOS2_CONFIG_REG_ANI_MASK (0x00000002) +#define NIOS2_CONFIG_REG_ANI_OFST (1) + +/* MPU Base Address Register */ +#define NIOS2_MPUBASE_D_MASK (0x00000001) +#define NIOS2_MPUBASE_D_OFST (0) +#define NIOS2_MPUBASE_INDEX_MASK (0x0000003e) +#define NIOS2_MPUBASE_INDEX_OFST (1) +#define NIOS2_MPUBASE_BASE_ADDR_MASK (0xffffffc0) +#define NIOS2_MPUBASE_BASE_ADDR_OFST (6) + +/* MPU Access Register */ +#define NIOS2_MPUACC_LIMIT_MASK (0xffffffc0) +#define NIOS2_MPUACC_LIMIT_OFST (6) +#define NIOS2_MPUACC_MASK_MASK (0xffffffc0) +#define NIOS2_MPUACC_MASK_OFST (6) +#define NIOS2_MPUACC_C_MASK (0x00000020) +#define NIOS2_MPUACC_C_OFST (5) +#define NIOS2_MPUACC_PERM_MASK (0x0000001c) +#define NIOS2_MPUACC_PERM_OFST (2) +#define NIOS2_MPUACC_RD_MASK (0x00000002) +#define NIOS2_MPUACC_RD_OFST (1) +#define NIOS2_MPUACC_WR_MASK (0x00000001) +#define NIOS2_MPUACC_WR_OFST (0) + +/* + * Number of available IRQs in internal interrupt controller. + */ +#define NIOS2_NIRQ 32 + + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __NIOS2_H__ */ diff --git a/software/qsys_tutorial_lcd_bsp/HAL/inc/os/alt_flag.h b/software/qsys_tutorial_lcd_bsp/HAL/inc/os/alt_flag.h new file mode 100644 index 0000000..b9b4605 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/HAL/inc/os/alt_flag.h @@ -0,0 +1,98 @@ +#ifndef __ALT_FLAG_H__ +#define __ALT_FLAG_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +/* + * This header provides macro definitions that can be used to create and use + * uc/OS-II style event flags. These macros can be used in both a uC/OS-II based + * environment, and a single threaded HAL based environment. + * + * The motivation for these macros is to allow code to be developed which is + * thread safe under uC/OS-II, but incurs no additional overhead when used in a + * single threaded HAL environment. + * + * In the case of a single threaded HAL environment, they compile to + * "do nothing" directives, which ensures they do not contribute to the final + * executable. + * + * The following macros are available: + * + * ALT_FLAG_GRP - Create a flag group instance. + * ALT_EXTERN_FLAG_GRP - Create a reference to an external flag group instance. + * ALT_STATIC_FLAG_GRP - Create a static flag group instance. + * ALT_FLAG_CREATE - Initialise a flag group. + * ALT_FLAG_PEND - Pend on a flag group. + * ALT_FLAG_POST - Set a flag condition. + + * + * Input arguments and return codes are all consistant with the equivalent + * uC/OS-II function. + * + * It's important to be careful in the use of the macros: ALT_FLAG_GRP, + * ALT_EXTERN_FLAG_GRP, and ALT_STATIC_FLAG_GRP. In these three cases the + * semi-colon is included in the macro definition; so, for example, you should + * use: + * + * ALT_FLAG_GRP(mygroup) + * + * not: + * + * ALT_FLAG_GRP(mygroup); + * + * The inclusion of the semi-colon has been necessary to ensure the macros can + * compile with no warnings when used in a single threaded HAL environment. + * + */ + +#include "priv/alt_no_error.h" + +#define ALT_FLAG_GRP(group) +#define ALT_EXTERN_FLAG_GRP(group) +#define ALT_STATIC_FLAG_GRP(group) + +#define ALT_FLAG_CREATE(group, flags) alt_no_error () +#define ALT_FLAG_PEND(group, flags, wait_type, timeout) alt_no_error () +#define ALT_FLAG_POST(group, flags, opt) alt_no_error () + +#ifndef ALT_SINGLE_THREADED +#define ALT_SINGLE_THREADED +#endif + +#endif /* __ALT_FLAG_H__ */ diff --git a/software/qsys_tutorial_lcd_bsp/HAL/inc/os/alt_hooks.h b/software/qsys_tutorial_lcd_bsp/HAL/inc/os/alt_hooks.h new file mode 100644 index 0000000..9054e3f --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/HAL/inc/os/alt_hooks.h @@ -0,0 +1,61 @@ +#ifndef __ALT_HOOKS_H__ +#define __ALT_HOOKS_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +/* + * This header provides "do-nothing" macro definitions for operating system + * hooks within the HAL. The O/S component can override these to provide it's + * own implementation. + */ + +#define ALT_OS_TIME_TICK() while(0) +#define ALT_OS_INIT() while(0) +#define ALT_OS_STOP() while(0) + +/* Call from assembly code */ +#define ALT_OS_INT_ENTER_ASM +#define ALT_OS_INT_EXIT_ASM + +/* Call from C code */ +#define ALT_OS_INT_ENTER() while(0) +#define ALT_OS_INT_EXIT() while(0) + + +#endif /* __ALT_HOOKS_H__ */ diff --git a/software/qsys_tutorial_lcd_bsp/HAL/inc/os/alt_sem.h b/software/qsys_tutorial_lcd_bsp/HAL/inc/os/alt_sem.h new file mode 100644 index 0000000..753943e --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/HAL/inc/os/alt_sem.h @@ -0,0 +1,96 @@ +#ifndef __ALT_SEM_H__ +#define __ALT_SEM_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +/* + * This header provides macro definitions that can be used to create and use + * semaphores. These macros can be used in both a uC/OS-II based environment, + * and a single threaded HAL based environment. + * + * The motivation for these macros is to allow code to be developed which is + * thread safe under uC/OS-II, but incurs no additional overhead when used in a + * single threaded HAL environment. + * + * In the case of a single threaded HAL environment, they compile to + * "do nothing" directives, which ensures they do not contribute to the final + * executable. + * + * The following macros are available: + * + * ALT_SEM - Create a semaphore instance. + * ALT_EXTERN_SEM - Create a reference to an external semaphore instance. + * ALT_STATIC_SEM - Create a static semaphore instance. + * ALT_SEM_CREATE - Initialise a semaphore. + * ALT_SEM_PEND - Pend on a semaphore. + * ALT_SEM_POST - Increment a semaphore. + * + * Input arguments and return codes are all consistant with the equivalent + * uC/OS-II function. + * + * It's important to be careful in the use of the macros: ALT_SEM, + * ALT_EXTERN_SEM, and ALT_STATIC_SEM. In these three cases the semi-colon is + * included in the macro definition; so, for example, you should use: + * + * ALT_SEM(mysem) + * + * not: + * + * ALT_SEM(mysem); + * + * The inclusion of the semi-colon has been necessary to ensure the macros can + * compile with no warnings when used in a single threaded HAL environment. + * + */ + +#include "priv/alt_no_error.h" + +#define ALT_SEM(sem) +#define ALT_EXTERN_SEM(sem) +#define ALT_STATIC_SEM(sem) + +#define ALT_SEM_CREATE(sem, value) alt_no_error () +#define ALT_SEM_PEND(sem, timeout) alt_no_error () +#define ALT_SEM_POST(sem) alt_no_error () + +#ifndef ALT_SINGLE_THREADED +#define ALT_SINGLE_THREADED +#endif + +#endif /* __ALT_SEM_H__ */ diff --git a/software/qsys_tutorial_lcd_bsp/HAL/inc/os/alt_syscall.h b/software/qsys_tutorial_lcd_bsp/HAL/inc/os/alt_syscall.h new file mode 100644 index 0000000..507c6aa --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/HAL/inc/os/alt_syscall.h @@ -0,0 +1,75 @@ +#ifndef __ALT_SYSCALL_H__ +#define __ALT_SYSCALL_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/* + * The macros defined in this file are used to provide the function names used + * for the HAL 'UNIX style' interface, e.g. read(), write() etc. + * + * Operating systems which are ported to the HAL can provide their own + * version of this file, which will be used in preference. This allows + * the operating system to provide it's own implementation of the top level + * system calls, while retaining the HAL functions under a different name, + * for example, alt_read(), alt_write() etc. + */ + +#define ALT_CLOSE close +#define ALT_ENVIRON environ +#define ALT_EXECVE execve +#define ALT_EXIT _exit +#define ALT_FCNTL fcntl +#define ALT_FORK fork +#define ALT_FSTAT fstat +#define ALT_GETPID getpid +#define ALT_GETTIMEOFDAY gettimeofday +#define ALT_IOCTL ioctl +#define ALT_ISATTY isatty +#define ALT_KILL kill +#define ALT_LINK link +#define ALT_LSEEK lseek +#define ALT_OPEN open +#define ALT_READ read +#define ALT_RENAME _rename +#define ALT_SBRK sbrk +#define ALT_SETTIMEOFDAY settimeofday +#define ALT_STAT stat +#define ALT_UNLINK unlink +#define ALT_USLEEP usleep +#define ALT_WAIT wait +#define ALT_WRITE write +#define ALT_TIMES times + +/* + * + */ + +#endif /* __ALT_SYSCALL_H__ */ diff --git a/software/qsys_tutorial_lcd_bsp/HAL/inc/priv/alt_alarm.h b/software/qsys_tutorial_lcd_bsp/HAL/inc/priv/alt_alarm.h new file mode 100644 index 0000000..45d6a0e --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/HAL/inc/priv/alt_alarm.h @@ -0,0 +1,101 @@ +#ifndef __ALT_PRIV_ALARM_H__ +#define __ALT_PRIV_ALARM_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#include "alt_types.h" + +/* + * This header provides the internal defenitions required by the public + * interface alt_alarm.h. These variables and structures are not guaranteed to + * exist in future implementations of the HAL. + */ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * "alt_alarm_s" is a structure type used to maintain lists of alarm callback + * functions. + */ + +struct alt_alarm_s +{ + alt_llist llist; /* linked list */ + alt_u32 time; /* time in system ticks of the callback */ + alt_u32 (*callback) (void* context); /* callback function. The return + * value is the period for the next callback; where + * zero indicates that the alarm should be removed + * from the list. + */ + alt_u8 rollover; /* set when desired alarm time + current time causes + overflow, to prevent premature alarm */ + void* context; /* Argument for the callback */ +}; + +/* + * "_alt_tick_rate" is a global variable used to store the system clock rate + * in ticks per second. This is initialised to zero, which coresponds to there + * being no system clock available. + * + * It is then set to it's final value by the system clock driver through a call + * to alt_sysclk_init(). + */ + +extern alt_u32 _alt_tick_rate; + +/* + * "_alt_nticks" is a global variable which records the elapsed number of + * system clock ticks since the last call to settimeofday() or since reset if + * settimeofday() has not been called. + */ + +extern volatile alt_u32 _alt_nticks; + +/* The list of registered alarms. */ + +extern alt_llist alt_alarm_list; + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_PRIV_ALARM_H__ */ diff --git a/software/qsys_tutorial_lcd_bsp/HAL/inc/priv/alt_busy_sleep.h b/software/qsys_tutorial_lcd_bsp/HAL/inc/priv/alt_busy_sleep.h new file mode 100644 index 0000000..b1af849 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/HAL/inc/priv/alt_busy_sleep.h @@ -0,0 +1,35 @@ +#ifndef __ALT_BUSY_SLEEP_H +#define __ALT_BUSY_SLEEP_H + +/* + * Copyright (c) 2003 Altera Corporation, San Jose, California, USA. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ + +/* + * The function alt_busy_sleep provides a busy loop implementation of usleep. + * This is used to provide usleep for the standalone HAL, or when the timer is + * unavailable in uC/OS-II. + */ + +extern unsigned int alt_busy_sleep (unsigned int us); + +#endif /* __ALT_BUSY_SLEEP_H */ diff --git a/software/qsys_tutorial_lcd_bsp/HAL/inc/priv/alt_dev_llist.h b/software/qsys_tutorial_lcd_bsp/HAL/inc/priv/alt_dev_llist.h new file mode 100644 index 0000000..451b063 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/HAL/inc/priv/alt_dev_llist.h @@ -0,0 +1,77 @@ +#ifndef __ALT_DEV_LLIST_H__ +#define __ALT_DEV_LLIST_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#include "sys/alt_llist.h" +#include "alt_types.h" + +/* + * This header provides the internal defenitions required to control file + * access. These variables and functions are not guaranteed to exist in + * future implementations of the HAL. + */ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * The alt_dev_llist is an internal structure used to form a common base + * class for all device types. The use of this structure allows common code + * to be used to manipulate the various device lists. + */ + +typedef struct { + alt_llist llist; + const char* name; +} alt_dev_llist; + +/* + * + */ + +extern int alt_dev_llist_insert (alt_dev_llist* dev, alt_llist* list); + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_DEV_LLIST_H__ */ diff --git a/software/qsys_tutorial_lcd_bsp/HAL/inc/priv/alt_exception_handler_registry.h b/software/qsys_tutorial_lcd_bsp/HAL/inc/priv/alt_exception_handler_registry.h new file mode 100644 index 0000000..c6905fa --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/HAL/inc/priv/alt_exception_handler_registry.h @@ -0,0 +1,39 @@ +#ifndef __ALT_EXCEPTION_HANDLER_REGISTRY_H__ +#define __ALT_EXCEPTION_HANDLER_REGISTRY_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2008 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ +#include "sys/alt_exceptions.h" + +/* Function pointer to exception callback routine */ +extern alt_exception_result (*alt_instruction_exception_handler) + (alt_exception_cause, alt_u32, alt_u32); + +#endif /* __ALT_EXCEPTION_HANDLER_REGISTRY_H__ */ diff --git a/software/qsys_tutorial_lcd_bsp/HAL/inc/priv/alt_file.h b/software/qsys_tutorial_lcd_bsp/HAL/inc/priv/alt_file.h new file mode 100644 index 0000000..2c3e843 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/HAL/inc/priv/alt_file.h @@ -0,0 +1,179 @@ +#ifndef __ALT_FILE_H__ +#define __ALT_FILE_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#include "sys/alt_dev.h" +#include "sys/alt_llist.h" +#include "os/alt_sem.h" + +#include "alt_types.h" + +/* + * This header provides the internal defenitions required to control file + * access. These variables and functions are not guaranteed to exist in + * future implementations of the HAL. + */ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * The function alt_find_dev() is used to search the device list "list" to + * locate a device named "name". If a match is found, then a pointer to the + * device is returned, otherwise NULL is returned. + */ + +extern alt_dev* alt_find_dev (const char* name, alt_llist* list); + +/* + * alt_find_file() is used to search the list of registered file systems to + * find the filesystem that the file named "name" belongs to. If a match is + * found, then a pointer to the filesystems alt_dev structure is returned, + * otherwise NULL is returned. + * + * Note that a match does not indicate that the file exists, only that a + * filesystem exists that is registered for a partition that could contain + * the file. The filesystems open() function would need to be called in order + * to determine if the file exists. + */ + +extern alt_dev* alt_find_file (const char* name); + +/* + * alt_get_fd() is used to allocate a file descriptor for the device or + * filesystem "dev". A negative return value indicates an error, otherwise the + * return value is the index of the file descriptor within the file descriptor + * pool. + */ + +extern int alt_get_fd (alt_dev* dev); + +/* + * alt_release_fd() is called to free the file descriptor with index "fd". + */ + +extern void alt_release_fd (int fd); + +/* + * alt_fd_lock() is called by ioctl() to mark the file descriptor "fd" as + * being open for exclusive access. Subsequent calls to open() for the device + * associated with "fd" will fail. A device is unlocked by either calling + * close() for "fd", or by an alternate call to ioctl() (see ioctl.c for + * details). + */ + +extern int alt_fd_lock (alt_fd* fd); + +/* + * alt_fd_unlock() is called by ioctl() to unlock a descriptor previously + * locked by a call to alt_fd_lock(). + */ + +extern int alt_fd_unlock (alt_fd* fd); + +/* + * "alt_fd_list" is the pool of file descriptors. + */ + +extern alt_fd alt_fd_list[]; + +/* + * flags used by alt_fd. + * + * ALT_FD_EXCL is used to mark a file descriptor as locked for exclusive + * access, i.e. further calls to open() for the associated device should + * fail. + * + * ALT_FD_DEV marks a dile descriptor as belonging to a device as oposed to a + * filesystem. + */ + +#define ALT_FD_EXCL 0x80000000 +#define ALT_FD_DEV 0x40000000 + +#define ALT_FD_FLAGS_MASK (ALT_FD_EXCL | ALT_FD_DEV) + +/* + * "alt_dev_list" is the head of the linked list of registered devices. + */ + +extern alt_llist alt_dev_list; + +/* + * "alt_fs_list" is the head of the linked list of registered filesystems. + */ + +extern alt_llist alt_fs_list; + +/* + * "alt_fd_list_lock" is a semaphore used to ensure that access to the pool + * of file descriptors is thread safe. + */ + +ALT_EXTERN_SEM(alt_fd_list_lock) + +/* + * "alt_max_fd" is a 'high water mark'. It indicates the highest file + * descriptor allocated. Use of this can save searching the entire pool + * for active file descriptors, which helps avoid contention on access + * to the file descriptor pool. + */ + +extern alt_32 alt_max_fd; + +/* + * alt_io_redirect() is called at startup to redirect stdout, stdin, and + * stderr to the devices named in the input arguments. By default these streams + * are directed at /dev/null, and are then redirected using this function once + * all of the devices have been registered within the system. + */ + +extern void alt_io_redirect(const char* stdout_dev, + const char* stdin_dev, + const char* stderr_dev); + + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_FILE_H__ */ diff --git a/software/qsys_tutorial_lcd_bsp/HAL/inc/priv/alt_iic_isr_register.h b/software/qsys_tutorial_lcd_bsp/HAL/inc/priv/alt_iic_isr_register.h new file mode 100644 index 0000000..a0cb01c --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/HAL/inc/priv/alt_iic_isr_register.h @@ -0,0 +1,39 @@ +#ifndef __ALT_IIC_ISR_REGISTER_H_ +#define __ALT_IIC_ISR_REGISTER_H_ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2009 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ +#include "alt_types.h" +#include "sys/alt_irq.h" + +extern int alt_iic_isr_register(alt_u32 ic_id, alt_u32 irq, alt_isr_func isr, + void *isr_context, void *flags); + +#endif /* __ALT_IIC_ISR_REGISTER_H_ */ diff --git a/software/qsys_tutorial_lcd_bsp/HAL/inc/priv/alt_irq_table.h b/software/qsys_tutorial_lcd_bsp/HAL/inc/priv/alt_irq_table.h new file mode 100644 index 0000000..694ef06 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/HAL/inc/priv/alt_irq_table.h @@ -0,0 +1,59 @@ +#ifndef __ALT_IRQ_TABLE_H__ +#define __ALT_IRQ_TABLE_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2009 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +/* + * Definition of a table describing each interrupt handler. The index into + * the array is the interrupt id associated with the handler. + * + * When an interrupt occurs, the associated handler is called with + * the argument stored in the context member. + * + * The table is physically created in alt_irq_handler.c + */ +extern struct ALT_IRQ_HANDLER +{ +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT + void (*handler)(void*); +#else + void (*handler)(void*, alt_u32); +#endif + void *context; +} alt_irq[ALT_NIRQ]; + +#endif diff --git a/software/qsys_tutorial_lcd_bsp/HAL/inc/priv/alt_legacy_irq.h b/software/qsys_tutorial_lcd_bsp/HAL/inc/priv/alt_legacy_irq.h new file mode 100644 index 0000000..c7aec02 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/HAL/inc/priv/alt_legacy_irq.h @@ -0,0 +1,158 @@ +#ifndef __ALT_LEGACY_IRQ_H__ +#define __ALT_LEGACY_IRQ_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2009 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/* + * This file provides prototypes and inline implementations of certain routines + * used by the legacy interrupt API. Do not include this in your driver or + * application source files, use "sys/alt_irq.h" instead to access the proper + * public API. + */ + +#include +#include "system.h" + +#ifndef NIOS2_EIC_PRESENT + +#include "nios2.h" +#include "alt_types.h" + +#include "sys/alt_irq.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * alt_irq_register() can be used to register an interrupt handler. If the + * function is succesful, then the requested interrupt will be enabled upon + * return. + */ +extern int alt_irq_register (alt_u32 id, + void* context, + alt_isr_func handler); + +/* + * alt_irq_disable() disables the individual interrupt indicated by "id". + */ +static ALT_INLINE int ALT_ALWAYS_INLINE alt_irq_disable (alt_u32 id) +{ + alt_irq_context status; + extern volatile alt_u32 alt_irq_active; + + status = alt_irq_disable_all (); + + alt_irq_active &= ~(1 << id); + NIOS2_WRITE_IENABLE (alt_irq_active); + + alt_irq_enable_all(status); + + return 0; +} + +/* + * alt_irq_enable() enables the individual interrupt indicated by "id". + */ +static ALT_INLINE int ALT_ALWAYS_INLINE alt_irq_enable (alt_u32 id) +{ + alt_irq_context status; + extern volatile alt_u32 alt_irq_active; + + status = alt_irq_disable_all (); + + alt_irq_active |= (1 << id); + NIOS2_WRITE_IENABLE (alt_irq_active); + + alt_irq_enable_all(status); + + return 0; +} + +#ifndef ALT_EXCEPTION_STACK +/* + * alt_irq_initerruptable() should only be called from within an ISR. It is used + * to allow higer priority interrupts to interrupt the current ISR. The input + * argument, "priority", is the priority, i.e. interrupt number of the current + * interrupt. + * + * If this function is called, then the ISR is required to make a call to + * alt_irq_non_interruptible() before returning. The input argument to + * alt_irq_non_interruptible() is the return value from alt_irq_interruptible(). + * + * Care should be taken when using this pair of functions, since they increasing + * the system overhead associated with interrupt handling. + * + * If you are using an exception stack then nested interrupts won't work, so + * these functions are not available in that case. + */ +static ALT_INLINE alt_u32 ALT_ALWAYS_INLINE alt_irq_interruptible (alt_u32 priority) +{ + extern volatile alt_u32 alt_priority_mask; + extern volatile alt_u32 alt_irq_active; + + alt_u32 old_priority; + + old_priority = alt_priority_mask; + alt_priority_mask = (1 << priority) - 1; + + NIOS2_WRITE_IENABLE (alt_irq_active & alt_priority_mask); + + NIOS2_WRITE_STATUS (1); + + return old_priority; +} + +/* + * See Comments above for alt_irq_interruptible() for an explanation of the use of this + * function. + */ +static ALT_INLINE void ALT_ALWAYS_INLINE alt_irq_non_interruptible (alt_u32 mask) +{ + extern volatile alt_u32 alt_priority_mask; + extern volatile alt_u32 alt_irq_active; + + NIOS2_WRITE_STATUS (0); + + alt_priority_mask = mask; + + NIOS2_WRITE_IENABLE (mask & alt_irq_active); +} +#endif /* ALT_EXCEPTION_STACK */ + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* NIOS2_EIC_PRESENT */ + +#endif /* __ALT_LEGACY_IRQ_H__ */ diff --git a/software/qsys_tutorial_lcd_bsp/HAL/inc/priv/alt_no_error.h b/software/qsys_tutorial_lcd_bsp/HAL/inc/priv/alt_no_error.h new file mode 100644 index 0000000..6143fc9 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/HAL/inc/priv/alt_no_error.h @@ -0,0 +1,77 @@ +#ifndef __ALT_NO_ERROR_H__ +#define __ALT_NO_ERROR_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#include "alt_types.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * alt_no_error() is a dummy function used by alt_sem.h and alt_flag.h. It + * substitutes for functions that have a return code by creating a function + * that always returns zero. + * + * This may seem a little obscure, but what happens is that the compiler can + * then optomise away the call to this function, and any code written which + * handles the error path (i.e. non zero return values). + * + * This allows code to be written which correctly use the uC/OS-II semaphore + * and flag utilities, without the use of those utilities impacting on + * excutables built for a single threaded HAL environment. + * + * This function is considered to be part of the internal implementation of + * the HAL, and should not be called directly by application code or device + * drivers. It is not guaranteed to be preserved in future versions of the + * HAL. + */ + +static ALT_INLINE int ALT_ALWAYS_INLINE alt_no_error (void) +{ + return 0; +} + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_NO_ERROR_H__ */ diff --git a/software/qsys_tutorial_lcd_bsp/HAL/inc/priv/nios2_gmon_data.h b/software/qsys_tutorial_lcd_bsp/HAL/inc/priv/nios2_gmon_data.h new file mode 100644 index 0000000..3f43f12 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/HAL/inc/priv/nios2_gmon_data.h @@ -0,0 +1,47 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ +#ifndef NIOS2_GMON_DATA_H +#define NIOS2_GMON_DATA_H + +#define GMON_DATA_SIG 0 +#define GMON_DATA_WORDS 1 +#define GMON_DATA_PROFILE_DATA 2 +#define GMON_DATA_PROFILE_LOWPC 3 +#define GMON_DATA_PROFILE_HIGHPC 4 +#define GMON_DATA_PROFILE_BUCKET 5 +#define GMON_DATA_PROFILE_RATE 6 +#define GMON_DATA_MCOUNT_START 7 +#define GMON_DATA_MCOUNT_LIMIT 8 + +#define GMON_DATA_SIZE 9 + +extern unsigned int alt_gmon_data[GMON_DATA_SIZE]; + +#endif diff --git a/software/qsys_tutorial_lcd_bsp/HAL/inc/sys/alt_alarm.h b/software/qsys_tutorial_lcd_bsp/HAL/inc/sys/alt_alarm.h new file mode 100644 index 0000000..68a2f5d --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/HAL/inc/sys/alt_alarm.h @@ -0,0 +1,126 @@ +#ifndef __ALT_ALARM_H__ +#define __ALT_ALARM_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#include "alt_llist.h" +#include "alt_types.h" + +#include "priv/alt_alarm.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * "alt_alarm" is a structure type used by applications to register an alarm + * callback function. An instance of this type must be passed as an input + * argument to alt_alarm_start(). The user is not responsible for initialising + * the contents of the instance. This is done by alt_alarm_start(). + */ + +typedef struct alt_alarm_s alt_alarm; + +/* + * alt_alarm_start() can be called by an application/driver in order to register + * a function for periodic callback at the system clock frequency. Be aware that + * this callback is likely to occur in interrupt context. + */ + +extern int alt_alarm_start (alt_alarm* the_alarm, + alt_u32 nticks, + alt_u32 (*callback) (void* context), + void* context); + +/* + * alt_alarm_stop() is used to unregister a callback. Alternatively the callback + * can return zero to unregister. + */ + +extern void alt_alarm_stop (alt_alarm* the_alarm); + +/* + * Obtain the system clock rate in ticks/s. + */ + +static ALT_INLINE alt_u32 ALT_ALWAYS_INLINE alt_ticks_per_second (void) +{ + return _alt_tick_rate; +} + +/* + * alt_sysclk_init() is intended to be only used by the system clock driver + * in order to initialise the value of the clock frequency. + */ + +static ALT_INLINE int ALT_ALWAYS_INLINE alt_sysclk_init (alt_u32 nticks) +{ + if (! _alt_tick_rate) + { + _alt_tick_rate = nticks; + return 0; + } + else + { + return -1; + } +} + +/* + * alt_nticks() returns the elapsed number of system clock ticks since reset. + */ + +static ALT_INLINE alt_u32 ALT_ALWAYS_INLINE alt_nticks (void) +{ + return _alt_nticks; +} + +/* + * alt_tick() should only be called by the system clock driver. This is used + * to notify the system that the system timer period has expired. + */ + +extern void alt_tick (void); + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_ALARM_H__ */ diff --git a/software/qsys_tutorial_lcd_bsp/HAL/inc/sys/alt_cache.h b/software/qsys_tutorial_lcd_bsp/HAL/inc/sys/alt_cache.h new file mode 100644 index 0000000..c4d8db9 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/HAL/inc/sys/alt_cache.h @@ -0,0 +1,117 @@ +#ifndef __ALT_CACHE_H__ +#define __ALT_CACHE_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003, 2007 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include + +#include "alt_types.h" + +/* + * alt_cache.h defines the processor specific functions for manipulating the + * cache. + */ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * alt_icache_flush() is called to flush the instruction cache for a memory + * region of length "len" bytes, starting at address "start". + */ + +extern void alt_icache_flush (void* start, alt_u32 len); + +/* + * alt_dcache_flush() is called to flush the data cache for a memory + * region of length "len" bytes, starting at address "start". + * Any dirty lines in the data cache are written back to memory. + */ + +extern void alt_dcache_flush (void* start, alt_u32 len); + +/* + * alt_dcache_flush() is called to flush the data cache for a memory + * region of length "len" bytes, starting at address "start". + * Any dirty lines in the data cache are NOT written back to memory. + */ + +extern void alt_dcache_flush_no_writeback (void* start, alt_u32 len); + +/* + * Flush the entire instruction cache. + */ + +extern void alt_icache_flush_all (void); + +/* + * Flush the entire data cache. + */ + +extern void alt_dcache_flush_all (void); + +/* + * Allocate a block of uncached memory. + */ + +extern volatile void* alt_uncached_malloc (size_t size); + +/* + * Free a block of uncached memory. + */ + +extern void alt_uncached_free (volatile void* ptr); + +/* + * Convert a pointer to a block of cached memory, into a block of + * uncached memory. + */ + +extern volatile void* alt_remap_uncached (void* ptr, alt_u32 len); + +/* + * Convert a pointer to a block of uncached memory, into a block of + * cached memory. + */ + +extern void* alt_remap_cached (volatile void* ptr, alt_u32 len); + +/* + * + */ + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_CACHE_H__ */ diff --git a/software/qsys_tutorial_lcd_bsp/HAL/inc/sys/alt_debug.h b/software/qsys_tutorial_lcd_bsp/HAL/inc/sys/alt_debug.h new file mode 100644 index 0000000..d9f9599 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/HAL/inc/sys/alt_debug.h @@ -0,0 +1,45 @@ +#ifndef __ALT_DEBUG_H__ +#define __ALT_DEBUG_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/* + * The ALT_DEVUG_ASSERT macro can be used to generate a debugger break + * from within software. The break is generated if "condition" evaluates to + * false. + */ + +#define ALT_DEBUG_ASSERT(condition) if (!condition) \ +{ \ + __asm__ volatile ("break"); \ +} + +#endif /* __ALT_DEBUG_H__ */ diff --git a/software/qsys_tutorial_lcd_bsp/HAL/inc/sys/alt_dev.h b/software/qsys_tutorial_lcd_bsp/HAL/inc/sys/alt_dev.h new file mode 100644 index 0000000..66c5e41 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/HAL/inc/sys/alt_dev.h @@ -0,0 +1,115 @@ +#ifndef __ALT_DEV_H__ +#define __ALT_DEV_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#include "system.h" +#include "sys/alt_llist.h" +#include "priv/alt_dev_llist.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * The value ALT_IRQ_NOT_CONNECTED is used to represent an unconnected + * interrupt line. It cannot evaluate to a valid interrupt number. + */ + +#define ALT_IRQ_NOT_CONNECTED (-1) + +typedef struct alt_dev_s alt_dev; + +struct stat; + +/* + * The file descriptor structure definition. + */ + +typedef struct alt_fd_s +{ + alt_dev* dev; + alt_u8* priv; + int fd_flags; +} alt_fd; + +/* + * The device structure definition. + */ + +struct alt_dev_s { + alt_llist llist; /* for internal use */ + const char* name; + int (*open) (alt_fd* fd, const char* name, int flags, int mode); + int (*close) (alt_fd* fd); + int (*read) (alt_fd* fd, char* ptr, int len); + int (*write) (alt_fd* fd, const char* ptr, int len); + int (*lseek) (alt_fd* fd, int ptr, int dir); + int (*fstat) (alt_fd* fd, struct stat* buf); + int (*ioctl) (alt_fd* fd, int req, void* arg); +}; + +/* + * Functions used to register device for access through the C standard + * library. + * + * The only difference between alt_dev_reg() and alt_fs_reg() is the + * interpretation that open() places on the device name. In the case of + * alt_dev_reg the device is assumed to be a particular character device, + * and so there must be an exact match in the name for open to succeed. + * In the case of alt_fs_reg() the name of the device is treated as the + * mount point for a directory, and so any call to open() where the name + * is the root of the device filename will succeed. + */ + +extern int alt_fs_reg (alt_dev* dev); + +static ALT_INLINE int alt_dev_reg (alt_dev* dev) +{ + extern alt_llist alt_dev_list; + + return alt_dev_llist_insert ((alt_dev_llist*) dev, &alt_dev_list); +} + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_DEV_H__ */ diff --git a/software/qsys_tutorial_lcd_bsp/HAL/inc/sys/alt_dma.h b/software/qsys_tutorial_lcd_bsp/HAL/inc/sys/alt_dma.h new file mode 100644 index 0000000..9f9b2ff --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/HAL/inc/sys/alt_dma.h @@ -0,0 +1,226 @@ +#ifndef __ALT_DMA_H__ +#define __ALT_DMA_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004-2005 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#include "sys/alt_dma_dev.h" +#include "alt_types.h" + +#include + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * This header contains the application side interface for accessing DMA + * resources. See alt_dma_dev.h for the dma device driver interface. + * + * The interface model treats a DMA transaction as being composed of two + * halves (read and write). + * + * The application can supply data for transmit using an "alt_dma_txchan" + * descriptor. Alternatively an "alt_dma_rxchan" descriptor can be used to + * receive data. + */ + +/* + * alt_dma_txchan_open() is used to obtain an "alt_dma_txchan" descriptor for + * a DMA transmit device. The name is the name of the associated physical + * device (e.g. "/dev/dma_0"). + * + * The return value will be NULL on failure, and non-NULL otherwise. + */ + +extern alt_dma_txchan alt_dma_txchan_open (const char* name); + +/* + * alt_dma_txchan_close() is provided so that an application can notify the + * system that it has finished with a given DMA transmit channel. This is only + * provided for completness. + */ + +static ALT_INLINE int alt_dma_txchan_close (alt_dma_txchan dma) +{ + return 0; +} + +/* + * alt_dma_txchan_send() posts a transmit request to a DMA transmit channel. + * The input arguments are: + * + * dma: the channel to use. + * from: a pointer to the start of the data to send. + * length: the length of the data to send in bytes. + * done: callback function that will be called once the data has been sent. + * handle: opaque value passed to "done". + * + * The return value will be negative if the request cannot be posted, and + * zero otherwise. + */ + +static ALT_INLINE int alt_dma_txchan_send (alt_dma_txchan dma, + const void* from, + alt_u32 length, + alt_txchan_done* done, + void* handle) +{ + return dma ? dma->dma_send (dma, + from, + length, + done, + handle) : -ENODEV; +} + +/* + * alt_dma_txchan_space() returns the number of tranmit requests that can be + * posted to the specified DMA transmit channel. + * + * A negative value indicates that the value could not be determined. + */ + +static ALT_INLINE int alt_dma_txchan_space (alt_dma_txchan dma) +{ + return dma ? dma->space (dma) : -ENODEV; +} + +/* + * alt_dma_txchan_ioctl() can be used to perform device specific I/O + * operations on the indicated DMA transmit channel. For example some drivers + * support options to control the width of the transfer operations. See + * alt_dma_dev.h for the list of generic requests. + * + * A negative return value indicates failure, otherwise the interpretation + * of the return value is request specific. + */ + +static ALT_INLINE int alt_dma_txchan_ioctl (alt_dma_txchan dma, + int req, + void* arg) +{ + return dma ? dma->ioctl (dma, req, arg) : -ENODEV; +} + +/* + * alt_dma_rxchan_open() is used to obtain an "alt_dma_rxchan" descriptor for + * a DMA receive channel. The name is the name of the associated physical + * device (e.g. "/dev/dma_0"). + * + * The return value will be NULL on failure, and non-NULL otherwise. + */ + +extern alt_dma_rxchan alt_dma_rxchan_open (const char* dev); + +/* + * alt_dma_rxchan_close() is provided so that an application can notify the + * system that it has finished with a given DMA receive channel. This is only + * provided for completness. + */ + +static ALT_INLINE int alt_dma_rxchan_close (alt_dma_rxchan dma) +{ + return 0; +} + +/* + * + */ + +/* + * alt_dma_rxchan_prepare() posts a receive request to a DMA receive channel. + * + * The input arguments are: + * + * dma: the channel to use. + * data: a pointer to the location that data is to be received to. + * len: the maximum length of the data to receive. + * done: callback function that will be called once the data has been + * received. + * handle: opaque value passed to "done". + * + * The return value will be negative if the request cannot be posted, and + * zero otherwise. + */ + +static ALT_INLINE int alt_dma_rxchan_prepare (alt_dma_rxchan dma, + void* data, + alt_u32 len, + alt_rxchan_done* done, + void* handle) +{ + return dma ? dma->prepare (dma, data, len, done, handle) : -ENODEV; +} + +/* + * alt_dma_rxchan_ioctl() can be used to perform device specific I/O + * operations on the indicated DMA receive channel. For example some drivers + * support options to control the width of the transfer operations. See + * alt_dma_dev.h for the list of generic requests. + * + * A negative return value indicates failure, otherwise the interpretation + * of the return value is request specific. + */ + +static ALT_INLINE int alt_dma_rxchan_ioctl (alt_dma_rxchan dma, + int req, + void* arg) +{ + return dma ? dma->ioctl (dma, req, arg) : -ENODEV; +} + +/* + * alt_dma_rxchan_depth() returns the depth of the receive FIFO used to store + * receive requests. + */ + +static ALT_INLINE alt_u32 alt_dma_rxchan_depth(alt_dma_rxchan dma) +{ + return dma->depth; +} + +/* + * + */ + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __ALT_DMA_H__ */ diff --git a/software/qsys_tutorial_lcd_bsp/HAL/inc/sys/alt_dma_dev.h b/software/qsys_tutorial_lcd_bsp/HAL/inc/sys/alt_dma_dev.h new file mode 100644 index 0000000..832463d --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/HAL/inc/sys/alt_dma_dev.h @@ -0,0 +1,200 @@ +#ifndef __ALT_DMA_DEV_H__ +#define __ALT_DMA_DEV_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004-2005 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#include "priv/alt_dev_llist.h" + +#include "alt_types.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * This header contains the device driver interface for accessing DMA + * resources. See alt_dma.h for the DMA application side interface. + * + * The interface model treats a DMA transaction as being composed of two + * halves (read and write). + * + * An "alt_dma_txchan_dev" is used to describe the device associated with a + * DMA transmit channel. An "alt_dma_rxchan_dev" is used to describe the + * device associated with a DMA receive channel. + */ + +/* + * List of generic ioctl requests that may be supported by a DMA device. + * + * ALT_DMA_RX_ONLY_ON: This causes a DMA channel to operate in a mode + * where only the receiver is under software control. + * The other side reads continously from a single + * location. The address to read is the argument to + * this request. + * ALT_DMA_RX_ONLY_OFF: Return to the default mode where both the receive + * and transmit sides of the DMA can be under software + * control. + * ALT_DMA_TX_ONLY_ON: This causes a DMA channel to operate in a mode + * where only the transmitter is under software control. + * The other side writes continously to a single + * location. The address to write to is the argument to + * this request. + * ALT_DMA_TX_ONLY_OFF: Return to the default mode where both the receive + * and transmit sides of the DMA can be under software + * control. + * ALT_DMA_SET_MODE_8: Transfer data in units of 8 bits. + * ALT_DMA_SET_MODE_16: Transfer data in units of 16 bits. + * ALT_DMA_SET_MODE_32: Transfer data in units of 32 bits. + * ALT_DMA_SET_MODE_64: Transfer data in units of 64 bits. + * ALT_DMA_SET_MODE_128: Transfer data in units of 128 bits. + * ALT_DMA_GET_MODE: Get the current transfer mode. + * + * The use of the macros: ALT_DMA_TX_STREAM_ON, ALT_DMA_TX_STREAM_OFF + * ALT_DMA_RX_STREAM_OFF and ALT_DMA_RX_STREAM_ON are depreciated. You should + * instead use the macros: ALT_DMA_RX_ONLY_ON, ALT_DMA_RX_ONLY_OFF, + * ALT_DMA_TX_ONLY_ON and ALT_DMA_TX_ONLY_OFF. + */ + +#define ALT_DMA_TX_STREAM_ON (0x1) +#define ALT_DMA_TX_STREAM_OFF (0x2) +#define ALT_DMA_RX_STREAM_ON (0x3) +#define ALT_DMA_RX_STREAM_OFF (0x4) +#define ALT_DMA_SET_MODE_8 (0x5) +#define ALT_DMA_SET_MODE_16 (0x6) +#define ALT_DMA_SET_MODE_32 (0x7) +#define ALT_DMA_SET_MODE_64 (0x8) +#define ALT_DMA_SET_MODE_128 (0x9) +#define ALT_DMA_GET_MODE (0xa) + +#define ALT_DMA_RX_ONLY_ON ALT_DMA_TX_STREAM_ON +#define ALT_DMA_RX_ONLY_OFF ALT_DMA_TX_STREAM_OFF +#define ALT_DMA_TX_ONLY_ON ALT_DMA_RX_STREAM_ON +#define ALT_DMA_TX_ONLY_OFF ALT_DMA_RX_STREAM_OFF + +/* + * + */ + +typedef struct alt_dma_txchan_dev_s alt_dma_txchan_dev; +typedef struct alt_dma_rxchan_dev_s alt_dma_rxchan_dev; + +typedef alt_dma_txchan_dev* alt_dma_txchan; +typedef alt_dma_rxchan_dev* alt_dma_rxchan; + +typedef void (alt_txchan_done)(void* handle); +typedef void (alt_rxchan_done)(void* handle, void* data); + +/* + * devices that provide a DMA transmit channel are required to provide an + * instance of the "alt_dma_txchan_dev" structure. + */ + +struct alt_dma_txchan_dev_s { + alt_llist llist; /* for internal use */ + const char* name; /* name of the device instance + * (e.g. "/dev/dma_0"). + */ + int (*space) (alt_dma_txchan dma); /* returns the maximum number of + * transmit requests that can be posted + */ + int (*dma_send) (alt_dma_txchan dma, + const void* from, + alt_u32 len, + alt_txchan_done* done, + void* handle); /* post a transmit request */ + int (*ioctl) (alt_dma_txchan dma, int req, void* arg); /* perform device + * specific I/O control. + */ +}; + +/* + * devices that provide a DMA receive channel are required to provide an + * instance of the "alt_dma_rxchan_dev" structure. + */ + +struct alt_dma_rxchan_dev_s { + alt_llist list; /* for internal use */ + const char* name; /* name of the device instance + * (e.g. "/dev/dma_0"). + */ + alt_u32 depth; /* maximum number of receive requests that + * can be posted. + */ + int (*prepare) (alt_dma_rxchan dma, + void* data, + alt_u32 len, + alt_rxchan_done* done, + void* handle); /* post a receive request */ + int (*ioctl) (alt_dma_rxchan dma, int req, void* arg); /* perform device + * specific I/O control. + */ +}; + +/* + * Register a DMA transmit channel with the system. + */ + +static ALT_INLINE int alt_dma_txchan_reg (alt_dma_txchan_dev* dev) +{ + extern alt_llist alt_dma_txchan_list; + + return alt_dev_llist_insert((alt_dev_llist*) dev, &alt_dma_txchan_list); +} + +/* + * Register a DMA receive channel with the system. + */ + +static ALT_INLINE int alt_dma_rxchan_reg (alt_dma_rxchan_dev* dev) +{ + extern alt_llist alt_dma_rxchan_list; + + return alt_dev_llist_insert((alt_dev_llist*) dev, &alt_dma_rxchan_list); +} + +/* + * + */ + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __ALT_DMA_DEV_H__ */ diff --git a/software/qsys_tutorial_lcd_bsp/HAL/inc/sys/alt_driver.h b/software/qsys_tutorial_lcd_bsp/HAL/inc/sys/alt_driver.h new file mode 100644 index 0000000..eb0f23b --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/HAL/inc/sys/alt_driver.h @@ -0,0 +1,168 @@ +#ifndef __ALT_DRIVER_H__ +#define __ALT_DRIVER_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/* + * Macros used to access a driver without HAL file descriptors. + */ + +/* + * ALT_MODULE_CLASS + * + * This macro returns the module class name for the specified module instance. + * It uses information in the system.h file. + * Neither the instance name or class name are quoted (so that they can + * be used with other pre-processor macros). + * + * Example: + * Assume the design has an instance of an altera_avalon_uart called uart1. + * Calling ALT_MODULE_CLASS(uart1) returns altera_avalon_uart. + */ + +#define ALT_MODULE_CLASS(instance) ALT_MODULE_CLASS_ ## instance + + +/* + * ALT_DRIVER_FUNC_NAME + * + * --> instance Instance name. + * --> func Function name. + * + * This macro returns the device driver function name of the specified + * module instance for the specified function name. + * + * Example: + * Assume the design has an instance of an altera_avalon_uart called uart1. + * Calling ALT_DRIVER_FUNC_NAME(uart1, write) returns + * altera_avalon_uart_write. + */ + +#define ALT_DRIVER_FUNC_NAME(instance, func) \ + ALT_DRIVER_FUNC_NAME1(ALT_MODULE_CLASS(instance), func) +#define ALT_DRIVER_FUNC_NAME1(module_class, func) \ + ALT_DRIVER_FUNC_NAME2(module_class, func) +#define ALT_DRIVER_FUNC_NAME2(module_class, func) \ + module_class ## _ ## func + +/* + * ALT_DRIVER_STATE_STRUCT + * + * --> instance Instance name. + * + * This macro returns the device driver state type name of the specified + * module instance. + * + * Example: + * Assume the design has an instance of an altera_avalon_uart called uart1. + * Calling ALT_DRIVER_STATE_STRUCT(uart1) returns: + * struct altera_avalon_uart_state_s + * + * Note that the ALT_DRIVER_FUNC_NAME macro is used even though "state" isn't + * really a function but it does match the required naming convention. + */ +#define ALT_DRIVER_STATE_STRUCT(instance) \ + struct ALT_DRIVER_FUNC_NAME(instance, state_s) + +/* + * ALT_DRIVER_STATE + * + * --> instance Instance name. + * + * This macro returns the device driver state name of the specified + * module instance. + * + * Example: + * Assume the design has an instance of an altera_avalon_uart called uart1. + * Calling ALT_DRIVER_STATE(uart1) returns uart1. + */ +#define ALT_DRIVER_STATE(instance) instance + +/* + * ALT_DRIVER_WRITE + * + * --> instance Instance name. + * --> buffer Write buffer. + * --> len Length of write buffer data. + * --> flags Control flags (e.g. O_NONBLOCK) + * + * This macro calls the "write" function of the specified driver instance. + */ + +#define ALT_DRIVER_WRITE_EXTERNS(instance) \ + extern ALT_DRIVER_STATE_STRUCT(instance) ALT_DRIVER_STATE(instance); \ + extern int ALT_DRIVER_FUNC_NAME(instance, write) \ + (ALT_DRIVER_STATE_STRUCT(instance) *, const char *, int, int); + +#define ALT_DRIVER_WRITE(instance, buffer, len, flags) \ + ALT_DRIVER_FUNC_NAME(instance, write)(&ALT_DRIVER_STATE(instance), buffer, len, flags) + + +/* + * ALT_DRIVER_READ + * + * --> instance Instance name. + * <-- buffer Read buffer. + * --> len Length of read buffer. + * --> flags Control flags (e.g. O_NONBLOCK) + * + * This macro calls the "read" function of the specified driver instance. + */ + +#define ALT_DRIVER_READ_EXTERNS(instance) \ + extern ALT_DRIVER_STATE_STRUCT(instance) ALT_DRIVER_STATE(instance); \ + extern int ALT_DRIVER_FUNC_NAME(instance, read) \ + (ALT_DRIVER_STATE_STRUCT(instance) *, const char *, int, int); + +#define ALT_DRIVER_READ(instance, buffer, len, flags) \ + ALT_DRIVER_FUNC_NAME(instance, read)(&ALT_DRIVER_STATE(instance), buffer, len, flags) + +/* + * ALT_DRIVER_IOCTL + * + * --> instance Instance name. + * --> req ioctl request (e.g. TIOCSTIMEOUT) + * --> arg Optional argument (void*) + * + * This macro calls the "ioctl" function of the specified driver instance + */ + +#define ALT_DRIVER_IOCTL_EXTERNS(instance) \ + extern ALT_DRIVER_STATE_STRUCT(instance) ALT_DRIVER_STATE(instance); \ + extern int ALT_DRIVER_FUNC_NAME(instance, ioctl) \ + (ALT_DRIVER_STATE_STRUCT(instance) *, int, void*); + +#define ALT_DRIVER_IOCTL(instance, req, arg) \ + ALT_DRIVER_FUNC_NAME(instance, ioctl)(&ALT_DRIVER_STATE(instance), req, arg) + +#endif /* __ALT_DRIVER_H__ */ diff --git a/software/qsys_tutorial_lcd_bsp/HAL/inc/sys/alt_errno.h b/software/qsys_tutorial_lcd_bsp/HAL/inc/sys/alt_errno.h new file mode 100644 index 0000000..4d3e50f --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/HAL/inc/sys/alt_errno.h @@ -0,0 +1,87 @@ +#ifndef __ALT_ERRNO_H__ +#define __ALT_ERRNO_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +/* + * errno is defined in so that it uses the thread local version + * stored in the location pointed to by "_impure_ptr". This means that the + * accesses to errno within the HAL library can cause the entirety of + * of the structure pointed to by "_impure_ptr" to be added to the + * users application. This can be undesirable in very small footprint systems. + * + * To avoid this happening, the HAL uses the macro ALT_ERRNO, defined below, + * to access errno, rather than accessing it directly. This macro will only + * use the thread local version if some other code has already caused it to be + * included into the system, otherwise it will use the global errno value. + * + * This causes a slight increases in code size where errno is accessed, but + * can lead to significant overall benefits in very small systems. The + * increase is inconsequential when compared to the size of the structure + * pointed to by _impure_ptr. + * + * Note that this macro accesses __errno() using an externally declared + * function pointer (alt_errno). This is done so that the function call uses the + * subroutine call instruction via a register rather than an immediate address. + * This is important in the case that the code has been linked for a high + * address, but __errno() is not being used. In this case the weak linkage + * would have resulted in the instruction: "call 0" which would fail to link. + */ + +extern int* (*alt_errno) (void); + +/* Must define this so that values such as EBADFD are defined in errno.h. */ +#define __LINUX_ERRNO_EXTENSIONS__ + +#include + +#include "alt_types.h" + +#undef errno + +extern int errno; + +static ALT_INLINE int* alt_get_errno(void) +{ + return ((alt_errno) ? alt_errno() : &errno); +} + +#define ALT_ERRNO *alt_get_errno() + +#endif /* __ALT_ERRNO_H__ */ diff --git a/software/qsys_tutorial_lcd_bsp/HAL/inc/sys/alt_exceptions.h b/software/qsys_tutorial_lcd_bsp/HAL/inc/sys/alt_exceptions.h new file mode 100644 index 0000000..3576a52 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/HAL/inc/sys/alt_exceptions.h @@ -0,0 +1,127 @@ +#ifndef __ALT_EXCEPTIONS_H__ +#define __ALT_EXCEPTIONS_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2008 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ +#include "alt_types.h" +#include "system.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * This file defines instruction-generated exception handling and registry + * API, exception type enumeration, and handler return value enumeration for + * Nios II. + */ + +/* + * The following enumeration describes the value in the CPU EXCEPTION + * register CAUSE bit field. Not all exception types will cause the + * processor to go to the exception vector; these are provided for + * reference. + */ +enum alt_exception_cause_e { + /* Exeption causes that will cause jump to exception vector */ + NIOS2_EXCEPTION_INTERRUPT = 2, + NIOS2_EXCEPTION_TRAP_INST = 3, + NIOS2_EXCEPTION_UNIMPLEMENTED_INST = 4, + NIOS2_EXCEPTION_ILLEGAL_INST = 5, + NIOS2_EXCEPTION_MISALIGNED_DATA_ADDR = 6, + NIOS2_EXCEPTION_MISALIGNED_TARGET_PC = 7, + NIOS2_EXCEPTION_DIVISION_ERROR = 8, + NIOS2_EXCEPTION_SUPERVISOR_ONLY_INST_ADDR = 9, + NIOS2_EXCEPTION_SUPERVISOR_ONLY_INST = 10, + NIOS2_EXCEPTION_SUPERVISOR_ONLY_DATA_ADDR = 11, + NIOS2_EXCEPTION_TLB_MISS = 12, + NIOS2_EXCEPTION_TLB_EXECUTE_PERM_VIOLATION = 13, + NIOS2_EXCEPTION_MPU_INST_REGION_VIOLATION = 16, + + /* Exception causes that will NOT cause a jump to exception vector */ + NIOS2_EXCEPTION_RESET = 0, + NIOS2_EXCEPTION_CPU_ONLY_RESET_REQUEST = 1, + NIOS2_EXCEPTION_TLB_READ_PERM_VIOLATION = 14, + NIOS2_EXCEPTION_TLB_WRITE_PERM_VIOLATION = 15, + NIOS2_EXCEPTION_MPU_DATA_REGION_VIOLATION = 17, + /* + * This value is passed to an exception handler's cause argument if + * "extra exceptions" information (EXECPTION) register is not + * present in the processor hardware configuration. + */ + NIOS2_EXCEPTION_CAUSE_NOT_PRESENT = -1 +}; +typedef enum alt_exception_cause_e alt_exception_cause; + +/* + * These define valid return values for a user-defined instruction-generated + * exception handler. The handler should return one of these to indicate + * whether to re-issue the instruction that triggered the exception, or to + * skip it. + */ +enum alt_exception_result_e { + NIOS2_EXCEPTION_RETURN_REISSUE_INST = 0, + NIOS2_EXCEPTION_RETURN_SKIP_INST = 1 +}; +typedef enum alt_exception_result_e alt_exception_result; + +/* + * alt_instruction_exception_register() can be used to register an exception + * handler for instruction-generated exceptions that are not handled by the + * built-in exception handler (i.e. for interrupts). + * + * The registry API is optionally enabled through the "Enable + * Instruction-related Exception API" HAL BSP setting, which will + * define the macro below. + */ +#ifdef ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API +void alt_instruction_exception_register ( + alt_exception_result (*exception_handler)( + alt_exception_cause cause, + alt_u32 exception_pc, + alt_u32 bad_addr) ); +#endif /*ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API */ + +/* + * alt_exception_cause_generated_bad_addr() indicates whether a particular + * exception cause value was from an exception-type that generated a valid + * address in the BADADDR register. The contents of BADADDR is passed to + * a user-registered exception handler in all cases, whether valid or not. + * This routine should be called to validate the bad_addr argument to + * your exception handler. + */ +int alt_exception_cause_generated_bad_addr(alt_exception_cause cause); + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __ALT_EXCEPTIONS_H__ */ diff --git a/software/qsys_tutorial_lcd_bsp/HAL/inc/sys/alt_flash.h b/software/qsys_tutorial_lcd_bsp/HAL/inc/sys/alt_flash.h new file mode 100644 index 0000000..527328d --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/HAL/inc/sys/alt_flash.h @@ -0,0 +1,166 @@ +#ifndef __ALT_FLASH_H__ +#define __ALT_FLASH_H__ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +/****************************************************************************** +* * +* Alt_flash.h - User interface for flash code * +* * +* Use this interface to avoid being exposed to the internals of the device * +* driver architecture. If you chose to use the flash driver internal * +* structures we don't guarantee not to change them * +* * +* Author PRR * +* * +******************************************************************************/ + + + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +#include "alt_types.h" +#include "alt_flash_types.h" +#include "alt_flash_dev.h" +#include "sys/alt_cache.h" + +alt_flash_fd* alt_flash_open_dev(const char* name); +void alt_flash_close_dev(alt_flash_fd* fd ); + +/* + * alt_write_flash + * + * Program a buffer into flash. + * + * This routine erases all the affected erase blocks (if necessary) + * and then programs the data. However it does not read the data out first + * and preserve and none overwritten data, because this would require very + * large buffers on the target. If you need + * that functionality use the functions below. + */ +static __inline__ int __attribute__ ((always_inline)) alt_write_flash( + alt_flash_fd* fd, + int offset, + const void* src_addr, + int length ) +{ + return fd->write( fd, offset, src_addr, length ); +} + +/* + * alt_read_flash + * + * Read a block of flash for most flashes this is just memcpy + * it's here for completeness in case we need it for some serial flash device + * + */ +static __inline__ int __attribute__ ((always_inline)) alt_read_flash( + alt_flash_fd* fd, int offset, + void* dest_addr, int length ) +{ + return fd->read( fd, offset, dest_addr, length ); +} + +/* + * alt_get_flash_info + * + * Return the information on the flash sectors. + * + */ +static __inline__ int __attribute__ ((always_inline)) alt_get_flash_info( + alt_flash_fd* fd, flash_region** info, + int* number_of_regions) +{ + return fd->get_info( fd, info, number_of_regions); +} + +/* + * alt_erase_flash_block + * + * Erase a particular erase block, pass in the offset to the start of + * the block and it's size + */ +static __inline__ int __attribute__ ((always_inline)) alt_erase_flash_block( + alt_flash_fd* fd, int offset, int length) +{ + int ret_code; + ret_code = fd->erase_block( fd, offset ); + + if(!ret_code) + alt_dcache_flush((alt_u8*)fd->base_addr + offset, length); + + return ret_code; +} + +/* + * alt_write_flash_block + * + * Write a particular flash block, block_offset is the offset + * (from the base of flash) to start of the block + * data_offset is the offset (from the base of flash) + * where you wish to start programming + * + * NB this function DOES NOT check that you are only writing a single + * block of data as that would slow down this function. + * + * Use alt_write_flash if you want that level of error checking. + */ + +static __inline__ int __attribute__ ((always_inline)) alt_write_flash_block( + alt_flash_fd* fd, int block_offset, + int data_offset, + const void *data, int length) +{ + + int ret_code; + ret_code = fd->write_block( fd, block_offset, data_offset, data, length ); + + if(!ret_code) + alt_dcache_flush((alt_u8*)fd->base_addr + data_offset, length); + + return ret_code; +} + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_FLASH_H__ */ diff --git a/software/qsys_tutorial_lcd_bsp/HAL/inc/sys/alt_flash_dev.h b/software/qsys_tutorial_lcd_bsp/HAL/inc/sys/alt_flash_dev.h new file mode 100644 index 0000000..8bab601 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/HAL/inc/sys/alt_flash_dev.h @@ -0,0 +1,98 @@ +#ifndef __ALT_FLASH_DEV_H__ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +/****************************************************************************** +* * +* Alt_flash_dev.h - Generic Flash device interfaces * +* * +* Author PRR * +* * +******************************************************************************/ +#define __ALT_FLASH_DEV_H__ + +#include "alt_flash_types.h" +#include "sys/alt_llist.h" +#include "priv/alt_dev_llist.h" + +#include "alt_types.h" + +typedef struct alt_flash_dev alt_flash_dev; +typedef alt_flash_dev alt_flash_fd; + +static ALT_INLINE int alt_flash_device_register( alt_flash_fd* fd) +{ + extern alt_llist alt_flash_dev_list; + + return alt_dev_llist_insert ((alt_dev_llist*) fd, &alt_flash_dev_list); +} + +typedef alt_flash_dev* (*alt_flash_open)(alt_flash_dev* flash, + const char* name ); +typedef int (*alt_flash_close)(alt_flash_dev* flash_info); + +typedef int (*alt_flash_write)( alt_flash_dev* flash, int offset, + const void* src_addr, int length ); + +typedef int (*alt_flash_get_flash_info)( alt_flash_dev* flash, flash_region** info, + int* number_of_regions); +typedef int (*alt_flash_write_block)( alt_flash_dev* flash, int block_offset, + int data_offset, const void* data, + int length); +typedef int (*alt_flash_erase_block)( alt_flash_dev* flash, int offset); +typedef int (*alt_flash_read)(alt_flash_dev* flash, int offset, + void* dest_addr, int length ); + +struct alt_flash_dev +{ + alt_llist llist; + const char* name; + alt_flash_open open; + alt_flash_close close; + alt_flash_write write; + alt_flash_read read; + alt_flash_get_flash_info get_info; + alt_flash_erase_block erase_block; + alt_flash_write_block write_block; + void* base_addr; + int length; + int number_of_regions; + flash_region region_info[ALT_MAX_NUMBER_OF_FLASH_REGIONS]; +}; + +#endif /* __ALT_FLASH_DEV_H__ */ diff --git a/software/qsys_tutorial_lcd_bsp/HAL/inc/sys/alt_flash_types.h b/software/qsys_tutorial_lcd_bsp/HAL/inc/sys/alt_flash_types.h new file mode 100644 index 0000000..884cbf8 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/HAL/inc/sys/alt_flash_types.h @@ -0,0 +1,64 @@ +#ifndef __ALT_FLASH_TYPES_H__ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +/****************************************************************************** +* * +* Alt_flash_types.h - Some generic types and defines used by the flash code * +* * +* Author PRR * +* * +******************************************************************************/ +#define __ALT_FLASH_TYPES_H__ + +#ifndef ALT_MAX_NUMBER_OF_FLASH_REGIONS +#define ALT_MAX_NUMBER_OF_FLASH_REGIONS 8 +#endif /* ALT_MAX_NUMBER_OF_FLASH_REGIONS */ + +/* + * Description of a single Erase region + */ +typedef struct flash_region +{ + int offset; + int region_size; + int number_of_blocks; + int block_size; +}flash_region; + +#endif /* __ALT_FLASH_TYPES_H__ */ diff --git a/software/qsys_tutorial_lcd_bsp/HAL/inc/sys/alt_irq.h b/software/qsys_tutorial_lcd_bsp/HAL/inc/sys/alt_irq.h new file mode 100644 index 0000000..6666e52 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/HAL/inc/sys/alt_irq.h @@ -0,0 +1,245 @@ +#ifndef __ALT_IRQ_H__ +#define __ALT_IRQ_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2009 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/* + * alt_irq.h is the Nios II specific implementation of the interrupt controller + * interface. + * + * Nios II includes optional support for an external interrupt controller. + * When an external controller is present, the "Enhanced" interrupt API + * must be used to manage individual interrupts. The enhanced API also + * supports the processor's internal interrupt controller. Certain API + * members are accessible from either the "legacy" or "enhanced" interrpt + * API. + * + * Regardless of which API is in use, this file should be included by + * application code and device drivers that register ISRs or manage interrpts. + */ +#include + +#include "nios2.h" +#include "alt_types.h" +#include "system.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * Macros used by alt_irq_enabled + */ +#define ALT_IRQ_ENABLED 1 +#define ALT_IRQ_DISABLED 0 + +/* + * Number of available interrupts in internal interrupt controller. + */ +#define ALT_NIRQ NIOS2_NIRQ + +/* + * Used by alt_irq_disable_all() and alt_irq_enable_all(). + */ +typedef int alt_irq_context; + +/* ISR Prototype */ +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT +typedef void (*alt_isr_func)(void* isr_context); +#else +typedef void (*alt_isr_func)(void* isr_context, alt_u32 id); +#endif + +/* + * The following protypes and routines are supported by both + * the enhanced and legacy interrupt APIs + */ + +/* + * alt_irq_enabled can be called to determine if the processor's global + * interrupt enable is asserted. The return value is zero if interrupts + * are disabled, and non-zero otherwise. + * + * Whether the internal or external interrupt controller is present, + * individual interrupts may still be disabled. Use the other API to query + * a specific interrupt. + */ +static ALT_INLINE int ALT_ALWAYS_INLINE alt_irq_enabled (void) +{ + int status; + + NIOS2_READ_STATUS (status); + + return status & NIOS2_STATUS_PIE_MSK; +} + +/* + * alt_irq_disable_all() + * + * This routine inhibits all interrupts by negating the status register PIE + * bit. It returns the previous contents of the CPU status register (IRQ + * context) which can be used to restore the status register PIE bit to its + * state before this routine was called. + */ +static ALT_INLINE alt_irq_context ALT_ALWAYS_INLINE + alt_irq_disable_all (void) +{ + alt_irq_context context; + + NIOS2_READ_STATUS (context); + + NIOS2_WRITE_STATUS (context & ~NIOS2_STATUS_PIE_MSK); + + return context; +} + +/* + * alt_irq_enable_all() + * + * Enable all interrupts that were previously disabled by alt_irq_disable_all() + * + * This routine accepts a context to restore the CPU status register PIE bit + * to the state prior to a call to alt_irq_disable_all(). + + * In the case of nested calls to alt_irq_disable_all()/alt_irq_enable_all(), + * this means that alt_irq_enable_all() does not necessarily re-enable + * interrupts. + * + * This routine will perform a read-modify-write sequence to restore only + * status.PIE if the processor is configured with options that add additional + * writeable status register bits. These include the MMU, MPU, the enhanced + * interrupt controller port, and shadow registers. Otherwise, as a performance + * enhancement, status is overwritten with the prior context. + */ +static ALT_INLINE void ALT_ALWAYS_INLINE + alt_irq_enable_all (alt_irq_context context) +{ +#if (NIOS2_NUM_OF_SHADOW_REG_SETS > 0) || (defined NIOS2_EIC_PRESENT) || \ + (defined NIOS2_MMU_PRESENT) || (defined NIOS2_MPU_PRESENT) + alt_irq_context status; + + NIOS2_READ_STATUS (status); + + status &= ~NIOS2_STATUS_PIE_MSK; + status |= (context & NIOS2_STATUS_PIE_MSK); + + NIOS2_WRITE_STATUS (status); +#else + NIOS2_WRITE_STATUS (context); +#endif +} + +/* + * The function alt_irq_init() is defined within the auto-generated file + * alt_sys_init.c. This function calls the initilization macros for all + * interrupt controllers in the system at config time, before any other + * non-interrupt controller driver is initialized. + * + * The "base" parameter is ignored and only present for backwards-compatibility. + * It is recommended that NULL is passed in for the "base" parameter. + */ +extern void alt_irq_init (const void* base); + +/* + * alt_irq_cpu_enable_interrupts() enables the CPU to start taking interrupts. + */ +static ALT_INLINE void ALT_ALWAYS_INLINE + alt_irq_cpu_enable_interrupts () +{ + NIOS2_WRITE_STATUS(NIOS2_STATUS_PIE_MSK +#if defined(NIOS2_EIC_PRESENT) && (NIOS2_NUM_OF_SHADOW_REG_SETS > 0) + | NIOS2_STATUS_RSIE_MSK +#endif + ); +} + + +/* + * Prototypes for the enhanced interrupt API. + */ +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT +/* + * alt_ic_isr_register() can be used to register an interrupt handler. If the + * function is succesful, then the requested interrupt will be enabled upon + * return. + */ +extern int alt_ic_isr_register(alt_u32 ic_id, + alt_u32 irq, + alt_isr_func isr, + void *isr_context, + void *flags); + +/* + * alt_ic_irq_enable() and alt_ic_irq_disable() enable/disable a specific + * interrupt by using IRQ port and interrupt controller instance. + */ +int alt_ic_irq_enable (alt_u32 ic_id, alt_u32 irq); +int alt_ic_irq_disable(alt_u32 ic_id, alt_u32 irq); + + /* + * alt_ic_irq_enabled() indicates whether a specific interrupt, as + * specified by IRQ port and interrupt controller instance is enabled. + */ +alt_u32 alt_ic_irq_enabled(alt_u32 ic_id, alt_u32 irq); + +#else +/* + * Prototypes for the legacy interrupt API. + */ +#include "priv/alt_legacy_irq.h" +#endif + + +/* + * alt_irq_pending() returns a bit list of the current pending interrupts. + * This is used by alt_irq_handler() to determine which registered interrupt + * handlers should be called. + * + * This routine is only available for the Nios II internal interrupt + * controller. + */ +#ifndef NIOS2_EIC_PRESENT +static ALT_INLINE alt_u32 ALT_ALWAYS_INLINE alt_irq_pending (void) +{ + alt_u32 active; + + NIOS2_READ_IPENDING (active); + + return active; +} +#endif + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __ALT_IRQ_H__ */ diff --git a/software/qsys_tutorial_lcd_bsp/HAL/inc/sys/alt_irq_entry.h b/software/qsys_tutorial_lcd_bsp/HAL/inc/sys/alt_irq_entry.h new file mode 100644 index 0000000..e2008d9 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/HAL/inc/sys/alt_irq_entry.h @@ -0,0 +1,39 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/* + * This file pulls in the IRQ entry assembler and C code, which is only + * required if there are any interruptes in the system. + */ + +__asm__( "\n\t.globl alt_irq_entry" ); + +__asm__( "\n\t.globl alt_irq_handler" ); + diff --git a/software/qsys_tutorial_lcd_bsp/HAL/inc/sys/alt_license_reminder_ucosii.h b/software/qsys_tutorial_lcd_bsp/HAL/inc/sys/alt_license_reminder_ucosii.h new file mode 100644 index 0000000..2fe649c --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/HAL/inc/sys/alt_license_reminder_ucosii.h @@ -0,0 +1,77 @@ +#ifndef __ALT_LICENSE_REMINDER_UCOSII_H__ +#define __ALT_LICENSE_REMINDER_UCOSII_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#include + +#define ALT_LICENSE_REMINDER_UCOSII_STRING \ + "============== Software License Reminder ===============\n" \ + "\n" \ + "uC/OS-II is provided in source form for FREE evaluation,\n" \ + "for educational use, or for peaceful research. If you\n" \ + "plan on using uC/OS-II in a commercial product you need\n" \ + "to contact Micrium to properly license its use in your\n" \ + "product. Micrium provides ALL the source code on the\n" \ + "Altera distribution for your convenience and to help you\n" \ + "experience uC/OS-II. The fact that the source is provided\n" \ + "does NOT mean that you can use it without paying a\n" \ + "licensing fee. Please help us continue to provide the\n" \ + "Embedded community with the finest software available.\n" \ + "Your honesty is greatly appreciated.\n" \ + "\n" \ + "Please contact:\n" \ + "\n" \ + "M I C R I U M\n" \ + "949 Crestview Circle\n" \ + "Weston, FL 33327-1848\n" \ + "U.S.A.\n" \ + "\n" \ + "Phone : +1 954 217 2036\n" \ + "FAX : +1 954 217 2037\n" \ + "WEB : www.micrium.com\n" \ + "E-mail: Sales@Micrium.com\n" \ + "\n" \ + "========================================================\n" + +#define alt_license_reminder_ucosii() puts(ALT_LICENSE_REMINDER_UCOSII_STRING) + + +#endif /* __ALT_LICENSE_REMINDER_UCOSII_H__ */ + diff --git a/software/qsys_tutorial_lcd_bsp/HAL/inc/sys/alt_llist.h b/software/qsys_tutorial_lcd_bsp/HAL/inc/sys/alt_llist.h new file mode 100644 index 0000000..46f81ce --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/HAL/inc/sys/alt_llist.h @@ -0,0 +1,123 @@ +#ifndef __ALT_LIST_H__ +#define __ALT_LIST_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#include "alt_types.h" + +/* + * alt_llist.h defines structures and functions for use in manipulating linked + * lists. A list is considered to be constructed from a chain of objects of + * type alt_llist, with one object being defined to be the head element. + * + * A list is considered to be empty if it only contains the head element. + */ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * alt_llist is the structure used to represent an element within a linked + * list. + */ + +typedef struct alt_llist_s alt_llist; + +struct alt_llist_s { + alt_llist* next; /* Pointer to the next element in the list. */ + alt_llist* previous; /* Pointer to the previous element in the list. */ +}; + +/* + * ALT_LLIST_HEAD is a macro that can be used to create the head of a new + * linked list. This is named "head". The head element is initialised to + * represent an empty list. + */ + +#define ALT_LLIST_HEAD(head) alt_llist head = {&head, &head} + +/* + * ALT_LLIST_ENTRY is a macro used to define an uninitialised linked list + * entry. This is used to reserve space in structure initialisation for + * structures that inherit form alt_llist. + */ + +#define ALT_LLIST_ENTRY {0, 0} + +/* + * alt_llist_insert() insert adds the linked list entry "entry" as the + * first entry in the linked list "list". "list" is the list head element. + */ + +static ALT_INLINE void ALT_ALWAYS_INLINE alt_llist_insert(alt_llist* list, + alt_llist* entry) +{ + entry->previous = list; + entry->next = list->next; + + list->next->previous = entry; + list->next = entry; +} + +/* + * alt_llist_remove() is called to remove an element from a linked list. The + * input argument is the element to remove. + */ + +static ALT_INLINE void ALT_ALWAYS_INLINE alt_llist_remove(alt_llist* entry) +{ + entry->next->previous = entry->previous; + entry->previous->next = entry->next; + + /* + * Set the entry to point to itself, so that any further calls to + * alt_llist_remove() are harmless. + */ + + entry->previous = entry; + entry->next = entry; +} + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_LLIST_H__ */ diff --git a/software/qsys_tutorial_lcd_bsp/HAL/inc/sys/alt_load.h b/software/qsys_tutorial_lcd_bsp/HAL/inc/sys/alt_load.h new file mode 100644 index 0000000..432e9f2 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/HAL/inc/sys/alt_load.h @@ -0,0 +1,78 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2005 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "alt_types.h" + +/* + * This macro is used to load code/data from its load address to its + * execution address for a given section. The section name is the input + * argument. Note that a leading '.' is assumed in the name. For example + * to load the section .onchip_ram, use: + * + * ALT_LOAD_SECTION_BY_NAME(onchip_ram); + * + * This requires that the apropriate linker symbols have been generated + * for the section in question. This will be the case if you are using the + * default linker script. + */ + +#define ALT_LOAD_SECTION_BY_NAME(name) \ + { \ + extern void _alt_partition_##name##_start; \ + extern void _alt_partition_##name##_end; \ + extern void _alt_partition_##name##_load_addr; \ + \ + alt_load_section(&_alt_partition_##name##_load_addr, \ + &_alt_partition_##name##_start, \ + &_alt_partition_##name##_end); \ + } + +/* + * Function used to load an individual section from flash to RAM. + * + * There is an implicit assumption here that the linker script will ensure + * that all sections are word aligned. + * + */ + +static void ALT_INLINE alt_load_section (alt_u32* from, + alt_u32* to, + alt_u32* end) +{ + if (to != from) + { + while( to != end ) + { + *to++ = *from++; + } + } +} diff --git a/software/qsys_tutorial_lcd_bsp/HAL/inc/sys/alt_log_printf.h b/software/qsys_tutorial_lcd_bsp/HAL/inc/sys/alt_log_printf.h new file mode 100644 index 0000000..c15ca05 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/HAL/inc/sys/alt_log_printf.h @@ -0,0 +1,349 @@ +/* alt_log_printf.h + * + * ALT_LOG is designed to provide extra logging/debugging messages from HAL + * through a different port than stdout. It is enabled by the ALT_LOG_ENABLE + * define, which needs to supplied at compile time. When logging is turned off, + * code size is unaffected. Thus, this should be transparent to the user + * when it is not actively turned on, and should not affect projects in any way. + * + * There are macros sprinkled within different components, such as the jtag uart + * and timer, in the HAL code. They are always named ALT_LOG_, and can be + * safely ignored if ALT_LOG is turned off. + * + * To turn on ALT_LOG, ALT_LOG_ENABLE must be defined, and ALT_LOG_PORT_TYPE and + * ALT_LOG_PORT_BASE must be set in system.h. This is done through editing + * .ptf, by editing the alt_log_port_type & alt_log_port_base settings. + * See the documentation html file for examples. + * + * When it is turned on, it will output extra HAL messages to a port specified + * in system.h. This can be a UART or JTAG UART port. By default it will + * output boot messages, detailing every step of the boot process. + * + * Extra logging is designed to be enabled by flags, which are defined in + * alt_log_printf.c. The default value is that all flags are off, so only the + * boot up logging messages show up. ALT_LOG_FLAGS can be set to enable certain + * groupings of flags, and that grouping is done in this file. Each flag can + * also be overridden with a -D at compile time. + * + * This header file includes the necessary prototypes for using the alt_log + * functions. It also contains all the macros that are used to remove the code + * from alt log is turned off. Also, the macros in other HAL files are defined + * here at the bottom. These macros all call some C function that is in + * alt_log_printf.c. + * + * The logging has functions for printing in C (ALT_LOG_PRINTF) and in assembly + * (ALT_LOG_PUTS). This was needed because the assembly printing occurs before + * the device is initialized. The assembly function corrupts register R4-R7, + * which are not used in the normal boot process. For this reason, do not call + * the assembly function in C. + * + * author: gkwan + */ + + +#ifndef __ALT_LOG_PRINTF_H__ +#define __ALT_LOG_PRINTF_H__ + +#include + +/* Global switch to turn on logging functions */ +#ifdef ALT_LOG_ENABLE + + /* ALT_LOG_PORT_TYPE values as defined in system.h. They are defined as + * numbers here first becasue the C preprocessor does not handle string + * comparisons. */ + #define ALTERA_AVALON_JTAG_UART 1 + #define ALTERA_AVALON_UART 0 + + /* If this .h file is included by an assembly file, skip over include files + * that won't compile in assembly. */ + #ifndef ALT_ASM_SRC + #include + #include "sys/alt_alarm.h" + #include "sys/alt_dev.h" + #ifdef __ALTERA_AVALON_JTAG_UART + #include "altera_avalon_jtag_uart.h" + #endif + #endif /* ALT_ASM_SRC */ + + /* These are included for the port register offsets and masks, needed + * to write to the port. Only include if the port type is set correctly, + * otherwise error. If alt_log is turned on and the port to output to is + * incorrect or does not exist, then should exit. */ + #if ALT_LOG_PORT_TYPE == ALTERA_AVALON_JTAG_UART + #ifdef __ALTERA_AVALON_JTAG_UART + #include + #else + #error ALT_LOG: JTAG_UART port chosen, but no JTAG_UART in system. + #endif + #elif ALT_LOG_PORT_TYPE == ALTERA_AVALON_UART + #ifdef __ALTERA_AVALON_UART + #include + #else + #error ALT_LOG: UART Port chosen, but no UART in system. + #endif + #else + #error ALT_LOG: alt_log_port_type declaration invalid! + #endif + + /* ALT_LOG_ENABLE turns on the basic printing function */ + #define ALT_LOG_PRINTF(...) do {alt_log_printf_proc(__VA_ARGS__);} while (0) + + /* Assembly macro for printing in assembly, calls tx_log_str + * which is in alt_log_macro.S. + * If alt_log_boot_on_flag is 0, skips the printing */ + #define ALT_LOG_PUTS(str) movhi r4, %hiadj(alt_log_boot_on_flag) ; \ + addi r4, r4, %lo(alt_log_boot_on_flag) ; \ + ldwio r5, 0(r4) ; \ + beq r0, r5, 0f ; \ + movhi r4, %hiadj(str) ; \ + addi r4, r4, %lo(str) ; \ + call tx_log_str ; \ + 0: + + /* These defines are here to faciliate the use of one output function + * (alt_log_txchar) to print to both the JTAG UART or the UART. Depending + * on the port type, the status register, read mask, and output register + * are set to the appropriate value for the port. */ + #if ALT_LOG_PORT_TYPE == ALTERA_AVALON_JTAG_UART + #define ALT_LOG_PRINT_REG_RD IORD_ALTERA_AVALON_JTAG_UART_CONTROL + #define ALT_LOG_PRINT_MSK ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_MSK + #define ALT_LOG_PRINT_TXDATA_WR IOWR_ALTERA_AVALON_JTAG_UART_DATA + #define ALT_LOG_PRINT_REG_OFFSET (ALTERA_AVALON_JTAG_UART_CONTROL_REG*0x4) + #define ALT_LOG_PRINT_TXDATA_REG_OFFSET (ALTERA_AVALON_JTAG_UART_DATA_REG*0x4) + #elif ALT_LOG_PORT_TYPE == ALTERA_AVALON_UART + #define ALT_LOG_PRINT_REG_RD IORD_ALTERA_AVALON_UART_STATUS + #define ALT_LOG_PRINT_MSK ALTERA_AVALON_UART_STATUS_TRDY_MSK + #define ALT_LOG_PRINT_TXDATA_WR IOWR_ALTERA_AVALON_UART_TXDATA + #define ALT_LOG_PRINT_REG_OFFSET (ALTERA_AVALON_UART_STATUS_REG*0x4) + #define ALT_LOG_PRINT_TXDATA_REG_OFFSET (ALTERA_AVALON_UART_TXDATA_REG*0x4) + #endif /* ALT_LOG_PORT */ + + /* Grouping of flags via ALT_LOG_FLAGS. Each specific flag can be set via + * -D at compile time, or else they'll be set to a default value according + * to ALT_LOG_FLAGS. ALT_LOG_FLAGS = 0 or not set is the default, where + * only the boot messages will be printed. As ALT_LOG_FLAGS increase, they + * increase in intrusiveness to the program, and will affect performance. + * + * Flag Level 1 - turns on system clock and JTAG UART startup status + * 2 - turns on write echo and JTAG_UART alarm (periodic report) + * 3 - turns on JTAG UART ISR logging - will slow performance + * significantly. + * -1 - All logging output is off, but if ALT_LOG_ENABLE is + * defined all logging function is built and code size + * remains constant + * + * Flag settings - 1 = on, 0 = off. */ + + /* This flag turns on "boot" messages for printing. This includes messages + * during crt0.S, then alt_main, and finally alt_exit. */ + #ifndef ALT_LOG_BOOT_ON_FLAG_SETTING + #if ALT_LOG_FLAGS == 1 + #define ALT_LOG_BOOT_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == 2 + #define ALT_LOG_BOOT_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == 3 + #define ALT_LOG_BOOT_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == -1 /* silent mode */ + #define ALT_LOG_BOOT_ON_FLAG_SETTING 0x0 + #else /* default setting */ + #define ALT_LOG_BOOT_ON_FLAG_SETTING 0x1 + #endif + #endif /* ALT_LOG_BOOT_ON_FLAG_SETTING */ + + #ifndef ALT_LOG_SYS_CLK_ON_FLAG_SETTING + #if ALT_LOG_FLAGS == 1 + #define ALT_LOG_SYS_CLK_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == 2 + #define ALT_LOG_SYS_CLK_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == 3 + #define ALT_LOG_SYS_CLK_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == -1 /* silent mode */ + #define ALT_LOG_SYS_CLK_ON_FLAG_SETTING 0x0 + #else /* default setting */ + #define ALT_LOG_SYS_CLK_ON_FLAG_SETTING 0x0 + #endif + #endif /* ALT_LOG_SYS_CLK_ON_FLAG_SETTING */ + + #ifndef ALT_LOG_WRITE_ON_FLAG_SETTING + #if ALT_LOG_FLAGS == 1 + #define ALT_LOG_WRITE_ON_FLAG_SETTING 0x0 + #elif ALT_LOG_FLAGS == 2 + #define ALT_LOG_WRITE_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == 3 + #define ALT_LOG_WRITE_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == -1 /* silent mode */ + #define ALT_LOG_WRITE_ON_FLAG_SETTING 0x0 + #else /* default setting */ + #define ALT_LOG_WRITE_ON_FLAG_SETTING 0x0 + #endif + #endif /* ALT_LOG_WRITE_ON_FLAG_SETTING */ + + #ifndef ALT_LOG_JTAG_UART_ALARM_ON_FLAG_SETTING + #ifndef __ALTERA_AVALON_JTAG_UART + #define ALT_LOG_JTAG_UART_ALARM_ON_FLAG_SETTING 0x0 + #elif ALT_LOG_FLAGS == 1 + #define ALT_LOG_JTAG_UART_ALARM_ON_FLAG_SETTING 0x0 + #elif ALT_LOG_FLAGS == 2 + #define ALT_LOG_JTAG_UART_ALARM_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == 3 + #define ALT_LOG_JTAG_UART_ALARM_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == -1 /* silent mode */ + #define ALT_LOG_JTAG_UART_ALARM_ON_FLAG_SETTING 0x0 + #else /* default setting */ + #define ALT_LOG_JTAG_UART_ALARM_ON_FLAG_SETTING 0x0 + #endif + #endif /* ALT_LOG_JTAG_UART_ALARM_ON_FLAG_SETTING */ + + #ifndef ALT_LOG_JTAG_UART_STARTUP_INFO_ON_FLAG_SETTING + #ifndef __ALTERA_AVALON_JTAG_UART + #define ALT_LOG_JTAG_UART_STARTUP_INFO_ON_FLAG_SETTING 0x0 + #elif ALT_LOG_FLAGS == 1 + #define ALT_LOG_JTAG_UART_STARTUP_INFO_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == 2 + #define ALT_LOG_JTAG_UART_STARTUP_INFO_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == 3 + #define ALT_LOG_JTAG_UART_STARTUP_INFO_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == -1 /* silent mode */ + #define ALT_LOG_JTAG_UART_STARTUP_INFO_ON_FLAG_SETTING 0x0 + #else /* default setting */ + #define ALT_LOG_JTAG_UART_STARTUP_INFO_ON_FLAG_SETTING 0x0 + #endif + #endif /* ALT_LOG_JTAG_UART_STARTUP_INFO_FLAG_SETTING */ + + #ifndef ALT_LOG_JTAG_UART_ISR_ON_FLAG_SETTING + #ifndef __ALTERA_AVALON_JTAG_UART + #define ALT_LOG_JTAG_UART_ISR_ON_FLAG_SETTING 0x0 + #elif ALT_LOG_FLAGS == 1 + #define ALT_LOG_JTAG_UART_ISR_ON_FLAG_SETTING 0x0 + #elif ALT_LOG_FLAGS == 2 + #define ALT_LOG_JTAG_UART_ISR_ON_FLAG_SETTING 0x0 + #elif ALT_LOG_FLAGS == 3 + #define ALT_LOG_JTAG_UART_ISR_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == -1 /* silent mode */ + #define ALT_LOG_JTAG_UART_ISR_ON_FLAG_SETTING 0x0 + #else /* default setting */ + #define ALT_LOG_JTAG_UART_ISR_ON_FLAG_SETTING 0x0 + #endif + #endif /* ALT_LOG_JTAG_UART_ISR_ON_FLAG_SETTING */ + +#ifndef ALT_ASM_SRC + /* Function Prototypes */ + void alt_log_txchar(int c,char *uartBase); + void alt_log_private_printf(const char *fmt,int base,va_list args); + void alt_log_repchar(char c,int r,int base); + int alt_log_printf_proc(const char *fmt, ... ); + void alt_log_system_clock(); + #ifdef __ALTERA_AVALON_JTAG_UART + alt_u32 altera_avalon_jtag_uart_report_log(void * context); + void alt_log_jtag_uart_startup_info(altera_avalon_jtag_uart_state* dev, int base); + void alt_log_jtag_uart_print_control_reg(altera_avalon_jtag_uart_state* dev, \ + int base, const char* header); + void alt_log_jtag_uart_isr_proc(int base, altera_avalon_jtag_uart_state* dev); + #endif + void alt_log_write(const void *ptr, size_t len); + + /* extern all global variables */ + extern volatile alt_u32 alt_log_boot_on_flag; + extern volatile alt_u8 alt_log_write_on_flag; + extern volatile alt_u8 alt_log_sys_clk_on_flag; + extern volatile alt_u8 alt_log_jtag_uart_alarm_on_flag; + extern volatile alt_u8 alt_log_jtag_uart_isr_on_flag; + extern volatile alt_u8 alt_log_jtag_uart_startup_info_on_flag; + extern volatile int alt_log_sys_clk_count; + extern volatile int alt_system_clock_in_sec; + extern alt_alarm alt_log_jtag_uart_alarm_1; +#endif /* ALT_ASM_SRC */ + + + /* Below are the MACRO defines used in various HAL files. They check + * if their specific flag is turned on; if it is, then it executes its + * code. + * + * To keep this file reasonable, most of these macros calls functions, + * which are defined in alt_log_printf.c. Look there for implementation + * details. */ + + /* Boot Messages Logging */ + #define ALT_LOG_PRINT_BOOT(...) \ + do { if (alt_log_boot_on_flag==1) {ALT_LOG_PRINTF(__VA_ARGS__);} \ + } while (0) + + /* JTAG UART Logging */ + /* number of ticks before alarm runs logging function */ + #ifndef ALT_LOG_JTAG_UART_TICKS_DIVISOR + #define ALT_LOG_JTAG_UART_TICKS_DIVISOR 10 + #endif + #ifndef ALT_LOG_JTAG_UART_TICKS + #define ALT_LOG_JTAG_UART_TICKS \ + (alt_ticks_per_second()/ALT_LOG_JTAG_UART_TICKS_DIVISOR) + #endif + + /* if there's a JTAG UART defined, then enable these macros */ + #ifdef __ALTERA_AVALON_JTAG_UART + + /* Macro in altera_avalon_jtag_uart.c, to register the alarm function. + * Also, the startup register info is also printed here, as this is + * called within the device driver initialization. */ + #define ALT_LOG_JTAG_UART_ALARM_REGISTER(dev, base) \ + do { if (alt_log_jtag_uart_alarm_on_flag==1) { \ + alt_alarm_start(&alt_log_jtag_uart_alarm_1, \ + ALT_LOG_JTAG_UART_TICKS, &altera_avalon_jtag_uart_report_log,\ + dev);} \ + if (alt_log_jtag_uart_startup_info_on_flag==1) {\ + alt_log_jtag_uart_startup_info(dev, base);} \ + } while (0) + + /* JTAG UART IRQ Logging (when buffer is empty) + * Inserted in the ISR in altera_avalon_jtag_uart.c */ + #define ALT_LOG_JTAG_UART_ISR_FUNCTION(base, dev) \ + do { alt_log_jtag_uart_isr_proc(base, dev); } while (0) + /* else, define macros to nothing. Or else the jtag_uart specific types + * will throw compiler errors */ + #else + #define ALT_LOG_JTAG_UART_ALARM_REGISTER(dev, base) + #define ALT_LOG_JTAG_UART_ISR_FUNCTION(base, dev) + #endif + + /* System clock logging + * How often (in seconds) the system clock logging prints. + * The default value is every 1 second */ + #ifndef ALT_LOG_SYS_CLK_INTERVAL_MULTIPLIER + #define ALT_LOG_SYS_CLK_INTERVAL_MULTIPLIER 1 + #endif + #ifndef ALT_LOG_SYS_CLK_INTERVAL + #define ALT_LOG_SYS_CLK_INTERVAL \ + (alt_ticks_per_second()*ALT_LOG_SYS_CLK_INTERVAL_MULTIPLIER) + #endif + + /* System clock logging - prints a message every interval (set above) + * to show that the system clock is alive. + * This macro is used in altera_avalon_timer_sc.c */ + #define ALT_LOG_SYS_CLK_HEARTBEAT() \ + do { alt_log_system_clock(); } while (0) + + /* alt_write_logging - echos a message every time write() is called, + * displays the first ALT_LOG_WRITE_ECHO_LEN characters. + * This macro is used in alt_write.c */ + #ifndef ALT_LOG_WRITE_ECHO_LEN + #define ALT_LOG_WRITE_ECHO_LEN 15 + #endif + + #define ALT_LOG_WRITE_FUNCTION(ptr,len) \ + do { alt_log_write(ptr,len); } while (0) + +#else /* ALT_LOG_ENABLE not defined */ + + /* logging is off, set all relevant macros to null */ + #define ALT_LOG_PRINT_BOOT(...) + #define ALT_LOG_PRINTF(...) + #define ALT_LOG_JTAG_UART_ISR_FUNCTION(base, dev) + #define ALT_LOG_JTAG_UART_ALARM_REGISTER(dev, base) + #define ALT_LOG_SYS_CLK_HEARTBEAT() + #define ALT_LOG_PUTS(str) + #define ALT_LOG_WRITE_FUNCTION(ptr,len) + +#endif /* ALT_LOG_ENABLE */ + +#endif /* __ALT_LOG_PRINTF_H__ */ + diff --git a/software/qsys_tutorial_lcd_bsp/HAL/inc/sys/alt_set_args.h b/software/qsys_tutorial_lcd_bsp/HAL/inc/sys/alt_set_args.h new file mode 100644 index 0000000..3750e67 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/HAL/inc/sys/alt_set_args.h @@ -0,0 +1,71 @@ +#ifndef __ALT_SET_ARGS_H__ +#define __ALT_SET_ARGS_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * The function alt_set_args() is provided in order to define the input + * arguments to main(). If this function is not called before main() then the + * argument list passed to main() will be empty. + * + * It is expected that this function will only be used by the ihost/iclient + * utility. + */ + +static inline void alt_set_args (int argc, char** argv, char** envp) +{ + extern int alt_argc; + extern char** alt_argv; + extern char** alt_envp; + + alt_argc = argc; + alt_argv = argv; + alt_envp = envp; +} + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_SET_ARGS_H__ */ diff --git a/software/qsys_tutorial_lcd_bsp/HAL/inc/sys/alt_sim.h b/software/qsys_tutorial_lcd_bsp/HAL/inc/sys/alt_sim.h new file mode 100644 index 0000000..06bd27a --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/HAL/inc/sys/alt_sim.h @@ -0,0 +1,91 @@ +#ifndef __ALT_SIM_H__ +#define __ALT_SIM_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2007 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ +#include "system.h" +#include "alt_types.h" + +/* + * Instructions that might mean something special to a simulator. + * These have no special effect on real hardware (they are just nops). + */ +#define ALT_SIM_FAIL() \ + do { __asm volatile ("cmpltui r0, r0, 0xabc1"); } while (0) + +#define ALT_SIM_PASS() \ + do { __asm volatile ("cmpltui r0, r0, 0xabc2"); } while (0) + +#define ALT_SIM_IN_TOP_OF_HOT_LOOP() \ + do { __asm volatile ("cmpltui r0, r0, 0xabc3"); } while (0) + +/* + * Routine called on exit. + */ +static ALT_ALWAYS_INLINE void alt_sim_halt(int exit_code) +{ + int r2 = exit_code; + +#if defined(NIOS2_HAS_DEBUG_STUB) && (defined(ALT_BREAK_ON_EXIT) || defined(ALT_PROVIDE_GMON)) + + int r3 = (1 << 2); + +#ifdef ALT_PROVIDE_GMON + extern unsigned int alt_gmon_data[]; + int r4 = (int)alt_gmon_data; + r3 |= (1 << 4); +#define ALT_GMON_DATA ,"D04"(r4) +#else +#define ALT_GMON_DATA +#endif /* ALT_PROVIDE_GMON */ + + if (r2) { + ALT_SIM_FAIL(); + } else { + ALT_SIM_PASS(); + } + + __asm__ volatile ("\n0:\n\taddi %0,%0, -1\n\tbgt %0,zero,0b" : : "r" (ALT_CPU_FREQ/100) ); /* Delay for >30ms */ + + __asm__ volatile ("break 2" : : "D02"(r2), "D03"(r3) ALT_GMON_DATA ); + +#else /* !DEBUG_STUB */ + if (r2) { + ALT_SIM_FAIL(); + } else { + ALT_SIM_PASS(); + } +#endif /* DEBUG_STUB */ +} + +#define ALT_SIM_HALT(exit_code) \ + alt_sim_halt(exit_code) + +#endif /* __ALT_SIM_H__ */ diff --git a/software/qsys_tutorial_lcd_bsp/HAL/inc/sys/alt_stack.h b/software/qsys_tutorial_lcd_bsp/HAL/inc/sys/alt_stack.h new file mode 100644 index 0000000..e30652a --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/HAL/inc/sys/alt_stack.h @@ -0,0 +1,126 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#ifndef __ALT_STACK_H__ +#define __ALT_STACK_H__ + +/* + * alt_stack.h is the nios2 specific implementation of functions used by the + * stack overflow code. + */ + +#include "nios2.h" + +#include "alt_types.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + + +extern char * alt_stack_limit_value; + +#ifdef ALT_EXCEPTION_STACK +extern char __alt_exception_stack_pointer[]; /* set by the linker */ +#endif /* ALT_EXCEPTION_STACK */ + + +/* + * alt_stack_limit can be called to determine the current value of the stack + * limit register. + */ + +static ALT_INLINE char * ALT_ALWAYS_INLINE alt_stack_limit (void) +{ + char * limit; + NIOS2_READ_ET(limit); + + return limit; +} + +/* + * alt_stack_pointer can be called to determine the current value of the stack + * pointer register. + */ + +static ALT_INLINE char * ALT_ALWAYS_INLINE alt_stack_pointer (void) +{ + char * pointer; + NIOS2_READ_SP(pointer); + + return pointer; +} + + +#ifdef ALT_EXCEPTION_STACK + +/* + * alt_exception_stack_pointer returns the normal stack pointer from + * where it is stored on the exception stack (uppermost 4 bytes). This + * is really only useful during exception processing, and is only + * available if a separate exception stack has been configured. + */ + +static ALT_INLINE char * ALT_ALWAYS_INLINE alt_exception_stack_pointer (void) +{ + return (char *) *(alt_u32 *)(__alt_exception_stack_pointer - sizeof(alt_u32)); +} + +#endif /* ALT_EXCEPTION_STACK */ + + +/* + * alt_set_stack_limit can be called to update the current value of the stack + * limit register. + */ + +static ALT_INLINE void ALT_ALWAYS_INLINE alt_set_stack_limit (char * limit) +{ + alt_stack_limit_value = limit; + NIOS2_WRITE_ET(limit); +} + +/* + * alt_report_stack_overflow reports that a stack overflow happened. + */ + +static ALT_INLINE void ALT_ALWAYS_INLINE alt_report_stack_overflow (void) +{ + NIOS2_REPORT_STACK_OVERFLOW(); +} + + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __ALT_STACK_H__ */ + diff --git a/software/qsys_tutorial_lcd_bsp/HAL/inc/sys/alt_stdio.h b/software/qsys_tutorial_lcd_bsp/HAL/inc/sys/alt_stdio.h new file mode 100644 index 0000000..1730360 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/HAL/inc/sys/alt_stdio.h @@ -0,0 +1,62 @@ +#ifndef __ALT_STDIO_H__ +#define __ALT_STDIO_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +/* + * Definitions for ALT stdio routines. + */ + +#include + + +#ifdef __cplusplus +extern "C" { +#endif + +int alt_getchar(); +int alt_putchar(int c); +int alt_putstr(const char* str); +void alt_printf(const char *fmt, ...); + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_STDIO_H__ */ diff --git a/software/qsys_tutorial_lcd_bsp/HAL/inc/sys/alt_sys_init.h b/software/qsys_tutorial_lcd_bsp/HAL/inc/sys/alt_sys_init.h new file mode 100644 index 0000000..e4abc28 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/HAL/inc/sys/alt_sys_init.h @@ -0,0 +1,62 @@ +#ifndef __ALT_SYS_INIT_H__ +#define __ALT_SYS_INIT_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * The function alt_sys_init() is defined within the auto-generated file: + * alt_sys_init.c. This function calls the initilisation macros for all + * devices, file systems, and software components within the system. + * + * The list of initilisation macros to use is constructed using the PTF and + * STF files associated with the system. + */ + +extern void alt_sys_init (void); + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_SYS_INIT_H__ */ diff --git a/software/qsys_tutorial_lcd_bsp/HAL/inc/sys/alt_sys_wrappers.h b/software/qsys_tutorial_lcd_bsp/HAL/inc/sys/alt_sys_wrappers.h new file mode 100644 index 0000000..044833b --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/HAL/inc/sys/alt_sys_wrappers.h @@ -0,0 +1,100 @@ +#ifndef __ALT_SYS_WRAPPERS_H__ +#define __ALT_SYS_WRAPPERS_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/* + * This file provides the prototypes for the HAL 'UNIX style functions. The + * names of these functions are defined in alt_syscall.h. THese are defined to + * be the standard names when running the standalone HAL, e.g. open(), close() + * etc., but the names may be redefined as a part of an operating system port + * in order to avoid name clashes. + */ + +#include "os/alt_syscall.h" + +#include +#include +#include +#include +#include +#include + +extern int ALT_CLOSE (int __fd); +extern int ALT_EXECVE (const char *__path, + char * const __argv[], + char * const __envp[]); +extern void ALT_EXIT (int __status); +extern int ALT_FSTAT (int file, struct stat *st); +extern int ALT_FCNTL (int file, int cmd, ...); +extern pid_t ALT_FORK (void); +extern pid_t ALT_GETPID (void); + +#if defined (__GNUC__) && __GNUC__ >= 4 +extern int ALT_GETTIMEOFDAY (struct timeval *ptimeval, + void *ptimezone); +#else +extern int ALT_GETTIMEOFDAY (struct timeval *ptimeval, + struct timezone *ptimezone); +#endif + +extern int ALT_IOCTL (int file, int req, void* arg); +extern int ALT_ISATTY (int file); +extern int ALT_KILL (int pid, int sig); +extern int ALT_LINK (const char *existing, const char *new); +extern off_t ALT_LSEEK (int file, off_t ptr, int dir); +extern int ALT_OPEN (const char* file, int flags, ...); +extern int ALT_READ (int file, void *ptr, size_t len); +extern int ALT_RENAME (char *existing, char *new); +extern void* ALT_SBRK (ptrdiff_t incr); +extern int ALT_SETTIMEOFDAY (const struct timeval *t, + const struct timezone *tz); +extern int ALT_STAT (const char *file, struct stat *st); +extern clock_t ALT_TIMES (struct tms *buf); +extern int ALT_UNLINK (const char *name); + +#if defined (__GNUC__) && __GNUC__ >= 4 +int ALT_USLEEP (useconds_t us); +#else +unsigned int ALT_USLEEP (unsigned int us); +#endif + +extern int ALT_WAIT (int *status); +extern int ALT_WRITE (int file, const void *ptr, size_t len); + + +extern char** ALT_ENVIRON; + +/* + * + */ + +#endif /* __ALT_SYS_WRAPPERS_H__ */ diff --git a/software/qsys_tutorial_lcd_bsp/HAL/inc/sys/alt_timestamp.h b/software/qsys_tutorial_lcd_bsp/HAL/inc/sys/alt_timestamp.h new file mode 100644 index 0000000..8a18da2 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/HAL/inc/sys/alt_timestamp.h @@ -0,0 +1,60 @@ +#ifndef __ALT_TIMESTAMP_H__ +#define __ALT_TIMESTAMP_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#include "alt_types.h" +#include "altera_avalon_timer.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +extern int alt_timestamp_start (void); + +extern alt_timestamp_type alt_timestamp (void); + +extern alt_u32 alt_timestamp_freq (void); + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_TIMESTAMP_H__ */ diff --git a/software/qsys_tutorial_lcd_bsp/HAL/inc/sys/alt_warning.h b/software/qsys_tutorial_lcd_bsp/HAL/inc/sys/alt_warning.h new file mode 100644 index 0000000..b66e71a --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/HAL/inc/sys/alt_warning.h @@ -0,0 +1,75 @@ +#ifndef __WARNING_H__ +#define __WARNING_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/* + * alt_warning.h provides macro definitions that can be used to generate link + * time warnings. + */ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * The symbol "__alt_invalid" is used to force a link error. There should be + * no corresponding implementation of this function. + */ + +extern void __alt_invalid (void); + +#define ALT_LINK_WARNING(symbol, msg) \ + __asm__(".ifndef __evoke_link_warning_" #symbol \ + "\n\t .section .gnu.warning." #symbol \ + "\n__evoke_link_warning_" #symbol ":\n\t .string \x22" msg "\x22 \n\t .previous" \ + "\n .endif"); + +/* A canned warning for sysdeps/stub functions. */ + +#define ALT_STUB_WARNING(name) \ + ALT_LINK_WARNING (name, \ + "warning: " #name " is not implemented and will always fail") + +#define ALT_OBSOLETE_FUNCTION_WARNING(name) \ + ALT_LINK_WARNING (name, \ + "warning: " #name " is a deprecated function") + +#define ALT_LINK_ERROR(msg) \ + ALT_LINK_WARNING (__alt_invalid, msg); \ + __alt_invalid() + +#ifdef __cplusplus +} +#endif + +#endif /* __WARNING_H__ */ diff --git a/software/qsys_tutorial_lcd_bsp/HAL/inc/sys/ioctl.h b/software/qsys_tutorial_lcd_bsp/HAL/inc/sys/ioctl.h new file mode 100644 index 0000000..4d565df --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/HAL/inc/sys/ioctl.h @@ -0,0 +1,90 @@ +#ifndef __IOCTL_H__ +#define __IOCTL_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * The ioctl() system call be used to initiate a variety of control operations + * on a file descriptor. For the most part this simply translates to a call to + * the ioctl() function of the associated device driver (TIOCEXCL and + * TIOCNXCL are notable exceptions - see ioctl.c for details). + * + * The interpretation of the ioctl requests are therefore device specific. + * + * This function is equivalent to the standard Posix ioctl() call. + */ + +extern int ioctl (int fd, int req, void* arg); + +/* + * list of ioctl calls handled by the system ioctl implementation. + */ + +#define TIOCEXCL 0x740d /* exclusive use of the device */ +#define TIOCNXCL 0x740e /* allow multiple use of the device */ + +/* + * ioctl calls which can be handled by device drivers. + */ + +#define TIOCOUTQ 0x7472 /* get output queue size */ +#define TIOCMGET 0x741d /* get termios flags */ +#define TIOCMSET 0x741a /* set termios flags */ + +/* + * ioctl calls specific to JTAG UART. + */ + +#define TIOCSTIMEOUT 0x6a01 /* Set Timeout before assuming no host present */ +#define TIOCGCONNECTED 0x6a02 /* Get indication of whether host is connected */ + +/* + * + */ + +#ifdef __cplusplus +} +#endif + +#endif /* __IOCTL_H__ */ diff --git a/software/qsys_tutorial_lcd_bsp/HAL/inc/sys/termios.h b/software/qsys_tutorial_lcd_bsp/HAL/inc/sys/termios.h new file mode 100644 index 0000000..cd09539 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/HAL/inc/sys/termios.h @@ -0,0 +1,181 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +/* + * This is the termios.h file provided with newlib. The only modification has + * been to the baud rate macro definitions, and an increase in the size of the + * termios structure to accomodate this. + */ + + +#ifndef _SYS_TERMIOS_H +# define _SYS_TERMIOS_H + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +# define _XCGETA (('x'<<8)|1) +# define _XCSETA (('x'<<8)|2) +# define _XCSETAW (('x'<<8)|3) +# define _XCSETAF (('x'<<8)|4) +# define _TCSBRK (('T'<<8)|5) +# define _TCFLSH (('T'<<8)|7) +# define _TCXONC (('T'<<8)|6) + +# define TCOOFF 0 +# define TCOON 1 +# define TCIOFF 2 +# define TCION 3 + +# define TCIFLUSH 0 +# define TCOFLUSH 1 +# define TCIOFLUSH 2 + +# define NCCS 13 + +# define TCSAFLUSH _XCSETAF +# define TCSANOW _XCSETA +# define TCSADRAIN _XCSETAW +# define TCSADFLUSH _XCSETAF + +# define IGNBRK 000001 +# define BRKINT 000002 +# define IGNPAR 000004 +# define INPCK 000020 +# define ISTRIP 000040 +# define INLCR 000100 +# define IGNCR 000200 +# define ICRNL 000400 +# define IXON 002000 +# define IXOFF 010000 + +# define OPOST 000001 +# define OCRNL 000004 +# define ONLCR 000010 +# define ONOCR 000020 +# define TAB3 014000 + +# define CLOCAL 004000 +# define CREAD 000200 +# define CSIZE 000060 +# define CS5 0 +# define CS6 020 +# define CS7 040 +# define CS8 060 +# define CSTOPB 000100 +# define HUPCL 002000 +# define PARENB 000400 +# define PAODD 001000 + +#define CCTS_OFLOW 010000 +#define CRTS_IFLOW 020000 +#define CRTSCTS (CCTS_OFLOW | CRTS_IFLOW) + +# define ECHO 0000010 +# define ECHOE 0000020 +# define ECHOK 0000040 +# define ECHONL 0000100 +# define ICANON 0000002 +# define IEXTEN 0000400 /* anybody know *what* this does?! */ +# define ISIG 0000001 +# define NOFLSH 0000200 +# define TOSTOP 0001000 + +# define VEOF 4 /* also VMIN -- thanks, AT&T */ +# define VEOL 5 /* also VTIME -- thanks again */ +# define VERASE 2 +# define VINTR 0 +# define VKILL 3 +# define VMIN 4 /* also VEOF */ +# define VQUIT 1 +# define VSUSP 10 +# define VTIME 5 /* also VEOL */ +# define VSTART 11 +# define VSTOP 12 + +# define B0 0 +# define B50 50 +# define B75 75 +# define B110 110 +# define B134 134 +# define B150 150 +# define B200 200 +# define B300 300 +# define B600 600 +# define B1200 1200 +# define B1800 1800 +# define B2400 2400 +# define B4800 4800 +# define B9600 9600 +# define B19200 19200 +# define B38400 38400 +# define B57600 57600 +# define B115200 115200 + +typedef unsigned char cc_t; +typedef unsigned short tcflag_t; +typedef unsigned long speed_t; + +struct termios { + tcflag_t c_iflag; + tcflag_t c_oflag; + tcflag_t c_cflag; + tcflag_t c_lflag; + char c_line; + cc_t c_cc[NCCS]; + speed_t c_ispeed; + speed_t c_ospeed; +}; + +# ifndef _NO_MACROS + +# define cfgetospeed(tp) ((tp)->c_ospeed) +# define cfgetispeed(tp) ((tp)->c_ispeed) +# define cfsetospeed(tp,s) (((tp)->c_ospeed = (s)), 0) +# define cfsetispeed(tp,s) (((tp)->c_ispeed = (s)), 0) +# define tcdrain(fd) _ioctl (fd, _TCSBRK, 1) +# endif /* _NO_MACROS */ + +#ifdef __cplusplus +} +#endif + +#endif /* _SYS_TERMIOS_H */ + diff --git a/software/qsys_tutorial_lcd_bsp/HAL/src/alt_alarm_start.c b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_alarm_start.c new file mode 100644 index 0000000..7739959 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_alarm_start.c @@ -0,0 +1,112 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +#include "sys/alt_alarm.h" +#include "sys/alt_irq.h" + +/* + * alt_alarm_start is called to register an alarm with the system. The + * "alarm" structure passed as an input argument does not need to be + * initialised by the user. This is done within this function. + * + * The remaining input arguments are: + * + * nticks - The time to elapse until the alarm executes. This is specified in + * system clock ticks. + * callback - The function to run when the indicated time has elapsed. + * context - An opaque value, passed to the callback function. +* + * Care should be taken when defining the callback function since it is + * likely to execute in interrupt context. In particular, this mean that + * library calls like printf() should not be made, since they can result in + * deadlock. + * + * The interval to be used for the next callback is the return + * value from the callback function. A return value of zero indicates that the + * alarm should be unregistered. + * + * alt_alarm_start() will fail if the timer facility has not been enabled + * (i.e. there is no system clock). Failure is indicated by a negative return + * value. + */ + +int alt_alarm_start (alt_alarm* alarm, alt_u32 nticks, + alt_u32 (*callback) (void* context), + void* context) +{ + alt_irq_context irq_context; + alt_u32 current_nticks = 0; + + if (alt_ticks_per_second ()) + { + if (alarm) + { + alarm->callback = callback; + alarm->context = context; + + irq_context = alt_irq_disable_all (); + + current_nticks = alt_nticks(); + + alarm->time = nticks + current_nticks + 1; + + /* + * If the desired alarm time causes a roll-over, set the rollover + * flag. This will prevent the subsequent tick event from causing + * an alarm too early. + */ + if(alarm->time < current_nticks) + { + alarm->rollover = 1; + } + else + { + alarm->rollover = 0; + } + + alt_llist_insert (&alt_alarm_list, &alarm->llist); + alt_irq_enable_all (irq_context); + + return 0; + } + else + { + return -EINVAL; + } + } + else + { + return -ENOTSUP; + } +} diff --git a/software/qsys_tutorial_lcd_bsp/HAL/src/alt_busy_sleep.c b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_busy_sleep.c new file mode 100644 index 0000000..561c0be --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_busy_sleep.c @@ -0,0 +1,133 @@ +/* + * Copyright (c) 2003-2004 Altera Corporation, San Jose, California, USA. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + * ------------ + * + * Altera does not recommend, suggest or require that this reference design + * file be used in conjunction or combination with any other product. + * + * alt_busy_sleep.c - Microsecond delay routine which uses a calibrated busy + * loop to perform the delay. This is used to implement + * usleep for both uC/OS-II and the standalone HAL. + * + * Author PRR + * + * Calibrated delay with no timer required + * + * The ASM instructions in the routine are equivalent to + * + * for (i=0;i +#include + +#include "system.h" +#include "alt_types.h" + +#include "priv/alt_busy_sleep.h" + +unsigned int alt_busy_sleep (unsigned int us) +{ +/* + * Only delay if ALT_SIM_OPTIMIZE is not defined; i.e., if software + * is built targetting ModelSim RTL simulation, the delay will be + * skipped to speed up simulation. + */ +#ifndef ALT_SIM_OPTIMIZE + int i; + int big_loops; + alt_u32 cycles_per_loop; + + if (!strcmp(NIOS2_CPU_IMPLEMENTATION,"tiny")) + { + cycles_per_loop = 9; + } + else + { + cycles_per_loop = 3; + } + + + big_loops = us / (INT_MAX/ + (ALT_CPU_FREQ/(cycles_per_loop * 1000000))); + + if (big_loops) + { + for(i=0;i + +#include "sys/alt_errno.h" +#include "sys/alt_warning.h" +#include "priv/alt_file.h" +#include "os/alt_syscall.h" + +#ifdef ALT_USE_DIRECT_DRIVERS + +int ALT_CLOSE (int fildes) +{ + /* Generate a link time warning, should this function ever be called. */ + + ALT_STUB_WARNING(close); + + /* Indicate an error */ + + ALT_ERRNO = ENOSYS; + return -1; +} + +#else /* !ALT_USE_DIRECT_DRIVERS */ + +/* + * close() is called by an application to release a file descriptor. If the + * associated file system/device has a close() callback function registered + * then this called. The file descriptor is then marked as free. + * + * ALT_CLOSE is mapped onto the close() system call in alt_syscall.h + */ + +int ALT_CLOSE (int fildes) +{ + alt_fd* fd; + int rval; + + /* + * A common error case is that when the file descriptor was created, the call + * to open() failed resulting in a negative file descriptor. This is trapped + * below so that we don't try and process an invalid file descriptor. + */ + + fd = (fildes < 0) ? NULL : &alt_fd_list[fildes]; + + if (fd) + { + /* + * If the associated file system/device has a close function, call it so + * that any necessary cleanup code can run. + */ + + rval = (fd->dev->close) ? fd->dev->close(fd) : 0; + + /* Free the file descriptor structure and return. */ + + alt_release_fd (fildes); + if (rval < 0) + { + ALT_ERRNO = -rval; + return -1; + } + return 0; + } + else + { + ALT_ERRNO = EBADFD; + return -1; + } +} + +#endif /* ALT_USE_DIRECT_DRIVERS */ diff --git a/software/qsys_tutorial_lcd_bsp/HAL/src/alt_dcache_flush.c b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_dcache_flush.c new file mode 100644 index 0000000..7ecc91a --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_dcache_flush.c @@ -0,0 +1,97 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003-2005 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "nios2.h" +#include "system.h" + +#include "alt_types.h" +#include "sys/alt_cache.h" + +/* + * Nios II version 1.2 and newer supports the "flush by address" instruction, in + * addition to the "flush by line" instruction provided by older versions of + * the core. This newer instruction is used by preference when it is + * available. + */ + +#ifdef NIOS2_FLUSHDA_SUPPORTED +#define ALT_FLUSH_DATA(i) __asm__ volatile ("flushda (%0)" :: "r" (i)); +#else +#define ALT_FLUSH_DATA(i) __asm__ volatile ("flushd (%0)" :: "r" (i)); +#endif /* NIOS2_FLUSHDA_SUPPORTED */ + +/* + * alt_dcache_flush() is called to flush the data cache for a memory + * region of length "len" bytes, starting at address "start". + * + * Any dirty lines in the data cache are written back to memory. + */ + +void alt_dcache_flush (void* start, alt_u32 len) +{ +#if NIOS2_DCACHE_SIZE > 0 + + char* i; + char* end; + + /* + * This is the most we would ever need to flush. + * + * SPR 196942, 2006.01.13: The cache flush loop below will use the + * 'flushda' instruction if its available; in that case each line + * must be flushed individually, and thus 'len' cannot be trimmed. + */ + #ifndef NIOS2_FLUSHDA_SUPPORTED + if (len > NIOS2_DCACHE_SIZE) + { + len = NIOS2_DCACHE_SIZE; + } + #endif + + end = ((char*) start) + len; + + for (i = start; i < end; i+= NIOS2_DCACHE_LINE_SIZE) + { + ALT_FLUSH_DATA(i); + } + + /* + * For an unaligned flush request, we've got one more line left. + * Note that this is dependent on NIOS2_DCACHE_LINE_SIZE to be a + * multiple of 2 (which it always is). + */ + + if (((alt_u32) start) & (NIOS2_DCACHE_LINE_SIZE - 1)) + { + ALT_FLUSH_DATA(i); + } + +#endif /* NIOS2_DCACHE_SIZE > 0 */ +} diff --git a/software/qsys_tutorial_lcd_bsp/HAL/src/alt_dcache_flush_all.c b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_dcache_flush_all.c new file mode 100644 index 0000000..6529231 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_dcache_flush_all.c @@ -0,0 +1,51 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003-2005 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "nios2.h" +#include "system.h" + +#include "alt_types.h" +#include "sys/alt_cache.h" + +/* + * alt_dcache_flush_all() is called to flush the entire data cache. + */ + +void alt_dcache_flush_all (void) +{ +#if NIOS2_DCACHE_SIZE > 0 + char* i; + + for (i = (char*) 0; i < (char*) NIOS2_DCACHE_SIZE; i+= NIOS2_DCACHE_LINE_SIZE) + { + __asm__ volatile ("flushd (%0)" :: "r" (i)); + } +#endif /* NIOS2_DCACHE_SIZE > 0 */ +} diff --git a/software/qsys_tutorial_lcd_bsp/HAL/src/alt_dcache_flush_no_writeback.c b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_dcache_flush_no_writeback.c new file mode 100644 index 0000000..c65ca7d --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_dcache_flush_no_writeback.c @@ -0,0 +1,88 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2007 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "nios2.h" +#include "system.h" + +#include "alt_types.h" +#include "sys/alt_cache.h" + +/* + * The INITDA instruction was added to Nios II in the 8.0 release. + * + * The INITDA instruction has one of the following possible behaviors + * depending on the processor configuration: + * 1) Flushes a line by address but does NOT write back dirty data. + * Occurs when a data cache is present that supports INITDA. + * The macro NIOS2_INITDA_SUPPORTED is defined in system.h. + * 2) Takes an unimplemented instruction exception. + * Occurs when a data cache is present that doesn't support INITDA. + * 3) Performs no operation + * Occurs when there is no data cache present. + * The macro NIOS2_DCACHE_SIZE is 0 in system.h. + */ + +#define ALT_FLUSH_DATA_NO_WRITEBACK(i) \ + __asm__ volatile ("initda (%0)" :: "r" (i)); + +/* + * alt_dcache_flush_no_writeback() is called to flush the data cache for a + * memory region of length "len" bytes, starting at address "start". + * + * Any dirty lines in the data cache are NOT written back to memory. + * Make sure you really want this behavior. If you aren't 100% sure, + * use the alt_dcache_flush() routine instead. + */ + +void alt_dcache_flush_no_writeback (void* start, alt_u32 len) +{ +#if defined(NIOS2_INITDA_SUPPORTED) + + char* i; + char* end = ((char*) start) + len; + + for (i = start; i < end; i+= NIOS2_DCACHE_LINE_SIZE) + { + ALT_FLUSH_DATA_NO_WRITEBACK(i); + } + + /* + * For an unaligned flush request, we've got one more line left. + * Note that this is dependent on NIOS2_DCACHE_LINE_SIZE to be a + * multiple of 2 (which it always is). + */ + + if (((alt_u32) start) & (NIOS2_DCACHE_LINE_SIZE - 1)) + { + ALT_FLUSH_DATA_NO_WRITEBACK(i); + } + +#endif /* NIOS2_INITDA_SUPPORTED */ +} diff --git a/software/qsys_tutorial_lcd_bsp/HAL/src/alt_dev.c b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_dev.c new file mode 100644 index 0000000..ebc15e5 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_dev.c @@ -0,0 +1,149 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include +#include +#include +#include + +#include "sys/alt_dev.h" +#include "priv/alt_file.h" + +#include "alt_types.h" + +#include "system.h" + +/* + * This file contains the data constructs used to control access to device and + * filesytems. + */ + +/* + * "alt_fs_list" is the head of a linked list of registered filesystems. It is + * initialised as an empty list. New entries can be added using the + * alt_fs_reg() function. + */ + +ALT_LLIST_HEAD(alt_fs_list); + + +/* + * "alt_dev_list" is the head of a linked list of registered devices. It is + * configured at startup to include a single device, "alt_dev_null". This + * device is discussed below. + */ + +extern alt_dev alt_dev_null; /* forward declaration */ + +alt_llist alt_dev_list = {&alt_dev_null.llist, &alt_dev_null.llist}; + +/* + * alt_dev_null_write() is the implementation of the write() function used + * by the alt_dev_null device. It simple discards all data passed to it, and + * indicates that the data has been successfully transmitted. + */ + +static int alt_dev_null_write (alt_fd* fd, const char* ptr, int len) +{ + return len; +} + +/* + * "alt_dev_null" is used to allow output to be redirected to nowhere. It is + * the only device registered before the call to alt_sys_init(). At startup + * stin, stdout & stderr are all directed towards this device so that library + * calls like printf() will be safe but inefectual. + */ + +alt_dev alt_dev_null = { + { + &alt_dev_list, + &alt_dev_list + }, + "/dev/null", + NULL, /* open */ + NULL, /* close */ + NULL, /* write */ + alt_dev_null_write, /* write */ + NULL, /* lseek */ + NULL, /* fstat */ + NULL /* ioctl */ + }; + +/* + * "alt_fd_list_lock" is a semaphore used to control access to the file + * descriptor list. This is used to ensure that access to the list is thread + * safe. + */ + +ALT_SEM(alt_fd_list_lock) + +/* + * "alt_max_fd" is used to make access to the file descriptor list more + * efficent. It is set to be the value of the highest allocated file + * descriptor. This saves having to search the entire pool of unallocated + * file descriptors when looking for a match. + */ + +alt_32 alt_max_fd = -1; + +/* + * "alt_fd_list" is the file descriptor pool. The first three entries in the + * array are configured as standard in, standard out, and standard error. These + * are all initialised so that accesses are directed to the alt_dev_null + * device. The remaining file descriptors are initialised as unallocated. + * + * The maximum number of file descriptors within the system is specified by the + * user defined macro "ALT_MAX_FD". This is defined in "system.h", which is + * auto-genereated using the projects PTF and STF files. + */ + +alt_fd alt_fd_list[ALT_MAX_FD] = + { + { + &alt_dev_null, /* standard in */ + 0, + 0 + }, + { + &alt_dev_null, /* standard out */ + 0, + 0 + }, + { + &alt_dev_null, /* standard error */ + 0, + 0 + } + /* all other elements are set to zero */ + }; diff --git a/software/qsys_tutorial_lcd_bsp/HAL/src/alt_dev_llist_insert.c b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_dev_llist_insert.c new file mode 100644 index 0000000..fa7239d --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_dev_llist_insert.c @@ -0,0 +1,59 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "priv/alt_dev_llist.h" +#include "sys/alt_errno.h" + +/* + * + */ + +int alt_dev_llist_insert (alt_dev_llist* dev, alt_llist* list) +{ + /* + * check that the device exists, and that it has a valid name. + */ + + if (!dev || !dev->name) + { + ALT_ERRNO = EINVAL; + return -EINVAL; + } + + /* + * register the device. + */ + + alt_llist_insert(list, &dev->llist); + + return 0; +} diff --git a/software/qsys_tutorial_lcd_bsp/HAL/src/alt_dma_rxchan_open.c b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_dma_rxchan_open.c new file mode 100644 index 0000000..6ea3b78 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_dma_rxchan_open.c @@ -0,0 +1,63 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_dma.h" +#include "sys/alt_errno.h" +#include "priv/alt_file.h" + +/* + * The list of registered DMA receive channels. + */ + +ALT_LLIST_HEAD(alt_dma_rxchan_list); + +/* + * alt_dma_txchan_open() is used to obtain an "alt_dma_txchan" descriptor for + * a DMA transmit device. The name is the name of the associated physical + * device (e.g. "/dev/dma_0"). + * + * The return value will be NULL on failure, and non-NULL otherwise. + */ + +alt_dma_rxchan alt_dma_rxchan_open (const char* name) +{ + alt_dma_rxchan dev; + + dev = (alt_dma_rxchan) alt_find_dev (name, &alt_dma_rxchan_list); + + if (!dev) + { + ALT_ERRNO = ENODEV; + } + + return dev; +} diff --git a/software/qsys_tutorial_lcd_bsp/HAL/src/alt_dma_txchan_open.c b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_dma_txchan_open.c new file mode 100644 index 0000000..f41fa81 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_dma_txchan_open.c @@ -0,0 +1,63 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_dma.h" +#include "sys/alt_errno.h" +#include "priv/alt_file.h" + +/* + * The list of registered receive channels. + */ + +ALT_LLIST_HEAD(alt_dma_txchan_list); + +/* + * alt_dma_txchan_open() is used to obtain an "alt_dma_txchan" descriptor for + * a DMA transmit device. The name is the name of the associated physical + * device (e.g. "/dev/dma_0"). + * + * The return value will be NULL on failure, and non-NULL otherwise. + */ + +alt_dma_txchan alt_dma_txchan_open (const char* name) +{ + alt_dma_txchan dev; + + dev = (alt_dma_txchan) alt_find_dev (name, &alt_dma_txchan_list); + + if (!dev) + { + ALT_ERRNO = ENODEV; + } + + return dev; +} diff --git a/software/qsys_tutorial_lcd_bsp/HAL/src/alt_do_ctors.c b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_do_ctors.c new file mode 100644 index 0000000..ff5a1f7 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_do_ctors.c @@ -0,0 +1,64 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT IT DIRECTLY. * +* * +* Overriding HAL Functions * +* * +* To provide your own implementation of a HAL function, include the file in * +* your Nios II IDE application project. When building the executable, the * +* Nios II IDE finds your function first, and uses it in place of the HAL * +* version. * +* * +******************************************************************************/ + +/* + * + */ + +typedef void (*constructor) (void); +extern constructor __CTOR_LIST__[]; +extern constructor __CTOR_END__[]; + +/* + * Run the C++ static constructors. + */ + +void _do_ctors(void) +{ + constructor* ctor; + + for (ctor = &__CTOR_END__[-1]; ctor >= __CTOR_LIST__; ctor--) + (*ctor) (); +} diff --git a/software/qsys_tutorial_lcd_bsp/HAL/src/alt_do_dtors.c b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_do_dtors.c new file mode 100644 index 0000000..565c99f --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_do_dtors.c @@ -0,0 +1,64 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT IT DIRECTLY. * +* * +* Overriding HAL Functions * +* * +* To provide your own implementation of a HAL function, include the file in * +* your Nios II IDE application project. When building the executable, the * +* Nios II IDE finds your function first, and uses it in place of the HAL * +* version. * +* * +******************************************************************************/ + +/* + * + */ + +typedef void (*destructor) (void); +extern destructor __DTOR_LIST__[]; +extern destructor __DTOR_END__[]; + +/* + * Run the C++ static destructors. + */ + +void _do_dtors(void) +{ + destructor* dtor; + + for (dtor = &__DTOR_END__[-1]; dtor >= __DTOR_LIST__; dtor--) + (*dtor) (); +} diff --git a/software/qsys_tutorial_lcd_bsp/HAL/src/alt_env_lock.c b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_env_lock.c new file mode 100644 index 0000000..fc25a0c --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_env_lock.c @@ -0,0 +1,53 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +/* + * These are the empty env lock/unlock stubs required by newlib. These are + * used to make accesses to environment variables thread safe. The default HAL + * configuration is single threaded, so there is nothing to do here. Note that + * this requires that environment variables are never manipulated by an interrupt + * service routine. + */ + +void __env_lock ( struct _reent *_r ) +{ +} + +/* + * + */ + +void __env_unlock ( struct _reent *_r ) +{ +} diff --git a/software/qsys_tutorial_lcd_bsp/HAL/src/alt_environ.c b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_environ.c new file mode 100644 index 0000000..404efc4 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_environ.c @@ -0,0 +1,42 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "os/alt_syscall.h" + +/* + * These are the environment variables passed to the C code. By default there + * are no variables registered. An application can manipulate this list using + * getenv() and setenv(). + */ + +char *__env[1] = { 0 }; +char **ALT_ENVIRON = __env; diff --git a/software/qsys_tutorial_lcd_bsp/HAL/src/alt_errno.c b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_errno.c new file mode 100644 index 0000000..1d8368d --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_errno.c @@ -0,0 +1,44 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/* + * This file defines the alt_errno global variable. See comments in + * alt_errno.h for the use of this variable. + */ + + +#include "sys/alt_errno.h" +#include "alt_types.h" + +extern int ALT_WEAK *__errno (void); + +int* (*alt_errno) (void) = __errno; diff --git a/software/qsys_tutorial_lcd_bsp/HAL/src/alt_exception_entry.S b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_exception_entry.S new file mode 100644 index 0000000..3afab93 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_exception_entry.S @@ -0,0 +1,360 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003-2008 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "system.h" + +/* + * This is the exception entry point code, which saves all the caller saved + * registers and then handles the appropriate exception. It should be pulled + * in using a .globl from all the exception handler routines. This scheme is + * used so that if an interrupt is never registered, then this code will not + * appear in the generated executable, thereby improving code footprint. + * + * If an external interrpt controller (EIC) is present, it will supply an + * interrupt vector address to the processor when an interrupt occurs. For + * The Altera Vectored Interrupt Controller (VIC) driver will establish a + * vector table and the processor will jump directly to the appropriate + * table entry, funnel routine, and then user ISR. This will bypass this code + * in entirety. This code might still be linked into a system with an EIC, + * but would then be used only for non-interrupt exceptions. + */ + + /* + * Explicitly allow the use of r1 (the assembler temporary register) + * within this code. This register is normally reserved for the use of + * the assembler. + */ + .set noat + + /* + * The top and bottom of the exception stack + */ +#ifdef ALT_EXCEPTION_STACK + + .globl __alt_exception_stack_pointer + +#ifdef ALT_STACK_CHECK + + .globl __alt_exception_stack_limit + + /* + * We need to store the value of the stack limit after interrupt somewhere. + */ + .globl alt_exception_old_stack_limit + +#endif +#endif + + .section .exceptions.entry.label, "xa" + + .globl alt_exception + .type alt_exception, @function +alt_exception: + + .section .exceptions.entry, "xa" + +#ifdef ALT_EXCEPTION_STACK + +#ifdef ALT_STACK_CHECK + stw et, %gprel(alt_exception_old_stack_limit)(gp) +#endif + + movhi et, %hiadj(__alt_exception_stack_pointer - 80) + addi et, et, %lo(__alt_exception_stack_pointer - 80) + stw sp, 76(et) + mov sp, et + +#ifdef ALT_STACK_CHECK + movhi et, %hiadj(__alt_exception_stack_limit) + addi et, et, %lo(__alt_exception_stack_limit) + stw et, %gprel(alt_stack_limit_value)(gp) +#endif + +#else + /* + * Process an exception. For all exceptions we must preserve all + * caller saved registers on the stack (See the Nios2 ABI + * documentation for details). + */ + + addi sp, sp, -76 + +#ifdef ALT_STACK_CHECK + + bltu sp, et, .Lstack_overflow + +#endif + +#endif + + stw ra, 0(sp) + + /* + * Leave a gap in the stack frame at 4(sp) for the muldiv handler to + * store zero into. + */ + + stw r1, 8(sp) + stw r2, 12(sp) + stw r3, 16(sp) + stw r4, 20(sp) + stw r5, 24(sp) + stw r6, 28(sp) + stw r7, 32(sp) + + rdctl r5, estatus + + stw r8, 36(sp) + stw r9, 40(sp) + stw r10, 44(sp) + stw r11, 48(sp) + stw r12, 52(sp) + stw r13, 56(sp) + stw r14, 60(sp) + stw r15, 64(sp) + + /* + * ea-4 contains the address of the instruction being executed + * when the exception occured. For interrupt exceptions, we will + * will be re-issue the isntruction. Store it in 72(sp) + */ + stw r5, 68(sp) /* estatus */ + addi r15, ea, -4 /* instruction that caused exception */ + stw r15, 72(sp) + + /* + * The interrupt testing code (.exceptions.irqtest) will be + * linked here. If the Internal Interrupt Controller (IIC) is + * present (an EIC is not present), the presense of an interrupt + * is determined by examining CPU control registers or an interrupt + * custom instruction, if present. + * + * If the IIC is used and an interrupt is active, the code linked + * here will call the HAL IRQ handler (alt_irq_handler()) which + * successively calls registered interrupt handler(s) until no + * interrupts remain pending. It then jumps to .exceptions.exit. If + * there is no interrupt then it continues to .exception.notirq, below. + */ + + .section .exceptions.notirq, "xa" + + /* + * Prepare to service unimplemtned instructions or traps, + * each of which is optionally inked into section .exceptions.soft, + * which will preceed .exceptions.unknown below. + * + * Unlike interrupts, we want to skip the exception-causing instructon + * upon completion, so we write ea (address of instruction *after* + * the one where the exception occured) into 72(sp). The actual + * instruction that caused the exception is written in r2, which these + * handlers will utilize. + */ + stw ea, 72(sp) /* Don't re-issue */ + ldw r2, -4(ea) /* Instruction that caused exception */ + + /* + * Other exception handling code, if enabled, will be linked here. + * This includes unimplemted (multiply/divide) instruction support + * (a BSP generaton option), and a trap handler (that would typically + * be augmented with user-specific code). These are not linked in by + * default. + */ + + /* + * In the context of linker sections, "unknown" are all exceptions + * not handled by the built-in handlers above (interupt, and trap or + * unimplemented instruction decoding, if enabled). + * + * Advanced exception types can be serviced by registering a handler. + * To do so, enable the "Enable Instruction-related Exception API" HAL + * BSP setting. If this setting is disabled, this handler code will + * either break (if the debug core is present) or enter an infinite + * loop because we don't how how to handle the exception. + */ + .section .exceptions.unknown +#ifdef ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API + /* + * The C-based HAL routine alt_instruction_exception_entry() will + * attempt to service the exception by calling a user-registered + * exception handler using alt_instruction_exception_register(). + * If no handler was registered it will either break (if the + * debugger is present) or go into an infinite loop since the + * handling behavior is undefined; in that case we will not return here. + */ + + /* Load exception-causing address as first argument (r4) */ + addi r4, ea, -4 + + /* Call the instruction-exception entry */ + call alt_instruction_exception_entry + + /* + * If alt_instruction_exception_entry() returned, the exception was + * serviced by a user-registered routine. Its return code (now in r2) + * indicates whether to re-issue or skip the exception-causing + * instruction + * + * Return code was 0: Skip. The instruction after the exception is + * already stored in 72(sp). + */ + bne r2, r0, .Lexception_exit + + /* + * Otherwise, modify 72(sp) to re-issue the instruction that caused the + * exception. + */ + addi r15, ea, -4 /* instruction that caused exception */ + stw r15, 72(sp) + +#else /* ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API disabled */ + + /* + * We got here because an instruction-related exception occured, but the + * handler API was not compiled in. We do not presume to know how to + * handle it. If the debugger is present, break, otherwise hang. + * + * If you get here then one of the following could have happened: + * + * - An instruction-generated exception occured, and the processor + * does not have the extra exceptions feature enabled, or you + * have not registered a handler using + * alt_instruction_exception_register() + * + * Some examples of instruction-generated exceptions and why they + * might occur: + * + * - Your program could have been compiled for a full-featured + * Nios II core, but it is running on a smaller core, and + * instruction emulation has been disabled by defining + * ALT_NO_INSTRUCTION_EMULATION. + * + * You can work around the problem by re-enabling instruction + * emulation, or you can figure out why your program is being + * compiled for a system other than the one that it is running on. + * + * - Your program has executed a trap instruction, but has not + * implemented a handler for this instruction. + * + * - Your program has executed an illegal instruction (one which is + * not defined in the instruction set). + * + * - Your processor includes an MMU or MPU, and you have enabled it + * before registering an exception handler to service exceptions it + * generates. + * + * The problem could also be hardware related: + * - If your hardware is broken and is generating spurious interrupts + * (a peripheral which negates its interrupt output before its + * interrupt handler has been executed will cause spurious + * interrupts) + */ +#ifdef NIOS2_HAS_DEBUG_STUB + /* + * Either tell the user now (if there is a debugger attached) or go into + * the debug monitor which will loop until a debugger is attached. + */ + break +#else + /* + * If there is no debug stub then a BREAK will probably cause a reboot. + * An infinate loop will probably be more useful. + */ +0: + br 0b +#endif /* NIOS2_HAS_DEBUG_STUB */ + +#endif /* ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API */ + + .section .exceptions.exit.label +.Lexception_exit: + + .section .exceptions.exit, "xa" + + /* + * Restore the saved registers, so that all general purpose registers + * have been restored to their state at the time the interrupt occured. + */ + + ldw r5, 68(sp) + ldw ea, 72(sp) /* This becomes the PC once eret is executed */ + ldw ra, 0(sp) + + wrctl estatus, r5 + + ldw r1, 8(sp) + ldw r2, 12(sp) + ldw r3, 16(sp) + ldw r4, 20(sp) + ldw r5, 24(sp) + ldw r6, 28(sp) + ldw r7, 32(sp) + +#ifdef ALT_EXCEPTION_STACK +#ifdef ALT_STACK_CHECK + ldw et, %gprel(alt_exception_old_stack_limit)(gp) +#endif +#endif + + ldw r8, 36(sp) + ldw r9, 40(sp) + ldw r10, 44(sp) + ldw r11, 48(sp) + ldw r12, 52(sp) + ldw r13, 56(sp) + ldw r14, 60(sp) + ldw r15, 64(sp) + +#ifdef ALT_EXCEPTION_STACK + +#ifdef ALT_STACK_CHECK + stw et, %gprel(alt_stack_limit_value)(gp) + stw zero, %gprel(alt_exception_old_stack_limit)(gp) +#endif + + ldw sp, 76(sp) + +#else + addi sp, sp, 76 + +#endif + + /* + * Return to the interrupted instruction. + */ + + eret + +#ifdef ALT_STACK_CHECK + +.Lstack_overflow: + break 3 + +#endif + diff --git a/software/qsys_tutorial_lcd_bsp/HAL/src/alt_exception_muldiv.S b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_exception_muldiv.S new file mode 100644 index 0000000..55617a6 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_exception_muldiv.S @@ -0,0 +1,583 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003-2005 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + + /* + * This is the software multiply/divide handler for Nios2. + */ + + /* + * Provide a label which can be used to pull this file in. + */ + + .section .exceptions.start + .globl alt_exception_muldiv +alt_exception_muldiv: + + /* + * Pull in the entry/exit code. + */ + .globl alt_exception + + + .section .exceptions.soft, "xa" + + + /* INSTRUCTION EMULATION + * --------------------- + * + * Nios II processors generate exceptions for unimplemented instructions. + * The routines below emulate these instructions. Depending on the + * processor core, the only instructions that might need to be emulated + * are div, divu, mul, muli, mulxss, mulxsu, and mulxuu. + * + * The emulations match the instructions, except for the following + * limitations: + * + * 1) The emulation routines do not emulate the use of the exception + * temporary register (et) as a source operand because the exception + * handler already has modified it. + * + * 2) The routines do not emulate the use of the stack pointer (sp) or the + * exception return address register (ea) as a destination because + * modifying these registers crashes the exception handler or the + * interrupted routine. + * + * 3) To save code size, the routines do not emulate the use of the + * breakpoint registers (ba and bt) as operands. + * + * Detailed Design + * --------------- + * + * The emulation routines expect the contents of integer registers r0-r31 + * to be on the stack at addresses sp, 4(sp), 8(sp), ... 124(sp). The + * routines retrieve source operands from the stack and modify the + * destination register's value on the stack prior to the end of the + * exception handler. Then all registers except the destination register + * are restored to their previous values. + * + * The instruction that causes the exception is found at address -4(ea). + * The instruction's OP and OPX fields identify the operation to be + * performed. + * + * One instruction, muli, is an I-type instruction that is identified by + * an OP field of 0x24. + * + * muli AAAAA,BBBBB,IIIIIIIIIIIIIIII,-0x24- + * 27 22 6 0 <-- LSB of field + * + * The remaining emulated instructions are R-type and have an OP field + * of 0x3a. Their OPX fields identify them. + * + * R-type AAAAA,BBBBB,CCCCC,XXXXXX,NNNNN,-0x3a- + * 27 22 17 11 6 0 <-- LSB of field + * + * + */ + + + /* + * Split the instruction into its fields. We need 4*A, 4*B, and 4*C as + * offsets to the stack pointer for access to the stored register values. + */ + /* r2 = AAAAA,BBBBB,IIIIIIIIIIIIIIII,PPPPPP */ + roli r3, r2, 7 /* r3 = BBB,IIIIIIIIIIIIIIII,PPPPPP,AAAAA,BB */ + roli r4, r3, 3 /* r4 = IIIIIIIIIIIIIIII,PPPPPP,AAAAA,BBBBB */ + roli r6, r4, 2 /* r6 = IIIIIIIIIIIIII,PPPPPP,AAAAA,BBBBB,II */ + srai r4, r4, 16 /* r4 = (sign-extended) IMM16 */ + xori r6, r6, 0x42 /* r6 = CCC,XXXXXX,NNNNN,PPPPPP,AAAAA,bBBBB,cC */ + roli r7, r6, 5 /* r7 = XXXX,NNNNN,PPPPPP,AAAAA,bBBBB,cCCCC,XX */ + andi r5, r2, 0x3f /* r5 = 00000000000000000000000000,PPPPPP */ + xori r3, r3, 0x40 + andi r3, r3, 0x7c /* r3 = 0000000000000000000000000,aAAAA,00 */ + andi r6, r6, 0x7c /* r6 = 0000000000000000000000000,bBBBB,00 */ + andi r7, r7, 0x7c /* r7 = 0000000000000000000000000,cCCCC,00 */ + + /* Now either + * r5 = OP + * r3 = 4*(A^16) + * r4 = IMM16 (sign extended) + * r6 = 4*(B^16) + * r7 = 4*(C^16) + * or + * r5 = OP + */ + + + /* + * Save everything on the stack to make it easy for the emulation routines + * to retrieve the source register operands. The exception entry code has + * already saved some of this so we don't need to do it all again. + */ + + addi sp, sp, -60 + stw zero, 64(sp) /* Save zero on stack to avoid special case for r0. */ + /* Register at and r2-r15 have already been saved. */ + + stw r16, 0(sp) + stw r17, 4(sp) + stw r18, 8(sp) + stw r19, 12(sp) + stw r20, 16(sp) + stw r21, 20(sp) + stw r22, 24(sp) + stw r23, 28(sp) + /* et @ 32 - Has already been changed.*/ + /* bt @ 36 - Usually isn't an operand. */ + stw gp, 40(sp) + stw sp, 44(sp) + stw fp, 48(sp) + /* ea @ 52 - Don't bother to save - it's already been changed */ + /* ba @ 56 - Breakpoint register usually isn't an operand */ + /* ra @ 60 - Has already been saved */ + + + /* + * Prepare for either multiplication or division loop. + * They both loop 32 times. + */ + movi r14, 32 + + + /* + * Get the operands. + * + * It is necessary to check for muli because it uses an I-type instruction + * format, while the other instructions are have an R-type format. + */ + add r3, r3, sp /* r3 = address of A-operand. */ + ldw r3, 0(r3) /* r3 = A-operand. */ + movi r15, 0x24 /* muli opcode (I-type instruction format) */ + beq r5, r15, .Lmul_immed /* muli doesn't use the B register as a source */ + + add r6, r6, sp /* r6 = address of B-operand. */ + ldw r6, 0(r6) /* r6 = B-operand. */ + /* r4 = SSSSSSSSSSSSSSSS,-----IMM16------ */ + /* IMM16 not needed, align OPX portion */ + /* r4 = SSSSSSSSSSSSSSSS,CCCCC,-OPX--,00000 */ + srli r4, r4, 5 /* r4 = 00000,SSSSSSSSSSSSSSSS,CCCCC,-OPX-- */ + andi r4, r4, 0x3f /* r4 = 00000000000000000000000000,-OPX-- */ + + /* Now + * r5 = OP + * r3 = src1 + * r6 = src2 + * r4 = OPX (no longer can be muli) + * r7 = 4*(C^16) + * r14 = loop counter + */ + + /* ILLEGAL-INSTRUCTION EXCEPTION + * ----------------------------- + * + * This code is for Nios II cores that generate exceptions when attempting + * to execute illegal instructions. Nios II cores that support an + * illegal-instruction exception are identified by the presence of the + * macro definition NIOS2_HAS_ILLEGAL_INSTRUCTION_EXCEPTION in system.h . + * + * Remember that illegal instructions are different than unimplemented + * instructions. Illegal instructions are instruction encodings that + * have not been defined by the Nios II ISA. Unimplemented instructions + * are legal instructions that must be emulated by some Nios II cores. + * + * If we get here, all instructions except multiplies and divides + * are illegal. + * + * This code assumes that OP is not muli (because muli was tested above). + * All other multiplies and divides are legal. Anything else is illegal. + */ + + movi r8, 0x3a /* OP for R-type mul* and div* */ + bne r5, r8, .Lnot_muldiv + + /* r15 already is 0x24 */ /* OPX of divu */ + beq r4, r15, .Ldivide + + movi r15,0x27 /* OPX of mul */ + beq r4, r15, .Lmultiply + + movi r15,0x07 /* OPX of mulxuu */ + beq r4, r15, .Lmultiply + + movi r15,0x17 /* OPX of mulxsu */ + beq r4, r15, .Lmultiply + + movi r15,0x1f /* OPX of mulxss */ + beq r4, r15, .Lmultiply + + movi r15,0x25 /* OPX of div */ + bne r4, r15, .Lnot_muldiv + + + /* DIVISION + * + * Divide an unsigned dividend by an unsigned divisor using + * a shift-and-subtract algorithm. The example below shows + * 43 div 7 = 6 for 8-bit integers. This classic algorithm uses a + * single register to store both the dividend and the quotient, + * allowing both values to be shifted with a single instruction. + * + * remainder dividend:quotient + * --------- ----------------- + * initialize 00000000 00101011: + * shift 00000000 0101011:_ + * remainder >= divisor? no 00000000 0101011:0 + * shift 00000000 101011:0_ + * remainder >= divisor? no 00000000 101011:00 + * shift 00000001 01011:00_ + * remainder >= divisor? no 00000001 01011:000 + * shift 00000010 1011:000_ + * remainder >= divisor? no 00000010 1011:0000 + * shift 00000101 011:0000_ + * remainder >= divisor? no 00000101 011:00000 + * shift 00001010 11:00000_ + * remainder >= divisor? yes 00001010 11:000001 + * remainder -= divisor - 00000111 + * ---------- + * 00000011 11:000001 + * shift 00000111 1:000001_ + * remainder >= divisor? yes 00000111 1:0000011 + * remainder -= divisor - 00000111 + * ---------- + * 00000000 1:0000011 + * shift 00000001 :0000011_ + * remainder >= divisor? no 00000001 :00000110 + * + * The quotient is 00000110. + */ + +.Ldivide: + /* + * Prepare for division by assuming the result + * is unsigned, and storing its "sign" as 0. + */ + movi r17, 0 + + + /* Which division opcode? */ + xori r15, r4, 0x25 /* OPX of div */ + bne r15, zero, .Lunsigned_division + + + /* + * OPX is div. Determine and store the sign of the quotient. + * Then take the absolute value of both operands. + */ + xor r17, r3, r6 /* MSB contains sign of quotient */ + bge r3, zero, 0f + sub r3, zero, r3 /* -r3 */ +0: + bge r6, zero, 0f + sub r6, zero, r6 /* -r6 */ +0: + + +.Lunsigned_division: + /* Initialize the unsigned-division loop. */ + movi r13, 0 /* remainder = 0 */ + + /* Now + * r3 = dividend : quotient + * r4 = 0x25 for div, 0x24 for divu + * r6 = divisor + * r13 = remainder + * r14 = loop counter (already initialized to 32) + * r17 = MSB contains sign of quotient + */ + + + /* + * for (count = 32; count > 0; --count) + * { + */ +.Ldivide_loop: + + /* + * Division: + * + * (remainder:dividend:quotient) <<= 1; + */ + slli r13, r13, 1 + cmplt r15, r3, zero /* r15 = MSB of r3 */ + or r13, r13, r15 + slli r3, r3, 1 + + + /* + * if (remainder >= divisor) + * { + * set LSB of quotient + * remainder -= divisor; + * } + */ + bltu r13, r6, .Ldiv_skip + ori r3, r3, 1 + sub r13, r13, r6 +.Ldiv_skip: + + /* + * } + */ + subi r14, r14, 1 + bne r14, zero, .Ldivide_loop + + mov r9, r3 + + + /* Now + * r9 = quotient + * r4 = 0x25 for div, 0x24 for divu + * r7 = 4*(C^16) + * r17 = MSB contains sign of quotient + */ + + + /* + * Conditionally negate signed quotient. If quotient is unsigned, + * the sign already is initialized to 0. + */ + bge r17, zero, .Lstore_result + sub r9, zero, r9 /* -r9 */ + + br .Lstore_result + + + + + /* MULTIPLICATION + * + * A "product" is the number that one gets by summing a "multiplicand" + * several times. The "multiplier" specifies the number of copies of the + * multiplicand that are summed. + * + * Actual multiplication algorithms don't use repeated addition, however. + * Shift-and-add algorithms get the same answer as repeated addition, and + * they are faster. To compute the lower half of a product (pppp below) + * one shifts the product left before adding in each of the partial products + * (a * mmmm) through (d * mmmm). + * + * To compute the upper half of a product (PPPP below), one adds in the + * partial products (d * mmmm) through (a * mmmm), each time following the + * add by a right shift of the product. + * + * mmmm + * * abcd + * ------ + * #### = d * mmmm + * #### = c * mmmm + * #### = b * mmmm + * #### = a * mmmm + * -------- + * PPPPpppp + * + * The example above shows 4 partial products. Computing actual Nios II + * products requires 32 partials. + * + * It is possible to compute the result of mulxsu from the result of mulxuu + * because the only difference between the results of these two opcodes is + * the value of the partial product associated with the sign bit of rA. + * + * mulxsu = mulxuu - ((rA < 0) ? rB : 0); + * + * It is possible to compute the result of mulxss from the result of mulxsu + * because the only difference between the results of these two opcodes is + * the value of the partial product associated with the sign bit of rB. + * + * mulxss = mulxsu - ((rB < 0) ? rA : 0); + * + */ + +.Lmul_immed: + /* Opcode is muli. Change it into mul for remainder of algorithm. */ + mov r7, r6 /* Field B is dest register, not field C. */ + mov r6, r4 /* Field IMM16 is src2, not field B. */ + movi r4, 0x27 /* OPX of mul is 0x27 */ + +.Lmultiply: + /* Initialize the multiplication loop. */ + movi r9, 0 /* mul_product = 0 */ + movi r10, 0 /* mulxuu_product = 0 */ + mov r11, r6 /* save original multiplier for mulxsu and mulxss */ + mov r12, r6 /* mulxuu_multiplier (will be shifted) */ + movi r16, 1 /* used to create "rori B,A,1" from "ror B,A,r16" */ + + /* Now + * r3 = multiplicand + * r6 = mul_multiplier + * r7 = 4 * dest_register (used later as offset to sp) + * r9 = mul_product + * r10 = mulxuu_product + * r11 = original multiplier + * r12 = mulxuu_multiplier + * r14 = loop counter (already initialized) + * r15 = temp + * r16 = 1 + */ + + + /* + * for (count = 32; count > 0; --count) + * { + */ +.Lmultiply_loop: + + /* + * mul_product <<= 1; + * lsb = multiplier & 1; + */ + slli r9, r9, 1 + andi r15, r12, 1 + + /* + * if (lsb == 1) + * { + * mulxuu_product += multiplicand; + * } + */ + beq r15, zero, .Lmulx_skip + add r10, r10, r3 + cmpltu r15, r10, r3 /* Save the carry from the MSB of mulxuu_product. */ + ror r15, r15, r16 /* r15 = 0x80000000 on carry, or else 0x00000000 */ +.Lmulx_skip: + + /* + * if (MSB of mul_multiplier == 1) + * { + * mul_product += multiplicand; + * } + */ + bge r6, zero, .Lmul_skip + add r9, r9, r3 +.Lmul_skip: + + /* + * mulxuu_product >>= 1; logical shift + * mul_multiplier <<= 1; done with MSB + * mulx_multiplier >>= 1; done with LSB + */ + srli r10, r10, 1 + or r10, r10, r15 /* OR in the saved carry bit. */ + slli r6, r6, 1 + srli r12, r12, 1 + + + /* + * } + */ + subi r14, r14, 1 + bne r14, zero, .Lmultiply_loop + + + /* + * Multiply emulation loop done. + */ + + /* Now + * r3 = multiplicand + * r4 = OPX + * r7 = 4 * dest_register (used later as offset to sp) + * r9 = mul_product + * r10 = mulxuu_product + * r11 = original multiplier + * r15 = temp + */ + + + /* + * Select/compute the result based on OPX. + */ + + + /* OPX == mul? Then store. */ + xori r15, r4, 0x27 + beq r15, zero, .Lstore_result + + /* It's one of the mulx.. opcodes. Move over the result. */ + mov r9, r10 + + /* OPX == mulxuu? Then store. */ + xori r15, r4, 0x07 + beq r15, zero, .Lstore_result + + /* Compute mulxsu + * + * mulxsu = mulxuu - ((rA < 0) ? rB : 0); + */ + bge r3, zero, .Lmulxsu_skip + sub r9, r9, r11 +.Lmulxsu_skip: + + /* OPX == mulxsu? Then store. */ + xori r15, r4, 0x17 + beq r15, zero, .Lstore_result + + /* Compute mulxss + * + * mulxss = mulxsu - ((rB < 0) ? rA : 0); + */ + bge r11, zero, .Lmulxss_skip + sub r9, r9, r3 +.Lmulxss_skip: + /* At this point, assume that OPX is mulxss, so store */ + + +.Lstore_result: + add r7, r7, sp + stw r9, 0(r7) + + ldw r16, 0(sp) + ldw r17, 4(sp) + ldw r18, 8(sp) + ldw r19, 12(sp) + ldw r20, 16(sp) + ldw r21, 20(sp) + ldw r22, 24(sp) + ldw r23, 28(sp) + + /* bt @ 32 - Breakpoint register usually isn't an operand. */ + /* et @ 36 - Don't corrupt et. */ + /* gp @ 40 - Don't corrupt gp. */ + /* sp @ 44 - Don't corrupt sp. */ + ldw fp, 48(sp) + /* ea @ 52 - Don't corrupt ea. */ + /* ba @ 56 - Breakpoint register usually isn't an operand. */ + + addi sp, sp, 60 + + br .Lexception_exit + + +.Lnot_muldiv: + + addi sp, sp, 60 + + + .section .exceptions.exit.label +.Lexception_exit: + diff --git a/software/qsys_tutorial_lcd_bsp/HAL/src/alt_exception_trap.S b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_exception_trap.S new file mode 100644 index 0000000..60a3d40 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_exception_trap.S @@ -0,0 +1,81 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003-2005 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + + /* + * This is the trap exception handler for Nios2. + */ + + /* + * Provide a label which can be used to pull this file in. + */ + + .section .exceptions.start + .globl alt_exception_trap +alt_exception_trap: + + /* + * Pull in the entry/exit code. + */ + .globl alt_exception + + .section .exceptions.soft, "xa" + +.Ltrap_handler: + + /* + * Did a trap instruction cause the exception? + * + * The instruction which the exception occurred on has been loaded + * into r2 by code in alt_exception_entry.S + * + */ + + movhi r3,0x003b /* upper half of trap opcode */ + ori r3,r3,0x683a /* lower half of trap opcode */ + bne r2,r3,.Lnot_trap + + /* + * There is no trap handler defined here, and so executing a trap + * instruction causes a software break. If you provide a trap handler, + * then you must replace the break instruction below with your handler. + * Your handler must preserve ea and the usual callee saved registers. + */ + + break + + br .Lexception_exit + +.Lnot_trap: + + + .section .exceptions.exit.label +.Lexception_exit: + + diff --git a/software/qsys_tutorial_lcd_bsp/HAL/src/alt_execve.c b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_execve.c new file mode 100644 index 0000000..27b99cf --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_execve.c @@ -0,0 +1,55 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_errno.h" +#include "sys/alt_warning.h" +#include "os/alt_syscall.h" + +/* + * execve() is used by newlib to launch new processes. This is unsupported in + * the HAL environment. However a "do-nothing" implementation is still + * provied for newlib compatability. + * + * ALT_EXECVE is mapped onto the execve() system call in alt_syscall.h + */ + +int ALT_EXECVE (char *name, char ** argv, char** env) +{ + /* Generate a link time warning, should this function ever be called. */ + + ALT_STUB_WARNING(execve); + + /* Indicate an error */ + + ALT_ERRNO = ENOSYS; + return -1; +} diff --git a/software/qsys_tutorial_lcd_bsp/HAL/src/alt_exit.c b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_exit.c new file mode 100644 index 0000000..971b35e --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_exit.c @@ -0,0 +1,71 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_irq.h" +#include "sys/alt_sim.h" +#include "os/alt_hooks.h" +#include "os/alt_syscall.h" + +#include "alt_types.h" +#include "sys/alt_log_printf.h" +/* + * _exit() is called by exit() in order to terminate the current process. + * Typically this is called when main() completes. It should never return. + * Since there is nowhere to go once this process completes, this + * implementation simply blocks forever. + * + * Note that interrupts are not disabled so that execution outside of this + * thread is allowed to continue. + * + * ALT_EXIT is mapped onto the _exit() system call in alt_syscall.h + */ + +void ALT_EXIT (int exit_code) +{ + /* ALT_LOG - please see HAL/inc/alt_log_printf.h for details */ + ALT_LOG_PRINT_BOOT("[alt_exit.c] Entering _exit() function.\r\n"); + ALT_LOG_PRINT_BOOT("[alt_exit.c] Exit code from main was %d.\r\n",exit_code); + /* Stop all other threads */ + + ALT_LOG_PRINT_BOOT("[alt_exit.c] Calling ALT_OS_STOP().\r\n"); + ALT_OS_STOP(); + + /* Provide notification to the simulator that we've stopped */ + + ALT_LOG_PRINT_BOOT("[alt_exit.c] Calling ALT_SIM_HALT().\r\n"); + ALT_SIM_HALT(exit_code); + + /* spin forever, since there's no where to go back to */ + + ALT_LOG_PRINT_BOOT("[alt_exit.c] Spinning forever.\r\n"); + while (1); +} diff --git a/software/qsys_tutorial_lcd_bsp/HAL/src/alt_fcntl.c b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_fcntl.c new file mode 100644 index 0000000..69c1544 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_fcntl.c @@ -0,0 +1,101 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include + +#include +#include + +#include "sys/alt_errno.h" +#include "priv/alt_file.h" +#include "alt_types.h" +#include "os/alt_syscall.h" + +#define ALT_FCNTL_FLAGS_MASK ((alt_u32) (O_APPEND | O_NONBLOCK)) + +/* + * fcntl() is a limited implementation of the standard fcntl() system call. + * It can be used to change the state of the flags associated with an open + * file descriptor. Normally these flags are set during the call to + * open(). It is anticipated that the main use of this function will be to + * change the state of a device from blocking to non-blocking (where this is + * supported). + * + * The input argument "fd" is the file descriptor to be manipulated. "cmd" + * is the command to execute. This can be either F_GETFL (return the + * current value of the flags) or F_SETFL (set the value of the flags). + * + * If "cmd" is F_SETFL then the argument "arg" is the new value of flags, + * otherwise "arg" is ignored. Only the flags: O_APPEND and O_NONBLOCK + * can be updated by a call to fcntl(). All other flags remain + * unchanged. + * + * ALT_FCNTL is mapped onto the fcntl() system call in alt_syscall.h + */ + +int ALT_FCNTL (int file, int cmd, ...) +{ + alt_fd* fd; + long flags; + va_list argp; + + /* + * A common error case is that when the file descriptor was created, the call + * to open() failed resulting in a negative file descriptor. This is trapped + * below so that we don't try and process an invalid file descriptor. + */ + + fd = (file < 0) ? NULL : &alt_fd_list[file]; + + if (fd) + { + switch (cmd) + { + case F_GETFL: + return fd->fd_flags & ~((alt_u32) ALT_FD_FLAGS_MASK); + case F_SETFL: + va_start(argp, cmd); + flags = va_arg(argp, long); + fd->fd_flags &= ~ALT_FCNTL_FLAGS_MASK; + fd->fd_flags |= (flags & ALT_FCNTL_FLAGS_MASK); + va_end(argp); + return 0; + default: + ALT_ERRNO = EINVAL; + return -1; + } + } + + ALT_ERRNO = EBADFD; + return -1; +} diff --git a/software/qsys_tutorial_lcd_bsp/HAL/src/alt_fd_lock.c b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_fd_lock.c new file mode 100644 index 0000000..0e2a85d --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_fd_lock.c @@ -0,0 +1,75 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +#include "priv/alt_file.h" + +/* + * alt_fd_lock() is called as a consequence of an ioctl call to gain exclusive + * access to a device, i.e.: + * + * ioctl (fd, TIOCEXCL, NULL); + * + * If there are no other open file descriptors which reference the same + * device, then alt_fd_lock() will grant the lock. Further calls to open() + * for this device will fail until the lock is released. + * + * This is done by calling close() for this file descriptor, or by calling: + * + * ioctl (fd, TIOCNXCL, NULL); + * + * The return value is zero for success, or negative in the case of failure. + */ + +int alt_fd_lock (alt_fd* fd) +{ + int i; + int rc = 0; + + ALT_SEM_PEND(alt_fd_list_lock, 0); + + for (i = 0; i < alt_max_fd; i++) + { + if ((&alt_fd_list[i] != fd) && (alt_fd_list[i].dev == fd->dev)) + { + rc = -EACCES; + goto alt_fd_lock_exit; + } + } + fd->fd_flags |= ALT_FD_EXCL; + + alt_fd_lock_exit: + + ALT_SEM_POST(alt_fd_list_lock); + return rc; +} diff --git a/software/qsys_tutorial_lcd_bsp/HAL/src/alt_fd_unlock.c b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_fd_unlock.c new file mode 100644 index 0000000..fb700dc --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_fd_unlock.c @@ -0,0 +1,56 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +#include "priv/alt_file.h" + +/* + * alt_fd_unlock() is the inverse of alt_fd_lock(). It is called as a + * consequence of a TIOCNXCL ioctl request, e.g: + * + * ioctl (fd, TIOCNXCL, NULL); + * + * It enables multiple file descriptors to exist for the same device. This + * is normally the case, but it may have been disabled by a previous call to + * alt_fd_lock(). + * + * Return zero on sucess, and a negative value on failure. + * + * The current implementation always succeeds. + */ + +int alt_fd_unlock (alt_fd* fd) +{ + fd->fd_flags &= ~ALT_FD_EXCL; + return 0; +} diff --git a/software/qsys_tutorial_lcd_bsp/HAL/src/alt_find_dev.c b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_find_dev.c new file mode 100644 index 0000000..37aefa4 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_find_dev.c @@ -0,0 +1,88 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include +#include + +#include "sys/alt_dev.h" +#include "priv/alt_file.h" + +#include "alt_types.h" + +/* + * alt_find_dev() is used by open() in order to locate a previously registered + * device with the name "name". The input argument "llist" is a pointer to the + * head of the device list to search. + * + * The return value is a pointer to the matching device, or NULL if there is + * no match. + * + * "name" must be an exact match for the devices registered name for a match to + * be found. + */ + +alt_dev* alt_find_dev(const char* name, alt_llist* llist) +{ + alt_dev* next = (alt_dev*) llist->next; + alt_32 len; + + len = strlen(name) + 1; + + /* + * Check each list entry in turn, until a match is found, or we reach the + * end of the list (i.e. next winds up pointing back to the list head). + */ + + while (next != (alt_dev*) llist) + { + + /* + * memcmp() is used here rather than strcmp() in order to reduce the size + * of the executable. + */ + + if (!memcmp (next->name, name, len)) + { + /* match found */ + + return next; + } + next = (alt_dev*) next->llist.next; + } + + /* No match found */ + + return NULL; +} + + diff --git a/software/qsys_tutorial_lcd_bsp/HAL/src/alt_find_file.c b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_find_file.c new file mode 100644 index 0000000..2d97ec2 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_find_file.c @@ -0,0 +1,89 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include +#include + +#include "sys/alt_dev.h" +#include "priv/alt_file.h" + +#include "alt_types.h" + +/* + * alt_find_file() is used by open() in order to locate a previously registered + * filesystem that owns that mount point that contains the file named "name". + * + * The return value is a pointer to the matching filesystem, or NULL if there is + * no match. + * + * A match is considered to have been found if the filesystem name followed by + * either '/' or '\0' is the prefix of the filename. For example the filename: + * "/myfilesystem/junk.txt" would match: "/myfilesystem", but not: "/myfile". + */ + +alt_dev* alt_find_file (const char* name) +{ + alt_dev* next = (alt_dev*) alt_fs_list.next; + + alt_32 len; + + /* + * Check each list entry in turn, until a match is found, or we reach the + * end of the list (i.e. next winds up pointing back to the list head). + */ + + while (next != (alt_dev*) &alt_fs_list) + { + len = strlen(next->name); + + if (next->name[len-1] == '/') + { + len -= 1; + } + + if (((name[len] == '/') || (name[len] == '\0')) && + !memcmp (next->name, name, len)) + { + /* match found */ + + return next; + } + next = (alt_dev*) next->llist.next; + } + + /* No match found */ + + return NULL; +} + + diff --git a/software/qsys_tutorial_lcd_bsp/HAL/src/alt_flash_dev.c b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_flash_dev.c new file mode 100644 index 0000000..213f721 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_flash_dev.c @@ -0,0 +1,69 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* Alt_flash.c - Functions to register a flash device to the "generic" flash * +* interface * +* * +* Author PRR * +* * +******************************************************************************/ + +#include +#include "sys/alt_llist.h" +#include "sys/alt_flash_dev.h" +#include "priv/alt_file.h" + +ALT_LLIST_HEAD(alt_flash_dev_list); + +alt_flash_fd* alt_flash_open_dev(const char* name) +{ + alt_flash_dev* dev = (alt_flash_dev*)alt_find_dev(name, &alt_flash_dev_list); + + if ((dev) && dev->open) + { + return dev->open(dev, name); + } + + return dev; +} + +void alt_flash_close_dev(alt_flash_fd* fd) +{ + if (fd && fd->close) + { + fd->close(fd); + } + return; +} + diff --git a/software/qsys_tutorial_lcd_bsp/HAL/src/alt_fork.c b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_fork.c new file mode 100644 index 0000000..ce74df0 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_fork.c @@ -0,0 +1,57 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_warning.h" +#include "sys/alt_errno.h" +#include "os/alt_syscall.h" + +/* + * The fork() system call is used by newlib to create a duplicate copy of the + * curent process. This is unsupported in the HAL environment. However a + * "do-nothing" implementation is still provied for newlib compatability. + * + * ALT_FORK is mapped onto the fork() system call in alt_syscall.h + */ + +int ALT_FORK (void) +{ + /* Generate a link time warning, should this function ever be called. */ + + ALT_STUB_WARNING(fork); + + /* Indicate an error */ + + ALT_ERRNO = ENOSYS; + return -1; +} + + diff --git a/software/qsys_tutorial_lcd_bsp/HAL/src/alt_fs_reg.c b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_fs_reg.c new file mode 100644 index 0000000..13437a1 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_fs_reg.c @@ -0,0 +1,75 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +#include "sys/alt_dev.h" +#include "priv/alt_file.h" + +/* + * The alt_fs_reg() function is used to register a file system. Once registered + * a device can be accessed using the standard posix calls: open(), read(), + * write() etc. + * + * System behaviour is undefined in the event that a file system is registered + * with a name that conflicts with an existing device or file system. + * + * alt_fs_reg() is not thread safe in the sense that there should be no other + * thread using the file system list at the time that alt_dev_reg() is called. In + * practice this means that alt_fs_reg() should only be called while operating + * in a single threaded mode. The expectation is that it will only be called + * by the file system initilisation functions invoked by alt_sys_init(), which in + * turn should only be called by the single threaded C startup code. + * + * A return value of zero indicates success. A negative return value indicates + * failure. + */ + +int alt_fs_reg (alt_dev* dev) +{ + /* + * check that the device has a name. + */ + + if (!dev->name) + { + return -ENODEV; + } + + /* + * register the file system. + */ + + alt_llist_insert(&alt_fs_list, &dev->llist); + + return 0; +} diff --git a/software/qsys_tutorial_lcd_bsp/HAL/src/alt_fstat.c b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_fstat.c new file mode 100644 index 0000000..af5d527 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_fstat.c @@ -0,0 +1,128 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include + +#include "sys/alt_dev.h" +#include "sys/alt_warning.h" +#include "sys/alt_errno.h" +#include "priv/alt_file.h" +#include "os/alt_syscall.h" + +/* + * The fstat() system call is used to obtain information about the capabilities + * of an open file descriptor. By default file descriptors are marked as + * being character devices. If a device or file system wishes to advertise + * alternative capabilities then they can register an fstat() function within + * their associated alt_dev structure. This will be called to fill in the + * entries in the imput "st" structure. + * + * This function is provided for compatability with newlib. + * + * ALT_FSTAT is mapped onto the fstat() system call in alt_syscall.h + */ + +#ifdef ALT_USE_DIRECT_DRIVERS + +#include "system.h" + +/* + * Provide minimal version that just describes all file descriptors + * as character devices for provided stdio devices. + */ +int ALT_FSTAT (int file, struct stat *st) +{ + switch (file) { +#ifdef ALT_STDIN_PRESENT + case 0: /* stdin file descriptor */ +#endif /* ALT_STDIN_PRESENT */ +#ifdef ALT_STDOUT_PRESENT + case 1: /* stdout file descriptor */ +#endif /* ALT_STDOUT_PRESENT */ +#ifdef ALT_STDERR_PRESENT + case 2: /* stderr file descriptor */ +#endif /* ALT_STDERR_PRESENT */ + st->st_mode = _IFCHR; + return 0; + default: + return -1; + } + +#if !defined(ALT_STDIN_PRESENT) && !defined(ALT_STDOUT_PRESENT) && !defined(ALT_STDERR_PRESENT) + /* Generate a link time warning, should this function ever be called. */ + ALT_STUB_WARNING(fstat); +#endif +} + +#else /* !ALT_USE_DIRECT_DRIVERS */ + +int ALT_FSTAT (int file, struct stat *st) +{ + alt_fd* fd; + + /* + * A common error case is that when the file descriptor was created, the call + * to open() failed resulting in a negative file descriptor. This is trapped + * below so that we don't try and process an invalid file descriptor. + */ + + fd = (file < 0) ? NULL : &alt_fd_list[file]; + + if (fd) + { + /* Call the drivers fstat() function to fill out the "st" structure. */ + + if (fd->dev->fstat) + { + return fd->dev->fstat(fd, st); + } + + /* + * If no function is provided, mark the fd as belonging to a character + * device. + */ + + else + { + st->st_mode = _IFCHR; + return 0; + } + } + else + { + ALT_ERRNO = EBADFD; + return -1; + } +} + +#endif /* ALT_USE_DIRECT_DRIVERS */ diff --git a/software/qsys_tutorial_lcd_bsp/HAL/src/alt_get_fd.c b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_get_fd.c new file mode 100644 index 0000000..db17b2c --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_get_fd.c @@ -0,0 +1,105 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include +#include + +#include "sys/alt_dev.h" +#include "priv/alt_file.h" + +#include "alt_types.h" + +#include "system.h" + +/* + * alt_get_fd() is called to allocate a new file descriptor from the file + * descriptor pool. If a file descriptor is succesfully allocated, it is + * configured to refer to device "dev". + * + * The return value is the index of the file descriptor structure (i.e. + * the offset of the file descriptor within the file descriptor array). A + * negative value indicates failure. + */ + +int alt_get_fd (alt_dev* dev) +{ + alt_32 i; + int rc = -EMFILE; + + /* + * Take the alt_fd_list_lock semaphore in order to avoid races when + * accessing the file descriptor pool. + */ + + ALT_SEM_PEND(alt_fd_list_lock, 0); + + /* + * Search through the list of file descriptors, and allocate the first + * free descriptor that's found. + * + * If a free descriptor is found, then the value of "alt_max_fd" is + * updated accordingly. "alt_max_fd" is a 'highwater mark' which + * indicates the highest file descriptor ever allocated. This is used to + * improve efficency when searching the file descriptor list, and + * therefore reduce contention on the alt_fd_list_lock semaphore. + */ + + for (i = 0; i < ALT_MAX_FD; i++) + { + if (!alt_fd_list[i].dev) + { + alt_fd_list[i].dev = dev; + if (i > alt_max_fd) + { + alt_max_fd = i; + } + rc = i; + goto alt_get_fd_exit; + } + } + + alt_get_fd_exit: + + /* + * Release the alt_fd_list_lock semaphore now that we are done with the + * file descriptor pool. + */ + + ALT_SEM_POST(alt_fd_list_lock); + + return rc; +} + + + + diff --git a/software/qsys_tutorial_lcd_bsp/HAL/src/alt_getchar.c b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_getchar.c new file mode 100644 index 0000000..a8f50d5 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_getchar.c @@ -0,0 +1,61 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +#ifdef ALT_USE_DIRECT_DRIVERS +#include "system.h" +#include "sys/alt_driver.h" +#include "sys/alt_stdio.h" +#include "priv/alt_file.h" +#include "unistd.h" +#endif + +/* + * Uses the ALT_DRIVER_READ() macro to call directly to driver if available. + * Otherwise, uses newlib provided getchar() routine. + */ +int +alt_getchar(void) +{ +#ifdef ALT_USE_DIRECT_DRIVERS + ALT_DRIVER_READ_EXTERNS(ALT_STDIN_DEV); + char c; + + if (ALT_DRIVER_READ(ALT_STDIN_DEV, &c, 1, alt_fd_list[STDIN_FILENO].fd_flags) <= 0) { + return -1; + } + return c; +#else + return getchar(); +#endif +} diff --git a/software/qsys_tutorial_lcd_bsp/HAL/src/alt_getpid.c b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_getpid.c new file mode 100644 index 0000000..2228c7e --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_getpid.c @@ -0,0 +1,47 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "os/alt_syscall.h" + +/* + * The getpid() system call is used by newlib to obtain the current process + * id. Since there is only ever a single process in the HAL environment, + * this just returns a constant. + * + * ALT_GETPID is mapped onto the getpid() system call in alt_syscall.h + */ + +int ALT_GETPID (void) +{ + return 0; +} + diff --git a/software/qsys_tutorial_lcd_bsp/HAL/src/alt_gettod.c b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_gettod.c new file mode 100644 index 0000000..ed86cba --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_gettod.c @@ -0,0 +1,125 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include +#include + +#include "sys/alt_alarm.h" +#include "alt_types.h" +#include "os/alt_syscall.h" + +/* + * Macro defining the number of micoseconds in a second. + */ + +#define ALT_US (1000000) + +/* + * "alt_timezone" and "alt_resettime" are the values of the the reset time and + * time zone set through the last call to settimeofday(). By default they are + * zero initialised. + */ + +struct timezone alt_timezone = {0, 0}; +struct timeval alt_resettime = {0, 0}; + +/* + * gettimeofday() can be called to obtain a time structure which indicates the + * current "wall clock" time. This is calculated using the elapsed number of + * system clock ticks, and the value of "alt_resettime" and "alt_timezone" set + * through the last call to settimeofday(). + * + * Warning: if this function is called concurrently with a call to + * settimeofday(), the value returned by gettimeofday() will be unreliable. + * + * ALT_GETTIMEOFDAY is mapped onto the gettimeofday() system call in + * alt_syscall.h + */ + + +#if defined (__GNUC__) && (__GNUC__ >= 4) +int ALT_GETTIMEOFDAY (struct timeval *ptimeval, void *ptimezone_vptr) +{ + struct timezone *ptimezone = (struct timezone*)ptimezone_vptr; +#else +int ALT_GETTIMEOFDAY (struct timeval *ptimeval, struct timezone *ptimezone) +{ +#endif + + alt_u32 nticks = alt_nticks (); + alt_u32 tick_rate = alt_ticks_per_second (); + + /* + * Check to see if the system clock is running. This is indicated by a + * non-zero system clock rate. If the system clock is not running, an error + * is generated and the contents of "ptimeval" and "ptimezone" are not + * updated. + */ + + if (tick_rate) + { + ptimeval->tv_sec = alt_resettime.tv_sec + nticks/tick_rate; + ptimeval->tv_usec = alt_resettime.tv_usec + + (alt_u32)(((alt_u64)nticks*(ALT_US/tick_rate))%ALT_US); + + while(ptimeval->tv_usec < 0) { + if (ptimeval->tv_sec <= 0) + { + ptimeval->tv_sec = 0; + ptimeval->tv_usec = 0; + break; + } + else + { + ptimeval->tv_sec--; + ptimeval->tv_usec += ALT_US; + } + } + + while(ptimeval->tv_usec >= ALT_US) { + ptimeval->tv_sec++; + ptimeval->tv_usec -= ALT_US; + } + + if (ptimezone) + { + ptimezone->tz_minuteswest = alt_timezone.tz_minuteswest; + ptimezone->tz_dsttime = alt_timezone.tz_dsttime; + } + + return 0; + } + + return -ENOTSUP; +} + diff --git a/software/qsys_tutorial_lcd_bsp/HAL/src/alt_gmon.c b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_gmon.c new file mode 100644 index 0000000..6add9f1 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_gmon.c @@ -0,0 +1,272 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003-2005 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include +#include +#include + +#include "priv/nios2_gmon_data.h" + +#include "sys/alt_irq.h" +#include "sys/alt_alarm.h" + + +/* Macros */ + +/* How large should the bins be which we use to generate the histogram */ +#define PCSAMPLE_BYTES_PER_BUCKET 32 + +#define NIOS2_READ_EA(dest) __asm__ ("mov %0, ea" : "=r" (dest)) + +/* The compiler inserts calls to mcount() at the start of + * every function call. The structure mcount_fn_arc records t + * he return address of the function called (in from_pc) + * and the return address of the mcount function + * (in self_pc). The number of times this arc is executed is + * recorded in the field count. + */ +struct mcount_fn_arc +{ + struct mcount_fn_arc * next; + void * from_pc; + unsigned int count; +}; + +/* We need to maintain a list of pointers to the heads of each adjacency + * list so that we can find them when writing out the gmon.out file. Since + * we don't know at the start of program execution how many functions will + * be called we use a list structure to do this. + */ +struct mcount_fn_entry +{ + struct mcount_fn_entry * next; + void * self_pc; + struct mcount_fn_arc * arc_head; +}; + +/* function prototypes */ + +void __mcount_record(void * self_pc, void * from_pc, struct mcount_fn_entry * fn_entry, struct mcount_fn_entry * * fn_head) __attribute__ ((no_instrument_function)); + +static __inline__ void * mcount_allocate(unsigned int size) __attribute__ ((no_instrument_function)); +static int nios2_pcsample_init(void) __attribute__ ((no_instrument_function)); +static alt_u32 nios2_pcsample(void* alarm) __attribute__ ((no_instrument_function)); + +/* global variables */ + +/* stext and etext are defined in the linker script */ +extern char stext[]; +extern char etext[]; + +/* Is the PC sampling stuff enabled yet? */ +static int pcsample_need_init = 1; + +#define HASH_BUCKETS 64 /* Must be a power of 2 */ + +/* This points to the list of adjacency list pointers. */ +struct mcount_fn_entry * __mcount_fn_head[HASH_BUCKETS]; + +/* pointer to the in-memory buffer containing the histogram */ +static unsigned short* s_pcsamples = 0; + +/* the address of the start and end of text section */ +static const unsigned int s_low_pc = (unsigned int)stext; +static const unsigned int s_high_pc = (unsigned int)etext; + +/* the alarm structure to register for pc sampling */ +static alt_alarm s_nios2_pcsample_alarm; + +unsigned int alt_gmon_data[GMON_DATA_SIZE] = +{ + 0x6e6f6d67, /* "gmon" */ + GMON_DATA_SIZE, + 0, + (unsigned int)stext, + (unsigned int)etext, + PCSAMPLE_BYTES_PER_BUCKET, + 0, + (unsigned int)__mcount_fn_head, + (unsigned int)(__mcount_fn_head + HASH_BUCKETS) +}; + +/* This holds the current slab of memory we're allocating out of */ +static char * mcount_slab_ptr = 0; +static int mcount_slab_size = 0; + +#define MCOUNT_SLAB_INCREMENT 1020 + + +/* + * We can't use malloc to allocate memory because that's too complicated, and + * can't be called at interrupt time. Use the lower level allocator instead + * because that's interrupt safe (and because we never free anything). + * + * For speed, we allocate a block of data at once. + */ +static __inline__ void * mcount_allocate(unsigned int size) +{ + void * data; + + if (size > mcount_slab_size) + { + mcount_slab_ptr = sbrk(MCOUNT_SLAB_INCREMENT); + mcount_slab_size = MCOUNT_SLAB_INCREMENT; + } + + data = mcount_slab_ptr; + mcount_slab_ptr += size; + mcount_slab_size -= size; + + return data; +} + + +/* + * Add the arc with the values of frompc and topc given to the graph. + * This function might be called at interrupt time so must be able to + * cope with reentrancy. + * + * The fast case, where we have already allocated a function arc, has been + * handled by the assmebler code. + */ +void __mcount_record(void * self_pc, void * from_pc, struct mcount_fn_entry * fn_entry, struct mcount_fn_entry * * fn_head) +{ + alt_irq_context context; + struct mcount_fn_arc * arc_entry; + + /* Keep trying to start up the PC sampler until it is running. + * (It can't start until the timer is going). + */ + if (pcsample_need_init) + { + pcsample_need_init = 0; + pcsample_need_init = nios2_pcsample_init(); + } + + /* + * We must disable interrupts around the allocation and the list update to + * prevent corruption if the instrumented function is re-entrant. + * + * It's safe for the code above to be stepping through the chain and be + * interrupted by this code modifying it - there is an edge case which will + * leave two copies of the same arc on the list (both with count=1), but + * this is dealt with on the host. + */ + context = alt_irq_disable_all(); + + if (fn_entry == NULL) + { + /* Add it to the list of functions we must output later. */ + fn_entry = (struct mcount_fn_entry *)mcount_allocate(sizeof(struct mcount_fn_entry)); + + fn_entry->self_pc = self_pc; + fn_entry->arc_head = NULL; + + fn_entry->next = *fn_head; + *fn_head = fn_entry; + } + + /* We will need a new list entry - if there was a list entry before + * then the assembler code would have handled it. */ + arc_entry = (struct mcount_fn_arc *)mcount_allocate(sizeof(struct mcount_fn_arc)); + + arc_entry->from_pc = from_pc; + arc_entry->count = 1; + + arc_entry->next = fn_entry->arc_head; + fn_entry->arc_head = arc_entry; + + alt_irq_enable_all(context); +} + + +/* + * nios2_pcsample_init starts profiling. + * It is called the first time mcount is called, and on subsequent calls to + * mcount until it returns zero. It initializes the pc histogram and turns on + * timer driven pc sampling. + */ +static int nios2_pcsample_init(void) +{ + unsigned int pcsamples_size; + + /* We sample the PC every tick */ + unsigned int prof_rate = alt_ticks_per_second(); + if (prof_rate == 0) + return 1; + + /* allocate the histogram buffer s_pcsamples */ + pcsamples_size = (s_high_pc - s_low_pc)/PCSAMPLE_BYTES_PER_BUCKET; + s_pcsamples = (unsigned short*)sbrk(pcsamples_size * sizeof(unsigned short)); + + if (s_pcsamples != 0) + { + /* initialize the buffer to zero */ + memset(s_pcsamples, 0, pcsamples_size * sizeof(unsigned short)); + + alt_gmon_data[GMON_DATA_PROFILE_DATA] = (int)s_pcsamples; + alt_gmon_data[GMON_DATA_PROFILE_RATE] = prof_rate; + + /* Sample every tick (it's cheap) */ + alt_alarm_start(&s_nios2_pcsample_alarm, 1, nios2_pcsample, 0); + } + + return 0; +} + + +/* + * Sample the PC value and store it in the histogram + */ +static alt_u32 nios2_pcsample(void* context) +{ + unsigned int pc; + unsigned int bucket; + + /* read the exception return address - this will be + * inaccurate if there are nested interrupts but we + * assume that this is rare and the inaccuracy will + * not be great */ + NIOS2_READ_EA(pc); + + /* + * If we're within the profilable range then increment the relevant + * bucket in the histogram + */ + if (pc >= s_low_pc && pc < s_high_pc && s_pcsamples != 0) + { + bucket = (pc - s_low_pc)/PCSAMPLE_BYTES_PER_BUCKET; + s_pcsamples[bucket]++; + } + + /* Sample every tick */ + return 1; +} + diff --git a/software/qsys_tutorial_lcd_bsp/HAL/src/alt_icache_flush.c b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_icache_flush.c new file mode 100644 index 0000000..4b706ed --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_icache_flush.c @@ -0,0 +1,84 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "nios2.h" +#include "system.h" + +#include "alt_types.h" +#include "sys/alt_cache.h" + +/* + * alt_icache_flush() is called to flush the instruction cache for a memory + * region of length "len" bytes, starting at address "start". + */ + +void alt_icache_flush (void* start, alt_u32 len) +{ +#if NIOS2_ICACHE_SIZE > 0 + + char* i; + char* end; + + /* + * This is the most we would ever need to flush. + */ + + if (len > NIOS2_ICACHE_SIZE) + { + len = NIOS2_ICACHE_SIZE; + } + + end = ((char*) start) + len; + + for (i = start; i < end; i+= NIOS2_ICACHE_LINE_SIZE) + { + __asm__ volatile ("flushi %0" :: "r" (i)); + } + + /* + * For an unaligned flush request, we've got one more line left. + * Note that this is dependent on NIOS2_ICACHE_LINE_SIZE to be a + * multiple of 2 (which it always is). + */ + + if (((alt_u32) start) & (NIOS2_ICACHE_LINE_SIZE - 1)) + { + __asm__ volatile ("flushi %0" :: "r" (i)); + } + + /* + * Having flushed the cache, flush any stale instructions in the + * pipeline + */ + + __asm__ volatile ("flushp"); + +#endif /* NIOS2_ICACHE_SIZE > 0 */ +} diff --git a/software/qsys_tutorial_lcd_bsp/HAL/src/alt_icache_flush_all.c b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_icache_flush_all.c new file mode 100644 index 0000000..5088552 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_icache_flush_all.c @@ -0,0 +1,46 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "nios2.h" +#include "system.h" + +#include "alt_types.h" +#include "sys/alt_cache.h" + +/* + * alt_icache_flush_all() is called to flush the entire instruction cache. + */ + +void alt_icache_flush_all (void) +{ +#if NIOS2_ICACHE_SIZE > 0 + alt_icache_flush (0, NIOS2_ICACHE_SIZE); +#endif +} diff --git a/software/qsys_tutorial_lcd_bsp/HAL/src/alt_iic.c b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_iic.c new file mode 100644 index 0000000..1db5afa --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_iic.c @@ -0,0 +1,106 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2009 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ +#include "system.h" + +/* + * This file implements the HAL Enhanced interrupt API for Nios II processors + * with an internal interrupt controller (IIC). For most routines, this serves + * as a wrapper layer over the legacy interrupt API (which must be used with + * the IIC only). + * + * Use of the enhanced API is recommended so that application and device + * drivers are compatible with a Nios II system configured with an external + * interrupt controller (EIC), or IIC. This will afford maximum portability. + * + * If an EIC is present, the EIC device driver must provide these routines, + * because their operation will be specific to that EIC type. + */ +#ifndef NIOS2_EIC_PRESENT +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT + +#include "sys/alt_irq.h" +#include "priv/alt_iic_isr_register.h" +#include "priv/alt_legacy_irq.h" + +/** @Function Description: This function registers an interrupt handler. + * If the function is succesful, then the requested interrupt will be enabled upon + * return. Registering a NULL handler will disable the interrupt. + * @API Type: External + * @param ic_id Ignored. + * @param irq IRQ number + * @return 0 if successful, else error (-1) + */ +int alt_ic_isr_register(alt_u32 ic_id, alt_u32 irq, alt_isr_func isr, + void *isr_context, void *flags) +{ + return alt_iic_isr_register(ic_id, irq, isr, isr_context, flags); +} + +/** @Function Description: This function enables a single interrupt. + * @API Type: External + * @param ic_id Ignored. + * @param irq IRQ number + * @return 0 if successful, else error (-1) + */ +int alt_ic_irq_enable (alt_u32 ic_id, alt_u32 irq) +{ + return alt_irq_enable(irq); +} + +/** @Function Description: This function disables a single interrupt. + * @API Type: External + * @param ic_id Ignored. + * @param irq IRQ number + * @return 0 if successful, else error (-1) + */ +int alt_ic_irq_disable(alt_u32 ic_id, alt_u32 irq) +{ + return alt_irq_disable(irq); +} + +/** @Function Description: This function to determine if corresponding + * interrupt is enabled. + * @API Type: External + * @param ic_id Ignored. + * @param irq IRQ number + * @return Zero if corresponding interrupt is disabled and + * non-zero otherwise. + */ +alt_u32 alt_ic_irq_enabled(alt_u32 ic_id, alt_u32 irq) +{ + alt_u32 irq_enabled; + + NIOS2_READ_IENABLE(irq_enabled); + + return (irq_enabled & (1 << irq)) ? 1: 0; +} + +#endif /* ALT_ENHANCED_INTERRUPT_API_PRESENT */ +#endif /* NIOS2_EIC_PRESENT */ diff --git a/software/qsys_tutorial_lcd_bsp/HAL/src/alt_iic_isr_register.c b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_iic_isr_register.c new file mode 100644 index 0000000..b104395 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_iic_isr_register.c @@ -0,0 +1,104 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2009 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ +#include +#include "system.h" + +/* + * Provides an interrupt registry mechanism for the any CPUs internal interrupt + * controller (IIC) when the enhanced interrupt API is active. + */ +#ifndef ALT_CPU_EIC_PRESENT +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT + +#include "alt_types.h" +#include "sys/alt_irq.h" +#include "priv/alt_iic_isr_register.h" + +/* + * The header, alt_irq_entry.h, contains the exception entry point, and is + * provided by the processor component. It is included here, so that the code + * will be added to the executable only if alt_irq_register() is present, i.e. + * if no interrupts are registered - there's no need to provide any + * interrupt handling. + */ + +#include "sys/alt_irq_entry.h" + +/* + * The header, alt_irq_table.h contains a table describing which function + * handles each interrupt. + */ + +#include "priv/alt_irq_table.h" + +/** @Function Description: This function registers an interrupt handler. + * If the function is succesful, then the requested interrupt will be enabled + * upon return. Registering a NULL handler will disable the interrupt. + * + * @API Type: External + * @param ic_id Interrupt controller ID + * @param irq IRQ ID number + * @param isr Pointer to interrupt service routine + * @param isr_context Opaque pointer passed to ISR + * @param flags + * @return 0 if successful, else error (-1) + */ +int alt_iic_isr_register(alt_u32 ic_id, alt_u32 irq, alt_isr_func isr, + void *isr_context, void *flags) +{ + int rc = -EINVAL; + int id = irq; /* IRQ interpreted as the interrupt ID. */ + alt_irq_context status; + + if (id < ALT_NIRQ) + { + /* + * interrupts are disabled while the handler tables are updated to ensure + * that an interrupt doesn't occur while the tables are in an inconsistant + * state. + */ + + status = alt_irq_disable_all(); + + alt_irq[id].handler = isr; + alt_irq[id].context = isr_context; + + rc = (isr) ? alt_ic_irq_enable(ic_id, id) : alt_ic_irq_disable(ic_id, id); + + alt_irq_enable_all(status); + } + + return rc; +} + +#endif /* ALT_ENHANCED_INTERRUPT_API_PRESENT */ +#endif /* ALT_CPU_EIC_PRESENT */ diff --git a/software/qsys_tutorial_lcd_bsp/HAL/src/alt_instruction_exception_entry.c b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_instruction_exception_entry.c new file mode 100644 index 0000000..f4f52fc --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_instruction_exception_entry.c @@ -0,0 +1,203 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2008 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ +#include "sys/alt_exceptions.h" +#include "nios2.h" +#include "alt_types.h" +#include "system.h" + +/* + * This file implements support for calling user-registered handlers for + * instruction-generated exceptions. This handler could also be reached + * in the event of a spurious interrupt. + * + * The handler code is optionally enabled through the "Enable + * Instruction-related Exception API" HAL BSP setting, which will + * define the macro below. + */ +#ifdef ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API + +/* Function pointer to exception callback routine */ +alt_exception_result (*alt_instruction_exception_handler) + (alt_exception_cause, alt_u32, alt_u32) = 0x0; + +/* Link entry routine to .exceptions section */ +int alt_instruction_exception_entry (alt_u32 exception_pc) + __attribute__ ((section (".exceptions"))); + +/* + * This is the entry point for instruction-generated exceptions handling. + * This routine will be called by alt_exceptions_entry.S, after it determines + * that an exception could not be handled by handlers that preceed that + * of instruction-generated exceptions (such as interrupts). + * + * For this to function properly, you must register an exception handler + * using alt_instruction_exception_register(). This routine will call + * that handler if it has been registered. Absent a handler, it will + * break break or hang as discussed below. + */ +int alt_instruction_exception_entry (alt_u32 exception_pc) +{ + alt_u32 cause, badaddr; + +/* + * If the processor hardware has the optional EXCEPTIONS & BADADDR registers, + * read them and pass their content to the user handler. These are always + * present if the MMU or MPU is enabled, and optionally for other advanced + * exception types via the "Extra exceptions information" setting in the + * processor (hardware) configuration. + * + * If these registers are not present, the cause field will be set to + * NIOS2_EXCEPTION_CAUSE_NOT_PRESENT. Your handling routine should + * check the validity of the cause argument before proceeding. + */ +#ifdef NIOS2_HAS_EXTRA_EXCEPTION_INFO + /* Get exception cause & "badaddr" */ + NIOS2_READ_EXCEPTION(cause); + cause = ( (cause & NIOS2_EXCEPTION_REG_CAUSE_MASK) >> + NIOS2_EXCEPTION_REG_CAUSE_OFST ); + + NIOS2_READ_BADADDR(badaddr); +#else + cause = NIOS2_EXCEPTION_CAUSE_NOT_PRESENT; + badaddr = 0; +#endif /* NIOS2_HAS_EXTRA_EXCEPTION_INFO */ + + if(alt_instruction_exception_handler) { + /* + * Call handler. Its return value indicates whether the exception-causing + * instruction should be re-issued. The code that called us, + * alt_eceptions_entry.S, will look at this value and adjust the ea + * register as necessary + */ + return alt_instruction_exception_handler(cause, exception_pc, badaddr); + } + /* + * We got here because an instruction-generated exception occured, but no + * handler is present. We do not presume to know how to handle it. If the + * debugger is present, break, otherwise hang. + * + * If you've reached here in the debugger, consider examining the + * EXCEPTIONS register cause bit-field, which was read into the 'cause' + * variable above, and compare it against the exceptions-type enumeration + * in alt_exceptions.h. This register is availabe if the MMU or MPU is + * present, or if the "Extra exceptions information" hardware option is + * selected. + * + * If you get here then one of the following could have happened: + * + * - An instruction-generated exception occured, and the processor + * does not have the extra exceptions feature enabled, or you + * have not registered a handler using + * alt_instruction_exception_register() + * + * Some examples of instruction-generated exceptions and why they + * might occur: + * + * - Your program could have been compiled for a full-featured + * Nios II core, but it is running on a smaller core, and + * instruction emulation has been disabled by defining + * ALT_NO_INSTRUCTION_EMULATION. + * + * You can work around the problem by re-enabling instruction + * emulation, or you can figure out why your program is being + * compiled for a system other than the one that it is running on. + * + * - Your program has executed a trap instruction, but has not + * implemented a handler for this instruction. + * + * - Your program has executed an illegal instruction (one which is + * not defined in the instruction set). + * + * - Your processor includes an MMU or MPU, and you have enabled it + * before registering an exception handler to service exceptions it + * generates. + * + * The problem could also be hardware related: + * - If your hardware is broken and is generating spurious interrupts + * (a peripheral which negates its interrupt output before its + * interrupt handler has been executed will cause spurious interrupts) + */ + else { +#ifdef NIOS2_HAS_DEBUG_STUB + NIOS2_BREAK(); +#else + while(1) + ; +#endif /* NIOS2_HAS_DEBUG_STUB */ + } + + /* // We should not get here. Remove compiler warning. */ + return NIOS2_EXCEPTION_RETURN_REISSUE_INST; +} + +#endif /* ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API */ + +/* + * This routine indicates whether a particular exception cause will have + * set a valid address into the BADADDR register, which is included + * in the arguments to a user-registered instruction-generated exception + * handler. Many exception types do not set valid contents in BADADDR; + * this is a convenience routine to easily test the validity of that + * argument in your handler. + * + * Note that this routine will return false (0) for cause '12', + * TLB miss. This is because there are four exception types that + * share that cause, two of which do not have a valid BADADDR. You + * must determine BADADDR's validity for these. + * + * Arguments: + * cause: The 5-bit exception cause field of the EXCEPTIONS register, + * shifted to the LSB position. You may pass the 'cause' argument + * in a handler you registered directy to this routine. + * + * Return: 1: BADADDR (bad_addr argument to handler) is valid + * 0: BADADDR is not valid + */ +int alt_exception_cause_generated_bad_addr(alt_exception_cause cause) +{ + switch (cause) { + case NIOS2_EXCEPTION_SUPERVISOR_ONLY_DATA_ADDR: + return 1; + case NIOS2_EXCEPTION_MISALIGNED_DATA_ADDR: + return 1; + case NIOS2_EXCEPTION_MISALIGNED_TARGET_PC: + return 1; + case NIOS2_EXCEPTION_TLB_READ_PERM_VIOLATION: + return 1; + case NIOS2_EXCEPTION_TLB_WRITE_PERM_VIOLATION: + return 1; + case NIOS2_EXCEPTION_MPU_DATA_REGION_VIOLATION: + return 1; + default: + return 0; + } +} diff --git a/software/qsys_tutorial_lcd_bsp/HAL/src/alt_instruction_exception_register.c b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_instruction_exception_register.c new file mode 100644 index 0000000..b059e1d --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_instruction_exception_register.c @@ -0,0 +1,82 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2008 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ +#include "sys/alt_exceptions.h" +#include "alt_types.h" +#include "system.h" + +/* + * This file implements support for calling user-registered handlers for + * instruction-generated exceptions. + * + * The registry API is optionally enabled through the "Enable + * Instruction-related Exception API" HAL BSP setting, which will + * define the macro below. + */ +#ifdef ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API + +/* + * The header, alt_exception_handler_registry.h contains a struct describing + * the registered exception handler + */ +#include "priv/alt_exception_handler_registry.h" + +/* + * Pull in the exception entry assembly code. This will not be linked in + * unless this object is linked into the executable (i.e. only if + * alt_instruction_exception_register() is called). + */ +__asm__( "\n\t.globl alt_exception" ); + +/* + * alt_instruction_exception_register() is called to register a handler to + * service instruction-generated exceptions that are not handled by the + * default exception handler code (interrupts, and optionally unimplemented + * instructions and traps). + * + * Passing null (0x0) in the handler argument will disable a previously- + * registered handler. + * + * Note that if no handler is registered, exceptions that are not processed + * using the built-in handler (interrupts, and optionally unimplemented + * instructions and traps) are treated as unknown exceptions, resulting + * in either a break or an infinite loop. + */ +void alt_instruction_exception_register ( + alt_exception_result (*exception_handler)( + alt_exception_cause cause, + alt_u32 exception_pc, + alt_u32 bad_addr) ) +{ + alt_instruction_exception_handler = exception_handler; +} + +#endif /* ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API */ diff --git a/software/qsys_tutorial_lcd_bsp/HAL/src/alt_io_redirect.c b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_io_redirect.c new file mode 100644 index 0000000..8c862f7 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_io_redirect.c @@ -0,0 +1,98 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include +#include +#include + +#include "sys/alt_dev.h" +#include "priv/alt_file.h" + + +/* + * alt_open_fd() is similar to open() in that it is used to obtain a file + * descriptor for the file named "name". The "flags" and "mode" arguments are + * identical to the "flags" and "mode" arguments of open(). + * + * The distinction between the two functions is that the file descriptor + * structure to use is passed in as an argument, rather than allocated from the + * list of free file descriptors. + * + * This is used by alt_io_redirect() to redirect the stdin, stdout and stderr + * file descriptors to point to new devices. + * + * If the device can not be succesfully opened, then the input file descriptor + * remains unchanged. + */ + +static void alt_open_fd(alt_fd* fd, const char* name, int flags, int mode) +{ + int old; + + old = open (name, flags, mode); + + if (old >= 0) + { + fd->dev = alt_fd_list[old].dev; + fd->priv = alt_fd_list[old].priv; + fd->fd_flags = alt_fd_list[old].fd_flags; + + alt_release_fd (old); + } +} + +/* + * alt_io_redirect() is called once the device/filesystem lists have been + * initialised, but before main(). Its function is to redirect standard in, + * standard out and standard error so that they point to the devices selected by + * the user (as defined in system.h). + * + * Prior to the call to this function, io is directed towards /dev/null. If + * i/o can not be redirected to the requested device, for example if the device + * does not exist, then it remains directed at /dev/null. + */ + +void alt_io_redirect(const char* stdout_dev, + const char* stdin_dev, + const char* stderr_dev) +{ + /* Redirect the channels */ + + alt_open_fd (&alt_fd_list[STDOUT_FILENO], stdout_dev, O_WRONLY, 0777); + alt_open_fd (&alt_fd_list[STDIN_FILENO], stdin_dev, O_RDONLY, 0777); + alt_open_fd (&alt_fd_list[STDERR_FILENO], stderr_dev, O_WRONLY, 0777); +} + + + + diff --git a/software/qsys_tutorial_lcd_bsp/HAL/src/alt_ioctl.c b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_ioctl.c new file mode 100644 index 0000000..f5d7ef1 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_ioctl.c @@ -0,0 +1,170 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +#include "sys/ioctl.h" +#include "sys/alt_errno.h" +#include "sys/alt_warning.h" +#include "priv/alt_file.h" +#include "os/alt_syscall.h" + +/* + * The ioctl() system call is provided so that application code can manipulate + * the i/o capabilities of a device in device specific ways. This is identical + * to the standard posix ioctl() function. + * + * In general this implementation simply vectors ioctl requests to the + * apropriate drivers ioctl function (as registered in the drivers alt_dev + * structure). + * + * However in the case of devices (as oposed to filesystem), the TIOCEXCL and + * TIOCNXCL requests are handled without reference to the driver. These + * requests are used to lock/release a device for exclusive access. + * + * Handling these requests centrally eases the task of device driver + * development. + * + * ALT_IOCTL is mapped onto the ioctl() system call in alt_syscall.h + */ + +#ifdef ALT_USE_DIRECT_DRIVERS + +#include "system.h" +#include "sys/alt_driver.h" + +/* + * Provide minimal version that calls ioctl routine of provided stdio devices. + */ +int ALT_IOCTL (int file, int req, void* arg) +{ +#ifdef ALT_STDIN_PRESENT + ALT_DRIVER_IOCTL_EXTERNS(ALT_STDIN_DEV); +#endif +#ifdef ALT_STDOUT_PRESENT + ALT_DRIVER_IOCTL_EXTERNS(ALT_STDOUT_DEV); +#endif +#ifdef ALT_STDERR_PRESENT + ALT_DRIVER_IOCTL_EXTERNS(ALT_STDERR_DEV); +#endif + +#if !defined(ALT_STDIN_PRESENT) && !defined(ALT_STDOUT_PRESENT) && !defined(ALT_STDERR_PRESENT) + /* Generate a link time warning, should this function ever be called. */ + ALT_STUB_WARNING(ioctl); +#endif + + switch (file) { +#ifdef ALT_STDIN_PRESENT + case 0: /* stdin file descriptor */ + return ALT_DRIVER_IOCTL(ALT_STDIN_DEV, req, arg); +#endif /* ALT_STDIN_PRESENT */ +#ifdef ALT_STDOUT_PRESENT + case 1: /* stdout file descriptor */ + return ALT_DRIVER_IOCTL(ALT_STDOUT_DEV, req, arg); +#endif /* ALT_STDOUT_PRESENT */ +#ifdef ALT_STDERR_PRESENT + case 2: /* stderr file descriptor */ + return ALT_DRIVER_IOCTL(ALT_STDERR_DEV, req, arg); +#endif /* ALT_STDERR_PRESENT */ + default: + ALT_ERRNO = EBADFD; + return -1; + } +} + +#else /* !ALT_USE_DIRECT_DRIVERS */ + +int ALT_IOCTL (int file, int req, void* arg) +{ + alt_fd* fd; + int rc; + + /* + * A common error case is that when the file descriptor was created, the call + * to open() failed resulting in a negative file descriptor. This is trapped + * below so that we don't try and process an invalid file descriptor. + */ + + fd = (file < 0) ? NULL : &alt_fd_list[file]; + + if (fd) + { + + /* + * In the case of device drivers (not file systems) handle the TIOCEXCL + * and TIOCNXCL requests as special cases. + */ + + if (fd->fd_flags & ALT_FD_DEV) + { + if (req == TIOCEXCL) + { + rc = alt_fd_lock (fd); + goto ioctl_done; + } + else if (req == TIOCNXCL) + { + rc = alt_fd_unlock (fd); + goto ioctl_done; + } + } + + /* + * If the driver provides an ioctl() function, call that to handle the + * request, otherwise set the return code to indicate that the request + * could not be processed. + */ + + if (fd->dev->ioctl) + { + rc = fd->dev->ioctl(fd, req, arg); + } + else + { + rc = -ENOTTY; + } + } + else + { + rc = -EBADFD; + } + +ioctl_done: + + if (rc < 0) + { + ALT_ERRNO = -rc; + } + return rc; +} + +#endif /* ALT_USE_DIRECT_DRIVERS */ diff --git a/software/qsys_tutorial_lcd_bsp/HAL/src/alt_irq_entry.S b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_irq_entry.S new file mode 100644 index 0000000..d3efe7d --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_irq_entry.S @@ -0,0 +1,108 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003-2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "system.h" + +/* + * This is the interrupt exception entry point code, which saves all the + * registers and calls the interrupt handler. It should be pulled in using + * a .globl from alt_irq_register.c. This scheme is used so that if an + * interrupt is never registered, then this code will not appear in the + * generated executable, thereby improving code footprint. + */ + + /* + * Explicitly allow the use of r1 (the assembler temporary register) + * within this code. This register is normally reserved for the use of + * the compiler. + */ + .set noat + + /* + * Pull in the exception handler register save code. + */ + .globl alt_exception + + .globl alt_irq_entry + .section .exceptions.entry.label, "xa" +alt_irq_entry: + + /* + * Section .exceptions.entry is in alt_exception_entry.S + * This saves all the caller saved registers and reads estatus into r5 + */ + + .section .exceptions.irqtest, "xa" + +#ifdef ALT_CI_INTERRUPT_VECTOR_N + /* + * Use the interrupt vector custom instruction if present to accelerate + * this code. + * If the interrupt vector custom instruction returns a negative + * value, there are no interrupts active (estatus.pie is 0 + * or ipending is 0) so assume it is a software exception. + */ + custom ALT_CI_INTERRUPT_VECTOR_N, r4, r0, r0 + blt r4, r0, .Lnot_irq +#else + /* + * Test to see if the exception was a software exception or caused + * by an external interrupt, and vector accordingly. + */ + rdctl r4, ipending + andi r2, r5, 1 + beq r2, zero, .Lnot_irq + beq r4, zero, .Lnot_irq +#endif /* ALT_CI_INTERRUPT_VECTOR_N */ + + .section .exceptions.irqhandler, "xa" + /* + * Now that all necessary registers have been preserved, call + * alt_irq_handler() to process the interrupts. + */ + + call alt_irq_handler + + .section .exceptions.irqreturn, "xa" + + br .Lexception_exit + + .section .exceptions.notirq.label, "xa" + +.Lnot_irq: + + /* + * Section .exceptions.exit is in alt_exception_entry.S + * This restores all the caller saved registers + */ + + .section .exceptions.exit.label +.Lexception_exit: + diff --git a/software/qsys_tutorial_lcd_bsp/HAL/src/alt_irq_handler.c b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_irq_handler.c new file mode 100644 index 0000000..3253d02 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_irq_handler.c @@ -0,0 +1,169 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2009 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include "system.h" + +/* + * This interrupt handler only works with an internal interrupt controller + * (IIC). Processors with an external interrupt controller (EIC) use an + * implementation provided by an EIC driver. + */ +#ifndef ALT_CPU_EIC_PRESENT + +#include "sys/alt_irq.h" +#include "os/alt_hooks.h" + +#include "alt_types.h" + +/* + * A table describing each interrupt handler. The index into the array is the + * interrupt id associated with the handler. + * + * When an interrupt occurs, the associated handler is called with + * the argument stored in the context member. + */ +struct ALT_IRQ_HANDLER +{ +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT + void (*handler)(void*); +#else + void (*handler)(void*, alt_u32); +#endif + void *context; +} alt_irq[ALT_NIRQ]; + +/* + * alt_irq_handler() is called by the interrupt exception handler in order to + * process any outstanding interrupts. + * + * It is defined here since it is linked in using weak linkage. + * This means that if there is never a call to alt_irq_register() (above) then + * this function will not get linked in to the executable. This is acceptable + * since if no handler is ever registered, then an interrupt can never occur. + * + * If Nios II interrupt vector custom instruction exists, use it to accelerate + * the dispatch of interrupt handlers. The Nios II interrupt vector custom + * instruction is present if the macro ALT_CI_INTERRUPT_VECTOR defined. + */ + +void alt_irq_handler (void) __attribute__ ((section (".exceptions"))); +void alt_irq_handler (void) +{ +#ifdef ALT_CI_INTERRUPT_VECTOR + alt_32 offset; + char* alt_irq_base = (char*)alt_irq; +#else + alt_u32 active; + alt_u32 mask; + alt_u32 i; +#endif /* ALT_CI_INTERRUPT_VECTOR */ + + /* + * Notify the operating system that we are at interrupt level. + */ + + ALT_OS_INT_ENTER(); + +#ifdef ALT_CI_INTERRUPT_VECTOR + /* + * Call the interrupt vector custom instruction using the + * ALT_CI_INTERRUPT_VECTOR macro. + * It returns the offset into the vector table of the lowest-valued pending + * interrupt (corresponds to highest priority) or a negative value if none. + * The custom instruction assumes that each table entry is eight bytes. + */ + while ((offset = ALT_CI_INTERRUPT_VECTOR) >= 0) { + struct ALT_IRQ_HANDLER* handler_entry = + (struct ALT_IRQ_HANDLER*)(alt_irq_base + offset); +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT + handler_entry->handler(handler_entry->context); +#else + handler_entry->handler(handler_entry->context, offset >> 3); +#endif + } +#else /* ALT_CI_INTERRUPT_VECTOR */ + /* + * Obtain from the interrupt controller a bit list of pending interrupts, + * and then process the highest priority interrupt. This process loops, + * loading the active interrupt list on each pass until alt_irq_pending() + * return zero. + * + * The maximum interrupt latency for the highest priority interrupt is + * reduced by finding out which interrupts are pending as late as possible. + * Consider the case where the high priority interupt is asserted during + * the interrupt entry sequence for a lower priority interrupt to see why + * this is the case. + */ + + active = alt_irq_pending (); + + do + { + i = 0; + mask = 1; + + /* + * Test each bit in turn looking for an active interrupt. Once one is + * found, the interrupt handler asigned by a call to alt_irq_register() is + * called to clear the interrupt condition. + */ + + do + { + if (active & mask) + { +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT + alt_irq[i].handler(alt_irq[i].context); +#else + alt_irq[i].handler(alt_irq[i].context, i); +#endif + break; + } + mask <<= 1; + i++; + + } while (1); + + active = alt_irq_pending (); + + } while (active); +#endif /* ALT_CI_INTERRUPT_VECTOR */ + + /* + * Notify the operating system that interrupt processing is complete. + */ + + ALT_OS_INT_EXIT(); +} + +#endif /* ALT_CPU_EIC_PRESENT */ diff --git a/software/qsys_tutorial_lcd_bsp/HAL/src/alt_irq_register.c b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_irq_register.c new file mode 100644 index 0000000..b5ea474 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_irq_register.c @@ -0,0 +1,102 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2009 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ +#include +#include "system.h" + +/* + * This interrupt registry mechanism works with the Nios II internal interrupt + * controller (IIC) only. Systems with an external interrupt controller (EIC), + * or those with the IIC who are using the enhanced interrupt API will + * utilize the alt_ic_isr_register() routine to register an interrupt. + */ +#ifndef NIOS2_EIC_PRESENT + +#include "sys/alt_irq.h" +#include "priv/alt_legacy_irq.h" +#include "os/alt_hooks.h" + +#include "alt_types.h" + +/* + * The header, alt_irq_entry.h, contains the exception entry point, and is + * provided by the processor component. It is included here, so that the code + * will be added to the executable only if alt_irq_register() is present, i.e. + * if no interrupts are registered - there's no need to provide any + * interrupt handling. + */ + +#include "sys/alt_irq_entry.h" + +/* + * The header, alt_irq_table.h contains a table describing which function + * handles each interrupt. + */ + +#include "priv/alt_irq_table.h" + +/* + * alt_irq_handler() is called to register an interrupt handler. If the + * function is succesful, then the requested interrupt will be enabled upon + * return. Registering a NULL handler will disable the interrupt. + * + * The return value is 0 if the interrupt handler was registered and the + * interrupt was enabled, otherwise it is negative. + */ + +int alt_irq_register (alt_u32 id, + void* context, + alt_isr_func handler) +{ + int rc = -EINVAL; + alt_irq_context status; + + if (id < ALT_NIRQ) + { + /* + * interrupts are disabled while the handler tables are updated to ensure + * that an interrupt doesn't occur while the tables are in an inconsistant + * state. + */ + + status = alt_irq_disable_all (); + + alt_irq[id].handler = handler; + alt_irq[id].context = context; + + rc = (handler) ? alt_irq_enable (id): alt_irq_disable (id); + + alt_irq_enable_all(status); + } + return rc; +} +#endif /* NIOS2_EIC_PRESENT */ + diff --git a/software/qsys_tutorial_lcd_bsp/HAL/src/alt_irq_vars.c b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_irq_vars.c new file mode 100644 index 0000000..8c0a18d --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_irq_vars.c @@ -0,0 +1,47 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "alt_types.h" + +#include "system.h" + +/* + * These global variables are used to save the current list of enabled + * interrupts. See alt_irq.h for further details. + */ + +volatile alt_u32 alt_irq_active = 0; + +#ifndef ALT_EXCEPTION_STACK + +volatile alt_u32 alt_priority_mask = (alt_u32) -1; + +#endif + diff --git a/software/qsys_tutorial_lcd_bsp/HAL/src/alt_isatty.c b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_isatty.c new file mode 100644 index 0000000..9276472 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_isatty.c @@ -0,0 +1,125 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include + +#include "sys/alt_dev.h" +#include "sys/alt_errno.h" +#include "sys/alt_warning.h" +#include "priv/alt_file.h" +#include "os/alt_syscall.h" + +#ifdef ALT_USE_DIRECT_DRIVERS + +#include "system.h" + +/* + * Provide minimal version that just describes all file descriptors + * as tty devices for provided stdio devices. + */ +int ALT_ISATTY (int file) +{ + switch (file) { +#ifdef ALT_STDIN_PRESENT + case 0: /* stdin file descriptor */ +#endif /* ALT_STDIN_PRESENT */ +#ifdef ALT_STDOUT_PRESENT + case 1: /* stdout file descriptor */ +#endif /* ALT_STDOUT_PRESENT */ +#ifdef ALT_STDERR_PRESENT + case 2: /* stderr file descriptor */ +#endif /* ALT_STDERR_PRESENT */ + return 1; + default: + return 0; + } + +#if !defined(ALT_STDIN_PRESENT) && !defined(ALT_STDOUT_PRESENT) && !defined(ALT_STDERR_PRESENT) + /* Generate a link time warning, should this function ever be called. */ + ALT_STUB_WARNING(isatty); +#endif +} + +#else /* !ALT_USE_DIRECT_DRIVERS */ +/* + * isatty() can be used to determine whether the input file descriptor "file" + * refers to a terminal device or not. If it is a terminal device then the + * return value is one, otherwise it is zero. + * + * ALT_ISATTY is mapped onto the isatty() system call in alt_syscall.h + */ + +int ALT_ISATTY (int file) +{ + alt_fd* fd; + struct stat stat; + + /* + * A common error case is that when the file descriptor was created, the call + * to open() failed resulting in a negative file descriptor. This is trapped + * below so that we don't try and process an invalid file descriptor. + */ + + fd = (file < 0) ? NULL : &alt_fd_list[file]; + + if (fd) + { + /* + * If a device driver does not provide an fstat() function, then it is + * treated as a terminal device by default. + */ + + if (!fd->dev->fstat) + { + return 1; + } + + /* + * If a driver does provide an implementation of the fstat() function, then + * this is called so that the device can identify itself. + */ + + else + { + fstat (file, &stat); + return (stat.st_mode == _IFCHR) ? 1 : 0; + } + } + else + { + ALT_ERRNO = EBADFD; + return 0; + } +} + +#endif /* ALT_USE_DIRECT_DRIVERS */ diff --git a/software/qsys_tutorial_lcd_bsp/HAL/src/alt_kill.c b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_kill.c new file mode 100644 index 0000000..42c2e1d --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_kill.c @@ -0,0 +1,121 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include + +#include "sys/alt_errno.h" +#include "os/alt_syscall.h" + + +/* + * kill() is used by newlib in order to send signals to processes. Since there + * is only a single process in the HAL, the only valid values for pid are + * either the current process id, or the broadcast values, i.e. pid must be + * less than or equal to zero. + * + * ALT_KILL is mapped onto the kill() system call in alt_syscall.h + */ + +int ALT_KILL (int pid, int sig) +{ + int status = 0; + + if (pid <= 0) + { + switch (sig) + { + case 0: + + /* The null signal is used to check that a pid is valid. */ + + break; + + case SIGABRT: + case SIGALRM: + case SIGFPE: + case SIGILL: + case SIGKILL: + case SIGPIPE: + case SIGQUIT: + case SIGSEGV: + case SIGTERM: + case SIGUSR1: + case SIGUSR2: + case SIGBUS: + case SIGPOLL: + case SIGPROF: + case SIGSYS: + case SIGTRAP: + case SIGVTALRM: + case SIGXCPU: + case SIGXFSZ: + + /* + * The Posix standard defines the default behaviour for all these signals + * as being eqivalent to a call to _exit(). No mechanism is provided to + * change this behaviour. + */ + + _exit(0); + case SIGCHLD: + case SIGURG: + + /* + * The Posix standard defines these signals to be ignored by default. No + * mechanism is provided to change this behaviour. + */ + + break; + default: + + /* Tried to send an unsupported signal */ + + status = EINVAL; + } + } + + else if (pid > 0) + { + /* Attempted to signal a non-existant process */ + + status = ESRCH; + } + + if (status) + { + ALT_ERRNO = status; + return -1; + } + + return 0; +} diff --git a/software/qsys_tutorial_lcd_bsp/HAL/src/alt_link.c b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_link.c new file mode 100644 index 0000000..d796c59 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_link.c @@ -0,0 +1,56 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_warning.h" +#include "sys/alt_errno.h" +#include "os/alt_syscall.h" + +/* + * link() is used by newlib to create a new link to an existing file. This is + * unsupported in the HAL environment. However a "do-nothing" implementation + * is still provied for newlib compatability. + * + * ALT_LINK is mapped onto the link() system call in alt_syscall.h + */ + +int ALT_LINK ( char *existing, char *new) +{ + /* Generate a link time warning, should this function ever be called. */ + + ALT_STUB_WARNING(link); + + /* Indicate an error */ + + ALT_ERRNO = ENOSYS; + return -1; +} + diff --git a/software/qsys_tutorial_lcd_bsp/HAL/src/alt_load.c b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_load.c new file mode 100644 index 0000000..ffab4b9 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_load.c @@ -0,0 +1,88 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004-2005 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_load.h" +#include "sys/alt_cache.h" + +/* + * Linker defined symbols. + */ + +extern void __flash_rwdata_start; +extern void __ram_rwdata_start; +extern void __ram_rwdata_end; +extern void __flash_rodata_start; +extern void __ram_rodata_start; +extern void __ram_rodata_end; +extern void __flash_exceptions_start; +extern void __ram_exceptions_start; +extern void __ram_exceptions_end; + +/* + * alt_load() is called when the code is executing from flash. In this case + * there is no bootloader, so this application is responsible for loading to + * RAM any sections that are required. + */ + +void alt_load (void) +{ + /* + * Copy the .rwdata section. + */ + + alt_load_section (&__flash_rwdata_start, + &__ram_rwdata_start, + &__ram_rwdata_end); + + /* + * Copy the exception handler. + */ + + alt_load_section (&__flash_exceptions_start, + &__ram_exceptions_start, + &__ram_exceptions_end); + + /* + * Copy the .rodata section. + */ + + alt_load_section (&__flash_rodata_start, + &__ram_rodata_start, + &__ram_rodata_end); + + /* + * Now ensure that the caches are in synch. + */ + + alt_dcache_flush_all(); + alt_icache_flush_all(); +} diff --git a/software/qsys_tutorial_lcd_bsp/HAL/src/alt_log_macro.S b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_log_macro.S new file mode 100644 index 0000000..499c4ad --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_log_macro.S @@ -0,0 +1,56 @@ +/* alt_log_macro.S + * + * Implements the function tx_log_str, called by the assembly macro + * ALT_LOG_PUTS(). The macro will be empty when logging is turned off, + * and this function will not be compiled. When logging is on, + * this function is used to print out the strings defined in the beginning + * of alt_log_printf.c, using port information taken from system.h and + * alt_log_printf.h. + * + * This routine only handles strings, and sends a character into the defined + * output device's output buffer when the device is ready. It's intended for + * debugging purposes, where messages can be set to print out at certain + * points in the boot code to indicate the progress of the program. + * + */ + +#ifndef __ALT_LOG_MACROS__ +#define __ALT_LOG_MACROS__ + +/* define this flag to skip assembly-incompatible parts + * of various include files. */ +#define ALT_ASM_SRC + +#ifdef ALT_LOG_ENABLE // only compile this function if this flag is defined. + + #include "system.h" + #include "sys/alt_log_printf.h" + + .global tx_log_str +tx_log_str: + /* load base uart / jtag uart address into r6 */ + movhi r6, %hiadj(ALT_LOG_PORT_BASE) + addi r6, r6, %lo(ALT_LOG_PORT_BASE) +tx_next_char: + /* if pointer points to null, return + * r4 is the pointer to the str to be printed, set by ALT_LOG_PUTS */ + ldb r7, (r4) + beq r0, r7, end_tx + + /* check device transmit ready */ +wait_tx_ready_loop: + ldwio r5, ALT_LOG_PRINT_REG_OFFSET(r6) + andi r5, r5, ALT_LOG_PRINT_MSK + beq r5, r0, wait_tx_ready_loop + /* write char */ + stwio r7, ALT_LOG_PRINT_TXDATA_REG_OFFSET (r6) + /* advance string pointer */ + addi r4, r4, 1 + br tx_next_char +end_tx: + ret + +#endif + +#endif /* __ALT_LOG_MACROS__ */ + diff --git a/software/qsys_tutorial_lcd_bsp/HAL/src/alt_log_printf.c b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_log_printf.c new file mode 100644 index 0000000..1f7056d --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_log_printf.c @@ -0,0 +1,479 @@ + +/* alt_log_printf.c + * + * This file implements the various C functions used for the + * alt_log logging/debugging print functions. The functions + * sit as is here - the job of hiding them from the compiler + * if logging is disabled is accomplished in the .h file. + * + * All the global variables for alt_log are defined here. + * These include the various flags that turn on additional + * logging options; the strings for assembly printing; and + * other globals needed by different logging options. + * + * There are 4 functions that handle the actual printing: + * alt_log_txchar: Actual function that puts 1 char to UART/JTAG UART. + * alt_log_repchar: Calls alt_log_txchar 'n' times - used by + * alt_log_private_printf for formatting. + * alt_log_private_printf: + * Stripped down implementation of printf - no floats. + * alt_log_printf_proc: + * Wrapper function for private_printf. + * + * The rest of the functions are called by the macros which + * were called by code in the other components. Each function + * is preceded by a comment, about which file it gets called + * in, and what its purpose is. + * + * author: gkwan + */ + +/* skip all code if enable is off */ +#ifdef ALT_LOG_ENABLE + +#include +#include +#include +#ifdef __ALTERA_AVALON_JTAG_UART + #include "altera_avalon_jtag_uart.h" + #include +#endif +#include "sys/alt_log_printf.h" + +/* strings for assembly puts */ +char alt_log_msg_bss[] = "[crt0.S] Clearing BSS \r\n";; +char alt_log_msg_alt_main[] = "[crt0.S] Calling alt_main.\r\n"; +char alt_log_msg_stackpointer[] \ + = "[crt0.S] Setting up stack and global pointers.\r\n"; +char alt_log_msg_cache[] = "[crt0.S] Inst & Data Cache Initialized.\r\n"; +/* char array allocation for alt_write */ +char alt_log_write_buf[ALT_LOG_WRITE_ECHO_LEN+2]; + +/* global variables for all 'on' flags */ + +/* + * The boot message flag is linked into the data (rwdata) section + * because if it is zero, it would otherwise be placed in the bss section. + * alt_log examines this variable before the BSS is cleared in the boot-up + * process. + */ +volatile alt_u32 alt_log_boot_on_flag \ + __attribute__ ((section (".data"))) = ALT_LOG_BOOT_ON_FLAG_SETTING; + +volatile alt_u8 alt_log_write_on_flag = ALT_LOG_WRITE_ON_FLAG_SETTING; + +volatile alt_u8 alt_log_sys_clk_on_flag = ALT_LOG_SYS_CLK_ON_FLAG_SETTING; + +volatile alt_u8 alt_log_jtag_uart_alarm_on_flag = \ + ALT_LOG_JTAG_UART_ALARM_ON_FLAG_SETTING; + +volatile alt_u8 alt_log_jtag_uart_isr_on_flag = \ + ALT_LOG_JTAG_UART_ISR_ON_FLAG_SETTING; + +volatile alt_u8 alt_log_jtag_uart_startup_info_on_flag = \ + ALT_LOG_JTAG_UART_STARTUP_INFO_ON_FLAG_SETTING; + +/* Global alarm object for recurrent JTAG UART status printing */ +alt_alarm alt_log_jtag_uart_alarm_1; + +/* Global ints for system clock printing and count */ +volatile int alt_log_sys_clk_count; +volatile int alt_system_clock_in_sec; + +/* enum used by alt_log_private_printf */ +enum +{ + pfState_chars, + pfState_firstFmtChar, + pfState_otherFmtChar +}; + + + + +/* Function to put one char onto the UART/JTAG UART txdata register. */ +void alt_log_txchar(int c,char *base) +{ + /* Wait until the device is ready for a character */ + while((ALT_LOG_PRINT_REG_RD(base) & ALT_LOG_PRINT_MSK) == 0) + ; + /* And pop the character into the register */ + ALT_LOG_PRINT_TXDATA_WR(base,c); +} + + +/* Called by alt_log_private_printf to print out characters repeatedly */ +void alt_log_repchar(char c,int r,int base) +{ + while(r-- > 0) + alt_log_txchar(c,(char*) base); +} + + +/* Stripped down printf function */ +void alt_log_private_printf(const char *fmt,int base,va_list args) + { + const char *w; + char c; + int state; + int fmtLeadingZero = 0; /* init these all to 0 for -W warnings. */ + int fmtLong = 0; + int fmtBeforeDecimal = 0; + int fmtAfterDecimal = 0; + int fmtBase = 0; + int fmtSigned = 0; + int fmtCase = 0; /* For hex format, if 1, A-F, else a-f. */ + + w = fmt; + state = pfState_chars; + + while(0 != (c = *w++)) + { + switch(state) + { + case pfState_chars: + if(c == '%') + { + fmtLeadingZero = 0; + fmtLong = 0; + fmtBase = 10; + fmtSigned = 1; + fmtCase = 0; /* Only %X sets this. */ + fmtBeforeDecimal = -1; + fmtAfterDecimal = -1; + state = pfState_firstFmtChar; + } + else + { + alt_log_txchar(c,(char*)base); + } + break; + + case pfState_firstFmtChar: + if(c == '0') + { + fmtLeadingZero = 1; + state = pfState_otherFmtChar; + } + else if(c == '%') + { + alt_log_txchar(c,(char*)base); + state = pfState_chars; + } + else + { + state = pfState_otherFmtChar; + goto otherFmtChar; + } + break; + + case pfState_otherFmtChar: +otherFmtChar: + if(c == '.') + { + fmtAfterDecimal = 0; + } + else if('0' <= c && c <= '9') + { + c -= '0'; + if(fmtAfterDecimal < 0) /* still before decimal */ + { + if(fmtBeforeDecimal < 0) + { + fmtBeforeDecimal = 0; + } + else + { + fmtBeforeDecimal *= 10; + } + fmtBeforeDecimal += c; + } + else + { + fmtAfterDecimal = (fmtAfterDecimal * 10) + c; + } + } + else if(c == 'l') + { + fmtLong = 1; + } + else /* we're up to the letter which determines type */ + { + switch(c) + { + case 'd': + case 'i': +doIntegerPrint: + { + unsigned long v; + unsigned long p; /* biggest power of fmtBase */ + unsigned long vShrink; /* used to count digits */ + int sign; + int digitCount; + + /* Get the value */ + if(fmtLong) + { + if (fmtSigned) + { + v = va_arg(args,long); + } + else + { + v = va_arg(args,unsigned long); + } + } + else + { + if (fmtSigned) + { + v = va_arg(args,int); + } + else + { + v = va_arg(args,unsigned int); + } + } + + /* Strip sign */ + sign = 0; + /* (assumes sign bit is #31) */ + if( fmtSigned && (v & (0x80000000)) ) + { + v = ~v + 1; + sign = 1; + } + + /* Count digits, and get largest place value */ + vShrink = v; + p = 1; + digitCount = 1; + while( (vShrink = vShrink / fmtBase) > 0 ) + { + digitCount++; + p *= fmtBase; + } + + /* Print leading characters & sign */ + fmtBeforeDecimal -= digitCount; + if(fmtLeadingZero) + { + if(sign) + { + alt_log_txchar('-',(char*)base); + fmtBeforeDecimal--; + } + alt_log_repchar('0',fmtBeforeDecimal,base); + } + else + { + if(sign) + { + fmtBeforeDecimal--; + } + alt_log_repchar(' ',fmtBeforeDecimal,base); + if(sign) + { + alt_log_txchar('-',(char*)base); + } + } + + /* Print numbery parts */ + while(p) + { + unsigned char d; + + d = v / p; + d += '0'; + if(d > '9') + { + d += (fmtCase ? 'A' : 'a') - '0' - 10; + } + alt_log_txchar(d,(char*)base); + + v = v % p; + p = p / fmtBase; + } + } + + state = pfState_chars; + break; + + case 'u': + fmtSigned = 0; + goto doIntegerPrint; + case 'o': + fmtSigned = 0; + fmtBase = 8; + goto doIntegerPrint; + case 'x': + fmtSigned = 0; + fmtBase = 16; + goto doIntegerPrint; + case 'X': + fmtSigned = 0; + fmtBase = 16; + fmtCase = 1; + goto doIntegerPrint; + + case 'c': + alt_log_repchar(' ',fmtBeforeDecimal-1,base); + alt_log_txchar(va_arg(args,int),(char*)base); + break; + + case 's': + { + char *s; + + s = va_arg(args,char *); + alt_log_repchar(' ',fmtBeforeDecimal-strlen(s),base); + + while(*s) + alt_log_txchar(*s++,(char*)base); + } + break; + } /* switch last letter of fmt */ + state=pfState_chars; + } + break; + } /* switch */ + } /* while chars left */ + } /* printf */ + +/* Main logging printf function */ +int alt_log_printf_proc(const char *fmt, ... ) +{ + va_list args; + + va_start (args, fmt); + alt_log_private_printf(fmt,ALT_LOG_PORT_BASE,args); + return (0); +} + +/* Below are the functions called by different macros in various components. */ + +/* If the system has a JTAG_UART, include JTAG_UART debugging functions */ +#ifdef __ALTERA_AVALON_JTAG_UART + +/* The alarm function in altera_avalon_jtag_uart.c. + * This function, when turned on, prints out the status + * of the JTAG UART Control register, every ALT_LOG_JTAG_UART_TICKS. + * If the flag is off, the alarm should never be registered, and this + * function should never run */ +alt_u32 altera_avalon_jtag_uart_report_log(void * context) +{ + if (alt_log_jtag_uart_alarm_on_flag) { + altera_avalon_jtag_uart_state* dev = (altera_avalon_jtag_uart_state*) context; + const char* header="JTAG Alarm:"; + alt_log_jtag_uart_print_control_reg(dev, dev->base, header); + return ALT_LOG_JTAG_UART_TICKS; + } + else + { + /* If flag is not on, return 0 to disable future alarms. + * Should never be here, alarm should not be enabled at all. */ + return 0; + } +} + +void alt_log_jtag_uart_print_control_reg(altera_avalon_jtag_uart_state* dev, int base, const char* header) +{ + unsigned int control, space, ac, wi, ri, we, re; + control = IORD_ALTERA_AVALON_JTAG_UART_CONTROL(base); + space = (control & ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_MSK) >> + ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_OFST; + we= (control & ALTERA_AVALON_JTAG_UART_CONTROL_WE_MSK) >> + ALTERA_AVALON_JTAG_UART_CONTROL_WE_OFST; + re= (control & ALTERA_AVALON_JTAG_UART_CONTROL_RE_MSK) >> + ALTERA_AVALON_JTAG_UART_CONTROL_RE_OFST; + ri= (control & ALTERA_AVALON_JTAG_UART_CONTROL_RI_MSK) >> + ALTERA_AVALON_JTAG_UART_CONTROL_RI_OFST; + wi= (control & ALTERA_AVALON_JTAG_UART_CONTROL_WI_MSK) >> + ALTERA_AVALON_JTAG_UART_CONTROL_WI_OFST; + ac= (control & ALTERA_AVALON_JTAG_UART_CONTROL_AC_MSK) >> + ALTERA_AVALON_JTAG_UART_CONTROL_AC_OFST; + +#ifdef ALTERA_AVALON_JTAG_UART_SMALL + ALT_LOG_PRINTF( + "%s HW FIFO wspace=%d AC=%d WI=%d RI=%d WE=%d RE=%d\r\n", + header,space,ac,wi,ri,we,re); +#else + ALT_LOG_PRINTF( + "%s SW CirBuf = %d, HW FIFO wspace=%d AC=%d WI=%d RI=%d WE=%d RE=%d\r\n", + header,(dev->tx_out-dev->tx_in),space,ac,wi,ri,we,re); +#endif + + return; + +} + +/* In altera_avalon_jtag_uart.c + * Same output as the alarm function above, but this is called in the driver + * init function. Hence, it gives the status of the JTAG UART control register + * right at the initialization of the driver */ +void alt_log_jtag_uart_startup_info(altera_avalon_jtag_uart_state* dev, int base) +{ + const char* header="JTAG Startup Info:"; + alt_log_jtag_uart_print_control_reg(dev, base, header); + return; +} + +/* In altera_avalon_jtag_uart.c + * When turned on, this function will print out the status of the jtag uart + * control register every time there is a jtag uart "almost-empty" interrupt. */ +void alt_log_jtag_uart_isr_proc(int base, altera_avalon_jtag_uart_state* dev) +{ + if (alt_log_jtag_uart_isr_on_flag) { + const char* header="JTAG IRQ:"; + alt_log_jtag_uart_print_control_reg(dev, base, header); + } + return; +} + +#endif /* __ALTERA_AVALON_JTAG_UART */ + +/* In alt_write.c + * When the alt_log_write_on_flag is turned on, this function gets called + * every time alt_write gets called. The first + * ALT_LOG_WRITE_ECHO_LEN characters of every printf command (or any command + * that eventually calls write()) gets echoed to the alt_log output. */ +void alt_log_write(const void *ptr, size_t len) +{ + if (alt_log_write_on_flag) { + int temp_cnt; + int length=(ALT_LOG_WRITE_ECHO_LEN>len) ? len : ALT_LOG_WRITE_ECHO_LEN; + + if (length < 2) return; + + strncpy (alt_log_write_buf,ptr,length); + alt_log_write_buf[length-1]='\n'; + alt_log_write_buf[length]='\r'; + alt_log_write_buf[length+1]='\0'; + + /* Escape Ctrl-D's. If the Ctrl-D gets sent it might kill the terminal + * connection of alt_log. It will get replaced by 'D'. */ + for (temp_cnt=0;temp_cnt < length; temp_cnt++) { + if (alt_log_write_buf[temp_cnt]== 0x4) { + alt_log_write_buf[temp_cnt]='D'; + } + } + ALT_LOG_PRINTF("Write Echo: %s",alt_log_write_buf); + } +} + +/* In altera_avalon_timer_sc + * This function prints out a system clock is alive message + * every ALT_LOG_SYS_CLK_INTERVAL (in ticks). */ +void alt_log_system_clock() +{ + if (alt_log_sys_clk_on_flag) { + alt_log_sys_clk_count++; + if (alt_log_sys_clk_count > ALT_LOG_SYS_CLK_INTERVAL) { + alt_log_sys_clk_count = 0; + ALT_LOG_PRINTF("System Clock On %u\r\n",alt_system_clock_in_sec++); + } + } +} + + +#endif diff --git a/software/qsys_tutorial_lcd_bsp/HAL/src/alt_lseek.c b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_lseek.c new file mode 100644 index 0000000..7857b0d --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_lseek.c @@ -0,0 +1,117 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004-2005 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +#include "sys/alt_errno.h" +#include "sys/alt_warning.h" +#include "priv/alt_file.h" +#include "os/alt_syscall.h" + +#ifdef ALT_USE_DIRECT_DRIVERS + +off_t ALT_LSEEK (int file, off_t ptr, int dir) +{ + /* Generate a link time warning, should this function ever be called. */ + + ALT_STUB_WARNING(lseek); + + /* Indicate an error */ + + ALT_ERRNO = ENOSYS; + return -1; +} + +#else /* !ALT_USE_DIRECT_DRIVERS */ + +/* + * lseek() can be called to move the read/write pointer associated with the + * file descriptor "file". This function simply vectors the call to the lseek() + * function provided by the driver associated with the file descriptor. + * + * If the driver does not provide an implementation of lseek() an error is + * indicated. + * + * lseek() corresponds to the standard lseek() function. + * + * ALT_LSEEK is mapped onto the lseek() system call in alt_syscall.h + * + */ + +off_t ALT_LSEEK (int file, off_t ptr, int dir) +{ + alt_fd* fd; + off_t rc = 0; + + /* + * A common error case is that when the file descriptor was created, the call + * to open() failed resulting in a negative file descriptor. This is trapped + * below so that we don't try and process an invalid file descriptor. + */ + + fd = (file < 0) ? NULL : &alt_fd_list[file]; + + if (fd) + { + /* + * If the device driver provides an implementation of the lseek() function, + * then call that to process the request. + */ + + if (fd->dev->lseek) + { + rc = fd->dev->lseek(fd, ptr, dir); + } + /* + * Otherwise return an error. + */ + + else + { + rc = -ENOTSUP; + } + } + else + { + rc = -EBADFD; + } + + if (rc < 0) + { + ALT_ERRNO = -rc; + rc = -1; + } + + return rc; +} + +#endif /* ALT_USE_DIRECT_DRIVERS */ diff --git a/software/qsys_tutorial_lcd_bsp/HAL/src/alt_main.c b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_main.c new file mode 100644 index 0000000..a96229b --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_main.c @@ -0,0 +1,161 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2007 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include +#include +#include +#include +#include + +#include "sys/alt_dev.h" +#include "sys/alt_sys_init.h" +#include "sys/alt_irq.h" +#include "sys/alt_dev.h" + +#include "os/alt_hooks.h" + +#include "priv/alt_file.h" +#include "alt_types.h" + +#include "system.h" + +#include "sys/alt_log_printf.h" + +extern void _do_ctors(void); +extern void _do_dtors(void); + +/* + * Standard arguments for main. By default, no arguments are passed to main. + * However a device driver may choose to configure these arguments by calling + * alt_set_args(). The expectation is that this facility will only be used by + * the iclient/ihost utility. + */ + +int alt_argc = 0; +char** alt_argv = {NULL}; +char** alt_envp = {NULL}; + +/* + * Prototype for the entry point to the users application. + */ + +extern int main (int, char **, char **); + +/* + * alt_main is the C entry point for the HAL. It is called by the assembler + * startup code in the processor specific crt0.S. It is responsible for: + * completing the C runtime configuration; configuring all the + * devices/filesystems/components in the system; and call the entry point for + * the users application, i.e. main(). + */ + +void alt_main (void) +{ +#ifndef ALT_NO_EXIT + int result; +#endif + + /* ALT LOG - please see HAL/sys/alt_log_printf.h for details */ + ALT_LOG_PRINT_BOOT("[alt_main.c] Entering alt_main, calling alt_irq_init.\r\n"); + /* Initialize the interrupt controller. */ + alt_irq_init (NULL); + + /* Initialize the operating system */ + ALT_LOG_PRINT_BOOT("[alt_main.c] Done alt_irq_init, calling alt_os_init.\r\n"); + ALT_OS_INIT(); + + /* + * Initialize the semaphore used to control access to the file descriptor + * list. + */ + + ALT_LOG_PRINT_BOOT("[alt_main.c] Done OS Init, calling alt_sem_create.\r\n"); + ALT_SEM_CREATE (&alt_fd_list_lock, 1); + + /* Initialize the device drivers/software components. */ + ALT_LOG_PRINT_BOOT("[alt_main.c] Calling alt_sys_init.\r\n"); + alt_sys_init(); + ALT_LOG_PRINT_BOOT("[alt_main.c] Done alt_sys_init.\r\n"); + +#if !defined(ALT_USE_DIRECT_DRIVERS) && (defined(ALT_STDIN_PRESENT) || defined(ALT_STDOUT_PRESENT) || defined(ALT_STDERR_PRESENT)) + + /* + * Redirect stdio to the apropriate devices now that the devices have + * been initialized. This is only done if the user has requested these + * devices be present (not equal to /dev/null) and if direct drivers + * aren't being used. + */ + + ALT_LOG_PRINT_BOOT("[alt_main.c] Redirecting IO.\r\n"); + alt_io_redirect(ALT_STDOUT, ALT_STDIN, ALT_STDERR); +#endif + +#ifndef ALT_NO_C_PLUS_PLUS + /* + * Call the C++ constructors + */ + + ALT_LOG_PRINT_BOOT("[alt_main.c] Calling C++ constructors.\r\n"); + _do_ctors (); +#endif /* ALT_NO_C_PLUS_PLUS */ + +#if !defined(ALT_NO_C_PLUS_PLUS) && !defined(ALT_NO_CLEAN_EXIT) && !defined(ALT_NO_EXIT) + /* + * Set the C++ destructors to be called at system shutdown. This is only done + * if a clean exit has been requested (i.e. the exit() function has not been + * redefined as _exit()). This is in the interest of reducing code footprint, + * in that the atexit() overhead is removed when it's not needed. + */ + + ALT_LOG_PRINT_BOOT("[alt_main.c] Calling atexit.\r\n"); + atexit (_do_dtors); +#endif + + /* + * Finally, call main(). The return code is then passed to a subsequent + * call to exit() unless the application is never supposed to exit. + */ + + ALT_LOG_PRINT_BOOT("[alt_main.c] Calling main.\r\n"); + +#ifdef ALT_NO_EXIT + main (alt_argc, alt_argv, alt_envp); +#else + result = main (alt_argc, alt_argv, alt_envp); + close(STDOUT_FILENO); + exit (result); +#endif + + ALT_LOG_PRINT_BOOT("[alt_main.c] After main - we should not be here?.\r\n"); +} + diff --git a/software/qsys_tutorial_lcd_bsp/HAL/src/alt_malloc_lock.c b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_malloc_lock.c new file mode 100644 index 0000000..8c78f46 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_malloc_lock.c @@ -0,0 +1,52 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +/* + * These are the empty malloc lock/unlock stubs required by newlib. These are + * used to make newlib's malloc() function thread safe. The default HAL + * configuration is single threaded, so there is nothing to do here. Note that + * this requires that malloc is never called by an interrupt service routine. + */ + +void __malloc_lock ( struct _reent *_r ) +{ +} + +/* + * + */ + +void __malloc_unlock ( struct _reent *_r ) +{ +} diff --git a/software/qsys_tutorial_lcd_bsp/HAL/src/alt_mcount.S b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_mcount.S new file mode 100644 index 0000000..3837523 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_mcount.S @@ -0,0 +1,198 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003-2010 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/* mcount or _mcount is inserted by GCC before the function prologue of every + * function when a program is compiled for profiling. At the start of mcount, + * we guarantee that: + * ra = self_pc (an address in the function which called mcount) + * r8 = from_pc (an address in the function which called mcount's caller) + * + * Because this is always called at the start of a function we can corrupt + * r2,r3 and r11-r15. We must not corrupt r4-r7 (because they might contain + * function arguments for the instrumented function) or r8 (which holds ra + * for the instrumented function). + */ + + .global __mcount_fn_head + + .global mcount + + /* _mcount is used by gcc4 */ + .global _mcount + +_mcount: +mcount: + /* Use a hash to speed up locating fn_entry. We use bits 5 upwards to choose + * the bucket because bits 1:0 will always be 0, and because the distribution + * of values for bits 4:2 won't be even (aligning on cache line boundaries + * will skew it). Higher bits should be fairly random. + */ + /* fn_head = mcount_fn_head + (((unsigned int)self_pc >> 5) & (HASH_BUCKETS - 1)); */ + + srli r2, ra, 3 + movhi r3, %hiadj(__mcount_fn_head) + addi r3, r3, %lo(__mcount_fn_head) + andi r2, r2, 0xFC + add r11, r2, r3 + + /* The fast case is where we have already allocated a function arc, and so + * also a function pointer. + */ + + /* First find the function being called (using self_pc) */ + mov r10, r11 +0: + ldw r10, 0(r10) + beq r10, zero, .Lnew_arc + ldw r2, 4(r10) + bne r2, ra, 0b + + /* Found a function entry for this PC. Now look for an arc with a matching + * from_pc value. There will always be at least one arc. */ + ldw r3, 8(r10) +0: + ldw r2, 4(r3) + beq r2, r8, .Lfound_arc + ldw r3, 0(r3) + bne r3, zero, 0b + +.Lnew_arc: + addi sp, sp, -24 + +.LCFI0: + stw ra, 0(sp) + stw r4, 4(sp) + stw r5, 8(sp) + stw r6, 12(sp) + stw r7, 16(sp) + stw r8, 20(sp) + +.LCFI1: + /* __mcount_record(orig_ra, orig_r8, fn_entry, *fn_head); */ + mov r4, ra + mov r5, r8 + mov r6, r10 + mov r7, r11 + call __mcount_record + + /* restore registers from the stack */ + ldw ra, 0(sp) + ldw r4, 4(sp) + ldw r5, 8(sp) + ldw r6, 12(sp) + ldw r7, 16(sp) + ldw r8, 20(sp) + + addi sp, sp, 24 + +.LCFI2: + ret + +.Lfound_arc: + /* We've found the correct arc record. Increment the count and return */ + ldw r2, 8(r3) + addi r2, r2, 1 + stw r2, 8(r3) + ret + +.Lmcount_end: + + + +/* + * Dwarf2 debug information for the function. This provides GDB with the + * information it needs to backtrace out of this function. + */ + + .section .debug_frame,"",@progbits +.LCIE: + .4byte 2f - 1f /* Length */ +1: + .4byte 0xffffffff /* CIE id */ + .byte 0x1 /* Version */ + .string "" /* Augmentation */ + .uleb128 0x1 /* Code alignment factor */ + .sleb128 -4 /* Data alignment factor */ + .byte 0x1f /* Return address register */ + + .byte 0xc /* Define CFA */ + .uleb128 0x1b /* Register 27 (sp) */ + .uleb128 0x0 /* Offset 0 */ + + .align 2 /* Padding */ +2: + +.LFDE_mcount: + .4byte 2f - 1f /* Length */ +1: + .4byte .LCIE /* Pointer to CIE */ + .4byte mcount /* Start of table entry */ + .4byte .Lmcount_end - mcount /* Size of table entry */ + + .byte 0x4 /* Advance location */ + .4byte .LCFI0 - mcount /* to .LCFI0 */ + .byte 0xe /* Define CFA offset */ + .uleb128 24 /* to 24 */ + + .byte 0x4 /* Advance location */ + .4byte .LCFI1 - .LCFI0 /* to .LCFI1 */ + .byte 0x9f /* Store ra */ + .uleb128 0x6 /* at CFA-24 */ + .byte 0x84 /* Store r4 */ + .uleb128 0x5 /* at CFA-20 */ + .byte 0x85 /* Store r5 */ + .uleb128 0x4 /* at CFA-16 */ + .byte 0x86 /* Store r6 */ + .uleb128 0x3 /* at CFA-12 */ + .byte 0x87 /* Store r7 */ + .uleb128 0x2 /* at CFA-8 */ + .byte 0x88 /* Store r8 */ + .uleb128 0x1 /* at CFA-4 */ + + .byte 0x4 /* Advance location */ + .4byte .LCFI2 - .LCFI1 /* to .LCFI2 */ + .byte 0xe /* Define CFA offset */ + .uleb128 0 /* to 0 */ + .byte 0x8 /* Same value */ + .uleb128 31 /* for ra */ + .byte 0x8 /* Same value */ + .uleb128 4 /* for r4 */ + .byte 0x8 /* Same value */ + .uleb128 5 /* for r5 */ + .byte 0x8 /* Same value */ + .uleb128 6 /* for r6 */ + .byte 0x8 /* Same value */ + .uleb128 7 /* for r7 */ + .byte 0x8 /* Same value */ + .uleb128 8 /* for r8 */ + + .align 2 +2: + diff --git a/software/qsys_tutorial_lcd_bsp/HAL/src/alt_open.c b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_open.c new file mode 100644 index 0000000..4790f53 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_open.c @@ -0,0 +1,173 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_errno.h" +#include "sys/alt_warning.h" +#include "priv/alt_file.h" +#include "alt_types.h" +#include "os/alt_syscall.h" + +#ifdef ALT_USE_DIRECT_DRIVERS + +int ALT_OPEN (const char* file, int flags, int mode) +{ + /* Generate a link time warning, should this function ever be called. */ + + ALT_STUB_WARNING(open); + + /* Indicate an error */ + + ALT_ERRNO = ENOSYS; + return -1; +} + +#else /* !ALT_USE_DIRECT_DRIVERS */ + +extern alt_llist alt_dev_list; + +/* + * alt_file_locked() is used by open() to ensure that a device has not been + * previously locked for exclusive access using ioctl(). This test is only + * performed for devices. Filesystems are required to handle the ioctl() call + * themselves, and report the error from the filesystems open() function. + */ + +static int alt_file_locked (alt_fd* fd) +{ + alt_u32 i; + + /* + * Mark the file descriptor as belonging to a device. + */ + + fd->fd_flags |= ALT_FD_DEV; + + /* + * Loop through all current file descriptors searching for one that's locked + * for exclusive access. If a match is found, generate an error. + */ + + for (i = 0; i <= alt_max_fd; i++) + { + if ((alt_fd_list[i].dev == fd->dev) && + (alt_fd_list[i].fd_flags & ALT_FD_EXCL) && + (&alt_fd_list[i] != fd)) + { + return -EACCES; + } + } + + /* The device is not locked */ + + return 0; +} + +/* + * open() is called in order to get a file descriptor that reference the file + * or device named "name". This descriptor can then be used to manipulate the + * file/device using the standard system calls, e.g. write(), read(), ioctl() + * etc. + * + * This is equivalent to the standard open() system call. + * + * ALT_OPEN is mapped onto the open() system call in alt_syscall.h + */ + +int ALT_OPEN (const char* file, int flags, int mode) +{ + alt_dev* dev; + alt_fd* fd; + int index = -1; + int status = -ENODEV; + int isafs = 0; + + /* + * Check the device list, to see if a device with a matching name is + * registered. + */ + + if (!(dev = alt_find_dev (file, &alt_dev_list))) + { + /* No matching device, so try the filesystem list */ + + dev = alt_find_file (file); + isafs = 1; + } + + /* + * If a matching device or filesystem is found, allocate a file descriptor. + */ + + if (dev) + { + if ((index = alt_get_fd (dev)) < 0) + { + status = index; + } + else + { + fd = &alt_fd_list[index]; + fd->fd_flags = (flags & ~ALT_FD_FLAGS_MASK); + + /* If this is a device, ensure it isn't already locked */ + + if (isafs || ((status = alt_file_locked (fd)) >= 0)) + { + /* + * If the device or filesystem provides an open() callback function, + * call it now to perform any device/filesystem specific operations. + */ + + status = (dev->open) ? dev->open(fd, file, flags, mode): 0; + } + } + } + else + { + status = -ENODEV; + } + + /* Allocation failed, so clean up and return an error */ + + if (status < 0) + { + alt_release_fd (index); + ALT_ERRNO = -status; + return -1; + } + + /* return the reference upon success */ + + return index; +} + +#endif /* ALT_USE_DIRECT_DRIVERS */ diff --git a/software/qsys_tutorial_lcd_bsp/HAL/src/alt_printf.c b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_printf.c new file mode 100644 index 0000000..e742b57 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_printf.c @@ -0,0 +1,127 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/* + * This file provides a very minimal printf implementation for use with very + * small applications. Only the following format strings are supported: + * %x + * %s + * %c + * %% + */ + +#include +#include "sys/alt_stdio.h" + +/* + * ALT printf function + */ +void +alt_printf(const char* fmt, ... ) +{ + va_list args; + va_start(args, fmt); + const char *w; + char c; + + /* Process format string. */ + w = fmt; + while ((c = *w++) != 0) + { + /* If not a format escape character, just print */ + /* character. Otherwise, process format string. */ + if (c != '%') + { + alt_putchar(c); + } + else + { + /* Get format character. If none */ + /* available, processing is complete. */ + if ((c = *w++) != 0) + { + if (c == '%') + { + /* Process "%" escape sequence. */ + alt_putchar(c); + } + else if (c == 'c') + { + int v = va_arg(args, int); + alt_putchar(v); + } + else if (c == 'x') + { + /* Process hexadecimal number format. */ + unsigned long v = va_arg(args, unsigned long); + unsigned long digit; + int digit_shift; + + /* If the number value is zero, just print and continue. */ + if (v == 0) + { + alt_putchar('0'); + continue; + } + + /* Find first non-zero digit. */ + digit_shift = 28; + while (!(v & (0xF << digit_shift))) + digit_shift -= 4; + + /* Print digits. */ + for (; digit_shift >= 0; digit_shift -= 4) + { + digit = (v & (0xF << digit_shift)) >> digit_shift; + if (digit <= 9) + c = '0' + digit; + else + c = 'a' + digit - 10; + alt_putchar(c); + } + } + else if (c == 's') + { + /* Process string format. */ + char *s = va_arg(args, char *); + + while(*s) + alt_putchar(*s++); + } + } + else + { + break; + } + } + } +} diff --git a/software/qsys_tutorial_lcd_bsp/HAL/src/alt_putchar.c b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_putchar.c new file mode 100644 index 0000000..badaa02 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_putchar.c @@ -0,0 +1,59 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +#ifdef ALT_USE_DIRECT_DRIVERS +#include "system.h" +#include "sys/alt_driver.h" +#include "sys/alt_stdio.h" +#endif + +/* + * Uses the ALT_DRIVER_WRITE() macro to call directly to driver if available. + * Otherwise, uses newlib provided putchar() routine. + */ +int +alt_putchar(int c) +{ +#ifdef ALT_USE_DIRECT_DRIVERS + ALT_DRIVER_WRITE_EXTERNS(ALT_STDOUT_DEV); + char c1 = (char)(c & 0xff); + + if (ALT_DRIVER_WRITE(ALT_STDOUT_DEV, &c1, 1, 0) == -1) { + return -1; + } + return c; +#else + return putchar(c); +#endif +} diff --git a/software/qsys_tutorial_lcd_bsp/HAL/src/alt_putstr.c b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_putstr.c new file mode 100644 index 0000000..5345945 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_putstr.c @@ -0,0 +1,55 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +#ifdef ALT_USE_DIRECT_DRIVERS +#include +#include "system.h" +#include "sys/alt_driver.h" +#include "sys/alt_stdio.h" +#endif + +/* + * Uses the ALT_DRIVER_WRITE() macro to call directly to driver if available. + * Otherwise, uses newlib provided fputs() routine. + */ +int +alt_putstr(const char* str) +{ +#ifdef ALT_USE_DIRECT_DRIVERS + ALT_DRIVER_WRITE_EXTERNS(ALT_STDOUT_DEV); + return ALT_DRIVER_WRITE(ALT_STDOUT_DEV, str, strlen(str), 0); +#else + return fputs(str, stdout); +#endif +} diff --git a/software/qsys_tutorial_lcd_bsp/HAL/src/alt_read.c b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_read.c new file mode 100644 index 0000000..1c89777 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_read.c @@ -0,0 +1,125 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include + +#include "sys/alt_errno.h" +#include "sys/alt_warning.h" +#include "priv/alt_file.h" +#include "os/alt_syscall.h" + +/* + * The read() system call is used to read a block of data from a file or device. + * This function simply vectors the request to the device driver associated + * with the input file descriptor "file". + * + * ALT_READ is mapped onto the read() system call in alt_syscall.h + */ + +#ifdef ALT_USE_DIRECT_DRIVERS + +#include "system.h" +#include "sys/alt_driver.h" + +/* + * Provide minimal version that just reads from the stdin device when provided. + */ + +int ALT_READ (int file, void *ptr, size_t len) +{ +#ifdef ALT_STDIN_PRESENT + ALT_DRIVER_READ_EXTERNS(ALT_STDIN_DEV); +#endif + +#if !defined(ALT_STDIN_PRESENT) + /* Generate a link time warning, should this function ever be called. */ + ALT_STUB_WARNING(read); +#endif + + switch (file) { +#ifdef ALT_STDIN_PRESENT + case 0: /* stdin file descriptor */ + return ALT_DRIVER_READ(ALT_STDIN_DEV, ptr, len, 0); +#endif /* ALT_STDIN_PRESENT */ + default: + ALT_ERRNO = EBADFD; + return -1; + } +} + +#else /* !ALT_USE_DIRECT_DRIVERS */ + +int ALT_READ (int file, void *ptr, size_t len) +{ + alt_fd* fd; + int rval; + + /* + * A common error case is that when the file descriptor was created, the call + * to open() failed resulting in a negative file descriptor. This is trapped + * below so that we don't try and process an invalid file descriptor. + */ + + fd = (file < 0) ? NULL : &alt_fd_list[file]; + + if (fd) + { + /* + * If the file has not been opened with read access, or if the driver does + * not provide an implementation of read(), generate an error. Otherwise + * call the drivers read() function to process the request. + */ + + if (((fd->fd_flags & O_ACCMODE) != O_WRONLY) && + (fd->dev->read)) + { + if ((rval = fd->dev->read(fd, ptr, len)) < 0) + { + ALT_ERRNO = -rval; + return -1; + } + return rval; + } + else + { + ALT_ERRNO = EACCES; + } + } + else + { + ALT_ERRNO = EBADFD; + } + return -1; +} + +#endif /* ALT_USE_DIRECT_DRIVERS */ diff --git a/software/qsys_tutorial_lcd_bsp/HAL/src/alt_release_fd.c b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_release_fd.c new file mode 100644 index 0000000..84733a7 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_release_fd.c @@ -0,0 +1,54 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_dev.h" +#include "priv/alt_file.h" + +/* + * alt_release_fd() is called to free an allocated file descriptor. This is + * done by setting the device pointer in the file descriptor structure to zero. + * + * File descriptors correcponding to standard in, standard out and standard + * error cannont be released backed to the pool. They are always reserved. + */ + +void alt_release_fd (int fd) +{ + if (fd > 2) + { + alt_fd_list[fd].fd_flags = 0; + alt_fd_list[fd].dev = 0; + } +} + + + diff --git a/software/qsys_tutorial_lcd_bsp/HAL/src/alt_remap_cached.c b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_remap_cached.c new file mode 100644 index 0000000..f61cb9c --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_remap_cached.c @@ -0,0 +1,50 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003,2007 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "sys/alt_cache.h" +#include "system.h" + +#ifdef NIOS2_MMU_PRESENT +/* Convert KERNEL region address to IO region address */ +#define BYPASS_DCACHE_MASK (0x1 << 29) +#else +/* Set bit 31 of address to bypass D-cache */ +#define BYPASS_DCACHE_MASK (0x1 << 31) +#endif + +/* + * Convert a pointer to a block of uncached memory, into a block of + * cached memory. + */ + +void* alt_remap_cached (volatile void* ptr, alt_u32 len) +{ + return (void*) (((alt_u32) ptr) & ~BYPASS_DCACHE_MASK); +} diff --git a/software/qsys_tutorial_lcd_bsp/HAL/src/alt_remap_uncached.c b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_remap_uncached.c new file mode 100644 index 0000000..7ff6302 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_remap_uncached.c @@ -0,0 +1,51 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003,2007 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "sys/alt_cache.h" +#include "system.h" + +#ifdef NIOS2_MMU_PRESENT +/* Convert KERNEL region address to IO region address */ +#define BYPASS_DCACHE_MASK (0x1 << 29) +#else +/* Set bit 31 of address to bypass D-cache */ +#define BYPASS_DCACHE_MASK (0x1 << 31) +#endif + +/* + * Convert a pointer to a block of cached memory, into a block of + * uncached memory. + */ + +volatile void* alt_remap_uncached (void* ptr, alt_u32 len) +{ + alt_dcache_flush (ptr, len); + return (volatile void*) (((alt_u32) ptr) | BYPASS_DCACHE_MASK); +} diff --git a/software/qsys_tutorial_lcd_bsp/HAL/src/alt_rename.c b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_rename.c new file mode 100644 index 0000000..48afac0 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_rename.c @@ -0,0 +1,55 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_errno.h" +#include "sys/alt_warning.h" +#include "os/alt_syscall.h" + +/* + * _rename() is used by newlib to rename an existing file. This is unsupported + * in the HAL environment. However a "do-nothing" implementation is still + * provied for newlib compatability. + * + * ALT_RENAME is mapped onto the _rename() system call in alt_syscall.h + */ + +int ALT_RENAME (char *existing, char *new) +{ + /* Generate a link time warning, should this function ever be called. */ + + ALT_STUB_WARNING(_rename); + + /* Indicate an error */ + + ALT_ERRNO = ENOSYS; + return -1; +} diff --git a/software/qsys_tutorial_lcd_bsp/HAL/src/alt_sbrk.c b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_sbrk.c new file mode 100644 index 0000000..b8c3799 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_sbrk.c @@ -0,0 +1,136 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +#include "os/alt_syscall.h" + +#include "sys/alt_irq.h" +#include "sys/alt_stack.h" + +#include "system.h" + +/* + * sbrk() is called to dynamically extend the data segment for the application. + * Thie input argument "incr" is the size of the block to allocate. + * + * This simple implementation does not perform any bounds checking. Memory will + * be allocated, even if the request region colides with the stack or overflows + * the available physical memory. + * + * ALT_SBRK is mapped onto the sbrk() system call in alt_syscall.h + * + * This function is called by the profiling code to allocate memory so must be + * safe if called from an interrupt context. It must also not be instrumented + * because that would lead to an infinate loop. + */ + +extern char __alt_heap_start[]; /* set by linker */ +extern char __alt_heap_limit[]; /* set by linker */ + +static char *heap_end = __alt_heap_start; + +#if defined(ALT_EXCEPTION_STACK) && defined(ALT_STACK_CHECK) +char * alt_exception_old_stack_limit = NULL; +#endif + +caddr_t ALT_SBRK (int incr) __attribute__ ((no_instrument_function )); + +caddr_t ALT_SBRK (int incr) +{ + alt_irq_context context; + char *prev_heap_end; + + context = alt_irq_disable_all(); + + /* Always return data aligned on a word boundary */ + heap_end = (char *)(((unsigned int)heap_end + 3) & ~3); + +#ifdef ALT_MAX_HEAP_BYTES + /* + * User specified a maximum heap size. Return -1 if it would + * be exceeded by this sbrk call. + */ + if (((heap_end + incr) - __alt_heap_start) > ALT_MAX_HEAP_BYTES) { + alt_irq_enable_all(context); + return (caddr_t)-1; + } +#else + if ((heap_end + incr) > __alt_heap_limit) { + alt_irq_enable_all(context); + return (caddr_t)-1; + } +#endif + + prev_heap_end = heap_end; + heap_end += incr; + +#ifdef ALT_STACK_CHECK + /* + * If the stack and heap are contiguous then extending the heap reduces the + * space available for the stack. If we are still using the default stack + * then adjust the stack limit to note this, while checking for stack + * pointer overflow. + * If the stack limit isn't pointing at the top of the heap then the code + * is using a different stack so none of this needs to be done. + */ + + if (alt_stack_limit() == prev_heap_end) + { + if (alt_stack_pointer() <= heap_end) + alt_report_stack_overflow(); + + alt_set_stack_limit(heap_end); + } + +#ifdef ALT_EXCEPTION_STACK + /* + * If we are executing from the exception stack then compare against the + * stack we switched away from as well. The exception stack is a fixed + * size so doesn't need to be checked. + */ + + if (alt_exception_old_stack_limit == prev_heap_end) + { + if (alt_exception_old_stack_limit <= heap_end) + alt_report_stack_overflow(); + + alt_exception_old_stack_limit = heap_end; + } +#endif + +#endif + + alt_irq_enable_all(context); + + return (caddr_t) prev_heap_end; +} diff --git a/software/qsys_tutorial_lcd_bsp/HAL/src/alt_settod.c b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_settod.c new file mode 100644 index 0000000..59db0f8 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_settod.c @@ -0,0 +1,96 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include + +#include "sys/alt_errno.h" +#include "sys/alt_alarm.h" +#include "os/alt_syscall.h" + +/* + * "alt_timezone" and "alt_resettime" are the values of the the reset time and + * time zone set through the last call to settimeofday(). By default they are + * zero initialised. + */ + +extern struct timezone alt_timezone; +extern struct timeval alt_resettime; + +/* + * Macro defining the number of micoseconds in a second. + */ + +#define ALT_US (1000000) + + +/* + * settimeofday() can be called to calibrate the system clock, so that + * subsequent calls to gettimeofday() will return the elapsed "wall clock" + * time. + * + * This is done by updating the global structures "alt_resettime" and + * "alt_timezone" so that an immediate call to gettimeofday() would return + * the value specified by "t" and "tz". + * + * Warning: if this function is called concurrently with a call to + * gettimeofday(), the value returned by gettimeofday() will be unreliable. + * + * ALT_SETTIMEOFDAY is mapped onto the settimeofday() system call in + * alt_syscall.h + */ + +int ALT_SETTIMEOFDAY (const struct timeval *t, + const struct timezone *tz) +{ + alt_u32 nticks = alt_nticks (); + alt_u32 tick_rate = alt_ticks_per_second (); + + /* If there is a system clock available, update the current time */ + + if (tick_rate) + { + alt_resettime.tv_sec = t->tv_sec - nticks/tick_rate; + alt_resettime.tv_usec = t->tv_usec - + ((nticks*(ALT_US/tick_rate))%ALT_US); + + alt_timezone.tz_minuteswest = tz->tz_minuteswest; + alt_timezone.tz_dsttime = tz->tz_dsttime; + + return 0; + } + + /* There's no system clock available */ + + ALT_ERRNO = ENOSYS; + return -1; +} diff --git a/software/qsys_tutorial_lcd_bsp/HAL/src/alt_software_exception.S b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_software_exception.S new file mode 100644 index 0000000..2142594 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_software_exception.S @@ -0,0 +1,53 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003-2005 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + + /* + * This file provides the global symbol: software_exception. It is provided to + * support legacy code, and should not be used by new software. + * + * It is used by legacy code to invoke the software exception handler as + * defined by version 1.0 of the Nios II kit. It should only be used when you + * are providing your own interrupt entry point, i.e. you are not using + * alt_irq_entry. + */ + +#include "system.h" + + /* + * Pull in the exception handler. + */ + + .globl alt_exception + + .section .exceptions.entry.label, "xa" + + .globl software_exception + .type software_exception, @function +software_exception: diff --git a/software/qsys_tutorial_lcd_bsp/HAL/src/alt_stat.c b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_stat.c new file mode 100644 index 0000000..44e207b --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_stat.c @@ -0,0 +1,59 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include +#include +#include + +#include "os/alt_syscall.h" + +/* + * The stat() function is similar to the fstat() function in that it is used to + * obtain status information about a file. Instead of using an open file + * descriptor (like fstat()), stat() takes the name of a file as an input + * argument. + * + * ALT_STAT is mapped onto the stat() system call in alt_syscall.h + */ + +int ALT_STAT (const char *file, struct stat *st) +{ + int fd; + int rc; + + fd = open (file, 0); + rc = fstat (fd, st); + close (fd); + + return rc; +} diff --git a/software/qsys_tutorial_lcd_bsp/HAL/src/alt_tick.c b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_tick.c new file mode 100644 index 0000000..c73488d --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_tick.c @@ -0,0 +1,149 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_irq.h" +#include "sys/alt_alarm.h" +#include "os/alt_hooks.h" +#include "alt_types.h" + +/* + * "_alt_tick_rate" is used to store the value of the system clock frequency + * in ticks per second. It is initialised to zero, which corresponds to there + * being no system clock facility available. + */ + +alt_u32 _alt_tick_rate = 0; + +/* + * "_alt_nticks" is the number of system clock ticks that have elapsed since + * reset. + */ + +volatile alt_u32 _alt_nticks = 0; + +/* + * "alt_alarm_list" is the head of a linked list of registered alarms. This is + * initialised to be an empty list. + */ + +ALT_LLIST_HEAD(alt_alarm_list); + +/* + * alt_alarm_stop() is called to remove an alarm from the list of registered + * alarms. Alternatively an alarm can unregister itself by returning zero when + * the alarm executes. + */ + +void alt_alarm_stop (alt_alarm* alarm) +{ + alt_irq_context irq_context; + + irq_context = alt_irq_disable_all(); + alt_llist_remove (&alarm->llist); + alt_irq_enable_all (irq_context); +} + +/* + * alt_tick() is periodically called by the system clock driver in order to + * process the registered list of alarms. Each alarm is registed with a + * callback interval, and a callback function, "callback". + * + * The return value of the callback function indicates how many ticks are to + * elapse until the next callback. A return value of zero indicates that the + * alarm should be deactivated. + * + * alt_tick() is expected to run at interrupt level. + */ + +void alt_tick (void) +{ + alt_alarm* next; + alt_alarm* alarm = (alt_alarm*) alt_alarm_list.next; + + alt_u32 next_callback; + + /* update the tick counter */ + + _alt_nticks++; + + /* process the registered callbacks */ + + while (alarm != (alt_alarm*) &alt_alarm_list) + { + next = (alt_alarm*) alarm->llist.next; + + /* + * Upon the tick-counter rolling over it is safe to clear the + * roll-over flag; once the flag is cleared this (or subsequnt) + * tick events are enabled to generate an alarm event. + */ + if ((alarm->rollover) && (_alt_nticks == 0)) + { + alarm->rollover = 0; + } + + /* if the alarm period has expired, make the callback */ + if ((alarm->time <= _alt_nticks) && (alarm->rollover == 0)) + { + next_callback = alarm->callback (alarm->context); + + /* deactivate the alarm if the return value is zero */ + + if (next_callback == 0) + { + alt_alarm_stop (alarm); + } + else + { + alarm->time += next_callback; + + /* + * If the desired alarm time causes a roll-over, set the rollover + * flag. This will prevent the subsequent tick event from causing + * an alarm too early. + */ + if(alarm->time < _alt_nticks) + { + alarm->rollover = 1; + } + } + } + alarm = next; + } + + /* + * Update the operating system specific timer facilities. + */ + + ALT_OS_TIME_TICK(); +} + diff --git a/software/qsys_tutorial_lcd_bsp/HAL/src/alt_times.c b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_times.c new file mode 100644 index 0000000..4dd965d --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_times.c @@ -0,0 +1,71 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +#include "sys/alt_errno.h" +#include "sys/alt_alarm.h" +#include "os/alt_syscall.h" + +/* + * The times() function is used by newlib to obtain elapsed time information. + * The return value is the elapsed time since reset in system clock ticks. Note + * that this is distinct from the strict Posix version of times(), which should + * return the time since: 0 hours, 0 minutes, 0 seconds, January 1, 1970, GMT. + * + * The input structure is filled in with time accounting information. This + * implementation attributes all cpu time to the system. + * + * ALT_TIMES is mapped onto the times() system call in alt_syscall.h + */ + +clock_t ALT_TIMES (struct tms *buf) +{ + clock_t ticks = alt_nticks(); + + /* If there is no system clock present, generate an error */ + + if (!alt_ticks_per_second()) + { + ALT_ERRNO = ENOSYS; + return 0; + } + + /* Otherwise return the elapsed time */ + + buf->tms_utime = 0; + buf->tms_stime = ticks; + buf->tms_cutime = 0; + buf->tms_cstime = 0; + + return ticks; +} diff --git a/software/qsys_tutorial_lcd_bsp/HAL/src/alt_uncached_free.c b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_uncached_free.c new file mode 100644 index 0000000..6e362ba --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_uncached_free.c @@ -0,0 +1,49 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003,2007 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "sys/alt_cache.h" +#include "system.h" + +#ifdef NIOS2_MMU_PRESENT +/* Convert KERNEL region address to IO region address */ +#define BYPASS_DCACHE_MASK (0x1 << 29) +#else +/* Set bit 31 of address to bypass D-cache */ +#define BYPASS_DCACHE_MASK (0x1 << 31) +#endif + +/* + * Free a block of uncached memory. + */ + +void alt_uncached_free (volatile void* ptr) +{ + free ((void*) (((alt_u32) ptr) & ~BYPASS_DCACHE_MASK)); +} diff --git a/software/qsys_tutorial_lcd_bsp/HAL/src/alt_uncached_malloc.c b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_uncached_malloc.c new file mode 100644 index 0000000..ab3416d --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_uncached_malloc.c @@ -0,0 +1,55 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003,2007 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "sys/alt_cache.h" +#include "system.h" + +#ifdef NIOS2_MMU_PRESENT +/* Convert KERNEL region address to IO region address */ +#define BYPASS_DCACHE_MASK (0x1 << 29) +#else +/* Set bit 31 of address to bypass D-cache */ +#define BYPASS_DCACHE_MASK (0x1 << 31) +#endif + +/* + * Allocate a block of uncached memory. + */ + +volatile void* alt_uncached_malloc (size_t size) +{ + void* ptr; + + ptr = malloc (size); + + alt_dcache_flush (ptr, size); + + return ptr ? (volatile void*) (((alt_u32) ptr) | BYPASS_DCACHE_MASK) : NULL; +} diff --git a/software/qsys_tutorial_lcd_bsp/HAL/src/alt_unlink.c b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_unlink.c new file mode 100644 index 0000000..29e35d6 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_unlink.c @@ -0,0 +1,55 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_errno.h" +#include "sys/alt_warning.h" +#include "os/alt_syscall.h" + +/* + * unlink() is used by newlib to delete an existing link to a file. This is + * unsupported in the HAL environment. However a "do-nothing" implementation + * is still provied for newlib compatability. + * + * ALT_UNLINK is mapped onto the unlink() system call in alt_syscall.h + */ + +int ALT_UNLINK (char *name) +{ + /* Generate a link time warning, should this function ever be called. */ + + ALT_STUB_WARNING(unlink); + + /* Indicate an error */ + + ALT_ERRNO = ENOSYS; + return -1; +} diff --git a/software/qsys_tutorial_lcd_bsp/HAL/src/alt_usleep.c b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_usleep.c new file mode 100644 index 0000000..2330eb8 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_usleep.c @@ -0,0 +1,52 @@ +/* + * Copyright (c) 2003 Altera Corporation, San Jose, California, USA. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + * ------------ + * + * Altera does not recommend, suggest or require that this reference design + * file be used in conjunction or combination with any other product. + * + * usleep.c - Microsecond delay routine + */ + +#include + +#include "priv/alt_busy_sleep.h" +#include "os/alt_syscall.h" + +/* + * This function simply calls alt_busy_sleep() to perform the delay. This + * function implements the delay as a calibrated "busy loop". + * + * ALT_USLEEP is mapped onto the usleep() system call in alt_syscall.h + */ + + + +#if defined (__GNUC__) && __GNUC__ >= 4 +int ALT_USLEEP (useconds_t us) +#else +unsigned int ALT_USLEEP (unsigned int us) +#endif +{ + return alt_busy_sleep(us); +} diff --git a/software/qsys_tutorial_lcd_bsp/HAL/src/alt_wait.c b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_wait.c new file mode 100644 index 0000000..a42f80f --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_wait.c @@ -0,0 +1,52 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_errno.h" +#include "os/alt_syscall.h" + +/* + * wait() is used by newlib to wait for all child processes to exit. Since the + * HAL does not support spawning child processes, this returns immediately as + * there can't be anythign to wait for. + * + * ALT_WAIT is mapped onto the wait() system call in alt_syscall.h + */ + +int ALT_WAIT (int *status) +{ + *status = 0; + + ALT_ERRNO = ECHILD; + + return -1; +} + diff --git a/software/qsys_tutorial_lcd_bsp/HAL/src/alt_write.c b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_write.c new file mode 100644 index 0000000..51debb5 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/HAL/src/alt_write.c @@ -0,0 +1,138 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include + +#include "sys/alt_errno.h" +#include "sys/alt_warning.h" +#include "priv/alt_file.h" +#include "os/alt_syscall.h" + +#include "sys/alt_log_printf.h" + +/* + * The write() system call is used to write a block of data to a file or + * device. This function simply vectors the request to the device driver + * associated with the input file descriptor "file". + * + * ALT_WRITE is mapped onto the write() system call in alt_syscall.h + */ + +#ifdef ALT_USE_DIRECT_DRIVERS + +#include "system.h" +#include "sys/alt_driver.h" + +/* + * Provide minimal version that just writes to the stdout/stderr devices + * when provided. + */ + +int ALT_WRITE (int file, const void *ptr, size_t len) +{ +#ifdef ALT_STDOUT_PRESENT + ALT_DRIVER_WRITE_EXTERNS(ALT_STDOUT_DEV); +#endif +#ifdef ALT_STDERR_PRESENT + ALT_DRIVER_WRITE_EXTERNS(ALT_STDERR_DEV); +#endif + +#if !defined(ALT_STDOUT_PRESENT) && !defined(ALT_STDERR_PRESENT) + /* Generate a link time warning, should this function ever be called. */ + ALT_STUB_WARNING(write); +#endif + + switch (file) { +#ifdef ALT_STDOUT_PRESENT + case 1: /* stdout file descriptor */ + return ALT_DRIVER_WRITE(ALT_STDOUT_DEV, ptr, len, 0); +#endif /* ALT_STDOUT_PRESENT */ +#ifdef ALT_STDERR_PRESENT + case 2: /* stderr file descriptor */ + return ALT_DRIVER_WRITE(ALT_STDERR_DEV, ptr, len, 0); +#endif /* ALT_STDERR_PRESENT */ + default: + ALT_ERRNO = EBADFD; + return -1; + } +} + +#else /* !ALT_USE_DIRECT_DRIVERS */ + +int ALT_WRITE (int file, const void *ptr, size_t len) +{ + alt_fd* fd; + int rval; + + /* + * A common error case is that when the file descriptor was created, the call + * to open() failed resulting in a negative file descriptor. This is trapped + * below so that we don't try and process an invalid file descriptor. + */ + + fd = (file < 0) ? NULL : &alt_fd_list[file]; + + if (fd) + { + /* + * If the file has not been opened with write access, or if the driver does + * not provide an implementation of write(), generate an error. Otherwise + * call the drivers write() function to process the request. + */ + + if (((fd->fd_flags & O_ACCMODE) != O_RDONLY) && fd->dev->write) + { + + /* ALT_LOG - see altera_hal/HAL/inc/sys/alt_log_printf.h */ + ALT_LOG_WRITE_FUNCTION(ptr,len); + + if ((rval = fd->dev->write(fd, ptr, len)) < 0) + { + ALT_ERRNO = -rval; + return -1; + } + return rval; + } + else + { + ALT_ERRNO = EACCES; + } + } + else + { + ALT_ERRNO = EBADFD; + } + return -1; +} + +#endif /* ALT_USE_DIRECT_DRIVERS */ diff --git a/software/qsys_tutorial_lcd_bsp/HAL/src/altera_nios2_qsys_irq.c b/software/qsys_tutorial_lcd_bsp/HAL/src/altera_nios2_qsys_irq.c new file mode 100644 index 0000000..c7a4f93 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/HAL/src/altera_nios2_qsys_irq.c @@ -0,0 +1,37 @@ +/* + * Copyright (c) 2009 Altera Corporation, San Jose, California, USA. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + * altera_nios2_irq.c - Support for Nios II internal interrupt controller. + * + */ + +#include "sys/alt_irq.h" +#include "altera_nios2_qsys_irq.h" + +/* + * To initialize the internal interrupt controller, just clear the IENABLE + * register so that all possible IRQs are disabled. + */ +void altera_nios2_qsys_irq_init(void) +{ + NIOS2_WRITE_IENABLE(0); +} diff --git a/software/qsys_tutorial_lcd_bsp/HAL/src/crt0.S b/software/qsys_tutorial_lcd_bsp/HAL/src/crt0.S new file mode 100644 index 0000000..582445d --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/HAL/src/crt0.S @@ -0,0 +1,456 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "system.h" +#include "nios2.h" + +/* Setup header files to work with assembler code. */ +#define ALT_ASM_SRC + +/* Debug logging facility */ +#include "sys/alt_log_printf.h" + +/*************************************************************************\ +| MACROS | +\*************************************************************************/ + +/* + * The new build tools explicitly define macros when alt_load() + * must be called. The define ALT_LOAD_EXPLICITLY_CONTROLLED tells us that + * those macros are controlling if alt_load() needs to be called. + */ +#ifdef ALT_LOAD_EXPLICITLY_CONTROLLED + +/* Need to call alt_load() if any of these sections are being copied. */ +#if defined(ALT_LOAD_COPY_RODATA) || defined(ALT_LOAD_COPY_RWDATA) || defined(ALT_LOAD_COPY_EXCEPTIONS) +#define CALL_ALT_LOAD +#endif + +#else /* !ALT_LOAD_EXPLICITLY_CONTROLLED */ + +/* + * The legacy build tools use the following macros to detect when alt_load() + * needs to be called. + */ + +#define __ALT_LOAD_SECTIONS(res, text, rodata, exc) \ + ((res##_BASE != rodata##_BASE) || \ + (res##_BASE != rwdata##_BASE) || \ + (res##_BASE != exc##_BASE)) + +#define _ALT_LOAD_SECTIONS(res, text, rodata, exc) \ + __ALT_LOAD_SECTIONS(res, text, rodata, exc) + +#define ALT_LOAD_SECTIONS _ALT_LOAD_SECTIONS(ALT_RESET_DEVICE, \ + ALT_RODATA_DEVICE, \ + ALT_RWDATA_DEVICE, \ + ALT_EXCEPTIONS_DEVICE) + +/* Call alt_load() if there is no bootloader and ALT_LOAD_SECTIONS isn't 0. */ +#if defined(ALT_NO_BOOTLOADER) && ALT_LOAD_SECTIONS +#define CALL_ALT_LOAD +#endif + +#endif /* !ALT_LOAD_EXPLICITLY_CONTROLLED */ + +/* + * When the legacy build tools define a macro called ALT_NO_BOOTLOADER, + * it indicates that initialization code is allowed at the reset address. + * The new build tools define a macro called ALT_ALLOW_CODE_AT_RESET for + * the same purpose. + */ +#ifdef ALT_NO_BOOTLOADER +#define ALT_ALLOW_CODE_AT_RESET +#endif + +/*************************************************************************\ +| EXTERNAL REFERENCES | +\*************************************************************************/ + +/* + * The entry point for user code is either "main" in hosted mode, or + * "alt_main" in standalone mode. These are explicitly referenced here, + * to ensure they are built into the executable. This allows the user + * to build them into libraries, rather than supplying them in object + * files at link time. + */ + .globl main + .globl alt_main + +/* + * Create a reference to the software multiply/divide and trap handers, + * so that if they are provided, they will appear in the executable. + */ +#ifndef ALT_NO_INSTRUCTION_EMULATION + .globl alt_exception_muldiv +#endif +#ifdef ALT_TRAP_HANDLER + .globl alt_exception_trap +#endif + +/* + * Linker defined symbols used to initialize bss. + */ +.globl __bss_start +.globl __bss_end + +/*************************************************************************\ +| RESET SECTION (.entry) | +\*************************************************************************/ + +/* + * This is the reset entry point for Nios II. + * + * At reset, only the cache line which contain the reset vector is + * initialized by the hardware. The code within the first cache line + * initializes the remainder of the instruction cache. + */ + + .section .entry, "xa" + .align 5 + +/* + * Explicitly allow the use of r1 (the assembler temporary register) + * within this code. This register is normally reserved for the use of + * the assembler. + */ + .set noat + +/* + * Some tools want to know where the reset vector is. + * Code isn't always provided at the reset vector but at least the + * __reset label always contains the reset vector address because + * it is defined at the start of the .entry section. + */ + + .globl __reset + .type __reset, @function +__reset: + +/* + * Initialize the instruction cache if present (i.e. size > 0) and + * reset code is allowed unless optimizing for RTL simulation. + * RTL simulations can ensure the instruction cache is already initialized + * so skipping this loop speeds up RTL simulation. + */ + +#if NIOS2_ICACHE_SIZE > 0 && defined(ALT_ALLOW_CODE_AT_RESET) && !defined(ALT_SIM_OPTIMIZE) + /* Assume the instruction cache size is always a power of two. */ +#if NIOS2_ICACHE_SIZE > 0x8000 + movhi r2, %hi(NIOS2_ICACHE_SIZE) +#else + movui r2, NIOS2_ICACHE_SIZE +#endif + +0: + initi r2 + addi r2, r2, -NIOS2_ICACHE_LINE_SIZE + bgt r2, zero, 0b +1: + + /* + * The following debug information tells the ISS not to run the loop above + * but to perform its actions using faster internal code. + */ + .pushsection .debug_alt_sim_info + .int 1, 1, 0b, 1b + .popsection +#endif /* Initialize Instruction Cache */ + +/* + * Jump to the _start entry point in the .text section if reset code + * is allowed or if optimizing for RTL simulation. + */ +#if defined(ALT_ALLOW_CODE_AT_RESET) || defined(ALT_SIM_OPTIMIZE) + /* Jump to the _start entry point in the .text section. */ + movhi r1, %hi(_start) + ori r1, r1, %lo(_start) + jmp r1 + + .size __reset, . - __reset +#endif /* Jump to _start */ + +/* + * When not using exit, provide an _exit symbol to prevent unresolved + * references to _exit from the linker script. + */ +#ifdef ALT_NO_EXIT + .globl _exit +_exit: +#endif + +/*************************************************************************\ +| TEXT SECTION (.text) | +\*************************************************************************/ + +/* + * Start of the .text section, and also the code entry point when + * the code is executed by a bootloader rather than directly from reset. + */ + .section .text + .align 2 + + .globl _start + .type _start, @function +_start: + +/* + * Initialize the data cache if present (i.e. size > 0) and not + * optimizing for RTL simulation. + * RTL simulations can ensure the data cache is already initialized + * so skipping this loop speeds up RTL simulation. + */ + +#if NIOS2_DCACHE_SIZE > 0 && !defined(ALT_SIM_OPTIMIZE) + + /* Assume the data cache size is always a power of two. */ +#if NIOS2_DCACHE_SIZE > 0x8000 + movhi r2, %hi(NIOS2_DCACHE_SIZE) +#else + movui r2, NIOS2_DCACHE_SIZE +#endif + +0: + initd 0(r2) + addi r2, r2, -NIOS2_DCACHE_LINE_SIZE + bgt r2, zero, 0b +1: + + /* + * The following debug information tells the ISS not to run the loop above + * but to perform its actions using faster internal code. + */ + .pushsection .debug_alt_sim_info + .int 2, 1, 0b, 1b + .popsection + +#endif /* Initialize Data Cache */ + + /* Log that caches have been initialized. */ + ALT_LOG_PUTS(alt_log_msg_cache) + + /* Log that the stack pointer is about to be setup. */ + ALT_LOG_PUTS(alt_log_msg_stackpointer) + +#if (NIOS2_NUM_OF_SHADOW_REG_SETS == 0) + /* + * Now that the caches are initialized, set up the stack pointer. + * The value provided by the linker is assumed to be correctly aligned. + */ + movhi sp, %hi(__alt_stack_pointer) + ori sp, sp, %lo(__alt_stack_pointer) + + /* Set up the global pointer. */ + movhi gp, %hi(_gp) + ori gp, gp, %lo(_gp) + +#else /* NIOS2_NUM_OF_SHADOW_REG_SETS > 0 */ + + /* + * Set up the GP and SP in all shadow register sets. + */ + + /* + * Check current register set number, if CPU resets into a shadow register + * set, switch register set to 0 by writing zero to SSTATUS register and + * execute an ERET instruction that just jumps to the next PC address + * (use the NEXTPC instruction to get this). + */ + + rdctl r2, status + + /* Get the current register set number (STATUS.CRS). */ + andi r3, r2, NIOS2_STATUS_CRS_MSK + + /* Skip switch register set if STATUS.CRS is 0. */ + beq r3, zero, .Lskip_switch_reg_set + + .set nobreak + + /* Current register set is non-zero, set SSTATUS to 0. */ + mov sstatus, zero + + /* Get next pc and store in ea. */ + nextpc ea + + /* Point to instruction after eret. */ + addi ea, ea, 8 + + /* + * Execute ERET instruction that just jumps to the next PC address + */ + eret + +.Lskip_switch_reg_set: + mov r2, zero + + /* Reset STATUS register */ + wrctl status, r2 + + movui r3, NIOS2_NUM_OF_SHADOW_REG_SETS + + /* Set up the stack pointer in register set 0. */ + movhi sp, %hi(__alt_stack_pointer) + ori sp, sp, %lo(__alt_stack_pointer) + + /* Set up the global pointer in register set 0. */ + movhi gp, %hi(_gp) + ori gp, gp, %lo(_gp) + +.Lsetup_sp_and_gp_loop: + /* + * Setup GP and SP for shadow register set + * from NIOS2_NUM_OF_SHADOW_REG_SETS to 0 + */ + + /* Skip if number of register sets is 0. */ + beq r3, zero, .Lno_shadow_register_set + + + /* Add previous register set STATUS.PRS by 1 */ + movhi r4, 1 + add r2, r2, r4 + + /* Write STATUS */ + wrctl status, r2 + + /* Clear r0 in the shadow register set (not done by hardware) */ + wrprs r0, r0 + + /* Write the GP in previous register set */ + wrprs gp, gp + + /* Only write the SP in previous register set + * if using the seperate exception stack. For normal case (single stack), + * funnel code would read the SP from previous register set. + */ +#ifdef ALT_INTERRUPT_STACK + + movhi et, %hiadj(__alt_interrupt_stack_pointer) + addi et, et, %lo(__alt_interrupt_stack_pointer) + wrprs sp, et + +#endif /* ALT_INTERRUPT_STACK */ + + /* Decrease number of register set counter by 1 */ + addi r3, r3, -1 + + br .Lsetup_sp_and_gp_loop +.Lno_shadow_register_set: + +#endif /* NIOS2_NUM_OF_SHADOW_REG_SETS */ +/* + * Clear the BSS if not optimizing for RTL simulation. + * + * This uses the symbols: __bss_start and __bss_end, which are defined + * by the linker script. They mark the begining and the end of the bss + * region. The linker script guarantees that these values are word aligned. + */ +#ifndef ALT_SIM_OPTIMIZE + /* Log that the BSS is about to be cleared. */ + ALT_LOG_PUTS(alt_log_msg_bss) + + movhi r2, %hi(__bss_start) + ori r2, r2, %lo(__bss_start) + + movhi r3, %hi(__bss_end) + ori r3, r3, %lo(__bss_end) + + beq r2, r3, 1f + +0: + stw zero, (r2) + addi r2, r2, 4 + bltu r2, r3, 0b + +1: + + /* + * The following debug information tells the ISS not to run the loop above + * but to perform its actions using faster internal code. + */ + .pushsection .debug_alt_sim_info + .int 3, 1, 0b, 1b + .popsection +#endif /* ALT_SIM_OPTIMIZE */ + +/* + * The alt_load() facility is normally used when there is no bootloader. + * It copies some sections into RAM so it acts like a mini-bootloader. + */ +#ifdef CALL_ALT_LOAD + +#ifdef ALT_STACK_CHECK + /* + * If the user has selected stack checking then we need to set up a safe + * value in the stack limit register so that the relocation functions + * don't think the stack has overflowed (the contents of the rwdata + * section aren't defined until alt_load() has been called). + */ + mov et, zero +#endif + + call alt_load + +#endif /* CALL_ALT_LOAD */ + +#ifdef ALT_STACK_CHECK + /* + * Set up the stack limit (if required). The linker has set up the + * copy of the variable which is in memory. + */ + + ldw et, %gprel(alt_stack_limit_value)(gp) +#endif + + /* Log that alt_main is about to be called. */ + ALT_LOG_PUTS(alt_log_msg_alt_main) + + /* Call the C entry point. It should never return. */ + call alt_main + + /* Wait in infinite loop in case alt_main does return. */ +alt_after_alt_main: + br alt_after_alt_main + + .size _start, . - _start + +/* + * Add information about the stack base if stack overflow checking is enabled. + */ +#ifdef ALT_STACK_CHECK + .globl alt_stack_limit_value + .section .sdata,"aws",@progbits + .align 2 + .type alt_stack_limit_value, @object + .size alt_stack_limit_value, 4 +alt_stack_limit_value: + .long __alt_stack_limit +#endif diff --git a/software/qsys_tutorial_lcd_bsp/Makefile b/software/qsys_tutorial_lcd_bsp/Makefile new file mode 100644 index 0000000..dcf3b22 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/Makefile @@ -0,0 +1,766 @@ +#------------------------------------------------------------------------------ +# BSP MAKEFILE +# +# This makefile was automatically generated by the nios2-bsp-generate-files +# command. Its purpose is to build a custom Board Support Package (BSP) +# targeting a specific Nios II processor in an SOPC Builder-based design. +# +# To create an application or library Makefile which uses this BSP, try the +# nios2-app-generate-makefile or nios2-lib-generate-makefile commands. +#------------------------------------------------------------------------------ + +#------------------------------------------------------------------------------ +# TOOLS +#------------------------------------------------------------------------------ + +MKDIR := mkdir -p +ECHO := echo +SPACE := $(empty) $(empty) + +#------------------------------------------------------------------------------ +# The adjust-path macro +# +# If COMSPEC is defined, Make is launched from Windows through +# Cygwin. This adjust-path macro will call 'cygpath -u' on all +# paths to ensure they are readable by Make. +# +# If COMSPEC is not defined, Make is launched from *nix, and no adjustment +# is necessary +#------------------------------------------------------------------------------ + +ifndef COMSPEC +ifdef ComSpec +COMSPEC = $(ComSpec) +endif # ComSpec +endif # !COMSPEC + +ifdef COMSPEC + adjust-path = $(subst $(SPACE),\$(SPACE),$(shell cygpath -u "$1")) + adjust-path-mixed = $(subst $(SPACE),\$(SPACE),$(shell cygpath -m "$1")) +else + adjust-path = $(subst $(SPACE),\$(SPACE),$1) + adjust-path-mixed = $(subst $(SPACE),\$(SPACE),$1) +endif + +#------------------------------------------------------------------------------ +# DEFAULT TARGET +# +# The default target, "all", must appear before any other target in the +# Makefile. Note that extra prerequisites are added to the "all" rule later. +#------------------------------------------------------------------------------ +.PHONY: all +all: + @$(ECHO) [BSP build complete] + + +#------------------------------------------------------------------------------ +# PATHS & DIRECTORY NAMES +# +# Explicitly locate absolute path of the BSP root +#------------------------------------------------------------------------------ + +BSP_ROOT_DIR := . + +# Define absolute path to the root of the BSP. +ABS_BSP_ROOT := $(call adjust-path-mixed,$(shell pwd)) + +# Stash all BSP object files here +OBJ_DIR := ./obj + +NEWLIB_DIR = $(BSP_ROOT_DIR)/newlib + + +#------------------------------------------------------------------------------ +# MANAGED CONTENT +# +# All content between the lines "START MANAGED" and "END MANAGED" below is +# generated based on variables in the BSP settings file when the +# nios2-bsp-generate-files command is invoked. If you wish to persist any +# information pertaining to the build process, it is recomended that you +# utilize the BSP settings mechanism to do so. +# +# Note that most variable assignments in this section have a corresponding BSP +# setting that can be changed by using the nios2-bsp-create-settings or +# nios2-bsp-update-settings command before nios2-bsp-generate-files; if you +# want any variable set to a specific value when this Makefile is re-generated +# (to prevent hand-edits from being over-written), use the BSP settings +# facilities above. +#------------------------------------------------------------------------------ + +#START MANAGED + +# The following TYPE comment allows tools to identify the 'type' of target this +# makefile is associated with. +# TYPE: BSP_PRIVATE_MAKEFILE + +# This following VERSION comment indicates the version of the tool used to +# generate this makefile. A makefile variable is provided for VERSION as well. +# ACDS_VERSION: 13.0sp1 +ACDS_VERSION := 13.0sp1 + +# This following BUILD_NUMBER comment indicates the build number of the tool +# used to generate this makefile. +# BUILD_NUMBER: 232 + +SETTINGS_FILE := settings.bsp +SOPC_FILE := C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.sopcinfo + +#------------------------------------------------------------------------------- +# TOOL & COMMAND DEFINITIONS +# +# The base command for each build operation are expressed here. Additional +# switches may be expressed here. They will run for all instances of the +# utility. +#------------------------------------------------------------------------------- + +# Archiver command. Creates library files. +AR = nios2-elf-ar + +# Assembler command. Note that CC is used for .S files. +AS = nios2-elf-gcc + +# Custom flags only passed to the archiver. This content of this variable is +# directly passed to the archiver rather than the more standard "ARFLAGS". The +# reason for this is that GNU Make assumes some default content in ARFLAGS. +# This setting defines the value of BSP_ARFLAGS in Makefile. +BSP_ARFLAGS = -src + +# Custom flags only passed to the assembler. This setting defines the value of +# BSP_ASFLAGS in Makefile. +BSP_ASFLAGS = -Wa,-gdwarf2 + +# C/C++ compiler debug level. '-g' provides the default set of debug symbols +# typically required to debug a typical application. Omitting '-g' removes +# debug symbols from the ELF. This setting defines the value of +# BSP_CFLAGS_DEBUG in Makefile. +BSP_CFLAGS_DEBUG = -g + +# C/C++ compiler optimization level. "-O0" = no optimization,"-O2" = "normal" +# optimization, etc. "-O0" is recommended for code that you want to debug since +# compiler optimization can remove variables and produce non-sequential +# execution of code while debugging. This setting defines the value of +# BSP_CFLAGS_OPTIMIZATION in Makefile. +BSP_CFLAGS_OPTIMIZATION = '-Os' + +# C/C++ compiler warning level. "-Wall" is commonly used.This setting defines +# the value of BSP_CFLAGS_WARNINGS in Makefile. +BSP_CFLAGS_WARNINGS = -Wall + +# C compiler command. +CC = nios2-elf-gcc -xc + +# C++ compiler command. +CXX = nios2-elf-gcc -xc++ + +# Command used to remove files during 'clean' target. +RM = rm -f + + +#------------------------------------------------------------------------------- +# BUILD PRE & POST PROCESS COMMANDS +# +# The following variables are treated as shell commands in the rule +# definitions for each file-type associated with the BSP build, as well as +# commands run at the beginning and end of the entire BSP build operation. +# Pre-process commands are executed before the relevant command (for example, +# a command defined in the "CC_PRE_PROCESS" variable executes before the C +# compiler for building .c files), while post-process commands are executed +# immediately afterwards. +# +# You can view each pre/post-process command in the "Build Rules: All & +# Clean", "Pattern Rules to Build Objects", and "Library Rules" sections of +# this Makefile. +#------------------------------------------------------------------------------- + + +#------------------------------------------------------------------------------- +# BSP SOURCE BUILD SETTINGS (FLAG GENERATION) +# +# Software build settings such as compiler optimization, debug level, warning +# flags, etc., may be defined in the following variables. The variables below +# are concatenated together in the 'Flags' section of this Makefile to form +# final variables of flags passed to the build tools. +# +# These settings are considered private to the BSP and apply to all library & +# driver files in it; they do NOT automatically propagate to, for example, the +# build settings for an application. +# # For additional detail and syntax requirements, please refer to GCC help +# (example: "nios2-elf-gcc --help --verbose"). +# +# Unless indicated otherwise, multiple entries in each variable should be +# space-separated. +#------------------------------------------------------------------------------- + +# Altera HAL alt_sys_init.c generated source file +GENERATED_C_FILES := $(ABS_BSP_ROOT)/alt_sys_init.c +GENERATED_C_LIB_SRCS += alt_sys_init.c + + +#------------------------------------------------------------------------------- +# BSP SOURCE FILE LISTING +# +# All source files that comprise the BSP are listed here, along with path +# information to each file expressed relative to the BSP root. The precise +# list and location of each file is derived from the driver, operating system, +# or software package source file declarations. +# +# Following specification of the source files for each component, driver, etc., +# each source file type (C, assembly, etc.) is concatenated together and used +# to construct a list of objects. Pattern rules to build each object are then +# used to build each file. +#------------------------------------------------------------------------------- + +# altera_avalon_jtag_uart_driver sources root +altera_avalon_jtag_uart_driver_SRCS_ROOT := drivers + +# altera_avalon_jtag_uart_driver sources +altera_avalon_jtag_uart_driver_C_LIB_SRCS := \ + $(altera_avalon_jtag_uart_driver_SRCS_ROOT)/src/altera_avalon_jtag_uart_init.c \ + $(altera_avalon_jtag_uart_driver_SRCS_ROOT)/src/altera_avalon_jtag_uart_read.c \ + $(altera_avalon_jtag_uart_driver_SRCS_ROOT)/src/altera_avalon_jtag_uart_write.c \ + $(altera_avalon_jtag_uart_driver_SRCS_ROOT)/src/altera_avalon_jtag_uart_ioctl.c \ + $(altera_avalon_jtag_uart_driver_SRCS_ROOT)/src/altera_avalon_jtag_uart_fd.c + +# altera_avalon_pio_driver sources root +altera_avalon_pio_driver_SRCS_ROOT := drivers + +# altera_avalon_pio_driver sources +# altera_nios2_qsys_hal_driver sources root +altera_nios2_qsys_hal_driver_SRCS_ROOT := HAL + +# altera_nios2_qsys_hal_driver sources +altera_nios2_qsys_hal_driver_C_LIB_SRCS := \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/altera_nios2_qsys_irq.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_usleep.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_busy_sleep.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_irq_vars.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_icache_flush.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_icache_flush_all.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_dcache_flush.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_dcache_flush_all.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_dcache_flush_no_writeback.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_instruction_exception_entry.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_irq_register.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_iic.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_remap_cached.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_remap_uncached.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_uncached_free.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_uncached_malloc.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_do_ctors.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_do_dtors.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_gmon.c + +altera_nios2_qsys_hal_driver_ASM_LIB_SRCS := \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_exception_entry.S \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_exception_trap.S \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_exception_muldiv.S \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_irq_entry.S \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_software_exception.S \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_mcount.S \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_log_macro.S \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/crt0.S + +# hal sources root +hal_SRCS_ROOT := HAL + +# hal sources +hal_C_LIB_SRCS := \ + $(hal_SRCS_ROOT)/src/alt_alarm_start.c \ + $(hal_SRCS_ROOT)/src/alt_close.c \ + $(hal_SRCS_ROOT)/src/alt_dev.c \ + $(hal_SRCS_ROOT)/src/alt_dev_llist_insert.c \ + $(hal_SRCS_ROOT)/src/alt_dma_rxchan_open.c \ + $(hal_SRCS_ROOT)/src/alt_dma_txchan_open.c \ + $(hal_SRCS_ROOT)/src/alt_environ.c \ + $(hal_SRCS_ROOT)/src/alt_env_lock.c \ + $(hal_SRCS_ROOT)/src/alt_errno.c \ + $(hal_SRCS_ROOT)/src/alt_execve.c \ + $(hal_SRCS_ROOT)/src/alt_exit.c \ + $(hal_SRCS_ROOT)/src/alt_fcntl.c \ + $(hal_SRCS_ROOT)/src/alt_fd_lock.c \ + $(hal_SRCS_ROOT)/src/alt_fd_unlock.c \ + $(hal_SRCS_ROOT)/src/alt_find_dev.c \ + $(hal_SRCS_ROOT)/src/alt_find_file.c \ + $(hal_SRCS_ROOT)/src/alt_flash_dev.c \ + $(hal_SRCS_ROOT)/src/alt_fork.c \ + $(hal_SRCS_ROOT)/src/alt_fs_reg.c \ + $(hal_SRCS_ROOT)/src/alt_fstat.c \ + $(hal_SRCS_ROOT)/src/alt_get_fd.c \ + $(hal_SRCS_ROOT)/src/alt_getchar.c \ + $(hal_SRCS_ROOT)/src/alt_getpid.c \ + $(hal_SRCS_ROOT)/src/alt_gettod.c \ + $(hal_SRCS_ROOT)/src/alt_iic_isr_register.c \ + $(hal_SRCS_ROOT)/src/alt_instruction_exception_register.c \ + $(hal_SRCS_ROOT)/src/alt_ioctl.c \ + $(hal_SRCS_ROOT)/src/alt_io_redirect.c \ + $(hal_SRCS_ROOT)/src/alt_irq_handler.c \ + $(hal_SRCS_ROOT)/src/alt_isatty.c \ + $(hal_SRCS_ROOT)/src/alt_kill.c \ + $(hal_SRCS_ROOT)/src/alt_link.c \ + $(hal_SRCS_ROOT)/src/alt_load.c \ + $(hal_SRCS_ROOT)/src/alt_log_printf.c \ + $(hal_SRCS_ROOT)/src/alt_lseek.c \ + $(hal_SRCS_ROOT)/src/alt_main.c \ + $(hal_SRCS_ROOT)/src/alt_malloc_lock.c \ + $(hal_SRCS_ROOT)/src/alt_open.c \ + $(hal_SRCS_ROOT)/src/alt_printf.c \ + $(hal_SRCS_ROOT)/src/alt_putchar.c \ + $(hal_SRCS_ROOT)/src/alt_putstr.c \ + $(hal_SRCS_ROOT)/src/alt_read.c \ + $(hal_SRCS_ROOT)/src/alt_release_fd.c \ + $(hal_SRCS_ROOT)/src/alt_rename.c \ + $(hal_SRCS_ROOT)/src/alt_sbrk.c \ + $(hal_SRCS_ROOT)/src/alt_settod.c \ + $(hal_SRCS_ROOT)/src/alt_stat.c \ + $(hal_SRCS_ROOT)/src/alt_tick.c \ + $(hal_SRCS_ROOT)/src/alt_times.c \ + $(hal_SRCS_ROOT)/src/alt_unlink.c \ + $(hal_SRCS_ROOT)/src/alt_wait.c \ + $(hal_SRCS_ROOT)/src/alt_write.c + + +# Assemble all component C source files +COMPONENT_C_LIB_SRCS += \ + $(altera_avalon_jtag_uart_driver_C_LIB_SRCS) \ + $(altera_nios2_qsys_hal_driver_C_LIB_SRCS) \ + $(hal_C_LIB_SRCS) + +# Assemble all component assembly source files +COMPONENT_ASM_LIB_SRCS += \ + $(altera_nios2_qsys_hal_driver_ASM_LIB_SRCS) + +# Assemble all component C++ source files +COMPONENT_CPP_LIB_SRCS += \ + +#END MANAGED + +#------------------------------------------------------------------------------ +# PUBLIC.MK +# +# The generated public.mk file contains BSP information that is shared with +# other external makefiles, such as a Nios II application makefile. System- +# dependent information such as hardware-specific compiler flags and +# simulation file generation are stored here. +# +# In addition, public.mk contains include paths that various software, +# such as a device driver, may need for the C compiler. These paths are +# written to public.mk with respect to the BSP root. In public.mk, each +# path is prefixed with a special variable, $(ALT_LIBRARY_ROOT_DIR). The +# purpose of this variable is to allow an external Makefile to append on +# path information to precisely locate paths expressed in public.mk +# Since this is the BSP Makefile, we set ALT_LIBRARY_ROOT_DIR to point right +# here ("."), at the BSP root. +# +# ALT_LIBRARY_ROOT_DIR must always be set before public.mk is included. +#------------------------------------------------------------------------------ +ALT_LIBRARY_ROOT_DIR := . +include public.mk + + +#------------------------------------------------------------------------------ +# FLAGS +# +# Include paths for BSP files are written into the public.mk file and must +# be added to the existing list of pre-processor flags. In addition, "hooks" +# for standard flags left intentionally empty (CFLAGS, CPPFLAGS, ASFLAGS, +# and CXXFLAGS) are provided for conveniently adding to the relevant flags +# on the command-line or via script that calls make. +#------------------------------------------------------------------------------ +# Assemble final list of compiler flags from generated content +BSP_CFLAGS += \ + $(BSP_CFLAGS_DEFINED_SYMBOLS) \ + $(BSP_CFLAGS_UNDEFINED_SYMBOLS) \ + $(BSP_CFLAGS_OPTIMIZATION) \ + $(BSP_CFLAGS_DEBUG) \ + $(BSP_CFLAGS_WARNINGS) \ + $(BSP_CFLAGS_USER_FLAGS) \ + $(ALT_CFLAGS) \ + $(CFLAGS) + +# Make ready the final list of include directories and other C pre-processor +# flags. Each include path is made ready by prefixing it with "-I". +BSP_CPPFLAGS += \ + $(addprefix -I, $(BSP_INC_DIRS)) \ + $(addprefix -I, $(ALT_INCLUDE_DIRS)) \ + $(ALT_CPPFLAGS) \ + $(CPPFLAGS) + +# Finish off assembler flags with any user-provided flags +BSP_ASFLAGS += $(ASFLAGS) + +# Finish off C++ flags with any user-provided flags +BSP_CXXFLAGS += $(CXXFLAGS) + +# And finally, the ordered list +C_SRCS += $(GENERATED_C_LIB_SRCS) \ + $(COMPONENT_C_LIB_SRCS) + +CXX_SRCS += $(GENERATED_CPP_LIB_SRCS) \ + $(COMPONENT_CPP_LIB_SRCS) + +ASM_SRCS += $(GENERATED_ASM_LIB_SRCS) \ + $(COMPONENT_ASM_LIB_SRCS) + + +#------------------------------------------------------------------------------ +# LIST OF GENERATED FILES +# +# A Nios II BSP relies on the generation of several source files used +# by both the BSP and any applications referencing the BSP. +#------------------------------------------------------------------------------ + + +GENERATED_H_FILES := $(ABS_BSP_ROOT)/system.h + +GENERATED_LINKER_SCRIPT := $(ABS_BSP_ROOT)/linker.x + +GENERATED_FILES += $(GENERATED_H_FILES) \ + $(GENERATED_LINKER_SCRIPT) + + +#------------------------------------------------------------------------------ +# SETUP TO BUILD OBJECTS +# +# List of object files which are to be built. This is constructed from the input +# list of C source files (C_SRCS), C++ source files (CXX_SRCS), and assembler +# source file (ASM_SRCS). The permitted file extensions are: +# +# .c .C - for C files +# .cxx .cc .cpp .CXX .CC .CPP - for C++ files +# .S .s - for assembly files +# +# Extended description: The list of objects is a sorted list (duplicates +# removed) of all possible objects, placed beneath the ./obj directory, +# including any path information stored in the "*_SRCS" variable. The +# "patsubst" commands are used to concatenate together multiple file suffix +# types for common files (i.e. c++ as .cxx, .cc, .cpp). +# +# File extensions are case-insensitive in build rules with the exception of +# assembly sources. Nios II assembly sources with the ".S" extension are first +# run through the C preprocessor. Sources with the ".s" extension are not. +#------------------------------------------------------------------------------ +OBJS = $(sort $(addprefix $(OBJ_DIR)/, \ + $(patsubst %.c, %.o, $(patsubst %.C, %.o, $(C_SRCS))) \ + $(patsubst %.cxx, %.o, $(patsubst %.CXX, %.o, \ + $(patsubst %.cc, %.o, $(patsubst %.CC, %.o, \ + $(patsubst %.cpp, %.o, $(patsubst %.CPP, %.o, \ + $(CXX_SRCS) )))))) \ + $(patsubst %.S, %.o, $(patsubst %.s, %.o, $(ASM_SRCS))) )) + +# List of dependancy files for each object file. +DEPS = $(OBJS:.o=.d) + + +# Rules to force your project to rebuild or relink +# .force_relink file will cause any application that depends on this project to relink +# .force_rebuild file will cause this project to rebuild object files +# .force_rebuild_all file will cause this project and any project that depends on this project to rebuild object files + +FORCE_RELINK_DEP := .force_relink +FORCE_REBUILD_DEP := .force_rebuild +FORCE_REBUILD_ALL_DEP := .force_rebuild_all +FORCE_REBUILD_DEP_LIST := $(FORCE_RELINK_DEP) $(FORCE_REBUILD_DEP) $(FORCE_REBUILD_ALL_DEP) + +$(FORCE_REBUILD_DEP_LIST): + +$(OBJS): $(wildcard $(FORCE_REBUILD_DEP)) $(wildcard $(FORCE_REBUILD_ALL_DEP)) + + +#------------------------------------------------------------------------------ +# BUILD RULES: ALL & CLEAN +#------------------------------------------------------------------------------ +.DELETE_ON_ERROR: + +.PHONY: all +all: build_pre_process +all: Makefile $(GENERATED_FILES) $(BSP_LIB) $(NEWLIB_DIR) +all: build_post_process + + +# clean: remove .o/.a/.d +.PHONY: clean +clean: + @$(RM) -r $(BSP_LIB) $(OBJ_DIR) $(FORCE_REBUILD_DEP_LIST) +ifneq ($(wildcard $(NEWLIB_DIR)),) + @$(RM) -r $(NEWLIB_DIR) +endif + @$(ECHO) [BSP clean complete] + + +#------------------------------------------------------------------------------ +# BUILD PRE/POST PROCESS +#------------------------------------------------------------------------------ +build_pre_process : + $(BUILD_PRE_PROCESS) + +build_post_process : + $(BUILD_POST_PROCESS) + +.PHONY: build_pre_process build_post_process + + + +#------------------------------------------------------------------------------ +# MAKEFILE UP TO DATE? +# +# Is this very Makefile up to date? Someone may have changed the BSP settings +# file or the associated target hardware. +#------------------------------------------------------------------------------ +# Skip this check when clean is the only target +ifneq ($(MAKECMDGOALS),clean) + +ifneq ($(wildcard $(SETTINGS_FILE)),$(SETTINGS_FILE)) +$(warning Warning: BSP Settings File $(SETTINGS_FILE) could not be found.) +endif + +Makefile: $(wildcard $(SETTINGS_FILE)) + @$(ECHO) Makefile not up to date. + @$(ECHO) $(SETTINGS_FILE) has been modified since the BSP Makefile was generated. + @$(ECHO) + @$(ECHO) Generate the BSP to update the Makefile, and then build again. + @$(ECHO) + @$(ECHO) To generate from Eclipse: + @$(ECHO) " 1. Right-click the BSP project." + @$(ECHO) " 2. In the Nios II Menu, click Generate BSP." + @$(ECHO) + @$(ECHO) To generate from the command line: + @$(ECHO) " nios2-bsp-generate-files --settings= --bsp-dir=" + @$(ECHO) + @exit 1 + +ifneq ($(wildcard $(SOPC_FILE)),$(SOPC_FILE)) +$(warning Warning: SOPC File $(SOPC_FILE) could not be found.) +endif + +public.mk: $(wildcard $(SOPC_FILE)) + @$(ECHO) Makefile not up to date. + @$(ECHO) $(SOPC_FILE) has been modified since the BSP was generated. + @$(ECHO) + @$(ECHO) Generate the BSP to update the Makefile, and then build again. + @$(ECHO) + @$(ECHO) To generate from Eclipse: + @$(ECHO) " 1. Right-click the BSP project." + @$(ECHO) " 2. In the Nios II Menu, click Generate BSP." + @$(ECHO) + @$(ECHO) To generate from the command line: + @$(ECHO) " nios2-bsp-generate-files --settings= --bsp-dir=" + @$(ECHO) + @exit 1 + +endif # $(MAKECMDGOALS) != clean + +#------------------------------------------------------------------------------ +# PATTERN RULES TO BUILD OBJECTS +#------------------------------------------------------------------------------ +$(OBJ_DIR)/%.o: %.c + @$(ECHO) Compiling $( + +/* + * Device headers + */ + +#include "altera_nios2_qsys_irq.h" +#include "altera_avalon_jtag_uart.h" + +/* + * Allocate the device storage + */ + +ALTERA_NIOS2_QSYS_IRQ_INSTANCE ( NIOS2_PROCESSOR, nios2_processor); +ALTERA_AVALON_JTAG_UART_INSTANCE ( JTAG_UART, jtag_uart); + +/* + * Initialize the interrupt controller devices + * and then enable interrupts in the CPU. + * Called before alt_sys_init(). + * The "base" parameter is ignored and only + * present for backwards-compatibility. + */ + +void alt_irq_init ( const void* base ) +{ + ALTERA_NIOS2_QSYS_IRQ_INIT ( NIOS2_PROCESSOR, nios2_processor); + alt_irq_cpu_enable_interrupts(); +} + +/* + * Initialize the non-interrupt controller devices. + * Called after alt_irq_init(). + */ + +void alt_sys_init( void ) +{ + ALTERA_AVALON_JTAG_UART_INIT ( JTAG_UART, jtag_uart); +} diff --git a/software/qsys_tutorial_lcd_bsp/create-this-bsp b/software/qsys_tutorial_lcd_bsp/create-this-bsp new file mode 100644 index 0000000..49e6175 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/create-this-bsp @@ -0,0 +1,49 @@ +#!/bin/bash +# +# This script creates the ucosii_net_zipfs Board Support Package (BSP). + +BSP_TYPE=hal +BSP_DIR=. +SOPC_DIR=../../ +SOPC_FILE=C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.sopcinfo +NIOS2_BSP_ARGS="--set hal.max_file_descriptors 4 --set hal.enable_small_c_library true --set hal.sys_clk_timer none --set hal.timestamp_timer none --set hal.enable_exit false --set hal.enable_c_plus_plus false --set hal.enable_lightweight_device_driver_api true --set hal.enable_clean_exit false --set hal.enable_sim_optimize false --set hal.enable_reduced_device_drivers true --set hal.make.bsp_cflags_optimization '-Os'" +CPU_NAME= + + +# Don't run make if create-this-app script is called with --no-make arg +SKIP_MAKE= +while [ $# -gt 0 ] +do + case "$1" in + --no-make) + SKIP_MAKE=1 + ;; + *) + NIOS2_BSP_ARGS="$NIOS2_BSP_ARGS $1" + ;; + esac + shift +done + + +# Run nios2-bsp utility to create a hal BSP in this directory +# for the system with a .sopc file in $SOPC_FILE. +# Deprecating $SOPC_DIR in 10.1. Multiple .sopcinfo files in a directory may exist. + +if [ -z "$SOPC_FILE" ]; then + echo "WARNING: Use of a directory for locating a .sopcinfo file is deprecated in 10.1. Multiple .sopcinfo files may exist. You must specify the full .sopcinfo path." + cmd="nios2-bsp $BSP_TYPE $BSP_DIR $SOPC_DIR $NIOS2_BSP_ARGS $CPU_NAME" +else + cmd="nios2-bsp $BSP_TYPE $BSP_DIR $SOPC_FILE $NIOS2_BSP_ARGS $CPU_NAME" +fi + + +echo "create-this-bsp: Running \"$cmd\"" +$cmd || { + echo "$cmd failed" + exit 1 +} +if [ -z "$SKIP_MAKE" ]; then + echo "create-this-bsp: Running make" + make +fi diff --git a/software/qsys_tutorial_lcd_bsp/drivers/inc/altera_avalon_jtag_uart.h b/software/qsys_tutorial_lcd_bsp/drivers/inc/altera_avalon_jtag_uart.h new file mode 100644 index 0000000..95d4a99 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/drivers/inc/altera_avalon_jtag_uart.h @@ -0,0 +1,198 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#ifndef __ALT_AVALON_JTAG_UART_H__ +#define __ALT_AVALON_JTAG_UART_H__ + +#include + +#include "sys/alt_alarm.h" +#include "sys/alt_warning.h" + +#include "os/alt_sem.h" +#include "os/alt_flag.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * If the user wants all drivers to be small rather than fast then make sure + * this one is marked as needing to be small. + */ +#if defined ALT_USE_SMALL_DRIVERS && !defined ALTERA_AVALON_JTAG_UART_SMALL +#define ALTERA_AVALON_JTAG_UART_SMALL +#endif + +/* + * If the user wants to ignore FIFO full error after timeout + */ +#if defined ALT_JTAG_UART_IGNORE_FIFO_FULL_ERROR && !defined ALTERA_AVALON_JTAG_UART_IGNORE_FIFO_FULL_ERROR +#define ALTERA_AVALON_JTAG_UART_IGNORE_FIFO_FULL_ERROR +#endif + +/* + * Constants that can be overriden. + */ +#ifndef ALTERA_AVALON_JTAG_UART_DEFAULT_TIMEOUT +#define ALTERA_AVALON_JTAG_UART_DEFAULT_TIMEOUT 10 +#endif + +#ifndef ALTERA_AVALON_JTAG_UART_BUF_LEN +#define ALTERA_AVALON_JTAG_UART_BUF_LEN 2048 +#endif + +/* + * ALT_JTAG_UART_READ_RDY and ALT_JTAG_UART_WRITE_RDY are the bitmasks + * that define uC/OS-II event flags that are releated to this device. + * + * ALT_JTAG_UART_READ_RDY indicates that there is read data in the buffer + * ready to be processed. ALT_JTAG_UART_WRITE_RDY indicates that the transmitter is + * ready for more data. + */ +#define ALT_JTAG_UART_READ_RDY 0x1 +#define ALT_JTAG_UART_WRITE_RDY 0x2 +#define ALT_JTAG_UART_TIMEOUT 0x4 + +/* + * State structure definition. Each instance of the driver uses one + * of these structures to hold its associated state. + */ + +typedef struct altera_avalon_jtag_uart_state_s +{ + unsigned int base; + +#ifndef ALTERA_AVALON_JTAG_UART_SMALL + + unsigned int timeout; /* Timeout until host is assumed inactive */ + alt_alarm alarm; + unsigned int irq_enable; + unsigned int host_inactive; + + ALT_SEM (read_lock) + ALT_SEM (write_lock) + ALT_FLAG_GRP (events) + + /* The variables below are volatile because they are modified by the + * interrupt routine. Making them volatile and reading them atomically + * means that we don't need any large critical sections. + */ + volatile unsigned int rx_in; + unsigned int rx_out; + unsigned int tx_in; + volatile unsigned int tx_out; + char rx_buf[ALTERA_AVALON_JTAG_UART_BUF_LEN]; + char tx_buf[ALTERA_AVALON_JTAG_UART_BUF_LEN]; + +#endif /* !ALTERA_AVALON_JTAG_UART_SMALL */ + +} altera_avalon_jtag_uart_state; + +/* + * Macros used by alt_sys_init when the ALT file descriptor facility isn't used. + */ + +#ifdef ALTERA_AVALON_JTAG_UART_SMALL + +#define ALTERA_AVALON_JTAG_UART_STATE_INSTANCE(name, state) \ + altera_avalon_jtag_uart_state state = \ + { \ + name##_BASE, \ + } + +#define ALTERA_AVALON_JTAG_UART_STATE_INIT(name, state) + +#else /* !ALTERA_AVALON_JTAG_UART_SMALL */ + +#define ALTERA_AVALON_JTAG_UART_STATE_INSTANCE(name, state) \ + altera_avalon_jtag_uart_state state = \ + { \ + name##_BASE, \ + ALTERA_AVALON_JTAG_UART_DEFAULT_TIMEOUT, \ + } + +/* + * Externally referenced routines + */ +extern void altera_avalon_jtag_uart_init(altera_avalon_jtag_uart_state* sp, + int irq_controller_id, int irq); + +#define ALTERA_AVALON_JTAG_UART_STATE_INIT(name, state) \ + { \ + if (name##_IRQ == ALT_IRQ_NOT_CONNECTED) \ + { \ + ALT_LINK_ERROR ("Error: Interrupt not connected for " #name ". " \ + "You have selected the interrupt driven version of " \ + "the ALTERA Avalon JTAG UART driver, but the " \ + "interrupt is not connected for this device. You can " \ + "select a polled mode driver by checking the 'small " \ + "driver' option in the HAL configuration window, or " \ + "by using the -DALTERA_AVALON_JTAG_UART_SMALL " \ + "preprocessor flag."); \ + } \ + else \ + altera_avalon_jtag_uart_init(&state, \ + name##_IRQ_INTERRUPT_CONTROLLER_ID, \ + name##_IRQ); \ + } + +#endif /* ALTERA_AVALON_JTAG_UART_SMALL */ + +/* + * Include in case non-direct version of driver required. + */ +#include "altera_avalon_jtag_uart_fd.h" + +/* + * Map alt_sys_init macros to direct or non-direct versions. + */ +#ifdef ALT_USE_DIRECT_DRIVERS + +#define ALTERA_AVALON_JTAG_UART_INSTANCE(name, state) \ + ALTERA_AVALON_JTAG_UART_STATE_INSTANCE(name, state) +#define ALTERA_AVALON_JTAG_UART_INIT(name, state) \ + ALTERA_AVALON_JTAG_UART_STATE_INIT(name, state) + +#else /* !ALT_USE_DIRECT_DRIVERS */ + +#define ALTERA_AVALON_JTAG_UART_INSTANCE(name, dev) \ + ALTERA_AVALON_JTAG_UART_DEV_INSTANCE(name, dev) +#define ALTERA_AVALON_JTAG_UART_INIT(name, dev) \ + ALTERA_AVALON_JTAG_UART_DEV_INIT(name, dev) + +#endif /* ALT_USE_DIRECT_DRIVERS */ + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __ALT_AVALON_JTAG_UART_H__ */ diff --git a/software/qsys_tutorial_lcd_bsp/drivers/inc/altera_avalon_jtag_uart_fd.h b/software/qsys_tutorial_lcd_bsp/drivers/inc/altera_avalon_jtag_uart_fd.h new file mode 100644 index 0000000..b3c3200 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/drivers/inc/altera_avalon_jtag_uart_fd.h @@ -0,0 +1,125 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2007 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#ifndef __ALT_AVALON_JTAG_UART_FD_H__ +#define __ALT_AVALON_JTAG_UART_FD_H__ + +#include "sys/alt_dev.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * Externally referenced routines + */ +extern int altera_avalon_jtag_uart_read_fd (alt_fd* fd, char* ptr, int len); +extern int altera_avalon_jtag_uart_write_fd (alt_fd* fd, const char* ptr, + int len); + +/* + * Device structure definition. This is needed by alt_sys_init in order to + * reserve memory for the device instance. + */ + +typedef struct altera_avalon_jtag_uart_dev_s +{ + alt_dev dev; + altera_avalon_jtag_uart_state state; +} altera_avalon_jtag_uart_dev; + +/* + * Macros used by alt_sys_init when the ALT file descriptor facility is used. + */ + +#ifdef ALTERA_AVALON_JTAG_UART_SMALL + +#define ALTERA_AVALON_JTAG_UART_DEV_INSTANCE(name, d) \ + static altera_avalon_jtag_uart_dev d = \ + { \ + { \ + ALT_LLIST_ENTRY, \ + name##_NAME, \ + NULL, /* open */ \ + NULL, /* close */ \ + altera_avalon_jtag_uart_read_fd, \ + altera_avalon_jtag_uart_write_fd, \ + NULL, /* lseek */ \ + NULL, /* fstat */ \ + NULL, /* ioctl */ \ + }, \ + { \ + name##_BASE, \ + } \ + } + +#define ALTERA_AVALON_JTAG_UART_DEV_INIT(name, d) alt_dev_reg (&d.dev) + +#else /* !ALTERA_AVALON_JTAG_UART_SMALL */ + +extern int altera_avalon_jtag_uart_close_fd(alt_fd* fd); +extern int altera_avalon_jtag_uart_ioctl_fd (alt_fd* fd, int req, void* arg); + +#define ALTERA_AVALON_JTAG_UART_DEV_INSTANCE(name, d) \ + static altera_avalon_jtag_uart_dev d = \ + { \ + { \ + ALT_LLIST_ENTRY, \ + name##_NAME, \ + NULL, /* open */ \ + altera_avalon_jtag_uart_close_fd, \ + altera_avalon_jtag_uart_read_fd, \ + altera_avalon_jtag_uart_write_fd, \ + NULL, /* lseek */ \ + NULL, /* fstat */ \ + altera_avalon_jtag_uart_ioctl_fd, \ + }, \ + { \ + name##_BASE, \ + ALTERA_AVALON_JTAG_UART_DEFAULT_TIMEOUT, \ + } \ + } + +#define ALTERA_AVALON_JTAG_UART_DEV_INIT(name, d) \ + { \ + ALTERA_AVALON_JTAG_UART_STATE_INIT(name, d.state); \ + \ + /* make the device available to the system */ \ + alt_dev_reg(&d.dev); \ + } + +#endif /* ALTERA_AVALON_JTAG_UART_SMALL */ + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __ALT_AVALON_JTAG_UART_FD_H__ */ diff --git a/software/qsys_tutorial_lcd_bsp/drivers/inc/altera_avalon_jtag_uart_regs.h b/software/qsys_tutorial_lcd_bsp/drivers/inc/altera_avalon_jtag_uart_regs.h new file mode 100644 index 0000000..7f97160 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/drivers/inc/altera_avalon_jtag_uart_regs.h @@ -0,0 +1,73 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#ifndef __ALTERA_AVALON_JTAG_UART_REGS_H__ +#define __ALTERA_AVALON_JTAG_UART_REGS_H__ + +#include + +#define ALTERA_AVALON_JTAG_UART_DATA_REG 0 +#define IOADDR_ALTERA_AVALON_JTAG_UART_DATA(base) \ + __IO_CALC_ADDRESS_NATIVE(base, ALTERA_AVALON_JTAG_UART_DATA_REG) +#define IORD_ALTERA_AVALON_JTAG_UART_DATA(base) \ + IORD(base, ALTERA_AVALON_JTAG_UART_DATA_REG) +#define IOWR_ALTERA_AVALON_JTAG_UART_DATA(base, data) \ + IOWR(base, ALTERA_AVALON_JTAG_UART_DATA_REG, data) + +#define ALTERA_AVALON_JTAG_UART_DATA_DATA_MSK (0x000000FF) +#define ALTERA_AVALON_JTAG_UART_DATA_DATA_OFST (0) +#define ALTERA_AVALON_JTAG_UART_DATA_RVALID_MSK (0x00008000) +#define ALTERA_AVALON_JTAG_UART_DATA_RVALID_OFST (15) +#define ALTERA_AVALON_JTAG_UART_DATA_RAVAIL_MSK (0xFFFF0000) +#define ALTERA_AVALON_JTAG_UART_DATA_RAVAIL_OFST (16) + + +#define ALTERA_AVALON_JTAG_UART_CONTROL_REG 1 +#define IOADDR_ALTERA_AVALON_JTAG_UART_CONTROL(base) \ + __IO_CALC_ADDRESS_NATIVE(base, ALTERA_AVALON_JTAG_UART_CONTROL_REG) +#define IORD_ALTERA_AVALON_JTAG_UART_CONTROL(base) \ + IORD(base, ALTERA_AVALON_JTAG_UART_CONTROL_REG) +#define IOWR_ALTERA_AVALON_JTAG_UART_CONTROL(base, data) \ + IOWR(base, ALTERA_AVALON_JTAG_UART_CONTROL_REG, data) + +#define ALTERA_AVALON_JTAG_UART_CONTROL_RE_MSK (0x00000001) +#define ALTERA_AVALON_JTAG_UART_CONTROL_RE_OFST (0) +#define ALTERA_AVALON_JTAG_UART_CONTROL_WE_MSK (0x00000002) +#define ALTERA_AVALON_JTAG_UART_CONTROL_WE_OFST (1) +#define ALTERA_AVALON_JTAG_UART_CONTROL_RI_MSK (0x00000100) +#define ALTERA_AVALON_JTAG_UART_CONTROL_RI_OFST (8) +#define ALTERA_AVALON_JTAG_UART_CONTROL_WI_MSK (0x00000200) +#define ALTERA_AVALON_JTAG_UART_CONTROL_WI_OFST (9) +#define ALTERA_AVALON_JTAG_UART_CONTROL_AC_MSK (0x00000400) +#define ALTERA_AVALON_JTAG_UART_CONTROL_AC_OFST (10) +#define ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_MSK (0xFFFF0000) +#define ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_OFST (16) + +#endif /* __ALTERA_AVALON_JTAG_UART_REGS_H__ */ diff --git a/software/qsys_tutorial_lcd_bsp/drivers/inc/altera_avalon_pio_regs.h b/software/qsys_tutorial_lcd_bsp/drivers/inc/altera_avalon_pio_regs.h new file mode 100644 index 0000000..052439f --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/drivers/inc/altera_avalon_pio_regs.h @@ -0,0 +1,67 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#ifndef __ALTERA_AVALON_PIO_REGS_H__ +#define __ALTERA_AVALON_PIO_REGS_H__ + +#include + +#define IOADDR_ALTERA_AVALON_PIO_DATA(base) __IO_CALC_ADDRESS_NATIVE(base, 0) +#define IORD_ALTERA_AVALON_PIO_DATA(base) IORD(base, 0) +#define IOWR_ALTERA_AVALON_PIO_DATA(base, data) IOWR(base, 0, data) + +#define IOADDR_ALTERA_AVALON_PIO_DIRECTION(base) __IO_CALC_ADDRESS_NATIVE(base, 1) +#define IORD_ALTERA_AVALON_PIO_DIRECTION(base) IORD(base, 1) +#define IOWR_ALTERA_AVALON_PIO_DIRECTION(base, data) IOWR(base, 1, data) + +#define IOADDR_ALTERA_AVALON_PIO_IRQ_MASK(base) __IO_CALC_ADDRESS_NATIVE(base, 2) +#define IORD_ALTERA_AVALON_PIO_IRQ_MASK(base) IORD(base, 2) +#define IOWR_ALTERA_AVALON_PIO_IRQ_MASK(base, data) IOWR(base, 2, data) + +#define IOADDR_ALTERA_AVALON_PIO_EDGE_CAP(base) __IO_CALC_ADDRESS_NATIVE(base, 3) +#define IORD_ALTERA_AVALON_PIO_EDGE_CAP(base) IORD(base, 3) +#define IOWR_ALTERA_AVALON_PIO_EDGE_CAP(base, data) IOWR(base, 3, data) + + +#define IOADDR_ALTERA_AVALON_PIO_SET_BIT(base) __IO_CALC_ADDRESS_NATIVE(base, 4) +#define IORD_ALTERA_AVALON_PIO_SET_BITS(base) IORD(base, 4) +#define IOWR_ALTERA_AVALON_PIO_SET_BITS(base, data) IOWR(base, 4, data) + +#define IOADDR_ALTERA_AVALON_PIO_CLEAR_BITS(base) __IO_CALC_ADDRESS_NATIVE(base, 5) +#define IORD_ALTERA_AVALON_PIO_CLEAR_BITS(base) IORD(base, 5) +#define IOWR_ALTERA_AVALON_PIO_CLEAR_BITS(base, data) IOWR(base, 5, data) + + + +/* Defintions for direction-register operation with bi-directional PIOs */ +#define ALTERA_AVALON_PIO_DIRECTION_INPUT 0 +#define ALTERA_AVALON_PIO_DIRECTION_OUTPUT 1 + +#endif /* __ALTERA_AVALON_PIO_REGS_H__ */ diff --git a/software/qsys_tutorial_lcd_bsp/drivers/src/altera_avalon_jtag_uart_fd.c b/software/qsys_tutorial_lcd_bsp/drivers/src/altera_avalon_jtag_uart_fd.c new file mode 100644 index 0000000..53dfc3b --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/drivers/src/altera_avalon_jtag_uart_fd.c @@ -0,0 +1,86 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2007 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "alt_types.h" +#include "sys/alt_dev.h" +#include "altera_avalon_jtag_uart.h" + +extern int altera_avalon_jtag_uart_read(altera_avalon_jtag_uart_state* sp, + char* buffer, int space, int flags); +extern int altera_avalon_jtag_uart_write(altera_avalon_jtag_uart_state* sp, + const char* ptr, int count, int flags); +extern int altera_avalon_jtag_uart_ioctl(altera_avalon_jtag_uart_state* sp, + int req, void* arg); +extern int altera_avalon_jtag_uart_close(altera_avalon_jtag_uart_state* sp, + int flags); + +/* ----------------------------------------------------------------------- */ +/* --------------------- WRAPPERS FOR ALT FD SUPPORT --------------------- */ +/* + * + */ + +int +altera_avalon_jtag_uart_read_fd(alt_fd* fd, char* buffer, int space) +{ + altera_avalon_jtag_uart_dev* dev = (altera_avalon_jtag_uart_dev*) fd->dev; + + return altera_avalon_jtag_uart_read(&dev->state, buffer, space, + fd->fd_flags); +} + +int +altera_avalon_jtag_uart_write_fd(alt_fd* fd, const char* buffer, int space) +{ + altera_avalon_jtag_uart_dev* dev = (altera_avalon_jtag_uart_dev*) fd->dev; + + return altera_avalon_jtag_uart_write(&dev->state, buffer, space, + fd->fd_flags); +} + +#ifndef ALTERA_AVALON_JTAG_UART_SMALL + +int +altera_avalon_jtag_uart_close_fd(alt_fd* fd) +{ + altera_avalon_jtag_uart_dev* dev = (altera_avalon_jtag_uart_dev*) fd->dev; + + return altera_avalon_jtag_uart_close(&dev->state, fd->fd_flags); +} + +int +altera_avalon_jtag_uart_ioctl_fd(alt_fd* fd, int req, void* arg) +{ + altera_avalon_jtag_uart_dev* dev = (altera_avalon_jtag_uart_dev*) fd->dev; + + return altera_avalon_jtag_uart_ioctl(&dev->state, req, arg); +} + +#endif /* ALTERA_AVALON_JTAG_UART_SMALL */ diff --git a/software/qsys_tutorial_lcd_bsp/drivers/src/altera_avalon_jtag_uart_init.c b/software/qsys_tutorial_lcd_bsp/drivers/src/altera_avalon_jtag_uart_init.c new file mode 100644 index 0000000..7317bec --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/drivers/src/altera_avalon_jtag_uart_init.c @@ -0,0 +1,256 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2007 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include +#include +#include +#include + +#include + +#include "sys/alt_irq.h" +#include "sys/alt_alarm.h" +#include "sys/ioctl.h" +#include "alt_types.h" + +#include "altera_avalon_jtag_uart_regs.h" +#include "altera_avalon_jtag_uart.h" + +#include "sys/alt_log_printf.h" + +#ifndef ALTERA_AVALON_JTAG_UART_SMALL + +/* ----------------------------------------------------------- */ +/* ------------------------- FAST DRIVER --------------------- */ +/* ----------------------------------------------------------- */ +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT +static void altera_avalon_jtag_uart_irq(void* context); +#else +static void altera_avalon_jtag_uart_irq(void* context, alt_u32 id); +#endif +static alt_u32 altera_avalon_jtag_uart_timeout(void* context); + +/* + * Driver initialization code. Register interrupts and start a timer + * which we can use to check whether the host is there. + * Return 1 on sucessful IRQ register and 0 on failure. + */ + +void altera_avalon_jtag_uart_init(altera_avalon_jtag_uart_state* sp, + int irq_controller_id, int irq) +{ + ALT_FLAG_CREATE(&sp->events, 0); + ALT_SEM_CREATE(&sp->read_lock, 1); + ALT_SEM_CREATE(&sp->write_lock, 1); + + /* enable read interrupts at the device */ + sp->irq_enable = ALTERA_AVALON_JTAG_UART_CONTROL_RE_MSK; + + IOWR_ALTERA_AVALON_JTAG_UART_CONTROL(sp->base, sp->irq_enable); + + /* register the interrupt handler */ +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT + alt_ic_isr_register(irq_controller_id, irq, altera_avalon_jtag_uart_irq, + sp, NULL); +#else + alt_irq_register(irq, sp, altera_avalon_jtag_uart_irq); +#endif + + /* Register an alarm to go off every second to check for presence of host */ + sp->host_inactive = 0; + + if (alt_alarm_start(&sp->alarm, alt_ticks_per_second(), + &altera_avalon_jtag_uart_timeout, sp) < 0) + { + /* If we can't set the alarm then record "don't know if host present" + * and behave as though the host is present. + */ + sp->timeout = INT_MAX; + } + + /* ALT_LOG - see altera_hal/HAL/inc/sys/alt_log_printf.h */ + ALT_LOG_JTAG_UART_ALARM_REGISTER(sp, sp->base); +} + +/* + * Interrupt routine + */ +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT +static void altera_avalon_jtag_uart_irq(void* context) +#else +static void altera_avalon_jtag_uart_irq(void* context, alt_u32 id) +#endif +{ + altera_avalon_jtag_uart_state* sp = (altera_avalon_jtag_uart_state*) context; + unsigned int base = sp->base; + + /* ALT_LOG - see altera_hal/HAL/inc/sys/alt_log_printf.h */ + ALT_LOG_JTAG_UART_ISR_FUNCTION(base, sp); + + for ( ; ; ) + { + unsigned int control = IORD_ALTERA_AVALON_JTAG_UART_CONTROL(base); + + /* Return once nothing more to do */ + if ((control & (ALTERA_AVALON_JTAG_UART_CONTROL_RI_MSK | ALTERA_AVALON_JTAG_UART_CONTROL_WI_MSK)) == 0) + break; + + if (control & ALTERA_AVALON_JTAG_UART_CONTROL_RI_MSK) + { + /* process a read irq. Start by assuming that there is data in the + * receive FIFO (otherwise why would we have been interrupted?) + */ + unsigned int data = 1 << ALTERA_AVALON_JTAG_UART_DATA_RAVAIL_OFST; + + for ( ; ; ) + { + /* Check whether there is space in the buffer. If not then we must not + * read any characters from the buffer as they will be lost. + */ + unsigned int next = (sp->rx_in + 1) % ALTERA_AVALON_JTAG_UART_BUF_LEN; + if (next == sp->rx_out) + break; + + /* Try to remove a character from the FIFO and find out whether there + * are any more characters remaining. + */ + data = IORD_ALTERA_AVALON_JTAG_UART_DATA(base); + + if ((data & ALTERA_AVALON_JTAG_UART_DATA_RVALID_MSK) == 0) + break; + + sp->rx_buf[sp->rx_in] = (data & ALTERA_AVALON_JTAG_UART_DATA_DATA_MSK) >> ALTERA_AVALON_JTAG_UART_DATA_DATA_OFST; + sp->rx_in = (sp->rx_in + 1) % ALTERA_AVALON_JTAG_UART_BUF_LEN; + + /* Post an event to notify jtag_uart_read that a character has been read */ + ALT_FLAG_POST (sp->events, ALT_JTAG_UART_READ_RDY, OS_FLAG_SET); + } + + if (data & ALTERA_AVALON_JTAG_UART_DATA_RAVAIL_MSK) + { + /* If there is still data available here then the buffer is full + * so turn off receive interrupts until some space becomes available. + */ + sp->irq_enable &= ~ALTERA_AVALON_JTAG_UART_CONTROL_RE_MSK; + IOWR_ALTERA_AVALON_JTAG_UART_CONTROL(base, sp->irq_enable); + + /* Dummy read to ensure IRQ is cleared prior to ISR completion */ + IORD_ALTERA_AVALON_JTAG_UART_CONTROL(base); + } + } + + if (control & ALTERA_AVALON_JTAG_UART_CONTROL_WI_MSK) + { + /* process a write irq */ + unsigned int space = (control & ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_MSK) >> ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_OFST; + + while (space > 0 && sp->tx_out != sp->tx_in) + { + IOWR_ALTERA_AVALON_JTAG_UART_DATA(base, sp->tx_buf[sp->tx_out]); + + sp->tx_out = (sp->tx_out + 1) % ALTERA_AVALON_JTAG_UART_BUF_LEN; + + /* Post an event to notify jtag_uart_write that a character has been written */ + ALT_FLAG_POST (sp->events, ALT_JTAG_UART_WRITE_RDY, OS_FLAG_SET); + + space--; + } + + if (space > 0) + { + /* If we don't have any more data available then turn off the TX interrupt */ + sp->irq_enable &= ~ALTERA_AVALON_JTAG_UART_CONTROL_WE_MSK; + IOWR_ALTERA_AVALON_JTAG_UART_CONTROL(sp->base, sp->irq_enable); + + /* Dummy read to ensure IRQ is cleared prior to ISR completion */ + IORD_ALTERA_AVALON_JTAG_UART_CONTROL(base); + } + } + } +} + +/* + * Timeout routine is called every second + */ + +static alt_u32 +altera_avalon_jtag_uart_timeout(void* context) +{ + altera_avalon_jtag_uart_state* sp = (altera_avalon_jtag_uart_state *) context; + + unsigned int control = IORD_ALTERA_AVALON_JTAG_UART_CONTROL(sp->base); + + if (control & ALTERA_AVALON_JTAG_UART_CONTROL_AC_MSK) + { + IOWR_ALTERA_AVALON_JTAG_UART_CONTROL(sp->base, sp->irq_enable | ALTERA_AVALON_JTAG_UART_CONTROL_AC_MSK); + sp->host_inactive = 0; + } + else if (sp->host_inactive < INT_MAX - 2) { + sp->host_inactive++; + + if (sp->host_inactive >= sp->timeout) { + /* Post an event to indicate host is inactive (for jtag_uart_read */ + ALT_FLAG_POST (sp->events, ALT_JTAG_UART_TIMEOUT, OS_FLAG_SET); + } + } + + return alt_ticks_per_second(); +} + +/* + * The close() routine is implemented to drain the JTAG UART transmit buffer + * when not in "small" mode. This routine will wait for transimt data to be + * emptied unless a timeout from host-activity occurs. If the driver flags + * have been set to non-blocking mode, this routine will exit immediately if + * any data remains. This routine should be called indirectly (i.e. though + * the C library close() routine) so that the file descriptor associated + * with the relevant stream (i.e. stdout) can be closed as well. This routine + * does not manage file descriptors. + * + * The close routine is not implemented for the small driver; instead it will + * map to null. This is because the small driver simply waits while characters + * are transmitted; there is no interrupt-serviced buffer to empty + */ +int altera_avalon_jtag_uart_close(altera_avalon_jtag_uart_state* sp, int flags) +{ + /* + * Wait for all transmit data to be emptied by the JTAG UART ISR, or + * for a host-inactivity timeout, in which case transmit data will be lost + */ + while ( (sp->tx_out != sp->tx_in) && (sp->host_inactive < sp->timeout) ) { + if (flags & O_NONBLOCK) { + return -EWOULDBLOCK; + } + } + + return 0; +} + +#endif /* !ALTERA_AVALON_JTAG_UART_SMALL */ diff --git a/software/qsys_tutorial_lcd_bsp/drivers/src/altera_avalon_jtag_uart_ioctl.c b/software/qsys_tutorial_lcd_bsp/drivers/src/altera_avalon_jtag_uart_ioctl.c new file mode 100644 index 0000000..cf71e6f --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/drivers/src/altera_avalon_jtag_uart_ioctl.c @@ -0,0 +1,86 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include +#include +#include +#include + +#include + +#include "sys/ioctl.h" +#include "alt_types.h" + +#include "altera_avalon_jtag_uart_regs.h" +#include "altera_avalon_jtag_uart.h" + +#include "sys/alt_log_printf.h" + +#ifndef ALTERA_AVALON_JTAG_UART_SMALL + +/* ----------------------------------------------------------- */ +/* ------------------------- FAST DRIVER --------------------- */ +/* ----------------------------------------------------------- */ + +int +altera_avalon_jtag_uart_ioctl(altera_avalon_jtag_uart_state* sp, int req, + void* arg) +{ + int rc = -ENOTTY; + + switch (req) + { + case TIOCSTIMEOUT: + /* Set the time to wait until assuming host is not connected */ + if (sp->timeout != INT_MAX) + { + int timeout = *((int *)arg); + sp->timeout = (timeout >= 2 && timeout < INT_MAX) ? timeout : INT_MAX - 1; + rc = 0; + } + break; + + case TIOCGCONNECTED: + /* Find out whether host is connected */ + if (sp->timeout != INT_MAX) + { + *((int *)arg) = (sp->host_inactive < sp->timeout) ? 1 : 0; + rc = 0; + } + break; + + default: + break; + } + + return rc; +} + +#endif /* !ALTERA_AVALON_JTAG_UART_SMALL */ diff --git a/software/qsys_tutorial_lcd_bsp/drivers/src/altera_avalon_jtag_uart_read.c b/software/qsys_tutorial_lcd_bsp/drivers/src/altera_avalon_jtag_uart_read.c new file mode 100644 index 0000000..5657adb --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/drivers/src/altera_avalon_jtag_uart_read.c @@ -0,0 +1,205 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include +#include +#include +#include + +#include + +#include "sys/alt_irq.h" +#include "sys/alt_alarm.h" +#include "sys/ioctl.h" +#include "alt_types.h" + +#include "altera_avalon_jtag_uart_regs.h" +#include "altera_avalon_jtag_uart.h" + +#include "sys/alt_log_printf.h" + +#ifdef __ucosii__ +#include "includes.h" +#endif /* __ucosii__ */ + +#ifdef ALTERA_AVALON_JTAG_UART_SMALL + +/* ----------------------------------------------------------- */ +/* ----------------------- SMALL DRIVER ---------------------- */ +/* ----------------------------------------------------------- */ + +/* Read routine. The small version blocks until it has at least one byte + * available, it then returns as much as is immediately available without + * waiting any more. It's performance will be very poor without + * interrupts. + */ + +int +altera_avalon_jtag_uart_read(altera_avalon_jtag_uart_state* sp, + char* buffer, int space, int flags) +{ + unsigned int base = sp->base; + + char * ptr = buffer; + char * end = buffer + space; + + while (ptr < end) + { + unsigned int data = IORD_ALTERA_AVALON_JTAG_UART_DATA(base); + + if (data & ALTERA_AVALON_JTAG_UART_DATA_RVALID_MSK) + *ptr++ = (data & ALTERA_AVALON_JTAG_UART_DATA_DATA_MSK) >> ALTERA_AVALON_JTAG_UART_DATA_DATA_OFST; + else if (ptr != buffer) + break; + else if(flags & O_NONBLOCK) + break; + + } + + if (ptr != buffer) + return ptr - buffer; + else if (flags & O_NONBLOCK) + return -EWOULDBLOCK; + else + return -EIO; +} + +#else /* !ALTERA_AVALON_JTAG_UART_SMALL */ + +/* ----------------------------------------------------------- */ +/* ----------------------- FAST DRIVER ----------------------- */ +/* ----------------------------------------------------------- */ + +int +altera_avalon_jtag_uart_read(altera_avalon_jtag_uart_state* sp, + char * buffer, int space, int flags) +{ + char * ptr = buffer; + + alt_irq_context context; + unsigned int n; + + /* + * When running in a multi threaded environment, obtain the "read_lock" + * semaphore. This ensures that reading from the device is thread-safe. + */ + ALT_SEM_PEND (sp->read_lock, 0); + + while (space > 0) + { + unsigned int in, out; + + /* Read as much data as possible */ + do + { + in = sp->rx_in; + out = sp->rx_out; + + if (in >= out) + n = in - out; + else + n = ALTERA_AVALON_JTAG_UART_BUF_LEN - out; + + if (n == 0) + break; /* No more data available */ + + if (n > space) + n = space; + + memcpy(ptr, sp->rx_buf + out, n); + ptr += n; + space -= n; + + sp->rx_out = (out + n) % ALTERA_AVALON_JTAG_UART_BUF_LEN; + } + while (space > 0); + + /* If we read any data then return it */ + if (ptr != buffer) + break; + + /* If in non-blocking mode then return error */ + if (flags & O_NONBLOCK) + break; + +#ifdef __ucosii__ + /* OS Present: Pend on a flag if the OS is running, otherwise spin */ + if(OSRunning == OS_TRUE) { + /* + * When running in a multi-threaded mode, we pend on the read event + * flag set and timeout event flag set in the isr. This avoids wasting CPU + * cycles waiting in this thread, when we could be doing something more + * profitable elsewhere. + */ + ALT_FLAG_PEND (sp->events, + ALT_JTAG_UART_READ_RDY | ALT_JTAG_UART_TIMEOUT, + OS_FLAG_WAIT_SET_ANY + OS_FLAG_CONSUME, + 0); + } + else { + /* Spin until more data arrives or until host disconnects */ + while (in == sp->rx_in && sp->host_inactive < sp->timeout) + ; + } +#else + /* No OS: Always spin */ + while (in == sp->rx_in && sp->host_inactive < sp->timeout) + ; +#endif /* __ucosii__ */ + + if (in == sp->rx_in) + break; + } + + /* + * Now that access to the circular buffer is complete, release the read + * semaphore so that other threads can access the buffer. + */ + + ALT_SEM_POST (sp->read_lock); + + if (ptr != buffer) + { + /* If we read any data then there is space in the buffer so enable interrupts */ + context = alt_irq_disable_all(); + sp->irq_enable |= ALTERA_AVALON_JTAG_UART_CONTROL_RE_MSK; + IOWR_ALTERA_AVALON_JTAG_UART_CONTROL(sp->base, sp->irq_enable); + alt_irq_enable_all(context); + } + + if (ptr != buffer) + return ptr - buffer; + else if (flags & O_NONBLOCK) + return -EWOULDBLOCK; + else + return -EIO; +} + +#endif /* ALTERA_AVALON_JTAG_UART_SMALL */ diff --git a/software/qsys_tutorial_lcd_bsp/drivers/src/altera_avalon_jtag_uart_write.c b/software/qsys_tutorial_lcd_bsp/drivers/src/altera_avalon_jtag_uart_write.c new file mode 100644 index 0000000..11aeca1 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/drivers/src/altera_avalon_jtag_uart_write.c @@ -0,0 +1,217 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include +#include +#include +#include + +#include + +#include "sys/alt_irq.h" +#include "sys/alt_alarm.h" +#include "sys/ioctl.h" +#include "alt_types.h" + +#include "altera_avalon_jtag_uart_regs.h" +#include "altera_avalon_jtag_uart.h" + +#include "sys/alt_log_printf.h" + +#ifdef __ucosii__ +#include "includes.h" +#endif /* __ucosii__ */ + +#ifdef ALTERA_AVALON_JTAG_UART_SMALL + +/* ----------------------------------------------------------- */ +/* ------------------------ SMALL DRIVER --------------------- */ +/* ----------------------------------------------------------- */ + +/* Write routine. The small version blocks when there is no space to write + * into, so it's performance will be very bad if you are writing more than + * one FIFOs worth of data. But you said you didn't want to use interrupts :-) + */ + +int altera_avalon_jtag_uart_write(altera_avalon_jtag_uart_state* sp, + const char * ptr, int count, int flags) +{ + unsigned int base = sp->base; + + const char * end = ptr + count; + + while (ptr < end) + if ((IORD_ALTERA_AVALON_JTAG_UART_CONTROL(base) & ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_MSK) != 0) + IOWR_ALTERA_AVALON_JTAG_UART_DATA(base, *ptr++); + + return count; +} + +#else /* !ALTERA_AVALON_JTAG_UART_SMALL */ + +/* ----------------------------------------------------------- */ +/* ------------------------- FAST DRIVER --------------------- */ +/* ----------------------------------------------------------- */ + +int +altera_avalon_jtag_uart_write(altera_avalon_jtag_uart_state* sp, + const char * ptr, int count, int flags) +{ + /* Remove warning at optimisation level 03 by seting out to 0 */ + unsigned int in, out=0; + unsigned int n; + alt_irq_context context; + + const char * start = ptr; + + /* + * When running in a multi threaded environment, obtain the "write_lock" + * semaphore. This ensures that writing to the device is thread-safe. + */ + ALT_SEM_PEND (sp->write_lock, 0); + + do + { + /* Copy as much as we can into the transmit buffer */ + while (count > 0) + { + /* We need a stable value of the out pointer to calculate the space available */ + in = sp->tx_in; + out = sp->tx_out; + + if (in < out) + n = out - 1 - in; + else if (out > 0) + n = ALTERA_AVALON_JTAG_UART_BUF_LEN - in; + else + n = ALTERA_AVALON_JTAG_UART_BUF_LEN - 1 - in; + + if (n == 0) + break; + + if (n > count) + n = count; + + memcpy(sp->tx_buf + in, ptr, n); + ptr += n; + count -= n; + + sp->tx_in = (in + n) % ALTERA_AVALON_JTAG_UART_BUF_LEN; + } + + /* + * If interrupts are disabled then we could transmit here, we only need + * to enable interrupts if there is no space left in the FIFO + * + * For now kick the interrupt routine every time to make it transmit + * the data + */ + context = alt_irq_disable_all(); + sp->irq_enable |= ALTERA_AVALON_JTAG_UART_CONTROL_WE_MSK; + IOWR_ALTERA_AVALON_JTAG_UART_CONTROL(sp->base, sp->irq_enable); + alt_irq_enable_all(context); + + /* + * If there is any data left then either return now or block until + * some has been sent + */ + /* consider: test whether there is anything there while doing this and delay for at most 2s. */ + if (count > 0) + { + if (flags & O_NONBLOCK) + break; + +#ifdef __ucosii__ + /* OS Present: Pend on a flag if the OS is running, otherwise spin */ + if(OSRunning == OS_TRUE) { + /* + * When running in a multi-threaded mode, we pend on the write event + * flag set or the timeout flag in the isr. This avoids wasting CPU + * cycles waiting in this thread, when we could be doing something + * more profitable elsewhere. + */ +#ifdef ALTERA_AVALON_JTAG_UART_IGNORE_FIFO_FULL_ERROR + if(!sp->host_inactive) +#endif + ALT_FLAG_PEND (sp->events, + ALT_JTAG_UART_WRITE_RDY | ALT_JTAG_UART_TIMEOUT, + OS_FLAG_WAIT_SET_ANY + OS_FLAG_CONSUME, + 0); + } + else { + /* + * OS not running: Wait for data to be removed from buffer. + * Once the interrupt routine has removed some data then we + * will be able to insert some more. + */ + while (out == sp->tx_out && sp->host_inactive < sp->timeout) + ; + } +#else + /* + * No OS present: Always wait for data to be removed from buffer. Once + * the interrupt routine has removed some data then we will be able to + * insert some more. + */ + while (out == sp->tx_out && sp->host_inactive < sp->timeout) + ; +#endif /* __ucosii__ */ + + if (out == sp->tx_out) + break; + } + } + while (count > 0); + + /* + * Now that access to the circular buffer is complete, release the write + * semaphore so that other threads can access the buffer. + */ + ALT_SEM_POST (sp->write_lock); + + if (ptr != start) + return ptr - start; + else if (flags & O_NONBLOCK) + return -EWOULDBLOCK; +#ifdef ALTERA_AVALON_JTAG_UART_IGNORE_FIFO_FULL_ERROR + else if (sp->host_inactive >= sp->timeout) { + /* + * Reset the software FIFO, hardware FIFO could not be reset. + * Just throw away characters without reporting error. + */ + sp->tx_out = sp->tx_in = 0; + return ptr - start + count; + } +#endif + else + return -EIO; /* Host not connected */ +} + +#endif /* ALTERA_AVALON_JTAG_UART_SMALL */ diff --git a/software/qsys_tutorial_lcd_bsp/libhal_bsp.a b/software/qsys_tutorial_lcd_bsp/libhal_bsp.a new file mode 100644 index 0000000..e23a44e --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/libhal_bsp.a Binary files differ diff --git a/software/qsys_tutorial_lcd_bsp/linker.h b/software/qsys_tutorial_lcd_bsp/linker.h new file mode 100644 index 0000000..473b8af --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/linker.h @@ -0,0 +1,101 @@ +/* + * linker.h - Linker script mapping information + * + * Machine generated for CPU 'nios2_processor' in SOPC Builder design 'nios_system' + * SOPC Builder design path: C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.sopcinfo + * + * Generated: Thu Dec 01 23:23:48 JST 2016 + */ + +/* + * DO NOT MODIFY THIS FILE + * + * Changing this file will have subtle consequences + * which will almost certainly lead to a nonfunctioning + * system. If you do modify this file, be aware that your + * changes will be overwritten and lost when this file + * is generated again. + * + * DO NOT MODIFY THIS FILE + */ + +/* + * License Agreement + * + * Copyright (c) 2008 + * Altera Corporation, San Jose, California, USA. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + * This agreement shall be governed in all respects by the laws of the State + * of California and by the laws of the United States of America. + */ + +#ifndef __LINKER_H_ +#define __LINKER_H_ + + +/* + * BSP controls alt_load() behavior in crt0. + * + */ + +#define ALT_LOAD_EXPLICITLY_CONTROLLED + + +/* + * Base address and span (size in bytes) of each linker region + * + */ + +#define ONCHIP_MEMORY_REGION_BASE 0x20 +#define ONCHIP_MEMORY_REGION_SPAN 16352 +#define RESET_REGION_BASE 0x0 +#define RESET_REGION_SPAN 32 + + +/* + * Devices associated with code sections + * + */ + +#define ALT_EXCEPTIONS_DEVICE ONCHIP_MEMORY +#define ALT_RESET_DEVICE ONCHIP_MEMORY +#define ALT_RODATA_DEVICE ONCHIP_MEMORY +#define ALT_RWDATA_DEVICE ONCHIP_MEMORY +#define ALT_TEXT_DEVICE ONCHIP_MEMORY + + +/* + * Initialization code at the reset address is allowed (e.g. no external bootloader). + * + */ + +#define ALT_ALLOW_CODE_AT_RESET + + +/* + * The alt_load() facility is called from crt0 to copy sections into RAM. + * + */ + +#define ALT_LOAD_COPY_RWDATA + +#endif /* __LINKER_H_ */ diff --git a/software/qsys_tutorial_lcd_bsp/linker.x b/software/qsys_tutorial_lcd_bsp/linker.x new file mode 100644 index 0000000..4f94b86 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/linker.x @@ -0,0 +1,385 @@ +/* + * linker.x - Linker script + * + * Machine generated for CPU 'nios2_processor' in SOPC Builder design 'nios_system' + * SOPC Builder design path: C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.sopcinfo + * + * Generated: Thu Dec 01 23:23:48 JST 2016 + */ + +/* + * DO NOT MODIFY THIS FILE + * + * Changing this file will have subtle consequences + * which will almost certainly lead to a nonfunctioning + * system. If you do modify this file, be aware that your + * changes will be overwritten and lost when this file + * is generated again. + * + * DO NOT MODIFY THIS FILE + */ + +/* + * License Agreement + * + * Copyright (c) 2008 + * Altera Corporation, San Jose, California, USA. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + * This agreement shall be governed in all respects by the laws of the State + * of California and by the laws of the United States of America. + */ + +MEMORY +{ + reset : ORIGIN = 0x0, LENGTH = 32 + onchip_memory : ORIGIN = 0x20, LENGTH = 16352 +} + +/* Define symbols for each memory base-address */ +__alt_mem_onchip_memory = 0x0; + +OUTPUT_FORMAT( "elf32-littlenios2", + "elf32-littlenios2", + "elf32-littlenios2" ) +OUTPUT_ARCH( nios2 ) +ENTRY( _start ) + +/* + * The alt_load() facility is enabled. This typically happens when there isn't + * an external bootloader (e.g. flash bootloader). + * The LMA (aka physical address) of each loaded section is + * set to the .text memory device. + * The HAL alt_load() routine called from crt0 copies sections from + * the .text memory to RAM as needed. + */ + +SECTIONS +{ + + /* + * Output sections associated with reset and exceptions (they have to be first) + */ + + .entry : + { + KEEP (*(.entry)) + } > reset + + .exceptions : + { + PROVIDE (__ram_exceptions_start = ABSOLUTE(.)); + . = ALIGN(0x20); + KEEP (*(.irq)); + KEEP (*(.exceptions.entry.label)); + KEEP (*(.exceptions.entry.user)); + KEEP (*(.exceptions.entry)); + KEEP (*(.exceptions.irqtest.user)); + KEEP (*(.exceptions.irqtest)); + KEEP (*(.exceptions.irqhandler.user)); + KEEP (*(.exceptions.irqhandler)); + KEEP (*(.exceptions.irqreturn.user)); + KEEP (*(.exceptions.irqreturn)); + KEEP (*(.exceptions.notirq.label)); + KEEP (*(.exceptions.notirq.user)); + KEEP (*(.exceptions.notirq)); + KEEP (*(.exceptions.soft.user)); + KEEP (*(.exceptions.soft)); + KEEP (*(.exceptions.unknown.user)); + KEEP (*(.exceptions.unknown)); + KEEP (*(.exceptions.exit.label)); + KEEP (*(.exceptions.exit.user)); + KEEP (*(.exceptions.exit)); + KEEP (*(.exceptions)); + PROVIDE (__ram_exceptions_end = ABSOLUTE(.)); + } > onchip_memory + + PROVIDE (__flash_exceptions_start = LOADADDR(.exceptions)); + + .text : + { + /* + * All code sections are merged into the text output section, along with + * the read only data sections. + * + */ + + PROVIDE (stext = ABSOLUTE(.)); + + *(.interp) + *(.hash) + *(.dynsym) + *(.dynstr) + *(.gnu.version) + *(.gnu.version_d) + *(.gnu.version_r) + *(.rel.init) + *(.rela.init) + *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) + *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) + *(.rel.fini) + *(.rela.fini) + *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) + *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) + *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) + *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) + *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) + *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) + *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) + *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) + *(.rel.ctors) + *(.rela.ctors) + *(.rel.dtors) + *(.rela.dtors) + *(.rel.got) + *(.rela.got) + *(.rel.sdata .rel.sdata.* .rel.gnu.linkonce.s.*) + *(.rela.sdata .rela.sdata.* .rela.gnu.linkonce.s.*) + *(.rel.sbss .rel.sbss.* .rel.gnu.linkonce.sb.*) + *(.rela.sbss .rela.sbss.* .rela.gnu.linkonce.sb.*) + *(.rel.sdata2 .rel.sdata2.* .rel.gnu.linkonce.s2.*) + *(.rela.sdata2 .rela.sdata2.* .rela.gnu.linkonce.s2.*) + *(.rel.sbss2 .rel.sbss2.* .rel.gnu.linkonce.sb2.*) + *(.rela.sbss2 .rela.sbss2.* .rela.gnu.linkonce.sb2.*) + *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) + *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) + *(.rel.plt) + *(.rela.plt) + *(.rel.dyn) + + KEEP (*(.init)) + *(.plt) + *(.text .stub .text.* .gnu.linkonce.t.*) + + /* .gnu.warning sections are handled specially by elf32.em. */ + + *(.gnu.warning.*) + KEEP (*(.fini)) + PROVIDE (__etext = ABSOLUTE(.)); + PROVIDE (_etext = ABSOLUTE(.)); + PROVIDE (etext = ABSOLUTE(.)); + + *(.eh_frame_hdr) + /* Ensure the __preinit_array_start label is properly aligned. We + could instead move the label definition inside the section, but + the linker would then create the section even if it turns out to + be empty, which isn't pretty. */ + . = ALIGN(4); + PROVIDE (__preinit_array_start = ABSOLUTE(.)); + *(.preinit_array) + PROVIDE (__preinit_array_end = ABSOLUTE(.)); + PROVIDE (__init_array_start = ABSOLUTE(.)); + *(.init_array) + PROVIDE (__init_array_end = ABSOLUTE(.)); + PROVIDE (__fini_array_start = ABSOLUTE(.)); + *(.fini_array) + PROVIDE (__fini_array_end = ABSOLUTE(.)); + SORT(CONSTRUCTORS) + KEEP (*(.eh_frame)) + *(.gcc_except_table) + *(.dynamic) + PROVIDE (__CTOR_LIST__ = ABSOLUTE(.)); + KEEP (*(.ctors)) + KEEP (*(SORT(.ctors.*))) + PROVIDE (__CTOR_END__ = ABSOLUTE(.)); + PROVIDE (__DTOR_LIST__ = ABSOLUTE(.)); + KEEP (*(.dtors)) + KEEP (*(SORT(.dtors.*))) + PROVIDE (__DTOR_END__ = ABSOLUTE(.)); + KEEP (*(.jcr)) + . = ALIGN(4); + } > onchip_memory = 0x3a880100 /* Nios II NOP instruction */ + + .rodata : + { + PROVIDE (__ram_rodata_start = ABSOLUTE(.)); + . = ALIGN(4); + *(.rodata .rodata.* .gnu.linkonce.r.*) + *(.rodata1) + . = ALIGN(4); + PROVIDE (__ram_rodata_end = ABSOLUTE(.)); + } > onchip_memory + + PROVIDE (__flash_rodata_start = LOADADDR(.rodata)); + + /* + * + * This section's LMA is set to the .text region. + * crt0 will copy to this section's specified mapped region virtual memory address (VMA) + * + * .rwdata region equals the .text region, and is set to be loaded into .text region. + * This requires two copies of .rwdata in the .text region. One read writable at VMA. + * and one read-only at LMA. crt0 will copy from LMA to VMA on reset + * + */ + + .rwdata LOADADDR (.rodata) + SIZEOF (.rodata) : AT ( LOADADDR (.rodata) + SIZEOF (.rodata)+ SIZEOF (.rwdata) ) + { + PROVIDE (__ram_rwdata_start = ABSOLUTE(.)); + . = ALIGN(4); + *(.got.plt) *(.got) + *(.data1) + *(.data .data.* .gnu.linkonce.d.*) + + _gp = ABSOLUTE(. + 0x8000); + PROVIDE(gp = _gp); + + *(.rwdata .rwdata.*) + *(.sdata .sdata.* .gnu.linkonce.s.*) + *(.sdata2 .sdata2.* .gnu.linkonce.s2.*) + + . = ALIGN(4); + _edata = ABSOLUTE(.); + PROVIDE (edata = ABSOLUTE(.)); + PROVIDE (__ram_rwdata_end = ABSOLUTE(.)); + } > onchip_memory + + PROVIDE (__flash_rwdata_start = LOADADDR(.rwdata)); + + /* + * + * This section's LMA is set to the .text region. + * crt0 will copy to this section's specified mapped region virtual memory address (VMA) + * + */ + + .bss LOADADDR (.rwdata) + SIZEOF (.rwdata) : AT ( LOADADDR (.rwdata) + SIZEOF (.rwdata) ) + { + __bss_start = ABSOLUTE(.); + PROVIDE (__sbss_start = ABSOLUTE(.)); + PROVIDE (___sbss_start = ABSOLUTE(.)); + + *(.dynsbss) + *(.sbss .sbss.* .gnu.linkonce.sb.*) + *(.sbss2 .sbss2.* .gnu.linkonce.sb2.*) + *(.scommon) + + PROVIDE (__sbss_end = ABSOLUTE(.)); + PROVIDE (___sbss_end = ABSOLUTE(.)); + + *(.dynbss) + *(.bss .bss.* .gnu.linkonce.b.*) + *(COMMON) + + . = ALIGN(4); + __bss_end = ABSOLUTE(.); + } > onchip_memory + + /* + * + * One output section mapped to the associated memory device for each of + * the available memory devices. These are not used by default, but can + * be used by user applications by using the .section directive. + * + * The output section used for the heap is treated in a special way, + * i.e. the symbols "end" and "_end" are added to point to the heap start. + * + * Because alt_load() is enabled, these sections have + * their LMA set to be loaded into the .text memory region. + * However, the alt_load() code will NOT automatically copy + * these sections into their mapped memory region. + * + */ + + /* + * + * This section's LMA is set to the .text region. + * crt0 will copy to this section's specified mapped region virtual memory address (VMA) + * + */ + + .onchip_memory LOADADDR (.bss) + SIZEOF (.bss) : AT ( LOADADDR (.bss) + SIZEOF (.bss) ) + { + PROVIDE (_alt_partition_onchip_memory_start = ABSOLUTE(.)); + *(.onchip_memory. onchip_memory.*) + . = ALIGN(4); + PROVIDE (_alt_partition_onchip_memory_end = ABSOLUTE(.)); + _end = ABSOLUTE(.); + end = ABSOLUTE(.); + __alt_stack_base = ABSOLUTE(.); + } > onchip_memory + + PROVIDE (_alt_partition_onchip_memory_load_addr = LOADADDR(.onchip_memory)); + + /* + * Stabs debugging sections. + * + */ + + .stab 0 : { *(.stab) } + .stabstr 0 : { *(.stabstr) } + .stab.excl 0 : { *(.stab.excl) } + .stab.exclstr 0 : { *(.stab.exclstr) } + .stab.index 0 : { *(.stab.index) } + .stab.indexstr 0 : { *(.stab.indexstr) } + .comment 0 : { *(.comment) } + /* DWARF debug sections. + Symbols in the DWARF debugging sections are relative to the beginning + of the section so we begin them at 0. */ + /* DWARF 1 */ + .debug 0 : { *(.debug) } + .line 0 : { *(.line) } + /* GNU DWARF 1 extensions */ + .debug_srcinfo 0 : { *(.debug_srcinfo) } + .debug_sfnames 0 : { *(.debug_sfnames) } + /* DWARF 1.1 and DWARF 2 */ + .debug_aranges 0 : { *(.debug_aranges) } + .debug_pubnames 0 : { *(.debug_pubnames) } + /* DWARF 2 */ + .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } + .debug_abbrev 0 : { *(.debug_abbrev) } + .debug_line 0 : { *(.debug_line) } + .debug_frame 0 : { *(.debug_frame) } + .debug_str 0 : { *(.debug_str) } + .debug_loc 0 : { *(.debug_loc) } + .debug_macinfo 0 : { *(.debug_macinfo) } + /* SGI/MIPS DWARF 2 extensions */ + .debug_weaknames 0 : { *(.debug_weaknames) } + .debug_funcnames 0 : { *(.debug_funcnames) } + .debug_typenames 0 : { *(.debug_typenames) } + .debug_varnames 0 : { *(.debug_varnames) } + + /* Altera debug extensions */ + .debug_alt_sim_info 0 : { *(.debug_alt_sim_info) } +} + +/* provide a pointer for the stack */ + +/* + * Don't override this, override the __alt_stack_* symbols instead. + */ +__alt_data_end = 0x4000; + +/* + * The next two symbols define the location of the default stack. You can + * override them to move the stack to a different memory. + */ +PROVIDE( __alt_stack_pointer = __alt_data_end ); +PROVIDE( __alt_stack_limit = __alt_stack_base ); + +/* + * This symbol controls where the start of the heap is. If the stack is + * contiguous with the heap then the stack will contract as memory is + * allocated to the heap. + * Override this symbol to put the heap in a different memory. + */ +PROVIDE( __alt_heap_start = end ); +PROVIDE( __alt_heap_limit = 0x4000 ); diff --git a/software/qsys_tutorial_lcd_bsp/mem_init.mk b/software/qsys_tutorial_lcd_bsp/mem_init.mk new file mode 100644 index 0000000..8529cc2 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/mem_init.mk @@ -0,0 +1,322 @@ + +######################################################################### +####### M E M I N I T M A K E F I L E C O N T E N T ###### +######################################################################### + +######################################################################### +# This file is intended to be included by public.mk +# +# +# The following variables must be defined before including this file: +# - ELF +# +# The following variables may be defined to override the default behavior: +# - HDL_SIM_DIR +# - HDL_SIM_INSTALL_DIR +# - MEM_INIT_DIR +# - MEM_INIT_INSTALL_DIR +# - QUARTUS_PROJECT_DIR +# - SOPC_NAME +# - SIM_OPTIMIZE +# - RESET_ADDRESS +# +######################################################################### + +ifeq ($(MEM_INIT_FILE),) +# MEM_INIT_FILE should be set equal to the working relative path to this +# mem_init.mk makefile fragment +MEM_INIT_FILE := $(wildcard $(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST))) +endif + +ifeq ($(ELF2DAT),) +ELF2DAT := elf2dat +endif + +ifeq ($(ELF2HEX),) +ELF2HEX := elf2hex +endif + +ifeq ($(ELF2FLASH),) +ELF2FLASH := elf2flash +endif + +ifeq ($(FLASH2DAT),) +FLASH2DAT := flash2dat +endif + +ifeq ($(NM),) +NM := nios2-elf-nm +endif + +ifeq ($(MKDIR),) +MKDIR := mkdir -p +endif + +ifeq ($(RM),) +RM := rm -f +endif + +ifeq ($(CP),) +CP := cp +endif + +ifeq ($(ECHO),) +ECHO := echo +endif + +MEM_INIT_DIR ?= mem_init +HDL_SIM_DIR ?= $(MEM_INIT_DIR)/hdl_sim + +ifdef QUARTUS_PROJECT_DIR +MEM_INIT_INSTALL_DIR ?= $(patsubst %/,%,$(QUARTUS_PROJECT_DIR)) +ifdef SOPC_NAME +HDL_SIM_INSTALL_DIR ?= $(patsubst %/,%,$(QUARTUS_PROJECT_DIR))/$(SOPC_NAME)_sim +endif +endif + +MEM_INIT_DESCRIPTOR_FILE ?= $(MEM_INIT_DIR)/meminit.spd + +MEM_INIT_QIP_FILE ?= $(MEM_INIT_DIR)/meminit.qip + +#------------------------------------- +# Default Flash Boot Loaders +#------------------------------------- + +BOOT_LOADER_PATH ?= $(SOPC_KIT_NIOS2)/components/altera_nios2 +BOOT_LOADER_CFI ?= $(BOOT_LOADER_PATH)/boot_loader_cfi.srec +BOOT_LOADER_CFI_BE ?= $(BOOT_LOADER_PATH)/boot_loader_cfi_be.srec + + +#------------------------------------- +# Default Target +#------------------------------------- + +.PHONY: default_mem_init +ifeq ($(QSYS),1) +default_mem_init: mem_init_generate +else +default_mem_init: mem_init_install +endif +#------------------------------------- +# Runtime Macros +#------------------------------------- + +define post-process-info + @echo Post-processing to create $@... +endef + +target_stem = $(notdir $(basename $@)) + +mem_start_address = $($(target_stem)_START) +mem_end_address = $($(target_stem)_END) +mem_width = $($(target_stem)_WIDTH) +mem_endianness = $($(target_stem)_ENDIANNESS) +mem_create_lanes = $($(target_stem)_CREATE_LANES) + +mem_pad_flag = $($(target_stem)_PAD_FLAG) +mem_reloc_input_flag = $($(target_stem)_RELOC_INPUT_FLAG) +mem_no_zero_fill_flag = $($(target_stem)_NO_ZERO_FILL_FLAG) + +flash_mem_epcs_flag = $($(target_stem)_EPCS_FLAGS) +flash_mem_cfi_flag = $($(target_stem)_CFI_FLAGS) +flash_mem_boot_loader_flag = $($(target_stem)_BOOT_LOADER_FLAG) + +elf2dat_extra_args = $(mem_pad_flag) +elf2hex_extra_args = $(mem_no_zero_fill_flag) +elf2flash_extra_args = $(flash_mem_cfi_flag) $(flash_mem_epcs_flag) $(flash_mem_boot_loader_flag) +flash2dat_extra_args = $(mem_pad_flag) $(mem_reloc_input_flag) + +#------------------------------------------------------------------------------ +# BSP SPECIFIC CONTENT +# +# The content below is controlled by the BSP and SOPC System +#------------------------------------------------------------------------------ +#START OF BSP SPECIFIC + +#------------------------------------- +# Global Settings +#------------------------------------- + + +# The following TYPE comment allows tools to identify the 'type' of target this +# makefile is associated with. +# TYPE: BSP_MEMINIT_MAKEFILE + +# This following VERSION comment indicates the version of the tool used to +# generate this makefile. A makefile variable is provided for VERSION as well. +# ACDS_VERSION: 13.0sp1 +ACDS_VERSION := 13.0sp1 + +# This following BUILD_NUMBER comment indicates the build number of the tool +# used to generate this makefile. +# BUILD_NUMBER: 232 + +# Optimize for simulation +SIM_OPTIMIZE ?= 0 + +# The CPU reset address as needed by elf2flash +RESET_ADDRESS ?= 0x00000000 + +#------------------------------------- +# Pre-Initialized Memory Descriptions +#------------------------------------- + +# Memory: onchip_memory +MEM_0 := nios_system_onchip_memory +$(MEM_0)_NAME := onchip_memory +$(MEM_0)_MEM_INIT_FILE_PARAM_NAME := INIT_FILE +HEX_FILES += $(MEM_INIT_DIR)/$(MEM_0).hex +MEM_INIT_INSTALL_FILES += $(MEM_INIT_INSTALL_DIR)/$(MEM_0).hex +DAT_FILES += $(HDL_SIM_DIR)/$(MEM_0).dat +HDL_SIM_INSTALL_FILES += $(HDL_SIM_INSTALL_DIR)/$(MEM_0).dat +SYM_FILES += $(HDL_SIM_DIR)/$(MEM_0).sym +HDL_SIM_INSTALL_FILES += $(HDL_SIM_INSTALL_DIR)/$(MEM_0).sym +$(MEM_0)_START := 0x00000000 +$(MEM_0)_END := 0x00003fff +$(MEM_0)_HIERARCHICAL_PATH := onchip_memory +$(MEM_0)_WIDTH := 32 +$(MEM_0)_ENDIANNESS := --little-endian-mem +$(MEM_0)_CREATE_LANES := 0 + +.PHONY: onchip_memory +onchip_memory: check_elf_exists $(MEM_INIT_DIR)/$(MEM_0).hex $(HDL_SIM_DIR)/$(MEM_0).dat $(HDL_SIM_DIR)/$(MEM_0).sym + + +#END OF BSP SPECIFIC + +#------------------------------------- +# Pre-Initialized Memory Targets +#------------------------------------- + +.PHONY: mem_init_install mem_init_generate mem_init_clean + +ifeq ($(QSYS),1) +# Target mem_init_install is deprecated for QSys based systems +# To initialize onchip memories for Quartus II Synthesis with Qsys based systems: +# 1) Use "make mem_init_genearate" +# 2) Add the generated mem_init/meminit.qip file to your Quartus II Project +# +mem_init_install: + $(error Deprecated Makefile Target: '$@'. Use target 'mem_init_generate' and then add $(MEM_INIT_QIP_FILE) to your Quartus II Project) + +else # QSYS != 1, if SopcBuilder based system + +ifneq ($(MEM_INIT_INSTALL_DIR),) +mem_init_install: $(MEM_INIT_INSTALL_FILES) +endif + +ifneq ($(HDL_SIM_INSTALL_DIR),) +mem_init_install: $(HDL_SIM_INSTALL_FILES) +endif + +mem_init_install: mem_init_generate +ifeq ($(MEM_INIT_INSTALL_DIR),) + @echo "WARNING: MEM_INIT_INSTALL_DIR not set. Set your QUARTUS_PROJECT_DIR environment variable." +endif +ifeq ($(HDL_SIM_INSTALL_DIR),) + @echo "WARNING: HDL_SIM_INSTALL_DIR not set. Set your QUARTUS_PROJECT_DIR and SOPC_NAME environment variable." +endif + +$(MEM_INIT_INSTALL_FILES): $(MEM_INIT_INSTALL_DIR)/%: $(MEM_INIT_DIR)/% + @$(MKDIR) $(@D) + @$(CP) -v $< $@ + +$(HDL_SIM_INSTALL_FILES): $(HDL_SIM_INSTALL_DIR)/%: $(HDL_SIM_DIR)/% + @$(MKDIR) $(@D) + @$(CP) -v $< $@ + +endif # QSYS == 1 + + +mem_init_generate: hex dat sym flash $(MEM_INIT_DESCRIPTOR_FILE) $(MEM_INIT_QIP_FILE) + +mem_init_clean: + @$(RM) -r $(MEM_INIT_DIR) $(HDL_SIM_DIR) $(FLASH_FILES) + +.PHONY: hex dat sym flash + +hex: check_elf_exists $(HEX_FILES) + +dat: check_elf_exists $(DAT_FILES) + +sym: check_elf_exists $(SYM_FILES) + +flash: check_elf_exists $(FLASH_FILES) + +#------------------------------------- +# Pre-Initialized Memory Rules +#------------------------------------- + +.PHONY: check_elf_exists +check_elf_exists: $(ELF) +ifeq ($(ELF),) + $(error ELF var not set in mem_init.mk) +endif + +$(filter-out $(FLASH_DAT_FILES),$(DAT_FILES)): %.dat: $(ELF) + $(post-process-info) + @$(MKDIR) $(@D) + bash -c '$(ELF2DAT) --infile=$< --outfile=$@ \ + --base=$(mem_start_address) --end=$(mem_end_address) --width=$(mem_width) \ + $(mem_endianness) --create-lanes=$(mem_create_lanes) $(elf2dat_extra_args)' + +$(foreach i,0 1 2 3 4 5 6 7,%_lane$(i).dat): %.dat + @true + +$(HEX_FILES): %.hex: $(ELF) + $(post-process-info) + @$(MKDIR) $(@D) + bash -c '$(ELF2HEX) $< $(mem_start_address) $(mem_end_address) --width=$(mem_width) \ + $(mem_endianness) --create-lanes=$(mem_create_lanes) $(elf2hex_extra_args) $@' + +$(SYM_FILES): %.sym: $(ELF) + $(post-process-info) + @$(MKDIR) $(@D) + $(NM) -n $< > $@ + +$(FLASH_FILES): %.flash: $(ELF) + $(post-process-info) + @$(MKDIR) $(@D) + bash -c '$(ELF2FLASH) --input=$< --outfile=$@ --sim_optimize=$(SIM_OPTIMIZE) $(mem_endianness) \ + $(elf2flash_extra_args)' + +# +# Function generate_spd_entry +# Arg1: path to the memory initialization file +# Arg2: Type HEX or DAT +# Arg3: Output spd file to append +gen_spd_entry.BASE_FILE = $(basename $(notdir $1)) +gen_spd_entry.PARAM_NAME = $($(gen_spd_entry.BASE_FILE)_MEM_INIT_FILE_PARAM_NAME) +gen_spd_entry.MEM_PATH = $($(gen_spd_entry.BASE_FILE)_HIERARCHICAL_PATH) +gen_spd_entry.SETTINGS = $(strip \ + path=\"$1\" \ + type=\"$2\" \ + $(if $(gen_spd_entry.PARAM_NAME),initParamName=\"$(gen_spd_entry.PARAM_NAME)\") \ + $(if $(gen_spd_entry.MEM_PATH),memoryPath=\"$(gen_spd_entry.MEM_PATH)\") \ +) +define gen_spd_entry +$(ECHO) "" >> $3 +endef + +$(MEM_INIT_DESCRIPTOR_FILE).DAT_FILESET := $(patsubst $(dir $(MEM_INIT_DESCRIPTOR_FILE))%,%,$(DAT_FILES)) +$(MEM_INIT_DESCRIPTOR_FILE).HEX_FILESET := $(patsubst $(dir $(MEM_INIT_DESCRIPTOR_FILE))%,%,$(HEX_FILES)) + +$(MEM_INIT_DESCRIPTOR_FILE): %.spd: $(MEM_INIT_FILE) + $(post-process-info) + @$(MKDIR) $(@D) + @$(RM) $@ + @$(ECHO) "" > $@ + @$(ECHO) "" >> $@ + @$(foreach dat_file,$($@.DAT_FILESET),$(call gen_spd_entry,$(dat_file),DAT,$@) &&)true + @$(foreach hex_file,$($@.HEX_FILESET),$(call gen_spd_entry,$(hex_file),HEX,$@) &&)true + @$(ECHO) "" >> $@ + +.DELETE_ON_ERROR: $(MEM_INIT_DESCRIPTOR_FILE) + +$(MEM_INIT_QIP_FILE): %.qip: $(MEM_INIT_FILE) + $(post-process-info) + @$(MKDIR) $(@D) + @$(RM) $@ + @$(ECHO) "set_global_assignment -name SEARCH_PATH $$::quartus(qip_path)" > $@ + +.DELETE_ON_ERROR: $(MEM_INIT_QIP_FILE) diff --git a/software/qsys_tutorial_lcd_bsp/memory.gdb b/software/qsys_tutorial_lcd_bsp/memory.gdb new file mode 100644 index 0000000..3460a0c --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/memory.gdb @@ -0,0 +1,50 @@ +# memory.gdb - GDB memory region definitions +# +# Machine generated for CPU 'nios2_processor' in SOPC Builder design 'nios_system' +# SOPC Builder design path: C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.sopcinfo +# +# Generated: Thu Dec 01 23:23:48 JST 2016 + +# DO NOT MODIFY THIS FILE +# +# Changing this file will have subtle consequences +# which will almost certainly lead to a nonfunctioning +# system. If you do modify this file, be aware that your +# changes will be overwritten and lost when this file +# is generated again. +# +# DO NOT MODIFY THIS FILE + +# License Agreement +# +# Copyright (c) 2008 +# Altera Corporation, San Jose, California, USA. +# All rights reserved. +# +# Permission is hereby granted, free of charge, to any person obtaining a +# copy of this software and associated documentation files (the "Software"), +# to deal in the Software without restriction, including without limitation +# the rights to use, copy, modify, merge, publish, distribute, sublicense, +# and/or sell copies of the Software, and to permit persons to whom the +# Software is furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +# DEALINGS IN THE SOFTWARE. +# +# This agreement shall be governed in all respects by the laws of the State +# of California and by the laws of the United States of America. + +# Define memory regions for each memory connected to the CPU. +# The cache attribute is specified which improves GDB performance +# by allowing GDB to cache memory contents on the host. + +# onchip_memory +memory 0x0 0x4000 cache diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_alarm_start.d b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_alarm_start.d new file mode 100644 index 0000000..3bb20ea --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_alarm_start.d @@ -0,0 +1,22 @@ +obj/HAL/src/alt_alarm_start.o: HAL/src/alt_alarm_start.c \ + HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ + HAL/inc/priv/alt_alarm.h HAL/inc/alt_types.h HAL/inc/sys/alt_irq.h \ + HAL/inc/nios2.h system.h linker.h + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +system.h: + +linker.h: diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_alarm_start.o b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_alarm_start.o new file mode 100644 index 0000000..9230056 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_alarm_start.o Binary files differ diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_busy_sleep.d b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_busy_sleep.d new file mode 100644 index 0000000..e93e80c --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_busy_sleep.d @@ -0,0 +1,10 @@ +obj/HAL/src/alt_busy_sleep.o: HAL/src/alt_busy_sleep.c system.h linker.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_busy_sleep.h + +system.h: + +linker.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_busy_sleep.h: diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_busy_sleep.o b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_busy_sleep.o new file mode 100644 index 0000000..1af7c51 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_busy_sleep.o Binary files differ diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_close.d b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_close.d new file mode 100644 index 0000000..fbbab9c --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_close.d @@ -0,0 +1,34 @@ +obj/HAL/src/alt_close.o: HAL/src/alt_close.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h HAL/inc/priv/alt_file.h \ + HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h \ + HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_close.o b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_close.o new file mode 100644 index 0000000..07989d2 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_close.o Binary files differ diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_dcache_flush.d b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_dcache_flush.d new file mode 100644 index 0000000..a0eaf8a --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_dcache_flush.d @@ -0,0 +1,15 @@ +obj/HAL/src/alt_dcache_flush.o: HAL/src/alt_dcache_flush.c \ + HAL/inc/nios2.h system.h linker.h HAL/inc/alt_types.h \ + HAL/inc/sys/alt_cache.h HAL/inc/alt_types.h + +HAL/inc/nios2.h: + +system.h: + +linker.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_cache.h: + +HAL/inc/alt_types.h: diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_dcache_flush.o b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_dcache_flush.o new file mode 100644 index 0000000..43f3d9e --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_dcache_flush.o Binary files differ diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_dcache_flush_all.d b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_dcache_flush_all.d new file mode 100644 index 0000000..792c3e4 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_dcache_flush_all.d @@ -0,0 +1,15 @@ +obj/HAL/src/alt_dcache_flush_all.o: HAL/src/alt_dcache_flush_all.c \ + HAL/inc/nios2.h system.h linker.h HAL/inc/alt_types.h \ + HAL/inc/sys/alt_cache.h HAL/inc/alt_types.h + +HAL/inc/nios2.h: + +system.h: + +linker.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_cache.h: + +HAL/inc/alt_types.h: diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_dcache_flush_all.o b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_dcache_flush_all.o new file mode 100644 index 0000000..0614288 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_dcache_flush_all.o Binary files differ diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_dcache_flush_no_writeback.d b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_dcache_flush_no_writeback.d new file mode 100644 index 0000000..867c42b --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_dcache_flush_no_writeback.d @@ -0,0 +1,16 @@ +obj/HAL/src/alt_dcache_flush_no_writeback.o: \ + HAL/src/alt_dcache_flush_no_writeback.c HAL/inc/nios2.h system.h \ + linker.h HAL/inc/alt_types.h HAL/inc/sys/alt_cache.h \ + HAL/inc/alt_types.h + +HAL/inc/nios2.h: + +system.h: + +linker.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_cache.h: + +HAL/inc/alt_types.h: diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_dcache_flush_no_writeback.o b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_dcache_flush_no_writeback.o new file mode 100644 index 0000000..3009310 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_dcache_flush_no_writeback.o Binary files differ diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_dev.d b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_dev.d new file mode 100644 index 0000000..cd9b1d4 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_dev.d @@ -0,0 +1,34 @@ +obj/HAL/src/alt_dev.o: HAL/src/alt_dev.c HAL/inc/sys/alt_dev.h system.h \ + linker.h HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h \ + HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h HAL/inc/alt_types.h \ + system.h + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/alt_types.h: + +system.h: diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_dev.o b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_dev.o new file mode 100644 index 0000000..60d1325 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_dev.o Binary files differ diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_dev_llist_insert.d b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_dev_llist_insert.d new file mode 100644 index 0000000..344d065 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_dev_llist_insert.d @@ -0,0 +1,13 @@ +obj/HAL/src/alt_dev_llist_insert.o: HAL/src/alt_dev_llist_insert.c \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/alt_types.h HAL/inc/sys/alt_errno.h + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_errno.h: diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_dev_llist_insert.o b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_dev_llist_insert.o new file mode 100644 index 0000000..33e5290 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_dev_llist_insert.o Binary files differ diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_dma_rxchan_open.d b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_dma_rxchan_open.d new file mode 100644 index 0000000..fb21fed --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_dma_rxchan_open.d @@ -0,0 +1,35 @@ +obj/HAL/src/alt_dma_rxchan_open.o: HAL/src/alt_dma_rxchan_open.c \ + HAL/inc/sys/alt_dma.h HAL/inc/sys/alt_dma_dev.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/alt_types.h HAL/inc/sys/alt_errno.h \ + HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h system.h linker.h \ + HAL/inc/sys/alt_llist.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h + +HAL/inc/sys/alt_dma.h: + +HAL/inc/sys/alt_dma_dev.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_errno.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_dma_rxchan_open.o b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_dma_rxchan_open.o new file mode 100644 index 0000000..7769ea8 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_dma_rxchan_open.o Binary files differ diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_dma_txchan_open.d b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_dma_txchan_open.d new file mode 100644 index 0000000..500b95c --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_dma_txchan_open.d @@ -0,0 +1,35 @@ +obj/HAL/src/alt_dma_txchan_open.o: HAL/src/alt_dma_txchan_open.c \ + HAL/inc/sys/alt_dma.h HAL/inc/sys/alt_dma_dev.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/alt_types.h HAL/inc/sys/alt_errno.h \ + HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h system.h linker.h \ + HAL/inc/sys/alt_llist.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h + +HAL/inc/sys/alt_dma.h: + +HAL/inc/sys/alt_dma_dev.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_errno.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_dma_txchan_open.o b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_dma_txchan_open.o new file mode 100644 index 0000000..6354724 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_dma_txchan_open.o Binary files differ diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_do_ctors.d b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_do_ctors.d new file mode 100644 index 0000000..daf8baf --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_do_ctors.d @@ -0,0 +1 @@ +obj/HAL/src/alt_do_ctors.o: HAL/src/alt_do_ctors.c diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_do_ctors.o b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_do_ctors.o new file mode 100644 index 0000000..ac72eb7 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_do_ctors.o Binary files differ diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_do_dtors.d b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_do_dtors.d new file mode 100644 index 0000000..c3471eb --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_do_dtors.d @@ -0,0 +1 @@ +obj/HAL/src/alt_do_dtors.o: HAL/src/alt_do_dtors.c diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_do_dtors.o b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_do_dtors.o new file mode 100644 index 0000000..0870e9d --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_do_dtors.o Binary files differ diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_env_lock.d b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_env_lock.d new file mode 100644 index 0000000..634d7b0 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_env_lock.d @@ -0,0 +1 @@ +obj/HAL/src/alt_env_lock.o: HAL/src/alt_env_lock.c diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_env_lock.o b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_env_lock.o new file mode 100644 index 0000000..60db716 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_env_lock.o Binary files differ diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_environ.d b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_environ.d new file mode 100644 index 0000000..e9ca295 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_environ.d @@ -0,0 +1,3 @@ +obj/HAL/src/alt_environ.o: HAL/src/alt_environ.c HAL/inc/os/alt_syscall.h + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_environ.o b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_environ.o new file mode 100644 index 0000000..0f92e79 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_environ.o Binary files differ diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_errno.d b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_errno.d new file mode 100644 index 0000000..29ca544 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_errno.d @@ -0,0 +1,8 @@ +obj/HAL/src/alt_errno.o: HAL/src/alt_errno.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/alt_types.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/alt_types.h: diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_errno.o b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_errno.o new file mode 100644 index 0000000..77160ac --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_errno.o Binary files differ diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_exception_entry.d b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_exception_entry.d new file mode 100644 index 0000000..540567e --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_exception_entry.d @@ -0,0 +1,6 @@ +obj/HAL/src/alt_exception_entry.o: HAL/src/alt_exception_entry.S system.h \ + linker.h + +system.h: + +linker.h: diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_exception_entry.o b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_exception_entry.o new file mode 100644 index 0000000..845374d --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_exception_entry.o Binary files differ diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_exception_muldiv.d b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_exception_muldiv.d new file mode 100644 index 0000000..63d66a7 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_exception_muldiv.d @@ -0,0 +1 @@ +obj/HAL/src/alt_exception_muldiv.o: HAL/src/alt_exception_muldiv.S diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_exception_muldiv.o b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_exception_muldiv.o new file mode 100644 index 0000000..89e684e --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_exception_muldiv.o Binary files differ diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_exception_trap.d b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_exception_trap.d new file mode 100644 index 0000000..6e18488 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_exception_trap.d @@ -0,0 +1 @@ +obj/HAL/src/alt_exception_trap.o: HAL/src/alt_exception_trap.S diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_exception_trap.o b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_exception_trap.o new file mode 100644 index 0000000..9541c51 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_exception_trap.o Binary files differ diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_execve.d b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_execve.d new file mode 100644 index 0000000..9cef7d2 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_execve.d @@ -0,0 +1,10 @@ +obj/HAL/src/alt_execve.o: HAL/src/alt_execve.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_execve.o b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_execve.o new file mode 100644 index 0000000..8539ab2 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_execve.o Binary files differ diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_exit.d b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_exit.d new file mode 100644 index 0000000..a779da8 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_exit.d @@ -0,0 +1,26 @@ +obj/HAL/src/alt_exit.o: HAL/src/alt_exit.c HAL/inc/sys/alt_irq.h \ + HAL/inc/nios2.h HAL/inc/alt_types.h system.h linker.h \ + HAL/inc/sys/alt_sim.h HAL/inc/os/alt_hooks.h HAL/inc/os/alt_syscall.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_log_printf.h system.h + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_sim.h: + +HAL/inc/os/alt_hooks.h: + +HAL/inc/os/alt_syscall.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_log_printf.h: + +system.h: diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_exit.o b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_exit.o new file mode 100644 index 0000000..69eccde --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_exit.o Binary files differ diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_fcntl.d b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_fcntl.d new file mode 100644 index 0000000..527f242 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_fcntl.d @@ -0,0 +1,34 @@ +obj/HAL/src/alt_fcntl.o: HAL/src/alt_fcntl.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h \ + system.h linker.h HAL/inc/sys/alt_llist.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h HAL/inc/alt_types.h \ + HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_fcntl.o b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_fcntl.o new file mode 100644 index 0000000..4ed174e --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_fcntl.o Binary files differ diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_fd_lock.d b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_fd_lock.d new file mode 100644 index 0000000..93daeac --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_fd_lock.d @@ -0,0 +1,27 @@ +obj/HAL/src/alt_fd_lock.o: HAL/src/alt_fd_lock.c HAL/inc/priv/alt_file.h \ + HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_fd_lock.o b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_fd_lock.o new file mode 100644 index 0000000..6fb07e2 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_fd_lock.o Binary files differ diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_fd_unlock.d b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_fd_unlock.d new file mode 100644 index 0000000..45a3207 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_fd_unlock.d @@ -0,0 +1,27 @@ +obj/HAL/src/alt_fd_unlock.o: HAL/src/alt_fd_unlock.c \ + HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h system.h linker.h \ + HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_fd_unlock.o b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_fd_unlock.o new file mode 100644 index 0000000..415002b --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_fd_unlock.o Binary files differ diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_find_dev.d b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_find_dev.d new file mode 100644 index 0000000..98336f8 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_find_dev.d @@ -0,0 +1,31 @@ +obj/HAL/src/alt_find_dev.o: HAL/src/alt_find_dev.c HAL/inc/sys/alt_dev.h \ + system.h linker.h HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h \ + HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h HAL/inc/alt_types.h + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/alt_types.h: diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_find_dev.o b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_find_dev.o new file mode 100644 index 0000000..4b6da5e --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_find_dev.o Binary files differ diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_find_file.d b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_find_file.d new file mode 100644 index 0000000..d1150ca --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_find_file.d @@ -0,0 +1,32 @@ +obj/HAL/src/alt_find_file.o: HAL/src/alt_find_file.c \ + HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h HAL/inc/priv/alt_file.h \ + HAL/inc/sys/alt_dev.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h \ + HAL/inc/alt_types.h + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/alt_types.h: diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_find_file.o b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_find_file.o new file mode 100644 index 0000000..f2ea44e --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_find_file.o Binary files differ diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_flash_dev.d b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_flash_dev.d new file mode 100644 index 0000000..8835e8f --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_flash_dev.d @@ -0,0 +1,34 @@ +obj/HAL/src/alt_flash_dev.o: HAL/src/alt_flash_dev.c \ + HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h HAL/inc/sys/alt_flash_dev.h \ + HAL/inc/sys/alt_flash_types.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h \ + system.h linker.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_flash_dev.h: + +HAL/inc/sys/alt_flash_types.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_flash_dev.o b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_flash_dev.o new file mode 100644 index 0000000..54f20f5 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_flash_dev.o Binary files differ diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_fork.d b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_fork.d new file mode 100644 index 0000000..492be65 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_fork.d @@ -0,0 +1,10 @@ +obj/HAL/src/alt_fork.o: HAL/src/alt_fork.c HAL/inc/sys/alt_warning.h \ + HAL/inc/sys/alt_errno.h HAL/inc/alt_types.h HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_warning.h: + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_fork.o b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_fork.o new file mode 100644 index 0000000..ea127d0 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_fork.o Binary files differ diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_fs_reg.d b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_fs_reg.d new file mode 100644 index 0000000..d8f95ab --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_fs_reg.d @@ -0,0 +1,29 @@ +obj/HAL/src/alt_fs_reg.o: HAL/src/alt_fs_reg.c HAL/inc/sys/alt_dev.h \ + system.h linker.h HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h \ + HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_fs_reg.o b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_fs_reg.o new file mode 100644 index 0000000..1a01890 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_fs_reg.o Binary files differ diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_fstat.d b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_fstat.d new file mode 100644 index 0000000..942fcbc --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_fstat.d @@ -0,0 +1,38 @@ +obj/HAL/src/alt_fstat.o: HAL/src/alt_fstat.c HAL/inc/sys/alt_dev.h \ + system.h linker.h HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h HAL/inc/sys/alt_errno.h \ + HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h HAL/inc/os/alt_syscall.h system.h + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/sys/alt_errno.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_syscall.h: + +system.h: diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_fstat.o b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_fstat.o new file mode 100644 index 0000000..4d60497 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_fstat.o Binary files differ diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_get_fd.d b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_get_fd.d new file mode 100644 index 0000000..9a4daaa --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_get_fd.d @@ -0,0 +1,34 @@ +obj/HAL/src/alt_get_fd.o: HAL/src/alt_get_fd.c HAL/inc/sys/alt_dev.h \ + system.h linker.h HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h \ + HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h HAL/inc/alt_types.h \ + system.h + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/alt_types.h: + +system.h: diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_get_fd.o b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_get_fd.o new file mode 100644 index 0000000..a027bcf --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_get_fd.o Binary files differ diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_getchar.d b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_getchar.d new file mode 100644 index 0000000..bcccdf7 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_getchar.d @@ -0,0 +1,34 @@ +obj/HAL/src/alt_getchar.o: HAL/src/alt_getchar.c system.h linker.h \ + HAL/inc/sys/alt_driver.h HAL/inc/sys/alt_stdio.h \ + HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h system.h \ + HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h + +system.h: + +linker.h: + +HAL/inc/sys/alt_driver.h: + +HAL/inc/sys/alt_stdio.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_getchar.o b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_getchar.o new file mode 100644 index 0000000..790913e --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_getchar.o Binary files differ diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_getpid.d b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_getpid.d new file mode 100644 index 0000000..d9499b9 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_getpid.d @@ -0,0 +1,3 @@ +obj/HAL/src/alt_getpid.o: HAL/src/alt_getpid.c HAL/inc/os/alt_syscall.h + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_getpid.o b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_getpid.o new file mode 100644 index 0000000..269a834 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_getpid.o Binary files differ diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_gettod.d b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_gettod.d new file mode 100644 index 0000000..cf3cf34 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_gettod.d @@ -0,0 +1,17 @@ +obj/HAL/src/alt_gettod.o: HAL/src/alt_gettod.c HAL/inc/sys/alt_alarm.h \ + HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h HAL/inc/priv/alt_alarm.h \ + HAL/inc/alt_types.h HAL/inc/alt_types.h HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/alt_types.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_gettod.o b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_gettod.o new file mode 100644 index 0000000..193b60d --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_gettod.o Binary files differ diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_gmon.d b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_gmon.d new file mode 100644 index 0000000..e9469ab --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_gmon.d @@ -0,0 +1,24 @@ +obj/HAL/src/alt_gmon.o: HAL/src/alt_gmon.c HAL/inc/priv/nios2_gmon_data.h \ + HAL/inc/sys/alt_irq.h HAL/inc/nios2.h HAL/inc/alt_types.h system.h \ + linker.h HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_alarm.h HAL/inc/alt_types.h + +HAL/inc/priv/nios2_gmon_data.h: + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/alt_types.h: diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_gmon.o b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_gmon.o new file mode 100644 index 0000000..1a44284 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_gmon.o Binary files differ diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_icache_flush.d b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_icache_flush.d new file mode 100644 index 0000000..2e4ddd1 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_icache_flush.d @@ -0,0 +1,15 @@ +obj/HAL/src/alt_icache_flush.o: HAL/src/alt_icache_flush.c \ + HAL/inc/nios2.h system.h linker.h HAL/inc/alt_types.h \ + HAL/inc/sys/alt_cache.h HAL/inc/alt_types.h + +HAL/inc/nios2.h: + +system.h: + +linker.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_cache.h: + +HAL/inc/alt_types.h: diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_icache_flush.o b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_icache_flush.o new file mode 100644 index 0000000..91c0515 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_icache_flush.o Binary files differ diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_icache_flush_all.d b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_icache_flush_all.d new file mode 100644 index 0000000..47cfbf3 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_icache_flush_all.d @@ -0,0 +1,15 @@ +obj/HAL/src/alt_icache_flush_all.o: HAL/src/alt_icache_flush_all.c \ + HAL/inc/nios2.h system.h linker.h HAL/inc/alt_types.h \ + HAL/inc/sys/alt_cache.h HAL/inc/alt_types.h + +HAL/inc/nios2.h: + +system.h: + +linker.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_cache.h: + +HAL/inc/alt_types.h: diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_icache_flush_all.o b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_icache_flush_all.o new file mode 100644 index 0000000..9a489ad --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_icache_flush_all.o Binary files differ diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_iic.d b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_iic.d new file mode 100644 index 0000000..a709e0c --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_iic.d @@ -0,0 +1,29 @@ +obj/HAL/src/alt_iic.o: HAL/src/alt_iic.c system.h linker.h \ + HAL/inc/sys/alt_irq.h HAL/inc/nios2.h HAL/inc/alt_types.h system.h \ + HAL/inc/priv/alt_iic_isr_register.h HAL/inc/alt_types.h \ + HAL/inc/sys/alt_irq.h HAL/inc/priv/alt_legacy_irq.h system.h \ + HAL/inc/nios2.h + +system.h: + +linker.h: + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +HAL/inc/priv/alt_iic_isr_register.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_irq.h: + +HAL/inc/priv/alt_legacy_irq.h: + +system.h: + +HAL/inc/nios2.h: diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_iic.o b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_iic.o new file mode 100644 index 0000000..7c10e66 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_iic.o Binary files differ diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_iic_isr_register.d b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_iic_isr_register.d new file mode 100644 index 0000000..d0470ae --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_iic_isr_register.d @@ -0,0 +1,30 @@ +obj/HAL/src/alt_iic_isr_register.o: HAL/src/alt_iic_isr_register.c \ + system.h linker.h HAL/inc/alt_types.h HAL/inc/sys/alt_irq.h \ + HAL/inc/nios2.h HAL/inc/alt_types.h system.h \ + HAL/inc/priv/alt_iic_isr_register.h HAL/inc/alt_types.h \ + HAL/inc/sys/alt_irq.h HAL/inc/sys/alt_irq_entry.h \ + HAL/inc/priv/alt_irq_table.h + +system.h: + +linker.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +HAL/inc/priv/alt_iic_isr_register.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_irq.h: + +HAL/inc/sys/alt_irq_entry.h: + +HAL/inc/priv/alt_irq_table.h: diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_iic_isr_register.o b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_iic_isr_register.o new file mode 100644 index 0000000..c10787b --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_iic_isr_register.o Binary files differ diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_instruction_exception_entry.d b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_instruction_exception_entry.d new file mode 100644 index 0000000..6d0705f --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_instruction_exception_entry.d @@ -0,0 +1,18 @@ +obj/HAL/src/alt_instruction_exception_entry.o: \ + HAL/src/alt_instruction_exception_entry.c HAL/inc/sys/alt_exceptions.h \ + HAL/inc/alt_types.h system.h linker.h HAL/inc/nios2.h \ + HAL/inc/alt_types.h system.h + +HAL/inc/sys/alt_exceptions.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_instruction_exception_entry.o b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_instruction_exception_entry.o new file mode 100644 index 0000000..a73bd8d --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_instruction_exception_entry.o Binary files differ diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_instruction_exception_register.d b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_instruction_exception_register.d new file mode 100644 index 0000000..d4fac04 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_instruction_exception_register.d @@ -0,0 +1,16 @@ +obj/HAL/src/alt_instruction_exception_register.o: \ + HAL/src/alt_instruction_exception_register.c \ + HAL/inc/sys/alt_exceptions.h HAL/inc/alt_types.h system.h linker.h \ + HAL/inc/alt_types.h system.h + +HAL/inc/sys/alt_exceptions.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: + +HAL/inc/alt_types.h: + +system.h: diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_instruction_exception_register.o b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_instruction_exception_register.o new file mode 100644 index 0000000..ca14cc3 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_instruction_exception_register.o Binary files differ diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_io_redirect.d b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_io_redirect.d new file mode 100644 index 0000000..8228365 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_io_redirect.d @@ -0,0 +1,29 @@ +obj/HAL/src/alt_io_redirect.o: HAL/src/alt_io_redirect.c \ + HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h HAL/inc/priv/alt_file.h \ + HAL/inc/sys/alt_dev.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_io_redirect.o b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_io_redirect.o new file mode 100644 index 0000000..6dd56fc --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_io_redirect.o Binary files differ diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_ioctl.d b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_ioctl.d new file mode 100644 index 0000000..d70ad97 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_ioctl.d @@ -0,0 +1,41 @@ +obj/HAL/src/alt_ioctl.o: HAL/src/alt_ioctl.c HAL/inc/sys/ioctl.h \ + HAL/inc/sys/alt_errno.h HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h \ + HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h system.h linker.h \ + HAL/inc/sys/alt_llist.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h HAL/inc/os/alt_syscall.h system.h \ + HAL/inc/sys/alt_driver.h + +HAL/inc/sys/ioctl.h: + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_syscall.h: + +system.h: + +HAL/inc/sys/alt_driver.h: diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_ioctl.o b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_ioctl.o new file mode 100644 index 0000000..3546dd7 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_ioctl.o Binary files differ diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_irq_entry.d b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_irq_entry.d new file mode 100644 index 0000000..9ec3751 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_irq_entry.d @@ -0,0 +1,5 @@ +obj/HAL/src/alt_irq_entry.o: HAL/src/alt_irq_entry.S system.h linker.h + +system.h: + +linker.h: diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_irq_entry.o b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_irq_entry.o new file mode 100644 index 0000000..3c3c702 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_irq_entry.o Binary files differ diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_irq_handler.d b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_irq_handler.d new file mode 100644 index 0000000..6fb668f --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_irq_handler.d @@ -0,0 +1,19 @@ +obj/HAL/src/alt_irq_handler.o: HAL/src/alt_irq_handler.c system.h \ + linker.h HAL/inc/sys/alt_irq.h HAL/inc/nios2.h HAL/inc/alt_types.h \ + system.h HAL/inc/os/alt_hooks.h HAL/inc/alt_types.h + +system.h: + +linker.h: + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +HAL/inc/os/alt_hooks.h: + +HAL/inc/alt_types.h: diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_irq_handler.o b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_irq_handler.o new file mode 100644 index 0000000..d4c51f3 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_irq_handler.o Binary files differ diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_irq_register.d b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_irq_register.d new file mode 100644 index 0000000..3df2f8a --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_irq_register.d @@ -0,0 +1,36 @@ +obj/HAL/src/alt_irq_register.o: HAL/src/alt_irq_register.c system.h \ + linker.h HAL/inc/sys/alt_irq.h HAL/inc/nios2.h HAL/inc/alt_types.h \ + system.h HAL/inc/priv/alt_legacy_irq.h system.h HAL/inc/nios2.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_irq.h HAL/inc/os/alt_hooks.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_irq_entry.h \ + HAL/inc/priv/alt_irq_table.h + +system.h: + +linker.h: + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +HAL/inc/priv/alt_legacy_irq.h: + +system.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_irq.h: + +HAL/inc/os/alt_hooks.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_irq_entry.h: + +HAL/inc/priv/alt_irq_table.h: diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_irq_register.o b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_irq_register.o new file mode 100644 index 0000000..3093fc8 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_irq_register.o Binary files differ diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_irq_vars.d b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_irq_vars.d new file mode 100644 index 0000000..f316558 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_irq_vars.d @@ -0,0 +1,8 @@ +obj/HAL/src/alt_irq_vars.o: HAL/src/alt_irq_vars.c HAL/inc/alt_types.h \ + system.h linker.h + +HAL/inc/alt_types.h: + +system.h: + +linker.h: diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_irq_vars.o b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_irq_vars.o new file mode 100644 index 0000000..2c19885 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_irq_vars.o Binary files differ diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_isatty.d b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_isatty.d new file mode 100644 index 0000000..f8b1f07 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_isatty.d @@ -0,0 +1,38 @@ +obj/HAL/src/alt_isatty.o: HAL/src/alt_isatty.c HAL/inc/sys/alt_dev.h \ + system.h linker.h HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_errno.h HAL/inc/sys/alt_warning.h \ + HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h HAL/inc/os/alt_syscall.h system.h + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_errno.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_syscall.h: + +system.h: diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_isatty.o b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_isatty.o new file mode 100644 index 0000000..0f41105 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_isatty.o Binary files differ diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_kill.d b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_kill.d new file mode 100644 index 0000000..0c14ae8 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_kill.d @@ -0,0 +1,8 @@ +obj/HAL/src/alt_kill.o: HAL/src/alt_kill.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_kill.o b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_kill.o new file mode 100644 index 0000000..5ee9255 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_kill.o Binary files differ diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_link.d b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_link.d new file mode 100644 index 0000000..dc844c6 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_link.d @@ -0,0 +1,10 @@ +obj/HAL/src/alt_link.o: HAL/src/alt_link.c HAL/inc/sys/alt_warning.h \ + HAL/inc/sys/alt_errno.h HAL/inc/alt_types.h HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_warning.h: + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_link.o b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_link.o new file mode 100644 index 0000000..5347ed2 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_link.o Binary files differ diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_load.d b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_load.d new file mode 100644 index 0000000..d496ab8 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_load.d @@ -0,0 +1,8 @@ +obj/HAL/src/alt_load.o: HAL/src/alt_load.c HAL/inc/sys/alt_load.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_cache.h + +HAL/inc/sys/alt_load.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_cache.h: diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_load.o b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_load.o new file mode 100644 index 0000000..6737e2e --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_load.o Binary files differ diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_log_macro.d b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_log_macro.d new file mode 100644 index 0000000..9768c1f --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_log_macro.d @@ -0,0 +1 @@ +obj/HAL/src/alt_log_macro.o: HAL/src/alt_log_macro.S diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_log_macro.o b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_log_macro.o new file mode 100644 index 0000000..489e2cc --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_log_macro.o Binary files differ diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_log_printf.d b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_log_printf.d new file mode 100644 index 0000000..251ff6d --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_log_printf.d @@ -0,0 +1 @@ +obj/HAL/src/alt_log_printf.o: HAL/src/alt_log_printf.c diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_log_printf.o b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_log_printf.o new file mode 100644 index 0000000..a03c33d --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_log_printf.o Binary files differ diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_lseek.d b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_lseek.d new file mode 100644 index 0000000..25ed783 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_lseek.d @@ -0,0 +1,34 @@ +obj/HAL/src/alt_lseek.o: HAL/src/alt_lseek.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h HAL/inc/priv/alt_file.h \ + HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h \ + HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_lseek.o b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_lseek.o new file mode 100644 index 0000000..3b5d857 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_lseek.o Binary files differ diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_main.d b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_main.d new file mode 100644 index 0000000..afdfda0 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_main.d @@ -0,0 +1,47 @@ +obj/HAL/src/alt_main.o: HAL/src/alt_main.c HAL/inc/sys/alt_dev.h system.h \ + linker.h HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_sys_init.h HAL/inc/sys/alt_irq.h \ + HAL/inc/nios2.h HAL/inc/os/alt_hooks.h HAL/inc/priv/alt_file.h \ + HAL/inc/sys/alt_dev.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h \ + HAL/inc/alt_types.h system.h HAL/inc/sys/alt_log_printf.h system.h + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_sys_init.h: + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/os/alt_hooks.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/alt_types.h: + +system.h: + +HAL/inc/sys/alt_log_printf.h: + +system.h: diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_main.o b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_main.o new file mode 100644 index 0000000..98a8281 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_main.o Binary files differ diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_malloc_lock.d b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_malloc_lock.d new file mode 100644 index 0000000..4ed35c2 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_malloc_lock.d @@ -0,0 +1 @@ +obj/HAL/src/alt_malloc_lock.o: HAL/src/alt_malloc_lock.c diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_malloc_lock.o b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_malloc_lock.o new file mode 100644 index 0000000..dfc614d --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_malloc_lock.o Binary files differ diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_mcount.d b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_mcount.d new file mode 100644 index 0000000..1203efc --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_mcount.d @@ -0,0 +1 @@ +obj/HAL/src/alt_mcount.o: HAL/src/alt_mcount.S diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_mcount.o b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_mcount.o new file mode 100644 index 0000000..21bd730 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_mcount.o Binary files differ diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_open.d b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_open.d new file mode 100644 index 0000000..a2aacd9 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_open.d @@ -0,0 +1,36 @@ +obj/HAL/src/alt_open.o: HAL/src/alt_open.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h HAL/inc/priv/alt_file.h \ + HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h \ + HAL/inc/alt_types.h HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_open.o b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_open.o new file mode 100644 index 0000000..e56efdf --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_open.o Binary files differ diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_printf.d b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_printf.d new file mode 100644 index 0000000..3ce68a4 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_printf.d @@ -0,0 +1,3 @@ +obj/HAL/src/alt_printf.o: HAL/src/alt_printf.c HAL/inc/sys/alt_stdio.h + +HAL/inc/sys/alt_stdio.h: diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_printf.o b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_printf.o new file mode 100644 index 0000000..6a09c9f --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_printf.o Binary files differ diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_putchar.d b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_putchar.d new file mode 100644 index 0000000..9a0dde3 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_putchar.d @@ -0,0 +1,10 @@ +obj/HAL/src/alt_putchar.o: HAL/src/alt_putchar.c system.h linker.h \ + HAL/inc/sys/alt_driver.h HAL/inc/sys/alt_stdio.h + +system.h: + +linker.h: + +HAL/inc/sys/alt_driver.h: + +HAL/inc/sys/alt_stdio.h: diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_putchar.o b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_putchar.o new file mode 100644 index 0000000..b300e01 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_putchar.o Binary files differ diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_putstr.d b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_putstr.d new file mode 100644 index 0000000..3cf528a --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_putstr.d @@ -0,0 +1,10 @@ +obj/HAL/src/alt_putstr.o: HAL/src/alt_putstr.c system.h linker.h \ + HAL/inc/sys/alt_driver.h HAL/inc/sys/alt_stdio.h + +system.h: + +linker.h: + +HAL/inc/sys/alt_driver.h: + +HAL/inc/sys/alt_stdio.h: diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_putstr.o b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_putstr.o new file mode 100644 index 0000000..a7959ee --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_putstr.o Binary files differ diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_read.d b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_read.d new file mode 100644 index 0000000..2bb0d95 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_read.d @@ -0,0 +1,38 @@ +obj/HAL/src/alt_read.o: HAL/src/alt_read.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h HAL/inc/priv/alt_file.h \ + HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h \ + HAL/inc/os/alt_syscall.h system.h HAL/inc/sys/alt_driver.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_syscall.h: + +system.h: + +HAL/inc/sys/alt_driver.h: diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_read.o b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_read.o new file mode 100644 index 0000000..209e0ae --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_read.o Binary files differ diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_release_fd.d b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_release_fd.d new file mode 100644 index 0000000..0e3acb5 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_release_fd.d @@ -0,0 +1,29 @@ +obj/HAL/src/alt_release_fd.o: HAL/src/alt_release_fd.c \ + HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h HAL/inc/priv/alt_file.h \ + HAL/inc/sys/alt_dev.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_release_fd.o b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_release_fd.o new file mode 100644 index 0000000..5ede051 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_release_fd.o Binary files differ diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_remap_cached.d b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_remap_cached.d new file mode 100644 index 0000000..b5fb151 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_remap_cached.d @@ -0,0 +1,10 @@ +obj/HAL/src/alt_remap_cached.o: HAL/src/alt_remap_cached.c \ + HAL/inc/sys/alt_cache.h HAL/inc/alt_types.h system.h linker.h + +HAL/inc/sys/alt_cache.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_remap_cached.o b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_remap_cached.o new file mode 100644 index 0000000..0e87cfb --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_remap_cached.o Binary files differ diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_remap_uncached.d b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_remap_uncached.d new file mode 100644 index 0000000..0423405 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_remap_uncached.d @@ -0,0 +1,10 @@ +obj/HAL/src/alt_remap_uncached.o: HAL/src/alt_remap_uncached.c \ + HAL/inc/sys/alt_cache.h HAL/inc/alt_types.h system.h linker.h + +HAL/inc/sys/alt_cache.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_remap_uncached.o b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_remap_uncached.o new file mode 100644 index 0000000..3b48b12 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_remap_uncached.o Binary files differ diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_rename.d b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_rename.d new file mode 100644 index 0000000..b7af4b2 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_rename.d @@ -0,0 +1,10 @@ +obj/HAL/src/alt_rename.o: HAL/src/alt_rename.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_rename.o b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_rename.o new file mode 100644 index 0000000..4af5333 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_rename.o Binary files differ diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_sbrk.d b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_sbrk.d new file mode 100644 index 0000000..a0771ae --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_sbrk.d @@ -0,0 +1,19 @@ +obj/HAL/src/alt_sbrk.o: HAL/src/alt_sbrk.c HAL/inc/os/alt_syscall.h \ + HAL/inc/sys/alt_irq.h HAL/inc/nios2.h HAL/inc/alt_types.h system.h \ + linker.h HAL/inc/sys/alt_stack.h system.h + +HAL/inc/os/alt_syscall.h: + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_stack.h: + +system.h: diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_sbrk.o b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_sbrk.o new file mode 100644 index 0000000..70fc7d9 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_sbrk.o Binary files differ diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_settod.d b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_settod.d new file mode 100644 index 0000000..56718d5 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_settod.d @@ -0,0 +1,17 @@ +obj/HAL/src/alt_settod.o: HAL/src/alt_settod.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_alarm.h HAL/inc/alt_types.h HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_settod.o b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_settod.o new file mode 100644 index 0000000..746a391 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_settod.o Binary files differ diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_software_exception.d b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_software_exception.d new file mode 100644 index 0000000..fab4023 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_software_exception.d @@ -0,0 +1,6 @@ +obj/HAL/src/alt_software_exception.o: HAL/src/alt_software_exception.S \ + system.h linker.h + +system.h: + +linker.h: diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_software_exception.o b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_software_exception.o new file mode 100644 index 0000000..f9e01c2 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_software_exception.o Binary files differ diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_stat.d b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_stat.d new file mode 100644 index 0000000..8a63c27 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_stat.d @@ -0,0 +1,3 @@ +obj/HAL/src/alt_stat.o: HAL/src/alt_stat.c HAL/inc/os/alt_syscall.h + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_stat.o b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_stat.o new file mode 100644 index 0000000..29db367 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_stat.o Binary files differ diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_tick.d b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_tick.d new file mode 100644 index 0000000..ddbb281 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_tick.d @@ -0,0 +1,27 @@ +obj/HAL/src/alt_tick.o: HAL/src/alt_tick.c HAL/inc/sys/alt_irq.h \ + HAL/inc/nios2.h HAL/inc/alt_types.h system.h linker.h \ + HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_alarm.h HAL/inc/alt_types.h HAL/inc/os/alt_hooks.h \ + HAL/inc/alt_types.h + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_hooks.h: + +HAL/inc/alt_types.h: diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_tick.o b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_tick.o new file mode 100644 index 0000000..874f458 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_tick.o Binary files differ diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_times.d b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_times.d new file mode 100644 index 0000000..4bad83d --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_times.d @@ -0,0 +1,17 @@ +obj/HAL/src/alt_times.o: HAL/src/alt_times.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_alarm.h HAL/inc/alt_types.h HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_times.o b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_times.o new file mode 100644 index 0000000..04b8fd6 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_times.o Binary files differ diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_uncached_free.d b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_uncached_free.d new file mode 100644 index 0000000..d74ef4b --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_uncached_free.d @@ -0,0 +1,10 @@ +obj/HAL/src/alt_uncached_free.o: HAL/src/alt_uncached_free.c \ + HAL/inc/sys/alt_cache.h HAL/inc/alt_types.h system.h linker.h + +HAL/inc/sys/alt_cache.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_uncached_free.o b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_uncached_free.o new file mode 100644 index 0000000..4a54cff --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_uncached_free.o Binary files differ diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_uncached_malloc.d b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_uncached_malloc.d new file mode 100644 index 0000000..16799fb --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_uncached_malloc.d @@ -0,0 +1,10 @@ +obj/HAL/src/alt_uncached_malloc.o: HAL/src/alt_uncached_malloc.c \ + HAL/inc/sys/alt_cache.h HAL/inc/alt_types.h system.h linker.h + +HAL/inc/sys/alt_cache.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_uncached_malloc.o b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_uncached_malloc.o new file mode 100644 index 0000000..1c54418 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_uncached_malloc.o Binary files differ diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_unlink.d b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_unlink.d new file mode 100644 index 0000000..0205f86 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_unlink.d @@ -0,0 +1,10 @@ +obj/HAL/src/alt_unlink.o: HAL/src/alt_unlink.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_unlink.o b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_unlink.o new file mode 100644 index 0000000..f776aaa --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_unlink.o Binary files differ diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_usleep.d b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_usleep.d new file mode 100644 index 0000000..b5eca45 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_usleep.d @@ -0,0 +1,6 @@ +obj/HAL/src/alt_usleep.o: HAL/src/alt_usleep.c \ + HAL/inc/priv/alt_busy_sleep.h HAL/inc/os/alt_syscall.h + +HAL/inc/priv/alt_busy_sleep.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_usleep.o b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_usleep.o new file mode 100644 index 0000000..c2c48af --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_usleep.o Binary files differ diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_wait.d b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_wait.d new file mode 100644 index 0000000..f47f5df --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_wait.d @@ -0,0 +1,8 @@ +obj/HAL/src/alt_wait.o: HAL/src/alt_wait.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_wait.o b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_wait.o new file mode 100644 index 0000000..ba0f21d --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_wait.o Binary files differ diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_write.d b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_write.d new file mode 100644 index 0000000..2b54a68 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_write.d @@ -0,0 +1,41 @@ +obj/HAL/src/alt_write.o: HAL/src/alt_write.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h HAL/inc/priv/alt_file.h \ + HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h \ + HAL/inc/os/alt_syscall.h HAL/inc/sys/alt_log_printf.h system.h \ + HAL/inc/sys/alt_driver.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_syscall.h: + +HAL/inc/sys/alt_log_printf.h: + +system.h: + +HAL/inc/sys/alt_driver.h: diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_write.o b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_write.o new file mode 100644 index 0000000..0f4e096 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/alt_write.o Binary files differ diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/altera_nios2_qsys_irq.d b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/altera_nios2_qsys_irq.d new file mode 100644 index 0000000..47bdd9c --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/altera_nios2_qsys_irq.d @@ -0,0 +1,15 @@ +obj/HAL/src/altera_nios2_qsys_irq.o: HAL/src/altera_nios2_qsys_irq.c \ + HAL/inc/sys/alt_irq.h HAL/inc/nios2.h HAL/inc/alt_types.h system.h \ + linker.h HAL/inc/altera_nios2_qsys_irq.h + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: + +HAL/inc/altera_nios2_qsys_irq.h: diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/altera_nios2_qsys_irq.o b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/altera_nios2_qsys_irq.o new file mode 100644 index 0000000..2d45c87 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/altera_nios2_qsys_irq.o Binary files differ diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/crt0.d b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/crt0.d new file mode 100644 index 0000000..3af0bb0 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/crt0.d @@ -0,0 +1,12 @@ +obj/HAL/src/crt0.o: HAL/src/crt0.S system.h linker.h HAL/inc/nios2.h \ + HAL/inc/sys/alt_log_printf.h system.h + +system.h: + +linker.h: + +HAL/inc/nios2.h: + +HAL/inc/sys/alt_log_printf.h: + +system.h: diff --git a/software/qsys_tutorial_lcd_bsp/obj/HAL/src/crt0.o b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/crt0.o new file mode 100644 index 0000000..8327828 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/HAL/src/crt0.o Binary files differ diff --git a/software/qsys_tutorial_lcd_bsp/obj/alt_sys_init.d b/software/qsys_tutorial_lcd_bsp/obj/alt_sys_init.d new file mode 100644 index 0000000..2087a7a --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/alt_sys_init.d @@ -0,0 +1,54 @@ +obj/alt_sys_init.o: alt_sys_init.c system.h linker.h \ + HAL/inc/sys/alt_irq.h HAL/inc/nios2.h HAL/inc/alt_types.h system.h \ + HAL/inc/sys/alt_sys_init.h HAL/inc/altera_nios2_qsys_irq.h \ + drivers/inc/altera_avalon_jtag_uart.h HAL/inc/sys/alt_alarm.h \ + HAL/inc/sys/alt_llist.h HAL/inc/priv/alt_alarm.h HAL/inc/alt_types.h \ + HAL/inc/sys/alt_warning.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h HAL/inc/os/alt_flag.h \ + drivers/inc/altera_avalon_jtag_uart_fd.h HAL/inc/sys/alt_dev.h \ + HAL/inc/sys/alt_llist.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h + +system.h: + +linker.h: + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +HAL/inc/sys/alt_sys_init.h: + +HAL/inc/altera_nios2_qsys_irq.h: + +drivers/inc/altera_avalon_jtag_uart.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_flag.h: + +drivers/inc/altera_avalon_jtag_uart_fd.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: diff --git a/software/qsys_tutorial_lcd_bsp/obj/alt_sys_init.o b/software/qsys_tutorial_lcd_bsp/obj/alt_sys_init.o new file mode 100644 index 0000000..9292284 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/alt_sys_init.o Binary files differ diff --git a/software/qsys_tutorial_lcd_bsp/obj/drivers/src/altera_avalon_jtag_uart_fd.d b/software/qsys_tutorial_lcd_bsp/obj/drivers/src/altera_avalon_jtag_uart_fd.d new file mode 100644 index 0000000..b152697 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/drivers/src/altera_avalon_jtag_uart_fd.d @@ -0,0 +1,48 @@ +obj/drivers/src/altera_avalon_jtag_uart_fd.o: \ + drivers/src/altera_avalon_jtag_uart_fd.c HAL/inc/alt_types.h \ + HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ + drivers/inc/altera_avalon_jtag_uart.h HAL/inc/sys/alt_alarm.h \ + HAL/inc/sys/alt_llist.h HAL/inc/priv/alt_alarm.h \ + HAL/inc/sys/alt_warning.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h HAL/inc/os/alt_flag.h \ + drivers/inc/altera_avalon_jtag_uart_fd.h HAL/inc/sys/alt_dev.h + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +drivers/inc/altera_avalon_jtag_uart.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_flag.h: + +drivers/inc/altera_avalon_jtag_uart_fd.h: + +HAL/inc/sys/alt_dev.h: diff --git a/software/qsys_tutorial_lcd_bsp/obj/drivers/src/altera_avalon_jtag_uart_fd.o b/software/qsys_tutorial_lcd_bsp/obj/drivers/src/altera_avalon_jtag_uart_fd.o new file mode 100644 index 0000000..5908c3f --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/drivers/src/altera_avalon_jtag_uart_fd.o Binary files differ diff --git a/software/qsys_tutorial_lcd_bsp/obj/drivers/src/altera_avalon_jtag_uart_init.d b/software/qsys_tutorial_lcd_bsp/obj/drivers/src/altera_avalon_jtag_uart_init.d new file mode 100644 index 0000000..f9460a1 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/drivers/src/altera_avalon_jtag_uart_init.d @@ -0,0 +1,66 @@ +obj/drivers/src/altera_avalon_jtag_uart_init.o: \ + drivers/src/altera_avalon_jtag_uart_init.c HAL/inc/sys/alt_irq.h \ + HAL/inc/nios2.h HAL/inc/alt_types.h system.h linker.h \ + HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_alarm.h HAL/inc/alt_types.h HAL/inc/sys/ioctl.h \ + HAL/inc/alt_types.h drivers/inc/altera_avalon_jtag_uart_regs.h \ + HAL/inc/io.h HAL/inc/alt_types.h drivers/inc/altera_avalon_jtag_uart.h \ + HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_warning.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h HAL/inc/os/alt_flag.h \ + drivers/inc/altera_avalon_jtag_uart_fd.h HAL/inc/sys/alt_dev.h \ + HAL/inc/sys/alt_llist.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h HAL/inc/sys/alt_log_printf.h system.h + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/ioctl.h: + +HAL/inc/alt_types.h: + +drivers/inc/altera_avalon_jtag_uart_regs.h: + +HAL/inc/io.h: + +HAL/inc/alt_types.h: + +drivers/inc/altera_avalon_jtag_uart.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_flag.h: + +drivers/inc/altera_avalon_jtag_uart_fd.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/sys/alt_log_printf.h: + +system.h: diff --git a/software/qsys_tutorial_lcd_bsp/obj/drivers/src/altera_avalon_jtag_uart_init.o b/software/qsys_tutorial_lcd_bsp/obj/drivers/src/altera_avalon_jtag_uart_init.o new file mode 100644 index 0000000..b0d65b8 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/drivers/src/altera_avalon_jtag_uart_init.o Binary files differ diff --git a/software/qsys_tutorial_lcd_bsp/obj/drivers/src/altera_avalon_jtag_uart_ioctl.d b/software/qsys_tutorial_lcd_bsp/obj/drivers/src/altera_avalon_jtag_uart_ioctl.d new file mode 100644 index 0000000..d75a559 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/drivers/src/altera_avalon_jtag_uart_ioctl.d @@ -0,0 +1,58 @@ +obj/drivers/src/altera_avalon_jtag_uart_ioctl.o: \ + drivers/src/altera_avalon_jtag_uart_ioctl.c HAL/inc/sys/ioctl.h \ + HAL/inc/alt_types.h drivers/inc/altera_avalon_jtag_uart_regs.h \ + HAL/inc/io.h HAL/inc/alt_types.h drivers/inc/altera_avalon_jtag_uart.h \ + HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ + HAL/inc/priv/alt_alarm.h HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h \ + HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h HAL/inc/os/alt_flag.h \ + drivers/inc/altera_avalon_jtag_uart_fd.h HAL/inc/sys/alt_dev.h system.h \ + linker.h HAL/inc/sys/alt_llist.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h HAL/inc/sys/alt_log_printf.h system.h + +HAL/inc/sys/ioctl.h: + +HAL/inc/alt_types.h: + +drivers/inc/altera_avalon_jtag_uart_regs.h: + +HAL/inc/io.h: + +HAL/inc/alt_types.h: + +drivers/inc/altera_avalon_jtag_uart.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_flag.h: + +drivers/inc/altera_avalon_jtag_uart_fd.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/sys/alt_log_printf.h: + +system.h: diff --git a/software/qsys_tutorial_lcd_bsp/obj/drivers/src/altera_avalon_jtag_uart_ioctl.o b/software/qsys_tutorial_lcd_bsp/obj/drivers/src/altera_avalon_jtag_uart_ioctl.o new file mode 100644 index 0000000..3315910 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/drivers/src/altera_avalon_jtag_uart_ioctl.o Binary files differ diff --git a/software/qsys_tutorial_lcd_bsp/obj/drivers/src/altera_avalon_jtag_uart_read.d b/software/qsys_tutorial_lcd_bsp/obj/drivers/src/altera_avalon_jtag_uart_read.d new file mode 100644 index 0000000..9a4846a --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/drivers/src/altera_avalon_jtag_uart_read.d @@ -0,0 +1,66 @@ +obj/drivers/src/altera_avalon_jtag_uart_read.o: \ + drivers/src/altera_avalon_jtag_uart_read.c HAL/inc/sys/alt_irq.h \ + HAL/inc/nios2.h HAL/inc/alt_types.h system.h linker.h \ + HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_alarm.h HAL/inc/alt_types.h HAL/inc/sys/ioctl.h \ + HAL/inc/alt_types.h drivers/inc/altera_avalon_jtag_uart_regs.h \ + HAL/inc/io.h HAL/inc/alt_types.h drivers/inc/altera_avalon_jtag_uart.h \ + HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_warning.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h HAL/inc/os/alt_flag.h \ + drivers/inc/altera_avalon_jtag_uart_fd.h HAL/inc/sys/alt_dev.h \ + HAL/inc/sys/alt_llist.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h HAL/inc/sys/alt_log_printf.h system.h + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/ioctl.h: + +HAL/inc/alt_types.h: + +drivers/inc/altera_avalon_jtag_uart_regs.h: + +HAL/inc/io.h: + +HAL/inc/alt_types.h: + +drivers/inc/altera_avalon_jtag_uart.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_flag.h: + +drivers/inc/altera_avalon_jtag_uart_fd.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/sys/alt_log_printf.h: + +system.h: diff --git a/software/qsys_tutorial_lcd_bsp/obj/drivers/src/altera_avalon_jtag_uart_read.o b/software/qsys_tutorial_lcd_bsp/obj/drivers/src/altera_avalon_jtag_uart_read.o new file mode 100644 index 0000000..14422e5 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/drivers/src/altera_avalon_jtag_uart_read.o Binary files differ diff --git a/software/qsys_tutorial_lcd_bsp/obj/drivers/src/altera_avalon_jtag_uart_write.d b/software/qsys_tutorial_lcd_bsp/obj/drivers/src/altera_avalon_jtag_uart_write.d new file mode 100644 index 0000000..5518b7f --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/drivers/src/altera_avalon_jtag_uart_write.d @@ -0,0 +1,66 @@ +obj/drivers/src/altera_avalon_jtag_uart_write.o: \ + drivers/src/altera_avalon_jtag_uart_write.c HAL/inc/sys/alt_irq.h \ + HAL/inc/nios2.h HAL/inc/alt_types.h system.h linker.h \ + HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_alarm.h HAL/inc/alt_types.h HAL/inc/sys/ioctl.h \ + HAL/inc/alt_types.h drivers/inc/altera_avalon_jtag_uart_regs.h \ + HAL/inc/io.h HAL/inc/alt_types.h drivers/inc/altera_avalon_jtag_uart.h \ + HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_warning.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h HAL/inc/os/alt_flag.h \ + drivers/inc/altera_avalon_jtag_uart_fd.h HAL/inc/sys/alt_dev.h \ + HAL/inc/sys/alt_llist.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h HAL/inc/sys/alt_log_printf.h system.h + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/ioctl.h: + +HAL/inc/alt_types.h: + +drivers/inc/altera_avalon_jtag_uart_regs.h: + +HAL/inc/io.h: + +HAL/inc/alt_types.h: + +drivers/inc/altera_avalon_jtag_uart.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_flag.h: + +drivers/inc/altera_avalon_jtag_uart_fd.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/sys/alt_log_printf.h: + +system.h: diff --git a/software/qsys_tutorial_lcd_bsp/obj/drivers/src/altera_avalon_jtag_uart_write.o b/software/qsys_tutorial_lcd_bsp/obj/drivers/src/altera_avalon_jtag_uart_write.o new file mode 100644 index 0000000..387f1f2 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/obj/drivers/src/altera_avalon_jtag_uart_write.o Binary files differ diff --git a/software/qsys_tutorial_lcd_bsp/public.mk b/software/qsys_tutorial_lcd_bsp/public.mk new file mode 100644 index 0000000..5eb883d --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/public.mk @@ -0,0 +1,385 @@ +#------------------------------------------------------------------------------ +# BSP "PUBLIC" MAKEFILE CONTENT +# +# This file is intended to be included in an application or library +# Makefile that is using this BSP. You can create such a Makefile with +# the nios2-app-generate-makefile or nios2-lib-generate-makefile +# commands. +# +# The following variables must be defined before including this file: +# +# ALT_LIBRARY_ROOT_DIR +# Contains the path to the BSP top-level (aka root) directory +#------------------------------------------------------------------------------ + +#------------------------------------------------------------------------------ +# PATHS +#------------------------------------------------------------------------------ + + + +# Path to the provided linker script. +BSP_LINKER_SCRIPT := $(ALT_LIBRARY_ROOT_DIR)/linker.x + +# Include paths: +# The path to root of all header files that a library wishes to make +# available for an application's use is specified here. Note that this +# may not be *all* folders within a hierarchy. For example, if it is +# desired that the application developer type: +# #include +# #include +# With files laid out like this: +# /inc/sockets.h +# /inc/ip/tcpip.h +# +# Then, only /inc need be added to the list of include +# directories. Alternatively, if you wish to be able to directly include +# all files in a hierarchy, separate paths to each folder in that +# hierarchy must be defined. + +# The following are the "base" set of include paths for a BSP. +# These paths are appended to the list that individual software +# components, drivers, etc., add in the generated portion of this +# file (below). +ALT_INCLUDE_DIRS_TO_APPEND += \ + $(ALT_LIBRARY_ROOT_DIR) \ + $(ALT_LIBRARY_ROOT_DIR)/drivers/inc + +# Additions to linker library search-path: +# Here we provide a path to "our self" for the application to construct a +# "-L " out of. This should contain a list of directories, +# relative to the library root, of all directories with .a files to link +# against. +ALT_LIBRARY_DIRS += $(ALT_LIBRARY_ROOT_DIR) + + +#------------------------------------------------------------------------------ +# COMPILATION FLAGS +#------------------------------------------------------------------------------ +# Default C pre-processor flags for a BSP: +ALT_CPPFLAGS += -DSYSTEM_BUS_WIDTH=32 \ + -pipe + + +#------------------------------------------------------------------------------ +# MANAGED CONTENT +# +# All content between the lines "START MANAGED" and "END MANAGED" below is +# generated based on variables in the BSP settings file when the +# nios2-bsp-generate-files command is invoked. If you wish to persist any +# information pertaining to the build process, it is recomended that you +# utilize the BSP settings mechanism to do so. +#------------------------------------------------------------------------------ +#START MANAGED + +# The following TYPE comment allows tools to identify the 'type' of target this +# makefile is associated with. +# TYPE: BSP_PUBLIC_MAKEFILE + +# This following VERSION comment indicates the version of the tool used to +# generate this makefile. A makefile variable is provided for VERSION as well. +# ACDS_VERSION: 13.0sp1 +ACDS_VERSION := 13.0sp1 + +# This following BUILD_NUMBER comment indicates the build number of the tool +# used to generate this makefile. +# BUILD_NUMBER: 232 + +# Qsys--generated SOPCINFO file. Required for resolving node instance ID's with +# design component names. +SOPCINFO_FILE := C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.sopcinfo + +# Big-Endian operation. +# setting BIG_ENDIAN is false +ALT_CFLAGS += -EL + +# Path to the provided C language runtime initialization code. +BSP_CRT0 := $(ALT_LIBRARY_ROOT_DIR)/obj/HAL/src/crt0.o + +# Name of BSP library as provided to linker using the "-msys-lib" flag or +# linker script GROUP command. +# setting BSP_SYS_LIB is hal_bsp +BSP_SYS_LIB := hal_bsp +ELF_PATCH_FLAG += --thread_model hal + +# Type identifier of the BSP library +# setting BSP_TYPE is hal +ALT_CPPFLAGS += -D__hal__ +BSP_TYPE := hal + +# CPU Name +# setting CPU_NAME is nios2_processor +CPU_NAME = nios2_processor +ELF_PATCH_FLAG += --cpu_name $(CPU_NAME) + +# Hardware Divider present. +# setting HARDWARE_DIVIDE is false +ALT_CFLAGS += -mno-hw-div + +# Hardware Multiplier present. +# setting HARDWARE_MULTIPLY is false +ALT_CFLAGS += -mno-hw-mul + +# Hardware Mulx present. +# setting HARDWARE_MULX is false +ALT_CFLAGS += -mno-hw-mulx + +# Debug Core present. +# setting HAS_DEBUG_CORE is true +CPU_HAS_DEBUG_CORE = 1 + +# Qsys generated design +# setting QSYS is 1 +QSYS := 1 +ELF_PATCH_FLAG += --qsys true + +# Design Name +# setting SOPC_NAME is nios_system +SOPC_NAME := nios_system + +# SopcBuilder Simulation Enabled +# setting SOPC_SIMULATION_ENABLED is false +ELF_PATCH_FLAG += --simulation_enabled false + +# Enable JTAG UART driver to recover when host is inactive causing buffer to +# full without returning error. Printf will not fail with this recovery. none +# setting altera_avalon_jtag_uart_driver.enable_jtag_uart_ignore_fifo_full_error is false + +# Small-footprint (polled mode) driver none +# setting altera_avalon_jtag_uart_driver.enable_small_driver is false + +# Build a custom version of newlib with the specified space-separated compiler +# flags. The custom newlib build will be placed in the <bsp root>/newlib +# directory, and will be used only for applications that utilize this BSP. +# setting hal.custom_newlib_flags is none + +# Enable support for a subset of the C++ language. This option increases code +# footprint by adding support for C++ constructors. Certain features, such as +# multiple inheritance and exceptions are not supported. If false, adds +# -DALT_NO_C_PLUS_PLUS to ALT_CPPFLAGS in public.mk, and reduces code +# footprint. none +# setting hal.enable_c_plus_plus is false +ALT_CPPFLAGS += -DALT_NO_C_PLUS_PLUS + +# When your application exits, close file descriptors, call C++ destructors, +# etc. Code footprint can be reduced by disabling clean exit. If disabled, adds +# -DALT_NO_CLEAN_EXIT to ALT_CPPFLAGS and -Wl,--defsym, exit=_exit to +# ALT_LDFLAGS in public.mk. none +# setting hal.enable_clean_exit is false +ALT_CPPFLAGS += -DALT_NO_CLEAN_EXIT +ALT_LDFLAGS += -Wl,--defsym,exit=_exit + +# Add exit() support. This option increases code footprint if your "main()" +# routine does "return" or call "exit()". If false, adds -DALT_NO_EXIT to +# ALT_CPPFLAGS in public.mk, and reduces footprint none +# setting hal.enable_exit is false +ALT_CPPFLAGS += -DALT_NO_EXIT + +# Causes code to be compiled with gprof profiling enabled and the application +# ELF to be linked with the GPROF library. If true, adds -DALT_PROVIDE_GMON to +# ALT_CPPFLAGS and -pg to ALT_CFLAGS in public.mk. none +# setting hal.enable_gprof is false + +# Enables lightweight device driver API. This reduces code and data footprint +# by removing the HAL layer that maps device names (e.g. /dev/uart0) to file +# descriptors. Instead, driver routines are called directly. The open(), +# close(), and lseek() routines will always fail if called. The read(), +# write(), fstat(), ioctl(), and isatty() routines only work for the stdio +# devices. If true, adds -DALT_USE_DIRECT_DRIVERS to ALT_CPPFLAGS in public.mk. +# The Altera Host and read-only ZIP file systems can't be used if +# hal.enable_lightweight_device_driver_api is true. +# setting hal.enable_lightweight_device_driver_api is true +ALT_CPPFLAGS += -DALT_USE_DIRECT_DRIVERS + +# Adds code to emulate multiply and divide instructions in case they are +# executed but aren't present in the CPU. Normally this isn't required because +# the compiler won't use multiply and divide instructions that aren't present +# in the CPU. If false, adds -DALT_NO_INSTRUCTION_EMULATION to ALT_CPPFLAGS in +# public.mk. none +# setting hal.enable_mul_div_emulation is false +ALT_CPPFLAGS += -DALT_NO_INSTRUCTION_EMULATION + +# Certain drivers are compiled with reduced functionality to reduce code +# footprint. Not all drivers observe this setting. The altera_avalon_uart and +# altera_avalon_jtag_uart drivers switch from interrupt-driven to polled +# operation. CAUTION: Several device drivers are disabled entirely. These +# include the altera_avalon_cfi_flash, altera_avalon_epcs_flash_controller, and +# altera_avalon_lcd_16207 drivers. This can result in certain API (HAL flash +# access routines) to fail. You can define a symbol provided by each driver to +# prevent it from being removed. If true, adds -DALT_USE_SMALL_DRIVERS to +# ALT_CPPFLAGS in public.mk. none +# setting hal.enable_reduced_device_drivers is true +ALT_CPPFLAGS += -DALT_USE_SMALL_DRIVERS + +# Turns on HAL runtime stack checking feature. Enabling this setting causes +# additional code to be placed into each subroutine call to generate an +# exception if a stack collision occurs with the heap or statically allocated +# data. If true, adds -DALT_STACK_CHECK and -mstack-check to ALT_CPPFLAGS in +# public.mk. none +# setting hal.enable_runtime_stack_checking is false + +# The BSP is compiled with optimizations to speedup HDL simulation such as +# initializing the cache, clearing the .bss section, and skipping long delay +# loops. If true, adds -DALT_SIM_OPTIMIZE to ALT_CPPFLAGS in public.mk. When +# this setting is true, the BSP shouldn't be used to build applications that +# are expected to run real hardware. +# setting hal.enable_sim_optimize is false + +# Causes the small newlib (C library) to be used. This reduces code and data +# footprint at the expense of reduced functionality. Several newlib features +# are removed such as floating-point support in printf(), stdin input routines, +# and buffered I/O. The small C library is not compatible with Micrium +# MicroC/OS-II. If true, adds -msmallc to ALT_LDFLAGS in public.mk. none +# setting hal.enable_small_c_library is true +ALT_LDFLAGS += -msmallc +ALT_CPPFLAGS += -DSMALL_C_LIB + +# Enable SOPC Builder System ID. If a System ID SOPC Builder component is +# connected to the CPU associated with this BSP, it will be enabled in the +# creation of command-line arguments to download an ELF to the target. +# Otherwise, system ID and timestamp values are left out of public.mk for +# application Makefile "download-elf" target definition. With the system ID +# check disabled, the Nios II EDS tools will not automatically ensure that the +# application .elf file (and BSP it is linked against) corresponds to the +# hardware design on the target. If false, adds --accept-bad-sysid to +# SOPC_SYSID_FLAG in public.mk. none +# setting hal.enable_sopc_sysid_check is true + +# Enable BSP generation to query if SOPC system is big endian. If true ignores +# export of 'ALT_CFLAGS += -EB' to public.mk if big endian system. If true +# ignores export of 'ALT_CFLAGS += -EL' if little endian system. none +# setting hal.make.ignore_system_derived.big_endian is false + +# Enable BSP generation to query if SOPC system has a debug core present. If +# true ignores export of 'CPU_HAS_DEBUG_CORE = 1' to public.mk if a debug core +# is found in the system. If true ignores export of 'CPU_HAS_DEBUG_CORE = 0' if +# no debug core is found in the system. none +# setting hal.make.ignore_system_derived.debug_core_present is false + +# Enable BSP generation to query if SOPC system has FPU present. If true +# ignores export of 'ALT_CFLAGS += -mhard-float' to public.mk if FPU is found +# in the system. If true ignores export of 'ALT_CFLAGS += -mhard-soft' if FPU +# is not found in the system. none +# setting hal.make.ignore_system_derived.fpu_present is false + +# Enable BSP generation to query if SOPC system has hardware divide present. If +# true ignores export of 'ALT_CFLAGS += -mno-hw-div' to public.mk if no +# division is found in system. If true ignores export of 'ALT_CFLAGS += +# -mhw-div' if division is found in the system. none +# setting hal.make.ignore_system_derived.hardware_divide_present is false + +# Enable BSP generation to query if SOPC system floating point custom +# instruction with a divider is present. If true ignores export of 'ALT_CFLAGS +# += -mcustom-fpu-cfg=60-2' and 'ALT_LDFLAGS += -mcustom-fpu-cfg=60-2' to +# public.mk if the custom instruction is found in the system. none +# setting hal.make.ignore_system_derived.hardware_fp_cust_inst_divider_present is false + +# Enable BSP generation to query if SOPC system floating point custom +# instruction without a divider is present. If true ignores export of +# 'ALT_CFLAGS += -mcustom-fpu-cfg=60-1' and 'ALT_LDFLAGS += +# -mcustom-fpu-cfg=60-1' to public.mk if the custom instruction is found in the +# system. none +# setting hal.make.ignore_system_derived.hardware_fp_cust_inst_no_divider_present is false + +# Enable BSP generation to query if SOPC system has multiplier present. If true +# ignores export of 'ALT_CFLAGS += -mno-hw-mul' to public.mk if no multiplier +# is found in the system. If true ignores export of 'ALT_CFLAGS += -mhw-mul' if +# multiplier is found in the system. none +# setting hal.make.ignore_system_derived.hardware_multiplier_present is false + +# Enable BSP generation to query if SOPC system has hardware mulx present. If +# true ignores export of 'ALT_CFLAGS += -mno-hw-mulx' to public.mk if no mulx +# is found in the system. If true ignores export of 'ALT_CFLAGS += -mhw-mulx' +# if mulx is found in the system. none +# setting hal.make.ignore_system_derived.hardware_mulx_present is false + +# Enable BSP generation to query if SOPC system has simulation enabled. If true +# ignores export of 'ELF_PATCH_FLAG += --simulation_enabled' to public.mk. none +# setting hal.make.ignore_system_derived.sopc_simulation_enabled is false + +# Enable BSP generation to query SOPC system for system ID base address. If +# true ignores export of 'SOPC_SYSID_FLAG += --sidp=
' and +# 'ELF_PATCH_FLAG += --sidp=
' to public.mk. none +# setting hal.make.ignore_system_derived.sopc_system_base_address is false + +# Enable BSP generation to query SOPC system for system ID. If true ignores +# export of 'SOPC_SYSID_FLAG += --id=' and 'ELF_PATCH_FLAG += +# --id=' to public.mk. none +# setting hal.make.ignore_system_derived.sopc_system_id is false + +# Enable BSP generation to query SOPC system for system timestamp. If true +# ignores export of 'SOPC_SYSID_FLAG += --timestamp=' and +# 'ELF_PATCH_FLAG += --timestamp=' to public.mk. none +# setting hal.make.ignore_system_derived.sopc_system_timestamp is false + +# Slave descriptor of STDERR character-mode device. This setting is used by the +# ALT_STDERR family of defines in system.h. none +# setting hal.stderr is jtag_uart +ELF_PATCH_FLAG += --stderr_dev jtag_uart + +# Slave descriptor of STDIN character-mode device. This setting is used by the +# ALT_STDIN family of defines in system.h. none +# setting hal.stdin is jtag_uart +ELF_PATCH_FLAG += --stdin_dev jtag_uart + +# Slave descriptor of STDOUT character-mode device. This setting is used by the +# ALT_STDOUT family of defines in system.h. none +# setting hal.stdout is jtag_uart +ELF_PATCH_FLAG += --stdout_dev jtag_uart + + +#------------------------------------------------------------------------------ +# SOFTWARE COMPONENT & DRIVER INCLUDE PATHS +#------------------------------------------------------------------------------ + +ALT_INCLUDE_DIRS += $(ALT_LIBRARY_ROOT_DIR)/HAL/inc + +#------------------------------------------------------------------------------ +# SOFTWARE COMPONENT & DRIVER PRODUCED ALT_CPPFLAGS ADDITIONS +#------------------------------------------------------------------------------ + +ALT_CPPFLAGS += -DALT_SINGLE_THREADED + +#END MANAGED + + +#------------------------------------------------------------------------------ +# LIBRARY INFORMATION +#------------------------------------------------------------------------------ +# Assemble the name of the BSP *.a file using the BSP library name +# (BSP_SYS_LIB) in generated content above. +BSP_LIB := lib$(BSP_SYS_LIB).a + +# Additional libraries to link against: +# An application including this file will prefix each library with "-l". +# For example, to include the Newlib math library "m" is included, which +# becomes "-lm" when linking the application. +ALT_LIBRARY_NAMES += m + +# Additions to linker dependencies: +# An application Makefile will typically add these directly to the list +# of dependencies required to build the executable target(s). The BSP +# library (*.a) file is specified here. +ALT_LDDEPS += $(ALT_LIBRARY_ROOT_DIR)/$(BSP_LIB) + +# Is this library "Makeable"? +# Add to list of root library directories that support running 'make' +# to build them. Because libraries may or may not have a Makefile in their +# root, appending to this variable tells an application to run 'make' in +# the library root to build/update this library. +MAKEABLE_LIBRARY_ROOT_DIRS += $(ALT_LIBRARY_ROOT_DIR) + +# Additional Assembler Flags +# -gdwarf2 flag is required for stepping through assembly code +ALT_ASFLAGS += -gdwarf2 + +#------------------------------------------------------------------------------ +# FINAL INCLUDE PATH LIST +#------------------------------------------------------------------------------ +# Append static include paths to paths specified by OS/driver/sw package +# additions to the BSP thus giving them precedence in case a BSP addition +# is attempting to override BSP sources. +ALT_INCLUDE_DIRS += $(ALT_INCLUDE_DIRS_TO_APPEND) + + + diff --git a/software/qsys_tutorial_lcd_bsp/settings.bsp b/software/qsys_tutorial_lcd_bsp/settings.bsp new file mode 100644 index 0000000..f01ba7c --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/settings.bsp @@ -0,0 +1,997 @@ + + + hal + default + 2016/12/01 23:23:47 + 1480602227537 + C:\Users\takayun\Documents\DE2-115\qsys_tutorial\software\qsys_tutorial_lcd_bsp + .\settings.bsp + C:\Users\takayun\Documents\DE2-115\qsys_tutorial\nios_system.sopcinfo + default + nios2_processor + 1.9 + + hal.sys_clk_timer + ALT_SYS_CLK + UnquotedString + none + none + system_h_define + Slave descriptor of the system clock timer device. This device provides a periodic interrupt ("tick") and is typically required for RTOS use. This setting defines the value of ALT_SYS_CLK in system.h. + none + false + common + + + hal.timestamp_timer + ALT_TIMESTAMP_CLK + UnquotedString + none + none + system_h_define + Slave descriptor of timestamp timer device. This device is used by Altera HAL timestamp drivers for high-resolution time measurement. This setting defines the value of ALT_TIMESTAMP_CLK in system.h. + none + false + common + + + hal.max_file_descriptors + ALT_MAX_FD + DecimalNumber + 4 + 32 + system_h_define + Determines the number of file descriptors statically allocated. This setting defines the value of ALT_MAX_FD in system.h. + If hal.enable_lightweight_device_driver_api is true, there are no file descriptors so this setting is ignored. If hal.enable_lightweight_device_driver_api is false, this setting must be at least 4 because HAL needs a file descriptor for /dev/null, /dev/stdin, /dev/stdout, and /dev/stderr. + false + + + + hal.enable_instruction_related_exceptions_api + ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API + BooleanDefineOnly + false + false + system_h_define + Enables API for registering handlers to service instruction-related exceptions. Enabling this setting increases the size of the exception entry code. + These exception types can be generated if various processor options are enabled, such as the MMU, MPU, or other advanced exception types. + false + + + + hal.linker.allow_code_at_reset + ALT_ALLOW_CODE_AT_RESET + Boolean + 1 + 0 + none + Indicates if initialization code is allowed at the reset address. If true, defines the macro ALT_ALLOW_CODE_AT_RESET in linker.h. + If true, defines the macro ALT_ALLOW_CODE_AT_RESET in linker.h. This setting is typically false if an external bootloader (e.g. flash bootloader) is present. + false + + + + hal.linker.enable_alt_load + NONE + Boolean + 1 + 0 + none + Enables the alt_load() facility. The alt_load() facility copies sections from the .text memory into RAM. If true, this setting sets up the VMA/LMA of sections in linker.x to allow them to be loaded into the .text memory. + This setting is typically false if an external bootloader (e.g. flash bootloader) is present. + false + + + + hal.linker.enable_alt_load_copy_rodata + NONE + Boolean + 0 + 0 + none + Causes the alt_load() facility to copy the .rodata section. If true, this setting defines the macro ALT_LOAD_COPY_RODATA in linker.h. + none + false + + + + hal.linker.enable_alt_load_copy_rwdata + NONE + Boolean + 1 + 0 + none + Causes the alt_load() facility to copy the .rwdata section. If true, this setting defines the macro ALT_LOAD_COPY_RWDATA in linker.h. + none + false + + + + hal.linker.enable_alt_load_copy_exceptions + NONE + Boolean + 0 + 0 + none + Causes the alt_load() facility to copy the .exceptions section. If true, this setting defines the macro ALT_LOAD_COPY_EXCEPTIONS in linker.h. + none + false + + + + hal.linker.enable_exception_stack + NONE + Boolean + 0 + 0 + none + Enables use of a separate exception stack. If true, defines the macro ALT_EXCEPTION_STACK in linker.h, adds a memory region called exception_stack to linker.x, and provides the symbols __alt_exception_stack_pointer and __alt_exception_stack_limit in linker.x. + The hal.linker.exception_stack_size and hal.linker.exception_stack_memory_region_name settings must also be valid. This setting must be false for MicroC/OS-II BSPs. The exception stack can be used to improve interrupt and other exception performance if the EIC is *not* used. + false + common + + + hal.linker.exception_stack_size + NONE + DecimalNumber + 1024 + 1024 + none + Size of the exception stack in bytes. + Only used if hal.linker.enable_exception_stack is true. + false + common + + + hal.linker.exception_stack_memory_region_name + NONE + UnquotedString + onchip_memory + none + none + Name of the existing memory region that will be divided up to create the 'exception_stack' memory region. The selected region name will be adjusted automatically when the BSP is generated to create the 'exception_stack' memory region. + Only used if hal.linker.enable_exception_stack is true. + false + common + + + hal.linker.enable_interrupt_stack + NONE + Boolean + 0 + 0 + none + Enables use of a separate interrupt stack. If true, defines the macro ALT_INTERRUPT_STACK in linker.h, adds a memory region called interrupt_stack to linker.x, and provides the symbols __alt_interrupt_stack_pointer and __alt_interrupt_stack_limit in linker.x. + The hal.linker.interrupt_stack_size and hal.linker.interrupt_stack_memory_region_name settings must also be valid. This setting must be false for MicroC/OS-II BSPs. Only enable if the EIC is used exclusively. The exception stack can be used to improve interrupt and other exception performance if the EIC is *not* used. + false + common + + + hal.linker.interrupt_stack_size + NONE + DecimalNumber + 1024 + 1024 + none + Size of the interrupt stack in bytes. + Only used if hal.linker.enable_interrupt_stack is true. + false + common + + + hal.linker.interrupt_stack_memory_region_name + NONE + UnquotedString + onchip_memory + none + none + Name of the existing memory region that will be divided up to create the 'interrupt_stack' memory region. The selected region name will be adjusted automatically when the BSP is generated to create the 'interrupt_stack' memory region. + Only used if hal.linker.enable_interrupt_stack is true. + false + common + + + hal.stdin + NONE + UnquotedString + jtag_uart + none + system_h_define + Slave descriptor of STDIN character-mode device. This setting is used by the ALT_STDIN family of defines in system.h. + none + false + common + + + hal.stdout + NONE + UnquotedString + jtag_uart + none + system_h_define + Slave descriptor of STDOUT character-mode device. This setting is used by the ALT_STDOUT family of defines in system.h. + none + false + common + + + hal.stderr + NONE + UnquotedString + jtag_uart + none + system_h_define + Slave descriptor of STDERR character-mode device. This setting is used by the ALT_STDERR family of defines in system.h. + none + false + common + + + hal.log_port + NONE + UnquotedString + none + none + public_mk_define + Slave descriptor of debug logging character-mode device. If defined, it enables extra debug messages in the HAL source. This setting is used by the ALT_LOG_PORT family of defines in system.h. + none + false + none + + + hal.make.build_pre_process + BUILD_PRE_PROCESS + UnquotedString + none + none + makefile_variable + Command executed before BSP built. + none + false + none + + + hal.make.ar_pre_process + AR_PRE_PROCESS + UnquotedString + none + none + makefile_variable + Command executed before archiver execution. + none + false + none + + + hal.make.bsp_cflags_defined_symbols + BSP_CFLAGS_DEFINED_SYMBOLS + UnquotedString + none + none + makefile_variable + Preprocessor macros to define. A macro definition in this setting has the same effect as a "#define" in source code. Adding "-DALT_DEBUG" to this setting has the same effect as "#define ALT_DEBUG" in a souce file. Adding "-DFOO=1" to this setting is equivalent to the macro "#define FOO 1" in a source file. Macros defined with this setting are applied to all .S, .c, and C++ files in the BSP. This setting defines the value of BSP_CFLAGS_DEFINED_SYMBOLS in the BSP Makefile. + none + false + none + + + hal.make.ar_post_process + AR_POST_PROCESS + UnquotedString + none + none + makefile_variable + Command executed after archiver execution. + none + false + none + + + hal.make.as + AS + UnquotedString + nios2-elf-gcc + nios2-elf-gcc + makefile_variable + Assembler command. Note that CC is used for .S files. + none + false + none + + + hal.make.build_post_process + BUILD_POST_PROCESS + UnquotedString + none + none + makefile_variable + Command executed after BSP built. + none + false + none + + + hal.make.bsp_cflags_debug + BSP_CFLAGS_DEBUG + UnquotedString + -g + -g + makefile_variable + C/C++ compiler debug level. '-g' provides the default set of debug symbols typically required to debug a typical application. Omitting '-g' removes debug symbols from the ELF. This setting defines the value of BSP_CFLAGS_DEBUG in Makefile. + none + false + common + + + hal.make.ar + AR + UnquotedString + nios2-elf-ar + nios2-elf-ar + makefile_variable + Archiver command. Creates library files. + none + false + none + + + hal.make.rm + RM + UnquotedString + rm -f + rm -f + makefile_variable + Command used to remove files during 'clean' target. + none + false + none + + + hal.make.cxx_pre_process + CXX_PRE_PROCESS + UnquotedString + none + none + makefile_variable + Command executed before each C++ file is compiled. + none + false + none + + + hal.make.bsp_cflags_warnings + BSP_CFLAGS_WARNINGS + UnquotedString + -Wall + -Wall + makefile_variable + C/C++ compiler warning level. "-Wall" is commonly used.This setting defines the value of BSP_CFLAGS_WARNINGS in Makefile. + none + false + none + + + hal.make.bsp_arflags + BSP_ARFLAGS + UnquotedString + -src + -src + makefile_variable + Custom flags only passed to the archiver. This content of this variable is directly passed to the archiver rather than the more standard "ARFLAGS". The reason for this is that GNU Make assumes some default content in ARFLAGS. This setting defines the value of BSP_ARFLAGS in Makefile. + none + false + none + + + hal.make.bsp_cflags_optimization + BSP_CFLAGS_OPTIMIZATION + UnquotedString + '-Os' + -O0 + makefile_variable + C/C++ compiler optimization level. "-O0" = no optimization,"-O2" = "normal" optimization, etc. "-O0" is recommended for code that you want to debug since compiler optimization can remove variables and produce non-sequential execution of code while debugging. This setting defines the value of BSP_CFLAGS_OPTIMIZATION in Makefile. + none + false + common + + + hal.make.as_post_process + AS_POST_PROCESS + UnquotedString + none + none + makefile_variable + Command executed after each assembly file is compiled. + none + false + none + + + hal.make.cc_pre_process + CC_PRE_PROCESS + UnquotedString + none + none + makefile_variable + Command executed before each .c/.S file is compiled. + none + false + none + + + hal.make.bsp_asflags + BSP_ASFLAGS + UnquotedString + -Wa,-gdwarf2 + -Wa,-gdwarf2 + makefile_variable + Custom flags only passed to the assembler. This setting defines the value of BSP_ASFLAGS in Makefile. + none + false + none + + + hal.make.as_pre_process + AS_PRE_PROCESS + UnquotedString + none + none + makefile_variable + Command executed before each assembly file is compiled. + none + false + none + + + hal.make.bsp_cflags_undefined_symbols + BSP_CFLAGS_UNDEFINED_SYMBOLS + UnquotedString + none + none + makefile_variable + Preprocessor macros to undefine. Undefined macros are similar to defined macros, but replicate the "#undef" directive in source code. To undefine the macro FOO use the syntax "-u FOO" in this setting. This is equivalent to "#undef FOO" in a source file. Note: the syntax differs from macro definition (there is a space, i.e. "-u FOO" versus "-DFOO"). Macros defined with this setting are applied to all .S, .c, and C++ files in the BSP. This setting defines the value of BSP_CFLAGS_UNDEFINED_SYMBOLS in the BSP Makefile. + none + false + none + + + hal.make.cc_post_process + CC_POST_PROCESS + UnquotedString + none + none + makefile_variable + Command executed after each .c/.S file is compiled. + none + false + none + + + hal.make.cxx_post_process + CXX_POST_PROCESS + UnquotedString + none + none + makefile_variable + Command executed before each C++ file is compiled. + none + false + none + + + hal.make.cc + CC + UnquotedString + nios2-elf-gcc -xc + nios2-elf-gcc -xc + makefile_variable + C compiler command. + none + false + none + + + hal.make.bsp_cxx_flags + BSP_CXXFLAGS + UnquotedString + none + none + makefile_variable + Custom flags only passed to the C++ compiler. This setting defines the value of BSP_CXXFLAGS in Makefile. + none + false + none + + + hal.make.bsp_inc_dirs + BSP_INC_DIRS + UnquotedString + none + none + makefile_variable + Space separated list of extra include directories to scan for header files. Directories are relative to the top-level BSP directory. The -I prefix's added by the makefile so don't add it here. This setting defines the value of BSP_INC_DIRS in Makefile. + none + false + none + + + hal.make.cxx + CXX + UnquotedString + nios2-elf-gcc -xc++ + nios2-elf-gcc -xc++ + makefile_variable + C++ compiler command. + none + false + none + + + hal.make.bsp_cflags_user_flags + BSP_CFLAGS_USER_FLAGS + UnquotedString + none + none + makefile_variable + Custom flags passed to the compiler when compiling C, C++, and .S files. This setting defines the value of BSP_CFLAGS_USER_FLAGS in Makefile. + none + false + none + + + hal.make.ignore_system_derived.sopc_system_id + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query SOPC system for system ID. If true ignores export of 'SOPC_SYSID_FLAG += --id=<sysid>' and 'ELF_PATCH_FLAG += --id=<sysid>' to public.mk. + none + false + none + + + hal.make.ignore_system_derived.sopc_system_timestamp + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query SOPC system for system timestamp. If true ignores export of 'SOPC_SYSID_FLAG += --timestamp=<timestamp>' and 'ELF_PATCH_FLAG += --timestamp=<timestamp>' to public.mk. + none + false + none + + + hal.make.ignore_system_derived.sopc_system_base_address + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query SOPC system for system ID base address. If true ignores export of 'SOPC_SYSID_FLAG += --sidp=<address>' and 'ELF_PATCH_FLAG += --sidp=<address>' to public.mk. + none + false + none + + + hal.make.ignore_system_derived.sopc_simulation_enabled + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query if SOPC system has simulation enabled. If true ignores export of 'ELF_PATCH_FLAG += --simulation_enabled' to public.mk. + none + false + none + + + hal.make.ignore_system_derived.fpu_present + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query if SOPC system has FPU present. If true ignores export of 'ALT_CFLAGS += -mhard-float' to public.mk if FPU is found in the system. If true ignores export of 'ALT_CFLAGS += -mhard-soft' if FPU is not found in the system. + none + false + none + + + hal.make.ignore_system_derived.hardware_multiplier_present + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query if SOPC system has multiplier present. If true ignores export of 'ALT_CFLAGS += -mno-hw-mul' to public.mk if no multiplier is found in the system. If true ignores export of 'ALT_CFLAGS += -mhw-mul' if multiplier is found in the system. + none + false + none + + + hal.make.ignore_system_derived.hardware_mulx_present + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query if SOPC system has hardware mulx present. If true ignores export of 'ALT_CFLAGS += -mno-hw-mulx' to public.mk if no mulx is found in the system. If true ignores export of 'ALT_CFLAGS += -mhw-mulx' if mulx is found in the system. + none + false + none + + + hal.make.ignore_system_derived.hardware_divide_present + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query if SOPC system has hardware divide present. If true ignores export of 'ALT_CFLAGS += -mno-hw-div' to public.mk if no division is found in system. If true ignores export of 'ALT_CFLAGS += -mhw-div' if division is found in the system. + none + false + none + + + hal.make.ignore_system_derived.debug_core_present + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query if SOPC system has a debug core present. If true ignores export of 'CPU_HAS_DEBUG_CORE = 1' to public.mk if a debug core is found in the system. If true ignores export of 'CPU_HAS_DEBUG_CORE = 0' if no debug core is found in the system. + none + false + none + + + hal.make.ignore_system_derived.big_endian + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query if SOPC system is big endian. If true ignores export of 'ALT_CFLAGS += -EB' to public.mk if big endian system. If true ignores export of 'ALT_CFLAGS += -EL' if little endian system. + none + false + none + + + hal.make.ignore_system_derived.hardware_fp_cust_inst_divider_present + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query if SOPC system floating point custom instruction with a divider is present. If true ignores export of 'ALT_CFLAGS += -mcustom-fpu-cfg=60-2' and 'ALT_LDFLAGS += -mcustom-fpu-cfg=60-2' to public.mk if the custom instruction is found in the system. + none + false + none + + + hal.make.ignore_system_derived.hardware_fp_cust_inst_no_divider_present + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query if SOPC system floating point custom instruction without a divider is present. If true ignores export of 'ALT_CFLAGS += -mcustom-fpu-cfg=60-1' and 'ALT_LDFLAGS += -mcustom-fpu-cfg=60-1' to public.mk if the custom instruction is found in the system. + none + false + none + + + hal.enable_exit + ALT_NO_EXIT + Boolean + 0 + 1 + public_mk_define + Add exit() support. This option increases code footprint if your "main()" routine does "return" or call "exit()". If false, adds -DALT_NO_EXIT to ALT_CPPFLAGS in public.mk, and reduces footprint + none + false + none + + + hal.enable_small_c_library + NONE + Boolean + 1 + 0 + public_mk_define + Causes the small newlib (C library) to be used. This reduces code and data footprint at the expense of reduced functionality. Several newlib features are removed such as floating-point support in printf(), stdin input routines, and buffered I/O. The small C library is not compatible with Micrium MicroC/OS-II. If true, adds -msmallc to ALT_LDFLAGS in public.mk. + none + false + common + + + hal.enable_clean_exit + ALT_NO_CLEAN_EXIT + Boolean + 0 + 1 + public_mk_define + When your application exits, close file descriptors, call C++ destructors, etc. Code footprint can be reduced by disabling clean exit. If disabled, adds -DALT_NO_CLEAN_EXIT to ALT_CPPFLAGS and -Wl,--defsym, exit=_exit to ALT_LDFLAGS in public.mk. + none + false + none + + + hal.enable_runtime_stack_checking + ALT_STACK_CHECK + Boolean + 0 + 0 + public_mk_define + Turns on HAL runtime stack checking feature. Enabling this setting causes additional code to be placed into each subroutine call to generate an exception if a stack collision occurs with the heap or statically allocated data. If true, adds -DALT_STACK_CHECK and -mstack-check to ALT_CPPFLAGS in public.mk. + none + false + none + + + hal.enable_gprof + ALT_PROVIDE_GMON + Boolean + 0 + 0 + public_mk_define + Causes code to be compiled with gprof profiling enabled and the application ELF to be linked with the GPROF library. If true, adds -DALT_PROVIDE_GMON to ALT_CPPFLAGS and -pg to ALT_CFLAGS in public.mk. + none + false + common + + + hal.enable_c_plus_plus + ALT_NO_C_PLUS_PLUS + Boolean + 0 + 1 + public_mk_define + Enable support for a subset of the C++ language. This option increases code footprint by adding support for C++ constructors. Certain features, such as multiple inheritance and exceptions are not supported. If false, adds -DALT_NO_C_PLUS_PLUS to ALT_CPPFLAGS in public.mk, and reduces code footprint. + none + false + none + + + hal.enable_reduced_device_drivers + ALT_USE_SMALL_DRIVERS + Boolean + 1 + 0 + public_mk_define + Certain drivers are compiled with reduced functionality to reduce code footprint. Not all drivers observe this setting. The altera_avalon_uart and altera_avalon_jtag_uart drivers switch from interrupt-driven to polled operation. CAUTION: Several device drivers are disabled entirely. These include the altera_avalon_cfi_flash, altera_avalon_epcs_flash_controller, and altera_avalon_lcd_16207 drivers. This can result in certain API (HAL flash access routines) to fail. You can define a symbol provided by each driver to prevent it from being removed. If true, adds -DALT_USE_SMALL_DRIVERS to ALT_CPPFLAGS in public.mk. + none + false + common + + + hal.enable_lightweight_device_driver_api + ALT_USE_DIRECT_DRIVERS + Boolean + 1 + 0 + public_mk_define + Enables lightweight device driver API. This reduces code and data footprint by removing the HAL layer that maps device names (e.g. /dev/uart0) to file descriptors. Instead, driver routines are called directly. The open(), close(), and lseek() routines will always fail if called. The read(), write(), fstat(), ioctl(), and isatty() routines only work for the stdio devices. If true, adds -DALT_USE_DIRECT_DRIVERS to ALT_CPPFLAGS in public.mk. + The Altera Host and read-only ZIP file systems can't be used if hal.enable_lightweight_device_driver_api is true. + false + none + + + hal.enable_mul_div_emulation + ALT_NO_INSTRUCTION_EMULATION + Boolean + 0 + 0 + public_mk_define + Adds code to emulate multiply and divide instructions in case they are executed but aren't present in the CPU. Normally this isn't required because the compiler won't use multiply and divide instructions that aren't present in the CPU. If false, adds -DALT_NO_INSTRUCTION_EMULATION to ALT_CPPFLAGS in public.mk. + none + false + none + + + hal.enable_sim_optimize + ALT_SIM_OPTIMIZE + Boolean + 0 + 0 + public_mk_define + The BSP is compiled with optimizations to speedup HDL simulation such as initializing the cache, clearing the .bss section, and skipping long delay loops. If true, adds -DALT_SIM_OPTIMIZE to ALT_CPPFLAGS in public.mk. + When this setting is true, the BSP shouldn't be used to build applications that are expected to run real hardware. + false + common + + + hal.enable_sopc_sysid_check + NONE + Boolean + 1 + 1 + public_mk_define + Enable SOPC Builder System ID. If a System ID SOPC Builder component is connected to the CPU associated with this BSP, it will be enabled in the creation of command-line arguments to download an ELF to the target. Otherwise, system ID and timestamp values are left out of public.mk for application Makefile "download-elf" target definition. With the system ID check disabled, the Nios II EDS tools will not automatically ensure that the application .elf file (and BSP it is linked against) corresponds to the hardware design on the target. If false, adds --accept-bad-sysid to SOPC_SYSID_FLAG in public.mk. + none + false + none + + + hal.custom_newlib_flags + CUSTOM_NEWLIB_FLAGS + UnquotedString + none + none + public_mk_define + Build a custom version of newlib with the specified space-separated compiler flags. + The custom newlib build will be placed in the &lt;bsp root>/newlib directory, and will be used only for applications that utilize this BSP. + false + none + + + hal.log_flags + ALT_LOG_FLAGS + DecimalNumber + 0 + 0 + public_mk_define + The value is assigned to ALT_LOG_FLAGS in the generated public.mk. See hal.log_port setting description. Values can be -1 through 3. + hal.log_port must be set for this to be used. + false + none + + + altera_avalon_jtag_uart_driver.enable_small_driver + ALTERA_AVALON_JTAG_UART_SMALL + BooleanDefineOnly + false + false + public_mk_define + Small-footprint (polled mode) driver + none + false + + + + altera_avalon_jtag_uart_driver.enable_jtag_uart_ignore_fifo_full_error + ALTERA_AVALON_JTAG_UART_IGNORE_FIFO_FULL_ERROR + BooleanDefineOnly + false + false + public_mk_define + Enable JTAG UART driver to recover when host is inactive causing buffer to full without returning error. Printf will not fail with this recovery. + none + false + + + + onchip_memory + 0x00000000 - 0x00003FFF + 16384 + memory + + + lcd_RW + 0x00004000 - 0x0000400F + 16 + + + + lcd_RS + 0x00004010 - 0x0000401F + 16 + + + + lcd_E + 0x00004020 - 0x0000402F + 16 + + + + lcd_data + 0x00004030 - 0x0000403F + 16 + + + + pio_0 + 0x00005000 - 0x0000500F + 16 + + + + hex6 + 0x00005010 - 0x0000501F + 16 + + + + hex5 + 0x00005020 - 0x0000502F + 16 + + + + hex4 + 0x00005030 - 0x0000503F + 16 + + + + hex3 + 0x00005040 - 0x0000504F + 16 + + + + hex2 + 0x00005050 - 0x0000505F + 16 + + + + hex1 + 0x00005060 - 0x0000506F + 16 + + + + hex0 + 0x00005070 - 0x0000507F + 16 + + + + push_switches + 0x00005080 - 0x0000508F + 16 + + + + switches + 0x00005090 - 0x0000509F + 16 + + + + LEDRs + 0x000050A0 - 0x000050AF + 16 + + + + LEDs + 0x000050B0 - 0x000050BF + 16 + + + + jtag_uart + 0x000050C0 - 0x000050C7 + 8 + printable + + + .text + onchip_memory + + + .rodata + onchip_memory + + + .rwdata + onchip_memory + + + .bss + onchip_memory + + + .heap + onchip_memory + + + .stack + onchip_memory + + \ No newline at end of file diff --git a/software/qsys_tutorial_lcd_bsp/summary.html b/software/qsys_tutorial_lcd_bsp/summary.html new file mode 100644 index 0000000..0fc5f28 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/summary.html @@ -0,0 +1,2050 @@ + +Altera Nios II BSP Summary + +

BSP Description

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
BSP Type:hal
SOPC Design File:C:\Users\takayun\Documents\DE2-115\qsys_tutorial\nios_system.sopcinfo
Quartus JDI File:default
CPU:nios2_processor
BSP Settings File:.\settings.bsp
BSP Version:default
BSP Generated On:2016/12/01 23:23:47
BSP Generated Timestamp:1480602227537
BSP Generated Location:C:\Users\takayun\Documents\DE2-115\qsys_tutorial\software\qsys_tutorial_lcd_bsp
+
+

Nios II Memory Map

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Slave DescriptorAddress RangeSizeAttributes
jtag_uart0x000050C0 - 0x000050C78printable
LEDs0x000050B0 - 0x000050BF16 
LEDRs0x000050A0 - 0x000050AF16 
switches0x00005090 - 0x0000509F16 
push_switches0x00005080 - 0x0000508F16 
hex00x00005070 - 0x0000507F16 
hex10x00005060 - 0x0000506F16 
hex20x00005050 - 0x0000505F16 
hex30x00005040 - 0x0000504F16 
hex40x00005030 - 0x0000503F16 
hex50x00005020 - 0x0000502F16 
hex60x00005010 - 0x0000501F16 
pio_00x00005000 - 0x0000500F16 
lcd_data0x00004030 - 0x0000403F16 
lcd_E0x00004020 - 0x0000402F16 
lcd_RS0x00004010 - 0x0000401F16 
lcd_RW0x00004000 - 0x0000400F16 
onchip_memory0x00000000 - 0x00003FFF16384memory
+
+
+

Linker Regions

+ + + + +
RegionAddress RangeSizeMemoryOffset
+
+
+

Linker Section Mappings

+ + + + + + + + + + + + + + + + + + + + + + +
SectionRegion
.textonchip_memory
.rodataonchip_memory
.rwdataonchip_memory
.bssonchip_memory
.heaponchip_memory
.stackonchip_memory
+

Settings

+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:altera_avalon_jtag_uart_driver.enable_jtag_uart_ignore_fifo_full_error
Identifier:ALTERA_AVALON_JTAG_UART_IGNORE_FIFO_FULL_ERROR
Default Value:false
Value:false
Type:BooleanDefineOnly
Destination:public_mk_define
Description:Enable JTAG UART driver to recover when host is inactive causing buffer to full without returning error. Printf will not fail with this recovery.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:altera_avalon_jtag_uart_driver.enable_small_driver
Identifier:ALTERA_AVALON_JTAG_UART_SMALL
Default Value:false
Value:false
Type:BooleanDefineOnly
Destination:public_mk_define
Description:Small-footprint (polled mode) driver
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.custom_newlib_flags
Identifier:CUSTOM_NEWLIB_FLAGS
Default Value:none
Value:none
Type:UnquotedString
Destination:public_mk_define
Description:Build a custom version of newlib with the specified space-separated compiler flags.
Restrictions:The custom newlib build will be placed in the &lt;bsp root>/newlib directory, and will be used only for applications that utilize this BSP.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_c_plus_plus
Identifier:ALT_NO_C_PLUS_PLUS
Default Value:1
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable support for a subset of the C++ language. This option increases code footprint by adding support for C++ constructors. Certain features, such as multiple inheritance and exceptions are not supported. If false, adds -DALT_NO_C_PLUS_PLUS to ALT_CPPFLAGS in public.mk, and reduces code footprint.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_clean_exit
Identifier:ALT_NO_CLEAN_EXIT
Default Value:1
Value:0
Type:Boolean
Destination:public_mk_define
Description:When your application exits, close file descriptors, call C++ destructors, etc. Code footprint can be reduced by disabling clean exit. If disabled, adds -DALT_NO_CLEAN_EXIT to ALT_CPPFLAGS and -Wl,--defsym, exit=_exit to ALT_LDFLAGS in public.mk.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_exit
Identifier:ALT_NO_EXIT
Default Value:1
Value:0
Type:Boolean
Destination:public_mk_define
Description:Add exit() support. This option increases code footprint if your "main()" routine does "return" or call "exit()". If false, adds -DALT_NO_EXIT to ALT_CPPFLAGS in public.mk, and reduces footprint
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_gprof
Identifier:ALT_PROVIDE_GMON
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Causes code to be compiled with gprof profiling enabled and the application ELF to be linked with the GPROF library. If true, adds -DALT_PROVIDE_GMON to ALT_CPPFLAGS and -pg to ALT_CFLAGS in public.mk.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_instruction_related_exceptions_api
Identifier:ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API
Default Value:false
Value:false
Type:BooleanDefineOnly
Destination:system_h_define
Description:Enables API for registering handlers to service instruction-related exceptions. Enabling this setting increases the size of the exception entry code.
Restrictions:These exception types can be generated if various processor options are enabled, such as the MMU, MPU, or other advanced exception types.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_lightweight_device_driver_api
Identifier:ALT_USE_DIRECT_DRIVERS
Default Value:0
Value:1
Type:Boolean
Destination:public_mk_define
Description:Enables lightweight device driver API. This reduces code and data footprint by removing the HAL layer that maps device names (e.g. /dev/uart0) to file descriptors. Instead, driver routines are called directly. The open(), close(), and lseek() routines will always fail if called. The read(), write(), fstat(), ioctl(), and isatty() routines only work for the stdio devices. If true, adds -DALT_USE_DIRECT_DRIVERS to ALT_CPPFLAGS in public.mk.
Restrictions:The Altera Host and read-only ZIP file systems can't be used if hal.enable_lightweight_device_driver_api is true.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_mul_div_emulation
Identifier:ALT_NO_INSTRUCTION_EMULATION
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Adds code to emulate multiply and divide instructions in case they are executed but aren't present in the CPU. Normally this isn't required because the compiler won't use multiply and divide instructions that aren't present in the CPU. If false, adds -DALT_NO_INSTRUCTION_EMULATION to ALT_CPPFLAGS in public.mk.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_reduced_device_drivers
Identifier:ALT_USE_SMALL_DRIVERS
Default Value:0
Value:1
Type:Boolean
Destination:public_mk_define
Description:Certain drivers are compiled with reduced functionality to reduce code footprint. Not all drivers observe this setting. The altera_avalon_uart and altera_avalon_jtag_uart drivers switch from interrupt-driven to polled operation. CAUTION: Several device drivers are disabled entirely. These include the altera_avalon_cfi_flash, altera_avalon_epcs_flash_controller, and altera_avalon_lcd_16207 drivers. This can result in certain API (HAL flash access routines) to fail. You can define a symbol provided by each driver to prevent it from being removed. If true, adds -DALT_USE_SMALL_DRIVERS to ALT_CPPFLAGS in public.mk.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_runtime_stack_checking
Identifier:ALT_STACK_CHECK
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Turns on HAL runtime stack checking feature. Enabling this setting causes additional code to be placed into each subroutine call to generate an exception if a stack collision occurs with the heap or statically allocated data. If true, adds -DALT_STACK_CHECK and -mstack-check to ALT_CPPFLAGS in public.mk.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_sim_optimize
Identifier:ALT_SIM_OPTIMIZE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:The BSP is compiled with optimizations to speedup HDL simulation such as initializing the cache, clearing the .bss section, and skipping long delay loops. If true, adds -DALT_SIM_OPTIMIZE to ALT_CPPFLAGS in public.mk.
Restrictions:When this setting is true, the BSP shouldn't be used to build applications that are expected to run real hardware.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_small_c_library
Identifier:NONE
Default Value:0
Value:1
Type:Boolean
Destination:public_mk_define
Description:Causes the small newlib (C library) to be used. This reduces code and data footprint at the expense of reduced functionality. Several newlib features are removed such as floating-point support in printf(), stdin input routines, and buffered I/O. The small C library is not compatible with Micrium MicroC/OS-II. If true, adds -msmallc to ALT_LDFLAGS in public.mk.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_sopc_sysid_check
Identifier:NONE
Default Value:1
Value:1
Type:Boolean
Destination:public_mk_define
Description:Enable SOPC Builder System ID. If a System ID SOPC Builder component is connected to the CPU associated with this BSP, it will be enabled in the creation of command-line arguments to download an ELF to the target. Otherwise, system ID and timestamp values are left out of public.mk for application Makefile "download-elf" target definition. With the system ID check disabled, the Nios II EDS tools will not automatically ensure that the application .elf file (and BSP it is linked against) corresponds to the hardware design on the target. If false, adds --accept-bad-sysid to SOPC_SYSID_FLAG in public.mk.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.linker.allow_code_at_reset
Identifier:ALT_ALLOW_CODE_AT_RESET
Default Value:0
Value:1
Type:Boolean
Destination:none
Description:Indicates if initialization code is allowed at the reset address. If true, defines the macro ALT_ALLOW_CODE_AT_RESET in linker.h.
Restrictions:If true, defines the macro ALT_ALLOW_CODE_AT_RESET in linker.h. This setting is typically false if an external bootloader (e.g. flash bootloader) is present.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.linker.enable_alt_load
Identifier:NONE
Default Value:0
Value:1
Type:Boolean
Destination:none
Description:Enables the alt_load() facility. The alt_load() facility copies sections from the .text memory into RAM. If true, this setting sets up the VMA/LMA of sections in linker.x to allow them to be loaded into the .text memory.
Restrictions:This setting is typically false if an external bootloader (e.g. flash bootloader) is present.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.linker.enable_alt_load_copy_exceptions
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:none
Description:Causes the alt_load() facility to copy the .exceptions section. If true, this setting defines the macro ALT_LOAD_COPY_EXCEPTIONS in linker.h.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.linker.enable_alt_load_copy_rodata
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:none
Description:Causes the alt_load() facility to copy the .rodata section. If true, this setting defines the macro ALT_LOAD_COPY_RODATA in linker.h.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.linker.enable_alt_load_copy_rwdata
Identifier:NONE
Default Value:0
Value:1
Type:Boolean
Destination:none
Description:Causes the alt_load() facility to copy the .rwdata section. If true, this setting defines the macro ALT_LOAD_COPY_RWDATA in linker.h.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.linker.enable_exception_stack
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:none
Description:Enables use of a separate exception stack. If true, defines the macro ALT_EXCEPTION_STACK in linker.h, adds a memory region called exception_stack to linker.x, and provides the symbols __alt_exception_stack_pointer and __alt_exception_stack_limit in linker.x.
Restrictions:The hal.linker.exception_stack_size and hal.linker.exception_stack_memory_region_name settings must also be valid. This setting must be false for MicroC/OS-II BSPs. The exception stack can be used to improve interrupt and other exception performance if the EIC is *not* used.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.linker.enable_interrupt_stack
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:none
Description:Enables use of a separate interrupt stack. If true, defines the macro ALT_INTERRUPT_STACK in linker.h, adds a memory region called interrupt_stack to linker.x, and provides the symbols __alt_interrupt_stack_pointer and __alt_interrupt_stack_limit in linker.x.
Restrictions:The hal.linker.interrupt_stack_size and hal.linker.interrupt_stack_memory_region_name settings must also be valid. This setting must be false for MicroC/OS-II BSPs. Only enable if the EIC is used exclusively. The exception stack can be used to improve interrupt and other exception performance if the EIC is *not* used.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.linker.exception_stack_memory_region_name
Identifier:NONE
Default Value:none
Value:onchip_memory
Type:UnquotedString
Destination:none
Description:Name of the existing memory region that will be divided up to create the 'exception_stack' memory region. The selected region name will be adjusted automatically when the BSP is generated to create the 'exception_stack' memory region.
Restrictions:Only used if hal.linker.enable_exception_stack is true.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.linker.exception_stack_size
Identifier:NONE
Default Value:1024
Value:1024
Type:DecimalNumber
Destination:none
Description:Size of the exception stack in bytes.
Restrictions:Only used if hal.linker.enable_exception_stack is true.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.linker.interrupt_stack_memory_region_name
Identifier:NONE
Default Value:none
Value:onchip_memory
Type:UnquotedString
Destination:none
Description:Name of the existing memory region that will be divided up to create the 'interrupt_stack' memory region. The selected region name will be adjusted automatically when the BSP is generated to create the 'interrupt_stack' memory region.
Restrictions:Only used if hal.linker.enable_interrupt_stack is true.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.linker.interrupt_stack_size
Identifier:NONE
Default Value:1024
Value:1024
Type:DecimalNumber
Destination:none
Description:Size of the interrupt stack in bytes.
Restrictions:Only used if hal.linker.enable_interrupt_stack is true.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.log_flags
Identifier:ALT_LOG_FLAGS
Default Value:0
Value:0
Type:DecimalNumber
Destination:public_mk_define
Description:The value is assigned to ALT_LOG_FLAGS in the generated public.mk. See hal.log_port setting description. Values can be -1 through 3.
Restrictions:hal.log_port must be set for this to be used.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.log_port
Identifier:NONE
Default Value:none
Value:none
Type:UnquotedString
Destination:public_mk_define
Description:Slave descriptor of debug logging character-mode device. If defined, it enables extra debug messages in the HAL source. This setting is used by the ALT_LOG_PORT family of defines in system.h.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ar
Identifier:AR
Default Value:nios2-elf-ar
Value:nios2-elf-ar
Type:UnquotedString
Destination:makefile_variable
Description:Archiver command. Creates library files.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ar_post_process
Identifier:AR_POST_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed after archiver execution.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ar_pre_process
Identifier:AR_PRE_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed before archiver execution.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.as
Identifier:AS
Default Value:nios2-elf-gcc
Value:nios2-elf-gcc
Type:UnquotedString
Destination:makefile_variable
Description:Assembler command. Note that CC is used for .S files.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.as_post_process
Identifier:AS_POST_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed after each assembly file is compiled.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.as_pre_process
Identifier:AS_PRE_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed before each assembly file is compiled.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.bsp_arflags
Identifier:BSP_ARFLAGS
Default Value:-src
Value:-src
Type:UnquotedString
Destination:makefile_variable
Description:Custom flags only passed to the archiver. This content of this variable is directly passed to the archiver rather than the more standard "ARFLAGS". The reason for this is that GNU Make assumes some default content in ARFLAGS. This setting defines the value of BSP_ARFLAGS in Makefile.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.bsp_asflags
Identifier:BSP_ASFLAGS
Default Value:-Wa,-gdwarf2
Value:-Wa,-gdwarf2
Type:UnquotedString
Destination:makefile_variable
Description:Custom flags only passed to the assembler. This setting defines the value of BSP_ASFLAGS in Makefile.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.bsp_cflags_debug
Identifier:BSP_CFLAGS_DEBUG
Default Value:-g
Value:-g
Type:UnquotedString
Destination:makefile_variable
Description:C/C++ compiler debug level. '-g' provides the default set of debug symbols typically required to debug a typical application. Omitting '-g' removes debug symbols from the ELF. This setting defines the value of BSP_CFLAGS_DEBUG in Makefile.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.bsp_cflags_defined_symbols
Identifier:BSP_CFLAGS_DEFINED_SYMBOLS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Preprocessor macros to define. A macro definition in this setting has the same effect as a "#define" in source code. Adding "-DALT_DEBUG" to this setting has the same effect as "#define ALT_DEBUG" in a souce file. Adding "-DFOO=1" to this setting is equivalent to the macro "#define FOO 1" in a source file. Macros defined with this setting are applied to all .S, .c, and C++ files in the BSP. This setting defines the value of BSP_CFLAGS_DEFINED_SYMBOLS in the BSP Makefile.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.bsp_cflags_optimization
Identifier:BSP_CFLAGS_OPTIMIZATION
Default Value:-O0
Value:'-Os'
Type:UnquotedString
Destination:makefile_variable
Description:C/C++ compiler optimization level. "-O0" = no optimization,"-O2" = "normal" optimization, etc. "-O0" is recommended for code that you want to debug since compiler optimization can remove variables and produce non-sequential execution of code while debugging. This setting defines the value of BSP_CFLAGS_OPTIMIZATION in Makefile.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.bsp_cflags_undefined_symbols
Identifier:BSP_CFLAGS_UNDEFINED_SYMBOLS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Preprocessor macros to undefine. Undefined macros are similar to defined macros, but replicate the "#undef" directive in source code. To undefine the macro FOO use the syntax "-u FOO" in this setting. This is equivalent to "#undef FOO" in a source file. Note: the syntax differs from macro definition (there is a space, i.e. "-u FOO" versus "-DFOO"). Macros defined with this setting are applied to all .S, .c, and C++ files in the BSP. This setting defines the value of BSP_CFLAGS_UNDEFINED_SYMBOLS in the BSP Makefile.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.bsp_cflags_user_flags
Identifier:BSP_CFLAGS_USER_FLAGS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Custom flags passed to the compiler when compiling C, C++, and .S files. This setting defines the value of BSP_CFLAGS_USER_FLAGS in Makefile.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.bsp_cflags_warnings
Identifier:BSP_CFLAGS_WARNINGS
Default Value:-Wall
Value:-Wall
Type:UnquotedString
Destination:makefile_variable
Description:C/C++ compiler warning level. "-Wall" is commonly used.This setting defines the value of BSP_CFLAGS_WARNINGS in Makefile.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.bsp_cxx_flags
Identifier:BSP_CXXFLAGS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Custom flags only passed to the C++ compiler. This setting defines the value of BSP_CXXFLAGS in Makefile.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.bsp_inc_dirs
Identifier:BSP_INC_DIRS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Space separated list of extra include directories to scan for header files. Directories are relative to the top-level BSP directory. The -I prefix's added by the makefile so don't add it here. This setting defines the value of BSP_INC_DIRS in Makefile.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.build_post_process
Identifier:BUILD_POST_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed after BSP built.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.build_pre_process
Identifier:BUILD_PRE_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed before BSP built.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.cc
Identifier:CC
Default Value:nios2-elf-gcc -xc
Value:nios2-elf-gcc -xc
Type:UnquotedString
Destination:makefile_variable
Description:C compiler command.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.cc_post_process
Identifier:CC_POST_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed after each .c/.S file is compiled.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.cc_pre_process
Identifier:CC_PRE_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed before each .c/.S file is compiled.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.cxx
Identifier:CXX
Default Value:nios2-elf-gcc -xc++
Value:nios2-elf-gcc -xc++
Type:UnquotedString
Destination:makefile_variable
Description:C++ compiler command.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.cxx_post_process
Identifier:CXX_POST_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed before each C++ file is compiled.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.cxx_pre_process
Identifier:CXX_PRE_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed before each C++ file is compiled.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.big_endian
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query if SOPC system is big endian. If true ignores export of 'ALT_CFLAGS += -EB' to public.mk if big endian system. If true ignores export of 'ALT_CFLAGS += -EL' if little endian system.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.debug_core_present
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query if SOPC system has a debug core present. If true ignores export of 'CPU_HAS_DEBUG_CORE = 1' to public.mk if a debug core is found in the system. If true ignores export of 'CPU_HAS_DEBUG_CORE = 0' if no debug core is found in the system.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.fpu_present
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query if SOPC system has FPU present. If true ignores export of 'ALT_CFLAGS += -mhard-float' to public.mk if FPU is found in the system. If true ignores export of 'ALT_CFLAGS += -mhard-soft' if FPU is not found in the system.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.hardware_divide_present
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query if SOPC system has hardware divide present. If true ignores export of 'ALT_CFLAGS += -mno-hw-div' to public.mk if no division is found in system. If true ignores export of 'ALT_CFLAGS += -mhw-div' if division is found in the system.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.hardware_fp_cust_inst_divider_present
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query if SOPC system floating point custom instruction with a divider is present. If true ignores export of 'ALT_CFLAGS += -mcustom-fpu-cfg=60-2' and 'ALT_LDFLAGS += -mcustom-fpu-cfg=60-2' to public.mk if the custom instruction is found in the system.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.hardware_fp_cust_inst_no_divider_present
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query if SOPC system floating point custom instruction without a divider is present. If true ignores export of 'ALT_CFLAGS += -mcustom-fpu-cfg=60-1' and 'ALT_LDFLAGS += -mcustom-fpu-cfg=60-1' to public.mk if the custom instruction is found in the system.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.hardware_multiplier_present
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query if SOPC system has multiplier present. If true ignores export of 'ALT_CFLAGS += -mno-hw-mul' to public.mk if no multiplier is found in the system. If true ignores export of 'ALT_CFLAGS += -mhw-mul' if multiplier is found in the system.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.hardware_mulx_present
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query if SOPC system has hardware mulx present. If true ignores export of 'ALT_CFLAGS += -mno-hw-mulx' to public.mk if no mulx is found in the system. If true ignores export of 'ALT_CFLAGS += -mhw-mulx' if mulx is found in the system.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.sopc_simulation_enabled
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query if SOPC system has simulation enabled. If true ignores export of 'ELF_PATCH_FLAG += --simulation_enabled' to public.mk.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.sopc_system_base_address
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query SOPC system for system ID base address. If true ignores export of 'SOPC_SYSID_FLAG += --sidp=<address>' and 'ELF_PATCH_FLAG += --sidp=<address>' to public.mk.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.sopc_system_id
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query SOPC system for system ID. If true ignores export of 'SOPC_SYSID_FLAG += --id=<sysid>' and 'ELF_PATCH_FLAG += --id=<sysid>' to public.mk.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.sopc_system_timestamp
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query SOPC system for system timestamp. If true ignores export of 'SOPC_SYSID_FLAG += --timestamp=<timestamp>' and 'ELF_PATCH_FLAG += --timestamp=<timestamp>' to public.mk.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.rm
Identifier:RM
Default Value:rm -f
Value:rm -f
Type:UnquotedString
Destination:makefile_variable
Description:Command used to remove files during 'clean' target.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.max_file_descriptors
Identifier:ALT_MAX_FD
Default Value:32
Value:4
Type:DecimalNumber
Destination:system_h_define
Description:Determines the number of file descriptors statically allocated. This setting defines the value of ALT_MAX_FD in system.h.
Restrictions:If hal.enable_lightweight_device_driver_api is true, there are no file descriptors so this setting is ignored. If hal.enable_lightweight_device_driver_api is false, this setting must be at least 4 because HAL needs a file descriptor for /dev/null, /dev/stdin, /dev/stdout, and /dev/stderr.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.stderr
Identifier:NONE
Default Value:none
Value:jtag_uart
Type:UnquotedString
Destination:system_h_define
Description:Slave descriptor of STDERR character-mode device. This setting is used by the ALT_STDERR family of defines in system.h.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.stdin
Identifier:NONE
Default Value:none
Value:jtag_uart
Type:UnquotedString
Destination:system_h_define
Description:Slave descriptor of STDIN character-mode device. This setting is used by the ALT_STDIN family of defines in system.h.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.stdout
Identifier:NONE
Default Value:none
Value:jtag_uart
Type:UnquotedString
Destination:system_h_define
Description:Slave descriptor of STDOUT character-mode device. This setting is used by the ALT_STDOUT family of defines in system.h.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.sys_clk_timer
Identifier:ALT_SYS_CLK
Default Value:none
Value:none
Type:UnquotedString
Destination:system_h_define
Description:Slave descriptor of the system clock timer device. This device provides a periodic interrupt ("tick") and is typically required for RTOS use. This setting defines the value of ALT_SYS_CLK in system.h.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.timestamp_timer
Identifier:ALT_TIMESTAMP_CLK
Default Value:none
Value:none
Type:UnquotedString
Destination:system_h_define
Description:Slave descriptor of timestamp timer device. This device is used by Altera HAL timestamp drivers for high-resolution time measurement. This setting defines the value of ALT_TIMESTAMP_CLK in system.h.
Restrictions:none
+
+
+
+ + diff --git a/software/qsys_tutorial_lcd_bsp/system.h b/software/qsys_tutorial_lcd_bsp/system.h new file mode 100644 index 0000000..1385cd2 --- /dev/null +++ b/software/qsys_tutorial_lcd_bsp/system.h @@ -0,0 +1,656 @@ +/* + * system.h - SOPC Builder system and BSP software package information + * + * Machine generated for CPU 'nios2_processor' in SOPC Builder design 'nios_system' + * SOPC Builder design path: C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.sopcinfo + * + * Generated: Thu Dec 01 23:23:48 JST 2016 + */ + +/* + * DO NOT MODIFY THIS FILE + * + * Changing this file will have subtle consequences + * which will almost certainly lead to a nonfunctioning + * system. If you do modify this file, be aware that your + * changes will be overwritten and lost when this file + * is generated again. + * + * DO NOT MODIFY THIS FILE + */ + +/* + * License Agreement + * + * Copyright (c) 2008 + * Altera Corporation, San Jose, California, USA. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + * This agreement shall be governed in all respects by the laws of the State + * of California and by the laws of the United States of America. + */ + +#ifndef __SYSTEM_H_ +#define __SYSTEM_H_ + +/* Include definitions from linker script generator */ +#include "linker.h" + + +/* + * CPU configuration + * + */ + +#define ALT_CPU_ARCHITECTURE "altera_nios2_qsys" +#define ALT_CPU_BIG_ENDIAN 0 +#define ALT_CPU_BREAK_ADDR 0x4820 +#define ALT_CPU_CPU_FREQ 50000000u +#define ALT_CPU_CPU_ID_SIZE 1 +#define ALT_CPU_CPU_ID_VALUE 0x00000000 +#define ALT_CPU_CPU_IMPLEMENTATION "tiny" +#define ALT_CPU_DATA_ADDR_WIDTH 0xf +#define ALT_CPU_DCACHE_LINE_SIZE 0 +#define ALT_CPU_DCACHE_LINE_SIZE_LOG2 0 +#define ALT_CPU_DCACHE_SIZE 0 +#define ALT_CPU_EXCEPTION_ADDR 0x20 +#define ALT_CPU_FLUSHDA_SUPPORTED +#define ALT_CPU_FREQ 50000000 +#define ALT_CPU_HARDWARE_DIVIDE_PRESENT 0 +#define ALT_CPU_HARDWARE_MULTIPLY_PRESENT 0 +#define ALT_CPU_HARDWARE_MULX_PRESENT 0 +#define ALT_CPU_HAS_DEBUG_CORE 1 +#define ALT_CPU_HAS_DEBUG_STUB +#define ALT_CPU_HAS_JMPI_INSTRUCTION +#define ALT_CPU_ICACHE_LINE_SIZE 0 +#define ALT_CPU_ICACHE_LINE_SIZE_LOG2 0 +#define ALT_CPU_ICACHE_SIZE 0 +#define ALT_CPU_INST_ADDR_WIDTH 0xf +#define ALT_CPU_NAME "nios2_processor" +#define ALT_CPU_RESET_ADDR 0x0 + + +/* + * CPU configuration (with legacy prefix - don't use these anymore) + * + */ + +#define NIOS2_BIG_ENDIAN 0 +#define NIOS2_BREAK_ADDR 0x4820 +#define NIOS2_CPU_FREQ 50000000u +#define NIOS2_CPU_ID_SIZE 1 +#define NIOS2_CPU_ID_VALUE 0x00000000 +#define NIOS2_CPU_IMPLEMENTATION "tiny" +#define NIOS2_DATA_ADDR_WIDTH 0xf +#define NIOS2_DCACHE_LINE_SIZE 0 +#define NIOS2_DCACHE_LINE_SIZE_LOG2 0 +#define NIOS2_DCACHE_SIZE 0 +#define NIOS2_EXCEPTION_ADDR 0x20 +#define NIOS2_FLUSHDA_SUPPORTED +#define NIOS2_HARDWARE_DIVIDE_PRESENT 0 +#define NIOS2_HARDWARE_MULTIPLY_PRESENT 0 +#define NIOS2_HARDWARE_MULX_PRESENT 0 +#define NIOS2_HAS_DEBUG_CORE 1 +#define NIOS2_HAS_DEBUG_STUB +#define NIOS2_HAS_JMPI_INSTRUCTION +#define NIOS2_ICACHE_LINE_SIZE 0 +#define NIOS2_ICACHE_LINE_SIZE_LOG2 0 +#define NIOS2_ICACHE_SIZE 0 +#define NIOS2_INST_ADDR_WIDTH 0xf +#define NIOS2_RESET_ADDR 0x0 + + +/* + * Define for each module class mastered by the CPU + * + */ + +#define __ALTERA_AVALON_JTAG_UART +#define __ALTERA_AVALON_ONCHIP_MEMORY2 +#define __ALTERA_AVALON_PIO +#define __ALTERA_NIOS2_QSYS + + +/* + * LEDRs configuration + * + */ + +#define ALT_MODULE_CLASS_LEDRs altera_avalon_pio +#define LEDRS_BASE 0x50a0 +#define LEDRS_BIT_CLEARING_EDGE_REGISTER 0 +#define LEDRS_BIT_MODIFYING_OUTPUT_REGISTER 0 +#define LEDRS_CAPTURE 0 +#define LEDRS_DATA_WIDTH 18 +#define LEDRS_DO_TEST_BENCH_WIRING 0 +#define LEDRS_DRIVEN_SIM_VALUE 0 +#define LEDRS_EDGE_TYPE "NONE" +#define LEDRS_FREQ 50000000 +#define LEDRS_HAS_IN 0 +#define LEDRS_HAS_OUT 1 +#define LEDRS_HAS_TRI 0 +#define LEDRS_IRQ -1 +#define LEDRS_IRQ_INTERRUPT_CONTROLLER_ID -1 +#define LEDRS_IRQ_TYPE "NONE" +#define LEDRS_NAME "/dev/LEDRs" +#define LEDRS_RESET_VALUE 0 +#define LEDRS_SPAN 16 +#define LEDRS_TYPE "altera_avalon_pio" + + +/* + * LEDs configuration + * + */ + +#define ALT_MODULE_CLASS_LEDs altera_avalon_pio +#define LEDS_BASE 0x50b0 +#define LEDS_BIT_CLEARING_EDGE_REGISTER 0 +#define LEDS_BIT_MODIFYING_OUTPUT_REGISTER 0 +#define LEDS_CAPTURE 0 +#define LEDS_DATA_WIDTH 8 +#define LEDS_DO_TEST_BENCH_WIRING 0 +#define LEDS_DRIVEN_SIM_VALUE 0 +#define LEDS_EDGE_TYPE "NONE" +#define LEDS_FREQ 50000000 +#define LEDS_HAS_IN 0 +#define LEDS_HAS_OUT 1 +#define LEDS_HAS_TRI 0 +#define LEDS_IRQ -1 +#define LEDS_IRQ_INTERRUPT_CONTROLLER_ID -1 +#define LEDS_IRQ_TYPE "NONE" +#define LEDS_NAME "/dev/LEDs" +#define LEDS_RESET_VALUE 0 +#define LEDS_SPAN 16 +#define LEDS_TYPE "altera_avalon_pio" + + +/* + * System configuration + * + */ + +#define ALT_DEVICE_FAMILY "Cyclone IV E" +#define ALT_ENHANCED_INTERRUPT_API_PRESENT +#define ALT_IRQ_BASE NULL +#define ALT_LOG_PORT "/dev/null" +#define ALT_LOG_PORT_BASE 0x0 +#define ALT_LOG_PORT_DEV null +#define ALT_LOG_PORT_TYPE "" +#define ALT_NUM_EXTERNAL_INTERRUPT_CONTROLLERS 0 +#define ALT_NUM_INTERNAL_INTERRUPT_CONTROLLERS 1 +#define ALT_NUM_INTERRUPT_CONTROLLERS 1 +#define ALT_STDERR "/dev/jtag_uart" +#define ALT_STDERR_BASE 0x50c0 +#define ALT_STDERR_DEV jtag_uart +#define ALT_STDERR_IS_JTAG_UART +#define ALT_STDERR_PRESENT +#define ALT_STDERR_TYPE "altera_avalon_jtag_uart" +#define ALT_STDIN "/dev/jtag_uart" +#define ALT_STDIN_BASE 0x50c0 +#define ALT_STDIN_DEV jtag_uart +#define ALT_STDIN_IS_JTAG_UART +#define ALT_STDIN_PRESENT +#define ALT_STDIN_TYPE "altera_avalon_jtag_uart" +#define ALT_STDOUT "/dev/jtag_uart" +#define ALT_STDOUT_BASE 0x50c0 +#define ALT_STDOUT_DEV jtag_uart +#define ALT_STDOUT_IS_JTAG_UART +#define ALT_STDOUT_PRESENT +#define ALT_STDOUT_TYPE "altera_avalon_jtag_uart" +#define ALT_SYSTEM_NAME "nios_system" + + +/* + * hal configuration + * + */ + +#define ALT_MAX_FD 4 +#define ALT_SYS_CLK none +#define ALT_TIMESTAMP_CLK none + + +/* + * hex0 configuration + * + */ + +#define ALT_MODULE_CLASS_hex0 altera_avalon_pio +#define HEX0_BASE 0x5070 +#define HEX0_BIT_CLEARING_EDGE_REGISTER 0 +#define HEX0_BIT_MODIFYING_OUTPUT_REGISTER 0 +#define HEX0_CAPTURE 0 +#define HEX0_DATA_WIDTH 7 +#define HEX0_DO_TEST_BENCH_WIRING 0 +#define HEX0_DRIVEN_SIM_VALUE 0 +#define HEX0_EDGE_TYPE "NONE" +#define HEX0_FREQ 50000000 +#define HEX0_HAS_IN 0 +#define HEX0_HAS_OUT 1 +#define HEX0_HAS_TRI 0 +#define HEX0_IRQ -1 +#define HEX0_IRQ_INTERRUPT_CONTROLLER_ID -1 +#define HEX0_IRQ_TYPE "NONE" +#define HEX0_NAME "/dev/hex0" +#define HEX0_RESET_VALUE 0 +#define HEX0_SPAN 16 +#define HEX0_TYPE "altera_avalon_pio" + + +/* + * hex1 configuration + * + */ + +#define ALT_MODULE_CLASS_hex1 altera_avalon_pio +#define HEX1_BASE 0x5060 +#define HEX1_BIT_CLEARING_EDGE_REGISTER 0 +#define HEX1_BIT_MODIFYING_OUTPUT_REGISTER 0 +#define HEX1_CAPTURE 0 +#define HEX1_DATA_WIDTH 7 +#define HEX1_DO_TEST_BENCH_WIRING 0 +#define HEX1_DRIVEN_SIM_VALUE 0 +#define HEX1_EDGE_TYPE "NONE" +#define HEX1_FREQ 50000000 +#define HEX1_HAS_IN 0 +#define HEX1_HAS_OUT 1 +#define HEX1_HAS_TRI 0 +#define HEX1_IRQ -1 +#define HEX1_IRQ_INTERRUPT_CONTROLLER_ID -1 +#define HEX1_IRQ_TYPE "NONE" +#define HEX1_NAME "/dev/hex1" +#define HEX1_RESET_VALUE 0 +#define HEX1_SPAN 16 +#define HEX1_TYPE "altera_avalon_pio" + + +/* + * hex2 configuration + * + */ + +#define ALT_MODULE_CLASS_hex2 altera_avalon_pio +#define HEX2_BASE 0x5050 +#define HEX2_BIT_CLEARING_EDGE_REGISTER 0 +#define HEX2_BIT_MODIFYING_OUTPUT_REGISTER 0 +#define HEX2_CAPTURE 0 +#define HEX2_DATA_WIDTH 7 +#define HEX2_DO_TEST_BENCH_WIRING 0 +#define HEX2_DRIVEN_SIM_VALUE 0 +#define HEX2_EDGE_TYPE "NONE" +#define HEX2_FREQ 50000000 +#define HEX2_HAS_IN 0 +#define HEX2_HAS_OUT 1 +#define HEX2_HAS_TRI 0 +#define HEX2_IRQ -1 +#define HEX2_IRQ_INTERRUPT_CONTROLLER_ID -1 +#define HEX2_IRQ_TYPE "NONE" +#define HEX2_NAME "/dev/hex2" +#define HEX2_RESET_VALUE 0 +#define HEX2_SPAN 16 +#define HEX2_TYPE "altera_avalon_pio" + + +/* + * hex3 configuration + * + */ + +#define ALT_MODULE_CLASS_hex3 altera_avalon_pio +#define HEX3_BASE 0x5040 +#define HEX3_BIT_CLEARING_EDGE_REGISTER 0 +#define HEX3_BIT_MODIFYING_OUTPUT_REGISTER 0 +#define HEX3_CAPTURE 0 +#define HEX3_DATA_WIDTH 7 +#define HEX3_DO_TEST_BENCH_WIRING 0 +#define HEX3_DRIVEN_SIM_VALUE 0 +#define HEX3_EDGE_TYPE "NONE" +#define HEX3_FREQ 50000000 +#define HEX3_HAS_IN 0 +#define HEX3_HAS_OUT 1 +#define HEX3_HAS_TRI 0 +#define HEX3_IRQ -1 +#define HEX3_IRQ_INTERRUPT_CONTROLLER_ID -1 +#define HEX3_IRQ_TYPE "NONE" +#define HEX3_NAME "/dev/hex3" +#define HEX3_RESET_VALUE 0 +#define HEX3_SPAN 16 +#define HEX3_TYPE "altera_avalon_pio" + + +/* + * hex4 configuration + * + */ + +#define ALT_MODULE_CLASS_hex4 altera_avalon_pio +#define HEX4_BASE 0x5030 +#define HEX4_BIT_CLEARING_EDGE_REGISTER 0 +#define HEX4_BIT_MODIFYING_OUTPUT_REGISTER 0 +#define HEX4_CAPTURE 0 +#define HEX4_DATA_WIDTH 7 +#define HEX4_DO_TEST_BENCH_WIRING 0 +#define HEX4_DRIVEN_SIM_VALUE 0 +#define HEX4_EDGE_TYPE "NONE" +#define HEX4_FREQ 50000000 +#define HEX4_HAS_IN 0 +#define HEX4_HAS_OUT 1 +#define HEX4_HAS_TRI 0 +#define HEX4_IRQ -1 +#define HEX4_IRQ_INTERRUPT_CONTROLLER_ID -1 +#define HEX4_IRQ_TYPE "NONE" +#define HEX4_NAME "/dev/hex4" +#define HEX4_RESET_VALUE 0 +#define HEX4_SPAN 16 +#define HEX4_TYPE "altera_avalon_pio" + + +/* + * hex5 configuration + * + */ + +#define ALT_MODULE_CLASS_hex5 altera_avalon_pio +#define HEX5_BASE 0x5020 +#define HEX5_BIT_CLEARING_EDGE_REGISTER 0 +#define HEX5_BIT_MODIFYING_OUTPUT_REGISTER 0 +#define HEX5_CAPTURE 0 +#define HEX5_DATA_WIDTH 7 +#define HEX5_DO_TEST_BENCH_WIRING 0 +#define HEX5_DRIVEN_SIM_VALUE 0 +#define HEX5_EDGE_TYPE "NONE" +#define HEX5_FREQ 50000000 +#define HEX5_HAS_IN 0 +#define HEX5_HAS_OUT 1 +#define HEX5_HAS_TRI 0 +#define HEX5_IRQ -1 +#define HEX5_IRQ_INTERRUPT_CONTROLLER_ID -1 +#define HEX5_IRQ_TYPE "NONE" +#define HEX5_NAME "/dev/hex5" +#define HEX5_RESET_VALUE 0 +#define HEX5_SPAN 16 +#define HEX5_TYPE "altera_avalon_pio" + + +/* + * hex6 configuration + * + */ + +#define ALT_MODULE_CLASS_hex6 altera_avalon_pio +#define HEX6_BASE 0x5010 +#define HEX6_BIT_CLEARING_EDGE_REGISTER 0 +#define HEX6_BIT_MODIFYING_OUTPUT_REGISTER 0 +#define HEX6_CAPTURE 0 +#define HEX6_DATA_WIDTH 7 +#define HEX6_DO_TEST_BENCH_WIRING 0 +#define HEX6_DRIVEN_SIM_VALUE 0 +#define HEX6_EDGE_TYPE "NONE" +#define HEX6_FREQ 50000000 +#define HEX6_HAS_IN 0 +#define HEX6_HAS_OUT 1 +#define HEX6_HAS_TRI 0 +#define HEX6_IRQ -1 +#define HEX6_IRQ_INTERRUPT_CONTROLLER_ID -1 +#define HEX6_IRQ_TYPE "NONE" +#define HEX6_NAME "/dev/hex6" +#define HEX6_RESET_VALUE 0 +#define HEX6_SPAN 16 +#define HEX6_TYPE "altera_avalon_pio" + + +/* + * jtag_uart configuration + * + */ + +#define ALT_MODULE_CLASS_jtag_uart altera_avalon_jtag_uart +#define JTAG_UART_BASE 0x50c0 +#define JTAG_UART_IRQ 5 +#define JTAG_UART_IRQ_INTERRUPT_CONTROLLER_ID 0 +#define JTAG_UART_NAME "/dev/jtag_uart" +#define JTAG_UART_READ_DEPTH 64 +#define JTAG_UART_READ_THRESHOLD 8 +#define JTAG_UART_SPAN 8 +#define JTAG_UART_TYPE "altera_avalon_jtag_uart" +#define JTAG_UART_WRITE_DEPTH 64 +#define JTAG_UART_WRITE_THRESHOLD 8 + + +/* + * lcd_E configuration + * + */ + +#define ALT_MODULE_CLASS_lcd_E altera_avalon_pio +#define LCD_E_BASE 0x4020 +#define LCD_E_BIT_CLEARING_EDGE_REGISTER 0 +#define LCD_E_BIT_MODIFYING_OUTPUT_REGISTER 0 +#define LCD_E_CAPTURE 0 +#define LCD_E_DATA_WIDTH 1 +#define LCD_E_DO_TEST_BENCH_WIRING 0 +#define LCD_E_DRIVEN_SIM_VALUE 0 +#define LCD_E_EDGE_TYPE "NONE" +#define LCD_E_FREQ 50000000 +#define LCD_E_HAS_IN 0 +#define LCD_E_HAS_OUT 1 +#define LCD_E_HAS_TRI 0 +#define LCD_E_IRQ -1 +#define LCD_E_IRQ_INTERRUPT_CONTROLLER_ID -1 +#define LCD_E_IRQ_TYPE "NONE" +#define LCD_E_NAME "/dev/lcd_E" +#define LCD_E_RESET_VALUE 0 +#define LCD_E_SPAN 16 +#define LCD_E_TYPE "altera_avalon_pio" + + +/* + * lcd_RS configuration + * + */ + +#define ALT_MODULE_CLASS_lcd_RS altera_avalon_pio +#define LCD_RS_BASE 0x4010 +#define LCD_RS_BIT_CLEARING_EDGE_REGISTER 0 +#define LCD_RS_BIT_MODIFYING_OUTPUT_REGISTER 0 +#define LCD_RS_CAPTURE 0 +#define LCD_RS_DATA_WIDTH 1 +#define LCD_RS_DO_TEST_BENCH_WIRING 0 +#define LCD_RS_DRIVEN_SIM_VALUE 0 +#define LCD_RS_EDGE_TYPE "NONE" +#define LCD_RS_FREQ 50000000 +#define LCD_RS_HAS_IN 0 +#define LCD_RS_HAS_OUT 1 +#define LCD_RS_HAS_TRI 0 +#define LCD_RS_IRQ -1 +#define LCD_RS_IRQ_INTERRUPT_CONTROLLER_ID -1 +#define LCD_RS_IRQ_TYPE "NONE" +#define LCD_RS_NAME "/dev/lcd_RS" +#define LCD_RS_RESET_VALUE 0 +#define LCD_RS_SPAN 16 +#define LCD_RS_TYPE "altera_avalon_pio" + + +/* + * lcd_RW configuration + * + */ + +#define ALT_MODULE_CLASS_lcd_RW altera_avalon_pio +#define LCD_RW_BASE 0x4000 +#define LCD_RW_BIT_CLEARING_EDGE_REGISTER 0 +#define LCD_RW_BIT_MODIFYING_OUTPUT_REGISTER 0 +#define LCD_RW_CAPTURE 0 +#define LCD_RW_DATA_WIDTH 1 +#define LCD_RW_DO_TEST_BENCH_WIRING 0 +#define LCD_RW_DRIVEN_SIM_VALUE 0 +#define LCD_RW_EDGE_TYPE "NONE" +#define LCD_RW_FREQ 50000000 +#define LCD_RW_HAS_IN 0 +#define LCD_RW_HAS_OUT 1 +#define LCD_RW_HAS_TRI 0 +#define LCD_RW_IRQ -1 +#define LCD_RW_IRQ_INTERRUPT_CONTROLLER_ID -1 +#define LCD_RW_IRQ_TYPE "NONE" +#define LCD_RW_NAME "/dev/lcd_RW" +#define LCD_RW_RESET_VALUE 0 +#define LCD_RW_SPAN 16 +#define LCD_RW_TYPE "altera_avalon_pio" + + +/* + * lcd_data configuration + * + */ + +#define ALT_MODULE_CLASS_lcd_data altera_avalon_pio +#define LCD_DATA_BASE 0x4030 +#define LCD_DATA_BIT_CLEARING_EDGE_REGISTER 0 +#define LCD_DATA_BIT_MODIFYING_OUTPUT_REGISTER 0 +#define LCD_DATA_CAPTURE 0 +#define LCD_DATA_DATA_WIDTH 8 +#define LCD_DATA_DO_TEST_BENCH_WIRING 0 +#define LCD_DATA_DRIVEN_SIM_VALUE 0 +#define LCD_DATA_EDGE_TYPE "NONE" +#define LCD_DATA_FREQ 50000000 +#define LCD_DATA_HAS_IN 0 +#define LCD_DATA_HAS_OUT 1 +#define LCD_DATA_HAS_TRI 0 +#define LCD_DATA_IRQ -1 +#define LCD_DATA_IRQ_INTERRUPT_CONTROLLER_ID -1 +#define LCD_DATA_IRQ_TYPE "NONE" +#define LCD_DATA_NAME "/dev/lcd_data" +#define LCD_DATA_RESET_VALUE 0 +#define LCD_DATA_SPAN 16 +#define LCD_DATA_TYPE "altera_avalon_pio" + + +/* + * onchip_memory configuration + * + */ + +#define ALT_MODULE_CLASS_onchip_memory altera_avalon_onchip_memory2 +#define ONCHIP_MEMORY_ALLOW_IN_SYSTEM_MEMORY_CONTENT_EDITOR 0 +#define ONCHIP_MEMORY_ALLOW_MRAM_SIM_CONTENTS_ONLY_FILE 0 +#define ONCHIP_MEMORY_BASE 0x0 +#define ONCHIP_MEMORY_CONTENTS_INFO "" +#define ONCHIP_MEMORY_DUAL_PORT 0 +#define ONCHIP_MEMORY_GUI_RAM_BLOCK_TYPE "AUTO" +#define ONCHIP_MEMORY_INIT_CONTENTS_FILE "nios_system_onchip_memory" +#define ONCHIP_MEMORY_INIT_MEM_CONTENT 1 +#define ONCHIP_MEMORY_INSTANCE_ID "NONE" +#define ONCHIP_MEMORY_IRQ -1 +#define ONCHIP_MEMORY_IRQ_INTERRUPT_CONTROLLER_ID -1 +#define ONCHIP_MEMORY_NAME "/dev/onchip_memory" +#define ONCHIP_MEMORY_NON_DEFAULT_INIT_FILE_ENABLED 0 +#define ONCHIP_MEMORY_RAM_BLOCK_TYPE "AUTO" +#define ONCHIP_MEMORY_READ_DURING_WRITE_MODE "DONT_CARE" +#define ONCHIP_MEMORY_SINGLE_CLOCK_OP 0 +#define ONCHIP_MEMORY_SIZE_MULTIPLE 1 +#define ONCHIP_MEMORY_SIZE_VALUE 16384 +#define ONCHIP_MEMORY_SPAN 16384 +#define ONCHIP_MEMORY_TYPE "altera_avalon_onchip_memory2" +#define ONCHIP_MEMORY_WRITABLE 1 + + +/* + * pio_0 configuration + * + */ + +#define ALT_MODULE_CLASS_pio_0 altera_avalon_pio +#define PIO_0_BASE 0x5000 +#define PIO_0_BIT_CLEARING_EDGE_REGISTER 0 +#define PIO_0_BIT_MODIFYING_OUTPUT_REGISTER 0 +#define PIO_0_CAPTURE 0 +#define PIO_0_DATA_WIDTH 7 +#define PIO_0_DO_TEST_BENCH_WIRING 0 +#define PIO_0_DRIVEN_SIM_VALUE 0 +#define PIO_0_EDGE_TYPE "NONE" +#define PIO_0_FREQ 50000000 +#define PIO_0_HAS_IN 0 +#define PIO_0_HAS_OUT 1 +#define PIO_0_HAS_TRI 0 +#define PIO_0_IRQ -1 +#define PIO_0_IRQ_INTERRUPT_CONTROLLER_ID -1 +#define PIO_0_IRQ_TYPE "NONE" +#define PIO_0_NAME "/dev/pio_0" +#define PIO_0_RESET_VALUE 0 +#define PIO_0_SPAN 16 +#define PIO_0_TYPE "altera_avalon_pio" + + +/* + * push_switches configuration + * + */ + +#define ALT_MODULE_CLASS_push_switches altera_avalon_pio +#define PUSH_SWITCHES_BASE 0x5080 +#define PUSH_SWITCHES_BIT_CLEARING_EDGE_REGISTER 0 +#define PUSH_SWITCHES_BIT_MODIFYING_OUTPUT_REGISTER 0 +#define PUSH_SWITCHES_CAPTURE 0 +#define PUSH_SWITCHES_DATA_WIDTH 3 +#define PUSH_SWITCHES_DO_TEST_BENCH_WIRING 0 +#define PUSH_SWITCHES_DRIVEN_SIM_VALUE 0 +#define PUSH_SWITCHES_EDGE_TYPE "NONE" +#define PUSH_SWITCHES_FREQ 50000000 +#define PUSH_SWITCHES_HAS_IN 1 +#define PUSH_SWITCHES_HAS_OUT 0 +#define PUSH_SWITCHES_HAS_TRI 0 +#define PUSH_SWITCHES_IRQ -1 +#define PUSH_SWITCHES_IRQ_INTERRUPT_CONTROLLER_ID -1 +#define PUSH_SWITCHES_IRQ_TYPE "NONE" +#define PUSH_SWITCHES_NAME "/dev/push_switches" +#define PUSH_SWITCHES_RESET_VALUE 0 +#define PUSH_SWITCHES_SPAN 16 +#define PUSH_SWITCHES_TYPE "altera_avalon_pio" + + +/* + * switches configuration + * + */ + +#define ALT_MODULE_CLASS_switches altera_avalon_pio +#define SWITCHES_BASE 0x5090 +#define SWITCHES_BIT_CLEARING_EDGE_REGISTER 0 +#define SWITCHES_BIT_MODIFYING_OUTPUT_REGISTER 0 +#define SWITCHES_CAPTURE 0 +#define SWITCHES_DATA_WIDTH 18 +#define SWITCHES_DO_TEST_BENCH_WIRING 0 +#define SWITCHES_DRIVEN_SIM_VALUE 0 +#define SWITCHES_EDGE_TYPE "NONE" +#define SWITCHES_FREQ 50000000 +#define SWITCHES_HAS_IN 1 +#define SWITCHES_HAS_OUT 0 +#define SWITCHES_HAS_TRI 0 +#define SWITCHES_IRQ -1 +#define SWITCHES_IRQ_INTERRUPT_CONTROLLER_ID -1 +#define SWITCHES_IRQ_TYPE "NONE" +#define SWITCHES_NAME "/dev/switches" +#define SWITCHES_RESET_VALUE 0 +#define SWITCHES_SPAN 16 +#define SWITCHES_TYPE "altera_avalon_pio" + +#endif /* __SYSTEM_H_ */ diff --git a/software/qsys_tutorial_mem/.cproject b/software/qsys_tutorial_mem/.cproject new file mode 100644 index 0000000..dd88260 --- /dev/null +++ b/software/qsys_tutorial_mem/.cproject @@ -0,0 +1,508 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + make + + mem_init_install + true + false + false + + + make + + mem_init_generate + true + false + false + + + make + + help + true + false + false + + + + diff --git a/software/qsys_tutorial_mem/.project b/software/qsys_tutorial_mem/.project new file mode 100644 index 0000000..de48e99 --- /dev/null +++ b/software/qsys_tutorial_mem/.project @@ -0,0 +1,96 @@ + + + qsys_tutorial_mem + + + + + + com.altera.sbtgui.project.makefileBuilder + + + + + com.altera.sbtgui.project.makefileBuilder + + + + + org.eclipse.cdt.managedbuilder.core.genmakebuilder + clean,full,incremental, + + + ?name? + + + + org.eclipse.cdt.make.core.append_environment + true + + + org.eclipse.cdt.make.core.autoBuildTarget + all + + + org.eclipse.cdt.make.core.buildArguments + + + + org.eclipse.cdt.make.core.buildCommand + make + + + org.eclipse.cdt.make.core.buildLocation + ${workspace_loc://qsys_tutorial_mem} + + + org.eclipse.cdt.make.core.cleanBuildTarget + clean + + + org.eclipse.cdt.make.core.contents + org.eclipse.cdt.make.core.activeConfigSettings + + + org.eclipse.cdt.make.core.enableAutoBuild + false + + + org.eclipse.cdt.make.core.enableCleanBuild + true + + + org.eclipse.cdt.make.core.enableFullBuild + true + + + org.eclipse.cdt.make.core.fullBuildTarget + all + + + org.eclipse.cdt.make.core.stopOnError + true + + + org.eclipse.cdt.make.core.useDefaultBuildCmd + true + + + + + org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder + full,incremental, + + + + + + org.eclipse.cdt.core.cnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.managedbuilder.core.ScannerConfigNature + org.eclipse.cdt.core.ccnature + com.altera.sbtgui.project.SBTGUINature + com.altera.sbtgui.project.SBTGUIAppNature + com.altera.sbtgui.project.SBTGUIManagedNature + + diff --git a/software/qsys_tutorial_mem/Makefile b/software/qsys_tutorial_mem/Makefile new file mode 100644 index 0000000..0b274d9 --- /dev/null +++ b/software/qsys_tutorial_mem/Makefile @@ -0,0 +1,1093 @@ +#------------------------------------------------------------------------------ +# VARIABLES APPENDED TO BY INCLUDED MAKEFILE FRAGMENTS +#------------------------------------------------------------------------------ + +# List of include directories for -I compiler option (-I added when used). +# Includes the BSP. +ALT_INCLUDE_DIRS := + +# List of library directories for -L linker option (-L added when used). +# Includes the BSP. +ALT_LIBRARY_DIRS := + +# List of library names for -l linker option (-l added when used). +# Includes the BSP. +ALT_LIBRARY_NAMES := + +# List of library names for -msys-lib linker option (-msys-lib added when used). +# These are libraries that might be located in the BSP and depend on the BSP +# library, or vice versa +ALT_BSP_DEP_LIBRARY_NAMES := + +# List of dependencies for the linker. This is usually the full pathname +# of each library (*.a) file. +# Includes the BSP. +ALT_LDDEPS := + +# List of root library directories that support running make to build them. +# Includes the BSP and any ALT libraries. +MAKEABLE_LIBRARY_ROOT_DIRS := + +# Generic flags passed to the compiler for different types of input files. +ALT_CFLAGS := +ALT_CXXFLAGS := +ALT_CPPFLAGS := +ALT_ASFLAGS := +ALT_LDFLAGS := + + +#------------------------------------------------------------------------------ +# The adjust-path macro +# +# If COMSPEC/ComSpec is defined, Make is launched from Windows through +# Cygwin. The adjust-path macro converts absolute windows paths into +# unix style paths (Example: c:/dir -> /c/dir). This will ensture +# paths are readable by GNU Make. +# +# If COMSPEC/ComSpec is not defined, Make is launched from linux, and no +# adjustment is necessary +# +#------------------------------------------------------------------------------ + +ifndef COMSPEC +ifdef ComSpec +COMSPEC = $(ComSpec) +endif # ComSpec +endif # COMSPEC + +ifdef COMSPEC # if Windows OS + +ifeq ($(MAKE_VERSION),3.81) +# +# adjust-path/adjust-path-mixed for Mingw Gnu Make on Windows +# +# Example Usage: +# $(call adjust-path,c:/aaa/bbb) => /c/aaa/bbb +# $(call adjust-path-mixed,/c/aaa/bbb) => c:/aaa/bbb +# $(call adjust-path-mixed,/cygdrive/c/aaa/bbb) => c:/aaa/bbb +# + +# +# adjust-path +# - converts back slash characters into forward slashes +# - if input arg ($1) is an empty string then return the empty string +# - if input arg ($1) does not contain the string ":/", then return input arg +# - using sed, convert mixed path [c:/...] into mingw path [/c/...] +define adjust-path +$(strip \ +$(if $1,\ +$(if $(findstring :/,$(subst \,/,$1)),\ +$(shell echo $(subst \,/,$1) | sed -e 's,^\([a-zA-Z]\):/,/\1/,'),\ +$(subst \,/,$1)))) +endef + +# +# adjust-path-mixed +# - converts back slash characters into forward slashes +# - if input arg ($1) is an empty string then return the empty string +# - if input arg ($1) does not begin with a forward slash '/' char, then +# return input arg +# - using sed, convert mingw path [/c/...] or cygwin path [/c/cygdrive/...] +# into a mixed path [c:/...] +define adjust-path-mixed +$(strip \ +$(if $1,\ +$(if $(findstring $(subst \,/,$1),$(patsubst /%,%,$(subst \,/,$1))),\ +$(subst \,/,$1),\ +$(shell echo $(subst \,/,$1) | sed -e 's,^/cygdrive/\([a-zA-Z]\)/,\1:/,' -e 's,^/\([a-zA-Z]\)/,\1:/,')))) +endef + +else # MAKE_VERSION != 3.81 (MAKE_VERSION == 3.80 or MAKE_VERSION == 3.79) +# +# adjust-path for Cygwin Gnu Make +# $(call adjust-path,c:/aaa/bbb) = /cygdrive/c/aaa/bbb +# $(call adjust-path-mixed,/cygdrive/c/aaa/bbb) = c:/aaa/bbb +# +adjust-path = $(if $1,$(shell cygpath -u "$1"),) +adjust-path-mixed = $(if $1,$(shell cygpath -m "$1"),) +endif + +else # !COMSPEC + +adjust-path = $1 +adjust-path-mixed = $1 + +endif # COMSPEC + + +#vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv +# GENERATED SETTINGS START v +#vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv + +#START GENERATED +ACTIVE_BUILD_CONFIG := default +BUILD_CONFIGS := default + +# The following TYPE comment allows tools to identify the 'type' of target this +# makefile is associated with. +# TYPE: APP_MAKEFILE + +# This following VERSION comment indicates the version of the tool used to +# generate this makefile. A makefile variable is provided for VERSION as well. +# ACDS_VERSION: 13.0sp1 +ACDS_VERSION := 13.0sp1 + +# This following BUILD_NUMBER comment indicates the build number of the tool +# used to generate this makefile. +# BUILD_NUMBER: 232 + +# Define path to the application ELF. +# It may be used by the makefile fragments so is defined before including them. +# +ELF := qsys_tutorial_mem.elf + +# Paths to C, C++, and assembly source files. +C_SRCS += hello_world_small.c +C_SRCS += hex_encoder.c +C_SRCS += hex_out.c +C_SRCS += input_int.c +C_SRCS += sys_memory.c +C_SRCS += sys_register.c +C_SRCS += system.c +C_SRCS += inst_decoder.c +CXX_SRCS := +ASM_SRCS := + + +# Path to root of object file tree. +OBJ_ROOT_DIR := obj + +# Options to control objdump. +CREATE_OBJDUMP := 1 +OBJDUMP_INCLUDE_SOURCE := 1 +OBJDUMP_FULL_CONTENTS := 0 + +# Options to enable/disable optional files. +CREATE_ELF_DERIVED_FILES := 0 +CREATE_LINKER_MAP := 1 + +# Common arguments for ALT_CFLAGSs +APP_CFLAGS_DEFINED_SYMBOLS := +APP_CFLAGS_UNDEFINED_SYMBOLS := +APP_CFLAGS_OPTIMIZATION := -Os +APP_CFLAGS_DEBUG_LEVEL := -g +APP_CFLAGS_WARNINGS := -Wall +APP_CFLAGS_USER_FLAGS := + +APP_ASFLAGS_USER := +APP_LDFLAGS_USER := + +# Linker options that have default values assigned later if not +# assigned here. +LINKER_SCRIPT := +CRT0 := +SYS_LIB := + +# Define path to the root of the BSP. +BSP_ROOT_DIR := ../qsys_tutorial_mem_bsp/ + +# List of application specific include directories, library directories and library names +APP_INCLUDE_DIRS := +APP_LIBRARY_DIRS := +APP_LIBRARY_NAMES := + +# Pre- and post- processor settings. +BUILD_PRE_PROCESS := +BUILD_POST_PROCESS := + +QUARTUS_PROJECT_DIR := ../../ + + +#END GENERATED + +#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +# GENERATED SETTINGS END ^ +#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + +#------------------------------------------------------------------------------ +# DEFAULT TARGET +#------------------------------------------------------------------------------ + +# Define the variable used to echo output if not already defined. +ifeq ($(ECHO),) +ECHO := echo +endif + +# Put "all" rule before included makefile fragments because they may +# define rules and we don't want one of those to become the default rule. +.PHONY : all + +all: + @$(ECHO) [$(APP_NAME) build complete] + +all : build_pre_process libs app build_post_process + + +#------------------------------------------------------------------------------ +# VARIABLES DEPENDENT ON GENERATED CONTENT +#------------------------------------------------------------------------------ + +# Define object file directory per build configuration +CONFIG_OBJ_DIR := $(OBJ_ROOT_DIR)/$(ACTIVE_BUILD_CONFIG) + +ifeq ($(BSP_ROOT_DIR),) +$(error Edit Makefile and provide a value for BSP_ROOT_DIR) +endif + +ifeq ($(wildcard $(BSP_ROOT_DIR)),) +$(error BSP directory does not exist: $(BSP_ROOT_DIR)) +endif + +# Define absolute path to the root of the BSP. +ABS_BSP_ROOT_DIR := $(call adjust-path-mixed,$(shell cd "$(BSP_ROOT_DIR)"; pwd)) + +# Include makefile fragments. Define variable ALT_LIBRARY_ROOT_DIR before +# including each makefile fragment so that it knows the path to itself. +BSP_INCLUDE_FILE := $(BSP_ROOT_DIR)/public.mk +ALT_LIBRARY_ROOT_DIR := $(BSP_ROOT_DIR) +include $(BSP_INCLUDE_FILE) +# C2H will need this to touch the BSP public.mk and avoid the sopc file +# out-of-date error during a BSP make +ABS_BSP_INCLUDE_FILE := $(ABS_BSP_ROOT_DIR)/public.mk + + +ifneq ($(WARNING.SMALL_STACK_SIZE),) +# This WARNING is here to protect you from unknowingly using a very small stack +# If the warning is set, increase your stack size or enable the BSP small stack +# setting to eliminate the warning +$(warning WARNING: $(WARNING.SMALL_STACK_SIZE)) +endif + + +# If the BSP public.mk indicates that ALT_SIM_OPTIMIZE is set, rename the ELF +# by prefixing it with RUN_ON_HDL_SIMULATOR_ONLY_. +ifneq ($(filter -DALT_SIM_OPTIMIZE,$(ALT_CPPFLAGS)),) +ELF := RUN_ON_HDL_SIMULATOR_ONLY_$(ELF) +endif + +# If the BSP public.mk indicates that ALT_PROVIDE_GMON is set, add option to +# download_elf target +ifneq ($(filter -DALT_PROVIDE_GMON,$(ALT_CPPFLAGS)),) +GMON_OUT_FILENAME := gmon.out +WRITE_GMON_OPTION := --write-gmon $(GMON_OUT_FILENAME) +endif + +# Name of ELF application. +APP_NAME := $(basename $(ELF)) + +# Set to defaults if variables not already defined in settings. +ifeq ($(LINKER_SCRIPT),) +LINKER_SCRIPT := $(BSP_LINKER_SCRIPT) +endif +ifeq ($(CRT0),) +CRT0 := $(BSP_CRT0) +endif +ifeq ($(SYS_LIB),) +SYS_LIB := $(BSP_SYS_LIB) +endif + +OBJDUMP_NAME := $(APP_NAME).objdump +OBJDUMP_FLAGS := --disassemble --syms --all-header +ifeq ($(OBJDUMP_INCLUDE_SOURCE),1) +OBJDUMP_FLAGS += --source +endif +ifeq ($(OBJDUMP_FULL_CONTENTS),1) +OBJDUMP_FLAGS += --full-contents +endif + +# Create list of linker dependencies (*.a files). +APP_LDDEPS := $(ALT_LDDEPS) $(LDDEPS) + +# Take lists and add required prefixes. +APP_INC_DIRS := $(addprefix -I, $(ALT_INCLUDE_DIRS) $(APP_INCLUDE_DIRS) $(INC_DIRS)) +ASM_INC_PREFIX := -Wa,-I +APP_ASM_INC_DIRS := $(addprefix $(ASM_INC_PREFIX), $(ALT_INCLUDE_DIRS) $(APP_INCLUDE_DIRS) $(INC_DIRS)) +APP_LIB_DIRS := $(addprefix -L, $(ALT_LIBRARY_DIRS) $(APP_LIBRARY_DIRS) $(LIB_DIRS)) +APP_LIBS := $(addprefix -l, $(ALT_LIBRARY_NAMES) $(APP_LIBRARY_NAMES) $(LIBS)) + +ifneq ($(AVOID_NIOS2_GCC3_OPTIONS),) + +# +# Avoid Nios II GCC 3.X options. +# + +# Detect if small newlib C library is requested. +# If yes, remove the -msmallc option because it is +# now handled by other means. +ifneq ($(filter -msmallc,$(ALT_LDFLAGS)),) + ALT_LDFLAGS := $(filter-out -msmallc,$(ALT_LDFLAGS)) + ALT_C_LIBRARY := smallc +else + ALT_C_LIBRARY := c +endif + +# Put each BSP dependent library in a group to avoid circular dependencies. +APP_BSP_DEP_LIBS := $(foreach l,$(ALT_BSP_DEP_LIBRARY_NAMES),-Wl,--start-group -l$(ALT_C_LIBRARY) -lgcc -l$(l) -Wl,--end-group) + +else # !AVOID_NIOS2_GCC3_OPTIONS + +# +# Use Nios II GCC 3.X options. +# +APP_BSP_DEP_LIBS := $(addprefix -msys-lib=, $(ALT_BSP_DEP_LIBRARY_NAMES)) + +endif # !AVOID_NIOS2_GCC3_OPTIONS + +# Arguments for the C preprocessor, C/C++ compiler, assembler, and linker. +APP_CFLAGS := $(APP_CFLAGS_DEFINED_SYMBOLS) \ + $(APP_CFLAGS_UNDEFINED_SYMBOLS) \ + $(APP_CFLAGS_OPTIMIZATION) \ + $(APP_CFLAGS_DEBUG_LEVEL) \ + $(APP_CFLAGS_WARNINGS) \ + $(APP_CFLAGS_USER_FLAGS) \ + $(ALT_CFLAGS) \ + $(CFLAGS) + +# Arguments only for the C++ compiler. +APP_CXXFLAGS := $(ALT_CXXFLAGS) $(CXXFLAGS) + +# Arguments only for the C preprocessor. +# Prefix each include directory with -I. +APP_CPPFLAGS := $(APP_INC_DIRS) \ + $(ALT_CPPFLAGS) \ + $(CPPFLAGS) + +# Arguments only for the assembler. +APP_ASFLAGS := $(APP_ASM_INC_DIRS) \ + $(ALT_ASFLAGS) \ + $(APP_ASFLAGS_USER) \ + $(ASFLAGS) + +# Arguments only for the linker. +APP_LDFLAGS := $(APP_LDFLAGS_USER) + +ifneq ($(LINKER_SCRIPT),) +APP_LDFLAGS += -T'$(LINKER_SCRIPT)' +endif + +ifneq ($(AVOID_NIOS2_GCC3_OPTIONS),) + +# Avoid Nios II GCC 3.x options. +ifneq ($(CRT0),) +APP_LDFLAGS += $(CRT0) +endif + +# The equivalent of the -msys-lib option is provided +# by the GROUP() command in the linker script. +# Note this means the SYS_LIB variable is now ignored. + +else # !AVOID_NIOS2_GCC3_OPTIONS + +# Use Nios II GCC 3.x options. +ifneq ($(CRT0),) +APP_LDFLAGS += -msys-crt0='$(CRT0)' +endif +ifneq ($(SYS_LIB),) +APP_LDFLAGS += -msys-lib=$(SYS_LIB) +endif + +endif # !AVOID_NIOS2_GCC3_OPTIONS + +APP_LDFLAGS += \ + $(APP_LIB_DIRS) \ + $(ALT_LDFLAGS) \ + $(LDFLAGS) + +LINKER_MAP_NAME := $(APP_NAME).map +ifeq ($(CREATE_LINKER_MAP), 1) +APP_LDFLAGS += -Wl,-Map=$(LINKER_MAP_NAME) +endif + +# QUARTUS_PROJECT_DIR and SOPC_NAME need to be defined if you want the +# mem_init_install target of the mem_init.mk (located in the associated BSP) +# to know how to copy memory initialization files (e.g. .dat, .hex) into +# directories required for Quartus compilation or RTL simulation. + +# Defining QUARTUS_PROJECT_DIR causes mem_init_install to copy memory +# initialization files into your Quartus project directory. This is required +# to provide the initial memory contents of FPGA memories that can be +# initialized by the programming file (.sof) or Hardcopy ROMs. It is also used +# for VHDL simulation of on-chip memories. + +# Defining SOPC_NAME causes the mem_init_install target to copy memory +# initialization files into your RTL simulation directory. This is required +# to provide the initial memory contents of all memories that can be +# initialized by RTL simulation. This variable should be set to the same name +# as your SOPC Builder system name. For example, if you have a system called +# "foo.sopc", this variable should be set to "foo". + +# If SOPC_NAME is not set and QUARTUS_PROJECT_DIR is set, then derive SOPC_NAME. +ifeq ($(SOPC_NAME),) +ifneq ($(QUARTUS_PROJECT_DIR),) +SOPC_NAME := $(basename $(notdir $(wildcard $(QUARTUS_PROJECT_DIR)/*.sopcinfo))) +endif +endif + +# Defining JDI_FILE is required to specify the JTAG Debug Information File +# path. This file is generated by Quartus, and is needed along with the +# .sopcinfo file to resolve processor instance ID's from names in a multi-CPU +# systems. For multi-CPU systems, the processor instance ID is used to select +# from multiple CPU's during ELF download. + +# Both JDI_FILE and SOPCINFO_FILE are provided by the BSP if they found during +# BSP creation. If JDI_FILE is not set and QUARTUS_PROJECT_DIR is set, then +# derive JDI_FILE. We do not attempt to derive SOPCINFO_FILE since there may be +# multiple .sopcinfo files in a Quartus project. +ifeq ($(JDI_FILE),) +ifneq ($(QUARTUS_PROJECT_DIR),) +JDI_FILE := $(wildcard $(QUARTUS_PROJECT_DIR)/*.jdi) +endif +endif + +# Path to root runtime directory used for hdl simulation +RUNTIME_ROOT_DIR := $(CONFIG_OBJ_DIR)/runtime + + + +#------------------------------------------------------------------------------ +# MAKEFILE INCLUDES DEPENDENT ON GENERATED CONTENT +#------------------------------------------------------------------------------ +# mem_init.mk is a generated makefile fragment. This file defines all targets +# used to generate HDL initialization simulation files and pre-initialized +# onchip memory files. +MEM_INIT_FILE := $(BSP_ROOT_DIR)/mem_init.mk +include $(MEM_INIT_FILE) + +# Create list of object files to be built using the list of source files. +# The source file hierarchy is preserved in the object tree. +# The supported file extensions are: +# +# .c - for C files +# .cxx .cc .cpp - for C++ files +# .S .s - for assembler files +# +# Handle source files specified by --src-dir & --src-rdir differently, to +# save some processing time in calling the adjust-path macro. + +OBJ_LIST_C := $(patsubst %.c,%.o,$(filter %.c,$(C_SRCS))) +OBJ_LIST_CPP := $(patsubst %.cpp,%.o,$(filter %.cpp,$(CXX_SRCS))) +OBJ_LIST_CXX := $(patsubst %.cxx,%.o,$(filter %.cxx,$(CXX_SRCS))) +OBJ_LIST_CC := $(patsubst %.cc,%.o,$(filter %.cc,$(CXX_SRCS))) +OBJ_LIST_S := $(patsubst %.S,%.o,$(filter %.S,$(ASM_SRCS))) +OBJ_LIST_SS := $(patsubst %.s,%.o,$(filter %.s,$(ASM_SRCS))) + +OBJ_LIST := $(sort $(OBJ_LIST_C) $(OBJ_LIST_CPP) $(OBJ_LIST_CXX) \ + $(OBJ_LIST_CC) $(OBJ_LIST_S) $(OBJ_LIST_SS)) + +SDIR_OBJ_LIST_C := $(patsubst %.c,%.o,$(filter %.c,$(SDIR_C_SRCS))) +SDIR_OBJ_LIST_CPP := $(patsubst %.cpp,%.o,$(filter %.cpp,$(SDIR_CXX_SRCS))) +SDIR_OBJ_LIST_CXX := $(patsubst %.cxx,%.o,$(filter %.cxx,$(SDIR_CXX_SRCS))) +SDIR_OBJ_LIST_CC := $(patsubst %.cc,%.o,$(filter %.cc,$(SDIR_CXX_SRCS))) +SDIR_OBJ_LIST_S := $(patsubst %.S,%.o,$(filter %.S,$(SDIR_ASM_SRCS))) +SDIR_OBJ_LIST_SS := $(patsubst %.s,%.o,$(filter %.s,$(SDIR_ASM_SRCS))) + +SDIR_OBJ_LIST := $(sort $(SDIR_OBJ_LIST_C) $(SDIR_OBJ_LIST_CPP) \ + $(SDIR_OBJ_LIST_CXX) $(SDIR_OBJ_LIST_CC) $(SDIR_OBJ_LIST_S) \ + $(SDIR_OBJ_LIST_SS)) + +# Relative-pathed objects that being with "../" are handled differently. +# +# Regular objects are created as +# $(CONFIG_OBJ_DIR)//.o +# where the path structure is maintained under the obj directory. This +# applies for both absolute and relative paths; in the absolute path +# case this means the entire source path will be recreated under the obj +# directory. This is done to allow two source files with the same name +# to be included as part of the project. +# +# Note: On Cygwin, the path recreated under the obj directory will be +# the cygpath -u output path. +# +# Relative-path objects that begin with "../" cause problems under this +# scheme, as $(CONFIG_OBJ_DIR)/..// can potentially put the object +# files anywhere in the system, creating clutter and polluting the source tree. +# As such, their paths are flattened - the object file created will be +# $(CONFIG_OBJ_DIR)/.o. Due to this, two files specified with +# "../" in the beginning cannot have the same name in the project. VPATH +# will be set for these sources to allow make to relocate the source file +# via %.o rules. +# +# The following lines separate the object list into the flatten and regular +# lists, and then handles them as appropriate. + +FLATTEN_OBJ_LIST := $(filter ../%,$(OBJ_LIST)) +FLATTEN_APP_OBJS := $(addprefix $(CONFIG_OBJ_DIR)/,$(notdir $(FLATTEN_OBJ_LIST))) + +REGULAR_OBJ_LIST := $(filter-out $(FLATTEN_OBJ_LIST),$(OBJ_LIST)) +REGULAR_OBJ_LIST_C := $(filter $(OBJ_LIST_C),$(REGULAR_OBJ_LIST)) +REGULAR_OBJ_LIST_CPP := $(filter $(OBJ_LIST_CPP),$(REGULAR_OBJ_LIST)) +REGULAR_OBJ_LIST_CXX := $(filter $(OBJ_LIST_CXX),$(REGULAR_OBJ_LIST)) +REGULAR_OBJ_LIST_CC := $(filter $(OBJ_LIST_CC),$(REGULAR_OBJ_LIST)) +REGULAR_OBJ_LIST_S := $(filter $(OBJ_LIST_S),$(REGULAR_OBJ_LIST)) +REGULAR_OBJ_LIST_SS := $(filter $(OBJ_LIST_SS),$(REGULAR_OBJ_LIST)) + +FLATTEN_SDIR_OBJ_LIST := $(filter ../%,$(SDIR_OBJ_LIST)) +FLATTEN_SDIR_APP_OBJS := $(addprefix $(CONFIG_OBJ_DIR)/,$(notdir $(FLATTEN_SDIR_OBJ_LIST))) + +REGULAR_SDIR_OBJ_LIST := $(filter-out $(FLATTEN_SDIR_OBJ_LIST),$(SDIR_OBJ_LIST)) +REGULAR_SDIR_OBJ_LIST_C := $(filter $(SDIR_OBJ_LIST_C),$(REGULAR_SDIR_OBJ_LIST)) +REGULAR_SDIR_OBJ_LIST_CPP := $(filter $(SDIR_OBJ_LIST_CPP),$(REGULAR_SDIR_OBJ_LIST)) +REGULAR_SDIR_OBJ_LIST_CXX := $(filter $(SDIR_OBJ_LIST_CXX),$(REGULAR_SDIR_OBJ_LIST)) +REGULAR_SDIR_OBJ_LIST_CC := $(filter $(SDIR_OBJ_LIST_CC),$(REGULAR_SDIR_OBJ_LIST)) +REGULAR_SDIR_OBJ_LIST_S := $(filter $(SDIR_OBJ_LIST_S),$(REGULAR_SDIR_OBJ_LIST)) +REGULAR_SDIR_OBJ_LIST_SS := $(filter $(SDIR_OBJ_LIST_SS),$(REGULAR_SDIR_OBJ_LIST)) + +VPATH := $(sort $(dir $(FLATTEN_OBJ_LIST)) $(dir $(FLATTEN_SDIR_OBJ_LIST))) + +APP_OBJS_C := $(addprefix $(CONFIG_OBJ_DIR)/,\ + $(REGULAR_SDIR_OBJ_LIST_C) \ + $(foreach s,$(REGULAR_OBJ_LIST_C),$(call adjust-path,$s))) + +APP_OBJS_CPP := $(addprefix $(CONFIG_OBJ_DIR)/,\ + $(REGULAR_SDIR_OBJ_LIST_CPP) \ + $(foreach s,$(REGULAR_OBJ_LIST_CPP),$(call adjust-path,$s))) + +APP_OBJS_CXX := $(addprefix $(CONFIG_OBJ_DIR)/,\ + $(REGULAR_SDIR_OBJ_LIST_CXX) \ + $(foreach s,$(REGULAR_OBJ_LIST_CXX),$(call adjust-path,$s))) + +APP_OBJS_CC := $(addprefix $(CONFIG_OBJ_DIR)/,\ + $(REGULAR_SDIR_OBJ_LIST_CC) \ + $(foreach s,$(REGULAR_OBJ_LIST_CC),$(call adjust-path,$s))) + +APP_OBJS_S := $(addprefix $(CONFIG_OBJ_DIR)/,\ + $(REGULAR_SDIR_OBJ_LIST_S) \ + $(foreach s,$(REGULAR_OBJ_LIST_S),$(call adjust-path,$s))) + +APP_OBJS_SS := $(addprefix $(CONFIG_OBJ_DIR)/,\ + $(REGULAR_SDIR_OBJ_LIST_SS) \ + $(foreach s,$(REGULAR_OBJ_LIST_SS),$(call adjust-path,$s))) + +APP_OBJS := $(APP_OBJS_C) $(APP_OBJS_CPP) $(APP_OBJS_CXX) $(APP_OBJS_CC) \ + $(APP_OBJS_S) $(APP_OBJS_SS) \ + $(FLATTEN_APP_OBJS) $(FLATTEN_SDIR_APP_OBJS) + +# Add any extra user-provided object files. +APP_OBJS += $(OBJS) + +# Create list of dependancy files for each object file. +APP_DEPS := $(APP_OBJS:.o=.d) + +# Patch the Elf file with system specific information + +# Patch the Elf with the name of the sopc system +ifneq ($(SOPC_NAME),) +ELF_PATCH_FLAG += --sopc_system_name $(SOPC_NAME) +endif + +# Patch the Elf with the absolute path to the Quartus Project Directory +ifneq ($(QUARTUS_PROJECT_DIR),) +ABS_QUARTUS_PROJECT_DIR := $(call adjust-path-mixed,$(shell cd "$(QUARTUS_PROJECT_DIR)"; pwd)) +ELF_PATCH_FLAG += --quartus_project_dir "$(ABS_QUARTUS_PROJECT_DIR)" +endif + +# Patch the Elf and download args with the JDI_FILE if specified +ifneq ($(wildcard $(JDI_FILE)),) +ELF_PATCH_FLAG += --jdi $(JDI_FILE) +DOWNLOAD_JDI_FLAG := --jdi $(JDI_FILE) +endif + +# Patch the Elf with the SOPCINFO_FILE if specified +ifneq ($(wildcard $(SOPCINFO_FILE)),) +ELF_PATCH_FLAG += --sopcinfo $(SOPCINFO_FILE) +endif + +# Use the DOWNLOAD_CABLE variable to specify which JTAG cable to use. +# This is not needed if you only have one cable. +ifneq ($(DOWNLOAD_CABLE),) +DOWNLOAD_CABLE_FLAG := --cable '$(DOWNLOAD_CABLE)' +endif + + +#------------------------------------------------------------------------------ +# BUILD PRE/POST PROCESS +#------------------------------------------------------------------------------ +build_pre_process : + $(BUILD_PRE_PROCESS) + +build_post_process : + $(BUILD_POST_PROCESS) + +.PHONY: build_pre_process build_post_process + + +#------------------------------------------------------------------------------ +# TOOLS +#------------------------------------------------------------------------------ + +# +# Set tool default variables if not already defined. +# If these are defined, they would typically be defined in an +# included makefile fragment. +# +ifeq ($(DEFAULT_CROSS_COMPILE),) +DEFAULT_CROSS_COMPILE := nios2-elf- +endif + +ifeq ($(DEFAULT_STACK_REPORT),) +DEFAULT_STACKREPORT := nios2-stackreport +endif + +ifeq ($(DEFAULT_DOWNLOAD),) +DEFAULT_DOWNLOAD := nios2-download +endif + +ifeq ($(DEFAULT_FLASHPROG),) +DEFAULT_FLASHPROG := nios2-flash-programmer +endif + +ifeq ($(DEFAULT_ELFPATCH),) +DEFAULT_ELFPATCH := nios2-elf-insert +endif + +ifeq ($(DEFAULT_RM),) +DEFAULT_RM := rm -f +endif + +ifeq ($(DEFAULT_CP),) +DEFAULT_CP := cp -f +endif + +ifeq ($(DEFAULT_MKDIR),) +DEFAULT_MKDIR := mkdir -p +endif + +# +# Set tool variables to defaults if not already defined. +# If these are defined, they would typically be defined by a +# setting in the generated portion of this makefile. +# +ifeq ($(CROSS_COMPILE),) +CROSS_COMPILE := $(DEFAULT_CROSS_COMPILE) +endif + +ifeq ($(origin CC),default) +CC := $(CROSS_COMPILE)gcc -xc +endif + +ifeq ($(origin CXX),default) +CXX := $(CROSS_COMPILE)gcc -xc++ +endif + +ifeq ($(origin AS),default) +AS := $(CROSS_COMPILE)gcc +endif + +ifeq ($(origin AR),default) +AR := $(CROSS_COMPILE)ar +endif + +ifeq ($(origin LD),default) +LD := $(CROSS_COMPILE)g++ +endif + +ifeq ($(origin NM),default) +NM := $(CROSS_COMPILE)nm +endif + +ifeq ($(origin RM),default) +RM := $(DEFAULT_RM) +endif + +ifeq ($(origin CP),default) +CP := $(DEFAULT_CP) +endif + +ifeq ($(OBJDUMP),) +OBJDUMP := $(CROSS_COMPILE)objdump +endif + +ifeq ($(OBJCOPY),) +OBJCOPY := $(CROSS_COMPILE)objcopy +endif + +ifeq ($(STACKREPORT),) +ifeq ($(CROSS_COMPILE),nios2-elf-) +STACKREPORT := $(DEFAULT_STACKREPORT) +else +DISABLE_STACKREPORT := 1 +endif +endif + +ifeq ($(DOWNLOAD),) +DOWNLOAD := $(DEFAULT_DOWNLOAD) +endif + +ifeq ($(FLASHPROG),) +FLASHPROG := $(DEFAULT_FLASHPROG) +endif + +ifeq ($(ELFPATCH),) +ELFPATCH := $(DEFAULT_ELFPATCH) +endif + +ifeq ($(MKDIR),) +MKDIR := $(DEFAULT_MKDIR) +endif + +#------------------------------------------------------------------------------ +# PATTERN RULES TO BUILD OBJECTS +#------------------------------------------------------------------------------ + +define compile.c +@$(ECHO) Info: Compiling $< to $@ +@$(MKDIR) $(@D) +$(CC) -MP -MMD -c $(APP_CPPFLAGS) $(APP_CFLAGS) -o $@ $< +$(CC_POST_PROCESS) +endef + +define compile.cpp +@$(ECHO) Info: Compiling $< to $@ +@$(MKDIR) $(@D) +$(CXX) -MP -MMD -c $(APP_CPPFLAGS) $(APP_CXXFLAGS) $(APP_CFLAGS) -o $@ $< +$(CXX_POST_PROCESS) +endef + +# If assembling with the compiler, ensure "-Wa," is prepended to all APP_ASFLAGS +ifeq ($(AS),$(patsubst %as,%,$(AS))) +COMMA := , +APP_ASFLAGS := $(filter-out $(APP_CFLAGS),$(addprefix -Wa$(COMMA),$(patsubst -Wa$(COMMA)%,%,$(APP_ASFLAGS)))) +endif + +define compile.s +@$(ECHO) Info: Assembling $< to $@ +@$(MKDIR) $(@D) +$(AS) -MP -MMD -c $(APP_CPPFLAGS) $(APP_CFLAGS) $(APP_ASFLAGS) -o $@ $< +$(AS_POST_PROCESS) +endef + +ifeq ($(MAKE_VERSION),3.81) +.SECONDEXPANSION: + +$(APP_OBJS_C): $(CONFIG_OBJ_DIR)/%.o: $$(call adjust-path-mixed,%.c) + $(compile.c) + +$(APP_OBJS_CPP): $(CONFIG_OBJ_DIR)/%.o: $$(call adjust-path-mixed,%.cpp) + $(compile.cpp) + +$(APP_OBJS_CC): $(CONFIG_OBJ_DIR)/%.o: $$(call adjust-path-mixed,%.cc) + $(compile.cpp) + +$(APP_OBJS_CXX): $(CONFIG_OBJ_DIR)/%.o: $$(call adjust-path-mixed,%.cxx) + $(compile.cpp) + +$(APP_OBJS_S): $(CONFIG_OBJ_DIR)/%.o: $$(call adjust-path-mixed,%.S) + $(compile.s) + +$(APP_OBJS_SS): $(CONFIG_OBJ_DIR)/%.o: $$(call adjust-path-mixed,%.s) + $(compile.s) + +endif # MAKE_VERSION != 3.81 + +$(CONFIG_OBJ_DIR)/%.o: %.c + $(compile.c) + +$(CONFIG_OBJ_DIR)/%.o: %.cpp + $(compile.cpp) + +$(CONFIG_OBJ_DIR)/%.o: %.cc + $(compile.cpp) + +$(CONFIG_OBJ_DIR)/%.o: %.cxx + $(compile.cpp) + +$(CONFIG_OBJ_DIR)/%.o: %.S + $(compile.s) + +$(CONFIG_OBJ_DIR)/%.o: %.s + $(compile.s) + + +#------------------------------------------------------------------------------ +# PATTERN RULES TO INTERMEDIATE FILES +#------------------------------------------------------------------------------ + +$(CONFIG_OBJ_DIR)/%.s: %.c + @$(ECHO) Info: Compiling $< to $@ + @$(MKDIR) $(@D) + $(CC) -S $(APP_CPPFLAGS) $(APP_CFLAGS) -o $@ $< + +$(CONFIG_OBJ_DIR)/%.s: %.cpp + @$(ECHO) Info: Compiling $< to $@ + @$(MKDIR) $(@D) + $(CXX) -S $(APP_CPPFLAGS) $(APP_CXXFLAGS) $(APP_CFLAGS) -o $@ $< + +$(CONFIG_OBJ_DIR)/%.s: %.cc + @$(ECHO) Info: Compiling $< to $@ + @$(MKDIR) $(@D) + $(CXX) -S $(APP_CPPFLAGS) $(APP_CXXFLAGS) $(APP_CFLAGS) -o $@ $< + +$(CONFIG_OBJ_DIR)/%.s: %.cxx + @$(ECHO) Info: Compiling $< to $@ + @$(MKDIR) $(@D) + $(CXX) -S $(APP_CPPFLAGS) $(APP_CXXFLAGS) $(APP_CFLAGS) -o $@ $< + +$(CONFIG_OBJ_DIR)/%.i: %.c + @$(ECHO) Info: Compiling $< to $@ + @$(MKDIR) $(@D) + $(CC) -E $(APP_CPPFLAGS) $(APP_CFLAGS) -o $@ $< + +$(CONFIG_OBJ_DIR)/%.i: %.cpp + @$(ECHO) Info: Compiling $< to $@ + @$(MKDIR) $(@D) + $(CXX) -E $(APP_CPPFLAGS) $(APP_CXXFLAGS) $(APP_CFLAGS) -o $@ $< + +$(CONFIG_OBJ_DIR)/%.i: %.cc + @$(ECHO) Info: Compiling $< to $@ + @$(MKDIR) $(@D) + $(CXX) -E $(APP_CPPFLAGS) $(APP_CXXFLAGS) $(APP_CFLAGS) -o $@ $< + +$(CONFIG_OBJ_DIR)/%.i: %.cxx + @$(ECHO) Info: Compiling $< to $@ + @$(MKDIR) $(@D) + $(CXX) -E $(APP_CPPFLAGS) $(APP_CXXFLAGS) $(APP_CFLAGS) -o $@ $< + + +#------------------------------------------------------------------------------ +# TARGET RULES +#------------------------------------------------------------------------------ + +.PHONY : help +help : + @$(ECHO) "Summary of Makefile targets" + @$(ECHO) " Build targets:" + @$(ECHO) " all (default) - Application and all libraries (including BSP)" + @$(ECHO) " bsp - Just the BSP" + @$(ECHO) " libs - All libraries (including BSP)" + @$(ECHO) " flash - All flash files" + @$(ECHO) " mem_init_generate - All memory initialization files" +ifeq ($(QSYS),1) + @$(ECHO) " mem_init_install - This target is deprecated for QSys Systems" + @$(ECHO) " --> Use the mem_init_generate target and then" + @$(ECHO) " add the generated meminit.qip file to your" + @$(ECHO) " Quartus II Project." +else # if QSYS != 1 + @$(ECHO) " mem_init_install - Copy memory initialization files to Quartus II project" +endif # QSYS == 1 + @$(ECHO) + @$(ECHO) " Clean targets:" + @$(ECHO) " clean_all - Application and all libraries (including BSP)" + @$(ECHO) " clean - Just the application" + @$(ECHO) " clean_bsp - Just the BSP" + @$(ECHO) " clean_libs - All libraries (including BSP)" + @$(ECHO) + @$(ECHO) " Run targets:" + @$(ECHO) " download-elf - Download and run your elf executable" + @$(ECHO) " program-flash - Program flash contents to the board" + +# Handy rule to skip making libraries and just make application. +.PHONY : app +app : $(ELF) + +ifeq ($(CREATE_OBJDUMP), 1) +app : $(OBJDUMP_NAME) +endif + +ifeq ($(CREATE_ELF_DERIVED_FILES),1) +app : elf_derived_files +endif + +.PHONY: elf_derived_files +elf_derived_files: default_mem_init + +# Handy rule for making just the BSP. +.PHONY : bsp +bsp : + @$(ECHO) Info: Building $(BSP_ROOT_DIR) + @$(MAKE) --no-print-directory -C $(BSP_ROOT_DIR) + + +# Make sure all makeable libraries (including the BSP) are up-to-date. +LIB_TARGETS := $(patsubst %,%-recurs-make-lib,$(MAKEABLE_LIBRARY_ROOT_DIRS)) + +.PHONY : libs +libs : $(LIB_TARGETS) + +ifneq ($(strip $(LIB_TARGETS)),) +$(LIB_TARGETS): %-recurs-make-lib: + @$(ECHO) Info: Building $* + $(MAKE) --no-print-directory -C $* +endif + +ifneq ($(strip $(APP_LDDEPS)),) +$(APP_LDDEPS): libs + @true +endif + +# Rules to force your project to rebuild or relink +# .force_relink file will cause any application that depends on this project to relink +# .force_rebuild file will cause this project to rebuild object files +# .force_rebuild_all file will cause this project and any project that depends on this project to rebuild object files + +FORCE_RELINK_DEP := .force_relink +FORCE_REBUILD_DEP := .force_rebuild +FORCE_REBUILD_ALL_DEP := .force_rebuild_all +FORCE_REBUILD_DEP_LIST := $(CONFIG_OBJ_DIR)/$(FORCE_RELINK_DEP) $(CONFIG_OBJ_DIR)/$(FORCE_REBUILD_DEP) $(FORCE_REBUILD_ALL_DEP) + +$(FORCE_REBUILD_DEP_LIST): + +$(APP_OBJS): $(wildcard $(CONFIG_OBJ_DIR)/$(FORCE_REBUILD_DEP)) $(wildcard $(addsuffix /$(FORCE_REBUILD_ALL_DEP), . $(ALT_LIBRARY_DIRS))) + +$(ELF): $(wildcard $(addsuffix /$(FORCE_RELINK_DEP), $(CONFIG_OBJ_DIR) $(ALT_LIBRARY_DIRS))) + + +# Clean just the application. +.PHONY : clean +ifeq ($(CREATE_ELF_DERIVED_FILES),1) +clean : clean_elf_derived_files +endif + +clean : + @$(RM) -r $(ELF) $(OBJDUMP_NAME) $(LINKER_MAP_NAME) $(OBJ_ROOT_DIR) $(RUNTIME_ROOT_DIR) $(FORCE_REBUILD_DEP_LIST) + @$(ECHO) [$(APP_NAME) clean complete] + +# Clean just the BSP. +.PHONY : clean_bsp +clean_bsp : + @$(ECHO) Info: Cleaning $(BSP_ROOT_DIR) + @$(MAKE) --no-print-directory -C $(BSP_ROOT_DIR) clean + +# Clean all makeable libraries including the BSP. +LIB_CLEAN_TARGETS := $(patsubst %,%-recurs-make-clean-lib,$(MAKEABLE_LIBRARY_ROOT_DIRS)) + +.PHONY : clean_libs +clean_libs : $(LIB_CLEAN_TARGETS) + +ifneq ($(strip $(LIB_CLEAN_TARGETS)),) +$(LIB_CLEAN_TARGETS): %-recurs-make-clean-lib: + @$(ECHO) Info: Cleaning $* + $(MAKE) --no-print-directory -C $* clean +endif + +.PHONY: clean_elf_derived_files +clean_elf_derived_files: mem_init_clean + +# Clean application and all makeable libraries including the BSP. +.PHONY : clean_all +clean_all : clean mem_init_clean clean_libs + +# Include the dependency files unless the make goal is performing a clean +# of the application. +ifneq ($(firstword $(MAKECMDGOALS)),clean) +ifneq ($(firstword $(MAKECMDGOALS)),clean_all) +-include $(APP_DEPS) +endif +endif + +.PHONY : download-elf +download-elf : $(ELF) + @if [ "$(DOWNLOAD)" = "none" ]; \ + then \ + $(ECHO) Downloading $(ELF) not supported; \ + else \ + $(ECHO) Info: Downloading $(ELF); \ + $(DOWNLOAD) --go --cpu_name=$(CPU_NAME) $(DOWNLOAD_CABLE_FLAG) $(SOPC_SYSID_FLAG) $(DOWNLOAD_JDI_FLAG) $(WRITE_GMON_OPTION) $(ELF); \ + fi + +# Delete the target of a rule if it has changed and its commands exit +# with a nonzero exit status. +.DELETE_ON_ERROR: + +# Rules for flash programming commands +PROGRAM_FLASH_SUFFIX := -program +PROGRAM_FLASH_TARGET := $(addsuffix $(PROGRAM_FLASH_SUFFIX), $(FLASH_FILES)) + +.PHONY : program-flash +program-flash : $(PROGRAM_FLASH_TARGET) + +.PHONY : $(PROGRAM_FLASH_TARGET) +$(PROGRAM_FLASH_TARGET) : flash + @if [ "$(FLASHPROG)" = "none" ]; \ + then \ + $(ECHO) Programming flash not supported; \ + else \ + $(ECHO) Info: Programming $(basename $@).flash; \ + if [ -z "$($(basename $@)_EPCS_FLAGS)" ]; \ + then \ + $(ECHO) $(FLASHPROG) $(SOPC_SYSID_FLAG) --base=$($(basename $@)_START) $(basename $@).flash; \ + $(FLASHPROG) $(DOWNLOAD_CABLE_FLAG) $(SOPC_SYSID_FLAG) --base=$($(basename $@)_START) $(basename $@).flash; \ + else \ + $(ECHO) $(FLASHPROG) $(SOPC_SYSID_FLAG) --epcs --base=$($(basename $@)_START) $(basename $@).flash; \ + $(FLASHPROG) $(DOWNLOAD_CABLE_FLAG) $(SOPC_SYSID_FLAG) --epcs --base=$($(basename $@)_START) $(basename $@).flash; \ + fi \ + fi + + +# Rules for simulating with an HDL Simulator [QSYS only] +ifeq ($(QSYS),1) +IP_MAKE_SIMSCRIPT := ip-make-simscript + +ifeq ($(VSIM),) +VSIM_EXE := "$(if $(VSIM_DIR),$(VSIM_DIR)/,)vsim" +ifeq ($(ENABLE_VSIM_GUI),1) +VSIM := $(VSIM_EXE) -gui +else +VSIM := $(VSIM_EXE) -c +endif # ENABLE_VSIM_GUI == 1 +endif # VSIM not set + +ifeq ($(SPD),) +ifneq ($(ABS_QUARTUS_PROJECT_DIR),) +ifneq ($(SOPC_NAME),) +SPD := $(ABS_QUARTUS_PROJECT_DIR)/$(SOPC_NAME)_tb.spd +endif # SOPC_NAME set +endif # ABS_QUARTUS_PROJECT_DIR set +endif # SPD == empty string + +ifeq ($(MSIM_SCRIPT),) +SIM_SCRIPT_DIR := $(RUNTIME_ROOT_DIR)/sim +MSIM_SCRIPT := $(SIM_SCRIPT_DIR)/mentor/msim_setup.tcl +endif # MSIM_SCRIPT == empty string + +ifeq ($(MAKE_VERSION),3.81) +ABS_MEM_INIT_DESCRIPTOR_FILE := $(abspath $(MEM_INIT_DESCRIPTOR_FILE)) +else +ABS_MEM_INIT_DESCRIPTOR_FILE := $(call adjust-path-mixed,$(shell pwd))/$(MEM_INIT_DESCRIPTOR_FILE) +endif + +$(MSIM_SCRIPT): $(SPD) $(MEM_INIT_DESCRIPTOR_FILE) +ifeq ($(SPD),) + $(error No SPD file specified. Ensure QUARTUS_PROJECT_DIR variable is set) +endif + @$(MKDIR) $(SIM_SCRIPT_DIR) + $(IP_MAKE_SIMSCRIPT) --spd=$(SPD) --spd=$(MEM_INIT_DESCRIPTOR_FILE) --output-directory=$(SIM_SCRIPT_DIR) + +VSIM_COMMAND = \ + cd $(dir $(MSIM_SCRIPT)) && \ + $(VSIM) -do "do $(notdir $(MSIM_SCRIPT)); ld; $(if $(VSIM_RUN_TIME),run ${VSIM_RUN_TIME};quit;)" + +.PHONY: sim +sim: $(MSIM_SCRIPT) mem_init_generate +ifeq ($(MSIM_SCRIPT),) + $(error MSIM_SCRIPT not set) +endif + $(VSIM_COMMAND) + +endif # QSYS == 1 + + +#------------------------------------------------------------------------------ +# ELF TARGET RULE +#------------------------------------------------------------------------------ +# Rule for constructing the executable elf file. +$(ELF) : $(APP_OBJS) $(LINKER_SCRIPT) $(APP_LDDEPS) + @$(ECHO) Info: Linking $@ + $(LD) $(APP_LDFLAGS) $(APP_CFLAGS) -o $@ $(filter-out $(CRT0),$(APP_OBJS)) $(APP_LIBS) $(APP_BSP_DEP_LIBS) +ifneq ($(DISABLE_ELFPATCH),1) + $(ELFPATCH) $@ $(ELF_PATCH_FLAG) +endif +ifneq ($(DISABLE_STACKREPORT),1) + @bash -c "$(STACKREPORT) $@" +endif + +$(OBJDUMP_NAME) : $(ELF) + @$(ECHO) Info: Creating $@ + $(OBJDUMP) $(OBJDUMP_FLAGS) $< >$@ + +# Rule for printing the name of the elf file +.PHONY: print-elf-name +print-elf-name: + @$(ECHO) $(ELF) + + diff --git a/software/qsys_tutorial_mem/create-this-app b/software/qsys_tutorial_mem/create-this-app new file mode 100644 index 0000000..b1515ad --- /dev/null +++ b/software/qsys_tutorial_mem/create-this-app @@ -0,0 +1,114 @@ +#!/bin/bash +# +# This script creates the hello_world_small application in this directory. + + +BSP_DIR=../qsys_tutorial_mem_bsp +QUARTUS_PROJECT_DIR=../../ +NIOS2_APP_GEN_ARGS="--elf-name qsys_tutorial_mem.elf --set APP_CFLAGS_OPTIMIZATION -Os --set OBJDUMP_INCLUDE_SOURCE 1 --src-files hello_world_small.c" + + +# First, check to see if $SOPC_KIT_NIOS2 environmental variable is set. +# This variable is required for the command line tools to execute correctly. +if [ -z "${SOPC_KIT_NIOS2}" ] +then + echo Required \$SOPC_KIT_NIOS2 Environmental Variable is not set! + exit 1 +fi + + +# Also make sure that the APP has not been created already. Check for +# existence of Makefile in the app directory +if [ -f ./Makefile ] +then + echo Application has already been created! Delete Makefile if you want to create a new application makefile + exit 1 +fi + + +# We are selecting hal_reduced_footprint bsp because it supports this application. +# Check to see if the hal_reduced_footprint has already been generated by checking for +# existence of the public.mk file. If not, we need to run +# create-this-bsp file to generate the bsp. +if [ ! -f ${BSP_DIR}/public.mk ]; then + # Since BSP doesn't exist, create the BSP + # Pass any command line arguments passed to this script to the BSP. + pushd ${BSP_DIR} >> /dev/null + ./create-this-bsp "$@" || { + echo "create-this-bsp failed" + exit 1 + } + popd >> /dev/null +fi + + +# Don't run make if create-this-app script is called with --no-make arg +SKIP_MAKE= +while [ $# -gt 0 ] +do + case "$1" in + --no-make) + SKIP_MAKE=1 + ;; + esac + shift +done + + +# Now we also need to go copy the sources for this application to the +# local directory. +find "${SOPC_KIT_NIOS2}/examples/software/hello_world_small/" -name '*.c' -or -name '*.h' -or -name 'hostfs*' | xargs -i cp -L {} ./ || { + echo "failed during copying example source files" + exit 1 +} + +find "${SOPC_KIT_NIOS2}/examples/software/hello_world_small/" -name 'readme.txt' -or -name 'Readme.txt' | xargs -i cp -L {} ./ || { + echo "failed copying readme file" +} + +if [ -d "${SOPC_KIT_NIOS2}/examples/software/hello_world_small/system" ] +then + cp -RL "${SOPC_KIT_NIOS2}/examples/software/hello_world_small/system" . || { + echo "failed during copying project support files" + exit 1 + } +fi + +chmod -R +w . || { + echo "failed during changing file permissions" + exit 1 +} + +cmd="nios2-app-generate-makefile --bsp-dir ${BSP_DIR} --set QUARTUS_PROJECT_DIR=${QUARTUS_PROJECT_DIR} ${NIOS2_APP_GEN_ARGS}" + +echo "create-this-app: Running \"${cmd}\"" +$cmd || { + echo "nios2-app-generate-makefile failed" + exit 1 +} + +if [ -z "$SKIP_MAKE" ]; then + cmd="make" + + echo "create-this-app: Running \"$cmd\"" + $cmd || { + echo "make failed" + exit 1 + } + + echo + echo "To download and run the application:" + echo " 1. Make sure the board is connected to the system." + echo " 2. Run 'nios2-configure-sof ' to configure the FPGA with the hardware design." + echo " 3. If you have a stdio device, run 'nios2-terminal' in a different shell." + echo " 4. Run 'make download-elf' from the application directory." + echo + echo "To debug the application:" + echo " Import the project into Nios II Software Build Tools for Eclipse." + echo " Refer to Nios II Software Build Tools for Eclipse Documentation for more information." + echo + echo -e "" +fi + + +exit 0 diff --git a/software/qsys_tutorial_mem/hello_world_small.c b/software/qsys_tutorial_mem/hello_world_small.c new file mode 100644 index 0000000..d43a936 --- /dev/null +++ b/software/qsys_tutorial_mem/hello_world_small.c @@ -0,0 +1,130 @@ +#include "sys/alt_stdio.h" +#include +#include "system.h" +#include "hex_out.h" +#include "sys_register.h" +#include "sys_memory.h" +#include "input_int.h" +#include "inst_decoder.h" + +#define ledrs (volatile int *) 0x00050a0 + +#define T_MS10 12500 //(10ms) + +void wait(unsigned int s) { + volatile i; + for (i = 0; i < T_MS10*s; i++); +} + +void init() { + registers_init(); + memory_init(); + clear_block(HEX0_3); clear_block(HEX4_5); clear_block(HEX6_7); + print_block("he", 2, HEX6_7); + print_block("lo", 2, HEX4_5); + print_block("you1", 4, HEX0_3); + wait(200); + clear_block(HEX0_3); clear_block(HEX4_5); clear_block(HEX6_7); +} + +char stack[5]; + +void store_value(){ + char buf[5]; + unsigned int memi = global_registers[Ssw_memi]; + memory_store(memi, Ssw_data); + sprintf(buf, "%02x", (unsigned char)memi); + print_block(buf, 2, HEX6_7); + print_block("--", 2, HEX4_5); + sprintf(buf, "%04d", global_registers[Ssw_data]); + print_block(buf, 4, HEX0_3); +} +void store_inst(){ + char inst; + char mem_index; + char reg_index; + struct InstRec inst_rec; + + // �K�v�ȏ��̎擾 + inst = global_registers[Ssw_inst]; + mem_index = global_registers[Ssw_memi]; + reg_index = global_registers[Ssw_regi]; + inst_rec.inst = (unsigned int)inst; + inst_rec.memi = (unsigned int)mem_index; + inst_rec.regi = (unsigned int)reg_index; + + // �X�g�A���� + inst_memory_store((unsigned int)global_registers[Spc], inst_rec); + global_registers[Spc]++; + + { + char buf[5]; + sprintf(buf, "%04d", inst_rec.inst); + print_block(buf, 4, HEX0_3); + sprintf(buf, "%02x", global_registers[Spc]); + print_block(buf, 2, HEX4_5); + } +} +void run_proc() { + volatile struct InstRec inst_rec; + + //print_block(" go ", 4, HEX0_3); + + global_registers[Spc] = 0; + print_block("pc", 2, HEX6_7); + do { + // pc�\�� + { + char buf[5]; + sprintf(buf, "%02x", global_registers[Spc]); + print_block(buf, 2, HEX4_5); + } + // ���߃t�F�b�` + inst_rec = inst_fetch(); + // ���߃f�R�[�h���s + inst_decode(inst_rec); + if ( global_registers[Ssw_run] ) wait(100); + }while( inst_rec.inst != INST_END ); + + //print_block(" end", 4, HEX0_3); +} + +void print_change_memory(unsigned int current_memory) { + char buf[5]; + sprintf(buf, "g %2d", current_memory); + print_block(buf, 4, HEX0_3); + print_block("an", 2, HEX4_5); + print_block("ch", 2, HEX6_7); + wait(200); + clear_block(HEX0_3); clear_block(HEX4_5); clear_block(HEX6_7); +} + +int main() +{ + init(); + while(1) { + // interrupt + in_int(); + + // event + if (PUSH_EVENT == PUSH_VALSTR) { + // �l�̃X�g�A + store_value(); + } + if (PUSH_EVENT == PUSH_INSSTR) { + // ���߂̃X�g�A + store_inst(); + } + if (PUSH_EVENT == PUSH_RUN) { + if (global_current_memory != (unsigned int)global_registers[Ssw_psel]) { + global_current_memory = (unsigned int)global_registers[Ssw_psel]; + print_change_memory(global_current_memory); + } + else { + // �v���O�������s + run_proc(); + } + } + } + return 0; +} diff --git a/software/qsys_tutorial_mem/hex_encoder.c b/software/qsys_tutorial_mem/hex_encoder.c new file mode 100644 index 0000000..ab4eca0 --- /dev/null +++ b/software/qsys_tutorial_mem/hex_encoder.c @@ -0,0 +1,205 @@ +/* + * hex_encoder.c + * + * Created on: 2016/11/17 + * Author: takayun + */ + +#include "hex_encoder.h" +#include + +void encodeNumHex(int hex_i, int num) { + char encoded = 0; + switch (num) { + case 0: + encoded = (char)0x40; // 100 0000 + break; + case 1: + encoded = (char)0xF9; // 111 1001 + break; + case 2: + encoded = (char)0x24; // 010 0100 + break; + case 3: + encoded = (char)0x30; // 011 0000 + break; + case 4: + encoded = (char)0x19; // 001 1001 + break; + case 5: + encoded = (char)0x12; // 001 0010 + break; + case 6: + encoded = (char)0x02; // 000 0010 + break; + case 7: + encoded = (char)0x58; // 101 1000 + break; + case 8: + encoded = (char)0x00; // 000 0000 + break; + case 9: + encoded = (char)0x10; // 001 0000 + break; + default: + encoded = 0; + break; + } + + switch (hex_i) { + case 0: + *hex0 = encoded; + break; + case 1: + *hex1 = encoded; + break; + case 2: + *hex2 = encoded; + break; + case 3: + *hex3 = encoded; + break; + case 4: + *hex4 = encoded; + break; + case 5: + *hex5 = encoded; + break; + case 6: + *hex6 = encoded; + break; + case 7: + *hex7 = encoded; + break; + default: + break; + } +} + +void encodeLatHex(int hex_i, char c) { + char encoded = 0; + + if (isdigit(c)) { + encodeNumHex(hex_i, c-'0'); + return; + } + + switch (c) { + case ' ': + encoded = (char)0xFF; // 111 1111 + break; + case '-': + encoded = (char)0x3F; // 011 1111 + break; + case 'a': + encoded = (char)0x08; // 000 1000 + break; + case 'b': + encoded = (char)0x03; // 000 0011 + break; + case 'c': + encoded = (char)0x27; // 010 0111 + break; + case 'd': + encoded = (char)0x21; // 010 0001 + break; + case 'e': + encoded = (char)0x06; // 000 0110 + break; + case 'f': + encoded = (char)0x0E; // 000 1110 + break; + case 'g': + encoded = (char)0x42; // 100 0010 + break; + case 'h': + encoded = (char)0x0B; // 000 1011 + break; + case 'i': + encoded = (char)0xFB; // 111 1011 + break; + case 'j': + encoded = (char)0x61; // 110 0001 + break; + case 'k': + encoded = (char)0x0A; // 000 1010 + break; + case 'l': + encoded = (char)0x47; // 100 0111 + break; + case 'm': + encoded = (char)0x48; // 100 1000 + break; + case 'n': + encoded = (char)0x2B; // 010 1011 + break; + case 'o': + encoded = (char)0x23; // 010 0011 + break; + case 'p': + encoded = (char)0x0C; // 000 1100 + break; + case 'q': + encoded = (char)0x04; // 000 0100 + break; + case 'r': + encoded = (char)0x2F; // 010 1111 + break; + case 's': + encoded = (char)0x13; // 001 0011 + break; + case 't': + encoded = (char)0x07; // 000 0111 + break; + case 'u': + encoded = (char)0x63; // 110 0011 + break; + case 'v': + encoded = (char)0x41; // 100 0001 + break; + case 'w': + encoded = (char)0x01; // 000 0001 + break; + case 'x': + encoded = (char)0x09; // 000 1001 + break; + case 'y': + encoded = (char)0x11; // 001 0001 + break; + case 'z': + encoded = (char)0x64; // 110 0100 + break; + default: + encoded = 0; + break; + } + + switch (hex_i) { + case 0: + *hex0 = encoded; + break; + case 1: + *hex1 = encoded; + break; + case 2: + *hex2 = encoded; + break; + case 3: + *hex3 = encoded; + break; + case 4: + *hex4 = encoded; + break; + case 5: + *hex5 = encoded; + break; + case 6: + *hex6 = encoded; + break; + case 7: + *hex7 = encoded; + break; + default: + break; + } +} diff --git a/software/qsys_tutorial_mem/hex_encoder.h b/software/qsys_tutorial_mem/hex_encoder.h new file mode 100644 index 0000000..d04473e --- /dev/null +++ b/software/qsys_tutorial_mem/hex_encoder.h @@ -0,0 +1,36 @@ +/* + * hex_encoder.h + * + * Created on: 2016/11/17 + * Author: takayun + */ + +#ifndef HEX_ENCODER_H_ +#define HEX_ENCODER_H_ + +/************************************************** + * Defines + **************************************************/ + +#define hex0 (volatile char *) 0x0005070 +#define hex1 (volatile char *) 0x0005060 +#define hex2 (volatile char *) 0x0005050 +#define hex3 (volatile char *) 0x0005040 +#define hex4 (volatile char *) 0x0005030 +#define hex5 (volatile char *) 0x0005020 +#define hex6 (volatile char *) 0x0005010 +#define hex7 (volatile char *) 0x0005000 + +/************************************************** + * Variables + **************************************************/ + + +/************************************************** + * Functions + **************************************************/ + +void encodeNumHex(int hex_i, int num); +void encodeLatHex(int hex_i, char c); + +#endif /* HEX_ENCODER_H_ */ diff --git a/software/qsys_tutorial_mem/hex_out.c b/software/qsys_tutorial_mem/hex_out.c new file mode 100644 index 0000000..83b37d0 --- /dev/null +++ b/software/qsys_tutorial_mem/hex_out.c @@ -0,0 +1,67 @@ +/* + * hex_out.c + * + * Created on: 2016/11/24 + * Author: takayun + */ +#include "hex_out.h" +#include "hex_encoder.h" +#include "system.h" + +void print_block(char * str, unsigned int size, enum BLOCK_N block_i) { + int i; + if (block_i == HEX0_3) { + if (size > 4) panic(); + for (i = 0; i < size; i++) { + encodeLatHex(i,str[size-1-i]); + } + } + else if (block_i == HEX4_5) { + if (size > 2) panic(); + for (i = 0; i < size; i++) { + encodeLatHex(i+4,str[size-1-i]); + } + } + else if (block_i == HEX6_7) { + if (size > 2) panic(); + for (i = 0; i < size; i++) { + encodeLatHex(i+6,str[size-1-i]); + } + } +} + +void clear_block(enum BLOCK_N block_i) { + if (block_i == HEX0_3) { + print_block(" ", 4, HEX0_3); + } + else if (block_i == HEX4_5) { + print_block(" ", 2, HEX4_5); + } + else if (block_i == HEX6_7) { + print_block(" ", 2, HEX6_7); + } +} + +void print_number(char num) { + int i; + char buf[5]; + char val; + for (i = 0; i < 4; i++) { + if (num < 0) { + buf[0] = '-'; + val = -num; + } else { + buf[0] = ' '; + val = num; + } + buf[1] = val/100%10 + '0'; + buf[2] = val/10%10 + '0'; + buf[3] = val%10 + '0'; + } + clear_block(HEX0_3); + print_block(buf, 4, HEX0_3); +} + + + + diff --git a/software/qsys_tutorial_mem/hex_out.h b/software/qsys_tutorial_mem/hex_out.h new file mode 100644 index 0000000..50d6868 --- /dev/null +++ b/software/qsys_tutorial_mem/hex_out.h @@ -0,0 +1,33 @@ +/* + * hex_out.h + * + * Created on: 2016/11/24 + * Author: takayun + */ + +#ifndef HEX_IO_H_ +#define HEX_IO_H_ + +/************************************************** + * Defines + **************************************************/ + +enum BLOCK_N { + HEX0_3, HEX4_5, HEX6_7 +}; + +/************************************************** + * Variables + **************************************************/ + + +/************************************************** + * Functions + **************************************************/ + +void print_block(char * str, unsigned int size, enum BLOCK_N block_i); +void clear_block(enum BLOCK_N block_i); +void print_number(char num); + + +#endif /* HEX_IO_H_ */ diff --git a/software/qsys_tutorial_mem/input_int.c b/software/qsys_tutorial_mem/input_int.c new file mode 100644 index 0000000..0838b2b --- /dev/null +++ b/software/qsys_tutorial_mem/input_int.c @@ -0,0 +1,67 @@ +/* + * input_int.c + * + * Created on: 2016/11/24 + * Author: takayun + */ +#include "input_int.h" +#include "sys_register.h" + +unsigned char PUSH_EVENT = PUSH_NONE; + +void in_int() { + push_int(); +} + +static void update_sw_reg(sw_t s) { + global_registers[Ssw_data] = (char)s.data.value; + global_registers[Ssw_inst] = (char)s.splited.instruction_code; + global_registers[Ssw_memi] = (char)s.splited.memory_index; + global_registers[Ssw_regi] = (char)s.splited.register_index; + global_registers[Ssw_psel] = (char)s.splited.program_selecter; + global_registers[Ssw_rw] = (char)s.splited.rw_mode; + global_registers[Ssw_run] = (char)s.splited.run_mode; +} + +enum PushEvent push_decode(char psw) { + switch(psw) { + case 0x3: + return PUSH_VALSTR; + break; + case 0x5: + return PUSH_INSSTR; + break; + case 0x6: + return PUSH_RUN; + break; + } + return PUSH_NONE; +} + +void push_int() { + static unsigned char status = 0; + static enum PushEvent event_code; + volatile sw_t s; + s.sw = *switches; + + switch (status) { + case 0: + PUSH_EVENT = PUSH_NONE; + if (*push_switches != 7) { + event_code = push_decode(*push_switches); + status = 1; + } + update_sw_reg(s); // �X�C�b�`���W�X�^�X�V + break; + case 1: + if (*push_switches == 7) status = 2; + break; + case 2: + PUSH_EVENT = event_code; + status = 0; + break; + default: + status = 0; + break; + } +} diff --git a/software/qsys_tutorial_mem/input_int.h b/software/qsys_tutorial_mem/input_int.h new file mode 100644 index 0000000..3cd8cba --- /dev/null +++ b/software/qsys_tutorial_mem/input_int.h @@ -0,0 +1,60 @@ +/* + * input_int.h + * + * Created on: 2016/11/24 + * Author: takayun + */ + +#ifndef SWITCHES_INT_H_ +#define SWITCHES_INT_H_ + +/************************************************** + * Defines + **************************************************/ + +#define switches (volatile int *) 0x0005090 +#define push_switches (volatile char *) 0x0005080 + +typedef union { + int sw; + struct { + unsigned int run_mode : 1; + unsigned int rw_mode : 1; + unsigned int program_selecter : 4; + unsigned int memory_index : 4; + unsigned int register_index : 4; + unsigned int instruction_code : 4; + } splited; + struct { + unsigned int : 10; + unsigned int value : 8; + } data; +} sw_t; + +enum PushEvent{ + PUSH_NONE, + PUSH_ANY, + PUSH_VALSTR, + PUSH_INSSTR, + PUSH_RUN +}; + +/************************************************** + * Variables + **************************************************/ + +extern unsigned char PUSH_EVENT; + +/************************************************** + * Functions + **************************************************/ + +/* Function: in_int + * Sammary: + * �S�Ă̓��͊��荞�݂��s�� + * */ +void in_int(); + +void push_int(); + +#endif /* SWITCHES_INT_H_ */ diff --git a/software/qsys_tutorial_mem/inst_decoder.c b/software/qsys_tutorial_mem/inst_decoder.c new file mode 100644 index 0000000..d864653 --- /dev/null +++ b/software/qsys_tutorial_mem/inst_decoder.c @@ -0,0 +1,109 @@ +/* + * inst_decoder.c + * + * Created on: 2016/11/25 + * Author: takayun + */ + +#include "inst_decoder.h" +#include "sys_memory.h" +#include "sys_register.h" +#include "hex_out.h" +#include + +struct InstRec inst_fetch(){ + return inst_memory_load((unsigned int)global_registers[Spc]++); +} + +void inst_decode(struct InstRec inst_rec){ + switch(inst_rec.inst) { + case INST_END: + break; + case INST_JUMP: + inst_jump(inst_rec.regi, inst_rec.memi); + break; + case INST_OUTPUT: + inst_output(inst_rec.regi, inst_rec.memi); + break; + case INST_LOAD: + inst_load(inst_rec.regi, inst_rec.memi); + break; + case INST_STORE: + inst_store(inst_rec.regi, inst_rec.memi); + break; + case INST_DELAY: + inst_delay(inst_rec.regi, inst_rec.memi); + break; + case INST_ADD: + inst_add(inst_rec.regi, inst_rec.memi); + break; + case INST_COMP: + inst_comp(inst_rec.regi, inst_rec.memi); + break; + case INST_JEQ: + inst_jeq(inst_rec.regi, inst_rec.memi); + break; + case INST_JNE: + inst_jne(inst_rec.regi, inst_rec.memi); + break; + case INST_JIEQ: + inst_jieq(inst_rec.regi, inst_rec.memi); + break; + case INST_JINE: + inst_jine(inst_rec.regi, inst_rec.memi); + break; + } +} + +void inst_jump(enum Register reg, unsigned char memory_index){ + global_registers[Spc]=global_registers[reg]+memory_index; +} +void inst_output(enum Register reg, unsigned char memory_index){ + //�������̒l��7�Z�O�ɕ\�� + char buf[5]; + memory_load(memory_index, Sseg); + sprintf(buf, "%04d", global_registers[Sseg]); + print_block(buf, 4, HEX0_3); +} +void inst_load(enum Register reg, unsigned char memory_index){ + memory_load(memory_index, reg); +} +void inst_store(enum Register reg, unsigned char memory_index){ + memory_store(memory_index, reg); +} +void inst_delay(enum Register reg, unsigned char memory_index){ + //���W�X�^�̒l*10ms�҂� +} +void inst_add(enum Register reg, unsigned char memory_index){ + global_registers[Sacc]+=global_registers[reg]; +} +void inst_comp(enum Register reg, unsigned char memory_index){ + if(global_registers[Sacc]==global_registers[reg]){ + global_registers[Sflg]=0; + } else if(global_registers[Sacc] > global_registers[reg]){ + global_registers[Sflg]=-1; + }else{ + global_registers[Sflg]=1; + } +} +void inst_jeq(enum Register reg, unsigned char memory_index){ + if(global_registers[Sflg]==global_registers[reg]){ + global_registers[Spc]++; + } +} +void inst_jne(enum Register reg, unsigned char memory_index){ + if(global_registers[Sflg]!=global_registers[reg]){ + global_registers[Spc]++; + } +} +void inst_jieq(char im, unsigned char memory_index){ + if(global_registers[Sflg]==im){ + global_registers[Spc]++; + } +} +void inst_jine(char im, unsigned char memory_index){ + if(global_registers[Sflg]!=im){ + global_registers[Spc]++; + } +} + diff --git a/software/qsys_tutorial_mem/inst_decoder.h b/software/qsys_tutorial_mem/inst_decoder.h new file mode 100644 index 0000000..9860750 --- /dev/null +++ b/software/qsys_tutorial_mem/inst_decoder.h @@ -0,0 +1,49 @@ +/* + * inst_decoder.h + * + * Created on: 2016/11/25 + * Author: takayun + */ + +#ifndef INST_DECODER_H_ +#define INST_DECODER_H_ + +#include "sys_register.h" + +#define INST_END 0x0 +#define INST_JUMP 0x1 +#define INST_OUTPUT 0x2 +#define INST_LOAD 0x3 +#define INST_STORE 0x4 +#define INST_DELAY 0x5 +#define INST_ADD 0x6 +#define INST_COMP 0x7 +#define INST_JEQ 0x8 +#define INST_JNE 0x9 +#define INST_JIEQ 0xA +#define INST_JINE 0xB + +struct InstRec { + unsigned int inst : 4; + unsigned int memi : 4; + unsigned int regi : 4; +}; + +struct InstRec inst_fetch(); + +void inst_decode(struct InstRec inst_rec); + +void inst_jump(enum Register reg, unsigned char memory_index); +void inst_output(enum Register reg, unsigned char memory_index); +void inst_load(enum Register reg, unsigned char memory_index); +void inst_store(enum Register reg, unsigned char memory_index); +void inst_delay(enum Register reg, unsigned char memory_index); +void inst_add(enum Register reg, unsigned char memory_index); +void inst_comp(enum Register reg, unsigned char memory_index); +void inst_jeq(enum Register reg, unsigned char memory_index); +void inst_jne(enum Register reg, unsigned char memory_index); +void inst_jieq(char im, unsigned char memory_index); +void inst_jine(char im, unsigned char memory_index); + + +#endif /* INST_DECODER_H_ */ diff --git a/software/qsys_tutorial_mem/obj/default/hello_world_small.d b/software/qsys_tutorial_mem/obj/default/hello_world_small.d new file mode 100644 index 0000000..b00655c --- /dev/null +++ b/software/qsys_tutorial_mem/obj/default/hello_world_small.d @@ -0,0 +1,17 @@ +obj/default/hello_world_small.o: hello_world_small.c \ + ../qsys_tutorial_mem_bsp//HAL/inc/sys/alt_stdio.h system.h hex_out.h \ + sys_register.h sys_memory.h inst_decoder.h input_int.h + +../qsys_tutorial_mem_bsp//HAL/inc/sys/alt_stdio.h: + +system.h: + +hex_out.h: + +sys_register.h: + +sys_memory.h: + +inst_decoder.h: + +input_int.h: diff --git a/software/qsys_tutorial_mem/obj/default/hello_world_small.o b/software/qsys_tutorial_mem/obj/default/hello_world_small.o new file mode 100644 index 0000000..cc4b941 --- /dev/null +++ b/software/qsys_tutorial_mem/obj/default/hello_world_small.o Binary files differ diff --git a/software/qsys_tutorial_mem/obj/default/hex_encoder.d b/software/qsys_tutorial_mem/obj/default/hex_encoder.d new file mode 100644 index 0000000..e913210 --- /dev/null +++ b/software/qsys_tutorial_mem/obj/default/hex_encoder.d @@ -0,0 +1,3 @@ +obj/default/hex_encoder.o: hex_encoder.c hex_encoder.h + +hex_encoder.h: diff --git a/software/qsys_tutorial_mem/obj/default/hex_encoder.o b/software/qsys_tutorial_mem/obj/default/hex_encoder.o new file mode 100644 index 0000000..323d9ee --- /dev/null +++ b/software/qsys_tutorial_mem/obj/default/hex_encoder.o Binary files differ diff --git a/software/qsys_tutorial_mem/obj/default/hex_out.d b/software/qsys_tutorial_mem/obj/default/hex_out.d new file mode 100644 index 0000000..1000db0 --- /dev/null +++ b/software/qsys_tutorial_mem/obj/default/hex_out.d @@ -0,0 +1,7 @@ +obj/default/hex_out.o: hex_out.c hex_out.h hex_encoder.h system.h + +hex_out.h: + +hex_encoder.h: + +system.h: diff --git a/software/qsys_tutorial_mem/obj/default/hex_out.o b/software/qsys_tutorial_mem/obj/default/hex_out.o new file mode 100644 index 0000000..b3f7c7f --- /dev/null +++ b/software/qsys_tutorial_mem/obj/default/hex_out.o Binary files differ diff --git a/software/qsys_tutorial_mem/obj/default/input_int.d b/software/qsys_tutorial_mem/obj/default/input_int.d new file mode 100644 index 0000000..25051be --- /dev/null +++ b/software/qsys_tutorial_mem/obj/default/input_int.d @@ -0,0 +1,5 @@ +obj/default/input_int.o: input_int.c input_int.h sys_register.h + +input_int.h: + +sys_register.h: diff --git a/software/qsys_tutorial_mem/obj/default/input_int.o b/software/qsys_tutorial_mem/obj/default/input_int.o new file mode 100644 index 0000000..dba96c1 --- /dev/null +++ b/software/qsys_tutorial_mem/obj/default/input_int.o Binary files differ diff --git a/software/qsys_tutorial_mem/obj/default/inst_decoder.d b/software/qsys_tutorial_mem/obj/default/inst_decoder.d new file mode 100644 index 0000000..3e61d10 --- /dev/null +++ b/software/qsys_tutorial_mem/obj/default/inst_decoder.d @@ -0,0 +1,10 @@ +obj/default/inst_decoder.o: inst_decoder.c inst_decoder.h sys_register.h \ + sys_memory.h hex_out.h + +inst_decoder.h: + +sys_register.h: + +sys_memory.h: + +hex_out.h: diff --git a/software/qsys_tutorial_mem/obj/default/inst_decoder.o b/software/qsys_tutorial_mem/obj/default/inst_decoder.o new file mode 100644 index 0000000..1536c61 --- /dev/null +++ b/software/qsys_tutorial_mem/obj/default/inst_decoder.o Binary files differ diff --git a/software/qsys_tutorial_mem/obj/default/sys_memory.d b/software/qsys_tutorial_mem/obj/default/sys_memory.d new file mode 100644 index 0000000..52d4dcd --- /dev/null +++ b/software/qsys_tutorial_mem/obj/default/sys_memory.d @@ -0,0 +1,10 @@ +obj/default/sys_memory.o: sys_memory.c system.h sys_memory.h \ + sys_register.h inst_decoder.h + +system.h: + +sys_memory.h: + +sys_register.h: + +inst_decoder.h: diff --git a/software/qsys_tutorial_mem/obj/default/sys_memory.o b/software/qsys_tutorial_mem/obj/default/sys_memory.o new file mode 100644 index 0000000..ccb6584 --- /dev/null +++ b/software/qsys_tutorial_mem/obj/default/sys_memory.o Binary files differ diff --git a/software/qsys_tutorial_mem/obj/default/sys_register.d b/software/qsys_tutorial_mem/obj/default/sys_register.d new file mode 100644 index 0000000..ec29589 --- /dev/null +++ b/software/qsys_tutorial_mem/obj/default/sys_register.d @@ -0,0 +1,3 @@ +obj/default/sys_register.o: sys_register.c sys_register.h + +sys_register.h: diff --git a/software/qsys_tutorial_mem/obj/default/sys_register.o b/software/qsys_tutorial_mem/obj/default/sys_register.o new file mode 100644 index 0000000..2dd0378 --- /dev/null +++ b/software/qsys_tutorial_mem/obj/default/sys_register.o Binary files differ diff --git a/software/qsys_tutorial_mem/obj/default/system.d b/software/qsys_tutorial_mem/obj/default/system.d new file mode 100644 index 0000000..6c906ae --- /dev/null +++ b/software/qsys_tutorial_mem/obj/default/system.d @@ -0,0 +1,5 @@ +obj/default/system.o: system.c system.h hex_out.h + +system.h: + +hex_out.h: diff --git a/software/qsys_tutorial_mem/obj/default/system.o b/software/qsys_tutorial_mem/obj/default/system.o new file mode 100644 index 0000000..0524d81 --- /dev/null +++ b/software/qsys_tutorial_mem/obj/default/system.o Binary files differ diff --git a/software/qsys_tutorial_mem/qsys_tutorial_mem.elf b/software/qsys_tutorial_mem/qsys_tutorial_mem.elf new file mode 100644 index 0000000..e3a5c54 --- /dev/null +++ b/software/qsys_tutorial_mem/qsys_tutorial_mem.elf Binary files differ diff --git a/software/qsys_tutorial_mem/qsys_tutorial_mem.map b/software/qsys_tutorial_mem/qsys_tutorial_mem.map new file mode 100644 index 0000000..148d946 --- /dev/null +++ b/software/qsys_tutorial_mem/qsys_tutorial_mem.map @@ -0,0 +1,753 @@ +Archive member included because of file (symbol) + +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-divmod.o) + obj/default/hex_out.o (__divsi3) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-mul.o) + obj/default/hello_world_small.o (__mulsi3) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-ctype_.o) + obj/default/hex_encoder.o (__ctype_ptr) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-sprintf.o) + obj/default/hello_world_small.o (sprintf) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-vfprintf.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-sprintf.o) (___vfprintf_internal_r) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-fvwrite_small_str.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-sprintf.o) (__sfvwrite_small_str) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-impure.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-sprintf.o) (_impure_ptr) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-memmove.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-fvwrite_small_str.o) (memmove) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-strlen.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-vfprintf.o) (strlen) +../qsys_tutorial_mem_bsp/\libhal_bsp.a(alt_load.o) + ../qsys_tutorial_mem_bsp//obj/HAL/src/crt0.o (alt_load) +../qsys_tutorial_mem_bsp/\libhal_bsp.a(alt_main.o) + ../qsys_tutorial_mem_bsp//obj/HAL/src/crt0.o (alt_main) +../qsys_tutorial_mem_bsp/\libhal_bsp.a(alt_sys_init.o) + ../qsys_tutorial_mem_bsp/\libhal_bsp.a(alt_main.o) (alt_sys_init) +../qsys_tutorial_mem_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) + ../qsys_tutorial_mem_bsp/\libhal_bsp.a(alt_load.o) (alt_dcache_flush_all) +../qsys_tutorial_mem_bsp/\libhal_bsp.a(alt_icache_flush_all.o) + ../qsys_tutorial_mem_bsp/\libhal_bsp.a(alt_load.o) (alt_icache_flush_all) +../qsys_tutorial_mem_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) + ../qsys_tutorial_mem_bsp/\libhal_bsp.a(alt_sys_init.o) (altera_nios2_qsys_irq_init) + +Allocating common symbols +Common symbol size file + +stack 0x5 obj/default/hello_world_small.o +global_registers 0xf obj/default/sys_register.o + +Memory Configuration + +Name Origin Length Attributes +reset 0x00000000 0x00000020 +onchip_memory 0x00000020 0x00003fe0 +*default* 0x00000000 0xffffffff + +Linker script and memory map + +LOAD ../qsys_tutorial_mem_bsp//obj/HAL/src/crt0.o + 0x0000000c exit = _exit +LOAD obj/default/hello_world_small.o +LOAD obj/default/hex_encoder.o +LOAD obj/default/hex_out.o +LOAD obj/default/input_int.o +LOAD obj/default/inst_decoder.o +LOAD obj/default/sys_memory.o +LOAD obj/default/sys_register.o +LOAD obj/default/system.o +LOAD c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libstdc++.a +LOAD c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libm.a +LOAD c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a +START GROUP +LOAD c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a +LOAD c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a +LOAD ../qsys_tutorial_mem_bsp/\libhal_bsp.a +END GROUP +LOAD c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a + 0x00000000 __alt_mem_onchip_memory = 0x0 + +.entry 0x00000000 0x20 + *(.entry) + .entry 0x00000000 0x20 ../qsys_tutorial_mem_bsp//obj/HAL/src/crt0.o + 0x00000000 __reset + 0x0000000c _exit + +.exceptions 0x00000020 0x0 + 0x00000020 PROVIDE (__ram_exceptions_start, ABSOLUTE (.)) + 0x00000020 . = ALIGN (0x20) + *(.irq) + *(.exceptions.entry.label) + *(.exceptions.entry.user) + *(.exceptions.entry) + *(.exceptions.irqtest.user) + *(.exceptions.irqtest) + *(.exceptions.irqhandler.user) + *(.exceptions.irqhandler) + *(.exceptions.irqreturn.user) + *(.exceptions.irqreturn) + *(.exceptions.notirq.label) + *(.exceptions.notirq.user) + *(.exceptions.notirq) + *(.exceptions.soft.user) + *(.exceptions.soft) + *(.exceptions.unknown.user) + *(.exceptions.unknown) + *(.exceptions.exit.label) + *(.exceptions.exit.user) + *(.exceptions.exit) + *(.exceptions) + 0x00000020 PROVIDE (__ram_exceptions_end, ABSOLUTE (.)) + 0x00000020 PROVIDE (__flash_exceptions_start, LOADADDR (.exceptions)) + +.text 0x00000020 0x1d1c + 0x00000020 PROVIDE (stext, ABSOLUTE (.)) + *(.interp) + *(.hash) + *(.dynsym) + *(.dynstr) + *(.gnu.version) + *(.gnu.version_d) + *(.gnu.version_r) + *(.rel.init) + *(.rela.init) + *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) + *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) + *(.rel.fini) + *(.rela.fini) + *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) + *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) + *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) + *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) + *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) + *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) + *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) + *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) + *(.rel.ctors) + *(.rela.ctors) + *(.rel.dtors) + *(.rela.dtors) + *(.rel.got) + *(.rela.got) + *(.rel.sdata .rel.sdata.* .rel.gnu.linkonce.s.*) + *(.rela.sdata .rela.sdata.* .rela.gnu.linkonce.s.*) + *(.rel.sbss .rel.sbss.* .rel.gnu.linkonce.sb.*) + *(.rela.sbss .rela.sbss.* .rela.gnu.linkonce.sb.*) + *(.rel.sdata2 .rel.sdata2.* .rel.gnu.linkonce.s2.*) + *(.rela.sdata2 .rela.sdata2.* .rela.gnu.linkonce.s2.*) + *(.rel.sbss2 .rel.sbss2.* .rel.gnu.linkonce.sb2.*) + *(.rela.sbss2 .rela.sbss2.* .rela.gnu.linkonce.sb2.*) + *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) + *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) + *(.rel.plt) + *(.rela.plt) + *(.rel.dyn) + *(.init) + *(.plt) + *(.text .stub .text.* .gnu.linkonce.t.*) + .text 0x00000020 0x3c ../qsys_tutorial_mem_bsp//obj/HAL/src/crt0.o + 0x00000020 _start + .text 0x0000005c 0x408 obj/default/hello_world_small.o + 0x0000005c wait + 0x00000098 print_change_memory + 0x00000130 run_proc + 0x000001d0 store_inst + 0x000002a0 store_value + 0x00000344 init + 0x000003e8 main + .text 0x00000464 0x3b8 obj/default/hex_encoder.o + 0x00000464 encodeNumHex + 0x00000588 encodeLatHex + .text 0x0000081c 0x228 obj/default/hex_out.o + 0x0000081c print_block + 0x000008f8 clear_block + 0x00000948 print_number + .text 0x00000a44 0x180 obj/default/input_int.o + 0x00000a44 push_decode + 0x00000a84 push_int + 0x00000bc0 in_int + .text 0x00000bc4 0x334 obj/default/inst_decoder.o + 0x00000bc4 inst_jump + 0x00000be0 inst_delay + 0x00000be4 inst_add + 0x00000c04 inst_comp + 0x00000c3c inst_jeq + 0x00000c64 inst_jne + 0x00000c8c inst_jieq + 0x00000cb8 inst_jine + 0x00000ce4 inst_store + 0x00000cf4 inst_load + 0x00000d04 inst_output + 0x00000d50 inst_fetch + 0x00000d88 inst_decode + .text 0x00000ef8 0x220 obj/default/sys_memory.o + 0x00000ef8 memory_init + 0x00000f3c inst_memory_store + 0x00000fbc inst_memory_load + 0x00001038 memory_load + 0x000010a8 memory_store + .text 0x00001118 0x1c obj/default/sys_register.o + 0x00001118 registers_init + .text 0x00001134 0x2c obj/default/system.o + 0x00001134 panic + .text 0x00001160 0x14c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-divmod.o) + 0x000011dc __divsi3 + 0x0000123c __modsi3 + 0x0000129c __udivsi3 + 0x000012a4 __umodsi3 + .text 0x000012ac 0x38 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-mul.o) + 0x000012ac __mulsi3 + .text 0x000012e4 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-ctype_.o) + .text 0x000012e4 0xf4 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-sprintf.o) + 0x000012e4 sprintf + 0x00001368 _sprintf_r + .text 0x000013d8 0x740 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-vfprintf.o) + 0x00001458 ___vfprintf_internal_r + 0x00001af4 __vfprintf_internal + .text 0x00001b18 0xb8 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-fvwrite_small_str.o) + 0x00001b18 __sfvwrite_small_str + .text 0x00001bd0 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-impure.o) + .text 0x00001bd0 0x60 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-memmove.o) + 0x00001bd0 memmove + .text 0x00001c30 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-strlen.o) + 0x00001c30 strlen + .text 0x00001c50 0x8c ../qsys_tutorial_mem_bsp/\libhal_bsp.a(alt_load.o) + 0x00001c70 alt_load + .text 0x00001cdc 0x2c ../qsys_tutorial_mem_bsp/\libhal_bsp.a(alt_main.o) + 0x00001cdc alt_main + .text 0x00001d08 0x24 ../qsys_tutorial_mem_bsp/\libhal_bsp.a(alt_sys_init.o) + 0x00001d08 alt_sys_init + 0x00001d0c alt_irq_init + .text 0x00001d2c 0x4 ../qsys_tutorial_mem_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) + 0x00001d2c alt_dcache_flush_all + .text 0x00001d30 0x4 ../qsys_tutorial_mem_bsp/\libhal_bsp.a(alt_icache_flush_all.o) + 0x00001d30 alt_icache_flush_all + .text 0x00001d34 0x8 ../qsys_tutorial_mem_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) + 0x00001d34 altera_nios2_qsys_irq_init + *(.gnu.warning.*) + *(.fini) + 0x00001d3c PROVIDE (__etext, ABSOLUTE (.)) + 0x00001d3c PROVIDE (_etext, ABSOLUTE (.)) + 0x00001d3c PROVIDE (etext, ABSOLUTE (.)) + *(.eh_frame_hdr) + 0x00001d3c . = ALIGN (0x4) + 0x00001d3c PROVIDE (__preinit_array_start, ABSOLUTE (.)) + *(.preinit_array) + 0x00001d3c PROVIDE (__preinit_array_end, ABSOLUTE (.)) + 0x00001d3c PROVIDE (__init_array_start, ABSOLUTE (.)) + *(.init_array) + 0x00001d3c PROVIDE (__init_array_end, ABSOLUTE (.)) + 0x00001d3c PROVIDE (__fini_array_start, ABSOLUTE (.)) + *(.fini_array) + 0x00001d3c PROVIDE (__fini_array_end, ABSOLUTE (.)) + *(.eh_frame) + *(.gcc_except_table) + *(.dynamic) + 0x00001d3c PROVIDE (__CTOR_LIST__, ABSOLUTE (.)) + *(.ctors) + *(SORT(.ctors.*)) + 0x00001d3c PROVIDE (__CTOR_END__, ABSOLUTE (.)) + 0x00001d3c PROVIDE (__DTOR_LIST__, ABSOLUTE (.)) + *(.dtors) + *(SORT(.dtors.*)) + 0x00001d3c PROVIDE (__DTOR_END__, ABSOLUTE (.)) + *(.jcr) + 0x00001d3c . = ALIGN (0x4) + +.rodata 0x00001d3c 0x2d0 + 0x00001d3c PROVIDE (__ram_rodata_start, ABSOLUTE (.)) + 0x00001d3c . = ALIGN (0x4) + *(.rodata .rodata.* .gnu.linkonce.r.*) + .rodata.str1.4 + 0x00001d3c 0x35 obj/default/hello_world_small.o + 0x38 (size before relaxing) + *fill* 0x00001d71 0x3 00 + .rodata.str1.4 + 0x00001d74 0xb obj/default/hex_out.o + 0xc (size before relaxing) + .rodata.str1.4 + 0x00000000 0x8 obj/default/inst_decoder.o + *fill* 0x00001d7f 0x1 00 + .rodata.str1.4 + 0x00001d80 0x8 obj/default/system.o + .rodata 0x00001d88 0x281 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-ctype_.o) + 0x00001d88 _ctype_ + *(.rodata1) + 0x0000200c . = ALIGN (0x4) + *fill* 0x00002009 0x3 00 + 0x0000200c PROVIDE (__ram_rodata_end, ABSOLUTE (.)) + 0x00001d3c PROVIDE (__flash_rodata_start, LOADADDR (.rodata)) + +.rwdata 0x0000200c 0xf0 load address 0x000020fc + 0x0000200c PROVIDE (__ram_rwdata_start, ABSOLUTE (.)) + 0x0000200c . = ALIGN (0x4) + *(.got.plt) + *(.got) + *(.data1) + *(.data .data.* .gnu.linkonce.d.*) + .data 0x0000200c 0x0 ../qsys_tutorial_mem_bsp//obj/HAL/src/crt0.o + .data 0x0000200c 0x0 obj/default/hello_world_small.o + .data 0x0000200c 0x0 obj/default/hex_encoder.o + .data 0x0000200c 0x0 obj/default/hex_out.o + .data 0x0000200c 0x0 obj/default/input_int.o + .data 0x0000200c 0x0 obj/default/inst_decoder.o + .data 0x0000200c 0x0 obj/default/sys_memory.o + .data 0x0000200c 0x0 obj/default/sys_register.o + .data 0x0000200c 0x0 obj/default/system.o + .data 0x0000200c 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-divmod.o) + .data 0x0000200c 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-mul.o) + .data 0x0000200c 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-ctype_.o) + .data 0x0000200c 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-sprintf.o) + .data 0x0000200c 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-vfprintf.o) + .data 0x0000200c 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-fvwrite_small_str.o) + .data 0x0000200c 0xe0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-impure.o) + .data 0x000020ec 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-memmove.o) + .data 0x000020ec 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-strlen.o) + .data 0x000020ec 0x0 ../qsys_tutorial_mem_bsp/\libhal_bsp.a(alt_load.o) + .data 0x000020ec 0x0 ../qsys_tutorial_mem_bsp/\libhal_bsp.a(alt_main.o) + .data 0x000020ec 0x0 ../qsys_tutorial_mem_bsp/\libhal_bsp.a(alt_sys_init.o) + .data 0x000020ec 0x0 ../qsys_tutorial_mem_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) + .data 0x000020ec 0x0 ../qsys_tutorial_mem_bsp/\libhal_bsp.a(alt_icache_flush_all.o) + .data 0x000020ec 0x0 ../qsys_tutorial_mem_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) + 0x0000a0ec _gp = ABSOLUTE ((. + 0x8000)) + 0x0000a0ec PROVIDE (gp, _gp) + *(.rwdata .rwdata.*) + *(.sdata .sdata.* .gnu.linkonce.s.*) + .sdata 0x000020ec 0x4 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-ctype_.o) + 0x000020ec __ctype_ptr + .sdata 0x000020f0 0x8 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-impure.o) + 0x000020f0 _impure_ptr + 0x000020f4 _global_impure_ptr + .sdata 0x000020f8 0x4 ../qsys_tutorial_mem_bsp/\libhal_bsp.a(alt_sys_init.o) + 0x000020f8 jtag_uart + *(.sdata2 .sdata2.* .gnu.linkonce.s2.*) + 0x000020fc . = ALIGN (0x4) + 0x000020fc _edata = ABSOLUTE (.) + 0x000020fc PROVIDE (edata, ABSOLUTE (.)) + 0x000020fc PROVIDE (__ram_rwdata_end, ABSOLUTE (.)) + 0x000020fc PROVIDE (__flash_rwdata_start, LOADADDR (.rwdata)) + +.bss 0x000021ec 0x174 + 0x000021ec __bss_start = ABSOLUTE (.) + 0x000021ec PROVIDE (__sbss_start, ABSOLUTE (.)) + 0x000021ec PROVIDE (___sbss_start, ABSOLUTE (.)) + *(.dynsbss) + *(.sbss .sbss.* .gnu.linkonce.sb.*) + .sbss 0x000021ec 0x5 obj/default/hello_world_small.o + 0x000021ec stack + *fill* 0x000021f1 0x3 00 + .sbss 0x000021f4 0xc obj/default/input_int.o + 0x000021f4 PUSH_EVENT + .sbss 0x00002200 0x4 obj/default/sys_memory.o + 0x00002200 global_current_memory + .sbss 0x00002204 0xc ../qsys_tutorial_mem_bsp/\libhal_bsp.a(alt_main.o) + 0x00002204 alt_argc + 0x00002208 alt_argv + 0x0000220c alt_envp + *(.sbss2 .sbss2.* .gnu.linkonce.sb2.*) + *(.scommon) + 0x00002210 PROVIDE (__sbss_end, ABSOLUTE (.)) + 0x00002210 PROVIDE (___sbss_end, ABSOLUTE (.)) + *(.dynbss) + *(.bss .bss.* .gnu.linkonce.b.*) + .bss 0x00002210 0x0 ../qsys_tutorial_mem_bsp//obj/HAL/src/crt0.o + .bss 0x00002210 0x0 obj/default/hello_world_small.o + .bss 0x00002210 0x0 obj/default/hex_encoder.o + .bss 0x00002210 0x0 obj/default/hex_out.o + .bss 0x00002210 0x0 obj/default/input_int.o + .bss 0x00002210 0x0 obj/default/inst_decoder.o + .bss 0x00002210 0x140 obj/default/sys_memory.o + .bss 0x00002350 0x0 obj/default/sys_register.o + .bss 0x00002350 0x0 obj/default/system.o + .bss 0x00002350 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-divmod.o) + .bss 0x00002350 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-mul.o) + .bss 0x00002350 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-ctype_.o) + .bss 0x00002350 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-sprintf.o) + .bss 0x00002350 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-vfprintf.o) + .bss 0x00002350 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-fvwrite_small_str.o) + .bss 0x00002350 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-impure.o) + .bss 0x00002350 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-memmove.o) + .bss 0x00002350 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-strlen.o) + .bss 0x00002350 0x0 ../qsys_tutorial_mem_bsp/\libhal_bsp.a(alt_load.o) + .bss 0x00002350 0x0 ../qsys_tutorial_mem_bsp/\libhal_bsp.a(alt_main.o) + .bss 0x00002350 0x0 ../qsys_tutorial_mem_bsp/\libhal_bsp.a(alt_sys_init.o) + .bss 0x00002350 0x0 ../qsys_tutorial_mem_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) + .bss 0x00002350 0x0 ../qsys_tutorial_mem_bsp/\libhal_bsp.a(alt_icache_flush_all.o) + .bss 0x00002350 0x0 ../qsys_tutorial_mem_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) + *(COMMON) + COMMON 0x00002350 0xf obj/default/sys_register.o + 0x00002350 global_registers + 0x00002360 . = ALIGN (0x4) + *fill* 0x0000235f 0x1 00 + 0x00002360 __bss_end = ABSOLUTE (.) + +.onchip_memory 0x00002360 0x0 + 0x00002360 PROVIDE (_alt_partition_onchip_memory_start, ABSOLUTE (.)) + *(.onchip_memory. onchip_memory.*) + 0x00002360 . = ALIGN (0x4) + 0x00002360 PROVIDE (_alt_partition_onchip_memory_end, ABSOLUTE (.)) + 0x00002360 _end = ABSOLUTE (.) + 0x00002360 end = ABSOLUTE (.) + 0x00002360 __alt_stack_base = ABSOLUTE (.) + 0x00002360 PROVIDE (_alt_partition_onchip_memory_load_addr, LOADADDR (.onchip_memory)) + +.stab + *(.stab) + +.stabstr + *(.stabstr) + +.stab.excl + *(.stab.excl) + +.stab.exclstr + *(.stab.exclstr) + +.stab.index + *(.stab.index) + +.stab.indexstr + *(.stab.indexstr) + +.comment 0x00000000 0x26 + *(.comment) + .comment 0x00000000 0x26 obj/default/hello_world_small.o + 0x27 (size before relaxing) + .comment 0x00000000 0x27 obj/default/hex_encoder.o + .comment 0x00000000 0x27 obj/default/hex_out.o + .comment 0x00000000 0x27 obj/default/input_int.o + .comment 0x00000000 0x27 obj/default/inst_decoder.o + .comment 0x00000000 0x27 obj/default/sys_memory.o + .comment 0x00000000 0x27 obj/default/sys_register.o + .comment 0x00000000 0x27 obj/default/system.o + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-divmod.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-mul.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-ctype_.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-sprintf.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-vfprintf.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-fvwrite_small_str.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-impure.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-memmove.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-strlen.o) + .comment 0x00000000 0x27 ../qsys_tutorial_mem_bsp/\libhal_bsp.a(alt_load.o) + .comment 0x00000000 0x27 ../qsys_tutorial_mem_bsp/\libhal_bsp.a(alt_main.o) + .comment 0x00000000 0x27 ../qsys_tutorial_mem_bsp/\libhal_bsp.a(alt_sys_init.o) + .comment 0x00000000 0x27 ../qsys_tutorial_mem_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) + .comment 0x00000000 0x27 ../qsys_tutorial_mem_bsp/\libhal_bsp.a(alt_icache_flush_all.o) + .comment 0x00000000 0x27 ../qsys_tutorial_mem_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) + +.debug + *(.debug) + +.line + *(.line) + +.debug_srcinfo + *(.debug_srcinfo) + +.debug_sfnames + *(.debug_sfnames) + +.debug_aranges 0x00000000 0x2c8 + *(.debug_aranges) + .debug_aranges + 0x00000000 0x28 ../qsys_tutorial_mem_bsp//obj/HAL/src/crt0.o + .debug_aranges + 0x00000028 0x20 obj/default/hello_world_small.o + .debug_aranges + 0x00000048 0x20 obj/default/hex_encoder.o + .debug_aranges + 0x00000068 0x20 obj/default/hex_out.o + .debug_aranges + 0x00000088 0x20 obj/default/input_int.o + .debug_aranges + 0x000000a8 0x20 obj/default/inst_decoder.o + .debug_aranges + 0x000000c8 0x20 obj/default/sys_memory.o + .debug_aranges + 0x000000e8 0x20 obj/default/sys_register.o + .debug_aranges + 0x00000108 0x20 obj/default/system.o + .debug_aranges + 0x00000128 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-divmod.o) + .debug_aranges + 0x00000148 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-mul.o) + .debug_aranges + 0x00000168 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-sprintf.o) + .debug_aranges + 0x00000188 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-vfprintf.o) + .debug_aranges + 0x000001a8 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-fvwrite_small_str.o) + .debug_aranges + 0x000001c8 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-memmove.o) + .debug_aranges + 0x000001e8 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-strlen.o) + .debug_aranges + 0x00000208 0x20 ../qsys_tutorial_mem_bsp/\libhal_bsp.a(alt_load.o) + .debug_aranges + 0x00000228 0x20 ../qsys_tutorial_mem_bsp/\libhal_bsp.a(alt_main.o) + .debug_aranges + 0x00000248 0x20 ../qsys_tutorial_mem_bsp/\libhal_bsp.a(alt_sys_init.o) + .debug_aranges + 0x00000268 0x20 ../qsys_tutorial_mem_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) + .debug_aranges + 0x00000288 0x20 ../qsys_tutorial_mem_bsp/\libhal_bsp.a(alt_icache_flush_all.o) + .debug_aranges + 0x000002a8 0x20 ../qsys_tutorial_mem_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) + +.debug_pubnames + 0x00000000 0x5b9 + *(.debug_pubnames) + .debug_pubnames + 0x00000000 0x7b obj/default/hello_world_small.o + .debug_pubnames + 0x0000007b 0x34 obj/default/hex_encoder.o + .debug_pubnames + 0x000000af 0x43 obj/default/hex_out.o + .debug_pubnames + 0x000000f2 0x49 obj/default/input_int.o + .debug_pubnames + 0x0000013b 0xcc obj/default/inst_decoder.o + .debug_pubnames + 0x00000207 0x88 obj/default/sys_memory.o + .debug_pubnames + 0x0000028f 0x3a obj/default/sys_register.o + .debug_pubnames + 0x000002c9 0x1c obj/default/system.o + .debug_pubnames + 0x000002e5 0x48 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-divmod.o) + .debug_pubnames + 0x0000032d 0x1f c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-mul.o) + .debug_pubnames + 0x0000034c 0x2e c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-ctype_.o) + .debug_pubnames + 0x0000037a 0x2d c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-sprintf.o) + .debug_pubnames + 0x000003a7 0x45 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-vfprintf.o) + .debug_pubnames + 0x000003ec 0x2b c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-fvwrite_small_str.o) + .debug_pubnames + 0x00000417 0x39 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-impure.o) + .debug_pubnames + 0x00000450 0x1e c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-memmove.o) + .debug_pubnames + 0x0000046e 0x1d c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-strlen.o) + .debug_pubnames + 0x0000048b 0x1f ../qsys_tutorial_mem_bsp/\libhal_bsp.a(alt_load.o) + .debug_pubnames + 0x000004aa 0x46 ../qsys_tutorial_mem_bsp/\libhal_bsp.a(alt_main.o) + .debug_pubnames + 0x000004f0 0x42 ../qsys_tutorial_mem_bsp/\libhal_bsp.a(alt_sys_init.o) + .debug_pubnames + 0x00000532 0x2b ../qsys_tutorial_mem_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) + .debug_pubnames + 0x0000055d 0x2b ../qsys_tutorial_mem_bsp/\libhal_bsp.a(alt_icache_flush_all.o) + .debug_pubnames + 0x00000588 0x31 ../qsys_tutorial_mem_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) + +.debug_info 0x00000000 0x39d5 + *(.debug_info .gnu.linkonce.wi.*) + .debug_info 0x00000000 0x81 ../qsys_tutorial_mem_bsp//obj/HAL/src/crt0.o + .debug_info 0x00000081 0x28d obj/default/hello_world_small.o + .debug_info 0x0000030e 0xd2 obj/default/hex_encoder.o + .debug_info 0x000003e0 0x145 obj/default/hex_out.o + .debug_info 0x00000525 0x245 obj/default/input_int.o + .debug_info 0x0000076a 0x526 obj/default/inst_decoder.o + .debug_info 0x00000c90 0x272 obj/default/sys_memory.o + .debug_info 0x00000f02 0x7d obj/default/sys_register.o + .debug_info 0x00000f7f 0x3a obj/default/system.o + .debug_info 0x00000fb9 0x21c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-divmod.o) + .debug_info 0x000011d5 0xf3 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-mul.o) + .debug_info 0x000012c8 0xa0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-ctype_.o) + .debug_info 0x00001368 0x7e7 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-sprintf.o) + .debug_info 0x00001b4f 0x9b6 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-vfprintf.o) + .debug_info 0x00002505 0x75f c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-fvwrite_small_str.o) + .debug_info 0x00002c64 0x636 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-impure.o) + .debug_info 0x0000329a 0x102 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-memmove.o) + .debug_info 0x0000339c 0xc2 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-strlen.o) + .debug_info 0x0000345e 0x12e ../qsys_tutorial_mem_bsp/\libhal_bsp.a(alt_load.o) + .debug_info 0x0000358c 0x125 ../qsys_tutorial_mem_bsp/\libhal_bsp.a(alt_main.o) + .debug_info 0x000036b1 0x17d ../qsys_tutorial_mem_bsp/\libhal_bsp.a(alt_sys_init.o) + .debug_info 0x0000382e 0x8d ../qsys_tutorial_mem_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) + .debug_info 0x000038bb 0x8d ../qsys_tutorial_mem_bsp/\libhal_bsp.a(alt_icache_flush_all.o) + .debug_info 0x00003948 0x8d ../qsys_tutorial_mem_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) + +.debug_abbrev 0x00000000 0x13f4 + *(.debug_abbrev) + .debug_abbrev 0x00000000 0x12 ../qsys_tutorial_mem_bsp//obj/HAL/src/crt0.o + .debug_abbrev 0x00000012 0x145 obj/default/hello_world_small.o + .debug_abbrev 0x00000157 0x9e obj/default/hex_encoder.o + .debug_abbrev 0x000001f5 0xc7 obj/default/hex_out.o + .debug_abbrev 0x000002bc 0x185 obj/default/input_int.o + .debug_abbrev 0x00000441 0x186 obj/default/inst_decoder.o + .debug_abbrev 0x000005c7 0x13d obj/default/sys_memory.o + .debug_abbrev 0x00000704 0x6f obj/default/sys_register.o + .debug_abbrev 0x00000773 0x27 obj/default/system.o + .debug_abbrev 0x0000079a 0xe0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-divmod.o) + .debug_abbrev 0x0000087a 0x7b c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-mul.o) + .debug_abbrev 0x000008f5 0x61 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-ctype_.o) + .debug_abbrev 0x00000956 0x179 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-sprintf.o) + .debug_abbrev 0x00000acf 0x263 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-vfprintf.o) + .debug_abbrev 0x00000d32 0x184 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-fvwrite_small_str.o) + .debug_abbrev 0x00000eb6 0x13f c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-impure.o) + .debug_abbrev 0x00000ff5 0xa8 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-memmove.o) + .debug_abbrev 0x0000109d 0x7a c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-strlen.o) + .debug_abbrev 0x00001117 0x97 ../qsys_tutorial_mem_bsp/\libhal_bsp.a(alt_load.o) + .debug_abbrev 0x000011ae 0xa6 ../qsys_tutorial_mem_bsp/\libhal_bsp.a(alt_main.o) + .debug_abbrev 0x00001254 0xe3 ../qsys_tutorial_mem_bsp/\libhal_bsp.a(alt_sys_init.o) + .debug_abbrev 0x00001337 0x3f ../qsys_tutorial_mem_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) + .debug_abbrev 0x00001376 0x3f ../qsys_tutorial_mem_bsp/\libhal_bsp.a(alt_icache_flush_all.o) + .debug_abbrev 0x000013b5 0x3f ../qsys_tutorial_mem_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) + +.debug_line 0x00000000 0x374c + *(.debug_line) + .debug_line 0x00000000 0x66 ../qsys_tutorial_mem_bsp//obj/HAL/src/crt0.o + .debug_line 0x00000066 0x53c obj/default/hello_world_small.o + .debug_line 0x000005a2 0x2b7 obj/default/hex_encoder.o + .debug_line 0x00000859 0x1f5 obj/default/hex_out.o + .debug_line 0x00000a4e 0x1d9 obj/default/input_int.o + .debug_line 0x00000c27 0x44c obj/default/inst_decoder.o + .debug_line 0x00001073 0x18f obj/default/sys_memory.o + .debug_line 0x00001202 0x87 obj/default/sys_register.o + .debug_line 0x00001289 0x94 obj/default/system.o + .debug_line 0x0000131d 0x24f c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-divmod.o) + .debug_line 0x0000156c 0x11a c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-mul.o) + .debug_line 0x00001686 0x81 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-ctype_.o) + .debug_line 0x00001707 0x365 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-sprintf.o) + .debug_line 0x00001a6c 0x666 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-vfprintf.o) + .debug_line 0x000020d2 0x2cf c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-fvwrite_small_str.o) + .debug_line 0x000023a1 0x230 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-impure.o) + .debug_line 0x000025d1 0x294 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-memmove.o) + .debug_line 0x00002865 0x250 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-strlen.o) + .debug_line 0x00002ab5 0x217 ../qsys_tutorial_mem_bsp/\libhal_bsp.a(alt_load.o) + .debug_line 0x00002ccc 0x2c2 ../qsys_tutorial_mem_bsp/\libhal_bsp.a(alt_main.o) + .debug_line 0x00002f8e 0x286 ../qsys_tutorial_mem_bsp/\libhal_bsp.a(alt_sys_init.o) + .debug_line 0x00003214 0x1b5 ../qsys_tutorial_mem_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) + .debug_line 0x000033c9 0x1b5 ../qsys_tutorial_mem_bsp/\libhal_bsp.a(alt_icache_flush_all.o) + .debug_line 0x0000357e 0x1ce ../qsys_tutorial_mem_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) + +.debug_frame 0x00000000 0x5ec + *(.debug_frame) + .debug_frame 0x00000000 0xd4 obj/default/hello_world_small.o + .debug_frame 0x000000d4 0x30 obj/default/hex_encoder.o + .debug_frame 0x00000104 0x5c obj/default/hex_out.o + .debug_frame 0x00000160 0x44 obj/default/input_int.o + .debug_frame 0x000001a4 0xf0 obj/default/inst_decoder.o + .debug_frame 0x00000294 0x78 obj/default/sys_memory.o + .debug_frame 0x0000030c 0x20 obj/default/sys_register.o + .debug_frame 0x0000032c 0x28 obj/default/system.o + .debug_frame 0x00000354 0x70 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-divmod.o) + .debug_frame 0x000003c4 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-mul.o) + .debug_frame 0x000003e4 0x40 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-sprintf.o) + .debug_frame 0x00000424 0x64 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-vfprintf.o) + .debug_frame 0x00000488 0x2c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-fvwrite_small_str.o) + .debug_frame 0x000004b4 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-memmove.o) + .debug_frame 0x000004d4 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-strlen.o) + .debug_frame 0x000004f4 0x38 ../qsys_tutorial_mem_bsp/\libhal_bsp.a(alt_load.o) + .debug_frame 0x0000052c 0x28 ../qsys_tutorial_mem_bsp/\libhal_bsp.a(alt_main.o) + .debug_frame 0x00000554 0x38 ../qsys_tutorial_mem_bsp/\libhal_bsp.a(alt_sys_init.o) + .debug_frame 0x0000058c 0x20 ../qsys_tutorial_mem_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) + .debug_frame 0x000005ac 0x20 ../qsys_tutorial_mem_bsp/\libhal_bsp.a(alt_icache_flush_all.o) + .debug_frame 0x000005cc 0x20 ../qsys_tutorial_mem_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) + +.debug_str 0x00000000 0x1151 + *(.debug_str) + .debug_str 0x00000000 0x152 obj/default/hello_world_small.o + 0x1b3 (size before relaxing) + .debug_str 0x00000152 0x42 obj/default/hex_encoder.o + 0x9f (size before relaxing) + .debug_str 0x00000194 0x54 obj/default/hex_out.o + 0xd5 (size before relaxing) + .debug_str 0x000001e8 0xe2 obj/default/input_int.o + 0x193 (size before relaxing) + .debug_str 0x000002ca 0x107 obj/default/inst_decoder.o + 0x226 (size before relaxing) + .debug_str 0x000003d1 0x51 obj/default/sys_memory.o + 0x1a6 (size before relaxing) + .debug_str 0x00000422 0x1e obj/default/sys_register.o + 0x9e (size before relaxing) + .debug_str 0x00000440 0xf obj/default/system.o + 0x67 (size before relaxing) + .debug_str 0x0000044f 0x10b c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-divmod.o) + 0x1b4 (size before relaxing) + .debug_str 0x0000055a 0x37 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-mul.o) + 0x175 (size before relaxing) + .debug_str 0x00000591 0xea c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-ctype_.o) + 0x119 (size before relaxing) + .debug_str 0x0000067b 0x3d8 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-sprintf.o) + 0x499 (size before relaxing) + .debug_str 0x00000a53 0x162 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-vfprintf.o) + 0x5af (size before relaxing) + .debug_str 0x00000bb5 0x5d c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-fvwrite_small_str.o) + 0x487 (size before relaxing) + .debug_str 0x00000c12 0xf8 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-impure.o) + 0x45d (size before relaxing) + .debug_str 0x00000d0a 0x104 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-memmove.o) + 0x199 (size before relaxing) + .debug_str 0x00000e0e 0x45 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-strlen.o) + 0x184 (size before relaxing) + .debug_str 0x00000e53 0x141 ../qsys_tutorial_mem_bsp/\libhal_bsp.a(alt_load.o) + 0x1d6 (size before relaxing) + .debug_str 0x00000f94 0x70 ../qsys_tutorial_mem_bsp/\libhal_bsp.a(alt_main.o) + 0x15a (size before relaxing) + .debug_str 0x00001004 0xaa ../qsys_tutorial_mem_bsp/\libhal_bsp.a(alt_sys_init.o) + 0x1cd (size before relaxing) + .debug_str 0x000010ae 0x34 ../qsys_tutorial_mem_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) + 0x119 (size before relaxing) + .debug_str 0x000010e2 0x34 ../qsys_tutorial_mem_bsp/\libhal_bsp.a(alt_icache_flush_all.o) + 0x119 (size before relaxing) + .debug_str 0x00001116 0x3b ../qsys_tutorial_mem_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) + 0x120 (size before relaxing) + +.debug_loc 0x00000000 0x1783 + *(.debug_loc) + .debug_loc 0x00000000 0x161 obj/default/hello_world_small.o + .debug_loc 0x00000161 0x3b9 obj/default/hex_encoder.o + .debug_loc 0x0000051a 0x24c obj/default/hex_out.o + .debug_loc 0x00000766 0x52 obj/default/input_int.o + .debug_loc 0x000007b8 0x192 obj/default/inst_decoder.o + .debug_loc 0x0000094a 0x105 obj/default/sys_memory.o + .debug_loc 0x00000a4f 0x1f obj/default/system.o + .debug_loc 0x00000a6e 0x1d2 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-divmod.o) + .debug_loc 0x00000c40 0x4f c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-mul.o) + .debug_loc 0x00000c8f 0xbe c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-sprintf.o) + .debug_loc 0x00000d4d 0x878 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-vfprintf.o) + .debug_loc 0x000015c5 0xe1 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-fvwrite_small_str.o) + .debug_loc 0x000016a6 0x4f c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-memmove.o) + .debug_loc 0x000016f5 0x1e c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-strlen.o) + .debug_loc 0x00001713 0x1f ../qsys_tutorial_mem_bsp/\libhal_bsp.a(alt_load.o) + .debug_loc 0x00001732 0x1f ../qsys_tutorial_mem_bsp/\libhal_bsp.a(alt_main.o) + .debug_loc 0x00001751 0x32 ../qsys_tutorial_mem_bsp/\libhal_bsp.a(alt_sys_init.o) + +.debug_macinfo + *(.debug_macinfo) + +.debug_weaknames + *(.debug_weaknames) + +.debug_funcnames + *(.debug_funcnames) + +.debug_typenames + *(.debug_typenames) + +.debug_varnames + *(.debug_varnames) + +.debug_alt_sim_info + 0x00000000 0x10 + *(.debug_alt_sim_info) + .debug_alt_sim_info + 0x00000000 0x10 ../qsys_tutorial_mem_bsp//obj/HAL/src/crt0.o + 0x00004000 __alt_data_end = 0x4000 + 0x00004000 PROVIDE (__alt_stack_pointer, __alt_data_end) + 0x00002360 PROVIDE (__alt_stack_limit, __alt_stack_base) + 0x00002360 PROVIDE (__alt_heap_start, end) + 0x00004000 PROVIDE (__alt_heap_limit, 0x4000) +OUTPUT(qsys_tutorial_mem.elf elf32-littlenios2) + +.debug_ranges 0x00000000 0x190 + .debug_ranges 0x00000000 0x20 ../qsys_tutorial_mem_bsp//obj/HAL/src/crt0.o + .debug_ranges 0x00000020 0x18 obj/default/hello_world_small.o + .debug_ranges 0x00000038 0x140 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-vfprintf.o) + .debug_ranges 0x00000178 0x18 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a(lib_a-fvwrite_small_str.o) diff --git a/software/qsys_tutorial_mem/qsys_tutorial_mem.objdump b/software/qsys_tutorial_mem/qsys_tutorial_mem.objdump new file mode 100644 index 0000000..90d9ea6 --- /dev/null +++ b/software/qsys_tutorial_mem/qsys_tutorial_mem.objdump @@ -0,0 +1,3491 @@ + +qsys_tutorial_mem.elf: file format elf32-littlenios2 +qsys_tutorial_mem.elf +architecture: nios2, flags 0x00000112: +EXEC_P, HAS_SYMS, D_PAGED +start address 0x00000020 + +Program Header: + LOAD off 0x00001000 vaddr 0x00000000 paddr 0x00000000 align 2**12 + filesz 0x00000020 memsz 0x00000020 flags r-x + LOAD off 0x00001020 vaddr 0x00000020 paddr 0x00000020 align 2**12 + filesz 0x00001fec memsz 0x00001fec flags r-x + LOAD off 0x0000300c vaddr 0x0000200c paddr 0x000020fc align 2**12 + filesz 0x000000f0 memsz 0x000000f0 flags rw- + LOAD off 0x000031ec vaddr 0x000021ec paddr 0x000021ec align 2**12 + filesz 0x00000000 memsz 0x00000174 flags rw- + +Sections: +Idx Name Size VMA LMA File off Algn + 0 .entry 00000020 00000000 00000000 00001000 2**5 + CONTENTS, ALLOC, LOAD, READONLY, CODE + 1 .text 00001d1c 00000020 00000020 00001020 2**2 + CONTENTS, ALLOC, LOAD, READONLY, CODE + 2 .rodata 000002d0 00001d3c 00001d3c 00002d3c 2**2 + CONTENTS, ALLOC, LOAD, READONLY, DATA + 3 .rwdata 000000f0 0000200c 000020fc 0000300c 2**2 + CONTENTS, ALLOC, LOAD, DATA, SMALL_DATA + 4 .bss 00000174 000021ec 000021ec 000031ec 2**2 + ALLOC, SMALL_DATA + 5 .comment 00000026 00000000 00000000 000030fc 2**0 + CONTENTS, READONLY + 6 .debug_aranges 000002c8 00000000 00000000 00003128 2**3 + CONTENTS, READONLY, DEBUGGING + 7 .debug_pubnames 000005b9 00000000 00000000 000033f0 2**0 + CONTENTS, READONLY, DEBUGGING + 8 .debug_info 000039d5 00000000 00000000 000039a9 2**0 + CONTENTS, READONLY, DEBUGGING + 9 .debug_abbrev 000013f4 00000000 00000000 0000737e 2**0 + CONTENTS, READONLY, DEBUGGING + 10 .debug_line 0000374c 00000000 00000000 00008772 2**0 + CONTENTS, READONLY, DEBUGGING + 11 .debug_frame 000005ec 00000000 00000000 0000bec0 2**2 + CONTENTS, READONLY, DEBUGGING + 12 .debug_str 00001151 00000000 00000000 0000c4ac 2**0 + CONTENTS, READONLY, DEBUGGING + 13 .debug_loc 00001783 00000000 00000000 0000d5fd 2**0 + CONTENTS, READONLY, DEBUGGING + 14 .debug_alt_sim_info 00000010 00000000 00000000 0000ed80 2**2 + CONTENTS, READONLY, DEBUGGING + 15 .debug_ranges 00000190 00000000 00000000 0000ed90 2**3 + CONTENTS, READONLY, DEBUGGING + 16 .thread_model 00000003 00000000 00000000 000103ea 2**0 + CONTENTS, READONLY + 17 .cpu 0000000f 00000000 00000000 000103ed 2**0 + CONTENTS, READONLY + 18 .qsys 00000001 00000000 00000000 000103fc 2**0 + CONTENTS, READONLY + 19 .simulation_enabled 00000001 00000000 00000000 000103fd 2**0 + CONTENTS, READONLY + 20 .stderr_dev 00000009 00000000 00000000 000103fe 2**0 + CONTENTS, READONLY + 21 .stdin_dev 00000009 00000000 00000000 00010407 2**0 + CONTENTS, READONLY + 22 .stdout_dev 00000009 00000000 00000000 00010410 2**0 + CONTENTS, READONLY + 23 .sopc_system_name 0000000b 00000000 00000000 00010419 2**0 + CONTENTS, READONLY + 24 .quartus_project_dir 00000030 00000000 00000000 00010424 2**0 + CONTENTS, READONLY + 25 .sopcinfo 0006c87e 00000000 00000000 00010454 2**0 + CONTENTS, READONLY +SYMBOL TABLE: +00000000 l d .entry 00000000 .entry +00000020 l d .text 00000000 .text +00001d3c l d .rodata 00000000 .rodata +0000200c l d .rwdata 00000000 .rwdata +000021ec l d .bss 00000000 .bss +00000000 l d .comment 00000000 .comment +00000000 l d .debug_aranges 00000000 .debug_aranges +00000000 l d .debug_pubnames 00000000 .debug_pubnames +00000000 l d .debug_info 00000000 .debug_info +00000000 l d .debug_abbrev 00000000 .debug_abbrev +00000000 l d .debug_line 00000000 .debug_line +00000000 l d .debug_frame 00000000 .debug_frame +00000000 l d .debug_str 00000000 .debug_str +00000000 l d .debug_loc 00000000 .debug_loc +00000000 l d .debug_alt_sim_info 00000000 .debug_alt_sim_info +00000000 l d .debug_ranges 00000000 .debug_ranges +00000058 l .text 00000000 alt_after_alt_main +00000000 l df *ABS* 00000000 hello_world_small.c +00000000 l df *ABS* 00000000 hex_encoder.c +00000000 l df *ABS* 00000000 hex_out.c +00000000 l df *ABS* 00000000 input_int.c +000021fc l O .bss 00000001 status.1396 +000021f8 l O .bss 00000004 event_code.1397 +00000000 l df *ABS* 00000000 inst_decoder.c +00000000 l df *ABS* 00000000 sys_memory.c +00002210 l O .bss 00000040 memory +00002250 l O .bss 00000100 inst_memory +00000000 l df *ABS* 00000000 sys_register.c +00000000 l df *ABS* 00000000 system.c +00000000 l df *ABS* 00000000 lib2-divmod.c +00001160 l F .text 0000007c udivmodsi4 +00000000 l df *ABS* 00000000 lib2-mul.c +00000000 l df *ABS* 00000000 ctype_.c +00001e89 l O .rodata 00000180 _ctype_b +00000000 l df *ABS* 00000000 sprintf.c +00000000 l df *ABS* 00000000 vfprintf.c +000013d8 l F .text 00000080 print_repeat +00000000 l df *ABS* 00000000 fvwrite_small_str.c +00000000 l df *ABS* 00000000 impure.c +0000200c l O .rwdata 000000e0 impure_data +00000000 l df *ABS* 00000000 memmove.c +00000000 l df *ABS* 00000000 strlen.c +00000000 l df *ABS* 00000000 alt_load.c +00001c50 l F .text 00000020 alt_load_section +00000000 l df *ABS* 00000000 alt_main.c +00000000 l df *ABS* 00000000 alt_sys_init.c +00000000 l df *ABS* 00000000 alt_dcache_flush_all.c +00000000 l df *ABS* 00000000 alt_icache_flush_all.c +00000000 l df *ABS* 00000000 altera_nios2_qsys_irq.c +00000cf4 g F .text 00000010 inst_load +00001cdc g F .text 0000002c alt_main +000020fc g *ABS* 00000000 __flash_rwdata_start +000008f8 g F .text 00000050 clear_block +000002a0 g F .text 000000a4 store_value +00000be4 g F .text 00000020 inst_add +00000cb8 g F .text 0000002c inst_jine +00001bd0 g F .text 00000060 memmove +000020f8 g O .rwdata 00000004 jtag_uart +00001b18 g F .text 000000b8 __sfvwrite_small_str +00000000 g F .entry 0000000c __reset +00000020 g *ABS* 00000000 __flash_exceptions_start +00002208 g O .bss 00000004 alt_argv +0000a0ec g *ABS* 00000000 _gp +00000bc4 g F .text 0000001c inst_jump +00000130 g F .text 000000a0 run_proc +0000129c g F .text 00000008 __udivsi3 +00000c8c g F .text 0000002c inst_jieq +00000d04 g F .text 0000004c inst_output +000010a8 g F .text 00000070 memory_store +000020f4 g O .rwdata 00000004 _global_impure_ptr +00002360 g *ABS* 00000000 __bss_end +000021ec g O .bss 00000005 stack +000020ec g O .rwdata 00000004 __ctype_ptr +00000d50 g F .text 00000038 inst_fetch +00001d2c g F .text 00000004 alt_dcache_flush_all +00002350 g O .bss 0000000f global_registers +00000c3c g F .text 00000028 inst_jeq +000020fc g *ABS* 00000000 __ram_rwdata_end +00000000 g *ABS* 00000000 __alt_mem_onchip_memory +0000200c g *ABS* 00000000 __ram_rodata_end +000012a4 g F .text 00000008 __umodsi3 +00002360 g *ABS* 00000000 end +00004000 g *ABS* 00000000 __alt_stack_pointer +00001458 g F .text 0000069c ___vfprintf_internal_r +00001368 g F .text 00000070 _sprintf_r +0000005c g F .text 0000003c wait +00000948 g F .text 000000fc print_number +00000020 g F .text 0000003c _start +0000081c g F .text 000000dc print_block +00001d08 g F .text 00000004 alt_sys_init +000012ac g F .text 00000038 __mulsi3 +0000200c g *ABS* 00000000 __ram_rwdata_start +00001d3c g *ABS* 00000000 __ram_rodata_start +00001134 g F .text 0000002c panic +00002360 g *ABS* 00000000 __alt_stack_base +00000be0 g F .text 00000004 inst_delay +00000ce4 g F .text 00000010 inst_store +00000344 g F .text 000000a4 init +000021ec g *ABS* 00000000 __bss_start +000003e8 g F .text 0000007c main +0000220c g O .bss 00000004 alt_envp +00000464 g F .text 00000124 encodeNumHex +00000bc0 g F .text 00000004 in_int +000011dc g F .text 00000060 __divsi3 +00001d3c g *ABS* 00000000 __flash_rodata_start +00001d0c g F .text 00000020 alt_irq_init +000012e4 g F .text 00000084 sprintf +00000098 g F .text 00000098 print_change_memory +00000a84 g F .text 0000013c push_int +000020f0 g O .rwdata 00000004 _impure_ptr +00002204 g O .bss 00000004 alt_argc +00002200 g O .bss 00000004 global_current_memory +00000020 g *ABS* 00000000 __ram_exceptions_start +00000588 g F .text 00000294 encodeLatHex +000020fc g *ABS* 00000000 _edata +00002360 g *ABS* 00000000 _end +00000020 g *ABS* 00000000 __ram_exceptions_end +00000ef8 g F .text 00000044 memory_init +00001d34 g F .text 00000008 altera_nios2_qsys_irq_init +0000000c g .entry 00000000 exit +00001038 g F .text 00000070 memory_load +0000123c g F .text 00000060 __modsi3 +00004000 g *ABS* 00000000 __alt_data_end +00000d88 g F .text 00000170 inst_decode +00001d88 g O .rodata 00000101 _ctype_ +00000c04 g F .text 00000038 inst_comp +00001118 g F .text 0000001c registers_init +0000000c g .entry 00000000 _exit +00000c64 g F .text 00000028 inst_jne +00001c30 g F .text 00000020 strlen +000001d0 g F .text 000000d0 store_inst +00001d30 g F .text 00000004 alt_icache_flush_all +00001af4 g F .text 00000024 __vfprintf_internal +00000f3c g F .text 00000080 inst_memory_store +00000a44 g F .text 00000040 push_decode +00001c70 g F .text 0000006c alt_load +000021f4 g O .bss 00000001 PUSH_EVENT +00000fbc g F .text 0000007c inst_memory_load + + + +Disassembly of section .entry: + +00000000 <__reset>: + * Jump to the _start entry point in the .text section if reset code + * is allowed or if optimizing for RTL simulation. + */ +#if defined(ALT_ALLOW_CODE_AT_RESET) || defined(ALT_SIM_OPTIMIZE) + /* Jump to the _start entry point in the .text section. */ + movhi r1, %hi(_start) + 0: 00400034 movhi at,0 + ori r1, r1, %lo(_start) + 4: 08400814 ori at,at,32 + jmp r1 + 8: 0800683a jmp at + +0000000c <_exit>: + ... + +Disassembly of section .text: + +00000020 <_start>: +#if (NIOS2_NUM_OF_SHADOW_REG_SETS == 0) + /* + * Now that the caches are initialized, set up the stack pointer. + * The value provided by the linker is assumed to be correctly aligned. + */ + movhi sp, %hi(__alt_stack_pointer) + 20: 06c00034 movhi sp,0 + ori sp, sp, %lo(__alt_stack_pointer) + 24: ded00014 ori sp,sp,16384 + + /* Set up the global pointer. */ + movhi gp, %hi(_gp) + 28: 06800034 movhi gp,0 + ori gp, gp, %lo(_gp) + 2c: d6a83b14 ori gp,gp,41196 + */ +#ifndef ALT_SIM_OPTIMIZE + /* Log that the BSS is about to be cleared. */ + ALT_LOG_PUTS(alt_log_msg_bss) + + movhi r2, %hi(__bss_start) + 30: 00800034 movhi r2,0 + ori r2, r2, %lo(__bss_start) + 34: 10887b14 ori r2,r2,8684 + + movhi r3, %hi(__bss_end) + 38: 00c00034 movhi r3,0 + ori r3, r3, %lo(__bss_end) + 3c: 18c8d814 ori r3,r3,9056 + + beq r2, r3, 1f + 40: 10c00326 beq r2,r3,50 <_start+0x30> + +0: + stw zero, (r2) + 44: 10000015 stw zero,0(r2) + addi r2, r2, 4 + 48: 10800104 addi r2,r2,4 + bltu r2, r3, 0b + 4c: 10fffd36 bltu r2,r3,44 <_start+0x24> + * section aren't defined until alt_load() has been called). + */ + mov et, zero +#endif + + call alt_load + 50: 0001c700 call 1c70 + + /* Log that alt_main is about to be called. */ + ALT_LOG_PUTS(alt_log_msg_alt_main) + + /* Call the C entry point. It should never return. */ + call alt_main + 54: 0001cdc0 call 1cdc + +00000058 : + + /* Wait in infinite loop in case alt_main does return. */ +alt_after_alt_main: + br alt_after_alt_main + 58: 003fff06 br 58 + +0000005c : + +#define ledrs (volatile int *) 0x00050a0 + +#define T_MS10 12500 //(10ms) + +void wait(unsigned int s) { + 5c: defffe04 addi sp,sp,-8 + volatile i; + for (i = 0; i < T_MS10*s; i++); + 60: 014c3504 movi r5,12500 + +#define ledrs (volatile int *) 0x00050a0 + +#define T_MS10 12500 //(10ms) + +void wait(unsigned int s) { + 64: dfc00115 stw ra,4(sp) + volatile i; + for (i = 0; i < T_MS10*s; i++); + 68: d8000015 stw zero,0(sp) + 6c: 00012ac0 call 12ac <__mulsi3> + 70: 1007883a mov r3,r2 + 74: 00000306 br 84 + 78: d8800017 ldw r2,0(sp) + 7c: 10800044 addi r2,r2,1 + 80: d8800015 stw r2,0(sp) + 84: d8800017 ldw r2,0(sp) + 88: 10fffb36 bltu r2,r3,78 +} + 8c: dfc00117 ldw ra,4(sp) + 90: dec00204 addi sp,sp,8 + 94: f800283a ret + +00000098 : + }while( inst_rec.inst != INST_END ); + + //print_block(" end", 4, HEX0_3); +} + +void print_change_memory(unsigned int current_memory) { + 98: defffb04 addi sp,sp,-20 + 9c: 200d883a mov r6,r4 + char buf[5]; + sprintf(buf, "g %2d", current_memory); + a0: 01400034 movhi r5,0 + a4: 29474f04 addi r5,r5,7484 + a8: d809883a mov r4,sp + }while( inst_rec.inst != INST_END ); + + //print_block(" end", 4, HEX0_3); +} + +void print_change_memory(unsigned int current_memory) { + ac: dfc00415 stw ra,16(sp) + b0: dc400315 stw r17,12(sp) + b4: dc000215 stw r16,8(sp) + char buf[5]; + sprintf(buf, "g %2d", current_memory); + print_block(buf, 4, HEX0_3); + print_block("an", 2, HEX4_5); + b8: 04400044 movi r17,1 + //print_block(" end", 4, HEX0_3); +} + +void print_change_memory(unsigned int current_memory) { + char buf[5]; + sprintf(buf, "g %2d", current_memory); + bc: 00012e40 call 12e4 + print_block(buf, 4, HEX0_3); + print_block("an", 2, HEX4_5); + c0: 04000084 movi r16,2 +} + +void print_change_memory(unsigned int current_memory) { + char buf[5]; + sprintf(buf, "g %2d", current_memory); + print_block(buf, 4, HEX0_3); + c4: d809883a mov r4,sp + c8: 01400104 movi r5,4 + cc: 000d883a mov r6,zero + d0: 000081c0 call 81c + print_block("an", 2, HEX4_5); + d4: 800b883a mov r5,r16 + d8: 880d883a mov r6,r17 + dc: 01000034 movhi r4,0 + e0: 21075104 addi r4,r4,7492 + e4: 000081c0 call 81c + print_block("ch", 2, HEX6_7); + e8: 800b883a mov r5,r16 + ec: 800d883a mov r6,r16 + f0: 01000034 movhi r4,0 + f4: 21075204 addi r4,r4,7496 + f8: 000081c0 call 81c + wait(200); + fc: 01003204 movi r4,200 + 100: 000005c0 call 5c + clear_block(HEX0_3); clear_block(HEX4_5); clear_block(HEX6_7); + 104: 0009883a mov r4,zero + 108: 00008f80 call 8f8 + 10c: 8809883a mov r4,r17 + 110: 00008f80 call 8f8 + 114: 8009883a mov r4,r16 + 118: 00008f80 call 8f8 +} + 11c: dfc00417 ldw ra,16(sp) + 120: dc400317 ldw r17,12(sp) + 124: dc000217 ldw r16,8(sp) + 128: dec00504 addi sp,sp,20 + 12c: f800283a ret + +00000130 : + print_block(buf, 4, HEX0_3); + sprintf(buf, "%02x", global_registers[Spc]); + print_block(buf, 2, HEX4_5); + } +} +void run_proc() { + 130: defffa04 addi sp,sp,-24 + 134: dfc00515 stw ra,20(sp) + 138: dc400415 stw r17,16(sp) + 13c: dc000315 stw r16,12(sp) + volatile struct InstRec inst_rec; + + //print_block(" go ", 4, HEX0_3); + + global_registers[Spc] = 0; + print_block("pc", 2, HEX6_7); + 140: 01400084 movi r5,2 +void run_proc() { + volatile struct InstRec inst_rec; + + //print_block(" go ", 4, HEX0_3); + + global_registers[Spc] = 0; + 144: 00800034 movhi r2,0 + 148: 1088d404 addi r2,r2,9040 + print_block("pc", 2, HEX6_7); + 14c: 01000034 movhi r4,0 + 150: 21075304 addi r4,r4,7500 + 154: 280d883a mov r6,r5 +void run_proc() { + volatile struct InstRec inst_rec; + + //print_block(" go ", 4, HEX0_3); + + global_registers[Spc] = 0; + 158: 10000045 stb zero,1(r2) + print_block("pc", 2, HEX6_7); + 15c: 000081c0 call 81c + do { + // pc�\�� + { + char buf[5]; + sprintf(buf, "%02x", global_registers[Spc]); + 160: 04400034 movhi r17,0 + 164: 8c48d404 addi r17,r17,9040 + 168: 89800047 ldb r6,1(r17) + 16c: dc000104 addi r16,sp,4 + 170: 01400034 movhi r5,0 + 174: 29475404 addi r5,r5,7504 + 178: 8009883a mov r4,r16 + 17c: 00012e40 call 12e4 + print_block(buf, 2, HEX4_5); + 180: 8009883a mov r4,r16 + 184: 01400084 movi r5,2 + 188: 01800044 movi r6,1 + 18c: 000081c0 call 81c + } + // ���߃t�F�b�` + inst_rec = inst_fetch(); + 190: 0000d500 call d50 + 194: d8800015 stw r2,0(sp) + // ���߃f�R�[�h���s + inst_decode(inst_rec); + 198: d9000017 ldw r4,0(sp) + 19c: 0000d880 call d88 + if ( global_registers[Ssw_run] ) wait(100); + 1a0: 88800347 ldb r2,13(r17) + 1a4: 01001904 movi r4,100 + 1a8: 10000126 beq r2,zero,1b0 + 1ac: 000005c0 call 5c + }while( inst_rec.inst != INST_END ); + 1b0: d8800017 ldw r2,0(sp) + 1b4: 108003cc andi r2,r2,15 + 1b8: 103fe91e bne r2,zero,160 + + //print_block(" end", 4, HEX0_3); +} + 1bc: dfc00517 ldw ra,20(sp) + 1c0: dc400417 ldw r17,16(sp) + 1c4: dc000317 ldw r16,12(sp) + 1c8: dec00604 addi sp,sp,24 + 1cc: f800283a ret + +000001d0 : + print_block(buf, 2, HEX6_7); + print_block("--", 2, HEX4_5); + sprintf(buf, "%04d", global_registers[Ssw_data]); + print_block(buf, 4, HEX0_3); +} +void store_inst(){ + 1d0: defffb04 addi sp,sp,-20 + 1d4: dc000215 stw r16,8(sp) + char reg_index; + struct InstRec inst_rec; + + // �K�v�ȏ��̎擾 + inst = global_registers[Ssw_inst]; + mem_index = global_registers[Ssw_memi]; + 1d8: 04000034 movhi r16,0 + 1dc: 8408d404 addi r16,r16,9040 + reg_index = global_registers[Ssw_regi]; + inst_rec.inst = (unsigned int)inst; + inst_rec.memi = (unsigned int)mem_index; + 1e0: 80c00283 ldbu r3,10(r16) + print_block(buf, 2, HEX6_7); + print_block("--", 2, HEX4_5); + sprintf(buf, "%04d", global_registers[Ssw_data]); + print_block(buf, 4, HEX0_3); +} +void store_inst(){ + 1e4: dc400315 stw r17,12(sp) + + // �K�v�ȏ��̎擾 + inst = global_registers[Ssw_inst]; + mem_index = global_registers[Ssw_memi]; + reg_index = global_registers[Ssw_regi]; + inst_rec.inst = (unsigned int)inst; + 1e8: 84400203 ldbu r17,8(r16) + 1ec: 008003c4 movi r2,15 + inst_rec.memi = (unsigned int)mem_index; + inst_rec.regi = (unsigned int)reg_index; + 1f0: 81800243 ldbu r6,9(r16) + // �K�v�ȏ��̎擾 + inst = global_registers[Ssw_inst]; + mem_index = global_registers[Ssw_memi]; + reg_index = global_registers[Ssw_regi]; + inst_rec.inst = (unsigned int)inst; + inst_rec.memi = (unsigned int)mem_index; + 1f4: 1886703a and r3,r3,r2 + + // �K�v�ȏ��̎擾 + inst = global_registers[Ssw_inst]; + mem_index = global_registers[Ssw_memi]; + reg_index = global_registers[Ssw_regi]; + inst_rec.inst = (unsigned int)inst; + 1f8: 017ffc04 movi r5,-16 + inst_rec.memi = (unsigned int)mem_index; + 1fc: 1806913a slli r3,r3,4 + + // �K�v�ȏ��̎擾 + inst = global_registers[Ssw_inst]; + mem_index = global_registers[Ssw_memi]; + reg_index = global_registers[Ssw_regi]; + inst_rec.inst = (unsigned int)inst; + 200: 88a2703a and r17,r17,r2 + 204: 294a703a and r5,r5,r5 + inst_rec.memi = (unsigned int)mem_index; + inst_rec.regi = (unsigned int)reg_index; + 208: 308c703a and r6,r6,r2 + + // �K�v�ȏ��̎擾 + inst = global_registers[Ssw_inst]; + mem_index = global_registers[Ssw_memi]; + reg_index = global_registers[Ssw_regi]; + inst_rec.inst = (unsigned int)inst; + 20c: 894ab03a or r5,r17,r5 + inst_rec.memi = (unsigned int)mem_index; + 210: 00bfc3c4 movi r2,-241 + inst_rec.regi = (unsigned int)reg_index; + 214: 300c923a slli r6,r6,8 + // �K�v�ȏ��̎擾 + inst = global_registers[Ssw_inst]; + mem_index = global_registers[Ssw_memi]; + reg_index = global_registers[Ssw_regi]; + inst_rec.inst = (unsigned int)inst; + inst_rec.memi = (unsigned int)mem_index; + 218: 288a703a and r5,r5,r2 + 21c: 28cab03a or r5,r5,r3 + inst_rec.regi = (unsigned int)reg_index; + + // �X�g�A���� + inst_memory_store((unsigned int)global_registers[Spc], inst_rec); + 220: 81000047 ldb r4,1(r16) + inst = global_registers[Ssw_inst]; + mem_index = global_registers[Ssw_memi]; + reg_index = global_registers[Ssw_regi]; + inst_rec.inst = (unsigned int)inst; + inst_rec.memi = (unsigned int)mem_index; + inst_rec.regi = (unsigned int)reg_index; + 224: 00bc3fc4 movi r2,-3841 + 228: 288a703a and r5,r5,r2 + + // �X�g�A���� + inst_memory_store((unsigned int)global_registers[Spc], inst_rec); + 22c: 298ab03a or r5,r5,r6 + print_block(buf, 2, HEX6_7); + print_block("--", 2, HEX4_5); + sprintf(buf, "%04d", global_registers[Ssw_data]); + print_block(buf, 4, HEX0_3); +} +void store_inst(){ + 230: dfc00415 stw ra,16(sp) + inst_rec.inst = (unsigned int)inst; + inst_rec.memi = (unsigned int)mem_index; + inst_rec.regi = (unsigned int)reg_index; + + // �X�g�A���� + inst_memory_store((unsigned int)global_registers[Spc], inst_rec); + 234: 0000f3c0 call f3c + global_registers[Spc]++; + 238: 80800043 ldbu r2,1(r16) + + { + char buf[5]; + sprintf(buf, "%04d", inst_rec.inst); + 23c: 880d883a mov r6,r17 + 240: d809883a mov r4,sp + 244: 01400034 movhi r5,0 + 248: 29475604 addi r5,r5,7512 + inst_rec.memi = (unsigned int)mem_index; + inst_rec.regi = (unsigned int)reg_index; + + // �X�g�A���� + inst_memory_store((unsigned int)global_registers[Spc], inst_rec); + global_registers[Spc]++; + 24c: 10800044 addi r2,r2,1 + 250: 80800045 stb r2,1(r16) + + { + char buf[5]; + sprintf(buf, "%04d", inst_rec.inst); + 254: 00012e40 call 12e4 + print_block(buf, 4, HEX0_3); + 258: d809883a mov r4,sp + 25c: 01400104 movi r5,4 + 260: 000d883a mov r6,zero + 264: 000081c0 call 81c + sprintf(buf, "%02x", global_registers[Spc]); + 268: 81800047 ldb r6,1(r16) + 26c: d809883a mov r4,sp + 270: 01400034 movhi r5,0 + 274: 29475404 addi r5,r5,7504 + 278: 00012e40 call 12e4 + print_block(buf, 2, HEX4_5); + 27c: d809883a mov r4,sp + 280: 01400084 movi r5,2 + 284: 01800044 movi r6,1 + 288: 000081c0 call 81c + } +} + 28c: dfc00417 ldw ra,16(sp) + 290: dc400317 ldw r17,12(sp) + 294: dc000217 ldw r16,8(sp) + 298: dec00504 addi sp,sp,20 + 29c: f800283a ret + +000002a0 : + clear_block(HEX0_3); clear_block(HEX4_5); clear_block(HEX6_7); +} + +char stack[5]; + +void store_value(){ + 2a0: defffa04 addi sp,sp,-24 + 2a4: dc800415 stw r18,16(sp) + char buf[5]; + unsigned int memi = global_registers[Ssw_memi]; + 2a8: 04800034 movhi r18,0 + 2ac: 9488d404 addi r18,r18,9040 + clear_block(HEX0_3); clear_block(HEX4_5); clear_block(HEX6_7); +} + +char stack[5]; + +void store_value(){ + 2b0: dc400315 stw r17,12(sp) + char buf[5]; + unsigned int memi = global_registers[Ssw_memi]; + 2b4: 94400287 ldb r17,10(r18) + memory_store(memi, Ssw_data); + 2b8: 014001c4 movi r5,7 + clear_block(HEX0_3); clear_block(HEX4_5); clear_block(HEX6_7); +} + +char stack[5]; + +void store_value(){ + 2bc: dfc00515 stw ra,20(sp) + char buf[5]; + unsigned int memi = global_registers[Ssw_memi]; + memory_store(memi, Ssw_data); + 2c0: 8809883a mov r4,r17 + clear_block(HEX0_3); clear_block(HEX4_5); clear_block(HEX6_7); +} + +char stack[5]; + +void store_value(){ + 2c4: dc000215 stw r16,8(sp) + char buf[5]; + unsigned int memi = global_registers[Ssw_memi]; + memory_store(memi, Ssw_data); + 2c8: 00010a80 call 10a8 + sprintf(buf, "%02x", (unsigned char)memi); + print_block(buf, 2, HEX6_7); + 2cc: 04000084 movi r16,2 + +void store_value(){ + char buf[5]; + unsigned int memi = global_registers[Ssw_memi]; + memory_store(memi, Ssw_data); + sprintf(buf, "%02x", (unsigned char)memi); + 2d0: d809883a mov r4,sp + 2d4: 89803fcc andi r6,r17,255 + 2d8: 01400034 movhi r5,0 + 2dc: 29475404 addi r5,r5,7504 + 2e0: 00012e40 call 12e4 + print_block(buf, 2, HEX6_7); + 2e4: d809883a mov r4,sp + 2e8: 800b883a mov r5,r16 + 2ec: 800d883a mov r6,r16 + 2f0: 000081c0 call 81c + print_block("--", 2, HEX4_5); + 2f4: 800b883a mov r5,r16 + 2f8: 01800044 movi r6,1 + 2fc: 01000034 movhi r4,0 + 300: 21075804 addi r4,r4,7520 + 304: 000081c0 call 81c + sprintf(buf, "%04d", global_registers[Ssw_data]); + 308: 918001c7 ldb r6,7(r18) + 30c: d809883a mov r4,sp + 310: 01400034 movhi r5,0 + 314: 29475604 addi r5,r5,7512 + 318: 00012e40 call 12e4 + print_block(buf, 4, HEX0_3); + 31c: d809883a mov r4,sp + 320: 01400104 movi r5,4 + 324: 000d883a mov r6,zero + 328: 000081c0 call 81c +} + 32c: dfc00517 ldw ra,20(sp) + 330: dc800417 ldw r18,16(sp) + 334: dc400317 ldw r17,12(sp) + 338: dc000217 ldw r16,8(sp) + 33c: dec00604 addi sp,sp,24 + 340: f800283a ret + +00000344 : +void wait(unsigned int s) { + volatile i; + for (i = 0; i < T_MS10*s; i++); +} + +void init() { + 344: defffd04 addi sp,sp,-12 + 348: dfc00215 stw ra,8(sp) + 34c: dc400115 stw r17,4(sp) + 350: dc000015 stw r16,0(sp) + registers_init(); + 354: 00011180 call 1118 + memory_init(); + 358: 0000ef80 call ef8 + clear_block(HEX0_3); clear_block(HEX4_5); clear_block(HEX6_7); + 35c: 04400044 movi r17,1 + 360: 0009883a mov r4,zero + 364: 04000084 movi r16,2 + 368: 00008f80 call 8f8 + 36c: 8809883a mov r4,r17 + 370: 00008f80 call 8f8 + 374: 8009883a mov r4,r16 + 378: 00008f80 call 8f8 + print_block("he", 2, HEX6_7); + 37c: 800b883a mov r5,r16 + 380: 800d883a mov r6,r16 + 384: 01000034 movhi r4,0 + 388: 21075904 addi r4,r4,7524 + 38c: 000081c0 call 81c + print_block("lo", 2, HEX4_5); + 390: 800b883a mov r5,r16 + 394: 880d883a mov r6,r17 + 398: 01000034 movhi r4,0 + 39c: 21075a04 addi r4,r4,7528 + 3a0: 000081c0 call 81c + print_block("you1", 4, HEX0_3); + 3a4: 01400104 movi r5,4 + 3a8: 000d883a mov r6,zero + 3ac: 01000034 movhi r4,0 + 3b0: 21075b04 addi r4,r4,7532 + 3b4: 000081c0 call 81c + wait(200); + 3b8: 01003204 movi r4,200 + 3bc: 000005c0 call 5c + clear_block(HEX0_3); clear_block(HEX4_5); clear_block(HEX6_7); + 3c0: 0009883a mov r4,zero + 3c4: 00008f80 call 8f8 + 3c8: 8809883a mov r4,r17 + 3cc: 00008f80 call 8f8 + 3d0: 8009883a mov r4,r16 +} + 3d4: dfc00217 ldw ra,8(sp) + 3d8: dc400117 ldw r17,4(sp) + 3dc: dc000017 ldw r16,0(sp) + 3e0: dec00304 addi sp,sp,12 + clear_block(HEX0_3); clear_block(HEX4_5); clear_block(HEX6_7); + print_block("he", 2, HEX6_7); + print_block("lo", 2, HEX4_5); + print_block("you1", 4, HEX0_3); + wait(200); + clear_block(HEX0_3); clear_block(HEX4_5); clear_block(HEX6_7); + 3e4: 00008f81 jmpi 8f8 + +000003e8
: + wait(200); + clear_block(HEX0_3); clear_block(HEX4_5); clear_block(HEX6_7); +} + +int main() +{ + 3e8: defffe04 addi sp,sp,-8 + 3ec: dfc00115 stw ra,4(sp) + 3f0: dc000015 stw r16,0(sp) + init(); + 3f4: 00003440 call 344 + while(1) { + // interrupt + in_int(); + + // event + if (PUSH_EVENT == PUSH_VALSTR) { + 3f8: 04000034 movhi r16,0 + 3fc: 84087d04 addi r16,r16,8692 +int main() +{ + init(); + while(1) { + // interrupt + in_int(); + 400: 0000bc00 call bc0 + + // event + if (PUSH_EVENT == PUSH_VALSTR) { + 404: 80c00003 ldbu r3,0(r16) + 408: 00800084 movi r2,2 + 40c: 1880011e bne r3,r2,414 + // �l�̃X�g�A + store_value(); + 410: 00002a00 call 2a0 + } + if (PUSH_EVENT == PUSH_INSSTR) { + 414: 80c00003 ldbu r3,0(r16) + 418: 008000c4 movi r2,3 + 41c: 1880011e bne r3,r2,424 + // ���߂̃X�g�A + store_inst(); + 420: 00001d00 call 1d0 + } + if (PUSH_EVENT == PUSH_RUN) { + 424: 80c00003 ldbu r3,0(r16) + 428: 00800104 movi r2,4 + if (global_current_memory != (unsigned int)global_registers[Ssw_psel]) { + 42c: 01400034 movhi r5,0 + 430: 29488004 addi r5,r5,8704 + } + if (PUSH_EVENT == PUSH_INSSTR) { + // ���߂̃X�g�A + store_inst(); + } + if (PUSH_EVENT == PUSH_RUN) { + 434: 18bff01e bne r3,r2,3f8 + if (global_current_memory != (unsigned int)global_registers[Ssw_psel]) { + 438: 00800034 movhi r2,0 + 43c: 1088d404 addi r2,r2,9040 + 440: 10c002c7 ldb r3,11(r2) + 444: 28800017 ldw r2,0(r5) + global_current_memory = (unsigned int)global_registers[Ssw_psel]; + print_change_memory(global_current_memory); + 448: 1809883a mov r4,r3 + if (PUSH_EVENT == PUSH_INSSTR) { + // ���߂̃X�g�A + store_inst(); + } + if (PUSH_EVENT == PUSH_RUN) { + if (global_current_memory != (unsigned int)global_registers[Ssw_psel]) { + 44c: 10c00326 beq r2,r3,45c + global_current_memory = (unsigned int)global_registers[Ssw_psel]; + 450: 28c00015 stw r3,0(r5) + print_change_memory(global_current_memory); + 454: 00000980 call 98 + 458: 003fe706 br 3f8 + } + else { + // �v���O�������s + run_proc(); + 45c: 00001300 call 130 + 460: 003fe506 br 3f8 + +00000464 : +#include "hex_encoder.h" +#include + +void encodeNumHex(int hex_i, int num) { + char encoded = 0; + switch (num) { + 464: 00800244 movi r2,9 + 468: 11401336 bltu r2,r5,4b8 + 46c: 2945883a add r2,r5,r5 + 470: 1085883a add r2,r2,r2 + 474: 00c00034 movhi r3,0 + 478: 18c12204 addi r3,r3,1160 + 47c: 10c5883a add r2,r2,r3 + 480: 10800017 ldw r2,0(r2) + 484: 1000683a jmp r2 + 488: 000004c0 call 4c <_start+0x2c> + 48c: 000004c8 cmpgei zero,zero,19 + 490: 000004d0 cmplti zero,zero,19 + 494: 000004d8 cmpnei zero,zero,19 + 498: 000004e0 cmpeqi zero,zero,19 + 49c: 000004e8 cmpgeui zero,zero,19 + 4a0: 000004f0 cmpltui zero,zero,19 + 4a4: 000004f8 rdprs zero,zero,19 + 4a8: 000004b8 rdprs zero,zero,18 + 4ac: 000004b0 cmpltui zero,zero,18 + 4b0: 01400404 movi r5,16 + 4b4: 00001106 br 4fc + 4b8: 000b883a mov r5,zero + 4bc: 00000f06 br 4fc + 4c0: 01401004 movi r5,64 + 4c4: 00000d06 br 4fc + case 0: + encoded = (char)0x40; // 100 0000 + break; + 4c8: 017ffe44 movi r5,-7 + 4cc: 00000b06 br 4fc + case 1: + encoded = (char)0xF9; // 111 1001 + break; + 4d0: 01400904 movi r5,36 + 4d4: 00000906 br 4fc + case 2: + encoded = (char)0x24; // 010 0100 + break; + 4d8: 01400c04 movi r5,48 + 4dc: 00000706 br 4fc + case 3: + encoded = (char)0x30; // 011 0000 + break; + 4e0: 01400644 movi r5,25 + 4e4: 00000506 br 4fc + case 4: + encoded = (char)0x19; // 001 1001 + break; + 4e8: 01400484 movi r5,18 + 4ec: 00000306 br 4fc + case 5: + encoded = (char)0x12; // 001 0010 + break; + 4f0: 01400084 movi r5,2 + 4f4: 00000106 br 4fc + case 6: + encoded = (char)0x02; // 000 0010 + break; + 4f8: 01401604 movi r5,88 + default: + encoded = 0; + break; + } + + switch (hex_i) { + 4fc: 008001c4 movi r2,7 + 500: 11002036 bltu r2,r4,584 + 504: 2105883a add r2,r4,r4 + 508: 1085883a add r2,r2,r2 + 50c: 00c00034 movhi r3,0 + 510: 18c14804 addi r3,r3,1312 + 514: 10c5883a add r2,r2,r3 + 518: 10800017 ldw r2,0(r2) + 51c: 1000683a jmp r2 + 520: 00000540 call 54 <_start+0x34> + 524: 00000548 cmpgei zero,zero,21 + 528: 00000550 cmplti zero,zero,21 + 52c: 00000558 cmpnei zero,zero,21 + 530: 00000560 cmpeqi zero,zero,21 + 534: 00000568 cmpgeui zero,zero,21 + 538: 00000570 cmpltui zero,zero,21 + 53c: 0000057c xorhi zero,zero,21 + case 0: + *hex0 = encoded; + 540: 00941c04 movi r2,20592 + 544: 00000b06 br 574 + break; + case 1: + *hex1 = encoded; + 548: 00941804 movi r2,20576 + 54c: 00000906 br 574 + break; + case 2: + *hex2 = encoded; + 550: 00941404 movi r2,20560 + 554: 00000706 br 574 + break; + case 3: + *hex3 = encoded; + 558: 00941004 movi r2,20544 + 55c: 00000506 br 574 + break; + case 4: + *hex4 = encoded; + 560: 00940c04 movi r2,20528 + 564: 00000306 br 574 + break; + case 5: + *hex5 = encoded; + 568: 00940804 movi r2,20512 + 56c: 00000106 br 574 + break; + case 6: + *hex6 = encoded; + 570: 00940404 movi r2,20496 + 574: 11400005 stb r5,0(r2) + 578: f800283a ret + break; + case 7: + *hex7 = encoded; + 57c: 00940004 movi r2,20480 + 580: 11400005 stb r5,0(r2) + 584: f800283a ret + +00000588 : +} + +void encodeLatHex(int hex_i, char c) { + char encoded = 0; + + if (isdigit(c)) { + 588: 00800034 movhi r2,0 + 58c: 10883b04 addi r2,r2,8428 + 590: 10800017 ldw r2,0(r2) + 594: 29403fcc andi r5,r5,255 + 598: 2940201c xori r5,r5,128 + 59c: 297fe004 addi r5,r5,-128 + 5a0: 2885883a add r2,r5,r2 + 5a4: 10800003 ldbu r2,0(r2) + default: + break; + } +} + +void encodeLatHex(int hex_i, char c) { + 5a8: 2007883a mov r3,r4 + char encoded = 0; + + if (isdigit(c)) { + 5ac: 1080010c andi r2,r2,4 + 5b0: 10000226 beq r2,zero,5bc + encodeNumHex(hex_i, c-'0'); + 5b4: 297ff404 addi r5,r5,-48 + 5b8: 00004641 jmpi 464 + return; + } + + switch (c) { + 5bc: 00801b44 movi r2,109 + 5c0: 28805a26 beq r5,r2,72c + 5c4: 11401d16 blt r2,r5,63c + 5c8: 00801984 movi r2,102 + 5cc: 28804926 beq r5,r2,6f4 + 5d0: 11400e16 blt r2,r5,60c + 5d4: 00801884 movi r2,98 + 5d8: 28803e26 beq r5,r2,6d4 + 5dc: 11400716 blt r2,r5,5fc + 5e0: 00800b44 movi r2,45 + 5e4: 28803726 beq r5,r2,6c4 + 5e8: 00801844 movi r2,97 + 5ec: 28803726 beq r5,r2,6cc + 5f0: 00800804 movi r2,32 + 5f4: 28802f1e bne r5,r2,6b4 + 5f8: 00003006 br 6bc + 5fc: 00801904 movi r2,100 + 600: 28803826 beq r5,r2,6e4 + 604: 11403916 blt r2,r5,6ec + 608: 00003406 br 6dc + 60c: 00801a44 movi r2,105 + 610: 28803e26 beq r5,r2,70c + 614: 11400516 blt r2,r5,62c + 618: 008019c4 movi r2,103 + 61c: 28803726 beq r5,r2,6fc + 620: 00801a04 movi r2,104 + 624: 2880231e bne r5,r2,6b4 + 628: 00003606 br 704 + 62c: 00801ac4 movi r2,107 + 630: 28803a26 beq r5,r2,71c + 634: 11403b16 blt r2,r5,724 + 638: 00003606 br 714 + 63c: 00801d04 movi r2,116 + 640: 28804826 beq r5,r2,764 + 644: 11400c16 blt r2,r5,678 + 648: 00801c04 movi r2,112 + 64c: 28803d26 beq r5,r2,744 + 650: 11400516 blt r2,r5,668 + 654: 00801b84 movi r2,110 + 658: 28803626 beq r5,r2,734 + 65c: 00801bc4 movi r2,111 + 660: 2880141e bne r5,r2,6b4 + 664: 00003506 br 73c + 668: 00801c84 movi r2,114 + 66c: 28803926 beq r5,r2,754 + 670: 11403a16 blt r2,r5,75c + 674: 00003506 br 74c + 678: 00801dc4 movi r2,119 + 67c: 28803f26 beq r5,r2,77c + 680: 11400516 blt r2,r5,698 + 684: 00801d44 movi r2,117 + 688: 28803826 beq r5,r2,76c + 68c: 00801d84 movi r2,118 + 690: 2880081e bne r5,r2,6b4 + 694: 00003706 br 774 + 698: 00801e44 movi r2,121 + 69c: 28803b26 beq r5,r2,78c + 6a0: 28803816 blt r5,r2,784 + 6a4: 00801e84 movi r2,122 + 6a8: 2880021e bne r5,r2,6b4 + 6ac: 01401904 movi r5,100 + 6b0: 00003706 br 790 + 6b4: 000b883a mov r5,zero + 6b8: 00003506 br 790 + 6bc: 017fffc4 movi r5,-1 + 6c0: 00003306 br 790 + case ' ': + encoded = (char)0xFF; // 111 1111 + break; + 6c4: 01400fc4 movi r5,63 + 6c8: 00003106 br 790 + case '-': + encoded = (char)0x3F; // 011 1111 + break; + 6cc: 01400204 movi r5,8 + 6d0: 00002f06 br 790 + case 'a': + encoded = (char)0x08; // 000 1000 + break; + 6d4: 014000c4 movi r5,3 + 6d8: 00002d06 br 790 + case 'b': + encoded = (char)0x03; // 000 0011 + break; + 6dc: 014009c4 movi r5,39 + 6e0: 00002b06 br 790 + case 'c': + encoded = (char)0x27; // 010 0111 + break; + 6e4: 01400844 movi r5,33 + 6e8: 00002906 br 790 + case 'd': + encoded = (char)0x21; // 010 0001 + break; + 6ec: 01400184 movi r5,6 + 6f0: 00002706 br 790 + case 'e': + encoded = (char)0x06; // 000 0110 + break; + 6f4: 01400384 movi r5,14 + 6f8: 00002506 br 790 + case 'f': + encoded = (char)0x0E; // 000 1110 + break; + 6fc: 01401084 movi r5,66 + 700: 00002306 br 790 + case 'g': + encoded = (char)0x42; // 100 0010 + break; + 704: 014002c4 movi r5,11 + 708: 00002106 br 790 + case 'h': + encoded = (char)0x0B; // 000 1011 + break; + 70c: 017ffec4 movi r5,-5 + 710: 00001f06 br 790 + case 'i': + encoded = (char)0xFB; // 111 1011 + break; + 714: 01401844 movi r5,97 + 718: 00001d06 br 790 + case 'j': + encoded = (char)0x61; // 110 0001 + break; + 71c: 01400284 movi r5,10 + 720: 00001b06 br 790 + case 'k': + encoded = (char)0x0A; // 000 1010 + break; + 724: 014011c4 movi r5,71 + 728: 00001906 br 790 + case 'l': + encoded = (char)0x47; // 100 0111 + break; + 72c: 01401204 movi r5,72 + 730: 00001706 br 790 + case 'm': + encoded = (char)0x48; // 100 1000 + break; + 734: 01400ac4 movi r5,43 + 738: 00001506 br 790 + case 'n': + encoded = (char)0x2B; // 010 1011 + break; + 73c: 014008c4 movi r5,35 + 740: 00001306 br 790 + case 'o': + encoded = (char)0x23; // 010 0011 + break; + 744: 01400304 movi r5,12 + 748: 00001106 br 790 + case 'p': + encoded = (char)0x0C; // 000 1100 + break; + 74c: 01400104 movi r5,4 + 750: 00000f06 br 790 + case 'q': + encoded = (char)0x04; // 000 0100 + break; + 754: 01400bc4 movi r5,47 + 758: 00000d06 br 790 + case 'r': + encoded = (char)0x2F; // 010 1111 + break; + 75c: 014004c4 movi r5,19 + 760: 00000b06 br 790 + case 's': + encoded = (char)0x13; // 001 0011 + break; + 764: 014001c4 movi r5,7 + 768: 00000906 br 790 + case 't': + encoded = (char)0x07; // 000 0111 + break; + 76c: 014018c4 movi r5,99 + 770: 00000706 br 790 + case 'u': + encoded = (char)0x63; // 110 0011 + break; + 774: 01401044 movi r5,65 + 778: 00000506 br 790 + case 'v': + encoded = (char)0x41; // 100 0001 + break; + 77c: 01400044 movi r5,1 + 780: 00000306 br 790 + case 'w': + encoded = (char)0x01; // 000 0001 + break; + 784: 01400244 movi r5,9 + 788: 00000106 br 790 + case 'x': + encoded = (char)0x09; // 000 1001 + break; + 78c: 01400444 movi r5,17 + default: + encoded = 0; + break; + } + + switch (hex_i) { + 790: 008001c4 movi r2,7 + 794: 10c02036 bltu r2,r3,818 + 798: 18c5883a add r2,r3,r3 + 79c: 1085883a add r2,r2,r2 + 7a0: 00c00034 movhi r3,0 + 7a4: 18c1ed04 addi r3,r3,1972 + 7a8: 10c5883a add r2,r2,r3 + 7ac: 10800017 ldw r2,0(r2) + 7b0: 1000683a jmp r2 + 7b4: 000007d4 movui zero,31 + 7b8: 000007dc xori zero,zero,31 + 7bc: 000007e4 muli zero,zero,31 + 7c0: 000007ec andhi zero,zero,31 + 7c4: 000007f4 movhi zero,31 + 7c8: 000007fc xorhi zero,zero,31 + 7cc: 00000804 movi zero,32 + 7d0: 00000810 cmplti zero,zero,32 + case 0: + *hex0 = encoded; + 7d4: 00941c04 movi r2,20592 + 7d8: 00000b06 br 808 + break; + case 1: + *hex1 = encoded; + 7dc: 00941804 movi r2,20576 + 7e0: 00000906 br 808 + break; + case 2: + *hex2 = encoded; + 7e4: 00941404 movi r2,20560 + 7e8: 00000706 br 808 + break; + case 3: + *hex3 = encoded; + 7ec: 00941004 movi r2,20544 + 7f0: 00000506 br 808 + break; + case 4: + *hex4 = encoded; + 7f4: 00940c04 movi r2,20528 + 7f8: 00000306 br 808 + break; + case 5: + *hex5 = encoded; + 7fc: 00940804 movi r2,20512 + 800: 00000106 br 808 + break; + case 6: + *hex6 = encoded; + 804: 00940404 movi r2,20496 + 808: 11400005 stb r5,0(r2) + 80c: f800283a ret + break; + case 7: + *hex7 = encoded; + 810: 00940004 movi r2,20480 + 814: 11400005 stb r5,0(r2) + 818: f800283a ret + +0000081c : + */ +#include "hex_out.h" +#include "hex_encoder.h" +#include "system.h" + +void print_block(char * str, unsigned int size, enum BLOCK_N block_i) { + 81c: defffc04 addi sp,sp,-16 + 820: dc400115 stw r17,4(sp) + 824: dc000015 stw r16,0(sp) + 828: dfc00315 stw ra,12(sp) + 82c: dc800215 stw r18,8(sp) + 830: 2021883a mov r16,r4 + 834: 2823883a mov r17,r5 + int i; + if (block_i == HEX0_3) { + 838: 30000d1e bne r6,zero,870 + if (size > 4) panic(); + 83c: 00800104 movi r2,4 + 840: 1140012e bgeu r2,r5,848 + 844: 00011340 call 1134 + 848: 8461883a add r16,r16,r17 + 84c: 0025883a mov r18,zero + 850: 00000306 br 860 + for (i = 0; i < size; i++) { + encodeLatHex(i,str[size-1-i]); + 854: 81400007 ldb r5,0(r16) + +void print_block(char * str, unsigned int size, enum BLOCK_N block_i) { + int i; + if (block_i == HEX0_3) { + if (size > 4) panic(); + for (i = 0; i < size; i++) { + 858: 94800044 addi r18,r18,1 + encodeLatHex(i,str[size-1-i]); + 85c: 00005880 call 588 + 860: 9009883a mov r4,r18 + +void print_block(char * str, unsigned int size, enum BLOCK_N block_i) { + int i; + if (block_i == HEX0_3) { + if (size > 4) panic(); + for (i = 0; i < size; i++) { + 864: 843fffc4 addi r16,r16,-1 + 868: 947ffa1e bne r18,r17,854 + 86c: 00001c06 br 8e0 + encodeLatHex(i,str[size-1-i]); + } + } + else if (block_i == HEX4_5) { + 870: 00800044 movi r2,1 + 874: 30800d1e bne r6,r2,8ac + if (size > 2) panic(); + 878: 00800084 movi r2,2 + 87c: 1140012e bgeu r2,r5,884 + 880: 00011340 call 1134 + 884: 8461883a add r16,r16,r17 + 888: 0025883a mov r18,zero + 88c: 00000306 br 89c + for (i = 0; i < size; i++) { + encodeLatHex(i+4,str[size-1-i]); + 890: 81400007 ldb r5,0(r16) + encodeLatHex(i,str[size-1-i]); + } + } + else if (block_i == HEX4_5) { + if (size > 2) panic(); + for (i = 0; i < size; i++) { + 894: 94800044 addi r18,r18,1 + encodeLatHex(i+4,str[size-1-i]); + 898: 00005880 call 588 + 89c: 91000104 addi r4,r18,4 + encodeLatHex(i,str[size-1-i]); + } + } + else if (block_i == HEX4_5) { + if (size > 2) panic(); + for (i = 0; i < size; i++) { + 8a0: 843fffc4 addi r16,r16,-1 + 8a4: 947ffa1e bne r18,r17,890 + 8a8: 00000d06 br 8e0 + encodeLatHex(i+4,str[size-1-i]); + } + } + else if (block_i == HEX6_7) { + 8ac: 00800084 movi r2,2 + 8b0: 30800b1e bne r6,r2,8e0 + if (size > 2) panic(); + 8b4: 3140012e bgeu r6,r5,8bc + 8b8: 00011340 call 1134 + 8bc: 8461883a add r16,r16,r17 + 8c0: 0025883a mov r18,zero + 8c4: 00000306 br 8d4 + for (i = 0; i < size; i++) { + encodeLatHex(i+6,str[size-1-i]); + 8c8: 81400007 ldb r5,0(r16) + encodeLatHex(i+4,str[size-1-i]); + } + } + else if (block_i == HEX6_7) { + if (size > 2) panic(); + for (i = 0; i < size; i++) { + 8cc: 94800044 addi r18,r18,1 + encodeLatHex(i+6,str[size-1-i]); + 8d0: 00005880 call 588 + 8d4: 91000184 addi r4,r18,6 + encodeLatHex(i+4,str[size-1-i]); + } + } + else if (block_i == HEX6_7) { + if (size > 2) panic(); + for (i = 0; i < size; i++) { + 8d8: 843fffc4 addi r16,r16,-1 + 8dc: 947ffa1e bne r18,r17,8c8 + encodeLatHex(i+6,str[size-1-i]); + } + } +} + 8e0: dfc00317 ldw ra,12(sp) + 8e4: dc800217 ldw r18,8(sp) + 8e8: dc400117 ldw r17,4(sp) + 8ec: dc000017 ldw r16,0(sp) + 8f0: dec00404 addi sp,sp,16 + 8f4: f800283a ret + +000008f8 : + +void clear_block(enum BLOCK_N block_i) { + 8f8: 2007883a mov r3,r4 + if (block_i == HEX0_3) { + print_block(" ", 4, HEX0_3); + 8fc: 01400104 movi r5,4 + 900: 000d883a mov r6,zero + 904: 01000034 movhi r4,0 + 908: 21075d04 addi r4,r4,7540 + } + } +} + +void clear_block(enum BLOCK_N block_i) { + if (block_i == HEX0_3) { + 90c: 18000c26 beq r3,zero,940 + print_block(" ", 4, HEX0_3); + } + else if (block_i == HEX4_5) { + 910: 00800044 movi r2,1 + print_block(" ", 2, HEX4_5); + 914: 180d883a mov r6,r3 + 918: 01000034 movhi r4,0 + 91c: 21075f04 addi r4,r4,7548 + 920: 01400084 movi r5,2 + +void clear_block(enum BLOCK_N block_i) { + if (block_i == HEX0_3) { + print_block(" ", 4, HEX0_3); + } + else if (block_i == HEX4_5) { + 924: 18800626 beq r3,r2,940 + print_block(" ", 2, HEX4_5); + } + else if (block_i == HEX6_7) { + 928: 00800084 movi r2,2 + print_block(" ", 2, HEX6_7); + 92c: 180b883a mov r5,r3 + 930: 01000034 movhi r4,0 + 934: 21075f04 addi r4,r4,7548 + 938: 180d883a mov r6,r3 + print_block(" ", 4, HEX0_3); + } + else if (block_i == HEX4_5) { + print_block(" ", 2, HEX4_5); + } + else if (block_i == HEX6_7) { + 93c: 1880011e bne r3,r2,944 + print_block(" ", 2, HEX6_7); + 940: 000081c1 jmpi 81c + 944: f800283a ret + +00000948 : + } +} + +void print_number(char num) { + 948: defff804 addi sp,sp,-32 + 94c: dc800415 stw r18,16(sp) + 950: dc400315 stw r17,12(sp) + 954: dfc00715 stw ra,28(sp) + 958: dd000615 stw r20,24(sp) + 95c: dcc00515 stw r19,20(sp) + 960: dc000215 stw r16,8(sp) + 964: 2023883a mov r17,r4 + 968: 0025883a mov r18,zero + int i; + char buf[5]; + char val; + for (i = 0; i < 4; i++) { + if (num < 0) { + 96c: 88803fcc andi r2,r17,255 + 970: 1080201c xori r2,r2,128 + 974: 10bfe004 addi r2,r2,-128 + buf[0] = '-'; + 978: 05000b44 movi r20,45 + val = -num; + 97c: 0461c83a sub r16,zero,r17 +void print_number(char num) { + int i; + char buf[5]; + char val; + for (i = 0; i < 4; i++) { + if (num < 0) { + 980: 10000216 blt r2,zero,98c + buf[0] = '-'; + val = -num; + } else { + buf[0] = ' '; + 984: 05000804 movi r20,32 + 988: 8821883a mov r16,r17 + val = num; + } + buf[1] = val/100%10 + '0'; + 98c: 84003fcc andi r16,r16,255 + 990: 8400201c xori r16,r16,128 + 994: 843fe004 addi r16,r16,-128 + 998: 8009883a mov r4,r16 + 99c: 01401904 movi r5,100 + 9a0: 00011dc0 call 11dc <__divsi3> + 9a4: 11003fcc andi r4,r2,255 + 9a8: 2100201c xori r4,r4,128 + 9ac: 213fe004 addi r4,r4,-128 + 9b0: 01400284 movi r5,10 + 9b4: 000123c0 call 123c <__modsi3> + buf[2] = val/10%10 + '0'; + 9b8: 8009883a mov r4,r16 + 9bc: 01400284 movi r5,10 + val = -num; + } else { + buf[0] = ' '; + val = num; + } + buf[1] = val/100%10 + '0'; + 9c0: 14c00c04 addi r19,r2,48 + buf[2] = val/10%10 + '0'; + 9c4: 00011dc0 call 11dc <__divsi3> + 9c8: 11003fcc andi r4,r2,255 + 9cc: 2100201c xori r4,r4,128 + 9d0: 213fe004 addi r4,r4,-128 + 9d4: 01400284 movi r5,10 + 9d8: 000123c0 call 123c <__modsi3> + buf[3] = val%10 + '0'; + 9dc: 8009883a mov r4,r16 + 9e0: 01400284 movi r5,10 + } else { + buf[0] = ' '; + val = num; + } + buf[1] = val/100%10 + '0'; + buf[2] = val/10%10 + '0'; + 9e4: 14000c04 addi r16,r2,48 + buf[3] = val%10 + '0'; + 9e8: 000123c0 call 123c <__modsi3> + 9ec: 10c00c04 addi r3,r2,48 + +void print_number(char num) { + int i; + char buf[5]; + char val; + for (i = 0; i < 4; i++) { + 9f0: 94800044 addi r18,r18,1 + 9f4: 00800104 movi r2,4 + 9f8: 90bfdc1e bne r18,r2,96c + } + buf[1] = val/100%10 + '0'; + buf[2] = val/10%10 + '0'; + buf[3] = val%10 + '0'; + } + clear_block(HEX0_3); + 9fc: 0009883a mov r4,zero + a00: d8c000c5 stb r3,3(sp) + a04: dc000085 stb r16,2(sp) + a08: dcc00045 stb r19,1(sp) + a0c: dd000005 stb r20,0(sp) + a10: 00008f80 call 8f8 + print_block(buf, 4, HEX0_3); + a14: 900b883a mov r5,r18 + a18: d809883a mov r4,sp + a1c: 000d883a mov r6,zero + a20: 000081c0 call 81c +} + a24: dfc00717 ldw ra,28(sp) + a28: dd000617 ldw r20,24(sp) + a2c: dcc00517 ldw r19,20(sp) + a30: dc800417 ldw r18,16(sp) + a34: dc400317 ldw r17,12(sp) + a38: dc000217 ldw r16,8(sp) + a3c: dec00804 addi sp,sp,32 + a40: f800283a ret + +00000a44 : + global_registers[Ssw_rw] = (char)s.splited.rw_mode; + global_registers[Ssw_run] = (char)s.splited.run_mode; +} + +enum PushEvent push_decode(char psw) { + switch(psw) { + a44: 21003fcc andi r4,r4,255 + a48: 2100201c xori r4,r4,128 + a4c: 213fe004 addi r4,r4,-128 + a50: 00800144 movi r2,5 + a54: 20800826 beq r4,r2,a78 + a58: 00800184 movi r2,6 + a5c: 00c00104 movi r3,4 + a60: 20800626 beq r4,r2,a7c + a64: 008000c4 movi r2,3 + a68: 0007883a mov r3,zero + a6c: 2080031e bne r4,r2,a7c + a70: 00c00084 movi r3,2 + a74: 00000106 br a7c + case 0x3: + return PUSH_VALSTR; + a78: 00c000c4 movi r3,3 + case 0x6: + return PUSH_RUN; + break; + } + return PUSH_NONE; +} + a7c: 1805883a mov r2,r3 + a80: f800283a ret + +00000a84 : + +void push_int() { + static unsigned char status = 0; + static enum PushEvent event_code; + volatile sw_t s; + s.sw = *switches; + a84: 00942404 movi r2,20624 + a88: 10800017 ldw r2,0(r2) + + switch (status) { + a8c: d0e04403 ldbu r3,-32496(gp) + break; + } + return PUSH_NONE; +} + +void push_int() { + a90: deffff04 addi sp,sp,-4 + static unsigned char status = 0; + static enum PushEvent event_code; + volatile sw_t s; + s.sw = *switches; + + switch (status) { + a94: 01000044 movi r4,1 + +void push_int() { + static unsigned char status = 0; + static enum PushEvent event_code; + volatile sw_t s; + s.sw = *switches; + a98: d8800015 stw r2,0(sp) + + switch (status) { + a9c: 19003726 beq r3,r4,b7c + aa0: 19000336 bltu r3,r4,ab0 + aa4: 00800084 movi r2,2 + aa8: 1880421e bne r3,r2,bb4 + aac: 00003d06 br ba4 + case 0: + PUSH_EVENT = PUSH_NONE; + if (*push_switches != 7) { + ab0: 01142004 movi r4,20608 + ab4: 20800003 ldbu r2,0(r4) + ab8: 00c001c4 movi r3,7 + volatile sw_t s; + s.sw = *switches; + + switch (status) { + case 0: + PUSH_EVENT = PUSH_NONE; + abc: d0204205 stb zero,-32504(gp) + if (*push_switches != 7) { + ac0: 10803fcc andi r2,r2,255 + ac4: 1080201c xori r2,r2,128 + ac8: 10bfe004 addi r2,r2,-128 + acc: 10c01526 beq r2,r3,b24 + event_code = push_decode(*push_switches); + ad0: 20800003 ldbu r2,0(r4) + global_registers[Ssw_rw] = (char)s.splited.rw_mode; + global_registers[Ssw_run] = (char)s.splited.run_mode; +} + +enum PushEvent push_decode(char psw) { + switch(psw) { + ad4: 10c03fcc andi r3,r2,255 + ad8: 18c0201c xori r3,r3,128 + adc: 18ffe004 addi r3,r3,-128 + ae0: 00800144 movi r2,5 + ae4: 18800b26 beq r3,r2,b14 + ae8: 00800184 movi r2,6 + aec: 18800326 beq r3,r2,afc + af0: 008000c4 movi r2,3 + af4: 1880031e bne r3,r2,b04 + af8: 00000406 br b0c + afc: 00800104 movi r2,4 + b00: 00000506 br b18 + b04: 0005883a mov r2,zero + b08: 00000306 br b18 + b0c: 00800084 movi r2,2 + b10: 00000106 br b18 + b14: 008000c4 movi r2,3 + + switch (status) { + case 0: + PUSH_EVENT = PUSH_NONE; + if (*push_switches != 7) { + event_code = push_decode(*push_switches); + b18: d0a04315 stw r2,-32500(gp) + status = 1; + b1c: 00800044 movi r2,1 + b20: d0a04405 stb r2,-32496(gp) + b24: d8800017 ldw r2,0(sp) +void in_int() { + push_int(); +} + +static void update_sw_reg(sw_t s) { + global_registers[Ssw_data] = (char)s.data.value; + b28: 00c00034 movhi r3,0 + b2c: 18c8d404 addi r3,r3,9040 + b30: 1012d2ba srli r9,r2,10 + global_registers[Ssw_inst] = (char)s.splited.instruction_code; + b34: 1008d3ba srli r4,r2,14 + global_registers[Ssw_memi] = (char)s.splited.memory_index; + b38: 100ad1ba srli r5,r2,6 + global_registers[Ssw_regi] = (char)s.splited.register_index; + global_registers[Ssw_psel] = (char)s.splited.program_selecter; + b3c: 100cd0ba srli r6,r2,2 + global_registers[Ssw_rw] = (char)s.splited.rw_mode; + b40: 100ed07a srli r7,r2,1 + push_int(); +} + +static void update_sw_reg(sw_t s) { + global_registers[Ssw_data] = (char)s.data.value; + global_registers[Ssw_inst] = (char)s.splited.instruction_code; + b44: 210003cc andi r4,r4,15 + global_registers[Ssw_memi] = (char)s.splited.memory_index; + b48: 294003cc andi r5,r5,15 + global_registers[Ssw_regi] = (char)s.splited.register_index; + b4c: 4a0003cc andi r8,r9,15 + global_registers[Ssw_psel] = (char)s.splited.program_selecter; + b50: 318003cc andi r6,r6,15 + global_registers[Ssw_rw] = (char)s.splited.rw_mode; + b54: 39c0004c andi r7,r7,1 + global_registers[Ssw_run] = (char)s.splited.run_mode; + b58: 1080004c andi r2,r2,1 + b5c: 18800345 stb r2,13(r3) + push_int(); +} + +static void update_sw_reg(sw_t s) { + global_registers[Ssw_data] = (char)s.data.value; + global_registers[Ssw_inst] = (char)s.splited.instruction_code; + b60: 19000205 stb r4,8(r3) + global_registers[Ssw_memi] = (char)s.splited.memory_index; + b64: 19400285 stb r5,10(r3) + global_registers[Ssw_regi] = (char)s.splited.register_index; + b68: 1a000245 stb r8,9(r3) + global_registers[Ssw_psel] = (char)s.splited.program_selecter; + b6c: 198002c5 stb r6,11(r3) + global_registers[Ssw_rw] = (char)s.splited.rw_mode; + b70: 19c00305 stb r7,12(r3) +void in_int() { + push_int(); +} + +static void update_sw_reg(sw_t s) { + global_registers[Ssw_data] = (char)s.data.value; + b74: 1a4001c5 stb r9,7(r3) + b78: 00000f06 br bb8 + status = 1; + } + update_sw_reg(s); // �X�C�b�`���W�X�^�X�V + break; + case 1: + if (*push_switches == 7) status = 2; + b7c: 00942004 movi r2,20608 + b80: 10800003 ldbu r2,0(r2) + b84: 00c001c4 movi r3,7 + b88: 10803fcc andi r2,r2,255 + b8c: 1080201c xori r2,r2,128 + b90: 10bfe004 addi r2,r2,-128 + b94: 10c0081e bne r2,r3,bb8 + b98: 00800084 movi r2,2 + b9c: d0a04405 stb r2,-32496(gp) + ba0: 00000506 br bb8 + break; + case 2: + PUSH_EVENT = event_code; + ba4: d0a04317 ldw r2,-32500(gp) + status = 0; + ba8: d0204405 stb zero,-32496(gp) + break; + case 1: + if (*push_switches == 7) status = 2; + break; + case 2: + PUSH_EVENT = event_code; + bac: d0a04205 stb r2,-32504(gp) + bb0: 00000106 br bb8 + status = 0; + break; + default: + status = 0; + bb4: d0204405 stb zero,-32496(gp) + break; + } +} + bb8: dec00104 addi sp,sp,4 + bbc: f800283a ret + +00000bc0 : +#include "sys_register.h" + +unsigned char PUSH_EVENT = PUSH_NONE; + +void in_int() { + push_int(); + bc0: 0000a841 jmpi a84 + +00000bc4 : + break; + } +} + +void inst_jump(enum Register reg, unsigned char memory_index){ + global_registers[Spc]=global_registers[reg]+memory_index; + bc4: 00c00034 movhi r3,0 + bc8: 18c8d404 addi r3,r3,9040 + bcc: 20c9883a add r4,r4,r3 + bd0: 20800003 ldbu r2,0(r4) + bd4: 288b883a add r5,r5,r2 + bd8: 19400045 stb r5,1(r3) +} + bdc: f800283a ret + +00000be0 : +void inst_store(enum Register reg, unsigned char memory_index){ + memory_store(memory_index, reg); +} +void inst_delay(enum Register reg, unsigned char memory_index){ + //���W�X�^�̒l*10ms�҂� +} + be0: f800283a ret + +00000be4 : +void inst_add(enum Register reg, unsigned char memory_index){ + global_registers[Sacc]+=global_registers[reg]; + be4: 00c00034 movhi r3,0 + be8: 18c8d404 addi r3,r3,9040 + bec: 20c9883a add r4,r4,r3 + bf0: 21000003 ldbu r4,0(r4) + bf4: 18800143 ldbu r2,5(r3) + bf8: 1105883a add r2,r2,r4 + bfc: 18800145 stb r2,5(r3) +} + c00: f800283a ret + +00000c04 : +void inst_comp(enum Register reg, unsigned char memory_index){ + if(global_registers[Sacc]==global_registers[reg]){ + c04: 00c00034 movhi r3,0 + c08: 18c8d404 addi r3,r3,9040 + c0c: 20c9883a add r4,r4,r3 + c10: 21000007 ldb r4,0(r4) + c14: 18800147 ldb r2,5(r3) + c18: 1100021e bne r2,r4,c24 + global_registers[Sflg]=0; + c1c: 18000185 stb zero,6(r3) + c20: f800283a ret + } else if(global_registers[Sacc] > global_registers[reg]){ + c24: 2080020e bge r4,r2,c30 + global_registers[Sflg]=-1; + c28: 00bfffc4 movi r2,-1 + c2c: 00000106 br c34 + }else{ + global_registers[Sflg]=1; + c30: 00800044 movi r2,1 + c34: 18800185 stb r2,6(r3) + c38: f800283a ret + +00000c3c : + } +} +void inst_jeq(enum Register reg, unsigned char memory_index){ + if(global_registers[Sflg]==global_registers[reg]){ + c3c: 01400034 movhi r5,0 + c40: 2948d404 addi r5,r5,9040 + c44: 2149883a add r4,r4,r5 + c48: 20c00007 ldb r3,0(r4) + c4c: 28800187 ldb r2,6(r5) + c50: 10c0031e bne r2,r3,c60 + global_registers[Spc]++; + c54: 28800043 ldbu r2,1(r5) + c58: 10800044 addi r2,r2,1 + c5c: 28800045 stb r2,1(r5) + c60: f800283a ret + +00000c64 : + } +} +void inst_jne(enum Register reg, unsigned char memory_index){ + if(global_registers[Sflg]!=global_registers[reg]){ + c64: 01400034 movhi r5,0 + c68: 2948d404 addi r5,r5,9040 + c6c: 2149883a add r4,r4,r5 + c70: 20c00007 ldb r3,0(r4) + c74: 28800187 ldb r2,6(r5) + c78: 10c00326 beq r2,r3,c88 + global_registers[Spc]++; + c7c: 28800043 ldbu r2,1(r5) + c80: 10800044 addi r2,r2,1 + c84: 28800045 stb r2,1(r5) + c88: f800283a ret + +00000c8c : + } +} +void inst_jieq(char im, unsigned char memory_index){ + if(global_registers[Sflg]==im){ + c8c: 00c00034 movhi r3,0 + c90: 18c8d404 addi r3,r3,9040 + c94: 21003fcc andi r4,r4,255 + c98: 18800187 ldb r2,6(r3) + c9c: 2100201c xori r4,r4,128 + ca0: 213fe004 addi r4,r4,-128 + ca4: 1100031e bne r2,r4,cb4 + global_registers[Spc]++; + ca8: 18800043 ldbu r2,1(r3) + cac: 10800044 addi r2,r2,1 + cb0: 18800045 stb r2,1(r3) + cb4: f800283a ret + +00000cb8 : + } +} +void inst_jine(char im, unsigned char memory_index){ + if(global_registers[Sflg]!=im){ + cb8: 00c00034 movhi r3,0 + cbc: 18c8d404 addi r3,r3,9040 + cc0: 21003fcc andi r4,r4,255 + cc4: 18800187 ldb r2,6(r3) + cc8: 2100201c xori r4,r4,128 + ccc: 213fe004 addi r4,r4,-128 + cd0: 11000326 beq r2,r4,ce0 + global_registers[Spc]++; + cd4: 18800043 ldbu r2,1(r3) + cd8: 10800044 addi r2,r2,1 + cdc: 18800045 stb r2,1(r3) + ce0: f800283a ret + +00000ce4 : + print_block(buf, 4, HEX0_3); +} +void inst_load(enum Register reg, unsigned char memory_index){ + memory_load(memory_index, reg); +} +void inst_store(enum Register reg, unsigned char memory_index){ + ce4: 2005883a mov r2,r4 + memory_store(memory_index, reg); + ce8: 29003fcc andi r4,r5,255 + cec: 100b883a mov r5,r2 + cf0: 00010a81 jmpi 10a8 + +00000cf4 : + char buf[5]; + memory_load(memory_index, Sseg); + sprintf(buf, "%04d", global_registers[Sseg]); + print_block(buf, 4, HEX0_3); +} +void inst_load(enum Register reg, unsigned char memory_index){ + cf4: 2005883a mov r2,r4 + memory_load(memory_index, reg); + cf8: 29003fcc andi r4,r5,255 + cfc: 100b883a mov r5,r2 + d00: 00010381 jmpi 1038 + +00000d04 : +} + +void inst_jump(enum Register reg, unsigned char memory_index){ + global_registers[Spc]=global_registers[reg]+memory_index; +} +void inst_output(enum Register reg, unsigned char memory_index){ + d04: defffd04 addi sp,sp,-12 + //�������̒l��7�Z�O�ɕ\�� + char buf[5]; + memory_load(memory_index, Sseg); + d08: 29003fcc andi r4,r5,255 + d0c: 01400384 movi r5,14 +} + +void inst_jump(enum Register reg, unsigned char memory_index){ + global_registers[Spc]=global_registers[reg]+memory_index; +} +void inst_output(enum Register reg, unsigned char memory_index){ + d10: dfc00215 stw ra,8(sp) + //�������̒l��7�Z�O�ɕ\�� + char buf[5]; + memory_load(memory_index, Sseg); + d14: 00010380 call 1038 + sprintf(buf, "%04d", global_registers[Sseg]); + d18: 00800034 movhi r2,0 + d1c: 1088d404 addi r2,r2,9040 + d20: 11800387 ldb r6,14(r2) + d24: d809883a mov r4,sp + d28: 01400034 movhi r5,0 + d2c: 29475604 addi r5,r5,7512 + d30: 00012e40 call 12e4 + print_block(buf, 4, HEX0_3); + d34: d809883a mov r4,sp + d38: 01400104 movi r5,4 + d3c: 000d883a mov r6,zero + d40: 000081c0 call 81c +} + d44: dfc00217 ldw ra,8(sp) + d48: dec00304 addi sp,sp,12 + d4c: f800283a ret + +00000d50 : +#include "sys_register.h" +#include "hex_out.h" +#include + +struct InstRec inst_fetch(){ + return inst_memory_load((unsigned int)global_registers[Spc]++); + d50: 00c00034 movhi r3,0 + d54: 18c8d404 addi r3,r3,9040 + d58: 18800043 ldbu r2,1(r3) +#include "sys_memory.h" +#include "sys_register.h" +#include "hex_out.h" +#include + +struct InstRec inst_fetch(){ + d5c: deffff04 addi sp,sp,-4 + d60: dfc00015 stw ra,0(sp) + return inst_memory_load((unsigned int)global_registers[Spc]++); + d64: 11003fcc andi r4,r2,255 + d68: 2100201c xori r4,r4,128 + d6c: 213fe004 addi r4,r4,-128 + d70: 10800044 addi r2,r2,1 + d74: 18800045 stb r2,1(r3) + d78: 0000fbc0 call fbc +} + d7c: dfc00017 ldw ra,0(sp) + d80: dec00104 addi sp,sp,4 + d84: f800283a ret + +00000d88 : + +void inst_decode(struct InstRec inst_rec){ + d88: 2004d13a srli r2,r4,4 + d8c: 2006d23a srli r3,r4,8 + switch(inst_rec.inst) { + d90: 210003cc andi r4,r4,15 + d94: 21bfffc4 addi r6,r4,-1 + +struct InstRec inst_fetch(){ + return inst_memory_load((unsigned int)global_registers[Spc]++); +} + +void inst_decode(struct InstRec inst_rec){ + d98: 114003cc andi r5,r2,15 + switch(inst_rec.inst) { + d9c: 00800284 movi r2,10 + +struct InstRec inst_fetch(){ + return inst_memory_load((unsigned int)global_registers[Spc]++); +} + +void inst_decode(struct InstRec inst_rec){ + da0: 190003cc andi r4,r3,15 + switch(inst_rec.inst) { + da4: 11805336 bltu r2,r6,ef4 + da8: 3185883a add r2,r6,r6 + dac: 1085883a add r2,r2,r2 + db0: 00c00034 movhi r3,0 + db4: 18c37104 addi r3,r3,3524 + db8: 10c5883a add r2,r2,r3 + dbc: 10800017 ldw r2,0(r2) + dc0: 1000683a jmp r2 + dc4: 00000df0 cmpltui zero,zero,55 + dc8: 00000e10 cmplti zero,zero,56 + dcc: 00000e1c xori zero,zero,56 + dd0: 00000e28 cmpgeui zero,zero,56 + dd4: 00000ef4 movhi zero,59 + dd8: 00000e34 movhi zero,56 + ddc: 00000e58 cmpnei zero,zero,57 + de0: 00000e64 muli zero,zero,57 + de4: 00000e84 movi zero,58 + de8: 00000eb0 cmpltui zero,zero,58 + dec: 00000ed4 movui zero,59 + break; + } +} + +void inst_jump(enum Register reg, unsigned char memory_index){ + global_registers[Spc]=global_registers[reg]+memory_index; + df0: 00c00034 movhi r3,0 + df4: 18c8d404 addi r3,r3,9040 + df8: 20803fcc andi r2,r4,255 + dfc: 10c5883a add r2,r2,r3 + e00: 10800003 ldbu r2,0(r2) + e04: 2885883a add r2,r5,r2 + e08: 18800045 stb r2,1(r3) + e0c: f800283a ret + break; + case INST_JUMP: + inst_jump(inst_rec.regi, inst_rec.memi); + break; + case INST_OUTPUT: + inst_output(inst_rec.regi, inst_rec.memi); + e10: 21003fcc andi r4,r4,255 + e14: 29403fcc andi r5,r5,255 + e18: 0000d041 jmpi d04 + break; + case INST_LOAD: + inst_load(inst_rec.regi, inst_rec.memi); + e1c: 21003fcc andi r4,r4,255 + e20: 29403fcc andi r5,r5,255 + e24: 0000cf41 jmpi cf4 + break; + case INST_STORE: + inst_store(inst_rec.regi, inst_rec.memi); + e28: 21003fcc andi r4,r4,255 + e2c: 29403fcc andi r5,r5,255 + e30: 0000ce41 jmpi ce4 +} +void inst_delay(enum Register reg, unsigned char memory_index){ + //���W�X�^�̒l*10ms�҂� +} +void inst_add(enum Register reg, unsigned char memory_index){ + global_registers[Sacc]+=global_registers[reg]; + e34: 00c00034 movhi r3,0 + e38: 18c8d404 addi r3,r3,9040 + e3c: 20803fcc andi r2,r4,255 + e40: 10c5883a add r2,r2,r3 + e44: 11000003 ldbu r4,0(r2) + e48: 18800143 ldbu r2,5(r3) + e4c: 1105883a add r2,r2,r4 + e50: 18800145 stb r2,5(r3) + e54: f800283a ret + break; + case INST_ADD: + inst_add(inst_rec.regi, inst_rec.memi); + break; + case INST_COMP: + inst_comp(inst_rec.regi, inst_rec.memi); + e58: 21003fcc andi r4,r4,255 + e5c: 29403fcc andi r5,r5,255 + e60: 0000c041 jmpi c04 + }else{ + global_registers[Sflg]=1; + } +} +void inst_jeq(enum Register reg, unsigned char memory_index){ + if(global_registers[Sflg]==global_registers[reg]){ + e64: 20803fcc andi r2,r4,255 + e68: 01000034 movhi r4,0 + e6c: 2108d404 addi r4,r4,9040 + e70: 1105883a add r2,r2,r4 + e74: 10c00007 ldb r3,0(r2) + e78: 20800187 ldb r2,6(r4) + e7c: 10c01d1e bne r2,r3,ef4 + e80: 00000706 br ea0 + global_registers[Spc]++; + } +} +void inst_jne(enum Register reg, unsigned char memory_index){ + if(global_registers[Sflg]!=global_registers[reg]){ + e84: 20803fcc andi r2,r4,255 + e88: 01000034 movhi r4,0 + e8c: 2108d404 addi r4,r4,9040 + e90: 1105883a add r2,r2,r4 + e94: 10c00007 ldb r3,0(r2) + e98: 20800187 ldb r2,6(r4) + e9c: 10c01526 beq r2,r3,ef4 + global_registers[Spc]++; + ea0: 20800043 ldbu r2,1(r4) + ea4: 10800044 addi r2,r2,1 + ea8: 20800045 stb r2,1(r4) + eac: f800283a ret + } +} +void inst_jieq(char im, unsigned char memory_index){ + if(global_registers[Sflg]==im){ + eb0: 01400034 movhi r5,0 + eb4: 2948d404 addi r5,r5,9040 + eb8: 28c00187 ldb r3,6(r5) + ebc: 208003cc andi r2,r4,15 + ec0: 18800c1e bne r3,r2,ef4 + global_registers[Spc]++; + ec4: 28800043 ldbu r2,1(r5) + ec8: 10800044 addi r2,r2,1 + ecc: 28800045 stb r2,1(r5) + ed0: f800283a ret + } +} +void inst_jine(char im, unsigned char memory_index){ + if(global_registers[Sflg]!=im){ + ed4: 01400034 movhi r5,0 + ed8: 2948d404 addi r5,r5,9040 + edc: 28c00187 ldb r3,6(r5) + ee0: 208003cc andi r2,r4,15 + ee4: 18800326 beq r3,r2,ef4 + global_registers[Spc]++; + ee8: 28800043 ldbu r2,1(r5) + eec: 10800044 addi r2,r2,1 + ef0: 28800045 stb r2,1(r5) + ef4: f800283a ret + +00000ef8 : + +/************************************************** + * Impl + **************************************************/ + +void memory_init() { + ef8: 000b883a mov r5,zero + efc: 00000806 br f20 + int i, j; + for (i = 0; i < MEMS_COUNT; i++) + for (j = 0; j < MEM_SIZE; j++) { + f00: 21000044 addi r4,r4,1 + f04: 00800404 movi r2,16 + memory[i][j] = 0; + f08: 18000005 stb zero,0(r3) + **************************************************/ + +void memory_init() { + int i, j; + for (i = 0; i < MEMS_COUNT; i++) + for (j = 0; j < MEM_SIZE; j++) { + f0c: 18c00044 addi r3,r3,1 + f10: 20bffb1e bne r4,r2,f00 + * Impl + **************************************************/ + +void memory_init() { + int i, j; + for (i = 0; i < MEMS_COUNT; i++) + f14: 29400044 addi r5,r5,1 + f18: 00800104 movi r2,4 + f1c: 28800626 beq r5,r2,f38 + for (j = 0; j < MEM_SIZE; j++) { + memory[i][j] = 0; + } +} + f20: 2806913a slli r3,r5,4 + f24: 00800034 movhi r2,0 + f28: 10888404 addi r2,r2,8720 + f2c: 0009883a mov r4,zero + f30: 1887883a add r3,r3,r2 + f34: 003ff206 br f00 + f38: f800283a ret + +00000f3c : + +void inst_memory_store(unsigned int mem_addr, struct InstRec inst_rec){ + inst_memory[global_current_memory][mem_addr] = inst_rec; + f3c: d1a04517 ldw r6,-32492(gp) + f40: 2810d23a srli r8,r5,8 + for (j = 0; j < MEM_SIZE; j++) { + memory[i][j] = 0; + } +} + +void inst_memory_store(unsigned int mem_addr, struct InstRec inst_rec){ + f44: 024003c4 movi r9,15 + inst_memory[global_current_memory][mem_addr] = inst_rec; + f48: 300c913a slli r6,r6,4 + for (j = 0; j < MEM_SIZE; j++) { + memory[i][j] = 0; + } +} + +void inst_memory_store(unsigned int mem_addr, struct InstRec inst_rec){ + f4c: 280ed13a srli r7,r5,4 + inst_memory[global_current_memory][mem_addr] = inst_rec; + f50: 00800034 movhi r2,0 + f54: 10889404 addi r2,r2,8784 + f58: 310d883a add r6,r6,r4 + f5c: 318d883a add r6,r6,r6 + f60: 318d883a add r6,r6,r6 + f64: 010003c4 movi r4,15 + f68: 308d883a add r6,r6,r2 + f6c: 4250703a and r8,r8,r9 + f70: 4110703a and r8,r8,r4 + f74: 30800017 ldw r2,0(r6) + for (j = 0; j < MEM_SIZE; j++) { + memory[i][j] = 0; + } +} + +void inst_memory_store(unsigned int mem_addr, struct InstRec inst_rec){ + f78: 3a4e703a and r7,r7,r9 + inst_memory[global_current_memory][mem_addr] = inst_rec; + f7c: 4010923a slli r8,r8,8 + f80: 21ce703a and r7,r4,r7 + f84: 00fc3fc4 movi r3,-3841 + f88: 10c4703a and r2,r2,r3 + f8c: 380e913a slli r7,r7,4 + f90: 00ffc3c4 movi r3,-241 + f94: 1204b03a or r2,r2,r8 + f98: 10c4703a and r2,r2,r3 + f9c: 11c4b03a or r2,r2,r7 + for (j = 0; j < MEM_SIZE; j++) { + memory[i][j] = 0; + } +} + +void inst_memory_store(unsigned int mem_addr, struct InstRec inst_rec){ + fa0: 2a4a703a and r5,r5,r9 + inst_memory[global_current_memory][mem_addr] = inst_rec; + fa4: 00fffc04 movi r3,-16 + fa8: 2148703a and r4,r4,r5 + fac: 10c4703a and r2,r2,r3 + fb0: 1104b03a or r2,r2,r4 + fb4: 30800015 stw r2,0(r6) +} + fb8: f800283a ret + +00000fbc : +struct InstRec inst_memory_load(unsigned int mem_addr){ + return inst_memory[global_current_memory][mem_addr]; + fbc: d0a04517 ldw r2,-32492(gp) + fc0: 00c00034 movhi r3,0 + fc4: 18c89404 addi r3,r3,8784 + fc8: 01c003c4 movi r7,15 + fcc: 1004913a slli r2,r2,4 + fd0: 018003c4 movi r6,15 + fd4: 1105883a add r2,r2,r4 + fd8: 1085883a add r2,r2,r2 + fdc: 1085883a add r2,r2,r2 + fe0: 10c5883a add r2,r2,r3 + fe4: 11400017 ldw r5,0(r2) + fe8: 00bc3fc4 movi r2,-3841 + fec: 1084703a and r2,r2,r2 + ff0: 2806d23a srli r3,r5,8 + ff4: 2808d13a srli r4,r5,4 + ff8: 29ca703a and r5,r5,r7 + ffc: 19c6703a and r3,r3,r7 + 1000: 1986703a and r3,r3,r6 + 1004: 21c8703a and r4,r4,r7 + 1008: 1806923a slli r3,r3,8 + 100c: 3108703a and r4,r6,r4 + 1010: 2008913a slli r4,r4,4 + 1014: 10c4b03a or r2,r2,r3 + 1018: 00ffc3c4 movi r3,-241 + 101c: 10c4703a and r2,r2,r3 + 1020: 1104b03a or r2,r2,r4 + 1024: 00fffc04 movi r3,-16 + 1028: 314c703a and r6,r6,r5 + 102c: 10c4703a and r2,r2,r3 +} + 1030: 1184b03a or r2,r2,r6 + 1034: f800283a ret + +00001038 : + if (!(mem_addr < MEM_SIZE)) panic(); + memory[global_current_memory][mem_addr] = global_registers[reg]; + return memory[global_current_memory][mem_addr]; +} + +char memory_load(unsigned int mem_addr, enum Register reg) { + 1038: defffd04 addi sp,sp,-12 + if (!(mem_addr < MEM_SIZE)) panic(); + 103c: 008003c4 movi r2,15 + if (!(mem_addr < MEM_SIZE)) panic(); + memory[global_current_memory][mem_addr] = global_registers[reg]; + return memory[global_current_memory][mem_addr]; +} + +char memory_load(unsigned int mem_addr, enum Register reg) { + 1040: dc400115 stw r17,4(sp) + 1044: dc000015 stw r16,0(sp) + 1048: dfc00215 stw ra,8(sp) + 104c: 2021883a mov r16,r4 + 1050: 2823883a mov r17,r5 + if (!(mem_addr < MEM_SIZE)) panic(); + 1054: 1100012e bgeu r2,r4,105c + 1058: 00011340 call 1134 + global_registers[reg] = memory[global_current_memory][mem_addr]; + 105c: d0a04517 ldw r2,-32492(gp) + 1060: 00c00034 movhi r3,0 + 1064: 18c88404 addi r3,r3,8720 + 1068: 01000034 movhi r4,0 + 106c: 2108d404 addi r4,r4,9040 + 1070: 1004913a slli r2,r2,4 + 1074: 8909883a add r4,r17,r4 + 1078: 10c5883a add r2,r2,r3 + 107c: 1405883a add r2,r2,r16 + 1080: 10800003 ldbu r2,0(r2) + 1084: 20800005 stb r2,0(r4) + return global_registers[reg]; +} + 1088: 10803fcc andi r2,r2,255 + 108c: 1080201c xori r2,r2,128 + 1090: 10bfe004 addi r2,r2,-128 + 1094: dfc00217 ldw ra,8(sp) + 1098: dc400117 ldw r17,4(sp) + 109c: dc000017 ldw r16,0(sp) + 10a0: dec00304 addi sp,sp,12 + 10a4: f800283a ret + +000010a8 : +} +struct InstRec inst_memory_load(unsigned int mem_addr){ + return inst_memory[global_current_memory][mem_addr]; +} + +char memory_store(unsigned int mem_addr, enum Register reg) { + 10a8: defffd04 addi sp,sp,-12 + if (!(mem_addr < MEM_SIZE)) panic(); + 10ac: 008003c4 movi r2,15 +} +struct InstRec inst_memory_load(unsigned int mem_addr){ + return inst_memory[global_current_memory][mem_addr]; +} + +char memory_store(unsigned int mem_addr, enum Register reg) { + 10b0: dc400115 stw r17,4(sp) + 10b4: dc000015 stw r16,0(sp) + 10b8: dfc00215 stw ra,8(sp) + 10bc: 2023883a mov r17,r4 + 10c0: 2821883a mov r16,r5 + if (!(mem_addr < MEM_SIZE)) panic(); + 10c4: 1100012e bgeu r2,r4,10cc + 10c8: 00011340 call 1134 + memory[global_current_memory][mem_addr] = global_registers[reg]; + 10cc: d0e04517 ldw r3,-32492(gp) + 10d0: 00800034 movhi r2,0 + 10d4: 1088d404 addi r2,r2,9040 + 10d8: 8085883a add r2,r16,r2 + 10dc: 1806913a slli r3,r3,4 + 10e0: 10800003 ldbu r2,0(r2) + 10e4: 01000034 movhi r4,0 + 10e8: 21088404 addi r4,r4,8720 + 10ec: 1907883a add r3,r3,r4 + 10f0: 1c47883a add r3,r3,r17 + 10f4: 18800005 stb r2,0(r3) + return memory[global_current_memory][mem_addr]; +} + 10f8: 10803fcc andi r2,r2,255 + 10fc: 1080201c xori r2,r2,128 + 1100: 10bfe004 addi r2,r2,-128 + 1104: dfc00217 ldw ra,8(sp) + 1108: dc400117 ldw r17,4(sp) + 110c: dc000017 ldw r16,0(sp) + 1110: dec00304 addi sp,sp,12 + 1114: f800283a ret + +00001118 : + */ +#include "sys_register.h" + +char global_registers[REG_MAX_COUNT]; + +void registers_init() { + 1118: 00800034 movhi r2,0 + 111c: 1088d404 addi r2,r2,9040 + 1120: 10c003c4 addi r3,r2,15 + int i; + for (i = 0; i < REG_MAX_COUNT; i++) global_registers[i] = 0; + 1124: 10000005 stb zero,0(r2) + 1128: 10800044 addi r2,r2,1 + 112c: 10fffd1e bne r2,r3,1124 +} + 1130: f800283a ret + +00001134 : + * Author: takayun + */ +#include "system.h" +#include "hex_out.h" + +void panic() { + 1134: deffff04 addi sp,sp,-4 + clear_block(HEX0_3); + 1138: 0009883a mov r4,zero + * Author: takayun + */ +#include "system.h" +#include "hex_out.h" + +void panic() { + 113c: dfc00015 stw ra,0(sp) + clear_block(HEX0_3); + 1140: 00008f80 call 8f8 + print_block("err ", 4, HEX0_3); + 1144: 01400104 movi r5,4 + 1148: 01000034 movhi r4,0 + 114c: 21076004 addi r4,r4,7552 + 1150: 000d883a mov r6,zero +} + 1154: dfc00017 ldw ra,0(sp) + 1158: dec00104 addi sp,sp,4 +#include "system.h" +#include "hex_out.h" + +void panic() { + clear_block(HEX0_3); + print_block("err ", 4, HEX0_3); + 115c: 000081c1 jmpi 81c + +00001160 : + 1160: 29001b2e bgeu r5,r4,11d0 + 1164: 28001a16 blt r5,zero,11d0 + 1168: 00800044 movi r2,1 + 116c: 0007883a mov r3,zero + 1170: 01c007c4 movi r7,31 + 1174: 00000306 br 1184 + 1178: 19c01326 beq r3,r7,11c8 + 117c: 18c00044 addi r3,r3,1 + 1180: 28000416 blt r5,zero,1194 + 1184: 294b883a add r5,r5,r5 + 1188: 1085883a add r2,r2,r2 + 118c: 293ffa36 bltu r5,r4,1178 + 1190: 10000d26 beq r2,zero,11c8 + 1194: 0007883a mov r3,zero + 1198: 21400236 bltu r4,r5,11a4 + 119c: 2149c83a sub r4,r4,r5 + 11a0: 1886b03a or r3,r3,r2 + 11a4: 1004d07a srli r2,r2,1 + 11a8: 280ad07a srli r5,r5,1 + 11ac: 103ffa1e bne r2,zero,1198 + 11b0: 30000226 beq r6,zero,11bc + 11b4: 2005883a mov r2,r4 + 11b8: f800283a ret + 11bc: 1809883a mov r4,r3 + 11c0: 2005883a mov r2,r4 + 11c4: f800283a ret + 11c8: 0007883a mov r3,zero + 11cc: 003ff806 br 11b0 + 11d0: 00800044 movi r2,1 + 11d4: 0007883a mov r3,zero + 11d8: 003fef06 br 1198 + +000011dc <__divsi3>: + 11dc: defffe04 addi sp,sp,-8 + 11e0: dc000015 stw r16,0(sp) + 11e4: dfc00115 stw ra,4(sp) + 11e8: 0021883a mov r16,zero + 11ec: 20000c16 blt r4,zero,1220 <__divsi3+0x44> + 11f0: 000d883a mov r6,zero + 11f4: 28000e16 blt r5,zero,1230 <__divsi3+0x54> + 11f8: 00011600 call 1160 + 11fc: 1007883a mov r3,r2 + 1200: 8005003a cmpeq r2,r16,zero + 1204: 1000011e bne r2,zero,120c <__divsi3+0x30> + 1208: 00c7c83a sub r3,zero,r3 + 120c: 1805883a mov r2,r3 + 1210: dfc00117 ldw ra,4(sp) + 1214: dc000017 ldw r16,0(sp) + 1218: dec00204 addi sp,sp,8 + 121c: f800283a ret + 1220: 0109c83a sub r4,zero,r4 + 1224: 04000044 movi r16,1 + 1228: 000d883a mov r6,zero + 122c: 283ff20e bge r5,zero,11f8 <__divsi3+0x1c> + 1230: 014bc83a sub r5,zero,r5 + 1234: 8021003a cmpeq r16,r16,zero + 1238: 003fef06 br 11f8 <__divsi3+0x1c> + +0000123c <__modsi3>: + 123c: deffff04 addi sp,sp,-4 + 1240: dfc00015 stw ra,0(sp) + 1244: 01800044 movi r6,1 + 1248: 2807883a mov r3,r5 + 124c: 20000416 blt r4,zero,1260 <__modsi3+0x24> + 1250: 28000c16 blt r5,zero,1284 <__modsi3+0x48> + 1254: dfc00017 ldw ra,0(sp) + 1258: dec00104 addi sp,sp,4 + 125c: 00011601 jmpi 1160 + 1260: 0109c83a sub r4,zero,r4 + 1264: 28000b16 blt r5,zero,1294 <__modsi3+0x58> + 1268: 180b883a mov r5,r3 + 126c: 01800044 movi r6,1 + 1270: 00011600 call 1160 + 1274: 0085c83a sub r2,zero,r2 + 1278: dfc00017 ldw ra,0(sp) + 127c: dec00104 addi sp,sp,4 + 1280: f800283a ret + 1284: 014bc83a sub r5,zero,r5 + 1288: dfc00017 ldw ra,0(sp) + 128c: dec00104 addi sp,sp,4 + 1290: 00011601 jmpi 1160 + 1294: 0147c83a sub r3,zero,r5 + 1298: 003ff306 br 1268 <__modsi3+0x2c> + +0000129c <__udivsi3>: + 129c: 000d883a mov r6,zero + 12a0: 00011601 jmpi 1160 + +000012a4 <__umodsi3>: + 12a4: 01800044 movi r6,1 + 12a8: 00011601 jmpi 1160 + +000012ac <__mulsi3>: + 12ac: 20000a26 beq r4,zero,12d8 <__mulsi3+0x2c> + 12b0: 0007883a mov r3,zero + 12b4: 2080004c andi r2,r4,1 + 12b8: 1005003a cmpeq r2,r2,zero + 12bc: 2008d07a srli r4,r4,1 + 12c0: 1000011e bne r2,zero,12c8 <__mulsi3+0x1c> + 12c4: 1947883a add r3,r3,r5 + 12c8: 294b883a add r5,r5,r5 + 12cc: 203ff91e bne r4,zero,12b4 <__mulsi3+0x8> + 12d0: 1805883a mov r2,r3 + 12d4: f800283a ret + 12d8: 0007883a mov r3,zero + 12dc: 1805883a mov r2,r3 + 12e0: f800283a ret + +000012e4 : + 12e4: defff504 addi sp,sp,-44 + 12e8: 2015883a mov r10,r4 + 12ec: dfc00815 stw ra,32(sp) + 12f0: d9800915 stw r6,36(sp) + 12f4: d9c00a15 stw r7,40(sp) + 12f8: d8800904 addi r2,sp,36 + 12fc: d8800015 stw r2,0(sp) + 1300: 00800034 movhi r2,0 + 1304: 10883c04 addi r2,r2,8432 + 1308: 11000017 ldw r4,0(r2) + 130c: d9c00017 ldw r7,0(sp) + 1310: 00808204 movi r2,520 + 1314: 02200034 movhi r8,32768 + 1318: 423fffc4 addi r8,r8,-1 + 131c: 280d883a mov r6,r5 + 1320: d880010d sth r2,4(sp) + 1324: 00c00034 movhi r3,0 + 1328: 18c6c604 addi r3,r3,6936 + 132c: d9400104 addi r5,sp,4 + 1330: 00bfffc4 movi r2,-1 + 1334: d8c00215 stw r3,8(sp) + 1338: da800315 stw r10,12(sp) + 133c: da000415 stw r8,16(sp) + 1340: d880018d sth r2,6(sp) + 1344: da800515 stw r10,20(sp) + 1348: da000615 stw r8,24(sp) + 134c: d8000715 stw zero,28(sp) + 1350: 00014580 call 1458 <___vfprintf_internal_r> + 1354: d8c00517 ldw r3,20(sp) + 1358: 18000005 stb zero,0(r3) + 135c: dfc00817 ldw ra,32(sp) + 1360: dec00b04 addi sp,sp,44 + 1364: f800283a ret + +00001368 <_sprintf_r>: + 1368: defff604 addi sp,sp,-40 + 136c: 2815883a mov r10,r5 + 1370: dfc00815 stw ra,32(sp) + 1374: d9c00915 stw r7,36(sp) + 1378: d8800904 addi r2,sp,36 + 137c: d8800015 stw r2,0(sp) + 1380: 100f883a mov r7,r2 + 1384: 00808204 movi r2,520 + 1388: 02200034 movhi r8,32768 + 138c: 423fffc4 addi r8,r8,-1 + 1390: d880010d sth r2,4(sp) + 1394: 00c00034 movhi r3,0 + 1398: 18c6c604 addi r3,r3,6936 + 139c: d9400104 addi r5,sp,4 + 13a0: 00bfffc4 movi r2,-1 + 13a4: d8c00215 stw r3,8(sp) + 13a8: da800315 stw r10,12(sp) + 13ac: da000415 stw r8,16(sp) + 13b0: d880018d sth r2,6(sp) + 13b4: da800515 stw r10,20(sp) + 13b8: da000615 stw r8,24(sp) + 13bc: d8000715 stw zero,28(sp) + 13c0: 00014580 call 1458 <___vfprintf_internal_r> + 13c4: d8c00517 ldw r3,20(sp) + 13c8: 18000005 stb zero,0(r3) + 13cc: dfc00817 ldw ra,32(sp) + 13d0: dec00a04 addi sp,sp,40 + 13d4: f800283a ret + +000013d8 : + 13d8: defffb04 addi sp,sp,-20 + 13dc: dc800315 stw r18,12(sp) + 13e0: dc400215 stw r17,8(sp) + 13e4: dc000115 stw r16,4(sp) + 13e8: dfc00415 stw ra,16(sp) + 13ec: 2025883a mov r18,r4 + 13f0: 2823883a mov r17,r5 + 13f4: 3821883a mov r16,r7 + 13f8: d9800005 stb r6,0(sp) + 13fc: 9009883a mov r4,r18 + 1400: 880b883a mov r5,r17 + 1404: d80d883a mov r6,sp + 1408: 01c00044 movi r7,1 + 140c: 04000b0e bge zero,r16,143c + 1410: 88c00117 ldw r3,4(r17) + 1414: 843fffc4 addi r16,r16,-1 + 1418: 183ee83a callr r3 + 141c: 103ff726 beq r2,zero,13fc + 1420: 00bfffc4 movi r2,-1 + 1424: dfc00417 ldw ra,16(sp) + 1428: dc800317 ldw r18,12(sp) + 142c: dc400217 ldw r17,8(sp) + 1430: dc000117 ldw r16,4(sp) + 1434: dec00504 addi sp,sp,20 + 1438: f800283a ret + 143c: 0005883a mov r2,zero + 1440: dfc00417 ldw ra,16(sp) + 1444: dc800317 ldw r18,12(sp) + 1448: dc400217 ldw r17,8(sp) + 144c: dc000117 ldw r16,4(sp) + 1450: dec00504 addi sp,sp,20 + 1454: f800283a ret + +00001458 <___vfprintf_internal_r>: + 1458: deffe304 addi sp,sp,-116 + 145c: df001b15 stw fp,108(sp) + 1460: ddc01a15 stw r23,104(sp) + 1464: dd001715 stw r20,92(sp) + 1468: dc801515 stw r18,84(sp) + 146c: dc001315 stw r16,76(sp) + 1470: dfc01c15 stw ra,112(sp) + 1474: dd801915 stw r22,100(sp) + 1478: dd401815 stw r21,96(sp) + 147c: dcc01615 stw r19,88(sp) + 1480: dc401415 stw r17,80(sp) + 1484: d9001015 stw r4,64(sp) + 1488: 2829883a mov r20,r5 + 148c: d9c01115 stw r7,68(sp) + 1490: 3025883a mov r18,r6 + 1494: 0021883a mov r16,zero + 1498: d8000f15 stw zero,60(sp) + 149c: d8000e15 stw zero,56(sp) + 14a0: 0039883a mov fp,zero + 14a4: d8000915 stw zero,36(sp) + 14a8: d8000d15 stw zero,52(sp) + 14ac: d8000c15 stw zero,48(sp) + 14b0: d8000b15 stw zero,44(sp) + 14b4: 002f883a mov r23,zero + 14b8: 91400003 ldbu r5,0(r18) + 14bc: 01c00044 movi r7,1 + 14c0: 94800044 addi r18,r18,1 + 14c4: 29003fcc andi r4,r5,255 + 14c8: 2100201c xori r4,r4,128 + 14cc: 213fe004 addi r4,r4,-128 + 14d0: 20001526 beq r4,zero,1528 <___vfprintf_internal_r+0xd0> + 14d4: 81c03526 beq r16,r7,15ac <___vfprintf_internal_r+0x154> + 14d8: 3c002016 blt r7,r16,155c <___vfprintf_internal_r+0x104> + 14dc: 803ff61e bne r16,zero,14b8 <___vfprintf_internal_r+0x60> + 14e0: 00800944 movi r2,37 + 14e4: 2081501e bne r4,r2,1a28 <___vfprintf_internal_r+0x5d0> + 14e8: 073fffc4 movi fp,-1 + 14ec: 00800284 movi r2,10 + 14f0: d9c00c15 stw r7,48(sp) + 14f4: d8000f15 stw zero,60(sp) + 14f8: d8000e15 stw zero,56(sp) + 14fc: df000915 stw fp,36(sp) + 1500: d8800d15 stw r2,52(sp) + 1504: d8000b15 stw zero,44(sp) + 1508: 91400003 ldbu r5,0(r18) + 150c: 3821883a mov r16,r7 + 1510: 94800044 addi r18,r18,1 + 1514: 29003fcc andi r4,r5,255 + 1518: 2100201c xori r4,r4,128 + 151c: 213fe004 addi r4,r4,-128 + 1520: 01c00044 movi r7,1 + 1524: 203feb1e bne r4,zero,14d4 <___vfprintf_internal_r+0x7c> + 1528: b805883a mov r2,r23 + 152c: dfc01c17 ldw ra,112(sp) + 1530: df001b17 ldw fp,108(sp) + 1534: ddc01a17 ldw r23,104(sp) + 1538: dd801917 ldw r22,100(sp) + 153c: dd401817 ldw r21,96(sp) + 1540: dd001717 ldw r20,92(sp) + 1544: dcc01617 ldw r19,88(sp) + 1548: dc801517 ldw r18,84(sp) + 154c: dc401417 ldw r17,80(sp) + 1550: dc001317 ldw r16,76(sp) + 1554: dec01d04 addi sp,sp,116 + 1558: f800283a ret + 155c: 00800084 movi r2,2 + 1560: 80801726 beq r16,r2,15c0 <___vfprintf_internal_r+0x168> + 1564: 008000c4 movi r2,3 + 1568: 80bfd31e bne r16,r2,14b8 <___vfprintf_internal_r+0x60> + 156c: 2c7ff404 addi r17,r5,-48 + 1570: 88c03fcc andi r3,r17,255 + 1574: 00800244 movi r2,9 + 1578: 10c02136 bltu r2,r3,1600 <___vfprintf_internal_r+0x1a8> + 157c: d8c00917 ldw r3,36(sp) + 1580: 18012716 blt r3,zero,1a20 <___vfprintf_internal_r+0x5c8> + 1584: d9000917 ldw r4,36(sp) + 1588: 01400284 movi r5,10 + 158c: 00012ac0 call 12ac <__mulsi3> + 1590: 1007883a mov r3,r2 + 1594: 88803fcc andi r2,r17,255 + 1598: 1080201c xori r2,r2,128 + 159c: 10bfe004 addi r2,r2,-128 + 15a0: 1887883a add r3,r3,r2 + 15a4: d8c00915 stw r3,36(sp) + 15a8: 003fc306 br 14b8 <___vfprintf_internal_r+0x60> + 15ac: 00800c04 movi r2,48 + 15b0: 2080b326 beq r4,r2,1880 <___vfprintf_internal_r+0x428> + 15b4: 00800944 movi r2,37 + 15b8: 20812726 beq r4,r2,1a58 <___vfprintf_internal_r+0x600> + 15bc: 04000084 movi r16,2 + 15c0: 2c7ff404 addi r17,r5,-48 + 15c4: 88c03fcc andi r3,r17,255 + 15c8: 00800244 movi r2,9 + 15cc: 10c00a36 bltu r2,r3,15f8 <___vfprintf_internal_r+0x1a0> + 15d0: e000b416 blt fp,zero,18a4 <___vfprintf_internal_r+0x44c> + 15d4: e009883a mov r4,fp + 15d8: 01400284 movi r5,10 + 15dc: 00012ac0 call 12ac <__mulsi3> + 15e0: 1007883a mov r3,r2 + 15e4: 88803fcc andi r2,r17,255 + 15e8: 1080201c xori r2,r2,128 + 15ec: 10bfe004 addi r2,r2,-128 + 15f0: 18b9883a add fp,r3,r2 + 15f4: 003fb006 br 14b8 <___vfprintf_internal_r+0x60> + 15f8: 00800b84 movi r2,46 + 15fc: 2080a326 beq r4,r2,188c <___vfprintf_internal_r+0x434> + 1600: 00801b04 movi r2,108 + 1604: 2080a326 beq r4,r2,1894 <___vfprintf_internal_r+0x43c> + 1608: d8c00917 ldw r3,36(sp) + 160c: 1800a716 blt r3,zero,18ac <___vfprintf_internal_r+0x454> + 1610: d8000f15 stw zero,60(sp) + 1614: 28bfea04 addi r2,r5,-88 + 1618: 10803fcc andi r2,r2,255 + 161c: 00c00804 movi r3,32 + 1620: 18802836 bltu r3,r2,16c4 <___vfprintf_internal_r+0x26c> + 1624: 1085883a add r2,r2,r2 + 1628: 1085883a add r2,r2,r2 + 162c: 00c00034 movhi r3,0 + 1630: 18c59004 addi r3,r3,5696 + 1634: 10c5883a add r2,r2,r3 + 1638: 11000017 ldw r4,0(r2) + 163c: 2000683a jmp r4 + 1640: 000016cc andi zero,zero,91 + 1644: 000016c4 movi zero,91 + 1648: 000016c4 movi zero,91 + 164c: 000016c4 movi zero,91 + 1650: 000016c4 movi zero,91 + 1654: 000016c4 movi zero,91 + 1658: 000016c4 movi zero,91 + 165c: 000016c4 movi zero,91 + 1660: 000016c4 movi zero,91 + 1664: 000016c4 movi zero,91 + 1668: 000016c4 movi zero,91 + 166c: 000018f8 rdprs zero,zero,99 + 1670: 000016e0 cmpeqi zero,zero,91 + 1674: 000016c4 movi zero,91 + 1678: 000016c4 movi zero,91 + 167c: 000016c4 movi zero,91 + 1680: 000016c4 movi zero,91 + 1684: 000016e0 cmpeqi zero,zero,91 + 1688: 000016c4 movi zero,91 + 168c: 000016c4 movi zero,91 + 1690: 000016c4 movi zero,91 + 1694: 000016c4 movi zero,91 + 1698: 000016c4 movi zero,91 + 169c: 00001960 cmpeqi zero,zero,101 + 16a0: 000016c4 movi zero,91 + 16a4: 000016c4 movi zero,91 + 16a8: 000016c4 movi zero,91 + 16ac: 00001970 cmpltui zero,zero,101 + 16b0: 000016c4 movi zero,91 + 16b4: 00001844 movi zero,97 + 16b8: 000016c4 movi zero,91 + 16bc: 000016c4 movi zero,91 + 16c0: 0000183c xorhi zero,zero,96 + 16c4: 0021883a mov r16,zero + 16c8: 003f7b06 br 14b8 <___vfprintf_internal_r+0x60> + 16cc: 00c00404 movi r3,16 + 16d0: 00800044 movi r2,1 + 16d4: d8c00d15 stw r3,52(sp) + 16d8: d8000c15 stw zero,48(sp) + 16dc: d8800b15 stw r2,44(sp) + 16e0: d8c00e17 ldw r3,56(sp) + 16e4: 1805003a cmpeq r2,r3,zero + 16e8: 10005a1e bne r2,zero,1854 <___vfprintf_internal_r+0x3fc> + 16ec: d8800c17 ldw r2,48(sp) + 16f0: 1000781e bne r2,zero,18d4 <___vfprintf_internal_r+0x47c> + 16f4: d8801117 ldw r2,68(sp) + 16f8: d8000a15 stw zero,40(sp) + 16fc: 14400017 ldw r17,0(r2) + 1700: 11c00104 addi r7,r2,4 + 1704: d9c01115 stw r7,68(sp) + 1708: 88005a26 beq r17,zero,1874 <___vfprintf_internal_r+0x41c> + 170c: d8c00b17 ldw r3,44(sp) + 1710: dcc00044 addi r19,sp,1 + 1714: 05800244 movi r22,9 + 1718: 182b003a cmpeq r21,r3,zero + 171c: dcc01215 stw r19,72(sp) + 1720: 00000506 br 1738 <___vfprintf_internal_r+0x2e0> + 1724: 21000c04 addi r4,r4,48 + 1728: 99000005 stb r4,0(r19) + 172c: 9cc00044 addi r19,r19,1 + 1730: 80000f26 beq r16,zero,1770 <___vfprintf_internal_r+0x318> + 1734: 8023883a mov r17,r16 + 1738: d9400d17 ldw r5,52(sp) + 173c: 8809883a mov r4,r17 + 1740: 000129c0 call 129c <__udivsi3> + 1744: d9000d17 ldw r4,52(sp) + 1748: 100b883a mov r5,r2 + 174c: 1021883a mov r16,r2 + 1750: 00012ac0 call 12ac <__mulsi3> + 1754: 8889c83a sub r4,r17,r2 + 1758: b13ff20e bge r22,r4,1724 <___vfprintf_internal_r+0x2cc> + 175c: a8009f1e bne r21,zero,19dc <___vfprintf_internal_r+0x584> + 1760: 21000dc4 addi r4,r4,55 + 1764: 99000005 stb r4,0(r19) + 1768: 9cc00044 addi r19,r19,1 + 176c: 803ff11e bne r16,zero,1734 <___vfprintf_internal_r+0x2dc> + 1770: d8801217 ldw r2,72(sp) + 1774: 98a3c83a sub r17,r19,r2 + 1778: d8c00917 ldw r3,36(sp) + 177c: 1c4bc83a sub r5,r3,r17 + 1780: 0140130e bge zero,r5,17d0 <___vfprintf_internal_r+0x378> + 1784: d8c00044 addi r3,sp,1 + 1788: 18800804 addi r2,r3,32 + 178c: 9880102e bgeu r19,r2,17d0 <___vfprintf_internal_r+0x378> + 1790: 00800c04 movi r2,48 + 1794: 28ffffc4 addi r3,r5,-1 + 1798: 98800005 stb r2,0(r19) + 179c: 99000044 addi r4,r19,1 + 17a0: 00c0080e bge zero,r3,17c4 <___vfprintf_internal_r+0x36c> + 17a4: d8c00044 addi r3,sp,1 + 17a8: 18800804 addi r2,r3,32 + 17ac: 2080052e bgeu r4,r2,17c4 <___vfprintf_internal_r+0x36c> + 17b0: 00800c04 movi r2,48 + 17b4: 20800005 stb r2,0(r4) + 17b8: 21000044 addi r4,r4,1 + 17bc: 9945883a add r2,r19,r5 + 17c0: 20bff81e bne r4,r2,17a4 <___vfprintf_internal_r+0x34c> + 17c4: d8801217 ldw r2,72(sp) + 17c8: 2027883a mov r19,r4 + 17cc: 20a3c83a sub r17,r4,r2 + 17d0: d8c00a17 ldw r3,40(sp) + 17d4: 1c45883a add r2,r3,r17 + 17d8: e0a1c83a sub r16,fp,r2 + 17dc: d8800f17 ldw r2,60(sp) + 17e0: 10008026 beq r2,zero,19e4 <___vfprintf_internal_r+0x58c> + 17e4: 1805003a cmpeq r2,r3,zero + 17e8: 1000ae26 beq r2,zero,1aa4 <___vfprintf_internal_r+0x64c> + 17ec: 0400a516 blt zero,r16,1a84 <___vfprintf_internal_r+0x62c> + 17f0: b805883a mov r2,r23 + 17f4: 0440950e bge zero,r17,1a4c <___vfprintf_internal_r+0x5f4> + 17f8: 102f883a mov r23,r2 + 17fc: 1461883a add r16,r2,r17 + 1800: 00000206 br 180c <___vfprintf_internal_r+0x3b4> + 1804: bdc00044 addi r23,r23,1 + 1808: 85ffae26 beq r16,r23,16c4 <___vfprintf_internal_r+0x26c> + 180c: 9cffffc4 addi r19,r19,-1 + 1810: 98800003 ldbu r2,0(r19) + 1814: a0c00117 ldw r3,4(r20) + 1818: d9001017 ldw r4,64(sp) + 181c: d8800005 stb r2,0(sp) + 1820: a00b883a mov r5,r20 + 1824: d80d883a mov r6,sp + 1828: 01c00044 movi r7,1 + 182c: 183ee83a callr r3 + 1830: 103ff426 beq r2,zero,1804 <___vfprintf_internal_r+0x3ac> + 1834: 05ffffc4 movi r23,-1 + 1838: 003f3b06 br 1528 <___vfprintf_internal_r+0xd0> + 183c: 00c00404 movi r3,16 + 1840: d8c00d15 stw r3,52(sp) + 1844: d8000c15 stw zero,48(sp) + 1848: d8c00e17 ldw r3,56(sp) + 184c: 1805003a cmpeq r2,r3,zero + 1850: 103fa626 beq r2,zero,16ec <___vfprintf_internal_r+0x294> + 1854: d8c00c17 ldw r3,48(sp) + 1858: 1800171e bne r3,zero,18b8 <___vfprintf_internal_r+0x460> + 185c: d8c01117 ldw r3,68(sp) + 1860: d8000a15 stw zero,40(sp) + 1864: 1c400017 ldw r17,0(r3) + 1868: 19c00104 addi r7,r3,4 + 186c: d9c01115 stw r7,68(sp) + 1870: 883fa61e bne r17,zero,170c <___vfprintf_internal_r+0x2b4> + 1874: dcc00044 addi r19,sp,1 + 1878: dcc01215 stw r19,72(sp) + 187c: 003fbe06 br 1778 <___vfprintf_internal_r+0x320> + 1880: 04000084 movi r16,2 + 1884: d9c00f15 stw r7,60(sp) + 1888: 003f0b06 br 14b8 <___vfprintf_internal_r+0x60> + 188c: 040000c4 movi r16,3 + 1890: 003f0906 br 14b8 <___vfprintf_internal_r+0x60> + 1894: 00800044 movi r2,1 + 1898: 040000c4 movi r16,3 + 189c: d8800e15 stw r2,56(sp) + 18a0: 003f0506 br 14b8 <___vfprintf_internal_r+0x60> + 18a4: 0007883a mov r3,zero + 18a8: 003f4e06 br 15e4 <___vfprintf_internal_r+0x18c> + 18ac: 00800044 movi r2,1 + 18b0: d8800915 stw r2,36(sp) + 18b4: 003f5706 br 1614 <___vfprintf_internal_r+0x1bc> + 18b8: d8801117 ldw r2,68(sp) + 18bc: 14400017 ldw r17,0(r2) + 18c0: 10800104 addi r2,r2,4 + 18c4: d8801115 stw r2,68(sp) + 18c8: 88000716 blt r17,zero,18e8 <___vfprintf_internal_r+0x490> + 18cc: d8000a15 stw zero,40(sp) + 18d0: 003f8d06 br 1708 <___vfprintf_internal_r+0x2b0> + 18d4: d8c01117 ldw r3,68(sp) + 18d8: 1c400017 ldw r17,0(r3) + 18dc: 18c00104 addi r3,r3,4 + 18e0: d8c01115 stw r3,68(sp) + 18e4: 883ff90e bge r17,zero,18cc <___vfprintf_internal_r+0x474> + 18e8: 00800044 movi r2,1 + 18ec: 0463c83a sub r17,zero,r17 + 18f0: d8800a15 stw r2,40(sp) + 18f4: 003f8406 br 1708 <___vfprintf_internal_r+0x2b0> + 18f8: 04000044 movi r16,1 + 18fc: 8700080e bge r16,fp,1920 <___vfprintf_internal_r+0x4c8> + 1900: d9001017 ldw r4,64(sp) + 1904: a00b883a mov r5,r20 + 1908: 01800804 movi r6,32 + 190c: e1ffffc4 addi r7,fp,-1 + 1910: 00013d80 call 13d8 + 1914: 103fc71e bne r2,zero,1834 <___vfprintf_internal_r+0x3dc> + 1918: e5c5883a add r2,fp,r23 + 191c: 15ffffc4 addi r23,r2,-1 + 1920: d8c01117 ldw r3,68(sp) + 1924: d9001017 ldw r4,64(sp) + 1928: 800f883a mov r7,r16 + 192c: 18800017 ldw r2,0(r3) + 1930: a0c00117 ldw r3,4(r20) + 1934: a00b883a mov r5,r20 + 1938: d8800005 stb r2,0(sp) + 193c: d80d883a mov r6,sp + 1940: 183ee83a callr r3 + 1944: 103fbb1e bne r2,zero,1834 <___vfprintf_internal_r+0x3dc> + 1948: d8801117 ldw r2,68(sp) + 194c: bdc00044 addi r23,r23,1 + 1950: 0021883a mov r16,zero + 1954: 10800104 addi r2,r2,4 + 1958: d8801115 stw r2,68(sp) + 195c: 003ed606 br 14b8 <___vfprintf_internal_r+0x60> + 1960: 00800204 movi r2,8 + 1964: d8800d15 stw r2,52(sp) + 1968: d8000c15 stw zero,48(sp) + 196c: 003fb606 br 1848 <___vfprintf_internal_r+0x3f0> + 1970: d8c01117 ldw r3,68(sp) + 1974: 1cc00017 ldw r19,0(r3) + 1978: 9809883a mov r4,r19 + 197c: 0001c300 call 1c30 + 1980: e0a1c83a sub r16,fp,r2 + 1984: 1023883a mov r17,r2 + 1988: 0400070e bge zero,r16,19a8 <___vfprintf_internal_r+0x550> + 198c: d9001017 ldw r4,64(sp) + 1990: a00b883a mov r5,r20 + 1994: 01800804 movi r6,32 + 1998: 800f883a mov r7,r16 + 199c: 00013d80 call 13d8 + 19a0: 103fa41e bne r2,zero,1834 <___vfprintf_internal_r+0x3dc> + 19a4: bc2f883a add r23,r23,r16 + 19a8: a0c00117 ldw r3,4(r20) + 19ac: d9001017 ldw r4,64(sp) + 19b0: 980d883a mov r6,r19 + 19b4: a00b883a mov r5,r20 + 19b8: 880f883a mov r7,r17 + 19bc: 183ee83a callr r3 + 19c0: 103f9c1e bne r2,zero,1834 <___vfprintf_internal_r+0x3dc> + 19c4: d8801117 ldw r2,68(sp) + 19c8: bc6f883a add r23,r23,r17 + 19cc: 0021883a mov r16,zero + 19d0: 10800104 addi r2,r2,4 + 19d4: d8801115 stw r2,68(sp) + 19d8: 003eb706 br 14b8 <___vfprintf_internal_r+0x60> + 19dc: 210015c4 addi r4,r4,87 + 19e0: 003f5106 br 1728 <___vfprintf_internal_r+0x2d0> + 19e4: 04003b16 blt zero,r16,1ad4 <___vfprintf_internal_r+0x67c> + 19e8: d8c00a17 ldw r3,40(sp) + 19ec: 1805003a cmpeq r2,r3,zero + 19f0: 103f7f1e bne r2,zero,17f0 <___vfprintf_internal_r+0x398> + 19f4: a0c00117 ldw r3,4(r20) + 19f8: d9001017 ldw r4,64(sp) + 19fc: 00800b44 movi r2,45 + 1a00: d8800005 stb r2,0(sp) + 1a04: a00b883a mov r5,r20 + 1a08: d80d883a mov r6,sp + 1a0c: 01c00044 movi r7,1 + 1a10: 183ee83a callr r3 + 1a14: 103f871e bne r2,zero,1834 <___vfprintf_internal_r+0x3dc> + 1a18: b8800044 addi r2,r23,1 + 1a1c: 003f7506 br 17f4 <___vfprintf_internal_r+0x39c> + 1a20: 0007883a mov r3,zero + 1a24: 003edb06 br 1594 <___vfprintf_internal_r+0x13c> + 1a28: a0c00117 ldw r3,4(r20) + 1a2c: d9001017 ldw r4,64(sp) + 1a30: d9400005 stb r5,0(sp) + 1a34: d80d883a mov r6,sp + 1a38: a00b883a mov r5,r20 + 1a3c: 183ee83a callr r3 + 1a40: 103f7c1e bne r2,zero,1834 <___vfprintf_internal_r+0x3dc> + 1a44: bdc00044 addi r23,r23,1 + 1a48: 003e9b06 br 14b8 <___vfprintf_internal_r+0x60> + 1a4c: 102f883a mov r23,r2 + 1a50: 0021883a mov r16,zero + 1a54: 003e9806 br 14b8 <___vfprintf_internal_r+0x60> + 1a58: a0c00117 ldw r3,4(r20) + 1a5c: d9000005 stb r4,0(sp) + 1a60: d9001017 ldw r4,64(sp) + 1a64: a00b883a mov r5,r20 + 1a68: d80d883a mov r6,sp + 1a6c: 800f883a mov r7,r16 + 1a70: 183ee83a callr r3 + 1a74: 103f6f1e bne r2,zero,1834 <___vfprintf_internal_r+0x3dc> + 1a78: bc2f883a add r23,r23,r16 + 1a7c: 0021883a mov r16,zero + 1a80: 003e8d06 br 14b8 <___vfprintf_internal_r+0x60> + 1a84: d9001017 ldw r4,64(sp) + 1a88: a00b883a mov r5,r20 + 1a8c: 01800c04 movi r6,48 + 1a90: 800f883a mov r7,r16 + 1a94: 00013d80 call 13d8 + 1a98: 103f661e bne r2,zero,1834 <___vfprintf_internal_r+0x3dc> + 1a9c: bc05883a add r2,r23,r16 + 1aa0: 003f5406 br 17f4 <___vfprintf_internal_r+0x39c> + 1aa4: a0c00117 ldw r3,4(r20) + 1aa8: d9001017 ldw r4,64(sp) + 1aac: 00800b44 movi r2,45 + 1ab0: d8800005 stb r2,0(sp) + 1ab4: a00b883a mov r5,r20 + 1ab8: d80d883a mov r6,sp + 1abc: 01c00044 movi r7,1 + 1ac0: 183ee83a callr r3 + 1ac4: 103f5b1e bne r2,zero,1834 <___vfprintf_internal_r+0x3dc> + 1ac8: bdc00044 addi r23,r23,1 + 1acc: 043f480e bge zero,r16,17f0 <___vfprintf_internal_r+0x398> + 1ad0: 003fec06 br 1a84 <___vfprintf_internal_r+0x62c> + 1ad4: d9001017 ldw r4,64(sp) + 1ad8: a00b883a mov r5,r20 + 1adc: 01800804 movi r6,32 + 1ae0: 800f883a mov r7,r16 + 1ae4: 00013d80 call 13d8 + 1ae8: 103f521e bne r2,zero,1834 <___vfprintf_internal_r+0x3dc> + 1aec: bc2f883a add r23,r23,r16 + 1af0: 003fbd06 br 19e8 <___vfprintf_internal_r+0x590> + +00001af4 <__vfprintf_internal>: + 1af4: 00800034 movhi r2,0 + 1af8: 10883c04 addi r2,r2,8432 + 1afc: 2013883a mov r9,r4 + 1b00: 11000017 ldw r4,0(r2) + 1b04: 2805883a mov r2,r5 + 1b08: 300f883a mov r7,r6 + 1b0c: 480b883a mov r5,r9 + 1b10: 100d883a mov r6,r2 + 1b14: 00014581 jmpi 1458 <___vfprintf_internal_r> + +00001b18 <__sfvwrite_small_str>: + 1b18: 2900000b ldhu r4,0(r5) + 1b1c: defffd04 addi sp,sp,-12 + 1b20: dc000015 stw r16,0(sp) + 1b24: 20ffffcc andi r3,r4,65535 + 1b28: 1880020c andi r2,r3,8 + 1b2c: 2821883a mov r16,r5 + 1b30: dfc00215 stw ra,8(sp) + 1b34: dc400115 stw r17,4(sp) + 1b38: 300b883a mov r5,r6 + 1b3c: 10001d26 beq r2,zero,1bb4 <__sfvwrite_small_str+0x9c> + 1b40: 8080008f ldh r2,2(r16) + 1b44: 1000190e bge r2,zero,1bac <__sfvwrite_small_str+0x94> + 1b48: 1880800c andi r2,r3,512 + 1b4c: 10001726 beq r2,zero,1bac <__sfvwrite_small_str+0x94> + 1b50: 81800517 ldw r6,20(r16) + 1b54: 31c0020e bge r6,r7,1b60 <__sfvwrite_small_str+0x48> + 1b58: 1880200c andi r2,r3,128 + 1b5c: 1000131e bne r2,zero,1bac <__sfvwrite_small_str+0x94> + 1b60: 3023883a mov r17,r6 + 1b64: 3980010e bge r7,r6,1b6c <__sfvwrite_small_str+0x54> + 1b68: 3823883a mov r17,r7 + 1b6c: 81000417 ldw r4,16(r16) + 1b70: 880d883a mov r6,r17 + 1b74: 0001bd00 call 1bd0 + 1b78: 80800417 ldw r2,16(r16) + 1b7c: 80c00517 ldw r3,20(r16) + 1b80: 0009883a mov r4,zero + 1b84: 1445883a add r2,r2,r17 + 1b88: 1c47c83a sub r3,r3,r17 + 1b8c: 80800415 stw r2,16(r16) + 1b90: 2005883a mov r2,r4 + 1b94: 80c00515 stw r3,20(r16) + 1b98: dfc00217 ldw ra,8(sp) + 1b9c: dc400117 ldw r17,4(sp) + 1ba0: dc000017 ldw r16,0(sp) + 1ba4: dec00304 addi sp,sp,12 + 1ba8: f800283a ret + 1bac: 20801014 ori r2,r4,64 + 1bb0: 8080000d sth r2,0(r16) + 1bb4: 013fffc4 movi r4,-1 + 1bb8: 2005883a mov r2,r4 + 1bbc: dfc00217 ldw ra,8(sp) + 1bc0: dc400117 ldw r17,4(sp) + 1bc4: dc000017 ldw r16,0(sp) + 1bc8: dec00304 addi sp,sp,12 + 1bcc: f800283a ret + +00001bd0 : + 1bd0: 2011883a mov r8,r4 + 1bd4: 2900022e bgeu r5,r4,1be0 + 1bd8: 2989883a add r4,r5,r6 + 1bdc: 41000a36 bltu r8,r4,1c08 + 1be0: 30000726 beq r6,zero,1c00 + 1be4: 000f883a mov r7,zero + 1be8: 29c5883a add r2,r5,r7 + 1bec: 11000003 ldbu r4,0(r2) + 1bf0: 3a07883a add r3,r7,r8 + 1bf4: 39c00044 addi r7,r7,1 + 1bf8: 19000005 stb r4,0(r3) + 1bfc: 31fffa1e bne r6,r7,1be8 + 1c00: 4005883a mov r2,r8 + 1c04: f800283a ret + 1c08: 303ffd26 beq r6,zero,1c00 + 1c0c: 4187883a add r3,r8,r6 + 1c10: 198dc83a sub r6,r3,r6 + 1c14: 213fffc4 addi r4,r4,-1 + 1c18: 20800003 ldbu r2,0(r4) + 1c1c: 18ffffc4 addi r3,r3,-1 + 1c20: 18800005 stb r2,0(r3) + 1c24: 19bffb1e bne r3,r6,1c14 + 1c28: 4005883a mov r2,r8 + 1c2c: f800283a ret + +00001c30 : + 1c30: 20800007 ldb r2,0(r4) + 1c34: 10000526 beq r2,zero,1c4c + 1c38: 2007883a mov r3,r4 + 1c3c: 18c00044 addi r3,r3,1 + 1c40: 18800007 ldb r2,0(r3) + 1c44: 103ffd1e bne r2,zero,1c3c + 1c48: 1905c83a sub r2,r3,r4 + 1c4c: f800283a ret + +00001c50 : + +static void ALT_INLINE alt_load_section (alt_u32* from, + alt_u32* to, + alt_u32* end) +{ + if (to != from) + 1c50: 2900051e bne r5,r4,1c68 + 1c54: f800283a ret + { + while( to != end ) + { + *to++ = *from++; + 1c58: 20800017 ldw r2,0(r4) + 1c5c: 21000104 addi r4,r4,4 + 1c60: 28800015 stw r2,0(r5) + 1c64: 29400104 addi r5,r5,4 + alt_u32* to, + alt_u32* end) +{ + if (to != from) + { + while( to != end ) + 1c68: 29bffb1e bne r5,r6,1c58 + 1c6c: f800283a ret + +00001c70 : + * there is no bootloader, so this application is responsible for loading to + * RAM any sections that are required. + */ + +void alt_load (void) +{ + 1c70: deffff04 addi sp,sp,-4 + /* + * Copy the .rwdata section. + */ + + alt_load_section (&__flash_rwdata_start, + 1c74: 01000034 movhi r4,0 + 1c78: 21083f04 addi r4,r4,8444 + 1c7c: 01400034 movhi r5,0 + 1c80: 29480304 addi r5,r5,8204 + 1c84: 01800034 movhi r6,0 + 1c88: 31883f04 addi r6,r6,8444 + * there is no bootloader, so this application is responsible for loading to + * RAM any sections that are required. + */ + +void alt_load (void) +{ + 1c8c: dfc00015 stw ra,0(sp) + /* + * Copy the .rwdata section. + */ + + alt_load_section (&__flash_rwdata_start, + 1c90: 0001c500 call 1c50 + + /* + * Copy the exception handler. + */ + + alt_load_section (&__flash_exceptions_start, + 1c94: 01000034 movhi r4,0 + 1c98: 21000804 addi r4,r4,32 + 1c9c: 01400034 movhi r5,0 + 1ca0: 29400804 addi r5,r5,32 + 1ca4: 01800034 movhi r6,0 + 1ca8: 31800804 addi r6,r6,32 + 1cac: 0001c500 call 1c50 + + /* + * Copy the .rodata section. + */ + + alt_load_section (&__flash_rodata_start, + 1cb0: 01000034 movhi r4,0 + 1cb4: 21074f04 addi r4,r4,7484 + 1cb8: 01400034 movhi r5,0 + 1cbc: 29474f04 addi r5,r5,7484 + 1cc0: 01800034 movhi r6,0 + 1cc4: 31880304 addi r6,r6,8204 + 1cc8: 0001c500 call 1c50 + + /* + * Now ensure that the caches are in synch. + */ + + alt_dcache_flush_all(); + 1ccc: 0001d2c0 call 1d2c + alt_icache_flush_all(); +} + 1cd0: dfc00017 ldw ra,0(sp) + 1cd4: dec00104 addi sp,sp,4 + /* + * Now ensure that the caches are in synch. + */ + + alt_dcache_flush_all(); + alt_icache_flush_all(); + 1cd8: 0001d301 jmpi 1d30 + +00001cdc : + * devices/filesystems/components in the system; and call the entry point for + * the users application, i.e. main(). + */ + +void alt_main (void) +{ + 1cdc: deffff04 addi sp,sp,-4 +#endif + + /* ALT LOG - please see HAL/sys/alt_log_printf.h for details */ + ALT_LOG_PRINT_BOOT("[alt_main.c] Entering alt_main, calling alt_irq_init.\r\n"); + /* Initialize the interrupt controller. */ + alt_irq_init (NULL); + 1ce0: 0009883a mov r4,zero + * devices/filesystems/components in the system; and call the entry point for + * the users application, i.e. main(). + */ + +void alt_main (void) +{ + 1ce4: dfc00015 stw ra,0(sp) +#endif + + /* ALT LOG - please see HAL/sys/alt_log_printf.h for details */ + ALT_LOG_PRINT_BOOT("[alt_main.c] Entering alt_main, calling alt_irq_init.\r\n"); + /* Initialize the interrupt controller. */ + alt_irq_init (NULL); + 1ce8: 0001d0c0 call 1d0c + ALT_LOG_PRINT_BOOT("[alt_main.c] Done OS Init, calling alt_sem_create.\r\n"); + ALT_SEM_CREATE (&alt_fd_list_lock, 1); + + /* Initialize the device drivers/software components. */ + ALT_LOG_PRINT_BOOT("[alt_main.c] Calling alt_sys_init.\r\n"); + alt_sys_init(); + 1cec: 0001d080 call 1d08 + */ + + ALT_LOG_PRINT_BOOT("[alt_main.c] Calling main.\r\n"); + +#ifdef ALT_NO_EXIT + main (alt_argc, alt_argv, alt_envp); + 1cf0: d1204617 ldw r4,-32488(gp) + 1cf4: d1604717 ldw r5,-32484(gp) + 1cf8: d1a04817 ldw r6,-32480(gp) + close(STDOUT_FILENO); + exit (result); +#endif + + ALT_LOG_PRINT_BOOT("[alt_main.c] After main - we should not be here?.\r\n"); +} + 1cfc: dfc00017 ldw ra,0(sp) + 1d00: dec00104 addi sp,sp,4 + */ + + ALT_LOG_PRINT_BOOT("[alt_main.c] Calling main.\r\n"); + +#ifdef ALT_NO_EXIT + main (alt_argc, alt_argv, alt_envp); + 1d04: 00003e81 jmpi 3e8
+ +00001d08 : + */ + +void alt_sys_init( void ) +{ + ALTERA_AVALON_JTAG_UART_INIT ( JTAG_UART, jtag_uart); +} + 1d08: f800283a ret + +00001d0c : + * The "base" parameter is ignored and only + * present for backwards-compatibility. + */ + +void alt_irq_init ( const void* base ) +{ + 1d0c: deffff04 addi sp,sp,-4 + 1d10: dfc00015 stw ra,0(sp) + ALTERA_NIOS2_QSYS_IRQ_INIT ( NIOS2_PROCESSOR, nios2_processor); + 1d14: 0001d340 call 1d34 + * alt_irq_cpu_enable_interrupts() enables the CPU to start taking interrupts. + */ +static ALT_INLINE void ALT_ALWAYS_INLINE + alt_irq_cpu_enable_interrupts () +{ + NIOS2_WRITE_STATUS(NIOS2_STATUS_PIE_MSK + 1d18: 00800044 movi r2,1 + 1d1c: 1001703a wrctl status,r2 + alt_irq_cpu_enable_interrupts(); +} + 1d20: dfc00017 ldw ra,0(sp) + 1d24: dec00104 addi sp,sp,4 + 1d28: f800283a ret + +00001d2c : + for (i = (char*) 0; i < (char*) NIOS2_DCACHE_SIZE; i+= NIOS2_DCACHE_LINE_SIZE) + { + __asm__ volatile ("flushd (%0)" :: "r" (i)); + } +#endif /* NIOS2_DCACHE_SIZE > 0 */ +} + 1d2c: f800283a ret + +00001d30 : +void alt_icache_flush_all (void) +{ +#if NIOS2_ICACHE_SIZE > 0 + alt_icache_flush (0, NIOS2_ICACHE_SIZE); +#endif +} + 1d30: f800283a ret + +00001d34 : + * To initialize the internal interrupt controller, just clear the IENABLE + * register so that all possible IRQs are disabled. + */ +void altera_nios2_qsys_irq_init(void) +{ + NIOS2_WRITE_IENABLE(0); + 1d34: 000170fa wrctl ienable,zero +} + 1d38: f800283a ret diff --git a/software/qsys_tutorial_mem/readme.txt b/software/qsys_tutorial_mem/readme.txt new file mode 100644 index 0000000..3dc3186 --- /dev/null +++ b/software/qsys_tutorial_mem/readme.txt @@ -0,0 +1,67 @@ +Readme - Hello World Software Example + +DESCRIPTION: +Simple program that prints "Hello from Nios II" + +The purpose of this example is to demonstrate the smallest possible Hello +World application, using the Nios II HAL BSP. The memory footprint +of this hosted application is intended to be less than 1 kbytes by default using a standard +reference design. For a more fully featured Hello World application +example, see the example titled "Hello World". + +The memory footprint of this example has been reduced by making the +following changes to the normal "Hello World" example. +Check in the Nios II Software Developers Handbook for a more complete +description. + +In the SW Application project: + - In the C/C++ Build page + - Set the Optimization Level to -Os + +In BSP project: + - In the C/C++ Build page + + - Set the Optimization Level to -Os + + - Define the preprocessor option ALT_NO_INSTRUCTION_EMULATION + This removes software exception handling, which means that you cannot + run code compiled for Nios II cpu with a hardware multiplier on a core + without a the multiply unit. Check the Nios II Software Developers + Manual for more details. + + - In the BSP: + - Set Periodic system timer and Timestamp timer to none + This prevents the automatic inclusion of the timer driver. + + - Set Max file descriptors to 4 + This reduces the size of the file handle pool. + + - Uncheck Clean exit (flush buffers) + This removes the call to exit, and when main is exitted instead of + calling exit the software will just spin in a loop. + + - Check Small C library + This uses a reduced functionality C library, which lacks + support for buffering, file IO, floating point and getch(), etc. + Check the Nios II Software Developers Manual for a complete list. + + - Check Reduced device drivers + This uses reduced functionality drivers if they're available. For the + standard design this means you get polled UART and JTAG UART drivers, + no support for the LCD driver and you lose the ability to program + CFI compliant flash devices. + + +PERIPHERALS USED: +This example exercises the following peripherals: +- STDOUT device (UART or JTAG UART) + +SOFTWARE SOURCE FILES: +This example includes the following software source files: +- small_hello_world.c: + +BOARD/HOST REQUIREMENTS: +This example requires only a JTAG connection with a Nios Development board. If +the host communication settings are changed from JTAG UART (default) to use a +conventional UART, a serial cable between board DB-9 connector and the host is +required. diff --git a/software/qsys_tutorial_mem/sys_memory.c b/software/qsys_tutorial_mem/sys_memory.c new file mode 100644 index 0000000..c8faff6 --- /dev/null +++ b/software/qsys_tutorial_mem/sys_memory.c @@ -0,0 +1,58 @@ +/* + * sys_memory.c + * + * Created on: 2016/11/24 + * Author: takayun + */ +#include "system.h" +#include "sys_memory.h" +#include "sys_register.h" + +/************************************************** + * Public + **************************************************/ + +// �����������̂ǂ̃�������(0 < global_current_memory < MEMS_COUNT) +unsigned int global_current_memory = 0; + +/************************************************** + * Private + **************************************************/ + +// �����������̕ϐ� +static char memory[MEMS_COUNT][MEM_SIZE]; + +static struct InstRec inst_memory[MEMS_COUNT][MEM_SIZE]; + + +/************************************************** + * Impl + **************************************************/ + +void memory_init() { + int i, j; + for (i = 0; i < MEMS_COUNT; i++) + for (j = 0; j < MEM_SIZE; j++) { + memory[i][j] = 0; + } +} + +void inst_memory_store(unsigned int mem_addr, struct InstRec inst_rec){ + inst_memory[global_current_memory][mem_addr] = inst_rec; +} +struct InstRec inst_memory_load(unsigned int mem_addr){ + return inst_memory[global_current_memory][mem_addr]; +} + +char memory_store(unsigned int mem_addr, enum Register reg) { + if (!(mem_addr < MEM_SIZE)) panic(); + memory[global_current_memory][mem_addr] = global_registers[reg]; + return memory[global_current_memory][mem_addr]; +} + +char memory_load(unsigned int mem_addr, enum Register reg) { + if (!(mem_addr < MEM_SIZE)) panic(); + global_registers[reg] = memory[global_current_memory][mem_addr]; + return global_registers[reg]; +} + diff --git a/software/qsys_tutorial_mem/sys_memory.h b/software/qsys_tutorial_mem/sys_memory.h new file mode 100644 index 0000000..648fe11 --- /dev/null +++ b/software/qsys_tutorial_mem/sys_memory.h @@ -0,0 +1,67 @@ +/* + * sys_memory.h + * + * Created on: 2016/11/24 + * Author: takayun + */ + +#ifndef SYS_MEMORY_H_ +#define SYS_MEMORY_H_ + +#include "sys_register.h" +#include "inst_decoder.h" + +/************************************************** + * Defines + **************************************************/ + +// �������̐� +#define MEMS_COUNT 4 + +// 1�������̃T�C�Y +#define MEM_SIZE 16 + +/************************************************** + * Variables + **************************************************/ + +extern unsigned int global_current_memory; + +/************************************************** + * Functions + **************************************************/ + +/* Function: memory_init + * Sammary: + * ������������������(All 0) */ +void memory_init(); + +/* ���ߗp�������ɖ��߂̃X�g�A&���[�h */ + +/* Function: memory_store -> char + * Sammary: + * �������̎w��Ԓn�Ɏw�肵�����W�X�^����l���i�[���� + * Return: + * �������Ɋi�[���ꂽ�l */ +void inst_memory_store(unsigned int mem_addr, struct InstRec inst_rec); +struct InstRec inst_memory_load(unsigned int mem_addr); + + +/* ������-���W�X�^�Ԃ̑��� */ + +/* Function: memory_store -> char + * Sammary: + * �������̎w��Ԓn�Ɏw�肵�����W�X�^����l���i�[���� + * Return: + * �������Ɋi�[���ꂽ�l */ +char memory_store(unsigned int mem_addr, enum Register reg); + +/* Function: memory_store -> char + * Sammary: + * �w�肵�����W�X�^�Ƀ������̎w��Ԓn����l���i�[���� + * Return: + * ���W�X�^�Ɋi�[���ꂽ�l */ +char memory_load(unsigned int mem_addr, enum Register reg); + + +#endif /* SYS_MEMORY_H_ */ diff --git a/software/qsys_tutorial_mem/sys_register.c b/software/qsys_tutorial_mem/sys_register.c new file mode 100644 index 0000000..84ed485 --- /dev/null +++ b/software/qsys_tutorial_mem/sys_register.c @@ -0,0 +1,17 @@ +/* + * sys_register.c + * + * Created on: 2016/11/24 + * Author: takayun + */ +#include "sys_register.h" + +char global_registers[REG_MAX_COUNT]; + +void registers_init() { + int i; + for (i = 0; i < REG_MAX_COUNT; i++) global_registers[i] = 0; +} + + + diff --git a/software/qsys_tutorial_mem/sys_register.h b/software/qsys_tutorial_mem/sys_register.h new file mode 100644 index 0000000..65ad219 --- /dev/null +++ b/software/qsys_tutorial_mem/sys_register.h @@ -0,0 +1,54 @@ +/* + * sys_register.h + * + * Created on: 2016/11/24 + * Author: takayun + */ + +#ifndef SYS_REGISTER_H_ +#define SYS_REGISTER_H_ + +/************************************************** + * Defines + **************************************************/ + +// ���W�X�^�̒�` +enum Register { + /* �ʏ�̃��W�X�^ */ + Szero, //�[�����W�X�^ + Spc, //�v���O�����J�E���^ + Ssp, //�X�^�b�N�|�C���^ + Sgp0, //�ėp���W�X�^0 + Sgp1, //�ėp���W�X�^1 + Sacc, //�A�L�������[�^ + Sflg, //�t���O���W�X�^ + /* �X�C�b�`�ǂݏo���p���W�X�^ */ + Ssw_data, //�f�[�^(8bit) + Ssw_inst, //����(4bit) + Ssw_regi, //���W�X�^�ԍ�(4bit) + Ssw_memi, //�������Ԓn(4bit) + Ssw_psel, //�v���O�����Z���N�^(4bit) + Ssw_rw, //�ǂݏ������[�h(1bit) + Ssw_run, //���s���[�h(1bit) + /* 7�Z�O�p���W�X�^ */ + Sseg, + + /* �z��錾�p */ + REG_MAX_COUNT +}; + +/************************************************** + * Variables + **************************************************/ + +// ���W�X�^�p�̕ϐ� +extern char global_registers[REG_MAX_COUNT]; + +/************************************************** + * Functions + **************************************************/ + +void registers_init(); + + +#endif /* SYS_REGISTER_H_ */ diff --git a/software/qsys_tutorial_mem/system.c b/software/qsys_tutorial_mem/system.c new file mode 100644 index 0000000..30713dd --- /dev/null +++ b/software/qsys_tutorial_mem/system.c @@ -0,0 +1,14 @@ +/* + * system.c + * + * Created on: 2016/11/24 + * Author: takayun + */ +#include "system.h" +#include "hex_out.h" + +void panic() { + clear_block(HEX0_3); + print_block("err ", 4, HEX0_3); +} + diff --git a/software/qsys_tutorial_mem/system.h b/software/qsys_tutorial_mem/system.h new file mode 100644 index 0000000..1a628fa --- /dev/null +++ b/software/qsys_tutorial_mem/system.h @@ -0,0 +1,13 @@ +/* + * system.h + * + * Created on: 2016/11/24 + * Author: takayun + */ + +#ifndef SYSTEM_H_ +#define SYSTEM_H_ + +void panic(); + +#endif /* SYSTEM_H_ */ diff --git a/software/qsys_tutorial_mem/system/template.xml b/software/qsys_tutorial_mem/system/template.xml new file mode 100644 index 0000000..b09e912 --- /dev/null +++ b/software/qsys_tutorial_mem/system/template.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/software/qsys_tutorial_mem_bsp/.cproject b/software/qsys_tutorial_mem_bsp/.cproject new file mode 100644 index 0000000..ed9c556 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/.cproject @@ -0,0 +1,481 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/software/qsys_tutorial_mem_bsp/.project b/software/qsys_tutorial_mem_bsp/.project new file mode 100644 index 0000000..58df451 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/.project @@ -0,0 +1,85 @@ + + + qsys_tutorial_mem_bsp + + + + + + org.eclipse.cdt.managedbuilder.core.genmakebuilder + clean,full,incremental, + + + ?name? + + + + org.eclipse.cdt.make.core.append_environment + true + + + org.eclipse.cdt.make.core.autoBuildTarget + all + + + org.eclipse.cdt.make.core.buildArguments + + + + org.eclipse.cdt.make.core.buildCommand + make + + + org.eclipse.cdt.make.core.buildLocation + ${workspace_loc://qsys_tutorial_mem_bsp} + + + org.eclipse.cdt.make.core.cleanBuildTarget + clean + + + org.eclipse.cdt.make.core.contents + org.eclipse.cdt.make.core.activeConfigSettings + + + org.eclipse.cdt.make.core.enableAutoBuild + false + + + org.eclipse.cdt.make.core.enableCleanBuild + true + + + org.eclipse.cdt.make.core.enableFullBuild + true + + + org.eclipse.cdt.make.core.fullBuildTarget + all + + + org.eclipse.cdt.make.core.stopOnError + true + + + org.eclipse.cdt.make.core.useDefaultBuildCmd + true + + + + + org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder + full,incremental, + + + + + + org.eclipse.cdt.core.cnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.managedbuilder.core.ScannerConfigNature + org.eclipse.cdt.core.ccnature + com.altera.sbtgui.project.SBTGUINature + com.altera.sbtgui.project.SBTGUIBspNature + + diff --git a/software/qsys_tutorial_mem_bsp/HAL/inc/alt_types.h b/software/qsys_tutorial_mem_bsp/HAL/inc/alt_types.h new file mode 100644 index 0000000..d02f171 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/HAL/inc/alt_types.h @@ -0,0 +1,54 @@ +#ifndef __ALT_TYPES_H__ +#define __ALT_TYPES_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/* + * Don't declare these typedefs if this file is included by assembly source. + */ +#ifndef ALT_ASM_SRC +typedef signed char alt_8; +typedef unsigned char alt_u8; +typedef signed short alt_16; +typedef unsigned short alt_u16; +typedef signed long alt_32; +typedef unsigned long alt_u32; +typedef long long alt_64; +typedef unsigned long long alt_u64; +#endif + +#define ALT_INLINE __inline__ +#define ALT_ALWAYS_INLINE __attribute__ ((always_inline)) +#define ALT_WEAK __attribute__((weak)) + +#endif /* __ALT_TYPES_H__ */ diff --git a/software/qsys_tutorial_mem_bsp/HAL/inc/altera_nios2_qsys_irq.h b/software/qsys_tutorial_mem_bsp/HAL/inc/altera_nios2_qsys_irq.h new file mode 100644 index 0000000..6629ec9 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/HAL/inc/altera_nios2_qsys_irq.h @@ -0,0 +1,80 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2009 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/* + * Support for the Nios II internal interrupt controller. + */ + +#ifndef __ALT_NIOS2_QSYS_IRQ_H__ +#define __ALT_NIOS2_QSYS_IRQ_H__ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * The macro ALTERA_NIOS2_IRQ_INSTANCE is used by the alt_irq_init() + * function in the auto-generated file alt_sys_init.c to create an + * instance of this interrupt controller device driver state if this + * module contains an interrupt controller. + * Only one instance of a Nios II is allowed so this macro is just empty. + */ + +#define ALTERA_NIOS2_QSYS_IRQ_INSTANCE(name, state) + +/* + * altera_nios2_irq_init() is called by the auto-generated function + * alt_irq_init() once for the Nios II if it contains an interrupt controller. + * The altera_nios2_irq_init() routine is called using the + * ALTERA_NIOS2_IRQ_INIT macro given below. + * + * This function initializes the internal interrupt controller + * so is not called if the Nios II contains an external interrupt + * controller port (because the internal interrupt controller + * is removed if this port is present). + */ + +extern void altera_nios2_qsys_irq_init( void ); + +/* + * The macro ALTERA_NIOS2_IRQ_INIT is used by the alt_irq_init() routine + * in the auto-generated file alt_sys_init.c to initialize an instance + * of the interrupt controller device driver state. + */ + +#define ALTERA_NIOS2_QSYS_IRQ_INIT(name, state) altera_nios2_qsys_irq_init() + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __ALT_NIOS2_QSYS_IRQ_H__ */ + diff --git a/software/qsys_tutorial_mem_bsp/HAL/inc/io.h b/software/qsys_tutorial_mem_bsp/HAL/inc/io.h new file mode 100644 index 0000000..362f103 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/HAL/inc/io.h @@ -0,0 +1,81 @@ +#ifndef __IO_H__ +#define __IO_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/* IO Header file for Nios II Toolchain */ + +#include "alt_types.h" +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +#ifndef SYSTEM_BUS_WIDTH +#error SYSTEM_BUS_WIDTH undefined +#endif + +/* Dynamic bus access functions */ + +#define __IO_CALC_ADDRESS_DYNAMIC(BASE, OFFSET) \ + ((void *)(((alt_u8*)BASE) + (OFFSET))) + +#define IORD_32DIRECT(BASE, OFFSET) \ + __builtin_ldwio (__IO_CALC_ADDRESS_DYNAMIC ((BASE), (OFFSET))) +#define IORD_16DIRECT(BASE, OFFSET) \ + __builtin_ldhuio (__IO_CALC_ADDRESS_DYNAMIC ((BASE), (OFFSET))) +#define IORD_8DIRECT(BASE, OFFSET) \ + __builtin_ldbuio (__IO_CALC_ADDRESS_DYNAMIC ((BASE), (OFFSET))) + +#define IOWR_32DIRECT(BASE, OFFSET, DATA) \ + __builtin_stwio (__IO_CALC_ADDRESS_DYNAMIC ((BASE), (OFFSET)), (DATA)) +#define IOWR_16DIRECT(BASE, OFFSET, DATA) \ + __builtin_sthio (__IO_CALC_ADDRESS_DYNAMIC ((BASE), (OFFSET)), (DATA)) +#define IOWR_8DIRECT(BASE, OFFSET, DATA) \ + __builtin_stbio (__IO_CALC_ADDRESS_DYNAMIC ((BASE), (OFFSET)), (DATA)) + +/* Native bus access functions */ + +#define __IO_CALC_ADDRESS_NATIVE(BASE, REGNUM) \ + ((void *)(((alt_u8*)BASE) + ((REGNUM) * (SYSTEM_BUS_WIDTH/8)))) + +#define IORD(BASE, REGNUM) \ + __builtin_ldwio (__IO_CALC_ADDRESS_NATIVE ((BASE), (REGNUM))) +#define IOWR(BASE, REGNUM, DATA) \ + __builtin_stwio (__IO_CALC_ADDRESS_NATIVE ((BASE), (REGNUM)), (DATA)) + +#ifdef __cplusplus +} +#endif + +#endif /* __IO_H__ */ diff --git a/software/qsys_tutorial_mem_bsp/HAL/inc/nios2.h b/software/qsys_tutorial_mem_bsp/HAL/inc/nios2.h new file mode 100644 index 0000000..72cefba --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/HAL/inc/nios2.h @@ -0,0 +1,230 @@ +#ifndef __NIOS2_H__ +#define __NIOS2_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2008 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/* + * This header provides processor specific macros for accessing the Nios2 + * control registers. + */ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * Macros for accessing selected processor registers + */ + +#define NIOS2_READ_ET(et) \ + do { __asm ("mov %0, et" : "=r" (et) ); } while (0) + +#define NIOS2_WRITE_ET(et) \ + do { __asm volatile ("mov et, %z0" : : "rM" (et)); } while (0) + +#define NIOS2_READ_SP(sp) \ + do { __asm ("mov %0, sp" : "=r" (sp) ); } while (0) + +/* + * Macros for useful processor instructions + */ + +#define NIOS2_BREAK() \ + do { __asm volatile ("break"); } while (0) + +#define NIOS2_REPORT_STACK_OVERFLOW() \ + do { __asm volatile("break 3"); } while (0) + +/* + * Macros for accessing the control registers. + */ + +#define NIOS2_READ_STATUS(dest) \ + do { dest = __builtin_rdctl(0); } while (0) + +#define NIOS2_WRITE_STATUS(src) \ + do { __builtin_wrctl(0, src); } while (0) + +#define NIOS2_READ_ESTATUS(dest) \ + do { dest = __builtin_rdctl(1); } while (0) + +#define NIOS2_READ_BSTATUS(dest) \ + do { dest = __builtin_rdctl(2); } while (0) + +#define NIOS2_READ_IENABLE(dest) \ + do { dest = __builtin_rdctl(3); } while (0) + +#define NIOS2_WRITE_IENABLE(src) \ + do { __builtin_wrctl(3, src); } while (0) + +#define NIOS2_READ_IPENDING(dest) \ + do { dest = __builtin_rdctl(4); } while (0) + +#define NIOS2_READ_CPUID(dest) \ + do { dest = __builtin_rdctl(5); } while (0) + + +/* + * Macros for accessing extra exception registers. These + * are always enabled wit the MPU or MMU, and optionally + * with other advanced exception types/ + */ +#define NIOS2_READ_EXCEPTION(dest) \ + do { dest = __builtin_rdctl(7); } while (0) + +#define NIOS2_READ_BADADDR(dest) \ + do { dest = __builtin_rdctl(12); } while (0) + + +/* + * Macros for accessing control registers for MPU + * operation. These should not be used unless the + * MPU is enabled. + * + * The config register may be augmented for future + * enhancements. For now, only MPU support is provided. + */ +/* Config register */ +#define NIOS2_WRITE_CONFIG(src) \ + do { __builtin_wrctl(13, src); } while (0) + +#define NIOS2_READ_CONFIG(dest) \ + do { dest = __builtin_rdctl(13); } while (0) + +/* MPU Base Address Register */ +#define NIOS2_WRITE_MPUBASE(src) \ + do { __builtin_wrctl(14, src); } while (0) + +#define NIOS2_READ_MPUBASE(dest) \ + do { dest = __builtin_rdctl(14); } while (0) + +/* MPU Access Register */ +#define NIOS2_WRITE_MPUACC(src) \ + do { __builtin_wrctl(15, src); } while (0) + +#define NIOS2_READ_MPUACC(dest) \ + do { dest = __builtin_rdctl(15); } while (0) + + +/* + * Nios II control registers that are always present + */ +#define NIOS2_STATUS status +#define NIOS2_ESTATUS estatus +#define NIOS2_BSTATUS bstatus +#define NIOS2_IENABLE ienable +#define NIOS2_IPENDING ipending +#define NIOS2_CPUID cpuid + +/* + * STATUS, BSTATUS, ESTATUS, and SSTATUS fields. + * The presence of fields is a function of the Nios II configuration. + */ +#define NIOS2_STATUS_PIE_MSK (0x00000001) +#define NIOS2_STATUS_PIE_OFST (0) +#define NIOS2_STATUS_U_MSK (0x00000002) +#define NIOS2_STATUS_U_OFST (1) +#define NIOS2_STATUS_EH_MSK (0x00000004) +#define NIOS2_STATUS_EH_OFST (2) +#define NIOS2_STATUS_IH_MSK (0x00000008) +#define NIOS2_STATUS_IH_OFST (3) +#define NIOS2_STATUS_IL_MSK (0x000003f0) +#define NIOS2_STATUS_IL_OFST (4) +#define NIOS2_STATUS_CRS_MSK (0x0000fc00) +#define NIOS2_STATUS_CRS_OFST (10) +#define NIOS2_STATUS_PRS_MSK (0x003f0000) +#define NIOS2_STATUS_PRS_OFST (16) +#define NIOS2_STATUS_NMI_MSK (0x00400000) +#define NIOS2_STATUS_NMI_OFST (22) +#define NIOS2_STATUS_RSIE_MSK (0x00800000) +#define NIOS2_STATUS_RSIE_OFST (23) +#define NIOS2_STATUS_SRS_MSK (0x80000000) +#define NIOS2_STATUS_SRS_OFST (31) + +/* + * Bit masks & offsets available with extra exceptions support + */ + +/* Exception register */ +#define NIOS2_EXCEPTION_REG_CAUSE_MASK (0x0000007c) +#define NIOS2_EXCEPTION_REG_CAUSE_OFST (2) + +/* + * Bit masks & offsets for MPU support + * + * All bit-masks are expressed relative to the position + * of the data with a register. To read data that is LSB- + * aligned, the register read data should be masked, then + * right-shifted by the designated "OFST" macro value. The + * opposite should be used for register writes when starting + * with LSB-aligned data. + */ + +/* Config register */ +#define NIOS2_CONFIG_REG_PE_MASK (0x00000001) +#define NIOS2_CONFIG_REG_PE_OFST (0) +#define NIOS2_CONFIG_REG_ANI_MASK (0x00000002) +#define NIOS2_CONFIG_REG_ANI_OFST (1) + +/* MPU Base Address Register */ +#define NIOS2_MPUBASE_D_MASK (0x00000001) +#define NIOS2_MPUBASE_D_OFST (0) +#define NIOS2_MPUBASE_INDEX_MASK (0x0000003e) +#define NIOS2_MPUBASE_INDEX_OFST (1) +#define NIOS2_MPUBASE_BASE_ADDR_MASK (0xffffffc0) +#define NIOS2_MPUBASE_BASE_ADDR_OFST (6) + +/* MPU Access Register */ +#define NIOS2_MPUACC_LIMIT_MASK (0xffffffc0) +#define NIOS2_MPUACC_LIMIT_OFST (6) +#define NIOS2_MPUACC_MASK_MASK (0xffffffc0) +#define NIOS2_MPUACC_MASK_OFST (6) +#define NIOS2_MPUACC_C_MASK (0x00000020) +#define NIOS2_MPUACC_C_OFST (5) +#define NIOS2_MPUACC_PERM_MASK (0x0000001c) +#define NIOS2_MPUACC_PERM_OFST (2) +#define NIOS2_MPUACC_RD_MASK (0x00000002) +#define NIOS2_MPUACC_RD_OFST (1) +#define NIOS2_MPUACC_WR_MASK (0x00000001) +#define NIOS2_MPUACC_WR_OFST (0) + +/* + * Number of available IRQs in internal interrupt controller. + */ +#define NIOS2_NIRQ 32 + + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __NIOS2_H__ */ diff --git a/software/qsys_tutorial_mem_bsp/HAL/inc/os/alt_flag.h b/software/qsys_tutorial_mem_bsp/HAL/inc/os/alt_flag.h new file mode 100644 index 0000000..b9b4605 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/HAL/inc/os/alt_flag.h @@ -0,0 +1,98 @@ +#ifndef __ALT_FLAG_H__ +#define __ALT_FLAG_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +/* + * This header provides macro definitions that can be used to create and use + * uc/OS-II style event flags. These macros can be used in both a uC/OS-II based + * environment, and a single threaded HAL based environment. + * + * The motivation for these macros is to allow code to be developed which is + * thread safe under uC/OS-II, but incurs no additional overhead when used in a + * single threaded HAL environment. + * + * In the case of a single threaded HAL environment, they compile to + * "do nothing" directives, which ensures they do not contribute to the final + * executable. + * + * The following macros are available: + * + * ALT_FLAG_GRP - Create a flag group instance. + * ALT_EXTERN_FLAG_GRP - Create a reference to an external flag group instance. + * ALT_STATIC_FLAG_GRP - Create a static flag group instance. + * ALT_FLAG_CREATE - Initialise a flag group. + * ALT_FLAG_PEND - Pend on a flag group. + * ALT_FLAG_POST - Set a flag condition. + + * + * Input arguments and return codes are all consistant with the equivalent + * uC/OS-II function. + * + * It's important to be careful in the use of the macros: ALT_FLAG_GRP, + * ALT_EXTERN_FLAG_GRP, and ALT_STATIC_FLAG_GRP. In these three cases the + * semi-colon is included in the macro definition; so, for example, you should + * use: + * + * ALT_FLAG_GRP(mygroup) + * + * not: + * + * ALT_FLAG_GRP(mygroup); + * + * The inclusion of the semi-colon has been necessary to ensure the macros can + * compile with no warnings when used in a single threaded HAL environment. + * + */ + +#include "priv/alt_no_error.h" + +#define ALT_FLAG_GRP(group) +#define ALT_EXTERN_FLAG_GRP(group) +#define ALT_STATIC_FLAG_GRP(group) + +#define ALT_FLAG_CREATE(group, flags) alt_no_error () +#define ALT_FLAG_PEND(group, flags, wait_type, timeout) alt_no_error () +#define ALT_FLAG_POST(group, flags, opt) alt_no_error () + +#ifndef ALT_SINGLE_THREADED +#define ALT_SINGLE_THREADED +#endif + +#endif /* __ALT_FLAG_H__ */ diff --git a/software/qsys_tutorial_mem_bsp/HAL/inc/os/alt_hooks.h b/software/qsys_tutorial_mem_bsp/HAL/inc/os/alt_hooks.h new file mode 100644 index 0000000..9054e3f --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/HAL/inc/os/alt_hooks.h @@ -0,0 +1,61 @@ +#ifndef __ALT_HOOKS_H__ +#define __ALT_HOOKS_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +/* + * This header provides "do-nothing" macro definitions for operating system + * hooks within the HAL. The O/S component can override these to provide it's + * own implementation. + */ + +#define ALT_OS_TIME_TICK() while(0) +#define ALT_OS_INIT() while(0) +#define ALT_OS_STOP() while(0) + +/* Call from assembly code */ +#define ALT_OS_INT_ENTER_ASM +#define ALT_OS_INT_EXIT_ASM + +/* Call from C code */ +#define ALT_OS_INT_ENTER() while(0) +#define ALT_OS_INT_EXIT() while(0) + + +#endif /* __ALT_HOOKS_H__ */ diff --git a/software/qsys_tutorial_mem_bsp/HAL/inc/os/alt_sem.h b/software/qsys_tutorial_mem_bsp/HAL/inc/os/alt_sem.h new file mode 100644 index 0000000..753943e --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/HAL/inc/os/alt_sem.h @@ -0,0 +1,96 @@ +#ifndef __ALT_SEM_H__ +#define __ALT_SEM_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +/* + * This header provides macro definitions that can be used to create and use + * semaphores. These macros can be used in both a uC/OS-II based environment, + * and a single threaded HAL based environment. + * + * The motivation for these macros is to allow code to be developed which is + * thread safe under uC/OS-II, but incurs no additional overhead when used in a + * single threaded HAL environment. + * + * In the case of a single threaded HAL environment, they compile to + * "do nothing" directives, which ensures they do not contribute to the final + * executable. + * + * The following macros are available: + * + * ALT_SEM - Create a semaphore instance. + * ALT_EXTERN_SEM - Create a reference to an external semaphore instance. + * ALT_STATIC_SEM - Create a static semaphore instance. + * ALT_SEM_CREATE - Initialise a semaphore. + * ALT_SEM_PEND - Pend on a semaphore. + * ALT_SEM_POST - Increment a semaphore. + * + * Input arguments and return codes are all consistant with the equivalent + * uC/OS-II function. + * + * It's important to be careful in the use of the macros: ALT_SEM, + * ALT_EXTERN_SEM, and ALT_STATIC_SEM. In these three cases the semi-colon is + * included in the macro definition; so, for example, you should use: + * + * ALT_SEM(mysem) + * + * not: + * + * ALT_SEM(mysem); + * + * The inclusion of the semi-colon has been necessary to ensure the macros can + * compile with no warnings when used in a single threaded HAL environment. + * + */ + +#include "priv/alt_no_error.h" + +#define ALT_SEM(sem) +#define ALT_EXTERN_SEM(sem) +#define ALT_STATIC_SEM(sem) + +#define ALT_SEM_CREATE(sem, value) alt_no_error () +#define ALT_SEM_PEND(sem, timeout) alt_no_error () +#define ALT_SEM_POST(sem) alt_no_error () + +#ifndef ALT_SINGLE_THREADED +#define ALT_SINGLE_THREADED +#endif + +#endif /* __ALT_SEM_H__ */ diff --git a/software/qsys_tutorial_mem_bsp/HAL/inc/os/alt_syscall.h b/software/qsys_tutorial_mem_bsp/HAL/inc/os/alt_syscall.h new file mode 100644 index 0000000..507c6aa --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/HAL/inc/os/alt_syscall.h @@ -0,0 +1,75 @@ +#ifndef __ALT_SYSCALL_H__ +#define __ALT_SYSCALL_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/* + * The macros defined in this file are used to provide the function names used + * for the HAL 'UNIX style' interface, e.g. read(), write() etc. + * + * Operating systems which are ported to the HAL can provide their own + * version of this file, which will be used in preference. This allows + * the operating system to provide it's own implementation of the top level + * system calls, while retaining the HAL functions under a different name, + * for example, alt_read(), alt_write() etc. + */ + +#define ALT_CLOSE close +#define ALT_ENVIRON environ +#define ALT_EXECVE execve +#define ALT_EXIT _exit +#define ALT_FCNTL fcntl +#define ALT_FORK fork +#define ALT_FSTAT fstat +#define ALT_GETPID getpid +#define ALT_GETTIMEOFDAY gettimeofday +#define ALT_IOCTL ioctl +#define ALT_ISATTY isatty +#define ALT_KILL kill +#define ALT_LINK link +#define ALT_LSEEK lseek +#define ALT_OPEN open +#define ALT_READ read +#define ALT_RENAME _rename +#define ALT_SBRK sbrk +#define ALT_SETTIMEOFDAY settimeofday +#define ALT_STAT stat +#define ALT_UNLINK unlink +#define ALT_USLEEP usleep +#define ALT_WAIT wait +#define ALT_WRITE write +#define ALT_TIMES times + +/* + * + */ + +#endif /* __ALT_SYSCALL_H__ */ diff --git a/software/qsys_tutorial_mem_bsp/HAL/inc/priv/alt_alarm.h b/software/qsys_tutorial_mem_bsp/HAL/inc/priv/alt_alarm.h new file mode 100644 index 0000000..45d6a0e --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/HAL/inc/priv/alt_alarm.h @@ -0,0 +1,101 @@ +#ifndef __ALT_PRIV_ALARM_H__ +#define __ALT_PRIV_ALARM_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#include "alt_types.h" + +/* + * This header provides the internal defenitions required by the public + * interface alt_alarm.h. These variables and structures are not guaranteed to + * exist in future implementations of the HAL. + */ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * "alt_alarm_s" is a structure type used to maintain lists of alarm callback + * functions. + */ + +struct alt_alarm_s +{ + alt_llist llist; /* linked list */ + alt_u32 time; /* time in system ticks of the callback */ + alt_u32 (*callback) (void* context); /* callback function. The return + * value is the period for the next callback; where + * zero indicates that the alarm should be removed + * from the list. + */ + alt_u8 rollover; /* set when desired alarm time + current time causes + overflow, to prevent premature alarm */ + void* context; /* Argument for the callback */ +}; + +/* + * "_alt_tick_rate" is a global variable used to store the system clock rate + * in ticks per second. This is initialised to zero, which coresponds to there + * being no system clock available. + * + * It is then set to it's final value by the system clock driver through a call + * to alt_sysclk_init(). + */ + +extern alt_u32 _alt_tick_rate; + +/* + * "_alt_nticks" is a global variable which records the elapsed number of + * system clock ticks since the last call to settimeofday() or since reset if + * settimeofday() has not been called. + */ + +extern volatile alt_u32 _alt_nticks; + +/* The list of registered alarms. */ + +extern alt_llist alt_alarm_list; + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_PRIV_ALARM_H__ */ diff --git a/software/qsys_tutorial_mem_bsp/HAL/inc/priv/alt_busy_sleep.h b/software/qsys_tutorial_mem_bsp/HAL/inc/priv/alt_busy_sleep.h new file mode 100644 index 0000000..b1af849 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/HAL/inc/priv/alt_busy_sleep.h @@ -0,0 +1,35 @@ +#ifndef __ALT_BUSY_SLEEP_H +#define __ALT_BUSY_SLEEP_H + +/* + * Copyright (c) 2003 Altera Corporation, San Jose, California, USA. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ + +/* + * The function alt_busy_sleep provides a busy loop implementation of usleep. + * This is used to provide usleep for the standalone HAL, or when the timer is + * unavailable in uC/OS-II. + */ + +extern unsigned int alt_busy_sleep (unsigned int us); + +#endif /* __ALT_BUSY_SLEEP_H */ diff --git a/software/qsys_tutorial_mem_bsp/HAL/inc/priv/alt_dev_llist.h b/software/qsys_tutorial_mem_bsp/HAL/inc/priv/alt_dev_llist.h new file mode 100644 index 0000000..451b063 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/HAL/inc/priv/alt_dev_llist.h @@ -0,0 +1,77 @@ +#ifndef __ALT_DEV_LLIST_H__ +#define __ALT_DEV_LLIST_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#include "sys/alt_llist.h" +#include "alt_types.h" + +/* + * This header provides the internal defenitions required to control file + * access. These variables and functions are not guaranteed to exist in + * future implementations of the HAL. + */ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * The alt_dev_llist is an internal structure used to form a common base + * class for all device types. The use of this structure allows common code + * to be used to manipulate the various device lists. + */ + +typedef struct { + alt_llist llist; + const char* name; +} alt_dev_llist; + +/* + * + */ + +extern int alt_dev_llist_insert (alt_dev_llist* dev, alt_llist* list); + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_DEV_LLIST_H__ */ diff --git a/software/qsys_tutorial_mem_bsp/HAL/inc/priv/alt_exception_handler_registry.h b/software/qsys_tutorial_mem_bsp/HAL/inc/priv/alt_exception_handler_registry.h new file mode 100644 index 0000000..c6905fa --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/HAL/inc/priv/alt_exception_handler_registry.h @@ -0,0 +1,39 @@ +#ifndef __ALT_EXCEPTION_HANDLER_REGISTRY_H__ +#define __ALT_EXCEPTION_HANDLER_REGISTRY_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2008 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ +#include "sys/alt_exceptions.h" + +/* Function pointer to exception callback routine */ +extern alt_exception_result (*alt_instruction_exception_handler) + (alt_exception_cause, alt_u32, alt_u32); + +#endif /* __ALT_EXCEPTION_HANDLER_REGISTRY_H__ */ diff --git a/software/qsys_tutorial_mem_bsp/HAL/inc/priv/alt_file.h b/software/qsys_tutorial_mem_bsp/HAL/inc/priv/alt_file.h new file mode 100644 index 0000000..2c3e843 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/HAL/inc/priv/alt_file.h @@ -0,0 +1,179 @@ +#ifndef __ALT_FILE_H__ +#define __ALT_FILE_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#include "sys/alt_dev.h" +#include "sys/alt_llist.h" +#include "os/alt_sem.h" + +#include "alt_types.h" + +/* + * This header provides the internal defenitions required to control file + * access. These variables and functions are not guaranteed to exist in + * future implementations of the HAL. + */ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * The function alt_find_dev() is used to search the device list "list" to + * locate a device named "name". If a match is found, then a pointer to the + * device is returned, otherwise NULL is returned. + */ + +extern alt_dev* alt_find_dev (const char* name, alt_llist* list); + +/* + * alt_find_file() is used to search the list of registered file systems to + * find the filesystem that the file named "name" belongs to. If a match is + * found, then a pointer to the filesystems alt_dev structure is returned, + * otherwise NULL is returned. + * + * Note that a match does not indicate that the file exists, only that a + * filesystem exists that is registered for a partition that could contain + * the file. The filesystems open() function would need to be called in order + * to determine if the file exists. + */ + +extern alt_dev* alt_find_file (const char* name); + +/* + * alt_get_fd() is used to allocate a file descriptor for the device or + * filesystem "dev". A negative return value indicates an error, otherwise the + * return value is the index of the file descriptor within the file descriptor + * pool. + */ + +extern int alt_get_fd (alt_dev* dev); + +/* + * alt_release_fd() is called to free the file descriptor with index "fd". + */ + +extern void alt_release_fd (int fd); + +/* + * alt_fd_lock() is called by ioctl() to mark the file descriptor "fd" as + * being open for exclusive access. Subsequent calls to open() for the device + * associated with "fd" will fail. A device is unlocked by either calling + * close() for "fd", or by an alternate call to ioctl() (see ioctl.c for + * details). + */ + +extern int alt_fd_lock (alt_fd* fd); + +/* + * alt_fd_unlock() is called by ioctl() to unlock a descriptor previously + * locked by a call to alt_fd_lock(). + */ + +extern int alt_fd_unlock (alt_fd* fd); + +/* + * "alt_fd_list" is the pool of file descriptors. + */ + +extern alt_fd alt_fd_list[]; + +/* + * flags used by alt_fd. + * + * ALT_FD_EXCL is used to mark a file descriptor as locked for exclusive + * access, i.e. further calls to open() for the associated device should + * fail. + * + * ALT_FD_DEV marks a dile descriptor as belonging to a device as oposed to a + * filesystem. + */ + +#define ALT_FD_EXCL 0x80000000 +#define ALT_FD_DEV 0x40000000 + +#define ALT_FD_FLAGS_MASK (ALT_FD_EXCL | ALT_FD_DEV) + +/* + * "alt_dev_list" is the head of the linked list of registered devices. + */ + +extern alt_llist alt_dev_list; + +/* + * "alt_fs_list" is the head of the linked list of registered filesystems. + */ + +extern alt_llist alt_fs_list; + +/* + * "alt_fd_list_lock" is a semaphore used to ensure that access to the pool + * of file descriptors is thread safe. + */ + +ALT_EXTERN_SEM(alt_fd_list_lock) + +/* + * "alt_max_fd" is a 'high water mark'. It indicates the highest file + * descriptor allocated. Use of this can save searching the entire pool + * for active file descriptors, which helps avoid contention on access + * to the file descriptor pool. + */ + +extern alt_32 alt_max_fd; + +/* + * alt_io_redirect() is called at startup to redirect stdout, stdin, and + * stderr to the devices named in the input arguments. By default these streams + * are directed at /dev/null, and are then redirected using this function once + * all of the devices have been registered within the system. + */ + +extern void alt_io_redirect(const char* stdout_dev, + const char* stdin_dev, + const char* stderr_dev); + + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_FILE_H__ */ diff --git a/software/qsys_tutorial_mem_bsp/HAL/inc/priv/alt_iic_isr_register.h b/software/qsys_tutorial_mem_bsp/HAL/inc/priv/alt_iic_isr_register.h new file mode 100644 index 0000000..a0cb01c --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/HAL/inc/priv/alt_iic_isr_register.h @@ -0,0 +1,39 @@ +#ifndef __ALT_IIC_ISR_REGISTER_H_ +#define __ALT_IIC_ISR_REGISTER_H_ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2009 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ +#include "alt_types.h" +#include "sys/alt_irq.h" + +extern int alt_iic_isr_register(alt_u32 ic_id, alt_u32 irq, alt_isr_func isr, + void *isr_context, void *flags); + +#endif /* __ALT_IIC_ISR_REGISTER_H_ */ diff --git a/software/qsys_tutorial_mem_bsp/HAL/inc/priv/alt_irq_table.h b/software/qsys_tutorial_mem_bsp/HAL/inc/priv/alt_irq_table.h new file mode 100644 index 0000000..694ef06 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/HAL/inc/priv/alt_irq_table.h @@ -0,0 +1,59 @@ +#ifndef __ALT_IRQ_TABLE_H__ +#define __ALT_IRQ_TABLE_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2009 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +/* + * Definition of a table describing each interrupt handler. The index into + * the array is the interrupt id associated with the handler. + * + * When an interrupt occurs, the associated handler is called with + * the argument stored in the context member. + * + * The table is physically created in alt_irq_handler.c + */ +extern struct ALT_IRQ_HANDLER +{ +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT + void (*handler)(void*); +#else + void (*handler)(void*, alt_u32); +#endif + void *context; +} alt_irq[ALT_NIRQ]; + +#endif diff --git a/software/qsys_tutorial_mem_bsp/HAL/inc/priv/alt_legacy_irq.h b/software/qsys_tutorial_mem_bsp/HAL/inc/priv/alt_legacy_irq.h new file mode 100644 index 0000000..c7aec02 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/HAL/inc/priv/alt_legacy_irq.h @@ -0,0 +1,158 @@ +#ifndef __ALT_LEGACY_IRQ_H__ +#define __ALT_LEGACY_IRQ_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2009 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/* + * This file provides prototypes and inline implementations of certain routines + * used by the legacy interrupt API. Do not include this in your driver or + * application source files, use "sys/alt_irq.h" instead to access the proper + * public API. + */ + +#include +#include "system.h" + +#ifndef NIOS2_EIC_PRESENT + +#include "nios2.h" +#include "alt_types.h" + +#include "sys/alt_irq.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * alt_irq_register() can be used to register an interrupt handler. If the + * function is succesful, then the requested interrupt will be enabled upon + * return. + */ +extern int alt_irq_register (alt_u32 id, + void* context, + alt_isr_func handler); + +/* + * alt_irq_disable() disables the individual interrupt indicated by "id". + */ +static ALT_INLINE int ALT_ALWAYS_INLINE alt_irq_disable (alt_u32 id) +{ + alt_irq_context status; + extern volatile alt_u32 alt_irq_active; + + status = alt_irq_disable_all (); + + alt_irq_active &= ~(1 << id); + NIOS2_WRITE_IENABLE (alt_irq_active); + + alt_irq_enable_all(status); + + return 0; +} + +/* + * alt_irq_enable() enables the individual interrupt indicated by "id". + */ +static ALT_INLINE int ALT_ALWAYS_INLINE alt_irq_enable (alt_u32 id) +{ + alt_irq_context status; + extern volatile alt_u32 alt_irq_active; + + status = alt_irq_disable_all (); + + alt_irq_active |= (1 << id); + NIOS2_WRITE_IENABLE (alt_irq_active); + + alt_irq_enable_all(status); + + return 0; +} + +#ifndef ALT_EXCEPTION_STACK +/* + * alt_irq_initerruptable() should only be called from within an ISR. It is used + * to allow higer priority interrupts to interrupt the current ISR. The input + * argument, "priority", is the priority, i.e. interrupt number of the current + * interrupt. + * + * If this function is called, then the ISR is required to make a call to + * alt_irq_non_interruptible() before returning. The input argument to + * alt_irq_non_interruptible() is the return value from alt_irq_interruptible(). + * + * Care should be taken when using this pair of functions, since they increasing + * the system overhead associated with interrupt handling. + * + * If you are using an exception stack then nested interrupts won't work, so + * these functions are not available in that case. + */ +static ALT_INLINE alt_u32 ALT_ALWAYS_INLINE alt_irq_interruptible (alt_u32 priority) +{ + extern volatile alt_u32 alt_priority_mask; + extern volatile alt_u32 alt_irq_active; + + alt_u32 old_priority; + + old_priority = alt_priority_mask; + alt_priority_mask = (1 << priority) - 1; + + NIOS2_WRITE_IENABLE (alt_irq_active & alt_priority_mask); + + NIOS2_WRITE_STATUS (1); + + return old_priority; +} + +/* + * See Comments above for alt_irq_interruptible() for an explanation of the use of this + * function. + */ +static ALT_INLINE void ALT_ALWAYS_INLINE alt_irq_non_interruptible (alt_u32 mask) +{ + extern volatile alt_u32 alt_priority_mask; + extern volatile alt_u32 alt_irq_active; + + NIOS2_WRITE_STATUS (0); + + alt_priority_mask = mask; + + NIOS2_WRITE_IENABLE (mask & alt_irq_active); +} +#endif /* ALT_EXCEPTION_STACK */ + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* NIOS2_EIC_PRESENT */ + +#endif /* __ALT_LEGACY_IRQ_H__ */ diff --git a/software/qsys_tutorial_mem_bsp/HAL/inc/priv/alt_no_error.h b/software/qsys_tutorial_mem_bsp/HAL/inc/priv/alt_no_error.h new file mode 100644 index 0000000..6143fc9 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/HAL/inc/priv/alt_no_error.h @@ -0,0 +1,77 @@ +#ifndef __ALT_NO_ERROR_H__ +#define __ALT_NO_ERROR_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#include "alt_types.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * alt_no_error() is a dummy function used by alt_sem.h and alt_flag.h. It + * substitutes for functions that have a return code by creating a function + * that always returns zero. + * + * This may seem a little obscure, but what happens is that the compiler can + * then optomise away the call to this function, and any code written which + * handles the error path (i.e. non zero return values). + * + * This allows code to be written which correctly use the uC/OS-II semaphore + * and flag utilities, without the use of those utilities impacting on + * excutables built for a single threaded HAL environment. + * + * This function is considered to be part of the internal implementation of + * the HAL, and should not be called directly by application code or device + * drivers. It is not guaranteed to be preserved in future versions of the + * HAL. + */ + +static ALT_INLINE int ALT_ALWAYS_INLINE alt_no_error (void) +{ + return 0; +} + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_NO_ERROR_H__ */ diff --git a/software/qsys_tutorial_mem_bsp/HAL/inc/priv/nios2_gmon_data.h b/software/qsys_tutorial_mem_bsp/HAL/inc/priv/nios2_gmon_data.h new file mode 100644 index 0000000..3f43f12 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/HAL/inc/priv/nios2_gmon_data.h @@ -0,0 +1,47 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ +#ifndef NIOS2_GMON_DATA_H +#define NIOS2_GMON_DATA_H + +#define GMON_DATA_SIG 0 +#define GMON_DATA_WORDS 1 +#define GMON_DATA_PROFILE_DATA 2 +#define GMON_DATA_PROFILE_LOWPC 3 +#define GMON_DATA_PROFILE_HIGHPC 4 +#define GMON_DATA_PROFILE_BUCKET 5 +#define GMON_DATA_PROFILE_RATE 6 +#define GMON_DATA_MCOUNT_START 7 +#define GMON_DATA_MCOUNT_LIMIT 8 + +#define GMON_DATA_SIZE 9 + +extern unsigned int alt_gmon_data[GMON_DATA_SIZE]; + +#endif diff --git a/software/qsys_tutorial_mem_bsp/HAL/inc/sys/alt_alarm.h b/software/qsys_tutorial_mem_bsp/HAL/inc/sys/alt_alarm.h new file mode 100644 index 0000000..68a2f5d --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/HAL/inc/sys/alt_alarm.h @@ -0,0 +1,126 @@ +#ifndef __ALT_ALARM_H__ +#define __ALT_ALARM_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#include "alt_llist.h" +#include "alt_types.h" + +#include "priv/alt_alarm.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * "alt_alarm" is a structure type used by applications to register an alarm + * callback function. An instance of this type must be passed as an input + * argument to alt_alarm_start(). The user is not responsible for initialising + * the contents of the instance. This is done by alt_alarm_start(). + */ + +typedef struct alt_alarm_s alt_alarm; + +/* + * alt_alarm_start() can be called by an application/driver in order to register + * a function for periodic callback at the system clock frequency. Be aware that + * this callback is likely to occur in interrupt context. + */ + +extern int alt_alarm_start (alt_alarm* the_alarm, + alt_u32 nticks, + alt_u32 (*callback) (void* context), + void* context); + +/* + * alt_alarm_stop() is used to unregister a callback. Alternatively the callback + * can return zero to unregister. + */ + +extern void alt_alarm_stop (alt_alarm* the_alarm); + +/* + * Obtain the system clock rate in ticks/s. + */ + +static ALT_INLINE alt_u32 ALT_ALWAYS_INLINE alt_ticks_per_second (void) +{ + return _alt_tick_rate; +} + +/* + * alt_sysclk_init() is intended to be only used by the system clock driver + * in order to initialise the value of the clock frequency. + */ + +static ALT_INLINE int ALT_ALWAYS_INLINE alt_sysclk_init (alt_u32 nticks) +{ + if (! _alt_tick_rate) + { + _alt_tick_rate = nticks; + return 0; + } + else + { + return -1; + } +} + +/* + * alt_nticks() returns the elapsed number of system clock ticks since reset. + */ + +static ALT_INLINE alt_u32 ALT_ALWAYS_INLINE alt_nticks (void) +{ + return _alt_nticks; +} + +/* + * alt_tick() should only be called by the system clock driver. This is used + * to notify the system that the system timer period has expired. + */ + +extern void alt_tick (void); + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_ALARM_H__ */ diff --git a/software/qsys_tutorial_mem_bsp/HAL/inc/sys/alt_cache.h b/software/qsys_tutorial_mem_bsp/HAL/inc/sys/alt_cache.h new file mode 100644 index 0000000..c4d8db9 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/HAL/inc/sys/alt_cache.h @@ -0,0 +1,117 @@ +#ifndef __ALT_CACHE_H__ +#define __ALT_CACHE_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003, 2007 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include + +#include "alt_types.h" + +/* + * alt_cache.h defines the processor specific functions for manipulating the + * cache. + */ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * alt_icache_flush() is called to flush the instruction cache for a memory + * region of length "len" bytes, starting at address "start". + */ + +extern void alt_icache_flush (void* start, alt_u32 len); + +/* + * alt_dcache_flush() is called to flush the data cache for a memory + * region of length "len" bytes, starting at address "start". + * Any dirty lines in the data cache are written back to memory. + */ + +extern void alt_dcache_flush (void* start, alt_u32 len); + +/* + * alt_dcache_flush() is called to flush the data cache for a memory + * region of length "len" bytes, starting at address "start". + * Any dirty lines in the data cache are NOT written back to memory. + */ + +extern void alt_dcache_flush_no_writeback (void* start, alt_u32 len); + +/* + * Flush the entire instruction cache. + */ + +extern void alt_icache_flush_all (void); + +/* + * Flush the entire data cache. + */ + +extern void alt_dcache_flush_all (void); + +/* + * Allocate a block of uncached memory. + */ + +extern volatile void* alt_uncached_malloc (size_t size); + +/* + * Free a block of uncached memory. + */ + +extern void alt_uncached_free (volatile void* ptr); + +/* + * Convert a pointer to a block of cached memory, into a block of + * uncached memory. + */ + +extern volatile void* alt_remap_uncached (void* ptr, alt_u32 len); + +/* + * Convert a pointer to a block of uncached memory, into a block of + * cached memory. + */ + +extern void* alt_remap_cached (volatile void* ptr, alt_u32 len); + +/* + * + */ + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_CACHE_H__ */ diff --git a/software/qsys_tutorial_mem_bsp/HAL/inc/sys/alt_debug.h b/software/qsys_tutorial_mem_bsp/HAL/inc/sys/alt_debug.h new file mode 100644 index 0000000..d9f9599 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/HAL/inc/sys/alt_debug.h @@ -0,0 +1,45 @@ +#ifndef __ALT_DEBUG_H__ +#define __ALT_DEBUG_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/* + * The ALT_DEVUG_ASSERT macro can be used to generate a debugger break + * from within software. The break is generated if "condition" evaluates to + * false. + */ + +#define ALT_DEBUG_ASSERT(condition) if (!condition) \ +{ \ + __asm__ volatile ("break"); \ +} + +#endif /* __ALT_DEBUG_H__ */ diff --git a/software/qsys_tutorial_mem_bsp/HAL/inc/sys/alt_dev.h b/software/qsys_tutorial_mem_bsp/HAL/inc/sys/alt_dev.h new file mode 100644 index 0000000..66c5e41 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/HAL/inc/sys/alt_dev.h @@ -0,0 +1,115 @@ +#ifndef __ALT_DEV_H__ +#define __ALT_DEV_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#include "system.h" +#include "sys/alt_llist.h" +#include "priv/alt_dev_llist.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * The value ALT_IRQ_NOT_CONNECTED is used to represent an unconnected + * interrupt line. It cannot evaluate to a valid interrupt number. + */ + +#define ALT_IRQ_NOT_CONNECTED (-1) + +typedef struct alt_dev_s alt_dev; + +struct stat; + +/* + * The file descriptor structure definition. + */ + +typedef struct alt_fd_s +{ + alt_dev* dev; + alt_u8* priv; + int fd_flags; +} alt_fd; + +/* + * The device structure definition. + */ + +struct alt_dev_s { + alt_llist llist; /* for internal use */ + const char* name; + int (*open) (alt_fd* fd, const char* name, int flags, int mode); + int (*close) (alt_fd* fd); + int (*read) (alt_fd* fd, char* ptr, int len); + int (*write) (alt_fd* fd, const char* ptr, int len); + int (*lseek) (alt_fd* fd, int ptr, int dir); + int (*fstat) (alt_fd* fd, struct stat* buf); + int (*ioctl) (alt_fd* fd, int req, void* arg); +}; + +/* + * Functions used to register device for access through the C standard + * library. + * + * The only difference between alt_dev_reg() and alt_fs_reg() is the + * interpretation that open() places on the device name. In the case of + * alt_dev_reg the device is assumed to be a particular character device, + * and so there must be an exact match in the name for open to succeed. + * In the case of alt_fs_reg() the name of the device is treated as the + * mount point for a directory, and so any call to open() where the name + * is the root of the device filename will succeed. + */ + +extern int alt_fs_reg (alt_dev* dev); + +static ALT_INLINE int alt_dev_reg (alt_dev* dev) +{ + extern alt_llist alt_dev_list; + + return alt_dev_llist_insert ((alt_dev_llist*) dev, &alt_dev_list); +} + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_DEV_H__ */ diff --git a/software/qsys_tutorial_mem_bsp/HAL/inc/sys/alt_dma.h b/software/qsys_tutorial_mem_bsp/HAL/inc/sys/alt_dma.h new file mode 100644 index 0000000..9f9b2ff --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/HAL/inc/sys/alt_dma.h @@ -0,0 +1,226 @@ +#ifndef __ALT_DMA_H__ +#define __ALT_DMA_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004-2005 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#include "sys/alt_dma_dev.h" +#include "alt_types.h" + +#include + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * This header contains the application side interface for accessing DMA + * resources. See alt_dma_dev.h for the dma device driver interface. + * + * The interface model treats a DMA transaction as being composed of two + * halves (read and write). + * + * The application can supply data for transmit using an "alt_dma_txchan" + * descriptor. Alternatively an "alt_dma_rxchan" descriptor can be used to + * receive data. + */ + +/* + * alt_dma_txchan_open() is used to obtain an "alt_dma_txchan" descriptor for + * a DMA transmit device. The name is the name of the associated physical + * device (e.g. "/dev/dma_0"). + * + * The return value will be NULL on failure, and non-NULL otherwise. + */ + +extern alt_dma_txchan alt_dma_txchan_open (const char* name); + +/* + * alt_dma_txchan_close() is provided so that an application can notify the + * system that it has finished with a given DMA transmit channel. This is only + * provided for completness. + */ + +static ALT_INLINE int alt_dma_txchan_close (alt_dma_txchan dma) +{ + return 0; +} + +/* + * alt_dma_txchan_send() posts a transmit request to a DMA transmit channel. + * The input arguments are: + * + * dma: the channel to use. + * from: a pointer to the start of the data to send. + * length: the length of the data to send in bytes. + * done: callback function that will be called once the data has been sent. + * handle: opaque value passed to "done". + * + * The return value will be negative if the request cannot be posted, and + * zero otherwise. + */ + +static ALT_INLINE int alt_dma_txchan_send (alt_dma_txchan dma, + const void* from, + alt_u32 length, + alt_txchan_done* done, + void* handle) +{ + return dma ? dma->dma_send (dma, + from, + length, + done, + handle) : -ENODEV; +} + +/* + * alt_dma_txchan_space() returns the number of tranmit requests that can be + * posted to the specified DMA transmit channel. + * + * A negative value indicates that the value could not be determined. + */ + +static ALT_INLINE int alt_dma_txchan_space (alt_dma_txchan dma) +{ + return dma ? dma->space (dma) : -ENODEV; +} + +/* + * alt_dma_txchan_ioctl() can be used to perform device specific I/O + * operations on the indicated DMA transmit channel. For example some drivers + * support options to control the width of the transfer operations. See + * alt_dma_dev.h for the list of generic requests. + * + * A negative return value indicates failure, otherwise the interpretation + * of the return value is request specific. + */ + +static ALT_INLINE int alt_dma_txchan_ioctl (alt_dma_txchan dma, + int req, + void* arg) +{ + return dma ? dma->ioctl (dma, req, arg) : -ENODEV; +} + +/* + * alt_dma_rxchan_open() is used to obtain an "alt_dma_rxchan" descriptor for + * a DMA receive channel. The name is the name of the associated physical + * device (e.g. "/dev/dma_0"). + * + * The return value will be NULL on failure, and non-NULL otherwise. + */ + +extern alt_dma_rxchan alt_dma_rxchan_open (const char* dev); + +/* + * alt_dma_rxchan_close() is provided so that an application can notify the + * system that it has finished with a given DMA receive channel. This is only + * provided for completness. + */ + +static ALT_INLINE int alt_dma_rxchan_close (alt_dma_rxchan dma) +{ + return 0; +} + +/* + * + */ + +/* + * alt_dma_rxchan_prepare() posts a receive request to a DMA receive channel. + * + * The input arguments are: + * + * dma: the channel to use. + * data: a pointer to the location that data is to be received to. + * len: the maximum length of the data to receive. + * done: callback function that will be called once the data has been + * received. + * handle: opaque value passed to "done". + * + * The return value will be negative if the request cannot be posted, and + * zero otherwise. + */ + +static ALT_INLINE int alt_dma_rxchan_prepare (alt_dma_rxchan dma, + void* data, + alt_u32 len, + alt_rxchan_done* done, + void* handle) +{ + return dma ? dma->prepare (dma, data, len, done, handle) : -ENODEV; +} + +/* + * alt_dma_rxchan_ioctl() can be used to perform device specific I/O + * operations on the indicated DMA receive channel. For example some drivers + * support options to control the width of the transfer operations. See + * alt_dma_dev.h for the list of generic requests. + * + * A negative return value indicates failure, otherwise the interpretation + * of the return value is request specific. + */ + +static ALT_INLINE int alt_dma_rxchan_ioctl (alt_dma_rxchan dma, + int req, + void* arg) +{ + return dma ? dma->ioctl (dma, req, arg) : -ENODEV; +} + +/* + * alt_dma_rxchan_depth() returns the depth of the receive FIFO used to store + * receive requests. + */ + +static ALT_INLINE alt_u32 alt_dma_rxchan_depth(alt_dma_rxchan dma) +{ + return dma->depth; +} + +/* + * + */ + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __ALT_DMA_H__ */ diff --git a/software/qsys_tutorial_mem_bsp/HAL/inc/sys/alt_dma_dev.h b/software/qsys_tutorial_mem_bsp/HAL/inc/sys/alt_dma_dev.h new file mode 100644 index 0000000..832463d --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/HAL/inc/sys/alt_dma_dev.h @@ -0,0 +1,200 @@ +#ifndef __ALT_DMA_DEV_H__ +#define __ALT_DMA_DEV_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004-2005 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#include "priv/alt_dev_llist.h" + +#include "alt_types.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * This header contains the device driver interface for accessing DMA + * resources. See alt_dma.h for the DMA application side interface. + * + * The interface model treats a DMA transaction as being composed of two + * halves (read and write). + * + * An "alt_dma_txchan_dev" is used to describe the device associated with a + * DMA transmit channel. An "alt_dma_rxchan_dev" is used to describe the + * device associated with a DMA receive channel. + */ + +/* + * List of generic ioctl requests that may be supported by a DMA device. + * + * ALT_DMA_RX_ONLY_ON: This causes a DMA channel to operate in a mode + * where only the receiver is under software control. + * The other side reads continously from a single + * location. The address to read is the argument to + * this request. + * ALT_DMA_RX_ONLY_OFF: Return to the default mode where both the receive + * and transmit sides of the DMA can be under software + * control. + * ALT_DMA_TX_ONLY_ON: This causes a DMA channel to operate in a mode + * where only the transmitter is under software control. + * The other side writes continously to a single + * location. The address to write to is the argument to + * this request. + * ALT_DMA_TX_ONLY_OFF: Return to the default mode where both the receive + * and transmit sides of the DMA can be under software + * control. + * ALT_DMA_SET_MODE_8: Transfer data in units of 8 bits. + * ALT_DMA_SET_MODE_16: Transfer data in units of 16 bits. + * ALT_DMA_SET_MODE_32: Transfer data in units of 32 bits. + * ALT_DMA_SET_MODE_64: Transfer data in units of 64 bits. + * ALT_DMA_SET_MODE_128: Transfer data in units of 128 bits. + * ALT_DMA_GET_MODE: Get the current transfer mode. + * + * The use of the macros: ALT_DMA_TX_STREAM_ON, ALT_DMA_TX_STREAM_OFF + * ALT_DMA_RX_STREAM_OFF and ALT_DMA_RX_STREAM_ON are depreciated. You should + * instead use the macros: ALT_DMA_RX_ONLY_ON, ALT_DMA_RX_ONLY_OFF, + * ALT_DMA_TX_ONLY_ON and ALT_DMA_TX_ONLY_OFF. + */ + +#define ALT_DMA_TX_STREAM_ON (0x1) +#define ALT_DMA_TX_STREAM_OFF (0x2) +#define ALT_DMA_RX_STREAM_ON (0x3) +#define ALT_DMA_RX_STREAM_OFF (0x4) +#define ALT_DMA_SET_MODE_8 (0x5) +#define ALT_DMA_SET_MODE_16 (0x6) +#define ALT_DMA_SET_MODE_32 (0x7) +#define ALT_DMA_SET_MODE_64 (0x8) +#define ALT_DMA_SET_MODE_128 (0x9) +#define ALT_DMA_GET_MODE (0xa) + +#define ALT_DMA_RX_ONLY_ON ALT_DMA_TX_STREAM_ON +#define ALT_DMA_RX_ONLY_OFF ALT_DMA_TX_STREAM_OFF +#define ALT_DMA_TX_ONLY_ON ALT_DMA_RX_STREAM_ON +#define ALT_DMA_TX_ONLY_OFF ALT_DMA_RX_STREAM_OFF + +/* + * + */ + +typedef struct alt_dma_txchan_dev_s alt_dma_txchan_dev; +typedef struct alt_dma_rxchan_dev_s alt_dma_rxchan_dev; + +typedef alt_dma_txchan_dev* alt_dma_txchan; +typedef alt_dma_rxchan_dev* alt_dma_rxchan; + +typedef void (alt_txchan_done)(void* handle); +typedef void (alt_rxchan_done)(void* handle, void* data); + +/* + * devices that provide a DMA transmit channel are required to provide an + * instance of the "alt_dma_txchan_dev" structure. + */ + +struct alt_dma_txchan_dev_s { + alt_llist llist; /* for internal use */ + const char* name; /* name of the device instance + * (e.g. "/dev/dma_0"). + */ + int (*space) (alt_dma_txchan dma); /* returns the maximum number of + * transmit requests that can be posted + */ + int (*dma_send) (alt_dma_txchan dma, + const void* from, + alt_u32 len, + alt_txchan_done* done, + void* handle); /* post a transmit request */ + int (*ioctl) (alt_dma_txchan dma, int req, void* arg); /* perform device + * specific I/O control. + */ +}; + +/* + * devices that provide a DMA receive channel are required to provide an + * instance of the "alt_dma_rxchan_dev" structure. + */ + +struct alt_dma_rxchan_dev_s { + alt_llist list; /* for internal use */ + const char* name; /* name of the device instance + * (e.g. "/dev/dma_0"). + */ + alt_u32 depth; /* maximum number of receive requests that + * can be posted. + */ + int (*prepare) (alt_dma_rxchan dma, + void* data, + alt_u32 len, + alt_rxchan_done* done, + void* handle); /* post a receive request */ + int (*ioctl) (alt_dma_rxchan dma, int req, void* arg); /* perform device + * specific I/O control. + */ +}; + +/* + * Register a DMA transmit channel with the system. + */ + +static ALT_INLINE int alt_dma_txchan_reg (alt_dma_txchan_dev* dev) +{ + extern alt_llist alt_dma_txchan_list; + + return alt_dev_llist_insert((alt_dev_llist*) dev, &alt_dma_txchan_list); +} + +/* + * Register a DMA receive channel with the system. + */ + +static ALT_INLINE int alt_dma_rxchan_reg (alt_dma_rxchan_dev* dev) +{ + extern alt_llist alt_dma_rxchan_list; + + return alt_dev_llist_insert((alt_dev_llist*) dev, &alt_dma_rxchan_list); +} + +/* + * + */ + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __ALT_DMA_DEV_H__ */ diff --git a/software/qsys_tutorial_mem_bsp/HAL/inc/sys/alt_driver.h b/software/qsys_tutorial_mem_bsp/HAL/inc/sys/alt_driver.h new file mode 100644 index 0000000..eb0f23b --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/HAL/inc/sys/alt_driver.h @@ -0,0 +1,168 @@ +#ifndef __ALT_DRIVER_H__ +#define __ALT_DRIVER_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/* + * Macros used to access a driver without HAL file descriptors. + */ + +/* + * ALT_MODULE_CLASS + * + * This macro returns the module class name for the specified module instance. + * It uses information in the system.h file. + * Neither the instance name or class name are quoted (so that they can + * be used with other pre-processor macros). + * + * Example: + * Assume the design has an instance of an altera_avalon_uart called uart1. + * Calling ALT_MODULE_CLASS(uart1) returns altera_avalon_uart. + */ + +#define ALT_MODULE_CLASS(instance) ALT_MODULE_CLASS_ ## instance + + +/* + * ALT_DRIVER_FUNC_NAME + * + * --> instance Instance name. + * --> func Function name. + * + * This macro returns the device driver function name of the specified + * module instance for the specified function name. + * + * Example: + * Assume the design has an instance of an altera_avalon_uart called uart1. + * Calling ALT_DRIVER_FUNC_NAME(uart1, write) returns + * altera_avalon_uart_write. + */ + +#define ALT_DRIVER_FUNC_NAME(instance, func) \ + ALT_DRIVER_FUNC_NAME1(ALT_MODULE_CLASS(instance), func) +#define ALT_DRIVER_FUNC_NAME1(module_class, func) \ + ALT_DRIVER_FUNC_NAME2(module_class, func) +#define ALT_DRIVER_FUNC_NAME2(module_class, func) \ + module_class ## _ ## func + +/* + * ALT_DRIVER_STATE_STRUCT + * + * --> instance Instance name. + * + * This macro returns the device driver state type name of the specified + * module instance. + * + * Example: + * Assume the design has an instance of an altera_avalon_uart called uart1. + * Calling ALT_DRIVER_STATE_STRUCT(uart1) returns: + * struct altera_avalon_uart_state_s + * + * Note that the ALT_DRIVER_FUNC_NAME macro is used even though "state" isn't + * really a function but it does match the required naming convention. + */ +#define ALT_DRIVER_STATE_STRUCT(instance) \ + struct ALT_DRIVER_FUNC_NAME(instance, state_s) + +/* + * ALT_DRIVER_STATE + * + * --> instance Instance name. + * + * This macro returns the device driver state name of the specified + * module instance. + * + * Example: + * Assume the design has an instance of an altera_avalon_uart called uart1. + * Calling ALT_DRIVER_STATE(uart1) returns uart1. + */ +#define ALT_DRIVER_STATE(instance) instance + +/* + * ALT_DRIVER_WRITE + * + * --> instance Instance name. + * --> buffer Write buffer. + * --> len Length of write buffer data. + * --> flags Control flags (e.g. O_NONBLOCK) + * + * This macro calls the "write" function of the specified driver instance. + */ + +#define ALT_DRIVER_WRITE_EXTERNS(instance) \ + extern ALT_DRIVER_STATE_STRUCT(instance) ALT_DRIVER_STATE(instance); \ + extern int ALT_DRIVER_FUNC_NAME(instance, write) \ + (ALT_DRIVER_STATE_STRUCT(instance) *, const char *, int, int); + +#define ALT_DRIVER_WRITE(instance, buffer, len, flags) \ + ALT_DRIVER_FUNC_NAME(instance, write)(&ALT_DRIVER_STATE(instance), buffer, len, flags) + + +/* + * ALT_DRIVER_READ + * + * --> instance Instance name. + * <-- buffer Read buffer. + * --> len Length of read buffer. + * --> flags Control flags (e.g. O_NONBLOCK) + * + * This macro calls the "read" function of the specified driver instance. + */ + +#define ALT_DRIVER_READ_EXTERNS(instance) \ + extern ALT_DRIVER_STATE_STRUCT(instance) ALT_DRIVER_STATE(instance); \ + extern int ALT_DRIVER_FUNC_NAME(instance, read) \ + (ALT_DRIVER_STATE_STRUCT(instance) *, const char *, int, int); + +#define ALT_DRIVER_READ(instance, buffer, len, flags) \ + ALT_DRIVER_FUNC_NAME(instance, read)(&ALT_DRIVER_STATE(instance), buffer, len, flags) + +/* + * ALT_DRIVER_IOCTL + * + * --> instance Instance name. + * --> req ioctl request (e.g. TIOCSTIMEOUT) + * --> arg Optional argument (void*) + * + * This macro calls the "ioctl" function of the specified driver instance + */ + +#define ALT_DRIVER_IOCTL_EXTERNS(instance) \ + extern ALT_DRIVER_STATE_STRUCT(instance) ALT_DRIVER_STATE(instance); \ + extern int ALT_DRIVER_FUNC_NAME(instance, ioctl) \ + (ALT_DRIVER_STATE_STRUCT(instance) *, int, void*); + +#define ALT_DRIVER_IOCTL(instance, req, arg) \ + ALT_DRIVER_FUNC_NAME(instance, ioctl)(&ALT_DRIVER_STATE(instance), req, arg) + +#endif /* __ALT_DRIVER_H__ */ diff --git a/software/qsys_tutorial_mem_bsp/HAL/inc/sys/alt_errno.h b/software/qsys_tutorial_mem_bsp/HAL/inc/sys/alt_errno.h new file mode 100644 index 0000000..4d3e50f --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/HAL/inc/sys/alt_errno.h @@ -0,0 +1,87 @@ +#ifndef __ALT_ERRNO_H__ +#define __ALT_ERRNO_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +/* + * errno is defined in so that it uses the thread local version + * stored in the location pointed to by "_impure_ptr". This means that the + * accesses to errno within the HAL library can cause the entirety of + * of the structure pointed to by "_impure_ptr" to be added to the + * users application. This can be undesirable in very small footprint systems. + * + * To avoid this happening, the HAL uses the macro ALT_ERRNO, defined below, + * to access errno, rather than accessing it directly. This macro will only + * use the thread local version if some other code has already caused it to be + * included into the system, otherwise it will use the global errno value. + * + * This causes a slight increases in code size where errno is accessed, but + * can lead to significant overall benefits in very small systems. The + * increase is inconsequential when compared to the size of the structure + * pointed to by _impure_ptr. + * + * Note that this macro accesses __errno() using an externally declared + * function pointer (alt_errno). This is done so that the function call uses the + * subroutine call instruction via a register rather than an immediate address. + * This is important in the case that the code has been linked for a high + * address, but __errno() is not being used. In this case the weak linkage + * would have resulted in the instruction: "call 0" which would fail to link. + */ + +extern int* (*alt_errno) (void); + +/* Must define this so that values such as EBADFD are defined in errno.h. */ +#define __LINUX_ERRNO_EXTENSIONS__ + +#include + +#include "alt_types.h" + +#undef errno + +extern int errno; + +static ALT_INLINE int* alt_get_errno(void) +{ + return ((alt_errno) ? alt_errno() : &errno); +} + +#define ALT_ERRNO *alt_get_errno() + +#endif /* __ALT_ERRNO_H__ */ diff --git a/software/qsys_tutorial_mem_bsp/HAL/inc/sys/alt_exceptions.h b/software/qsys_tutorial_mem_bsp/HAL/inc/sys/alt_exceptions.h new file mode 100644 index 0000000..3576a52 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/HAL/inc/sys/alt_exceptions.h @@ -0,0 +1,127 @@ +#ifndef __ALT_EXCEPTIONS_H__ +#define __ALT_EXCEPTIONS_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2008 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ +#include "alt_types.h" +#include "system.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * This file defines instruction-generated exception handling and registry + * API, exception type enumeration, and handler return value enumeration for + * Nios II. + */ + +/* + * The following enumeration describes the value in the CPU EXCEPTION + * register CAUSE bit field. Not all exception types will cause the + * processor to go to the exception vector; these are provided for + * reference. + */ +enum alt_exception_cause_e { + /* Exeption causes that will cause jump to exception vector */ + NIOS2_EXCEPTION_INTERRUPT = 2, + NIOS2_EXCEPTION_TRAP_INST = 3, + NIOS2_EXCEPTION_UNIMPLEMENTED_INST = 4, + NIOS2_EXCEPTION_ILLEGAL_INST = 5, + NIOS2_EXCEPTION_MISALIGNED_DATA_ADDR = 6, + NIOS2_EXCEPTION_MISALIGNED_TARGET_PC = 7, + NIOS2_EXCEPTION_DIVISION_ERROR = 8, + NIOS2_EXCEPTION_SUPERVISOR_ONLY_INST_ADDR = 9, + NIOS2_EXCEPTION_SUPERVISOR_ONLY_INST = 10, + NIOS2_EXCEPTION_SUPERVISOR_ONLY_DATA_ADDR = 11, + NIOS2_EXCEPTION_TLB_MISS = 12, + NIOS2_EXCEPTION_TLB_EXECUTE_PERM_VIOLATION = 13, + NIOS2_EXCEPTION_MPU_INST_REGION_VIOLATION = 16, + + /* Exception causes that will NOT cause a jump to exception vector */ + NIOS2_EXCEPTION_RESET = 0, + NIOS2_EXCEPTION_CPU_ONLY_RESET_REQUEST = 1, + NIOS2_EXCEPTION_TLB_READ_PERM_VIOLATION = 14, + NIOS2_EXCEPTION_TLB_WRITE_PERM_VIOLATION = 15, + NIOS2_EXCEPTION_MPU_DATA_REGION_VIOLATION = 17, + /* + * This value is passed to an exception handler's cause argument if + * "extra exceptions" information (EXECPTION) register is not + * present in the processor hardware configuration. + */ + NIOS2_EXCEPTION_CAUSE_NOT_PRESENT = -1 +}; +typedef enum alt_exception_cause_e alt_exception_cause; + +/* + * These define valid return values for a user-defined instruction-generated + * exception handler. The handler should return one of these to indicate + * whether to re-issue the instruction that triggered the exception, or to + * skip it. + */ +enum alt_exception_result_e { + NIOS2_EXCEPTION_RETURN_REISSUE_INST = 0, + NIOS2_EXCEPTION_RETURN_SKIP_INST = 1 +}; +typedef enum alt_exception_result_e alt_exception_result; + +/* + * alt_instruction_exception_register() can be used to register an exception + * handler for instruction-generated exceptions that are not handled by the + * built-in exception handler (i.e. for interrupts). + * + * The registry API is optionally enabled through the "Enable + * Instruction-related Exception API" HAL BSP setting, which will + * define the macro below. + */ +#ifdef ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API +void alt_instruction_exception_register ( + alt_exception_result (*exception_handler)( + alt_exception_cause cause, + alt_u32 exception_pc, + alt_u32 bad_addr) ); +#endif /*ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API */ + +/* + * alt_exception_cause_generated_bad_addr() indicates whether a particular + * exception cause value was from an exception-type that generated a valid + * address in the BADADDR register. The contents of BADADDR is passed to + * a user-registered exception handler in all cases, whether valid or not. + * This routine should be called to validate the bad_addr argument to + * your exception handler. + */ +int alt_exception_cause_generated_bad_addr(alt_exception_cause cause); + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __ALT_EXCEPTIONS_H__ */ diff --git a/software/qsys_tutorial_mem_bsp/HAL/inc/sys/alt_flash.h b/software/qsys_tutorial_mem_bsp/HAL/inc/sys/alt_flash.h new file mode 100644 index 0000000..527328d --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/HAL/inc/sys/alt_flash.h @@ -0,0 +1,166 @@ +#ifndef __ALT_FLASH_H__ +#define __ALT_FLASH_H__ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +/****************************************************************************** +* * +* Alt_flash.h - User interface for flash code * +* * +* Use this interface to avoid being exposed to the internals of the device * +* driver architecture. If you chose to use the flash driver internal * +* structures we don't guarantee not to change them * +* * +* Author PRR * +* * +******************************************************************************/ + + + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +#include "alt_types.h" +#include "alt_flash_types.h" +#include "alt_flash_dev.h" +#include "sys/alt_cache.h" + +alt_flash_fd* alt_flash_open_dev(const char* name); +void alt_flash_close_dev(alt_flash_fd* fd ); + +/* + * alt_write_flash + * + * Program a buffer into flash. + * + * This routine erases all the affected erase blocks (if necessary) + * and then programs the data. However it does not read the data out first + * and preserve and none overwritten data, because this would require very + * large buffers on the target. If you need + * that functionality use the functions below. + */ +static __inline__ int __attribute__ ((always_inline)) alt_write_flash( + alt_flash_fd* fd, + int offset, + const void* src_addr, + int length ) +{ + return fd->write( fd, offset, src_addr, length ); +} + +/* + * alt_read_flash + * + * Read a block of flash for most flashes this is just memcpy + * it's here for completeness in case we need it for some serial flash device + * + */ +static __inline__ int __attribute__ ((always_inline)) alt_read_flash( + alt_flash_fd* fd, int offset, + void* dest_addr, int length ) +{ + return fd->read( fd, offset, dest_addr, length ); +} + +/* + * alt_get_flash_info + * + * Return the information on the flash sectors. + * + */ +static __inline__ int __attribute__ ((always_inline)) alt_get_flash_info( + alt_flash_fd* fd, flash_region** info, + int* number_of_regions) +{ + return fd->get_info( fd, info, number_of_regions); +} + +/* + * alt_erase_flash_block + * + * Erase a particular erase block, pass in the offset to the start of + * the block and it's size + */ +static __inline__ int __attribute__ ((always_inline)) alt_erase_flash_block( + alt_flash_fd* fd, int offset, int length) +{ + int ret_code; + ret_code = fd->erase_block( fd, offset ); + + if(!ret_code) + alt_dcache_flush((alt_u8*)fd->base_addr + offset, length); + + return ret_code; +} + +/* + * alt_write_flash_block + * + * Write a particular flash block, block_offset is the offset + * (from the base of flash) to start of the block + * data_offset is the offset (from the base of flash) + * where you wish to start programming + * + * NB this function DOES NOT check that you are only writing a single + * block of data as that would slow down this function. + * + * Use alt_write_flash if you want that level of error checking. + */ + +static __inline__ int __attribute__ ((always_inline)) alt_write_flash_block( + alt_flash_fd* fd, int block_offset, + int data_offset, + const void *data, int length) +{ + + int ret_code; + ret_code = fd->write_block( fd, block_offset, data_offset, data, length ); + + if(!ret_code) + alt_dcache_flush((alt_u8*)fd->base_addr + data_offset, length); + + return ret_code; +} + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_FLASH_H__ */ diff --git a/software/qsys_tutorial_mem_bsp/HAL/inc/sys/alt_flash_dev.h b/software/qsys_tutorial_mem_bsp/HAL/inc/sys/alt_flash_dev.h new file mode 100644 index 0000000..8bab601 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/HAL/inc/sys/alt_flash_dev.h @@ -0,0 +1,98 @@ +#ifndef __ALT_FLASH_DEV_H__ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +/****************************************************************************** +* * +* Alt_flash_dev.h - Generic Flash device interfaces * +* * +* Author PRR * +* * +******************************************************************************/ +#define __ALT_FLASH_DEV_H__ + +#include "alt_flash_types.h" +#include "sys/alt_llist.h" +#include "priv/alt_dev_llist.h" + +#include "alt_types.h" + +typedef struct alt_flash_dev alt_flash_dev; +typedef alt_flash_dev alt_flash_fd; + +static ALT_INLINE int alt_flash_device_register( alt_flash_fd* fd) +{ + extern alt_llist alt_flash_dev_list; + + return alt_dev_llist_insert ((alt_dev_llist*) fd, &alt_flash_dev_list); +} + +typedef alt_flash_dev* (*alt_flash_open)(alt_flash_dev* flash, + const char* name ); +typedef int (*alt_flash_close)(alt_flash_dev* flash_info); + +typedef int (*alt_flash_write)( alt_flash_dev* flash, int offset, + const void* src_addr, int length ); + +typedef int (*alt_flash_get_flash_info)( alt_flash_dev* flash, flash_region** info, + int* number_of_regions); +typedef int (*alt_flash_write_block)( alt_flash_dev* flash, int block_offset, + int data_offset, const void* data, + int length); +typedef int (*alt_flash_erase_block)( alt_flash_dev* flash, int offset); +typedef int (*alt_flash_read)(alt_flash_dev* flash, int offset, + void* dest_addr, int length ); + +struct alt_flash_dev +{ + alt_llist llist; + const char* name; + alt_flash_open open; + alt_flash_close close; + alt_flash_write write; + alt_flash_read read; + alt_flash_get_flash_info get_info; + alt_flash_erase_block erase_block; + alt_flash_write_block write_block; + void* base_addr; + int length; + int number_of_regions; + flash_region region_info[ALT_MAX_NUMBER_OF_FLASH_REGIONS]; +}; + +#endif /* __ALT_FLASH_DEV_H__ */ diff --git a/software/qsys_tutorial_mem_bsp/HAL/inc/sys/alt_flash_types.h b/software/qsys_tutorial_mem_bsp/HAL/inc/sys/alt_flash_types.h new file mode 100644 index 0000000..884cbf8 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/HAL/inc/sys/alt_flash_types.h @@ -0,0 +1,64 @@ +#ifndef __ALT_FLASH_TYPES_H__ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +/****************************************************************************** +* * +* Alt_flash_types.h - Some generic types and defines used by the flash code * +* * +* Author PRR * +* * +******************************************************************************/ +#define __ALT_FLASH_TYPES_H__ + +#ifndef ALT_MAX_NUMBER_OF_FLASH_REGIONS +#define ALT_MAX_NUMBER_OF_FLASH_REGIONS 8 +#endif /* ALT_MAX_NUMBER_OF_FLASH_REGIONS */ + +/* + * Description of a single Erase region + */ +typedef struct flash_region +{ + int offset; + int region_size; + int number_of_blocks; + int block_size; +}flash_region; + +#endif /* __ALT_FLASH_TYPES_H__ */ diff --git a/software/qsys_tutorial_mem_bsp/HAL/inc/sys/alt_irq.h b/software/qsys_tutorial_mem_bsp/HAL/inc/sys/alt_irq.h new file mode 100644 index 0000000..6666e52 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/HAL/inc/sys/alt_irq.h @@ -0,0 +1,245 @@ +#ifndef __ALT_IRQ_H__ +#define __ALT_IRQ_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2009 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/* + * alt_irq.h is the Nios II specific implementation of the interrupt controller + * interface. + * + * Nios II includes optional support for an external interrupt controller. + * When an external controller is present, the "Enhanced" interrupt API + * must be used to manage individual interrupts. The enhanced API also + * supports the processor's internal interrupt controller. Certain API + * members are accessible from either the "legacy" or "enhanced" interrpt + * API. + * + * Regardless of which API is in use, this file should be included by + * application code and device drivers that register ISRs or manage interrpts. + */ +#include + +#include "nios2.h" +#include "alt_types.h" +#include "system.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * Macros used by alt_irq_enabled + */ +#define ALT_IRQ_ENABLED 1 +#define ALT_IRQ_DISABLED 0 + +/* + * Number of available interrupts in internal interrupt controller. + */ +#define ALT_NIRQ NIOS2_NIRQ + +/* + * Used by alt_irq_disable_all() and alt_irq_enable_all(). + */ +typedef int alt_irq_context; + +/* ISR Prototype */ +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT +typedef void (*alt_isr_func)(void* isr_context); +#else +typedef void (*alt_isr_func)(void* isr_context, alt_u32 id); +#endif + +/* + * The following protypes and routines are supported by both + * the enhanced and legacy interrupt APIs + */ + +/* + * alt_irq_enabled can be called to determine if the processor's global + * interrupt enable is asserted. The return value is zero if interrupts + * are disabled, and non-zero otherwise. + * + * Whether the internal or external interrupt controller is present, + * individual interrupts may still be disabled. Use the other API to query + * a specific interrupt. + */ +static ALT_INLINE int ALT_ALWAYS_INLINE alt_irq_enabled (void) +{ + int status; + + NIOS2_READ_STATUS (status); + + return status & NIOS2_STATUS_PIE_MSK; +} + +/* + * alt_irq_disable_all() + * + * This routine inhibits all interrupts by negating the status register PIE + * bit. It returns the previous contents of the CPU status register (IRQ + * context) which can be used to restore the status register PIE bit to its + * state before this routine was called. + */ +static ALT_INLINE alt_irq_context ALT_ALWAYS_INLINE + alt_irq_disable_all (void) +{ + alt_irq_context context; + + NIOS2_READ_STATUS (context); + + NIOS2_WRITE_STATUS (context & ~NIOS2_STATUS_PIE_MSK); + + return context; +} + +/* + * alt_irq_enable_all() + * + * Enable all interrupts that were previously disabled by alt_irq_disable_all() + * + * This routine accepts a context to restore the CPU status register PIE bit + * to the state prior to a call to alt_irq_disable_all(). + + * In the case of nested calls to alt_irq_disable_all()/alt_irq_enable_all(), + * this means that alt_irq_enable_all() does not necessarily re-enable + * interrupts. + * + * This routine will perform a read-modify-write sequence to restore only + * status.PIE if the processor is configured with options that add additional + * writeable status register bits. These include the MMU, MPU, the enhanced + * interrupt controller port, and shadow registers. Otherwise, as a performance + * enhancement, status is overwritten with the prior context. + */ +static ALT_INLINE void ALT_ALWAYS_INLINE + alt_irq_enable_all (alt_irq_context context) +{ +#if (NIOS2_NUM_OF_SHADOW_REG_SETS > 0) || (defined NIOS2_EIC_PRESENT) || \ + (defined NIOS2_MMU_PRESENT) || (defined NIOS2_MPU_PRESENT) + alt_irq_context status; + + NIOS2_READ_STATUS (status); + + status &= ~NIOS2_STATUS_PIE_MSK; + status |= (context & NIOS2_STATUS_PIE_MSK); + + NIOS2_WRITE_STATUS (status); +#else + NIOS2_WRITE_STATUS (context); +#endif +} + +/* + * The function alt_irq_init() is defined within the auto-generated file + * alt_sys_init.c. This function calls the initilization macros for all + * interrupt controllers in the system at config time, before any other + * non-interrupt controller driver is initialized. + * + * The "base" parameter is ignored and only present for backwards-compatibility. + * It is recommended that NULL is passed in for the "base" parameter. + */ +extern void alt_irq_init (const void* base); + +/* + * alt_irq_cpu_enable_interrupts() enables the CPU to start taking interrupts. + */ +static ALT_INLINE void ALT_ALWAYS_INLINE + alt_irq_cpu_enable_interrupts () +{ + NIOS2_WRITE_STATUS(NIOS2_STATUS_PIE_MSK +#if defined(NIOS2_EIC_PRESENT) && (NIOS2_NUM_OF_SHADOW_REG_SETS > 0) + | NIOS2_STATUS_RSIE_MSK +#endif + ); +} + + +/* + * Prototypes for the enhanced interrupt API. + */ +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT +/* + * alt_ic_isr_register() can be used to register an interrupt handler. If the + * function is succesful, then the requested interrupt will be enabled upon + * return. + */ +extern int alt_ic_isr_register(alt_u32 ic_id, + alt_u32 irq, + alt_isr_func isr, + void *isr_context, + void *flags); + +/* + * alt_ic_irq_enable() and alt_ic_irq_disable() enable/disable a specific + * interrupt by using IRQ port and interrupt controller instance. + */ +int alt_ic_irq_enable (alt_u32 ic_id, alt_u32 irq); +int alt_ic_irq_disable(alt_u32 ic_id, alt_u32 irq); + + /* + * alt_ic_irq_enabled() indicates whether a specific interrupt, as + * specified by IRQ port and interrupt controller instance is enabled. + */ +alt_u32 alt_ic_irq_enabled(alt_u32 ic_id, alt_u32 irq); + +#else +/* + * Prototypes for the legacy interrupt API. + */ +#include "priv/alt_legacy_irq.h" +#endif + + +/* + * alt_irq_pending() returns a bit list of the current pending interrupts. + * This is used by alt_irq_handler() to determine which registered interrupt + * handlers should be called. + * + * This routine is only available for the Nios II internal interrupt + * controller. + */ +#ifndef NIOS2_EIC_PRESENT +static ALT_INLINE alt_u32 ALT_ALWAYS_INLINE alt_irq_pending (void) +{ + alt_u32 active; + + NIOS2_READ_IPENDING (active); + + return active; +} +#endif + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __ALT_IRQ_H__ */ diff --git a/software/qsys_tutorial_mem_bsp/HAL/inc/sys/alt_irq_entry.h b/software/qsys_tutorial_mem_bsp/HAL/inc/sys/alt_irq_entry.h new file mode 100644 index 0000000..e2008d9 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/HAL/inc/sys/alt_irq_entry.h @@ -0,0 +1,39 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/* + * This file pulls in the IRQ entry assembler and C code, which is only + * required if there are any interruptes in the system. + */ + +__asm__( "\n\t.globl alt_irq_entry" ); + +__asm__( "\n\t.globl alt_irq_handler" ); + diff --git a/software/qsys_tutorial_mem_bsp/HAL/inc/sys/alt_license_reminder_ucosii.h b/software/qsys_tutorial_mem_bsp/HAL/inc/sys/alt_license_reminder_ucosii.h new file mode 100644 index 0000000..2fe649c --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/HAL/inc/sys/alt_license_reminder_ucosii.h @@ -0,0 +1,77 @@ +#ifndef __ALT_LICENSE_REMINDER_UCOSII_H__ +#define __ALT_LICENSE_REMINDER_UCOSII_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#include + +#define ALT_LICENSE_REMINDER_UCOSII_STRING \ + "============== Software License Reminder ===============\n" \ + "\n" \ + "uC/OS-II is provided in source form for FREE evaluation,\n" \ + "for educational use, or for peaceful research. If you\n" \ + "plan on using uC/OS-II in a commercial product you need\n" \ + "to contact Micrium to properly license its use in your\n" \ + "product. Micrium provides ALL the source code on the\n" \ + "Altera distribution for your convenience and to help you\n" \ + "experience uC/OS-II. The fact that the source is provided\n" \ + "does NOT mean that you can use it without paying a\n" \ + "licensing fee. Please help us continue to provide the\n" \ + "Embedded community with the finest software available.\n" \ + "Your honesty is greatly appreciated.\n" \ + "\n" \ + "Please contact:\n" \ + "\n" \ + "M I C R I U M\n" \ + "949 Crestview Circle\n" \ + "Weston, FL 33327-1848\n" \ + "U.S.A.\n" \ + "\n" \ + "Phone : +1 954 217 2036\n" \ + "FAX : +1 954 217 2037\n" \ + "WEB : www.micrium.com\n" \ + "E-mail: Sales@Micrium.com\n" \ + "\n" \ + "========================================================\n" + +#define alt_license_reminder_ucosii() puts(ALT_LICENSE_REMINDER_UCOSII_STRING) + + +#endif /* __ALT_LICENSE_REMINDER_UCOSII_H__ */ + diff --git a/software/qsys_tutorial_mem_bsp/HAL/inc/sys/alt_llist.h b/software/qsys_tutorial_mem_bsp/HAL/inc/sys/alt_llist.h new file mode 100644 index 0000000..46f81ce --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/HAL/inc/sys/alt_llist.h @@ -0,0 +1,123 @@ +#ifndef __ALT_LIST_H__ +#define __ALT_LIST_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#include "alt_types.h" + +/* + * alt_llist.h defines structures and functions for use in manipulating linked + * lists. A list is considered to be constructed from a chain of objects of + * type alt_llist, with one object being defined to be the head element. + * + * A list is considered to be empty if it only contains the head element. + */ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * alt_llist is the structure used to represent an element within a linked + * list. + */ + +typedef struct alt_llist_s alt_llist; + +struct alt_llist_s { + alt_llist* next; /* Pointer to the next element in the list. */ + alt_llist* previous; /* Pointer to the previous element in the list. */ +}; + +/* + * ALT_LLIST_HEAD is a macro that can be used to create the head of a new + * linked list. This is named "head". The head element is initialised to + * represent an empty list. + */ + +#define ALT_LLIST_HEAD(head) alt_llist head = {&head, &head} + +/* + * ALT_LLIST_ENTRY is a macro used to define an uninitialised linked list + * entry. This is used to reserve space in structure initialisation for + * structures that inherit form alt_llist. + */ + +#define ALT_LLIST_ENTRY {0, 0} + +/* + * alt_llist_insert() insert adds the linked list entry "entry" as the + * first entry in the linked list "list". "list" is the list head element. + */ + +static ALT_INLINE void ALT_ALWAYS_INLINE alt_llist_insert(alt_llist* list, + alt_llist* entry) +{ + entry->previous = list; + entry->next = list->next; + + list->next->previous = entry; + list->next = entry; +} + +/* + * alt_llist_remove() is called to remove an element from a linked list. The + * input argument is the element to remove. + */ + +static ALT_INLINE void ALT_ALWAYS_INLINE alt_llist_remove(alt_llist* entry) +{ + entry->next->previous = entry->previous; + entry->previous->next = entry->next; + + /* + * Set the entry to point to itself, so that any further calls to + * alt_llist_remove() are harmless. + */ + + entry->previous = entry; + entry->next = entry; +} + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_LLIST_H__ */ diff --git a/software/qsys_tutorial_mem_bsp/HAL/inc/sys/alt_load.h b/software/qsys_tutorial_mem_bsp/HAL/inc/sys/alt_load.h new file mode 100644 index 0000000..432e9f2 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/HAL/inc/sys/alt_load.h @@ -0,0 +1,78 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2005 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "alt_types.h" + +/* + * This macro is used to load code/data from its load address to its + * execution address for a given section. The section name is the input + * argument. Note that a leading '.' is assumed in the name. For example + * to load the section .onchip_ram, use: + * + * ALT_LOAD_SECTION_BY_NAME(onchip_ram); + * + * This requires that the apropriate linker symbols have been generated + * for the section in question. This will be the case if you are using the + * default linker script. + */ + +#define ALT_LOAD_SECTION_BY_NAME(name) \ + { \ + extern void _alt_partition_##name##_start; \ + extern void _alt_partition_##name##_end; \ + extern void _alt_partition_##name##_load_addr; \ + \ + alt_load_section(&_alt_partition_##name##_load_addr, \ + &_alt_partition_##name##_start, \ + &_alt_partition_##name##_end); \ + } + +/* + * Function used to load an individual section from flash to RAM. + * + * There is an implicit assumption here that the linker script will ensure + * that all sections are word aligned. + * + */ + +static void ALT_INLINE alt_load_section (alt_u32* from, + alt_u32* to, + alt_u32* end) +{ + if (to != from) + { + while( to != end ) + { + *to++ = *from++; + } + } +} diff --git a/software/qsys_tutorial_mem_bsp/HAL/inc/sys/alt_log_printf.h b/software/qsys_tutorial_mem_bsp/HAL/inc/sys/alt_log_printf.h new file mode 100644 index 0000000..c15ca05 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/HAL/inc/sys/alt_log_printf.h @@ -0,0 +1,349 @@ +/* alt_log_printf.h + * + * ALT_LOG is designed to provide extra logging/debugging messages from HAL + * through a different port than stdout. It is enabled by the ALT_LOG_ENABLE + * define, which needs to supplied at compile time. When logging is turned off, + * code size is unaffected. Thus, this should be transparent to the user + * when it is not actively turned on, and should not affect projects in any way. + * + * There are macros sprinkled within different components, such as the jtag uart + * and timer, in the HAL code. They are always named ALT_LOG_, and can be + * safely ignored if ALT_LOG is turned off. + * + * To turn on ALT_LOG, ALT_LOG_ENABLE must be defined, and ALT_LOG_PORT_TYPE and + * ALT_LOG_PORT_BASE must be set in system.h. This is done through editing + * .ptf, by editing the alt_log_port_type & alt_log_port_base settings. + * See the documentation html file for examples. + * + * When it is turned on, it will output extra HAL messages to a port specified + * in system.h. This can be a UART or JTAG UART port. By default it will + * output boot messages, detailing every step of the boot process. + * + * Extra logging is designed to be enabled by flags, which are defined in + * alt_log_printf.c. The default value is that all flags are off, so only the + * boot up logging messages show up. ALT_LOG_FLAGS can be set to enable certain + * groupings of flags, and that grouping is done in this file. Each flag can + * also be overridden with a -D at compile time. + * + * This header file includes the necessary prototypes for using the alt_log + * functions. It also contains all the macros that are used to remove the code + * from alt log is turned off. Also, the macros in other HAL files are defined + * here at the bottom. These macros all call some C function that is in + * alt_log_printf.c. + * + * The logging has functions for printing in C (ALT_LOG_PRINTF) and in assembly + * (ALT_LOG_PUTS). This was needed because the assembly printing occurs before + * the device is initialized. The assembly function corrupts register R4-R7, + * which are not used in the normal boot process. For this reason, do not call + * the assembly function in C. + * + * author: gkwan + */ + + +#ifndef __ALT_LOG_PRINTF_H__ +#define __ALT_LOG_PRINTF_H__ + +#include + +/* Global switch to turn on logging functions */ +#ifdef ALT_LOG_ENABLE + + /* ALT_LOG_PORT_TYPE values as defined in system.h. They are defined as + * numbers here first becasue the C preprocessor does not handle string + * comparisons. */ + #define ALTERA_AVALON_JTAG_UART 1 + #define ALTERA_AVALON_UART 0 + + /* If this .h file is included by an assembly file, skip over include files + * that won't compile in assembly. */ + #ifndef ALT_ASM_SRC + #include + #include "sys/alt_alarm.h" + #include "sys/alt_dev.h" + #ifdef __ALTERA_AVALON_JTAG_UART + #include "altera_avalon_jtag_uart.h" + #endif + #endif /* ALT_ASM_SRC */ + + /* These are included for the port register offsets and masks, needed + * to write to the port. Only include if the port type is set correctly, + * otherwise error. If alt_log is turned on and the port to output to is + * incorrect or does not exist, then should exit. */ + #if ALT_LOG_PORT_TYPE == ALTERA_AVALON_JTAG_UART + #ifdef __ALTERA_AVALON_JTAG_UART + #include + #else + #error ALT_LOG: JTAG_UART port chosen, but no JTAG_UART in system. + #endif + #elif ALT_LOG_PORT_TYPE == ALTERA_AVALON_UART + #ifdef __ALTERA_AVALON_UART + #include + #else + #error ALT_LOG: UART Port chosen, but no UART in system. + #endif + #else + #error ALT_LOG: alt_log_port_type declaration invalid! + #endif + + /* ALT_LOG_ENABLE turns on the basic printing function */ + #define ALT_LOG_PRINTF(...) do {alt_log_printf_proc(__VA_ARGS__);} while (0) + + /* Assembly macro for printing in assembly, calls tx_log_str + * which is in alt_log_macro.S. + * If alt_log_boot_on_flag is 0, skips the printing */ + #define ALT_LOG_PUTS(str) movhi r4, %hiadj(alt_log_boot_on_flag) ; \ + addi r4, r4, %lo(alt_log_boot_on_flag) ; \ + ldwio r5, 0(r4) ; \ + beq r0, r5, 0f ; \ + movhi r4, %hiadj(str) ; \ + addi r4, r4, %lo(str) ; \ + call tx_log_str ; \ + 0: + + /* These defines are here to faciliate the use of one output function + * (alt_log_txchar) to print to both the JTAG UART or the UART. Depending + * on the port type, the status register, read mask, and output register + * are set to the appropriate value for the port. */ + #if ALT_LOG_PORT_TYPE == ALTERA_AVALON_JTAG_UART + #define ALT_LOG_PRINT_REG_RD IORD_ALTERA_AVALON_JTAG_UART_CONTROL + #define ALT_LOG_PRINT_MSK ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_MSK + #define ALT_LOG_PRINT_TXDATA_WR IOWR_ALTERA_AVALON_JTAG_UART_DATA + #define ALT_LOG_PRINT_REG_OFFSET (ALTERA_AVALON_JTAG_UART_CONTROL_REG*0x4) + #define ALT_LOG_PRINT_TXDATA_REG_OFFSET (ALTERA_AVALON_JTAG_UART_DATA_REG*0x4) + #elif ALT_LOG_PORT_TYPE == ALTERA_AVALON_UART + #define ALT_LOG_PRINT_REG_RD IORD_ALTERA_AVALON_UART_STATUS + #define ALT_LOG_PRINT_MSK ALTERA_AVALON_UART_STATUS_TRDY_MSK + #define ALT_LOG_PRINT_TXDATA_WR IOWR_ALTERA_AVALON_UART_TXDATA + #define ALT_LOG_PRINT_REG_OFFSET (ALTERA_AVALON_UART_STATUS_REG*0x4) + #define ALT_LOG_PRINT_TXDATA_REG_OFFSET (ALTERA_AVALON_UART_TXDATA_REG*0x4) + #endif /* ALT_LOG_PORT */ + + /* Grouping of flags via ALT_LOG_FLAGS. Each specific flag can be set via + * -D at compile time, or else they'll be set to a default value according + * to ALT_LOG_FLAGS. ALT_LOG_FLAGS = 0 or not set is the default, where + * only the boot messages will be printed. As ALT_LOG_FLAGS increase, they + * increase in intrusiveness to the program, and will affect performance. + * + * Flag Level 1 - turns on system clock and JTAG UART startup status + * 2 - turns on write echo and JTAG_UART alarm (periodic report) + * 3 - turns on JTAG UART ISR logging - will slow performance + * significantly. + * -1 - All logging output is off, but if ALT_LOG_ENABLE is + * defined all logging function is built and code size + * remains constant + * + * Flag settings - 1 = on, 0 = off. */ + + /* This flag turns on "boot" messages for printing. This includes messages + * during crt0.S, then alt_main, and finally alt_exit. */ + #ifndef ALT_LOG_BOOT_ON_FLAG_SETTING + #if ALT_LOG_FLAGS == 1 + #define ALT_LOG_BOOT_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == 2 + #define ALT_LOG_BOOT_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == 3 + #define ALT_LOG_BOOT_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == -1 /* silent mode */ + #define ALT_LOG_BOOT_ON_FLAG_SETTING 0x0 + #else /* default setting */ + #define ALT_LOG_BOOT_ON_FLAG_SETTING 0x1 + #endif + #endif /* ALT_LOG_BOOT_ON_FLAG_SETTING */ + + #ifndef ALT_LOG_SYS_CLK_ON_FLAG_SETTING + #if ALT_LOG_FLAGS == 1 + #define ALT_LOG_SYS_CLK_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == 2 + #define ALT_LOG_SYS_CLK_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == 3 + #define ALT_LOG_SYS_CLK_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == -1 /* silent mode */ + #define ALT_LOG_SYS_CLK_ON_FLAG_SETTING 0x0 + #else /* default setting */ + #define ALT_LOG_SYS_CLK_ON_FLAG_SETTING 0x0 + #endif + #endif /* ALT_LOG_SYS_CLK_ON_FLAG_SETTING */ + + #ifndef ALT_LOG_WRITE_ON_FLAG_SETTING + #if ALT_LOG_FLAGS == 1 + #define ALT_LOG_WRITE_ON_FLAG_SETTING 0x0 + #elif ALT_LOG_FLAGS == 2 + #define ALT_LOG_WRITE_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == 3 + #define ALT_LOG_WRITE_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == -1 /* silent mode */ + #define ALT_LOG_WRITE_ON_FLAG_SETTING 0x0 + #else /* default setting */ + #define ALT_LOG_WRITE_ON_FLAG_SETTING 0x0 + #endif + #endif /* ALT_LOG_WRITE_ON_FLAG_SETTING */ + + #ifndef ALT_LOG_JTAG_UART_ALARM_ON_FLAG_SETTING + #ifndef __ALTERA_AVALON_JTAG_UART + #define ALT_LOG_JTAG_UART_ALARM_ON_FLAG_SETTING 0x0 + #elif ALT_LOG_FLAGS == 1 + #define ALT_LOG_JTAG_UART_ALARM_ON_FLAG_SETTING 0x0 + #elif ALT_LOG_FLAGS == 2 + #define ALT_LOG_JTAG_UART_ALARM_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == 3 + #define ALT_LOG_JTAG_UART_ALARM_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == -1 /* silent mode */ + #define ALT_LOG_JTAG_UART_ALARM_ON_FLAG_SETTING 0x0 + #else /* default setting */ + #define ALT_LOG_JTAG_UART_ALARM_ON_FLAG_SETTING 0x0 + #endif + #endif /* ALT_LOG_JTAG_UART_ALARM_ON_FLAG_SETTING */ + + #ifndef ALT_LOG_JTAG_UART_STARTUP_INFO_ON_FLAG_SETTING + #ifndef __ALTERA_AVALON_JTAG_UART + #define ALT_LOG_JTAG_UART_STARTUP_INFO_ON_FLAG_SETTING 0x0 + #elif ALT_LOG_FLAGS == 1 + #define ALT_LOG_JTAG_UART_STARTUP_INFO_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == 2 + #define ALT_LOG_JTAG_UART_STARTUP_INFO_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == 3 + #define ALT_LOG_JTAG_UART_STARTUP_INFO_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == -1 /* silent mode */ + #define ALT_LOG_JTAG_UART_STARTUP_INFO_ON_FLAG_SETTING 0x0 + #else /* default setting */ + #define ALT_LOG_JTAG_UART_STARTUP_INFO_ON_FLAG_SETTING 0x0 + #endif + #endif /* ALT_LOG_JTAG_UART_STARTUP_INFO_FLAG_SETTING */ + + #ifndef ALT_LOG_JTAG_UART_ISR_ON_FLAG_SETTING + #ifndef __ALTERA_AVALON_JTAG_UART + #define ALT_LOG_JTAG_UART_ISR_ON_FLAG_SETTING 0x0 + #elif ALT_LOG_FLAGS == 1 + #define ALT_LOG_JTAG_UART_ISR_ON_FLAG_SETTING 0x0 + #elif ALT_LOG_FLAGS == 2 + #define ALT_LOG_JTAG_UART_ISR_ON_FLAG_SETTING 0x0 + #elif ALT_LOG_FLAGS == 3 + #define ALT_LOG_JTAG_UART_ISR_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == -1 /* silent mode */ + #define ALT_LOG_JTAG_UART_ISR_ON_FLAG_SETTING 0x0 + #else /* default setting */ + #define ALT_LOG_JTAG_UART_ISR_ON_FLAG_SETTING 0x0 + #endif + #endif /* ALT_LOG_JTAG_UART_ISR_ON_FLAG_SETTING */ + +#ifndef ALT_ASM_SRC + /* Function Prototypes */ + void alt_log_txchar(int c,char *uartBase); + void alt_log_private_printf(const char *fmt,int base,va_list args); + void alt_log_repchar(char c,int r,int base); + int alt_log_printf_proc(const char *fmt, ... ); + void alt_log_system_clock(); + #ifdef __ALTERA_AVALON_JTAG_UART + alt_u32 altera_avalon_jtag_uart_report_log(void * context); + void alt_log_jtag_uart_startup_info(altera_avalon_jtag_uart_state* dev, int base); + void alt_log_jtag_uart_print_control_reg(altera_avalon_jtag_uart_state* dev, \ + int base, const char* header); + void alt_log_jtag_uart_isr_proc(int base, altera_avalon_jtag_uart_state* dev); + #endif + void alt_log_write(const void *ptr, size_t len); + + /* extern all global variables */ + extern volatile alt_u32 alt_log_boot_on_flag; + extern volatile alt_u8 alt_log_write_on_flag; + extern volatile alt_u8 alt_log_sys_clk_on_flag; + extern volatile alt_u8 alt_log_jtag_uart_alarm_on_flag; + extern volatile alt_u8 alt_log_jtag_uart_isr_on_flag; + extern volatile alt_u8 alt_log_jtag_uart_startup_info_on_flag; + extern volatile int alt_log_sys_clk_count; + extern volatile int alt_system_clock_in_sec; + extern alt_alarm alt_log_jtag_uart_alarm_1; +#endif /* ALT_ASM_SRC */ + + + /* Below are the MACRO defines used in various HAL files. They check + * if their specific flag is turned on; if it is, then it executes its + * code. + * + * To keep this file reasonable, most of these macros calls functions, + * which are defined in alt_log_printf.c. Look there for implementation + * details. */ + + /* Boot Messages Logging */ + #define ALT_LOG_PRINT_BOOT(...) \ + do { if (alt_log_boot_on_flag==1) {ALT_LOG_PRINTF(__VA_ARGS__);} \ + } while (0) + + /* JTAG UART Logging */ + /* number of ticks before alarm runs logging function */ + #ifndef ALT_LOG_JTAG_UART_TICKS_DIVISOR + #define ALT_LOG_JTAG_UART_TICKS_DIVISOR 10 + #endif + #ifndef ALT_LOG_JTAG_UART_TICKS + #define ALT_LOG_JTAG_UART_TICKS \ + (alt_ticks_per_second()/ALT_LOG_JTAG_UART_TICKS_DIVISOR) + #endif + + /* if there's a JTAG UART defined, then enable these macros */ + #ifdef __ALTERA_AVALON_JTAG_UART + + /* Macro in altera_avalon_jtag_uart.c, to register the alarm function. + * Also, the startup register info is also printed here, as this is + * called within the device driver initialization. */ + #define ALT_LOG_JTAG_UART_ALARM_REGISTER(dev, base) \ + do { if (alt_log_jtag_uart_alarm_on_flag==1) { \ + alt_alarm_start(&alt_log_jtag_uart_alarm_1, \ + ALT_LOG_JTAG_UART_TICKS, &altera_avalon_jtag_uart_report_log,\ + dev);} \ + if (alt_log_jtag_uart_startup_info_on_flag==1) {\ + alt_log_jtag_uart_startup_info(dev, base);} \ + } while (0) + + /* JTAG UART IRQ Logging (when buffer is empty) + * Inserted in the ISR in altera_avalon_jtag_uart.c */ + #define ALT_LOG_JTAG_UART_ISR_FUNCTION(base, dev) \ + do { alt_log_jtag_uart_isr_proc(base, dev); } while (0) + /* else, define macros to nothing. Or else the jtag_uart specific types + * will throw compiler errors */ + #else + #define ALT_LOG_JTAG_UART_ALARM_REGISTER(dev, base) + #define ALT_LOG_JTAG_UART_ISR_FUNCTION(base, dev) + #endif + + /* System clock logging + * How often (in seconds) the system clock logging prints. + * The default value is every 1 second */ + #ifndef ALT_LOG_SYS_CLK_INTERVAL_MULTIPLIER + #define ALT_LOG_SYS_CLK_INTERVAL_MULTIPLIER 1 + #endif + #ifndef ALT_LOG_SYS_CLK_INTERVAL + #define ALT_LOG_SYS_CLK_INTERVAL \ + (alt_ticks_per_second()*ALT_LOG_SYS_CLK_INTERVAL_MULTIPLIER) + #endif + + /* System clock logging - prints a message every interval (set above) + * to show that the system clock is alive. + * This macro is used in altera_avalon_timer_sc.c */ + #define ALT_LOG_SYS_CLK_HEARTBEAT() \ + do { alt_log_system_clock(); } while (0) + + /* alt_write_logging - echos a message every time write() is called, + * displays the first ALT_LOG_WRITE_ECHO_LEN characters. + * This macro is used in alt_write.c */ + #ifndef ALT_LOG_WRITE_ECHO_LEN + #define ALT_LOG_WRITE_ECHO_LEN 15 + #endif + + #define ALT_LOG_WRITE_FUNCTION(ptr,len) \ + do { alt_log_write(ptr,len); } while (0) + +#else /* ALT_LOG_ENABLE not defined */ + + /* logging is off, set all relevant macros to null */ + #define ALT_LOG_PRINT_BOOT(...) + #define ALT_LOG_PRINTF(...) + #define ALT_LOG_JTAG_UART_ISR_FUNCTION(base, dev) + #define ALT_LOG_JTAG_UART_ALARM_REGISTER(dev, base) + #define ALT_LOG_SYS_CLK_HEARTBEAT() + #define ALT_LOG_PUTS(str) + #define ALT_LOG_WRITE_FUNCTION(ptr,len) + +#endif /* ALT_LOG_ENABLE */ + +#endif /* __ALT_LOG_PRINTF_H__ */ + diff --git a/software/qsys_tutorial_mem_bsp/HAL/inc/sys/alt_set_args.h b/software/qsys_tutorial_mem_bsp/HAL/inc/sys/alt_set_args.h new file mode 100644 index 0000000..3750e67 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/HAL/inc/sys/alt_set_args.h @@ -0,0 +1,71 @@ +#ifndef __ALT_SET_ARGS_H__ +#define __ALT_SET_ARGS_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * The function alt_set_args() is provided in order to define the input + * arguments to main(). If this function is not called before main() then the + * argument list passed to main() will be empty. + * + * It is expected that this function will only be used by the ihost/iclient + * utility. + */ + +static inline void alt_set_args (int argc, char** argv, char** envp) +{ + extern int alt_argc; + extern char** alt_argv; + extern char** alt_envp; + + alt_argc = argc; + alt_argv = argv; + alt_envp = envp; +} + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_SET_ARGS_H__ */ diff --git a/software/qsys_tutorial_mem_bsp/HAL/inc/sys/alt_sim.h b/software/qsys_tutorial_mem_bsp/HAL/inc/sys/alt_sim.h new file mode 100644 index 0000000..06bd27a --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/HAL/inc/sys/alt_sim.h @@ -0,0 +1,91 @@ +#ifndef __ALT_SIM_H__ +#define __ALT_SIM_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2007 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ +#include "system.h" +#include "alt_types.h" + +/* + * Instructions that might mean something special to a simulator. + * These have no special effect on real hardware (they are just nops). + */ +#define ALT_SIM_FAIL() \ + do { __asm volatile ("cmpltui r0, r0, 0xabc1"); } while (0) + +#define ALT_SIM_PASS() \ + do { __asm volatile ("cmpltui r0, r0, 0xabc2"); } while (0) + +#define ALT_SIM_IN_TOP_OF_HOT_LOOP() \ + do { __asm volatile ("cmpltui r0, r0, 0xabc3"); } while (0) + +/* + * Routine called on exit. + */ +static ALT_ALWAYS_INLINE void alt_sim_halt(int exit_code) +{ + int r2 = exit_code; + +#if defined(NIOS2_HAS_DEBUG_STUB) && (defined(ALT_BREAK_ON_EXIT) || defined(ALT_PROVIDE_GMON)) + + int r3 = (1 << 2); + +#ifdef ALT_PROVIDE_GMON + extern unsigned int alt_gmon_data[]; + int r4 = (int)alt_gmon_data; + r3 |= (1 << 4); +#define ALT_GMON_DATA ,"D04"(r4) +#else +#define ALT_GMON_DATA +#endif /* ALT_PROVIDE_GMON */ + + if (r2) { + ALT_SIM_FAIL(); + } else { + ALT_SIM_PASS(); + } + + __asm__ volatile ("\n0:\n\taddi %0,%0, -1\n\tbgt %0,zero,0b" : : "r" (ALT_CPU_FREQ/100) ); /* Delay for >30ms */ + + __asm__ volatile ("break 2" : : "D02"(r2), "D03"(r3) ALT_GMON_DATA ); + +#else /* !DEBUG_STUB */ + if (r2) { + ALT_SIM_FAIL(); + } else { + ALT_SIM_PASS(); + } +#endif /* DEBUG_STUB */ +} + +#define ALT_SIM_HALT(exit_code) \ + alt_sim_halt(exit_code) + +#endif /* __ALT_SIM_H__ */ diff --git a/software/qsys_tutorial_mem_bsp/HAL/inc/sys/alt_stack.h b/software/qsys_tutorial_mem_bsp/HAL/inc/sys/alt_stack.h new file mode 100644 index 0000000..e30652a --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/HAL/inc/sys/alt_stack.h @@ -0,0 +1,126 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#ifndef __ALT_STACK_H__ +#define __ALT_STACK_H__ + +/* + * alt_stack.h is the nios2 specific implementation of functions used by the + * stack overflow code. + */ + +#include "nios2.h" + +#include "alt_types.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + + +extern char * alt_stack_limit_value; + +#ifdef ALT_EXCEPTION_STACK +extern char __alt_exception_stack_pointer[]; /* set by the linker */ +#endif /* ALT_EXCEPTION_STACK */ + + +/* + * alt_stack_limit can be called to determine the current value of the stack + * limit register. + */ + +static ALT_INLINE char * ALT_ALWAYS_INLINE alt_stack_limit (void) +{ + char * limit; + NIOS2_READ_ET(limit); + + return limit; +} + +/* + * alt_stack_pointer can be called to determine the current value of the stack + * pointer register. + */ + +static ALT_INLINE char * ALT_ALWAYS_INLINE alt_stack_pointer (void) +{ + char * pointer; + NIOS2_READ_SP(pointer); + + return pointer; +} + + +#ifdef ALT_EXCEPTION_STACK + +/* + * alt_exception_stack_pointer returns the normal stack pointer from + * where it is stored on the exception stack (uppermost 4 bytes). This + * is really only useful during exception processing, and is only + * available if a separate exception stack has been configured. + */ + +static ALT_INLINE char * ALT_ALWAYS_INLINE alt_exception_stack_pointer (void) +{ + return (char *) *(alt_u32 *)(__alt_exception_stack_pointer - sizeof(alt_u32)); +} + +#endif /* ALT_EXCEPTION_STACK */ + + +/* + * alt_set_stack_limit can be called to update the current value of the stack + * limit register. + */ + +static ALT_INLINE void ALT_ALWAYS_INLINE alt_set_stack_limit (char * limit) +{ + alt_stack_limit_value = limit; + NIOS2_WRITE_ET(limit); +} + +/* + * alt_report_stack_overflow reports that a stack overflow happened. + */ + +static ALT_INLINE void ALT_ALWAYS_INLINE alt_report_stack_overflow (void) +{ + NIOS2_REPORT_STACK_OVERFLOW(); +} + + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __ALT_STACK_H__ */ + diff --git a/software/qsys_tutorial_mem_bsp/HAL/inc/sys/alt_stdio.h b/software/qsys_tutorial_mem_bsp/HAL/inc/sys/alt_stdio.h new file mode 100644 index 0000000..1730360 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/HAL/inc/sys/alt_stdio.h @@ -0,0 +1,62 @@ +#ifndef __ALT_STDIO_H__ +#define __ALT_STDIO_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +/* + * Definitions for ALT stdio routines. + */ + +#include + + +#ifdef __cplusplus +extern "C" { +#endif + +int alt_getchar(); +int alt_putchar(int c); +int alt_putstr(const char* str); +void alt_printf(const char *fmt, ...); + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_STDIO_H__ */ diff --git a/software/qsys_tutorial_mem_bsp/HAL/inc/sys/alt_sys_init.h b/software/qsys_tutorial_mem_bsp/HAL/inc/sys/alt_sys_init.h new file mode 100644 index 0000000..e4abc28 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/HAL/inc/sys/alt_sys_init.h @@ -0,0 +1,62 @@ +#ifndef __ALT_SYS_INIT_H__ +#define __ALT_SYS_INIT_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * The function alt_sys_init() is defined within the auto-generated file: + * alt_sys_init.c. This function calls the initilisation macros for all + * devices, file systems, and software components within the system. + * + * The list of initilisation macros to use is constructed using the PTF and + * STF files associated with the system. + */ + +extern void alt_sys_init (void); + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_SYS_INIT_H__ */ diff --git a/software/qsys_tutorial_mem_bsp/HAL/inc/sys/alt_sys_wrappers.h b/software/qsys_tutorial_mem_bsp/HAL/inc/sys/alt_sys_wrappers.h new file mode 100644 index 0000000..044833b --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/HAL/inc/sys/alt_sys_wrappers.h @@ -0,0 +1,100 @@ +#ifndef __ALT_SYS_WRAPPERS_H__ +#define __ALT_SYS_WRAPPERS_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/* + * This file provides the prototypes for the HAL 'UNIX style functions. The + * names of these functions are defined in alt_syscall.h. THese are defined to + * be the standard names when running the standalone HAL, e.g. open(), close() + * etc., but the names may be redefined as a part of an operating system port + * in order to avoid name clashes. + */ + +#include "os/alt_syscall.h" + +#include +#include +#include +#include +#include +#include + +extern int ALT_CLOSE (int __fd); +extern int ALT_EXECVE (const char *__path, + char * const __argv[], + char * const __envp[]); +extern void ALT_EXIT (int __status); +extern int ALT_FSTAT (int file, struct stat *st); +extern int ALT_FCNTL (int file, int cmd, ...); +extern pid_t ALT_FORK (void); +extern pid_t ALT_GETPID (void); + +#if defined (__GNUC__) && __GNUC__ >= 4 +extern int ALT_GETTIMEOFDAY (struct timeval *ptimeval, + void *ptimezone); +#else +extern int ALT_GETTIMEOFDAY (struct timeval *ptimeval, + struct timezone *ptimezone); +#endif + +extern int ALT_IOCTL (int file, int req, void* arg); +extern int ALT_ISATTY (int file); +extern int ALT_KILL (int pid, int sig); +extern int ALT_LINK (const char *existing, const char *new); +extern off_t ALT_LSEEK (int file, off_t ptr, int dir); +extern int ALT_OPEN (const char* file, int flags, ...); +extern int ALT_READ (int file, void *ptr, size_t len); +extern int ALT_RENAME (char *existing, char *new); +extern void* ALT_SBRK (ptrdiff_t incr); +extern int ALT_SETTIMEOFDAY (const struct timeval *t, + const struct timezone *tz); +extern int ALT_STAT (const char *file, struct stat *st); +extern clock_t ALT_TIMES (struct tms *buf); +extern int ALT_UNLINK (const char *name); + +#if defined (__GNUC__) && __GNUC__ >= 4 +int ALT_USLEEP (useconds_t us); +#else +unsigned int ALT_USLEEP (unsigned int us); +#endif + +extern int ALT_WAIT (int *status); +extern int ALT_WRITE (int file, const void *ptr, size_t len); + + +extern char** ALT_ENVIRON; + +/* + * + */ + +#endif /* __ALT_SYS_WRAPPERS_H__ */ diff --git a/software/qsys_tutorial_mem_bsp/HAL/inc/sys/alt_timestamp.h b/software/qsys_tutorial_mem_bsp/HAL/inc/sys/alt_timestamp.h new file mode 100644 index 0000000..8a18da2 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/HAL/inc/sys/alt_timestamp.h @@ -0,0 +1,60 @@ +#ifndef __ALT_TIMESTAMP_H__ +#define __ALT_TIMESTAMP_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#include "alt_types.h" +#include "altera_avalon_timer.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +extern int alt_timestamp_start (void); + +extern alt_timestamp_type alt_timestamp (void); + +extern alt_u32 alt_timestamp_freq (void); + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_TIMESTAMP_H__ */ diff --git a/software/qsys_tutorial_mem_bsp/HAL/inc/sys/alt_warning.h b/software/qsys_tutorial_mem_bsp/HAL/inc/sys/alt_warning.h new file mode 100644 index 0000000..b66e71a --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/HAL/inc/sys/alt_warning.h @@ -0,0 +1,75 @@ +#ifndef __WARNING_H__ +#define __WARNING_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/* + * alt_warning.h provides macro definitions that can be used to generate link + * time warnings. + */ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * The symbol "__alt_invalid" is used to force a link error. There should be + * no corresponding implementation of this function. + */ + +extern void __alt_invalid (void); + +#define ALT_LINK_WARNING(symbol, msg) \ + __asm__(".ifndef __evoke_link_warning_" #symbol \ + "\n\t .section .gnu.warning." #symbol \ + "\n__evoke_link_warning_" #symbol ":\n\t .string \x22" msg "\x22 \n\t .previous" \ + "\n .endif"); + +/* A canned warning for sysdeps/stub functions. */ + +#define ALT_STUB_WARNING(name) \ + ALT_LINK_WARNING (name, \ + "warning: " #name " is not implemented and will always fail") + +#define ALT_OBSOLETE_FUNCTION_WARNING(name) \ + ALT_LINK_WARNING (name, \ + "warning: " #name " is a deprecated function") + +#define ALT_LINK_ERROR(msg) \ + ALT_LINK_WARNING (__alt_invalid, msg); \ + __alt_invalid() + +#ifdef __cplusplus +} +#endif + +#endif /* __WARNING_H__ */ diff --git a/software/qsys_tutorial_mem_bsp/HAL/inc/sys/ioctl.h b/software/qsys_tutorial_mem_bsp/HAL/inc/sys/ioctl.h new file mode 100644 index 0000000..4d565df --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/HAL/inc/sys/ioctl.h @@ -0,0 +1,90 @@ +#ifndef __IOCTL_H__ +#define __IOCTL_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * The ioctl() system call be used to initiate a variety of control operations + * on a file descriptor. For the most part this simply translates to a call to + * the ioctl() function of the associated device driver (TIOCEXCL and + * TIOCNXCL are notable exceptions - see ioctl.c for details). + * + * The interpretation of the ioctl requests are therefore device specific. + * + * This function is equivalent to the standard Posix ioctl() call. + */ + +extern int ioctl (int fd, int req, void* arg); + +/* + * list of ioctl calls handled by the system ioctl implementation. + */ + +#define TIOCEXCL 0x740d /* exclusive use of the device */ +#define TIOCNXCL 0x740e /* allow multiple use of the device */ + +/* + * ioctl calls which can be handled by device drivers. + */ + +#define TIOCOUTQ 0x7472 /* get output queue size */ +#define TIOCMGET 0x741d /* get termios flags */ +#define TIOCMSET 0x741a /* set termios flags */ + +/* + * ioctl calls specific to JTAG UART. + */ + +#define TIOCSTIMEOUT 0x6a01 /* Set Timeout before assuming no host present */ +#define TIOCGCONNECTED 0x6a02 /* Get indication of whether host is connected */ + +/* + * + */ + +#ifdef __cplusplus +} +#endif + +#endif /* __IOCTL_H__ */ diff --git a/software/qsys_tutorial_mem_bsp/HAL/inc/sys/termios.h b/software/qsys_tutorial_mem_bsp/HAL/inc/sys/termios.h new file mode 100644 index 0000000..cd09539 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/HAL/inc/sys/termios.h @@ -0,0 +1,181 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +/* + * This is the termios.h file provided with newlib. The only modification has + * been to the baud rate macro definitions, and an increase in the size of the + * termios structure to accomodate this. + */ + + +#ifndef _SYS_TERMIOS_H +# define _SYS_TERMIOS_H + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +# define _XCGETA (('x'<<8)|1) +# define _XCSETA (('x'<<8)|2) +# define _XCSETAW (('x'<<8)|3) +# define _XCSETAF (('x'<<8)|4) +# define _TCSBRK (('T'<<8)|5) +# define _TCFLSH (('T'<<8)|7) +# define _TCXONC (('T'<<8)|6) + +# define TCOOFF 0 +# define TCOON 1 +# define TCIOFF 2 +# define TCION 3 + +# define TCIFLUSH 0 +# define TCOFLUSH 1 +# define TCIOFLUSH 2 + +# define NCCS 13 + +# define TCSAFLUSH _XCSETAF +# define TCSANOW _XCSETA +# define TCSADRAIN _XCSETAW +# define TCSADFLUSH _XCSETAF + +# define IGNBRK 000001 +# define BRKINT 000002 +# define IGNPAR 000004 +# define INPCK 000020 +# define ISTRIP 000040 +# define INLCR 000100 +# define IGNCR 000200 +# define ICRNL 000400 +# define IXON 002000 +# define IXOFF 010000 + +# define OPOST 000001 +# define OCRNL 000004 +# define ONLCR 000010 +# define ONOCR 000020 +# define TAB3 014000 + +# define CLOCAL 004000 +# define CREAD 000200 +# define CSIZE 000060 +# define CS5 0 +# define CS6 020 +# define CS7 040 +# define CS8 060 +# define CSTOPB 000100 +# define HUPCL 002000 +# define PARENB 000400 +# define PAODD 001000 + +#define CCTS_OFLOW 010000 +#define CRTS_IFLOW 020000 +#define CRTSCTS (CCTS_OFLOW | CRTS_IFLOW) + +# define ECHO 0000010 +# define ECHOE 0000020 +# define ECHOK 0000040 +# define ECHONL 0000100 +# define ICANON 0000002 +# define IEXTEN 0000400 /* anybody know *what* this does?! */ +# define ISIG 0000001 +# define NOFLSH 0000200 +# define TOSTOP 0001000 + +# define VEOF 4 /* also VMIN -- thanks, AT&T */ +# define VEOL 5 /* also VTIME -- thanks again */ +# define VERASE 2 +# define VINTR 0 +# define VKILL 3 +# define VMIN 4 /* also VEOF */ +# define VQUIT 1 +# define VSUSP 10 +# define VTIME 5 /* also VEOL */ +# define VSTART 11 +# define VSTOP 12 + +# define B0 0 +# define B50 50 +# define B75 75 +# define B110 110 +# define B134 134 +# define B150 150 +# define B200 200 +# define B300 300 +# define B600 600 +# define B1200 1200 +# define B1800 1800 +# define B2400 2400 +# define B4800 4800 +# define B9600 9600 +# define B19200 19200 +# define B38400 38400 +# define B57600 57600 +# define B115200 115200 + +typedef unsigned char cc_t; +typedef unsigned short tcflag_t; +typedef unsigned long speed_t; + +struct termios { + tcflag_t c_iflag; + tcflag_t c_oflag; + tcflag_t c_cflag; + tcflag_t c_lflag; + char c_line; + cc_t c_cc[NCCS]; + speed_t c_ispeed; + speed_t c_ospeed; +}; + +# ifndef _NO_MACROS + +# define cfgetospeed(tp) ((tp)->c_ospeed) +# define cfgetispeed(tp) ((tp)->c_ispeed) +# define cfsetospeed(tp,s) (((tp)->c_ospeed = (s)), 0) +# define cfsetispeed(tp,s) (((tp)->c_ispeed = (s)), 0) +# define tcdrain(fd) _ioctl (fd, _TCSBRK, 1) +# endif /* _NO_MACROS */ + +#ifdef __cplusplus +} +#endif + +#endif /* _SYS_TERMIOS_H */ + diff --git a/software/qsys_tutorial_mem_bsp/HAL/src/alt_alarm_start.c b/software/qsys_tutorial_mem_bsp/HAL/src/alt_alarm_start.c new file mode 100644 index 0000000..7739959 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/HAL/src/alt_alarm_start.c @@ -0,0 +1,112 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +#include "sys/alt_alarm.h" +#include "sys/alt_irq.h" + +/* + * alt_alarm_start is called to register an alarm with the system. The + * "alarm" structure passed as an input argument does not need to be + * initialised by the user. This is done within this function. + * + * The remaining input arguments are: + * + * nticks - The time to elapse until the alarm executes. This is specified in + * system clock ticks. + * callback - The function to run when the indicated time has elapsed. + * context - An opaque value, passed to the callback function. +* + * Care should be taken when defining the callback function since it is + * likely to execute in interrupt context. In particular, this mean that + * library calls like printf() should not be made, since they can result in + * deadlock. + * + * The interval to be used for the next callback is the return + * value from the callback function. A return value of zero indicates that the + * alarm should be unregistered. + * + * alt_alarm_start() will fail if the timer facility has not been enabled + * (i.e. there is no system clock). Failure is indicated by a negative return + * value. + */ + +int alt_alarm_start (alt_alarm* alarm, alt_u32 nticks, + alt_u32 (*callback) (void* context), + void* context) +{ + alt_irq_context irq_context; + alt_u32 current_nticks = 0; + + if (alt_ticks_per_second ()) + { + if (alarm) + { + alarm->callback = callback; + alarm->context = context; + + irq_context = alt_irq_disable_all (); + + current_nticks = alt_nticks(); + + alarm->time = nticks + current_nticks + 1; + + /* + * If the desired alarm time causes a roll-over, set the rollover + * flag. This will prevent the subsequent tick event from causing + * an alarm too early. + */ + if(alarm->time < current_nticks) + { + alarm->rollover = 1; + } + else + { + alarm->rollover = 0; + } + + alt_llist_insert (&alt_alarm_list, &alarm->llist); + alt_irq_enable_all (irq_context); + + return 0; + } + else + { + return -EINVAL; + } + } + else + { + return -ENOTSUP; + } +} diff --git a/software/qsys_tutorial_mem_bsp/HAL/src/alt_busy_sleep.c b/software/qsys_tutorial_mem_bsp/HAL/src/alt_busy_sleep.c new file mode 100644 index 0000000..561c0be --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/HAL/src/alt_busy_sleep.c @@ -0,0 +1,133 @@ +/* + * Copyright (c) 2003-2004 Altera Corporation, San Jose, California, USA. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + * ------------ + * + * Altera does not recommend, suggest or require that this reference design + * file be used in conjunction or combination with any other product. + * + * alt_busy_sleep.c - Microsecond delay routine which uses a calibrated busy + * loop to perform the delay. This is used to implement + * usleep for both uC/OS-II and the standalone HAL. + * + * Author PRR + * + * Calibrated delay with no timer required + * + * The ASM instructions in the routine are equivalent to + * + * for (i=0;i +#include + +#include "system.h" +#include "alt_types.h" + +#include "priv/alt_busy_sleep.h" + +unsigned int alt_busy_sleep (unsigned int us) +{ +/* + * Only delay if ALT_SIM_OPTIMIZE is not defined; i.e., if software + * is built targetting ModelSim RTL simulation, the delay will be + * skipped to speed up simulation. + */ +#ifndef ALT_SIM_OPTIMIZE + int i; + int big_loops; + alt_u32 cycles_per_loop; + + if (!strcmp(NIOS2_CPU_IMPLEMENTATION,"tiny")) + { + cycles_per_loop = 9; + } + else + { + cycles_per_loop = 3; + } + + + big_loops = us / (INT_MAX/ + (ALT_CPU_FREQ/(cycles_per_loop * 1000000))); + + if (big_loops) + { + for(i=0;i + +#include "sys/alt_errno.h" +#include "sys/alt_warning.h" +#include "priv/alt_file.h" +#include "os/alt_syscall.h" + +#ifdef ALT_USE_DIRECT_DRIVERS + +int ALT_CLOSE (int fildes) +{ + /* Generate a link time warning, should this function ever be called. */ + + ALT_STUB_WARNING(close); + + /* Indicate an error */ + + ALT_ERRNO = ENOSYS; + return -1; +} + +#else /* !ALT_USE_DIRECT_DRIVERS */ + +/* + * close() is called by an application to release a file descriptor. If the + * associated file system/device has a close() callback function registered + * then this called. The file descriptor is then marked as free. + * + * ALT_CLOSE is mapped onto the close() system call in alt_syscall.h + */ + +int ALT_CLOSE (int fildes) +{ + alt_fd* fd; + int rval; + + /* + * A common error case is that when the file descriptor was created, the call + * to open() failed resulting in a negative file descriptor. This is trapped + * below so that we don't try and process an invalid file descriptor. + */ + + fd = (fildes < 0) ? NULL : &alt_fd_list[fildes]; + + if (fd) + { + /* + * If the associated file system/device has a close function, call it so + * that any necessary cleanup code can run. + */ + + rval = (fd->dev->close) ? fd->dev->close(fd) : 0; + + /* Free the file descriptor structure and return. */ + + alt_release_fd (fildes); + if (rval < 0) + { + ALT_ERRNO = -rval; + return -1; + } + return 0; + } + else + { + ALT_ERRNO = EBADFD; + return -1; + } +} + +#endif /* ALT_USE_DIRECT_DRIVERS */ diff --git a/software/qsys_tutorial_mem_bsp/HAL/src/alt_dcache_flush.c b/software/qsys_tutorial_mem_bsp/HAL/src/alt_dcache_flush.c new file mode 100644 index 0000000..7ecc91a --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/HAL/src/alt_dcache_flush.c @@ -0,0 +1,97 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003-2005 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "nios2.h" +#include "system.h" + +#include "alt_types.h" +#include "sys/alt_cache.h" + +/* + * Nios II version 1.2 and newer supports the "flush by address" instruction, in + * addition to the "flush by line" instruction provided by older versions of + * the core. This newer instruction is used by preference when it is + * available. + */ + +#ifdef NIOS2_FLUSHDA_SUPPORTED +#define ALT_FLUSH_DATA(i) __asm__ volatile ("flushda (%0)" :: "r" (i)); +#else +#define ALT_FLUSH_DATA(i) __asm__ volatile ("flushd (%0)" :: "r" (i)); +#endif /* NIOS2_FLUSHDA_SUPPORTED */ + +/* + * alt_dcache_flush() is called to flush the data cache for a memory + * region of length "len" bytes, starting at address "start". + * + * Any dirty lines in the data cache are written back to memory. + */ + +void alt_dcache_flush (void* start, alt_u32 len) +{ +#if NIOS2_DCACHE_SIZE > 0 + + char* i; + char* end; + + /* + * This is the most we would ever need to flush. + * + * SPR 196942, 2006.01.13: The cache flush loop below will use the + * 'flushda' instruction if its available; in that case each line + * must be flushed individually, and thus 'len' cannot be trimmed. + */ + #ifndef NIOS2_FLUSHDA_SUPPORTED + if (len > NIOS2_DCACHE_SIZE) + { + len = NIOS2_DCACHE_SIZE; + } + #endif + + end = ((char*) start) + len; + + for (i = start; i < end; i+= NIOS2_DCACHE_LINE_SIZE) + { + ALT_FLUSH_DATA(i); + } + + /* + * For an unaligned flush request, we've got one more line left. + * Note that this is dependent on NIOS2_DCACHE_LINE_SIZE to be a + * multiple of 2 (which it always is). + */ + + if (((alt_u32) start) & (NIOS2_DCACHE_LINE_SIZE - 1)) + { + ALT_FLUSH_DATA(i); + } + +#endif /* NIOS2_DCACHE_SIZE > 0 */ +} diff --git a/software/qsys_tutorial_mem_bsp/HAL/src/alt_dcache_flush_all.c b/software/qsys_tutorial_mem_bsp/HAL/src/alt_dcache_flush_all.c new file mode 100644 index 0000000..6529231 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/HAL/src/alt_dcache_flush_all.c @@ -0,0 +1,51 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003-2005 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "nios2.h" +#include "system.h" + +#include "alt_types.h" +#include "sys/alt_cache.h" + +/* + * alt_dcache_flush_all() is called to flush the entire data cache. + */ + +void alt_dcache_flush_all (void) +{ +#if NIOS2_DCACHE_SIZE > 0 + char* i; + + for (i = (char*) 0; i < (char*) NIOS2_DCACHE_SIZE; i+= NIOS2_DCACHE_LINE_SIZE) + { + __asm__ volatile ("flushd (%0)" :: "r" (i)); + } +#endif /* NIOS2_DCACHE_SIZE > 0 */ +} diff --git a/software/qsys_tutorial_mem_bsp/HAL/src/alt_dcache_flush_no_writeback.c b/software/qsys_tutorial_mem_bsp/HAL/src/alt_dcache_flush_no_writeback.c new file mode 100644 index 0000000..c65ca7d --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/HAL/src/alt_dcache_flush_no_writeback.c @@ -0,0 +1,88 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2007 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "nios2.h" +#include "system.h" + +#include "alt_types.h" +#include "sys/alt_cache.h" + +/* + * The INITDA instruction was added to Nios II in the 8.0 release. + * + * The INITDA instruction has one of the following possible behaviors + * depending on the processor configuration: + * 1) Flushes a line by address but does NOT write back dirty data. + * Occurs when a data cache is present that supports INITDA. + * The macro NIOS2_INITDA_SUPPORTED is defined in system.h. + * 2) Takes an unimplemented instruction exception. + * Occurs when a data cache is present that doesn't support INITDA. + * 3) Performs no operation + * Occurs when there is no data cache present. + * The macro NIOS2_DCACHE_SIZE is 0 in system.h. + */ + +#define ALT_FLUSH_DATA_NO_WRITEBACK(i) \ + __asm__ volatile ("initda (%0)" :: "r" (i)); + +/* + * alt_dcache_flush_no_writeback() is called to flush the data cache for a + * memory region of length "len" bytes, starting at address "start". + * + * Any dirty lines in the data cache are NOT written back to memory. + * Make sure you really want this behavior. If you aren't 100% sure, + * use the alt_dcache_flush() routine instead. + */ + +void alt_dcache_flush_no_writeback (void* start, alt_u32 len) +{ +#if defined(NIOS2_INITDA_SUPPORTED) + + char* i; + char* end = ((char*) start) + len; + + for (i = start; i < end; i+= NIOS2_DCACHE_LINE_SIZE) + { + ALT_FLUSH_DATA_NO_WRITEBACK(i); + } + + /* + * For an unaligned flush request, we've got one more line left. + * Note that this is dependent on NIOS2_DCACHE_LINE_SIZE to be a + * multiple of 2 (which it always is). + */ + + if (((alt_u32) start) & (NIOS2_DCACHE_LINE_SIZE - 1)) + { + ALT_FLUSH_DATA_NO_WRITEBACK(i); + } + +#endif /* NIOS2_INITDA_SUPPORTED */ +} diff --git a/software/qsys_tutorial_mem_bsp/HAL/src/alt_dev.c b/software/qsys_tutorial_mem_bsp/HAL/src/alt_dev.c new file mode 100644 index 0000000..ebc15e5 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/HAL/src/alt_dev.c @@ -0,0 +1,149 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include +#include +#include +#include + +#include "sys/alt_dev.h" +#include "priv/alt_file.h" + +#include "alt_types.h" + +#include "system.h" + +/* + * This file contains the data constructs used to control access to device and + * filesytems. + */ + +/* + * "alt_fs_list" is the head of a linked list of registered filesystems. It is + * initialised as an empty list. New entries can be added using the + * alt_fs_reg() function. + */ + +ALT_LLIST_HEAD(alt_fs_list); + + +/* + * "alt_dev_list" is the head of a linked list of registered devices. It is + * configured at startup to include a single device, "alt_dev_null". This + * device is discussed below. + */ + +extern alt_dev alt_dev_null; /* forward declaration */ + +alt_llist alt_dev_list = {&alt_dev_null.llist, &alt_dev_null.llist}; + +/* + * alt_dev_null_write() is the implementation of the write() function used + * by the alt_dev_null device. It simple discards all data passed to it, and + * indicates that the data has been successfully transmitted. + */ + +static int alt_dev_null_write (alt_fd* fd, const char* ptr, int len) +{ + return len; +} + +/* + * "alt_dev_null" is used to allow output to be redirected to nowhere. It is + * the only device registered before the call to alt_sys_init(). At startup + * stin, stdout & stderr are all directed towards this device so that library + * calls like printf() will be safe but inefectual. + */ + +alt_dev alt_dev_null = { + { + &alt_dev_list, + &alt_dev_list + }, + "/dev/null", + NULL, /* open */ + NULL, /* close */ + NULL, /* write */ + alt_dev_null_write, /* write */ + NULL, /* lseek */ + NULL, /* fstat */ + NULL /* ioctl */ + }; + +/* + * "alt_fd_list_lock" is a semaphore used to control access to the file + * descriptor list. This is used to ensure that access to the list is thread + * safe. + */ + +ALT_SEM(alt_fd_list_lock) + +/* + * "alt_max_fd" is used to make access to the file descriptor list more + * efficent. It is set to be the value of the highest allocated file + * descriptor. This saves having to search the entire pool of unallocated + * file descriptors when looking for a match. + */ + +alt_32 alt_max_fd = -1; + +/* + * "alt_fd_list" is the file descriptor pool. The first three entries in the + * array are configured as standard in, standard out, and standard error. These + * are all initialised so that accesses are directed to the alt_dev_null + * device. The remaining file descriptors are initialised as unallocated. + * + * The maximum number of file descriptors within the system is specified by the + * user defined macro "ALT_MAX_FD". This is defined in "system.h", which is + * auto-genereated using the projects PTF and STF files. + */ + +alt_fd alt_fd_list[ALT_MAX_FD] = + { + { + &alt_dev_null, /* standard in */ + 0, + 0 + }, + { + &alt_dev_null, /* standard out */ + 0, + 0 + }, + { + &alt_dev_null, /* standard error */ + 0, + 0 + } + /* all other elements are set to zero */ + }; diff --git a/software/qsys_tutorial_mem_bsp/HAL/src/alt_dev_llist_insert.c b/software/qsys_tutorial_mem_bsp/HAL/src/alt_dev_llist_insert.c new file mode 100644 index 0000000..fa7239d --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/HAL/src/alt_dev_llist_insert.c @@ -0,0 +1,59 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "priv/alt_dev_llist.h" +#include "sys/alt_errno.h" + +/* + * + */ + +int alt_dev_llist_insert (alt_dev_llist* dev, alt_llist* list) +{ + /* + * check that the device exists, and that it has a valid name. + */ + + if (!dev || !dev->name) + { + ALT_ERRNO = EINVAL; + return -EINVAL; + } + + /* + * register the device. + */ + + alt_llist_insert(list, &dev->llist); + + return 0; +} diff --git a/software/qsys_tutorial_mem_bsp/HAL/src/alt_dma_rxchan_open.c b/software/qsys_tutorial_mem_bsp/HAL/src/alt_dma_rxchan_open.c new file mode 100644 index 0000000..6ea3b78 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/HAL/src/alt_dma_rxchan_open.c @@ -0,0 +1,63 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_dma.h" +#include "sys/alt_errno.h" +#include "priv/alt_file.h" + +/* + * The list of registered DMA receive channels. + */ + +ALT_LLIST_HEAD(alt_dma_rxchan_list); + +/* + * alt_dma_txchan_open() is used to obtain an "alt_dma_txchan" descriptor for + * a DMA transmit device. The name is the name of the associated physical + * device (e.g. "/dev/dma_0"). + * + * The return value will be NULL on failure, and non-NULL otherwise. + */ + +alt_dma_rxchan alt_dma_rxchan_open (const char* name) +{ + alt_dma_rxchan dev; + + dev = (alt_dma_rxchan) alt_find_dev (name, &alt_dma_rxchan_list); + + if (!dev) + { + ALT_ERRNO = ENODEV; + } + + return dev; +} diff --git a/software/qsys_tutorial_mem_bsp/HAL/src/alt_dma_txchan_open.c b/software/qsys_tutorial_mem_bsp/HAL/src/alt_dma_txchan_open.c new file mode 100644 index 0000000..f41fa81 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/HAL/src/alt_dma_txchan_open.c @@ -0,0 +1,63 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_dma.h" +#include "sys/alt_errno.h" +#include "priv/alt_file.h" + +/* + * The list of registered receive channels. + */ + +ALT_LLIST_HEAD(alt_dma_txchan_list); + +/* + * alt_dma_txchan_open() is used to obtain an "alt_dma_txchan" descriptor for + * a DMA transmit device. The name is the name of the associated physical + * device (e.g. "/dev/dma_0"). + * + * The return value will be NULL on failure, and non-NULL otherwise. + */ + +alt_dma_txchan alt_dma_txchan_open (const char* name) +{ + alt_dma_txchan dev; + + dev = (alt_dma_txchan) alt_find_dev (name, &alt_dma_txchan_list); + + if (!dev) + { + ALT_ERRNO = ENODEV; + } + + return dev; +} diff --git a/software/qsys_tutorial_mem_bsp/HAL/src/alt_do_ctors.c b/software/qsys_tutorial_mem_bsp/HAL/src/alt_do_ctors.c new file mode 100644 index 0000000..ff5a1f7 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/HAL/src/alt_do_ctors.c @@ -0,0 +1,64 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT IT DIRECTLY. * +* * +* Overriding HAL Functions * +* * +* To provide your own implementation of a HAL function, include the file in * +* your Nios II IDE application project. When building the executable, the * +* Nios II IDE finds your function first, and uses it in place of the HAL * +* version. * +* * +******************************************************************************/ + +/* + * + */ + +typedef void (*constructor) (void); +extern constructor __CTOR_LIST__[]; +extern constructor __CTOR_END__[]; + +/* + * Run the C++ static constructors. + */ + +void _do_ctors(void) +{ + constructor* ctor; + + for (ctor = &__CTOR_END__[-1]; ctor >= __CTOR_LIST__; ctor--) + (*ctor) (); +} diff --git a/software/qsys_tutorial_mem_bsp/HAL/src/alt_do_dtors.c b/software/qsys_tutorial_mem_bsp/HAL/src/alt_do_dtors.c new file mode 100644 index 0000000..565c99f --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/HAL/src/alt_do_dtors.c @@ -0,0 +1,64 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT IT DIRECTLY. * +* * +* Overriding HAL Functions * +* * +* To provide your own implementation of a HAL function, include the file in * +* your Nios II IDE application project. When building the executable, the * +* Nios II IDE finds your function first, and uses it in place of the HAL * +* version. * +* * +******************************************************************************/ + +/* + * + */ + +typedef void (*destructor) (void); +extern destructor __DTOR_LIST__[]; +extern destructor __DTOR_END__[]; + +/* + * Run the C++ static destructors. + */ + +void _do_dtors(void) +{ + destructor* dtor; + + for (dtor = &__DTOR_END__[-1]; dtor >= __DTOR_LIST__; dtor--) + (*dtor) (); +} diff --git a/software/qsys_tutorial_mem_bsp/HAL/src/alt_env_lock.c b/software/qsys_tutorial_mem_bsp/HAL/src/alt_env_lock.c new file mode 100644 index 0000000..fc25a0c --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/HAL/src/alt_env_lock.c @@ -0,0 +1,53 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +/* + * These are the empty env lock/unlock stubs required by newlib. These are + * used to make accesses to environment variables thread safe. The default HAL + * configuration is single threaded, so there is nothing to do here. Note that + * this requires that environment variables are never manipulated by an interrupt + * service routine. + */ + +void __env_lock ( struct _reent *_r ) +{ +} + +/* + * + */ + +void __env_unlock ( struct _reent *_r ) +{ +} diff --git a/software/qsys_tutorial_mem_bsp/HAL/src/alt_environ.c b/software/qsys_tutorial_mem_bsp/HAL/src/alt_environ.c new file mode 100644 index 0000000..404efc4 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/HAL/src/alt_environ.c @@ -0,0 +1,42 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "os/alt_syscall.h" + +/* + * These are the environment variables passed to the C code. By default there + * are no variables registered. An application can manipulate this list using + * getenv() and setenv(). + */ + +char *__env[1] = { 0 }; +char **ALT_ENVIRON = __env; diff --git a/software/qsys_tutorial_mem_bsp/HAL/src/alt_errno.c b/software/qsys_tutorial_mem_bsp/HAL/src/alt_errno.c new file mode 100644 index 0000000..1d8368d --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/HAL/src/alt_errno.c @@ -0,0 +1,44 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/* + * This file defines the alt_errno global variable. See comments in + * alt_errno.h for the use of this variable. + */ + + +#include "sys/alt_errno.h" +#include "alt_types.h" + +extern int ALT_WEAK *__errno (void); + +int* (*alt_errno) (void) = __errno; diff --git a/software/qsys_tutorial_mem_bsp/HAL/src/alt_exception_entry.S b/software/qsys_tutorial_mem_bsp/HAL/src/alt_exception_entry.S new file mode 100644 index 0000000..3afab93 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/HAL/src/alt_exception_entry.S @@ -0,0 +1,360 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003-2008 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "system.h" + +/* + * This is the exception entry point code, which saves all the caller saved + * registers and then handles the appropriate exception. It should be pulled + * in using a .globl from all the exception handler routines. This scheme is + * used so that if an interrupt is never registered, then this code will not + * appear in the generated executable, thereby improving code footprint. + * + * If an external interrpt controller (EIC) is present, it will supply an + * interrupt vector address to the processor when an interrupt occurs. For + * The Altera Vectored Interrupt Controller (VIC) driver will establish a + * vector table and the processor will jump directly to the appropriate + * table entry, funnel routine, and then user ISR. This will bypass this code + * in entirety. This code might still be linked into a system with an EIC, + * but would then be used only for non-interrupt exceptions. + */ + + /* + * Explicitly allow the use of r1 (the assembler temporary register) + * within this code. This register is normally reserved for the use of + * the assembler. + */ + .set noat + + /* + * The top and bottom of the exception stack + */ +#ifdef ALT_EXCEPTION_STACK + + .globl __alt_exception_stack_pointer + +#ifdef ALT_STACK_CHECK + + .globl __alt_exception_stack_limit + + /* + * We need to store the value of the stack limit after interrupt somewhere. + */ + .globl alt_exception_old_stack_limit + +#endif +#endif + + .section .exceptions.entry.label, "xa" + + .globl alt_exception + .type alt_exception, @function +alt_exception: + + .section .exceptions.entry, "xa" + +#ifdef ALT_EXCEPTION_STACK + +#ifdef ALT_STACK_CHECK + stw et, %gprel(alt_exception_old_stack_limit)(gp) +#endif + + movhi et, %hiadj(__alt_exception_stack_pointer - 80) + addi et, et, %lo(__alt_exception_stack_pointer - 80) + stw sp, 76(et) + mov sp, et + +#ifdef ALT_STACK_CHECK + movhi et, %hiadj(__alt_exception_stack_limit) + addi et, et, %lo(__alt_exception_stack_limit) + stw et, %gprel(alt_stack_limit_value)(gp) +#endif + +#else + /* + * Process an exception. For all exceptions we must preserve all + * caller saved registers on the stack (See the Nios2 ABI + * documentation for details). + */ + + addi sp, sp, -76 + +#ifdef ALT_STACK_CHECK + + bltu sp, et, .Lstack_overflow + +#endif + +#endif + + stw ra, 0(sp) + + /* + * Leave a gap in the stack frame at 4(sp) for the muldiv handler to + * store zero into. + */ + + stw r1, 8(sp) + stw r2, 12(sp) + stw r3, 16(sp) + stw r4, 20(sp) + stw r5, 24(sp) + stw r6, 28(sp) + stw r7, 32(sp) + + rdctl r5, estatus + + stw r8, 36(sp) + stw r9, 40(sp) + stw r10, 44(sp) + stw r11, 48(sp) + stw r12, 52(sp) + stw r13, 56(sp) + stw r14, 60(sp) + stw r15, 64(sp) + + /* + * ea-4 contains the address of the instruction being executed + * when the exception occured. For interrupt exceptions, we will + * will be re-issue the isntruction. Store it in 72(sp) + */ + stw r5, 68(sp) /* estatus */ + addi r15, ea, -4 /* instruction that caused exception */ + stw r15, 72(sp) + + /* + * The interrupt testing code (.exceptions.irqtest) will be + * linked here. If the Internal Interrupt Controller (IIC) is + * present (an EIC is not present), the presense of an interrupt + * is determined by examining CPU control registers or an interrupt + * custom instruction, if present. + * + * If the IIC is used and an interrupt is active, the code linked + * here will call the HAL IRQ handler (alt_irq_handler()) which + * successively calls registered interrupt handler(s) until no + * interrupts remain pending. It then jumps to .exceptions.exit. If + * there is no interrupt then it continues to .exception.notirq, below. + */ + + .section .exceptions.notirq, "xa" + + /* + * Prepare to service unimplemtned instructions or traps, + * each of which is optionally inked into section .exceptions.soft, + * which will preceed .exceptions.unknown below. + * + * Unlike interrupts, we want to skip the exception-causing instructon + * upon completion, so we write ea (address of instruction *after* + * the one where the exception occured) into 72(sp). The actual + * instruction that caused the exception is written in r2, which these + * handlers will utilize. + */ + stw ea, 72(sp) /* Don't re-issue */ + ldw r2, -4(ea) /* Instruction that caused exception */ + + /* + * Other exception handling code, if enabled, will be linked here. + * This includes unimplemted (multiply/divide) instruction support + * (a BSP generaton option), and a trap handler (that would typically + * be augmented with user-specific code). These are not linked in by + * default. + */ + + /* + * In the context of linker sections, "unknown" are all exceptions + * not handled by the built-in handlers above (interupt, and trap or + * unimplemented instruction decoding, if enabled). + * + * Advanced exception types can be serviced by registering a handler. + * To do so, enable the "Enable Instruction-related Exception API" HAL + * BSP setting. If this setting is disabled, this handler code will + * either break (if the debug core is present) or enter an infinite + * loop because we don't how how to handle the exception. + */ + .section .exceptions.unknown +#ifdef ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API + /* + * The C-based HAL routine alt_instruction_exception_entry() will + * attempt to service the exception by calling a user-registered + * exception handler using alt_instruction_exception_register(). + * If no handler was registered it will either break (if the + * debugger is present) or go into an infinite loop since the + * handling behavior is undefined; in that case we will not return here. + */ + + /* Load exception-causing address as first argument (r4) */ + addi r4, ea, -4 + + /* Call the instruction-exception entry */ + call alt_instruction_exception_entry + + /* + * If alt_instruction_exception_entry() returned, the exception was + * serviced by a user-registered routine. Its return code (now in r2) + * indicates whether to re-issue or skip the exception-causing + * instruction + * + * Return code was 0: Skip. The instruction after the exception is + * already stored in 72(sp). + */ + bne r2, r0, .Lexception_exit + + /* + * Otherwise, modify 72(sp) to re-issue the instruction that caused the + * exception. + */ + addi r15, ea, -4 /* instruction that caused exception */ + stw r15, 72(sp) + +#else /* ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API disabled */ + + /* + * We got here because an instruction-related exception occured, but the + * handler API was not compiled in. We do not presume to know how to + * handle it. If the debugger is present, break, otherwise hang. + * + * If you get here then one of the following could have happened: + * + * - An instruction-generated exception occured, and the processor + * does not have the extra exceptions feature enabled, or you + * have not registered a handler using + * alt_instruction_exception_register() + * + * Some examples of instruction-generated exceptions and why they + * might occur: + * + * - Your program could have been compiled for a full-featured + * Nios II core, but it is running on a smaller core, and + * instruction emulation has been disabled by defining + * ALT_NO_INSTRUCTION_EMULATION. + * + * You can work around the problem by re-enabling instruction + * emulation, or you can figure out why your program is being + * compiled for a system other than the one that it is running on. + * + * - Your program has executed a trap instruction, but has not + * implemented a handler for this instruction. + * + * - Your program has executed an illegal instruction (one which is + * not defined in the instruction set). + * + * - Your processor includes an MMU or MPU, and you have enabled it + * before registering an exception handler to service exceptions it + * generates. + * + * The problem could also be hardware related: + * - If your hardware is broken and is generating spurious interrupts + * (a peripheral which negates its interrupt output before its + * interrupt handler has been executed will cause spurious + * interrupts) + */ +#ifdef NIOS2_HAS_DEBUG_STUB + /* + * Either tell the user now (if there is a debugger attached) or go into + * the debug monitor which will loop until a debugger is attached. + */ + break +#else + /* + * If there is no debug stub then a BREAK will probably cause a reboot. + * An infinate loop will probably be more useful. + */ +0: + br 0b +#endif /* NIOS2_HAS_DEBUG_STUB */ + +#endif /* ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API */ + + .section .exceptions.exit.label +.Lexception_exit: + + .section .exceptions.exit, "xa" + + /* + * Restore the saved registers, so that all general purpose registers + * have been restored to their state at the time the interrupt occured. + */ + + ldw r5, 68(sp) + ldw ea, 72(sp) /* This becomes the PC once eret is executed */ + ldw ra, 0(sp) + + wrctl estatus, r5 + + ldw r1, 8(sp) + ldw r2, 12(sp) + ldw r3, 16(sp) + ldw r4, 20(sp) + ldw r5, 24(sp) + ldw r6, 28(sp) + ldw r7, 32(sp) + +#ifdef ALT_EXCEPTION_STACK +#ifdef ALT_STACK_CHECK + ldw et, %gprel(alt_exception_old_stack_limit)(gp) +#endif +#endif + + ldw r8, 36(sp) + ldw r9, 40(sp) + ldw r10, 44(sp) + ldw r11, 48(sp) + ldw r12, 52(sp) + ldw r13, 56(sp) + ldw r14, 60(sp) + ldw r15, 64(sp) + +#ifdef ALT_EXCEPTION_STACK + +#ifdef ALT_STACK_CHECK + stw et, %gprel(alt_stack_limit_value)(gp) + stw zero, %gprel(alt_exception_old_stack_limit)(gp) +#endif + + ldw sp, 76(sp) + +#else + addi sp, sp, 76 + +#endif + + /* + * Return to the interrupted instruction. + */ + + eret + +#ifdef ALT_STACK_CHECK + +.Lstack_overflow: + break 3 + +#endif + diff --git a/software/qsys_tutorial_mem_bsp/HAL/src/alt_exception_muldiv.S b/software/qsys_tutorial_mem_bsp/HAL/src/alt_exception_muldiv.S new file mode 100644 index 0000000..55617a6 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/HAL/src/alt_exception_muldiv.S @@ -0,0 +1,583 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003-2005 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + + /* + * This is the software multiply/divide handler for Nios2. + */ + + /* + * Provide a label which can be used to pull this file in. + */ + + .section .exceptions.start + .globl alt_exception_muldiv +alt_exception_muldiv: + + /* + * Pull in the entry/exit code. + */ + .globl alt_exception + + + .section .exceptions.soft, "xa" + + + /* INSTRUCTION EMULATION + * --------------------- + * + * Nios II processors generate exceptions for unimplemented instructions. + * The routines below emulate these instructions. Depending on the + * processor core, the only instructions that might need to be emulated + * are div, divu, mul, muli, mulxss, mulxsu, and mulxuu. + * + * The emulations match the instructions, except for the following + * limitations: + * + * 1) The emulation routines do not emulate the use of the exception + * temporary register (et) as a source operand because the exception + * handler already has modified it. + * + * 2) The routines do not emulate the use of the stack pointer (sp) or the + * exception return address register (ea) as a destination because + * modifying these registers crashes the exception handler or the + * interrupted routine. + * + * 3) To save code size, the routines do not emulate the use of the + * breakpoint registers (ba and bt) as operands. + * + * Detailed Design + * --------------- + * + * The emulation routines expect the contents of integer registers r0-r31 + * to be on the stack at addresses sp, 4(sp), 8(sp), ... 124(sp). The + * routines retrieve source operands from the stack and modify the + * destination register's value on the stack prior to the end of the + * exception handler. Then all registers except the destination register + * are restored to their previous values. + * + * The instruction that causes the exception is found at address -4(ea). + * The instruction's OP and OPX fields identify the operation to be + * performed. + * + * One instruction, muli, is an I-type instruction that is identified by + * an OP field of 0x24. + * + * muli AAAAA,BBBBB,IIIIIIIIIIIIIIII,-0x24- + * 27 22 6 0 <-- LSB of field + * + * The remaining emulated instructions are R-type and have an OP field + * of 0x3a. Their OPX fields identify them. + * + * R-type AAAAA,BBBBB,CCCCC,XXXXXX,NNNNN,-0x3a- + * 27 22 17 11 6 0 <-- LSB of field + * + * + */ + + + /* + * Split the instruction into its fields. We need 4*A, 4*B, and 4*C as + * offsets to the stack pointer for access to the stored register values. + */ + /* r2 = AAAAA,BBBBB,IIIIIIIIIIIIIIII,PPPPPP */ + roli r3, r2, 7 /* r3 = BBB,IIIIIIIIIIIIIIII,PPPPPP,AAAAA,BB */ + roli r4, r3, 3 /* r4 = IIIIIIIIIIIIIIII,PPPPPP,AAAAA,BBBBB */ + roli r6, r4, 2 /* r6 = IIIIIIIIIIIIII,PPPPPP,AAAAA,BBBBB,II */ + srai r4, r4, 16 /* r4 = (sign-extended) IMM16 */ + xori r6, r6, 0x42 /* r6 = CCC,XXXXXX,NNNNN,PPPPPP,AAAAA,bBBBB,cC */ + roli r7, r6, 5 /* r7 = XXXX,NNNNN,PPPPPP,AAAAA,bBBBB,cCCCC,XX */ + andi r5, r2, 0x3f /* r5 = 00000000000000000000000000,PPPPPP */ + xori r3, r3, 0x40 + andi r3, r3, 0x7c /* r3 = 0000000000000000000000000,aAAAA,00 */ + andi r6, r6, 0x7c /* r6 = 0000000000000000000000000,bBBBB,00 */ + andi r7, r7, 0x7c /* r7 = 0000000000000000000000000,cCCCC,00 */ + + /* Now either + * r5 = OP + * r3 = 4*(A^16) + * r4 = IMM16 (sign extended) + * r6 = 4*(B^16) + * r7 = 4*(C^16) + * or + * r5 = OP + */ + + + /* + * Save everything on the stack to make it easy for the emulation routines + * to retrieve the source register operands. The exception entry code has + * already saved some of this so we don't need to do it all again. + */ + + addi sp, sp, -60 + stw zero, 64(sp) /* Save zero on stack to avoid special case for r0. */ + /* Register at and r2-r15 have already been saved. */ + + stw r16, 0(sp) + stw r17, 4(sp) + stw r18, 8(sp) + stw r19, 12(sp) + stw r20, 16(sp) + stw r21, 20(sp) + stw r22, 24(sp) + stw r23, 28(sp) + /* et @ 32 - Has already been changed.*/ + /* bt @ 36 - Usually isn't an operand. */ + stw gp, 40(sp) + stw sp, 44(sp) + stw fp, 48(sp) + /* ea @ 52 - Don't bother to save - it's already been changed */ + /* ba @ 56 - Breakpoint register usually isn't an operand */ + /* ra @ 60 - Has already been saved */ + + + /* + * Prepare for either multiplication or division loop. + * They both loop 32 times. + */ + movi r14, 32 + + + /* + * Get the operands. + * + * It is necessary to check for muli because it uses an I-type instruction + * format, while the other instructions are have an R-type format. + */ + add r3, r3, sp /* r3 = address of A-operand. */ + ldw r3, 0(r3) /* r3 = A-operand. */ + movi r15, 0x24 /* muli opcode (I-type instruction format) */ + beq r5, r15, .Lmul_immed /* muli doesn't use the B register as a source */ + + add r6, r6, sp /* r6 = address of B-operand. */ + ldw r6, 0(r6) /* r6 = B-operand. */ + /* r4 = SSSSSSSSSSSSSSSS,-----IMM16------ */ + /* IMM16 not needed, align OPX portion */ + /* r4 = SSSSSSSSSSSSSSSS,CCCCC,-OPX--,00000 */ + srli r4, r4, 5 /* r4 = 00000,SSSSSSSSSSSSSSSS,CCCCC,-OPX-- */ + andi r4, r4, 0x3f /* r4 = 00000000000000000000000000,-OPX-- */ + + /* Now + * r5 = OP + * r3 = src1 + * r6 = src2 + * r4 = OPX (no longer can be muli) + * r7 = 4*(C^16) + * r14 = loop counter + */ + + /* ILLEGAL-INSTRUCTION EXCEPTION + * ----------------------------- + * + * This code is for Nios II cores that generate exceptions when attempting + * to execute illegal instructions. Nios II cores that support an + * illegal-instruction exception are identified by the presence of the + * macro definition NIOS2_HAS_ILLEGAL_INSTRUCTION_EXCEPTION in system.h . + * + * Remember that illegal instructions are different than unimplemented + * instructions. Illegal instructions are instruction encodings that + * have not been defined by the Nios II ISA. Unimplemented instructions + * are legal instructions that must be emulated by some Nios II cores. + * + * If we get here, all instructions except multiplies and divides + * are illegal. + * + * This code assumes that OP is not muli (because muli was tested above). + * All other multiplies and divides are legal. Anything else is illegal. + */ + + movi r8, 0x3a /* OP for R-type mul* and div* */ + bne r5, r8, .Lnot_muldiv + + /* r15 already is 0x24 */ /* OPX of divu */ + beq r4, r15, .Ldivide + + movi r15,0x27 /* OPX of mul */ + beq r4, r15, .Lmultiply + + movi r15,0x07 /* OPX of mulxuu */ + beq r4, r15, .Lmultiply + + movi r15,0x17 /* OPX of mulxsu */ + beq r4, r15, .Lmultiply + + movi r15,0x1f /* OPX of mulxss */ + beq r4, r15, .Lmultiply + + movi r15,0x25 /* OPX of div */ + bne r4, r15, .Lnot_muldiv + + + /* DIVISION + * + * Divide an unsigned dividend by an unsigned divisor using + * a shift-and-subtract algorithm. The example below shows + * 43 div 7 = 6 for 8-bit integers. This classic algorithm uses a + * single register to store both the dividend and the quotient, + * allowing both values to be shifted with a single instruction. + * + * remainder dividend:quotient + * --------- ----------------- + * initialize 00000000 00101011: + * shift 00000000 0101011:_ + * remainder >= divisor? no 00000000 0101011:0 + * shift 00000000 101011:0_ + * remainder >= divisor? no 00000000 101011:00 + * shift 00000001 01011:00_ + * remainder >= divisor? no 00000001 01011:000 + * shift 00000010 1011:000_ + * remainder >= divisor? no 00000010 1011:0000 + * shift 00000101 011:0000_ + * remainder >= divisor? no 00000101 011:00000 + * shift 00001010 11:00000_ + * remainder >= divisor? yes 00001010 11:000001 + * remainder -= divisor - 00000111 + * ---------- + * 00000011 11:000001 + * shift 00000111 1:000001_ + * remainder >= divisor? yes 00000111 1:0000011 + * remainder -= divisor - 00000111 + * ---------- + * 00000000 1:0000011 + * shift 00000001 :0000011_ + * remainder >= divisor? no 00000001 :00000110 + * + * The quotient is 00000110. + */ + +.Ldivide: + /* + * Prepare for division by assuming the result + * is unsigned, and storing its "sign" as 0. + */ + movi r17, 0 + + + /* Which division opcode? */ + xori r15, r4, 0x25 /* OPX of div */ + bne r15, zero, .Lunsigned_division + + + /* + * OPX is div. Determine and store the sign of the quotient. + * Then take the absolute value of both operands. + */ + xor r17, r3, r6 /* MSB contains sign of quotient */ + bge r3, zero, 0f + sub r3, zero, r3 /* -r3 */ +0: + bge r6, zero, 0f + sub r6, zero, r6 /* -r6 */ +0: + + +.Lunsigned_division: + /* Initialize the unsigned-division loop. */ + movi r13, 0 /* remainder = 0 */ + + /* Now + * r3 = dividend : quotient + * r4 = 0x25 for div, 0x24 for divu + * r6 = divisor + * r13 = remainder + * r14 = loop counter (already initialized to 32) + * r17 = MSB contains sign of quotient + */ + + + /* + * for (count = 32; count > 0; --count) + * { + */ +.Ldivide_loop: + + /* + * Division: + * + * (remainder:dividend:quotient) <<= 1; + */ + slli r13, r13, 1 + cmplt r15, r3, zero /* r15 = MSB of r3 */ + or r13, r13, r15 + slli r3, r3, 1 + + + /* + * if (remainder >= divisor) + * { + * set LSB of quotient + * remainder -= divisor; + * } + */ + bltu r13, r6, .Ldiv_skip + ori r3, r3, 1 + sub r13, r13, r6 +.Ldiv_skip: + + /* + * } + */ + subi r14, r14, 1 + bne r14, zero, .Ldivide_loop + + mov r9, r3 + + + /* Now + * r9 = quotient + * r4 = 0x25 for div, 0x24 for divu + * r7 = 4*(C^16) + * r17 = MSB contains sign of quotient + */ + + + /* + * Conditionally negate signed quotient. If quotient is unsigned, + * the sign already is initialized to 0. + */ + bge r17, zero, .Lstore_result + sub r9, zero, r9 /* -r9 */ + + br .Lstore_result + + + + + /* MULTIPLICATION + * + * A "product" is the number that one gets by summing a "multiplicand" + * several times. The "multiplier" specifies the number of copies of the + * multiplicand that are summed. + * + * Actual multiplication algorithms don't use repeated addition, however. + * Shift-and-add algorithms get the same answer as repeated addition, and + * they are faster. To compute the lower half of a product (pppp below) + * one shifts the product left before adding in each of the partial products + * (a * mmmm) through (d * mmmm). + * + * To compute the upper half of a product (PPPP below), one adds in the + * partial products (d * mmmm) through (a * mmmm), each time following the + * add by a right shift of the product. + * + * mmmm + * * abcd + * ------ + * #### = d * mmmm + * #### = c * mmmm + * #### = b * mmmm + * #### = a * mmmm + * -------- + * PPPPpppp + * + * The example above shows 4 partial products. Computing actual Nios II + * products requires 32 partials. + * + * It is possible to compute the result of mulxsu from the result of mulxuu + * because the only difference between the results of these two opcodes is + * the value of the partial product associated with the sign bit of rA. + * + * mulxsu = mulxuu - ((rA < 0) ? rB : 0); + * + * It is possible to compute the result of mulxss from the result of mulxsu + * because the only difference between the results of these two opcodes is + * the value of the partial product associated with the sign bit of rB. + * + * mulxss = mulxsu - ((rB < 0) ? rA : 0); + * + */ + +.Lmul_immed: + /* Opcode is muli. Change it into mul for remainder of algorithm. */ + mov r7, r6 /* Field B is dest register, not field C. */ + mov r6, r4 /* Field IMM16 is src2, not field B. */ + movi r4, 0x27 /* OPX of mul is 0x27 */ + +.Lmultiply: + /* Initialize the multiplication loop. */ + movi r9, 0 /* mul_product = 0 */ + movi r10, 0 /* mulxuu_product = 0 */ + mov r11, r6 /* save original multiplier for mulxsu and mulxss */ + mov r12, r6 /* mulxuu_multiplier (will be shifted) */ + movi r16, 1 /* used to create "rori B,A,1" from "ror B,A,r16" */ + + /* Now + * r3 = multiplicand + * r6 = mul_multiplier + * r7 = 4 * dest_register (used later as offset to sp) + * r9 = mul_product + * r10 = mulxuu_product + * r11 = original multiplier + * r12 = mulxuu_multiplier + * r14 = loop counter (already initialized) + * r15 = temp + * r16 = 1 + */ + + + /* + * for (count = 32; count > 0; --count) + * { + */ +.Lmultiply_loop: + + /* + * mul_product <<= 1; + * lsb = multiplier & 1; + */ + slli r9, r9, 1 + andi r15, r12, 1 + + /* + * if (lsb == 1) + * { + * mulxuu_product += multiplicand; + * } + */ + beq r15, zero, .Lmulx_skip + add r10, r10, r3 + cmpltu r15, r10, r3 /* Save the carry from the MSB of mulxuu_product. */ + ror r15, r15, r16 /* r15 = 0x80000000 on carry, or else 0x00000000 */ +.Lmulx_skip: + + /* + * if (MSB of mul_multiplier == 1) + * { + * mul_product += multiplicand; + * } + */ + bge r6, zero, .Lmul_skip + add r9, r9, r3 +.Lmul_skip: + + /* + * mulxuu_product >>= 1; logical shift + * mul_multiplier <<= 1; done with MSB + * mulx_multiplier >>= 1; done with LSB + */ + srli r10, r10, 1 + or r10, r10, r15 /* OR in the saved carry bit. */ + slli r6, r6, 1 + srli r12, r12, 1 + + + /* + * } + */ + subi r14, r14, 1 + bne r14, zero, .Lmultiply_loop + + + /* + * Multiply emulation loop done. + */ + + /* Now + * r3 = multiplicand + * r4 = OPX + * r7 = 4 * dest_register (used later as offset to sp) + * r9 = mul_product + * r10 = mulxuu_product + * r11 = original multiplier + * r15 = temp + */ + + + /* + * Select/compute the result based on OPX. + */ + + + /* OPX == mul? Then store. */ + xori r15, r4, 0x27 + beq r15, zero, .Lstore_result + + /* It's one of the mulx.. opcodes. Move over the result. */ + mov r9, r10 + + /* OPX == mulxuu? Then store. */ + xori r15, r4, 0x07 + beq r15, zero, .Lstore_result + + /* Compute mulxsu + * + * mulxsu = mulxuu - ((rA < 0) ? rB : 0); + */ + bge r3, zero, .Lmulxsu_skip + sub r9, r9, r11 +.Lmulxsu_skip: + + /* OPX == mulxsu? Then store. */ + xori r15, r4, 0x17 + beq r15, zero, .Lstore_result + + /* Compute mulxss + * + * mulxss = mulxsu - ((rB < 0) ? rA : 0); + */ + bge r11, zero, .Lmulxss_skip + sub r9, r9, r3 +.Lmulxss_skip: + /* At this point, assume that OPX is mulxss, so store */ + + +.Lstore_result: + add r7, r7, sp + stw r9, 0(r7) + + ldw r16, 0(sp) + ldw r17, 4(sp) + ldw r18, 8(sp) + ldw r19, 12(sp) + ldw r20, 16(sp) + ldw r21, 20(sp) + ldw r22, 24(sp) + ldw r23, 28(sp) + + /* bt @ 32 - Breakpoint register usually isn't an operand. */ + /* et @ 36 - Don't corrupt et. */ + /* gp @ 40 - Don't corrupt gp. */ + /* sp @ 44 - Don't corrupt sp. */ + ldw fp, 48(sp) + /* ea @ 52 - Don't corrupt ea. */ + /* ba @ 56 - Breakpoint register usually isn't an operand. */ + + addi sp, sp, 60 + + br .Lexception_exit + + +.Lnot_muldiv: + + addi sp, sp, 60 + + + .section .exceptions.exit.label +.Lexception_exit: + diff --git a/software/qsys_tutorial_mem_bsp/HAL/src/alt_exception_trap.S b/software/qsys_tutorial_mem_bsp/HAL/src/alt_exception_trap.S new file mode 100644 index 0000000..60a3d40 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/HAL/src/alt_exception_trap.S @@ -0,0 +1,81 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003-2005 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + + /* + * This is the trap exception handler for Nios2. + */ + + /* + * Provide a label which can be used to pull this file in. + */ + + .section .exceptions.start + .globl alt_exception_trap +alt_exception_trap: + + /* + * Pull in the entry/exit code. + */ + .globl alt_exception + + .section .exceptions.soft, "xa" + +.Ltrap_handler: + + /* + * Did a trap instruction cause the exception? + * + * The instruction which the exception occurred on has been loaded + * into r2 by code in alt_exception_entry.S + * + */ + + movhi r3,0x003b /* upper half of trap opcode */ + ori r3,r3,0x683a /* lower half of trap opcode */ + bne r2,r3,.Lnot_trap + + /* + * There is no trap handler defined here, and so executing a trap + * instruction causes a software break. If you provide a trap handler, + * then you must replace the break instruction below with your handler. + * Your handler must preserve ea and the usual callee saved registers. + */ + + break + + br .Lexception_exit + +.Lnot_trap: + + + .section .exceptions.exit.label +.Lexception_exit: + + diff --git a/software/qsys_tutorial_mem_bsp/HAL/src/alt_execve.c b/software/qsys_tutorial_mem_bsp/HAL/src/alt_execve.c new file mode 100644 index 0000000..27b99cf --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/HAL/src/alt_execve.c @@ -0,0 +1,55 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_errno.h" +#include "sys/alt_warning.h" +#include "os/alt_syscall.h" + +/* + * execve() is used by newlib to launch new processes. This is unsupported in + * the HAL environment. However a "do-nothing" implementation is still + * provied for newlib compatability. + * + * ALT_EXECVE is mapped onto the execve() system call in alt_syscall.h + */ + +int ALT_EXECVE (char *name, char ** argv, char** env) +{ + /* Generate a link time warning, should this function ever be called. */ + + ALT_STUB_WARNING(execve); + + /* Indicate an error */ + + ALT_ERRNO = ENOSYS; + return -1; +} diff --git a/software/qsys_tutorial_mem_bsp/HAL/src/alt_exit.c b/software/qsys_tutorial_mem_bsp/HAL/src/alt_exit.c new file mode 100644 index 0000000..971b35e --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/HAL/src/alt_exit.c @@ -0,0 +1,71 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_irq.h" +#include "sys/alt_sim.h" +#include "os/alt_hooks.h" +#include "os/alt_syscall.h" + +#include "alt_types.h" +#include "sys/alt_log_printf.h" +/* + * _exit() is called by exit() in order to terminate the current process. + * Typically this is called when main() completes. It should never return. + * Since there is nowhere to go once this process completes, this + * implementation simply blocks forever. + * + * Note that interrupts are not disabled so that execution outside of this + * thread is allowed to continue. + * + * ALT_EXIT is mapped onto the _exit() system call in alt_syscall.h + */ + +void ALT_EXIT (int exit_code) +{ + /* ALT_LOG - please see HAL/inc/alt_log_printf.h for details */ + ALT_LOG_PRINT_BOOT("[alt_exit.c] Entering _exit() function.\r\n"); + ALT_LOG_PRINT_BOOT("[alt_exit.c] Exit code from main was %d.\r\n",exit_code); + /* Stop all other threads */ + + ALT_LOG_PRINT_BOOT("[alt_exit.c] Calling ALT_OS_STOP().\r\n"); + ALT_OS_STOP(); + + /* Provide notification to the simulator that we've stopped */ + + ALT_LOG_PRINT_BOOT("[alt_exit.c] Calling ALT_SIM_HALT().\r\n"); + ALT_SIM_HALT(exit_code); + + /* spin forever, since there's no where to go back to */ + + ALT_LOG_PRINT_BOOT("[alt_exit.c] Spinning forever.\r\n"); + while (1); +} diff --git a/software/qsys_tutorial_mem_bsp/HAL/src/alt_fcntl.c b/software/qsys_tutorial_mem_bsp/HAL/src/alt_fcntl.c new file mode 100644 index 0000000..69c1544 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/HAL/src/alt_fcntl.c @@ -0,0 +1,101 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include + +#include +#include + +#include "sys/alt_errno.h" +#include "priv/alt_file.h" +#include "alt_types.h" +#include "os/alt_syscall.h" + +#define ALT_FCNTL_FLAGS_MASK ((alt_u32) (O_APPEND | O_NONBLOCK)) + +/* + * fcntl() is a limited implementation of the standard fcntl() system call. + * It can be used to change the state of the flags associated with an open + * file descriptor. Normally these flags are set during the call to + * open(). It is anticipated that the main use of this function will be to + * change the state of a device from blocking to non-blocking (where this is + * supported). + * + * The input argument "fd" is the file descriptor to be manipulated. "cmd" + * is the command to execute. This can be either F_GETFL (return the + * current value of the flags) or F_SETFL (set the value of the flags). + * + * If "cmd" is F_SETFL then the argument "arg" is the new value of flags, + * otherwise "arg" is ignored. Only the flags: O_APPEND and O_NONBLOCK + * can be updated by a call to fcntl(). All other flags remain + * unchanged. + * + * ALT_FCNTL is mapped onto the fcntl() system call in alt_syscall.h + */ + +int ALT_FCNTL (int file, int cmd, ...) +{ + alt_fd* fd; + long flags; + va_list argp; + + /* + * A common error case is that when the file descriptor was created, the call + * to open() failed resulting in a negative file descriptor. This is trapped + * below so that we don't try and process an invalid file descriptor. + */ + + fd = (file < 0) ? NULL : &alt_fd_list[file]; + + if (fd) + { + switch (cmd) + { + case F_GETFL: + return fd->fd_flags & ~((alt_u32) ALT_FD_FLAGS_MASK); + case F_SETFL: + va_start(argp, cmd); + flags = va_arg(argp, long); + fd->fd_flags &= ~ALT_FCNTL_FLAGS_MASK; + fd->fd_flags |= (flags & ALT_FCNTL_FLAGS_MASK); + va_end(argp); + return 0; + default: + ALT_ERRNO = EINVAL; + return -1; + } + } + + ALT_ERRNO = EBADFD; + return -1; +} diff --git a/software/qsys_tutorial_mem_bsp/HAL/src/alt_fd_lock.c b/software/qsys_tutorial_mem_bsp/HAL/src/alt_fd_lock.c new file mode 100644 index 0000000..0e2a85d --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/HAL/src/alt_fd_lock.c @@ -0,0 +1,75 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +#include "priv/alt_file.h" + +/* + * alt_fd_lock() is called as a consequence of an ioctl call to gain exclusive + * access to a device, i.e.: + * + * ioctl (fd, TIOCEXCL, NULL); + * + * If there are no other open file descriptors which reference the same + * device, then alt_fd_lock() will grant the lock. Further calls to open() + * for this device will fail until the lock is released. + * + * This is done by calling close() for this file descriptor, or by calling: + * + * ioctl (fd, TIOCNXCL, NULL); + * + * The return value is zero for success, or negative in the case of failure. + */ + +int alt_fd_lock (alt_fd* fd) +{ + int i; + int rc = 0; + + ALT_SEM_PEND(alt_fd_list_lock, 0); + + for (i = 0; i < alt_max_fd; i++) + { + if ((&alt_fd_list[i] != fd) && (alt_fd_list[i].dev == fd->dev)) + { + rc = -EACCES; + goto alt_fd_lock_exit; + } + } + fd->fd_flags |= ALT_FD_EXCL; + + alt_fd_lock_exit: + + ALT_SEM_POST(alt_fd_list_lock); + return rc; +} diff --git a/software/qsys_tutorial_mem_bsp/HAL/src/alt_fd_unlock.c b/software/qsys_tutorial_mem_bsp/HAL/src/alt_fd_unlock.c new file mode 100644 index 0000000..fb700dc --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/HAL/src/alt_fd_unlock.c @@ -0,0 +1,56 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +#include "priv/alt_file.h" + +/* + * alt_fd_unlock() is the inverse of alt_fd_lock(). It is called as a + * consequence of a TIOCNXCL ioctl request, e.g: + * + * ioctl (fd, TIOCNXCL, NULL); + * + * It enables multiple file descriptors to exist for the same device. This + * is normally the case, but it may have been disabled by a previous call to + * alt_fd_lock(). + * + * Return zero on sucess, and a negative value on failure. + * + * The current implementation always succeeds. + */ + +int alt_fd_unlock (alt_fd* fd) +{ + fd->fd_flags &= ~ALT_FD_EXCL; + return 0; +} diff --git a/software/qsys_tutorial_mem_bsp/HAL/src/alt_find_dev.c b/software/qsys_tutorial_mem_bsp/HAL/src/alt_find_dev.c new file mode 100644 index 0000000..37aefa4 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/HAL/src/alt_find_dev.c @@ -0,0 +1,88 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include +#include + +#include "sys/alt_dev.h" +#include "priv/alt_file.h" + +#include "alt_types.h" + +/* + * alt_find_dev() is used by open() in order to locate a previously registered + * device with the name "name". The input argument "llist" is a pointer to the + * head of the device list to search. + * + * The return value is a pointer to the matching device, or NULL if there is + * no match. + * + * "name" must be an exact match for the devices registered name for a match to + * be found. + */ + +alt_dev* alt_find_dev(const char* name, alt_llist* llist) +{ + alt_dev* next = (alt_dev*) llist->next; + alt_32 len; + + len = strlen(name) + 1; + + /* + * Check each list entry in turn, until a match is found, or we reach the + * end of the list (i.e. next winds up pointing back to the list head). + */ + + while (next != (alt_dev*) llist) + { + + /* + * memcmp() is used here rather than strcmp() in order to reduce the size + * of the executable. + */ + + if (!memcmp (next->name, name, len)) + { + /* match found */ + + return next; + } + next = (alt_dev*) next->llist.next; + } + + /* No match found */ + + return NULL; +} + + diff --git a/software/qsys_tutorial_mem_bsp/HAL/src/alt_find_file.c b/software/qsys_tutorial_mem_bsp/HAL/src/alt_find_file.c new file mode 100644 index 0000000..2d97ec2 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/HAL/src/alt_find_file.c @@ -0,0 +1,89 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include +#include + +#include "sys/alt_dev.h" +#include "priv/alt_file.h" + +#include "alt_types.h" + +/* + * alt_find_file() is used by open() in order to locate a previously registered + * filesystem that owns that mount point that contains the file named "name". + * + * The return value is a pointer to the matching filesystem, or NULL if there is + * no match. + * + * A match is considered to have been found if the filesystem name followed by + * either '/' or '\0' is the prefix of the filename. For example the filename: + * "/myfilesystem/junk.txt" would match: "/myfilesystem", but not: "/myfile". + */ + +alt_dev* alt_find_file (const char* name) +{ + alt_dev* next = (alt_dev*) alt_fs_list.next; + + alt_32 len; + + /* + * Check each list entry in turn, until a match is found, or we reach the + * end of the list (i.e. next winds up pointing back to the list head). + */ + + while (next != (alt_dev*) &alt_fs_list) + { + len = strlen(next->name); + + if (next->name[len-1] == '/') + { + len -= 1; + } + + if (((name[len] == '/') || (name[len] == '\0')) && + !memcmp (next->name, name, len)) + { + /* match found */ + + return next; + } + next = (alt_dev*) next->llist.next; + } + + /* No match found */ + + return NULL; +} + + diff --git a/software/qsys_tutorial_mem_bsp/HAL/src/alt_flash_dev.c b/software/qsys_tutorial_mem_bsp/HAL/src/alt_flash_dev.c new file mode 100644 index 0000000..213f721 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/HAL/src/alt_flash_dev.c @@ -0,0 +1,69 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* Alt_flash.c - Functions to register a flash device to the "generic" flash * +* interface * +* * +* Author PRR * +* * +******************************************************************************/ + +#include +#include "sys/alt_llist.h" +#include "sys/alt_flash_dev.h" +#include "priv/alt_file.h" + +ALT_LLIST_HEAD(alt_flash_dev_list); + +alt_flash_fd* alt_flash_open_dev(const char* name) +{ + alt_flash_dev* dev = (alt_flash_dev*)alt_find_dev(name, &alt_flash_dev_list); + + if ((dev) && dev->open) + { + return dev->open(dev, name); + } + + return dev; +} + +void alt_flash_close_dev(alt_flash_fd* fd) +{ + if (fd && fd->close) + { + fd->close(fd); + } + return; +} + diff --git a/software/qsys_tutorial_mem_bsp/HAL/src/alt_fork.c b/software/qsys_tutorial_mem_bsp/HAL/src/alt_fork.c new file mode 100644 index 0000000..ce74df0 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/HAL/src/alt_fork.c @@ -0,0 +1,57 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_warning.h" +#include "sys/alt_errno.h" +#include "os/alt_syscall.h" + +/* + * The fork() system call is used by newlib to create a duplicate copy of the + * curent process. This is unsupported in the HAL environment. However a + * "do-nothing" implementation is still provied for newlib compatability. + * + * ALT_FORK is mapped onto the fork() system call in alt_syscall.h + */ + +int ALT_FORK (void) +{ + /* Generate a link time warning, should this function ever be called. */ + + ALT_STUB_WARNING(fork); + + /* Indicate an error */ + + ALT_ERRNO = ENOSYS; + return -1; +} + + diff --git a/software/qsys_tutorial_mem_bsp/HAL/src/alt_fs_reg.c b/software/qsys_tutorial_mem_bsp/HAL/src/alt_fs_reg.c new file mode 100644 index 0000000..13437a1 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/HAL/src/alt_fs_reg.c @@ -0,0 +1,75 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +#include "sys/alt_dev.h" +#include "priv/alt_file.h" + +/* + * The alt_fs_reg() function is used to register a file system. Once registered + * a device can be accessed using the standard posix calls: open(), read(), + * write() etc. + * + * System behaviour is undefined in the event that a file system is registered + * with a name that conflicts with an existing device or file system. + * + * alt_fs_reg() is not thread safe in the sense that there should be no other + * thread using the file system list at the time that alt_dev_reg() is called. In + * practice this means that alt_fs_reg() should only be called while operating + * in a single threaded mode. The expectation is that it will only be called + * by the file system initilisation functions invoked by alt_sys_init(), which in + * turn should only be called by the single threaded C startup code. + * + * A return value of zero indicates success. A negative return value indicates + * failure. + */ + +int alt_fs_reg (alt_dev* dev) +{ + /* + * check that the device has a name. + */ + + if (!dev->name) + { + return -ENODEV; + } + + /* + * register the file system. + */ + + alt_llist_insert(&alt_fs_list, &dev->llist); + + return 0; +} diff --git a/software/qsys_tutorial_mem_bsp/HAL/src/alt_fstat.c b/software/qsys_tutorial_mem_bsp/HAL/src/alt_fstat.c new file mode 100644 index 0000000..af5d527 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/HAL/src/alt_fstat.c @@ -0,0 +1,128 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include + +#include "sys/alt_dev.h" +#include "sys/alt_warning.h" +#include "sys/alt_errno.h" +#include "priv/alt_file.h" +#include "os/alt_syscall.h" + +/* + * The fstat() system call is used to obtain information about the capabilities + * of an open file descriptor. By default file descriptors are marked as + * being character devices. If a device or file system wishes to advertise + * alternative capabilities then they can register an fstat() function within + * their associated alt_dev structure. This will be called to fill in the + * entries in the imput "st" structure. + * + * This function is provided for compatability with newlib. + * + * ALT_FSTAT is mapped onto the fstat() system call in alt_syscall.h + */ + +#ifdef ALT_USE_DIRECT_DRIVERS + +#include "system.h" + +/* + * Provide minimal version that just describes all file descriptors + * as character devices for provided stdio devices. + */ +int ALT_FSTAT (int file, struct stat *st) +{ + switch (file) { +#ifdef ALT_STDIN_PRESENT + case 0: /* stdin file descriptor */ +#endif /* ALT_STDIN_PRESENT */ +#ifdef ALT_STDOUT_PRESENT + case 1: /* stdout file descriptor */ +#endif /* ALT_STDOUT_PRESENT */ +#ifdef ALT_STDERR_PRESENT + case 2: /* stderr file descriptor */ +#endif /* ALT_STDERR_PRESENT */ + st->st_mode = _IFCHR; + return 0; + default: + return -1; + } + +#if !defined(ALT_STDIN_PRESENT) && !defined(ALT_STDOUT_PRESENT) && !defined(ALT_STDERR_PRESENT) + /* Generate a link time warning, should this function ever be called. */ + ALT_STUB_WARNING(fstat); +#endif +} + +#else /* !ALT_USE_DIRECT_DRIVERS */ + +int ALT_FSTAT (int file, struct stat *st) +{ + alt_fd* fd; + + /* + * A common error case is that when the file descriptor was created, the call + * to open() failed resulting in a negative file descriptor. This is trapped + * below so that we don't try and process an invalid file descriptor. + */ + + fd = (file < 0) ? NULL : &alt_fd_list[file]; + + if (fd) + { + /* Call the drivers fstat() function to fill out the "st" structure. */ + + if (fd->dev->fstat) + { + return fd->dev->fstat(fd, st); + } + + /* + * If no function is provided, mark the fd as belonging to a character + * device. + */ + + else + { + st->st_mode = _IFCHR; + return 0; + } + } + else + { + ALT_ERRNO = EBADFD; + return -1; + } +} + +#endif /* ALT_USE_DIRECT_DRIVERS */ diff --git a/software/qsys_tutorial_mem_bsp/HAL/src/alt_get_fd.c b/software/qsys_tutorial_mem_bsp/HAL/src/alt_get_fd.c new file mode 100644 index 0000000..db17b2c --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/HAL/src/alt_get_fd.c @@ -0,0 +1,105 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include +#include + +#include "sys/alt_dev.h" +#include "priv/alt_file.h" + +#include "alt_types.h" + +#include "system.h" + +/* + * alt_get_fd() is called to allocate a new file descriptor from the file + * descriptor pool. If a file descriptor is succesfully allocated, it is + * configured to refer to device "dev". + * + * The return value is the index of the file descriptor structure (i.e. + * the offset of the file descriptor within the file descriptor array). A + * negative value indicates failure. + */ + +int alt_get_fd (alt_dev* dev) +{ + alt_32 i; + int rc = -EMFILE; + + /* + * Take the alt_fd_list_lock semaphore in order to avoid races when + * accessing the file descriptor pool. + */ + + ALT_SEM_PEND(alt_fd_list_lock, 0); + + /* + * Search through the list of file descriptors, and allocate the first + * free descriptor that's found. + * + * If a free descriptor is found, then the value of "alt_max_fd" is + * updated accordingly. "alt_max_fd" is a 'highwater mark' which + * indicates the highest file descriptor ever allocated. This is used to + * improve efficency when searching the file descriptor list, and + * therefore reduce contention on the alt_fd_list_lock semaphore. + */ + + for (i = 0; i < ALT_MAX_FD; i++) + { + if (!alt_fd_list[i].dev) + { + alt_fd_list[i].dev = dev; + if (i > alt_max_fd) + { + alt_max_fd = i; + } + rc = i; + goto alt_get_fd_exit; + } + } + + alt_get_fd_exit: + + /* + * Release the alt_fd_list_lock semaphore now that we are done with the + * file descriptor pool. + */ + + ALT_SEM_POST(alt_fd_list_lock); + + return rc; +} + + + + diff --git a/software/qsys_tutorial_mem_bsp/HAL/src/alt_getchar.c b/software/qsys_tutorial_mem_bsp/HAL/src/alt_getchar.c new file mode 100644 index 0000000..a8f50d5 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/HAL/src/alt_getchar.c @@ -0,0 +1,61 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +#ifdef ALT_USE_DIRECT_DRIVERS +#include "system.h" +#include "sys/alt_driver.h" +#include "sys/alt_stdio.h" +#include "priv/alt_file.h" +#include "unistd.h" +#endif + +/* + * Uses the ALT_DRIVER_READ() macro to call directly to driver if available. + * Otherwise, uses newlib provided getchar() routine. + */ +int +alt_getchar(void) +{ +#ifdef ALT_USE_DIRECT_DRIVERS + ALT_DRIVER_READ_EXTERNS(ALT_STDIN_DEV); + char c; + + if (ALT_DRIVER_READ(ALT_STDIN_DEV, &c, 1, alt_fd_list[STDIN_FILENO].fd_flags) <= 0) { + return -1; + } + return c; +#else + return getchar(); +#endif +} diff --git a/software/qsys_tutorial_mem_bsp/HAL/src/alt_getpid.c b/software/qsys_tutorial_mem_bsp/HAL/src/alt_getpid.c new file mode 100644 index 0000000..2228c7e --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/HAL/src/alt_getpid.c @@ -0,0 +1,47 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "os/alt_syscall.h" + +/* + * The getpid() system call is used by newlib to obtain the current process + * id. Since there is only ever a single process in the HAL environment, + * this just returns a constant. + * + * ALT_GETPID is mapped onto the getpid() system call in alt_syscall.h + */ + +int ALT_GETPID (void) +{ + return 0; +} + diff --git a/software/qsys_tutorial_mem_bsp/HAL/src/alt_gettod.c b/software/qsys_tutorial_mem_bsp/HAL/src/alt_gettod.c new file mode 100644 index 0000000..ed86cba --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/HAL/src/alt_gettod.c @@ -0,0 +1,125 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include +#include + +#include "sys/alt_alarm.h" +#include "alt_types.h" +#include "os/alt_syscall.h" + +/* + * Macro defining the number of micoseconds in a second. + */ + +#define ALT_US (1000000) + +/* + * "alt_timezone" and "alt_resettime" are the values of the the reset time and + * time zone set through the last call to settimeofday(). By default they are + * zero initialised. + */ + +struct timezone alt_timezone = {0, 0}; +struct timeval alt_resettime = {0, 0}; + +/* + * gettimeofday() can be called to obtain a time structure which indicates the + * current "wall clock" time. This is calculated using the elapsed number of + * system clock ticks, and the value of "alt_resettime" and "alt_timezone" set + * through the last call to settimeofday(). + * + * Warning: if this function is called concurrently with a call to + * settimeofday(), the value returned by gettimeofday() will be unreliable. + * + * ALT_GETTIMEOFDAY is mapped onto the gettimeofday() system call in + * alt_syscall.h + */ + + +#if defined (__GNUC__) && (__GNUC__ >= 4) +int ALT_GETTIMEOFDAY (struct timeval *ptimeval, void *ptimezone_vptr) +{ + struct timezone *ptimezone = (struct timezone*)ptimezone_vptr; +#else +int ALT_GETTIMEOFDAY (struct timeval *ptimeval, struct timezone *ptimezone) +{ +#endif + + alt_u32 nticks = alt_nticks (); + alt_u32 tick_rate = alt_ticks_per_second (); + + /* + * Check to see if the system clock is running. This is indicated by a + * non-zero system clock rate. If the system clock is not running, an error + * is generated and the contents of "ptimeval" and "ptimezone" are not + * updated. + */ + + if (tick_rate) + { + ptimeval->tv_sec = alt_resettime.tv_sec + nticks/tick_rate; + ptimeval->tv_usec = alt_resettime.tv_usec + + (alt_u32)(((alt_u64)nticks*(ALT_US/tick_rate))%ALT_US); + + while(ptimeval->tv_usec < 0) { + if (ptimeval->tv_sec <= 0) + { + ptimeval->tv_sec = 0; + ptimeval->tv_usec = 0; + break; + } + else + { + ptimeval->tv_sec--; + ptimeval->tv_usec += ALT_US; + } + } + + while(ptimeval->tv_usec >= ALT_US) { + ptimeval->tv_sec++; + ptimeval->tv_usec -= ALT_US; + } + + if (ptimezone) + { + ptimezone->tz_minuteswest = alt_timezone.tz_minuteswest; + ptimezone->tz_dsttime = alt_timezone.tz_dsttime; + } + + return 0; + } + + return -ENOTSUP; +} + diff --git a/software/qsys_tutorial_mem_bsp/HAL/src/alt_gmon.c b/software/qsys_tutorial_mem_bsp/HAL/src/alt_gmon.c new file mode 100644 index 0000000..6add9f1 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/HAL/src/alt_gmon.c @@ -0,0 +1,272 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003-2005 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include +#include +#include + +#include "priv/nios2_gmon_data.h" + +#include "sys/alt_irq.h" +#include "sys/alt_alarm.h" + + +/* Macros */ + +/* How large should the bins be which we use to generate the histogram */ +#define PCSAMPLE_BYTES_PER_BUCKET 32 + +#define NIOS2_READ_EA(dest) __asm__ ("mov %0, ea" : "=r" (dest)) + +/* The compiler inserts calls to mcount() at the start of + * every function call. The structure mcount_fn_arc records t + * he return address of the function called (in from_pc) + * and the return address of the mcount function + * (in self_pc). The number of times this arc is executed is + * recorded in the field count. + */ +struct mcount_fn_arc +{ + struct mcount_fn_arc * next; + void * from_pc; + unsigned int count; +}; + +/* We need to maintain a list of pointers to the heads of each adjacency + * list so that we can find them when writing out the gmon.out file. Since + * we don't know at the start of program execution how many functions will + * be called we use a list structure to do this. + */ +struct mcount_fn_entry +{ + struct mcount_fn_entry * next; + void * self_pc; + struct mcount_fn_arc * arc_head; +}; + +/* function prototypes */ + +void __mcount_record(void * self_pc, void * from_pc, struct mcount_fn_entry * fn_entry, struct mcount_fn_entry * * fn_head) __attribute__ ((no_instrument_function)); + +static __inline__ void * mcount_allocate(unsigned int size) __attribute__ ((no_instrument_function)); +static int nios2_pcsample_init(void) __attribute__ ((no_instrument_function)); +static alt_u32 nios2_pcsample(void* alarm) __attribute__ ((no_instrument_function)); + +/* global variables */ + +/* stext and etext are defined in the linker script */ +extern char stext[]; +extern char etext[]; + +/* Is the PC sampling stuff enabled yet? */ +static int pcsample_need_init = 1; + +#define HASH_BUCKETS 64 /* Must be a power of 2 */ + +/* This points to the list of adjacency list pointers. */ +struct mcount_fn_entry * __mcount_fn_head[HASH_BUCKETS]; + +/* pointer to the in-memory buffer containing the histogram */ +static unsigned short* s_pcsamples = 0; + +/* the address of the start and end of text section */ +static const unsigned int s_low_pc = (unsigned int)stext; +static const unsigned int s_high_pc = (unsigned int)etext; + +/* the alarm structure to register for pc sampling */ +static alt_alarm s_nios2_pcsample_alarm; + +unsigned int alt_gmon_data[GMON_DATA_SIZE] = +{ + 0x6e6f6d67, /* "gmon" */ + GMON_DATA_SIZE, + 0, + (unsigned int)stext, + (unsigned int)etext, + PCSAMPLE_BYTES_PER_BUCKET, + 0, + (unsigned int)__mcount_fn_head, + (unsigned int)(__mcount_fn_head + HASH_BUCKETS) +}; + +/* This holds the current slab of memory we're allocating out of */ +static char * mcount_slab_ptr = 0; +static int mcount_slab_size = 0; + +#define MCOUNT_SLAB_INCREMENT 1020 + + +/* + * We can't use malloc to allocate memory because that's too complicated, and + * can't be called at interrupt time. Use the lower level allocator instead + * because that's interrupt safe (and because we never free anything). + * + * For speed, we allocate a block of data at once. + */ +static __inline__ void * mcount_allocate(unsigned int size) +{ + void * data; + + if (size > mcount_slab_size) + { + mcount_slab_ptr = sbrk(MCOUNT_SLAB_INCREMENT); + mcount_slab_size = MCOUNT_SLAB_INCREMENT; + } + + data = mcount_slab_ptr; + mcount_slab_ptr += size; + mcount_slab_size -= size; + + return data; +} + + +/* + * Add the arc with the values of frompc and topc given to the graph. + * This function might be called at interrupt time so must be able to + * cope with reentrancy. + * + * The fast case, where we have already allocated a function arc, has been + * handled by the assmebler code. + */ +void __mcount_record(void * self_pc, void * from_pc, struct mcount_fn_entry * fn_entry, struct mcount_fn_entry * * fn_head) +{ + alt_irq_context context; + struct mcount_fn_arc * arc_entry; + + /* Keep trying to start up the PC sampler until it is running. + * (It can't start until the timer is going). + */ + if (pcsample_need_init) + { + pcsample_need_init = 0; + pcsample_need_init = nios2_pcsample_init(); + } + + /* + * We must disable interrupts around the allocation and the list update to + * prevent corruption if the instrumented function is re-entrant. + * + * It's safe for the code above to be stepping through the chain and be + * interrupted by this code modifying it - there is an edge case which will + * leave two copies of the same arc on the list (both with count=1), but + * this is dealt with on the host. + */ + context = alt_irq_disable_all(); + + if (fn_entry == NULL) + { + /* Add it to the list of functions we must output later. */ + fn_entry = (struct mcount_fn_entry *)mcount_allocate(sizeof(struct mcount_fn_entry)); + + fn_entry->self_pc = self_pc; + fn_entry->arc_head = NULL; + + fn_entry->next = *fn_head; + *fn_head = fn_entry; + } + + /* We will need a new list entry - if there was a list entry before + * then the assembler code would have handled it. */ + arc_entry = (struct mcount_fn_arc *)mcount_allocate(sizeof(struct mcount_fn_arc)); + + arc_entry->from_pc = from_pc; + arc_entry->count = 1; + + arc_entry->next = fn_entry->arc_head; + fn_entry->arc_head = arc_entry; + + alt_irq_enable_all(context); +} + + +/* + * nios2_pcsample_init starts profiling. + * It is called the first time mcount is called, and on subsequent calls to + * mcount until it returns zero. It initializes the pc histogram and turns on + * timer driven pc sampling. + */ +static int nios2_pcsample_init(void) +{ + unsigned int pcsamples_size; + + /* We sample the PC every tick */ + unsigned int prof_rate = alt_ticks_per_second(); + if (prof_rate == 0) + return 1; + + /* allocate the histogram buffer s_pcsamples */ + pcsamples_size = (s_high_pc - s_low_pc)/PCSAMPLE_BYTES_PER_BUCKET; + s_pcsamples = (unsigned short*)sbrk(pcsamples_size * sizeof(unsigned short)); + + if (s_pcsamples != 0) + { + /* initialize the buffer to zero */ + memset(s_pcsamples, 0, pcsamples_size * sizeof(unsigned short)); + + alt_gmon_data[GMON_DATA_PROFILE_DATA] = (int)s_pcsamples; + alt_gmon_data[GMON_DATA_PROFILE_RATE] = prof_rate; + + /* Sample every tick (it's cheap) */ + alt_alarm_start(&s_nios2_pcsample_alarm, 1, nios2_pcsample, 0); + } + + return 0; +} + + +/* + * Sample the PC value and store it in the histogram + */ +static alt_u32 nios2_pcsample(void* context) +{ + unsigned int pc; + unsigned int bucket; + + /* read the exception return address - this will be + * inaccurate if there are nested interrupts but we + * assume that this is rare and the inaccuracy will + * not be great */ + NIOS2_READ_EA(pc); + + /* + * If we're within the profilable range then increment the relevant + * bucket in the histogram + */ + if (pc >= s_low_pc && pc < s_high_pc && s_pcsamples != 0) + { + bucket = (pc - s_low_pc)/PCSAMPLE_BYTES_PER_BUCKET; + s_pcsamples[bucket]++; + } + + /* Sample every tick */ + return 1; +} + diff --git a/software/qsys_tutorial_mem_bsp/HAL/src/alt_icache_flush.c b/software/qsys_tutorial_mem_bsp/HAL/src/alt_icache_flush.c new file mode 100644 index 0000000..4b706ed --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/HAL/src/alt_icache_flush.c @@ -0,0 +1,84 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "nios2.h" +#include "system.h" + +#include "alt_types.h" +#include "sys/alt_cache.h" + +/* + * alt_icache_flush() is called to flush the instruction cache for a memory + * region of length "len" bytes, starting at address "start". + */ + +void alt_icache_flush (void* start, alt_u32 len) +{ +#if NIOS2_ICACHE_SIZE > 0 + + char* i; + char* end; + + /* + * This is the most we would ever need to flush. + */ + + if (len > NIOS2_ICACHE_SIZE) + { + len = NIOS2_ICACHE_SIZE; + } + + end = ((char*) start) + len; + + for (i = start; i < end; i+= NIOS2_ICACHE_LINE_SIZE) + { + __asm__ volatile ("flushi %0" :: "r" (i)); + } + + /* + * For an unaligned flush request, we've got one more line left. + * Note that this is dependent on NIOS2_ICACHE_LINE_SIZE to be a + * multiple of 2 (which it always is). + */ + + if (((alt_u32) start) & (NIOS2_ICACHE_LINE_SIZE - 1)) + { + __asm__ volatile ("flushi %0" :: "r" (i)); + } + + /* + * Having flushed the cache, flush any stale instructions in the + * pipeline + */ + + __asm__ volatile ("flushp"); + +#endif /* NIOS2_ICACHE_SIZE > 0 */ +} diff --git a/software/qsys_tutorial_mem_bsp/HAL/src/alt_icache_flush_all.c b/software/qsys_tutorial_mem_bsp/HAL/src/alt_icache_flush_all.c new file mode 100644 index 0000000..5088552 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/HAL/src/alt_icache_flush_all.c @@ -0,0 +1,46 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "nios2.h" +#include "system.h" + +#include "alt_types.h" +#include "sys/alt_cache.h" + +/* + * alt_icache_flush_all() is called to flush the entire instruction cache. + */ + +void alt_icache_flush_all (void) +{ +#if NIOS2_ICACHE_SIZE > 0 + alt_icache_flush (0, NIOS2_ICACHE_SIZE); +#endif +} diff --git a/software/qsys_tutorial_mem_bsp/HAL/src/alt_iic.c b/software/qsys_tutorial_mem_bsp/HAL/src/alt_iic.c new file mode 100644 index 0000000..1db5afa --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/HAL/src/alt_iic.c @@ -0,0 +1,106 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2009 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ +#include "system.h" + +/* + * This file implements the HAL Enhanced interrupt API for Nios II processors + * with an internal interrupt controller (IIC). For most routines, this serves + * as a wrapper layer over the legacy interrupt API (which must be used with + * the IIC only). + * + * Use of the enhanced API is recommended so that application and device + * drivers are compatible with a Nios II system configured with an external + * interrupt controller (EIC), or IIC. This will afford maximum portability. + * + * If an EIC is present, the EIC device driver must provide these routines, + * because their operation will be specific to that EIC type. + */ +#ifndef NIOS2_EIC_PRESENT +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT + +#include "sys/alt_irq.h" +#include "priv/alt_iic_isr_register.h" +#include "priv/alt_legacy_irq.h" + +/** @Function Description: This function registers an interrupt handler. + * If the function is succesful, then the requested interrupt will be enabled upon + * return. Registering a NULL handler will disable the interrupt. + * @API Type: External + * @param ic_id Ignored. + * @param irq IRQ number + * @return 0 if successful, else error (-1) + */ +int alt_ic_isr_register(alt_u32 ic_id, alt_u32 irq, alt_isr_func isr, + void *isr_context, void *flags) +{ + return alt_iic_isr_register(ic_id, irq, isr, isr_context, flags); +} + +/** @Function Description: This function enables a single interrupt. + * @API Type: External + * @param ic_id Ignored. + * @param irq IRQ number + * @return 0 if successful, else error (-1) + */ +int alt_ic_irq_enable (alt_u32 ic_id, alt_u32 irq) +{ + return alt_irq_enable(irq); +} + +/** @Function Description: This function disables a single interrupt. + * @API Type: External + * @param ic_id Ignored. + * @param irq IRQ number + * @return 0 if successful, else error (-1) + */ +int alt_ic_irq_disable(alt_u32 ic_id, alt_u32 irq) +{ + return alt_irq_disable(irq); +} + +/** @Function Description: This function to determine if corresponding + * interrupt is enabled. + * @API Type: External + * @param ic_id Ignored. + * @param irq IRQ number + * @return Zero if corresponding interrupt is disabled and + * non-zero otherwise. + */ +alt_u32 alt_ic_irq_enabled(alt_u32 ic_id, alt_u32 irq) +{ + alt_u32 irq_enabled; + + NIOS2_READ_IENABLE(irq_enabled); + + return (irq_enabled & (1 << irq)) ? 1: 0; +} + +#endif /* ALT_ENHANCED_INTERRUPT_API_PRESENT */ +#endif /* NIOS2_EIC_PRESENT */ diff --git a/software/qsys_tutorial_mem_bsp/HAL/src/alt_iic_isr_register.c b/software/qsys_tutorial_mem_bsp/HAL/src/alt_iic_isr_register.c new file mode 100644 index 0000000..b104395 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/HAL/src/alt_iic_isr_register.c @@ -0,0 +1,104 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2009 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ +#include +#include "system.h" + +/* + * Provides an interrupt registry mechanism for the any CPUs internal interrupt + * controller (IIC) when the enhanced interrupt API is active. + */ +#ifndef ALT_CPU_EIC_PRESENT +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT + +#include "alt_types.h" +#include "sys/alt_irq.h" +#include "priv/alt_iic_isr_register.h" + +/* + * The header, alt_irq_entry.h, contains the exception entry point, and is + * provided by the processor component. It is included here, so that the code + * will be added to the executable only if alt_irq_register() is present, i.e. + * if no interrupts are registered - there's no need to provide any + * interrupt handling. + */ + +#include "sys/alt_irq_entry.h" + +/* + * The header, alt_irq_table.h contains a table describing which function + * handles each interrupt. + */ + +#include "priv/alt_irq_table.h" + +/** @Function Description: This function registers an interrupt handler. + * If the function is succesful, then the requested interrupt will be enabled + * upon return. Registering a NULL handler will disable the interrupt. + * + * @API Type: External + * @param ic_id Interrupt controller ID + * @param irq IRQ ID number + * @param isr Pointer to interrupt service routine + * @param isr_context Opaque pointer passed to ISR + * @param flags + * @return 0 if successful, else error (-1) + */ +int alt_iic_isr_register(alt_u32 ic_id, alt_u32 irq, alt_isr_func isr, + void *isr_context, void *flags) +{ + int rc = -EINVAL; + int id = irq; /* IRQ interpreted as the interrupt ID. */ + alt_irq_context status; + + if (id < ALT_NIRQ) + { + /* + * interrupts are disabled while the handler tables are updated to ensure + * that an interrupt doesn't occur while the tables are in an inconsistant + * state. + */ + + status = alt_irq_disable_all(); + + alt_irq[id].handler = isr; + alt_irq[id].context = isr_context; + + rc = (isr) ? alt_ic_irq_enable(ic_id, id) : alt_ic_irq_disable(ic_id, id); + + alt_irq_enable_all(status); + } + + return rc; +} + +#endif /* ALT_ENHANCED_INTERRUPT_API_PRESENT */ +#endif /* ALT_CPU_EIC_PRESENT */ diff --git a/software/qsys_tutorial_mem_bsp/HAL/src/alt_instruction_exception_entry.c b/software/qsys_tutorial_mem_bsp/HAL/src/alt_instruction_exception_entry.c new file mode 100644 index 0000000..f4f52fc --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/HAL/src/alt_instruction_exception_entry.c @@ -0,0 +1,203 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2008 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ +#include "sys/alt_exceptions.h" +#include "nios2.h" +#include "alt_types.h" +#include "system.h" + +/* + * This file implements support for calling user-registered handlers for + * instruction-generated exceptions. This handler could also be reached + * in the event of a spurious interrupt. + * + * The handler code is optionally enabled through the "Enable + * Instruction-related Exception API" HAL BSP setting, which will + * define the macro below. + */ +#ifdef ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API + +/* Function pointer to exception callback routine */ +alt_exception_result (*alt_instruction_exception_handler) + (alt_exception_cause, alt_u32, alt_u32) = 0x0; + +/* Link entry routine to .exceptions section */ +int alt_instruction_exception_entry (alt_u32 exception_pc) + __attribute__ ((section (".exceptions"))); + +/* + * This is the entry point for instruction-generated exceptions handling. + * This routine will be called by alt_exceptions_entry.S, after it determines + * that an exception could not be handled by handlers that preceed that + * of instruction-generated exceptions (such as interrupts). + * + * For this to function properly, you must register an exception handler + * using alt_instruction_exception_register(). This routine will call + * that handler if it has been registered. Absent a handler, it will + * break break or hang as discussed below. + */ +int alt_instruction_exception_entry (alt_u32 exception_pc) +{ + alt_u32 cause, badaddr; + +/* + * If the processor hardware has the optional EXCEPTIONS & BADADDR registers, + * read them and pass their content to the user handler. These are always + * present if the MMU or MPU is enabled, and optionally for other advanced + * exception types via the "Extra exceptions information" setting in the + * processor (hardware) configuration. + * + * If these registers are not present, the cause field will be set to + * NIOS2_EXCEPTION_CAUSE_NOT_PRESENT. Your handling routine should + * check the validity of the cause argument before proceeding. + */ +#ifdef NIOS2_HAS_EXTRA_EXCEPTION_INFO + /* Get exception cause & "badaddr" */ + NIOS2_READ_EXCEPTION(cause); + cause = ( (cause & NIOS2_EXCEPTION_REG_CAUSE_MASK) >> + NIOS2_EXCEPTION_REG_CAUSE_OFST ); + + NIOS2_READ_BADADDR(badaddr); +#else + cause = NIOS2_EXCEPTION_CAUSE_NOT_PRESENT; + badaddr = 0; +#endif /* NIOS2_HAS_EXTRA_EXCEPTION_INFO */ + + if(alt_instruction_exception_handler) { + /* + * Call handler. Its return value indicates whether the exception-causing + * instruction should be re-issued. The code that called us, + * alt_eceptions_entry.S, will look at this value and adjust the ea + * register as necessary + */ + return alt_instruction_exception_handler(cause, exception_pc, badaddr); + } + /* + * We got here because an instruction-generated exception occured, but no + * handler is present. We do not presume to know how to handle it. If the + * debugger is present, break, otherwise hang. + * + * If you've reached here in the debugger, consider examining the + * EXCEPTIONS register cause bit-field, which was read into the 'cause' + * variable above, and compare it against the exceptions-type enumeration + * in alt_exceptions.h. This register is availabe if the MMU or MPU is + * present, or if the "Extra exceptions information" hardware option is + * selected. + * + * If you get here then one of the following could have happened: + * + * - An instruction-generated exception occured, and the processor + * does not have the extra exceptions feature enabled, or you + * have not registered a handler using + * alt_instruction_exception_register() + * + * Some examples of instruction-generated exceptions and why they + * might occur: + * + * - Your program could have been compiled for a full-featured + * Nios II core, but it is running on a smaller core, and + * instruction emulation has been disabled by defining + * ALT_NO_INSTRUCTION_EMULATION. + * + * You can work around the problem by re-enabling instruction + * emulation, or you can figure out why your program is being + * compiled for a system other than the one that it is running on. + * + * - Your program has executed a trap instruction, but has not + * implemented a handler for this instruction. + * + * - Your program has executed an illegal instruction (one which is + * not defined in the instruction set). + * + * - Your processor includes an MMU or MPU, and you have enabled it + * before registering an exception handler to service exceptions it + * generates. + * + * The problem could also be hardware related: + * - If your hardware is broken and is generating spurious interrupts + * (a peripheral which negates its interrupt output before its + * interrupt handler has been executed will cause spurious interrupts) + */ + else { +#ifdef NIOS2_HAS_DEBUG_STUB + NIOS2_BREAK(); +#else + while(1) + ; +#endif /* NIOS2_HAS_DEBUG_STUB */ + } + + /* // We should not get here. Remove compiler warning. */ + return NIOS2_EXCEPTION_RETURN_REISSUE_INST; +} + +#endif /* ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API */ + +/* + * This routine indicates whether a particular exception cause will have + * set a valid address into the BADADDR register, which is included + * in the arguments to a user-registered instruction-generated exception + * handler. Many exception types do not set valid contents in BADADDR; + * this is a convenience routine to easily test the validity of that + * argument in your handler. + * + * Note that this routine will return false (0) for cause '12', + * TLB miss. This is because there are four exception types that + * share that cause, two of which do not have a valid BADADDR. You + * must determine BADADDR's validity for these. + * + * Arguments: + * cause: The 5-bit exception cause field of the EXCEPTIONS register, + * shifted to the LSB position. You may pass the 'cause' argument + * in a handler you registered directy to this routine. + * + * Return: 1: BADADDR (bad_addr argument to handler) is valid + * 0: BADADDR is not valid + */ +int alt_exception_cause_generated_bad_addr(alt_exception_cause cause) +{ + switch (cause) { + case NIOS2_EXCEPTION_SUPERVISOR_ONLY_DATA_ADDR: + return 1; + case NIOS2_EXCEPTION_MISALIGNED_DATA_ADDR: + return 1; + case NIOS2_EXCEPTION_MISALIGNED_TARGET_PC: + return 1; + case NIOS2_EXCEPTION_TLB_READ_PERM_VIOLATION: + return 1; + case NIOS2_EXCEPTION_TLB_WRITE_PERM_VIOLATION: + return 1; + case NIOS2_EXCEPTION_MPU_DATA_REGION_VIOLATION: + return 1; + default: + return 0; + } +} diff --git a/software/qsys_tutorial_mem_bsp/HAL/src/alt_instruction_exception_register.c b/software/qsys_tutorial_mem_bsp/HAL/src/alt_instruction_exception_register.c new file mode 100644 index 0000000..b059e1d --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/HAL/src/alt_instruction_exception_register.c @@ -0,0 +1,82 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2008 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ +#include "sys/alt_exceptions.h" +#include "alt_types.h" +#include "system.h" + +/* + * This file implements support for calling user-registered handlers for + * instruction-generated exceptions. + * + * The registry API is optionally enabled through the "Enable + * Instruction-related Exception API" HAL BSP setting, which will + * define the macro below. + */ +#ifdef ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API + +/* + * The header, alt_exception_handler_registry.h contains a struct describing + * the registered exception handler + */ +#include "priv/alt_exception_handler_registry.h" + +/* + * Pull in the exception entry assembly code. This will not be linked in + * unless this object is linked into the executable (i.e. only if + * alt_instruction_exception_register() is called). + */ +__asm__( "\n\t.globl alt_exception" ); + +/* + * alt_instruction_exception_register() is called to register a handler to + * service instruction-generated exceptions that are not handled by the + * default exception handler code (interrupts, and optionally unimplemented + * instructions and traps). + * + * Passing null (0x0) in the handler argument will disable a previously- + * registered handler. + * + * Note that if no handler is registered, exceptions that are not processed + * using the built-in handler (interrupts, and optionally unimplemented + * instructions and traps) are treated as unknown exceptions, resulting + * in either a break or an infinite loop. + */ +void alt_instruction_exception_register ( + alt_exception_result (*exception_handler)( + alt_exception_cause cause, + alt_u32 exception_pc, + alt_u32 bad_addr) ) +{ + alt_instruction_exception_handler = exception_handler; +} + +#endif /* ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API */ diff --git a/software/qsys_tutorial_mem_bsp/HAL/src/alt_io_redirect.c b/software/qsys_tutorial_mem_bsp/HAL/src/alt_io_redirect.c new file mode 100644 index 0000000..8c862f7 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/HAL/src/alt_io_redirect.c @@ -0,0 +1,98 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include +#include +#include + +#include "sys/alt_dev.h" +#include "priv/alt_file.h" + + +/* + * alt_open_fd() is similar to open() in that it is used to obtain a file + * descriptor for the file named "name". The "flags" and "mode" arguments are + * identical to the "flags" and "mode" arguments of open(). + * + * The distinction between the two functions is that the file descriptor + * structure to use is passed in as an argument, rather than allocated from the + * list of free file descriptors. + * + * This is used by alt_io_redirect() to redirect the stdin, stdout and stderr + * file descriptors to point to new devices. + * + * If the device can not be succesfully opened, then the input file descriptor + * remains unchanged. + */ + +static void alt_open_fd(alt_fd* fd, const char* name, int flags, int mode) +{ + int old; + + old = open (name, flags, mode); + + if (old >= 0) + { + fd->dev = alt_fd_list[old].dev; + fd->priv = alt_fd_list[old].priv; + fd->fd_flags = alt_fd_list[old].fd_flags; + + alt_release_fd (old); + } +} + +/* + * alt_io_redirect() is called once the device/filesystem lists have been + * initialised, but before main(). Its function is to redirect standard in, + * standard out and standard error so that they point to the devices selected by + * the user (as defined in system.h). + * + * Prior to the call to this function, io is directed towards /dev/null. If + * i/o can not be redirected to the requested device, for example if the device + * does not exist, then it remains directed at /dev/null. + */ + +void alt_io_redirect(const char* stdout_dev, + const char* stdin_dev, + const char* stderr_dev) +{ + /* Redirect the channels */ + + alt_open_fd (&alt_fd_list[STDOUT_FILENO], stdout_dev, O_WRONLY, 0777); + alt_open_fd (&alt_fd_list[STDIN_FILENO], stdin_dev, O_RDONLY, 0777); + alt_open_fd (&alt_fd_list[STDERR_FILENO], stderr_dev, O_WRONLY, 0777); +} + + + + diff --git a/software/qsys_tutorial_mem_bsp/HAL/src/alt_ioctl.c b/software/qsys_tutorial_mem_bsp/HAL/src/alt_ioctl.c new file mode 100644 index 0000000..f5d7ef1 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/HAL/src/alt_ioctl.c @@ -0,0 +1,170 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +#include "sys/ioctl.h" +#include "sys/alt_errno.h" +#include "sys/alt_warning.h" +#include "priv/alt_file.h" +#include "os/alt_syscall.h" + +/* + * The ioctl() system call is provided so that application code can manipulate + * the i/o capabilities of a device in device specific ways. This is identical + * to the standard posix ioctl() function. + * + * In general this implementation simply vectors ioctl requests to the + * apropriate drivers ioctl function (as registered in the drivers alt_dev + * structure). + * + * However in the case of devices (as oposed to filesystem), the TIOCEXCL and + * TIOCNXCL requests are handled without reference to the driver. These + * requests are used to lock/release a device for exclusive access. + * + * Handling these requests centrally eases the task of device driver + * development. + * + * ALT_IOCTL is mapped onto the ioctl() system call in alt_syscall.h + */ + +#ifdef ALT_USE_DIRECT_DRIVERS + +#include "system.h" +#include "sys/alt_driver.h" + +/* + * Provide minimal version that calls ioctl routine of provided stdio devices. + */ +int ALT_IOCTL (int file, int req, void* arg) +{ +#ifdef ALT_STDIN_PRESENT + ALT_DRIVER_IOCTL_EXTERNS(ALT_STDIN_DEV); +#endif +#ifdef ALT_STDOUT_PRESENT + ALT_DRIVER_IOCTL_EXTERNS(ALT_STDOUT_DEV); +#endif +#ifdef ALT_STDERR_PRESENT + ALT_DRIVER_IOCTL_EXTERNS(ALT_STDERR_DEV); +#endif + +#if !defined(ALT_STDIN_PRESENT) && !defined(ALT_STDOUT_PRESENT) && !defined(ALT_STDERR_PRESENT) + /* Generate a link time warning, should this function ever be called. */ + ALT_STUB_WARNING(ioctl); +#endif + + switch (file) { +#ifdef ALT_STDIN_PRESENT + case 0: /* stdin file descriptor */ + return ALT_DRIVER_IOCTL(ALT_STDIN_DEV, req, arg); +#endif /* ALT_STDIN_PRESENT */ +#ifdef ALT_STDOUT_PRESENT + case 1: /* stdout file descriptor */ + return ALT_DRIVER_IOCTL(ALT_STDOUT_DEV, req, arg); +#endif /* ALT_STDOUT_PRESENT */ +#ifdef ALT_STDERR_PRESENT + case 2: /* stderr file descriptor */ + return ALT_DRIVER_IOCTL(ALT_STDERR_DEV, req, arg); +#endif /* ALT_STDERR_PRESENT */ + default: + ALT_ERRNO = EBADFD; + return -1; + } +} + +#else /* !ALT_USE_DIRECT_DRIVERS */ + +int ALT_IOCTL (int file, int req, void* arg) +{ + alt_fd* fd; + int rc; + + /* + * A common error case is that when the file descriptor was created, the call + * to open() failed resulting in a negative file descriptor. This is trapped + * below so that we don't try and process an invalid file descriptor. + */ + + fd = (file < 0) ? NULL : &alt_fd_list[file]; + + if (fd) + { + + /* + * In the case of device drivers (not file systems) handle the TIOCEXCL + * and TIOCNXCL requests as special cases. + */ + + if (fd->fd_flags & ALT_FD_DEV) + { + if (req == TIOCEXCL) + { + rc = alt_fd_lock (fd); + goto ioctl_done; + } + else if (req == TIOCNXCL) + { + rc = alt_fd_unlock (fd); + goto ioctl_done; + } + } + + /* + * If the driver provides an ioctl() function, call that to handle the + * request, otherwise set the return code to indicate that the request + * could not be processed. + */ + + if (fd->dev->ioctl) + { + rc = fd->dev->ioctl(fd, req, arg); + } + else + { + rc = -ENOTTY; + } + } + else + { + rc = -EBADFD; + } + +ioctl_done: + + if (rc < 0) + { + ALT_ERRNO = -rc; + } + return rc; +} + +#endif /* ALT_USE_DIRECT_DRIVERS */ diff --git a/software/qsys_tutorial_mem_bsp/HAL/src/alt_irq_entry.S b/software/qsys_tutorial_mem_bsp/HAL/src/alt_irq_entry.S new file mode 100644 index 0000000..d3efe7d --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/HAL/src/alt_irq_entry.S @@ -0,0 +1,108 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003-2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "system.h" + +/* + * This is the interrupt exception entry point code, which saves all the + * registers and calls the interrupt handler. It should be pulled in using + * a .globl from alt_irq_register.c. This scheme is used so that if an + * interrupt is never registered, then this code will not appear in the + * generated executable, thereby improving code footprint. + */ + + /* + * Explicitly allow the use of r1 (the assembler temporary register) + * within this code. This register is normally reserved for the use of + * the compiler. + */ + .set noat + + /* + * Pull in the exception handler register save code. + */ + .globl alt_exception + + .globl alt_irq_entry + .section .exceptions.entry.label, "xa" +alt_irq_entry: + + /* + * Section .exceptions.entry is in alt_exception_entry.S + * This saves all the caller saved registers and reads estatus into r5 + */ + + .section .exceptions.irqtest, "xa" + +#ifdef ALT_CI_INTERRUPT_VECTOR_N + /* + * Use the interrupt vector custom instruction if present to accelerate + * this code. + * If the interrupt vector custom instruction returns a negative + * value, there are no interrupts active (estatus.pie is 0 + * or ipending is 0) so assume it is a software exception. + */ + custom ALT_CI_INTERRUPT_VECTOR_N, r4, r0, r0 + blt r4, r0, .Lnot_irq +#else + /* + * Test to see if the exception was a software exception or caused + * by an external interrupt, and vector accordingly. + */ + rdctl r4, ipending + andi r2, r5, 1 + beq r2, zero, .Lnot_irq + beq r4, zero, .Lnot_irq +#endif /* ALT_CI_INTERRUPT_VECTOR_N */ + + .section .exceptions.irqhandler, "xa" + /* + * Now that all necessary registers have been preserved, call + * alt_irq_handler() to process the interrupts. + */ + + call alt_irq_handler + + .section .exceptions.irqreturn, "xa" + + br .Lexception_exit + + .section .exceptions.notirq.label, "xa" + +.Lnot_irq: + + /* + * Section .exceptions.exit is in alt_exception_entry.S + * This restores all the caller saved registers + */ + + .section .exceptions.exit.label +.Lexception_exit: + diff --git a/software/qsys_tutorial_mem_bsp/HAL/src/alt_irq_handler.c b/software/qsys_tutorial_mem_bsp/HAL/src/alt_irq_handler.c new file mode 100644 index 0000000..3253d02 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/HAL/src/alt_irq_handler.c @@ -0,0 +1,169 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2009 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include "system.h" + +/* + * This interrupt handler only works with an internal interrupt controller + * (IIC). Processors with an external interrupt controller (EIC) use an + * implementation provided by an EIC driver. + */ +#ifndef ALT_CPU_EIC_PRESENT + +#include "sys/alt_irq.h" +#include "os/alt_hooks.h" + +#include "alt_types.h" + +/* + * A table describing each interrupt handler. The index into the array is the + * interrupt id associated with the handler. + * + * When an interrupt occurs, the associated handler is called with + * the argument stored in the context member. + */ +struct ALT_IRQ_HANDLER +{ +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT + void (*handler)(void*); +#else + void (*handler)(void*, alt_u32); +#endif + void *context; +} alt_irq[ALT_NIRQ]; + +/* + * alt_irq_handler() is called by the interrupt exception handler in order to + * process any outstanding interrupts. + * + * It is defined here since it is linked in using weak linkage. + * This means that if there is never a call to alt_irq_register() (above) then + * this function will not get linked in to the executable. This is acceptable + * since if no handler is ever registered, then an interrupt can never occur. + * + * If Nios II interrupt vector custom instruction exists, use it to accelerate + * the dispatch of interrupt handlers. The Nios II interrupt vector custom + * instruction is present if the macro ALT_CI_INTERRUPT_VECTOR defined. + */ + +void alt_irq_handler (void) __attribute__ ((section (".exceptions"))); +void alt_irq_handler (void) +{ +#ifdef ALT_CI_INTERRUPT_VECTOR + alt_32 offset; + char* alt_irq_base = (char*)alt_irq; +#else + alt_u32 active; + alt_u32 mask; + alt_u32 i; +#endif /* ALT_CI_INTERRUPT_VECTOR */ + + /* + * Notify the operating system that we are at interrupt level. + */ + + ALT_OS_INT_ENTER(); + +#ifdef ALT_CI_INTERRUPT_VECTOR + /* + * Call the interrupt vector custom instruction using the + * ALT_CI_INTERRUPT_VECTOR macro. + * It returns the offset into the vector table of the lowest-valued pending + * interrupt (corresponds to highest priority) or a negative value if none. + * The custom instruction assumes that each table entry is eight bytes. + */ + while ((offset = ALT_CI_INTERRUPT_VECTOR) >= 0) { + struct ALT_IRQ_HANDLER* handler_entry = + (struct ALT_IRQ_HANDLER*)(alt_irq_base + offset); +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT + handler_entry->handler(handler_entry->context); +#else + handler_entry->handler(handler_entry->context, offset >> 3); +#endif + } +#else /* ALT_CI_INTERRUPT_VECTOR */ + /* + * Obtain from the interrupt controller a bit list of pending interrupts, + * and then process the highest priority interrupt. This process loops, + * loading the active interrupt list on each pass until alt_irq_pending() + * return zero. + * + * The maximum interrupt latency for the highest priority interrupt is + * reduced by finding out which interrupts are pending as late as possible. + * Consider the case where the high priority interupt is asserted during + * the interrupt entry sequence for a lower priority interrupt to see why + * this is the case. + */ + + active = alt_irq_pending (); + + do + { + i = 0; + mask = 1; + + /* + * Test each bit in turn looking for an active interrupt. Once one is + * found, the interrupt handler asigned by a call to alt_irq_register() is + * called to clear the interrupt condition. + */ + + do + { + if (active & mask) + { +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT + alt_irq[i].handler(alt_irq[i].context); +#else + alt_irq[i].handler(alt_irq[i].context, i); +#endif + break; + } + mask <<= 1; + i++; + + } while (1); + + active = alt_irq_pending (); + + } while (active); +#endif /* ALT_CI_INTERRUPT_VECTOR */ + + /* + * Notify the operating system that interrupt processing is complete. + */ + + ALT_OS_INT_EXIT(); +} + +#endif /* ALT_CPU_EIC_PRESENT */ diff --git a/software/qsys_tutorial_mem_bsp/HAL/src/alt_irq_register.c b/software/qsys_tutorial_mem_bsp/HAL/src/alt_irq_register.c new file mode 100644 index 0000000..b5ea474 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/HAL/src/alt_irq_register.c @@ -0,0 +1,102 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2009 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ +#include +#include "system.h" + +/* + * This interrupt registry mechanism works with the Nios II internal interrupt + * controller (IIC) only. Systems with an external interrupt controller (EIC), + * or those with the IIC who are using the enhanced interrupt API will + * utilize the alt_ic_isr_register() routine to register an interrupt. + */ +#ifndef NIOS2_EIC_PRESENT + +#include "sys/alt_irq.h" +#include "priv/alt_legacy_irq.h" +#include "os/alt_hooks.h" + +#include "alt_types.h" + +/* + * The header, alt_irq_entry.h, contains the exception entry point, and is + * provided by the processor component. It is included here, so that the code + * will be added to the executable only if alt_irq_register() is present, i.e. + * if no interrupts are registered - there's no need to provide any + * interrupt handling. + */ + +#include "sys/alt_irq_entry.h" + +/* + * The header, alt_irq_table.h contains a table describing which function + * handles each interrupt. + */ + +#include "priv/alt_irq_table.h" + +/* + * alt_irq_handler() is called to register an interrupt handler. If the + * function is succesful, then the requested interrupt will be enabled upon + * return. Registering a NULL handler will disable the interrupt. + * + * The return value is 0 if the interrupt handler was registered and the + * interrupt was enabled, otherwise it is negative. + */ + +int alt_irq_register (alt_u32 id, + void* context, + alt_isr_func handler) +{ + int rc = -EINVAL; + alt_irq_context status; + + if (id < ALT_NIRQ) + { + /* + * interrupts are disabled while the handler tables are updated to ensure + * that an interrupt doesn't occur while the tables are in an inconsistant + * state. + */ + + status = alt_irq_disable_all (); + + alt_irq[id].handler = handler; + alt_irq[id].context = context; + + rc = (handler) ? alt_irq_enable (id): alt_irq_disable (id); + + alt_irq_enable_all(status); + } + return rc; +} +#endif /* NIOS2_EIC_PRESENT */ + diff --git a/software/qsys_tutorial_mem_bsp/HAL/src/alt_irq_vars.c b/software/qsys_tutorial_mem_bsp/HAL/src/alt_irq_vars.c new file mode 100644 index 0000000..8c0a18d --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/HAL/src/alt_irq_vars.c @@ -0,0 +1,47 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "alt_types.h" + +#include "system.h" + +/* + * These global variables are used to save the current list of enabled + * interrupts. See alt_irq.h for further details. + */ + +volatile alt_u32 alt_irq_active = 0; + +#ifndef ALT_EXCEPTION_STACK + +volatile alt_u32 alt_priority_mask = (alt_u32) -1; + +#endif + diff --git a/software/qsys_tutorial_mem_bsp/HAL/src/alt_isatty.c b/software/qsys_tutorial_mem_bsp/HAL/src/alt_isatty.c new file mode 100644 index 0000000..9276472 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/HAL/src/alt_isatty.c @@ -0,0 +1,125 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include + +#include "sys/alt_dev.h" +#include "sys/alt_errno.h" +#include "sys/alt_warning.h" +#include "priv/alt_file.h" +#include "os/alt_syscall.h" + +#ifdef ALT_USE_DIRECT_DRIVERS + +#include "system.h" + +/* + * Provide minimal version that just describes all file descriptors + * as tty devices for provided stdio devices. + */ +int ALT_ISATTY (int file) +{ + switch (file) { +#ifdef ALT_STDIN_PRESENT + case 0: /* stdin file descriptor */ +#endif /* ALT_STDIN_PRESENT */ +#ifdef ALT_STDOUT_PRESENT + case 1: /* stdout file descriptor */ +#endif /* ALT_STDOUT_PRESENT */ +#ifdef ALT_STDERR_PRESENT + case 2: /* stderr file descriptor */ +#endif /* ALT_STDERR_PRESENT */ + return 1; + default: + return 0; + } + +#if !defined(ALT_STDIN_PRESENT) && !defined(ALT_STDOUT_PRESENT) && !defined(ALT_STDERR_PRESENT) + /* Generate a link time warning, should this function ever be called. */ + ALT_STUB_WARNING(isatty); +#endif +} + +#else /* !ALT_USE_DIRECT_DRIVERS */ +/* + * isatty() can be used to determine whether the input file descriptor "file" + * refers to a terminal device or not. If it is a terminal device then the + * return value is one, otherwise it is zero. + * + * ALT_ISATTY is mapped onto the isatty() system call in alt_syscall.h + */ + +int ALT_ISATTY (int file) +{ + alt_fd* fd; + struct stat stat; + + /* + * A common error case is that when the file descriptor was created, the call + * to open() failed resulting in a negative file descriptor. This is trapped + * below so that we don't try and process an invalid file descriptor. + */ + + fd = (file < 0) ? NULL : &alt_fd_list[file]; + + if (fd) + { + /* + * If a device driver does not provide an fstat() function, then it is + * treated as a terminal device by default. + */ + + if (!fd->dev->fstat) + { + return 1; + } + + /* + * If a driver does provide an implementation of the fstat() function, then + * this is called so that the device can identify itself. + */ + + else + { + fstat (file, &stat); + return (stat.st_mode == _IFCHR) ? 1 : 0; + } + } + else + { + ALT_ERRNO = EBADFD; + return 0; + } +} + +#endif /* ALT_USE_DIRECT_DRIVERS */ diff --git a/software/qsys_tutorial_mem_bsp/HAL/src/alt_kill.c b/software/qsys_tutorial_mem_bsp/HAL/src/alt_kill.c new file mode 100644 index 0000000..42c2e1d --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/HAL/src/alt_kill.c @@ -0,0 +1,121 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include + +#include "sys/alt_errno.h" +#include "os/alt_syscall.h" + + +/* + * kill() is used by newlib in order to send signals to processes. Since there + * is only a single process in the HAL, the only valid values for pid are + * either the current process id, or the broadcast values, i.e. pid must be + * less than or equal to zero. + * + * ALT_KILL is mapped onto the kill() system call in alt_syscall.h + */ + +int ALT_KILL (int pid, int sig) +{ + int status = 0; + + if (pid <= 0) + { + switch (sig) + { + case 0: + + /* The null signal is used to check that a pid is valid. */ + + break; + + case SIGABRT: + case SIGALRM: + case SIGFPE: + case SIGILL: + case SIGKILL: + case SIGPIPE: + case SIGQUIT: + case SIGSEGV: + case SIGTERM: + case SIGUSR1: + case SIGUSR2: + case SIGBUS: + case SIGPOLL: + case SIGPROF: + case SIGSYS: + case SIGTRAP: + case SIGVTALRM: + case SIGXCPU: + case SIGXFSZ: + + /* + * The Posix standard defines the default behaviour for all these signals + * as being eqivalent to a call to _exit(). No mechanism is provided to + * change this behaviour. + */ + + _exit(0); + case SIGCHLD: + case SIGURG: + + /* + * The Posix standard defines these signals to be ignored by default. No + * mechanism is provided to change this behaviour. + */ + + break; + default: + + /* Tried to send an unsupported signal */ + + status = EINVAL; + } + } + + else if (pid > 0) + { + /* Attempted to signal a non-existant process */ + + status = ESRCH; + } + + if (status) + { + ALT_ERRNO = status; + return -1; + } + + return 0; +} diff --git a/software/qsys_tutorial_mem_bsp/HAL/src/alt_link.c b/software/qsys_tutorial_mem_bsp/HAL/src/alt_link.c new file mode 100644 index 0000000..d796c59 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/HAL/src/alt_link.c @@ -0,0 +1,56 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_warning.h" +#include "sys/alt_errno.h" +#include "os/alt_syscall.h" + +/* + * link() is used by newlib to create a new link to an existing file. This is + * unsupported in the HAL environment. However a "do-nothing" implementation + * is still provied for newlib compatability. + * + * ALT_LINK is mapped onto the link() system call in alt_syscall.h + */ + +int ALT_LINK ( char *existing, char *new) +{ + /* Generate a link time warning, should this function ever be called. */ + + ALT_STUB_WARNING(link); + + /* Indicate an error */ + + ALT_ERRNO = ENOSYS; + return -1; +} + diff --git a/software/qsys_tutorial_mem_bsp/HAL/src/alt_load.c b/software/qsys_tutorial_mem_bsp/HAL/src/alt_load.c new file mode 100644 index 0000000..ffab4b9 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/HAL/src/alt_load.c @@ -0,0 +1,88 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004-2005 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_load.h" +#include "sys/alt_cache.h" + +/* + * Linker defined symbols. + */ + +extern void __flash_rwdata_start; +extern void __ram_rwdata_start; +extern void __ram_rwdata_end; +extern void __flash_rodata_start; +extern void __ram_rodata_start; +extern void __ram_rodata_end; +extern void __flash_exceptions_start; +extern void __ram_exceptions_start; +extern void __ram_exceptions_end; + +/* + * alt_load() is called when the code is executing from flash. In this case + * there is no bootloader, so this application is responsible for loading to + * RAM any sections that are required. + */ + +void alt_load (void) +{ + /* + * Copy the .rwdata section. + */ + + alt_load_section (&__flash_rwdata_start, + &__ram_rwdata_start, + &__ram_rwdata_end); + + /* + * Copy the exception handler. + */ + + alt_load_section (&__flash_exceptions_start, + &__ram_exceptions_start, + &__ram_exceptions_end); + + /* + * Copy the .rodata section. + */ + + alt_load_section (&__flash_rodata_start, + &__ram_rodata_start, + &__ram_rodata_end); + + /* + * Now ensure that the caches are in synch. + */ + + alt_dcache_flush_all(); + alt_icache_flush_all(); +} diff --git a/software/qsys_tutorial_mem_bsp/HAL/src/alt_log_macro.S b/software/qsys_tutorial_mem_bsp/HAL/src/alt_log_macro.S new file mode 100644 index 0000000..499c4ad --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/HAL/src/alt_log_macro.S @@ -0,0 +1,56 @@ +/* alt_log_macro.S + * + * Implements the function tx_log_str, called by the assembly macro + * ALT_LOG_PUTS(). The macro will be empty when logging is turned off, + * and this function will not be compiled. When logging is on, + * this function is used to print out the strings defined in the beginning + * of alt_log_printf.c, using port information taken from system.h and + * alt_log_printf.h. + * + * This routine only handles strings, and sends a character into the defined + * output device's output buffer when the device is ready. It's intended for + * debugging purposes, where messages can be set to print out at certain + * points in the boot code to indicate the progress of the program. + * + */ + +#ifndef __ALT_LOG_MACROS__ +#define __ALT_LOG_MACROS__ + +/* define this flag to skip assembly-incompatible parts + * of various include files. */ +#define ALT_ASM_SRC + +#ifdef ALT_LOG_ENABLE // only compile this function if this flag is defined. + + #include "system.h" + #include "sys/alt_log_printf.h" + + .global tx_log_str +tx_log_str: + /* load base uart / jtag uart address into r6 */ + movhi r6, %hiadj(ALT_LOG_PORT_BASE) + addi r6, r6, %lo(ALT_LOG_PORT_BASE) +tx_next_char: + /* if pointer points to null, return + * r4 is the pointer to the str to be printed, set by ALT_LOG_PUTS */ + ldb r7, (r4) + beq r0, r7, end_tx + + /* check device transmit ready */ +wait_tx_ready_loop: + ldwio r5, ALT_LOG_PRINT_REG_OFFSET(r6) + andi r5, r5, ALT_LOG_PRINT_MSK + beq r5, r0, wait_tx_ready_loop + /* write char */ + stwio r7, ALT_LOG_PRINT_TXDATA_REG_OFFSET (r6) + /* advance string pointer */ + addi r4, r4, 1 + br tx_next_char +end_tx: + ret + +#endif + +#endif /* __ALT_LOG_MACROS__ */ + diff --git a/software/qsys_tutorial_mem_bsp/HAL/src/alt_log_printf.c b/software/qsys_tutorial_mem_bsp/HAL/src/alt_log_printf.c new file mode 100644 index 0000000..1f7056d --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/HAL/src/alt_log_printf.c @@ -0,0 +1,479 @@ + +/* alt_log_printf.c + * + * This file implements the various C functions used for the + * alt_log logging/debugging print functions. The functions + * sit as is here - the job of hiding them from the compiler + * if logging is disabled is accomplished in the .h file. + * + * All the global variables for alt_log are defined here. + * These include the various flags that turn on additional + * logging options; the strings for assembly printing; and + * other globals needed by different logging options. + * + * There are 4 functions that handle the actual printing: + * alt_log_txchar: Actual function that puts 1 char to UART/JTAG UART. + * alt_log_repchar: Calls alt_log_txchar 'n' times - used by + * alt_log_private_printf for formatting. + * alt_log_private_printf: + * Stripped down implementation of printf - no floats. + * alt_log_printf_proc: + * Wrapper function for private_printf. + * + * The rest of the functions are called by the macros which + * were called by code in the other components. Each function + * is preceded by a comment, about which file it gets called + * in, and what its purpose is. + * + * author: gkwan + */ + +/* skip all code if enable is off */ +#ifdef ALT_LOG_ENABLE + +#include +#include +#include +#ifdef __ALTERA_AVALON_JTAG_UART + #include "altera_avalon_jtag_uart.h" + #include +#endif +#include "sys/alt_log_printf.h" + +/* strings for assembly puts */ +char alt_log_msg_bss[] = "[crt0.S] Clearing BSS \r\n";; +char alt_log_msg_alt_main[] = "[crt0.S] Calling alt_main.\r\n"; +char alt_log_msg_stackpointer[] \ + = "[crt0.S] Setting up stack and global pointers.\r\n"; +char alt_log_msg_cache[] = "[crt0.S] Inst & Data Cache Initialized.\r\n"; +/* char array allocation for alt_write */ +char alt_log_write_buf[ALT_LOG_WRITE_ECHO_LEN+2]; + +/* global variables for all 'on' flags */ + +/* + * The boot message flag is linked into the data (rwdata) section + * because if it is zero, it would otherwise be placed in the bss section. + * alt_log examines this variable before the BSS is cleared in the boot-up + * process. + */ +volatile alt_u32 alt_log_boot_on_flag \ + __attribute__ ((section (".data"))) = ALT_LOG_BOOT_ON_FLAG_SETTING; + +volatile alt_u8 alt_log_write_on_flag = ALT_LOG_WRITE_ON_FLAG_SETTING; + +volatile alt_u8 alt_log_sys_clk_on_flag = ALT_LOG_SYS_CLK_ON_FLAG_SETTING; + +volatile alt_u8 alt_log_jtag_uart_alarm_on_flag = \ + ALT_LOG_JTAG_UART_ALARM_ON_FLAG_SETTING; + +volatile alt_u8 alt_log_jtag_uart_isr_on_flag = \ + ALT_LOG_JTAG_UART_ISR_ON_FLAG_SETTING; + +volatile alt_u8 alt_log_jtag_uart_startup_info_on_flag = \ + ALT_LOG_JTAG_UART_STARTUP_INFO_ON_FLAG_SETTING; + +/* Global alarm object for recurrent JTAG UART status printing */ +alt_alarm alt_log_jtag_uart_alarm_1; + +/* Global ints for system clock printing and count */ +volatile int alt_log_sys_clk_count; +volatile int alt_system_clock_in_sec; + +/* enum used by alt_log_private_printf */ +enum +{ + pfState_chars, + pfState_firstFmtChar, + pfState_otherFmtChar +}; + + + + +/* Function to put one char onto the UART/JTAG UART txdata register. */ +void alt_log_txchar(int c,char *base) +{ + /* Wait until the device is ready for a character */ + while((ALT_LOG_PRINT_REG_RD(base) & ALT_LOG_PRINT_MSK) == 0) + ; + /* And pop the character into the register */ + ALT_LOG_PRINT_TXDATA_WR(base,c); +} + + +/* Called by alt_log_private_printf to print out characters repeatedly */ +void alt_log_repchar(char c,int r,int base) +{ + while(r-- > 0) + alt_log_txchar(c,(char*) base); +} + + +/* Stripped down printf function */ +void alt_log_private_printf(const char *fmt,int base,va_list args) + { + const char *w; + char c; + int state; + int fmtLeadingZero = 0; /* init these all to 0 for -W warnings. */ + int fmtLong = 0; + int fmtBeforeDecimal = 0; + int fmtAfterDecimal = 0; + int fmtBase = 0; + int fmtSigned = 0; + int fmtCase = 0; /* For hex format, if 1, A-F, else a-f. */ + + w = fmt; + state = pfState_chars; + + while(0 != (c = *w++)) + { + switch(state) + { + case pfState_chars: + if(c == '%') + { + fmtLeadingZero = 0; + fmtLong = 0; + fmtBase = 10; + fmtSigned = 1; + fmtCase = 0; /* Only %X sets this. */ + fmtBeforeDecimal = -1; + fmtAfterDecimal = -1; + state = pfState_firstFmtChar; + } + else + { + alt_log_txchar(c,(char*)base); + } + break; + + case pfState_firstFmtChar: + if(c == '0') + { + fmtLeadingZero = 1; + state = pfState_otherFmtChar; + } + else if(c == '%') + { + alt_log_txchar(c,(char*)base); + state = pfState_chars; + } + else + { + state = pfState_otherFmtChar; + goto otherFmtChar; + } + break; + + case pfState_otherFmtChar: +otherFmtChar: + if(c == '.') + { + fmtAfterDecimal = 0; + } + else if('0' <= c && c <= '9') + { + c -= '0'; + if(fmtAfterDecimal < 0) /* still before decimal */ + { + if(fmtBeforeDecimal < 0) + { + fmtBeforeDecimal = 0; + } + else + { + fmtBeforeDecimal *= 10; + } + fmtBeforeDecimal += c; + } + else + { + fmtAfterDecimal = (fmtAfterDecimal * 10) + c; + } + } + else if(c == 'l') + { + fmtLong = 1; + } + else /* we're up to the letter which determines type */ + { + switch(c) + { + case 'd': + case 'i': +doIntegerPrint: + { + unsigned long v; + unsigned long p; /* biggest power of fmtBase */ + unsigned long vShrink; /* used to count digits */ + int sign; + int digitCount; + + /* Get the value */ + if(fmtLong) + { + if (fmtSigned) + { + v = va_arg(args,long); + } + else + { + v = va_arg(args,unsigned long); + } + } + else + { + if (fmtSigned) + { + v = va_arg(args,int); + } + else + { + v = va_arg(args,unsigned int); + } + } + + /* Strip sign */ + sign = 0; + /* (assumes sign bit is #31) */ + if( fmtSigned && (v & (0x80000000)) ) + { + v = ~v + 1; + sign = 1; + } + + /* Count digits, and get largest place value */ + vShrink = v; + p = 1; + digitCount = 1; + while( (vShrink = vShrink / fmtBase) > 0 ) + { + digitCount++; + p *= fmtBase; + } + + /* Print leading characters & sign */ + fmtBeforeDecimal -= digitCount; + if(fmtLeadingZero) + { + if(sign) + { + alt_log_txchar('-',(char*)base); + fmtBeforeDecimal--; + } + alt_log_repchar('0',fmtBeforeDecimal,base); + } + else + { + if(sign) + { + fmtBeforeDecimal--; + } + alt_log_repchar(' ',fmtBeforeDecimal,base); + if(sign) + { + alt_log_txchar('-',(char*)base); + } + } + + /* Print numbery parts */ + while(p) + { + unsigned char d; + + d = v / p; + d += '0'; + if(d > '9') + { + d += (fmtCase ? 'A' : 'a') - '0' - 10; + } + alt_log_txchar(d,(char*)base); + + v = v % p; + p = p / fmtBase; + } + } + + state = pfState_chars; + break; + + case 'u': + fmtSigned = 0; + goto doIntegerPrint; + case 'o': + fmtSigned = 0; + fmtBase = 8; + goto doIntegerPrint; + case 'x': + fmtSigned = 0; + fmtBase = 16; + goto doIntegerPrint; + case 'X': + fmtSigned = 0; + fmtBase = 16; + fmtCase = 1; + goto doIntegerPrint; + + case 'c': + alt_log_repchar(' ',fmtBeforeDecimal-1,base); + alt_log_txchar(va_arg(args,int),(char*)base); + break; + + case 's': + { + char *s; + + s = va_arg(args,char *); + alt_log_repchar(' ',fmtBeforeDecimal-strlen(s),base); + + while(*s) + alt_log_txchar(*s++,(char*)base); + } + break; + } /* switch last letter of fmt */ + state=pfState_chars; + } + break; + } /* switch */ + } /* while chars left */ + } /* printf */ + +/* Main logging printf function */ +int alt_log_printf_proc(const char *fmt, ... ) +{ + va_list args; + + va_start (args, fmt); + alt_log_private_printf(fmt,ALT_LOG_PORT_BASE,args); + return (0); +} + +/* Below are the functions called by different macros in various components. */ + +/* If the system has a JTAG_UART, include JTAG_UART debugging functions */ +#ifdef __ALTERA_AVALON_JTAG_UART + +/* The alarm function in altera_avalon_jtag_uart.c. + * This function, when turned on, prints out the status + * of the JTAG UART Control register, every ALT_LOG_JTAG_UART_TICKS. + * If the flag is off, the alarm should never be registered, and this + * function should never run */ +alt_u32 altera_avalon_jtag_uart_report_log(void * context) +{ + if (alt_log_jtag_uart_alarm_on_flag) { + altera_avalon_jtag_uart_state* dev = (altera_avalon_jtag_uart_state*) context; + const char* header="JTAG Alarm:"; + alt_log_jtag_uart_print_control_reg(dev, dev->base, header); + return ALT_LOG_JTAG_UART_TICKS; + } + else + { + /* If flag is not on, return 0 to disable future alarms. + * Should never be here, alarm should not be enabled at all. */ + return 0; + } +} + +void alt_log_jtag_uart_print_control_reg(altera_avalon_jtag_uart_state* dev, int base, const char* header) +{ + unsigned int control, space, ac, wi, ri, we, re; + control = IORD_ALTERA_AVALON_JTAG_UART_CONTROL(base); + space = (control & ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_MSK) >> + ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_OFST; + we= (control & ALTERA_AVALON_JTAG_UART_CONTROL_WE_MSK) >> + ALTERA_AVALON_JTAG_UART_CONTROL_WE_OFST; + re= (control & ALTERA_AVALON_JTAG_UART_CONTROL_RE_MSK) >> + ALTERA_AVALON_JTAG_UART_CONTROL_RE_OFST; + ri= (control & ALTERA_AVALON_JTAG_UART_CONTROL_RI_MSK) >> + ALTERA_AVALON_JTAG_UART_CONTROL_RI_OFST; + wi= (control & ALTERA_AVALON_JTAG_UART_CONTROL_WI_MSK) >> + ALTERA_AVALON_JTAG_UART_CONTROL_WI_OFST; + ac= (control & ALTERA_AVALON_JTAG_UART_CONTROL_AC_MSK) >> + ALTERA_AVALON_JTAG_UART_CONTROL_AC_OFST; + +#ifdef ALTERA_AVALON_JTAG_UART_SMALL + ALT_LOG_PRINTF( + "%s HW FIFO wspace=%d AC=%d WI=%d RI=%d WE=%d RE=%d\r\n", + header,space,ac,wi,ri,we,re); +#else + ALT_LOG_PRINTF( + "%s SW CirBuf = %d, HW FIFO wspace=%d AC=%d WI=%d RI=%d WE=%d RE=%d\r\n", + header,(dev->tx_out-dev->tx_in),space,ac,wi,ri,we,re); +#endif + + return; + +} + +/* In altera_avalon_jtag_uart.c + * Same output as the alarm function above, but this is called in the driver + * init function. Hence, it gives the status of the JTAG UART control register + * right at the initialization of the driver */ +void alt_log_jtag_uart_startup_info(altera_avalon_jtag_uart_state* dev, int base) +{ + const char* header="JTAG Startup Info:"; + alt_log_jtag_uart_print_control_reg(dev, base, header); + return; +} + +/* In altera_avalon_jtag_uart.c + * When turned on, this function will print out the status of the jtag uart + * control register every time there is a jtag uart "almost-empty" interrupt. */ +void alt_log_jtag_uart_isr_proc(int base, altera_avalon_jtag_uart_state* dev) +{ + if (alt_log_jtag_uart_isr_on_flag) { + const char* header="JTAG IRQ:"; + alt_log_jtag_uart_print_control_reg(dev, base, header); + } + return; +} + +#endif /* __ALTERA_AVALON_JTAG_UART */ + +/* In alt_write.c + * When the alt_log_write_on_flag is turned on, this function gets called + * every time alt_write gets called. The first + * ALT_LOG_WRITE_ECHO_LEN characters of every printf command (or any command + * that eventually calls write()) gets echoed to the alt_log output. */ +void alt_log_write(const void *ptr, size_t len) +{ + if (alt_log_write_on_flag) { + int temp_cnt; + int length=(ALT_LOG_WRITE_ECHO_LEN>len) ? len : ALT_LOG_WRITE_ECHO_LEN; + + if (length < 2) return; + + strncpy (alt_log_write_buf,ptr,length); + alt_log_write_buf[length-1]='\n'; + alt_log_write_buf[length]='\r'; + alt_log_write_buf[length+1]='\0'; + + /* Escape Ctrl-D's. If the Ctrl-D gets sent it might kill the terminal + * connection of alt_log. It will get replaced by 'D'. */ + for (temp_cnt=0;temp_cnt < length; temp_cnt++) { + if (alt_log_write_buf[temp_cnt]== 0x4) { + alt_log_write_buf[temp_cnt]='D'; + } + } + ALT_LOG_PRINTF("Write Echo: %s",alt_log_write_buf); + } +} + +/* In altera_avalon_timer_sc + * This function prints out a system clock is alive message + * every ALT_LOG_SYS_CLK_INTERVAL (in ticks). */ +void alt_log_system_clock() +{ + if (alt_log_sys_clk_on_flag) { + alt_log_sys_clk_count++; + if (alt_log_sys_clk_count > ALT_LOG_SYS_CLK_INTERVAL) { + alt_log_sys_clk_count = 0; + ALT_LOG_PRINTF("System Clock On %u\r\n",alt_system_clock_in_sec++); + } + } +} + + +#endif diff --git a/software/qsys_tutorial_mem_bsp/HAL/src/alt_lseek.c b/software/qsys_tutorial_mem_bsp/HAL/src/alt_lseek.c new file mode 100644 index 0000000..7857b0d --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/HAL/src/alt_lseek.c @@ -0,0 +1,117 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004-2005 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +#include "sys/alt_errno.h" +#include "sys/alt_warning.h" +#include "priv/alt_file.h" +#include "os/alt_syscall.h" + +#ifdef ALT_USE_DIRECT_DRIVERS + +off_t ALT_LSEEK (int file, off_t ptr, int dir) +{ + /* Generate a link time warning, should this function ever be called. */ + + ALT_STUB_WARNING(lseek); + + /* Indicate an error */ + + ALT_ERRNO = ENOSYS; + return -1; +} + +#else /* !ALT_USE_DIRECT_DRIVERS */ + +/* + * lseek() can be called to move the read/write pointer associated with the + * file descriptor "file". This function simply vectors the call to the lseek() + * function provided by the driver associated with the file descriptor. + * + * If the driver does not provide an implementation of lseek() an error is + * indicated. + * + * lseek() corresponds to the standard lseek() function. + * + * ALT_LSEEK is mapped onto the lseek() system call in alt_syscall.h + * + */ + +off_t ALT_LSEEK (int file, off_t ptr, int dir) +{ + alt_fd* fd; + off_t rc = 0; + + /* + * A common error case is that when the file descriptor was created, the call + * to open() failed resulting in a negative file descriptor. This is trapped + * below so that we don't try and process an invalid file descriptor. + */ + + fd = (file < 0) ? NULL : &alt_fd_list[file]; + + if (fd) + { + /* + * If the device driver provides an implementation of the lseek() function, + * then call that to process the request. + */ + + if (fd->dev->lseek) + { + rc = fd->dev->lseek(fd, ptr, dir); + } + /* + * Otherwise return an error. + */ + + else + { + rc = -ENOTSUP; + } + } + else + { + rc = -EBADFD; + } + + if (rc < 0) + { + ALT_ERRNO = -rc; + rc = -1; + } + + return rc; +} + +#endif /* ALT_USE_DIRECT_DRIVERS */ diff --git a/software/qsys_tutorial_mem_bsp/HAL/src/alt_main.c b/software/qsys_tutorial_mem_bsp/HAL/src/alt_main.c new file mode 100644 index 0000000..a96229b --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/HAL/src/alt_main.c @@ -0,0 +1,161 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2007 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include +#include +#include +#include +#include + +#include "sys/alt_dev.h" +#include "sys/alt_sys_init.h" +#include "sys/alt_irq.h" +#include "sys/alt_dev.h" + +#include "os/alt_hooks.h" + +#include "priv/alt_file.h" +#include "alt_types.h" + +#include "system.h" + +#include "sys/alt_log_printf.h" + +extern void _do_ctors(void); +extern void _do_dtors(void); + +/* + * Standard arguments for main. By default, no arguments are passed to main. + * However a device driver may choose to configure these arguments by calling + * alt_set_args(). The expectation is that this facility will only be used by + * the iclient/ihost utility. + */ + +int alt_argc = 0; +char** alt_argv = {NULL}; +char** alt_envp = {NULL}; + +/* + * Prototype for the entry point to the users application. + */ + +extern int main (int, char **, char **); + +/* + * alt_main is the C entry point for the HAL. It is called by the assembler + * startup code in the processor specific crt0.S. It is responsible for: + * completing the C runtime configuration; configuring all the + * devices/filesystems/components in the system; and call the entry point for + * the users application, i.e. main(). + */ + +void alt_main (void) +{ +#ifndef ALT_NO_EXIT + int result; +#endif + + /* ALT LOG - please see HAL/sys/alt_log_printf.h for details */ + ALT_LOG_PRINT_BOOT("[alt_main.c] Entering alt_main, calling alt_irq_init.\r\n"); + /* Initialize the interrupt controller. */ + alt_irq_init (NULL); + + /* Initialize the operating system */ + ALT_LOG_PRINT_BOOT("[alt_main.c] Done alt_irq_init, calling alt_os_init.\r\n"); + ALT_OS_INIT(); + + /* + * Initialize the semaphore used to control access to the file descriptor + * list. + */ + + ALT_LOG_PRINT_BOOT("[alt_main.c] Done OS Init, calling alt_sem_create.\r\n"); + ALT_SEM_CREATE (&alt_fd_list_lock, 1); + + /* Initialize the device drivers/software components. */ + ALT_LOG_PRINT_BOOT("[alt_main.c] Calling alt_sys_init.\r\n"); + alt_sys_init(); + ALT_LOG_PRINT_BOOT("[alt_main.c] Done alt_sys_init.\r\n"); + +#if !defined(ALT_USE_DIRECT_DRIVERS) && (defined(ALT_STDIN_PRESENT) || defined(ALT_STDOUT_PRESENT) || defined(ALT_STDERR_PRESENT)) + + /* + * Redirect stdio to the apropriate devices now that the devices have + * been initialized. This is only done if the user has requested these + * devices be present (not equal to /dev/null) and if direct drivers + * aren't being used. + */ + + ALT_LOG_PRINT_BOOT("[alt_main.c] Redirecting IO.\r\n"); + alt_io_redirect(ALT_STDOUT, ALT_STDIN, ALT_STDERR); +#endif + +#ifndef ALT_NO_C_PLUS_PLUS + /* + * Call the C++ constructors + */ + + ALT_LOG_PRINT_BOOT("[alt_main.c] Calling C++ constructors.\r\n"); + _do_ctors (); +#endif /* ALT_NO_C_PLUS_PLUS */ + +#if !defined(ALT_NO_C_PLUS_PLUS) && !defined(ALT_NO_CLEAN_EXIT) && !defined(ALT_NO_EXIT) + /* + * Set the C++ destructors to be called at system shutdown. This is only done + * if a clean exit has been requested (i.e. the exit() function has not been + * redefined as _exit()). This is in the interest of reducing code footprint, + * in that the atexit() overhead is removed when it's not needed. + */ + + ALT_LOG_PRINT_BOOT("[alt_main.c] Calling atexit.\r\n"); + atexit (_do_dtors); +#endif + + /* + * Finally, call main(). The return code is then passed to a subsequent + * call to exit() unless the application is never supposed to exit. + */ + + ALT_LOG_PRINT_BOOT("[alt_main.c] Calling main.\r\n"); + +#ifdef ALT_NO_EXIT + main (alt_argc, alt_argv, alt_envp); +#else + result = main (alt_argc, alt_argv, alt_envp); + close(STDOUT_FILENO); + exit (result); +#endif + + ALT_LOG_PRINT_BOOT("[alt_main.c] After main - we should not be here?.\r\n"); +} + diff --git a/software/qsys_tutorial_mem_bsp/HAL/src/alt_malloc_lock.c b/software/qsys_tutorial_mem_bsp/HAL/src/alt_malloc_lock.c new file mode 100644 index 0000000..8c78f46 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/HAL/src/alt_malloc_lock.c @@ -0,0 +1,52 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +/* + * These are the empty malloc lock/unlock stubs required by newlib. These are + * used to make newlib's malloc() function thread safe. The default HAL + * configuration is single threaded, so there is nothing to do here. Note that + * this requires that malloc is never called by an interrupt service routine. + */ + +void __malloc_lock ( struct _reent *_r ) +{ +} + +/* + * + */ + +void __malloc_unlock ( struct _reent *_r ) +{ +} diff --git a/software/qsys_tutorial_mem_bsp/HAL/src/alt_mcount.S b/software/qsys_tutorial_mem_bsp/HAL/src/alt_mcount.S new file mode 100644 index 0000000..3837523 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/HAL/src/alt_mcount.S @@ -0,0 +1,198 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003-2010 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/* mcount or _mcount is inserted by GCC before the function prologue of every + * function when a program is compiled for profiling. At the start of mcount, + * we guarantee that: + * ra = self_pc (an address in the function which called mcount) + * r8 = from_pc (an address in the function which called mcount's caller) + * + * Because this is always called at the start of a function we can corrupt + * r2,r3 and r11-r15. We must not corrupt r4-r7 (because they might contain + * function arguments for the instrumented function) or r8 (which holds ra + * for the instrumented function). + */ + + .global __mcount_fn_head + + .global mcount + + /* _mcount is used by gcc4 */ + .global _mcount + +_mcount: +mcount: + /* Use a hash to speed up locating fn_entry. We use bits 5 upwards to choose + * the bucket because bits 1:0 will always be 0, and because the distribution + * of values for bits 4:2 won't be even (aligning on cache line boundaries + * will skew it). Higher bits should be fairly random. + */ + /* fn_head = mcount_fn_head + (((unsigned int)self_pc >> 5) & (HASH_BUCKETS - 1)); */ + + srli r2, ra, 3 + movhi r3, %hiadj(__mcount_fn_head) + addi r3, r3, %lo(__mcount_fn_head) + andi r2, r2, 0xFC + add r11, r2, r3 + + /* The fast case is where we have already allocated a function arc, and so + * also a function pointer. + */ + + /* First find the function being called (using self_pc) */ + mov r10, r11 +0: + ldw r10, 0(r10) + beq r10, zero, .Lnew_arc + ldw r2, 4(r10) + bne r2, ra, 0b + + /* Found a function entry for this PC. Now look for an arc with a matching + * from_pc value. There will always be at least one arc. */ + ldw r3, 8(r10) +0: + ldw r2, 4(r3) + beq r2, r8, .Lfound_arc + ldw r3, 0(r3) + bne r3, zero, 0b + +.Lnew_arc: + addi sp, sp, -24 + +.LCFI0: + stw ra, 0(sp) + stw r4, 4(sp) + stw r5, 8(sp) + stw r6, 12(sp) + stw r7, 16(sp) + stw r8, 20(sp) + +.LCFI1: + /* __mcount_record(orig_ra, orig_r8, fn_entry, *fn_head); */ + mov r4, ra + mov r5, r8 + mov r6, r10 + mov r7, r11 + call __mcount_record + + /* restore registers from the stack */ + ldw ra, 0(sp) + ldw r4, 4(sp) + ldw r5, 8(sp) + ldw r6, 12(sp) + ldw r7, 16(sp) + ldw r8, 20(sp) + + addi sp, sp, 24 + +.LCFI2: + ret + +.Lfound_arc: + /* We've found the correct arc record. Increment the count and return */ + ldw r2, 8(r3) + addi r2, r2, 1 + stw r2, 8(r3) + ret + +.Lmcount_end: + + + +/* + * Dwarf2 debug information for the function. This provides GDB with the + * information it needs to backtrace out of this function. + */ + + .section .debug_frame,"",@progbits +.LCIE: + .4byte 2f - 1f /* Length */ +1: + .4byte 0xffffffff /* CIE id */ + .byte 0x1 /* Version */ + .string "" /* Augmentation */ + .uleb128 0x1 /* Code alignment factor */ + .sleb128 -4 /* Data alignment factor */ + .byte 0x1f /* Return address register */ + + .byte 0xc /* Define CFA */ + .uleb128 0x1b /* Register 27 (sp) */ + .uleb128 0x0 /* Offset 0 */ + + .align 2 /* Padding */ +2: + +.LFDE_mcount: + .4byte 2f - 1f /* Length */ +1: + .4byte .LCIE /* Pointer to CIE */ + .4byte mcount /* Start of table entry */ + .4byte .Lmcount_end - mcount /* Size of table entry */ + + .byte 0x4 /* Advance location */ + .4byte .LCFI0 - mcount /* to .LCFI0 */ + .byte 0xe /* Define CFA offset */ + .uleb128 24 /* to 24 */ + + .byte 0x4 /* Advance location */ + .4byte .LCFI1 - .LCFI0 /* to .LCFI1 */ + .byte 0x9f /* Store ra */ + .uleb128 0x6 /* at CFA-24 */ + .byte 0x84 /* Store r4 */ + .uleb128 0x5 /* at CFA-20 */ + .byte 0x85 /* Store r5 */ + .uleb128 0x4 /* at CFA-16 */ + .byte 0x86 /* Store r6 */ + .uleb128 0x3 /* at CFA-12 */ + .byte 0x87 /* Store r7 */ + .uleb128 0x2 /* at CFA-8 */ + .byte 0x88 /* Store r8 */ + .uleb128 0x1 /* at CFA-4 */ + + .byte 0x4 /* Advance location */ + .4byte .LCFI2 - .LCFI1 /* to .LCFI2 */ + .byte 0xe /* Define CFA offset */ + .uleb128 0 /* to 0 */ + .byte 0x8 /* Same value */ + .uleb128 31 /* for ra */ + .byte 0x8 /* Same value */ + .uleb128 4 /* for r4 */ + .byte 0x8 /* Same value */ + .uleb128 5 /* for r5 */ + .byte 0x8 /* Same value */ + .uleb128 6 /* for r6 */ + .byte 0x8 /* Same value */ + .uleb128 7 /* for r7 */ + .byte 0x8 /* Same value */ + .uleb128 8 /* for r8 */ + + .align 2 +2: + diff --git a/software/qsys_tutorial_mem_bsp/HAL/src/alt_open.c b/software/qsys_tutorial_mem_bsp/HAL/src/alt_open.c new file mode 100644 index 0000000..4790f53 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/HAL/src/alt_open.c @@ -0,0 +1,173 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_errno.h" +#include "sys/alt_warning.h" +#include "priv/alt_file.h" +#include "alt_types.h" +#include "os/alt_syscall.h" + +#ifdef ALT_USE_DIRECT_DRIVERS + +int ALT_OPEN (const char* file, int flags, int mode) +{ + /* Generate a link time warning, should this function ever be called. */ + + ALT_STUB_WARNING(open); + + /* Indicate an error */ + + ALT_ERRNO = ENOSYS; + return -1; +} + +#else /* !ALT_USE_DIRECT_DRIVERS */ + +extern alt_llist alt_dev_list; + +/* + * alt_file_locked() is used by open() to ensure that a device has not been + * previously locked for exclusive access using ioctl(). This test is only + * performed for devices. Filesystems are required to handle the ioctl() call + * themselves, and report the error from the filesystems open() function. + */ + +static int alt_file_locked (alt_fd* fd) +{ + alt_u32 i; + + /* + * Mark the file descriptor as belonging to a device. + */ + + fd->fd_flags |= ALT_FD_DEV; + + /* + * Loop through all current file descriptors searching for one that's locked + * for exclusive access. If a match is found, generate an error. + */ + + for (i = 0; i <= alt_max_fd; i++) + { + if ((alt_fd_list[i].dev == fd->dev) && + (alt_fd_list[i].fd_flags & ALT_FD_EXCL) && + (&alt_fd_list[i] != fd)) + { + return -EACCES; + } + } + + /* The device is not locked */ + + return 0; +} + +/* + * open() is called in order to get a file descriptor that reference the file + * or device named "name". This descriptor can then be used to manipulate the + * file/device using the standard system calls, e.g. write(), read(), ioctl() + * etc. + * + * This is equivalent to the standard open() system call. + * + * ALT_OPEN is mapped onto the open() system call in alt_syscall.h + */ + +int ALT_OPEN (const char* file, int flags, int mode) +{ + alt_dev* dev; + alt_fd* fd; + int index = -1; + int status = -ENODEV; + int isafs = 0; + + /* + * Check the device list, to see if a device with a matching name is + * registered. + */ + + if (!(dev = alt_find_dev (file, &alt_dev_list))) + { + /* No matching device, so try the filesystem list */ + + dev = alt_find_file (file); + isafs = 1; + } + + /* + * If a matching device or filesystem is found, allocate a file descriptor. + */ + + if (dev) + { + if ((index = alt_get_fd (dev)) < 0) + { + status = index; + } + else + { + fd = &alt_fd_list[index]; + fd->fd_flags = (flags & ~ALT_FD_FLAGS_MASK); + + /* If this is a device, ensure it isn't already locked */ + + if (isafs || ((status = alt_file_locked (fd)) >= 0)) + { + /* + * If the device or filesystem provides an open() callback function, + * call it now to perform any device/filesystem specific operations. + */ + + status = (dev->open) ? dev->open(fd, file, flags, mode): 0; + } + } + } + else + { + status = -ENODEV; + } + + /* Allocation failed, so clean up and return an error */ + + if (status < 0) + { + alt_release_fd (index); + ALT_ERRNO = -status; + return -1; + } + + /* return the reference upon success */ + + return index; +} + +#endif /* ALT_USE_DIRECT_DRIVERS */ diff --git a/software/qsys_tutorial_mem_bsp/HAL/src/alt_printf.c b/software/qsys_tutorial_mem_bsp/HAL/src/alt_printf.c new file mode 100644 index 0000000..e742b57 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/HAL/src/alt_printf.c @@ -0,0 +1,127 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/* + * This file provides a very minimal printf implementation for use with very + * small applications. Only the following format strings are supported: + * %x + * %s + * %c + * %% + */ + +#include +#include "sys/alt_stdio.h" + +/* + * ALT printf function + */ +void +alt_printf(const char* fmt, ... ) +{ + va_list args; + va_start(args, fmt); + const char *w; + char c; + + /* Process format string. */ + w = fmt; + while ((c = *w++) != 0) + { + /* If not a format escape character, just print */ + /* character. Otherwise, process format string. */ + if (c != '%') + { + alt_putchar(c); + } + else + { + /* Get format character. If none */ + /* available, processing is complete. */ + if ((c = *w++) != 0) + { + if (c == '%') + { + /* Process "%" escape sequence. */ + alt_putchar(c); + } + else if (c == 'c') + { + int v = va_arg(args, int); + alt_putchar(v); + } + else if (c == 'x') + { + /* Process hexadecimal number format. */ + unsigned long v = va_arg(args, unsigned long); + unsigned long digit; + int digit_shift; + + /* If the number value is zero, just print and continue. */ + if (v == 0) + { + alt_putchar('0'); + continue; + } + + /* Find first non-zero digit. */ + digit_shift = 28; + while (!(v & (0xF << digit_shift))) + digit_shift -= 4; + + /* Print digits. */ + for (; digit_shift >= 0; digit_shift -= 4) + { + digit = (v & (0xF << digit_shift)) >> digit_shift; + if (digit <= 9) + c = '0' + digit; + else + c = 'a' + digit - 10; + alt_putchar(c); + } + } + else if (c == 's') + { + /* Process string format. */ + char *s = va_arg(args, char *); + + while(*s) + alt_putchar(*s++); + } + } + else + { + break; + } + } + } +} diff --git a/software/qsys_tutorial_mem_bsp/HAL/src/alt_putchar.c b/software/qsys_tutorial_mem_bsp/HAL/src/alt_putchar.c new file mode 100644 index 0000000..badaa02 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/HAL/src/alt_putchar.c @@ -0,0 +1,59 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +#ifdef ALT_USE_DIRECT_DRIVERS +#include "system.h" +#include "sys/alt_driver.h" +#include "sys/alt_stdio.h" +#endif + +/* + * Uses the ALT_DRIVER_WRITE() macro to call directly to driver if available. + * Otherwise, uses newlib provided putchar() routine. + */ +int +alt_putchar(int c) +{ +#ifdef ALT_USE_DIRECT_DRIVERS + ALT_DRIVER_WRITE_EXTERNS(ALT_STDOUT_DEV); + char c1 = (char)(c & 0xff); + + if (ALT_DRIVER_WRITE(ALT_STDOUT_DEV, &c1, 1, 0) == -1) { + return -1; + } + return c; +#else + return putchar(c); +#endif +} diff --git a/software/qsys_tutorial_mem_bsp/HAL/src/alt_putstr.c b/software/qsys_tutorial_mem_bsp/HAL/src/alt_putstr.c new file mode 100644 index 0000000..5345945 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/HAL/src/alt_putstr.c @@ -0,0 +1,55 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +#ifdef ALT_USE_DIRECT_DRIVERS +#include +#include "system.h" +#include "sys/alt_driver.h" +#include "sys/alt_stdio.h" +#endif + +/* + * Uses the ALT_DRIVER_WRITE() macro to call directly to driver if available. + * Otherwise, uses newlib provided fputs() routine. + */ +int +alt_putstr(const char* str) +{ +#ifdef ALT_USE_DIRECT_DRIVERS + ALT_DRIVER_WRITE_EXTERNS(ALT_STDOUT_DEV); + return ALT_DRIVER_WRITE(ALT_STDOUT_DEV, str, strlen(str), 0); +#else + return fputs(str, stdout); +#endif +} diff --git a/software/qsys_tutorial_mem_bsp/HAL/src/alt_read.c b/software/qsys_tutorial_mem_bsp/HAL/src/alt_read.c new file mode 100644 index 0000000..1c89777 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/HAL/src/alt_read.c @@ -0,0 +1,125 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include + +#include "sys/alt_errno.h" +#include "sys/alt_warning.h" +#include "priv/alt_file.h" +#include "os/alt_syscall.h" + +/* + * The read() system call is used to read a block of data from a file or device. + * This function simply vectors the request to the device driver associated + * with the input file descriptor "file". + * + * ALT_READ is mapped onto the read() system call in alt_syscall.h + */ + +#ifdef ALT_USE_DIRECT_DRIVERS + +#include "system.h" +#include "sys/alt_driver.h" + +/* + * Provide minimal version that just reads from the stdin device when provided. + */ + +int ALT_READ (int file, void *ptr, size_t len) +{ +#ifdef ALT_STDIN_PRESENT + ALT_DRIVER_READ_EXTERNS(ALT_STDIN_DEV); +#endif + +#if !defined(ALT_STDIN_PRESENT) + /* Generate a link time warning, should this function ever be called. */ + ALT_STUB_WARNING(read); +#endif + + switch (file) { +#ifdef ALT_STDIN_PRESENT + case 0: /* stdin file descriptor */ + return ALT_DRIVER_READ(ALT_STDIN_DEV, ptr, len, 0); +#endif /* ALT_STDIN_PRESENT */ + default: + ALT_ERRNO = EBADFD; + return -1; + } +} + +#else /* !ALT_USE_DIRECT_DRIVERS */ + +int ALT_READ (int file, void *ptr, size_t len) +{ + alt_fd* fd; + int rval; + + /* + * A common error case is that when the file descriptor was created, the call + * to open() failed resulting in a negative file descriptor. This is trapped + * below so that we don't try and process an invalid file descriptor. + */ + + fd = (file < 0) ? NULL : &alt_fd_list[file]; + + if (fd) + { + /* + * If the file has not been opened with read access, or if the driver does + * not provide an implementation of read(), generate an error. Otherwise + * call the drivers read() function to process the request. + */ + + if (((fd->fd_flags & O_ACCMODE) != O_WRONLY) && + (fd->dev->read)) + { + if ((rval = fd->dev->read(fd, ptr, len)) < 0) + { + ALT_ERRNO = -rval; + return -1; + } + return rval; + } + else + { + ALT_ERRNO = EACCES; + } + } + else + { + ALT_ERRNO = EBADFD; + } + return -1; +} + +#endif /* ALT_USE_DIRECT_DRIVERS */ diff --git a/software/qsys_tutorial_mem_bsp/HAL/src/alt_release_fd.c b/software/qsys_tutorial_mem_bsp/HAL/src/alt_release_fd.c new file mode 100644 index 0000000..84733a7 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/HAL/src/alt_release_fd.c @@ -0,0 +1,54 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_dev.h" +#include "priv/alt_file.h" + +/* + * alt_release_fd() is called to free an allocated file descriptor. This is + * done by setting the device pointer in the file descriptor structure to zero. + * + * File descriptors correcponding to standard in, standard out and standard + * error cannont be released backed to the pool. They are always reserved. + */ + +void alt_release_fd (int fd) +{ + if (fd > 2) + { + alt_fd_list[fd].fd_flags = 0; + alt_fd_list[fd].dev = 0; + } +} + + + diff --git a/software/qsys_tutorial_mem_bsp/HAL/src/alt_remap_cached.c b/software/qsys_tutorial_mem_bsp/HAL/src/alt_remap_cached.c new file mode 100644 index 0000000..f61cb9c --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/HAL/src/alt_remap_cached.c @@ -0,0 +1,50 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003,2007 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "sys/alt_cache.h" +#include "system.h" + +#ifdef NIOS2_MMU_PRESENT +/* Convert KERNEL region address to IO region address */ +#define BYPASS_DCACHE_MASK (0x1 << 29) +#else +/* Set bit 31 of address to bypass D-cache */ +#define BYPASS_DCACHE_MASK (0x1 << 31) +#endif + +/* + * Convert a pointer to a block of uncached memory, into a block of + * cached memory. + */ + +void* alt_remap_cached (volatile void* ptr, alt_u32 len) +{ + return (void*) (((alt_u32) ptr) & ~BYPASS_DCACHE_MASK); +} diff --git a/software/qsys_tutorial_mem_bsp/HAL/src/alt_remap_uncached.c b/software/qsys_tutorial_mem_bsp/HAL/src/alt_remap_uncached.c new file mode 100644 index 0000000..7ff6302 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/HAL/src/alt_remap_uncached.c @@ -0,0 +1,51 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003,2007 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "sys/alt_cache.h" +#include "system.h" + +#ifdef NIOS2_MMU_PRESENT +/* Convert KERNEL region address to IO region address */ +#define BYPASS_DCACHE_MASK (0x1 << 29) +#else +/* Set bit 31 of address to bypass D-cache */ +#define BYPASS_DCACHE_MASK (0x1 << 31) +#endif + +/* + * Convert a pointer to a block of cached memory, into a block of + * uncached memory. + */ + +volatile void* alt_remap_uncached (void* ptr, alt_u32 len) +{ + alt_dcache_flush (ptr, len); + return (volatile void*) (((alt_u32) ptr) | BYPASS_DCACHE_MASK); +} diff --git a/software/qsys_tutorial_mem_bsp/HAL/src/alt_rename.c b/software/qsys_tutorial_mem_bsp/HAL/src/alt_rename.c new file mode 100644 index 0000000..48afac0 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/HAL/src/alt_rename.c @@ -0,0 +1,55 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_errno.h" +#include "sys/alt_warning.h" +#include "os/alt_syscall.h" + +/* + * _rename() is used by newlib to rename an existing file. This is unsupported + * in the HAL environment. However a "do-nothing" implementation is still + * provied for newlib compatability. + * + * ALT_RENAME is mapped onto the _rename() system call in alt_syscall.h + */ + +int ALT_RENAME (char *existing, char *new) +{ + /* Generate a link time warning, should this function ever be called. */ + + ALT_STUB_WARNING(_rename); + + /* Indicate an error */ + + ALT_ERRNO = ENOSYS; + return -1; +} diff --git a/software/qsys_tutorial_mem_bsp/HAL/src/alt_sbrk.c b/software/qsys_tutorial_mem_bsp/HAL/src/alt_sbrk.c new file mode 100644 index 0000000..b8c3799 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/HAL/src/alt_sbrk.c @@ -0,0 +1,136 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +#include "os/alt_syscall.h" + +#include "sys/alt_irq.h" +#include "sys/alt_stack.h" + +#include "system.h" + +/* + * sbrk() is called to dynamically extend the data segment for the application. + * Thie input argument "incr" is the size of the block to allocate. + * + * This simple implementation does not perform any bounds checking. Memory will + * be allocated, even if the request region colides with the stack or overflows + * the available physical memory. + * + * ALT_SBRK is mapped onto the sbrk() system call in alt_syscall.h + * + * This function is called by the profiling code to allocate memory so must be + * safe if called from an interrupt context. It must also not be instrumented + * because that would lead to an infinate loop. + */ + +extern char __alt_heap_start[]; /* set by linker */ +extern char __alt_heap_limit[]; /* set by linker */ + +static char *heap_end = __alt_heap_start; + +#if defined(ALT_EXCEPTION_STACK) && defined(ALT_STACK_CHECK) +char * alt_exception_old_stack_limit = NULL; +#endif + +caddr_t ALT_SBRK (int incr) __attribute__ ((no_instrument_function )); + +caddr_t ALT_SBRK (int incr) +{ + alt_irq_context context; + char *prev_heap_end; + + context = alt_irq_disable_all(); + + /* Always return data aligned on a word boundary */ + heap_end = (char *)(((unsigned int)heap_end + 3) & ~3); + +#ifdef ALT_MAX_HEAP_BYTES + /* + * User specified a maximum heap size. Return -1 if it would + * be exceeded by this sbrk call. + */ + if (((heap_end + incr) - __alt_heap_start) > ALT_MAX_HEAP_BYTES) { + alt_irq_enable_all(context); + return (caddr_t)-1; + } +#else + if ((heap_end + incr) > __alt_heap_limit) { + alt_irq_enable_all(context); + return (caddr_t)-1; + } +#endif + + prev_heap_end = heap_end; + heap_end += incr; + +#ifdef ALT_STACK_CHECK + /* + * If the stack and heap are contiguous then extending the heap reduces the + * space available for the stack. If we are still using the default stack + * then adjust the stack limit to note this, while checking for stack + * pointer overflow. + * If the stack limit isn't pointing at the top of the heap then the code + * is using a different stack so none of this needs to be done. + */ + + if (alt_stack_limit() == prev_heap_end) + { + if (alt_stack_pointer() <= heap_end) + alt_report_stack_overflow(); + + alt_set_stack_limit(heap_end); + } + +#ifdef ALT_EXCEPTION_STACK + /* + * If we are executing from the exception stack then compare against the + * stack we switched away from as well. The exception stack is a fixed + * size so doesn't need to be checked. + */ + + if (alt_exception_old_stack_limit == prev_heap_end) + { + if (alt_exception_old_stack_limit <= heap_end) + alt_report_stack_overflow(); + + alt_exception_old_stack_limit = heap_end; + } +#endif + +#endif + + alt_irq_enable_all(context); + + return (caddr_t) prev_heap_end; +} diff --git a/software/qsys_tutorial_mem_bsp/HAL/src/alt_settod.c b/software/qsys_tutorial_mem_bsp/HAL/src/alt_settod.c new file mode 100644 index 0000000..59db0f8 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/HAL/src/alt_settod.c @@ -0,0 +1,96 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include + +#include "sys/alt_errno.h" +#include "sys/alt_alarm.h" +#include "os/alt_syscall.h" + +/* + * "alt_timezone" and "alt_resettime" are the values of the the reset time and + * time zone set through the last call to settimeofday(). By default they are + * zero initialised. + */ + +extern struct timezone alt_timezone; +extern struct timeval alt_resettime; + +/* + * Macro defining the number of micoseconds in a second. + */ + +#define ALT_US (1000000) + + +/* + * settimeofday() can be called to calibrate the system clock, so that + * subsequent calls to gettimeofday() will return the elapsed "wall clock" + * time. + * + * This is done by updating the global structures "alt_resettime" and + * "alt_timezone" so that an immediate call to gettimeofday() would return + * the value specified by "t" and "tz". + * + * Warning: if this function is called concurrently with a call to + * gettimeofday(), the value returned by gettimeofday() will be unreliable. + * + * ALT_SETTIMEOFDAY is mapped onto the settimeofday() system call in + * alt_syscall.h + */ + +int ALT_SETTIMEOFDAY (const struct timeval *t, + const struct timezone *tz) +{ + alt_u32 nticks = alt_nticks (); + alt_u32 tick_rate = alt_ticks_per_second (); + + /* If there is a system clock available, update the current time */ + + if (tick_rate) + { + alt_resettime.tv_sec = t->tv_sec - nticks/tick_rate; + alt_resettime.tv_usec = t->tv_usec - + ((nticks*(ALT_US/tick_rate))%ALT_US); + + alt_timezone.tz_minuteswest = tz->tz_minuteswest; + alt_timezone.tz_dsttime = tz->tz_dsttime; + + return 0; + } + + /* There's no system clock available */ + + ALT_ERRNO = ENOSYS; + return -1; +} diff --git a/software/qsys_tutorial_mem_bsp/HAL/src/alt_software_exception.S b/software/qsys_tutorial_mem_bsp/HAL/src/alt_software_exception.S new file mode 100644 index 0000000..2142594 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/HAL/src/alt_software_exception.S @@ -0,0 +1,53 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003-2005 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + + /* + * This file provides the global symbol: software_exception. It is provided to + * support legacy code, and should not be used by new software. + * + * It is used by legacy code to invoke the software exception handler as + * defined by version 1.0 of the Nios II kit. It should only be used when you + * are providing your own interrupt entry point, i.e. you are not using + * alt_irq_entry. + */ + +#include "system.h" + + /* + * Pull in the exception handler. + */ + + .globl alt_exception + + .section .exceptions.entry.label, "xa" + + .globl software_exception + .type software_exception, @function +software_exception: diff --git a/software/qsys_tutorial_mem_bsp/HAL/src/alt_stat.c b/software/qsys_tutorial_mem_bsp/HAL/src/alt_stat.c new file mode 100644 index 0000000..44e207b --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/HAL/src/alt_stat.c @@ -0,0 +1,59 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include +#include +#include + +#include "os/alt_syscall.h" + +/* + * The stat() function is similar to the fstat() function in that it is used to + * obtain status information about a file. Instead of using an open file + * descriptor (like fstat()), stat() takes the name of a file as an input + * argument. + * + * ALT_STAT is mapped onto the stat() system call in alt_syscall.h + */ + +int ALT_STAT (const char *file, struct stat *st) +{ + int fd; + int rc; + + fd = open (file, 0); + rc = fstat (fd, st); + close (fd); + + return rc; +} diff --git a/software/qsys_tutorial_mem_bsp/HAL/src/alt_tick.c b/software/qsys_tutorial_mem_bsp/HAL/src/alt_tick.c new file mode 100644 index 0000000..c73488d --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/HAL/src/alt_tick.c @@ -0,0 +1,149 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_irq.h" +#include "sys/alt_alarm.h" +#include "os/alt_hooks.h" +#include "alt_types.h" + +/* + * "_alt_tick_rate" is used to store the value of the system clock frequency + * in ticks per second. It is initialised to zero, which corresponds to there + * being no system clock facility available. + */ + +alt_u32 _alt_tick_rate = 0; + +/* + * "_alt_nticks" is the number of system clock ticks that have elapsed since + * reset. + */ + +volatile alt_u32 _alt_nticks = 0; + +/* + * "alt_alarm_list" is the head of a linked list of registered alarms. This is + * initialised to be an empty list. + */ + +ALT_LLIST_HEAD(alt_alarm_list); + +/* + * alt_alarm_stop() is called to remove an alarm from the list of registered + * alarms. Alternatively an alarm can unregister itself by returning zero when + * the alarm executes. + */ + +void alt_alarm_stop (alt_alarm* alarm) +{ + alt_irq_context irq_context; + + irq_context = alt_irq_disable_all(); + alt_llist_remove (&alarm->llist); + alt_irq_enable_all (irq_context); +} + +/* + * alt_tick() is periodically called by the system clock driver in order to + * process the registered list of alarms. Each alarm is registed with a + * callback interval, and a callback function, "callback". + * + * The return value of the callback function indicates how many ticks are to + * elapse until the next callback. A return value of zero indicates that the + * alarm should be deactivated. + * + * alt_tick() is expected to run at interrupt level. + */ + +void alt_tick (void) +{ + alt_alarm* next; + alt_alarm* alarm = (alt_alarm*) alt_alarm_list.next; + + alt_u32 next_callback; + + /* update the tick counter */ + + _alt_nticks++; + + /* process the registered callbacks */ + + while (alarm != (alt_alarm*) &alt_alarm_list) + { + next = (alt_alarm*) alarm->llist.next; + + /* + * Upon the tick-counter rolling over it is safe to clear the + * roll-over flag; once the flag is cleared this (or subsequnt) + * tick events are enabled to generate an alarm event. + */ + if ((alarm->rollover) && (_alt_nticks == 0)) + { + alarm->rollover = 0; + } + + /* if the alarm period has expired, make the callback */ + if ((alarm->time <= _alt_nticks) && (alarm->rollover == 0)) + { + next_callback = alarm->callback (alarm->context); + + /* deactivate the alarm if the return value is zero */ + + if (next_callback == 0) + { + alt_alarm_stop (alarm); + } + else + { + alarm->time += next_callback; + + /* + * If the desired alarm time causes a roll-over, set the rollover + * flag. This will prevent the subsequent tick event from causing + * an alarm too early. + */ + if(alarm->time < _alt_nticks) + { + alarm->rollover = 1; + } + } + } + alarm = next; + } + + /* + * Update the operating system specific timer facilities. + */ + + ALT_OS_TIME_TICK(); +} + diff --git a/software/qsys_tutorial_mem_bsp/HAL/src/alt_times.c b/software/qsys_tutorial_mem_bsp/HAL/src/alt_times.c new file mode 100644 index 0000000..4dd965d --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/HAL/src/alt_times.c @@ -0,0 +1,71 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +#include "sys/alt_errno.h" +#include "sys/alt_alarm.h" +#include "os/alt_syscall.h" + +/* + * The times() function is used by newlib to obtain elapsed time information. + * The return value is the elapsed time since reset in system clock ticks. Note + * that this is distinct from the strict Posix version of times(), which should + * return the time since: 0 hours, 0 minutes, 0 seconds, January 1, 1970, GMT. + * + * The input structure is filled in with time accounting information. This + * implementation attributes all cpu time to the system. + * + * ALT_TIMES is mapped onto the times() system call in alt_syscall.h + */ + +clock_t ALT_TIMES (struct tms *buf) +{ + clock_t ticks = alt_nticks(); + + /* If there is no system clock present, generate an error */ + + if (!alt_ticks_per_second()) + { + ALT_ERRNO = ENOSYS; + return 0; + } + + /* Otherwise return the elapsed time */ + + buf->tms_utime = 0; + buf->tms_stime = ticks; + buf->tms_cutime = 0; + buf->tms_cstime = 0; + + return ticks; +} diff --git a/software/qsys_tutorial_mem_bsp/HAL/src/alt_uncached_free.c b/software/qsys_tutorial_mem_bsp/HAL/src/alt_uncached_free.c new file mode 100644 index 0000000..6e362ba --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/HAL/src/alt_uncached_free.c @@ -0,0 +1,49 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003,2007 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "sys/alt_cache.h" +#include "system.h" + +#ifdef NIOS2_MMU_PRESENT +/* Convert KERNEL region address to IO region address */ +#define BYPASS_DCACHE_MASK (0x1 << 29) +#else +/* Set bit 31 of address to bypass D-cache */ +#define BYPASS_DCACHE_MASK (0x1 << 31) +#endif + +/* + * Free a block of uncached memory. + */ + +void alt_uncached_free (volatile void* ptr) +{ + free ((void*) (((alt_u32) ptr) & ~BYPASS_DCACHE_MASK)); +} diff --git a/software/qsys_tutorial_mem_bsp/HAL/src/alt_uncached_malloc.c b/software/qsys_tutorial_mem_bsp/HAL/src/alt_uncached_malloc.c new file mode 100644 index 0000000..ab3416d --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/HAL/src/alt_uncached_malloc.c @@ -0,0 +1,55 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003,2007 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "sys/alt_cache.h" +#include "system.h" + +#ifdef NIOS2_MMU_PRESENT +/* Convert KERNEL region address to IO region address */ +#define BYPASS_DCACHE_MASK (0x1 << 29) +#else +/* Set bit 31 of address to bypass D-cache */ +#define BYPASS_DCACHE_MASK (0x1 << 31) +#endif + +/* + * Allocate a block of uncached memory. + */ + +volatile void* alt_uncached_malloc (size_t size) +{ + void* ptr; + + ptr = malloc (size); + + alt_dcache_flush (ptr, size); + + return ptr ? (volatile void*) (((alt_u32) ptr) | BYPASS_DCACHE_MASK) : NULL; +} diff --git a/software/qsys_tutorial_mem_bsp/HAL/src/alt_unlink.c b/software/qsys_tutorial_mem_bsp/HAL/src/alt_unlink.c new file mode 100644 index 0000000..29e35d6 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/HAL/src/alt_unlink.c @@ -0,0 +1,55 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_errno.h" +#include "sys/alt_warning.h" +#include "os/alt_syscall.h" + +/* + * unlink() is used by newlib to delete an existing link to a file. This is + * unsupported in the HAL environment. However a "do-nothing" implementation + * is still provied for newlib compatability. + * + * ALT_UNLINK is mapped onto the unlink() system call in alt_syscall.h + */ + +int ALT_UNLINK (char *name) +{ + /* Generate a link time warning, should this function ever be called. */ + + ALT_STUB_WARNING(unlink); + + /* Indicate an error */ + + ALT_ERRNO = ENOSYS; + return -1; +} diff --git a/software/qsys_tutorial_mem_bsp/HAL/src/alt_usleep.c b/software/qsys_tutorial_mem_bsp/HAL/src/alt_usleep.c new file mode 100644 index 0000000..2330eb8 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/HAL/src/alt_usleep.c @@ -0,0 +1,52 @@ +/* + * Copyright (c) 2003 Altera Corporation, San Jose, California, USA. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + * ------------ + * + * Altera does not recommend, suggest or require that this reference design + * file be used in conjunction or combination with any other product. + * + * usleep.c - Microsecond delay routine + */ + +#include + +#include "priv/alt_busy_sleep.h" +#include "os/alt_syscall.h" + +/* + * This function simply calls alt_busy_sleep() to perform the delay. This + * function implements the delay as a calibrated "busy loop". + * + * ALT_USLEEP is mapped onto the usleep() system call in alt_syscall.h + */ + + + +#if defined (__GNUC__) && __GNUC__ >= 4 +int ALT_USLEEP (useconds_t us) +#else +unsigned int ALT_USLEEP (unsigned int us) +#endif +{ + return alt_busy_sleep(us); +} diff --git a/software/qsys_tutorial_mem_bsp/HAL/src/alt_wait.c b/software/qsys_tutorial_mem_bsp/HAL/src/alt_wait.c new file mode 100644 index 0000000..a42f80f --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/HAL/src/alt_wait.c @@ -0,0 +1,52 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_errno.h" +#include "os/alt_syscall.h" + +/* + * wait() is used by newlib to wait for all child processes to exit. Since the + * HAL does not support spawning child processes, this returns immediately as + * there can't be anythign to wait for. + * + * ALT_WAIT is mapped onto the wait() system call in alt_syscall.h + */ + +int ALT_WAIT (int *status) +{ + *status = 0; + + ALT_ERRNO = ECHILD; + + return -1; +} + diff --git a/software/qsys_tutorial_mem_bsp/HAL/src/alt_write.c b/software/qsys_tutorial_mem_bsp/HAL/src/alt_write.c new file mode 100644 index 0000000..51debb5 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/HAL/src/alt_write.c @@ -0,0 +1,138 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include + +#include "sys/alt_errno.h" +#include "sys/alt_warning.h" +#include "priv/alt_file.h" +#include "os/alt_syscall.h" + +#include "sys/alt_log_printf.h" + +/* + * The write() system call is used to write a block of data to a file or + * device. This function simply vectors the request to the device driver + * associated with the input file descriptor "file". + * + * ALT_WRITE is mapped onto the write() system call in alt_syscall.h + */ + +#ifdef ALT_USE_DIRECT_DRIVERS + +#include "system.h" +#include "sys/alt_driver.h" + +/* + * Provide minimal version that just writes to the stdout/stderr devices + * when provided. + */ + +int ALT_WRITE (int file, const void *ptr, size_t len) +{ +#ifdef ALT_STDOUT_PRESENT + ALT_DRIVER_WRITE_EXTERNS(ALT_STDOUT_DEV); +#endif +#ifdef ALT_STDERR_PRESENT + ALT_DRIVER_WRITE_EXTERNS(ALT_STDERR_DEV); +#endif + +#if !defined(ALT_STDOUT_PRESENT) && !defined(ALT_STDERR_PRESENT) + /* Generate a link time warning, should this function ever be called. */ + ALT_STUB_WARNING(write); +#endif + + switch (file) { +#ifdef ALT_STDOUT_PRESENT + case 1: /* stdout file descriptor */ + return ALT_DRIVER_WRITE(ALT_STDOUT_DEV, ptr, len, 0); +#endif /* ALT_STDOUT_PRESENT */ +#ifdef ALT_STDERR_PRESENT + case 2: /* stderr file descriptor */ + return ALT_DRIVER_WRITE(ALT_STDERR_DEV, ptr, len, 0); +#endif /* ALT_STDERR_PRESENT */ + default: + ALT_ERRNO = EBADFD; + return -1; + } +} + +#else /* !ALT_USE_DIRECT_DRIVERS */ + +int ALT_WRITE (int file, const void *ptr, size_t len) +{ + alt_fd* fd; + int rval; + + /* + * A common error case is that when the file descriptor was created, the call + * to open() failed resulting in a negative file descriptor. This is trapped + * below so that we don't try and process an invalid file descriptor. + */ + + fd = (file < 0) ? NULL : &alt_fd_list[file]; + + if (fd) + { + /* + * If the file has not been opened with write access, or if the driver does + * not provide an implementation of write(), generate an error. Otherwise + * call the drivers write() function to process the request. + */ + + if (((fd->fd_flags & O_ACCMODE) != O_RDONLY) && fd->dev->write) + { + + /* ALT_LOG - see altera_hal/HAL/inc/sys/alt_log_printf.h */ + ALT_LOG_WRITE_FUNCTION(ptr,len); + + if ((rval = fd->dev->write(fd, ptr, len)) < 0) + { + ALT_ERRNO = -rval; + return -1; + } + return rval; + } + else + { + ALT_ERRNO = EACCES; + } + } + else + { + ALT_ERRNO = EBADFD; + } + return -1; +} + +#endif /* ALT_USE_DIRECT_DRIVERS */ diff --git a/software/qsys_tutorial_mem_bsp/HAL/src/altera_nios2_qsys_irq.c b/software/qsys_tutorial_mem_bsp/HAL/src/altera_nios2_qsys_irq.c new file mode 100644 index 0000000..c7a4f93 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/HAL/src/altera_nios2_qsys_irq.c @@ -0,0 +1,37 @@ +/* + * Copyright (c) 2009 Altera Corporation, San Jose, California, USA. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + * altera_nios2_irq.c - Support for Nios II internal interrupt controller. + * + */ + +#include "sys/alt_irq.h" +#include "altera_nios2_qsys_irq.h" + +/* + * To initialize the internal interrupt controller, just clear the IENABLE + * register so that all possible IRQs are disabled. + */ +void altera_nios2_qsys_irq_init(void) +{ + NIOS2_WRITE_IENABLE(0); +} diff --git a/software/qsys_tutorial_mem_bsp/HAL/src/crt0.S b/software/qsys_tutorial_mem_bsp/HAL/src/crt0.S new file mode 100644 index 0000000..582445d --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/HAL/src/crt0.S @@ -0,0 +1,456 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "system.h" +#include "nios2.h" + +/* Setup header files to work with assembler code. */ +#define ALT_ASM_SRC + +/* Debug logging facility */ +#include "sys/alt_log_printf.h" + +/*************************************************************************\ +| MACROS | +\*************************************************************************/ + +/* + * The new build tools explicitly define macros when alt_load() + * must be called. The define ALT_LOAD_EXPLICITLY_CONTROLLED tells us that + * those macros are controlling if alt_load() needs to be called. + */ +#ifdef ALT_LOAD_EXPLICITLY_CONTROLLED + +/* Need to call alt_load() if any of these sections are being copied. */ +#if defined(ALT_LOAD_COPY_RODATA) || defined(ALT_LOAD_COPY_RWDATA) || defined(ALT_LOAD_COPY_EXCEPTIONS) +#define CALL_ALT_LOAD +#endif + +#else /* !ALT_LOAD_EXPLICITLY_CONTROLLED */ + +/* + * The legacy build tools use the following macros to detect when alt_load() + * needs to be called. + */ + +#define __ALT_LOAD_SECTIONS(res, text, rodata, exc) \ + ((res##_BASE != rodata##_BASE) || \ + (res##_BASE != rwdata##_BASE) || \ + (res##_BASE != exc##_BASE)) + +#define _ALT_LOAD_SECTIONS(res, text, rodata, exc) \ + __ALT_LOAD_SECTIONS(res, text, rodata, exc) + +#define ALT_LOAD_SECTIONS _ALT_LOAD_SECTIONS(ALT_RESET_DEVICE, \ + ALT_RODATA_DEVICE, \ + ALT_RWDATA_DEVICE, \ + ALT_EXCEPTIONS_DEVICE) + +/* Call alt_load() if there is no bootloader and ALT_LOAD_SECTIONS isn't 0. */ +#if defined(ALT_NO_BOOTLOADER) && ALT_LOAD_SECTIONS +#define CALL_ALT_LOAD +#endif + +#endif /* !ALT_LOAD_EXPLICITLY_CONTROLLED */ + +/* + * When the legacy build tools define a macro called ALT_NO_BOOTLOADER, + * it indicates that initialization code is allowed at the reset address. + * The new build tools define a macro called ALT_ALLOW_CODE_AT_RESET for + * the same purpose. + */ +#ifdef ALT_NO_BOOTLOADER +#define ALT_ALLOW_CODE_AT_RESET +#endif + +/*************************************************************************\ +| EXTERNAL REFERENCES | +\*************************************************************************/ + +/* + * The entry point for user code is either "main" in hosted mode, or + * "alt_main" in standalone mode. These are explicitly referenced here, + * to ensure they are built into the executable. This allows the user + * to build them into libraries, rather than supplying them in object + * files at link time. + */ + .globl main + .globl alt_main + +/* + * Create a reference to the software multiply/divide and trap handers, + * so that if they are provided, they will appear in the executable. + */ +#ifndef ALT_NO_INSTRUCTION_EMULATION + .globl alt_exception_muldiv +#endif +#ifdef ALT_TRAP_HANDLER + .globl alt_exception_trap +#endif + +/* + * Linker defined symbols used to initialize bss. + */ +.globl __bss_start +.globl __bss_end + +/*************************************************************************\ +| RESET SECTION (.entry) | +\*************************************************************************/ + +/* + * This is the reset entry point for Nios II. + * + * At reset, only the cache line which contain the reset vector is + * initialized by the hardware. The code within the first cache line + * initializes the remainder of the instruction cache. + */ + + .section .entry, "xa" + .align 5 + +/* + * Explicitly allow the use of r1 (the assembler temporary register) + * within this code. This register is normally reserved for the use of + * the assembler. + */ + .set noat + +/* + * Some tools want to know where the reset vector is. + * Code isn't always provided at the reset vector but at least the + * __reset label always contains the reset vector address because + * it is defined at the start of the .entry section. + */ + + .globl __reset + .type __reset, @function +__reset: + +/* + * Initialize the instruction cache if present (i.e. size > 0) and + * reset code is allowed unless optimizing for RTL simulation. + * RTL simulations can ensure the instruction cache is already initialized + * so skipping this loop speeds up RTL simulation. + */ + +#if NIOS2_ICACHE_SIZE > 0 && defined(ALT_ALLOW_CODE_AT_RESET) && !defined(ALT_SIM_OPTIMIZE) + /* Assume the instruction cache size is always a power of two. */ +#if NIOS2_ICACHE_SIZE > 0x8000 + movhi r2, %hi(NIOS2_ICACHE_SIZE) +#else + movui r2, NIOS2_ICACHE_SIZE +#endif + +0: + initi r2 + addi r2, r2, -NIOS2_ICACHE_LINE_SIZE + bgt r2, zero, 0b +1: + + /* + * The following debug information tells the ISS not to run the loop above + * but to perform its actions using faster internal code. + */ + .pushsection .debug_alt_sim_info + .int 1, 1, 0b, 1b + .popsection +#endif /* Initialize Instruction Cache */ + +/* + * Jump to the _start entry point in the .text section if reset code + * is allowed or if optimizing for RTL simulation. + */ +#if defined(ALT_ALLOW_CODE_AT_RESET) || defined(ALT_SIM_OPTIMIZE) + /* Jump to the _start entry point in the .text section. */ + movhi r1, %hi(_start) + ori r1, r1, %lo(_start) + jmp r1 + + .size __reset, . - __reset +#endif /* Jump to _start */ + +/* + * When not using exit, provide an _exit symbol to prevent unresolved + * references to _exit from the linker script. + */ +#ifdef ALT_NO_EXIT + .globl _exit +_exit: +#endif + +/*************************************************************************\ +| TEXT SECTION (.text) | +\*************************************************************************/ + +/* + * Start of the .text section, and also the code entry point when + * the code is executed by a bootloader rather than directly from reset. + */ + .section .text + .align 2 + + .globl _start + .type _start, @function +_start: + +/* + * Initialize the data cache if present (i.e. size > 0) and not + * optimizing for RTL simulation. + * RTL simulations can ensure the data cache is already initialized + * so skipping this loop speeds up RTL simulation. + */ + +#if NIOS2_DCACHE_SIZE > 0 && !defined(ALT_SIM_OPTIMIZE) + + /* Assume the data cache size is always a power of two. */ +#if NIOS2_DCACHE_SIZE > 0x8000 + movhi r2, %hi(NIOS2_DCACHE_SIZE) +#else + movui r2, NIOS2_DCACHE_SIZE +#endif + +0: + initd 0(r2) + addi r2, r2, -NIOS2_DCACHE_LINE_SIZE + bgt r2, zero, 0b +1: + + /* + * The following debug information tells the ISS not to run the loop above + * but to perform its actions using faster internal code. + */ + .pushsection .debug_alt_sim_info + .int 2, 1, 0b, 1b + .popsection + +#endif /* Initialize Data Cache */ + + /* Log that caches have been initialized. */ + ALT_LOG_PUTS(alt_log_msg_cache) + + /* Log that the stack pointer is about to be setup. */ + ALT_LOG_PUTS(alt_log_msg_stackpointer) + +#if (NIOS2_NUM_OF_SHADOW_REG_SETS == 0) + /* + * Now that the caches are initialized, set up the stack pointer. + * The value provided by the linker is assumed to be correctly aligned. + */ + movhi sp, %hi(__alt_stack_pointer) + ori sp, sp, %lo(__alt_stack_pointer) + + /* Set up the global pointer. */ + movhi gp, %hi(_gp) + ori gp, gp, %lo(_gp) + +#else /* NIOS2_NUM_OF_SHADOW_REG_SETS > 0 */ + + /* + * Set up the GP and SP in all shadow register sets. + */ + + /* + * Check current register set number, if CPU resets into a shadow register + * set, switch register set to 0 by writing zero to SSTATUS register and + * execute an ERET instruction that just jumps to the next PC address + * (use the NEXTPC instruction to get this). + */ + + rdctl r2, status + + /* Get the current register set number (STATUS.CRS). */ + andi r3, r2, NIOS2_STATUS_CRS_MSK + + /* Skip switch register set if STATUS.CRS is 0. */ + beq r3, zero, .Lskip_switch_reg_set + + .set nobreak + + /* Current register set is non-zero, set SSTATUS to 0. */ + mov sstatus, zero + + /* Get next pc and store in ea. */ + nextpc ea + + /* Point to instruction after eret. */ + addi ea, ea, 8 + + /* + * Execute ERET instruction that just jumps to the next PC address + */ + eret + +.Lskip_switch_reg_set: + mov r2, zero + + /* Reset STATUS register */ + wrctl status, r2 + + movui r3, NIOS2_NUM_OF_SHADOW_REG_SETS + + /* Set up the stack pointer in register set 0. */ + movhi sp, %hi(__alt_stack_pointer) + ori sp, sp, %lo(__alt_stack_pointer) + + /* Set up the global pointer in register set 0. */ + movhi gp, %hi(_gp) + ori gp, gp, %lo(_gp) + +.Lsetup_sp_and_gp_loop: + /* + * Setup GP and SP for shadow register set + * from NIOS2_NUM_OF_SHADOW_REG_SETS to 0 + */ + + /* Skip if number of register sets is 0. */ + beq r3, zero, .Lno_shadow_register_set + + + /* Add previous register set STATUS.PRS by 1 */ + movhi r4, 1 + add r2, r2, r4 + + /* Write STATUS */ + wrctl status, r2 + + /* Clear r0 in the shadow register set (not done by hardware) */ + wrprs r0, r0 + + /* Write the GP in previous register set */ + wrprs gp, gp + + /* Only write the SP in previous register set + * if using the seperate exception stack. For normal case (single stack), + * funnel code would read the SP from previous register set. + */ +#ifdef ALT_INTERRUPT_STACK + + movhi et, %hiadj(__alt_interrupt_stack_pointer) + addi et, et, %lo(__alt_interrupt_stack_pointer) + wrprs sp, et + +#endif /* ALT_INTERRUPT_STACK */ + + /* Decrease number of register set counter by 1 */ + addi r3, r3, -1 + + br .Lsetup_sp_and_gp_loop +.Lno_shadow_register_set: + +#endif /* NIOS2_NUM_OF_SHADOW_REG_SETS */ +/* + * Clear the BSS if not optimizing for RTL simulation. + * + * This uses the symbols: __bss_start and __bss_end, which are defined + * by the linker script. They mark the begining and the end of the bss + * region. The linker script guarantees that these values are word aligned. + */ +#ifndef ALT_SIM_OPTIMIZE + /* Log that the BSS is about to be cleared. */ + ALT_LOG_PUTS(alt_log_msg_bss) + + movhi r2, %hi(__bss_start) + ori r2, r2, %lo(__bss_start) + + movhi r3, %hi(__bss_end) + ori r3, r3, %lo(__bss_end) + + beq r2, r3, 1f + +0: + stw zero, (r2) + addi r2, r2, 4 + bltu r2, r3, 0b + +1: + + /* + * The following debug information tells the ISS not to run the loop above + * but to perform its actions using faster internal code. + */ + .pushsection .debug_alt_sim_info + .int 3, 1, 0b, 1b + .popsection +#endif /* ALT_SIM_OPTIMIZE */ + +/* + * The alt_load() facility is normally used when there is no bootloader. + * It copies some sections into RAM so it acts like a mini-bootloader. + */ +#ifdef CALL_ALT_LOAD + +#ifdef ALT_STACK_CHECK + /* + * If the user has selected stack checking then we need to set up a safe + * value in the stack limit register so that the relocation functions + * don't think the stack has overflowed (the contents of the rwdata + * section aren't defined until alt_load() has been called). + */ + mov et, zero +#endif + + call alt_load + +#endif /* CALL_ALT_LOAD */ + +#ifdef ALT_STACK_CHECK + /* + * Set up the stack limit (if required). The linker has set up the + * copy of the variable which is in memory. + */ + + ldw et, %gprel(alt_stack_limit_value)(gp) +#endif + + /* Log that alt_main is about to be called. */ + ALT_LOG_PUTS(alt_log_msg_alt_main) + + /* Call the C entry point. It should never return. */ + call alt_main + + /* Wait in infinite loop in case alt_main does return. */ +alt_after_alt_main: + br alt_after_alt_main + + .size _start, . - _start + +/* + * Add information about the stack base if stack overflow checking is enabled. + */ +#ifdef ALT_STACK_CHECK + .globl alt_stack_limit_value + .section .sdata,"aws",@progbits + .align 2 + .type alt_stack_limit_value, @object + .size alt_stack_limit_value, 4 +alt_stack_limit_value: + .long __alt_stack_limit +#endif diff --git a/software/qsys_tutorial_mem_bsp/Makefile b/software/qsys_tutorial_mem_bsp/Makefile new file mode 100644 index 0000000..dcf3b22 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/Makefile @@ -0,0 +1,766 @@ +#------------------------------------------------------------------------------ +# BSP MAKEFILE +# +# This makefile was automatically generated by the nios2-bsp-generate-files +# command. Its purpose is to build a custom Board Support Package (BSP) +# targeting a specific Nios II processor in an SOPC Builder-based design. +# +# To create an application or library Makefile which uses this BSP, try the +# nios2-app-generate-makefile or nios2-lib-generate-makefile commands. +#------------------------------------------------------------------------------ + +#------------------------------------------------------------------------------ +# TOOLS +#------------------------------------------------------------------------------ + +MKDIR := mkdir -p +ECHO := echo +SPACE := $(empty) $(empty) + +#------------------------------------------------------------------------------ +# The adjust-path macro +# +# If COMSPEC is defined, Make is launched from Windows through +# Cygwin. This adjust-path macro will call 'cygpath -u' on all +# paths to ensure they are readable by Make. +# +# If COMSPEC is not defined, Make is launched from *nix, and no adjustment +# is necessary +#------------------------------------------------------------------------------ + +ifndef COMSPEC +ifdef ComSpec +COMSPEC = $(ComSpec) +endif # ComSpec +endif # !COMSPEC + +ifdef COMSPEC + adjust-path = $(subst $(SPACE),\$(SPACE),$(shell cygpath -u "$1")) + adjust-path-mixed = $(subst $(SPACE),\$(SPACE),$(shell cygpath -m "$1")) +else + adjust-path = $(subst $(SPACE),\$(SPACE),$1) + adjust-path-mixed = $(subst $(SPACE),\$(SPACE),$1) +endif + +#------------------------------------------------------------------------------ +# DEFAULT TARGET +# +# The default target, "all", must appear before any other target in the +# Makefile. Note that extra prerequisites are added to the "all" rule later. +#------------------------------------------------------------------------------ +.PHONY: all +all: + @$(ECHO) [BSP build complete] + + +#------------------------------------------------------------------------------ +# PATHS & DIRECTORY NAMES +# +# Explicitly locate absolute path of the BSP root +#------------------------------------------------------------------------------ + +BSP_ROOT_DIR := . + +# Define absolute path to the root of the BSP. +ABS_BSP_ROOT := $(call adjust-path-mixed,$(shell pwd)) + +# Stash all BSP object files here +OBJ_DIR := ./obj + +NEWLIB_DIR = $(BSP_ROOT_DIR)/newlib + + +#------------------------------------------------------------------------------ +# MANAGED CONTENT +# +# All content between the lines "START MANAGED" and "END MANAGED" below is +# generated based on variables in the BSP settings file when the +# nios2-bsp-generate-files command is invoked. If you wish to persist any +# information pertaining to the build process, it is recomended that you +# utilize the BSP settings mechanism to do so. +# +# Note that most variable assignments in this section have a corresponding BSP +# setting that can be changed by using the nios2-bsp-create-settings or +# nios2-bsp-update-settings command before nios2-bsp-generate-files; if you +# want any variable set to a specific value when this Makefile is re-generated +# (to prevent hand-edits from being over-written), use the BSP settings +# facilities above. +#------------------------------------------------------------------------------ + +#START MANAGED + +# The following TYPE comment allows tools to identify the 'type' of target this +# makefile is associated with. +# TYPE: BSP_PRIVATE_MAKEFILE + +# This following VERSION comment indicates the version of the tool used to +# generate this makefile. A makefile variable is provided for VERSION as well. +# ACDS_VERSION: 13.0sp1 +ACDS_VERSION := 13.0sp1 + +# This following BUILD_NUMBER comment indicates the build number of the tool +# used to generate this makefile. +# BUILD_NUMBER: 232 + +SETTINGS_FILE := settings.bsp +SOPC_FILE := C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.sopcinfo + +#------------------------------------------------------------------------------- +# TOOL & COMMAND DEFINITIONS +# +# The base command for each build operation are expressed here. Additional +# switches may be expressed here. They will run for all instances of the +# utility. +#------------------------------------------------------------------------------- + +# Archiver command. Creates library files. +AR = nios2-elf-ar + +# Assembler command. Note that CC is used for .S files. +AS = nios2-elf-gcc + +# Custom flags only passed to the archiver. This content of this variable is +# directly passed to the archiver rather than the more standard "ARFLAGS". The +# reason for this is that GNU Make assumes some default content in ARFLAGS. +# This setting defines the value of BSP_ARFLAGS in Makefile. +BSP_ARFLAGS = -src + +# Custom flags only passed to the assembler. This setting defines the value of +# BSP_ASFLAGS in Makefile. +BSP_ASFLAGS = -Wa,-gdwarf2 + +# C/C++ compiler debug level. '-g' provides the default set of debug symbols +# typically required to debug a typical application. Omitting '-g' removes +# debug symbols from the ELF. This setting defines the value of +# BSP_CFLAGS_DEBUG in Makefile. +BSP_CFLAGS_DEBUG = -g + +# C/C++ compiler optimization level. "-O0" = no optimization,"-O2" = "normal" +# optimization, etc. "-O0" is recommended for code that you want to debug since +# compiler optimization can remove variables and produce non-sequential +# execution of code while debugging. This setting defines the value of +# BSP_CFLAGS_OPTIMIZATION in Makefile. +BSP_CFLAGS_OPTIMIZATION = '-Os' + +# C/C++ compiler warning level. "-Wall" is commonly used.This setting defines +# the value of BSP_CFLAGS_WARNINGS in Makefile. +BSP_CFLAGS_WARNINGS = -Wall + +# C compiler command. +CC = nios2-elf-gcc -xc + +# C++ compiler command. +CXX = nios2-elf-gcc -xc++ + +# Command used to remove files during 'clean' target. +RM = rm -f + + +#------------------------------------------------------------------------------- +# BUILD PRE & POST PROCESS COMMANDS +# +# The following variables are treated as shell commands in the rule +# definitions for each file-type associated with the BSP build, as well as +# commands run at the beginning and end of the entire BSP build operation. +# Pre-process commands are executed before the relevant command (for example, +# a command defined in the "CC_PRE_PROCESS" variable executes before the C +# compiler for building .c files), while post-process commands are executed +# immediately afterwards. +# +# You can view each pre/post-process command in the "Build Rules: All & +# Clean", "Pattern Rules to Build Objects", and "Library Rules" sections of +# this Makefile. +#------------------------------------------------------------------------------- + + +#------------------------------------------------------------------------------- +# BSP SOURCE BUILD SETTINGS (FLAG GENERATION) +# +# Software build settings such as compiler optimization, debug level, warning +# flags, etc., may be defined in the following variables. The variables below +# are concatenated together in the 'Flags' section of this Makefile to form +# final variables of flags passed to the build tools. +# +# These settings are considered private to the BSP and apply to all library & +# driver files in it; they do NOT automatically propagate to, for example, the +# build settings for an application. +# # For additional detail and syntax requirements, please refer to GCC help +# (example: "nios2-elf-gcc --help --verbose"). +# +# Unless indicated otherwise, multiple entries in each variable should be +# space-separated. +#------------------------------------------------------------------------------- + +# Altera HAL alt_sys_init.c generated source file +GENERATED_C_FILES := $(ABS_BSP_ROOT)/alt_sys_init.c +GENERATED_C_LIB_SRCS += alt_sys_init.c + + +#------------------------------------------------------------------------------- +# BSP SOURCE FILE LISTING +# +# All source files that comprise the BSP are listed here, along with path +# information to each file expressed relative to the BSP root. The precise +# list and location of each file is derived from the driver, operating system, +# or software package source file declarations. +# +# Following specification of the source files for each component, driver, etc., +# each source file type (C, assembly, etc.) is concatenated together and used +# to construct a list of objects. Pattern rules to build each object are then +# used to build each file. +#------------------------------------------------------------------------------- + +# altera_avalon_jtag_uart_driver sources root +altera_avalon_jtag_uart_driver_SRCS_ROOT := drivers + +# altera_avalon_jtag_uart_driver sources +altera_avalon_jtag_uart_driver_C_LIB_SRCS := \ + $(altera_avalon_jtag_uart_driver_SRCS_ROOT)/src/altera_avalon_jtag_uart_init.c \ + $(altera_avalon_jtag_uart_driver_SRCS_ROOT)/src/altera_avalon_jtag_uart_read.c \ + $(altera_avalon_jtag_uart_driver_SRCS_ROOT)/src/altera_avalon_jtag_uart_write.c \ + $(altera_avalon_jtag_uart_driver_SRCS_ROOT)/src/altera_avalon_jtag_uart_ioctl.c \ + $(altera_avalon_jtag_uart_driver_SRCS_ROOT)/src/altera_avalon_jtag_uart_fd.c + +# altera_avalon_pio_driver sources root +altera_avalon_pio_driver_SRCS_ROOT := drivers + +# altera_avalon_pio_driver sources +# altera_nios2_qsys_hal_driver sources root +altera_nios2_qsys_hal_driver_SRCS_ROOT := HAL + +# altera_nios2_qsys_hal_driver sources +altera_nios2_qsys_hal_driver_C_LIB_SRCS := \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/altera_nios2_qsys_irq.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_usleep.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_busy_sleep.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_irq_vars.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_icache_flush.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_icache_flush_all.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_dcache_flush.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_dcache_flush_all.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_dcache_flush_no_writeback.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_instruction_exception_entry.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_irq_register.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_iic.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_remap_cached.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_remap_uncached.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_uncached_free.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_uncached_malloc.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_do_ctors.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_do_dtors.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_gmon.c + +altera_nios2_qsys_hal_driver_ASM_LIB_SRCS := \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_exception_entry.S \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_exception_trap.S \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_exception_muldiv.S \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_irq_entry.S \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_software_exception.S \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_mcount.S \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_log_macro.S \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/crt0.S + +# hal sources root +hal_SRCS_ROOT := HAL + +# hal sources +hal_C_LIB_SRCS := \ + $(hal_SRCS_ROOT)/src/alt_alarm_start.c \ + $(hal_SRCS_ROOT)/src/alt_close.c \ + $(hal_SRCS_ROOT)/src/alt_dev.c \ + $(hal_SRCS_ROOT)/src/alt_dev_llist_insert.c \ + $(hal_SRCS_ROOT)/src/alt_dma_rxchan_open.c \ + $(hal_SRCS_ROOT)/src/alt_dma_txchan_open.c \ + $(hal_SRCS_ROOT)/src/alt_environ.c \ + $(hal_SRCS_ROOT)/src/alt_env_lock.c \ + $(hal_SRCS_ROOT)/src/alt_errno.c \ + $(hal_SRCS_ROOT)/src/alt_execve.c \ + $(hal_SRCS_ROOT)/src/alt_exit.c \ + $(hal_SRCS_ROOT)/src/alt_fcntl.c \ + $(hal_SRCS_ROOT)/src/alt_fd_lock.c \ + $(hal_SRCS_ROOT)/src/alt_fd_unlock.c \ + $(hal_SRCS_ROOT)/src/alt_find_dev.c \ + $(hal_SRCS_ROOT)/src/alt_find_file.c \ + $(hal_SRCS_ROOT)/src/alt_flash_dev.c \ + $(hal_SRCS_ROOT)/src/alt_fork.c \ + $(hal_SRCS_ROOT)/src/alt_fs_reg.c \ + $(hal_SRCS_ROOT)/src/alt_fstat.c \ + $(hal_SRCS_ROOT)/src/alt_get_fd.c \ + $(hal_SRCS_ROOT)/src/alt_getchar.c \ + $(hal_SRCS_ROOT)/src/alt_getpid.c \ + $(hal_SRCS_ROOT)/src/alt_gettod.c \ + $(hal_SRCS_ROOT)/src/alt_iic_isr_register.c \ + $(hal_SRCS_ROOT)/src/alt_instruction_exception_register.c \ + $(hal_SRCS_ROOT)/src/alt_ioctl.c \ + $(hal_SRCS_ROOT)/src/alt_io_redirect.c \ + $(hal_SRCS_ROOT)/src/alt_irq_handler.c \ + $(hal_SRCS_ROOT)/src/alt_isatty.c \ + $(hal_SRCS_ROOT)/src/alt_kill.c \ + $(hal_SRCS_ROOT)/src/alt_link.c \ + $(hal_SRCS_ROOT)/src/alt_load.c \ + $(hal_SRCS_ROOT)/src/alt_log_printf.c \ + $(hal_SRCS_ROOT)/src/alt_lseek.c \ + $(hal_SRCS_ROOT)/src/alt_main.c \ + $(hal_SRCS_ROOT)/src/alt_malloc_lock.c \ + $(hal_SRCS_ROOT)/src/alt_open.c \ + $(hal_SRCS_ROOT)/src/alt_printf.c \ + $(hal_SRCS_ROOT)/src/alt_putchar.c \ + $(hal_SRCS_ROOT)/src/alt_putstr.c \ + $(hal_SRCS_ROOT)/src/alt_read.c \ + $(hal_SRCS_ROOT)/src/alt_release_fd.c \ + $(hal_SRCS_ROOT)/src/alt_rename.c \ + $(hal_SRCS_ROOT)/src/alt_sbrk.c \ + $(hal_SRCS_ROOT)/src/alt_settod.c \ + $(hal_SRCS_ROOT)/src/alt_stat.c \ + $(hal_SRCS_ROOT)/src/alt_tick.c \ + $(hal_SRCS_ROOT)/src/alt_times.c \ + $(hal_SRCS_ROOT)/src/alt_unlink.c \ + $(hal_SRCS_ROOT)/src/alt_wait.c \ + $(hal_SRCS_ROOT)/src/alt_write.c + + +# Assemble all component C source files +COMPONENT_C_LIB_SRCS += \ + $(altera_avalon_jtag_uart_driver_C_LIB_SRCS) \ + $(altera_nios2_qsys_hal_driver_C_LIB_SRCS) \ + $(hal_C_LIB_SRCS) + +# Assemble all component assembly source files +COMPONENT_ASM_LIB_SRCS += \ + $(altera_nios2_qsys_hal_driver_ASM_LIB_SRCS) + +# Assemble all component C++ source files +COMPONENT_CPP_LIB_SRCS += \ + +#END MANAGED + +#------------------------------------------------------------------------------ +# PUBLIC.MK +# +# The generated public.mk file contains BSP information that is shared with +# other external makefiles, such as a Nios II application makefile. System- +# dependent information such as hardware-specific compiler flags and +# simulation file generation are stored here. +# +# In addition, public.mk contains include paths that various software, +# such as a device driver, may need for the C compiler. These paths are +# written to public.mk with respect to the BSP root. In public.mk, each +# path is prefixed with a special variable, $(ALT_LIBRARY_ROOT_DIR). The +# purpose of this variable is to allow an external Makefile to append on +# path information to precisely locate paths expressed in public.mk +# Since this is the BSP Makefile, we set ALT_LIBRARY_ROOT_DIR to point right +# here ("."), at the BSP root. +# +# ALT_LIBRARY_ROOT_DIR must always be set before public.mk is included. +#------------------------------------------------------------------------------ +ALT_LIBRARY_ROOT_DIR := . +include public.mk + + +#------------------------------------------------------------------------------ +# FLAGS +# +# Include paths for BSP files are written into the public.mk file and must +# be added to the existing list of pre-processor flags. In addition, "hooks" +# for standard flags left intentionally empty (CFLAGS, CPPFLAGS, ASFLAGS, +# and CXXFLAGS) are provided for conveniently adding to the relevant flags +# on the command-line or via script that calls make. +#------------------------------------------------------------------------------ +# Assemble final list of compiler flags from generated content +BSP_CFLAGS += \ + $(BSP_CFLAGS_DEFINED_SYMBOLS) \ + $(BSP_CFLAGS_UNDEFINED_SYMBOLS) \ + $(BSP_CFLAGS_OPTIMIZATION) \ + $(BSP_CFLAGS_DEBUG) \ + $(BSP_CFLAGS_WARNINGS) \ + $(BSP_CFLAGS_USER_FLAGS) \ + $(ALT_CFLAGS) \ + $(CFLAGS) + +# Make ready the final list of include directories and other C pre-processor +# flags. Each include path is made ready by prefixing it with "-I". +BSP_CPPFLAGS += \ + $(addprefix -I, $(BSP_INC_DIRS)) \ + $(addprefix -I, $(ALT_INCLUDE_DIRS)) \ + $(ALT_CPPFLAGS) \ + $(CPPFLAGS) + +# Finish off assembler flags with any user-provided flags +BSP_ASFLAGS += $(ASFLAGS) + +# Finish off C++ flags with any user-provided flags +BSP_CXXFLAGS += $(CXXFLAGS) + +# And finally, the ordered list +C_SRCS += $(GENERATED_C_LIB_SRCS) \ + $(COMPONENT_C_LIB_SRCS) + +CXX_SRCS += $(GENERATED_CPP_LIB_SRCS) \ + $(COMPONENT_CPP_LIB_SRCS) + +ASM_SRCS += $(GENERATED_ASM_LIB_SRCS) \ + $(COMPONENT_ASM_LIB_SRCS) + + +#------------------------------------------------------------------------------ +# LIST OF GENERATED FILES +# +# A Nios II BSP relies on the generation of several source files used +# by both the BSP and any applications referencing the BSP. +#------------------------------------------------------------------------------ + + +GENERATED_H_FILES := $(ABS_BSP_ROOT)/system.h + +GENERATED_LINKER_SCRIPT := $(ABS_BSP_ROOT)/linker.x + +GENERATED_FILES += $(GENERATED_H_FILES) \ + $(GENERATED_LINKER_SCRIPT) + + +#------------------------------------------------------------------------------ +# SETUP TO BUILD OBJECTS +# +# List of object files which are to be built. This is constructed from the input +# list of C source files (C_SRCS), C++ source files (CXX_SRCS), and assembler +# source file (ASM_SRCS). The permitted file extensions are: +# +# .c .C - for C files +# .cxx .cc .cpp .CXX .CC .CPP - for C++ files +# .S .s - for assembly files +# +# Extended description: The list of objects is a sorted list (duplicates +# removed) of all possible objects, placed beneath the ./obj directory, +# including any path information stored in the "*_SRCS" variable. The +# "patsubst" commands are used to concatenate together multiple file suffix +# types for common files (i.e. c++ as .cxx, .cc, .cpp). +# +# File extensions are case-insensitive in build rules with the exception of +# assembly sources. Nios II assembly sources with the ".S" extension are first +# run through the C preprocessor. Sources with the ".s" extension are not. +#------------------------------------------------------------------------------ +OBJS = $(sort $(addprefix $(OBJ_DIR)/, \ + $(patsubst %.c, %.o, $(patsubst %.C, %.o, $(C_SRCS))) \ + $(patsubst %.cxx, %.o, $(patsubst %.CXX, %.o, \ + $(patsubst %.cc, %.o, $(patsubst %.CC, %.o, \ + $(patsubst %.cpp, %.o, $(patsubst %.CPP, %.o, \ + $(CXX_SRCS) )))))) \ + $(patsubst %.S, %.o, $(patsubst %.s, %.o, $(ASM_SRCS))) )) + +# List of dependancy files for each object file. +DEPS = $(OBJS:.o=.d) + + +# Rules to force your project to rebuild or relink +# .force_relink file will cause any application that depends on this project to relink +# .force_rebuild file will cause this project to rebuild object files +# .force_rebuild_all file will cause this project and any project that depends on this project to rebuild object files + +FORCE_RELINK_DEP := .force_relink +FORCE_REBUILD_DEP := .force_rebuild +FORCE_REBUILD_ALL_DEP := .force_rebuild_all +FORCE_REBUILD_DEP_LIST := $(FORCE_RELINK_DEP) $(FORCE_REBUILD_DEP) $(FORCE_REBUILD_ALL_DEP) + +$(FORCE_REBUILD_DEP_LIST): + +$(OBJS): $(wildcard $(FORCE_REBUILD_DEP)) $(wildcard $(FORCE_REBUILD_ALL_DEP)) + + +#------------------------------------------------------------------------------ +# BUILD RULES: ALL & CLEAN +#------------------------------------------------------------------------------ +.DELETE_ON_ERROR: + +.PHONY: all +all: build_pre_process +all: Makefile $(GENERATED_FILES) $(BSP_LIB) $(NEWLIB_DIR) +all: build_post_process + + +# clean: remove .o/.a/.d +.PHONY: clean +clean: + @$(RM) -r $(BSP_LIB) $(OBJ_DIR) $(FORCE_REBUILD_DEP_LIST) +ifneq ($(wildcard $(NEWLIB_DIR)),) + @$(RM) -r $(NEWLIB_DIR) +endif + @$(ECHO) [BSP clean complete] + + +#------------------------------------------------------------------------------ +# BUILD PRE/POST PROCESS +#------------------------------------------------------------------------------ +build_pre_process : + $(BUILD_PRE_PROCESS) + +build_post_process : + $(BUILD_POST_PROCESS) + +.PHONY: build_pre_process build_post_process + + + +#------------------------------------------------------------------------------ +# MAKEFILE UP TO DATE? +# +# Is this very Makefile up to date? Someone may have changed the BSP settings +# file or the associated target hardware. +#------------------------------------------------------------------------------ +# Skip this check when clean is the only target +ifneq ($(MAKECMDGOALS),clean) + +ifneq ($(wildcard $(SETTINGS_FILE)),$(SETTINGS_FILE)) +$(warning Warning: BSP Settings File $(SETTINGS_FILE) could not be found.) +endif + +Makefile: $(wildcard $(SETTINGS_FILE)) + @$(ECHO) Makefile not up to date. + @$(ECHO) $(SETTINGS_FILE) has been modified since the BSP Makefile was generated. + @$(ECHO) + @$(ECHO) Generate the BSP to update the Makefile, and then build again. + @$(ECHO) + @$(ECHO) To generate from Eclipse: + @$(ECHO) " 1. Right-click the BSP project." + @$(ECHO) " 2. In the Nios II Menu, click Generate BSP." + @$(ECHO) + @$(ECHO) To generate from the command line: + @$(ECHO) " nios2-bsp-generate-files --settings= --bsp-dir=" + @$(ECHO) + @exit 1 + +ifneq ($(wildcard $(SOPC_FILE)),$(SOPC_FILE)) +$(warning Warning: SOPC File $(SOPC_FILE) could not be found.) +endif + +public.mk: $(wildcard $(SOPC_FILE)) + @$(ECHO) Makefile not up to date. + @$(ECHO) $(SOPC_FILE) has been modified since the BSP was generated. + @$(ECHO) + @$(ECHO) Generate the BSP to update the Makefile, and then build again. + @$(ECHO) + @$(ECHO) To generate from Eclipse: + @$(ECHO) " 1. Right-click the BSP project." + @$(ECHO) " 2. In the Nios II Menu, click Generate BSP." + @$(ECHO) + @$(ECHO) To generate from the command line: + @$(ECHO) " nios2-bsp-generate-files --settings= --bsp-dir=" + @$(ECHO) + @exit 1 + +endif # $(MAKECMDGOALS) != clean + +#------------------------------------------------------------------------------ +# PATTERN RULES TO BUILD OBJECTS +#------------------------------------------------------------------------------ +$(OBJ_DIR)/%.o: %.c + @$(ECHO) Compiling $( + +/* + * Device headers + */ + +#include "altera_nios2_qsys_irq.h" +#include "altera_avalon_jtag_uart.h" + +/* + * Allocate the device storage + */ + +ALTERA_NIOS2_QSYS_IRQ_INSTANCE ( NIOS2_PROCESSOR, nios2_processor); +ALTERA_AVALON_JTAG_UART_INSTANCE ( JTAG_UART, jtag_uart); + +/* + * Initialize the interrupt controller devices + * and then enable interrupts in the CPU. + * Called before alt_sys_init(). + * The "base" parameter is ignored and only + * present for backwards-compatibility. + */ + +void alt_irq_init ( const void* base ) +{ + ALTERA_NIOS2_QSYS_IRQ_INIT ( NIOS2_PROCESSOR, nios2_processor); + alt_irq_cpu_enable_interrupts(); +} + +/* + * Initialize the non-interrupt controller devices. + * Called after alt_irq_init(). + */ + +void alt_sys_init( void ) +{ + ALTERA_AVALON_JTAG_UART_INIT ( JTAG_UART, jtag_uart); +} diff --git a/software/qsys_tutorial_mem_bsp/create-this-bsp b/software/qsys_tutorial_mem_bsp/create-this-bsp new file mode 100644 index 0000000..49e6175 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/create-this-bsp @@ -0,0 +1,49 @@ +#!/bin/bash +# +# This script creates the ucosii_net_zipfs Board Support Package (BSP). + +BSP_TYPE=hal +BSP_DIR=. +SOPC_DIR=../../ +SOPC_FILE=C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.sopcinfo +NIOS2_BSP_ARGS="--set hal.max_file_descriptors 4 --set hal.enable_small_c_library true --set hal.sys_clk_timer none --set hal.timestamp_timer none --set hal.enable_exit false --set hal.enable_c_plus_plus false --set hal.enable_lightweight_device_driver_api true --set hal.enable_clean_exit false --set hal.enable_sim_optimize false --set hal.enable_reduced_device_drivers true --set hal.make.bsp_cflags_optimization '-Os'" +CPU_NAME= + + +# Don't run make if create-this-app script is called with --no-make arg +SKIP_MAKE= +while [ $# -gt 0 ] +do + case "$1" in + --no-make) + SKIP_MAKE=1 + ;; + *) + NIOS2_BSP_ARGS="$NIOS2_BSP_ARGS $1" + ;; + esac + shift +done + + +# Run nios2-bsp utility to create a hal BSP in this directory +# for the system with a .sopc file in $SOPC_FILE. +# Deprecating $SOPC_DIR in 10.1. Multiple .sopcinfo files in a directory may exist. + +if [ -z "$SOPC_FILE" ]; then + echo "WARNING: Use of a directory for locating a .sopcinfo file is deprecated in 10.1. Multiple .sopcinfo files may exist. You must specify the full .sopcinfo path." + cmd="nios2-bsp $BSP_TYPE $BSP_DIR $SOPC_DIR $NIOS2_BSP_ARGS $CPU_NAME" +else + cmd="nios2-bsp $BSP_TYPE $BSP_DIR $SOPC_FILE $NIOS2_BSP_ARGS $CPU_NAME" +fi + + +echo "create-this-bsp: Running \"$cmd\"" +$cmd || { + echo "$cmd failed" + exit 1 +} +if [ -z "$SKIP_MAKE" ]; then + echo "create-this-bsp: Running make" + make +fi diff --git a/software/qsys_tutorial_mem_bsp/drivers/inc/altera_avalon_jtag_uart.h b/software/qsys_tutorial_mem_bsp/drivers/inc/altera_avalon_jtag_uart.h new file mode 100644 index 0000000..95d4a99 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/drivers/inc/altera_avalon_jtag_uart.h @@ -0,0 +1,198 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#ifndef __ALT_AVALON_JTAG_UART_H__ +#define __ALT_AVALON_JTAG_UART_H__ + +#include + +#include "sys/alt_alarm.h" +#include "sys/alt_warning.h" + +#include "os/alt_sem.h" +#include "os/alt_flag.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * If the user wants all drivers to be small rather than fast then make sure + * this one is marked as needing to be small. + */ +#if defined ALT_USE_SMALL_DRIVERS && !defined ALTERA_AVALON_JTAG_UART_SMALL +#define ALTERA_AVALON_JTAG_UART_SMALL +#endif + +/* + * If the user wants to ignore FIFO full error after timeout + */ +#if defined ALT_JTAG_UART_IGNORE_FIFO_FULL_ERROR && !defined ALTERA_AVALON_JTAG_UART_IGNORE_FIFO_FULL_ERROR +#define ALTERA_AVALON_JTAG_UART_IGNORE_FIFO_FULL_ERROR +#endif + +/* + * Constants that can be overriden. + */ +#ifndef ALTERA_AVALON_JTAG_UART_DEFAULT_TIMEOUT +#define ALTERA_AVALON_JTAG_UART_DEFAULT_TIMEOUT 10 +#endif + +#ifndef ALTERA_AVALON_JTAG_UART_BUF_LEN +#define ALTERA_AVALON_JTAG_UART_BUF_LEN 2048 +#endif + +/* + * ALT_JTAG_UART_READ_RDY and ALT_JTAG_UART_WRITE_RDY are the bitmasks + * that define uC/OS-II event flags that are releated to this device. + * + * ALT_JTAG_UART_READ_RDY indicates that there is read data in the buffer + * ready to be processed. ALT_JTAG_UART_WRITE_RDY indicates that the transmitter is + * ready for more data. + */ +#define ALT_JTAG_UART_READ_RDY 0x1 +#define ALT_JTAG_UART_WRITE_RDY 0x2 +#define ALT_JTAG_UART_TIMEOUT 0x4 + +/* + * State structure definition. Each instance of the driver uses one + * of these structures to hold its associated state. + */ + +typedef struct altera_avalon_jtag_uart_state_s +{ + unsigned int base; + +#ifndef ALTERA_AVALON_JTAG_UART_SMALL + + unsigned int timeout; /* Timeout until host is assumed inactive */ + alt_alarm alarm; + unsigned int irq_enable; + unsigned int host_inactive; + + ALT_SEM (read_lock) + ALT_SEM (write_lock) + ALT_FLAG_GRP (events) + + /* The variables below are volatile because they are modified by the + * interrupt routine. Making them volatile and reading them atomically + * means that we don't need any large critical sections. + */ + volatile unsigned int rx_in; + unsigned int rx_out; + unsigned int tx_in; + volatile unsigned int tx_out; + char rx_buf[ALTERA_AVALON_JTAG_UART_BUF_LEN]; + char tx_buf[ALTERA_AVALON_JTAG_UART_BUF_LEN]; + +#endif /* !ALTERA_AVALON_JTAG_UART_SMALL */ + +} altera_avalon_jtag_uart_state; + +/* + * Macros used by alt_sys_init when the ALT file descriptor facility isn't used. + */ + +#ifdef ALTERA_AVALON_JTAG_UART_SMALL + +#define ALTERA_AVALON_JTAG_UART_STATE_INSTANCE(name, state) \ + altera_avalon_jtag_uart_state state = \ + { \ + name##_BASE, \ + } + +#define ALTERA_AVALON_JTAG_UART_STATE_INIT(name, state) + +#else /* !ALTERA_AVALON_JTAG_UART_SMALL */ + +#define ALTERA_AVALON_JTAG_UART_STATE_INSTANCE(name, state) \ + altera_avalon_jtag_uart_state state = \ + { \ + name##_BASE, \ + ALTERA_AVALON_JTAG_UART_DEFAULT_TIMEOUT, \ + } + +/* + * Externally referenced routines + */ +extern void altera_avalon_jtag_uart_init(altera_avalon_jtag_uart_state* sp, + int irq_controller_id, int irq); + +#define ALTERA_AVALON_JTAG_UART_STATE_INIT(name, state) \ + { \ + if (name##_IRQ == ALT_IRQ_NOT_CONNECTED) \ + { \ + ALT_LINK_ERROR ("Error: Interrupt not connected for " #name ". " \ + "You have selected the interrupt driven version of " \ + "the ALTERA Avalon JTAG UART driver, but the " \ + "interrupt is not connected for this device. You can " \ + "select a polled mode driver by checking the 'small " \ + "driver' option in the HAL configuration window, or " \ + "by using the -DALTERA_AVALON_JTAG_UART_SMALL " \ + "preprocessor flag."); \ + } \ + else \ + altera_avalon_jtag_uart_init(&state, \ + name##_IRQ_INTERRUPT_CONTROLLER_ID, \ + name##_IRQ); \ + } + +#endif /* ALTERA_AVALON_JTAG_UART_SMALL */ + +/* + * Include in case non-direct version of driver required. + */ +#include "altera_avalon_jtag_uart_fd.h" + +/* + * Map alt_sys_init macros to direct or non-direct versions. + */ +#ifdef ALT_USE_DIRECT_DRIVERS + +#define ALTERA_AVALON_JTAG_UART_INSTANCE(name, state) \ + ALTERA_AVALON_JTAG_UART_STATE_INSTANCE(name, state) +#define ALTERA_AVALON_JTAG_UART_INIT(name, state) \ + ALTERA_AVALON_JTAG_UART_STATE_INIT(name, state) + +#else /* !ALT_USE_DIRECT_DRIVERS */ + +#define ALTERA_AVALON_JTAG_UART_INSTANCE(name, dev) \ + ALTERA_AVALON_JTAG_UART_DEV_INSTANCE(name, dev) +#define ALTERA_AVALON_JTAG_UART_INIT(name, dev) \ + ALTERA_AVALON_JTAG_UART_DEV_INIT(name, dev) + +#endif /* ALT_USE_DIRECT_DRIVERS */ + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __ALT_AVALON_JTAG_UART_H__ */ diff --git a/software/qsys_tutorial_mem_bsp/drivers/inc/altera_avalon_jtag_uart_fd.h b/software/qsys_tutorial_mem_bsp/drivers/inc/altera_avalon_jtag_uart_fd.h new file mode 100644 index 0000000..b3c3200 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/drivers/inc/altera_avalon_jtag_uart_fd.h @@ -0,0 +1,125 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2007 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#ifndef __ALT_AVALON_JTAG_UART_FD_H__ +#define __ALT_AVALON_JTAG_UART_FD_H__ + +#include "sys/alt_dev.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * Externally referenced routines + */ +extern int altera_avalon_jtag_uart_read_fd (alt_fd* fd, char* ptr, int len); +extern int altera_avalon_jtag_uart_write_fd (alt_fd* fd, const char* ptr, + int len); + +/* + * Device structure definition. This is needed by alt_sys_init in order to + * reserve memory for the device instance. + */ + +typedef struct altera_avalon_jtag_uart_dev_s +{ + alt_dev dev; + altera_avalon_jtag_uart_state state; +} altera_avalon_jtag_uart_dev; + +/* + * Macros used by alt_sys_init when the ALT file descriptor facility is used. + */ + +#ifdef ALTERA_AVALON_JTAG_UART_SMALL + +#define ALTERA_AVALON_JTAG_UART_DEV_INSTANCE(name, d) \ + static altera_avalon_jtag_uart_dev d = \ + { \ + { \ + ALT_LLIST_ENTRY, \ + name##_NAME, \ + NULL, /* open */ \ + NULL, /* close */ \ + altera_avalon_jtag_uart_read_fd, \ + altera_avalon_jtag_uart_write_fd, \ + NULL, /* lseek */ \ + NULL, /* fstat */ \ + NULL, /* ioctl */ \ + }, \ + { \ + name##_BASE, \ + } \ + } + +#define ALTERA_AVALON_JTAG_UART_DEV_INIT(name, d) alt_dev_reg (&d.dev) + +#else /* !ALTERA_AVALON_JTAG_UART_SMALL */ + +extern int altera_avalon_jtag_uart_close_fd(alt_fd* fd); +extern int altera_avalon_jtag_uart_ioctl_fd (alt_fd* fd, int req, void* arg); + +#define ALTERA_AVALON_JTAG_UART_DEV_INSTANCE(name, d) \ + static altera_avalon_jtag_uart_dev d = \ + { \ + { \ + ALT_LLIST_ENTRY, \ + name##_NAME, \ + NULL, /* open */ \ + altera_avalon_jtag_uart_close_fd, \ + altera_avalon_jtag_uart_read_fd, \ + altera_avalon_jtag_uart_write_fd, \ + NULL, /* lseek */ \ + NULL, /* fstat */ \ + altera_avalon_jtag_uart_ioctl_fd, \ + }, \ + { \ + name##_BASE, \ + ALTERA_AVALON_JTAG_UART_DEFAULT_TIMEOUT, \ + } \ + } + +#define ALTERA_AVALON_JTAG_UART_DEV_INIT(name, d) \ + { \ + ALTERA_AVALON_JTAG_UART_STATE_INIT(name, d.state); \ + \ + /* make the device available to the system */ \ + alt_dev_reg(&d.dev); \ + } + +#endif /* ALTERA_AVALON_JTAG_UART_SMALL */ + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __ALT_AVALON_JTAG_UART_FD_H__ */ diff --git a/software/qsys_tutorial_mem_bsp/drivers/inc/altera_avalon_jtag_uart_regs.h b/software/qsys_tutorial_mem_bsp/drivers/inc/altera_avalon_jtag_uart_regs.h new file mode 100644 index 0000000..7f97160 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/drivers/inc/altera_avalon_jtag_uart_regs.h @@ -0,0 +1,73 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#ifndef __ALTERA_AVALON_JTAG_UART_REGS_H__ +#define __ALTERA_AVALON_JTAG_UART_REGS_H__ + +#include + +#define ALTERA_AVALON_JTAG_UART_DATA_REG 0 +#define IOADDR_ALTERA_AVALON_JTAG_UART_DATA(base) \ + __IO_CALC_ADDRESS_NATIVE(base, ALTERA_AVALON_JTAG_UART_DATA_REG) +#define IORD_ALTERA_AVALON_JTAG_UART_DATA(base) \ + IORD(base, ALTERA_AVALON_JTAG_UART_DATA_REG) +#define IOWR_ALTERA_AVALON_JTAG_UART_DATA(base, data) \ + IOWR(base, ALTERA_AVALON_JTAG_UART_DATA_REG, data) + +#define ALTERA_AVALON_JTAG_UART_DATA_DATA_MSK (0x000000FF) +#define ALTERA_AVALON_JTAG_UART_DATA_DATA_OFST (0) +#define ALTERA_AVALON_JTAG_UART_DATA_RVALID_MSK (0x00008000) +#define ALTERA_AVALON_JTAG_UART_DATA_RVALID_OFST (15) +#define ALTERA_AVALON_JTAG_UART_DATA_RAVAIL_MSK (0xFFFF0000) +#define ALTERA_AVALON_JTAG_UART_DATA_RAVAIL_OFST (16) + + +#define ALTERA_AVALON_JTAG_UART_CONTROL_REG 1 +#define IOADDR_ALTERA_AVALON_JTAG_UART_CONTROL(base) \ + __IO_CALC_ADDRESS_NATIVE(base, ALTERA_AVALON_JTAG_UART_CONTROL_REG) +#define IORD_ALTERA_AVALON_JTAG_UART_CONTROL(base) \ + IORD(base, ALTERA_AVALON_JTAG_UART_CONTROL_REG) +#define IOWR_ALTERA_AVALON_JTAG_UART_CONTROL(base, data) \ + IOWR(base, ALTERA_AVALON_JTAG_UART_CONTROL_REG, data) + +#define ALTERA_AVALON_JTAG_UART_CONTROL_RE_MSK (0x00000001) +#define ALTERA_AVALON_JTAG_UART_CONTROL_RE_OFST (0) +#define ALTERA_AVALON_JTAG_UART_CONTROL_WE_MSK (0x00000002) +#define ALTERA_AVALON_JTAG_UART_CONTROL_WE_OFST (1) +#define ALTERA_AVALON_JTAG_UART_CONTROL_RI_MSK (0x00000100) +#define ALTERA_AVALON_JTAG_UART_CONTROL_RI_OFST (8) +#define ALTERA_AVALON_JTAG_UART_CONTROL_WI_MSK (0x00000200) +#define ALTERA_AVALON_JTAG_UART_CONTROL_WI_OFST (9) +#define ALTERA_AVALON_JTAG_UART_CONTROL_AC_MSK (0x00000400) +#define ALTERA_AVALON_JTAG_UART_CONTROL_AC_OFST (10) +#define ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_MSK (0xFFFF0000) +#define ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_OFST (16) + +#endif /* __ALTERA_AVALON_JTAG_UART_REGS_H__ */ diff --git a/software/qsys_tutorial_mem_bsp/drivers/inc/altera_avalon_pio_regs.h b/software/qsys_tutorial_mem_bsp/drivers/inc/altera_avalon_pio_regs.h new file mode 100644 index 0000000..052439f --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/drivers/inc/altera_avalon_pio_regs.h @@ -0,0 +1,67 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#ifndef __ALTERA_AVALON_PIO_REGS_H__ +#define __ALTERA_AVALON_PIO_REGS_H__ + +#include + +#define IOADDR_ALTERA_AVALON_PIO_DATA(base) __IO_CALC_ADDRESS_NATIVE(base, 0) +#define IORD_ALTERA_AVALON_PIO_DATA(base) IORD(base, 0) +#define IOWR_ALTERA_AVALON_PIO_DATA(base, data) IOWR(base, 0, data) + +#define IOADDR_ALTERA_AVALON_PIO_DIRECTION(base) __IO_CALC_ADDRESS_NATIVE(base, 1) +#define IORD_ALTERA_AVALON_PIO_DIRECTION(base) IORD(base, 1) +#define IOWR_ALTERA_AVALON_PIO_DIRECTION(base, data) IOWR(base, 1, data) + +#define IOADDR_ALTERA_AVALON_PIO_IRQ_MASK(base) __IO_CALC_ADDRESS_NATIVE(base, 2) +#define IORD_ALTERA_AVALON_PIO_IRQ_MASK(base) IORD(base, 2) +#define IOWR_ALTERA_AVALON_PIO_IRQ_MASK(base, data) IOWR(base, 2, data) + +#define IOADDR_ALTERA_AVALON_PIO_EDGE_CAP(base) __IO_CALC_ADDRESS_NATIVE(base, 3) +#define IORD_ALTERA_AVALON_PIO_EDGE_CAP(base) IORD(base, 3) +#define IOWR_ALTERA_AVALON_PIO_EDGE_CAP(base, data) IOWR(base, 3, data) + + +#define IOADDR_ALTERA_AVALON_PIO_SET_BIT(base) __IO_CALC_ADDRESS_NATIVE(base, 4) +#define IORD_ALTERA_AVALON_PIO_SET_BITS(base) IORD(base, 4) +#define IOWR_ALTERA_AVALON_PIO_SET_BITS(base, data) IOWR(base, 4, data) + +#define IOADDR_ALTERA_AVALON_PIO_CLEAR_BITS(base) __IO_CALC_ADDRESS_NATIVE(base, 5) +#define IORD_ALTERA_AVALON_PIO_CLEAR_BITS(base) IORD(base, 5) +#define IOWR_ALTERA_AVALON_PIO_CLEAR_BITS(base, data) IOWR(base, 5, data) + + + +/* Defintions for direction-register operation with bi-directional PIOs */ +#define ALTERA_AVALON_PIO_DIRECTION_INPUT 0 +#define ALTERA_AVALON_PIO_DIRECTION_OUTPUT 1 + +#endif /* __ALTERA_AVALON_PIO_REGS_H__ */ diff --git a/software/qsys_tutorial_mem_bsp/drivers/src/altera_avalon_jtag_uart_fd.c b/software/qsys_tutorial_mem_bsp/drivers/src/altera_avalon_jtag_uart_fd.c new file mode 100644 index 0000000..53dfc3b --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/drivers/src/altera_avalon_jtag_uart_fd.c @@ -0,0 +1,86 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2007 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "alt_types.h" +#include "sys/alt_dev.h" +#include "altera_avalon_jtag_uart.h" + +extern int altera_avalon_jtag_uart_read(altera_avalon_jtag_uart_state* sp, + char* buffer, int space, int flags); +extern int altera_avalon_jtag_uart_write(altera_avalon_jtag_uart_state* sp, + const char* ptr, int count, int flags); +extern int altera_avalon_jtag_uart_ioctl(altera_avalon_jtag_uart_state* sp, + int req, void* arg); +extern int altera_avalon_jtag_uart_close(altera_avalon_jtag_uart_state* sp, + int flags); + +/* ----------------------------------------------------------------------- */ +/* --------------------- WRAPPERS FOR ALT FD SUPPORT --------------------- */ +/* + * + */ + +int +altera_avalon_jtag_uart_read_fd(alt_fd* fd, char* buffer, int space) +{ + altera_avalon_jtag_uart_dev* dev = (altera_avalon_jtag_uart_dev*) fd->dev; + + return altera_avalon_jtag_uart_read(&dev->state, buffer, space, + fd->fd_flags); +} + +int +altera_avalon_jtag_uart_write_fd(alt_fd* fd, const char* buffer, int space) +{ + altera_avalon_jtag_uart_dev* dev = (altera_avalon_jtag_uart_dev*) fd->dev; + + return altera_avalon_jtag_uart_write(&dev->state, buffer, space, + fd->fd_flags); +} + +#ifndef ALTERA_AVALON_JTAG_UART_SMALL + +int +altera_avalon_jtag_uart_close_fd(alt_fd* fd) +{ + altera_avalon_jtag_uart_dev* dev = (altera_avalon_jtag_uart_dev*) fd->dev; + + return altera_avalon_jtag_uart_close(&dev->state, fd->fd_flags); +} + +int +altera_avalon_jtag_uart_ioctl_fd(alt_fd* fd, int req, void* arg) +{ + altera_avalon_jtag_uart_dev* dev = (altera_avalon_jtag_uart_dev*) fd->dev; + + return altera_avalon_jtag_uart_ioctl(&dev->state, req, arg); +} + +#endif /* ALTERA_AVALON_JTAG_UART_SMALL */ diff --git a/software/qsys_tutorial_mem_bsp/drivers/src/altera_avalon_jtag_uart_init.c b/software/qsys_tutorial_mem_bsp/drivers/src/altera_avalon_jtag_uart_init.c new file mode 100644 index 0000000..7317bec --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/drivers/src/altera_avalon_jtag_uart_init.c @@ -0,0 +1,256 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2007 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include +#include +#include +#include + +#include + +#include "sys/alt_irq.h" +#include "sys/alt_alarm.h" +#include "sys/ioctl.h" +#include "alt_types.h" + +#include "altera_avalon_jtag_uart_regs.h" +#include "altera_avalon_jtag_uart.h" + +#include "sys/alt_log_printf.h" + +#ifndef ALTERA_AVALON_JTAG_UART_SMALL + +/* ----------------------------------------------------------- */ +/* ------------------------- FAST DRIVER --------------------- */ +/* ----------------------------------------------------------- */ +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT +static void altera_avalon_jtag_uart_irq(void* context); +#else +static void altera_avalon_jtag_uart_irq(void* context, alt_u32 id); +#endif +static alt_u32 altera_avalon_jtag_uart_timeout(void* context); + +/* + * Driver initialization code. Register interrupts and start a timer + * which we can use to check whether the host is there. + * Return 1 on sucessful IRQ register and 0 on failure. + */ + +void altera_avalon_jtag_uart_init(altera_avalon_jtag_uart_state* sp, + int irq_controller_id, int irq) +{ + ALT_FLAG_CREATE(&sp->events, 0); + ALT_SEM_CREATE(&sp->read_lock, 1); + ALT_SEM_CREATE(&sp->write_lock, 1); + + /* enable read interrupts at the device */ + sp->irq_enable = ALTERA_AVALON_JTAG_UART_CONTROL_RE_MSK; + + IOWR_ALTERA_AVALON_JTAG_UART_CONTROL(sp->base, sp->irq_enable); + + /* register the interrupt handler */ +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT + alt_ic_isr_register(irq_controller_id, irq, altera_avalon_jtag_uart_irq, + sp, NULL); +#else + alt_irq_register(irq, sp, altera_avalon_jtag_uart_irq); +#endif + + /* Register an alarm to go off every second to check for presence of host */ + sp->host_inactive = 0; + + if (alt_alarm_start(&sp->alarm, alt_ticks_per_second(), + &altera_avalon_jtag_uart_timeout, sp) < 0) + { + /* If we can't set the alarm then record "don't know if host present" + * and behave as though the host is present. + */ + sp->timeout = INT_MAX; + } + + /* ALT_LOG - see altera_hal/HAL/inc/sys/alt_log_printf.h */ + ALT_LOG_JTAG_UART_ALARM_REGISTER(sp, sp->base); +} + +/* + * Interrupt routine + */ +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT +static void altera_avalon_jtag_uart_irq(void* context) +#else +static void altera_avalon_jtag_uart_irq(void* context, alt_u32 id) +#endif +{ + altera_avalon_jtag_uart_state* sp = (altera_avalon_jtag_uart_state*) context; + unsigned int base = sp->base; + + /* ALT_LOG - see altera_hal/HAL/inc/sys/alt_log_printf.h */ + ALT_LOG_JTAG_UART_ISR_FUNCTION(base, sp); + + for ( ; ; ) + { + unsigned int control = IORD_ALTERA_AVALON_JTAG_UART_CONTROL(base); + + /* Return once nothing more to do */ + if ((control & (ALTERA_AVALON_JTAG_UART_CONTROL_RI_MSK | ALTERA_AVALON_JTAG_UART_CONTROL_WI_MSK)) == 0) + break; + + if (control & ALTERA_AVALON_JTAG_UART_CONTROL_RI_MSK) + { + /* process a read irq. Start by assuming that there is data in the + * receive FIFO (otherwise why would we have been interrupted?) + */ + unsigned int data = 1 << ALTERA_AVALON_JTAG_UART_DATA_RAVAIL_OFST; + + for ( ; ; ) + { + /* Check whether there is space in the buffer. If not then we must not + * read any characters from the buffer as they will be lost. + */ + unsigned int next = (sp->rx_in + 1) % ALTERA_AVALON_JTAG_UART_BUF_LEN; + if (next == sp->rx_out) + break; + + /* Try to remove a character from the FIFO and find out whether there + * are any more characters remaining. + */ + data = IORD_ALTERA_AVALON_JTAG_UART_DATA(base); + + if ((data & ALTERA_AVALON_JTAG_UART_DATA_RVALID_MSK) == 0) + break; + + sp->rx_buf[sp->rx_in] = (data & ALTERA_AVALON_JTAG_UART_DATA_DATA_MSK) >> ALTERA_AVALON_JTAG_UART_DATA_DATA_OFST; + sp->rx_in = (sp->rx_in + 1) % ALTERA_AVALON_JTAG_UART_BUF_LEN; + + /* Post an event to notify jtag_uart_read that a character has been read */ + ALT_FLAG_POST (sp->events, ALT_JTAG_UART_READ_RDY, OS_FLAG_SET); + } + + if (data & ALTERA_AVALON_JTAG_UART_DATA_RAVAIL_MSK) + { + /* If there is still data available here then the buffer is full + * so turn off receive interrupts until some space becomes available. + */ + sp->irq_enable &= ~ALTERA_AVALON_JTAG_UART_CONTROL_RE_MSK; + IOWR_ALTERA_AVALON_JTAG_UART_CONTROL(base, sp->irq_enable); + + /* Dummy read to ensure IRQ is cleared prior to ISR completion */ + IORD_ALTERA_AVALON_JTAG_UART_CONTROL(base); + } + } + + if (control & ALTERA_AVALON_JTAG_UART_CONTROL_WI_MSK) + { + /* process a write irq */ + unsigned int space = (control & ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_MSK) >> ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_OFST; + + while (space > 0 && sp->tx_out != sp->tx_in) + { + IOWR_ALTERA_AVALON_JTAG_UART_DATA(base, sp->tx_buf[sp->tx_out]); + + sp->tx_out = (sp->tx_out + 1) % ALTERA_AVALON_JTAG_UART_BUF_LEN; + + /* Post an event to notify jtag_uart_write that a character has been written */ + ALT_FLAG_POST (sp->events, ALT_JTAG_UART_WRITE_RDY, OS_FLAG_SET); + + space--; + } + + if (space > 0) + { + /* If we don't have any more data available then turn off the TX interrupt */ + sp->irq_enable &= ~ALTERA_AVALON_JTAG_UART_CONTROL_WE_MSK; + IOWR_ALTERA_AVALON_JTAG_UART_CONTROL(sp->base, sp->irq_enable); + + /* Dummy read to ensure IRQ is cleared prior to ISR completion */ + IORD_ALTERA_AVALON_JTAG_UART_CONTROL(base); + } + } + } +} + +/* + * Timeout routine is called every second + */ + +static alt_u32 +altera_avalon_jtag_uart_timeout(void* context) +{ + altera_avalon_jtag_uart_state* sp = (altera_avalon_jtag_uart_state *) context; + + unsigned int control = IORD_ALTERA_AVALON_JTAG_UART_CONTROL(sp->base); + + if (control & ALTERA_AVALON_JTAG_UART_CONTROL_AC_MSK) + { + IOWR_ALTERA_AVALON_JTAG_UART_CONTROL(sp->base, sp->irq_enable | ALTERA_AVALON_JTAG_UART_CONTROL_AC_MSK); + sp->host_inactive = 0; + } + else if (sp->host_inactive < INT_MAX - 2) { + sp->host_inactive++; + + if (sp->host_inactive >= sp->timeout) { + /* Post an event to indicate host is inactive (for jtag_uart_read */ + ALT_FLAG_POST (sp->events, ALT_JTAG_UART_TIMEOUT, OS_FLAG_SET); + } + } + + return alt_ticks_per_second(); +} + +/* + * The close() routine is implemented to drain the JTAG UART transmit buffer + * when not in "small" mode. This routine will wait for transimt data to be + * emptied unless a timeout from host-activity occurs. If the driver flags + * have been set to non-blocking mode, this routine will exit immediately if + * any data remains. This routine should be called indirectly (i.e. though + * the C library close() routine) so that the file descriptor associated + * with the relevant stream (i.e. stdout) can be closed as well. This routine + * does not manage file descriptors. + * + * The close routine is not implemented for the small driver; instead it will + * map to null. This is because the small driver simply waits while characters + * are transmitted; there is no interrupt-serviced buffer to empty + */ +int altera_avalon_jtag_uart_close(altera_avalon_jtag_uart_state* sp, int flags) +{ + /* + * Wait for all transmit data to be emptied by the JTAG UART ISR, or + * for a host-inactivity timeout, in which case transmit data will be lost + */ + while ( (sp->tx_out != sp->tx_in) && (sp->host_inactive < sp->timeout) ) { + if (flags & O_NONBLOCK) { + return -EWOULDBLOCK; + } + } + + return 0; +} + +#endif /* !ALTERA_AVALON_JTAG_UART_SMALL */ diff --git a/software/qsys_tutorial_mem_bsp/drivers/src/altera_avalon_jtag_uart_ioctl.c b/software/qsys_tutorial_mem_bsp/drivers/src/altera_avalon_jtag_uart_ioctl.c new file mode 100644 index 0000000..cf71e6f --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/drivers/src/altera_avalon_jtag_uart_ioctl.c @@ -0,0 +1,86 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include +#include +#include +#include + +#include + +#include "sys/ioctl.h" +#include "alt_types.h" + +#include "altera_avalon_jtag_uart_regs.h" +#include "altera_avalon_jtag_uart.h" + +#include "sys/alt_log_printf.h" + +#ifndef ALTERA_AVALON_JTAG_UART_SMALL + +/* ----------------------------------------------------------- */ +/* ------------------------- FAST DRIVER --------------------- */ +/* ----------------------------------------------------------- */ + +int +altera_avalon_jtag_uart_ioctl(altera_avalon_jtag_uart_state* sp, int req, + void* arg) +{ + int rc = -ENOTTY; + + switch (req) + { + case TIOCSTIMEOUT: + /* Set the time to wait until assuming host is not connected */ + if (sp->timeout != INT_MAX) + { + int timeout = *((int *)arg); + sp->timeout = (timeout >= 2 && timeout < INT_MAX) ? timeout : INT_MAX - 1; + rc = 0; + } + break; + + case TIOCGCONNECTED: + /* Find out whether host is connected */ + if (sp->timeout != INT_MAX) + { + *((int *)arg) = (sp->host_inactive < sp->timeout) ? 1 : 0; + rc = 0; + } + break; + + default: + break; + } + + return rc; +} + +#endif /* !ALTERA_AVALON_JTAG_UART_SMALL */ diff --git a/software/qsys_tutorial_mem_bsp/drivers/src/altera_avalon_jtag_uart_read.c b/software/qsys_tutorial_mem_bsp/drivers/src/altera_avalon_jtag_uart_read.c new file mode 100644 index 0000000..5657adb --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/drivers/src/altera_avalon_jtag_uart_read.c @@ -0,0 +1,205 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include +#include +#include +#include + +#include + +#include "sys/alt_irq.h" +#include "sys/alt_alarm.h" +#include "sys/ioctl.h" +#include "alt_types.h" + +#include "altera_avalon_jtag_uart_regs.h" +#include "altera_avalon_jtag_uart.h" + +#include "sys/alt_log_printf.h" + +#ifdef __ucosii__ +#include "includes.h" +#endif /* __ucosii__ */ + +#ifdef ALTERA_AVALON_JTAG_UART_SMALL + +/* ----------------------------------------------------------- */ +/* ----------------------- SMALL DRIVER ---------------------- */ +/* ----------------------------------------------------------- */ + +/* Read routine. The small version blocks until it has at least one byte + * available, it then returns as much as is immediately available without + * waiting any more. It's performance will be very poor without + * interrupts. + */ + +int +altera_avalon_jtag_uart_read(altera_avalon_jtag_uart_state* sp, + char* buffer, int space, int flags) +{ + unsigned int base = sp->base; + + char * ptr = buffer; + char * end = buffer + space; + + while (ptr < end) + { + unsigned int data = IORD_ALTERA_AVALON_JTAG_UART_DATA(base); + + if (data & ALTERA_AVALON_JTAG_UART_DATA_RVALID_MSK) + *ptr++ = (data & ALTERA_AVALON_JTAG_UART_DATA_DATA_MSK) >> ALTERA_AVALON_JTAG_UART_DATA_DATA_OFST; + else if (ptr != buffer) + break; + else if(flags & O_NONBLOCK) + break; + + } + + if (ptr != buffer) + return ptr - buffer; + else if (flags & O_NONBLOCK) + return -EWOULDBLOCK; + else + return -EIO; +} + +#else /* !ALTERA_AVALON_JTAG_UART_SMALL */ + +/* ----------------------------------------------------------- */ +/* ----------------------- FAST DRIVER ----------------------- */ +/* ----------------------------------------------------------- */ + +int +altera_avalon_jtag_uart_read(altera_avalon_jtag_uart_state* sp, + char * buffer, int space, int flags) +{ + char * ptr = buffer; + + alt_irq_context context; + unsigned int n; + + /* + * When running in a multi threaded environment, obtain the "read_lock" + * semaphore. This ensures that reading from the device is thread-safe. + */ + ALT_SEM_PEND (sp->read_lock, 0); + + while (space > 0) + { + unsigned int in, out; + + /* Read as much data as possible */ + do + { + in = sp->rx_in; + out = sp->rx_out; + + if (in >= out) + n = in - out; + else + n = ALTERA_AVALON_JTAG_UART_BUF_LEN - out; + + if (n == 0) + break; /* No more data available */ + + if (n > space) + n = space; + + memcpy(ptr, sp->rx_buf + out, n); + ptr += n; + space -= n; + + sp->rx_out = (out + n) % ALTERA_AVALON_JTAG_UART_BUF_LEN; + } + while (space > 0); + + /* If we read any data then return it */ + if (ptr != buffer) + break; + + /* If in non-blocking mode then return error */ + if (flags & O_NONBLOCK) + break; + +#ifdef __ucosii__ + /* OS Present: Pend on a flag if the OS is running, otherwise spin */ + if(OSRunning == OS_TRUE) { + /* + * When running in a multi-threaded mode, we pend on the read event + * flag set and timeout event flag set in the isr. This avoids wasting CPU + * cycles waiting in this thread, when we could be doing something more + * profitable elsewhere. + */ + ALT_FLAG_PEND (sp->events, + ALT_JTAG_UART_READ_RDY | ALT_JTAG_UART_TIMEOUT, + OS_FLAG_WAIT_SET_ANY + OS_FLAG_CONSUME, + 0); + } + else { + /* Spin until more data arrives or until host disconnects */ + while (in == sp->rx_in && sp->host_inactive < sp->timeout) + ; + } +#else + /* No OS: Always spin */ + while (in == sp->rx_in && sp->host_inactive < sp->timeout) + ; +#endif /* __ucosii__ */ + + if (in == sp->rx_in) + break; + } + + /* + * Now that access to the circular buffer is complete, release the read + * semaphore so that other threads can access the buffer. + */ + + ALT_SEM_POST (sp->read_lock); + + if (ptr != buffer) + { + /* If we read any data then there is space in the buffer so enable interrupts */ + context = alt_irq_disable_all(); + sp->irq_enable |= ALTERA_AVALON_JTAG_UART_CONTROL_RE_MSK; + IOWR_ALTERA_AVALON_JTAG_UART_CONTROL(sp->base, sp->irq_enable); + alt_irq_enable_all(context); + } + + if (ptr != buffer) + return ptr - buffer; + else if (flags & O_NONBLOCK) + return -EWOULDBLOCK; + else + return -EIO; +} + +#endif /* ALTERA_AVALON_JTAG_UART_SMALL */ diff --git a/software/qsys_tutorial_mem_bsp/drivers/src/altera_avalon_jtag_uart_write.c b/software/qsys_tutorial_mem_bsp/drivers/src/altera_avalon_jtag_uart_write.c new file mode 100644 index 0000000..11aeca1 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/drivers/src/altera_avalon_jtag_uart_write.c @@ -0,0 +1,217 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include +#include +#include +#include + +#include + +#include "sys/alt_irq.h" +#include "sys/alt_alarm.h" +#include "sys/ioctl.h" +#include "alt_types.h" + +#include "altera_avalon_jtag_uart_regs.h" +#include "altera_avalon_jtag_uart.h" + +#include "sys/alt_log_printf.h" + +#ifdef __ucosii__ +#include "includes.h" +#endif /* __ucosii__ */ + +#ifdef ALTERA_AVALON_JTAG_UART_SMALL + +/* ----------------------------------------------------------- */ +/* ------------------------ SMALL DRIVER --------------------- */ +/* ----------------------------------------------------------- */ + +/* Write routine. The small version blocks when there is no space to write + * into, so it's performance will be very bad if you are writing more than + * one FIFOs worth of data. But you said you didn't want to use interrupts :-) + */ + +int altera_avalon_jtag_uart_write(altera_avalon_jtag_uart_state* sp, + const char * ptr, int count, int flags) +{ + unsigned int base = sp->base; + + const char * end = ptr + count; + + while (ptr < end) + if ((IORD_ALTERA_AVALON_JTAG_UART_CONTROL(base) & ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_MSK) != 0) + IOWR_ALTERA_AVALON_JTAG_UART_DATA(base, *ptr++); + + return count; +} + +#else /* !ALTERA_AVALON_JTAG_UART_SMALL */ + +/* ----------------------------------------------------------- */ +/* ------------------------- FAST DRIVER --------------------- */ +/* ----------------------------------------------------------- */ + +int +altera_avalon_jtag_uart_write(altera_avalon_jtag_uart_state* sp, + const char * ptr, int count, int flags) +{ + /* Remove warning at optimisation level 03 by seting out to 0 */ + unsigned int in, out=0; + unsigned int n; + alt_irq_context context; + + const char * start = ptr; + + /* + * When running in a multi threaded environment, obtain the "write_lock" + * semaphore. This ensures that writing to the device is thread-safe. + */ + ALT_SEM_PEND (sp->write_lock, 0); + + do + { + /* Copy as much as we can into the transmit buffer */ + while (count > 0) + { + /* We need a stable value of the out pointer to calculate the space available */ + in = sp->tx_in; + out = sp->tx_out; + + if (in < out) + n = out - 1 - in; + else if (out > 0) + n = ALTERA_AVALON_JTAG_UART_BUF_LEN - in; + else + n = ALTERA_AVALON_JTAG_UART_BUF_LEN - 1 - in; + + if (n == 0) + break; + + if (n > count) + n = count; + + memcpy(sp->tx_buf + in, ptr, n); + ptr += n; + count -= n; + + sp->tx_in = (in + n) % ALTERA_AVALON_JTAG_UART_BUF_LEN; + } + + /* + * If interrupts are disabled then we could transmit here, we only need + * to enable interrupts if there is no space left in the FIFO + * + * For now kick the interrupt routine every time to make it transmit + * the data + */ + context = alt_irq_disable_all(); + sp->irq_enable |= ALTERA_AVALON_JTAG_UART_CONTROL_WE_MSK; + IOWR_ALTERA_AVALON_JTAG_UART_CONTROL(sp->base, sp->irq_enable); + alt_irq_enable_all(context); + + /* + * If there is any data left then either return now or block until + * some has been sent + */ + /* consider: test whether there is anything there while doing this and delay for at most 2s. */ + if (count > 0) + { + if (flags & O_NONBLOCK) + break; + +#ifdef __ucosii__ + /* OS Present: Pend on a flag if the OS is running, otherwise spin */ + if(OSRunning == OS_TRUE) { + /* + * When running in a multi-threaded mode, we pend on the write event + * flag set or the timeout flag in the isr. This avoids wasting CPU + * cycles waiting in this thread, when we could be doing something + * more profitable elsewhere. + */ +#ifdef ALTERA_AVALON_JTAG_UART_IGNORE_FIFO_FULL_ERROR + if(!sp->host_inactive) +#endif + ALT_FLAG_PEND (sp->events, + ALT_JTAG_UART_WRITE_RDY | ALT_JTAG_UART_TIMEOUT, + OS_FLAG_WAIT_SET_ANY + OS_FLAG_CONSUME, + 0); + } + else { + /* + * OS not running: Wait for data to be removed from buffer. + * Once the interrupt routine has removed some data then we + * will be able to insert some more. + */ + while (out == sp->tx_out && sp->host_inactive < sp->timeout) + ; + } +#else + /* + * No OS present: Always wait for data to be removed from buffer. Once + * the interrupt routine has removed some data then we will be able to + * insert some more. + */ + while (out == sp->tx_out && sp->host_inactive < sp->timeout) + ; +#endif /* __ucosii__ */ + + if (out == sp->tx_out) + break; + } + } + while (count > 0); + + /* + * Now that access to the circular buffer is complete, release the write + * semaphore so that other threads can access the buffer. + */ + ALT_SEM_POST (sp->write_lock); + + if (ptr != start) + return ptr - start; + else if (flags & O_NONBLOCK) + return -EWOULDBLOCK; +#ifdef ALTERA_AVALON_JTAG_UART_IGNORE_FIFO_FULL_ERROR + else if (sp->host_inactive >= sp->timeout) { + /* + * Reset the software FIFO, hardware FIFO could not be reset. + * Just throw away characters without reporting error. + */ + sp->tx_out = sp->tx_in = 0; + return ptr - start + count; + } +#endif + else + return -EIO; /* Host not connected */ +} + +#endif /* ALTERA_AVALON_JTAG_UART_SMALL */ diff --git a/software/qsys_tutorial_mem_bsp/libhal_bsp.a b/software/qsys_tutorial_mem_bsp/libhal_bsp.a new file mode 100644 index 0000000..20b96a6 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/libhal_bsp.a Binary files differ diff --git a/software/qsys_tutorial_mem_bsp/linker.h b/software/qsys_tutorial_mem_bsp/linker.h new file mode 100644 index 0000000..c244e99 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/linker.h @@ -0,0 +1,101 @@ +/* + * linker.h - Linker script mapping information + * + * Machine generated for CPU 'nios2_processor' in SOPC Builder design 'nios_system' + * SOPC Builder design path: C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.sopcinfo + * + * Generated: Fri Nov 25 16:59:33 JST 2016 + */ + +/* + * DO NOT MODIFY THIS FILE + * + * Changing this file will have subtle consequences + * which will almost certainly lead to a nonfunctioning + * system. If you do modify this file, be aware that your + * changes will be overwritten and lost when this file + * is generated again. + * + * DO NOT MODIFY THIS FILE + */ + +/* + * License Agreement + * + * Copyright (c) 2008 + * Altera Corporation, San Jose, California, USA. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + * This agreement shall be governed in all respects by the laws of the State + * of California and by the laws of the United States of America. + */ + +#ifndef __LINKER_H_ +#define __LINKER_H_ + + +/* + * BSP controls alt_load() behavior in crt0. + * + */ + +#define ALT_LOAD_EXPLICITLY_CONTROLLED + + +/* + * Base address and span (size in bytes) of each linker region + * + */ + +#define ONCHIP_MEMORY_REGION_BASE 0x20 +#define ONCHIP_MEMORY_REGION_SPAN 16352 +#define RESET_REGION_BASE 0x0 +#define RESET_REGION_SPAN 32 + + +/* + * Devices associated with code sections + * + */ + +#define ALT_EXCEPTIONS_DEVICE ONCHIP_MEMORY +#define ALT_RESET_DEVICE ONCHIP_MEMORY +#define ALT_RODATA_DEVICE ONCHIP_MEMORY +#define ALT_RWDATA_DEVICE ONCHIP_MEMORY +#define ALT_TEXT_DEVICE ONCHIP_MEMORY + + +/* + * Initialization code at the reset address is allowed (e.g. no external bootloader). + * + */ + +#define ALT_ALLOW_CODE_AT_RESET + + +/* + * The alt_load() facility is called from crt0 to copy sections into RAM. + * + */ + +#define ALT_LOAD_COPY_RWDATA + +#endif /* __LINKER_H_ */ diff --git a/software/qsys_tutorial_mem_bsp/linker.x b/software/qsys_tutorial_mem_bsp/linker.x new file mode 100644 index 0000000..b5482ca --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/linker.x @@ -0,0 +1,385 @@ +/* + * linker.x - Linker script + * + * Machine generated for CPU 'nios2_processor' in SOPC Builder design 'nios_system' + * SOPC Builder design path: C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.sopcinfo + * + * Generated: Fri Nov 25 16:59:33 JST 2016 + */ + +/* + * DO NOT MODIFY THIS FILE + * + * Changing this file will have subtle consequences + * which will almost certainly lead to a nonfunctioning + * system. If you do modify this file, be aware that your + * changes will be overwritten and lost when this file + * is generated again. + * + * DO NOT MODIFY THIS FILE + */ + +/* + * License Agreement + * + * Copyright (c) 2008 + * Altera Corporation, San Jose, California, USA. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + * This agreement shall be governed in all respects by the laws of the State + * of California and by the laws of the United States of America. + */ + +MEMORY +{ + reset : ORIGIN = 0x0, LENGTH = 32 + onchip_memory : ORIGIN = 0x20, LENGTH = 16352 +} + +/* Define symbols for each memory base-address */ +__alt_mem_onchip_memory = 0x0; + +OUTPUT_FORMAT( "elf32-littlenios2", + "elf32-littlenios2", + "elf32-littlenios2" ) +OUTPUT_ARCH( nios2 ) +ENTRY( _start ) + +/* + * The alt_load() facility is enabled. This typically happens when there isn't + * an external bootloader (e.g. flash bootloader). + * The LMA (aka physical address) of each loaded section is + * set to the .text memory device. + * The HAL alt_load() routine called from crt0 copies sections from + * the .text memory to RAM as needed. + */ + +SECTIONS +{ + + /* + * Output sections associated with reset and exceptions (they have to be first) + */ + + .entry : + { + KEEP (*(.entry)) + } > reset + + .exceptions : + { + PROVIDE (__ram_exceptions_start = ABSOLUTE(.)); + . = ALIGN(0x20); + KEEP (*(.irq)); + KEEP (*(.exceptions.entry.label)); + KEEP (*(.exceptions.entry.user)); + KEEP (*(.exceptions.entry)); + KEEP (*(.exceptions.irqtest.user)); + KEEP (*(.exceptions.irqtest)); + KEEP (*(.exceptions.irqhandler.user)); + KEEP (*(.exceptions.irqhandler)); + KEEP (*(.exceptions.irqreturn.user)); + KEEP (*(.exceptions.irqreturn)); + KEEP (*(.exceptions.notirq.label)); + KEEP (*(.exceptions.notirq.user)); + KEEP (*(.exceptions.notirq)); + KEEP (*(.exceptions.soft.user)); + KEEP (*(.exceptions.soft)); + KEEP (*(.exceptions.unknown.user)); + KEEP (*(.exceptions.unknown)); + KEEP (*(.exceptions.exit.label)); + KEEP (*(.exceptions.exit.user)); + KEEP (*(.exceptions.exit)); + KEEP (*(.exceptions)); + PROVIDE (__ram_exceptions_end = ABSOLUTE(.)); + } > onchip_memory + + PROVIDE (__flash_exceptions_start = LOADADDR(.exceptions)); + + .text : + { + /* + * All code sections are merged into the text output section, along with + * the read only data sections. + * + */ + + PROVIDE (stext = ABSOLUTE(.)); + + *(.interp) + *(.hash) + *(.dynsym) + *(.dynstr) + *(.gnu.version) + *(.gnu.version_d) + *(.gnu.version_r) + *(.rel.init) + *(.rela.init) + *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) + *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) + *(.rel.fini) + *(.rela.fini) + *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) + *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) + *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) + *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) + *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) + *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) + *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) + *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) + *(.rel.ctors) + *(.rela.ctors) + *(.rel.dtors) + *(.rela.dtors) + *(.rel.got) + *(.rela.got) + *(.rel.sdata .rel.sdata.* .rel.gnu.linkonce.s.*) + *(.rela.sdata .rela.sdata.* .rela.gnu.linkonce.s.*) + *(.rel.sbss .rel.sbss.* .rel.gnu.linkonce.sb.*) + *(.rela.sbss .rela.sbss.* .rela.gnu.linkonce.sb.*) + *(.rel.sdata2 .rel.sdata2.* .rel.gnu.linkonce.s2.*) + *(.rela.sdata2 .rela.sdata2.* .rela.gnu.linkonce.s2.*) + *(.rel.sbss2 .rel.sbss2.* .rel.gnu.linkonce.sb2.*) + *(.rela.sbss2 .rela.sbss2.* .rela.gnu.linkonce.sb2.*) + *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) + *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) + *(.rel.plt) + *(.rela.plt) + *(.rel.dyn) + + KEEP (*(.init)) + *(.plt) + *(.text .stub .text.* .gnu.linkonce.t.*) + + /* .gnu.warning sections are handled specially by elf32.em. */ + + *(.gnu.warning.*) + KEEP (*(.fini)) + PROVIDE (__etext = ABSOLUTE(.)); + PROVIDE (_etext = ABSOLUTE(.)); + PROVIDE (etext = ABSOLUTE(.)); + + *(.eh_frame_hdr) + /* Ensure the __preinit_array_start label is properly aligned. We + could instead move the label definition inside the section, but + the linker would then create the section even if it turns out to + be empty, which isn't pretty. */ + . = ALIGN(4); + PROVIDE (__preinit_array_start = ABSOLUTE(.)); + *(.preinit_array) + PROVIDE (__preinit_array_end = ABSOLUTE(.)); + PROVIDE (__init_array_start = ABSOLUTE(.)); + *(.init_array) + PROVIDE (__init_array_end = ABSOLUTE(.)); + PROVIDE (__fini_array_start = ABSOLUTE(.)); + *(.fini_array) + PROVIDE (__fini_array_end = ABSOLUTE(.)); + SORT(CONSTRUCTORS) + KEEP (*(.eh_frame)) + *(.gcc_except_table) + *(.dynamic) + PROVIDE (__CTOR_LIST__ = ABSOLUTE(.)); + KEEP (*(.ctors)) + KEEP (*(SORT(.ctors.*))) + PROVIDE (__CTOR_END__ = ABSOLUTE(.)); + PROVIDE (__DTOR_LIST__ = ABSOLUTE(.)); + KEEP (*(.dtors)) + KEEP (*(SORT(.dtors.*))) + PROVIDE (__DTOR_END__ = ABSOLUTE(.)); + KEEP (*(.jcr)) + . = ALIGN(4); + } > onchip_memory = 0x3a880100 /* Nios II NOP instruction */ + + .rodata : + { + PROVIDE (__ram_rodata_start = ABSOLUTE(.)); + . = ALIGN(4); + *(.rodata .rodata.* .gnu.linkonce.r.*) + *(.rodata1) + . = ALIGN(4); + PROVIDE (__ram_rodata_end = ABSOLUTE(.)); + } > onchip_memory + + PROVIDE (__flash_rodata_start = LOADADDR(.rodata)); + + /* + * + * This section's LMA is set to the .text region. + * crt0 will copy to this section's specified mapped region virtual memory address (VMA) + * + * .rwdata region equals the .text region, and is set to be loaded into .text region. + * This requires two copies of .rwdata in the .text region. One read writable at VMA. + * and one read-only at LMA. crt0 will copy from LMA to VMA on reset + * + */ + + .rwdata LOADADDR (.rodata) + SIZEOF (.rodata) : AT ( LOADADDR (.rodata) + SIZEOF (.rodata)+ SIZEOF (.rwdata) ) + { + PROVIDE (__ram_rwdata_start = ABSOLUTE(.)); + . = ALIGN(4); + *(.got.plt) *(.got) + *(.data1) + *(.data .data.* .gnu.linkonce.d.*) + + _gp = ABSOLUTE(. + 0x8000); + PROVIDE(gp = _gp); + + *(.rwdata .rwdata.*) + *(.sdata .sdata.* .gnu.linkonce.s.*) + *(.sdata2 .sdata2.* .gnu.linkonce.s2.*) + + . = ALIGN(4); + _edata = ABSOLUTE(.); + PROVIDE (edata = ABSOLUTE(.)); + PROVIDE (__ram_rwdata_end = ABSOLUTE(.)); + } > onchip_memory + + PROVIDE (__flash_rwdata_start = LOADADDR(.rwdata)); + + /* + * + * This section's LMA is set to the .text region. + * crt0 will copy to this section's specified mapped region virtual memory address (VMA) + * + */ + + .bss LOADADDR (.rwdata) + SIZEOF (.rwdata) : AT ( LOADADDR (.rwdata) + SIZEOF (.rwdata) ) + { + __bss_start = ABSOLUTE(.); + PROVIDE (__sbss_start = ABSOLUTE(.)); + PROVIDE (___sbss_start = ABSOLUTE(.)); + + *(.dynsbss) + *(.sbss .sbss.* .gnu.linkonce.sb.*) + *(.sbss2 .sbss2.* .gnu.linkonce.sb2.*) + *(.scommon) + + PROVIDE (__sbss_end = ABSOLUTE(.)); + PROVIDE (___sbss_end = ABSOLUTE(.)); + + *(.dynbss) + *(.bss .bss.* .gnu.linkonce.b.*) + *(COMMON) + + . = ALIGN(4); + __bss_end = ABSOLUTE(.); + } > onchip_memory + + /* + * + * One output section mapped to the associated memory device for each of + * the available memory devices. These are not used by default, but can + * be used by user applications by using the .section directive. + * + * The output section used for the heap is treated in a special way, + * i.e. the symbols "end" and "_end" are added to point to the heap start. + * + * Because alt_load() is enabled, these sections have + * their LMA set to be loaded into the .text memory region. + * However, the alt_load() code will NOT automatically copy + * these sections into their mapped memory region. + * + */ + + /* + * + * This section's LMA is set to the .text region. + * crt0 will copy to this section's specified mapped region virtual memory address (VMA) + * + */ + + .onchip_memory LOADADDR (.bss) + SIZEOF (.bss) : AT ( LOADADDR (.bss) + SIZEOF (.bss) ) + { + PROVIDE (_alt_partition_onchip_memory_start = ABSOLUTE(.)); + *(.onchip_memory. onchip_memory.*) + . = ALIGN(4); + PROVIDE (_alt_partition_onchip_memory_end = ABSOLUTE(.)); + _end = ABSOLUTE(.); + end = ABSOLUTE(.); + __alt_stack_base = ABSOLUTE(.); + } > onchip_memory + + PROVIDE (_alt_partition_onchip_memory_load_addr = LOADADDR(.onchip_memory)); + + /* + * Stabs debugging sections. + * + */ + + .stab 0 : { *(.stab) } + .stabstr 0 : { *(.stabstr) } + .stab.excl 0 : { *(.stab.excl) } + .stab.exclstr 0 : { *(.stab.exclstr) } + .stab.index 0 : { *(.stab.index) } + .stab.indexstr 0 : { *(.stab.indexstr) } + .comment 0 : { *(.comment) } + /* DWARF debug sections. + Symbols in the DWARF debugging sections are relative to the beginning + of the section so we begin them at 0. */ + /* DWARF 1 */ + .debug 0 : { *(.debug) } + .line 0 : { *(.line) } + /* GNU DWARF 1 extensions */ + .debug_srcinfo 0 : { *(.debug_srcinfo) } + .debug_sfnames 0 : { *(.debug_sfnames) } + /* DWARF 1.1 and DWARF 2 */ + .debug_aranges 0 : { *(.debug_aranges) } + .debug_pubnames 0 : { *(.debug_pubnames) } + /* DWARF 2 */ + .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } + .debug_abbrev 0 : { *(.debug_abbrev) } + .debug_line 0 : { *(.debug_line) } + .debug_frame 0 : { *(.debug_frame) } + .debug_str 0 : { *(.debug_str) } + .debug_loc 0 : { *(.debug_loc) } + .debug_macinfo 0 : { *(.debug_macinfo) } + /* SGI/MIPS DWARF 2 extensions */ + .debug_weaknames 0 : { *(.debug_weaknames) } + .debug_funcnames 0 : { *(.debug_funcnames) } + .debug_typenames 0 : { *(.debug_typenames) } + .debug_varnames 0 : { *(.debug_varnames) } + + /* Altera debug extensions */ + .debug_alt_sim_info 0 : { *(.debug_alt_sim_info) } +} + +/* provide a pointer for the stack */ + +/* + * Don't override this, override the __alt_stack_* symbols instead. + */ +__alt_data_end = 0x4000; + +/* + * The next two symbols define the location of the default stack. You can + * override them to move the stack to a different memory. + */ +PROVIDE( __alt_stack_pointer = __alt_data_end ); +PROVIDE( __alt_stack_limit = __alt_stack_base ); + +/* + * This symbol controls where the start of the heap is. If the stack is + * contiguous with the heap then the stack will contract as memory is + * allocated to the heap. + * Override this symbol to put the heap in a different memory. + */ +PROVIDE( __alt_heap_start = end ); +PROVIDE( __alt_heap_limit = 0x4000 ); diff --git a/software/qsys_tutorial_mem_bsp/mem_init.mk b/software/qsys_tutorial_mem_bsp/mem_init.mk new file mode 100644 index 0000000..8529cc2 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/mem_init.mk @@ -0,0 +1,322 @@ + +######################################################################### +####### M E M I N I T M A K E F I L E C O N T E N T ###### +######################################################################### + +######################################################################### +# This file is intended to be included by public.mk +# +# +# The following variables must be defined before including this file: +# - ELF +# +# The following variables may be defined to override the default behavior: +# - HDL_SIM_DIR +# - HDL_SIM_INSTALL_DIR +# - MEM_INIT_DIR +# - MEM_INIT_INSTALL_DIR +# - QUARTUS_PROJECT_DIR +# - SOPC_NAME +# - SIM_OPTIMIZE +# - RESET_ADDRESS +# +######################################################################### + +ifeq ($(MEM_INIT_FILE),) +# MEM_INIT_FILE should be set equal to the working relative path to this +# mem_init.mk makefile fragment +MEM_INIT_FILE := $(wildcard $(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST))) +endif + +ifeq ($(ELF2DAT),) +ELF2DAT := elf2dat +endif + +ifeq ($(ELF2HEX),) +ELF2HEX := elf2hex +endif + +ifeq ($(ELF2FLASH),) +ELF2FLASH := elf2flash +endif + +ifeq ($(FLASH2DAT),) +FLASH2DAT := flash2dat +endif + +ifeq ($(NM),) +NM := nios2-elf-nm +endif + +ifeq ($(MKDIR),) +MKDIR := mkdir -p +endif + +ifeq ($(RM),) +RM := rm -f +endif + +ifeq ($(CP),) +CP := cp +endif + +ifeq ($(ECHO),) +ECHO := echo +endif + +MEM_INIT_DIR ?= mem_init +HDL_SIM_DIR ?= $(MEM_INIT_DIR)/hdl_sim + +ifdef QUARTUS_PROJECT_DIR +MEM_INIT_INSTALL_DIR ?= $(patsubst %/,%,$(QUARTUS_PROJECT_DIR)) +ifdef SOPC_NAME +HDL_SIM_INSTALL_DIR ?= $(patsubst %/,%,$(QUARTUS_PROJECT_DIR))/$(SOPC_NAME)_sim +endif +endif + +MEM_INIT_DESCRIPTOR_FILE ?= $(MEM_INIT_DIR)/meminit.spd + +MEM_INIT_QIP_FILE ?= $(MEM_INIT_DIR)/meminit.qip + +#------------------------------------- +# Default Flash Boot Loaders +#------------------------------------- + +BOOT_LOADER_PATH ?= $(SOPC_KIT_NIOS2)/components/altera_nios2 +BOOT_LOADER_CFI ?= $(BOOT_LOADER_PATH)/boot_loader_cfi.srec +BOOT_LOADER_CFI_BE ?= $(BOOT_LOADER_PATH)/boot_loader_cfi_be.srec + + +#------------------------------------- +# Default Target +#------------------------------------- + +.PHONY: default_mem_init +ifeq ($(QSYS),1) +default_mem_init: mem_init_generate +else +default_mem_init: mem_init_install +endif +#------------------------------------- +# Runtime Macros +#------------------------------------- + +define post-process-info + @echo Post-processing to create $@... +endef + +target_stem = $(notdir $(basename $@)) + +mem_start_address = $($(target_stem)_START) +mem_end_address = $($(target_stem)_END) +mem_width = $($(target_stem)_WIDTH) +mem_endianness = $($(target_stem)_ENDIANNESS) +mem_create_lanes = $($(target_stem)_CREATE_LANES) + +mem_pad_flag = $($(target_stem)_PAD_FLAG) +mem_reloc_input_flag = $($(target_stem)_RELOC_INPUT_FLAG) +mem_no_zero_fill_flag = $($(target_stem)_NO_ZERO_FILL_FLAG) + +flash_mem_epcs_flag = $($(target_stem)_EPCS_FLAGS) +flash_mem_cfi_flag = $($(target_stem)_CFI_FLAGS) +flash_mem_boot_loader_flag = $($(target_stem)_BOOT_LOADER_FLAG) + +elf2dat_extra_args = $(mem_pad_flag) +elf2hex_extra_args = $(mem_no_zero_fill_flag) +elf2flash_extra_args = $(flash_mem_cfi_flag) $(flash_mem_epcs_flag) $(flash_mem_boot_loader_flag) +flash2dat_extra_args = $(mem_pad_flag) $(mem_reloc_input_flag) + +#------------------------------------------------------------------------------ +# BSP SPECIFIC CONTENT +# +# The content below is controlled by the BSP and SOPC System +#------------------------------------------------------------------------------ +#START OF BSP SPECIFIC + +#------------------------------------- +# Global Settings +#------------------------------------- + + +# The following TYPE comment allows tools to identify the 'type' of target this +# makefile is associated with. +# TYPE: BSP_MEMINIT_MAKEFILE + +# This following VERSION comment indicates the version of the tool used to +# generate this makefile. A makefile variable is provided for VERSION as well. +# ACDS_VERSION: 13.0sp1 +ACDS_VERSION := 13.0sp1 + +# This following BUILD_NUMBER comment indicates the build number of the tool +# used to generate this makefile. +# BUILD_NUMBER: 232 + +# Optimize for simulation +SIM_OPTIMIZE ?= 0 + +# The CPU reset address as needed by elf2flash +RESET_ADDRESS ?= 0x00000000 + +#------------------------------------- +# Pre-Initialized Memory Descriptions +#------------------------------------- + +# Memory: onchip_memory +MEM_0 := nios_system_onchip_memory +$(MEM_0)_NAME := onchip_memory +$(MEM_0)_MEM_INIT_FILE_PARAM_NAME := INIT_FILE +HEX_FILES += $(MEM_INIT_DIR)/$(MEM_0).hex +MEM_INIT_INSTALL_FILES += $(MEM_INIT_INSTALL_DIR)/$(MEM_0).hex +DAT_FILES += $(HDL_SIM_DIR)/$(MEM_0).dat +HDL_SIM_INSTALL_FILES += $(HDL_SIM_INSTALL_DIR)/$(MEM_0).dat +SYM_FILES += $(HDL_SIM_DIR)/$(MEM_0).sym +HDL_SIM_INSTALL_FILES += $(HDL_SIM_INSTALL_DIR)/$(MEM_0).sym +$(MEM_0)_START := 0x00000000 +$(MEM_0)_END := 0x00003fff +$(MEM_0)_HIERARCHICAL_PATH := onchip_memory +$(MEM_0)_WIDTH := 32 +$(MEM_0)_ENDIANNESS := --little-endian-mem +$(MEM_0)_CREATE_LANES := 0 + +.PHONY: onchip_memory +onchip_memory: check_elf_exists $(MEM_INIT_DIR)/$(MEM_0).hex $(HDL_SIM_DIR)/$(MEM_0).dat $(HDL_SIM_DIR)/$(MEM_0).sym + + +#END OF BSP SPECIFIC + +#------------------------------------- +# Pre-Initialized Memory Targets +#------------------------------------- + +.PHONY: mem_init_install mem_init_generate mem_init_clean + +ifeq ($(QSYS),1) +# Target mem_init_install is deprecated for QSys based systems +# To initialize onchip memories for Quartus II Synthesis with Qsys based systems: +# 1) Use "make mem_init_genearate" +# 2) Add the generated mem_init/meminit.qip file to your Quartus II Project +# +mem_init_install: + $(error Deprecated Makefile Target: '$@'. Use target 'mem_init_generate' and then add $(MEM_INIT_QIP_FILE) to your Quartus II Project) + +else # QSYS != 1, if SopcBuilder based system + +ifneq ($(MEM_INIT_INSTALL_DIR),) +mem_init_install: $(MEM_INIT_INSTALL_FILES) +endif + +ifneq ($(HDL_SIM_INSTALL_DIR),) +mem_init_install: $(HDL_SIM_INSTALL_FILES) +endif + +mem_init_install: mem_init_generate +ifeq ($(MEM_INIT_INSTALL_DIR),) + @echo "WARNING: MEM_INIT_INSTALL_DIR not set. Set your QUARTUS_PROJECT_DIR environment variable." +endif +ifeq ($(HDL_SIM_INSTALL_DIR),) + @echo "WARNING: HDL_SIM_INSTALL_DIR not set. Set your QUARTUS_PROJECT_DIR and SOPC_NAME environment variable." +endif + +$(MEM_INIT_INSTALL_FILES): $(MEM_INIT_INSTALL_DIR)/%: $(MEM_INIT_DIR)/% + @$(MKDIR) $(@D) + @$(CP) -v $< $@ + +$(HDL_SIM_INSTALL_FILES): $(HDL_SIM_INSTALL_DIR)/%: $(HDL_SIM_DIR)/% + @$(MKDIR) $(@D) + @$(CP) -v $< $@ + +endif # QSYS == 1 + + +mem_init_generate: hex dat sym flash $(MEM_INIT_DESCRIPTOR_FILE) $(MEM_INIT_QIP_FILE) + +mem_init_clean: + @$(RM) -r $(MEM_INIT_DIR) $(HDL_SIM_DIR) $(FLASH_FILES) + +.PHONY: hex dat sym flash + +hex: check_elf_exists $(HEX_FILES) + +dat: check_elf_exists $(DAT_FILES) + +sym: check_elf_exists $(SYM_FILES) + +flash: check_elf_exists $(FLASH_FILES) + +#------------------------------------- +# Pre-Initialized Memory Rules +#------------------------------------- + +.PHONY: check_elf_exists +check_elf_exists: $(ELF) +ifeq ($(ELF),) + $(error ELF var not set in mem_init.mk) +endif + +$(filter-out $(FLASH_DAT_FILES),$(DAT_FILES)): %.dat: $(ELF) + $(post-process-info) + @$(MKDIR) $(@D) + bash -c '$(ELF2DAT) --infile=$< --outfile=$@ \ + --base=$(mem_start_address) --end=$(mem_end_address) --width=$(mem_width) \ + $(mem_endianness) --create-lanes=$(mem_create_lanes) $(elf2dat_extra_args)' + +$(foreach i,0 1 2 3 4 5 6 7,%_lane$(i).dat): %.dat + @true + +$(HEX_FILES): %.hex: $(ELF) + $(post-process-info) + @$(MKDIR) $(@D) + bash -c '$(ELF2HEX) $< $(mem_start_address) $(mem_end_address) --width=$(mem_width) \ + $(mem_endianness) --create-lanes=$(mem_create_lanes) $(elf2hex_extra_args) $@' + +$(SYM_FILES): %.sym: $(ELF) + $(post-process-info) + @$(MKDIR) $(@D) + $(NM) -n $< > $@ + +$(FLASH_FILES): %.flash: $(ELF) + $(post-process-info) + @$(MKDIR) $(@D) + bash -c '$(ELF2FLASH) --input=$< --outfile=$@ --sim_optimize=$(SIM_OPTIMIZE) $(mem_endianness) \ + $(elf2flash_extra_args)' + +# +# Function generate_spd_entry +# Arg1: path to the memory initialization file +# Arg2: Type HEX or DAT +# Arg3: Output spd file to append +gen_spd_entry.BASE_FILE = $(basename $(notdir $1)) +gen_spd_entry.PARAM_NAME = $($(gen_spd_entry.BASE_FILE)_MEM_INIT_FILE_PARAM_NAME) +gen_spd_entry.MEM_PATH = $($(gen_spd_entry.BASE_FILE)_HIERARCHICAL_PATH) +gen_spd_entry.SETTINGS = $(strip \ + path=\"$1\" \ + type=\"$2\" \ + $(if $(gen_spd_entry.PARAM_NAME),initParamName=\"$(gen_spd_entry.PARAM_NAME)\") \ + $(if $(gen_spd_entry.MEM_PATH),memoryPath=\"$(gen_spd_entry.MEM_PATH)\") \ +) +define gen_spd_entry +$(ECHO) "" >> $3 +endef + +$(MEM_INIT_DESCRIPTOR_FILE).DAT_FILESET := $(patsubst $(dir $(MEM_INIT_DESCRIPTOR_FILE))%,%,$(DAT_FILES)) +$(MEM_INIT_DESCRIPTOR_FILE).HEX_FILESET := $(patsubst $(dir $(MEM_INIT_DESCRIPTOR_FILE))%,%,$(HEX_FILES)) + +$(MEM_INIT_DESCRIPTOR_FILE): %.spd: $(MEM_INIT_FILE) + $(post-process-info) + @$(MKDIR) $(@D) + @$(RM) $@ + @$(ECHO) "" > $@ + @$(ECHO) "" >> $@ + @$(foreach dat_file,$($@.DAT_FILESET),$(call gen_spd_entry,$(dat_file),DAT,$@) &&)true + @$(foreach hex_file,$($@.HEX_FILESET),$(call gen_spd_entry,$(hex_file),HEX,$@) &&)true + @$(ECHO) "" >> $@ + +.DELETE_ON_ERROR: $(MEM_INIT_DESCRIPTOR_FILE) + +$(MEM_INIT_QIP_FILE): %.qip: $(MEM_INIT_FILE) + $(post-process-info) + @$(MKDIR) $(@D) + @$(RM) $@ + @$(ECHO) "set_global_assignment -name SEARCH_PATH $$::quartus(qip_path)" > $@ + +.DELETE_ON_ERROR: $(MEM_INIT_QIP_FILE) diff --git a/software/qsys_tutorial_mem_bsp/memory.gdb b/software/qsys_tutorial_mem_bsp/memory.gdb new file mode 100644 index 0000000..4f559e7 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/memory.gdb @@ -0,0 +1,50 @@ +# memory.gdb - GDB memory region definitions +# +# Machine generated for CPU 'nios2_processor' in SOPC Builder design 'nios_system' +# SOPC Builder design path: C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.sopcinfo +# +# Generated: Fri Nov 25 16:59:33 JST 2016 + +# DO NOT MODIFY THIS FILE +# +# Changing this file will have subtle consequences +# which will almost certainly lead to a nonfunctioning +# system. If you do modify this file, be aware that your +# changes will be overwritten and lost when this file +# is generated again. +# +# DO NOT MODIFY THIS FILE + +# License Agreement +# +# Copyright (c) 2008 +# Altera Corporation, San Jose, California, USA. +# All rights reserved. +# +# Permission is hereby granted, free of charge, to any person obtaining a +# copy of this software and associated documentation files (the "Software"), +# to deal in the Software without restriction, including without limitation +# the rights to use, copy, modify, merge, publish, distribute, sublicense, +# and/or sell copies of the Software, and to permit persons to whom the +# Software is furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +# DEALINGS IN THE SOFTWARE. +# +# This agreement shall be governed in all respects by the laws of the State +# of California and by the laws of the United States of America. + +# Define memory regions for each memory connected to the CPU. +# The cache attribute is specified which improves GDB performance +# by allowing GDB to cache memory contents on the host. + +# onchip_memory +memory 0x0 0x4000 cache diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_alarm_start.d b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_alarm_start.d new file mode 100644 index 0000000..3bb20ea --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_alarm_start.d @@ -0,0 +1,22 @@ +obj/HAL/src/alt_alarm_start.o: HAL/src/alt_alarm_start.c \ + HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ + HAL/inc/priv/alt_alarm.h HAL/inc/alt_types.h HAL/inc/sys/alt_irq.h \ + HAL/inc/nios2.h system.h linker.h + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +system.h: + +linker.h: diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_alarm_start.o b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_alarm_start.o new file mode 100644 index 0000000..365ebcc --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_alarm_start.o Binary files differ diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_busy_sleep.d b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_busy_sleep.d new file mode 100644 index 0000000..e93e80c --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_busy_sleep.d @@ -0,0 +1,10 @@ +obj/HAL/src/alt_busy_sleep.o: HAL/src/alt_busy_sleep.c system.h linker.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_busy_sleep.h + +system.h: + +linker.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_busy_sleep.h: diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_busy_sleep.o b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_busy_sleep.o new file mode 100644 index 0000000..128d22d --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_busy_sleep.o Binary files differ diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_close.d b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_close.d new file mode 100644 index 0000000..fbbab9c --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_close.d @@ -0,0 +1,34 @@ +obj/HAL/src/alt_close.o: HAL/src/alt_close.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h HAL/inc/priv/alt_file.h \ + HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h \ + HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_close.o b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_close.o new file mode 100644 index 0000000..1cb4a91 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_close.o Binary files differ diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_dcache_flush.d b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_dcache_flush.d new file mode 100644 index 0000000..a0eaf8a --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_dcache_flush.d @@ -0,0 +1,15 @@ +obj/HAL/src/alt_dcache_flush.o: HAL/src/alt_dcache_flush.c \ + HAL/inc/nios2.h system.h linker.h HAL/inc/alt_types.h \ + HAL/inc/sys/alt_cache.h HAL/inc/alt_types.h + +HAL/inc/nios2.h: + +system.h: + +linker.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_cache.h: + +HAL/inc/alt_types.h: diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_dcache_flush.o b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_dcache_flush.o new file mode 100644 index 0000000..969dcdf --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_dcache_flush.o Binary files differ diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_dcache_flush_all.d b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_dcache_flush_all.d new file mode 100644 index 0000000..792c3e4 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_dcache_flush_all.d @@ -0,0 +1,15 @@ +obj/HAL/src/alt_dcache_flush_all.o: HAL/src/alt_dcache_flush_all.c \ + HAL/inc/nios2.h system.h linker.h HAL/inc/alt_types.h \ + HAL/inc/sys/alt_cache.h HAL/inc/alt_types.h + +HAL/inc/nios2.h: + +system.h: + +linker.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_cache.h: + +HAL/inc/alt_types.h: diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_dcache_flush_all.o b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_dcache_flush_all.o new file mode 100644 index 0000000..68f957a --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_dcache_flush_all.o Binary files differ diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_dcache_flush_no_writeback.d b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_dcache_flush_no_writeback.d new file mode 100644 index 0000000..867c42b --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_dcache_flush_no_writeback.d @@ -0,0 +1,16 @@ +obj/HAL/src/alt_dcache_flush_no_writeback.o: \ + HAL/src/alt_dcache_flush_no_writeback.c HAL/inc/nios2.h system.h \ + linker.h HAL/inc/alt_types.h HAL/inc/sys/alt_cache.h \ + HAL/inc/alt_types.h + +HAL/inc/nios2.h: + +system.h: + +linker.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_cache.h: + +HAL/inc/alt_types.h: diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_dcache_flush_no_writeback.o b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_dcache_flush_no_writeback.o new file mode 100644 index 0000000..cf308b3 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_dcache_flush_no_writeback.o Binary files differ diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_dev.d b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_dev.d new file mode 100644 index 0000000..cd9b1d4 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_dev.d @@ -0,0 +1,34 @@ +obj/HAL/src/alt_dev.o: HAL/src/alt_dev.c HAL/inc/sys/alt_dev.h system.h \ + linker.h HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h \ + HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h HAL/inc/alt_types.h \ + system.h + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/alt_types.h: + +system.h: diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_dev.o b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_dev.o new file mode 100644 index 0000000..f5fd76c --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_dev.o Binary files differ diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_dev_llist_insert.d b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_dev_llist_insert.d new file mode 100644 index 0000000..344d065 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_dev_llist_insert.d @@ -0,0 +1,13 @@ +obj/HAL/src/alt_dev_llist_insert.o: HAL/src/alt_dev_llist_insert.c \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/alt_types.h HAL/inc/sys/alt_errno.h + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_errno.h: diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_dev_llist_insert.o b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_dev_llist_insert.o new file mode 100644 index 0000000..4d9c617 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_dev_llist_insert.o Binary files differ diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_dma_rxchan_open.d b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_dma_rxchan_open.d new file mode 100644 index 0000000..fb21fed --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_dma_rxchan_open.d @@ -0,0 +1,35 @@ +obj/HAL/src/alt_dma_rxchan_open.o: HAL/src/alt_dma_rxchan_open.c \ + HAL/inc/sys/alt_dma.h HAL/inc/sys/alt_dma_dev.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/alt_types.h HAL/inc/sys/alt_errno.h \ + HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h system.h linker.h \ + HAL/inc/sys/alt_llist.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h + +HAL/inc/sys/alt_dma.h: + +HAL/inc/sys/alt_dma_dev.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_errno.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_dma_rxchan_open.o b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_dma_rxchan_open.o new file mode 100644 index 0000000..cae4f18 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_dma_rxchan_open.o Binary files differ diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_dma_txchan_open.d b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_dma_txchan_open.d new file mode 100644 index 0000000..500b95c --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_dma_txchan_open.d @@ -0,0 +1,35 @@ +obj/HAL/src/alt_dma_txchan_open.o: HAL/src/alt_dma_txchan_open.c \ + HAL/inc/sys/alt_dma.h HAL/inc/sys/alt_dma_dev.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/alt_types.h HAL/inc/sys/alt_errno.h \ + HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h system.h linker.h \ + HAL/inc/sys/alt_llist.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h + +HAL/inc/sys/alt_dma.h: + +HAL/inc/sys/alt_dma_dev.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_errno.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_dma_txchan_open.o b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_dma_txchan_open.o new file mode 100644 index 0000000..1a82727 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_dma_txchan_open.o Binary files differ diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_do_ctors.d b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_do_ctors.d new file mode 100644 index 0000000..daf8baf --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_do_ctors.d @@ -0,0 +1 @@ +obj/HAL/src/alt_do_ctors.o: HAL/src/alt_do_ctors.c diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_do_ctors.o b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_do_ctors.o new file mode 100644 index 0000000..01bf00b --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_do_ctors.o Binary files differ diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_do_dtors.d b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_do_dtors.d new file mode 100644 index 0000000..c3471eb --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_do_dtors.d @@ -0,0 +1 @@ +obj/HAL/src/alt_do_dtors.o: HAL/src/alt_do_dtors.c diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_do_dtors.o b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_do_dtors.o new file mode 100644 index 0000000..8b2519f --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_do_dtors.o Binary files differ diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_env_lock.d b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_env_lock.d new file mode 100644 index 0000000..634d7b0 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_env_lock.d @@ -0,0 +1 @@ +obj/HAL/src/alt_env_lock.o: HAL/src/alt_env_lock.c diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_env_lock.o b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_env_lock.o new file mode 100644 index 0000000..c942ba8 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_env_lock.o Binary files differ diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_environ.d b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_environ.d new file mode 100644 index 0000000..e9ca295 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_environ.d @@ -0,0 +1,3 @@ +obj/HAL/src/alt_environ.o: HAL/src/alt_environ.c HAL/inc/os/alt_syscall.h + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_environ.o b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_environ.o new file mode 100644 index 0000000..6b3ec93 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_environ.o Binary files differ diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_errno.d b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_errno.d new file mode 100644 index 0000000..29ca544 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_errno.d @@ -0,0 +1,8 @@ +obj/HAL/src/alt_errno.o: HAL/src/alt_errno.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/alt_types.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/alt_types.h: diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_errno.o b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_errno.o new file mode 100644 index 0000000..fbc6d64 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_errno.o Binary files differ diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_exception_entry.d b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_exception_entry.d new file mode 100644 index 0000000..540567e --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_exception_entry.d @@ -0,0 +1,6 @@ +obj/HAL/src/alt_exception_entry.o: HAL/src/alt_exception_entry.S system.h \ + linker.h + +system.h: + +linker.h: diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_exception_entry.o b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_exception_entry.o new file mode 100644 index 0000000..4371e8c --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_exception_entry.o Binary files differ diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_exception_muldiv.d b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_exception_muldiv.d new file mode 100644 index 0000000..63d66a7 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_exception_muldiv.d @@ -0,0 +1 @@ +obj/HAL/src/alt_exception_muldiv.o: HAL/src/alt_exception_muldiv.S diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_exception_muldiv.o b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_exception_muldiv.o new file mode 100644 index 0000000..d15e838 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_exception_muldiv.o Binary files differ diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_exception_trap.d b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_exception_trap.d new file mode 100644 index 0000000..6e18488 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_exception_trap.d @@ -0,0 +1 @@ +obj/HAL/src/alt_exception_trap.o: HAL/src/alt_exception_trap.S diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_exception_trap.o b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_exception_trap.o new file mode 100644 index 0000000..b423470 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_exception_trap.o Binary files differ diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_execve.d b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_execve.d new file mode 100644 index 0000000..9cef7d2 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_execve.d @@ -0,0 +1,10 @@ +obj/HAL/src/alt_execve.o: HAL/src/alt_execve.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_execve.o b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_execve.o new file mode 100644 index 0000000..9c162eb --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_execve.o Binary files differ diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_exit.d b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_exit.d new file mode 100644 index 0000000..a779da8 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_exit.d @@ -0,0 +1,26 @@ +obj/HAL/src/alt_exit.o: HAL/src/alt_exit.c HAL/inc/sys/alt_irq.h \ + HAL/inc/nios2.h HAL/inc/alt_types.h system.h linker.h \ + HAL/inc/sys/alt_sim.h HAL/inc/os/alt_hooks.h HAL/inc/os/alt_syscall.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_log_printf.h system.h + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_sim.h: + +HAL/inc/os/alt_hooks.h: + +HAL/inc/os/alt_syscall.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_log_printf.h: + +system.h: diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_exit.o b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_exit.o new file mode 100644 index 0000000..149bcd8 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_exit.o Binary files differ diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_fcntl.d b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_fcntl.d new file mode 100644 index 0000000..527f242 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_fcntl.d @@ -0,0 +1,34 @@ +obj/HAL/src/alt_fcntl.o: HAL/src/alt_fcntl.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h \ + system.h linker.h HAL/inc/sys/alt_llist.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h HAL/inc/alt_types.h \ + HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_fcntl.o b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_fcntl.o new file mode 100644 index 0000000..4f0f8c4 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_fcntl.o Binary files differ diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_fd_lock.d b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_fd_lock.d new file mode 100644 index 0000000..93daeac --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_fd_lock.d @@ -0,0 +1,27 @@ +obj/HAL/src/alt_fd_lock.o: HAL/src/alt_fd_lock.c HAL/inc/priv/alt_file.h \ + HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_fd_lock.o b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_fd_lock.o new file mode 100644 index 0000000..30ec87c --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_fd_lock.o Binary files differ diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_fd_unlock.d b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_fd_unlock.d new file mode 100644 index 0000000..45a3207 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_fd_unlock.d @@ -0,0 +1,27 @@ +obj/HAL/src/alt_fd_unlock.o: HAL/src/alt_fd_unlock.c \ + HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h system.h linker.h \ + HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_fd_unlock.o b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_fd_unlock.o new file mode 100644 index 0000000..108f7b3 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_fd_unlock.o Binary files differ diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_find_dev.d b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_find_dev.d new file mode 100644 index 0000000..98336f8 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_find_dev.d @@ -0,0 +1,31 @@ +obj/HAL/src/alt_find_dev.o: HAL/src/alt_find_dev.c HAL/inc/sys/alt_dev.h \ + system.h linker.h HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h \ + HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h HAL/inc/alt_types.h + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/alt_types.h: diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_find_dev.o b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_find_dev.o new file mode 100644 index 0000000..ad8e3b1 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_find_dev.o Binary files differ diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_find_file.d b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_find_file.d new file mode 100644 index 0000000..d1150ca --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_find_file.d @@ -0,0 +1,32 @@ +obj/HAL/src/alt_find_file.o: HAL/src/alt_find_file.c \ + HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h HAL/inc/priv/alt_file.h \ + HAL/inc/sys/alt_dev.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h \ + HAL/inc/alt_types.h + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/alt_types.h: diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_find_file.o b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_find_file.o new file mode 100644 index 0000000..a7b0541 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_find_file.o Binary files differ diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_flash_dev.d b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_flash_dev.d new file mode 100644 index 0000000..8835e8f --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_flash_dev.d @@ -0,0 +1,34 @@ +obj/HAL/src/alt_flash_dev.o: HAL/src/alt_flash_dev.c \ + HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h HAL/inc/sys/alt_flash_dev.h \ + HAL/inc/sys/alt_flash_types.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h \ + system.h linker.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_flash_dev.h: + +HAL/inc/sys/alt_flash_types.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_flash_dev.o b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_flash_dev.o new file mode 100644 index 0000000..210520b --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_flash_dev.o Binary files differ diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_fork.d b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_fork.d new file mode 100644 index 0000000..492be65 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_fork.d @@ -0,0 +1,10 @@ +obj/HAL/src/alt_fork.o: HAL/src/alt_fork.c HAL/inc/sys/alt_warning.h \ + HAL/inc/sys/alt_errno.h HAL/inc/alt_types.h HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_warning.h: + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_fork.o b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_fork.o new file mode 100644 index 0000000..2327768 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_fork.o Binary files differ diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_fs_reg.d b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_fs_reg.d new file mode 100644 index 0000000..d8f95ab --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_fs_reg.d @@ -0,0 +1,29 @@ +obj/HAL/src/alt_fs_reg.o: HAL/src/alt_fs_reg.c HAL/inc/sys/alt_dev.h \ + system.h linker.h HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h \ + HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_fs_reg.o b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_fs_reg.o new file mode 100644 index 0000000..9501c68 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_fs_reg.o Binary files differ diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_fstat.d b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_fstat.d new file mode 100644 index 0000000..942fcbc --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_fstat.d @@ -0,0 +1,38 @@ +obj/HAL/src/alt_fstat.o: HAL/src/alt_fstat.c HAL/inc/sys/alt_dev.h \ + system.h linker.h HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h HAL/inc/sys/alt_errno.h \ + HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h HAL/inc/os/alt_syscall.h system.h + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/sys/alt_errno.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_syscall.h: + +system.h: diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_fstat.o b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_fstat.o new file mode 100644 index 0000000..7f7b280 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_fstat.o Binary files differ diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_get_fd.d b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_get_fd.d new file mode 100644 index 0000000..9a4daaa --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_get_fd.d @@ -0,0 +1,34 @@ +obj/HAL/src/alt_get_fd.o: HAL/src/alt_get_fd.c HAL/inc/sys/alt_dev.h \ + system.h linker.h HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h \ + HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h HAL/inc/alt_types.h \ + system.h + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/alt_types.h: + +system.h: diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_get_fd.o b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_get_fd.o new file mode 100644 index 0000000..72eb665 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_get_fd.o Binary files differ diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_getchar.d b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_getchar.d new file mode 100644 index 0000000..bcccdf7 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_getchar.d @@ -0,0 +1,34 @@ +obj/HAL/src/alt_getchar.o: HAL/src/alt_getchar.c system.h linker.h \ + HAL/inc/sys/alt_driver.h HAL/inc/sys/alt_stdio.h \ + HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h system.h \ + HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h + +system.h: + +linker.h: + +HAL/inc/sys/alt_driver.h: + +HAL/inc/sys/alt_stdio.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_getchar.o b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_getchar.o new file mode 100644 index 0000000..85020ca --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_getchar.o Binary files differ diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_getpid.d b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_getpid.d new file mode 100644 index 0000000..d9499b9 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_getpid.d @@ -0,0 +1,3 @@ +obj/HAL/src/alt_getpid.o: HAL/src/alt_getpid.c HAL/inc/os/alt_syscall.h + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_getpid.o b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_getpid.o new file mode 100644 index 0000000..1c5cdba --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_getpid.o Binary files differ diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_gettod.d b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_gettod.d new file mode 100644 index 0000000..cf3cf34 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_gettod.d @@ -0,0 +1,17 @@ +obj/HAL/src/alt_gettod.o: HAL/src/alt_gettod.c HAL/inc/sys/alt_alarm.h \ + HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h HAL/inc/priv/alt_alarm.h \ + HAL/inc/alt_types.h HAL/inc/alt_types.h HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/alt_types.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_gettod.o b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_gettod.o new file mode 100644 index 0000000..175f100 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_gettod.o Binary files differ diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_gmon.d b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_gmon.d new file mode 100644 index 0000000..e9469ab --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_gmon.d @@ -0,0 +1,24 @@ +obj/HAL/src/alt_gmon.o: HAL/src/alt_gmon.c HAL/inc/priv/nios2_gmon_data.h \ + HAL/inc/sys/alt_irq.h HAL/inc/nios2.h HAL/inc/alt_types.h system.h \ + linker.h HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_alarm.h HAL/inc/alt_types.h + +HAL/inc/priv/nios2_gmon_data.h: + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/alt_types.h: diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_gmon.o b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_gmon.o new file mode 100644 index 0000000..6368a48 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_gmon.o Binary files differ diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_icache_flush.d b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_icache_flush.d new file mode 100644 index 0000000..2e4ddd1 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_icache_flush.d @@ -0,0 +1,15 @@ +obj/HAL/src/alt_icache_flush.o: HAL/src/alt_icache_flush.c \ + HAL/inc/nios2.h system.h linker.h HAL/inc/alt_types.h \ + HAL/inc/sys/alt_cache.h HAL/inc/alt_types.h + +HAL/inc/nios2.h: + +system.h: + +linker.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_cache.h: + +HAL/inc/alt_types.h: diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_icache_flush.o b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_icache_flush.o new file mode 100644 index 0000000..b865a11 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_icache_flush.o Binary files differ diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_icache_flush_all.d b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_icache_flush_all.d new file mode 100644 index 0000000..47cfbf3 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_icache_flush_all.d @@ -0,0 +1,15 @@ +obj/HAL/src/alt_icache_flush_all.o: HAL/src/alt_icache_flush_all.c \ + HAL/inc/nios2.h system.h linker.h HAL/inc/alt_types.h \ + HAL/inc/sys/alt_cache.h HAL/inc/alt_types.h + +HAL/inc/nios2.h: + +system.h: + +linker.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_cache.h: + +HAL/inc/alt_types.h: diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_icache_flush_all.o b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_icache_flush_all.o new file mode 100644 index 0000000..a132413 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_icache_flush_all.o Binary files differ diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_iic.d b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_iic.d new file mode 100644 index 0000000..a709e0c --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_iic.d @@ -0,0 +1,29 @@ +obj/HAL/src/alt_iic.o: HAL/src/alt_iic.c system.h linker.h \ + HAL/inc/sys/alt_irq.h HAL/inc/nios2.h HAL/inc/alt_types.h system.h \ + HAL/inc/priv/alt_iic_isr_register.h HAL/inc/alt_types.h \ + HAL/inc/sys/alt_irq.h HAL/inc/priv/alt_legacy_irq.h system.h \ + HAL/inc/nios2.h + +system.h: + +linker.h: + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +HAL/inc/priv/alt_iic_isr_register.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_irq.h: + +HAL/inc/priv/alt_legacy_irq.h: + +system.h: + +HAL/inc/nios2.h: diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_iic.o b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_iic.o new file mode 100644 index 0000000..f87923f --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_iic.o Binary files differ diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_iic_isr_register.d b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_iic_isr_register.d new file mode 100644 index 0000000..d0470ae --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_iic_isr_register.d @@ -0,0 +1,30 @@ +obj/HAL/src/alt_iic_isr_register.o: HAL/src/alt_iic_isr_register.c \ + system.h linker.h HAL/inc/alt_types.h HAL/inc/sys/alt_irq.h \ + HAL/inc/nios2.h HAL/inc/alt_types.h system.h \ + HAL/inc/priv/alt_iic_isr_register.h HAL/inc/alt_types.h \ + HAL/inc/sys/alt_irq.h HAL/inc/sys/alt_irq_entry.h \ + HAL/inc/priv/alt_irq_table.h + +system.h: + +linker.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +HAL/inc/priv/alt_iic_isr_register.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_irq.h: + +HAL/inc/sys/alt_irq_entry.h: + +HAL/inc/priv/alt_irq_table.h: diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_iic_isr_register.o b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_iic_isr_register.o new file mode 100644 index 0000000..0d3261c --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_iic_isr_register.o Binary files differ diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_instruction_exception_entry.d b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_instruction_exception_entry.d new file mode 100644 index 0000000..6d0705f --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_instruction_exception_entry.d @@ -0,0 +1,18 @@ +obj/HAL/src/alt_instruction_exception_entry.o: \ + HAL/src/alt_instruction_exception_entry.c HAL/inc/sys/alt_exceptions.h \ + HAL/inc/alt_types.h system.h linker.h HAL/inc/nios2.h \ + HAL/inc/alt_types.h system.h + +HAL/inc/sys/alt_exceptions.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_instruction_exception_entry.o b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_instruction_exception_entry.o new file mode 100644 index 0000000..1271c60 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_instruction_exception_entry.o Binary files differ diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_instruction_exception_register.d b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_instruction_exception_register.d new file mode 100644 index 0000000..d4fac04 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_instruction_exception_register.d @@ -0,0 +1,16 @@ +obj/HAL/src/alt_instruction_exception_register.o: \ + HAL/src/alt_instruction_exception_register.c \ + HAL/inc/sys/alt_exceptions.h HAL/inc/alt_types.h system.h linker.h \ + HAL/inc/alt_types.h system.h + +HAL/inc/sys/alt_exceptions.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: + +HAL/inc/alt_types.h: + +system.h: diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_instruction_exception_register.o b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_instruction_exception_register.o new file mode 100644 index 0000000..921059f --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_instruction_exception_register.o Binary files differ diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_io_redirect.d b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_io_redirect.d new file mode 100644 index 0000000..8228365 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_io_redirect.d @@ -0,0 +1,29 @@ +obj/HAL/src/alt_io_redirect.o: HAL/src/alt_io_redirect.c \ + HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h HAL/inc/priv/alt_file.h \ + HAL/inc/sys/alt_dev.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_io_redirect.o b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_io_redirect.o new file mode 100644 index 0000000..9dfda33 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_io_redirect.o Binary files differ diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_ioctl.d b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_ioctl.d new file mode 100644 index 0000000..d70ad97 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_ioctl.d @@ -0,0 +1,41 @@ +obj/HAL/src/alt_ioctl.o: HAL/src/alt_ioctl.c HAL/inc/sys/ioctl.h \ + HAL/inc/sys/alt_errno.h HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h \ + HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h system.h linker.h \ + HAL/inc/sys/alt_llist.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h HAL/inc/os/alt_syscall.h system.h \ + HAL/inc/sys/alt_driver.h + +HAL/inc/sys/ioctl.h: + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_syscall.h: + +system.h: + +HAL/inc/sys/alt_driver.h: diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_ioctl.o b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_ioctl.o new file mode 100644 index 0000000..f43a058 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_ioctl.o Binary files differ diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_irq_entry.d b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_irq_entry.d new file mode 100644 index 0000000..9ec3751 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_irq_entry.d @@ -0,0 +1,5 @@ +obj/HAL/src/alt_irq_entry.o: HAL/src/alt_irq_entry.S system.h linker.h + +system.h: + +linker.h: diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_irq_entry.o b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_irq_entry.o new file mode 100644 index 0000000..e72fca0 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_irq_entry.o Binary files differ diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_irq_handler.d b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_irq_handler.d new file mode 100644 index 0000000..6fb668f --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_irq_handler.d @@ -0,0 +1,19 @@ +obj/HAL/src/alt_irq_handler.o: HAL/src/alt_irq_handler.c system.h \ + linker.h HAL/inc/sys/alt_irq.h HAL/inc/nios2.h HAL/inc/alt_types.h \ + system.h HAL/inc/os/alt_hooks.h HAL/inc/alt_types.h + +system.h: + +linker.h: + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +HAL/inc/os/alt_hooks.h: + +HAL/inc/alt_types.h: diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_irq_handler.o b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_irq_handler.o new file mode 100644 index 0000000..d91718f --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_irq_handler.o Binary files differ diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_irq_register.d b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_irq_register.d new file mode 100644 index 0000000..3df2f8a --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_irq_register.d @@ -0,0 +1,36 @@ +obj/HAL/src/alt_irq_register.o: HAL/src/alt_irq_register.c system.h \ + linker.h HAL/inc/sys/alt_irq.h HAL/inc/nios2.h HAL/inc/alt_types.h \ + system.h HAL/inc/priv/alt_legacy_irq.h system.h HAL/inc/nios2.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_irq.h HAL/inc/os/alt_hooks.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_irq_entry.h \ + HAL/inc/priv/alt_irq_table.h + +system.h: + +linker.h: + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +HAL/inc/priv/alt_legacy_irq.h: + +system.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_irq.h: + +HAL/inc/os/alt_hooks.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_irq_entry.h: + +HAL/inc/priv/alt_irq_table.h: diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_irq_register.o b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_irq_register.o new file mode 100644 index 0000000..61dde73 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_irq_register.o Binary files differ diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_irq_vars.d b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_irq_vars.d new file mode 100644 index 0000000..f316558 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_irq_vars.d @@ -0,0 +1,8 @@ +obj/HAL/src/alt_irq_vars.o: HAL/src/alt_irq_vars.c HAL/inc/alt_types.h \ + system.h linker.h + +HAL/inc/alt_types.h: + +system.h: + +linker.h: diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_irq_vars.o b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_irq_vars.o new file mode 100644 index 0000000..c5c604e --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_irq_vars.o Binary files differ diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_isatty.d b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_isatty.d new file mode 100644 index 0000000..f8b1f07 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_isatty.d @@ -0,0 +1,38 @@ +obj/HAL/src/alt_isatty.o: HAL/src/alt_isatty.c HAL/inc/sys/alt_dev.h \ + system.h linker.h HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_errno.h HAL/inc/sys/alt_warning.h \ + HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h HAL/inc/os/alt_syscall.h system.h + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_errno.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_syscall.h: + +system.h: diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_isatty.o b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_isatty.o new file mode 100644 index 0000000..327e026 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_isatty.o Binary files differ diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_kill.d b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_kill.d new file mode 100644 index 0000000..0c14ae8 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_kill.d @@ -0,0 +1,8 @@ +obj/HAL/src/alt_kill.o: HAL/src/alt_kill.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_kill.o b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_kill.o new file mode 100644 index 0000000..9ea29a2 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_kill.o Binary files differ diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_link.d b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_link.d new file mode 100644 index 0000000..dc844c6 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_link.d @@ -0,0 +1,10 @@ +obj/HAL/src/alt_link.o: HAL/src/alt_link.c HAL/inc/sys/alt_warning.h \ + HAL/inc/sys/alt_errno.h HAL/inc/alt_types.h HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_warning.h: + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_link.o b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_link.o new file mode 100644 index 0000000..3a38842 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_link.o Binary files differ diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_load.d b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_load.d new file mode 100644 index 0000000..d496ab8 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_load.d @@ -0,0 +1,8 @@ +obj/HAL/src/alt_load.o: HAL/src/alt_load.c HAL/inc/sys/alt_load.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_cache.h + +HAL/inc/sys/alt_load.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_cache.h: diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_load.o b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_load.o new file mode 100644 index 0000000..3ff8aba --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_load.o Binary files differ diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_log_macro.d b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_log_macro.d new file mode 100644 index 0000000..9768c1f --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_log_macro.d @@ -0,0 +1 @@ +obj/HAL/src/alt_log_macro.o: HAL/src/alt_log_macro.S diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_log_macro.o b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_log_macro.o new file mode 100644 index 0000000..489e2cc --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_log_macro.o Binary files differ diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_log_printf.d b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_log_printf.d new file mode 100644 index 0000000..251ff6d --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_log_printf.d @@ -0,0 +1 @@ +obj/HAL/src/alt_log_printf.o: HAL/src/alt_log_printf.c diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_log_printf.o b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_log_printf.o new file mode 100644 index 0000000..a03c33d --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_log_printf.o Binary files differ diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_lseek.d b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_lseek.d new file mode 100644 index 0000000..25ed783 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_lseek.d @@ -0,0 +1,34 @@ +obj/HAL/src/alt_lseek.o: HAL/src/alt_lseek.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h HAL/inc/priv/alt_file.h \ + HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h \ + HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_lseek.o b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_lseek.o new file mode 100644 index 0000000..95d4c9d --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_lseek.o Binary files differ diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_main.d b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_main.d new file mode 100644 index 0000000..afdfda0 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_main.d @@ -0,0 +1,47 @@ +obj/HAL/src/alt_main.o: HAL/src/alt_main.c HAL/inc/sys/alt_dev.h system.h \ + linker.h HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_sys_init.h HAL/inc/sys/alt_irq.h \ + HAL/inc/nios2.h HAL/inc/os/alt_hooks.h HAL/inc/priv/alt_file.h \ + HAL/inc/sys/alt_dev.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h \ + HAL/inc/alt_types.h system.h HAL/inc/sys/alt_log_printf.h system.h + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_sys_init.h: + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/os/alt_hooks.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/alt_types.h: + +system.h: + +HAL/inc/sys/alt_log_printf.h: + +system.h: diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_main.o b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_main.o new file mode 100644 index 0000000..3bed885 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_main.o Binary files differ diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_malloc_lock.d b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_malloc_lock.d new file mode 100644 index 0000000..4ed35c2 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_malloc_lock.d @@ -0,0 +1 @@ +obj/HAL/src/alt_malloc_lock.o: HAL/src/alt_malloc_lock.c diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_malloc_lock.o b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_malloc_lock.o new file mode 100644 index 0000000..9972628 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_malloc_lock.o Binary files differ diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_mcount.d b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_mcount.d new file mode 100644 index 0000000..1203efc --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_mcount.d @@ -0,0 +1 @@ +obj/HAL/src/alt_mcount.o: HAL/src/alt_mcount.S diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_mcount.o b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_mcount.o new file mode 100644 index 0000000..4d80956 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_mcount.o Binary files differ diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_open.d b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_open.d new file mode 100644 index 0000000..a2aacd9 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_open.d @@ -0,0 +1,36 @@ +obj/HAL/src/alt_open.o: HAL/src/alt_open.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h HAL/inc/priv/alt_file.h \ + HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h \ + HAL/inc/alt_types.h HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_open.o b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_open.o new file mode 100644 index 0000000..ed03084 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_open.o Binary files differ diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_printf.d b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_printf.d new file mode 100644 index 0000000..3ce68a4 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_printf.d @@ -0,0 +1,3 @@ +obj/HAL/src/alt_printf.o: HAL/src/alt_printf.c HAL/inc/sys/alt_stdio.h + +HAL/inc/sys/alt_stdio.h: diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_printf.o b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_printf.o new file mode 100644 index 0000000..1fb2cf2 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_printf.o Binary files differ diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_putchar.d b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_putchar.d new file mode 100644 index 0000000..9a0dde3 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_putchar.d @@ -0,0 +1,10 @@ +obj/HAL/src/alt_putchar.o: HAL/src/alt_putchar.c system.h linker.h \ + HAL/inc/sys/alt_driver.h HAL/inc/sys/alt_stdio.h + +system.h: + +linker.h: + +HAL/inc/sys/alt_driver.h: + +HAL/inc/sys/alt_stdio.h: diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_putchar.o b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_putchar.o new file mode 100644 index 0000000..28b182d --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_putchar.o Binary files differ diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_putstr.d b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_putstr.d new file mode 100644 index 0000000..3cf528a --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_putstr.d @@ -0,0 +1,10 @@ +obj/HAL/src/alt_putstr.o: HAL/src/alt_putstr.c system.h linker.h \ + HAL/inc/sys/alt_driver.h HAL/inc/sys/alt_stdio.h + +system.h: + +linker.h: + +HAL/inc/sys/alt_driver.h: + +HAL/inc/sys/alt_stdio.h: diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_putstr.o b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_putstr.o new file mode 100644 index 0000000..683e076 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_putstr.o Binary files differ diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_read.d b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_read.d new file mode 100644 index 0000000..2bb0d95 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_read.d @@ -0,0 +1,38 @@ +obj/HAL/src/alt_read.o: HAL/src/alt_read.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h HAL/inc/priv/alt_file.h \ + HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h \ + HAL/inc/os/alt_syscall.h system.h HAL/inc/sys/alt_driver.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_syscall.h: + +system.h: + +HAL/inc/sys/alt_driver.h: diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_read.o b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_read.o new file mode 100644 index 0000000..89ece89 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_read.o Binary files differ diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_release_fd.d b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_release_fd.d new file mode 100644 index 0000000..0e3acb5 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_release_fd.d @@ -0,0 +1,29 @@ +obj/HAL/src/alt_release_fd.o: HAL/src/alt_release_fd.c \ + HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h HAL/inc/priv/alt_file.h \ + HAL/inc/sys/alt_dev.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_release_fd.o b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_release_fd.o new file mode 100644 index 0000000..853bc34 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_release_fd.o Binary files differ diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_remap_cached.d b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_remap_cached.d new file mode 100644 index 0000000..b5fb151 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_remap_cached.d @@ -0,0 +1,10 @@ +obj/HAL/src/alt_remap_cached.o: HAL/src/alt_remap_cached.c \ + HAL/inc/sys/alt_cache.h HAL/inc/alt_types.h system.h linker.h + +HAL/inc/sys/alt_cache.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_remap_cached.o b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_remap_cached.o new file mode 100644 index 0000000..2f217c0 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_remap_cached.o Binary files differ diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_remap_uncached.d b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_remap_uncached.d new file mode 100644 index 0000000..0423405 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_remap_uncached.d @@ -0,0 +1,10 @@ +obj/HAL/src/alt_remap_uncached.o: HAL/src/alt_remap_uncached.c \ + HAL/inc/sys/alt_cache.h HAL/inc/alt_types.h system.h linker.h + +HAL/inc/sys/alt_cache.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_remap_uncached.o b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_remap_uncached.o new file mode 100644 index 0000000..468ccf8 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_remap_uncached.o Binary files differ diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_rename.d b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_rename.d new file mode 100644 index 0000000..b7af4b2 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_rename.d @@ -0,0 +1,10 @@ +obj/HAL/src/alt_rename.o: HAL/src/alt_rename.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_rename.o b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_rename.o new file mode 100644 index 0000000..dc911e6 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_rename.o Binary files differ diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_sbrk.d b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_sbrk.d new file mode 100644 index 0000000..a0771ae --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_sbrk.d @@ -0,0 +1,19 @@ +obj/HAL/src/alt_sbrk.o: HAL/src/alt_sbrk.c HAL/inc/os/alt_syscall.h \ + HAL/inc/sys/alt_irq.h HAL/inc/nios2.h HAL/inc/alt_types.h system.h \ + linker.h HAL/inc/sys/alt_stack.h system.h + +HAL/inc/os/alt_syscall.h: + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_stack.h: + +system.h: diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_sbrk.o b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_sbrk.o new file mode 100644 index 0000000..2ed8ac1 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_sbrk.o Binary files differ diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_settod.d b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_settod.d new file mode 100644 index 0000000..56718d5 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_settod.d @@ -0,0 +1,17 @@ +obj/HAL/src/alt_settod.o: HAL/src/alt_settod.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_alarm.h HAL/inc/alt_types.h HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_settod.o b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_settod.o new file mode 100644 index 0000000..404e7f4 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_settod.o Binary files differ diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_software_exception.d b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_software_exception.d new file mode 100644 index 0000000..fab4023 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_software_exception.d @@ -0,0 +1,6 @@ +obj/HAL/src/alt_software_exception.o: HAL/src/alt_software_exception.S \ + system.h linker.h + +system.h: + +linker.h: diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_software_exception.o b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_software_exception.o new file mode 100644 index 0000000..f9e01c2 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_software_exception.o Binary files differ diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_stat.d b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_stat.d new file mode 100644 index 0000000..8a63c27 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_stat.d @@ -0,0 +1,3 @@ +obj/HAL/src/alt_stat.o: HAL/src/alt_stat.c HAL/inc/os/alt_syscall.h + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_stat.o b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_stat.o new file mode 100644 index 0000000..12efa40 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_stat.o Binary files differ diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_tick.d b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_tick.d new file mode 100644 index 0000000..ddbb281 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_tick.d @@ -0,0 +1,27 @@ +obj/HAL/src/alt_tick.o: HAL/src/alt_tick.c HAL/inc/sys/alt_irq.h \ + HAL/inc/nios2.h HAL/inc/alt_types.h system.h linker.h \ + HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_alarm.h HAL/inc/alt_types.h HAL/inc/os/alt_hooks.h \ + HAL/inc/alt_types.h + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_hooks.h: + +HAL/inc/alt_types.h: diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_tick.o b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_tick.o new file mode 100644 index 0000000..8179953 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_tick.o Binary files differ diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_times.d b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_times.d new file mode 100644 index 0000000..4bad83d --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_times.d @@ -0,0 +1,17 @@ +obj/HAL/src/alt_times.o: HAL/src/alt_times.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_alarm.h HAL/inc/alt_types.h HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_times.o b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_times.o new file mode 100644 index 0000000..3cc74be --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_times.o Binary files differ diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_uncached_free.d b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_uncached_free.d new file mode 100644 index 0000000..d74ef4b --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_uncached_free.d @@ -0,0 +1,10 @@ +obj/HAL/src/alt_uncached_free.o: HAL/src/alt_uncached_free.c \ + HAL/inc/sys/alt_cache.h HAL/inc/alt_types.h system.h linker.h + +HAL/inc/sys/alt_cache.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_uncached_free.o b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_uncached_free.o new file mode 100644 index 0000000..a3a3312 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_uncached_free.o Binary files differ diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_uncached_malloc.d b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_uncached_malloc.d new file mode 100644 index 0000000..16799fb --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_uncached_malloc.d @@ -0,0 +1,10 @@ +obj/HAL/src/alt_uncached_malloc.o: HAL/src/alt_uncached_malloc.c \ + HAL/inc/sys/alt_cache.h HAL/inc/alt_types.h system.h linker.h + +HAL/inc/sys/alt_cache.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_uncached_malloc.o b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_uncached_malloc.o new file mode 100644 index 0000000..1c615ac --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_uncached_malloc.o Binary files differ diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_unlink.d b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_unlink.d new file mode 100644 index 0000000..0205f86 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_unlink.d @@ -0,0 +1,10 @@ +obj/HAL/src/alt_unlink.o: HAL/src/alt_unlink.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_unlink.o b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_unlink.o new file mode 100644 index 0000000..bc721e9 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_unlink.o Binary files differ diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_usleep.d b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_usleep.d new file mode 100644 index 0000000..b5eca45 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_usleep.d @@ -0,0 +1,6 @@ +obj/HAL/src/alt_usleep.o: HAL/src/alt_usleep.c \ + HAL/inc/priv/alt_busy_sleep.h HAL/inc/os/alt_syscall.h + +HAL/inc/priv/alt_busy_sleep.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_usleep.o b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_usleep.o new file mode 100644 index 0000000..98963a3 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_usleep.o Binary files differ diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_wait.d b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_wait.d new file mode 100644 index 0000000..f47f5df --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_wait.d @@ -0,0 +1,8 @@ +obj/HAL/src/alt_wait.o: HAL/src/alt_wait.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_wait.o b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_wait.o new file mode 100644 index 0000000..f8b524e --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_wait.o Binary files differ diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_write.d b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_write.d new file mode 100644 index 0000000..2b54a68 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_write.d @@ -0,0 +1,41 @@ +obj/HAL/src/alt_write.o: HAL/src/alt_write.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h HAL/inc/priv/alt_file.h \ + HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h \ + HAL/inc/os/alt_syscall.h HAL/inc/sys/alt_log_printf.h system.h \ + HAL/inc/sys/alt_driver.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_syscall.h: + +HAL/inc/sys/alt_log_printf.h: + +system.h: + +HAL/inc/sys/alt_driver.h: diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_write.o b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_write.o new file mode 100644 index 0000000..a001bdf --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/alt_write.o Binary files differ diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/altera_nios2_qsys_irq.d b/software/qsys_tutorial_mem_bsp/obj/HAL/src/altera_nios2_qsys_irq.d new file mode 100644 index 0000000..47bdd9c --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/altera_nios2_qsys_irq.d @@ -0,0 +1,15 @@ +obj/HAL/src/altera_nios2_qsys_irq.o: HAL/src/altera_nios2_qsys_irq.c \ + HAL/inc/sys/alt_irq.h HAL/inc/nios2.h HAL/inc/alt_types.h system.h \ + linker.h HAL/inc/altera_nios2_qsys_irq.h + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: + +HAL/inc/altera_nios2_qsys_irq.h: diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/altera_nios2_qsys_irq.o b/software/qsys_tutorial_mem_bsp/obj/HAL/src/altera_nios2_qsys_irq.o new file mode 100644 index 0000000..c1d2837 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/altera_nios2_qsys_irq.o Binary files differ diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/crt0.d b/software/qsys_tutorial_mem_bsp/obj/HAL/src/crt0.d new file mode 100644 index 0000000..3af0bb0 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/crt0.d @@ -0,0 +1,12 @@ +obj/HAL/src/crt0.o: HAL/src/crt0.S system.h linker.h HAL/inc/nios2.h \ + HAL/inc/sys/alt_log_printf.h system.h + +system.h: + +linker.h: + +HAL/inc/nios2.h: + +HAL/inc/sys/alt_log_printf.h: + +system.h: diff --git a/software/qsys_tutorial_mem_bsp/obj/HAL/src/crt0.o b/software/qsys_tutorial_mem_bsp/obj/HAL/src/crt0.o new file mode 100644 index 0000000..4fb6458 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/HAL/src/crt0.o Binary files differ diff --git a/software/qsys_tutorial_mem_bsp/obj/alt_sys_init.d b/software/qsys_tutorial_mem_bsp/obj/alt_sys_init.d new file mode 100644 index 0000000..2087a7a --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/alt_sys_init.d @@ -0,0 +1,54 @@ +obj/alt_sys_init.o: alt_sys_init.c system.h linker.h \ + HAL/inc/sys/alt_irq.h HAL/inc/nios2.h HAL/inc/alt_types.h system.h \ + HAL/inc/sys/alt_sys_init.h HAL/inc/altera_nios2_qsys_irq.h \ + drivers/inc/altera_avalon_jtag_uart.h HAL/inc/sys/alt_alarm.h \ + HAL/inc/sys/alt_llist.h HAL/inc/priv/alt_alarm.h HAL/inc/alt_types.h \ + HAL/inc/sys/alt_warning.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h HAL/inc/os/alt_flag.h \ + drivers/inc/altera_avalon_jtag_uart_fd.h HAL/inc/sys/alt_dev.h \ + HAL/inc/sys/alt_llist.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h + +system.h: + +linker.h: + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +HAL/inc/sys/alt_sys_init.h: + +HAL/inc/altera_nios2_qsys_irq.h: + +drivers/inc/altera_avalon_jtag_uart.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_flag.h: + +drivers/inc/altera_avalon_jtag_uart_fd.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: diff --git a/software/qsys_tutorial_mem_bsp/obj/alt_sys_init.o b/software/qsys_tutorial_mem_bsp/obj/alt_sys_init.o new file mode 100644 index 0000000..a6dc60f --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/alt_sys_init.o Binary files differ diff --git a/software/qsys_tutorial_mem_bsp/obj/drivers/src/altera_avalon_jtag_uart_fd.d b/software/qsys_tutorial_mem_bsp/obj/drivers/src/altera_avalon_jtag_uart_fd.d new file mode 100644 index 0000000..b152697 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/drivers/src/altera_avalon_jtag_uart_fd.d @@ -0,0 +1,48 @@ +obj/drivers/src/altera_avalon_jtag_uart_fd.o: \ + drivers/src/altera_avalon_jtag_uart_fd.c HAL/inc/alt_types.h \ + HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ + drivers/inc/altera_avalon_jtag_uart.h HAL/inc/sys/alt_alarm.h \ + HAL/inc/sys/alt_llist.h HAL/inc/priv/alt_alarm.h \ + HAL/inc/sys/alt_warning.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h HAL/inc/os/alt_flag.h \ + drivers/inc/altera_avalon_jtag_uart_fd.h HAL/inc/sys/alt_dev.h + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +drivers/inc/altera_avalon_jtag_uart.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_flag.h: + +drivers/inc/altera_avalon_jtag_uart_fd.h: + +HAL/inc/sys/alt_dev.h: diff --git a/software/qsys_tutorial_mem_bsp/obj/drivers/src/altera_avalon_jtag_uart_fd.o b/software/qsys_tutorial_mem_bsp/obj/drivers/src/altera_avalon_jtag_uart_fd.o new file mode 100644 index 0000000..30500f7 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/drivers/src/altera_avalon_jtag_uart_fd.o Binary files differ diff --git a/software/qsys_tutorial_mem_bsp/obj/drivers/src/altera_avalon_jtag_uart_init.d b/software/qsys_tutorial_mem_bsp/obj/drivers/src/altera_avalon_jtag_uart_init.d new file mode 100644 index 0000000..f9460a1 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/drivers/src/altera_avalon_jtag_uart_init.d @@ -0,0 +1,66 @@ +obj/drivers/src/altera_avalon_jtag_uart_init.o: \ + drivers/src/altera_avalon_jtag_uart_init.c HAL/inc/sys/alt_irq.h \ + HAL/inc/nios2.h HAL/inc/alt_types.h system.h linker.h \ + HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_alarm.h HAL/inc/alt_types.h HAL/inc/sys/ioctl.h \ + HAL/inc/alt_types.h drivers/inc/altera_avalon_jtag_uart_regs.h \ + HAL/inc/io.h HAL/inc/alt_types.h drivers/inc/altera_avalon_jtag_uart.h \ + HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_warning.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h HAL/inc/os/alt_flag.h \ + drivers/inc/altera_avalon_jtag_uart_fd.h HAL/inc/sys/alt_dev.h \ + HAL/inc/sys/alt_llist.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h HAL/inc/sys/alt_log_printf.h system.h + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/ioctl.h: + +HAL/inc/alt_types.h: + +drivers/inc/altera_avalon_jtag_uart_regs.h: + +HAL/inc/io.h: + +HAL/inc/alt_types.h: + +drivers/inc/altera_avalon_jtag_uart.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_flag.h: + +drivers/inc/altera_avalon_jtag_uart_fd.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/sys/alt_log_printf.h: + +system.h: diff --git a/software/qsys_tutorial_mem_bsp/obj/drivers/src/altera_avalon_jtag_uart_init.o b/software/qsys_tutorial_mem_bsp/obj/drivers/src/altera_avalon_jtag_uart_init.o new file mode 100644 index 0000000..9dc0109 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/drivers/src/altera_avalon_jtag_uart_init.o Binary files differ diff --git a/software/qsys_tutorial_mem_bsp/obj/drivers/src/altera_avalon_jtag_uart_ioctl.d b/software/qsys_tutorial_mem_bsp/obj/drivers/src/altera_avalon_jtag_uart_ioctl.d new file mode 100644 index 0000000..d75a559 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/drivers/src/altera_avalon_jtag_uart_ioctl.d @@ -0,0 +1,58 @@ +obj/drivers/src/altera_avalon_jtag_uart_ioctl.o: \ + drivers/src/altera_avalon_jtag_uart_ioctl.c HAL/inc/sys/ioctl.h \ + HAL/inc/alt_types.h drivers/inc/altera_avalon_jtag_uart_regs.h \ + HAL/inc/io.h HAL/inc/alt_types.h drivers/inc/altera_avalon_jtag_uart.h \ + HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ + HAL/inc/priv/alt_alarm.h HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h \ + HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h HAL/inc/os/alt_flag.h \ + drivers/inc/altera_avalon_jtag_uart_fd.h HAL/inc/sys/alt_dev.h system.h \ + linker.h HAL/inc/sys/alt_llist.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h HAL/inc/sys/alt_log_printf.h system.h + +HAL/inc/sys/ioctl.h: + +HAL/inc/alt_types.h: + +drivers/inc/altera_avalon_jtag_uart_regs.h: + +HAL/inc/io.h: + +HAL/inc/alt_types.h: + +drivers/inc/altera_avalon_jtag_uart.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_flag.h: + +drivers/inc/altera_avalon_jtag_uart_fd.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/sys/alt_log_printf.h: + +system.h: diff --git a/software/qsys_tutorial_mem_bsp/obj/drivers/src/altera_avalon_jtag_uart_ioctl.o b/software/qsys_tutorial_mem_bsp/obj/drivers/src/altera_avalon_jtag_uart_ioctl.o new file mode 100644 index 0000000..12f6d49 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/drivers/src/altera_avalon_jtag_uart_ioctl.o Binary files differ diff --git a/software/qsys_tutorial_mem_bsp/obj/drivers/src/altera_avalon_jtag_uart_read.d b/software/qsys_tutorial_mem_bsp/obj/drivers/src/altera_avalon_jtag_uart_read.d new file mode 100644 index 0000000..9a4846a --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/drivers/src/altera_avalon_jtag_uart_read.d @@ -0,0 +1,66 @@ +obj/drivers/src/altera_avalon_jtag_uart_read.o: \ + drivers/src/altera_avalon_jtag_uart_read.c HAL/inc/sys/alt_irq.h \ + HAL/inc/nios2.h HAL/inc/alt_types.h system.h linker.h \ + HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_alarm.h HAL/inc/alt_types.h HAL/inc/sys/ioctl.h \ + HAL/inc/alt_types.h drivers/inc/altera_avalon_jtag_uart_regs.h \ + HAL/inc/io.h HAL/inc/alt_types.h drivers/inc/altera_avalon_jtag_uart.h \ + HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_warning.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h HAL/inc/os/alt_flag.h \ + drivers/inc/altera_avalon_jtag_uart_fd.h HAL/inc/sys/alt_dev.h \ + HAL/inc/sys/alt_llist.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h HAL/inc/sys/alt_log_printf.h system.h + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/ioctl.h: + +HAL/inc/alt_types.h: + +drivers/inc/altera_avalon_jtag_uart_regs.h: + +HAL/inc/io.h: + +HAL/inc/alt_types.h: + +drivers/inc/altera_avalon_jtag_uart.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_flag.h: + +drivers/inc/altera_avalon_jtag_uart_fd.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/sys/alt_log_printf.h: + +system.h: diff --git a/software/qsys_tutorial_mem_bsp/obj/drivers/src/altera_avalon_jtag_uart_read.o b/software/qsys_tutorial_mem_bsp/obj/drivers/src/altera_avalon_jtag_uart_read.o new file mode 100644 index 0000000..1e894ca --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/drivers/src/altera_avalon_jtag_uart_read.o Binary files differ diff --git a/software/qsys_tutorial_mem_bsp/obj/drivers/src/altera_avalon_jtag_uart_write.d b/software/qsys_tutorial_mem_bsp/obj/drivers/src/altera_avalon_jtag_uart_write.d new file mode 100644 index 0000000..5518b7f --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/drivers/src/altera_avalon_jtag_uart_write.d @@ -0,0 +1,66 @@ +obj/drivers/src/altera_avalon_jtag_uart_write.o: \ + drivers/src/altera_avalon_jtag_uart_write.c HAL/inc/sys/alt_irq.h \ + HAL/inc/nios2.h HAL/inc/alt_types.h system.h linker.h \ + HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_alarm.h HAL/inc/alt_types.h HAL/inc/sys/ioctl.h \ + HAL/inc/alt_types.h drivers/inc/altera_avalon_jtag_uart_regs.h \ + HAL/inc/io.h HAL/inc/alt_types.h drivers/inc/altera_avalon_jtag_uart.h \ + HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_warning.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h HAL/inc/os/alt_flag.h \ + drivers/inc/altera_avalon_jtag_uart_fd.h HAL/inc/sys/alt_dev.h \ + HAL/inc/sys/alt_llist.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h HAL/inc/sys/alt_log_printf.h system.h + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/ioctl.h: + +HAL/inc/alt_types.h: + +drivers/inc/altera_avalon_jtag_uart_regs.h: + +HAL/inc/io.h: + +HAL/inc/alt_types.h: + +drivers/inc/altera_avalon_jtag_uart.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_flag.h: + +drivers/inc/altera_avalon_jtag_uart_fd.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/sys/alt_log_printf.h: + +system.h: diff --git a/software/qsys_tutorial_mem_bsp/obj/drivers/src/altera_avalon_jtag_uart_write.o b/software/qsys_tutorial_mem_bsp/obj/drivers/src/altera_avalon_jtag_uart_write.o new file mode 100644 index 0000000..3cac8ce --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/obj/drivers/src/altera_avalon_jtag_uart_write.o Binary files differ diff --git a/software/qsys_tutorial_mem_bsp/public.mk b/software/qsys_tutorial_mem_bsp/public.mk new file mode 100644 index 0000000..5eb883d --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/public.mk @@ -0,0 +1,385 @@ +#------------------------------------------------------------------------------ +# BSP "PUBLIC" MAKEFILE CONTENT +# +# This file is intended to be included in an application or library +# Makefile that is using this BSP. You can create such a Makefile with +# the nios2-app-generate-makefile or nios2-lib-generate-makefile +# commands. +# +# The following variables must be defined before including this file: +# +# ALT_LIBRARY_ROOT_DIR +# Contains the path to the BSP top-level (aka root) directory +#------------------------------------------------------------------------------ + +#------------------------------------------------------------------------------ +# PATHS +#------------------------------------------------------------------------------ + + + +# Path to the provided linker script. +BSP_LINKER_SCRIPT := $(ALT_LIBRARY_ROOT_DIR)/linker.x + +# Include paths: +# The path to root of all header files that a library wishes to make +# available for an application's use is specified here. Note that this +# may not be *all* folders within a hierarchy. For example, if it is +# desired that the application developer type: +# #include +# #include +# With files laid out like this: +# /inc/sockets.h +# /inc/ip/tcpip.h +# +# Then, only /inc need be added to the list of include +# directories. Alternatively, if you wish to be able to directly include +# all files in a hierarchy, separate paths to each folder in that +# hierarchy must be defined. + +# The following are the "base" set of include paths for a BSP. +# These paths are appended to the list that individual software +# components, drivers, etc., add in the generated portion of this +# file (below). +ALT_INCLUDE_DIRS_TO_APPEND += \ + $(ALT_LIBRARY_ROOT_DIR) \ + $(ALT_LIBRARY_ROOT_DIR)/drivers/inc + +# Additions to linker library search-path: +# Here we provide a path to "our self" for the application to construct a +# "-L " out of. This should contain a list of directories, +# relative to the library root, of all directories with .a files to link +# against. +ALT_LIBRARY_DIRS += $(ALT_LIBRARY_ROOT_DIR) + + +#------------------------------------------------------------------------------ +# COMPILATION FLAGS +#------------------------------------------------------------------------------ +# Default C pre-processor flags for a BSP: +ALT_CPPFLAGS += -DSYSTEM_BUS_WIDTH=32 \ + -pipe + + +#------------------------------------------------------------------------------ +# MANAGED CONTENT +# +# All content between the lines "START MANAGED" and "END MANAGED" below is +# generated based on variables in the BSP settings file when the +# nios2-bsp-generate-files command is invoked. If you wish to persist any +# information pertaining to the build process, it is recomended that you +# utilize the BSP settings mechanism to do so. +#------------------------------------------------------------------------------ +#START MANAGED + +# The following TYPE comment allows tools to identify the 'type' of target this +# makefile is associated with. +# TYPE: BSP_PUBLIC_MAKEFILE + +# This following VERSION comment indicates the version of the tool used to +# generate this makefile. A makefile variable is provided for VERSION as well. +# ACDS_VERSION: 13.0sp1 +ACDS_VERSION := 13.0sp1 + +# This following BUILD_NUMBER comment indicates the build number of the tool +# used to generate this makefile. +# BUILD_NUMBER: 232 + +# Qsys--generated SOPCINFO file. Required for resolving node instance ID's with +# design component names. +SOPCINFO_FILE := C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.sopcinfo + +# Big-Endian operation. +# setting BIG_ENDIAN is false +ALT_CFLAGS += -EL + +# Path to the provided C language runtime initialization code. +BSP_CRT0 := $(ALT_LIBRARY_ROOT_DIR)/obj/HAL/src/crt0.o + +# Name of BSP library as provided to linker using the "-msys-lib" flag or +# linker script GROUP command. +# setting BSP_SYS_LIB is hal_bsp +BSP_SYS_LIB := hal_bsp +ELF_PATCH_FLAG += --thread_model hal + +# Type identifier of the BSP library +# setting BSP_TYPE is hal +ALT_CPPFLAGS += -D__hal__ +BSP_TYPE := hal + +# CPU Name +# setting CPU_NAME is nios2_processor +CPU_NAME = nios2_processor +ELF_PATCH_FLAG += --cpu_name $(CPU_NAME) + +# Hardware Divider present. +# setting HARDWARE_DIVIDE is false +ALT_CFLAGS += -mno-hw-div + +# Hardware Multiplier present. +# setting HARDWARE_MULTIPLY is false +ALT_CFLAGS += -mno-hw-mul + +# Hardware Mulx present. +# setting HARDWARE_MULX is false +ALT_CFLAGS += -mno-hw-mulx + +# Debug Core present. +# setting HAS_DEBUG_CORE is true +CPU_HAS_DEBUG_CORE = 1 + +# Qsys generated design +# setting QSYS is 1 +QSYS := 1 +ELF_PATCH_FLAG += --qsys true + +# Design Name +# setting SOPC_NAME is nios_system +SOPC_NAME := nios_system + +# SopcBuilder Simulation Enabled +# setting SOPC_SIMULATION_ENABLED is false +ELF_PATCH_FLAG += --simulation_enabled false + +# Enable JTAG UART driver to recover when host is inactive causing buffer to +# full without returning error. Printf will not fail with this recovery. none +# setting altera_avalon_jtag_uart_driver.enable_jtag_uart_ignore_fifo_full_error is false + +# Small-footprint (polled mode) driver none +# setting altera_avalon_jtag_uart_driver.enable_small_driver is false + +# Build a custom version of newlib with the specified space-separated compiler +# flags. The custom newlib build will be placed in the <bsp root>/newlib +# directory, and will be used only for applications that utilize this BSP. +# setting hal.custom_newlib_flags is none + +# Enable support for a subset of the C++ language. This option increases code +# footprint by adding support for C++ constructors. Certain features, such as +# multiple inheritance and exceptions are not supported. If false, adds +# -DALT_NO_C_PLUS_PLUS to ALT_CPPFLAGS in public.mk, and reduces code +# footprint. none +# setting hal.enable_c_plus_plus is false +ALT_CPPFLAGS += -DALT_NO_C_PLUS_PLUS + +# When your application exits, close file descriptors, call C++ destructors, +# etc. Code footprint can be reduced by disabling clean exit. If disabled, adds +# -DALT_NO_CLEAN_EXIT to ALT_CPPFLAGS and -Wl,--defsym, exit=_exit to +# ALT_LDFLAGS in public.mk. none +# setting hal.enable_clean_exit is false +ALT_CPPFLAGS += -DALT_NO_CLEAN_EXIT +ALT_LDFLAGS += -Wl,--defsym,exit=_exit + +# Add exit() support. This option increases code footprint if your "main()" +# routine does "return" or call "exit()". If false, adds -DALT_NO_EXIT to +# ALT_CPPFLAGS in public.mk, and reduces footprint none +# setting hal.enable_exit is false +ALT_CPPFLAGS += -DALT_NO_EXIT + +# Causes code to be compiled with gprof profiling enabled and the application +# ELF to be linked with the GPROF library. If true, adds -DALT_PROVIDE_GMON to +# ALT_CPPFLAGS and -pg to ALT_CFLAGS in public.mk. none +# setting hal.enable_gprof is false + +# Enables lightweight device driver API. This reduces code and data footprint +# by removing the HAL layer that maps device names (e.g. /dev/uart0) to file +# descriptors. Instead, driver routines are called directly. The open(), +# close(), and lseek() routines will always fail if called. The read(), +# write(), fstat(), ioctl(), and isatty() routines only work for the stdio +# devices. If true, adds -DALT_USE_DIRECT_DRIVERS to ALT_CPPFLAGS in public.mk. +# The Altera Host and read-only ZIP file systems can't be used if +# hal.enable_lightweight_device_driver_api is true. +# setting hal.enable_lightweight_device_driver_api is true +ALT_CPPFLAGS += -DALT_USE_DIRECT_DRIVERS + +# Adds code to emulate multiply and divide instructions in case they are +# executed but aren't present in the CPU. Normally this isn't required because +# the compiler won't use multiply and divide instructions that aren't present +# in the CPU. If false, adds -DALT_NO_INSTRUCTION_EMULATION to ALT_CPPFLAGS in +# public.mk. none +# setting hal.enable_mul_div_emulation is false +ALT_CPPFLAGS += -DALT_NO_INSTRUCTION_EMULATION + +# Certain drivers are compiled with reduced functionality to reduce code +# footprint. Not all drivers observe this setting. The altera_avalon_uart and +# altera_avalon_jtag_uart drivers switch from interrupt-driven to polled +# operation. CAUTION: Several device drivers are disabled entirely. These +# include the altera_avalon_cfi_flash, altera_avalon_epcs_flash_controller, and +# altera_avalon_lcd_16207 drivers. This can result in certain API (HAL flash +# access routines) to fail. You can define a symbol provided by each driver to +# prevent it from being removed. If true, adds -DALT_USE_SMALL_DRIVERS to +# ALT_CPPFLAGS in public.mk. none +# setting hal.enable_reduced_device_drivers is true +ALT_CPPFLAGS += -DALT_USE_SMALL_DRIVERS + +# Turns on HAL runtime stack checking feature. Enabling this setting causes +# additional code to be placed into each subroutine call to generate an +# exception if a stack collision occurs with the heap or statically allocated +# data. If true, adds -DALT_STACK_CHECK and -mstack-check to ALT_CPPFLAGS in +# public.mk. none +# setting hal.enable_runtime_stack_checking is false + +# The BSP is compiled with optimizations to speedup HDL simulation such as +# initializing the cache, clearing the .bss section, and skipping long delay +# loops. If true, adds -DALT_SIM_OPTIMIZE to ALT_CPPFLAGS in public.mk. When +# this setting is true, the BSP shouldn't be used to build applications that +# are expected to run real hardware. +# setting hal.enable_sim_optimize is false + +# Causes the small newlib (C library) to be used. This reduces code and data +# footprint at the expense of reduced functionality. Several newlib features +# are removed such as floating-point support in printf(), stdin input routines, +# and buffered I/O. The small C library is not compatible with Micrium +# MicroC/OS-II. If true, adds -msmallc to ALT_LDFLAGS in public.mk. none +# setting hal.enable_small_c_library is true +ALT_LDFLAGS += -msmallc +ALT_CPPFLAGS += -DSMALL_C_LIB + +# Enable SOPC Builder System ID. If a System ID SOPC Builder component is +# connected to the CPU associated with this BSP, it will be enabled in the +# creation of command-line arguments to download an ELF to the target. +# Otherwise, system ID and timestamp values are left out of public.mk for +# application Makefile "download-elf" target definition. With the system ID +# check disabled, the Nios II EDS tools will not automatically ensure that the +# application .elf file (and BSP it is linked against) corresponds to the +# hardware design on the target. If false, adds --accept-bad-sysid to +# SOPC_SYSID_FLAG in public.mk. none +# setting hal.enable_sopc_sysid_check is true + +# Enable BSP generation to query if SOPC system is big endian. If true ignores +# export of 'ALT_CFLAGS += -EB' to public.mk if big endian system. If true +# ignores export of 'ALT_CFLAGS += -EL' if little endian system. none +# setting hal.make.ignore_system_derived.big_endian is false + +# Enable BSP generation to query if SOPC system has a debug core present. If +# true ignores export of 'CPU_HAS_DEBUG_CORE = 1' to public.mk if a debug core +# is found in the system. If true ignores export of 'CPU_HAS_DEBUG_CORE = 0' if +# no debug core is found in the system. none +# setting hal.make.ignore_system_derived.debug_core_present is false + +# Enable BSP generation to query if SOPC system has FPU present. If true +# ignores export of 'ALT_CFLAGS += -mhard-float' to public.mk if FPU is found +# in the system. If true ignores export of 'ALT_CFLAGS += -mhard-soft' if FPU +# is not found in the system. none +# setting hal.make.ignore_system_derived.fpu_present is false + +# Enable BSP generation to query if SOPC system has hardware divide present. If +# true ignores export of 'ALT_CFLAGS += -mno-hw-div' to public.mk if no +# division is found in system. If true ignores export of 'ALT_CFLAGS += +# -mhw-div' if division is found in the system. none +# setting hal.make.ignore_system_derived.hardware_divide_present is false + +# Enable BSP generation to query if SOPC system floating point custom +# instruction with a divider is present. If true ignores export of 'ALT_CFLAGS +# += -mcustom-fpu-cfg=60-2' and 'ALT_LDFLAGS += -mcustom-fpu-cfg=60-2' to +# public.mk if the custom instruction is found in the system. none +# setting hal.make.ignore_system_derived.hardware_fp_cust_inst_divider_present is false + +# Enable BSP generation to query if SOPC system floating point custom +# instruction without a divider is present. If true ignores export of +# 'ALT_CFLAGS += -mcustom-fpu-cfg=60-1' and 'ALT_LDFLAGS += +# -mcustom-fpu-cfg=60-1' to public.mk if the custom instruction is found in the +# system. none +# setting hal.make.ignore_system_derived.hardware_fp_cust_inst_no_divider_present is false + +# Enable BSP generation to query if SOPC system has multiplier present. If true +# ignores export of 'ALT_CFLAGS += -mno-hw-mul' to public.mk if no multiplier +# is found in the system. If true ignores export of 'ALT_CFLAGS += -mhw-mul' if +# multiplier is found in the system. none +# setting hal.make.ignore_system_derived.hardware_multiplier_present is false + +# Enable BSP generation to query if SOPC system has hardware mulx present. If +# true ignores export of 'ALT_CFLAGS += -mno-hw-mulx' to public.mk if no mulx +# is found in the system. If true ignores export of 'ALT_CFLAGS += -mhw-mulx' +# if mulx is found in the system. none +# setting hal.make.ignore_system_derived.hardware_mulx_present is false + +# Enable BSP generation to query if SOPC system has simulation enabled. If true +# ignores export of 'ELF_PATCH_FLAG += --simulation_enabled' to public.mk. none +# setting hal.make.ignore_system_derived.sopc_simulation_enabled is false + +# Enable BSP generation to query SOPC system for system ID base address. If +# true ignores export of 'SOPC_SYSID_FLAG += --sidp=
' and +# 'ELF_PATCH_FLAG += --sidp=
' to public.mk. none +# setting hal.make.ignore_system_derived.sopc_system_base_address is false + +# Enable BSP generation to query SOPC system for system ID. If true ignores +# export of 'SOPC_SYSID_FLAG += --id=' and 'ELF_PATCH_FLAG += +# --id=' to public.mk. none +# setting hal.make.ignore_system_derived.sopc_system_id is false + +# Enable BSP generation to query SOPC system for system timestamp. If true +# ignores export of 'SOPC_SYSID_FLAG += --timestamp=' and +# 'ELF_PATCH_FLAG += --timestamp=' to public.mk. none +# setting hal.make.ignore_system_derived.sopc_system_timestamp is false + +# Slave descriptor of STDERR character-mode device. This setting is used by the +# ALT_STDERR family of defines in system.h. none +# setting hal.stderr is jtag_uart +ELF_PATCH_FLAG += --stderr_dev jtag_uart + +# Slave descriptor of STDIN character-mode device. This setting is used by the +# ALT_STDIN family of defines in system.h. none +# setting hal.stdin is jtag_uart +ELF_PATCH_FLAG += --stdin_dev jtag_uart + +# Slave descriptor of STDOUT character-mode device. This setting is used by the +# ALT_STDOUT family of defines in system.h. none +# setting hal.stdout is jtag_uart +ELF_PATCH_FLAG += --stdout_dev jtag_uart + + +#------------------------------------------------------------------------------ +# SOFTWARE COMPONENT & DRIVER INCLUDE PATHS +#------------------------------------------------------------------------------ + +ALT_INCLUDE_DIRS += $(ALT_LIBRARY_ROOT_DIR)/HAL/inc + +#------------------------------------------------------------------------------ +# SOFTWARE COMPONENT & DRIVER PRODUCED ALT_CPPFLAGS ADDITIONS +#------------------------------------------------------------------------------ + +ALT_CPPFLAGS += -DALT_SINGLE_THREADED + +#END MANAGED + + +#------------------------------------------------------------------------------ +# LIBRARY INFORMATION +#------------------------------------------------------------------------------ +# Assemble the name of the BSP *.a file using the BSP library name +# (BSP_SYS_LIB) in generated content above. +BSP_LIB := lib$(BSP_SYS_LIB).a + +# Additional libraries to link against: +# An application including this file will prefix each library with "-l". +# For example, to include the Newlib math library "m" is included, which +# becomes "-lm" when linking the application. +ALT_LIBRARY_NAMES += m + +# Additions to linker dependencies: +# An application Makefile will typically add these directly to the list +# of dependencies required to build the executable target(s). The BSP +# library (*.a) file is specified here. +ALT_LDDEPS += $(ALT_LIBRARY_ROOT_DIR)/$(BSP_LIB) + +# Is this library "Makeable"? +# Add to list of root library directories that support running 'make' +# to build them. Because libraries may or may not have a Makefile in their +# root, appending to this variable tells an application to run 'make' in +# the library root to build/update this library. +MAKEABLE_LIBRARY_ROOT_DIRS += $(ALT_LIBRARY_ROOT_DIR) + +# Additional Assembler Flags +# -gdwarf2 flag is required for stepping through assembly code +ALT_ASFLAGS += -gdwarf2 + +#------------------------------------------------------------------------------ +# FINAL INCLUDE PATH LIST +#------------------------------------------------------------------------------ +# Append static include paths to paths specified by OS/driver/sw package +# additions to the BSP thus giving them precedence in case a BSP addition +# is attempting to override BSP sources. +ALT_INCLUDE_DIRS += $(ALT_INCLUDE_DIRS_TO_APPEND) + + + diff --git a/software/qsys_tutorial_mem_bsp/settings.bsp b/software/qsys_tutorial_mem_bsp/settings.bsp new file mode 100644 index 0000000..7e7b906 --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/settings.bsp @@ -0,0 +1,973 @@ + + + hal + default + 2016/11/25 16:59:32 + 1480060772296 + C:\Users\takayun\Documents\DE2-115\qsys_tutorial\software\qsys_tutorial_mem_bsp + .\settings.bsp + C:\Users\takayun\Documents\DE2-115\qsys_tutorial\nios_system.sopcinfo + default + nios2_processor + 1.9 + + hal.sys_clk_timer + ALT_SYS_CLK + UnquotedString + none + none + system_h_define + Slave descriptor of the system clock timer device. This device provides a periodic interrupt ("tick") and is typically required for RTOS use. This setting defines the value of ALT_SYS_CLK in system.h. + none + false + common + + + hal.timestamp_timer + ALT_TIMESTAMP_CLK + UnquotedString + none + none + system_h_define + Slave descriptor of timestamp timer device. This device is used by Altera HAL timestamp drivers for high-resolution time measurement. This setting defines the value of ALT_TIMESTAMP_CLK in system.h. + none + false + common + + + hal.max_file_descriptors + ALT_MAX_FD + DecimalNumber + 4 + 32 + system_h_define + Determines the number of file descriptors statically allocated. This setting defines the value of ALT_MAX_FD in system.h. + If hal.enable_lightweight_device_driver_api is true, there are no file descriptors so this setting is ignored. If hal.enable_lightweight_device_driver_api is false, this setting must be at least 4 because HAL needs a file descriptor for /dev/null, /dev/stdin, /dev/stdout, and /dev/stderr. + false + + + + hal.enable_instruction_related_exceptions_api + ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API + BooleanDefineOnly + false + false + system_h_define + Enables API for registering handlers to service instruction-related exceptions. Enabling this setting increases the size of the exception entry code. + These exception types can be generated if various processor options are enabled, such as the MMU, MPU, or other advanced exception types. + false + + + + hal.linker.allow_code_at_reset + ALT_ALLOW_CODE_AT_RESET + Boolean + 1 + 0 + none + Indicates if initialization code is allowed at the reset address. If true, defines the macro ALT_ALLOW_CODE_AT_RESET in linker.h. + If true, defines the macro ALT_ALLOW_CODE_AT_RESET in linker.h. This setting is typically false if an external bootloader (e.g. flash bootloader) is present. + false + + + + hal.linker.enable_alt_load + NONE + Boolean + 1 + 0 + none + Enables the alt_load() facility. The alt_load() facility copies sections from the .text memory into RAM. If true, this setting sets up the VMA/LMA of sections in linker.x to allow them to be loaded into the .text memory. + This setting is typically false if an external bootloader (e.g. flash bootloader) is present. + false + + + + hal.linker.enable_alt_load_copy_rodata + NONE + Boolean + 0 + 0 + none + Causes the alt_load() facility to copy the .rodata section. If true, this setting defines the macro ALT_LOAD_COPY_RODATA in linker.h. + none + false + + + + hal.linker.enable_alt_load_copy_rwdata + NONE + Boolean + 1 + 0 + none + Causes the alt_load() facility to copy the .rwdata section. If true, this setting defines the macro ALT_LOAD_COPY_RWDATA in linker.h. + none + false + + + + hal.linker.enable_alt_load_copy_exceptions + NONE + Boolean + 0 + 0 + none + Causes the alt_load() facility to copy the .exceptions section. If true, this setting defines the macro ALT_LOAD_COPY_EXCEPTIONS in linker.h. + none + false + + + + hal.linker.enable_exception_stack + NONE + Boolean + 0 + 0 + none + Enables use of a separate exception stack. If true, defines the macro ALT_EXCEPTION_STACK in linker.h, adds a memory region called exception_stack to linker.x, and provides the symbols __alt_exception_stack_pointer and __alt_exception_stack_limit in linker.x. + The hal.linker.exception_stack_size and hal.linker.exception_stack_memory_region_name settings must also be valid. This setting must be false for MicroC/OS-II BSPs. The exception stack can be used to improve interrupt and other exception performance if the EIC is *not* used. + false + common + + + hal.linker.exception_stack_size + NONE + DecimalNumber + 1024 + 1024 + none + Size of the exception stack in bytes. + Only used if hal.linker.enable_exception_stack is true. + false + common + + + hal.linker.exception_stack_memory_region_name + NONE + UnquotedString + onchip_memory + none + none + Name of the existing memory region that will be divided up to create the 'exception_stack' memory region. The selected region name will be adjusted automatically when the BSP is generated to create the 'exception_stack' memory region. + Only used if hal.linker.enable_exception_stack is true. + false + common + + + hal.linker.enable_interrupt_stack + NONE + Boolean + 0 + 0 + none + Enables use of a separate interrupt stack. If true, defines the macro ALT_INTERRUPT_STACK in linker.h, adds a memory region called interrupt_stack to linker.x, and provides the symbols __alt_interrupt_stack_pointer and __alt_interrupt_stack_limit in linker.x. + The hal.linker.interrupt_stack_size and hal.linker.interrupt_stack_memory_region_name settings must also be valid. This setting must be false for MicroC/OS-II BSPs. Only enable if the EIC is used exclusively. The exception stack can be used to improve interrupt and other exception performance if the EIC is *not* used. + false + common + + + hal.linker.interrupt_stack_size + NONE + DecimalNumber + 1024 + 1024 + none + Size of the interrupt stack in bytes. + Only used if hal.linker.enable_interrupt_stack is true. + false + common + + + hal.linker.interrupt_stack_memory_region_name + NONE + UnquotedString + onchip_memory + none + none + Name of the existing memory region that will be divided up to create the 'interrupt_stack' memory region. The selected region name will be adjusted automatically when the BSP is generated to create the 'interrupt_stack' memory region. + Only used if hal.linker.enable_interrupt_stack is true. + false + common + + + hal.stdin + NONE + UnquotedString + jtag_uart + none + system_h_define + Slave descriptor of STDIN character-mode device. This setting is used by the ALT_STDIN family of defines in system.h. + none + false + common + + + hal.stdout + NONE + UnquotedString + jtag_uart + none + system_h_define + Slave descriptor of STDOUT character-mode device. This setting is used by the ALT_STDOUT family of defines in system.h. + none + false + common + + + hal.stderr + NONE + UnquotedString + jtag_uart + none + system_h_define + Slave descriptor of STDERR character-mode device. This setting is used by the ALT_STDERR family of defines in system.h. + none + false + common + + + hal.log_port + NONE + UnquotedString + none + none + public_mk_define + Slave descriptor of debug logging character-mode device. If defined, it enables extra debug messages in the HAL source. This setting is used by the ALT_LOG_PORT family of defines in system.h. + none + false + none + + + hal.make.build_pre_process + BUILD_PRE_PROCESS + UnquotedString + none + none + makefile_variable + Command executed before BSP built. + none + false + none + + + hal.make.ar_pre_process + AR_PRE_PROCESS + UnquotedString + none + none + makefile_variable + Command executed before archiver execution. + none + false + none + + + hal.make.bsp_cflags_defined_symbols + BSP_CFLAGS_DEFINED_SYMBOLS + UnquotedString + none + none + makefile_variable + Preprocessor macros to define. A macro definition in this setting has the same effect as a "#define" in source code. Adding "-DALT_DEBUG" to this setting has the same effect as "#define ALT_DEBUG" in a souce file. Adding "-DFOO=1" to this setting is equivalent to the macro "#define FOO 1" in a source file. Macros defined with this setting are applied to all .S, .c, and C++ files in the BSP. This setting defines the value of BSP_CFLAGS_DEFINED_SYMBOLS in the BSP Makefile. + none + false + none + + + hal.make.ar_post_process + AR_POST_PROCESS + UnquotedString + none + none + makefile_variable + Command executed after archiver execution. + none + false + none + + + hal.make.as + AS + UnquotedString + nios2-elf-gcc + nios2-elf-gcc + makefile_variable + Assembler command. Note that CC is used for .S files. + none + false + none + + + hal.make.build_post_process + BUILD_POST_PROCESS + UnquotedString + none + none + makefile_variable + Command executed after BSP built. + none + false + none + + + hal.make.bsp_cflags_debug + BSP_CFLAGS_DEBUG + UnquotedString + -g + -g + makefile_variable + C/C++ compiler debug level. '-g' provides the default set of debug symbols typically required to debug a typical application. Omitting '-g' removes debug symbols from the ELF. This setting defines the value of BSP_CFLAGS_DEBUG in Makefile. + none + false + common + + + hal.make.ar + AR + UnquotedString + nios2-elf-ar + nios2-elf-ar + makefile_variable + Archiver command. Creates library files. + none + false + none + + + hal.make.rm + RM + UnquotedString + rm -f + rm -f + makefile_variable + Command used to remove files during 'clean' target. + none + false + none + + + hal.make.cxx_pre_process + CXX_PRE_PROCESS + UnquotedString + none + none + makefile_variable + Command executed before each C++ file is compiled. + none + false + none + + + hal.make.bsp_cflags_warnings + BSP_CFLAGS_WARNINGS + UnquotedString + -Wall + -Wall + makefile_variable + C/C++ compiler warning level. "-Wall" is commonly used.This setting defines the value of BSP_CFLAGS_WARNINGS in Makefile. + none + false + none + + + hal.make.bsp_arflags + BSP_ARFLAGS + UnquotedString + -src + -src + makefile_variable + Custom flags only passed to the archiver. This content of this variable is directly passed to the archiver rather than the more standard "ARFLAGS". The reason for this is that GNU Make assumes some default content in ARFLAGS. This setting defines the value of BSP_ARFLAGS in Makefile. + none + false + none + + + hal.make.bsp_cflags_optimization + BSP_CFLAGS_OPTIMIZATION + UnquotedString + '-Os' + -O0 + makefile_variable + C/C++ compiler optimization level. "-O0" = no optimization,"-O2" = "normal" optimization, etc. "-O0" is recommended for code that you want to debug since compiler optimization can remove variables and produce non-sequential execution of code while debugging. This setting defines the value of BSP_CFLAGS_OPTIMIZATION in Makefile. + none + false + common + + + hal.make.as_post_process + AS_POST_PROCESS + UnquotedString + none + none + makefile_variable + Command executed after each assembly file is compiled. + none + false + none + + + hal.make.cc_pre_process + CC_PRE_PROCESS + UnquotedString + none + none + makefile_variable + Command executed before each .c/.S file is compiled. + none + false + none + + + hal.make.bsp_asflags + BSP_ASFLAGS + UnquotedString + -Wa,-gdwarf2 + -Wa,-gdwarf2 + makefile_variable + Custom flags only passed to the assembler. This setting defines the value of BSP_ASFLAGS in Makefile. + none + false + none + + + hal.make.as_pre_process + AS_PRE_PROCESS + UnquotedString + none + none + makefile_variable + Command executed before each assembly file is compiled. + none + false + none + + + hal.make.bsp_cflags_undefined_symbols + BSP_CFLAGS_UNDEFINED_SYMBOLS + UnquotedString + none + none + makefile_variable + Preprocessor macros to undefine. Undefined macros are similar to defined macros, but replicate the "#undef" directive in source code. To undefine the macro FOO use the syntax "-u FOO" in this setting. This is equivalent to "#undef FOO" in a source file. Note: the syntax differs from macro definition (there is a space, i.e. "-u FOO" versus "-DFOO"). Macros defined with this setting are applied to all .S, .c, and C++ files in the BSP. This setting defines the value of BSP_CFLAGS_UNDEFINED_SYMBOLS in the BSP Makefile. + none + false + none + + + hal.make.cc_post_process + CC_POST_PROCESS + UnquotedString + none + none + makefile_variable + Command executed after each .c/.S file is compiled. + none + false + none + + + hal.make.cxx_post_process + CXX_POST_PROCESS + UnquotedString + none + none + makefile_variable + Command executed before each C++ file is compiled. + none + false + none + + + hal.make.cc + CC + UnquotedString + nios2-elf-gcc -xc + nios2-elf-gcc -xc + makefile_variable + C compiler command. + none + false + none + + + hal.make.bsp_cxx_flags + BSP_CXXFLAGS + UnquotedString + none + none + makefile_variable + Custom flags only passed to the C++ compiler. This setting defines the value of BSP_CXXFLAGS in Makefile. + none + false + none + + + hal.make.bsp_inc_dirs + BSP_INC_DIRS + UnquotedString + none + none + makefile_variable + Space separated list of extra include directories to scan for header files. Directories are relative to the top-level BSP directory. The -I prefix's added by the makefile so don't add it here. This setting defines the value of BSP_INC_DIRS in Makefile. + none + false + none + + + hal.make.cxx + CXX + UnquotedString + nios2-elf-gcc -xc++ + nios2-elf-gcc -xc++ + makefile_variable + C++ compiler command. + none + false + none + + + hal.make.bsp_cflags_user_flags + BSP_CFLAGS_USER_FLAGS + UnquotedString + none + none + makefile_variable + Custom flags passed to the compiler when compiling C, C++, and .S files. This setting defines the value of BSP_CFLAGS_USER_FLAGS in Makefile. + none + false + none + + + hal.make.ignore_system_derived.sopc_system_id + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query SOPC system for system ID. If true ignores export of 'SOPC_SYSID_FLAG += --id=<sysid>' and 'ELF_PATCH_FLAG += --id=<sysid>' to public.mk. + none + false + none + + + hal.make.ignore_system_derived.sopc_system_timestamp + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query SOPC system for system timestamp. If true ignores export of 'SOPC_SYSID_FLAG += --timestamp=<timestamp>' and 'ELF_PATCH_FLAG += --timestamp=<timestamp>' to public.mk. + none + false + none + + + hal.make.ignore_system_derived.sopc_system_base_address + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query SOPC system for system ID base address. If true ignores export of 'SOPC_SYSID_FLAG += --sidp=<address>' and 'ELF_PATCH_FLAG += --sidp=<address>' to public.mk. + none + false + none + + + hal.make.ignore_system_derived.sopc_simulation_enabled + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query if SOPC system has simulation enabled. If true ignores export of 'ELF_PATCH_FLAG += --simulation_enabled' to public.mk. + none + false + none + + + hal.make.ignore_system_derived.fpu_present + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query if SOPC system has FPU present. If true ignores export of 'ALT_CFLAGS += -mhard-float' to public.mk if FPU is found in the system. If true ignores export of 'ALT_CFLAGS += -mhard-soft' if FPU is not found in the system. + none + false + none + + + hal.make.ignore_system_derived.hardware_multiplier_present + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query if SOPC system has multiplier present. If true ignores export of 'ALT_CFLAGS += -mno-hw-mul' to public.mk if no multiplier is found in the system. If true ignores export of 'ALT_CFLAGS += -mhw-mul' if multiplier is found in the system. + none + false + none + + + hal.make.ignore_system_derived.hardware_mulx_present + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query if SOPC system has hardware mulx present. If true ignores export of 'ALT_CFLAGS += -mno-hw-mulx' to public.mk if no mulx is found in the system. If true ignores export of 'ALT_CFLAGS += -mhw-mulx' if mulx is found in the system. + none + false + none + + + hal.make.ignore_system_derived.hardware_divide_present + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query if SOPC system has hardware divide present. If true ignores export of 'ALT_CFLAGS += -mno-hw-div' to public.mk if no division is found in system. If true ignores export of 'ALT_CFLAGS += -mhw-div' if division is found in the system. + none + false + none + + + hal.make.ignore_system_derived.debug_core_present + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query if SOPC system has a debug core present. If true ignores export of 'CPU_HAS_DEBUG_CORE = 1' to public.mk if a debug core is found in the system. If true ignores export of 'CPU_HAS_DEBUG_CORE = 0' if no debug core is found in the system. + none + false + none + + + hal.make.ignore_system_derived.big_endian + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query if SOPC system is big endian. If true ignores export of 'ALT_CFLAGS += -EB' to public.mk if big endian system. If true ignores export of 'ALT_CFLAGS += -EL' if little endian system. + none + false + none + + + hal.make.ignore_system_derived.hardware_fp_cust_inst_divider_present + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query if SOPC system floating point custom instruction with a divider is present. If true ignores export of 'ALT_CFLAGS += -mcustom-fpu-cfg=60-2' and 'ALT_LDFLAGS += -mcustom-fpu-cfg=60-2' to public.mk if the custom instruction is found in the system. + none + false + none + + + hal.make.ignore_system_derived.hardware_fp_cust_inst_no_divider_present + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query if SOPC system floating point custom instruction without a divider is present. If true ignores export of 'ALT_CFLAGS += -mcustom-fpu-cfg=60-1' and 'ALT_LDFLAGS += -mcustom-fpu-cfg=60-1' to public.mk if the custom instruction is found in the system. + none + false + none + + + hal.enable_exit + ALT_NO_EXIT + Boolean + 0 + 1 + public_mk_define + Add exit() support. This option increases code footprint if your "main()" routine does "return" or call "exit()". If false, adds -DALT_NO_EXIT to ALT_CPPFLAGS in public.mk, and reduces footprint + none + false + none + + + hal.enable_small_c_library + NONE + Boolean + 1 + 0 + public_mk_define + Causes the small newlib (C library) to be used. This reduces code and data footprint at the expense of reduced functionality. Several newlib features are removed such as floating-point support in printf(), stdin input routines, and buffered I/O. The small C library is not compatible with Micrium MicroC/OS-II. If true, adds -msmallc to ALT_LDFLAGS in public.mk. + none + false + common + + + hal.enable_clean_exit + ALT_NO_CLEAN_EXIT + Boolean + 0 + 1 + public_mk_define + When your application exits, close file descriptors, call C++ destructors, etc. Code footprint can be reduced by disabling clean exit. If disabled, adds -DALT_NO_CLEAN_EXIT to ALT_CPPFLAGS and -Wl,--defsym, exit=_exit to ALT_LDFLAGS in public.mk. + none + false + none + + + hal.enable_runtime_stack_checking + ALT_STACK_CHECK + Boolean + 0 + 0 + public_mk_define + Turns on HAL runtime stack checking feature. Enabling this setting causes additional code to be placed into each subroutine call to generate an exception if a stack collision occurs with the heap or statically allocated data. If true, adds -DALT_STACK_CHECK and -mstack-check to ALT_CPPFLAGS in public.mk. + none + false + none + + + hal.enable_gprof + ALT_PROVIDE_GMON + Boolean + 0 + 0 + public_mk_define + Causes code to be compiled with gprof profiling enabled and the application ELF to be linked with the GPROF library. If true, adds -DALT_PROVIDE_GMON to ALT_CPPFLAGS and -pg to ALT_CFLAGS in public.mk. + none + false + common + + + hal.enable_c_plus_plus + ALT_NO_C_PLUS_PLUS + Boolean + 0 + 1 + public_mk_define + Enable support for a subset of the C++ language. This option increases code footprint by adding support for C++ constructors. Certain features, such as multiple inheritance and exceptions are not supported. If false, adds -DALT_NO_C_PLUS_PLUS to ALT_CPPFLAGS in public.mk, and reduces code footprint. + none + false + none + + + hal.enable_reduced_device_drivers + ALT_USE_SMALL_DRIVERS + Boolean + 1 + 0 + public_mk_define + Certain drivers are compiled with reduced functionality to reduce code footprint. Not all drivers observe this setting. The altera_avalon_uart and altera_avalon_jtag_uart drivers switch from interrupt-driven to polled operation. CAUTION: Several device drivers are disabled entirely. These include the altera_avalon_cfi_flash, altera_avalon_epcs_flash_controller, and altera_avalon_lcd_16207 drivers. This can result in certain API (HAL flash access routines) to fail. You can define a symbol provided by each driver to prevent it from being removed. If true, adds -DALT_USE_SMALL_DRIVERS to ALT_CPPFLAGS in public.mk. + none + false + common + + + hal.enable_lightweight_device_driver_api + ALT_USE_DIRECT_DRIVERS + Boolean + 1 + 0 + public_mk_define + Enables lightweight device driver API. This reduces code and data footprint by removing the HAL layer that maps device names (e.g. /dev/uart0) to file descriptors. Instead, driver routines are called directly. The open(), close(), and lseek() routines will always fail if called. The read(), write(), fstat(), ioctl(), and isatty() routines only work for the stdio devices. If true, adds -DALT_USE_DIRECT_DRIVERS to ALT_CPPFLAGS in public.mk. + The Altera Host and read-only ZIP file systems can't be used if hal.enable_lightweight_device_driver_api is true. + false + none + + + hal.enable_mul_div_emulation + ALT_NO_INSTRUCTION_EMULATION + Boolean + 0 + 0 + public_mk_define + Adds code to emulate multiply and divide instructions in case they are executed but aren't present in the CPU. Normally this isn't required because the compiler won't use multiply and divide instructions that aren't present in the CPU. If false, adds -DALT_NO_INSTRUCTION_EMULATION to ALT_CPPFLAGS in public.mk. + none + false + none + + + hal.enable_sim_optimize + ALT_SIM_OPTIMIZE + Boolean + 0 + 0 + public_mk_define + The BSP is compiled with optimizations to speedup HDL simulation such as initializing the cache, clearing the .bss section, and skipping long delay loops. If true, adds -DALT_SIM_OPTIMIZE to ALT_CPPFLAGS in public.mk. + When this setting is true, the BSP shouldn't be used to build applications that are expected to run real hardware. + false + common + + + hal.enable_sopc_sysid_check + NONE + Boolean + 1 + 1 + public_mk_define + Enable SOPC Builder System ID. If a System ID SOPC Builder component is connected to the CPU associated with this BSP, it will be enabled in the creation of command-line arguments to download an ELF to the target. Otherwise, system ID and timestamp values are left out of public.mk for application Makefile "download-elf" target definition. With the system ID check disabled, the Nios II EDS tools will not automatically ensure that the application .elf file (and BSP it is linked against) corresponds to the hardware design on the target. If false, adds --accept-bad-sysid to SOPC_SYSID_FLAG in public.mk. + none + false + none + + + hal.custom_newlib_flags + CUSTOM_NEWLIB_FLAGS + UnquotedString + none + none + public_mk_define + Build a custom version of newlib with the specified space-separated compiler flags. + The custom newlib build will be placed in the &lt;bsp root>/newlib directory, and will be used only for applications that utilize this BSP. + false + none + + + hal.log_flags + ALT_LOG_FLAGS + DecimalNumber + 0 + 0 + public_mk_define + The value is assigned to ALT_LOG_FLAGS in the generated public.mk. See hal.log_port setting description. Values can be -1 through 3. + hal.log_port must be set for this to be used. + false + none + + + altera_avalon_jtag_uart_driver.enable_small_driver + ALTERA_AVALON_JTAG_UART_SMALL + BooleanDefineOnly + false + false + public_mk_define + Small-footprint (polled mode) driver + none + false + + + + altera_avalon_jtag_uart_driver.enable_jtag_uart_ignore_fifo_full_error + ALTERA_AVALON_JTAG_UART_IGNORE_FIFO_FULL_ERROR + BooleanDefineOnly + false + false + public_mk_define + Enable JTAG UART driver to recover when host is inactive causing buffer to full without returning error. Printf will not fail with this recovery. + none + false + + + + onchip_memory + 0x00000000 - 0x00003FFF + 16384 + memory + + + pio_0 + 0x00005000 - 0x0000500F + 16 + + + + hex6 + 0x00005010 - 0x0000501F + 16 + + + + hex5 + 0x00005020 - 0x0000502F + 16 + + + + hex4 + 0x00005030 - 0x0000503F + 16 + + + + hex3 + 0x00005040 - 0x0000504F + 16 + + + + hex2 + 0x00005050 - 0x0000505F + 16 + + + + hex1 + 0x00005060 - 0x0000506F + 16 + + + + hex0 + 0x00005070 - 0x0000507F + 16 + + + + push_switches + 0x00005080 - 0x0000508F + 16 + + + + switches + 0x00005090 - 0x0000509F + 16 + + + + LEDRs + 0x000050A0 - 0x000050AF + 16 + + + + LEDs + 0x000050B0 - 0x000050BF + 16 + + + + jtag_uart + 0x000050C0 - 0x000050C7 + 8 + printable + + + .text + onchip_memory + + + .rodata + onchip_memory + + + .rwdata + onchip_memory + + + .bss + onchip_memory + + + .heap + onchip_memory + + + .stack + onchip_memory + + \ No newline at end of file diff --git a/software/qsys_tutorial_mem_bsp/summary.html b/software/qsys_tutorial_mem_bsp/summary.html new file mode 100644 index 0000000..79163ee --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/summary.html @@ -0,0 +1,2038 @@ + +Altera Nios II BSP Summary + +

BSP Description

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
BSP Type:hal
SOPC Design File:C:\Users\takayun\Documents\DE2-115\qsys_tutorial\nios_system.sopcinfo
Quartus JDI File:default
CPU:nios2_processor
BSP Settings File:.\settings.bsp
BSP Version:default
BSP Generated On:2016/11/25 16:59:32
BSP Generated Timestamp:1480060772296
BSP Generated Location:C:\Users\takayun\Documents\DE2-115\qsys_tutorial\software\qsys_tutorial_mem_bsp
+
+

Nios II Memory Map

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Slave DescriptorAddress RangeSizeAttributes
jtag_uart0x000050C0 - 0x000050C78printable
LEDs0x000050B0 - 0x000050BF16 
LEDRs0x000050A0 - 0x000050AF16 
switches0x00005090 - 0x0000509F16 
push_switches0x00005080 - 0x0000508F16 
hex00x00005070 - 0x0000507F16 
hex10x00005060 - 0x0000506F16 
hex20x00005050 - 0x0000505F16 
hex30x00005040 - 0x0000504F16 
hex40x00005030 - 0x0000503F16 
hex50x00005020 - 0x0000502F16 
hex60x00005010 - 0x0000501F16 
pio_00x00005000 - 0x0000500F16 
onchip_memory0x00000000 - 0x00003FFF16384memory
+
+
+

Linker Regions

+ + + + +
RegionAddress RangeSizeMemoryOffset
+
+
+

Linker Section Mappings

+ + + + + + + + + + + + + + + + + + + + + + +
SectionRegion
.textonchip_memory
.rodataonchip_memory
.rwdataonchip_memory
.bssonchip_memory
.heaponchip_memory
.stackonchip_memory
+

Settings

+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:altera_avalon_jtag_uart_driver.enable_jtag_uart_ignore_fifo_full_error
Identifier:ALTERA_AVALON_JTAG_UART_IGNORE_FIFO_FULL_ERROR
Default Value:false
Value:false
Type:BooleanDefineOnly
Destination:public_mk_define
Description:Enable JTAG UART driver to recover when host is inactive causing buffer to full without returning error. Printf will not fail with this recovery.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:altera_avalon_jtag_uart_driver.enable_small_driver
Identifier:ALTERA_AVALON_JTAG_UART_SMALL
Default Value:false
Value:false
Type:BooleanDefineOnly
Destination:public_mk_define
Description:Small-footprint (polled mode) driver
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.custom_newlib_flags
Identifier:CUSTOM_NEWLIB_FLAGS
Default Value:none
Value:none
Type:UnquotedString
Destination:public_mk_define
Description:Build a custom version of newlib with the specified space-separated compiler flags.
Restrictions:The custom newlib build will be placed in the &lt;bsp root>/newlib directory, and will be used only for applications that utilize this BSP.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_c_plus_plus
Identifier:ALT_NO_C_PLUS_PLUS
Default Value:1
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable support for a subset of the C++ language. This option increases code footprint by adding support for C++ constructors. Certain features, such as multiple inheritance and exceptions are not supported. If false, adds -DALT_NO_C_PLUS_PLUS to ALT_CPPFLAGS in public.mk, and reduces code footprint.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_clean_exit
Identifier:ALT_NO_CLEAN_EXIT
Default Value:1
Value:0
Type:Boolean
Destination:public_mk_define
Description:When your application exits, close file descriptors, call C++ destructors, etc. Code footprint can be reduced by disabling clean exit. If disabled, adds -DALT_NO_CLEAN_EXIT to ALT_CPPFLAGS and -Wl,--defsym, exit=_exit to ALT_LDFLAGS in public.mk.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_exit
Identifier:ALT_NO_EXIT
Default Value:1
Value:0
Type:Boolean
Destination:public_mk_define
Description:Add exit() support. This option increases code footprint if your "main()" routine does "return" or call "exit()". If false, adds -DALT_NO_EXIT to ALT_CPPFLAGS in public.mk, and reduces footprint
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_gprof
Identifier:ALT_PROVIDE_GMON
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Causes code to be compiled with gprof profiling enabled and the application ELF to be linked with the GPROF library. If true, adds -DALT_PROVIDE_GMON to ALT_CPPFLAGS and -pg to ALT_CFLAGS in public.mk.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_instruction_related_exceptions_api
Identifier:ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API
Default Value:false
Value:false
Type:BooleanDefineOnly
Destination:system_h_define
Description:Enables API for registering handlers to service instruction-related exceptions. Enabling this setting increases the size of the exception entry code.
Restrictions:These exception types can be generated if various processor options are enabled, such as the MMU, MPU, or other advanced exception types.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_lightweight_device_driver_api
Identifier:ALT_USE_DIRECT_DRIVERS
Default Value:0
Value:1
Type:Boolean
Destination:public_mk_define
Description:Enables lightweight device driver API. This reduces code and data footprint by removing the HAL layer that maps device names (e.g. /dev/uart0) to file descriptors. Instead, driver routines are called directly. The open(), close(), and lseek() routines will always fail if called. The read(), write(), fstat(), ioctl(), and isatty() routines only work for the stdio devices. If true, adds -DALT_USE_DIRECT_DRIVERS to ALT_CPPFLAGS in public.mk.
Restrictions:The Altera Host and read-only ZIP file systems can't be used if hal.enable_lightweight_device_driver_api is true.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_mul_div_emulation
Identifier:ALT_NO_INSTRUCTION_EMULATION
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Adds code to emulate multiply and divide instructions in case they are executed but aren't present in the CPU. Normally this isn't required because the compiler won't use multiply and divide instructions that aren't present in the CPU. If false, adds -DALT_NO_INSTRUCTION_EMULATION to ALT_CPPFLAGS in public.mk.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_reduced_device_drivers
Identifier:ALT_USE_SMALL_DRIVERS
Default Value:0
Value:1
Type:Boolean
Destination:public_mk_define
Description:Certain drivers are compiled with reduced functionality to reduce code footprint. Not all drivers observe this setting. The altera_avalon_uart and altera_avalon_jtag_uart drivers switch from interrupt-driven to polled operation. CAUTION: Several device drivers are disabled entirely. These include the altera_avalon_cfi_flash, altera_avalon_epcs_flash_controller, and altera_avalon_lcd_16207 drivers. This can result in certain API (HAL flash access routines) to fail. You can define a symbol provided by each driver to prevent it from being removed. If true, adds -DALT_USE_SMALL_DRIVERS to ALT_CPPFLAGS in public.mk.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_runtime_stack_checking
Identifier:ALT_STACK_CHECK
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Turns on HAL runtime stack checking feature. Enabling this setting causes additional code to be placed into each subroutine call to generate an exception if a stack collision occurs with the heap or statically allocated data. If true, adds -DALT_STACK_CHECK and -mstack-check to ALT_CPPFLAGS in public.mk.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_sim_optimize
Identifier:ALT_SIM_OPTIMIZE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:The BSP is compiled with optimizations to speedup HDL simulation such as initializing the cache, clearing the .bss section, and skipping long delay loops. If true, adds -DALT_SIM_OPTIMIZE to ALT_CPPFLAGS in public.mk.
Restrictions:When this setting is true, the BSP shouldn't be used to build applications that are expected to run real hardware.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_small_c_library
Identifier:NONE
Default Value:0
Value:1
Type:Boolean
Destination:public_mk_define
Description:Causes the small newlib (C library) to be used. This reduces code and data footprint at the expense of reduced functionality. Several newlib features are removed such as floating-point support in printf(), stdin input routines, and buffered I/O. The small C library is not compatible with Micrium MicroC/OS-II. If true, adds -msmallc to ALT_LDFLAGS in public.mk.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_sopc_sysid_check
Identifier:NONE
Default Value:1
Value:1
Type:Boolean
Destination:public_mk_define
Description:Enable SOPC Builder System ID. If a System ID SOPC Builder component is connected to the CPU associated with this BSP, it will be enabled in the creation of command-line arguments to download an ELF to the target. Otherwise, system ID and timestamp values are left out of public.mk for application Makefile "download-elf" target definition. With the system ID check disabled, the Nios II EDS tools will not automatically ensure that the application .elf file (and BSP it is linked against) corresponds to the hardware design on the target. If false, adds --accept-bad-sysid to SOPC_SYSID_FLAG in public.mk.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.linker.allow_code_at_reset
Identifier:ALT_ALLOW_CODE_AT_RESET
Default Value:0
Value:1
Type:Boolean
Destination:none
Description:Indicates if initialization code is allowed at the reset address. If true, defines the macro ALT_ALLOW_CODE_AT_RESET in linker.h.
Restrictions:If true, defines the macro ALT_ALLOW_CODE_AT_RESET in linker.h. This setting is typically false if an external bootloader (e.g. flash bootloader) is present.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.linker.enable_alt_load
Identifier:NONE
Default Value:0
Value:1
Type:Boolean
Destination:none
Description:Enables the alt_load() facility. The alt_load() facility copies sections from the .text memory into RAM. If true, this setting sets up the VMA/LMA of sections in linker.x to allow them to be loaded into the .text memory.
Restrictions:This setting is typically false if an external bootloader (e.g. flash bootloader) is present.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.linker.enable_alt_load_copy_exceptions
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:none
Description:Causes the alt_load() facility to copy the .exceptions section. If true, this setting defines the macro ALT_LOAD_COPY_EXCEPTIONS in linker.h.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.linker.enable_alt_load_copy_rodata
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:none
Description:Causes the alt_load() facility to copy the .rodata section. If true, this setting defines the macro ALT_LOAD_COPY_RODATA in linker.h.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.linker.enable_alt_load_copy_rwdata
Identifier:NONE
Default Value:0
Value:1
Type:Boolean
Destination:none
Description:Causes the alt_load() facility to copy the .rwdata section. If true, this setting defines the macro ALT_LOAD_COPY_RWDATA in linker.h.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.linker.enable_exception_stack
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:none
Description:Enables use of a separate exception stack. If true, defines the macro ALT_EXCEPTION_STACK in linker.h, adds a memory region called exception_stack to linker.x, and provides the symbols __alt_exception_stack_pointer and __alt_exception_stack_limit in linker.x.
Restrictions:The hal.linker.exception_stack_size and hal.linker.exception_stack_memory_region_name settings must also be valid. This setting must be false for MicroC/OS-II BSPs. The exception stack can be used to improve interrupt and other exception performance if the EIC is *not* used.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.linker.enable_interrupt_stack
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:none
Description:Enables use of a separate interrupt stack. If true, defines the macro ALT_INTERRUPT_STACK in linker.h, adds a memory region called interrupt_stack to linker.x, and provides the symbols __alt_interrupt_stack_pointer and __alt_interrupt_stack_limit in linker.x.
Restrictions:The hal.linker.interrupt_stack_size and hal.linker.interrupt_stack_memory_region_name settings must also be valid. This setting must be false for MicroC/OS-II BSPs. Only enable if the EIC is used exclusively. The exception stack can be used to improve interrupt and other exception performance if the EIC is *not* used.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.linker.exception_stack_memory_region_name
Identifier:NONE
Default Value:none
Value:onchip_memory
Type:UnquotedString
Destination:none
Description:Name of the existing memory region that will be divided up to create the 'exception_stack' memory region. The selected region name will be adjusted automatically when the BSP is generated to create the 'exception_stack' memory region.
Restrictions:Only used if hal.linker.enable_exception_stack is true.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.linker.exception_stack_size
Identifier:NONE
Default Value:1024
Value:1024
Type:DecimalNumber
Destination:none
Description:Size of the exception stack in bytes.
Restrictions:Only used if hal.linker.enable_exception_stack is true.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.linker.interrupt_stack_memory_region_name
Identifier:NONE
Default Value:none
Value:onchip_memory
Type:UnquotedString
Destination:none
Description:Name of the existing memory region that will be divided up to create the 'interrupt_stack' memory region. The selected region name will be adjusted automatically when the BSP is generated to create the 'interrupt_stack' memory region.
Restrictions:Only used if hal.linker.enable_interrupt_stack is true.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.linker.interrupt_stack_size
Identifier:NONE
Default Value:1024
Value:1024
Type:DecimalNumber
Destination:none
Description:Size of the interrupt stack in bytes.
Restrictions:Only used if hal.linker.enable_interrupt_stack is true.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.log_flags
Identifier:ALT_LOG_FLAGS
Default Value:0
Value:0
Type:DecimalNumber
Destination:public_mk_define
Description:The value is assigned to ALT_LOG_FLAGS in the generated public.mk. See hal.log_port setting description. Values can be -1 through 3.
Restrictions:hal.log_port must be set for this to be used.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.log_port
Identifier:NONE
Default Value:none
Value:none
Type:UnquotedString
Destination:public_mk_define
Description:Slave descriptor of debug logging character-mode device. If defined, it enables extra debug messages in the HAL source. This setting is used by the ALT_LOG_PORT family of defines in system.h.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ar
Identifier:AR
Default Value:nios2-elf-ar
Value:nios2-elf-ar
Type:UnquotedString
Destination:makefile_variable
Description:Archiver command. Creates library files.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ar_post_process
Identifier:AR_POST_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed after archiver execution.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ar_pre_process
Identifier:AR_PRE_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed before archiver execution.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.as
Identifier:AS
Default Value:nios2-elf-gcc
Value:nios2-elf-gcc
Type:UnquotedString
Destination:makefile_variable
Description:Assembler command. Note that CC is used for .S files.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.as_post_process
Identifier:AS_POST_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed after each assembly file is compiled.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.as_pre_process
Identifier:AS_PRE_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed before each assembly file is compiled.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.bsp_arflags
Identifier:BSP_ARFLAGS
Default Value:-src
Value:-src
Type:UnquotedString
Destination:makefile_variable
Description:Custom flags only passed to the archiver. This content of this variable is directly passed to the archiver rather than the more standard "ARFLAGS". The reason for this is that GNU Make assumes some default content in ARFLAGS. This setting defines the value of BSP_ARFLAGS in Makefile.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.bsp_asflags
Identifier:BSP_ASFLAGS
Default Value:-Wa,-gdwarf2
Value:-Wa,-gdwarf2
Type:UnquotedString
Destination:makefile_variable
Description:Custom flags only passed to the assembler. This setting defines the value of BSP_ASFLAGS in Makefile.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.bsp_cflags_debug
Identifier:BSP_CFLAGS_DEBUG
Default Value:-g
Value:-g
Type:UnquotedString
Destination:makefile_variable
Description:C/C++ compiler debug level. '-g' provides the default set of debug symbols typically required to debug a typical application. Omitting '-g' removes debug symbols from the ELF. This setting defines the value of BSP_CFLAGS_DEBUG in Makefile.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.bsp_cflags_defined_symbols
Identifier:BSP_CFLAGS_DEFINED_SYMBOLS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Preprocessor macros to define. A macro definition in this setting has the same effect as a "#define" in source code. Adding "-DALT_DEBUG" to this setting has the same effect as "#define ALT_DEBUG" in a souce file. Adding "-DFOO=1" to this setting is equivalent to the macro "#define FOO 1" in a source file. Macros defined with this setting are applied to all .S, .c, and C++ files in the BSP. This setting defines the value of BSP_CFLAGS_DEFINED_SYMBOLS in the BSP Makefile.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.bsp_cflags_optimization
Identifier:BSP_CFLAGS_OPTIMIZATION
Default Value:-O0
Value:'-Os'
Type:UnquotedString
Destination:makefile_variable
Description:C/C++ compiler optimization level. "-O0" = no optimization,"-O2" = "normal" optimization, etc. "-O0" is recommended for code that you want to debug since compiler optimization can remove variables and produce non-sequential execution of code while debugging. This setting defines the value of BSP_CFLAGS_OPTIMIZATION in Makefile.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.bsp_cflags_undefined_symbols
Identifier:BSP_CFLAGS_UNDEFINED_SYMBOLS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Preprocessor macros to undefine. Undefined macros are similar to defined macros, but replicate the "#undef" directive in source code. To undefine the macro FOO use the syntax "-u FOO" in this setting. This is equivalent to "#undef FOO" in a source file. Note: the syntax differs from macro definition (there is a space, i.e. "-u FOO" versus "-DFOO"). Macros defined with this setting are applied to all .S, .c, and C++ files in the BSP. This setting defines the value of BSP_CFLAGS_UNDEFINED_SYMBOLS in the BSP Makefile.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.bsp_cflags_user_flags
Identifier:BSP_CFLAGS_USER_FLAGS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Custom flags passed to the compiler when compiling C, C++, and .S files. This setting defines the value of BSP_CFLAGS_USER_FLAGS in Makefile.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.bsp_cflags_warnings
Identifier:BSP_CFLAGS_WARNINGS
Default Value:-Wall
Value:-Wall
Type:UnquotedString
Destination:makefile_variable
Description:C/C++ compiler warning level. "-Wall" is commonly used.This setting defines the value of BSP_CFLAGS_WARNINGS in Makefile.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.bsp_cxx_flags
Identifier:BSP_CXXFLAGS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Custom flags only passed to the C++ compiler. This setting defines the value of BSP_CXXFLAGS in Makefile.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.bsp_inc_dirs
Identifier:BSP_INC_DIRS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Space separated list of extra include directories to scan for header files. Directories are relative to the top-level BSP directory. The -I prefix's added by the makefile so don't add it here. This setting defines the value of BSP_INC_DIRS in Makefile.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.build_post_process
Identifier:BUILD_POST_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed after BSP built.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.build_pre_process
Identifier:BUILD_PRE_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed before BSP built.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.cc
Identifier:CC
Default Value:nios2-elf-gcc -xc
Value:nios2-elf-gcc -xc
Type:UnquotedString
Destination:makefile_variable
Description:C compiler command.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.cc_post_process
Identifier:CC_POST_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed after each .c/.S file is compiled.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.cc_pre_process
Identifier:CC_PRE_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed before each .c/.S file is compiled.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.cxx
Identifier:CXX
Default Value:nios2-elf-gcc -xc++
Value:nios2-elf-gcc -xc++
Type:UnquotedString
Destination:makefile_variable
Description:C++ compiler command.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.cxx_post_process
Identifier:CXX_POST_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed before each C++ file is compiled.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.cxx_pre_process
Identifier:CXX_PRE_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed before each C++ file is compiled.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.big_endian
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query if SOPC system is big endian. If true ignores export of 'ALT_CFLAGS += -EB' to public.mk if big endian system. If true ignores export of 'ALT_CFLAGS += -EL' if little endian system.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.debug_core_present
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query if SOPC system has a debug core present. If true ignores export of 'CPU_HAS_DEBUG_CORE = 1' to public.mk if a debug core is found in the system. If true ignores export of 'CPU_HAS_DEBUG_CORE = 0' if no debug core is found in the system.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.fpu_present
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query if SOPC system has FPU present. If true ignores export of 'ALT_CFLAGS += -mhard-float' to public.mk if FPU is found in the system. If true ignores export of 'ALT_CFLAGS += -mhard-soft' if FPU is not found in the system.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.hardware_divide_present
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query if SOPC system has hardware divide present. If true ignores export of 'ALT_CFLAGS += -mno-hw-div' to public.mk if no division is found in system. If true ignores export of 'ALT_CFLAGS += -mhw-div' if division is found in the system.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.hardware_fp_cust_inst_divider_present
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query if SOPC system floating point custom instruction with a divider is present. If true ignores export of 'ALT_CFLAGS += -mcustom-fpu-cfg=60-2' and 'ALT_LDFLAGS += -mcustom-fpu-cfg=60-2' to public.mk if the custom instruction is found in the system.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.hardware_fp_cust_inst_no_divider_present
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query if SOPC system floating point custom instruction without a divider is present. If true ignores export of 'ALT_CFLAGS += -mcustom-fpu-cfg=60-1' and 'ALT_LDFLAGS += -mcustom-fpu-cfg=60-1' to public.mk if the custom instruction is found in the system.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.hardware_multiplier_present
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query if SOPC system has multiplier present. If true ignores export of 'ALT_CFLAGS += -mno-hw-mul' to public.mk if no multiplier is found in the system. If true ignores export of 'ALT_CFLAGS += -mhw-mul' if multiplier is found in the system.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.hardware_mulx_present
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query if SOPC system has hardware mulx present. If true ignores export of 'ALT_CFLAGS += -mno-hw-mulx' to public.mk if no mulx is found in the system. If true ignores export of 'ALT_CFLAGS += -mhw-mulx' if mulx is found in the system.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.sopc_simulation_enabled
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query if SOPC system has simulation enabled. If true ignores export of 'ELF_PATCH_FLAG += --simulation_enabled' to public.mk.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.sopc_system_base_address
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query SOPC system for system ID base address. If true ignores export of 'SOPC_SYSID_FLAG += --sidp=<address>' and 'ELF_PATCH_FLAG += --sidp=<address>' to public.mk.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.sopc_system_id
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query SOPC system for system ID. If true ignores export of 'SOPC_SYSID_FLAG += --id=<sysid>' and 'ELF_PATCH_FLAG += --id=<sysid>' to public.mk.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.sopc_system_timestamp
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query SOPC system for system timestamp. If true ignores export of 'SOPC_SYSID_FLAG += --timestamp=<timestamp>' and 'ELF_PATCH_FLAG += --timestamp=<timestamp>' to public.mk.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.rm
Identifier:RM
Default Value:rm -f
Value:rm -f
Type:UnquotedString
Destination:makefile_variable
Description:Command used to remove files during 'clean' target.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.max_file_descriptors
Identifier:ALT_MAX_FD
Default Value:32
Value:4
Type:DecimalNumber
Destination:system_h_define
Description:Determines the number of file descriptors statically allocated. This setting defines the value of ALT_MAX_FD in system.h.
Restrictions:If hal.enable_lightweight_device_driver_api is true, there are no file descriptors so this setting is ignored. If hal.enable_lightweight_device_driver_api is false, this setting must be at least 4 because HAL needs a file descriptor for /dev/null, /dev/stdin, /dev/stdout, and /dev/stderr.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.stderr
Identifier:NONE
Default Value:none
Value:jtag_uart
Type:UnquotedString
Destination:system_h_define
Description:Slave descriptor of STDERR character-mode device. This setting is used by the ALT_STDERR family of defines in system.h.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.stdin
Identifier:NONE
Default Value:none
Value:jtag_uart
Type:UnquotedString
Destination:system_h_define
Description:Slave descriptor of STDIN character-mode device. This setting is used by the ALT_STDIN family of defines in system.h.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.stdout
Identifier:NONE
Default Value:none
Value:jtag_uart
Type:UnquotedString
Destination:system_h_define
Description:Slave descriptor of STDOUT character-mode device. This setting is used by the ALT_STDOUT family of defines in system.h.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.sys_clk_timer
Identifier:ALT_SYS_CLK
Default Value:none
Value:none
Type:UnquotedString
Destination:system_h_define
Description:Slave descriptor of the system clock timer device. This device provides a periodic interrupt ("tick") and is typically required for RTOS use. This setting defines the value of ALT_SYS_CLK in system.h.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.timestamp_timer
Identifier:ALT_TIMESTAMP_CLK
Default Value:none
Value:none
Type:UnquotedString
Destination:system_h_define
Description:Slave descriptor of timestamp timer device. This device is used by Altera HAL timestamp drivers for high-resolution time measurement. This setting defines the value of ALT_TIMESTAMP_CLK in system.h.
Restrictions:none
+
+
+
+ + diff --git a/software/qsys_tutorial_mem_bsp/system.h b/software/qsys_tutorial_mem_bsp/system.h new file mode 100644 index 0000000..9ec656f --- /dev/null +++ b/software/qsys_tutorial_mem_bsp/system.h @@ -0,0 +1,548 @@ +/* + * system.h - SOPC Builder system and BSP software package information + * + * Machine generated for CPU 'nios2_processor' in SOPC Builder design 'nios_system' + * SOPC Builder design path: C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.sopcinfo + * + * Generated: Fri Nov 25 16:59:33 JST 2016 + */ + +/* + * DO NOT MODIFY THIS FILE + * + * Changing this file will have subtle consequences + * which will almost certainly lead to a nonfunctioning + * system. If you do modify this file, be aware that your + * changes will be overwritten and lost when this file + * is generated again. + * + * DO NOT MODIFY THIS FILE + */ + +/* + * License Agreement + * + * Copyright (c) 2008 + * Altera Corporation, San Jose, California, USA. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + * This agreement shall be governed in all respects by the laws of the State + * of California and by the laws of the United States of America. + */ + +#ifndef __SYSTEM_H_ +#define __SYSTEM_H_ + +/* Include definitions from linker script generator */ +#include "linker.h" + + +/* + * CPU configuration + * + */ + +#define ALT_CPU_ARCHITECTURE "altera_nios2_qsys" +#define ALT_CPU_BIG_ENDIAN 0 +#define ALT_CPU_BREAK_ADDR 0x4820 +#define ALT_CPU_CPU_FREQ 50000000u +#define ALT_CPU_CPU_ID_SIZE 1 +#define ALT_CPU_CPU_ID_VALUE 0x00000000 +#define ALT_CPU_CPU_IMPLEMENTATION "tiny" +#define ALT_CPU_DATA_ADDR_WIDTH 0xf +#define ALT_CPU_DCACHE_LINE_SIZE 0 +#define ALT_CPU_DCACHE_LINE_SIZE_LOG2 0 +#define ALT_CPU_DCACHE_SIZE 0 +#define ALT_CPU_EXCEPTION_ADDR 0x20 +#define ALT_CPU_FLUSHDA_SUPPORTED +#define ALT_CPU_FREQ 50000000 +#define ALT_CPU_HARDWARE_DIVIDE_PRESENT 0 +#define ALT_CPU_HARDWARE_MULTIPLY_PRESENT 0 +#define ALT_CPU_HARDWARE_MULX_PRESENT 0 +#define ALT_CPU_HAS_DEBUG_CORE 1 +#define ALT_CPU_HAS_DEBUG_STUB +#define ALT_CPU_HAS_JMPI_INSTRUCTION +#define ALT_CPU_ICACHE_LINE_SIZE 0 +#define ALT_CPU_ICACHE_LINE_SIZE_LOG2 0 +#define ALT_CPU_ICACHE_SIZE 0 +#define ALT_CPU_INST_ADDR_WIDTH 0xf +#define ALT_CPU_NAME "nios2_processor" +#define ALT_CPU_RESET_ADDR 0x0 + + +/* + * CPU configuration (with legacy prefix - don't use these anymore) + * + */ + +#define NIOS2_BIG_ENDIAN 0 +#define NIOS2_BREAK_ADDR 0x4820 +#define NIOS2_CPU_FREQ 50000000u +#define NIOS2_CPU_ID_SIZE 1 +#define NIOS2_CPU_ID_VALUE 0x00000000 +#define NIOS2_CPU_IMPLEMENTATION "tiny" +#define NIOS2_DATA_ADDR_WIDTH 0xf +#define NIOS2_DCACHE_LINE_SIZE 0 +#define NIOS2_DCACHE_LINE_SIZE_LOG2 0 +#define NIOS2_DCACHE_SIZE 0 +#define NIOS2_EXCEPTION_ADDR 0x20 +#define NIOS2_FLUSHDA_SUPPORTED +#define NIOS2_HARDWARE_DIVIDE_PRESENT 0 +#define NIOS2_HARDWARE_MULTIPLY_PRESENT 0 +#define NIOS2_HARDWARE_MULX_PRESENT 0 +#define NIOS2_HAS_DEBUG_CORE 1 +#define NIOS2_HAS_DEBUG_STUB +#define NIOS2_HAS_JMPI_INSTRUCTION +#define NIOS2_ICACHE_LINE_SIZE 0 +#define NIOS2_ICACHE_LINE_SIZE_LOG2 0 +#define NIOS2_ICACHE_SIZE 0 +#define NIOS2_INST_ADDR_WIDTH 0xf +#define NIOS2_RESET_ADDR 0x0 + + +/* + * Define for each module class mastered by the CPU + * + */ + +#define __ALTERA_AVALON_JTAG_UART +#define __ALTERA_AVALON_ONCHIP_MEMORY2 +#define __ALTERA_AVALON_PIO +#define __ALTERA_NIOS2_QSYS + + +/* + * LEDRs configuration + * + */ + +#define ALT_MODULE_CLASS_LEDRs altera_avalon_pio +#define LEDRS_BASE 0x50a0 +#define LEDRS_BIT_CLEARING_EDGE_REGISTER 0 +#define LEDRS_BIT_MODIFYING_OUTPUT_REGISTER 0 +#define LEDRS_CAPTURE 0 +#define LEDRS_DATA_WIDTH 18 +#define LEDRS_DO_TEST_BENCH_WIRING 0 +#define LEDRS_DRIVEN_SIM_VALUE 0 +#define LEDRS_EDGE_TYPE "NONE" +#define LEDRS_FREQ 50000000 +#define LEDRS_HAS_IN 0 +#define LEDRS_HAS_OUT 1 +#define LEDRS_HAS_TRI 0 +#define LEDRS_IRQ -1 +#define LEDRS_IRQ_INTERRUPT_CONTROLLER_ID -1 +#define LEDRS_IRQ_TYPE "NONE" +#define LEDRS_NAME "/dev/LEDRs" +#define LEDRS_RESET_VALUE 0 +#define LEDRS_SPAN 16 +#define LEDRS_TYPE "altera_avalon_pio" + + +/* + * LEDs configuration + * + */ + +#define ALT_MODULE_CLASS_LEDs altera_avalon_pio +#define LEDS_BASE 0x50b0 +#define LEDS_BIT_CLEARING_EDGE_REGISTER 0 +#define LEDS_BIT_MODIFYING_OUTPUT_REGISTER 0 +#define LEDS_CAPTURE 0 +#define LEDS_DATA_WIDTH 8 +#define LEDS_DO_TEST_BENCH_WIRING 0 +#define LEDS_DRIVEN_SIM_VALUE 0 +#define LEDS_EDGE_TYPE "NONE" +#define LEDS_FREQ 50000000 +#define LEDS_HAS_IN 0 +#define LEDS_HAS_OUT 1 +#define LEDS_HAS_TRI 0 +#define LEDS_IRQ -1 +#define LEDS_IRQ_INTERRUPT_CONTROLLER_ID -1 +#define LEDS_IRQ_TYPE "NONE" +#define LEDS_NAME "/dev/LEDs" +#define LEDS_RESET_VALUE 0 +#define LEDS_SPAN 16 +#define LEDS_TYPE "altera_avalon_pio" + + +/* + * System configuration + * + */ + +#define ALT_DEVICE_FAMILY "Cyclone IV E" +#define ALT_ENHANCED_INTERRUPT_API_PRESENT +#define ALT_IRQ_BASE NULL +#define ALT_LOG_PORT "/dev/null" +#define ALT_LOG_PORT_BASE 0x0 +#define ALT_LOG_PORT_DEV null +#define ALT_LOG_PORT_TYPE "" +#define ALT_NUM_EXTERNAL_INTERRUPT_CONTROLLERS 0 +#define ALT_NUM_INTERNAL_INTERRUPT_CONTROLLERS 1 +#define ALT_NUM_INTERRUPT_CONTROLLERS 1 +#define ALT_STDERR "/dev/jtag_uart" +#define ALT_STDERR_BASE 0x50c0 +#define ALT_STDERR_DEV jtag_uart +#define ALT_STDERR_IS_JTAG_UART +#define ALT_STDERR_PRESENT +#define ALT_STDERR_TYPE "altera_avalon_jtag_uart" +#define ALT_STDIN "/dev/jtag_uart" +#define ALT_STDIN_BASE 0x50c0 +#define ALT_STDIN_DEV jtag_uart +#define ALT_STDIN_IS_JTAG_UART +#define ALT_STDIN_PRESENT +#define ALT_STDIN_TYPE "altera_avalon_jtag_uart" +#define ALT_STDOUT "/dev/jtag_uart" +#define ALT_STDOUT_BASE 0x50c0 +#define ALT_STDOUT_DEV jtag_uart +#define ALT_STDOUT_IS_JTAG_UART +#define ALT_STDOUT_PRESENT +#define ALT_STDOUT_TYPE "altera_avalon_jtag_uart" +#define ALT_SYSTEM_NAME "nios_system" + + +/* + * hal configuration + * + */ + +#define ALT_MAX_FD 4 +#define ALT_SYS_CLK none +#define ALT_TIMESTAMP_CLK none + + +/* + * hex0 configuration + * + */ + +#define ALT_MODULE_CLASS_hex0 altera_avalon_pio +#define HEX0_BASE 0x5070 +#define HEX0_BIT_CLEARING_EDGE_REGISTER 0 +#define HEX0_BIT_MODIFYING_OUTPUT_REGISTER 0 +#define HEX0_CAPTURE 0 +#define HEX0_DATA_WIDTH 7 +#define HEX0_DO_TEST_BENCH_WIRING 0 +#define HEX0_DRIVEN_SIM_VALUE 0 +#define HEX0_EDGE_TYPE "NONE" +#define HEX0_FREQ 50000000 +#define HEX0_HAS_IN 0 +#define HEX0_HAS_OUT 1 +#define HEX0_HAS_TRI 0 +#define HEX0_IRQ -1 +#define HEX0_IRQ_INTERRUPT_CONTROLLER_ID -1 +#define HEX0_IRQ_TYPE "NONE" +#define HEX0_NAME "/dev/hex0" +#define HEX0_RESET_VALUE 0 +#define HEX0_SPAN 16 +#define HEX0_TYPE "altera_avalon_pio" + + +/* + * hex1 configuration + * + */ + +#define ALT_MODULE_CLASS_hex1 altera_avalon_pio +#define HEX1_BASE 0x5060 +#define HEX1_BIT_CLEARING_EDGE_REGISTER 0 +#define HEX1_BIT_MODIFYING_OUTPUT_REGISTER 0 +#define HEX1_CAPTURE 0 +#define HEX1_DATA_WIDTH 7 +#define HEX1_DO_TEST_BENCH_WIRING 0 +#define HEX1_DRIVEN_SIM_VALUE 0 +#define HEX1_EDGE_TYPE "NONE" +#define HEX1_FREQ 50000000 +#define HEX1_HAS_IN 0 +#define HEX1_HAS_OUT 1 +#define HEX1_HAS_TRI 0 +#define HEX1_IRQ -1 +#define HEX1_IRQ_INTERRUPT_CONTROLLER_ID -1 +#define HEX1_IRQ_TYPE "NONE" +#define HEX1_NAME "/dev/hex1" +#define HEX1_RESET_VALUE 0 +#define HEX1_SPAN 16 +#define HEX1_TYPE "altera_avalon_pio" + + +/* + * hex2 configuration + * + */ + +#define ALT_MODULE_CLASS_hex2 altera_avalon_pio +#define HEX2_BASE 0x5050 +#define HEX2_BIT_CLEARING_EDGE_REGISTER 0 +#define HEX2_BIT_MODIFYING_OUTPUT_REGISTER 0 +#define HEX2_CAPTURE 0 +#define HEX2_DATA_WIDTH 7 +#define HEX2_DO_TEST_BENCH_WIRING 0 +#define HEX2_DRIVEN_SIM_VALUE 0 +#define HEX2_EDGE_TYPE "NONE" +#define HEX2_FREQ 50000000 +#define HEX2_HAS_IN 0 +#define HEX2_HAS_OUT 1 +#define HEX2_HAS_TRI 0 +#define HEX2_IRQ -1 +#define HEX2_IRQ_INTERRUPT_CONTROLLER_ID -1 +#define HEX2_IRQ_TYPE "NONE" +#define HEX2_NAME "/dev/hex2" +#define HEX2_RESET_VALUE 0 +#define HEX2_SPAN 16 +#define HEX2_TYPE "altera_avalon_pio" + + +/* + * hex3 configuration + * + */ + +#define ALT_MODULE_CLASS_hex3 altera_avalon_pio +#define HEX3_BASE 0x5040 +#define HEX3_BIT_CLEARING_EDGE_REGISTER 0 +#define HEX3_BIT_MODIFYING_OUTPUT_REGISTER 0 +#define HEX3_CAPTURE 0 +#define HEX3_DATA_WIDTH 7 +#define HEX3_DO_TEST_BENCH_WIRING 0 +#define HEX3_DRIVEN_SIM_VALUE 0 +#define HEX3_EDGE_TYPE "NONE" +#define HEX3_FREQ 50000000 +#define HEX3_HAS_IN 0 +#define HEX3_HAS_OUT 1 +#define HEX3_HAS_TRI 0 +#define HEX3_IRQ -1 +#define HEX3_IRQ_INTERRUPT_CONTROLLER_ID -1 +#define HEX3_IRQ_TYPE "NONE" +#define HEX3_NAME "/dev/hex3" +#define HEX3_RESET_VALUE 0 +#define HEX3_SPAN 16 +#define HEX3_TYPE "altera_avalon_pio" + + +/* + * hex4 configuration + * + */ + +#define ALT_MODULE_CLASS_hex4 altera_avalon_pio +#define HEX4_BASE 0x5030 +#define HEX4_BIT_CLEARING_EDGE_REGISTER 0 +#define HEX4_BIT_MODIFYING_OUTPUT_REGISTER 0 +#define HEX4_CAPTURE 0 +#define HEX4_DATA_WIDTH 7 +#define HEX4_DO_TEST_BENCH_WIRING 0 +#define HEX4_DRIVEN_SIM_VALUE 0 +#define HEX4_EDGE_TYPE "NONE" +#define HEX4_FREQ 50000000 +#define HEX4_HAS_IN 0 +#define HEX4_HAS_OUT 1 +#define HEX4_HAS_TRI 0 +#define HEX4_IRQ -1 +#define HEX4_IRQ_INTERRUPT_CONTROLLER_ID -1 +#define HEX4_IRQ_TYPE "NONE" +#define HEX4_NAME "/dev/hex4" +#define HEX4_RESET_VALUE 0 +#define HEX4_SPAN 16 +#define HEX4_TYPE "altera_avalon_pio" + + +/* + * hex5 configuration + * + */ + +#define ALT_MODULE_CLASS_hex5 altera_avalon_pio +#define HEX5_BASE 0x5020 +#define HEX5_BIT_CLEARING_EDGE_REGISTER 0 +#define HEX5_BIT_MODIFYING_OUTPUT_REGISTER 0 +#define HEX5_CAPTURE 0 +#define HEX5_DATA_WIDTH 7 +#define HEX5_DO_TEST_BENCH_WIRING 0 +#define HEX5_DRIVEN_SIM_VALUE 0 +#define HEX5_EDGE_TYPE "NONE" +#define HEX5_FREQ 50000000 +#define HEX5_HAS_IN 0 +#define HEX5_HAS_OUT 1 +#define HEX5_HAS_TRI 0 +#define HEX5_IRQ -1 +#define HEX5_IRQ_INTERRUPT_CONTROLLER_ID -1 +#define HEX5_IRQ_TYPE "NONE" +#define HEX5_NAME "/dev/hex5" +#define HEX5_RESET_VALUE 0 +#define HEX5_SPAN 16 +#define HEX5_TYPE "altera_avalon_pio" + + +/* + * hex6 configuration + * + */ + +#define ALT_MODULE_CLASS_hex6 altera_avalon_pio +#define HEX6_BASE 0x5010 +#define HEX6_BIT_CLEARING_EDGE_REGISTER 0 +#define HEX6_BIT_MODIFYING_OUTPUT_REGISTER 0 +#define HEX6_CAPTURE 0 +#define HEX6_DATA_WIDTH 7 +#define HEX6_DO_TEST_BENCH_WIRING 0 +#define HEX6_DRIVEN_SIM_VALUE 0 +#define HEX6_EDGE_TYPE "NONE" +#define HEX6_FREQ 50000000 +#define HEX6_HAS_IN 0 +#define HEX6_HAS_OUT 1 +#define HEX6_HAS_TRI 0 +#define HEX6_IRQ -1 +#define HEX6_IRQ_INTERRUPT_CONTROLLER_ID -1 +#define HEX6_IRQ_TYPE "NONE" +#define HEX6_NAME "/dev/hex6" +#define HEX6_RESET_VALUE 0 +#define HEX6_SPAN 16 +#define HEX6_TYPE "altera_avalon_pio" + + +/* + * jtag_uart configuration + * + */ + +#define ALT_MODULE_CLASS_jtag_uart altera_avalon_jtag_uart +#define JTAG_UART_BASE 0x50c0 +#define JTAG_UART_IRQ 5 +#define JTAG_UART_IRQ_INTERRUPT_CONTROLLER_ID 0 +#define JTAG_UART_NAME "/dev/jtag_uart" +#define JTAG_UART_READ_DEPTH 64 +#define JTAG_UART_READ_THRESHOLD 8 +#define JTAG_UART_SPAN 8 +#define JTAG_UART_TYPE "altera_avalon_jtag_uart" +#define JTAG_UART_WRITE_DEPTH 64 +#define JTAG_UART_WRITE_THRESHOLD 8 + + +/* + * onchip_memory configuration + * + */ + +#define ALT_MODULE_CLASS_onchip_memory altera_avalon_onchip_memory2 +#define ONCHIP_MEMORY_ALLOW_IN_SYSTEM_MEMORY_CONTENT_EDITOR 0 +#define ONCHIP_MEMORY_ALLOW_MRAM_SIM_CONTENTS_ONLY_FILE 0 +#define ONCHIP_MEMORY_BASE 0x0 +#define ONCHIP_MEMORY_CONTENTS_INFO "" +#define ONCHIP_MEMORY_DUAL_PORT 0 +#define ONCHIP_MEMORY_GUI_RAM_BLOCK_TYPE "AUTO" +#define ONCHIP_MEMORY_INIT_CONTENTS_FILE "nios_system_onchip_memory" +#define ONCHIP_MEMORY_INIT_MEM_CONTENT 1 +#define ONCHIP_MEMORY_INSTANCE_ID "NONE" +#define ONCHIP_MEMORY_IRQ -1 +#define ONCHIP_MEMORY_IRQ_INTERRUPT_CONTROLLER_ID -1 +#define ONCHIP_MEMORY_NAME "/dev/onchip_memory" +#define ONCHIP_MEMORY_NON_DEFAULT_INIT_FILE_ENABLED 0 +#define ONCHIP_MEMORY_RAM_BLOCK_TYPE "AUTO" +#define ONCHIP_MEMORY_READ_DURING_WRITE_MODE "DONT_CARE" +#define ONCHIP_MEMORY_SINGLE_CLOCK_OP 0 +#define ONCHIP_MEMORY_SIZE_MULTIPLE 1 +#define ONCHIP_MEMORY_SIZE_VALUE 16384 +#define ONCHIP_MEMORY_SPAN 16384 +#define ONCHIP_MEMORY_TYPE "altera_avalon_onchip_memory2" +#define ONCHIP_MEMORY_WRITABLE 1 + + +/* + * pio_0 configuration + * + */ + +#define ALT_MODULE_CLASS_pio_0 altera_avalon_pio +#define PIO_0_BASE 0x5000 +#define PIO_0_BIT_CLEARING_EDGE_REGISTER 0 +#define PIO_0_BIT_MODIFYING_OUTPUT_REGISTER 0 +#define PIO_0_CAPTURE 0 +#define PIO_0_DATA_WIDTH 7 +#define PIO_0_DO_TEST_BENCH_WIRING 0 +#define PIO_0_DRIVEN_SIM_VALUE 0 +#define PIO_0_EDGE_TYPE "NONE" +#define PIO_0_FREQ 50000000 +#define PIO_0_HAS_IN 0 +#define PIO_0_HAS_OUT 1 +#define PIO_0_HAS_TRI 0 +#define PIO_0_IRQ -1 +#define PIO_0_IRQ_INTERRUPT_CONTROLLER_ID -1 +#define PIO_0_IRQ_TYPE "NONE" +#define PIO_0_NAME "/dev/pio_0" +#define PIO_0_RESET_VALUE 0 +#define PIO_0_SPAN 16 +#define PIO_0_TYPE "altera_avalon_pio" + + +/* + * push_switches configuration + * + */ + +#define ALT_MODULE_CLASS_push_switches altera_avalon_pio +#define PUSH_SWITCHES_BASE 0x5080 +#define PUSH_SWITCHES_BIT_CLEARING_EDGE_REGISTER 0 +#define PUSH_SWITCHES_BIT_MODIFYING_OUTPUT_REGISTER 0 +#define PUSH_SWITCHES_CAPTURE 0 +#define PUSH_SWITCHES_DATA_WIDTH 3 +#define PUSH_SWITCHES_DO_TEST_BENCH_WIRING 0 +#define PUSH_SWITCHES_DRIVEN_SIM_VALUE 0 +#define PUSH_SWITCHES_EDGE_TYPE "NONE" +#define PUSH_SWITCHES_FREQ 50000000 +#define PUSH_SWITCHES_HAS_IN 1 +#define PUSH_SWITCHES_HAS_OUT 0 +#define PUSH_SWITCHES_HAS_TRI 0 +#define PUSH_SWITCHES_IRQ -1 +#define PUSH_SWITCHES_IRQ_INTERRUPT_CONTROLLER_ID -1 +#define PUSH_SWITCHES_IRQ_TYPE "NONE" +#define PUSH_SWITCHES_NAME "/dev/push_switches" +#define PUSH_SWITCHES_RESET_VALUE 0 +#define PUSH_SWITCHES_SPAN 16 +#define PUSH_SWITCHES_TYPE "altera_avalon_pio" + + +/* + * switches configuration + * + */ + +#define ALT_MODULE_CLASS_switches altera_avalon_pio +#define SWITCHES_BASE 0x5090 +#define SWITCHES_BIT_CLEARING_EDGE_REGISTER 0 +#define SWITCHES_BIT_MODIFYING_OUTPUT_REGISTER 0 +#define SWITCHES_CAPTURE 0 +#define SWITCHES_DATA_WIDTH 18 +#define SWITCHES_DO_TEST_BENCH_WIRING 0 +#define SWITCHES_DRIVEN_SIM_VALUE 0 +#define SWITCHES_EDGE_TYPE "NONE" +#define SWITCHES_FREQ 50000000 +#define SWITCHES_HAS_IN 1 +#define SWITCHES_HAS_OUT 0 +#define SWITCHES_HAS_TRI 0 +#define SWITCHES_IRQ -1 +#define SWITCHES_IRQ_INTERRUPT_CONTROLLER_ID -1 +#define SWITCHES_IRQ_TYPE "NONE" +#define SWITCHES_NAME "/dev/switches" +#define SWITCHES_RESET_VALUE 0 +#define SWITCHES_SPAN 16 +#define SWITCHES_TYPE "altera_avalon_pio" + +#endif /* __SYSTEM_H_ */ diff --git a/software/qsys_tutorial_switchs18/.cproject b/software/qsys_tutorial_switchs18/.cproject new file mode 100644 index 0000000..c3108e0 --- /dev/null +++ b/software/qsys_tutorial_switchs18/.cproject @@ -0,0 +1,508 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + make + + mem_init_install + true + false + false + + + make + + mem_init_generate + true + false + false + + + make + + help + true + false + false + + + + diff --git a/software/qsys_tutorial_switchs18/.project b/software/qsys_tutorial_switchs18/.project new file mode 100644 index 0000000..e339893 --- /dev/null +++ b/software/qsys_tutorial_switchs18/.project @@ -0,0 +1,96 @@ + + + qsys_tutorial_switchs18 + + + + + + com.altera.sbtgui.project.makefileBuilder + + + + + com.altera.sbtgui.project.makefileBuilder + + + + + org.eclipse.cdt.managedbuilder.core.genmakebuilder + clean,full,incremental, + + + ?name? + + + + org.eclipse.cdt.make.core.append_environment + true + + + org.eclipse.cdt.make.core.autoBuildTarget + all + + + org.eclipse.cdt.make.core.buildArguments + + + + org.eclipse.cdt.make.core.buildCommand + make + + + org.eclipse.cdt.make.core.buildLocation + ${workspace_loc://qsys_tutorial_switchs18} + + + org.eclipse.cdt.make.core.cleanBuildTarget + clean + + + org.eclipse.cdt.make.core.contents + org.eclipse.cdt.make.core.activeConfigSettings + + + org.eclipse.cdt.make.core.enableAutoBuild + false + + + org.eclipse.cdt.make.core.enableCleanBuild + true + + + org.eclipse.cdt.make.core.enableFullBuild + true + + + org.eclipse.cdt.make.core.fullBuildTarget + all + + + org.eclipse.cdt.make.core.stopOnError + true + + + org.eclipse.cdt.make.core.useDefaultBuildCmd + true + + + + + org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder + full,incremental, + + + + + + org.eclipse.cdt.core.cnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.managedbuilder.core.ScannerConfigNature + org.eclipse.cdt.core.ccnature + com.altera.sbtgui.project.SBTGUINature + com.altera.sbtgui.project.SBTGUIAppNature + com.altera.sbtgui.project.SBTGUIManagedNature + + diff --git a/software/qsys_tutorial_switchs18/Makefile b/software/qsys_tutorial_switchs18/Makefile new file mode 100644 index 0000000..a3fe50a --- /dev/null +++ b/software/qsys_tutorial_switchs18/Makefile @@ -0,0 +1,1086 @@ +#------------------------------------------------------------------------------ +# VARIABLES APPENDED TO BY INCLUDED MAKEFILE FRAGMENTS +#------------------------------------------------------------------------------ + +# List of include directories for -I compiler option (-I added when used). +# Includes the BSP. +ALT_INCLUDE_DIRS := + +# List of library directories for -L linker option (-L added when used). +# Includes the BSP. +ALT_LIBRARY_DIRS := + +# List of library names for -l linker option (-l added when used). +# Includes the BSP. +ALT_LIBRARY_NAMES := + +# List of library names for -msys-lib linker option (-msys-lib added when used). +# These are libraries that might be located in the BSP and depend on the BSP +# library, or vice versa +ALT_BSP_DEP_LIBRARY_NAMES := + +# List of dependencies for the linker. This is usually the full pathname +# of each library (*.a) file. +# Includes the BSP. +ALT_LDDEPS := + +# List of root library directories that support running make to build them. +# Includes the BSP and any ALT libraries. +MAKEABLE_LIBRARY_ROOT_DIRS := + +# Generic flags passed to the compiler for different types of input files. +ALT_CFLAGS := +ALT_CXXFLAGS := +ALT_CPPFLAGS := +ALT_ASFLAGS := +ALT_LDFLAGS := + + +#------------------------------------------------------------------------------ +# The adjust-path macro +# +# If COMSPEC/ComSpec is defined, Make is launched from Windows through +# Cygwin. The adjust-path macro converts absolute windows paths into +# unix style paths (Example: c:/dir -> /c/dir). This will ensture +# paths are readable by GNU Make. +# +# If COMSPEC/ComSpec is not defined, Make is launched from linux, and no +# adjustment is necessary +# +#------------------------------------------------------------------------------ + +ifndef COMSPEC +ifdef ComSpec +COMSPEC = $(ComSpec) +endif # ComSpec +endif # COMSPEC + +ifdef COMSPEC # if Windows OS + +ifeq ($(MAKE_VERSION),3.81) +# +# adjust-path/adjust-path-mixed for Mingw Gnu Make on Windows +# +# Example Usage: +# $(call adjust-path,c:/aaa/bbb) => /c/aaa/bbb +# $(call adjust-path-mixed,/c/aaa/bbb) => c:/aaa/bbb +# $(call adjust-path-mixed,/cygdrive/c/aaa/bbb) => c:/aaa/bbb +# + +# +# adjust-path +# - converts back slash characters into forward slashes +# - if input arg ($1) is an empty string then return the empty string +# - if input arg ($1) does not contain the string ":/", then return input arg +# - using sed, convert mixed path [c:/...] into mingw path [/c/...] +define adjust-path +$(strip \ +$(if $1,\ +$(if $(findstring :/,$(subst \,/,$1)),\ +$(shell echo $(subst \,/,$1) | sed -e 's,^\([a-zA-Z]\):/,/\1/,'),\ +$(subst \,/,$1)))) +endef + +# +# adjust-path-mixed +# - converts back slash characters into forward slashes +# - if input arg ($1) is an empty string then return the empty string +# - if input arg ($1) does not begin with a forward slash '/' char, then +# return input arg +# - using sed, convert mingw path [/c/...] or cygwin path [/c/cygdrive/...] +# into a mixed path [c:/...] +define adjust-path-mixed +$(strip \ +$(if $1,\ +$(if $(findstring $(subst \,/,$1),$(patsubst /%,%,$(subst \,/,$1))),\ +$(subst \,/,$1),\ +$(shell echo $(subst \,/,$1) | sed -e 's,^/cygdrive/\([a-zA-Z]\)/,\1:/,' -e 's,^/\([a-zA-Z]\)/,\1:/,')))) +endef + +else # MAKE_VERSION != 3.81 (MAKE_VERSION == 3.80 or MAKE_VERSION == 3.79) +# +# adjust-path for Cygwin Gnu Make +# $(call adjust-path,c:/aaa/bbb) = /cygdrive/c/aaa/bbb +# $(call adjust-path-mixed,/cygdrive/c/aaa/bbb) = c:/aaa/bbb +# +adjust-path = $(if $1,$(shell cygpath -u "$1"),) +adjust-path-mixed = $(if $1,$(shell cygpath -m "$1"),) +endif + +else # !COMSPEC + +adjust-path = $1 +adjust-path-mixed = $1 + +endif # COMSPEC + + +#vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv +# GENERATED SETTINGS START v +#vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv + +#START GENERATED +ACTIVE_BUILD_CONFIG := default +BUILD_CONFIGS := default + +# The following TYPE comment allows tools to identify the 'type' of target this +# makefile is associated with. +# TYPE: APP_MAKEFILE + +# This following VERSION comment indicates the version of the tool used to +# generate this makefile. A makefile variable is provided for VERSION as well. +# ACDS_VERSION: 13.0sp1 +ACDS_VERSION := 13.0sp1 + +# This following BUILD_NUMBER comment indicates the build number of the tool +# used to generate this makefile. +# BUILD_NUMBER: 232 + +# Define path to the application ELF. +# It may be used by the makefile fragments so is defined before including them. +# +ELF := qsys_tutorial_switchs18.elf + +# Paths to C, C++, and assembly source files. +C_SRCS := hello_world_small.c +CXX_SRCS := +ASM_SRCS := + + +# Path to root of object file tree. +OBJ_ROOT_DIR := obj + +# Options to control objdump. +CREATE_OBJDUMP := 1 +OBJDUMP_INCLUDE_SOURCE := 1 +OBJDUMP_FULL_CONTENTS := 0 + +# Options to enable/disable optional files. +CREATE_ELF_DERIVED_FILES := 0 +CREATE_LINKER_MAP := 1 + +# Common arguments for ALT_CFLAGSs +APP_CFLAGS_DEFINED_SYMBOLS := +APP_CFLAGS_UNDEFINED_SYMBOLS := +APP_CFLAGS_OPTIMIZATION := -Os +APP_CFLAGS_DEBUG_LEVEL := -g +APP_CFLAGS_WARNINGS := -Wall +APP_CFLAGS_USER_FLAGS := + +APP_ASFLAGS_USER := +APP_LDFLAGS_USER := + +# Linker options that have default values assigned later if not +# assigned here. +LINKER_SCRIPT := +CRT0 := +SYS_LIB := + +# Define path to the root of the BSP. +BSP_ROOT_DIR := ../qsys_tutorial_switchs18_bsp/ + +# List of application specific include directories, library directories and library names +APP_INCLUDE_DIRS := +APP_LIBRARY_DIRS := +APP_LIBRARY_NAMES := + +# Pre- and post- processor settings. +BUILD_PRE_PROCESS := +BUILD_POST_PROCESS := + +QUARTUS_PROJECT_DIR := ../../ + + +#END GENERATED + +#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +# GENERATED SETTINGS END ^ +#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + +#------------------------------------------------------------------------------ +# DEFAULT TARGET +#------------------------------------------------------------------------------ + +# Define the variable used to echo output if not already defined. +ifeq ($(ECHO),) +ECHO := echo +endif + +# Put "all" rule before included makefile fragments because they may +# define rules and we don't want one of those to become the default rule. +.PHONY : all + +all: + @$(ECHO) [$(APP_NAME) build complete] + +all : build_pre_process libs app build_post_process + + +#------------------------------------------------------------------------------ +# VARIABLES DEPENDENT ON GENERATED CONTENT +#------------------------------------------------------------------------------ + +# Define object file directory per build configuration +CONFIG_OBJ_DIR := $(OBJ_ROOT_DIR)/$(ACTIVE_BUILD_CONFIG) + +ifeq ($(BSP_ROOT_DIR),) +$(error Edit Makefile and provide a value for BSP_ROOT_DIR) +endif + +ifeq ($(wildcard $(BSP_ROOT_DIR)),) +$(error BSP directory does not exist: $(BSP_ROOT_DIR)) +endif + +# Define absolute path to the root of the BSP. +ABS_BSP_ROOT_DIR := $(call adjust-path-mixed,$(shell cd "$(BSP_ROOT_DIR)"; pwd)) + +# Include makefile fragments. Define variable ALT_LIBRARY_ROOT_DIR before +# including each makefile fragment so that it knows the path to itself. +BSP_INCLUDE_FILE := $(BSP_ROOT_DIR)/public.mk +ALT_LIBRARY_ROOT_DIR := $(BSP_ROOT_DIR) +include $(BSP_INCLUDE_FILE) +# C2H will need this to touch the BSP public.mk and avoid the sopc file +# out-of-date error during a BSP make +ABS_BSP_INCLUDE_FILE := $(ABS_BSP_ROOT_DIR)/public.mk + + +ifneq ($(WARNING.SMALL_STACK_SIZE),) +# This WARNING is here to protect you from unknowingly using a very small stack +# If the warning is set, increase your stack size or enable the BSP small stack +# setting to eliminate the warning +$(warning WARNING: $(WARNING.SMALL_STACK_SIZE)) +endif + + +# If the BSP public.mk indicates that ALT_SIM_OPTIMIZE is set, rename the ELF +# by prefixing it with RUN_ON_HDL_SIMULATOR_ONLY_. +ifneq ($(filter -DALT_SIM_OPTIMIZE,$(ALT_CPPFLAGS)),) +ELF := RUN_ON_HDL_SIMULATOR_ONLY_$(ELF) +endif + +# If the BSP public.mk indicates that ALT_PROVIDE_GMON is set, add option to +# download_elf target +ifneq ($(filter -DALT_PROVIDE_GMON,$(ALT_CPPFLAGS)),) +GMON_OUT_FILENAME := gmon.out +WRITE_GMON_OPTION := --write-gmon $(GMON_OUT_FILENAME) +endif + +# Name of ELF application. +APP_NAME := $(basename $(ELF)) + +# Set to defaults if variables not already defined in settings. +ifeq ($(LINKER_SCRIPT),) +LINKER_SCRIPT := $(BSP_LINKER_SCRIPT) +endif +ifeq ($(CRT0),) +CRT0 := $(BSP_CRT0) +endif +ifeq ($(SYS_LIB),) +SYS_LIB := $(BSP_SYS_LIB) +endif + +OBJDUMP_NAME := $(APP_NAME).objdump +OBJDUMP_FLAGS := --disassemble --syms --all-header +ifeq ($(OBJDUMP_INCLUDE_SOURCE),1) +OBJDUMP_FLAGS += --source +endif +ifeq ($(OBJDUMP_FULL_CONTENTS),1) +OBJDUMP_FLAGS += --full-contents +endif + +# Create list of linker dependencies (*.a files). +APP_LDDEPS := $(ALT_LDDEPS) $(LDDEPS) + +# Take lists and add required prefixes. +APP_INC_DIRS := $(addprefix -I, $(ALT_INCLUDE_DIRS) $(APP_INCLUDE_DIRS) $(INC_DIRS)) +ASM_INC_PREFIX := -Wa,-I +APP_ASM_INC_DIRS := $(addprefix $(ASM_INC_PREFIX), $(ALT_INCLUDE_DIRS) $(APP_INCLUDE_DIRS) $(INC_DIRS)) +APP_LIB_DIRS := $(addprefix -L, $(ALT_LIBRARY_DIRS) $(APP_LIBRARY_DIRS) $(LIB_DIRS)) +APP_LIBS := $(addprefix -l, $(ALT_LIBRARY_NAMES) $(APP_LIBRARY_NAMES) $(LIBS)) + +ifneq ($(AVOID_NIOS2_GCC3_OPTIONS),) + +# +# Avoid Nios II GCC 3.X options. +# + +# Detect if small newlib C library is requested. +# If yes, remove the -msmallc option because it is +# now handled by other means. +ifneq ($(filter -msmallc,$(ALT_LDFLAGS)),) + ALT_LDFLAGS := $(filter-out -msmallc,$(ALT_LDFLAGS)) + ALT_C_LIBRARY := smallc +else + ALT_C_LIBRARY := c +endif + +# Put each BSP dependent library in a group to avoid circular dependencies. +APP_BSP_DEP_LIBS := $(foreach l,$(ALT_BSP_DEP_LIBRARY_NAMES),-Wl,--start-group -l$(ALT_C_LIBRARY) -lgcc -l$(l) -Wl,--end-group) + +else # !AVOID_NIOS2_GCC3_OPTIONS + +# +# Use Nios II GCC 3.X options. +# +APP_BSP_DEP_LIBS := $(addprefix -msys-lib=, $(ALT_BSP_DEP_LIBRARY_NAMES)) + +endif # !AVOID_NIOS2_GCC3_OPTIONS + +# Arguments for the C preprocessor, C/C++ compiler, assembler, and linker. +APP_CFLAGS := $(APP_CFLAGS_DEFINED_SYMBOLS) \ + $(APP_CFLAGS_UNDEFINED_SYMBOLS) \ + $(APP_CFLAGS_OPTIMIZATION) \ + $(APP_CFLAGS_DEBUG_LEVEL) \ + $(APP_CFLAGS_WARNINGS) \ + $(APP_CFLAGS_USER_FLAGS) \ + $(ALT_CFLAGS) \ + $(CFLAGS) + +# Arguments only for the C++ compiler. +APP_CXXFLAGS := $(ALT_CXXFLAGS) $(CXXFLAGS) + +# Arguments only for the C preprocessor. +# Prefix each include directory with -I. +APP_CPPFLAGS := $(APP_INC_DIRS) \ + $(ALT_CPPFLAGS) \ + $(CPPFLAGS) + +# Arguments only for the assembler. +APP_ASFLAGS := $(APP_ASM_INC_DIRS) \ + $(ALT_ASFLAGS) \ + $(APP_ASFLAGS_USER) \ + $(ASFLAGS) + +# Arguments only for the linker. +APP_LDFLAGS := $(APP_LDFLAGS_USER) + +ifneq ($(LINKER_SCRIPT),) +APP_LDFLAGS += -T'$(LINKER_SCRIPT)' +endif + +ifneq ($(AVOID_NIOS2_GCC3_OPTIONS),) + +# Avoid Nios II GCC 3.x options. +ifneq ($(CRT0),) +APP_LDFLAGS += $(CRT0) +endif + +# The equivalent of the -msys-lib option is provided +# by the GROUP() command in the linker script. +# Note this means the SYS_LIB variable is now ignored. + +else # !AVOID_NIOS2_GCC3_OPTIONS + +# Use Nios II GCC 3.x options. +ifneq ($(CRT0),) +APP_LDFLAGS += -msys-crt0='$(CRT0)' +endif +ifneq ($(SYS_LIB),) +APP_LDFLAGS += -msys-lib=$(SYS_LIB) +endif + +endif # !AVOID_NIOS2_GCC3_OPTIONS + +APP_LDFLAGS += \ + $(APP_LIB_DIRS) \ + $(ALT_LDFLAGS) \ + $(LDFLAGS) + +LINKER_MAP_NAME := $(APP_NAME).map +ifeq ($(CREATE_LINKER_MAP), 1) +APP_LDFLAGS += -Wl,-Map=$(LINKER_MAP_NAME) +endif + +# QUARTUS_PROJECT_DIR and SOPC_NAME need to be defined if you want the +# mem_init_install target of the mem_init.mk (located in the associated BSP) +# to know how to copy memory initialization files (e.g. .dat, .hex) into +# directories required for Quartus compilation or RTL simulation. + +# Defining QUARTUS_PROJECT_DIR causes mem_init_install to copy memory +# initialization files into your Quartus project directory. This is required +# to provide the initial memory contents of FPGA memories that can be +# initialized by the programming file (.sof) or Hardcopy ROMs. It is also used +# for VHDL simulation of on-chip memories. + +# Defining SOPC_NAME causes the mem_init_install target to copy memory +# initialization files into your RTL simulation directory. This is required +# to provide the initial memory contents of all memories that can be +# initialized by RTL simulation. This variable should be set to the same name +# as your SOPC Builder system name. For example, if you have a system called +# "foo.sopc", this variable should be set to "foo". + +# If SOPC_NAME is not set and QUARTUS_PROJECT_DIR is set, then derive SOPC_NAME. +ifeq ($(SOPC_NAME),) +ifneq ($(QUARTUS_PROJECT_DIR),) +SOPC_NAME := $(basename $(notdir $(wildcard $(QUARTUS_PROJECT_DIR)/*.sopcinfo))) +endif +endif + +# Defining JDI_FILE is required to specify the JTAG Debug Information File +# path. This file is generated by Quartus, and is needed along with the +# .sopcinfo file to resolve processor instance ID's from names in a multi-CPU +# systems. For multi-CPU systems, the processor instance ID is used to select +# from multiple CPU's during ELF download. + +# Both JDI_FILE and SOPCINFO_FILE are provided by the BSP if they found during +# BSP creation. If JDI_FILE is not set and QUARTUS_PROJECT_DIR is set, then +# derive JDI_FILE. We do not attempt to derive SOPCINFO_FILE since there may be +# multiple .sopcinfo files in a Quartus project. +ifeq ($(JDI_FILE),) +ifneq ($(QUARTUS_PROJECT_DIR),) +JDI_FILE := $(wildcard $(QUARTUS_PROJECT_DIR)/*.jdi) +endif +endif + +# Path to root runtime directory used for hdl simulation +RUNTIME_ROOT_DIR := $(CONFIG_OBJ_DIR)/runtime + + + +#------------------------------------------------------------------------------ +# MAKEFILE INCLUDES DEPENDENT ON GENERATED CONTENT +#------------------------------------------------------------------------------ +# mem_init.mk is a generated makefile fragment. This file defines all targets +# used to generate HDL initialization simulation files and pre-initialized +# onchip memory files. +MEM_INIT_FILE := $(BSP_ROOT_DIR)/mem_init.mk +include $(MEM_INIT_FILE) + +# Create list of object files to be built using the list of source files. +# The source file hierarchy is preserved in the object tree. +# The supported file extensions are: +# +# .c - for C files +# .cxx .cc .cpp - for C++ files +# .S .s - for assembler files +# +# Handle source files specified by --src-dir & --src-rdir differently, to +# save some processing time in calling the adjust-path macro. + +OBJ_LIST_C := $(patsubst %.c,%.o,$(filter %.c,$(C_SRCS))) +OBJ_LIST_CPP := $(patsubst %.cpp,%.o,$(filter %.cpp,$(CXX_SRCS))) +OBJ_LIST_CXX := $(patsubst %.cxx,%.o,$(filter %.cxx,$(CXX_SRCS))) +OBJ_LIST_CC := $(patsubst %.cc,%.o,$(filter %.cc,$(CXX_SRCS))) +OBJ_LIST_S := $(patsubst %.S,%.o,$(filter %.S,$(ASM_SRCS))) +OBJ_LIST_SS := $(patsubst %.s,%.o,$(filter %.s,$(ASM_SRCS))) + +OBJ_LIST := $(sort $(OBJ_LIST_C) $(OBJ_LIST_CPP) $(OBJ_LIST_CXX) \ + $(OBJ_LIST_CC) $(OBJ_LIST_S) $(OBJ_LIST_SS)) + +SDIR_OBJ_LIST_C := $(patsubst %.c,%.o,$(filter %.c,$(SDIR_C_SRCS))) +SDIR_OBJ_LIST_CPP := $(patsubst %.cpp,%.o,$(filter %.cpp,$(SDIR_CXX_SRCS))) +SDIR_OBJ_LIST_CXX := $(patsubst %.cxx,%.o,$(filter %.cxx,$(SDIR_CXX_SRCS))) +SDIR_OBJ_LIST_CC := $(patsubst %.cc,%.o,$(filter %.cc,$(SDIR_CXX_SRCS))) +SDIR_OBJ_LIST_S := $(patsubst %.S,%.o,$(filter %.S,$(SDIR_ASM_SRCS))) +SDIR_OBJ_LIST_SS := $(patsubst %.s,%.o,$(filter %.s,$(SDIR_ASM_SRCS))) + +SDIR_OBJ_LIST := $(sort $(SDIR_OBJ_LIST_C) $(SDIR_OBJ_LIST_CPP) \ + $(SDIR_OBJ_LIST_CXX) $(SDIR_OBJ_LIST_CC) $(SDIR_OBJ_LIST_S) \ + $(SDIR_OBJ_LIST_SS)) + +# Relative-pathed objects that being with "../" are handled differently. +# +# Regular objects are created as +# $(CONFIG_OBJ_DIR)//.o +# where the path structure is maintained under the obj directory. This +# applies for both absolute and relative paths; in the absolute path +# case this means the entire source path will be recreated under the obj +# directory. This is done to allow two source files with the same name +# to be included as part of the project. +# +# Note: On Cygwin, the path recreated under the obj directory will be +# the cygpath -u output path. +# +# Relative-path objects that begin with "../" cause problems under this +# scheme, as $(CONFIG_OBJ_DIR)/..// can potentially put the object +# files anywhere in the system, creating clutter and polluting the source tree. +# As such, their paths are flattened - the object file created will be +# $(CONFIG_OBJ_DIR)/.o. Due to this, two files specified with +# "../" in the beginning cannot have the same name in the project. VPATH +# will be set for these sources to allow make to relocate the source file +# via %.o rules. +# +# The following lines separate the object list into the flatten and regular +# lists, and then handles them as appropriate. + +FLATTEN_OBJ_LIST := $(filter ../%,$(OBJ_LIST)) +FLATTEN_APP_OBJS := $(addprefix $(CONFIG_OBJ_DIR)/,$(notdir $(FLATTEN_OBJ_LIST))) + +REGULAR_OBJ_LIST := $(filter-out $(FLATTEN_OBJ_LIST),$(OBJ_LIST)) +REGULAR_OBJ_LIST_C := $(filter $(OBJ_LIST_C),$(REGULAR_OBJ_LIST)) +REGULAR_OBJ_LIST_CPP := $(filter $(OBJ_LIST_CPP),$(REGULAR_OBJ_LIST)) +REGULAR_OBJ_LIST_CXX := $(filter $(OBJ_LIST_CXX),$(REGULAR_OBJ_LIST)) +REGULAR_OBJ_LIST_CC := $(filter $(OBJ_LIST_CC),$(REGULAR_OBJ_LIST)) +REGULAR_OBJ_LIST_S := $(filter $(OBJ_LIST_S),$(REGULAR_OBJ_LIST)) +REGULAR_OBJ_LIST_SS := $(filter $(OBJ_LIST_SS),$(REGULAR_OBJ_LIST)) + +FLATTEN_SDIR_OBJ_LIST := $(filter ../%,$(SDIR_OBJ_LIST)) +FLATTEN_SDIR_APP_OBJS := $(addprefix $(CONFIG_OBJ_DIR)/,$(notdir $(FLATTEN_SDIR_OBJ_LIST))) + +REGULAR_SDIR_OBJ_LIST := $(filter-out $(FLATTEN_SDIR_OBJ_LIST),$(SDIR_OBJ_LIST)) +REGULAR_SDIR_OBJ_LIST_C := $(filter $(SDIR_OBJ_LIST_C),$(REGULAR_SDIR_OBJ_LIST)) +REGULAR_SDIR_OBJ_LIST_CPP := $(filter $(SDIR_OBJ_LIST_CPP),$(REGULAR_SDIR_OBJ_LIST)) +REGULAR_SDIR_OBJ_LIST_CXX := $(filter $(SDIR_OBJ_LIST_CXX),$(REGULAR_SDIR_OBJ_LIST)) +REGULAR_SDIR_OBJ_LIST_CC := $(filter $(SDIR_OBJ_LIST_CC),$(REGULAR_SDIR_OBJ_LIST)) +REGULAR_SDIR_OBJ_LIST_S := $(filter $(SDIR_OBJ_LIST_S),$(REGULAR_SDIR_OBJ_LIST)) +REGULAR_SDIR_OBJ_LIST_SS := $(filter $(SDIR_OBJ_LIST_SS),$(REGULAR_SDIR_OBJ_LIST)) + +VPATH := $(sort $(dir $(FLATTEN_OBJ_LIST)) $(dir $(FLATTEN_SDIR_OBJ_LIST))) + +APP_OBJS_C := $(addprefix $(CONFIG_OBJ_DIR)/,\ + $(REGULAR_SDIR_OBJ_LIST_C) \ + $(foreach s,$(REGULAR_OBJ_LIST_C),$(call adjust-path,$s))) + +APP_OBJS_CPP := $(addprefix $(CONFIG_OBJ_DIR)/,\ + $(REGULAR_SDIR_OBJ_LIST_CPP) \ + $(foreach s,$(REGULAR_OBJ_LIST_CPP),$(call adjust-path,$s))) + +APP_OBJS_CXX := $(addprefix $(CONFIG_OBJ_DIR)/,\ + $(REGULAR_SDIR_OBJ_LIST_CXX) \ + $(foreach s,$(REGULAR_OBJ_LIST_CXX),$(call adjust-path,$s))) + +APP_OBJS_CC := $(addprefix $(CONFIG_OBJ_DIR)/,\ + $(REGULAR_SDIR_OBJ_LIST_CC) \ + $(foreach s,$(REGULAR_OBJ_LIST_CC),$(call adjust-path,$s))) + +APP_OBJS_S := $(addprefix $(CONFIG_OBJ_DIR)/,\ + $(REGULAR_SDIR_OBJ_LIST_S) \ + $(foreach s,$(REGULAR_OBJ_LIST_S),$(call adjust-path,$s))) + +APP_OBJS_SS := $(addprefix $(CONFIG_OBJ_DIR)/,\ + $(REGULAR_SDIR_OBJ_LIST_SS) \ + $(foreach s,$(REGULAR_OBJ_LIST_SS),$(call adjust-path,$s))) + +APP_OBJS := $(APP_OBJS_C) $(APP_OBJS_CPP) $(APP_OBJS_CXX) $(APP_OBJS_CC) \ + $(APP_OBJS_S) $(APP_OBJS_SS) \ + $(FLATTEN_APP_OBJS) $(FLATTEN_SDIR_APP_OBJS) + +# Add any extra user-provided object files. +APP_OBJS += $(OBJS) + +# Create list of dependancy files for each object file. +APP_DEPS := $(APP_OBJS:.o=.d) + +# Patch the Elf file with system specific information + +# Patch the Elf with the name of the sopc system +ifneq ($(SOPC_NAME),) +ELF_PATCH_FLAG += --sopc_system_name $(SOPC_NAME) +endif + +# Patch the Elf with the absolute path to the Quartus Project Directory +ifneq ($(QUARTUS_PROJECT_DIR),) +ABS_QUARTUS_PROJECT_DIR := $(call adjust-path-mixed,$(shell cd "$(QUARTUS_PROJECT_DIR)"; pwd)) +ELF_PATCH_FLAG += --quartus_project_dir "$(ABS_QUARTUS_PROJECT_DIR)" +endif + +# Patch the Elf and download args with the JDI_FILE if specified +ifneq ($(wildcard $(JDI_FILE)),) +ELF_PATCH_FLAG += --jdi $(JDI_FILE) +DOWNLOAD_JDI_FLAG := --jdi $(JDI_FILE) +endif + +# Patch the Elf with the SOPCINFO_FILE if specified +ifneq ($(wildcard $(SOPCINFO_FILE)),) +ELF_PATCH_FLAG += --sopcinfo $(SOPCINFO_FILE) +endif + +# Use the DOWNLOAD_CABLE variable to specify which JTAG cable to use. +# This is not needed if you only have one cable. +ifneq ($(DOWNLOAD_CABLE),) +DOWNLOAD_CABLE_FLAG := --cable '$(DOWNLOAD_CABLE)' +endif + + +#------------------------------------------------------------------------------ +# BUILD PRE/POST PROCESS +#------------------------------------------------------------------------------ +build_pre_process : + $(BUILD_PRE_PROCESS) + +build_post_process : + $(BUILD_POST_PROCESS) + +.PHONY: build_pre_process build_post_process + + +#------------------------------------------------------------------------------ +# TOOLS +#------------------------------------------------------------------------------ + +# +# Set tool default variables if not already defined. +# If these are defined, they would typically be defined in an +# included makefile fragment. +# +ifeq ($(DEFAULT_CROSS_COMPILE),) +DEFAULT_CROSS_COMPILE := nios2-elf- +endif + +ifeq ($(DEFAULT_STACK_REPORT),) +DEFAULT_STACKREPORT := nios2-stackreport +endif + +ifeq ($(DEFAULT_DOWNLOAD),) +DEFAULT_DOWNLOAD := nios2-download +endif + +ifeq ($(DEFAULT_FLASHPROG),) +DEFAULT_FLASHPROG := nios2-flash-programmer +endif + +ifeq ($(DEFAULT_ELFPATCH),) +DEFAULT_ELFPATCH := nios2-elf-insert +endif + +ifeq ($(DEFAULT_RM),) +DEFAULT_RM := rm -f +endif + +ifeq ($(DEFAULT_CP),) +DEFAULT_CP := cp -f +endif + +ifeq ($(DEFAULT_MKDIR),) +DEFAULT_MKDIR := mkdir -p +endif + +# +# Set tool variables to defaults if not already defined. +# If these are defined, they would typically be defined by a +# setting in the generated portion of this makefile. +# +ifeq ($(CROSS_COMPILE),) +CROSS_COMPILE := $(DEFAULT_CROSS_COMPILE) +endif + +ifeq ($(origin CC),default) +CC := $(CROSS_COMPILE)gcc -xc +endif + +ifeq ($(origin CXX),default) +CXX := $(CROSS_COMPILE)gcc -xc++ +endif + +ifeq ($(origin AS),default) +AS := $(CROSS_COMPILE)gcc +endif + +ifeq ($(origin AR),default) +AR := $(CROSS_COMPILE)ar +endif + +ifeq ($(origin LD),default) +LD := $(CROSS_COMPILE)g++ +endif + +ifeq ($(origin NM),default) +NM := $(CROSS_COMPILE)nm +endif + +ifeq ($(origin RM),default) +RM := $(DEFAULT_RM) +endif + +ifeq ($(origin CP),default) +CP := $(DEFAULT_CP) +endif + +ifeq ($(OBJDUMP),) +OBJDUMP := $(CROSS_COMPILE)objdump +endif + +ifeq ($(OBJCOPY),) +OBJCOPY := $(CROSS_COMPILE)objcopy +endif + +ifeq ($(STACKREPORT),) +ifeq ($(CROSS_COMPILE),nios2-elf-) +STACKREPORT := $(DEFAULT_STACKREPORT) +else +DISABLE_STACKREPORT := 1 +endif +endif + +ifeq ($(DOWNLOAD),) +DOWNLOAD := $(DEFAULT_DOWNLOAD) +endif + +ifeq ($(FLASHPROG),) +FLASHPROG := $(DEFAULT_FLASHPROG) +endif + +ifeq ($(ELFPATCH),) +ELFPATCH := $(DEFAULT_ELFPATCH) +endif + +ifeq ($(MKDIR),) +MKDIR := $(DEFAULT_MKDIR) +endif + +#------------------------------------------------------------------------------ +# PATTERN RULES TO BUILD OBJECTS +#------------------------------------------------------------------------------ + +define compile.c +@$(ECHO) Info: Compiling $< to $@ +@$(MKDIR) $(@D) +$(CC) -MP -MMD -c $(APP_CPPFLAGS) $(APP_CFLAGS) -o $@ $< +$(CC_POST_PROCESS) +endef + +define compile.cpp +@$(ECHO) Info: Compiling $< to $@ +@$(MKDIR) $(@D) +$(CXX) -MP -MMD -c $(APP_CPPFLAGS) $(APP_CXXFLAGS) $(APP_CFLAGS) -o $@ $< +$(CXX_POST_PROCESS) +endef + +# If assembling with the compiler, ensure "-Wa," is prepended to all APP_ASFLAGS +ifeq ($(AS),$(patsubst %as,%,$(AS))) +COMMA := , +APP_ASFLAGS := $(filter-out $(APP_CFLAGS),$(addprefix -Wa$(COMMA),$(patsubst -Wa$(COMMA)%,%,$(APP_ASFLAGS)))) +endif + +define compile.s +@$(ECHO) Info: Assembling $< to $@ +@$(MKDIR) $(@D) +$(AS) -MP -MMD -c $(APP_CPPFLAGS) $(APP_CFLAGS) $(APP_ASFLAGS) -o $@ $< +$(AS_POST_PROCESS) +endef + +ifeq ($(MAKE_VERSION),3.81) +.SECONDEXPANSION: + +$(APP_OBJS_C): $(CONFIG_OBJ_DIR)/%.o: $$(call adjust-path-mixed,%.c) + $(compile.c) + +$(APP_OBJS_CPP): $(CONFIG_OBJ_DIR)/%.o: $$(call adjust-path-mixed,%.cpp) + $(compile.cpp) + +$(APP_OBJS_CC): $(CONFIG_OBJ_DIR)/%.o: $$(call adjust-path-mixed,%.cc) + $(compile.cpp) + +$(APP_OBJS_CXX): $(CONFIG_OBJ_DIR)/%.o: $$(call adjust-path-mixed,%.cxx) + $(compile.cpp) + +$(APP_OBJS_S): $(CONFIG_OBJ_DIR)/%.o: $$(call adjust-path-mixed,%.S) + $(compile.s) + +$(APP_OBJS_SS): $(CONFIG_OBJ_DIR)/%.o: $$(call adjust-path-mixed,%.s) + $(compile.s) + +endif # MAKE_VERSION != 3.81 + +$(CONFIG_OBJ_DIR)/%.o: %.c + $(compile.c) + +$(CONFIG_OBJ_DIR)/%.o: %.cpp + $(compile.cpp) + +$(CONFIG_OBJ_DIR)/%.o: %.cc + $(compile.cpp) + +$(CONFIG_OBJ_DIR)/%.o: %.cxx + $(compile.cpp) + +$(CONFIG_OBJ_DIR)/%.o: %.S + $(compile.s) + +$(CONFIG_OBJ_DIR)/%.o: %.s + $(compile.s) + + +#------------------------------------------------------------------------------ +# PATTERN RULES TO INTERMEDIATE FILES +#------------------------------------------------------------------------------ + +$(CONFIG_OBJ_DIR)/%.s: %.c + @$(ECHO) Info: Compiling $< to $@ + @$(MKDIR) $(@D) + $(CC) -S $(APP_CPPFLAGS) $(APP_CFLAGS) -o $@ $< + +$(CONFIG_OBJ_DIR)/%.s: %.cpp + @$(ECHO) Info: Compiling $< to $@ + @$(MKDIR) $(@D) + $(CXX) -S $(APP_CPPFLAGS) $(APP_CXXFLAGS) $(APP_CFLAGS) -o $@ $< + +$(CONFIG_OBJ_DIR)/%.s: %.cc + @$(ECHO) Info: Compiling $< to $@ + @$(MKDIR) $(@D) + $(CXX) -S $(APP_CPPFLAGS) $(APP_CXXFLAGS) $(APP_CFLAGS) -o $@ $< + +$(CONFIG_OBJ_DIR)/%.s: %.cxx + @$(ECHO) Info: Compiling $< to $@ + @$(MKDIR) $(@D) + $(CXX) -S $(APP_CPPFLAGS) $(APP_CXXFLAGS) $(APP_CFLAGS) -o $@ $< + +$(CONFIG_OBJ_DIR)/%.i: %.c + @$(ECHO) Info: Compiling $< to $@ + @$(MKDIR) $(@D) + $(CC) -E $(APP_CPPFLAGS) $(APP_CFLAGS) -o $@ $< + +$(CONFIG_OBJ_DIR)/%.i: %.cpp + @$(ECHO) Info: Compiling $< to $@ + @$(MKDIR) $(@D) + $(CXX) -E $(APP_CPPFLAGS) $(APP_CXXFLAGS) $(APP_CFLAGS) -o $@ $< + +$(CONFIG_OBJ_DIR)/%.i: %.cc + @$(ECHO) Info: Compiling $< to $@ + @$(MKDIR) $(@D) + $(CXX) -E $(APP_CPPFLAGS) $(APP_CXXFLAGS) $(APP_CFLAGS) -o $@ $< + +$(CONFIG_OBJ_DIR)/%.i: %.cxx + @$(ECHO) Info: Compiling $< to $@ + @$(MKDIR) $(@D) + $(CXX) -E $(APP_CPPFLAGS) $(APP_CXXFLAGS) $(APP_CFLAGS) -o $@ $< + + +#------------------------------------------------------------------------------ +# TARGET RULES +#------------------------------------------------------------------------------ + +.PHONY : help +help : + @$(ECHO) "Summary of Makefile targets" + @$(ECHO) " Build targets:" + @$(ECHO) " all (default) - Application and all libraries (including BSP)" + @$(ECHO) " bsp - Just the BSP" + @$(ECHO) " libs - All libraries (including BSP)" + @$(ECHO) " flash - All flash files" + @$(ECHO) " mem_init_generate - All memory initialization files" +ifeq ($(QSYS),1) + @$(ECHO) " mem_init_install - This target is deprecated for QSys Systems" + @$(ECHO) " --> Use the mem_init_generate target and then" + @$(ECHO) " add the generated meminit.qip file to your" + @$(ECHO) " Quartus II Project." +else # if QSYS != 1 + @$(ECHO) " mem_init_install - Copy memory initialization files to Quartus II project" +endif # QSYS == 1 + @$(ECHO) + @$(ECHO) " Clean targets:" + @$(ECHO) " clean_all - Application and all libraries (including BSP)" + @$(ECHO) " clean - Just the application" + @$(ECHO) " clean_bsp - Just the BSP" + @$(ECHO) " clean_libs - All libraries (including BSP)" + @$(ECHO) + @$(ECHO) " Run targets:" + @$(ECHO) " download-elf - Download and run your elf executable" + @$(ECHO) " program-flash - Program flash contents to the board" + +# Handy rule to skip making libraries and just make application. +.PHONY : app +app : $(ELF) + +ifeq ($(CREATE_OBJDUMP), 1) +app : $(OBJDUMP_NAME) +endif + +ifeq ($(CREATE_ELF_DERIVED_FILES),1) +app : elf_derived_files +endif + +.PHONY: elf_derived_files +elf_derived_files: default_mem_init + +# Handy rule for making just the BSP. +.PHONY : bsp +bsp : + @$(ECHO) Info: Building $(BSP_ROOT_DIR) + @$(MAKE) --no-print-directory -C $(BSP_ROOT_DIR) + + +# Make sure all makeable libraries (including the BSP) are up-to-date. +LIB_TARGETS := $(patsubst %,%-recurs-make-lib,$(MAKEABLE_LIBRARY_ROOT_DIRS)) + +.PHONY : libs +libs : $(LIB_TARGETS) + +ifneq ($(strip $(LIB_TARGETS)),) +$(LIB_TARGETS): %-recurs-make-lib: + @$(ECHO) Info: Building $* + $(MAKE) --no-print-directory -C $* +endif + +ifneq ($(strip $(APP_LDDEPS)),) +$(APP_LDDEPS): libs + @true +endif + +# Rules to force your project to rebuild or relink +# .force_relink file will cause any application that depends on this project to relink +# .force_rebuild file will cause this project to rebuild object files +# .force_rebuild_all file will cause this project and any project that depends on this project to rebuild object files + +FORCE_RELINK_DEP := .force_relink +FORCE_REBUILD_DEP := .force_rebuild +FORCE_REBUILD_ALL_DEP := .force_rebuild_all +FORCE_REBUILD_DEP_LIST := $(CONFIG_OBJ_DIR)/$(FORCE_RELINK_DEP) $(CONFIG_OBJ_DIR)/$(FORCE_REBUILD_DEP) $(FORCE_REBUILD_ALL_DEP) + +$(FORCE_REBUILD_DEP_LIST): + +$(APP_OBJS): $(wildcard $(CONFIG_OBJ_DIR)/$(FORCE_REBUILD_DEP)) $(wildcard $(addsuffix /$(FORCE_REBUILD_ALL_DEP), . $(ALT_LIBRARY_DIRS))) + +$(ELF): $(wildcard $(addsuffix /$(FORCE_RELINK_DEP), $(CONFIG_OBJ_DIR) $(ALT_LIBRARY_DIRS))) + + +# Clean just the application. +.PHONY : clean +ifeq ($(CREATE_ELF_DERIVED_FILES),1) +clean : clean_elf_derived_files +endif + +clean : + @$(RM) -r $(ELF) $(OBJDUMP_NAME) $(LINKER_MAP_NAME) $(OBJ_ROOT_DIR) $(RUNTIME_ROOT_DIR) $(FORCE_REBUILD_DEP_LIST) + @$(ECHO) [$(APP_NAME) clean complete] + +# Clean just the BSP. +.PHONY : clean_bsp +clean_bsp : + @$(ECHO) Info: Cleaning $(BSP_ROOT_DIR) + @$(MAKE) --no-print-directory -C $(BSP_ROOT_DIR) clean + +# Clean all makeable libraries including the BSP. +LIB_CLEAN_TARGETS := $(patsubst %,%-recurs-make-clean-lib,$(MAKEABLE_LIBRARY_ROOT_DIRS)) + +.PHONY : clean_libs +clean_libs : $(LIB_CLEAN_TARGETS) + +ifneq ($(strip $(LIB_CLEAN_TARGETS)),) +$(LIB_CLEAN_TARGETS): %-recurs-make-clean-lib: + @$(ECHO) Info: Cleaning $* + $(MAKE) --no-print-directory -C $* clean +endif + +.PHONY: clean_elf_derived_files +clean_elf_derived_files: mem_init_clean + +# Clean application and all makeable libraries including the BSP. +.PHONY : clean_all +clean_all : clean mem_init_clean clean_libs + +# Include the dependency files unless the make goal is performing a clean +# of the application. +ifneq ($(firstword $(MAKECMDGOALS)),clean) +ifneq ($(firstword $(MAKECMDGOALS)),clean_all) +-include $(APP_DEPS) +endif +endif + +.PHONY : download-elf +download-elf : $(ELF) + @if [ "$(DOWNLOAD)" = "none" ]; \ + then \ + $(ECHO) Downloading $(ELF) not supported; \ + else \ + $(ECHO) Info: Downloading $(ELF); \ + $(DOWNLOAD) --go --cpu_name=$(CPU_NAME) $(DOWNLOAD_CABLE_FLAG) $(SOPC_SYSID_FLAG) $(DOWNLOAD_JDI_FLAG) $(WRITE_GMON_OPTION) $(ELF); \ + fi + +# Delete the target of a rule if it has changed and its commands exit +# with a nonzero exit status. +.DELETE_ON_ERROR: + +# Rules for flash programming commands +PROGRAM_FLASH_SUFFIX := -program +PROGRAM_FLASH_TARGET := $(addsuffix $(PROGRAM_FLASH_SUFFIX), $(FLASH_FILES)) + +.PHONY : program-flash +program-flash : $(PROGRAM_FLASH_TARGET) + +.PHONY : $(PROGRAM_FLASH_TARGET) +$(PROGRAM_FLASH_TARGET) : flash + @if [ "$(FLASHPROG)" = "none" ]; \ + then \ + $(ECHO) Programming flash not supported; \ + else \ + $(ECHO) Info: Programming $(basename $@).flash; \ + if [ -z "$($(basename $@)_EPCS_FLAGS)" ]; \ + then \ + $(ECHO) $(FLASHPROG) $(SOPC_SYSID_FLAG) --base=$($(basename $@)_START) $(basename $@).flash; \ + $(FLASHPROG) $(DOWNLOAD_CABLE_FLAG) $(SOPC_SYSID_FLAG) --base=$($(basename $@)_START) $(basename $@).flash; \ + else \ + $(ECHO) $(FLASHPROG) $(SOPC_SYSID_FLAG) --epcs --base=$($(basename $@)_START) $(basename $@).flash; \ + $(FLASHPROG) $(DOWNLOAD_CABLE_FLAG) $(SOPC_SYSID_FLAG) --epcs --base=$($(basename $@)_START) $(basename $@).flash; \ + fi \ + fi + + +# Rules for simulating with an HDL Simulator [QSYS only] +ifeq ($(QSYS),1) +IP_MAKE_SIMSCRIPT := ip-make-simscript + +ifeq ($(VSIM),) +VSIM_EXE := "$(if $(VSIM_DIR),$(VSIM_DIR)/,)vsim" +ifeq ($(ENABLE_VSIM_GUI),1) +VSIM := $(VSIM_EXE) -gui +else +VSIM := $(VSIM_EXE) -c +endif # ENABLE_VSIM_GUI == 1 +endif # VSIM not set + +ifeq ($(SPD),) +ifneq ($(ABS_QUARTUS_PROJECT_DIR),) +ifneq ($(SOPC_NAME),) +SPD := $(ABS_QUARTUS_PROJECT_DIR)/$(SOPC_NAME)_tb.spd +endif # SOPC_NAME set +endif # ABS_QUARTUS_PROJECT_DIR set +endif # SPD == empty string + +ifeq ($(MSIM_SCRIPT),) +SIM_SCRIPT_DIR := $(RUNTIME_ROOT_DIR)/sim +MSIM_SCRIPT := $(SIM_SCRIPT_DIR)/mentor/msim_setup.tcl +endif # MSIM_SCRIPT == empty string + +ifeq ($(MAKE_VERSION),3.81) +ABS_MEM_INIT_DESCRIPTOR_FILE := $(abspath $(MEM_INIT_DESCRIPTOR_FILE)) +else +ABS_MEM_INIT_DESCRIPTOR_FILE := $(call adjust-path-mixed,$(shell pwd))/$(MEM_INIT_DESCRIPTOR_FILE) +endif + +$(MSIM_SCRIPT): $(SPD) $(MEM_INIT_DESCRIPTOR_FILE) +ifeq ($(SPD),) + $(error No SPD file specified. Ensure QUARTUS_PROJECT_DIR variable is set) +endif + @$(MKDIR) $(SIM_SCRIPT_DIR) + $(IP_MAKE_SIMSCRIPT) --spd=$(SPD) --spd=$(MEM_INIT_DESCRIPTOR_FILE) --output-directory=$(SIM_SCRIPT_DIR) + +VSIM_COMMAND = \ + cd $(dir $(MSIM_SCRIPT)) && \ + $(VSIM) -do "do $(notdir $(MSIM_SCRIPT)); ld; $(if $(VSIM_RUN_TIME),run ${VSIM_RUN_TIME};quit;)" + +.PHONY: sim +sim: $(MSIM_SCRIPT) mem_init_generate +ifeq ($(MSIM_SCRIPT),) + $(error MSIM_SCRIPT not set) +endif + $(VSIM_COMMAND) + +endif # QSYS == 1 + + +#------------------------------------------------------------------------------ +# ELF TARGET RULE +#------------------------------------------------------------------------------ +# Rule for constructing the executable elf file. +$(ELF) : $(APP_OBJS) $(LINKER_SCRIPT) $(APP_LDDEPS) + @$(ECHO) Info: Linking $@ + $(LD) $(APP_LDFLAGS) $(APP_CFLAGS) -o $@ $(filter-out $(CRT0),$(APP_OBJS)) $(APP_LIBS) $(APP_BSP_DEP_LIBS) +ifneq ($(DISABLE_ELFPATCH),1) + $(ELFPATCH) $@ $(ELF_PATCH_FLAG) +endif +ifneq ($(DISABLE_STACKREPORT),1) + @bash -c "$(STACKREPORT) $@" +endif + +$(OBJDUMP_NAME) : $(ELF) + @$(ECHO) Info: Creating $@ + $(OBJDUMP) $(OBJDUMP_FLAGS) $< >$@ + +# Rule for printing the name of the elf file +.PHONY: print-elf-name +print-elf-name: + @$(ECHO) $(ELF) + + diff --git a/software/qsys_tutorial_switchs18/create-this-app b/software/qsys_tutorial_switchs18/create-this-app new file mode 100644 index 0000000..62a85f1 --- /dev/null +++ b/software/qsys_tutorial_switchs18/create-this-app @@ -0,0 +1,114 @@ +#!/bin/bash +# +# This script creates the hello_world_small application in this directory. + + +BSP_DIR=../qsys_tutorial_switchs18_bsp +QUARTUS_PROJECT_DIR=../../ +NIOS2_APP_GEN_ARGS="--elf-name qsys_tutorial_switchs18.elf --set APP_CFLAGS_OPTIMIZATION -Os --set OBJDUMP_INCLUDE_SOURCE 1 --src-files hello_world_small.c" + + +# First, check to see if $SOPC_KIT_NIOS2 environmental variable is set. +# This variable is required for the command line tools to execute correctly. +if [ -z "${SOPC_KIT_NIOS2}" ] +then + echo Required \$SOPC_KIT_NIOS2 Environmental Variable is not set! + exit 1 +fi + + +# Also make sure that the APP has not been created already. Check for +# existence of Makefile in the app directory +if [ -f ./Makefile ] +then + echo Application has already been created! Delete Makefile if you want to create a new application makefile + exit 1 +fi + + +# We are selecting hal_reduced_footprint bsp because it supports this application. +# Check to see if the hal_reduced_footprint has already been generated by checking for +# existence of the public.mk file. If not, we need to run +# create-this-bsp file to generate the bsp. +if [ ! -f ${BSP_DIR}/public.mk ]; then + # Since BSP doesn't exist, create the BSP + # Pass any command line arguments passed to this script to the BSP. + pushd ${BSP_DIR} >> /dev/null + ./create-this-bsp "$@" || { + echo "create-this-bsp failed" + exit 1 + } + popd >> /dev/null +fi + + +# Don't run make if create-this-app script is called with --no-make arg +SKIP_MAKE= +while [ $# -gt 0 ] +do + case "$1" in + --no-make) + SKIP_MAKE=1 + ;; + esac + shift +done + + +# Now we also need to go copy the sources for this application to the +# local directory. +find "${SOPC_KIT_NIOS2}/examples/software/hello_world_small/" -name '*.c' -or -name '*.h' -or -name 'hostfs*' | xargs -i cp -L {} ./ || { + echo "failed during copying example source files" + exit 1 +} + +find "${SOPC_KIT_NIOS2}/examples/software/hello_world_small/" -name 'readme.txt' -or -name 'Readme.txt' | xargs -i cp -L {} ./ || { + echo "failed copying readme file" +} + +if [ -d "${SOPC_KIT_NIOS2}/examples/software/hello_world_small/system" ] +then + cp -RL "${SOPC_KIT_NIOS2}/examples/software/hello_world_small/system" . || { + echo "failed during copying project support files" + exit 1 + } +fi + +chmod -R +w . || { + echo "failed during changing file permissions" + exit 1 +} + +cmd="nios2-app-generate-makefile --bsp-dir ${BSP_DIR} --set QUARTUS_PROJECT_DIR=${QUARTUS_PROJECT_DIR} ${NIOS2_APP_GEN_ARGS}" + +echo "create-this-app: Running \"${cmd}\"" +$cmd || { + echo "nios2-app-generate-makefile failed" + exit 1 +} + +if [ -z "$SKIP_MAKE" ]; then + cmd="make" + + echo "create-this-app: Running \"$cmd\"" + $cmd || { + echo "make failed" + exit 1 + } + + echo + echo "To download and run the application:" + echo " 1. Make sure the board is connected to the system." + echo " 2. Run 'nios2-configure-sof ' to configure the FPGA with the hardware design." + echo " 3. If you have a stdio device, run 'nios2-terminal' in a different shell." + echo " 4. Run 'make download-elf' from the application directory." + echo + echo "To debug the application:" + echo " Import the project into Nios II Software Build Tools for Eclipse." + echo " Refer to Nios II Software Build Tools for Eclipse Documentation for more information." + echo + echo -e "" +fi + + +exit 0 diff --git a/software/qsys_tutorial_switchs18/hello_world_small.c b/software/qsys_tutorial_switchs18/hello_world_small.c new file mode 100644 index 0000000..f4f688e --- /dev/null +++ b/software/qsys_tutorial_switchs18/hello_world_small.c @@ -0,0 +1,118 @@ +/* + * "Small Hello World" example. + * + * This example prints 'Hello from Nios II' to the STDOUT stream. It runs on + * the Nios II 'standard', 'full_featured', 'fast', and 'low_cost' example + * designs. It requires a STDOUT device in your system's hardware. + * + * The purpose of this example is to demonstrate the smallest possible Hello + * World application, using the Nios II HAL library. The memory footprint + * of this hosted application is ~332 bytes by default using the standard + * reference design. For a more fully featured Hello World application + * example, see the example titled "Hello World". + * + * The memory footprint of this example has been reduced by making the + * following changes to the normal "Hello World" example. + * Check in the Nios II Software Developers Manual for a more complete + * description. + * + * In the SW Application project (small_hello_world): + * + * - In the C/C++ Build page + * + * - Set the Optimization Level to -Os + * + * In System Library project (small_hello_world_syslib): + * - In the C/C++ Build page + * + * - Set the Optimization Level to -Os + * + * - Define the preprocessor option ALT_NO_INSTRUCTION_EMULATION + * This removes software exception handling, which means that you cannot + * run code compiled for Nios II cpu with a hardware multiplier on a core + * without a the multiply unit. Check the Nios II Software Developers + * Manual for more details. + * + * - In the System Library page: + * - Set Periodic system timer and Timestamp timer to none + * This prevents the automatic inclusion of the timer driver. + * + * - Set Max file descriptors to 4 + * This reduces the size of the file handle pool. + * + * - Check Main function does not exit + * - Uncheck Clean exit (flush buffers) + * This removes the unneeded call to exit when main returns, since it + * won't. + * + * - Check Don't use C++ + * This builds without the C++ support code. + * + * - Check Small C library + * This uses a reduced functionality C library, which lacks + * support for buffering, file IO, floating point and getch(), etc. + * Check the Nios II Software Developers Manual for a complete list. + * + * - Check Reduced device drivers + * This uses reduced functionality drivers if they're available. For the + * standard design this means you get polled UART and JTAG UART drivers, + * no support for the LCD driver and you lose the ability to program + * CFI compliant flash devices. + * + * - Check Access device drivers directly + * This bypasses the device file system to access device drivers directly. + * This eliminates the space required for the device file system services. + * It also provides a HAL version of libc services that access the drivers + * directly, further reducing space. Only a limited number of libc + * functions are available in this configuration. + * + * - Use ALT versions of stdio routines: + * + * Function Description + * =============== ===================================== + * alt_printf Only supports %s, %x, and %c ( < 1 Kbyte) + * alt_putstr Smaller overhead than puts with direct drivers + * Note this function doesn't add a newline. + * alt_putchar Smaller overhead than putchar with direct drivers + * alt_getchar Smaller overhead than getchar with direct drivers + * + */ + +#include "sys/alt_stdio.h" + +#define switches (volatile int *) 0x0002010 +#define ledrs (volatile int *) 0x0002020 +#define push_switches (volatile int *) 0x0002000 + +typedef struct { + unsigned int other : 10; + unsigned int code : 8; +} switches_t; + +typedef union { + int data; + switches_t sw; +} sw_t; + +void main() +{ + while(1) { + //*ledrs = *push_switches; + sw_t s; + s.data = *switches; + *ledrs = s.sw.code; + //alt_putchar(s.sw.code); + } +#if 0 + unsigned long i = 0; + volatile int j = 0; + while(1){ + *ledrs = i++; + if (i > (unsigned long)1<<18) i = 0; + for (j = 0; j < 100; j++); + } + + //while (1) + //*leds = *switches; +#endif +} diff --git a/software/qsys_tutorial_switchs18/obj/default/hello_world_small.d b/software/qsys_tutorial_switchs18/obj/default/hello_world_small.d new file mode 100644 index 0000000..b401e35 --- /dev/null +++ b/software/qsys_tutorial_switchs18/obj/default/hello_world_small.d @@ -0,0 +1,4 @@ +obj/default/hello_world_small.o: hello_world_small.c \ + ../qsys_tutorial_switchs18_bsp//HAL/inc/sys/alt_stdio.h + +../qsys_tutorial_switchs18_bsp//HAL/inc/sys/alt_stdio.h: diff --git a/software/qsys_tutorial_switchs18/obj/default/hello_world_small.o b/software/qsys_tutorial_switchs18/obj/default/hello_world_small.o new file mode 100644 index 0000000..f87277c --- /dev/null +++ b/software/qsys_tutorial_switchs18/obj/default/hello_world_small.o Binary files differ diff --git a/software/qsys_tutorial_switchs18/qsys_tutorial_switchs18.elf b/software/qsys_tutorial_switchs18/qsys_tutorial_switchs18.elf new file mode 100644 index 0000000..78e348a --- /dev/null +++ b/software/qsys_tutorial_switchs18/qsys_tutorial_switchs18.elf Binary files differ diff --git a/software/qsys_tutorial_switchs18/qsys_tutorial_switchs18.map b/software/qsys_tutorial_switchs18/qsys_tutorial_switchs18.map new file mode 100644 index 0000000..c801669 --- /dev/null +++ b/software/qsys_tutorial_switchs18/qsys_tutorial_switchs18.map @@ -0,0 +1,411 @@ +Archive member included because of file (symbol) + +../qsys_tutorial_switchs18_bsp/\libhal_bsp.a(alt_load.o) + ../qsys_tutorial_switchs18_bsp//obj/HAL/src/crt0.o (alt_load) +../qsys_tutorial_switchs18_bsp/\libhal_bsp.a(alt_main.o) + ../qsys_tutorial_switchs18_bsp//obj/HAL/src/crt0.o (alt_main) +../qsys_tutorial_switchs18_bsp/\libhal_bsp.a(alt_sys_init.o) + ../qsys_tutorial_switchs18_bsp/\libhal_bsp.a(alt_main.o) (alt_sys_init) +../qsys_tutorial_switchs18_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) + ../qsys_tutorial_switchs18_bsp/\libhal_bsp.a(alt_load.o) (alt_dcache_flush_all) +../qsys_tutorial_switchs18_bsp/\libhal_bsp.a(alt_icache_flush_all.o) + ../qsys_tutorial_switchs18_bsp/\libhal_bsp.a(alt_load.o) (alt_icache_flush_all) +../qsys_tutorial_switchs18_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) + ../qsys_tutorial_switchs18_bsp/\libhal_bsp.a(alt_sys_init.o) (altera_nios2_qsys_irq_init) + +Memory Configuration + +Name Origin Length Attributes +reset 0x00000000 0x00000020 +onchip_memory 0x00000020 0x00000fe0 +*default* 0x00000000 0xffffffff + +Linker script and memory map + +LOAD ../qsys_tutorial_switchs18_bsp//obj/HAL/src/crt0.o + 0x0000000c exit = _exit +LOAD obj/default/hello_world_small.o +LOAD c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libstdc++.a +LOAD c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libm.a +LOAD c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a +START GROUP +LOAD c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a +LOAD c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a +LOAD ../qsys_tutorial_switchs18_bsp/\libhal_bsp.a +END GROUP +LOAD c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a + 0x00000000 __alt_mem_onchip_memory = 0x0 + +.entry 0x00000000 0x20 + *(.entry) + .entry 0x00000000 0x20 ../qsys_tutorial_switchs18_bsp//obj/HAL/src/crt0.o + 0x00000000 __reset + 0x0000000c _exit + +.exceptions 0x00000020 0x0 + 0x00000020 PROVIDE (__ram_exceptions_start, ABSOLUTE (.)) + 0x00000020 . = ALIGN (0x20) + *(.irq) + *(.exceptions.entry.label) + *(.exceptions.entry.user) + *(.exceptions.entry) + *(.exceptions.irqtest.user) + *(.exceptions.irqtest) + *(.exceptions.irqhandler.user) + *(.exceptions.irqhandler) + *(.exceptions.irqreturn.user) + *(.exceptions.irqreturn) + *(.exceptions.notirq.label) + *(.exceptions.notirq.user) + *(.exceptions.notirq) + *(.exceptions.soft.user) + *(.exceptions.soft) + *(.exceptions.unknown.user) + *(.exceptions.unknown) + *(.exceptions.exit.label) + *(.exceptions.exit.user) + *(.exceptions.exit) + *(.exceptions) + 0x00000020 PROVIDE (__ram_exceptions_end, ABSOLUTE (.)) + 0x00000020 PROVIDE (__flash_exceptions_start, LOADADDR (.exceptions)) + +.text 0x00000020 0x144 + 0x00000020 PROVIDE (stext, ABSOLUTE (.)) + *(.interp) + *(.hash) + *(.dynsym) + *(.dynstr) + *(.gnu.version) + *(.gnu.version_d) + *(.gnu.version_r) + *(.rel.init) + *(.rela.init) + *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) + *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) + *(.rel.fini) + *(.rela.fini) + *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) + *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) + *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) + *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) + *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) + *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) + *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) + *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) + *(.rel.ctors) + *(.rela.ctors) + *(.rel.dtors) + *(.rela.dtors) + *(.rel.got) + *(.rela.got) + *(.rel.sdata .rel.sdata.* .rel.gnu.linkonce.s.*) + *(.rela.sdata .rela.sdata.* .rela.gnu.linkonce.s.*) + *(.rel.sbss .rel.sbss.* .rel.gnu.linkonce.sb.*) + *(.rela.sbss .rela.sbss.* .rela.gnu.linkonce.sb.*) + *(.rel.sdata2 .rel.sdata2.* .rel.gnu.linkonce.s2.*) + *(.rela.sdata2 .rela.sdata2.* .rela.gnu.linkonce.s2.*) + *(.rel.sbss2 .rel.sbss2.* .rel.gnu.linkonce.sb2.*) + *(.rela.sbss2 .rela.sbss2.* .rela.gnu.linkonce.sb2.*) + *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) + *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) + *(.rel.plt) + *(.rela.plt) + *(.rel.dyn) + *(.init) + *(.plt) + *(.text .stub .text.* .gnu.linkonce.t.*) + .text 0x00000020 0x3c ../qsys_tutorial_switchs18_bsp//obj/HAL/src/crt0.o + 0x00000020 _start + .text 0x0000005c 0x1c obj/default/hello_world_small.o + 0x0000005c main + .text 0x00000078 0x8c ../qsys_tutorial_switchs18_bsp/\libhal_bsp.a(alt_load.o) + 0x00000098 alt_load + .text 0x00000104 0x2c ../qsys_tutorial_switchs18_bsp/\libhal_bsp.a(alt_main.o) + 0x00000104 alt_main + .text 0x00000130 0x24 ../qsys_tutorial_switchs18_bsp/\libhal_bsp.a(alt_sys_init.o) + 0x00000130 alt_sys_init + 0x00000134 alt_irq_init + .text 0x00000154 0x4 ../qsys_tutorial_switchs18_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) + 0x00000154 alt_dcache_flush_all + .text 0x00000158 0x4 ../qsys_tutorial_switchs18_bsp/\libhal_bsp.a(alt_icache_flush_all.o) + 0x00000158 alt_icache_flush_all + .text 0x0000015c 0x8 ../qsys_tutorial_switchs18_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) + 0x0000015c altera_nios2_qsys_irq_init + *(.gnu.warning.*) + *(.fini) + 0x00000164 PROVIDE (__etext, ABSOLUTE (.)) + 0x00000164 PROVIDE (_etext, ABSOLUTE (.)) + 0x00000164 PROVIDE (etext, ABSOLUTE (.)) + *(.eh_frame_hdr) + 0x00000164 . = ALIGN (0x4) + 0x00000164 PROVIDE (__preinit_array_start, ABSOLUTE (.)) + *(.preinit_array) + 0x00000164 PROVIDE (__preinit_array_end, ABSOLUTE (.)) + 0x00000164 PROVIDE (__init_array_start, ABSOLUTE (.)) + *(.init_array) + 0x00000164 PROVIDE (__init_array_end, ABSOLUTE (.)) + 0x00000164 PROVIDE (__fini_array_start, ABSOLUTE (.)) + *(.fini_array) + 0x00000164 PROVIDE (__fini_array_end, ABSOLUTE (.)) + *(.eh_frame) + *(.gcc_except_table) + *(.dynamic) + 0x00000164 PROVIDE (__CTOR_LIST__, ABSOLUTE (.)) + *(.ctors) + *(SORT(.ctors.*)) + 0x00000164 PROVIDE (__CTOR_END__, ABSOLUTE (.)) + 0x00000164 PROVIDE (__DTOR_LIST__, ABSOLUTE (.)) + *(.dtors) + *(SORT(.dtors.*)) + 0x00000164 PROVIDE (__DTOR_END__, ABSOLUTE (.)) + *(.jcr) + 0x00000164 . = ALIGN (0x4) + +.rodata 0x00000164 0x0 + 0x00000164 PROVIDE (__ram_rodata_start, ABSOLUTE (.)) + 0x00000164 . = ALIGN (0x4) + *(.rodata .rodata.* .gnu.linkonce.r.*) + *(.rodata1) + 0x00000164 . = ALIGN (0x4) + 0x00000164 PROVIDE (__ram_rodata_end, ABSOLUTE (.)) + 0x00000164 PROVIDE (__flash_rodata_start, LOADADDR (.rodata)) + +.rwdata 0x00000164 0x4 load address 0x00000168 + 0x00000164 PROVIDE (__ram_rwdata_start, ABSOLUTE (.)) + 0x00000164 . = ALIGN (0x4) + *(.got.plt) + *(.got) + *(.data1) + *(.data .data.* .gnu.linkonce.d.*) + .data 0x00000164 0x0 ../qsys_tutorial_switchs18_bsp//obj/HAL/src/crt0.o + .data 0x00000164 0x0 obj/default/hello_world_small.o + .data 0x00000164 0x0 ../qsys_tutorial_switchs18_bsp/\libhal_bsp.a(alt_load.o) + .data 0x00000164 0x0 ../qsys_tutorial_switchs18_bsp/\libhal_bsp.a(alt_main.o) + .data 0x00000164 0x0 ../qsys_tutorial_switchs18_bsp/\libhal_bsp.a(alt_sys_init.o) + .data 0x00000164 0x0 ../qsys_tutorial_switchs18_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) + .data 0x00000164 0x0 ../qsys_tutorial_switchs18_bsp/\libhal_bsp.a(alt_icache_flush_all.o) + .data 0x00000164 0x0 ../qsys_tutorial_switchs18_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) + 0x00008164 _gp = ABSOLUTE ((. + 0x8000)) + 0x00008164 PROVIDE (gp, _gp) + *(.rwdata .rwdata.*) + *(.sdata .sdata.* .gnu.linkonce.s.*) + .sdata 0x00000164 0x4 ../qsys_tutorial_switchs18_bsp/\libhal_bsp.a(alt_sys_init.o) + 0x00000164 jtag_uart + *(.sdata2 .sdata2.* .gnu.linkonce.s2.*) + 0x00000168 . = ALIGN (0x4) + 0x00000168 _edata = ABSOLUTE (.) + 0x00000168 PROVIDE (edata, ABSOLUTE (.)) + 0x00000168 PROVIDE (__ram_rwdata_end, ABSOLUTE (.)) + 0x00000168 PROVIDE (__flash_rwdata_start, LOADADDR (.rwdata)) + +.bss 0x0000016c 0xc + 0x0000016c __bss_start = ABSOLUTE (.) + 0x0000016c PROVIDE (__sbss_start, ABSOLUTE (.)) + 0x0000016c PROVIDE (___sbss_start, ABSOLUTE (.)) + *(.dynsbss) + *(.sbss .sbss.* .gnu.linkonce.sb.*) + .sbss 0x0000016c 0xc ../qsys_tutorial_switchs18_bsp/\libhal_bsp.a(alt_main.o) + 0x0000016c alt_argc + 0x00000170 alt_argv + 0x00000174 alt_envp + *(.sbss2 .sbss2.* .gnu.linkonce.sb2.*) + *(.scommon) + 0x00000178 PROVIDE (__sbss_end, ABSOLUTE (.)) + 0x00000178 PROVIDE (___sbss_end, ABSOLUTE (.)) + *(.dynbss) + *(.bss .bss.* .gnu.linkonce.b.*) + .bss 0x00000178 0x0 ../qsys_tutorial_switchs18_bsp//obj/HAL/src/crt0.o + .bss 0x00000178 0x0 obj/default/hello_world_small.o + .bss 0x00000178 0x0 ../qsys_tutorial_switchs18_bsp/\libhal_bsp.a(alt_load.o) + .bss 0x00000178 0x0 ../qsys_tutorial_switchs18_bsp/\libhal_bsp.a(alt_main.o) + .bss 0x00000178 0x0 ../qsys_tutorial_switchs18_bsp/\libhal_bsp.a(alt_sys_init.o) + .bss 0x00000178 0x0 ../qsys_tutorial_switchs18_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) + .bss 0x00000178 0x0 ../qsys_tutorial_switchs18_bsp/\libhal_bsp.a(alt_icache_flush_all.o) + .bss 0x00000178 0x0 ../qsys_tutorial_switchs18_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) + *(COMMON) + 0x00000178 . = ALIGN (0x4) + 0x00000178 __bss_end = ABSOLUTE (.) + +.onchip_memory 0x00000178 0x0 + 0x00000178 PROVIDE (_alt_partition_onchip_memory_start, ABSOLUTE (.)) + *(.onchip_memory. onchip_memory.*) + 0x00000178 . = ALIGN (0x4) + 0x00000178 PROVIDE (_alt_partition_onchip_memory_end, ABSOLUTE (.)) + 0x00000178 _end = ABSOLUTE (.) + 0x00000178 end = ABSOLUTE (.) + 0x00000178 __alt_stack_base = ABSOLUTE (.) + 0x00000178 PROVIDE (_alt_partition_onchip_memory_load_addr, LOADADDR (.onchip_memory)) + +.stab + *(.stab) + +.stabstr + *(.stabstr) + +.stab.excl + *(.stab.excl) + +.stab.exclstr + *(.stab.exclstr) + +.stab.index + *(.stab.index) + +.stab.indexstr + *(.stab.indexstr) + +.comment 0x00000000 0x26 + *(.comment) + .comment 0x00000000 0x26 obj/default/hello_world_small.o + 0x27 (size before relaxing) + .comment 0x00000000 0x27 ../qsys_tutorial_switchs18_bsp/\libhal_bsp.a(alt_load.o) + .comment 0x00000000 0x27 ../qsys_tutorial_switchs18_bsp/\libhal_bsp.a(alt_main.o) + .comment 0x00000000 0x27 ../qsys_tutorial_switchs18_bsp/\libhal_bsp.a(alt_sys_init.o) + .comment 0x00000000 0x27 ../qsys_tutorial_switchs18_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) + .comment 0x00000000 0x27 ../qsys_tutorial_switchs18_bsp/\libhal_bsp.a(alt_icache_flush_all.o) + .comment 0x00000000 0x27 ../qsys_tutorial_switchs18_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) + +.debug + *(.debug) + +.line + *(.line) + +.debug_srcinfo + *(.debug_srcinfo) + +.debug_sfnames + *(.debug_sfnames) + +.debug_aranges 0x00000000 0x108 + *(.debug_aranges) + .debug_aranges + 0x00000000 0x28 ../qsys_tutorial_switchs18_bsp//obj/HAL/src/crt0.o + .debug_aranges + 0x00000028 0x20 obj/default/hello_world_small.o + .debug_aranges + 0x00000048 0x20 ../qsys_tutorial_switchs18_bsp/\libhal_bsp.a(alt_load.o) + .debug_aranges + 0x00000068 0x20 ../qsys_tutorial_switchs18_bsp/\libhal_bsp.a(alt_main.o) + .debug_aranges + 0x00000088 0x20 ../qsys_tutorial_switchs18_bsp/\libhal_bsp.a(alt_sys_init.o) + .debug_aranges + 0x000000a8 0x20 ../qsys_tutorial_switchs18_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) + .debug_aranges + 0x000000c8 0x20 ../qsys_tutorial_switchs18_bsp/\libhal_bsp.a(alt_icache_flush_all.o) + .debug_aranges + 0x000000e8 0x20 ../qsys_tutorial_switchs18_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) + +.debug_pubnames + 0x00000000 0x149 + *(.debug_pubnames) + .debug_pubnames + 0x00000000 0x1b obj/default/hello_world_small.o + .debug_pubnames + 0x0000001b 0x1f ../qsys_tutorial_switchs18_bsp/\libhal_bsp.a(alt_load.o) + .debug_pubnames + 0x0000003a 0x46 ../qsys_tutorial_switchs18_bsp/\libhal_bsp.a(alt_main.o) + .debug_pubnames + 0x00000080 0x42 ../qsys_tutorial_switchs18_bsp/\libhal_bsp.a(alt_sys_init.o) + .debug_pubnames + 0x000000c2 0x2b ../qsys_tutorial_switchs18_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) + .debug_pubnames + 0x000000ed 0x2b ../qsys_tutorial_switchs18_bsp/\libhal_bsp.a(alt_icache_flush_all.o) + .debug_pubnames + 0x00000118 0x31 ../qsys_tutorial_switchs18_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) + +.debug_info 0x00000000 0x6b7 + *(.debug_info .gnu.linkonce.wi.*) + .debug_info 0x00000000 0x87 ../qsys_tutorial_switchs18_bsp//obj/HAL/src/crt0.o + .debug_info 0x00000087 0xb9 obj/default/hello_world_small.o + .debug_info 0x00000140 0x12e ../qsys_tutorial_switchs18_bsp/\libhal_bsp.a(alt_load.o) + .debug_info 0x0000026e 0x125 ../qsys_tutorial_switchs18_bsp/\libhal_bsp.a(alt_main.o) + .debug_info 0x00000393 0x17d ../qsys_tutorial_switchs18_bsp/\libhal_bsp.a(alt_sys_init.o) + .debug_info 0x00000510 0x8d ../qsys_tutorial_switchs18_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) + .debug_info 0x0000059d 0x8d ../qsys_tutorial_switchs18_bsp/\libhal_bsp.a(alt_icache_flush_all.o) + .debug_info 0x0000062a 0x8d ../qsys_tutorial_switchs18_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) + +.debug_abbrev 0x00000000 0x398 + *(.debug_abbrev) + .debug_abbrev 0x00000000 0x12 ../qsys_tutorial_switchs18_bsp//obj/HAL/src/crt0.o + .debug_abbrev 0x00000012 0xa9 obj/default/hello_world_small.o + .debug_abbrev 0x000000bb 0x97 ../qsys_tutorial_switchs18_bsp/\libhal_bsp.a(alt_load.o) + .debug_abbrev 0x00000152 0xa6 ../qsys_tutorial_switchs18_bsp/\libhal_bsp.a(alt_main.o) + .debug_abbrev 0x000001f8 0xe3 ../qsys_tutorial_switchs18_bsp/\libhal_bsp.a(alt_sys_init.o) + .debug_abbrev 0x000002db 0x3f ../qsys_tutorial_switchs18_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) + .debug_abbrev 0x0000031a 0x3f ../qsys_tutorial_switchs18_bsp/\libhal_bsp.a(alt_icache_flush_all.o) + .debug_abbrev 0x00000359 0x3f ../qsys_tutorial_switchs18_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) + +.debug_line 0x00000000 0xdd4 + *(.debug_line) + .debug_line 0x00000000 0x66 ../qsys_tutorial_switchs18_bsp//obj/HAL/src/crt0.o + .debug_line 0x00000066 0xd7 obj/default/hello_world_small.o + .debug_line 0x0000013d 0x217 ../qsys_tutorial_switchs18_bsp/\libhal_bsp.a(alt_load.o) + .debug_line 0x00000354 0x2c2 ../qsys_tutorial_switchs18_bsp/\libhal_bsp.a(alt_main.o) + .debug_line 0x00000616 0x286 ../qsys_tutorial_switchs18_bsp/\libhal_bsp.a(alt_sys_init.o) + .debug_line 0x0000089c 0x1b5 ../qsys_tutorial_switchs18_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) + .debug_line 0x00000a51 0x1b5 ../qsys_tutorial_switchs18_bsp/\libhal_bsp.a(alt_icache_flush_all.o) + .debug_line 0x00000c06 0x1ce ../qsys_tutorial_switchs18_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) + +.debug_frame 0x00000000 0x118 + *(.debug_frame) + .debug_frame 0x00000000 0x20 obj/default/hello_world_small.o + .debug_frame 0x00000020 0x38 ../qsys_tutorial_switchs18_bsp/\libhal_bsp.a(alt_load.o) + .debug_frame 0x00000058 0x28 ../qsys_tutorial_switchs18_bsp/\libhal_bsp.a(alt_main.o) + .debug_frame 0x00000080 0x38 ../qsys_tutorial_switchs18_bsp/\libhal_bsp.a(alt_sys_init.o) + .debug_frame 0x000000b8 0x20 ../qsys_tutorial_switchs18_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) + .debug_frame 0x000000d8 0x20 ../qsys_tutorial_switchs18_bsp/\libhal_bsp.a(alt_icache_flush_all.o) + .debug_frame 0x000000f8 0x20 ../qsys_tutorial_switchs18_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) + +.debug_str 0x00000000 0x3f0 + *(.debug_str) + .debug_str 0x00000000 0x92 obj/default/hello_world_small.o + 0xa4 (size before relaxing) + .debug_str 0x00000092 0x197 ../qsys_tutorial_switchs18_bsp/\libhal_bsp.a(alt_load.o) + 0x1dc (size before relaxing) + .debug_str 0x00000229 0x75 ../qsys_tutorial_switchs18_bsp/\libhal_bsp.a(alt_main.o) + 0x160 (size before relaxing) + .debug_str 0x0000029e 0xaf ../qsys_tutorial_switchs18_bsp/\libhal_bsp.a(alt_sys_init.o) + 0x1d3 (size before relaxing) + .debug_str 0x0000034d 0x34 ../qsys_tutorial_switchs18_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) + 0x11f (size before relaxing) + .debug_str 0x00000381 0x34 ../qsys_tutorial_switchs18_bsp/\libhal_bsp.a(alt_icache_flush_all.o) + 0x11f (size before relaxing) + .debug_str 0x000003b5 0x3b ../qsys_tutorial_switchs18_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) + 0x126 (size before relaxing) + +.debug_loc 0x00000000 0x70 + *(.debug_loc) + .debug_loc 0x00000000 0x1f ../qsys_tutorial_switchs18_bsp/\libhal_bsp.a(alt_load.o) + .debug_loc 0x0000001f 0x1f ../qsys_tutorial_switchs18_bsp/\libhal_bsp.a(alt_main.o) + .debug_loc 0x0000003e 0x32 ../qsys_tutorial_switchs18_bsp/\libhal_bsp.a(alt_sys_init.o) + +.debug_macinfo + *(.debug_macinfo) + +.debug_weaknames + *(.debug_weaknames) + +.debug_funcnames + *(.debug_funcnames) + +.debug_typenames + *(.debug_typenames) + +.debug_varnames + *(.debug_varnames) + +.debug_alt_sim_info + 0x00000000 0x10 + *(.debug_alt_sim_info) + .debug_alt_sim_info + 0x00000000 0x10 ../qsys_tutorial_switchs18_bsp//obj/HAL/src/crt0.o + 0x00001000 __alt_data_end = 0x1000 + 0x00001000 PROVIDE (__alt_stack_pointer, __alt_data_end) + 0x00000178 PROVIDE (__alt_stack_limit, __alt_stack_base) + 0x00000178 PROVIDE (__alt_heap_start, end) + 0x00001000 PROVIDE (__alt_heap_limit, 0x1000) +OUTPUT(qsys_tutorial_switchs18.elf elf32-littlenios2) + +.debug_ranges 0x00000000 0x20 + .debug_ranges 0x00000000 0x20 ../qsys_tutorial_switchs18_bsp//obj/HAL/src/crt0.o diff --git a/software/qsys_tutorial_switchs18/qsys_tutorial_switchs18.objdump b/software/qsys_tutorial_switchs18/qsys_tutorial_switchs18.objdump new file mode 100644 index 0000000..6239361 --- /dev/null +++ b/software/qsys_tutorial_switchs18/qsys_tutorial_switchs18.objdump @@ -0,0 +1,460 @@ + +qsys_tutorial_switchs18.elf: file format elf32-littlenios2 +qsys_tutorial_switchs18.elf +architecture: nios2, flags 0x00000112: +EXEC_P, HAS_SYMS, D_PAGED +start address 0x00000020 + +Program Header: + LOAD off 0x00001000 vaddr 0x00000000 paddr 0x00000000 align 2**12 + filesz 0x00000020 memsz 0x00000020 flags r-x + LOAD off 0x00001020 vaddr 0x00000020 paddr 0x00000020 align 2**12 + filesz 0x00000144 memsz 0x00000144 flags r-x + LOAD off 0x00001164 vaddr 0x00000164 paddr 0x00000168 align 2**12 + filesz 0x00000004 memsz 0x00000004 flags rw- + LOAD off 0x0000116c vaddr 0x0000016c paddr 0x0000016c align 2**12 + filesz 0x00000000 memsz 0x0000000c flags rw- + +Sections: +Idx Name Size VMA LMA File off Algn + 0 .entry 00000020 00000000 00000000 00001000 2**5 + CONTENTS, ALLOC, LOAD, READONLY, CODE + 1 .text 00000144 00000020 00000020 00001020 2**2 + CONTENTS, ALLOC, LOAD, READONLY, CODE + 2 .rwdata 00000004 00000164 00000168 00001164 2**2 + CONTENTS, ALLOC, LOAD, DATA, SMALL_DATA + 3 .bss 0000000c 0000016c 0000016c 0000116c 2**2 + ALLOC, SMALL_DATA + 4 .comment 00000026 00000000 00000000 00001168 2**0 + CONTENTS, READONLY + 5 .debug_aranges 00000108 00000000 00000000 00001190 2**3 + CONTENTS, READONLY, DEBUGGING + 6 .debug_pubnames 00000149 00000000 00000000 00001298 2**0 + CONTENTS, READONLY, DEBUGGING + 7 .debug_info 000006b7 00000000 00000000 000013e1 2**0 + CONTENTS, READONLY, DEBUGGING + 8 .debug_abbrev 00000398 00000000 00000000 00001a98 2**0 + CONTENTS, READONLY, DEBUGGING + 9 .debug_line 00000dd4 00000000 00000000 00001e30 2**0 + CONTENTS, READONLY, DEBUGGING + 10 .debug_frame 00000118 00000000 00000000 00002c04 2**2 + CONTENTS, READONLY, DEBUGGING + 11 .debug_str 000003f0 00000000 00000000 00002d1c 2**0 + CONTENTS, READONLY, DEBUGGING + 12 .debug_loc 00000070 00000000 00000000 0000310c 2**0 + CONTENTS, READONLY, DEBUGGING + 13 .debug_alt_sim_info 00000010 00000000 00000000 0000317c 2**2 + CONTENTS, READONLY, DEBUGGING + 14 .debug_ranges 00000020 00000000 00000000 00003190 2**3 + CONTENTS, READONLY, DEBUGGING + 15 .thread_model 00000003 00000000 00000000 00003dc7 2**0 + CONTENTS, READONLY + 16 .cpu 0000000f 00000000 00000000 00003dca 2**0 + CONTENTS, READONLY + 17 .qsys 00000001 00000000 00000000 00003dd9 2**0 + CONTENTS, READONLY + 18 .simulation_enabled 00000001 00000000 00000000 00003dda 2**0 + CONTENTS, READONLY + 19 .stderr_dev 00000009 00000000 00000000 00003ddb 2**0 + CONTENTS, READONLY + 20 .stdin_dev 00000009 00000000 00000000 00003de4 2**0 + CONTENTS, READONLY + 21 .stdout_dev 00000009 00000000 00000000 00003ded 2**0 + CONTENTS, READONLY + 22 .sopc_system_name 0000000b 00000000 00000000 00003df6 2**0 + CONTENTS, READONLY + 23 .quartus_project_dir 00000030 00000000 00000000 00003e01 2**0 + CONTENTS, READONLY + 24 .sopcinfo 00037346 00000000 00000000 00003e31 2**0 + CONTENTS, READONLY +SYMBOL TABLE: +00000000 l d .entry 00000000 .entry +00000020 l d .text 00000000 .text +00000164 l d .rwdata 00000000 .rwdata +0000016c l d .bss 00000000 .bss +00000000 l d .comment 00000000 .comment +00000000 l d .debug_aranges 00000000 .debug_aranges +00000000 l d .debug_pubnames 00000000 .debug_pubnames +00000000 l d .debug_info 00000000 .debug_info +00000000 l d .debug_abbrev 00000000 .debug_abbrev +00000000 l d .debug_line 00000000 .debug_line +00000000 l d .debug_frame 00000000 .debug_frame +00000000 l d .debug_str 00000000 .debug_str +00000000 l d .debug_loc 00000000 .debug_loc +00000000 l d .debug_alt_sim_info 00000000 .debug_alt_sim_info +00000000 l d .debug_ranges 00000000 .debug_ranges +00000058 l .text 00000000 alt_after_alt_main +00000000 l df *ABS* 00000000 hello_world_small.c +00000000 l df *ABS* 00000000 alt_load.c +00000078 l F .text 00000020 alt_load_section +00000000 l df *ABS* 00000000 alt_main.c +00000000 l df *ABS* 00000000 alt_sys_init.c +00000000 l df *ABS* 00000000 alt_dcache_flush_all.c +00000000 l df *ABS* 00000000 alt_icache_flush_all.c +00000000 l df *ABS* 00000000 altera_nios2_qsys_irq.c +00000104 g F .text 0000002c alt_main +00000168 g *ABS* 00000000 __flash_rwdata_start +00000164 g O .rwdata 00000004 jtag_uart +00000000 g F .entry 0000000c __reset +00000020 g *ABS* 00000000 __flash_exceptions_start +00000170 g O .bss 00000004 alt_argv +00008164 g *ABS* 00000000 _gp +00000178 g *ABS* 00000000 __bss_end +00000154 g F .text 00000004 alt_dcache_flush_all +00000168 g *ABS* 00000000 __ram_rwdata_end +00000000 g *ABS* 00000000 __alt_mem_onchip_memory +00000164 g *ABS* 00000000 __ram_rodata_end +00000178 g *ABS* 00000000 end +00001000 g *ABS* 00000000 __alt_stack_pointer +00000020 g F .text 0000003c _start +00000130 g F .text 00000004 alt_sys_init +00000164 g *ABS* 00000000 __ram_rwdata_start +00000164 g *ABS* 00000000 __ram_rodata_start +00000178 g *ABS* 00000000 __alt_stack_base +0000016c g *ABS* 00000000 __bss_start +0000005c g F .text 0000001c main +00000174 g O .bss 00000004 alt_envp +00000164 g *ABS* 00000000 __flash_rodata_start +00000134 g F .text 00000020 alt_irq_init +0000016c g O .bss 00000004 alt_argc +00000020 g *ABS* 00000000 __ram_exceptions_start +00000168 g *ABS* 00000000 _edata +00000178 g *ABS* 00000000 _end +00000020 g *ABS* 00000000 __ram_exceptions_end +0000015c g F .text 00000008 altera_nios2_qsys_irq_init +0000000c g .entry 00000000 exit +00001000 g *ABS* 00000000 __alt_data_end +0000000c g .entry 00000000 _exit +00000158 g F .text 00000004 alt_icache_flush_all +00000098 g F .text 0000006c alt_load + + + +Disassembly of section .entry: + +00000000 <__reset>: + * Jump to the _start entry point in the .text section if reset code + * is allowed or if optimizing for RTL simulation. + */ +#if defined(ALT_ALLOW_CODE_AT_RESET) || defined(ALT_SIM_OPTIMIZE) + /* Jump to the _start entry point in the .text section. */ + movhi r1, %hi(_start) + 0: 00400034 movhi at,0 + ori r1, r1, %lo(_start) + 4: 08400814 ori at,at,32 + jmp r1 + 8: 0800683a jmp at + +0000000c <_exit>: + ... + +Disassembly of section .text: + +00000020 <_start>: +#if (NIOS2_NUM_OF_SHADOW_REG_SETS == 0) + /* + * Now that the caches are initialized, set up the stack pointer. + * The value provided by the linker is assumed to be correctly aligned. + */ + movhi sp, %hi(__alt_stack_pointer) + 20: 06c00034 movhi sp,0 + ori sp, sp, %lo(__alt_stack_pointer) + 24: dec40014 ori sp,sp,4096 + + /* Set up the global pointer. */ + movhi gp, %hi(_gp) + 28: 06800034 movhi gp,0 + ori gp, gp, %lo(_gp) + 2c: d6a05914 ori gp,gp,33124 + */ +#ifndef ALT_SIM_OPTIMIZE + /* Log that the BSS is about to be cleared. */ + ALT_LOG_PUTS(alt_log_msg_bss) + + movhi r2, %hi(__bss_start) + 30: 00800034 movhi r2,0 + ori r2, r2, %lo(__bss_start) + 34: 10805b14 ori r2,r2,364 + + movhi r3, %hi(__bss_end) + 38: 00c00034 movhi r3,0 + ori r3, r3, %lo(__bss_end) + 3c: 18c05e14 ori r3,r3,376 + + beq r2, r3, 1f + 40: 10c00326 beq r2,r3,50 <_start+0x30> + +0: + stw zero, (r2) + 44: 10000015 stw zero,0(r2) + addi r2, r2, 4 + 48: 10800104 addi r2,r2,4 + bltu r2, r3, 0b + 4c: 10fffd36 bltu r2,r3,44 <_start+0x24> + * section aren't defined until alt_load() has been called). + */ + mov et, zero +#endif + + call alt_load + 50: 00000980 call 98 + + /* Log that alt_main is about to be called. */ + ALT_LOG_PUTS(alt_log_msg_alt_main) + + /* Call the C entry point. It should never return. */ + call alt_main + 54: 00001040 call 104 + +00000058 : + + /* Wait in infinite loop in case alt_main does return. */ +alt_after_alt_main: + br alt_after_alt_main + 58: 003fff06 br 58 + +0000005c
: + int data; + switches_t sw; +} sw_t; + +void main() +{ + 5c: 01080004 movi r4,8192 + 60: 00c80404 movi r3,8208 + while(1) { + sw_t s; + s.data = *switches; + 64: 20800017 ldw r2,0(r4) + *ledrs = s.sw.code; + 68: 1004d2ba srli r2,r2,10 + 6c: 10803fcc andi r2,r2,255 + 70: 18800015 stw r2,0(r3) + 74: 003ffb06 br 64 + +00000078 : + +static void ALT_INLINE alt_load_section (alt_u32* from, + alt_u32* to, + alt_u32* end) +{ + if (to != from) + 78: 2900051e bne r5,r4,90 + 7c: f800283a ret + { + while( to != end ) + { + *to++ = *from++; + 80: 20800017 ldw r2,0(r4) + 84: 21000104 addi r4,r4,4 + 88: 28800015 stw r2,0(r5) + 8c: 29400104 addi r5,r5,4 + alt_u32* to, + alt_u32* end) +{ + if (to != from) + { + while( to != end ) + 90: 29bffb1e bne r5,r6,80 + 94: f800283a ret + +00000098 : + * there is no bootloader, so this application is responsible for loading to + * RAM any sections that are required. + */ + +void alt_load (void) +{ + 98: deffff04 addi sp,sp,-4 + /* + * Copy the .rwdata section. + */ + + alt_load_section (&__flash_rwdata_start, + 9c: 01000034 movhi r4,0 + a0: 21005a04 addi r4,r4,360 + a4: 01400034 movhi r5,0 + a8: 29405904 addi r5,r5,356 + ac: 01800034 movhi r6,0 + b0: 31805a04 addi r6,r6,360 + * there is no bootloader, so this application is responsible for loading to + * RAM any sections that are required. + */ + +void alt_load (void) +{ + b4: dfc00015 stw ra,0(sp) + /* + * Copy the .rwdata section. + */ + + alt_load_section (&__flash_rwdata_start, + b8: 00000780 call 78 + + /* + * Copy the exception handler. + */ + + alt_load_section (&__flash_exceptions_start, + bc: 01000034 movhi r4,0 + c0: 21000804 addi r4,r4,32 + c4: 01400034 movhi r5,0 + c8: 29400804 addi r5,r5,32 + cc: 01800034 movhi r6,0 + d0: 31800804 addi r6,r6,32 + d4: 00000780 call 78 + + /* + * Copy the .rodata section. + */ + + alt_load_section (&__flash_rodata_start, + d8: 01000034 movhi r4,0 + dc: 21005904 addi r4,r4,356 + e0: 01400034 movhi r5,0 + e4: 29405904 addi r5,r5,356 + e8: 01800034 movhi r6,0 + ec: 31805904 addi r6,r6,356 + f0: 00000780 call 78 + + /* + * Now ensure that the caches are in synch. + */ + + alt_dcache_flush_all(); + f4: 00001540 call 154 + alt_icache_flush_all(); +} + f8: dfc00017 ldw ra,0(sp) + fc: dec00104 addi sp,sp,4 + /* + * Now ensure that the caches are in synch. + */ + + alt_dcache_flush_all(); + alt_icache_flush_all(); + 100: 00001581 jmpi 158 + +00000104 : + * devices/filesystems/components in the system; and call the entry point for + * the users application, i.e. main(). + */ + +void alt_main (void) +{ + 104: deffff04 addi sp,sp,-4 +#endif + + /* ALT LOG - please see HAL/sys/alt_log_printf.h for details */ + ALT_LOG_PRINT_BOOT("[alt_main.c] Entering alt_main, calling alt_irq_init.\r\n"); + /* Initialize the interrupt controller. */ + alt_irq_init (NULL); + 108: 0009883a mov r4,zero + * devices/filesystems/components in the system; and call the entry point for + * the users application, i.e. main(). + */ + +void alt_main (void) +{ + 10c: dfc00015 stw ra,0(sp) +#endif + + /* ALT LOG - please see HAL/sys/alt_log_printf.h for details */ + ALT_LOG_PRINT_BOOT("[alt_main.c] Entering alt_main, calling alt_irq_init.\r\n"); + /* Initialize the interrupt controller. */ + alt_irq_init (NULL); + 110: 00001340 call 134 + ALT_LOG_PRINT_BOOT("[alt_main.c] Done OS Init, calling alt_sem_create.\r\n"); + ALT_SEM_CREATE (&alt_fd_list_lock, 1); + + /* Initialize the device drivers/software components. */ + ALT_LOG_PRINT_BOOT("[alt_main.c] Calling alt_sys_init.\r\n"); + alt_sys_init(); + 114: 00001300 call 130 + */ + + ALT_LOG_PRINT_BOOT("[alt_main.c] Calling main.\r\n"); + +#ifdef ALT_NO_EXIT + main (alt_argc, alt_argv, alt_envp); + 118: d1200217 ldw r4,-32760(gp) + 11c: d1600317 ldw r5,-32756(gp) + 120: d1a00417 ldw r6,-32752(gp) + close(STDOUT_FILENO); + exit (result); +#endif + + ALT_LOG_PRINT_BOOT("[alt_main.c] After main - we should not be here?.\r\n"); +} + 124: dfc00017 ldw ra,0(sp) + 128: dec00104 addi sp,sp,4 + */ + + ALT_LOG_PRINT_BOOT("[alt_main.c] Calling main.\r\n"); + +#ifdef ALT_NO_EXIT + main (alt_argc, alt_argv, alt_envp); + 12c: 000005c1 jmpi 5c
+ +00000130 : + */ + +void alt_sys_init( void ) +{ + ALTERA_AVALON_JTAG_UART_INIT ( JTAG_UART, jtag_uart); +} + 130: f800283a ret + +00000134 : + * The "base" parameter is ignored and only + * present for backwards-compatibility. + */ + +void alt_irq_init ( const void* base ) +{ + 134: deffff04 addi sp,sp,-4 + 138: dfc00015 stw ra,0(sp) + ALTERA_NIOS2_QSYS_IRQ_INIT ( NIOS2_PROCESSOR, nios2_processor); + 13c: 000015c0 call 15c + * alt_irq_cpu_enable_interrupts() enables the CPU to start taking interrupts. + */ +static ALT_INLINE void ALT_ALWAYS_INLINE + alt_irq_cpu_enable_interrupts () +{ + NIOS2_WRITE_STATUS(NIOS2_STATUS_PIE_MSK + 140: 00800044 movi r2,1 + 144: 1001703a wrctl status,r2 + alt_irq_cpu_enable_interrupts(); +} + 148: dfc00017 ldw ra,0(sp) + 14c: dec00104 addi sp,sp,4 + 150: f800283a ret + +00000154 : + for (i = (char*) 0; i < (char*) NIOS2_DCACHE_SIZE; i+= NIOS2_DCACHE_LINE_SIZE) + { + __asm__ volatile ("flushd (%0)" :: "r" (i)); + } +#endif /* NIOS2_DCACHE_SIZE > 0 */ +} + 154: f800283a ret + +00000158 : +void alt_icache_flush_all (void) +{ +#if NIOS2_ICACHE_SIZE > 0 + alt_icache_flush (0, NIOS2_ICACHE_SIZE); +#endif +} + 158: f800283a ret + +0000015c : + * To initialize the internal interrupt controller, just clear the IENABLE + * register so that all possible IRQs are disabled. + */ +void altera_nios2_qsys_irq_init(void) +{ + NIOS2_WRITE_IENABLE(0); + 15c: 000170fa wrctl ienable,zero +} + 160: f800283a ret diff --git a/software/qsys_tutorial_switchs18/readme.txt b/software/qsys_tutorial_switchs18/readme.txt new file mode 100644 index 0000000..3dc3186 --- /dev/null +++ b/software/qsys_tutorial_switchs18/readme.txt @@ -0,0 +1,67 @@ +Readme - Hello World Software Example + +DESCRIPTION: +Simple program that prints "Hello from Nios II" + +The purpose of this example is to demonstrate the smallest possible Hello +World application, using the Nios II HAL BSP. The memory footprint +of this hosted application is intended to be less than 1 kbytes by default using a standard +reference design. For a more fully featured Hello World application +example, see the example titled "Hello World". + +The memory footprint of this example has been reduced by making the +following changes to the normal "Hello World" example. +Check in the Nios II Software Developers Handbook for a more complete +description. + +In the SW Application project: + - In the C/C++ Build page + - Set the Optimization Level to -Os + +In BSP project: + - In the C/C++ Build page + + - Set the Optimization Level to -Os + + - Define the preprocessor option ALT_NO_INSTRUCTION_EMULATION + This removes software exception handling, which means that you cannot + run code compiled for Nios II cpu with a hardware multiplier on a core + without a the multiply unit. Check the Nios II Software Developers + Manual for more details. + + - In the BSP: + - Set Periodic system timer and Timestamp timer to none + This prevents the automatic inclusion of the timer driver. + + - Set Max file descriptors to 4 + This reduces the size of the file handle pool. + + - Uncheck Clean exit (flush buffers) + This removes the call to exit, and when main is exitted instead of + calling exit the software will just spin in a loop. + + - Check Small C library + This uses a reduced functionality C library, which lacks + support for buffering, file IO, floating point and getch(), etc. + Check the Nios II Software Developers Manual for a complete list. + + - Check Reduced device drivers + This uses reduced functionality drivers if they're available. For the + standard design this means you get polled UART and JTAG UART drivers, + no support for the LCD driver and you lose the ability to program + CFI compliant flash devices. + + +PERIPHERALS USED: +This example exercises the following peripherals: +- STDOUT device (UART or JTAG UART) + +SOFTWARE SOURCE FILES: +This example includes the following software source files: +- small_hello_world.c: + +BOARD/HOST REQUIREMENTS: +This example requires only a JTAG connection with a Nios Development board. If +the host communication settings are changed from JTAG UART (default) to use a +conventional UART, a serial cable between board DB-9 connector and the host is +required. diff --git a/software/qsys_tutorial_switchs18/system/template.xml b/software/qsys_tutorial_switchs18/system/template.xml new file mode 100644 index 0000000..b09e912 --- /dev/null +++ b/software/qsys_tutorial_switchs18/system/template.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/software/qsys_tutorial_switchs18_bsp/.cproject b/software/qsys_tutorial_switchs18_bsp/.cproject new file mode 100644 index 0000000..48de46a --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/.cproject @@ -0,0 +1,481 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/software/qsys_tutorial_switchs18_bsp/.project b/software/qsys_tutorial_switchs18_bsp/.project new file mode 100644 index 0000000..0b226b8 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/.project @@ -0,0 +1,85 @@ + + + qsys_tutorial_switchs18_bsp + + + + + + org.eclipse.cdt.managedbuilder.core.genmakebuilder + clean,full,incremental, + + + ?name? + + + + org.eclipse.cdt.make.core.append_environment + true + + + org.eclipse.cdt.make.core.autoBuildTarget + all + + + org.eclipse.cdt.make.core.buildArguments + + + + org.eclipse.cdt.make.core.buildCommand + make + + + org.eclipse.cdt.make.core.buildLocation + ${workspace_loc://qsys_tutorial_switchs18_bsp} + + + org.eclipse.cdt.make.core.cleanBuildTarget + clean + + + org.eclipse.cdt.make.core.contents + org.eclipse.cdt.make.core.activeConfigSettings + + + org.eclipse.cdt.make.core.enableAutoBuild + false + + + org.eclipse.cdt.make.core.enableCleanBuild + true + + + org.eclipse.cdt.make.core.enableFullBuild + true + + + org.eclipse.cdt.make.core.fullBuildTarget + all + + + org.eclipse.cdt.make.core.stopOnError + true + + + org.eclipse.cdt.make.core.useDefaultBuildCmd + true + + + + + org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder + full,incremental, + + + + + + org.eclipse.cdt.core.cnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.managedbuilder.core.ScannerConfigNature + org.eclipse.cdt.core.ccnature + com.altera.sbtgui.project.SBTGUINature + com.altera.sbtgui.project.SBTGUIBspNature + + diff --git a/software/qsys_tutorial_switchs18_bsp/HAL/inc/alt_types.h b/software/qsys_tutorial_switchs18_bsp/HAL/inc/alt_types.h new file mode 100644 index 0000000..d02f171 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/HAL/inc/alt_types.h @@ -0,0 +1,54 @@ +#ifndef __ALT_TYPES_H__ +#define __ALT_TYPES_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/* + * Don't declare these typedefs if this file is included by assembly source. + */ +#ifndef ALT_ASM_SRC +typedef signed char alt_8; +typedef unsigned char alt_u8; +typedef signed short alt_16; +typedef unsigned short alt_u16; +typedef signed long alt_32; +typedef unsigned long alt_u32; +typedef long long alt_64; +typedef unsigned long long alt_u64; +#endif + +#define ALT_INLINE __inline__ +#define ALT_ALWAYS_INLINE __attribute__ ((always_inline)) +#define ALT_WEAK __attribute__((weak)) + +#endif /* __ALT_TYPES_H__ */ diff --git a/software/qsys_tutorial_switchs18_bsp/HAL/inc/altera_nios2_qsys_irq.h b/software/qsys_tutorial_switchs18_bsp/HAL/inc/altera_nios2_qsys_irq.h new file mode 100644 index 0000000..6629ec9 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/HAL/inc/altera_nios2_qsys_irq.h @@ -0,0 +1,80 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2009 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/* + * Support for the Nios II internal interrupt controller. + */ + +#ifndef __ALT_NIOS2_QSYS_IRQ_H__ +#define __ALT_NIOS2_QSYS_IRQ_H__ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * The macro ALTERA_NIOS2_IRQ_INSTANCE is used by the alt_irq_init() + * function in the auto-generated file alt_sys_init.c to create an + * instance of this interrupt controller device driver state if this + * module contains an interrupt controller. + * Only one instance of a Nios II is allowed so this macro is just empty. + */ + +#define ALTERA_NIOS2_QSYS_IRQ_INSTANCE(name, state) + +/* + * altera_nios2_irq_init() is called by the auto-generated function + * alt_irq_init() once for the Nios II if it contains an interrupt controller. + * The altera_nios2_irq_init() routine is called using the + * ALTERA_NIOS2_IRQ_INIT macro given below. + * + * This function initializes the internal interrupt controller + * so is not called if the Nios II contains an external interrupt + * controller port (because the internal interrupt controller + * is removed if this port is present). + */ + +extern void altera_nios2_qsys_irq_init( void ); + +/* + * The macro ALTERA_NIOS2_IRQ_INIT is used by the alt_irq_init() routine + * in the auto-generated file alt_sys_init.c to initialize an instance + * of the interrupt controller device driver state. + */ + +#define ALTERA_NIOS2_QSYS_IRQ_INIT(name, state) altera_nios2_qsys_irq_init() + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __ALT_NIOS2_QSYS_IRQ_H__ */ + diff --git a/software/qsys_tutorial_switchs18_bsp/HAL/inc/io.h b/software/qsys_tutorial_switchs18_bsp/HAL/inc/io.h new file mode 100644 index 0000000..362f103 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/HAL/inc/io.h @@ -0,0 +1,81 @@ +#ifndef __IO_H__ +#define __IO_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/* IO Header file for Nios II Toolchain */ + +#include "alt_types.h" +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +#ifndef SYSTEM_BUS_WIDTH +#error SYSTEM_BUS_WIDTH undefined +#endif + +/* Dynamic bus access functions */ + +#define __IO_CALC_ADDRESS_DYNAMIC(BASE, OFFSET) \ + ((void *)(((alt_u8*)BASE) + (OFFSET))) + +#define IORD_32DIRECT(BASE, OFFSET) \ + __builtin_ldwio (__IO_CALC_ADDRESS_DYNAMIC ((BASE), (OFFSET))) +#define IORD_16DIRECT(BASE, OFFSET) \ + __builtin_ldhuio (__IO_CALC_ADDRESS_DYNAMIC ((BASE), (OFFSET))) +#define IORD_8DIRECT(BASE, OFFSET) \ + __builtin_ldbuio (__IO_CALC_ADDRESS_DYNAMIC ((BASE), (OFFSET))) + +#define IOWR_32DIRECT(BASE, OFFSET, DATA) \ + __builtin_stwio (__IO_CALC_ADDRESS_DYNAMIC ((BASE), (OFFSET)), (DATA)) +#define IOWR_16DIRECT(BASE, OFFSET, DATA) \ + __builtin_sthio (__IO_CALC_ADDRESS_DYNAMIC ((BASE), (OFFSET)), (DATA)) +#define IOWR_8DIRECT(BASE, OFFSET, DATA) \ + __builtin_stbio (__IO_CALC_ADDRESS_DYNAMIC ((BASE), (OFFSET)), (DATA)) + +/* Native bus access functions */ + +#define __IO_CALC_ADDRESS_NATIVE(BASE, REGNUM) \ + ((void *)(((alt_u8*)BASE) + ((REGNUM) * (SYSTEM_BUS_WIDTH/8)))) + +#define IORD(BASE, REGNUM) \ + __builtin_ldwio (__IO_CALC_ADDRESS_NATIVE ((BASE), (REGNUM))) +#define IOWR(BASE, REGNUM, DATA) \ + __builtin_stwio (__IO_CALC_ADDRESS_NATIVE ((BASE), (REGNUM)), (DATA)) + +#ifdef __cplusplus +} +#endif + +#endif /* __IO_H__ */ diff --git a/software/qsys_tutorial_switchs18_bsp/HAL/inc/nios2.h b/software/qsys_tutorial_switchs18_bsp/HAL/inc/nios2.h new file mode 100644 index 0000000..72cefba --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/HAL/inc/nios2.h @@ -0,0 +1,230 @@ +#ifndef __NIOS2_H__ +#define __NIOS2_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2008 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/* + * This header provides processor specific macros for accessing the Nios2 + * control registers. + */ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * Macros for accessing selected processor registers + */ + +#define NIOS2_READ_ET(et) \ + do { __asm ("mov %0, et" : "=r" (et) ); } while (0) + +#define NIOS2_WRITE_ET(et) \ + do { __asm volatile ("mov et, %z0" : : "rM" (et)); } while (0) + +#define NIOS2_READ_SP(sp) \ + do { __asm ("mov %0, sp" : "=r" (sp) ); } while (0) + +/* + * Macros for useful processor instructions + */ + +#define NIOS2_BREAK() \ + do { __asm volatile ("break"); } while (0) + +#define NIOS2_REPORT_STACK_OVERFLOW() \ + do { __asm volatile("break 3"); } while (0) + +/* + * Macros for accessing the control registers. + */ + +#define NIOS2_READ_STATUS(dest) \ + do { dest = __builtin_rdctl(0); } while (0) + +#define NIOS2_WRITE_STATUS(src) \ + do { __builtin_wrctl(0, src); } while (0) + +#define NIOS2_READ_ESTATUS(dest) \ + do { dest = __builtin_rdctl(1); } while (0) + +#define NIOS2_READ_BSTATUS(dest) \ + do { dest = __builtin_rdctl(2); } while (0) + +#define NIOS2_READ_IENABLE(dest) \ + do { dest = __builtin_rdctl(3); } while (0) + +#define NIOS2_WRITE_IENABLE(src) \ + do { __builtin_wrctl(3, src); } while (0) + +#define NIOS2_READ_IPENDING(dest) \ + do { dest = __builtin_rdctl(4); } while (0) + +#define NIOS2_READ_CPUID(dest) \ + do { dest = __builtin_rdctl(5); } while (0) + + +/* + * Macros for accessing extra exception registers. These + * are always enabled wit the MPU or MMU, and optionally + * with other advanced exception types/ + */ +#define NIOS2_READ_EXCEPTION(dest) \ + do { dest = __builtin_rdctl(7); } while (0) + +#define NIOS2_READ_BADADDR(dest) \ + do { dest = __builtin_rdctl(12); } while (0) + + +/* + * Macros for accessing control registers for MPU + * operation. These should not be used unless the + * MPU is enabled. + * + * The config register may be augmented for future + * enhancements. For now, only MPU support is provided. + */ +/* Config register */ +#define NIOS2_WRITE_CONFIG(src) \ + do { __builtin_wrctl(13, src); } while (0) + +#define NIOS2_READ_CONFIG(dest) \ + do { dest = __builtin_rdctl(13); } while (0) + +/* MPU Base Address Register */ +#define NIOS2_WRITE_MPUBASE(src) \ + do { __builtin_wrctl(14, src); } while (0) + +#define NIOS2_READ_MPUBASE(dest) \ + do { dest = __builtin_rdctl(14); } while (0) + +/* MPU Access Register */ +#define NIOS2_WRITE_MPUACC(src) \ + do { __builtin_wrctl(15, src); } while (0) + +#define NIOS2_READ_MPUACC(dest) \ + do { dest = __builtin_rdctl(15); } while (0) + + +/* + * Nios II control registers that are always present + */ +#define NIOS2_STATUS status +#define NIOS2_ESTATUS estatus +#define NIOS2_BSTATUS bstatus +#define NIOS2_IENABLE ienable +#define NIOS2_IPENDING ipending +#define NIOS2_CPUID cpuid + +/* + * STATUS, BSTATUS, ESTATUS, and SSTATUS fields. + * The presence of fields is a function of the Nios II configuration. + */ +#define NIOS2_STATUS_PIE_MSK (0x00000001) +#define NIOS2_STATUS_PIE_OFST (0) +#define NIOS2_STATUS_U_MSK (0x00000002) +#define NIOS2_STATUS_U_OFST (1) +#define NIOS2_STATUS_EH_MSK (0x00000004) +#define NIOS2_STATUS_EH_OFST (2) +#define NIOS2_STATUS_IH_MSK (0x00000008) +#define NIOS2_STATUS_IH_OFST (3) +#define NIOS2_STATUS_IL_MSK (0x000003f0) +#define NIOS2_STATUS_IL_OFST (4) +#define NIOS2_STATUS_CRS_MSK (0x0000fc00) +#define NIOS2_STATUS_CRS_OFST (10) +#define NIOS2_STATUS_PRS_MSK (0x003f0000) +#define NIOS2_STATUS_PRS_OFST (16) +#define NIOS2_STATUS_NMI_MSK (0x00400000) +#define NIOS2_STATUS_NMI_OFST (22) +#define NIOS2_STATUS_RSIE_MSK (0x00800000) +#define NIOS2_STATUS_RSIE_OFST (23) +#define NIOS2_STATUS_SRS_MSK (0x80000000) +#define NIOS2_STATUS_SRS_OFST (31) + +/* + * Bit masks & offsets available with extra exceptions support + */ + +/* Exception register */ +#define NIOS2_EXCEPTION_REG_CAUSE_MASK (0x0000007c) +#define NIOS2_EXCEPTION_REG_CAUSE_OFST (2) + +/* + * Bit masks & offsets for MPU support + * + * All bit-masks are expressed relative to the position + * of the data with a register. To read data that is LSB- + * aligned, the register read data should be masked, then + * right-shifted by the designated "OFST" macro value. The + * opposite should be used for register writes when starting + * with LSB-aligned data. + */ + +/* Config register */ +#define NIOS2_CONFIG_REG_PE_MASK (0x00000001) +#define NIOS2_CONFIG_REG_PE_OFST (0) +#define NIOS2_CONFIG_REG_ANI_MASK (0x00000002) +#define NIOS2_CONFIG_REG_ANI_OFST (1) + +/* MPU Base Address Register */ +#define NIOS2_MPUBASE_D_MASK (0x00000001) +#define NIOS2_MPUBASE_D_OFST (0) +#define NIOS2_MPUBASE_INDEX_MASK (0x0000003e) +#define NIOS2_MPUBASE_INDEX_OFST (1) +#define NIOS2_MPUBASE_BASE_ADDR_MASK (0xffffffc0) +#define NIOS2_MPUBASE_BASE_ADDR_OFST (6) + +/* MPU Access Register */ +#define NIOS2_MPUACC_LIMIT_MASK (0xffffffc0) +#define NIOS2_MPUACC_LIMIT_OFST (6) +#define NIOS2_MPUACC_MASK_MASK (0xffffffc0) +#define NIOS2_MPUACC_MASK_OFST (6) +#define NIOS2_MPUACC_C_MASK (0x00000020) +#define NIOS2_MPUACC_C_OFST (5) +#define NIOS2_MPUACC_PERM_MASK (0x0000001c) +#define NIOS2_MPUACC_PERM_OFST (2) +#define NIOS2_MPUACC_RD_MASK (0x00000002) +#define NIOS2_MPUACC_RD_OFST (1) +#define NIOS2_MPUACC_WR_MASK (0x00000001) +#define NIOS2_MPUACC_WR_OFST (0) + +/* + * Number of available IRQs in internal interrupt controller. + */ +#define NIOS2_NIRQ 32 + + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __NIOS2_H__ */ diff --git a/software/qsys_tutorial_switchs18_bsp/HAL/inc/os/alt_flag.h b/software/qsys_tutorial_switchs18_bsp/HAL/inc/os/alt_flag.h new file mode 100644 index 0000000..b9b4605 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/HAL/inc/os/alt_flag.h @@ -0,0 +1,98 @@ +#ifndef __ALT_FLAG_H__ +#define __ALT_FLAG_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +/* + * This header provides macro definitions that can be used to create and use + * uc/OS-II style event flags. These macros can be used in both a uC/OS-II based + * environment, and a single threaded HAL based environment. + * + * The motivation for these macros is to allow code to be developed which is + * thread safe under uC/OS-II, but incurs no additional overhead when used in a + * single threaded HAL environment. + * + * In the case of a single threaded HAL environment, they compile to + * "do nothing" directives, which ensures they do not contribute to the final + * executable. + * + * The following macros are available: + * + * ALT_FLAG_GRP - Create a flag group instance. + * ALT_EXTERN_FLAG_GRP - Create a reference to an external flag group instance. + * ALT_STATIC_FLAG_GRP - Create a static flag group instance. + * ALT_FLAG_CREATE - Initialise a flag group. + * ALT_FLAG_PEND - Pend on a flag group. + * ALT_FLAG_POST - Set a flag condition. + + * + * Input arguments and return codes are all consistant with the equivalent + * uC/OS-II function. + * + * It's important to be careful in the use of the macros: ALT_FLAG_GRP, + * ALT_EXTERN_FLAG_GRP, and ALT_STATIC_FLAG_GRP. In these three cases the + * semi-colon is included in the macro definition; so, for example, you should + * use: + * + * ALT_FLAG_GRP(mygroup) + * + * not: + * + * ALT_FLAG_GRP(mygroup); + * + * The inclusion of the semi-colon has been necessary to ensure the macros can + * compile with no warnings when used in a single threaded HAL environment. + * + */ + +#include "priv/alt_no_error.h" + +#define ALT_FLAG_GRP(group) +#define ALT_EXTERN_FLAG_GRP(group) +#define ALT_STATIC_FLAG_GRP(group) + +#define ALT_FLAG_CREATE(group, flags) alt_no_error () +#define ALT_FLAG_PEND(group, flags, wait_type, timeout) alt_no_error () +#define ALT_FLAG_POST(group, flags, opt) alt_no_error () + +#ifndef ALT_SINGLE_THREADED +#define ALT_SINGLE_THREADED +#endif + +#endif /* __ALT_FLAG_H__ */ diff --git a/software/qsys_tutorial_switchs18_bsp/HAL/inc/os/alt_hooks.h b/software/qsys_tutorial_switchs18_bsp/HAL/inc/os/alt_hooks.h new file mode 100644 index 0000000..9054e3f --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/HAL/inc/os/alt_hooks.h @@ -0,0 +1,61 @@ +#ifndef __ALT_HOOKS_H__ +#define __ALT_HOOKS_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +/* + * This header provides "do-nothing" macro definitions for operating system + * hooks within the HAL. The O/S component can override these to provide it's + * own implementation. + */ + +#define ALT_OS_TIME_TICK() while(0) +#define ALT_OS_INIT() while(0) +#define ALT_OS_STOP() while(0) + +/* Call from assembly code */ +#define ALT_OS_INT_ENTER_ASM +#define ALT_OS_INT_EXIT_ASM + +/* Call from C code */ +#define ALT_OS_INT_ENTER() while(0) +#define ALT_OS_INT_EXIT() while(0) + + +#endif /* __ALT_HOOKS_H__ */ diff --git a/software/qsys_tutorial_switchs18_bsp/HAL/inc/os/alt_sem.h b/software/qsys_tutorial_switchs18_bsp/HAL/inc/os/alt_sem.h new file mode 100644 index 0000000..753943e --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/HAL/inc/os/alt_sem.h @@ -0,0 +1,96 @@ +#ifndef __ALT_SEM_H__ +#define __ALT_SEM_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +/* + * This header provides macro definitions that can be used to create and use + * semaphores. These macros can be used in both a uC/OS-II based environment, + * and a single threaded HAL based environment. + * + * The motivation for these macros is to allow code to be developed which is + * thread safe under uC/OS-II, but incurs no additional overhead when used in a + * single threaded HAL environment. + * + * In the case of a single threaded HAL environment, they compile to + * "do nothing" directives, which ensures they do not contribute to the final + * executable. + * + * The following macros are available: + * + * ALT_SEM - Create a semaphore instance. + * ALT_EXTERN_SEM - Create a reference to an external semaphore instance. + * ALT_STATIC_SEM - Create a static semaphore instance. + * ALT_SEM_CREATE - Initialise a semaphore. + * ALT_SEM_PEND - Pend on a semaphore. + * ALT_SEM_POST - Increment a semaphore. + * + * Input arguments and return codes are all consistant with the equivalent + * uC/OS-II function. + * + * It's important to be careful in the use of the macros: ALT_SEM, + * ALT_EXTERN_SEM, and ALT_STATIC_SEM. In these three cases the semi-colon is + * included in the macro definition; so, for example, you should use: + * + * ALT_SEM(mysem) + * + * not: + * + * ALT_SEM(mysem); + * + * The inclusion of the semi-colon has been necessary to ensure the macros can + * compile with no warnings when used in a single threaded HAL environment. + * + */ + +#include "priv/alt_no_error.h" + +#define ALT_SEM(sem) +#define ALT_EXTERN_SEM(sem) +#define ALT_STATIC_SEM(sem) + +#define ALT_SEM_CREATE(sem, value) alt_no_error () +#define ALT_SEM_PEND(sem, timeout) alt_no_error () +#define ALT_SEM_POST(sem) alt_no_error () + +#ifndef ALT_SINGLE_THREADED +#define ALT_SINGLE_THREADED +#endif + +#endif /* __ALT_SEM_H__ */ diff --git a/software/qsys_tutorial_switchs18_bsp/HAL/inc/os/alt_syscall.h b/software/qsys_tutorial_switchs18_bsp/HAL/inc/os/alt_syscall.h new file mode 100644 index 0000000..507c6aa --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/HAL/inc/os/alt_syscall.h @@ -0,0 +1,75 @@ +#ifndef __ALT_SYSCALL_H__ +#define __ALT_SYSCALL_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/* + * The macros defined in this file are used to provide the function names used + * for the HAL 'UNIX style' interface, e.g. read(), write() etc. + * + * Operating systems which are ported to the HAL can provide their own + * version of this file, which will be used in preference. This allows + * the operating system to provide it's own implementation of the top level + * system calls, while retaining the HAL functions under a different name, + * for example, alt_read(), alt_write() etc. + */ + +#define ALT_CLOSE close +#define ALT_ENVIRON environ +#define ALT_EXECVE execve +#define ALT_EXIT _exit +#define ALT_FCNTL fcntl +#define ALT_FORK fork +#define ALT_FSTAT fstat +#define ALT_GETPID getpid +#define ALT_GETTIMEOFDAY gettimeofday +#define ALT_IOCTL ioctl +#define ALT_ISATTY isatty +#define ALT_KILL kill +#define ALT_LINK link +#define ALT_LSEEK lseek +#define ALT_OPEN open +#define ALT_READ read +#define ALT_RENAME _rename +#define ALT_SBRK sbrk +#define ALT_SETTIMEOFDAY settimeofday +#define ALT_STAT stat +#define ALT_UNLINK unlink +#define ALT_USLEEP usleep +#define ALT_WAIT wait +#define ALT_WRITE write +#define ALT_TIMES times + +/* + * + */ + +#endif /* __ALT_SYSCALL_H__ */ diff --git a/software/qsys_tutorial_switchs18_bsp/HAL/inc/priv/alt_alarm.h b/software/qsys_tutorial_switchs18_bsp/HAL/inc/priv/alt_alarm.h new file mode 100644 index 0000000..45d6a0e --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/HAL/inc/priv/alt_alarm.h @@ -0,0 +1,101 @@ +#ifndef __ALT_PRIV_ALARM_H__ +#define __ALT_PRIV_ALARM_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#include "alt_types.h" + +/* + * This header provides the internal defenitions required by the public + * interface alt_alarm.h. These variables and structures are not guaranteed to + * exist in future implementations of the HAL. + */ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * "alt_alarm_s" is a structure type used to maintain lists of alarm callback + * functions. + */ + +struct alt_alarm_s +{ + alt_llist llist; /* linked list */ + alt_u32 time; /* time in system ticks of the callback */ + alt_u32 (*callback) (void* context); /* callback function. The return + * value is the period for the next callback; where + * zero indicates that the alarm should be removed + * from the list. + */ + alt_u8 rollover; /* set when desired alarm time + current time causes + overflow, to prevent premature alarm */ + void* context; /* Argument for the callback */ +}; + +/* + * "_alt_tick_rate" is a global variable used to store the system clock rate + * in ticks per second. This is initialised to zero, which coresponds to there + * being no system clock available. + * + * It is then set to it's final value by the system clock driver through a call + * to alt_sysclk_init(). + */ + +extern alt_u32 _alt_tick_rate; + +/* + * "_alt_nticks" is a global variable which records the elapsed number of + * system clock ticks since the last call to settimeofday() or since reset if + * settimeofday() has not been called. + */ + +extern volatile alt_u32 _alt_nticks; + +/* The list of registered alarms. */ + +extern alt_llist alt_alarm_list; + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_PRIV_ALARM_H__ */ diff --git a/software/qsys_tutorial_switchs18_bsp/HAL/inc/priv/alt_busy_sleep.h b/software/qsys_tutorial_switchs18_bsp/HAL/inc/priv/alt_busy_sleep.h new file mode 100644 index 0000000..b1af849 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/HAL/inc/priv/alt_busy_sleep.h @@ -0,0 +1,35 @@ +#ifndef __ALT_BUSY_SLEEP_H +#define __ALT_BUSY_SLEEP_H + +/* + * Copyright (c) 2003 Altera Corporation, San Jose, California, USA. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ + +/* + * The function alt_busy_sleep provides a busy loop implementation of usleep. + * This is used to provide usleep for the standalone HAL, or when the timer is + * unavailable in uC/OS-II. + */ + +extern unsigned int alt_busy_sleep (unsigned int us); + +#endif /* __ALT_BUSY_SLEEP_H */ diff --git a/software/qsys_tutorial_switchs18_bsp/HAL/inc/priv/alt_dev_llist.h b/software/qsys_tutorial_switchs18_bsp/HAL/inc/priv/alt_dev_llist.h new file mode 100644 index 0000000..451b063 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/HAL/inc/priv/alt_dev_llist.h @@ -0,0 +1,77 @@ +#ifndef __ALT_DEV_LLIST_H__ +#define __ALT_DEV_LLIST_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#include "sys/alt_llist.h" +#include "alt_types.h" + +/* + * This header provides the internal defenitions required to control file + * access. These variables and functions are not guaranteed to exist in + * future implementations of the HAL. + */ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * The alt_dev_llist is an internal structure used to form a common base + * class for all device types. The use of this structure allows common code + * to be used to manipulate the various device lists. + */ + +typedef struct { + alt_llist llist; + const char* name; +} alt_dev_llist; + +/* + * + */ + +extern int alt_dev_llist_insert (alt_dev_llist* dev, alt_llist* list); + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_DEV_LLIST_H__ */ diff --git a/software/qsys_tutorial_switchs18_bsp/HAL/inc/priv/alt_exception_handler_registry.h b/software/qsys_tutorial_switchs18_bsp/HAL/inc/priv/alt_exception_handler_registry.h new file mode 100644 index 0000000..c6905fa --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/HAL/inc/priv/alt_exception_handler_registry.h @@ -0,0 +1,39 @@ +#ifndef __ALT_EXCEPTION_HANDLER_REGISTRY_H__ +#define __ALT_EXCEPTION_HANDLER_REGISTRY_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2008 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ +#include "sys/alt_exceptions.h" + +/* Function pointer to exception callback routine */ +extern alt_exception_result (*alt_instruction_exception_handler) + (alt_exception_cause, alt_u32, alt_u32); + +#endif /* __ALT_EXCEPTION_HANDLER_REGISTRY_H__ */ diff --git a/software/qsys_tutorial_switchs18_bsp/HAL/inc/priv/alt_file.h b/software/qsys_tutorial_switchs18_bsp/HAL/inc/priv/alt_file.h new file mode 100644 index 0000000..2c3e843 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/HAL/inc/priv/alt_file.h @@ -0,0 +1,179 @@ +#ifndef __ALT_FILE_H__ +#define __ALT_FILE_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#include "sys/alt_dev.h" +#include "sys/alt_llist.h" +#include "os/alt_sem.h" + +#include "alt_types.h" + +/* + * This header provides the internal defenitions required to control file + * access. These variables and functions are not guaranteed to exist in + * future implementations of the HAL. + */ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * The function alt_find_dev() is used to search the device list "list" to + * locate a device named "name". If a match is found, then a pointer to the + * device is returned, otherwise NULL is returned. + */ + +extern alt_dev* alt_find_dev (const char* name, alt_llist* list); + +/* + * alt_find_file() is used to search the list of registered file systems to + * find the filesystem that the file named "name" belongs to. If a match is + * found, then a pointer to the filesystems alt_dev structure is returned, + * otherwise NULL is returned. + * + * Note that a match does not indicate that the file exists, only that a + * filesystem exists that is registered for a partition that could contain + * the file. The filesystems open() function would need to be called in order + * to determine if the file exists. + */ + +extern alt_dev* alt_find_file (const char* name); + +/* + * alt_get_fd() is used to allocate a file descriptor for the device or + * filesystem "dev". A negative return value indicates an error, otherwise the + * return value is the index of the file descriptor within the file descriptor + * pool. + */ + +extern int alt_get_fd (alt_dev* dev); + +/* + * alt_release_fd() is called to free the file descriptor with index "fd". + */ + +extern void alt_release_fd (int fd); + +/* + * alt_fd_lock() is called by ioctl() to mark the file descriptor "fd" as + * being open for exclusive access. Subsequent calls to open() for the device + * associated with "fd" will fail. A device is unlocked by either calling + * close() for "fd", or by an alternate call to ioctl() (see ioctl.c for + * details). + */ + +extern int alt_fd_lock (alt_fd* fd); + +/* + * alt_fd_unlock() is called by ioctl() to unlock a descriptor previously + * locked by a call to alt_fd_lock(). + */ + +extern int alt_fd_unlock (alt_fd* fd); + +/* + * "alt_fd_list" is the pool of file descriptors. + */ + +extern alt_fd alt_fd_list[]; + +/* + * flags used by alt_fd. + * + * ALT_FD_EXCL is used to mark a file descriptor as locked for exclusive + * access, i.e. further calls to open() for the associated device should + * fail. + * + * ALT_FD_DEV marks a dile descriptor as belonging to a device as oposed to a + * filesystem. + */ + +#define ALT_FD_EXCL 0x80000000 +#define ALT_FD_DEV 0x40000000 + +#define ALT_FD_FLAGS_MASK (ALT_FD_EXCL | ALT_FD_DEV) + +/* + * "alt_dev_list" is the head of the linked list of registered devices. + */ + +extern alt_llist alt_dev_list; + +/* + * "alt_fs_list" is the head of the linked list of registered filesystems. + */ + +extern alt_llist alt_fs_list; + +/* + * "alt_fd_list_lock" is a semaphore used to ensure that access to the pool + * of file descriptors is thread safe. + */ + +ALT_EXTERN_SEM(alt_fd_list_lock) + +/* + * "alt_max_fd" is a 'high water mark'. It indicates the highest file + * descriptor allocated. Use of this can save searching the entire pool + * for active file descriptors, which helps avoid contention on access + * to the file descriptor pool. + */ + +extern alt_32 alt_max_fd; + +/* + * alt_io_redirect() is called at startup to redirect stdout, stdin, and + * stderr to the devices named in the input arguments. By default these streams + * are directed at /dev/null, and are then redirected using this function once + * all of the devices have been registered within the system. + */ + +extern void alt_io_redirect(const char* stdout_dev, + const char* stdin_dev, + const char* stderr_dev); + + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_FILE_H__ */ diff --git a/software/qsys_tutorial_switchs18_bsp/HAL/inc/priv/alt_iic_isr_register.h b/software/qsys_tutorial_switchs18_bsp/HAL/inc/priv/alt_iic_isr_register.h new file mode 100644 index 0000000..a0cb01c --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/HAL/inc/priv/alt_iic_isr_register.h @@ -0,0 +1,39 @@ +#ifndef __ALT_IIC_ISR_REGISTER_H_ +#define __ALT_IIC_ISR_REGISTER_H_ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2009 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ +#include "alt_types.h" +#include "sys/alt_irq.h" + +extern int alt_iic_isr_register(alt_u32 ic_id, alt_u32 irq, alt_isr_func isr, + void *isr_context, void *flags); + +#endif /* __ALT_IIC_ISR_REGISTER_H_ */ diff --git a/software/qsys_tutorial_switchs18_bsp/HAL/inc/priv/alt_irq_table.h b/software/qsys_tutorial_switchs18_bsp/HAL/inc/priv/alt_irq_table.h new file mode 100644 index 0000000..694ef06 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/HAL/inc/priv/alt_irq_table.h @@ -0,0 +1,59 @@ +#ifndef __ALT_IRQ_TABLE_H__ +#define __ALT_IRQ_TABLE_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2009 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +/* + * Definition of a table describing each interrupt handler. The index into + * the array is the interrupt id associated with the handler. + * + * When an interrupt occurs, the associated handler is called with + * the argument stored in the context member. + * + * The table is physically created in alt_irq_handler.c + */ +extern struct ALT_IRQ_HANDLER +{ +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT + void (*handler)(void*); +#else + void (*handler)(void*, alt_u32); +#endif + void *context; +} alt_irq[ALT_NIRQ]; + +#endif diff --git a/software/qsys_tutorial_switchs18_bsp/HAL/inc/priv/alt_legacy_irq.h b/software/qsys_tutorial_switchs18_bsp/HAL/inc/priv/alt_legacy_irq.h new file mode 100644 index 0000000..c7aec02 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/HAL/inc/priv/alt_legacy_irq.h @@ -0,0 +1,158 @@ +#ifndef __ALT_LEGACY_IRQ_H__ +#define __ALT_LEGACY_IRQ_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2009 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/* + * This file provides prototypes and inline implementations of certain routines + * used by the legacy interrupt API. Do not include this in your driver or + * application source files, use "sys/alt_irq.h" instead to access the proper + * public API. + */ + +#include +#include "system.h" + +#ifndef NIOS2_EIC_PRESENT + +#include "nios2.h" +#include "alt_types.h" + +#include "sys/alt_irq.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * alt_irq_register() can be used to register an interrupt handler. If the + * function is succesful, then the requested interrupt will be enabled upon + * return. + */ +extern int alt_irq_register (alt_u32 id, + void* context, + alt_isr_func handler); + +/* + * alt_irq_disable() disables the individual interrupt indicated by "id". + */ +static ALT_INLINE int ALT_ALWAYS_INLINE alt_irq_disable (alt_u32 id) +{ + alt_irq_context status; + extern volatile alt_u32 alt_irq_active; + + status = alt_irq_disable_all (); + + alt_irq_active &= ~(1 << id); + NIOS2_WRITE_IENABLE (alt_irq_active); + + alt_irq_enable_all(status); + + return 0; +} + +/* + * alt_irq_enable() enables the individual interrupt indicated by "id". + */ +static ALT_INLINE int ALT_ALWAYS_INLINE alt_irq_enable (alt_u32 id) +{ + alt_irq_context status; + extern volatile alt_u32 alt_irq_active; + + status = alt_irq_disable_all (); + + alt_irq_active |= (1 << id); + NIOS2_WRITE_IENABLE (alt_irq_active); + + alt_irq_enable_all(status); + + return 0; +} + +#ifndef ALT_EXCEPTION_STACK +/* + * alt_irq_initerruptable() should only be called from within an ISR. It is used + * to allow higer priority interrupts to interrupt the current ISR. The input + * argument, "priority", is the priority, i.e. interrupt number of the current + * interrupt. + * + * If this function is called, then the ISR is required to make a call to + * alt_irq_non_interruptible() before returning. The input argument to + * alt_irq_non_interruptible() is the return value from alt_irq_interruptible(). + * + * Care should be taken when using this pair of functions, since they increasing + * the system overhead associated with interrupt handling. + * + * If you are using an exception stack then nested interrupts won't work, so + * these functions are not available in that case. + */ +static ALT_INLINE alt_u32 ALT_ALWAYS_INLINE alt_irq_interruptible (alt_u32 priority) +{ + extern volatile alt_u32 alt_priority_mask; + extern volatile alt_u32 alt_irq_active; + + alt_u32 old_priority; + + old_priority = alt_priority_mask; + alt_priority_mask = (1 << priority) - 1; + + NIOS2_WRITE_IENABLE (alt_irq_active & alt_priority_mask); + + NIOS2_WRITE_STATUS (1); + + return old_priority; +} + +/* + * See Comments above for alt_irq_interruptible() for an explanation of the use of this + * function. + */ +static ALT_INLINE void ALT_ALWAYS_INLINE alt_irq_non_interruptible (alt_u32 mask) +{ + extern volatile alt_u32 alt_priority_mask; + extern volatile alt_u32 alt_irq_active; + + NIOS2_WRITE_STATUS (0); + + alt_priority_mask = mask; + + NIOS2_WRITE_IENABLE (mask & alt_irq_active); +} +#endif /* ALT_EXCEPTION_STACK */ + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* NIOS2_EIC_PRESENT */ + +#endif /* __ALT_LEGACY_IRQ_H__ */ diff --git a/software/qsys_tutorial_switchs18_bsp/HAL/inc/priv/alt_no_error.h b/software/qsys_tutorial_switchs18_bsp/HAL/inc/priv/alt_no_error.h new file mode 100644 index 0000000..6143fc9 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/HAL/inc/priv/alt_no_error.h @@ -0,0 +1,77 @@ +#ifndef __ALT_NO_ERROR_H__ +#define __ALT_NO_ERROR_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#include "alt_types.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * alt_no_error() is a dummy function used by alt_sem.h and alt_flag.h. It + * substitutes for functions that have a return code by creating a function + * that always returns zero. + * + * This may seem a little obscure, but what happens is that the compiler can + * then optomise away the call to this function, and any code written which + * handles the error path (i.e. non zero return values). + * + * This allows code to be written which correctly use the uC/OS-II semaphore + * and flag utilities, without the use of those utilities impacting on + * excutables built for a single threaded HAL environment. + * + * This function is considered to be part of the internal implementation of + * the HAL, and should not be called directly by application code or device + * drivers. It is not guaranteed to be preserved in future versions of the + * HAL. + */ + +static ALT_INLINE int ALT_ALWAYS_INLINE alt_no_error (void) +{ + return 0; +} + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_NO_ERROR_H__ */ diff --git a/software/qsys_tutorial_switchs18_bsp/HAL/inc/priv/nios2_gmon_data.h b/software/qsys_tutorial_switchs18_bsp/HAL/inc/priv/nios2_gmon_data.h new file mode 100644 index 0000000..3f43f12 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/HAL/inc/priv/nios2_gmon_data.h @@ -0,0 +1,47 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ +#ifndef NIOS2_GMON_DATA_H +#define NIOS2_GMON_DATA_H + +#define GMON_DATA_SIG 0 +#define GMON_DATA_WORDS 1 +#define GMON_DATA_PROFILE_DATA 2 +#define GMON_DATA_PROFILE_LOWPC 3 +#define GMON_DATA_PROFILE_HIGHPC 4 +#define GMON_DATA_PROFILE_BUCKET 5 +#define GMON_DATA_PROFILE_RATE 6 +#define GMON_DATA_MCOUNT_START 7 +#define GMON_DATA_MCOUNT_LIMIT 8 + +#define GMON_DATA_SIZE 9 + +extern unsigned int alt_gmon_data[GMON_DATA_SIZE]; + +#endif diff --git a/software/qsys_tutorial_switchs18_bsp/HAL/inc/sys/alt_alarm.h b/software/qsys_tutorial_switchs18_bsp/HAL/inc/sys/alt_alarm.h new file mode 100644 index 0000000..68a2f5d --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/HAL/inc/sys/alt_alarm.h @@ -0,0 +1,126 @@ +#ifndef __ALT_ALARM_H__ +#define __ALT_ALARM_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#include "alt_llist.h" +#include "alt_types.h" + +#include "priv/alt_alarm.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * "alt_alarm" is a structure type used by applications to register an alarm + * callback function. An instance of this type must be passed as an input + * argument to alt_alarm_start(). The user is not responsible for initialising + * the contents of the instance. This is done by alt_alarm_start(). + */ + +typedef struct alt_alarm_s alt_alarm; + +/* + * alt_alarm_start() can be called by an application/driver in order to register + * a function for periodic callback at the system clock frequency. Be aware that + * this callback is likely to occur in interrupt context. + */ + +extern int alt_alarm_start (alt_alarm* the_alarm, + alt_u32 nticks, + alt_u32 (*callback) (void* context), + void* context); + +/* + * alt_alarm_stop() is used to unregister a callback. Alternatively the callback + * can return zero to unregister. + */ + +extern void alt_alarm_stop (alt_alarm* the_alarm); + +/* + * Obtain the system clock rate in ticks/s. + */ + +static ALT_INLINE alt_u32 ALT_ALWAYS_INLINE alt_ticks_per_second (void) +{ + return _alt_tick_rate; +} + +/* + * alt_sysclk_init() is intended to be only used by the system clock driver + * in order to initialise the value of the clock frequency. + */ + +static ALT_INLINE int ALT_ALWAYS_INLINE alt_sysclk_init (alt_u32 nticks) +{ + if (! _alt_tick_rate) + { + _alt_tick_rate = nticks; + return 0; + } + else + { + return -1; + } +} + +/* + * alt_nticks() returns the elapsed number of system clock ticks since reset. + */ + +static ALT_INLINE alt_u32 ALT_ALWAYS_INLINE alt_nticks (void) +{ + return _alt_nticks; +} + +/* + * alt_tick() should only be called by the system clock driver. This is used + * to notify the system that the system timer period has expired. + */ + +extern void alt_tick (void); + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_ALARM_H__ */ diff --git a/software/qsys_tutorial_switchs18_bsp/HAL/inc/sys/alt_cache.h b/software/qsys_tutorial_switchs18_bsp/HAL/inc/sys/alt_cache.h new file mode 100644 index 0000000..c4d8db9 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/HAL/inc/sys/alt_cache.h @@ -0,0 +1,117 @@ +#ifndef __ALT_CACHE_H__ +#define __ALT_CACHE_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003, 2007 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include + +#include "alt_types.h" + +/* + * alt_cache.h defines the processor specific functions for manipulating the + * cache. + */ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * alt_icache_flush() is called to flush the instruction cache for a memory + * region of length "len" bytes, starting at address "start". + */ + +extern void alt_icache_flush (void* start, alt_u32 len); + +/* + * alt_dcache_flush() is called to flush the data cache for a memory + * region of length "len" bytes, starting at address "start". + * Any dirty lines in the data cache are written back to memory. + */ + +extern void alt_dcache_flush (void* start, alt_u32 len); + +/* + * alt_dcache_flush() is called to flush the data cache for a memory + * region of length "len" bytes, starting at address "start". + * Any dirty lines in the data cache are NOT written back to memory. + */ + +extern void alt_dcache_flush_no_writeback (void* start, alt_u32 len); + +/* + * Flush the entire instruction cache. + */ + +extern void alt_icache_flush_all (void); + +/* + * Flush the entire data cache. + */ + +extern void alt_dcache_flush_all (void); + +/* + * Allocate a block of uncached memory. + */ + +extern volatile void* alt_uncached_malloc (size_t size); + +/* + * Free a block of uncached memory. + */ + +extern void alt_uncached_free (volatile void* ptr); + +/* + * Convert a pointer to a block of cached memory, into a block of + * uncached memory. + */ + +extern volatile void* alt_remap_uncached (void* ptr, alt_u32 len); + +/* + * Convert a pointer to a block of uncached memory, into a block of + * cached memory. + */ + +extern void* alt_remap_cached (volatile void* ptr, alt_u32 len); + +/* + * + */ + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_CACHE_H__ */ diff --git a/software/qsys_tutorial_switchs18_bsp/HAL/inc/sys/alt_debug.h b/software/qsys_tutorial_switchs18_bsp/HAL/inc/sys/alt_debug.h new file mode 100644 index 0000000..d9f9599 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/HAL/inc/sys/alt_debug.h @@ -0,0 +1,45 @@ +#ifndef __ALT_DEBUG_H__ +#define __ALT_DEBUG_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/* + * The ALT_DEVUG_ASSERT macro can be used to generate a debugger break + * from within software. The break is generated if "condition" evaluates to + * false. + */ + +#define ALT_DEBUG_ASSERT(condition) if (!condition) \ +{ \ + __asm__ volatile ("break"); \ +} + +#endif /* __ALT_DEBUG_H__ */ diff --git a/software/qsys_tutorial_switchs18_bsp/HAL/inc/sys/alt_dev.h b/software/qsys_tutorial_switchs18_bsp/HAL/inc/sys/alt_dev.h new file mode 100644 index 0000000..66c5e41 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/HAL/inc/sys/alt_dev.h @@ -0,0 +1,115 @@ +#ifndef __ALT_DEV_H__ +#define __ALT_DEV_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#include "system.h" +#include "sys/alt_llist.h" +#include "priv/alt_dev_llist.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * The value ALT_IRQ_NOT_CONNECTED is used to represent an unconnected + * interrupt line. It cannot evaluate to a valid interrupt number. + */ + +#define ALT_IRQ_NOT_CONNECTED (-1) + +typedef struct alt_dev_s alt_dev; + +struct stat; + +/* + * The file descriptor structure definition. + */ + +typedef struct alt_fd_s +{ + alt_dev* dev; + alt_u8* priv; + int fd_flags; +} alt_fd; + +/* + * The device structure definition. + */ + +struct alt_dev_s { + alt_llist llist; /* for internal use */ + const char* name; + int (*open) (alt_fd* fd, const char* name, int flags, int mode); + int (*close) (alt_fd* fd); + int (*read) (alt_fd* fd, char* ptr, int len); + int (*write) (alt_fd* fd, const char* ptr, int len); + int (*lseek) (alt_fd* fd, int ptr, int dir); + int (*fstat) (alt_fd* fd, struct stat* buf); + int (*ioctl) (alt_fd* fd, int req, void* arg); +}; + +/* + * Functions used to register device for access through the C standard + * library. + * + * The only difference between alt_dev_reg() and alt_fs_reg() is the + * interpretation that open() places on the device name. In the case of + * alt_dev_reg the device is assumed to be a particular character device, + * and so there must be an exact match in the name for open to succeed. + * In the case of alt_fs_reg() the name of the device is treated as the + * mount point for a directory, and so any call to open() where the name + * is the root of the device filename will succeed. + */ + +extern int alt_fs_reg (alt_dev* dev); + +static ALT_INLINE int alt_dev_reg (alt_dev* dev) +{ + extern alt_llist alt_dev_list; + + return alt_dev_llist_insert ((alt_dev_llist*) dev, &alt_dev_list); +} + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_DEV_H__ */ diff --git a/software/qsys_tutorial_switchs18_bsp/HAL/inc/sys/alt_dma.h b/software/qsys_tutorial_switchs18_bsp/HAL/inc/sys/alt_dma.h new file mode 100644 index 0000000..9f9b2ff --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/HAL/inc/sys/alt_dma.h @@ -0,0 +1,226 @@ +#ifndef __ALT_DMA_H__ +#define __ALT_DMA_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004-2005 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#include "sys/alt_dma_dev.h" +#include "alt_types.h" + +#include + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * This header contains the application side interface for accessing DMA + * resources. See alt_dma_dev.h for the dma device driver interface. + * + * The interface model treats a DMA transaction as being composed of two + * halves (read and write). + * + * The application can supply data for transmit using an "alt_dma_txchan" + * descriptor. Alternatively an "alt_dma_rxchan" descriptor can be used to + * receive data. + */ + +/* + * alt_dma_txchan_open() is used to obtain an "alt_dma_txchan" descriptor for + * a DMA transmit device. The name is the name of the associated physical + * device (e.g. "/dev/dma_0"). + * + * The return value will be NULL on failure, and non-NULL otherwise. + */ + +extern alt_dma_txchan alt_dma_txchan_open (const char* name); + +/* + * alt_dma_txchan_close() is provided so that an application can notify the + * system that it has finished with a given DMA transmit channel. This is only + * provided for completness. + */ + +static ALT_INLINE int alt_dma_txchan_close (alt_dma_txchan dma) +{ + return 0; +} + +/* + * alt_dma_txchan_send() posts a transmit request to a DMA transmit channel. + * The input arguments are: + * + * dma: the channel to use. + * from: a pointer to the start of the data to send. + * length: the length of the data to send in bytes. + * done: callback function that will be called once the data has been sent. + * handle: opaque value passed to "done". + * + * The return value will be negative if the request cannot be posted, and + * zero otherwise. + */ + +static ALT_INLINE int alt_dma_txchan_send (alt_dma_txchan dma, + const void* from, + alt_u32 length, + alt_txchan_done* done, + void* handle) +{ + return dma ? dma->dma_send (dma, + from, + length, + done, + handle) : -ENODEV; +} + +/* + * alt_dma_txchan_space() returns the number of tranmit requests that can be + * posted to the specified DMA transmit channel. + * + * A negative value indicates that the value could not be determined. + */ + +static ALT_INLINE int alt_dma_txchan_space (alt_dma_txchan dma) +{ + return dma ? dma->space (dma) : -ENODEV; +} + +/* + * alt_dma_txchan_ioctl() can be used to perform device specific I/O + * operations on the indicated DMA transmit channel. For example some drivers + * support options to control the width of the transfer operations. See + * alt_dma_dev.h for the list of generic requests. + * + * A negative return value indicates failure, otherwise the interpretation + * of the return value is request specific. + */ + +static ALT_INLINE int alt_dma_txchan_ioctl (alt_dma_txchan dma, + int req, + void* arg) +{ + return dma ? dma->ioctl (dma, req, arg) : -ENODEV; +} + +/* + * alt_dma_rxchan_open() is used to obtain an "alt_dma_rxchan" descriptor for + * a DMA receive channel. The name is the name of the associated physical + * device (e.g. "/dev/dma_0"). + * + * The return value will be NULL on failure, and non-NULL otherwise. + */ + +extern alt_dma_rxchan alt_dma_rxchan_open (const char* dev); + +/* + * alt_dma_rxchan_close() is provided so that an application can notify the + * system that it has finished with a given DMA receive channel. This is only + * provided for completness. + */ + +static ALT_INLINE int alt_dma_rxchan_close (alt_dma_rxchan dma) +{ + return 0; +} + +/* + * + */ + +/* + * alt_dma_rxchan_prepare() posts a receive request to a DMA receive channel. + * + * The input arguments are: + * + * dma: the channel to use. + * data: a pointer to the location that data is to be received to. + * len: the maximum length of the data to receive. + * done: callback function that will be called once the data has been + * received. + * handle: opaque value passed to "done". + * + * The return value will be negative if the request cannot be posted, and + * zero otherwise. + */ + +static ALT_INLINE int alt_dma_rxchan_prepare (alt_dma_rxchan dma, + void* data, + alt_u32 len, + alt_rxchan_done* done, + void* handle) +{ + return dma ? dma->prepare (dma, data, len, done, handle) : -ENODEV; +} + +/* + * alt_dma_rxchan_ioctl() can be used to perform device specific I/O + * operations on the indicated DMA receive channel. For example some drivers + * support options to control the width of the transfer operations. See + * alt_dma_dev.h for the list of generic requests. + * + * A negative return value indicates failure, otherwise the interpretation + * of the return value is request specific. + */ + +static ALT_INLINE int alt_dma_rxchan_ioctl (alt_dma_rxchan dma, + int req, + void* arg) +{ + return dma ? dma->ioctl (dma, req, arg) : -ENODEV; +} + +/* + * alt_dma_rxchan_depth() returns the depth of the receive FIFO used to store + * receive requests. + */ + +static ALT_INLINE alt_u32 alt_dma_rxchan_depth(alt_dma_rxchan dma) +{ + return dma->depth; +} + +/* + * + */ + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __ALT_DMA_H__ */ diff --git a/software/qsys_tutorial_switchs18_bsp/HAL/inc/sys/alt_dma_dev.h b/software/qsys_tutorial_switchs18_bsp/HAL/inc/sys/alt_dma_dev.h new file mode 100644 index 0000000..832463d --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/HAL/inc/sys/alt_dma_dev.h @@ -0,0 +1,200 @@ +#ifndef __ALT_DMA_DEV_H__ +#define __ALT_DMA_DEV_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004-2005 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#include "priv/alt_dev_llist.h" + +#include "alt_types.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * This header contains the device driver interface for accessing DMA + * resources. See alt_dma.h for the DMA application side interface. + * + * The interface model treats a DMA transaction as being composed of two + * halves (read and write). + * + * An "alt_dma_txchan_dev" is used to describe the device associated with a + * DMA transmit channel. An "alt_dma_rxchan_dev" is used to describe the + * device associated with a DMA receive channel. + */ + +/* + * List of generic ioctl requests that may be supported by a DMA device. + * + * ALT_DMA_RX_ONLY_ON: This causes a DMA channel to operate in a mode + * where only the receiver is under software control. + * The other side reads continously from a single + * location. The address to read is the argument to + * this request. + * ALT_DMA_RX_ONLY_OFF: Return to the default mode where both the receive + * and transmit sides of the DMA can be under software + * control. + * ALT_DMA_TX_ONLY_ON: This causes a DMA channel to operate in a mode + * where only the transmitter is under software control. + * The other side writes continously to a single + * location. The address to write to is the argument to + * this request. + * ALT_DMA_TX_ONLY_OFF: Return to the default mode where both the receive + * and transmit sides of the DMA can be under software + * control. + * ALT_DMA_SET_MODE_8: Transfer data in units of 8 bits. + * ALT_DMA_SET_MODE_16: Transfer data in units of 16 bits. + * ALT_DMA_SET_MODE_32: Transfer data in units of 32 bits. + * ALT_DMA_SET_MODE_64: Transfer data in units of 64 bits. + * ALT_DMA_SET_MODE_128: Transfer data in units of 128 bits. + * ALT_DMA_GET_MODE: Get the current transfer mode. + * + * The use of the macros: ALT_DMA_TX_STREAM_ON, ALT_DMA_TX_STREAM_OFF + * ALT_DMA_RX_STREAM_OFF and ALT_DMA_RX_STREAM_ON are depreciated. You should + * instead use the macros: ALT_DMA_RX_ONLY_ON, ALT_DMA_RX_ONLY_OFF, + * ALT_DMA_TX_ONLY_ON and ALT_DMA_TX_ONLY_OFF. + */ + +#define ALT_DMA_TX_STREAM_ON (0x1) +#define ALT_DMA_TX_STREAM_OFF (0x2) +#define ALT_DMA_RX_STREAM_ON (0x3) +#define ALT_DMA_RX_STREAM_OFF (0x4) +#define ALT_DMA_SET_MODE_8 (0x5) +#define ALT_DMA_SET_MODE_16 (0x6) +#define ALT_DMA_SET_MODE_32 (0x7) +#define ALT_DMA_SET_MODE_64 (0x8) +#define ALT_DMA_SET_MODE_128 (0x9) +#define ALT_DMA_GET_MODE (0xa) + +#define ALT_DMA_RX_ONLY_ON ALT_DMA_TX_STREAM_ON +#define ALT_DMA_RX_ONLY_OFF ALT_DMA_TX_STREAM_OFF +#define ALT_DMA_TX_ONLY_ON ALT_DMA_RX_STREAM_ON +#define ALT_DMA_TX_ONLY_OFF ALT_DMA_RX_STREAM_OFF + +/* + * + */ + +typedef struct alt_dma_txchan_dev_s alt_dma_txchan_dev; +typedef struct alt_dma_rxchan_dev_s alt_dma_rxchan_dev; + +typedef alt_dma_txchan_dev* alt_dma_txchan; +typedef alt_dma_rxchan_dev* alt_dma_rxchan; + +typedef void (alt_txchan_done)(void* handle); +typedef void (alt_rxchan_done)(void* handle, void* data); + +/* + * devices that provide a DMA transmit channel are required to provide an + * instance of the "alt_dma_txchan_dev" structure. + */ + +struct alt_dma_txchan_dev_s { + alt_llist llist; /* for internal use */ + const char* name; /* name of the device instance + * (e.g. "/dev/dma_0"). + */ + int (*space) (alt_dma_txchan dma); /* returns the maximum number of + * transmit requests that can be posted + */ + int (*dma_send) (alt_dma_txchan dma, + const void* from, + alt_u32 len, + alt_txchan_done* done, + void* handle); /* post a transmit request */ + int (*ioctl) (alt_dma_txchan dma, int req, void* arg); /* perform device + * specific I/O control. + */ +}; + +/* + * devices that provide a DMA receive channel are required to provide an + * instance of the "alt_dma_rxchan_dev" structure. + */ + +struct alt_dma_rxchan_dev_s { + alt_llist list; /* for internal use */ + const char* name; /* name of the device instance + * (e.g. "/dev/dma_0"). + */ + alt_u32 depth; /* maximum number of receive requests that + * can be posted. + */ + int (*prepare) (alt_dma_rxchan dma, + void* data, + alt_u32 len, + alt_rxchan_done* done, + void* handle); /* post a receive request */ + int (*ioctl) (alt_dma_rxchan dma, int req, void* arg); /* perform device + * specific I/O control. + */ +}; + +/* + * Register a DMA transmit channel with the system. + */ + +static ALT_INLINE int alt_dma_txchan_reg (alt_dma_txchan_dev* dev) +{ + extern alt_llist alt_dma_txchan_list; + + return alt_dev_llist_insert((alt_dev_llist*) dev, &alt_dma_txchan_list); +} + +/* + * Register a DMA receive channel with the system. + */ + +static ALT_INLINE int alt_dma_rxchan_reg (alt_dma_rxchan_dev* dev) +{ + extern alt_llist alt_dma_rxchan_list; + + return alt_dev_llist_insert((alt_dev_llist*) dev, &alt_dma_rxchan_list); +} + +/* + * + */ + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __ALT_DMA_DEV_H__ */ diff --git a/software/qsys_tutorial_switchs18_bsp/HAL/inc/sys/alt_driver.h b/software/qsys_tutorial_switchs18_bsp/HAL/inc/sys/alt_driver.h new file mode 100644 index 0000000..eb0f23b --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/HAL/inc/sys/alt_driver.h @@ -0,0 +1,168 @@ +#ifndef __ALT_DRIVER_H__ +#define __ALT_DRIVER_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/* + * Macros used to access a driver without HAL file descriptors. + */ + +/* + * ALT_MODULE_CLASS + * + * This macro returns the module class name for the specified module instance. + * It uses information in the system.h file. + * Neither the instance name or class name are quoted (so that they can + * be used with other pre-processor macros). + * + * Example: + * Assume the design has an instance of an altera_avalon_uart called uart1. + * Calling ALT_MODULE_CLASS(uart1) returns altera_avalon_uart. + */ + +#define ALT_MODULE_CLASS(instance) ALT_MODULE_CLASS_ ## instance + + +/* + * ALT_DRIVER_FUNC_NAME + * + * --> instance Instance name. + * --> func Function name. + * + * This macro returns the device driver function name of the specified + * module instance for the specified function name. + * + * Example: + * Assume the design has an instance of an altera_avalon_uart called uart1. + * Calling ALT_DRIVER_FUNC_NAME(uart1, write) returns + * altera_avalon_uart_write. + */ + +#define ALT_DRIVER_FUNC_NAME(instance, func) \ + ALT_DRIVER_FUNC_NAME1(ALT_MODULE_CLASS(instance), func) +#define ALT_DRIVER_FUNC_NAME1(module_class, func) \ + ALT_DRIVER_FUNC_NAME2(module_class, func) +#define ALT_DRIVER_FUNC_NAME2(module_class, func) \ + module_class ## _ ## func + +/* + * ALT_DRIVER_STATE_STRUCT + * + * --> instance Instance name. + * + * This macro returns the device driver state type name of the specified + * module instance. + * + * Example: + * Assume the design has an instance of an altera_avalon_uart called uart1. + * Calling ALT_DRIVER_STATE_STRUCT(uart1) returns: + * struct altera_avalon_uart_state_s + * + * Note that the ALT_DRIVER_FUNC_NAME macro is used even though "state" isn't + * really a function but it does match the required naming convention. + */ +#define ALT_DRIVER_STATE_STRUCT(instance) \ + struct ALT_DRIVER_FUNC_NAME(instance, state_s) + +/* + * ALT_DRIVER_STATE + * + * --> instance Instance name. + * + * This macro returns the device driver state name of the specified + * module instance. + * + * Example: + * Assume the design has an instance of an altera_avalon_uart called uart1. + * Calling ALT_DRIVER_STATE(uart1) returns uart1. + */ +#define ALT_DRIVER_STATE(instance) instance + +/* + * ALT_DRIVER_WRITE + * + * --> instance Instance name. + * --> buffer Write buffer. + * --> len Length of write buffer data. + * --> flags Control flags (e.g. O_NONBLOCK) + * + * This macro calls the "write" function of the specified driver instance. + */ + +#define ALT_DRIVER_WRITE_EXTERNS(instance) \ + extern ALT_DRIVER_STATE_STRUCT(instance) ALT_DRIVER_STATE(instance); \ + extern int ALT_DRIVER_FUNC_NAME(instance, write) \ + (ALT_DRIVER_STATE_STRUCT(instance) *, const char *, int, int); + +#define ALT_DRIVER_WRITE(instance, buffer, len, flags) \ + ALT_DRIVER_FUNC_NAME(instance, write)(&ALT_DRIVER_STATE(instance), buffer, len, flags) + + +/* + * ALT_DRIVER_READ + * + * --> instance Instance name. + * <-- buffer Read buffer. + * --> len Length of read buffer. + * --> flags Control flags (e.g. O_NONBLOCK) + * + * This macro calls the "read" function of the specified driver instance. + */ + +#define ALT_DRIVER_READ_EXTERNS(instance) \ + extern ALT_DRIVER_STATE_STRUCT(instance) ALT_DRIVER_STATE(instance); \ + extern int ALT_DRIVER_FUNC_NAME(instance, read) \ + (ALT_DRIVER_STATE_STRUCT(instance) *, const char *, int, int); + +#define ALT_DRIVER_READ(instance, buffer, len, flags) \ + ALT_DRIVER_FUNC_NAME(instance, read)(&ALT_DRIVER_STATE(instance), buffer, len, flags) + +/* + * ALT_DRIVER_IOCTL + * + * --> instance Instance name. + * --> req ioctl request (e.g. TIOCSTIMEOUT) + * --> arg Optional argument (void*) + * + * This macro calls the "ioctl" function of the specified driver instance + */ + +#define ALT_DRIVER_IOCTL_EXTERNS(instance) \ + extern ALT_DRIVER_STATE_STRUCT(instance) ALT_DRIVER_STATE(instance); \ + extern int ALT_DRIVER_FUNC_NAME(instance, ioctl) \ + (ALT_DRIVER_STATE_STRUCT(instance) *, int, void*); + +#define ALT_DRIVER_IOCTL(instance, req, arg) \ + ALT_DRIVER_FUNC_NAME(instance, ioctl)(&ALT_DRIVER_STATE(instance), req, arg) + +#endif /* __ALT_DRIVER_H__ */ diff --git a/software/qsys_tutorial_switchs18_bsp/HAL/inc/sys/alt_errno.h b/software/qsys_tutorial_switchs18_bsp/HAL/inc/sys/alt_errno.h new file mode 100644 index 0000000..4d3e50f --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/HAL/inc/sys/alt_errno.h @@ -0,0 +1,87 @@ +#ifndef __ALT_ERRNO_H__ +#define __ALT_ERRNO_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +/* + * errno is defined in so that it uses the thread local version + * stored in the location pointed to by "_impure_ptr". This means that the + * accesses to errno within the HAL library can cause the entirety of + * of the structure pointed to by "_impure_ptr" to be added to the + * users application. This can be undesirable in very small footprint systems. + * + * To avoid this happening, the HAL uses the macro ALT_ERRNO, defined below, + * to access errno, rather than accessing it directly. This macro will only + * use the thread local version if some other code has already caused it to be + * included into the system, otherwise it will use the global errno value. + * + * This causes a slight increases in code size where errno is accessed, but + * can lead to significant overall benefits in very small systems. The + * increase is inconsequential when compared to the size of the structure + * pointed to by _impure_ptr. + * + * Note that this macro accesses __errno() using an externally declared + * function pointer (alt_errno). This is done so that the function call uses the + * subroutine call instruction via a register rather than an immediate address. + * This is important in the case that the code has been linked for a high + * address, but __errno() is not being used. In this case the weak linkage + * would have resulted in the instruction: "call 0" which would fail to link. + */ + +extern int* (*alt_errno) (void); + +/* Must define this so that values such as EBADFD are defined in errno.h. */ +#define __LINUX_ERRNO_EXTENSIONS__ + +#include + +#include "alt_types.h" + +#undef errno + +extern int errno; + +static ALT_INLINE int* alt_get_errno(void) +{ + return ((alt_errno) ? alt_errno() : &errno); +} + +#define ALT_ERRNO *alt_get_errno() + +#endif /* __ALT_ERRNO_H__ */ diff --git a/software/qsys_tutorial_switchs18_bsp/HAL/inc/sys/alt_exceptions.h b/software/qsys_tutorial_switchs18_bsp/HAL/inc/sys/alt_exceptions.h new file mode 100644 index 0000000..3576a52 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/HAL/inc/sys/alt_exceptions.h @@ -0,0 +1,127 @@ +#ifndef __ALT_EXCEPTIONS_H__ +#define __ALT_EXCEPTIONS_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2008 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ +#include "alt_types.h" +#include "system.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * This file defines instruction-generated exception handling and registry + * API, exception type enumeration, and handler return value enumeration for + * Nios II. + */ + +/* + * The following enumeration describes the value in the CPU EXCEPTION + * register CAUSE bit field. Not all exception types will cause the + * processor to go to the exception vector; these are provided for + * reference. + */ +enum alt_exception_cause_e { + /* Exeption causes that will cause jump to exception vector */ + NIOS2_EXCEPTION_INTERRUPT = 2, + NIOS2_EXCEPTION_TRAP_INST = 3, + NIOS2_EXCEPTION_UNIMPLEMENTED_INST = 4, + NIOS2_EXCEPTION_ILLEGAL_INST = 5, + NIOS2_EXCEPTION_MISALIGNED_DATA_ADDR = 6, + NIOS2_EXCEPTION_MISALIGNED_TARGET_PC = 7, + NIOS2_EXCEPTION_DIVISION_ERROR = 8, + NIOS2_EXCEPTION_SUPERVISOR_ONLY_INST_ADDR = 9, + NIOS2_EXCEPTION_SUPERVISOR_ONLY_INST = 10, + NIOS2_EXCEPTION_SUPERVISOR_ONLY_DATA_ADDR = 11, + NIOS2_EXCEPTION_TLB_MISS = 12, + NIOS2_EXCEPTION_TLB_EXECUTE_PERM_VIOLATION = 13, + NIOS2_EXCEPTION_MPU_INST_REGION_VIOLATION = 16, + + /* Exception causes that will NOT cause a jump to exception vector */ + NIOS2_EXCEPTION_RESET = 0, + NIOS2_EXCEPTION_CPU_ONLY_RESET_REQUEST = 1, + NIOS2_EXCEPTION_TLB_READ_PERM_VIOLATION = 14, + NIOS2_EXCEPTION_TLB_WRITE_PERM_VIOLATION = 15, + NIOS2_EXCEPTION_MPU_DATA_REGION_VIOLATION = 17, + /* + * This value is passed to an exception handler's cause argument if + * "extra exceptions" information (EXECPTION) register is not + * present in the processor hardware configuration. + */ + NIOS2_EXCEPTION_CAUSE_NOT_PRESENT = -1 +}; +typedef enum alt_exception_cause_e alt_exception_cause; + +/* + * These define valid return values for a user-defined instruction-generated + * exception handler. The handler should return one of these to indicate + * whether to re-issue the instruction that triggered the exception, or to + * skip it. + */ +enum alt_exception_result_e { + NIOS2_EXCEPTION_RETURN_REISSUE_INST = 0, + NIOS2_EXCEPTION_RETURN_SKIP_INST = 1 +}; +typedef enum alt_exception_result_e alt_exception_result; + +/* + * alt_instruction_exception_register() can be used to register an exception + * handler for instruction-generated exceptions that are not handled by the + * built-in exception handler (i.e. for interrupts). + * + * The registry API is optionally enabled through the "Enable + * Instruction-related Exception API" HAL BSP setting, which will + * define the macro below. + */ +#ifdef ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API +void alt_instruction_exception_register ( + alt_exception_result (*exception_handler)( + alt_exception_cause cause, + alt_u32 exception_pc, + alt_u32 bad_addr) ); +#endif /*ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API */ + +/* + * alt_exception_cause_generated_bad_addr() indicates whether a particular + * exception cause value was from an exception-type that generated a valid + * address in the BADADDR register. The contents of BADADDR is passed to + * a user-registered exception handler in all cases, whether valid or not. + * This routine should be called to validate the bad_addr argument to + * your exception handler. + */ +int alt_exception_cause_generated_bad_addr(alt_exception_cause cause); + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __ALT_EXCEPTIONS_H__ */ diff --git a/software/qsys_tutorial_switchs18_bsp/HAL/inc/sys/alt_flash.h b/software/qsys_tutorial_switchs18_bsp/HAL/inc/sys/alt_flash.h new file mode 100644 index 0000000..527328d --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/HAL/inc/sys/alt_flash.h @@ -0,0 +1,166 @@ +#ifndef __ALT_FLASH_H__ +#define __ALT_FLASH_H__ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +/****************************************************************************** +* * +* Alt_flash.h - User interface for flash code * +* * +* Use this interface to avoid being exposed to the internals of the device * +* driver architecture. If you chose to use the flash driver internal * +* structures we don't guarantee not to change them * +* * +* Author PRR * +* * +******************************************************************************/ + + + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +#include "alt_types.h" +#include "alt_flash_types.h" +#include "alt_flash_dev.h" +#include "sys/alt_cache.h" + +alt_flash_fd* alt_flash_open_dev(const char* name); +void alt_flash_close_dev(alt_flash_fd* fd ); + +/* + * alt_write_flash + * + * Program a buffer into flash. + * + * This routine erases all the affected erase blocks (if necessary) + * and then programs the data. However it does not read the data out first + * and preserve and none overwritten data, because this would require very + * large buffers on the target. If you need + * that functionality use the functions below. + */ +static __inline__ int __attribute__ ((always_inline)) alt_write_flash( + alt_flash_fd* fd, + int offset, + const void* src_addr, + int length ) +{ + return fd->write( fd, offset, src_addr, length ); +} + +/* + * alt_read_flash + * + * Read a block of flash for most flashes this is just memcpy + * it's here for completeness in case we need it for some serial flash device + * + */ +static __inline__ int __attribute__ ((always_inline)) alt_read_flash( + alt_flash_fd* fd, int offset, + void* dest_addr, int length ) +{ + return fd->read( fd, offset, dest_addr, length ); +} + +/* + * alt_get_flash_info + * + * Return the information on the flash sectors. + * + */ +static __inline__ int __attribute__ ((always_inline)) alt_get_flash_info( + alt_flash_fd* fd, flash_region** info, + int* number_of_regions) +{ + return fd->get_info( fd, info, number_of_regions); +} + +/* + * alt_erase_flash_block + * + * Erase a particular erase block, pass in the offset to the start of + * the block and it's size + */ +static __inline__ int __attribute__ ((always_inline)) alt_erase_flash_block( + alt_flash_fd* fd, int offset, int length) +{ + int ret_code; + ret_code = fd->erase_block( fd, offset ); + + if(!ret_code) + alt_dcache_flush((alt_u8*)fd->base_addr + offset, length); + + return ret_code; +} + +/* + * alt_write_flash_block + * + * Write a particular flash block, block_offset is the offset + * (from the base of flash) to start of the block + * data_offset is the offset (from the base of flash) + * where you wish to start programming + * + * NB this function DOES NOT check that you are only writing a single + * block of data as that would slow down this function. + * + * Use alt_write_flash if you want that level of error checking. + */ + +static __inline__ int __attribute__ ((always_inline)) alt_write_flash_block( + alt_flash_fd* fd, int block_offset, + int data_offset, + const void *data, int length) +{ + + int ret_code; + ret_code = fd->write_block( fd, block_offset, data_offset, data, length ); + + if(!ret_code) + alt_dcache_flush((alt_u8*)fd->base_addr + data_offset, length); + + return ret_code; +} + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_FLASH_H__ */ diff --git a/software/qsys_tutorial_switchs18_bsp/HAL/inc/sys/alt_flash_dev.h b/software/qsys_tutorial_switchs18_bsp/HAL/inc/sys/alt_flash_dev.h new file mode 100644 index 0000000..8bab601 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/HAL/inc/sys/alt_flash_dev.h @@ -0,0 +1,98 @@ +#ifndef __ALT_FLASH_DEV_H__ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +/****************************************************************************** +* * +* Alt_flash_dev.h - Generic Flash device interfaces * +* * +* Author PRR * +* * +******************************************************************************/ +#define __ALT_FLASH_DEV_H__ + +#include "alt_flash_types.h" +#include "sys/alt_llist.h" +#include "priv/alt_dev_llist.h" + +#include "alt_types.h" + +typedef struct alt_flash_dev alt_flash_dev; +typedef alt_flash_dev alt_flash_fd; + +static ALT_INLINE int alt_flash_device_register( alt_flash_fd* fd) +{ + extern alt_llist alt_flash_dev_list; + + return alt_dev_llist_insert ((alt_dev_llist*) fd, &alt_flash_dev_list); +} + +typedef alt_flash_dev* (*alt_flash_open)(alt_flash_dev* flash, + const char* name ); +typedef int (*alt_flash_close)(alt_flash_dev* flash_info); + +typedef int (*alt_flash_write)( alt_flash_dev* flash, int offset, + const void* src_addr, int length ); + +typedef int (*alt_flash_get_flash_info)( alt_flash_dev* flash, flash_region** info, + int* number_of_regions); +typedef int (*alt_flash_write_block)( alt_flash_dev* flash, int block_offset, + int data_offset, const void* data, + int length); +typedef int (*alt_flash_erase_block)( alt_flash_dev* flash, int offset); +typedef int (*alt_flash_read)(alt_flash_dev* flash, int offset, + void* dest_addr, int length ); + +struct alt_flash_dev +{ + alt_llist llist; + const char* name; + alt_flash_open open; + alt_flash_close close; + alt_flash_write write; + alt_flash_read read; + alt_flash_get_flash_info get_info; + alt_flash_erase_block erase_block; + alt_flash_write_block write_block; + void* base_addr; + int length; + int number_of_regions; + flash_region region_info[ALT_MAX_NUMBER_OF_FLASH_REGIONS]; +}; + +#endif /* __ALT_FLASH_DEV_H__ */ diff --git a/software/qsys_tutorial_switchs18_bsp/HAL/inc/sys/alt_flash_types.h b/software/qsys_tutorial_switchs18_bsp/HAL/inc/sys/alt_flash_types.h new file mode 100644 index 0000000..884cbf8 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/HAL/inc/sys/alt_flash_types.h @@ -0,0 +1,64 @@ +#ifndef __ALT_FLASH_TYPES_H__ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +/****************************************************************************** +* * +* Alt_flash_types.h - Some generic types and defines used by the flash code * +* * +* Author PRR * +* * +******************************************************************************/ +#define __ALT_FLASH_TYPES_H__ + +#ifndef ALT_MAX_NUMBER_OF_FLASH_REGIONS +#define ALT_MAX_NUMBER_OF_FLASH_REGIONS 8 +#endif /* ALT_MAX_NUMBER_OF_FLASH_REGIONS */ + +/* + * Description of a single Erase region + */ +typedef struct flash_region +{ + int offset; + int region_size; + int number_of_blocks; + int block_size; +}flash_region; + +#endif /* __ALT_FLASH_TYPES_H__ */ diff --git a/software/qsys_tutorial_switchs18_bsp/HAL/inc/sys/alt_irq.h b/software/qsys_tutorial_switchs18_bsp/HAL/inc/sys/alt_irq.h new file mode 100644 index 0000000..6666e52 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/HAL/inc/sys/alt_irq.h @@ -0,0 +1,245 @@ +#ifndef __ALT_IRQ_H__ +#define __ALT_IRQ_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2009 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/* + * alt_irq.h is the Nios II specific implementation of the interrupt controller + * interface. + * + * Nios II includes optional support for an external interrupt controller. + * When an external controller is present, the "Enhanced" interrupt API + * must be used to manage individual interrupts. The enhanced API also + * supports the processor's internal interrupt controller. Certain API + * members are accessible from either the "legacy" or "enhanced" interrpt + * API. + * + * Regardless of which API is in use, this file should be included by + * application code and device drivers that register ISRs or manage interrpts. + */ +#include + +#include "nios2.h" +#include "alt_types.h" +#include "system.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * Macros used by alt_irq_enabled + */ +#define ALT_IRQ_ENABLED 1 +#define ALT_IRQ_DISABLED 0 + +/* + * Number of available interrupts in internal interrupt controller. + */ +#define ALT_NIRQ NIOS2_NIRQ + +/* + * Used by alt_irq_disable_all() and alt_irq_enable_all(). + */ +typedef int alt_irq_context; + +/* ISR Prototype */ +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT +typedef void (*alt_isr_func)(void* isr_context); +#else +typedef void (*alt_isr_func)(void* isr_context, alt_u32 id); +#endif + +/* + * The following protypes and routines are supported by both + * the enhanced and legacy interrupt APIs + */ + +/* + * alt_irq_enabled can be called to determine if the processor's global + * interrupt enable is asserted. The return value is zero if interrupts + * are disabled, and non-zero otherwise. + * + * Whether the internal or external interrupt controller is present, + * individual interrupts may still be disabled. Use the other API to query + * a specific interrupt. + */ +static ALT_INLINE int ALT_ALWAYS_INLINE alt_irq_enabled (void) +{ + int status; + + NIOS2_READ_STATUS (status); + + return status & NIOS2_STATUS_PIE_MSK; +} + +/* + * alt_irq_disable_all() + * + * This routine inhibits all interrupts by negating the status register PIE + * bit. It returns the previous contents of the CPU status register (IRQ + * context) which can be used to restore the status register PIE bit to its + * state before this routine was called. + */ +static ALT_INLINE alt_irq_context ALT_ALWAYS_INLINE + alt_irq_disable_all (void) +{ + alt_irq_context context; + + NIOS2_READ_STATUS (context); + + NIOS2_WRITE_STATUS (context & ~NIOS2_STATUS_PIE_MSK); + + return context; +} + +/* + * alt_irq_enable_all() + * + * Enable all interrupts that were previously disabled by alt_irq_disable_all() + * + * This routine accepts a context to restore the CPU status register PIE bit + * to the state prior to a call to alt_irq_disable_all(). + + * In the case of nested calls to alt_irq_disable_all()/alt_irq_enable_all(), + * this means that alt_irq_enable_all() does not necessarily re-enable + * interrupts. + * + * This routine will perform a read-modify-write sequence to restore only + * status.PIE if the processor is configured with options that add additional + * writeable status register bits. These include the MMU, MPU, the enhanced + * interrupt controller port, and shadow registers. Otherwise, as a performance + * enhancement, status is overwritten with the prior context. + */ +static ALT_INLINE void ALT_ALWAYS_INLINE + alt_irq_enable_all (alt_irq_context context) +{ +#if (NIOS2_NUM_OF_SHADOW_REG_SETS > 0) || (defined NIOS2_EIC_PRESENT) || \ + (defined NIOS2_MMU_PRESENT) || (defined NIOS2_MPU_PRESENT) + alt_irq_context status; + + NIOS2_READ_STATUS (status); + + status &= ~NIOS2_STATUS_PIE_MSK; + status |= (context & NIOS2_STATUS_PIE_MSK); + + NIOS2_WRITE_STATUS (status); +#else + NIOS2_WRITE_STATUS (context); +#endif +} + +/* + * The function alt_irq_init() is defined within the auto-generated file + * alt_sys_init.c. This function calls the initilization macros for all + * interrupt controllers in the system at config time, before any other + * non-interrupt controller driver is initialized. + * + * The "base" parameter is ignored and only present for backwards-compatibility. + * It is recommended that NULL is passed in for the "base" parameter. + */ +extern void alt_irq_init (const void* base); + +/* + * alt_irq_cpu_enable_interrupts() enables the CPU to start taking interrupts. + */ +static ALT_INLINE void ALT_ALWAYS_INLINE + alt_irq_cpu_enable_interrupts () +{ + NIOS2_WRITE_STATUS(NIOS2_STATUS_PIE_MSK +#if defined(NIOS2_EIC_PRESENT) && (NIOS2_NUM_OF_SHADOW_REG_SETS > 0) + | NIOS2_STATUS_RSIE_MSK +#endif + ); +} + + +/* + * Prototypes for the enhanced interrupt API. + */ +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT +/* + * alt_ic_isr_register() can be used to register an interrupt handler. If the + * function is succesful, then the requested interrupt will be enabled upon + * return. + */ +extern int alt_ic_isr_register(alt_u32 ic_id, + alt_u32 irq, + alt_isr_func isr, + void *isr_context, + void *flags); + +/* + * alt_ic_irq_enable() and alt_ic_irq_disable() enable/disable a specific + * interrupt by using IRQ port and interrupt controller instance. + */ +int alt_ic_irq_enable (alt_u32 ic_id, alt_u32 irq); +int alt_ic_irq_disable(alt_u32 ic_id, alt_u32 irq); + + /* + * alt_ic_irq_enabled() indicates whether a specific interrupt, as + * specified by IRQ port and interrupt controller instance is enabled. + */ +alt_u32 alt_ic_irq_enabled(alt_u32 ic_id, alt_u32 irq); + +#else +/* + * Prototypes for the legacy interrupt API. + */ +#include "priv/alt_legacy_irq.h" +#endif + + +/* + * alt_irq_pending() returns a bit list of the current pending interrupts. + * This is used by alt_irq_handler() to determine which registered interrupt + * handlers should be called. + * + * This routine is only available for the Nios II internal interrupt + * controller. + */ +#ifndef NIOS2_EIC_PRESENT +static ALT_INLINE alt_u32 ALT_ALWAYS_INLINE alt_irq_pending (void) +{ + alt_u32 active; + + NIOS2_READ_IPENDING (active); + + return active; +} +#endif + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __ALT_IRQ_H__ */ diff --git a/software/qsys_tutorial_switchs18_bsp/HAL/inc/sys/alt_irq_entry.h b/software/qsys_tutorial_switchs18_bsp/HAL/inc/sys/alt_irq_entry.h new file mode 100644 index 0000000..e2008d9 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/HAL/inc/sys/alt_irq_entry.h @@ -0,0 +1,39 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/* + * This file pulls in the IRQ entry assembler and C code, which is only + * required if there are any interruptes in the system. + */ + +__asm__( "\n\t.globl alt_irq_entry" ); + +__asm__( "\n\t.globl alt_irq_handler" ); + diff --git a/software/qsys_tutorial_switchs18_bsp/HAL/inc/sys/alt_license_reminder_ucosii.h b/software/qsys_tutorial_switchs18_bsp/HAL/inc/sys/alt_license_reminder_ucosii.h new file mode 100644 index 0000000..2fe649c --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/HAL/inc/sys/alt_license_reminder_ucosii.h @@ -0,0 +1,77 @@ +#ifndef __ALT_LICENSE_REMINDER_UCOSII_H__ +#define __ALT_LICENSE_REMINDER_UCOSII_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#include + +#define ALT_LICENSE_REMINDER_UCOSII_STRING \ + "============== Software License Reminder ===============\n" \ + "\n" \ + "uC/OS-II is provided in source form for FREE evaluation,\n" \ + "for educational use, or for peaceful research. If you\n" \ + "plan on using uC/OS-II in a commercial product you need\n" \ + "to contact Micrium to properly license its use in your\n" \ + "product. Micrium provides ALL the source code on the\n" \ + "Altera distribution for your convenience and to help you\n" \ + "experience uC/OS-II. The fact that the source is provided\n" \ + "does NOT mean that you can use it without paying a\n" \ + "licensing fee. Please help us continue to provide the\n" \ + "Embedded community with the finest software available.\n" \ + "Your honesty is greatly appreciated.\n" \ + "\n" \ + "Please contact:\n" \ + "\n" \ + "M I C R I U M\n" \ + "949 Crestview Circle\n" \ + "Weston, FL 33327-1848\n" \ + "U.S.A.\n" \ + "\n" \ + "Phone : +1 954 217 2036\n" \ + "FAX : +1 954 217 2037\n" \ + "WEB : www.micrium.com\n" \ + "E-mail: Sales@Micrium.com\n" \ + "\n" \ + "========================================================\n" + +#define alt_license_reminder_ucosii() puts(ALT_LICENSE_REMINDER_UCOSII_STRING) + + +#endif /* __ALT_LICENSE_REMINDER_UCOSII_H__ */ + diff --git a/software/qsys_tutorial_switchs18_bsp/HAL/inc/sys/alt_llist.h b/software/qsys_tutorial_switchs18_bsp/HAL/inc/sys/alt_llist.h new file mode 100644 index 0000000..46f81ce --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/HAL/inc/sys/alt_llist.h @@ -0,0 +1,123 @@ +#ifndef __ALT_LIST_H__ +#define __ALT_LIST_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#include "alt_types.h" + +/* + * alt_llist.h defines structures and functions for use in manipulating linked + * lists. A list is considered to be constructed from a chain of objects of + * type alt_llist, with one object being defined to be the head element. + * + * A list is considered to be empty if it only contains the head element. + */ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * alt_llist is the structure used to represent an element within a linked + * list. + */ + +typedef struct alt_llist_s alt_llist; + +struct alt_llist_s { + alt_llist* next; /* Pointer to the next element in the list. */ + alt_llist* previous; /* Pointer to the previous element in the list. */ +}; + +/* + * ALT_LLIST_HEAD is a macro that can be used to create the head of a new + * linked list. This is named "head". The head element is initialised to + * represent an empty list. + */ + +#define ALT_LLIST_HEAD(head) alt_llist head = {&head, &head} + +/* + * ALT_LLIST_ENTRY is a macro used to define an uninitialised linked list + * entry. This is used to reserve space in structure initialisation for + * structures that inherit form alt_llist. + */ + +#define ALT_LLIST_ENTRY {0, 0} + +/* + * alt_llist_insert() insert adds the linked list entry "entry" as the + * first entry in the linked list "list". "list" is the list head element. + */ + +static ALT_INLINE void ALT_ALWAYS_INLINE alt_llist_insert(alt_llist* list, + alt_llist* entry) +{ + entry->previous = list; + entry->next = list->next; + + list->next->previous = entry; + list->next = entry; +} + +/* + * alt_llist_remove() is called to remove an element from a linked list. The + * input argument is the element to remove. + */ + +static ALT_INLINE void ALT_ALWAYS_INLINE alt_llist_remove(alt_llist* entry) +{ + entry->next->previous = entry->previous; + entry->previous->next = entry->next; + + /* + * Set the entry to point to itself, so that any further calls to + * alt_llist_remove() are harmless. + */ + + entry->previous = entry; + entry->next = entry; +} + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_LLIST_H__ */ diff --git a/software/qsys_tutorial_switchs18_bsp/HAL/inc/sys/alt_load.h b/software/qsys_tutorial_switchs18_bsp/HAL/inc/sys/alt_load.h new file mode 100644 index 0000000..432e9f2 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/HAL/inc/sys/alt_load.h @@ -0,0 +1,78 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2005 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "alt_types.h" + +/* + * This macro is used to load code/data from its load address to its + * execution address for a given section. The section name is the input + * argument. Note that a leading '.' is assumed in the name. For example + * to load the section .onchip_ram, use: + * + * ALT_LOAD_SECTION_BY_NAME(onchip_ram); + * + * This requires that the apropriate linker symbols have been generated + * for the section in question. This will be the case if you are using the + * default linker script. + */ + +#define ALT_LOAD_SECTION_BY_NAME(name) \ + { \ + extern void _alt_partition_##name##_start; \ + extern void _alt_partition_##name##_end; \ + extern void _alt_partition_##name##_load_addr; \ + \ + alt_load_section(&_alt_partition_##name##_load_addr, \ + &_alt_partition_##name##_start, \ + &_alt_partition_##name##_end); \ + } + +/* + * Function used to load an individual section from flash to RAM. + * + * There is an implicit assumption here that the linker script will ensure + * that all sections are word aligned. + * + */ + +static void ALT_INLINE alt_load_section (alt_u32* from, + alt_u32* to, + alt_u32* end) +{ + if (to != from) + { + while( to != end ) + { + *to++ = *from++; + } + } +} diff --git a/software/qsys_tutorial_switchs18_bsp/HAL/inc/sys/alt_log_printf.h b/software/qsys_tutorial_switchs18_bsp/HAL/inc/sys/alt_log_printf.h new file mode 100644 index 0000000..c15ca05 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/HAL/inc/sys/alt_log_printf.h @@ -0,0 +1,349 @@ +/* alt_log_printf.h + * + * ALT_LOG is designed to provide extra logging/debugging messages from HAL + * through a different port than stdout. It is enabled by the ALT_LOG_ENABLE + * define, which needs to supplied at compile time. When logging is turned off, + * code size is unaffected. Thus, this should be transparent to the user + * when it is not actively turned on, and should not affect projects in any way. + * + * There are macros sprinkled within different components, such as the jtag uart + * and timer, in the HAL code. They are always named ALT_LOG_, and can be + * safely ignored if ALT_LOG is turned off. + * + * To turn on ALT_LOG, ALT_LOG_ENABLE must be defined, and ALT_LOG_PORT_TYPE and + * ALT_LOG_PORT_BASE must be set in system.h. This is done through editing + * .ptf, by editing the alt_log_port_type & alt_log_port_base settings. + * See the documentation html file for examples. + * + * When it is turned on, it will output extra HAL messages to a port specified + * in system.h. This can be a UART or JTAG UART port. By default it will + * output boot messages, detailing every step of the boot process. + * + * Extra logging is designed to be enabled by flags, which are defined in + * alt_log_printf.c. The default value is that all flags are off, so only the + * boot up logging messages show up. ALT_LOG_FLAGS can be set to enable certain + * groupings of flags, and that grouping is done in this file. Each flag can + * also be overridden with a -D at compile time. + * + * This header file includes the necessary prototypes for using the alt_log + * functions. It also contains all the macros that are used to remove the code + * from alt log is turned off. Also, the macros in other HAL files are defined + * here at the bottom. These macros all call some C function that is in + * alt_log_printf.c. + * + * The logging has functions for printing in C (ALT_LOG_PRINTF) and in assembly + * (ALT_LOG_PUTS). This was needed because the assembly printing occurs before + * the device is initialized. The assembly function corrupts register R4-R7, + * which are not used in the normal boot process. For this reason, do not call + * the assembly function in C. + * + * author: gkwan + */ + + +#ifndef __ALT_LOG_PRINTF_H__ +#define __ALT_LOG_PRINTF_H__ + +#include + +/* Global switch to turn on logging functions */ +#ifdef ALT_LOG_ENABLE + + /* ALT_LOG_PORT_TYPE values as defined in system.h. They are defined as + * numbers here first becasue the C preprocessor does not handle string + * comparisons. */ + #define ALTERA_AVALON_JTAG_UART 1 + #define ALTERA_AVALON_UART 0 + + /* If this .h file is included by an assembly file, skip over include files + * that won't compile in assembly. */ + #ifndef ALT_ASM_SRC + #include + #include "sys/alt_alarm.h" + #include "sys/alt_dev.h" + #ifdef __ALTERA_AVALON_JTAG_UART + #include "altera_avalon_jtag_uart.h" + #endif + #endif /* ALT_ASM_SRC */ + + /* These are included for the port register offsets and masks, needed + * to write to the port. Only include if the port type is set correctly, + * otherwise error. If alt_log is turned on and the port to output to is + * incorrect or does not exist, then should exit. */ + #if ALT_LOG_PORT_TYPE == ALTERA_AVALON_JTAG_UART + #ifdef __ALTERA_AVALON_JTAG_UART + #include + #else + #error ALT_LOG: JTAG_UART port chosen, but no JTAG_UART in system. + #endif + #elif ALT_LOG_PORT_TYPE == ALTERA_AVALON_UART + #ifdef __ALTERA_AVALON_UART + #include + #else + #error ALT_LOG: UART Port chosen, but no UART in system. + #endif + #else + #error ALT_LOG: alt_log_port_type declaration invalid! + #endif + + /* ALT_LOG_ENABLE turns on the basic printing function */ + #define ALT_LOG_PRINTF(...) do {alt_log_printf_proc(__VA_ARGS__);} while (0) + + /* Assembly macro for printing in assembly, calls tx_log_str + * which is in alt_log_macro.S. + * If alt_log_boot_on_flag is 0, skips the printing */ + #define ALT_LOG_PUTS(str) movhi r4, %hiadj(alt_log_boot_on_flag) ; \ + addi r4, r4, %lo(alt_log_boot_on_flag) ; \ + ldwio r5, 0(r4) ; \ + beq r0, r5, 0f ; \ + movhi r4, %hiadj(str) ; \ + addi r4, r4, %lo(str) ; \ + call tx_log_str ; \ + 0: + + /* These defines are here to faciliate the use of one output function + * (alt_log_txchar) to print to both the JTAG UART or the UART. Depending + * on the port type, the status register, read mask, and output register + * are set to the appropriate value for the port. */ + #if ALT_LOG_PORT_TYPE == ALTERA_AVALON_JTAG_UART + #define ALT_LOG_PRINT_REG_RD IORD_ALTERA_AVALON_JTAG_UART_CONTROL + #define ALT_LOG_PRINT_MSK ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_MSK + #define ALT_LOG_PRINT_TXDATA_WR IOWR_ALTERA_AVALON_JTAG_UART_DATA + #define ALT_LOG_PRINT_REG_OFFSET (ALTERA_AVALON_JTAG_UART_CONTROL_REG*0x4) + #define ALT_LOG_PRINT_TXDATA_REG_OFFSET (ALTERA_AVALON_JTAG_UART_DATA_REG*0x4) + #elif ALT_LOG_PORT_TYPE == ALTERA_AVALON_UART + #define ALT_LOG_PRINT_REG_RD IORD_ALTERA_AVALON_UART_STATUS + #define ALT_LOG_PRINT_MSK ALTERA_AVALON_UART_STATUS_TRDY_MSK + #define ALT_LOG_PRINT_TXDATA_WR IOWR_ALTERA_AVALON_UART_TXDATA + #define ALT_LOG_PRINT_REG_OFFSET (ALTERA_AVALON_UART_STATUS_REG*0x4) + #define ALT_LOG_PRINT_TXDATA_REG_OFFSET (ALTERA_AVALON_UART_TXDATA_REG*0x4) + #endif /* ALT_LOG_PORT */ + + /* Grouping of flags via ALT_LOG_FLAGS. Each specific flag can be set via + * -D at compile time, or else they'll be set to a default value according + * to ALT_LOG_FLAGS. ALT_LOG_FLAGS = 0 or not set is the default, where + * only the boot messages will be printed. As ALT_LOG_FLAGS increase, they + * increase in intrusiveness to the program, and will affect performance. + * + * Flag Level 1 - turns on system clock and JTAG UART startup status + * 2 - turns on write echo and JTAG_UART alarm (periodic report) + * 3 - turns on JTAG UART ISR logging - will slow performance + * significantly. + * -1 - All logging output is off, but if ALT_LOG_ENABLE is + * defined all logging function is built and code size + * remains constant + * + * Flag settings - 1 = on, 0 = off. */ + + /* This flag turns on "boot" messages for printing. This includes messages + * during crt0.S, then alt_main, and finally alt_exit. */ + #ifndef ALT_LOG_BOOT_ON_FLAG_SETTING + #if ALT_LOG_FLAGS == 1 + #define ALT_LOG_BOOT_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == 2 + #define ALT_LOG_BOOT_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == 3 + #define ALT_LOG_BOOT_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == -1 /* silent mode */ + #define ALT_LOG_BOOT_ON_FLAG_SETTING 0x0 + #else /* default setting */ + #define ALT_LOG_BOOT_ON_FLAG_SETTING 0x1 + #endif + #endif /* ALT_LOG_BOOT_ON_FLAG_SETTING */ + + #ifndef ALT_LOG_SYS_CLK_ON_FLAG_SETTING + #if ALT_LOG_FLAGS == 1 + #define ALT_LOG_SYS_CLK_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == 2 + #define ALT_LOG_SYS_CLK_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == 3 + #define ALT_LOG_SYS_CLK_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == -1 /* silent mode */ + #define ALT_LOG_SYS_CLK_ON_FLAG_SETTING 0x0 + #else /* default setting */ + #define ALT_LOG_SYS_CLK_ON_FLAG_SETTING 0x0 + #endif + #endif /* ALT_LOG_SYS_CLK_ON_FLAG_SETTING */ + + #ifndef ALT_LOG_WRITE_ON_FLAG_SETTING + #if ALT_LOG_FLAGS == 1 + #define ALT_LOG_WRITE_ON_FLAG_SETTING 0x0 + #elif ALT_LOG_FLAGS == 2 + #define ALT_LOG_WRITE_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == 3 + #define ALT_LOG_WRITE_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == -1 /* silent mode */ + #define ALT_LOG_WRITE_ON_FLAG_SETTING 0x0 + #else /* default setting */ + #define ALT_LOG_WRITE_ON_FLAG_SETTING 0x0 + #endif + #endif /* ALT_LOG_WRITE_ON_FLAG_SETTING */ + + #ifndef ALT_LOG_JTAG_UART_ALARM_ON_FLAG_SETTING + #ifndef __ALTERA_AVALON_JTAG_UART + #define ALT_LOG_JTAG_UART_ALARM_ON_FLAG_SETTING 0x0 + #elif ALT_LOG_FLAGS == 1 + #define ALT_LOG_JTAG_UART_ALARM_ON_FLAG_SETTING 0x0 + #elif ALT_LOG_FLAGS == 2 + #define ALT_LOG_JTAG_UART_ALARM_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == 3 + #define ALT_LOG_JTAG_UART_ALARM_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == -1 /* silent mode */ + #define ALT_LOG_JTAG_UART_ALARM_ON_FLAG_SETTING 0x0 + #else /* default setting */ + #define ALT_LOG_JTAG_UART_ALARM_ON_FLAG_SETTING 0x0 + #endif + #endif /* ALT_LOG_JTAG_UART_ALARM_ON_FLAG_SETTING */ + + #ifndef ALT_LOG_JTAG_UART_STARTUP_INFO_ON_FLAG_SETTING + #ifndef __ALTERA_AVALON_JTAG_UART + #define ALT_LOG_JTAG_UART_STARTUP_INFO_ON_FLAG_SETTING 0x0 + #elif ALT_LOG_FLAGS == 1 + #define ALT_LOG_JTAG_UART_STARTUP_INFO_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == 2 + #define ALT_LOG_JTAG_UART_STARTUP_INFO_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == 3 + #define ALT_LOG_JTAG_UART_STARTUP_INFO_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == -1 /* silent mode */ + #define ALT_LOG_JTAG_UART_STARTUP_INFO_ON_FLAG_SETTING 0x0 + #else /* default setting */ + #define ALT_LOG_JTAG_UART_STARTUP_INFO_ON_FLAG_SETTING 0x0 + #endif + #endif /* ALT_LOG_JTAG_UART_STARTUP_INFO_FLAG_SETTING */ + + #ifndef ALT_LOG_JTAG_UART_ISR_ON_FLAG_SETTING + #ifndef __ALTERA_AVALON_JTAG_UART + #define ALT_LOG_JTAG_UART_ISR_ON_FLAG_SETTING 0x0 + #elif ALT_LOG_FLAGS == 1 + #define ALT_LOG_JTAG_UART_ISR_ON_FLAG_SETTING 0x0 + #elif ALT_LOG_FLAGS == 2 + #define ALT_LOG_JTAG_UART_ISR_ON_FLAG_SETTING 0x0 + #elif ALT_LOG_FLAGS == 3 + #define ALT_LOG_JTAG_UART_ISR_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == -1 /* silent mode */ + #define ALT_LOG_JTAG_UART_ISR_ON_FLAG_SETTING 0x0 + #else /* default setting */ + #define ALT_LOG_JTAG_UART_ISR_ON_FLAG_SETTING 0x0 + #endif + #endif /* ALT_LOG_JTAG_UART_ISR_ON_FLAG_SETTING */ + +#ifndef ALT_ASM_SRC + /* Function Prototypes */ + void alt_log_txchar(int c,char *uartBase); + void alt_log_private_printf(const char *fmt,int base,va_list args); + void alt_log_repchar(char c,int r,int base); + int alt_log_printf_proc(const char *fmt, ... ); + void alt_log_system_clock(); + #ifdef __ALTERA_AVALON_JTAG_UART + alt_u32 altera_avalon_jtag_uart_report_log(void * context); + void alt_log_jtag_uart_startup_info(altera_avalon_jtag_uart_state* dev, int base); + void alt_log_jtag_uart_print_control_reg(altera_avalon_jtag_uart_state* dev, \ + int base, const char* header); + void alt_log_jtag_uart_isr_proc(int base, altera_avalon_jtag_uart_state* dev); + #endif + void alt_log_write(const void *ptr, size_t len); + + /* extern all global variables */ + extern volatile alt_u32 alt_log_boot_on_flag; + extern volatile alt_u8 alt_log_write_on_flag; + extern volatile alt_u8 alt_log_sys_clk_on_flag; + extern volatile alt_u8 alt_log_jtag_uart_alarm_on_flag; + extern volatile alt_u8 alt_log_jtag_uart_isr_on_flag; + extern volatile alt_u8 alt_log_jtag_uart_startup_info_on_flag; + extern volatile int alt_log_sys_clk_count; + extern volatile int alt_system_clock_in_sec; + extern alt_alarm alt_log_jtag_uart_alarm_1; +#endif /* ALT_ASM_SRC */ + + + /* Below are the MACRO defines used in various HAL files. They check + * if their specific flag is turned on; if it is, then it executes its + * code. + * + * To keep this file reasonable, most of these macros calls functions, + * which are defined in alt_log_printf.c. Look there for implementation + * details. */ + + /* Boot Messages Logging */ + #define ALT_LOG_PRINT_BOOT(...) \ + do { if (alt_log_boot_on_flag==1) {ALT_LOG_PRINTF(__VA_ARGS__);} \ + } while (0) + + /* JTAG UART Logging */ + /* number of ticks before alarm runs logging function */ + #ifndef ALT_LOG_JTAG_UART_TICKS_DIVISOR + #define ALT_LOG_JTAG_UART_TICKS_DIVISOR 10 + #endif + #ifndef ALT_LOG_JTAG_UART_TICKS + #define ALT_LOG_JTAG_UART_TICKS \ + (alt_ticks_per_second()/ALT_LOG_JTAG_UART_TICKS_DIVISOR) + #endif + + /* if there's a JTAG UART defined, then enable these macros */ + #ifdef __ALTERA_AVALON_JTAG_UART + + /* Macro in altera_avalon_jtag_uart.c, to register the alarm function. + * Also, the startup register info is also printed here, as this is + * called within the device driver initialization. */ + #define ALT_LOG_JTAG_UART_ALARM_REGISTER(dev, base) \ + do { if (alt_log_jtag_uart_alarm_on_flag==1) { \ + alt_alarm_start(&alt_log_jtag_uart_alarm_1, \ + ALT_LOG_JTAG_UART_TICKS, &altera_avalon_jtag_uart_report_log,\ + dev);} \ + if (alt_log_jtag_uart_startup_info_on_flag==1) {\ + alt_log_jtag_uart_startup_info(dev, base);} \ + } while (0) + + /* JTAG UART IRQ Logging (when buffer is empty) + * Inserted in the ISR in altera_avalon_jtag_uart.c */ + #define ALT_LOG_JTAG_UART_ISR_FUNCTION(base, dev) \ + do { alt_log_jtag_uart_isr_proc(base, dev); } while (0) + /* else, define macros to nothing. Or else the jtag_uart specific types + * will throw compiler errors */ + #else + #define ALT_LOG_JTAG_UART_ALARM_REGISTER(dev, base) + #define ALT_LOG_JTAG_UART_ISR_FUNCTION(base, dev) + #endif + + /* System clock logging + * How often (in seconds) the system clock logging prints. + * The default value is every 1 second */ + #ifndef ALT_LOG_SYS_CLK_INTERVAL_MULTIPLIER + #define ALT_LOG_SYS_CLK_INTERVAL_MULTIPLIER 1 + #endif + #ifndef ALT_LOG_SYS_CLK_INTERVAL + #define ALT_LOG_SYS_CLK_INTERVAL \ + (alt_ticks_per_second()*ALT_LOG_SYS_CLK_INTERVAL_MULTIPLIER) + #endif + + /* System clock logging - prints a message every interval (set above) + * to show that the system clock is alive. + * This macro is used in altera_avalon_timer_sc.c */ + #define ALT_LOG_SYS_CLK_HEARTBEAT() \ + do { alt_log_system_clock(); } while (0) + + /* alt_write_logging - echos a message every time write() is called, + * displays the first ALT_LOG_WRITE_ECHO_LEN characters. + * This macro is used in alt_write.c */ + #ifndef ALT_LOG_WRITE_ECHO_LEN + #define ALT_LOG_WRITE_ECHO_LEN 15 + #endif + + #define ALT_LOG_WRITE_FUNCTION(ptr,len) \ + do { alt_log_write(ptr,len); } while (0) + +#else /* ALT_LOG_ENABLE not defined */ + + /* logging is off, set all relevant macros to null */ + #define ALT_LOG_PRINT_BOOT(...) + #define ALT_LOG_PRINTF(...) + #define ALT_LOG_JTAG_UART_ISR_FUNCTION(base, dev) + #define ALT_LOG_JTAG_UART_ALARM_REGISTER(dev, base) + #define ALT_LOG_SYS_CLK_HEARTBEAT() + #define ALT_LOG_PUTS(str) + #define ALT_LOG_WRITE_FUNCTION(ptr,len) + +#endif /* ALT_LOG_ENABLE */ + +#endif /* __ALT_LOG_PRINTF_H__ */ + diff --git a/software/qsys_tutorial_switchs18_bsp/HAL/inc/sys/alt_set_args.h b/software/qsys_tutorial_switchs18_bsp/HAL/inc/sys/alt_set_args.h new file mode 100644 index 0000000..3750e67 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/HAL/inc/sys/alt_set_args.h @@ -0,0 +1,71 @@ +#ifndef __ALT_SET_ARGS_H__ +#define __ALT_SET_ARGS_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * The function alt_set_args() is provided in order to define the input + * arguments to main(). If this function is not called before main() then the + * argument list passed to main() will be empty. + * + * It is expected that this function will only be used by the ihost/iclient + * utility. + */ + +static inline void alt_set_args (int argc, char** argv, char** envp) +{ + extern int alt_argc; + extern char** alt_argv; + extern char** alt_envp; + + alt_argc = argc; + alt_argv = argv; + alt_envp = envp; +} + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_SET_ARGS_H__ */ diff --git a/software/qsys_tutorial_switchs18_bsp/HAL/inc/sys/alt_sim.h b/software/qsys_tutorial_switchs18_bsp/HAL/inc/sys/alt_sim.h new file mode 100644 index 0000000..06bd27a --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/HAL/inc/sys/alt_sim.h @@ -0,0 +1,91 @@ +#ifndef __ALT_SIM_H__ +#define __ALT_SIM_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2007 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ +#include "system.h" +#include "alt_types.h" + +/* + * Instructions that might mean something special to a simulator. + * These have no special effect on real hardware (they are just nops). + */ +#define ALT_SIM_FAIL() \ + do { __asm volatile ("cmpltui r0, r0, 0xabc1"); } while (0) + +#define ALT_SIM_PASS() \ + do { __asm volatile ("cmpltui r0, r0, 0xabc2"); } while (0) + +#define ALT_SIM_IN_TOP_OF_HOT_LOOP() \ + do { __asm volatile ("cmpltui r0, r0, 0xabc3"); } while (0) + +/* + * Routine called on exit. + */ +static ALT_ALWAYS_INLINE void alt_sim_halt(int exit_code) +{ + int r2 = exit_code; + +#if defined(NIOS2_HAS_DEBUG_STUB) && (defined(ALT_BREAK_ON_EXIT) || defined(ALT_PROVIDE_GMON)) + + int r3 = (1 << 2); + +#ifdef ALT_PROVIDE_GMON + extern unsigned int alt_gmon_data[]; + int r4 = (int)alt_gmon_data; + r3 |= (1 << 4); +#define ALT_GMON_DATA ,"D04"(r4) +#else +#define ALT_GMON_DATA +#endif /* ALT_PROVIDE_GMON */ + + if (r2) { + ALT_SIM_FAIL(); + } else { + ALT_SIM_PASS(); + } + + __asm__ volatile ("\n0:\n\taddi %0,%0, -1\n\tbgt %0,zero,0b" : : "r" (ALT_CPU_FREQ/100) ); /* Delay for >30ms */ + + __asm__ volatile ("break 2" : : "D02"(r2), "D03"(r3) ALT_GMON_DATA ); + +#else /* !DEBUG_STUB */ + if (r2) { + ALT_SIM_FAIL(); + } else { + ALT_SIM_PASS(); + } +#endif /* DEBUG_STUB */ +} + +#define ALT_SIM_HALT(exit_code) \ + alt_sim_halt(exit_code) + +#endif /* __ALT_SIM_H__ */ diff --git a/software/qsys_tutorial_switchs18_bsp/HAL/inc/sys/alt_stack.h b/software/qsys_tutorial_switchs18_bsp/HAL/inc/sys/alt_stack.h new file mode 100644 index 0000000..e30652a --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/HAL/inc/sys/alt_stack.h @@ -0,0 +1,126 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#ifndef __ALT_STACK_H__ +#define __ALT_STACK_H__ + +/* + * alt_stack.h is the nios2 specific implementation of functions used by the + * stack overflow code. + */ + +#include "nios2.h" + +#include "alt_types.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + + +extern char * alt_stack_limit_value; + +#ifdef ALT_EXCEPTION_STACK +extern char __alt_exception_stack_pointer[]; /* set by the linker */ +#endif /* ALT_EXCEPTION_STACK */ + + +/* + * alt_stack_limit can be called to determine the current value of the stack + * limit register. + */ + +static ALT_INLINE char * ALT_ALWAYS_INLINE alt_stack_limit (void) +{ + char * limit; + NIOS2_READ_ET(limit); + + return limit; +} + +/* + * alt_stack_pointer can be called to determine the current value of the stack + * pointer register. + */ + +static ALT_INLINE char * ALT_ALWAYS_INLINE alt_stack_pointer (void) +{ + char * pointer; + NIOS2_READ_SP(pointer); + + return pointer; +} + + +#ifdef ALT_EXCEPTION_STACK + +/* + * alt_exception_stack_pointer returns the normal stack pointer from + * where it is stored on the exception stack (uppermost 4 bytes). This + * is really only useful during exception processing, and is only + * available if a separate exception stack has been configured. + */ + +static ALT_INLINE char * ALT_ALWAYS_INLINE alt_exception_stack_pointer (void) +{ + return (char *) *(alt_u32 *)(__alt_exception_stack_pointer - sizeof(alt_u32)); +} + +#endif /* ALT_EXCEPTION_STACK */ + + +/* + * alt_set_stack_limit can be called to update the current value of the stack + * limit register. + */ + +static ALT_INLINE void ALT_ALWAYS_INLINE alt_set_stack_limit (char * limit) +{ + alt_stack_limit_value = limit; + NIOS2_WRITE_ET(limit); +} + +/* + * alt_report_stack_overflow reports that a stack overflow happened. + */ + +static ALT_INLINE void ALT_ALWAYS_INLINE alt_report_stack_overflow (void) +{ + NIOS2_REPORT_STACK_OVERFLOW(); +} + + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __ALT_STACK_H__ */ + diff --git a/software/qsys_tutorial_switchs18_bsp/HAL/inc/sys/alt_stdio.h b/software/qsys_tutorial_switchs18_bsp/HAL/inc/sys/alt_stdio.h new file mode 100644 index 0000000..1730360 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/HAL/inc/sys/alt_stdio.h @@ -0,0 +1,62 @@ +#ifndef __ALT_STDIO_H__ +#define __ALT_STDIO_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +/* + * Definitions for ALT stdio routines. + */ + +#include + + +#ifdef __cplusplus +extern "C" { +#endif + +int alt_getchar(); +int alt_putchar(int c); +int alt_putstr(const char* str); +void alt_printf(const char *fmt, ...); + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_STDIO_H__ */ diff --git a/software/qsys_tutorial_switchs18_bsp/HAL/inc/sys/alt_sys_init.h b/software/qsys_tutorial_switchs18_bsp/HAL/inc/sys/alt_sys_init.h new file mode 100644 index 0000000..e4abc28 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/HAL/inc/sys/alt_sys_init.h @@ -0,0 +1,62 @@ +#ifndef __ALT_SYS_INIT_H__ +#define __ALT_SYS_INIT_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * The function alt_sys_init() is defined within the auto-generated file: + * alt_sys_init.c. This function calls the initilisation macros for all + * devices, file systems, and software components within the system. + * + * The list of initilisation macros to use is constructed using the PTF and + * STF files associated with the system. + */ + +extern void alt_sys_init (void); + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_SYS_INIT_H__ */ diff --git a/software/qsys_tutorial_switchs18_bsp/HAL/inc/sys/alt_sys_wrappers.h b/software/qsys_tutorial_switchs18_bsp/HAL/inc/sys/alt_sys_wrappers.h new file mode 100644 index 0000000..044833b --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/HAL/inc/sys/alt_sys_wrappers.h @@ -0,0 +1,100 @@ +#ifndef __ALT_SYS_WRAPPERS_H__ +#define __ALT_SYS_WRAPPERS_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/* + * This file provides the prototypes for the HAL 'UNIX style functions. The + * names of these functions are defined in alt_syscall.h. THese are defined to + * be the standard names when running the standalone HAL, e.g. open(), close() + * etc., but the names may be redefined as a part of an operating system port + * in order to avoid name clashes. + */ + +#include "os/alt_syscall.h" + +#include +#include +#include +#include +#include +#include + +extern int ALT_CLOSE (int __fd); +extern int ALT_EXECVE (const char *__path, + char * const __argv[], + char * const __envp[]); +extern void ALT_EXIT (int __status); +extern int ALT_FSTAT (int file, struct stat *st); +extern int ALT_FCNTL (int file, int cmd, ...); +extern pid_t ALT_FORK (void); +extern pid_t ALT_GETPID (void); + +#if defined (__GNUC__) && __GNUC__ >= 4 +extern int ALT_GETTIMEOFDAY (struct timeval *ptimeval, + void *ptimezone); +#else +extern int ALT_GETTIMEOFDAY (struct timeval *ptimeval, + struct timezone *ptimezone); +#endif + +extern int ALT_IOCTL (int file, int req, void* arg); +extern int ALT_ISATTY (int file); +extern int ALT_KILL (int pid, int sig); +extern int ALT_LINK (const char *existing, const char *new); +extern off_t ALT_LSEEK (int file, off_t ptr, int dir); +extern int ALT_OPEN (const char* file, int flags, ...); +extern int ALT_READ (int file, void *ptr, size_t len); +extern int ALT_RENAME (char *existing, char *new); +extern void* ALT_SBRK (ptrdiff_t incr); +extern int ALT_SETTIMEOFDAY (const struct timeval *t, + const struct timezone *tz); +extern int ALT_STAT (const char *file, struct stat *st); +extern clock_t ALT_TIMES (struct tms *buf); +extern int ALT_UNLINK (const char *name); + +#if defined (__GNUC__) && __GNUC__ >= 4 +int ALT_USLEEP (useconds_t us); +#else +unsigned int ALT_USLEEP (unsigned int us); +#endif + +extern int ALT_WAIT (int *status); +extern int ALT_WRITE (int file, const void *ptr, size_t len); + + +extern char** ALT_ENVIRON; + +/* + * + */ + +#endif /* __ALT_SYS_WRAPPERS_H__ */ diff --git a/software/qsys_tutorial_switchs18_bsp/HAL/inc/sys/alt_timestamp.h b/software/qsys_tutorial_switchs18_bsp/HAL/inc/sys/alt_timestamp.h new file mode 100644 index 0000000..8a18da2 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/HAL/inc/sys/alt_timestamp.h @@ -0,0 +1,60 @@ +#ifndef __ALT_TIMESTAMP_H__ +#define __ALT_TIMESTAMP_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#include "alt_types.h" +#include "altera_avalon_timer.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +extern int alt_timestamp_start (void); + +extern alt_timestamp_type alt_timestamp (void); + +extern alt_u32 alt_timestamp_freq (void); + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_TIMESTAMP_H__ */ diff --git a/software/qsys_tutorial_switchs18_bsp/HAL/inc/sys/alt_warning.h b/software/qsys_tutorial_switchs18_bsp/HAL/inc/sys/alt_warning.h new file mode 100644 index 0000000..b66e71a --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/HAL/inc/sys/alt_warning.h @@ -0,0 +1,75 @@ +#ifndef __WARNING_H__ +#define __WARNING_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/* + * alt_warning.h provides macro definitions that can be used to generate link + * time warnings. + */ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * The symbol "__alt_invalid" is used to force a link error. There should be + * no corresponding implementation of this function. + */ + +extern void __alt_invalid (void); + +#define ALT_LINK_WARNING(symbol, msg) \ + __asm__(".ifndef __evoke_link_warning_" #symbol \ + "\n\t .section .gnu.warning." #symbol \ + "\n__evoke_link_warning_" #symbol ":\n\t .string \x22" msg "\x22 \n\t .previous" \ + "\n .endif"); + +/* A canned warning for sysdeps/stub functions. */ + +#define ALT_STUB_WARNING(name) \ + ALT_LINK_WARNING (name, \ + "warning: " #name " is not implemented and will always fail") + +#define ALT_OBSOLETE_FUNCTION_WARNING(name) \ + ALT_LINK_WARNING (name, \ + "warning: " #name " is a deprecated function") + +#define ALT_LINK_ERROR(msg) \ + ALT_LINK_WARNING (__alt_invalid, msg); \ + __alt_invalid() + +#ifdef __cplusplus +} +#endif + +#endif /* __WARNING_H__ */ diff --git a/software/qsys_tutorial_switchs18_bsp/HAL/inc/sys/ioctl.h b/software/qsys_tutorial_switchs18_bsp/HAL/inc/sys/ioctl.h new file mode 100644 index 0000000..4d565df --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/HAL/inc/sys/ioctl.h @@ -0,0 +1,90 @@ +#ifndef __IOCTL_H__ +#define __IOCTL_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * The ioctl() system call be used to initiate a variety of control operations + * on a file descriptor. For the most part this simply translates to a call to + * the ioctl() function of the associated device driver (TIOCEXCL and + * TIOCNXCL are notable exceptions - see ioctl.c for details). + * + * The interpretation of the ioctl requests are therefore device specific. + * + * This function is equivalent to the standard Posix ioctl() call. + */ + +extern int ioctl (int fd, int req, void* arg); + +/* + * list of ioctl calls handled by the system ioctl implementation. + */ + +#define TIOCEXCL 0x740d /* exclusive use of the device */ +#define TIOCNXCL 0x740e /* allow multiple use of the device */ + +/* + * ioctl calls which can be handled by device drivers. + */ + +#define TIOCOUTQ 0x7472 /* get output queue size */ +#define TIOCMGET 0x741d /* get termios flags */ +#define TIOCMSET 0x741a /* set termios flags */ + +/* + * ioctl calls specific to JTAG UART. + */ + +#define TIOCSTIMEOUT 0x6a01 /* Set Timeout before assuming no host present */ +#define TIOCGCONNECTED 0x6a02 /* Get indication of whether host is connected */ + +/* + * + */ + +#ifdef __cplusplus +} +#endif + +#endif /* __IOCTL_H__ */ diff --git a/software/qsys_tutorial_switchs18_bsp/HAL/inc/sys/termios.h b/software/qsys_tutorial_switchs18_bsp/HAL/inc/sys/termios.h new file mode 100644 index 0000000..cd09539 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/HAL/inc/sys/termios.h @@ -0,0 +1,181 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +/* + * This is the termios.h file provided with newlib. The only modification has + * been to the baud rate macro definitions, and an increase in the size of the + * termios structure to accomodate this. + */ + + +#ifndef _SYS_TERMIOS_H +# define _SYS_TERMIOS_H + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +# define _XCGETA (('x'<<8)|1) +# define _XCSETA (('x'<<8)|2) +# define _XCSETAW (('x'<<8)|3) +# define _XCSETAF (('x'<<8)|4) +# define _TCSBRK (('T'<<8)|5) +# define _TCFLSH (('T'<<8)|7) +# define _TCXONC (('T'<<8)|6) + +# define TCOOFF 0 +# define TCOON 1 +# define TCIOFF 2 +# define TCION 3 + +# define TCIFLUSH 0 +# define TCOFLUSH 1 +# define TCIOFLUSH 2 + +# define NCCS 13 + +# define TCSAFLUSH _XCSETAF +# define TCSANOW _XCSETA +# define TCSADRAIN _XCSETAW +# define TCSADFLUSH _XCSETAF + +# define IGNBRK 000001 +# define BRKINT 000002 +# define IGNPAR 000004 +# define INPCK 000020 +# define ISTRIP 000040 +# define INLCR 000100 +# define IGNCR 000200 +# define ICRNL 000400 +# define IXON 002000 +# define IXOFF 010000 + +# define OPOST 000001 +# define OCRNL 000004 +# define ONLCR 000010 +# define ONOCR 000020 +# define TAB3 014000 + +# define CLOCAL 004000 +# define CREAD 000200 +# define CSIZE 000060 +# define CS5 0 +# define CS6 020 +# define CS7 040 +# define CS8 060 +# define CSTOPB 000100 +# define HUPCL 002000 +# define PARENB 000400 +# define PAODD 001000 + +#define CCTS_OFLOW 010000 +#define CRTS_IFLOW 020000 +#define CRTSCTS (CCTS_OFLOW | CRTS_IFLOW) + +# define ECHO 0000010 +# define ECHOE 0000020 +# define ECHOK 0000040 +# define ECHONL 0000100 +# define ICANON 0000002 +# define IEXTEN 0000400 /* anybody know *what* this does?! */ +# define ISIG 0000001 +# define NOFLSH 0000200 +# define TOSTOP 0001000 + +# define VEOF 4 /* also VMIN -- thanks, AT&T */ +# define VEOL 5 /* also VTIME -- thanks again */ +# define VERASE 2 +# define VINTR 0 +# define VKILL 3 +# define VMIN 4 /* also VEOF */ +# define VQUIT 1 +# define VSUSP 10 +# define VTIME 5 /* also VEOL */ +# define VSTART 11 +# define VSTOP 12 + +# define B0 0 +# define B50 50 +# define B75 75 +# define B110 110 +# define B134 134 +# define B150 150 +# define B200 200 +# define B300 300 +# define B600 600 +# define B1200 1200 +# define B1800 1800 +# define B2400 2400 +# define B4800 4800 +# define B9600 9600 +# define B19200 19200 +# define B38400 38400 +# define B57600 57600 +# define B115200 115200 + +typedef unsigned char cc_t; +typedef unsigned short tcflag_t; +typedef unsigned long speed_t; + +struct termios { + tcflag_t c_iflag; + tcflag_t c_oflag; + tcflag_t c_cflag; + tcflag_t c_lflag; + char c_line; + cc_t c_cc[NCCS]; + speed_t c_ispeed; + speed_t c_ospeed; +}; + +# ifndef _NO_MACROS + +# define cfgetospeed(tp) ((tp)->c_ospeed) +# define cfgetispeed(tp) ((tp)->c_ispeed) +# define cfsetospeed(tp,s) (((tp)->c_ospeed = (s)), 0) +# define cfsetispeed(tp,s) (((tp)->c_ispeed = (s)), 0) +# define tcdrain(fd) _ioctl (fd, _TCSBRK, 1) +# endif /* _NO_MACROS */ + +#ifdef __cplusplus +} +#endif + +#endif /* _SYS_TERMIOS_H */ + diff --git a/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_alarm_start.c b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_alarm_start.c new file mode 100644 index 0000000..7739959 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_alarm_start.c @@ -0,0 +1,112 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +#include "sys/alt_alarm.h" +#include "sys/alt_irq.h" + +/* + * alt_alarm_start is called to register an alarm with the system. The + * "alarm" structure passed as an input argument does not need to be + * initialised by the user. This is done within this function. + * + * The remaining input arguments are: + * + * nticks - The time to elapse until the alarm executes. This is specified in + * system clock ticks. + * callback - The function to run when the indicated time has elapsed. + * context - An opaque value, passed to the callback function. +* + * Care should be taken when defining the callback function since it is + * likely to execute in interrupt context. In particular, this mean that + * library calls like printf() should not be made, since they can result in + * deadlock. + * + * The interval to be used for the next callback is the return + * value from the callback function. A return value of zero indicates that the + * alarm should be unregistered. + * + * alt_alarm_start() will fail if the timer facility has not been enabled + * (i.e. there is no system clock). Failure is indicated by a negative return + * value. + */ + +int alt_alarm_start (alt_alarm* alarm, alt_u32 nticks, + alt_u32 (*callback) (void* context), + void* context) +{ + alt_irq_context irq_context; + alt_u32 current_nticks = 0; + + if (alt_ticks_per_second ()) + { + if (alarm) + { + alarm->callback = callback; + alarm->context = context; + + irq_context = alt_irq_disable_all (); + + current_nticks = alt_nticks(); + + alarm->time = nticks + current_nticks + 1; + + /* + * If the desired alarm time causes a roll-over, set the rollover + * flag. This will prevent the subsequent tick event from causing + * an alarm too early. + */ + if(alarm->time < current_nticks) + { + alarm->rollover = 1; + } + else + { + alarm->rollover = 0; + } + + alt_llist_insert (&alt_alarm_list, &alarm->llist); + alt_irq_enable_all (irq_context); + + return 0; + } + else + { + return -EINVAL; + } + } + else + { + return -ENOTSUP; + } +} diff --git a/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_busy_sleep.c b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_busy_sleep.c new file mode 100644 index 0000000..561c0be --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_busy_sleep.c @@ -0,0 +1,133 @@ +/* + * Copyright (c) 2003-2004 Altera Corporation, San Jose, California, USA. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + * ------------ + * + * Altera does not recommend, suggest or require that this reference design + * file be used in conjunction or combination with any other product. + * + * alt_busy_sleep.c - Microsecond delay routine which uses a calibrated busy + * loop to perform the delay. This is used to implement + * usleep for both uC/OS-II and the standalone HAL. + * + * Author PRR + * + * Calibrated delay with no timer required + * + * The ASM instructions in the routine are equivalent to + * + * for (i=0;i +#include + +#include "system.h" +#include "alt_types.h" + +#include "priv/alt_busy_sleep.h" + +unsigned int alt_busy_sleep (unsigned int us) +{ +/* + * Only delay if ALT_SIM_OPTIMIZE is not defined; i.e., if software + * is built targetting ModelSim RTL simulation, the delay will be + * skipped to speed up simulation. + */ +#ifndef ALT_SIM_OPTIMIZE + int i; + int big_loops; + alt_u32 cycles_per_loop; + + if (!strcmp(NIOS2_CPU_IMPLEMENTATION,"tiny")) + { + cycles_per_loop = 9; + } + else + { + cycles_per_loop = 3; + } + + + big_loops = us / (INT_MAX/ + (ALT_CPU_FREQ/(cycles_per_loop * 1000000))); + + if (big_loops) + { + for(i=0;i + +#include "sys/alt_errno.h" +#include "sys/alt_warning.h" +#include "priv/alt_file.h" +#include "os/alt_syscall.h" + +#ifdef ALT_USE_DIRECT_DRIVERS + +int ALT_CLOSE (int fildes) +{ + /* Generate a link time warning, should this function ever be called. */ + + ALT_STUB_WARNING(close); + + /* Indicate an error */ + + ALT_ERRNO = ENOSYS; + return -1; +} + +#else /* !ALT_USE_DIRECT_DRIVERS */ + +/* + * close() is called by an application to release a file descriptor. If the + * associated file system/device has a close() callback function registered + * then this called. The file descriptor is then marked as free. + * + * ALT_CLOSE is mapped onto the close() system call in alt_syscall.h + */ + +int ALT_CLOSE (int fildes) +{ + alt_fd* fd; + int rval; + + /* + * A common error case is that when the file descriptor was created, the call + * to open() failed resulting in a negative file descriptor. This is trapped + * below so that we don't try and process an invalid file descriptor. + */ + + fd = (fildes < 0) ? NULL : &alt_fd_list[fildes]; + + if (fd) + { + /* + * If the associated file system/device has a close function, call it so + * that any necessary cleanup code can run. + */ + + rval = (fd->dev->close) ? fd->dev->close(fd) : 0; + + /* Free the file descriptor structure and return. */ + + alt_release_fd (fildes); + if (rval < 0) + { + ALT_ERRNO = -rval; + return -1; + } + return 0; + } + else + { + ALT_ERRNO = EBADFD; + return -1; + } +} + +#endif /* ALT_USE_DIRECT_DRIVERS */ diff --git a/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_dcache_flush.c b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_dcache_flush.c new file mode 100644 index 0000000..7ecc91a --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_dcache_flush.c @@ -0,0 +1,97 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003-2005 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "nios2.h" +#include "system.h" + +#include "alt_types.h" +#include "sys/alt_cache.h" + +/* + * Nios II version 1.2 and newer supports the "flush by address" instruction, in + * addition to the "flush by line" instruction provided by older versions of + * the core. This newer instruction is used by preference when it is + * available. + */ + +#ifdef NIOS2_FLUSHDA_SUPPORTED +#define ALT_FLUSH_DATA(i) __asm__ volatile ("flushda (%0)" :: "r" (i)); +#else +#define ALT_FLUSH_DATA(i) __asm__ volatile ("flushd (%0)" :: "r" (i)); +#endif /* NIOS2_FLUSHDA_SUPPORTED */ + +/* + * alt_dcache_flush() is called to flush the data cache for a memory + * region of length "len" bytes, starting at address "start". + * + * Any dirty lines in the data cache are written back to memory. + */ + +void alt_dcache_flush (void* start, alt_u32 len) +{ +#if NIOS2_DCACHE_SIZE > 0 + + char* i; + char* end; + + /* + * This is the most we would ever need to flush. + * + * SPR 196942, 2006.01.13: The cache flush loop below will use the + * 'flushda' instruction if its available; in that case each line + * must be flushed individually, and thus 'len' cannot be trimmed. + */ + #ifndef NIOS2_FLUSHDA_SUPPORTED + if (len > NIOS2_DCACHE_SIZE) + { + len = NIOS2_DCACHE_SIZE; + } + #endif + + end = ((char*) start) + len; + + for (i = start; i < end; i+= NIOS2_DCACHE_LINE_SIZE) + { + ALT_FLUSH_DATA(i); + } + + /* + * For an unaligned flush request, we've got one more line left. + * Note that this is dependent on NIOS2_DCACHE_LINE_SIZE to be a + * multiple of 2 (which it always is). + */ + + if (((alt_u32) start) & (NIOS2_DCACHE_LINE_SIZE - 1)) + { + ALT_FLUSH_DATA(i); + } + +#endif /* NIOS2_DCACHE_SIZE > 0 */ +} diff --git a/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_dcache_flush_all.c b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_dcache_flush_all.c new file mode 100644 index 0000000..6529231 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_dcache_flush_all.c @@ -0,0 +1,51 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003-2005 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "nios2.h" +#include "system.h" + +#include "alt_types.h" +#include "sys/alt_cache.h" + +/* + * alt_dcache_flush_all() is called to flush the entire data cache. + */ + +void alt_dcache_flush_all (void) +{ +#if NIOS2_DCACHE_SIZE > 0 + char* i; + + for (i = (char*) 0; i < (char*) NIOS2_DCACHE_SIZE; i+= NIOS2_DCACHE_LINE_SIZE) + { + __asm__ volatile ("flushd (%0)" :: "r" (i)); + } +#endif /* NIOS2_DCACHE_SIZE > 0 */ +} diff --git a/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_dcache_flush_no_writeback.c b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_dcache_flush_no_writeback.c new file mode 100644 index 0000000..c65ca7d --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_dcache_flush_no_writeback.c @@ -0,0 +1,88 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2007 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "nios2.h" +#include "system.h" + +#include "alt_types.h" +#include "sys/alt_cache.h" + +/* + * The INITDA instruction was added to Nios II in the 8.0 release. + * + * The INITDA instruction has one of the following possible behaviors + * depending on the processor configuration: + * 1) Flushes a line by address but does NOT write back dirty data. + * Occurs when a data cache is present that supports INITDA. + * The macro NIOS2_INITDA_SUPPORTED is defined in system.h. + * 2) Takes an unimplemented instruction exception. + * Occurs when a data cache is present that doesn't support INITDA. + * 3) Performs no operation + * Occurs when there is no data cache present. + * The macro NIOS2_DCACHE_SIZE is 0 in system.h. + */ + +#define ALT_FLUSH_DATA_NO_WRITEBACK(i) \ + __asm__ volatile ("initda (%0)" :: "r" (i)); + +/* + * alt_dcache_flush_no_writeback() is called to flush the data cache for a + * memory region of length "len" bytes, starting at address "start". + * + * Any dirty lines in the data cache are NOT written back to memory. + * Make sure you really want this behavior. If you aren't 100% sure, + * use the alt_dcache_flush() routine instead. + */ + +void alt_dcache_flush_no_writeback (void* start, alt_u32 len) +{ +#if defined(NIOS2_INITDA_SUPPORTED) + + char* i; + char* end = ((char*) start) + len; + + for (i = start; i < end; i+= NIOS2_DCACHE_LINE_SIZE) + { + ALT_FLUSH_DATA_NO_WRITEBACK(i); + } + + /* + * For an unaligned flush request, we've got one more line left. + * Note that this is dependent on NIOS2_DCACHE_LINE_SIZE to be a + * multiple of 2 (which it always is). + */ + + if (((alt_u32) start) & (NIOS2_DCACHE_LINE_SIZE - 1)) + { + ALT_FLUSH_DATA_NO_WRITEBACK(i); + } + +#endif /* NIOS2_INITDA_SUPPORTED */ +} diff --git a/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_dev.c b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_dev.c new file mode 100644 index 0000000..ebc15e5 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_dev.c @@ -0,0 +1,149 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include +#include +#include +#include + +#include "sys/alt_dev.h" +#include "priv/alt_file.h" + +#include "alt_types.h" + +#include "system.h" + +/* + * This file contains the data constructs used to control access to device and + * filesytems. + */ + +/* + * "alt_fs_list" is the head of a linked list of registered filesystems. It is + * initialised as an empty list. New entries can be added using the + * alt_fs_reg() function. + */ + +ALT_LLIST_HEAD(alt_fs_list); + + +/* + * "alt_dev_list" is the head of a linked list of registered devices. It is + * configured at startup to include a single device, "alt_dev_null". This + * device is discussed below. + */ + +extern alt_dev alt_dev_null; /* forward declaration */ + +alt_llist alt_dev_list = {&alt_dev_null.llist, &alt_dev_null.llist}; + +/* + * alt_dev_null_write() is the implementation of the write() function used + * by the alt_dev_null device. It simple discards all data passed to it, and + * indicates that the data has been successfully transmitted. + */ + +static int alt_dev_null_write (alt_fd* fd, const char* ptr, int len) +{ + return len; +} + +/* + * "alt_dev_null" is used to allow output to be redirected to nowhere. It is + * the only device registered before the call to alt_sys_init(). At startup + * stin, stdout & stderr are all directed towards this device so that library + * calls like printf() will be safe but inefectual. + */ + +alt_dev alt_dev_null = { + { + &alt_dev_list, + &alt_dev_list + }, + "/dev/null", + NULL, /* open */ + NULL, /* close */ + NULL, /* write */ + alt_dev_null_write, /* write */ + NULL, /* lseek */ + NULL, /* fstat */ + NULL /* ioctl */ + }; + +/* + * "alt_fd_list_lock" is a semaphore used to control access to the file + * descriptor list. This is used to ensure that access to the list is thread + * safe. + */ + +ALT_SEM(alt_fd_list_lock) + +/* + * "alt_max_fd" is used to make access to the file descriptor list more + * efficent. It is set to be the value of the highest allocated file + * descriptor. This saves having to search the entire pool of unallocated + * file descriptors when looking for a match. + */ + +alt_32 alt_max_fd = -1; + +/* + * "alt_fd_list" is the file descriptor pool. The first three entries in the + * array are configured as standard in, standard out, and standard error. These + * are all initialised so that accesses are directed to the alt_dev_null + * device. The remaining file descriptors are initialised as unallocated. + * + * The maximum number of file descriptors within the system is specified by the + * user defined macro "ALT_MAX_FD". This is defined in "system.h", which is + * auto-genereated using the projects PTF and STF files. + */ + +alt_fd alt_fd_list[ALT_MAX_FD] = + { + { + &alt_dev_null, /* standard in */ + 0, + 0 + }, + { + &alt_dev_null, /* standard out */ + 0, + 0 + }, + { + &alt_dev_null, /* standard error */ + 0, + 0 + } + /* all other elements are set to zero */ + }; diff --git a/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_dev_llist_insert.c b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_dev_llist_insert.c new file mode 100644 index 0000000..fa7239d --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_dev_llist_insert.c @@ -0,0 +1,59 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "priv/alt_dev_llist.h" +#include "sys/alt_errno.h" + +/* + * + */ + +int alt_dev_llist_insert (alt_dev_llist* dev, alt_llist* list) +{ + /* + * check that the device exists, and that it has a valid name. + */ + + if (!dev || !dev->name) + { + ALT_ERRNO = EINVAL; + return -EINVAL; + } + + /* + * register the device. + */ + + alt_llist_insert(list, &dev->llist); + + return 0; +} diff --git a/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_dma_rxchan_open.c b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_dma_rxchan_open.c new file mode 100644 index 0000000..6ea3b78 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_dma_rxchan_open.c @@ -0,0 +1,63 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_dma.h" +#include "sys/alt_errno.h" +#include "priv/alt_file.h" + +/* + * The list of registered DMA receive channels. + */ + +ALT_LLIST_HEAD(alt_dma_rxchan_list); + +/* + * alt_dma_txchan_open() is used to obtain an "alt_dma_txchan" descriptor for + * a DMA transmit device. The name is the name of the associated physical + * device (e.g. "/dev/dma_0"). + * + * The return value will be NULL on failure, and non-NULL otherwise. + */ + +alt_dma_rxchan alt_dma_rxchan_open (const char* name) +{ + alt_dma_rxchan dev; + + dev = (alt_dma_rxchan) alt_find_dev (name, &alt_dma_rxchan_list); + + if (!dev) + { + ALT_ERRNO = ENODEV; + } + + return dev; +} diff --git a/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_dma_txchan_open.c b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_dma_txchan_open.c new file mode 100644 index 0000000..f41fa81 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_dma_txchan_open.c @@ -0,0 +1,63 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_dma.h" +#include "sys/alt_errno.h" +#include "priv/alt_file.h" + +/* + * The list of registered receive channels. + */ + +ALT_LLIST_HEAD(alt_dma_txchan_list); + +/* + * alt_dma_txchan_open() is used to obtain an "alt_dma_txchan" descriptor for + * a DMA transmit device. The name is the name of the associated physical + * device (e.g. "/dev/dma_0"). + * + * The return value will be NULL on failure, and non-NULL otherwise. + */ + +alt_dma_txchan alt_dma_txchan_open (const char* name) +{ + alt_dma_txchan dev; + + dev = (alt_dma_txchan) alt_find_dev (name, &alt_dma_txchan_list); + + if (!dev) + { + ALT_ERRNO = ENODEV; + } + + return dev; +} diff --git a/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_do_ctors.c b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_do_ctors.c new file mode 100644 index 0000000..ff5a1f7 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_do_ctors.c @@ -0,0 +1,64 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT IT DIRECTLY. * +* * +* Overriding HAL Functions * +* * +* To provide your own implementation of a HAL function, include the file in * +* your Nios II IDE application project. When building the executable, the * +* Nios II IDE finds your function first, and uses it in place of the HAL * +* version. * +* * +******************************************************************************/ + +/* + * + */ + +typedef void (*constructor) (void); +extern constructor __CTOR_LIST__[]; +extern constructor __CTOR_END__[]; + +/* + * Run the C++ static constructors. + */ + +void _do_ctors(void) +{ + constructor* ctor; + + for (ctor = &__CTOR_END__[-1]; ctor >= __CTOR_LIST__; ctor--) + (*ctor) (); +} diff --git a/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_do_dtors.c b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_do_dtors.c new file mode 100644 index 0000000..565c99f --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_do_dtors.c @@ -0,0 +1,64 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT IT DIRECTLY. * +* * +* Overriding HAL Functions * +* * +* To provide your own implementation of a HAL function, include the file in * +* your Nios II IDE application project. When building the executable, the * +* Nios II IDE finds your function first, and uses it in place of the HAL * +* version. * +* * +******************************************************************************/ + +/* + * + */ + +typedef void (*destructor) (void); +extern destructor __DTOR_LIST__[]; +extern destructor __DTOR_END__[]; + +/* + * Run the C++ static destructors. + */ + +void _do_dtors(void) +{ + destructor* dtor; + + for (dtor = &__DTOR_END__[-1]; dtor >= __DTOR_LIST__; dtor--) + (*dtor) (); +} diff --git a/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_env_lock.c b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_env_lock.c new file mode 100644 index 0000000..fc25a0c --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_env_lock.c @@ -0,0 +1,53 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +/* + * These are the empty env lock/unlock stubs required by newlib. These are + * used to make accesses to environment variables thread safe. The default HAL + * configuration is single threaded, so there is nothing to do here. Note that + * this requires that environment variables are never manipulated by an interrupt + * service routine. + */ + +void __env_lock ( struct _reent *_r ) +{ +} + +/* + * + */ + +void __env_unlock ( struct _reent *_r ) +{ +} diff --git a/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_environ.c b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_environ.c new file mode 100644 index 0000000..404efc4 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_environ.c @@ -0,0 +1,42 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "os/alt_syscall.h" + +/* + * These are the environment variables passed to the C code. By default there + * are no variables registered. An application can manipulate this list using + * getenv() and setenv(). + */ + +char *__env[1] = { 0 }; +char **ALT_ENVIRON = __env; diff --git a/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_errno.c b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_errno.c new file mode 100644 index 0000000..1d8368d --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_errno.c @@ -0,0 +1,44 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/* + * This file defines the alt_errno global variable. See comments in + * alt_errno.h for the use of this variable. + */ + + +#include "sys/alt_errno.h" +#include "alt_types.h" + +extern int ALT_WEAK *__errno (void); + +int* (*alt_errno) (void) = __errno; diff --git a/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_exception_entry.S b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_exception_entry.S new file mode 100644 index 0000000..3afab93 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_exception_entry.S @@ -0,0 +1,360 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003-2008 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "system.h" + +/* + * This is the exception entry point code, which saves all the caller saved + * registers and then handles the appropriate exception. It should be pulled + * in using a .globl from all the exception handler routines. This scheme is + * used so that if an interrupt is never registered, then this code will not + * appear in the generated executable, thereby improving code footprint. + * + * If an external interrpt controller (EIC) is present, it will supply an + * interrupt vector address to the processor when an interrupt occurs. For + * The Altera Vectored Interrupt Controller (VIC) driver will establish a + * vector table and the processor will jump directly to the appropriate + * table entry, funnel routine, and then user ISR. This will bypass this code + * in entirety. This code might still be linked into a system with an EIC, + * but would then be used only for non-interrupt exceptions. + */ + + /* + * Explicitly allow the use of r1 (the assembler temporary register) + * within this code. This register is normally reserved for the use of + * the assembler. + */ + .set noat + + /* + * The top and bottom of the exception stack + */ +#ifdef ALT_EXCEPTION_STACK + + .globl __alt_exception_stack_pointer + +#ifdef ALT_STACK_CHECK + + .globl __alt_exception_stack_limit + + /* + * We need to store the value of the stack limit after interrupt somewhere. + */ + .globl alt_exception_old_stack_limit + +#endif +#endif + + .section .exceptions.entry.label, "xa" + + .globl alt_exception + .type alt_exception, @function +alt_exception: + + .section .exceptions.entry, "xa" + +#ifdef ALT_EXCEPTION_STACK + +#ifdef ALT_STACK_CHECK + stw et, %gprel(alt_exception_old_stack_limit)(gp) +#endif + + movhi et, %hiadj(__alt_exception_stack_pointer - 80) + addi et, et, %lo(__alt_exception_stack_pointer - 80) + stw sp, 76(et) + mov sp, et + +#ifdef ALT_STACK_CHECK + movhi et, %hiadj(__alt_exception_stack_limit) + addi et, et, %lo(__alt_exception_stack_limit) + stw et, %gprel(alt_stack_limit_value)(gp) +#endif + +#else + /* + * Process an exception. For all exceptions we must preserve all + * caller saved registers on the stack (See the Nios2 ABI + * documentation for details). + */ + + addi sp, sp, -76 + +#ifdef ALT_STACK_CHECK + + bltu sp, et, .Lstack_overflow + +#endif + +#endif + + stw ra, 0(sp) + + /* + * Leave a gap in the stack frame at 4(sp) for the muldiv handler to + * store zero into. + */ + + stw r1, 8(sp) + stw r2, 12(sp) + stw r3, 16(sp) + stw r4, 20(sp) + stw r5, 24(sp) + stw r6, 28(sp) + stw r7, 32(sp) + + rdctl r5, estatus + + stw r8, 36(sp) + stw r9, 40(sp) + stw r10, 44(sp) + stw r11, 48(sp) + stw r12, 52(sp) + stw r13, 56(sp) + stw r14, 60(sp) + stw r15, 64(sp) + + /* + * ea-4 contains the address of the instruction being executed + * when the exception occured. For interrupt exceptions, we will + * will be re-issue the isntruction. Store it in 72(sp) + */ + stw r5, 68(sp) /* estatus */ + addi r15, ea, -4 /* instruction that caused exception */ + stw r15, 72(sp) + + /* + * The interrupt testing code (.exceptions.irqtest) will be + * linked here. If the Internal Interrupt Controller (IIC) is + * present (an EIC is not present), the presense of an interrupt + * is determined by examining CPU control registers or an interrupt + * custom instruction, if present. + * + * If the IIC is used and an interrupt is active, the code linked + * here will call the HAL IRQ handler (alt_irq_handler()) which + * successively calls registered interrupt handler(s) until no + * interrupts remain pending. It then jumps to .exceptions.exit. If + * there is no interrupt then it continues to .exception.notirq, below. + */ + + .section .exceptions.notirq, "xa" + + /* + * Prepare to service unimplemtned instructions or traps, + * each of which is optionally inked into section .exceptions.soft, + * which will preceed .exceptions.unknown below. + * + * Unlike interrupts, we want to skip the exception-causing instructon + * upon completion, so we write ea (address of instruction *after* + * the one where the exception occured) into 72(sp). The actual + * instruction that caused the exception is written in r2, which these + * handlers will utilize. + */ + stw ea, 72(sp) /* Don't re-issue */ + ldw r2, -4(ea) /* Instruction that caused exception */ + + /* + * Other exception handling code, if enabled, will be linked here. + * This includes unimplemted (multiply/divide) instruction support + * (a BSP generaton option), and a trap handler (that would typically + * be augmented with user-specific code). These are not linked in by + * default. + */ + + /* + * In the context of linker sections, "unknown" are all exceptions + * not handled by the built-in handlers above (interupt, and trap or + * unimplemented instruction decoding, if enabled). + * + * Advanced exception types can be serviced by registering a handler. + * To do so, enable the "Enable Instruction-related Exception API" HAL + * BSP setting. If this setting is disabled, this handler code will + * either break (if the debug core is present) or enter an infinite + * loop because we don't how how to handle the exception. + */ + .section .exceptions.unknown +#ifdef ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API + /* + * The C-based HAL routine alt_instruction_exception_entry() will + * attempt to service the exception by calling a user-registered + * exception handler using alt_instruction_exception_register(). + * If no handler was registered it will either break (if the + * debugger is present) or go into an infinite loop since the + * handling behavior is undefined; in that case we will not return here. + */ + + /* Load exception-causing address as first argument (r4) */ + addi r4, ea, -4 + + /* Call the instruction-exception entry */ + call alt_instruction_exception_entry + + /* + * If alt_instruction_exception_entry() returned, the exception was + * serviced by a user-registered routine. Its return code (now in r2) + * indicates whether to re-issue or skip the exception-causing + * instruction + * + * Return code was 0: Skip. The instruction after the exception is + * already stored in 72(sp). + */ + bne r2, r0, .Lexception_exit + + /* + * Otherwise, modify 72(sp) to re-issue the instruction that caused the + * exception. + */ + addi r15, ea, -4 /* instruction that caused exception */ + stw r15, 72(sp) + +#else /* ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API disabled */ + + /* + * We got here because an instruction-related exception occured, but the + * handler API was not compiled in. We do not presume to know how to + * handle it. If the debugger is present, break, otherwise hang. + * + * If you get here then one of the following could have happened: + * + * - An instruction-generated exception occured, and the processor + * does not have the extra exceptions feature enabled, or you + * have not registered a handler using + * alt_instruction_exception_register() + * + * Some examples of instruction-generated exceptions and why they + * might occur: + * + * - Your program could have been compiled for a full-featured + * Nios II core, but it is running on a smaller core, and + * instruction emulation has been disabled by defining + * ALT_NO_INSTRUCTION_EMULATION. + * + * You can work around the problem by re-enabling instruction + * emulation, or you can figure out why your program is being + * compiled for a system other than the one that it is running on. + * + * - Your program has executed a trap instruction, but has not + * implemented a handler for this instruction. + * + * - Your program has executed an illegal instruction (one which is + * not defined in the instruction set). + * + * - Your processor includes an MMU or MPU, and you have enabled it + * before registering an exception handler to service exceptions it + * generates. + * + * The problem could also be hardware related: + * - If your hardware is broken and is generating spurious interrupts + * (a peripheral which negates its interrupt output before its + * interrupt handler has been executed will cause spurious + * interrupts) + */ +#ifdef NIOS2_HAS_DEBUG_STUB + /* + * Either tell the user now (if there is a debugger attached) or go into + * the debug monitor which will loop until a debugger is attached. + */ + break +#else + /* + * If there is no debug stub then a BREAK will probably cause a reboot. + * An infinate loop will probably be more useful. + */ +0: + br 0b +#endif /* NIOS2_HAS_DEBUG_STUB */ + +#endif /* ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API */ + + .section .exceptions.exit.label +.Lexception_exit: + + .section .exceptions.exit, "xa" + + /* + * Restore the saved registers, so that all general purpose registers + * have been restored to their state at the time the interrupt occured. + */ + + ldw r5, 68(sp) + ldw ea, 72(sp) /* This becomes the PC once eret is executed */ + ldw ra, 0(sp) + + wrctl estatus, r5 + + ldw r1, 8(sp) + ldw r2, 12(sp) + ldw r3, 16(sp) + ldw r4, 20(sp) + ldw r5, 24(sp) + ldw r6, 28(sp) + ldw r7, 32(sp) + +#ifdef ALT_EXCEPTION_STACK +#ifdef ALT_STACK_CHECK + ldw et, %gprel(alt_exception_old_stack_limit)(gp) +#endif +#endif + + ldw r8, 36(sp) + ldw r9, 40(sp) + ldw r10, 44(sp) + ldw r11, 48(sp) + ldw r12, 52(sp) + ldw r13, 56(sp) + ldw r14, 60(sp) + ldw r15, 64(sp) + +#ifdef ALT_EXCEPTION_STACK + +#ifdef ALT_STACK_CHECK + stw et, %gprel(alt_stack_limit_value)(gp) + stw zero, %gprel(alt_exception_old_stack_limit)(gp) +#endif + + ldw sp, 76(sp) + +#else + addi sp, sp, 76 + +#endif + + /* + * Return to the interrupted instruction. + */ + + eret + +#ifdef ALT_STACK_CHECK + +.Lstack_overflow: + break 3 + +#endif + diff --git a/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_exception_muldiv.S b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_exception_muldiv.S new file mode 100644 index 0000000..55617a6 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_exception_muldiv.S @@ -0,0 +1,583 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003-2005 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + + /* + * This is the software multiply/divide handler for Nios2. + */ + + /* + * Provide a label which can be used to pull this file in. + */ + + .section .exceptions.start + .globl alt_exception_muldiv +alt_exception_muldiv: + + /* + * Pull in the entry/exit code. + */ + .globl alt_exception + + + .section .exceptions.soft, "xa" + + + /* INSTRUCTION EMULATION + * --------------------- + * + * Nios II processors generate exceptions for unimplemented instructions. + * The routines below emulate these instructions. Depending on the + * processor core, the only instructions that might need to be emulated + * are div, divu, mul, muli, mulxss, mulxsu, and mulxuu. + * + * The emulations match the instructions, except for the following + * limitations: + * + * 1) The emulation routines do not emulate the use of the exception + * temporary register (et) as a source operand because the exception + * handler already has modified it. + * + * 2) The routines do not emulate the use of the stack pointer (sp) or the + * exception return address register (ea) as a destination because + * modifying these registers crashes the exception handler or the + * interrupted routine. + * + * 3) To save code size, the routines do not emulate the use of the + * breakpoint registers (ba and bt) as operands. + * + * Detailed Design + * --------------- + * + * The emulation routines expect the contents of integer registers r0-r31 + * to be on the stack at addresses sp, 4(sp), 8(sp), ... 124(sp). The + * routines retrieve source operands from the stack and modify the + * destination register's value on the stack prior to the end of the + * exception handler. Then all registers except the destination register + * are restored to their previous values. + * + * The instruction that causes the exception is found at address -4(ea). + * The instruction's OP and OPX fields identify the operation to be + * performed. + * + * One instruction, muli, is an I-type instruction that is identified by + * an OP field of 0x24. + * + * muli AAAAA,BBBBB,IIIIIIIIIIIIIIII,-0x24- + * 27 22 6 0 <-- LSB of field + * + * The remaining emulated instructions are R-type and have an OP field + * of 0x3a. Their OPX fields identify them. + * + * R-type AAAAA,BBBBB,CCCCC,XXXXXX,NNNNN,-0x3a- + * 27 22 17 11 6 0 <-- LSB of field + * + * + */ + + + /* + * Split the instruction into its fields. We need 4*A, 4*B, and 4*C as + * offsets to the stack pointer for access to the stored register values. + */ + /* r2 = AAAAA,BBBBB,IIIIIIIIIIIIIIII,PPPPPP */ + roli r3, r2, 7 /* r3 = BBB,IIIIIIIIIIIIIIII,PPPPPP,AAAAA,BB */ + roli r4, r3, 3 /* r4 = IIIIIIIIIIIIIIII,PPPPPP,AAAAA,BBBBB */ + roli r6, r4, 2 /* r6 = IIIIIIIIIIIIII,PPPPPP,AAAAA,BBBBB,II */ + srai r4, r4, 16 /* r4 = (sign-extended) IMM16 */ + xori r6, r6, 0x42 /* r6 = CCC,XXXXXX,NNNNN,PPPPPP,AAAAA,bBBBB,cC */ + roli r7, r6, 5 /* r7 = XXXX,NNNNN,PPPPPP,AAAAA,bBBBB,cCCCC,XX */ + andi r5, r2, 0x3f /* r5 = 00000000000000000000000000,PPPPPP */ + xori r3, r3, 0x40 + andi r3, r3, 0x7c /* r3 = 0000000000000000000000000,aAAAA,00 */ + andi r6, r6, 0x7c /* r6 = 0000000000000000000000000,bBBBB,00 */ + andi r7, r7, 0x7c /* r7 = 0000000000000000000000000,cCCCC,00 */ + + /* Now either + * r5 = OP + * r3 = 4*(A^16) + * r4 = IMM16 (sign extended) + * r6 = 4*(B^16) + * r7 = 4*(C^16) + * or + * r5 = OP + */ + + + /* + * Save everything on the stack to make it easy for the emulation routines + * to retrieve the source register operands. The exception entry code has + * already saved some of this so we don't need to do it all again. + */ + + addi sp, sp, -60 + stw zero, 64(sp) /* Save zero on stack to avoid special case for r0. */ + /* Register at and r2-r15 have already been saved. */ + + stw r16, 0(sp) + stw r17, 4(sp) + stw r18, 8(sp) + stw r19, 12(sp) + stw r20, 16(sp) + stw r21, 20(sp) + stw r22, 24(sp) + stw r23, 28(sp) + /* et @ 32 - Has already been changed.*/ + /* bt @ 36 - Usually isn't an operand. */ + stw gp, 40(sp) + stw sp, 44(sp) + stw fp, 48(sp) + /* ea @ 52 - Don't bother to save - it's already been changed */ + /* ba @ 56 - Breakpoint register usually isn't an operand */ + /* ra @ 60 - Has already been saved */ + + + /* + * Prepare for either multiplication or division loop. + * They both loop 32 times. + */ + movi r14, 32 + + + /* + * Get the operands. + * + * It is necessary to check for muli because it uses an I-type instruction + * format, while the other instructions are have an R-type format. + */ + add r3, r3, sp /* r3 = address of A-operand. */ + ldw r3, 0(r3) /* r3 = A-operand. */ + movi r15, 0x24 /* muli opcode (I-type instruction format) */ + beq r5, r15, .Lmul_immed /* muli doesn't use the B register as a source */ + + add r6, r6, sp /* r6 = address of B-operand. */ + ldw r6, 0(r6) /* r6 = B-operand. */ + /* r4 = SSSSSSSSSSSSSSSS,-----IMM16------ */ + /* IMM16 not needed, align OPX portion */ + /* r4 = SSSSSSSSSSSSSSSS,CCCCC,-OPX--,00000 */ + srli r4, r4, 5 /* r4 = 00000,SSSSSSSSSSSSSSSS,CCCCC,-OPX-- */ + andi r4, r4, 0x3f /* r4 = 00000000000000000000000000,-OPX-- */ + + /* Now + * r5 = OP + * r3 = src1 + * r6 = src2 + * r4 = OPX (no longer can be muli) + * r7 = 4*(C^16) + * r14 = loop counter + */ + + /* ILLEGAL-INSTRUCTION EXCEPTION + * ----------------------------- + * + * This code is for Nios II cores that generate exceptions when attempting + * to execute illegal instructions. Nios II cores that support an + * illegal-instruction exception are identified by the presence of the + * macro definition NIOS2_HAS_ILLEGAL_INSTRUCTION_EXCEPTION in system.h . + * + * Remember that illegal instructions are different than unimplemented + * instructions. Illegal instructions are instruction encodings that + * have not been defined by the Nios II ISA. Unimplemented instructions + * are legal instructions that must be emulated by some Nios II cores. + * + * If we get here, all instructions except multiplies and divides + * are illegal. + * + * This code assumes that OP is not muli (because muli was tested above). + * All other multiplies and divides are legal. Anything else is illegal. + */ + + movi r8, 0x3a /* OP for R-type mul* and div* */ + bne r5, r8, .Lnot_muldiv + + /* r15 already is 0x24 */ /* OPX of divu */ + beq r4, r15, .Ldivide + + movi r15,0x27 /* OPX of mul */ + beq r4, r15, .Lmultiply + + movi r15,0x07 /* OPX of mulxuu */ + beq r4, r15, .Lmultiply + + movi r15,0x17 /* OPX of mulxsu */ + beq r4, r15, .Lmultiply + + movi r15,0x1f /* OPX of mulxss */ + beq r4, r15, .Lmultiply + + movi r15,0x25 /* OPX of div */ + bne r4, r15, .Lnot_muldiv + + + /* DIVISION + * + * Divide an unsigned dividend by an unsigned divisor using + * a shift-and-subtract algorithm. The example below shows + * 43 div 7 = 6 for 8-bit integers. This classic algorithm uses a + * single register to store both the dividend and the quotient, + * allowing both values to be shifted with a single instruction. + * + * remainder dividend:quotient + * --------- ----------------- + * initialize 00000000 00101011: + * shift 00000000 0101011:_ + * remainder >= divisor? no 00000000 0101011:0 + * shift 00000000 101011:0_ + * remainder >= divisor? no 00000000 101011:00 + * shift 00000001 01011:00_ + * remainder >= divisor? no 00000001 01011:000 + * shift 00000010 1011:000_ + * remainder >= divisor? no 00000010 1011:0000 + * shift 00000101 011:0000_ + * remainder >= divisor? no 00000101 011:00000 + * shift 00001010 11:00000_ + * remainder >= divisor? yes 00001010 11:000001 + * remainder -= divisor - 00000111 + * ---------- + * 00000011 11:000001 + * shift 00000111 1:000001_ + * remainder >= divisor? yes 00000111 1:0000011 + * remainder -= divisor - 00000111 + * ---------- + * 00000000 1:0000011 + * shift 00000001 :0000011_ + * remainder >= divisor? no 00000001 :00000110 + * + * The quotient is 00000110. + */ + +.Ldivide: + /* + * Prepare for division by assuming the result + * is unsigned, and storing its "sign" as 0. + */ + movi r17, 0 + + + /* Which division opcode? */ + xori r15, r4, 0x25 /* OPX of div */ + bne r15, zero, .Lunsigned_division + + + /* + * OPX is div. Determine and store the sign of the quotient. + * Then take the absolute value of both operands. + */ + xor r17, r3, r6 /* MSB contains sign of quotient */ + bge r3, zero, 0f + sub r3, zero, r3 /* -r3 */ +0: + bge r6, zero, 0f + sub r6, zero, r6 /* -r6 */ +0: + + +.Lunsigned_division: + /* Initialize the unsigned-division loop. */ + movi r13, 0 /* remainder = 0 */ + + /* Now + * r3 = dividend : quotient + * r4 = 0x25 for div, 0x24 for divu + * r6 = divisor + * r13 = remainder + * r14 = loop counter (already initialized to 32) + * r17 = MSB contains sign of quotient + */ + + + /* + * for (count = 32; count > 0; --count) + * { + */ +.Ldivide_loop: + + /* + * Division: + * + * (remainder:dividend:quotient) <<= 1; + */ + slli r13, r13, 1 + cmplt r15, r3, zero /* r15 = MSB of r3 */ + or r13, r13, r15 + slli r3, r3, 1 + + + /* + * if (remainder >= divisor) + * { + * set LSB of quotient + * remainder -= divisor; + * } + */ + bltu r13, r6, .Ldiv_skip + ori r3, r3, 1 + sub r13, r13, r6 +.Ldiv_skip: + + /* + * } + */ + subi r14, r14, 1 + bne r14, zero, .Ldivide_loop + + mov r9, r3 + + + /* Now + * r9 = quotient + * r4 = 0x25 for div, 0x24 for divu + * r7 = 4*(C^16) + * r17 = MSB contains sign of quotient + */ + + + /* + * Conditionally negate signed quotient. If quotient is unsigned, + * the sign already is initialized to 0. + */ + bge r17, zero, .Lstore_result + sub r9, zero, r9 /* -r9 */ + + br .Lstore_result + + + + + /* MULTIPLICATION + * + * A "product" is the number that one gets by summing a "multiplicand" + * several times. The "multiplier" specifies the number of copies of the + * multiplicand that are summed. + * + * Actual multiplication algorithms don't use repeated addition, however. + * Shift-and-add algorithms get the same answer as repeated addition, and + * they are faster. To compute the lower half of a product (pppp below) + * one shifts the product left before adding in each of the partial products + * (a * mmmm) through (d * mmmm). + * + * To compute the upper half of a product (PPPP below), one adds in the + * partial products (d * mmmm) through (a * mmmm), each time following the + * add by a right shift of the product. + * + * mmmm + * * abcd + * ------ + * #### = d * mmmm + * #### = c * mmmm + * #### = b * mmmm + * #### = a * mmmm + * -------- + * PPPPpppp + * + * The example above shows 4 partial products. Computing actual Nios II + * products requires 32 partials. + * + * It is possible to compute the result of mulxsu from the result of mulxuu + * because the only difference between the results of these two opcodes is + * the value of the partial product associated with the sign bit of rA. + * + * mulxsu = mulxuu - ((rA < 0) ? rB : 0); + * + * It is possible to compute the result of mulxss from the result of mulxsu + * because the only difference between the results of these two opcodes is + * the value of the partial product associated with the sign bit of rB. + * + * mulxss = mulxsu - ((rB < 0) ? rA : 0); + * + */ + +.Lmul_immed: + /* Opcode is muli. Change it into mul for remainder of algorithm. */ + mov r7, r6 /* Field B is dest register, not field C. */ + mov r6, r4 /* Field IMM16 is src2, not field B. */ + movi r4, 0x27 /* OPX of mul is 0x27 */ + +.Lmultiply: + /* Initialize the multiplication loop. */ + movi r9, 0 /* mul_product = 0 */ + movi r10, 0 /* mulxuu_product = 0 */ + mov r11, r6 /* save original multiplier for mulxsu and mulxss */ + mov r12, r6 /* mulxuu_multiplier (will be shifted) */ + movi r16, 1 /* used to create "rori B,A,1" from "ror B,A,r16" */ + + /* Now + * r3 = multiplicand + * r6 = mul_multiplier + * r7 = 4 * dest_register (used later as offset to sp) + * r9 = mul_product + * r10 = mulxuu_product + * r11 = original multiplier + * r12 = mulxuu_multiplier + * r14 = loop counter (already initialized) + * r15 = temp + * r16 = 1 + */ + + + /* + * for (count = 32; count > 0; --count) + * { + */ +.Lmultiply_loop: + + /* + * mul_product <<= 1; + * lsb = multiplier & 1; + */ + slli r9, r9, 1 + andi r15, r12, 1 + + /* + * if (lsb == 1) + * { + * mulxuu_product += multiplicand; + * } + */ + beq r15, zero, .Lmulx_skip + add r10, r10, r3 + cmpltu r15, r10, r3 /* Save the carry from the MSB of mulxuu_product. */ + ror r15, r15, r16 /* r15 = 0x80000000 on carry, or else 0x00000000 */ +.Lmulx_skip: + + /* + * if (MSB of mul_multiplier == 1) + * { + * mul_product += multiplicand; + * } + */ + bge r6, zero, .Lmul_skip + add r9, r9, r3 +.Lmul_skip: + + /* + * mulxuu_product >>= 1; logical shift + * mul_multiplier <<= 1; done with MSB + * mulx_multiplier >>= 1; done with LSB + */ + srli r10, r10, 1 + or r10, r10, r15 /* OR in the saved carry bit. */ + slli r6, r6, 1 + srli r12, r12, 1 + + + /* + * } + */ + subi r14, r14, 1 + bne r14, zero, .Lmultiply_loop + + + /* + * Multiply emulation loop done. + */ + + /* Now + * r3 = multiplicand + * r4 = OPX + * r7 = 4 * dest_register (used later as offset to sp) + * r9 = mul_product + * r10 = mulxuu_product + * r11 = original multiplier + * r15 = temp + */ + + + /* + * Select/compute the result based on OPX. + */ + + + /* OPX == mul? Then store. */ + xori r15, r4, 0x27 + beq r15, zero, .Lstore_result + + /* It's one of the mulx.. opcodes. Move over the result. */ + mov r9, r10 + + /* OPX == mulxuu? Then store. */ + xori r15, r4, 0x07 + beq r15, zero, .Lstore_result + + /* Compute mulxsu + * + * mulxsu = mulxuu - ((rA < 0) ? rB : 0); + */ + bge r3, zero, .Lmulxsu_skip + sub r9, r9, r11 +.Lmulxsu_skip: + + /* OPX == mulxsu? Then store. */ + xori r15, r4, 0x17 + beq r15, zero, .Lstore_result + + /* Compute mulxss + * + * mulxss = mulxsu - ((rB < 0) ? rA : 0); + */ + bge r11, zero, .Lmulxss_skip + sub r9, r9, r3 +.Lmulxss_skip: + /* At this point, assume that OPX is mulxss, so store */ + + +.Lstore_result: + add r7, r7, sp + stw r9, 0(r7) + + ldw r16, 0(sp) + ldw r17, 4(sp) + ldw r18, 8(sp) + ldw r19, 12(sp) + ldw r20, 16(sp) + ldw r21, 20(sp) + ldw r22, 24(sp) + ldw r23, 28(sp) + + /* bt @ 32 - Breakpoint register usually isn't an operand. */ + /* et @ 36 - Don't corrupt et. */ + /* gp @ 40 - Don't corrupt gp. */ + /* sp @ 44 - Don't corrupt sp. */ + ldw fp, 48(sp) + /* ea @ 52 - Don't corrupt ea. */ + /* ba @ 56 - Breakpoint register usually isn't an operand. */ + + addi sp, sp, 60 + + br .Lexception_exit + + +.Lnot_muldiv: + + addi sp, sp, 60 + + + .section .exceptions.exit.label +.Lexception_exit: + diff --git a/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_exception_trap.S b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_exception_trap.S new file mode 100644 index 0000000..60a3d40 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_exception_trap.S @@ -0,0 +1,81 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003-2005 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + + /* + * This is the trap exception handler for Nios2. + */ + + /* + * Provide a label which can be used to pull this file in. + */ + + .section .exceptions.start + .globl alt_exception_trap +alt_exception_trap: + + /* + * Pull in the entry/exit code. + */ + .globl alt_exception + + .section .exceptions.soft, "xa" + +.Ltrap_handler: + + /* + * Did a trap instruction cause the exception? + * + * The instruction which the exception occurred on has been loaded + * into r2 by code in alt_exception_entry.S + * + */ + + movhi r3,0x003b /* upper half of trap opcode */ + ori r3,r3,0x683a /* lower half of trap opcode */ + bne r2,r3,.Lnot_trap + + /* + * There is no trap handler defined here, and so executing a trap + * instruction causes a software break. If you provide a trap handler, + * then you must replace the break instruction below with your handler. + * Your handler must preserve ea and the usual callee saved registers. + */ + + break + + br .Lexception_exit + +.Lnot_trap: + + + .section .exceptions.exit.label +.Lexception_exit: + + diff --git a/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_execve.c b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_execve.c new file mode 100644 index 0000000..27b99cf --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_execve.c @@ -0,0 +1,55 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_errno.h" +#include "sys/alt_warning.h" +#include "os/alt_syscall.h" + +/* + * execve() is used by newlib to launch new processes. This is unsupported in + * the HAL environment. However a "do-nothing" implementation is still + * provied for newlib compatability. + * + * ALT_EXECVE is mapped onto the execve() system call in alt_syscall.h + */ + +int ALT_EXECVE (char *name, char ** argv, char** env) +{ + /* Generate a link time warning, should this function ever be called. */ + + ALT_STUB_WARNING(execve); + + /* Indicate an error */ + + ALT_ERRNO = ENOSYS; + return -1; +} diff --git a/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_exit.c b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_exit.c new file mode 100644 index 0000000..971b35e --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_exit.c @@ -0,0 +1,71 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_irq.h" +#include "sys/alt_sim.h" +#include "os/alt_hooks.h" +#include "os/alt_syscall.h" + +#include "alt_types.h" +#include "sys/alt_log_printf.h" +/* + * _exit() is called by exit() in order to terminate the current process. + * Typically this is called when main() completes. It should never return. + * Since there is nowhere to go once this process completes, this + * implementation simply blocks forever. + * + * Note that interrupts are not disabled so that execution outside of this + * thread is allowed to continue. + * + * ALT_EXIT is mapped onto the _exit() system call in alt_syscall.h + */ + +void ALT_EXIT (int exit_code) +{ + /* ALT_LOG - please see HAL/inc/alt_log_printf.h for details */ + ALT_LOG_PRINT_BOOT("[alt_exit.c] Entering _exit() function.\r\n"); + ALT_LOG_PRINT_BOOT("[alt_exit.c] Exit code from main was %d.\r\n",exit_code); + /* Stop all other threads */ + + ALT_LOG_PRINT_BOOT("[alt_exit.c] Calling ALT_OS_STOP().\r\n"); + ALT_OS_STOP(); + + /* Provide notification to the simulator that we've stopped */ + + ALT_LOG_PRINT_BOOT("[alt_exit.c] Calling ALT_SIM_HALT().\r\n"); + ALT_SIM_HALT(exit_code); + + /* spin forever, since there's no where to go back to */ + + ALT_LOG_PRINT_BOOT("[alt_exit.c] Spinning forever.\r\n"); + while (1); +} diff --git a/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_fcntl.c b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_fcntl.c new file mode 100644 index 0000000..69c1544 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_fcntl.c @@ -0,0 +1,101 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include + +#include +#include + +#include "sys/alt_errno.h" +#include "priv/alt_file.h" +#include "alt_types.h" +#include "os/alt_syscall.h" + +#define ALT_FCNTL_FLAGS_MASK ((alt_u32) (O_APPEND | O_NONBLOCK)) + +/* + * fcntl() is a limited implementation of the standard fcntl() system call. + * It can be used to change the state of the flags associated with an open + * file descriptor. Normally these flags are set during the call to + * open(). It is anticipated that the main use of this function will be to + * change the state of a device from blocking to non-blocking (where this is + * supported). + * + * The input argument "fd" is the file descriptor to be manipulated. "cmd" + * is the command to execute. This can be either F_GETFL (return the + * current value of the flags) or F_SETFL (set the value of the flags). + * + * If "cmd" is F_SETFL then the argument "arg" is the new value of flags, + * otherwise "arg" is ignored. Only the flags: O_APPEND and O_NONBLOCK + * can be updated by a call to fcntl(). All other flags remain + * unchanged. + * + * ALT_FCNTL is mapped onto the fcntl() system call in alt_syscall.h + */ + +int ALT_FCNTL (int file, int cmd, ...) +{ + alt_fd* fd; + long flags; + va_list argp; + + /* + * A common error case is that when the file descriptor was created, the call + * to open() failed resulting in a negative file descriptor. This is trapped + * below so that we don't try and process an invalid file descriptor. + */ + + fd = (file < 0) ? NULL : &alt_fd_list[file]; + + if (fd) + { + switch (cmd) + { + case F_GETFL: + return fd->fd_flags & ~((alt_u32) ALT_FD_FLAGS_MASK); + case F_SETFL: + va_start(argp, cmd); + flags = va_arg(argp, long); + fd->fd_flags &= ~ALT_FCNTL_FLAGS_MASK; + fd->fd_flags |= (flags & ALT_FCNTL_FLAGS_MASK); + va_end(argp); + return 0; + default: + ALT_ERRNO = EINVAL; + return -1; + } + } + + ALT_ERRNO = EBADFD; + return -1; +} diff --git a/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_fd_lock.c b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_fd_lock.c new file mode 100644 index 0000000..0e2a85d --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_fd_lock.c @@ -0,0 +1,75 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +#include "priv/alt_file.h" + +/* + * alt_fd_lock() is called as a consequence of an ioctl call to gain exclusive + * access to a device, i.e.: + * + * ioctl (fd, TIOCEXCL, NULL); + * + * If there are no other open file descriptors which reference the same + * device, then alt_fd_lock() will grant the lock. Further calls to open() + * for this device will fail until the lock is released. + * + * This is done by calling close() for this file descriptor, or by calling: + * + * ioctl (fd, TIOCNXCL, NULL); + * + * The return value is zero for success, or negative in the case of failure. + */ + +int alt_fd_lock (alt_fd* fd) +{ + int i; + int rc = 0; + + ALT_SEM_PEND(alt_fd_list_lock, 0); + + for (i = 0; i < alt_max_fd; i++) + { + if ((&alt_fd_list[i] != fd) && (alt_fd_list[i].dev == fd->dev)) + { + rc = -EACCES; + goto alt_fd_lock_exit; + } + } + fd->fd_flags |= ALT_FD_EXCL; + + alt_fd_lock_exit: + + ALT_SEM_POST(alt_fd_list_lock); + return rc; +} diff --git a/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_fd_unlock.c b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_fd_unlock.c new file mode 100644 index 0000000..fb700dc --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_fd_unlock.c @@ -0,0 +1,56 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +#include "priv/alt_file.h" + +/* + * alt_fd_unlock() is the inverse of alt_fd_lock(). It is called as a + * consequence of a TIOCNXCL ioctl request, e.g: + * + * ioctl (fd, TIOCNXCL, NULL); + * + * It enables multiple file descriptors to exist for the same device. This + * is normally the case, but it may have been disabled by a previous call to + * alt_fd_lock(). + * + * Return zero on sucess, and a negative value on failure. + * + * The current implementation always succeeds. + */ + +int alt_fd_unlock (alt_fd* fd) +{ + fd->fd_flags &= ~ALT_FD_EXCL; + return 0; +} diff --git a/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_find_dev.c b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_find_dev.c new file mode 100644 index 0000000..37aefa4 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_find_dev.c @@ -0,0 +1,88 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include +#include + +#include "sys/alt_dev.h" +#include "priv/alt_file.h" + +#include "alt_types.h" + +/* + * alt_find_dev() is used by open() in order to locate a previously registered + * device with the name "name". The input argument "llist" is a pointer to the + * head of the device list to search. + * + * The return value is a pointer to the matching device, or NULL if there is + * no match. + * + * "name" must be an exact match for the devices registered name for a match to + * be found. + */ + +alt_dev* alt_find_dev(const char* name, alt_llist* llist) +{ + alt_dev* next = (alt_dev*) llist->next; + alt_32 len; + + len = strlen(name) + 1; + + /* + * Check each list entry in turn, until a match is found, or we reach the + * end of the list (i.e. next winds up pointing back to the list head). + */ + + while (next != (alt_dev*) llist) + { + + /* + * memcmp() is used here rather than strcmp() in order to reduce the size + * of the executable. + */ + + if (!memcmp (next->name, name, len)) + { + /* match found */ + + return next; + } + next = (alt_dev*) next->llist.next; + } + + /* No match found */ + + return NULL; +} + + diff --git a/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_find_file.c b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_find_file.c new file mode 100644 index 0000000..2d97ec2 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_find_file.c @@ -0,0 +1,89 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include +#include + +#include "sys/alt_dev.h" +#include "priv/alt_file.h" + +#include "alt_types.h" + +/* + * alt_find_file() is used by open() in order to locate a previously registered + * filesystem that owns that mount point that contains the file named "name". + * + * The return value is a pointer to the matching filesystem, or NULL if there is + * no match. + * + * A match is considered to have been found if the filesystem name followed by + * either '/' or '\0' is the prefix of the filename. For example the filename: + * "/myfilesystem/junk.txt" would match: "/myfilesystem", but not: "/myfile". + */ + +alt_dev* alt_find_file (const char* name) +{ + alt_dev* next = (alt_dev*) alt_fs_list.next; + + alt_32 len; + + /* + * Check each list entry in turn, until a match is found, or we reach the + * end of the list (i.e. next winds up pointing back to the list head). + */ + + while (next != (alt_dev*) &alt_fs_list) + { + len = strlen(next->name); + + if (next->name[len-1] == '/') + { + len -= 1; + } + + if (((name[len] == '/') || (name[len] == '\0')) && + !memcmp (next->name, name, len)) + { + /* match found */ + + return next; + } + next = (alt_dev*) next->llist.next; + } + + /* No match found */ + + return NULL; +} + + diff --git a/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_flash_dev.c b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_flash_dev.c new file mode 100644 index 0000000..213f721 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_flash_dev.c @@ -0,0 +1,69 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* Alt_flash.c - Functions to register a flash device to the "generic" flash * +* interface * +* * +* Author PRR * +* * +******************************************************************************/ + +#include +#include "sys/alt_llist.h" +#include "sys/alt_flash_dev.h" +#include "priv/alt_file.h" + +ALT_LLIST_HEAD(alt_flash_dev_list); + +alt_flash_fd* alt_flash_open_dev(const char* name) +{ + alt_flash_dev* dev = (alt_flash_dev*)alt_find_dev(name, &alt_flash_dev_list); + + if ((dev) && dev->open) + { + return dev->open(dev, name); + } + + return dev; +} + +void alt_flash_close_dev(alt_flash_fd* fd) +{ + if (fd && fd->close) + { + fd->close(fd); + } + return; +} + diff --git a/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_fork.c b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_fork.c new file mode 100644 index 0000000..ce74df0 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_fork.c @@ -0,0 +1,57 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_warning.h" +#include "sys/alt_errno.h" +#include "os/alt_syscall.h" + +/* + * The fork() system call is used by newlib to create a duplicate copy of the + * curent process. This is unsupported in the HAL environment. However a + * "do-nothing" implementation is still provied for newlib compatability. + * + * ALT_FORK is mapped onto the fork() system call in alt_syscall.h + */ + +int ALT_FORK (void) +{ + /* Generate a link time warning, should this function ever be called. */ + + ALT_STUB_WARNING(fork); + + /* Indicate an error */ + + ALT_ERRNO = ENOSYS; + return -1; +} + + diff --git a/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_fs_reg.c b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_fs_reg.c new file mode 100644 index 0000000..13437a1 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_fs_reg.c @@ -0,0 +1,75 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +#include "sys/alt_dev.h" +#include "priv/alt_file.h" + +/* + * The alt_fs_reg() function is used to register a file system. Once registered + * a device can be accessed using the standard posix calls: open(), read(), + * write() etc. + * + * System behaviour is undefined in the event that a file system is registered + * with a name that conflicts with an existing device or file system. + * + * alt_fs_reg() is not thread safe in the sense that there should be no other + * thread using the file system list at the time that alt_dev_reg() is called. In + * practice this means that alt_fs_reg() should only be called while operating + * in a single threaded mode. The expectation is that it will only be called + * by the file system initilisation functions invoked by alt_sys_init(), which in + * turn should only be called by the single threaded C startup code. + * + * A return value of zero indicates success. A negative return value indicates + * failure. + */ + +int alt_fs_reg (alt_dev* dev) +{ + /* + * check that the device has a name. + */ + + if (!dev->name) + { + return -ENODEV; + } + + /* + * register the file system. + */ + + alt_llist_insert(&alt_fs_list, &dev->llist); + + return 0; +} diff --git a/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_fstat.c b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_fstat.c new file mode 100644 index 0000000..af5d527 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_fstat.c @@ -0,0 +1,128 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include + +#include "sys/alt_dev.h" +#include "sys/alt_warning.h" +#include "sys/alt_errno.h" +#include "priv/alt_file.h" +#include "os/alt_syscall.h" + +/* + * The fstat() system call is used to obtain information about the capabilities + * of an open file descriptor. By default file descriptors are marked as + * being character devices. If a device or file system wishes to advertise + * alternative capabilities then they can register an fstat() function within + * their associated alt_dev structure. This will be called to fill in the + * entries in the imput "st" structure. + * + * This function is provided for compatability with newlib. + * + * ALT_FSTAT is mapped onto the fstat() system call in alt_syscall.h + */ + +#ifdef ALT_USE_DIRECT_DRIVERS + +#include "system.h" + +/* + * Provide minimal version that just describes all file descriptors + * as character devices for provided stdio devices. + */ +int ALT_FSTAT (int file, struct stat *st) +{ + switch (file) { +#ifdef ALT_STDIN_PRESENT + case 0: /* stdin file descriptor */ +#endif /* ALT_STDIN_PRESENT */ +#ifdef ALT_STDOUT_PRESENT + case 1: /* stdout file descriptor */ +#endif /* ALT_STDOUT_PRESENT */ +#ifdef ALT_STDERR_PRESENT + case 2: /* stderr file descriptor */ +#endif /* ALT_STDERR_PRESENT */ + st->st_mode = _IFCHR; + return 0; + default: + return -1; + } + +#if !defined(ALT_STDIN_PRESENT) && !defined(ALT_STDOUT_PRESENT) && !defined(ALT_STDERR_PRESENT) + /* Generate a link time warning, should this function ever be called. */ + ALT_STUB_WARNING(fstat); +#endif +} + +#else /* !ALT_USE_DIRECT_DRIVERS */ + +int ALT_FSTAT (int file, struct stat *st) +{ + alt_fd* fd; + + /* + * A common error case is that when the file descriptor was created, the call + * to open() failed resulting in a negative file descriptor. This is trapped + * below so that we don't try and process an invalid file descriptor. + */ + + fd = (file < 0) ? NULL : &alt_fd_list[file]; + + if (fd) + { + /* Call the drivers fstat() function to fill out the "st" structure. */ + + if (fd->dev->fstat) + { + return fd->dev->fstat(fd, st); + } + + /* + * If no function is provided, mark the fd as belonging to a character + * device. + */ + + else + { + st->st_mode = _IFCHR; + return 0; + } + } + else + { + ALT_ERRNO = EBADFD; + return -1; + } +} + +#endif /* ALT_USE_DIRECT_DRIVERS */ diff --git a/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_get_fd.c b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_get_fd.c new file mode 100644 index 0000000..db17b2c --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_get_fd.c @@ -0,0 +1,105 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include +#include + +#include "sys/alt_dev.h" +#include "priv/alt_file.h" + +#include "alt_types.h" + +#include "system.h" + +/* + * alt_get_fd() is called to allocate a new file descriptor from the file + * descriptor pool. If a file descriptor is succesfully allocated, it is + * configured to refer to device "dev". + * + * The return value is the index of the file descriptor structure (i.e. + * the offset of the file descriptor within the file descriptor array). A + * negative value indicates failure. + */ + +int alt_get_fd (alt_dev* dev) +{ + alt_32 i; + int rc = -EMFILE; + + /* + * Take the alt_fd_list_lock semaphore in order to avoid races when + * accessing the file descriptor pool. + */ + + ALT_SEM_PEND(alt_fd_list_lock, 0); + + /* + * Search through the list of file descriptors, and allocate the first + * free descriptor that's found. + * + * If a free descriptor is found, then the value of "alt_max_fd" is + * updated accordingly. "alt_max_fd" is a 'highwater mark' which + * indicates the highest file descriptor ever allocated. This is used to + * improve efficency when searching the file descriptor list, and + * therefore reduce contention on the alt_fd_list_lock semaphore. + */ + + for (i = 0; i < ALT_MAX_FD; i++) + { + if (!alt_fd_list[i].dev) + { + alt_fd_list[i].dev = dev; + if (i > alt_max_fd) + { + alt_max_fd = i; + } + rc = i; + goto alt_get_fd_exit; + } + } + + alt_get_fd_exit: + + /* + * Release the alt_fd_list_lock semaphore now that we are done with the + * file descriptor pool. + */ + + ALT_SEM_POST(alt_fd_list_lock); + + return rc; +} + + + + diff --git a/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_getchar.c b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_getchar.c new file mode 100644 index 0000000..a8f50d5 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_getchar.c @@ -0,0 +1,61 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +#ifdef ALT_USE_DIRECT_DRIVERS +#include "system.h" +#include "sys/alt_driver.h" +#include "sys/alt_stdio.h" +#include "priv/alt_file.h" +#include "unistd.h" +#endif + +/* + * Uses the ALT_DRIVER_READ() macro to call directly to driver if available. + * Otherwise, uses newlib provided getchar() routine. + */ +int +alt_getchar(void) +{ +#ifdef ALT_USE_DIRECT_DRIVERS + ALT_DRIVER_READ_EXTERNS(ALT_STDIN_DEV); + char c; + + if (ALT_DRIVER_READ(ALT_STDIN_DEV, &c, 1, alt_fd_list[STDIN_FILENO].fd_flags) <= 0) { + return -1; + } + return c; +#else + return getchar(); +#endif +} diff --git a/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_getpid.c b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_getpid.c new file mode 100644 index 0000000..2228c7e --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_getpid.c @@ -0,0 +1,47 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "os/alt_syscall.h" + +/* + * The getpid() system call is used by newlib to obtain the current process + * id. Since there is only ever a single process in the HAL environment, + * this just returns a constant. + * + * ALT_GETPID is mapped onto the getpid() system call in alt_syscall.h + */ + +int ALT_GETPID (void) +{ + return 0; +} + diff --git a/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_gettod.c b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_gettod.c new file mode 100644 index 0000000..ed86cba --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_gettod.c @@ -0,0 +1,125 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include +#include + +#include "sys/alt_alarm.h" +#include "alt_types.h" +#include "os/alt_syscall.h" + +/* + * Macro defining the number of micoseconds in a second. + */ + +#define ALT_US (1000000) + +/* + * "alt_timezone" and "alt_resettime" are the values of the the reset time and + * time zone set through the last call to settimeofday(). By default they are + * zero initialised. + */ + +struct timezone alt_timezone = {0, 0}; +struct timeval alt_resettime = {0, 0}; + +/* + * gettimeofday() can be called to obtain a time structure which indicates the + * current "wall clock" time. This is calculated using the elapsed number of + * system clock ticks, and the value of "alt_resettime" and "alt_timezone" set + * through the last call to settimeofday(). + * + * Warning: if this function is called concurrently with a call to + * settimeofday(), the value returned by gettimeofday() will be unreliable. + * + * ALT_GETTIMEOFDAY is mapped onto the gettimeofday() system call in + * alt_syscall.h + */ + + +#if defined (__GNUC__) && (__GNUC__ >= 4) +int ALT_GETTIMEOFDAY (struct timeval *ptimeval, void *ptimezone_vptr) +{ + struct timezone *ptimezone = (struct timezone*)ptimezone_vptr; +#else +int ALT_GETTIMEOFDAY (struct timeval *ptimeval, struct timezone *ptimezone) +{ +#endif + + alt_u32 nticks = alt_nticks (); + alt_u32 tick_rate = alt_ticks_per_second (); + + /* + * Check to see if the system clock is running. This is indicated by a + * non-zero system clock rate. If the system clock is not running, an error + * is generated and the contents of "ptimeval" and "ptimezone" are not + * updated. + */ + + if (tick_rate) + { + ptimeval->tv_sec = alt_resettime.tv_sec + nticks/tick_rate; + ptimeval->tv_usec = alt_resettime.tv_usec + + (alt_u32)(((alt_u64)nticks*(ALT_US/tick_rate))%ALT_US); + + while(ptimeval->tv_usec < 0) { + if (ptimeval->tv_sec <= 0) + { + ptimeval->tv_sec = 0; + ptimeval->tv_usec = 0; + break; + } + else + { + ptimeval->tv_sec--; + ptimeval->tv_usec += ALT_US; + } + } + + while(ptimeval->tv_usec >= ALT_US) { + ptimeval->tv_sec++; + ptimeval->tv_usec -= ALT_US; + } + + if (ptimezone) + { + ptimezone->tz_minuteswest = alt_timezone.tz_minuteswest; + ptimezone->tz_dsttime = alt_timezone.tz_dsttime; + } + + return 0; + } + + return -ENOTSUP; +} + diff --git a/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_gmon.c b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_gmon.c new file mode 100644 index 0000000..6add9f1 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_gmon.c @@ -0,0 +1,272 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003-2005 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include +#include +#include + +#include "priv/nios2_gmon_data.h" + +#include "sys/alt_irq.h" +#include "sys/alt_alarm.h" + + +/* Macros */ + +/* How large should the bins be which we use to generate the histogram */ +#define PCSAMPLE_BYTES_PER_BUCKET 32 + +#define NIOS2_READ_EA(dest) __asm__ ("mov %0, ea" : "=r" (dest)) + +/* The compiler inserts calls to mcount() at the start of + * every function call. The structure mcount_fn_arc records t + * he return address of the function called (in from_pc) + * and the return address of the mcount function + * (in self_pc). The number of times this arc is executed is + * recorded in the field count. + */ +struct mcount_fn_arc +{ + struct mcount_fn_arc * next; + void * from_pc; + unsigned int count; +}; + +/* We need to maintain a list of pointers to the heads of each adjacency + * list so that we can find them when writing out the gmon.out file. Since + * we don't know at the start of program execution how many functions will + * be called we use a list structure to do this. + */ +struct mcount_fn_entry +{ + struct mcount_fn_entry * next; + void * self_pc; + struct mcount_fn_arc * arc_head; +}; + +/* function prototypes */ + +void __mcount_record(void * self_pc, void * from_pc, struct mcount_fn_entry * fn_entry, struct mcount_fn_entry * * fn_head) __attribute__ ((no_instrument_function)); + +static __inline__ void * mcount_allocate(unsigned int size) __attribute__ ((no_instrument_function)); +static int nios2_pcsample_init(void) __attribute__ ((no_instrument_function)); +static alt_u32 nios2_pcsample(void* alarm) __attribute__ ((no_instrument_function)); + +/* global variables */ + +/* stext and etext are defined in the linker script */ +extern char stext[]; +extern char etext[]; + +/* Is the PC sampling stuff enabled yet? */ +static int pcsample_need_init = 1; + +#define HASH_BUCKETS 64 /* Must be a power of 2 */ + +/* This points to the list of adjacency list pointers. */ +struct mcount_fn_entry * __mcount_fn_head[HASH_BUCKETS]; + +/* pointer to the in-memory buffer containing the histogram */ +static unsigned short* s_pcsamples = 0; + +/* the address of the start and end of text section */ +static const unsigned int s_low_pc = (unsigned int)stext; +static const unsigned int s_high_pc = (unsigned int)etext; + +/* the alarm structure to register for pc sampling */ +static alt_alarm s_nios2_pcsample_alarm; + +unsigned int alt_gmon_data[GMON_DATA_SIZE] = +{ + 0x6e6f6d67, /* "gmon" */ + GMON_DATA_SIZE, + 0, + (unsigned int)stext, + (unsigned int)etext, + PCSAMPLE_BYTES_PER_BUCKET, + 0, + (unsigned int)__mcount_fn_head, + (unsigned int)(__mcount_fn_head + HASH_BUCKETS) +}; + +/* This holds the current slab of memory we're allocating out of */ +static char * mcount_slab_ptr = 0; +static int mcount_slab_size = 0; + +#define MCOUNT_SLAB_INCREMENT 1020 + + +/* + * We can't use malloc to allocate memory because that's too complicated, and + * can't be called at interrupt time. Use the lower level allocator instead + * because that's interrupt safe (and because we never free anything). + * + * For speed, we allocate a block of data at once. + */ +static __inline__ void * mcount_allocate(unsigned int size) +{ + void * data; + + if (size > mcount_slab_size) + { + mcount_slab_ptr = sbrk(MCOUNT_SLAB_INCREMENT); + mcount_slab_size = MCOUNT_SLAB_INCREMENT; + } + + data = mcount_slab_ptr; + mcount_slab_ptr += size; + mcount_slab_size -= size; + + return data; +} + + +/* + * Add the arc with the values of frompc and topc given to the graph. + * This function might be called at interrupt time so must be able to + * cope with reentrancy. + * + * The fast case, where we have already allocated a function arc, has been + * handled by the assmebler code. + */ +void __mcount_record(void * self_pc, void * from_pc, struct mcount_fn_entry * fn_entry, struct mcount_fn_entry * * fn_head) +{ + alt_irq_context context; + struct mcount_fn_arc * arc_entry; + + /* Keep trying to start up the PC sampler until it is running. + * (It can't start until the timer is going). + */ + if (pcsample_need_init) + { + pcsample_need_init = 0; + pcsample_need_init = nios2_pcsample_init(); + } + + /* + * We must disable interrupts around the allocation and the list update to + * prevent corruption if the instrumented function is re-entrant. + * + * It's safe for the code above to be stepping through the chain and be + * interrupted by this code modifying it - there is an edge case which will + * leave two copies of the same arc on the list (both with count=1), but + * this is dealt with on the host. + */ + context = alt_irq_disable_all(); + + if (fn_entry == NULL) + { + /* Add it to the list of functions we must output later. */ + fn_entry = (struct mcount_fn_entry *)mcount_allocate(sizeof(struct mcount_fn_entry)); + + fn_entry->self_pc = self_pc; + fn_entry->arc_head = NULL; + + fn_entry->next = *fn_head; + *fn_head = fn_entry; + } + + /* We will need a new list entry - if there was a list entry before + * then the assembler code would have handled it. */ + arc_entry = (struct mcount_fn_arc *)mcount_allocate(sizeof(struct mcount_fn_arc)); + + arc_entry->from_pc = from_pc; + arc_entry->count = 1; + + arc_entry->next = fn_entry->arc_head; + fn_entry->arc_head = arc_entry; + + alt_irq_enable_all(context); +} + + +/* + * nios2_pcsample_init starts profiling. + * It is called the first time mcount is called, and on subsequent calls to + * mcount until it returns zero. It initializes the pc histogram and turns on + * timer driven pc sampling. + */ +static int nios2_pcsample_init(void) +{ + unsigned int pcsamples_size; + + /* We sample the PC every tick */ + unsigned int prof_rate = alt_ticks_per_second(); + if (prof_rate == 0) + return 1; + + /* allocate the histogram buffer s_pcsamples */ + pcsamples_size = (s_high_pc - s_low_pc)/PCSAMPLE_BYTES_PER_BUCKET; + s_pcsamples = (unsigned short*)sbrk(pcsamples_size * sizeof(unsigned short)); + + if (s_pcsamples != 0) + { + /* initialize the buffer to zero */ + memset(s_pcsamples, 0, pcsamples_size * sizeof(unsigned short)); + + alt_gmon_data[GMON_DATA_PROFILE_DATA] = (int)s_pcsamples; + alt_gmon_data[GMON_DATA_PROFILE_RATE] = prof_rate; + + /* Sample every tick (it's cheap) */ + alt_alarm_start(&s_nios2_pcsample_alarm, 1, nios2_pcsample, 0); + } + + return 0; +} + + +/* + * Sample the PC value and store it in the histogram + */ +static alt_u32 nios2_pcsample(void* context) +{ + unsigned int pc; + unsigned int bucket; + + /* read the exception return address - this will be + * inaccurate if there are nested interrupts but we + * assume that this is rare and the inaccuracy will + * not be great */ + NIOS2_READ_EA(pc); + + /* + * If we're within the profilable range then increment the relevant + * bucket in the histogram + */ + if (pc >= s_low_pc && pc < s_high_pc && s_pcsamples != 0) + { + bucket = (pc - s_low_pc)/PCSAMPLE_BYTES_PER_BUCKET; + s_pcsamples[bucket]++; + } + + /* Sample every tick */ + return 1; +} + diff --git a/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_icache_flush.c b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_icache_flush.c new file mode 100644 index 0000000..4b706ed --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_icache_flush.c @@ -0,0 +1,84 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "nios2.h" +#include "system.h" + +#include "alt_types.h" +#include "sys/alt_cache.h" + +/* + * alt_icache_flush() is called to flush the instruction cache for a memory + * region of length "len" bytes, starting at address "start". + */ + +void alt_icache_flush (void* start, alt_u32 len) +{ +#if NIOS2_ICACHE_SIZE > 0 + + char* i; + char* end; + + /* + * This is the most we would ever need to flush. + */ + + if (len > NIOS2_ICACHE_SIZE) + { + len = NIOS2_ICACHE_SIZE; + } + + end = ((char*) start) + len; + + for (i = start; i < end; i+= NIOS2_ICACHE_LINE_SIZE) + { + __asm__ volatile ("flushi %0" :: "r" (i)); + } + + /* + * For an unaligned flush request, we've got one more line left. + * Note that this is dependent on NIOS2_ICACHE_LINE_SIZE to be a + * multiple of 2 (which it always is). + */ + + if (((alt_u32) start) & (NIOS2_ICACHE_LINE_SIZE - 1)) + { + __asm__ volatile ("flushi %0" :: "r" (i)); + } + + /* + * Having flushed the cache, flush any stale instructions in the + * pipeline + */ + + __asm__ volatile ("flushp"); + +#endif /* NIOS2_ICACHE_SIZE > 0 */ +} diff --git a/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_icache_flush_all.c b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_icache_flush_all.c new file mode 100644 index 0000000..5088552 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_icache_flush_all.c @@ -0,0 +1,46 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "nios2.h" +#include "system.h" + +#include "alt_types.h" +#include "sys/alt_cache.h" + +/* + * alt_icache_flush_all() is called to flush the entire instruction cache. + */ + +void alt_icache_flush_all (void) +{ +#if NIOS2_ICACHE_SIZE > 0 + alt_icache_flush (0, NIOS2_ICACHE_SIZE); +#endif +} diff --git a/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_iic.c b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_iic.c new file mode 100644 index 0000000..1db5afa --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_iic.c @@ -0,0 +1,106 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2009 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ +#include "system.h" + +/* + * This file implements the HAL Enhanced interrupt API for Nios II processors + * with an internal interrupt controller (IIC). For most routines, this serves + * as a wrapper layer over the legacy interrupt API (which must be used with + * the IIC only). + * + * Use of the enhanced API is recommended so that application and device + * drivers are compatible with a Nios II system configured with an external + * interrupt controller (EIC), or IIC. This will afford maximum portability. + * + * If an EIC is present, the EIC device driver must provide these routines, + * because their operation will be specific to that EIC type. + */ +#ifndef NIOS2_EIC_PRESENT +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT + +#include "sys/alt_irq.h" +#include "priv/alt_iic_isr_register.h" +#include "priv/alt_legacy_irq.h" + +/** @Function Description: This function registers an interrupt handler. + * If the function is succesful, then the requested interrupt will be enabled upon + * return. Registering a NULL handler will disable the interrupt. + * @API Type: External + * @param ic_id Ignored. + * @param irq IRQ number + * @return 0 if successful, else error (-1) + */ +int alt_ic_isr_register(alt_u32 ic_id, alt_u32 irq, alt_isr_func isr, + void *isr_context, void *flags) +{ + return alt_iic_isr_register(ic_id, irq, isr, isr_context, flags); +} + +/** @Function Description: This function enables a single interrupt. + * @API Type: External + * @param ic_id Ignored. + * @param irq IRQ number + * @return 0 if successful, else error (-1) + */ +int alt_ic_irq_enable (alt_u32 ic_id, alt_u32 irq) +{ + return alt_irq_enable(irq); +} + +/** @Function Description: This function disables a single interrupt. + * @API Type: External + * @param ic_id Ignored. + * @param irq IRQ number + * @return 0 if successful, else error (-1) + */ +int alt_ic_irq_disable(alt_u32 ic_id, alt_u32 irq) +{ + return alt_irq_disable(irq); +} + +/** @Function Description: This function to determine if corresponding + * interrupt is enabled. + * @API Type: External + * @param ic_id Ignored. + * @param irq IRQ number + * @return Zero if corresponding interrupt is disabled and + * non-zero otherwise. + */ +alt_u32 alt_ic_irq_enabled(alt_u32 ic_id, alt_u32 irq) +{ + alt_u32 irq_enabled; + + NIOS2_READ_IENABLE(irq_enabled); + + return (irq_enabled & (1 << irq)) ? 1: 0; +} + +#endif /* ALT_ENHANCED_INTERRUPT_API_PRESENT */ +#endif /* NIOS2_EIC_PRESENT */ diff --git a/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_iic_isr_register.c b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_iic_isr_register.c new file mode 100644 index 0000000..b104395 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_iic_isr_register.c @@ -0,0 +1,104 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2009 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ +#include +#include "system.h" + +/* + * Provides an interrupt registry mechanism for the any CPUs internal interrupt + * controller (IIC) when the enhanced interrupt API is active. + */ +#ifndef ALT_CPU_EIC_PRESENT +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT + +#include "alt_types.h" +#include "sys/alt_irq.h" +#include "priv/alt_iic_isr_register.h" + +/* + * The header, alt_irq_entry.h, contains the exception entry point, and is + * provided by the processor component. It is included here, so that the code + * will be added to the executable only if alt_irq_register() is present, i.e. + * if no interrupts are registered - there's no need to provide any + * interrupt handling. + */ + +#include "sys/alt_irq_entry.h" + +/* + * The header, alt_irq_table.h contains a table describing which function + * handles each interrupt. + */ + +#include "priv/alt_irq_table.h" + +/** @Function Description: This function registers an interrupt handler. + * If the function is succesful, then the requested interrupt will be enabled + * upon return. Registering a NULL handler will disable the interrupt. + * + * @API Type: External + * @param ic_id Interrupt controller ID + * @param irq IRQ ID number + * @param isr Pointer to interrupt service routine + * @param isr_context Opaque pointer passed to ISR + * @param flags + * @return 0 if successful, else error (-1) + */ +int alt_iic_isr_register(alt_u32 ic_id, alt_u32 irq, alt_isr_func isr, + void *isr_context, void *flags) +{ + int rc = -EINVAL; + int id = irq; /* IRQ interpreted as the interrupt ID. */ + alt_irq_context status; + + if (id < ALT_NIRQ) + { + /* + * interrupts are disabled while the handler tables are updated to ensure + * that an interrupt doesn't occur while the tables are in an inconsistant + * state. + */ + + status = alt_irq_disable_all(); + + alt_irq[id].handler = isr; + alt_irq[id].context = isr_context; + + rc = (isr) ? alt_ic_irq_enable(ic_id, id) : alt_ic_irq_disable(ic_id, id); + + alt_irq_enable_all(status); + } + + return rc; +} + +#endif /* ALT_ENHANCED_INTERRUPT_API_PRESENT */ +#endif /* ALT_CPU_EIC_PRESENT */ diff --git a/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_instruction_exception_entry.c b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_instruction_exception_entry.c new file mode 100644 index 0000000..f4f52fc --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_instruction_exception_entry.c @@ -0,0 +1,203 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2008 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ +#include "sys/alt_exceptions.h" +#include "nios2.h" +#include "alt_types.h" +#include "system.h" + +/* + * This file implements support for calling user-registered handlers for + * instruction-generated exceptions. This handler could also be reached + * in the event of a spurious interrupt. + * + * The handler code is optionally enabled through the "Enable + * Instruction-related Exception API" HAL BSP setting, which will + * define the macro below. + */ +#ifdef ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API + +/* Function pointer to exception callback routine */ +alt_exception_result (*alt_instruction_exception_handler) + (alt_exception_cause, alt_u32, alt_u32) = 0x0; + +/* Link entry routine to .exceptions section */ +int alt_instruction_exception_entry (alt_u32 exception_pc) + __attribute__ ((section (".exceptions"))); + +/* + * This is the entry point for instruction-generated exceptions handling. + * This routine will be called by alt_exceptions_entry.S, after it determines + * that an exception could not be handled by handlers that preceed that + * of instruction-generated exceptions (such as interrupts). + * + * For this to function properly, you must register an exception handler + * using alt_instruction_exception_register(). This routine will call + * that handler if it has been registered. Absent a handler, it will + * break break or hang as discussed below. + */ +int alt_instruction_exception_entry (alt_u32 exception_pc) +{ + alt_u32 cause, badaddr; + +/* + * If the processor hardware has the optional EXCEPTIONS & BADADDR registers, + * read them and pass their content to the user handler. These are always + * present if the MMU or MPU is enabled, and optionally for other advanced + * exception types via the "Extra exceptions information" setting in the + * processor (hardware) configuration. + * + * If these registers are not present, the cause field will be set to + * NIOS2_EXCEPTION_CAUSE_NOT_PRESENT. Your handling routine should + * check the validity of the cause argument before proceeding. + */ +#ifdef NIOS2_HAS_EXTRA_EXCEPTION_INFO + /* Get exception cause & "badaddr" */ + NIOS2_READ_EXCEPTION(cause); + cause = ( (cause & NIOS2_EXCEPTION_REG_CAUSE_MASK) >> + NIOS2_EXCEPTION_REG_CAUSE_OFST ); + + NIOS2_READ_BADADDR(badaddr); +#else + cause = NIOS2_EXCEPTION_CAUSE_NOT_PRESENT; + badaddr = 0; +#endif /* NIOS2_HAS_EXTRA_EXCEPTION_INFO */ + + if(alt_instruction_exception_handler) { + /* + * Call handler. Its return value indicates whether the exception-causing + * instruction should be re-issued. The code that called us, + * alt_eceptions_entry.S, will look at this value and adjust the ea + * register as necessary + */ + return alt_instruction_exception_handler(cause, exception_pc, badaddr); + } + /* + * We got here because an instruction-generated exception occured, but no + * handler is present. We do not presume to know how to handle it. If the + * debugger is present, break, otherwise hang. + * + * If you've reached here in the debugger, consider examining the + * EXCEPTIONS register cause bit-field, which was read into the 'cause' + * variable above, and compare it against the exceptions-type enumeration + * in alt_exceptions.h. This register is availabe if the MMU or MPU is + * present, or if the "Extra exceptions information" hardware option is + * selected. + * + * If you get here then one of the following could have happened: + * + * - An instruction-generated exception occured, and the processor + * does not have the extra exceptions feature enabled, or you + * have not registered a handler using + * alt_instruction_exception_register() + * + * Some examples of instruction-generated exceptions and why they + * might occur: + * + * - Your program could have been compiled for a full-featured + * Nios II core, but it is running on a smaller core, and + * instruction emulation has been disabled by defining + * ALT_NO_INSTRUCTION_EMULATION. + * + * You can work around the problem by re-enabling instruction + * emulation, or you can figure out why your program is being + * compiled for a system other than the one that it is running on. + * + * - Your program has executed a trap instruction, but has not + * implemented a handler for this instruction. + * + * - Your program has executed an illegal instruction (one which is + * not defined in the instruction set). + * + * - Your processor includes an MMU or MPU, and you have enabled it + * before registering an exception handler to service exceptions it + * generates. + * + * The problem could also be hardware related: + * - If your hardware is broken and is generating spurious interrupts + * (a peripheral which negates its interrupt output before its + * interrupt handler has been executed will cause spurious interrupts) + */ + else { +#ifdef NIOS2_HAS_DEBUG_STUB + NIOS2_BREAK(); +#else + while(1) + ; +#endif /* NIOS2_HAS_DEBUG_STUB */ + } + + /* // We should not get here. Remove compiler warning. */ + return NIOS2_EXCEPTION_RETURN_REISSUE_INST; +} + +#endif /* ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API */ + +/* + * This routine indicates whether a particular exception cause will have + * set a valid address into the BADADDR register, which is included + * in the arguments to a user-registered instruction-generated exception + * handler. Many exception types do not set valid contents in BADADDR; + * this is a convenience routine to easily test the validity of that + * argument in your handler. + * + * Note that this routine will return false (0) for cause '12', + * TLB miss. This is because there are four exception types that + * share that cause, two of which do not have a valid BADADDR. You + * must determine BADADDR's validity for these. + * + * Arguments: + * cause: The 5-bit exception cause field of the EXCEPTIONS register, + * shifted to the LSB position. You may pass the 'cause' argument + * in a handler you registered directy to this routine. + * + * Return: 1: BADADDR (bad_addr argument to handler) is valid + * 0: BADADDR is not valid + */ +int alt_exception_cause_generated_bad_addr(alt_exception_cause cause) +{ + switch (cause) { + case NIOS2_EXCEPTION_SUPERVISOR_ONLY_DATA_ADDR: + return 1; + case NIOS2_EXCEPTION_MISALIGNED_DATA_ADDR: + return 1; + case NIOS2_EXCEPTION_MISALIGNED_TARGET_PC: + return 1; + case NIOS2_EXCEPTION_TLB_READ_PERM_VIOLATION: + return 1; + case NIOS2_EXCEPTION_TLB_WRITE_PERM_VIOLATION: + return 1; + case NIOS2_EXCEPTION_MPU_DATA_REGION_VIOLATION: + return 1; + default: + return 0; + } +} diff --git a/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_instruction_exception_register.c b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_instruction_exception_register.c new file mode 100644 index 0000000..b059e1d --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_instruction_exception_register.c @@ -0,0 +1,82 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2008 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ +#include "sys/alt_exceptions.h" +#include "alt_types.h" +#include "system.h" + +/* + * This file implements support for calling user-registered handlers for + * instruction-generated exceptions. + * + * The registry API is optionally enabled through the "Enable + * Instruction-related Exception API" HAL BSP setting, which will + * define the macro below. + */ +#ifdef ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API + +/* + * The header, alt_exception_handler_registry.h contains a struct describing + * the registered exception handler + */ +#include "priv/alt_exception_handler_registry.h" + +/* + * Pull in the exception entry assembly code. This will not be linked in + * unless this object is linked into the executable (i.e. only if + * alt_instruction_exception_register() is called). + */ +__asm__( "\n\t.globl alt_exception" ); + +/* + * alt_instruction_exception_register() is called to register a handler to + * service instruction-generated exceptions that are not handled by the + * default exception handler code (interrupts, and optionally unimplemented + * instructions and traps). + * + * Passing null (0x0) in the handler argument will disable a previously- + * registered handler. + * + * Note that if no handler is registered, exceptions that are not processed + * using the built-in handler (interrupts, and optionally unimplemented + * instructions and traps) are treated as unknown exceptions, resulting + * in either a break or an infinite loop. + */ +void alt_instruction_exception_register ( + alt_exception_result (*exception_handler)( + alt_exception_cause cause, + alt_u32 exception_pc, + alt_u32 bad_addr) ) +{ + alt_instruction_exception_handler = exception_handler; +} + +#endif /* ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API */ diff --git a/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_io_redirect.c b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_io_redirect.c new file mode 100644 index 0000000..8c862f7 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_io_redirect.c @@ -0,0 +1,98 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include +#include +#include + +#include "sys/alt_dev.h" +#include "priv/alt_file.h" + + +/* + * alt_open_fd() is similar to open() in that it is used to obtain a file + * descriptor for the file named "name". The "flags" and "mode" arguments are + * identical to the "flags" and "mode" arguments of open(). + * + * The distinction between the two functions is that the file descriptor + * structure to use is passed in as an argument, rather than allocated from the + * list of free file descriptors. + * + * This is used by alt_io_redirect() to redirect the stdin, stdout and stderr + * file descriptors to point to new devices. + * + * If the device can not be succesfully opened, then the input file descriptor + * remains unchanged. + */ + +static void alt_open_fd(alt_fd* fd, const char* name, int flags, int mode) +{ + int old; + + old = open (name, flags, mode); + + if (old >= 0) + { + fd->dev = alt_fd_list[old].dev; + fd->priv = alt_fd_list[old].priv; + fd->fd_flags = alt_fd_list[old].fd_flags; + + alt_release_fd (old); + } +} + +/* + * alt_io_redirect() is called once the device/filesystem lists have been + * initialised, but before main(). Its function is to redirect standard in, + * standard out and standard error so that they point to the devices selected by + * the user (as defined in system.h). + * + * Prior to the call to this function, io is directed towards /dev/null. If + * i/o can not be redirected to the requested device, for example if the device + * does not exist, then it remains directed at /dev/null. + */ + +void alt_io_redirect(const char* stdout_dev, + const char* stdin_dev, + const char* stderr_dev) +{ + /* Redirect the channels */ + + alt_open_fd (&alt_fd_list[STDOUT_FILENO], stdout_dev, O_WRONLY, 0777); + alt_open_fd (&alt_fd_list[STDIN_FILENO], stdin_dev, O_RDONLY, 0777); + alt_open_fd (&alt_fd_list[STDERR_FILENO], stderr_dev, O_WRONLY, 0777); +} + + + + diff --git a/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_ioctl.c b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_ioctl.c new file mode 100644 index 0000000..f5d7ef1 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_ioctl.c @@ -0,0 +1,170 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +#include "sys/ioctl.h" +#include "sys/alt_errno.h" +#include "sys/alt_warning.h" +#include "priv/alt_file.h" +#include "os/alt_syscall.h" + +/* + * The ioctl() system call is provided so that application code can manipulate + * the i/o capabilities of a device in device specific ways. This is identical + * to the standard posix ioctl() function. + * + * In general this implementation simply vectors ioctl requests to the + * apropriate drivers ioctl function (as registered in the drivers alt_dev + * structure). + * + * However in the case of devices (as oposed to filesystem), the TIOCEXCL and + * TIOCNXCL requests are handled without reference to the driver. These + * requests are used to lock/release a device for exclusive access. + * + * Handling these requests centrally eases the task of device driver + * development. + * + * ALT_IOCTL is mapped onto the ioctl() system call in alt_syscall.h + */ + +#ifdef ALT_USE_DIRECT_DRIVERS + +#include "system.h" +#include "sys/alt_driver.h" + +/* + * Provide minimal version that calls ioctl routine of provided stdio devices. + */ +int ALT_IOCTL (int file, int req, void* arg) +{ +#ifdef ALT_STDIN_PRESENT + ALT_DRIVER_IOCTL_EXTERNS(ALT_STDIN_DEV); +#endif +#ifdef ALT_STDOUT_PRESENT + ALT_DRIVER_IOCTL_EXTERNS(ALT_STDOUT_DEV); +#endif +#ifdef ALT_STDERR_PRESENT + ALT_DRIVER_IOCTL_EXTERNS(ALT_STDERR_DEV); +#endif + +#if !defined(ALT_STDIN_PRESENT) && !defined(ALT_STDOUT_PRESENT) && !defined(ALT_STDERR_PRESENT) + /* Generate a link time warning, should this function ever be called. */ + ALT_STUB_WARNING(ioctl); +#endif + + switch (file) { +#ifdef ALT_STDIN_PRESENT + case 0: /* stdin file descriptor */ + return ALT_DRIVER_IOCTL(ALT_STDIN_DEV, req, arg); +#endif /* ALT_STDIN_PRESENT */ +#ifdef ALT_STDOUT_PRESENT + case 1: /* stdout file descriptor */ + return ALT_DRIVER_IOCTL(ALT_STDOUT_DEV, req, arg); +#endif /* ALT_STDOUT_PRESENT */ +#ifdef ALT_STDERR_PRESENT + case 2: /* stderr file descriptor */ + return ALT_DRIVER_IOCTL(ALT_STDERR_DEV, req, arg); +#endif /* ALT_STDERR_PRESENT */ + default: + ALT_ERRNO = EBADFD; + return -1; + } +} + +#else /* !ALT_USE_DIRECT_DRIVERS */ + +int ALT_IOCTL (int file, int req, void* arg) +{ + alt_fd* fd; + int rc; + + /* + * A common error case is that when the file descriptor was created, the call + * to open() failed resulting in a negative file descriptor. This is trapped + * below so that we don't try and process an invalid file descriptor. + */ + + fd = (file < 0) ? NULL : &alt_fd_list[file]; + + if (fd) + { + + /* + * In the case of device drivers (not file systems) handle the TIOCEXCL + * and TIOCNXCL requests as special cases. + */ + + if (fd->fd_flags & ALT_FD_DEV) + { + if (req == TIOCEXCL) + { + rc = alt_fd_lock (fd); + goto ioctl_done; + } + else if (req == TIOCNXCL) + { + rc = alt_fd_unlock (fd); + goto ioctl_done; + } + } + + /* + * If the driver provides an ioctl() function, call that to handle the + * request, otherwise set the return code to indicate that the request + * could not be processed. + */ + + if (fd->dev->ioctl) + { + rc = fd->dev->ioctl(fd, req, arg); + } + else + { + rc = -ENOTTY; + } + } + else + { + rc = -EBADFD; + } + +ioctl_done: + + if (rc < 0) + { + ALT_ERRNO = -rc; + } + return rc; +} + +#endif /* ALT_USE_DIRECT_DRIVERS */ diff --git a/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_irq_entry.S b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_irq_entry.S new file mode 100644 index 0000000..d3efe7d --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_irq_entry.S @@ -0,0 +1,108 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003-2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "system.h" + +/* + * This is the interrupt exception entry point code, which saves all the + * registers and calls the interrupt handler. It should be pulled in using + * a .globl from alt_irq_register.c. This scheme is used so that if an + * interrupt is never registered, then this code will not appear in the + * generated executable, thereby improving code footprint. + */ + + /* + * Explicitly allow the use of r1 (the assembler temporary register) + * within this code. This register is normally reserved for the use of + * the compiler. + */ + .set noat + + /* + * Pull in the exception handler register save code. + */ + .globl alt_exception + + .globl alt_irq_entry + .section .exceptions.entry.label, "xa" +alt_irq_entry: + + /* + * Section .exceptions.entry is in alt_exception_entry.S + * This saves all the caller saved registers and reads estatus into r5 + */ + + .section .exceptions.irqtest, "xa" + +#ifdef ALT_CI_INTERRUPT_VECTOR_N + /* + * Use the interrupt vector custom instruction if present to accelerate + * this code. + * If the interrupt vector custom instruction returns a negative + * value, there are no interrupts active (estatus.pie is 0 + * or ipending is 0) so assume it is a software exception. + */ + custom ALT_CI_INTERRUPT_VECTOR_N, r4, r0, r0 + blt r4, r0, .Lnot_irq +#else + /* + * Test to see if the exception was a software exception or caused + * by an external interrupt, and vector accordingly. + */ + rdctl r4, ipending + andi r2, r5, 1 + beq r2, zero, .Lnot_irq + beq r4, zero, .Lnot_irq +#endif /* ALT_CI_INTERRUPT_VECTOR_N */ + + .section .exceptions.irqhandler, "xa" + /* + * Now that all necessary registers have been preserved, call + * alt_irq_handler() to process the interrupts. + */ + + call alt_irq_handler + + .section .exceptions.irqreturn, "xa" + + br .Lexception_exit + + .section .exceptions.notirq.label, "xa" + +.Lnot_irq: + + /* + * Section .exceptions.exit is in alt_exception_entry.S + * This restores all the caller saved registers + */ + + .section .exceptions.exit.label +.Lexception_exit: + diff --git a/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_irq_handler.c b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_irq_handler.c new file mode 100644 index 0000000..3253d02 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_irq_handler.c @@ -0,0 +1,169 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2009 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include "system.h" + +/* + * This interrupt handler only works with an internal interrupt controller + * (IIC). Processors with an external interrupt controller (EIC) use an + * implementation provided by an EIC driver. + */ +#ifndef ALT_CPU_EIC_PRESENT + +#include "sys/alt_irq.h" +#include "os/alt_hooks.h" + +#include "alt_types.h" + +/* + * A table describing each interrupt handler. The index into the array is the + * interrupt id associated with the handler. + * + * When an interrupt occurs, the associated handler is called with + * the argument stored in the context member. + */ +struct ALT_IRQ_HANDLER +{ +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT + void (*handler)(void*); +#else + void (*handler)(void*, alt_u32); +#endif + void *context; +} alt_irq[ALT_NIRQ]; + +/* + * alt_irq_handler() is called by the interrupt exception handler in order to + * process any outstanding interrupts. + * + * It is defined here since it is linked in using weak linkage. + * This means that if there is never a call to alt_irq_register() (above) then + * this function will not get linked in to the executable. This is acceptable + * since if no handler is ever registered, then an interrupt can never occur. + * + * If Nios II interrupt vector custom instruction exists, use it to accelerate + * the dispatch of interrupt handlers. The Nios II interrupt vector custom + * instruction is present if the macro ALT_CI_INTERRUPT_VECTOR defined. + */ + +void alt_irq_handler (void) __attribute__ ((section (".exceptions"))); +void alt_irq_handler (void) +{ +#ifdef ALT_CI_INTERRUPT_VECTOR + alt_32 offset; + char* alt_irq_base = (char*)alt_irq; +#else + alt_u32 active; + alt_u32 mask; + alt_u32 i; +#endif /* ALT_CI_INTERRUPT_VECTOR */ + + /* + * Notify the operating system that we are at interrupt level. + */ + + ALT_OS_INT_ENTER(); + +#ifdef ALT_CI_INTERRUPT_VECTOR + /* + * Call the interrupt vector custom instruction using the + * ALT_CI_INTERRUPT_VECTOR macro. + * It returns the offset into the vector table of the lowest-valued pending + * interrupt (corresponds to highest priority) or a negative value if none. + * The custom instruction assumes that each table entry is eight bytes. + */ + while ((offset = ALT_CI_INTERRUPT_VECTOR) >= 0) { + struct ALT_IRQ_HANDLER* handler_entry = + (struct ALT_IRQ_HANDLER*)(alt_irq_base + offset); +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT + handler_entry->handler(handler_entry->context); +#else + handler_entry->handler(handler_entry->context, offset >> 3); +#endif + } +#else /* ALT_CI_INTERRUPT_VECTOR */ + /* + * Obtain from the interrupt controller a bit list of pending interrupts, + * and then process the highest priority interrupt. This process loops, + * loading the active interrupt list on each pass until alt_irq_pending() + * return zero. + * + * The maximum interrupt latency for the highest priority interrupt is + * reduced by finding out which interrupts are pending as late as possible. + * Consider the case where the high priority interupt is asserted during + * the interrupt entry sequence for a lower priority interrupt to see why + * this is the case. + */ + + active = alt_irq_pending (); + + do + { + i = 0; + mask = 1; + + /* + * Test each bit in turn looking for an active interrupt. Once one is + * found, the interrupt handler asigned by a call to alt_irq_register() is + * called to clear the interrupt condition. + */ + + do + { + if (active & mask) + { +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT + alt_irq[i].handler(alt_irq[i].context); +#else + alt_irq[i].handler(alt_irq[i].context, i); +#endif + break; + } + mask <<= 1; + i++; + + } while (1); + + active = alt_irq_pending (); + + } while (active); +#endif /* ALT_CI_INTERRUPT_VECTOR */ + + /* + * Notify the operating system that interrupt processing is complete. + */ + + ALT_OS_INT_EXIT(); +} + +#endif /* ALT_CPU_EIC_PRESENT */ diff --git a/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_irq_register.c b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_irq_register.c new file mode 100644 index 0000000..b5ea474 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_irq_register.c @@ -0,0 +1,102 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2009 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ +#include +#include "system.h" + +/* + * This interrupt registry mechanism works with the Nios II internal interrupt + * controller (IIC) only. Systems with an external interrupt controller (EIC), + * or those with the IIC who are using the enhanced interrupt API will + * utilize the alt_ic_isr_register() routine to register an interrupt. + */ +#ifndef NIOS2_EIC_PRESENT + +#include "sys/alt_irq.h" +#include "priv/alt_legacy_irq.h" +#include "os/alt_hooks.h" + +#include "alt_types.h" + +/* + * The header, alt_irq_entry.h, contains the exception entry point, and is + * provided by the processor component. It is included here, so that the code + * will be added to the executable only if alt_irq_register() is present, i.e. + * if no interrupts are registered - there's no need to provide any + * interrupt handling. + */ + +#include "sys/alt_irq_entry.h" + +/* + * The header, alt_irq_table.h contains a table describing which function + * handles each interrupt. + */ + +#include "priv/alt_irq_table.h" + +/* + * alt_irq_handler() is called to register an interrupt handler. If the + * function is succesful, then the requested interrupt will be enabled upon + * return. Registering a NULL handler will disable the interrupt. + * + * The return value is 0 if the interrupt handler was registered and the + * interrupt was enabled, otherwise it is negative. + */ + +int alt_irq_register (alt_u32 id, + void* context, + alt_isr_func handler) +{ + int rc = -EINVAL; + alt_irq_context status; + + if (id < ALT_NIRQ) + { + /* + * interrupts are disabled while the handler tables are updated to ensure + * that an interrupt doesn't occur while the tables are in an inconsistant + * state. + */ + + status = alt_irq_disable_all (); + + alt_irq[id].handler = handler; + alt_irq[id].context = context; + + rc = (handler) ? alt_irq_enable (id): alt_irq_disable (id); + + alt_irq_enable_all(status); + } + return rc; +} +#endif /* NIOS2_EIC_PRESENT */ + diff --git a/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_irq_vars.c b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_irq_vars.c new file mode 100644 index 0000000..8c0a18d --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_irq_vars.c @@ -0,0 +1,47 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "alt_types.h" + +#include "system.h" + +/* + * These global variables are used to save the current list of enabled + * interrupts. See alt_irq.h for further details. + */ + +volatile alt_u32 alt_irq_active = 0; + +#ifndef ALT_EXCEPTION_STACK + +volatile alt_u32 alt_priority_mask = (alt_u32) -1; + +#endif + diff --git a/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_isatty.c b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_isatty.c new file mode 100644 index 0000000..9276472 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_isatty.c @@ -0,0 +1,125 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include + +#include "sys/alt_dev.h" +#include "sys/alt_errno.h" +#include "sys/alt_warning.h" +#include "priv/alt_file.h" +#include "os/alt_syscall.h" + +#ifdef ALT_USE_DIRECT_DRIVERS + +#include "system.h" + +/* + * Provide minimal version that just describes all file descriptors + * as tty devices for provided stdio devices. + */ +int ALT_ISATTY (int file) +{ + switch (file) { +#ifdef ALT_STDIN_PRESENT + case 0: /* stdin file descriptor */ +#endif /* ALT_STDIN_PRESENT */ +#ifdef ALT_STDOUT_PRESENT + case 1: /* stdout file descriptor */ +#endif /* ALT_STDOUT_PRESENT */ +#ifdef ALT_STDERR_PRESENT + case 2: /* stderr file descriptor */ +#endif /* ALT_STDERR_PRESENT */ + return 1; + default: + return 0; + } + +#if !defined(ALT_STDIN_PRESENT) && !defined(ALT_STDOUT_PRESENT) && !defined(ALT_STDERR_PRESENT) + /* Generate a link time warning, should this function ever be called. */ + ALT_STUB_WARNING(isatty); +#endif +} + +#else /* !ALT_USE_DIRECT_DRIVERS */ +/* + * isatty() can be used to determine whether the input file descriptor "file" + * refers to a terminal device or not. If it is a terminal device then the + * return value is one, otherwise it is zero. + * + * ALT_ISATTY is mapped onto the isatty() system call in alt_syscall.h + */ + +int ALT_ISATTY (int file) +{ + alt_fd* fd; + struct stat stat; + + /* + * A common error case is that when the file descriptor was created, the call + * to open() failed resulting in a negative file descriptor. This is trapped + * below so that we don't try and process an invalid file descriptor. + */ + + fd = (file < 0) ? NULL : &alt_fd_list[file]; + + if (fd) + { + /* + * If a device driver does not provide an fstat() function, then it is + * treated as a terminal device by default. + */ + + if (!fd->dev->fstat) + { + return 1; + } + + /* + * If a driver does provide an implementation of the fstat() function, then + * this is called so that the device can identify itself. + */ + + else + { + fstat (file, &stat); + return (stat.st_mode == _IFCHR) ? 1 : 0; + } + } + else + { + ALT_ERRNO = EBADFD; + return 0; + } +} + +#endif /* ALT_USE_DIRECT_DRIVERS */ diff --git a/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_kill.c b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_kill.c new file mode 100644 index 0000000..42c2e1d --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_kill.c @@ -0,0 +1,121 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include + +#include "sys/alt_errno.h" +#include "os/alt_syscall.h" + + +/* + * kill() is used by newlib in order to send signals to processes. Since there + * is only a single process in the HAL, the only valid values for pid are + * either the current process id, or the broadcast values, i.e. pid must be + * less than or equal to zero. + * + * ALT_KILL is mapped onto the kill() system call in alt_syscall.h + */ + +int ALT_KILL (int pid, int sig) +{ + int status = 0; + + if (pid <= 0) + { + switch (sig) + { + case 0: + + /* The null signal is used to check that a pid is valid. */ + + break; + + case SIGABRT: + case SIGALRM: + case SIGFPE: + case SIGILL: + case SIGKILL: + case SIGPIPE: + case SIGQUIT: + case SIGSEGV: + case SIGTERM: + case SIGUSR1: + case SIGUSR2: + case SIGBUS: + case SIGPOLL: + case SIGPROF: + case SIGSYS: + case SIGTRAP: + case SIGVTALRM: + case SIGXCPU: + case SIGXFSZ: + + /* + * The Posix standard defines the default behaviour for all these signals + * as being eqivalent to a call to _exit(). No mechanism is provided to + * change this behaviour. + */ + + _exit(0); + case SIGCHLD: + case SIGURG: + + /* + * The Posix standard defines these signals to be ignored by default. No + * mechanism is provided to change this behaviour. + */ + + break; + default: + + /* Tried to send an unsupported signal */ + + status = EINVAL; + } + } + + else if (pid > 0) + { + /* Attempted to signal a non-existant process */ + + status = ESRCH; + } + + if (status) + { + ALT_ERRNO = status; + return -1; + } + + return 0; +} diff --git a/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_link.c b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_link.c new file mode 100644 index 0000000..d796c59 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_link.c @@ -0,0 +1,56 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_warning.h" +#include "sys/alt_errno.h" +#include "os/alt_syscall.h" + +/* + * link() is used by newlib to create a new link to an existing file. This is + * unsupported in the HAL environment. However a "do-nothing" implementation + * is still provied for newlib compatability. + * + * ALT_LINK is mapped onto the link() system call in alt_syscall.h + */ + +int ALT_LINK ( char *existing, char *new) +{ + /* Generate a link time warning, should this function ever be called. */ + + ALT_STUB_WARNING(link); + + /* Indicate an error */ + + ALT_ERRNO = ENOSYS; + return -1; +} + diff --git a/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_load.c b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_load.c new file mode 100644 index 0000000..ffab4b9 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_load.c @@ -0,0 +1,88 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004-2005 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_load.h" +#include "sys/alt_cache.h" + +/* + * Linker defined symbols. + */ + +extern void __flash_rwdata_start; +extern void __ram_rwdata_start; +extern void __ram_rwdata_end; +extern void __flash_rodata_start; +extern void __ram_rodata_start; +extern void __ram_rodata_end; +extern void __flash_exceptions_start; +extern void __ram_exceptions_start; +extern void __ram_exceptions_end; + +/* + * alt_load() is called when the code is executing from flash. In this case + * there is no bootloader, so this application is responsible for loading to + * RAM any sections that are required. + */ + +void alt_load (void) +{ + /* + * Copy the .rwdata section. + */ + + alt_load_section (&__flash_rwdata_start, + &__ram_rwdata_start, + &__ram_rwdata_end); + + /* + * Copy the exception handler. + */ + + alt_load_section (&__flash_exceptions_start, + &__ram_exceptions_start, + &__ram_exceptions_end); + + /* + * Copy the .rodata section. + */ + + alt_load_section (&__flash_rodata_start, + &__ram_rodata_start, + &__ram_rodata_end); + + /* + * Now ensure that the caches are in synch. + */ + + alt_dcache_flush_all(); + alt_icache_flush_all(); +} diff --git a/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_log_macro.S b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_log_macro.S new file mode 100644 index 0000000..499c4ad --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_log_macro.S @@ -0,0 +1,56 @@ +/* alt_log_macro.S + * + * Implements the function tx_log_str, called by the assembly macro + * ALT_LOG_PUTS(). The macro will be empty when logging is turned off, + * and this function will not be compiled. When logging is on, + * this function is used to print out the strings defined in the beginning + * of alt_log_printf.c, using port information taken from system.h and + * alt_log_printf.h. + * + * This routine only handles strings, and sends a character into the defined + * output device's output buffer when the device is ready. It's intended for + * debugging purposes, where messages can be set to print out at certain + * points in the boot code to indicate the progress of the program. + * + */ + +#ifndef __ALT_LOG_MACROS__ +#define __ALT_LOG_MACROS__ + +/* define this flag to skip assembly-incompatible parts + * of various include files. */ +#define ALT_ASM_SRC + +#ifdef ALT_LOG_ENABLE // only compile this function if this flag is defined. + + #include "system.h" + #include "sys/alt_log_printf.h" + + .global tx_log_str +tx_log_str: + /* load base uart / jtag uart address into r6 */ + movhi r6, %hiadj(ALT_LOG_PORT_BASE) + addi r6, r6, %lo(ALT_LOG_PORT_BASE) +tx_next_char: + /* if pointer points to null, return + * r4 is the pointer to the str to be printed, set by ALT_LOG_PUTS */ + ldb r7, (r4) + beq r0, r7, end_tx + + /* check device transmit ready */ +wait_tx_ready_loop: + ldwio r5, ALT_LOG_PRINT_REG_OFFSET(r6) + andi r5, r5, ALT_LOG_PRINT_MSK + beq r5, r0, wait_tx_ready_loop + /* write char */ + stwio r7, ALT_LOG_PRINT_TXDATA_REG_OFFSET (r6) + /* advance string pointer */ + addi r4, r4, 1 + br tx_next_char +end_tx: + ret + +#endif + +#endif /* __ALT_LOG_MACROS__ */ + diff --git a/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_log_printf.c b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_log_printf.c new file mode 100644 index 0000000..1f7056d --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_log_printf.c @@ -0,0 +1,479 @@ + +/* alt_log_printf.c + * + * This file implements the various C functions used for the + * alt_log logging/debugging print functions. The functions + * sit as is here - the job of hiding them from the compiler + * if logging is disabled is accomplished in the .h file. + * + * All the global variables for alt_log are defined here. + * These include the various flags that turn on additional + * logging options; the strings for assembly printing; and + * other globals needed by different logging options. + * + * There are 4 functions that handle the actual printing: + * alt_log_txchar: Actual function that puts 1 char to UART/JTAG UART. + * alt_log_repchar: Calls alt_log_txchar 'n' times - used by + * alt_log_private_printf for formatting. + * alt_log_private_printf: + * Stripped down implementation of printf - no floats. + * alt_log_printf_proc: + * Wrapper function for private_printf. + * + * The rest of the functions are called by the macros which + * were called by code in the other components. Each function + * is preceded by a comment, about which file it gets called + * in, and what its purpose is. + * + * author: gkwan + */ + +/* skip all code if enable is off */ +#ifdef ALT_LOG_ENABLE + +#include +#include +#include +#ifdef __ALTERA_AVALON_JTAG_UART + #include "altera_avalon_jtag_uart.h" + #include +#endif +#include "sys/alt_log_printf.h" + +/* strings for assembly puts */ +char alt_log_msg_bss[] = "[crt0.S] Clearing BSS \r\n";; +char alt_log_msg_alt_main[] = "[crt0.S] Calling alt_main.\r\n"; +char alt_log_msg_stackpointer[] \ + = "[crt0.S] Setting up stack and global pointers.\r\n"; +char alt_log_msg_cache[] = "[crt0.S] Inst & Data Cache Initialized.\r\n"; +/* char array allocation for alt_write */ +char alt_log_write_buf[ALT_LOG_WRITE_ECHO_LEN+2]; + +/* global variables for all 'on' flags */ + +/* + * The boot message flag is linked into the data (rwdata) section + * because if it is zero, it would otherwise be placed in the bss section. + * alt_log examines this variable before the BSS is cleared in the boot-up + * process. + */ +volatile alt_u32 alt_log_boot_on_flag \ + __attribute__ ((section (".data"))) = ALT_LOG_BOOT_ON_FLAG_SETTING; + +volatile alt_u8 alt_log_write_on_flag = ALT_LOG_WRITE_ON_FLAG_SETTING; + +volatile alt_u8 alt_log_sys_clk_on_flag = ALT_LOG_SYS_CLK_ON_FLAG_SETTING; + +volatile alt_u8 alt_log_jtag_uart_alarm_on_flag = \ + ALT_LOG_JTAG_UART_ALARM_ON_FLAG_SETTING; + +volatile alt_u8 alt_log_jtag_uart_isr_on_flag = \ + ALT_LOG_JTAG_UART_ISR_ON_FLAG_SETTING; + +volatile alt_u8 alt_log_jtag_uart_startup_info_on_flag = \ + ALT_LOG_JTAG_UART_STARTUP_INFO_ON_FLAG_SETTING; + +/* Global alarm object for recurrent JTAG UART status printing */ +alt_alarm alt_log_jtag_uart_alarm_1; + +/* Global ints for system clock printing and count */ +volatile int alt_log_sys_clk_count; +volatile int alt_system_clock_in_sec; + +/* enum used by alt_log_private_printf */ +enum +{ + pfState_chars, + pfState_firstFmtChar, + pfState_otherFmtChar +}; + + + + +/* Function to put one char onto the UART/JTAG UART txdata register. */ +void alt_log_txchar(int c,char *base) +{ + /* Wait until the device is ready for a character */ + while((ALT_LOG_PRINT_REG_RD(base) & ALT_LOG_PRINT_MSK) == 0) + ; + /* And pop the character into the register */ + ALT_LOG_PRINT_TXDATA_WR(base,c); +} + + +/* Called by alt_log_private_printf to print out characters repeatedly */ +void alt_log_repchar(char c,int r,int base) +{ + while(r-- > 0) + alt_log_txchar(c,(char*) base); +} + + +/* Stripped down printf function */ +void alt_log_private_printf(const char *fmt,int base,va_list args) + { + const char *w; + char c; + int state; + int fmtLeadingZero = 0; /* init these all to 0 for -W warnings. */ + int fmtLong = 0; + int fmtBeforeDecimal = 0; + int fmtAfterDecimal = 0; + int fmtBase = 0; + int fmtSigned = 0; + int fmtCase = 0; /* For hex format, if 1, A-F, else a-f. */ + + w = fmt; + state = pfState_chars; + + while(0 != (c = *w++)) + { + switch(state) + { + case pfState_chars: + if(c == '%') + { + fmtLeadingZero = 0; + fmtLong = 0; + fmtBase = 10; + fmtSigned = 1; + fmtCase = 0; /* Only %X sets this. */ + fmtBeforeDecimal = -1; + fmtAfterDecimal = -1; + state = pfState_firstFmtChar; + } + else + { + alt_log_txchar(c,(char*)base); + } + break; + + case pfState_firstFmtChar: + if(c == '0') + { + fmtLeadingZero = 1; + state = pfState_otherFmtChar; + } + else if(c == '%') + { + alt_log_txchar(c,(char*)base); + state = pfState_chars; + } + else + { + state = pfState_otherFmtChar; + goto otherFmtChar; + } + break; + + case pfState_otherFmtChar: +otherFmtChar: + if(c == '.') + { + fmtAfterDecimal = 0; + } + else if('0' <= c && c <= '9') + { + c -= '0'; + if(fmtAfterDecimal < 0) /* still before decimal */ + { + if(fmtBeforeDecimal < 0) + { + fmtBeforeDecimal = 0; + } + else + { + fmtBeforeDecimal *= 10; + } + fmtBeforeDecimal += c; + } + else + { + fmtAfterDecimal = (fmtAfterDecimal * 10) + c; + } + } + else if(c == 'l') + { + fmtLong = 1; + } + else /* we're up to the letter which determines type */ + { + switch(c) + { + case 'd': + case 'i': +doIntegerPrint: + { + unsigned long v; + unsigned long p; /* biggest power of fmtBase */ + unsigned long vShrink; /* used to count digits */ + int sign; + int digitCount; + + /* Get the value */ + if(fmtLong) + { + if (fmtSigned) + { + v = va_arg(args,long); + } + else + { + v = va_arg(args,unsigned long); + } + } + else + { + if (fmtSigned) + { + v = va_arg(args,int); + } + else + { + v = va_arg(args,unsigned int); + } + } + + /* Strip sign */ + sign = 0; + /* (assumes sign bit is #31) */ + if( fmtSigned && (v & (0x80000000)) ) + { + v = ~v + 1; + sign = 1; + } + + /* Count digits, and get largest place value */ + vShrink = v; + p = 1; + digitCount = 1; + while( (vShrink = vShrink / fmtBase) > 0 ) + { + digitCount++; + p *= fmtBase; + } + + /* Print leading characters & sign */ + fmtBeforeDecimal -= digitCount; + if(fmtLeadingZero) + { + if(sign) + { + alt_log_txchar('-',(char*)base); + fmtBeforeDecimal--; + } + alt_log_repchar('0',fmtBeforeDecimal,base); + } + else + { + if(sign) + { + fmtBeforeDecimal--; + } + alt_log_repchar(' ',fmtBeforeDecimal,base); + if(sign) + { + alt_log_txchar('-',(char*)base); + } + } + + /* Print numbery parts */ + while(p) + { + unsigned char d; + + d = v / p; + d += '0'; + if(d > '9') + { + d += (fmtCase ? 'A' : 'a') - '0' - 10; + } + alt_log_txchar(d,(char*)base); + + v = v % p; + p = p / fmtBase; + } + } + + state = pfState_chars; + break; + + case 'u': + fmtSigned = 0; + goto doIntegerPrint; + case 'o': + fmtSigned = 0; + fmtBase = 8; + goto doIntegerPrint; + case 'x': + fmtSigned = 0; + fmtBase = 16; + goto doIntegerPrint; + case 'X': + fmtSigned = 0; + fmtBase = 16; + fmtCase = 1; + goto doIntegerPrint; + + case 'c': + alt_log_repchar(' ',fmtBeforeDecimal-1,base); + alt_log_txchar(va_arg(args,int),(char*)base); + break; + + case 's': + { + char *s; + + s = va_arg(args,char *); + alt_log_repchar(' ',fmtBeforeDecimal-strlen(s),base); + + while(*s) + alt_log_txchar(*s++,(char*)base); + } + break; + } /* switch last letter of fmt */ + state=pfState_chars; + } + break; + } /* switch */ + } /* while chars left */ + } /* printf */ + +/* Main logging printf function */ +int alt_log_printf_proc(const char *fmt, ... ) +{ + va_list args; + + va_start (args, fmt); + alt_log_private_printf(fmt,ALT_LOG_PORT_BASE,args); + return (0); +} + +/* Below are the functions called by different macros in various components. */ + +/* If the system has a JTAG_UART, include JTAG_UART debugging functions */ +#ifdef __ALTERA_AVALON_JTAG_UART + +/* The alarm function in altera_avalon_jtag_uart.c. + * This function, when turned on, prints out the status + * of the JTAG UART Control register, every ALT_LOG_JTAG_UART_TICKS. + * If the flag is off, the alarm should never be registered, and this + * function should never run */ +alt_u32 altera_avalon_jtag_uart_report_log(void * context) +{ + if (alt_log_jtag_uart_alarm_on_flag) { + altera_avalon_jtag_uart_state* dev = (altera_avalon_jtag_uart_state*) context; + const char* header="JTAG Alarm:"; + alt_log_jtag_uart_print_control_reg(dev, dev->base, header); + return ALT_LOG_JTAG_UART_TICKS; + } + else + { + /* If flag is not on, return 0 to disable future alarms. + * Should never be here, alarm should not be enabled at all. */ + return 0; + } +} + +void alt_log_jtag_uart_print_control_reg(altera_avalon_jtag_uart_state* dev, int base, const char* header) +{ + unsigned int control, space, ac, wi, ri, we, re; + control = IORD_ALTERA_AVALON_JTAG_UART_CONTROL(base); + space = (control & ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_MSK) >> + ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_OFST; + we= (control & ALTERA_AVALON_JTAG_UART_CONTROL_WE_MSK) >> + ALTERA_AVALON_JTAG_UART_CONTROL_WE_OFST; + re= (control & ALTERA_AVALON_JTAG_UART_CONTROL_RE_MSK) >> + ALTERA_AVALON_JTAG_UART_CONTROL_RE_OFST; + ri= (control & ALTERA_AVALON_JTAG_UART_CONTROL_RI_MSK) >> + ALTERA_AVALON_JTAG_UART_CONTROL_RI_OFST; + wi= (control & ALTERA_AVALON_JTAG_UART_CONTROL_WI_MSK) >> + ALTERA_AVALON_JTAG_UART_CONTROL_WI_OFST; + ac= (control & ALTERA_AVALON_JTAG_UART_CONTROL_AC_MSK) >> + ALTERA_AVALON_JTAG_UART_CONTROL_AC_OFST; + +#ifdef ALTERA_AVALON_JTAG_UART_SMALL + ALT_LOG_PRINTF( + "%s HW FIFO wspace=%d AC=%d WI=%d RI=%d WE=%d RE=%d\r\n", + header,space,ac,wi,ri,we,re); +#else + ALT_LOG_PRINTF( + "%s SW CirBuf = %d, HW FIFO wspace=%d AC=%d WI=%d RI=%d WE=%d RE=%d\r\n", + header,(dev->tx_out-dev->tx_in),space,ac,wi,ri,we,re); +#endif + + return; + +} + +/* In altera_avalon_jtag_uart.c + * Same output as the alarm function above, but this is called in the driver + * init function. Hence, it gives the status of the JTAG UART control register + * right at the initialization of the driver */ +void alt_log_jtag_uart_startup_info(altera_avalon_jtag_uart_state* dev, int base) +{ + const char* header="JTAG Startup Info:"; + alt_log_jtag_uart_print_control_reg(dev, base, header); + return; +} + +/* In altera_avalon_jtag_uart.c + * When turned on, this function will print out the status of the jtag uart + * control register every time there is a jtag uart "almost-empty" interrupt. */ +void alt_log_jtag_uart_isr_proc(int base, altera_avalon_jtag_uart_state* dev) +{ + if (alt_log_jtag_uart_isr_on_flag) { + const char* header="JTAG IRQ:"; + alt_log_jtag_uart_print_control_reg(dev, base, header); + } + return; +} + +#endif /* __ALTERA_AVALON_JTAG_UART */ + +/* In alt_write.c + * When the alt_log_write_on_flag is turned on, this function gets called + * every time alt_write gets called. The first + * ALT_LOG_WRITE_ECHO_LEN characters of every printf command (or any command + * that eventually calls write()) gets echoed to the alt_log output. */ +void alt_log_write(const void *ptr, size_t len) +{ + if (alt_log_write_on_flag) { + int temp_cnt; + int length=(ALT_LOG_WRITE_ECHO_LEN>len) ? len : ALT_LOG_WRITE_ECHO_LEN; + + if (length < 2) return; + + strncpy (alt_log_write_buf,ptr,length); + alt_log_write_buf[length-1]='\n'; + alt_log_write_buf[length]='\r'; + alt_log_write_buf[length+1]='\0'; + + /* Escape Ctrl-D's. If the Ctrl-D gets sent it might kill the terminal + * connection of alt_log. It will get replaced by 'D'. */ + for (temp_cnt=0;temp_cnt < length; temp_cnt++) { + if (alt_log_write_buf[temp_cnt]== 0x4) { + alt_log_write_buf[temp_cnt]='D'; + } + } + ALT_LOG_PRINTF("Write Echo: %s",alt_log_write_buf); + } +} + +/* In altera_avalon_timer_sc + * This function prints out a system clock is alive message + * every ALT_LOG_SYS_CLK_INTERVAL (in ticks). */ +void alt_log_system_clock() +{ + if (alt_log_sys_clk_on_flag) { + alt_log_sys_clk_count++; + if (alt_log_sys_clk_count > ALT_LOG_SYS_CLK_INTERVAL) { + alt_log_sys_clk_count = 0; + ALT_LOG_PRINTF("System Clock On %u\r\n",alt_system_clock_in_sec++); + } + } +} + + +#endif diff --git a/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_lseek.c b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_lseek.c new file mode 100644 index 0000000..7857b0d --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_lseek.c @@ -0,0 +1,117 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004-2005 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +#include "sys/alt_errno.h" +#include "sys/alt_warning.h" +#include "priv/alt_file.h" +#include "os/alt_syscall.h" + +#ifdef ALT_USE_DIRECT_DRIVERS + +off_t ALT_LSEEK (int file, off_t ptr, int dir) +{ + /* Generate a link time warning, should this function ever be called. */ + + ALT_STUB_WARNING(lseek); + + /* Indicate an error */ + + ALT_ERRNO = ENOSYS; + return -1; +} + +#else /* !ALT_USE_DIRECT_DRIVERS */ + +/* + * lseek() can be called to move the read/write pointer associated with the + * file descriptor "file". This function simply vectors the call to the lseek() + * function provided by the driver associated with the file descriptor. + * + * If the driver does not provide an implementation of lseek() an error is + * indicated. + * + * lseek() corresponds to the standard lseek() function. + * + * ALT_LSEEK is mapped onto the lseek() system call in alt_syscall.h + * + */ + +off_t ALT_LSEEK (int file, off_t ptr, int dir) +{ + alt_fd* fd; + off_t rc = 0; + + /* + * A common error case is that when the file descriptor was created, the call + * to open() failed resulting in a negative file descriptor. This is trapped + * below so that we don't try and process an invalid file descriptor. + */ + + fd = (file < 0) ? NULL : &alt_fd_list[file]; + + if (fd) + { + /* + * If the device driver provides an implementation of the lseek() function, + * then call that to process the request. + */ + + if (fd->dev->lseek) + { + rc = fd->dev->lseek(fd, ptr, dir); + } + /* + * Otherwise return an error. + */ + + else + { + rc = -ENOTSUP; + } + } + else + { + rc = -EBADFD; + } + + if (rc < 0) + { + ALT_ERRNO = -rc; + rc = -1; + } + + return rc; +} + +#endif /* ALT_USE_DIRECT_DRIVERS */ diff --git a/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_main.c b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_main.c new file mode 100644 index 0000000..a96229b --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_main.c @@ -0,0 +1,161 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2007 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include +#include +#include +#include +#include + +#include "sys/alt_dev.h" +#include "sys/alt_sys_init.h" +#include "sys/alt_irq.h" +#include "sys/alt_dev.h" + +#include "os/alt_hooks.h" + +#include "priv/alt_file.h" +#include "alt_types.h" + +#include "system.h" + +#include "sys/alt_log_printf.h" + +extern void _do_ctors(void); +extern void _do_dtors(void); + +/* + * Standard arguments for main. By default, no arguments are passed to main. + * However a device driver may choose to configure these arguments by calling + * alt_set_args(). The expectation is that this facility will only be used by + * the iclient/ihost utility. + */ + +int alt_argc = 0; +char** alt_argv = {NULL}; +char** alt_envp = {NULL}; + +/* + * Prototype for the entry point to the users application. + */ + +extern int main (int, char **, char **); + +/* + * alt_main is the C entry point for the HAL. It is called by the assembler + * startup code in the processor specific crt0.S. It is responsible for: + * completing the C runtime configuration; configuring all the + * devices/filesystems/components in the system; and call the entry point for + * the users application, i.e. main(). + */ + +void alt_main (void) +{ +#ifndef ALT_NO_EXIT + int result; +#endif + + /* ALT LOG - please see HAL/sys/alt_log_printf.h for details */ + ALT_LOG_PRINT_BOOT("[alt_main.c] Entering alt_main, calling alt_irq_init.\r\n"); + /* Initialize the interrupt controller. */ + alt_irq_init (NULL); + + /* Initialize the operating system */ + ALT_LOG_PRINT_BOOT("[alt_main.c] Done alt_irq_init, calling alt_os_init.\r\n"); + ALT_OS_INIT(); + + /* + * Initialize the semaphore used to control access to the file descriptor + * list. + */ + + ALT_LOG_PRINT_BOOT("[alt_main.c] Done OS Init, calling alt_sem_create.\r\n"); + ALT_SEM_CREATE (&alt_fd_list_lock, 1); + + /* Initialize the device drivers/software components. */ + ALT_LOG_PRINT_BOOT("[alt_main.c] Calling alt_sys_init.\r\n"); + alt_sys_init(); + ALT_LOG_PRINT_BOOT("[alt_main.c] Done alt_sys_init.\r\n"); + +#if !defined(ALT_USE_DIRECT_DRIVERS) && (defined(ALT_STDIN_PRESENT) || defined(ALT_STDOUT_PRESENT) || defined(ALT_STDERR_PRESENT)) + + /* + * Redirect stdio to the apropriate devices now that the devices have + * been initialized. This is only done if the user has requested these + * devices be present (not equal to /dev/null) and if direct drivers + * aren't being used. + */ + + ALT_LOG_PRINT_BOOT("[alt_main.c] Redirecting IO.\r\n"); + alt_io_redirect(ALT_STDOUT, ALT_STDIN, ALT_STDERR); +#endif + +#ifndef ALT_NO_C_PLUS_PLUS + /* + * Call the C++ constructors + */ + + ALT_LOG_PRINT_BOOT("[alt_main.c] Calling C++ constructors.\r\n"); + _do_ctors (); +#endif /* ALT_NO_C_PLUS_PLUS */ + +#if !defined(ALT_NO_C_PLUS_PLUS) && !defined(ALT_NO_CLEAN_EXIT) && !defined(ALT_NO_EXIT) + /* + * Set the C++ destructors to be called at system shutdown. This is only done + * if a clean exit has been requested (i.e. the exit() function has not been + * redefined as _exit()). This is in the interest of reducing code footprint, + * in that the atexit() overhead is removed when it's not needed. + */ + + ALT_LOG_PRINT_BOOT("[alt_main.c] Calling atexit.\r\n"); + atexit (_do_dtors); +#endif + + /* + * Finally, call main(). The return code is then passed to a subsequent + * call to exit() unless the application is never supposed to exit. + */ + + ALT_LOG_PRINT_BOOT("[alt_main.c] Calling main.\r\n"); + +#ifdef ALT_NO_EXIT + main (alt_argc, alt_argv, alt_envp); +#else + result = main (alt_argc, alt_argv, alt_envp); + close(STDOUT_FILENO); + exit (result); +#endif + + ALT_LOG_PRINT_BOOT("[alt_main.c] After main - we should not be here?.\r\n"); +} + diff --git a/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_malloc_lock.c b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_malloc_lock.c new file mode 100644 index 0000000..8c78f46 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_malloc_lock.c @@ -0,0 +1,52 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +/* + * These are the empty malloc lock/unlock stubs required by newlib. These are + * used to make newlib's malloc() function thread safe. The default HAL + * configuration is single threaded, so there is nothing to do here. Note that + * this requires that malloc is never called by an interrupt service routine. + */ + +void __malloc_lock ( struct _reent *_r ) +{ +} + +/* + * + */ + +void __malloc_unlock ( struct _reent *_r ) +{ +} diff --git a/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_mcount.S b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_mcount.S new file mode 100644 index 0000000..3837523 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_mcount.S @@ -0,0 +1,198 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003-2010 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/* mcount or _mcount is inserted by GCC before the function prologue of every + * function when a program is compiled for profiling. At the start of mcount, + * we guarantee that: + * ra = self_pc (an address in the function which called mcount) + * r8 = from_pc (an address in the function which called mcount's caller) + * + * Because this is always called at the start of a function we can corrupt + * r2,r3 and r11-r15. We must not corrupt r4-r7 (because they might contain + * function arguments for the instrumented function) or r8 (which holds ra + * for the instrumented function). + */ + + .global __mcount_fn_head + + .global mcount + + /* _mcount is used by gcc4 */ + .global _mcount + +_mcount: +mcount: + /* Use a hash to speed up locating fn_entry. We use bits 5 upwards to choose + * the bucket because bits 1:0 will always be 0, and because the distribution + * of values for bits 4:2 won't be even (aligning on cache line boundaries + * will skew it). Higher bits should be fairly random. + */ + /* fn_head = mcount_fn_head + (((unsigned int)self_pc >> 5) & (HASH_BUCKETS - 1)); */ + + srli r2, ra, 3 + movhi r3, %hiadj(__mcount_fn_head) + addi r3, r3, %lo(__mcount_fn_head) + andi r2, r2, 0xFC + add r11, r2, r3 + + /* The fast case is where we have already allocated a function arc, and so + * also a function pointer. + */ + + /* First find the function being called (using self_pc) */ + mov r10, r11 +0: + ldw r10, 0(r10) + beq r10, zero, .Lnew_arc + ldw r2, 4(r10) + bne r2, ra, 0b + + /* Found a function entry for this PC. Now look for an arc with a matching + * from_pc value. There will always be at least one arc. */ + ldw r3, 8(r10) +0: + ldw r2, 4(r3) + beq r2, r8, .Lfound_arc + ldw r3, 0(r3) + bne r3, zero, 0b + +.Lnew_arc: + addi sp, sp, -24 + +.LCFI0: + stw ra, 0(sp) + stw r4, 4(sp) + stw r5, 8(sp) + stw r6, 12(sp) + stw r7, 16(sp) + stw r8, 20(sp) + +.LCFI1: + /* __mcount_record(orig_ra, orig_r8, fn_entry, *fn_head); */ + mov r4, ra + mov r5, r8 + mov r6, r10 + mov r7, r11 + call __mcount_record + + /* restore registers from the stack */ + ldw ra, 0(sp) + ldw r4, 4(sp) + ldw r5, 8(sp) + ldw r6, 12(sp) + ldw r7, 16(sp) + ldw r8, 20(sp) + + addi sp, sp, 24 + +.LCFI2: + ret + +.Lfound_arc: + /* We've found the correct arc record. Increment the count and return */ + ldw r2, 8(r3) + addi r2, r2, 1 + stw r2, 8(r3) + ret + +.Lmcount_end: + + + +/* + * Dwarf2 debug information for the function. This provides GDB with the + * information it needs to backtrace out of this function. + */ + + .section .debug_frame,"",@progbits +.LCIE: + .4byte 2f - 1f /* Length */ +1: + .4byte 0xffffffff /* CIE id */ + .byte 0x1 /* Version */ + .string "" /* Augmentation */ + .uleb128 0x1 /* Code alignment factor */ + .sleb128 -4 /* Data alignment factor */ + .byte 0x1f /* Return address register */ + + .byte 0xc /* Define CFA */ + .uleb128 0x1b /* Register 27 (sp) */ + .uleb128 0x0 /* Offset 0 */ + + .align 2 /* Padding */ +2: + +.LFDE_mcount: + .4byte 2f - 1f /* Length */ +1: + .4byte .LCIE /* Pointer to CIE */ + .4byte mcount /* Start of table entry */ + .4byte .Lmcount_end - mcount /* Size of table entry */ + + .byte 0x4 /* Advance location */ + .4byte .LCFI0 - mcount /* to .LCFI0 */ + .byte 0xe /* Define CFA offset */ + .uleb128 24 /* to 24 */ + + .byte 0x4 /* Advance location */ + .4byte .LCFI1 - .LCFI0 /* to .LCFI1 */ + .byte 0x9f /* Store ra */ + .uleb128 0x6 /* at CFA-24 */ + .byte 0x84 /* Store r4 */ + .uleb128 0x5 /* at CFA-20 */ + .byte 0x85 /* Store r5 */ + .uleb128 0x4 /* at CFA-16 */ + .byte 0x86 /* Store r6 */ + .uleb128 0x3 /* at CFA-12 */ + .byte 0x87 /* Store r7 */ + .uleb128 0x2 /* at CFA-8 */ + .byte 0x88 /* Store r8 */ + .uleb128 0x1 /* at CFA-4 */ + + .byte 0x4 /* Advance location */ + .4byte .LCFI2 - .LCFI1 /* to .LCFI2 */ + .byte 0xe /* Define CFA offset */ + .uleb128 0 /* to 0 */ + .byte 0x8 /* Same value */ + .uleb128 31 /* for ra */ + .byte 0x8 /* Same value */ + .uleb128 4 /* for r4 */ + .byte 0x8 /* Same value */ + .uleb128 5 /* for r5 */ + .byte 0x8 /* Same value */ + .uleb128 6 /* for r6 */ + .byte 0x8 /* Same value */ + .uleb128 7 /* for r7 */ + .byte 0x8 /* Same value */ + .uleb128 8 /* for r8 */ + + .align 2 +2: + diff --git a/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_open.c b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_open.c new file mode 100644 index 0000000..4790f53 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_open.c @@ -0,0 +1,173 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_errno.h" +#include "sys/alt_warning.h" +#include "priv/alt_file.h" +#include "alt_types.h" +#include "os/alt_syscall.h" + +#ifdef ALT_USE_DIRECT_DRIVERS + +int ALT_OPEN (const char* file, int flags, int mode) +{ + /* Generate a link time warning, should this function ever be called. */ + + ALT_STUB_WARNING(open); + + /* Indicate an error */ + + ALT_ERRNO = ENOSYS; + return -1; +} + +#else /* !ALT_USE_DIRECT_DRIVERS */ + +extern alt_llist alt_dev_list; + +/* + * alt_file_locked() is used by open() to ensure that a device has not been + * previously locked for exclusive access using ioctl(). This test is only + * performed for devices. Filesystems are required to handle the ioctl() call + * themselves, and report the error from the filesystems open() function. + */ + +static int alt_file_locked (alt_fd* fd) +{ + alt_u32 i; + + /* + * Mark the file descriptor as belonging to a device. + */ + + fd->fd_flags |= ALT_FD_DEV; + + /* + * Loop through all current file descriptors searching for one that's locked + * for exclusive access. If a match is found, generate an error. + */ + + for (i = 0; i <= alt_max_fd; i++) + { + if ((alt_fd_list[i].dev == fd->dev) && + (alt_fd_list[i].fd_flags & ALT_FD_EXCL) && + (&alt_fd_list[i] != fd)) + { + return -EACCES; + } + } + + /* The device is not locked */ + + return 0; +} + +/* + * open() is called in order to get a file descriptor that reference the file + * or device named "name". This descriptor can then be used to manipulate the + * file/device using the standard system calls, e.g. write(), read(), ioctl() + * etc. + * + * This is equivalent to the standard open() system call. + * + * ALT_OPEN is mapped onto the open() system call in alt_syscall.h + */ + +int ALT_OPEN (const char* file, int flags, int mode) +{ + alt_dev* dev; + alt_fd* fd; + int index = -1; + int status = -ENODEV; + int isafs = 0; + + /* + * Check the device list, to see if a device with a matching name is + * registered. + */ + + if (!(dev = alt_find_dev (file, &alt_dev_list))) + { + /* No matching device, so try the filesystem list */ + + dev = alt_find_file (file); + isafs = 1; + } + + /* + * If a matching device or filesystem is found, allocate a file descriptor. + */ + + if (dev) + { + if ((index = alt_get_fd (dev)) < 0) + { + status = index; + } + else + { + fd = &alt_fd_list[index]; + fd->fd_flags = (flags & ~ALT_FD_FLAGS_MASK); + + /* If this is a device, ensure it isn't already locked */ + + if (isafs || ((status = alt_file_locked (fd)) >= 0)) + { + /* + * If the device or filesystem provides an open() callback function, + * call it now to perform any device/filesystem specific operations. + */ + + status = (dev->open) ? dev->open(fd, file, flags, mode): 0; + } + } + } + else + { + status = -ENODEV; + } + + /* Allocation failed, so clean up and return an error */ + + if (status < 0) + { + alt_release_fd (index); + ALT_ERRNO = -status; + return -1; + } + + /* return the reference upon success */ + + return index; +} + +#endif /* ALT_USE_DIRECT_DRIVERS */ diff --git a/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_printf.c b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_printf.c new file mode 100644 index 0000000..e742b57 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_printf.c @@ -0,0 +1,127 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/* + * This file provides a very minimal printf implementation for use with very + * small applications. Only the following format strings are supported: + * %x + * %s + * %c + * %% + */ + +#include +#include "sys/alt_stdio.h" + +/* + * ALT printf function + */ +void +alt_printf(const char* fmt, ... ) +{ + va_list args; + va_start(args, fmt); + const char *w; + char c; + + /* Process format string. */ + w = fmt; + while ((c = *w++) != 0) + { + /* If not a format escape character, just print */ + /* character. Otherwise, process format string. */ + if (c != '%') + { + alt_putchar(c); + } + else + { + /* Get format character. If none */ + /* available, processing is complete. */ + if ((c = *w++) != 0) + { + if (c == '%') + { + /* Process "%" escape sequence. */ + alt_putchar(c); + } + else if (c == 'c') + { + int v = va_arg(args, int); + alt_putchar(v); + } + else if (c == 'x') + { + /* Process hexadecimal number format. */ + unsigned long v = va_arg(args, unsigned long); + unsigned long digit; + int digit_shift; + + /* If the number value is zero, just print and continue. */ + if (v == 0) + { + alt_putchar('0'); + continue; + } + + /* Find first non-zero digit. */ + digit_shift = 28; + while (!(v & (0xF << digit_shift))) + digit_shift -= 4; + + /* Print digits. */ + for (; digit_shift >= 0; digit_shift -= 4) + { + digit = (v & (0xF << digit_shift)) >> digit_shift; + if (digit <= 9) + c = '0' + digit; + else + c = 'a' + digit - 10; + alt_putchar(c); + } + } + else if (c == 's') + { + /* Process string format. */ + char *s = va_arg(args, char *); + + while(*s) + alt_putchar(*s++); + } + } + else + { + break; + } + } + } +} diff --git a/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_putchar.c b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_putchar.c new file mode 100644 index 0000000..badaa02 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_putchar.c @@ -0,0 +1,59 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +#ifdef ALT_USE_DIRECT_DRIVERS +#include "system.h" +#include "sys/alt_driver.h" +#include "sys/alt_stdio.h" +#endif + +/* + * Uses the ALT_DRIVER_WRITE() macro to call directly to driver if available. + * Otherwise, uses newlib provided putchar() routine. + */ +int +alt_putchar(int c) +{ +#ifdef ALT_USE_DIRECT_DRIVERS + ALT_DRIVER_WRITE_EXTERNS(ALT_STDOUT_DEV); + char c1 = (char)(c & 0xff); + + if (ALT_DRIVER_WRITE(ALT_STDOUT_DEV, &c1, 1, 0) == -1) { + return -1; + } + return c; +#else + return putchar(c); +#endif +} diff --git a/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_putstr.c b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_putstr.c new file mode 100644 index 0000000..5345945 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_putstr.c @@ -0,0 +1,55 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +#ifdef ALT_USE_DIRECT_DRIVERS +#include +#include "system.h" +#include "sys/alt_driver.h" +#include "sys/alt_stdio.h" +#endif + +/* + * Uses the ALT_DRIVER_WRITE() macro to call directly to driver if available. + * Otherwise, uses newlib provided fputs() routine. + */ +int +alt_putstr(const char* str) +{ +#ifdef ALT_USE_DIRECT_DRIVERS + ALT_DRIVER_WRITE_EXTERNS(ALT_STDOUT_DEV); + return ALT_DRIVER_WRITE(ALT_STDOUT_DEV, str, strlen(str), 0); +#else + return fputs(str, stdout); +#endif +} diff --git a/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_read.c b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_read.c new file mode 100644 index 0000000..1c89777 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_read.c @@ -0,0 +1,125 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include + +#include "sys/alt_errno.h" +#include "sys/alt_warning.h" +#include "priv/alt_file.h" +#include "os/alt_syscall.h" + +/* + * The read() system call is used to read a block of data from a file or device. + * This function simply vectors the request to the device driver associated + * with the input file descriptor "file". + * + * ALT_READ is mapped onto the read() system call in alt_syscall.h + */ + +#ifdef ALT_USE_DIRECT_DRIVERS + +#include "system.h" +#include "sys/alt_driver.h" + +/* + * Provide minimal version that just reads from the stdin device when provided. + */ + +int ALT_READ (int file, void *ptr, size_t len) +{ +#ifdef ALT_STDIN_PRESENT + ALT_DRIVER_READ_EXTERNS(ALT_STDIN_DEV); +#endif + +#if !defined(ALT_STDIN_PRESENT) + /* Generate a link time warning, should this function ever be called. */ + ALT_STUB_WARNING(read); +#endif + + switch (file) { +#ifdef ALT_STDIN_PRESENT + case 0: /* stdin file descriptor */ + return ALT_DRIVER_READ(ALT_STDIN_DEV, ptr, len, 0); +#endif /* ALT_STDIN_PRESENT */ + default: + ALT_ERRNO = EBADFD; + return -1; + } +} + +#else /* !ALT_USE_DIRECT_DRIVERS */ + +int ALT_READ (int file, void *ptr, size_t len) +{ + alt_fd* fd; + int rval; + + /* + * A common error case is that when the file descriptor was created, the call + * to open() failed resulting in a negative file descriptor. This is trapped + * below so that we don't try and process an invalid file descriptor. + */ + + fd = (file < 0) ? NULL : &alt_fd_list[file]; + + if (fd) + { + /* + * If the file has not been opened with read access, or if the driver does + * not provide an implementation of read(), generate an error. Otherwise + * call the drivers read() function to process the request. + */ + + if (((fd->fd_flags & O_ACCMODE) != O_WRONLY) && + (fd->dev->read)) + { + if ((rval = fd->dev->read(fd, ptr, len)) < 0) + { + ALT_ERRNO = -rval; + return -1; + } + return rval; + } + else + { + ALT_ERRNO = EACCES; + } + } + else + { + ALT_ERRNO = EBADFD; + } + return -1; +} + +#endif /* ALT_USE_DIRECT_DRIVERS */ diff --git a/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_release_fd.c b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_release_fd.c new file mode 100644 index 0000000..84733a7 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_release_fd.c @@ -0,0 +1,54 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_dev.h" +#include "priv/alt_file.h" + +/* + * alt_release_fd() is called to free an allocated file descriptor. This is + * done by setting the device pointer in the file descriptor structure to zero. + * + * File descriptors correcponding to standard in, standard out and standard + * error cannont be released backed to the pool. They are always reserved. + */ + +void alt_release_fd (int fd) +{ + if (fd > 2) + { + alt_fd_list[fd].fd_flags = 0; + alt_fd_list[fd].dev = 0; + } +} + + + diff --git a/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_remap_cached.c b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_remap_cached.c new file mode 100644 index 0000000..f61cb9c --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_remap_cached.c @@ -0,0 +1,50 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003,2007 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "sys/alt_cache.h" +#include "system.h" + +#ifdef NIOS2_MMU_PRESENT +/* Convert KERNEL region address to IO region address */ +#define BYPASS_DCACHE_MASK (0x1 << 29) +#else +/* Set bit 31 of address to bypass D-cache */ +#define BYPASS_DCACHE_MASK (0x1 << 31) +#endif + +/* + * Convert a pointer to a block of uncached memory, into a block of + * cached memory. + */ + +void* alt_remap_cached (volatile void* ptr, alt_u32 len) +{ + return (void*) (((alt_u32) ptr) & ~BYPASS_DCACHE_MASK); +} diff --git a/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_remap_uncached.c b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_remap_uncached.c new file mode 100644 index 0000000..7ff6302 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_remap_uncached.c @@ -0,0 +1,51 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003,2007 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "sys/alt_cache.h" +#include "system.h" + +#ifdef NIOS2_MMU_PRESENT +/* Convert KERNEL region address to IO region address */ +#define BYPASS_DCACHE_MASK (0x1 << 29) +#else +/* Set bit 31 of address to bypass D-cache */ +#define BYPASS_DCACHE_MASK (0x1 << 31) +#endif + +/* + * Convert a pointer to a block of cached memory, into a block of + * uncached memory. + */ + +volatile void* alt_remap_uncached (void* ptr, alt_u32 len) +{ + alt_dcache_flush (ptr, len); + return (volatile void*) (((alt_u32) ptr) | BYPASS_DCACHE_MASK); +} diff --git a/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_rename.c b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_rename.c new file mode 100644 index 0000000..48afac0 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_rename.c @@ -0,0 +1,55 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_errno.h" +#include "sys/alt_warning.h" +#include "os/alt_syscall.h" + +/* + * _rename() is used by newlib to rename an existing file. This is unsupported + * in the HAL environment. However a "do-nothing" implementation is still + * provied for newlib compatability. + * + * ALT_RENAME is mapped onto the _rename() system call in alt_syscall.h + */ + +int ALT_RENAME (char *existing, char *new) +{ + /* Generate a link time warning, should this function ever be called. */ + + ALT_STUB_WARNING(_rename); + + /* Indicate an error */ + + ALT_ERRNO = ENOSYS; + return -1; +} diff --git a/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_sbrk.c b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_sbrk.c new file mode 100644 index 0000000..b8c3799 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_sbrk.c @@ -0,0 +1,136 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +#include "os/alt_syscall.h" + +#include "sys/alt_irq.h" +#include "sys/alt_stack.h" + +#include "system.h" + +/* + * sbrk() is called to dynamically extend the data segment for the application. + * Thie input argument "incr" is the size of the block to allocate. + * + * This simple implementation does not perform any bounds checking. Memory will + * be allocated, even if the request region colides with the stack or overflows + * the available physical memory. + * + * ALT_SBRK is mapped onto the sbrk() system call in alt_syscall.h + * + * This function is called by the profiling code to allocate memory so must be + * safe if called from an interrupt context. It must also not be instrumented + * because that would lead to an infinate loop. + */ + +extern char __alt_heap_start[]; /* set by linker */ +extern char __alt_heap_limit[]; /* set by linker */ + +static char *heap_end = __alt_heap_start; + +#if defined(ALT_EXCEPTION_STACK) && defined(ALT_STACK_CHECK) +char * alt_exception_old_stack_limit = NULL; +#endif + +caddr_t ALT_SBRK (int incr) __attribute__ ((no_instrument_function )); + +caddr_t ALT_SBRK (int incr) +{ + alt_irq_context context; + char *prev_heap_end; + + context = alt_irq_disable_all(); + + /* Always return data aligned on a word boundary */ + heap_end = (char *)(((unsigned int)heap_end + 3) & ~3); + +#ifdef ALT_MAX_HEAP_BYTES + /* + * User specified a maximum heap size. Return -1 if it would + * be exceeded by this sbrk call. + */ + if (((heap_end + incr) - __alt_heap_start) > ALT_MAX_HEAP_BYTES) { + alt_irq_enable_all(context); + return (caddr_t)-1; + } +#else + if ((heap_end + incr) > __alt_heap_limit) { + alt_irq_enable_all(context); + return (caddr_t)-1; + } +#endif + + prev_heap_end = heap_end; + heap_end += incr; + +#ifdef ALT_STACK_CHECK + /* + * If the stack and heap are contiguous then extending the heap reduces the + * space available for the stack. If we are still using the default stack + * then adjust the stack limit to note this, while checking for stack + * pointer overflow. + * If the stack limit isn't pointing at the top of the heap then the code + * is using a different stack so none of this needs to be done. + */ + + if (alt_stack_limit() == prev_heap_end) + { + if (alt_stack_pointer() <= heap_end) + alt_report_stack_overflow(); + + alt_set_stack_limit(heap_end); + } + +#ifdef ALT_EXCEPTION_STACK + /* + * If we are executing from the exception stack then compare against the + * stack we switched away from as well. The exception stack is a fixed + * size so doesn't need to be checked. + */ + + if (alt_exception_old_stack_limit == prev_heap_end) + { + if (alt_exception_old_stack_limit <= heap_end) + alt_report_stack_overflow(); + + alt_exception_old_stack_limit = heap_end; + } +#endif + +#endif + + alt_irq_enable_all(context); + + return (caddr_t) prev_heap_end; +} diff --git a/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_settod.c b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_settod.c new file mode 100644 index 0000000..59db0f8 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_settod.c @@ -0,0 +1,96 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include + +#include "sys/alt_errno.h" +#include "sys/alt_alarm.h" +#include "os/alt_syscall.h" + +/* + * "alt_timezone" and "alt_resettime" are the values of the the reset time and + * time zone set through the last call to settimeofday(). By default they are + * zero initialised. + */ + +extern struct timezone alt_timezone; +extern struct timeval alt_resettime; + +/* + * Macro defining the number of micoseconds in a second. + */ + +#define ALT_US (1000000) + + +/* + * settimeofday() can be called to calibrate the system clock, so that + * subsequent calls to gettimeofday() will return the elapsed "wall clock" + * time. + * + * This is done by updating the global structures "alt_resettime" and + * "alt_timezone" so that an immediate call to gettimeofday() would return + * the value specified by "t" and "tz". + * + * Warning: if this function is called concurrently with a call to + * gettimeofday(), the value returned by gettimeofday() will be unreliable. + * + * ALT_SETTIMEOFDAY is mapped onto the settimeofday() system call in + * alt_syscall.h + */ + +int ALT_SETTIMEOFDAY (const struct timeval *t, + const struct timezone *tz) +{ + alt_u32 nticks = alt_nticks (); + alt_u32 tick_rate = alt_ticks_per_second (); + + /* If there is a system clock available, update the current time */ + + if (tick_rate) + { + alt_resettime.tv_sec = t->tv_sec - nticks/tick_rate; + alt_resettime.tv_usec = t->tv_usec - + ((nticks*(ALT_US/tick_rate))%ALT_US); + + alt_timezone.tz_minuteswest = tz->tz_minuteswest; + alt_timezone.tz_dsttime = tz->tz_dsttime; + + return 0; + } + + /* There's no system clock available */ + + ALT_ERRNO = ENOSYS; + return -1; +} diff --git a/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_software_exception.S b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_software_exception.S new file mode 100644 index 0000000..2142594 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_software_exception.S @@ -0,0 +1,53 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003-2005 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + + /* + * This file provides the global symbol: software_exception. It is provided to + * support legacy code, and should not be used by new software. + * + * It is used by legacy code to invoke the software exception handler as + * defined by version 1.0 of the Nios II kit. It should only be used when you + * are providing your own interrupt entry point, i.e. you are not using + * alt_irq_entry. + */ + +#include "system.h" + + /* + * Pull in the exception handler. + */ + + .globl alt_exception + + .section .exceptions.entry.label, "xa" + + .globl software_exception + .type software_exception, @function +software_exception: diff --git a/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_stat.c b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_stat.c new file mode 100644 index 0000000..44e207b --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_stat.c @@ -0,0 +1,59 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include +#include +#include + +#include "os/alt_syscall.h" + +/* + * The stat() function is similar to the fstat() function in that it is used to + * obtain status information about a file. Instead of using an open file + * descriptor (like fstat()), stat() takes the name of a file as an input + * argument. + * + * ALT_STAT is mapped onto the stat() system call in alt_syscall.h + */ + +int ALT_STAT (const char *file, struct stat *st) +{ + int fd; + int rc; + + fd = open (file, 0); + rc = fstat (fd, st); + close (fd); + + return rc; +} diff --git a/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_tick.c b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_tick.c new file mode 100644 index 0000000..c73488d --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_tick.c @@ -0,0 +1,149 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_irq.h" +#include "sys/alt_alarm.h" +#include "os/alt_hooks.h" +#include "alt_types.h" + +/* + * "_alt_tick_rate" is used to store the value of the system clock frequency + * in ticks per second. It is initialised to zero, which corresponds to there + * being no system clock facility available. + */ + +alt_u32 _alt_tick_rate = 0; + +/* + * "_alt_nticks" is the number of system clock ticks that have elapsed since + * reset. + */ + +volatile alt_u32 _alt_nticks = 0; + +/* + * "alt_alarm_list" is the head of a linked list of registered alarms. This is + * initialised to be an empty list. + */ + +ALT_LLIST_HEAD(alt_alarm_list); + +/* + * alt_alarm_stop() is called to remove an alarm from the list of registered + * alarms. Alternatively an alarm can unregister itself by returning zero when + * the alarm executes. + */ + +void alt_alarm_stop (alt_alarm* alarm) +{ + alt_irq_context irq_context; + + irq_context = alt_irq_disable_all(); + alt_llist_remove (&alarm->llist); + alt_irq_enable_all (irq_context); +} + +/* + * alt_tick() is periodically called by the system clock driver in order to + * process the registered list of alarms. Each alarm is registed with a + * callback interval, and a callback function, "callback". + * + * The return value of the callback function indicates how many ticks are to + * elapse until the next callback. A return value of zero indicates that the + * alarm should be deactivated. + * + * alt_tick() is expected to run at interrupt level. + */ + +void alt_tick (void) +{ + alt_alarm* next; + alt_alarm* alarm = (alt_alarm*) alt_alarm_list.next; + + alt_u32 next_callback; + + /* update the tick counter */ + + _alt_nticks++; + + /* process the registered callbacks */ + + while (alarm != (alt_alarm*) &alt_alarm_list) + { + next = (alt_alarm*) alarm->llist.next; + + /* + * Upon the tick-counter rolling over it is safe to clear the + * roll-over flag; once the flag is cleared this (or subsequnt) + * tick events are enabled to generate an alarm event. + */ + if ((alarm->rollover) && (_alt_nticks == 0)) + { + alarm->rollover = 0; + } + + /* if the alarm period has expired, make the callback */ + if ((alarm->time <= _alt_nticks) && (alarm->rollover == 0)) + { + next_callback = alarm->callback (alarm->context); + + /* deactivate the alarm if the return value is zero */ + + if (next_callback == 0) + { + alt_alarm_stop (alarm); + } + else + { + alarm->time += next_callback; + + /* + * If the desired alarm time causes a roll-over, set the rollover + * flag. This will prevent the subsequent tick event from causing + * an alarm too early. + */ + if(alarm->time < _alt_nticks) + { + alarm->rollover = 1; + } + } + } + alarm = next; + } + + /* + * Update the operating system specific timer facilities. + */ + + ALT_OS_TIME_TICK(); +} + diff --git a/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_times.c b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_times.c new file mode 100644 index 0000000..4dd965d --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_times.c @@ -0,0 +1,71 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +#include "sys/alt_errno.h" +#include "sys/alt_alarm.h" +#include "os/alt_syscall.h" + +/* + * The times() function is used by newlib to obtain elapsed time information. + * The return value is the elapsed time since reset in system clock ticks. Note + * that this is distinct from the strict Posix version of times(), which should + * return the time since: 0 hours, 0 minutes, 0 seconds, January 1, 1970, GMT. + * + * The input structure is filled in with time accounting information. This + * implementation attributes all cpu time to the system. + * + * ALT_TIMES is mapped onto the times() system call in alt_syscall.h + */ + +clock_t ALT_TIMES (struct tms *buf) +{ + clock_t ticks = alt_nticks(); + + /* If there is no system clock present, generate an error */ + + if (!alt_ticks_per_second()) + { + ALT_ERRNO = ENOSYS; + return 0; + } + + /* Otherwise return the elapsed time */ + + buf->tms_utime = 0; + buf->tms_stime = ticks; + buf->tms_cutime = 0; + buf->tms_cstime = 0; + + return ticks; +} diff --git a/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_uncached_free.c b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_uncached_free.c new file mode 100644 index 0000000..6e362ba --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_uncached_free.c @@ -0,0 +1,49 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003,2007 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "sys/alt_cache.h" +#include "system.h" + +#ifdef NIOS2_MMU_PRESENT +/* Convert KERNEL region address to IO region address */ +#define BYPASS_DCACHE_MASK (0x1 << 29) +#else +/* Set bit 31 of address to bypass D-cache */ +#define BYPASS_DCACHE_MASK (0x1 << 31) +#endif + +/* + * Free a block of uncached memory. + */ + +void alt_uncached_free (volatile void* ptr) +{ + free ((void*) (((alt_u32) ptr) & ~BYPASS_DCACHE_MASK)); +} diff --git a/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_uncached_malloc.c b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_uncached_malloc.c new file mode 100644 index 0000000..ab3416d --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_uncached_malloc.c @@ -0,0 +1,55 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003,2007 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "sys/alt_cache.h" +#include "system.h" + +#ifdef NIOS2_MMU_PRESENT +/* Convert KERNEL region address to IO region address */ +#define BYPASS_DCACHE_MASK (0x1 << 29) +#else +/* Set bit 31 of address to bypass D-cache */ +#define BYPASS_DCACHE_MASK (0x1 << 31) +#endif + +/* + * Allocate a block of uncached memory. + */ + +volatile void* alt_uncached_malloc (size_t size) +{ + void* ptr; + + ptr = malloc (size); + + alt_dcache_flush (ptr, size); + + return ptr ? (volatile void*) (((alt_u32) ptr) | BYPASS_DCACHE_MASK) : NULL; +} diff --git a/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_unlink.c b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_unlink.c new file mode 100644 index 0000000..29e35d6 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_unlink.c @@ -0,0 +1,55 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_errno.h" +#include "sys/alt_warning.h" +#include "os/alt_syscall.h" + +/* + * unlink() is used by newlib to delete an existing link to a file. This is + * unsupported in the HAL environment. However a "do-nothing" implementation + * is still provied for newlib compatability. + * + * ALT_UNLINK is mapped onto the unlink() system call in alt_syscall.h + */ + +int ALT_UNLINK (char *name) +{ + /* Generate a link time warning, should this function ever be called. */ + + ALT_STUB_WARNING(unlink); + + /* Indicate an error */ + + ALT_ERRNO = ENOSYS; + return -1; +} diff --git a/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_usleep.c b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_usleep.c new file mode 100644 index 0000000..2330eb8 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_usleep.c @@ -0,0 +1,52 @@ +/* + * Copyright (c) 2003 Altera Corporation, San Jose, California, USA. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + * ------------ + * + * Altera does not recommend, suggest or require that this reference design + * file be used in conjunction or combination with any other product. + * + * usleep.c - Microsecond delay routine + */ + +#include + +#include "priv/alt_busy_sleep.h" +#include "os/alt_syscall.h" + +/* + * This function simply calls alt_busy_sleep() to perform the delay. This + * function implements the delay as a calibrated "busy loop". + * + * ALT_USLEEP is mapped onto the usleep() system call in alt_syscall.h + */ + + + +#if defined (__GNUC__) && __GNUC__ >= 4 +int ALT_USLEEP (useconds_t us) +#else +unsigned int ALT_USLEEP (unsigned int us) +#endif +{ + return alt_busy_sleep(us); +} diff --git a/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_wait.c b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_wait.c new file mode 100644 index 0000000..a42f80f --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_wait.c @@ -0,0 +1,52 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_errno.h" +#include "os/alt_syscall.h" + +/* + * wait() is used by newlib to wait for all child processes to exit. Since the + * HAL does not support spawning child processes, this returns immediately as + * there can't be anythign to wait for. + * + * ALT_WAIT is mapped onto the wait() system call in alt_syscall.h + */ + +int ALT_WAIT (int *status) +{ + *status = 0; + + ALT_ERRNO = ECHILD; + + return -1; +} + diff --git a/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_write.c b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_write.c new file mode 100644 index 0000000..51debb5 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/HAL/src/alt_write.c @@ -0,0 +1,138 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include + +#include "sys/alt_errno.h" +#include "sys/alt_warning.h" +#include "priv/alt_file.h" +#include "os/alt_syscall.h" + +#include "sys/alt_log_printf.h" + +/* + * The write() system call is used to write a block of data to a file or + * device. This function simply vectors the request to the device driver + * associated with the input file descriptor "file". + * + * ALT_WRITE is mapped onto the write() system call in alt_syscall.h + */ + +#ifdef ALT_USE_DIRECT_DRIVERS + +#include "system.h" +#include "sys/alt_driver.h" + +/* + * Provide minimal version that just writes to the stdout/stderr devices + * when provided. + */ + +int ALT_WRITE (int file, const void *ptr, size_t len) +{ +#ifdef ALT_STDOUT_PRESENT + ALT_DRIVER_WRITE_EXTERNS(ALT_STDOUT_DEV); +#endif +#ifdef ALT_STDERR_PRESENT + ALT_DRIVER_WRITE_EXTERNS(ALT_STDERR_DEV); +#endif + +#if !defined(ALT_STDOUT_PRESENT) && !defined(ALT_STDERR_PRESENT) + /* Generate a link time warning, should this function ever be called. */ + ALT_STUB_WARNING(write); +#endif + + switch (file) { +#ifdef ALT_STDOUT_PRESENT + case 1: /* stdout file descriptor */ + return ALT_DRIVER_WRITE(ALT_STDOUT_DEV, ptr, len, 0); +#endif /* ALT_STDOUT_PRESENT */ +#ifdef ALT_STDERR_PRESENT + case 2: /* stderr file descriptor */ + return ALT_DRIVER_WRITE(ALT_STDERR_DEV, ptr, len, 0); +#endif /* ALT_STDERR_PRESENT */ + default: + ALT_ERRNO = EBADFD; + return -1; + } +} + +#else /* !ALT_USE_DIRECT_DRIVERS */ + +int ALT_WRITE (int file, const void *ptr, size_t len) +{ + alt_fd* fd; + int rval; + + /* + * A common error case is that when the file descriptor was created, the call + * to open() failed resulting in a negative file descriptor. This is trapped + * below so that we don't try and process an invalid file descriptor. + */ + + fd = (file < 0) ? NULL : &alt_fd_list[file]; + + if (fd) + { + /* + * If the file has not been opened with write access, or if the driver does + * not provide an implementation of write(), generate an error. Otherwise + * call the drivers write() function to process the request. + */ + + if (((fd->fd_flags & O_ACCMODE) != O_RDONLY) && fd->dev->write) + { + + /* ALT_LOG - see altera_hal/HAL/inc/sys/alt_log_printf.h */ + ALT_LOG_WRITE_FUNCTION(ptr,len); + + if ((rval = fd->dev->write(fd, ptr, len)) < 0) + { + ALT_ERRNO = -rval; + return -1; + } + return rval; + } + else + { + ALT_ERRNO = EACCES; + } + } + else + { + ALT_ERRNO = EBADFD; + } + return -1; +} + +#endif /* ALT_USE_DIRECT_DRIVERS */ diff --git a/software/qsys_tutorial_switchs18_bsp/HAL/src/altera_nios2_qsys_irq.c b/software/qsys_tutorial_switchs18_bsp/HAL/src/altera_nios2_qsys_irq.c new file mode 100644 index 0000000..c7a4f93 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/HAL/src/altera_nios2_qsys_irq.c @@ -0,0 +1,37 @@ +/* + * Copyright (c) 2009 Altera Corporation, San Jose, California, USA. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + * altera_nios2_irq.c - Support for Nios II internal interrupt controller. + * + */ + +#include "sys/alt_irq.h" +#include "altera_nios2_qsys_irq.h" + +/* + * To initialize the internal interrupt controller, just clear the IENABLE + * register so that all possible IRQs are disabled. + */ +void altera_nios2_qsys_irq_init(void) +{ + NIOS2_WRITE_IENABLE(0); +} diff --git a/software/qsys_tutorial_switchs18_bsp/HAL/src/crt0.S b/software/qsys_tutorial_switchs18_bsp/HAL/src/crt0.S new file mode 100644 index 0000000..582445d --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/HAL/src/crt0.S @@ -0,0 +1,456 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "system.h" +#include "nios2.h" + +/* Setup header files to work with assembler code. */ +#define ALT_ASM_SRC + +/* Debug logging facility */ +#include "sys/alt_log_printf.h" + +/*************************************************************************\ +| MACROS | +\*************************************************************************/ + +/* + * The new build tools explicitly define macros when alt_load() + * must be called. The define ALT_LOAD_EXPLICITLY_CONTROLLED tells us that + * those macros are controlling if alt_load() needs to be called. + */ +#ifdef ALT_LOAD_EXPLICITLY_CONTROLLED + +/* Need to call alt_load() if any of these sections are being copied. */ +#if defined(ALT_LOAD_COPY_RODATA) || defined(ALT_LOAD_COPY_RWDATA) || defined(ALT_LOAD_COPY_EXCEPTIONS) +#define CALL_ALT_LOAD +#endif + +#else /* !ALT_LOAD_EXPLICITLY_CONTROLLED */ + +/* + * The legacy build tools use the following macros to detect when alt_load() + * needs to be called. + */ + +#define __ALT_LOAD_SECTIONS(res, text, rodata, exc) \ + ((res##_BASE != rodata##_BASE) || \ + (res##_BASE != rwdata##_BASE) || \ + (res##_BASE != exc##_BASE)) + +#define _ALT_LOAD_SECTIONS(res, text, rodata, exc) \ + __ALT_LOAD_SECTIONS(res, text, rodata, exc) + +#define ALT_LOAD_SECTIONS _ALT_LOAD_SECTIONS(ALT_RESET_DEVICE, \ + ALT_RODATA_DEVICE, \ + ALT_RWDATA_DEVICE, \ + ALT_EXCEPTIONS_DEVICE) + +/* Call alt_load() if there is no bootloader and ALT_LOAD_SECTIONS isn't 0. */ +#if defined(ALT_NO_BOOTLOADER) && ALT_LOAD_SECTIONS +#define CALL_ALT_LOAD +#endif + +#endif /* !ALT_LOAD_EXPLICITLY_CONTROLLED */ + +/* + * When the legacy build tools define a macro called ALT_NO_BOOTLOADER, + * it indicates that initialization code is allowed at the reset address. + * The new build tools define a macro called ALT_ALLOW_CODE_AT_RESET for + * the same purpose. + */ +#ifdef ALT_NO_BOOTLOADER +#define ALT_ALLOW_CODE_AT_RESET +#endif + +/*************************************************************************\ +| EXTERNAL REFERENCES | +\*************************************************************************/ + +/* + * The entry point for user code is either "main" in hosted mode, or + * "alt_main" in standalone mode. These are explicitly referenced here, + * to ensure they are built into the executable. This allows the user + * to build them into libraries, rather than supplying them in object + * files at link time. + */ + .globl main + .globl alt_main + +/* + * Create a reference to the software multiply/divide and trap handers, + * so that if they are provided, they will appear in the executable. + */ +#ifndef ALT_NO_INSTRUCTION_EMULATION + .globl alt_exception_muldiv +#endif +#ifdef ALT_TRAP_HANDLER + .globl alt_exception_trap +#endif + +/* + * Linker defined symbols used to initialize bss. + */ +.globl __bss_start +.globl __bss_end + +/*************************************************************************\ +| RESET SECTION (.entry) | +\*************************************************************************/ + +/* + * This is the reset entry point for Nios II. + * + * At reset, only the cache line which contain the reset vector is + * initialized by the hardware. The code within the first cache line + * initializes the remainder of the instruction cache. + */ + + .section .entry, "xa" + .align 5 + +/* + * Explicitly allow the use of r1 (the assembler temporary register) + * within this code. This register is normally reserved for the use of + * the assembler. + */ + .set noat + +/* + * Some tools want to know where the reset vector is. + * Code isn't always provided at the reset vector but at least the + * __reset label always contains the reset vector address because + * it is defined at the start of the .entry section. + */ + + .globl __reset + .type __reset, @function +__reset: + +/* + * Initialize the instruction cache if present (i.e. size > 0) and + * reset code is allowed unless optimizing for RTL simulation. + * RTL simulations can ensure the instruction cache is already initialized + * so skipping this loop speeds up RTL simulation. + */ + +#if NIOS2_ICACHE_SIZE > 0 && defined(ALT_ALLOW_CODE_AT_RESET) && !defined(ALT_SIM_OPTIMIZE) + /* Assume the instruction cache size is always a power of two. */ +#if NIOS2_ICACHE_SIZE > 0x8000 + movhi r2, %hi(NIOS2_ICACHE_SIZE) +#else + movui r2, NIOS2_ICACHE_SIZE +#endif + +0: + initi r2 + addi r2, r2, -NIOS2_ICACHE_LINE_SIZE + bgt r2, zero, 0b +1: + + /* + * The following debug information tells the ISS not to run the loop above + * but to perform its actions using faster internal code. + */ + .pushsection .debug_alt_sim_info + .int 1, 1, 0b, 1b + .popsection +#endif /* Initialize Instruction Cache */ + +/* + * Jump to the _start entry point in the .text section if reset code + * is allowed or if optimizing for RTL simulation. + */ +#if defined(ALT_ALLOW_CODE_AT_RESET) || defined(ALT_SIM_OPTIMIZE) + /* Jump to the _start entry point in the .text section. */ + movhi r1, %hi(_start) + ori r1, r1, %lo(_start) + jmp r1 + + .size __reset, . - __reset +#endif /* Jump to _start */ + +/* + * When not using exit, provide an _exit symbol to prevent unresolved + * references to _exit from the linker script. + */ +#ifdef ALT_NO_EXIT + .globl _exit +_exit: +#endif + +/*************************************************************************\ +| TEXT SECTION (.text) | +\*************************************************************************/ + +/* + * Start of the .text section, and also the code entry point when + * the code is executed by a bootloader rather than directly from reset. + */ + .section .text + .align 2 + + .globl _start + .type _start, @function +_start: + +/* + * Initialize the data cache if present (i.e. size > 0) and not + * optimizing for RTL simulation. + * RTL simulations can ensure the data cache is already initialized + * so skipping this loop speeds up RTL simulation. + */ + +#if NIOS2_DCACHE_SIZE > 0 && !defined(ALT_SIM_OPTIMIZE) + + /* Assume the data cache size is always a power of two. */ +#if NIOS2_DCACHE_SIZE > 0x8000 + movhi r2, %hi(NIOS2_DCACHE_SIZE) +#else + movui r2, NIOS2_DCACHE_SIZE +#endif + +0: + initd 0(r2) + addi r2, r2, -NIOS2_DCACHE_LINE_SIZE + bgt r2, zero, 0b +1: + + /* + * The following debug information tells the ISS not to run the loop above + * but to perform its actions using faster internal code. + */ + .pushsection .debug_alt_sim_info + .int 2, 1, 0b, 1b + .popsection + +#endif /* Initialize Data Cache */ + + /* Log that caches have been initialized. */ + ALT_LOG_PUTS(alt_log_msg_cache) + + /* Log that the stack pointer is about to be setup. */ + ALT_LOG_PUTS(alt_log_msg_stackpointer) + +#if (NIOS2_NUM_OF_SHADOW_REG_SETS == 0) + /* + * Now that the caches are initialized, set up the stack pointer. + * The value provided by the linker is assumed to be correctly aligned. + */ + movhi sp, %hi(__alt_stack_pointer) + ori sp, sp, %lo(__alt_stack_pointer) + + /* Set up the global pointer. */ + movhi gp, %hi(_gp) + ori gp, gp, %lo(_gp) + +#else /* NIOS2_NUM_OF_SHADOW_REG_SETS > 0 */ + + /* + * Set up the GP and SP in all shadow register sets. + */ + + /* + * Check current register set number, if CPU resets into a shadow register + * set, switch register set to 0 by writing zero to SSTATUS register and + * execute an ERET instruction that just jumps to the next PC address + * (use the NEXTPC instruction to get this). + */ + + rdctl r2, status + + /* Get the current register set number (STATUS.CRS). */ + andi r3, r2, NIOS2_STATUS_CRS_MSK + + /* Skip switch register set if STATUS.CRS is 0. */ + beq r3, zero, .Lskip_switch_reg_set + + .set nobreak + + /* Current register set is non-zero, set SSTATUS to 0. */ + mov sstatus, zero + + /* Get next pc and store in ea. */ + nextpc ea + + /* Point to instruction after eret. */ + addi ea, ea, 8 + + /* + * Execute ERET instruction that just jumps to the next PC address + */ + eret + +.Lskip_switch_reg_set: + mov r2, zero + + /* Reset STATUS register */ + wrctl status, r2 + + movui r3, NIOS2_NUM_OF_SHADOW_REG_SETS + + /* Set up the stack pointer in register set 0. */ + movhi sp, %hi(__alt_stack_pointer) + ori sp, sp, %lo(__alt_stack_pointer) + + /* Set up the global pointer in register set 0. */ + movhi gp, %hi(_gp) + ori gp, gp, %lo(_gp) + +.Lsetup_sp_and_gp_loop: + /* + * Setup GP and SP for shadow register set + * from NIOS2_NUM_OF_SHADOW_REG_SETS to 0 + */ + + /* Skip if number of register sets is 0. */ + beq r3, zero, .Lno_shadow_register_set + + + /* Add previous register set STATUS.PRS by 1 */ + movhi r4, 1 + add r2, r2, r4 + + /* Write STATUS */ + wrctl status, r2 + + /* Clear r0 in the shadow register set (not done by hardware) */ + wrprs r0, r0 + + /* Write the GP in previous register set */ + wrprs gp, gp + + /* Only write the SP in previous register set + * if using the seperate exception stack. For normal case (single stack), + * funnel code would read the SP from previous register set. + */ +#ifdef ALT_INTERRUPT_STACK + + movhi et, %hiadj(__alt_interrupt_stack_pointer) + addi et, et, %lo(__alt_interrupt_stack_pointer) + wrprs sp, et + +#endif /* ALT_INTERRUPT_STACK */ + + /* Decrease number of register set counter by 1 */ + addi r3, r3, -1 + + br .Lsetup_sp_and_gp_loop +.Lno_shadow_register_set: + +#endif /* NIOS2_NUM_OF_SHADOW_REG_SETS */ +/* + * Clear the BSS if not optimizing for RTL simulation. + * + * This uses the symbols: __bss_start and __bss_end, which are defined + * by the linker script. They mark the begining and the end of the bss + * region. The linker script guarantees that these values are word aligned. + */ +#ifndef ALT_SIM_OPTIMIZE + /* Log that the BSS is about to be cleared. */ + ALT_LOG_PUTS(alt_log_msg_bss) + + movhi r2, %hi(__bss_start) + ori r2, r2, %lo(__bss_start) + + movhi r3, %hi(__bss_end) + ori r3, r3, %lo(__bss_end) + + beq r2, r3, 1f + +0: + stw zero, (r2) + addi r2, r2, 4 + bltu r2, r3, 0b + +1: + + /* + * The following debug information tells the ISS not to run the loop above + * but to perform its actions using faster internal code. + */ + .pushsection .debug_alt_sim_info + .int 3, 1, 0b, 1b + .popsection +#endif /* ALT_SIM_OPTIMIZE */ + +/* + * The alt_load() facility is normally used when there is no bootloader. + * It copies some sections into RAM so it acts like a mini-bootloader. + */ +#ifdef CALL_ALT_LOAD + +#ifdef ALT_STACK_CHECK + /* + * If the user has selected stack checking then we need to set up a safe + * value in the stack limit register so that the relocation functions + * don't think the stack has overflowed (the contents of the rwdata + * section aren't defined until alt_load() has been called). + */ + mov et, zero +#endif + + call alt_load + +#endif /* CALL_ALT_LOAD */ + +#ifdef ALT_STACK_CHECK + /* + * Set up the stack limit (if required). The linker has set up the + * copy of the variable which is in memory. + */ + + ldw et, %gprel(alt_stack_limit_value)(gp) +#endif + + /* Log that alt_main is about to be called. */ + ALT_LOG_PUTS(alt_log_msg_alt_main) + + /* Call the C entry point. It should never return. */ + call alt_main + + /* Wait in infinite loop in case alt_main does return. */ +alt_after_alt_main: + br alt_after_alt_main + + .size _start, . - _start + +/* + * Add information about the stack base if stack overflow checking is enabled. + */ +#ifdef ALT_STACK_CHECK + .globl alt_stack_limit_value + .section .sdata,"aws",@progbits + .align 2 + .type alt_stack_limit_value, @object + .size alt_stack_limit_value, 4 +alt_stack_limit_value: + .long __alt_stack_limit +#endif diff --git a/software/qsys_tutorial_switchs18_bsp/Makefile b/software/qsys_tutorial_switchs18_bsp/Makefile new file mode 100644 index 0000000..dcf3b22 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/Makefile @@ -0,0 +1,766 @@ +#------------------------------------------------------------------------------ +# BSP MAKEFILE +# +# This makefile was automatically generated by the nios2-bsp-generate-files +# command. Its purpose is to build a custom Board Support Package (BSP) +# targeting a specific Nios II processor in an SOPC Builder-based design. +# +# To create an application or library Makefile which uses this BSP, try the +# nios2-app-generate-makefile or nios2-lib-generate-makefile commands. +#------------------------------------------------------------------------------ + +#------------------------------------------------------------------------------ +# TOOLS +#------------------------------------------------------------------------------ + +MKDIR := mkdir -p +ECHO := echo +SPACE := $(empty) $(empty) + +#------------------------------------------------------------------------------ +# The adjust-path macro +# +# If COMSPEC is defined, Make is launched from Windows through +# Cygwin. This adjust-path macro will call 'cygpath -u' on all +# paths to ensure they are readable by Make. +# +# If COMSPEC is not defined, Make is launched from *nix, and no adjustment +# is necessary +#------------------------------------------------------------------------------ + +ifndef COMSPEC +ifdef ComSpec +COMSPEC = $(ComSpec) +endif # ComSpec +endif # !COMSPEC + +ifdef COMSPEC + adjust-path = $(subst $(SPACE),\$(SPACE),$(shell cygpath -u "$1")) + adjust-path-mixed = $(subst $(SPACE),\$(SPACE),$(shell cygpath -m "$1")) +else + adjust-path = $(subst $(SPACE),\$(SPACE),$1) + adjust-path-mixed = $(subst $(SPACE),\$(SPACE),$1) +endif + +#------------------------------------------------------------------------------ +# DEFAULT TARGET +# +# The default target, "all", must appear before any other target in the +# Makefile. Note that extra prerequisites are added to the "all" rule later. +#------------------------------------------------------------------------------ +.PHONY: all +all: + @$(ECHO) [BSP build complete] + + +#------------------------------------------------------------------------------ +# PATHS & DIRECTORY NAMES +# +# Explicitly locate absolute path of the BSP root +#------------------------------------------------------------------------------ + +BSP_ROOT_DIR := . + +# Define absolute path to the root of the BSP. +ABS_BSP_ROOT := $(call adjust-path-mixed,$(shell pwd)) + +# Stash all BSP object files here +OBJ_DIR := ./obj + +NEWLIB_DIR = $(BSP_ROOT_DIR)/newlib + + +#------------------------------------------------------------------------------ +# MANAGED CONTENT +# +# All content between the lines "START MANAGED" and "END MANAGED" below is +# generated based on variables in the BSP settings file when the +# nios2-bsp-generate-files command is invoked. If you wish to persist any +# information pertaining to the build process, it is recomended that you +# utilize the BSP settings mechanism to do so. +# +# Note that most variable assignments in this section have a corresponding BSP +# setting that can be changed by using the nios2-bsp-create-settings or +# nios2-bsp-update-settings command before nios2-bsp-generate-files; if you +# want any variable set to a specific value when this Makefile is re-generated +# (to prevent hand-edits from being over-written), use the BSP settings +# facilities above. +#------------------------------------------------------------------------------ + +#START MANAGED + +# The following TYPE comment allows tools to identify the 'type' of target this +# makefile is associated with. +# TYPE: BSP_PRIVATE_MAKEFILE + +# This following VERSION comment indicates the version of the tool used to +# generate this makefile. A makefile variable is provided for VERSION as well. +# ACDS_VERSION: 13.0sp1 +ACDS_VERSION := 13.0sp1 + +# This following BUILD_NUMBER comment indicates the build number of the tool +# used to generate this makefile. +# BUILD_NUMBER: 232 + +SETTINGS_FILE := settings.bsp +SOPC_FILE := C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.sopcinfo + +#------------------------------------------------------------------------------- +# TOOL & COMMAND DEFINITIONS +# +# The base command for each build operation are expressed here. Additional +# switches may be expressed here. They will run for all instances of the +# utility. +#------------------------------------------------------------------------------- + +# Archiver command. Creates library files. +AR = nios2-elf-ar + +# Assembler command. Note that CC is used for .S files. +AS = nios2-elf-gcc + +# Custom flags only passed to the archiver. This content of this variable is +# directly passed to the archiver rather than the more standard "ARFLAGS". The +# reason for this is that GNU Make assumes some default content in ARFLAGS. +# This setting defines the value of BSP_ARFLAGS in Makefile. +BSP_ARFLAGS = -src + +# Custom flags only passed to the assembler. This setting defines the value of +# BSP_ASFLAGS in Makefile. +BSP_ASFLAGS = -Wa,-gdwarf2 + +# C/C++ compiler debug level. '-g' provides the default set of debug symbols +# typically required to debug a typical application. Omitting '-g' removes +# debug symbols from the ELF. This setting defines the value of +# BSP_CFLAGS_DEBUG in Makefile. +BSP_CFLAGS_DEBUG = -g + +# C/C++ compiler optimization level. "-O0" = no optimization,"-O2" = "normal" +# optimization, etc. "-O0" is recommended for code that you want to debug since +# compiler optimization can remove variables and produce non-sequential +# execution of code while debugging. This setting defines the value of +# BSP_CFLAGS_OPTIMIZATION in Makefile. +BSP_CFLAGS_OPTIMIZATION = '-Os' + +# C/C++ compiler warning level. "-Wall" is commonly used.This setting defines +# the value of BSP_CFLAGS_WARNINGS in Makefile. +BSP_CFLAGS_WARNINGS = -Wall + +# C compiler command. +CC = nios2-elf-gcc -xc + +# C++ compiler command. +CXX = nios2-elf-gcc -xc++ + +# Command used to remove files during 'clean' target. +RM = rm -f + + +#------------------------------------------------------------------------------- +# BUILD PRE & POST PROCESS COMMANDS +# +# The following variables are treated as shell commands in the rule +# definitions for each file-type associated with the BSP build, as well as +# commands run at the beginning and end of the entire BSP build operation. +# Pre-process commands are executed before the relevant command (for example, +# a command defined in the "CC_PRE_PROCESS" variable executes before the C +# compiler for building .c files), while post-process commands are executed +# immediately afterwards. +# +# You can view each pre/post-process command in the "Build Rules: All & +# Clean", "Pattern Rules to Build Objects", and "Library Rules" sections of +# this Makefile. +#------------------------------------------------------------------------------- + + +#------------------------------------------------------------------------------- +# BSP SOURCE BUILD SETTINGS (FLAG GENERATION) +# +# Software build settings such as compiler optimization, debug level, warning +# flags, etc., may be defined in the following variables. The variables below +# are concatenated together in the 'Flags' section of this Makefile to form +# final variables of flags passed to the build tools. +# +# These settings are considered private to the BSP and apply to all library & +# driver files in it; they do NOT automatically propagate to, for example, the +# build settings for an application. +# # For additional detail and syntax requirements, please refer to GCC help +# (example: "nios2-elf-gcc --help --verbose"). +# +# Unless indicated otherwise, multiple entries in each variable should be +# space-separated. +#------------------------------------------------------------------------------- + +# Altera HAL alt_sys_init.c generated source file +GENERATED_C_FILES := $(ABS_BSP_ROOT)/alt_sys_init.c +GENERATED_C_LIB_SRCS += alt_sys_init.c + + +#------------------------------------------------------------------------------- +# BSP SOURCE FILE LISTING +# +# All source files that comprise the BSP are listed here, along with path +# information to each file expressed relative to the BSP root. The precise +# list and location of each file is derived from the driver, operating system, +# or software package source file declarations. +# +# Following specification of the source files for each component, driver, etc., +# each source file type (C, assembly, etc.) is concatenated together and used +# to construct a list of objects. Pattern rules to build each object are then +# used to build each file. +#------------------------------------------------------------------------------- + +# altera_avalon_jtag_uart_driver sources root +altera_avalon_jtag_uart_driver_SRCS_ROOT := drivers + +# altera_avalon_jtag_uart_driver sources +altera_avalon_jtag_uart_driver_C_LIB_SRCS := \ + $(altera_avalon_jtag_uart_driver_SRCS_ROOT)/src/altera_avalon_jtag_uart_init.c \ + $(altera_avalon_jtag_uart_driver_SRCS_ROOT)/src/altera_avalon_jtag_uart_read.c \ + $(altera_avalon_jtag_uart_driver_SRCS_ROOT)/src/altera_avalon_jtag_uart_write.c \ + $(altera_avalon_jtag_uart_driver_SRCS_ROOT)/src/altera_avalon_jtag_uart_ioctl.c \ + $(altera_avalon_jtag_uart_driver_SRCS_ROOT)/src/altera_avalon_jtag_uart_fd.c + +# altera_avalon_pio_driver sources root +altera_avalon_pio_driver_SRCS_ROOT := drivers + +# altera_avalon_pio_driver sources +# altera_nios2_qsys_hal_driver sources root +altera_nios2_qsys_hal_driver_SRCS_ROOT := HAL + +# altera_nios2_qsys_hal_driver sources +altera_nios2_qsys_hal_driver_C_LIB_SRCS := \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/altera_nios2_qsys_irq.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_usleep.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_busy_sleep.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_irq_vars.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_icache_flush.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_icache_flush_all.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_dcache_flush.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_dcache_flush_all.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_dcache_flush_no_writeback.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_instruction_exception_entry.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_irq_register.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_iic.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_remap_cached.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_remap_uncached.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_uncached_free.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_uncached_malloc.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_do_ctors.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_do_dtors.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_gmon.c + +altera_nios2_qsys_hal_driver_ASM_LIB_SRCS := \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_exception_entry.S \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_exception_trap.S \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_exception_muldiv.S \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_irq_entry.S \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_software_exception.S \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_mcount.S \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_log_macro.S \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/crt0.S + +# hal sources root +hal_SRCS_ROOT := HAL + +# hal sources +hal_C_LIB_SRCS := \ + $(hal_SRCS_ROOT)/src/alt_alarm_start.c \ + $(hal_SRCS_ROOT)/src/alt_close.c \ + $(hal_SRCS_ROOT)/src/alt_dev.c \ + $(hal_SRCS_ROOT)/src/alt_dev_llist_insert.c \ + $(hal_SRCS_ROOT)/src/alt_dma_rxchan_open.c \ + $(hal_SRCS_ROOT)/src/alt_dma_txchan_open.c \ + $(hal_SRCS_ROOT)/src/alt_environ.c \ + $(hal_SRCS_ROOT)/src/alt_env_lock.c \ + $(hal_SRCS_ROOT)/src/alt_errno.c \ + $(hal_SRCS_ROOT)/src/alt_execve.c \ + $(hal_SRCS_ROOT)/src/alt_exit.c \ + $(hal_SRCS_ROOT)/src/alt_fcntl.c \ + $(hal_SRCS_ROOT)/src/alt_fd_lock.c \ + $(hal_SRCS_ROOT)/src/alt_fd_unlock.c \ + $(hal_SRCS_ROOT)/src/alt_find_dev.c \ + $(hal_SRCS_ROOT)/src/alt_find_file.c \ + $(hal_SRCS_ROOT)/src/alt_flash_dev.c \ + $(hal_SRCS_ROOT)/src/alt_fork.c \ + $(hal_SRCS_ROOT)/src/alt_fs_reg.c \ + $(hal_SRCS_ROOT)/src/alt_fstat.c \ + $(hal_SRCS_ROOT)/src/alt_get_fd.c \ + $(hal_SRCS_ROOT)/src/alt_getchar.c \ + $(hal_SRCS_ROOT)/src/alt_getpid.c \ + $(hal_SRCS_ROOT)/src/alt_gettod.c \ + $(hal_SRCS_ROOT)/src/alt_iic_isr_register.c \ + $(hal_SRCS_ROOT)/src/alt_instruction_exception_register.c \ + $(hal_SRCS_ROOT)/src/alt_ioctl.c \ + $(hal_SRCS_ROOT)/src/alt_io_redirect.c \ + $(hal_SRCS_ROOT)/src/alt_irq_handler.c \ + $(hal_SRCS_ROOT)/src/alt_isatty.c \ + $(hal_SRCS_ROOT)/src/alt_kill.c \ + $(hal_SRCS_ROOT)/src/alt_link.c \ + $(hal_SRCS_ROOT)/src/alt_load.c \ + $(hal_SRCS_ROOT)/src/alt_log_printf.c \ + $(hal_SRCS_ROOT)/src/alt_lseek.c \ + $(hal_SRCS_ROOT)/src/alt_main.c \ + $(hal_SRCS_ROOT)/src/alt_malloc_lock.c \ + $(hal_SRCS_ROOT)/src/alt_open.c \ + $(hal_SRCS_ROOT)/src/alt_printf.c \ + $(hal_SRCS_ROOT)/src/alt_putchar.c \ + $(hal_SRCS_ROOT)/src/alt_putstr.c \ + $(hal_SRCS_ROOT)/src/alt_read.c \ + $(hal_SRCS_ROOT)/src/alt_release_fd.c \ + $(hal_SRCS_ROOT)/src/alt_rename.c \ + $(hal_SRCS_ROOT)/src/alt_sbrk.c \ + $(hal_SRCS_ROOT)/src/alt_settod.c \ + $(hal_SRCS_ROOT)/src/alt_stat.c \ + $(hal_SRCS_ROOT)/src/alt_tick.c \ + $(hal_SRCS_ROOT)/src/alt_times.c \ + $(hal_SRCS_ROOT)/src/alt_unlink.c \ + $(hal_SRCS_ROOT)/src/alt_wait.c \ + $(hal_SRCS_ROOT)/src/alt_write.c + + +# Assemble all component C source files +COMPONENT_C_LIB_SRCS += \ + $(altera_avalon_jtag_uart_driver_C_LIB_SRCS) \ + $(altera_nios2_qsys_hal_driver_C_LIB_SRCS) \ + $(hal_C_LIB_SRCS) + +# Assemble all component assembly source files +COMPONENT_ASM_LIB_SRCS += \ + $(altera_nios2_qsys_hal_driver_ASM_LIB_SRCS) + +# Assemble all component C++ source files +COMPONENT_CPP_LIB_SRCS += \ + +#END MANAGED + +#------------------------------------------------------------------------------ +# PUBLIC.MK +# +# The generated public.mk file contains BSP information that is shared with +# other external makefiles, such as a Nios II application makefile. System- +# dependent information such as hardware-specific compiler flags and +# simulation file generation are stored here. +# +# In addition, public.mk contains include paths that various software, +# such as a device driver, may need for the C compiler. These paths are +# written to public.mk with respect to the BSP root. In public.mk, each +# path is prefixed with a special variable, $(ALT_LIBRARY_ROOT_DIR). The +# purpose of this variable is to allow an external Makefile to append on +# path information to precisely locate paths expressed in public.mk +# Since this is the BSP Makefile, we set ALT_LIBRARY_ROOT_DIR to point right +# here ("."), at the BSP root. +# +# ALT_LIBRARY_ROOT_DIR must always be set before public.mk is included. +#------------------------------------------------------------------------------ +ALT_LIBRARY_ROOT_DIR := . +include public.mk + + +#------------------------------------------------------------------------------ +# FLAGS +# +# Include paths for BSP files are written into the public.mk file and must +# be added to the existing list of pre-processor flags. In addition, "hooks" +# for standard flags left intentionally empty (CFLAGS, CPPFLAGS, ASFLAGS, +# and CXXFLAGS) are provided for conveniently adding to the relevant flags +# on the command-line or via script that calls make. +#------------------------------------------------------------------------------ +# Assemble final list of compiler flags from generated content +BSP_CFLAGS += \ + $(BSP_CFLAGS_DEFINED_SYMBOLS) \ + $(BSP_CFLAGS_UNDEFINED_SYMBOLS) \ + $(BSP_CFLAGS_OPTIMIZATION) \ + $(BSP_CFLAGS_DEBUG) \ + $(BSP_CFLAGS_WARNINGS) \ + $(BSP_CFLAGS_USER_FLAGS) \ + $(ALT_CFLAGS) \ + $(CFLAGS) + +# Make ready the final list of include directories and other C pre-processor +# flags. Each include path is made ready by prefixing it with "-I". +BSP_CPPFLAGS += \ + $(addprefix -I, $(BSP_INC_DIRS)) \ + $(addprefix -I, $(ALT_INCLUDE_DIRS)) \ + $(ALT_CPPFLAGS) \ + $(CPPFLAGS) + +# Finish off assembler flags with any user-provided flags +BSP_ASFLAGS += $(ASFLAGS) + +# Finish off C++ flags with any user-provided flags +BSP_CXXFLAGS += $(CXXFLAGS) + +# And finally, the ordered list +C_SRCS += $(GENERATED_C_LIB_SRCS) \ + $(COMPONENT_C_LIB_SRCS) + +CXX_SRCS += $(GENERATED_CPP_LIB_SRCS) \ + $(COMPONENT_CPP_LIB_SRCS) + +ASM_SRCS += $(GENERATED_ASM_LIB_SRCS) \ + $(COMPONENT_ASM_LIB_SRCS) + + +#------------------------------------------------------------------------------ +# LIST OF GENERATED FILES +# +# A Nios II BSP relies on the generation of several source files used +# by both the BSP and any applications referencing the BSP. +#------------------------------------------------------------------------------ + + +GENERATED_H_FILES := $(ABS_BSP_ROOT)/system.h + +GENERATED_LINKER_SCRIPT := $(ABS_BSP_ROOT)/linker.x + +GENERATED_FILES += $(GENERATED_H_FILES) \ + $(GENERATED_LINKER_SCRIPT) + + +#------------------------------------------------------------------------------ +# SETUP TO BUILD OBJECTS +# +# List of object files which are to be built. This is constructed from the input +# list of C source files (C_SRCS), C++ source files (CXX_SRCS), and assembler +# source file (ASM_SRCS). The permitted file extensions are: +# +# .c .C - for C files +# .cxx .cc .cpp .CXX .CC .CPP - for C++ files +# .S .s - for assembly files +# +# Extended description: The list of objects is a sorted list (duplicates +# removed) of all possible objects, placed beneath the ./obj directory, +# including any path information stored in the "*_SRCS" variable. The +# "patsubst" commands are used to concatenate together multiple file suffix +# types for common files (i.e. c++ as .cxx, .cc, .cpp). +# +# File extensions are case-insensitive in build rules with the exception of +# assembly sources. Nios II assembly sources with the ".S" extension are first +# run through the C preprocessor. Sources with the ".s" extension are not. +#------------------------------------------------------------------------------ +OBJS = $(sort $(addprefix $(OBJ_DIR)/, \ + $(patsubst %.c, %.o, $(patsubst %.C, %.o, $(C_SRCS))) \ + $(patsubst %.cxx, %.o, $(patsubst %.CXX, %.o, \ + $(patsubst %.cc, %.o, $(patsubst %.CC, %.o, \ + $(patsubst %.cpp, %.o, $(patsubst %.CPP, %.o, \ + $(CXX_SRCS) )))))) \ + $(patsubst %.S, %.o, $(patsubst %.s, %.o, $(ASM_SRCS))) )) + +# List of dependancy files for each object file. +DEPS = $(OBJS:.o=.d) + + +# Rules to force your project to rebuild or relink +# .force_relink file will cause any application that depends on this project to relink +# .force_rebuild file will cause this project to rebuild object files +# .force_rebuild_all file will cause this project and any project that depends on this project to rebuild object files + +FORCE_RELINK_DEP := .force_relink +FORCE_REBUILD_DEP := .force_rebuild +FORCE_REBUILD_ALL_DEP := .force_rebuild_all +FORCE_REBUILD_DEP_LIST := $(FORCE_RELINK_DEP) $(FORCE_REBUILD_DEP) $(FORCE_REBUILD_ALL_DEP) + +$(FORCE_REBUILD_DEP_LIST): + +$(OBJS): $(wildcard $(FORCE_REBUILD_DEP)) $(wildcard $(FORCE_REBUILD_ALL_DEP)) + + +#------------------------------------------------------------------------------ +# BUILD RULES: ALL & CLEAN +#------------------------------------------------------------------------------ +.DELETE_ON_ERROR: + +.PHONY: all +all: build_pre_process +all: Makefile $(GENERATED_FILES) $(BSP_LIB) $(NEWLIB_DIR) +all: build_post_process + + +# clean: remove .o/.a/.d +.PHONY: clean +clean: + @$(RM) -r $(BSP_LIB) $(OBJ_DIR) $(FORCE_REBUILD_DEP_LIST) +ifneq ($(wildcard $(NEWLIB_DIR)),) + @$(RM) -r $(NEWLIB_DIR) +endif + @$(ECHO) [BSP clean complete] + + +#------------------------------------------------------------------------------ +# BUILD PRE/POST PROCESS +#------------------------------------------------------------------------------ +build_pre_process : + $(BUILD_PRE_PROCESS) + +build_post_process : + $(BUILD_POST_PROCESS) + +.PHONY: build_pre_process build_post_process + + + +#------------------------------------------------------------------------------ +# MAKEFILE UP TO DATE? +# +# Is this very Makefile up to date? Someone may have changed the BSP settings +# file or the associated target hardware. +#------------------------------------------------------------------------------ +# Skip this check when clean is the only target +ifneq ($(MAKECMDGOALS),clean) + +ifneq ($(wildcard $(SETTINGS_FILE)),$(SETTINGS_FILE)) +$(warning Warning: BSP Settings File $(SETTINGS_FILE) could not be found.) +endif + +Makefile: $(wildcard $(SETTINGS_FILE)) + @$(ECHO) Makefile not up to date. + @$(ECHO) $(SETTINGS_FILE) has been modified since the BSP Makefile was generated. + @$(ECHO) + @$(ECHO) Generate the BSP to update the Makefile, and then build again. + @$(ECHO) + @$(ECHO) To generate from Eclipse: + @$(ECHO) " 1. Right-click the BSP project." + @$(ECHO) " 2. In the Nios II Menu, click Generate BSP." + @$(ECHO) + @$(ECHO) To generate from the command line: + @$(ECHO) " nios2-bsp-generate-files --settings= --bsp-dir=" + @$(ECHO) + @exit 1 + +ifneq ($(wildcard $(SOPC_FILE)),$(SOPC_FILE)) +$(warning Warning: SOPC File $(SOPC_FILE) could not be found.) +endif + +public.mk: $(wildcard $(SOPC_FILE)) + @$(ECHO) Makefile not up to date. + @$(ECHO) $(SOPC_FILE) has been modified since the BSP was generated. + @$(ECHO) + @$(ECHO) Generate the BSP to update the Makefile, and then build again. + @$(ECHO) + @$(ECHO) To generate from Eclipse: + @$(ECHO) " 1. Right-click the BSP project." + @$(ECHO) " 2. In the Nios II Menu, click Generate BSP." + @$(ECHO) + @$(ECHO) To generate from the command line: + @$(ECHO) " nios2-bsp-generate-files --settings= --bsp-dir=" + @$(ECHO) + @exit 1 + +endif # $(MAKECMDGOALS) != clean + +#------------------------------------------------------------------------------ +# PATTERN RULES TO BUILD OBJECTS +#------------------------------------------------------------------------------ +$(OBJ_DIR)/%.o: %.c + @$(ECHO) Compiling $( + +/* + * Device headers + */ + +#include "altera_nios2_qsys_irq.h" +#include "altera_avalon_jtag_uart.h" + +/* + * Allocate the device storage + */ + +ALTERA_NIOS2_QSYS_IRQ_INSTANCE ( NIOS2_PROCESSOR, nios2_processor); +ALTERA_AVALON_JTAG_UART_INSTANCE ( JTAG_UART, jtag_uart); + +/* + * Initialize the interrupt controller devices + * and then enable interrupts in the CPU. + * Called before alt_sys_init(). + * The "base" parameter is ignored and only + * present for backwards-compatibility. + */ + +void alt_irq_init ( const void* base ) +{ + ALTERA_NIOS2_QSYS_IRQ_INIT ( NIOS2_PROCESSOR, nios2_processor); + alt_irq_cpu_enable_interrupts(); +} + +/* + * Initialize the non-interrupt controller devices. + * Called after alt_irq_init(). + */ + +void alt_sys_init( void ) +{ + ALTERA_AVALON_JTAG_UART_INIT ( JTAG_UART, jtag_uart); +} diff --git a/software/qsys_tutorial_switchs18_bsp/create-this-bsp b/software/qsys_tutorial_switchs18_bsp/create-this-bsp new file mode 100644 index 0000000..49e6175 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/create-this-bsp @@ -0,0 +1,49 @@ +#!/bin/bash +# +# This script creates the ucosii_net_zipfs Board Support Package (BSP). + +BSP_TYPE=hal +BSP_DIR=. +SOPC_DIR=../../ +SOPC_FILE=C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.sopcinfo +NIOS2_BSP_ARGS="--set hal.max_file_descriptors 4 --set hal.enable_small_c_library true --set hal.sys_clk_timer none --set hal.timestamp_timer none --set hal.enable_exit false --set hal.enable_c_plus_plus false --set hal.enable_lightweight_device_driver_api true --set hal.enable_clean_exit false --set hal.enable_sim_optimize false --set hal.enable_reduced_device_drivers true --set hal.make.bsp_cflags_optimization '-Os'" +CPU_NAME= + + +# Don't run make if create-this-app script is called with --no-make arg +SKIP_MAKE= +while [ $# -gt 0 ] +do + case "$1" in + --no-make) + SKIP_MAKE=1 + ;; + *) + NIOS2_BSP_ARGS="$NIOS2_BSP_ARGS $1" + ;; + esac + shift +done + + +# Run nios2-bsp utility to create a hal BSP in this directory +# for the system with a .sopc file in $SOPC_FILE. +# Deprecating $SOPC_DIR in 10.1. Multiple .sopcinfo files in a directory may exist. + +if [ -z "$SOPC_FILE" ]; then + echo "WARNING: Use of a directory for locating a .sopcinfo file is deprecated in 10.1. Multiple .sopcinfo files may exist. You must specify the full .sopcinfo path." + cmd="nios2-bsp $BSP_TYPE $BSP_DIR $SOPC_DIR $NIOS2_BSP_ARGS $CPU_NAME" +else + cmd="nios2-bsp $BSP_TYPE $BSP_DIR $SOPC_FILE $NIOS2_BSP_ARGS $CPU_NAME" +fi + + +echo "create-this-bsp: Running \"$cmd\"" +$cmd || { + echo "$cmd failed" + exit 1 +} +if [ -z "$SKIP_MAKE" ]; then + echo "create-this-bsp: Running make" + make +fi diff --git a/software/qsys_tutorial_switchs18_bsp/drivers/inc/altera_avalon_jtag_uart.h b/software/qsys_tutorial_switchs18_bsp/drivers/inc/altera_avalon_jtag_uart.h new file mode 100644 index 0000000..95d4a99 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/drivers/inc/altera_avalon_jtag_uart.h @@ -0,0 +1,198 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#ifndef __ALT_AVALON_JTAG_UART_H__ +#define __ALT_AVALON_JTAG_UART_H__ + +#include + +#include "sys/alt_alarm.h" +#include "sys/alt_warning.h" + +#include "os/alt_sem.h" +#include "os/alt_flag.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * If the user wants all drivers to be small rather than fast then make sure + * this one is marked as needing to be small. + */ +#if defined ALT_USE_SMALL_DRIVERS && !defined ALTERA_AVALON_JTAG_UART_SMALL +#define ALTERA_AVALON_JTAG_UART_SMALL +#endif + +/* + * If the user wants to ignore FIFO full error after timeout + */ +#if defined ALT_JTAG_UART_IGNORE_FIFO_FULL_ERROR && !defined ALTERA_AVALON_JTAG_UART_IGNORE_FIFO_FULL_ERROR +#define ALTERA_AVALON_JTAG_UART_IGNORE_FIFO_FULL_ERROR +#endif + +/* + * Constants that can be overriden. + */ +#ifndef ALTERA_AVALON_JTAG_UART_DEFAULT_TIMEOUT +#define ALTERA_AVALON_JTAG_UART_DEFAULT_TIMEOUT 10 +#endif + +#ifndef ALTERA_AVALON_JTAG_UART_BUF_LEN +#define ALTERA_AVALON_JTAG_UART_BUF_LEN 2048 +#endif + +/* + * ALT_JTAG_UART_READ_RDY and ALT_JTAG_UART_WRITE_RDY are the bitmasks + * that define uC/OS-II event flags that are releated to this device. + * + * ALT_JTAG_UART_READ_RDY indicates that there is read data in the buffer + * ready to be processed. ALT_JTAG_UART_WRITE_RDY indicates that the transmitter is + * ready for more data. + */ +#define ALT_JTAG_UART_READ_RDY 0x1 +#define ALT_JTAG_UART_WRITE_RDY 0x2 +#define ALT_JTAG_UART_TIMEOUT 0x4 + +/* + * State structure definition. Each instance of the driver uses one + * of these structures to hold its associated state. + */ + +typedef struct altera_avalon_jtag_uart_state_s +{ + unsigned int base; + +#ifndef ALTERA_AVALON_JTAG_UART_SMALL + + unsigned int timeout; /* Timeout until host is assumed inactive */ + alt_alarm alarm; + unsigned int irq_enable; + unsigned int host_inactive; + + ALT_SEM (read_lock) + ALT_SEM (write_lock) + ALT_FLAG_GRP (events) + + /* The variables below are volatile because they are modified by the + * interrupt routine. Making them volatile and reading them atomically + * means that we don't need any large critical sections. + */ + volatile unsigned int rx_in; + unsigned int rx_out; + unsigned int tx_in; + volatile unsigned int tx_out; + char rx_buf[ALTERA_AVALON_JTAG_UART_BUF_LEN]; + char tx_buf[ALTERA_AVALON_JTAG_UART_BUF_LEN]; + +#endif /* !ALTERA_AVALON_JTAG_UART_SMALL */ + +} altera_avalon_jtag_uart_state; + +/* + * Macros used by alt_sys_init when the ALT file descriptor facility isn't used. + */ + +#ifdef ALTERA_AVALON_JTAG_UART_SMALL + +#define ALTERA_AVALON_JTAG_UART_STATE_INSTANCE(name, state) \ + altera_avalon_jtag_uart_state state = \ + { \ + name##_BASE, \ + } + +#define ALTERA_AVALON_JTAG_UART_STATE_INIT(name, state) + +#else /* !ALTERA_AVALON_JTAG_UART_SMALL */ + +#define ALTERA_AVALON_JTAG_UART_STATE_INSTANCE(name, state) \ + altera_avalon_jtag_uart_state state = \ + { \ + name##_BASE, \ + ALTERA_AVALON_JTAG_UART_DEFAULT_TIMEOUT, \ + } + +/* + * Externally referenced routines + */ +extern void altera_avalon_jtag_uart_init(altera_avalon_jtag_uart_state* sp, + int irq_controller_id, int irq); + +#define ALTERA_AVALON_JTAG_UART_STATE_INIT(name, state) \ + { \ + if (name##_IRQ == ALT_IRQ_NOT_CONNECTED) \ + { \ + ALT_LINK_ERROR ("Error: Interrupt not connected for " #name ". " \ + "You have selected the interrupt driven version of " \ + "the ALTERA Avalon JTAG UART driver, but the " \ + "interrupt is not connected for this device. You can " \ + "select a polled mode driver by checking the 'small " \ + "driver' option in the HAL configuration window, or " \ + "by using the -DALTERA_AVALON_JTAG_UART_SMALL " \ + "preprocessor flag."); \ + } \ + else \ + altera_avalon_jtag_uart_init(&state, \ + name##_IRQ_INTERRUPT_CONTROLLER_ID, \ + name##_IRQ); \ + } + +#endif /* ALTERA_AVALON_JTAG_UART_SMALL */ + +/* + * Include in case non-direct version of driver required. + */ +#include "altera_avalon_jtag_uart_fd.h" + +/* + * Map alt_sys_init macros to direct or non-direct versions. + */ +#ifdef ALT_USE_DIRECT_DRIVERS + +#define ALTERA_AVALON_JTAG_UART_INSTANCE(name, state) \ + ALTERA_AVALON_JTAG_UART_STATE_INSTANCE(name, state) +#define ALTERA_AVALON_JTAG_UART_INIT(name, state) \ + ALTERA_AVALON_JTAG_UART_STATE_INIT(name, state) + +#else /* !ALT_USE_DIRECT_DRIVERS */ + +#define ALTERA_AVALON_JTAG_UART_INSTANCE(name, dev) \ + ALTERA_AVALON_JTAG_UART_DEV_INSTANCE(name, dev) +#define ALTERA_AVALON_JTAG_UART_INIT(name, dev) \ + ALTERA_AVALON_JTAG_UART_DEV_INIT(name, dev) + +#endif /* ALT_USE_DIRECT_DRIVERS */ + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __ALT_AVALON_JTAG_UART_H__ */ diff --git a/software/qsys_tutorial_switchs18_bsp/drivers/inc/altera_avalon_jtag_uart_fd.h b/software/qsys_tutorial_switchs18_bsp/drivers/inc/altera_avalon_jtag_uart_fd.h new file mode 100644 index 0000000..b3c3200 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/drivers/inc/altera_avalon_jtag_uart_fd.h @@ -0,0 +1,125 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2007 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#ifndef __ALT_AVALON_JTAG_UART_FD_H__ +#define __ALT_AVALON_JTAG_UART_FD_H__ + +#include "sys/alt_dev.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * Externally referenced routines + */ +extern int altera_avalon_jtag_uart_read_fd (alt_fd* fd, char* ptr, int len); +extern int altera_avalon_jtag_uart_write_fd (alt_fd* fd, const char* ptr, + int len); + +/* + * Device structure definition. This is needed by alt_sys_init in order to + * reserve memory for the device instance. + */ + +typedef struct altera_avalon_jtag_uart_dev_s +{ + alt_dev dev; + altera_avalon_jtag_uart_state state; +} altera_avalon_jtag_uart_dev; + +/* + * Macros used by alt_sys_init when the ALT file descriptor facility is used. + */ + +#ifdef ALTERA_AVALON_JTAG_UART_SMALL + +#define ALTERA_AVALON_JTAG_UART_DEV_INSTANCE(name, d) \ + static altera_avalon_jtag_uart_dev d = \ + { \ + { \ + ALT_LLIST_ENTRY, \ + name##_NAME, \ + NULL, /* open */ \ + NULL, /* close */ \ + altera_avalon_jtag_uart_read_fd, \ + altera_avalon_jtag_uart_write_fd, \ + NULL, /* lseek */ \ + NULL, /* fstat */ \ + NULL, /* ioctl */ \ + }, \ + { \ + name##_BASE, \ + } \ + } + +#define ALTERA_AVALON_JTAG_UART_DEV_INIT(name, d) alt_dev_reg (&d.dev) + +#else /* !ALTERA_AVALON_JTAG_UART_SMALL */ + +extern int altera_avalon_jtag_uart_close_fd(alt_fd* fd); +extern int altera_avalon_jtag_uart_ioctl_fd (alt_fd* fd, int req, void* arg); + +#define ALTERA_AVALON_JTAG_UART_DEV_INSTANCE(name, d) \ + static altera_avalon_jtag_uart_dev d = \ + { \ + { \ + ALT_LLIST_ENTRY, \ + name##_NAME, \ + NULL, /* open */ \ + altera_avalon_jtag_uart_close_fd, \ + altera_avalon_jtag_uart_read_fd, \ + altera_avalon_jtag_uart_write_fd, \ + NULL, /* lseek */ \ + NULL, /* fstat */ \ + altera_avalon_jtag_uart_ioctl_fd, \ + }, \ + { \ + name##_BASE, \ + ALTERA_AVALON_JTAG_UART_DEFAULT_TIMEOUT, \ + } \ + } + +#define ALTERA_AVALON_JTAG_UART_DEV_INIT(name, d) \ + { \ + ALTERA_AVALON_JTAG_UART_STATE_INIT(name, d.state); \ + \ + /* make the device available to the system */ \ + alt_dev_reg(&d.dev); \ + } + +#endif /* ALTERA_AVALON_JTAG_UART_SMALL */ + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __ALT_AVALON_JTAG_UART_FD_H__ */ diff --git a/software/qsys_tutorial_switchs18_bsp/drivers/inc/altera_avalon_jtag_uart_regs.h b/software/qsys_tutorial_switchs18_bsp/drivers/inc/altera_avalon_jtag_uart_regs.h new file mode 100644 index 0000000..7f97160 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/drivers/inc/altera_avalon_jtag_uart_regs.h @@ -0,0 +1,73 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#ifndef __ALTERA_AVALON_JTAG_UART_REGS_H__ +#define __ALTERA_AVALON_JTAG_UART_REGS_H__ + +#include + +#define ALTERA_AVALON_JTAG_UART_DATA_REG 0 +#define IOADDR_ALTERA_AVALON_JTAG_UART_DATA(base) \ + __IO_CALC_ADDRESS_NATIVE(base, ALTERA_AVALON_JTAG_UART_DATA_REG) +#define IORD_ALTERA_AVALON_JTAG_UART_DATA(base) \ + IORD(base, ALTERA_AVALON_JTAG_UART_DATA_REG) +#define IOWR_ALTERA_AVALON_JTAG_UART_DATA(base, data) \ + IOWR(base, ALTERA_AVALON_JTAG_UART_DATA_REG, data) + +#define ALTERA_AVALON_JTAG_UART_DATA_DATA_MSK (0x000000FF) +#define ALTERA_AVALON_JTAG_UART_DATA_DATA_OFST (0) +#define ALTERA_AVALON_JTAG_UART_DATA_RVALID_MSK (0x00008000) +#define ALTERA_AVALON_JTAG_UART_DATA_RVALID_OFST (15) +#define ALTERA_AVALON_JTAG_UART_DATA_RAVAIL_MSK (0xFFFF0000) +#define ALTERA_AVALON_JTAG_UART_DATA_RAVAIL_OFST (16) + + +#define ALTERA_AVALON_JTAG_UART_CONTROL_REG 1 +#define IOADDR_ALTERA_AVALON_JTAG_UART_CONTROL(base) \ + __IO_CALC_ADDRESS_NATIVE(base, ALTERA_AVALON_JTAG_UART_CONTROL_REG) +#define IORD_ALTERA_AVALON_JTAG_UART_CONTROL(base) \ + IORD(base, ALTERA_AVALON_JTAG_UART_CONTROL_REG) +#define IOWR_ALTERA_AVALON_JTAG_UART_CONTROL(base, data) \ + IOWR(base, ALTERA_AVALON_JTAG_UART_CONTROL_REG, data) + +#define ALTERA_AVALON_JTAG_UART_CONTROL_RE_MSK (0x00000001) +#define ALTERA_AVALON_JTAG_UART_CONTROL_RE_OFST (0) +#define ALTERA_AVALON_JTAG_UART_CONTROL_WE_MSK (0x00000002) +#define ALTERA_AVALON_JTAG_UART_CONTROL_WE_OFST (1) +#define ALTERA_AVALON_JTAG_UART_CONTROL_RI_MSK (0x00000100) +#define ALTERA_AVALON_JTAG_UART_CONTROL_RI_OFST (8) +#define ALTERA_AVALON_JTAG_UART_CONTROL_WI_MSK (0x00000200) +#define ALTERA_AVALON_JTAG_UART_CONTROL_WI_OFST (9) +#define ALTERA_AVALON_JTAG_UART_CONTROL_AC_MSK (0x00000400) +#define ALTERA_AVALON_JTAG_UART_CONTROL_AC_OFST (10) +#define ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_MSK (0xFFFF0000) +#define ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_OFST (16) + +#endif /* __ALTERA_AVALON_JTAG_UART_REGS_H__ */ diff --git a/software/qsys_tutorial_switchs18_bsp/drivers/inc/altera_avalon_pio_regs.h b/software/qsys_tutorial_switchs18_bsp/drivers/inc/altera_avalon_pio_regs.h new file mode 100644 index 0000000..052439f --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/drivers/inc/altera_avalon_pio_regs.h @@ -0,0 +1,67 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#ifndef __ALTERA_AVALON_PIO_REGS_H__ +#define __ALTERA_AVALON_PIO_REGS_H__ + +#include + +#define IOADDR_ALTERA_AVALON_PIO_DATA(base) __IO_CALC_ADDRESS_NATIVE(base, 0) +#define IORD_ALTERA_AVALON_PIO_DATA(base) IORD(base, 0) +#define IOWR_ALTERA_AVALON_PIO_DATA(base, data) IOWR(base, 0, data) + +#define IOADDR_ALTERA_AVALON_PIO_DIRECTION(base) __IO_CALC_ADDRESS_NATIVE(base, 1) +#define IORD_ALTERA_AVALON_PIO_DIRECTION(base) IORD(base, 1) +#define IOWR_ALTERA_AVALON_PIO_DIRECTION(base, data) IOWR(base, 1, data) + +#define IOADDR_ALTERA_AVALON_PIO_IRQ_MASK(base) __IO_CALC_ADDRESS_NATIVE(base, 2) +#define IORD_ALTERA_AVALON_PIO_IRQ_MASK(base) IORD(base, 2) +#define IOWR_ALTERA_AVALON_PIO_IRQ_MASK(base, data) IOWR(base, 2, data) + +#define IOADDR_ALTERA_AVALON_PIO_EDGE_CAP(base) __IO_CALC_ADDRESS_NATIVE(base, 3) +#define IORD_ALTERA_AVALON_PIO_EDGE_CAP(base) IORD(base, 3) +#define IOWR_ALTERA_AVALON_PIO_EDGE_CAP(base, data) IOWR(base, 3, data) + + +#define IOADDR_ALTERA_AVALON_PIO_SET_BIT(base) __IO_CALC_ADDRESS_NATIVE(base, 4) +#define IORD_ALTERA_AVALON_PIO_SET_BITS(base) IORD(base, 4) +#define IOWR_ALTERA_AVALON_PIO_SET_BITS(base, data) IOWR(base, 4, data) + +#define IOADDR_ALTERA_AVALON_PIO_CLEAR_BITS(base) __IO_CALC_ADDRESS_NATIVE(base, 5) +#define IORD_ALTERA_AVALON_PIO_CLEAR_BITS(base) IORD(base, 5) +#define IOWR_ALTERA_AVALON_PIO_CLEAR_BITS(base, data) IOWR(base, 5, data) + + + +/* Defintions for direction-register operation with bi-directional PIOs */ +#define ALTERA_AVALON_PIO_DIRECTION_INPUT 0 +#define ALTERA_AVALON_PIO_DIRECTION_OUTPUT 1 + +#endif /* __ALTERA_AVALON_PIO_REGS_H__ */ diff --git a/software/qsys_tutorial_switchs18_bsp/drivers/src/altera_avalon_jtag_uart_fd.c b/software/qsys_tutorial_switchs18_bsp/drivers/src/altera_avalon_jtag_uart_fd.c new file mode 100644 index 0000000..53dfc3b --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/drivers/src/altera_avalon_jtag_uart_fd.c @@ -0,0 +1,86 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2007 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "alt_types.h" +#include "sys/alt_dev.h" +#include "altera_avalon_jtag_uart.h" + +extern int altera_avalon_jtag_uart_read(altera_avalon_jtag_uart_state* sp, + char* buffer, int space, int flags); +extern int altera_avalon_jtag_uart_write(altera_avalon_jtag_uart_state* sp, + const char* ptr, int count, int flags); +extern int altera_avalon_jtag_uart_ioctl(altera_avalon_jtag_uart_state* sp, + int req, void* arg); +extern int altera_avalon_jtag_uart_close(altera_avalon_jtag_uart_state* sp, + int flags); + +/* ----------------------------------------------------------------------- */ +/* --------------------- WRAPPERS FOR ALT FD SUPPORT --------------------- */ +/* + * + */ + +int +altera_avalon_jtag_uart_read_fd(alt_fd* fd, char* buffer, int space) +{ + altera_avalon_jtag_uart_dev* dev = (altera_avalon_jtag_uart_dev*) fd->dev; + + return altera_avalon_jtag_uart_read(&dev->state, buffer, space, + fd->fd_flags); +} + +int +altera_avalon_jtag_uart_write_fd(alt_fd* fd, const char* buffer, int space) +{ + altera_avalon_jtag_uart_dev* dev = (altera_avalon_jtag_uart_dev*) fd->dev; + + return altera_avalon_jtag_uart_write(&dev->state, buffer, space, + fd->fd_flags); +} + +#ifndef ALTERA_AVALON_JTAG_UART_SMALL + +int +altera_avalon_jtag_uart_close_fd(alt_fd* fd) +{ + altera_avalon_jtag_uart_dev* dev = (altera_avalon_jtag_uart_dev*) fd->dev; + + return altera_avalon_jtag_uart_close(&dev->state, fd->fd_flags); +} + +int +altera_avalon_jtag_uart_ioctl_fd(alt_fd* fd, int req, void* arg) +{ + altera_avalon_jtag_uart_dev* dev = (altera_avalon_jtag_uart_dev*) fd->dev; + + return altera_avalon_jtag_uart_ioctl(&dev->state, req, arg); +} + +#endif /* ALTERA_AVALON_JTAG_UART_SMALL */ diff --git a/software/qsys_tutorial_switchs18_bsp/drivers/src/altera_avalon_jtag_uart_init.c b/software/qsys_tutorial_switchs18_bsp/drivers/src/altera_avalon_jtag_uart_init.c new file mode 100644 index 0000000..7317bec --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/drivers/src/altera_avalon_jtag_uart_init.c @@ -0,0 +1,256 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2007 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include +#include +#include +#include + +#include + +#include "sys/alt_irq.h" +#include "sys/alt_alarm.h" +#include "sys/ioctl.h" +#include "alt_types.h" + +#include "altera_avalon_jtag_uart_regs.h" +#include "altera_avalon_jtag_uart.h" + +#include "sys/alt_log_printf.h" + +#ifndef ALTERA_AVALON_JTAG_UART_SMALL + +/* ----------------------------------------------------------- */ +/* ------------------------- FAST DRIVER --------------------- */ +/* ----------------------------------------------------------- */ +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT +static void altera_avalon_jtag_uart_irq(void* context); +#else +static void altera_avalon_jtag_uart_irq(void* context, alt_u32 id); +#endif +static alt_u32 altera_avalon_jtag_uart_timeout(void* context); + +/* + * Driver initialization code. Register interrupts and start a timer + * which we can use to check whether the host is there. + * Return 1 on sucessful IRQ register and 0 on failure. + */ + +void altera_avalon_jtag_uart_init(altera_avalon_jtag_uart_state* sp, + int irq_controller_id, int irq) +{ + ALT_FLAG_CREATE(&sp->events, 0); + ALT_SEM_CREATE(&sp->read_lock, 1); + ALT_SEM_CREATE(&sp->write_lock, 1); + + /* enable read interrupts at the device */ + sp->irq_enable = ALTERA_AVALON_JTAG_UART_CONTROL_RE_MSK; + + IOWR_ALTERA_AVALON_JTAG_UART_CONTROL(sp->base, sp->irq_enable); + + /* register the interrupt handler */ +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT + alt_ic_isr_register(irq_controller_id, irq, altera_avalon_jtag_uart_irq, + sp, NULL); +#else + alt_irq_register(irq, sp, altera_avalon_jtag_uart_irq); +#endif + + /* Register an alarm to go off every second to check for presence of host */ + sp->host_inactive = 0; + + if (alt_alarm_start(&sp->alarm, alt_ticks_per_second(), + &altera_avalon_jtag_uart_timeout, sp) < 0) + { + /* If we can't set the alarm then record "don't know if host present" + * and behave as though the host is present. + */ + sp->timeout = INT_MAX; + } + + /* ALT_LOG - see altera_hal/HAL/inc/sys/alt_log_printf.h */ + ALT_LOG_JTAG_UART_ALARM_REGISTER(sp, sp->base); +} + +/* + * Interrupt routine + */ +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT +static void altera_avalon_jtag_uart_irq(void* context) +#else +static void altera_avalon_jtag_uart_irq(void* context, alt_u32 id) +#endif +{ + altera_avalon_jtag_uart_state* sp = (altera_avalon_jtag_uart_state*) context; + unsigned int base = sp->base; + + /* ALT_LOG - see altera_hal/HAL/inc/sys/alt_log_printf.h */ + ALT_LOG_JTAG_UART_ISR_FUNCTION(base, sp); + + for ( ; ; ) + { + unsigned int control = IORD_ALTERA_AVALON_JTAG_UART_CONTROL(base); + + /* Return once nothing more to do */ + if ((control & (ALTERA_AVALON_JTAG_UART_CONTROL_RI_MSK | ALTERA_AVALON_JTAG_UART_CONTROL_WI_MSK)) == 0) + break; + + if (control & ALTERA_AVALON_JTAG_UART_CONTROL_RI_MSK) + { + /* process a read irq. Start by assuming that there is data in the + * receive FIFO (otherwise why would we have been interrupted?) + */ + unsigned int data = 1 << ALTERA_AVALON_JTAG_UART_DATA_RAVAIL_OFST; + + for ( ; ; ) + { + /* Check whether there is space in the buffer. If not then we must not + * read any characters from the buffer as they will be lost. + */ + unsigned int next = (sp->rx_in + 1) % ALTERA_AVALON_JTAG_UART_BUF_LEN; + if (next == sp->rx_out) + break; + + /* Try to remove a character from the FIFO and find out whether there + * are any more characters remaining. + */ + data = IORD_ALTERA_AVALON_JTAG_UART_DATA(base); + + if ((data & ALTERA_AVALON_JTAG_UART_DATA_RVALID_MSK) == 0) + break; + + sp->rx_buf[sp->rx_in] = (data & ALTERA_AVALON_JTAG_UART_DATA_DATA_MSK) >> ALTERA_AVALON_JTAG_UART_DATA_DATA_OFST; + sp->rx_in = (sp->rx_in + 1) % ALTERA_AVALON_JTAG_UART_BUF_LEN; + + /* Post an event to notify jtag_uart_read that a character has been read */ + ALT_FLAG_POST (sp->events, ALT_JTAG_UART_READ_RDY, OS_FLAG_SET); + } + + if (data & ALTERA_AVALON_JTAG_UART_DATA_RAVAIL_MSK) + { + /* If there is still data available here then the buffer is full + * so turn off receive interrupts until some space becomes available. + */ + sp->irq_enable &= ~ALTERA_AVALON_JTAG_UART_CONTROL_RE_MSK; + IOWR_ALTERA_AVALON_JTAG_UART_CONTROL(base, sp->irq_enable); + + /* Dummy read to ensure IRQ is cleared prior to ISR completion */ + IORD_ALTERA_AVALON_JTAG_UART_CONTROL(base); + } + } + + if (control & ALTERA_AVALON_JTAG_UART_CONTROL_WI_MSK) + { + /* process a write irq */ + unsigned int space = (control & ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_MSK) >> ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_OFST; + + while (space > 0 && sp->tx_out != sp->tx_in) + { + IOWR_ALTERA_AVALON_JTAG_UART_DATA(base, sp->tx_buf[sp->tx_out]); + + sp->tx_out = (sp->tx_out + 1) % ALTERA_AVALON_JTAG_UART_BUF_LEN; + + /* Post an event to notify jtag_uart_write that a character has been written */ + ALT_FLAG_POST (sp->events, ALT_JTAG_UART_WRITE_RDY, OS_FLAG_SET); + + space--; + } + + if (space > 0) + { + /* If we don't have any more data available then turn off the TX interrupt */ + sp->irq_enable &= ~ALTERA_AVALON_JTAG_UART_CONTROL_WE_MSK; + IOWR_ALTERA_AVALON_JTAG_UART_CONTROL(sp->base, sp->irq_enable); + + /* Dummy read to ensure IRQ is cleared prior to ISR completion */ + IORD_ALTERA_AVALON_JTAG_UART_CONTROL(base); + } + } + } +} + +/* + * Timeout routine is called every second + */ + +static alt_u32 +altera_avalon_jtag_uart_timeout(void* context) +{ + altera_avalon_jtag_uart_state* sp = (altera_avalon_jtag_uart_state *) context; + + unsigned int control = IORD_ALTERA_AVALON_JTAG_UART_CONTROL(sp->base); + + if (control & ALTERA_AVALON_JTAG_UART_CONTROL_AC_MSK) + { + IOWR_ALTERA_AVALON_JTAG_UART_CONTROL(sp->base, sp->irq_enable | ALTERA_AVALON_JTAG_UART_CONTROL_AC_MSK); + sp->host_inactive = 0; + } + else if (sp->host_inactive < INT_MAX - 2) { + sp->host_inactive++; + + if (sp->host_inactive >= sp->timeout) { + /* Post an event to indicate host is inactive (for jtag_uart_read */ + ALT_FLAG_POST (sp->events, ALT_JTAG_UART_TIMEOUT, OS_FLAG_SET); + } + } + + return alt_ticks_per_second(); +} + +/* + * The close() routine is implemented to drain the JTAG UART transmit buffer + * when not in "small" mode. This routine will wait for transimt data to be + * emptied unless a timeout from host-activity occurs. If the driver flags + * have been set to non-blocking mode, this routine will exit immediately if + * any data remains. This routine should be called indirectly (i.e. though + * the C library close() routine) so that the file descriptor associated + * with the relevant stream (i.e. stdout) can be closed as well. This routine + * does not manage file descriptors. + * + * The close routine is not implemented for the small driver; instead it will + * map to null. This is because the small driver simply waits while characters + * are transmitted; there is no interrupt-serviced buffer to empty + */ +int altera_avalon_jtag_uart_close(altera_avalon_jtag_uart_state* sp, int flags) +{ + /* + * Wait for all transmit data to be emptied by the JTAG UART ISR, or + * for a host-inactivity timeout, in which case transmit data will be lost + */ + while ( (sp->tx_out != sp->tx_in) && (sp->host_inactive < sp->timeout) ) { + if (flags & O_NONBLOCK) { + return -EWOULDBLOCK; + } + } + + return 0; +} + +#endif /* !ALTERA_AVALON_JTAG_UART_SMALL */ diff --git a/software/qsys_tutorial_switchs18_bsp/drivers/src/altera_avalon_jtag_uart_ioctl.c b/software/qsys_tutorial_switchs18_bsp/drivers/src/altera_avalon_jtag_uart_ioctl.c new file mode 100644 index 0000000..cf71e6f --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/drivers/src/altera_avalon_jtag_uart_ioctl.c @@ -0,0 +1,86 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include +#include +#include +#include + +#include + +#include "sys/ioctl.h" +#include "alt_types.h" + +#include "altera_avalon_jtag_uart_regs.h" +#include "altera_avalon_jtag_uart.h" + +#include "sys/alt_log_printf.h" + +#ifndef ALTERA_AVALON_JTAG_UART_SMALL + +/* ----------------------------------------------------------- */ +/* ------------------------- FAST DRIVER --------------------- */ +/* ----------------------------------------------------------- */ + +int +altera_avalon_jtag_uart_ioctl(altera_avalon_jtag_uart_state* sp, int req, + void* arg) +{ + int rc = -ENOTTY; + + switch (req) + { + case TIOCSTIMEOUT: + /* Set the time to wait until assuming host is not connected */ + if (sp->timeout != INT_MAX) + { + int timeout = *((int *)arg); + sp->timeout = (timeout >= 2 && timeout < INT_MAX) ? timeout : INT_MAX - 1; + rc = 0; + } + break; + + case TIOCGCONNECTED: + /* Find out whether host is connected */ + if (sp->timeout != INT_MAX) + { + *((int *)arg) = (sp->host_inactive < sp->timeout) ? 1 : 0; + rc = 0; + } + break; + + default: + break; + } + + return rc; +} + +#endif /* !ALTERA_AVALON_JTAG_UART_SMALL */ diff --git a/software/qsys_tutorial_switchs18_bsp/drivers/src/altera_avalon_jtag_uart_read.c b/software/qsys_tutorial_switchs18_bsp/drivers/src/altera_avalon_jtag_uart_read.c new file mode 100644 index 0000000..5657adb --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/drivers/src/altera_avalon_jtag_uart_read.c @@ -0,0 +1,205 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include +#include +#include +#include + +#include + +#include "sys/alt_irq.h" +#include "sys/alt_alarm.h" +#include "sys/ioctl.h" +#include "alt_types.h" + +#include "altera_avalon_jtag_uart_regs.h" +#include "altera_avalon_jtag_uart.h" + +#include "sys/alt_log_printf.h" + +#ifdef __ucosii__ +#include "includes.h" +#endif /* __ucosii__ */ + +#ifdef ALTERA_AVALON_JTAG_UART_SMALL + +/* ----------------------------------------------------------- */ +/* ----------------------- SMALL DRIVER ---------------------- */ +/* ----------------------------------------------------------- */ + +/* Read routine. The small version blocks until it has at least one byte + * available, it then returns as much as is immediately available without + * waiting any more. It's performance will be very poor without + * interrupts. + */ + +int +altera_avalon_jtag_uart_read(altera_avalon_jtag_uart_state* sp, + char* buffer, int space, int flags) +{ + unsigned int base = sp->base; + + char * ptr = buffer; + char * end = buffer + space; + + while (ptr < end) + { + unsigned int data = IORD_ALTERA_AVALON_JTAG_UART_DATA(base); + + if (data & ALTERA_AVALON_JTAG_UART_DATA_RVALID_MSK) + *ptr++ = (data & ALTERA_AVALON_JTAG_UART_DATA_DATA_MSK) >> ALTERA_AVALON_JTAG_UART_DATA_DATA_OFST; + else if (ptr != buffer) + break; + else if(flags & O_NONBLOCK) + break; + + } + + if (ptr != buffer) + return ptr - buffer; + else if (flags & O_NONBLOCK) + return -EWOULDBLOCK; + else + return -EIO; +} + +#else /* !ALTERA_AVALON_JTAG_UART_SMALL */ + +/* ----------------------------------------------------------- */ +/* ----------------------- FAST DRIVER ----------------------- */ +/* ----------------------------------------------------------- */ + +int +altera_avalon_jtag_uart_read(altera_avalon_jtag_uart_state* sp, + char * buffer, int space, int flags) +{ + char * ptr = buffer; + + alt_irq_context context; + unsigned int n; + + /* + * When running in a multi threaded environment, obtain the "read_lock" + * semaphore. This ensures that reading from the device is thread-safe. + */ + ALT_SEM_PEND (sp->read_lock, 0); + + while (space > 0) + { + unsigned int in, out; + + /* Read as much data as possible */ + do + { + in = sp->rx_in; + out = sp->rx_out; + + if (in >= out) + n = in - out; + else + n = ALTERA_AVALON_JTAG_UART_BUF_LEN - out; + + if (n == 0) + break; /* No more data available */ + + if (n > space) + n = space; + + memcpy(ptr, sp->rx_buf + out, n); + ptr += n; + space -= n; + + sp->rx_out = (out + n) % ALTERA_AVALON_JTAG_UART_BUF_LEN; + } + while (space > 0); + + /* If we read any data then return it */ + if (ptr != buffer) + break; + + /* If in non-blocking mode then return error */ + if (flags & O_NONBLOCK) + break; + +#ifdef __ucosii__ + /* OS Present: Pend on a flag if the OS is running, otherwise spin */ + if(OSRunning == OS_TRUE) { + /* + * When running in a multi-threaded mode, we pend on the read event + * flag set and timeout event flag set in the isr. This avoids wasting CPU + * cycles waiting in this thread, when we could be doing something more + * profitable elsewhere. + */ + ALT_FLAG_PEND (sp->events, + ALT_JTAG_UART_READ_RDY | ALT_JTAG_UART_TIMEOUT, + OS_FLAG_WAIT_SET_ANY + OS_FLAG_CONSUME, + 0); + } + else { + /* Spin until more data arrives or until host disconnects */ + while (in == sp->rx_in && sp->host_inactive < sp->timeout) + ; + } +#else + /* No OS: Always spin */ + while (in == sp->rx_in && sp->host_inactive < sp->timeout) + ; +#endif /* __ucosii__ */ + + if (in == sp->rx_in) + break; + } + + /* + * Now that access to the circular buffer is complete, release the read + * semaphore so that other threads can access the buffer. + */ + + ALT_SEM_POST (sp->read_lock); + + if (ptr != buffer) + { + /* If we read any data then there is space in the buffer so enable interrupts */ + context = alt_irq_disable_all(); + sp->irq_enable |= ALTERA_AVALON_JTAG_UART_CONTROL_RE_MSK; + IOWR_ALTERA_AVALON_JTAG_UART_CONTROL(sp->base, sp->irq_enable); + alt_irq_enable_all(context); + } + + if (ptr != buffer) + return ptr - buffer; + else if (flags & O_NONBLOCK) + return -EWOULDBLOCK; + else + return -EIO; +} + +#endif /* ALTERA_AVALON_JTAG_UART_SMALL */ diff --git a/software/qsys_tutorial_switchs18_bsp/drivers/src/altera_avalon_jtag_uart_write.c b/software/qsys_tutorial_switchs18_bsp/drivers/src/altera_avalon_jtag_uart_write.c new file mode 100644 index 0000000..11aeca1 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/drivers/src/altera_avalon_jtag_uart_write.c @@ -0,0 +1,217 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include +#include +#include +#include + +#include + +#include "sys/alt_irq.h" +#include "sys/alt_alarm.h" +#include "sys/ioctl.h" +#include "alt_types.h" + +#include "altera_avalon_jtag_uart_regs.h" +#include "altera_avalon_jtag_uart.h" + +#include "sys/alt_log_printf.h" + +#ifdef __ucosii__ +#include "includes.h" +#endif /* __ucosii__ */ + +#ifdef ALTERA_AVALON_JTAG_UART_SMALL + +/* ----------------------------------------------------------- */ +/* ------------------------ SMALL DRIVER --------------------- */ +/* ----------------------------------------------------------- */ + +/* Write routine. The small version blocks when there is no space to write + * into, so it's performance will be very bad if you are writing more than + * one FIFOs worth of data. But you said you didn't want to use interrupts :-) + */ + +int altera_avalon_jtag_uart_write(altera_avalon_jtag_uart_state* sp, + const char * ptr, int count, int flags) +{ + unsigned int base = sp->base; + + const char * end = ptr + count; + + while (ptr < end) + if ((IORD_ALTERA_AVALON_JTAG_UART_CONTROL(base) & ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_MSK) != 0) + IOWR_ALTERA_AVALON_JTAG_UART_DATA(base, *ptr++); + + return count; +} + +#else /* !ALTERA_AVALON_JTAG_UART_SMALL */ + +/* ----------------------------------------------------------- */ +/* ------------------------- FAST DRIVER --------------------- */ +/* ----------------------------------------------------------- */ + +int +altera_avalon_jtag_uart_write(altera_avalon_jtag_uart_state* sp, + const char * ptr, int count, int flags) +{ + /* Remove warning at optimisation level 03 by seting out to 0 */ + unsigned int in, out=0; + unsigned int n; + alt_irq_context context; + + const char * start = ptr; + + /* + * When running in a multi threaded environment, obtain the "write_lock" + * semaphore. This ensures that writing to the device is thread-safe. + */ + ALT_SEM_PEND (sp->write_lock, 0); + + do + { + /* Copy as much as we can into the transmit buffer */ + while (count > 0) + { + /* We need a stable value of the out pointer to calculate the space available */ + in = sp->tx_in; + out = sp->tx_out; + + if (in < out) + n = out - 1 - in; + else if (out > 0) + n = ALTERA_AVALON_JTAG_UART_BUF_LEN - in; + else + n = ALTERA_AVALON_JTAG_UART_BUF_LEN - 1 - in; + + if (n == 0) + break; + + if (n > count) + n = count; + + memcpy(sp->tx_buf + in, ptr, n); + ptr += n; + count -= n; + + sp->tx_in = (in + n) % ALTERA_AVALON_JTAG_UART_BUF_LEN; + } + + /* + * If interrupts are disabled then we could transmit here, we only need + * to enable interrupts if there is no space left in the FIFO + * + * For now kick the interrupt routine every time to make it transmit + * the data + */ + context = alt_irq_disable_all(); + sp->irq_enable |= ALTERA_AVALON_JTAG_UART_CONTROL_WE_MSK; + IOWR_ALTERA_AVALON_JTAG_UART_CONTROL(sp->base, sp->irq_enable); + alt_irq_enable_all(context); + + /* + * If there is any data left then either return now or block until + * some has been sent + */ + /* consider: test whether there is anything there while doing this and delay for at most 2s. */ + if (count > 0) + { + if (flags & O_NONBLOCK) + break; + +#ifdef __ucosii__ + /* OS Present: Pend on a flag if the OS is running, otherwise spin */ + if(OSRunning == OS_TRUE) { + /* + * When running in a multi-threaded mode, we pend on the write event + * flag set or the timeout flag in the isr. This avoids wasting CPU + * cycles waiting in this thread, when we could be doing something + * more profitable elsewhere. + */ +#ifdef ALTERA_AVALON_JTAG_UART_IGNORE_FIFO_FULL_ERROR + if(!sp->host_inactive) +#endif + ALT_FLAG_PEND (sp->events, + ALT_JTAG_UART_WRITE_RDY | ALT_JTAG_UART_TIMEOUT, + OS_FLAG_WAIT_SET_ANY + OS_FLAG_CONSUME, + 0); + } + else { + /* + * OS not running: Wait for data to be removed from buffer. + * Once the interrupt routine has removed some data then we + * will be able to insert some more. + */ + while (out == sp->tx_out && sp->host_inactive < sp->timeout) + ; + } +#else + /* + * No OS present: Always wait for data to be removed from buffer. Once + * the interrupt routine has removed some data then we will be able to + * insert some more. + */ + while (out == sp->tx_out && sp->host_inactive < sp->timeout) + ; +#endif /* __ucosii__ */ + + if (out == sp->tx_out) + break; + } + } + while (count > 0); + + /* + * Now that access to the circular buffer is complete, release the write + * semaphore so that other threads can access the buffer. + */ + ALT_SEM_POST (sp->write_lock); + + if (ptr != start) + return ptr - start; + else if (flags & O_NONBLOCK) + return -EWOULDBLOCK; +#ifdef ALTERA_AVALON_JTAG_UART_IGNORE_FIFO_FULL_ERROR + else if (sp->host_inactive >= sp->timeout) { + /* + * Reset the software FIFO, hardware FIFO could not be reset. + * Just throw away characters without reporting error. + */ + sp->tx_out = sp->tx_in = 0; + return ptr - start + count; + } +#endif + else + return -EIO; /* Host not connected */ +} + +#endif /* ALTERA_AVALON_JTAG_UART_SMALL */ diff --git a/software/qsys_tutorial_switchs18_bsp/libhal_bsp.a b/software/qsys_tutorial_switchs18_bsp/libhal_bsp.a new file mode 100644 index 0000000..bc7522b --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/libhal_bsp.a Binary files differ diff --git a/software/qsys_tutorial_switchs18_bsp/linker.h b/software/qsys_tutorial_switchs18_bsp/linker.h new file mode 100644 index 0000000..367204b --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/linker.h @@ -0,0 +1,101 @@ +/* + * linker.h - Linker script mapping information + * + * Machine generated for CPU 'nios2_processor' in SOPC Builder design 'nios_system' + * SOPC Builder design path: C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.sopcinfo + * + * Generated: Thu Nov 10 09:22:57 JST 2016 + */ + +/* + * DO NOT MODIFY THIS FILE + * + * Changing this file will have subtle consequences + * which will almost certainly lead to a nonfunctioning + * system. If you do modify this file, be aware that your + * changes will be overwritten and lost when this file + * is generated again. + * + * DO NOT MODIFY THIS FILE + */ + +/* + * License Agreement + * + * Copyright (c) 2008 + * Altera Corporation, San Jose, California, USA. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + * This agreement shall be governed in all respects by the laws of the State + * of California and by the laws of the United States of America. + */ + +#ifndef __LINKER_H_ +#define __LINKER_H_ + + +/* + * BSP controls alt_load() behavior in crt0. + * + */ + +#define ALT_LOAD_EXPLICITLY_CONTROLLED + + +/* + * Base address and span (size in bytes) of each linker region + * + */ + +#define ONCHIP_MEMORY_REGION_BASE 0x20 +#define ONCHIP_MEMORY_REGION_SPAN 4064 +#define RESET_REGION_BASE 0x0 +#define RESET_REGION_SPAN 32 + + +/* + * Devices associated with code sections + * + */ + +#define ALT_EXCEPTIONS_DEVICE ONCHIP_MEMORY +#define ALT_RESET_DEVICE ONCHIP_MEMORY +#define ALT_RODATA_DEVICE ONCHIP_MEMORY +#define ALT_RWDATA_DEVICE ONCHIP_MEMORY +#define ALT_TEXT_DEVICE ONCHIP_MEMORY + + +/* + * Initialization code at the reset address is allowed (e.g. no external bootloader). + * + */ + +#define ALT_ALLOW_CODE_AT_RESET + + +/* + * The alt_load() facility is called from crt0 to copy sections into RAM. + * + */ + +#define ALT_LOAD_COPY_RWDATA + +#endif /* __LINKER_H_ */ diff --git a/software/qsys_tutorial_switchs18_bsp/linker.x b/software/qsys_tutorial_switchs18_bsp/linker.x new file mode 100644 index 0000000..4ea4f4e --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/linker.x @@ -0,0 +1,385 @@ +/* + * linker.x - Linker script + * + * Machine generated for CPU 'nios2_processor' in SOPC Builder design 'nios_system' + * SOPC Builder design path: C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.sopcinfo + * + * Generated: Thu Nov 10 09:22:57 JST 2016 + */ + +/* + * DO NOT MODIFY THIS FILE + * + * Changing this file will have subtle consequences + * which will almost certainly lead to a nonfunctioning + * system. If you do modify this file, be aware that your + * changes will be overwritten and lost when this file + * is generated again. + * + * DO NOT MODIFY THIS FILE + */ + +/* + * License Agreement + * + * Copyright (c) 2008 + * Altera Corporation, San Jose, California, USA. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + * This agreement shall be governed in all respects by the laws of the State + * of California and by the laws of the United States of America. + */ + +MEMORY +{ + reset : ORIGIN = 0x0, LENGTH = 32 + onchip_memory : ORIGIN = 0x20, LENGTH = 4064 +} + +/* Define symbols for each memory base-address */ +__alt_mem_onchip_memory = 0x0; + +OUTPUT_FORMAT( "elf32-littlenios2", + "elf32-littlenios2", + "elf32-littlenios2" ) +OUTPUT_ARCH( nios2 ) +ENTRY( _start ) + +/* + * The alt_load() facility is enabled. This typically happens when there isn't + * an external bootloader (e.g. flash bootloader). + * The LMA (aka physical address) of each loaded section is + * set to the .text memory device. + * The HAL alt_load() routine called from crt0 copies sections from + * the .text memory to RAM as needed. + */ + +SECTIONS +{ + + /* + * Output sections associated with reset and exceptions (they have to be first) + */ + + .entry : + { + KEEP (*(.entry)) + } > reset + + .exceptions : + { + PROVIDE (__ram_exceptions_start = ABSOLUTE(.)); + . = ALIGN(0x20); + KEEP (*(.irq)); + KEEP (*(.exceptions.entry.label)); + KEEP (*(.exceptions.entry.user)); + KEEP (*(.exceptions.entry)); + KEEP (*(.exceptions.irqtest.user)); + KEEP (*(.exceptions.irqtest)); + KEEP (*(.exceptions.irqhandler.user)); + KEEP (*(.exceptions.irqhandler)); + KEEP (*(.exceptions.irqreturn.user)); + KEEP (*(.exceptions.irqreturn)); + KEEP (*(.exceptions.notirq.label)); + KEEP (*(.exceptions.notirq.user)); + KEEP (*(.exceptions.notirq)); + KEEP (*(.exceptions.soft.user)); + KEEP (*(.exceptions.soft)); + KEEP (*(.exceptions.unknown.user)); + KEEP (*(.exceptions.unknown)); + KEEP (*(.exceptions.exit.label)); + KEEP (*(.exceptions.exit.user)); + KEEP (*(.exceptions.exit)); + KEEP (*(.exceptions)); + PROVIDE (__ram_exceptions_end = ABSOLUTE(.)); + } > onchip_memory + + PROVIDE (__flash_exceptions_start = LOADADDR(.exceptions)); + + .text : + { + /* + * All code sections are merged into the text output section, along with + * the read only data sections. + * + */ + + PROVIDE (stext = ABSOLUTE(.)); + + *(.interp) + *(.hash) + *(.dynsym) + *(.dynstr) + *(.gnu.version) + *(.gnu.version_d) + *(.gnu.version_r) + *(.rel.init) + *(.rela.init) + *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) + *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) + *(.rel.fini) + *(.rela.fini) + *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) + *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) + *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) + *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) + *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) + *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) + *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) + *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) + *(.rel.ctors) + *(.rela.ctors) + *(.rel.dtors) + *(.rela.dtors) + *(.rel.got) + *(.rela.got) + *(.rel.sdata .rel.sdata.* .rel.gnu.linkonce.s.*) + *(.rela.sdata .rela.sdata.* .rela.gnu.linkonce.s.*) + *(.rel.sbss .rel.sbss.* .rel.gnu.linkonce.sb.*) + *(.rela.sbss .rela.sbss.* .rela.gnu.linkonce.sb.*) + *(.rel.sdata2 .rel.sdata2.* .rel.gnu.linkonce.s2.*) + *(.rela.sdata2 .rela.sdata2.* .rela.gnu.linkonce.s2.*) + *(.rel.sbss2 .rel.sbss2.* .rel.gnu.linkonce.sb2.*) + *(.rela.sbss2 .rela.sbss2.* .rela.gnu.linkonce.sb2.*) + *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) + *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) + *(.rel.plt) + *(.rela.plt) + *(.rel.dyn) + + KEEP (*(.init)) + *(.plt) + *(.text .stub .text.* .gnu.linkonce.t.*) + + /* .gnu.warning sections are handled specially by elf32.em. */ + + *(.gnu.warning.*) + KEEP (*(.fini)) + PROVIDE (__etext = ABSOLUTE(.)); + PROVIDE (_etext = ABSOLUTE(.)); + PROVIDE (etext = ABSOLUTE(.)); + + *(.eh_frame_hdr) + /* Ensure the __preinit_array_start label is properly aligned. We + could instead move the label definition inside the section, but + the linker would then create the section even if it turns out to + be empty, which isn't pretty. */ + . = ALIGN(4); + PROVIDE (__preinit_array_start = ABSOLUTE(.)); + *(.preinit_array) + PROVIDE (__preinit_array_end = ABSOLUTE(.)); + PROVIDE (__init_array_start = ABSOLUTE(.)); + *(.init_array) + PROVIDE (__init_array_end = ABSOLUTE(.)); + PROVIDE (__fini_array_start = ABSOLUTE(.)); + *(.fini_array) + PROVIDE (__fini_array_end = ABSOLUTE(.)); + SORT(CONSTRUCTORS) + KEEP (*(.eh_frame)) + *(.gcc_except_table) + *(.dynamic) + PROVIDE (__CTOR_LIST__ = ABSOLUTE(.)); + KEEP (*(.ctors)) + KEEP (*(SORT(.ctors.*))) + PROVIDE (__CTOR_END__ = ABSOLUTE(.)); + PROVIDE (__DTOR_LIST__ = ABSOLUTE(.)); + KEEP (*(.dtors)) + KEEP (*(SORT(.dtors.*))) + PROVIDE (__DTOR_END__ = ABSOLUTE(.)); + KEEP (*(.jcr)) + . = ALIGN(4); + } > onchip_memory = 0x3a880100 /* Nios II NOP instruction */ + + .rodata : + { + PROVIDE (__ram_rodata_start = ABSOLUTE(.)); + . = ALIGN(4); + *(.rodata .rodata.* .gnu.linkonce.r.*) + *(.rodata1) + . = ALIGN(4); + PROVIDE (__ram_rodata_end = ABSOLUTE(.)); + } > onchip_memory + + PROVIDE (__flash_rodata_start = LOADADDR(.rodata)); + + /* + * + * This section's LMA is set to the .text region. + * crt0 will copy to this section's specified mapped region virtual memory address (VMA) + * + * .rwdata region equals the .text region, and is set to be loaded into .text region. + * This requires two copies of .rwdata in the .text region. One read writable at VMA. + * and one read-only at LMA. crt0 will copy from LMA to VMA on reset + * + */ + + .rwdata LOADADDR (.rodata) + SIZEOF (.rodata) : AT ( LOADADDR (.rodata) + SIZEOF (.rodata)+ SIZEOF (.rwdata) ) + { + PROVIDE (__ram_rwdata_start = ABSOLUTE(.)); + . = ALIGN(4); + *(.got.plt) *(.got) + *(.data1) + *(.data .data.* .gnu.linkonce.d.*) + + _gp = ABSOLUTE(. + 0x8000); + PROVIDE(gp = _gp); + + *(.rwdata .rwdata.*) + *(.sdata .sdata.* .gnu.linkonce.s.*) + *(.sdata2 .sdata2.* .gnu.linkonce.s2.*) + + . = ALIGN(4); + _edata = ABSOLUTE(.); + PROVIDE (edata = ABSOLUTE(.)); + PROVIDE (__ram_rwdata_end = ABSOLUTE(.)); + } > onchip_memory + + PROVIDE (__flash_rwdata_start = LOADADDR(.rwdata)); + + /* + * + * This section's LMA is set to the .text region. + * crt0 will copy to this section's specified mapped region virtual memory address (VMA) + * + */ + + .bss LOADADDR (.rwdata) + SIZEOF (.rwdata) : AT ( LOADADDR (.rwdata) + SIZEOF (.rwdata) ) + { + __bss_start = ABSOLUTE(.); + PROVIDE (__sbss_start = ABSOLUTE(.)); + PROVIDE (___sbss_start = ABSOLUTE(.)); + + *(.dynsbss) + *(.sbss .sbss.* .gnu.linkonce.sb.*) + *(.sbss2 .sbss2.* .gnu.linkonce.sb2.*) + *(.scommon) + + PROVIDE (__sbss_end = ABSOLUTE(.)); + PROVIDE (___sbss_end = ABSOLUTE(.)); + + *(.dynbss) + *(.bss .bss.* .gnu.linkonce.b.*) + *(COMMON) + + . = ALIGN(4); + __bss_end = ABSOLUTE(.); + } > onchip_memory + + /* + * + * One output section mapped to the associated memory device for each of + * the available memory devices. These are not used by default, but can + * be used by user applications by using the .section directive. + * + * The output section used for the heap is treated in a special way, + * i.e. the symbols "end" and "_end" are added to point to the heap start. + * + * Because alt_load() is enabled, these sections have + * their LMA set to be loaded into the .text memory region. + * However, the alt_load() code will NOT automatically copy + * these sections into their mapped memory region. + * + */ + + /* + * + * This section's LMA is set to the .text region. + * crt0 will copy to this section's specified mapped region virtual memory address (VMA) + * + */ + + .onchip_memory LOADADDR (.bss) + SIZEOF (.bss) : AT ( LOADADDR (.bss) + SIZEOF (.bss) ) + { + PROVIDE (_alt_partition_onchip_memory_start = ABSOLUTE(.)); + *(.onchip_memory. onchip_memory.*) + . = ALIGN(4); + PROVIDE (_alt_partition_onchip_memory_end = ABSOLUTE(.)); + _end = ABSOLUTE(.); + end = ABSOLUTE(.); + __alt_stack_base = ABSOLUTE(.); + } > onchip_memory + + PROVIDE (_alt_partition_onchip_memory_load_addr = LOADADDR(.onchip_memory)); + + /* + * Stabs debugging sections. + * + */ + + .stab 0 : { *(.stab) } + .stabstr 0 : { *(.stabstr) } + .stab.excl 0 : { *(.stab.excl) } + .stab.exclstr 0 : { *(.stab.exclstr) } + .stab.index 0 : { *(.stab.index) } + .stab.indexstr 0 : { *(.stab.indexstr) } + .comment 0 : { *(.comment) } + /* DWARF debug sections. + Symbols in the DWARF debugging sections are relative to the beginning + of the section so we begin them at 0. */ + /* DWARF 1 */ + .debug 0 : { *(.debug) } + .line 0 : { *(.line) } + /* GNU DWARF 1 extensions */ + .debug_srcinfo 0 : { *(.debug_srcinfo) } + .debug_sfnames 0 : { *(.debug_sfnames) } + /* DWARF 1.1 and DWARF 2 */ + .debug_aranges 0 : { *(.debug_aranges) } + .debug_pubnames 0 : { *(.debug_pubnames) } + /* DWARF 2 */ + .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } + .debug_abbrev 0 : { *(.debug_abbrev) } + .debug_line 0 : { *(.debug_line) } + .debug_frame 0 : { *(.debug_frame) } + .debug_str 0 : { *(.debug_str) } + .debug_loc 0 : { *(.debug_loc) } + .debug_macinfo 0 : { *(.debug_macinfo) } + /* SGI/MIPS DWARF 2 extensions */ + .debug_weaknames 0 : { *(.debug_weaknames) } + .debug_funcnames 0 : { *(.debug_funcnames) } + .debug_typenames 0 : { *(.debug_typenames) } + .debug_varnames 0 : { *(.debug_varnames) } + + /* Altera debug extensions */ + .debug_alt_sim_info 0 : { *(.debug_alt_sim_info) } +} + +/* provide a pointer for the stack */ + +/* + * Don't override this, override the __alt_stack_* symbols instead. + */ +__alt_data_end = 0x1000; + +/* + * The next two symbols define the location of the default stack. You can + * override them to move the stack to a different memory. + */ +PROVIDE( __alt_stack_pointer = __alt_data_end ); +PROVIDE( __alt_stack_limit = __alt_stack_base ); + +/* + * This symbol controls where the start of the heap is. If the stack is + * contiguous with the heap then the stack will contract as memory is + * allocated to the heap. + * Override this symbol to put the heap in a different memory. + */ +PROVIDE( __alt_heap_start = end ); +PROVIDE( __alt_heap_limit = 0x1000 ); diff --git a/software/qsys_tutorial_switchs18_bsp/mem_init.mk b/software/qsys_tutorial_switchs18_bsp/mem_init.mk new file mode 100644 index 0000000..4caaef9 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/mem_init.mk @@ -0,0 +1,322 @@ + +######################################################################### +####### M E M I N I T M A K E F I L E C O N T E N T ###### +######################################################################### + +######################################################################### +# This file is intended to be included by public.mk +# +# +# The following variables must be defined before including this file: +# - ELF +# +# The following variables may be defined to override the default behavior: +# - HDL_SIM_DIR +# - HDL_SIM_INSTALL_DIR +# - MEM_INIT_DIR +# - MEM_INIT_INSTALL_DIR +# - QUARTUS_PROJECT_DIR +# - SOPC_NAME +# - SIM_OPTIMIZE +# - RESET_ADDRESS +# +######################################################################### + +ifeq ($(MEM_INIT_FILE),) +# MEM_INIT_FILE should be set equal to the working relative path to this +# mem_init.mk makefile fragment +MEM_INIT_FILE := $(wildcard $(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST))) +endif + +ifeq ($(ELF2DAT),) +ELF2DAT := elf2dat +endif + +ifeq ($(ELF2HEX),) +ELF2HEX := elf2hex +endif + +ifeq ($(ELF2FLASH),) +ELF2FLASH := elf2flash +endif + +ifeq ($(FLASH2DAT),) +FLASH2DAT := flash2dat +endif + +ifeq ($(NM),) +NM := nios2-elf-nm +endif + +ifeq ($(MKDIR),) +MKDIR := mkdir -p +endif + +ifeq ($(RM),) +RM := rm -f +endif + +ifeq ($(CP),) +CP := cp +endif + +ifeq ($(ECHO),) +ECHO := echo +endif + +MEM_INIT_DIR ?= mem_init +HDL_SIM_DIR ?= $(MEM_INIT_DIR)/hdl_sim + +ifdef QUARTUS_PROJECT_DIR +MEM_INIT_INSTALL_DIR ?= $(patsubst %/,%,$(QUARTUS_PROJECT_DIR)) +ifdef SOPC_NAME +HDL_SIM_INSTALL_DIR ?= $(patsubst %/,%,$(QUARTUS_PROJECT_DIR))/$(SOPC_NAME)_sim +endif +endif + +MEM_INIT_DESCRIPTOR_FILE ?= $(MEM_INIT_DIR)/meminit.spd + +MEM_INIT_QIP_FILE ?= $(MEM_INIT_DIR)/meminit.qip + +#------------------------------------- +# Default Flash Boot Loaders +#------------------------------------- + +BOOT_LOADER_PATH ?= $(SOPC_KIT_NIOS2)/components/altera_nios2 +BOOT_LOADER_CFI ?= $(BOOT_LOADER_PATH)/boot_loader_cfi.srec +BOOT_LOADER_CFI_BE ?= $(BOOT_LOADER_PATH)/boot_loader_cfi_be.srec + + +#------------------------------------- +# Default Target +#------------------------------------- + +.PHONY: default_mem_init +ifeq ($(QSYS),1) +default_mem_init: mem_init_generate +else +default_mem_init: mem_init_install +endif +#------------------------------------- +# Runtime Macros +#------------------------------------- + +define post-process-info + @echo Post-processing to create $@... +endef + +target_stem = $(notdir $(basename $@)) + +mem_start_address = $($(target_stem)_START) +mem_end_address = $($(target_stem)_END) +mem_width = $($(target_stem)_WIDTH) +mem_endianness = $($(target_stem)_ENDIANNESS) +mem_create_lanes = $($(target_stem)_CREATE_LANES) + +mem_pad_flag = $($(target_stem)_PAD_FLAG) +mem_reloc_input_flag = $($(target_stem)_RELOC_INPUT_FLAG) +mem_no_zero_fill_flag = $($(target_stem)_NO_ZERO_FILL_FLAG) + +flash_mem_epcs_flag = $($(target_stem)_EPCS_FLAGS) +flash_mem_cfi_flag = $($(target_stem)_CFI_FLAGS) +flash_mem_boot_loader_flag = $($(target_stem)_BOOT_LOADER_FLAG) + +elf2dat_extra_args = $(mem_pad_flag) +elf2hex_extra_args = $(mem_no_zero_fill_flag) +elf2flash_extra_args = $(flash_mem_cfi_flag) $(flash_mem_epcs_flag) $(flash_mem_boot_loader_flag) +flash2dat_extra_args = $(mem_pad_flag) $(mem_reloc_input_flag) + +#------------------------------------------------------------------------------ +# BSP SPECIFIC CONTENT +# +# The content below is controlled by the BSP and SOPC System +#------------------------------------------------------------------------------ +#START OF BSP SPECIFIC + +#------------------------------------- +# Global Settings +#------------------------------------- + + +# The following TYPE comment allows tools to identify the 'type' of target this +# makefile is associated with. +# TYPE: BSP_MEMINIT_MAKEFILE + +# This following VERSION comment indicates the version of the tool used to +# generate this makefile. A makefile variable is provided for VERSION as well. +# ACDS_VERSION: 13.0sp1 +ACDS_VERSION := 13.0sp1 + +# This following BUILD_NUMBER comment indicates the build number of the tool +# used to generate this makefile. +# BUILD_NUMBER: 232 + +# Optimize for simulation +SIM_OPTIMIZE ?= 0 + +# The CPU reset address as needed by elf2flash +RESET_ADDRESS ?= 0x00000000 + +#------------------------------------- +# Pre-Initialized Memory Descriptions +#------------------------------------- + +# Memory: onchip_memory +MEM_0 := nios_system_onchip_memory +$(MEM_0)_NAME := onchip_memory +$(MEM_0)_MEM_INIT_FILE_PARAM_NAME := INIT_FILE +HEX_FILES += $(MEM_INIT_DIR)/$(MEM_0).hex +MEM_INIT_INSTALL_FILES += $(MEM_INIT_INSTALL_DIR)/$(MEM_0).hex +DAT_FILES += $(HDL_SIM_DIR)/$(MEM_0).dat +HDL_SIM_INSTALL_FILES += $(HDL_SIM_INSTALL_DIR)/$(MEM_0).dat +SYM_FILES += $(HDL_SIM_DIR)/$(MEM_0).sym +HDL_SIM_INSTALL_FILES += $(HDL_SIM_INSTALL_DIR)/$(MEM_0).sym +$(MEM_0)_START := 0x00000000 +$(MEM_0)_END := 0x00000fff +$(MEM_0)_HIERARCHICAL_PATH := onchip_memory +$(MEM_0)_WIDTH := 32 +$(MEM_0)_ENDIANNESS := --little-endian-mem +$(MEM_0)_CREATE_LANES := 0 + +.PHONY: onchip_memory +onchip_memory: check_elf_exists $(MEM_INIT_DIR)/$(MEM_0).hex $(HDL_SIM_DIR)/$(MEM_0).dat $(HDL_SIM_DIR)/$(MEM_0).sym + + +#END OF BSP SPECIFIC + +#------------------------------------- +# Pre-Initialized Memory Targets +#------------------------------------- + +.PHONY: mem_init_install mem_init_generate mem_init_clean + +ifeq ($(QSYS),1) +# Target mem_init_install is deprecated for QSys based systems +# To initialize onchip memories for Quartus II Synthesis with Qsys based systems: +# 1) Use "make mem_init_genearate" +# 2) Add the generated mem_init/meminit.qip file to your Quartus II Project +# +mem_init_install: + $(error Deprecated Makefile Target: '$@'. Use target 'mem_init_generate' and then add $(MEM_INIT_QIP_FILE) to your Quartus II Project) + +else # QSYS != 1, if SopcBuilder based system + +ifneq ($(MEM_INIT_INSTALL_DIR),) +mem_init_install: $(MEM_INIT_INSTALL_FILES) +endif + +ifneq ($(HDL_SIM_INSTALL_DIR),) +mem_init_install: $(HDL_SIM_INSTALL_FILES) +endif + +mem_init_install: mem_init_generate +ifeq ($(MEM_INIT_INSTALL_DIR),) + @echo "WARNING: MEM_INIT_INSTALL_DIR not set. Set your QUARTUS_PROJECT_DIR environment variable." +endif +ifeq ($(HDL_SIM_INSTALL_DIR),) + @echo "WARNING: HDL_SIM_INSTALL_DIR not set. Set your QUARTUS_PROJECT_DIR and SOPC_NAME environment variable." +endif + +$(MEM_INIT_INSTALL_FILES): $(MEM_INIT_INSTALL_DIR)/%: $(MEM_INIT_DIR)/% + @$(MKDIR) $(@D) + @$(CP) -v $< $@ + +$(HDL_SIM_INSTALL_FILES): $(HDL_SIM_INSTALL_DIR)/%: $(HDL_SIM_DIR)/% + @$(MKDIR) $(@D) + @$(CP) -v $< $@ + +endif # QSYS == 1 + + +mem_init_generate: hex dat sym flash $(MEM_INIT_DESCRIPTOR_FILE) $(MEM_INIT_QIP_FILE) + +mem_init_clean: + @$(RM) -r $(MEM_INIT_DIR) $(HDL_SIM_DIR) $(FLASH_FILES) + +.PHONY: hex dat sym flash + +hex: check_elf_exists $(HEX_FILES) + +dat: check_elf_exists $(DAT_FILES) + +sym: check_elf_exists $(SYM_FILES) + +flash: check_elf_exists $(FLASH_FILES) + +#------------------------------------- +# Pre-Initialized Memory Rules +#------------------------------------- + +.PHONY: check_elf_exists +check_elf_exists: $(ELF) +ifeq ($(ELF),) + $(error ELF var not set in mem_init.mk) +endif + +$(filter-out $(FLASH_DAT_FILES),$(DAT_FILES)): %.dat: $(ELF) + $(post-process-info) + @$(MKDIR) $(@D) + bash -c '$(ELF2DAT) --infile=$< --outfile=$@ \ + --base=$(mem_start_address) --end=$(mem_end_address) --width=$(mem_width) \ + $(mem_endianness) --create-lanes=$(mem_create_lanes) $(elf2dat_extra_args)' + +$(foreach i,0 1 2 3 4 5 6 7,%_lane$(i).dat): %.dat + @true + +$(HEX_FILES): %.hex: $(ELF) + $(post-process-info) + @$(MKDIR) $(@D) + bash -c '$(ELF2HEX) $< $(mem_start_address) $(mem_end_address) --width=$(mem_width) \ + $(mem_endianness) --create-lanes=$(mem_create_lanes) $(elf2hex_extra_args) $@' + +$(SYM_FILES): %.sym: $(ELF) + $(post-process-info) + @$(MKDIR) $(@D) + $(NM) -n $< > $@ + +$(FLASH_FILES): %.flash: $(ELF) + $(post-process-info) + @$(MKDIR) $(@D) + bash -c '$(ELF2FLASH) --input=$< --outfile=$@ --sim_optimize=$(SIM_OPTIMIZE) $(mem_endianness) \ + $(elf2flash_extra_args)' + +# +# Function generate_spd_entry +# Arg1: path to the memory initialization file +# Arg2: Type HEX or DAT +# Arg3: Output spd file to append +gen_spd_entry.BASE_FILE = $(basename $(notdir $1)) +gen_spd_entry.PARAM_NAME = $($(gen_spd_entry.BASE_FILE)_MEM_INIT_FILE_PARAM_NAME) +gen_spd_entry.MEM_PATH = $($(gen_spd_entry.BASE_FILE)_HIERARCHICAL_PATH) +gen_spd_entry.SETTINGS = $(strip \ + path=\"$1\" \ + type=\"$2\" \ + $(if $(gen_spd_entry.PARAM_NAME),initParamName=\"$(gen_spd_entry.PARAM_NAME)\") \ + $(if $(gen_spd_entry.MEM_PATH),memoryPath=\"$(gen_spd_entry.MEM_PATH)\") \ +) +define gen_spd_entry +$(ECHO) "" >> $3 +endef + +$(MEM_INIT_DESCRIPTOR_FILE).DAT_FILESET := $(patsubst $(dir $(MEM_INIT_DESCRIPTOR_FILE))%,%,$(DAT_FILES)) +$(MEM_INIT_DESCRIPTOR_FILE).HEX_FILESET := $(patsubst $(dir $(MEM_INIT_DESCRIPTOR_FILE))%,%,$(HEX_FILES)) + +$(MEM_INIT_DESCRIPTOR_FILE): %.spd: $(MEM_INIT_FILE) + $(post-process-info) + @$(MKDIR) $(@D) + @$(RM) $@ + @$(ECHO) "" > $@ + @$(ECHO) "" >> $@ + @$(foreach dat_file,$($@.DAT_FILESET),$(call gen_spd_entry,$(dat_file),DAT,$@) &&)true + @$(foreach hex_file,$($@.HEX_FILESET),$(call gen_spd_entry,$(hex_file),HEX,$@) &&)true + @$(ECHO) "" >> $@ + +.DELETE_ON_ERROR: $(MEM_INIT_DESCRIPTOR_FILE) + +$(MEM_INIT_QIP_FILE): %.qip: $(MEM_INIT_FILE) + $(post-process-info) + @$(MKDIR) $(@D) + @$(RM) $@ + @$(ECHO) "set_global_assignment -name SEARCH_PATH $$::quartus(qip_path)" > $@ + +.DELETE_ON_ERROR: $(MEM_INIT_QIP_FILE) diff --git a/software/qsys_tutorial_switchs18_bsp/memory.gdb b/software/qsys_tutorial_switchs18_bsp/memory.gdb new file mode 100644 index 0000000..f9cc1ca --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/memory.gdb @@ -0,0 +1,50 @@ +# memory.gdb - GDB memory region definitions +# +# Machine generated for CPU 'nios2_processor' in SOPC Builder design 'nios_system' +# SOPC Builder design path: C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.sopcinfo +# +# Generated: Thu Nov 10 09:22:57 JST 2016 + +# DO NOT MODIFY THIS FILE +# +# Changing this file will have subtle consequences +# which will almost certainly lead to a nonfunctioning +# system. If you do modify this file, be aware that your +# changes will be overwritten and lost when this file +# is generated again. +# +# DO NOT MODIFY THIS FILE + +# License Agreement +# +# Copyright (c) 2008 +# Altera Corporation, San Jose, California, USA. +# All rights reserved. +# +# Permission is hereby granted, free of charge, to any person obtaining a +# copy of this software and associated documentation files (the "Software"), +# to deal in the Software without restriction, including without limitation +# the rights to use, copy, modify, merge, publish, distribute, sublicense, +# and/or sell copies of the Software, and to permit persons to whom the +# Software is furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +# DEALINGS IN THE SOFTWARE. +# +# This agreement shall be governed in all respects by the laws of the State +# of California and by the laws of the United States of America. + +# Define memory regions for each memory connected to the CPU. +# The cache attribute is specified which improves GDB performance +# by allowing GDB to cache memory contents on the host. + +# onchip_memory +memory 0x0 0x1000 cache diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_alarm_start.d b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_alarm_start.d new file mode 100644 index 0000000..3bb20ea --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_alarm_start.d @@ -0,0 +1,22 @@ +obj/HAL/src/alt_alarm_start.o: HAL/src/alt_alarm_start.c \ + HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ + HAL/inc/priv/alt_alarm.h HAL/inc/alt_types.h HAL/inc/sys/alt_irq.h \ + HAL/inc/nios2.h system.h linker.h + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +system.h: + +linker.h: diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_alarm_start.o b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_alarm_start.o new file mode 100644 index 0000000..6fe7cfa --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_alarm_start.o Binary files differ diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_busy_sleep.d b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_busy_sleep.d new file mode 100644 index 0000000..e93e80c --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_busy_sleep.d @@ -0,0 +1,10 @@ +obj/HAL/src/alt_busy_sleep.o: HAL/src/alt_busy_sleep.c system.h linker.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_busy_sleep.h + +system.h: + +linker.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_busy_sleep.h: diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_busy_sleep.o b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_busy_sleep.o new file mode 100644 index 0000000..62f19fe --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_busy_sleep.o Binary files differ diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_close.d b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_close.d new file mode 100644 index 0000000..fbbab9c --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_close.d @@ -0,0 +1,34 @@ +obj/HAL/src/alt_close.o: HAL/src/alt_close.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h HAL/inc/priv/alt_file.h \ + HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h \ + HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_close.o b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_close.o new file mode 100644 index 0000000..2ea7a4b --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_close.o Binary files differ diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_dcache_flush.d b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_dcache_flush.d new file mode 100644 index 0000000..a0eaf8a --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_dcache_flush.d @@ -0,0 +1,15 @@ +obj/HAL/src/alt_dcache_flush.o: HAL/src/alt_dcache_flush.c \ + HAL/inc/nios2.h system.h linker.h HAL/inc/alt_types.h \ + HAL/inc/sys/alt_cache.h HAL/inc/alt_types.h + +HAL/inc/nios2.h: + +system.h: + +linker.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_cache.h: + +HAL/inc/alt_types.h: diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_dcache_flush.o b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_dcache_flush.o new file mode 100644 index 0000000..728a60d --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_dcache_flush.o Binary files differ diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_dcache_flush_all.d b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_dcache_flush_all.d new file mode 100644 index 0000000..792c3e4 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_dcache_flush_all.d @@ -0,0 +1,15 @@ +obj/HAL/src/alt_dcache_flush_all.o: HAL/src/alt_dcache_flush_all.c \ + HAL/inc/nios2.h system.h linker.h HAL/inc/alt_types.h \ + HAL/inc/sys/alt_cache.h HAL/inc/alt_types.h + +HAL/inc/nios2.h: + +system.h: + +linker.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_cache.h: + +HAL/inc/alt_types.h: diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_dcache_flush_all.o b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_dcache_flush_all.o new file mode 100644 index 0000000..aa0de97 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_dcache_flush_all.o Binary files differ diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_dcache_flush_no_writeback.d b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_dcache_flush_no_writeback.d new file mode 100644 index 0000000..867c42b --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_dcache_flush_no_writeback.d @@ -0,0 +1,16 @@ +obj/HAL/src/alt_dcache_flush_no_writeback.o: \ + HAL/src/alt_dcache_flush_no_writeback.c HAL/inc/nios2.h system.h \ + linker.h HAL/inc/alt_types.h HAL/inc/sys/alt_cache.h \ + HAL/inc/alt_types.h + +HAL/inc/nios2.h: + +system.h: + +linker.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_cache.h: + +HAL/inc/alt_types.h: diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_dcache_flush_no_writeback.o b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_dcache_flush_no_writeback.o new file mode 100644 index 0000000..d9ed43f --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_dcache_flush_no_writeback.o Binary files differ diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_dev.d b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_dev.d new file mode 100644 index 0000000..cd9b1d4 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_dev.d @@ -0,0 +1,34 @@ +obj/HAL/src/alt_dev.o: HAL/src/alt_dev.c HAL/inc/sys/alt_dev.h system.h \ + linker.h HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h \ + HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h HAL/inc/alt_types.h \ + system.h + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/alt_types.h: + +system.h: diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_dev.o b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_dev.o new file mode 100644 index 0000000..ea8331a --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_dev.o Binary files differ diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_dev_llist_insert.d b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_dev_llist_insert.d new file mode 100644 index 0000000..344d065 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_dev_llist_insert.d @@ -0,0 +1,13 @@ +obj/HAL/src/alt_dev_llist_insert.o: HAL/src/alt_dev_llist_insert.c \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/alt_types.h HAL/inc/sys/alt_errno.h + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_errno.h: diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_dev_llist_insert.o b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_dev_llist_insert.o new file mode 100644 index 0000000..e242c2f --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_dev_llist_insert.o Binary files differ diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_dma_rxchan_open.d b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_dma_rxchan_open.d new file mode 100644 index 0000000..fb21fed --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_dma_rxchan_open.d @@ -0,0 +1,35 @@ +obj/HAL/src/alt_dma_rxchan_open.o: HAL/src/alt_dma_rxchan_open.c \ + HAL/inc/sys/alt_dma.h HAL/inc/sys/alt_dma_dev.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/alt_types.h HAL/inc/sys/alt_errno.h \ + HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h system.h linker.h \ + HAL/inc/sys/alt_llist.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h + +HAL/inc/sys/alt_dma.h: + +HAL/inc/sys/alt_dma_dev.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_errno.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_dma_rxchan_open.o b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_dma_rxchan_open.o new file mode 100644 index 0000000..44de728 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_dma_rxchan_open.o Binary files differ diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_dma_txchan_open.d b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_dma_txchan_open.d new file mode 100644 index 0000000..500b95c --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_dma_txchan_open.d @@ -0,0 +1,35 @@ +obj/HAL/src/alt_dma_txchan_open.o: HAL/src/alt_dma_txchan_open.c \ + HAL/inc/sys/alt_dma.h HAL/inc/sys/alt_dma_dev.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/alt_types.h HAL/inc/sys/alt_errno.h \ + HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h system.h linker.h \ + HAL/inc/sys/alt_llist.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h + +HAL/inc/sys/alt_dma.h: + +HAL/inc/sys/alt_dma_dev.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_errno.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_dma_txchan_open.o b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_dma_txchan_open.o new file mode 100644 index 0000000..9434883 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_dma_txchan_open.o Binary files differ diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_do_ctors.d b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_do_ctors.d new file mode 100644 index 0000000..daf8baf --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_do_ctors.d @@ -0,0 +1 @@ +obj/HAL/src/alt_do_ctors.o: HAL/src/alt_do_ctors.c diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_do_ctors.o b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_do_ctors.o new file mode 100644 index 0000000..cee2a4e --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_do_ctors.o Binary files differ diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_do_dtors.d b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_do_dtors.d new file mode 100644 index 0000000..c3471eb --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_do_dtors.d @@ -0,0 +1 @@ +obj/HAL/src/alt_do_dtors.o: HAL/src/alt_do_dtors.c diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_do_dtors.o b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_do_dtors.o new file mode 100644 index 0000000..dfc2525 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_do_dtors.o Binary files differ diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_env_lock.d b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_env_lock.d new file mode 100644 index 0000000..634d7b0 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_env_lock.d @@ -0,0 +1 @@ +obj/HAL/src/alt_env_lock.o: HAL/src/alt_env_lock.c diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_env_lock.o b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_env_lock.o new file mode 100644 index 0000000..3b0702c --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_env_lock.o Binary files differ diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_environ.d b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_environ.d new file mode 100644 index 0000000..e9ca295 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_environ.d @@ -0,0 +1,3 @@ +obj/HAL/src/alt_environ.o: HAL/src/alt_environ.c HAL/inc/os/alt_syscall.h + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_environ.o b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_environ.o new file mode 100644 index 0000000..f04f168 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_environ.o Binary files differ diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_errno.d b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_errno.d new file mode 100644 index 0000000..29ca544 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_errno.d @@ -0,0 +1,8 @@ +obj/HAL/src/alt_errno.o: HAL/src/alt_errno.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/alt_types.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/alt_types.h: diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_errno.o b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_errno.o new file mode 100644 index 0000000..c1bd2ee --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_errno.o Binary files differ diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_exception_entry.d b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_exception_entry.d new file mode 100644 index 0000000..540567e --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_exception_entry.d @@ -0,0 +1,6 @@ +obj/HAL/src/alt_exception_entry.o: HAL/src/alt_exception_entry.S system.h \ + linker.h + +system.h: + +linker.h: diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_exception_entry.o b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_exception_entry.o new file mode 100644 index 0000000..3c912dd --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_exception_entry.o Binary files differ diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_exception_muldiv.d b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_exception_muldiv.d new file mode 100644 index 0000000..63d66a7 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_exception_muldiv.d @@ -0,0 +1 @@ +obj/HAL/src/alt_exception_muldiv.o: HAL/src/alt_exception_muldiv.S diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_exception_muldiv.o b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_exception_muldiv.o new file mode 100644 index 0000000..f807e90 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_exception_muldiv.o Binary files differ diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_exception_trap.d b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_exception_trap.d new file mode 100644 index 0000000..6e18488 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_exception_trap.d @@ -0,0 +1 @@ +obj/HAL/src/alt_exception_trap.o: HAL/src/alt_exception_trap.S diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_exception_trap.o b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_exception_trap.o new file mode 100644 index 0000000..a2e80cd --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_exception_trap.o Binary files differ diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_execve.d b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_execve.d new file mode 100644 index 0000000..9cef7d2 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_execve.d @@ -0,0 +1,10 @@ +obj/HAL/src/alt_execve.o: HAL/src/alt_execve.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_execve.o b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_execve.o new file mode 100644 index 0000000..dced4ec --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_execve.o Binary files differ diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_exit.d b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_exit.d new file mode 100644 index 0000000..a779da8 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_exit.d @@ -0,0 +1,26 @@ +obj/HAL/src/alt_exit.o: HAL/src/alt_exit.c HAL/inc/sys/alt_irq.h \ + HAL/inc/nios2.h HAL/inc/alt_types.h system.h linker.h \ + HAL/inc/sys/alt_sim.h HAL/inc/os/alt_hooks.h HAL/inc/os/alt_syscall.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_log_printf.h system.h + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_sim.h: + +HAL/inc/os/alt_hooks.h: + +HAL/inc/os/alt_syscall.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_log_printf.h: + +system.h: diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_exit.o b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_exit.o new file mode 100644 index 0000000..0cd999e --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_exit.o Binary files differ diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_fcntl.d b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_fcntl.d new file mode 100644 index 0000000..527f242 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_fcntl.d @@ -0,0 +1,34 @@ +obj/HAL/src/alt_fcntl.o: HAL/src/alt_fcntl.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h \ + system.h linker.h HAL/inc/sys/alt_llist.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h HAL/inc/alt_types.h \ + HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_fcntl.o b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_fcntl.o new file mode 100644 index 0000000..e078c60 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_fcntl.o Binary files differ diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_fd_lock.d b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_fd_lock.d new file mode 100644 index 0000000..93daeac --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_fd_lock.d @@ -0,0 +1,27 @@ +obj/HAL/src/alt_fd_lock.o: HAL/src/alt_fd_lock.c HAL/inc/priv/alt_file.h \ + HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_fd_lock.o b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_fd_lock.o new file mode 100644 index 0000000..48f562e --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_fd_lock.o Binary files differ diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_fd_unlock.d b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_fd_unlock.d new file mode 100644 index 0000000..45a3207 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_fd_unlock.d @@ -0,0 +1,27 @@ +obj/HAL/src/alt_fd_unlock.o: HAL/src/alt_fd_unlock.c \ + HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h system.h linker.h \ + HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_fd_unlock.o b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_fd_unlock.o new file mode 100644 index 0000000..e4ddba8 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_fd_unlock.o Binary files differ diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_find_dev.d b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_find_dev.d new file mode 100644 index 0000000..98336f8 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_find_dev.d @@ -0,0 +1,31 @@ +obj/HAL/src/alt_find_dev.o: HAL/src/alt_find_dev.c HAL/inc/sys/alt_dev.h \ + system.h linker.h HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h \ + HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h HAL/inc/alt_types.h + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/alt_types.h: diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_find_dev.o b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_find_dev.o new file mode 100644 index 0000000..f7c9b07 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_find_dev.o Binary files differ diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_find_file.d b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_find_file.d new file mode 100644 index 0000000..d1150ca --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_find_file.d @@ -0,0 +1,32 @@ +obj/HAL/src/alt_find_file.o: HAL/src/alt_find_file.c \ + HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h HAL/inc/priv/alt_file.h \ + HAL/inc/sys/alt_dev.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h \ + HAL/inc/alt_types.h + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/alt_types.h: diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_find_file.o b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_find_file.o new file mode 100644 index 0000000..dbac54b --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_find_file.o Binary files differ diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_flash_dev.d b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_flash_dev.d new file mode 100644 index 0000000..8835e8f --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_flash_dev.d @@ -0,0 +1,34 @@ +obj/HAL/src/alt_flash_dev.o: HAL/src/alt_flash_dev.c \ + HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h HAL/inc/sys/alt_flash_dev.h \ + HAL/inc/sys/alt_flash_types.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h \ + system.h linker.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_flash_dev.h: + +HAL/inc/sys/alt_flash_types.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_flash_dev.o b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_flash_dev.o new file mode 100644 index 0000000..5b3aab0 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_flash_dev.o Binary files differ diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_fork.d b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_fork.d new file mode 100644 index 0000000..492be65 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_fork.d @@ -0,0 +1,10 @@ +obj/HAL/src/alt_fork.o: HAL/src/alt_fork.c HAL/inc/sys/alt_warning.h \ + HAL/inc/sys/alt_errno.h HAL/inc/alt_types.h HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_warning.h: + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_fork.o b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_fork.o new file mode 100644 index 0000000..fdc85e4 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_fork.o Binary files differ diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_fs_reg.d b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_fs_reg.d new file mode 100644 index 0000000..d8f95ab --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_fs_reg.d @@ -0,0 +1,29 @@ +obj/HAL/src/alt_fs_reg.o: HAL/src/alt_fs_reg.c HAL/inc/sys/alt_dev.h \ + system.h linker.h HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h \ + HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_fs_reg.o b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_fs_reg.o new file mode 100644 index 0000000..ee04384 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_fs_reg.o Binary files differ diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_fstat.d b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_fstat.d new file mode 100644 index 0000000..942fcbc --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_fstat.d @@ -0,0 +1,38 @@ +obj/HAL/src/alt_fstat.o: HAL/src/alt_fstat.c HAL/inc/sys/alt_dev.h \ + system.h linker.h HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h HAL/inc/sys/alt_errno.h \ + HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h HAL/inc/os/alt_syscall.h system.h + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/sys/alt_errno.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_syscall.h: + +system.h: diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_fstat.o b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_fstat.o new file mode 100644 index 0000000..4c14c2a --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_fstat.o Binary files differ diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_get_fd.d b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_get_fd.d new file mode 100644 index 0000000..9a4daaa --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_get_fd.d @@ -0,0 +1,34 @@ +obj/HAL/src/alt_get_fd.o: HAL/src/alt_get_fd.c HAL/inc/sys/alt_dev.h \ + system.h linker.h HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h \ + HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h HAL/inc/alt_types.h \ + system.h + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/alt_types.h: + +system.h: diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_get_fd.o b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_get_fd.o new file mode 100644 index 0000000..bdea58a --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_get_fd.o Binary files differ diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_getchar.d b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_getchar.d new file mode 100644 index 0000000..bcccdf7 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_getchar.d @@ -0,0 +1,34 @@ +obj/HAL/src/alt_getchar.o: HAL/src/alt_getchar.c system.h linker.h \ + HAL/inc/sys/alt_driver.h HAL/inc/sys/alt_stdio.h \ + HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h system.h \ + HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h + +system.h: + +linker.h: + +HAL/inc/sys/alt_driver.h: + +HAL/inc/sys/alt_stdio.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_getchar.o b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_getchar.o new file mode 100644 index 0000000..cbcd55b --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_getchar.o Binary files differ diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_getpid.d b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_getpid.d new file mode 100644 index 0000000..d9499b9 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_getpid.d @@ -0,0 +1,3 @@ +obj/HAL/src/alt_getpid.o: HAL/src/alt_getpid.c HAL/inc/os/alt_syscall.h + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_getpid.o b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_getpid.o new file mode 100644 index 0000000..5739398 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_getpid.o Binary files differ diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_gettod.d b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_gettod.d new file mode 100644 index 0000000..cf3cf34 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_gettod.d @@ -0,0 +1,17 @@ +obj/HAL/src/alt_gettod.o: HAL/src/alt_gettod.c HAL/inc/sys/alt_alarm.h \ + HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h HAL/inc/priv/alt_alarm.h \ + HAL/inc/alt_types.h HAL/inc/alt_types.h HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/alt_types.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_gettod.o b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_gettod.o new file mode 100644 index 0000000..88384d6 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_gettod.o Binary files differ diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_gmon.d b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_gmon.d new file mode 100644 index 0000000..e9469ab --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_gmon.d @@ -0,0 +1,24 @@ +obj/HAL/src/alt_gmon.o: HAL/src/alt_gmon.c HAL/inc/priv/nios2_gmon_data.h \ + HAL/inc/sys/alt_irq.h HAL/inc/nios2.h HAL/inc/alt_types.h system.h \ + linker.h HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_alarm.h HAL/inc/alt_types.h + +HAL/inc/priv/nios2_gmon_data.h: + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/alt_types.h: diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_gmon.o b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_gmon.o new file mode 100644 index 0000000..edda138 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_gmon.o Binary files differ diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_icache_flush.d b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_icache_flush.d new file mode 100644 index 0000000..2e4ddd1 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_icache_flush.d @@ -0,0 +1,15 @@ +obj/HAL/src/alt_icache_flush.o: HAL/src/alt_icache_flush.c \ + HAL/inc/nios2.h system.h linker.h HAL/inc/alt_types.h \ + HAL/inc/sys/alt_cache.h HAL/inc/alt_types.h + +HAL/inc/nios2.h: + +system.h: + +linker.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_cache.h: + +HAL/inc/alt_types.h: diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_icache_flush.o b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_icache_flush.o new file mode 100644 index 0000000..658af97 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_icache_flush.o Binary files differ diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_icache_flush_all.d b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_icache_flush_all.d new file mode 100644 index 0000000..47cfbf3 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_icache_flush_all.d @@ -0,0 +1,15 @@ +obj/HAL/src/alt_icache_flush_all.o: HAL/src/alt_icache_flush_all.c \ + HAL/inc/nios2.h system.h linker.h HAL/inc/alt_types.h \ + HAL/inc/sys/alt_cache.h HAL/inc/alt_types.h + +HAL/inc/nios2.h: + +system.h: + +linker.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_cache.h: + +HAL/inc/alt_types.h: diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_icache_flush_all.o b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_icache_flush_all.o new file mode 100644 index 0000000..f0f1eb4 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_icache_flush_all.o Binary files differ diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_iic.d b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_iic.d new file mode 100644 index 0000000..a709e0c --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_iic.d @@ -0,0 +1,29 @@ +obj/HAL/src/alt_iic.o: HAL/src/alt_iic.c system.h linker.h \ + HAL/inc/sys/alt_irq.h HAL/inc/nios2.h HAL/inc/alt_types.h system.h \ + HAL/inc/priv/alt_iic_isr_register.h HAL/inc/alt_types.h \ + HAL/inc/sys/alt_irq.h HAL/inc/priv/alt_legacy_irq.h system.h \ + HAL/inc/nios2.h + +system.h: + +linker.h: + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +HAL/inc/priv/alt_iic_isr_register.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_irq.h: + +HAL/inc/priv/alt_legacy_irq.h: + +system.h: + +HAL/inc/nios2.h: diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_iic.o b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_iic.o new file mode 100644 index 0000000..2acc465 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_iic.o Binary files differ diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_iic_isr_register.d b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_iic_isr_register.d new file mode 100644 index 0000000..d0470ae --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_iic_isr_register.d @@ -0,0 +1,30 @@ +obj/HAL/src/alt_iic_isr_register.o: HAL/src/alt_iic_isr_register.c \ + system.h linker.h HAL/inc/alt_types.h HAL/inc/sys/alt_irq.h \ + HAL/inc/nios2.h HAL/inc/alt_types.h system.h \ + HAL/inc/priv/alt_iic_isr_register.h HAL/inc/alt_types.h \ + HAL/inc/sys/alt_irq.h HAL/inc/sys/alt_irq_entry.h \ + HAL/inc/priv/alt_irq_table.h + +system.h: + +linker.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +HAL/inc/priv/alt_iic_isr_register.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_irq.h: + +HAL/inc/sys/alt_irq_entry.h: + +HAL/inc/priv/alt_irq_table.h: diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_iic_isr_register.o b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_iic_isr_register.o new file mode 100644 index 0000000..67a8499 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_iic_isr_register.o Binary files differ diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_instruction_exception_entry.d b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_instruction_exception_entry.d new file mode 100644 index 0000000..6d0705f --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_instruction_exception_entry.d @@ -0,0 +1,18 @@ +obj/HAL/src/alt_instruction_exception_entry.o: \ + HAL/src/alt_instruction_exception_entry.c HAL/inc/sys/alt_exceptions.h \ + HAL/inc/alt_types.h system.h linker.h HAL/inc/nios2.h \ + HAL/inc/alt_types.h system.h + +HAL/inc/sys/alt_exceptions.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_instruction_exception_entry.o b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_instruction_exception_entry.o new file mode 100644 index 0000000..b0e4223 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_instruction_exception_entry.o Binary files differ diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_instruction_exception_register.d b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_instruction_exception_register.d new file mode 100644 index 0000000..d4fac04 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_instruction_exception_register.d @@ -0,0 +1,16 @@ +obj/HAL/src/alt_instruction_exception_register.o: \ + HAL/src/alt_instruction_exception_register.c \ + HAL/inc/sys/alt_exceptions.h HAL/inc/alt_types.h system.h linker.h \ + HAL/inc/alt_types.h system.h + +HAL/inc/sys/alt_exceptions.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: + +HAL/inc/alt_types.h: + +system.h: diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_instruction_exception_register.o b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_instruction_exception_register.o new file mode 100644 index 0000000..c8f1b3e --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_instruction_exception_register.o Binary files differ diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_io_redirect.d b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_io_redirect.d new file mode 100644 index 0000000..8228365 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_io_redirect.d @@ -0,0 +1,29 @@ +obj/HAL/src/alt_io_redirect.o: HAL/src/alt_io_redirect.c \ + HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h HAL/inc/priv/alt_file.h \ + HAL/inc/sys/alt_dev.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_io_redirect.o b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_io_redirect.o new file mode 100644 index 0000000..c218d7c --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_io_redirect.o Binary files differ diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_ioctl.d b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_ioctl.d new file mode 100644 index 0000000..d70ad97 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_ioctl.d @@ -0,0 +1,41 @@ +obj/HAL/src/alt_ioctl.o: HAL/src/alt_ioctl.c HAL/inc/sys/ioctl.h \ + HAL/inc/sys/alt_errno.h HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h \ + HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h system.h linker.h \ + HAL/inc/sys/alt_llist.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h HAL/inc/os/alt_syscall.h system.h \ + HAL/inc/sys/alt_driver.h + +HAL/inc/sys/ioctl.h: + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_syscall.h: + +system.h: + +HAL/inc/sys/alt_driver.h: diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_ioctl.o b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_ioctl.o new file mode 100644 index 0000000..8268c2b --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_ioctl.o Binary files differ diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_irq_entry.d b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_irq_entry.d new file mode 100644 index 0000000..9ec3751 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_irq_entry.d @@ -0,0 +1,5 @@ +obj/HAL/src/alt_irq_entry.o: HAL/src/alt_irq_entry.S system.h linker.h + +system.h: + +linker.h: diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_irq_entry.o b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_irq_entry.o new file mode 100644 index 0000000..3c577f7 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_irq_entry.o Binary files differ diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_irq_handler.d b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_irq_handler.d new file mode 100644 index 0000000..6fb668f --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_irq_handler.d @@ -0,0 +1,19 @@ +obj/HAL/src/alt_irq_handler.o: HAL/src/alt_irq_handler.c system.h \ + linker.h HAL/inc/sys/alt_irq.h HAL/inc/nios2.h HAL/inc/alt_types.h \ + system.h HAL/inc/os/alt_hooks.h HAL/inc/alt_types.h + +system.h: + +linker.h: + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +HAL/inc/os/alt_hooks.h: + +HAL/inc/alt_types.h: diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_irq_handler.o b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_irq_handler.o new file mode 100644 index 0000000..35305a9 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_irq_handler.o Binary files differ diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_irq_register.d b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_irq_register.d new file mode 100644 index 0000000..3df2f8a --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_irq_register.d @@ -0,0 +1,36 @@ +obj/HAL/src/alt_irq_register.o: HAL/src/alt_irq_register.c system.h \ + linker.h HAL/inc/sys/alt_irq.h HAL/inc/nios2.h HAL/inc/alt_types.h \ + system.h HAL/inc/priv/alt_legacy_irq.h system.h HAL/inc/nios2.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_irq.h HAL/inc/os/alt_hooks.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_irq_entry.h \ + HAL/inc/priv/alt_irq_table.h + +system.h: + +linker.h: + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +HAL/inc/priv/alt_legacy_irq.h: + +system.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_irq.h: + +HAL/inc/os/alt_hooks.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_irq_entry.h: + +HAL/inc/priv/alt_irq_table.h: diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_irq_register.o b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_irq_register.o new file mode 100644 index 0000000..e2a9deb --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_irq_register.o Binary files differ diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_irq_vars.d b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_irq_vars.d new file mode 100644 index 0000000..f316558 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_irq_vars.d @@ -0,0 +1,8 @@ +obj/HAL/src/alt_irq_vars.o: HAL/src/alt_irq_vars.c HAL/inc/alt_types.h \ + system.h linker.h + +HAL/inc/alt_types.h: + +system.h: + +linker.h: diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_irq_vars.o b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_irq_vars.o new file mode 100644 index 0000000..6b89096 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_irq_vars.o Binary files differ diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_isatty.d b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_isatty.d new file mode 100644 index 0000000..f8b1f07 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_isatty.d @@ -0,0 +1,38 @@ +obj/HAL/src/alt_isatty.o: HAL/src/alt_isatty.c HAL/inc/sys/alt_dev.h \ + system.h linker.h HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_errno.h HAL/inc/sys/alt_warning.h \ + HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h HAL/inc/os/alt_syscall.h system.h + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_errno.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_syscall.h: + +system.h: diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_isatty.o b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_isatty.o new file mode 100644 index 0000000..b2850ac --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_isatty.o Binary files differ diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_kill.d b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_kill.d new file mode 100644 index 0000000..0c14ae8 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_kill.d @@ -0,0 +1,8 @@ +obj/HAL/src/alt_kill.o: HAL/src/alt_kill.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_kill.o b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_kill.o new file mode 100644 index 0000000..322e2a3 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_kill.o Binary files differ diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_link.d b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_link.d new file mode 100644 index 0000000..dc844c6 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_link.d @@ -0,0 +1,10 @@ +obj/HAL/src/alt_link.o: HAL/src/alt_link.c HAL/inc/sys/alt_warning.h \ + HAL/inc/sys/alt_errno.h HAL/inc/alt_types.h HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_warning.h: + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_link.o b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_link.o new file mode 100644 index 0000000..7b17419 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_link.o Binary files differ diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_load.d b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_load.d new file mode 100644 index 0000000..d496ab8 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_load.d @@ -0,0 +1,8 @@ +obj/HAL/src/alt_load.o: HAL/src/alt_load.c HAL/inc/sys/alt_load.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_cache.h + +HAL/inc/sys/alt_load.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_cache.h: diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_load.o b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_load.o new file mode 100644 index 0000000..0cf966d --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_load.o Binary files differ diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_log_macro.d b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_log_macro.d new file mode 100644 index 0000000..9768c1f --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_log_macro.d @@ -0,0 +1 @@ +obj/HAL/src/alt_log_macro.o: HAL/src/alt_log_macro.S diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_log_macro.o b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_log_macro.o new file mode 100644 index 0000000..489e2cc --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_log_macro.o Binary files differ diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_log_printf.d b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_log_printf.d new file mode 100644 index 0000000..251ff6d --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_log_printf.d @@ -0,0 +1 @@ +obj/HAL/src/alt_log_printf.o: HAL/src/alt_log_printf.c diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_log_printf.o b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_log_printf.o new file mode 100644 index 0000000..a03c33d --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_log_printf.o Binary files differ diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_lseek.d b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_lseek.d new file mode 100644 index 0000000..25ed783 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_lseek.d @@ -0,0 +1,34 @@ +obj/HAL/src/alt_lseek.o: HAL/src/alt_lseek.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h HAL/inc/priv/alt_file.h \ + HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h \ + HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_lseek.o b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_lseek.o new file mode 100644 index 0000000..68ca2aa --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_lseek.o Binary files differ diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_main.d b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_main.d new file mode 100644 index 0000000..afdfda0 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_main.d @@ -0,0 +1,47 @@ +obj/HAL/src/alt_main.o: HAL/src/alt_main.c HAL/inc/sys/alt_dev.h system.h \ + linker.h HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_sys_init.h HAL/inc/sys/alt_irq.h \ + HAL/inc/nios2.h HAL/inc/os/alt_hooks.h HAL/inc/priv/alt_file.h \ + HAL/inc/sys/alt_dev.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h \ + HAL/inc/alt_types.h system.h HAL/inc/sys/alt_log_printf.h system.h + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_sys_init.h: + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/os/alt_hooks.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/alt_types.h: + +system.h: + +HAL/inc/sys/alt_log_printf.h: + +system.h: diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_main.o b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_main.o new file mode 100644 index 0000000..73a4506 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_main.o Binary files differ diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_malloc_lock.d b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_malloc_lock.d new file mode 100644 index 0000000..4ed35c2 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_malloc_lock.d @@ -0,0 +1 @@ +obj/HAL/src/alt_malloc_lock.o: HAL/src/alt_malloc_lock.c diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_malloc_lock.o b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_malloc_lock.o new file mode 100644 index 0000000..9a6b8f5 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_malloc_lock.o Binary files differ diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_mcount.d b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_mcount.d new file mode 100644 index 0000000..1203efc --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_mcount.d @@ -0,0 +1 @@ +obj/HAL/src/alt_mcount.o: HAL/src/alt_mcount.S diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_mcount.o b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_mcount.o new file mode 100644 index 0000000..011e43f --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_mcount.o Binary files differ diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_open.d b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_open.d new file mode 100644 index 0000000..a2aacd9 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_open.d @@ -0,0 +1,36 @@ +obj/HAL/src/alt_open.o: HAL/src/alt_open.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h HAL/inc/priv/alt_file.h \ + HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h \ + HAL/inc/alt_types.h HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_open.o b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_open.o new file mode 100644 index 0000000..1a29bb7 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_open.o Binary files differ diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_printf.d b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_printf.d new file mode 100644 index 0000000..3ce68a4 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_printf.d @@ -0,0 +1,3 @@ +obj/HAL/src/alt_printf.o: HAL/src/alt_printf.c HAL/inc/sys/alt_stdio.h + +HAL/inc/sys/alt_stdio.h: diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_printf.o b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_printf.o new file mode 100644 index 0000000..762bc54 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_printf.o Binary files differ diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_putchar.d b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_putchar.d new file mode 100644 index 0000000..9a0dde3 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_putchar.d @@ -0,0 +1,10 @@ +obj/HAL/src/alt_putchar.o: HAL/src/alt_putchar.c system.h linker.h \ + HAL/inc/sys/alt_driver.h HAL/inc/sys/alt_stdio.h + +system.h: + +linker.h: + +HAL/inc/sys/alt_driver.h: + +HAL/inc/sys/alt_stdio.h: diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_putchar.o b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_putchar.o new file mode 100644 index 0000000..5c4ea77 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_putchar.o Binary files differ diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_putstr.d b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_putstr.d new file mode 100644 index 0000000..3cf528a --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_putstr.d @@ -0,0 +1,10 @@ +obj/HAL/src/alt_putstr.o: HAL/src/alt_putstr.c system.h linker.h \ + HAL/inc/sys/alt_driver.h HAL/inc/sys/alt_stdio.h + +system.h: + +linker.h: + +HAL/inc/sys/alt_driver.h: + +HAL/inc/sys/alt_stdio.h: diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_putstr.o b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_putstr.o new file mode 100644 index 0000000..265b04e --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_putstr.o Binary files differ diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_read.d b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_read.d new file mode 100644 index 0000000..2bb0d95 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_read.d @@ -0,0 +1,38 @@ +obj/HAL/src/alt_read.o: HAL/src/alt_read.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h HAL/inc/priv/alt_file.h \ + HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h \ + HAL/inc/os/alt_syscall.h system.h HAL/inc/sys/alt_driver.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_syscall.h: + +system.h: + +HAL/inc/sys/alt_driver.h: diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_read.o b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_read.o new file mode 100644 index 0000000..1c33078 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_read.o Binary files differ diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_release_fd.d b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_release_fd.d new file mode 100644 index 0000000..0e3acb5 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_release_fd.d @@ -0,0 +1,29 @@ +obj/HAL/src/alt_release_fd.o: HAL/src/alt_release_fd.c \ + HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h HAL/inc/priv/alt_file.h \ + HAL/inc/sys/alt_dev.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_release_fd.o b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_release_fd.o new file mode 100644 index 0000000..ae0bf58 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_release_fd.o Binary files differ diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_remap_cached.d b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_remap_cached.d new file mode 100644 index 0000000..b5fb151 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_remap_cached.d @@ -0,0 +1,10 @@ +obj/HAL/src/alt_remap_cached.o: HAL/src/alt_remap_cached.c \ + HAL/inc/sys/alt_cache.h HAL/inc/alt_types.h system.h linker.h + +HAL/inc/sys/alt_cache.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_remap_cached.o b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_remap_cached.o new file mode 100644 index 0000000..e46c498 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_remap_cached.o Binary files differ diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_remap_uncached.d b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_remap_uncached.d new file mode 100644 index 0000000..0423405 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_remap_uncached.d @@ -0,0 +1,10 @@ +obj/HAL/src/alt_remap_uncached.o: HAL/src/alt_remap_uncached.c \ + HAL/inc/sys/alt_cache.h HAL/inc/alt_types.h system.h linker.h + +HAL/inc/sys/alt_cache.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_remap_uncached.o b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_remap_uncached.o new file mode 100644 index 0000000..893ead6 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_remap_uncached.o Binary files differ diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_rename.d b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_rename.d new file mode 100644 index 0000000..b7af4b2 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_rename.d @@ -0,0 +1,10 @@ +obj/HAL/src/alt_rename.o: HAL/src/alt_rename.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_rename.o b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_rename.o new file mode 100644 index 0000000..01058df --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_rename.o Binary files differ diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_sbrk.d b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_sbrk.d new file mode 100644 index 0000000..a0771ae --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_sbrk.d @@ -0,0 +1,19 @@ +obj/HAL/src/alt_sbrk.o: HAL/src/alt_sbrk.c HAL/inc/os/alt_syscall.h \ + HAL/inc/sys/alt_irq.h HAL/inc/nios2.h HAL/inc/alt_types.h system.h \ + linker.h HAL/inc/sys/alt_stack.h system.h + +HAL/inc/os/alt_syscall.h: + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_stack.h: + +system.h: diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_sbrk.o b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_sbrk.o new file mode 100644 index 0000000..1636400 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_sbrk.o Binary files differ diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_settod.d b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_settod.d new file mode 100644 index 0000000..56718d5 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_settod.d @@ -0,0 +1,17 @@ +obj/HAL/src/alt_settod.o: HAL/src/alt_settod.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_alarm.h HAL/inc/alt_types.h HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_settod.o b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_settod.o new file mode 100644 index 0000000..4bb81d0 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_settod.o Binary files differ diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_software_exception.d b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_software_exception.d new file mode 100644 index 0000000..fab4023 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_software_exception.d @@ -0,0 +1,6 @@ +obj/HAL/src/alt_software_exception.o: HAL/src/alt_software_exception.S \ + system.h linker.h + +system.h: + +linker.h: diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_software_exception.o b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_software_exception.o new file mode 100644 index 0000000..f9e01c2 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_software_exception.o Binary files differ diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_stat.d b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_stat.d new file mode 100644 index 0000000..8a63c27 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_stat.d @@ -0,0 +1,3 @@ +obj/HAL/src/alt_stat.o: HAL/src/alt_stat.c HAL/inc/os/alt_syscall.h + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_stat.o b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_stat.o new file mode 100644 index 0000000..70cfe9f --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_stat.o Binary files differ diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_tick.d b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_tick.d new file mode 100644 index 0000000..ddbb281 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_tick.d @@ -0,0 +1,27 @@ +obj/HAL/src/alt_tick.o: HAL/src/alt_tick.c HAL/inc/sys/alt_irq.h \ + HAL/inc/nios2.h HAL/inc/alt_types.h system.h linker.h \ + HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_alarm.h HAL/inc/alt_types.h HAL/inc/os/alt_hooks.h \ + HAL/inc/alt_types.h + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_hooks.h: + +HAL/inc/alt_types.h: diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_tick.o b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_tick.o new file mode 100644 index 0000000..66a74b0 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_tick.o Binary files differ diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_times.d b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_times.d new file mode 100644 index 0000000..4bad83d --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_times.d @@ -0,0 +1,17 @@ +obj/HAL/src/alt_times.o: HAL/src/alt_times.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_alarm.h HAL/inc/alt_types.h HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_times.o b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_times.o new file mode 100644 index 0000000..de730d4 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_times.o Binary files differ diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_uncached_free.d b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_uncached_free.d new file mode 100644 index 0000000..d74ef4b --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_uncached_free.d @@ -0,0 +1,10 @@ +obj/HAL/src/alt_uncached_free.o: HAL/src/alt_uncached_free.c \ + HAL/inc/sys/alt_cache.h HAL/inc/alt_types.h system.h linker.h + +HAL/inc/sys/alt_cache.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_uncached_free.o b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_uncached_free.o new file mode 100644 index 0000000..a7c9902 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_uncached_free.o Binary files differ diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_uncached_malloc.d b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_uncached_malloc.d new file mode 100644 index 0000000..16799fb --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_uncached_malloc.d @@ -0,0 +1,10 @@ +obj/HAL/src/alt_uncached_malloc.o: HAL/src/alt_uncached_malloc.c \ + HAL/inc/sys/alt_cache.h HAL/inc/alt_types.h system.h linker.h + +HAL/inc/sys/alt_cache.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_uncached_malloc.o b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_uncached_malloc.o new file mode 100644 index 0000000..1921159 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_uncached_malloc.o Binary files differ diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_unlink.d b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_unlink.d new file mode 100644 index 0000000..0205f86 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_unlink.d @@ -0,0 +1,10 @@ +obj/HAL/src/alt_unlink.o: HAL/src/alt_unlink.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_unlink.o b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_unlink.o new file mode 100644 index 0000000..c21d281 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_unlink.o Binary files differ diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_usleep.d b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_usleep.d new file mode 100644 index 0000000..b5eca45 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_usleep.d @@ -0,0 +1,6 @@ +obj/HAL/src/alt_usleep.o: HAL/src/alt_usleep.c \ + HAL/inc/priv/alt_busy_sleep.h HAL/inc/os/alt_syscall.h + +HAL/inc/priv/alt_busy_sleep.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_usleep.o b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_usleep.o new file mode 100644 index 0000000..4df2a79 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_usleep.o Binary files differ diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_wait.d b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_wait.d new file mode 100644 index 0000000..f47f5df --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_wait.d @@ -0,0 +1,8 @@ +obj/HAL/src/alt_wait.o: HAL/src/alt_wait.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_wait.o b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_wait.o new file mode 100644 index 0000000..bf409cf --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_wait.o Binary files differ diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_write.d b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_write.d new file mode 100644 index 0000000..2b54a68 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_write.d @@ -0,0 +1,41 @@ +obj/HAL/src/alt_write.o: HAL/src/alt_write.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h HAL/inc/priv/alt_file.h \ + HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h \ + HAL/inc/os/alt_syscall.h HAL/inc/sys/alt_log_printf.h system.h \ + HAL/inc/sys/alt_driver.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_syscall.h: + +HAL/inc/sys/alt_log_printf.h: + +system.h: + +HAL/inc/sys/alt_driver.h: diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_write.o b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_write.o new file mode 100644 index 0000000..b09418b --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/alt_write.o Binary files differ diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/altera_nios2_qsys_irq.d b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/altera_nios2_qsys_irq.d new file mode 100644 index 0000000..47bdd9c --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/altera_nios2_qsys_irq.d @@ -0,0 +1,15 @@ +obj/HAL/src/altera_nios2_qsys_irq.o: HAL/src/altera_nios2_qsys_irq.c \ + HAL/inc/sys/alt_irq.h HAL/inc/nios2.h HAL/inc/alt_types.h system.h \ + linker.h HAL/inc/altera_nios2_qsys_irq.h + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: + +HAL/inc/altera_nios2_qsys_irq.h: diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/altera_nios2_qsys_irq.o b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/altera_nios2_qsys_irq.o new file mode 100644 index 0000000..b6621f5 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/altera_nios2_qsys_irq.o Binary files differ diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/crt0.d b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/crt0.d new file mode 100644 index 0000000..3af0bb0 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/crt0.d @@ -0,0 +1,12 @@ +obj/HAL/src/crt0.o: HAL/src/crt0.S system.h linker.h HAL/inc/nios2.h \ + HAL/inc/sys/alt_log_printf.h system.h + +system.h: + +linker.h: + +HAL/inc/nios2.h: + +HAL/inc/sys/alt_log_printf.h: + +system.h: diff --git a/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/crt0.o b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/crt0.o new file mode 100644 index 0000000..b55bc71 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/HAL/src/crt0.o Binary files differ diff --git a/software/qsys_tutorial_switchs18_bsp/obj/alt_sys_init.d b/software/qsys_tutorial_switchs18_bsp/obj/alt_sys_init.d new file mode 100644 index 0000000..2087a7a --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/alt_sys_init.d @@ -0,0 +1,54 @@ +obj/alt_sys_init.o: alt_sys_init.c system.h linker.h \ + HAL/inc/sys/alt_irq.h HAL/inc/nios2.h HAL/inc/alt_types.h system.h \ + HAL/inc/sys/alt_sys_init.h HAL/inc/altera_nios2_qsys_irq.h \ + drivers/inc/altera_avalon_jtag_uart.h HAL/inc/sys/alt_alarm.h \ + HAL/inc/sys/alt_llist.h HAL/inc/priv/alt_alarm.h HAL/inc/alt_types.h \ + HAL/inc/sys/alt_warning.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h HAL/inc/os/alt_flag.h \ + drivers/inc/altera_avalon_jtag_uart_fd.h HAL/inc/sys/alt_dev.h \ + HAL/inc/sys/alt_llist.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h + +system.h: + +linker.h: + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +HAL/inc/sys/alt_sys_init.h: + +HAL/inc/altera_nios2_qsys_irq.h: + +drivers/inc/altera_avalon_jtag_uart.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_flag.h: + +drivers/inc/altera_avalon_jtag_uart_fd.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: diff --git a/software/qsys_tutorial_switchs18_bsp/obj/alt_sys_init.o b/software/qsys_tutorial_switchs18_bsp/obj/alt_sys_init.o new file mode 100644 index 0000000..986ac14 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/alt_sys_init.o Binary files differ diff --git a/software/qsys_tutorial_switchs18_bsp/obj/drivers/src/altera_avalon_jtag_uart_fd.d b/software/qsys_tutorial_switchs18_bsp/obj/drivers/src/altera_avalon_jtag_uart_fd.d new file mode 100644 index 0000000..b152697 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/drivers/src/altera_avalon_jtag_uart_fd.d @@ -0,0 +1,48 @@ +obj/drivers/src/altera_avalon_jtag_uart_fd.o: \ + drivers/src/altera_avalon_jtag_uart_fd.c HAL/inc/alt_types.h \ + HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ + drivers/inc/altera_avalon_jtag_uart.h HAL/inc/sys/alt_alarm.h \ + HAL/inc/sys/alt_llist.h HAL/inc/priv/alt_alarm.h \ + HAL/inc/sys/alt_warning.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h HAL/inc/os/alt_flag.h \ + drivers/inc/altera_avalon_jtag_uart_fd.h HAL/inc/sys/alt_dev.h + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +drivers/inc/altera_avalon_jtag_uart.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_flag.h: + +drivers/inc/altera_avalon_jtag_uart_fd.h: + +HAL/inc/sys/alt_dev.h: diff --git a/software/qsys_tutorial_switchs18_bsp/obj/drivers/src/altera_avalon_jtag_uart_fd.o b/software/qsys_tutorial_switchs18_bsp/obj/drivers/src/altera_avalon_jtag_uart_fd.o new file mode 100644 index 0000000..8ff164b --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/drivers/src/altera_avalon_jtag_uart_fd.o Binary files differ diff --git a/software/qsys_tutorial_switchs18_bsp/obj/drivers/src/altera_avalon_jtag_uart_init.d b/software/qsys_tutorial_switchs18_bsp/obj/drivers/src/altera_avalon_jtag_uart_init.d new file mode 100644 index 0000000..f9460a1 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/drivers/src/altera_avalon_jtag_uart_init.d @@ -0,0 +1,66 @@ +obj/drivers/src/altera_avalon_jtag_uart_init.o: \ + drivers/src/altera_avalon_jtag_uart_init.c HAL/inc/sys/alt_irq.h \ + HAL/inc/nios2.h HAL/inc/alt_types.h system.h linker.h \ + HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_alarm.h HAL/inc/alt_types.h HAL/inc/sys/ioctl.h \ + HAL/inc/alt_types.h drivers/inc/altera_avalon_jtag_uart_regs.h \ + HAL/inc/io.h HAL/inc/alt_types.h drivers/inc/altera_avalon_jtag_uart.h \ + HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_warning.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h HAL/inc/os/alt_flag.h \ + drivers/inc/altera_avalon_jtag_uart_fd.h HAL/inc/sys/alt_dev.h \ + HAL/inc/sys/alt_llist.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h HAL/inc/sys/alt_log_printf.h system.h + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/ioctl.h: + +HAL/inc/alt_types.h: + +drivers/inc/altera_avalon_jtag_uart_regs.h: + +HAL/inc/io.h: + +HAL/inc/alt_types.h: + +drivers/inc/altera_avalon_jtag_uart.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_flag.h: + +drivers/inc/altera_avalon_jtag_uart_fd.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/sys/alt_log_printf.h: + +system.h: diff --git a/software/qsys_tutorial_switchs18_bsp/obj/drivers/src/altera_avalon_jtag_uart_init.o b/software/qsys_tutorial_switchs18_bsp/obj/drivers/src/altera_avalon_jtag_uart_init.o new file mode 100644 index 0000000..c029c3c --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/drivers/src/altera_avalon_jtag_uart_init.o Binary files differ diff --git a/software/qsys_tutorial_switchs18_bsp/obj/drivers/src/altera_avalon_jtag_uart_ioctl.d b/software/qsys_tutorial_switchs18_bsp/obj/drivers/src/altera_avalon_jtag_uart_ioctl.d new file mode 100644 index 0000000..d75a559 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/drivers/src/altera_avalon_jtag_uart_ioctl.d @@ -0,0 +1,58 @@ +obj/drivers/src/altera_avalon_jtag_uart_ioctl.o: \ + drivers/src/altera_avalon_jtag_uart_ioctl.c HAL/inc/sys/ioctl.h \ + HAL/inc/alt_types.h drivers/inc/altera_avalon_jtag_uart_regs.h \ + HAL/inc/io.h HAL/inc/alt_types.h drivers/inc/altera_avalon_jtag_uart.h \ + HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ + HAL/inc/priv/alt_alarm.h HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h \ + HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h HAL/inc/os/alt_flag.h \ + drivers/inc/altera_avalon_jtag_uart_fd.h HAL/inc/sys/alt_dev.h system.h \ + linker.h HAL/inc/sys/alt_llist.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h HAL/inc/sys/alt_log_printf.h system.h + +HAL/inc/sys/ioctl.h: + +HAL/inc/alt_types.h: + +drivers/inc/altera_avalon_jtag_uart_regs.h: + +HAL/inc/io.h: + +HAL/inc/alt_types.h: + +drivers/inc/altera_avalon_jtag_uart.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_flag.h: + +drivers/inc/altera_avalon_jtag_uart_fd.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/sys/alt_log_printf.h: + +system.h: diff --git a/software/qsys_tutorial_switchs18_bsp/obj/drivers/src/altera_avalon_jtag_uart_ioctl.o b/software/qsys_tutorial_switchs18_bsp/obj/drivers/src/altera_avalon_jtag_uart_ioctl.o new file mode 100644 index 0000000..8999b64 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/drivers/src/altera_avalon_jtag_uart_ioctl.o Binary files differ diff --git a/software/qsys_tutorial_switchs18_bsp/obj/drivers/src/altera_avalon_jtag_uart_read.d b/software/qsys_tutorial_switchs18_bsp/obj/drivers/src/altera_avalon_jtag_uart_read.d new file mode 100644 index 0000000..9a4846a --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/drivers/src/altera_avalon_jtag_uart_read.d @@ -0,0 +1,66 @@ +obj/drivers/src/altera_avalon_jtag_uart_read.o: \ + drivers/src/altera_avalon_jtag_uart_read.c HAL/inc/sys/alt_irq.h \ + HAL/inc/nios2.h HAL/inc/alt_types.h system.h linker.h \ + HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_alarm.h HAL/inc/alt_types.h HAL/inc/sys/ioctl.h \ + HAL/inc/alt_types.h drivers/inc/altera_avalon_jtag_uart_regs.h \ + HAL/inc/io.h HAL/inc/alt_types.h drivers/inc/altera_avalon_jtag_uart.h \ + HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_warning.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h HAL/inc/os/alt_flag.h \ + drivers/inc/altera_avalon_jtag_uart_fd.h HAL/inc/sys/alt_dev.h \ + HAL/inc/sys/alt_llist.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h HAL/inc/sys/alt_log_printf.h system.h + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/ioctl.h: + +HAL/inc/alt_types.h: + +drivers/inc/altera_avalon_jtag_uart_regs.h: + +HAL/inc/io.h: + +HAL/inc/alt_types.h: + +drivers/inc/altera_avalon_jtag_uart.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_flag.h: + +drivers/inc/altera_avalon_jtag_uart_fd.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/sys/alt_log_printf.h: + +system.h: diff --git a/software/qsys_tutorial_switchs18_bsp/obj/drivers/src/altera_avalon_jtag_uart_read.o b/software/qsys_tutorial_switchs18_bsp/obj/drivers/src/altera_avalon_jtag_uart_read.o new file mode 100644 index 0000000..ae790c0 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/drivers/src/altera_avalon_jtag_uart_read.o Binary files differ diff --git a/software/qsys_tutorial_switchs18_bsp/obj/drivers/src/altera_avalon_jtag_uart_write.d b/software/qsys_tutorial_switchs18_bsp/obj/drivers/src/altera_avalon_jtag_uart_write.d new file mode 100644 index 0000000..5518b7f --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/drivers/src/altera_avalon_jtag_uart_write.d @@ -0,0 +1,66 @@ +obj/drivers/src/altera_avalon_jtag_uart_write.o: \ + drivers/src/altera_avalon_jtag_uart_write.c HAL/inc/sys/alt_irq.h \ + HAL/inc/nios2.h HAL/inc/alt_types.h system.h linker.h \ + HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_alarm.h HAL/inc/alt_types.h HAL/inc/sys/ioctl.h \ + HAL/inc/alt_types.h drivers/inc/altera_avalon_jtag_uart_regs.h \ + HAL/inc/io.h HAL/inc/alt_types.h drivers/inc/altera_avalon_jtag_uart.h \ + HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_warning.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h HAL/inc/os/alt_flag.h \ + drivers/inc/altera_avalon_jtag_uart_fd.h HAL/inc/sys/alt_dev.h \ + HAL/inc/sys/alt_llist.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h HAL/inc/sys/alt_log_printf.h system.h + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/ioctl.h: + +HAL/inc/alt_types.h: + +drivers/inc/altera_avalon_jtag_uart_regs.h: + +HAL/inc/io.h: + +HAL/inc/alt_types.h: + +drivers/inc/altera_avalon_jtag_uart.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_flag.h: + +drivers/inc/altera_avalon_jtag_uart_fd.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/sys/alt_log_printf.h: + +system.h: diff --git a/software/qsys_tutorial_switchs18_bsp/obj/drivers/src/altera_avalon_jtag_uart_write.o b/software/qsys_tutorial_switchs18_bsp/obj/drivers/src/altera_avalon_jtag_uart_write.o new file mode 100644 index 0000000..1d981f7 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/obj/drivers/src/altera_avalon_jtag_uart_write.o Binary files differ diff --git a/software/qsys_tutorial_switchs18_bsp/public.mk b/software/qsys_tutorial_switchs18_bsp/public.mk new file mode 100644 index 0000000..5eb883d --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/public.mk @@ -0,0 +1,385 @@ +#------------------------------------------------------------------------------ +# BSP "PUBLIC" MAKEFILE CONTENT +# +# This file is intended to be included in an application or library +# Makefile that is using this BSP. You can create such a Makefile with +# the nios2-app-generate-makefile or nios2-lib-generate-makefile +# commands. +# +# The following variables must be defined before including this file: +# +# ALT_LIBRARY_ROOT_DIR +# Contains the path to the BSP top-level (aka root) directory +#------------------------------------------------------------------------------ + +#------------------------------------------------------------------------------ +# PATHS +#------------------------------------------------------------------------------ + + + +# Path to the provided linker script. +BSP_LINKER_SCRIPT := $(ALT_LIBRARY_ROOT_DIR)/linker.x + +# Include paths: +# The path to root of all header files that a library wishes to make +# available for an application's use is specified here. Note that this +# may not be *all* folders within a hierarchy. For example, if it is +# desired that the application developer type: +# #include +# #include +# With files laid out like this: +# /inc/sockets.h +# /inc/ip/tcpip.h +# +# Then, only /inc need be added to the list of include +# directories. Alternatively, if you wish to be able to directly include +# all files in a hierarchy, separate paths to each folder in that +# hierarchy must be defined. + +# The following are the "base" set of include paths for a BSP. +# These paths are appended to the list that individual software +# components, drivers, etc., add in the generated portion of this +# file (below). +ALT_INCLUDE_DIRS_TO_APPEND += \ + $(ALT_LIBRARY_ROOT_DIR) \ + $(ALT_LIBRARY_ROOT_DIR)/drivers/inc + +# Additions to linker library search-path: +# Here we provide a path to "our self" for the application to construct a +# "-L " out of. This should contain a list of directories, +# relative to the library root, of all directories with .a files to link +# against. +ALT_LIBRARY_DIRS += $(ALT_LIBRARY_ROOT_DIR) + + +#------------------------------------------------------------------------------ +# COMPILATION FLAGS +#------------------------------------------------------------------------------ +# Default C pre-processor flags for a BSP: +ALT_CPPFLAGS += -DSYSTEM_BUS_WIDTH=32 \ + -pipe + + +#------------------------------------------------------------------------------ +# MANAGED CONTENT +# +# All content between the lines "START MANAGED" and "END MANAGED" below is +# generated based on variables in the BSP settings file when the +# nios2-bsp-generate-files command is invoked. If you wish to persist any +# information pertaining to the build process, it is recomended that you +# utilize the BSP settings mechanism to do so. +#------------------------------------------------------------------------------ +#START MANAGED + +# The following TYPE comment allows tools to identify the 'type' of target this +# makefile is associated with. +# TYPE: BSP_PUBLIC_MAKEFILE + +# This following VERSION comment indicates the version of the tool used to +# generate this makefile. A makefile variable is provided for VERSION as well. +# ACDS_VERSION: 13.0sp1 +ACDS_VERSION := 13.0sp1 + +# This following BUILD_NUMBER comment indicates the build number of the tool +# used to generate this makefile. +# BUILD_NUMBER: 232 + +# Qsys--generated SOPCINFO file. Required for resolving node instance ID's with +# design component names. +SOPCINFO_FILE := C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.sopcinfo + +# Big-Endian operation. +# setting BIG_ENDIAN is false +ALT_CFLAGS += -EL + +# Path to the provided C language runtime initialization code. +BSP_CRT0 := $(ALT_LIBRARY_ROOT_DIR)/obj/HAL/src/crt0.o + +# Name of BSP library as provided to linker using the "-msys-lib" flag or +# linker script GROUP command. +# setting BSP_SYS_LIB is hal_bsp +BSP_SYS_LIB := hal_bsp +ELF_PATCH_FLAG += --thread_model hal + +# Type identifier of the BSP library +# setting BSP_TYPE is hal +ALT_CPPFLAGS += -D__hal__ +BSP_TYPE := hal + +# CPU Name +# setting CPU_NAME is nios2_processor +CPU_NAME = nios2_processor +ELF_PATCH_FLAG += --cpu_name $(CPU_NAME) + +# Hardware Divider present. +# setting HARDWARE_DIVIDE is false +ALT_CFLAGS += -mno-hw-div + +# Hardware Multiplier present. +# setting HARDWARE_MULTIPLY is false +ALT_CFLAGS += -mno-hw-mul + +# Hardware Mulx present. +# setting HARDWARE_MULX is false +ALT_CFLAGS += -mno-hw-mulx + +# Debug Core present. +# setting HAS_DEBUG_CORE is true +CPU_HAS_DEBUG_CORE = 1 + +# Qsys generated design +# setting QSYS is 1 +QSYS := 1 +ELF_PATCH_FLAG += --qsys true + +# Design Name +# setting SOPC_NAME is nios_system +SOPC_NAME := nios_system + +# SopcBuilder Simulation Enabled +# setting SOPC_SIMULATION_ENABLED is false +ELF_PATCH_FLAG += --simulation_enabled false + +# Enable JTAG UART driver to recover when host is inactive causing buffer to +# full without returning error. Printf will not fail with this recovery. none +# setting altera_avalon_jtag_uart_driver.enable_jtag_uart_ignore_fifo_full_error is false + +# Small-footprint (polled mode) driver none +# setting altera_avalon_jtag_uart_driver.enable_small_driver is false + +# Build a custom version of newlib with the specified space-separated compiler +# flags. The custom newlib build will be placed in the <bsp root>/newlib +# directory, and will be used only for applications that utilize this BSP. +# setting hal.custom_newlib_flags is none + +# Enable support for a subset of the C++ language. This option increases code +# footprint by adding support for C++ constructors. Certain features, such as +# multiple inheritance and exceptions are not supported. If false, adds +# -DALT_NO_C_PLUS_PLUS to ALT_CPPFLAGS in public.mk, and reduces code +# footprint. none +# setting hal.enable_c_plus_plus is false +ALT_CPPFLAGS += -DALT_NO_C_PLUS_PLUS + +# When your application exits, close file descriptors, call C++ destructors, +# etc. Code footprint can be reduced by disabling clean exit. If disabled, adds +# -DALT_NO_CLEAN_EXIT to ALT_CPPFLAGS and -Wl,--defsym, exit=_exit to +# ALT_LDFLAGS in public.mk. none +# setting hal.enable_clean_exit is false +ALT_CPPFLAGS += -DALT_NO_CLEAN_EXIT +ALT_LDFLAGS += -Wl,--defsym,exit=_exit + +# Add exit() support. This option increases code footprint if your "main()" +# routine does "return" or call "exit()". If false, adds -DALT_NO_EXIT to +# ALT_CPPFLAGS in public.mk, and reduces footprint none +# setting hal.enable_exit is false +ALT_CPPFLAGS += -DALT_NO_EXIT + +# Causes code to be compiled with gprof profiling enabled and the application +# ELF to be linked with the GPROF library. If true, adds -DALT_PROVIDE_GMON to +# ALT_CPPFLAGS and -pg to ALT_CFLAGS in public.mk. none +# setting hal.enable_gprof is false + +# Enables lightweight device driver API. This reduces code and data footprint +# by removing the HAL layer that maps device names (e.g. /dev/uart0) to file +# descriptors. Instead, driver routines are called directly. The open(), +# close(), and lseek() routines will always fail if called. The read(), +# write(), fstat(), ioctl(), and isatty() routines only work for the stdio +# devices. If true, adds -DALT_USE_DIRECT_DRIVERS to ALT_CPPFLAGS in public.mk. +# The Altera Host and read-only ZIP file systems can't be used if +# hal.enable_lightweight_device_driver_api is true. +# setting hal.enable_lightweight_device_driver_api is true +ALT_CPPFLAGS += -DALT_USE_DIRECT_DRIVERS + +# Adds code to emulate multiply and divide instructions in case they are +# executed but aren't present in the CPU. Normally this isn't required because +# the compiler won't use multiply and divide instructions that aren't present +# in the CPU. If false, adds -DALT_NO_INSTRUCTION_EMULATION to ALT_CPPFLAGS in +# public.mk. none +# setting hal.enable_mul_div_emulation is false +ALT_CPPFLAGS += -DALT_NO_INSTRUCTION_EMULATION + +# Certain drivers are compiled with reduced functionality to reduce code +# footprint. Not all drivers observe this setting. The altera_avalon_uart and +# altera_avalon_jtag_uart drivers switch from interrupt-driven to polled +# operation. CAUTION: Several device drivers are disabled entirely. These +# include the altera_avalon_cfi_flash, altera_avalon_epcs_flash_controller, and +# altera_avalon_lcd_16207 drivers. This can result in certain API (HAL flash +# access routines) to fail. You can define a symbol provided by each driver to +# prevent it from being removed. If true, adds -DALT_USE_SMALL_DRIVERS to +# ALT_CPPFLAGS in public.mk. none +# setting hal.enable_reduced_device_drivers is true +ALT_CPPFLAGS += -DALT_USE_SMALL_DRIVERS + +# Turns on HAL runtime stack checking feature. Enabling this setting causes +# additional code to be placed into each subroutine call to generate an +# exception if a stack collision occurs with the heap or statically allocated +# data. If true, adds -DALT_STACK_CHECK and -mstack-check to ALT_CPPFLAGS in +# public.mk. none +# setting hal.enable_runtime_stack_checking is false + +# The BSP is compiled with optimizations to speedup HDL simulation such as +# initializing the cache, clearing the .bss section, and skipping long delay +# loops. If true, adds -DALT_SIM_OPTIMIZE to ALT_CPPFLAGS in public.mk. When +# this setting is true, the BSP shouldn't be used to build applications that +# are expected to run real hardware. +# setting hal.enable_sim_optimize is false + +# Causes the small newlib (C library) to be used. This reduces code and data +# footprint at the expense of reduced functionality. Several newlib features +# are removed such as floating-point support in printf(), stdin input routines, +# and buffered I/O. The small C library is not compatible with Micrium +# MicroC/OS-II. If true, adds -msmallc to ALT_LDFLAGS in public.mk. none +# setting hal.enable_small_c_library is true +ALT_LDFLAGS += -msmallc +ALT_CPPFLAGS += -DSMALL_C_LIB + +# Enable SOPC Builder System ID. If a System ID SOPC Builder component is +# connected to the CPU associated with this BSP, it will be enabled in the +# creation of command-line arguments to download an ELF to the target. +# Otherwise, system ID and timestamp values are left out of public.mk for +# application Makefile "download-elf" target definition. With the system ID +# check disabled, the Nios II EDS tools will not automatically ensure that the +# application .elf file (and BSP it is linked against) corresponds to the +# hardware design on the target. If false, adds --accept-bad-sysid to +# SOPC_SYSID_FLAG in public.mk. none +# setting hal.enable_sopc_sysid_check is true + +# Enable BSP generation to query if SOPC system is big endian. If true ignores +# export of 'ALT_CFLAGS += -EB' to public.mk if big endian system. If true +# ignores export of 'ALT_CFLAGS += -EL' if little endian system. none +# setting hal.make.ignore_system_derived.big_endian is false + +# Enable BSP generation to query if SOPC system has a debug core present. If +# true ignores export of 'CPU_HAS_DEBUG_CORE = 1' to public.mk if a debug core +# is found in the system. If true ignores export of 'CPU_HAS_DEBUG_CORE = 0' if +# no debug core is found in the system. none +# setting hal.make.ignore_system_derived.debug_core_present is false + +# Enable BSP generation to query if SOPC system has FPU present. If true +# ignores export of 'ALT_CFLAGS += -mhard-float' to public.mk if FPU is found +# in the system. If true ignores export of 'ALT_CFLAGS += -mhard-soft' if FPU +# is not found in the system. none +# setting hal.make.ignore_system_derived.fpu_present is false + +# Enable BSP generation to query if SOPC system has hardware divide present. If +# true ignores export of 'ALT_CFLAGS += -mno-hw-div' to public.mk if no +# division is found in system. If true ignores export of 'ALT_CFLAGS += +# -mhw-div' if division is found in the system. none +# setting hal.make.ignore_system_derived.hardware_divide_present is false + +# Enable BSP generation to query if SOPC system floating point custom +# instruction with a divider is present. If true ignores export of 'ALT_CFLAGS +# += -mcustom-fpu-cfg=60-2' and 'ALT_LDFLAGS += -mcustom-fpu-cfg=60-2' to +# public.mk if the custom instruction is found in the system. none +# setting hal.make.ignore_system_derived.hardware_fp_cust_inst_divider_present is false + +# Enable BSP generation to query if SOPC system floating point custom +# instruction without a divider is present. If true ignores export of +# 'ALT_CFLAGS += -mcustom-fpu-cfg=60-1' and 'ALT_LDFLAGS += +# -mcustom-fpu-cfg=60-1' to public.mk if the custom instruction is found in the +# system. none +# setting hal.make.ignore_system_derived.hardware_fp_cust_inst_no_divider_present is false + +# Enable BSP generation to query if SOPC system has multiplier present. If true +# ignores export of 'ALT_CFLAGS += -mno-hw-mul' to public.mk if no multiplier +# is found in the system. If true ignores export of 'ALT_CFLAGS += -mhw-mul' if +# multiplier is found in the system. none +# setting hal.make.ignore_system_derived.hardware_multiplier_present is false + +# Enable BSP generation to query if SOPC system has hardware mulx present. If +# true ignores export of 'ALT_CFLAGS += -mno-hw-mulx' to public.mk if no mulx +# is found in the system. If true ignores export of 'ALT_CFLAGS += -mhw-mulx' +# if mulx is found in the system. none +# setting hal.make.ignore_system_derived.hardware_mulx_present is false + +# Enable BSP generation to query if SOPC system has simulation enabled. If true +# ignores export of 'ELF_PATCH_FLAG += --simulation_enabled' to public.mk. none +# setting hal.make.ignore_system_derived.sopc_simulation_enabled is false + +# Enable BSP generation to query SOPC system for system ID base address. If +# true ignores export of 'SOPC_SYSID_FLAG += --sidp=
' and +# 'ELF_PATCH_FLAG += --sidp=
' to public.mk. none +# setting hal.make.ignore_system_derived.sopc_system_base_address is false + +# Enable BSP generation to query SOPC system for system ID. If true ignores +# export of 'SOPC_SYSID_FLAG += --id=' and 'ELF_PATCH_FLAG += +# --id=' to public.mk. none +# setting hal.make.ignore_system_derived.sopc_system_id is false + +# Enable BSP generation to query SOPC system for system timestamp. If true +# ignores export of 'SOPC_SYSID_FLAG += --timestamp=' and +# 'ELF_PATCH_FLAG += --timestamp=' to public.mk. none +# setting hal.make.ignore_system_derived.sopc_system_timestamp is false + +# Slave descriptor of STDERR character-mode device. This setting is used by the +# ALT_STDERR family of defines in system.h. none +# setting hal.stderr is jtag_uart +ELF_PATCH_FLAG += --stderr_dev jtag_uart + +# Slave descriptor of STDIN character-mode device. This setting is used by the +# ALT_STDIN family of defines in system.h. none +# setting hal.stdin is jtag_uart +ELF_PATCH_FLAG += --stdin_dev jtag_uart + +# Slave descriptor of STDOUT character-mode device. This setting is used by the +# ALT_STDOUT family of defines in system.h. none +# setting hal.stdout is jtag_uart +ELF_PATCH_FLAG += --stdout_dev jtag_uart + + +#------------------------------------------------------------------------------ +# SOFTWARE COMPONENT & DRIVER INCLUDE PATHS +#------------------------------------------------------------------------------ + +ALT_INCLUDE_DIRS += $(ALT_LIBRARY_ROOT_DIR)/HAL/inc + +#------------------------------------------------------------------------------ +# SOFTWARE COMPONENT & DRIVER PRODUCED ALT_CPPFLAGS ADDITIONS +#------------------------------------------------------------------------------ + +ALT_CPPFLAGS += -DALT_SINGLE_THREADED + +#END MANAGED + + +#------------------------------------------------------------------------------ +# LIBRARY INFORMATION +#------------------------------------------------------------------------------ +# Assemble the name of the BSP *.a file using the BSP library name +# (BSP_SYS_LIB) in generated content above. +BSP_LIB := lib$(BSP_SYS_LIB).a + +# Additional libraries to link against: +# An application including this file will prefix each library with "-l". +# For example, to include the Newlib math library "m" is included, which +# becomes "-lm" when linking the application. +ALT_LIBRARY_NAMES += m + +# Additions to linker dependencies: +# An application Makefile will typically add these directly to the list +# of dependencies required to build the executable target(s). The BSP +# library (*.a) file is specified here. +ALT_LDDEPS += $(ALT_LIBRARY_ROOT_DIR)/$(BSP_LIB) + +# Is this library "Makeable"? +# Add to list of root library directories that support running 'make' +# to build them. Because libraries may or may not have a Makefile in their +# root, appending to this variable tells an application to run 'make' in +# the library root to build/update this library. +MAKEABLE_LIBRARY_ROOT_DIRS += $(ALT_LIBRARY_ROOT_DIR) + +# Additional Assembler Flags +# -gdwarf2 flag is required for stepping through assembly code +ALT_ASFLAGS += -gdwarf2 + +#------------------------------------------------------------------------------ +# FINAL INCLUDE PATH LIST +#------------------------------------------------------------------------------ +# Append static include paths to paths specified by OS/driver/sw package +# additions to the BSP thus giving them precedence in case a BSP addition +# is attempting to override BSP sources. +ALT_INCLUDE_DIRS += $(ALT_INCLUDE_DIRS_TO_APPEND) + + + diff --git a/software/qsys_tutorial_switchs18_bsp/settings.bsp b/software/qsys_tutorial_switchs18_bsp/settings.bsp new file mode 100644 index 0000000..388f097 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/settings.bsp @@ -0,0 +1,919 @@ + + + hal + default + 2016/11/10 9:22:55 + 1478737375996 + C:\Users\takayun\Documents\DE2-115\qsys_tutorial\software\qsys_tutorial_switchs18_bsp + .\settings.bsp + C:\Users\takayun\Documents\DE2-115\qsys_tutorial\nios_system.sopcinfo + default + nios2_processor + 1.9 + + hal.sys_clk_timer + ALT_SYS_CLK + UnquotedString + none + none + system_h_define + Slave descriptor of the system clock timer device. This device provides a periodic interrupt ("tick") and is typically required for RTOS use. This setting defines the value of ALT_SYS_CLK in system.h. + none + false + common + + + hal.timestamp_timer + ALT_TIMESTAMP_CLK + UnquotedString + none + none + system_h_define + Slave descriptor of timestamp timer device. This device is used by Altera HAL timestamp drivers for high-resolution time measurement. This setting defines the value of ALT_TIMESTAMP_CLK in system.h. + none + false + common + + + hal.max_file_descriptors + ALT_MAX_FD + DecimalNumber + 4 + 32 + system_h_define + Determines the number of file descriptors statically allocated. This setting defines the value of ALT_MAX_FD in system.h. + If hal.enable_lightweight_device_driver_api is true, there are no file descriptors so this setting is ignored. If hal.enable_lightweight_device_driver_api is false, this setting must be at least 4 because HAL needs a file descriptor for /dev/null, /dev/stdin, /dev/stdout, and /dev/stderr. + false + + + + hal.enable_instruction_related_exceptions_api + ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API + BooleanDefineOnly + false + false + system_h_define + Enables API for registering handlers to service instruction-related exceptions. Enabling this setting increases the size of the exception entry code. + These exception types can be generated if various processor options are enabled, such as the MMU, MPU, or other advanced exception types. + false + + + + hal.linker.allow_code_at_reset + ALT_ALLOW_CODE_AT_RESET + Boolean + 1 + 0 + none + Indicates if initialization code is allowed at the reset address. If true, defines the macro ALT_ALLOW_CODE_AT_RESET in linker.h. + If true, defines the macro ALT_ALLOW_CODE_AT_RESET in linker.h. This setting is typically false if an external bootloader (e.g. flash bootloader) is present. + false + + + + hal.linker.enable_alt_load + NONE + Boolean + 1 + 0 + none + Enables the alt_load() facility. The alt_load() facility copies sections from the .text memory into RAM. If true, this setting sets up the VMA/LMA of sections in linker.x to allow them to be loaded into the .text memory. + This setting is typically false if an external bootloader (e.g. flash bootloader) is present. + false + + + + hal.linker.enable_alt_load_copy_rodata + NONE + Boolean + 0 + 0 + none + Causes the alt_load() facility to copy the .rodata section. If true, this setting defines the macro ALT_LOAD_COPY_RODATA in linker.h. + none + false + + + + hal.linker.enable_alt_load_copy_rwdata + NONE + Boolean + 1 + 0 + none + Causes the alt_load() facility to copy the .rwdata section. If true, this setting defines the macro ALT_LOAD_COPY_RWDATA in linker.h. + none + false + + + + hal.linker.enable_alt_load_copy_exceptions + NONE + Boolean + 0 + 0 + none + Causes the alt_load() facility to copy the .exceptions section. If true, this setting defines the macro ALT_LOAD_COPY_EXCEPTIONS in linker.h. + none + false + + + + hal.linker.enable_exception_stack + NONE + Boolean + 0 + 0 + none + Enables use of a separate exception stack. If true, defines the macro ALT_EXCEPTION_STACK in linker.h, adds a memory region called exception_stack to linker.x, and provides the symbols __alt_exception_stack_pointer and __alt_exception_stack_limit in linker.x. + The hal.linker.exception_stack_size and hal.linker.exception_stack_memory_region_name settings must also be valid. This setting must be false for MicroC/OS-II BSPs. The exception stack can be used to improve interrupt and other exception performance if the EIC is *not* used. + false + common + + + hal.linker.exception_stack_size + NONE + DecimalNumber + 1024 + 1024 + none + Size of the exception stack in bytes. + Only used if hal.linker.enable_exception_stack is true. + false + common + + + hal.linker.exception_stack_memory_region_name + NONE + UnquotedString + onchip_memory + none + none + Name of the existing memory region that will be divided up to create the 'exception_stack' memory region. The selected region name will be adjusted automatically when the BSP is generated to create the 'exception_stack' memory region. + Only used if hal.linker.enable_exception_stack is true. + false + common + + + hal.linker.enable_interrupt_stack + NONE + Boolean + 0 + 0 + none + Enables use of a separate interrupt stack. If true, defines the macro ALT_INTERRUPT_STACK in linker.h, adds a memory region called interrupt_stack to linker.x, and provides the symbols __alt_interrupt_stack_pointer and __alt_interrupt_stack_limit in linker.x. + The hal.linker.interrupt_stack_size and hal.linker.interrupt_stack_memory_region_name settings must also be valid. This setting must be false for MicroC/OS-II BSPs. Only enable if the EIC is used exclusively. The exception stack can be used to improve interrupt and other exception performance if the EIC is *not* used. + false + common + + + hal.linker.interrupt_stack_size + NONE + DecimalNumber + 1024 + 1024 + none + Size of the interrupt stack in bytes. + Only used if hal.linker.enable_interrupt_stack is true. + false + common + + + hal.linker.interrupt_stack_memory_region_name + NONE + UnquotedString + onchip_memory + none + none + Name of the existing memory region that will be divided up to create the 'interrupt_stack' memory region. The selected region name will be adjusted automatically when the BSP is generated to create the 'interrupt_stack' memory region. + Only used if hal.linker.enable_interrupt_stack is true. + false + common + + + hal.stdin + NONE + UnquotedString + jtag_uart + none + system_h_define + Slave descriptor of STDIN character-mode device. This setting is used by the ALT_STDIN family of defines in system.h. + none + false + common + + + hal.stdout + NONE + UnquotedString + jtag_uart + none + system_h_define + Slave descriptor of STDOUT character-mode device. This setting is used by the ALT_STDOUT family of defines in system.h. + none + false + common + + + hal.stderr + NONE + UnquotedString + jtag_uart + none + system_h_define + Slave descriptor of STDERR character-mode device. This setting is used by the ALT_STDERR family of defines in system.h. + none + false + common + + + hal.log_port + NONE + UnquotedString + none + none + public_mk_define + Slave descriptor of debug logging character-mode device. If defined, it enables extra debug messages in the HAL source. This setting is used by the ALT_LOG_PORT family of defines in system.h. + none + false + none + + + hal.make.build_pre_process + BUILD_PRE_PROCESS + UnquotedString + none + none + makefile_variable + Command executed before BSP built. + none + false + none + + + hal.make.ar_pre_process + AR_PRE_PROCESS + UnquotedString + none + none + makefile_variable + Command executed before archiver execution. + none + false + none + + + hal.make.bsp_cflags_defined_symbols + BSP_CFLAGS_DEFINED_SYMBOLS + UnquotedString + none + none + makefile_variable + Preprocessor macros to define. A macro definition in this setting has the same effect as a "#define" in source code. Adding "-DALT_DEBUG" to this setting has the same effect as "#define ALT_DEBUG" in a souce file. Adding "-DFOO=1" to this setting is equivalent to the macro "#define FOO 1" in a source file. Macros defined with this setting are applied to all .S, .c, and C++ files in the BSP. This setting defines the value of BSP_CFLAGS_DEFINED_SYMBOLS in the BSP Makefile. + none + false + none + + + hal.make.ar_post_process + AR_POST_PROCESS + UnquotedString + none + none + makefile_variable + Command executed after archiver execution. + none + false + none + + + hal.make.as + AS + UnquotedString + nios2-elf-gcc + nios2-elf-gcc + makefile_variable + Assembler command. Note that CC is used for .S files. + none + false + none + + + hal.make.build_post_process + BUILD_POST_PROCESS + UnquotedString + none + none + makefile_variable + Command executed after BSP built. + none + false + none + + + hal.make.bsp_cflags_debug + BSP_CFLAGS_DEBUG + UnquotedString + -g + -g + makefile_variable + C/C++ compiler debug level. '-g' provides the default set of debug symbols typically required to debug a typical application. Omitting '-g' removes debug symbols from the ELF. This setting defines the value of BSP_CFLAGS_DEBUG in Makefile. + none + false + common + + + hal.make.ar + AR + UnquotedString + nios2-elf-ar + nios2-elf-ar + makefile_variable + Archiver command. Creates library files. + none + false + none + + + hal.make.rm + RM + UnquotedString + rm -f + rm -f + makefile_variable + Command used to remove files during 'clean' target. + none + false + none + + + hal.make.cxx_pre_process + CXX_PRE_PROCESS + UnquotedString + none + none + makefile_variable + Command executed before each C++ file is compiled. + none + false + none + + + hal.make.bsp_cflags_warnings + BSP_CFLAGS_WARNINGS + UnquotedString + -Wall + -Wall + makefile_variable + C/C++ compiler warning level. "-Wall" is commonly used.This setting defines the value of BSP_CFLAGS_WARNINGS in Makefile. + none + false + none + + + hal.make.bsp_arflags + BSP_ARFLAGS + UnquotedString + -src + -src + makefile_variable + Custom flags only passed to the archiver. This content of this variable is directly passed to the archiver rather than the more standard "ARFLAGS". The reason for this is that GNU Make assumes some default content in ARFLAGS. This setting defines the value of BSP_ARFLAGS in Makefile. + none + false + none + + + hal.make.bsp_cflags_optimization + BSP_CFLAGS_OPTIMIZATION + UnquotedString + '-Os' + -O0 + makefile_variable + C/C++ compiler optimization level. "-O0" = no optimization,"-O2" = "normal" optimization, etc. "-O0" is recommended for code that you want to debug since compiler optimization can remove variables and produce non-sequential execution of code while debugging. This setting defines the value of BSP_CFLAGS_OPTIMIZATION in Makefile. + none + false + common + + + hal.make.as_post_process + AS_POST_PROCESS + UnquotedString + none + none + makefile_variable + Command executed after each assembly file is compiled. + none + false + none + + + hal.make.cc_pre_process + CC_PRE_PROCESS + UnquotedString + none + none + makefile_variable + Command executed before each .c/.S file is compiled. + none + false + none + + + hal.make.bsp_asflags + BSP_ASFLAGS + UnquotedString + -Wa,-gdwarf2 + -Wa,-gdwarf2 + makefile_variable + Custom flags only passed to the assembler. This setting defines the value of BSP_ASFLAGS in Makefile. + none + false + none + + + hal.make.as_pre_process + AS_PRE_PROCESS + UnquotedString + none + none + makefile_variable + Command executed before each assembly file is compiled. + none + false + none + + + hal.make.bsp_cflags_undefined_symbols + BSP_CFLAGS_UNDEFINED_SYMBOLS + UnquotedString + none + none + makefile_variable + Preprocessor macros to undefine. Undefined macros are similar to defined macros, but replicate the "#undef" directive in source code. To undefine the macro FOO use the syntax "-u FOO" in this setting. This is equivalent to "#undef FOO" in a source file. Note: the syntax differs from macro definition (there is a space, i.e. "-u FOO" versus "-DFOO"). Macros defined with this setting are applied to all .S, .c, and C++ files in the BSP. This setting defines the value of BSP_CFLAGS_UNDEFINED_SYMBOLS in the BSP Makefile. + none + false + none + + + hal.make.cc_post_process + CC_POST_PROCESS + UnquotedString + none + none + makefile_variable + Command executed after each .c/.S file is compiled. + none + false + none + + + hal.make.cxx_post_process + CXX_POST_PROCESS + UnquotedString + none + none + makefile_variable + Command executed before each C++ file is compiled. + none + false + none + + + hal.make.cc + CC + UnquotedString + nios2-elf-gcc -xc + nios2-elf-gcc -xc + makefile_variable + C compiler command. + none + false + none + + + hal.make.bsp_cxx_flags + BSP_CXXFLAGS + UnquotedString + none + none + makefile_variable + Custom flags only passed to the C++ compiler. This setting defines the value of BSP_CXXFLAGS in Makefile. + none + false + none + + + hal.make.bsp_inc_dirs + BSP_INC_DIRS + UnquotedString + none + none + makefile_variable + Space separated list of extra include directories to scan for header files. Directories are relative to the top-level BSP directory. The -I prefix's added by the makefile so don't add it here. This setting defines the value of BSP_INC_DIRS in Makefile. + none + false + none + + + hal.make.cxx + CXX + UnquotedString + nios2-elf-gcc -xc++ + nios2-elf-gcc -xc++ + makefile_variable + C++ compiler command. + none + false + none + + + hal.make.bsp_cflags_user_flags + BSP_CFLAGS_USER_FLAGS + UnquotedString + none + none + makefile_variable + Custom flags passed to the compiler when compiling C, C++, and .S files. This setting defines the value of BSP_CFLAGS_USER_FLAGS in Makefile. + none + false + none + + + hal.make.ignore_system_derived.sopc_system_id + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query SOPC system for system ID. If true ignores export of 'SOPC_SYSID_FLAG += --id=<sysid>' and 'ELF_PATCH_FLAG += --id=<sysid>' to public.mk. + none + false + none + + + hal.make.ignore_system_derived.sopc_system_timestamp + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query SOPC system for system timestamp. If true ignores export of 'SOPC_SYSID_FLAG += --timestamp=<timestamp>' and 'ELF_PATCH_FLAG += --timestamp=<timestamp>' to public.mk. + none + false + none + + + hal.make.ignore_system_derived.sopc_system_base_address + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query SOPC system for system ID base address. If true ignores export of 'SOPC_SYSID_FLAG += --sidp=<address>' and 'ELF_PATCH_FLAG += --sidp=<address>' to public.mk. + none + false + none + + + hal.make.ignore_system_derived.sopc_simulation_enabled + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query if SOPC system has simulation enabled. If true ignores export of 'ELF_PATCH_FLAG += --simulation_enabled' to public.mk. + none + false + none + + + hal.make.ignore_system_derived.fpu_present + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query if SOPC system has FPU present. If true ignores export of 'ALT_CFLAGS += -mhard-float' to public.mk if FPU is found in the system. If true ignores export of 'ALT_CFLAGS += -mhard-soft' if FPU is not found in the system. + none + false + none + + + hal.make.ignore_system_derived.hardware_multiplier_present + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query if SOPC system has multiplier present. If true ignores export of 'ALT_CFLAGS += -mno-hw-mul' to public.mk if no multiplier is found in the system. If true ignores export of 'ALT_CFLAGS += -mhw-mul' if multiplier is found in the system. + none + false + none + + + hal.make.ignore_system_derived.hardware_mulx_present + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query if SOPC system has hardware mulx present. If true ignores export of 'ALT_CFLAGS += -mno-hw-mulx' to public.mk if no mulx is found in the system. If true ignores export of 'ALT_CFLAGS += -mhw-mulx' if mulx is found in the system. + none + false + none + + + hal.make.ignore_system_derived.hardware_divide_present + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query if SOPC system has hardware divide present. If true ignores export of 'ALT_CFLAGS += -mno-hw-div' to public.mk if no division is found in system. If true ignores export of 'ALT_CFLAGS += -mhw-div' if division is found in the system. + none + false + none + + + hal.make.ignore_system_derived.debug_core_present + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query if SOPC system has a debug core present. If true ignores export of 'CPU_HAS_DEBUG_CORE = 1' to public.mk if a debug core is found in the system. If true ignores export of 'CPU_HAS_DEBUG_CORE = 0' if no debug core is found in the system. + none + false + none + + + hal.make.ignore_system_derived.big_endian + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query if SOPC system is big endian. If true ignores export of 'ALT_CFLAGS += -EB' to public.mk if big endian system. If true ignores export of 'ALT_CFLAGS += -EL' if little endian system. + none + false + none + + + hal.make.ignore_system_derived.hardware_fp_cust_inst_divider_present + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query if SOPC system floating point custom instruction with a divider is present. If true ignores export of 'ALT_CFLAGS += -mcustom-fpu-cfg=60-2' and 'ALT_LDFLAGS += -mcustom-fpu-cfg=60-2' to public.mk if the custom instruction is found in the system. + none + false + none + + + hal.make.ignore_system_derived.hardware_fp_cust_inst_no_divider_present + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query if SOPC system floating point custom instruction without a divider is present. If true ignores export of 'ALT_CFLAGS += -mcustom-fpu-cfg=60-1' and 'ALT_LDFLAGS += -mcustom-fpu-cfg=60-1' to public.mk if the custom instruction is found in the system. + none + false + none + + + hal.enable_exit + ALT_NO_EXIT + Boolean + 0 + 1 + public_mk_define + Add exit() support. This option increases code footprint if your "main()" routine does "return" or call "exit()". If false, adds -DALT_NO_EXIT to ALT_CPPFLAGS in public.mk, and reduces footprint + none + false + none + + + hal.enable_small_c_library + NONE + Boolean + 1 + 0 + public_mk_define + Causes the small newlib (C library) to be used. This reduces code and data footprint at the expense of reduced functionality. Several newlib features are removed such as floating-point support in printf(), stdin input routines, and buffered I/O. The small C library is not compatible with Micrium MicroC/OS-II. If true, adds -msmallc to ALT_LDFLAGS in public.mk. + none + false + common + + + hal.enable_clean_exit + ALT_NO_CLEAN_EXIT + Boolean + 0 + 1 + public_mk_define + When your application exits, close file descriptors, call C++ destructors, etc. Code footprint can be reduced by disabling clean exit. If disabled, adds -DALT_NO_CLEAN_EXIT to ALT_CPPFLAGS and -Wl,--defsym, exit=_exit to ALT_LDFLAGS in public.mk. + none + false + none + + + hal.enable_runtime_stack_checking + ALT_STACK_CHECK + Boolean + 0 + 0 + public_mk_define + Turns on HAL runtime stack checking feature. Enabling this setting causes additional code to be placed into each subroutine call to generate an exception if a stack collision occurs with the heap or statically allocated data. If true, adds -DALT_STACK_CHECK and -mstack-check to ALT_CPPFLAGS in public.mk. + none + false + none + + + hal.enable_gprof + ALT_PROVIDE_GMON + Boolean + 0 + 0 + public_mk_define + Causes code to be compiled with gprof profiling enabled and the application ELF to be linked with the GPROF library. If true, adds -DALT_PROVIDE_GMON to ALT_CPPFLAGS and -pg to ALT_CFLAGS in public.mk. + none + false + common + + + hal.enable_c_plus_plus + ALT_NO_C_PLUS_PLUS + Boolean + 0 + 1 + public_mk_define + Enable support for a subset of the C++ language. This option increases code footprint by adding support for C++ constructors. Certain features, such as multiple inheritance and exceptions are not supported. If false, adds -DALT_NO_C_PLUS_PLUS to ALT_CPPFLAGS in public.mk, and reduces code footprint. + none + false + none + + + hal.enable_reduced_device_drivers + ALT_USE_SMALL_DRIVERS + Boolean + 1 + 0 + public_mk_define + Certain drivers are compiled with reduced functionality to reduce code footprint. Not all drivers observe this setting. The altera_avalon_uart and altera_avalon_jtag_uart drivers switch from interrupt-driven to polled operation. CAUTION: Several device drivers are disabled entirely. These include the altera_avalon_cfi_flash, altera_avalon_epcs_flash_controller, and altera_avalon_lcd_16207 drivers. This can result in certain API (HAL flash access routines) to fail. You can define a symbol provided by each driver to prevent it from being removed. If true, adds -DALT_USE_SMALL_DRIVERS to ALT_CPPFLAGS in public.mk. + none + false + common + + + hal.enable_lightweight_device_driver_api + ALT_USE_DIRECT_DRIVERS + Boolean + 1 + 0 + public_mk_define + Enables lightweight device driver API. This reduces code and data footprint by removing the HAL layer that maps device names (e.g. /dev/uart0) to file descriptors. Instead, driver routines are called directly. The open(), close(), and lseek() routines will always fail if called. The read(), write(), fstat(), ioctl(), and isatty() routines only work for the stdio devices. If true, adds -DALT_USE_DIRECT_DRIVERS to ALT_CPPFLAGS in public.mk. + The Altera Host and read-only ZIP file systems can't be used if hal.enable_lightweight_device_driver_api is true. + false + none + + + hal.enable_mul_div_emulation + ALT_NO_INSTRUCTION_EMULATION + Boolean + 0 + 0 + public_mk_define + Adds code to emulate multiply and divide instructions in case they are executed but aren't present in the CPU. Normally this isn't required because the compiler won't use multiply and divide instructions that aren't present in the CPU. If false, adds -DALT_NO_INSTRUCTION_EMULATION to ALT_CPPFLAGS in public.mk. + none + false + none + + + hal.enable_sim_optimize + ALT_SIM_OPTIMIZE + Boolean + 0 + 0 + public_mk_define + The BSP is compiled with optimizations to speedup HDL simulation such as initializing the cache, clearing the .bss section, and skipping long delay loops. If true, adds -DALT_SIM_OPTIMIZE to ALT_CPPFLAGS in public.mk. + When this setting is true, the BSP shouldn't be used to build applications that are expected to run real hardware. + false + common + + + hal.enable_sopc_sysid_check + NONE + Boolean + 1 + 1 + public_mk_define + Enable SOPC Builder System ID. If a System ID SOPC Builder component is connected to the CPU associated with this BSP, it will be enabled in the creation of command-line arguments to download an ELF to the target. Otherwise, system ID and timestamp values are left out of public.mk for application Makefile "download-elf" target definition. With the system ID check disabled, the Nios II EDS tools will not automatically ensure that the application .elf file (and BSP it is linked against) corresponds to the hardware design on the target. If false, adds --accept-bad-sysid to SOPC_SYSID_FLAG in public.mk. + none + false + none + + + hal.custom_newlib_flags + CUSTOM_NEWLIB_FLAGS + UnquotedString + none + none + public_mk_define + Build a custom version of newlib with the specified space-separated compiler flags. + The custom newlib build will be placed in the &lt;bsp root>/newlib directory, and will be used only for applications that utilize this BSP. + false + none + + + hal.log_flags + ALT_LOG_FLAGS + DecimalNumber + 0 + 0 + public_mk_define + The value is assigned to ALT_LOG_FLAGS in the generated public.mk. See hal.log_port setting description. Values can be -1 through 3. + hal.log_port must be set for this to be used. + false + none + + + altera_avalon_jtag_uart_driver.enable_small_driver + ALTERA_AVALON_JTAG_UART_SMALL + BooleanDefineOnly + false + false + public_mk_define + Small-footprint (polled mode) driver + none + false + + + + altera_avalon_jtag_uart_driver.enable_jtag_uart_ignore_fifo_full_error + ALTERA_AVALON_JTAG_UART_IGNORE_FIFO_FULL_ERROR + BooleanDefineOnly + false + false + public_mk_define + Enable JTAG UART driver to recover when host is inactive causing buffer to full without returning error. Printf will not fail with this recovery. + none + false + + + + onchip_memory + 0x00000000 - 0x00000FFF + 4096 + memory + + + pio_0 + 0x00002000 - 0x0000200F + 16 + + + + LEDRs + 0x00002010 - 0x0000201F + 16 + + + + LEDs + 0x00002030 - 0x0000203F + 16 + + + + jtag_uart + 0x00002040 - 0x00002047 + 8 + printable + + + .text + onchip_memory + + + .rodata + onchip_memory + + + .rwdata + onchip_memory + + + .bss + onchip_memory + + + .heap + onchip_memory + + + .stack + onchip_memory + + \ No newline at end of file diff --git a/software/qsys_tutorial_switchs18_bsp/summary.html b/software/qsys_tutorial_switchs18_bsp/summary.html new file mode 100644 index 0000000..5179cda --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/summary.html @@ -0,0 +1,2011 @@ + +Altera Nios II BSP Summary + +

BSP Description

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
BSP Type:hal
SOPC Design File:C:\Users\takayun\Documents\DE2-115\qsys_tutorial\nios_system.sopcinfo
Quartus JDI File:default
CPU:nios2_processor
BSP Settings File:.\settings.bsp
BSP Version:default
BSP Generated On:2016/11/10 9:22:55
BSP Generated Timestamp:1478737375996
BSP Generated Location:C:\Users\takayun\Documents\DE2-115\qsys_tutorial\software\qsys_tutorial_switchs18_bsp
+
+

Nios II Memory Map

+ + + + + + + + + + + + + + + + + + + +
Slave DescriptorAddress RangeSizeAttributes
jtag_uart0x00002040 - 0x000020478printable
LEDs0x00002030 - 0x0000203F16 
LEDRs0x00002010 - 0x0000201F16 
pio_00x00002000 - 0x0000200F16 
onchip_memory0x00000000 - 0x00000FFF4096memory
+
+
+

Linker Regions

+ + + + +
RegionAddress RangeSizeMemoryOffset
+
+
+

Linker Section Mappings

+ + + + + + + + + + + + + + + + + + + + + + +
SectionRegion
.textonchip_memory
.rodataonchip_memory
.rwdataonchip_memory
.bssonchip_memory
.heaponchip_memory
.stackonchip_memory
+

Settings

+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:altera_avalon_jtag_uart_driver.enable_jtag_uart_ignore_fifo_full_error
Identifier:ALTERA_AVALON_JTAG_UART_IGNORE_FIFO_FULL_ERROR
Default Value:false
Value:false
Type:BooleanDefineOnly
Destination:public_mk_define
Description:Enable JTAG UART driver to recover when host is inactive causing buffer to full without returning error. Printf will not fail with this recovery.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:altera_avalon_jtag_uart_driver.enable_small_driver
Identifier:ALTERA_AVALON_JTAG_UART_SMALL
Default Value:false
Value:false
Type:BooleanDefineOnly
Destination:public_mk_define
Description:Small-footprint (polled mode) driver
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.custom_newlib_flags
Identifier:CUSTOM_NEWLIB_FLAGS
Default Value:none
Value:none
Type:UnquotedString
Destination:public_mk_define
Description:Build a custom version of newlib with the specified space-separated compiler flags.
Restrictions:The custom newlib build will be placed in the &lt;bsp root>/newlib directory, and will be used only for applications that utilize this BSP.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_c_plus_plus
Identifier:ALT_NO_C_PLUS_PLUS
Default Value:1
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable support for a subset of the C++ language. This option increases code footprint by adding support for C++ constructors. Certain features, such as multiple inheritance and exceptions are not supported. If false, adds -DALT_NO_C_PLUS_PLUS to ALT_CPPFLAGS in public.mk, and reduces code footprint.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_clean_exit
Identifier:ALT_NO_CLEAN_EXIT
Default Value:1
Value:0
Type:Boolean
Destination:public_mk_define
Description:When your application exits, close file descriptors, call C++ destructors, etc. Code footprint can be reduced by disabling clean exit. If disabled, adds -DALT_NO_CLEAN_EXIT to ALT_CPPFLAGS and -Wl,--defsym, exit=_exit to ALT_LDFLAGS in public.mk.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_exit
Identifier:ALT_NO_EXIT
Default Value:1
Value:0
Type:Boolean
Destination:public_mk_define
Description:Add exit() support. This option increases code footprint if your "main()" routine does "return" or call "exit()". If false, adds -DALT_NO_EXIT to ALT_CPPFLAGS in public.mk, and reduces footprint
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_gprof
Identifier:ALT_PROVIDE_GMON
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Causes code to be compiled with gprof profiling enabled and the application ELF to be linked with the GPROF library. If true, adds -DALT_PROVIDE_GMON to ALT_CPPFLAGS and -pg to ALT_CFLAGS in public.mk.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_instruction_related_exceptions_api
Identifier:ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API
Default Value:false
Value:false
Type:BooleanDefineOnly
Destination:system_h_define
Description:Enables API for registering handlers to service instruction-related exceptions. Enabling this setting increases the size of the exception entry code.
Restrictions:These exception types can be generated if various processor options are enabled, such as the MMU, MPU, or other advanced exception types.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_lightweight_device_driver_api
Identifier:ALT_USE_DIRECT_DRIVERS
Default Value:0
Value:1
Type:Boolean
Destination:public_mk_define
Description:Enables lightweight device driver API. This reduces code and data footprint by removing the HAL layer that maps device names (e.g. /dev/uart0) to file descriptors. Instead, driver routines are called directly. The open(), close(), and lseek() routines will always fail if called. The read(), write(), fstat(), ioctl(), and isatty() routines only work for the stdio devices. If true, adds -DALT_USE_DIRECT_DRIVERS to ALT_CPPFLAGS in public.mk.
Restrictions:The Altera Host and read-only ZIP file systems can't be used if hal.enable_lightweight_device_driver_api is true.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_mul_div_emulation
Identifier:ALT_NO_INSTRUCTION_EMULATION
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Adds code to emulate multiply and divide instructions in case they are executed but aren't present in the CPU. Normally this isn't required because the compiler won't use multiply and divide instructions that aren't present in the CPU. If false, adds -DALT_NO_INSTRUCTION_EMULATION to ALT_CPPFLAGS in public.mk.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_reduced_device_drivers
Identifier:ALT_USE_SMALL_DRIVERS
Default Value:0
Value:1
Type:Boolean
Destination:public_mk_define
Description:Certain drivers are compiled with reduced functionality to reduce code footprint. Not all drivers observe this setting. The altera_avalon_uart and altera_avalon_jtag_uart drivers switch from interrupt-driven to polled operation. CAUTION: Several device drivers are disabled entirely. These include the altera_avalon_cfi_flash, altera_avalon_epcs_flash_controller, and altera_avalon_lcd_16207 drivers. This can result in certain API (HAL flash access routines) to fail. You can define a symbol provided by each driver to prevent it from being removed. If true, adds -DALT_USE_SMALL_DRIVERS to ALT_CPPFLAGS in public.mk.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_runtime_stack_checking
Identifier:ALT_STACK_CHECK
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Turns on HAL runtime stack checking feature. Enabling this setting causes additional code to be placed into each subroutine call to generate an exception if a stack collision occurs with the heap or statically allocated data. If true, adds -DALT_STACK_CHECK and -mstack-check to ALT_CPPFLAGS in public.mk.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_sim_optimize
Identifier:ALT_SIM_OPTIMIZE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:The BSP is compiled with optimizations to speedup HDL simulation such as initializing the cache, clearing the .bss section, and skipping long delay loops. If true, adds -DALT_SIM_OPTIMIZE to ALT_CPPFLAGS in public.mk.
Restrictions:When this setting is true, the BSP shouldn't be used to build applications that are expected to run real hardware.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_small_c_library
Identifier:NONE
Default Value:0
Value:1
Type:Boolean
Destination:public_mk_define
Description:Causes the small newlib (C library) to be used. This reduces code and data footprint at the expense of reduced functionality. Several newlib features are removed such as floating-point support in printf(), stdin input routines, and buffered I/O. The small C library is not compatible with Micrium MicroC/OS-II. If true, adds -msmallc to ALT_LDFLAGS in public.mk.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_sopc_sysid_check
Identifier:NONE
Default Value:1
Value:1
Type:Boolean
Destination:public_mk_define
Description:Enable SOPC Builder System ID. If a System ID SOPC Builder component is connected to the CPU associated with this BSP, it will be enabled in the creation of command-line arguments to download an ELF to the target. Otherwise, system ID and timestamp values are left out of public.mk for application Makefile "download-elf" target definition. With the system ID check disabled, the Nios II EDS tools will not automatically ensure that the application .elf file (and BSP it is linked against) corresponds to the hardware design on the target. If false, adds --accept-bad-sysid to SOPC_SYSID_FLAG in public.mk.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.linker.allow_code_at_reset
Identifier:ALT_ALLOW_CODE_AT_RESET
Default Value:0
Value:1
Type:Boolean
Destination:none
Description:Indicates if initialization code is allowed at the reset address. If true, defines the macro ALT_ALLOW_CODE_AT_RESET in linker.h.
Restrictions:If true, defines the macro ALT_ALLOW_CODE_AT_RESET in linker.h. This setting is typically false if an external bootloader (e.g. flash bootloader) is present.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.linker.enable_alt_load
Identifier:NONE
Default Value:0
Value:1
Type:Boolean
Destination:none
Description:Enables the alt_load() facility. The alt_load() facility copies sections from the .text memory into RAM. If true, this setting sets up the VMA/LMA of sections in linker.x to allow them to be loaded into the .text memory.
Restrictions:This setting is typically false if an external bootloader (e.g. flash bootloader) is present.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.linker.enable_alt_load_copy_exceptions
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:none
Description:Causes the alt_load() facility to copy the .exceptions section. If true, this setting defines the macro ALT_LOAD_COPY_EXCEPTIONS in linker.h.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.linker.enable_alt_load_copy_rodata
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:none
Description:Causes the alt_load() facility to copy the .rodata section. If true, this setting defines the macro ALT_LOAD_COPY_RODATA in linker.h.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.linker.enable_alt_load_copy_rwdata
Identifier:NONE
Default Value:0
Value:1
Type:Boolean
Destination:none
Description:Causes the alt_load() facility to copy the .rwdata section. If true, this setting defines the macro ALT_LOAD_COPY_RWDATA in linker.h.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.linker.enable_exception_stack
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:none
Description:Enables use of a separate exception stack. If true, defines the macro ALT_EXCEPTION_STACK in linker.h, adds a memory region called exception_stack to linker.x, and provides the symbols __alt_exception_stack_pointer and __alt_exception_stack_limit in linker.x.
Restrictions:The hal.linker.exception_stack_size and hal.linker.exception_stack_memory_region_name settings must also be valid. This setting must be false for MicroC/OS-II BSPs. The exception stack can be used to improve interrupt and other exception performance if the EIC is *not* used.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.linker.enable_interrupt_stack
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:none
Description:Enables use of a separate interrupt stack. If true, defines the macro ALT_INTERRUPT_STACK in linker.h, adds a memory region called interrupt_stack to linker.x, and provides the symbols __alt_interrupt_stack_pointer and __alt_interrupt_stack_limit in linker.x.
Restrictions:The hal.linker.interrupt_stack_size and hal.linker.interrupt_stack_memory_region_name settings must also be valid. This setting must be false for MicroC/OS-II BSPs. Only enable if the EIC is used exclusively. The exception stack can be used to improve interrupt and other exception performance if the EIC is *not* used.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.linker.exception_stack_memory_region_name
Identifier:NONE
Default Value:none
Value:onchip_memory
Type:UnquotedString
Destination:none
Description:Name of the existing memory region that will be divided up to create the 'exception_stack' memory region. The selected region name will be adjusted automatically when the BSP is generated to create the 'exception_stack' memory region.
Restrictions:Only used if hal.linker.enable_exception_stack is true.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.linker.exception_stack_size
Identifier:NONE
Default Value:1024
Value:1024
Type:DecimalNumber
Destination:none
Description:Size of the exception stack in bytes.
Restrictions:Only used if hal.linker.enable_exception_stack is true.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.linker.interrupt_stack_memory_region_name
Identifier:NONE
Default Value:none
Value:onchip_memory
Type:UnquotedString
Destination:none
Description:Name of the existing memory region that will be divided up to create the 'interrupt_stack' memory region. The selected region name will be adjusted automatically when the BSP is generated to create the 'interrupt_stack' memory region.
Restrictions:Only used if hal.linker.enable_interrupt_stack is true.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.linker.interrupt_stack_size
Identifier:NONE
Default Value:1024
Value:1024
Type:DecimalNumber
Destination:none
Description:Size of the interrupt stack in bytes.
Restrictions:Only used if hal.linker.enable_interrupt_stack is true.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.log_flags
Identifier:ALT_LOG_FLAGS
Default Value:0
Value:0
Type:DecimalNumber
Destination:public_mk_define
Description:The value is assigned to ALT_LOG_FLAGS in the generated public.mk. See hal.log_port setting description. Values can be -1 through 3.
Restrictions:hal.log_port must be set for this to be used.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.log_port
Identifier:NONE
Default Value:none
Value:none
Type:UnquotedString
Destination:public_mk_define
Description:Slave descriptor of debug logging character-mode device. If defined, it enables extra debug messages in the HAL source. This setting is used by the ALT_LOG_PORT family of defines in system.h.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ar
Identifier:AR
Default Value:nios2-elf-ar
Value:nios2-elf-ar
Type:UnquotedString
Destination:makefile_variable
Description:Archiver command. Creates library files.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ar_post_process
Identifier:AR_POST_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed after archiver execution.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ar_pre_process
Identifier:AR_PRE_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed before archiver execution.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.as
Identifier:AS
Default Value:nios2-elf-gcc
Value:nios2-elf-gcc
Type:UnquotedString
Destination:makefile_variable
Description:Assembler command. Note that CC is used for .S files.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.as_post_process
Identifier:AS_POST_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed after each assembly file is compiled.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.as_pre_process
Identifier:AS_PRE_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed before each assembly file is compiled.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.bsp_arflags
Identifier:BSP_ARFLAGS
Default Value:-src
Value:-src
Type:UnquotedString
Destination:makefile_variable
Description:Custom flags only passed to the archiver. This content of this variable is directly passed to the archiver rather than the more standard "ARFLAGS". The reason for this is that GNU Make assumes some default content in ARFLAGS. This setting defines the value of BSP_ARFLAGS in Makefile.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.bsp_asflags
Identifier:BSP_ASFLAGS
Default Value:-Wa,-gdwarf2
Value:-Wa,-gdwarf2
Type:UnquotedString
Destination:makefile_variable
Description:Custom flags only passed to the assembler. This setting defines the value of BSP_ASFLAGS in Makefile.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.bsp_cflags_debug
Identifier:BSP_CFLAGS_DEBUG
Default Value:-g
Value:-g
Type:UnquotedString
Destination:makefile_variable
Description:C/C++ compiler debug level. '-g' provides the default set of debug symbols typically required to debug a typical application. Omitting '-g' removes debug symbols from the ELF. This setting defines the value of BSP_CFLAGS_DEBUG in Makefile.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.bsp_cflags_defined_symbols
Identifier:BSP_CFLAGS_DEFINED_SYMBOLS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Preprocessor macros to define. A macro definition in this setting has the same effect as a "#define" in source code. Adding "-DALT_DEBUG" to this setting has the same effect as "#define ALT_DEBUG" in a souce file. Adding "-DFOO=1" to this setting is equivalent to the macro "#define FOO 1" in a source file. Macros defined with this setting are applied to all .S, .c, and C++ files in the BSP. This setting defines the value of BSP_CFLAGS_DEFINED_SYMBOLS in the BSP Makefile.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.bsp_cflags_optimization
Identifier:BSP_CFLAGS_OPTIMIZATION
Default Value:-O0
Value:'-Os'
Type:UnquotedString
Destination:makefile_variable
Description:C/C++ compiler optimization level. "-O0" = no optimization,"-O2" = "normal" optimization, etc. "-O0" is recommended for code that you want to debug since compiler optimization can remove variables and produce non-sequential execution of code while debugging. This setting defines the value of BSP_CFLAGS_OPTIMIZATION in Makefile.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.bsp_cflags_undefined_symbols
Identifier:BSP_CFLAGS_UNDEFINED_SYMBOLS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Preprocessor macros to undefine. Undefined macros are similar to defined macros, but replicate the "#undef" directive in source code. To undefine the macro FOO use the syntax "-u FOO" in this setting. This is equivalent to "#undef FOO" in a source file. Note: the syntax differs from macro definition (there is a space, i.e. "-u FOO" versus "-DFOO"). Macros defined with this setting are applied to all .S, .c, and C++ files in the BSP. This setting defines the value of BSP_CFLAGS_UNDEFINED_SYMBOLS in the BSP Makefile.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.bsp_cflags_user_flags
Identifier:BSP_CFLAGS_USER_FLAGS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Custom flags passed to the compiler when compiling C, C++, and .S files. This setting defines the value of BSP_CFLAGS_USER_FLAGS in Makefile.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.bsp_cflags_warnings
Identifier:BSP_CFLAGS_WARNINGS
Default Value:-Wall
Value:-Wall
Type:UnquotedString
Destination:makefile_variable
Description:C/C++ compiler warning level. "-Wall" is commonly used.This setting defines the value of BSP_CFLAGS_WARNINGS in Makefile.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.bsp_cxx_flags
Identifier:BSP_CXXFLAGS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Custom flags only passed to the C++ compiler. This setting defines the value of BSP_CXXFLAGS in Makefile.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.bsp_inc_dirs
Identifier:BSP_INC_DIRS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Space separated list of extra include directories to scan for header files. Directories are relative to the top-level BSP directory. The -I prefix's added by the makefile so don't add it here. This setting defines the value of BSP_INC_DIRS in Makefile.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.build_post_process
Identifier:BUILD_POST_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed after BSP built.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.build_pre_process
Identifier:BUILD_PRE_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed before BSP built.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.cc
Identifier:CC
Default Value:nios2-elf-gcc -xc
Value:nios2-elf-gcc -xc
Type:UnquotedString
Destination:makefile_variable
Description:C compiler command.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.cc_post_process
Identifier:CC_POST_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed after each .c/.S file is compiled.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.cc_pre_process
Identifier:CC_PRE_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed before each .c/.S file is compiled.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.cxx
Identifier:CXX
Default Value:nios2-elf-gcc -xc++
Value:nios2-elf-gcc -xc++
Type:UnquotedString
Destination:makefile_variable
Description:C++ compiler command.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.cxx_post_process
Identifier:CXX_POST_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed before each C++ file is compiled.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.cxx_pre_process
Identifier:CXX_PRE_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed before each C++ file is compiled.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.big_endian
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query if SOPC system is big endian. If true ignores export of 'ALT_CFLAGS += -EB' to public.mk if big endian system. If true ignores export of 'ALT_CFLAGS += -EL' if little endian system.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.debug_core_present
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query if SOPC system has a debug core present. If true ignores export of 'CPU_HAS_DEBUG_CORE = 1' to public.mk if a debug core is found in the system. If true ignores export of 'CPU_HAS_DEBUG_CORE = 0' if no debug core is found in the system.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.fpu_present
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query if SOPC system has FPU present. If true ignores export of 'ALT_CFLAGS += -mhard-float' to public.mk if FPU is found in the system. If true ignores export of 'ALT_CFLAGS += -mhard-soft' if FPU is not found in the system.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.hardware_divide_present
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query if SOPC system has hardware divide present. If true ignores export of 'ALT_CFLAGS += -mno-hw-div' to public.mk if no division is found in system. If true ignores export of 'ALT_CFLAGS += -mhw-div' if division is found in the system.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.hardware_fp_cust_inst_divider_present
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query if SOPC system floating point custom instruction with a divider is present. If true ignores export of 'ALT_CFLAGS += -mcustom-fpu-cfg=60-2' and 'ALT_LDFLAGS += -mcustom-fpu-cfg=60-2' to public.mk if the custom instruction is found in the system.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.hardware_fp_cust_inst_no_divider_present
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query if SOPC system floating point custom instruction without a divider is present. If true ignores export of 'ALT_CFLAGS += -mcustom-fpu-cfg=60-1' and 'ALT_LDFLAGS += -mcustom-fpu-cfg=60-1' to public.mk if the custom instruction is found in the system.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.hardware_multiplier_present
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query if SOPC system has multiplier present. If true ignores export of 'ALT_CFLAGS += -mno-hw-mul' to public.mk if no multiplier is found in the system. If true ignores export of 'ALT_CFLAGS += -mhw-mul' if multiplier is found in the system.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.hardware_mulx_present
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query if SOPC system has hardware mulx present. If true ignores export of 'ALT_CFLAGS += -mno-hw-mulx' to public.mk if no mulx is found in the system. If true ignores export of 'ALT_CFLAGS += -mhw-mulx' if mulx is found in the system.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.sopc_simulation_enabled
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query if SOPC system has simulation enabled. If true ignores export of 'ELF_PATCH_FLAG += --simulation_enabled' to public.mk.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.sopc_system_base_address
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query SOPC system for system ID base address. If true ignores export of 'SOPC_SYSID_FLAG += --sidp=<address>' and 'ELF_PATCH_FLAG += --sidp=<address>' to public.mk.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.sopc_system_id
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query SOPC system for system ID. If true ignores export of 'SOPC_SYSID_FLAG += --id=<sysid>' and 'ELF_PATCH_FLAG += --id=<sysid>' to public.mk.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.sopc_system_timestamp
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query SOPC system for system timestamp. If true ignores export of 'SOPC_SYSID_FLAG += --timestamp=<timestamp>' and 'ELF_PATCH_FLAG += --timestamp=<timestamp>' to public.mk.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.rm
Identifier:RM
Default Value:rm -f
Value:rm -f
Type:UnquotedString
Destination:makefile_variable
Description:Command used to remove files during 'clean' target.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.max_file_descriptors
Identifier:ALT_MAX_FD
Default Value:32
Value:4
Type:DecimalNumber
Destination:system_h_define
Description:Determines the number of file descriptors statically allocated. This setting defines the value of ALT_MAX_FD in system.h.
Restrictions:If hal.enable_lightweight_device_driver_api is true, there are no file descriptors so this setting is ignored. If hal.enable_lightweight_device_driver_api is false, this setting must be at least 4 because HAL needs a file descriptor for /dev/null, /dev/stdin, /dev/stdout, and /dev/stderr.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.stderr
Identifier:NONE
Default Value:none
Value:jtag_uart
Type:UnquotedString
Destination:system_h_define
Description:Slave descriptor of STDERR character-mode device. This setting is used by the ALT_STDERR family of defines in system.h.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.stdin
Identifier:NONE
Default Value:none
Value:jtag_uart
Type:UnquotedString
Destination:system_h_define
Description:Slave descriptor of STDIN character-mode device. This setting is used by the ALT_STDIN family of defines in system.h.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.stdout
Identifier:NONE
Default Value:none
Value:jtag_uart
Type:UnquotedString
Destination:system_h_define
Description:Slave descriptor of STDOUT character-mode device. This setting is used by the ALT_STDOUT family of defines in system.h.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.sys_clk_timer
Identifier:ALT_SYS_CLK
Default Value:none
Value:none
Type:UnquotedString
Destination:system_h_define
Description:Slave descriptor of the system clock timer device. This device provides a periodic interrupt ("tick") and is typically required for RTOS use. This setting defines the value of ALT_SYS_CLK in system.h.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.timestamp_timer
Identifier:ALT_TIMESTAMP_CLK
Default Value:none
Value:none
Type:UnquotedString
Destination:system_h_define
Description:Slave descriptor of timestamp timer device. This device is used by Altera HAL timestamp drivers for high-resolution time measurement. This setting defines the value of ALT_TIMESTAMP_CLK in system.h.
Restrictions:none
+
+
+
+ + diff --git a/software/qsys_tutorial_switchs18_bsp/system.h b/software/qsys_tutorial_switchs18_bsp/system.h new file mode 100644 index 0000000..da066c6 --- /dev/null +++ b/software/qsys_tutorial_switchs18_bsp/system.h @@ -0,0 +1,305 @@ +/* + * system.h - SOPC Builder system and BSP software package information + * + * Machine generated for CPU 'nios2_processor' in SOPC Builder design 'nios_system' + * SOPC Builder design path: C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.sopcinfo + * + * Generated: Thu Nov 10 09:22:57 JST 2016 + */ + +/* + * DO NOT MODIFY THIS FILE + * + * Changing this file will have subtle consequences + * which will almost certainly lead to a nonfunctioning + * system. If you do modify this file, be aware that your + * changes will be overwritten and lost when this file + * is generated again. + * + * DO NOT MODIFY THIS FILE + */ + +/* + * License Agreement + * + * Copyright (c) 2008 + * Altera Corporation, San Jose, California, USA. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + * This agreement shall be governed in all respects by the laws of the State + * of California and by the laws of the United States of America. + */ + +#ifndef __SYSTEM_H_ +#define __SYSTEM_H_ + +/* Include definitions from linker script generator */ +#include "linker.h" + + +/* + * CPU configuration + * + */ + +#define ALT_CPU_ARCHITECTURE "altera_nios2_qsys" +#define ALT_CPU_BIG_ENDIAN 0 +#define ALT_CPU_BREAK_ADDR 0x1820 +#define ALT_CPU_CPU_FREQ 50000000u +#define ALT_CPU_CPU_ID_SIZE 1 +#define ALT_CPU_CPU_ID_VALUE 0x00000000 +#define ALT_CPU_CPU_IMPLEMENTATION "tiny" +#define ALT_CPU_DATA_ADDR_WIDTH 0xe +#define ALT_CPU_DCACHE_LINE_SIZE 0 +#define ALT_CPU_DCACHE_LINE_SIZE_LOG2 0 +#define ALT_CPU_DCACHE_SIZE 0 +#define ALT_CPU_EXCEPTION_ADDR 0x20 +#define ALT_CPU_FLUSHDA_SUPPORTED +#define ALT_CPU_FREQ 50000000 +#define ALT_CPU_HARDWARE_DIVIDE_PRESENT 0 +#define ALT_CPU_HARDWARE_MULTIPLY_PRESENT 0 +#define ALT_CPU_HARDWARE_MULX_PRESENT 0 +#define ALT_CPU_HAS_DEBUG_CORE 1 +#define ALT_CPU_HAS_DEBUG_STUB +#define ALT_CPU_HAS_JMPI_INSTRUCTION +#define ALT_CPU_ICACHE_LINE_SIZE 0 +#define ALT_CPU_ICACHE_LINE_SIZE_LOG2 0 +#define ALT_CPU_ICACHE_SIZE 0 +#define ALT_CPU_INST_ADDR_WIDTH 0xd +#define ALT_CPU_NAME "nios2_processor" +#define ALT_CPU_RESET_ADDR 0x0 + + +/* + * CPU configuration (with legacy prefix - don't use these anymore) + * + */ + +#define NIOS2_BIG_ENDIAN 0 +#define NIOS2_BREAK_ADDR 0x1820 +#define NIOS2_CPU_FREQ 50000000u +#define NIOS2_CPU_ID_SIZE 1 +#define NIOS2_CPU_ID_VALUE 0x00000000 +#define NIOS2_CPU_IMPLEMENTATION "tiny" +#define NIOS2_DATA_ADDR_WIDTH 0xe +#define NIOS2_DCACHE_LINE_SIZE 0 +#define NIOS2_DCACHE_LINE_SIZE_LOG2 0 +#define NIOS2_DCACHE_SIZE 0 +#define NIOS2_EXCEPTION_ADDR 0x20 +#define NIOS2_FLUSHDA_SUPPORTED +#define NIOS2_HARDWARE_DIVIDE_PRESENT 0 +#define NIOS2_HARDWARE_MULTIPLY_PRESENT 0 +#define NIOS2_HARDWARE_MULX_PRESENT 0 +#define NIOS2_HAS_DEBUG_CORE 1 +#define NIOS2_HAS_DEBUG_STUB +#define NIOS2_HAS_JMPI_INSTRUCTION +#define NIOS2_ICACHE_LINE_SIZE 0 +#define NIOS2_ICACHE_LINE_SIZE_LOG2 0 +#define NIOS2_ICACHE_SIZE 0 +#define NIOS2_INST_ADDR_WIDTH 0xd +#define NIOS2_RESET_ADDR 0x0 + + +/* + * Define for each module class mastered by the CPU + * + */ + +#define __ALTERA_AVALON_JTAG_UART +#define __ALTERA_AVALON_ONCHIP_MEMORY2 +#define __ALTERA_AVALON_PIO +#define __ALTERA_NIOS2_QSYS + + +/* + * LEDRs configuration + * + */ + +#define ALT_MODULE_CLASS_LEDRs altera_avalon_pio +#define LEDRS_BASE 0x2010 +#define LEDRS_BIT_CLEARING_EDGE_REGISTER 0 +#define LEDRS_BIT_MODIFYING_OUTPUT_REGISTER 0 +#define LEDRS_CAPTURE 0 +#define LEDRS_DATA_WIDTH 18 +#define LEDRS_DO_TEST_BENCH_WIRING 0 +#define LEDRS_DRIVEN_SIM_VALUE 0 +#define LEDRS_EDGE_TYPE "NONE" +#define LEDRS_FREQ 50000000 +#define LEDRS_HAS_IN 0 +#define LEDRS_HAS_OUT 1 +#define LEDRS_HAS_TRI 0 +#define LEDRS_IRQ -1 +#define LEDRS_IRQ_INTERRUPT_CONTROLLER_ID -1 +#define LEDRS_IRQ_TYPE "NONE" +#define LEDRS_NAME "/dev/LEDRs" +#define LEDRS_RESET_VALUE 0 +#define LEDRS_SPAN 16 +#define LEDRS_TYPE "altera_avalon_pio" + + +/* + * LEDs configuration + * + */ + +#define ALT_MODULE_CLASS_LEDs altera_avalon_pio +#define LEDS_BASE 0x2030 +#define LEDS_BIT_CLEARING_EDGE_REGISTER 0 +#define LEDS_BIT_MODIFYING_OUTPUT_REGISTER 0 +#define LEDS_CAPTURE 0 +#define LEDS_DATA_WIDTH 8 +#define LEDS_DO_TEST_BENCH_WIRING 0 +#define LEDS_DRIVEN_SIM_VALUE 0 +#define LEDS_EDGE_TYPE "NONE" +#define LEDS_FREQ 50000000 +#define LEDS_HAS_IN 0 +#define LEDS_HAS_OUT 1 +#define LEDS_HAS_TRI 0 +#define LEDS_IRQ -1 +#define LEDS_IRQ_INTERRUPT_CONTROLLER_ID -1 +#define LEDS_IRQ_TYPE "NONE" +#define LEDS_NAME "/dev/LEDs" +#define LEDS_RESET_VALUE 0 +#define LEDS_SPAN 16 +#define LEDS_TYPE "altera_avalon_pio" + + +/* + * System configuration + * + */ + +#define ALT_DEVICE_FAMILY "Cyclone IV E" +#define ALT_ENHANCED_INTERRUPT_API_PRESENT +#define ALT_IRQ_BASE NULL +#define ALT_LOG_PORT "/dev/null" +#define ALT_LOG_PORT_BASE 0x0 +#define ALT_LOG_PORT_DEV null +#define ALT_LOG_PORT_TYPE "" +#define ALT_NUM_EXTERNAL_INTERRUPT_CONTROLLERS 0 +#define ALT_NUM_INTERNAL_INTERRUPT_CONTROLLERS 1 +#define ALT_NUM_INTERRUPT_CONTROLLERS 1 +#define ALT_STDERR "/dev/jtag_uart" +#define ALT_STDERR_BASE 0x2040 +#define ALT_STDERR_DEV jtag_uart +#define ALT_STDERR_IS_JTAG_UART +#define ALT_STDERR_PRESENT +#define ALT_STDERR_TYPE "altera_avalon_jtag_uart" +#define ALT_STDIN "/dev/jtag_uart" +#define ALT_STDIN_BASE 0x2040 +#define ALT_STDIN_DEV jtag_uart +#define ALT_STDIN_IS_JTAG_UART +#define ALT_STDIN_PRESENT +#define ALT_STDIN_TYPE "altera_avalon_jtag_uart" +#define ALT_STDOUT "/dev/jtag_uart" +#define ALT_STDOUT_BASE 0x2040 +#define ALT_STDOUT_DEV jtag_uart +#define ALT_STDOUT_IS_JTAG_UART +#define ALT_STDOUT_PRESENT +#define ALT_STDOUT_TYPE "altera_avalon_jtag_uart" +#define ALT_SYSTEM_NAME "nios_system" + + +/* + * hal configuration + * + */ + +#define ALT_MAX_FD 4 +#define ALT_SYS_CLK none +#define ALT_TIMESTAMP_CLK none + + +/* + * jtag_uart configuration + * + */ + +#define ALT_MODULE_CLASS_jtag_uart altera_avalon_jtag_uart +#define JTAG_UART_BASE 0x2040 +#define JTAG_UART_IRQ 5 +#define JTAG_UART_IRQ_INTERRUPT_CONTROLLER_ID 0 +#define JTAG_UART_NAME "/dev/jtag_uart" +#define JTAG_UART_READ_DEPTH 64 +#define JTAG_UART_READ_THRESHOLD 8 +#define JTAG_UART_SPAN 8 +#define JTAG_UART_TYPE "altera_avalon_jtag_uart" +#define JTAG_UART_WRITE_DEPTH 64 +#define JTAG_UART_WRITE_THRESHOLD 8 + + +/* + * onchip_memory configuration + * + */ + +#define ALT_MODULE_CLASS_onchip_memory altera_avalon_onchip_memory2 +#define ONCHIP_MEMORY_ALLOW_IN_SYSTEM_MEMORY_CONTENT_EDITOR 0 +#define ONCHIP_MEMORY_ALLOW_MRAM_SIM_CONTENTS_ONLY_FILE 0 +#define ONCHIP_MEMORY_BASE 0x0 +#define ONCHIP_MEMORY_CONTENTS_INFO "" +#define ONCHIP_MEMORY_DUAL_PORT 0 +#define ONCHIP_MEMORY_GUI_RAM_BLOCK_TYPE "AUTO" +#define ONCHIP_MEMORY_INIT_CONTENTS_FILE "nios_system_onchip_memory" +#define ONCHIP_MEMORY_INIT_MEM_CONTENT 1 +#define ONCHIP_MEMORY_INSTANCE_ID "NONE" +#define ONCHIP_MEMORY_IRQ -1 +#define ONCHIP_MEMORY_IRQ_INTERRUPT_CONTROLLER_ID -1 +#define ONCHIP_MEMORY_NAME "/dev/onchip_memory" +#define ONCHIP_MEMORY_NON_DEFAULT_INIT_FILE_ENABLED 0 +#define ONCHIP_MEMORY_RAM_BLOCK_TYPE "AUTO" +#define ONCHIP_MEMORY_READ_DURING_WRITE_MODE "DONT_CARE" +#define ONCHIP_MEMORY_SINGLE_CLOCK_OP 0 +#define ONCHIP_MEMORY_SIZE_MULTIPLE 1 +#define ONCHIP_MEMORY_SIZE_VALUE 4096 +#define ONCHIP_MEMORY_SPAN 4096 +#define ONCHIP_MEMORY_TYPE "altera_avalon_onchip_memory2" +#define ONCHIP_MEMORY_WRITABLE 1 + + +/* + * pio_0 configuration + * + */ + +#define ALT_MODULE_CLASS_pio_0 altera_avalon_pio +#define PIO_0_BASE 0x2000 +#define PIO_0_BIT_CLEARING_EDGE_REGISTER 0 +#define PIO_0_BIT_MODIFYING_OUTPUT_REGISTER 0 +#define PIO_0_CAPTURE 0 +#define PIO_0_DATA_WIDTH 18 +#define PIO_0_DO_TEST_BENCH_WIRING 0 +#define PIO_0_DRIVEN_SIM_VALUE 0 +#define PIO_0_EDGE_TYPE "NONE" +#define PIO_0_FREQ 50000000 +#define PIO_0_HAS_IN 1 +#define PIO_0_HAS_OUT 0 +#define PIO_0_HAS_TRI 0 +#define PIO_0_IRQ -1 +#define PIO_0_IRQ_INTERRUPT_CONTROLLER_ID -1 +#define PIO_0_IRQ_TYPE "NONE" +#define PIO_0_NAME "/dev/pio_0" +#define PIO_0_RESET_VALUE 0 +#define PIO_0_SPAN 16 +#define PIO_0_TYPE "altera_avalon_pio" + +#endif /* __SYSTEM_H_ */ diff --git a/software/qsys_tutorial_test/.cproject b/software/qsys_tutorial_test/.cproject new file mode 100644 index 0000000..5951167 --- /dev/null +++ b/software/qsys_tutorial_test/.cproject @@ -0,0 +1,508 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + make + + mem_init_install + true + false + false + + + make + + mem_init_generate + true + false + false + + + make + + help + true + false + false + + + + diff --git a/software/qsys_tutorial_test/.project b/software/qsys_tutorial_test/.project new file mode 100644 index 0000000..d17b6f1 --- /dev/null +++ b/software/qsys_tutorial_test/.project @@ -0,0 +1,96 @@ + + + qsys_tutorial_test + + + + + + com.altera.sbtgui.project.makefileBuilder + + + + + com.altera.sbtgui.project.makefileBuilder + + + + + org.eclipse.cdt.managedbuilder.core.genmakebuilder + clean,full,incremental, + + + ?name? + + + + org.eclipse.cdt.make.core.append_environment + true + + + org.eclipse.cdt.make.core.autoBuildTarget + all + + + org.eclipse.cdt.make.core.buildArguments + + + + org.eclipse.cdt.make.core.buildCommand + make + + + org.eclipse.cdt.make.core.buildLocation + ${workspace_loc://qsys_tutorial_test} + + + org.eclipse.cdt.make.core.cleanBuildTarget + clean + + + org.eclipse.cdt.make.core.contents + org.eclipse.cdt.make.core.activeConfigSettings + + + org.eclipse.cdt.make.core.enableAutoBuild + false + + + org.eclipse.cdt.make.core.enableCleanBuild + true + + + org.eclipse.cdt.make.core.enableFullBuild + true + + + org.eclipse.cdt.make.core.fullBuildTarget + all + + + org.eclipse.cdt.make.core.stopOnError + true + + + org.eclipse.cdt.make.core.useDefaultBuildCmd + true + + + + + org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder + full,incremental, + + + + + + org.eclipse.cdt.core.cnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.managedbuilder.core.ScannerConfigNature + org.eclipse.cdt.core.ccnature + com.altera.sbtgui.project.SBTGUINature + com.altera.sbtgui.project.SBTGUIAppNature + com.altera.sbtgui.project.SBTGUIManagedNature + + diff --git a/software/qsys_tutorial_test/Makefile b/software/qsys_tutorial_test/Makefile new file mode 100644 index 0000000..20e0317 --- /dev/null +++ b/software/qsys_tutorial_test/Makefile @@ -0,0 +1,1086 @@ +#------------------------------------------------------------------------------ +# VARIABLES APPENDED TO BY INCLUDED MAKEFILE FRAGMENTS +#------------------------------------------------------------------------------ + +# List of include directories for -I compiler option (-I added when used). +# Includes the BSP. +ALT_INCLUDE_DIRS := + +# List of library directories for -L linker option (-L added when used). +# Includes the BSP. +ALT_LIBRARY_DIRS := + +# List of library names for -l linker option (-l added when used). +# Includes the BSP. +ALT_LIBRARY_NAMES := + +# List of library names for -msys-lib linker option (-msys-lib added when used). +# These are libraries that might be located in the BSP and depend on the BSP +# library, or vice versa +ALT_BSP_DEP_LIBRARY_NAMES := + +# List of dependencies for the linker. This is usually the full pathname +# of each library (*.a) file. +# Includes the BSP. +ALT_LDDEPS := + +# List of root library directories that support running make to build them. +# Includes the BSP and any ALT libraries. +MAKEABLE_LIBRARY_ROOT_DIRS := + +# Generic flags passed to the compiler for different types of input files. +ALT_CFLAGS := +ALT_CXXFLAGS := +ALT_CPPFLAGS := +ALT_ASFLAGS := +ALT_LDFLAGS := + + +#------------------------------------------------------------------------------ +# The adjust-path macro +# +# If COMSPEC/ComSpec is defined, Make is launched from Windows through +# Cygwin. The adjust-path macro converts absolute windows paths into +# unix style paths (Example: c:/dir -> /c/dir). This will ensture +# paths are readable by GNU Make. +# +# If COMSPEC/ComSpec is not defined, Make is launched from linux, and no +# adjustment is necessary +# +#------------------------------------------------------------------------------ + +ifndef COMSPEC +ifdef ComSpec +COMSPEC = $(ComSpec) +endif # ComSpec +endif # COMSPEC + +ifdef COMSPEC # if Windows OS + +ifeq ($(MAKE_VERSION),3.81) +# +# adjust-path/adjust-path-mixed for Mingw Gnu Make on Windows +# +# Example Usage: +# $(call adjust-path,c:/aaa/bbb) => /c/aaa/bbb +# $(call adjust-path-mixed,/c/aaa/bbb) => c:/aaa/bbb +# $(call adjust-path-mixed,/cygdrive/c/aaa/bbb) => c:/aaa/bbb +# + +# +# adjust-path +# - converts back slash characters into forward slashes +# - if input arg ($1) is an empty string then return the empty string +# - if input arg ($1) does not contain the string ":/", then return input arg +# - using sed, convert mixed path [c:/...] into mingw path [/c/...] +define adjust-path +$(strip \ +$(if $1,\ +$(if $(findstring :/,$(subst \,/,$1)),\ +$(shell echo $(subst \,/,$1) | sed -e 's,^\([a-zA-Z]\):/,/\1/,'),\ +$(subst \,/,$1)))) +endef + +# +# adjust-path-mixed +# - converts back slash characters into forward slashes +# - if input arg ($1) is an empty string then return the empty string +# - if input arg ($1) does not begin with a forward slash '/' char, then +# return input arg +# - using sed, convert mingw path [/c/...] or cygwin path [/c/cygdrive/...] +# into a mixed path [c:/...] +define adjust-path-mixed +$(strip \ +$(if $1,\ +$(if $(findstring $(subst \,/,$1),$(patsubst /%,%,$(subst \,/,$1))),\ +$(subst \,/,$1),\ +$(shell echo $(subst \,/,$1) | sed -e 's,^/cygdrive/\([a-zA-Z]\)/,\1:/,' -e 's,^/\([a-zA-Z]\)/,\1:/,')))) +endef + +else # MAKE_VERSION != 3.81 (MAKE_VERSION == 3.80 or MAKE_VERSION == 3.79) +# +# adjust-path for Cygwin Gnu Make +# $(call adjust-path,c:/aaa/bbb) = /cygdrive/c/aaa/bbb +# $(call adjust-path-mixed,/cygdrive/c/aaa/bbb) = c:/aaa/bbb +# +adjust-path = $(if $1,$(shell cygpath -u "$1"),) +adjust-path-mixed = $(if $1,$(shell cygpath -m "$1"),) +endif + +else # !COMSPEC + +adjust-path = $1 +adjust-path-mixed = $1 + +endif # COMSPEC + + +#vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv +# GENERATED SETTINGS START v +#vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv + +#START GENERATED +ACTIVE_BUILD_CONFIG := default +BUILD_CONFIGS := default + +# The following TYPE comment allows tools to identify the 'type' of target this +# makefile is associated with. +# TYPE: APP_MAKEFILE + +# This following VERSION comment indicates the version of the tool used to +# generate this makefile. A makefile variable is provided for VERSION as well. +# ACDS_VERSION: 13.0sp1 +ACDS_VERSION := 13.0sp1 + +# This following BUILD_NUMBER comment indicates the build number of the tool +# used to generate this makefile. +# BUILD_NUMBER: 232 + +# Define path to the application ELF. +# It may be used by the makefile fragments so is defined before including them. +# +ELF := qsys_tutorial_test.elf + +# Paths to C, C++, and assembly source files. +C_SRCS := hello_world_small.c +CXX_SRCS := +ASM_SRCS := + + +# Path to root of object file tree. +OBJ_ROOT_DIR := obj + +# Options to control objdump. +CREATE_OBJDUMP := 1 +OBJDUMP_INCLUDE_SOURCE := 1 +OBJDUMP_FULL_CONTENTS := 0 + +# Options to enable/disable optional files. +CREATE_ELF_DERIVED_FILES := 0 +CREATE_LINKER_MAP := 1 + +# Common arguments for ALT_CFLAGSs +APP_CFLAGS_DEFINED_SYMBOLS := +APP_CFLAGS_UNDEFINED_SYMBOLS := +APP_CFLAGS_OPTIMIZATION := -Os +APP_CFLAGS_DEBUG_LEVEL := -g +APP_CFLAGS_WARNINGS := -Wall +APP_CFLAGS_USER_FLAGS := + +APP_ASFLAGS_USER := +APP_LDFLAGS_USER := + +# Linker options that have default values assigned later if not +# assigned here. +LINKER_SCRIPT := +CRT0 := +SYS_LIB := + +# Define path to the root of the BSP. +BSP_ROOT_DIR := ../qsys_tutorial_test_bsp/ + +# List of application specific include directories, library directories and library names +APP_INCLUDE_DIRS := +APP_LIBRARY_DIRS := +APP_LIBRARY_NAMES := + +# Pre- and post- processor settings. +BUILD_PRE_PROCESS := +BUILD_POST_PROCESS := + +QUARTUS_PROJECT_DIR := ../../ + + +#END GENERATED + +#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +# GENERATED SETTINGS END ^ +#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + +#------------------------------------------------------------------------------ +# DEFAULT TARGET +#------------------------------------------------------------------------------ + +# Define the variable used to echo output if not already defined. +ifeq ($(ECHO),) +ECHO := echo +endif + +# Put "all" rule before included makefile fragments because they may +# define rules and we don't want one of those to become the default rule. +.PHONY : all + +all: + @$(ECHO) [$(APP_NAME) build complete] + +all : build_pre_process libs app build_post_process + + +#------------------------------------------------------------------------------ +# VARIABLES DEPENDENT ON GENERATED CONTENT +#------------------------------------------------------------------------------ + +# Define object file directory per build configuration +CONFIG_OBJ_DIR := $(OBJ_ROOT_DIR)/$(ACTIVE_BUILD_CONFIG) + +ifeq ($(BSP_ROOT_DIR),) +$(error Edit Makefile and provide a value for BSP_ROOT_DIR) +endif + +ifeq ($(wildcard $(BSP_ROOT_DIR)),) +$(error BSP directory does not exist: $(BSP_ROOT_DIR)) +endif + +# Define absolute path to the root of the BSP. +ABS_BSP_ROOT_DIR := $(call adjust-path-mixed,$(shell cd "$(BSP_ROOT_DIR)"; pwd)) + +# Include makefile fragments. Define variable ALT_LIBRARY_ROOT_DIR before +# including each makefile fragment so that it knows the path to itself. +BSP_INCLUDE_FILE := $(BSP_ROOT_DIR)/public.mk +ALT_LIBRARY_ROOT_DIR := $(BSP_ROOT_DIR) +include $(BSP_INCLUDE_FILE) +# C2H will need this to touch the BSP public.mk and avoid the sopc file +# out-of-date error during a BSP make +ABS_BSP_INCLUDE_FILE := $(ABS_BSP_ROOT_DIR)/public.mk + + +ifneq ($(WARNING.SMALL_STACK_SIZE),) +# This WARNING is here to protect you from unknowingly using a very small stack +# If the warning is set, increase your stack size or enable the BSP small stack +# setting to eliminate the warning +$(warning WARNING: $(WARNING.SMALL_STACK_SIZE)) +endif + + +# If the BSP public.mk indicates that ALT_SIM_OPTIMIZE is set, rename the ELF +# by prefixing it with RUN_ON_HDL_SIMULATOR_ONLY_. +ifneq ($(filter -DALT_SIM_OPTIMIZE,$(ALT_CPPFLAGS)),) +ELF := RUN_ON_HDL_SIMULATOR_ONLY_$(ELF) +endif + +# If the BSP public.mk indicates that ALT_PROVIDE_GMON is set, add option to +# download_elf target +ifneq ($(filter -DALT_PROVIDE_GMON,$(ALT_CPPFLAGS)),) +GMON_OUT_FILENAME := gmon.out +WRITE_GMON_OPTION := --write-gmon $(GMON_OUT_FILENAME) +endif + +# Name of ELF application. +APP_NAME := $(basename $(ELF)) + +# Set to defaults if variables not already defined in settings. +ifeq ($(LINKER_SCRIPT),) +LINKER_SCRIPT := $(BSP_LINKER_SCRIPT) +endif +ifeq ($(CRT0),) +CRT0 := $(BSP_CRT0) +endif +ifeq ($(SYS_LIB),) +SYS_LIB := $(BSP_SYS_LIB) +endif + +OBJDUMP_NAME := $(APP_NAME).objdump +OBJDUMP_FLAGS := --disassemble --syms --all-header +ifeq ($(OBJDUMP_INCLUDE_SOURCE),1) +OBJDUMP_FLAGS += --source +endif +ifeq ($(OBJDUMP_FULL_CONTENTS),1) +OBJDUMP_FLAGS += --full-contents +endif + +# Create list of linker dependencies (*.a files). +APP_LDDEPS := $(ALT_LDDEPS) $(LDDEPS) + +# Take lists and add required prefixes. +APP_INC_DIRS := $(addprefix -I, $(ALT_INCLUDE_DIRS) $(APP_INCLUDE_DIRS) $(INC_DIRS)) +ASM_INC_PREFIX := -Wa,-I +APP_ASM_INC_DIRS := $(addprefix $(ASM_INC_PREFIX), $(ALT_INCLUDE_DIRS) $(APP_INCLUDE_DIRS) $(INC_DIRS)) +APP_LIB_DIRS := $(addprefix -L, $(ALT_LIBRARY_DIRS) $(APP_LIBRARY_DIRS) $(LIB_DIRS)) +APP_LIBS := $(addprefix -l, $(ALT_LIBRARY_NAMES) $(APP_LIBRARY_NAMES) $(LIBS)) + +ifneq ($(AVOID_NIOS2_GCC3_OPTIONS),) + +# +# Avoid Nios II GCC 3.X options. +# + +# Detect if small newlib C library is requested. +# If yes, remove the -msmallc option because it is +# now handled by other means. +ifneq ($(filter -msmallc,$(ALT_LDFLAGS)),) + ALT_LDFLAGS := $(filter-out -msmallc,$(ALT_LDFLAGS)) + ALT_C_LIBRARY := smallc +else + ALT_C_LIBRARY := c +endif + +# Put each BSP dependent library in a group to avoid circular dependencies. +APP_BSP_DEP_LIBS := $(foreach l,$(ALT_BSP_DEP_LIBRARY_NAMES),-Wl,--start-group -l$(ALT_C_LIBRARY) -lgcc -l$(l) -Wl,--end-group) + +else # !AVOID_NIOS2_GCC3_OPTIONS + +# +# Use Nios II GCC 3.X options. +# +APP_BSP_DEP_LIBS := $(addprefix -msys-lib=, $(ALT_BSP_DEP_LIBRARY_NAMES)) + +endif # !AVOID_NIOS2_GCC3_OPTIONS + +# Arguments for the C preprocessor, C/C++ compiler, assembler, and linker. +APP_CFLAGS := $(APP_CFLAGS_DEFINED_SYMBOLS) \ + $(APP_CFLAGS_UNDEFINED_SYMBOLS) \ + $(APP_CFLAGS_OPTIMIZATION) \ + $(APP_CFLAGS_DEBUG_LEVEL) \ + $(APP_CFLAGS_WARNINGS) \ + $(APP_CFLAGS_USER_FLAGS) \ + $(ALT_CFLAGS) \ + $(CFLAGS) + +# Arguments only for the C++ compiler. +APP_CXXFLAGS := $(ALT_CXXFLAGS) $(CXXFLAGS) + +# Arguments only for the C preprocessor. +# Prefix each include directory with -I. +APP_CPPFLAGS := $(APP_INC_DIRS) \ + $(ALT_CPPFLAGS) \ + $(CPPFLAGS) + +# Arguments only for the assembler. +APP_ASFLAGS := $(APP_ASM_INC_DIRS) \ + $(ALT_ASFLAGS) \ + $(APP_ASFLAGS_USER) \ + $(ASFLAGS) + +# Arguments only for the linker. +APP_LDFLAGS := $(APP_LDFLAGS_USER) + +ifneq ($(LINKER_SCRIPT),) +APP_LDFLAGS += -T'$(LINKER_SCRIPT)' +endif + +ifneq ($(AVOID_NIOS2_GCC3_OPTIONS),) + +# Avoid Nios II GCC 3.x options. +ifneq ($(CRT0),) +APP_LDFLAGS += $(CRT0) +endif + +# The equivalent of the -msys-lib option is provided +# by the GROUP() command in the linker script. +# Note this means the SYS_LIB variable is now ignored. + +else # !AVOID_NIOS2_GCC3_OPTIONS + +# Use Nios II GCC 3.x options. +ifneq ($(CRT0),) +APP_LDFLAGS += -msys-crt0='$(CRT0)' +endif +ifneq ($(SYS_LIB),) +APP_LDFLAGS += -msys-lib=$(SYS_LIB) +endif + +endif # !AVOID_NIOS2_GCC3_OPTIONS + +APP_LDFLAGS += \ + $(APP_LIB_DIRS) \ + $(ALT_LDFLAGS) \ + $(LDFLAGS) + +LINKER_MAP_NAME := $(APP_NAME).map +ifeq ($(CREATE_LINKER_MAP), 1) +APP_LDFLAGS += -Wl,-Map=$(LINKER_MAP_NAME) +endif + +# QUARTUS_PROJECT_DIR and SOPC_NAME need to be defined if you want the +# mem_init_install target of the mem_init.mk (located in the associated BSP) +# to know how to copy memory initialization files (e.g. .dat, .hex) into +# directories required for Quartus compilation or RTL simulation. + +# Defining QUARTUS_PROJECT_DIR causes mem_init_install to copy memory +# initialization files into your Quartus project directory. This is required +# to provide the initial memory contents of FPGA memories that can be +# initialized by the programming file (.sof) or Hardcopy ROMs. It is also used +# for VHDL simulation of on-chip memories. + +# Defining SOPC_NAME causes the mem_init_install target to copy memory +# initialization files into your RTL simulation directory. This is required +# to provide the initial memory contents of all memories that can be +# initialized by RTL simulation. This variable should be set to the same name +# as your SOPC Builder system name. For example, if you have a system called +# "foo.sopc", this variable should be set to "foo". + +# If SOPC_NAME is not set and QUARTUS_PROJECT_DIR is set, then derive SOPC_NAME. +ifeq ($(SOPC_NAME),) +ifneq ($(QUARTUS_PROJECT_DIR),) +SOPC_NAME := $(basename $(notdir $(wildcard $(QUARTUS_PROJECT_DIR)/*.sopcinfo))) +endif +endif + +# Defining JDI_FILE is required to specify the JTAG Debug Information File +# path. This file is generated by Quartus, and is needed along with the +# .sopcinfo file to resolve processor instance ID's from names in a multi-CPU +# systems. For multi-CPU systems, the processor instance ID is used to select +# from multiple CPU's during ELF download. + +# Both JDI_FILE and SOPCINFO_FILE are provided by the BSP if they found during +# BSP creation. If JDI_FILE is not set and QUARTUS_PROJECT_DIR is set, then +# derive JDI_FILE. We do not attempt to derive SOPCINFO_FILE since there may be +# multiple .sopcinfo files in a Quartus project. +ifeq ($(JDI_FILE),) +ifneq ($(QUARTUS_PROJECT_DIR),) +JDI_FILE := $(wildcard $(QUARTUS_PROJECT_DIR)/*.jdi) +endif +endif + +# Path to root runtime directory used for hdl simulation +RUNTIME_ROOT_DIR := $(CONFIG_OBJ_DIR)/runtime + + + +#------------------------------------------------------------------------------ +# MAKEFILE INCLUDES DEPENDENT ON GENERATED CONTENT +#------------------------------------------------------------------------------ +# mem_init.mk is a generated makefile fragment. This file defines all targets +# used to generate HDL initialization simulation files and pre-initialized +# onchip memory files. +MEM_INIT_FILE := $(BSP_ROOT_DIR)/mem_init.mk +include $(MEM_INIT_FILE) + +# Create list of object files to be built using the list of source files. +# The source file hierarchy is preserved in the object tree. +# The supported file extensions are: +# +# .c - for C files +# .cxx .cc .cpp - for C++ files +# .S .s - for assembler files +# +# Handle source files specified by --src-dir & --src-rdir differently, to +# save some processing time in calling the adjust-path macro. + +OBJ_LIST_C := $(patsubst %.c,%.o,$(filter %.c,$(C_SRCS))) +OBJ_LIST_CPP := $(patsubst %.cpp,%.o,$(filter %.cpp,$(CXX_SRCS))) +OBJ_LIST_CXX := $(patsubst %.cxx,%.o,$(filter %.cxx,$(CXX_SRCS))) +OBJ_LIST_CC := $(patsubst %.cc,%.o,$(filter %.cc,$(CXX_SRCS))) +OBJ_LIST_S := $(patsubst %.S,%.o,$(filter %.S,$(ASM_SRCS))) +OBJ_LIST_SS := $(patsubst %.s,%.o,$(filter %.s,$(ASM_SRCS))) + +OBJ_LIST := $(sort $(OBJ_LIST_C) $(OBJ_LIST_CPP) $(OBJ_LIST_CXX) \ + $(OBJ_LIST_CC) $(OBJ_LIST_S) $(OBJ_LIST_SS)) + +SDIR_OBJ_LIST_C := $(patsubst %.c,%.o,$(filter %.c,$(SDIR_C_SRCS))) +SDIR_OBJ_LIST_CPP := $(patsubst %.cpp,%.o,$(filter %.cpp,$(SDIR_CXX_SRCS))) +SDIR_OBJ_LIST_CXX := $(patsubst %.cxx,%.o,$(filter %.cxx,$(SDIR_CXX_SRCS))) +SDIR_OBJ_LIST_CC := $(patsubst %.cc,%.o,$(filter %.cc,$(SDIR_CXX_SRCS))) +SDIR_OBJ_LIST_S := $(patsubst %.S,%.o,$(filter %.S,$(SDIR_ASM_SRCS))) +SDIR_OBJ_LIST_SS := $(patsubst %.s,%.o,$(filter %.s,$(SDIR_ASM_SRCS))) + +SDIR_OBJ_LIST := $(sort $(SDIR_OBJ_LIST_C) $(SDIR_OBJ_LIST_CPP) \ + $(SDIR_OBJ_LIST_CXX) $(SDIR_OBJ_LIST_CC) $(SDIR_OBJ_LIST_S) \ + $(SDIR_OBJ_LIST_SS)) + +# Relative-pathed objects that being with "../" are handled differently. +# +# Regular objects are created as +# $(CONFIG_OBJ_DIR)//.o +# where the path structure is maintained under the obj directory. This +# applies for both absolute and relative paths; in the absolute path +# case this means the entire source path will be recreated under the obj +# directory. This is done to allow two source files with the same name +# to be included as part of the project. +# +# Note: On Cygwin, the path recreated under the obj directory will be +# the cygpath -u output path. +# +# Relative-path objects that begin with "../" cause problems under this +# scheme, as $(CONFIG_OBJ_DIR)/..// can potentially put the object +# files anywhere in the system, creating clutter and polluting the source tree. +# As such, their paths are flattened - the object file created will be +# $(CONFIG_OBJ_DIR)/.o. Due to this, two files specified with +# "../" in the beginning cannot have the same name in the project. VPATH +# will be set for these sources to allow make to relocate the source file +# via %.o rules. +# +# The following lines separate the object list into the flatten and regular +# lists, and then handles them as appropriate. + +FLATTEN_OBJ_LIST := $(filter ../%,$(OBJ_LIST)) +FLATTEN_APP_OBJS := $(addprefix $(CONFIG_OBJ_DIR)/,$(notdir $(FLATTEN_OBJ_LIST))) + +REGULAR_OBJ_LIST := $(filter-out $(FLATTEN_OBJ_LIST),$(OBJ_LIST)) +REGULAR_OBJ_LIST_C := $(filter $(OBJ_LIST_C),$(REGULAR_OBJ_LIST)) +REGULAR_OBJ_LIST_CPP := $(filter $(OBJ_LIST_CPP),$(REGULAR_OBJ_LIST)) +REGULAR_OBJ_LIST_CXX := $(filter $(OBJ_LIST_CXX),$(REGULAR_OBJ_LIST)) +REGULAR_OBJ_LIST_CC := $(filter $(OBJ_LIST_CC),$(REGULAR_OBJ_LIST)) +REGULAR_OBJ_LIST_S := $(filter $(OBJ_LIST_S),$(REGULAR_OBJ_LIST)) +REGULAR_OBJ_LIST_SS := $(filter $(OBJ_LIST_SS),$(REGULAR_OBJ_LIST)) + +FLATTEN_SDIR_OBJ_LIST := $(filter ../%,$(SDIR_OBJ_LIST)) +FLATTEN_SDIR_APP_OBJS := $(addprefix $(CONFIG_OBJ_DIR)/,$(notdir $(FLATTEN_SDIR_OBJ_LIST))) + +REGULAR_SDIR_OBJ_LIST := $(filter-out $(FLATTEN_SDIR_OBJ_LIST),$(SDIR_OBJ_LIST)) +REGULAR_SDIR_OBJ_LIST_C := $(filter $(SDIR_OBJ_LIST_C),$(REGULAR_SDIR_OBJ_LIST)) +REGULAR_SDIR_OBJ_LIST_CPP := $(filter $(SDIR_OBJ_LIST_CPP),$(REGULAR_SDIR_OBJ_LIST)) +REGULAR_SDIR_OBJ_LIST_CXX := $(filter $(SDIR_OBJ_LIST_CXX),$(REGULAR_SDIR_OBJ_LIST)) +REGULAR_SDIR_OBJ_LIST_CC := $(filter $(SDIR_OBJ_LIST_CC),$(REGULAR_SDIR_OBJ_LIST)) +REGULAR_SDIR_OBJ_LIST_S := $(filter $(SDIR_OBJ_LIST_S),$(REGULAR_SDIR_OBJ_LIST)) +REGULAR_SDIR_OBJ_LIST_SS := $(filter $(SDIR_OBJ_LIST_SS),$(REGULAR_SDIR_OBJ_LIST)) + +VPATH := $(sort $(dir $(FLATTEN_OBJ_LIST)) $(dir $(FLATTEN_SDIR_OBJ_LIST))) + +APP_OBJS_C := $(addprefix $(CONFIG_OBJ_DIR)/,\ + $(REGULAR_SDIR_OBJ_LIST_C) \ + $(foreach s,$(REGULAR_OBJ_LIST_C),$(call adjust-path,$s))) + +APP_OBJS_CPP := $(addprefix $(CONFIG_OBJ_DIR)/,\ + $(REGULAR_SDIR_OBJ_LIST_CPP) \ + $(foreach s,$(REGULAR_OBJ_LIST_CPP),$(call adjust-path,$s))) + +APP_OBJS_CXX := $(addprefix $(CONFIG_OBJ_DIR)/,\ + $(REGULAR_SDIR_OBJ_LIST_CXX) \ + $(foreach s,$(REGULAR_OBJ_LIST_CXX),$(call adjust-path,$s))) + +APP_OBJS_CC := $(addprefix $(CONFIG_OBJ_DIR)/,\ + $(REGULAR_SDIR_OBJ_LIST_CC) \ + $(foreach s,$(REGULAR_OBJ_LIST_CC),$(call adjust-path,$s))) + +APP_OBJS_S := $(addprefix $(CONFIG_OBJ_DIR)/,\ + $(REGULAR_SDIR_OBJ_LIST_S) \ + $(foreach s,$(REGULAR_OBJ_LIST_S),$(call adjust-path,$s))) + +APP_OBJS_SS := $(addprefix $(CONFIG_OBJ_DIR)/,\ + $(REGULAR_SDIR_OBJ_LIST_SS) \ + $(foreach s,$(REGULAR_OBJ_LIST_SS),$(call adjust-path,$s))) + +APP_OBJS := $(APP_OBJS_C) $(APP_OBJS_CPP) $(APP_OBJS_CXX) $(APP_OBJS_CC) \ + $(APP_OBJS_S) $(APP_OBJS_SS) \ + $(FLATTEN_APP_OBJS) $(FLATTEN_SDIR_APP_OBJS) + +# Add any extra user-provided object files. +APP_OBJS += $(OBJS) + +# Create list of dependancy files for each object file. +APP_DEPS := $(APP_OBJS:.o=.d) + +# Patch the Elf file with system specific information + +# Patch the Elf with the name of the sopc system +ifneq ($(SOPC_NAME),) +ELF_PATCH_FLAG += --sopc_system_name $(SOPC_NAME) +endif + +# Patch the Elf with the absolute path to the Quartus Project Directory +ifneq ($(QUARTUS_PROJECT_DIR),) +ABS_QUARTUS_PROJECT_DIR := $(call adjust-path-mixed,$(shell cd "$(QUARTUS_PROJECT_DIR)"; pwd)) +ELF_PATCH_FLAG += --quartus_project_dir "$(ABS_QUARTUS_PROJECT_DIR)" +endif + +# Patch the Elf and download args with the JDI_FILE if specified +ifneq ($(wildcard $(JDI_FILE)),) +ELF_PATCH_FLAG += --jdi $(JDI_FILE) +DOWNLOAD_JDI_FLAG := --jdi $(JDI_FILE) +endif + +# Patch the Elf with the SOPCINFO_FILE if specified +ifneq ($(wildcard $(SOPCINFO_FILE)),) +ELF_PATCH_FLAG += --sopcinfo $(SOPCINFO_FILE) +endif + +# Use the DOWNLOAD_CABLE variable to specify which JTAG cable to use. +# This is not needed if you only have one cable. +ifneq ($(DOWNLOAD_CABLE),) +DOWNLOAD_CABLE_FLAG := --cable '$(DOWNLOAD_CABLE)' +endif + + +#------------------------------------------------------------------------------ +# BUILD PRE/POST PROCESS +#------------------------------------------------------------------------------ +build_pre_process : + $(BUILD_PRE_PROCESS) + +build_post_process : + $(BUILD_POST_PROCESS) + +.PHONY: build_pre_process build_post_process + + +#------------------------------------------------------------------------------ +# TOOLS +#------------------------------------------------------------------------------ + +# +# Set tool default variables if not already defined. +# If these are defined, they would typically be defined in an +# included makefile fragment. +# +ifeq ($(DEFAULT_CROSS_COMPILE),) +DEFAULT_CROSS_COMPILE := nios2-elf- +endif + +ifeq ($(DEFAULT_STACK_REPORT),) +DEFAULT_STACKREPORT := nios2-stackreport +endif + +ifeq ($(DEFAULT_DOWNLOAD),) +DEFAULT_DOWNLOAD := nios2-download +endif + +ifeq ($(DEFAULT_FLASHPROG),) +DEFAULT_FLASHPROG := nios2-flash-programmer +endif + +ifeq ($(DEFAULT_ELFPATCH),) +DEFAULT_ELFPATCH := nios2-elf-insert +endif + +ifeq ($(DEFAULT_RM),) +DEFAULT_RM := rm -f +endif + +ifeq ($(DEFAULT_CP),) +DEFAULT_CP := cp -f +endif + +ifeq ($(DEFAULT_MKDIR),) +DEFAULT_MKDIR := mkdir -p +endif + +# +# Set tool variables to defaults if not already defined. +# If these are defined, they would typically be defined by a +# setting in the generated portion of this makefile. +# +ifeq ($(CROSS_COMPILE),) +CROSS_COMPILE := $(DEFAULT_CROSS_COMPILE) +endif + +ifeq ($(origin CC),default) +CC := $(CROSS_COMPILE)gcc -xc +endif + +ifeq ($(origin CXX),default) +CXX := $(CROSS_COMPILE)gcc -xc++ +endif + +ifeq ($(origin AS),default) +AS := $(CROSS_COMPILE)gcc +endif + +ifeq ($(origin AR),default) +AR := $(CROSS_COMPILE)ar +endif + +ifeq ($(origin LD),default) +LD := $(CROSS_COMPILE)g++ +endif + +ifeq ($(origin NM),default) +NM := $(CROSS_COMPILE)nm +endif + +ifeq ($(origin RM),default) +RM := $(DEFAULT_RM) +endif + +ifeq ($(origin CP),default) +CP := $(DEFAULT_CP) +endif + +ifeq ($(OBJDUMP),) +OBJDUMP := $(CROSS_COMPILE)objdump +endif + +ifeq ($(OBJCOPY),) +OBJCOPY := $(CROSS_COMPILE)objcopy +endif + +ifeq ($(STACKREPORT),) +ifeq ($(CROSS_COMPILE),nios2-elf-) +STACKREPORT := $(DEFAULT_STACKREPORT) +else +DISABLE_STACKREPORT := 1 +endif +endif + +ifeq ($(DOWNLOAD),) +DOWNLOAD := $(DEFAULT_DOWNLOAD) +endif + +ifeq ($(FLASHPROG),) +FLASHPROG := $(DEFAULT_FLASHPROG) +endif + +ifeq ($(ELFPATCH),) +ELFPATCH := $(DEFAULT_ELFPATCH) +endif + +ifeq ($(MKDIR),) +MKDIR := $(DEFAULT_MKDIR) +endif + +#------------------------------------------------------------------------------ +# PATTERN RULES TO BUILD OBJECTS +#------------------------------------------------------------------------------ + +define compile.c +@$(ECHO) Info: Compiling $< to $@ +@$(MKDIR) $(@D) +$(CC) -MP -MMD -c $(APP_CPPFLAGS) $(APP_CFLAGS) -o $@ $< +$(CC_POST_PROCESS) +endef + +define compile.cpp +@$(ECHO) Info: Compiling $< to $@ +@$(MKDIR) $(@D) +$(CXX) -MP -MMD -c $(APP_CPPFLAGS) $(APP_CXXFLAGS) $(APP_CFLAGS) -o $@ $< +$(CXX_POST_PROCESS) +endef + +# If assembling with the compiler, ensure "-Wa," is prepended to all APP_ASFLAGS +ifeq ($(AS),$(patsubst %as,%,$(AS))) +COMMA := , +APP_ASFLAGS := $(filter-out $(APP_CFLAGS),$(addprefix -Wa$(COMMA),$(patsubst -Wa$(COMMA)%,%,$(APP_ASFLAGS)))) +endif + +define compile.s +@$(ECHO) Info: Assembling $< to $@ +@$(MKDIR) $(@D) +$(AS) -MP -MMD -c $(APP_CPPFLAGS) $(APP_CFLAGS) $(APP_ASFLAGS) -o $@ $< +$(AS_POST_PROCESS) +endef + +ifeq ($(MAKE_VERSION),3.81) +.SECONDEXPANSION: + +$(APP_OBJS_C): $(CONFIG_OBJ_DIR)/%.o: $$(call adjust-path-mixed,%.c) + $(compile.c) + +$(APP_OBJS_CPP): $(CONFIG_OBJ_DIR)/%.o: $$(call adjust-path-mixed,%.cpp) + $(compile.cpp) + +$(APP_OBJS_CC): $(CONFIG_OBJ_DIR)/%.o: $$(call adjust-path-mixed,%.cc) + $(compile.cpp) + +$(APP_OBJS_CXX): $(CONFIG_OBJ_DIR)/%.o: $$(call adjust-path-mixed,%.cxx) + $(compile.cpp) + +$(APP_OBJS_S): $(CONFIG_OBJ_DIR)/%.o: $$(call adjust-path-mixed,%.S) + $(compile.s) + +$(APP_OBJS_SS): $(CONFIG_OBJ_DIR)/%.o: $$(call adjust-path-mixed,%.s) + $(compile.s) + +endif # MAKE_VERSION != 3.81 + +$(CONFIG_OBJ_DIR)/%.o: %.c + $(compile.c) + +$(CONFIG_OBJ_DIR)/%.o: %.cpp + $(compile.cpp) + +$(CONFIG_OBJ_DIR)/%.o: %.cc + $(compile.cpp) + +$(CONFIG_OBJ_DIR)/%.o: %.cxx + $(compile.cpp) + +$(CONFIG_OBJ_DIR)/%.o: %.S + $(compile.s) + +$(CONFIG_OBJ_DIR)/%.o: %.s + $(compile.s) + + +#------------------------------------------------------------------------------ +# PATTERN RULES TO INTERMEDIATE FILES +#------------------------------------------------------------------------------ + +$(CONFIG_OBJ_DIR)/%.s: %.c + @$(ECHO) Info: Compiling $< to $@ + @$(MKDIR) $(@D) + $(CC) -S $(APP_CPPFLAGS) $(APP_CFLAGS) -o $@ $< + +$(CONFIG_OBJ_DIR)/%.s: %.cpp + @$(ECHO) Info: Compiling $< to $@ + @$(MKDIR) $(@D) + $(CXX) -S $(APP_CPPFLAGS) $(APP_CXXFLAGS) $(APP_CFLAGS) -o $@ $< + +$(CONFIG_OBJ_DIR)/%.s: %.cc + @$(ECHO) Info: Compiling $< to $@ + @$(MKDIR) $(@D) + $(CXX) -S $(APP_CPPFLAGS) $(APP_CXXFLAGS) $(APP_CFLAGS) -o $@ $< + +$(CONFIG_OBJ_DIR)/%.s: %.cxx + @$(ECHO) Info: Compiling $< to $@ + @$(MKDIR) $(@D) + $(CXX) -S $(APP_CPPFLAGS) $(APP_CXXFLAGS) $(APP_CFLAGS) -o $@ $< + +$(CONFIG_OBJ_DIR)/%.i: %.c + @$(ECHO) Info: Compiling $< to $@ + @$(MKDIR) $(@D) + $(CC) -E $(APP_CPPFLAGS) $(APP_CFLAGS) -o $@ $< + +$(CONFIG_OBJ_DIR)/%.i: %.cpp + @$(ECHO) Info: Compiling $< to $@ + @$(MKDIR) $(@D) + $(CXX) -E $(APP_CPPFLAGS) $(APP_CXXFLAGS) $(APP_CFLAGS) -o $@ $< + +$(CONFIG_OBJ_DIR)/%.i: %.cc + @$(ECHO) Info: Compiling $< to $@ + @$(MKDIR) $(@D) + $(CXX) -E $(APP_CPPFLAGS) $(APP_CXXFLAGS) $(APP_CFLAGS) -o $@ $< + +$(CONFIG_OBJ_DIR)/%.i: %.cxx + @$(ECHO) Info: Compiling $< to $@ + @$(MKDIR) $(@D) + $(CXX) -E $(APP_CPPFLAGS) $(APP_CXXFLAGS) $(APP_CFLAGS) -o $@ $< + + +#------------------------------------------------------------------------------ +# TARGET RULES +#------------------------------------------------------------------------------ + +.PHONY : help +help : + @$(ECHO) "Summary of Makefile targets" + @$(ECHO) " Build targets:" + @$(ECHO) " all (default) - Application and all libraries (including BSP)" + @$(ECHO) " bsp - Just the BSP" + @$(ECHO) " libs - All libraries (including BSP)" + @$(ECHO) " flash - All flash files" + @$(ECHO) " mem_init_generate - All memory initialization files" +ifeq ($(QSYS),1) + @$(ECHO) " mem_init_install - This target is deprecated for QSys Systems" + @$(ECHO) " --> Use the mem_init_generate target and then" + @$(ECHO) " add the generated meminit.qip file to your" + @$(ECHO) " Quartus II Project." +else # if QSYS != 1 + @$(ECHO) " mem_init_install - Copy memory initialization files to Quartus II project" +endif # QSYS == 1 + @$(ECHO) + @$(ECHO) " Clean targets:" + @$(ECHO) " clean_all - Application and all libraries (including BSP)" + @$(ECHO) " clean - Just the application" + @$(ECHO) " clean_bsp - Just the BSP" + @$(ECHO) " clean_libs - All libraries (including BSP)" + @$(ECHO) + @$(ECHO) " Run targets:" + @$(ECHO) " download-elf - Download and run your elf executable" + @$(ECHO) " program-flash - Program flash contents to the board" + +# Handy rule to skip making libraries and just make application. +.PHONY : app +app : $(ELF) + +ifeq ($(CREATE_OBJDUMP), 1) +app : $(OBJDUMP_NAME) +endif + +ifeq ($(CREATE_ELF_DERIVED_FILES),1) +app : elf_derived_files +endif + +.PHONY: elf_derived_files +elf_derived_files: default_mem_init + +# Handy rule for making just the BSP. +.PHONY : bsp +bsp : + @$(ECHO) Info: Building $(BSP_ROOT_DIR) + @$(MAKE) --no-print-directory -C $(BSP_ROOT_DIR) + + +# Make sure all makeable libraries (including the BSP) are up-to-date. +LIB_TARGETS := $(patsubst %,%-recurs-make-lib,$(MAKEABLE_LIBRARY_ROOT_DIRS)) + +.PHONY : libs +libs : $(LIB_TARGETS) + +ifneq ($(strip $(LIB_TARGETS)),) +$(LIB_TARGETS): %-recurs-make-lib: + @$(ECHO) Info: Building $* + $(MAKE) --no-print-directory -C $* +endif + +ifneq ($(strip $(APP_LDDEPS)),) +$(APP_LDDEPS): libs + @true +endif + +# Rules to force your project to rebuild or relink +# .force_relink file will cause any application that depends on this project to relink +# .force_rebuild file will cause this project to rebuild object files +# .force_rebuild_all file will cause this project and any project that depends on this project to rebuild object files + +FORCE_RELINK_DEP := .force_relink +FORCE_REBUILD_DEP := .force_rebuild +FORCE_REBUILD_ALL_DEP := .force_rebuild_all +FORCE_REBUILD_DEP_LIST := $(CONFIG_OBJ_DIR)/$(FORCE_RELINK_DEP) $(CONFIG_OBJ_DIR)/$(FORCE_REBUILD_DEP) $(FORCE_REBUILD_ALL_DEP) + +$(FORCE_REBUILD_DEP_LIST): + +$(APP_OBJS): $(wildcard $(CONFIG_OBJ_DIR)/$(FORCE_REBUILD_DEP)) $(wildcard $(addsuffix /$(FORCE_REBUILD_ALL_DEP), . $(ALT_LIBRARY_DIRS))) + +$(ELF): $(wildcard $(addsuffix /$(FORCE_RELINK_DEP), $(CONFIG_OBJ_DIR) $(ALT_LIBRARY_DIRS))) + + +# Clean just the application. +.PHONY : clean +ifeq ($(CREATE_ELF_DERIVED_FILES),1) +clean : clean_elf_derived_files +endif + +clean : + @$(RM) -r $(ELF) $(OBJDUMP_NAME) $(LINKER_MAP_NAME) $(OBJ_ROOT_DIR) $(RUNTIME_ROOT_DIR) $(FORCE_REBUILD_DEP_LIST) + @$(ECHO) [$(APP_NAME) clean complete] + +# Clean just the BSP. +.PHONY : clean_bsp +clean_bsp : + @$(ECHO) Info: Cleaning $(BSP_ROOT_DIR) + @$(MAKE) --no-print-directory -C $(BSP_ROOT_DIR) clean + +# Clean all makeable libraries including the BSP. +LIB_CLEAN_TARGETS := $(patsubst %,%-recurs-make-clean-lib,$(MAKEABLE_LIBRARY_ROOT_DIRS)) + +.PHONY : clean_libs +clean_libs : $(LIB_CLEAN_TARGETS) + +ifneq ($(strip $(LIB_CLEAN_TARGETS)),) +$(LIB_CLEAN_TARGETS): %-recurs-make-clean-lib: + @$(ECHO) Info: Cleaning $* + $(MAKE) --no-print-directory -C $* clean +endif + +.PHONY: clean_elf_derived_files +clean_elf_derived_files: mem_init_clean + +# Clean application and all makeable libraries including the BSP. +.PHONY : clean_all +clean_all : clean mem_init_clean clean_libs + +# Include the dependency files unless the make goal is performing a clean +# of the application. +ifneq ($(firstword $(MAKECMDGOALS)),clean) +ifneq ($(firstword $(MAKECMDGOALS)),clean_all) +-include $(APP_DEPS) +endif +endif + +.PHONY : download-elf +download-elf : $(ELF) + @if [ "$(DOWNLOAD)" = "none" ]; \ + then \ + $(ECHO) Downloading $(ELF) not supported; \ + else \ + $(ECHO) Info: Downloading $(ELF); \ + $(DOWNLOAD) --go --cpu_name=$(CPU_NAME) $(DOWNLOAD_CABLE_FLAG) $(SOPC_SYSID_FLAG) $(DOWNLOAD_JDI_FLAG) $(WRITE_GMON_OPTION) $(ELF); \ + fi + +# Delete the target of a rule if it has changed and its commands exit +# with a nonzero exit status. +.DELETE_ON_ERROR: + +# Rules for flash programming commands +PROGRAM_FLASH_SUFFIX := -program +PROGRAM_FLASH_TARGET := $(addsuffix $(PROGRAM_FLASH_SUFFIX), $(FLASH_FILES)) + +.PHONY : program-flash +program-flash : $(PROGRAM_FLASH_TARGET) + +.PHONY : $(PROGRAM_FLASH_TARGET) +$(PROGRAM_FLASH_TARGET) : flash + @if [ "$(FLASHPROG)" = "none" ]; \ + then \ + $(ECHO) Programming flash not supported; \ + else \ + $(ECHO) Info: Programming $(basename $@).flash; \ + if [ -z "$($(basename $@)_EPCS_FLAGS)" ]; \ + then \ + $(ECHO) $(FLASHPROG) $(SOPC_SYSID_FLAG) --base=$($(basename $@)_START) $(basename $@).flash; \ + $(FLASHPROG) $(DOWNLOAD_CABLE_FLAG) $(SOPC_SYSID_FLAG) --base=$($(basename $@)_START) $(basename $@).flash; \ + else \ + $(ECHO) $(FLASHPROG) $(SOPC_SYSID_FLAG) --epcs --base=$($(basename $@)_START) $(basename $@).flash; \ + $(FLASHPROG) $(DOWNLOAD_CABLE_FLAG) $(SOPC_SYSID_FLAG) --epcs --base=$($(basename $@)_START) $(basename $@).flash; \ + fi \ + fi + + +# Rules for simulating with an HDL Simulator [QSYS only] +ifeq ($(QSYS),1) +IP_MAKE_SIMSCRIPT := ip-make-simscript + +ifeq ($(VSIM),) +VSIM_EXE := "$(if $(VSIM_DIR),$(VSIM_DIR)/,)vsim" +ifeq ($(ENABLE_VSIM_GUI),1) +VSIM := $(VSIM_EXE) -gui +else +VSIM := $(VSIM_EXE) -c +endif # ENABLE_VSIM_GUI == 1 +endif # VSIM not set + +ifeq ($(SPD),) +ifneq ($(ABS_QUARTUS_PROJECT_DIR),) +ifneq ($(SOPC_NAME),) +SPD := $(ABS_QUARTUS_PROJECT_DIR)/$(SOPC_NAME)_tb.spd +endif # SOPC_NAME set +endif # ABS_QUARTUS_PROJECT_DIR set +endif # SPD == empty string + +ifeq ($(MSIM_SCRIPT),) +SIM_SCRIPT_DIR := $(RUNTIME_ROOT_DIR)/sim +MSIM_SCRIPT := $(SIM_SCRIPT_DIR)/mentor/msim_setup.tcl +endif # MSIM_SCRIPT == empty string + +ifeq ($(MAKE_VERSION),3.81) +ABS_MEM_INIT_DESCRIPTOR_FILE := $(abspath $(MEM_INIT_DESCRIPTOR_FILE)) +else +ABS_MEM_INIT_DESCRIPTOR_FILE := $(call adjust-path-mixed,$(shell pwd))/$(MEM_INIT_DESCRIPTOR_FILE) +endif + +$(MSIM_SCRIPT): $(SPD) $(MEM_INIT_DESCRIPTOR_FILE) +ifeq ($(SPD),) + $(error No SPD file specified. Ensure QUARTUS_PROJECT_DIR variable is set) +endif + @$(MKDIR) $(SIM_SCRIPT_DIR) + $(IP_MAKE_SIMSCRIPT) --spd=$(SPD) --spd=$(MEM_INIT_DESCRIPTOR_FILE) --output-directory=$(SIM_SCRIPT_DIR) + +VSIM_COMMAND = \ + cd $(dir $(MSIM_SCRIPT)) && \ + $(VSIM) -do "do $(notdir $(MSIM_SCRIPT)); ld; $(if $(VSIM_RUN_TIME),run ${VSIM_RUN_TIME};quit;)" + +.PHONY: sim +sim: $(MSIM_SCRIPT) mem_init_generate +ifeq ($(MSIM_SCRIPT),) + $(error MSIM_SCRIPT not set) +endif + $(VSIM_COMMAND) + +endif # QSYS == 1 + + +#------------------------------------------------------------------------------ +# ELF TARGET RULE +#------------------------------------------------------------------------------ +# Rule for constructing the executable elf file. +$(ELF) : $(APP_OBJS) $(LINKER_SCRIPT) $(APP_LDDEPS) + @$(ECHO) Info: Linking $@ + $(LD) $(APP_LDFLAGS) $(APP_CFLAGS) -o $@ $(filter-out $(CRT0),$(APP_OBJS)) $(APP_LIBS) $(APP_BSP_DEP_LIBS) +ifneq ($(DISABLE_ELFPATCH),1) + $(ELFPATCH) $@ $(ELF_PATCH_FLAG) +endif +ifneq ($(DISABLE_STACKREPORT),1) + @bash -c "$(STACKREPORT) $@" +endif + +$(OBJDUMP_NAME) : $(ELF) + @$(ECHO) Info: Creating $@ + $(OBJDUMP) $(OBJDUMP_FLAGS) $< >$@ + +# Rule for printing the name of the elf file +.PHONY: print-elf-name +print-elf-name: + @$(ECHO) $(ELF) + + diff --git a/software/qsys_tutorial_test/create-this-app b/software/qsys_tutorial_test/create-this-app new file mode 100644 index 0000000..2313cea --- /dev/null +++ b/software/qsys_tutorial_test/create-this-app @@ -0,0 +1,114 @@ +#!/bin/bash +# +# This script creates the hello_world_small application in this directory. + + +BSP_DIR=../qsys_tutorial_test_bsp +QUARTUS_PROJECT_DIR=../../ +NIOS2_APP_GEN_ARGS="--elf-name qsys_tutorial_test.elf --set APP_CFLAGS_OPTIMIZATION -Os --set OBJDUMP_INCLUDE_SOURCE 1 --src-files hello_world_small.c" + + +# First, check to see if $SOPC_KIT_NIOS2 environmental variable is set. +# This variable is required for the command line tools to execute correctly. +if [ -z "${SOPC_KIT_NIOS2}" ] +then + echo Required \$SOPC_KIT_NIOS2 Environmental Variable is not set! + exit 1 +fi + + +# Also make sure that the APP has not been created already. Check for +# existence of Makefile in the app directory +if [ -f ./Makefile ] +then + echo Application has already been created! Delete Makefile if you want to create a new application makefile + exit 1 +fi + + +# We are selecting hal_reduced_footprint bsp because it supports this application. +# Check to see if the hal_reduced_footprint has already been generated by checking for +# existence of the public.mk file. If not, we need to run +# create-this-bsp file to generate the bsp. +if [ ! -f ${BSP_DIR}/public.mk ]; then + # Since BSP doesn't exist, create the BSP + # Pass any command line arguments passed to this script to the BSP. + pushd ${BSP_DIR} >> /dev/null + ./create-this-bsp "$@" || { + echo "create-this-bsp failed" + exit 1 + } + popd >> /dev/null +fi + + +# Don't run make if create-this-app script is called with --no-make arg +SKIP_MAKE= +while [ $# -gt 0 ] +do + case "$1" in + --no-make) + SKIP_MAKE=1 + ;; + esac + shift +done + + +# Now we also need to go copy the sources for this application to the +# local directory. +find "${SOPC_KIT_NIOS2}/examples/software/hello_world_small/" -name '*.c' -or -name '*.h' -or -name 'hostfs*' | xargs -i cp -L {} ./ || { + echo "failed during copying example source files" + exit 1 +} + +find "${SOPC_KIT_NIOS2}/examples/software/hello_world_small/" -name 'readme.txt' -or -name 'Readme.txt' | xargs -i cp -L {} ./ || { + echo "failed copying readme file" +} + +if [ -d "${SOPC_KIT_NIOS2}/examples/software/hello_world_small/system" ] +then + cp -RL "${SOPC_KIT_NIOS2}/examples/software/hello_world_small/system" . || { + echo "failed during copying project support files" + exit 1 + } +fi + +chmod -R +w . || { + echo "failed during changing file permissions" + exit 1 +} + +cmd="nios2-app-generate-makefile --bsp-dir ${BSP_DIR} --set QUARTUS_PROJECT_DIR=${QUARTUS_PROJECT_DIR} ${NIOS2_APP_GEN_ARGS}" + +echo "create-this-app: Running \"${cmd}\"" +$cmd || { + echo "nios2-app-generate-makefile failed" + exit 1 +} + +if [ -z "$SKIP_MAKE" ]; then + cmd="make" + + echo "create-this-app: Running \"$cmd\"" + $cmd || { + echo "make failed" + exit 1 + } + + echo + echo "To download and run the application:" + echo " 1. Make sure the board is connected to the system." + echo " 2. Run 'nios2-configure-sof ' to configure the FPGA with the hardware design." + echo " 3. If you have a stdio device, run 'nios2-terminal' in a different shell." + echo " 4. Run 'make download-elf' from the application directory." + echo + echo "To debug the application:" + echo " Import the project into Nios II Software Build Tools for Eclipse." + echo " Refer to Nios II Software Build Tools for Eclipse Documentation for more information." + echo + echo -e "" +fi + + +exit 0 diff --git a/software/qsys_tutorial_test/hello_world_small.c b/software/qsys_tutorial_test/hello_world_small.c new file mode 100644 index 0000000..6b48bb2 --- /dev/null +++ b/software/qsys_tutorial_test/hello_world_small.c @@ -0,0 +1,110 @@ +/* + * "Small Hello World" example. + * + * This example prints 'Hello from Nios II' to the STDOUT stream. It runs on + * the Nios II 'standard', 'full_featured', 'fast', and 'low_cost' example + * designs. It requires a STDOUT device in your system's hardware. + * + * The purpose of this example is to demonstrate the smallest possible Hello + * World application, using the Nios II HAL library. The memory footprint + * of this hosted application is ~332 bytes by default using the standard + * reference design. For a more fully featured Hello World application + * example, see the example titled "Hello World". + * + * The memory footprint of this example has been reduced by making the + * following changes to the normal "Hello World" example. + * Check in the Nios II Software Developers Manual for a more complete + * description. + * + * In the SW Application project (small_hello_world): + * + * - In the C/C++ Build page + * + * - Set the Optimization Level to -Os + * + * In System Library project (small_hello_world_syslib): + * - In the C/C++ Build page + * + * - Set the Optimization Level to -Os + * + * - Define the preprocessor option ALT_NO_INSTRUCTION_EMULATION + * This removes software exception handling, which means that you cannot + * run code compiled for Nios II cpu with a hardware multiplier on a core + * without a the multiply unit. Check the Nios II Software Developers + * Manual for more details. + * + * - In the System Library page: + * - Set Periodic system timer and Timestamp timer to none + * This prevents the automatic inclusion of the timer driver. + * + * - Set Max file descriptors to 4 + * This reduces the size of the file handle pool. + * + * - Check Main function does not exit + * - Uncheck Clean exit (flush buffers) + * This removes the unneeded call to exit when main returns, since it + * won't. + * + * - Check Don't use C++ + * This builds without the C++ support code. + * + * - Check Small C library + * This uses a reduced functionality C library, which lacks + * support for buffering, file IO, floating point and getch(), etc. + * Check the Nios II Software Developers Manual for a complete list. + * + * - Check Reduced device drivers + * This uses reduced functionality drivers if they're available. For the + * standard design this means you get polled UART and JTAG UART drivers, + * no support for the LCD driver and you lose the ability to program + * CFI compliant flash devices. + * + * - Check Access device drivers directly + * This bypasses the device file system to access device drivers directly. + * This eliminates the space required for the device file system services. + * It also provides a HAL version of libc services that access the drivers + * directly, further reducing space. Only a limited number of libc + * functions are available in this configuration. + * + * - Use ALT versions of stdio routines: + * + * Function Description + * =============== ===================================== + * alt_printf Only supports %s, %x, and %c ( < 1 Kbyte) + * alt_putstr Smaller overhead than puts with direct drivers + * Note this function doesn't add a newline. + * alt_putchar Smaller overhead than putchar with direct drivers + * alt_getchar Smaller overhead than getchar with direct drivers + * + */ + +#include "sys/alt_stdio.h" + +#if 0 +int main() +{ + alt_putstr("Hello from Nios II!\n"); + + /* Event loop never exits. */ + while (1); + + return 0; +} +#endif + +#define switches (volatile char *) 0x0002010 +#define leds (char *) 0x0002020 +void main() +{ + + int i = 0; + volatile int j = 0; + while(1){ + *leds = i++; + if (i > 256) i = 0; + for (j = 0; j < 100000; j++); + } + + //while (1) + //*leds = *switches; +} diff --git a/software/qsys_tutorial_test/obj/default/hello_world_small.d b/software/qsys_tutorial_test/obj/default/hello_world_small.d new file mode 100644 index 0000000..0b99155 --- /dev/null +++ b/software/qsys_tutorial_test/obj/default/hello_world_small.d @@ -0,0 +1,4 @@ +obj/default/hello_world_small.o: hello_world_small.c \ + ../qsys_tutorial_test_bsp//HAL/inc/sys/alt_stdio.h + +../qsys_tutorial_test_bsp//HAL/inc/sys/alt_stdio.h: diff --git a/software/qsys_tutorial_test/obj/default/hello_world_small.o b/software/qsys_tutorial_test/obj/default/hello_world_small.o new file mode 100644 index 0000000..540fd71 --- /dev/null +++ b/software/qsys_tutorial_test/obj/default/hello_world_small.o Binary files differ diff --git a/software/qsys_tutorial_test/qsys_tutorial_test.elf b/software/qsys_tutorial_test/qsys_tutorial_test.elf new file mode 100644 index 0000000..a5f4751 --- /dev/null +++ b/software/qsys_tutorial_test/qsys_tutorial_test.elf Binary files differ diff --git a/software/qsys_tutorial_test/qsys_tutorial_test.map b/software/qsys_tutorial_test/qsys_tutorial_test.map new file mode 100644 index 0000000..7d3dcfa --- /dev/null +++ b/software/qsys_tutorial_test/qsys_tutorial_test.map @@ -0,0 +1,412 @@ +Archive member included because of file (symbol) + +../qsys_tutorial_test_bsp/\libhal_bsp.a(alt_load.o) + ../qsys_tutorial_test_bsp//obj/HAL/src/crt0.o (alt_load) +../qsys_tutorial_test_bsp/\libhal_bsp.a(alt_main.o) + ../qsys_tutorial_test_bsp//obj/HAL/src/crt0.o (alt_main) +../qsys_tutorial_test_bsp/\libhal_bsp.a(alt_sys_init.o) + ../qsys_tutorial_test_bsp/\libhal_bsp.a(alt_main.o) (alt_sys_init) +../qsys_tutorial_test_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) + ../qsys_tutorial_test_bsp/\libhal_bsp.a(alt_load.o) (alt_dcache_flush_all) +../qsys_tutorial_test_bsp/\libhal_bsp.a(alt_icache_flush_all.o) + ../qsys_tutorial_test_bsp/\libhal_bsp.a(alt_load.o) (alt_icache_flush_all) +../qsys_tutorial_test_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) + ../qsys_tutorial_test_bsp/\libhal_bsp.a(alt_sys_init.o) (altera_nios2_qsys_irq_init) + +Memory Configuration + +Name Origin Length Attributes +reset 0x00000000 0x00000020 +onchip_memory 0x00000020 0x00000fe0 +*default* 0x00000000 0xffffffff + +Linker script and memory map + +LOAD ../qsys_tutorial_test_bsp//obj/HAL/src/crt0.o + 0x0000000c exit = _exit +LOAD obj/default/hello_world_small.o +LOAD c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libstdc++.a +LOAD c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libm.a +LOAD c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a +START GROUP +LOAD c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libsmallc.a +LOAD c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a +LOAD ../qsys_tutorial_test_bsp/\libhal_bsp.a +END GROUP +LOAD c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a + 0x00000000 __alt_mem_onchip_memory = 0x0 + +.entry 0x00000000 0x20 + *(.entry) + .entry 0x00000000 0x20 ../qsys_tutorial_test_bsp//obj/HAL/src/crt0.o + 0x00000000 __reset + 0x0000000c _exit + +.exceptions 0x00000020 0x0 + 0x00000020 PROVIDE (__ram_exceptions_start, ABSOLUTE (.)) + 0x00000020 . = ALIGN (0x20) + *(.irq) + *(.exceptions.entry.label) + *(.exceptions.entry.user) + *(.exceptions.entry) + *(.exceptions.irqtest.user) + *(.exceptions.irqtest) + *(.exceptions.irqhandler.user) + *(.exceptions.irqhandler) + *(.exceptions.irqreturn.user) + *(.exceptions.irqreturn) + *(.exceptions.notirq.label) + *(.exceptions.notirq.user) + *(.exceptions.notirq) + *(.exceptions.soft.user) + *(.exceptions.soft) + *(.exceptions.unknown.user) + *(.exceptions.unknown) + *(.exceptions.exit.label) + *(.exceptions.exit.user) + *(.exceptions.exit) + *(.exceptions) + 0x00000020 PROVIDE (__ram_exceptions_end, ABSOLUTE (.)) + 0x00000020 PROVIDE (__flash_exceptions_start, LOADADDR (.exceptions)) + +.text 0x00000020 0x174 + 0x00000020 PROVIDE (stext, ABSOLUTE (.)) + *(.interp) + *(.hash) + *(.dynsym) + *(.dynstr) + *(.gnu.version) + *(.gnu.version_d) + *(.gnu.version_r) + *(.rel.init) + *(.rela.init) + *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) + *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) + *(.rel.fini) + *(.rela.fini) + *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) + *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) + *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) + *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) + *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) + *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) + *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) + *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) + *(.rel.ctors) + *(.rela.ctors) + *(.rel.dtors) + *(.rela.dtors) + *(.rel.got) + *(.rela.got) + *(.rel.sdata .rel.sdata.* .rel.gnu.linkonce.s.*) + *(.rela.sdata .rela.sdata.* .rela.gnu.linkonce.s.*) + *(.rel.sbss .rel.sbss.* .rel.gnu.linkonce.sb.*) + *(.rela.sbss .rela.sbss.* .rela.gnu.linkonce.sb.*) + *(.rel.sdata2 .rel.sdata2.* .rel.gnu.linkonce.s2.*) + *(.rela.sdata2 .rela.sdata2.* .rela.gnu.linkonce.s2.*) + *(.rel.sbss2 .rel.sbss2.* .rel.gnu.linkonce.sb2.*) + *(.rela.sbss2 .rela.sbss2.* .rela.gnu.linkonce.sb2.*) + *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) + *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) + *(.rel.plt) + *(.rela.plt) + *(.rel.dyn) + *(.init) + *(.plt) + *(.text .stub .text.* .gnu.linkonce.t.*) + .text 0x00000020 0x3c ../qsys_tutorial_test_bsp//obj/HAL/src/crt0.o + 0x00000020 _start + .text 0x0000005c 0x4c obj/default/hello_world_small.o + 0x0000005c main + .text 0x000000a8 0x8c ../qsys_tutorial_test_bsp/\libhal_bsp.a(alt_load.o) + 0x000000c8 alt_load + .text 0x00000134 0x2c ../qsys_tutorial_test_bsp/\libhal_bsp.a(alt_main.o) + 0x00000134 alt_main + .text 0x00000160 0x24 ../qsys_tutorial_test_bsp/\libhal_bsp.a(alt_sys_init.o) + 0x00000160 alt_sys_init + 0x00000164 alt_irq_init + .text 0x00000184 0x4 ../qsys_tutorial_test_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) + 0x00000184 alt_dcache_flush_all + .text 0x00000188 0x4 ../qsys_tutorial_test_bsp/\libhal_bsp.a(alt_icache_flush_all.o) + 0x00000188 alt_icache_flush_all + .text 0x0000018c 0x8 ../qsys_tutorial_test_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) + 0x0000018c altera_nios2_qsys_irq_init + *(.gnu.warning.*) + *(.fini) + 0x00000194 PROVIDE (__etext, ABSOLUTE (.)) + 0x00000194 PROVIDE (_etext, ABSOLUTE (.)) + 0x00000194 PROVIDE (etext, ABSOLUTE (.)) + *(.eh_frame_hdr) + 0x00000194 . = ALIGN (0x4) + 0x00000194 PROVIDE (__preinit_array_start, ABSOLUTE (.)) + *(.preinit_array) + 0x00000194 PROVIDE (__preinit_array_end, ABSOLUTE (.)) + 0x00000194 PROVIDE (__init_array_start, ABSOLUTE (.)) + *(.init_array) + 0x00000194 PROVIDE (__init_array_end, ABSOLUTE (.)) + 0x00000194 PROVIDE (__fini_array_start, ABSOLUTE (.)) + *(.fini_array) + 0x00000194 PROVIDE (__fini_array_end, ABSOLUTE (.)) + *(.eh_frame) + *(.gcc_except_table) + *(.dynamic) + 0x00000194 PROVIDE (__CTOR_LIST__, ABSOLUTE (.)) + *(.ctors) + *(SORT(.ctors.*)) + 0x00000194 PROVIDE (__CTOR_END__, ABSOLUTE (.)) + 0x00000194 PROVIDE (__DTOR_LIST__, ABSOLUTE (.)) + *(.dtors) + *(SORT(.dtors.*)) + 0x00000194 PROVIDE (__DTOR_END__, ABSOLUTE (.)) + *(.jcr) + 0x00000194 . = ALIGN (0x4) + +.rodata 0x00000194 0x0 + 0x00000194 PROVIDE (__ram_rodata_start, ABSOLUTE (.)) + 0x00000194 . = ALIGN (0x4) + *(.rodata .rodata.* .gnu.linkonce.r.*) + *(.rodata1) + 0x00000194 . = ALIGN (0x4) + 0x00000194 PROVIDE (__ram_rodata_end, ABSOLUTE (.)) + 0x00000194 PROVIDE (__flash_rodata_start, LOADADDR (.rodata)) + +.rwdata 0x00000194 0x4 load address 0x00000198 + 0x00000194 PROVIDE (__ram_rwdata_start, ABSOLUTE (.)) + 0x00000194 . = ALIGN (0x4) + *(.got.plt) + *(.got) + *(.data1) + *(.data .data.* .gnu.linkonce.d.*) + .data 0x00000194 0x0 ../qsys_tutorial_test_bsp//obj/HAL/src/crt0.o + .data 0x00000194 0x0 obj/default/hello_world_small.o + .data 0x00000194 0x0 ../qsys_tutorial_test_bsp/\libhal_bsp.a(alt_load.o) + .data 0x00000194 0x0 ../qsys_tutorial_test_bsp/\libhal_bsp.a(alt_main.o) + .data 0x00000194 0x0 ../qsys_tutorial_test_bsp/\libhal_bsp.a(alt_sys_init.o) + .data 0x00000194 0x0 ../qsys_tutorial_test_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) + .data 0x00000194 0x0 ../qsys_tutorial_test_bsp/\libhal_bsp.a(alt_icache_flush_all.o) + .data 0x00000194 0x0 ../qsys_tutorial_test_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) + 0x00008194 _gp = ABSOLUTE ((. + 0x8000)) + 0x00008194 PROVIDE (gp, _gp) + *(.rwdata .rwdata.*) + *(.sdata .sdata.* .gnu.linkonce.s.*) + .sdata 0x00000194 0x4 ../qsys_tutorial_test_bsp/\libhal_bsp.a(alt_sys_init.o) + 0x00000194 jtag_uart + *(.sdata2 .sdata2.* .gnu.linkonce.s2.*) + 0x00000198 . = ALIGN (0x4) + 0x00000198 _edata = ABSOLUTE (.) + 0x00000198 PROVIDE (edata, ABSOLUTE (.)) + 0x00000198 PROVIDE (__ram_rwdata_end, ABSOLUTE (.)) + 0x00000198 PROVIDE (__flash_rwdata_start, LOADADDR (.rwdata)) + +.bss 0x0000019c 0xc + 0x0000019c __bss_start = ABSOLUTE (.) + 0x0000019c PROVIDE (__sbss_start, ABSOLUTE (.)) + 0x0000019c PROVIDE (___sbss_start, ABSOLUTE (.)) + *(.dynsbss) + *(.sbss .sbss.* .gnu.linkonce.sb.*) + .sbss 0x0000019c 0xc ../qsys_tutorial_test_bsp/\libhal_bsp.a(alt_main.o) + 0x0000019c alt_argc + 0x000001a0 alt_argv + 0x000001a4 alt_envp + *(.sbss2 .sbss2.* .gnu.linkonce.sb2.*) + *(.scommon) + 0x000001a8 PROVIDE (__sbss_end, ABSOLUTE (.)) + 0x000001a8 PROVIDE (___sbss_end, ABSOLUTE (.)) + *(.dynbss) + *(.bss .bss.* .gnu.linkonce.b.*) + .bss 0x000001a8 0x0 ../qsys_tutorial_test_bsp//obj/HAL/src/crt0.o + .bss 0x000001a8 0x0 obj/default/hello_world_small.o + .bss 0x000001a8 0x0 ../qsys_tutorial_test_bsp/\libhal_bsp.a(alt_load.o) + .bss 0x000001a8 0x0 ../qsys_tutorial_test_bsp/\libhal_bsp.a(alt_main.o) + .bss 0x000001a8 0x0 ../qsys_tutorial_test_bsp/\libhal_bsp.a(alt_sys_init.o) + .bss 0x000001a8 0x0 ../qsys_tutorial_test_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) + .bss 0x000001a8 0x0 ../qsys_tutorial_test_bsp/\libhal_bsp.a(alt_icache_flush_all.o) + .bss 0x000001a8 0x0 ../qsys_tutorial_test_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) + *(COMMON) + 0x000001a8 . = ALIGN (0x4) + 0x000001a8 __bss_end = ABSOLUTE (.) + +.onchip_memory 0x000001a8 0x0 + 0x000001a8 PROVIDE (_alt_partition_onchip_memory_start, ABSOLUTE (.)) + *(.onchip_memory. onchip_memory.*) + 0x000001a8 . = ALIGN (0x4) + 0x000001a8 PROVIDE (_alt_partition_onchip_memory_end, ABSOLUTE (.)) + 0x000001a8 _end = ABSOLUTE (.) + 0x000001a8 end = ABSOLUTE (.) + 0x000001a8 __alt_stack_base = ABSOLUTE (.) + 0x000001a8 PROVIDE (_alt_partition_onchip_memory_load_addr, LOADADDR (.onchip_memory)) + +.stab + *(.stab) + +.stabstr + *(.stabstr) + +.stab.excl + *(.stab.excl) + +.stab.exclstr + *(.stab.exclstr) + +.stab.index + *(.stab.index) + +.stab.indexstr + *(.stab.indexstr) + +.comment 0x00000000 0x26 + *(.comment) + .comment 0x00000000 0x26 obj/default/hello_world_small.o + 0x27 (size before relaxing) + .comment 0x00000000 0x27 ../qsys_tutorial_test_bsp/\libhal_bsp.a(alt_load.o) + .comment 0x00000000 0x27 ../qsys_tutorial_test_bsp/\libhal_bsp.a(alt_main.o) + .comment 0x00000000 0x27 ../qsys_tutorial_test_bsp/\libhal_bsp.a(alt_sys_init.o) + .comment 0x00000000 0x27 ../qsys_tutorial_test_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) + .comment 0x00000000 0x27 ../qsys_tutorial_test_bsp/\libhal_bsp.a(alt_icache_flush_all.o) + .comment 0x00000000 0x27 ../qsys_tutorial_test_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) + +.debug + *(.debug) + +.line + *(.line) + +.debug_srcinfo + *(.debug_srcinfo) + +.debug_sfnames + *(.debug_sfnames) + +.debug_aranges 0x00000000 0x108 + *(.debug_aranges) + .debug_aranges + 0x00000000 0x28 ../qsys_tutorial_test_bsp//obj/HAL/src/crt0.o + .debug_aranges + 0x00000028 0x20 obj/default/hello_world_small.o + .debug_aranges + 0x00000048 0x20 ../qsys_tutorial_test_bsp/\libhal_bsp.a(alt_load.o) + .debug_aranges + 0x00000068 0x20 ../qsys_tutorial_test_bsp/\libhal_bsp.a(alt_main.o) + .debug_aranges + 0x00000088 0x20 ../qsys_tutorial_test_bsp/\libhal_bsp.a(alt_sys_init.o) + .debug_aranges + 0x000000a8 0x20 ../qsys_tutorial_test_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) + .debug_aranges + 0x000000c8 0x20 ../qsys_tutorial_test_bsp/\libhal_bsp.a(alt_icache_flush_all.o) + .debug_aranges + 0x000000e8 0x20 ../qsys_tutorial_test_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) + +.debug_pubnames + 0x00000000 0x149 + *(.debug_pubnames) + .debug_pubnames + 0x00000000 0x1b obj/default/hello_world_small.o + .debug_pubnames + 0x0000001b 0x1f ../qsys_tutorial_test_bsp/\libhal_bsp.a(alt_load.o) + .debug_pubnames + 0x0000003a 0x46 ../qsys_tutorial_test_bsp/\libhal_bsp.a(alt_main.o) + .debug_pubnames + 0x00000080 0x42 ../qsys_tutorial_test_bsp/\libhal_bsp.a(alt_sys_init.o) + .debug_pubnames + 0x000000c2 0x2b ../qsys_tutorial_test_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) + .debug_pubnames + 0x000000ed 0x2b ../qsys_tutorial_test_bsp/\libhal_bsp.a(alt_icache_flush_all.o) + .debug_pubnames + 0x00000118 0x31 ../qsys_tutorial_test_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) + +.debug_info 0x00000000 0x651 + *(.debug_info .gnu.linkonce.wi.*) + .debug_info 0x00000000 0x78 ../qsys_tutorial_test_bsp//obj/HAL/src/crt0.o + .debug_info 0x00000078 0x62 obj/default/hello_world_small.o + .debug_info 0x000000da 0x12e ../qsys_tutorial_test_bsp/\libhal_bsp.a(alt_load.o) + .debug_info 0x00000208 0x125 ../qsys_tutorial_test_bsp/\libhal_bsp.a(alt_main.o) + .debug_info 0x0000032d 0x17d ../qsys_tutorial_test_bsp/\libhal_bsp.a(alt_sys_init.o) + .debug_info 0x000004aa 0x8d ../qsys_tutorial_test_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) + .debug_info 0x00000537 0x8d ../qsys_tutorial_test_bsp/\libhal_bsp.a(alt_icache_flush_all.o) + .debug_info 0x000005c4 0x8d ../qsys_tutorial_test_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) + +.debug_abbrev 0x00000000 0x339 + *(.debug_abbrev) + .debug_abbrev 0x00000000 0x12 ../qsys_tutorial_test_bsp//obj/HAL/src/crt0.o + .debug_abbrev 0x00000012 0x4a obj/default/hello_world_small.o + .debug_abbrev 0x0000005c 0x97 ../qsys_tutorial_test_bsp/\libhal_bsp.a(alt_load.o) + .debug_abbrev 0x000000f3 0xa6 ../qsys_tutorial_test_bsp/\libhal_bsp.a(alt_main.o) + .debug_abbrev 0x00000199 0xe3 ../qsys_tutorial_test_bsp/\libhal_bsp.a(alt_sys_init.o) + .debug_abbrev 0x0000027c 0x3f ../qsys_tutorial_test_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) + .debug_abbrev 0x000002bb 0x3f ../qsys_tutorial_test_bsp/\libhal_bsp.a(alt_icache_flush_all.o) + .debug_abbrev 0x000002fa 0x3f ../qsys_tutorial_test_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) + +.debug_line 0x00000000 0xde4 + *(.debug_line) + .debug_line 0x00000000 0x66 ../qsys_tutorial_test_bsp//obj/HAL/src/crt0.o + .debug_line 0x00000066 0xe7 obj/default/hello_world_small.o + .debug_line 0x0000014d 0x217 ../qsys_tutorial_test_bsp/\libhal_bsp.a(alt_load.o) + .debug_line 0x00000364 0x2c2 ../qsys_tutorial_test_bsp/\libhal_bsp.a(alt_main.o) + .debug_line 0x00000626 0x286 ../qsys_tutorial_test_bsp/\libhal_bsp.a(alt_sys_init.o) + .debug_line 0x000008ac 0x1b5 ../qsys_tutorial_test_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) + .debug_line 0x00000a61 0x1b5 ../qsys_tutorial_test_bsp/\libhal_bsp.a(alt_icache_flush_all.o) + .debug_line 0x00000c16 0x1ce ../qsys_tutorial_test_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) + +.debug_frame 0x00000000 0x11c + *(.debug_frame) + .debug_frame 0x00000000 0x24 obj/default/hello_world_small.o + .debug_frame 0x00000024 0x38 ../qsys_tutorial_test_bsp/\libhal_bsp.a(alt_load.o) + .debug_frame 0x0000005c 0x28 ../qsys_tutorial_test_bsp/\libhal_bsp.a(alt_main.o) + .debug_frame 0x00000084 0x38 ../qsys_tutorial_test_bsp/\libhal_bsp.a(alt_sys_init.o) + .debug_frame 0x000000bc 0x20 ../qsys_tutorial_test_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) + .debug_frame 0x000000dc 0x20 ../qsys_tutorial_test_bsp/\libhal_bsp.a(alt_icache_flush_all.o) + .debug_frame 0x000000fc 0x20 ../qsys_tutorial_test_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) + +.debug_str 0x00000000 0x3b2 + *(.debug_str) + .debug_str 0x00000000 0x63 obj/default/hello_world_small.o + 0x68 (size before relaxing) + .debug_str 0x00000063 0x188 ../qsys_tutorial_test_bsp/\libhal_bsp.a(alt_load.o) + 0x1cd (size before relaxing) + .debug_str 0x000001eb 0x75 ../qsys_tutorial_test_bsp/\libhal_bsp.a(alt_main.o) + 0x151 (size before relaxing) + .debug_str 0x00000260 0xaf ../qsys_tutorial_test_bsp/\libhal_bsp.a(alt_sys_init.o) + 0x1c4 (size before relaxing) + .debug_str 0x0000030f 0x34 ../qsys_tutorial_test_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) + 0x110 (size before relaxing) + .debug_str 0x00000343 0x34 ../qsys_tutorial_test_bsp/\libhal_bsp.a(alt_icache_flush_all.o) + 0x110 (size before relaxing) + .debug_str 0x00000377 0x3b ../qsys_tutorial_test_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) + 0x117 (size before relaxing) + +.debug_loc 0x00000000 0x8f + *(.debug_loc) + .debug_loc 0x00000000 0x1f obj/default/hello_world_small.o + .debug_loc 0x0000001f 0x1f ../qsys_tutorial_test_bsp/\libhal_bsp.a(alt_load.o) + .debug_loc 0x0000003e 0x1f ../qsys_tutorial_test_bsp/\libhal_bsp.a(alt_main.o) + .debug_loc 0x0000005d 0x32 ../qsys_tutorial_test_bsp/\libhal_bsp.a(alt_sys_init.o) + +.debug_macinfo + *(.debug_macinfo) + +.debug_weaknames + *(.debug_weaknames) + +.debug_funcnames + *(.debug_funcnames) + +.debug_typenames + *(.debug_typenames) + +.debug_varnames + *(.debug_varnames) + +.debug_alt_sim_info + 0x00000000 0x10 + *(.debug_alt_sim_info) + .debug_alt_sim_info + 0x00000000 0x10 ../qsys_tutorial_test_bsp//obj/HAL/src/crt0.o + 0x00001000 __alt_data_end = 0x1000 + 0x00001000 PROVIDE (__alt_stack_pointer, __alt_data_end) + 0x000001a8 PROVIDE (__alt_stack_limit, __alt_stack_base) + 0x000001a8 PROVIDE (__alt_heap_start, end) + 0x00001000 PROVIDE (__alt_heap_limit, 0x1000) +OUTPUT(qsys_tutorial_test.elf elf32-littlenios2) + +.debug_ranges 0x00000000 0x20 + .debug_ranges 0x00000000 0x20 ../qsys_tutorial_test_bsp//obj/HAL/src/crt0.o diff --git a/software/qsys_tutorial_test/qsys_tutorial_test.objdump b/software/qsys_tutorial_test/qsys_tutorial_test.objdump new file mode 100644 index 0000000..b670da6 --- /dev/null +++ b/software/qsys_tutorial_test/qsys_tutorial_test.objdump @@ -0,0 +1,475 @@ + +qsys_tutorial_test.elf: file format elf32-littlenios2 +qsys_tutorial_test.elf +architecture: nios2, flags 0x00000112: +EXEC_P, HAS_SYMS, D_PAGED +start address 0x00000020 + +Program Header: + LOAD off 0x00001000 vaddr 0x00000000 paddr 0x00000000 align 2**12 + filesz 0x00000020 memsz 0x00000020 flags r-x + LOAD off 0x00001020 vaddr 0x00000020 paddr 0x00000020 align 2**12 + filesz 0x00000174 memsz 0x00000174 flags r-x + LOAD off 0x00001194 vaddr 0x00000194 paddr 0x00000198 align 2**12 + filesz 0x00000004 memsz 0x00000004 flags rw- + LOAD off 0x0000119c vaddr 0x0000019c paddr 0x0000019c align 2**12 + filesz 0x00000000 memsz 0x0000000c flags rw- + +Sections: +Idx Name Size VMA LMA File off Algn + 0 .entry 00000020 00000000 00000000 00001000 2**5 + CONTENTS, ALLOC, LOAD, READONLY, CODE + 1 .text 00000174 00000020 00000020 00001020 2**2 + CONTENTS, ALLOC, LOAD, READONLY, CODE + 2 .rwdata 00000004 00000194 00000198 00001194 2**2 + CONTENTS, ALLOC, LOAD, DATA, SMALL_DATA + 3 .bss 0000000c 0000019c 0000019c 0000119c 2**2 + ALLOC, SMALL_DATA + 4 .comment 00000026 00000000 00000000 00001198 2**0 + CONTENTS, READONLY + 5 .debug_aranges 00000108 00000000 00000000 000011c0 2**3 + CONTENTS, READONLY, DEBUGGING + 6 .debug_pubnames 00000149 00000000 00000000 000012c8 2**0 + CONTENTS, READONLY, DEBUGGING + 7 .debug_info 00000651 00000000 00000000 00001411 2**0 + CONTENTS, READONLY, DEBUGGING + 8 .debug_abbrev 00000339 00000000 00000000 00001a62 2**0 + CONTENTS, READONLY, DEBUGGING + 9 .debug_line 00000de4 00000000 00000000 00001d9b 2**0 + CONTENTS, READONLY, DEBUGGING + 10 .debug_frame 0000011c 00000000 00000000 00002b80 2**2 + CONTENTS, READONLY, DEBUGGING + 11 .debug_str 000003b2 00000000 00000000 00002c9c 2**0 + CONTENTS, READONLY, DEBUGGING + 12 .debug_loc 0000008f 00000000 00000000 0000304e 2**0 + CONTENTS, READONLY, DEBUGGING + 13 .debug_alt_sim_info 00000010 00000000 00000000 000030e0 2**2 + CONTENTS, READONLY, DEBUGGING + 14 .debug_ranges 00000020 00000000 00000000 000030f0 2**3 + CONTENTS, READONLY, DEBUGGING + 15 .thread_model 00000003 00000000 00000000 00003d27 2**0 + CONTENTS, READONLY + 16 .cpu 0000000f 00000000 00000000 00003d2a 2**0 + CONTENTS, READONLY + 17 .qsys 00000001 00000000 00000000 00003d39 2**0 + CONTENTS, READONLY + 18 .simulation_enabled 00000001 00000000 00000000 00003d3a 2**0 + CONTENTS, READONLY + 19 .stderr_dev 00000009 00000000 00000000 00003d3b 2**0 + CONTENTS, READONLY + 20 .stdin_dev 00000009 00000000 00000000 00003d44 2**0 + CONTENTS, READONLY + 21 .stdout_dev 00000009 00000000 00000000 00003d4d 2**0 + CONTENTS, READONLY + 22 .sopc_system_name 0000000b 00000000 00000000 00003d56 2**0 + CONTENTS, READONLY + 23 .quartus_project_dir 00000026 00000000 00000000 00003d61 2**0 + CONTENTS, READONLY + 24 .sopcinfo 0003148c 00000000 00000000 00003d87 2**0 + CONTENTS, READONLY +SYMBOL TABLE: +00000000 l d .entry 00000000 .entry +00000020 l d .text 00000000 .text +00000194 l d .rwdata 00000000 .rwdata +0000019c l d .bss 00000000 .bss +00000000 l d .comment 00000000 .comment +00000000 l d .debug_aranges 00000000 .debug_aranges +00000000 l d .debug_pubnames 00000000 .debug_pubnames +00000000 l d .debug_info 00000000 .debug_info +00000000 l d .debug_abbrev 00000000 .debug_abbrev +00000000 l d .debug_line 00000000 .debug_line +00000000 l d .debug_frame 00000000 .debug_frame +00000000 l d .debug_str 00000000 .debug_str +00000000 l d .debug_loc 00000000 .debug_loc +00000000 l d .debug_alt_sim_info 00000000 .debug_alt_sim_info +00000000 l d .debug_ranges 00000000 .debug_ranges +00000058 l .text 00000000 alt_after_alt_main +00000000 l df *ABS* 00000000 hello_world_small.c +00000000 l df *ABS* 00000000 alt_load.c +000000a8 l F .text 00000020 alt_load_section +00000000 l df *ABS* 00000000 alt_main.c +00000000 l df *ABS* 00000000 alt_sys_init.c +00000000 l df *ABS* 00000000 alt_dcache_flush_all.c +00000000 l df *ABS* 00000000 alt_icache_flush_all.c +00000000 l df *ABS* 00000000 altera_nios2_qsys_irq.c +00000134 g F .text 0000002c alt_main +00000198 g *ABS* 00000000 __flash_rwdata_start +00000194 g O .rwdata 00000004 jtag_uart +00000000 g F .entry 0000000c __reset +00000020 g *ABS* 00000000 __flash_exceptions_start +000001a0 g O .bss 00000004 alt_argv +00008194 g *ABS* 00000000 _gp +000001a8 g *ABS* 00000000 __bss_end +00000184 g F .text 00000004 alt_dcache_flush_all +00000198 g *ABS* 00000000 __ram_rwdata_end +00000000 g *ABS* 00000000 __alt_mem_onchip_memory +00000194 g *ABS* 00000000 __ram_rodata_end +000001a8 g *ABS* 00000000 end +00001000 g *ABS* 00000000 __alt_stack_pointer +00000020 g F .text 0000003c _start +00000160 g F .text 00000004 alt_sys_init +00000194 g *ABS* 00000000 __ram_rwdata_start +00000194 g *ABS* 00000000 __ram_rodata_start +000001a8 g *ABS* 00000000 __alt_stack_base +0000019c g *ABS* 00000000 __bss_start +0000005c g F .text 0000004c main +000001a4 g O .bss 00000004 alt_envp +00000194 g *ABS* 00000000 __flash_rodata_start +00000164 g F .text 00000020 alt_irq_init +0000019c g O .bss 00000004 alt_argc +00000020 g *ABS* 00000000 __ram_exceptions_start +00000198 g *ABS* 00000000 _edata +000001a8 g *ABS* 00000000 _end +00000020 g *ABS* 00000000 __ram_exceptions_end +0000018c g F .text 00000008 altera_nios2_qsys_irq_init +0000000c g .entry 00000000 exit +00001000 g *ABS* 00000000 __alt_data_end +0000000c g .entry 00000000 _exit +00000188 g F .text 00000004 alt_icache_flush_all +000000c8 g F .text 0000006c alt_load + + + +Disassembly of section .entry: + +00000000 <__reset>: + * Jump to the _start entry point in the .text section if reset code + * is allowed or if optimizing for RTL simulation. + */ +#if defined(ALT_ALLOW_CODE_AT_RESET) || defined(ALT_SIM_OPTIMIZE) + /* Jump to the _start entry point in the .text section. */ + movhi r1, %hi(_start) + 0: 00400034 movhi at,0 + ori r1, r1, %lo(_start) + 4: 08400814 ori at,at,32 + jmp r1 + 8: 0800683a jmp at + +0000000c <_exit>: + ... + +Disassembly of section .text: + +00000020 <_start>: +#if (NIOS2_NUM_OF_SHADOW_REG_SETS == 0) + /* + * Now that the caches are initialized, set up the stack pointer. + * The value provided by the linker is assumed to be correctly aligned. + */ + movhi sp, %hi(__alt_stack_pointer) + 20: 06c00034 movhi sp,0 + ori sp, sp, %lo(__alt_stack_pointer) + 24: dec40014 ori sp,sp,4096 + + /* Set up the global pointer. */ + movhi gp, %hi(_gp) + 28: 06800034 movhi gp,0 + ori gp, gp, %lo(_gp) + 2c: d6a06514 ori gp,gp,33172 + */ +#ifndef ALT_SIM_OPTIMIZE + /* Log that the BSS is about to be cleared. */ + ALT_LOG_PUTS(alt_log_msg_bss) + + movhi r2, %hi(__bss_start) + 30: 00800034 movhi r2,0 + ori r2, r2, %lo(__bss_start) + 34: 10806714 ori r2,r2,412 + + movhi r3, %hi(__bss_end) + 38: 00c00034 movhi r3,0 + ori r3, r3, %lo(__bss_end) + 3c: 18c06a14 ori r3,r3,424 + + beq r2, r3, 1f + 40: 10c00326 beq r2,r3,50 <_start+0x30> + +0: + stw zero, (r2) + 44: 10000015 stw zero,0(r2) + addi r2, r2, 4 + 48: 10800104 addi r2,r2,4 + bltu r2, r3, 0b + 4c: 10fffd36 bltu r2,r3,44 <_start+0x24> + * section aren't defined until alt_load() has been called). + */ + mov et, zero +#endif + + call alt_load + 50: 00000c80 call c8 + + /* Log that alt_main is about to be called. */ + ALT_LOG_PUTS(alt_log_msg_alt_main) + + /* Call the C entry point. It should never return. */ + call alt_main + 54: 00001340 call 134 + +00000058 : + + /* Wait in infinite loop in case alt_main does return. */ +alt_after_alt_main: + br alt_after_alt_main + 58: 003fff06 br 58 + +0000005c
: +#endif + +#define switches (volatile char *) 0x0002000 +#define leds (char *) 0x0002010 +void main() +{ + 5c: deffff04 addi sp,sp,-4 + + int i = 0; + volatile int j = 0; + 60: d8000015 stw zero,0(sp) + 64: 0007883a mov r3,zero + 68: 01880404 movi r6,8208 + 6c: 01404004 movi r5,256 + while(1){ + *leds = i++; + 70: 30c00005 stb r3,0(r6) + 74: 18c00044 addi r3,r3,1 + if (i > 256) i = 0; + 78: 28c0010e bge r5,r3,80 + 7c: 0007883a mov r3,zero + 80: 010000b4 movhi r4,2 + 84: 2121a7c4 addi r4,r4,-31073 + for (j = 0; j < 100000; j++); + 88: d8000015 stw zero,0(sp) + 8c: 00000306 br 9c + 90: d8800017 ldw r2,0(sp) + 94: 10800044 addi r2,r2,1 + 98: d8800015 stw r2,0(sp) + 9c: d8800017 ldw r2,0(sp) + a0: 20bffb0e bge r4,r2,90 + a4: 003ff206 br 70 + +000000a8 : + +static void ALT_INLINE alt_load_section (alt_u32* from, + alt_u32* to, + alt_u32* end) +{ + if (to != from) + a8: 2900051e bne r5,r4,c0 + ac: f800283a ret + { + while( to != end ) + { + *to++ = *from++; + b0: 20800017 ldw r2,0(r4) + b4: 21000104 addi r4,r4,4 + b8: 28800015 stw r2,0(r5) + bc: 29400104 addi r5,r5,4 + alt_u32* to, + alt_u32* end) +{ + if (to != from) + { + while( to != end ) + c0: 29bffb1e bne r5,r6,b0 + c4: f800283a ret + +000000c8 : + * there is no bootloader, so this application is responsible for loading to + * RAM any sections that are required. + */ + +void alt_load (void) +{ + c8: deffff04 addi sp,sp,-4 + /* + * Copy the .rwdata section. + */ + + alt_load_section (&__flash_rwdata_start, + cc: 01000034 movhi r4,0 + d0: 21006604 addi r4,r4,408 + d4: 01400034 movhi r5,0 + d8: 29406504 addi r5,r5,404 + dc: 01800034 movhi r6,0 + e0: 31806604 addi r6,r6,408 + * there is no bootloader, so this application is responsible for loading to + * RAM any sections that are required. + */ + +void alt_load (void) +{ + e4: dfc00015 stw ra,0(sp) + /* + * Copy the .rwdata section. + */ + + alt_load_section (&__flash_rwdata_start, + e8: 00000a80 call a8 + + /* + * Copy the exception handler. + */ + + alt_load_section (&__flash_exceptions_start, + ec: 01000034 movhi r4,0 + f0: 21000804 addi r4,r4,32 + f4: 01400034 movhi r5,0 + f8: 29400804 addi r5,r5,32 + fc: 01800034 movhi r6,0 + 100: 31800804 addi r6,r6,32 + 104: 00000a80 call a8 + + /* + * Copy the .rodata section. + */ + + alt_load_section (&__flash_rodata_start, + 108: 01000034 movhi r4,0 + 10c: 21006504 addi r4,r4,404 + 110: 01400034 movhi r5,0 + 114: 29406504 addi r5,r5,404 + 118: 01800034 movhi r6,0 + 11c: 31806504 addi r6,r6,404 + 120: 00000a80 call a8 + + /* + * Now ensure that the caches are in synch. + */ + + alt_dcache_flush_all(); + 124: 00001840 call 184 + alt_icache_flush_all(); +} + 128: dfc00017 ldw ra,0(sp) + 12c: dec00104 addi sp,sp,4 + /* + * Now ensure that the caches are in synch. + */ + + alt_dcache_flush_all(); + alt_icache_flush_all(); + 130: 00001881 jmpi 188 + +00000134 : + * devices/filesystems/components in the system; and call the entry point for + * the users application, i.e. main(). + */ + +void alt_main (void) +{ + 134: deffff04 addi sp,sp,-4 +#endif + + /* ALT LOG - please see HAL/sys/alt_log_printf.h for details */ + ALT_LOG_PRINT_BOOT("[alt_main.c] Entering alt_main, calling alt_irq_init.\r\n"); + /* Initialize the interrupt controller. */ + alt_irq_init (NULL); + 138: 0009883a mov r4,zero + * devices/filesystems/components in the system; and call the entry point for + * the users application, i.e. main(). + */ + +void alt_main (void) +{ + 13c: dfc00015 stw ra,0(sp) +#endif + + /* ALT LOG - please see HAL/sys/alt_log_printf.h for details */ + ALT_LOG_PRINT_BOOT("[alt_main.c] Entering alt_main, calling alt_irq_init.\r\n"); + /* Initialize the interrupt controller. */ + alt_irq_init (NULL); + 140: 00001640 call 164 + ALT_LOG_PRINT_BOOT("[alt_main.c] Done OS Init, calling alt_sem_create.\r\n"); + ALT_SEM_CREATE (&alt_fd_list_lock, 1); + + /* Initialize the device drivers/software components. */ + ALT_LOG_PRINT_BOOT("[alt_main.c] Calling alt_sys_init.\r\n"); + alt_sys_init(); + 144: 00001600 call 160 + */ + + ALT_LOG_PRINT_BOOT("[alt_main.c] Calling main.\r\n"); + +#ifdef ALT_NO_EXIT + main (alt_argc, alt_argv, alt_envp); + 148: d1200217 ldw r4,-32760(gp) + 14c: d1600317 ldw r5,-32756(gp) + 150: d1a00417 ldw r6,-32752(gp) + close(STDOUT_FILENO); + exit (result); +#endif + + ALT_LOG_PRINT_BOOT("[alt_main.c] After main - we should not be here?.\r\n"); +} + 154: dfc00017 ldw ra,0(sp) + 158: dec00104 addi sp,sp,4 + */ + + ALT_LOG_PRINT_BOOT("[alt_main.c] Calling main.\r\n"); + +#ifdef ALT_NO_EXIT + main (alt_argc, alt_argv, alt_envp); + 15c: 000005c1 jmpi 5c
+ +00000160 : + */ + +void alt_sys_init( void ) +{ + ALTERA_AVALON_JTAG_UART_INIT ( JTAG_UART, jtag_uart); +} + 160: f800283a ret + +00000164 : + * The "base" parameter is ignored and only + * present for backwards-compatibility. + */ + +void alt_irq_init ( const void* base ) +{ + 164: deffff04 addi sp,sp,-4 + 168: dfc00015 stw ra,0(sp) + ALTERA_NIOS2_QSYS_IRQ_INIT ( NIOS2_PROCESSOR, nios2_processor); + 16c: 000018c0 call 18c + * alt_irq_cpu_enable_interrupts() enables the CPU to start taking interrupts. + */ +static ALT_INLINE void ALT_ALWAYS_INLINE + alt_irq_cpu_enable_interrupts () +{ + NIOS2_WRITE_STATUS(NIOS2_STATUS_PIE_MSK + 170: 00800044 movi r2,1 + 174: 1001703a wrctl status,r2 + alt_irq_cpu_enable_interrupts(); +} + 178: dfc00017 ldw ra,0(sp) + 17c: dec00104 addi sp,sp,4 + 180: f800283a ret + +00000184 : + for (i = (char*) 0; i < (char*) NIOS2_DCACHE_SIZE; i+= NIOS2_DCACHE_LINE_SIZE) + { + __asm__ volatile ("flushd (%0)" :: "r" (i)); + } +#endif /* NIOS2_DCACHE_SIZE > 0 */ +} + 184: f800283a ret + +00000188 : +void alt_icache_flush_all (void) +{ +#if NIOS2_ICACHE_SIZE > 0 + alt_icache_flush (0, NIOS2_ICACHE_SIZE); +#endif +} + 188: f800283a ret + +0000018c : + * To initialize the internal interrupt controller, just clear the IENABLE + * register so that all possible IRQs are disabled. + */ +void altera_nios2_qsys_irq_init(void) +{ + NIOS2_WRITE_IENABLE(0); + 18c: 000170fa wrctl ienable,zero +} + 190: f800283a ret diff --git a/software/qsys_tutorial_test/readme.txt b/software/qsys_tutorial_test/readme.txt new file mode 100644 index 0000000..3dc3186 --- /dev/null +++ b/software/qsys_tutorial_test/readme.txt @@ -0,0 +1,67 @@ +Readme - Hello World Software Example + +DESCRIPTION: +Simple program that prints "Hello from Nios II" + +The purpose of this example is to demonstrate the smallest possible Hello +World application, using the Nios II HAL BSP. The memory footprint +of this hosted application is intended to be less than 1 kbytes by default using a standard +reference design. For a more fully featured Hello World application +example, see the example titled "Hello World". + +The memory footprint of this example has been reduced by making the +following changes to the normal "Hello World" example. +Check in the Nios II Software Developers Handbook for a more complete +description. + +In the SW Application project: + - In the C/C++ Build page + - Set the Optimization Level to -Os + +In BSP project: + - In the C/C++ Build page + + - Set the Optimization Level to -Os + + - Define the preprocessor option ALT_NO_INSTRUCTION_EMULATION + This removes software exception handling, which means that you cannot + run code compiled for Nios II cpu with a hardware multiplier on a core + without a the multiply unit. Check the Nios II Software Developers + Manual for more details. + + - In the BSP: + - Set Periodic system timer and Timestamp timer to none + This prevents the automatic inclusion of the timer driver. + + - Set Max file descriptors to 4 + This reduces the size of the file handle pool. + + - Uncheck Clean exit (flush buffers) + This removes the call to exit, and when main is exitted instead of + calling exit the software will just spin in a loop. + + - Check Small C library + This uses a reduced functionality C library, which lacks + support for buffering, file IO, floating point and getch(), etc. + Check the Nios II Software Developers Manual for a complete list. + + - Check Reduced device drivers + This uses reduced functionality drivers if they're available. For the + standard design this means you get polled UART and JTAG UART drivers, + no support for the LCD driver and you lose the ability to program + CFI compliant flash devices. + + +PERIPHERALS USED: +This example exercises the following peripherals: +- STDOUT device (UART or JTAG UART) + +SOFTWARE SOURCE FILES: +This example includes the following software source files: +- small_hello_world.c: + +BOARD/HOST REQUIREMENTS: +This example requires only a JTAG connection with a Nios Development board. If +the host communication settings are changed from JTAG UART (default) to use a +conventional UART, a serial cable between board DB-9 connector and the host is +required. diff --git a/software/qsys_tutorial_test/system/template.xml b/software/qsys_tutorial_test/system/template.xml new file mode 100644 index 0000000..b09e912 --- /dev/null +++ b/software/qsys_tutorial_test/system/template.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/software/qsys_tutorial_test_bsp/.cproject b/software/qsys_tutorial_test_bsp/.cproject new file mode 100644 index 0000000..4a70f4d --- /dev/null +++ b/software/qsys_tutorial_test_bsp/.cproject @@ -0,0 +1,481 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/software/qsys_tutorial_test_bsp/.project b/software/qsys_tutorial_test_bsp/.project new file mode 100644 index 0000000..cab7cc1 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/.project @@ -0,0 +1,85 @@ + + + qsys_tutorial_test_bsp + + + + + + org.eclipse.cdt.managedbuilder.core.genmakebuilder + clean,full,incremental, + + + ?name? + + + + org.eclipse.cdt.make.core.append_environment + true + + + org.eclipse.cdt.make.core.autoBuildTarget + all + + + org.eclipse.cdt.make.core.buildArguments + + + + org.eclipse.cdt.make.core.buildCommand + make + + + org.eclipse.cdt.make.core.buildLocation + ${workspace_loc://qsys_tutorial_test_bsp} + + + org.eclipse.cdt.make.core.cleanBuildTarget + clean + + + org.eclipse.cdt.make.core.contents + org.eclipse.cdt.make.core.activeConfigSettings + + + org.eclipse.cdt.make.core.enableAutoBuild + false + + + org.eclipse.cdt.make.core.enableCleanBuild + true + + + org.eclipse.cdt.make.core.enableFullBuild + true + + + org.eclipse.cdt.make.core.fullBuildTarget + all + + + org.eclipse.cdt.make.core.stopOnError + true + + + org.eclipse.cdt.make.core.useDefaultBuildCmd + true + + + + + org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder + full,incremental, + + + + + + org.eclipse.cdt.core.cnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.managedbuilder.core.ScannerConfigNature + org.eclipse.cdt.core.ccnature + com.altera.sbtgui.project.SBTGUINature + com.altera.sbtgui.project.SBTGUIBspNature + + diff --git a/software/qsys_tutorial_test_bsp/HAL/inc/alt_types.h b/software/qsys_tutorial_test_bsp/HAL/inc/alt_types.h new file mode 100644 index 0000000..d02f171 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/HAL/inc/alt_types.h @@ -0,0 +1,54 @@ +#ifndef __ALT_TYPES_H__ +#define __ALT_TYPES_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/* + * Don't declare these typedefs if this file is included by assembly source. + */ +#ifndef ALT_ASM_SRC +typedef signed char alt_8; +typedef unsigned char alt_u8; +typedef signed short alt_16; +typedef unsigned short alt_u16; +typedef signed long alt_32; +typedef unsigned long alt_u32; +typedef long long alt_64; +typedef unsigned long long alt_u64; +#endif + +#define ALT_INLINE __inline__ +#define ALT_ALWAYS_INLINE __attribute__ ((always_inline)) +#define ALT_WEAK __attribute__((weak)) + +#endif /* __ALT_TYPES_H__ */ diff --git a/software/qsys_tutorial_test_bsp/HAL/inc/altera_nios2_qsys_irq.h b/software/qsys_tutorial_test_bsp/HAL/inc/altera_nios2_qsys_irq.h new file mode 100644 index 0000000..6629ec9 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/HAL/inc/altera_nios2_qsys_irq.h @@ -0,0 +1,80 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2009 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/* + * Support for the Nios II internal interrupt controller. + */ + +#ifndef __ALT_NIOS2_QSYS_IRQ_H__ +#define __ALT_NIOS2_QSYS_IRQ_H__ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * The macro ALTERA_NIOS2_IRQ_INSTANCE is used by the alt_irq_init() + * function in the auto-generated file alt_sys_init.c to create an + * instance of this interrupt controller device driver state if this + * module contains an interrupt controller. + * Only one instance of a Nios II is allowed so this macro is just empty. + */ + +#define ALTERA_NIOS2_QSYS_IRQ_INSTANCE(name, state) + +/* + * altera_nios2_irq_init() is called by the auto-generated function + * alt_irq_init() once for the Nios II if it contains an interrupt controller. + * The altera_nios2_irq_init() routine is called using the + * ALTERA_NIOS2_IRQ_INIT macro given below. + * + * This function initializes the internal interrupt controller + * so is not called if the Nios II contains an external interrupt + * controller port (because the internal interrupt controller + * is removed if this port is present). + */ + +extern void altera_nios2_qsys_irq_init( void ); + +/* + * The macro ALTERA_NIOS2_IRQ_INIT is used by the alt_irq_init() routine + * in the auto-generated file alt_sys_init.c to initialize an instance + * of the interrupt controller device driver state. + */ + +#define ALTERA_NIOS2_QSYS_IRQ_INIT(name, state) altera_nios2_qsys_irq_init() + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __ALT_NIOS2_QSYS_IRQ_H__ */ + diff --git a/software/qsys_tutorial_test_bsp/HAL/inc/io.h b/software/qsys_tutorial_test_bsp/HAL/inc/io.h new file mode 100644 index 0000000..362f103 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/HAL/inc/io.h @@ -0,0 +1,81 @@ +#ifndef __IO_H__ +#define __IO_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/* IO Header file for Nios II Toolchain */ + +#include "alt_types.h" +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +#ifndef SYSTEM_BUS_WIDTH +#error SYSTEM_BUS_WIDTH undefined +#endif + +/* Dynamic bus access functions */ + +#define __IO_CALC_ADDRESS_DYNAMIC(BASE, OFFSET) \ + ((void *)(((alt_u8*)BASE) + (OFFSET))) + +#define IORD_32DIRECT(BASE, OFFSET) \ + __builtin_ldwio (__IO_CALC_ADDRESS_DYNAMIC ((BASE), (OFFSET))) +#define IORD_16DIRECT(BASE, OFFSET) \ + __builtin_ldhuio (__IO_CALC_ADDRESS_DYNAMIC ((BASE), (OFFSET))) +#define IORD_8DIRECT(BASE, OFFSET) \ + __builtin_ldbuio (__IO_CALC_ADDRESS_DYNAMIC ((BASE), (OFFSET))) + +#define IOWR_32DIRECT(BASE, OFFSET, DATA) \ + __builtin_stwio (__IO_CALC_ADDRESS_DYNAMIC ((BASE), (OFFSET)), (DATA)) +#define IOWR_16DIRECT(BASE, OFFSET, DATA) \ + __builtin_sthio (__IO_CALC_ADDRESS_DYNAMIC ((BASE), (OFFSET)), (DATA)) +#define IOWR_8DIRECT(BASE, OFFSET, DATA) \ + __builtin_stbio (__IO_CALC_ADDRESS_DYNAMIC ((BASE), (OFFSET)), (DATA)) + +/* Native bus access functions */ + +#define __IO_CALC_ADDRESS_NATIVE(BASE, REGNUM) \ + ((void *)(((alt_u8*)BASE) + ((REGNUM) * (SYSTEM_BUS_WIDTH/8)))) + +#define IORD(BASE, REGNUM) \ + __builtin_ldwio (__IO_CALC_ADDRESS_NATIVE ((BASE), (REGNUM))) +#define IOWR(BASE, REGNUM, DATA) \ + __builtin_stwio (__IO_CALC_ADDRESS_NATIVE ((BASE), (REGNUM)), (DATA)) + +#ifdef __cplusplus +} +#endif + +#endif /* __IO_H__ */ diff --git a/software/qsys_tutorial_test_bsp/HAL/inc/nios2.h b/software/qsys_tutorial_test_bsp/HAL/inc/nios2.h new file mode 100644 index 0000000..72cefba --- /dev/null +++ b/software/qsys_tutorial_test_bsp/HAL/inc/nios2.h @@ -0,0 +1,230 @@ +#ifndef __NIOS2_H__ +#define __NIOS2_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2008 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/* + * This header provides processor specific macros for accessing the Nios2 + * control registers. + */ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * Macros for accessing selected processor registers + */ + +#define NIOS2_READ_ET(et) \ + do { __asm ("mov %0, et" : "=r" (et) ); } while (0) + +#define NIOS2_WRITE_ET(et) \ + do { __asm volatile ("mov et, %z0" : : "rM" (et)); } while (0) + +#define NIOS2_READ_SP(sp) \ + do { __asm ("mov %0, sp" : "=r" (sp) ); } while (0) + +/* + * Macros for useful processor instructions + */ + +#define NIOS2_BREAK() \ + do { __asm volatile ("break"); } while (0) + +#define NIOS2_REPORT_STACK_OVERFLOW() \ + do { __asm volatile("break 3"); } while (0) + +/* + * Macros for accessing the control registers. + */ + +#define NIOS2_READ_STATUS(dest) \ + do { dest = __builtin_rdctl(0); } while (0) + +#define NIOS2_WRITE_STATUS(src) \ + do { __builtin_wrctl(0, src); } while (0) + +#define NIOS2_READ_ESTATUS(dest) \ + do { dest = __builtin_rdctl(1); } while (0) + +#define NIOS2_READ_BSTATUS(dest) \ + do { dest = __builtin_rdctl(2); } while (0) + +#define NIOS2_READ_IENABLE(dest) \ + do { dest = __builtin_rdctl(3); } while (0) + +#define NIOS2_WRITE_IENABLE(src) \ + do { __builtin_wrctl(3, src); } while (0) + +#define NIOS2_READ_IPENDING(dest) \ + do { dest = __builtin_rdctl(4); } while (0) + +#define NIOS2_READ_CPUID(dest) \ + do { dest = __builtin_rdctl(5); } while (0) + + +/* + * Macros for accessing extra exception registers. These + * are always enabled wit the MPU or MMU, and optionally + * with other advanced exception types/ + */ +#define NIOS2_READ_EXCEPTION(dest) \ + do { dest = __builtin_rdctl(7); } while (0) + +#define NIOS2_READ_BADADDR(dest) \ + do { dest = __builtin_rdctl(12); } while (0) + + +/* + * Macros for accessing control registers for MPU + * operation. These should not be used unless the + * MPU is enabled. + * + * The config register may be augmented for future + * enhancements. For now, only MPU support is provided. + */ +/* Config register */ +#define NIOS2_WRITE_CONFIG(src) \ + do { __builtin_wrctl(13, src); } while (0) + +#define NIOS2_READ_CONFIG(dest) \ + do { dest = __builtin_rdctl(13); } while (0) + +/* MPU Base Address Register */ +#define NIOS2_WRITE_MPUBASE(src) \ + do { __builtin_wrctl(14, src); } while (0) + +#define NIOS2_READ_MPUBASE(dest) \ + do { dest = __builtin_rdctl(14); } while (0) + +/* MPU Access Register */ +#define NIOS2_WRITE_MPUACC(src) \ + do { __builtin_wrctl(15, src); } while (0) + +#define NIOS2_READ_MPUACC(dest) \ + do { dest = __builtin_rdctl(15); } while (0) + + +/* + * Nios II control registers that are always present + */ +#define NIOS2_STATUS status +#define NIOS2_ESTATUS estatus +#define NIOS2_BSTATUS bstatus +#define NIOS2_IENABLE ienable +#define NIOS2_IPENDING ipending +#define NIOS2_CPUID cpuid + +/* + * STATUS, BSTATUS, ESTATUS, and SSTATUS fields. + * The presence of fields is a function of the Nios II configuration. + */ +#define NIOS2_STATUS_PIE_MSK (0x00000001) +#define NIOS2_STATUS_PIE_OFST (0) +#define NIOS2_STATUS_U_MSK (0x00000002) +#define NIOS2_STATUS_U_OFST (1) +#define NIOS2_STATUS_EH_MSK (0x00000004) +#define NIOS2_STATUS_EH_OFST (2) +#define NIOS2_STATUS_IH_MSK (0x00000008) +#define NIOS2_STATUS_IH_OFST (3) +#define NIOS2_STATUS_IL_MSK (0x000003f0) +#define NIOS2_STATUS_IL_OFST (4) +#define NIOS2_STATUS_CRS_MSK (0x0000fc00) +#define NIOS2_STATUS_CRS_OFST (10) +#define NIOS2_STATUS_PRS_MSK (0x003f0000) +#define NIOS2_STATUS_PRS_OFST (16) +#define NIOS2_STATUS_NMI_MSK (0x00400000) +#define NIOS2_STATUS_NMI_OFST (22) +#define NIOS2_STATUS_RSIE_MSK (0x00800000) +#define NIOS2_STATUS_RSIE_OFST (23) +#define NIOS2_STATUS_SRS_MSK (0x80000000) +#define NIOS2_STATUS_SRS_OFST (31) + +/* + * Bit masks & offsets available with extra exceptions support + */ + +/* Exception register */ +#define NIOS2_EXCEPTION_REG_CAUSE_MASK (0x0000007c) +#define NIOS2_EXCEPTION_REG_CAUSE_OFST (2) + +/* + * Bit masks & offsets for MPU support + * + * All bit-masks are expressed relative to the position + * of the data with a register. To read data that is LSB- + * aligned, the register read data should be masked, then + * right-shifted by the designated "OFST" macro value. The + * opposite should be used for register writes when starting + * with LSB-aligned data. + */ + +/* Config register */ +#define NIOS2_CONFIG_REG_PE_MASK (0x00000001) +#define NIOS2_CONFIG_REG_PE_OFST (0) +#define NIOS2_CONFIG_REG_ANI_MASK (0x00000002) +#define NIOS2_CONFIG_REG_ANI_OFST (1) + +/* MPU Base Address Register */ +#define NIOS2_MPUBASE_D_MASK (0x00000001) +#define NIOS2_MPUBASE_D_OFST (0) +#define NIOS2_MPUBASE_INDEX_MASK (0x0000003e) +#define NIOS2_MPUBASE_INDEX_OFST (1) +#define NIOS2_MPUBASE_BASE_ADDR_MASK (0xffffffc0) +#define NIOS2_MPUBASE_BASE_ADDR_OFST (6) + +/* MPU Access Register */ +#define NIOS2_MPUACC_LIMIT_MASK (0xffffffc0) +#define NIOS2_MPUACC_LIMIT_OFST (6) +#define NIOS2_MPUACC_MASK_MASK (0xffffffc0) +#define NIOS2_MPUACC_MASK_OFST (6) +#define NIOS2_MPUACC_C_MASK (0x00000020) +#define NIOS2_MPUACC_C_OFST (5) +#define NIOS2_MPUACC_PERM_MASK (0x0000001c) +#define NIOS2_MPUACC_PERM_OFST (2) +#define NIOS2_MPUACC_RD_MASK (0x00000002) +#define NIOS2_MPUACC_RD_OFST (1) +#define NIOS2_MPUACC_WR_MASK (0x00000001) +#define NIOS2_MPUACC_WR_OFST (0) + +/* + * Number of available IRQs in internal interrupt controller. + */ +#define NIOS2_NIRQ 32 + + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __NIOS2_H__ */ diff --git a/software/qsys_tutorial_test_bsp/HAL/inc/os/alt_flag.h b/software/qsys_tutorial_test_bsp/HAL/inc/os/alt_flag.h new file mode 100644 index 0000000..b9b4605 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/HAL/inc/os/alt_flag.h @@ -0,0 +1,98 @@ +#ifndef __ALT_FLAG_H__ +#define __ALT_FLAG_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +/* + * This header provides macro definitions that can be used to create and use + * uc/OS-II style event flags. These macros can be used in both a uC/OS-II based + * environment, and a single threaded HAL based environment. + * + * The motivation for these macros is to allow code to be developed which is + * thread safe under uC/OS-II, but incurs no additional overhead when used in a + * single threaded HAL environment. + * + * In the case of a single threaded HAL environment, they compile to + * "do nothing" directives, which ensures they do not contribute to the final + * executable. + * + * The following macros are available: + * + * ALT_FLAG_GRP - Create a flag group instance. + * ALT_EXTERN_FLAG_GRP - Create a reference to an external flag group instance. + * ALT_STATIC_FLAG_GRP - Create a static flag group instance. + * ALT_FLAG_CREATE - Initialise a flag group. + * ALT_FLAG_PEND - Pend on a flag group. + * ALT_FLAG_POST - Set a flag condition. + + * + * Input arguments and return codes are all consistant with the equivalent + * uC/OS-II function. + * + * It's important to be careful in the use of the macros: ALT_FLAG_GRP, + * ALT_EXTERN_FLAG_GRP, and ALT_STATIC_FLAG_GRP. In these three cases the + * semi-colon is included in the macro definition; so, for example, you should + * use: + * + * ALT_FLAG_GRP(mygroup) + * + * not: + * + * ALT_FLAG_GRP(mygroup); + * + * The inclusion of the semi-colon has been necessary to ensure the macros can + * compile with no warnings when used in a single threaded HAL environment. + * + */ + +#include "priv/alt_no_error.h" + +#define ALT_FLAG_GRP(group) +#define ALT_EXTERN_FLAG_GRP(group) +#define ALT_STATIC_FLAG_GRP(group) + +#define ALT_FLAG_CREATE(group, flags) alt_no_error () +#define ALT_FLAG_PEND(group, flags, wait_type, timeout) alt_no_error () +#define ALT_FLAG_POST(group, flags, opt) alt_no_error () + +#ifndef ALT_SINGLE_THREADED +#define ALT_SINGLE_THREADED +#endif + +#endif /* __ALT_FLAG_H__ */ diff --git a/software/qsys_tutorial_test_bsp/HAL/inc/os/alt_hooks.h b/software/qsys_tutorial_test_bsp/HAL/inc/os/alt_hooks.h new file mode 100644 index 0000000..9054e3f --- /dev/null +++ b/software/qsys_tutorial_test_bsp/HAL/inc/os/alt_hooks.h @@ -0,0 +1,61 @@ +#ifndef __ALT_HOOKS_H__ +#define __ALT_HOOKS_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +/* + * This header provides "do-nothing" macro definitions for operating system + * hooks within the HAL. The O/S component can override these to provide it's + * own implementation. + */ + +#define ALT_OS_TIME_TICK() while(0) +#define ALT_OS_INIT() while(0) +#define ALT_OS_STOP() while(0) + +/* Call from assembly code */ +#define ALT_OS_INT_ENTER_ASM +#define ALT_OS_INT_EXIT_ASM + +/* Call from C code */ +#define ALT_OS_INT_ENTER() while(0) +#define ALT_OS_INT_EXIT() while(0) + + +#endif /* __ALT_HOOKS_H__ */ diff --git a/software/qsys_tutorial_test_bsp/HAL/inc/os/alt_sem.h b/software/qsys_tutorial_test_bsp/HAL/inc/os/alt_sem.h new file mode 100644 index 0000000..753943e --- /dev/null +++ b/software/qsys_tutorial_test_bsp/HAL/inc/os/alt_sem.h @@ -0,0 +1,96 @@ +#ifndef __ALT_SEM_H__ +#define __ALT_SEM_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +/* + * This header provides macro definitions that can be used to create and use + * semaphores. These macros can be used in both a uC/OS-II based environment, + * and a single threaded HAL based environment. + * + * The motivation for these macros is to allow code to be developed which is + * thread safe under uC/OS-II, but incurs no additional overhead when used in a + * single threaded HAL environment. + * + * In the case of a single threaded HAL environment, they compile to + * "do nothing" directives, which ensures they do not contribute to the final + * executable. + * + * The following macros are available: + * + * ALT_SEM - Create a semaphore instance. + * ALT_EXTERN_SEM - Create a reference to an external semaphore instance. + * ALT_STATIC_SEM - Create a static semaphore instance. + * ALT_SEM_CREATE - Initialise a semaphore. + * ALT_SEM_PEND - Pend on a semaphore. + * ALT_SEM_POST - Increment a semaphore. + * + * Input arguments and return codes are all consistant with the equivalent + * uC/OS-II function. + * + * It's important to be careful in the use of the macros: ALT_SEM, + * ALT_EXTERN_SEM, and ALT_STATIC_SEM. In these three cases the semi-colon is + * included in the macro definition; so, for example, you should use: + * + * ALT_SEM(mysem) + * + * not: + * + * ALT_SEM(mysem); + * + * The inclusion of the semi-colon has been necessary to ensure the macros can + * compile with no warnings when used in a single threaded HAL environment. + * + */ + +#include "priv/alt_no_error.h" + +#define ALT_SEM(sem) +#define ALT_EXTERN_SEM(sem) +#define ALT_STATIC_SEM(sem) + +#define ALT_SEM_CREATE(sem, value) alt_no_error () +#define ALT_SEM_PEND(sem, timeout) alt_no_error () +#define ALT_SEM_POST(sem) alt_no_error () + +#ifndef ALT_SINGLE_THREADED +#define ALT_SINGLE_THREADED +#endif + +#endif /* __ALT_SEM_H__ */ diff --git a/software/qsys_tutorial_test_bsp/HAL/inc/os/alt_syscall.h b/software/qsys_tutorial_test_bsp/HAL/inc/os/alt_syscall.h new file mode 100644 index 0000000..507c6aa --- /dev/null +++ b/software/qsys_tutorial_test_bsp/HAL/inc/os/alt_syscall.h @@ -0,0 +1,75 @@ +#ifndef __ALT_SYSCALL_H__ +#define __ALT_SYSCALL_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/* + * The macros defined in this file are used to provide the function names used + * for the HAL 'UNIX style' interface, e.g. read(), write() etc. + * + * Operating systems which are ported to the HAL can provide their own + * version of this file, which will be used in preference. This allows + * the operating system to provide it's own implementation of the top level + * system calls, while retaining the HAL functions under a different name, + * for example, alt_read(), alt_write() etc. + */ + +#define ALT_CLOSE close +#define ALT_ENVIRON environ +#define ALT_EXECVE execve +#define ALT_EXIT _exit +#define ALT_FCNTL fcntl +#define ALT_FORK fork +#define ALT_FSTAT fstat +#define ALT_GETPID getpid +#define ALT_GETTIMEOFDAY gettimeofday +#define ALT_IOCTL ioctl +#define ALT_ISATTY isatty +#define ALT_KILL kill +#define ALT_LINK link +#define ALT_LSEEK lseek +#define ALT_OPEN open +#define ALT_READ read +#define ALT_RENAME _rename +#define ALT_SBRK sbrk +#define ALT_SETTIMEOFDAY settimeofday +#define ALT_STAT stat +#define ALT_UNLINK unlink +#define ALT_USLEEP usleep +#define ALT_WAIT wait +#define ALT_WRITE write +#define ALT_TIMES times + +/* + * + */ + +#endif /* __ALT_SYSCALL_H__ */ diff --git a/software/qsys_tutorial_test_bsp/HAL/inc/priv/alt_alarm.h b/software/qsys_tutorial_test_bsp/HAL/inc/priv/alt_alarm.h new file mode 100644 index 0000000..45d6a0e --- /dev/null +++ b/software/qsys_tutorial_test_bsp/HAL/inc/priv/alt_alarm.h @@ -0,0 +1,101 @@ +#ifndef __ALT_PRIV_ALARM_H__ +#define __ALT_PRIV_ALARM_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#include "alt_types.h" + +/* + * This header provides the internal defenitions required by the public + * interface alt_alarm.h. These variables and structures are not guaranteed to + * exist in future implementations of the HAL. + */ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * "alt_alarm_s" is a structure type used to maintain lists of alarm callback + * functions. + */ + +struct alt_alarm_s +{ + alt_llist llist; /* linked list */ + alt_u32 time; /* time in system ticks of the callback */ + alt_u32 (*callback) (void* context); /* callback function. The return + * value is the period for the next callback; where + * zero indicates that the alarm should be removed + * from the list. + */ + alt_u8 rollover; /* set when desired alarm time + current time causes + overflow, to prevent premature alarm */ + void* context; /* Argument for the callback */ +}; + +/* + * "_alt_tick_rate" is a global variable used to store the system clock rate + * in ticks per second. This is initialised to zero, which coresponds to there + * being no system clock available. + * + * It is then set to it's final value by the system clock driver through a call + * to alt_sysclk_init(). + */ + +extern alt_u32 _alt_tick_rate; + +/* + * "_alt_nticks" is a global variable which records the elapsed number of + * system clock ticks since the last call to settimeofday() or since reset if + * settimeofday() has not been called. + */ + +extern volatile alt_u32 _alt_nticks; + +/* The list of registered alarms. */ + +extern alt_llist alt_alarm_list; + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_PRIV_ALARM_H__ */ diff --git a/software/qsys_tutorial_test_bsp/HAL/inc/priv/alt_busy_sleep.h b/software/qsys_tutorial_test_bsp/HAL/inc/priv/alt_busy_sleep.h new file mode 100644 index 0000000..b1af849 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/HAL/inc/priv/alt_busy_sleep.h @@ -0,0 +1,35 @@ +#ifndef __ALT_BUSY_SLEEP_H +#define __ALT_BUSY_SLEEP_H + +/* + * Copyright (c) 2003 Altera Corporation, San Jose, California, USA. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ + +/* + * The function alt_busy_sleep provides a busy loop implementation of usleep. + * This is used to provide usleep for the standalone HAL, or when the timer is + * unavailable in uC/OS-II. + */ + +extern unsigned int alt_busy_sleep (unsigned int us); + +#endif /* __ALT_BUSY_SLEEP_H */ diff --git a/software/qsys_tutorial_test_bsp/HAL/inc/priv/alt_dev_llist.h b/software/qsys_tutorial_test_bsp/HAL/inc/priv/alt_dev_llist.h new file mode 100644 index 0000000..451b063 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/HAL/inc/priv/alt_dev_llist.h @@ -0,0 +1,77 @@ +#ifndef __ALT_DEV_LLIST_H__ +#define __ALT_DEV_LLIST_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#include "sys/alt_llist.h" +#include "alt_types.h" + +/* + * This header provides the internal defenitions required to control file + * access. These variables and functions are not guaranteed to exist in + * future implementations of the HAL. + */ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * The alt_dev_llist is an internal structure used to form a common base + * class for all device types. The use of this structure allows common code + * to be used to manipulate the various device lists. + */ + +typedef struct { + alt_llist llist; + const char* name; +} alt_dev_llist; + +/* + * + */ + +extern int alt_dev_llist_insert (alt_dev_llist* dev, alt_llist* list); + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_DEV_LLIST_H__ */ diff --git a/software/qsys_tutorial_test_bsp/HAL/inc/priv/alt_exception_handler_registry.h b/software/qsys_tutorial_test_bsp/HAL/inc/priv/alt_exception_handler_registry.h new file mode 100644 index 0000000..c6905fa --- /dev/null +++ b/software/qsys_tutorial_test_bsp/HAL/inc/priv/alt_exception_handler_registry.h @@ -0,0 +1,39 @@ +#ifndef __ALT_EXCEPTION_HANDLER_REGISTRY_H__ +#define __ALT_EXCEPTION_HANDLER_REGISTRY_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2008 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ +#include "sys/alt_exceptions.h" + +/* Function pointer to exception callback routine */ +extern alt_exception_result (*alt_instruction_exception_handler) + (alt_exception_cause, alt_u32, alt_u32); + +#endif /* __ALT_EXCEPTION_HANDLER_REGISTRY_H__ */ diff --git a/software/qsys_tutorial_test_bsp/HAL/inc/priv/alt_file.h b/software/qsys_tutorial_test_bsp/HAL/inc/priv/alt_file.h new file mode 100644 index 0000000..2c3e843 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/HAL/inc/priv/alt_file.h @@ -0,0 +1,179 @@ +#ifndef __ALT_FILE_H__ +#define __ALT_FILE_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#include "sys/alt_dev.h" +#include "sys/alt_llist.h" +#include "os/alt_sem.h" + +#include "alt_types.h" + +/* + * This header provides the internal defenitions required to control file + * access. These variables and functions are not guaranteed to exist in + * future implementations of the HAL. + */ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * The function alt_find_dev() is used to search the device list "list" to + * locate a device named "name". If a match is found, then a pointer to the + * device is returned, otherwise NULL is returned. + */ + +extern alt_dev* alt_find_dev (const char* name, alt_llist* list); + +/* + * alt_find_file() is used to search the list of registered file systems to + * find the filesystem that the file named "name" belongs to. If a match is + * found, then a pointer to the filesystems alt_dev structure is returned, + * otherwise NULL is returned. + * + * Note that a match does not indicate that the file exists, only that a + * filesystem exists that is registered for a partition that could contain + * the file. The filesystems open() function would need to be called in order + * to determine if the file exists. + */ + +extern alt_dev* alt_find_file (const char* name); + +/* + * alt_get_fd() is used to allocate a file descriptor for the device or + * filesystem "dev". A negative return value indicates an error, otherwise the + * return value is the index of the file descriptor within the file descriptor + * pool. + */ + +extern int alt_get_fd (alt_dev* dev); + +/* + * alt_release_fd() is called to free the file descriptor with index "fd". + */ + +extern void alt_release_fd (int fd); + +/* + * alt_fd_lock() is called by ioctl() to mark the file descriptor "fd" as + * being open for exclusive access. Subsequent calls to open() for the device + * associated with "fd" will fail. A device is unlocked by either calling + * close() for "fd", or by an alternate call to ioctl() (see ioctl.c for + * details). + */ + +extern int alt_fd_lock (alt_fd* fd); + +/* + * alt_fd_unlock() is called by ioctl() to unlock a descriptor previously + * locked by a call to alt_fd_lock(). + */ + +extern int alt_fd_unlock (alt_fd* fd); + +/* + * "alt_fd_list" is the pool of file descriptors. + */ + +extern alt_fd alt_fd_list[]; + +/* + * flags used by alt_fd. + * + * ALT_FD_EXCL is used to mark a file descriptor as locked for exclusive + * access, i.e. further calls to open() for the associated device should + * fail. + * + * ALT_FD_DEV marks a dile descriptor as belonging to a device as oposed to a + * filesystem. + */ + +#define ALT_FD_EXCL 0x80000000 +#define ALT_FD_DEV 0x40000000 + +#define ALT_FD_FLAGS_MASK (ALT_FD_EXCL | ALT_FD_DEV) + +/* + * "alt_dev_list" is the head of the linked list of registered devices. + */ + +extern alt_llist alt_dev_list; + +/* + * "alt_fs_list" is the head of the linked list of registered filesystems. + */ + +extern alt_llist alt_fs_list; + +/* + * "alt_fd_list_lock" is a semaphore used to ensure that access to the pool + * of file descriptors is thread safe. + */ + +ALT_EXTERN_SEM(alt_fd_list_lock) + +/* + * "alt_max_fd" is a 'high water mark'. It indicates the highest file + * descriptor allocated. Use of this can save searching the entire pool + * for active file descriptors, which helps avoid contention on access + * to the file descriptor pool. + */ + +extern alt_32 alt_max_fd; + +/* + * alt_io_redirect() is called at startup to redirect stdout, stdin, and + * stderr to the devices named in the input arguments. By default these streams + * are directed at /dev/null, and are then redirected using this function once + * all of the devices have been registered within the system. + */ + +extern void alt_io_redirect(const char* stdout_dev, + const char* stdin_dev, + const char* stderr_dev); + + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_FILE_H__ */ diff --git a/software/qsys_tutorial_test_bsp/HAL/inc/priv/alt_iic_isr_register.h b/software/qsys_tutorial_test_bsp/HAL/inc/priv/alt_iic_isr_register.h new file mode 100644 index 0000000..a0cb01c --- /dev/null +++ b/software/qsys_tutorial_test_bsp/HAL/inc/priv/alt_iic_isr_register.h @@ -0,0 +1,39 @@ +#ifndef __ALT_IIC_ISR_REGISTER_H_ +#define __ALT_IIC_ISR_REGISTER_H_ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2009 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ +#include "alt_types.h" +#include "sys/alt_irq.h" + +extern int alt_iic_isr_register(alt_u32 ic_id, alt_u32 irq, alt_isr_func isr, + void *isr_context, void *flags); + +#endif /* __ALT_IIC_ISR_REGISTER_H_ */ diff --git a/software/qsys_tutorial_test_bsp/HAL/inc/priv/alt_irq_table.h b/software/qsys_tutorial_test_bsp/HAL/inc/priv/alt_irq_table.h new file mode 100644 index 0000000..694ef06 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/HAL/inc/priv/alt_irq_table.h @@ -0,0 +1,59 @@ +#ifndef __ALT_IRQ_TABLE_H__ +#define __ALT_IRQ_TABLE_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2009 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +/* + * Definition of a table describing each interrupt handler. The index into + * the array is the interrupt id associated with the handler. + * + * When an interrupt occurs, the associated handler is called with + * the argument stored in the context member. + * + * The table is physically created in alt_irq_handler.c + */ +extern struct ALT_IRQ_HANDLER +{ +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT + void (*handler)(void*); +#else + void (*handler)(void*, alt_u32); +#endif + void *context; +} alt_irq[ALT_NIRQ]; + +#endif diff --git a/software/qsys_tutorial_test_bsp/HAL/inc/priv/alt_legacy_irq.h b/software/qsys_tutorial_test_bsp/HAL/inc/priv/alt_legacy_irq.h new file mode 100644 index 0000000..c7aec02 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/HAL/inc/priv/alt_legacy_irq.h @@ -0,0 +1,158 @@ +#ifndef __ALT_LEGACY_IRQ_H__ +#define __ALT_LEGACY_IRQ_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2009 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/* + * This file provides prototypes and inline implementations of certain routines + * used by the legacy interrupt API. Do not include this in your driver or + * application source files, use "sys/alt_irq.h" instead to access the proper + * public API. + */ + +#include +#include "system.h" + +#ifndef NIOS2_EIC_PRESENT + +#include "nios2.h" +#include "alt_types.h" + +#include "sys/alt_irq.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * alt_irq_register() can be used to register an interrupt handler. If the + * function is succesful, then the requested interrupt will be enabled upon + * return. + */ +extern int alt_irq_register (alt_u32 id, + void* context, + alt_isr_func handler); + +/* + * alt_irq_disable() disables the individual interrupt indicated by "id". + */ +static ALT_INLINE int ALT_ALWAYS_INLINE alt_irq_disable (alt_u32 id) +{ + alt_irq_context status; + extern volatile alt_u32 alt_irq_active; + + status = alt_irq_disable_all (); + + alt_irq_active &= ~(1 << id); + NIOS2_WRITE_IENABLE (alt_irq_active); + + alt_irq_enable_all(status); + + return 0; +} + +/* + * alt_irq_enable() enables the individual interrupt indicated by "id". + */ +static ALT_INLINE int ALT_ALWAYS_INLINE alt_irq_enable (alt_u32 id) +{ + alt_irq_context status; + extern volatile alt_u32 alt_irq_active; + + status = alt_irq_disable_all (); + + alt_irq_active |= (1 << id); + NIOS2_WRITE_IENABLE (alt_irq_active); + + alt_irq_enable_all(status); + + return 0; +} + +#ifndef ALT_EXCEPTION_STACK +/* + * alt_irq_initerruptable() should only be called from within an ISR. It is used + * to allow higer priority interrupts to interrupt the current ISR. The input + * argument, "priority", is the priority, i.e. interrupt number of the current + * interrupt. + * + * If this function is called, then the ISR is required to make a call to + * alt_irq_non_interruptible() before returning. The input argument to + * alt_irq_non_interruptible() is the return value from alt_irq_interruptible(). + * + * Care should be taken when using this pair of functions, since they increasing + * the system overhead associated with interrupt handling. + * + * If you are using an exception stack then nested interrupts won't work, so + * these functions are not available in that case. + */ +static ALT_INLINE alt_u32 ALT_ALWAYS_INLINE alt_irq_interruptible (alt_u32 priority) +{ + extern volatile alt_u32 alt_priority_mask; + extern volatile alt_u32 alt_irq_active; + + alt_u32 old_priority; + + old_priority = alt_priority_mask; + alt_priority_mask = (1 << priority) - 1; + + NIOS2_WRITE_IENABLE (alt_irq_active & alt_priority_mask); + + NIOS2_WRITE_STATUS (1); + + return old_priority; +} + +/* + * See Comments above for alt_irq_interruptible() for an explanation of the use of this + * function. + */ +static ALT_INLINE void ALT_ALWAYS_INLINE alt_irq_non_interruptible (alt_u32 mask) +{ + extern volatile alt_u32 alt_priority_mask; + extern volatile alt_u32 alt_irq_active; + + NIOS2_WRITE_STATUS (0); + + alt_priority_mask = mask; + + NIOS2_WRITE_IENABLE (mask & alt_irq_active); +} +#endif /* ALT_EXCEPTION_STACK */ + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* NIOS2_EIC_PRESENT */ + +#endif /* __ALT_LEGACY_IRQ_H__ */ diff --git a/software/qsys_tutorial_test_bsp/HAL/inc/priv/alt_no_error.h b/software/qsys_tutorial_test_bsp/HAL/inc/priv/alt_no_error.h new file mode 100644 index 0000000..6143fc9 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/HAL/inc/priv/alt_no_error.h @@ -0,0 +1,77 @@ +#ifndef __ALT_NO_ERROR_H__ +#define __ALT_NO_ERROR_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#include "alt_types.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * alt_no_error() is a dummy function used by alt_sem.h and alt_flag.h. It + * substitutes for functions that have a return code by creating a function + * that always returns zero. + * + * This may seem a little obscure, but what happens is that the compiler can + * then optomise away the call to this function, and any code written which + * handles the error path (i.e. non zero return values). + * + * This allows code to be written which correctly use the uC/OS-II semaphore + * and flag utilities, without the use of those utilities impacting on + * excutables built for a single threaded HAL environment. + * + * This function is considered to be part of the internal implementation of + * the HAL, and should not be called directly by application code or device + * drivers. It is not guaranteed to be preserved in future versions of the + * HAL. + */ + +static ALT_INLINE int ALT_ALWAYS_INLINE alt_no_error (void) +{ + return 0; +} + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_NO_ERROR_H__ */ diff --git a/software/qsys_tutorial_test_bsp/HAL/inc/priv/nios2_gmon_data.h b/software/qsys_tutorial_test_bsp/HAL/inc/priv/nios2_gmon_data.h new file mode 100644 index 0000000..3f43f12 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/HAL/inc/priv/nios2_gmon_data.h @@ -0,0 +1,47 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ +#ifndef NIOS2_GMON_DATA_H +#define NIOS2_GMON_DATA_H + +#define GMON_DATA_SIG 0 +#define GMON_DATA_WORDS 1 +#define GMON_DATA_PROFILE_DATA 2 +#define GMON_DATA_PROFILE_LOWPC 3 +#define GMON_DATA_PROFILE_HIGHPC 4 +#define GMON_DATA_PROFILE_BUCKET 5 +#define GMON_DATA_PROFILE_RATE 6 +#define GMON_DATA_MCOUNT_START 7 +#define GMON_DATA_MCOUNT_LIMIT 8 + +#define GMON_DATA_SIZE 9 + +extern unsigned int alt_gmon_data[GMON_DATA_SIZE]; + +#endif diff --git a/software/qsys_tutorial_test_bsp/HAL/inc/sys/alt_alarm.h b/software/qsys_tutorial_test_bsp/HAL/inc/sys/alt_alarm.h new file mode 100644 index 0000000..68a2f5d --- /dev/null +++ b/software/qsys_tutorial_test_bsp/HAL/inc/sys/alt_alarm.h @@ -0,0 +1,126 @@ +#ifndef __ALT_ALARM_H__ +#define __ALT_ALARM_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#include "alt_llist.h" +#include "alt_types.h" + +#include "priv/alt_alarm.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * "alt_alarm" is a structure type used by applications to register an alarm + * callback function. An instance of this type must be passed as an input + * argument to alt_alarm_start(). The user is not responsible for initialising + * the contents of the instance. This is done by alt_alarm_start(). + */ + +typedef struct alt_alarm_s alt_alarm; + +/* + * alt_alarm_start() can be called by an application/driver in order to register + * a function for periodic callback at the system clock frequency. Be aware that + * this callback is likely to occur in interrupt context. + */ + +extern int alt_alarm_start (alt_alarm* the_alarm, + alt_u32 nticks, + alt_u32 (*callback) (void* context), + void* context); + +/* + * alt_alarm_stop() is used to unregister a callback. Alternatively the callback + * can return zero to unregister. + */ + +extern void alt_alarm_stop (alt_alarm* the_alarm); + +/* + * Obtain the system clock rate in ticks/s. + */ + +static ALT_INLINE alt_u32 ALT_ALWAYS_INLINE alt_ticks_per_second (void) +{ + return _alt_tick_rate; +} + +/* + * alt_sysclk_init() is intended to be only used by the system clock driver + * in order to initialise the value of the clock frequency. + */ + +static ALT_INLINE int ALT_ALWAYS_INLINE alt_sysclk_init (alt_u32 nticks) +{ + if (! _alt_tick_rate) + { + _alt_tick_rate = nticks; + return 0; + } + else + { + return -1; + } +} + +/* + * alt_nticks() returns the elapsed number of system clock ticks since reset. + */ + +static ALT_INLINE alt_u32 ALT_ALWAYS_INLINE alt_nticks (void) +{ + return _alt_nticks; +} + +/* + * alt_tick() should only be called by the system clock driver. This is used + * to notify the system that the system timer period has expired. + */ + +extern void alt_tick (void); + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_ALARM_H__ */ diff --git a/software/qsys_tutorial_test_bsp/HAL/inc/sys/alt_cache.h b/software/qsys_tutorial_test_bsp/HAL/inc/sys/alt_cache.h new file mode 100644 index 0000000..c4d8db9 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/HAL/inc/sys/alt_cache.h @@ -0,0 +1,117 @@ +#ifndef __ALT_CACHE_H__ +#define __ALT_CACHE_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003, 2007 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include + +#include "alt_types.h" + +/* + * alt_cache.h defines the processor specific functions for manipulating the + * cache. + */ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * alt_icache_flush() is called to flush the instruction cache for a memory + * region of length "len" bytes, starting at address "start". + */ + +extern void alt_icache_flush (void* start, alt_u32 len); + +/* + * alt_dcache_flush() is called to flush the data cache for a memory + * region of length "len" bytes, starting at address "start". + * Any dirty lines in the data cache are written back to memory. + */ + +extern void alt_dcache_flush (void* start, alt_u32 len); + +/* + * alt_dcache_flush() is called to flush the data cache for a memory + * region of length "len" bytes, starting at address "start". + * Any dirty lines in the data cache are NOT written back to memory. + */ + +extern void alt_dcache_flush_no_writeback (void* start, alt_u32 len); + +/* + * Flush the entire instruction cache. + */ + +extern void alt_icache_flush_all (void); + +/* + * Flush the entire data cache. + */ + +extern void alt_dcache_flush_all (void); + +/* + * Allocate a block of uncached memory. + */ + +extern volatile void* alt_uncached_malloc (size_t size); + +/* + * Free a block of uncached memory. + */ + +extern void alt_uncached_free (volatile void* ptr); + +/* + * Convert a pointer to a block of cached memory, into a block of + * uncached memory. + */ + +extern volatile void* alt_remap_uncached (void* ptr, alt_u32 len); + +/* + * Convert a pointer to a block of uncached memory, into a block of + * cached memory. + */ + +extern void* alt_remap_cached (volatile void* ptr, alt_u32 len); + +/* + * + */ + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_CACHE_H__ */ diff --git a/software/qsys_tutorial_test_bsp/HAL/inc/sys/alt_debug.h b/software/qsys_tutorial_test_bsp/HAL/inc/sys/alt_debug.h new file mode 100644 index 0000000..d9f9599 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/HAL/inc/sys/alt_debug.h @@ -0,0 +1,45 @@ +#ifndef __ALT_DEBUG_H__ +#define __ALT_DEBUG_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/* + * The ALT_DEVUG_ASSERT macro can be used to generate a debugger break + * from within software. The break is generated if "condition" evaluates to + * false. + */ + +#define ALT_DEBUG_ASSERT(condition) if (!condition) \ +{ \ + __asm__ volatile ("break"); \ +} + +#endif /* __ALT_DEBUG_H__ */ diff --git a/software/qsys_tutorial_test_bsp/HAL/inc/sys/alt_dev.h b/software/qsys_tutorial_test_bsp/HAL/inc/sys/alt_dev.h new file mode 100644 index 0000000..66c5e41 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/HAL/inc/sys/alt_dev.h @@ -0,0 +1,115 @@ +#ifndef __ALT_DEV_H__ +#define __ALT_DEV_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#include "system.h" +#include "sys/alt_llist.h" +#include "priv/alt_dev_llist.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * The value ALT_IRQ_NOT_CONNECTED is used to represent an unconnected + * interrupt line. It cannot evaluate to a valid interrupt number. + */ + +#define ALT_IRQ_NOT_CONNECTED (-1) + +typedef struct alt_dev_s alt_dev; + +struct stat; + +/* + * The file descriptor structure definition. + */ + +typedef struct alt_fd_s +{ + alt_dev* dev; + alt_u8* priv; + int fd_flags; +} alt_fd; + +/* + * The device structure definition. + */ + +struct alt_dev_s { + alt_llist llist; /* for internal use */ + const char* name; + int (*open) (alt_fd* fd, const char* name, int flags, int mode); + int (*close) (alt_fd* fd); + int (*read) (alt_fd* fd, char* ptr, int len); + int (*write) (alt_fd* fd, const char* ptr, int len); + int (*lseek) (alt_fd* fd, int ptr, int dir); + int (*fstat) (alt_fd* fd, struct stat* buf); + int (*ioctl) (alt_fd* fd, int req, void* arg); +}; + +/* + * Functions used to register device for access through the C standard + * library. + * + * The only difference between alt_dev_reg() and alt_fs_reg() is the + * interpretation that open() places on the device name. In the case of + * alt_dev_reg the device is assumed to be a particular character device, + * and so there must be an exact match in the name for open to succeed. + * In the case of alt_fs_reg() the name of the device is treated as the + * mount point for a directory, and so any call to open() where the name + * is the root of the device filename will succeed. + */ + +extern int alt_fs_reg (alt_dev* dev); + +static ALT_INLINE int alt_dev_reg (alt_dev* dev) +{ + extern alt_llist alt_dev_list; + + return alt_dev_llist_insert ((alt_dev_llist*) dev, &alt_dev_list); +} + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_DEV_H__ */ diff --git a/software/qsys_tutorial_test_bsp/HAL/inc/sys/alt_dma.h b/software/qsys_tutorial_test_bsp/HAL/inc/sys/alt_dma.h new file mode 100644 index 0000000..9f9b2ff --- /dev/null +++ b/software/qsys_tutorial_test_bsp/HAL/inc/sys/alt_dma.h @@ -0,0 +1,226 @@ +#ifndef __ALT_DMA_H__ +#define __ALT_DMA_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004-2005 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#include "sys/alt_dma_dev.h" +#include "alt_types.h" + +#include + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * This header contains the application side interface for accessing DMA + * resources. See alt_dma_dev.h for the dma device driver interface. + * + * The interface model treats a DMA transaction as being composed of two + * halves (read and write). + * + * The application can supply data for transmit using an "alt_dma_txchan" + * descriptor. Alternatively an "alt_dma_rxchan" descriptor can be used to + * receive data. + */ + +/* + * alt_dma_txchan_open() is used to obtain an "alt_dma_txchan" descriptor for + * a DMA transmit device. The name is the name of the associated physical + * device (e.g. "/dev/dma_0"). + * + * The return value will be NULL on failure, and non-NULL otherwise. + */ + +extern alt_dma_txchan alt_dma_txchan_open (const char* name); + +/* + * alt_dma_txchan_close() is provided so that an application can notify the + * system that it has finished with a given DMA transmit channel. This is only + * provided for completness. + */ + +static ALT_INLINE int alt_dma_txchan_close (alt_dma_txchan dma) +{ + return 0; +} + +/* + * alt_dma_txchan_send() posts a transmit request to a DMA transmit channel. + * The input arguments are: + * + * dma: the channel to use. + * from: a pointer to the start of the data to send. + * length: the length of the data to send in bytes. + * done: callback function that will be called once the data has been sent. + * handle: opaque value passed to "done". + * + * The return value will be negative if the request cannot be posted, and + * zero otherwise. + */ + +static ALT_INLINE int alt_dma_txchan_send (alt_dma_txchan dma, + const void* from, + alt_u32 length, + alt_txchan_done* done, + void* handle) +{ + return dma ? dma->dma_send (dma, + from, + length, + done, + handle) : -ENODEV; +} + +/* + * alt_dma_txchan_space() returns the number of tranmit requests that can be + * posted to the specified DMA transmit channel. + * + * A negative value indicates that the value could not be determined. + */ + +static ALT_INLINE int alt_dma_txchan_space (alt_dma_txchan dma) +{ + return dma ? dma->space (dma) : -ENODEV; +} + +/* + * alt_dma_txchan_ioctl() can be used to perform device specific I/O + * operations on the indicated DMA transmit channel. For example some drivers + * support options to control the width of the transfer operations. See + * alt_dma_dev.h for the list of generic requests. + * + * A negative return value indicates failure, otherwise the interpretation + * of the return value is request specific. + */ + +static ALT_INLINE int alt_dma_txchan_ioctl (alt_dma_txchan dma, + int req, + void* arg) +{ + return dma ? dma->ioctl (dma, req, arg) : -ENODEV; +} + +/* + * alt_dma_rxchan_open() is used to obtain an "alt_dma_rxchan" descriptor for + * a DMA receive channel. The name is the name of the associated physical + * device (e.g. "/dev/dma_0"). + * + * The return value will be NULL on failure, and non-NULL otherwise. + */ + +extern alt_dma_rxchan alt_dma_rxchan_open (const char* dev); + +/* + * alt_dma_rxchan_close() is provided so that an application can notify the + * system that it has finished with a given DMA receive channel. This is only + * provided for completness. + */ + +static ALT_INLINE int alt_dma_rxchan_close (alt_dma_rxchan dma) +{ + return 0; +} + +/* + * + */ + +/* + * alt_dma_rxchan_prepare() posts a receive request to a DMA receive channel. + * + * The input arguments are: + * + * dma: the channel to use. + * data: a pointer to the location that data is to be received to. + * len: the maximum length of the data to receive. + * done: callback function that will be called once the data has been + * received. + * handle: opaque value passed to "done". + * + * The return value will be negative if the request cannot be posted, and + * zero otherwise. + */ + +static ALT_INLINE int alt_dma_rxchan_prepare (alt_dma_rxchan dma, + void* data, + alt_u32 len, + alt_rxchan_done* done, + void* handle) +{ + return dma ? dma->prepare (dma, data, len, done, handle) : -ENODEV; +} + +/* + * alt_dma_rxchan_ioctl() can be used to perform device specific I/O + * operations on the indicated DMA receive channel. For example some drivers + * support options to control the width of the transfer operations. See + * alt_dma_dev.h for the list of generic requests. + * + * A negative return value indicates failure, otherwise the interpretation + * of the return value is request specific. + */ + +static ALT_INLINE int alt_dma_rxchan_ioctl (alt_dma_rxchan dma, + int req, + void* arg) +{ + return dma ? dma->ioctl (dma, req, arg) : -ENODEV; +} + +/* + * alt_dma_rxchan_depth() returns the depth of the receive FIFO used to store + * receive requests. + */ + +static ALT_INLINE alt_u32 alt_dma_rxchan_depth(alt_dma_rxchan dma) +{ + return dma->depth; +} + +/* + * + */ + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __ALT_DMA_H__ */ diff --git a/software/qsys_tutorial_test_bsp/HAL/inc/sys/alt_dma_dev.h b/software/qsys_tutorial_test_bsp/HAL/inc/sys/alt_dma_dev.h new file mode 100644 index 0000000..832463d --- /dev/null +++ b/software/qsys_tutorial_test_bsp/HAL/inc/sys/alt_dma_dev.h @@ -0,0 +1,200 @@ +#ifndef __ALT_DMA_DEV_H__ +#define __ALT_DMA_DEV_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004-2005 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#include "priv/alt_dev_llist.h" + +#include "alt_types.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * This header contains the device driver interface for accessing DMA + * resources. See alt_dma.h for the DMA application side interface. + * + * The interface model treats a DMA transaction as being composed of two + * halves (read and write). + * + * An "alt_dma_txchan_dev" is used to describe the device associated with a + * DMA transmit channel. An "alt_dma_rxchan_dev" is used to describe the + * device associated with a DMA receive channel. + */ + +/* + * List of generic ioctl requests that may be supported by a DMA device. + * + * ALT_DMA_RX_ONLY_ON: This causes a DMA channel to operate in a mode + * where only the receiver is under software control. + * The other side reads continously from a single + * location. The address to read is the argument to + * this request. + * ALT_DMA_RX_ONLY_OFF: Return to the default mode where both the receive + * and transmit sides of the DMA can be under software + * control. + * ALT_DMA_TX_ONLY_ON: This causes a DMA channel to operate in a mode + * where only the transmitter is under software control. + * The other side writes continously to a single + * location. The address to write to is the argument to + * this request. + * ALT_DMA_TX_ONLY_OFF: Return to the default mode where both the receive + * and transmit sides of the DMA can be under software + * control. + * ALT_DMA_SET_MODE_8: Transfer data in units of 8 bits. + * ALT_DMA_SET_MODE_16: Transfer data in units of 16 bits. + * ALT_DMA_SET_MODE_32: Transfer data in units of 32 bits. + * ALT_DMA_SET_MODE_64: Transfer data in units of 64 bits. + * ALT_DMA_SET_MODE_128: Transfer data in units of 128 bits. + * ALT_DMA_GET_MODE: Get the current transfer mode. + * + * The use of the macros: ALT_DMA_TX_STREAM_ON, ALT_DMA_TX_STREAM_OFF + * ALT_DMA_RX_STREAM_OFF and ALT_DMA_RX_STREAM_ON are depreciated. You should + * instead use the macros: ALT_DMA_RX_ONLY_ON, ALT_DMA_RX_ONLY_OFF, + * ALT_DMA_TX_ONLY_ON and ALT_DMA_TX_ONLY_OFF. + */ + +#define ALT_DMA_TX_STREAM_ON (0x1) +#define ALT_DMA_TX_STREAM_OFF (0x2) +#define ALT_DMA_RX_STREAM_ON (0x3) +#define ALT_DMA_RX_STREAM_OFF (0x4) +#define ALT_DMA_SET_MODE_8 (0x5) +#define ALT_DMA_SET_MODE_16 (0x6) +#define ALT_DMA_SET_MODE_32 (0x7) +#define ALT_DMA_SET_MODE_64 (0x8) +#define ALT_DMA_SET_MODE_128 (0x9) +#define ALT_DMA_GET_MODE (0xa) + +#define ALT_DMA_RX_ONLY_ON ALT_DMA_TX_STREAM_ON +#define ALT_DMA_RX_ONLY_OFF ALT_DMA_TX_STREAM_OFF +#define ALT_DMA_TX_ONLY_ON ALT_DMA_RX_STREAM_ON +#define ALT_DMA_TX_ONLY_OFF ALT_DMA_RX_STREAM_OFF + +/* + * + */ + +typedef struct alt_dma_txchan_dev_s alt_dma_txchan_dev; +typedef struct alt_dma_rxchan_dev_s alt_dma_rxchan_dev; + +typedef alt_dma_txchan_dev* alt_dma_txchan; +typedef alt_dma_rxchan_dev* alt_dma_rxchan; + +typedef void (alt_txchan_done)(void* handle); +typedef void (alt_rxchan_done)(void* handle, void* data); + +/* + * devices that provide a DMA transmit channel are required to provide an + * instance of the "alt_dma_txchan_dev" structure. + */ + +struct alt_dma_txchan_dev_s { + alt_llist llist; /* for internal use */ + const char* name; /* name of the device instance + * (e.g. "/dev/dma_0"). + */ + int (*space) (alt_dma_txchan dma); /* returns the maximum number of + * transmit requests that can be posted + */ + int (*dma_send) (alt_dma_txchan dma, + const void* from, + alt_u32 len, + alt_txchan_done* done, + void* handle); /* post a transmit request */ + int (*ioctl) (alt_dma_txchan dma, int req, void* arg); /* perform device + * specific I/O control. + */ +}; + +/* + * devices that provide a DMA receive channel are required to provide an + * instance of the "alt_dma_rxchan_dev" structure. + */ + +struct alt_dma_rxchan_dev_s { + alt_llist list; /* for internal use */ + const char* name; /* name of the device instance + * (e.g. "/dev/dma_0"). + */ + alt_u32 depth; /* maximum number of receive requests that + * can be posted. + */ + int (*prepare) (alt_dma_rxchan dma, + void* data, + alt_u32 len, + alt_rxchan_done* done, + void* handle); /* post a receive request */ + int (*ioctl) (alt_dma_rxchan dma, int req, void* arg); /* perform device + * specific I/O control. + */ +}; + +/* + * Register a DMA transmit channel with the system. + */ + +static ALT_INLINE int alt_dma_txchan_reg (alt_dma_txchan_dev* dev) +{ + extern alt_llist alt_dma_txchan_list; + + return alt_dev_llist_insert((alt_dev_llist*) dev, &alt_dma_txchan_list); +} + +/* + * Register a DMA receive channel with the system. + */ + +static ALT_INLINE int alt_dma_rxchan_reg (alt_dma_rxchan_dev* dev) +{ + extern alt_llist alt_dma_rxchan_list; + + return alt_dev_llist_insert((alt_dev_llist*) dev, &alt_dma_rxchan_list); +} + +/* + * + */ + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __ALT_DMA_DEV_H__ */ diff --git a/software/qsys_tutorial_test_bsp/HAL/inc/sys/alt_driver.h b/software/qsys_tutorial_test_bsp/HAL/inc/sys/alt_driver.h new file mode 100644 index 0000000..eb0f23b --- /dev/null +++ b/software/qsys_tutorial_test_bsp/HAL/inc/sys/alt_driver.h @@ -0,0 +1,168 @@ +#ifndef __ALT_DRIVER_H__ +#define __ALT_DRIVER_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/* + * Macros used to access a driver without HAL file descriptors. + */ + +/* + * ALT_MODULE_CLASS + * + * This macro returns the module class name for the specified module instance. + * It uses information in the system.h file. + * Neither the instance name or class name are quoted (so that they can + * be used with other pre-processor macros). + * + * Example: + * Assume the design has an instance of an altera_avalon_uart called uart1. + * Calling ALT_MODULE_CLASS(uart1) returns altera_avalon_uart. + */ + +#define ALT_MODULE_CLASS(instance) ALT_MODULE_CLASS_ ## instance + + +/* + * ALT_DRIVER_FUNC_NAME + * + * --> instance Instance name. + * --> func Function name. + * + * This macro returns the device driver function name of the specified + * module instance for the specified function name. + * + * Example: + * Assume the design has an instance of an altera_avalon_uart called uart1. + * Calling ALT_DRIVER_FUNC_NAME(uart1, write) returns + * altera_avalon_uart_write. + */ + +#define ALT_DRIVER_FUNC_NAME(instance, func) \ + ALT_DRIVER_FUNC_NAME1(ALT_MODULE_CLASS(instance), func) +#define ALT_DRIVER_FUNC_NAME1(module_class, func) \ + ALT_DRIVER_FUNC_NAME2(module_class, func) +#define ALT_DRIVER_FUNC_NAME2(module_class, func) \ + module_class ## _ ## func + +/* + * ALT_DRIVER_STATE_STRUCT + * + * --> instance Instance name. + * + * This macro returns the device driver state type name of the specified + * module instance. + * + * Example: + * Assume the design has an instance of an altera_avalon_uart called uart1. + * Calling ALT_DRIVER_STATE_STRUCT(uart1) returns: + * struct altera_avalon_uart_state_s + * + * Note that the ALT_DRIVER_FUNC_NAME macro is used even though "state" isn't + * really a function but it does match the required naming convention. + */ +#define ALT_DRIVER_STATE_STRUCT(instance) \ + struct ALT_DRIVER_FUNC_NAME(instance, state_s) + +/* + * ALT_DRIVER_STATE + * + * --> instance Instance name. + * + * This macro returns the device driver state name of the specified + * module instance. + * + * Example: + * Assume the design has an instance of an altera_avalon_uart called uart1. + * Calling ALT_DRIVER_STATE(uart1) returns uart1. + */ +#define ALT_DRIVER_STATE(instance) instance + +/* + * ALT_DRIVER_WRITE + * + * --> instance Instance name. + * --> buffer Write buffer. + * --> len Length of write buffer data. + * --> flags Control flags (e.g. O_NONBLOCK) + * + * This macro calls the "write" function of the specified driver instance. + */ + +#define ALT_DRIVER_WRITE_EXTERNS(instance) \ + extern ALT_DRIVER_STATE_STRUCT(instance) ALT_DRIVER_STATE(instance); \ + extern int ALT_DRIVER_FUNC_NAME(instance, write) \ + (ALT_DRIVER_STATE_STRUCT(instance) *, const char *, int, int); + +#define ALT_DRIVER_WRITE(instance, buffer, len, flags) \ + ALT_DRIVER_FUNC_NAME(instance, write)(&ALT_DRIVER_STATE(instance), buffer, len, flags) + + +/* + * ALT_DRIVER_READ + * + * --> instance Instance name. + * <-- buffer Read buffer. + * --> len Length of read buffer. + * --> flags Control flags (e.g. O_NONBLOCK) + * + * This macro calls the "read" function of the specified driver instance. + */ + +#define ALT_DRIVER_READ_EXTERNS(instance) \ + extern ALT_DRIVER_STATE_STRUCT(instance) ALT_DRIVER_STATE(instance); \ + extern int ALT_DRIVER_FUNC_NAME(instance, read) \ + (ALT_DRIVER_STATE_STRUCT(instance) *, const char *, int, int); + +#define ALT_DRIVER_READ(instance, buffer, len, flags) \ + ALT_DRIVER_FUNC_NAME(instance, read)(&ALT_DRIVER_STATE(instance), buffer, len, flags) + +/* + * ALT_DRIVER_IOCTL + * + * --> instance Instance name. + * --> req ioctl request (e.g. TIOCSTIMEOUT) + * --> arg Optional argument (void*) + * + * This macro calls the "ioctl" function of the specified driver instance + */ + +#define ALT_DRIVER_IOCTL_EXTERNS(instance) \ + extern ALT_DRIVER_STATE_STRUCT(instance) ALT_DRIVER_STATE(instance); \ + extern int ALT_DRIVER_FUNC_NAME(instance, ioctl) \ + (ALT_DRIVER_STATE_STRUCT(instance) *, int, void*); + +#define ALT_DRIVER_IOCTL(instance, req, arg) \ + ALT_DRIVER_FUNC_NAME(instance, ioctl)(&ALT_DRIVER_STATE(instance), req, arg) + +#endif /* __ALT_DRIVER_H__ */ diff --git a/software/qsys_tutorial_test_bsp/HAL/inc/sys/alt_errno.h b/software/qsys_tutorial_test_bsp/HAL/inc/sys/alt_errno.h new file mode 100644 index 0000000..4d3e50f --- /dev/null +++ b/software/qsys_tutorial_test_bsp/HAL/inc/sys/alt_errno.h @@ -0,0 +1,87 @@ +#ifndef __ALT_ERRNO_H__ +#define __ALT_ERRNO_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +/* + * errno is defined in so that it uses the thread local version + * stored in the location pointed to by "_impure_ptr". This means that the + * accesses to errno within the HAL library can cause the entirety of + * of the structure pointed to by "_impure_ptr" to be added to the + * users application. This can be undesirable in very small footprint systems. + * + * To avoid this happening, the HAL uses the macro ALT_ERRNO, defined below, + * to access errno, rather than accessing it directly. This macro will only + * use the thread local version if some other code has already caused it to be + * included into the system, otherwise it will use the global errno value. + * + * This causes a slight increases in code size where errno is accessed, but + * can lead to significant overall benefits in very small systems. The + * increase is inconsequential when compared to the size of the structure + * pointed to by _impure_ptr. + * + * Note that this macro accesses __errno() using an externally declared + * function pointer (alt_errno). This is done so that the function call uses the + * subroutine call instruction via a register rather than an immediate address. + * This is important in the case that the code has been linked for a high + * address, but __errno() is not being used. In this case the weak linkage + * would have resulted in the instruction: "call 0" which would fail to link. + */ + +extern int* (*alt_errno) (void); + +/* Must define this so that values such as EBADFD are defined in errno.h. */ +#define __LINUX_ERRNO_EXTENSIONS__ + +#include + +#include "alt_types.h" + +#undef errno + +extern int errno; + +static ALT_INLINE int* alt_get_errno(void) +{ + return ((alt_errno) ? alt_errno() : &errno); +} + +#define ALT_ERRNO *alt_get_errno() + +#endif /* __ALT_ERRNO_H__ */ diff --git a/software/qsys_tutorial_test_bsp/HAL/inc/sys/alt_exceptions.h b/software/qsys_tutorial_test_bsp/HAL/inc/sys/alt_exceptions.h new file mode 100644 index 0000000..3576a52 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/HAL/inc/sys/alt_exceptions.h @@ -0,0 +1,127 @@ +#ifndef __ALT_EXCEPTIONS_H__ +#define __ALT_EXCEPTIONS_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2008 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ +#include "alt_types.h" +#include "system.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * This file defines instruction-generated exception handling and registry + * API, exception type enumeration, and handler return value enumeration for + * Nios II. + */ + +/* + * The following enumeration describes the value in the CPU EXCEPTION + * register CAUSE bit field. Not all exception types will cause the + * processor to go to the exception vector; these are provided for + * reference. + */ +enum alt_exception_cause_e { + /* Exeption causes that will cause jump to exception vector */ + NIOS2_EXCEPTION_INTERRUPT = 2, + NIOS2_EXCEPTION_TRAP_INST = 3, + NIOS2_EXCEPTION_UNIMPLEMENTED_INST = 4, + NIOS2_EXCEPTION_ILLEGAL_INST = 5, + NIOS2_EXCEPTION_MISALIGNED_DATA_ADDR = 6, + NIOS2_EXCEPTION_MISALIGNED_TARGET_PC = 7, + NIOS2_EXCEPTION_DIVISION_ERROR = 8, + NIOS2_EXCEPTION_SUPERVISOR_ONLY_INST_ADDR = 9, + NIOS2_EXCEPTION_SUPERVISOR_ONLY_INST = 10, + NIOS2_EXCEPTION_SUPERVISOR_ONLY_DATA_ADDR = 11, + NIOS2_EXCEPTION_TLB_MISS = 12, + NIOS2_EXCEPTION_TLB_EXECUTE_PERM_VIOLATION = 13, + NIOS2_EXCEPTION_MPU_INST_REGION_VIOLATION = 16, + + /* Exception causes that will NOT cause a jump to exception vector */ + NIOS2_EXCEPTION_RESET = 0, + NIOS2_EXCEPTION_CPU_ONLY_RESET_REQUEST = 1, + NIOS2_EXCEPTION_TLB_READ_PERM_VIOLATION = 14, + NIOS2_EXCEPTION_TLB_WRITE_PERM_VIOLATION = 15, + NIOS2_EXCEPTION_MPU_DATA_REGION_VIOLATION = 17, + /* + * This value is passed to an exception handler's cause argument if + * "extra exceptions" information (EXECPTION) register is not + * present in the processor hardware configuration. + */ + NIOS2_EXCEPTION_CAUSE_NOT_PRESENT = -1 +}; +typedef enum alt_exception_cause_e alt_exception_cause; + +/* + * These define valid return values for a user-defined instruction-generated + * exception handler. The handler should return one of these to indicate + * whether to re-issue the instruction that triggered the exception, or to + * skip it. + */ +enum alt_exception_result_e { + NIOS2_EXCEPTION_RETURN_REISSUE_INST = 0, + NIOS2_EXCEPTION_RETURN_SKIP_INST = 1 +}; +typedef enum alt_exception_result_e alt_exception_result; + +/* + * alt_instruction_exception_register() can be used to register an exception + * handler for instruction-generated exceptions that are not handled by the + * built-in exception handler (i.e. for interrupts). + * + * The registry API is optionally enabled through the "Enable + * Instruction-related Exception API" HAL BSP setting, which will + * define the macro below. + */ +#ifdef ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API +void alt_instruction_exception_register ( + alt_exception_result (*exception_handler)( + alt_exception_cause cause, + alt_u32 exception_pc, + alt_u32 bad_addr) ); +#endif /*ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API */ + +/* + * alt_exception_cause_generated_bad_addr() indicates whether a particular + * exception cause value was from an exception-type that generated a valid + * address in the BADADDR register. The contents of BADADDR is passed to + * a user-registered exception handler in all cases, whether valid or not. + * This routine should be called to validate the bad_addr argument to + * your exception handler. + */ +int alt_exception_cause_generated_bad_addr(alt_exception_cause cause); + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __ALT_EXCEPTIONS_H__ */ diff --git a/software/qsys_tutorial_test_bsp/HAL/inc/sys/alt_flash.h b/software/qsys_tutorial_test_bsp/HAL/inc/sys/alt_flash.h new file mode 100644 index 0000000..527328d --- /dev/null +++ b/software/qsys_tutorial_test_bsp/HAL/inc/sys/alt_flash.h @@ -0,0 +1,166 @@ +#ifndef __ALT_FLASH_H__ +#define __ALT_FLASH_H__ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +/****************************************************************************** +* * +* Alt_flash.h - User interface for flash code * +* * +* Use this interface to avoid being exposed to the internals of the device * +* driver architecture. If you chose to use the flash driver internal * +* structures we don't guarantee not to change them * +* * +* Author PRR * +* * +******************************************************************************/ + + + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +#include "alt_types.h" +#include "alt_flash_types.h" +#include "alt_flash_dev.h" +#include "sys/alt_cache.h" + +alt_flash_fd* alt_flash_open_dev(const char* name); +void alt_flash_close_dev(alt_flash_fd* fd ); + +/* + * alt_write_flash + * + * Program a buffer into flash. + * + * This routine erases all the affected erase blocks (if necessary) + * and then programs the data. However it does not read the data out first + * and preserve and none overwritten data, because this would require very + * large buffers on the target. If you need + * that functionality use the functions below. + */ +static __inline__ int __attribute__ ((always_inline)) alt_write_flash( + alt_flash_fd* fd, + int offset, + const void* src_addr, + int length ) +{ + return fd->write( fd, offset, src_addr, length ); +} + +/* + * alt_read_flash + * + * Read a block of flash for most flashes this is just memcpy + * it's here for completeness in case we need it for some serial flash device + * + */ +static __inline__ int __attribute__ ((always_inline)) alt_read_flash( + alt_flash_fd* fd, int offset, + void* dest_addr, int length ) +{ + return fd->read( fd, offset, dest_addr, length ); +} + +/* + * alt_get_flash_info + * + * Return the information on the flash sectors. + * + */ +static __inline__ int __attribute__ ((always_inline)) alt_get_flash_info( + alt_flash_fd* fd, flash_region** info, + int* number_of_regions) +{ + return fd->get_info( fd, info, number_of_regions); +} + +/* + * alt_erase_flash_block + * + * Erase a particular erase block, pass in the offset to the start of + * the block and it's size + */ +static __inline__ int __attribute__ ((always_inline)) alt_erase_flash_block( + alt_flash_fd* fd, int offset, int length) +{ + int ret_code; + ret_code = fd->erase_block( fd, offset ); + + if(!ret_code) + alt_dcache_flush((alt_u8*)fd->base_addr + offset, length); + + return ret_code; +} + +/* + * alt_write_flash_block + * + * Write a particular flash block, block_offset is the offset + * (from the base of flash) to start of the block + * data_offset is the offset (from the base of flash) + * where you wish to start programming + * + * NB this function DOES NOT check that you are only writing a single + * block of data as that would slow down this function. + * + * Use alt_write_flash if you want that level of error checking. + */ + +static __inline__ int __attribute__ ((always_inline)) alt_write_flash_block( + alt_flash_fd* fd, int block_offset, + int data_offset, + const void *data, int length) +{ + + int ret_code; + ret_code = fd->write_block( fd, block_offset, data_offset, data, length ); + + if(!ret_code) + alt_dcache_flush((alt_u8*)fd->base_addr + data_offset, length); + + return ret_code; +} + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_FLASH_H__ */ diff --git a/software/qsys_tutorial_test_bsp/HAL/inc/sys/alt_flash_dev.h b/software/qsys_tutorial_test_bsp/HAL/inc/sys/alt_flash_dev.h new file mode 100644 index 0000000..8bab601 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/HAL/inc/sys/alt_flash_dev.h @@ -0,0 +1,98 @@ +#ifndef __ALT_FLASH_DEV_H__ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +/****************************************************************************** +* * +* Alt_flash_dev.h - Generic Flash device interfaces * +* * +* Author PRR * +* * +******************************************************************************/ +#define __ALT_FLASH_DEV_H__ + +#include "alt_flash_types.h" +#include "sys/alt_llist.h" +#include "priv/alt_dev_llist.h" + +#include "alt_types.h" + +typedef struct alt_flash_dev alt_flash_dev; +typedef alt_flash_dev alt_flash_fd; + +static ALT_INLINE int alt_flash_device_register( alt_flash_fd* fd) +{ + extern alt_llist alt_flash_dev_list; + + return alt_dev_llist_insert ((alt_dev_llist*) fd, &alt_flash_dev_list); +} + +typedef alt_flash_dev* (*alt_flash_open)(alt_flash_dev* flash, + const char* name ); +typedef int (*alt_flash_close)(alt_flash_dev* flash_info); + +typedef int (*alt_flash_write)( alt_flash_dev* flash, int offset, + const void* src_addr, int length ); + +typedef int (*alt_flash_get_flash_info)( alt_flash_dev* flash, flash_region** info, + int* number_of_regions); +typedef int (*alt_flash_write_block)( alt_flash_dev* flash, int block_offset, + int data_offset, const void* data, + int length); +typedef int (*alt_flash_erase_block)( alt_flash_dev* flash, int offset); +typedef int (*alt_flash_read)(alt_flash_dev* flash, int offset, + void* dest_addr, int length ); + +struct alt_flash_dev +{ + alt_llist llist; + const char* name; + alt_flash_open open; + alt_flash_close close; + alt_flash_write write; + alt_flash_read read; + alt_flash_get_flash_info get_info; + alt_flash_erase_block erase_block; + alt_flash_write_block write_block; + void* base_addr; + int length; + int number_of_regions; + flash_region region_info[ALT_MAX_NUMBER_OF_FLASH_REGIONS]; +}; + +#endif /* __ALT_FLASH_DEV_H__ */ diff --git a/software/qsys_tutorial_test_bsp/HAL/inc/sys/alt_flash_types.h b/software/qsys_tutorial_test_bsp/HAL/inc/sys/alt_flash_types.h new file mode 100644 index 0000000..884cbf8 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/HAL/inc/sys/alt_flash_types.h @@ -0,0 +1,64 @@ +#ifndef __ALT_FLASH_TYPES_H__ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +/****************************************************************************** +* * +* Alt_flash_types.h - Some generic types and defines used by the flash code * +* * +* Author PRR * +* * +******************************************************************************/ +#define __ALT_FLASH_TYPES_H__ + +#ifndef ALT_MAX_NUMBER_OF_FLASH_REGIONS +#define ALT_MAX_NUMBER_OF_FLASH_REGIONS 8 +#endif /* ALT_MAX_NUMBER_OF_FLASH_REGIONS */ + +/* + * Description of a single Erase region + */ +typedef struct flash_region +{ + int offset; + int region_size; + int number_of_blocks; + int block_size; +}flash_region; + +#endif /* __ALT_FLASH_TYPES_H__ */ diff --git a/software/qsys_tutorial_test_bsp/HAL/inc/sys/alt_irq.h b/software/qsys_tutorial_test_bsp/HAL/inc/sys/alt_irq.h new file mode 100644 index 0000000..6666e52 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/HAL/inc/sys/alt_irq.h @@ -0,0 +1,245 @@ +#ifndef __ALT_IRQ_H__ +#define __ALT_IRQ_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2009 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/* + * alt_irq.h is the Nios II specific implementation of the interrupt controller + * interface. + * + * Nios II includes optional support for an external interrupt controller. + * When an external controller is present, the "Enhanced" interrupt API + * must be used to manage individual interrupts. The enhanced API also + * supports the processor's internal interrupt controller. Certain API + * members are accessible from either the "legacy" or "enhanced" interrpt + * API. + * + * Regardless of which API is in use, this file should be included by + * application code and device drivers that register ISRs or manage interrpts. + */ +#include + +#include "nios2.h" +#include "alt_types.h" +#include "system.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * Macros used by alt_irq_enabled + */ +#define ALT_IRQ_ENABLED 1 +#define ALT_IRQ_DISABLED 0 + +/* + * Number of available interrupts in internal interrupt controller. + */ +#define ALT_NIRQ NIOS2_NIRQ + +/* + * Used by alt_irq_disable_all() and alt_irq_enable_all(). + */ +typedef int alt_irq_context; + +/* ISR Prototype */ +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT +typedef void (*alt_isr_func)(void* isr_context); +#else +typedef void (*alt_isr_func)(void* isr_context, alt_u32 id); +#endif + +/* + * The following protypes and routines are supported by both + * the enhanced and legacy interrupt APIs + */ + +/* + * alt_irq_enabled can be called to determine if the processor's global + * interrupt enable is asserted. The return value is zero if interrupts + * are disabled, and non-zero otherwise. + * + * Whether the internal or external interrupt controller is present, + * individual interrupts may still be disabled. Use the other API to query + * a specific interrupt. + */ +static ALT_INLINE int ALT_ALWAYS_INLINE alt_irq_enabled (void) +{ + int status; + + NIOS2_READ_STATUS (status); + + return status & NIOS2_STATUS_PIE_MSK; +} + +/* + * alt_irq_disable_all() + * + * This routine inhibits all interrupts by negating the status register PIE + * bit. It returns the previous contents of the CPU status register (IRQ + * context) which can be used to restore the status register PIE bit to its + * state before this routine was called. + */ +static ALT_INLINE alt_irq_context ALT_ALWAYS_INLINE + alt_irq_disable_all (void) +{ + alt_irq_context context; + + NIOS2_READ_STATUS (context); + + NIOS2_WRITE_STATUS (context & ~NIOS2_STATUS_PIE_MSK); + + return context; +} + +/* + * alt_irq_enable_all() + * + * Enable all interrupts that were previously disabled by alt_irq_disable_all() + * + * This routine accepts a context to restore the CPU status register PIE bit + * to the state prior to a call to alt_irq_disable_all(). + + * In the case of nested calls to alt_irq_disable_all()/alt_irq_enable_all(), + * this means that alt_irq_enable_all() does not necessarily re-enable + * interrupts. + * + * This routine will perform a read-modify-write sequence to restore only + * status.PIE if the processor is configured with options that add additional + * writeable status register bits. These include the MMU, MPU, the enhanced + * interrupt controller port, and shadow registers. Otherwise, as a performance + * enhancement, status is overwritten with the prior context. + */ +static ALT_INLINE void ALT_ALWAYS_INLINE + alt_irq_enable_all (alt_irq_context context) +{ +#if (NIOS2_NUM_OF_SHADOW_REG_SETS > 0) || (defined NIOS2_EIC_PRESENT) || \ + (defined NIOS2_MMU_PRESENT) || (defined NIOS2_MPU_PRESENT) + alt_irq_context status; + + NIOS2_READ_STATUS (status); + + status &= ~NIOS2_STATUS_PIE_MSK; + status |= (context & NIOS2_STATUS_PIE_MSK); + + NIOS2_WRITE_STATUS (status); +#else + NIOS2_WRITE_STATUS (context); +#endif +} + +/* + * The function alt_irq_init() is defined within the auto-generated file + * alt_sys_init.c. This function calls the initilization macros for all + * interrupt controllers in the system at config time, before any other + * non-interrupt controller driver is initialized. + * + * The "base" parameter is ignored and only present for backwards-compatibility. + * It is recommended that NULL is passed in for the "base" parameter. + */ +extern void alt_irq_init (const void* base); + +/* + * alt_irq_cpu_enable_interrupts() enables the CPU to start taking interrupts. + */ +static ALT_INLINE void ALT_ALWAYS_INLINE + alt_irq_cpu_enable_interrupts () +{ + NIOS2_WRITE_STATUS(NIOS2_STATUS_PIE_MSK +#if defined(NIOS2_EIC_PRESENT) && (NIOS2_NUM_OF_SHADOW_REG_SETS > 0) + | NIOS2_STATUS_RSIE_MSK +#endif + ); +} + + +/* + * Prototypes for the enhanced interrupt API. + */ +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT +/* + * alt_ic_isr_register() can be used to register an interrupt handler. If the + * function is succesful, then the requested interrupt will be enabled upon + * return. + */ +extern int alt_ic_isr_register(alt_u32 ic_id, + alt_u32 irq, + alt_isr_func isr, + void *isr_context, + void *flags); + +/* + * alt_ic_irq_enable() and alt_ic_irq_disable() enable/disable a specific + * interrupt by using IRQ port and interrupt controller instance. + */ +int alt_ic_irq_enable (alt_u32 ic_id, alt_u32 irq); +int alt_ic_irq_disable(alt_u32 ic_id, alt_u32 irq); + + /* + * alt_ic_irq_enabled() indicates whether a specific interrupt, as + * specified by IRQ port and interrupt controller instance is enabled. + */ +alt_u32 alt_ic_irq_enabled(alt_u32 ic_id, alt_u32 irq); + +#else +/* + * Prototypes for the legacy interrupt API. + */ +#include "priv/alt_legacy_irq.h" +#endif + + +/* + * alt_irq_pending() returns a bit list of the current pending interrupts. + * This is used by alt_irq_handler() to determine which registered interrupt + * handlers should be called. + * + * This routine is only available for the Nios II internal interrupt + * controller. + */ +#ifndef NIOS2_EIC_PRESENT +static ALT_INLINE alt_u32 ALT_ALWAYS_INLINE alt_irq_pending (void) +{ + alt_u32 active; + + NIOS2_READ_IPENDING (active); + + return active; +} +#endif + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __ALT_IRQ_H__ */ diff --git a/software/qsys_tutorial_test_bsp/HAL/inc/sys/alt_irq_entry.h b/software/qsys_tutorial_test_bsp/HAL/inc/sys/alt_irq_entry.h new file mode 100644 index 0000000..e2008d9 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/HAL/inc/sys/alt_irq_entry.h @@ -0,0 +1,39 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/* + * This file pulls in the IRQ entry assembler and C code, which is only + * required if there are any interruptes in the system. + */ + +__asm__( "\n\t.globl alt_irq_entry" ); + +__asm__( "\n\t.globl alt_irq_handler" ); + diff --git a/software/qsys_tutorial_test_bsp/HAL/inc/sys/alt_license_reminder_ucosii.h b/software/qsys_tutorial_test_bsp/HAL/inc/sys/alt_license_reminder_ucosii.h new file mode 100644 index 0000000..2fe649c --- /dev/null +++ b/software/qsys_tutorial_test_bsp/HAL/inc/sys/alt_license_reminder_ucosii.h @@ -0,0 +1,77 @@ +#ifndef __ALT_LICENSE_REMINDER_UCOSII_H__ +#define __ALT_LICENSE_REMINDER_UCOSII_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#include + +#define ALT_LICENSE_REMINDER_UCOSII_STRING \ + "============== Software License Reminder ===============\n" \ + "\n" \ + "uC/OS-II is provided in source form for FREE evaluation,\n" \ + "for educational use, or for peaceful research. If you\n" \ + "plan on using uC/OS-II in a commercial product you need\n" \ + "to contact Micrium to properly license its use in your\n" \ + "product. Micrium provides ALL the source code on the\n" \ + "Altera distribution for your convenience and to help you\n" \ + "experience uC/OS-II. The fact that the source is provided\n" \ + "does NOT mean that you can use it without paying a\n" \ + "licensing fee. Please help us continue to provide the\n" \ + "Embedded community with the finest software available.\n" \ + "Your honesty is greatly appreciated.\n" \ + "\n" \ + "Please contact:\n" \ + "\n" \ + "M I C R I U M\n" \ + "949 Crestview Circle\n" \ + "Weston, FL 33327-1848\n" \ + "U.S.A.\n" \ + "\n" \ + "Phone : +1 954 217 2036\n" \ + "FAX : +1 954 217 2037\n" \ + "WEB : www.micrium.com\n" \ + "E-mail: Sales@Micrium.com\n" \ + "\n" \ + "========================================================\n" + +#define alt_license_reminder_ucosii() puts(ALT_LICENSE_REMINDER_UCOSII_STRING) + + +#endif /* __ALT_LICENSE_REMINDER_UCOSII_H__ */ + diff --git a/software/qsys_tutorial_test_bsp/HAL/inc/sys/alt_llist.h b/software/qsys_tutorial_test_bsp/HAL/inc/sys/alt_llist.h new file mode 100644 index 0000000..46f81ce --- /dev/null +++ b/software/qsys_tutorial_test_bsp/HAL/inc/sys/alt_llist.h @@ -0,0 +1,123 @@ +#ifndef __ALT_LIST_H__ +#define __ALT_LIST_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#include "alt_types.h" + +/* + * alt_llist.h defines structures and functions for use in manipulating linked + * lists. A list is considered to be constructed from a chain of objects of + * type alt_llist, with one object being defined to be the head element. + * + * A list is considered to be empty if it only contains the head element. + */ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * alt_llist is the structure used to represent an element within a linked + * list. + */ + +typedef struct alt_llist_s alt_llist; + +struct alt_llist_s { + alt_llist* next; /* Pointer to the next element in the list. */ + alt_llist* previous; /* Pointer to the previous element in the list. */ +}; + +/* + * ALT_LLIST_HEAD is a macro that can be used to create the head of a new + * linked list. This is named "head". The head element is initialised to + * represent an empty list. + */ + +#define ALT_LLIST_HEAD(head) alt_llist head = {&head, &head} + +/* + * ALT_LLIST_ENTRY is a macro used to define an uninitialised linked list + * entry. This is used to reserve space in structure initialisation for + * structures that inherit form alt_llist. + */ + +#define ALT_LLIST_ENTRY {0, 0} + +/* + * alt_llist_insert() insert adds the linked list entry "entry" as the + * first entry in the linked list "list". "list" is the list head element. + */ + +static ALT_INLINE void ALT_ALWAYS_INLINE alt_llist_insert(alt_llist* list, + alt_llist* entry) +{ + entry->previous = list; + entry->next = list->next; + + list->next->previous = entry; + list->next = entry; +} + +/* + * alt_llist_remove() is called to remove an element from a linked list. The + * input argument is the element to remove. + */ + +static ALT_INLINE void ALT_ALWAYS_INLINE alt_llist_remove(alt_llist* entry) +{ + entry->next->previous = entry->previous; + entry->previous->next = entry->next; + + /* + * Set the entry to point to itself, so that any further calls to + * alt_llist_remove() are harmless. + */ + + entry->previous = entry; + entry->next = entry; +} + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_LLIST_H__ */ diff --git a/software/qsys_tutorial_test_bsp/HAL/inc/sys/alt_load.h b/software/qsys_tutorial_test_bsp/HAL/inc/sys/alt_load.h new file mode 100644 index 0000000..432e9f2 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/HAL/inc/sys/alt_load.h @@ -0,0 +1,78 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2005 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "alt_types.h" + +/* + * This macro is used to load code/data from its load address to its + * execution address for a given section. The section name is the input + * argument. Note that a leading '.' is assumed in the name. For example + * to load the section .onchip_ram, use: + * + * ALT_LOAD_SECTION_BY_NAME(onchip_ram); + * + * This requires that the apropriate linker symbols have been generated + * for the section in question. This will be the case if you are using the + * default linker script. + */ + +#define ALT_LOAD_SECTION_BY_NAME(name) \ + { \ + extern void _alt_partition_##name##_start; \ + extern void _alt_partition_##name##_end; \ + extern void _alt_partition_##name##_load_addr; \ + \ + alt_load_section(&_alt_partition_##name##_load_addr, \ + &_alt_partition_##name##_start, \ + &_alt_partition_##name##_end); \ + } + +/* + * Function used to load an individual section from flash to RAM. + * + * There is an implicit assumption here that the linker script will ensure + * that all sections are word aligned. + * + */ + +static void ALT_INLINE alt_load_section (alt_u32* from, + alt_u32* to, + alt_u32* end) +{ + if (to != from) + { + while( to != end ) + { + *to++ = *from++; + } + } +} diff --git a/software/qsys_tutorial_test_bsp/HAL/inc/sys/alt_log_printf.h b/software/qsys_tutorial_test_bsp/HAL/inc/sys/alt_log_printf.h new file mode 100644 index 0000000..c15ca05 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/HAL/inc/sys/alt_log_printf.h @@ -0,0 +1,349 @@ +/* alt_log_printf.h + * + * ALT_LOG is designed to provide extra logging/debugging messages from HAL + * through a different port than stdout. It is enabled by the ALT_LOG_ENABLE + * define, which needs to supplied at compile time. When logging is turned off, + * code size is unaffected. Thus, this should be transparent to the user + * when it is not actively turned on, and should not affect projects in any way. + * + * There are macros sprinkled within different components, such as the jtag uart + * and timer, in the HAL code. They are always named ALT_LOG_, and can be + * safely ignored if ALT_LOG is turned off. + * + * To turn on ALT_LOG, ALT_LOG_ENABLE must be defined, and ALT_LOG_PORT_TYPE and + * ALT_LOG_PORT_BASE must be set in system.h. This is done through editing + * .ptf, by editing the alt_log_port_type & alt_log_port_base settings. + * See the documentation html file for examples. + * + * When it is turned on, it will output extra HAL messages to a port specified + * in system.h. This can be a UART or JTAG UART port. By default it will + * output boot messages, detailing every step of the boot process. + * + * Extra logging is designed to be enabled by flags, which are defined in + * alt_log_printf.c. The default value is that all flags are off, so only the + * boot up logging messages show up. ALT_LOG_FLAGS can be set to enable certain + * groupings of flags, and that grouping is done in this file. Each flag can + * also be overridden with a -D at compile time. + * + * This header file includes the necessary prototypes for using the alt_log + * functions. It also contains all the macros that are used to remove the code + * from alt log is turned off. Also, the macros in other HAL files are defined + * here at the bottom. These macros all call some C function that is in + * alt_log_printf.c. + * + * The logging has functions for printing in C (ALT_LOG_PRINTF) and in assembly + * (ALT_LOG_PUTS). This was needed because the assembly printing occurs before + * the device is initialized. The assembly function corrupts register R4-R7, + * which are not used in the normal boot process. For this reason, do not call + * the assembly function in C. + * + * author: gkwan + */ + + +#ifndef __ALT_LOG_PRINTF_H__ +#define __ALT_LOG_PRINTF_H__ + +#include + +/* Global switch to turn on logging functions */ +#ifdef ALT_LOG_ENABLE + + /* ALT_LOG_PORT_TYPE values as defined in system.h. They are defined as + * numbers here first becasue the C preprocessor does not handle string + * comparisons. */ + #define ALTERA_AVALON_JTAG_UART 1 + #define ALTERA_AVALON_UART 0 + + /* If this .h file is included by an assembly file, skip over include files + * that won't compile in assembly. */ + #ifndef ALT_ASM_SRC + #include + #include "sys/alt_alarm.h" + #include "sys/alt_dev.h" + #ifdef __ALTERA_AVALON_JTAG_UART + #include "altera_avalon_jtag_uart.h" + #endif + #endif /* ALT_ASM_SRC */ + + /* These are included for the port register offsets and masks, needed + * to write to the port. Only include if the port type is set correctly, + * otherwise error. If alt_log is turned on and the port to output to is + * incorrect or does not exist, then should exit. */ + #if ALT_LOG_PORT_TYPE == ALTERA_AVALON_JTAG_UART + #ifdef __ALTERA_AVALON_JTAG_UART + #include + #else + #error ALT_LOG: JTAG_UART port chosen, but no JTAG_UART in system. + #endif + #elif ALT_LOG_PORT_TYPE == ALTERA_AVALON_UART + #ifdef __ALTERA_AVALON_UART + #include + #else + #error ALT_LOG: UART Port chosen, but no UART in system. + #endif + #else + #error ALT_LOG: alt_log_port_type declaration invalid! + #endif + + /* ALT_LOG_ENABLE turns on the basic printing function */ + #define ALT_LOG_PRINTF(...) do {alt_log_printf_proc(__VA_ARGS__);} while (0) + + /* Assembly macro for printing in assembly, calls tx_log_str + * which is in alt_log_macro.S. + * If alt_log_boot_on_flag is 0, skips the printing */ + #define ALT_LOG_PUTS(str) movhi r4, %hiadj(alt_log_boot_on_flag) ; \ + addi r4, r4, %lo(alt_log_boot_on_flag) ; \ + ldwio r5, 0(r4) ; \ + beq r0, r5, 0f ; \ + movhi r4, %hiadj(str) ; \ + addi r4, r4, %lo(str) ; \ + call tx_log_str ; \ + 0: + + /* These defines are here to faciliate the use of one output function + * (alt_log_txchar) to print to both the JTAG UART or the UART. Depending + * on the port type, the status register, read mask, and output register + * are set to the appropriate value for the port. */ + #if ALT_LOG_PORT_TYPE == ALTERA_AVALON_JTAG_UART + #define ALT_LOG_PRINT_REG_RD IORD_ALTERA_AVALON_JTAG_UART_CONTROL + #define ALT_LOG_PRINT_MSK ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_MSK + #define ALT_LOG_PRINT_TXDATA_WR IOWR_ALTERA_AVALON_JTAG_UART_DATA + #define ALT_LOG_PRINT_REG_OFFSET (ALTERA_AVALON_JTAG_UART_CONTROL_REG*0x4) + #define ALT_LOG_PRINT_TXDATA_REG_OFFSET (ALTERA_AVALON_JTAG_UART_DATA_REG*0x4) + #elif ALT_LOG_PORT_TYPE == ALTERA_AVALON_UART + #define ALT_LOG_PRINT_REG_RD IORD_ALTERA_AVALON_UART_STATUS + #define ALT_LOG_PRINT_MSK ALTERA_AVALON_UART_STATUS_TRDY_MSK + #define ALT_LOG_PRINT_TXDATA_WR IOWR_ALTERA_AVALON_UART_TXDATA + #define ALT_LOG_PRINT_REG_OFFSET (ALTERA_AVALON_UART_STATUS_REG*0x4) + #define ALT_LOG_PRINT_TXDATA_REG_OFFSET (ALTERA_AVALON_UART_TXDATA_REG*0x4) + #endif /* ALT_LOG_PORT */ + + /* Grouping of flags via ALT_LOG_FLAGS. Each specific flag can be set via + * -D at compile time, or else they'll be set to a default value according + * to ALT_LOG_FLAGS. ALT_LOG_FLAGS = 0 or not set is the default, where + * only the boot messages will be printed. As ALT_LOG_FLAGS increase, they + * increase in intrusiveness to the program, and will affect performance. + * + * Flag Level 1 - turns on system clock and JTAG UART startup status + * 2 - turns on write echo and JTAG_UART alarm (periodic report) + * 3 - turns on JTAG UART ISR logging - will slow performance + * significantly. + * -1 - All logging output is off, but if ALT_LOG_ENABLE is + * defined all logging function is built and code size + * remains constant + * + * Flag settings - 1 = on, 0 = off. */ + + /* This flag turns on "boot" messages for printing. This includes messages + * during crt0.S, then alt_main, and finally alt_exit. */ + #ifndef ALT_LOG_BOOT_ON_FLAG_SETTING + #if ALT_LOG_FLAGS == 1 + #define ALT_LOG_BOOT_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == 2 + #define ALT_LOG_BOOT_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == 3 + #define ALT_LOG_BOOT_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == -1 /* silent mode */ + #define ALT_LOG_BOOT_ON_FLAG_SETTING 0x0 + #else /* default setting */ + #define ALT_LOG_BOOT_ON_FLAG_SETTING 0x1 + #endif + #endif /* ALT_LOG_BOOT_ON_FLAG_SETTING */ + + #ifndef ALT_LOG_SYS_CLK_ON_FLAG_SETTING + #if ALT_LOG_FLAGS == 1 + #define ALT_LOG_SYS_CLK_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == 2 + #define ALT_LOG_SYS_CLK_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == 3 + #define ALT_LOG_SYS_CLK_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == -1 /* silent mode */ + #define ALT_LOG_SYS_CLK_ON_FLAG_SETTING 0x0 + #else /* default setting */ + #define ALT_LOG_SYS_CLK_ON_FLAG_SETTING 0x0 + #endif + #endif /* ALT_LOG_SYS_CLK_ON_FLAG_SETTING */ + + #ifndef ALT_LOG_WRITE_ON_FLAG_SETTING + #if ALT_LOG_FLAGS == 1 + #define ALT_LOG_WRITE_ON_FLAG_SETTING 0x0 + #elif ALT_LOG_FLAGS == 2 + #define ALT_LOG_WRITE_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == 3 + #define ALT_LOG_WRITE_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == -1 /* silent mode */ + #define ALT_LOG_WRITE_ON_FLAG_SETTING 0x0 + #else /* default setting */ + #define ALT_LOG_WRITE_ON_FLAG_SETTING 0x0 + #endif + #endif /* ALT_LOG_WRITE_ON_FLAG_SETTING */ + + #ifndef ALT_LOG_JTAG_UART_ALARM_ON_FLAG_SETTING + #ifndef __ALTERA_AVALON_JTAG_UART + #define ALT_LOG_JTAG_UART_ALARM_ON_FLAG_SETTING 0x0 + #elif ALT_LOG_FLAGS == 1 + #define ALT_LOG_JTAG_UART_ALARM_ON_FLAG_SETTING 0x0 + #elif ALT_LOG_FLAGS == 2 + #define ALT_LOG_JTAG_UART_ALARM_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == 3 + #define ALT_LOG_JTAG_UART_ALARM_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == -1 /* silent mode */ + #define ALT_LOG_JTAG_UART_ALARM_ON_FLAG_SETTING 0x0 + #else /* default setting */ + #define ALT_LOG_JTAG_UART_ALARM_ON_FLAG_SETTING 0x0 + #endif + #endif /* ALT_LOG_JTAG_UART_ALARM_ON_FLAG_SETTING */ + + #ifndef ALT_LOG_JTAG_UART_STARTUP_INFO_ON_FLAG_SETTING + #ifndef __ALTERA_AVALON_JTAG_UART + #define ALT_LOG_JTAG_UART_STARTUP_INFO_ON_FLAG_SETTING 0x0 + #elif ALT_LOG_FLAGS == 1 + #define ALT_LOG_JTAG_UART_STARTUP_INFO_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == 2 + #define ALT_LOG_JTAG_UART_STARTUP_INFO_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == 3 + #define ALT_LOG_JTAG_UART_STARTUP_INFO_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == -1 /* silent mode */ + #define ALT_LOG_JTAG_UART_STARTUP_INFO_ON_FLAG_SETTING 0x0 + #else /* default setting */ + #define ALT_LOG_JTAG_UART_STARTUP_INFO_ON_FLAG_SETTING 0x0 + #endif + #endif /* ALT_LOG_JTAG_UART_STARTUP_INFO_FLAG_SETTING */ + + #ifndef ALT_LOG_JTAG_UART_ISR_ON_FLAG_SETTING + #ifndef __ALTERA_AVALON_JTAG_UART + #define ALT_LOG_JTAG_UART_ISR_ON_FLAG_SETTING 0x0 + #elif ALT_LOG_FLAGS == 1 + #define ALT_LOG_JTAG_UART_ISR_ON_FLAG_SETTING 0x0 + #elif ALT_LOG_FLAGS == 2 + #define ALT_LOG_JTAG_UART_ISR_ON_FLAG_SETTING 0x0 + #elif ALT_LOG_FLAGS == 3 + #define ALT_LOG_JTAG_UART_ISR_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == -1 /* silent mode */ + #define ALT_LOG_JTAG_UART_ISR_ON_FLAG_SETTING 0x0 + #else /* default setting */ + #define ALT_LOG_JTAG_UART_ISR_ON_FLAG_SETTING 0x0 + #endif + #endif /* ALT_LOG_JTAG_UART_ISR_ON_FLAG_SETTING */ + +#ifndef ALT_ASM_SRC + /* Function Prototypes */ + void alt_log_txchar(int c,char *uartBase); + void alt_log_private_printf(const char *fmt,int base,va_list args); + void alt_log_repchar(char c,int r,int base); + int alt_log_printf_proc(const char *fmt, ... ); + void alt_log_system_clock(); + #ifdef __ALTERA_AVALON_JTAG_UART + alt_u32 altera_avalon_jtag_uart_report_log(void * context); + void alt_log_jtag_uart_startup_info(altera_avalon_jtag_uart_state* dev, int base); + void alt_log_jtag_uart_print_control_reg(altera_avalon_jtag_uart_state* dev, \ + int base, const char* header); + void alt_log_jtag_uart_isr_proc(int base, altera_avalon_jtag_uart_state* dev); + #endif + void alt_log_write(const void *ptr, size_t len); + + /* extern all global variables */ + extern volatile alt_u32 alt_log_boot_on_flag; + extern volatile alt_u8 alt_log_write_on_flag; + extern volatile alt_u8 alt_log_sys_clk_on_flag; + extern volatile alt_u8 alt_log_jtag_uart_alarm_on_flag; + extern volatile alt_u8 alt_log_jtag_uart_isr_on_flag; + extern volatile alt_u8 alt_log_jtag_uart_startup_info_on_flag; + extern volatile int alt_log_sys_clk_count; + extern volatile int alt_system_clock_in_sec; + extern alt_alarm alt_log_jtag_uart_alarm_1; +#endif /* ALT_ASM_SRC */ + + + /* Below are the MACRO defines used in various HAL files. They check + * if their specific flag is turned on; if it is, then it executes its + * code. + * + * To keep this file reasonable, most of these macros calls functions, + * which are defined in alt_log_printf.c. Look there for implementation + * details. */ + + /* Boot Messages Logging */ + #define ALT_LOG_PRINT_BOOT(...) \ + do { if (alt_log_boot_on_flag==1) {ALT_LOG_PRINTF(__VA_ARGS__);} \ + } while (0) + + /* JTAG UART Logging */ + /* number of ticks before alarm runs logging function */ + #ifndef ALT_LOG_JTAG_UART_TICKS_DIVISOR + #define ALT_LOG_JTAG_UART_TICKS_DIVISOR 10 + #endif + #ifndef ALT_LOG_JTAG_UART_TICKS + #define ALT_LOG_JTAG_UART_TICKS \ + (alt_ticks_per_second()/ALT_LOG_JTAG_UART_TICKS_DIVISOR) + #endif + + /* if there's a JTAG UART defined, then enable these macros */ + #ifdef __ALTERA_AVALON_JTAG_UART + + /* Macro in altera_avalon_jtag_uart.c, to register the alarm function. + * Also, the startup register info is also printed here, as this is + * called within the device driver initialization. */ + #define ALT_LOG_JTAG_UART_ALARM_REGISTER(dev, base) \ + do { if (alt_log_jtag_uart_alarm_on_flag==1) { \ + alt_alarm_start(&alt_log_jtag_uart_alarm_1, \ + ALT_LOG_JTAG_UART_TICKS, &altera_avalon_jtag_uart_report_log,\ + dev);} \ + if (alt_log_jtag_uart_startup_info_on_flag==1) {\ + alt_log_jtag_uart_startup_info(dev, base);} \ + } while (0) + + /* JTAG UART IRQ Logging (when buffer is empty) + * Inserted in the ISR in altera_avalon_jtag_uart.c */ + #define ALT_LOG_JTAG_UART_ISR_FUNCTION(base, dev) \ + do { alt_log_jtag_uart_isr_proc(base, dev); } while (0) + /* else, define macros to nothing. Or else the jtag_uart specific types + * will throw compiler errors */ + #else + #define ALT_LOG_JTAG_UART_ALARM_REGISTER(dev, base) + #define ALT_LOG_JTAG_UART_ISR_FUNCTION(base, dev) + #endif + + /* System clock logging + * How often (in seconds) the system clock logging prints. + * The default value is every 1 second */ + #ifndef ALT_LOG_SYS_CLK_INTERVAL_MULTIPLIER + #define ALT_LOG_SYS_CLK_INTERVAL_MULTIPLIER 1 + #endif + #ifndef ALT_LOG_SYS_CLK_INTERVAL + #define ALT_LOG_SYS_CLK_INTERVAL \ + (alt_ticks_per_second()*ALT_LOG_SYS_CLK_INTERVAL_MULTIPLIER) + #endif + + /* System clock logging - prints a message every interval (set above) + * to show that the system clock is alive. + * This macro is used in altera_avalon_timer_sc.c */ + #define ALT_LOG_SYS_CLK_HEARTBEAT() \ + do { alt_log_system_clock(); } while (0) + + /* alt_write_logging - echos a message every time write() is called, + * displays the first ALT_LOG_WRITE_ECHO_LEN characters. + * This macro is used in alt_write.c */ + #ifndef ALT_LOG_WRITE_ECHO_LEN + #define ALT_LOG_WRITE_ECHO_LEN 15 + #endif + + #define ALT_LOG_WRITE_FUNCTION(ptr,len) \ + do { alt_log_write(ptr,len); } while (0) + +#else /* ALT_LOG_ENABLE not defined */ + + /* logging is off, set all relevant macros to null */ + #define ALT_LOG_PRINT_BOOT(...) + #define ALT_LOG_PRINTF(...) + #define ALT_LOG_JTAG_UART_ISR_FUNCTION(base, dev) + #define ALT_LOG_JTAG_UART_ALARM_REGISTER(dev, base) + #define ALT_LOG_SYS_CLK_HEARTBEAT() + #define ALT_LOG_PUTS(str) + #define ALT_LOG_WRITE_FUNCTION(ptr,len) + +#endif /* ALT_LOG_ENABLE */ + +#endif /* __ALT_LOG_PRINTF_H__ */ + diff --git a/software/qsys_tutorial_test_bsp/HAL/inc/sys/alt_set_args.h b/software/qsys_tutorial_test_bsp/HAL/inc/sys/alt_set_args.h new file mode 100644 index 0000000..3750e67 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/HAL/inc/sys/alt_set_args.h @@ -0,0 +1,71 @@ +#ifndef __ALT_SET_ARGS_H__ +#define __ALT_SET_ARGS_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * The function alt_set_args() is provided in order to define the input + * arguments to main(). If this function is not called before main() then the + * argument list passed to main() will be empty. + * + * It is expected that this function will only be used by the ihost/iclient + * utility. + */ + +static inline void alt_set_args (int argc, char** argv, char** envp) +{ + extern int alt_argc; + extern char** alt_argv; + extern char** alt_envp; + + alt_argc = argc; + alt_argv = argv; + alt_envp = envp; +} + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_SET_ARGS_H__ */ diff --git a/software/qsys_tutorial_test_bsp/HAL/inc/sys/alt_sim.h b/software/qsys_tutorial_test_bsp/HAL/inc/sys/alt_sim.h new file mode 100644 index 0000000..06bd27a --- /dev/null +++ b/software/qsys_tutorial_test_bsp/HAL/inc/sys/alt_sim.h @@ -0,0 +1,91 @@ +#ifndef __ALT_SIM_H__ +#define __ALT_SIM_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2007 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ +#include "system.h" +#include "alt_types.h" + +/* + * Instructions that might mean something special to a simulator. + * These have no special effect on real hardware (they are just nops). + */ +#define ALT_SIM_FAIL() \ + do { __asm volatile ("cmpltui r0, r0, 0xabc1"); } while (0) + +#define ALT_SIM_PASS() \ + do { __asm volatile ("cmpltui r0, r0, 0xabc2"); } while (0) + +#define ALT_SIM_IN_TOP_OF_HOT_LOOP() \ + do { __asm volatile ("cmpltui r0, r0, 0xabc3"); } while (0) + +/* + * Routine called on exit. + */ +static ALT_ALWAYS_INLINE void alt_sim_halt(int exit_code) +{ + int r2 = exit_code; + +#if defined(NIOS2_HAS_DEBUG_STUB) && (defined(ALT_BREAK_ON_EXIT) || defined(ALT_PROVIDE_GMON)) + + int r3 = (1 << 2); + +#ifdef ALT_PROVIDE_GMON + extern unsigned int alt_gmon_data[]; + int r4 = (int)alt_gmon_data; + r3 |= (1 << 4); +#define ALT_GMON_DATA ,"D04"(r4) +#else +#define ALT_GMON_DATA +#endif /* ALT_PROVIDE_GMON */ + + if (r2) { + ALT_SIM_FAIL(); + } else { + ALT_SIM_PASS(); + } + + __asm__ volatile ("\n0:\n\taddi %0,%0, -1\n\tbgt %0,zero,0b" : : "r" (ALT_CPU_FREQ/100) ); /* Delay for >30ms */ + + __asm__ volatile ("break 2" : : "D02"(r2), "D03"(r3) ALT_GMON_DATA ); + +#else /* !DEBUG_STUB */ + if (r2) { + ALT_SIM_FAIL(); + } else { + ALT_SIM_PASS(); + } +#endif /* DEBUG_STUB */ +} + +#define ALT_SIM_HALT(exit_code) \ + alt_sim_halt(exit_code) + +#endif /* __ALT_SIM_H__ */ diff --git a/software/qsys_tutorial_test_bsp/HAL/inc/sys/alt_stack.h b/software/qsys_tutorial_test_bsp/HAL/inc/sys/alt_stack.h new file mode 100644 index 0000000..e30652a --- /dev/null +++ b/software/qsys_tutorial_test_bsp/HAL/inc/sys/alt_stack.h @@ -0,0 +1,126 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#ifndef __ALT_STACK_H__ +#define __ALT_STACK_H__ + +/* + * alt_stack.h is the nios2 specific implementation of functions used by the + * stack overflow code. + */ + +#include "nios2.h" + +#include "alt_types.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + + +extern char * alt_stack_limit_value; + +#ifdef ALT_EXCEPTION_STACK +extern char __alt_exception_stack_pointer[]; /* set by the linker */ +#endif /* ALT_EXCEPTION_STACK */ + + +/* + * alt_stack_limit can be called to determine the current value of the stack + * limit register. + */ + +static ALT_INLINE char * ALT_ALWAYS_INLINE alt_stack_limit (void) +{ + char * limit; + NIOS2_READ_ET(limit); + + return limit; +} + +/* + * alt_stack_pointer can be called to determine the current value of the stack + * pointer register. + */ + +static ALT_INLINE char * ALT_ALWAYS_INLINE alt_stack_pointer (void) +{ + char * pointer; + NIOS2_READ_SP(pointer); + + return pointer; +} + + +#ifdef ALT_EXCEPTION_STACK + +/* + * alt_exception_stack_pointer returns the normal stack pointer from + * where it is stored on the exception stack (uppermost 4 bytes). This + * is really only useful during exception processing, and is only + * available if a separate exception stack has been configured. + */ + +static ALT_INLINE char * ALT_ALWAYS_INLINE alt_exception_stack_pointer (void) +{ + return (char *) *(alt_u32 *)(__alt_exception_stack_pointer - sizeof(alt_u32)); +} + +#endif /* ALT_EXCEPTION_STACK */ + + +/* + * alt_set_stack_limit can be called to update the current value of the stack + * limit register. + */ + +static ALT_INLINE void ALT_ALWAYS_INLINE alt_set_stack_limit (char * limit) +{ + alt_stack_limit_value = limit; + NIOS2_WRITE_ET(limit); +} + +/* + * alt_report_stack_overflow reports that a stack overflow happened. + */ + +static ALT_INLINE void ALT_ALWAYS_INLINE alt_report_stack_overflow (void) +{ + NIOS2_REPORT_STACK_OVERFLOW(); +} + + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __ALT_STACK_H__ */ + diff --git a/software/qsys_tutorial_test_bsp/HAL/inc/sys/alt_stdio.h b/software/qsys_tutorial_test_bsp/HAL/inc/sys/alt_stdio.h new file mode 100644 index 0000000..1730360 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/HAL/inc/sys/alt_stdio.h @@ -0,0 +1,62 @@ +#ifndef __ALT_STDIO_H__ +#define __ALT_STDIO_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +/* + * Definitions for ALT stdio routines. + */ + +#include + + +#ifdef __cplusplus +extern "C" { +#endif + +int alt_getchar(); +int alt_putchar(int c); +int alt_putstr(const char* str); +void alt_printf(const char *fmt, ...); + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_STDIO_H__ */ diff --git a/software/qsys_tutorial_test_bsp/HAL/inc/sys/alt_sys_init.h b/software/qsys_tutorial_test_bsp/HAL/inc/sys/alt_sys_init.h new file mode 100644 index 0000000..e4abc28 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/HAL/inc/sys/alt_sys_init.h @@ -0,0 +1,62 @@ +#ifndef __ALT_SYS_INIT_H__ +#define __ALT_SYS_INIT_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * The function alt_sys_init() is defined within the auto-generated file: + * alt_sys_init.c. This function calls the initilisation macros for all + * devices, file systems, and software components within the system. + * + * The list of initilisation macros to use is constructed using the PTF and + * STF files associated with the system. + */ + +extern void alt_sys_init (void); + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_SYS_INIT_H__ */ diff --git a/software/qsys_tutorial_test_bsp/HAL/inc/sys/alt_sys_wrappers.h b/software/qsys_tutorial_test_bsp/HAL/inc/sys/alt_sys_wrappers.h new file mode 100644 index 0000000..044833b --- /dev/null +++ b/software/qsys_tutorial_test_bsp/HAL/inc/sys/alt_sys_wrappers.h @@ -0,0 +1,100 @@ +#ifndef __ALT_SYS_WRAPPERS_H__ +#define __ALT_SYS_WRAPPERS_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/* + * This file provides the prototypes for the HAL 'UNIX style functions. The + * names of these functions are defined in alt_syscall.h. THese are defined to + * be the standard names when running the standalone HAL, e.g. open(), close() + * etc., but the names may be redefined as a part of an operating system port + * in order to avoid name clashes. + */ + +#include "os/alt_syscall.h" + +#include +#include +#include +#include +#include +#include + +extern int ALT_CLOSE (int __fd); +extern int ALT_EXECVE (const char *__path, + char * const __argv[], + char * const __envp[]); +extern void ALT_EXIT (int __status); +extern int ALT_FSTAT (int file, struct stat *st); +extern int ALT_FCNTL (int file, int cmd, ...); +extern pid_t ALT_FORK (void); +extern pid_t ALT_GETPID (void); + +#if defined (__GNUC__) && __GNUC__ >= 4 +extern int ALT_GETTIMEOFDAY (struct timeval *ptimeval, + void *ptimezone); +#else +extern int ALT_GETTIMEOFDAY (struct timeval *ptimeval, + struct timezone *ptimezone); +#endif + +extern int ALT_IOCTL (int file, int req, void* arg); +extern int ALT_ISATTY (int file); +extern int ALT_KILL (int pid, int sig); +extern int ALT_LINK (const char *existing, const char *new); +extern off_t ALT_LSEEK (int file, off_t ptr, int dir); +extern int ALT_OPEN (const char* file, int flags, ...); +extern int ALT_READ (int file, void *ptr, size_t len); +extern int ALT_RENAME (char *existing, char *new); +extern void* ALT_SBRK (ptrdiff_t incr); +extern int ALT_SETTIMEOFDAY (const struct timeval *t, + const struct timezone *tz); +extern int ALT_STAT (const char *file, struct stat *st); +extern clock_t ALT_TIMES (struct tms *buf); +extern int ALT_UNLINK (const char *name); + +#if defined (__GNUC__) && __GNUC__ >= 4 +int ALT_USLEEP (useconds_t us); +#else +unsigned int ALT_USLEEP (unsigned int us); +#endif + +extern int ALT_WAIT (int *status); +extern int ALT_WRITE (int file, const void *ptr, size_t len); + + +extern char** ALT_ENVIRON; + +/* + * + */ + +#endif /* __ALT_SYS_WRAPPERS_H__ */ diff --git a/software/qsys_tutorial_test_bsp/HAL/inc/sys/alt_timestamp.h b/software/qsys_tutorial_test_bsp/HAL/inc/sys/alt_timestamp.h new file mode 100644 index 0000000..8a18da2 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/HAL/inc/sys/alt_timestamp.h @@ -0,0 +1,60 @@ +#ifndef __ALT_TIMESTAMP_H__ +#define __ALT_TIMESTAMP_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#include "alt_types.h" +#include "altera_avalon_timer.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +extern int alt_timestamp_start (void); + +extern alt_timestamp_type alt_timestamp (void); + +extern alt_u32 alt_timestamp_freq (void); + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_TIMESTAMP_H__ */ diff --git a/software/qsys_tutorial_test_bsp/HAL/inc/sys/alt_warning.h b/software/qsys_tutorial_test_bsp/HAL/inc/sys/alt_warning.h new file mode 100644 index 0000000..b66e71a --- /dev/null +++ b/software/qsys_tutorial_test_bsp/HAL/inc/sys/alt_warning.h @@ -0,0 +1,75 @@ +#ifndef __WARNING_H__ +#define __WARNING_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/* + * alt_warning.h provides macro definitions that can be used to generate link + * time warnings. + */ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * The symbol "__alt_invalid" is used to force a link error. There should be + * no corresponding implementation of this function. + */ + +extern void __alt_invalid (void); + +#define ALT_LINK_WARNING(symbol, msg) \ + __asm__(".ifndef __evoke_link_warning_" #symbol \ + "\n\t .section .gnu.warning." #symbol \ + "\n__evoke_link_warning_" #symbol ":\n\t .string \x22" msg "\x22 \n\t .previous" \ + "\n .endif"); + +/* A canned warning for sysdeps/stub functions. */ + +#define ALT_STUB_WARNING(name) \ + ALT_LINK_WARNING (name, \ + "warning: " #name " is not implemented and will always fail") + +#define ALT_OBSOLETE_FUNCTION_WARNING(name) \ + ALT_LINK_WARNING (name, \ + "warning: " #name " is a deprecated function") + +#define ALT_LINK_ERROR(msg) \ + ALT_LINK_WARNING (__alt_invalid, msg); \ + __alt_invalid() + +#ifdef __cplusplus +} +#endif + +#endif /* __WARNING_H__ */ diff --git a/software/qsys_tutorial_test_bsp/HAL/inc/sys/ioctl.h b/software/qsys_tutorial_test_bsp/HAL/inc/sys/ioctl.h new file mode 100644 index 0000000..4d565df --- /dev/null +++ b/software/qsys_tutorial_test_bsp/HAL/inc/sys/ioctl.h @@ -0,0 +1,90 @@ +#ifndef __IOCTL_H__ +#define __IOCTL_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * The ioctl() system call be used to initiate a variety of control operations + * on a file descriptor. For the most part this simply translates to a call to + * the ioctl() function of the associated device driver (TIOCEXCL and + * TIOCNXCL are notable exceptions - see ioctl.c for details). + * + * The interpretation of the ioctl requests are therefore device specific. + * + * This function is equivalent to the standard Posix ioctl() call. + */ + +extern int ioctl (int fd, int req, void* arg); + +/* + * list of ioctl calls handled by the system ioctl implementation. + */ + +#define TIOCEXCL 0x740d /* exclusive use of the device */ +#define TIOCNXCL 0x740e /* allow multiple use of the device */ + +/* + * ioctl calls which can be handled by device drivers. + */ + +#define TIOCOUTQ 0x7472 /* get output queue size */ +#define TIOCMGET 0x741d /* get termios flags */ +#define TIOCMSET 0x741a /* set termios flags */ + +/* + * ioctl calls specific to JTAG UART. + */ + +#define TIOCSTIMEOUT 0x6a01 /* Set Timeout before assuming no host present */ +#define TIOCGCONNECTED 0x6a02 /* Get indication of whether host is connected */ + +/* + * + */ + +#ifdef __cplusplus +} +#endif + +#endif /* __IOCTL_H__ */ diff --git a/software/qsys_tutorial_test_bsp/HAL/inc/sys/termios.h b/software/qsys_tutorial_test_bsp/HAL/inc/sys/termios.h new file mode 100644 index 0000000..cd09539 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/HAL/inc/sys/termios.h @@ -0,0 +1,181 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +/* + * This is the termios.h file provided with newlib. The only modification has + * been to the baud rate macro definitions, and an increase in the size of the + * termios structure to accomodate this. + */ + + +#ifndef _SYS_TERMIOS_H +# define _SYS_TERMIOS_H + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +# define _XCGETA (('x'<<8)|1) +# define _XCSETA (('x'<<8)|2) +# define _XCSETAW (('x'<<8)|3) +# define _XCSETAF (('x'<<8)|4) +# define _TCSBRK (('T'<<8)|5) +# define _TCFLSH (('T'<<8)|7) +# define _TCXONC (('T'<<8)|6) + +# define TCOOFF 0 +# define TCOON 1 +# define TCIOFF 2 +# define TCION 3 + +# define TCIFLUSH 0 +# define TCOFLUSH 1 +# define TCIOFLUSH 2 + +# define NCCS 13 + +# define TCSAFLUSH _XCSETAF +# define TCSANOW _XCSETA +# define TCSADRAIN _XCSETAW +# define TCSADFLUSH _XCSETAF + +# define IGNBRK 000001 +# define BRKINT 000002 +# define IGNPAR 000004 +# define INPCK 000020 +# define ISTRIP 000040 +# define INLCR 000100 +# define IGNCR 000200 +# define ICRNL 000400 +# define IXON 002000 +# define IXOFF 010000 + +# define OPOST 000001 +# define OCRNL 000004 +# define ONLCR 000010 +# define ONOCR 000020 +# define TAB3 014000 + +# define CLOCAL 004000 +# define CREAD 000200 +# define CSIZE 000060 +# define CS5 0 +# define CS6 020 +# define CS7 040 +# define CS8 060 +# define CSTOPB 000100 +# define HUPCL 002000 +# define PARENB 000400 +# define PAODD 001000 + +#define CCTS_OFLOW 010000 +#define CRTS_IFLOW 020000 +#define CRTSCTS (CCTS_OFLOW | CRTS_IFLOW) + +# define ECHO 0000010 +# define ECHOE 0000020 +# define ECHOK 0000040 +# define ECHONL 0000100 +# define ICANON 0000002 +# define IEXTEN 0000400 /* anybody know *what* this does?! */ +# define ISIG 0000001 +# define NOFLSH 0000200 +# define TOSTOP 0001000 + +# define VEOF 4 /* also VMIN -- thanks, AT&T */ +# define VEOL 5 /* also VTIME -- thanks again */ +# define VERASE 2 +# define VINTR 0 +# define VKILL 3 +# define VMIN 4 /* also VEOF */ +# define VQUIT 1 +# define VSUSP 10 +# define VTIME 5 /* also VEOL */ +# define VSTART 11 +# define VSTOP 12 + +# define B0 0 +# define B50 50 +# define B75 75 +# define B110 110 +# define B134 134 +# define B150 150 +# define B200 200 +# define B300 300 +# define B600 600 +# define B1200 1200 +# define B1800 1800 +# define B2400 2400 +# define B4800 4800 +# define B9600 9600 +# define B19200 19200 +# define B38400 38400 +# define B57600 57600 +# define B115200 115200 + +typedef unsigned char cc_t; +typedef unsigned short tcflag_t; +typedef unsigned long speed_t; + +struct termios { + tcflag_t c_iflag; + tcflag_t c_oflag; + tcflag_t c_cflag; + tcflag_t c_lflag; + char c_line; + cc_t c_cc[NCCS]; + speed_t c_ispeed; + speed_t c_ospeed; +}; + +# ifndef _NO_MACROS + +# define cfgetospeed(tp) ((tp)->c_ospeed) +# define cfgetispeed(tp) ((tp)->c_ispeed) +# define cfsetospeed(tp,s) (((tp)->c_ospeed = (s)), 0) +# define cfsetispeed(tp,s) (((tp)->c_ispeed = (s)), 0) +# define tcdrain(fd) _ioctl (fd, _TCSBRK, 1) +# endif /* _NO_MACROS */ + +#ifdef __cplusplus +} +#endif + +#endif /* _SYS_TERMIOS_H */ + diff --git a/software/qsys_tutorial_test_bsp/HAL/src/alt_alarm_start.c b/software/qsys_tutorial_test_bsp/HAL/src/alt_alarm_start.c new file mode 100644 index 0000000..7739959 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/HAL/src/alt_alarm_start.c @@ -0,0 +1,112 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +#include "sys/alt_alarm.h" +#include "sys/alt_irq.h" + +/* + * alt_alarm_start is called to register an alarm with the system. The + * "alarm" structure passed as an input argument does not need to be + * initialised by the user. This is done within this function. + * + * The remaining input arguments are: + * + * nticks - The time to elapse until the alarm executes. This is specified in + * system clock ticks. + * callback - The function to run when the indicated time has elapsed. + * context - An opaque value, passed to the callback function. +* + * Care should be taken when defining the callback function since it is + * likely to execute in interrupt context. In particular, this mean that + * library calls like printf() should not be made, since they can result in + * deadlock. + * + * The interval to be used for the next callback is the return + * value from the callback function. A return value of zero indicates that the + * alarm should be unregistered. + * + * alt_alarm_start() will fail if the timer facility has not been enabled + * (i.e. there is no system clock). Failure is indicated by a negative return + * value. + */ + +int alt_alarm_start (alt_alarm* alarm, alt_u32 nticks, + alt_u32 (*callback) (void* context), + void* context) +{ + alt_irq_context irq_context; + alt_u32 current_nticks = 0; + + if (alt_ticks_per_second ()) + { + if (alarm) + { + alarm->callback = callback; + alarm->context = context; + + irq_context = alt_irq_disable_all (); + + current_nticks = alt_nticks(); + + alarm->time = nticks + current_nticks + 1; + + /* + * If the desired alarm time causes a roll-over, set the rollover + * flag. This will prevent the subsequent tick event from causing + * an alarm too early. + */ + if(alarm->time < current_nticks) + { + alarm->rollover = 1; + } + else + { + alarm->rollover = 0; + } + + alt_llist_insert (&alt_alarm_list, &alarm->llist); + alt_irq_enable_all (irq_context); + + return 0; + } + else + { + return -EINVAL; + } + } + else + { + return -ENOTSUP; + } +} diff --git a/software/qsys_tutorial_test_bsp/HAL/src/alt_busy_sleep.c b/software/qsys_tutorial_test_bsp/HAL/src/alt_busy_sleep.c new file mode 100644 index 0000000..561c0be --- /dev/null +++ b/software/qsys_tutorial_test_bsp/HAL/src/alt_busy_sleep.c @@ -0,0 +1,133 @@ +/* + * Copyright (c) 2003-2004 Altera Corporation, San Jose, California, USA. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + * ------------ + * + * Altera does not recommend, suggest or require that this reference design + * file be used in conjunction or combination with any other product. + * + * alt_busy_sleep.c - Microsecond delay routine which uses a calibrated busy + * loop to perform the delay. This is used to implement + * usleep for both uC/OS-II and the standalone HAL. + * + * Author PRR + * + * Calibrated delay with no timer required + * + * The ASM instructions in the routine are equivalent to + * + * for (i=0;i +#include + +#include "system.h" +#include "alt_types.h" + +#include "priv/alt_busy_sleep.h" + +unsigned int alt_busy_sleep (unsigned int us) +{ +/* + * Only delay if ALT_SIM_OPTIMIZE is not defined; i.e., if software + * is built targetting ModelSim RTL simulation, the delay will be + * skipped to speed up simulation. + */ +#ifndef ALT_SIM_OPTIMIZE + int i; + int big_loops; + alt_u32 cycles_per_loop; + + if (!strcmp(NIOS2_CPU_IMPLEMENTATION,"tiny")) + { + cycles_per_loop = 9; + } + else + { + cycles_per_loop = 3; + } + + + big_loops = us / (INT_MAX/ + (ALT_CPU_FREQ/(cycles_per_loop * 1000000))); + + if (big_loops) + { + for(i=0;i + +#include "sys/alt_errno.h" +#include "sys/alt_warning.h" +#include "priv/alt_file.h" +#include "os/alt_syscall.h" + +#ifdef ALT_USE_DIRECT_DRIVERS + +int ALT_CLOSE (int fildes) +{ + /* Generate a link time warning, should this function ever be called. */ + + ALT_STUB_WARNING(close); + + /* Indicate an error */ + + ALT_ERRNO = ENOSYS; + return -1; +} + +#else /* !ALT_USE_DIRECT_DRIVERS */ + +/* + * close() is called by an application to release a file descriptor. If the + * associated file system/device has a close() callback function registered + * then this called. The file descriptor is then marked as free. + * + * ALT_CLOSE is mapped onto the close() system call in alt_syscall.h + */ + +int ALT_CLOSE (int fildes) +{ + alt_fd* fd; + int rval; + + /* + * A common error case is that when the file descriptor was created, the call + * to open() failed resulting in a negative file descriptor. This is trapped + * below so that we don't try and process an invalid file descriptor. + */ + + fd = (fildes < 0) ? NULL : &alt_fd_list[fildes]; + + if (fd) + { + /* + * If the associated file system/device has a close function, call it so + * that any necessary cleanup code can run. + */ + + rval = (fd->dev->close) ? fd->dev->close(fd) : 0; + + /* Free the file descriptor structure and return. */ + + alt_release_fd (fildes); + if (rval < 0) + { + ALT_ERRNO = -rval; + return -1; + } + return 0; + } + else + { + ALT_ERRNO = EBADFD; + return -1; + } +} + +#endif /* ALT_USE_DIRECT_DRIVERS */ diff --git a/software/qsys_tutorial_test_bsp/HAL/src/alt_dcache_flush.c b/software/qsys_tutorial_test_bsp/HAL/src/alt_dcache_flush.c new file mode 100644 index 0000000..7ecc91a --- /dev/null +++ b/software/qsys_tutorial_test_bsp/HAL/src/alt_dcache_flush.c @@ -0,0 +1,97 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003-2005 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "nios2.h" +#include "system.h" + +#include "alt_types.h" +#include "sys/alt_cache.h" + +/* + * Nios II version 1.2 and newer supports the "flush by address" instruction, in + * addition to the "flush by line" instruction provided by older versions of + * the core. This newer instruction is used by preference when it is + * available. + */ + +#ifdef NIOS2_FLUSHDA_SUPPORTED +#define ALT_FLUSH_DATA(i) __asm__ volatile ("flushda (%0)" :: "r" (i)); +#else +#define ALT_FLUSH_DATA(i) __asm__ volatile ("flushd (%0)" :: "r" (i)); +#endif /* NIOS2_FLUSHDA_SUPPORTED */ + +/* + * alt_dcache_flush() is called to flush the data cache for a memory + * region of length "len" bytes, starting at address "start". + * + * Any dirty lines in the data cache are written back to memory. + */ + +void alt_dcache_flush (void* start, alt_u32 len) +{ +#if NIOS2_DCACHE_SIZE > 0 + + char* i; + char* end; + + /* + * This is the most we would ever need to flush. + * + * SPR 196942, 2006.01.13: The cache flush loop below will use the + * 'flushda' instruction if its available; in that case each line + * must be flushed individually, and thus 'len' cannot be trimmed. + */ + #ifndef NIOS2_FLUSHDA_SUPPORTED + if (len > NIOS2_DCACHE_SIZE) + { + len = NIOS2_DCACHE_SIZE; + } + #endif + + end = ((char*) start) + len; + + for (i = start; i < end; i+= NIOS2_DCACHE_LINE_SIZE) + { + ALT_FLUSH_DATA(i); + } + + /* + * For an unaligned flush request, we've got one more line left. + * Note that this is dependent on NIOS2_DCACHE_LINE_SIZE to be a + * multiple of 2 (which it always is). + */ + + if (((alt_u32) start) & (NIOS2_DCACHE_LINE_SIZE - 1)) + { + ALT_FLUSH_DATA(i); + } + +#endif /* NIOS2_DCACHE_SIZE > 0 */ +} diff --git a/software/qsys_tutorial_test_bsp/HAL/src/alt_dcache_flush_all.c b/software/qsys_tutorial_test_bsp/HAL/src/alt_dcache_flush_all.c new file mode 100644 index 0000000..6529231 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/HAL/src/alt_dcache_flush_all.c @@ -0,0 +1,51 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003-2005 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "nios2.h" +#include "system.h" + +#include "alt_types.h" +#include "sys/alt_cache.h" + +/* + * alt_dcache_flush_all() is called to flush the entire data cache. + */ + +void alt_dcache_flush_all (void) +{ +#if NIOS2_DCACHE_SIZE > 0 + char* i; + + for (i = (char*) 0; i < (char*) NIOS2_DCACHE_SIZE; i+= NIOS2_DCACHE_LINE_SIZE) + { + __asm__ volatile ("flushd (%0)" :: "r" (i)); + } +#endif /* NIOS2_DCACHE_SIZE > 0 */ +} diff --git a/software/qsys_tutorial_test_bsp/HAL/src/alt_dcache_flush_no_writeback.c b/software/qsys_tutorial_test_bsp/HAL/src/alt_dcache_flush_no_writeback.c new file mode 100644 index 0000000..c65ca7d --- /dev/null +++ b/software/qsys_tutorial_test_bsp/HAL/src/alt_dcache_flush_no_writeback.c @@ -0,0 +1,88 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2007 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "nios2.h" +#include "system.h" + +#include "alt_types.h" +#include "sys/alt_cache.h" + +/* + * The INITDA instruction was added to Nios II in the 8.0 release. + * + * The INITDA instruction has one of the following possible behaviors + * depending on the processor configuration: + * 1) Flushes a line by address but does NOT write back dirty data. + * Occurs when a data cache is present that supports INITDA. + * The macro NIOS2_INITDA_SUPPORTED is defined in system.h. + * 2) Takes an unimplemented instruction exception. + * Occurs when a data cache is present that doesn't support INITDA. + * 3) Performs no operation + * Occurs when there is no data cache present. + * The macro NIOS2_DCACHE_SIZE is 0 in system.h. + */ + +#define ALT_FLUSH_DATA_NO_WRITEBACK(i) \ + __asm__ volatile ("initda (%0)" :: "r" (i)); + +/* + * alt_dcache_flush_no_writeback() is called to flush the data cache for a + * memory region of length "len" bytes, starting at address "start". + * + * Any dirty lines in the data cache are NOT written back to memory. + * Make sure you really want this behavior. If you aren't 100% sure, + * use the alt_dcache_flush() routine instead. + */ + +void alt_dcache_flush_no_writeback (void* start, alt_u32 len) +{ +#if defined(NIOS2_INITDA_SUPPORTED) + + char* i; + char* end = ((char*) start) + len; + + for (i = start; i < end; i+= NIOS2_DCACHE_LINE_SIZE) + { + ALT_FLUSH_DATA_NO_WRITEBACK(i); + } + + /* + * For an unaligned flush request, we've got one more line left. + * Note that this is dependent on NIOS2_DCACHE_LINE_SIZE to be a + * multiple of 2 (which it always is). + */ + + if (((alt_u32) start) & (NIOS2_DCACHE_LINE_SIZE - 1)) + { + ALT_FLUSH_DATA_NO_WRITEBACK(i); + } + +#endif /* NIOS2_INITDA_SUPPORTED */ +} diff --git a/software/qsys_tutorial_test_bsp/HAL/src/alt_dev.c b/software/qsys_tutorial_test_bsp/HAL/src/alt_dev.c new file mode 100644 index 0000000..ebc15e5 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/HAL/src/alt_dev.c @@ -0,0 +1,149 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include +#include +#include +#include + +#include "sys/alt_dev.h" +#include "priv/alt_file.h" + +#include "alt_types.h" + +#include "system.h" + +/* + * This file contains the data constructs used to control access to device and + * filesytems. + */ + +/* + * "alt_fs_list" is the head of a linked list of registered filesystems. It is + * initialised as an empty list. New entries can be added using the + * alt_fs_reg() function. + */ + +ALT_LLIST_HEAD(alt_fs_list); + + +/* + * "alt_dev_list" is the head of a linked list of registered devices. It is + * configured at startup to include a single device, "alt_dev_null". This + * device is discussed below. + */ + +extern alt_dev alt_dev_null; /* forward declaration */ + +alt_llist alt_dev_list = {&alt_dev_null.llist, &alt_dev_null.llist}; + +/* + * alt_dev_null_write() is the implementation of the write() function used + * by the alt_dev_null device. It simple discards all data passed to it, and + * indicates that the data has been successfully transmitted. + */ + +static int alt_dev_null_write (alt_fd* fd, const char* ptr, int len) +{ + return len; +} + +/* + * "alt_dev_null" is used to allow output to be redirected to nowhere. It is + * the only device registered before the call to alt_sys_init(). At startup + * stin, stdout & stderr are all directed towards this device so that library + * calls like printf() will be safe but inefectual. + */ + +alt_dev alt_dev_null = { + { + &alt_dev_list, + &alt_dev_list + }, + "/dev/null", + NULL, /* open */ + NULL, /* close */ + NULL, /* write */ + alt_dev_null_write, /* write */ + NULL, /* lseek */ + NULL, /* fstat */ + NULL /* ioctl */ + }; + +/* + * "alt_fd_list_lock" is a semaphore used to control access to the file + * descriptor list. This is used to ensure that access to the list is thread + * safe. + */ + +ALT_SEM(alt_fd_list_lock) + +/* + * "alt_max_fd" is used to make access to the file descriptor list more + * efficent. It is set to be the value of the highest allocated file + * descriptor. This saves having to search the entire pool of unallocated + * file descriptors when looking for a match. + */ + +alt_32 alt_max_fd = -1; + +/* + * "alt_fd_list" is the file descriptor pool. The first three entries in the + * array are configured as standard in, standard out, and standard error. These + * are all initialised so that accesses are directed to the alt_dev_null + * device. The remaining file descriptors are initialised as unallocated. + * + * The maximum number of file descriptors within the system is specified by the + * user defined macro "ALT_MAX_FD". This is defined in "system.h", which is + * auto-genereated using the projects PTF and STF files. + */ + +alt_fd alt_fd_list[ALT_MAX_FD] = + { + { + &alt_dev_null, /* standard in */ + 0, + 0 + }, + { + &alt_dev_null, /* standard out */ + 0, + 0 + }, + { + &alt_dev_null, /* standard error */ + 0, + 0 + } + /* all other elements are set to zero */ + }; diff --git a/software/qsys_tutorial_test_bsp/HAL/src/alt_dev_llist_insert.c b/software/qsys_tutorial_test_bsp/HAL/src/alt_dev_llist_insert.c new file mode 100644 index 0000000..fa7239d --- /dev/null +++ b/software/qsys_tutorial_test_bsp/HAL/src/alt_dev_llist_insert.c @@ -0,0 +1,59 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "priv/alt_dev_llist.h" +#include "sys/alt_errno.h" + +/* + * + */ + +int alt_dev_llist_insert (alt_dev_llist* dev, alt_llist* list) +{ + /* + * check that the device exists, and that it has a valid name. + */ + + if (!dev || !dev->name) + { + ALT_ERRNO = EINVAL; + return -EINVAL; + } + + /* + * register the device. + */ + + alt_llist_insert(list, &dev->llist); + + return 0; +} diff --git a/software/qsys_tutorial_test_bsp/HAL/src/alt_dma_rxchan_open.c b/software/qsys_tutorial_test_bsp/HAL/src/alt_dma_rxchan_open.c new file mode 100644 index 0000000..6ea3b78 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/HAL/src/alt_dma_rxchan_open.c @@ -0,0 +1,63 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_dma.h" +#include "sys/alt_errno.h" +#include "priv/alt_file.h" + +/* + * The list of registered DMA receive channels. + */ + +ALT_LLIST_HEAD(alt_dma_rxchan_list); + +/* + * alt_dma_txchan_open() is used to obtain an "alt_dma_txchan" descriptor for + * a DMA transmit device. The name is the name of the associated physical + * device (e.g. "/dev/dma_0"). + * + * The return value will be NULL on failure, and non-NULL otherwise. + */ + +alt_dma_rxchan alt_dma_rxchan_open (const char* name) +{ + alt_dma_rxchan dev; + + dev = (alt_dma_rxchan) alt_find_dev (name, &alt_dma_rxchan_list); + + if (!dev) + { + ALT_ERRNO = ENODEV; + } + + return dev; +} diff --git a/software/qsys_tutorial_test_bsp/HAL/src/alt_dma_txchan_open.c b/software/qsys_tutorial_test_bsp/HAL/src/alt_dma_txchan_open.c new file mode 100644 index 0000000..f41fa81 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/HAL/src/alt_dma_txchan_open.c @@ -0,0 +1,63 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_dma.h" +#include "sys/alt_errno.h" +#include "priv/alt_file.h" + +/* + * The list of registered receive channels. + */ + +ALT_LLIST_HEAD(alt_dma_txchan_list); + +/* + * alt_dma_txchan_open() is used to obtain an "alt_dma_txchan" descriptor for + * a DMA transmit device. The name is the name of the associated physical + * device (e.g. "/dev/dma_0"). + * + * The return value will be NULL on failure, and non-NULL otherwise. + */ + +alt_dma_txchan alt_dma_txchan_open (const char* name) +{ + alt_dma_txchan dev; + + dev = (alt_dma_txchan) alt_find_dev (name, &alt_dma_txchan_list); + + if (!dev) + { + ALT_ERRNO = ENODEV; + } + + return dev; +} diff --git a/software/qsys_tutorial_test_bsp/HAL/src/alt_do_ctors.c b/software/qsys_tutorial_test_bsp/HAL/src/alt_do_ctors.c new file mode 100644 index 0000000..ff5a1f7 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/HAL/src/alt_do_ctors.c @@ -0,0 +1,64 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT IT DIRECTLY. * +* * +* Overriding HAL Functions * +* * +* To provide your own implementation of a HAL function, include the file in * +* your Nios II IDE application project. When building the executable, the * +* Nios II IDE finds your function first, and uses it in place of the HAL * +* version. * +* * +******************************************************************************/ + +/* + * + */ + +typedef void (*constructor) (void); +extern constructor __CTOR_LIST__[]; +extern constructor __CTOR_END__[]; + +/* + * Run the C++ static constructors. + */ + +void _do_ctors(void) +{ + constructor* ctor; + + for (ctor = &__CTOR_END__[-1]; ctor >= __CTOR_LIST__; ctor--) + (*ctor) (); +} diff --git a/software/qsys_tutorial_test_bsp/HAL/src/alt_do_dtors.c b/software/qsys_tutorial_test_bsp/HAL/src/alt_do_dtors.c new file mode 100644 index 0000000..565c99f --- /dev/null +++ b/software/qsys_tutorial_test_bsp/HAL/src/alt_do_dtors.c @@ -0,0 +1,64 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT IT DIRECTLY. * +* * +* Overriding HAL Functions * +* * +* To provide your own implementation of a HAL function, include the file in * +* your Nios II IDE application project. When building the executable, the * +* Nios II IDE finds your function first, and uses it in place of the HAL * +* version. * +* * +******************************************************************************/ + +/* + * + */ + +typedef void (*destructor) (void); +extern destructor __DTOR_LIST__[]; +extern destructor __DTOR_END__[]; + +/* + * Run the C++ static destructors. + */ + +void _do_dtors(void) +{ + destructor* dtor; + + for (dtor = &__DTOR_END__[-1]; dtor >= __DTOR_LIST__; dtor--) + (*dtor) (); +} diff --git a/software/qsys_tutorial_test_bsp/HAL/src/alt_env_lock.c b/software/qsys_tutorial_test_bsp/HAL/src/alt_env_lock.c new file mode 100644 index 0000000..fc25a0c --- /dev/null +++ b/software/qsys_tutorial_test_bsp/HAL/src/alt_env_lock.c @@ -0,0 +1,53 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +/* + * These are the empty env lock/unlock stubs required by newlib. These are + * used to make accesses to environment variables thread safe. The default HAL + * configuration is single threaded, so there is nothing to do here. Note that + * this requires that environment variables are never manipulated by an interrupt + * service routine. + */ + +void __env_lock ( struct _reent *_r ) +{ +} + +/* + * + */ + +void __env_unlock ( struct _reent *_r ) +{ +} diff --git a/software/qsys_tutorial_test_bsp/HAL/src/alt_environ.c b/software/qsys_tutorial_test_bsp/HAL/src/alt_environ.c new file mode 100644 index 0000000..404efc4 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/HAL/src/alt_environ.c @@ -0,0 +1,42 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "os/alt_syscall.h" + +/* + * These are the environment variables passed to the C code. By default there + * are no variables registered. An application can manipulate this list using + * getenv() and setenv(). + */ + +char *__env[1] = { 0 }; +char **ALT_ENVIRON = __env; diff --git a/software/qsys_tutorial_test_bsp/HAL/src/alt_errno.c b/software/qsys_tutorial_test_bsp/HAL/src/alt_errno.c new file mode 100644 index 0000000..1d8368d --- /dev/null +++ b/software/qsys_tutorial_test_bsp/HAL/src/alt_errno.c @@ -0,0 +1,44 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/* + * This file defines the alt_errno global variable. See comments in + * alt_errno.h for the use of this variable. + */ + + +#include "sys/alt_errno.h" +#include "alt_types.h" + +extern int ALT_WEAK *__errno (void); + +int* (*alt_errno) (void) = __errno; diff --git a/software/qsys_tutorial_test_bsp/HAL/src/alt_exception_entry.S b/software/qsys_tutorial_test_bsp/HAL/src/alt_exception_entry.S new file mode 100644 index 0000000..3afab93 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/HAL/src/alt_exception_entry.S @@ -0,0 +1,360 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003-2008 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "system.h" + +/* + * This is the exception entry point code, which saves all the caller saved + * registers and then handles the appropriate exception. It should be pulled + * in using a .globl from all the exception handler routines. This scheme is + * used so that if an interrupt is never registered, then this code will not + * appear in the generated executable, thereby improving code footprint. + * + * If an external interrpt controller (EIC) is present, it will supply an + * interrupt vector address to the processor when an interrupt occurs. For + * The Altera Vectored Interrupt Controller (VIC) driver will establish a + * vector table and the processor will jump directly to the appropriate + * table entry, funnel routine, and then user ISR. This will bypass this code + * in entirety. This code might still be linked into a system with an EIC, + * but would then be used only for non-interrupt exceptions. + */ + + /* + * Explicitly allow the use of r1 (the assembler temporary register) + * within this code. This register is normally reserved for the use of + * the assembler. + */ + .set noat + + /* + * The top and bottom of the exception stack + */ +#ifdef ALT_EXCEPTION_STACK + + .globl __alt_exception_stack_pointer + +#ifdef ALT_STACK_CHECK + + .globl __alt_exception_stack_limit + + /* + * We need to store the value of the stack limit after interrupt somewhere. + */ + .globl alt_exception_old_stack_limit + +#endif +#endif + + .section .exceptions.entry.label, "xa" + + .globl alt_exception + .type alt_exception, @function +alt_exception: + + .section .exceptions.entry, "xa" + +#ifdef ALT_EXCEPTION_STACK + +#ifdef ALT_STACK_CHECK + stw et, %gprel(alt_exception_old_stack_limit)(gp) +#endif + + movhi et, %hiadj(__alt_exception_stack_pointer - 80) + addi et, et, %lo(__alt_exception_stack_pointer - 80) + stw sp, 76(et) + mov sp, et + +#ifdef ALT_STACK_CHECK + movhi et, %hiadj(__alt_exception_stack_limit) + addi et, et, %lo(__alt_exception_stack_limit) + stw et, %gprel(alt_stack_limit_value)(gp) +#endif + +#else + /* + * Process an exception. For all exceptions we must preserve all + * caller saved registers on the stack (See the Nios2 ABI + * documentation for details). + */ + + addi sp, sp, -76 + +#ifdef ALT_STACK_CHECK + + bltu sp, et, .Lstack_overflow + +#endif + +#endif + + stw ra, 0(sp) + + /* + * Leave a gap in the stack frame at 4(sp) for the muldiv handler to + * store zero into. + */ + + stw r1, 8(sp) + stw r2, 12(sp) + stw r3, 16(sp) + stw r4, 20(sp) + stw r5, 24(sp) + stw r6, 28(sp) + stw r7, 32(sp) + + rdctl r5, estatus + + stw r8, 36(sp) + stw r9, 40(sp) + stw r10, 44(sp) + stw r11, 48(sp) + stw r12, 52(sp) + stw r13, 56(sp) + stw r14, 60(sp) + stw r15, 64(sp) + + /* + * ea-4 contains the address of the instruction being executed + * when the exception occured. For interrupt exceptions, we will + * will be re-issue the isntruction. Store it in 72(sp) + */ + stw r5, 68(sp) /* estatus */ + addi r15, ea, -4 /* instruction that caused exception */ + stw r15, 72(sp) + + /* + * The interrupt testing code (.exceptions.irqtest) will be + * linked here. If the Internal Interrupt Controller (IIC) is + * present (an EIC is not present), the presense of an interrupt + * is determined by examining CPU control registers or an interrupt + * custom instruction, if present. + * + * If the IIC is used and an interrupt is active, the code linked + * here will call the HAL IRQ handler (alt_irq_handler()) which + * successively calls registered interrupt handler(s) until no + * interrupts remain pending. It then jumps to .exceptions.exit. If + * there is no interrupt then it continues to .exception.notirq, below. + */ + + .section .exceptions.notirq, "xa" + + /* + * Prepare to service unimplemtned instructions or traps, + * each of which is optionally inked into section .exceptions.soft, + * which will preceed .exceptions.unknown below. + * + * Unlike interrupts, we want to skip the exception-causing instructon + * upon completion, so we write ea (address of instruction *after* + * the one where the exception occured) into 72(sp). The actual + * instruction that caused the exception is written in r2, which these + * handlers will utilize. + */ + stw ea, 72(sp) /* Don't re-issue */ + ldw r2, -4(ea) /* Instruction that caused exception */ + + /* + * Other exception handling code, if enabled, will be linked here. + * This includes unimplemted (multiply/divide) instruction support + * (a BSP generaton option), and a trap handler (that would typically + * be augmented with user-specific code). These are not linked in by + * default. + */ + + /* + * In the context of linker sections, "unknown" are all exceptions + * not handled by the built-in handlers above (interupt, and trap or + * unimplemented instruction decoding, if enabled). + * + * Advanced exception types can be serviced by registering a handler. + * To do so, enable the "Enable Instruction-related Exception API" HAL + * BSP setting. If this setting is disabled, this handler code will + * either break (if the debug core is present) or enter an infinite + * loop because we don't how how to handle the exception. + */ + .section .exceptions.unknown +#ifdef ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API + /* + * The C-based HAL routine alt_instruction_exception_entry() will + * attempt to service the exception by calling a user-registered + * exception handler using alt_instruction_exception_register(). + * If no handler was registered it will either break (if the + * debugger is present) or go into an infinite loop since the + * handling behavior is undefined; in that case we will not return here. + */ + + /* Load exception-causing address as first argument (r4) */ + addi r4, ea, -4 + + /* Call the instruction-exception entry */ + call alt_instruction_exception_entry + + /* + * If alt_instruction_exception_entry() returned, the exception was + * serviced by a user-registered routine. Its return code (now in r2) + * indicates whether to re-issue or skip the exception-causing + * instruction + * + * Return code was 0: Skip. The instruction after the exception is + * already stored in 72(sp). + */ + bne r2, r0, .Lexception_exit + + /* + * Otherwise, modify 72(sp) to re-issue the instruction that caused the + * exception. + */ + addi r15, ea, -4 /* instruction that caused exception */ + stw r15, 72(sp) + +#else /* ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API disabled */ + + /* + * We got here because an instruction-related exception occured, but the + * handler API was not compiled in. We do not presume to know how to + * handle it. If the debugger is present, break, otherwise hang. + * + * If you get here then one of the following could have happened: + * + * - An instruction-generated exception occured, and the processor + * does not have the extra exceptions feature enabled, or you + * have not registered a handler using + * alt_instruction_exception_register() + * + * Some examples of instruction-generated exceptions and why they + * might occur: + * + * - Your program could have been compiled for a full-featured + * Nios II core, but it is running on a smaller core, and + * instruction emulation has been disabled by defining + * ALT_NO_INSTRUCTION_EMULATION. + * + * You can work around the problem by re-enabling instruction + * emulation, or you can figure out why your program is being + * compiled for a system other than the one that it is running on. + * + * - Your program has executed a trap instruction, but has not + * implemented a handler for this instruction. + * + * - Your program has executed an illegal instruction (one which is + * not defined in the instruction set). + * + * - Your processor includes an MMU or MPU, and you have enabled it + * before registering an exception handler to service exceptions it + * generates. + * + * The problem could also be hardware related: + * - If your hardware is broken and is generating spurious interrupts + * (a peripheral which negates its interrupt output before its + * interrupt handler has been executed will cause spurious + * interrupts) + */ +#ifdef NIOS2_HAS_DEBUG_STUB + /* + * Either tell the user now (if there is a debugger attached) or go into + * the debug monitor which will loop until a debugger is attached. + */ + break +#else + /* + * If there is no debug stub then a BREAK will probably cause a reboot. + * An infinate loop will probably be more useful. + */ +0: + br 0b +#endif /* NIOS2_HAS_DEBUG_STUB */ + +#endif /* ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API */ + + .section .exceptions.exit.label +.Lexception_exit: + + .section .exceptions.exit, "xa" + + /* + * Restore the saved registers, so that all general purpose registers + * have been restored to their state at the time the interrupt occured. + */ + + ldw r5, 68(sp) + ldw ea, 72(sp) /* This becomes the PC once eret is executed */ + ldw ra, 0(sp) + + wrctl estatus, r5 + + ldw r1, 8(sp) + ldw r2, 12(sp) + ldw r3, 16(sp) + ldw r4, 20(sp) + ldw r5, 24(sp) + ldw r6, 28(sp) + ldw r7, 32(sp) + +#ifdef ALT_EXCEPTION_STACK +#ifdef ALT_STACK_CHECK + ldw et, %gprel(alt_exception_old_stack_limit)(gp) +#endif +#endif + + ldw r8, 36(sp) + ldw r9, 40(sp) + ldw r10, 44(sp) + ldw r11, 48(sp) + ldw r12, 52(sp) + ldw r13, 56(sp) + ldw r14, 60(sp) + ldw r15, 64(sp) + +#ifdef ALT_EXCEPTION_STACK + +#ifdef ALT_STACK_CHECK + stw et, %gprel(alt_stack_limit_value)(gp) + stw zero, %gprel(alt_exception_old_stack_limit)(gp) +#endif + + ldw sp, 76(sp) + +#else + addi sp, sp, 76 + +#endif + + /* + * Return to the interrupted instruction. + */ + + eret + +#ifdef ALT_STACK_CHECK + +.Lstack_overflow: + break 3 + +#endif + diff --git a/software/qsys_tutorial_test_bsp/HAL/src/alt_exception_muldiv.S b/software/qsys_tutorial_test_bsp/HAL/src/alt_exception_muldiv.S new file mode 100644 index 0000000..55617a6 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/HAL/src/alt_exception_muldiv.S @@ -0,0 +1,583 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003-2005 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + + /* + * This is the software multiply/divide handler for Nios2. + */ + + /* + * Provide a label which can be used to pull this file in. + */ + + .section .exceptions.start + .globl alt_exception_muldiv +alt_exception_muldiv: + + /* + * Pull in the entry/exit code. + */ + .globl alt_exception + + + .section .exceptions.soft, "xa" + + + /* INSTRUCTION EMULATION + * --------------------- + * + * Nios II processors generate exceptions for unimplemented instructions. + * The routines below emulate these instructions. Depending on the + * processor core, the only instructions that might need to be emulated + * are div, divu, mul, muli, mulxss, mulxsu, and mulxuu. + * + * The emulations match the instructions, except for the following + * limitations: + * + * 1) The emulation routines do not emulate the use of the exception + * temporary register (et) as a source operand because the exception + * handler already has modified it. + * + * 2) The routines do not emulate the use of the stack pointer (sp) or the + * exception return address register (ea) as a destination because + * modifying these registers crashes the exception handler or the + * interrupted routine. + * + * 3) To save code size, the routines do not emulate the use of the + * breakpoint registers (ba and bt) as operands. + * + * Detailed Design + * --------------- + * + * The emulation routines expect the contents of integer registers r0-r31 + * to be on the stack at addresses sp, 4(sp), 8(sp), ... 124(sp). The + * routines retrieve source operands from the stack and modify the + * destination register's value on the stack prior to the end of the + * exception handler. Then all registers except the destination register + * are restored to their previous values. + * + * The instruction that causes the exception is found at address -4(ea). + * The instruction's OP and OPX fields identify the operation to be + * performed. + * + * One instruction, muli, is an I-type instruction that is identified by + * an OP field of 0x24. + * + * muli AAAAA,BBBBB,IIIIIIIIIIIIIIII,-0x24- + * 27 22 6 0 <-- LSB of field + * + * The remaining emulated instructions are R-type and have an OP field + * of 0x3a. Their OPX fields identify them. + * + * R-type AAAAA,BBBBB,CCCCC,XXXXXX,NNNNN,-0x3a- + * 27 22 17 11 6 0 <-- LSB of field + * + * + */ + + + /* + * Split the instruction into its fields. We need 4*A, 4*B, and 4*C as + * offsets to the stack pointer for access to the stored register values. + */ + /* r2 = AAAAA,BBBBB,IIIIIIIIIIIIIIII,PPPPPP */ + roli r3, r2, 7 /* r3 = BBB,IIIIIIIIIIIIIIII,PPPPPP,AAAAA,BB */ + roli r4, r3, 3 /* r4 = IIIIIIIIIIIIIIII,PPPPPP,AAAAA,BBBBB */ + roli r6, r4, 2 /* r6 = IIIIIIIIIIIIII,PPPPPP,AAAAA,BBBBB,II */ + srai r4, r4, 16 /* r4 = (sign-extended) IMM16 */ + xori r6, r6, 0x42 /* r6 = CCC,XXXXXX,NNNNN,PPPPPP,AAAAA,bBBBB,cC */ + roli r7, r6, 5 /* r7 = XXXX,NNNNN,PPPPPP,AAAAA,bBBBB,cCCCC,XX */ + andi r5, r2, 0x3f /* r5 = 00000000000000000000000000,PPPPPP */ + xori r3, r3, 0x40 + andi r3, r3, 0x7c /* r3 = 0000000000000000000000000,aAAAA,00 */ + andi r6, r6, 0x7c /* r6 = 0000000000000000000000000,bBBBB,00 */ + andi r7, r7, 0x7c /* r7 = 0000000000000000000000000,cCCCC,00 */ + + /* Now either + * r5 = OP + * r3 = 4*(A^16) + * r4 = IMM16 (sign extended) + * r6 = 4*(B^16) + * r7 = 4*(C^16) + * or + * r5 = OP + */ + + + /* + * Save everything on the stack to make it easy for the emulation routines + * to retrieve the source register operands. The exception entry code has + * already saved some of this so we don't need to do it all again. + */ + + addi sp, sp, -60 + stw zero, 64(sp) /* Save zero on stack to avoid special case for r0. */ + /* Register at and r2-r15 have already been saved. */ + + stw r16, 0(sp) + stw r17, 4(sp) + stw r18, 8(sp) + stw r19, 12(sp) + stw r20, 16(sp) + stw r21, 20(sp) + stw r22, 24(sp) + stw r23, 28(sp) + /* et @ 32 - Has already been changed.*/ + /* bt @ 36 - Usually isn't an operand. */ + stw gp, 40(sp) + stw sp, 44(sp) + stw fp, 48(sp) + /* ea @ 52 - Don't bother to save - it's already been changed */ + /* ba @ 56 - Breakpoint register usually isn't an operand */ + /* ra @ 60 - Has already been saved */ + + + /* + * Prepare for either multiplication or division loop. + * They both loop 32 times. + */ + movi r14, 32 + + + /* + * Get the operands. + * + * It is necessary to check for muli because it uses an I-type instruction + * format, while the other instructions are have an R-type format. + */ + add r3, r3, sp /* r3 = address of A-operand. */ + ldw r3, 0(r3) /* r3 = A-operand. */ + movi r15, 0x24 /* muli opcode (I-type instruction format) */ + beq r5, r15, .Lmul_immed /* muli doesn't use the B register as a source */ + + add r6, r6, sp /* r6 = address of B-operand. */ + ldw r6, 0(r6) /* r6 = B-operand. */ + /* r4 = SSSSSSSSSSSSSSSS,-----IMM16------ */ + /* IMM16 not needed, align OPX portion */ + /* r4 = SSSSSSSSSSSSSSSS,CCCCC,-OPX--,00000 */ + srli r4, r4, 5 /* r4 = 00000,SSSSSSSSSSSSSSSS,CCCCC,-OPX-- */ + andi r4, r4, 0x3f /* r4 = 00000000000000000000000000,-OPX-- */ + + /* Now + * r5 = OP + * r3 = src1 + * r6 = src2 + * r4 = OPX (no longer can be muli) + * r7 = 4*(C^16) + * r14 = loop counter + */ + + /* ILLEGAL-INSTRUCTION EXCEPTION + * ----------------------------- + * + * This code is for Nios II cores that generate exceptions when attempting + * to execute illegal instructions. Nios II cores that support an + * illegal-instruction exception are identified by the presence of the + * macro definition NIOS2_HAS_ILLEGAL_INSTRUCTION_EXCEPTION in system.h . + * + * Remember that illegal instructions are different than unimplemented + * instructions. Illegal instructions are instruction encodings that + * have not been defined by the Nios II ISA. Unimplemented instructions + * are legal instructions that must be emulated by some Nios II cores. + * + * If we get here, all instructions except multiplies and divides + * are illegal. + * + * This code assumes that OP is not muli (because muli was tested above). + * All other multiplies and divides are legal. Anything else is illegal. + */ + + movi r8, 0x3a /* OP for R-type mul* and div* */ + bne r5, r8, .Lnot_muldiv + + /* r15 already is 0x24 */ /* OPX of divu */ + beq r4, r15, .Ldivide + + movi r15,0x27 /* OPX of mul */ + beq r4, r15, .Lmultiply + + movi r15,0x07 /* OPX of mulxuu */ + beq r4, r15, .Lmultiply + + movi r15,0x17 /* OPX of mulxsu */ + beq r4, r15, .Lmultiply + + movi r15,0x1f /* OPX of mulxss */ + beq r4, r15, .Lmultiply + + movi r15,0x25 /* OPX of div */ + bne r4, r15, .Lnot_muldiv + + + /* DIVISION + * + * Divide an unsigned dividend by an unsigned divisor using + * a shift-and-subtract algorithm. The example below shows + * 43 div 7 = 6 for 8-bit integers. This classic algorithm uses a + * single register to store both the dividend and the quotient, + * allowing both values to be shifted with a single instruction. + * + * remainder dividend:quotient + * --------- ----------------- + * initialize 00000000 00101011: + * shift 00000000 0101011:_ + * remainder >= divisor? no 00000000 0101011:0 + * shift 00000000 101011:0_ + * remainder >= divisor? no 00000000 101011:00 + * shift 00000001 01011:00_ + * remainder >= divisor? no 00000001 01011:000 + * shift 00000010 1011:000_ + * remainder >= divisor? no 00000010 1011:0000 + * shift 00000101 011:0000_ + * remainder >= divisor? no 00000101 011:00000 + * shift 00001010 11:00000_ + * remainder >= divisor? yes 00001010 11:000001 + * remainder -= divisor - 00000111 + * ---------- + * 00000011 11:000001 + * shift 00000111 1:000001_ + * remainder >= divisor? yes 00000111 1:0000011 + * remainder -= divisor - 00000111 + * ---------- + * 00000000 1:0000011 + * shift 00000001 :0000011_ + * remainder >= divisor? no 00000001 :00000110 + * + * The quotient is 00000110. + */ + +.Ldivide: + /* + * Prepare for division by assuming the result + * is unsigned, and storing its "sign" as 0. + */ + movi r17, 0 + + + /* Which division opcode? */ + xori r15, r4, 0x25 /* OPX of div */ + bne r15, zero, .Lunsigned_division + + + /* + * OPX is div. Determine and store the sign of the quotient. + * Then take the absolute value of both operands. + */ + xor r17, r3, r6 /* MSB contains sign of quotient */ + bge r3, zero, 0f + sub r3, zero, r3 /* -r3 */ +0: + bge r6, zero, 0f + sub r6, zero, r6 /* -r6 */ +0: + + +.Lunsigned_division: + /* Initialize the unsigned-division loop. */ + movi r13, 0 /* remainder = 0 */ + + /* Now + * r3 = dividend : quotient + * r4 = 0x25 for div, 0x24 for divu + * r6 = divisor + * r13 = remainder + * r14 = loop counter (already initialized to 32) + * r17 = MSB contains sign of quotient + */ + + + /* + * for (count = 32; count > 0; --count) + * { + */ +.Ldivide_loop: + + /* + * Division: + * + * (remainder:dividend:quotient) <<= 1; + */ + slli r13, r13, 1 + cmplt r15, r3, zero /* r15 = MSB of r3 */ + or r13, r13, r15 + slli r3, r3, 1 + + + /* + * if (remainder >= divisor) + * { + * set LSB of quotient + * remainder -= divisor; + * } + */ + bltu r13, r6, .Ldiv_skip + ori r3, r3, 1 + sub r13, r13, r6 +.Ldiv_skip: + + /* + * } + */ + subi r14, r14, 1 + bne r14, zero, .Ldivide_loop + + mov r9, r3 + + + /* Now + * r9 = quotient + * r4 = 0x25 for div, 0x24 for divu + * r7 = 4*(C^16) + * r17 = MSB contains sign of quotient + */ + + + /* + * Conditionally negate signed quotient. If quotient is unsigned, + * the sign already is initialized to 0. + */ + bge r17, zero, .Lstore_result + sub r9, zero, r9 /* -r9 */ + + br .Lstore_result + + + + + /* MULTIPLICATION + * + * A "product" is the number that one gets by summing a "multiplicand" + * several times. The "multiplier" specifies the number of copies of the + * multiplicand that are summed. + * + * Actual multiplication algorithms don't use repeated addition, however. + * Shift-and-add algorithms get the same answer as repeated addition, and + * they are faster. To compute the lower half of a product (pppp below) + * one shifts the product left before adding in each of the partial products + * (a * mmmm) through (d * mmmm). + * + * To compute the upper half of a product (PPPP below), one adds in the + * partial products (d * mmmm) through (a * mmmm), each time following the + * add by a right shift of the product. + * + * mmmm + * * abcd + * ------ + * #### = d * mmmm + * #### = c * mmmm + * #### = b * mmmm + * #### = a * mmmm + * -------- + * PPPPpppp + * + * The example above shows 4 partial products. Computing actual Nios II + * products requires 32 partials. + * + * It is possible to compute the result of mulxsu from the result of mulxuu + * because the only difference between the results of these two opcodes is + * the value of the partial product associated with the sign bit of rA. + * + * mulxsu = mulxuu - ((rA < 0) ? rB : 0); + * + * It is possible to compute the result of mulxss from the result of mulxsu + * because the only difference between the results of these two opcodes is + * the value of the partial product associated with the sign bit of rB. + * + * mulxss = mulxsu - ((rB < 0) ? rA : 0); + * + */ + +.Lmul_immed: + /* Opcode is muli. Change it into mul for remainder of algorithm. */ + mov r7, r6 /* Field B is dest register, not field C. */ + mov r6, r4 /* Field IMM16 is src2, not field B. */ + movi r4, 0x27 /* OPX of mul is 0x27 */ + +.Lmultiply: + /* Initialize the multiplication loop. */ + movi r9, 0 /* mul_product = 0 */ + movi r10, 0 /* mulxuu_product = 0 */ + mov r11, r6 /* save original multiplier for mulxsu and mulxss */ + mov r12, r6 /* mulxuu_multiplier (will be shifted) */ + movi r16, 1 /* used to create "rori B,A,1" from "ror B,A,r16" */ + + /* Now + * r3 = multiplicand + * r6 = mul_multiplier + * r7 = 4 * dest_register (used later as offset to sp) + * r9 = mul_product + * r10 = mulxuu_product + * r11 = original multiplier + * r12 = mulxuu_multiplier + * r14 = loop counter (already initialized) + * r15 = temp + * r16 = 1 + */ + + + /* + * for (count = 32; count > 0; --count) + * { + */ +.Lmultiply_loop: + + /* + * mul_product <<= 1; + * lsb = multiplier & 1; + */ + slli r9, r9, 1 + andi r15, r12, 1 + + /* + * if (lsb == 1) + * { + * mulxuu_product += multiplicand; + * } + */ + beq r15, zero, .Lmulx_skip + add r10, r10, r3 + cmpltu r15, r10, r3 /* Save the carry from the MSB of mulxuu_product. */ + ror r15, r15, r16 /* r15 = 0x80000000 on carry, or else 0x00000000 */ +.Lmulx_skip: + + /* + * if (MSB of mul_multiplier == 1) + * { + * mul_product += multiplicand; + * } + */ + bge r6, zero, .Lmul_skip + add r9, r9, r3 +.Lmul_skip: + + /* + * mulxuu_product >>= 1; logical shift + * mul_multiplier <<= 1; done with MSB + * mulx_multiplier >>= 1; done with LSB + */ + srli r10, r10, 1 + or r10, r10, r15 /* OR in the saved carry bit. */ + slli r6, r6, 1 + srli r12, r12, 1 + + + /* + * } + */ + subi r14, r14, 1 + bne r14, zero, .Lmultiply_loop + + + /* + * Multiply emulation loop done. + */ + + /* Now + * r3 = multiplicand + * r4 = OPX + * r7 = 4 * dest_register (used later as offset to sp) + * r9 = mul_product + * r10 = mulxuu_product + * r11 = original multiplier + * r15 = temp + */ + + + /* + * Select/compute the result based on OPX. + */ + + + /* OPX == mul? Then store. */ + xori r15, r4, 0x27 + beq r15, zero, .Lstore_result + + /* It's one of the mulx.. opcodes. Move over the result. */ + mov r9, r10 + + /* OPX == mulxuu? Then store. */ + xori r15, r4, 0x07 + beq r15, zero, .Lstore_result + + /* Compute mulxsu + * + * mulxsu = mulxuu - ((rA < 0) ? rB : 0); + */ + bge r3, zero, .Lmulxsu_skip + sub r9, r9, r11 +.Lmulxsu_skip: + + /* OPX == mulxsu? Then store. */ + xori r15, r4, 0x17 + beq r15, zero, .Lstore_result + + /* Compute mulxss + * + * mulxss = mulxsu - ((rB < 0) ? rA : 0); + */ + bge r11, zero, .Lmulxss_skip + sub r9, r9, r3 +.Lmulxss_skip: + /* At this point, assume that OPX is mulxss, so store */ + + +.Lstore_result: + add r7, r7, sp + stw r9, 0(r7) + + ldw r16, 0(sp) + ldw r17, 4(sp) + ldw r18, 8(sp) + ldw r19, 12(sp) + ldw r20, 16(sp) + ldw r21, 20(sp) + ldw r22, 24(sp) + ldw r23, 28(sp) + + /* bt @ 32 - Breakpoint register usually isn't an operand. */ + /* et @ 36 - Don't corrupt et. */ + /* gp @ 40 - Don't corrupt gp. */ + /* sp @ 44 - Don't corrupt sp. */ + ldw fp, 48(sp) + /* ea @ 52 - Don't corrupt ea. */ + /* ba @ 56 - Breakpoint register usually isn't an operand. */ + + addi sp, sp, 60 + + br .Lexception_exit + + +.Lnot_muldiv: + + addi sp, sp, 60 + + + .section .exceptions.exit.label +.Lexception_exit: + diff --git a/software/qsys_tutorial_test_bsp/HAL/src/alt_exception_trap.S b/software/qsys_tutorial_test_bsp/HAL/src/alt_exception_trap.S new file mode 100644 index 0000000..60a3d40 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/HAL/src/alt_exception_trap.S @@ -0,0 +1,81 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003-2005 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + + /* + * This is the trap exception handler for Nios2. + */ + + /* + * Provide a label which can be used to pull this file in. + */ + + .section .exceptions.start + .globl alt_exception_trap +alt_exception_trap: + + /* + * Pull in the entry/exit code. + */ + .globl alt_exception + + .section .exceptions.soft, "xa" + +.Ltrap_handler: + + /* + * Did a trap instruction cause the exception? + * + * The instruction which the exception occurred on has been loaded + * into r2 by code in alt_exception_entry.S + * + */ + + movhi r3,0x003b /* upper half of trap opcode */ + ori r3,r3,0x683a /* lower half of trap opcode */ + bne r2,r3,.Lnot_trap + + /* + * There is no trap handler defined here, and so executing a trap + * instruction causes a software break. If you provide a trap handler, + * then you must replace the break instruction below with your handler. + * Your handler must preserve ea and the usual callee saved registers. + */ + + break + + br .Lexception_exit + +.Lnot_trap: + + + .section .exceptions.exit.label +.Lexception_exit: + + diff --git a/software/qsys_tutorial_test_bsp/HAL/src/alt_execve.c b/software/qsys_tutorial_test_bsp/HAL/src/alt_execve.c new file mode 100644 index 0000000..27b99cf --- /dev/null +++ b/software/qsys_tutorial_test_bsp/HAL/src/alt_execve.c @@ -0,0 +1,55 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_errno.h" +#include "sys/alt_warning.h" +#include "os/alt_syscall.h" + +/* + * execve() is used by newlib to launch new processes. This is unsupported in + * the HAL environment. However a "do-nothing" implementation is still + * provied for newlib compatability. + * + * ALT_EXECVE is mapped onto the execve() system call in alt_syscall.h + */ + +int ALT_EXECVE (char *name, char ** argv, char** env) +{ + /* Generate a link time warning, should this function ever be called. */ + + ALT_STUB_WARNING(execve); + + /* Indicate an error */ + + ALT_ERRNO = ENOSYS; + return -1; +} diff --git a/software/qsys_tutorial_test_bsp/HAL/src/alt_exit.c b/software/qsys_tutorial_test_bsp/HAL/src/alt_exit.c new file mode 100644 index 0000000..971b35e --- /dev/null +++ b/software/qsys_tutorial_test_bsp/HAL/src/alt_exit.c @@ -0,0 +1,71 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_irq.h" +#include "sys/alt_sim.h" +#include "os/alt_hooks.h" +#include "os/alt_syscall.h" + +#include "alt_types.h" +#include "sys/alt_log_printf.h" +/* + * _exit() is called by exit() in order to terminate the current process. + * Typically this is called when main() completes. It should never return. + * Since there is nowhere to go once this process completes, this + * implementation simply blocks forever. + * + * Note that interrupts are not disabled so that execution outside of this + * thread is allowed to continue. + * + * ALT_EXIT is mapped onto the _exit() system call in alt_syscall.h + */ + +void ALT_EXIT (int exit_code) +{ + /* ALT_LOG - please see HAL/inc/alt_log_printf.h for details */ + ALT_LOG_PRINT_BOOT("[alt_exit.c] Entering _exit() function.\r\n"); + ALT_LOG_PRINT_BOOT("[alt_exit.c] Exit code from main was %d.\r\n",exit_code); + /* Stop all other threads */ + + ALT_LOG_PRINT_BOOT("[alt_exit.c] Calling ALT_OS_STOP().\r\n"); + ALT_OS_STOP(); + + /* Provide notification to the simulator that we've stopped */ + + ALT_LOG_PRINT_BOOT("[alt_exit.c] Calling ALT_SIM_HALT().\r\n"); + ALT_SIM_HALT(exit_code); + + /* spin forever, since there's no where to go back to */ + + ALT_LOG_PRINT_BOOT("[alt_exit.c] Spinning forever.\r\n"); + while (1); +} diff --git a/software/qsys_tutorial_test_bsp/HAL/src/alt_fcntl.c b/software/qsys_tutorial_test_bsp/HAL/src/alt_fcntl.c new file mode 100644 index 0000000..69c1544 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/HAL/src/alt_fcntl.c @@ -0,0 +1,101 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include + +#include +#include + +#include "sys/alt_errno.h" +#include "priv/alt_file.h" +#include "alt_types.h" +#include "os/alt_syscall.h" + +#define ALT_FCNTL_FLAGS_MASK ((alt_u32) (O_APPEND | O_NONBLOCK)) + +/* + * fcntl() is a limited implementation of the standard fcntl() system call. + * It can be used to change the state of the flags associated with an open + * file descriptor. Normally these flags are set during the call to + * open(). It is anticipated that the main use of this function will be to + * change the state of a device from blocking to non-blocking (where this is + * supported). + * + * The input argument "fd" is the file descriptor to be manipulated. "cmd" + * is the command to execute. This can be either F_GETFL (return the + * current value of the flags) or F_SETFL (set the value of the flags). + * + * If "cmd" is F_SETFL then the argument "arg" is the new value of flags, + * otherwise "arg" is ignored. Only the flags: O_APPEND and O_NONBLOCK + * can be updated by a call to fcntl(). All other flags remain + * unchanged. + * + * ALT_FCNTL is mapped onto the fcntl() system call in alt_syscall.h + */ + +int ALT_FCNTL (int file, int cmd, ...) +{ + alt_fd* fd; + long flags; + va_list argp; + + /* + * A common error case is that when the file descriptor was created, the call + * to open() failed resulting in a negative file descriptor. This is trapped + * below so that we don't try and process an invalid file descriptor. + */ + + fd = (file < 0) ? NULL : &alt_fd_list[file]; + + if (fd) + { + switch (cmd) + { + case F_GETFL: + return fd->fd_flags & ~((alt_u32) ALT_FD_FLAGS_MASK); + case F_SETFL: + va_start(argp, cmd); + flags = va_arg(argp, long); + fd->fd_flags &= ~ALT_FCNTL_FLAGS_MASK; + fd->fd_flags |= (flags & ALT_FCNTL_FLAGS_MASK); + va_end(argp); + return 0; + default: + ALT_ERRNO = EINVAL; + return -1; + } + } + + ALT_ERRNO = EBADFD; + return -1; +} diff --git a/software/qsys_tutorial_test_bsp/HAL/src/alt_fd_lock.c b/software/qsys_tutorial_test_bsp/HAL/src/alt_fd_lock.c new file mode 100644 index 0000000..0e2a85d --- /dev/null +++ b/software/qsys_tutorial_test_bsp/HAL/src/alt_fd_lock.c @@ -0,0 +1,75 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +#include "priv/alt_file.h" + +/* + * alt_fd_lock() is called as a consequence of an ioctl call to gain exclusive + * access to a device, i.e.: + * + * ioctl (fd, TIOCEXCL, NULL); + * + * If there are no other open file descriptors which reference the same + * device, then alt_fd_lock() will grant the lock. Further calls to open() + * for this device will fail until the lock is released. + * + * This is done by calling close() for this file descriptor, or by calling: + * + * ioctl (fd, TIOCNXCL, NULL); + * + * The return value is zero for success, or negative in the case of failure. + */ + +int alt_fd_lock (alt_fd* fd) +{ + int i; + int rc = 0; + + ALT_SEM_PEND(alt_fd_list_lock, 0); + + for (i = 0; i < alt_max_fd; i++) + { + if ((&alt_fd_list[i] != fd) && (alt_fd_list[i].dev == fd->dev)) + { + rc = -EACCES; + goto alt_fd_lock_exit; + } + } + fd->fd_flags |= ALT_FD_EXCL; + + alt_fd_lock_exit: + + ALT_SEM_POST(alt_fd_list_lock); + return rc; +} diff --git a/software/qsys_tutorial_test_bsp/HAL/src/alt_fd_unlock.c b/software/qsys_tutorial_test_bsp/HAL/src/alt_fd_unlock.c new file mode 100644 index 0000000..fb700dc --- /dev/null +++ b/software/qsys_tutorial_test_bsp/HAL/src/alt_fd_unlock.c @@ -0,0 +1,56 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +#include "priv/alt_file.h" + +/* + * alt_fd_unlock() is the inverse of alt_fd_lock(). It is called as a + * consequence of a TIOCNXCL ioctl request, e.g: + * + * ioctl (fd, TIOCNXCL, NULL); + * + * It enables multiple file descriptors to exist for the same device. This + * is normally the case, but it may have been disabled by a previous call to + * alt_fd_lock(). + * + * Return zero on sucess, and a negative value on failure. + * + * The current implementation always succeeds. + */ + +int alt_fd_unlock (alt_fd* fd) +{ + fd->fd_flags &= ~ALT_FD_EXCL; + return 0; +} diff --git a/software/qsys_tutorial_test_bsp/HAL/src/alt_find_dev.c b/software/qsys_tutorial_test_bsp/HAL/src/alt_find_dev.c new file mode 100644 index 0000000..37aefa4 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/HAL/src/alt_find_dev.c @@ -0,0 +1,88 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include +#include + +#include "sys/alt_dev.h" +#include "priv/alt_file.h" + +#include "alt_types.h" + +/* + * alt_find_dev() is used by open() in order to locate a previously registered + * device with the name "name". The input argument "llist" is a pointer to the + * head of the device list to search. + * + * The return value is a pointer to the matching device, or NULL if there is + * no match. + * + * "name" must be an exact match for the devices registered name for a match to + * be found. + */ + +alt_dev* alt_find_dev(const char* name, alt_llist* llist) +{ + alt_dev* next = (alt_dev*) llist->next; + alt_32 len; + + len = strlen(name) + 1; + + /* + * Check each list entry in turn, until a match is found, or we reach the + * end of the list (i.e. next winds up pointing back to the list head). + */ + + while (next != (alt_dev*) llist) + { + + /* + * memcmp() is used here rather than strcmp() in order to reduce the size + * of the executable. + */ + + if (!memcmp (next->name, name, len)) + { + /* match found */ + + return next; + } + next = (alt_dev*) next->llist.next; + } + + /* No match found */ + + return NULL; +} + + diff --git a/software/qsys_tutorial_test_bsp/HAL/src/alt_find_file.c b/software/qsys_tutorial_test_bsp/HAL/src/alt_find_file.c new file mode 100644 index 0000000..2d97ec2 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/HAL/src/alt_find_file.c @@ -0,0 +1,89 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include +#include + +#include "sys/alt_dev.h" +#include "priv/alt_file.h" + +#include "alt_types.h" + +/* + * alt_find_file() is used by open() in order to locate a previously registered + * filesystem that owns that mount point that contains the file named "name". + * + * The return value is a pointer to the matching filesystem, or NULL if there is + * no match. + * + * A match is considered to have been found if the filesystem name followed by + * either '/' or '\0' is the prefix of the filename. For example the filename: + * "/myfilesystem/junk.txt" would match: "/myfilesystem", but not: "/myfile". + */ + +alt_dev* alt_find_file (const char* name) +{ + alt_dev* next = (alt_dev*) alt_fs_list.next; + + alt_32 len; + + /* + * Check each list entry in turn, until a match is found, or we reach the + * end of the list (i.e. next winds up pointing back to the list head). + */ + + while (next != (alt_dev*) &alt_fs_list) + { + len = strlen(next->name); + + if (next->name[len-1] == '/') + { + len -= 1; + } + + if (((name[len] == '/') || (name[len] == '\0')) && + !memcmp (next->name, name, len)) + { + /* match found */ + + return next; + } + next = (alt_dev*) next->llist.next; + } + + /* No match found */ + + return NULL; +} + + diff --git a/software/qsys_tutorial_test_bsp/HAL/src/alt_flash_dev.c b/software/qsys_tutorial_test_bsp/HAL/src/alt_flash_dev.c new file mode 100644 index 0000000..213f721 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/HAL/src/alt_flash_dev.c @@ -0,0 +1,69 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* Alt_flash.c - Functions to register a flash device to the "generic" flash * +* interface * +* * +* Author PRR * +* * +******************************************************************************/ + +#include +#include "sys/alt_llist.h" +#include "sys/alt_flash_dev.h" +#include "priv/alt_file.h" + +ALT_LLIST_HEAD(alt_flash_dev_list); + +alt_flash_fd* alt_flash_open_dev(const char* name) +{ + alt_flash_dev* dev = (alt_flash_dev*)alt_find_dev(name, &alt_flash_dev_list); + + if ((dev) && dev->open) + { + return dev->open(dev, name); + } + + return dev; +} + +void alt_flash_close_dev(alt_flash_fd* fd) +{ + if (fd && fd->close) + { + fd->close(fd); + } + return; +} + diff --git a/software/qsys_tutorial_test_bsp/HAL/src/alt_fork.c b/software/qsys_tutorial_test_bsp/HAL/src/alt_fork.c new file mode 100644 index 0000000..ce74df0 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/HAL/src/alt_fork.c @@ -0,0 +1,57 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_warning.h" +#include "sys/alt_errno.h" +#include "os/alt_syscall.h" + +/* + * The fork() system call is used by newlib to create a duplicate copy of the + * curent process. This is unsupported in the HAL environment. However a + * "do-nothing" implementation is still provied for newlib compatability. + * + * ALT_FORK is mapped onto the fork() system call in alt_syscall.h + */ + +int ALT_FORK (void) +{ + /* Generate a link time warning, should this function ever be called. */ + + ALT_STUB_WARNING(fork); + + /* Indicate an error */ + + ALT_ERRNO = ENOSYS; + return -1; +} + + diff --git a/software/qsys_tutorial_test_bsp/HAL/src/alt_fs_reg.c b/software/qsys_tutorial_test_bsp/HAL/src/alt_fs_reg.c new file mode 100644 index 0000000..13437a1 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/HAL/src/alt_fs_reg.c @@ -0,0 +1,75 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +#include "sys/alt_dev.h" +#include "priv/alt_file.h" + +/* + * The alt_fs_reg() function is used to register a file system. Once registered + * a device can be accessed using the standard posix calls: open(), read(), + * write() etc. + * + * System behaviour is undefined in the event that a file system is registered + * with a name that conflicts with an existing device or file system. + * + * alt_fs_reg() is not thread safe in the sense that there should be no other + * thread using the file system list at the time that alt_dev_reg() is called. In + * practice this means that alt_fs_reg() should only be called while operating + * in a single threaded mode. The expectation is that it will only be called + * by the file system initilisation functions invoked by alt_sys_init(), which in + * turn should only be called by the single threaded C startup code. + * + * A return value of zero indicates success. A negative return value indicates + * failure. + */ + +int alt_fs_reg (alt_dev* dev) +{ + /* + * check that the device has a name. + */ + + if (!dev->name) + { + return -ENODEV; + } + + /* + * register the file system. + */ + + alt_llist_insert(&alt_fs_list, &dev->llist); + + return 0; +} diff --git a/software/qsys_tutorial_test_bsp/HAL/src/alt_fstat.c b/software/qsys_tutorial_test_bsp/HAL/src/alt_fstat.c new file mode 100644 index 0000000..af5d527 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/HAL/src/alt_fstat.c @@ -0,0 +1,128 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include + +#include "sys/alt_dev.h" +#include "sys/alt_warning.h" +#include "sys/alt_errno.h" +#include "priv/alt_file.h" +#include "os/alt_syscall.h" + +/* + * The fstat() system call is used to obtain information about the capabilities + * of an open file descriptor. By default file descriptors are marked as + * being character devices. If a device or file system wishes to advertise + * alternative capabilities then they can register an fstat() function within + * their associated alt_dev structure. This will be called to fill in the + * entries in the imput "st" structure. + * + * This function is provided for compatability with newlib. + * + * ALT_FSTAT is mapped onto the fstat() system call in alt_syscall.h + */ + +#ifdef ALT_USE_DIRECT_DRIVERS + +#include "system.h" + +/* + * Provide minimal version that just describes all file descriptors + * as character devices for provided stdio devices. + */ +int ALT_FSTAT (int file, struct stat *st) +{ + switch (file) { +#ifdef ALT_STDIN_PRESENT + case 0: /* stdin file descriptor */ +#endif /* ALT_STDIN_PRESENT */ +#ifdef ALT_STDOUT_PRESENT + case 1: /* stdout file descriptor */ +#endif /* ALT_STDOUT_PRESENT */ +#ifdef ALT_STDERR_PRESENT + case 2: /* stderr file descriptor */ +#endif /* ALT_STDERR_PRESENT */ + st->st_mode = _IFCHR; + return 0; + default: + return -1; + } + +#if !defined(ALT_STDIN_PRESENT) && !defined(ALT_STDOUT_PRESENT) && !defined(ALT_STDERR_PRESENT) + /* Generate a link time warning, should this function ever be called. */ + ALT_STUB_WARNING(fstat); +#endif +} + +#else /* !ALT_USE_DIRECT_DRIVERS */ + +int ALT_FSTAT (int file, struct stat *st) +{ + alt_fd* fd; + + /* + * A common error case is that when the file descriptor was created, the call + * to open() failed resulting in a negative file descriptor. This is trapped + * below so that we don't try and process an invalid file descriptor. + */ + + fd = (file < 0) ? NULL : &alt_fd_list[file]; + + if (fd) + { + /* Call the drivers fstat() function to fill out the "st" structure. */ + + if (fd->dev->fstat) + { + return fd->dev->fstat(fd, st); + } + + /* + * If no function is provided, mark the fd as belonging to a character + * device. + */ + + else + { + st->st_mode = _IFCHR; + return 0; + } + } + else + { + ALT_ERRNO = EBADFD; + return -1; + } +} + +#endif /* ALT_USE_DIRECT_DRIVERS */ diff --git a/software/qsys_tutorial_test_bsp/HAL/src/alt_get_fd.c b/software/qsys_tutorial_test_bsp/HAL/src/alt_get_fd.c new file mode 100644 index 0000000..db17b2c --- /dev/null +++ b/software/qsys_tutorial_test_bsp/HAL/src/alt_get_fd.c @@ -0,0 +1,105 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include +#include + +#include "sys/alt_dev.h" +#include "priv/alt_file.h" + +#include "alt_types.h" + +#include "system.h" + +/* + * alt_get_fd() is called to allocate a new file descriptor from the file + * descriptor pool. If a file descriptor is succesfully allocated, it is + * configured to refer to device "dev". + * + * The return value is the index of the file descriptor structure (i.e. + * the offset of the file descriptor within the file descriptor array). A + * negative value indicates failure. + */ + +int alt_get_fd (alt_dev* dev) +{ + alt_32 i; + int rc = -EMFILE; + + /* + * Take the alt_fd_list_lock semaphore in order to avoid races when + * accessing the file descriptor pool. + */ + + ALT_SEM_PEND(alt_fd_list_lock, 0); + + /* + * Search through the list of file descriptors, and allocate the first + * free descriptor that's found. + * + * If a free descriptor is found, then the value of "alt_max_fd" is + * updated accordingly. "alt_max_fd" is a 'highwater mark' which + * indicates the highest file descriptor ever allocated. This is used to + * improve efficency when searching the file descriptor list, and + * therefore reduce contention on the alt_fd_list_lock semaphore. + */ + + for (i = 0; i < ALT_MAX_FD; i++) + { + if (!alt_fd_list[i].dev) + { + alt_fd_list[i].dev = dev; + if (i > alt_max_fd) + { + alt_max_fd = i; + } + rc = i; + goto alt_get_fd_exit; + } + } + + alt_get_fd_exit: + + /* + * Release the alt_fd_list_lock semaphore now that we are done with the + * file descriptor pool. + */ + + ALT_SEM_POST(alt_fd_list_lock); + + return rc; +} + + + + diff --git a/software/qsys_tutorial_test_bsp/HAL/src/alt_getchar.c b/software/qsys_tutorial_test_bsp/HAL/src/alt_getchar.c new file mode 100644 index 0000000..a8f50d5 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/HAL/src/alt_getchar.c @@ -0,0 +1,61 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +#ifdef ALT_USE_DIRECT_DRIVERS +#include "system.h" +#include "sys/alt_driver.h" +#include "sys/alt_stdio.h" +#include "priv/alt_file.h" +#include "unistd.h" +#endif + +/* + * Uses the ALT_DRIVER_READ() macro to call directly to driver if available. + * Otherwise, uses newlib provided getchar() routine. + */ +int +alt_getchar(void) +{ +#ifdef ALT_USE_DIRECT_DRIVERS + ALT_DRIVER_READ_EXTERNS(ALT_STDIN_DEV); + char c; + + if (ALT_DRIVER_READ(ALT_STDIN_DEV, &c, 1, alt_fd_list[STDIN_FILENO].fd_flags) <= 0) { + return -1; + } + return c; +#else + return getchar(); +#endif +} diff --git a/software/qsys_tutorial_test_bsp/HAL/src/alt_getpid.c b/software/qsys_tutorial_test_bsp/HAL/src/alt_getpid.c new file mode 100644 index 0000000..2228c7e --- /dev/null +++ b/software/qsys_tutorial_test_bsp/HAL/src/alt_getpid.c @@ -0,0 +1,47 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "os/alt_syscall.h" + +/* + * The getpid() system call is used by newlib to obtain the current process + * id. Since there is only ever a single process in the HAL environment, + * this just returns a constant. + * + * ALT_GETPID is mapped onto the getpid() system call in alt_syscall.h + */ + +int ALT_GETPID (void) +{ + return 0; +} + diff --git a/software/qsys_tutorial_test_bsp/HAL/src/alt_gettod.c b/software/qsys_tutorial_test_bsp/HAL/src/alt_gettod.c new file mode 100644 index 0000000..ed86cba --- /dev/null +++ b/software/qsys_tutorial_test_bsp/HAL/src/alt_gettod.c @@ -0,0 +1,125 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include +#include + +#include "sys/alt_alarm.h" +#include "alt_types.h" +#include "os/alt_syscall.h" + +/* + * Macro defining the number of micoseconds in a second. + */ + +#define ALT_US (1000000) + +/* + * "alt_timezone" and "alt_resettime" are the values of the the reset time and + * time zone set through the last call to settimeofday(). By default they are + * zero initialised. + */ + +struct timezone alt_timezone = {0, 0}; +struct timeval alt_resettime = {0, 0}; + +/* + * gettimeofday() can be called to obtain a time structure which indicates the + * current "wall clock" time. This is calculated using the elapsed number of + * system clock ticks, and the value of "alt_resettime" and "alt_timezone" set + * through the last call to settimeofday(). + * + * Warning: if this function is called concurrently with a call to + * settimeofday(), the value returned by gettimeofday() will be unreliable. + * + * ALT_GETTIMEOFDAY is mapped onto the gettimeofday() system call in + * alt_syscall.h + */ + + +#if defined (__GNUC__) && (__GNUC__ >= 4) +int ALT_GETTIMEOFDAY (struct timeval *ptimeval, void *ptimezone_vptr) +{ + struct timezone *ptimezone = (struct timezone*)ptimezone_vptr; +#else +int ALT_GETTIMEOFDAY (struct timeval *ptimeval, struct timezone *ptimezone) +{ +#endif + + alt_u32 nticks = alt_nticks (); + alt_u32 tick_rate = alt_ticks_per_second (); + + /* + * Check to see if the system clock is running. This is indicated by a + * non-zero system clock rate. If the system clock is not running, an error + * is generated and the contents of "ptimeval" and "ptimezone" are not + * updated. + */ + + if (tick_rate) + { + ptimeval->tv_sec = alt_resettime.tv_sec + nticks/tick_rate; + ptimeval->tv_usec = alt_resettime.tv_usec + + (alt_u32)(((alt_u64)nticks*(ALT_US/tick_rate))%ALT_US); + + while(ptimeval->tv_usec < 0) { + if (ptimeval->tv_sec <= 0) + { + ptimeval->tv_sec = 0; + ptimeval->tv_usec = 0; + break; + } + else + { + ptimeval->tv_sec--; + ptimeval->tv_usec += ALT_US; + } + } + + while(ptimeval->tv_usec >= ALT_US) { + ptimeval->tv_sec++; + ptimeval->tv_usec -= ALT_US; + } + + if (ptimezone) + { + ptimezone->tz_minuteswest = alt_timezone.tz_minuteswest; + ptimezone->tz_dsttime = alt_timezone.tz_dsttime; + } + + return 0; + } + + return -ENOTSUP; +} + diff --git a/software/qsys_tutorial_test_bsp/HAL/src/alt_gmon.c b/software/qsys_tutorial_test_bsp/HAL/src/alt_gmon.c new file mode 100644 index 0000000..6add9f1 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/HAL/src/alt_gmon.c @@ -0,0 +1,272 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003-2005 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include +#include +#include + +#include "priv/nios2_gmon_data.h" + +#include "sys/alt_irq.h" +#include "sys/alt_alarm.h" + + +/* Macros */ + +/* How large should the bins be which we use to generate the histogram */ +#define PCSAMPLE_BYTES_PER_BUCKET 32 + +#define NIOS2_READ_EA(dest) __asm__ ("mov %0, ea" : "=r" (dest)) + +/* The compiler inserts calls to mcount() at the start of + * every function call. The structure mcount_fn_arc records t + * he return address of the function called (in from_pc) + * and the return address of the mcount function + * (in self_pc). The number of times this arc is executed is + * recorded in the field count. + */ +struct mcount_fn_arc +{ + struct mcount_fn_arc * next; + void * from_pc; + unsigned int count; +}; + +/* We need to maintain a list of pointers to the heads of each adjacency + * list so that we can find them when writing out the gmon.out file. Since + * we don't know at the start of program execution how many functions will + * be called we use a list structure to do this. + */ +struct mcount_fn_entry +{ + struct mcount_fn_entry * next; + void * self_pc; + struct mcount_fn_arc * arc_head; +}; + +/* function prototypes */ + +void __mcount_record(void * self_pc, void * from_pc, struct mcount_fn_entry * fn_entry, struct mcount_fn_entry * * fn_head) __attribute__ ((no_instrument_function)); + +static __inline__ void * mcount_allocate(unsigned int size) __attribute__ ((no_instrument_function)); +static int nios2_pcsample_init(void) __attribute__ ((no_instrument_function)); +static alt_u32 nios2_pcsample(void* alarm) __attribute__ ((no_instrument_function)); + +/* global variables */ + +/* stext and etext are defined in the linker script */ +extern char stext[]; +extern char etext[]; + +/* Is the PC sampling stuff enabled yet? */ +static int pcsample_need_init = 1; + +#define HASH_BUCKETS 64 /* Must be a power of 2 */ + +/* This points to the list of adjacency list pointers. */ +struct mcount_fn_entry * __mcount_fn_head[HASH_BUCKETS]; + +/* pointer to the in-memory buffer containing the histogram */ +static unsigned short* s_pcsamples = 0; + +/* the address of the start and end of text section */ +static const unsigned int s_low_pc = (unsigned int)stext; +static const unsigned int s_high_pc = (unsigned int)etext; + +/* the alarm structure to register for pc sampling */ +static alt_alarm s_nios2_pcsample_alarm; + +unsigned int alt_gmon_data[GMON_DATA_SIZE] = +{ + 0x6e6f6d67, /* "gmon" */ + GMON_DATA_SIZE, + 0, + (unsigned int)stext, + (unsigned int)etext, + PCSAMPLE_BYTES_PER_BUCKET, + 0, + (unsigned int)__mcount_fn_head, + (unsigned int)(__mcount_fn_head + HASH_BUCKETS) +}; + +/* This holds the current slab of memory we're allocating out of */ +static char * mcount_slab_ptr = 0; +static int mcount_slab_size = 0; + +#define MCOUNT_SLAB_INCREMENT 1020 + + +/* + * We can't use malloc to allocate memory because that's too complicated, and + * can't be called at interrupt time. Use the lower level allocator instead + * because that's interrupt safe (and because we never free anything). + * + * For speed, we allocate a block of data at once. + */ +static __inline__ void * mcount_allocate(unsigned int size) +{ + void * data; + + if (size > mcount_slab_size) + { + mcount_slab_ptr = sbrk(MCOUNT_SLAB_INCREMENT); + mcount_slab_size = MCOUNT_SLAB_INCREMENT; + } + + data = mcount_slab_ptr; + mcount_slab_ptr += size; + mcount_slab_size -= size; + + return data; +} + + +/* + * Add the arc with the values of frompc and topc given to the graph. + * This function might be called at interrupt time so must be able to + * cope with reentrancy. + * + * The fast case, where we have already allocated a function arc, has been + * handled by the assmebler code. + */ +void __mcount_record(void * self_pc, void * from_pc, struct mcount_fn_entry * fn_entry, struct mcount_fn_entry * * fn_head) +{ + alt_irq_context context; + struct mcount_fn_arc * arc_entry; + + /* Keep trying to start up the PC sampler until it is running. + * (It can't start until the timer is going). + */ + if (pcsample_need_init) + { + pcsample_need_init = 0; + pcsample_need_init = nios2_pcsample_init(); + } + + /* + * We must disable interrupts around the allocation and the list update to + * prevent corruption if the instrumented function is re-entrant. + * + * It's safe for the code above to be stepping through the chain and be + * interrupted by this code modifying it - there is an edge case which will + * leave two copies of the same arc on the list (both with count=1), but + * this is dealt with on the host. + */ + context = alt_irq_disable_all(); + + if (fn_entry == NULL) + { + /* Add it to the list of functions we must output later. */ + fn_entry = (struct mcount_fn_entry *)mcount_allocate(sizeof(struct mcount_fn_entry)); + + fn_entry->self_pc = self_pc; + fn_entry->arc_head = NULL; + + fn_entry->next = *fn_head; + *fn_head = fn_entry; + } + + /* We will need a new list entry - if there was a list entry before + * then the assembler code would have handled it. */ + arc_entry = (struct mcount_fn_arc *)mcount_allocate(sizeof(struct mcount_fn_arc)); + + arc_entry->from_pc = from_pc; + arc_entry->count = 1; + + arc_entry->next = fn_entry->arc_head; + fn_entry->arc_head = arc_entry; + + alt_irq_enable_all(context); +} + + +/* + * nios2_pcsample_init starts profiling. + * It is called the first time mcount is called, and on subsequent calls to + * mcount until it returns zero. It initializes the pc histogram and turns on + * timer driven pc sampling. + */ +static int nios2_pcsample_init(void) +{ + unsigned int pcsamples_size; + + /* We sample the PC every tick */ + unsigned int prof_rate = alt_ticks_per_second(); + if (prof_rate == 0) + return 1; + + /* allocate the histogram buffer s_pcsamples */ + pcsamples_size = (s_high_pc - s_low_pc)/PCSAMPLE_BYTES_PER_BUCKET; + s_pcsamples = (unsigned short*)sbrk(pcsamples_size * sizeof(unsigned short)); + + if (s_pcsamples != 0) + { + /* initialize the buffer to zero */ + memset(s_pcsamples, 0, pcsamples_size * sizeof(unsigned short)); + + alt_gmon_data[GMON_DATA_PROFILE_DATA] = (int)s_pcsamples; + alt_gmon_data[GMON_DATA_PROFILE_RATE] = prof_rate; + + /* Sample every tick (it's cheap) */ + alt_alarm_start(&s_nios2_pcsample_alarm, 1, nios2_pcsample, 0); + } + + return 0; +} + + +/* + * Sample the PC value and store it in the histogram + */ +static alt_u32 nios2_pcsample(void* context) +{ + unsigned int pc; + unsigned int bucket; + + /* read the exception return address - this will be + * inaccurate if there are nested interrupts but we + * assume that this is rare and the inaccuracy will + * not be great */ + NIOS2_READ_EA(pc); + + /* + * If we're within the profilable range then increment the relevant + * bucket in the histogram + */ + if (pc >= s_low_pc && pc < s_high_pc && s_pcsamples != 0) + { + bucket = (pc - s_low_pc)/PCSAMPLE_BYTES_PER_BUCKET; + s_pcsamples[bucket]++; + } + + /* Sample every tick */ + return 1; +} + diff --git a/software/qsys_tutorial_test_bsp/HAL/src/alt_icache_flush.c b/software/qsys_tutorial_test_bsp/HAL/src/alt_icache_flush.c new file mode 100644 index 0000000..4b706ed --- /dev/null +++ b/software/qsys_tutorial_test_bsp/HAL/src/alt_icache_flush.c @@ -0,0 +1,84 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "nios2.h" +#include "system.h" + +#include "alt_types.h" +#include "sys/alt_cache.h" + +/* + * alt_icache_flush() is called to flush the instruction cache for a memory + * region of length "len" bytes, starting at address "start". + */ + +void alt_icache_flush (void* start, alt_u32 len) +{ +#if NIOS2_ICACHE_SIZE > 0 + + char* i; + char* end; + + /* + * This is the most we would ever need to flush. + */ + + if (len > NIOS2_ICACHE_SIZE) + { + len = NIOS2_ICACHE_SIZE; + } + + end = ((char*) start) + len; + + for (i = start; i < end; i+= NIOS2_ICACHE_LINE_SIZE) + { + __asm__ volatile ("flushi %0" :: "r" (i)); + } + + /* + * For an unaligned flush request, we've got one more line left. + * Note that this is dependent on NIOS2_ICACHE_LINE_SIZE to be a + * multiple of 2 (which it always is). + */ + + if (((alt_u32) start) & (NIOS2_ICACHE_LINE_SIZE - 1)) + { + __asm__ volatile ("flushi %0" :: "r" (i)); + } + + /* + * Having flushed the cache, flush any stale instructions in the + * pipeline + */ + + __asm__ volatile ("flushp"); + +#endif /* NIOS2_ICACHE_SIZE > 0 */ +} diff --git a/software/qsys_tutorial_test_bsp/HAL/src/alt_icache_flush_all.c b/software/qsys_tutorial_test_bsp/HAL/src/alt_icache_flush_all.c new file mode 100644 index 0000000..5088552 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/HAL/src/alt_icache_flush_all.c @@ -0,0 +1,46 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "nios2.h" +#include "system.h" + +#include "alt_types.h" +#include "sys/alt_cache.h" + +/* + * alt_icache_flush_all() is called to flush the entire instruction cache. + */ + +void alt_icache_flush_all (void) +{ +#if NIOS2_ICACHE_SIZE > 0 + alt_icache_flush (0, NIOS2_ICACHE_SIZE); +#endif +} diff --git a/software/qsys_tutorial_test_bsp/HAL/src/alt_iic.c b/software/qsys_tutorial_test_bsp/HAL/src/alt_iic.c new file mode 100644 index 0000000..1db5afa --- /dev/null +++ b/software/qsys_tutorial_test_bsp/HAL/src/alt_iic.c @@ -0,0 +1,106 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2009 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ +#include "system.h" + +/* + * This file implements the HAL Enhanced interrupt API for Nios II processors + * with an internal interrupt controller (IIC). For most routines, this serves + * as a wrapper layer over the legacy interrupt API (which must be used with + * the IIC only). + * + * Use of the enhanced API is recommended so that application and device + * drivers are compatible with a Nios II system configured with an external + * interrupt controller (EIC), or IIC. This will afford maximum portability. + * + * If an EIC is present, the EIC device driver must provide these routines, + * because their operation will be specific to that EIC type. + */ +#ifndef NIOS2_EIC_PRESENT +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT + +#include "sys/alt_irq.h" +#include "priv/alt_iic_isr_register.h" +#include "priv/alt_legacy_irq.h" + +/** @Function Description: This function registers an interrupt handler. + * If the function is succesful, then the requested interrupt will be enabled upon + * return. Registering a NULL handler will disable the interrupt. + * @API Type: External + * @param ic_id Ignored. + * @param irq IRQ number + * @return 0 if successful, else error (-1) + */ +int alt_ic_isr_register(alt_u32 ic_id, alt_u32 irq, alt_isr_func isr, + void *isr_context, void *flags) +{ + return alt_iic_isr_register(ic_id, irq, isr, isr_context, flags); +} + +/** @Function Description: This function enables a single interrupt. + * @API Type: External + * @param ic_id Ignored. + * @param irq IRQ number + * @return 0 if successful, else error (-1) + */ +int alt_ic_irq_enable (alt_u32 ic_id, alt_u32 irq) +{ + return alt_irq_enable(irq); +} + +/** @Function Description: This function disables a single interrupt. + * @API Type: External + * @param ic_id Ignored. + * @param irq IRQ number + * @return 0 if successful, else error (-1) + */ +int alt_ic_irq_disable(alt_u32 ic_id, alt_u32 irq) +{ + return alt_irq_disable(irq); +} + +/** @Function Description: This function to determine if corresponding + * interrupt is enabled. + * @API Type: External + * @param ic_id Ignored. + * @param irq IRQ number + * @return Zero if corresponding interrupt is disabled and + * non-zero otherwise. + */ +alt_u32 alt_ic_irq_enabled(alt_u32 ic_id, alt_u32 irq) +{ + alt_u32 irq_enabled; + + NIOS2_READ_IENABLE(irq_enabled); + + return (irq_enabled & (1 << irq)) ? 1: 0; +} + +#endif /* ALT_ENHANCED_INTERRUPT_API_PRESENT */ +#endif /* NIOS2_EIC_PRESENT */ diff --git a/software/qsys_tutorial_test_bsp/HAL/src/alt_iic_isr_register.c b/software/qsys_tutorial_test_bsp/HAL/src/alt_iic_isr_register.c new file mode 100644 index 0000000..b104395 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/HAL/src/alt_iic_isr_register.c @@ -0,0 +1,104 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2009 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ +#include +#include "system.h" + +/* + * Provides an interrupt registry mechanism for the any CPUs internal interrupt + * controller (IIC) when the enhanced interrupt API is active. + */ +#ifndef ALT_CPU_EIC_PRESENT +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT + +#include "alt_types.h" +#include "sys/alt_irq.h" +#include "priv/alt_iic_isr_register.h" + +/* + * The header, alt_irq_entry.h, contains the exception entry point, and is + * provided by the processor component. It is included here, so that the code + * will be added to the executable only if alt_irq_register() is present, i.e. + * if no interrupts are registered - there's no need to provide any + * interrupt handling. + */ + +#include "sys/alt_irq_entry.h" + +/* + * The header, alt_irq_table.h contains a table describing which function + * handles each interrupt. + */ + +#include "priv/alt_irq_table.h" + +/** @Function Description: This function registers an interrupt handler. + * If the function is succesful, then the requested interrupt will be enabled + * upon return. Registering a NULL handler will disable the interrupt. + * + * @API Type: External + * @param ic_id Interrupt controller ID + * @param irq IRQ ID number + * @param isr Pointer to interrupt service routine + * @param isr_context Opaque pointer passed to ISR + * @param flags + * @return 0 if successful, else error (-1) + */ +int alt_iic_isr_register(alt_u32 ic_id, alt_u32 irq, alt_isr_func isr, + void *isr_context, void *flags) +{ + int rc = -EINVAL; + int id = irq; /* IRQ interpreted as the interrupt ID. */ + alt_irq_context status; + + if (id < ALT_NIRQ) + { + /* + * interrupts are disabled while the handler tables are updated to ensure + * that an interrupt doesn't occur while the tables are in an inconsistant + * state. + */ + + status = alt_irq_disable_all(); + + alt_irq[id].handler = isr; + alt_irq[id].context = isr_context; + + rc = (isr) ? alt_ic_irq_enable(ic_id, id) : alt_ic_irq_disable(ic_id, id); + + alt_irq_enable_all(status); + } + + return rc; +} + +#endif /* ALT_ENHANCED_INTERRUPT_API_PRESENT */ +#endif /* ALT_CPU_EIC_PRESENT */ diff --git a/software/qsys_tutorial_test_bsp/HAL/src/alt_instruction_exception_entry.c b/software/qsys_tutorial_test_bsp/HAL/src/alt_instruction_exception_entry.c new file mode 100644 index 0000000..f4f52fc --- /dev/null +++ b/software/qsys_tutorial_test_bsp/HAL/src/alt_instruction_exception_entry.c @@ -0,0 +1,203 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2008 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ +#include "sys/alt_exceptions.h" +#include "nios2.h" +#include "alt_types.h" +#include "system.h" + +/* + * This file implements support for calling user-registered handlers for + * instruction-generated exceptions. This handler could also be reached + * in the event of a spurious interrupt. + * + * The handler code is optionally enabled through the "Enable + * Instruction-related Exception API" HAL BSP setting, which will + * define the macro below. + */ +#ifdef ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API + +/* Function pointer to exception callback routine */ +alt_exception_result (*alt_instruction_exception_handler) + (alt_exception_cause, alt_u32, alt_u32) = 0x0; + +/* Link entry routine to .exceptions section */ +int alt_instruction_exception_entry (alt_u32 exception_pc) + __attribute__ ((section (".exceptions"))); + +/* + * This is the entry point for instruction-generated exceptions handling. + * This routine will be called by alt_exceptions_entry.S, after it determines + * that an exception could not be handled by handlers that preceed that + * of instruction-generated exceptions (such as interrupts). + * + * For this to function properly, you must register an exception handler + * using alt_instruction_exception_register(). This routine will call + * that handler if it has been registered. Absent a handler, it will + * break break or hang as discussed below. + */ +int alt_instruction_exception_entry (alt_u32 exception_pc) +{ + alt_u32 cause, badaddr; + +/* + * If the processor hardware has the optional EXCEPTIONS & BADADDR registers, + * read them and pass their content to the user handler. These are always + * present if the MMU or MPU is enabled, and optionally for other advanced + * exception types via the "Extra exceptions information" setting in the + * processor (hardware) configuration. + * + * If these registers are not present, the cause field will be set to + * NIOS2_EXCEPTION_CAUSE_NOT_PRESENT. Your handling routine should + * check the validity of the cause argument before proceeding. + */ +#ifdef NIOS2_HAS_EXTRA_EXCEPTION_INFO + /* Get exception cause & "badaddr" */ + NIOS2_READ_EXCEPTION(cause); + cause = ( (cause & NIOS2_EXCEPTION_REG_CAUSE_MASK) >> + NIOS2_EXCEPTION_REG_CAUSE_OFST ); + + NIOS2_READ_BADADDR(badaddr); +#else + cause = NIOS2_EXCEPTION_CAUSE_NOT_PRESENT; + badaddr = 0; +#endif /* NIOS2_HAS_EXTRA_EXCEPTION_INFO */ + + if(alt_instruction_exception_handler) { + /* + * Call handler. Its return value indicates whether the exception-causing + * instruction should be re-issued. The code that called us, + * alt_eceptions_entry.S, will look at this value and adjust the ea + * register as necessary + */ + return alt_instruction_exception_handler(cause, exception_pc, badaddr); + } + /* + * We got here because an instruction-generated exception occured, but no + * handler is present. We do not presume to know how to handle it. If the + * debugger is present, break, otherwise hang. + * + * If you've reached here in the debugger, consider examining the + * EXCEPTIONS register cause bit-field, which was read into the 'cause' + * variable above, and compare it against the exceptions-type enumeration + * in alt_exceptions.h. This register is availabe if the MMU or MPU is + * present, or if the "Extra exceptions information" hardware option is + * selected. + * + * If you get here then one of the following could have happened: + * + * - An instruction-generated exception occured, and the processor + * does not have the extra exceptions feature enabled, or you + * have not registered a handler using + * alt_instruction_exception_register() + * + * Some examples of instruction-generated exceptions and why they + * might occur: + * + * - Your program could have been compiled for a full-featured + * Nios II core, but it is running on a smaller core, and + * instruction emulation has been disabled by defining + * ALT_NO_INSTRUCTION_EMULATION. + * + * You can work around the problem by re-enabling instruction + * emulation, or you can figure out why your program is being + * compiled for a system other than the one that it is running on. + * + * - Your program has executed a trap instruction, but has not + * implemented a handler for this instruction. + * + * - Your program has executed an illegal instruction (one which is + * not defined in the instruction set). + * + * - Your processor includes an MMU or MPU, and you have enabled it + * before registering an exception handler to service exceptions it + * generates. + * + * The problem could also be hardware related: + * - If your hardware is broken and is generating spurious interrupts + * (a peripheral which negates its interrupt output before its + * interrupt handler has been executed will cause spurious interrupts) + */ + else { +#ifdef NIOS2_HAS_DEBUG_STUB + NIOS2_BREAK(); +#else + while(1) + ; +#endif /* NIOS2_HAS_DEBUG_STUB */ + } + + /* // We should not get here. Remove compiler warning. */ + return NIOS2_EXCEPTION_RETURN_REISSUE_INST; +} + +#endif /* ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API */ + +/* + * This routine indicates whether a particular exception cause will have + * set a valid address into the BADADDR register, which is included + * in the arguments to a user-registered instruction-generated exception + * handler. Many exception types do not set valid contents in BADADDR; + * this is a convenience routine to easily test the validity of that + * argument in your handler. + * + * Note that this routine will return false (0) for cause '12', + * TLB miss. This is because there are four exception types that + * share that cause, two of which do not have a valid BADADDR. You + * must determine BADADDR's validity for these. + * + * Arguments: + * cause: The 5-bit exception cause field of the EXCEPTIONS register, + * shifted to the LSB position. You may pass the 'cause' argument + * in a handler you registered directy to this routine. + * + * Return: 1: BADADDR (bad_addr argument to handler) is valid + * 0: BADADDR is not valid + */ +int alt_exception_cause_generated_bad_addr(alt_exception_cause cause) +{ + switch (cause) { + case NIOS2_EXCEPTION_SUPERVISOR_ONLY_DATA_ADDR: + return 1; + case NIOS2_EXCEPTION_MISALIGNED_DATA_ADDR: + return 1; + case NIOS2_EXCEPTION_MISALIGNED_TARGET_PC: + return 1; + case NIOS2_EXCEPTION_TLB_READ_PERM_VIOLATION: + return 1; + case NIOS2_EXCEPTION_TLB_WRITE_PERM_VIOLATION: + return 1; + case NIOS2_EXCEPTION_MPU_DATA_REGION_VIOLATION: + return 1; + default: + return 0; + } +} diff --git a/software/qsys_tutorial_test_bsp/HAL/src/alt_instruction_exception_register.c b/software/qsys_tutorial_test_bsp/HAL/src/alt_instruction_exception_register.c new file mode 100644 index 0000000..b059e1d --- /dev/null +++ b/software/qsys_tutorial_test_bsp/HAL/src/alt_instruction_exception_register.c @@ -0,0 +1,82 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2008 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ +#include "sys/alt_exceptions.h" +#include "alt_types.h" +#include "system.h" + +/* + * This file implements support for calling user-registered handlers for + * instruction-generated exceptions. + * + * The registry API is optionally enabled through the "Enable + * Instruction-related Exception API" HAL BSP setting, which will + * define the macro below. + */ +#ifdef ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API + +/* + * The header, alt_exception_handler_registry.h contains a struct describing + * the registered exception handler + */ +#include "priv/alt_exception_handler_registry.h" + +/* + * Pull in the exception entry assembly code. This will not be linked in + * unless this object is linked into the executable (i.e. only if + * alt_instruction_exception_register() is called). + */ +__asm__( "\n\t.globl alt_exception" ); + +/* + * alt_instruction_exception_register() is called to register a handler to + * service instruction-generated exceptions that are not handled by the + * default exception handler code (interrupts, and optionally unimplemented + * instructions and traps). + * + * Passing null (0x0) in the handler argument will disable a previously- + * registered handler. + * + * Note that if no handler is registered, exceptions that are not processed + * using the built-in handler (interrupts, and optionally unimplemented + * instructions and traps) are treated as unknown exceptions, resulting + * in either a break or an infinite loop. + */ +void alt_instruction_exception_register ( + alt_exception_result (*exception_handler)( + alt_exception_cause cause, + alt_u32 exception_pc, + alt_u32 bad_addr) ) +{ + alt_instruction_exception_handler = exception_handler; +} + +#endif /* ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API */ diff --git a/software/qsys_tutorial_test_bsp/HAL/src/alt_io_redirect.c b/software/qsys_tutorial_test_bsp/HAL/src/alt_io_redirect.c new file mode 100644 index 0000000..8c862f7 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/HAL/src/alt_io_redirect.c @@ -0,0 +1,98 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include +#include +#include + +#include "sys/alt_dev.h" +#include "priv/alt_file.h" + + +/* + * alt_open_fd() is similar to open() in that it is used to obtain a file + * descriptor for the file named "name". The "flags" and "mode" arguments are + * identical to the "flags" and "mode" arguments of open(). + * + * The distinction between the two functions is that the file descriptor + * structure to use is passed in as an argument, rather than allocated from the + * list of free file descriptors. + * + * This is used by alt_io_redirect() to redirect the stdin, stdout and stderr + * file descriptors to point to new devices. + * + * If the device can not be succesfully opened, then the input file descriptor + * remains unchanged. + */ + +static void alt_open_fd(alt_fd* fd, const char* name, int flags, int mode) +{ + int old; + + old = open (name, flags, mode); + + if (old >= 0) + { + fd->dev = alt_fd_list[old].dev; + fd->priv = alt_fd_list[old].priv; + fd->fd_flags = alt_fd_list[old].fd_flags; + + alt_release_fd (old); + } +} + +/* + * alt_io_redirect() is called once the device/filesystem lists have been + * initialised, but before main(). Its function is to redirect standard in, + * standard out and standard error so that they point to the devices selected by + * the user (as defined in system.h). + * + * Prior to the call to this function, io is directed towards /dev/null. If + * i/o can not be redirected to the requested device, for example if the device + * does not exist, then it remains directed at /dev/null. + */ + +void alt_io_redirect(const char* stdout_dev, + const char* stdin_dev, + const char* stderr_dev) +{ + /* Redirect the channels */ + + alt_open_fd (&alt_fd_list[STDOUT_FILENO], stdout_dev, O_WRONLY, 0777); + alt_open_fd (&alt_fd_list[STDIN_FILENO], stdin_dev, O_RDONLY, 0777); + alt_open_fd (&alt_fd_list[STDERR_FILENO], stderr_dev, O_WRONLY, 0777); +} + + + + diff --git a/software/qsys_tutorial_test_bsp/HAL/src/alt_ioctl.c b/software/qsys_tutorial_test_bsp/HAL/src/alt_ioctl.c new file mode 100644 index 0000000..f5d7ef1 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/HAL/src/alt_ioctl.c @@ -0,0 +1,170 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +#include "sys/ioctl.h" +#include "sys/alt_errno.h" +#include "sys/alt_warning.h" +#include "priv/alt_file.h" +#include "os/alt_syscall.h" + +/* + * The ioctl() system call is provided so that application code can manipulate + * the i/o capabilities of a device in device specific ways. This is identical + * to the standard posix ioctl() function. + * + * In general this implementation simply vectors ioctl requests to the + * apropriate drivers ioctl function (as registered in the drivers alt_dev + * structure). + * + * However in the case of devices (as oposed to filesystem), the TIOCEXCL and + * TIOCNXCL requests are handled without reference to the driver. These + * requests are used to lock/release a device for exclusive access. + * + * Handling these requests centrally eases the task of device driver + * development. + * + * ALT_IOCTL is mapped onto the ioctl() system call in alt_syscall.h + */ + +#ifdef ALT_USE_DIRECT_DRIVERS + +#include "system.h" +#include "sys/alt_driver.h" + +/* + * Provide minimal version that calls ioctl routine of provided stdio devices. + */ +int ALT_IOCTL (int file, int req, void* arg) +{ +#ifdef ALT_STDIN_PRESENT + ALT_DRIVER_IOCTL_EXTERNS(ALT_STDIN_DEV); +#endif +#ifdef ALT_STDOUT_PRESENT + ALT_DRIVER_IOCTL_EXTERNS(ALT_STDOUT_DEV); +#endif +#ifdef ALT_STDERR_PRESENT + ALT_DRIVER_IOCTL_EXTERNS(ALT_STDERR_DEV); +#endif + +#if !defined(ALT_STDIN_PRESENT) && !defined(ALT_STDOUT_PRESENT) && !defined(ALT_STDERR_PRESENT) + /* Generate a link time warning, should this function ever be called. */ + ALT_STUB_WARNING(ioctl); +#endif + + switch (file) { +#ifdef ALT_STDIN_PRESENT + case 0: /* stdin file descriptor */ + return ALT_DRIVER_IOCTL(ALT_STDIN_DEV, req, arg); +#endif /* ALT_STDIN_PRESENT */ +#ifdef ALT_STDOUT_PRESENT + case 1: /* stdout file descriptor */ + return ALT_DRIVER_IOCTL(ALT_STDOUT_DEV, req, arg); +#endif /* ALT_STDOUT_PRESENT */ +#ifdef ALT_STDERR_PRESENT + case 2: /* stderr file descriptor */ + return ALT_DRIVER_IOCTL(ALT_STDERR_DEV, req, arg); +#endif /* ALT_STDERR_PRESENT */ + default: + ALT_ERRNO = EBADFD; + return -1; + } +} + +#else /* !ALT_USE_DIRECT_DRIVERS */ + +int ALT_IOCTL (int file, int req, void* arg) +{ + alt_fd* fd; + int rc; + + /* + * A common error case is that when the file descriptor was created, the call + * to open() failed resulting in a negative file descriptor. This is trapped + * below so that we don't try and process an invalid file descriptor. + */ + + fd = (file < 0) ? NULL : &alt_fd_list[file]; + + if (fd) + { + + /* + * In the case of device drivers (not file systems) handle the TIOCEXCL + * and TIOCNXCL requests as special cases. + */ + + if (fd->fd_flags & ALT_FD_DEV) + { + if (req == TIOCEXCL) + { + rc = alt_fd_lock (fd); + goto ioctl_done; + } + else if (req == TIOCNXCL) + { + rc = alt_fd_unlock (fd); + goto ioctl_done; + } + } + + /* + * If the driver provides an ioctl() function, call that to handle the + * request, otherwise set the return code to indicate that the request + * could not be processed. + */ + + if (fd->dev->ioctl) + { + rc = fd->dev->ioctl(fd, req, arg); + } + else + { + rc = -ENOTTY; + } + } + else + { + rc = -EBADFD; + } + +ioctl_done: + + if (rc < 0) + { + ALT_ERRNO = -rc; + } + return rc; +} + +#endif /* ALT_USE_DIRECT_DRIVERS */ diff --git a/software/qsys_tutorial_test_bsp/HAL/src/alt_irq_entry.S b/software/qsys_tutorial_test_bsp/HAL/src/alt_irq_entry.S new file mode 100644 index 0000000..d3efe7d --- /dev/null +++ b/software/qsys_tutorial_test_bsp/HAL/src/alt_irq_entry.S @@ -0,0 +1,108 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003-2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "system.h" + +/* + * This is the interrupt exception entry point code, which saves all the + * registers and calls the interrupt handler. It should be pulled in using + * a .globl from alt_irq_register.c. This scheme is used so that if an + * interrupt is never registered, then this code will not appear in the + * generated executable, thereby improving code footprint. + */ + + /* + * Explicitly allow the use of r1 (the assembler temporary register) + * within this code. This register is normally reserved for the use of + * the compiler. + */ + .set noat + + /* + * Pull in the exception handler register save code. + */ + .globl alt_exception + + .globl alt_irq_entry + .section .exceptions.entry.label, "xa" +alt_irq_entry: + + /* + * Section .exceptions.entry is in alt_exception_entry.S + * This saves all the caller saved registers and reads estatus into r5 + */ + + .section .exceptions.irqtest, "xa" + +#ifdef ALT_CI_INTERRUPT_VECTOR_N + /* + * Use the interrupt vector custom instruction if present to accelerate + * this code. + * If the interrupt vector custom instruction returns a negative + * value, there are no interrupts active (estatus.pie is 0 + * or ipending is 0) so assume it is a software exception. + */ + custom ALT_CI_INTERRUPT_VECTOR_N, r4, r0, r0 + blt r4, r0, .Lnot_irq +#else + /* + * Test to see if the exception was a software exception or caused + * by an external interrupt, and vector accordingly. + */ + rdctl r4, ipending + andi r2, r5, 1 + beq r2, zero, .Lnot_irq + beq r4, zero, .Lnot_irq +#endif /* ALT_CI_INTERRUPT_VECTOR_N */ + + .section .exceptions.irqhandler, "xa" + /* + * Now that all necessary registers have been preserved, call + * alt_irq_handler() to process the interrupts. + */ + + call alt_irq_handler + + .section .exceptions.irqreturn, "xa" + + br .Lexception_exit + + .section .exceptions.notirq.label, "xa" + +.Lnot_irq: + + /* + * Section .exceptions.exit is in alt_exception_entry.S + * This restores all the caller saved registers + */ + + .section .exceptions.exit.label +.Lexception_exit: + diff --git a/software/qsys_tutorial_test_bsp/HAL/src/alt_irq_handler.c b/software/qsys_tutorial_test_bsp/HAL/src/alt_irq_handler.c new file mode 100644 index 0000000..3253d02 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/HAL/src/alt_irq_handler.c @@ -0,0 +1,169 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2009 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include "system.h" + +/* + * This interrupt handler only works with an internal interrupt controller + * (IIC). Processors with an external interrupt controller (EIC) use an + * implementation provided by an EIC driver. + */ +#ifndef ALT_CPU_EIC_PRESENT + +#include "sys/alt_irq.h" +#include "os/alt_hooks.h" + +#include "alt_types.h" + +/* + * A table describing each interrupt handler. The index into the array is the + * interrupt id associated with the handler. + * + * When an interrupt occurs, the associated handler is called with + * the argument stored in the context member. + */ +struct ALT_IRQ_HANDLER +{ +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT + void (*handler)(void*); +#else + void (*handler)(void*, alt_u32); +#endif + void *context; +} alt_irq[ALT_NIRQ]; + +/* + * alt_irq_handler() is called by the interrupt exception handler in order to + * process any outstanding interrupts. + * + * It is defined here since it is linked in using weak linkage. + * This means that if there is never a call to alt_irq_register() (above) then + * this function will not get linked in to the executable. This is acceptable + * since if no handler is ever registered, then an interrupt can never occur. + * + * If Nios II interrupt vector custom instruction exists, use it to accelerate + * the dispatch of interrupt handlers. The Nios II interrupt vector custom + * instruction is present if the macro ALT_CI_INTERRUPT_VECTOR defined. + */ + +void alt_irq_handler (void) __attribute__ ((section (".exceptions"))); +void alt_irq_handler (void) +{ +#ifdef ALT_CI_INTERRUPT_VECTOR + alt_32 offset; + char* alt_irq_base = (char*)alt_irq; +#else + alt_u32 active; + alt_u32 mask; + alt_u32 i; +#endif /* ALT_CI_INTERRUPT_VECTOR */ + + /* + * Notify the operating system that we are at interrupt level. + */ + + ALT_OS_INT_ENTER(); + +#ifdef ALT_CI_INTERRUPT_VECTOR + /* + * Call the interrupt vector custom instruction using the + * ALT_CI_INTERRUPT_VECTOR macro. + * It returns the offset into the vector table of the lowest-valued pending + * interrupt (corresponds to highest priority) or a negative value if none. + * The custom instruction assumes that each table entry is eight bytes. + */ + while ((offset = ALT_CI_INTERRUPT_VECTOR) >= 0) { + struct ALT_IRQ_HANDLER* handler_entry = + (struct ALT_IRQ_HANDLER*)(alt_irq_base + offset); +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT + handler_entry->handler(handler_entry->context); +#else + handler_entry->handler(handler_entry->context, offset >> 3); +#endif + } +#else /* ALT_CI_INTERRUPT_VECTOR */ + /* + * Obtain from the interrupt controller a bit list of pending interrupts, + * and then process the highest priority interrupt. This process loops, + * loading the active interrupt list on each pass until alt_irq_pending() + * return zero. + * + * The maximum interrupt latency for the highest priority interrupt is + * reduced by finding out which interrupts are pending as late as possible. + * Consider the case where the high priority interupt is asserted during + * the interrupt entry sequence for a lower priority interrupt to see why + * this is the case. + */ + + active = alt_irq_pending (); + + do + { + i = 0; + mask = 1; + + /* + * Test each bit in turn looking for an active interrupt. Once one is + * found, the interrupt handler asigned by a call to alt_irq_register() is + * called to clear the interrupt condition. + */ + + do + { + if (active & mask) + { +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT + alt_irq[i].handler(alt_irq[i].context); +#else + alt_irq[i].handler(alt_irq[i].context, i); +#endif + break; + } + mask <<= 1; + i++; + + } while (1); + + active = alt_irq_pending (); + + } while (active); +#endif /* ALT_CI_INTERRUPT_VECTOR */ + + /* + * Notify the operating system that interrupt processing is complete. + */ + + ALT_OS_INT_EXIT(); +} + +#endif /* ALT_CPU_EIC_PRESENT */ diff --git a/software/qsys_tutorial_test_bsp/HAL/src/alt_irq_register.c b/software/qsys_tutorial_test_bsp/HAL/src/alt_irq_register.c new file mode 100644 index 0000000..b5ea474 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/HAL/src/alt_irq_register.c @@ -0,0 +1,102 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2009 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ +#include +#include "system.h" + +/* + * This interrupt registry mechanism works with the Nios II internal interrupt + * controller (IIC) only. Systems with an external interrupt controller (EIC), + * or those with the IIC who are using the enhanced interrupt API will + * utilize the alt_ic_isr_register() routine to register an interrupt. + */ +#ifndef NIOS2_EIC_PRESENT + +#include "sys/alt_irq.h" +#include "priv/alt_legacy_irq.h" +#include "os/alt_hooks.h" + +#include "alt_types.h" + +/* + * The header, alt_irq_entry.h, contains the exception entry point, and is + * provided by the processor component. It is included here, so that the code + * will be added to the executable only if alt_irq_register() is present, i.e. + * if no interrupts are registered - there's no need to provide any + * interrupt handling. + */ + +#include "sys/alt_irq_entry.h" + +/* + * The header, alt_irq_table.h contains a table describing which function + * handles each interrupt. + */ + +#include "priv/alt_irq_table.h" + +/* + * alt_irq_handler() is called to register an interrupt handler. If the + * function is succesful, then the requested interrupt will be enabled upon + * return. Registering a NULL handler will disable the interrupt. + * + * The return value is 0 if the interrupt handler was registered and the + * interrupt was enabled, otherwise it is negative. + */ + +int alt_irq_register (alt_u32 id, + void* context, + alt_isr_func handler) +{ + int rc = -EINVAL; + alt_irq_context status; + + if (id < ALT_NIRQ) + { + /* + * interrupts are disabled while the handler tables are updated to ensure + * that an interrupt doesn't occur while the tables are in an inconsistant + * state. + */ + + status = alt_irq_disable_all (); + + alt_irq[id].handler = handler; + alt_irq[id].context = context; + + rc = (handler) ? alt_irq_enable (id): alt_irq_disable (id); + + alt_irq_enable_all(status); + } + return rc; +} +#endif /* NIOS2_EIC_PRESENT */ + diff --git a/software/qsys_tutorial_test_bsp/HAL/src/alt_irq_vars.c b/software/qsys_tutorial_test_bsp/HAL/src/alt_irq_vars.c new file mode 100644 index 0000000..8c0a18d --- /dev/null +++ b/software/qsys_tutorial_test_bsp/HAL/src/alt_irq_vars.c @@ -0,0 +1,47 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "alt_types.h" + +#include "system.h" + +/* + * These global variables are used to save the current list of enabled + * interrupts. See alt_irq.h for further details. + */ + +volatile alt_u32 alt_irq_active = 0; + +#ifndef ALT_EXCEPTION_STACK + +volatile alt_u32 alt_priority_mask = (alt_u32) -1; + +#endif + diff --git a/software/qsys_tutorial_test_bsp/HAL/src/alt_isatty.c b/software/qsys_tutorial_test_bsp/HAL/src/alt_isatty.c new file mode 100644 index 0000000..9276472 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/HAL/src/alt_isatty.c @@ -0,0 +1,125 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include + +#include "sys/alt_dev.h" +#include "sys/alt_errno.h" +#include "sys/alt_warning.h" +#include "priv/alt_file.h" +#include "os/alt_syscall.h" + +#ifdef ALT_USE_DIRECT_DRIVERS + +#include "system.h" + +/* + * Provide minimal version that just describes all file descriptors + * as tty devices for provided stdio devices. + */ +int ALT_ISATTY (int file) +{ + switch (file) { +#ifdef ALT_STDIN_PRESENT + case 0: /* stdin file descriptor */ +#endif /* ALT_STDIN_PRESENT */ +#ifdef ALT_STDOUT_PRESENT + case 1: /* stdout file descriptor */ +#endif /* ALT_STDOUT_PRESENT */ +#ifdef ALT_STDERR_PRESENT + case 2: /* stderr file descriptor */ +#endif /* ALT_STDERR_PRESENT */ + return 1; + default: + return 0; + } + +#if !defined(ALT_STDIN_PRESENT) && !defined(ALT_STDOUT_PRESENT) && !defined(ALT_STDERR_PRESENT) + /* Generate a link time warning, should this function ever be called. */ + ALT_STUB_WARNING(isatty); +#endif +} + +#else /* !ALT_USE_DIRECT_DRIVERS */ +/* + * isatty() can be used to determine whether the input file descriptor "file" + * refers to a terminal device or not. If it is a terminal device then the + * return value is one, otherwise it is zero. + * + * ALT_ISATTY is mapped onto the isatty() system call in alt_syscall.h + */ + +int ALT_ISATTY (int file) +{ + alt_fd* fd; + struct stat stat; + + /* + * A common error case is that when the file descriptor was created, the call + * to open() failed resulting in a negative file descriptor. This is trapped + * below so that we don't try and process an invalid file descriptor. + */ + + fd = (file < 0) ? NULL : &alt_fd_list[file]; + + if (fd) + { + /* + * If a device driver does not provide an fstat() function, then it is + * treated as a terminal device by default. + */ + + if (!fd->dev->fstat) + { + return 1; + } + + /* + * If a driver does provide an implementation of the fstat() function, then + * this is called so that the device can identify itself. + */ + + else + { + fstat (file, &stat); + return (stat.st_mode == _IFCHR) ? 1 : 0; + } + } + else + { + ALT_ERRNO = EBADFD; + return 0; + } +} + +#endif /* ALT_USE_DIRECT_DRIVERS */ diff --git a/software/qsys_tutorial_test_bsp/HAL/src/alt_kill.c b/software/qsys_tutorial_test_bsp/HAL/src/alt_kill.c new file mode 100644 index 0000000..42c2e1d --- /dev/null +++ b/software/qsys_tutorial_test_bsp/HAL/src/alt_kill.c @@ -0,0 +1,121 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include + +#include "sys/alt_errno.h" +#include "os/alt_syscall.h" + + +/* + * kill() is used by newlib in order to send signals to processes. Since there + * is only a single process in the HAL, the only valid values for pid are + * either the current process id, or the broadcast values, i.e. pid must be + * less than or equal to zero. + * + * ALT_KILL is mapped onto the kill() system call in alt_syscall.h + */ + +int ALT_KILL (int pid, int sig) +{ + int status = 0; + + if (pid <= 0) + { + switch (sig) + { + case 0: + + /* The null signal is used to check that a pid is valid. */ + + break; + + case SIGABRT: + case SIGALRM: + case SIGFPE: + case SIGILL: + case SIGKILL: + case SIGPIPE: + case SIGQUIT: + case SIGSEGV: + case SIGTERM: + case SIGUSR1: + case SIGUSR2: + case SIGBUS: + case SIGPOLL: + case SIGPROF: + case SIGSYS: + case SIGTRAP: + case SIGVTALRM: + case SIGXCPU: + case SIGXFSZ: + + /* + * The Posix standard defines the default behaviour for all these signals + * as being eqivalent to a call to _exit(). No mechanism is provided to + * change this behaviour. + */ + + _exit(0); + case SIGCHLD: + case SIGURG: + + /* + * The Posix standard defines these signals to be ignored by default. No + * mechanism is provided to change this behaviour. + */ + + break; + default: + + /* Tried to send an unsupported signal */ + + status = EINVAL; + } + } + + else if (pid > 0) + { + /* Attempted to signal a non-existant process */ + + status = ESRCH; + } + + if (status) + { + ALT_ERRNO = status; + return -1; + } + + return 0; +} diff --git a/software/qsys_tutorial_test_bsp/HAL/src/alt_link.c b/software/qsys_tutorial_test_bsp/HAL/src/alt_link.c new file mode 100644 index 0000000..d796c59 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/HAL/src/alt_link.c @@ -0,0 +1,56 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_warning.h" +#include "sys/alt_errno.h" +#include "os/alt_syscall.h" + +/* + * link() is used by newlib to create a new link to an existing file. This is + * unsupported in the HAL environment. However a "do-nothing" implementation + * is still provied for newlib compatability. + * + * ALT_LINK is mapped onto the link() system call in alt_syscall.h + */ + +int ALT_LINK ( char *existing, char *new) +{ + /* Generate a link time warning, should this function ever be called. */ + + ALT_STUB_WARNING(link); + + /* Indicate an error */ + + ALT_ERRNO = ENOSYS; + return -1; +} + diff --git a/software/qsys_tutorial_test_bsp/HAL/src/alt_load.c b/software/qsys_tutorial_test_bsp/HAL/src/alt_load.c new file mode 100644 index 0000000..ffab4b9 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/HAL/src/alt_load.c @@ -0,0 +1,88 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004-2005 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_load.h" +#include "sys/alt_cache.h" + +/* + * Linker defined symbols. + */ + +extern void __flash_rwdata_start; +extern void __ram_rwdata_start; +extern void __ram_rwdata_end; +extern void __flash_rodata_start; +extern void __ram_rodata_start; +extern void __ram_rodata_end; +extern void __flash_exceptions_start; +extern void __ram_exceptions_start; +extern void __ram_exceptions_end; + +/* + * alt_load() is called when the code is executing from flash. In this case + * there is no bootloader, so this application is responsible for loading to + * RAM any sections that are required. + */ + +void alt_load (void) +{ + /* + * Copy the .rwdata section. + */ + + alt_load_section (&__flash_rwdata_start, + &__ram_rwdata_start, + &__ram_rwdata_end); + + /* + * Copy the exception handler. + */ + + alt_load_section (&__flash_exceptions_start, + &__ram_exceptions_start, + &__ram_exceptions_end); + + /* + * Copy the .rodata section. + */ + + alt_load_section (&__flash_rodata_start, + &__ram_rodata_start, + &__ram_rodata_end); + + /* + * Now ensure that the caches are in synch. + */ + + alt_dcache_flush_all(); + alt_icache_flush_all(); +} diff --git a/software/qsys_tutorial_test_bsp/HAL/src/alt_log_macro.S b/software/qsys_tutorial_test_bsp/HAL/src/alt_log_macro.S new file mode 100644 index 0000000..499c4ad --- /dev/null +++ b/software/qsys_tutorial_test_bsp/HAL/src/alt_log_macro.S @@ -0,0 +1,56 @@ +/* alt_log_macro.S + * + * Implements the function tx_log_str, called by the assembly macro + * ALT_LOG_PUTS(). The macro will be empty when logging is turned off, + * and this function will not be compiled. When logging is on, + * this function is used to print out the strings defined in the beginning + * of alt_log_printf.c, using port information taken from system.h and + * alt_log_printf.h. + * + * This routine only handles strings, and sends a character into the defined + * output device's output buffer when the device is ready. It's intended for + * debugging purposes, where messages can be set to print out at certain + * points in the boot code to indicate the progress of the program. + * + */ + +#ifndef __ALT_LOG_MACROS__ +#define __ALT_LOG_MACROS__ + +/* define this flag to skip assembly-incompatible parts + * of various include files. */ +#define ALT_ASM_SRC + +#ifdef ALT_LOG_ENABLE // only compile this function if this flag is defined. + + #include "system.h" + #include "sys/alt_log_printf.h" + + .global tx_log_str +tx_log_str: + /* load base uart / jtag uart address into r6 */ + movhi r6, %hiadj(ALT_LOG_PORT_BASE) + addi r6, r6, %lo(ALT_LOG_PORT_BASE) +tx_next_char: + /* if pointer points to null, return + * r4 is the pointer to the str to be printed, set by ALT_LOG_PUTS */ + ldb r7, (r4) + beq r0, r7, end_tx + + /* check device transmit ready */ +wait_tx_ready_loop: + ldwio r5, ALT_LOG_PRINT_REG_OFFSET(r6) + andi r5, r5, ALT_LOG_PRINT_MSK + beq r5, r0, wait_tx_ready_loop + /* write char */ + stwio r7, ALT_LOG_PRINT_TXDATA_REG_OFFSET (r6) + /* advance string pointer */ + addi r4, r4, 1 + br tx_next_char +end_tx: + ret + +#endif + +#endif /* __ALT_LOG_MACROS__ */ + diff --git a/software/qsys_tutorial_test_bsp/HAL/src/alt_log_printf.c b/software/qsys_tutorial_test_bsp/HAL/src/alt_log_printf.c new file mode 100644 index 0000000..1f7056d --- /dev/null +++ b/software/qsys_tutorial_test_bsp/HAL/src/alt_log_printf.c @@ -0,0 +1,479 @@ + +/* alt_log_printf.c + * + * This file implements the various C functions used for the + * alt_log logging/debugging print functions. The functions + * sit as is here - the job of hiding them from the compiler + * if logging is disabled is accomplished in the .h file. + * + * All the global variables for alt_log are defined here. + * These include the various flags that turn on additional + * logging options; the strings for assembly printing; and + * other globals needed by different logging options. + * + * There are 4 functions that handle the actual printing: + * alt_log_txchar: Actual function that puts 1 char to UART/JTAG UART. + * alt_log_repchar: Calls alt_log_txchar 'n' times - used by + * alt_log_private_printf for formatting. + * alt_log_private_printf: + * Stripped down implementation of printf - no floats. + * alt_log_printf_proc: + * Wrapper function for private_printf. + * + * The rest of the functions are called by the macros which + * were called by code in the other components. Each function + * is preceded by a comment, about which file it gets called + * in, and what its purpose is. + * + * author: gkwan + */ + +/* skip all code if enable is off */ +#ifdef ALT_LOG_ENABLE + +#include +#include +#include +#ifdef __ALTERA_AVALON_JTAG_UART + #include "altera_avalon_jtag_uart.h" + #include +#endif +#include "sys/alt_log_printf.h" + +/* strings for assembly puts */ +char alt_log_msg_bss[] = "[crt0.S] Clearing BSS \r\n";; +char alt_log_msg_alt_main[] = "[crt0.S] Calling alt_main.\r\n"; +char alt_log_msg_stackpointer[] \ + = "[crt0.S] Setting up stack and global pointers.\r\n"; +char alt_log_msg_cache[] = "[crt0.S] Inst & Data Cache Initialized.\r\n"; +/* char array allocation for alt_write */ +char alt_log_write_buf[ALT_LOG_WRITE_ECHO_LEN+2]; + +/* global variables for all 'on' flags */ + +/* + * The boot message flag is linked into the data (rwdata) section + * because if it is zero, it would otherwise be placed in the bss section. + * alt_log examines this variable before the BSS is cleared in the boot-up + * process. + */ +volatile alt_u32 alt_log_boot_on_flag \ + __attribute__ ((section (".data"))) = ALT_LOG_BOOT_ON_FLAG_SETTING; + +volatile alt_u8 alt_log_write_on_flag = ALT_LOG_WRITE_ON_FLAG_SETTING; + +volatile alt_u8 alt_log_sys_clk_on_flag = ALT_LOG_SYS_CLK_ON_FLAG_SETTING; + +volatile alt_u8 alt_log_jtag_uart_alarm_on_flag = \ + ALT_LOG_JTAG_UART_ALARM_ON_FLAG_SETTING; + +volatile alt_u8 alt_log_jtag_uart_isr_on_flag = \ + ALT_LOG_JTAG_UART_ISR_ON_FLAG_SETTING; + +volatile alt_u8 alt_log_jtag_uart_startup_info_on_flag = \ + ALT_LOG_JTAG_UART_STARTUP_INFO_ON_FLAG_SETTING; + +/* Global alarm object for recurrent JTAG UART status printing */ +alt_alarm alt_log_jtag_uart_alarm_1; + +/* Global ints for system clock printing and count */ +volatile int alt_log_sys_clk_count; +volatile int alt_system_clock_in_sec; + +/* enum used by alt_log_private_printf */ +enum +{ + pfState_chars, + pfState_firstFmtChar, + pfState_otherFmtChar +}; + + + + +/* Function to put one char onto the UART/JTAG UART txdata register. */ +void alt_log_txchar(int c,char *base) +{ + /* Wait until the device is ready for a character */ + while((ALT_LOG_PRINT_REG_RD(base) & ALT_LOG_PRINT_MSK) == 0) + ; + /* And pop the character into the register */ + ALT_LOG_PRINT_TXDATA_WR(base,c); +} + + +/* Called by alt_log_private_printf to print out characters repeatedly */ +void alt_log_repchar(char c,int r,int base) +{ + while(r-- > 0) + alt_log_txchar(c,(char*) base); +} + + +/* Stripped down printf function */ +void alt_log_private_printf(const char *fmt,int base,va_list args) + { + const char *w; + char c; + int state; + int fmtLeadingZero = 0; /* init these all to 0 for -W warnings. */ + int fmtLong = 0; + int fmtBeforeDecimal = 0; + int fmtAfterDecimal = 0; + int fmtBase = 0; + int fmtSigned = 0; + int fmtCase = 0; /* For hex format, if 1, A-F, else a-f. */ + + w = fmt; + state = pfState_chars; + + while(0 != (c = *w++)) + { + switch(state) + { + case pfState_chars: + if(c == '%') + { + fmtLeadingZero = 0; + fmtLong = 0; + fmtBase = 10; + fmtSigned = 1; + fmtCase = 0; /* Only %X sets this. */ + fmtBeforeDecimal = -1; + fmtAfterDecimal = -1; + state = pfState_firstFmtChar; + } + else + { + alt_log_txchar(c,(char*)base); + } + break; + + case pfState_firstFmtChar: + if(c == '0') + { + fmtLeadingZero = 1; + state = pfState_otherFmtChar; + } + else if(c == '%') + { + alt_log_txchar(c,(char*)base); + state = pfState_chars; + } + else + { + state = pfState_otherFmtChar; + goto otherFmtChar; + } + break; + + case pfState_otherFmtChar: +otherFmtChar: + if(c == '.') + { + fmtAfterDecimal = 0; + } + else if('0' <= c && c <= '9') + { + c -= '0'; + if(fmtAfterDecimal < 0) /* still before decimal */ + { + if(fmtBeforeDecimal < 0) + { + fmtBeforeDecimal = 0; + } + else + { + fmtBeforeDecimal *= 10; + } + fmtBeforeDecimal += c; + } + else + { + fmtAfterDecimal = (fmtAfterDecimal * 10) + c; + } + } + else if(c == 'l') + { + fmtLong = 1; + } + else /* we're up to the letter which determines type */ + { + switch(c) + { + case 'd': + case 'i': +doIntegerPrint: + { + unsigned long v; + unsigned long p; /* biggest power of fmtBase */ + unsigned long vShrink; /* used to count digits */ + int sign; + int digitCount; + + /* Get the value */ + if(fmtLong) + { + if (fmtSigned) + { + v = va_arg(args,long); + } + else + { + v = va_arg(args,unsigned long); + } + } + else + { + if (fmtSigned) + { + v = va_arg(args,int); + } + else + { + v = va_arg(args,unsigned int); + } + } + + /* Strip sign */ + sign = 0; + /* (assumes sign bit is #31) */ + if( fmtSigned && (v & (0x80000000)) ) + { + v = ~v + 1; + sign = 1; + } + + /* Count digits, and get largest place value */ + vShrink = v; + p = 1; + digitCount = 1; + while( (vShrink = vShrink / fmtBase) > 0 ) + { + digitCount++; + p *= fmtBase; + } + + /* Print leading characters & sign */ + fmtBeforeDecimal -= digitCount; + if(fmtLeadingZero) + { + if(sign) + { + alt_log_txchar('-',(char*)base); + fmtBeforeDecimal--; + } + alt_log_repchar('0',fmtBeforeDecimal,base); + } + else + { + if(sign) + { + fmtBeforeDecimal--; + } + alt_log_repchar(' ',fmtBeforeDecimal,base); + if(sign) + { + alt_log_txchar('-',(char*)base); + } + } + + /* Print numbery parts */ + while(p) + { + unsigned char d; + + d = v / p; + d += '0'; + if(d > '9') + { + d += (fmtCase ? 'A' : 'a') - '0' - 10; + } + alt_log_txchar(d,(char*)base); + + v = v % p; + p = p / fmtBase; + } + } + + state = pfState_chars; + break; + + case 'u': + fmtSigned = 0; + goto doIntegerPrint; + case 'o': + fmtSigned = 0; + fmtBase = 8; + goto doIntegerPrint; + case 'x': + fmtSigned = 0; + fmtBase = 16; + goto doIntegerPrint; + case 'X': + fmtSigned = 0; + fmtBase = 16; + fmtCase = 1; + goto doIntegerPrint; + + case 'c': + alt_log_repchar(' ',fmtBeforeDecimal-1,base); + alt_log_txchar(va_arg(args,int),(char*)base); + break; + + case 's': + { + char *s; + + s = va_arg(args,char *); + alt_log_repchar(' ',fmtBeforeDecimal-strlen(s),base); + + while(*s) + alt_log_txchar(*s++,(char*)base); + } + break; + } /* switch last letter of fmt */ + state=pfState_chars; + } + break; + } /* switch */ + } /* while chars left */ + } /* printf */ + +/* Main logging printf function */ +int alt_log_printf_proc(const char *fmt, ... ) +{ + va_list args; + + va_start (args, fmt); + alt_log_private_printf(fmt,ALT_LOG_PORT_BASE,args); + return (0); +} + +/* Below are the functions called by different macros in various components. */ + +/* If the system has a JTAG_UART, include JTAG_UART debugging functions */ +#ifdef __ALTERA_AVALON_JTAG_UART + +/* The alarm function in altera_avalon_jtag_uart.c. + * This function, when turned on, prints out the status + * of the JTAG UART Control register, every ALT_LOG_JTAG_UART_TICKS. + * If the flag is off, the alarm should never be registered, and this + * function should never run */ +alt_u32 altera_avalon_jtag_uart_report_log(void * context) +{ + if (alt_log_jtag_uart_alarm_on_flag) { + altera_avalon_jtag_uart_state* dev = (altera_avalon_jtag_uart_state*) context; + const char* header="JTAG Alarm:"; + alt_log_jtag_uart_print_control_reg(dev, dev->base, header); + return ALT_LOG_JTAG_UART_TICKS; + } + else + { + /* If flag is not on, return 0 to disable future alarms. + * Should never be here, alarm should not be enabled at all. */ + return 0; + } +} + +void alt_log_jtag_uart_print_control_reg(altera_avalon_jtag_uart_state* dev, int base, const char* header) +{ + unsigned int control, space, ac, wi, ri, we, re; + control = IORD_ALTERA_AVALON_JTAG_UART_CONTROL(base); + space = (control & ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_MSK) >> + ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_OFST; + we= (control & ALTERA_AVALON_JTAG_UART_CONTROL_WE_MSK) >> + ALTERA_AVALON_JTAG_UART_CONTROL_WE_OFST; + re= (control & ALTERA_AVALON_JTAG_UART_CONTROL_RE_MSK) >> + ALTERA_AVALON_JTAG_UART_CONTROL_RE_OFST; + ri= (control & ALTERA_AVALON_JTAG_UART_CONTROL_RI_MSK) >> + ALTERA_AVALON_JTAG_UART_CONTROL_RI_OFST; + wi= (control & ALTERA_AVALON_JTAG_UART_CONTROL_WI_MSK) >> + ALTERA_AVALON_JTAG_UART_CONTROL_WI_OFST; + ac= (control & ALTERA_AVALON_JTAG_UART_CONTROL_AC_MSK) >> + ALTERA_AVALON_JTAG_UART_CONTROL_AC_OFST; + +#ifdef ALTERA_AVALON_JTAG_UART_SMALL + ALT_LOG_PRINTF( + "%s HW FIFO wspace=%d AC=%d WI=%d RI=%d WE=%d RE=%d\r\n", + header,space,ac,wi,ri,we,re); +#else + ALT_LOG_PRINTF( + "%s SW CirBuf = %d, HW FIFO wspace=%d AC=%d WI=%d RI=%d WE=%d RE=%d\r\n", + header,(dev->tx_out-dev->tx_in),space,ac,wi,ri,we,re); +#endif + + return; + +} + +/* In altera_avalon_jtag_uart.c + * Same output as the alarm function above, but this is called in the driver + * init function. Hence, it gives the status of the JTAG UART control register + * right at the initialization of the driver */ +void alt_log_jtag_uart_startup_info(altera_avalon_jtag_uart_state* dev, int base) +{ + const char* header="JTAG Startup Info:"; + alt_log_jtag_uart_print_control_reg(dev, base, header); + return; +} + +/* In altera_avalon_jtag_uart.c + * When turned on, this function will print out the status of the jtag uart + * control register every time there is a jtag uart "almost-empty" interrupt. */ +void alt_log_jtag_uart_isr_proc(int base, altera_avalon_jtag_uart_state* dev) +{ + if (alt_log_jtag_uart_isr_on_flag) { + const char* header="JTAG IRQ:"; + alt_log_jtag_uart_print_control_reg(dev, base, header); + } + return; +} + +#endif /* __ALTERA_AVALON_JTAG_UART */ + +/* In alt_write.c + * When the alt_log_write_on_flag is turned on, this function gets called + * every time alt_write gets called. The first + * ALT_LOG_WRITE_ECHO_LEN characters of every printf command (or any command + * that eventually calls write()) gets echoed to the alt_log output. */ +void alt_log_write(const void *ptr, size_t len) +{ + if (alt_log_write_on_flag) { + int temp_cnt; + int length=(ALT_LOG_WRITE_ECHO_LEN>len) ? len : ALT_LOG_WRITE_ECHO_LEN; + + if (length < 2) return; + + strncpy (alt_log_write_buf,ptr,length); + alt_log_write_buf[length-1]='\n'; + alt_log_write_buf[length]='\r'; + alt_log_write_buf[length+1]='\0'; + + /* Escape Ctrl-D's. If the Ctrl-D gets sent it might kill the terminal + * connection of alt_log. It will get replaced by 'D'. */ + for (temp_cnt=0;temp_cnt < length; temp_cnt++) { + if (alt_log_write_buf[temp_cnt]== 0x4) { + alt_log_write_buf[temp_cnt]='D'; + } + } + ALT_LOG_PRINTF("Write Echo: %s",alt_log_write_buf); + } +} + +/* In altera_avalon_timer_sc + * This function prints out a system clock is alive message + * every ALT_LOG_SYS_CLK_INTERVAL (in ticks). */ +void alt_log_system_clock() +{ + if (alt_log_sys_clk_on_flag) { + alt_log_sys_clk_count++; + if (alt_log_sys_clk_count > ALT_LOG_SYS_CLK_INTERVAL) { + alt_log_sys_clk_count = 0; + ALT_LOG_PRINTF("System Clock On %u\r\n",alt_system_clock_in_sec++); + } + } +} + + +#endif diff --git a/software/qsys_tutorial_test_bsp/HAL/src/alt_lseek.c b/software/qsys_tutorial_test_bsp/HAL/src/alt_lseek.c new file mode 100644 index 0000000..7857b0d --- /dev/null +++ b/software/qsys_tutorial_test_bsp/HAL/src/alt_lseek.c @@ -0,0 +1,117 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004-2005 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +#include "sys/alt_errno.h" +#include "sys/alt_warning.h" +#include "priv/alt_file.h" +#include "os/alt_syscall.h" + +#ifdef ALT_USE_DIRECT_DRIVERS + +off_t ALT_LSEEK (int file, off_t ptr, int dir) +{ + /* Generate a link time warning, should this function ever be called. */ + + ALT_STUB_WARNING(lseek); + + /* Indicate an error */ + + ALT_ERRNO = ENOSYS; + return -1; +} + +#else /* !ALT_USE_DIRECT_DRIVERS */ + +/* + * lseek() can be called to move the read/write pointer associated with the + * file descriptor "file". This function simply vectors the call to the lseek() + * function provided by the driver associated with the file descriptor. + * + * If the driver does not provide an implementation of lseek() an error is + * indicated. + * + * lseek() corresponds to the standard lseek() function. + * + * ALT_LSEEK is mapped onto the lseek() system call in alt_syscall.h + * + */ + +off_t ALT_LSEEK (int file, off_t ptr, int dir) +{ + alt_fd* fd; + off_t rc = 0; + + /* + * A common error case is that when the file descriptor was created, the call + * to open() failed resulting in a negative file descriptor. This is trapped + * below so that we don't try and process an invalid file descriptor. + */ + + fd = (file < 0) ? NULL : &alt_fd_list[file]; + + if (fd) + { + /* + * If the device driver provides an implementation of the lseek() function, + * then call that to process the request. + */ + + if (fd->dev->lseek) + { + rc = fd->dev->lseek(fd, ptr, dir); + } + /* + * Otherwise return an error. + */ + + else + { + rc = -ENOTSUP; + } + } + else + { + rc = -EBADFD; + } + + if (rc < 0) + { + ALT_ERRNO = -rc; + rc = -1; + } + + return rc; +} + +#endif /* ALT_USE_DIRECT_DRIVERS */ diff --git a/software/qsys_tutorial_test_bsp/HAL/src/alt_main.c b/software/qsys_tutorial_test_bsp/HAL/src/alt_main.c new file mode 100644 index 0000000..a96229b --- /dev/null +++ b/software/qsys_tutorial_test_bsp/HAL/src/alt_main.c @@ -0,0 +1,161 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2007 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include +#include +#include +#include +#include + +#include "sys/alt_dev.h" +#include "sys/alt_sys_init.h" +#include "sys/alt_irq.h" +#include "sys/alt_dev.h" + +#include "os/alt_hooks.h" + +#include "priv/alt_file.h" +#include "alt_types.h" + +#include "system.h" + +#include "sys/alt_log_printf.h" + +extern void _do_ctors(void); +extern void _do_dtors(void); + +/* + * Standard arguments for main. By default, no arguments are passed to main. + * However a device driver may choose to configure these arguments by calling + * alt_set_args(). The expectation is that this facility will only be used by + * the iclient/ihost utility. + */ + +int alt_argc = 0; +char** alt_argv = {NULL}; +char** alt_envp = {NULL}; + +/* + * Prototype for the entry point to the users application. + */ + +extern int main (int, char **, char **); + +/* + * alt_main is the C entry point for the HAL. It is called by the assembler + * startup code in the processor specific crt0.S. It is responsible for: + * completing the C runtime configuration; configuring all the + * devices/filesystems/components in the system; and call the entry point for + * the users application, i.e. main(). + */ + +void alt_main (void) +{ +#ifndef ALT_NO_EXIT + int result; +#endif + + /* ALT LOG - please see HAL/sys/alt_log_printf.h for details */ + ALT_LOG_PRINT_BOOT("[alt_main.c] Entering alt_main, calling alt_irq_init.\r\n"); + /* Initialize the interrupt controller. */ + alt_irq_init (NULL); + + /* Initialize the operating system */ + ALT_LOG_PRINT_BOOT("[alt_main.c] Done alt_irq_init, calling alt_os_init.\r\n"); + ALT_OS_INIT(); + + /* + * Initialize the semaphore used to control access to the file descriptor + * list. + */ + + ALT_LOG_PRINT_BOOT("[alt_main.c] Done OS Init, calling alt_sem_create.\r\n"); + ALT_SEM_CREATE (&alt_fd_list_lock, 1); + + /* Initialize the device drivers/software components. */ + ALT_LOG_PRINT_BOOT("[alt_main.c] Calling alt_sys_init.\r\n"); + alt_sys_init(); + ALT_LOG_PRINT_BOOT("[alt_main.c] Done alt_sys_init.\r\n"); + +#if !defined(ALT_USE_DIRECT_DRIVERS) && (defined(ALT_STDIN_PRESENT) || defined(ALT_STDOUT_PRESENT) || defined(ALT_STDERR_PRESENT)) + + /* + * Redirect stdio to the apropriate devices now that the devices have + * been initialized. This is only done if the user has requested these + * devices be present (not equal to /dev/null) and if direct drivers + * aren't being used. + */ + + ALT_LOG_PRINT_BOOT("[alt_main.c] Redirecting IO.\r\n"); + alt_io_redirect(ALT_STDOUT, ALT_STDIN, ALT_STDERR); +#endif + +#ifndef ALT_NO_C_PLUS_PLUS + /* + * Call the C++ constructors + */ + + ALT_LOG_PRINT_BOOT("[alt_main.c] Calling C++ constructors.\r\n"); + _do_ctors (); +#endif /* ALT_NO_C_PLUS_PLUS */ + +#if !defined(ALT_NO_C_PLUS_PLUS) && !defined(ALT_NO_CLEAN_EXIT) && !defined(ALT_NO_EXIT) + /* + * Set the C++ destructors to be called at system shutdown. This is only done + * if a clean exit has been requested (i.e. the exit() function has not been + * redefined as _exit()). This is in the interest of reducing code footprint, + * in that the atexit() overhead is removed when it's not needed. + */ + + ALT_LOG_PRINT_BOOT("[alt_main.c] Calling atexit.\r\n"); + atexit (_do_dtors); +#endif + + /* + * Finally, call main(). The return code is then passed to a subsequent + * call to exit() unless the application is never supposed to exit. + */ + + ALT_LOG_PRINT_BOOT("[alt_main.c] Calling main.\r\n"); + +#ifdef ALT_NO_EXIT + main (alt_argc, alt_argv, alt_envp); +#else + result = main (alt_argc, alt_argv, alt_envp); + close(STDOUT_FILENO); + exit (result); +#endif + + ALT_LOG_PRINT_BOOT("[alt_main.c] After main - we should not be here?.\r\n"); +} + diff --git a/software/qsys_tutorial_test_bsp/HAL/src/alt_malloc_lock.c b/software/qsys_tutorial_test_bsp/HAL/src/alt_malloc_lock.c new file mode 100644 index 0000000..8c78f46 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/HAL/src/alt_malloc_lock.c @@ -0,0 +1,52 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +/* + * These are the empty malloc lock/unlock stubs required by newlib. These are + * used to make newlib's malloc() function thread safe. The default HAL + * configuration is single threaded, so there is nothing to do here. Note that + * this requires that malloc is never called by an interrupt service routine. + */ + +void __malloc_lock ( struct _reent *_r ) +{ +} + +/* + * + */ + +void __malloc_unlock ( struct _reent *_r ) +{ +} diff --git a/software/qsys_tutorial_test_bsp/HAL/src/alt_mcount.S b/software/qsys_tutorial_test_bsp/HAL/src/alt_mcount.S new file mode 100644 index 0000000..3837523 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/HAL/src/alt_mcount.S @@ -0,0 +1,198 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003-2010 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/* mcount or _mcount is inserted by GCC before the function prologue of every + * function when a program is compiled for profiling. At the start of mcount, + * we guarantee that: + * ra = self_pc (an address in the function which called mcount) + * r8 = from_pc (an address in the function which called mcount's caller) + * + * Because this is always called at the start of a function we can corrupt + * r2,r3 and r11-r15. We must not corrupt r4-r7 (because they might contain + * function arguments for the instrumented function) or r8 (which holds ra + * for the instrumented function). + */ + + .global __mcount_fn_head + + .global mcount + + /* _mcount is used by gcc4 */ + .global _mcount + +_mcount: +mcount: + /* Use a hash to speed up locating fn_entry. We use bits 5 upwards to choose + * the bucket because bits 1:0 will always be 0, and because the distribution + * of values for bits 4:2 won't be even (aligning on cache line boundaries + * will skew it). Higher bits should be fairly random. + */ + /* fn_head = mcount_fn_head + (((unsigned int)self_pc >> 5) & (HASH_BUCKETS - 1)); */ + + srli r2, ra, 3 + movhi r3, %hiadj(__mcount_fn_head) + addi r3, r3, %lo(__mcount_fn_head) + andi r2, r2, 0xFC + add r11, r2, r3 + + /* The fast case is where we have already allocated a function arc, and so + * also a function pointer. + */ + + /* First find the function being called (using self_pc) */ + mov r10, r11 +0: + ldw r10, 0(r10) + beq r10, zero, .Lnew_arc + ldw r2, 4(r10) + bne r2, ra, 0b + + /* Found a function entry for this PC. Now look for an arc with a matching + * from_pc value. There will always be at least one arc. */ + ldw r3, 8(r10) +0: + ldw r2, 4(r3) + beq r2, r8, .Lfound_arc + ldw r3, 0(r3) + bne r3, zero, 0b + +.Lnew_arc: + addi sp, sp, -24 + +.LCFI0: + stw ra, 0(sp) + stw r4, 4(sp) + stw r5, 8(sp) + stw r6, 12(sp) + stw r7, 16(sp) + stw r8, 20(sp) + +.LCFI1: + /* __mcount_record(orig_ra, orig_r8, fn_entry, *fn_head); */ + mov r4, ra + mov r5, r8 + mov r6, r10 + mov r7, r11 + call __mcount_record + + /* restore registers from the stack */ + ldw ra, 0(sp) + ldw r4, 4(sp) + ldw r5, 8(sp) + ldw r6, 12(sp) + ldw r7, 16(sp) + ldw r8, 20(sp) + + addi sp, sp, 24 + +.LCFI2: + ret + +.Lfound_arc: + /* We've found the correct arc record. Increment the count and return */ + ldw r2, 8(r3) + addi r2, r2, 1 + stw r2, 8(r3) + ret + +.Lmcount_end: + + + +/* + * Dwarf2 debug information for the function. This provides GDB with the + * information it needs to backtrace out of this function. + */ + + .section .debug_frame,"",@progbits +.LCIE: + .4byte 2f - 1f /* Length */ +1: + .4byte 0xffffffff /* CIE id */ + .byte 0x1 /* Version */ + .string "" /* Augmentation */ + .uleb128 0x1 /* Code alignment factor */ + .sleb128 -4 /* Data alignment factor */ + .byte 0x1f /* Return address register */ + + .byte 0xc /* Define CFA */ + .uleb128 0x1b /* Register 27 (sp) */ + .uleb128 0x0 /* Offset 0 */ + + .align 2 /* Padding */ +2: + +.LFDE_mcount: + .4byte 2f - 1f /* Length */ +1: + .4byte .LCIE /* Pointer to CIE */ + .4byte mcount /* Start of table entry */ + .4byte .Lmcount_end - mcount /* Size of table entry */ + + .byte 0x4 /* Advance location */ + .4byte .LCFI0 - mcount /* to .LCFI0 */ + .byte 0xe /* Define CFA offset */ + .uleb128 24 /* to 24 */ + + .byte 0x4 /* Advance location */ + .4byte .LCFI1 - .LCFI0 /* to .LCFI1 */ + .byte 0x9f /* Store ra */ + .uleb128 0x6 /* at CFA-24 */ + .byte 0x84 /* Store r4 */ + .uleb128 0x5 /* at CFA-20 */ + .byte 0x85 /* Store r5 */ + .uleb128 0x4 /* at CFA-16 */ + .byte 0x86 /* Store r6 */ + .uleb128 0x3 /* at CFA-12 */ + .byte 0x87 /* Store r7 */ + .uleb128 0x2 /* at CFA-8 */ + .byte 0x88 /* Store r8 */ + .uleb128 0x1 /* at CFA-4 */ + + .byte 0x4 /* Advance location */ + .4byte .LCFI2 - .LCFI1 /* to .LCFI2 */ + .byte 0xe /* Define CFA offset */ + .uleb128 0 /* to 0 */ + .byte 0x8 /* Same value */ + .uleb128 31 /* for ra */ + .byte 0x8 /* Same value */ + .uleb128 4 /* for r4 */ + .byte 0x8 /* Same value */ + .uleb128 5 /* for r5 */ + .byte 0x8 /* Same value */ + .uleb128 6 /* for r6 */ + .byte 0x8 /* Same value */ + .uleb128 7 /* for r7 */ + .byte 0x8 /* Same value */ + .uleb128 8 /* for r8 */ + + .align 2 +2: + diff --git a/software/qsys_tutorial_test_bsp/HAL/src/alt_open.c b/software/qsys_tutorial_test_bsp/HAL/src/alt_open.c new file mode 100644 index 0000000..4790f53 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/HAL/src/alt_open.c @@ -0,0 +1,173 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_errno.h" +#include "sys/alt_warning.h" +#include "priv/alt_file.h" +#include "alt_types.h" +#include "os/alt_syscall.h" + +#ifdef ALT_USE_DIRECT_DRIVERS + +int ALT_OPEN (const char* file, int flags, int mode) +{ + /* Generate a link time warning, should this function ever be called. */ + + ALT_STUB_WARNING(open); + + /* Indicate an error */ + + ALT_ERRNO = ENOSYS; + return -1; +} + +#else /* !ALT_USE_DIRECT_DRIVERS */ + +extern alt_llist alt_dev_list; + +/* + * alt_file_locked() is used by open() to ensure that a device has not been + * previously locked for exclusive access using ioctl(). This test is only + * performed for devices. Filesystems are required to handle the ioctl() call + * themselves, and report the error from the filesystems open() function. + */ + +static int alt_file_locked (alt_fd* fd) +{ + alt_u32 i; + + /* + * Mark the file descriptor as belonging to a device. + */ + + fd->fd_flags |= ALT_FD_DEV; + + /* + * Loop through all current file descriptors searching for one that's locked + * for exclusive access. If a match is found, generate an error. + */ + + for (i = 0; i <= alt_max_fd; i++) + { + if ((alt_fd_list[i].dev == fd->dev) && + (alt_fd_list[i].fd_flags & ALT_FD_EXCL) && + (&alt_fd_list[i] != fd)) + { + return -EACCES; + } + } + + /* The device is not locked */ + + return 0; +} + +/* + * open() is called in order to get a file descriptor that reference the file + * or device named "name". This descriptor can then be used to manipulate the + * file/device using the standard system calls, e.g. write(), read(), ioctl() + * etc. + * + * This is equivalent to the standard open() system call. + * + * ALT_OPEN is mapped onto the open() system call in alt_syscall.h + */ + +int ALT_OPEN (const char* file, int flags, int mode) +{ + alt_dev* dev; + alt_fd* fd; + int index = -1; + int status = -ENODEV; + int isafs = 0; + + /* + * Check the device list, to see if a device with a matching name is + * registered. + */ + + if (!(dev = alt_find_dev (file, &alt_dev_list))) + { + /* No matching device, so try the filesystem list */ + + dev = alt_find_file (file); + isafs = 1; + } + + /* + * If a matching device or filesystem is found, allocate a file descriptor. + */ + + if (dev) + { + if ((index = alt_get_fd (dev)) < 0) + { + status = index; + } + else + { + fd = &alt_fd_list[index]; + fd->fd_flags = (flags & ~ALT_FD_FLAGS_MASK); + + /* If this is a device, ensure it isn't already locked */ + + if (isafs || ((status = alt_file_locked (fd)) >= 0)) + { + /* + * If the device or filesystem provides an open() callback function, + * call it now to perform any device/filesystem specific operations. + */ + + status = (dev->open) ? dev->open(fd, file, flags, mode): 0; + } + } + } + else + { + status = -ENODEV; + } + + /* Allocation failed, so clean up and return an error */ + + if (status < 0) + { + alt_release_fd (index); + ALT_ERRNO = -status; + return -1; + } + + /* return the reference upon success */ + + return index; +} + +#endif /* ALT_USE_DIRECT_DRIVERS */ diff --git a/software/qsys_tutorial_test_bsp/HAL/src/alt_printf.c b/software/qsys_tutorial_test_bsp/HAL/src/alt_printf.c new file mode 100644 index 0000000..e742b57 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/HAL/src/alt_printf.c @@ -0,0 +1,127 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/* + * This file provides a very minimal printf implementation for use with very + * small applications. Only the following format strings are supported: + * %x + * %s + * %c + * %% + */ + +#include +#include "sys/alt_stdio.h" + +/* + * ALT printf function + */ +void +alt_printf(const char* fmt, ... ) +{ + va_list args; + va_start(args, fmt); + const char *w; + char c; + + /* Process format string. */ + w = fmt; + while ((c = *w++) != 0) + { + /* If not a format escape character, just print */ + /* character. Otherwise, process format string. */ + if (c != '%') + { + alt_putchar(c); + } + else + { + /* Get format character. If none */ + /* available, processing is complete. */ + if ((c = *w++) != 0) + { + if (c == '%') + { + /* Process "%" escape sequence. */ + alt_putchar(c); + } + else if (c == 'c') + { + int v = va_arg(args, int); + alt_putchar(v); + } + else if (c == 'x') + { + /* Process hexadecimal number format. */ + unsigned long v = va_arg(args, unsigned long); + unsigned long digit; + int digit_shift; + + /* If the number value is zero, just print and continue. */ + if (v == 0) + { + alt_putchar('0'); + continue; + } + + /* Find first non-zero digit. */ + digit_shift = 28; + while (!(v & (0xF << digit_shift))) + digit_shift -= 4; + + /* Print digits. */ + for (; digit_shift >= 0; digit_shift -= 4) + { + digit = (v & (0xF << digit_shift)) >> digit_shift; + if (digit <= 9) + c = '0' + digit; + else + c = 'a' + digit - 10; + alt_putchar(c); + } + } + else if (c == 's') + { + /* Process string format. */ + char *s = va_arg(args, char *); + + while(*s) + alt_putchar(*s++); + } + } + else + { + break; + } + } + } +} diff --git a/software/qsys_tutorial_test_bsp/HAL/src/alt_putchar.c b/software/qsys_tutorial_test_bsp/HAL/src/alt_putchar.c new file mode 100644 index 0000000..badaa02 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/HAL/src/alt_putchar.c @@ -0,0 +1,59 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +#ifdef ALT_USE_DIRECT_DRIVERS +#include "system.h" +#include "sys/alt_driver.h" +#include "sys/alt_stdio.h" +#endif + +/* + * Uses the ALT_DRIVER_WRITE() macro to call directly to driver if available. + * Otherwise, uses newlib provided putchar() routine. + */ +int +alt_putchar(int c) +{ +#ifdef ALT_USE_DIRECT_DRIVERS + ALT_DRIVER_WRITE_EXTERNS(ALT_STDOUT_DEV); + char c1 = (char)(c & 0xff); + + if (ALT_DRIVER_WRITE(ALT_STDOUT_DEV, &c1, 1, 0) == -1) { + return -1; + } + return c; +#else + return putchar(c); +#endif +} diff --git a/software/qsys_tutorial_test_bsp/HAL/src/alt_putstr.c b/software/qsys_tutorial_test_bsp/HAL/src/alt_putstr.c new file mode 100644 index 0000000..5345945 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/HAL/src/alt_putstr.c @@ -0,0 +1,55 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +#ifdef ALT_USE_DIRECT_DRIVERS +#include +#include "system.h" +#include "sys/alt_driver.h" +#include "sys/alt_stdio.h" +#endif + +/* + * Uses the ALT_DRIVER_WRITE() macro to call directly to driver if available. + * Otherwise, uses newlib provided fputs() routine. + */ +int +alt_putstr(const char* str) +{ +#ifdef ALT_USE_DIRECT_DRIVERS + ALT_DRIVER_WRITE_EXTERNS(ALT_STDOUT_DEV); + return ALT_DRIVER_WRITE(ALT_STDOUT_DEV, str, strlen(str), 0); +#else + return fputs(str, stdout); +#endif +} diff --git a/software/qsys_tutorial_test_bsp/HAL/src/alt_read.c b/software/qsys_tutorial_test_bsp/HAL/src/alt_read.c new file mode 100644 index 0000000..1c89777 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/HAL/src/alt_read.c @@ -0,0 +1,125 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include + +#include "sys/alt_errno.h" +#include "sys/alt_warning.h" +#include "priv/alt_file.h" +#include "os/alt_syscall.h" + +/* + * The read() system call is used to read a block of data from a file or device. + * This function simply vectors the request to the device driver associated + * with the input file descriptor "file". + * + * ALT_READ is mapped onto the read() system call in alt_syscall.h + */ + +#ifdef ALT_USE_DIRECT_DRIVERS + +#include "system.h" +#include "sys/alt_driver.h" + +/* + * Provide minimal version that just reads from the stdin device when provided. + */ + +int ALT_READ (int file, void *ptr, size_t len) +{ +#ifdef ALT_STDIN_PRESENT + ALT_DRIVER_READ_EXTERNS(ALT_STDIN_DEV); +#endif + +#if !defined(ALT_STDIN_PRESENT) + /* Generate a link time warning, should this function ever be called. */ + ALT_STUB_WARNING(read); +#endif + + switch (file) { +#ifdef ALT_STDIN_PRESENT + case 0: /* stdin file descriptor */ + return ALT_DRIVER_READ(ALT_STDIN_DEV, ptr, len, 0); +#endif /* ALT_STDIN_PRESENT */ + default: + ALT_ERRNO = EBADFD; + return -1; + } +} + +#else /* !ALT_USE_DIRECT_DRIVERS */ + +int ALT_READ (int file, void *ptr, size_t len) +{ + alt_fd* fd; + int rval; + + /* + * A common error case is that when the file descriptor was created, the call + * to open() failed resulting in a negative file descriptor. This is trapped + * below so that we don't try and process an invalid file descriptor. + */ + + fd = (file < 0) ? NULL : &alt_fd_list[file]; + + if (fd) + { + /* + * If the file has not been opened with read access, or if the driver does + * not provide an implementation of read(), generate an error. Otherwise + * call the drivers read() function to process the request. + */ + + if (((fd->fd_flags & O_ACCMODE) != O_WRONLY) && + (fd->dev->read)) + { + if ((rval = fd->dev->read(fd, ptr, len)) < 0) + { + ALT_ERRNO = -rval; + return -1; + } + return rval; + } + else + { + ALT_ERRNO = EACCES; + } + } + else + { + ALT_ERRNO = EBADFD; + } + return -1; +} + +#endif /* ALT_USE_DIRECT_DRIVERS */ diff --git a/software/qsys_tutorial_test_bsp/HAL/src/alt_release_fd.c b/software/qsys_tutorial_test_bsp/HAL/src/alt_release_fd.c new file mode 100644 index 0000000..84733a7 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/HAL/src/alt_release_fd.c @@ -0,0 +1,54 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_dev.h" +#include "priv/alt_file.h" + +/* + * alt_release_fd() is called to free an allocated file descriptor. This is + * done by setting the device pointer in the file descriptor structure to zero. + * + * File descriptors correcponding to standard in, standard out and standard + * error cannont be released backed to the pool. They are always reserved. + */ + +void alt_release_fd (int fd) +{ + if (fd > 2) + { + alt_fd_list[fd].fd_flags = 0; + alt_fd_list[fd].dev = 0; + } +} + + + diff --git a/software/qsys_tutorial_test_bsp/HAL/src/alt_remap_cached.c b/software/qsys_tutorial_test_bsp/HAL/src/alt_remap_cached.c new file mode 100644 index 0000000..f61cb9c --- /dev/null +++ b/software/qsys_tutorial_test_bsp/HAL/src/alt_remap_cached.c @@ -0,0 +1,50 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003,2007 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "sys/alt_cache.h" +#include "system.h" + +#ifdef NIOS2_MMU_PRESENT +/* Convert KERNEL region address to IO region address */ +#define BYPASS_DCACHE_MASK (0x1 << 29) +#else +/* Set bit 31 of address to bypass D-cache */ +#define BYPASS_DCACHE_MASK (0x1 << 31) +#endif + +/* + * Convert a pointer to a block of uncached memory, into a block of + * cached memory. + */ + +void* alt_remap_cached (volatile void* ptr, alt_u32 len) +{ + return (void*) (((alt_u32) ptr) & ~BYPASS_DCACHE_MASK); +} diff --git a/software/qsys_tutorial_test_bsp/HAL/src/alt_remap_uncached.c b/software/qsys_tutorial_test_bsp/HAL/src/alt_remap_uncached.c new file mode 100644 index 0000000..7ff6302 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/HAL/src/alt_remap_uncached.c @@ -0,0 +1,51 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003,2007 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "sys/alt_cache.h" +#include "system.h" + +#ifdef NIOS2_MMU_PRESENT +/* Convert KERNEL region address to IO region address */ +#define BYPASS_DCACHE_MASK (0x1 << 29) +#else +/* Set bit 31 of address to bypass D-cache */ +#define BYPASS_DCACHE_MASK (0x1 << 31) +#endif + +/* + * Convert a pointer to a block of cached memory, into a block of + * uncached memory. + */ + +volatile void* alt_remap_uncached (void* ptr, alt_u32 len) +{ + alt_dcache_flush (ptr, len); + return (volatile void*) (((alt_u32) ptr) | BYPASS_DCACHE_MASK); +} diff --git a/software/qsys_tutorial_test_bsp/HAL/src/alt_rename.c b/software/qsys_tutorial_test_bsp/HAL/src/alt_rename.c new file mode 100644 index 0000000..48afac0 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/HAL/src/alt_rename.c @@ -0,0 +1,55 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_errno.h" +#include "sys/alt_warning.h" +#include "os/alt_syscall.h" + +/* + * _rename() is used by newlib to rename an existing file. This is unsupported + * in the HAL environment. However a "do-nothing" implementation is still + * provied for newlib compatability. + * + * ALT_RENAME is mapped onto the _rename() system call in alt_syscall.h + */ + +int ALT_RENAME (char *existing, char *new) +{ + /* Generate a link time warning, should this function ever be called. */ + + ALT_STUB_WARNING(_rename); + + /* Indicate an error */ + + ALT_ERRNO = ENOSYS; + return -1; +} diff --git a/software/qsys_tutorial_test_bsp/HAL/src/alt_sbrk.c b/software/qsys_tutorial_test_bsp/HAL/src/alt_sbrk.c new file mode 100644 index 0000000..b8c3799 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/HAL/src/alt_sbrk.c @@ -0,0 +1,136 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +#include "os/alt_syscall.h" + +#include "sys/alt_irq.h" +#include "sys/alt_stack.h" + +#include "system.h" + +/* + * sbrk() is called to dynamically extend the data segment for the application. + * Thie input argument "incr" is the size of the block to allocate. + * + * This simple implementation does not perform any bounds checking. Memory will + * be allocated, even if the request region colides with the stack or overflows + * the available physical memory. + * + * ALT_SBRK is mapped onto the sbrk() system call in alt_syscall.h + * + * This function is called by the profiling code to allocate memory so must be + * safe if called from an interrupt context. It must also not be instrumented + * because that would lead to an infinate loop. + */ + +extern char __alt_heap_start[]; /* set by linker */ +extern char __alt_heap_limit[]; /* set by linker */ + +static char *heap_end = __alt_heap_start; + +#if defined(ALT_EXCEPTION_STACK) && defined(ALT_STACK_CHECK) +char * alt_exception_old_stack_limit = NULL; +#endif + +caddr_t ALT_SBRK (int incr) __attribute__ ((no_instrument_function )); + +caddr_t ALT_SBRK (int incr) +{ + alt_irq_context context; + char *prev_heap_end; + + context = alt_irq_disable_all(); + + /* Always return data aligned on a word boundary */ + heap_end = (char *)(((unsigned int)heap_end + 3) & ~3); + +#ifdef ALT_MAX_HEAP_BYTES + /* + * User specified a maximum heap size. Return -1 if it would + * be exceeded by this sbrk call. + */ + if (((heap_end + incr) - __alt_heap_start) > ALT_MAX_HEAP_BYTES) { + alt_irq_enable_all(context); + return (caddr_t)-1; + } +#else + if ((heap_end + incr) > __alt_heap_limit) { + alt_irq_enable_all(context); + return (caddr_t)-1; + } +#endif + + prev_heap_end = heap_end; + heap_end += incr; + +#ifdef ALT_STACK_CHECK + /* + * If the stack and heap are contiguous then extending the heap reduces the + * space available for the stack. If we are still using the default stack + * then adjust the stack limit to note this, while checking for stack + * pointer overflow. + * If the stack limit isn't pointing at the top of the heap then the code + * is using a different stack so none of this needs to be done. + */ + + if (alt_stack_limit() == prev_heap_end) + { + if (alt_stack_pointer() <= heap_end) + alt_report_stack_overflow(); + + alt_set_stack_limit(heap_end); + } + +#ifdef ALT_EXCEPTION_STACK + /* + * If we are executing from the exception stack then compare against the + * stack we switched away from as well. The exception stack is a fixed + * size so doesn't need to be checked. + */ + + if (alt_exception_old_stack_limit == prev_heap_end) + { + if (alt_exception_old_stack_limit <= heap_end) + alt_report_stack_overflow(); + + alt_exception_old_stack_limit = heap_end; + } +#endif + +#endif + + alt_irq_enable_all(context); + + return (caddr_t) prev_heap_end; +} diff --git a/software/qsys_tutorial_test_bsp/HAL/src/alt_settod.c b/software/qsys_tutorial_test_bsp/HAL/src/alt_settod.c new file mode 100644 index 0000000..59db0f8 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/HAL/src/alt_settod.c @@ -0,0 +1,96 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include + +#include "sys/alt_errno.h" +#include "sys/alt_alarm.h" +#include "os/alt_syscall.h" + +/* + * "alt_timezone" and "alt_resettime" are the values of the the reset time and + * time zone set through the last call to settimeofday(). By default they are + * zero initialised. + */ + +extern struct timezone alt_timezone; +extern struct timeval alt_resettime; + +/* + * Macro defining the number of micoseconds in a second. + */ + +#define ALT_US (1000000) + + +/* + * settimeofday() can be called to calibrate the system clock, so that + * subsequent calls to gettimeofday() will return the elapsed "wall clock" + * time. + * + * This is done by updating the global structures "alt_resettime" and + * "alt_timezone" so that an immediate call to gettimeofday() would return + * the value specified by "t" and "tz". + * + * Warning: if this function is called concurrently with a call to + * gettimeofday(), the value returned by gettimeofday() will be unreliable. + * + * ALT_SETTIMEOFDAY is mapped onto the settimeofday() system call in + * alt_syscall.h + */ + +int ALT_SETTIMEOFDAY (const struct timeval *t, + const struct timezone *tz) +{ + alt_u32 nticks = alt_nticks (); + alt_u32 tick_rate = alt_ticks_per_second (); + + /* If there is a system clock available, update the current time */ + + if (tick_rate) + { + alt_resettime.tv_sec = t->tv_sec - nticks/tick_rate; + alt_resettime.tv_usec = t->tv_usec - + ((nticks*(ALT_US/tick_rate))%ALT_US); + + alt_timezone.tz_minuteswest = tz->tz_minuteswest; + alt_timezone.tz_dsttime = tz->tz_dsttime; + + return 0; + } + + /* There's no system clock available */ + + ALT_ERRNO = ENOSYS; + return -1; +} diff --git a/software/qsys_tutorial_test_bsp/HAL/src/alt_software_exception.S b/software/qsys_tutorial_test_bsp/HAL/src/alt_software_exception.S new file mode 100644 index 0000000..2142594 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/HAL/src/alt_software_exception.S @@ -0,0 +1,53 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003-2005 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + + /* + * This file provides the global symbol: software_exception. It is provided to + * support legacy code, and should not be used by new software. + * + * It is used by legacy code to invoke the software exception handler as + * defined by version 1.0 of the Nios II kit. It should only be used when you + * are providing your own interrupt entry point, i.e. you are not using + * alt_irq_entry. + */ + +#include "system.h" + + /* + * Pull in the exception handler. + */ + + .globl alt_exception + + .section .exceptions.entry.label, "xa" + + .globl software_exception + .type software_exception, @function +software_exception: diff --git a/software/qsys_tutorial_test_bsp/HAL/src/alt_stat.c b/software/qsys_tutorial_test_bsp/HAL/src/alt_stat.c new file mode 100644 index 0000000..44e207b --- /dev/null +++ b/software/qsys_tutorial_test_bsp/HAL/src/alt_stat.c @@ -0,0 +1,59 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include +#include +#include + +#include "os/alt_syscall.h" + +/* + * The stat() function is similar to the fstat() function in that it is used to + * obtain status information about a file. Instead of using an open file + * descriptor (like fstat()), stat() takes the name of a file as an input + * argument. + * + * ALT_STAT is mapped onto the stat() system call in alt_syscall.h + */ + +int ALT_STAT (const char *file, struct stat *st) +{ + int fd; + int rc; + + fd = open (file, 0); + rc = fstat (fd, st); + close (fd); + + return rc; +} diff --git a/software/qsys_tutorial_test_bsp/HAL/src/alt_tick.c b/software/qsys_tutorial_test_bsp/HAL/src/alt_tick.c new file mode 100644 index 0000000..c73488d --- /dev/null +++ b/software/qsys_tutorial_test_bsp/HAL/src/alt_tick.c @@ -0,0 +1,149 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_irq.h" +#include "sys/alt_alarm.h" +#include "os/alt_hooks.h" +#include "alt_types.h" + +/* + * "_alt_tick_rate" is used to store the value of the system clock frequency + * in ticks per second. It is initialised to zero, which corresponds to there + * being no system clock facility available. + */ + +alt_u32 _alt_tick_rate = 0; + +/* + * "_alt_nticks" is the number of system clock ticks that have elapsed since + * reset. + */ + +volatile alt_u32 _alt_nticks = 0; + +/* + * "alt_alarm_list" is the head of a linked list of registered alarms. This is + * initialised to be an empty list. + */ + +ALT_LLIST_HEAD(alt_alarm_list); + +/* + * alt_alarm_stop() is called to remove an alarm from the list of registered + * alarms. Alternatively an alarm can unregister itself by returning zero when + * the alarm executes. + */ + +void alt_alarm_stop (alt_alarm* alarm) +{ + alt_irq_context irq_context; + + irq_context = alt_irq_disable_all(); + alt_llist_remove (&alarm->llist); + alt_irq_enable_all (irq_context); +} + +/* + * alt_tick() is periodically called by the system clock driver in order to + * process the registered list of alarms. Each alarm is registed with a + * callback interval, and a callback function, "callback". + * + * The return value of the callback function indicates how many ticks are to + * elapse until the next callback. A return value of zero indicates that the + * alarm should be deactivated. + * + * alt_tick() is expected to run at interrupt level. + */ + +void alt_tick (void) +{ + alt_alarm* next; + alt_alarm* alarm = (alt_alarm*) alt_alarm_list.next; + + alt_u32 next_callback; + + /* update the tick counter */ + + _alt_nticks++; + + /* process the registered callbacks */ + + while (alarm != (alt_alarm*) &alt_alarm_list) + { + next = (alt_alarm*) alarm->llist.next; + + /* + * Upon the tick-counter rolling over it is safe to clear the + * roll-over flag; once the flag is cleared this (or subsequnt) + * tick events are enabled to generate an alarm event. + */ + if ((alarm->rollover) && (_alt_nticks == 0)) + { + alarm->rollover = 0; + } + + /* if the alarm period has expired, make the callback */ + if ((alarm->time <= _alt_nticks) && (alarm->rollover == 0)) + { + next_callback = alarm->callback (alarm->context); + + /* deactivate the alarm if the return value is zero */ + + if (next_callback == 0) + { + alt_alarm_stop (alarm); + } + else + { + alarm->time += next_callback; + + /* + * If the desired alarm time causes a roll-over, set the rollover + * flag. This will prevent the subsequent tick event from causing + * an alarm too early. + */ + if(alarm->time < _alt_nticks) + { + alarm->rollover = 1; + } + } + } + alarm = next; + } + + /* + * Update the operating system specific timer facilities. + */ + + ALT_OS_TIME_TICK(); +} + diff --git a/software/qsys_tutorial_test_bsp/HAL/src/alt_times.c b/software/qsys_tutorial_test_bsp/HAL/src/alt_times.c new file mode 100644 index 0000000..4dd965d --- /dev/null +++ b/software/qsys_tutorial_test_bsp/HAL/src/alt_times.c @@ -0,0 +1,71 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +#include "sys/alt_errno.h" +#include "sys/alt_alarm.h" +#include "os/alt_syscall.h" + +/* + * The times() function is used by newlib to obtain elapsed time information. + * The return value is the elapsed time since reset in system clock ticks. Note + * that this is distinct from the strict Posix version of times(), which should + * return the time since: 0 hours, 0 minutes, 0 seconds, January 1, 1970, GMT. + * + * The input structure is filled in with time accounting information. This + * implementation attributes all cpu time to the system. + * + * ALT_TIMES is mapped onto the times() system call in alt_syscall.h + */ + +clock_t ALT_TIMES (struct tms *buf) +{ + clock_t ticks = alt_nticks(); + + /* If there is no system clock present, generate an error */ + + if (!alt_ticks_per_second()) + { + ALT_ERRNO = ENOSYS; + return 0; + } + + /* Otherwise return the elapsed time */ + + buf->tms_utime = 0; + buf->tms_stime = ticks; + buf->tms_cutime = 0; + buf->tms_cstime = 0; + + return ticks; +} diff --git a/software/qsys_tutorial_test_bsp/HAL/src/alt_uncached_free.c b/software/qsys_tutorial_test_bsp/HAL/src/alt_uncached_free.c new file mode 100644 index 0000000..6e362ba --- /dev/null +++ b/software/qsys_tutorial_test_bsp/HAL/src/alt_uncached_free.c @@ -0,0 +1,49 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003,2007 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "sys/alt_cache.h" +#include "system.h" + +#ifdef NIOS2_MMU_PRESENT +/* Convert KERNEL region address to IO region address */ +#define BYPASS_DCACHE_MASK (0x1 << 29) +#else +/* Set bit 31 of address to bypass D-cache */ +#define BYPASS_DCACHE_MASK (0x1 << 31) +#endif + +/* + * Free a block of uncached memory. + */ + +void alt_uncached_free (volatile void* ptr) +{ + free ((void*) (((alt_u32) ptr) & ~BYPASS_DCACHE_MASK)); +} diff --git a/software/qsys_tutorial_test_bsp/HAL/src/alt_uncached_malloc.c b/software/qsys_tutorial_test_bsp/HAL/src/alt_uncached_malloc.c new file mode 100644 index 0000000..ab3416d --- /dev/null +++ b/software/qsys_tutorial_test_bsp/HAL/src/alt_uncached_malloc.c @@ -0,0 +1,55 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003,2007 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "sys/alt_cache.h" +#include "system.h" + +#ifdef NIOS2_MMU_PRESENT +/* Convert KERNEL region address to IO region address */ +#define BYPASS_DCACHE_MASK (0x1 << 29) +#else +/* Set bit 31 of address to bypass D-cache */ +#define BYPASS_DCACHE_MASK (0x1 << 31) +#endif + +/* + * Allocate a block of uncached memory. + */ + +volatile void* alt_uncached_malloc (size_t size) +{ + void* ptr; + + ptr = malloc (size); + + alt_dcache_flush (ptr, size); + + return ptr ? (volatile void*) (((alt_u32) ptr) | BYPASS_DCACHE_MASK) : NULL; +} diff --git a/software/qsys_tutorial_test_bsp/HAL/src/alt_unlink.c b/software/qsys_tutorial_test_bsp/HAL/src/alt_unlink.c new file mode 100644 index 0000000..29e35d6 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/HAL/src/alt_unlink.c @@ -0,0 +1,55 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_errno.h" +#include "sys/alt_warning.h" +#include "os/alt_syscall.h" + +/* + * unlink() is used by newlib to delete an existing link to a file. This is + * unsupported in the HAL environment. However a "do-nothing" implementation + * is still provied for newlib compatability. + * + * ALT_UNLINK is mapped onto the unlink() system call in alt_syscall.h + */ + +int ALT_UNLINK (char *name) +{ + /* Generate a link time warning, should this function ever be called. */ + + ALT_STUB_WARNING(unlink); + + /* Indicate an error */ + + ALT_ERRNO = ENOSYS; + return -1; +} diff --git a/software/qsys_tutorial_test_bsp/HAL/src/alt_usleep.c b/software/qsys_tutorial_test_bsp/HAL/src/alt_usleep.c new file mode 100644 index 0000000..2330eb8 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/HAL/src/alt_usleep.c @@ -0,0 +1,52 @@ +/* + * Copyright (c) 2003 Altera Corporation, San Jose, California, USA. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + * ------------ + * + * Altera does not recommend, suggest or require that this reference design + * file be used in conjunction or combination with any other product. + * + * usleep.c - Microsecond delay routine + */ + +#include + +#include "priv/alt_busy_sleep.h" +#include "os/alt_syscall.h" + +/* + * This function simply calls alt_busy_sleep() to perform the delay. This + * function implements the delay as a calibrated "busy loop". + * + * ALT_USLEEP is mapped onto the usleep() system call in alt_syscall.h + */ + + + +#if defined (__GNUC__) && __GNUC__ >= 4 +int ALT_USLEEP (useconds_t us) +#else +unsigned int ALT_USLEEP (unsigned int us) +#endif +{ + return alt_busy_sleep(us); +} diff --git a/software/qsys_tutorial_test_bsp/HAL/src/alt_wait.c b/software/qsys_tutorial_test_bsp/HAL/src/alt_wait.c new file mode 100644 index 0000000..a42f80f --- /dev/null +++ b/software/qsys_tutorial_test_bsp/HAL/src/alt_wait.c @@ -0,0 +1,52 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_errno.h" +#include "os/alt_syscall.h" + +/* + * wait() is used by newlib to wait for all child processes to exit. Since the + * HAL does not support spawning child processes, this returns immediately as + * there can't be anythign to wait for. + * + * ALT_WAIT is mapped onto the wait() system call in alt_syscall.h + */ + +int ALT_WAIT (int *status) +{ + *status = 0; + + ALT_ERRNO = ECHILD; + + return -1; +} + diff --git a/software/qsys_tutorial_test_bsp/HAL/src/alt_write.c b/software/qsys_tutorial_test_bsp/HAL/src/alt_write.c new file mode 100644 index 0000000..51debb5 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/HAL/src/alt_write.c @@ -0,0 +1,138 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include + +#include "sys/alt_errno.h" +#include "sys/alt_warning.h" +#include "priv/alt_file.h" +#include "os/alt_syscall.h" + +#include "sys/alt_log_printf.h" + +/* + * The write() system call is used to write a block of data to a file or + * device. This function simply vectors the request to the device driver + * associated with the input file descriptor "file". + * + * ALT_WRITE is mapped onto the write() system call in alt_syscall.h + */ + +#ifdef ALT_USE_DIRECT_DRIVERS + +#include "system.h" +#include "sys/alt_driver.h" + +/* + * Provide minimal version that just writes to the stdout/stderr devices + * when provided. + */ + +int ALT_WRITE (int file, const void *ptr, size_t len) +{ +#ifdef ALT_STDOUT_PRESENT + ALT_DRIVER_WRITE_EXTERNS(ALT_STDOUT_DEV); +#endif +#ifdef ALT_STDERR_PRESENT + ALT_DRIVER_WRITE_EXTERNS(ALT_STDERR_DEV); +#endif + +#if !defined(ALT_STDOUT_PRESENT) && !defined(ALT_STDERR_PRESENT) + /* Generate a link time warning, should this function ever be called. */ + ALT_STUB_WARNING(write); +#endif + + switch (file) { +#ifdef ALT_STDOUT_PRESENT + case 1: /* stdout file descriptor */ + return ALT_DRIVER_WRITE(ALT_STDOUT_DEV, ptr, len, 0); +#endif /* ALT_STDOUT_PRESENT */ +#ifdef ALT_STDERR_PRESENT + case 2: /* stderr file descriptor */ + return ALT_DRIVER_WRITE(ALT_STDERR_DEV, ptr, len, 0); +#endif /* ALT_STDERR_PRESENT */ + default: + ALT_ERRNO = EBADFD; + return -1; + } +} + +#else /* !ALT_USE_DIRECT_DRIVERS */ + +int ALT_WRITE (int file, const void *ptr, size_t len) +{ + alt_fd* fd; + int rval; + + /* + * A common error case is that when the file descriptor was created, the call + * to open() failed resulting in a negative file descriptor. This is trapped + * below so that we don't try and process an invalid file descriptor. + */ + + fd = (file < 0) ? NULL : &alt_fd_list[file]; + + if (fd) + { + /* + * If the file has not been opened with write access, or if the driver does + * not provide an implementation of write(), generate an error. Otherwise + * call the drivers write() function to process the request. + */ + + if (((fd->fd_flags & O_ACCMODE) != O_RDONLY) && fd->dev->write) + { + + /* ALT_LOG - see altera_hal/HAL/inc/sys/alt_log_printf.h */ + ALT_LOG_WRITE_FUNCTION(ptr,len); + + if ((rval = fd->dev->write(fd, ptr, len)) < 0) + { + ALT_ERRNO = -rval; + return -1; + } + return rval; + } + else + { + ALT_ERRNO = EACCES; + } + } + else + { + ALT_ERRNO = EBADFD; + } + return -1; +} + +#endif /* ALT_USE_DIRECT_DRIVERS */ diff --git a/software/qsys_tutorial_test_bsp/HAL/src/altera_nios2_qsys_irq.c b/software/qsys_tutorial_test_bsp/HAL/src/altera_nios2_qsys_irq.c new file mode 100644 index 0000000..c7a4f93 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/HAL/src/altera_nios2_qsys_irq.c @@ -0,0 +1,37 @@ +/* + * Copyright (c) 2009 Altera Corporation, San Jose, California, USA. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + * altera_nios2_irq.c - Support for Nios II internal interrupt controller. + * + */ + +#include "sys/alt_irq.h" +#include "altera_nios2_qsys_irq.h" + +/* + * To initialize the internal interrupt controller, just clear the IENABLE + * register so that all possible IRQs are disabled. + */ +void altera_nios2_qsys_irq_init(void) +{ + NIOS2_WRITE_IENABLE(0); +} diff --git a/software/qsys_tutorial_test_bsp/HAL/src/crt0.S b/software/qsys_tutorial_test_bsp/HAL/src/crt0.S new file mode 100644 index 0000000..582445d --- /dev/null +++ b/software/qsys_tutorial_test_bsp/HAL/src/crt0.S @@ -0,0 +1,456 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "system.h" +#include "nios2.h" + +/* Setup header files to work with assembler code. */ +#define ALT_ASM_SRC + +/* Debug logging facility */ +#include "sys/alt_log_printf.h" + +/*************************************************************************\ +| MACROS | +\*************************************************************************/ + +/* + * The new build tools explicitly define macros when alt_load() + * must be called. The define ALT_LOAD_EXPLICITLY_CONTROLLED tells us that + * those macros are controlling if alt_load() needs to be called. + */ +#ifdef ALT_LOAD_EXPLICITLY_CONTROLLED + +/* Need to call alt_load() if any of these sections are being copied. */ +#if defined(ALT_LOAD_COPY_RODATA) || defined(ALT_LOAD_COPY_RWDATA) || defined(ALT_LOAD_COPY_EXCEPTIONS) +#define CALL_ALT_LOAD +#endif + +#else /* !ALT_LOAD_EXPLICITLY_CONTROLLED */ + +/* + * The legacy build tools use the following macros to detect when alt_load() + * needs to be called. + */ + +#define __ALT_LOAD_SECTIONS(res, text, rodata, exc) \ + ((res##_BASE != rodata##_BASE) || \ + (res##_BASE != rwdata##_BASE) || \ + (res##_BASE != exc##_BASE)) + +#define _ALT_LOAD_SECTIONS(res, text, rodata, exc) \ + __ALT_LOAD_SECTIONS(res, text, rodata, exc) + +#define ALT_LOAD_SECTIONS _ALT_LOAD_SECTIONS(ALT_RESET_DEVICE, \ + ALT_RODATA_DEVICE, \ + ALT_RWDATA_DEVICE, \ + ALT_EXCEPTIONS_DEVICE) + +/* Call alt_load() if there is no bootloader and ALT_LOAD_SECTIONS isn't 0. */ +#if defined(ALT_NO_BOOTLOADER) && ALT_LOAD_SECTIONS +#define CALL_ALT_LOAD +#endif + +#endif /* !ALT_LOAD_EXPLICITLY_CONTROLLED */ + +/* + * When the legacy build tools define a macro called ALT_NO_BOOTLOADER, + * it indicates that initialization code is allowed at the reset address. + * The new build tools define a macro called ALT_ALLOW_CODE_AT_RESET for + * the same purpose. + */ +#ifdef ALT_NO_BOOTLOADER +#define ALT_ALLOW_CODE_AT_RESET +#endif + +/*************************************************************************\ +| EXTERNAL REFERENCES | +\*************************************************************************/ + +/* + * The entry point for user code is either "main" in hosted mode, or + * "alt_main" in standalone mode. These are explicitly referenced here, + * to ensure they are built into the executable. This allows the user + * to build them into libraries, rather than supplying them in object + * files at link time. + */ + .globl main + .globl alt_main + +/* + * Create a reference to the software multiply/divide and trap handers, + * so that if they are provided, they will appear in the executable. + */ +#ifndef ALT_NO_INSTRUCTION_EMULATION + .globl alt_exception_muldiv +#endif +#ifdef ALT_TRAP_HANDLER + .globl alt_exception_trap +#endif + +/* + * Linker defined symbols used to initialize bss. + */ +.globl __bss_start +.globl __bss_end + +/*************************************************************************\ +| RESET SECTION (.entry) | +\*************************************************************************/ + +/* + * This is the reset entry point for Nios II. + * + * At reset, only the cache line which contain the reset vector is + * initialized by the hardware. The code within the first cache line + * initializes the remainder of the instruction cache. + */ + + .section .entry, "xa" + .align 5 + +/* + * Explicitly allow the use of r1 (the assembler temporary register) + * within this code. This register is normally reserved for the use of + * the assembler. + */ + .set noat + +/* + * Some tools want to know where the reset vector is. + * Code isn't always provided at the reset vector but at least the + * __reset label always contains the reset vector address because + * it is defined at the start of the .entry section. + */ + + .globl __reset + .type __reset, @function +__reset: + +/* + * Initialize the instruction cache if present (i.e. size > 0) and + * reset code is allowed unless optimizing for RTL simulation. + * RTL simulations can ensure the instruction cache is already initialized + * so skipping this loop speeds up RTL simulation. + */ + +#if NIOS2_ICACHE_SIZE > 0 && defined(ALT_ALLOW_CODE_AT_RESET) && !defined(ALT_SIM_OPTIMIZE) + /* Assume the instruction cache size is always a power of two. */ +#if NIOS2_ICACHE_SIZE > 0x8000 + movhi r2, %hi(NIOS2_ICACHE_SIZE) +#else + movui r2, NIOS2_ICACHE_SIZE +#endif + +0: + initi r2 + addi r2, r2, -NIOS2_ICACHE_LINE_SIZE + bgt r2, zero, 0b +1: + + /* + * The following debug information tells the ISS not to run the loop above + * but to perform its actions using faster internal code. + */ + .pushsection .debug_alt_sim_info + .int 1, 1, 0b, 1b + .popsection +#endif /* Initialize Instruction Cache */ + +/* + * Jump to the _start entry point in the .text section if reset code + * is allowed or if optimizing for RTL simulation. + */ +#if defined(ALT_ALLOW_CODE_AT_RESET) || defined(ALT_SIM_OPTIMIZE) + /* Jump to the _start entry point in the .text section. */ + movhi r1, %hi(_start) + ori r1, r1, %lo(_start) + jmp r1 + + .size __reset, . - __reset +#endif /* Jump to _start */ + +/* + * When not using exit, provide an _exit symbol to prevent unresolved + * references to _exit from the linker script. + */ +#ifdef ALT_NO_EXIT + .globl _exit +_exit: +#endif + +/*************************************************************************\ +| TEXT SECTION (.text) | +\*************************************************************************/ + +/* + * Start of the .text section, and also the code entry point when + * the code is executed by a bootloader rather than directly from reset. + */ + .section .text + .align 2 + + .globl _start + .type _start, @function +_start: + +/* + * Initialize the data cache if present (i.e. size > 0) and not + * optimizing for RTL simulation. + * RTL simulations can ensure the data cache is already initialized + * so skipping this loop speeds up RTL simulation. + */ + +#if NIOS2_DCACHE_SIZE > 0 && !defined(ALT_SIM_OPTIMIZE) + + /* Assume the data cache size is always a power of two. */ +#if NIOS2_DCACHE_SIZE > 0x8000 + movhi r2, %hi(NIOS2_DCACHE_SIZE) +#else + movui r2, NIOS2_DCACHE_SIZE +#endif + +0: + initd 0(r2) + addi r2, r2, -NIOS2_DCACHE_LINE_SIZE + bgt r2, zero, 0b +1: + + /* + * The following debug information tells the ISS not to run the loop above + * but to perform its actions using faster internal code. + */ + .pushsection .debug_alt_sim_info + .int 2, 1, 0b, 1b + .popsection + +#endif /* Initialize Data Cache */ + + /* Log that caches have been initialized. */ + ALT_LOG_PUTS(alt_log_msg_cache) + + /* Log that the stack pointer is about to be setup. */ + ALT_LOG_PUTS(alt_log_msg_stackpointer) + +#if (NIOS2_NUM_OF_SHADOW_REG_SETS == 0) + /* + * Now that the caches are initialized, set up the stack pointer. + * The value provided by the linker is assumed to be correctly aligned. + */ + movhi sp, %hi(__alt_stack_pointer) + ori sp, sp, %lo(__alt_stack_pointer) + + /* Set up the global pointer. */ + movhi gp, %hi(_gp) + ori gp, gp, %lo(_gp) + +#else /* NIOS2_NUM_OF_SHADOW_REG_SETS > 0 */ + + /* + * Set up the GP and SP in all shadow register sets. + */ + + /* + * Check current register set number, if CPU resets into a shadow register + * set, switch register set to 0 by writing zero to SSTATUS register and + * execute an ERET instruction that just jumps to the next PC address + * (use the NEXTPC instruction to get this). + */ + + rdctl r2, status + + /* Get the current register set number (STATUS.CRS). */ + andi r3, r2, NIOS2_STATUS_CRS_MSK + + /* Skip switch register set if STATUS.CRS is 0. */ + beq r3, zero, .Lskip_switch_reg_set + + .set nobreak + + /* Current register set is non-zero, set SSTATUS to 0. */ + mov sstatus, zero + + /* Get next pc and store in ea. */ + nextpc ea + + /* Point to instruction after eret. */ + addi ea, ea, 8 + + /* + * Execute ERET instruction that just jumps to the next PC address + */ + eret + +.Lskip_switch_reg_set: + mov r2, zero + + /* Reset STATUS register */ + wrctl status, r2 + + movui r3, NIOS2_NUM_OF_SHADOW_REG_SETS + + /* Set up the stack pointer in register set 0. */ + movhi sp, %hi(__alt_stack_pointer) + ori sp, sp, %lo(__alt_stack_pointer) + + /* Set up the global pointer in register set 0. */ + movhi gp, %hi(_gp) + ori gp, gp, %lo(_gp) + +.Lsetup_sp_and_gp_loop: + /* + * Setup GP and SP for shadow register set + * from NIOS2_NUM_OF_SHADOW_REG_SETS to 0 + */ + + /* Skip if number of register sets is 0. */ + beq r3, zero, .Lno_shadow_register_set + + + /* Add previous register set STATUS.PRS by 1 */ + movhi r4, 1 + add r2, r2, r4 + + /* Write STATUS */ + wrctl status, r2 + + /* Clear r0 in the shadow register set (not done by hardware) */ + wrprs r0, r0 + + /* Write the GP in previous register set */ + wrprs gp, gp + + /* Only write the SP in previous register set + * if using the seperate exception stack. For normal case (single stack), + * funnel code would read the SP from previous register set. + */ +#ifdef ALT_INTERRUPT_STACK + + movhi et, %hiadj(__alt_interrupt_stack_pointer) + addi et, et, %lo(__alt_interrupt_stack_pointer) + wrprs sp, et + +#endif /* ALT_INTERRUPT_STACK */ + + /* Decrease number of register set counter by 1 */ + addi r3, r3, -1 + + br .Lsetup_sp_and_gp_loop +.Lno_shadow_register_set: + +#endif /* NIOS2_NUM_OF_SHADOW_REG_SETS */ +/* + * Clear the BSS if not optimizing for RTL simulation. + * + * This uses the symbols: __bss_start and __bss_end, which are defined + * by the linker script. They mark the begining and the end of the bss + * region. The linker script guarantees that these values are word aligned. + */ +#ifndef ALT_SIM_OPTIMIZE + /* Log that the BSS is about to be cleared. */ + ALT_LOG_PUTS(alt_log_msg_bss) + + movhi r2, %hi(__bss_start) + ori r2, r2, %lo(__bss_start) + + movhi r3, %hi(__bss_end) + ori r3, r3, %lo(__bss_end) + + beq r2, r3, 1f + +0: + stw zero, (r2) + addi r2, r2, 4 + bltu r2, r3, 0b + +1: + + /* + * The following debug information tells the ISS not to run the loop above + * but to perform its actions using faster internal code. + */ + .pushsection .debug_alt_sim_info + .int 3, 1, 0b, 1b + .popsection +#endif /* ALT_SIM_OPTIMIZE */ + +/* + * The alt_load() facility is normally used when there is no bootloader. + * It copies some sections into RAM so it acts like a mini-bootloader. + */ +#ifdef CALL_ALT_LOAD + +#ifdef ALT_STACK_CHECK + /* + * If the user has selected stack checking then we need to set up a safe + * value in the stack limit register so that the relocation functions + * don't think the stack has overflowed (the contents of the rwdata + * section aren't defined until alt_load() has been called). + */ + mov et, zero +#endif + + call alt_load + +#endif /* CALL_ALT_LOAD */ + +#ifdef ALT_STACK_CHECK + /* + * Set up the stack limit (if required). The linker has set up the + * copy of the variable which is in memory. + */ + + ldw et, %gprel(alt_stack_limit_value)(gp) +#endif + + /* Log that alt_main is about to be called. */ + ALT_LOG_PUTS(alt_log_msg_alt_main) + + /* Call the C entry point. It should never return. */ + call alt_main + + /* Wait in infinite loop in case alt_main does return. */ +alt_after_alt_main: + br alt_after_alt_main + + .size _start, . - _start + +/* + * Add information about the stack base if stack overflow checking is enabled. + */ +#ifdef ALT_STACK_CHECK + .globl alt_stack_limit_value + .section .sdata,"aws",@progbits + .align 2 + .type alt_stack_limit_value, @object + .size alt_stack_limit_value, 4 +alt_stack_limit_value: + .long __alt_stack_limit +#endif diff --git a/software/qsys_tutorial_test_bsp/Makefile b/software/qsys_tutorial_test_bsp/Makefile new file mode 100644 index 0000000..9b68af8 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/Makefile @@ -0,0 +1,766 @@ +#------------------------------------------------------------------------------ +# BSP MAKEFILE +# +# This makefile was automatically generated by the nios2-bsp-generate-files +# command. Its purpose is to build a custom Board Support Package (BSP) +# targeting a specific Nios II processor in an SOPC Builder-based design. +# +# To create an application or library Makefile which uses this BSP, try the +# nios2-app-generate-makefile or nios2-lib-generate-makefile commands. +#------------------------------------------------------------------------------ + +#------------------------------------------------------------------------------ +# TOOLS +#------------------------------------------------------------------------------ + +MKDIR := mkdir -p +ECHO := echo +SPACE := $(empty) $(empty) + +#------------------------------------------------------------------------------ +# The adjust-path macro +# +# If COMSPEC is defined, Make is launched from Windows through +# Cygwin. This adjust-path macro will call 'cygpath -u' on all +# paths to ensure they are readable by Make. +# +# If COMSPEC is not defined, Make is launched from *nix, and no adjustment +# is necessary +#------------------------------------------------------------------------------ + +ifndef COMSPEC +ifdef ComSpec +COMSPEC = $(ComSpec) +endif # ComSpec +endif # !COMSPEC + +ifdef COMSPEC + adjust-path = $(subst $(SPACE),\$(SPACE),$(shell cygpath -u "$1")) + adjust-path-mixed = $(subst $(SPACE),\$(SPACE),$(shell cygpath -m "$1")) +else + adjust-path = $(subst $(SPACE),\$(SPACE),$1) + adjust-path-mixed = $(subst $(SPACE),\$(SPACE),$1) +endif + +#------------------------------------------------------------------------------ +# DEFAULT TARGET +# +# The default target, "all", must appear before any other target in the +# Makefile. Note that extra prerequisites are added to the "all" rule later. +#------------------------------------------------------------------------------ +.PHONY: all +all: + @$(ECHO) [BSP build complete] + + +#------------------------------------------------------------------------------ +# PATHS & DIRECTORY NAMES +# +# Explicitly locate absolute path of the BSP root +#------------------------------------------------------------------------------ + +BSP_ROOT_DIR := . + +# Define absolute path to the root of the BSP. +ABS_BSP_ROOT := $(call adjust-path-mixed,$(shell pwd)) + +# Stash all BSP object files here +OBJ_DIR := ./obj + +NEWLIB_DIR = $(BSP_ROOT_DIR)/newlib + + +#------------------------------------------------------------------------------ +# MANAGED CONTENT +# +# All content between the lines "START MANAGED" and "END MANAGED" below is +# generated based on variables in the BSP settings file when the +# nios2-bsp-generate-files command is invoked. If you wish to persist any +# information pertaining to the build process, it is recomended that you +# utilize the BSP settings mechanism to do so. +# +# Note that most variable assignments in this section have a corresponding BSP +# setting that can be changed by using the nios2-bsp-create-settings or +# nios2-bsp-update-settings command before nios2-bsp-generate-files; if you +# want any variable set to a specific value when this Makefile is re-generated +# (to prevent hand-edits from being over-written), use the BSP settings +# facilities above. +#------------------------------------------------------------------------------ + +#START MANAGED + +# The following TYPE comment allows tools to identify the 'type' of target this +# makefile is associated with. +# TYPE: BSP_PRIVATE_MAKEFILE + +# This following VERSION comment indicates the version of the tool used to +# generate this makefile. A makefile variable is provided for VERSION as well. +# ACDS_VERSION: 13.0sp1 +ACDS_VERSION := 13.0sp1 + +# This following BUILD_NUMBER comment indicates the build number of the tool +# used to generate this makefile. +# BUILD_NUMBER: 232 + +SETTINGS_FILE := settings.bsp +SOPC_FILE := C:/Users/takayun/Desktop/qsys_tutorial/nios_system.sopcinfo + +#------------------------------------------------------------------------------- +# TOOL & COMMAND DEFINITIONS +# +# The base command for each build operation are expressed here. Additional +# switches may be expressed here. They will run for all instances of the +# utility. +#------------------------------------------------------------------------------- + +# Archiver command. Creates library files. +AR = nios2-elf-ar + +# Assembler command. Note that CC is used for .S files. +AS = nios2-elf-gcc + +# Custom flags only passed to the archiver. This content of this variable is +# directly passed to the archiver rather than the more standard "ARFLAGS". The +# reason for this is that GNU Make assumes some default content in ARFLAGS. +# This setting defines the value of BSP_ARFLAGS in Makefile. +BSP_ARFLAGS = -src + +# Custom flags only passed to the assembler. This setting defines the value of +# BSP_ASFLAGS in Makefile. +BSP_ASFLAGS = -Wa,-gdwarf2 + +# C/C++ compiler debug level. '-g' provides the default set of debug symbols +# typically required to debug a typical application. Omitting '-g' removes +# debug symbols from the ELF. This setting defines the value of +# BSP_CFLAGS_DEBUG in Makefile. +BSP_CFLAGS_DEBUG = -g + +# C/C++ compiler optimization level. "-O0" = no optimization,"-O2" = "normal" +# optimization, etc. "-O0" is recommended for code that you want to debug since +# compiler optimization can remove variables and produce non-sequential +# execution of code while debugging. This setting defines the value of +# BSP_CFLAGS_OPTIMIZATION in Makefile. +BSP_CFLAGS_OPTIMIZATION = '-Os' + +# C/C++ compiler warning level. "-Wall" is commonly used.This setting defines +# the value of BSP_CFLAGS_WARNINGS in Makefile. +BSP_CFLAGS_WARNINGS = -Wall + +# C compiler command. +CC = nios2-elf-gcc -xc + +# C++ compiler command. +CXX = nios2-elf-gcc -xc++ + +# Command used to remove files during 'clean' target. +RM = rm -f + + +#------------------------------------------------------------------------------- +# BUILD PRE & POST PROCESS COMMANDS +# +# The following variables are treated as shell commands in the rule +# definitions for each file-type associated with the BSP build, as well as +# commands run at the beginning and end of the entire BSP build operation. +# Pre-process commands are executed before the relevant command (for example, +# a command defined in the "CC_PRE_PROCESS" variable executes before the C +# compiler for building .c files), while post-process commands are executed +# immediately afterwards. +# +# You can view each pre/post-process command in the "Build Rules: All & +# Clean", "Pattern Rules to Build Objects", and "Library Rules" sections of +# this Makefile. +#------------------------------------------------------------------------------- + + +#------------------------------------------------------------------------------- +# BSP SOURCE BUILD SETTINGS (FLAG GENERATION) +# +# Software build settings such as compiler optimization, debug level, warning +# flags, etc., may be defined in the following variables. The variables below +# are concatenated together in the 'Flags' section of this Makefile to form +# final variables of flags passed to the build tools. +# +# These settings are considered private to the BSP and apply to all library & +# driver files in it; they do NOT automatically propagate to, for example, the +# build settings for an application. +# # For additional detail and syntax requirements, please refer to GCC help +# (example: "nios2-elf-gcc --help --verbose"). +# +# Unless indicated otherwise, multiple entries in each variable should be +# space-separated. +#------------------------------------------------------------------------------- + +# Altera HAL alt_sys_init.c generated source file +GENERATED_C_FILES := $(ABS_BSP_ROOT)/alt_sys_init.c +GENERATED_C_LIB_SRCS += alt_sys_init.c + + +#------------------------------------------------------------------------------- +# BSP SOURCE FILE LISTING +# +# All source files that comprise the BSP are listed here, along with path +# information to each file expressed relative to the BSP root. The precise +# list and location of each file is derived from the driver, operating system, +# or software package source file declarations. +# +# Following specification of the source files for each component, driver, etc., +# each source file type (C, assembly, etc.) is concatenated together and used +# to construct a list of objects. Pattern rules to build each object are then +# used to build each file. +#------------------------------------------------------------------------------- + +# altera_avalon_jtag_uart_driver sources root +altera_avalon_jtag_uart_driver_SRCS_ROOT := drivers + +# altera_avalon_jtag_uart_driver sources +altera_avalon_jtag_uart_driver_C_LIB_SRCS := \ + $(altera_avalon_jtag_uart_driver_SRCS_ROOT)/src/altera_avalon_jtag_uart_init.c \ + $(altera_avalon_jtag_uart_driver_SRCS_ROOT)/src/altera_avalon_jtag_uart_read.c \ + $(altera_avalon_jtag_uart_driver_SRCS_ROOT)/src/altera_avalon_jtag_uart_write.c \ + $(altera_avalon_jtag_uart_driver_SRCS_ROOT)/src/altera_avalon_jtag_uart_ioctl.c \ + $(altera_avalon_jtag_uart_driver_SRCS_ROOT)/src/altera_avalon_jtag_uart_fd.c + +# altera_avalon_pio_driver sources root +altera_avalon_pio_driver_SRCS_ROOT := drivers + +# altera_avalon_pio_driver sources +# altera_nios2_qsys_hal_driver sources root +altera_nios2_qsys_hal_driver_SRCS_ROOT := HAL + +# altera_nios2_qsys_hal_driver sources +altera_nios2_qsys_hal_driver_C_LIB_SRCS := \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/altera_nios2_qsys_irq.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_usleep.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_busy_sleep.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_irq_vars.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_icache_flush.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_icache_flush_all.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_dcache_flush.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_dcache_flush_all.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_dcache_flush_no_writeback.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_instruction_exception_entry.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_irq_register.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_iic.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_remap_cached.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_remap_uncached.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_uncached_free.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_uncached_malloc.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_do_ctors.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_do_dtors.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_gmon.c + +altera_nios2_qsys_hal_driver_ASM_LIB_SRCS := \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_exception_entry.S \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_exception_trap.S \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_exception_muldiv.S \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_irq_entry.S \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_software_exception.S \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_mcount.S \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_log_macro.S \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/crt0.S + +# hal sources root +hal_SRCS_ROOT := HAL + +# hal sources +hal_C_LIB_SRCS := \ + $(hal_SRCS_ROOT)/src/alt_alarm_start.c \ + $(hal_SRCS_ROOT)/src/alt_close.c \ + $(hal_SRCS_ROOT)/src/alt_dev.c \ + $(hal_SRCS_ROOT)/src/alt_dev_llist_insert.c \ + $(hal_SRCS_ROOT)/src/alt_dma_rxchan_open.c \ + $(hal_SRCS_ROOT)/src/alt_dma_txchan_open.c \ + $(hal_SRCS_ROOT)/src/alt_environ.c \ + $(hal_SRCS_ROOT)/src/alt_env_lock.c \ + $(hal_SRCS_ROOT)/src/alt_errno.c \ + $(hal_SRCS_ROOT)/src/alt_execve.c \ + $(hal_SRCS_ROOT)/src/alt_exit.c \ + $(hal_SRCS_ROOT)/src/alt_fcntl.c \ + $(hal_SRCS_ROOT)/src/alt_fd_lock.c \ + $(hal_SRCS_ROOT)/src/alt_fd_unlock.c \ + $(hal_SRCS_ROOT)/src/alt_find_dev.c \ + $(hal_SRCS_ROOT)/src/alt_find_file.c \ + $(hal_SRCS_ROOT)/src/alt_flash_dev.c \ + $(hal_SRCS_ROOT)/src/alt_fork.c \ + $(hal_SRCS_ROOT)/src/alt_fs_reg.c \ + $(hal_SRCS_ROOT)/src/alt_fstat.c \ + $(hal_SRCS_ROOT)/src/alt_get_fd.c \ + $(hal_SRCS_ROOT)/src/alt_getchar.c \ + $(hal_SRCS_ROOT)/src/alt_getpid.c \ + $(hal_SRCS_ROOT)/src/alt_gettod.c \ + $(hal_SRCS_ROOT)/src/alt_iic_isr_register.c \ + $(hal_SRCS_ROOT)/src/alt_instruction_exception_register.c \ + $(hal_SRCS_ROOT)/src/alt_ioctl.c \ + $(hal_SRCS_ROOT)/src/alt_io_redirect.c \ + $(hal_SRCS_ROOT)/src/alt_irq_handler.c \ + $(hal_SRCS_ROOT)/src/alt_isatty.c \ + $(hal_SRCS_ROOT)/src/alt_kill.c \ + $(hal_SRCS_ROOT)/src/alt_link.c \ + $(hal_SRCS_ROOT)/src/alt_load.c \ + $(hal_SRCS_ROOT)/src/alt_log_printf.c \ + $(hal_SRCS_ROOT)/src/alt_lseek.c \ + $(hal_SRCS_ROOT)/src/alt_main.c \ + $(hal_SRCS_ROOT)/src/alt_malloc_lock.c \ + $(hal_SRCS_ROOT)/src/alt_open.c \ + $(hal_SRCS_ROOT)/src/alt_printf.c \ + $(hal_SRCS_ROOT)/src/alt_putchar.c \ + $(hal_SRCS_ROOT)/src/alt_putstr.c \ + $(hal_SRCS_ROOT)/src/alt_read.c \ + $(hal_SRCS_ROOT)/src/alt_release_fd.c \ + $(hal_SRCS_ROOT)/src/alt_rename.c \ + $(hal_SRCS_ROOT)/src/alt_sbrk.c \ + $(hal_SRCS_ROOT)/src/alt_settod.c \ + $(hal_SRCS_ROOT)/src/alt_stat.c \ + $(hal_SRCS_ROOT)/src/alt_tick.c \ + $(hal_SRCS_ROOT)/src/alt_times.c \ + $(hal_SRCS_ROOT)/src/alt_unlink.c \ + $(hal_SRCS_ROOT)/src/alt_wait.c \ + $(hal_SRCS_ROOT)/src/alt_write.c + + +# Assemble all component C source files +COMPONENT_C_LIB_SRCS += \ + $(altera_avalon_jtag_uart_driver_C_LIB_SRCS) \ + $(altera_nios2_qsys_hal_driver_C_LIB_SRCS) \ + $(hal_C_LIB_SRCS) + +# Assemble all component assembly source files +COMPONENT_ASM_LIB_SRCS += \ + $(altera_nios2_qsys_hal_driver_ASM_LIB_SRCS) + +# Assemble all component C++ source files +COMPONENT_CPP_LIB_SRCS += \ + +#END MANAGED + +#------------------------------------------------------------------------------ +# PUBLIC.MK +# +# The generated public.mk file contains BSP information that is shared with +# other external makefiles, such as a Nios II application makefile. System- +# dependent information such as hardware-specific compiler flags and +# simulation file generation are stored here. +# +# In addition, public.mk contains include paths that various software, +# such as a device driver, may need for the C compiler. These paths are +# written to public.mk with respect to the BSP root. In public.mk, each +# path is prefixed with a special variable, $(ALT_LIBRARY_ROOT_DIR). The +# purpose of this variable is to allow an external Makefile to append on +# path information to precisely locate paths expressed in public.mk +# Since this is the BSP Makefile, we set ALT_LIBRARY_ROOT_DIR to point right +# here ("."), at the BSP root. +# +# ALT_LIBRARY_ROOT_DIR must always be set before public.mk is included. +#------------------------------------------------------------------------------ +ALT_LIBRARY_ROOT_DIR := . +include public.mk + + +#------------------------------------------------------------------------------ +# FLAGS +# +# Include paths for BSP files are written into the public.mk file and must +# be added to the existing list of pre-processor flags. In addition, "hooks" +# for standard flags left intentionally empty (CFLAGS, CPPFLAGS, ASFLAGS, +# and CXXFLAGS) are provided for conveniently adding to the relevant flags +# on the command-line or via script that calls make. +#------------------------------------------------------------------------------ +# Assemble final list of compiler flags from generated content +BSP_CFLAGS += \ + $(BSP_CFLAGS_DEFINED_SYMBOLS) \ + $(BSP_CFLAGS_UNDEFINED_SYMBOLS) \ + $(BSP_CFLAGS_OPTIMIZATION) \ + $(BSP_CFLAGS_DEBUG) \ + $(BSP_CFLAGS_WARNINGS) \ + $(BSP_CFLAGS_USER_FLAGS) \ + $(ALT_CFLAGS) \ + $(CFLAGS) + +# Make ready the final list of include directories and other C pre-processor +# flags. Each include path is made ready by prefixing it with "-I". +BSP_CPPFLAGS += \ + $(addprefix -I, $(BSP_INC_DIRS)) \ + $(addprefix -I, $(ALT_INCLUDE_DIRS)) \ + $(ALT_CPPFLAGS) \ + $(CPPFLAGS) + +# Finish off assembler flags with any user-provided flags +BSP_ASFLAGS += $(ASFLAGS) + +# Finish off C++ flags with any user-provided flags +BSP_CXXFLAGS += $(CXXFLAGS) + +# And finally, the ordered list +C_SRCS += $(GENERATED_C_LIB_SRCS) \ + $(COMPONENT_C_LIB_SRCS) + +CXX_SRCS += $(GENERATED_CPP_LIB_SRCS) \ + $(COMPONENT_CPP_LIB_SRCS) + +ASM_SRCS += $(GENERATED_ASM_LIB_SRCS) \ + $(COMPONENT_ASM_LIB_SRCS) + + +#------------------------------------------------------------------------------ +# LIST OF GENERATED FILES +# +# A Nios II BSP relies on the generation of several source files used +# by both the BSP and any applications referencing the BSP. +#------------------------------------------------------------------------------ + + +GENERATED_H_FILES := $(ABS_BSP_ROOT)/system.h + +GENERATED_LINKER_SCRIPT := $(ABS_BSP_ROOT)/linker.x + +GENERATED_FILES += $(GENERATED_H_FILES) \ + $(GENERATED_LINKER_SCRIPT) + + +#------------------------------------------------------------------------------ +# SETUP TO BUILD OBJECTS +# +# List of object files which are to be built. This is constructed from the input +# list of C source files (C_SRCS), C++ source files (CXX_SRCS), and assembler +# source file (ASM_SRCS). The permitted file extensions are: +# +# .c .C - for C files +# .cxx .cc .cpp .CXX .CC .CPP - for C++ files +# .S .s - for assembly files +# +# Extended description: The list of objects is a sorted list (duplicates +# removed) of all possible objects, placed beneath the ./obj directory, +# including any path information stored in the "*_SRCS" variable. The +# "patsubst" commands are used to concatenate together multiple file suffix +# types for common files (i.e. c++ as .cxx, .cc, .cpp). +# +# File extensions are case-insensitive in build rules with the exception of +# assembly sources. Nios II assembly sources with the ".S" extension are first +# run through the C preprocessor. Sources with the ".s" extension are not. +#------------------------------------------------------------------------------ +OBJS = $(sort $(addprefix $(OBJ_DIR)/, \ + $(patsubst %.c, %.o, $(patsubst %.C, %.o, $(C_SRCS))) \ + $(patsubst %.cxx, %.o, $(patsubst %.CXX, %.o, \ + $(patsubst %.cc, %.o, $(patsubst %.CC, %.o, \ + $(patsubst %.cpp, %.o, $(patsubst %.CPP, %.o, \ + $(CXX_SRCS) )))))) \ + $(patsubst %.S, %.o, $(patsubst %.s, %.o, $(ASM_SRCS))) )) + +# List of dependancy files for each object file. +DEPS = $(OBJS:.o=.d) + + +# Rules to force your project to rebuild or relink +# .force_relink file will cause any application that depends on this project to relink +# .force_rebuild file will cause this project to rebuild object files +# .force_rebuild_all file will cause this project and any project that depends on this project to rebuild object files + +FORCE_RELINK_DEP := .force_relink +FORCE_REBUILD_DEP := .force_rebuild +FORCE_REBUILD_ALL_DEP := .force_rebuild_all +FORCE_REBUILD_DEP_LIST := $(FORCE_RELINK_DEP) $(FORCE_REBUILD_DEP) $(FORCE_REBUILD_ALL_DEP) + +$(FORCE_REBUILD_DEP_LIST): + +$(OBJS): $(wildcard $(FORCE_REBUILD_DEP)) $(wildcard $(FORCE_REBUILD_ALL_DEP)) + + +#------------------------------------------------------------------------------ +# BUILD RULES: ALL & CLEAN +#------------------------------------------------------------------------------ +.DELETE_ON_ERROR: + +.PHONY: all +all: build_pre_process +all: Makefile $(GENERATED_FILES) $(BSP_LIB) $(NEWLIB_DIR) +all: build_post_process + + +# clean: remove .o/.a/.d +.PHONY: clean +clean: + @$(RM) -r $(BSP_LIB) $(OBJ_DIR) $(FORCE_REBUILD_DEP_LIST) +ifneq ($(wildcard $(NEWLIB_DIR)),) + @$(RM) -r $(NEWLIB_DIR) +endif + @$(ECHO) [BSP clean complete] + + +#------------------------------------------------------------------------------ +# BUILD PRE/POST PROCESS +#------------------------------------------------------------------------------ +build_pre_process : + $(BUILD_PRE_PROCESS) + +build_post_process : + $(BUILD_POST_PROCESS) + +.PHONY: build_pre_process build_post_process + + + +#------------------------------------------------------------------------------ +# MAKEFILE UP TO DATE? +# +# Is this very Makefile up to date? Someone may have changed the BSP settings +# file or the associated target hardware. +#------------------------------------------------------------------------------ +# Skip this check when clean is the only target +ifneq ($(MAKECMDGOALS),clean) + +ifneq ($(wildcard $(SETTINGS_FILE)),$(SETTINGS_FILE)) +$(warning Warning: BSP Settings File $(SETTINGS_FILE) could not be found.) +endif + +Makefile: $(wildcard $(SETTINGS_FILE)) + @$(ECHO) Makefile not up to date. + @$(ECHO) $(SETTINGS_FILE) has been modified since the BSP Makefile was generated. + @$(ECHO) + @$(ECHO) Generate the BSP to update the Makefile, and then build again. + @$(ECHO) + @$(ECHO) To generate from Eclipse: + @$(ECHO) " 1. Right-click the BSP project." + @$(ECHO) " 2. In the Nios II Menu, click Generate BSP." + @$(ECHO) + @$(ECHO) To generate from the command line: + @$(ECHO) " nios2-bsp-generate-files --settings= --bsp-dir=" + @$(ECHO) + @exit 1 + +ifneq ($(wildcard $(SOPC_FILE)),$(SOPC_FILE)) +$(warning Warning: SOPC File $(SOPC_FILE) could not be found.) +endif + +public.mk: $(wildcard $(SOPC_FILE)) + @$(ECHO) Makefile not up to date. + @$(ECHO) $(SOPC_FILE) has been modified since the BSP was generated. + @$(ECHO) + @$(ECHO) Generate the BSP to update the Makefile, and then build again. + @$(ECHO) + @$(ECHO) To generate from Eclipse: + @$(ECHO) " 1. Right-click the BSP project." + @$(ECHO) " 2. In the Nios II Menu, click Generate BSP." + @$(ECHO) + @$(ECHO) To generate from the command line: + @$(ECHO) " nios2-bsp-generate-files --settings= --bsp-dir=" + @$(ECHO) + @exit 1 + +endif # $(MAKECMDGOALS) != clean + +#------------------------------------------------------------------------------ +# PATTERN RULES TO BUILD OBJECTS +#------------------------------------------------------------------------------ +$(OBJ_DIR)/%.o: %.c + @$(ECHO) Compiling $( + +/* + * Device headers + */ + +#include "altera_nios2_qsys_irq.h" +#include "altera_avalon_jtag_uart.h" + +/* + * Allocate the device storage + */ + +ALTERA_NIOS2_QSYS_IRQ_INSTANCE ( NIOS2_PROCESSOR, nios2_processor); +ALTERA_AVALON_JTAG_UART_INSTANCE ( JTAG_UART, jtag_uart); + +/* + * Initialize the interrupt controller devices + * and then enable interrupts in the CPU. + * Called before alt_sys_init(). + * The "base" parameter is ignored and only + * present for backwards-compatibility. + */ + +void alt_irq_init ( const void* base ) +{ + ALTERA_NIOS2_QSYS_IRQ_INIT ( NIOS2_PROCESSOR, nios2_processor); + alt_irq_cpu_enable_interrupts(); +} + +/* + * Initialize the non-interrupt controller devices. + * Called after alt_irq_init(). + */ + +void alt_sys_init( void ) +{ + ALTERA_AVALON_JTAG_UART_INIT ( JTAG_UART, jtag_uart); +} diff --git a/software/qsys_tutorial_test_bsp/create-this-bsp b/software/qsys_tutorial_test_bsp/create-this-bsp new file mode 100644 index 0000000..d95439e --- /dev/null +++ b/software/qsys_tutorial_test_bsp/create-this-bsp @@ -0,0 +1,49 @@ +#!/bin/bash +# +# This script creates the ucosii_net_zipfs Board Support Package (BSP). + +BSP_TYPE=hal +BSP_DIR=. +SOPC_DIR=../../ +SOPC_FILE=C:/Users/takayun/Desktop/qsys_tutorial/nios_system.sopcinfo +NIOS2_BSP_ARGS="--set hal.max_file_descriptors 4 --set hal.enable_small_c_library true --set hal.sys_clk_timer none --set hal.timestamp_timer none --set hal.enable_exit false --set hal.enable_c_plus_plus false --set hal.enable_lightweight_device_driver_api true --set hal.enable_clean_exit false --set hal.enable_sim_optimize false --set hal.enable_reduced_device_drivers true --set hal.make.bsp_cflags_optimization '-Os'" +CPU_NAME= + + +# Don't run make if create-this-app script is called with --no-make arg +SKIP_MAKE= +while [ $# -gt 0 ] +do + case "$1" in + --no-make) + SKIP_MAKE=1 + ;; + *) + NIOS2_BSP_ARGS="$NIOS2_BSP_ARGS $1" + ;; + esac + shift +done + + +# Run nios2-bsp utility to create a hal BSP in this directory +# for the system with a .sopc file in $SOPC_FILE. +# Deprecating $SOPC_DIR in 10.1. Multiple .sopcinfo files in a directory may exist. + +if [ -z "$SOPC_FILE" ]; then + echo "WARNING: Use of a directory for locating a .sopcinfo file is deprecated in 10.1. Multiple .sopcinfo files may exist. You must specify the full .sopcinfo path." + cmd="nios2-bsp $BSP_TYPE $BSP_DIR $SOPC_DIR $NIOS2_BSP_ARGS $CPU_NAME" +else + cmd="nios2-bsp $BSP_TYPE $BSP_DIR $SOPC_FILE $NIOS2_BSP_ARGS $CPU_NAME" +fi + + +echo "create-this-bsp: Running \"$cmd\"" +$cmd || { + echo "$cmd failed" + exit 1 +} +if [ -z "$SKIP_MAKE" ]; then + echo "create-this-bsp: Running make" + make +fi diff --git a/software/qsys_tutorial_test_bsp/drivers/inc/altera_avalon_jtag_uart.h b/software/qsys_tutorial_test_bsp/drivers/inc/altera_avalon_jtag_uart.h new file mode 100644 index 0000000..95d4a99 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/drivers/inc/altera_avalon_jtag_uart.h @@ -0,0 +1,198 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#ifndef __ALT_AVALON_JTAG_UART_H__ +#define __ALT_AVALON_JTAG_UART_H__ + +#include + +#include "sys/alt_alarm.h" +#include "sys/alt_warning.h" + +#include "os/alt_sem.h" +#include "os/alt_flag.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * If the user wants all drivers to be small rather than fast then make sure + * this one is marked as needing to be small. + */ +#if defined ALT_USE_SMALL_DRIVERS && !defined ALTERA_AVALON_JTAG_UART_SMALL +#define ALTERA_AVALON_JTAG_UART_SMALL +#endif + +/* + * If the user wants to ignore FIFO full error after timeout + */ +#if defined ALT_JTAG_UART_IGNORE_FIFO_FULL_ERROR && !defined ALTERA_AVALON_JTAG_UART_IGNORE_FIFO_FULL_ERROR +#define ALTERA_AVALON_JTAG_UART_IGNORE_FIFO_FULL_ERROR +#endif + +/* + * Constants that can be overriden. + */ +#ifndef ALTERA_AVALON_JTAG_UART_DEFAULT_TIMEOUT +#define ALTERA_AVALON_JTAG_UART_DEFAULT_TIMEOUT 10 +#endif + +#ifndef ALTERA_AVALON_JTAG_UART_BUF_LEN +#define ALTERA_AVALON_JTAG_UART_BUF_LEN 2048 +#endif + +/* + * ALT_JTAG_UART_READ_RDY and ALT_JTAG_UART_WRITE_RDY are the bitmasks + * that define uC/OS-II event flags that are releated to this device. + * + * ALT_JTAG_UART_READ_RDY indicates that there is read data in the buffer + * ready to be processed. ALT_JTAG_UART_WRITE_RDY indicates that the transmitter is + * ready for more data. + */ +#define ALT_JTAG_UART_READ_RDY 0x1 +#define ALT_JTAG_UART_WRITE_RDY 0x2 +#define ALT_JTAG_UART_TIMEOUT 0x4 + +/* + * State structure definition. Each instance of the driver uses one + * of these structures to hold its associated state. + */ + +typedef struct altera_avalon_jtag_uart_state_s +{ + unsigned int base; + +#ifndef ALTERA_AVALON_JTAG_UART_SMALL + + unsigned int timeout; /* Timeout until host is assumed inactive */ + alt_alarm alarm; + unsigned int irq_enable; + unsigned int host_inactive; + + ALT_SEM (read_lock) + ALT_SEM (write_lock) + ALT_FLAG_GRP (events) + + /* The variables below are volatile because they are modified by the + * interrupt routine. Making them volatile and reading them atomically + * means that we don't need any large critical sections. + */ + volatile unsigned int rx_in; + unsigned int rx_out; + unsigned int tx_in; + volatile unsigned int tx_out; + char rx_buf[ALTERA_AVALON_JTAG_UART_BUF_LEN]; + char tx_buf[ALTERA_AVALON_JTAG_UART_BUF_LEN]; + +#endif /* !ALTERA_AVALON_JTAG_UART_SMALL */ + +} altera_avalon_jtag_uart_state; + +/* + * Macros used by alt_sys_init when the ALT file descriptor facility isn't used. + */ + +#ifdef ALTERA_AVALON_JTAG_UART_SMALL + +#define ALTERA_AVALON_JTAG_UART_STATE_INSTANCE(name, state) \ + altera_avalon_jtag_uart_state state = \ + { \ + name##_BASE, \ + } + +#define ALTERA_AVALON_JTAG_UART_STATE_INIT(name, state) + +#else /* !ALTERA_AVALON_JTAG_UART_SMALL */ + +#define ALTERA_AVALON_JTAG_UART_STATE_INSTANCE(name, state) \ + altera_avalon_jtag_uart_state state = \ + { \ + name##_BASE, \ + ALTERA_AVALON_JTAG_UART_DEFAULT_TIMEOUT, \ + } + +/* + * Externally referenced routines + */ +extern void altera_avalon_jtag_uart_init(altera_avalon_jtag_uart_state* sp, + int irq_controller_id, int irq); + +#define ALTERA_AVALON_JTAG_UART_STATE_INIT(name, state) \ + { \ + if (name##_IRQ == ALT_IRQ_NOT_CONNECTED) \ + { \ + ALT_LINK_ERROR ("Error: Interrupt not connected for " #name ". " \ + "You have selected the interrupt driven version of " \ + "the ALTERA Avalon JTAG UART driver, but the " \ + "interrupt is not connected for this device. You can " \ + "select a polled mode driver by checking the 'small " \ + "driver' option in the HAL configuration window, or " \ + "by using the -DALTERA_AVALON_JTAG_UART_SMALL " \ + "preprocessor flag."); \ + } \ + else \ + altera_avalon_jtag_uart_init(&state, \ + name##_IRQ_INTERRUPT_CONTROLLER_ID, \ + name##_IRQ); \ + } + +#endif /* ALTERA_AVALON_JTAG_UART_SMALL */ + +/* + * Include in case non-direct version of driver required. + */ +#include "altera_avalon_jtag_uart_fd.h" + +/* + * Map alt_sys_init macros to direct or non-direct versions. + */ +#ifdef ALT_USE_DIRECT_DRIVERS + +#define ALTERA_AVALON_JTAG_UART_INSTANCE(name, state) \ + ALTERA_AVALON_JTAG_UART_STATE_INSTANCE(name, state) +#define ALTERA_AVALON_JTAG_UART_INIT(name, state) \ + ALTERA_AVALON_JTAG_UART_STATE_INIT(name, state) + +#else /* !ALT_USE_DIRECT_DRIVERS */ + +#define ALTERA_AVALON_JTAG_UART_INSTANCE(name, dev) \ + ALTERA_AVALON_JTAG_UART_DEV_INSTANCE(name, dev) +#define ALTERA_AVALON_JTAG_UART_INIT(name, dev) \ + ALTERA_AVALON_JTAG_UART_DEV_INIT(name, dev) + +#endif /* ALT_USE_DIRECT_DRIVERS */ + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __ALT_AVALON_JTAG_UART_H__ */ diff --git a/software/qsys_tutorial_test_bsp/drivers/inc/altera_avalon_jtag_uart_fd.h b/software/qsys_tutorial_test_bsp/drivers/inc/altera_avalon_jtag_uart_fd.h new file mode 100644 index 0000000..b3c3200 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/drivers/inc/altera_avalon_jtag_uart_fd.h @@ -0,0 +1,125 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2007 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#ifndef __ALT_AVALON_JTAG_UART_FD_H__ +#define __ALT_AVALON_JTAG_UART_FD_H__ + +#include "sys/alt_dev.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * Externally referenced routines + */ +extern int altera_avalon_jtag_uart_read_fd (alt_fd* fd, char* ptr, int len); +extern int altera_avalon_jtag_uart_write_fd (alt_fd* fd, const char* ptr, + int len); + +/* + * Device structure definition. This is needed by alt_sys_init in order to + * reserve memory for the device instance. + */ + +typedef struct altera_avalon_jtag_uart_dev_s +{ + alt_dev dev; + altera_avalon_jtag_uart_state state; +} altera_avalon_jtag_uart_dev; + +/* + * Macros used by alt_sys_init when the ALT file descriptor facility is used. + */ + +#ifdef ALTERA_AVALON_JTAG_UART_SMALL + +#define ALTERA_AVALON_JTAG_UART_DEV_INSTANCE(name, d) \ + static altera_avalon_jtag_uart_dev d = \ + { \ + { \ + ALT_LLIST_ENTRY, \ + name##_NAME, \ + NULL, /* open */ \ + NULL, /* close */ \ + altera_avalon_jtag_uart_read_fd, \ + altera_avalon_jtag_uart_write_fd, \ + NULL, /* lseek */ \ + NULL, /* fstat */ \ + NULL, /* ioctl */ \ + }, \ + { \ + name##_BASE, \ + } \ + } + +#define ALTERA_AVALON_JTAG_UART_DEV_INIT(name, d) alt_dev_reg (&d.dev) + +#else /* !ALTERA_AVALON_JTAG_UART_SMALL */ + +extern int altera_avalon_jtag_uart_close_fd(alt_fd* fd); +extern int altera_avalon_jtag_uart_ioctl_fd (alt_fd* fd, int req, void* arg); + +#define ALTERA_AVALON_JTAG_UART_DEV_INSTANCE(name, d) \ + static altera_avalon_jtag_uart_dev d = \ + { \ + { \ + ALT_LLIST_ENTRY, \ + name##_NAME, \ + NULL, /* open */ \ + altera_avalon_jtag_uart_close_fd, \ + altera_avalon_jtag_uart_read_fd, \ + altera_avalon_jtag_uart_write_fd, \ + NULL, /* lseek */ \ + NULL, /* fstat */ \ + altera_avalon_jtag_uart_ioctl_fd, \ + }, \ + { \ + name##_BASE, \ + ALTERA_AVALON_JTAG_UART_DEFAULT_TIMEOUT, \ + } \ + } + +#define ALTERA_AVALON_JTAG_UART_DEV_INIT(name, d) \ + { \ + ALTERA_AVALON_JTAG_UART_STATE_INIT(name, d.state); \ + \ + /* make the device available to the system */ \ + alt_dev_reg(&d.dev); \ + } + +#endif /* ALTERA_AVALON_JTAG_UART_SMALL */ + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __ALT_AVALON_JTAG_UART_FD_H__ */ diff --git a/software/qsys_tutorial_test_bsp/drivers/inc/altera_avalon_jtag_uart_regs.h b/software/qsys_tutorial_test_bsp/drivers/inc/altera_avalon_jtag_uart_regs.h new file mode 100644 index 0000000..7f97160 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/drivers/inc/altera_avalon_jtag_uart_regs.h @@ -0,0 +1,73 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#ifndef __ALTERA_AVALON_JTAG_UART_REGS_H__ +#define __ALTERA_AVALON_JTAG_UART_REGS_H__ + +#include + +#define ALTERA_AVALON_JTAG_UART_DATA_REG 0 +#define IOADDR_ALTERA_AVALON_JTAG_UART_DATA(base) \ + __IO_CALC_ADDRESS_NATIVE(base, ALTERA_AVALON_JTAG_UART_DATA_REG) +#define IORD_ALTERA_AVALON_JTAG_UART_DATA(base) \ + IORD(base, ALTERA_AVALON_JTAG_UART_DATA_REG) +#define IOWR_ALTERA_AVALON_JTAG_UART_DATA(base, data) \ + IOWR(base, ALTERA_AVALON_JTAG_UART_DATA_REG, data) + +#define ALTERA_AVALON_JTAG_UART_DATA_DATA_MSK (0x000000FF) +#define ALTERA_AVALON_JTAG_UART_DATA_DATA_OFST (0) +#define ALTERA_AVALON_JTAG_UART_DATA_RVALID_MSK (0x00008000) +#define ALTERA_AVALON_JTAG_UART_DATA_RVALID_OFST (15) +#define ALTERA_AVALON_JTAG_UART_DATA_RAVAIL_MSK (0xFFFF0000) +#define ALTERA_AVALON_JTAG_UART_DATA_RAVAIL_OFST (16) + + +#define ALTERA_AVALON_JTAG_UART_CONTROL_REG 1 +#define IOADDR_ALTERA_AVALON_JTAG_UART_CONTROL(base) \ + __IO_CALC_ADDRESS_NATIVE(base, ALTERA_AVALON_JTAG_UART_CONTROL_REG) +#define IORD_ALTERA_AVALON_JTAG_UART_CONTROL(base) \ + IORD(base, ALTERA_AVALON_JTAG_UART_CONTROL_REG) +#define IOWR_ALTERA_AVALON_JTAG_UART_CONTROL(base, data) \ + IOWR(base, ALTERA_AVALON_JTAG_UART_CONTROL_REG, data) + +#define ALTERA_AVALON_JTAG_UART_CONTROL_RE_MSK (0x00000001) +#define ALTERA_AVALON_JTAG_UART_CONTROL_RE_OFST (0) +#define ALTERA_AVALON_JTAG_UART_CONTROL_WE_MSK (0x00000002) +#define ALTERA_AVALON_JTAG_UART_CONTROL_WE_OFST (1) +#define ALTERA_AVALON_JTAG_UART_CONTROL_RI_MSK (0x00000100) +#define ALTERA_AVALON_JTAG_UART_CONTROL_RI_OFST (8) +#define ALTERA_AVALON_JTAG_UART_CONTROL_WI_MSK (0x00000200) +#define ALTERA_AVALON_JTAG_UART_CONTROL_WI_OFST (9) +#define ALTERA_AVALON_JTAG_UART_CONTROL_AC_MSK (0x00000400) +#define ALTERA_AVALON_JTAG_UART_CONTROL_AC_OFST (10) +#define ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_MSK (0xFFFF0000) +#define ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_OFST (16) + +#endif /* __ALTERA_AVALON_JTAG_UART_REGS_H__ */ diff --git a/software/qsys_tutorial_test_bsp/drivers/inc/altera_avalon_pio_regs.h b/software/qsys_tutorial_test_bsp/drivers/inc/altera_avalon_pio_regs.h new file mode 100644 index 0000000..052439f --- /dev/null +++ b/software/qsys_tutorial_test_bsp/drivers/inc/altera_avalon_pio_regs.h @@ -0,0 +1,67 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#ifndef __ALTERA_AVALON_PIO_REGS_H__ +#define __ALTERA_AVALON_PIO_REGS_H__ + +#include + +#define IOADDR_ALTERA_AVALON_PIO_DATA(base) __IO_CALC_ADDRESS_NATIVE(base, 0) +#define IORD_ALTERA_AVALON_PIO_DATA(base) IORD(base, 0) +#define IOWR_ALTERA_AVALON_PIO_DATA(base, data) IOWR(base, 0, data) + +#define IOADDR_ALTERA_AVALON_PIO_DIRECTION(base) __IO_CALC_ADDRESS_NATIVE(base, 1) +#define IORD_ALTERA_AVALON_PIO_DIRECTION(base) IORD(base, 1) +#define IOWR_ALTERA_AVALON_PIO_DIRECTION(base, data) IOWR(base, 1, data) + +#define IOADDR_ALTERA_AVALON_PIO_IRQ_MASK(base) __IO_CALC_ADDRESS_NATIVE(base, 2) +#define IORD_ALTERA_AVALON_PIO_IRQ_MASK(base) IORD(base, 2) +#define IOWR_ALTERA_AVALON_PIO_IRQ_MASK(base, data) IOWR(base, 2, data) + +#define IOADDR_ALTERA_AVALON_PIO_EDGE_CAP(base) __IO_CALC_ADDRESS_NATIVE(base, 3) +#define IORD_ALTERA_AVALON_PIO_EDGE_CAP(base) IORD(base, 3) +#define IOWR_ALTERA_AVALON_PIO_EDGE_CAP(base, data) IOWR(base, 3, data) + + +#define IOADDR_ALTERA_AVALON_PIO_SET_BIT(base) __IO_CALC_ADDRESS_NATIVE(base, 4) +#define IORD_ALTERA_AVALON_PIO_SET_BITS(base) IORD(base, 4) +#define IOWR_ALTERA_AVALON_PIO_SET_BITS(base, data) IOWR(base, 4, data) + +#define IOADDR_ALTERA_AVALON_PIO_CLEAR_BITS(base) __IO_CALC_ADDRESS_NATIVE(base, 5) +#define IORD_ALTERA_AVALON_PIO_CLEAR_BITS(base) IORD(base, 5) +#define IOWR_ALTERA_AVALON_PIO_CLEAR_BITS(base, data) IOWR(base, 5, data) + + + +/* Defintions for direction-register operation with bi-directional PIOs */ +#define ALTERA_AVALON_PIO_DIRECTION_INPUT 0 +#define ALTERA_AVALON_PIO_DIRECTION_OUTPUT 1 + +#endif /* __ALTERA_AVALON_PIO_REGS_H__ */ diff --git a/software/qsys_tutorial_test_bsp/drivers/src/altera_avalon_jtag_uart_fd.c b/software/qsys_tutorial_test_bsp/drivers/src/altera_avalon_jtag_uart_fd.c new file mode 100644 index 0000000..53dfc3b --- /dev/null +++ b/software/qsys_tutorial_test_bsp/drivers/src/altera_avalon_jtag_uart_fd.c @@ -0,0 +1,86 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2007 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "alt_types.h" +#include "sys/alt_dev.h" +#include "altera_avalon_jtag_uart.h" + +extern int altera_avalon_jtag_uart_read(altera_avalon_jtag_uart_state* sp, + char* buffer, int space, int flags); +extern int altera_avalon_jtag_uart_write(altera_avalon_jtag_uart_state* sp, + const char* ptr, int count, int flags); +extern int altera_avalon_jtag_uart_ioctl(altera_avalon_jtag_uart_state* sp, + int req, void* arg); +extern int altera_avalon_jtag_uart_close(altera_avalon_jtag_uart_state* sp, + int flags); + +/* ----------------------------------------------------------------------- */ +/* --------------------- WRAPPERS FOR ALT FD SUPPORT --------------------- */ +/* + * + */ + +int +altera_avalon_jtag_uart_read_fd(alt_fd* fd, char* buffer, int space) +{ + altera_avalon_jtag_uart_dev* dev = (altera_avalon_jtag_uart_dev*) fd->dev; + + return altera_avalon_jtag_uart_read(&dev->state, buffer, space, + fd->fd_flags); +} + +int +altera_avalon_jtag_uart_write_fd(alt_fd* fd, const char* buffer, int space) +{ + altera_avalon_jtag_uart_dev* dev = (altera_avalon_jtag_uart_dev*) fd->dev; + + return altera_avalon_jtag_uart_write(&dev->state, buffer, space, + fd->fd_flags); +} + +#ifndef ALTERA_AVALON_JTAG_UART_SMALL + +int +altera_avalon_jtag_uart_close_fd(alt_fd* fd) +{ + altera_avalon_jtag_uart_dev* dev = (altera_avalon_jtag_uart_dev*) fd->dev; + + return altera_avalon_jtag_uart_close(&dev->state, fd->fd_flags); +} + +int +altera_avalon_jtag_uart_ioctl_fd(alt_fd* fd, int req, void* arg) +{ + altera_avalon_jtag_uart_dev* dev = (altera_avalon_jtag_uart_dev*) fd->dev; + + return altera_avalon_jtag_uart_ioctl(&dev->state, req, arg); +} + +#endif /* ALTERA_AVALON_JTAG_UART_SMALL */ diff --git a/software/qsys_tutorial_test_bsp/drivers/src/altera_avalon_jtag_uart_init.c b/software/qsys_tutorial_test_bsp/drivers/src/altera_avalon_jtag_uart_init.c new file mode 100644 index 0000000..7317bec --- /dev/null +++ b/software/qsys_tutorial_test_bsp/drivers/src/altera_avalon_jtag_uart_init.c @@ -0,0 +1,256 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2007 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include +#include +#include +#include + +#include + +#include "sys/alt_irq.h" +#include "sys/alt_alarm.h" +#include "sys/ioctl.h" +#include "alt_types.h" + +#include "altera_avalon_jtag_uart_regs.h" +#include "altera_avalon_jtag_uart.h" + +#include "sys/alt_log_printf.h" + +#ifndef ALTERA_AVALON_JTAG_UART_SMALL + +/* ----------------------------------------------------------- */ +/* ------------------------- FAST DRIVER --------------------- */ +/* ----------------------------------------------------------- */ +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT +static void altera_avalon_jtag_uart_irq(void* context); +#else +static void altera_avalon_jtag_uart_irq(void* context, alt_u32 id); +#endif +static alt_u32 altera_avalon_jtag_uart_timeout(void* context); + +/* + * Driver initialization code. Register interrupts and start a timer + * which we can use to check whether the host is there. + * Return 1 on sucessful IRQ register and 0 on failure. + */ + +void altera_avalon_jtag_uart_init(altera_avalon_jtag_uart_state* sp, + int irq_controller_id, int irq) +{ + ALT_FLAG_CREATE(&sp->events, 0); + ALT_SEM_CREATE(&sp->read_lock, 1); + ALT_SEM_CREATE(&sp->write_lock, 1); + + /* enable read interrupts at the device */ + sp->irq_enable = ALTERA_AVALON_JTAG_UART_CONTROL_RE_MSK; + + IOWR_ALTERA_AVALON_JTAG_UART_CONTROL(sp->base, sp->irq_enable); + + /* register the interrupt handler */ +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT + alt_ic_isr_register(irq_controller_id, irq, altera_avalon_jtag_uart_irq, + sp, NULL); +#else + alt_irq_register(irq, sp, altera_avalon_jtag_uart_irq); +#endif + + /* Register an alarm to go off every second to check for presence of host */ + sp->host_inactive = 0; + + if (alt_alarm_start(&sp->alarm, alt_ticks_per_second(), + &altera_avalon_jtag_uart_timeout, sp) < 0) + { + /* If we can't set the alarm then record "don't know if host present" + * and behave as though the host is present. + */ + sp->timeout = INT_MAX; + } + + /* ALT_LOG - see altera_hal/HAL/inc/sys/alt_log_printf.h */ + ALT_LOG_JTAG_UART_ALARM_REGISTER(sp, sp->base); +} + +/* + * Interrupt routine + */ +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT +static void altera_avalon_jtag_uart_irq(void* context) +#else +static void altera_avalon_jtag_uart_irq(void* context, alt_u32 id) +#endif +{ + altera_avalon_jtag_uart_state* sp = (altera_avalon_jtag_uart_state*) context; + unsigned int base = sp->base; + + /* ALT_LOG - see altera_hal/HAL/inc/sys/alt_log_printf.h */ + ALT_LOG_JTAG_UART_ISR_FUNCTION(base, sp); + + for ( ; ; ) + { + unsigned int control = IORD_ALTERA_AVALON_JTAG_UART_CONTROL(base); + + /* Return once nothing more to do */ + if ((control & (ALTERA_AVALON_JTAG_UART_CONTROL_RI_MSK | ALTERA_AVALON_JTAG_UART_CONTROL_WI_MSK)) == 0) + break; + + if (control & ALTERA_AVALON_JTAG_UART_CONTROL_RI_MSK) + { + /* process a read irq. Start by assuming that there is data in the + * receive FIFO (otherwise why would we have been interrupted?) + */ + unsigned int data = 1 << ALTERA_AVALON_JTAG_UART_DATA_RAVAIL_OFST; + + for ( ; ; ) + { + /* Check whether there is space in the buffer. If not then we must not + * read any characters from the buffer as they will be lost. + */ + unsigned int next = (sp->rx_in + 1) % ALTERA_AVALON_JTAG_UART_BUF_LEN; + if (next == sp->rx_out) + break; + + /* Try to remove a character from the FIFO and find out whether there + * are any more characters remaining. + */ + data = IORD_ALTERA_AVALON_JTAG_UART_DATA(base); + + if ((data & ALTERA_AVALON_JTAG_UART_DATA_RVALID_MSK) == 0) + break; + + sp->rx_buf[sp->rx_in] = (data & ALTERA_AVALON_JTAG_UART_DATA_DATA_MSK) >> ALTERA_AVALON_JTAG_UART_DATA_DATA_OFST; + sp->rx_in = (sp->rx_in + 1) % ALTERA_AVALON_JTAG_UART_BUF_LEN; + + /* Post an event to notify jtag_uart_read that a character has been read */ + ALT_FLAG_POST (sp->events, ALT_JTAG_UART_READ_RDY, OS_FLAG_SET); + } + + if (data & ALTERA_AVALON_JTAG_UART_DATA_RAVAIL_MSK) + { + /* If there is still data available here then the buffer is full + * so turn off receive interrupts until some space becomes available. + */ + sp->irq_enable &= ~ALTERA_AVALON_JTAG_UART_CONTROL_RE_MSK; + IOWR_ALTERA_AVALON_JTAG_UART_CONTROL(base, sp->irq_enable); + + /* Dummy read to ensure IRQ is cleared prior to ISR completion */ + IORD_ALTERA_AVALON_JTAG_UART_CONTROL(base); + } + } + + if (control & ALTERA_AVALON_JTAG_UART_CONTROL_WI_MSK) + { + /* process a write irq */ + unsigned int space = (control & ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_MSK) >> ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_OFST; + + while (space > 0 && sp->tx_out != sp->tx_in) + { + IOWR_ALTERA_AVALON_JTAG_UART_DATA(base, sp->tx_buf[sp->tx_out]); + + sp->tx_out = (sp->tx_out + 1) % ALTERA_AVALON_JTAG_UART_BUF_LEN; + + /* Post an event to notify jtag_uart_write that a character has been written */ + ALT_FLAG_POST (sp->events, ALT_JTAG_UART_WRITE_RDY, OS_FLAG_SET); + + space--; + } + + if (space > 0) + { + /* If we don't have any more data available then turn off the TX interrupt */ + sp->irq_enable &= ~ALTERA_AVALON_JTAG_UART_CONTROL_WE_MSK; + IOWR_ALTERA_AVALON_JTAG_UART_CONTROL(sp->base, sp->irq_enable); + + /* Dummy read to ensure IRQ is cleared prior to ISR completion */ + IORD_ALTERA_AVALON_JTAG_UART_CONTROL(base); + } + } + } +} + +/* + * Timeout routine is called every second + */ + +static alt_u32 +altera_avalon_jtag_uart_timeout(void* context) +{ + altera_avalon_jtag_uart_state* sp = (altera_avalon_jtag_uart_state *) context; + + unsigned int control = IORD_ALTERA_AVALON_JTAG_UART_CONTROL(sp->base); + + if (control & ALTERA_AVALON_JTAG_UART_CONTROL_AC_MSK) + { + IOWR_ALTERA_AVALON_JTAG_UART_CONTROL(sp->base, sp->irq_enable | ALTERA_AVALON_JTAG_UART_CONTROL_AC_MSK); + sp->host_inactive = 0; + } + else if (sp->host_inactive < INT_MAX - 2) { + sp->host_inactive++; + + if (sp->host_inactive >= sp->timeout) { + /* Post an event to indicate host is inactive (for jtag_uart_read */ + ALT_FLAG_POST (sp->events, ALT_JTAG_UART_TIMEOUT, OS_FLAG_SET); + } + } + + return alt_ticks_per_second(); +} + +/* + * The close() routine is implemented to drain the JTAG UART transmit buffer + * when not in "small" mode. This routine will wait for transimt data to be + * emptied unless a timeout from host-activity occurs. If the driver flags + * have been set to non-blocking mode, this routine will exit immediately if + * any data remains. This routine should be called indirectly (i.e. though + * the C library close() routine) so that the file descriptor associated + * with the relevant stream (i.e. stdout) can be closed as well. This routine + * does not manage file descriptors. + * + * The close routine is not implemented for the small driver; instead it will + * map to null. This is because the small driver simply waits while characters + * are transmitted; there is no interrupt-serviced buffer to empty + */ +int altera_avalon_jtag_uart_close(altera_avalon_jtag_uart_state* sp, int flags) +{ + /* + * Wait for all transmit data to be emptied by the JTAG UART ISR, or + * for a host-inactivity timeout, in which case transmit data will be lost + */ + while ( (sp->tx_out != sp->tx_in) && (sp->host_inactive < sp->timeout) ) { + if (flags & O_NONBLOCK) { + return -EWOULDBLOCK; + } + } + + return 0; +} + +#endif /* !ALTERA_AVALON_JTAG_UART_SMALL */ diff --git a/software/qsys_tutorial_test_bsp/drivers/src/altera_avalon_jtag_uart_ioctl.c b/software/qsys_tutorial_test_bsp/drivers/src/altera_avalon_jtag_uart_ioctl.c new file mode 100644 index 0000000..cf71e6f --- /dev/null +++ b/software/qsys_tutorial_test_bsp/drivers/src/altera_avalon_jtag_uart_ioctl.c @@ -0,0 +1,86 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include +#include +#include +#include + +#include + +#include "sys/ioctl.h" +#include "alt_types.h" + +#include "altera_avalon_jtag_uart_regs.h" +#include "altera_avalon_jtag_uart.h" + +#include "sys/alt_log_printf.h" + +#ifndef ALTERA_AVALON_JTAG_UART_SMALL + +/* ----------------------------------------------------------- */ +/* ------------------------- FAST DRIVER --------------------- */ +/* ----------------------------------------------------------- */ + +int +altera_avalon_jtag_uart_ioctl(altera_avalon_jtag_uart_state* sp, int req, + void* arg) +{ + int rc = -ENOTTY; + + switch (req) + { + case TIOCSTIMEOUT: + /* Set the time to wait until assuming host is not connected */ + if (sp->timeout != INT_MAX) + { + int timeout = *((int *)arg); + sp->timeout = (timeout >= 2 && timeout < INT_MAX) ? timeout : INT_MAX - 1; + rc = 0; + } + break; + + case TIOCGCONNECTED: + /* Find out whether host is connected */ + if (sp->timeout != INT_MAX) + { + *((int *)arg) = (sp->host_inactive < sp->timeout) ? 1 : 0; + rc = 0; + } + break; + + default: + break; + } + + return rc; +} + +#endif /* !ALTERA_AVALON_JTAG_UART_SMALL */ diff --git a/software/qsys_tutorial_test_bsp/drivers/src/altera_avalon_jtag_uart_read.c b/software/qsys_tutorial_test_bsp/drivers/src/altera_avalon_jtag_uart_read.c new file mode 100644 index 0000000..5657adb --- /dev/null +++ b/software/qsys_tutorial_test_bsp/drivers/src/altera_avalon_jtag_uart_read.c @@ -0,0 +1,205 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include +#include +#include +#include + +#include + +#include "sys/alt_irq.h" +#include "sys/alt_alarm.h" +#include "sys/ioctl.h" +#include "alt_types.h" + +#include "altera_avalon_jtag_uart_regs.h" +#include "altera_avalon_jtag_uart.h" + +#include "sys/alt_log_printf.h" + +#ifdef __ucosii__ +#include "includes.h" +#endif /* __ucosii__ */ + +#ifdef ALTERA_AVALON_JTAG_UART_SMALL + +/* ----------------------------------------------------------- */ +/* ----------------------- SMALL DRIVER ---------------------- */ +/* ----------------------------------------------------------- */ + +/* Read routine. The small version blocks until it has at least one byte + * available, it then returns as much as is immediately available without + * waiting any more. It's performance will be very poor without + * interrupts. + */ + +int +altera_avalon_jtag_uart_read(altera_avalon_jtag_uart_state* sp, + char* buffer, int space, int flags) +{ + unsigned int base = sp->base; + + char * ptr = buffer; + char * end = buffer + space; + + while (ptr < end) + { + unsigned int data = IORD_ALTERA_AVALON_JTAG_UART_DATA(base); + + if (data & ALTERA_AVALON_JTAG_UART_DATA_RVALID_MSK) + *ptr++ = (data & ALTERA_AVALON_JTAG_UART_DATA_DATA_MSK) >> ALTERA_AVALON_JTAG_UART_DATA_DATA_OFST; + else if (ptr != buffer) + break; + else if(flags & O_NONBLOCK) + break; + + } + + if (ptr != buffer) + return ptr - buffer; + else if (flags & O_NONBLOCK) + return -EWOULDBLOCK; + else + return -EIO; +} + +#else /* !ALTERA_AVALON_JTAG_UART_SMALL */ + +/* ----------------------------------------------------------- */ +/* ----------------------- FAST DRIVER ----------------------- */ +/* ----------------------------------------------------------- */ + +int +altera_avalon_jtag_uart_read(altera_avalon_jtag_uart_state* sp, + char * buffer, int space, int flags) +{ + char * ptr = buffer; + + alt_irq_context context; + unsigned int n; + + /* + * When running in a multi threaded environment, obtain the "read_lock" + * semaphore. This ensures that reading from the device is thread-safe. + */ + ALT_SEM_PEND (sp->read_lock, 0); + + while (space > 0) + { + unsigned int in, out; + + /* Read as much data as possible */ + do + { + in = sp->rx_in; + out = sp->rx_out; + + if (in >= out) + n = in - out; + else + n = ALTERA_AVALON_JTAG_UART_BUF_LEN - out; + + if (n == 0) + break; /* No more data available */ + + if (n > space) + n = space; + + memcpy(ptr, sp->rx_buf + out, n); + ptr += n; + space -= n; + + sp->rx_out = (out + n) % ALTERA_AVALON_JTAG_UART_BUF_LEN; + } + while (space > 0); + + /* If we read any data then return it */ + if (ptr != buffer) + break; + + /* If in non-blocking mode then return error */ + if (flags & O_NONBLOCK) + break; + +#ifdef __ucosii__ + /* OS Present: Pend on a flag if the OS is running, otherwise spin */ + if(OSRunning == OS_TRUE) { + /* + * When running in a multi-threaded mode, we pend on the read event + * flag set and timeout event flag set in the isr. This avoids wasting CPU + * cycles waiting in this thread, when we could be doing something more + * profitable elsewhere. + */ + ALT_FLAG_PEND (sp->events, + ALT_JTAG_UART_READ_RDY | ALT_JTAG_UART_TIMEOUT, + OS_FLAG_WAIT_SET_ANY + OS_FLAG_CONSUME, + 0); + } + else { + /* Spin until more data arrives or until host disconnects */ + while (in == sp->rx_in && sp->host_inactive < sp->timeout) + ; + } +#else + /* No OS: Always spin */ + while (in == sp->rx_in && sp->host_inactive < sp->timeout) + ; +#endif /* __ucosii__ */ + + if (in == sp->rx_in) + break; + } + + /* + * Now that access to the circular buffer is complete, release the read + * semaphore so that other threads can access the buffer. + */ + + ALT_SEM_POST (sp->read_lock); + + if (ptr != buffer) + { + /* If we read any data then there is space in the buffer so enable interrupts */ + context = alt_irq_disable_all(); + sp->irq_enable |= ALTERA_AVALON_JTAG_UART_CONTROL_RE_MSK; + IOWR_ALTERA_AVALON_JTAG_UART_CONTROL(sp->base, sp->irq_enable); + alt_irq_enable_all(context); + } + + if (ptr != buffer) + return ptr - buffer; + else if (flags & O_NONBLOCK) + return -EWOULDBLOCK; + else + return -EIO; +} + +#endif /* ALTERA_AVALON_JTAG_UART_SMALL */ diff --git a/software/qsys_tutorial_test_bsp/drivers/src/altera_avalon_jtag_uart_write.c b/software/qsys_tutorial_test_bsp/drivers/src/altera_avalon_jtag_uart_write.c new file mode 100644 index 0000000..11aeca1 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/drivers/src/altera_avalon_jtag_uart_write.c @@ -0,0 +1,217 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include +#include +#include +#include + +#include + +#include "sys/alt_irq.h" +#include "sys/alt_alarm.h" +#include "sys/ioctl.h" +#include "alt_types.h" + +#include "altera_avalon_jtag_uart_regs.h" +#include "altera_avalon_jtag_uart.h" + +#include "sys/alt_log_printf.h" + +#ifdef __ucosii__ +#include "includes.h" +#endif /* __ucosii__ */ + +#ifdef ALTERA_AVALON_JTAG_UART_SMALL + +/* ----------------------------------------------------------- */ +/* ------------------------ SMALL DRIVER --------------------- */ +/* ----------------------------------------------------------- */ + +/* Write routine. The small version blocks when there is no space to write + * into, so it's performance will be very bad if you are writing more than + * one FIFOs worth of data. But you said you didn't want to use interrupts :-) + */ + +int altera_avalon_jtag_uart_write(altera_avalon_jtag_uart_state* sp, + const char * ptr, int count, int flags) +{ + unsigned int base = sp->base; + + const char * end = ptr + count; + + while (ptr < end) + if ((IORD_ALTERA_AVALON_JTAG_UART_CONTROL(base) & ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_MSK) != 0) + IOWR_ALTERA_AVALON_JTAG_UART_DATA(base, *ptr++); + + return count; +} + +#else /* !ALTERA_AVALON_JTAG_UART_SMALL */ + +/* ----------------------------------------------------------- */ +/* ------------------------- FAST DRIVER --------------------- */ +/* ----------------------------------------------------------- */ + +int +altera_avalon_jtag_uart_write(altera_avalon_jtag_uart_state* sp, + const char * ptr, int count, int flags) +{ + /* Remove warning at optimisation level 03 by seting out to 0 */ + unsigned int in, out=0; + unsigned int n; + alt_irq_context context; + + const char * start = ptr; + + /* + * When running in a multi threaded environment, obtain the "write_lock" + * semaphore. This ensures that writing to the device is thread-safe. + */ + ALT_SEM_PEND (sp->write_lock, 0); + + do + { + /* Copy as much as we can into the transmit buffer */ + while (count > 0) + { + /* We need a stable value of the out pointer to calculate the space available */ + in = sp->tx_in; + out = sp->tx_out; + + if (in < out) + n = out - 1 - in; + else if (out > 0) + n = ALTERA_AVALON_JTAG_UART_BUF_LEN - in; + else + n = ALTERA_AVALON_JTAG_UART_BUF_LEN - 1 - in; + + if (n == 0) + break; + + if (n > count) + n = count; + + memcpy(sp->tx_buf + in, ptr, n); + ptr += n; + count -= n; + + sp->tx_in = (in + n) % ALTERA_AVALON_JTAG_UART_BUF_LEN; + } + + /* + * If interrupts are disabled then we could transmit here, we only need + * to enable interrupts if there is no space left in the FIFO + * + * For now kick the interrupt routine every time to make it transmit + * the data + */ + context = alt_irq_disable_all(); + sp->irq_enable |= ALTERA_AVALON_JTAG_UART_CONTROL_WE_MSK; + IOWR_ALTERA_AVALON_JTAG_UART_CONTROL(sp->base, sp->irq_enable); + alt_irq_enable_all(context); + + /* + * If there is any data left then either return now or block until + * some has been sent + */ + /* consider: test whether there is anything there while doing this and delay for at most 2s. */ + if (count > 0) + { + if (flags & O_NONBLOCK) + break; + +#ifdef __ucosii__ + /* OS Present: Pend on a flag if the OS is running, otherwise spin */ + if(OSRunning == OS_TRUE) { + /* + * When running in a multi-threaded mode, we pend on the write event + * flag set or the timeout flag in the isr. This avoids wasting CPU + * cycles waiting in this thread, when we could be doing something + * more profitable elsewhere. + */ +#ifdef ALTERA_AVALON_JTAG_UART_IGNORE_FIFO_FULL_ERROR + if(!sp->host_inactive) +#endif + ALT_FLAG_PEND (sp->events, + ALT_JTAG_UART_WRITE_RDY | ALT_JTAG_UART_TIMEOUT, + OS_FLAG_WAIT_SET_ANY + OS_FLAG_CONSUME, + 0); + } + else { + /* + * OS not running: Wait for data to be removed from buffer. + * Once the interrupt routine has removed some data then we + * will be able to insert some more. + */ + while (out == sp->tx_out && sp->host_inactive < sp->timeout) + ; + } +#else + /* + * No OS present: Always wait for data to be removed from buffer. Once + * the interrupt routine has removed some data then we will be able to + * insert some more. + */ + while (out == sp->tx_out && sp->host_inactive < sp->timeout) + ; +#endif /* __ucosii__ */ + + if (out == sp->tx_out) + break; + } + } + while (count > 0); + + /* + * Now that access to the circular buffer is complete, release the write + * semaphore so that other threads can access the buffer. + */ + ALT_SEM_POST (sp->write_lock); + + if (ptr != start) + return ptr - start; + else if (flags & O_NONBLOCK) + return -EWOULDBLOCK; +#ifdef ALTERA_AVALON_JTAG_UART_IGNORE_FIFO_FULL_ERROR + else if (sp->host_inactive >= sp->timeout) { + /* + * Reset the software FIFO, hardware FIFO could not be reset. + * Just throw away characters without reporting error. + */ + sp->tx_out = sp->tx_in = 0; + return ptr - start + count; + } +#endif + else + return -EIO; /* Host not connected */ +} + +#endif /* ALTERA_AVALON_JTAG_UART_SMALL */ diff --git a/software/qsys_tutorial_test_bsp/libhal_bsp.a b/software/qsys_tutorial_test_bsp/libhal_bsp.a new file mode 100644 index 0000000..075bae5 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/libhal_bsp.a Binary files differ diff --git a/software/qsys_tutorial_test_bsp/linker.h b/software/qsys_tutorial_test_bsp/linker.h new file mode 100644 index 0000000..f9dcf76 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/linker.h @@ -0,0 +1,101 @@ +/* + * linker.h - Linker script mapping information + * + * Machine generated for CPU 'nios2_processor' in SOPC Builder design 'nios_system' + * SOPC Builder design path: C:/Users/takayun/Desktop/qsys_tutorial/nios_system.sopcinfo + * + * Generated: Thu Oct 27 09:21:11 JST 2016 + */ + +/* + * DO NOT MODIFY THIS FILE + * + * Changing this file will have subtle consequences + * which will almost certainly lead to a nonfunctioning + * system. If you do modify this file, be aware that your + * changes will be overwritten and lost when this file + * is generated again. + * + * DO NOT MODIFY THIS FILE + */ + +/* + * License Agreement + * + * Copyright (c) 2008 + * Altera Corporation, San Jose, California, USA. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + * This agreement shall be governed in all respects by the laws of the State + * of California and by the laws of the United States of America. + */ + +#ifndef __LINKER_H_ +#define __LINKER_H_ + + +/* + * BSP controls alt_load() behavior in crt0. + * + */ + +#define ALT_LOAD_EXPLICITLY_CONTROLLED + + +/* + * Base address and span (size in bytes) of each linker region + * + */ + +#define ONCHIP_MEMORY_REGION_BASE 0x20 +#define ONCHIP_MEMORY_REGION_SPAN 4064 +#define RESET_REGION_BASE 0x0 +#define RESET_REGION_SPAN 32 + + +/* + * Devices associated with code sections + * + */ + +#define ALT_EXCEPTIONS_DEVICE ONCHIP_MEMORY +#define ALT_RESET_DEVICE ONCHIP_MEMORY +#define ALT_RODATA_DEVICE ONCHIP_MEMORY +#define ALT_RWDATA_DEVICE ONCHIP_MEMORY +#define ALT_TEXT_DEVICE ONCHIP_MEMORY + + +/* + * Initialization code at the reset address is allowed (e.g. no external bootloader). + * + */ + +#define ALT_ALLOW_CODE_AT_RESET + + +/* + * The alt_load() facility is called from crt0 to copy sections into RAM. + * + */ + +#define ALT_LOAD_COPY_RWDATA + +#endif /* __LINKER_H_ */ diff --git a/software/qsys_tutorial_test_bsp/linker.x b/software/qsys_tutorial_test_bsp/linker.x new file mode 100644 index 0000000..372d4c8 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/linker.x @@ -0,0 +1,385 @@ +/* + * linker.x - Linker script + * + * Machine generated for CPU 'nios2_processor' in SOPC Builder design 'nios_system' + * SOPC Builder design path: C:/Users/takayun/Desktop/qsys_tutorial/nios_system.sopcinfo + * + * Generated: Thu Oct 27 09:21:11 JST 2016 + */ + +/* + * DO NOT MODIFY THIS FILE + * + * Changing this file will have subtle consequences + * which will almost certainly lead to a nonfunctioning + * system. If you do modify this file, be aware that your + * changes will be overwritten and lost when this file + * is generated again. + * + * DO NOT MODIFY THIS FILE + */ + +/* + * License Agreement + * + * Copyright (c) 2008 + * Altera Corporation, San Jose, California, USA. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + * This agreement shall be governed in all respects by the laws of the State + * of California and by the laws of the United States of America. + */ + +MEMORY +{ + reset : ORIGIN = 0x0, LENGTH = 32 + onchip_memory : ORIGIN = 0x20, LENGTH = 4064 +} + +/* Define symbols for each memory base-address */ +__alt_mem_onchip_memory = 0x0; + +OUTPUT_FORMAT( "elf32-littlenios2", + "elf32-littlenios2", + "elf32-littlenios2" ) +OUTPUT_ARCH( nios2 ) +ENTRY( _start ) + +/* + * The alt_load() facility is enabled. This typically happens when there isn't + * an external bootloader (e.g. flash bootloader). + * The LMA (aka physical address) of each loaded section is + * set to the .text memory device. + * The HAL alt_load() routine called from crt0 copies sections from + * the .text memory to RAM as needed. + */ + +SECTIONS +{ + + /* + * Output sections associated with reset and exceptions (they have to be first) + */ + + .entry : + { + KEEP (*(.entry)) + } > reset + + .exceptions : + { + PROVIDE (__ram_exceptions_start = ABSOLUTE(.)); + . = ALIGN(0x20); + KEEP (*(.irq)); + KEEP (*(.exceptions.entry.label)); + KEEP (*(.exceptions.entry.user)); + KEEP (*(.exceptions.entry)); + KEEP (*(.exceptions.irqtest.user)); + KEEP (*(.exceptions.irqtest)); + KEEP (*(.exceptions.irqhandler.user)); + KEEP (*(.exceptions.irqhandler)); + KEEP (*(.exceptions.irqreturn.user)); + KEEP (*(.exceptions.irqreturn)); + KEEP (*(.exceptions.notirq.label)); + KEEP (*(.exceptions.notirq.user)); + KEEP (*(.exceptions.notirq)); + KEEP (*(.exceptions.soft.user)); + KEEP (*(.exceptions.soft)); + KEEP (*(.exceptions.unknown.user)); + KEEP (*(.exceptions.unknown)); + KEEP (*(.exceptions.exit.label)); + KEEP (*(.exceptions.exit.user)); + KEEP (*(.exceptions.exit)); + KEEP (*(.exceptions)); + PROVIDE (__ram_exceptions_end = ABSOLUTE(.)); + } > onchip_memory + + PROVIDE (__flash_exceptions_start = LOADADDR(.exceptions)); + + .text : + { + /* + * All code sections are merged into the text output section, along with + * the read only data sections. + * + */ + + PROVIDE (stext = ABSOLUTE(.)); + + *(.interp) + *(.hash) + *(.dynsym) + *(.dynstr) + *(.gnu.version) + *(.gnu.version_d) + *(.gnu.version_r) + *(.rel.init) + *(.rela.init) + *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) + *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) + *(.rel.fini) + *(.rela.fini) + *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) + *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) + *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) + *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) + *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) + *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) + *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) + *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) + *(.rel.ctors) + *(.rela.ctors) + *(.rel.dtors) + *(.rela.dtors) + *(.rel.got) + *(.rela.got) + *(.rel.sdata .rel.sdata.* .rel.gnu.linkonce.s.*) + *(.rela.sdata .rela.sdata.* .rela.gnu.linkonce.s.*) + *(.rel.sbss .rel.sbss.* .rel.gnu.linkonce.sb.*) + *(.rela.sbss .rela.sbss.* .rela.gnu.linkonce.sb.*) + *(.rel.sdata2 .rel.sdata2.* .rel.gnu.linkonce.s2.*) + *(.rela.sdata2 .rela.sdata2.* .rela.gnu.linkonce.s2.*) + *(.rel.sbss2 .rel.sbss2.* .rel.gnu.linkonce.sb2.*) + *(.rela.sbss2 .rela.sbss2.* .rela.gnu.linkonce.sb2.*) + *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) + *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) + *(.rel.plt) + *(.rela.plt) + *(.rel.dyn) + + KEEP (*(.init)) + *(.plt) + *(.text .stub .text.* .gnu.linkonce.t.*) + + /* .gnu.warning sections are handled specially by elf32.em. */ + + *(.gnu.warning.*) + KEEP (*(.fini)) + PROVIDE (__etext = ABSOLUTE(.)); + PROVIDE (_etext = ABSOLUTE(.)); + PROVIDE (etext = ABSOLUTE(.)); + + *(.eh_frame_hdr) + /* Ensure the __preinit_array_start label is properly aligned. We + could instead move the label definition inside the section, but + the linker would then create the section even if it turns out to + be empty, which isn't pretty. */ + . = ALIGN(4); + PROVIDE (__preinit_array_start = ABSOLUTE(.)); + *(.preinit_array) + PROVIDE (__preinit_array_end = ABSOLUTE(.)); + PROVIDE (__init_array_start = ABSOLUTE(.)); + *(.init_array) + PROVIDE (__init_array_end = ABSOLUTE(.)); + PROVIDE (__fini_array_start = ABSOLUTE(.)); + *(.fini_array) + PROVIDE (__fini_array_end = ABSOLUTE(.)); + SORT(CONSTRUCTORS) + KEEP (*(.eh_frame)) + *(.gcc_except_table) + *(.dynamic) + PROVIDE (__CTOR_LIST__ = ABSOLUTE(.)); + KEEP (*(.ctors)) + KEEP (*(SORT(.ctors.*))) + PROVIDE (__CTOR_END__ = ABSOLUTE(.)); + PROVIDE (__DTOR_LIST__ = ABSOLUTE(.)); + KEEP (*(.dtors)) + KEEP (*(SORT(.dtors.*))) + PROVIDE (__DTOR_END__ = ABSOLUTE(.)); + KEEP (*(.jcr)) + . = ALIGN(4); + } > onchip_memory = 0x3a880100 /* Nios II NOP instruction */ + + .rodata : + { + PROVIDE (__ram_rodata_start = ABSOLUTE(.)); + . = ALIGN(4); + *(.rodata .rodata.* .gnu.linkonce.r.*) + *(.rodata1) + . = ALIGN(4); + PROVIDE (__ram_rodata_end = ABSOLUTE(.)); + } > onchip_memory + + PROVIDE (__flash_rodata_start = LOADADDR(.rodata)); + + /* + * + * This section's LMA is set to the .text region. + * crt0 will copy to this section's specified mapped region virtual memory address (VMA) + * + * .rwdata region equals the .text region, and is set to be loaded into .text region. + * This requires two copies of .rwdata in the .text region. One read writable at VMA. + * and one read-only at LMA. crt0 will copy from LMA to VMA on reset + * + */ + + .rwdata LOADADDR (.rodata) + SIZEOF (.rodata) : AT ( LOADADDR (.rodata) + SIZEOF (.rodata)+ SIZEOF (.rwdata) ) + { + PROVIDE (__ram_rwdata_start = ABSOLUTE(.)); + . = ALIGN(4); + *(.got.plt) *(.got) + *(.data1) + *(.data .data.* .gnu.linkonce.d.*) + + _gp = ABSOLUTE(. + 0x8000); + PROVIDE(gp = _gp); + + *(.rwdata .rwdata.*) + *(.sdata .sdata.* .gnu.linkonce.s.*) + *(.sdata2 .sdata2.* .gnu.linkonce.s2.*) + + . = ALIGN(4); + _edata = ABSOLUTE(.); + PROVIDE (edata = ABSOLUTE(.)); + PROVIDE (__ram_rwdata_end = ABSOLUTE(.)); + } > onchip_memory + + PROVIDE (__flash_rwdata_start = LOADADDR(.rwdata)); + + /* + * + * This section's LMA is set to the .text region. + * crt0 will copy to this section's specified mapped region virtual memory address (VMA) + * + */ + + .bss LOADADDR (.rwdata) + SIZEOF (.rwdata) : AT ( LOADADDR (.rwdata) + SIZEOF (.rwdata) ) + { + __bss_start = ABSOLUTE(.); + PROVIDE (__sbss_start = ABSOLUTE(.)); + PROVIDE (___sbss_start = ABSOLUTE(.)); + + *(.dynsbss) + *(.sbss .sbss.* .gnu.linkonce.sb.*) + *(.sbss2 .sbss2.* .gnu.linkonce.sb2.*) + *(.scommon) + + PROVIDE (__sbss_end = ABSOLUTE(.)); + PROVIDE (___sbss_end = ABSOLUTE(.)); + + *(.dynbss) + *(.bss .bss.* .gnu.linkonce.b.*) + *(COMMON) + + . = ALIGN(4); + __bss_end = ABSOLUTE(.); + } > onchip_memory + + /* + * + * One output section mapped to the associated memory device for each of + * the available memory devices. These are not used by default, but can + * be used by user applications by using the .section directive. + * + * The output section used for the heap is treated in a special way, + * i.e. the symbols "end" and "_end" are added to point to the heap start. + * + * Because alt_load() is enabled, these sections have + * their LMA set to be loaded into the .text memory region. + * However, the alt_load() code will NOT automatically copy + * these sections into their mapped memory region. + * + */ + + /* + * + * This section's LMA is set to the .text region. + * crt0 will copy to this section's specified mapped region virtual memory address (VMA) + * + */ + + .onchip_memory LOADADDR (.bss) + SIZEOF (.bss) : AT ( LOADADDR (.bss) + SIZEOF (.bss) ) + { + PROVIDE (_alt_partition_onchip_memory_start = ABSOLUTE(.)); + *(.onchip_memory. onchip_memory.*) + . = ALIGN(4); + PROVIDE (_alt_partition_onchip_memory_end = ABSOLUTE(.)); + _end = ABSOLUTE(.); + end = ABSOLUTE(.); + __alt_stack_base = ABSOLUTE(.); + } > onchip_memory + + PROVIDE (_alt_partition_onchip_memory_load_addr = LOADADDR(.onchip_memory)); + + /* + * Stabs debugging sections. + * + */ + + .stab 0 : { *(.stab) } + .stabstr 0 : { *(.stabstr) } + .stab.excl 0 : { *(.stab.excl) } + .stab.exclstr 0 : { *(.stab.exclstr) } + .stab.index 0 : { *(.stab.index) } + .stab.indexstr 0 : { *(.stab.indexstr) } + .comment 0 : { *(.comment) } + /* DWARF debug sections. + Symbols in the DWARF debugging sections are relative to the beginning + of the section so we begin them at 0. */ + /* DWARF 1 */ + .debug 0 : { *(.debug) } + .line 0 : { *(.line) } + /* GNU DWARF 1 extensions */ + .debug_srcinfo 0 : { *(.debug_srcinfo) } + .debug_sfnames 0 : { *(.debug_sfnames) } + /* DWARF 1.1 and DWARF 2 */ + .debug_aranges 0 : { *(.debug_aranges) } + .debug_pubnames 0 : { *(.debug_pubnames) } + /* DWARF 2 */ + .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } + .debug_abbrev 0 : { *(.debug_abbrev) } + .debug_line 0 : { *(.debug_line) } + .debug_frame 0 : { *(.debug_frame) } + .debug_str 0 : { *(.debug_str) } + .debug_loc 0 : { *(.debug_loc) } + .debug_macinfo 0 : { *(.debug_macinfo) } + /* SGI/MIPS DWARF 2 extensions */ + .debug_weaknames 0 : { *(.debug_weaknames) } + .debug_funcnames 0 : { *(.debug_funcnames) } + .debug_typenames 0 : { *(.debug_typenames) } + .debug_varnames 0 : { *(.debug_varnames) } + + /* Altera debug extensions */ + .debug_alt_sim_info 0 : { *(.debug_alt_sim_info) } +} + +/* provide a pointer for the stack */ + +/* + * Don't override this, override the __alt_stack_* symbols instead. + */ +__alt_data_end = 0x1000; + +/* + * The next two symbols define the location of the default stack. You can + * override them to move the stack to a different memory. + */ +PROVIDE( __alt_stack_pointer = __alt_data_end ); +PROVIDE( __alt_stack_limit = __alt_stack_base ); + +/* + * This symbol controls where the start of the heap is. If the stack is + * contiguous with the heap then the stack will contract as memory is + * allocated to the heap. + * Override this symbol to put the heap in a different memory. + */ +PROVIDE( __alt_heap_start = end ); +PROVIDE( __alt_heap_limit = 0x1000 ); diff --git a/software/qsys_tutorial_test_bsp/mem_init.mk b/software/qsys_tutorial_test_bsp/mem_init.mk new file mode 100644 index 0000000..4caaef9 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/mem_init.mk @@ -0,0 +1,322 @@ + +######################################################################### +####### M E M I N I T M A K E F I L E C O N T E N T ###### +######################################################################### + +######################################################################### +# This file is intended to be included by public.mk +# +# +# The following variables must be defined before including this file: +# - ELF +# +# The following variables may be defined to override the default behavior: +# - HDL_SIM_DIR +# - HDL_SIM_INSTALL_DIR +# - MEM_INIT_DIR +# - MEM_INIT_INSTALL_DIR +# - QUARTUS_PROJECT_DIR +# - SOPC_NAME +# - SIM_OPTIMIZE +# - RESET_ADDRESS +# +######################################################################### + +ifeq ($(MEM_INIT_FILE),) +# MEM_INIT_FILE should be set equal to the working relative path to this +# mem_init.mk makefile fragment +MEM_INIT_FILE := $(wildcard $(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST))) +endif + +ifeq ($(ELF2DAT),) +ELF2DAT := elf2dat +endif + +ifeq ($(ELF2HEX),) +ELF2HEX := elf2hex +endif + +ifeq ($(ELF2FLASH),) +ELF2FLASH := elf2flash +endif + +ifeq ($(FLASH2DAT),) +FLASH2DAT := flash2dat +endif + +ifeq ($(NM),) +NM := nios2-elf-nm +endif + +ifeq ($(MKDIR),) +MKDIR := mkdir -p +endif + +ifeq ($(RM),) +RM := rm -f +endif + +ifeq ($(CP),) +CP := cp +endif + +ifeq ($(ECHO),) +ECHO := echo +endif + +MEM_INIT_DIR ?= mem_init +HDL_SIM_DIR ?= $(MEM_INIT_DIR)/hdl_sim + +ifdef QUARTUS_PROJECT_DIR +MEM_INIT_INSTALL_DIR ?= $(patsubst %/,%,$(QUARTUS_PROJECT_DIR)) +ifdef SOPC_NAME +HDL_SIM_INSTALL_DIR ?= $(patsubst %/,%,$(QUARTUS_PROJECT_DIR))/$(SOPC_NAME)_sim +endif +endif + +MEM_INIT_DESCRIPTOR_FILE ?= $(MEM_INIT_DIR)/meminit.spd + +MEM_INIT_QIP_FILE ?= $(MEM_INIT_DIR)/meminit.qip + +#------------------------------------- +# Default Flash Boot Loaders +#------------------------------------- + +BOOT_LOADER_PATH ?= $(SOPC_KIT_NIOS2)/components/altera_nios2 +BOOT_LOADER_CFI ?= $(BOOT_LOADER_PATH)/boot_loader_cfi.srec +BOOT_LOADER_CFI_BE ?= $(BOOT_LOADER_PATH)/boot_loader_cfi_be.srec + + +#------------------------------------- +# Default Target +#------------------------------------- + +.PHONY: default_mem_init +ifeq ($(QSYS),1) +default_mem_init: mem_init_generate +else +default_mem_init: mem_init_install +endif +#------------------------------------- +# Runtime Macros +#------------------------------------- + +define post-process-info + @echo Post-processing to create $@... +endef + +target_stem = $(notdir $(basename $@)) + +mem_start_address = $($(target_stem)_START) +mem_end_address = $($(target_stem)_END) +mem_width = $($(target_stem)_WIDTH) +mem_endianness = $($(target_stem)_ENDIANNESS) +mem_create_lanes = $($(target_stem)_CREATE_LANES) + +mem_pad_flag = $($(target_stem)_PAD_FLAG) +mem_reloc_input_flag = $($(target_stem)_RELOC_INPUT_FLAG) +mem_no_zero_fill_flag = $($(target_stem)_NO_ZERO_FILL_FLAG) + +flash_mem_epcs_flag = $($(target_stem)_EPCS_FLAGS) +flash_mem_cfi_flag = $($(target_stem)_CFI_FLAGS) +flash_mem_boot_loader_flag = $($(target_stem)_BOOT_LOADER_FLAG) + +elf2dat_extra_args = $(mem_pad_flag) +elf2hex_extra_args = $(mem_no_zero_fill_flag) +elf2flash_extra_args = $(flash_mem_cfi_flag) $(flash_mem_epcs_flag) $(flash_mem_boot_loader_flag) +flash2dat_extra_args = $(mem_pad_flag) $(mem_reloc_input_flag) + +#------------------------------------------------------------------------------ +# BSP SPECIFIC CONTENT +# +# The content below is controlled by the BSP and SOPC System +#------------------------------------------------------------------------------ +#START OF BSP SPECIFIC + +#------------------------------------- +# Global Settings +#------------------------------------- + + +# The following TYPE comment allows tools to identify the 'type' of target this +# makefile is associated with. +# TYPE: BSP_MEMINIT_MAKEFILE + +# This following VERSION comment indicates the version of the tool used to +# generate this makefile. A makefile variable is provided for VERSION as well. +# ACDS_VERSION: 13.0sp1 +ACDS_VERSION := 13.0sp1 + +# This following BUILD_NUMBER comment indicates the build number of the tool +# used to generate this makefile. +# BUILD_NUMBER: 232 + +# Optimize for simulation +SIM_OPTIMIZE ?= 0 + +# The CPU reset address as needed by elf2flash +RESET_ADDRESS ?= 0x00000000 + +#------------------------------------- +# Pre-Initialized Memory Descriptions +#------------------------------------- + +# Memory: onchip_memory +MEM_0 := nios_system_onchip_memory +$(MEM_0)_NAME := onchip_memory +$(MEM_0)_MEM_INIT_FILE_PARAM_NAME := INIT_FILE +HEX_FILES += $(MEM_INIT_DIR)/$(MEM_0).hex +MEM_INIT_INSTALL_FILES += $(MEM_INIT_INSTALL_DIR)/$(MEM_0).hex +DAT_FILES += $(HDL_SIM_DIR)/$(MEM_0).dat +HDL_SIM_INSTALL_FILES += $(HDL_SIM_INSTALL_DIR)/$(MEM_0).dat +SYM_FILES += $(HDL_SIM_DIR)/$(MEM_0).sym +HDL_SIM_INSTALL_FILES += $(HDL_SIM_INSTALL_DIR)/$(MEM_0).sym +$(MEM_0)_START := 0x00000000 +$(MEM_0)_END := 0x00000fff +$(MEM_0)_HIERARCHICAL_PATH := onchip_memory +$(MEM_0)_WIDTH := 32 +$(MEM_0)_ENDIANNESS := --little-endian-mem +$(MEM_0)_CREATE_LANES := 0 + +.PHONY: onchip_memory +onchip_memory: check_elf_exists $(MEM_INIT_DIR)/$(MEM_0).hex $(HDL_SIM_DIR)/$(MEM_0).dat $(HDL_SIM_DIR)/$(MEM_0).sym + + +#END OF BSP SPECIFIC + +#------------------------------------- +# Pre-Initialized Memory Targets +#------------------------------------- + +.PHONY: mem_init_install mem_init_generate mem_init_clean + +ifeq ($(QSYS),1) +# Target mem_init_install is deprecated for QSys based systems +# To initialize onchip memories for Quartus II Synthesis with Qsys based systems: +# 1) Use "make mem_init_genearate" +# 2) Add the generated mem_init/meminit.qip file to your Quartus II Project +# +mem_init_install: + $(error Deprecated Makefile Target: '$@'. Use target 'mem_init_generate' and then add $(MEM_INIT_QIP_FILE) to your Quartus II Project) + +else # QSYS != 1, if SopcBuilder based system + +ifneq ($(MEM_INIT_INSTALL_DIR),) +mem_init_install: $(MEM_INIT_INSTALL_FILES) +endif + +ifneq ($(HDL_SIM_INSTALL_DIR),) +mem_init_install: $(HDL_SIM_INSTALL_FILES) +endif + +mem_init_install: mem_init_generate +ifeq ($(MEM_INIT_INSTALL_DIR),) + @echo "WARNING: MEM_INIT_INSTALL_DIR not set. Set your QUARTUS_PROJECT_DIR environment variable." +endif +ifeq ($(HDL_SIM_INSTALL_DIR),) + @echo "WARNING: HDL_SIM_INSTALL_DIR not set. Set your QUARTUS_PROJECT_DIR and SOPC_NAME environment variable." +endif + +$(MEM_INIT_INSTALL_FILES): $(MEM_INIT_INSTALL_DIR)/%: $(MEM_INIT_DIR)/% + @$(MKDIR) $(@D) + @$(CP) -v $< $@ + +$(HDL_SIM_INSTALL_FILES): $(HDL_SIM_INSTALL_DIR)/%: $(HDL_SIM_DIR)/% + @$(MKDIR) $(@D) + @$(CP) -v $< $@ + +endif # QSYS == 1 + + +mem_init_generate: hex dat sym flash $(MEM_INIT_DESCRIPTOR_FILE) $(MEM_INIT_QIP_FILE) + +mem_init_clean: + @$(RM) -r $(MEM_INIT_DIR) $(HDL_SIM_DIR) $(FLASH_FILES) + +.PHONY: hex dat sym flash + +hex: check_elf_exists $(HEX_FILES) + +dat: check_elf_exists $(DAT_FILES) + +sym: check_elf_exists $(SYM_FILES) + +flash: check_elf_exists $(FLASH_FILES) + +#------------------------------------- +# Pre-Initialized Memory Rules +#------------------------------------- + +.PHONY: check_elf_exists +check_elf_exists: $(ELF) +ifeq ($(ELF),) + $(error ELF var not set in mem_init.mk) +endif + +$(filter-out $(FLASH_DAT_FILES),$(DAT_FILES)): %.dat: $(ELF) + $(post-process-info) + @$(MKDIR) $(@D) + bash -c '$(ELF2DAT) --infile=$< --outfile=$@ \ + --base=$(mem_start_address) --end=$(mem_end_address) --width=$(mem_width) \ + $(mem_endianness) --create-lanes=$(mem_create_lanes) $(elf2dat_extra_args)' + +$(foreach i,0 1 2 3 4 5 6 7,%_lane$(i).dat): %.dat + @true + +$(HEX_FILES): %.hex: $(ELF) + $(post-process-info) + @$(MKDIR) $(@D) + bash -c '$(ELF2HEX) $< $(mem_start_address) $(mem_end_address) --width=$(mem_width) \ + $(mem_endianness) --create-lanes=$(mem_create_lanes) $(elf2hex_extra_args) $@' + +$(SYM_FILES): %.sym: $(ELF) + $(post-process-info) + @$(MKDIR) $(@D) + $(NM) -n $< > $@ + +$(FLASH_FILES): %.flash: $(ELF) + $(post-process-info) + @$(MKDIR) $(@D) + bash -c '$(ELF2FLASH) --input=$< --outfile=$@ --sim_optimize=$(SIM_OPTIMIZE) $(mem_endianness) \ + $(elf2flash_extra_args)' + +# +# Function generate_spd_entry +# Arg1: path to the memory initialization file +# Arg2: Type HEX or DAT +# Arg3: Output spd file to append +gen_spd_entry.BASE_FILE = $(basename $(notdir $1)) +gen_spd_entry.PARAM_NAME = $($(gen_spd_entry.BASE_FILE)_MEM_INIT_FILE_PARAM_NAME) +gen_spd_entry.MEM_PATH = $($(gen_spd_entry.BASE_FILE)_HIERARCHICAL_PATH) +gen_spd_entry.SETTINGS = $(strip \ + path=\"$1\" \ + type=\"$2\" \ + $(if $(gen_spd_entry.PARAM_NAME),initParamName=\"$(gen_spd_entry.PARAM_NAME)\") \ + $(if $(gen_spd_entry.MEM_PATH),memoryPath=\"$(gen_spd_entry.MEM_PATH)\") \ +) +define gen_spd_entry +$(ECHO) "" >> $3 +endef + +$(MEM_INIT_DESCRIPTOR_FILE).DAT_FILESET := $(patsubst $(dir $(MEM_INIT_DESCRIPTOR_FILE))%,%,$(DAT_FILES)) +$(MEM_INIT_DESCRIPTOR_FILE).HEX_FILESET := $(patsubst $(dir $(MEM_INIT_DESCRIPTOR_FILE))%,%,$(HEX_FILES)) + +$(MEM_INIT_DESCRIPTOR_FILE): %.spd: $(MEM_INIT_FILE) + $(post-process-info) + @$(MKDIR) $(@D) + @$(RM) $@ + @$(ECHO) "" > $@ + @$(ECHO) "" >> $@ + @$(foreach dat_file,$($@.DAT_FILESET),$(call gen_spd_entry,$(dat_file),DAT,$@) &&)true + @$(foreach hex_file,$($@.HEX_FILESET),$(call gen_spd_entry,$(hex_file),HEX,$@) &&)true + @$(ECHO) "" >> $@ + +.DELETE_ON_ERROR: $(MEM_INIT_DESCRIPTOR_FILE) + +$(MEM_INIT_QIP_FILE): %.qip: $(MEM_INIT_FILE) + $(post-process-info) + @$(MKDIR) $(@D) + @$(RM) $@ + @$(ECHO) "set_global_assignment -name SEARCH_PATH $$::quartus(qip_path)" > $@ + +.DELETE_ON_ERROR: $(MEM_INIT_QIP_FILE) diff --git a/software/qsys_tutorial_test_bsp/memory.gdb b/software/qsys_tutorial_test_bsp/memory.gdb new file mode 100644 index 0000000..eee0581 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/memory.gdb @@ -0,0 +1,50 @@ +# memory.gdb - GDB memory region definitions +# +# Machine generated for CPU 'nios2_processor' in SOPC Builder design 'nios_system' +# SOPC Builder design path: C:/Users/takayun/Desktop/qsys_tutorial/nios_system.sopcinfo +# +# Generated: Thu Oct 27 09:21:11 JST 2016 + +# DO NOT MODIFY THIS FILE +# +# Changing this file will have subtle consequences +# which will almost certainly lead to a nonfunctioning +# system. If you do modify this file, be aware that your +# changes will be overwritten and lost when this file +# is generated again. +# +# DO NOT MODIFY THIS FILE + +# License Agreement +# +# Copyright (c) 2008 +# Altera Corporation, San Jose, California, USA. +# All rights reserved. +# +# Permission is hereby granted, free of charge, to any person obtaining a +# copy of this software and associated documentation files (the "Software"), +# to deal in the Software without restriction, including without limitation +# the rights to use, copy, modify, merge, publish, distribute, sublicense, +# and/or sell copies of the Software, and to permit persons to whom the +# Software is furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +# DEALINGS IN THE SOFTWARE. +# +# This agreement shall be governed in all respects by the laws of the State +# of California and by the laws of the United States of America. + +# Define memory regions for each memory connected to the CPU. +# The cache attribute is specified which improves GDB performance +# by allowing GDB to cache memory contents on the host. + +# onchip_memory +memory 0x0 0x1000 cache diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_alarm_start.d b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_alarm_start.d new file mode 100644 index 0000000..3bb20ea --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_alarm_start.d @@ -0,0 +1,22 @@ +obj/HAL/src/alt_alarm_start.o: HAL/src/alt_alarm_start.c \ + HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ + HAL/inc/priv/alt_alarm.h HAL/inc/alt_types.h HAL/inc/sys/alt_irq.h \ + HAL/inc/nios2.h system.h linker.h + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +system.h: + +linker.h: diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_alarm_start.o b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_alarm_start.o new file mode 100644 index 0000000..cc4c174 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_alarm_start.o Binary files differ diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_busy_sleep.d b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_busy_sleep.d new file mode 100644 index 0000000..e93e80c --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_busy_sleep.d @@ -0,0 +1,10 @@ +obj/HAL/src/alt_busy_sleep.o: HAL/src/alt_busy_sleep.c system.h linker.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_busy_sleep.h + +system.h: + +linker.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_busy_sleep.h: diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_busy_sleep.o b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_busy_sleep.o new file mode 100644 index 0000000..f55915e --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_busy_sleep.o Binary files differ diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_close.d b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_close.d new file mode 100644 index 0000000..fbbab9c --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_close.d @@ -0,0 +1,34 @@ +obj/HAL/src/alt_close.o: HAL/src/alt_close.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h HAL/inc/priv/alt_file.h \ + HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h \ + HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_close.o b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_close.o new file mode 100644 index 0000000..eeecdd0 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_close.o Binary files differ diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_dcache_flush.d b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_dcache_flush.d new file mode 100644 index 0000000..a0eaf8a --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_dcache_flush.d @@ -0,0 +1,15 @@ +obj/HAL/src/alt_dcache_flush.o: HAL/src/alt_dcache_flush.c \ + HAL/inc/nios2.h system.h linker.h HAL/inc/alt_types.h \ + HAL/inc/sys/alt_cache.h HAL/inc/alt_types.h + +HAL/inc/nios2.h: + +system.h: + +linker.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_cache.h: + +HAL/inc/alt_types.h: diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_dcache_flush.o b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_dcache_flush.o new file mode 100644 index 0000000..3b020ca --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_dcache_flush.o Binary files differ diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_dcache_flush_all.d b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_dcache_flush_all.d new file mode 100644 index 0000000..792c3e4 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_dcache_flush_all.d @@ -0,0 +1,15 @@ +obj/HAL/src/alt_dcache_flush_all.o: HAL/src/alt_dcache_flush_all.c \ + HAL/inc/nios2.h system.h linker.h HAL/inc/alt_types.h \ + HAL/inc/sys/alt_cache.h HAL/inc/alt_types.h + +HAL/inc/nios2.h: + +system.h: + +linker.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_cache.h: + +HAL/inc/alt_types.h: diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_dcache_flush_all.o b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_dcache_flush_all.o new file mode 100644 index 0000000..6e74cdd --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_dcache_flush_all.o Binary files differ diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_dcache_flush_no_writeback.d b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_dcache_flush_no_writeback.d new file mode 100644 index 0000000..867c42b --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_dcache_flush_no_writeback.d @@ -0,0 +1,16 @@ +obj/HAL/src/alt_dcache_flush_no_writeback.o: \ + HAL/src/alt_dcache_flush_no_writeback.c HAL/inc/nios2.h system.h \ + linker.h HAL/inc/alt_types.h HAL/inc/sys/alt_cache.h \ + HAL/inc/alt_types.h + +HAL/inc/nios2.h: + +system.h: + +linker.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_cache.h: + +HAL/inc/alt_types.h: diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_dcache_flush_no_writeback.o b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_dcache_flush_no_writeback.o new file mode 100644 index 0000000..cf7a3be --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_dcache_flush_no_writeback.o Binary files differ diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_dev.d b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_dev.d new file mode 100644 index 0000000..cd9b1d4 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_dev.d @@ -0,0 +1,34 @@ +obj/HAL/src/alt_dev.o: HAL/src/alt_dev.c HAL/inc/sys/alt_dev.h system.h \ + linker.h HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h \ + HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h HAL/inc/alt_types.h \ + system.h + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/alt_types.h: + +system.h: diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_dev.o b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_dev.o new file mode 100644 index 0000000..1107947 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_dev.o Binary files differ diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_dev_llist_insert.d b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_dev_llist_insert.d new file mode 100644 index 0000000..344d065 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_dev_llist_insert.d @@ -0,0 +1,13 @@ +obj/HAL/src/alt_dev_llist_insert.o: HAL/src/alt_dev_llist_insert.c \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/alt_types.h HAL/inc/sys/alt_errno.h + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_errno.h: diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_dev_llist_insert.o b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_dev_llist_insert.o new file mode 100644 index 0000000..38fb921 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_dev_llist_insert.o Binary files differ diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_dma_rxchan_open.d b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_dma_rxchan_open.d new file mode 100644 index 0000000..fb21fed --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_dma_rxchan_open.d @@ -0,0 +1,35 @@ +obj/HAL/src/alt_dma_rxchan_open.o: HAL/src/alt_dma_rxchan_open.c \ + HAL/inc/sys/alt_dma.h HAL/inc/sys/alt_dma_dev.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/alt_types.h HAL/inc/sys/alt_errno.h \ + HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h system.h linker.h \ + HAL/inc/sys/alt_llist.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h + +HAL/inc/sys/alt_dma.h: + +HAL/inc/sys/alt_dma_dev.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_errno.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_dma_rxchan_open.o b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_dma_rxchan_open.o new file mode 100644 index 0000000..4b85444 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_dma_rxchan_open.o Binary files differ diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_dma_txchan_open.d b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_dma_txchan_open.d new file mode 100644 index 0000000..500b95c --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_dma_txchan_open.d @@ -0,0 +1,35 @@ +obj/HAL/src/alt_dma_txchan_open.o: HAL/src/alt_dma_txchan_open.c \ + HAL/inc/sys/alt_dma.h HAL/inc/sys/alt_dma_dev.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/alt_types.h HAL/inc/sys/alt_errno.h \ + HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h system.h linker.h \ + HAL/inc/sys/alt_llist.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h + +HAL/inc/sys/alt_dma.h: + +HAL/inc/sys/alt_dma_dev.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_errno.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_dma_txchan_open.o b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_dma_txchan_open.o new file mode 100644 index 0000000..fc19931 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_dma_txchan_open.o Binary files differ diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_do_ctors.d b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_do_ctors.d new file mode 100644 index 0000000..daf8baf --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_do_ctors.d @@ -0,0 +1 @@ +obj/HAL/src/alt_do_ctors.o: HAL/src/alt_do_ctors.c diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_do_ctors.o b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_do_ctors.o new file mode 100644 index 0000000..d50d3e4 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_do_ctors.o Binary files differ diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_do_dtors.d b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_do_dtors.d new file mode 100644 index 0000000..c3471eb --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_do_dtors.d @@ -0,0 +1 @@ +obj/HAL/src/alt_do_dtors.o: HAL/src/alt_do_dtors.c diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_do_dtors.o b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_do_dtors.o new file mode 100644 index 0000000..10394b5 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_do_dtors.o Binary files differ diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_env_lock.d b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_env_lock.d new file mode 100644 index 0000000..634d7b0 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_env_lock.d @@ -0,0 +1 @@ +obj/HAL/src/alt_env_lock.o: HAL/src/alt_env_lock.c diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_env_lock.o b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_env_lock.o new file mode 100644 index 0000000..aa5f06d --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_env_lock.o Binary files differ diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_environ.d b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_environ.d new file mode 100644 index 0000000..e9ca295 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_environ.d @@ -0,0 +1,3 @@ +obj/HAL/src/alt_environ.o: HAL/src/alt_environ.c HAL/inc/os/alt_syscall.h + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_environ.o b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_environ.o new file mode 100644 index 0000000..8f9dd55 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_environ.o Binary files differ diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_errno.d b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_errno.d new file mode 100644 index 0000000..29ca544 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_errno.d @@ -0,0 +1,8 @@ +obj/HAL/src/alt_errno.o: HAL/src/alt_errno.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/alt_types.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/alt_types.h: diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_errno.o b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_errno.o new file mode 100644 index 0000000..82c8dfb --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_errno.o Binary files differ diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_exception_entry.d b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_exception_entry.d new file mode 100644 index 0000000..540567e --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_exception_entry.d @@ -0,0 +1,6 @@ +obj/HAL/src/alt_exception_entry.o: HAL/src/alt_exception_entry.S system.h \ + linker.h + +system.h: + +linker.h: diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_exception_entry.o b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_exception_entry.o new file mode 100644 index 0000000..3e0d44a --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_exception_entry.o Binary files differ diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_exception_muldiv.d b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_exception_muldiv.d new file mode 100644 index 0000000..63d66a7 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_exception_muldiv.d @@ -0,0 +1 @@ +obj/HAL/src/alt_exception_muldiv.o: HAL/src/alt_exception_muldiv.S diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_exception_muldiv.o b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_exception_muldiv.o new file mode 100644 index 0000000..6ca0c29 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_exception_muldiv.o Binary files differ diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_exception_trap.d b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_exception_trap.d new file mode 100644 index 0000000..6e18488 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_exception_trap.d @@ -0,0 +1 @@ +obj/HAL/src/alt_exception_trap.o: HAL/src/alt_exception_trap.S diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_exception_trap.o b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_exception_trap.o new file mode 100644 index 0000000..8fa2a70 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_exception_trap.o Binary files differ diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_execve.d b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_execve.d new file mode 100644 index 0000000..9cef7d2 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_execve.d @@ -0,0 +1,10 @@ +obj/HAL/src/alt_execve.o: HAL/src/alt_execve.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_execve.o b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_execve.o new file mode 100644 index 0000000..3c362bf --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_execve.o Binary files differ diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_exit.d b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_exit.d new file mode 100644 index 0000000..a779da8 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_exit.d @@ -0,0 +1,26 @@ +obj/HAL/src/alt_exit.o: HAL/src/alt_exit.c HAL/inc/sys/alt_irq.h \ + HAL/inc/nios2.h HAL/inc/alt_types.h system.h linker.h \ + HAL/inc/sys/alt_sim.h HAL/inc/os/alt_hooks.h HAL/inc/os/alt_syscall.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_log_printf.h system.h + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_sim.h: + +HAL/inc/os/alt_hooks.h: + +HAL/inc/os/alt_syscall.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_log_printf.h: + +system.h: diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_exit.o b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_exit.o new file mode 100644 index 0000000..e2e0bec --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_exit.o Binary files differ diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_fcntl.d b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_fcntl.d new file mode 100644 index 0000000..527f242 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_fcntl.d @@ -0,0 +1,34 @@ +obj/HAL/src/alt_fcntl.o: HAL/src/alt_fcntl.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h \ + system.h linker.h HAL/inc/sys/alt_llist.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h HAL/inc/alt_types.h \ + HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_fcntl.o b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_fcntl.o new file mode 100644 index 0000000..ee9289e --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_fcntl.o Binary files differ diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_fd_lock.d b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_fd_lock.d new file mode 100644 index 0000000..93daeac --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_fd_lock.d @@ -0,0 +1,27 @@ +obj/HAL/src/alt_fd_lock.o: HAL/src/alt_fd_lock.c HAL/inc/priv/alt_file.h \ + HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_fd_lock.o b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_fd_lock.o new file mode 100644 index 0000000..d9ca57b --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_fd_lock.o Binary files differ diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_fd_unlock.d b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_fd_unlock.d new file mode 100644 index 0000000..45a3207 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_fd_unlock.d @@ -0,0 +1,27 @@ +obj/HAL/src/alt_fd_unlock.o: HAL/src/alt_fd_unlock.c \ + HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h system.h linker.h \ + HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_fd_unlock.o b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_fd_unlock.o new file mode 100644 index 0000000..d1fcc4b --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_fd_unlock.o Binary files differ diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_find_dev.d b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_find_dev.d new file mode 100644 index 0000000..98336f8 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_find_dev.d @@ -0,0 +1,31 @@ +obj/HAL/src/alt_find_dev.o: HAL/src/alt_find_dev.c HAL/inc/sys/alt_dev.h \ + system.h linker.h HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h \ + HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h HAL/inc/alt_types.h + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/alt_types.h: diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_find_dev.o b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_find_dev.o new file mode 100644 index 0000000..a6b02d5 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_find_dev.o Binary files differ diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_find_file.d b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_find_file.d new file mode 100644 index 0000000..d1150ca --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_find_file.d @@ -0,0 +1,32 @@ +obj/HAL/src/alt_find_file.o: HAL/src/alt_find_file.c \ + HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h HAL/inc/priv/alt_file.h \ + HAL/inc/sys/alt_dev.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h \ + HAL/inc/alt_types.h + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/alt_types.h: diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_find_file.o b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_find_file.o new file mode 100644 index 0000000..8f42d55 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_find_file.o Binary files differ diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_flash_dev.d b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_flash_dev.d new file mode 100644 index 0000000..8835e8f --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_flash_dev.d @@ -0,0 +1,34 @@ +obj/HAL/src/alt_flash_dev.o: HAL/src/alt_flash_dev.c \ + HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h HAL/inc/sys/alt_flash_dev.h \ + HAL/inc/sys/alt_flash_types.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h \ + system.h linker.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_flash_dev.h: + +HAL/inc/sys/alt_flash_types.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_flash_dev.o b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_flash_dev.o new file mode 100644 index 0000000..b711c40 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_flash_dev.o Binary files differ diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_fork.d b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_fork.d new file mode 100644 index 0000000..492be65 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_fork.d @@ -0,0 +1,10 @@ +obj/HAL/src/alt_fork.o: HAL/src/alt_fork.c HAL/inc/sys/alt_warning.h \ + HAL/inc/sys/alt_errno.h HAL/inc/alt_types.h HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_warning.h: + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_fork.o b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_fork.o new file mode 100644 index 0000000..a57e079 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_fork.o Binary files differ diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_fs_reg.d b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_fs_reg.d new file mode 100644 index 0000000..d8f95ab --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_fs_reg.d @@ -0,0 +1,29 @@ +obj/HAL/src/alt_fs_reg.o: HAL/src/alt_fs_reg.c HAL/inc/sys/alt_dev.h \ + system.h linker.h HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h \ + HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_fs_reg.o b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_fs_reg.o new file mode 100644 index 0000000..e615136 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_fs_reg.o Binary files differ diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_fstat.d b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_fstat.d new file mode 100644 index 0000000..942fcbc --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_fstat.d @@ -0,0 +1,38 @@ +obj/HAL/src/alt_fstat.o: HAL/src/alt_fstat.c HAL/inc/sys/alt_dev.h \ + system.h linker.h HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h HAL/inc/sys/alt_errno.h \ + HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h HAL/inc/os/alt_syscall.h system.h + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/sys/alt_errno.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_syscall.h: + +system.h: diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_fstat.o b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_fstat.o new file mode 100644 index 0000000..e3270dd --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_fstat.o Binary files differ diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_get_fd.d b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_get_fd.d new file mode 100644 index 0000000..9a4daaa --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_get_fd.d @@ -0,0 +1,34 @@ +obj/HAL/src/alt_get_fd.o: HAL/src/alt_get_fd.c HAL/inc/sys/alt_dev.h \ + system.h linker.h HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h \ + HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h HAL/inc/alt_types.h \ + system.h + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/alt_types.h: + +system.h: diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_get_fd.o b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_get_fd.o new file mode 100644 index 0000000..0dc1d9d --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_get_fd.o Binary files differ diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_getchar.d b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_getchar.d new file mode 100644 index 0000000..bcccdf7 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_getchar.d @@ -0,0 +1,34 @@ +obj/HAL/src/alt_getchar.o: HAL/src/alt_getchar.c system.h linker.h \ + HAL/inc/sys/alt_driver.h HAL/inc/sys/alt_stdio.h \ + HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h system.h \ + HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h + +system.h: + +linker.h: + +HAL/inc/sys/alt_driver.h: + +HAL/inc/sys/alt_stdio.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_getchar.o b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_getchar.o new file mode 100644 index 0000000..b4c93b6 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_getchar.o Binary files differ diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_getpid.d b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_getpid.d new file mode 100644 index 0000000..d9499b9 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_getpid.d @@ -0,0 +1,3 @@ +obj/HAL/src/alt_getpid.o: HAL/src/alt_getpid.c HAL/inc/os/alt_syscall.h + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_getpid.o b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_getpid.o new file mode 100644 index 0000000..f0f4ef6 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_getpid.o Binary files differ diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_gettod.d b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_gettod.d new file mode 100644 index 0000000..cf3cf34 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_gettod.d @@ -0,0 +1,17 @@ +obj/HAL/src/alt_gettod.o: HAL/src/alt_gettod.c HAL/inc/sys/alt_alarm.h \ + HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h HAL/inc/priv/alt_alarm.h \ + HAL/inc/alt_types.h HAL/inc/alt_types.h HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/alt_types.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_gettod.o b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_gettod.o new file mode 100644 index 0000000..16668a3 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_gettod.o Binary files differ diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_gmon.d b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_gmon.d new file mode 100644 index 0000000..e9469ab --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_gmon.d @@ -0,0 +1,24 @@ +obj/HAL/src/alt_gmon.o: HAL/src/alt_gmon.c HAL/inc/priv/nios2_gmon_data.h \ + HAL/inc/sys/alt_irq.h HAL/inc/nios2.h HAL/inc/alt_types.h system.h \ + linker.h HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_alarm.h HAL/inc/alt_types.h + +HAL/inc/priv/nios2_gmon_data.h: + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/alt_types.h: diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_gmon.o b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_gmon.o new file mode 100644 index 0000000..2fb606d --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_gmon.o Binary files differ diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_icache_flush.d b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_icache_flush.d new file mode 100644 index 0000000..2e4ddd1 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_icache_flush.d @@ -0,0 +1,15 @@ +obj/HAL/src/alt_icache_flush.o: HAL/src/alt_icache_flush.c \ + HAL/inc/nios2.h system.h linker.h HAL/inc/alt_types.h \ + HAL/inc/sys/alt_cache.h HAL/inc/alt_types.h + +HAL/inc/nios2.h: + +system.h: + +linker.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_cache.h: + +HAL/inc/alt_types.h: diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_icache_flush.o b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_icache_flush.o new file mode 100644 index 0000000..b6e3939 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_icache_flush.o Binary files differ diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_icache_flush_all.d b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_icache_flush_all.d new file mode 100644 index 0000000..47cfbf3 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_icache_flush_all.d @@ -0,0 +1,15 @@ +obj/HAL/src/alt_icache_flush_all.o: HAL/src/alt_icache_flush_all.c \ + HAL/inc/nios2.h system.h linker.h HAL/inc/alt_types.h \ + HAL/inc/sys/alt_cache.h HAL/inc/alt_types.h + +HAL/inc/nios2.h: + +system.h: + +linker.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_cache.h: + +HAL/inc/alt_types.h: diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_icache_flush_all.o b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_icache_flush_all.o new file mode 100644 index 0000000..37d8921 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_icache_flush_all.o Binary files differ diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_iic.d b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_iic.d new file mode 100644 index 0000000..a709e0c --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_iic.d @@ -0,0 +1,29 @@ +obj/HAL/src/alt_iic.o: HAL/src/alt_iic.c system.h linker.h \ + HAL/inc/sys/alt_irq.h HAL/inc/nios2.h HAL/inc/alt_types.h system.h \ + HAL/inc/priv/alt_iic_isr_register.h HAL/inc/alt_types.h \ + HAL/inc/sys/alt_irq.h HAL/inc/priv/alt_legacy_irq.h system.h \ + HAL/inc/nios2.h + +system.h: + +linker.h: + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +HAL/inc/priv/alt_iic_isr_register.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_irq.h: + +HAL/inc/priv/alt_legacy_irq.h: + +system.h: + +HAL/inc/nios2.h: diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_iic.o b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_iic.o new file mode 100644 index 0000000..60f6f7f --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_iic.o Binary files differ diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_iic_isr_register.d b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_iic_isr_register.d new file mode 100644 index 0000000..d0470ae --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_iic_isr_register.d @@ -0,0 +1,30 @@ +obj/HAL/src/alt_iic_isr_register.o: HAL/src/alt_iic_isr_register.c \ + system.h linker.h HAL/inc/alt_types.h HAL/inc/sys/alt_irq.h \ + HAL/inc/nios2.h HAL/inc/alt_types.h system.h \ + HAL/inc/priv/alt_iic_isr_register.h HAL/inc/alt_types.h \ + HAL/inc/sys/alt_irq.h HAL/inc/sys/alt_irq_entry.h \ + HAL/inc/priv/alt_irq_table.h + +system.h: + +linker.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +HAL/inc/priv/alt_iic_isr_register.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_irq.h: + +HAL/inc/sys/alt_irq_entry.h: + +HAL/inc/priv/alt_irq_table.h: diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_iic_isr_register.o b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_iic_isr_register.o new file mode 100644 index 0000000..2216e23 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_iic_isr_register.o Binary files differ diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_instruction_exception_entry.d b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_instruction_exception_entry.d new file mode 100644 index 0000000..6d0705f --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_instruction_exception_entry.d @@ -0,0 +1,18 @@ +obj/HAL/src/alt_instruction_exception_entry.o: \ + HAL/src/alt_instruction_exception_entry.c HAL/inc/sys/alt_exceptions.h \ + HAL/inc/alt_types.h system.h linker.h HAL/inc/nios2.h \ + HAL/inc/alt_types.h system.h + +HAL/inc/sys/alt_exceptions.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_instruction_exception_entry.o b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_instruction_exception_entry.o new file mode 100644 index 0000000..6f29459 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_instruction_exception_entry.o Binary files differ diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_instruction_exception_register.d b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_instruction_exception_register.d new file mode 100644 index 0000000..d4fac04 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_instruction_exception_register.d @@ -0,0 +1,16 @@ +obj/HAL/src/alt_instruction_exception_register.o: \ + HAL/src/alt_instruction_exception_register.c \ + HAL/inc/sys/alt_exceptions.h HAL/inc/alt_types.h system.h linker.h \ + HAL/inc/alt_types.h system.h + +HAL/inc/sys/alt_exceptions.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: + +HAL/inc/alt_types.h: + +system.h: diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_instruction_exception_register.o b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_instruction_exception_register.o new file mode 100644 index 0000000..5ae2f88 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_instruction_exception_register.o Binary files differ diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_io_redirect.d b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_io_redirect.d new file mode 100644 index 0000000..8228365 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_io_redirect.d @@ -0,0 +1,29 @@ +obj/HAL/src/alt_io_redirect.o: HAL/src/alt_io_redirect.c \ + HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h HAL/inc/priv/alt_file.h \ + HAL/inc/sys/alt_dev.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_io_redirect.o b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_io_redirect.o new file mode 100644 index 0000000..a376126 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_io_redirect.o Binary files differ diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_ioctl.d b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_ioctl.d new file mode 100644 index 0000000..d70ad97 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_ioctl.d @@ -0,0 +1,41 @@ +obj/HAL/src/alt_ioctl.o: HAL/src/alt_ioctl.c HAL/inc/sys/ioctl.h \ + HAL/inc/sys/alt_errno.h HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h \ + HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h system.h linker.h \ + HAL/inc/sys/alt_llist.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h HAL/inc/os/alt_syscall.h system.h \ + HAL/inc/sys/alt_driver.h + +HAL/inc/sys/ioctl.h: + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_syscall.h: + +system.h: + +HAL/inc/sys/alt_driver.h: diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_ioctl.o b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_ioctl.o new file mode 100644 index 0000000..18f83ed --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_ioctl.o Binary files differ diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_irq_entry.d b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_irq_entry.d new file mode 100644 index 0000000..9ec3751 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_irq_entry.d @@ -0,0 +1,5 @@ +obj/HAL/src/alt_irq_entry.o: HAL/src/alt_irq_entry.S system.h linker.h + +system.h: + +linker.h: diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_irq_entry.o b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_irq_entry.o new file mode 100644 index 0000000..b1819cd --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_irq_entry.o Binary files differ diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_irq_handler.d b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_irq_handler.d new file mode 100644 index 0000000..6fb668f --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_irq_handler.d @@ -0,0 +1,19 @@ +obj/HAL/src/alt_irq_handler.o: HAL/src/alt_irq_handler.c system.h \ + linker.h HAL/inc/sys/alt_irq.h HAL/inc/nios2.h HAL/inc/alt_types.h \ + system.h HAL/inc/os/alt_hooks.h HAL/inc/alt_types.h + +system.h: + +linker.h: + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +HAL/inc/os/alt_hooks.h: + +HAL/inc/alt_types.h: diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_irq_handler.o b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_irq_handler.o new file mode 100644 index 0000000..03ea636 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_irq_handler.o Binary files differ diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_irq_register.d b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_irq_register.d new file mode 100644 index 0000000..3df2f8a --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_irq_register.d @@ -0,0 +1,36 @@ +obj/HAL/src/alt_irq_register.o: HAL/src/alt_irq_register.c system.h \ + linker.h HAL/inc/sys/alt_irq.h HAL/inc/nios2.h HAL/inc/alt_types.h \ + system.h HAL/inc/priv/alt_legacy_irq.h system.h HAL/inc/nios2.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_irq.h HAL/inc/os/alt_hooks.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_irq_entry.h \ + HAL/inc/priv/alt_irq_table.h + +system.h: + +linker.h: + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +HAL/inc/priv/alt_legacy_irq.h: + +system.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_irq.h: + +HAL/inc/os/alt_hooks.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_irq_entry.h: + +HAL/inc/priv/alt_irq_table.h: diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_irq_register.o b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_irq_register.o new file mode 100644 index 0000000..9129c94 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_irq_register.o Binary files differ diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_irq_vars.d b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_irq_vars.d new file mode 100644 index 0000000..f316558 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_irq_vars.d @@ -0,0 +1,8 @@ +obj/HAL/src/alt_irq_vars.o: HAL/src/alt_irq_vars.c HAL/inc/alt_types.h \ + system.h linker.h + +HAL/inc/alt_types.h: + +system.h: + +linker.h: diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_irq_vars.o b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_irq_vars.o new file mode 100644 index 0000000..b52998d --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_irq_vars.o Binary files differ diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_isatty.d b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_isatty.d new file mode 100644 index 0000000..f8b1f07 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_isatty.d @@ -0,0 +1,38 @@ +obj/HAL/src/alt_isatty.o: HAL/src/alt_isatty.c HAL/inc/sys/alt_dev.h \ + system.h linker.h HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_errno.h HAL/inc/sys/alt_warning.h \ + HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h HAL/inc/os/alt_syscall.h system.h + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_errno.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_syscall.h: + +system.h: diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_isatty.o b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_isatty.o new file mode 100644 index 0000000..9b1965d --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_isatty.o Binary files differ diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_kill.d b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_kill.d new file mode 100644 index 0000000..0c14ae8 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_kill.d @@ -0,0 +1,8 @@ +obj/HAL/src/alt_kill.o: HAL/src/alt_kill.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_kill.o b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_kill.o new file mode 100644 index 0000000..228ae4f --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_kill.o Binary files differ diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_link.d b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_link.d new file mode 100644 index 0000000..dc844c6 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_link.d @@ -0,0 +1,10 @@ +obj/HAL/src/alt_link.o: HAL/src/alt_link.c HAL/inc/sys/alt_warning.h \ + HAL/inc/sys/alt_errno.h HAL/inc/alt_types.h HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_warning.h: + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_link.o b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_link.o new file mode 100644 index 0000000..2d15b6b --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_link.o Binary files differ diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_load.d b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_load.d new file mode 100644 index 0000000..d496ab8 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_load.d @@ -0,0 +1,8 @@ +obj/HAL/src/alt_load.o: HAL/src/alt_load.c HAL/inc/sys/alt_load.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_cache.h + +HAL/inc/sys/alt_load.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_cache.h: diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_load.o b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_load.o new file mode 100644 index 0000000..27e505b --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_load.o Binary files differ diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_log_macro.d b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_log_macro.d new file mode 100644 index 0000000..9768c1f --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_log_macro.d @@ -0,0 +1 @@ +obj/HAL/src/alt_log_macro.o: HAL/src/alt_log_macro.S diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_log_macro.o b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_log_macro.o new file mode 100644 index 0000000..489e2cc --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_log_macro.o Binary files differ diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_log_printf.d b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_log_printf.d new file mode 100644 index 0000000..251ff6d --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_log_printf.d @@ -0,0 +1 @@ +obj/HAL/src/alt_log_printf.o: HAL/src/alt_log_printf.c diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_log_printf.o b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_log_printf.o new file mode 100644 index 0000000..a03c33d --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_log_printf.o Binary files differ diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_lseek.d b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_lseek.d new file mode 100644 index 0000000..25ed783 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_lseek.d @@ -0,0 +1,34 @@ +obj/HAL/src/alt_lseek.o: HAL/src/alt_lseek.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h HAL/inc/priv/alt_file.h \ + HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h \ + HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_lseek.o b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_lseek.o new file mode 100644 index 0000000..4ae7dec --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_lseek.o Binary files differ diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_main.d b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_main.d new file mode 100644 index 0000000..afdfda0 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_main.d @@ -0,0 +1,47 @@ +obj/HAL/src/alt_main.o: HAL/src/alt_main.c HAL/inc/sys/alt_dev.h system.h \ + linker.h HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_sys_init.h HAL/inc/sys/alt_irq.h \ + HAL/inc/nios2.h HAL/inc/os/alt_hooks.h HAL/inc/priv/alt_file.h \ + HAL/inc/sys/alt_dev.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h \ + HAL/inc/alt_types.h system.h HAL/inc/sys/alt_log_printf.h system.h + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_sys_init.h: + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/os/alt_hooks.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/alt_types.h: + +system.h: + +HAL/inc/sys/alt_log_printf.h: + +system.h: diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_main.o b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_main.o new file mode 100644 index 0000000..a68037d --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_main.o Binary files differ diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_malloc_lock.d b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_malloc_lock.d new file mode 100644 index 0000000..4ed35c2 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_malloc_lock.d @@ -0,0 +1 @@ +obj/HAL/src/alt_malloc_lock.o: HAL/src/alt_malloc_lock.c diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_malloc_lock.o b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_malloc_lock.o new file mode 100644 index 0000000..a4fab48 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_malloc_lock.o Binary files differ diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_mcount.d b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_mcount.d new file mode 100644 index 0000000..1203efc --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_mcount.d @@ -0,0 +1 @@ +obj/HAL/src/alt_mcount.o: HAL/src/alt_mcount.S diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_mcount.o b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_mcount.o new file mode 100644 index 0000000..dc22852 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_mcount.o Binary files differ diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_open.d b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_open.d new file mode 100644 index 0000000..a2aacd9 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_open.d @@ -0,0 +1,36 @@ +obj/HAL/src/alt_open.o: HAL/src/alt_open.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h HAL/inc/priv/alt_file.h \ + HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h \ + HAL/inc/alt_types.h HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_open.o b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_open.o new file mode 100644 index 0000000..b9e93d1 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_open.o Binary files differ diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_printf.d b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_printf.d new file mode 100644 index 0000000..3ce68a4 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_printf.d @@ -0,0 +1,3 @@ +obj/HAL/src/alt_printf.o: HAL/src/alt_printf.c HAL/inc/sys/alt_stdio.h + +HAL/inc/sys/alt_stdio.h: diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_printf.o b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_printf.o new file mode 100644 index 0000000..e9a4a0e --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_printf.o Binary files differ diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_putchar.d b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_putchar.d new file mode 100644 index 0000000..9a0dde3 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_putchar.d @@ -0,0 +1,10 @@ +obj/HAL/src/alt_putchar.o: HAL/src/alt_putchar.c system.h linker.h \ + HAL/inc/sys/alt_driver.h HAL/inc/sys/alt_stdio.h + +system.h: + +linker.h: + +HAL/inc/sys/alt_driver.h: + +HAL/inc/sys/alt_stdio.h: diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_putchar.o b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_putchar.o new file mode 100644 index 0000000..2c7f53a --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_putchar.o Binary files differ diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_putstr.d b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_putstr.d new file mode 100644 index 0000000..3cf528a --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_putstr.d @@ -0,0 +1,10 @@ +obj/HAL/src/alt_putstr.o: HAL/src/alt_putstr.c system.h linker.h \ + HAL/inc/sys/alt_driver.h HAL/inc/sys/alt_stdio.h + +system.h: + +linker.h: + +HAL/inc/sys/alt_driver.h: + +HAL/inc/sys/alt_stdio.h: diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_putstr.o b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_putstr.o new file mode 100644 index 0000000..2245e4d --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_putstr.o Binary files differ diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_read.d b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_read.d new file mode 100644 index 0000000..2bb0d95 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_read.d @@ -0,0 +1,38 @@ +obj/HAL/src/alt_read.o: HAL/src/alt_read.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h HAL/inc/priv/alt_file.h \ + HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h \ + HAL/inc/os/alt_syscall.h system.h HAL/inc/sys/alt_driver.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_syscall.h: + +system.h: + +HAL/inc/sys/alt_driver.h: diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_read.o b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_read.o new file mode 100644 index 0000000..0fc3f53 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_read.o Binary files differ diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_release_fd.d b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_release_fd.d new file mode 100644 index 0000000..0e3acb5 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_release_fd.d @@ -0,0 +1,29 @@ +obj/HAL/src/alt_release_fd.o: HAL/src/alt_release_fd.c \ + HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h HAL/inc/priv/alt_file.h \ + HAL/inc/sys/alt_dev.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_release_fd.o b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_release_fd.o new file mode 100644 index 0000000..a24adba --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_release_fd.o Binary files differ diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_remap_cached.d b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_remap_cached.d new file mode 100644 index 0000000..b5fb151 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_remap_cached.d @@ -0,0 +1,10 @@ +obj/HAL/src/alt_remap_cached.o: HAL/src/alt_remap_cached.c \ + HAL/inc/sys/alt_cache.h HAL/inc/alt_types.h system.h linker.h + +HAL/inc/sys/alt_cache.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_remap_cached.o b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_remap_cached.o new file mode 100644 index 0000000..d6898ed --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_remap_cached.o Binary files differ diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_remap_uncached.d b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_remap_uncached.d new file mode 100644 index 0000000..0423405 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_remap_uncached.d @@ -0,0 +1,10 @@ +obj/HAL/src/alt_remap_uncached.o: HAL/src/alt_remap_uncached.c \ + HAL/inc/sys/alt_cache.h HAL/inc/alt_types.h system.h linker.h + +HAL/inc/sys/alt_cache.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_remap_uncached.o b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_remap_uncached.o new file mode 100644 index 0000000..5b855aa --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_remap_uncached.o Binary files differ diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_rename.d b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_rename.d new file mode 100644 index 0000000..b7af4b2 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_rename.d @@ -0,0 +1,10 @@ +obj/HAL/src/alt_rename.o: HAL/src/alt_rename.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_rename.o b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_rename.o new file mode 100644 index 0000000..7d2ddf1 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_rename.o Binary files differ diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_sbrk.d b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_sbrk.d new file mode 100644 index 0000000..a0771ae --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_sbrk.d @@ -0,0 +1,19 @@ +obj/HAL/src/alt_sbrk.o: HAL/src/alt_sbrk.c HAL/inc/os/alt_syscall.h \ + HAL/inc/sys/alt_irq.h HAL/inc/nios2.h HAL/inc/alt_types.h system.h \ + linker.h HAL/inc/sys/alt_stack.h system.h + +HAL/inc/os/alt_syscall.h: + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_stack.h: + +system.h: diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_sbrk.o b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_sbrk.o new file mode 100644 index 0000000..a810095 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_sbrk.o Binary files differ diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_settod.d b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_settod.d new file mode 100644 index 0000000..56718d5 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_settod.d @@ -0,0 +1,17 @@ +obj/HAL/src/alt_settod.o: HAL/src/alt_settod.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_alarm.h HAL/inc/alt_types.h HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_settod.o b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_settod.o new file mode 100644 index 0000000..09651b0 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_settod.o Binary files differ diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_software_exception.d b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_software_exception.d new file mode 100644 index 0000000..fab4023 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_software_exception.d @@ -0,0 +1,6 @@ +obj/HAL/src/alt_software_exception.o: HAL/src/alt_software_exception.S \ + system.h linker.h + +system.h: + +linker.h: diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_software_exception.o b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_software_exception.o new file mode 100644 index 0000000..f9e01c2 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_software_exception.o Binary files differ diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_stat.d b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_stat.d new file mode 100644 index 0000000..8a63c27 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_stat.d @@ -0,0 +1,3 @@ +obj/HAL/src/alt_stat.o: HAL/src/alt_stat.c HAL/inc/os/alt_syscall.h + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_stat.o b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_stat.o new file mode 100644 index 0000000..2d2f97e --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_stat.o Binary files differ diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_tick.d b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_tick.d new file mode 100644 index 0000000..ddbb281 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_tick.d @@ -0,0 +1,27 @@ +obj/HAL/src/alt_tick.o: HAL/src/alt_tick.c HAL/inc/sys/alt_irq.h \ + HAL/inc/nios2.h HAL/inc/alt_types.h system.h linker.h \ + HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_alarm.h HAL/inc/alt_types.h HAL/inc/os/alt_hooks.h \ + HAL/inc/alt_types.h + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_hooks.h: + +HAL/inc/alt_types.h: diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_tick.o b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_tick.o new file mode 100644 index 0000000..e6491e3 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_tick.o Binary files differ diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_times.d b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_times.d new file mode 100644 index 0000000..4bad83d --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_times.d @@ -0,0 +1,17 @@ +obj/HAL/src/alt_times.o: HAL/src/alt_times.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_alarm.h HAL/inc/alt_types.h HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_times.o b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_times.o new file mode 100644 index 0000000..9047b9b --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_times.o Binary files differ diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_uncached_free.d b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_uncached_free.d new file mode 100644 index 0000000..d74ef4b --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_uncached_free.d @@ -0,0 +1,10 @@ +obj/HAL/src/alt_uncached_free.o: HAL/src/alt_uncached_free.c \ + HAL/inc/sys/alt_cache.h HAL/inc/alt_types.h system.h linker.h + +HAL/inc/sys/alt_cache.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_uncached_free.o b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_uncached_free.o new file mode 100644 index 0000000..1c31696 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_uncached_free.o Binary files differ diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_uncached_malloc.d b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_uncached_malloc.d new file mode 100644 index 0000000..16799fb --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_uncached_malloc.d @@ -0,0 +1,10 @@ +obj/HAL/src/alt_uncached_malloc.o: HAL/src/alt_uncached_malloc.c \ + HAL/inc/sys/alt_cache.h HAL/inc/alt_types.h system.h linker.h + +HAL/inc/sys/alt_cache.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_uncached_malloc.o b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_uncached_malloc.o new file mode 100644 index 0000000..d6af95a --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_uncached_malloc.o Binary files differ diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_unlink.d b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_unlink.d new file mode 100644 index 0000000..0205f86 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_unlink.d @@ -0,0 +1,10 @@ +obj/HAL/src/alt_unlink.o: HAL/src/alt_unlink.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_unlink.o b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_unlink.o new file mode 100644 index 0000000..7ed48a5 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_unlink.o Binary files differ diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_usleep.d b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_usleep.d new file mode 100644 index 0000000..b5eca45 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_usleep.d @@ -0,0 +1,6 @@ +obj/HAL/src/alt_usleep.o: HAL/src/alt_usleep.c \ + HAL/inc/priv/alt_busy_sleep.h HAL/inc/os/alt_syscall.h + +HAL/inc/priv/alt_busy_sleep.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_usleep.o b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_usleep.o new file mode 100644 index 0000000..6a81b77 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_usleep.o Binary files differ diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_wait.d b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_wait.d new file mode 100644 index 0000000..f47f5df --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_wait.d @@ -0,0 +1,8 @@ +obj/HAL/src/alt_wait.o: HAL/src/alt_wait.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_wait.o b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_wait.o new file mode 100644 index 0000000..521a15b --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_wait.o Binary files differ diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_write.d b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_write.d new file mode 100644 index 0000000..2b54a68 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_write.d @@ -0,0 +1,41 @@ +obj/HAL/src/alt_write.o: HAL/src/alt_write.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h HAL/inc/priv/alt_file.h \ + HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h \ + HAL/inc/os/alt_syscall.h HAL/inc/sys/alt_log_printf.h system.h \ + HAL/inc/sys/alt_driver.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_syscall.h: + +HAL/inc/sys/alt_log_printf.h: + +system.h: + +HAL/inc/sys/alt_driver.h: diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_write.o b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_write.o new file mode 100644 index 0000000..a88a95c --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/alt_write.o Binary files differ diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/altera_nios2_qsys_irq.d b/software/qsys_tutorial_test_bsp/obj/HAL/src/altera_nios2_qsys_irq.d new file mode 100644 index 0000000..47bdd9c --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/altera_nios2_qsys_irq.d @@ -0,0 +1,15 @@ +obj/HAL/src/altera_nios2_qsys_irq.o: HAL/src/altera_nios2_qsys_irq.c \ + HAL/inc/sys/alt_irq.h HAL/inc/nios2.h HAL/inc/alt_types.h system.h \ + linker.h HAL/inc/altera_nios2_qsys_irq.h + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: + +HAL/inc/altera_nios2_qsys_irq.h: diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/altera_nios2_qsys_irq.o b/software/qsys_tutorial_test_bsp/obj/HAL/src/altera_nios2_qsys_irq.o new file mode 100644 index 0000000..bb7e5e9 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/altera_nios2_qsys_irq.o Binary files differ diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/crt0.d b/software/qsys_tutorial_test_bsp/obj/HAL/src/crt0.d new file mode 100644 index 0000000..3af0bb0 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/crt0.d @@ -0,0 +1,12 @@ +obj/HAL/src/crt0.o: HAL/src/crt0.S system.h linker.h HAL/inc/nios2.h \ + HAL/inc/sys/alt_log_printf.h system.h + +system.h: + +linker.h: + +HAL/inc/nios2.h: + +HAL/inc/sys/alt_log_printf.h: + +system.h: diff --git a/software/qsys_tutorial_test_bsp/obj/HAL/src/crt0.o b/software/qsys_tutorial_test_bsp/obj/HAL/src/crt0.o new file mode 100644 index 0000000..c049ce7 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/HAL/src/crt0.o Binary files differ diff --git a/software/qsys_tutorial_test_bsp/obj/alt_sys_init.d b/software/qsys_tutorial_test_bsp/obj/alt_sys_init.d new file mode 100644 index 0000000..2087a7a --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/alt_sys_init.d @@ -0,0 +1,54 @@ +obj/alt_sys_init.o: alt_sys_init.c system.h linker.h \ + HAL/inc/sys/alt_irq.h HAL/inc/nios2.h HAL/inc/alt_types.h system.h \ + HAL/inc/sys/alt_sys_init.h HAL/inc/altera_nios2_qsys_irq.h \ + drivers/inc/altera_avalon_jtag_uart.h HAL/inc/sys/alt_alarm.h \ + HAL/inc/sys/alt_llist.h HAL/inc/priv/alt_alarm.h HAL/inc/alt_types.h \ + HAL/inc/sys/alt_warning.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h HAL/inc/os/alt_flag.h \ + drivers/inc/altera_avalon_jtag_uart_fd.h HAL/inc/sys/alt_dev.h \ + HAL/inc/sys/alt_llist.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h + +system.h: + +linker.h: + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +HAL/inc/sys/alt_sys_init.h: + +HAL/inc/altera_nios2_qsys_irq.h: + +drivers/inc/altera_avalon_jtag_uart.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_flag.h: + +drivers/inc/altera_avalon_jtag_uart_fd.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: diff --git a/software/qsys_tutorial_test_bsp/obj/alt_sys_init.o b/software/qsys_tutorial_test_bsp/obj/alt_sys_init.o new file mode 100644 index 0000000..071ebf8 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/alt_sys_init.o Binary files differ diff --git a/software/qsys_tutorial_test_bsp/obj/drivers/src/altera_avalon_jtag_uart_fd.d b/software/qsys_tutorial_test_bsp/obj/drivers/src/altera_avalon_jtag_uart_fd.d new file mode 100644 index 0000000..b152697 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/drivers/src/altera_avalon_jtag_uart_fd.d @@ -0,0 +1,48 @@ +obj/drivers/src/altera_avalon_jtag_uart_fd.o: \ + drivers/src/altera_avalon_jtag_uart_fd.c HAL/inc/alt_types.h \ + HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ + drivers/inc/altera_avalon_jtag_uart.h HAL/inc/sys/alt_alarm.h \ + HAL/inc/sys/alt_llist.h HAL/inc/priv/alt_alarm.h \ + HAL/inc/sys/alt_warning.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h HAL/inc/os/alt_flag.h \ + drivers/inc/altera_avalon_jtag_uart_fd.h HAL/inc/sys/alt_dev.h + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +drivers/inc/altera_avalon_jtag_uart.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_flag.h: + +drivers/inc/altera_avalon_jtag_uart_fd.h: + +HAL/inc/sys/alt_dev.h: diff --git a/software/qsys_tutorial_test_bsp/obj/drivers/src/altera_avalon_jtag_uart_fd.o b/software/qsys_tutorial_test_bsp/obj/drivers/src/altera_avalon_jtag_uart_fd.o new file mode 100644 index 0000000..7054eac --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/drivers/src/altera_avalon_jtag_uart_fd.o Binary files differ diff --git a/software/qsys_tutorial_test_bsp/obj/drivers/src/altera_avalon_jtag_uart_init.d b/software/qsys_tutorial_test_bsp/obj/drivers/src/altera_avalon_jtag_uart_init.d new file mode 100644 index 0000000..f9460a1 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/drivers/src/altera_avalon_jtag_uart_init.d @@ -0,0 +1,66 @@ +obj/drivers/src/altera_avalon_jtag_uart_init.o: \ + drivers/src/altera_avalon_jtag_uart_init.c HAL/inc/sys/alt_irq.h \ + HAL/inc/nios2.h HAL/inc/alt_types.h system.h linker.h \ + HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_alarm.h HAL/inc/alt_types.h HAL/inc/sys/ioctl.h \ + HAL/inc/alt_types.h drivers/inc/altera_avalon_jtag_uart_regs.h \ + HAL/inc/io.h HAL/inc/alt_types.h drivers/inc/altera_avalon_jtag_uart.h \ + HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_warning.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h HAL/inc/os/alt_flag.h \ + drivers/inc/altera_avalon_jtag_uart_fd.h HAL/inc/sys/alt_dev.h \ + HAL/inc/sys/alt_llist.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h HAL/inc/sys/alt_log_printf.h system.h + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/ioctl.h: + +HAL/inc/alt_types.h: + +drivers/inc/altera_avalon_jtag_uart_regs.h: + +HAL/inc/io.h: + +HAL/inc/alt_types.h: + +drivers/inc/altera_avalon_jtag_uart.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_flag.h: + +drivers/inc/altera_avalon_jtag_uart_fd.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/sys/alt_log_printf.h: + +system.h: diff --git a/software/qsys_tutorial_test_bsp/obj/drivers/src/altera_avalon_jtag_uart_init.o b/software/qsys_tutorial_test_bsp/obj/drivers/src/altera_avalon_jtag_uart_init.o new file mode 100644 index 0000000..fccbd4e --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/drivers/src/altera_avalon_jtag_uart_init.o Binary files differ diff --git a/software/qsys_tutorial_test_bsp/obj/drivers/src/altera_avalon_jtag_uart_ioctl.d b/software/qsys_tutorial_test_bsp/obj/drivers/src/altera_avalon_jtag_uart_ioctl.d new file mode 100644 index 0000000..d75a559 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/drivers/src/altera_avalon_jtag_uart_ioctl.d @@ -0,0 +1,58 @@ +obj/drivers/src/altera_avalon_jtag_uart_ioctl.o: \ + drivers/src/altera_avalon_jtag_uart_ioctl.c HAL/inc/sys/ioctl.h \ + HAL/inc/alt_types.h drivers/inc/altera_avalon_jtag_uart_regs.h \ + HAL/inc/io.h HAL/inc/alt_types.h drivers/inc/altera_avalon_jtag_uart.h \ + HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ + HAL/inc/priv/alt_alarm.h HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h \ + HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h HAL/inc/os/alt_flag.h \ + drivers/inc/altera_avalon_jtag_uart_fd.h HAL/inc/sys/alt_dev.h system.h \ + linker.h HAL/inc/sys/alt_llist.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h HAL/inc/sys/alt_log_printf.h system.h + +HAL/inc/sys/ioctl.h: + +HAL/inc/alt_types.h: + +drivers/inc/altera_avalon_jtag_uart_regs.h: + +HAL/inc/io.h: + +HAL/inc/alt_types.h: + +drivers/inc/altera_avalon_jtag_uart.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_flag.h: + +drivers/inc/altera_avalon_jtag_uart_fd.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/sys/alt_log_printf.h: + +system.h: diff --git a/software/qsys_tutorial_test_bsp/obj/drivers/src/altera_avalon_jtag_uart_ioctl.o b/software/qsys_tutorial_test_bsp/obj/drivers/src/altera_avalon_jtag_uart_ioctl.o new file mode 100644 index 0000000..5f8eccf --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/drivers/src/altera_avalon_jtag_uart_ioctl.o Binary files differ diff --git a/software/qsys_tutorial_test_bsp/obj/drivers/src/altera_avalon_jtag_uart_read.d b/software/qsys_tutorial_test_bsp/obj/drivers/src/altera_avalon_jtag_uart_read.d new file mode 100644 index 0000000..9a4846a --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/drivers/src/altera_avalon_jtag_uart_read.d @@ -0,0 +1,66 @@ +obj/drivers/src/altera_avalon_jtag_uart_read.o: \ + drivers/src/altera_avalon_jtag_uart_read.c HAL/inc/sys/alt_irq.h \ + HAL/inc/nios2.h HAL/inc/alt_types.h system.h linker.h \ + HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_alarm.h HAL/inc/alt_types.h HAL/inc/sys/ioctl.h \ + HAL/inc/alt_types.h drivers/inc/altera_avalon_jtag_uart_regs.h \ + HAL/inc/io.h HAL/inc/alt_types.h drivers/inc/altera_avalon_jtag_uart.h \ + HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_warning.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h HAL/inc/os/alt_flag.h \ + drivers/inc/altera_avalon_jtag_uart_fd.h HAL/inc/sys/alt_dev.h \ + HAL/inc/sys/alt_llist.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h HAL/inc/sys/alt_log_printf.h system.h + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/ioctl.h: + +HAL/inc/alt_types.h: + +drivers/inc/altera_avalon_jtag_uart_regs.h: + +HAL/inc/io.h: + +HAL/inc/alt_types.h: + +drivers/inc/altera_avalon_jtag_uart.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_flag.h: + +drivers/inc/altera_avalon_jtag_uart_fd.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/sys/alt_log_printf.h: + +system.h: diff --git a/software/qsys_tutorial_test_bsp/obj/drivers/src/altera_avalon_jtag_uart_read.o b/software/qsys_tutorial_test_bsp/obj/drivers/src/altera_avalon_jtag_uart_read.o new file mode 100644 index 0000000..8a008d7 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/drivers/src/altera_avalon_jtag_uart_read.o Binary files differ diff --git a/software/qsys_tutorial_test_bsp/obj/drivers/src/altera_avalon_jtag_uart_write.d b/software/qsys_tutorial_test_bsp/obj/drivers/src/altera_avalon_jtag_uart_write.d new file mode 100644 index 0000000..5518b7f --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/drivers/src/altera_avalon_jtag_uart_write.d @@ -0,0 +1,66 @@ +obj/drivers/src/altera_avalon_jtag_uart_write.o: \ + drivers/src/altera_avalon_jtag_uart_write.c HAL/inc/sys/alt_irq.h \ + HAL/inc/nios2.h HAL/inc/alt_types.h system.h linker.h \ + HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_alarm.h HAL/inc/alt_types.h HAL/inc/sys/ioctl.h \ + HAL/inc/alt_types.h drivers/inc/altera_avalon_jtag_uart_regs.h \ + HAL/inc/io.h HAL/inc/alt_types.h drivers/inc/altera_avalon_jtag_uart.h \ + HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_warning.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h HAL/inc/os/alt_flag.h \ + drivers/inc/altera_avalon_jtag_uart_fd.h HAL/inc/sys/alt_dev.h \ + HAL/inc/sys/alt_llist.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h HAL/inc/sys/alt_log_printf.h system.h + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/ioctl.h: + +HAL/inc/alt_types.h: + +drivers/inc/altera_avalon_jtag_uart_regs.h: + +HAL/inc/io.h: + +HAL/inc/alt_types.h: + +drivers/inc/altera_avalon_jtag_uart.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_flag.h: + +drivers/inc/altera_avalon_jtag_uart_fd.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/sys/alt_log_printf.h: + +system.h: diff --git a/software/qsys_tutorial_test_bsp/obj/drivers/src/altera_avalon_jtag_uart_write.o b/software/qsys_tutorial_test_bsp/obj/drivers/src/altera_avalon_jtag_uart_write.o new file mode 100644 index 0000000..91437f2 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/obj/drivers/src/altera_avalon_jtag_uart_write.o Binary files differ diff --git a/software/qsys_tutorial_test_bsp/public.mk b/software/qsys_tutorial_test_bsp/public.mk new file mode 100644 index 0000000..397ab19 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/public.mk @@ -0,0 +1,385 @@ +#------------------------------------------------------------------------------ +# BSP "PUBLIC" MAKEFILE CONTENT +# +# This file is intended to be included in an application or library +# Makefile that is using this BSP. You can create such a Makefile with +# the nios2-app-generate-makefile or nios2-lib-generate-makefile +# commands. +# +# The following variables must be defined before including this file: +# +# ALT_LIBRARY_ROOT_DIR +# Contains the path to the BSP top-level (aka root) directory +#------------------------------------------------------------------------------ + +#------------------------------------------------------------------------------ +# PATHS +#------------------------------------------------------------------------------ + + + +# Path to the provided linker script. +BSP_LINKER_SCRIPT := $(ALT_LIBRARY_ROOT_DIR)/linker.x + +# Include paths: +# The path to root of all header files that a library wishes to make +# available for an application's use is specified here. Note that this +# may not be *all* folders within a hierarchy. For example, if it is +# desired that the application developer type: +# #include +# #include +# With files laid out like this: +# /inc/sockets.h +# /inc/ip/tcpip.h +# +# Then, only /inc need be added to the list of include +# directories. Alternatively, if you wish to be able to directly include +# all files in a hierarchy, separate paths to each folder in that +# hierarchy must be defined. + +# The following are the "base" set of include paths for a BSP. +# These paths are appended to the list that individual software +# components, drivers, etc., add in the generated portion of this +# file (below). +ALT_INCLUDE_DIRS_TO_APPEND += \ + $(ALT_LIBRARY_ROOT_DIR) \ + $(ALT_LIBRARY_ROOT_DIR)/drivers/inc + +# Additions to linker library search-path: +# Here we provide a path to "our self" for the application to construct a +# "-L " out of. This should contain a list of directories, +# relative to the library root, of all directories with .a files to link +# against. +ALT_LIBRARY_DIRS += $(ALT_LIBRARY_ROOT_DIR) + + +#------------------------------------------------------------------------------ +# COMPILATION FLAGS +#------------------------------------------------------------------------------ +# Default C pre-processor flags for a BSP: +ALT_CPPFLAGS += -DSYSTEM_BUS_WIDTH=32 \ + -pipe + + +#------------------------------------------------------------------------------ +# MANAGED CONTENT +# +# All content between the lines "START MANAGED" and "END MANAGED" below is +# generated based on variables in the BSP settings file when the +# nios2-bsp-generate-files command is invoked. If you wish to persist any +# information pertaining to the build process, it is recomended that you +# utilize the BSP settings mechanism to do so. +#------------------------------------------------------------------------------ +#START MANAGED + +# The following TYPE comment allows tools to identify the 'type' of target this +# makefile is associated with. +# TYPE: BSP_PUBLIC_MAKEFILE + +# This following VERSION comment indicates the version of the tool used to +# generate this makefile. A makefile variable is provided for VERSION as well. +# ACDS_VERSION: 13.0sp1 +ACDS_VERSION := 13.0sp1 + +# This following BUILD_NUMBER comment indicates the build number of the tool +# used to generate this makefile. +# BUILD_NUMBER: 232 + +# Qsys--generated SOPCINFO file. Required for resolving node instance ID's with +# design component names. +SOPCINFO_FILE := C:/Users/takayun/Desktop/qsys_tutorial/nios_system.sopcinfo + +# Big-Endian operation. +# setting BIG_ENDIAN is false +ALT_CFLAGS += -EL + +# Path to the provided C language runtime initialization code. +BSP_CRT0 := $(ALT_LIBRARY_ROOT_DIR)/obj/HAL/src/crt0.o + +# Name of BSP library as provided to linker using the "-msys-lib" flag or +# linker script GROUP command. +# setting BSP_SYS_LIB is hal_bsp +BSP_SYS_LIB := hal_bsp +ELF_PATCH_FLAG += --thread_model hal + +# Type identifier of the BSP library +# setting BSP_TYPE is hal +ALT_CPPFLAGS += -D__hal__ +BSP_TYPE := hal + +# CPU Name +# setting CPU_NAME is nios2_processor +CPU_NAME = nios2_processor +ELF_PATCH_FLAG += --cpu_name $(CPU_NAME) + +# Hardware Divider present. +# setting HARDWARE_DIVIDE is false +ALT_CFLAGS += -mno-hw-div + +# Hardware Multiplier present. +# setting HARDWARE_MULTIPLY is false +ALT_CFLAGS += -mno-hw-mul + +# Hardware Mulx present. +# setting HARDWARE_MULX is false +ALT_CFLAGS += -mno-hw-mulx + +# Debug Core present. +# setting HAS_DEBUG_CORE is true +CPU_HAS_DEBUG_CORE = 1 + +# Qsys generated design +# setting QSYS is 1 +QSYS := 1 +ELF_PATCH_FLAG += --qsys true + +# Design Name +# setting SOPC_NAME is nios_system +SOPC_NAME := nios_system + +# SopcBuilder Simulation Enabled +# setting SOPC_SIMULATION_ENABLED is false +ELF_PATCH_FLAG += --simulation_enabled false + +# Enable JTAG UART driver to recover when host is inactive causing buffer to +# full without returning error. Printf will not fail with this recovery. none +# setting altera_avalon_jtag_uart_driver.enable_jtag_uart_ignore_fifo_full_error is false + +# Small-footprint (polled mode) driver none +# setting altera_avalon_jtag_uart_driver.enable_small_driver is false + +# Build a custom version of newlib with the specified space-separated compiler +# flags. The custom newlib build will be placed in the <bsp root>/newlib +# directory, and will be used only for applications that utilize this BSP. +# setting hal.custom_newlib_flags is none + +# Enable support for a subset of the C++ language. This option increases code +# footprint by adding support for C++ constructors. Certain features, such as +# multiple inheritance and exceptions are not supported. If false, adds +# -DALT_NO_C_PLUS_PLUS to ALT_CPPFLAGS in public.mk, and reduces code +# footprint. none +# setting hal.enable_c_plus_plus is false +ALT_CPPFLAGS += -DALT_NO_C_PLUS_PLUS + +# When your application exits, close file descriptors, call C++ destructors, +# etc. Code footprint can be reduced by disabling clean exit. If disabled, adds +# -DALT_NO_CLEAN_EXIT to ALT_CPPFLAGS and -Wl,--defsym, exit=_exit to +# ALT_LDFLAGS in public.mk. none +# setting hal.enable_clean_exit is false +ALT_CPPFLAGS += -DALT_NO_CLEAN_EXIT +ALT_LDFLAGS += -Wl,--defsym,exit=_exit + +# Add exit() support. This option increases code footprint if your "main()" +# routine does "return" or call "exit()". If false, adds -DALT_NO_EXIT to +# ALT_CPPFLAGS in public.mk, and reduces footprint none +# setting hal.enable_exit is false +ALT_CPPFLAGS += -DALT_NO_EXIT + +# Causes code to be compiled with gprof profiling enabled and the application +# ELF to be linked with the GPROF library. If true, adds -DALT_PROVIDE_GMON to +# ALT_CPPFLAGS and -pg to ALT_CFLAGS in public.mk. none +# setting hal.enable_gprof is false + +# Enables lightweight device driver API. This reduces code and data footprint +# by removing the HAL layer that maps device names (e.g. /dev/uart0) to file +# descriptors. Instead, driver routines are called directly. The open(), +# close(), and lseek() routines will always fail if called. The read(), +# write(), fstat(), ioctl(), and isatty() routines only work for the stdio +# devices. If true, adds -DALT_USE_DIRECT_DRIVERS to ALT_CPPFLAGS in public.mk. +# The Altera Host and read-only ZIP file systems can't be used if +# hal.enable_lightweight_device_driver_api is true. +# setting hal.enable_lightweight_device_driver_api is true +ALT_CPPFLAGS += -DALT_USE_DIRECT_DRIVERS + +# Adds code to emulate multiply and divide instructions in case they are +# executed but aren't present in the CPU. Normally this isn't required because +# the compiler won't use multiply and divide instructions that aren't present +# in the CPU. If false, adds -DALT_NO_INSTRUCTION_EMULATION to ALT_CPPFLAGS in +# public.mk. none +# setting hal.enable_mul_div_emulation is false +ALT_CPPFLAGS += -DALT_NO_INSTRUCTION_EMULATION + +# Certain drivers are compiled with reduced functionality to reduce code +# footprint. Not all drivers observe this setting. The altera_avalon_uart and +# altera_avalon_jtag_uart drivers switch from interrupt-driven to polled +# operation. CAUTION: Several device drivers are disabled entirely. These +# include the altera_avalon_cfi_flash, altera_avalon_epcs_flash_controller, and +# altera_avalon_lcd_16207 drivers. This can result in certain API (HAL flash +# access routines) to fail. You can define a symbol provided by each driver to +# prevent it from being removed. If true, adds -DALT_USE_SMALL_DRIVERS to +# ALT_CPPFLAGS in public.mk. none +# setting hal.enable_reduced_device_drivers is true +ALT_CPPFLAGS += -DALT_USE_SMALL_DRIVERS + +# Turns on HAL runtime stack checking feature. Enabling this setting causes +# additional code to be placed into each subroutine call to generate an +# exception if a stack collision occurs with the heap or statically allocated +# data. If true, adds -DALT_STACK_CHECK and -mstack-check to ALT_CPPFLAGS in +# public.mk. none +# setting hal.enable_runtime_stack_checking is false + +# The BSP is compiled with optimizations to speedup HDL simulation such as +# initializing the cache, clearing the .bss section, and skipping long delay +# loops. If true, adds -DALT_SIM_OPTIMIZE to ALT_CPPFLAGS in public.mk. When +# this setting is true, the BSP shouldn't be used to build applications that +# are expected to run real hardware. +# setting hal.enable_sim_optimize is false + +# Causes the small newlib (C library) to be used. This reduces code and data +# footprint at the expense of reduced functionality. Several newlib features +# are removed such as floating-point support in printf(), stdin input routines, +# and buffered I/O. The small C library is not compatible with Micrium +# MicroC/OS-II. If true, adds -msmallc to ALT_LDFLAGS in public.mk. none +# setting hal.enable_small_c_library is true +ALT_LDFLAGS += -msmallc +ALT_CPPFLAGS += -DSMALL_C_LIB + +# Enable SOPC Builder System ID. If a System ID SOPC Builder component is +# connected to the CPU associated with this BSP, it will be enabled in the +# creation of command-line arguments to download an ELF to the target. +# Otherwise, system ID and timestamp values are left out of public.mk for +# application Makefile "download-elf" target definition. With the system ID +# check disabled, the Nios II EDS tools will not automatically ensure that the +# application .elf file (and BSP it is linked against) corresponds to the +# hardware design on the target. If false, adds --accept-bad-sysid to +# SOPC_SYSID_FLAG in public.mk. none +# setting hal.enable_sopc_sysid_check is true + +# Enable BSP generation to query if SOPC system is big endian. If true ignores +# export of 'ALT_CFLAGS += -EB' to public.mk if big endian system. If true +# ignores export of 'ALT_CFLAGS += -EL' if little endian system. none +# setting hal.make.ignore_system_derived.big_endian is false + +# Enable BSP generation to query if SOPC system has a debug core present. If +# true ignores export of 'CPU_HAS_DEBUG_CORE = 1' to public.mk if a debug core +# is found in the system. If true ignores export of 'CPU_HAS_DEBUG_CORE = 0' if +# no debug core is found in the system. none +# setting hal.make.ignore_system_derived.debug_core_present is false + +# Enable BSP generation to query if SOPC system has FPU present. If true +# ignores export of 'ALT_CFLAGS += -mhard-float' to public.mk if FPU is found +# in the system. If true ignores export of 'ALT_CFLAGS += -mhard-soft' if FPU +# is not found in the system. none +# setting hal.make.ignore_system_derived.fpu_present is false + +# Enable BSP generation to query if SOPC system has hardware divide present. If +# true ignores export of 'ALT_CFLAGS += -mno-hw-div' to public.mk if no +# division is found in system. If true ignores export of 'ALT_CFLAGS += +# -mhw-div' if division is found in the system. none +# setting hal.make.ignore_system_derived.hardware_divide_present is false + +# Enable BSP generation to query if SOPC system floating point custom +# instruction with a divider is present. If true ignores export of 'ALT_CFLAGS +# += -mcustom-fpu-cfg=60-2' and 'ALT_LDFLAGS += -mcustom-fpu-cfg=60-2' to +# public.mk if the custom instruction is found in the system. none +# setting hal.make.ignore_system_derived.hardware_fp_cust_inst_divider_present is false + +# Enable BSP generation to query if SOPC system floating point custom +# instruction without a divider is present. If true ignores export of +# 'ALT_CFLAGS += -mcustom-fpu-cfg=60-1' and 'ALT_LDFLAGS += +# -mcustom-fpu-cfg=60-1' to public.mk if the custom instruction is found in the +# system. none +# setting hal.make.ignore_system_derived.hardware_fp_cust_inst_no_divider_present is false + +# Enable BSP generation to query if SOPC system has multiplier present. If true +# ignores export of 'ALT_CFLAGS += -mno-hw-mul' to public.mk if no multiplier +# is found in the system. If true ignores export of 'ALT_CFLAGS += -mhw-mul' if +# multiplier is found in the system. none +# setting hal.make.ignore_system_derived.hardware_multiplier_present is false + +# Enable BSP generation to query if SOPC system has hardware mulx present. If +# true ignores export of 'ALT_CFLAGS += -mno-hw-mulx' to public.mk if no mulx +# is found in the system. If true ignores export of 'ALT_CFLAGS += -mhw-mulx' +# if mulx is found in the system. none +# setting hal.make.ignore_system_derived.hardware_mulx_present is false + +# Enable BSP generation to query if SOPC system has simulation enabled. If true +# ignores export of 'ELF_PATCH_FLAG += --simulation_enabled' to public.mk. none +# setting hal.make.ignore_system_derived.sopc_simulation_enabled is false + +# Enable BSP generation to query SOPC system for system ID base address. If +# true ignores export of 'SOPC_SYSID_FLAG += --sidp=
' and +# 'ELF_PATCH_FLAG += --sidp=
' to public.mk. none +# setting hal.make.ignore_system_derived.sopc_system_base_address is false + +# Enable BSP generation to query SOPC system for system ID. If true ignores +# export of 'SOPC_SYSID_FLAG += --id=' and 'ELF_PATCH_FLAG += +# --id=' to public.mk. none +# setting hal.make.ignore_system_derived.sopc_system_id is false + +# Enable BSP generation to query SOPC system for system timestamp. If true +# ignores export of 'SOPC_SYSID_FLAG += --timestamp=' and +# 'ELF_PATCH_FLAG += --timestamp=' to public.mk. none +# setting hal.make.ignore_system_derived.sopc_system_timestamp is false + +# Slave descriptor of STDERR character-mode device. This setting is used by the +# ALT_STDERR family of defines in system.h. none +# setting hal.stderr is jtag_uart +ELF_PATCH_FLAG += --stderr_dev jtag_uart + +# Slave descriptor of STDIN character-mode device. This setting is used by the +# ALT_STDIN family of defines in system.h. none +# setting hal.stdin is jtag_uart +ELF_PATCH_FLAG += --stdin_dev jtag_uart + +# Slave descriptor of STDOUT character-mode device. This setting is used by the +# ALT_STDOUT family of defines in system.h. none +# setting hal.stdout is jtag_uart +ELF_PATCH_FLAG += --stdout_dev jtag_uart + + +#------------------------------------------------------------------------------ +# SOFTWARE COMPONENT & DRIVER INCLUDE PATHS +#------------------------------------------------------------------------------ + +ALT_INCLUDE_DIRS += $(ALT_LIBRARY_ROOT_DIR)/HAL/inc + +#------------------------------------------------------------------------------ +# SOFTWARE COMPONENT & DRIVER PRODUCED ALT_CPPFLAGS ADDITIONS +#------------------------------------------------------------------------------ + +ALT_CPPFLAGS += -DALT_SINGLE_THREADED + +#END MANAGED + + +#------------------------------------------------------------------------------ +# LIBRARY INFORMATION +#------------------------------------------------------------------------------ +# Assemble the name of the BSP *.a file using the BSP library name +# (BSP_SYS_LIB) in generated content above. +BSP_LIB := lib$(BSP_SYS_LIB).a + +# Additional libraries to link against: +# An application including this file will prefix each library with "-l". +# For example, to include the Newlib math library "m" is included, which +# becomes "-lm" when linking the application. +ALT_LIBRARY_NAMES += m + +# Additions to linker dependencies: +# An application Makefile will typically add these directly to the list +# of dependencies required to build the executable target(s). The BSP +# library (*.a) file is specified here. +ALT_LDDEPS += $(ALT_LIBRARY_ROOT_DIR)/$(BSP_LIB) + +# Is this library "Makeable"? +# Add to list of root library directories that support running 'make' +# to build them. Because libraries may or may not have a Makefile in their +# root, appending to this variable tells an application to run 'make' in +# the library root to build/update this library. +MAKEABLE_LIBRARY_ROOT_DIRS += $(ALT_LIBRARY_ROOT_DIR) + +# Additional Assembler Flags +# -gdwarf2 flag is required for stepping through assembly code +ALT_ASFLAGS += -gdwarf2 + +#------------------------------------------------------------------------------ +# FINAL INCLUDE PATH LIST +#------------------------------------------------------------------------------ +# Append static include paths to paths specified by OS/driver/sw package +# additions to the BSP thus giving them precedence in case a BSP addition +# is attempting to override BSP sources. +ALT_INCLUDE_DIRS += $(ALT_INCLUDE_DIRS_TO_APPEND) + + + diff --git a/software/qsys_tutorial_test_bsp/settings.bsp b/software/qsys_tutorial_test_bsp/settings.bsp new file mode 100644 index 0000000..2aafe5e --- /dev/null +++ b/software/qsys_tutorial_test_bsp/settings.bsp @@ -0,0 +1,913 @@ + + + hal + default + 2016/10/27 9:21:10 + 1477527670120 + C:\Users\takayun\Desktop\qsys_tutorial\software\qsys_tutorial_test_bsp + .\settings.bsp + C:\Users\takayun\Desktop\qsys_tutorial\nios_system.sopcinfo + default + nios2_processor + 1.9 + + hal.sys_clk_timer + ALT_SYS_CLK + UnquotedString + none + none + system_h_define + Slave descriptor of the system clock timer device. This device provides a periodic interrupt ("tick") and is typically required for RTOS use. This setting defines the value of ALT_SYS_CLK in system.h. + none + false + common + + + hal.timestamp_timer + ALT_TIMESTAMP_CLK + UnquotedString + none + none + system_h_define + Slave descriptor of timestamp timer device. This device is used by Altera HAL timestamp drivers for high-resolution time measurement. This setting defines the value of ALT_TIMESTAMP_CLK in system.h. + none + false + common + + + hal.max_file_descriptors + ALT_MAX_FD + DecimalNumber + 4 + 32 + system_h_define + Determines the number of file descriptors statically allocated. This setting defines the value of ALT_MAX_FD in system.h. + If hal.enable_lightweight_device_driver_api is true, there are no file descriptors so this setting is ignored. If hal.enable_lightweight_device_driver_api is false, this setting must be at least 4 because HAL needs a file descriptor for /dev/null, /dev/stdin, /dev/stdout, and /dev/stderr. + false + + + + hal.enable_instruction_related_exceptions_api + ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API + BooleanDefineOnly + false + false + system_h_define + Enables API for registering handlers to service instruction-related exceptions. Enabling this setting increases the size of the exception entry code. + These exception types can be generated if various processor options are enabled, such as the MMU, MPU, or other advanced exception types. + false + + + + hal.linker.allow_code_at_reset + ALT_ALLOW_CODE_AT_RESET + Boolean + 1 + 0 + none + Indicates if initialization code is allowed at the reset address. If true, defines the macro ALT_ALLOW_CODE_AT_RESET in linker.h. + If true, defines the macro ALT_ALLOW_CODE_AT_RESET in linker.h. This setting is typically false if an external bootloader (e.g. flash bootloader) is present. + false + + + + hal.linker.enable_alt_load + NONE + Boolean + 1 + 0 + none + Enables the alt_load() facility. The alt_load() facility copies sections from the .text memory into RAM. If true, this setting sets up the VMA/LMA of sections in linker.x to allow them to be loaded into the .text memory. + This setting is typically false if an external bootloader (e.g. flash bootloader) is present. + false + + + + hal.linker.enable_alt_load_copy_rodata + NONE + Boolean + 0 + 0 + none + Causes the alt_load() facility to copy the .rodata section. If true, this setting defines the macro ALT_LOAD_COPY_RODATA in linker.h. + none + false + + + + hal.linker.enable_alt_load_copy_rwdata + NONE + Boolean + 1 + 0 + none + Causes the alt_load() facility to copy the .rwdata section. If true, this setting defines the macro ALT_LOAD_COPY_RWDATA in linker.h. + none + false + + + + hal.linker.enable_alt_load_copy_exceptions + NONE + Boolean + 0 + 0 + none + Causes the alt_load() facility to copy the .exceptions section. If true, this setting defines the macro ALT_LOAD_COPY_EXCEPTIONS in linker.h. + none + false + + + + hal.linker.enable_exception_stack + NONE + Boolean + 0 + 0 + none + Enables use of a separate exception stack. If true, defines the macro ALT_EXCEPTION_STACK in linker.h, adds a memory region called exception_stack to linker.x, and provides the symbols __alt_exception_stack_pointer and __alt_exception_stack_limit in linker.x. + The hal.linker.exception_stack_size and hal.linker.exception_stack_memory_region_name settings must also be valid. This setting must be false for MicroC/OS-II BSPs. The exception stack can be used to improve interrupt and other exception performance if the EIC is *not* used. + false + common + + + hal.linker.exception_stack_size + NONE + DecimalNumber + 1024 + 1024 + none + Size of the exception stack in bytes. + Only used if hal.linker.enable_exception_stack is true. + false + common + + + hal.linker.exception_stack_memory_region_name + NONE + UnquotedString + onchip_memory + none + none + Name of the existing memory region that will be divided up to create the 'exception_stack' memory region. The selected region name will be adjusted automatically when the BSP is generated to create the 'exception_stack' memory region. + Only used if hal.linker.enable_exception_stack is true. + false + common + + + hal.linker.enable_interrupt_stack + NONE + Boolean + 0 + 0 + none + Enables use of a separate interrupt stack. If true, defines the macro ALT_INTERRUPT_STACK in linker.h, adds a memory region called interrupt_stack to linker.x, and provides the symbols __alt_interrupt_stack_pointer and __alt_interrupt_stack_limit in linker.x. + The hal.linker.interrupt_stack_size and hal.linker.interrupt_stack_memory_region_name settings must also be valid. This setting must be false for MicroC/OS-II BSPs. Only enable if the EIC is used exclusively. The exception stack can be used to improve interrupt and other exception performance if the EIC is *not* used. + false + common + + + hal.linker.interrupt_stack_size + NONE + DecimalNumber + 1024 + 1024 + none + Size of the interrupt stack in bytes. + Only used if hal.linker.enable_interrupt_stack is true. + false + common + + + hal.linker.interrupt_stack_memory_region_name + NONE + UnquotedString + onchip_memory + none + none + Name of the existing memory region that will be divided up to create the 'interrupt_stack' memory region. The selected region name will be adjusted automatically when the BSP is generated to create the 'interrupt_stack' memory region. + Only used if hal.linker.enable_interrupt_stack is true. + false + common + + + hal.stdin + NONE + UnquotedString + jtag_uart + none + system_h_define + Slave descriptor of STDIN character-mode device. This setting is used by the ALT_STDIN family of defines in system.h. + none + false + common + + + hal.stdout + NONE + UnquotedString + jtag_uart + none + system_h_define + Slave descriptor of STDOUT character-mode device. This setting is used by the ALT_STDOUT family of defines in system.h. + none + false + common + + + hal.stderr + NONE + UnquotedString + jtag_uart + none + system_h_define + Slave descriptor of STDERR character-mode device. This setting is used by the ALT_STDERR family of defines in system.h. + none + false + common + + + hal.log_port + NONE + UnquotedString + none + none + public_mk_define + Slave descriptor of debug logging character-mode device. If defined, it enables extra debug messages in the HAL source. This setting is used by the ALT_LOG_PORT family of defines in system.h. + none + false + none + + + hal.make.build_pre_process + BUILD_PRE_PROCESS + UnquotedString + none + none + makefile_variable + Command executed before BSP built. + none + false + none + + + hal.make.ar_pre_process + AR_PRE_PROCESS + UnquotedString + none + none + makefile_variable + Command executed before archiver execution. + none + false + none + + + hal.make.bsp_cflags_defined_symbols + BSP_CFLAGS_DEFINED_SYMBOLS + UnquotedString + none + none + makefile_variable + Preprocessor macros to define. A macro definition in this setting has the same effect as a "#define" in source code. Adding "-DALT_DEBUG" to this setting has the same effect as "#define ALT_DEBUG" in a souce file. Adding "-DFOO=1" to this setting is equivalent to the macro "#define FOO 1" in a source file. Macros defined with this setting are applied to all .S, .c, and C++ files in the BSP. This setting defines the value of BSP_CFLAGS_DEFINED_SYMBOLS in the BSP Makefile. + none + false + none + + + hal.make.ar_post_process + AR_POST_PROCESS + UnquotedString + none + none + makefile_variable + Command executed after archiver execution. + none + false + none + + + hal.make.as + AS + UnquotedString + nios2-elf-gcc + nios2-elf-gcc + makefile_variable + Assembler command. Note that CC is used for .S files. + none + false + none + + + hal.make.build_post_process + BUILD_POST_PROCESS + UnquotedString + none + none + makefile_variable + Command executed after BSP built. + none + false + none + + + hal.make.bsp_cflags_debug + BSP_CFLAGS_DEBUG + UnquotedString + -g + -g + makefile_variable + C/C++ compiler debug level. '-g' provides the default set of debug symbols typically required to debug a typical application. Omitting '-g' removes debug symbols from the ELF. This setting defines the value of BSP_CFLAGS_DEBUG in Makefile. + none + false + common + + + hal.make.ar + AR + UnquotedString + nios2-elf-ar + nios2-elf-ar + makefile_variable + Archiver command. Creates library files. + none + false + none + + + hal.make.rm + RM + UnquotedString + rm -f + rm -f + makefile_variable + Command used to remove files during 'clean' target. + none + false + none + + + hal.make.cxx_pre_process + CXX_PRE_PROCESS + UnquotedString + none + none + makefile_variable + Command executed before each C++ file is compiled. + none + false + none + + + hal.make.bsp_cflags_warnings + BSP_CFLAGS_WARNINGS + UnquotedString + -Wall + -Wall + makefile_variable + C/C++ compiler warning level. "-Wall" is commonly used.This setting defines the value of BSP_CFLAGS_WARNINGS in Makefile. + none + false + none + + + hal.make.bsp_arflags + BSP_ARFLAGS + UnquotedString + -src + -src + makefile_variable + Custom flags only passed to the archiver. This content of this variable is directly passed to the archiver rather than the more standard "ARFLAGS". The reason for this is that GNU Make assumes some default content in ARFLAGS. This setting defines the value of BSP_ARFLAGS in Makefile. + none + false + none + + + hal.make.bsp_cflags_optimization + BSP_CFLAGS_OPTIMIZATION + UnquotedString + '-Os' + -O0 + makefile_variable + C/C++ compiler optimization level. "-O0" = no optimization,"-O2" = "normal" optimization, etc. "-O0" is recommended for code that you want to debug since compiler optimization can remove variables and produce non-sequential execution of code while debugging. This setting defines the value of BSP_CFLAGS_OPTIMIZATION in Makefile. + none + false + common + + + hal.make.as_post_process + AS_POST_PROCESS + UnquotedString + none + none + makefile_variable + Command executed after each assembly file is compiled. + none + false + none + + + hal.make.cc_pre_process + CC_PRE_PROCESS + UnquotedString + none + none + makefile_variable + Command executed before each .c/.S file is compiled. + none + false + none + + + hal.make.bsp_asflags + BSP_ASFLAGS + UnquotedString + -Wa,-gdwarf2 + -Wa,-gdwarf2 + makefile_variable + Custom flags only passed to the assembler. This setting defines the value of BSP_ASFLAGS in Makefile. + none + false + none + + + hal.make.as_pre_process + AS_PRE_PROCESS + UnquotedString + none + none + makefile_variable + Command executed before each assembly file is compiled. + none + false + none + + + hal.make.bsp_cflags_undefined_symbols + BSP_CFLAGS_UNDEFINED_SYMBOLS + UnquotedString + none + none + makefile_variable + Preprocessor macros to undefine. Undefined macros are similar to defined macros, but replicate the "#undef" directive in source code. To undefine the macro FOO use the syntax "-u FOO" in this setting. This is equivalent to "#undef FOO" in a source file. Note: the syntax differs from macro definition (there is a space, i.e. "-u FOO" versus "-DFOO"). Macros defined with this setting are applied to all .S, .c, and C++ files in the BSP. This setting defines the value of BSP_CFLAGS_UNDEFINED_SYMBOLS in the BSP Makefile. + none + false + none + + + hal.make.cc_post_process + CC_POST_PROCESS + UnquotedString + none + none + makefile_variable + Command executed after each .c/.S file is compiled. + none + false + none + + + hal.make.cxx_post_process + CXX_POST_PROCESS + UnquotedString + none + none + makefile_variable + Command executed before each C++ file is compiled. + none + false + none + + + hal.make.cc + CC + UnquotedString + nios2-elf-gcc -xc + nios2-elf-gcc -xc + makefile_variable + C compiler command. + none + false + none + + + hal.make.bsp_cxx_flags + BSP_CXXFLAGS + UnquotedString + none + none + makefile_variable + Custom flags only passed to the C++ compiler. This setting defines the value of BSP_CXXFLAGS in Makefile. + none + false + none + + + hal.make.bsp_inc_dirs + BSP_INC_DIRS + UnquotedString + none + none + makefile_variable + Space separated list of extra include directories to scan for header files. Directories are relative to the top-level BSP directory. The -I prefix's added by the makefile so don't add it here. This setting defines the value of BSP_INC_DIRS in Makefile. + none + false + none + + + hal.make.cxx + CXX + UnquotedString + nios2-elf-gcc -xc++ + nios2-elf-gcc -xc++ + makefile_variable + C++ compiler command. + none + false + none + + + hal.make.bsp_cflags_user_flags + BSP_CFLAGS_USER_FLAGS + UnquotedString + none + none + makefile_variable + Custom flags passed to the compiler when compiling C, C++, and .S files. This setting defines the value of BSP_CFLAGS_USER_FLAGS in Makefile. + none + false + none + + + hal.make.ignore_system_derived.sopc_system_id + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query SOPC system for system ID. If true ignores export of 'SOPC_SYSID_FLAG += --id=<sysid>' and 'ELF_PATCH_FLAG += --id=<sysid>' to public.mk. + none + false + none + + + hal.make.ignore_system_derived.sopc_system_timestamp + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query SOPC system for system timestamp. If true ignores export of 'SOPC_SYSID_FLAG += --timestamp=<timestamp>' and 'ELF_PATCH_FLAG += --timestamp=<timestamp>' to public.mk. + none + false + none + + + hal.make.ignore_system_derived.sopc_system_base_address + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query SOPC system for system ID base address. If true ignores export of 'SOPC_SYSID_FLAG += --sidp=<address>' and 'ELF_PATCH_FLAG += --sidp=<address>' to public.mk. + none + false + none + + + hal.make.ignore_system_derived.sopc_simulation_enabled + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query if SOPC system has simulation enabled. If true ignores export of 'ELF_PATCH_FLAG += --simulation_enabled' to public.mk. + none + false + none + + + hal.make.ignore_system_derived.fpu_present + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query if SOPC system has FPU present. If true ignores export of 'ALT_CFLAGS += -mhard-float' to public.mk if FPU is found in the system. If true ignores export of 'ALT_CFLAGS += -mhard-soft' if FPU is not found in the system. + none + false + none + + + hal.make.ignore_system_derived.hardware_multiplier_present + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query if SOPC system has multiplier present. If true ignores export of 'ALT_CFLAGS += -mno-hw-mul' to public.mk if no multiplier is found in the system. If true ignores export of 'ALT_CFLAGS += -mhw-mul' if multiplier is found in the system. + none + false + none + + + hal.make.ignore_system_derived.hardware_mulx_present + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query if SOPC system has hardware mulx present. If true ignores export of 'ALT_CFLAGS += -mno-hw-mulx' to public.mk if no mulx is found in the system. If true ignores export of 'ALT_CFLAGS += -mhw-mulx' if mulx is found in the system. + none + false + none + + + hal.make.ignore_system_derived.hardware_divide_present + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query if SOPC system has hardware divide present. If true ignores export of 'ALT_CFLAGS += -mno-hw-div' to public.mk if no division is found in system. If true ignores export of 'ALT_CFLAGS += -mhw-div' if division is found in the system. + none + false + none + + + hal.make.ignore_system_derived.debug_core_present + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query if SOPC system has a debug core present. If true ignores export of 'CPU_HAS_DEBUG_CORE = 1' to public.mk if a debug core is found in the system. If true ignores export of 'CPU_HAS_DEBUG_CORE = 0' if no debug core is found in the system. + none + false + none + + + hal.make.ignore_system_derived.big_endian + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query if SOPC system is big endian. If true ignores export of 'ALT_CFLAGS += -EB' to public.mk if big endian system. If true ignores export of 'ALT_CFLAGS += -EL' if little endian system. + none + false + none + + + hal.make.ignore_system_derived.hardware_fp_cust_inst_divider_present + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query if SOPC system floating point custom instruction with a divider is present. If true ignores export of 'ALT_CFLAGS += -mcustom-fpu-cfg=60-2' and 'ALT_LDFLAGS += -mcustom-fpu-cfg=60-2' to public.mk if the custom instruction is found in the system. + none + false + none + + + hal.make.ignore_system_derived.hardware_fp_cust_inst_no_divider_present + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query if SOPC system floating point custom instruction without a divider is present. If true ignores export of 'ALT_CFLAGS += -mcustom-fpu-cfg=60-1' and 'ALT_LDFLAGS += -mcustom-fpu-cfg=60-1' to public.mk if the custom instruction is found in the system. + none + false + none + + + hal.enable_exit + ALT_NO_EXIT + Boolean + 0 + 1 + public_mk_define + Add exit() support. This option increases code footprint if your "main()" routine does "return" or call "exit()". If false, adds -DALT_NO_EXIT to ALT_CPPFLAGS in public.mk, and reduces footprint + none + false + none + + + hal.enable_small_c_library + NONE + Boolean + 1 + 0 + public_mk_define + Causes the small newlib (C library) to be used. This reduces code and data footprint at the expense of reduced functionality. Several newlib features are removed such as floating-point support in printf(), stdin input routines, and buffered I/O. The small C library is not compatible with Micrium MicroC/OS-II. If true, adds -msmallc to ALT_LDFLAGS in public.mk. + none + false + common + + + hal.enable_clean_exit + ALT_NO_CLEAN_EXIT + Boolean + 0 + 1 + public_mk_define + When your application exits, close file descriptors, call C++ destructors, etc. Code footprint can be reduced by disabling clean exit. If disabled, adds -DALT_NO_CLEAN_EXIT to ALT_CPPFLAGS and -Wl,--defsym, exit=_exit to ALT_LDFLAGS in public.mk. + none + false + none + + + hal.enable_runtime_stack_checking + ALT_STACK_CHECK + Boolean + 0 + 0 + public_mk_define + Turns on HAL runtime stack checking feature. Enabling this setting causes additional code to be placed into each subroutine call to generate an exception if a stack collision occurs with the heap or statically allocated data. If true, adds -DALT_STACK_CHECK and -mstack-check to ALT_CPPFLAGS in public.mk. + none + false + none + + + hal.enable_gprof + ALT_PROVIDE_GMON + Boolean + 0 + 0 + public_mk_define + Causes code to be compiled with gprof profiling enabled and the application ELF to be linked with the GPROF library. If true, adds -DALT_PROVIDE_GMON to ALT_CPPFLAGS and -pg to ALT_CFLAGS in public.mk. + none + false + common + + + hal.enable_c_plus_plus + ALT_NO_C_PLUS_PLUS + Boolean + 0 + 1 + public_mk_define + Enable support for a subset of the C++ language. This option increases code footprint by adding support for C++ constructors. Certain features, such as multiple inheritance and exceptions are not supported. If false, adds -DALT_NO_C_PLUS_PLUS to ALT_CPPFLAGS in public.mk, and reduces code footprint. + none + false + none + + + hal.enable_reduced_device_drivers + ALT_USE_SMALL_DRIVERS + Boolean + 1 + 0 + public_mk_define + Certain drivers are compiled with reduced functionality to reduce code footprint. Not all drivers observe this setting. The altera_avalon_uart and altera_avalon_jtag_uart drivers switch from interrupt-driven to polled operation. CAUTION: Several device drivers are disabled entirely. These include the altera_avalon_cfi_flash, altera_avalon_epcs_flash_controller, and altera_avalon_lcd_16207 drivers. This can result in certain API (HAL flash access routines) to fail. You can define a symbol provided by each driver to prevent it from being removed. If true, adds -DALT_USE_SMALL_DRIVERS to ALT_CPPFLAGS in public.mk. + none + false + common + + + hal.enable_lightweight_device_driver_api + ALT_USE_DIRECT_DRIVERS + Boolean + 1 + 0 + public_mk_define + Enables lightweight device driver API. This reduces code and data footprint by removing the HAL layer that maps device names (e.g. /dev/uart0) to file descriptors. Instead, driver routines are called directly. The open(), close(), and lseek() routines will always fail if called. The read(), write(), fstat(), ioctl(), and isatty() routines only work for the stdio devices. If true, adds -DALT_USE_DIRECT_DRIVERS to ALT_CPPFLAGS in public.mk. + The Altera Host and read-only ZIP file systems can't be used if hal.enable_lightweight_device_driver_api is true. + false + none + + + hal.enable_mul_div_emulation + ALT_NO_INSTRUCTION_EMULATION + Boolean + 0 + 0 + public_mk_define + Adds code to emulate multiply and divide instructions in case they are executed but aren't present in the CPU. Normally this isn't required because the compiler won't use multiply and divide instructions that aren't present in the CPU. If false, adds -DALT_NO_INSTRUCTION_EMULATION to ALT_CPPFLAGS in public.mk. + none + false + none + + + hal.enable_sim_optimize + ALT_SIM_OPTIMIZE + Boolean + 0 + 0 + public_mk_define + The BSP is compiled with optimizations to speedup HDL simulation such as initializing the cache, clearing the .bss section, and skipping long delay loops. If true, adds -DALT_SIM_OPTIMIZE to ALT_CPPFLAGS in public.mk. + When this setting is true, the BSP shouldn't be used to build applications that are expected to run real hardware. + false + common + + + hal.enable_sopc_sysid_check + NONE + Boolean + 1 + 1 + public_mk_define + Enable SOPC Builder System ID. If a System ID SOPC Builder component is connected to the CPU associated with this BSP, it will be enabled in the creation of command-line arguments to download an ELF to the target. Otherwise, system ID and timestamp values are left out of public.mk for application Makefile "download-elf" target definition. With the system ID check disabled, the Nios II EDS tools will not automatically ensure that the application .elf file (and BSP it is linked against) corresponds to the hardware design on the target. If false, adds --accept-bad-sysid to SOPC_SYSID_FLAG in public.mk. + none + false + none + + + hal.custom_newlib_flags + CUSTOM_NEWLIB_FLAGS + UnquotedString + none + none + public_mk_define + Build a custom version of newlib with the specified space-separated compiler flags. + The custom newlib build will be placed in the &lt;bsp root>/newlib directory, and will be used only for applications that utilize this BSP. + false + none + + + hal.log_flags + ALT_LOG_FLAGS + DecimalNumber + 0 + 0 + public_mk_define + The value is assigned to ALT_LOG_FLAGS in the generated public.mk. See hal.log_port setting description. Values can be -1 through 3. + hal.log_port must be set for this to be used. + false + none + + + altera_avalon_jtag_uart_driver.enable_small_driver + ALTERA_AVALON_JTAG_UART_SMALL + BooleanDefineOnly + false + false + public_mk_define + Small-footprint (polled mode) driver + none + false + + + + altera_avalon_jtag_uart_driver.enable_jtag_uart_ignore_fifo_full_error + ALTERA_AVALON_JTAG_UART_IGNORE_FIFO_FULL_ERROR + BooleanDefineOnly + false + false + public_mk_define + Enable JTAG UART driver to recover when host is inactive causing buffer to full without returning error. Printf will not fail with this recovery. + none + false + + + + onchip_memory + 0x00000000 - 0x00000FFF + 4096 + memory + + + switches + 0x00002000 - 0x0000200F + 16 + + + + LEDs + 0x00002010 - 0x0000201F + 16 + + + + jtag_uart + 0x00002020 - 0x00002027 + 8 + printable + + + .text + onchip_memory + + + .rodata + onchip_memory + + + .rwdata + onchip_memory + + + .bss + onchip_memory + + + .heap + onchip_memory + + + .stack + onchip_memory + + \ No newline at end of file diff --git a/software/qsys_tutorial_test_bsp/summary.html b/software/qsys_tutorial_test_bsp/summary.html new file mode 100644 index 0000000..7de3224 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/summary.html @@ -0,0 +1,2008 @@ + +Altera Nios II BSP Summary + +

BSP Description

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
BSP Type:hal
SOPC Design File:C:\Users\takayun\Desktop\qsys_tutorial\nios_system.sopcinfo
Quartus JDI File:default
CPU:nios2_processor
BSP Settings File:.\settings.bsp
BSP Version:default
BSP Generated On:2016/10/27 9:21:10
BSP Generated Timestamp:1477527670120
BSP Generated Location:C:\Users\takayun\Desktop\qsys_tutorial\software\qsys_tutorial_test_bsp
+
+

Nios II Memory Map

+ + + + + + + + + + + + + + + + +
Slave DescriptorAddress RangeSizeAttributes
jtag_uart0x00002020 - 0x000020278printable
LEDs0x00002010 - 0x0000201F16 
switches0x00002000 - 0x0000200F16 
onchip_memory0x00000000 - 0x00000FFF4096memory
+
+
+

Linker Regions

+ + + + +
RegionAddress RangeSizeMemoryOffset
+
+
+

Linker Section Mappings

+ + + + + + + + + + + + + + + + + + + + + + +
SectionRegion
.textonchip_memory
.rodataonchip_memory
.rwdataonchip_memory
.bssonchip_memory
.heaponchip_memory
.stackonchip_memory
+

Settings

+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:altera_avalon_jtag_uart_driver.enable_jtag_uart_ignore_fifo_full_error
Identifier:ALTERA_AVALON_JTAG_UART_IGNORE_FIFO_FULL_ERROR
Default Value:false
Value:false
Type:BooleanDefineOnly
Destination:public_mk_define
Description:Enable JTAG UART driver to recover when host is inactive causing buffer to full without returning error. Printf will not fail with this recovery.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:altera_avalon_jtag_uart_driver.enable_small_driver
Identifier:ALTERA_AVALON_JTAG_UART_SMALL
Default Value:false
Value:false
Type:BooleanDefineOnly
Destination:public_mk_define
Description:Small-footprint (polled mode) driver
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.custom_newlib_flags
Identifier:CUSTOM_NEWLIB_FLAGS
Default Value:none
Value:none
Type:UnquotedString
Destination:public_mk_define
Description:Build a custom version of newlib with the specified space-separated compiler flags.
Restrictions:The custom newlib build will be placed in the &lt;bsp root>/newlib directory, and will be used only for applications that utilize this BSP.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_c_plus_plus
Identifier:ALT_NO_C_PLUS_PLUS
Default Value:1
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable support for a subset of the C++ language. This option increases code footprint by adding support for C++ constructors. Certain features, such as multiple inheritance and exceptions are not supported. If false, adds -DALT_NO_C_PLUS_PLUS to ALT_CPPFLAGS in public.mk, and reduces code footprint.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_clean_exit
Identifier:ALT_NO_CLEAN_EXIT
Default Value:1
Value:0
Type:Boolean
Destination:public_mk_define
Description:When your application exits, close file descriptors, call C++ destructors, etc. Code footprint can be reduced by disabling clean exit. If disabled, adds -DALT_NO_CLEAN_EXIT to ALT_CPPFLAGS and -Wl,--defsym, exit=_exit to ALT_LDFLAGS in public.mk.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_exit
Identifier:ALT_NO_EXIT
Default Value:1
Value:0
Type:Boolean
Destination:public_mk_define
Description:Add exit() support. This option increases code footprint if your "main()" routine does "return" or call "exit()". If false, adds -DALT_NO_EXIT to ALT_CPPFLAGS in public.mk, and reduces footprint
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_gprof
Identifier:ALT_PROVIDE_GMON
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Causes code to be compiled with gprof profiling enabled and the application ELF to be linked with the GPROF library. If true, adds -DALT_PROVIDE_GMON to ALT_CPPFLAGS and -pg to ALT_CFLAGS in public.mk.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_instruction_related_exceptions_api
Identifier:ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API
Default Value:false
Value:false
Type:BooleanDefineOnly
Destination:system_h_define
Description:Enables API for registering handlers to service instruction-related exceptions. Enabling this setting increases the size of the exception entry code.
Restrictions:These exception types can be generated if various processor options are enabled, such as the MMU, MPU, or other advanced exception types.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_lightweight_device_driver_api
Identifier:ALT_USE_DIRECT_DRIVERS
Default Value:0
Value:1
Type:Boolean
Destination:public_mk_define
Description:Enables lightweight device driver API. This reduces code and data footprint by removing the HAL layer that maps device names (e.g. /dev/uart0) to file descriptors. Instead, driver routines are called directly. The open(), close(), and lseek() routines will always fail if called. The read(), write(), fstat(), ioctl(), and isatty() routines only work for the stdio devices. If true, adds -DALT_USE_DIRECT_DRIVERS to ALT_CPPFLAGS in public.mk.
Restrictions:The Altera Host and read-only ZIP file systems can't be used if hal.enable_lightweight_device_driver_api is true.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_mul_div_emulation
Identifier:ALT_NO_INSTRUCTION_EMULATION
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Adds code to emulate multiply and divide instructions in case they are executed but aren't present in the CPU. Normally this isn't required because the compiler won't use multiply and divide instructions that aren't present in the CPU. If false, adds -DALT_NO_INSTRUCTION_EMULATION to ALT_CPPFLAGS in public.mk.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_reduced_device_drivers
Identifier:ALT_USE_SMALL_DRIVERS
Default Value:0
Value:1
Type:Boolean
Destination:public_mk_define
Description:Certain drivers are compiled with reduced functionality to reduce code footprint. Not all drivers observe this setting. The altera_avalon_uart and altera_avalon_jtag_uart drivers switch from interrupt-driven to polled operation. CAUTION: Several device drivers are disabled entirely. These include the altera_avalon_cfi_flash, altera_avalon_epcs_flash_controller, and altera_avalon_lcd_16207 drivers. This can result in certain API (HAL flash access routines) to fail. You can define a symbol provided by each driver to prevent it from being removed. If true, adds -DALT_USE_SMALL_DRIVERS to ALT_CPPFLAGS in public.mk.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_runtime_stack_checking
Identifier:ALT_STACK_CHECK
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Turns on HAL runtime stack checking feature. Enabling this setting causes additional code to be placed into each subroutine call to generate an exception if a stack collision occurs with the heap or statically allocated data. If true, adds -DALT_STACK_CHECK and -mstack-check to ALT_CPPFLAGS in public.mk.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_sim_optimize
Identifier:ALT_SIM_OPTIMIZE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:The BSP is compiled with optimizations to speedup HDL simulation such as initializing the cache, clearing the .bss section, and skipping long delay loops. If true, adds -DALT_SIM_OPTIMIZE to ALT_CPPFLAGS in public.mk.
Restrictions:When this setting is true, the BSP shouldn't be used to build applications that are expected to run real hardware.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_small_c_library
Identifier:NONE
Default Value:0
Value:1
Type:Boolean
Destination:public_mk_define
Description:Causes the small newlib (C library) to be used. This reduces code and data footprint at the expense of reduced functionality. Several newlib features are removed such as floating-point support in printf(), stdin input routines, and buffered I/O. The small C library is not compatible with Micrium MicroC/OS-II. If true, adds -msmallc to ALT_LDFLAGS in public.mk.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_sopc_sysid_check
Identifier:NONE
Default Value:1
Value:1
Type:Boolean
Destination:public_mk_define
Description:Enable SOPC Builder System ID. If a System ID SOPC Builder component is connected to the CPU associated with this BSP, it will be enabled in the creation of command-line arguments to download an ELF to the target. Otherwise, system ID and timestamp values are left out of public.mk for application Makefile "download-elf" target definition. With the system ID check disabled, the Nios II EDS tools will not automatically ensure that the application .elf file (and BSP it is linked against) corresponds to the hardware design on the target. If false, adds --accept-bad-sysid to SOPC_SYSID_FLAG in public.mk.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.linker.allow_code_at_reset
Identifier:ALT_ALLOW_CODE_AT_RESET
Default Value:0
Value:1
Type:Boolean
Destination:none
Description:Indicates if initialization code is allowed at the reset address. If true, defines the macro ALT_ALLOW_CODE_AT_RESET in linker.h.
Restrictions:If true, defines the macro ALT_ALLOW_CODE_AT_RESET in linker.h. This setting is typically false if an external bootloader (e.g. flash bootloader) is present.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.linker.enable_alt_load
Identifier:NONE
Default Value:0
Value:1
Type:Boolean
Destination:none
Description:Enables the alt_load() facility. The alt_load() facility copies sections from the .text memory into RAM. If true, this setting sets up the VMA/LMA of sections in linker.x to allow them to be loaded into the .text memory.
Restrictions:This setting is typically false if an external bootloader (e.g. flash bootloader) is present.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.linker.enable_alt_load_copy_exceptions
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:none
Description:Causes the alt_load() facility to copy the .exceptions section. If true, this setting defines the macro ALT_LOAD_COPY_EXCEPTIONS in linker.h.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.linker.enable_alt_load_copy_rodata
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:none
Description:Causes the alt_load() facility to copy the .rodata section. If true, this setting defines the macro ALT_LOAD_COPY_RODATA in linker.h.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.linker.enable_alt_load_copy_rwdata
Identifier:NONE
Default Value:0
Value:1
Type:Boolean
Destination:none
Description:Causes the alt_load() facility to copy the .rwdata section. If true, this setting defines the macro ALT_LOAD_COPY_RWDATA in linker.h.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.linker.enable_exception_stack
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:none
Description:Enables use of a separate exception stack. If true, defines the macro ALT_EXCEPTION_STACK in linker.h, adds a memory region called exception_stack to linker.x, and provides the symbols __alt_exception_stack_pointer and __alt_exception_stack_limit in linker.x.
Restrictions:The hal.linker.exception_stack_size and hal.linker.exception_stack_memory_region_name settings must also be valid. This setting must be false for MicroC/OS-II BSPs. The exception stack can be used to improve interrupt and other exception performance if the EIC is *not* used.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.linker.enable_interrupt_stack
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:none
Description:Enables use of a separate interrupt stack. If true, defines the macro ALT_INTERRUPT_STACK in linker.h, adds a memory region called interrupt_stack to linker.x, and provides the symbols __alt_interrupt_stack_pointer and __alt_interrupt_stack_limit in linker.x.
Restrictions:The hal.linker.interrupt_stack_size and hal.linker.interrupt_stack_memory_region_name settings must also be valid. This setting must be false for MicroC/OS-II BSPs. Only enable if the EIC is used exclusively. The exception stack can be used to improve interrupt and other exception performance if the EIC is *not* used.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.linker.exception_stack_memory_region_name
Identifier:NONE
Default Value:none
Value:onchip_memory
Type:UnquotedString
Destination:none
Description:Name of the existing memory region that will be divided up to create the 'exception_stack' memory region. The selected region name will be adjusted automatically when the BSP is generated to create the 'exception_stack' memory region.
Restrictions:Only used if hal.linker.enable_exception_stack is true.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.linker.exception_stack_size
Identifier:NONE
Default Value:1024
Value:1024
Type:DecimalNumber
Destination:none
Description:Size of the exception stack in bytes.
Restrictions:Only used if hal.linker.enable_exception_stack is true.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.linker.interrupt_stack_memory_region_name
Identifier:NONE
Default Value:none
Value:onchip_memory
Type:UnquotedString
Destination:none
Description:Name of the existing memory region that will be divided up to create the 'interrupt_stack' memory region. The selected region name will be adjusted automatically when the BSP is generated to create the 'interrupt_stack' memory region.
Restrictions:Only used if hal.linker.enable_interrupt_stack is true.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.linker.interrupt_stack_size
Identifier:NONE
Default Value:1024
Value:1024
Type:DecimalNumber
Destination:none
Description:Size of the interrupt stack in bytes.
Restrictions:Only used if hal.linker.enable_interrupt_stack is true.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.log_flags
Identifier:ALT_LOG_FLAGS
Default Value:0
Value:0
Type:DecimalNumber
Destination:public_mk_define
Description:The value is assigned to ALT_LOG_FLAGS in the generated public.mk. See hal.log_port setting description. Values can be -1 through 3.
Restrictions:hal.log_port must be set for this to be used.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.log_port
Identifier:NONE
Default Value:none
Value:none
Type:UnquotedString
Destination:public_mk_define
Description:Slave descriptor of debug logging character-mode device. If defined, it enables extra debug messages in the HAL source. This setting is used by the ALT_LOG_PORT family of defines in system.h.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ar
Identifier:AR
Default Value:nios2-elf-ar
Value:nios2-elf-ar
Type:UnquotedString
Destination:makefile_variable
Description:Archiver command. Creates library files.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ar_post_process
Identifier:AR_POST_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed after archiver execution.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ar_pre_process
Identifier:AR_PRE_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed before archiver execution.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.as
Identifier:AS
Default Value:nios2-elf-gcc
Value:nios2-elf-gcc
Type:UnquotedString
Destination:makefile_variable
Description:Assembler command. Note that CC is used for .S files.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.as_post_process
Identifier:AS_POST_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed after each assembly file is compiled.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.as_pre_process
Identifier:AS_PRE_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed before each assembly file is compiled.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.bsp_arflags
Identifier:BSP_ARFLAGS
Default Value:-src
Value:-src
Type:UnquotedString
Destination:makefile_variable
Description:Custom flags only passed to the archiver. This content of this variable is directly passed to the archiver rather than the more standard "ARFLAGS". The reason for this is that GNU Make assumes some default content in ARFLAGS. This setting defines the value of BSP_ARFLAGS in Makefile.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.bsp_asflags
Identifier:BSP_ASFLAGS
Default Value:-Wa,-gdwarf2
Value:-Wa,-gdwarf2
Type:UnquotedString
Destination:makefile_variable
Description:Custom flags only passed to the assembler. This setting defines the value of BSP_ASFLAGS in Makefile.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.bsp_cflags_debug
Identifier:BSP_CFLAGS_DEBUG
Default Value:-g
Value:-g
Type:UnquotedString
Destination:makefile_variable
Description:C/C++ compiler debug level. '-g' provides the default set of debug symbols typically required to debug a typical application. Omitting '-g' removes debug symbols from the ELF. This setting defines the value of BSP_CFLAGS_DEBUG in Makefile.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.bsp_cflags_defined_symbols
Identifier:BSP_CFLAGS_DEFINED_SYMBOLS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Preprocessor macros to define. A macro definition in this setting has the same effect as a "#define" in source code. Adding "-DALT_DEBUG" to this setting has the same effect as "#define ALT_DEBUG" in a souce file. Adding "-DFOO=1" to this setting is equivalent to the macro "#define FOO 1" in a source file. Macros defined with this setting are applied to all .S, .c, and C++ files in the BSP. This setting defines the value of BSP_CFLAGS_DEFINED_SYMBOLS in the BSP Makefile.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.bsp_cflags_optimization
Identifier:BSP_CFLAGS_OPTIMIZATION
Default Value:-O0
Value:'-Os'
Type:UnquotedString
Destination:makefile_variable
Description:C/C++ compiler optimization level. "-O0" = no optimization,"-O2" = "normal" optimization, etc. "-O0" is recommended for code that you want to debug since compiler optimization can remove variables and produce non-sequential execution of code while debugging. This setting defines the value of BSP_CFLAGS_OPTIMIZATION in Makefile.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.bsp_cflags_undefined_symbols
Identifier:BSP_CFLAGS_UNDEFINED_SYMBOLS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Preprocessor macros to undefine. Undefined macros are similar to defined macros, but replicate the "#undef" directive in source code. To undefine the macro FOO use the syntax "-u FOO" in this setting. This is equivalent to "#undef FOO" in a source file. Note: the syntax differs from macro definition (there is a space, i.e. "-u FOO" versus "-DFOO"). Macros defined with this setting are applied to all .S, .c, and C++ files in the BSP. This setting defines the value of BSP_CFLAGS_UNDEFINED_SYMBOLS in the BSP Makefile.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.bsp_cflags_user_flags
Identifier:BSP_CFLAGS_USER_FLAGS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Custom flags passed to the compiler when compiling C, C++, and .S files. This setting defines the value of BSP_CFLAGS_USER_FLAGS in Makefile.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.bsp_cflags_warnings
Identifier:BSP_CFLAGS_WARNINGS
Default Value:-Wall
Value:-Wall
Type:UnquotedString
Destination:makefile_variable
Description:C/C++ compiler warning level. "-Wall" is commonly used.This setting defines the value of BSP_CFLAGS_WARNINGS in Makefile.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.bsp_cxx_flags
Identifier:BSP_CXXFLAGS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Custom flags only passed to the C++ compiler. This setting defines the value of BSP_CXXFLAGS in Makefile.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.bsp_inc_dirs
Identifier:BSP_INC_DIRS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Space separated list of extra include directories to scan for header files. Directories are relative to the top-level BSP directory. The -I prefix's added by the makefile so don't add it here. This setting defines the value of BSP_INC_DIRS in Makefile.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.build_post_process
Identifier:BUILD_POST_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed after BSP built.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.build_pre_process
Identifier:BUILD_PRE_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed before BSP built.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.cc
Identifier:CC
Default Value:nios2-elf-gcc -xc
Value:nios2-elf-gcc -xc
Type:UnquotedString
Destination:makefile_variable
Description:C compiler command.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.cc_post_process
Identifier:CC_POST_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed after each .c/.S file is compiled.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.cc_pre_process
Identifier:CC_PRE_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed before each .c/.S file is compiled.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.cxx
Identifier:CXX
Default Value:nios2-elf-gcc -xc++
Value:nios2-elf-gcc -xc++
Type:UnquotedString
Destination:makefile_variable
Description:C++ compiler command.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.cxx_post_process
Identifier:CXX_POST_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed before each C++ file is compiled.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.cxx_pre_process
Identifier:CXX_PRE_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed before each C++ file is compiled.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.big_endian
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query if SOPC system is big endian. If true ignores export of 'ALT_CFLAGS += -EB' to public.mk if big endian system. If true ignores export of 'ALT_CFLAGS += -EL' if little endian system.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.debug_core_present
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query if SOPC system has a debug core present. If true ignores export of 'CPU_HAS_DEBUG_CORE = 1' to public.mk if a debug core is found in the system. If true ignores export of 'CPU_HAS_DEBUG_CORE = 0' if no debug core is found in the system.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.fpu_present
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query if SOPC system has FPU present. If true ignores export of 'ALT_CFLAGS += -mhard-float' to public.mk if FPU is found in the system. If true ignores export of 'ALT_CFLAGS += -mhard-soft' if FPU is not found in the system.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.hardware_divide_present
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query if SOPC system has hardware divide present. If true ignores export of 'ALT_CFLAGS += -mno-hw-div' to public.mk if no division is found in system. If true ignores export of 'ALT_CFLAGS += -mhw-div' if division is found in the system.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.hardware_fp_cust_inst_divider_present
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query if SOPC system floating point custom instruction with a divider is present. If true ignores export of 'ALT_CFLAGS += -mcustom-fpu-cfg=60-2' and 'ALT_LDFLAGS += -mcustom-fpu-cfg=60-2' to public.mk if the custom instruction is found in the system.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.hardware_fp_cust_inst_no_divider_present
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query if SOPC system floating point custom instruction without a divider is present. If true ignores export of 'ALT_CFLAGS += -mcustom-fpu-cfg=60-1' and 'ALT_LDFLAGS += -mcustom-fpu-cfg=60-1' to public.mk if the custom instruction is found in the system.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.hardware_multiplier_present
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query if SOPC system has multiplier present. If true ignores export of 'ALT_CFLAGS += -mno-hw-mul' to public.mk if no multiplier is found in the system. If true ignores export of 'ALT_CFLAGS += -mhw-mul' if multiplier is found in the system.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.hardware_mulx_present
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query if SOPC system has hardware mulx present. If true ignores export of 'ALT_CFLAGS += -mno-hw-mulx' to public.mk if no mulx is found in the system. If true ignores export of 'ALT_CFLAGS += -mhw-mulx' if mulx is found in the system.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.sopc_simulation_enabled
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query if SOPC system has simulation enabled. If true ignores export of 'ELF_PATCH_FLAG += --simulation_enabled' to public.mk.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.sopc_system_base_address
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query SOPC system for system ID base address. If true ignores export of 'SOPC_SYSID_FLAG += --sidp=<address>' and 'ELF_PATCH_FLAG += --sidp=<address>' to public.mk.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.sopc_system_id
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query SOPC system for system ID. If true ignores export of 'SOPC_SYSID_FLAG += --id=<sysid>' and 'ELF_PATCH_FLAG += --id=<sysid>' to public.mk.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.sopc_system_timestamp
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query SOPC system for system timestamp. If true ignores export of 'SOPC_SYSID_FLAG += --timestamp=<timestamp>' and 'ELF_PATCH_FLAG += --timestamp=<timestamp>' to public.mk.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.rm
Identifier:RM
Default Value:rm -f
Value:rm -f
Type:UnquotedString
Destination:makefile_variable
Description:Command used to remove files during 'clean' target.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.max_file_descriptors
Identifier:ALT_MAX_FD
Default Value:32
Value:4
Type:DecimalNumber
Destination:system_h_define
Description:Determines the number of file descriptors statically allocated. This setting defines the value of ALT_MAX_FD in system.h.
Restrictions:If hal.enable_lightweight_device_driver_api is true, there are no file descriptors so this setting is ignored. If hal.enable_lightweight_device_driver_api is false, this setting must be at least 4 because HAL needs a file descriptor for /dev/null, /dev/stdin, /dev/stdout, and /dev/stderr.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.stderr
Identifier:NONE
Default Value:none
Value:jtag_uart
Type:UnquotedString
Destination:system_h_define
Description:Slave descriptor of STDERR character-mode device. This setting is used by the ALT_STDERR family of defines in system.h.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.stdin
Identifier:NONE
Default Value:none
Value:jtag_uart
Type:UnquotedString
Destination:system_h_define
Description:Slave descriptor of STDIN character-mode device. This setting is used by the ALT_STDIN family of defines in system.h.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.stdout
Identifier:NONE
Default Value:none
Value:jtag_uart
Type:UnquotedString
Destination:system_h_define
Description:Slave descriptor of STDOUT character-mode device. This setting is used by the ALT_STDOUT family of defines in system.h.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.sys_clk_timer
Identifier:ALT_SYS_CLK
Default Value:none
Value:none
Type:UnquotedString
Destination:system_h_define
Description:Slave descriptor of the system clock timer device. This device provides a periodic interrupt ("tick") and is typically required for RTOS use. This setting defines the value of ALT_SYS_CLK in system.h.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.timestamp_timer
Identifier:ALT_TIMESTAMP_CLK
Default Value:none
Value:none
Type:UnquotedString
Destination:system_h_define
Description:Slave descriptor of timestamp timer device. This device is used by Altera HAL timestamp drivers for high-resolution time measurement. This setting defines the value of ALT_TIMESTAMP_CLK in system.h.
Restrictions:none
+
+
+
+ + diff --git a/software/qsys_tutorial_test_bsp/system.h b/software/qsys_tutorial_test_bsp/system.h new file mode 100644 index 0000000..66e5b05 --- /dev/null +++ b/software/qsys_tutorial_test_bsp/system.h @@ -0,0 +1,278 @@ +/* + * system.h - SOPC Builder system and BSP software package information + * + * Machine generated for CPU 'nios2_processor' in SOPC Builder design 'nios_system' + * SOPC Builder design path: C:/Users/takayun/Desktop/qsys_tutorial/nios_system.sopcinfo + * + * Generated: Thu Oct 27 09:21:11 JST 2016 + */ + +/* + * DO NOT MODIFY THIS FILE + * + * Changing this file will have subtle consequences + * which will almost certainly lead to a nonfunctioning + * system. If you do modify this file, be aware that your + * changes will be overwritten and lost when this file + * is generated again. + * + * DO NOT MODIFY THIS FILE + */ + +/* + * License Agreement + * + * Copyright (c) 2008 + * Altera Corporation, San Jose, California, USA. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + * This agreement shall be governed in all respects by the laws of the State + * of California and by the laws of the United States of America. + */ + +#ifndef __SYSTEM_H_ +#define __SYSTEM_H_ + +/* Include definitions from linker script generator */ +#include "linker.h" + + +/* + * CPU configuration + * + */ + +#define ALT_CPU_ARCHITECTURE "altera_nios2_qsys" +#define ALT_CPU_BIG_ENDIAN 0 +#define ALT_CPU_BREAK_ADDR 0x1820 +#define ALT_CPU_CPU_FREQ 50000000u +#define ALT_CPU_CPU_ID_SIZE 1 +#define ALT_CPU_CPU_ID_VALUE 0x00000000 +#define ALT_CPU_CPU_IMPLEMENTATION "tiny" +#define ALT_CPU_DATA_ADDR_WIDTH 0xe +#define ALT_CPU_DCACHE_LINE_SIZE 0 +#define ALT_CPU_DCACHE_LINE_SIZE_LOG2 0 +#define ALT_CPU_DCACHE_SIZE 0 +#define ALT_CPU_EXCEPTION_ADDR 0x20 +#define ALT_CPU_FLUSHDA_SUPPORTED +#define ALT_CPU_FREQ 50000000 +#define ALT_CPU_HARDWARE_DIVIDE_PRESENT 0 +#define ALT_CPU_HARDWARE_MULTIPLY_PRESENT 0 +#define ALT_CPU_HARDWARE_MULX_PRESENT 0 +#define ALT_CPU_HAS_DEBUG_CORE 1 +#define ALT_CPU_HAS_DEBUG_STUB +#define ALT_CPU_HAS_JMPI_INSTRUCTION +#define ALT_CPU_ICACHE_LINE_SIZE 0 +#define ALT_CPU_ICACHE_LINE_SIZE_LOG2 0 +#define ALT_CPU_ICACHE_SIZE 0 +#define ALT_CPU_INST_ADDR_WIDTH 0xd +#define ALT_CPU_NAME "nios2_processor" +#define ALT_CPU_RESET_ADDR 0x0 + + +/* + * CPU configuration (with legacy prefix - don't use these anymore) + * + */ + +#define NIOS2_BIG_ENDIAN 0 +#define NIOS2_BREAK_ADDR 0x1820 +#define NIOS2_CPU_FREQ 50000000u +#define NIOS2_CPU_ID_SIZE 1 +#define NIOS2_CPU_ID_VALUE 0x00000000 +#define NIOS2_CPU_IMPLEMENTATION "tiny" +#define NIOS2_DATA_ADDR_WIDTH 0xe +#define NIOS2_DCACHE_LINE_SIZE 0 +#define NIOS2_DCACHE_LINE_SIZE_LOG2 0 +#define NIOS2_DCACHE_SIZE 0 +#define NIOS2_EXCEPTION_ADDR 0x20 +#define NIOS2_FLUSHDA_SUPPORTED +#define NIOS2_HARDWARE_DIVIDE_PRESENT 0 +#define NIOS2_HARDWARE_MULTIPLY_PRESENT 0 +#define NIOS2_HARDWARE_MULX_PRESENT 0 +#define NIOS2_HAS_DEBUG_CORE 1 +#define NIOS2_HAS_DEBUG_STUB +#define NIOS2_HAS_JMPI_INSTRUCTION +#define NIOS2_ICACHE_LINE_SIZE 0 +#define NIOS2_ICACHE_LINE_SIZE_LOG2 0 +#define NIOS2_ICACHE_SIZE 0 +#define NIOS2_INST_ADDR_WIDTH 0xd +#define NIOS2_RESET_ADDR 0x0 + + +/* + * Define for each module class mastered by the CPU + * + */ + +#define __ALTERA_AVALON_JTAG_UART +#define __ALTERA_AVALON_ONCHIP_MEMORY2 +#define __ALTERA_AVALON_PIO +#define __ALTERA_NIOS2_QSYS + + +/* + * LEDs configuration + * + */ + +#define ALT_MODULE_CLASS_LEDs altera_avalon_pio +#define LEDS_BASE 0x2010 +#define LEDS_BIT_CLEARING_EDGE_REGISTER 0 +#define LEDS_BIT_MODIFYING_OUTPUT_REGISTER 0 +#define LEDS_CAPTURE 0 +#define LEDS_DATA_WIDTH 8 +#define LEDS_DO_TEST_BENCH_WIRING 0 +#define LEDS_DRIVEN_SIM_VALUE 0 +#define LEDS_EDGE_TYPE "NONE" +#define LEDS_FREQ 50000000 +#define LEDS_HAS_IN 0 +#define LEDS_HAS_OUT 1 +#define LEDS_HAS_TRI 0 +#define LEDS_IRQ -1 +#define LEDS_IRQ_INTERRUPT_CONTROLLER_ID -1 +#define LEDS_IRQ_TYPE "NONE" +#define LEDS_NAME "/dev/LEDs" +#define LEDS_RESET_VALUE 0 +#define LEDS_SPAN 16 +#define LEDS_TYPE "altera_avalon_pio" + + +/* + * System configuration + * + */ + +#define ALT_DEVICE_FAMILY "Cyclone IV E" +#define ALT_ENHANCED_INTERRUPT_API_PRESENT +#define ALT_IRQ_BASE NULL +#define ALT_LOG_PORT "/dev/null" +#define ALT_LOG_PORT_BASE 0x0 +#define ALT_LOG_PORT_DEV null +#define ALT_LOG_PORT_TYPE "" +#define ALT_NUM_EXTERNAL_INTERRUPT_CONTROLLERS 0 +#define ALT_NUM_INTERNAL_INTERRUPT_CONTROLLERS 1 +#define ALT_NUM_INTERRUPT_CONTROLLERS 1 +#define ALT_STDERR "/dev/jtag_uart" +#define ALT_STDERR_BASE 0x2020 +#define ALT_STDERR_DEV jtag_uart +#define ALT_STDERR_IS_JTAG_UART +#define ALT_STDERR_PRESENT +#define ALT_STDERR_TYPE "altera_avalon_jtag_uart" +#define ALT_STDIN "/dev/jtag_uart" +#define ALT_STDIN_BASE 0x2020 +#define ALT_STDIN_DEV jtag_uart +#define ALT_STDIN_IS_JTAG_UART +#define ALT_STDIN_PRESENT +#define ALT_STDIN_TYPE "altera_avalon_jtag_uart" +#define ALT_STDOUT "/dev/jtag_uart" +#define ALT_STDOUT_BASE 0x2020 +#define ALT_STDOUT_DEV jtag_uart +#define ALT_STDOUT_IS_JTAG_UART +#define ALT_STDOUT_PRESENT +#define ALT_STDOUT_TYPE "altera_avalon_jtag_uart" +#define ALT_SYSTEM_NAME "nios_system" + + +/* + * hal configuration + * + */ + +#define ALT_MAX_FD 4 +#define ALT_SYS_CLK none +#define ALT_TIMESTAMP_CLK none + + +/* + * jtag_uart configuration + * + */ + +#define ALT_MODULE_CLASS_jtag_uart altera_avalon_jtag_uart +#define JTAG_UART_BASE 0x2020 +#define JTAG_UART_IRQ 5 +#define JTAG_UART_IRQ_INTERRUPT_CONTROLLER_ID 0 +#define JTAG_UART_NAME "/dev/jtag_uart" +#define JTAG_UART_READ_DEPTH 64 +#define JTAG_UART_READ_THRESHOLD 8 +#define JTAG_UART_SPAN 8 +#define JTAG_UART_TYPE "altera_avalon_jtag_uart" +#define JTAG_UART_WRITE_DEPTH 64 +#define JTAG_UART_WRITE_THRESHOLD 8 + + +/* + * onchip_memory configuration + * + */ + +#define ALT_MODULE_CLASS_onchip_memory altera_avalon_onchip_memory2 +#define ONCHIP_MEMORY_ALLOW_IN_SYSTEM_MEMORY_CONTENT_EDITOR 0 +#define ONCHIP_MEMORY_ALLOW_MRAM_SIM_CONTENTS_ONLY_FILE 0 +#define ONCHIP_MEMORY_BASE 0x0 +#define ONCHIP_MEMORY_CONTENTS_INFO "" +#define ONCHIP_MEMORY_DUAL_PORT 0 +#define ONCHIP_MEMORY_GUI_RAM_BLOCK_TYPE "AUTO" +#define ONCHIP_MEMORY_INIT_CONTENTS_FILE "nios_system_onchip_memory" +#define ONCHIP_MEMORY_INIT_MEM_CONTENT 1 +#define ONCHIP_MEMORY_INSTANCE_ID "NONE" +#define ONCHIP_MEMORY_IRQ -1 +#define ONCHIP_MEMORY_IRQ_INTERRUPT_CONTROLLER_ID -1 +#define ONCHIP_MEMORY_NAME "/dev/onchip_memory" +#define ONCHIP_MEMORY_NON_DEFAULT_INIT_FILE_ENABLED 0 +#define ONCHIP_MEMORY_RAM_BLOCK_TYPE "AUTO" +#define ONCHIP_MEMORY_READ_DURING_WRITE_MODE "DONT_CARE" +#define ONCHIP_MEMORY_SINGLE_CLOCK_OP 0 +#define ONCHIP_MEMORY_SIZE_MULTIPLE 1 +#define ONCHIP_MEMORY_SIZE_VALUE 4096 +#define ONCHIP_MEMORY_SPAN 4096 +#define ONCHIP_MEMORY_TYPE "altera_avalon_onchip_memory2" +#define ONCHIP_MEMORY_WRITABLE 1 + + +/* + * switches configuration + * + */ + +#define ALT_MODULE_CLASS_switches altera_avalon_pio +#define SWITCHES_BASE 0x2000 +#define SWITCHES_BIT_CLEARING_EDGE_REGISTER 0 +#define SWITCHES_BIT_MODIFYING_OUTPUT_REGISTER 0 +#define SWITCHES_CAPTURE 0 +#define SWITCHES_DATA_WIDTH 8 +#define SWITCHES_DO_TEST_BENCH_WIRING 0 +#define SWITCHES_DRIVEN_SIM_VALUE 0 +#define SWITCHES_EDGE_TYPE "NONE" +#define SWITCHES_FREQ 50000000 +#define SWITCHES_HAS_IN 1 +#define SWITCHES_HAS_OUT 0 +#define SWITCHES_HAS_TRI 0 +#define SWITCHES_IRQ -1 +#define SWITCHES_IRQ_INTERRUPT_CONTROLLER_ID -1 +#define SWITCHES_IRQ_TYPE "NONE" +#define SWITCHES_NAME "/dev/switches" +#define SWITCHES_RESET_VALUE 0 +#define SWITCHES_SPAN 16 +#define SWITCHES_TYPE "altera_avalon_pio" + +#endif /* __SYSTEM_H_ */